diff --git a/cmd/baton-okta/config.go b/cmd/baton-okta/config.go index e10d347f..0919784d 100644 --- a/cmd/baton-okta/config.go +++ b/cmd/baton-okta/config.go @@ -4,8 +4,9 @@ import ( "context" "fmt" - "github.com/conductorone/baton-okta/pkg/connector" "github.com/spf13/cobra" + + "github.com/conductorone/baton-okta/pkg/connector" ) // validateConfig is run after the configuration is loaded, and should return an error if it isn't valid. @@ -41,4 +42,5 @@ func cmdFlags(cmd *cobra.Command) { cmd.PersistentFlags().String("okta-private-key-id", "", "The Okta Private Key ID. ($BATON_OKTA_PRIVATE_KEY_ID)") cmd.PersistentFlags().String("api-token", "", "The API token for the service account. ($BATON_API_TOKEN)") cmd.PersistentFlags().Bool("sync-inactive-apps", true, "Whether to sync inactive apps or not. ($BATON_SYNC_INACTIVE_APPS)") + cmd.PersistentFlags().Bool("ciam", false, "Whether to run in CIAM mode or not. ($BATON_CIAM)") } diff --git a/go.mod b/go.mod index 50a6e7a9..c904ae83 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/conductorone/baton-okta go 1.22.2 require ( - github.com/conductorone/baton-sdk v0.1.35 + github.com/conductorone/baton-sdk v0.1.39 github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 github.com/okta/okta-sdk-golang/v2 v2.20.0 github.com/spf13/cobra v1.8.0 @@ -14,28 +14,28 @@ require ( require ( filippo.io/age v1.1.1 // indirect filippo.io/edwards25519 v1.1.0 // indirect - github.com/BurntSushi/toml v1.3.2 // indirect - github.com/aws/aws-sdk-go-v2 v1.26.1 // indirect + github.com/BurntSushi/toml v1.4.0 // indirect + github.com/aws/aws-sdk-go-v2 v1.27.1 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/config v1.27.11 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.11 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect + github.com/aws/aws-sdk-go-v2/config v1.27.17 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.17 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.4 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.22 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.8 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.8 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.8 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect - github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.10 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.10 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.8 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.54.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.20.10 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.28.11 // indirect github.com/aws/smithy-go v1.20.2 // indirect github.com/benbjohnson/clock v1.3.5 // indirect - github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/doug-martin/goqu/v9 v9.19.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/envoyproxy/protoc-gen-validate v1.0.4 // indirect @@ -50,7 +50,7 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/kelseyhightower/envconfig v1.4.0 // indirect github.com/klauspost/compress v1.17.8 // indirect - github.com/lufia/plan9stats v0.0.0-20240408141607-282e7b5d6b74 // indirect + github.com/lufia/plan9stats v0.0.0-20240513124658-fba389f38bae // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect @@ -60,37 +60,39 @@ require ( github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect github.com/pquerna/xjwt v0.2.0 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect - github.com/sagikazarmark/locafero v0.4.0 // indirect + github.com/sagikazarmark/locafero v0.6.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/segmentio/ksuid v1.0.4 // indirect - github.com/shirou/gopsutil/v3 v3.24.4 // indirect + github.com/shirou/gopsutil/v3 v3.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/sourcegraph/conc v0.3.0 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.6.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/spf13/viper v1.18.2 // indirect + github.com/spf13/viper v1.19.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect + go.opentelemetry.io/otel v1.27.0 // indirect + go.opentelemetry.io/otel/metric v1.27.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/ratelimit v0.3.1 // indirect - golang.org/x/crypto v0.23.0 // indirect - golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 // indirect - golang.org/x/net v0.25.0 // indirect - golang.org/x/oauth2 v0.20.0 // indirect + golang.org/x/crypto v0.24.0 // indirect + golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.20.0 // indirect - golang.org/x/text v0.15.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240506185236-b8a5c65736ae // indirect - google.golang.org/grpc v1.63.2 // indirect + golang.org/x/sys v0.21.0 // indirect + golang.org/x/text v0.16.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect + google.golang.org/grpc v1.64.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/square/go-jose.v2 v2.6.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - modernc.org/libc v1.50.5 // indirect + modernc.org/libc v1.52.1 // indirect modernc.org/mathutil v1.6.0 // indirect modernc.org/memory v1.8.0 // indirect - modernc.org/sqlite v1.29.9 // indirect + modernc.org/sqlite v1.30.0 // indirect ) diff --git a/go.sum b/go.sum index 7aae3290..c63c85a0 100644 --- a/go.sum +++ b/go.sum @@ -4,58 +4,58 @@ filippo.io/age v1.1.1/go.mod h1:l03SrzDUrBkdBx8+IILdnn2KZysqQdbEBUQ4p3sqEQE= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= -github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= +github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= -github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA= -github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= +github.com/aws/aws-sdk-go-v2 v1.27.1 h1:xypCL2owhog46iFxBKKpBcw+bPTX/RJzwNj8uSilENw= +github.com/aws/aws-sdk-go-v2 v1.27.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA= -github.com/aws/aws-sdk-go-v2/config v1.27.11/go.mod h1:SMsV78RIOYdve1vf36z8LmnszlRWkwMQtomCAI0/mIE= -github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHHvIq0l/pX3fwO+Tzs= -github.com/aws/aws-sdk-go-v2/credentials v1.17.11/go.mod h1:AQtFPsDH9bI2O+71anW6EKL+NcD7LG3dpKGMV4SShgo= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5/go.mod h1:jU1li6RFryMz+so64PpKtudI+QzbKoIEivqdf6LNpOc= +github.com/aws/aws-sdk-go-v2/config v1.27.17 h1:L0JZN7Gh7pT6u5CJReKsLhGKparqNKui+mcpxMXjDZc= +github.com/aws/aws-sdk-go-v2/config v1.27.17/go.mod h1:MzM3balLZeaafYcPz8IihAmam/aCz6niPQI0FdprxW0= +github.com/aws/aws-sdk-go-v2/credentials v1.17.17 h1:b3Dk9uxQByS9sc6r0sc2jmxsJKO75eOcb9nNEiaUBLM= +github.com/aws/aws-sdk-go-v2/credentials v1.17.17/go.mod h1:e4khg9iY08LnFK/HXQDWMf9GDaiMari7jWPnXvKAuBU= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.4 h1:0cSfTYYL9qiRcdi4Dvz+8s3JUgNR2qvbgZkXcwPEEEk= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.4/go.mod h1:Wjn5O9eS7uSi7vlPKt/v0MLTncANn9EMmoDvnzJli6o= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.22 h1:1CO+m67soQzw6hfkfSS0hQzS/o05bCswr+gQfBfQgLQ= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.22/go.mod h1:XUetvjVEuGFl1ABsTZ/5tufz0WXT+MpR9qcMnEJm0dw= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.8 h1:RnLB7p6aaFMRfyQkD6ckxR7myCC9SABIqSz4czYUUbU= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.8/go.mod h1:XH7dQJd+56wEbP1I4e4Duo+QhSMxNArE8VP7NuUOTeM= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.8 h1:jzApk2f58L9yW9q1GEab3BMMFWUkkiZhyrRUtbwUbKU= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.8/go.mod h1:WqO+FftfO3tGePUtQxPXM6iODVfqMwsVMgTbG/ZXIdQ= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.8 h1:jH33S0y5Bo5ZVML62JgZhjd/LrtU+vbR8W7XnIE3Srk= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.8/go.mod h1:hD5YwHLOy6k7d6kqcn3me1bFWHOtzhaXstMd6BpdB68= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= -github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= -github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 h1:vN8hEbpRnL7+Hopy9dzmRle1xmDc7o8tmY0klsr175w= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.5/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 h1:Jux+gDDyi1Lruk+KHF91tK2KCuY61kzoCpvtvJJBtOE= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4/go.mod h1:mUYPBhaF2lGiukDEjJX2BLRRKTmoUSitGDUgM4tRxak= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 h1:cwIxeBttqPN3qkaAjcEcsh8NYr8n2HZPkcKgPAi1phU= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.6/go.mod h1:FZf1/nKNEkHdGGJP/cI2MoIMquumuRK6ol3QQJNDxmw= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.10 h1:pkYC5zTOSPXEYJj56b2SOik9AL432i5MT1YVTQbKOK0= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.10/go.mod h1:/WNsBOlKWZCG3PMh2aSp8vkyyT/clpMZqOtrnIKqGfk= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.10 h1:7kZqP7akv0enu6ykJhb9OYlw16oOrSy+Epus8o/VqMY= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.10/go.mod h1:gYVF3nM1ApfTRDj9pvdhootBb8WbiIejuqn4w8ruMes= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.8 h1:iQNXVs1vtaq+y9M90M4ZIVNORje0qXTscqHLqoOnFS0= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.8/go.mod h1:yUQPRlWqGG0lfNsmjbRWKVwgilfBtZTOFSLEYALlAig= +github.com/aws/aws-sdk-go-v2/service/s3 v1.54.4 h1:4p9SCdZBO0PdEXLTF2fcQuxOEkEiqPQpK824cP2VKRo= +github.com/aws/aws-sdk-go-v2/service/s3 v1.54.4/go.mod h1:oSkRFuHVWmUY4Ssk16ErGzBqvYEbvORJFzFXzWhTB2s= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.10 h1:ItKVmFwbyb/ZnCWf+nu3XBVmUirpO9eGEQd7urnBA0s= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.10/go.mod h1:5XKooCTi9VB/xZmJDvh7uZ+v3uQ7QdX6diOyhvPA+/w= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.4 h1:QMSCYDg3Iyls0KZc/dk3JtS2c1lFfqbmYO10qBPPkJk= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.4/go.mod h1:MZ/PVYU/mRbmSF6WK3ybCYHjA2mig8utVokDEVLDgE0= +github.com/aws/aws-sdk-go-v2/service/sts v1.28.11 h1:HYS0csS7UJxdYRoG+bGgUYrSwVnV3/ece/wHm90TApM= +github.com/aws/aws-sdk-go-v2/service/sts v1.28.11/go.mod h1:QXnthRM35zI92048MMwfFChjFmoufTdhtHmouwNfhhU= github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= -github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/conductorone/baton-sdk v0.1.35 h1:hlPpVrHzNacarMJR2fVZMNDld++1vpsDxO+yUZXuqmM= -github.com/conductorone/baton-sdk v0.1.35/go.mod h1:yzfAXTvKzGJfhfrNTQ/Ipzt9+KPCzHrNO/Ro1gsxyDk= +github.com/conductorone/baton-sdk v0.1.39 h1:NiC7Z4ZbkGqU43UFwLUFyFFccwT/Yb1Q5Rt34fmz4cQ= +github.com/conductorone/baton-sdk v0.1.39/go.mod h1:zIFYuESVn+j9Ce6OqeZXxrXuuFvBhAxluVudJHDZJWM= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -82,6 +82,10 @@ github.com/go-jose/go-jose/v3 v3.0.3 h1:fFKWeig/irsp7XD2zBxvnmA/XaRWp5V3CBsZXJF7 github.com/go-jose/go-jose/v3 v3.0.3/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQrVfLAMboGkQ= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -98,7 +102,6 @@ github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaW github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -132,9 +135,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lib/pq v1.10.1 h1:6VXZrLU0jHBYyAqrSPa+MgPfnSvTPuMgK+k0o5kVFWo= github.com/lib/pq v1.10.1/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/lufia/plan9stats v0.0.0-20240408141607-282e7b5d6b74 h1:1KuuSOy4ZNgW0KA2oYIngXVFhQcXxhLqCVK7cBcldkk= -github.com/lufia/plan9stats v0.0.0-20240408141607-282e7b5d6b74/go.mod h1:ilwx/Dta8jXAgpFYFvSWEMwxmbWXyiUHkd5FwyKhb5k= +github.com/lufia/plan9stats v0.0.0-20240513124658-fba389f38bae h1:dIZY4ULFcto4tAFlj1FYZl8ztUZ13bdq+PLY+NOfbyI= +github.com/lufia/plan9stats v0.0.0-20240513124658-fba389f38bae/go.mod h1:ilwx/Dta8jXAgpFYFvSWEMwxmbWXyiUHkd5FwyKhb5k= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= @@ -155,7 +157,6 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 h1:o4JXh1EVt9k/+g42oCprj/FisM4qX9L3sZB3upGN2ZU= github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/pquerna/xjwt v0.2.0 h1:+RrTRRRqgG2RhYfmcs1WR8/4OrxShvqcVET7Rcb8A7o= @@ -166,14 +167,14 @@ github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qq github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= -github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= +github.com/sagikazarmark/locafero v0.6.0 h1:ON7AQg37yzcRPU69mt7gwhFEBwxI6P9T4Qu3N51bwOk= +github.com/sagikazarmark/locafero v0.6.0/go.mod h1:77OmuIc6VTraTXKXIs/uvUxKGUXjE1GbemJYHqdNjX0= github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/segmentio/ksuid v1.0.4 h1:sBo2BdShXjmcugAMwjugoGUdUV0pcxY5mW4xKRn3v4c= github.com/segmentio/ksuid v1.0.4/go.mod h1:/XUiZBD3kVx5SmUOl55voK5yeAbBNNIed+2O73XgrPE= -github.com/shirou/gopsutil/v3 v3.24.4 h1:dEHgzZXt4LMNm+oYELpzl9YCqV65Yr/6SfrvgRBtXeU= -github.com/shirou/gopsutil/v3 v3.24.4/go.mod h1:lTd2mdiOspcqLgAnr9/nGi71NkeMpWKdmhuxm9GusH8= +github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= +github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= @@ -189,8 +190,8 @@ github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= -github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= +github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= +github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -208,10 +209,8 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU= github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -219,6 +218,12 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= +go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= +go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= +go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= +go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= +go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= @@ -240,11 +245,11 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= -golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= +golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= +golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= +golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -253,8 +258,8 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= -golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= +golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -267,11 +272,11 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= -golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= -golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -297,26 +302,24 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= -golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= -golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= +golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= +golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -328,8 +331,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= -golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= +golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -339,15 +342,15 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240506185236-b8a5c65736ae h1:c55+MER4zkBS14uJhSZMGGmya0yJx5iHV4x/fpOSNRk= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240506185236-b8a5c65736ae/go.mod h1:I7Y+G38R2bu5j1aLzfFmQfTcU/WnFuqDwLZAbvKTKpM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 h1:1GBuWVLM/KMVUv1t1En5Gs+gFZCNd360GGb4sSxtrhU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= -google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= +google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -368,16 +371,16 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -modernc.org/cc/v4 v4.21.0 h1:D/gLKtcztomvWbsbvBKo3leKQv+86f+DdqEZBBXhnag= -modernc.org/cc/v4 v4.21.0/go.mod h1:HM7VJTZbUCR3rV8EYBi9wxnJ0ZBRiGE5OeGXNA0IsLQ= -modernc.org/ccgo/v4 v4.17.3 h1:t2CQci84jnxKw3GGnHvjGKjiNZeZqyQx/023spkk4hU= -modernc.org/ccgo/v4 v4.17.3/go.mod h1:1FCbAtWYJoKuc+AviS+dH+vGNtYmFJqBeRWjmnDWsIg= +modernc.org/cc/v4 v4.21.2 h1:dycHFB/jDc3IyacKipCNSDrjIC0Lm1hyoWOZTRR20Lk= +modernc.org/cc/v4 v4.21.2/go.mod h1:HM7VJTZbUCR3rV8EYBi9wxnJ0ZBRiGE5OeGXNA0IsLQ= +modernc.org/ccgo/v4 v4.17.10 h1:6wrtRozgrhCxieCeJh85QsxkX/2FFrT9hdaWPlbn4Zo= +modernc.org/ccgo/v4 v4.17.10/go.mod h1:0NBHgsqTTpm9cA5z2ccErvGZmtntSM9qD2kFAs6pjXM= modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE= modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ= modernc.org/gc/v2 v2.4.1 h1:9cNzOqPyMJBvrUipmynX0ZohMhcxPtMccYgGOJdOiBw= modernc.org/gc/v2 v2.4.1/go.mod h1:wzN5dK1AzVGoH6XOzc3YZ+ey/jPgYHLuVckd62P0GYU= -modernc.org/libc v1.50.5 h1:ZzeUd0dIc/sUtoPTCYIrgypkuzoGzNu6kbEWj2VuEmk= -modernc.org/libc v1.50.5/go.mod h1:rhzrUx5oePTSTIzBgM0mTftwWHK8tiT9aNFUt1mldl0= +modernc.org/libc v1.52.1 h1:uau0VoiT5hnR+SpoWekCKbLqm7v6dhRL3hI+NQhgN3M= +modernc.org/libc v1.52.1/go.mod h1:HR4nVzFDSDizP620zcMCgjb1/8xk2lg5p/8yjfGv1IQ= modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo= modernc.org/memory v1.8.0 h1:IqGTL6eFMaDZZhEWwcREgeMXYwmW83LYW8cROZYkg+E= @@ -386,8 +389,8 @@ modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4= modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= modernc.org/sortutil v1.2.0 h1:jQiD3PfS2REGJNzNCMMaLSp/wdMNieTbKX920Cqdgqc= modernc.org/sortutil v1.2.0/go.mod h1:TKU2s7kJMf1AE84OoiGppNHJwvB753OYfNl2WRb++Ss= -modernc.org/sqlite v1.29.9 h1:9RhNMklxJs+1596GNuAX+O/6040bvOwacTxuFcRuQow= -modernc.org/sqlite v1.29.9/go.mod h1:ItX2a1OVGgNsFh6Dv60JQvGfJfTPHPVpV6DF59akYOA= +modernc.org/sqlite v1.30.0 h1:8YhPUs/HTnlEgErn/jSYQTwHN/ex8CjHHjg+K9iG7LM= +modernc.org/sqlite v1.30.0/go.mod h1:cgkTARJ9ugeXSNaLBPK3CqbOe7Ec7ZhWPoMFGldEYEw= modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA= modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0= modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= diff --git a/pkg/connector/ciam.go b/pkg/connector/ciam.go new file mode 100644 index 00000000..7a5ab94a --- /dev/null +++ b/pkg/connector/ciam.go @@ -0,0 +1,372 @@ +package connector + +import ( + "context" + "errors" + "fmt" + "net/http" + "slices" + + v2 "github.com/conductorone/baton-sdk/pb/c1/connector/v2" + "github.com/conductorone/baton-sdk/pkg/annotations" + "github.com/conductorone/baton-sdk/pkg/pagination" + sdkEntitlement "github.com/conductorone/baton-sdk/pkg/types/entitlement" + "github.com/grpc-ecosystem/go-grpc-middleware/logging/zap/ctxzap" + "github.com/okta/okta-sdk-golang/v2/okta" + "go.uber.org/zap" +) + +type ciamUserBuilder struct{} + +func (c *ciamUserBuilder) ResourceType(ctx context.Context) *v2.ResourceType { + return resourceTypeUser +} + +func (c *ciamUserBuilder) List(ctx context.Context, parentResourceID *v2.ResourceId, pToken *pagination.Token) ([]*v2.Resource, string, annotations.Annotations, error) { + return nil, "", nil, nil +} + +func (c *ciamUserBuilder) Entitlements(ctx context.Context, resource *v2.Resource, pToken *pagination.Token) ([]*v2.Entitlement, string, annotations.Annotations, error) { + return nil, "", nil, nil +} + +func (c *ciamUserBuilder) Grants(ctx context.Context, resource *v2.Resource, pToken *pagination.Token) ([]*v2.Grant, string, annotations.Annotations, error) { + return nil, "", nil, nil +} + +func ciamUser() *ciamUserBuilder { + return &ciamUserBuilder{} +} + +type ciamResourceBuilder struct { + client *okta.Client +} + +func (o *ciamResourceBuilder) List(ctx context.Context, parentResourceID *v2.ResourceId, pToken *pagination.Token) ([]*v2.Resource, string, annotations.Annotations, error) { + bag := &pagination.Bag{} + err := bag.Unmarshal(pToken.Token) + + if bag.Current() == nil { + bag.Push(pagination.PageState{ + ResourceTypeID: resourceTypeUser.Id, + }) + bag.Push(pagination.PageState{ + ResourceTypeID: resourceTypeRole.Id, + }) + } + + var rv []*v2.Resource + var annos annotations.Annotations + + current := bag.Current() + switch current.ResourceTypeID { + case resourceTypeUser.Id: + if current.ResourceID != "" { + oktaUser, resp, err := o.client.User.GetUser(ctx, current.ResourceID) + if err != nil { + return nil, "", nil, fmt.Errorf("okta-connectorv2: failed to get user: %w", err) + } + _, annos, err = parseResp(resp) + if err != nil { + return nil, "", nil, fmt.Errorf("okta-connectorv2: failed to parse response: %w", err) + } + + resource, err := userResource(ctx, oktaUser) + if err != nil { + return nil, "", nil, fmt.Errorf("okta-connectorv2: failed to create user resource: %w", err) + } + rv = append(rv, resource) + bag.Pop() + } else { + qp := queryParams(pToken.Size, current.Token) + adminFlags, respCtx, err := listAdministratorRoleFlags(ctx, o.client, pToken, qp) + if err != nil { + // We don't have permissions to fetch role assignments, so return an empty list + if errors.Is(err, errMissingRolePermissions) { + return nil, "", nil, nil + } + return nil, "", nil, fmt.Errorf("okta-connectorv2: failed to list users: %w", err) + } + + nextPage, respAnnos, err := parseResp(respCtx.OktaResponse) + if err != nil { + return nil, "", nil, fmt.Errorf("okta-connectorv2: failed to parse response: %w", err) + } + + err = bag.Next(nextPage) + if err != nil { + return nil, "", nil, fmt.Errorf("okta-connectorv2: failed to fetch bag.Next: %w", err) + } + + annos = respAnnos + + for _, administratorRoleFlag := range adminFlags { + bag.Push(pagination.PageState{ + ResourceTypeID: resourceTypeUser.Id, + ResourceID: administratorRoleFlag.UserId, + }) + } + } + case resourceTypeRole.Id: + for _, role := range standardRoleTypes { + resource, err := roleResource(ctx, role) + if err != nil { + return nil, "", nil, fmt.Errorf("okta-connectorv2: failed to create role resource: %w", err) + } + + rv = append(rv, resource) + } + bag.Pop() + } + + pageToken, err := bag.Marshal() + if err != nil { + return nil, "", nil, err + } + + return rv, pageToken, annos, nil +} + +func (o *ciamResourceBuilder) Entitlements(ctx context.Context, resource *v2.Resource, pToken *pagination.Token) ([]*v2.Entitlement, string, annotations.Annotations, error) { + var rv []*v2.Entitlement + + role := standardRoleFromType(resource.Id.GetResource()) + + en := sdkEntitlement.NewAssignmentEntitlement(resource, "assigned", + sdkEntitlement.WithDisplayName(fmt.Sprintf("%s Role Member", role.Label)), + sdkEntitlement.WithDescription(fmt.Sprintf("Has the %s role in Okta", role.Label)), + sdkEntitlement.WithAnnotation(&v2.V1Identifier{ + Id: V1MembershipEntitlementID(role.Type), + }), + sdkEntitlement.WithGrantableTo(resourceTypeUser), + ) + + rv = append(rv, en) + + return rv, "", nil, nil +} + +func (o *ciamResourceBuilder) Grants(ctx context.Context, resource *v2.Resource, pToken *pagination.Token) ([]*v2.Grant, string, annotations.Annotations, error) { + var rv []*v2.Grant + bag, page, err := parsePageToken(pToken.Token, resource.Id) + if err != nil { + return nil, "", nil, fmt.Errorf("okta-connectorv2: failed to parse page token: %w", err) + } + + qp := queryParams(pToken.Size, page) + adminFlags, respCtx, err := listAdministratorRoleFlags(ctx, o.client, pToken, qp) + if err != nil { + // We don't have permissions to fetch role assignments, so return an empty list + if errors.Is(err, errMissingRolePermissions) { + return nil, "", nil, nil + } + return nil, "", nil, fmt.Errorf("okta-connectorv2: failed to list users: %w", err) + } + + nextPage, annos, err := parseResp(respCtx.OktaResponse) + if err != nil { + return nil, "", nil, fmt.Errorf("okta-connectorv2: failed to parse response: %w", err) + } + + err = bag.Next(nextPage) + if err != nil { + return nil, "", nil, fmt.Errorf("okta-connectorv2: failed to fetch bag.Next: %w", err) + } + + for _, administratorRoleFlag := range adminFlags { + if userHasRoleAccess(administratorRoleFlag, resource) { + userID := administratorRoleFlag.UserId + roleID := resource.Id.GetResource() + rv = append(rv, roleGrant(userID, roleID, resource)) + } + } + + pageToken, err := bag.Marshal() + if err != nil { + return nil, "", nil, err + } + + return rv, pageToken, annos, nil +} + +func (g *ciamResourceBuilder) Grant(ctx context.Context, principal *v2.Resource, entitlement *v2.Entitlement) (annotations.Annotations, error) { + l := ctxzap.Extract(ctx) + if principal.Id.ResourceType != resourceTypeUser.Id { + l.Warn( + "okta-connector: only users or groups can be granted role membership", + zap.String("principal_type", principal.Id.ResourceType), + zap.String("principal_id", principal.Id.Resource), + ) + return nil, fmt.Errorf("okta-connector: only users or groups can be granted repo membership") + } + + roleId := entitlement.Resource.Id.Resource + switch principal.Id.ResourceType { + case resourceTypeUser.Id: + userId := principal.Id.Resource + role := okta.AssignRoleRequest{ + Type: roleId, + } + createdRole, response, err := g.client.User.AssignRoleToUser(ctx, userId, role, nil) + if err != nil { + defer response.Body.Close() + errOkta, err := getError(response) + if err != nil { + return nil, err + } + + if errOkta.ErrorCode == "E0000090" { + l.Warn( + "okta-connector: The role specified is already assigned to the user", + zap.String("principal_id", principal.Id.String()), + zap.String("principal_type", principal.Id.ResourceType), + zap.String("ErrorCode", errOkta.ErrorCode), + zap.String("ErrorSummary", errOkta.ErrorSummary), + ) + } + + return nil, fmt.Errorf("okta-connector: %v", errOkta) + } + + l.Warn("Role Membership has been created.", + zap.String("ID", createdRole.Id), + zap.String("Description", createdRole.Description), + zap.Time("CreatedAt", *createdRole.Created), + zap.String("Label", createdRole.Label), + zap.String("Status", createdRole.Status), + zap.String("Type", createdRole.Type), + ) + case resourceTypeGroup.Id: + groupId := principal.Id.Resource + role := okta.AssignRoleRequest{ + Type: roleId, + } + createdRole, response, err := g.client.Group.AssignRoleToGroup(ctx, groupId, role, nil) + if err != nil { + defer response.Body.Close() + errOkta, err := getError(response) + if err != nil { + return nil, err + } + + if errOkta.ErrorCode == "E0000090" { + l.Warn( + "okta-connector: The role specified is already assigned to the group", + zap.String("principal_id", principal.Id.String()), + zap.String("principal_type", principal.Id.ResourceType), + zap.String("ErrorCode", errOkta.ErrorCode), + zap.String("ErrorSummary", errOkta.ErrorSummary), + ) + } + + return nil, fmt.Errorf("okta-connector: %v", errOkta) + } + + l.Warn("Role Membership has been created.", + zap.String("ID", createdRole.Id), + zap.String("Description", createdRole.Description), + zap.Time("CreatedAt", *createdRole.Created), + zap.String("Label", createdRole.Label), + zap.String("Status", createdRole.Status), + zap.String("Type", createdRole.Type), + ) + default: + return nil, fmt.Errorf("okta-connector: invalid grant resource type: %s", principal.Id.ResourceType) + } + + return nil, nil +} + +func (g *ciamResourceBuilder) Revoke(ctx context.Context, grant *v2.Grant) (annotations.Annotations, error) { + l := ctxzap.Extract(ctx) + entitlement := grant.Entitlement + principal := grant.Principal + roleId := "" + if principal.Id.ResourceType != resourceTypeUser.Id { + l.Warn( + "okta-connector: only users or groups can have role membership revoked", + zap.String("principal_type", principal.Id.ResourceType), + zap.String("principal_id", principal.Id.Resource), + ) + return nil, fmt.Errorf("okta-connector:only users or groups can have role membership revoked") + } + + roleType := entitlement.Resource.Id.Resource + switch principal.Id.ResourceType { + case resourceTypeUser.Id: + userId := principal.Id.Resource + roles, response, err := g.client.User.ListAssignedRolesForUser(ctx, userId, nil) + if err != nil { + return nil, fmt.Errorf("okta-connector: failed to get roles: %s %s", err.Error(), response.Body) + } + + rolePos := slices.IndexFunc(roles, func(r *okta.Role) bool { + return r.Type == roleType && r.Status == "ACTIVE" + }) + if rolePos == NF { + l.Warn( + "okta-connector: user does not have role membership", + zap.String("principal_id", principal.Id.String()), + zap.String("principal_type", principal.Id.ResourceType), + zap.String("role_type", entitlement.Resource.Id.Resource), + ) + return nil, fmt.Errorf("okta-connector: user does not have role membership") + } + + roleId = roles[rolePos].Id + response, err = g.client.User.RemoveRoleFromUser(ctx, userId, roleId) + if err != nil { + return nil, fmt.Errorf("okta-connector: failed to remove role: %s %s", err.Error(), response.Body) + } + + if response.StatusCode == http.StatusNoContent { + l.Warn("Membership has been revoked", + zap.String("Status", response.Status), + ) + } + case resourceTypeGroup.Id: + groupId := principal.Id.Resource + roles, response, err := g.client.Group.ListGroupAssignedRoles(ctx, groupId, nil) + if err != nil { + return nil, fmt.Errorf("okta-connector: failed to get roles: %s %s", err.Error(), response.Body) + } + + rolePos := slices.IndexFunc(roles, func(r *okta.Role) bool { + return r.Type == roleType && r.Status == "ACTIVE" + }) + if rolePos == NF { + l.Warn( + "okta-connector: group does not have role membership", + zap.String("principal_id", principal.Id.String()), + zap.String("principal_type", principal.Id.ResourceType), + zap.String("role_type", entitlement.Resource.Id.Resource), + ) + return nil, fmt.Errorf("okta-connector: group does not have role membership") + } + + roleId = roles[rolePos].Id + response, err = g.client.Group.RemoveRoleFromGroup(ctx, groupId, roleId) + if err != nil { + return nil, fmt.Errorf("okta-connector: failed to remove role: %s %s", err.Error(), response.Body) + } + + if response.StatusCode == http.StatusNoContent { + l.Warn("Membership has been revoked", + zap.String("Status", response.Status), + ) + } + default: + return nil, fmt.Errorf("okta-connector: invalid grant resource type: %s", principal.Id.ResourceType) + } + + return nil, nil +} +func (o *ciamResourceBuilder) ResourceType(ctx context.Context) *v2.ResourceType { + return resourceTypeRole +} + +func ciamBuilder(client *okta.Client) *ciamResourceBuilder { + return &ciamResourceBuilder{ + client: client, + } +} diff --git a/pkg/connector/connector.go b/pkg/connector/connector.go index 7ec9e283..ce55d2a4 100644 --- a/pkg/connector/connector.go +++ b/pkg/connector/connector.go @@ -20,6 +20,7 @@ type Okta struct { domain string apiToken string syncInactiveApps bool + ciamMode bool } // config defines the external configuration required for the connector to run. @@ -33,6 +34,7 @@ type Config struct { OktaPrivateKeyId string `mapstructure:"okta-private-key-id"` SyncInactiveApps bool `mapstructure:"sync-inactive-apps"` OktaProvisioning bool `mapstructure:"provisioning"` + Ciam bool `mapstructure:"ciam"` } func v1AnnotationsForResourceType(resourceTypeID string, skipEntitlementsAndGrants bool) annotations.Annotations { @@ -88,6 +90,12 @@ var ( ) func (o *Okta) ResourceSyncers(ctx context.Context) []connectorbuilder.ResourceSyncer { + if o.ciamMode { + return []connectorbuilder.ResourceSyncer{ + ciamUser(), + ciamBuilder(o.client), + } + } return []connectorbuilder.ResourceSyncer{ roleBuilder(o.domain, o.apiToken, o.client), userBuilder(o.domain, o.apiToken, o.client), @@ -197,5 +205,6 @@ func New(ctx context.Context, cfg *Config) (*Okta, error) { domain: cfg.Domain, apiToken: cfg.ApiToken, syncInactiveApps: cfg.SyncInactiveApps, + ciamMode: cfg.Ciam, }, nil } diff --git a/pkg/connector/group.go b/pkg/connector/group.go index fbabb8a9..9090026d 100644 --- a/pkg/connector/group.go +++ b/pkg/connector/group.go @@ -3,7 +3,6 @@ package connector import ( "context" "fmt" - "slices" "time" "go.uber.org/zap" @@ -12,6 +11,8 @@ import ( v2 "github.com/conductorone/baton-sdk/pb/c1/connector/v2" "github.com/conductorone/baton-sdk/pkg/annotations" "github.com/conductorone/baton-sdk/pkg/pagination" + sdkEntitlement "github.com/conductorone/baton-sdk/pkg/types/entitlement" + sdkGrant "github.com/conductorone/baton-sdk/pkg/types/grant" "github.com/grpc-ecosystem/go-grpc-middleware/logging/zap/ctxzap" "github.com/okta/okta-sdk-golang/v2/okta" "github.com/okta/okta-sdk-golang/v2/okta/query" @@ -81,9 +82,7 @@ func (o *groupResourceType) Entitlements( token *pagination.Token, ) ([]*v2.Entitlement, string, annotations.Annotations, error) { var rv []*v2.Entitlement - for _, level := range standardRoleTypes { - rv = append(rv, o.groupEntitlement(ctx, resource, level.Type)) - } + rv = append(rv, o.groupEntitlement(ctx, resource)) return rv, "", nil, nil } @@ -209,14 +208,7 @@ func (o *groupResourceType) Grants( } for _, user := range users { - roles, _, err := o.client.User.ListAssignedRolesForUser(ctx, user.Id, nil) - if err != nil { - return nil, "", annos, err - } - - for _, role := range roles { - rv = append(rv, groupGrant(resource, user, role.Type)) - } + rv = append(rv, groupGrant(resource, user)) } pageToken, err := bag.Marshal() @@ -303,39 +295,23 @@ func (o *groupResourceType) groupTrait(ctx context.Context, group *okta.Group) ( return ret, nil } -func (o *groupResourceType) groupEntitlement(ctx context.Context, resource *v2.Resource, permission string) *v2.Entitlement { - var annos annotations.Annotations - annos.Update(&v2.V1Identifier{ - Id: V1MembershipEntitlementID(resource.Id.GetResource()), - }) - return &v2.Entitlement{ - Id: fmtResourceRole(resource.Id, permission), - Resource: resource, - DisplayName: fmt.Sprintf("%s Group %s", resource.DisplayName, permission), - Description: fmt.Sprintf("%s in Okta group %s", permission, resource.DisplayName), - Annotations: annos, - GrantableTo: []*v2.ResourceType{resourceTypeUser}, - Purpose: v2.Entitlement_PURPOSE_VALUE_ASSIGNMENT, - Slug: fmt.Sprintf("%s - %s", resource.DisplayName, permission), - } +func (o *groupResourceType) groupEntitlement(ctx context.Context, resource *v2.Resource) *v2.Entitlement { + return sdkEntitlement.NewAssignmentEntitlement(resource, "member", + sdkEntitlement.WithAnnotation(&v2.V1Identifier{ + Id: V1MembershipEntitlementID(resource.Id.GetResource()), + }), + sdkEntitlement.WithGrantableTo(resourceTypeUser), + sdkEntitlement.WithDisplayName(fmt.Sprintf("%s Group Member", resource.DisplayName)), + sdkEntitlement.WithDescription(fmt.Sprintf("Member of %s group in Okta", resource.DisplayName)), + ) } -func groupGrant(resource *v2.Resource, user *okta.User, permission string) *v2.Grant { - var annos annotations.Annotations +func groupGrant(resource *v2.Resource, user *okta.User) *v2.Grant { ur := &v2.Resource{Id: &v2.ResourceId{ResourceType: resourceTypeUser.Id, Resource: user.Id}} - annos.Update(&v2.V1Identifier{ - Id: fmtGrantIdV1(V1MembershipEntitlementID(resource.Id.Resource), user.Id), - }) - return &v2.Grant{ - Id: fmtResourceGrant(resource.Id, ur.Id, permission), - Entitlement: &v2.Entitlement{ - Id: fmtResourceRole(resource.Id, permission), - Resource: resource, - }, - Annotations: annos, - Principal: ur, - } + return sdkGrant.NewGrant(resource, "member", ur, sdkGrant.WithAnnotation(&v2.V1Identifier{ + Id: fmtGrantIdV1(V1MembershipEntitlementID(resource.Id.Resource), user.Id), + })) } func (g *groupResourceType) Grant(ctx context.Context, principal *v2.Resource, entitlement *v2.Entitlement) (annotations.Annotations, error) { @@ -351,29 +327,13 @@ func (g *groupResourceType) Grant(ctx context.Context, principal *v2.Resource, e groupId := entitlement.Resource.Id.Resource userId := principal.Id.Resource - users, _, err := g.client.Group.ListGroupUsers(ctx, groupId, nil) - if err != nil { - return nil, err - } - - groupPos := slices.IndexFunc(users, func(u *okta.User) bool { - return u.Id == userId - }) - if groupPos != NF { - l.Warn( - "okta-connector: The user specified is already a member of the group", - zap.String("principal_id", principal.Id.String()), - zap.String("principal_type", principal.Id.ResourceType), - ) - return nil, fmt.Errorf("okta-connector: The user specified is already a member of the group") - } response, err := g.client.Group.AddUserToGroup(ctx, groupId, userId) if err != nil { return nil, err } - l.Warn("Membership has been created", + l.Debug("Membership has been created", zap.String("Status", response.Status), ) @@ -395,23 +355,6 @@ func (g *groupResourceType) Revoke(ctx context.Context, grant *v2.Grant) (annota groupId := entitlement.Resource.Id.Resource userId := principal.Id.Resource - users, _, err := g.client.Group.ListGroupUsers(ctx, groupId, nil) - if err != nil { - return nil, err - } - - groupPos := slices.IndexFunc(users, func(u *okta.User) bool { - return u.Id == userId - }) - if groupPos == NF { - l.Warn( - "okta-connector: user does not have group membership", - zap.String("principal_id", principal.Id.String()), - zap.String("principal_type", principal.Id.ResourceType), - zap.String("role_type", entitlement.Resource.Id.Resource), - ) - return nil, fmt.Errorf("okta-connector: user does not have group membership") - } response, err := g.client.Group.RemoveUserFromGroup(ctx, groupId, userId) if err != nil { diff --git a/pkg/connector/role.go b/pkg/connector/role.go index 597a5847..abdadec6 100644 --- a/pkg/connector/role.go +++ b/pkg/connector/role.go @@ -6,15 +6,18 @@ import ( "fmt" "net/http" "slices" + "strings" v2 "github.com/conductorone/baton-sdk/pb/c1/connector/v2" "github.com/conductorone/baton-sdk/pkg/annotations" "github.com/conductorone/baton-sdk/pkg/pagination" + sdkEntitlement "github.com/conductorone/baton-sdk/pkg/types/entitlement" + sdkGrant "github.com/conductorone/baton-sdk/pkg/types/grant" + sdkResource "github.com/conductorone/baton-sdk/pkg/types/resource" "github.com/grpc-ecosystem/go-grpc-middleware/logging/zap/ctxzap" "github.com/okta/okta-sdk-golang/v2/okta" "github.com/okta/okta-sdk-golang/v2/okta/query" "go.uber.org/zap" - "google.golang.org/protobuf/types/known/structpb" ) var errMissingRolePermissions = errors.New("okta-connectorv2: missing role permissions") @@ -27,7 +30,7 @@ var standardRoleTypes = []*okta.Role{ {Type: "ORG_ADMIN", Label: "Organizational Administrator"}, {Type: "READ_ONLY_ADMIN", Label: "Read-Only Administrator"}, {Type: "REPORT_ADMIN", Label: "Report Administrator"}, - {Type: "SUPER_ADMIN", Label: "Super Administrator"}, + {Type: "SUPER_ORG_ADMIN", Label: "Super Administrator"}, // The type name is strange, but it is what Okta uses for the Group Administrator standard role {Type: "USER_ADMIN", Label: "Group Administrator"}, {Type: "HELP_DESK_ADMIN", Label: "Help Desk Administrator"}, @@ -83,7 +86,16 @@ func (o *roleResourceType) Entitlements( role := standardRoleFromType(resource.Id.GetResource()) - rv = append(rv, roleEntitlement(ctx, resource, role)) + en := sdkEntitlement.NewAssignmentEntitlement(resource, "assigned", + sdkEntitlement.WithDisplayName(fmt.Sprintf("%s Role Member", role.Label)), + sdkEntitlement.WithDescription(fmt.Sprintf("Has the %s role in Okta", role.Label)), + sdkEntitlement.WithAnnotation(&v2.V1Identifier{ + Id: V1MembershipEntitlementID(role.Type), + }), + sdkEntitlement.WithGrantableTo(resourceTypeUser), + ) + + rv = append(rv, en) return rv, "", nil, nil } @@ -136,30 +148,21 @@ func (o *roleResourceType) Grants( } func userHasRoleAccess(administratorRoleFlags *administratorRoleFlags, resource *v2.Resource) bool { - switch resource.Id.GetResource() { - case "API_ACCESS_MANAGEMENT_ADMIN": - return administratorRoleFlags.ApiAccessManagementAdmin - case "MOBILE_ADMIN": - return administratorRoleFlags.MobileAdmin - case "ORG_ADMIN": - return administratorRoleFlags.OrgAdmin - case "READ_ONLY_ADMIN": - return administratorRoleFlags.ReadOnlyAdmin - case "REPORT_ADMIN": - return administratorRoleFlags.ReportAdmin - case "SUPER_ADMIN": - return administratorRoleFlags.SuperAdmin - case "USER_ADMIN": - return administratorRoleFlags.UserAdmin - case "HELP_DESK_ADMIN": - return administratorRoleFlags.HelpDeskAdmin - case "APP_ADMIN": - return administratorRoleFlags.AppAdmin - case "GROUP_MEMBERSHIP_ADMIN": - return administratorRoleFlags.GroupMembershipAdmin - default: - return false + roleName := strings.ReplaceAll(strings.ToLower(resource.Id.GetResource()), "_", "") + + for _, role := range administratorRoleFlags.RolesFromIndividualAssignments { + if strings.ToLower(role) == roleName { + return true + } + } + + for _, role := range administratorRoleFlags.RolesFromGroup { + if strings.ToLower(role) == roleName { + return true + } } + + return false } func (o *roleResourceType) listSystemRoles( @@ -209,6 +212,7 @@ type administratorRoleFlags struct { ForAllHelpDeskAdminGroups bool `json:"forAllHelpDeskAdminGroups"` ForAllGroupMembershipAdminGroups bool `json:"forAllGroupMembershipAdminGroups"` RolesFromIndividualAssignments []string `json:"rolesFromIndividualAssignments"` + RolesFromGroup []string `json:"rolesFromGroup"` } func listAdministratorRoleFlags(ctx context.Context, client *okta.Client, token *pagination.Token, qp *query.Params) ([]*administratorRoleFlags, *responseContext, error) { @@ -244,24 +248,6 @@ func listAdministratorRoleFlags(ctx context.Context, client *okta.Client, token return adminFlags, respCtx, nil } -func roleEntitlement(ctx context.Context, resource *v2.Resource, role *okta.Role) *v2.Entitlement { - var annos annotations.Annotations - annos.Update(&v2.V1Identifier{ - Id: V1MembershipEntitlementID(role.Type), - }) - - return &v2.Entitlement{ - Id: fmtResourceRole(resource.Id, role.Type), - Resource: resource, - DisplayName: fmt.Sprintf("%s Role Member", role.Label), - Description: fmt.Sprintf("Has the %s role in Okta", role.Label), - Annotations: annos, - GrantableTo: []*v2.ResourceType{resourceTypeUser}, - Purpose: v2.Entitlement_PURPOSE_VALUE_ASSIGNMENT, - Slug: role.Type, - } -} - func standardRoleFromType(roleType string) *okta.Role { for _, standardRoleType := range standardRoleTypes { if standardRoleType.Type == roleType { @@ -273,56 +259,30 @@ func standardRoleFromType(roleType string) *okta.Role { } func roleResource(ctx context.Context, role *okta.Role) (*v2.Resource, error) { - trait, err := roleTrait(ctx, role) - if err != nil { - return nil, err + profile := map[string]interface{}{ + "type": role.Type, + "label": role.Label, } - var annos annotations.Annotations - annos.Update(trait) - annos.Update(&v2.V1Identifier{ - Id: fmtResourceIdV1(role.Type), - }) - - return &v2.Resource{ - Id: fmtResourceId(resourceTypeRole.Id, role.Type), - DisplayName: role.Type, - Annotations: annos, - }, nil + return sdkResource.NewRoleResource( + role.Label, + resourceTypeRole, + role.Type, + []sdkResource.RoleTraitOption{sdkResource.WithRoleProfile(profile)}, + sdkResource.WithAnnotation(&v2.V1Identifier{ + Id: fmtResourceIdV1(role.Type), + }), + ) } func roleGrant(userID string, roleID string, resource *v2.Resource) *v2.Grant { - var annos annotations.Annotations ur := &v2.Resource{Id: &v2.ResourceId{ResourceType: resourceTypeUser.Id, Resource: userID}} - annos.Update(&v2.V1Identifier{ - Id: fmtGrantIdV1(V1MembershipEntitlementID(resource.Id.Resource), userID), - }) - - return &v2.Grant{ - Id: fmtResourceGrant(resource.Id, ur.Id, roleID), - Entitlement: &v2.Entitlement{ - Id: fmtResourceRole(resource.Id, roleID), - Resource: resource, - }, - Annotations: annos, - Principal: ur, - } -} - -func roleTrait(ctx context.Context, role *okta.Role) (*v2.RoleTrait, error) { - profile, err := structpb.NewStruct(map[string]interface{}{ - "type": role.Type, - "label": role.Label, - }) - if err != nil { - return nil, fmt.Errorf("okta-connectorv2: failed to construct role profile for role trait: %w", err) - } - - ret := &v2.RoleTrait{ - Profile: profile, - } - return ret, nil + return sdkGrant.NewGrant(resource, "assigned", ur, + sdkGrant.WithAnnotation(&v2.V1Identifier{ + Id: fmtGrantIdV1(V1MembershipEntitlementID(resource.Id.Resource), userID), + }), + ) } func (g *roleResourceType) Grant(ctx context.Context, principal *v2.Resource, entitlement *v2.Entitlement) (annotations.Annotations, error) { diff --git a/vendor/github.com/BurntSushi/toml/README.md b/vendor/github.com/BurntSushi/toml/README.md index 3651cfa9..639e6c39 100644 --- a/vendor/github.com/BurntSushi/toml/README.md +++ b/vendor/github.com/BurntSushi/toml/README.md @@ -9,7 +9,7 @@ See the [releases page](https://github.com/BurntSushi/toml/releases) for a changelog; this information is also in the git tag annotations (e.g. `git show v0.4.0`). -This library requires Go 1.13 or newer; add it to your go.mod with: +This library requires Go 1.18 or newer; add it to your go.mod with: % go get github.com/BurntSushi/toml@latest diff --git a/vendor/github.com/BurntSushi/toml/decode.go b/vendor/github.com/BurntSushi/toml/decode.go index 4d38f3bf..7aaf462c 100644 --- a/vendor/github.com/BurntSushi/toml/decode.go +++ b/vendor/github.com/BurntSushi/toml/decode.go @@ -6,7 +6,7 @@ import ( "encoding/json" "fmt" "io" - "io/ioutil" + "io/fs" "math" "os" "reflect" @@ -18,13 +18,13 @@ import ( // Unmarshaler is the interface implemented by objects that can unmarshal a // TOML description of themselves. type Unmarshaler interface { - UnmarshalTOML(interface{}) error + UnmarshalTOML(any) error } // Unmarshal decodes the contents of data in TOML format into a pointer v. // // See [Decoder] for a description of the decoding process. -func Unmarshal(data []byte, v interface{}) error { +func Unmarshal(data []byte, v any) error { _, err := NewDecoder(bytes.NewReader(data)).Decode(v) return err } @@ -32,12 +32,12 @@ func Unmarshal(data []byte, v interface{}) error { // Decode the TOML data in to the pointer v. // // See [Decoder] for a description of the decoding process. -func Decode(data string, v interface{}) (MetaData, error) { +func Decode(data string, v any) (MetaData, error) { return NewDecoder(strings.NewReader(data)).Decode(v) } // DecodeFile reads the contents of a file and decodes it with [Decode]. -func DecodeFile(path string, v interface{}) (MetaData, error) { +func DecodeFile(path string, v any) (MetaData, error) { fp, err := os.Open(path) if err != nil { return MetaData{}, err @@ -46,6 +46,17 @@ func DecodeFile(path string, v interface{}) (MetaData, error) { return NewDecoder(fp).Decode(v) } +// DecodeFS reads the contents of a file from [fs.FS] and decodes it with +// [Decode]. +func DecodeFS(fsys fs.FS, path string, v any) (MetaData, error) { + fp, err := fsys.Open(path) + if err != nil { + return MetaData{}, err + } + defer fp.Close() + return NewDecoder(fp).Decode(v) +} + // Primitive is a TOML value that hasn't been decoded into a Go value. // // This type can be used for any value, which will cause decoding to be delayed. @@ -58,7 +69,7 @@ func DecodeFile(path string, v interface{}) (MetaData, error) { // overhead of reflection. They can be useful when you don't know the exact type // of TOML data until runtime. type Primitive struct { - undecoded interface{} + undecoded any context Key } @@ -122,7 +133,7 @@ var ( ) // Decode TOML data in to the pointer `v`. -func (dec *Decoder) Decode(v interface{}) (MetaData, error) { +func (dec *Decoder) Decode(v any) (MetaData, error) { rv := reflect.ValueOf(v) if rv.Kind() != reflect.Ptr { s := "%q" @@ -136,8 +147,8 @@ func (dec *Decoder) Decode(v interface{}) (MetaData, error) { return MetaData{}, fmt.Errorf("toml: cannot decode to nil value of %q", reflect.TypeOf(v)) } - // Check if this is a supported type: struct, map, interface{}, or something - // that implements UnmarshalTOML or UnmarshalText. + // Check if this is a supported type: struct, map, any, or something that + // implements UnmarshalTOML or UnmarshalText. rv = indirect(rv) rt := rv.Type() if rv.Kind() != reflect.Struct && rv.Kind() != reflect.Map && @@ -148,7 +159,7 @@ func (dec *Decoder) Decode(v interface{}) (MetaData, error) { // TODO: parser should read from io.Reader? Or at the very least, make it // read from []byte rather than string - data, err := ioutil.ReadAll(dec.r) + data, err := io.ReadAll(dec.r) if err != nil { return MetaData{}, err } @@ -179,7 +190,7 @@ func (dec *Decoder) Decode(v interface{}) (MetaData, error) { // will only reflect keys that were decoded. Namely, any keys hidden behind a // Primitive will be considered undecoded. Executing this method will update the // undecoded keys in the meta data. (See the example.) -func (md *MetaData) PrimitiveDecode(primValue Primitive, v interface{}) error { +func (md *MetaData) PrimitiveDecode(primValue Primitive, v any) error { md.context = primValue.context defer func() { md.context = nil }() return md.unify(primValue.undecoded, rvalue(v)) @@ -190,7 +201,7 @@ func (md *MetaData) PrimitiveDecode(primValue Primitive, v interface{}) error { // // Any type mismatch produces an error. Finding a type that we don't know // how to handle produces an unsupported type error. -func (md *MetaData) unify(data interface{}, rv reflect.Value) error { +func (md *MetaData) unify(data any, rv reflect.Value) error { // Special case. Look for a `Primitive` value. // TODO: #76 would make this superfluous after implemented. if rv.Type() == primitiveType { @@ -207,7 +218,11 @@ func (md *MetaData) unify(data interface{}, rv reflect.Value) error { rvi := rv.Interface() if v, ok := rvi.(Unmarshaler); ok { - return v.UnmarshalTOML(data) + err := v.UnmarshalTOML(data) + if err != nil { + return md.parseErr(err) + } + return nil } if v, ok := rvi.(encoding.TextUnmarshaler); ok { return md.unifyText(data, v) @@ -227,14 +242,6 @@ func (md *MetaData) unify(data interface{}, rv reflect.Value) error { return md.unifyInt(data, rv) } switch k { - case reflect.Ptr: - elem := reflect.New(rv.Type().Elem()) - err := md.unify(data, reflect.Indirect(elem)) - if err != nil { - return err - } - rv.Set(elem) - return nil case reflect.Struct: return md.unifyStruct(data, rv) case reflect.Map: @@ -258,14 +265,13 @@ func (md *MetaData) unify(data interface{}, rv reflect.Value) error { return md.e("unsupported type %s", rv.Kind()) } -func (md *MetaData) unifyStruct(mapping interface{}, rv reflect.Value) error { - tmap, ok := mapping.(map[string]interface{}) +func (md *MetaData) unifyStruct(mapping any, rv reflect.Value) error { + tmap, ok := mapping.(map[string]any) if !ok { if mapping == nil { return nil } - return md.e("type mismatch for %s: expected table but found %T", - rv.Type().String(), mapping) + return md.e("type mismatch for %s: expected table but found %s", rv.Type().String(), fmtType(mapping)) } for key, datum := range tmap { @@ -304,14 +310,14 @@ func (md *MetaData) unifyStruct(mapping interface{}, rv reflect.Value) error { return nil } -func (md *MetaData) unifyMap(mapping interface{}, rv reflect.Value) error { +func (md *MetaData) unifyMap(mapping any, rv reflect.Value) error { keyType := rv.Type().Key().Kind() if keyType != reflect.String && keyType != reflect.Interface { return fmt.Errorf("toml: cannot decode to a map with non-string key type (%s in %q)", keyType, rv.Type()) } - tmap, ok := mapping.(map[string]interface{}) + tmap, ok := mapping.(map[string]any) if !ok { if tmap == nil { return nil @@ -347,7 +353,7 @@ func (md *MetaData) unifyMap(mapping interface{}, rv reflect.Value) error { return nil } -func (md *MetaData) unifyArray(data interface{}, rv reflect.Value) error { +func (md *MetaData) unifyArray(data any, rv reflect.Value) error { datav := reflect.ValueOf(data) if datav.Kind() != reflect.Slice { if !datav.IsValid() { @@ -361,7 +367,7 @@ func (md *MetaData) unifyArray(data interface{}, rv reflect.Value) error { return md.unifySliceArray(datav, rv) } -func (md *MetaData) unifySlice(data interface{}, rv reflect.Value) error { +func (md *MetaData) unifySlice(data any, rv reflect.Value) error { datav := reflect.ValueOf(data) if datav.Kind() != reflect.Slice { if !datav.IsValid() { @@ -388,7 +394,7 @@ func (md *MetaData) unifySliceArray(data, rv reflect.Value) error { return nil } -func (md *MetaData) unifyString(data interface{}, rv reflect.Value) error { +func (md *MetaData) unifyString(data any, rv reflect.Value) error { _, ok := rv.Interface().(json.Number) if ok { if i, ok := data.(int64); ok { @@ -408,7 +414,7 @@ func (md *MetaData) unifyString(data interface{}, rv reflect.Value) error { return md.badtype("string", data) } -func (md *MetaData) unifyFloat64(data interface{}, rv reflect.Value) error { +func (md *MetaData) unifyFloat64(data any, rv reflect.Value) error { rvk := rv.Kind() if num, ok := data.(float64); ok { @@ -429,7 +435,7 @@ func (md *MetaData) unifyFloat64(data interface{}, rv reflect.Value) error { if num, ok := data.(int64); ok { if (rvk == reflect.Float32 && (num < -maxSafeFloat32Int || num > maxSafeFloat32Int)) || (rvk == reflect.Float64 && (num < -maxSafeFloat64Int || num > maxSafeFloat64Int)) { - return md.parseErr(errParseRange{i: num, size: rvk.String()}) + return md.parseErr(errUnsafeFloat{i: num, size: rvk.String()}) } rv.SetFloat(float64(num)) return nil @@ -438,7 +444,7 @@ func (md *MetaData) unifyFloat64(data interface{}, rv reflect.Value) error { return md.badtype("float", data) } -func (md *MetaData) unifyInt(data interface{}, rv reflect.Value) error { +func (md *MetaData) unifyInt(data any, rv reflect.Value) error { _, ok := rv.Interface().(time.Duration) if ok { // Parse as string duration, and fall back to regular integer parsing @@ -481,7 +487,7 @@ func (md *MetaData) unifyInt(data interface{}, rv reflect.Value) error { return nil } -func (md *MetaData) unifyBool(data interface{}, rv reflect.Value) error { +func (md *MetaData) unifyBool(data any, rv reflect.Value) error { if b, ok := data.(bool); ok { rv.SetBool(b) return nil @@ -489,12 +495,12 @@ func (md *MetaData) unifyBool(data interface{}, rv reflect.Value) error { return md.badtype("boolean", data) } -func (md *MetaData) unifyAnything(data interface{}, rv reflect.Value) error { +func (md *MetaData) unifyAnything(data any, rv reflect.Value) error { rv.Set(reflect.ValueOf(data)) return nil } -func (md *MetaData) unifyText(data interface{}, v encoding.TextUnmarshaler) error { +func (md *MetaData) unifyText(data any, v encoding.TextUnmarshaler) error { var s string switch sdata := data.(type) { case Marshaler: @@ -523,13 +529,13 @@ func (md *MetaData) unifyText(data interface{}, v encoding.TextUnmarshaler) erro return md.badtype("primitive (string-like)", data) } if err := v.UnmarshalText([]byte(s)); err != nil { - return err + return md.parseErr(err) } return nil } -func (md *MetaData) badtype(dst string, data interface{}) error { - return md.e("incompatible types: TOML value has type %T; destination has type %s", data, dst) +func (md *MetaData) badtype(dst string, data any) error { + return md.e("incompatible types: TOML value has type %s; destination has type %s", fmtType(data), dst) } func (md *MetaData) parseErr(err error) error { @@ -543,7 +549,7 @@ func (md *MetaData) parseErr(err error) error { } } -func (md *MetaData) e(format string, args ...interface{}) error { +func (md *MetaData) e(format string, args ...any) error { f := "toml: " if len(md.context) > 0 { f = fmt.Sprintf("toml: (last key %q): ", md.context) @@ -556,7 +562,7 @@ func (md *MetaData) e(format string, args ...interface{}) error { } // rvalue returns a reflect.Value of `v`. All pointers are resolved. -func rvalue(v interface{}) reflect.Value { +func rvalue(v any) reflect.Value { return indirect(reflect.ValueOf(v)) } @@ -600,3 +606,8 @@ func isUnifiable(rv reflect.Value) bool { } return false } + +// fmt %T with "interface {}" replaced with "any", which is far more readable. +func fmtType(t any) string { + return strings.ReplaceAll(fmt.Sprintf("%T", t), "interface {}", "any") +} diff --git a/vendor/github.com/BurntSushi/toml/decode_go116.go b/vendor/github.com/BurntSushi/toml/decode_go116.go deleted file mode 100644 index 086d0b68..00000000 --- a/vendor/github.com/BurntSushi/toml/decode_go116.go +++ /dev/null @@ -1,19 +0,0 @@ -//go:build go1.16 -// +build go1.16 - -package toml - -import ( - "io/fs" -) - -// DecodeFS reads the contents of a file from [fs.FS] and decodes it with -// [Decode]. -func DecodeFS(fsys fs.FS, path string, v interface{}) (MetaData, error) { - fp, err := fsys.Open(path) - if err != nil { - return MetaData{}, err - } - defer fp.Close() - return NewDecoder(fp).Decode(v) -} diff --git a/vendor/github.com/BurntSushi/toml/deprecated.go b/vendor/github.com/BurntSushi/toml/deprecated.go index b9e30971..155709a8 100644 --- a/vendor/github.com/BurntSushi/toml/deprecated.go +++ b/vendor/github.com/BurntSushi/toml/deprecated.go @@ -15,15 +15,15 @@ type TextMarshaler encoding.TextMarshaler // Deprecated: use encoding.TextUnmarshaler type TextUnmarshaler encoding.TextUnmarshaler +// DecodeReader is an alias for NewDecoder(r).Decode(v). +// +// Deprecated: use NewDecoder(reader).Decode(&value). +func DecodeReader(r io.Reader, v any) (MetaData, error) { return NewDecoder(r).Decode(v) } + // PrimitiveDecode is an alias for MetaData.PrimitiveDecode(). // // Deprecated: use MetaData.PrimitiveDecode. -func PrimitiveDecode(primValue Primitive, v interface{}) error { +func PrimitiveDecode(primValue Primitive, v any) error { md := MetaData{decoded: make(map[string]struct{})} return md.unify(primValue.undecoded, rvalue(v)) } - -// DecodeReader is an alias for NewDecoder(r).Decode(v). -// -// Deprecated: use NewDecoder(reader).Decode(&value). -func DecodeReader(r io.Reader, v interface{}) (MetaData, error) { return NewDecoder(r).Decode(v) } diff --git a/vendor/github.com/BurntSushi/toml/doc.go b/vendor/github.com/BurntSushi/toml/doc.go index 81a7c0fe..82c90a90 100644 --- a/vendor/github.com/BurntSushi/toml/doc.go +++ b/vendor/github.com/BurntSushi/toml/doc.go @@ -2,9 +2,6 @@ // // This package supports TOML v1.0.0, as specified at https://toml.io // -// There is also support for delaying decoding with the Primitive type, and -// querying the set of keys in a TOML document with the MetaData type. -// // The github.com/BurntSushi/toml/cmd/tomlv package implements a TOML validator, // and can be used to verify if TOML document is valid. It can also be used to // print the type of each key. diff --git a/vendor/github.com/BurntSushi/toml/encode.go b/vendor/github.com/BurntSushi/toml/encode.go index 9cd25d75..73366c0d 100644 --- a/vendor/github.com/BurntSushi/toml/encode.go +++ b/vendor/github.com/BurntSushi/toml/encode.go @@ -2,6 +2,7 @@ package toml import ( "bufio" + "bytes" "encoding" "encoding/json" "errors" @@ -76,6 +77,17 @@ type Marshaler interface { MarshalTOML() ([]byte, error) } +// Marshal returns a TOML representation of the Go value. +// +// See [Encoder] for a description of the encoding process. +func Marshal(v any) ([]byte, error) { + buff := new(bytes.Buffer) + if err := NewEncoder(buff).Encode(v); err != nil { + return nil, err + } + return buff.Bytes(), nil +} + // Encoder encodes a Go to a TOML document. // // The mapping between Go values and TOML values should be precisely the same as @@ -115,26 +127,21 @@ type Marshaler interface { // NOTE: only exported keys are encoded due to the use of reflection. Unexported // keys are silently discarded. type Encoder struct { - // String to use for a single indentation level; default is two spaces. - Indent string - + Indent string // string for a single indentation level; default is two spaces. + hasWritten bool // written any output to w yet? w *bufio.Writer - hasWritten bool // written any output to w yet? } // NewEncoder create a new Encoder. func NewEncoder(w io.Writer) *Encoder { - return &Encoder{ - w: bufio.NewWriter(w), - Indent: " ", - } + return &Encoder{w: bufio.NewWriter(w), Indent: " "} } // Encode writes a TOML representation of the Go value to the [Encoder]'s writer. // // An error is returned if the value given cannot be encoded to a valid TOML // document. -func (enc *Encoder) Encode(v interface{}) error { +func (enc *Encoder) Encode(v any) error { rv := eindirect(reflect.ValueOf(v)) err := enc.safeEncode(Key([]string{}), rv) if err != nil { @@ -280,18 +287,30 @@ func (enc *Encoder) eElement(rv reflect.Value) { case reflect.Float32: f := rv.Float() if math.IsNaN(f) { + if math.Signbit(f) { + enc.wf("-") + } enc.wf("nan") } else if math.IsInf(f, 0) { - enc.wf("%cinf", map[bool]byte{true: '-', false: '+'}[math.Signbit(f)]) + if math.Signbit(f) { + enc.wf("-") + } + enc.wf("inf") } else { enc.wf(floatAddDecimal(strconv.FormatFloat(f, 'f', -1, 32))) } case reflect.Float64: f := rv.Float() if math.IsNaN(f) { + if math.Signbit(f) { + enc.wf("-") + } enc.wf("nan") } else if math.IsInf(f, 0) { - enc.wf("%cinf", map[bool]byte{true: '-', false: '+'}[math.Signbit(f)]) + if math.Signbit(f) { + enc.wf("-") + } + enc.wf("inf") } else { enc.wf(floatAddDecimal(strconv.FormatFloat(f, 'f', -1, 64))) } @@ -304,7 +323,7 @@ func (enc *Encoder) eElement(rv reflect.Value) { case reflect.Interface: enc.eElement(rv.Elem()) default: - encPanic(fmt.Errorf("unexpected type: %T", rv.Interface())) + encPanic(fmt.Errorf("unexpected type: %s", fmtType(rv.Interface()))) } } @@ -712,7 +731,7 @@ func (enc *Encoder) writeKeyValue(key Key, val reflect.Value, inline bool) { } } -func (enc *Encoder) wf(format string, v ...interface{}) { +func (enc *Encoder) wf(format string, v ...any) { _, err := fmt.Fprintf(enc.w, format, v...) if err != nil { encPanic(err) diff --git a/vendor/github.com/BurntSushi/toml/error.go b/vendor/github.com/BurntSushi/toml/error.go index efd68865..b45a3f45 100644 --- a/vendor/github.com/BurntSushi/toml/error.go +++ b/vendor/github.com/BurntSushi/toml/error.go @@ -114,13 +114,22 @@ func (pe ParseError) ErrorWithPosition() string { msg, pe.Position.Line, col, col+pe.Position.Len) } if pe.Position.Line > 2 { - fmt.Fprintf(b, "% 7d | %s\n", pe.Position.Line-2, lines[pe.Position.Line-3]) + fmt.Fprintf(b, "% 7d | %s\n", pe.Position.Line-2, expandTab(lines[pe.Position.Line-3])) } if pe.Position.Line > 1 { - fmt.Fprintf(b, "% 7d | %s\n", pe.Position.Line-1, lines[pe.Position.Line-2]) + fmt.Fprintf(b, "% 7d | %s\n", pe.Position.Line-1, expandTab(lines[pe.Position.Line-2])) } - fmt.Fprintf(b, "% 7d | %s\n", pe.Position.Line, lines[pe.Position.Line-1]) - fmt.Fprintf(b, "% 10s%s%s\n", "", strings.Repeat(" ", col), strings.Repeat("^", pe.Position.Len)) + + /// Expand tabs, so that the ^^^s are at the correct position, but leave + /// "column 10-13" intact. Adjusting this to the visual column would be + /// better, but we don't know the tabsize of the user in their editor, which + /// can be 8, 4, 2, or something else. We can't know. So leaving it as the + /// character index is probably the "most correct". + expanded := expandTab(lines[pe.Position.Line-1]) + diff := len(expanded) - len(lines[pe.Position.Line-1]) + + fmt.Fprintf(b, "% 7d | %s\n", pe.Position.Line, expanded) + fmt.Fprintf(b, "% 10s%s%s\n", "", strings.Repeat(" ", col+diff), strings.Repeat("^", pe.Position.Len)) return b.String() } @@ -159,17 +168,47 @@ func (pe ParseError) column(lines []string) int { return col } +func expandTab(s string) string { + var ( + b strings.Builder + l int + fill = func(n int) string { + b := make([]byte, n) + for i := range b { + b[i] = ' ' + } + return string(b) + } + ) + b.Grow(len(s)) + for _, r := range s { + switch r { + case '\t': + tw := 8 - l%8 + b.WriteString(fill(tw)) + l += tw + default: + b.WriteRune(r) + l += 1 + } + } + return b.String() +} + type ( errLexControl struct{ r rune } errLexEscape struct{ r rune } errLexUTF8 struct{ b byte } - errLexInvalidNum struct{ v string } - errLexInvalidDate struct{ v string } + errParseDate struct{ v string } errLexInlineTableNL struct{} errLexStringNL struct{} errParseRange struct { - i interface{} // int or float - size string // "int64", "uint16", etc. + i any // int or float + size string // "int64", "uint16", etc. + } + errUnsafeFloat struct { + i interface{} // float32 or float64 + size string // "float32" or "float64" } errParseDuration struct{ d string } ) @@ -183,18 +222,20 @@ func (e errLexEscape) Error() string { return fmt.Sprintf(`invalid escape func (e errLexEscape) Usage() string { return usageEscape } func (e errLexUTF8) Error() string { return fmt.Sprintf("invalid UTF-8 byte: 0x%02x", e.b) } func (e errLexUTF8) Usage() string { return "" } -func (e errLexInvalidNum) Error() string { return fmt.Sprintf("invalid number: %q", e.v) } -func (e errLexInvalidNum) Usage() string { return "" } -func (e errLexInvalidDate) Error() string { return fmt.Sprintf("invalid date: %q", e.v) } -func (e errLexInvalidDate) Usage() string { return "" } +func (e errParseDate) Error() string { return fmt.Sprintf("invalid datetime: %q", e.v) } +func (e errParseDate) Usage() string { return usageDate } func (e errLexInlineTableNL) Error() string { return "newlines not allowed within inline tables" } func (e errLexInlineTableNL) Usage() string { return usageInlineNewline } func (e errLexStringNL) Error() string { return "strings cannot contain newlines" } func (e errLexStringNL) Usage() string { return usageStringNewline } func (e errParseRange) Error() string { return fmt.Sprintf("%v is out of range for %s", e.i, e.size) } func (e errParseRange) Usage() string { return usageIntOverflow } -func (e errParseDuration) Error() string { return fmt.Sprintf("invalid duration: %q", e.d) } -func (e errParseDuration) Usage() string { return usageDuration } +func (e errUnsafeFloat) Error() string { + return fmt.Sprintf("%v is out of the safe %s range", e.i, e.size) +} +func (e errUnsafeFloat) Usage() string { return usageUnsafeFloat } +func (e errParseDuration) Error() string { return fmt.Sprintf("invalid duration: %q", e.d) } +func (e errParseDuration) Usage() string { return usageDuration } const usageEscape = ` A '\' inside a "-delimited string is interpreted as an escape character. @@ -251,19 +292,35 @@ bug in the program that uses too small of an integer. The maximum and minimum values are: size │ lowest │ highest - ───────┼────────────────┼────────── + ───────┼────────────────┼────────────── int8 │ -128 │ 127 int16 │ -32,768 │ 32,767 int32 │ -2,147,483,648 │ 2,147,483,647 int64 │ -9.2 × 10¹⁷ │ 9.2 × 10¹⁷ uint8 │ 0 │ 255 - uint16 │ 0 │ 65535 - uint32 │ 0 │ 4294967295 + uint16 │ 0 │ 65,535 + uint32 │ 0 │ 4,294,967,295 uint64 │ 0 │ 1.8 × 10¹⁸ int refers to int32 on 32-bit systems and int64 on 64-bit systems. ` +const usageUnsafeFloat = ` +This number is outside of the "safe" range for floating point numbers; whole +(non-fractional) numbers outside the below range can not always be represented +accurately in a float, leading to some loss of accuracy. + +Explicitly mark a number as a fractional unit by adding ".0", which will incur +some loss of accuracy; for example: + + f = 2_000_000_000.0 + +Accuracy ranges: + + float32 = 16,777,215 + float64 = 9,007,199,254,740,991 +` + const usageDuration = ` A duration must be as "number", without any spaces. Valid units are: @@ -277,3 +334,23 @@ A duration must be as "number", without any spaces. Valid units are: You can combine multiple units; for example "5m10s" for 5 minutes and 10 seconds. ` + +const usageDate = ` +A TOML datetime must be in one of the following formats: + + 2006-01-02T15:04:05Z07:00 Date and time, with timezone. + 2006-01-02T15:04:05 Date and time, but without timezone. + 2006-01-02 Date without a time or timezone. + 15:04:05 Just a time, without any timezone. + +Seconds may optionally have a fraction, up to nanosecond precision: + + 15:04:05.123 + 15:04:05.856018510 +` + +// TOML 1.1: +// The seconds part in times is optional, and may be omitted: +// 2006-01-02T15:04Z07:00 +// 2006-01-02T15:04 +// 15:04 diff --git a/vendor/github.com/BurntSushi/toml/lex.go b/vendor/github.com/BurntSushi/toml/lex.go index 3545a6ad..a1016d98 100644 --- a/vendor/github.com/BurntSushi/toml/lex.go +++ b/vendor/github.com/BurntSushi/toml/lex.go @@ -17,6 +17,7 @@ const ( itemEOF itemText itemString + itemStringEsc itemRawString itemMultilineString itemRawMultilineString @@ -53,6 +54,7 @@ type lexer struct { state stateFn items chan item tomlNext bool + esc bool // Allow for backing up up to 4 runes. This is necessary because TOML // contains 3-rune tokens (""" and '''). @@ -164,7 +166,7 @@ func (lx *lexer) next() (r rune) { } r, w := utf8.DecodeRuneInString(lx.input[lx.pos:]) - if r == utf8.RuneError { + if r == utf8.RuneError && w == 1 { lx.error(errLexUTF8{lx.input[lx.pos]}) return utf8.RuneError } @@ -270,7 +272,7 @@ func (lx *lexer) errorPos(start, length int, err error) stateFn { } // errorf is like error, and creates a new error. -func (lx *lexer) errorf(format string, values ...interface{}) stateFn { +func (lx *lexer) errorf(format string, values ...any) stateFn { if lx.atEOF { pos := lx.getPos() pos.Line-- @@ -333,9 +335,7 @@ func lexTopEnd(lx *lexer) stateFn { lx.emit(itemEOF) return nil } - return lx.errorf( - "expected a top-level item to end with a newline, comment, or EOF, but got %q instead", - r) + return lx.errorf("expected a top-level item to end with a newline, comment, or EOF, but got %q instead", r) } // lexTable lexes the beginning of a table. Namely, it makes sure that @@ -698,7 +698,12 @@ func lexString(lx *lexer) stateFn { return lexStringEscape case r == '"': lx.backup() - lx.emit(itemString) + if lx.esc { + lx.esc = false + lx.emit(itemStringEsc) + } else { + lx.emit(itemString) + } lx.next() lx.ignore() return lx.pop() @@ -748,6 +753,7 @@ func lexMultilineString(lx *lexer) stateFn { lx.backup() /// backup: don't include the """ in the item. lx.backup() lx.backup() + lx.esc = false lx.emit(itemMultilineString) lx.next() /// Read over ''' again and discard it. lx.next() @@ -837,6 +843,7 @@ func lexMultilineStringEscape(lx *lexer) stateFn { } func lexStringEscape(lx *lexer) stateFn { + lx.esc = true r := lx.next() switch r { case 'e': @@ -879,10 +886,8 @@ func lexHexEscape(lx *lexer) stateFn { var r rune for i := 0; i < 2; i++ { r = lx.next() - if !isHexadecimal(r) { - return lx.errorf( - `expected two hexadecimal digits after '\x', but got %q instead`, - lx.current()) + if !isHex(r) { + return lx.errorf(`expected two hexadecimal digits after '\x', but got %q instead`, lx.current()) } } return lx.pop() @@ -892,10 +897,8 @@ func lexShortUnicodeEscape(lx *lexer) stateFn { var r rune for i := 0; i < 4; i++ { r = lx.next() - if !isHexadecimal(r) { - return lx.errorf( - `expected four hexadecimal digits after '\u', but got %q instead`, - lx.current()) + if !isHex(r) { + return lx.errorf(`expected four hexadecimal digits after '\u', but got %q instead`, lx.current()) } } return lx.pop() @@ -905,10 +908,8 @@ func lexLongUnicodeEscape(lx *lexer) stateFn { var r rune for i := 0; i < 8; i++ { r = lx.next() - if !isHexadecimal(r) { - return lx.errorf( - `expected eight hexadecimal digits after '\U', but got %q instead`, - lx.current()) + if !isHex(r) { + return lx.errorf(`expected eight hexadecimal digits after '\U', but got %q instead`, lx.current()) } } return lx.pop() @@ -975,7 +976,7 @@ func lexDatetime(lx *lexer) stateFn { // lexHexInteger consumes a hexadecimal integer after seeing the '0x' prefix. func lexHexInteger(lx *lexer) stateFn { r := lx.next() - if isHexadecimal(r) { + if isHex(r) { return lexHexInteger } switch r { @@ -1109,7 +1110,7 @@ func lexBaseNumberOrDate(lx *lexer) stateFn { return lexOctalInteger case 'x': r = lx.peek() - if !isHexadecimal(r) { + if !isHex(r) { lx.errorf("not a hexidecimal number: '%s%c'", lx.current(), r) } return lexHexInteger @@ -1207,7 +1208,7 @@ func (itype itemType) String() string { return "EOF" case itemText: return "Text" - case itemString, itemRawString, itemMultilineString, itemRawMultilineString: + case itemString, itemStringEsc, itemRawString, itemMultilineString, itemRawMultilineString: return "String" case itemBool: return "Bool" @@ -1240,7 +1241,7 @@ func (itype itemType) String() string { } func (item item) String() string { - return fmt.Sprintf("(%s, %s)", item.typ.String(), item.val) + return fmt.Sprintf("(%s, %s)", item.typ, item.val) } func isWhitespace(r rune) bool { return r == '\t' || r == ' ' } @@ -1256,10 +1257,7 @@ func isControl(r rune) bool { // Control characters except \t, \r, \n func isDigit(r rune) bool { return r >= '0' && r <= '9' } func isBinary(r rune) bool { return r == '0' || r == '1' } func isOctal(r rune) bool { return r >= '0' && r <= '7' } -func isHexadecimal(r rune) bool { - return (r >= '0' && r <= '9') || (r >= 'a' && r <= 'f') || (r >= 'A' && r <= 'F') -} - +func isHex(r rune) bool { return (r >= '0' && r <= '9') || (r|0x20 >= 'a' && r|0x20 <= 'f') } func isBareKeyChar(r rune, tomlNext bool) bool { if tomlNext { return (r >= 'A' && r <= 'Z') || diff --git a/vendor/github.com/BurntSushi/toml/meta.go b/vendor/github.com/BurntSushi/toml/meta.go index 2e78b24e..e6145373 100644 --- a/vendor/github.com/BurntSushi/toml/meta.go +++ b/vendor/github.com/BurntSushi/toml/meta.go @@ -13,7 +13,7 @@ type MetaData struct { context Key // Used only during decoding. keyInfo map[string]keyInfo - mapping map[string]interface{} + mapping map[string]any keys []Key decoded map[string]struct{} data []byte // Input file; for errors. @@ -31,12 +31,12 @@ func (md *MetaData) IsDefined(key ...string) bool { } var ( - hash map[string]interface{} + hash map[string]any ok bool - hashOrVal interface{} = md.mapping + hashOrVal any = md.mapping ) for _, k := range key { - if hash, ok = hashOrVal.(map[string]interface{}); !ok { + if hash, ok = hashOrVal.(map[string]any); !ok { return false } if hashOrVal, ok = hash[k]; !ok { @@ -94,28 +94,55 @@ func (md *MetaData) Undecoded() []Key { type Key []string func (k Key) String() string { - ss := make([]string, len(k)) - for i := range k { - ss[i] = k.maybeQuoted(i) + // This is called quite often, so it's a bit funky to make it faster. + var b strings.Builder + b.Grow(len(k) * 25) +outer: + for i, kk := range k { + if i > 0 { + b.WriteByte('.') + } + if kk == "" { + b.WriteString(`""`) + } else { + for _, r := range kk { + // "Inline" isBareKeyChar + if !((r >= 'A' && r <= 'Z') || (r >= 'a' && r <= 'z') || (r >= '0' && r <= '9') || r == '_' || r == '-') { + b.WriteByte('"') + b.WriteString(dblQuotedReplacer.Replace(kk)) + b.WriteByte('"') + continue outer + } + } + b.WriteString(kk) + } } - return strings.Join(ss, ".") + return b.String() } func (k Key) maybeQuoted(i int) string { if k[i] == "" { return `""` } - for _, c := range k[i] { - if !isBareKeyChar(c, false) { - return `"` + dblQuotedReplacer.Replace(k[i]) + `"` + for _, r := range k[i] { + if (r >= 'A' && r <= 'Z') || (r >= 'a' && r <= 'z') || (r >= '0' && r <= '9') || r == '_' || r == '-' { + continue } + return `"` + dblQuotedReplacer.Replace(k[i]) + `"` } return k[i] } +// Like append(), but only increase the cap by 1. func (k Key) add(piece string) Key { + if cap(k) > len(k) { + return append(k, piece) + } newKey := make(Key, len(k)+1) copy(newKey, k) newKey[len(k)] = piece return newKey } + +func (k Key) parent() Key { return k[:len(k)-1] } // all except the last piece. +func (k Key) last() string { return k[len(k)-1] } // last piece of this key. diff --git a/vendor/github.com/BurntSushi/toml/parse.go b/vendor/github.com/BurntSushi/toml/parse.go index 9c191536..11ac3108 100644 --- a/vendor/github.com/BurntSushi/toml/parse.go +++ b/vendor/github.com/BurntSushi/toml/parse.go @@ -2,6 +2,7 @@ package toml import ( "fmt" + "math" "os" "strconv" "strings" @@ -20,9 +21,9 @@ type parser struct { ordered []Key // List of keys in the order that they appear in the TOML data. - keyInfo map[string]keyInfo // Map keyname → info about the TOML key. - mapping map[string]interface{} // Map keyname → key value. - implicits map[string]struct{} // Record implicit keys (e.g. "key.group.names"). + keyInfo map[string]keyInfo // Map keyname → info about the TOML key. + mapping map[string]any // Map keyname → key value. + implicits map[string]struct{} // Record implicit keys (e.g. "key.group.names"). } type keyInfo struct { @@ -49,6 +50,7 @@ func parse(data string) (p *parser, err error) { // it anyway. if strings.HasPrefix(data, "\xff\xfe") || strings.HasPrefix(data, "\xfe\xff") { // UTF-16 data = data[2:] + //lint:ignore S1017 https://github.com/dominikh/go-tools/issues/1447 } else if strings.HasPrefix(data, "\xef\xbb\xbf") { // UTF-8 data = data[3:] } @@ -71,7 +73,7 @@ func parse(data string) (p *parser, err error) { p = &parser{ keyInfo: make(map[string]keyInfo), - mapping: make(map[string]interface{}), + mapping: make(map[string]any), lx: lex(data, tomlNext), ordered: make([]Key, 0), implicits: make(map[string]struct{}), @@ -97,7 +99,7 @@ func (p *parser) panicErr(it item, err error) { }) } -func (p *parser) panicItemf(it item, format string, v ...interface{}) { +func (p *parser) panicItemf(it item, format string, v ...any) { panic(ParseError{ Message: fmt.Sprintf(format, v...), Position: it.pos, @@ -106,7 +108,7 @@ func (p *parser) panicItemf(it item, format string, v ...interface{}) { }) } -func (p *parser) panicf(format string, v ...interface{}) { +func (p *parser) panicf(format string, v ...any) { panic(ParseError{ Message: fmt.Sprintf(format, v...), Position: p.pos, @@ -139,7 +141,7 @@ func (p *parser) nextPos() item { return it } -func (p *parser) bug(format string, v ...interface{}) { +func (p *parser) bug(format string, v ...any) { panic(fmt.Sprintf("BUG: "+format+"\n\n", v...)) } @@ -194,11 +196,11 @@ func (p *parser) topLevel(item item) { p.assertEqual(itemKeyEnd, k.typ) /// The current key is the last part. - p.currentKey = key[len(key)-1] + p.currentKey = key.last() /// All the other parts (if any) are the context; need to set each part /// as implicit. - context := key[:len(key)-1] + context := key.parent() for i := range context { p.addImplicitContext(append(p.context, context[i:i+1]...)) } @@ -207,7 +209,8 @@ func (p *parser) topLevel(item item) { /// Set value. vItem := p.next() val, typ := p.value(vItem, false) - p.set(p.currentKey, val, typ, vItem.pos) + p.setValue(p.currentKey, val) + p.setType(p.currentKey, typ, vItem.pos) /// Remove the context we added (preserving any context from [tbl] lines). p.context = outerContext @@ -222,7 +225,7 @@ func (p *parser) keyString(it item) string { switch it.typ { case itemText: return it.val - case itemString, itemMultilineString, + case itemString, itemStringEsc, itemMultilineString, itemRawString, itemRawMultilineString: s, _ := p.value(it, false) return s.(string) @@ -239,9 +242,11 @@ var datetimeRepl = strings.NewReplacer( // value translates an expected value from the lexer into a Go value wrapped // as an empty interface. -func (p *parser) value(it item, parentIsArray bool) (interface{}, tomlType) { +func (p *parser) value(it item, parentIsArray bool) (any, tomlType) { switch it.typ { case itemString: + return it.val, p.typeOfPrimitive(it) + case itemStringEsc: return p.replaceEscapes(it, it.val), p.typeOfPrimitive(it) case itemMultilineString: return p.replaceEscapes(it, p.stripEscapedNewlines(stripFirstNewline(it.val))), p.typeOfPrimitive(it) @@ -274,7 +279,7 @@ func (p *parser) value(it item, parentIsArray bool) (interface{}, tomlType) { panic("unreachable") } -func (p *parser) valueInteger(it item) (interface{}, tomlType) { +func (p *parser) valueInteger(it item) (any, tomlType) { if !numUnderscoresOK(it.val) { p.panicItemf(it, "Invalid integer %q: underscores must be surrounded by digits", it.val) } @@ -298,7 +303,7 @@ func (p *parser) valueInteger(it item) (interface{}, tomlType) { return num, p.typeOfPrimitive(it) } -func (p *parser) valueFloat(it item) (interface{}, tomlType) { +func (p *parser) valueFloat(it item) (any, tomlType) { parts := strings.FieldsFunc(it.val, func(r rune) bool { switch r { case '.', 'e', 'E': @@ -322,7 +327,9 @@ func (p *parser) valueFloat(it item) (interface{}, tomlType) { p.panicItemf(it, "Invalid float %q: '.' must be followed by one or more digits", it.val) } val := strings.Replace(it.val, "_", "", -1) - if val == "+nan" || val == "-nan" { // Go doesn't support this, but TOML spec does. + signbit := false + if val == "+nan" || val == "-nan" { + signbit = val == "-nan" val = "nan" } num, err := strconv.ParseFloat(val, 64) @@ -333,6 +340,9 @@ func (p *parser) valueFloat(it item) (interface{}, tomlType) { p.panicItemf(it, "Invalid float value: %q", it.val) } } + if signbit { + num = math.Copysign(num, -1) + } return num, p.typeOfPrimitive(it) } @@ -352,7 +362,7 @@ var dtTypes = []struct { {"15:04", internal.LocalTime, true}, } -func (p *parser) valueDatetime(it item) (interface{}, tomlType) { +func (p *parser) valueDatetime(it item) (any, tomlType) { it.val = datetimeRepl.Replace(it.val) var ( t time.Time @@ -365,26 +375,44 @@ func (p *parser) valueDatetime(it item) (interface{}, tomlType) { } t, err = time.ParseInLocation(dt.fmt, it.val, dt.zone) if err == nil { + if missingLeadingZero(it.val, dt.fmt) { + p.panicErr(it, errParseDate{it.val}) + } ok = true break } } if !ok { - p.panicItemf(it, "Invalid TOML Datetime: %q.", it.val) + p.panicErr(it, errParseDate{it.val}) } return t, p.typeOfPrimitive(it) } -func (p *parser) valueArray(it item) (interface{}, tomlType) { +// Go's time.Parse() will accept numbers without a leading zero; there isn't any +// way to require it. https://github.com/golang/go/issues/29911 +// +// Depend on the fact that the separators (- and :) should always be at the same +// location. +func missingLeadingZero(d, l string) bool { + for i, c := range []byte(l) { + if c == '.' || c == 'Z' { + return false + } + if (c < '0' || c > '9') && d[i] != c { + return true + } + } + return false +} + +func (p *parser) valueArray(it item) (any, tomlType) { p.setType(p.currentKey, tomlArray, it.pos) var ( - types []tomlType - - // Initialize to a non-nil empty slice. This makes it consistent with - // how S = [] decodes into a non-nil slice inside something like struct - // { S []string }. See #338 - array = []interface{}{} + // Initialize to a non-nil slice to make it consistent with how S = [] + // decodes into a non-nil slice inside something like struct { S + // []string }. See #338 + array = make([]any, 0, 2) ) for it = p.next(); it.typ != itemArrayEnd; it = p.next() { if it.typ == itemCommentStart { @@ -394,21 +422,20 @@ func (p *parser) valueArray(it item) (interface{}, tomlType) { val, typ := p.value(it, true) array = append(array, val) - types = append(types, typ) - // XXX: types isn't used here, we need it to record the accurate type + // XXX: type isn't used here, we need it to record the accurate type // information. // // Not entirely sure how to best store this; could use "key[0]", // "key[1]" notation, or maybe store it on the Array type? - _ = types + _ = typ } return array, tomlArray } -func (p *parser) valueInlineTable(it item, parentIsArray bool) (interface{}, tomlType) { +func (p *parser) valueInlineTable(it item, parentIsArray bool) (any, tomlType) { var ( - hash = make(map[string]interface{}) + topHash = make(map[string]any) outerContext = p.context outerKey = p.currentKey ) @@ -436,11 +463,11 @@ func (p *parser) valueInlineTable(it item, parentIsArray bool) (interface{}, tom p.assertEqual(itemKeyEnd, k.typ) /// The current key is the last part. - p.currentKey = key[len(key)-1] + p.currentKey = key.last() /// All the other parts (if any) are the context; need to set each part /// as implicit. - context := key[:len(key)-1] + context := key.parent() for i := range context { p.addImplicitContext(append(p.context, context[i:i+1]...)) } @@ -448,7 +475,21 @@ func (p *parser) valueInlineTable(it item, parentIsArray bool) (interface{}, tom /// Set the value. val, typ := p.value(p.next(), false) - p.set(p.currentKey, val, typ, it.pos) + p.setValue(p.currentKey, val) + p.setType(p.currentKey, typ, it.pos) + + hash := topHash + for _, c := range context { + h, ok := hash[c] + if !ok { + h = make(map[string]any) + hash[c] = h + } + hash, ok = h.(map[string]any) + if !ok { + p.panicf("%q is not a table", p.context) + } + } hash[p.currentKey] = val /// Restore context. @@ -456,7 +497,7 @@ func (p *parser) valueInlineTable(it item, parentIsArray bool) (interface{}, tom } p.context = outerContext p.currentKey = outerKey - return hash, tomlHash + return topHash, tomlHash } // numHasLeadingZero checks if this number has leading zeroes, allowing for '0', @@ -486,9 +527,9 @@ func numUnderscoresOK(s string) bool { } } - // isHexadecimal is a superset of all the permissable characters - // surrounding an underscore. - accept = isHexadecimal(r) + // isHexis a superset of all the permissable characters surrounding an + // underscore. + accept = isHex(r) } return accept } @@ -511,21 +552,19 @@ func numPeriodsOK(s string) bool { // Establishing the context also makes sure that the key isn't a duplicate, and // will create implicit hashes automatically. func (p *parser) addContext(key Key, array bool) { - var ok bool - - // Always start at the top level and drill down for our context. + /// Always start at the top level and drill down for our context. hashContext := p.mapping - keyContext := make(Key, 0) + keyContext := make(Key, 0, len(key)-1) - // We only need implicit hashes for key[0:-1] - for _, k := range key[0 : len(key)-1] { - _, ok = hashContext[k] + /// We only need implicit hashes for the parents. + for _, k := range key.parent() { + _, ok := hashContext[k] keyContext = append(keyContext, k) // No key? Make an implicit hash and move on. if !ok { p.addImplicit(keyContext) - hashContext[k] = make(map[string]interface{}) + hashContext[k] = make(map[string]any) } // If the hash context is actually an array of tables, then set @@ -534,9 +573,9 @@ func (p *parser) addContext(key Key, array bool) { // Otherwise, it better be a table, since this MUST be a key group (by // virtue of it not being the last element in a key). switch t := hashContext[k].(type) { - case []map[string]interface{}: + case []map[string]any: hashContext = t[len(t)-1] - case map[string]interface{}: + case map[string]any: hashContext = t default: p.panicf("Key '%s' was already created as a hash.", keyContext) @@ -547,39 +586,33 @@ func (p *parser) addContext(key Key, array bool) { if array { // If this is the first element for this array, then allocate a new // list of tables for it. - k := key[len(key)-1] + k := key.last() if _, ok := hashContext[k]; !ok { - hashContext[k] = make([]map[string]interface{}, 0, 4) + hashContext[k] = make([]map[string]any, 0, 4) } // Add a new table. But make sure the key hasn't already been used // for something else. - if hash, ok := hashContext[k].([]map[string]interface{}); ok { - hashContext[k] = append(hash, make(map[string]interface{})) + if hash, ok := hashContext[k].([]map[string]any); ok { + hashContext[k] = append(hash, make(map[string]any)) } else { p.panicf("Key '%s' was already created and cannot be used as an array.", key) } } else { - p.setValue(key[len(key)-1], make(map[string]interface{})) + p.setValue(key.last(), make(map[string]any)) } - p.context = append(p.context, key[len(key)-1]) -} - -// set calls setValue and setType. -func (p *parser) set(key string, val interface{}, typ tomlType, pos Position) { - p.setValue(key, val) - p.setType(key, typ, pos) + p.context = append(p.context, key.last()) } // setValue sets the given key to the given value in the current context. // It will make sure that the key hasn't already been defined, account for // implicit key groups. -func (p *parser) setValue(key string, value interface{}) { +func (p *parser) setValue(key string, value any) { var ( - tmpHash interface{} + tmpHash any ok bool hash = p.mapping - keyContext Key + keyContext = make(Key, 0, len(p.context)+1) ) for _, k := range p.context { keyContext = append(keyContext, k) @@ -587,11 +620,11 @@ func (p *parser) setValue(key string, value interface{}) { p.bug("Context for key '%s' has not been established.", keyContext) } switch t := tmpHash.(type) { - case []map[string]interface{}: + case []map[string]any: // The context is a table of hashes. Pick the most recent table // defined as the current hash. hash = t[len(t)-1] - case map[string]interface{}: + case map[string]any: hash = t default: p.panicf("Key '%s' has already been defined.", keyContext) @@ -618,9 +651,8 @@ func (p *parser) setValue(key string, value interface{}) { p.removeImplicit(keyContext) return } - - // Otherwise, we have a concrete key trying to override a previous - // key, which is *always* wrong. + // Otherwise, we have a concrete key trying to override a previous key, + // which is *always* wrong. p.panicf("Key '%s' has already been defined.", keyContext) } @@ -683,8 +715,11 @@ func stripFirstNewline(s string) string { // the next newline. After a line-ending backslash, all whitespace is removed // until the next non-whitespace character. func (p *parser) stripEscapedNewlines(s string) string { - var b strings.Builder - var i int + var ( + b strings.Builder + i int + ) + b.Grow(len(s)) for { ix := strings.Index(s[i:], `\`) if ix < 0 { @@ -714,9 +749,8 @@ func (p *parser) stripEscapedNewlines(s string) string { continue } if !strings.Contains(s[i:j], "\n") { - // This is not a line-ending backslash. - // (It's a bad escape sequence, but we can let - // replaceEscapes catch it.) + // This is not a line-ending backslash. (It's a bad escape sequence, + // but we can let replaceEscapes catch it.) i++ continue } @@ -727,79 +761,78 @@ func (p *parser) stripEscapedNewlines(s string) string { } func (p *parser) replaceEscapes(it item, str string) string { - replaced := make([]rune, 0, len(str)) - s := []byte(str) - r := 0 - for r < len(s) { - if s[r] != '\\' { - c, size := utf8.DecodeRune(s[r:]) - r += size - replaced = append(replaced, c) + var ( + b strings.Builder + skip = 0 + ) + b.Grow(len(str)) + for i, c := range str { + if skip > 0 { + skip-- continue } - r += 1 - if r >= len(s) { + if c != '\\' { + b.WriteRune(c) + continue + } + + if i >= len(str) { p.bug("Escape sequence at end of string.") return "" } - switch s[r] { + switch str[i+1] { default: - p.bug("Expected valid escape code after \\, but got %q.", s[r]) + p.bug("Expected valid escape code after \\, but got %q.", str[i+1]) case ' ', '\t': - p.panicItemf(it, "invalid escape: '\\%c'", s[r]) + p.panicItemf(it, "invalid escape: '\\%c'", str[i+1]) case 'b': - replaced = append(replaced, rune(0x0008)) - r += 1 + b.WriteByte(0x08) + skip = 1 case 't': - replaced = append(replaced, rune(0x0009)) - r += 1 + b.WriteByte(0x09) + skip = 1 case 'n': - replaced = append(replaced, rune(0x000A)) - r += 1 + b.WriteByte(0x0a) + skip = 1 case 'f': - replaced = append(replaced, rune(0x000C)) - r += 1 + b.WriteByte(0x0c) + skip = 1 case 'r': - replaced = append(replaced, rune(0x000D)) - r += 1 + b.WriteByte(0x0d) + skip = 1 case 'e': if p.tomlNext { - replaced = append(replaced, rune(0x001B)) - r += 1 + b.WriteByte(0x1b) + skip = 1 } case '"': - replaced = append(replaced, rune(0x0022)) - r += 1 + b.WriteByte(0x22) + skip = 1 case '\\': - replaced = append(replaced, rune(0x005C)) - r += 1 + b.WriteByte(0x5c) + skip = 1 + // The lexer guarantees the correct number of characters are present; + // don't need to check here. case 'x': if p.tomlNext { - escaped := p.asciiEscapeToUnicode(it, s[r+1:r+3]) - replaced = append(replaced, escaped) - r += 3 + escaped := p.asciiEscapeToUnicode(it, str[i+2:i+4]) + b.WriteRune(escaped) + skip = 3 } case 'u': - // At this point, we know we have a Unicode escape of the form - // `uXXXX` at [r, r+5). (Because the lexer guarantees this - // for us.) - escaped := p.asciiEscapeToUnicode(it, s[r+1:r+5]) - replaced = append(replaced, escaped) - r += 5 + escaped := p.asciiEscapeToUnicode(it, str[i+2:i+6]) + b.WriteRune(escaped) + skip = 5 case 'U': - // At this point, we know we have a Unicode escape of the form - // `uXXXX` at [r, r+9). (Because the lexer guarantees this - // for us.) - escaped := p.asciiEscapeToUnicode(it, s[r+1:r+9]) - replaced = append(replaced, escaped) - r += 9 + escaped := p.asciiEscapeToUnicode(it, str[i+2:i+10]) + b.WriteRune(escaped) + skip = 9 } } - return string(replaced) + return b.String() } -func (p *parser) asciiEscapeToUnicode(it item, bs []byte) rune { - s := string(bs) +func (p *parser) asciiEscapeToUnicode(it item, s string) rune { hex, err := strconv.ParseUint(strings.ToLower(s), 16, 32) if err != nil { p.bug("Could not parse '%s' as a hexadecimal number, but the lexer claims it's OK: %s", s, err) diff --git a/vendor/github.com/BurntSushi/toml/type_fields.go b/vendor/github.com/BurntSushi/toml/type_fields.go index 254ca82e..10c51f7e 100644 --- a/vendor/github.com/BurntSushi/toml/type_fields.go +++ b/vendor/github.com/BurntSushi/toml/type_fields.go @@ -25,10 +25,8 @@ type field struct { // breaking ties with index sequence. type byName []field -func (x byName) Len() int { return len(x) } - +func (x byName) Len() int { return len(x) } func (x byName) Swap(i, j int) { x[i], x[j] = x[j], x[i] } - func (x byName) Less(i, j int) bool { if x[i].name != x[j].name { return x[i].name < x[j].name @@ -45,10 +43,8 @@ func (x byName) Less(i, j int) bool { // byIndex sorts field by index sequence. type byIndex []field -func (x byIndex) Len() int { return len(x) } - +func (x byIndex) Len() int { return len(x) } func (x byIndex) Swap(i, j int) { x[i], x[j] = x[j], x[i] } - func (x byIndex) Less(i, j int) bool { for k, xik := range x[i].index { if k >= len(x[j].index) { diff --git a/vendor/github.com/BurntSushi/toml/type_toml.go b/vendor/github.com/BurntSushi/toml/type_toml.go index 4e90d773..1c090d33 100644 --- a/vendor/github.com/BurntSushi/toml/type_toml.go +++ b/vendor/github.com/BurntSushi/toml/type_toml.go @@ -22,13 +22,8 @@ func typeIsTable(t tomlType) bool { type tomlBaseType string -func (btype tomlBaseType) typeString() string { - return string(btype) -} - -func (btype tomlBaseType) String() string { - return btype.typeString() -} +func (btype tomlBaseType) typeString() string { return string(btype) } +func (btype tomlBaseType) String() string { return btype.typeString() } var ( tomlInteger tomlBaseType = "Integer" @@ -54,7 +49,7 @@ func (p *parser) typeOfPrimitive(lexItem item) tomlType { return tomlFloat case itemDatetime: return tomlDatetime - case itemString: + case itemString, itemStringEsc: return tomlString case itemMultilineString: return tomlString diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/endpoints.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/endpoints.go index aa10a9b4..99edbf3e 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/aws/endpoints.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/endpoints.go @@ -70,6 +70,10 @@ func GetUseFIPSEndpoint(options ...interface{}) (value FIPSEndpointState, found // The SDK will automatically resolve these endpoints per API client using an // internal endpoint resolvers. If you'd like to provide custom endpoint // resolving behavior you can implement the EndpointResolver interface. +// +// Deprecated: This structure was used with the global [EndpointResolver] +// interface, which has been deprecated in favor of service-specific endpoint +// resolution. See the deprecation docs on that interface for more information. type Endpoint struct { // The base URL endpoint the SDK API clients will use to make API calls to. // The SDK will suffix URI path and query elements to this endpoint. @@ -124,6 +128,8 @@ type Endpoint struct { } // EndpointSource is the endpoint source type. +// +// Deprecated: The global [Endpoint] structure is deprecated. type EndpointSource int const ( @@ -161,19 +167,25 @@ func (e *EndpointNotFoundError) Unwrap() error { // API clients will fallback to attempting to resolve the endpoint using its // internal default endpoint resolver. // -// Deprecated: See EndpointResolverWithOptions +// Deprecated: The global endpoint resolution interface is deprecated. The API +// for endpoint resolution is now unique to each service and is set via the +// EndpointResolverV2 field on service client options. Setting a value for +// EndpointResolver on aws.Config or service client options will prevent you +// from using any endpoint-related service features released after the +// introduction of EndpointResolverV2. You may also encounter broken or +// unexpected behavior when using the old global interface with services that +// use many endpoint-related customizations such as S3. type EndpointResolver interface { ResolveEndpoint(service, region string) (Endpoint, error) } // EndpointResolverFunc wraps a function to satisfy the EndpointResolver interface. // -// Deprecated: See EndpointResolverWithOptionsFunc +// Deprecated: The global endpoint resolution interface is deprecated. See +// deprecation docs on [EndpointResolver]. type EndpointResolverFunc func(service, region string) (Endpoint, error) // ResolveEndpoint calls the wrapped function and returns the results. -// -// Deprecated: See EndpointResolverWithOptions.ResolveEndpoint func (e EndpointResolverFunc) ResolveEndpoint(service, region string) (Endpoint, error) { return e(service, region) } @@ -184,11 +196,17 @@ func (e EndpointResolverFunc) ResolveEndpoint(service, region string) (Endpoint, // available. If the EndpointResolverWithOptions returns an EndpointNotFoundError error, // API clients will fallback to attempting to resolve the endpoint using its // internal default endpoint resolver. +// +// Deprecated: The global endpoint resolution interface is deprecated. See +// deprecation docs on [EndpointResolver]. type EndpointResolverWithOptions interface { ResolveEndpoint(service, region string, options ...interface{}) (Endpoint, error) } // EndpointResolverWithOptionsFunc wraps a function to satisfy the EndpointResolverWithOptions interface. +// +// Deprecated: The global endpoint resolution interface is deprecated. See +// deprecation docs on [EndpointResolver]. type EndpointResolverWithOptionsFunc func(service, region string, options ...interface{}) (Endpoint, error) // ResolveEndpoint calls the wrapped function and returns the results. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go index 639ba763..d9cd55e7 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go @@ -3,4 +3,4 @@ package aws // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.26.1" +const goModuleVersion = "1.27.1" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/private/metrics/metrics.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/private/metrics/metrics.go index b0133f4c..19d6107c 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/private/metrics/metrics.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/middleware/private/metrics/metrics.go @@ -112,6 +112,8 @@ type MetricData struct { ResolveEndpointStartTime time.Time ResolveEndpointEndTime time.Time EndpointResolutionDuration time.Duration + GetIdentityStartTime time.Time + GetIdentityEndTime time.Time InThroughput float64 OutThroughput float64 RetryCount int @@ -122,6 +124,7 @@ type MetricData struct { OperationName string PartitionID string Region string + UserAgent string RequestContentLength int64 Stream StreamMetrics Attempts []AttemptMetrics @@ -144,8 +147,6 @@ type AttemptMetrics struct { ConnRequestedTime time.Time ConnObtainedTime time.Time ConcurrencyAcquireDuration time.Duration - CredentialFetchStartTime time.Time - CredentialFetchEndTime time.Time SignStartTime time.Time SignEndTime time.Time SigningDuration time.Duration diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/headers.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/headers.go index ca738f23..71b1a352 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/headers.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/headers.go @@ -38,7 +38,6 @@ var RequiredSignedHeaders = Rules{ "X-Amz-Copy-Source-Server-Side-Encryption-Customer-Algorithm": struct{}{}, "X-Amz-Copy-Source-Server-Side-Encryption-Customer-Key": struct{}{}, "X-Amz-Copy-Source-Server-Side-Encryption-Customer-Key-Md5": struct{}{}, - "X-Amz-Expected-Bucket-Owner": struct{}{}, "X-Amz-Grant-Full-control": struct{}{}, "X-Amz-Grant-Read": struct{}{}, "X-Amz-Grant-Read-Acp": struct{}{}, diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/middleware.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/middleware.go index febeb048..a9db6433 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/middleware.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/middleware.go @@ -11,7 +11,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" - "github.com/aws/aws-sdk-go-v2/aws/middleware/private/metrics" v4Internal "github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4" internalauth "github.com/aws/aws-sdk-go-v2/internal/auth" "github.com/aws/aws-sdk-go-v2/internal/sdk" @@ -301,22 +300,7 @@ func (s *SignHTTPRequestMiddleware) HandleFinalize(ctx context.Context, in middl return out, metadata, &SigningError{Err: fmt.Errorf("computed payload hash missing from context")} } - mctx := metrics.Context(ctx) - - if mctx != nil { - if attempt, err := mctx.Data().LatestAttempt(); err == nil { - attempt.CredentialFetchStartTime = sdk.NowTime() - } - } - credentials, err := s.credentialsProvider.Retrieve(ctx) - - if mctx != nil { - if attempt, err := mctx.Data().LatestAttempt(); err == nil { - attempt.CredentialFetchEndTime = sdk.NowTime() - } - } - if err != nil { return out, metadata, &SigningError{Err: fmt.Errorf("failed to retrieve credentials: %w", err)} } @@ -337,20 +321,7 @@ func (s *SignHTTPRequestMiddleware) HandleFinalize(ctx context.Context, in middl }) } - if mctx != nil { - if attempt, err := mctx.Data().LatestAttempt(); err == nil { - attempt.SignStartTime = sdk.NowTime() - } - } - err = s.signer.SignHTTP(ctx, credentials, req.Request, payloadHash, signingName, signingRegion, sdk.NowTime(), signerOptions...) - - if mctx != nil { - if attempt, err := mctx.Data().LatestAttempt(); err == nil { - attempt.SignEndTime = sdk.NowTime() - } - } - if err != nil { return out, metadata, &SigningError{Err: fmt.Errorf("failed to sign http request, %w", err)} } diff --git a/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/v4.go b/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/v4.go index bb61904e..dcd896a9 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/v4.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/v4.go @@ -1,48 +1,41 @@ -// Package v4 implements signing for AWS V4 signer +// Package v4 implements the AWS signature version 4 algorithm (commonly known +// as SigV4). // -// Provides request signing for request that need to be signed with -// AWS V4 Signatures. +// For more information about SigV4, see [Signing AWS API requests] in the IAM +// user guide. // -// # Standalone Signer +// While this implementation CAN work in an external context, it is developed +// primarily for SDK use and you may encounter fringe behaviors around header +// canonicalization. // -// Generally using the signer outside of the SDK should not require any additional +// # Pre-escaping a request URI // -// The signer does this by taking advantage of the URL.EscapedPath method. If your request URI requires +// AWS v4 signature validation requires that the canonical string's URI path +// component must be the escaped form of the HTTP request's path. +// +// The Go HTTP client will perform escaping automatically on the HTTP request. +// This may cause signature validation errors because the request differs from +// the URI path or query from which the signature was generated. // -// additional escaping you many need to use the URL.Opaque to define what the raw URI should be sent -// to the service as. +// Because of this, we recommend that you explicitly escape the request when +// using this signer outside of the SDK to prevent possible signature mismatch. +// This can be done by setting URL.Opaque on the request. The signer will +// prefer that value, falling back to the return of URL.EscapedPath if unset. // -// The signer will first check the URL.Opaque field, and use its value if set. -// The signer does require the URL.Opaque field to be set in the form of: +// When setting URL.Opaque you must do so in the form of: // // "///" // // // e.g. // "//example.com/some/path" // -// The leading "//" and hostname are required or the URL.Opaque escaping will -// not work correctly. -// -// If URL.Opaque is not set the signer will fallback to the URL.EscapedPath() -// method and using the returned value. -// -// AWS v4 signature validation requires that the canonical string's URI path -// element must be the URI escaped form of the HTTP request's path. -// http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html -// -// The Go HTTP client will perform escaping automatically on the request. Some -// of these escaping may cause signature validation errors because the HTTP -// request differs from the URI path or query that the signature was generated. -// https://golang.org/pkg/net/url/#URL.EscapedPath +// The leading "//" and hostname are required or the escaping will not work +// correctly. // -// Because of this, it is recommended that when using the signer outside of the -// SDK that explicitly escaping the request prior to being signed is preferable, -// and will help prevent signature validation errors. This can be done by setting -// the URL.Opaque or URL.RawPath. The SDK will use URL.Opaque first and then -// call URL.EscapedPath() if Opaque is not set. +// The TestStandaloneSign unit test provides a complete example of using the +// signer outside of the SDK and pre-escaping the URI path. // -// Test `TestStandaloneSign` provides a complete example of using the signer -// outside of the SDK and pre-escaping the URI path. +// [Signing AWS API requests]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html package v4 import ( @@ -402,6 +395,12 @@ func buildQuery(r v4Internal.Rule, header http.Header) (url.Values, http.Header) query := url.Values{} unsignedHeaders := http.Header{} for k, h := range header { + // literally just this header has this constraint for some stupid reason, + // see #2508 + if k == "X-Amz-Expected-Bucket-Owner" { + k = "x-amz-expected-bucket-owner" + } + if r.IsValid(k) { query[k] = h } else { diff --git a/vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md index 87ea591a..a1bbe100 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md @@ -1,3 +1,28 @@ +# v1.27.17 (2024-06-03) + +* **Documentation**: Add deprecation docs to global endpoint resolution interfaces. These APIs were previously deprecated with the introduction of service-specific endpoint resolution (EndpointResolverV2 and BaseEndpoint on service client options). +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.27.16 (2024-05-23) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.27.15 (2024-05-16) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.27.14 (2024-05-15) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.27.13 (2024-05-10) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.27.12 (2024-05-08) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.27.11 (2024-04-05) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go index 46566e90..089c79b2 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go @@ -3,4 +3,4 @@ package config // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.27.11" +const goModuleVersion = "1.27.17" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/config/load_options.go b/vendor/github.com/aws/aws-sdk-go-v2/config/load_options.go index 06596c1b..7ff38b9d 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/config/load_options.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/config/load_options.go @@ -824,7 +824,14 @@ func (o LoadOptions) getEndpointResolver(ctx context.Context) (aws.EndpointResol // the EndpointResolver value is ignored. If multiple WithEndpointResolver calls // are made, the last call overrides the previous call values. // -// Deprecated: See WithEndpointResolverWithOptions +// Deprecated: The global endpoint resolution interface is deprecated. The API +// for endpoint resolution is now unique to each service and is set via the +// EndpointResolverV2 field on service client options. Use of +// WithEndpointResolver or WithEndpointResolverWithOptions will prevent you +// from using any endpoint-related service features released after the +// introduction of EndpointResolverV2. You may also encounter broken or +// unexpected behavior when using the old global interface with services that +// use many endpoint-related customizations such as S3. func WithEndpointResolver(v aws.EndpointResolver) LoadOptionsFunc { return func(o *LoadOptions) error { o.EndpointResolver = v @@ -844,6 +851,9 @@ func (o LoadOptions) getEndpointResolverWithOptions(ctx context.Context) (aws.En // that sets the EndpointResolverWithOptions on LoadOptions. If the EndpointResolverWithOptions is set to nil, // the EndpointResolver value is ignored. If multiple WithEndpointResolver calls // are made, the last call overrides the previous call values. +// +// Deprecated: The global endpoint resolution interface is deprecated. See +// deprecation docs on [WithEndpointResolver]. func WithEndpointResolverWithOptions(v aws.EndpointResolverWithOptions) LoadOptionsFunc { return func(o *LoadOptions) error { o.EndpointResolverWithOptions = v diff --git a/vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md index 3b0bad42..2919c2a5 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md @@ -1,3 +1,27 @@ +# v1.17.17 (2024-06-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.17.16 (2024-05-23) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.17.15 (2024-05-16) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.17.14 (2024-05-15) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.17.13 (2024-05-10) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.17.12 (2024-05-08) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.17.11 (2024-04-05) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go index 4cb3e303..41ea238d 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go @@ -3,4 +3,4 @@ package credentials // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.17.11" +const goModuleVersion = "1.17.17" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md index 3807833d..d99db87e 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md @@ -1,3 +1,15 @@ +# v1.16.4 (2024-06-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.16.3 (2024-05-16) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.16.2 (2024-05-15) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.16.1 (2024-03-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go index 5642306f..82062118 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go @@ -3,4 +3,4 @@ package imds // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.16.1" +const goModuleVersion = "1.16.4" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/CHANGELOG.md index 842adc1b..c526ff00 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/CHANGELOG.md @@ -1,3 +1,31 @@ +# v1.16.22 (2024-06-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.16.21 (2024-05-23) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.16.20 (2024-05-16) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.16.19 (2024-05-15) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.16.18 (2024-05-14) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.16.17 (2024-05-10) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.16.16 (2024-05-08) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.16.15 (2024-04-05) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/go_module_metadata.go index a5143320..70bc28d8 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/go_module_metadata.go @@ -3,4 +3,4 @@ package manager // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.16.15" +const goModuleVersion = "1.16.22" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md index 72e196dd..0c5a35db 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md @@ -1,3 +1,15 @@ +# v1.3.8 (2024-06-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.3.7 (2024-05-16) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.3.6 (2024-05-15) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.3.5 (2024-03-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go index faf71cac..902f50d6 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go @@ -3,4 +3,4 @@ package configsources // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.3.5" +const goModuleVersion = "1.3.8" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/partitions.json b/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/partitions.json index f376f690..7a28569c 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/partitions.json +++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn/partitions.json @@ -198,7 +198,11 @@ "supportsFIPS" : true }, "regionRegex" : "^eu\\-isoe\\-\\w+\\-\\d+$", - "regions" : { } + "regions" : { + "eu-isoe-west-1" : { + "description" : "EU ISOE West" + } + } }, { "id" : "aws-iso-f", "outputs" : { diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md index 6f6dafa8..c9ef13fc 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md @@ -1,3 +1,15 @@ +# v2.6.8 (2024-06-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v2.6.7 (2024-05-16) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v2.6.6 (2024-05-15) + +* **Dependency Update**: Updated to the latest SDK module versions + # v2.6.5 (2024-03-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go index 27981631..91cd333d 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go @@ -3,4 +3,4 @@ package endpoints // goModuleVersion is the tagged release for this module -const goModuleVersion = "2.6.5" +const goModuleVersion = "2.6.8" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/CHANGELOG.md index 0f10e022..1dd29185 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/CHANGELOG.md @@ -1,3 +1,15 @@ +# v1.3.8 (2024-06-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.3.7 (2024-05-16) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.3.6 (2024-05-15) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.3.5 (2024-03-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/go_module_metadata.go index 51aa32cf..eabc13fa 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/go_module_metadata.go @@ -3,4 +3,4 @@ package v4a // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.3.5" +const goModuleVersion = "1.3.8" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/CHANGELOG.md index 2246bd62..37b203f1 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/CHANGELOG.md @@ -1,3 +1,15 @@ +# v1.3.10 (2024-06-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.3.9 (2024-05-16) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.3.8 (2024-05-15) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.3.7 (2024-03-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/go_module_metadata.go index 6785174d..05f636da 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/go_module_metadata.go @@ -3,4 +3,4 @@ package checksum // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.3.7" +const goModuleVersion = "1.3.10" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md index 35c7050d..0c98ab7c 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md @@ -1,3 +1,15 @@ +# v1.11.10 (2024-06-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.9 (2024-05-16) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.8 (2024-05-15) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.11.7 (2024-03-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go index daf77b5c..d1a66df0 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go @@ -3,4 +3,4 @@ package presignedurl // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.11.7" +const goModuleVersion = "1.11.10" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md index 150e26f4..d8d90664 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md @@ -1,3 +1,15 @@ +# v1.17.8 (2024-06-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.17.7 (2024-05-16) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.17.6 (2024-05-15) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.17.5 (2024-03-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go index a1f30ee0..f6e216e3 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go @@ -3,4 +3,4 @@ package s3shared // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.17.5" +const goModuleVersion = "1.17.8" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md index ed520468..caa8b4d7 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md @@ -1,3 +1,27 @@ +# v1.54.4 (2024-06-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.54.3 (2024-05-23) + +* **Bug Fix**: Prevent parsing failures for nonstandard `Expires` values in responses. If the SDK cannot parse the value set in the response header for this field it will now be returned as `nil`. A new field, `ExpiresString`, has been added that will retain the unparsed value from the response (regardless of whether it came back in a format recognized by the SDK). + +# v1.54.2 (2024-05-16) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.54.1 (2024-05-15) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.54.0 (2024-05-14) + +* **Feature**: Updated a few x-id in the http uri traits + +# v1.53.2 (2024-05-08) + +* **Bug Fix**: GoDoc improvement + # v1.53.1 (2024-03-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_AbortMultipartUpload.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_AbortMultipartUpload.go index c71060e0..c10e4987 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_AbortMultipartUpload.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_AbortMultipartUpload.go @@ -18,22 +18,27 @@ import ( // by any previously uploaded parts will be freed. However, if any part uploads are // currently in progress, those part uploads might or might not succeed. As a // result, it might be necessary to abort a given multipart upload multiple times -// in order to completely free all storage consumed by all parts. To verify that -// all parts have been removed and prevent getting charged for the part storage, -// you should call the ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) -// API operation and ensure that the parts list is empty. Directory buckets - For -// directory buckets, you must make requests for this API operation to the Zonal -// endpoint. These endpoints support virtual-hosted-style requests in the format +// in order to completely free all storage consumed by all parts. +// +// To verify that all parts have been removed and prevent getting charged for the +// part storage, you should call the [ListParts]API operation and ensure that the parts list +// is empty. +// +// Directory buckets - For directory buckets, you must make requests for this API +// operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format // https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style -// requests are not supported. For more information, see Regional and Zonal -// endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. Permissions +// requests are not supported. For more information, see [Regional and Zonal endpoints]in the Amazon S3 User +// Guide. +// +// Permissions +// // - General purpose bucket permissions - For information about permissions -// required to use the multipart upload, see Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) -// in the Amazon S3 User Guide. +// required to use the multipart upload, see [Multipart Upload and Permissions]in the Amazon S3 User Guide. +// // - Directory bucket permissions - To grant access to this API operation on a -// directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// API operation for session-based authorization. Specifically, you grant the +// directory bucket, we recommend that you use the [CreateSession]CreateSession API operation +// for session-based authorization. Specifically, you grant the // s3express:CreateSession permission to the directory bucket in a bucket policy // or an IAM identity-based policy. Then, you make the CreateSession API call on // the bucket to obtain a session token. With the session token in your request @@ -41,17 +46,31 @@ import ( // expires, you make another CreateSession API call to generate a new session // token for use. Amazon Web Services CLI or SDKs create session and refresh the // session token automatically to avoid service interruptions when a session -// expires. For more information about authorization, see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// . +// expires. For more information about authorization, see [CreateSession]CreateSession . +// +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// Bucket_name.s3express-az_id.region.amazonaws.com . +// +// The following operations are related to AbortMultipartUpload : +// +// [CreateMultipartUpload] +// +// [UploadPart] +// +// [CompleteMultipartUpload] +// +// [ListParts] // -// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is -// Bucket_name.s3express-az_id.region.amazonaws.com . The following operations are -// related to AbortMultipartUpload : -// - CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) -// - UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) -// - CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) -// - ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) -// - ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) +// [ListMultipartUploads] +// +// [ListParts]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html +// [UploadPart]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [ListMultipartUploads]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html +// [CreateSession]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html +// [Multipart Upload and Permissions]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html +// [CompleteMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html +// [CreateMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html func (c *Client) AbortMultipartUpload(ctx context.Context, params *AbortMultipartUploadInput, optFns ...func(*Options)) (*AbortMultipartUploadOutput, error) { if params == nil { params = &AbortMultipartUploadInput{} @@ -69,31 +88,39 @@ func (c *Client) AbortMultipartUpload(ctx context.Context, params *AbortMultipar type AbortMultipartUploadInput struct { - // The bucket name to which the upload was taking place. Directory buckets - When - // you use this operation with a directory bucket, you must use - // virtual-hosted-style requests in the format + // The bucket name to which the upload was taking place. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use virtual-hosted-style requests in the format // Bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests are not // supported. Directory bucket names must be unique in the chosen Availability // Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for // example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 ). For information about bucket - // naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. Access points and Object Lambda access points are - // not supported by directory buckets. S3 on Outposts - When you use this action - // with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts - // hostname. The S3 on Outposts hostname takes the form + // naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -117,10 +144,12 @@ type AbortMultipartUploadInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer noSmithyDocumentSerde @@ -135,7 +164,9 @@ func (in *AbortMultipartUploadInput) bindEndpointParams(p *EndpointParameters) { type AbortMultipartUploadOutput struct { // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CompleteMultipartUpload.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CompleteMultipartUpload.go index 8f89d780..1bdf3c6a 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CompleteMultipartUpload.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CompleteMultipartUpload.go @@ -13,51 +13,59 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Completes a multipart upload by assembling previously uploaded parts. You first -// initiate the multipart upload and then upload all parts using the UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) -// operation or the UploadPartCopy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) -// operation. After successfully uploading all relevant parts of an upload, you -// call this CompleteMultipartUpload operation to complete the upload. Upon -// receiving this request, Amazon S3 concatenates all the parts in ascending order -// by part number to create a new object. In the CompleteMultipartUpload request, -// you must provide the parts list and ensure that the parts list is complete. The -// CompleteMultipartUpload API operation concatenates the parts that you provide in -// the list. For each part in the list, you must provide the PartNumber value and -// the ETag value that are returned after that part was uploaded. The processing -// of a CompleteMultipartUpload request could take several minutes to finalize. -// After Amazon S3 begins processing the request, it sends an HTTP response header -// that specifies a 200 OK response. While processing is in progress, Amazon S3 -// periodically sends white space characters to keep the connection from timing -// out. A request could fail after the initial 200 OK response has been sent. This -// means that a 200 OK response can contain either a success or an error. The -// error response might be embedded in the 200 OK response. If you call this API -// operation directly, make sure to design your application to parse the contents -// of the response and handle it appropriately. If you use Amazon Web Services -// SDKs, SDKs handle this condition. The SDKs detect the embedded error and apply -// error handling per your configuration settings (including automatically retrying -// the request as appropriate). If the condition persists, the SDKs throw an -// exception (or, for the SDKs that don't use exceptions, they return an error). +// Completes a multipart upload by assembling previously uploaded parts. +// +// You first initiate the multipart upload and then upload all parts using the [UploadPart] +// operation or the [UploadPartCopy]operation. After successfully uploading all relevant parts of +// an upload, you call this CompleteMultipartUpload operation to complete the +// upload. Upon receiving this request, Amazon S3 concatenates all the parts in +// ascending order by part number to create a new object. In the +// CompleteMultipartUpload request, you must provide the parts list and ensure that +// the parts list is complete. The CompleteMultipartUpload API operation +// concatenates the parts that you provide in the list. For each part in the list, +// you must provide the PartNumber value and the ETag value that are returned +// after that part was uploaded. +// +// The processing of a CompleteMultipartUpload request could take several minutes +// to finalize. After Amazon S3 begins processing the request, it sends an HTTP +// response header that specifies a 200 OK response. While processing is in +// progress, Amazon S3 periodically sends white space characters to keep the +// connection from timing out. A request could fail after the initial 200 OK +// response has been sent. This means that a 200 OK response can contain either a +// success or an error. The error response might be embedded in the 200 OK +// response. If you call this API operation directly, make sure to design your +// application to parse the contents of the response and handle it appropriately. +// If you use Amazon Web Services SDKs, SDKs handle this condition. The SDKs detect +// the embedded error and apply error handling per your configuration settings +// (including automatically retrying the request as appropriate). If the condition +// persists, the SDKs throw an exception (or, for the SDKs that don't use +// exceptions, they return an error). +// // Note that if CompleteMultipartUpload fails, applications should be prepared to // retry any failed requests (including 500 error responses). For more information, -// see Amazon S3 Error Best Practices (https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html) -// . You can't use Content-Type: application/x-www-form-urlencoded for the +// see [Amazon S3 Error Best Practices]. +// +// You can't use Content-Type: application/x-www-form-urlencoded for the // CompleteMultipartUpload requests. Also, if you don't provide a Content-Type -// header, CompleteMultipartUpload can still return a 200 OK response. For more -// information about multipart uploads, see Uploading Objects Using Multipart -// Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) -// in the Amazon S3 User Guide. Directory buckets - For directory buckets, you must -// make requests for this API operation to the Zonal endpoint. These endpoints -// support virtual-hosted-style requests in the format +// header, CompleteMultipartUpload can still return a 200 OK response. +// +// For more information about multipart uploads, see [Uploading Objects Using Multipart Upload] in the Amazon S3 User Guide. +// +// Directory buckets - For directory buckets, you must make requests for this API +// operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format // https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style -// requests are not supported. For more information, see Regional and Zonal -// endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. Permissions +// requests are not supported. For more information, see [Regional and Zonal endpoints]in the Amazon S3 User +// Guide. +// +// Permissions +// // - General purpose bucket permissions - For information about permissions -// required to use the multipart upload API, see Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) -// in the Amazon S3 User Guide. +// required to use the multipart upload API, see [Multipart Upload and Permissions]in the Amazon S3 User Guide. +// // - Directory bucket permissions - To grant access to this API operation on a -// directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// API operation for session-based authorization. Specifically, you grant the +// directory bucket, we recommend that you use the [CreateSession]CreateSession API operation +// for session-based authorization. Specifically, you grant the // s3express:CreateSession permission to the directory bucket in a bucket policy // or an IAM identity-based policy. Then, you make the CreateSession API call on // the bucket to obtain a session token. With the session token in your request @@ -65,36 +73,65 @@ import ( // expires, you make another CreateSession API call to generate a new session // token for use. Amazon Web Services CLI or SDKs create session and refresh the // session token automatically to avoid service interruptions when a session -// expires. For more information about authorization, see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// . +// expires. For more information about authorization, see [CreateSession]CreateSession . // // Special errors +// // - Error Code: EntityTooSmall +// // - Description: Your proposed upload is smaller than the minimum allowed // object size. Each part must be at least 5 MB in size, except the last part. +// // - HTTP Status Code: 400 Bad Request +// // - Error Code: InvalidPart +// // - Description: One or more of the specified parts could not be found. The // part might not have been uploaded, or the specified ETag might not have matched // the uploaded part's ETag. +// // - HTTP Status Code: 400 Bad Request +// // - Error Code: InvalidPartOrder +// // - Description: The list of parts was not in ascending order. The parts list // must be specified in order by part number. +// // - HTTP Status Code: 400 Bad Request +// // - Error Code: NoSuchUpload +// // - Description: The specified multipart upload does not exist. The upload ID // might be invalid, or the multipart upload might have been aborted or completed. +// // - HTTP Status Code: 404 Not Found // -// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is -// Bucket_name.s3express-az_id.region.amazonaws.com . The following operations are -// related to CompleteMultipartUpload : -// - CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) -// - UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) -// - AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) -// - ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) -// - ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// Bucket_name.s3express-az_id.region.amazonaws.com . +// +// The following operations are related to CompleteMultipartUpload : +// +// [CreateMultipartUpload] +// +// [UploadPart] +// +// [AbortMultipartUpload] +// +// [ListParts] +// +// [ListMultipartUploads] +// +// [Uploading Objects Using Multipart Upload]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html +// [Amazon S3 Error Best Practices]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html +// [AbortMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html +// [ListParts]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html +// [UploadPart]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [ListMultipartUploads]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html +// [CreateSession]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html +// [UploadPartCopy]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html +// [Multipart Upload and Permissions]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html +// [CreateMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html func (c *Client) CompleteMultipartUpload(ctx context.Context, params *CompleteMultipartUploadInput, optFns ...func(*Options)) (*CompleteMultipartUploadOutput, error) { if params == nil { params = &CompleteMultipartUploadInput{} @@ -112,31 +149,39 @@ func (c *Client) CompleteMultipartUpload(ctx context.Context, params *CompleteMu type CompleteMultipartUploadInput struct { - // Name of the bucket to which the multipart upload was initiated. Directory - // buckets - When you use this operation with a directory bucket, you must use - // virtual-hosted-style requests in the format + // Name of the bucket to which the multipart upload was initiated. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use virtual-hosted-style requests in the format // Bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests are not // supported. Directory bucket names must be unique in the chosen Availability // Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for // example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 ). For information about bucket - // naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. Access points and Object Lambda access points are - // not supported by directory buckets. S3 on Outposts - When you use this action - // with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts - // hostname. The S3 on Outposts hostname takes the form + // naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -153,30 +198,34 @@ type CompleteMultipartUploadInput struct { // This header can be used as a data integrity check to verify that the data // received is the same data that was originally sent. This header specifies the - // base64-encoded, 32-bit CRC32 checksum of the object. For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // base64-encoded, 32-bit CRC32 checksum of the object. For more information, see [Checking object integrity] // in the Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumCRC32 *string // This header can be used as a data integrity check to verify that the data // received is the same data that was originally sent. This header specifies the - // base64-encoded, 32-bit CRC32C checksum of the object. For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // base64-encoded, 32-bit CRC32C checksum of the object. For more information, see [Checking object integrity] // in the Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumCRC32C *string // This header can be used as a data integrity check to verify that the data // received is the same data that was originally sent. This header specifies the - // base64-encoded, 160-bit SHA-1 digest of the object. For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // base64-encoded, 160-bit SHA-1 digest of the object. For more information, see [Checking object integrity] // in the Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumSHA1 *string // This header can be used as a data integrity check to verify that the data // received is the same data that was originally sent. This header specifies the - // base64-encoded, 256-bit SHA-256 digest of the object. For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // base64-encoded, 256-bit SHA-256 digest of the object. For more information, see [Checking object integrity] // in the Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumSHA256 *string // The account ID of the expected bucket owner. If the account ID that you provide @@ -191,32 +240,40 @@ type CompleteMultipartUploadInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer // The server-side encryption (SSE) algorithm used to encrypt the object. This // parameter is required only when the object was created using a checksum // algorithm or if your bucket policy requires the use of SSE-C. For more - // information, see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html#ssec-require-condition-key) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // information, see [Protecting data using SSE-C keys]in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. + // + // [Protecting data using SSE-C keys]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html#ssec-require-condition-key SSECustomerAlgorithm *string // The server-side encryption (SSE) customer managed key. This parameter is needed // only when the object was created using a checksum algorithm. For more - // information, see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // information, see [Protecting data using SSE-C keys]in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. + // + // [Protecting data using SSE-C keys]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html SSECustomerKey *string // The MD5 server-side encryption (SSE) customer managed key. This parameter is // needed only when the object was created using a checksum algorithm. For more - // information, see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // information, see [Protecting data using SSE-C keys]in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. + // + // [Protecting data using SSE-C keys]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html SSECustomerKeyMD5 *string noSmithyDocumentSerde @@ -231,13 +288,15 @@ func (in *CompleteMultipartUploadInput) bindEndpointParams(p *EndpointParameters type CompleteMultipartUploadOutput struct { // The name of the bucket that contains the newly created object. Does not return - // the access point ARN or access point alias if used. Access points are not - // supported by directory buckets. + // the access point ARN or access point alias if used. + // + // Access points are not supported by directory buckets. Bucket *string // Indicates whether the multipart upload uses an S3 Bucket Key for server-side - // encryption with Key Management Service (KMS) keys (SSE-KMS). This functionality - // is not supported for directory buckets. + // encryption with Key Management Service (KMS) keys (SSE-KMS). + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be @@ -245,8 +304,10 @@ type CompleteMultipartUploadOutput struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumCRC32 *string // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be @@ -254,8 +315,10 @@ type CompleteMultipartUploadOutput struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumCRC32C *string // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be @@ -263,8 +326,10 @@ type CompleteMultipartUploadOutput struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumSHA1 *string // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be @@ -272,8 +337,10 @@ type CompleteMultipartUploadOutput struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumSHA256 *string // Entity tag that identifies the newly created object's data. Objects with @@ -282,12 +349,14 @@ type CompleteMultipartUploadOutput struct { // data. If the entity tag is not an MD5 digest of the object data, it will contain // one or more nonhexadecimal characters and/or will consist of less than 32 or // more than 32 hexadecimal digits. For more information about how the entity tag - // is calculated, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. + // is calculated, see [Checking object integrity]in the Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ETag *string // If the object expiration is configured, this will contain the expiration date ( // expiry-date ) and rule ID ( rule-id ). The value of rule-id is URL-encoded. + // // This functionality is not supported for directory buckets. Expiration *string @@ -298,21 +367,28 @@ type CompleteMultipartUploadOutput struct { Location *string // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // If present, indicates the ID of the Key Management Service (KMS) symmetric - // encryption customer managed key that was used for the object. This functionality - // is not supported for directory buckets. + // encryption customer managed key that was used for the object. + // + // This functionality is not supported for directory buckets. SSEKMSKeyId *string // The server-side encryption algorithm used when storing this object in Amazon S3 - // (for example, AES256 , aws:kms ). For directory buckets, only server-side - // encryption with Amazon S3 managed keys (SSE-S3) ( AES256 ) is supported. + // (for example, AES256 , aws:kms ). + // + // For directory buckets, only server-side encryption with Amazon S3 managed keys + // (SSE-S3) ( AES256 ) is supported. ServerSideEncryption types.ServerSideEncryption // Version ID of the newly created object, in case the bucket has versioning - // turned on. This functionality is not supported for directory buckets. + // turned on. + // + // This functionality is not supported for directory buckets. VersionId *string // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CopyObject.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CopyObject.go index c7990bab..bae0b7cb 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CopyObject.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CopyObject.go @@ -15,102 +15,134 @@ import ( "time" ) -// Creates a copy of an object that is already stored in Amazon S3. You can store -// individual objects of up to 5 TB in Amazon S3. You create a copy of your object -// up to 5 GB in size in a single atomic action using this API. However, to copy an -// object greater than 5 GB, you must use the multipart upload Upload Part - Copy -// (UploadPartCopy) API. For more information, see Copy Object Using the REST -// Multipart Upload API (https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html) -// . You can copy individual objects between general purpose buckets, between +// Creates a copy of an object that is already stored in Amazon S3. +// +// You can store individual objects of up to 5 TB in Amazon S3. You create a copy +// of your object up to 5 GB in size in a single atomic action using this API. +// However, to copy an object greater than 5 GB, you must use the multipart upload +// Upload Part - Copy (UploadPartCopy) API. For more information, see [Copy Object Using the REST Multipart Upload API]. +// +// You can copy individual objects between general purpose buckets, between // directory buckets, and between general purpose buckets and directory buckets. +// // Directory buckets - For directory buckets, you must make requests for this API // operation to the Zonal endpoint. These endpoints support virtual-hosted-style // requests in the format // https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style -// requests are not supported. For more information, see Regional and Zonal -// endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. Both the Region that you want to copy the object -// from and the Region that you want to copy the object to must be enabled for your -// account. For more information about how to enable a Region for your account, see -// Enable or disable a Region for standalone accounts (https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html#manage-acct-regions-enable-standalone) -// in the Amazon Web Services Account Management Guide. Amazon S3 transfer -// acceleration does not support cross-Region copies. If you request a cross-Region -// copy using a transfer acceleration endpoint, you get a 400 Bad Request error. -// For more information, see Transfer Acceleration (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) -// . Authentication and authorization All CopyObject requests must be -// authenticated and signed by using IAM credentials (access key ID and secret -// access key for the IAM identities). All headers with the x-amz- prefix, -// including x-amz-copy-source , must be signed. For more information, see REST -// Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html) -// . Directory buckets - You must use the IAM credentials to authenticate and +// requests are not supported. For more information, see [Regional and Zonal endpoints]in the Amazon S3 User +// Guide. +// +// Both the Region that you want to copy the object from and the Region that you +// want to copy the object to must be enabled for your account. For more +// information about how to enable a Region for your account, see [Enable or disable a Region for standalone accounts]in the Amazon +// Web Services Account Management Guide. +// +// Amazon S3 transfer acceleration does not support cross-Region copies. If you +// request a cross-Region copy using a transfer acceleration endpoint, you get a +// 400 Bad Request error. For more information, see [Transfer Acceleration]. +// +// Authentication and authorization All CopyObject requests must be authenticated +// and signed by using IAM credentials (access key ID and secret access key for the +// IAM identities). All headers with the x-amz- prefix, including x-amz-copy-source +// , must be signed. For more information, see [REST Authentication]. +// +// Directory buckets - You must use the IAM credentials to authenticate and // authorize your access to the CopyObject API operation, instead of using the -// temporary security credentials through the CreateSession API operation. Amazon -// Web Services CLI or SDKs handles authentication and authorization on your -// behalf. Permissions You must have read access to the source object and write -// access to the destination bucket. +// temporary security credentials through the CreateSession API operation. +// +// Amazon Web Services CLI or SDKs handles authentication and authorization on +// your behalf. +// +// Permissions You must have read access to the source object and write access to +// the destination bucket. +// // - General purpose bucket permissions - You must have permissions in an IAM // policy based on the source and destination bucket types in a CopyObject // operation. +// // - If the source object is in a general purpose bucket, you must have // s3:GetObject permission to read the source object that is being copied. +// // - If the destination bucket is a general purpose bucket, you must have // s3:PutObject permission to write the object copy to the destination bucket. +// // - Directory bucket permissions - You must have permissions in a bucket policy // or an IAM identity-based policy based on the source and destination bucket types // in a CopyObject operation. +// // - If the source object that you want to copy is in a directory bucket, you // must have the s3express:CreateSession permission in the Action element of a // policy to read the object. By default, the session is in the ReadWrite mode. // If you want to restrict the access, you can explicitly set the // s3express:SessionMode condition key to ReadOnly on the copy source bucket. +// // - If the copy destination is a directory bucket, you must have the // s3express:CreateSession permission in the Action element of a policy to write // the object to the destination. The s3express:SessionMode condition key can't -// be set to ReadOnly on the copy destination bucket. For example policies, see -// Example bucket policies for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) -// and Amazon Web Services Identity and Access Management (IAM) identity-based -// policies for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html) -// in the Amazon S3 User Guide. +// be set to ReadOnly on the copy destination bucket. +// +// For example policies, see [Example bucket policies for S3 Express One Zone]and [Amazon Web Services Identity and Access Management (IAM) identity-based policies for S3 Express One Zone]in the Amazon S3 User Guide. // // Response and special errors When the request is an HTTP 1.1 request, the // response is chunk encoded. When the request is not an HTTP 1.1 request, the // response would not contain the Content-Length . You always need to read the // entire response body to check if the copy succeeds. to keep the connection alive // while we copy the data. +// // - If the copy is successful, you receive a response with information about // the copied object. +// // - A copy request might return an error when Amazon S3 receives the copy // request or while Amazon S3 is copying the files. A 200 OK response can contain // either a success or an error. +// // - If the error occurs before the copy action starts, you receive a standard // Amazon S3 error. +// // - If the error occurs during the copy operation, the error response is // embedded in the 200 OK response. For example, in a cross-region copy, you may -// encounter throttling and receive a 200 OK response. For more information, see -// Resolve the Error 200 response when copying objects to Amazon S3 (https://repost.aws/knowledge-center/s3-resolve-200-internalerror) +// encounter throttling and receive a 200 OK response. For more information, see [Resolve the Error 200 response when copying objects to Amazon S3] // . The 200 OK status code means the copy was accepted, but it doesn't mean the // copy is complete. Another example is when you disconnect from Amazon S3 before // the copy is complete, Amazon S3 might cancel the copy and you may receive a // 200 OK response. You must stay connected to Amazon S3 until the entire -// response is successfully received and processed. If you call this API operation -// directly, make sure to design your application to parse the content of the -// response and handle it appropriately. If you use Amazon Web Services SDKs, SDKs -// handle this condition. The SDKs detect the embedded error and apply error -// handling per your configuration settings (including automatically retrying the -// request as appropriate). If the condition persists, the SDKs throw an exception -// (or, for the SDKs that don't use exceptions, they return an error). +// response is successfully received and processed. +// +// If you call this API operation directly, make sure to design your application +// +// to parse the content of the response and handle it appropriately. If you use +// Amazon Web Services SDKs, SDKs handle this condition. The SDKs detect the +// embedded error and apply error handling per your configuration settings +// (including automatically retrying the request as appropriate). If the condition +// persists, the SDKs throw an exception (or, for the SDKs that don't use +// exceptions, they return an error). // // Charge The copy request charge is based on the storage class and Region that // you specify for the destination object. The request can also result in a data // retrieval charge for the source if the source storage class bills for data // retrieval. If the copy source is in a different region, the data transfer is -// billed to the copy source account. For pricing information, see Amazon S3 -// pricing (http://aws.amazon.com/s3/pricing/) . HTTP Host header syntax Directory -// buckets - The HTTP Host header syntax is -// Bucket_name.s3express-az_id.region.amazonaws.com . The following operations are -// related to CopyObject : -// - PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) -// - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) +// billed to the copy source account. For pricing information, see [Amazon S3 pricing]. +// +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// Bucket_name.s3express-az_id.region.amazonaws.com . +// +// The following operations are related to CopyObject : +// +// [PutObject] +// +// [GetObject] +// +// [Amazon Web Services Identity and Access Management (IAM) identity-based policies for S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html +// [Resolve the Error 200 response when copying objects to Amazon S3]: https://repost.aws/knowledge-center/s3-resolve-200-internalerror +// [Copy Object Using the REST Multipart Upload API]: https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html +// [REST Authentication]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html +// [Example bucket policies for S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [Enable or disable a Region for standalone accounts]: https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html#manage-acct-regions-enable-standalone +// [Transfer Acceleration]: https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html +// [PutObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html +// [GetObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html +// [Amazon S3 pricing]: http://aws.amazon.com/s3/pricing/ func (c *Client) CopyObject(ctx context.Context, params *CopyObjectInput, optFns ...func(*Options)) (*CopyObjectOutput, error) { if params == nil { params = &CopyObjectInput{} @@ -128,31 +160,39 @@ func (c *Client) CopyObject(ctx context.Context, params *CopyObjectInput, optFns type CopyObjectInput struct { - // The name of the destination bucket. Directory buckets - When you use this - // operation with a directory bucket, you must use virtual-hosted-style requests in - // the format Bucket_name.s3express-az_id.region.amazonaws.com . Path-style - // requests are not supported. Directory bucket names must be unique in the chosen - // Availability Zone. Bucket names must follow the format - // bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 - // ). For information about bucket naming restrictions, see Directory bucket - // naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. Access points and Object Lambda access points are - // not supported by directory buckets. S3 on Outposts - When you use this action - // with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts - // hostname. The S3 on Outposts hostname takes the form + // The name of the destination bucket. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use virtual-hosted-style requests in the format + // Bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests are not + // supported. Directory bucket names must be unique in the chosen Availability + // Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for + // example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 ). For information about bucket + // naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -160,10 +200,11 @@ type CopyObjectInput struct { // Specifies the source object for the copy operation. The source object can be up // to 5 GB. If the source object is an object that was uploaded by using a // multipart upload, the object copy will be a single part object after the source - // object is copied to the destination bucket. You specify the value of the copy - // source in one of two formats, depending on whether you want to access the source - // object through an access point (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html) - // : + // object is copied to the destination bucket. + // + // You specify the value of the copy source in one of two formats, depending on + // whether you want to access the source object through an [access point]: + // // - For objects not accessed through an access point, specify the name of the // source bucket and the key of the source object, separated by a slash (/). For // example, to copy the object reports/january.pdf from the general purpose @@ -172,6 +213,7 @@ type CopyObjectInput struct { // bucket awsexamplebucket--use1-az5--x-s3 , use // awsexamplebucket--use1-az5--x-s3/reports/january.pdf . The value must be // URL-encoded. + // // - For objects accessed through access points, specify the Amazon Resource // Name (ARN) of the object as accessed through the access point, in the format // arn:aws:s3:::accesspoint//object/ . For example, to copy the object @@ -179,15 +221,20 @@ type CopyObjectInput struct { // 123456789012 in Region us-west-2 , use the URL encoding of // arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf // . The value must be URL encoded. + // // - Amazon S3 supports copy operations using Access points only when the source // and destination buckets are in the same Amazon Web Services Region. - // - Access points are not supported by directory buckets. Alternatively, for - // objects accessed through Amazon S3 on Outposts, specify the ARN of the object as - // accessed in the format arn:aws:s3-outposts:::outpost//object/ . For example, - // to copy the object reports/january.pdf through outpost my-outpost owned by - // account 123456789012 in Region us-west-2 , use the URL encoding of + // + // - Access points are not supported by directory buckets. + // + // Alternatively, for objects accessed through Amazon S3 on Outposts, specify the + // ARN of the object as accessed in the format + // arn:aws:s3-outposts:::outpost//object/ . For example, to copy the object + // reports/january.pdf through outpost my-outpost owned by account 123456789012 + // in Region us-west-2 , use the URL encoding of // arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf // . The value must be URL-encoded. + // // If your source bucket versioning is enabled, the x-amz-copy-source header by // default identifies the current version of an object to copy. If the current // version is a delete marker, Amazon S3 behaves as if the object was deleted. To @@ -195,14 +242,21 @@ type CopyObjectInput struct { // append ?versionId= to the value (for example, // awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893 // ). If you don't specify a version ID, Amazon S3 copies the latest version of the - // source object. If you enable versioning on the destination bucket, Amazon S3 - // generates a unique version ID for the copied object. This version ID is - // different from the version ID of the source object. Amazon S3 returns the - // version ID of the copied object in the x-amz-version-id response header in the - // response. If you do not enable versioning or suspend it on the destination - // bucket, the version ID that Amazon S3 generates in the x-amz-version-id - // response header is always null. Directory buckets - S3 Versioning isn't enabled - // and supported for directory buckets. + // source object. + // + // If you enable versioning on the destination bucket, Amazon S3 generates a + // unique version ID for the copied object. This version ID is different from the + // version ID of the source object. Amazon S3 returns the version ID of the copied + // object in the x-amz-version-id response header in the response. + // + // If you do not enable versioning or suspend it on the destination bucket, the + // version ID that Amazon S3 generates in the x-amz-version-id response header is + // always null. + // + // Directory buckets - S3 Versioning isn't enabled and supported for directory + // buckets. + // + // [access point]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html // // This member is required. CopySource *string @@ -212,51 +266,67 @@ type CopyObjectInput struct { // This member is required. Key *string - // The canned access control list (ACL) to apply to the object. When you copy an - // object, the ACL metadata is not preserved and is set to private by default. - // Only the owner has full access control. To override the default ACL setting, - // specify a new ACL when you generate a copy request. For more information, see - // Using ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html) - // . If the destination bucket that you're copying objects to uses the bucket owner + // The canned access control list (ACL) to apply to the object. + // + // When you copy an object, the ACL metadata is not preserved and is set to private + // by default. Only the owner has full access control. To override the default ACL + // setting, specify a new ACL when you generate a copy request. For more + // information, see [Using ACLs]. + // + // If the destination bucket that you're copying objects to uses the bucket owner // enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect // permissions. Buckets that use this setting only accept PUT requests that don't // specify an ACL or PUT requests that specify bucket owner full control ACLs, // such as the bucket-owner-full-control canned ACL or an equivalent form of this - // ACL expressed in the XML format. For more information, see Controlling - // ownership of objects and disabling ACLs (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) - // in the Amazon S3 User Guide. + // ACL expressed in the XML format. For more information, see [Controlling ownership of objects and disabling ACLs]in the Amazon S3 + // User Guide. + // // - If your destination bucket uses the bucket owner enforced setting for // Object Ownership, all objects written to the bucket by any account will be owned // by the bucket owner. + // // - This functionality is not supported for directory buckets. + // // - This functionality is not supported for Amazon S3 on Outposts. + // + // [Using ACLs]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html + // [Controlling ownership of objects and disabling ACLs]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html ACL types.ObjectCannedACL // Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption // with server-side encryption using Key Management Service (KMS) keys (SSE-KMS). // If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the object. + // // Setting this header to true causes Amazon S3 to use an S3 Bucket Key for object // encryption with SSE-KMS. Specifying this header with a COPY action doesn’t - // affect bucket-level settings for S3 Bucket Key. For more information, see - // Amazon S3 Bucket Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) - // in the Amazon S3 User Guide. This functionality is not supported when the - // destination bucket is a directory bucket. + // affect bucket-level settings for S3 Bucket Key. + // + // For more information, see [Amazon S3 Bucket Keys] in the Amazon S3 User Guide. + // + // This functionality is not supported when the destination bucket is a directory + // bucket. + // + // [Amazon S3 Bucket Keys]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html BucketKeyEnabled *bool // Specifies the caching behavior along the request/reply chain. CacheControl *string // Indicates the algorithm that you want Amazon S3 to use to create the checksum - // for the object. For more information, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. When you copy an object, if the source object has a - // checksum, that checksum value will be copied to the new object by default. If - // the CopyObject request does not include this x-amz-checksum-algorithm header, - // the checksum algorithm will be copied from the source object to the destination - // object (if it's present on the source object). You can optionally specify a - // different checksum algorithm to use with the x-amz-checksum-algorithm header. - // Unrecognized or unsupported values will respond with the HTTP status code 400 - // Bad Request . For directory buckets, when you use Amazon Web Services SDKs, - // CRC32 is the default checksum algorithm that's used for performance. + // for the object. For more information, see [Checking object integrity]in the Amazon S3 User Guide. + // + // When you copy an object, if the source object has a checksum, that checksum + // value will be copied to the new object by default. If the CopyObject request + // does not include this x-amz-checksum-algorithm header, the checksum algorithm + // will be copied from the source object to the destination object (if it's present + // on the source object). You can optionally specify a different checksum algorithm + // to use with the x-amz-checksum-algorithm header. Unrecognized or unsupported + // values will respond with the HTTP status code 400 Bad Request . + // + // For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the + // default checksum algorithm that's used for performance. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // Specifies presentational information for the object. Indicates whether an @@ -266,8 +336,10 @@ type CopyObjectInput struct { // Specifies what content encodings have been applied to the object and thus what // decoding mechanisms must be applied to obtain the media-type referenced by the - // Content-Type header field. For directory buckets, only the aws-chunked value is - // supported in this header field. + // Content-Type header field. + // + // For directory buckets, only the aws-chunked value is supported in this header + // field. ContentEncoding *string // The language the content is in. @@ -276,62 +348,85 @@ type CopyObjectInput struct { // A standard MIME type that describes the format of the object data. ContentType *string - // Copies the object if its entity tag (ETag) matches the specified tag. If both - // the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since + // Copies the object if its entity tag (ETag) matches the specified tag. + // + // If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since // headers are present in the request and evaluate as follows, Amazon S3 returns // 200 OK and copies the data: + // // - x-amz-copy-source-if-match condition evaluates to true + // // - x-amz-copy-source-if-unmodified-since condition evaluates to false CopySourceIfMatch *string - // Copies the object if it has been modified since the specified time. If both the - // x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since headers - // are present in the request and evaluate as follows, Amazon S3 returns the 412 - // Precondition Failed response code: + // Copies the object if it has been modified since the specified time. + // + // If both the x-amz-copy-source-if-none-match and + // x-amz-copy-source-if-modified-since headers are present in the request and + // evaluate as follows, Amazon S3 returns the 412 Precondition Failed response + // code: + // // - x-amz-copy-source-if-none-match condition evaluates to false + // // - x-amz-copy-source-if-modified-since condition evaluates to true CopySourceIfModifiedSince *time.Time - // Copies the object if its entity tag (ETag) is different than the specified - // ETag. If both the x-amz-copy-source-if-none-match and + // Copies the object if its entity tag (ETag) is different than the specified ETag. + // + // If both the x-amz-copy-source-if-none-match and // x-amz-copy-source-if-modified-since headers are present in the request and // evaluate as follows, Amazon S3 returns the 412 Precondition Failed response // code: + // // - x-amz-copy-source-if-none-match condition evaluates to false + // // - x-amz-copy-source-if-modified-since condition evaluates to true CopySourceIfNoneMatch *string - // Copies the object if it hasn't been modified since the specified time. If both - // the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since + // Copies the object if it hasn't been modified since the specified time. + // + // If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since // headers are present in the request and evaluate as follows, Amazon S3 returns // 200 OK and copies the data: + // // - x-amz-copy-source-if-match condition evaluates to true + // // - x-amz-copy-source-if-unmodified-since condition evaluates to false CopySourceIfUnmodifiedSince *time.Time // Specifies the algorithm to use when decrypting the source object (for example, - // AES256 ). If the source object for the copy is stored in Amazon S3 using SSE-C, - // you must provide the necessary encryption information in your request so that - // Amazon S3 can decrypt the object for copying. This functionality is not - // supported when the source object is in a directory bucket. + // AES256 ). + // + // If the source object for the copy is stored in Amazon S3 using SSE-C, you must + // provide the necessary encryption information in your request so that Amazon S3 + // can decrypt the object for copying. + // + // This functionality is not supported when the source object is in a directory + // bucket. CopySourceSSECustomerAlgorithm *string // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt // the source object. The encryption key provided in this header must be the same - // one that was used when the source object was created. If the source object for - // the copy is stored in Amazon S3 using SSE-C, you must provide the necessary - // encryption information in your request so that Amazon S3 can decrypt the object - // for copying. This functionality is not supported when the source object is in a - // directory bucket. + // one that was used when the source object was created. + // + // If the source object for the copy is stored in Amazon S3 using SSE-C, you must + // provide the necessary encryption information in your request so that Amazon S3 + // can decrypt the object for copying. + // + // This functionality is not supported when the source object is in a directory + // bucket. CopySourceSSECustomerKey *string // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure that the - // encryption key was transmitted without error. If the source object for the copy - // is stored in Amazon S3 using SSE-C, you must provide the necessary encryption - // information in your request so that Amazon S3 can decrypt the object for - // copying. This functionality is not supported when the source object is in a - // directory bucket. + // encryption key was transmitted without error. + // + // If the source object for the copy is stored in Amazon S3 using SSE-C, you must + // provide the necessary encryption information in your request so that Amazon S3 + // can decrypt the object for copying. + // + // This functionality is not supported when the source object is in a directory + // bucket. CopySourceSSECustomerKeyMD5 *string // The account ID of the expected destination bucket owner. If the account ID that @@ -348,22 +443,30 @@ type CopyObjectInput struct { Expires *time.Time // Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. + // // - This functionality is not supported for directory buckets. + // // - This functionality is not supported for Amazon S3 on Outposts. GrantFullControl *string // Allows grantee to read the object data and its metadata. + // // - This functionality is not supported for directory buckets. + // // - This functionality is not supported for Amazon S3 on Outposts. GrantRead *string // Allows grantee to read the object ACL. + // // - This functionality is not supported for directory buckets. + // // - This functionality is not supported for Amazon S3 on Outposts. GrantReadACP *string // Allows grantee to write the ACL for the applicable object. + // // - This functionality is not supported for directory buckets. + // // - This functionality is not supported for Amazon S3 on Outposts. GrantWriteACP *string @@ -373,26 +476,32 @@ type CopyObjectInput struct { // Specifies whether the metadata is copied from the source object or replaced // with metadata that's provided in the request. When copying an object, you can // preserve all metadata (the default) or specify new metadata. If this header - // isn’t specified, COPY is the default behavior. General purpose bucket - For - // general purpose buckets, when you grant permissions, you can use the - // s3:x-amz-metadata-directive condition key to enforce certain metadata behavior - // when objects are uploaded. For more information, see Amazon S3 condition key - // examples (https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html) - // in the Amazon S3 User Guide. x-amz-website-redirect-location is unique to each - // object and is not copied when using the x-amz-metadata-directive header. To - // copy the value, you must specify x-amz-website-redirect-location in the request - // header. + // isn’t specified, COPY is the default behavior. + // + // General purpose bucket - For general purpose buckets, when you grant + // permissions, you can use the s3:x-amz-metadata-directive condition key to + // enforce certain metadata behavior when objects are uploaded. For more + // information, see [Amazon S3 condition key examples]in the Amazon S3 User Guide. + // + // x-amz-website-redirect-location is unique to each object and is not copied when + // using the x-amz-metadata-directive header. To copy the value, you must specify + // x-amz-website-redirect-location in the request header. + // + // [Amazon S3 condition key examples]: https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html MetadataDirective types.MetadataDirective - // Specifies whether you want to apply a legal hold to the object copy. This - // functionality is not supported for directory buckets. + // Specifies whether you want to apply a legal hold to the object copy. + // + // This functionality is not supported for directory buckets. ObjectLockLegalHoldStatus types.ObjectLockLegalHoldStatus - // The Object Lock mode that you want to apply to the object copy. This - // functionality is not supported for directory buckets. + // The Object Lock mode that you want to apply to the object copy. + // + // This functionality is not supported for directory buckets. ObjectLockMode types.ObjectLockMode // The date and time when you want the Object Lock of the object copy to expire. + // // This functionality is not supported for directory buckets. ObjectLockRetainUntilDate *time.Time @@ -400,19 +509,23 @@ type CopyObjectInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer - // Specifies the algorithm to use when encrypting the object (for example, AES256 - // ). When you perform a CopyObject operation, if you want to use a different type - // of encryption setting for the target object, you can specify appropriate + // Specifies the algorithm to use when encrypting the object (for example, AES256 ). + // + // When you perform a CopyObject operation, if you want to use a different type of + // encryption setting for the target object, you can specify appropriate // encryption-related headers to encrypt the target object with an Amazon S3 // managed key, a KMS key, or a customer-provided key. If the encryption setting in // your request is different from the default encryption configuration of the // destination bucket, the encryption setting in your request takes precedence. + // // This functionality is not supported when the destination bucket is a directory // bucket. SSECustomerAlgorithm *string @@ -421,38 +534,49 @@ type CopyObjectInput struct { // encrypting data. This value is used to store the object and then it is // discarded. Amazon S3 does not store the encryption key. The key must be // appropriate for use with the algorithm specified in the - // x-amz-server-side-encryption-customer-algorithm header. This functionality is - // not supported when the destination bucket is a directory bucket. + // x-amz-server-side-encryption-customer-algorithm header. + // + // This functionality is not supported when the destination bucket is a directory + // bucket. SSECustomerKey *string // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure that the - // encryption key was transmitted without error. This functionality is not - // supported when the destination bucket is a directory bucket. + // encryption key was transmitted without error. + // + // This functionality is not supported when the destination bucket is a directory + // bucket. SSECustomerKeyMD5 *string // Specifies the Amazon Web Services KMS Encryption Context to use for object // encryption. The value of this header is a base64-encoded UTF-8 string holding // JSON with the encryption context key-value pairs. This value must be explicitly - // added to specify encryption context for CopyObject requests. This functionality - // is not supported when the destination bucket is a directory bucket. + // added to specify encryption context for CopyObject requests. + // + // This functionality is not supported when the destination bucket is a directory + // bucket. SSEKMSEncryptionContext *string // Specifies the KMS ID (Key ID, Key ARN, or Key Alias) to use for object // encryption. All GET and PUT requests for an object protected by KMS will fail if // they're not made via SSL or using SigV4. For information about configuring any // of the officially supported Amazon Web Services SDKs and Amazon Web Services - // CLI, see Specifying the Signature Version in Request Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version) - // in the Amazon S3 User Guide. This functionality is not supported when the - // destination bucket is a directory bucket. + // CLI, see [Specifying the Signature Version in Request Authentication]in the Amazon S3 User Guide. + // + // This functionality is not supported when the destination bucket is a directory + // bucket. + // + // [Specifying the Signature Version in Request Authentication]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version SSEKMSKeyId *string // The server-side encryption algorithm used when storing this object in Amazon S3 // (for example, AES256 , aws:kms , aws:kms:dsse ). Unrecognized or unsupported // values won’t write a destination object and will receive a 400 Bad Request - // response. Amazon S3 automatically encrypts all new objects that are copied to an - // S3 bucket. When copying an object, if you don't specify encryption information - // in your copy request, the encryption setting of the target object is set to the + // response. + // + // Amazon S3 automatically encrypts all new objects that are copied to an S3 + // bucket. When copying an object, if you don't specify encryption information in + // your copy request, the encryption setting of the target object is set to the // default encryption configuration of the destination bucket. By default, all // buckets have a base level of encryption configuration that uses server-side // encryption with Amazon S3 managed keys (SSE-S3). If the destination bucket has a @@ -460,42 +584,55 @@ type CopyObjectInput struct { // Management Service (KMS) keys (SSE-KMS), dual-layer server-side encryption with // Amazon Web Services KMS keys (DSSE-KMS), or server-side encryption with // customer-provided encryption keys (SSE-C), Amazon S3 uses the corresponding KMS - // key, or a customer-provided key to encrypt the target object copy. When you - // perform a CopyObject operation, if you want to use a different type of + // key, or a customer-provided key to encrypt the target object copy. + // + // When you perform a CopyObject operation, if you want to use a different type of // encryption setting for the target object, you can specify appropriate // encryption-related headers to encrypt the target object with an Amazon S3 // managed key, a KMS key, or a customer-provided key. If the encryption setting in // your request is different from the default encryption configuration of the // destination bucket, the encryption setting in your request takes precedence. - // With server-side encryption, Amazon S3 encrypts your data as it writes your data - // to disks in its data centers and decrypts the data when you access it. For more - // information about server-side encryption, see Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html) - // in the Amazon S3 User Guide. For directory buckets, only server-side encryption - // with Amazon S3 managed keys (SSE-S3) ( AES256 ) is supported. + // + // With server-side encryption, Amazon S3 encrypts your data as it writes your + // data to disks in its data centers and decrypts the data when you access it. For + // more information about server-side encryption, see [Using Server-Side Encryption]in the Amazon S3 User Guide. + // + // For directory buckets, only server-side encryption with Amazon S3 managed keys + // (SSE-S3) ( AES256 ) is supported. + // + // [Using Server-Side Encryption]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html ServerSideEncryption types.ServerSideEncryption // If the x-amz-storage-class header is not used, the copied object will be stored // in the STANDARD Storage Class by default. The STANDARD storage class provides // high durability and high availability. Depending on performance needs, you can // specify a different Storage Class. + // // - Directory buckets - For directory buckets, only the S3 Express One Zone // storage class is supported to store newly created objects. Unsupported storage // class values won't write a destination object and will respond with the HTTP // status code 400 Bad Request . + // // - Amazon S3 on Outposts - S3 on Outposts only uses the OUTPOSTS Storage Class. + // // You can use the CopyObject action to change the storage class of an object that // is already stored in Amazon S3 by using the x-amz-storage-class header. For - // more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) - // in the Amazon S3 User Guide. Before using an object as a source object for the - // copy operation, you must restore a copy of it if it meets any of the following - // conditions: + // more information, see [Storage Classes]in the Amazon S3 User Guide. + // + // Before using an object as a source object for the copy operation, you must + // restore a copy of it if it meets any of the following conditions: + // // - The storage class of the source object is GLACIER or DEEP_ARCHIVE . - // - The storage class of the source object is INTELLIGENT_TIERING and it's S3 - // Intelligent-Tiering access tier (https://docs.aws.amazon.com/AmazonS3/latest/userguide/intelligent-tiering-overview.html#intel-tiering-tier-definition) - // is Archive Access or Deep Archive Access . - // For more information, see RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html) - // and Copying Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html) - // in the Amazon S3 User Guide. + // + // - The storage class of the source object is INTELLIGENT_TIERING and it's [S3 Intelligent-Tiering access tier]is + // Archive Access or Deep Archive Access . + // + // For more information, see [RestoreObject] and [Copying Objects] in the Amazon S3 User Guide. + // + // [Storage Classes]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html + // [RestoreObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html + // [Copying Objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html + // [S3 Intelligent-Tiering access tier]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/intelligent-tiering-overview.html#intel-tiering-tier-definition StorageClass types.StorageClass // The tag-set for the object copy in the destination bucket. This value must be @@ -503,60 +640,82 @@ type CopyObjectInput struct { // the x-amz-tagging-directive . If you choose COPY for the x-amz-tagging-directive // , you don't need to set the x-amz-tagging header, because the tag-set will be // copied from the source object directly. The tag-set must be encoded as URL Query - // parameters. The default value is the empty value. Directory buckets - For - // directory buckets in a CopyObject operation, only the empty tag-set is - // supported. Any requests that attempt to write non-empty tags into directory - // buckets will receive a 501 Not Implemented status code. When the destination - // bucket is a directory bucket, you will receive a 501 Not Implemented response - // in any of the following situations: + // parameters. + // + // The default value is the empty value. + // + // Directory buckets - For directory buckets in a CopyObject operation, only the + // empty tag-set is supported. Any requests that attempt to write non-empty tags + // into directory buckets will receive a 501 Not Implemented status code. When the + // destination bucket is a directory bucket, you will receive a 501 Not Implemented + // response in any of the following situations: + // // - When you attempt to COPY the tag-set from an S3 source object that has // non-empty tags. + // // - When you attempt to REPLACE the tag-set of a source object and set a // non-empty value to x-amz-tagging . + // // - When you don't set the x-amz-tagging-directive header and the source object // has non-empty tags. This is because the default value of // x-amz-tagging-directive is COPY . + // // Because only the empty tag-set is supported for directory buckets in a // CopyObject operation, the following situations are allowed: + // // - When you attempt to COPY the tag-set from a directory bucket source object // that has no tags to a general purpose bucket. It copies an empty tag-set to the // destination object. + // // - When you attempt to REPLACE the tag-set of a directory bucket source object // and set the x-amz-tagging value of the directory bucket destination object to // empty. + // // - When you attempt to REPLACE the tag-set of a general purpose bucket source // object that has non-empty tags and set the x-amz-tagging value of the // directory bucket destination object to empty. + // // - When you attempt to REPLACE the tag-set of a directory bucket source object // and don't set the x-amz-tagging value of the directory bucket destination // object. This is because the default value of x-amz-tagging is the empty value. Tagging *string // Specifies whether the object tag-set is copied from the source object or - // replaced with the tag-set that's provided in the request. The default value is - // COPY . Directory buckets - For directory buckets in a CopyObject operation, - // only the empty tag-set is supported. Any requests that attempt to write - // non-empty tags into directory buckets will receive a 501 Not Implemented status - // code. When the destination bucket is a directory bucket, you will receive a 501 - // Not Implemented response in any of the following situations: + // replaced with the tag-set that's provided in the request. + // + // The default value is COPY . + // + // Directory buckets - For directory buckets in a CopyObject operation, only the + // empty tag-set is supported. Any requests that attempt to write non-empty tags + // into directory buckets will receive a 501 Not Implemented status code. When the + // destination bucket is a directory bucket, you will receive a 501 Not Implemented + // response in any of the following situations: + // // - When you attempt to COPY the tag-set from an S3 source object that has // non-empty tags. + // // - When you attempt to REPLACE the tag-set of a source object and set a // non-empty value to x-amz-tagging . + // // - When you don't set the x-amz-tagging-directive header and the source object // has non-empty tags. This is because the default value of // x-amz-tagging-directive is COPY . + // // Because only the empty tag-set is supported for directory buckets in a // CopyObject operation, the following situations are allowed: + // // - When you attempt to COPY the tag-set from a directory bucket source object // that has no tags to a general purpose bucket. It copies an empty tag-set to the // destination object. + // // - When you attempt to REPLACE the tag-set of a directory bucket source object // and set the x-amz-tagging value of the directory bucket destination object to // empty. + // // - When you attempt to REPLACE the tag-set of a general purpose bucket source // object that has non-empty tags and set the x-amz-tagging value of the // directory bucket destination object to empty. + // // - When you attempt to REPLACE the tag-set of a directory bucket source object // and don't set the x-amz-tagging value of the directory bucket destination // object. This is because the default value of x-amz-tagging is the empty value. @@ -567,8 +726,9 @@ type CopyObjectInput struct { // Amazon S3 stores the value of this header in the object metadata. This value is // unique to each object and is not copied when using the x-amz-metadata-directive // header. Instead, you may opt to provide this header in combination with the - // x-amz-metadata-directive header. This functionality is not supported for - // directory buckets. + // x-amz-metadata-directive header. + // + // This functionality is not supported for directory buckets. WebsiteRedirectLocation *string noSmithyDocumentSerde @@ -582,56 +742,68 @@ func (in *CopyObjectInput) bindEndpointParams(p *EndpointParameters) { type CopyObjectOutput struct { // Indicates whether the copied object uses an S3 Bucket Key for server-side - // encryption with Key Management Service (KMS) keys (SSE-KMS). This functionality - // is not supported for directory buckets. + // encryption with Key Management Service (KMS) keys (SSE-KMS). + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool // Container for all response elements. CopyObjectResult *types.CopyObjectResult - // Version ID of the source object that was copied. This functionality is not - // supported when the source object is in a directory bucket. + // Version ID of the source object that was copied. + // + // This functionality is not supported when the source object is in a directory + // bucket. CopySourceVersionId *string - // If the object expiration is configured, the response includes this header. This - // functionality is not supported for directory buckets. + // If the object expiration is configured, the response includes this header. + // + // This functionality is not supported for directory buckets. Expiration *string // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // If server-side encryption with a customer-provided encryption key was // requested, the response will include this header to confirm the encryption - // algorithm that's used. This functionality is not supported for directory - // buckets. + // algorithm that's used. + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string // If server-side encryption with a customer-provided encryption key was // requested, the response will include this header to provide the round-trip - // message integrity verification of the customer-provided encryption key. This - // functionality is not supported for directory buckets. + // message integrity verification of the customer-provided encryption key. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string // If present, indicates the Amazon Web Services KMS Encryption Context to use for // object encryption. The value of this header is a base64-encoded UTF-8 string - // holding JSON with the encryption context key-value pairs. This functionality is - // not supported for directory buckets. + // holding JSON with the encryption context key-value pairs. + // + // This functionality is not supported for directory buckets. SSEKMSEncryptionContext *string // If present, indicates the ID of the Key Management Service (KMS) symmetric - // encryption customer managed key that was used for the object. This functionality - // is not supported for directory buckets. + // encryption customer managed key that was used for the object. + // + // This functionality is not supported for directory buckets. SSEKMSKeyId *string // The server-side encryption algorithm used when you store this object in Amazon - // S3 (for example, AES256 , aws:kms , aws:kms:dsse ). For directory buckets, only - // server-side encryption with Amazon S3 managed keys (SSE-S3) ( AES256 ) is - // supported. + // S3 (for example, AES256 , aws:kms , aws:kms:dsse ). + // + // For directory buckets, only server-side encryption with Amazon S3 managed keys + // (SSE-S3) ( AES256 ) is supported. ServerSideEncryption types.ServerSideEncryption - // Version ID of the newly created copy. This functionality is not supported for - // directory buckets. + // Version ID of the newly created copy. + // + // This functionality is not supported for directory buckets. VersionId *string // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateBucket.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateBucket.go index b39244bc..34174b23 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateBucket.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateBucket.go @@ -15,89 +15,116 @@ import ( ) // This action creates an Amazon S3 bucket. To create an Amazon S3 on Outposts -// bucket, see CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html) -// . Creates a new S3 bucket. To create a bucket, you must set up Amazon S3 and -// have a valid Amazon Web Services Access Key ID to authenticate requests. -// Anonymous requests are never allowed to create buckets. By creating the bucket, -// you become the bucket owner. There are two types of buckets: general purpose -// buckets and directory buckets. For more information about these bucket types, -// see Creating, configuring, and working with Amazon S3 buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html) -// in the Amazon S3 User Guide. +// bucket, see [CreateBucket]CreateBucket . +// +// Creates a new S3 bucket. To create a bucket, you must set up Amazon S3 and have +// a valid Amazon Web Services Access Key ID to authenticate requests. Anonymous +// requests are never allowed to create buckets. By creating the bucket, you become +// the bucket owner. +// +// There are two types of buckets: general purpose buckets and directory buckets. +// For more information about these bucket types, see [Creating, configuring, and working with Amazon S3 buckets]in the Amazon S3 User Guide. +// // - General purpose buckets - If you send your CreateBucket request to the // s3.amazonaws.com global endpoint, the request goes to the us-east-1 Region. So // the signature calculations in Signature Version 4 must use us-east-1 as the // Region, even if the location constraint in the request specifies another Region // where the bucket is to be created. If you create a bucket in a Region other than // US East (N. Virginia), your application must be able to handle 307 redirect. For -// more information, see Virtual hosting of buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html) -// in the Amazon S3 User Guide. +// more information, see [Virtual hosting of buckets]in the Amazon S3 User Guide. +// // - Directory buckets - For directory buckets, you must make requests for this // API operation to the Regional endpoint. These endpoints support path-style // requests in the format // https://s3express-control.region_code.amazonaws.com/bucket-name . -// Virtual-hosted-style requests aren't supported. For more information, see -// Regional and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. +// Virtual-hosted-style requests aren't supported. For more information, see [Regional and Zonal endpoints]in +// the Amazon S3 User Guide. // // Permissions +// // - General purpose bucket permissions - In addition to the s3:CreateBucket // permission, the following permissions are required in a policy when your // CreateBucket request includes specific headers: +// // - Access control lists (ACLs) - In your CreateBucket request, if you specify // an access control list (ACL) and set it to public-read , public-read-write , // authenticated-read , or if you explicitly specify any other custom ACLs, both // s3:CreateBucket and s3:PutBucketAcl permissions are required. In your // CreateBucket request, if you set the ACL to private , or if you don't specify // any ACLs, only the s3:CreateBucket permission is required. +// // - Object Lock - In your CreateBucket request, if you set // x-amz-bucket-object-lock-enabled to true, the // s3:PutBucketObjectLockConfiguration and s3:PutBucketVersioning permissions are // required. +// // - S3 Object Ownership - If your CreateBucket request includes the // x-amz-object-ownership header, then the s3:PutBucketOwnershipControls -// permission is required. To set an ACL on a bucket as part of a CreateBucket -// request, you must explicitly set S3 Object Ownership for the bucket to a -// different value than the default, BucketOwnerEnforced . Additionally, if your -// desired bucket ACL grants public access, you must first create the bucket -// (without the bucket ACL) and then explicitly disable Block Public Access on the -// bucket before using PutBucketAcl to set the ACL. If you try to create a bucket -// with a public ACL, the request will fail. For the majority of modern use cases -// in S3, we recommend that you keep all Block Public Access settings enabled and -// keep ACLs disabled. If you would like to share data with users outside of your -// account, you can use bucket policies as needed. For more information, see -// Controlling ownership of objects and disabling ACLs for your bucket (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) -// and Blocking public access to your Amazon S3 storage (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html) -// in the Amazon S3 User Guide. -// - S3 Block Public Access - If your specific use case requires granting public -// access to your S3 resources, you can disable Block Public Access. Specifically, -// you can create a new bucket with Block Public Access enabled, then separately -// call the DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) -// API. To use this operation, you must have the s3:PutBucketPublicAccessBlock -// permission. For more information about S3 Block Public Access, see Blocking -// public access to your Amazon S3 storage (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html) -// in the Amazon S3 User Guide. -// - Directory bucket permissions - You must have the s3express:CreateBucket -// permission in an IAM identity-based policy instead of a bucket policy. -// Cross-account access to this API operation isn't supported. This operation can -// only be performed by the Amazon Web Services account that owns the resource. For -// more information about directory bucket policies and permissions, see Amazon -// Web Services Identity and Access Management (IAM) for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) -// in the Amazon S3 User Guide. The permissions for ACLs, Object Lock, S3 Object -// Ownership, and S3 Block Public Access are not supported for directory buckets. -// For directory buckets, all Block Public Access settings are enabled at the -// bucket level and S3 Object Ownership is set to Bucket owner enforced (ACLs -// disabled). These settings can't be modified. For more information about -// permissions for creating and working with directory buckets, see Directory -// buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html) -// in the Amazon S3 User Guide. For more information about supported S3 features -// for directory buckets, see Features of S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone.html#s3-express-features) -// in the Amazon S3 User Guide. +// permission is required. +// +// To set an ACL on a bucket as part of a CreateBucket request, you must explicitly +// +// set S3 Object Ownership for the bucket to a different value than the default, +// BucketOwnerEnforced . Additionally, if your desired bucket ACL grants public +// access, you must first create the bucket (without the bucket ACL) and then +// explicitly disable Block Public Access on the bucket before using PutBucketAcl +// to set the ACL. If you try to create a bucket with a public ACL, the request +// will fail. +// +// For the majority of modern use cases in S3, we recommend that you keep all +// +// Block Public Access settings enabled and keep ACLs disabled. If you would like +// to share data with users outside of your account, you can use bucket policies as +// needed. For more information, see [Controlling ownership of objects and disabling ACLs for your bucket]and [Blocking public access to your Amazon S3 storage]in the Amazon S3 User Guide. +// +// - S3 Block Public Access - If your specific use case requires granting public +// access to your S3 resources, you can disable Block Public Access. Specifically, +// you can create a new bucket with Block Public Access enabled, then separately +// call the [DeletePublicAccessBlock]DeletePublicAccessBlock API. To use this operation, you must have the +// s3:PutBucketPublicAccessBlock permission. For more information about S3 Block +// Public Access, see [Blocking public access to your Amazon S3 storage]in the Amazon S3 User Guide. +// +// - Directory bucket permissions - You must have the s3express:CreateBucket +// permission in an IAM identity-based policy instead of a bucket policy. +// Cross-account access to this API operation isn't supported. This operation can +// only be performed by the Amazon Web Services account that owns the resource. For +// more information about directory bucket policies and permissions, see [Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone]in the +// Amazon S3 User Guide. +// +// The permissions for ACLs, Object Lock, S3 Object Ownership, and S3 Block Public +// +// Access are not supported for directory buckets. For directory buckets, all Block +// Public Access settings are enabled at the bucket level and S3 Object Ownership +// is set to Bucket owner enforced (ACLs disabled). These settings can't be +// modified. +// +// For more information about permissions for creating and working with directory +// +// buckets, see [Directory buckets]in the Amazon S3 User Guide. For more information about +// supported S3 features for directory buckets, see [Features of S3 Express One Zone]in the Amazon S3 User Guide. +// +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// s3express-control.region.amazonaws.com . +// +// The following operations are related to CreateBucket : +// +// [PutObject] +// +// [DeleteBucket] +// +// [Creating, configuring, and working with Amazon S3 buckets]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [DeleteBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html +// [PutObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html +// [CreateBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html +// [Virtual hosting of buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html // -// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is -// s3express-control.region.amazonaws.com . The following operations are related to -// CreateBucket : -// - PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) -// - DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) +// [DeletePublicAccessBlock]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html +// [Directory buckets]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html +// [Features of S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone.html#s3-express-features +// [Controlling ownership of objects and disabling ACLs for your bucket]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html +// [Blocking public access to your Amazon S3 storage]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html +// [Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html func (c *Client) CreateBucket(ctx context.Context, params *CreateBucketInput, optFns ...func(*Options)) (*CreateBucketOutput, error) { if params == nil { params = &CreateBucketInput{} @@ -115,71 +142,93 @@ func (c *Client) CreateBucket(ctx context.Context, params *CreateBucketInput, op type CreateBucketInput struct { - // The name of the bucket to create. General purpose buckets - For information - // about bucket naming restrictions, see Bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html) - // in the Amazon S3 User Guide. Directory buckets - When you use this operation - // with a directory bucket, you must use path-style requests in the format + // The name of the bucket to create. + // + // General purpose buckets - For information about bucket naming restrictions, see [Bucket naming rules] + // in the Amazon S3 User Guide. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use path-style requests in the format // https://s3express-control.region_code.amazonaws.com/bucket-name . // Virtual-hosted-style requests aren't supported. Directory bucket names must be // unique in the chosen Availability Zone. Bucket names must also follow the format // bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 - // ). For information about bucket naming restrictions, see Directory bucket - // naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide + // ). For information about bucket naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User + // Guide + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [Bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html // // This member is required. Bucket *string - // The canned ACL to apply to the bucket. This functionality is not supported for - // directory buckets. + // The canned ACL to apply to the bucket. + // + // This functionality is not supported for directory buckets. ACL types.BucketCannedACL // The configuration information for the bucket. CreateBucketConfiguration *types.CreateBucketConfiguration // Allows grantee the read, write, read ACP, and write ACP permissions on the - // bucket. This functionality is not supported for directory buckets. + // bucket. + // + // This functionality is not supported for directory buckets. GrantFullControl *string - // Allows grantee to list the objects in the bucket. This functionality is not - // supported for directory buckets. + // Allows grantee to list the objects in the bucket. + // + // This functionality is not supported for directory buckets. GrantRead *string - // Allows grantee to read the bucket ACL. This functionality is not supported for - // directory buckets. + // Allows grantee to read the bucket ACL. + // + // This functionality is not supported for directory buckets. GrantReadACP *string - // Allows grantee to create new objects in the bucket. For the bucket and object - // owners of existing objects, also allows deletions and overwrites of those - // objects. This functionality is not supported for directory buckets. + // Allows grantee to create new objects in the bucket. + // + // For the bucket and object owners of existing objects, also allows deletions and + // overwrites of those objects. + // + // This functionality is not supported for directory buckets. GrantWrite *string - // Allows grantee to write the ACL for the applicable bucket. This functionality - // is not supported for directory buckets. + // Allows grantee to write the ACL for the applicable bucket. + // + // This functionality is not supported for directory buckets. GrantWriteACP *string // Specifies whether you want S3 Object Lock to be enabled for the new bucket. + // // This functionality is not supported for directory buckets. ObjectLockEnabledForBucket *bool // The container element for object ownership for a bucket's ownership controls. + // // BucketOwnerPreferred - Objects uploaded to the bucket change ownership to the // bucket owner if the objects are uploaded with the bucket-owner-full-control - // canned ACL. ObjectWriter - The uploading account will own the object if the - // object is uploaded with the bucket-owner-full-control canned ACL. + // canned ACL. + // + // ObjectWriter - The uploading account will own the object if the object is + // uploaded with the bucket-owner-full-control canned ACL. + // // BucketOwnerEnforced - Access control lists (ACLs) are disabled and no longer // affect permissions. The bucket owner automatically owns and has full control // over every object in the bucket. The bucket only accepts PUT requests that don't // specify an ACL or specify bucket owner full control ACLs (such as the predefined // bucket-owner-full-control canned ACL or a custom ACL in XML format that grants - // the same permissions). By default, ObjectOwnership is set to BucketOwnerEnforced - // and ACLs are disabled. We recommend keeping ACLs disabled, except in uncommon - // use cases where you must control access for each object individually. For more - // information about S3 Object Ownership, see Controlling ownership of objects and - // disabling ACLs for your bucket (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. Directory buckets use the bucket owner enforced setting for S3 Object - // Ownership. + // the same permissions). + // + // By default, ObjectOwnership is set to BucketOwnerEnforced and ACLs are + // disabled. We recommend keeping ACLs disabled, except in uncommon use cases where + // you must control access for each object individually. For more information about + // S3 Object Ownership, see [Controlling ownership of objects and disabling ACLs for your bucket]in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. Directory buckets + // use the bucket owner enforced setting for S3 Object Ownership. + // + // [Controlling ownership of objects and disabling ACLs for your bucket]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html ObjectOwnership types.ObjectOwnership noSmithyDocumentSerde diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateMultipartUpload.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateMultipartUpload.go index c083c32d..9693c4cb 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateMultipartUpload.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateMultipartUpload.go @@ -16,62 +16,64 @@ import ( // This action initiates a multipart upload and returns an upload ID. This upload // ID is used to associate all of the parts in the specific multipart upload. You -// specify this upload ID in each of your subsequent upload part requests (see -// UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) -// ). You also include this upload ID in the final request to either complete or -// abort the multipart upload request. For more information about multipart -// uploads, see Multipart Upload Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html) -// in the Amazon S3 User Guide. After you initiate a multipart upload and upload -// one or more parts, to stop being charged for storing the uploaded parts, you -// must either complete or abort the multipart upload. Amazon S3 frees up the space -// used to store the parts and stops charging you for storing them only after you -// either complete or abort a multipart upload. If you have configured a lifecycle -// rule to abort incomplete multipart uploads, the created multipart upload must be -// completed within the number of days specified in the bucket lifecycle -// configuration. Otherwise, the incomplete multipart upload becomes eligible for -// an abort action and Amazon S3 aborts the multipart upload. For more information, -// see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) -// . +// specify this upload ID in each of your subsequent upload part requests (see [UploadPart]). +// You also include this upload ID in the final request to either complete or abort +// the multipart upload request. For more information about multipart uploads, see [Multipart Upload Overview] +// in the Amazon S3 User Guide. +// +// After you initiate a multipart upload and upload one or more parts, to stop +// being charged for storing the uploaded parts, you must either complete or abort +// the multipart upload. Amazon S3 frees up the space used to store the parts and +// stops charging you for storing them only after you either complete or abort a +// multipart upload. +// +// If you have configured a lifecycle rule to abort incomplete multipart uploads, +// the created multipart upload must be completed within the number of days +// specified in the bucket lifecycle configuration. Otherwise, the incomplete +// multipart upload becomes eligible for an abort action and Amazon S3 aborts the +// multipart upload. For more information, see [Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration]. +// // - Directory buckets - S3 Lifecycle is not supported by directory buckets. +// // - Directory buckets - For directory buckets, you must make requests for this // API operation to the Zonal endpoint. These endpoints support // virtual-hosted-style requests in the format // https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . -// Path-style requests are not supported. For more information, see Regional and -// Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. +// Path-style requests are not supported. For more information, see [Regional and Zonal endpoints]in the +// Amazon S3 User Guide. // // Request signing For request signing, multipart upload is just a series of // regular requests. You initiate a multipart upload, send one or more requests to // upload parts, and then complete the multipart upload process. You sign each // request individually. There is nothing special about signing multipart upload -// requests. For more information about signing, see Authenticating Requests -// (Amazon Web Services Signature Version 4) (https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) -// in the Amazon S3 User Guide. Permissions +// requests. For more information about signing, see [Authenticating Requests (Amazon Web Services Signature Version 4)]in the Amazon S3 User Guide. +// +// Permissions // - General purpose bucket permissions - For information about the permissions -// required to use the multipart upload API, see Multipart upload and permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) -// in the Amazon S3 User Guide. To perform a multipart upload with encryption by -// using an Amazon Web Services KMS key, the requester must have permission to the -// kms:Decrypt and kms:GenerateDataKey* actions on the key. These permissions are -// required because Amazon S3 must decrypt and read data from the encrypted file -// parts before it completes the multipart upload. For more information, see -// Multipart upload API and permissions (https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) -// and Protecting data using server-side encryption with Amazon Web Services KMS (https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) -// in the Amazon S3 User Guide. -// - Directory bucket permissions - To grant access to this API operation on a -// directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// API operation for session-based authorization. Specifically, you grant the -// s3express:CreateSession permission to the directory bucket in a bucket policy -// or an IAM identity-based policy. Then, you make the CreateSession API call on -// the bucket to obtain a session token. With the session token in your request -// header, you can make API requests to this operation. After the session token -// expires, you make another CreateSession API call to generate a new session -// token for use. Amazon Web Services CLI or SDKs create session and refresh the -// session token automatically to avoid service interruptions when a session -// expires. For more information about authorization, see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// . +// required to use the multipart upload API, see [Multipart upload and permissions]in the Amazon S3 User Guide. +// +// To perform a multipart upload with encryption by using an Amazon Web Services +// +// KMS key, the requester must have permission to the kms:Decrypt and +// kms:GenerateDataKey* actions on the key. These permissions are required +// because Amazon S3 must decrypt and read data from the encrypted file parts +// before it completes the multipart upload. For more information, see [Multipart upload API and permissions]and [Protecting data using server-side encryption with Amazon Web Services KMS]in +// the Amazon S3 User Guide. +// +// - Directory bucket permissions - To grant access to this API operation on a +// directory bucket, we recommend that you use the [CreateSession]CreateSession API operation +// for session-based authorization. Specifically, you grant the +// s3express:CreateSession permission to the directory bucket in a bucket policy +// or an IAM identity-based policy. Then, you make the CreateSession API call on +// the bucket to obtain a session token. With the session token in your request +// header, you can make API requests to this operation. After the session token +// expires, you make another CreateSession API call to generate a new session +// token for use. Amazon Web Services CLI or SDKs create session and refresh the +// session token automatically to avoid service interruptions when a session +// expires. For more information about authorization, see [CreateSession]CreateSession . // // Encryption +// // - General purpose buckets - Server-side encryption is for data encryption at // rest. Amazon S3 encrypts your data as it writes it to disks in its data centers // and decrypts it when you access it. Amazon S3 automatically encrypts all new @@ -91,61 +93,96 @@ import ( // in your request is different from the default encryption configuration of the // destination bucket, the encryption setting in your request takes precedence. If // you choose to provide your own encryption key, the request headers you provide -// in UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) -// and UploadPartCopy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) -// requests must match the headers you used in the CreateMultipartUpload request. +// in [UploadPart]and [UploadPartCopy]requests must match the headers you used in the CreateMultipartUpload +// request. +// // - Use KMS keys (SSE-KMS) that include the Amazon Web Services managed key ( // aws/s3 ) and KMS customer managed keys stored in Key Management Service (KMS) // – If you want Amazon Web Services to manage the keys used to encrypt data, // specify the following headers in the request. +// // - x-amz-server-side-encryption +// // - x-amz-server-side-encryption-aws-kms-key-id +// // - x-amz-server-side-encryption-context +// // - If you specify x-amz-server-side-encryption:aws:kms , but don't provide // x-amz-server-side-encryption-aws-kms-key-id , Amazon S3 uses the Amazon Web // Services managed key ( aws/s3 key) in KMS to protect the data. +// // - To perform a multipart upload with encryption by using an Amazon Web // Services KMS key, the requester must have permission to the kms:Decrypt and // kms:GenerateDataKey* actions on the key. These permissions are required // because Amazon S3 must decrypt and read data from the encrypted file parts -// before it completes the multipart upload. For more information, see Multipart -// upload API and permissions (https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) -// and Protecting data using server-side encryption with Amazon Web Services KMS (https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) -// in the Amazon S3 User Guide. +// before it completes the multipart upload. For more information, see [Multipart upload API and permissions]and [Protecting data using server-side encryption with Amazon Web Services KMS]in +// the Amazon S3 User Guide. +// // - If your Identity and Access Management (IAM) user or role is in the same // Amazon Web Services account as the KMS key, then you must have these permissions // on the key policy. If your IAM user or role is in a different account from the // key, then you must have the permissions on both the key policy and your IAM user // or role. +// // - All GET and PUT requests for an object protected by KMS fail if you don't // make them by using Secure Sockets Layer (SSL), Transport Layer Security (TLS), // or Signature Version 4. For information about configuring any of the officially -// supported Amazon Web Services SDKs and Amazon Web Services CLI, see -// Specifying the Signature Version in Request Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version) -// in the Amazon S3 User Guide. For more information about server-side -// encryption with KMS keys (SSE-KMS), see Protecting Data Using Server-Side -// Encryption with KMS keys (https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) -// in the Amazon S3 User Guide. -// - Use customer-provided encryption keys (SSE-C) – If you want to manage your -// own encryption keys, provide all the following headers in the request. -// - x-amz-server-side-encryption-customer-algorithm -// - x-amz-server-side-encryption-customer-key -// - x-amz-server-side-encryption-customer-key-MD5 For more information about -// server-side encryption with customer-provided encryption keys (SSE-C), see -// Protecting data using server-side encryption with customer-provided encryption -// keys (SSE-C) (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html) -// in the Amazon S3 User Guide. -// - Directory buckets -For directory buckets, only server-side encryption with -// Amazon S3 managed keys (SSE-S3) ( AES256 ) is supported. -// -// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is -// Bucket_name.s3express-az_id.region.amazonaws.com . The following operations are -// related to CreateMultipartUpload : -// - UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) -// - CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) -// - AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) -// - ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) -// - ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) +// supported Amazon Web Services SDKs and Amazon Web Services CLI, see [Specifying the Signature Version in Request Authentication]in the +// Amazon S3 User Guide. +// +// For more information about server-side encryption with KMS keys (SSE-KMS), see [Protecting Data Using Server-Side Encryption with KMS keys] +// +// in the Amazon S3 User Guide. +// +// - Use customer-provided encryption keys (SSE-C) – If you want to manage your +// own encryption keys, provide all the following headers in the request. +// +// - x-amz-server-side-encryption-customer-algorithm +// +// - x-amz-server-side-encryption-customer-key +// +// - x-amz-server-side-encryption-customer-key-MD5 +// +// For more information about server-side encryption with customer-provided +// +// encryption keys (SSE-C), see [Protecting data using server-side encryption with customer-provided encryption keys (SSE-C)]in the Amazon S3 User Guide. +// +// - Directory buckets -For directory buckets, only server-side encryption with +// Amazon S3 managed keys (SSE-S3) ( AES256 ) is supported. +// +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// Bucket_name.s3express-az_id.region.amazonaws.com . +// +// The following operations are related to CreateMultipartUpload : +// +// [UploadPart] +// +// [CompleteMultipartUpload] +// +// [AbortMultipartUpload] +// +// [ListParts] +// +// [ListMultipartUploads] +// +// [ListParts]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html +// [UploadPart]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html +// [Protecting Data Using Server-Side Encryption with KMS keys]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [Specifying the Signature Version in Request Authentication]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version +// [Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config +// [Multipart upload and permissions]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html +// [Multipart upload API and permissions]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions +// [UploadPartCopy]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html +// [CompleteMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html +// [Authenticating Requests (Amazon Web Services Signature Version 4)]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html +// [AbortMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html +// [Multipart Upload Overview]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html +// [Protecting data using server-side encryption with Amazon Web Services KMS]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html +// [ListMultipartUploads]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html +// +// [CreateSession]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html +// [Protecting data using server-side encryption with customer-provided encryption keys (SSE-C)]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html func (c *Client) CreateMultipartUpload(ctx context.Context, params *CreateMultipartUploadInput, optFns ...func(*Options)) (*CreateMultipartUploadOutput, error) { if params == nil { params = &CreateMultipartUploadInput{} @@ -164,30 +201,39 @@ func (c *Client) CreateMultipartUpload(ctx context.Context, params *CreateMultip type CreateMultipartUploadInput struct { // The name of the bucket where the multipart upload is initiated and where the - // object is uploaded. Directory buckets - When you use this operation with a - // directory bucket, you must use virtual-hosted-style requests in the format + // object is uploaded. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use virtual-hosted-style requests in the format // Bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests are not // supported. Directory bucket names must be unique in the chosen Availability // Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for // example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 ). For information about bucket - // naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. Access points and Object Lambda access points are - // not supported by directory buckets. S3 on Outposts - When you use this action - // with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts - // hostname. The S3 on Outposts hostname takes the form + // naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -199,32 +245,41 @@ type CreateMultipartUploadInput struct { // The canned ACL to apply to the object. Amazon S3 supports a set of predefined // ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and - // permissions. For more information, see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL) - // in the Amazon S3 User Guide. By default, all objects are private. Only the owner - // has full access control. When uploading an object, you can grant access - // permissions to individual Amazon Web Services accounts or to predefined groups - // defined by Amazon S3. These permissions are then added to the access control - // list (ACL) on the new object. For more information, see Using ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html) - // . One way to grant the permissions using the request headers is to specify a - // canned ACL with the x-amz-acl request header. + // permissions. For more information, see [Canned ACL]in the Amazon S3 User Guide. + // + // By default, all objects are private. Only the owner has full access control. + // When uploading an object, you can grant access permissions to individual Amazon + // Web Services accounts or to predefined groups defined by Amazon S3. These + // permissions are then added to the access control list (ACL) on the new object. + // For more information, see [Using ACLs]. One way to grant the permissions using the request + // headers is to specify a canned ACL with the x-amz-acl request header. + // // - This functionality is not supported for directory buckets. + // // - This functionality is not supported for Amazon S3 on Outposts. + // + // [Canned ACL]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL + // [Using ACLs]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html ACL types.ObjectCannedACL // Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption // with server-side encryption using Key Management Service (KMS) keys (SSE-KMS). // Setting this header to true causes Amazon S3 to use an S3 Bucket Key for object - // encryption with SSE-KMS. Specifying this header with an object action doesn’t - // affect bucket-level settings for S3 Bucket Key. This functionality is not - // supported for directory buckets. + // encryption with SSE-KMS. + // + // Specifying this header with an object action doesn’t affect bucket-level + // settings for S3 Bucket Key. + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool // Specifies caching behavior along the request/reply chain. CacheControl *string // Indicates the algorithm that you want Amazon S3 to use to create the checksum - // for the object. For more information, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. + // for the object. For more information, see [Checking object integrity]in the Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // Specifies presentational information for the object. @@ -232,8 +287,10 @@ type CreateMultipartUploadInput struct { // Specifies what content encodings have been applied to the object and thus what // decoding mechanisms must be applied to obtain the media-type referenced by the - // Content-Type header field. For directory buckets, only the aws-chunked value is - // supported in this header field. + // Content-Type header field. + // + // For directory buckets, only the aws-chunked value is supported in this header + // field. ContentEncoding *string // The language that the content is in. @@ -251,207 +308,322 @@ type CreateMultipartUploadInput struct { Expires *time.Time // Specify access permissions explicitly to give the grantee READ, READ_ACP, and - // WRITE_ACP permissions on the object. By default, all objects are private. Only - // the owner has full access control. When uploading an object, you can use this - // header to explicitly grant access permissions to specific Amazon Web Services - // accounts or groups. This header maps to specific permissions that Amazon S3 - // supports in an ACL. For more information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) - // in the Amazon S3 User Guide. You specify each grantee as a type=value pair, - // where the type is one of the following: + // WRITE_ACP permissions on the object. + // + // By default, all objects are private. Only the owner has full access control. + // When uploading an object, you can use this header to explicitly grant access + // permissions to specific Amazon Web Services accounts or groups. This header maps + // to specific permissions that Amazon S3 supports in an ACL. For more information, + // see [Access Control List (ACL) Overview]in the Amazon S3 User Guide. + // + // You specify each grantee as a type=value pair, where the type is one of the + // following: + // // - id – if the value specified is the canonical user ID of an Amazon Web // Services account + // // - uri – if you are granting permissions to a predefined group + // // - emailAddress – if the value specified is the email address of an Amazon Web - // Services account Using email addresses to specify a grantee is only supported in - // the following Amazon Web Services Regions: + // Services account + // + // Using email addresses to specify a grantee is only supported in the following + // Amazon Web Services Regions: + // // - US East (N. Virginia) + // // - US West (N. California) + // // - US West (Oregon) + // // - Asia Pacific (Singapore) + // // - Asia Pacific (Sydney) + // // - Asia Pacific (Tokyo) + // // - Europe (Ireland) - // - South America (São Paulo) For a list of all the Amazon S3 supported Regions - // and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) - // in the Amazon Web Services General Reference. + // + // - South America (São Paulo) + // + // For a list of all the Amazon S3 supported Regions and endpoints, see [Regions and Endpoints]in the + // Amazon Web Services General Reference. + // // For example, the following x-amz-grant-read header grants the Amazon Web // Services accounts identified by account IDs permissions to read object data and - // its metadata: x-amz-grant-read: id="11112222333", id="444455556666" + // its metadata: + // + // x-amz-grant-read: id="11112222333", id="444455556666" + // // - This functionality is not supported for directory buckets. + // // - This functionality is not supported for Amazon S3 on Outposts. + // + // [Regions and Endpoints]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region + // [Access Control List (ACL) Overview]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html GrantFullControl *string // Specify access permissions explicitly to allow grantee to read the object data - // and its metadata. By default, all objects are private. Only the owner has full - // access control. When uploading an object, you can use this header to explicitly - // grant access permissions to specific Amazon Web Services accounts or groups. - // This header maps to specific permissions that Amazon S3 supports in an ACL. For - // more information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) - // in the Amazon S3 User Guide. You specify each grantee as a type=value pair, - // where the type is one of the following: + // and its metadata. + // + // By default, all objects are private. Only the owner has full access control. + // When uploading an object, you can use this header to explicitly grant access + // permissions to specific Amazon Web Services accounts or groups. This header maps + // to specific permissions that Amazon S3 supports in an ACL. For more information, + // see [Access Control List (ACL) Overview]in the Amazon S3 User Guide. + // + // You specify each grantee as a type=value pair, where the type is one of the + // following: + // // - id – if the value specified is the canonical user ID of an Amazon Web // Services account + // // - uri – if you are granting permissions to a predefined group + // // - emailAddress – if the value specified is the email address of an Amazon Web - // Services account Using email addresses to specify a grantee is only supported in - // the following Amazon Web Services Regions: + // Services account + // + // Using email addresses to specify a grantee is only supported in the following + // Amazon Web Services Regions: + // // - US East (N. Virginia) + // // - US West (N. California) + // // - US West (Oregon) + // // - Asia Pacific (Singapore) + // // - Asia Pacific (Sydney) + // // - Asia Pacific (Tokyo) + // // - Europe (Ireland) - // - South America (São Paulo) For a list of all the Amazon S3 supported Regions - // and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) - // in the Amazon Web Services General Reference. + // + // - South America (São Paulo) + // + // For a list of all the Amazon S3 supported Regions and endpoints, see [Regions and Endpoints]in the + // Amazon Web Services General Reference. + // // For example, the following x-amz-grant-read header grants the Amazon Web // Services accounts identified by account IDs permissions to read object data and - // its metadata: x-amz-grant-read: id="11112222333", id="444455556666" + // its metadata: + // + // x-amz-grant-read: id="11112222333", id="444455556666" + // // - This functionality is not supported for directory buckets. + // // - This functionality is not supported for Amazon S3 on Outposts. + // + // [Regions and Endpoints]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region + // [Access Control List (ACL) Overview]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html GrantRead *string // Specify access permissions explicitly to allows grantee to read the object ACL. + // // By default, all objects are private. Only the owner has full access control. // When uploading an object, you can use this header to explicitly grant access // permissions to specific Amazon Web Services accounts or groups. This header maps // to specific permissions that Amazon S3 supports in an ACL. For more information, - // see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) - // in the Amazon S3 User Guide. You specify each grantee as a type=value pair, - // where the type is one of the following: + // see [Access Control List (ACL) Overview]in the Amazon S3 User Guide. + // + // You specify each grantee as a type=value pair, where the type is one of the + // following: + // // - id – if the value specified is the canonical user ID of an Amazon Web // Services account + // // - uri – if you are granting permissions to a predefined group + // // - emailAddress – if the value specified is the email address of an Amazon Web - // Services account Using email addresses to specify a grantee is only supported in - // the following Amazon Web Services Regions: + // Services account + // + // Using email addresses to specify a grantee is only supported in the following + // Amazon Web Services Regions: + // // - US East (N. Virginia) + // // - US West (N. California) + // // - US West (Oregon) + // // - Asia Pacific (Singapore) + // // - Asia Pacific (Sydney) + // // - Asia Pacific (Tokyo) + // // - Europe (Ireland) - // - South America (São Paulo) For a list of all the Amazon S3 supported Regions - // and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) - // in the Amazon Web Services General Reference. + // + // - South America (São Paulo) + // + // For a list of all the Amazon S3 supported Regions and endpoints, see [Regions and Endpoints]in the + // Amazon Web Services General Reference. + // // For example, the following x-amz-grant-read header grants the Amazon Web // Services accounts identified by account IDs permissions to read object data and - // its metadata: x-amz-grant-read: id="11112222333", id="444455556666" + // its metadata: + // + // x-amz-grant-read: id="11112222333", id="444455556666" + // // - This functionality is not supported for directory buckets. + // // - This functionality is not supported for Amazon S3 on Outposts. + // + // [Regions and Endpoints]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region + // [Access Control List (ACL) Overview]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html GrantReadACP *string // Specify access permissions explicitly to allows grantee to allow grantee to - // write the ACL for the applicable object. By default, all objects are private. - // Only the owner has full access control. When uploading an object, you can use - // this header to explicitly grant access permissions to specific Amazon Web - // Services accounts or groups. This header maps to specific permissions that - // Amazon S3 supports in an ACL. For more information, see Access Control List - // (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) - // in the Amazon S3 User Guide. You specify each grantee as a type=value pair, - // where the type is one of the following: + // write the ACL for the applicable object. + // + // By default, all objects are private. Only the owner has full access control. + // When uploading an object, you can use this header to explicitly grant access + // permissions to specific Amazon Web Services accounts or groups. This header maps + // to specific permissions that Amazon S3 supports in an ACL. For more information, + // see [Access Control List (ACL) Overview]in the Amazon S3 User Guide. + // + // You specify each grantee as a type=value pair, where the type is one of the + // following: + // // - id – if the value specified is the canonical user ID of an Amazon Web // Services account + // // - uri – if you are granting permissions to a predefined group + // // - emailAddress – if the value specified is the email address of an Amazon Web - // Services account Using email addresses to specify a grantee is only supported in - // the following Amazon Web Services Regions: + // Services account + // + // Using email addresses to specify a grantee is only supported in the following + // Amazon Web Services Regions: + // // - US East (N. Virginia) + // // - US West (N. California) + // // - US West (Oregon) + // // - Asia Pacific (Singapore) + // // - Asia Pacific (Sydney) + // // - Asia Pacific (Tokyo) + // // - Europe (Ireland) - // - South America (São Paulo) For a list of all the Amazon S3 supported Regions - // and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) - // in the Amazon Web Services General Reference. + // + // - South America (São Paulo) + // + // For a list of all the Amazon S3 supported Regions and endpoints, see [Regions and Endpoints]in the + // Amazon Web Services General Reference. + // // For example, the following x-amz-grant-read header grants the Amazon Web // Services accounts identified by account IDs permissions to read object data and - // its metadata: x-amz-grant-read: id="11112222333", id="444455556666" + // its metadata: + // + // x-amz-grant-read: id="11112222333", id="444455556666" + // // - This functionality is not supported for directory buckets. + // // - This functionality is not supported for Amazon S3 on Outposts. + // + // [Regions and Endpoints]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region + // [Access Control List (ACL) Overview]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html GrantWriteACP *string // A map of metadata to store with the object in S3. Metadata map[string]string - // Specifies whether you want to apply a legal hold to the uploaded object. This - // functionality is not supported for directory buckets. + // Specifies whether you want to apply a legal hold to the uploaded object. + // + // This functionality is not supported for directory buckets. ObjectLockLegalHoldStatus types.ObjectLockLegalHoldStatus // Specifies the Object Lock mode that you want to apply to the uploaded object. + // // This functionality is not supported for directory buckets. ObjectLockMode types.ObjectLockMode - // Specifies the date and time when you want the Object Lock to expire. This - // functionality is not supported for directory buckets. + // Specifies the date and time when you want the Object Lock to expire. + // + // This functionality is not supported for directory buckets. ObjectLockRetainUntilDate *time.Time // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer - // Specifies the algorithm to use when encrypting the object (for example, - // AES256). This functionality is not supported for directory buckets. + // Specifies the algorithm to use when encrypting the object (for example, AES256). + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string // Specifies the customer-provided encryption key for Amazon S3 to use in // encrypting data. This value is used to store the object and then it is // discarded; Amazon S3 does not store the encryption key. The key must be // appropriate for use with the algorithm specified in the - // x-amz-server-side-encryption-customer-algorithm header. This functionality is - // not supported for directory buckets. + // x-amz-server-side-encryption-customer-algorithm header. + // + // This functionality is not supported for directory buckets. SSECustomerKey *string // Specifies the 128-bit MD5 digest of the customer-provided encryption key // according to RFC 1321. Amazon S3 uses this header for a message integrity check - // to ensure that the encryption key was transmitted without error. This - // functionality is not supported for directory buckets. + // to ensure that the encryption key was transmitted without error. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string // Specifies the Amazon Web Services KMS Encryption Context to use for object // encryption. The value of this header is a base64-encoded UTF-8 string holding - // JSON with the encryption context key-value pairs. This functionality is not - // supported for directory buckets. + // JSON with the encryption context key-value pairs. + // + // This functionality is not supported for directory buckets. SSEKMSEncryptionContext *string // Specifies the ID (Key ID, Key ARN, or Key Alias) of the symmetric encryption - // customer managed key to use for object encryption. This functionality is not - // supported for directory buckets. + // customer managed key to use for object encryption. + // + // This functionality is not supported for directory buckets. SSEKMSKeyId *string // The server-side encryption algorithm used when you store this object in Amazon - // S3 (for example, AES256 , aws:kms ). For directory buckets, only server-side - // encryption with Amazon S3 managed keys (SSE-S3) ( AES256 ) is supported. + // S3 (for example, AES256 , aws:kms ). + // + // For directory buckets, only server-side encryption with Amazon S3 managed keys + // (SSE-S3) ( AES256 ) is supported. ServerSideEncryption types.ServerSideEncryption // By default, Amazon S3 uses the STANDARD Storage Class to store newly created // objects. The STANDARD storage class provides high durability and high // availability. Depending on performance needs, you can specify a different - // Storage Class. For more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) - // in the Amazon S3 User Guide. + // Storage Class. For more information, see [Storage Classes]in the Amazon S3 User Guide. + // // - For directory buckets, only the S3 Express One Zone storage class is // supported to store newly created objects. + // // - Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. + // + // [Storage Classes]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html StorageClass types.StorageClass - // The tag-set for the object. The tag-set must be encoded as URL Query - // parameters. This functionality is not supported for directory buckets. + // The tag-set for the object. The tag-set must be encoded as URL Query parameters. + // + // This functionality is not supported for directory buckets. Tagging *string // If the bucket is configured as a website, redirects requests for this object to // another object in the same bucket or to an external URL. Amazon S3 stores the - // value of this header in the object metadata. This functionality is not supported - // for directory buckets. + // value of this header in the object metadata. + // + // This functionality is not supported for directory buckets. WebsiteRedirectLocation *string noSmithyDocumentSerde @@ -469,27 +641,33 @@ type CreateMultipartUploadOutput struct { // incomplete multipart uploads and the prefix in the lifecycle rule matches the // object name in the request, the response includes this header. The header // indicates when the initiated multipart upload becomes eligible for an abort - // operation. For more information, see Aborting Incomplete Multipart Uploads - // Using a Bucket Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) - // in the Amazon S3 User Guide. The response also includes the x-amz-abort-rule-id - // header that provides the ID of the lifecycle configuration rule that defines the - // abort action. This functionality is not supported for directory buckets. + // operation. For more information, see [Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration]in the Amazon S3 User Guide. + // + // The response also includes the x-amz-abort-rule-id header that provides the ID + // of the lifecycle configuration rule that defines the abort action. + // + // This functionality is not supported for directory buckets. + // + // [Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config AbortDate *time.Time // This header is returned along with the x-amz-abort-date header. It identifies // the applicable lifecycle configuration rule that defines the action to abort - // incomplete multipart uploads. This functionality is not supported for directory - // buckets. + // incomplete multipart uploads. + // + // This functionality is not supported for directory buckets. AbortRuleId *string // The name of the bucket to which the multipart upload was initiated. Does not - // return the access point ARN or access point alias if used. Access points are not - // supported by directory buckets. + // return the access point ARN or access point alias if used. + // + // Access points are not supported by directory buckets. Bucket *string // Indicates whether the multipart upload uses an S3 Bucket Key for server-side - // encryption with Key Management Service (KMS) keys (SSE-KMS). This functionality - // is not supported for directory buckets. + // encryption with Key Management Service (KMS) keys (SSE-KMS). + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool // The algorithm that was used to create a checksum of the object. @@ -499,35 +677,43 @@ type CreateMultipartUploadOutput struct { Key *string // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // If server-side encryption with a customer-provided encryption key was // requested, the response will include this header to confirm the encryption - // algorithm that's used. This functionality is not supported for directory - // buckets. + // algorithm that's used. + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string // If server-side encryption with a customer-provided encryption key was // requested, the response will include this header to provide the round-trip - // message integrity verification of the customer-provided encryption key. This - // functionality is not supported for directory buckets. + // message integrity verification of the customer-provided encryption key. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string // If present, indicates the Amazon Web Services KMS Encryption Context to use for // object encryption. The value of this header is a base64-encoded UTF-8 string - // holding JSON with the encryption context key-value pairs. This functionality is - // not supported for directory buckets. + // holding JSON with the encryption context key-value pairs. + // + // This functionality is not supported for directory buckets. SSEKMSEncryptionContext *string // If present, indicates the ID of the Key Management Service (KMS) symmetric - // encryption customer managed key that was used for the object. This functionality - // is not supported for directory buckets. + // encryption customer managed key that was used for the object. + // + // This functionality is not supported for directory buckets. SSEKMSKeyId *string // The server-side encryption algorithm used when you store this object in Amazon - // S3 (for example, AES256 , aws:kms ). For directory buckets, only server-side - // encryption with Amazon S3 managed keys (SSE-S3) ( AES256 ) is supported. + // S3 (for example, AES256 , aws:kms ). + // + // For directory buckets, only server-side encryption with Amazon S3 managed keys + // (SSE-S3) ( AES256 ) is supported. ServerSideEncryption types.ServerSideEncryption // ID for the initiated multipart upload. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateSession.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateSession.go index e2d5a007..96f821d2 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateSession.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_CreateSession.go @@ -17,62 +17,72 @@ import ( // Creates a session that establishes temporary security credentials to support // fast authentication and authorization for the Zonal endpoint APIs on directory // buckets. For more information about Zonal endpoint APIs that include the -// Availability Zone in the request endpoint, see S3 Express One Zone APIs (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-APIs.html) -// in the Amazon S3 User Guide. To make Zonal endpoint API requests on a directory -// bucket, use the CreateSession API operation. Specifically, you grant -// s3express:CreateSession permission to a bucket in a bucket policy or an IAM -// identity-based policy. Then, you use IAM credentials to make the CreateSession -// API request on the bucket, which returns temporary security credentials that -// include the access key ID, secret access key, session token, and expiration. -// These credentials have associated permissions to access the Zonal endpoint APIs. -// After the session is created, you don’t need to use other policies to grant -// permissions to each Zonal endpoint API individually. Instead, in your Zonal -// endpoint API requests, you sign your requests by applying the temporary security -// credentials of the session to the request headers and following the SigV4 -// protocol for authentication. You also apply the session token to the -// x-amz-s3session-token request header for authorization. Temporary security -// credentials are scoped to the bucket and expire after 5 minutes. After the -// expiration time, any calls that you make with those credentials will fail. You -// must use IAM credentials again to make a CreateSession API request that -// generates a new set of temporary credentials for use. Temporary credentials -// cannot be extended or refreshed beyond the original specified interval. If you -// use Amazon Web Services SDKs, SDKs handle the session token refreshes +// Availability Zone in the request endpoint, see [S3 Express One Zone APIs]in the Amazon S3 User Guide. +// +// To make Zonal endpoint API requests on a directory bucket, use the CreateSession +// API operation. Specifically, you grant s3express:CreateSession permission to a +// bucket in a bucket policy or an IAM identity-based policy. Then, you use IAM +// credentials to make the CreateSession API request on the bucket, which returns +// temporary security credentials that include the access key ID, secret access +// key, session token, and expiration. These credentials have associated +// permissions to access the Zonal endpoint APIs. After the session is created, you +// don’t need to use other policies to grant permissions to each Zonal endpoint API +// individually. Instead, in your Zonal endpoint API requests, you sign your +// requests by applying the temporary security credentials of the session to the +// request headers and following the SigV4 protocol for authentication. You also +// apply the session token to the x-amz-s3session-token request header for +// authorization. Temporary security credentials are scoped to the bucket and +// expire after 5 minutes. After the expiration time, any calls that you make with +// those credentials will fail. You must use IAM credentials again to make a +// CreateSession API request that generates a new set of temporary credentials for +// use. Temporary credentials cannot be extended or refreshed beyond the original +// specified interval. +// +// If you use Amazon Web Services SDKs, SDKs handle the session token refreshes // automatically to avoid service interruptions when a session expires. We // recommend that you use the Amazon Web Services SDKs to initiate and manage -// requests to the CreateSession API. For more information, see Performance -// guidelines and design patterns (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-optimizing-performance-guidelines-design-patterns.html#s3-express-optimizing-performance-session-authentication) -// in the Amazon S3 User Guide. +// requests to the CreateSession API. For more information, see [Performance guidelines and design patterns]in the Amazon S3 +// User Guide. +// // - You must make requests for this API operation to the Zonal endpoint. These // endpoints support virtual-hosted-style requests in the format // https://bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests -// are not supported. For more information, see Regional and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. +// are not supported. For more information, see [Regional and Zonal endpoints]in the Amazon S3 User Guide. +// // - CopyObject API operation - Unlike other Zonal endpoint APIs, the CopyObject // API operation doesn't use the temporary security credentials returned from the // CreateSession API operation for authentication and authorization. For // information about authentication and authorization of the CopyObject API -// operation on directory buckets, see CopyObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) -// . +// operation on directory buckets, see [CopyObject]. +// // - HeadBucket API operation - Unlike other Zonal endpoint APIs, the HeadBucket // API operation doesn't use the temporary security credentials returned from the // CreateSession API operation for authentication and authorization. For // information about authentication and authorization of the HeadBucket API -// operation on directory buckets, see HeadBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html) -// . +// operation on directory buckets, see [HeadBucket]. // // Permissions To obtain temporary security credentials, you must create a bucket // policy or an IAM identity-based policy that grants s3express:CreateSession // permission to the bucket. In a policy, you can have the s3express:SessionMode // condition key to control who can create a ReadWrite or ReadOnly session. For -// more information about ReadWrite or ReadOnly sessions, see -// x-amz-create-session-mode (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html#API_CreateSession_RequestParameters) -// . For example policies, see Example bucket policies for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) -// and Amazon Web Services Identity and Access Management (IAM) identity-based -// policies for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html) -// in the Amazon S3 User Guide. To grant cross-account access to Zonal endpoint -// APIs, the bucket policy should also grant both accounts the -// s3express:CreateSession permission. HTTP Host header syntax Directory buckets - -// The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com . +// more information about ReadWrite or ReadOnly sessions, see [x-amz-create-session-mode] +// x-amz-create-session-mode . For example policies, see [Example bucket policies for S3 Express One Zone] and [Amazon Web Services Identity and Access Management (IAM) identity-based policies for S3 Express One Zone] in the Amazon S3 +// User Guide. +// +// To grant cross-account access to Zonal endpoint APIs, the bucket policy should +// also grant both accounts the s3express:CreateSession permission. +// +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// Bucket_name.s3express-az_id.region.amazonaws.com . +// +// [Amazon Web Services Identity and Access Management (IAM) identity-based policies for S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html +// [Performance guidelines and design patterns]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-optimizing-performance-guidelines-design-patterns.html#s3-express-optimizing-performance-session-authentication +// [Example bucket policies for S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [CopyObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html +// [x-amz-create-session-mode]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html#API_CreateSession_RequestParameters +// [S3 Express One Zone APIs]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-APIs.html +// [HeadBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html func (c *Client) CreateSession(ctx context.Context, params *CreateSessionInput, optFns ...func(*Options)) (*CreateSessionOutput, error) { if params == nil { params = &CreateSessionInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucket.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucket.go index 30e1381b..e3a25ec1 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucket.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucket.go @@ -15,33 +15,43 @@ import ( // Deletes the S3 bucket. All objects (including all object versions and delete // markers) in the bucket must be deleted before the bucket itself can be deleted. +// // - Directory buckets - If multipart uploads in a directory bucket are in // progress, you can't delete the bucket until all the in-progress multipart // uploads are aborted or completed. +// // - Directory buckets - For directory buckets, you must make requests for this // API operation to the Regional endpoint. These endpoints support path-style // requests in the format // https://s3express-control.region_code.amazonaws.com/bucket-name . -// Virtual-hosted-style requests aren't supported. For more information, see -// Regional and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. +// Virtual-hosted-style requests aren't supported. For more information, see [Regional and Zonal endpoints]in +// the Amazon S3 User Guide. // // Permissions +// // - General purpose bucket permissions - You must have the s3:DeleteBucket // permission on the specified bucket in a policy. +// // - Directory bucket permissions - You must have the s3express:DeleteBucket // permission in an IAM identity-based policy instead of a bucket policy. // Cross-account access to this API operation isn't supported. This operation can // only be performed by the Amazon Web Services account that owns the resource. For -// more information about directory bucket policies and permissions, see Amazon -// Web Services Identity and Access Management (IAM) for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) -// in the Amazon S3 User Guide. +// more information about directory bucket policies and permissions, see [Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone]in the +// Amazon S3 User Guide. +// +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// s3express-control.region.amazonaws.com . +// +// The following operations are related to DeleteBucket : // -// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is -// s3express-control.region.amazonaws.com . The following operations are related to -// DeleteBucket : -// - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) -// - DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) +// [CreateBucket] +// +// [DeleteObject] +// +// [DeleteObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [CreateBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html +// [Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html func (c *Client) DeleteBucket(ctx context.Context, params *DeleteBucketInput, optFns ...func(*Options)) (*DeleteBucketOutput, error) { if params == nil { params = &DeleteBucketInput{} @@ -59,24 +69,29 @@ func (c *Client) DeleteBucket(ctx context.Context, params *DeleteBucketInput, op type DeleteBucketInput struct { - // Specifies the bucket being deleted. Directory buckets - When you use this - // operation with a directory bucket, you must use path-style requests in the - // format https://s3express-control.region_code.amazonaws.com/bucket-name . + // Specifies the bucket being deleted. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use path-style requests in the format + // https://s3express-control.region_code.amazonaws.com/bucket-name . // Virtual-hosted-style requests aren't supported. Directory bucket names must be // unique in the chosen Availability Zone. Bucket names must also follow the format // bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 - // ). For information about bucket naming restrictions, see Directory bucket - // naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide + // ). For information about bucket naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User + // Guide + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html // // This member is required. Bucket *string // The account ID of the expected bucket owner. If the account ID that you provide // does not match the actual owner of the bucket, the request fails with the HTTP - // status code 403 Forbidden (access denied). For directory buckets, this header - // is not supported in this API operation. If you specify this header, the request - // fails with the HTTP status code 501 Not Implemented . + // status code 403 Forbidden (access denied). + // + // For directory buckets, this header is not supported in this API operation. If + // you specify this header, the request fails with the HTTP status code 501 Not + // Implemented . ExpectedBucketOwner *string noSmithyDocumentSerde diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketAnalyticsConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketAnalyticsConfiguration.go index 0033825a..b486fe62 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketAnalyticsConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketAnalyticsConfiguration.go @@ -13,20 +13,32 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Deletes an analytics -// configuration for the bucket (specified by the analytics configuration ID). To -// use this operation, you must have permissions to perform the +// This operation is not supported by directory buckets. +// +// Deletes an analytics configuration for the bucket (specified by the analytics +// configuration ID). +// +// To use this operation, you must have permissions to perform the // s3:PutAnalyticsConfiguration action. The bucket owner has this permission by // default. The bucket owner can grant this permission to others. For more -// information about permissions, see Permissions Related to Bucket Subresource -// Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . For information about the Amazon S3 analytics feature, see Amazon S3 -// Analytics – Storage Class Analysis (https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html) -// . The following operations are related to DeleteBucketAnalyticsConfiguration : -// - GetBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html) -// - ListBucketAnalyticsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html) -// - PutBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html) +// information about permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to Your Amazon S3 Resources]. +// +// For information about the Amazon S3 analytics feature, see [Amazon S3 Analytics – Storage Class Analysis]. +// +// The following operations are related to DeleteBucketAnalyticsConfiguration : +// +// [GetBucketAnalyticsConfiguration] +// +// [ListBucketAnalyticsConfigurations] +// +// [PutBucketAnalyticsConfiguration] +// +// [Amazon S3 Analytics – Storage Class Analysis]: https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [GetBucketAnalyticsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html +// [ListBucketAnalyticsConfigurations]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html +// [PutBucketAnalyticsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html func (c *Client) DeleteBucketAnalyticsConfiguration(ctx context.Context, params *DeleteBucketAnalyticsConfigurationInput, optFns ...func(*Options)) (*DeleteBucketAnalyticsConfigurationOutput, error) { if params == nil { params = &DeleteBucketAnalyticsConfigurationInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketCors.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketCors.go index d465826f..ef3abb12 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketCors.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketCors.go @@ -13,14 +13,25 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Deletes the cors -// configuration information set for the bucket. To use this operation, you must -// have permission to perform the s3:PutBucketCORS action. The bucket owner has -// this permission by default and can grant this permission to others. For -// information about cors , see Enabling Cross-Origin Resource Sharing (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) -// in the Amazon S3 User Guide. Related Resources -// - PutBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html) -// - RESTOPTIONSobject (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html) +// This operation is not supported by directory buckets. +// +// Deletes the cors configuration information set for the bucket. +// +// To use this operation, you must have permission to perform the s3:PutBucketCORS +// action. The bucket owner has this permission by default and can grant this +// permission to others. +// +// For information about cors , see [Enabling Cross-Origin Resource Sharing] in the Amazon S3 User Guide. +// +// # Related Resources +// +// [PutBucketCors] +// +// [RESTOPTIONSobject] +// +// [PutBucketCors]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html +// [Enabling Cross-Origin Resource Sharing]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html +// [RESTOPTIONSobject]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html func (c *Client) DeleteBucketCors(ctx context.Context, params *DeleteBucketCorsInput, optFns ...func(*Options)) (*DeleteBucketCorsOutput, error) { if params == nil { params = &DeleteBucketCorsInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketEncryption.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketEncryption.go index 7be8c475..fceb944c 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketEncryption.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketEncryption.go @@ -13,20 +13,29 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. This implementation of -// the DELETE action resets the default encryption for the bucket as server-side -// encryption with Amazon S3 managed keys (SSE-S3). For information about the -// bucket default encryption feature, see Amazon S3 Bucket Default Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) -// in the Amazon S3 User Guide. To use this operation, you must have permissions to -// perform the s3:PutEncryptionConfiguration action. The bucket owner has this -// permission by default. The bucket owner can grant this permission to others. For -// more information about permissions, see Permissions Related to Bucket -// Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// in the Amazon S3 User Guide. The following operations are related to -// DeleteBucketEncryption : -// - PutBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) -// - GetBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) +// This operation is not supported by directory buckets. +// +// This implementation of the DELETE action resets the default encryption for the +// bucket as server-side encryption with Amazon S3 managed keys (SSE-S3). For +// information about the bucket default encryption feature, see [Amazon S3 Bucket Default Encryption]in the Amazon S3 +// User Guide. +// +// To use this operation, you must have permissions to perform the +// s3:PutEncryptionConfiguration action. The bucket owner has this permission by +// default. The bucket owner can grant this permission to others. For more +// information about permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to your Amazon S3 Resources] in the Amazon S3 User Guide. +// +// The following operations are related to DeleteBucketEncryption : +// +// [PutBucketEncryption] +// +// [GetBucketEncryption] +// +// [GetBucketEncryption]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html +// [PutBucketEncryption]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [Managing Access Permissions to your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html +// [Amazon S3 Bucket Default Encryption]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html func (c *Client) DeleteBucketEncryption(ctx context.Context, params *DeleteBucketEncryptionInput, optFns ...func(*Options)) (*DeleteBucketEncryptionOutput, error) { if params == nil { params = &DeleteBucketEncryptionInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketIntelligentTieringConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketIntelligentTieringConfiguration.go index 734d23b0..b7baf48a 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketIntelligentTieringConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketIntelligentTieringConfiguration.go @@ -13,25 +13,38 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Deletes the S3 -// Intelligent-Tiering configuration from the specified bucket. The S3 -// Intelligent-Tiering storage class is designed to optimize storage costs by -// automatically moving data to the most cost-effective storage access tier, +// This operation is not supported by directory buckets. +// +// Deletes the S3 Intelligent-Tiering configuration from the specified bucket. +// +// The S3 Intelligent-Tiering storage class is designed to optimize storage costs +// by automatically moving data to the most cost-effective storage access tier, // without performance impact or operational overhead. S3 Intelligent-Tiering // delivers automatic cost savings in three low latency and high throughput access // tiers. To get the lowest storage cost on data that can be accessed in minutes to -// hours, you can choose to activate additional archiving capabilities. The S3 -// Intelligent-Tiering storage class is the ideal storage class for data with -// unknown, changing, or unpredictable access patterns, independent of object size -// or retention period. If the size of an object is less than 128 KB, it is not -// monitored and not eligible for auto-tiering. Smaller objects can be stored, but -// they are always charged at the Frequent Access tier rates in the S3 -// Intelligent-Tiering storage class. For more information, see Storage class for -// automatically optimizing frequently and infrequently accessed objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) -// . Operations related to DeleteBucketIntelligentTieringConfiguration include: -// - GetBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html) -// - PutBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html) -// - ListBucketIntelligentTieringConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html) +// hours, you can choose to activate additional archiving capabilities. +// +// The S3 Intelligent-Tiering storage class is the ideal storage class for data +// with unknown, changing, or unpredictable access patterns, independent of object +// size or retention period. If the size of an object is less than 128 KB, it is +// not monitored and not eligible for auto-tiering. Smaller objects can be stored, +// but they are always charged at the Frequent Access tier rates in the S3 +// Intelligent-Tiering storage class. +// +// For more information, see [Storage class for automatically optimizing frequently and infrequently accessed objects]. +// +// Operations related to DeleteBucketIntelligentTieringConfiguration include: +// +// [GetBucketIntelligentTieringConfiguration] +// +// [PutBucketIntelligentTieringConfiguration] +// +// [ListBucketIntelligentTieringConfigurations] +// +// [ListBucketIntelligentTieringConfigurations]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html +// [GetBucketIntelligentTieringConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html +// [PutBucketIntelligentTieringConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html +// [Storage class for automatically optimizing frequently and infrequently accessed objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access func (c *Client) DeleteBucketIntelligentTieringConfiguration(ctx context.Context, params *DeleteBucketIntelligentTieringConfigurationInput, optFns ...func(*Options)) (*DeleteBucketIntelligentTieringConfigurationOutput, error) { if params == nil { params = &DeleteBucketIntelligentTieringConfigurationInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketInventoryConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketInventoryConfiguration.go index 3b8d81a4..ef1d8a24 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketInventoryConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketInventoryConfiguration.go @@ -13,18 +13,32 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Deletes an inventory -// configuration (identified by the inventory ID) from the bucket. To use this -// operation, you must have permissions to perform the s3:PutInventoryConfiguration -// action. The bucket owner has this permission by default. The bucket owner can -// grant this permission to others. For more information about permissions, see -// Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . For information about the Amazon S3 inventory feature, see Amazon S3 Inventory (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html) -// . Operations related to DeleteBucketInventoryConfiguration include: -// - GetBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) -// - PutBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html) -// - ListBucketInventoryConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html) +// This operation is not supported by directory buckets. +// +// Deletes an inventory configuration (identified by the inventory ID) from the +// bucket. +// +// To use this operation, you must have permissions to perform the +// s3:PutInventoryConfiguration action. The bucket owner has this permission by +// default. The bucket owner can grant this permission to others. For more +// information about permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to Your Amazon S3 Resources]. +// +// For information about the Amazon S3 inventory feature, see [Amazon S3 Inventory]. +// +// Operations related to DeleteBucketInventoryConfiguration include: +// +// [GetBucketInventoryConfiguration] +// +// [PutBucketInventoryConfiguration] +// +// [ListBucketInventoryConfigurations] +// +// [Amazon S3 Inventory]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html +// [ListBucketInventoryConfigurations]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html +// [PutBucketInventoryConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html +// [GetBucketInventoryConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html func (c *Client) DeleteBucketInventoryConfiguration(ctx context.Context, params *DeleteBucketInventoryConfigurationInput, optFns ...func(*Options)) (*DeleteBucketInventoryConfigurationOutput, error) { if params == nil { params = &DeleteBucketInventoryConfigurationInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketLifecycle.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketLifecycle.go index 88928b28..ea6455f6 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketLifecycle.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketLifecycle.go @@ -13,20 +13,32 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Deletes the lifecycle -// configuration from the specified bucket. Amazon S3 removes all the lifecycle -// configuration rules in the lifecycle subresource associated with the bucket. -// Your objects never expire, and Amazon S3 no longer automatically deletes any -// objects on the basis of rules contained in the deleted lifecycle configuration. +// This operation is not supported by directory buckets. +// +// Deletes the lifecycle configuration from the specified bucket. Amazon S3 +// removes all the lifecycle configuration rules in the lifecycle subresource +// associated with the bucket. Your objects never expire, and Amazon S3 no longer +// automatically deletes any objects on the basis of rules contained in the deleted +// lifecycle configuration. +// // To use this operation, you must have permission to perform the // s3:PutLifecycleConfiguration action. By default, the bucket owner has this -// permission and the bucket owner can grant this permission to others. There is -// usually some time lag before lifecycle configuration deletion is fully -// propagated to all the Amazon S3 systems. For more information about the object -// expiration, see Elements to Describe Lifecycle Actions (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions) -// . Related actions include: -// - PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) -// - GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) +// permission and the bucket owner can grant this permission to others. +// +// There is usually some time lag before lifecycle configuration deletion is fully +// propagated to all the Amazon S3 systems. +// +// For more information about the object expiration, see [Elements to Describe Lifecycle Actions]. +// +// Related actions include: +// +// [PutBucketLifecycleConfiguration] +// +// [GetBucketLifecycleConfiguration] +// +// [PutBucketLifecycleConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html +// [Elements to Describe Lifecycle Actions]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions +// [GetBucketLifecycleConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html func (c *Client) DeleteBucketLifecycle(ctx context.Context, params *DeleteBucketLifecycleInput, optFns ...func(*Options)) (*DeleteBucketLifecycleOutput, error) { if params == nil { params = &DeleteBucketLifecycleInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketMetricsConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketMetricsConfiguration.go index 21384351..ca0158b6 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketMetricsConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketMetricsConfiguration.go @@ -13,22 +13,35 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Deletes a metrics -// configuration for the Amazon CloudWatch request metrics (specified by the -// metrics configuration ID) from the bucket. Note that this doesn't include the -// daily storage metrics. To use this operation, you must have permissions to -// perform the s3:PutMetricsConfiguration action. The bucket owner has this -// permission by default. The bucket owner can grant this permission to others. For -// more information about permissions, see Permissions Related to Bucket -// Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . For information about CloudWatch request metrics for Amazon S3, see -// Monitoring Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html) -// . The following operations are related to DeleteBucketMetricsConfiguration : -// - GetBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html) -// - PutBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) -// - ListBucketMetricsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html) -// - Monitoring Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html) +// This operation is not supported by directory buckets. +// +// Deletes a metrics configuration for the Amazon CloudWatch request metrics +// (specified by the metrics configuration ID) from the bucket. Note that this +// doesn't include the daily storage metrics. +// +// To use this operation, you must have permissions to perform the +// s3:PutMetricsConfiguration action. The bucket owner has this permission by +// default. The bucket owner can grant this permission to others. For more +// information about permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to Your Amazon S3 Resources]. +// +// For information about CloudWatch request metrics for Amazon S3, see [Monitoring Metrics with Amazon CloudWatch]. +// +// The following operations are related to DeleteBucketMetricsConfiguration : +// +// [GetBucketMetricsConfiguration] +// +// [PutBucketMetricsConfiguration] +// +// [ListBucketMetricsConfigurations] +// +// [Monitoring Metrics with Amazon CloudWatch] +// +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [Monitoring Metrics with Amazon CloudWatch]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html +// [GetBucketMetricsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html +// [ListBucketMetricsConfigurations]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html +// [PutBucketMetricsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html func (c *Client) DeleteBucketMetricsConfiguration(ctx context.Context, params *DeleteBucketMetricsConfigurationInput, optFns ...func(*Options)) (*DeleteBucketMetricsConfigurationOutput, error) { if params == nil { params = &DeleteBucketMetricsConfigurationInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketOwnershipControls.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketOwnershipControls.go index 4beac6b0..a2e89e40 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketOwnershipControls.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketOwnershipControls.go @@ -13,14 +13,22 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Removes OwnershipControls -// for an Amazon S3 bucket. To use this operation, you must have the -// s3:PutBucketOwnershipControls permission. For more information about Amazon S3 -// permissions, see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) -// . For information about Amazon S3 Object Ownership, see Using Object Ownership (https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html) -// . The following operations are related to DeleteBucketOwnershipControls : -// - GetBucketOwnershipControls -// - PutBucketOwnershipControls +// This operation is not supported by directory buckets. +// +// Removes OwnershipControls for an Amazon S3 bucket. To use this operation, you +// must have the s3:PutBucketOwnershipControls permission. For more information +// about Amazon S3 permissions, see [Specifying Permissions in a Policy]. +// +// For information about Amazon S3 Object Ownership, see [Using Object Ownership]. +// +// The following operations are related to DeleteBucketOwnershipControls : +// +// # GetBucketOwnershipControls +// +// # PutBucketOwnershipControls +// +// [Using Object Ownership]: https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html +// [Specifying Permissions in a Policy]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html func (c *Client) DeleteBucketOwnershipControls(ctx context.Context, params *DeleteBucketOwnershipControlsInput, optFns ...func(*Options)) (*DeleteBucketOwnershipControlsOutput, error) { if params == nil { params = &DeleteBucketOwnershipControlsInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketPolicy.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketPolicy.go index b8e1f56a..74589082 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketPolicy.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketPolicy.go @@ -13,44 +13,57 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes the policy of a specified bucket. Directory buckets - For directory -// buckets, you must make requests for this API operation to the Regional endpoint. -// These endpoints support path-style requests in the format -// https://s3express-control.region_code.amazonaws.com/bucket-name . -// Virtual-hosted-style requests aren't supported. For more information, see -// Regional and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. Permissions If you are using an identity other than -// the root user of the Amazon Web Services account that owns the bucket, the -// calling identity must both have the DeleteBucketPolicy permissions on the -// specified bucket and belong to the bucket owner's account in order to use this -// operation. If you don't have DeleteBucketPolicy permissions, Amazon S3 returns -// a 403 Access Denied error. If you have the correct permissions, but you're not -// using an identity that belongs to the bucket owner's account, Amazon S3 returns -// a 405 Method Not Allowed error. To ensure that bucket owners don't -// inadvertently lock themselves out of their own buckets, the root principal in a -// bucket owner's Amazon Web Services account can perform the GetBucketPolicy , -// PutBucketPolicy , and DeleteBucketPolicy API actions, even if their bucket -// policy explicitly denies the root principal's access. Bucket owner root -// principals can only be blocked from performing these API actions by VPC endpoint -// policies and Amazon Web Services Organizations policies. +// Deletes the policy of a specified bucket. +// +// Directory buckets - For directory buckets, you must make requests for this API +// operation to the Regional endpoint. These endpoints support path-style requests +// in the format https://s3express-control.region_code.amazonaws.com/bucket-name . +// Virtual-hosted-style requests aren't supported. For more information, see [Regional and Zonal endpoints]in +// the Amazon S3 User Guide. +// +// Permissions If you are using an identity other than the root user of the Amazon +// Web Services account that owns the bucket, the calling identity must both have +// the DeleteBucketPolicy permissions on the specified bucket and belong to the +// bucket owner's account in order to use this operation. +// +// If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403 +// Access Denied error. If you have the correct permissions, but you're not using +// an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 +// Method Not Allowed error. +// +// To ensure that bucket owners don't inadvertently lock themselves out of their +// own buckets, the root principal in a bucket owner's Amazon Web Services account +// can perform the GetBucketPolicy , PutBucketPolicy , and DeleteBucketPolicy API +// actions, even if their bucket policy explicitly denies the root principal's +// access. Bucket owner root principals can only be blocked from performing these +// API actions by VPC endpoint policies and Amazon Web Services Organizations +// policies. +// // - General purpose bucket permissions - The s3:DeleteBucketPolicy permission is // required in a policy. For more information about general purpose buckets bucket -// policies, see Using Bucket Policies and User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) -// in the Amazon S3 User Guide. +// policies, see [Using Bucket Policies and User Policies]in the Amazon S3 User Guide. +// // - Directory bucket permissions - To grant access to this API operation, you // must have the s3express:DeleteBucketPolicy permission in an IAM identity-based // policy instead of a bucket policy. Cross-account access to this API operation // isn't supported. This operation can only be performed by the Amazon Web Services // account that owns the resource. For more information about directory bucket -// policies and permissions, see Amazon Web Services Identity and Access -// Management (IAM) for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) -// in the Amazon S3 User Guide. +// policies and permissions, see [Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone]in the Amazon S3 User Guide. +// +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// s3express-control.region.amazonaws.com . // -// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is -// s3express-control.region.amazonaws.com . The following operations are related to -// DeleteBucketPolicy -// - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) -// - DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) +// # The following operations are related to DeleteBucketPolicy +// +// [CreateBucket] +// +// [DeleteObject] +// +// [DeleteObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [Using Bucket Policies and User Policies]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html +// [CreateBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html +// [Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html func (c *Client) DeleteBucketPolicy(ctx context.Context, params *DeleteBucketPolicyInput, optFns ...func(*Options)) (*DeleteBucketPolicyOutput, error) { if params == nil { params = &DeleteBucketPolicyInput{} @@ -68,24 +81,29 @@ func (c *Client) DeleteBucketPolicy(ctx context.Context, params *DeleteBucketPol type DeleteBucketPolicyInput struct { - // The bucket name. Directory buckets - When you use this operation with a - // directory bucket, you must use path-style requests in the format + // The bucket name. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use path-style requests in the format // https://s3express-control.region_code.amazonaws.com/bucket-name . // Virtual-hosted-style requests aren't supported. Directory bucket names must be // unique in the chosen Availability Zone. Bucket names must also follow the format // bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 - // ). For information about bucket naming restrictions, see Directory bucket - // naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide + // ). For information about bucket naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User + // Guide + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html // // This member is required. Bucket *string // The account ID of the expected bucket owner. If the account ID that you provide // does not match the actual owner of the bucket, the request fails with the HTTP - // status code 403 Forbidden (access denied). For directory buckets, this header - // is not supported in this API operation. If you specify this header, the request - // fails with the HTTP status code 501 Not Implemented . + // status code 403 Forbidden (access denied). + // + // For directory buckets, this header is not supported in this API operation. If + // you specify this header, the request fails with the HTTP status code 501 Not + // Implemented . ExpectedBucketOwner *string noSmithyDocumentSerde diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketReplication.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketReplication.go index 9fdc6bcf..58f91e97 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketReplication.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketReplication.go @@ -13,18 +13,32 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Deletes the replication -// configuration from the bucket. To use this operation, you must have permissions -// to perform the s3:PutReplicationConfiguration action. The bucket owner has -// these permissions by default and can grant it to others. For more information -// about permissions, see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . It can take a while for the deletion of a replication configuration to fully -// propagate. For information about replication configuration, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) -// in the Amazon S3 User Guide. The following operations are related to -// DeleteBucketReplication : -// - PutBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) -// - GetBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) +// This operation is not supported by directory buckets. +// +// Deletes the replication configuration from the bucket. +// +// To use this operation, you must have permissions to perform the +// s3:PutReplicationConfiguration action. The bucket owner has these permissions by +// default and can grant it to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations] +// and [Managing Access Permissions to Your Amazon S3 Resources]. +// +// It can take a while for the deletion of a replication configuration to fully +// propagate. +// +// For information about replication configuration, see [Replication] in the Amazon S3 User +// Guide. +// +// The following operations are related to DeleteBucketReplication : +// +// [PutBucketReplication] +// +// [GetBucketReplication] +// +// [GetBucketReplication]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [PutBucketReplication]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html +// [Replication]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html func (c *Client) DeleteBucketReplication(ctx context.Context, params *DeleteBucketReplicationInput, optFns ...func(*Options)) (*DeleteBucketReplicationOutput, error) { if params == nil { params = &DeleteBucketReplicationInput{} @@ -42,7 +56,7 @@ func (c *Client) DeleteBucketReplication(ctx context.Context, params *DeleteBuck type DeleteBucketReplicationInput struct { - // The bucket name. + // The bucket name. // // This member is required. Bucket *string diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketTagging.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketTagging.go index ae737d40..8f338690 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketTagging.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketTagging.go @@ -13,13 +13,22 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Deletes the tags from the -// bucket. To use this operation, you must have permission to perform the +// This operation is not supported by directory buckets. +// +// Deletes the tags from the bucket. +// +// To use this operation, you must have permission to perform the // s3:PutBucketTagging action. By default, the bucket owner has this permission and -// can grant this permission to others. The following operations are related to -// DeleteBucketTagging : -// - GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html) -// - PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html) +// can grant this permission to others. +// +// The following operations are related to DeleteBucketTagging : +// +// [GetBucketTagging] +// +// [PutBucketTagging] +// +// [GetBucketTagging]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html +// [PutBucketTagging]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html func (c *Client) DeleteBucketTagging(ctx context.Context, params *DeleteBucketTaggingInput, optFns ...func(*Options)) (*DeleteBucketTaggingOutput, error) { if params == nil { params = &DeleteBucketTaggingInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketWebsite.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketWebsite.go index 425936df..893cda50 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketWebsite.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteBucketWebsite.go @@ -13,20 +13,31 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. This action removes the -// website configuration for a bucket. Amazon S3 returns a 200 OK response upon -// successfully deleting a website configuration on the specified bucket. You will -// get a 200 OK response if the website configuration you are trying to delete -// does not exist on the bucket. Amazon S3 returns a 404 response if the bucket -// specified in the request does not exist. This DELETE action requires the -// S3:DeleteBucketWebsite permission. By default, only the bucket owner can delete -// the website configuration attached to a bucket. However, bucket owners can grant -// other users permission to delete the website configuration by writing a bucket -// policy granting them the S3:DeleteBucketWebsite permission. For more -// information about hosting websites, see Hosting Websites on Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) -// . The following operations are related to DeleteBucketWebsite : -// - GetBucketWebsite (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html) -// - PutBucketWebsite (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html) +// This operation is not supported by directory buckets. +// +// This action removes the website configuration for a bucket. Amazon S3 returns a +// 200 OK response upon successfully deleting a website configuration on the +// specified bucket. You will get a 200 OK response if the website configuration +// you are trying to delete does not exist on the bucket. Amazon S3 returns a 404 +// response if the bucket specified in the request does not exist. +// +// This DELETE action requires the S3:DeleteBucketWebsite permission. By default, +// only the bucket owner can delete the website configuration attached to a bucket. +// However, bucket owners can grant other users permission to delete the website +// configuration by writing a bucket policy granting them the +// S3:DeleteBucketWebsite permission. +// +// For more information about hosting websites, see [Hosting Websites on Amazon S3]. +// +// The following operations are related to DeleteBucketWebsite : +// +// [GetBucketWebsite] +// +// [PutBucketWebsite] +// +// [GetBucketWebsite]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html +// [PutBucketWebsite]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html +// [Hosting Websites on Amazon S3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html func (c *Client) DeleteBucketWebsite(ctx context.Context, params *DeleteBucketWebsiteInput, optFns ...func(*Options)) (*DeleteBucketWebsiteOutput, error) { if params == nil { params = &DeleteBucketWebsiteInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObject.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObject.go index c1e5ff73..778d02e5 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObject.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObject.go @@ -22,9 +22,7 @@ import ( // - If bucket versioning is enabled, the operation inserts a delete marker, // which becomes the current version of the object. To permanently delete an object // in a versioned bucket, you must include the object’s versionId in the request. -// For more information about versioning-enabled buckets, see Deleting object -// versions from a versioning-enabled bucket (https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjectVersions.html) -// . +// For more information about versioning-enabled buckets, see [Deleting object versions from a versioning-enabled bucket]. // // - If bucket versioning is suspended, the operation removes the object that // has a null versionId , if there is one, and inserts a delete marker that @@ -32,9 +30,7 @@ import ( // versionId , and all versions of the object have a versionId , Amazon S3 does // not remove the object and only inserts a delete marker. To permanently delete an // object that has a versionId , you must include the object’s versionId in the -// request. For more information about versioning-suspended buckets, see -// Deleting objects from versioning-suspended buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjectsfromVersioningSuspendedBuckets.html) -// . +// request. For more information about versioning-suspended buckets, see [Deleting objects from versioning-suspended buckets]. // // - Directory buckets - S3 Versioning isn't enabled and supported for directory // buckets. For this API operation, only the null value of the version ID is @@ -45,37 +41,43 @@ import ( // API operation to the Zonal endpoint. These endpoints support // virtual-hosted-style requests in the format // https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . -// Path-style requests are not supported. For more information, see Regional and -// Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. +// Path-style requests are not supported. For more information, see [Regional and Zonal endpoints]in the +// Amazon S3 User Guide. // // To remove a specific version, you must use the versionId query parameter. Using // this query parameter permanently deletes the version. If the object deleted is a // delete marker, Amazon S3 sets the response header x-amz-delete-marker to true. +// // If the object you want to delete is in a bucket where the bucket versioning // configuration is MFA Delete enabled, you must include the x-amz-mfa request // header in the DELETE versionId request. Requests that include x-amz-mfa must -// use HTTPS. For more information about MFA Delete, see Using MFA Delete (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html) -// in the Amazon S3 User Guide. To see sample requests that use versioning, see -// Sample Request (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete) -// . Directory buckets - MFA delete is not supported by directory buckets. You can -// delete objects by explicitly calling DELETE Object or calling ( -// PutBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html) -// ) to enable Amazon S3 to remove them for you. If you want to block users or -// accounts from removing or deleting objects from your bucket, you must deny them -// the s3:DeleteObject , s3:DeleteObjectVersion , and s3:PutLifeCycleConfiguration -// actions. Directory buckets - S3 Lifecycle is not supported by directory buckets. +// use HTTPS. For more information about MFA Delete, see [Using MFA Delete]in the Amazon S3 User +// Guide. To see sample requests that use versioning, see [Sample Request]. +// +// Directory buckets - MFA delete is not supported by directory buckets. +// +// You can delete objects by explicitly calling DELETE Object or calling ([PutBucketLifecycle] ) to +// enable Amazon S3 to remove them for you. If you want to block users or accounts +// from removing or deleting objects from your bucket, you must deny them the +// s3:DeleteObject , s3:DeleteObjectVersion , and s3:PutLifeCycleConfiguration +// actions. +// +// Directory buckets - S3 Lifecycle is not supported by directory buckets. +// // Permissions +// // - General purpose bucket permissions - The following permissions are required // in your policies when your DeleteObjects request includes specific headers. +// // - s3:DeleteObject - To delete an object from a bucket, you must always have // the s3:DeleteObject permission. +// // - s3:DeleteObjectVersion - To delete a specific version of an object from a -// versioning-enabled bucket, you must have the s3:DeleteObjectVersion -// permission. +// versioning-enabled bucket, you must have the s3:DeleteObjectVersion permission. +// // - Directory bucket permissions - To grant access to this API operation on a -// directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// API operation for session-based authorization. Specifically, you grant the +// directory bucket, we recommend that you use the [CreateSession]CreateSession API operation +// for session-based authorization. Specifically, you grant the // s3express:CreateSession permission to the directory bucket in a bucket policy // or an IAM identity-based policy. Then, you make the CreateSession API call on // the bucket to obtain a session token. With the session token in your request @@ -83,13 +85,23 @@ import ( // expires, you make another CreateSession API call to generate a new session // token for use. Amazon Web Services CLI or SDKs create session and refresh the // session token automatically to avoid service interruptions when a session -// expires. For more information about authorization, see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// . +// expires. For more information about authorization, see [CreateSession]CreateSession . +// +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// Bucket_name.s3express-az_id.region.amazonaws.com . +// +// The following action is related to DeleteObject : // -// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is -// Bucket_name.s3express-az_id.region.amazonaws.com . The following action is -// related to DeleteObject : -// - PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) +// [PutObject] +// +// [Sample Request]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [Deleting objects from versioning-suspended buckets]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjectsfromVersioningSuspendedBuckets.html +// [PutObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html +// [PutBucketLifecycle]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html +// [CreateSession]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html +// [Deleting object versions from a versioning-enabled bucket]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjectVersions.html +// [Using MFA Delete]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html func (c *Client) DeleteObject(ctx context.Context, params *DeleteObjectInput, optFns ...func(*Options)) (*DeleteObjectOutput, error) { if params == nil { params = &DeleteObjectInput{} @@ -107,31 +119,39 @@ func (c *Client) DeleteObject(ctx context.Context, params *DeleteObjectInput, op type DeleteObjectInput struct { - // The bucket name of the bucket containing the object. Directory buckets - When - // you use this operation with a directory bucket, you must use - // virtual-hosted-style requests in the format + // The bucket name of the bucket containing the object. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use virtual-hosted-style requests in the format // Bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests are not // supported. Directory bucket names must be unique in the chosen Availability // Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for // example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 ). For information about bucket - // naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. Access points and Object Lambda access points are - // not supported by directory buckets. S3 on Outposts - When you use this action - // with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts - // hostname. The S3 on Outposts hostname takes the form + // naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -143,8 +163,9 @@ type DeleteObjectInput struct { // Indicates whether S3 Object Lock should bypass Governance-mode restrictions to // process this operation. To use this header, you must have the - // s3:BypassGovernanceRetention permission. This functionality is not supported for - // directory buckets. + // s3:BypassGovernanceRetention permission. + // + // This functionality is not supported for directory buckets. BypassGovernanceRetention *bool // The account ID of the expected bucket owner. If the account ID that you provide @@ -155,22 +176,27 @@ type DeleteObjectInput struct { // The concatenation of the authentication device's serial number, a space, and // the value that is displayed on your authentication device. Required to // permanently delete a versioned object if versioning is configured with MFA - // delete enabled. This functionality is not supported for directory buckets. + // delete enabled. + // + // This functionality is not supported for directory buckets. MFA *string // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer - // Version ID used to reference a specific version of the object. For directory - // buckets in this API operation, only the null value of the version ID is - // supported. + // Version ID used to reference a specific version of the object. + // + // For directory buckets in this API operation, only the null value of the version + // ID is supported. VersionId *string noSmithyDocumentSerde @@ -187,16 +213,21 @@ type DeleteObjectOutput struct { // Indicates whether the specified object version that was permanently deleted was // (true) or was not (false) a delete marker before deletion. In a simple DELETE, // this header indicates whether (true) or not (false) the current version of the - // object is a delete marker. This functionality is not supported for directory - // buckets. + // object is a delete marker. + // + // This functionality is not supported for directory buckets. DeleteMarker *bool // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // Returns the version ID of the delete marker created as a result of the DELETE - // operation. This functionality is not supported for directory buckets. + // operation. + // + // This functionality is not supported for directory buckets. VersionId *string // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObjectTagging.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObjectTagging.go index c5f31dec..7bb534eb 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObjectTagging.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObjectTagging.go @@ -12,16 +12,27 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Removes the entire tag -// set from the specified object. For more information about managing object tags, -// see Object Tagging (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html) -// . To use this operation, you must have permission to perform the -// s3:DeleteObjectTagging action. To delete tags of a specific object version, add -// the versionId query parameter in the request. You will need permission for the -// s3:DeleteObjectVersionTagging action. The following operations are related to -// DeleteObjectTagging : -// - PutObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html) -// - GetObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) +// This operation is not supported by directory buckets. +// +// Removes the entire tag set from the specified object. For more information +// about managing object tags, see [Object Tagging]. +// +// To use this operation, you must have permission to perform the +// s3:DeleteObjectTagging action. +// +// To delete tags of a specific object version, add the versionId query parameter +// in the request. You will need permission for the s3:DeleteObjectVersionTagging +// action. +// +// The following operations are related to DeleteObjectTagging : +// +// [PutObjectTagging] +// +// [GetObjectTagging] +// +// [PutObjectTagging]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html +// [Object Tagging]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html +// [GetObjectTagging]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html func (c *Client) DeleteObjectTagging(ctx context.Context, params *DeleteObjectTaggingInput, optFns ...func(*Options)) (*DeleteObjectTaggingOutput, error) { if params == nil { params = &DeleteObjectTaggingInput{} @@ -39,23 +50,27 @@ func (c *Client) DeleteObjectTagging(ctx context.Context, params *DeleteObjectTa type DeleteObjectTaggingInput struct { - // The bucket name containing the objects from which to remove the tags. Access - // points - When you use this action with an access point, you must provide the - // alias of the access point in place of the bucket name or specify the access + // The bucket name containing the objects from which to remove the tags. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access // point ARN. When using the access point ARN, you must direct requests to the // access point hostname. The access point hostname takes the form // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // action with an access point through the Amazon Web Services SDKs, you provide // the access point ARN in place of the bucket name. For more information about - // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. S3 on Outposts - When you use this action with - // Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. - // The S3 on Outposts hostname takes the form + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObjects.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObjects.go index 05f82cf7..45b82313 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObjects.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeleteObjects.go @@ -17,47 +17,57 @@ import ( // This operation enables you to delete multiple objects from a bucket using a // single HTTP request. If you know the object keys that you want to delete, then // this operation provides a suitable alternative to sending individual delete -// requests, reducing per-request overhead. The request can contain a list of up to -// 1000 keys that you want to delete. In the XML, you provide the object key names, -// and optionally, version IDs if you want to delete a specific version of the -// object from a versioning-enabled bucket. For each key, Amazon S3 performs a -// delete operation and returns the result of that delete, success or failure, in -// the response. Note that if the object specified in the request is not found, -// Amazon S3 returns the result as deleted. +// requests, reducing per-request overhead. +// +// The request can contain a list of up to 1000 keys that you want to delete. In +// the XML, you provide the object key names, and optionally, version IDs if you +// want to delete a specific version of the object from a versioning-enabled +// bucket. For each key, Amazon S3 performs a delete operation and returns the +// result of that delete, success or failure, in the response. Note that if the +// object specified in the request is not found, Amazon S3 returns the result as +// deleted. +// // - Directory buckets - S3 Versioning isn't enabled and supported for directory // buckets. +// // - Directory buckets - For directory buckets, you must make requests for this // API operation to the Zonal endpoint. These endpoints support // virtual-hosted-style requests in the format // https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . -// Path-style requests are not supported. For more information, see Regional and -// Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. +// Path-style requests are not supported. For more information, see [Regional and Zonal endpoints]in the +// Amazon S3 User Guide. // // The operation supports two modes for the response: verbose and quiet. By // default, the operation uses verbose mode in which the response includes the // result of deletion of each key in your request. In quiet mode the response // includes only keys where the delete operation encountered an error. For a // successful deletion in a quiet mode, the operation does not return any -// information about the delete in the response body. When performing this action -// on an MFA Delete enabled bucket, that attempts to delete any versioned objects, -// you must include an MFA token. If you do not provide one, the entire request -// will fail, even if there are non-versioned objects you are trying to delete. If -// you provide an invalid token, whether there are versioned keys in the request or -// not, the entire Multi-Object Delete request will fail. For information about MFA -// Delete, see MFA Delete (https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete) -// in the Amazon S3 User Guide. Directory buckets - MFA delete is not supported by -// directory buckets. Permissions +// information about the delete in the response body. +// +// When performing this action on an MFA Delete enabled bucket, that attempts to +// delete any versioned objects, you must include an MFA token. If you do not +// provide one, the entire request will fail, even if there are non-versioned +// objects you are trying to delete. If you provide an invalid token, whether there +// are versioned keys in the request or not, the entire Multi-Object Delete request +// will fail. For information about MFA Delete, see [MFA Delete]in the Amazon S3 User Guide. +// +// Directory buckets - MFA delete is not supported by directory buckets. +// +// Permissions +// // - General purpose bucket permissions - The following permissions are required // in your policies when your DeleteObjects request includes specific headers. +// // - s3:DeleteObject - To delete an object from a bucket, you must always specify // the s3:DeleteObject permission. +// // - s3:DeleteObjectVersion - To delete a specific version of an object from a // versiong-enabled bucket, you must specify the s3:DeleteObjectVersion // permission. +// // - Directory bucket permissions - To grant access to this API operation on a -// directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// API operation for session-based authorization. Specifically, you grant the +// directory bucket, we recommend that you use the [CreateSession]CreateSession API operation +// for session-based authorization. Specifically, you grant the // s3express:CreateSession permission to the directory bucket in a bucket policy // or an IAM identity-based policy. Then, you make the CreateSession API call on // the bucket to obtain a session token. With the session token in your request @@ -65,26 +75,42 @@ import ( // expires, you make another CreateSession API call to generate a new session // token for use. Amazon Web Services CLI or SDKs create session and refresh the // session token automatically to avoid service interruptions when a session -// expires. For more information about authorization, see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// . +// expires. For more information about authorization, see [CreateSession]CreateSession . // // Content-MD5 request header +// // - General purpose bucket - The Content-MD5 request header is required for all // Multi-Object Delete requests. Amazon S3 uses the header value to ensure that // your request body has not been altered in transit. +// // - Directory bucket - The Content-MD5 request header or a additional checksum // request header (including x-amz-checksum-crc32 , x-amz-checksum-crc32c , // x-amz-checksum-sha1 , or x-amz-checksum-sha256 ) is required for all // Multi-Object Delete requests. // -// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is -// Bucket_name.s3express-az_id.region.amazonaws.com . The following operations are -// related to DeleteObjects : -// - CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) -// - UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) -// - CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) -// - ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) -// - AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// Bucket_name.s3express-az_id.region.amazonaws.com . +// +// The following operations are related to DeleteObjects : +// +// [CreateMultipartUpload] +// +// [UploadPart] +// +// [CompleteMultipartUpload] +// +// [ListParts] +// +// [AbortMultipartUpload] +// +// [ListParts]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html +// [AbortMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html +// [UploadPart]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [CreateSession]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html +// [CompleteMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html +// [MFA Delete]: https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete +// [CreateMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html func (c *Client) DeleteObjects(ctx context.Context, params *DeleteObjectsInput, optFns ...func(*Options)) (*DeleteObjectsOutput, error) { if params == nil { params = &DeleteObjectsInput{} @@ -102,31 +128,39 @@ func (c *Client) DeleteObjects(ctx context.Context, params *DeleteObjectsInput, type DeleteObjectsInput struct { - // The bucket name containing the objects to delete. Directory buckets - When you - // use this operation with a directory bucket, you must use virtual-hosted-style - // requests in the format Bucket_name.s3express-az_id.region.amazonaws.com . - // Path-style requests are not supported. Directory bucket names must be unique in - // the chosen Availability Zone. Bucket names must follow the format - // bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 - // ). For information about bucket naming restrictions, see Directory bucket - // naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. Access points and Object Lambda access points are - // not supported by directory buckets. S3 on Outposts - When you use this action - // with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts - // hostname. The S3 on Outposts hostname takes the form + // The bucket name containing the objects to delete. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use virtual-hosted-style requests in the format + // Bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests are not + // supported. Directory bucket names must be unique in the chosen Availability + // Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for + // example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 ). For information about bucket + // naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -138,28 +172,40 @@ type DeleteObjectsInput struct { // Specifies whether you want to delete this object even if it has a // Governance-type Object Lock in place. To use this header, you must have the - // s3:BypassGovernanceRetention permission. This functionality is not supported for - // directory buckets. + // s3:BypassGovernanceRetention permission. + // + // This functionality is not supported for directory buckets. BypassGovernanceRetention *bool // Indicates the algorithm used to create the checksum for the object when you use // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum-algorithm or x-amz-trailer header sent. Otherwise, Amazon S3 - // fails the request with the HTTP status code 400 Bad Request . For the - // x-amz-checksum-algorithm header, replace algorithm with the supported - // algorithm from the following list: + // fails the request with the HTTP status code 400 Bad Request . + // + // For the x-amz-checksum-algorithm header, replace algorithm with the + // supported algorithm from the following list: + // // - CRC32 + // // - CRC32C + // // - SHA1 + // // - SHA256 - // For more information, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If the individual checksum value you provide - // through x-amz-checksum-algorithm doesn't match the checksum algorithm you set - // through x-amz-sdk-checksum-algorithm , Amazon S3 ignores any provided - // ChecksumAlgorithm parameter and uses the checksum algorithm that matches the - // provided value in x-amz-checksum-algorithm . If you provide an individual - // checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter. + // + // For more information, see [Checking object integrity] in the Amazon S3 User Guide. + // + // If the individual checksum value you provide through x-amz-checksum-algorithm + // doesn't match the checksum algorithm you set through + // x-amz-sdk-checksum-algorithm , Amazon S3 ignores any provided ChecksumAlgorithm + // parameter and uses the checksum algorithm that matches the provided value in + // x-amz-checksum-algorithm . + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // The account ID of the expected bucket owner. If the account ID that you provide @@ -170,25 +216,31 @@ type DeleteObjectsInput struct { // The concatenation of the authentication device's serial number, a space, and // the value that is displayed on your authentication device. Required to // permanently delete a versioned object if versioning is configured with MFA - // delete enabled. When performing the DeleteObjects operation on an MFA delete - // enabled bucket, which attempts to delete the specified versioned objects, you - // must include an MFA token. If you don't provide an MFA token, the entire request - // will fail, even if there are non-versioned objects that you are trying to - // delete. If you provide an invalid token, whether there are versioned object keys - // in the request or not, the entire Multi-Object Delete request will fail. For - // information about MFA Delete, see MFA Delete (https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // delete enabled. + // + // When performing the DeleteObjects operation on an MFA delete enabled bucket, + // which attempts to delete the specified versioned objects, you must include an + // MFA token. If you don't provide an MFA token, the entire request will fail, even + // if there are non-versioned objects that you are trying to delete. If you provide + // an invalid token, whether there are versioned object keys in the request or not, + // the entire Multi-Object Delete request will fail. For information about MFA + // Delete, see [MFA Delete]in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. + // + // [MFA Delete]: https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete MFA *string // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer noSmithyDocumentSerde @@ -210,7 +262,9 @@ type DeleteObjectsOutput struct { Errors []types.Error // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeletePublicAccessBlock.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeletePublicAccessBlock.go index 43969e2b..2e77386c 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeletePublicAccessBlock.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_DeletePublicAccessBlock.go @@ -13,17 +13,28 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Removes the -// PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, -// you must have the s3:PutBucketPublicAccessBlock permission. For more -// information about permissions, see Permissions Related to Bucket Subresource -// Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . The following operations are related to DeletePublicAccessBlock : -// - Using Amazon S3 Block Public Access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) -// - GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) -// - PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) -// - GetBucketPolicyStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html) +// This operation is not supported by directory buckets. +// +// Removes the PublicAccessBlock configuration for an Amazon S3 bucket. To use +// this operation, you must have the s3:PutBucketPublicAccessBlock permission. For +// more information about permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to Your Amazon S3 Resources]. +// +// The following operations are related to DeletePublicAccessBlock : +// +// [Using Amazon S3 Block Public Access] +// +// [GetPublicAccessBlock] +// +// [PutPublicAccessBlock] +// +// [GetBucketPolicyStatus] +// +// [GetPublicAccessBlock]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html +// [PutPublicAccessBlock]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [Using Amazon S3 Block Public Access]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html +// [GetBucketPolicyStatus]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html func (c *Client) DeletePublicAccessBlock(ctx context.Context, params *DeletePublicAccessBlockInput, optFns ...func(*Options)) (*DeletePublicAccessBlockOutput, error) { if params == nil { params = &DeletePublicAccessBlockInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAccelerateConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAccelerateConfiguration.go index 4bb1ff71..be91d27b 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAccelerateConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAccelerateConfiguration.go @@ -14,26 +14,36 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. This implementation of -// the GET action uses the accelerate subresource to return the Transfer -// Acceleration state of a bucket, which is either Enabled or Suspended . Amazon S3 -// Transfer Acceleration is a bucket-level feature that enables you to perform -// faster data transfers to and from Amazon S3. To use this operation, you must -// have permission to perform the s3:GetAccelerateConfiguration action. The bucket -// owner has this permission by default. The bucket owner can grant this permission -// to others. For more information about permissions, see Permissions Related to -// Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// in the Amazon S3 User Guide. You set the Transfer Acceleration state of an -// existing bucket to Enabled or Suspended by using the -// PutBucketAccelerateConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html) -// operation. A GET accelerate request does not return a state value for a bucket -// that has no transfer acceleration state. A bucket has no Transfer Acceleration -// state if a state has never been set on the bucket. For more information about -// transfer acceleration, see Transfer Acceleration (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) -// in the Amazon S3 User Guide. The following operations are related to -// GetBucketAccelerateConfiguration : -// - PutBucketAccelerateConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html) +// This operation is not supported by directory buckets. +// +// This implementation of the GET action uses the accelerate subresource to return +// the Transfer Acceleration state of a bucket, which is either Enabled or +// Suspended . Amazon S3 Transfer Acceleration is a bucket-level feature that +// enables you to perform faster data transfers to and from Amazon S3. +// +// To use this operation, you must have permission to perform the +// s3:GetAccelerateConfiguration action. The bucket owner has this permission by +// default. The bucket owner can grant this permission to others. For more +// information about permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to your Amazon S3 Resources] in the Amazon S3 User Guide. +// +// You set the Transfer Acceleration state of an existing bucket to Enabled or +// Suspended by using the [PutBucketAccelerateConfiguration] operation. +// +// A GET accelerate request does not return a state value for a bucket that has no +// transfer acceleration state. A bucket has no Transfer Acceleration state if a +// state has never been set on the bucket. +// +// For more information about transfer acceleration, see [Transfer Acceleration] in the Amazon S3 User +// Guide. +// +// The following operations are related to GetBucketAccelerateConfiguration : +// +// [PutBucketAccelerateConfiguration] +// +// [PutBucketAccelerateConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [Managing Access Permissions to your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html +// [Transfer Acceleration]: https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html func (c *Client) GetBucketAccelerateConfiguration(ctx context.Context, params *GetBucketAccelerateConfigurationInput, optFns ...func(*Options)) (*GetBucketAccelerateConfigurationOutput, error) { if params == nil { params = &GetBucketAccelerateConfigurationInput{} @@ -65,10 +75,12 @@ type GetBucketAccelerateConfigurationInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer noSmithyDocumentSerde @@ -82,7 +94,9 @@ func (in *GetBucketAccelerateConfigurationInput) bindEndpointParams(p *EndpointP type GetBucketAccelerateConfigurationOutput struct { // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // The accelerate configuration of the bucket. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAcl.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAcl.go index bc7c4ea1..06e4ad39 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAcl.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAcl.go @@ -14,26 +14,35 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. This implementation of -// the GET action uses the acl subresource to return the access control list (ACL) -// of a bucket. To use GET to return the ACL of the bucket, you must have the -// READ_ACP access to the bucket. If READ_ACP permission is granted to the -// anonymous user, you can return the ACL of the bucket without using an -// authorization header. When you use this API operation with an access point, -// provide the alias of the access point in place of the bucket name. When you use -// this API operation with an Object Lambda access point, provide the alias of the -// Object Lambda access point in place of the bucket name. If the Object Lambda -// access point alias in a request is not valid, the error code +// This operation is not supported by directory buckets. +// +// This implementation of the GET action uses the acl subresource to return the +// access control list (ACL) of a bucket. To use GET to return the ACL of the +// bucket, you must have the READ_ACP access to the bucket. If READ_ACP permission +// is granted to the anonymous user, you can return the ACL of the bucket without +// using an authorization header. +// +// When you use this API operation with an access point, provide the alias of the +// access point in place of the bucket name. +// +// When you use this API operation with an Object Lambda access point, provide the +// alias of the Object Lambda access point in place of the bucket name. If the +// Object Lambda access point alias in a request is not valid, the error code // InvalidAccessPointAliasError is returned. For more information about -// InvalidAccessPointAliasError , see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList) -// . If your bucket uses the bucket owner enforced setting for S3 Object Ownership, +// InvalidAccessPointAliasError , see [List of Error Codes]. +// +// If your bucket uses the bucket owner enforced setting for S3 Object Ownership, // requests to read ACLs are still supported and return the // bucket-owner-full-control ACL with the owner being the account that created the -// bucket. For more information, see Controlling object ownership and disabling -// ACLs (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) -// in the Amazon S3 User Guide. The following operations are related to -// GetBucketAcl : -// - ListObjects (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) +// bucket. For more information, see [Controlling object ownership and disabling ACLs]in the Amazon S3 User Guide. +// +// The following operations are related to GetBucketAcl : +// +// [ListObjects] +// +// [ListObjects]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html +// [List of Error Codes]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList +// [Controlling object ownership and disabling ACLs]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html func (c *Client) GetBucketAcl(ctx context.Context, params *GetBucketAclInput, optFns ...func(*Options)) (*GetBucketAclOutput, error) { if params == nil { params = &GetBucketAclInput{} @@ -51,14 +60,18 @@ func (c *Client) GetBucketAcl(ctx context.Context, params *GetBucketAclInput, op type GetBucketAclInput struct { - // Specifies the S3 bucket whose ACL is being requested. When you use this API - // operation with an access point, provide the alias of the access point in place - // of the bucket name. When you use this API operation with an Object Lambda access - // point, provide the alias of the Object Lambda access point in place of the - // bucket name. If the Object Lambda access point alias in a request is not valid, - // the error code InvalidAccessPointAliasError is returned. For more information - // about InvalidAccessPointAliasError , see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList) - // . + // Specifies the S3 bucket whose ACL is being requested. + // + // When you use this API operation with an access point, provide the alias of the + // access point in place of the bucket name. + // + // When you use this API operation with an Object Lambda access point, provide the + // alias of the Object Lambda access point in place of the bucket name. If the + // Object Lambda access point alias in a request is not valid, the error code + // InvalidAccessPointAliasError is returned. For more information about + // InvalidAccessPointAliasError , see [List of Error Codes]. + // + // [List of Error Codes]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList // // This member is required. Bucket *string diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAnalyticsConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAnalyticsConfiguration.go index 64e41d40..6f52c815 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAnalyticsConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketAnalyticsConfiguration.go @@ -14,21 +14,33 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. This implementation of -// the GET action returns an analytics configuration (identified by the analytics -// configuration ID) from the bucket. To use this operation, you must have -// permissions to perform the s3:GetAnalyticsConfiguration action. The bucket -// owner has this permission by default. The bucket owner can grant this permission -// to others. For more information about permissions, see Permissions Related to -// Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// in the Amazon S3 User Guide. For information about Amazon S3 analytics feature, -// see Amazon S3 Analytics – Storage Class Analysis (https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html) -// in the Amazon S3 User Guide. The following operations are related to -// GetBucketAnalyticsConfiguration : -// - DeleteBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html) -// - ListBucketAnalyticsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html) -// - PutBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html) +// This operation is not supported by directory buckets. +// +// This implementation of the GET action returns an analytics configuration +// (identified by the analytics configuration ID) from the bucket. +// +// To use this operation, you must have permissions to perform the +// s3:GetAnalyticsConfiguration action. The bucket owner has this permission by +// default. The bucket owner can grant this permission to others. For more +// information about permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to Your Amazon S3 Resources] in the Amazon S3 User Guide. +// +// For information about Amazon S3 analytics feature, see [Amazon S3 Analytics – Storage Class Analysis] in the Amazon S3 User +// Guide. +// +// The following operations are related to GetBucketAnalyticsConfiguration : +// +// [DeleteBucketAnalyticsConfiguration] +// +// [ListBucketAnalyticsConfigurations] +// +// [PutBucketAnalyticsConfiguration] +// +// [Amazon S3 Analytics – Storage Class Analysis]: https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html +// [DeleteBucketAnalyticsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [ListBucketAnalyticsConfigurations]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html +// [PutBucketAnalyticsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html func (c *Client) GetBucketAnalyticsConfiguration(ctx context.Context, params *GetBucketAnalyticsConfigurationInput, optFns ...func(*Options)) (*GetBucketAnalyticsConfigurationOutput, error) { if params == nil { params = &GetBucketAnalyticsConfigurationInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketCors.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketCors.go index 0997225e..d5db578e 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketCors.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketCors.go @@ -14,21 +14,36 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Returns the Cross-Origin -// Resource Sharing (CORS) configuration information set for the bucket. To use -// this operation, you must have permission to perform the s3:GetBucketCORS +// This operation is not supported by directory buckets. +// +// Returns the Cross-Origin Resource Sharing (CORS) configuration information set +// for the bucket. +// +// To use this operation, you must have permission to perform the s3:GetBucketCORS // action. By default, the bucket owner has this permission and can grant it to -// others. When you use this API operation with an access point, provide the alias -// of the access point in place of the bucket name. When you use this API operation -// with an Object Lambda access point, provide the alias of the Object Lambda -// access point in place of the bucket name. If the Object Lambda access point -// alias in a request is not valid, the error code InvalidAccessPointAliasError is -// returned. For more information about InvalidAccessPointAliasError , see List of -// Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList) -// . For more information about CORS, see Enabling Cross-Origin Resource Sharing (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) -// . The following operations are related to GetBucketCors : -// - PutBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html) -// - DeleteBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html) +// others. +// +// When you use this API operation with an access point, provide the alias of the +// access point in place of the bucket name. +// +// When you use this API operation with an Object Lambda access point, provide the +// alias of the Object Lambda access point in place of the bucket name. If the +// Object Lambda access point alias in a request is not valid, the error code +// InvalidAccessPointAliasError is returned. For more information about +// InvalidAccessPointAliasError , see [List of Error Codes]. +// +// For more information about CORS, see [Enabling Cross-Origin Resource Sharing]. +// +// The following operations are related to GetBucketCors : +// +// [PutBucketCors] +// +// [DeleteBucketCors] +// +// [PutBucketCors]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html +// [Enabling Cross-Origin Resource Sharing]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html +// [List of Error Codes]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList +// [DeleteBucketCors]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html func (c *Client) GetBucketCors(ctx context.Context, params *GetBucketCorsInput, optFns ...func(*Options)) (*GetBucketCorsOutput, error) { if params == nil { params = &GetBucketCorsInput{} @@ -46,14 +61,18 @@ func (c *Client) GetBucketCors(ctx context.Context, params *GetBucketCorsInput, type GetBucketCorsInput struct { - // The bucket name for which to get the cors configuration. When you use this API - // operation with an access point, provide the alias of the access point in place - // of the bucket name. When you use this API operation with an Object Lambda access - // point, provide the alias of the Object Lambda access point in place of the - // bucket name. If the Object Lambda access point alias in a request is not valid, - // the error code InvalidAccessPointAliasError is returned. For more information - // about InvalidAccessPointAliasError , see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList) - // . + // The bucket name for which to get the cors configuration. + // + // When you use this API operation with an access point, provide the alias of the + // access point in place of the bucket name. + // + // When you use this API operation with an Object Lambda access point, provide the + // alias of the Object Lambda access point in place of the bucket name. If the + // Object Lambda access point alias in a request is not valid, the error code + // InvalidAccessPointAliasError is returned. For more information about + // InvalidAccessPointAliasError , see [List of Error Codes]. + // + // [List of Error Codes]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList // // This member is required. Bucket *string diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketEncryption.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketEncryption.go index 22c1f9bb..7e8d251e 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketEncryption.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketEncryption.go @@ -14,20 +14,29 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Returns the default -// encryption configuration for an Amazon S3 bucket. By default, all buckets have a -// default encryption configuration that uses server-side encryption with Amazon S3 -// managed keys (SSE-S3). For information about the bucket default encryption -// feature, see Amazon S3 Bucket Default Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) -// in the Amazon S3 User Guide. To use this operation, you must have permission to -// perform the s3:GetEncryptionConfiguration action. The bucket owner has this -// permission by default. The bucket owner can grant this permission to others. For -// more information about permissions, see Permissions Related to Bucket -// Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . The following operations are related to GetBucketEncryption : -// - PutBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) -// - DeleteBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html) +// This operation is not supported by directory buckets. +// +// Returns the default encryption configuration for an Amazon S3 bucket. By +// default, all buckets have a default encryption configuration that uses +// server-side encryption with Amazon S3 managed keys (SSE-S3). For information +// about the bucket default encryption feature, see [Amazon S3 Bucket Default Encryption]in the Amazon S3 User Guide. +// +// To use this operation, you must have permission to perform the +// s3:GetEncryptionConfiguration action. The bucket owner has this permission by +// default. The bucket owner can grant this permission to others. For more +// information about permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to Your Amazon S3 Resources]. +// +// The following operations are related to GetBucketEncryption : +// +// [PutBucketEncryption] +// +// [DeleteBucketEncryption] +// +// [DeleteBucketEncryption]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html +// [PutBucketEncryption]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [Amazon S3 Bucket Default Encryption]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html func (c *Client) GetBucketEncryption(ctx context.Context, params *GetBucketEncryptionInput, optFns ...func(*Options)) (*GetBucketEncryptionOutput, error) { if params == nil { params = &GetBucketEncryptionInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketIntelligentTieringConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketIntelligentTieringConfiguration.go index f3ae88a9..97f54f34 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketIntelligentTieringConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketIntelligentTieringConfiguration.go @@ -14,25 +14,38 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Gets the S3 -// Intelligent-Tiering configuration from the specified bucket. The S3 -// Intelligent-Tiering storage class is designed to optimize storage costs by -// automatically moving data to the most cost-effective storage access tier, +// This operation is not supported by directory buckets. +// +// Gets the S3 Intelligent-Tiering configuration from the specified bucket. +// +// The S3 Intelligent-Tiering storage class is designed to optimize storage costs +// by automatically moving data to the most cost-effective storage access tier, // without performance impact or operational overhead. S3 Intelligent-Tiering // delivers automatic cost savings in three low latency and high throughput access // tiers. To get the lowest storage cost on data that can be accessed in minutes to -// hours, you can choose to activate additional archiving capabilities. The S3 -// Intelligent-Tiering storage class is the ideal storage class for data with -// unknown, changing, or unpredictable access patterns, independent of object size -// or retention period. If the size of an object is less than 128 KB, it is not -// monitored and not eligible for auto-tiering. Smaller objects can be stored, but -// they are always charged at the Frequent Access tier rates in the S3 -// Intelligent-Tiering storage class. For more information, see Storage class for -// automatically optimizing frequently and infrequently accessed objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) -// . Operations related to GetBucketIntelligentTieringConfiguration include: -// - DeleteBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) -// - PutBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html) -// - ListBucketIntelligentTieringConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html) +// hours, you can choose to activate additional archiving capabilities. +// +// The S3 Intelligent-Tiering storage class is the ideal storage class for data +// with unknown, changing, or unpredictable access patterns, independent of object +// size or retention period. If the size of an object is less than 128 KB, it is +// not monitored and not eligible for auto-tiering. Smaller objects can be stored, +// but they are always charged at the Frequent Access tier rates in the S3 +// Intelligent-Tiering storage class. +// +// For more information, see [Storage class for automatically optimizing frequently and infrequently accessed objects]. +// +// Operations related to GetBucketIntelligentTieringConfiguration include: +// +// [DeleteBucketIntelligentTieringConfiguration] +// +// [PutBucketIntelligentTieringConfiguration] +// +// [ListBucketIntelligentTieringConfigurations] +// +// [ListBucketIntelligentTieringConfigurations]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html +// [PutBucketIntelligentTieringConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html +// [Storage class for automatically optimizing frequently and infrequently accessed objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access +// [DeleteBucketIntelligentTieringConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html func (c *Client) GetBucketIntelligentTieringConfiguration(ctx context.Context, params *GetBucketIntelligentTieringConfigurationInput, optFns ...func(*Options)) (*GetBucketIntelligentTieringConfigurationOutput, error) { if params == nil { params = &GetBucketIntelligentTieringConfigurationInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketInventoryConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketInventoryConfiguration.go index 123218e9..48d361e1 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketInventoryConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketInventoryConfiguration.go @@ -14,18 +14,32 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Returns an inventory -// configuration (identified by the inventory configuration ID) from the bucket. To -// use this operation, you must have permissions to perform the +// This operation is not supported by directory buckets. +// +// Returns an inventory configuration (identified by the inventory configuration +// ID) from the bucket. +// +// To use this operation, you must have permissions to perform the // s3:GetInventoryConfiguration action. The bucket owner has this permission by // default and can grant this permission to others. For more information about -// permissions, see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . For information about the Amazon S3 inventory feature, see Amazon S3 Inventory (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html) -// . The following operations are related to GetBucketInventoryConfiguration : -// - DeleteBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html) -// - ListBucketInventoryConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html) -// - PutBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html) +// permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to Your Amazon S3 Resources]. +// +// For information about the Amazon S3 inventory feature, see [Amazon S3 Inventory]. +// +// The following operations are related to GetBucketInventoryConfiguration : +// +// [DeleteBucketInventoryConfiguration] +// +// [ListBucketInventoryConfigurations] +// +// [PutBucketInventoryConfiguration] +// +// [Amazon S3 Inventory]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html +// [ListBucketInventoryConfigurations]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [DeleteBucketInventoryConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html +// [PutBucketInventoryConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html func (c *Client) GetBucketInventoryConfiguration(ctx context.Context, params *GetBucketInventoryConfigurationInput, optFns ...func(*Options)) (*GetBucketInventoryConfigurationOutput, error) { if params == nil { params = &GetBucketInventoryConfigurationInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLifecycleConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLifecycleConfiguration.go index ddcbbe09..f4590e59 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLifecycleConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLifecycleConfiguration.go @@ -14,35 +14,51 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Bucket lifecycle -// configuration now supports specifying a lifecycle rule using an object key name -// prefix, one or more object tags, object size, or any combination of these. -// Accordingly, this section describes the latest API. The previous version of the -// API supported filtering based only on an object key name prefix, which is -// supported for backward compatibility. For the related API description, see -// GetBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html) -// . Accordingly, this section describes the latest API. The response describes the -// new filter element that you can use to specify a filter to select a subset of -// objects to which the rule applies. If you are using a previous version of the -// lifecycle configuration, it still works. For the earlier action, Returns the -// lifecycle configuration information set on the bucket. For information about -// lifecycle configuration, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) -// . To use this operation, you must have permission to perform the +// This operation is not supported by directory buckets. +// +// Bucket lifecycle configuration now supports specifying a lifecycle rule using +// an object key name prefix, one or more object tags, object size, or any +// combination of these. Accordingly, this section describes the latest API. The +// previous version of the API supported filtering based only on an object key name +// prefix, which is supported for backward compatibility. For the related API +// description, see [GetBucketLifecycle]. Accordingly, this section describes the latest API. The +// response describes the new filter element that you can use to specify a filter +// to select a subset of objects to which the rule applies. If you are using a +// previous version of the lifecycle configuration, it still works. For the earlier +// action, +// +// Returns the lifecycle configuration information set on the bucket. For +// information about lifecycle configuration, see [Object Lifecycle Management]. +// +// To use this operation, you must have permission to perform the // s3:GetLifecycleConfiguration action. The bucket owner has this permission, by // default. The bucket owner can grant this permission to others. For more -// information about permissions, see Permissions Related to Bucket Subresource -// Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . GetBucketLifecycleConfiguration has the following special error: +// information about permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to Your Amazon S3 Resources]. +// +// GetBucketLifecycleConfiguration has the following special error: +// // - Error code: NoSuchLifecycleConfiguration +// // - Description: The lifecycle configuration does not exist. +// // - HTTP Status Code: 404 Not Found +// // - SOAP Fault Code Prefix: Client // // The following operations are related to GetBucketLifecycleConfiguration : -// - GetBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html) -// - PutBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html) -// - DeleteBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html) +// +// [GetBucketLifecycle] +// +// [PutBucketLifecycle] +// +// [DeleteBucketLifecycle] +// +// [GetBucketLifecycle]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html +// [Object Lifecycle Management]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [PutBucketLifecycle]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html +// [DeleteBucketLifecycle]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html func (c *Client) GetBucketLifecycleConfiguration(ctx context.Context, params *GetBucketLifecycleConfigurationInput, optFns ...func(*Options)) (*GetBucketLifecycleConfigurationOutput, error) { if params == nil { params = &GetBucketLifecycleConfigurationInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLocation.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLocation.go index aff5f3cd..a6b362cb 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLocation.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLocation.go @@ -20,23 +20,34 @@ import ( "io" ) -// This operation is not supported by directory buckets. Returns the Region the -// bucket resides in. You set the bucket's Region using the LocationConstraint -// request parameter in a CreateBucket request. For more information, see -// CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) -// . When you use this API operation with an access point, provide the alias of the -// access point in place of the bucket name. When you use this API operation with -// an Object Lambda access point, provide the alias of the Object Lambda access -// point in place of the bucket name. If the Object Lambda access point alias in a -// request is not valid, the error code InvalidAccessPointAliasError is returned. -// For more information about InvalidAccessPointAliasError , see List of Error -// Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList) -// . We recommend that you use HeadBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html) -// to return the Region that a bucket resides in. For backward compatibility, -// Amazon S3 continues to support GetBucketLocation. The following operations are -// related to GetBucketLocation : -// - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) -// - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) +// This operation is not supported by directory buckets. +// +// Returns the Region the bucket resides in. You set the bucket's Region using the +// LocationConstraint request parameter in a CreateBucket request. For more +// information, see [CreateBucket]. +// +// When you use this API operation with an access point, provide the alias of the +// access point in place of the bucket name. +// +// When you use this API operation with an Object Lambda access point, provide the +// alias of the Object Lambda access point in place of the bucket name. If the +// Object Lambda access point alias in a request is not valid, the error code +// InvalidAccessPointAliasError is returned. For more information about +// InvalidAccessPointAliasError , see [List of Error Codes]. +// +// We recommend that you use [HeadBucket] to return the Region that a bucket resides in. For +// backward compatibility, Amazon S3 continues to support GetBucketLocation. +// +// The following operations are related to GetBucketLocation : +// +// [GetObject] +// +// [CreateBucket] +// +// [List of Error Codes]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList +// [CreateBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html +// [GetObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html +// [HeadBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html func (c *Client) GetBucketLocation(ctx context.Context, params *GetBucketLocationInput, optFns ...func(*Options)) (*GetBucketLocationOutput, error) { if params == nil { params = &GetBucketLocationInput{} @@ -54,14 +65,18 @@ func (c *Client) GetBucketLocation(ctx context.Context, params *GetBucketLocatio type GetBucketLocationInput struct { - // The name of the bucket for which to get the location. When you use this API - // operation with an access point, provide the alias of the access point in place - // of the bucket name. When you use this API operation with an Object Lambda access - // point, provide the alias of the Object Lambda access point in place of the - // bucket name. If the Object Lambda access point alias in a request is not valid, - // the error code InvalidAccessPointAliasError is returned. For more information - // about InvalidAccessPointAliasError , see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList) - // . + // The name of the bucket for which to get the location. + // + // When you use this API operation with an access point, provide the alias of the + // access point in place of the bucket name. + // + // When you use this API operation with an Object Lambda access point, provide the + // alias of the Object Lambda access point in place of the bucket name. If the + // Object Lambda access point alias in a request is not valid, the error code + // InvalidAccessPointAliasError is returned. For more information about + // InvalidAccessPointAliasError , see [List of Error Codes]. + // + // [List of Error Codes]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList // // This member is required. Bucket *string @@ -82,8 +97,10 @@ func (in *GetBucketLocationInput) bindEndpointParams(p *EndpointParameters) { type GetBucketLocationOutput struct { // Specifies the Region where the bucket resides. For a list of all the Amazon S3 - // supported location constraints by Region, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) - // . Buckets in Region us-east-1 have a LocationConstraint of null . + // supported location constraints by Region, see [Regions and Endpoints]. Buckets in Region us-east-1 + // have a LocationConstraint of null . + // + // [Regions and Endpoints]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region LocationConstraint types.BucketLocationConstraint // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLogging.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLogging.go index d1c4f8fb..ae6bcbe6 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLogging.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketLogging.go @@ -14,11 +14,19 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Returns the logging -// status of a bucket and the permissions users have to view and modify that -// status. The following operations are related to GetBucketLogging : -// - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) -// - PutBucketLogging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html) +// This operation is not supported by directory buckets. +// +// Returns the logging status of a bucket and the permissions users have to view +// and modify that status. +// +// The following operations are related to GetBucketLogging : +// +// [CreateBucket] +// +// [PutBucketLogging] +// +// [PutBucketLogging]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html +// [CreateBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html func (c *Client) GetBucketLogging(ctx context.Context, params *GetBucketLoggingInput, optFns ...func(*Options)) (*GetBucketLoggingOutput, error) { if params == nil { params = &GetBucketLoggingInput{} @@ -57,8 +65,10 @@ func (in *GetBucketLoggingInput) bindEndpointParams(p *EndpointParameters) { type GetBucketLoggingOutput struct { // Describes where logs are stored and the prefix that Amazon S3 assigns to all - // log object keys for a bucket. For more information, see PUT Bucket logging (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) - // in the Amazon S3 API Reference. + // log object keys for a bucket. For more information, see [PUT Bucket logging]in the Amazon S3 API + // Reference. + // + // [PUT Bucket logging]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html LoggingEnabled *types.LoggingEnabled // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketMetricsConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketMetricsConfiguration.go index d7499c68..474eba52 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketMetricsConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketMetricsConfiguration.go @@ -14,21 +14,34 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Gets a metrics -// configuration (specified by the metrics configuration ID) from the bucket. Note -// that this doesn't include the daily storage metrics. To use this operation, you -// must have permissions to perform the s3:GetMetricsConfiguration action. The -// bucket owner has this permission by default. The bucket owner can grant this -// permission to others. For more information about permissions, see Permissions -// Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . For information about CloudWatch request metrics for Amazon S3, see -// Monitoring Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html) -// . The following operations are related to GetBucketMetricsConfiguration : -// - PutBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) -// - DeleteBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html) -// - ListBucketMetricsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html) -// - Monitoring Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html) +// This operation is not supported by directory buckets. +// +// Gets a metrics configuration (specified by the metrics configuration ID) from +// the bucket. Note that this doesn't include the daily storage metrics. +// +// To use this operation, you must have permissions to perform the +// s3:GetMetricsConfiguration action. The bucket owner has this permission by +// default. The bucket owner can grant this permission to others. For more +// information about permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to Your Amazon S3 Resources]. +// +// For information about CloudWatch request metrics for Amazon S3, see [Monitoring Metrics with Amazon CloudWatch]. +// +// The following operations are related to GetBucketMetricsConfiguration : +// +// [PutBucketMetricsConfiguration] +// +// [DeleteBucketMetricsConfiguration] +// +// [ListBucketMetricsConfigurations] +// +// [Monitoring Metrics with Amazon CloudWatch] +// +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [Monitoring Metrics with Amazon CloudWatch]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html +// [ListBucketMetricsConfigurations]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html +// [PutBucketMetricsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html +// [DeleteBucketMetricsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html func (c *Client) GetBucketMetricsConfiguration(ctx context.Context, params *GetBucketMetricsConfigurationInput, optFns ...func(*Options)) (*GetBucketMetricsConfigurationOutput, error) { if params == nil { params = &GetBucketMetricsConfigurationInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketNotificationConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketNotificationConfiguration.go index 73155110..81c0d815 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketNotificationConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketNotificationConfiguration.go @@ -14,24 +14,38 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Returns the notification -// configuration of a bucket. If notifications are not enabled on the bucket, the -// action returns an empty NotificationConfiguration element. By default, you must -// be the bucket owner to read the notification configuration of a bucket. However, -// the bucket owner can use a bucket policy to grant permission to other users to -// read this configuration with the s3:GetBucketNotification permission. When you -// use this API operation with an access point, provide the alias of the access -// point in place of the bucket name. When you use this API operation with an -// Object Lambda access point, provide the alias of the Object Lambda access point -// in place of the bucket name. If the Object Lambda access point alias in a -// request is not valid, the error code InvalidAccessPointAliasError is returned. -// For more information about InvalidAccessPointAliasError , see List of Error -// Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList) -// . For more information about setting and reading the notification configuration -// on a bucket, see Setting Up Notification of Bucket Events (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) -// . For more information about bucket policies, see Using Bucket Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) -// . The following action is related to GetBucketNotification : -// - PutBucketNotification (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html) +// This operation is not supported by directory buckets. +// +// Returns the notification configuration of a bucket. +// +// If notifications are not enabled on the bucket, the action returns an empty +// NotificationConfiguration element. +// +// By default, you must be the bucket owner to read the notification configuration +// of a bucket. However, the bucket owner can use a bucket policy to grant +// permission to other users to read this configuration with the +// s3:GetBucketNotification permission. +// +// When you use this API operation with an access point, provide the alias of the +// access point in place of the bucket name. +// +// When you use this API operation with an Object Lambda access point, provide the +// alias of the Object Lambda access point in place of the bucket name. If the +// Object Lambda access point alias in a request is not valid, the error code +// InvalidAccessPointAliasError is returned. For more information about +// InvalidAccessPointAliasError , see [List of Error Codes]. +// +// For more information about setting and reading the notification configuration +// on a bucket, see [Setting Up Notification of Bucket Events]. For more information about bucket policies, see [Using Bucket Policies]. +// +// The following action is related to GetBucketNotification : +// +// [PutBucketNotification] +// +// [Using Bucket Policies]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html +// [Setting Up Notification of Bucket Events]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html +// [List of Error Codes]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList +// [PutBucketNotification]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html func (c *Client) GetBucketNotificationConfiguration(ctx context.Context, params *GetBucketNotificationConfigurationInput, optFns ...func(*Options)) (*GetBucketNotificationConfigurationOutput, error) { if params == nil { params = &GetBucketNotificationConfigurationInput{} @@ -49,15 +63,18 @@ func (c *Client) GetBucketNotificationConfiguration(ctx context.Context, params type GetBucketNotificationConfigurationInput struct { - // The name of the bucket for which to get the notification configuration. When - // you use this API operation with an access point, provide the alias of the access - // point in place of the bucket name. When you use this API operation with an - // Object Lambda access point, provide the alias of the Object Lambda access point - // in place of the bucket name. If the Object Lambda access point alias in a - // request is not valid, the error code InvalidAccessPointAliasError is returned. - // For more information about InvalidAccessPointAliasError , see List of Error - // Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList) - // . + // The name of the bucket for which to get the notification configuration. + // + // When you use this API operation with an access point, provide the alias of the + // access point in place of the bucket name. + // + // When you use this API operation with an Object Lambda access point, provide the + // alias of the Object Lambda access point in place of the bucket name. If the + // Object Lambda access point alias in a request is not valid, the error code + // InvalidAccessPointAliasError is returned. For more information about + // InvalidAccessPointAliasError , see [List of Error Codes]. + // + // [List of Error Codes]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList // // This member is required. Bucket *string diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketOwnershipControls.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketOwnershipControls.go index cea15142..2b601e1b 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketOwnershipControls.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketOwnershipControls.go @@ -14,14 +14,22 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Retrieves -// OwnershipControls for an Amazon S3 bucket. To use this operation, you must have -// the s3:GetBucketOwnershipControls permission. For more information about Amazon -// S3 permissions, see Specifying permissions in a policy (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html) -// . For information about Amazon S3 Object Ownership, see Using Object Ownership (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) -// . The following operations are related to GetBucketOwnershipControls : -// - PutBucketOwnershipControls -// - DeleteBucketOwnershipControls +// This operation is not supported by directory buckets. +// +// Retrieves OwnershipControls for an Amazon S3 bucket. To use this operation, you +// must have the s3:GetBucketOwnershipControls permission. For more information +// about Amazon S3 permissions, see [Specifying permissions in a policy]. +// +// For information about Amazon S3 Object Ownership, see [Using Object Ownership]. +// +// The following operations are related to GetBucketOwnershipControls : +// +// # PutBucketOwnershipControls +// +// # DeleteBucketOwnershipControls +// +// [Using Object Ownership]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html +// [Specifying permissions in a policy]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html func (c *Client) GetBucketOwnershipControls(ctx context.Context, params *GetBucketOwnershipControlsInput, optFns ...func(*Options)) (*GetBucketOwnershipControlsOutput, error) { if params == nil { params = &GetBucketOwnershipControlsInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketPolicy.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketPolicy.go index c2f98f93..29934518 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketPolicy.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketPolicy.go @@ -13,47 +13,61 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the policy of a specified bucket. Directory buckets - For directory -// buckets, you must make requests for this API operation to the Regional endpoint. -// These endpoints support path-style requests in the format -// https://s3express-control.region_code.amazonaws.com/bucket-name . -// Virtual-hosted-style requests aren't supported. For more information, see -// Regional and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. Permissions If you are using an identity other than -// the root user of the Amazon Web Services account that owns the bucket, the -// calling identity must both have the GetBucketPolicy permissions on the -// specified bucket and belong to the bucket owner's account in order to use this -// operation. If you don't have GetBucketPolicy permissions, Amazon S3 returns a -// 403 Access Denied error. If you have the correct permissions, but you're not -// using an identity that belongs to the bucket owner's account, Amazon S3 returns -// a 405 Method Not Allowed error. To ensure that bucket owners don't -// inadvertently lock themselves out of their own buckets, the root principal in a -// bucket owner's Amazon Web Services account can perform the GetBucketPolicy , -// PutBucketPolicy , and DeleteBucketPolicy API actions, even if their bucket -// policy explicitly denies the root principal's access. Bucket owner root -// principals can only be blocked from performing these API actions by VPC endpoint -// policies and Amazon Web Services Organizations policies. +// Returns the policy of a specified bucket. +// +// Directory buckets - For directory buckets, you must make requests for this API +// operation to the Regional endpoint. These endpoints support path-style requests +// in the format https://s3express-control.region_code.amazonaws.com/bucket-name . +// Virtual-hosted-style requests aren't supported. For more information, see [Regional and Zonal endpoints]in +// the Amazon S3 User Guide. +// +// Permissions If you are using an identity other than the root user of the Amazon +// Web Services account that owns the bucket, the calling identity must both have +// the GetBucketPolicy permissions on the specified bucket and belong to the +// bucket owner's account in order to use this operation. +// +// If you don't have GetBucketPolicy permissions, Amazon S3 returns a 403 Access +// Denied error. If you have the correct permissions, but you're not using an +// identity that belongs to the bucket owner's account, Amazon S3 returns a 405 +// Method Not Allowed error. +// +// To ensure that bucket owners don't inadvertently lock themselves out of their +// own buckets, the root principal in a bucket owner's Amazon Web Services account +// can perform the GetBucketPolicy , PutBucketPolicy , and DeleteBucketPolicy API +// actions, even if their bucket policy explicitly denies the root principal's +// access. Bucket owner root principals can only be blocked from performing these +// API actions by VPC endpoint policies and Amazon Web Services Organizations +// policies. +// // - General purpose bucket permissions - The s3:GetBucketPolicy permission is // required in a policy. For more information about general purpose buckets bucket -// policies, see Using Bucket Policies and User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) -// in the Amazon S3 User Guide. +// policies, see [Using Bucket Policies and User Policies]in the Amazon S3 User Guide. +// // - Directory bucket permissions - To grant access to this API operation, you // must have the s3express:GetBucketPolicy permission in an IAM identity-based // policy instead of a bucket policy. Cross-account access to this API operation // isn't supported. This operation can only be performed by the Amazon Web Services // account that owns the resource. For more information about directory bucket -// policies and permissions, see Amazon Web Services Identity and Access -// Management (IAM) for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) -// in the Amazon S3 User Guide. +// policies and permissions, see [Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone]in the Amazon S3 User Guide. +// +// Example bucket policies General purpose buckets example bucket policies - See [Bucket policy examples] +// in the Amazon S3 User Guide. +// +// Directory bucket example bucket policies - See [Example bucket policies for S3 Express One Zone] in the Amazon S3 User Guide. +// +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// s3express-control.region.amazonaws.com . // -// Example bucket policies General purpose buckets example bucket policies - See -// Bucket policy examples (https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) -// in the Amazon S3 User Guide. Directory bucket example bucket policies - See -// Example bucket policies for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) -// in the Amazon S3 User Guide. HTTP Host header syntax Directory buckets - The -// HTTP Host header syntax is s3express-control.region.amazonaws.com . The -// following action is related to GetBucketPolicy : -// - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) +// The following action is related to GetBucketPolicy : +// +// [GetObject] +// +// [Bucket policy examples]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html +// [Example bucket policies for S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [Using Bucket Policies and User Policies]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html +// [GetObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html +// [Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html func (c *Client) GetBucketPolicy(ctx context.Context, params *GetBucketPolicyInput, optFns ...func(*Options)) (*GetBucketPolicyOutput, error) { if params == nil { params = &GetBucketPolicyInput{} @@ -71,33 +85,42 @@ func (c *Client) GetBucketPolicy(ctx context.Context, params *GetBucketPolicyInp type GetBucketPolicyInput struct { - // The bucket name to get the bucket policy for. Directory buckets - When you use - // this operation with a directory bucket, you must use path-style requests in the - // format https://s3express-control.region_code.amazonaws.com/bucket-name . + // The bucket name to get the bucket policy for. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use path-style requests in the format + // https://s3express-control.region_code.amazonaws.com/bucket-name . // Virtual-hosted-style requests aren't supported. Directory bucket names must be // unique in the chosen Availability Zone. Bucket names must also follow the format // bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 - // ). For information about bucket naming restrictions, see Directory bucket - // naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide Access points - When you use this API operation with - // an access point, provide the alias of the access point in place of the bucket - // name. Object Lambda access points - When you use this API operation with an - // Object Lambda access point, provide the alias of the Object Lambda access point - // in place of the bucket name. If the Object Lambda access point alias in a - // request is not valid, the error code InvalidAccessPointAliasError is returned. - // For more information about InvalidAccessPointAliasError , see List of Error - // Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList) - // . Access points and Object Lambda access points are not supported by directory + // ). For information about bucket naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User + // Guide + // + // Access points - When you use this API operation with an access point, provide + // the alias of the access point in place of the bucket name. + // + // Object Lambda access points - When you use this API operation with an Object + // Lambda access point, provide the alias of the Object Lambda access point in + // place of the bucket name. If the Object Lambda access point alias in a request + // is not valid, the error code InvalidAccessPointAliasError is returned. For more + // information about InvalidAccessPointAliasError , see [List of Error Codes]. + // + // Access points and Object Lambda access points are not supported by directory // buckets. // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [List of Error Codes]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList + // // This member is required. Bucket *string // The account ID of the expected bucket owner. If the account ID that you provide // does not match the actual owner of the bucket, the request fails with the HTTP - // status code 403 Forbidden (access denied). For directory buckets, this header - // is not supported in this API operation. If you specify this header, the request - // fails with the HTTP status code 501 Not Implemented . + // status code 403 Forbidden (access denied). + // + // For directory buckets, this header is not supported in this API operation. If + // you specify this header, the request fails with the HTTP status code 501 Not + // Implemented . ExpectedBucketOwner *string noSmithyDocumentSerde diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketPolicyStatus.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketPolicyStatus.go index cb36ac50..52fa5be9 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketPolicyStatus.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketPolicyStatus.go @@ -14,18 +14,31 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Retrieves the policy -// status for an Amazon S3 bucket, indicating whether the bucket is public. In -// order to use this operation, you must have the s3:GetBucketPolicyStatus -// permission. For more information about Amazon S3 permissions, see Specifying -// Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) -// . For more information about when Amazon S3 considers a bucket public, see The -// Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) -// . The following operations are related to GetBucketPolicyStatus : -// - Using Amazon S3 Block Public Access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) -// - GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) -// - PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) -// - DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) +// This operation is not supported by directory buckets. +// +// Retrieves the policy status for an Amazon S3 bucket, indicating whether the +// bucket is public. In order to use this operation, you must have the +// s3:GetBucketPolicyStatus permission. For more information about Amazon S3 +// permissions, see [Specifying Permissions in a Policy]. +// +// For more information about when Amazon S3 considers a bucket public, see [The Meaning of "Public"]. +// +// The following operations are related to GetBucketPolicyStatus : +// +// [Using Amazon S3 Block Public Access] +// +// [GetPublicAccessBlock] +// +// [PutPublicAccessBlock] +// +// [DeletePublicAccessBlock] +// +// [GetPublicAccessBlock]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html +// [PutPublicAccessBlock]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html +// [DeletePublicAccessBlock]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html +// [Using Amazon S3 Block Public Access]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html +// [Specifying Permissions in a Policy]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html +// [The Meaning of "Public"]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status func (c *Client) GetBucketPolicyStatus(ctx context.Context, params *GetBucketPolicyStatusInput, optFns ...func(*Options)) (*GetBucketPolicyStatusOutput, error) { if params == nil { params = &GetBucketPolicyStatusInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketReplication.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketReplication.go index 7e44d38e..3edb1ec2 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketReplication.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketReplication.go @@ -14,21 +14,37 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Returns the replication -// configuration of a bucket. It can take a while to propagate the put or delete a -// replication configuration to all Amazon S3 systems. Therefore, a get request -// soon after put or delete can return a wrong result. For information about -// replication configuration, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) -// in the Amazon S3 User Guide. This action requires permissions for the -// s3:GetReplicationConfiguration action. For more information about permissions, -// see Using Bucket Policies and User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) -// . If you include the Filter element in a replication configuration, you must -// also include the DeleteMarkerReplication and Priority elements. The response -// also returns those elements. For information about GetBucketReplication errors, -// see List of replication-related error codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList) +// This operation is not supported by directory buckets. +// +// Returns the replication configuration of a bucket. +// +// It can take a while to propagate the put or delete a replication configuration +// to all Amazon S3 systems. Therefore, a get request soon after put or delete can +// return a wrong result. +// +// For information about replication configuration, see [Replication] in the Amazon S3 User +// Guide. +// +// This action requires permissions for the s3:GetReplicationConfiguration action. +// For more information about permissions, see [Using Bucket Policies and User Policies]. +// +// If you include the Filter element in a replication configuration, you must also +// include the DeleteMarkerReplication and Priority elements. The response also +// returns those elements. +// +// For information about GetBucketReplication errors, see [List of replication-related error codes] +// // The following operations are related to GetBucketReplication : -// - PutBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) -// - DeleteBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html) +// +// [PutBucketReplication] +// +// [DeleteBucketReplication] +// +// [PutBucketReplication]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html +// [Using Bucket Policies and User Policies]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html +// [Replication]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html +// [List of replication-related error codes]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList +// [DeleteBucketReplication]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html func (c *Client) GetBucketReplication(ctx context.Context, params *GetBucketReplicationInput, optFns ...func(*Options)) (*GetBucketReplicationOutput, error) { if params == nil { params = &GetBucketReplicationInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketRequestPayment.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketRequestPayment.go index 16cc5282..ac546ee0 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketRequestPayment.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketRequestPayment.go @@ -14,11 +14,17 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Returns the request -// payment configuration of a bucket. To use this version of the operation, you -// must be the bucket owner. For more information, see Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) -// . The following operations are related to GetBucketRequestPayment : -// - ListObjects (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) +// This operation is not supported by directory buckets. +// +// Returns the request payment configuration of a bucket. To use this version of +// the operation, you must be the bucket owner. For more information, see [Requester Pays Buckets]. +// +// The following operations are related to GetBucketRequestPayment : +// +// [ListObjects] +// +// [ListObjects]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html +// [Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html func (c *Client) GetBucketRequestPayment(ctx context.Context, params *GetBucketRequestPaymentInput, optFns ...func(*Options)) (*GetBucketRequestPaymentOutput, error) { if params == nil { params = &GetBucketRequestPaymentInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketTagging.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketTagging.go index 69a6e490..9dc66636 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketTagging.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketTagging.go @@ -14,17 +14,28 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Returns the tag set -// associated with the bucket. To use this operation, you must have permission to -// perform the s3:GetBucketTagging action. By default, the bucket owner has this -// permission and can grant this permission to others. GetBucketTagging has the -// following special error: +// This operation is not supported by directory buckets. +// +// Returns the tag set associated with the bucket. +// +// To use this operation, you must have permission to perform the +// s3:GetBucketTagging action. By default, the bucket owner has this permission and +// can grant this permission to others. +// +// GetBucketTagging has the following special error: +// // - Error code: NoSuchTagSet +// // - Description: There is no tag set associated with the bucket. // // The following operations are related to GetBucketTagging : -// - PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html) -// - DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html) +// +// [PutBucketTagging] +// +// [DeleteBucketTagging] +// +// [PutBucketTagging]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html +// [DeleteBucketTagging]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html func (c *Client) GetBucketTagging(ctx context.Context, params *GetBucketTaggingInput, optFns ...func(*Options)) (*GetBucketTaggingOutput, error) { if params == nil { params = &GetBucketTaggingInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketVersioning.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketVersioning.go index 10540b13..d4d7fa26 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketVersioning.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketVersioning.go @@ -14,15 +14,27 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Returns the versioning -// state of a bucket. To retrieve the versioning state of a bucket, you must be the -// bucket owner. This implementation also returns the MFA Delete status of the -// versioning state. If the MFA Delete status is enabled , the bucket owner must -// use an authentication device to change the versioning state of the bucket. The -// following operations are related to GetBucketVersioning : -// - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) -// - PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) -// - DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) +// This operation is not supported by directory buckets. +// +// Returns the versioning state of a bucket. +// +// To retrieve the versioning state of a bucket, you must be the bucket owner. +// +// This implementation also returns the MFA Delete status of the versioning state. +// If the MFA Delete status is enabled , the bucket owner must use an +// authentication device to change the versioning state of the bucket. +// +// The following operations are related to GetBucketVersioning : +// +// [GetObject] +// +// [PutObject] +// +// [DeleteObject] +// +// [DeleteObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html +// [PutObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html +// [GetObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html func (c *Client) GetBucketVersioning(ctx context.Context, params *GetBucketVersioningInput, optFns ...func(*Options)) (*GetBucketVersioningOutput, error) { if params == nil { params = &GetBucketVersioningInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketWebsite.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketWebsite.go index c87f6ff1..0cb80bd6 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketWebsite.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetBucketWebsite.go @@ -14,17 +14,26 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Returns the website -// configuration for a bucket. To host website on Amazon S3, you can configure a -// bucket as website by adding a website configuration. For more information about -// hosting websites, see Hosting Websites on Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) -// . This GET action requires the S3:GetBucketWebsite permission. By default, only +// This operation is not supported by directory buckets. +// +// Returns the website configuration for a bucket. To host website on Amazon S3, +// you can configure a bucket as website by adding a website configuration. For +// more information about hosting websites, see [Hosting Websites on Amazon S3]. +// +// This GET action requires the S3:GetBucketWebsite permission. By default, only // the bucket owner can read the bucket website configuration. However, bucket // owners can allow other users to read the website configuration by writing a -// bucket policy granting them the S3:GetBucketWebsite permission. The following -// operations are related to GetBucketWebsite : -// - DeleteBucketWebsite (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html) -// - PutBucketWebsite (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html) +// bucket policy granting them the S3:GetBucketWebsite permission. +// +// The following operations are related to GetBucketWebsite : +// +// [DeleteBucketWebsite] +// +// [PutBucketWebsite] +// +// [PutBucketWebsite]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html +// [Hosting Websites on Amazon S3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html +// [DeleteBucketWebsite]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html func (c *Client) GetBucketWebsite(ctx context.Context, params *GetBucketWebsiteInput, optFns ...func(*Options)) (*GetBucketWebsiteOutput, error) { if params == nil { params = &GetBucketWebsiteInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObject.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObject.go index a64f5964..4ca0b5b4 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObject.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObject.go @@ -16,100 +16,141 @@ import ( "time" ) -// Retrieves an object from Amazon S3. In the GetObject request, specify the full -// key name for the object. General purpose buckets - Both the virtual-hosted-style -// requests and the path-style requests are supported. For a virtual hosted-style -// request example, if you have the object photos/2006/February/sample.jpg , -// specify the object key name as /photos/2006/February/sample.jpg . For a -// path-style request example, if you have the object -// photos/2006/February/sample.jpg in the bucket named examplebucket , specify the -// object key name as /examplebucket/photos/2006/February/sample.jpg . For more -// information about request types, see HTTP Host Header Bucket Specification (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket) -// in the Amazon S3 User Guide. Directory buckets - Only virtual-hosted-style -// requests are supported. For a virtual hosted-style request example, if you have -// the object photos/2006/February/sample.jpg in the bucket named +// Retrieves an object from Amazon S3. +// +// In the GetObject request, specify the full key name for the object. +// +// General purpose buckets - Both the virtual-hosted-style requests and the +// path-style requests are supported. For a virtual hosted-style request example, +// if you have the object photos/2006/February/sample.jpg , specify the object key +// name as /photos/2006/February/sample.jpg . For a path-style request example, if +// you have the object photos/2006/February/sample.jpg in the bucket named +// examplebucket , specify the object key name as +// /examplebucket/photos/2006/February/sample.jpg . For more information about +// request types, see [HTTP Host Header Bucket Specification]in the Amazon S3 User Guide. +// +// Directory buckets - Only virtual-hosted-style requests are supported. For a +// virtual hosted-style request example, if you have the object +// photos/2006/February/sample.jpg in the bucket named // examplebucket--use1-az5--x-s3 , specify the object key name as // /photos/2006/February/sample.jpg . Also, when you make requests to this API // operation, your requests are sent to the Zonal endpoint. These endpoints support // virtual-hosted-style requests in the format // https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style -// requests are not supported. For more information, see Regional and Zonal -// endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. Permissions +// requests are not supported. For more information, see [Regional and Zonal endpoints]in the Amazon S3 User +// Guide. +// +// Permissions // - General purpose bucket permissions - You must have the required permissions // in a policy. To use GetObject , you must have the READ access to the object // (or version). If you grant READ access to the anonymous user, the GetObject // operation returns the object without using an authorization header. For more -// information, see Specifying permissions in a policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) -// in the Amazon S3 User Guide. If you include a versionId in your request -// header, you must have the s3:GetObjectVersion permission to access a specific -// version of an object. The s3:GetObject permission is not required in this -// scenario. If you request the current version of an object without a specific -// versionId in the request header, only the s3:GetObject permission is required. -// The s3:GetObjectVersion permission is not required in this scenario. If the -// object that you request doesn’t exist, the error that Amazon S3 returns depends -// on whether you also have the s3:ListBucket permission. -// - If you have the s3:ListBucket permission on the bucket, Amazon S3 returns an -// HTTP status code 404 Not Found error. -// - If you don’t have the s3:ListBucket permission, Amazon S3 returns an HTTP -// status code 403 Access Denied error. -// - Directory bucket permissions - To grant access to this API operation on a -// directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// API operation for session-based authorization. Specifically, you grant the -// s3express:CreateSession permission to the directory bucket in a bucket policy -// or an IAM identity-based policy. Then, you make the CreateSession API call on -// the bucket to obtain a session token. With the session token in your request -// header, you can make API requests to this operation. After the session token -// expires, you make another CreateSession API call to generate a new session -// token for use. Amazon Web Services CLI or SDKs create session and refresh the -// session token automatically to avoid service interruptions when a session -// expires. For more information about authorization, see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// . +// information, see [Specifying permissions in a policy]in the Amazon S3 User Guide. +// +// If you include a versionId in your request header, you must have the +// +// s3:GetObjectVersion permission to access a specific version of an object. The +// s3:GetObject permission is not required in this scenario. +// +// If you request the current version of an object without a specific versionId in +// +// the request header, only the s3:GetObject permission is required. The +// s3:GetObjectVersion permission is not required in this scenario. +// +// If the object that you request doesn’t exist, the error that Amazon S3 returns +// +// depends on whether you also have the s3:ListBucket permission. +// +// - If you have the s3:ListBucket permission on the bucket, Amazon S3 returns an +// HTTP status code 404 Not Found error. +// +// - If you don’t have the s3:ListBucket permission, Amazon S3 returns an HTTP +// status code 403 Access Denied error. +// +// - Directory bucket permissions - To grant access to this API operation on a +// directory bucket, we recommend that you use the [CreateSession]CreateSession API operation +// for session-based authorization. Specifically, you grant the +// s3express:CreateSession permission to the directory bucket in a bucket policy +// or an IAM identity-based policy. Then, you make the CreateSession API call on +// the bucket to obtain a session token. With the session token in your request +// header, you can make API requests to this operation. After the session token +// expires, you make another CreateSession API call to generate a new session +// token for use. Amazon Web Services CLI or SDKs create session and refresh the +// session token automatically to avoid service interruptions when a session +// expires. For more information about authorization, see [CreateSession]CreateSession . // // Storage classes If the object you are retrieving is stored in the S3 Glacier // Flexible Retrieval storage class, the S3 Glacier Deep Archive storage class, the // S3 Intelligent-Tiering Archive Access tier, or the S3 Intelligent-Tiering Deep // Archive Access tier, before you can retrieve the object you must first restore a -// copy using RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html) -// . Otherwise, this operation returns an InvalidObjectState error. For -// information about restoring archived objects, see Restoring Archived Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html) -// in the Amazon S3 User Guide. Directory buckets - For directory buckets, only the -// S3 Express One Zone storage class is supported to store newly created objects. -// Unsupported storage class values won't write a destination object and will -// respond with the HTTP status code 400 Bad Request . Encryption Encryption -// request headers, like x-amz-server-side-encryption , should not be sent for the -// GetObject requests, if your object uses server-side encryption with Amazon S3 -// managed encryption keys (SSE-S3), server-side encryption with Key Management -// Service (KMS) keys (SSE-KMS), or dual-layer server-side encryption with Amazon -// Web Services KMS keys (DSSE-KMS). If you include the header in your GetObject -// requests for the object that uses these types of keys, you’ll get an HTTP 400 -// Bad Request error. Overriding response header values through the request There -// are times when you want to override certain response header values of a -// GetObject response. For example, you might override the Content-Disposition -// response header value through your GetObject request. You can override values -// for a set of response headers. These modified response header values are -// included only in a successful response, that is, when the HTTP status code 200 -// OK is returned. The headers you can override using the following query -// parameters in the request are a subset of the headers that Amazon S3 accepts -// when you create an object. The response headers that you can override for the -// GetObject response are Cache-Control , Content-Disposition , Content-Encoding , -// Content-Language , Content-Type , and Expires . To override values for a set of -// response headers in the GetObject response, you can use the following query -// parameters in the request. +// copy using [RestoreObject]. Otherwise, this operation returns an InvalidObjectState error. For +// information about restoring archived objects, see [Restoring Archived Objects]in the Amazon S3 User Guide. +// +// Directory buckets - For directory buckets, only the S3 Express One Zone storage +// class is supported to store newly created objects. Unsupported storage class +// values won't write a destination object and will respond with the HTTP status +// code 400 Bad Request . +// +// Encryption Encryption request headers, like x-amz-server-side-encryption , +// should not be sent for the GetObject requests, if your object uses server-side +// encryption with Amazon S3 managed encryption keys (SSE-S3), server-side +// encryption with Key Management Service (KMS) keys (SSE-KMS), or dual-layer +// server-side encryption with Amazon Web Services KMS keys (DSSE-KMS). If you +// include the header in your GetObject requests for the object that uses these +// types of keys, you’ll get an HTTP 400 Bad Request error. +// +// Overriding response header values through the request There are times when you +// want to override certain response header values of a GetObject response. For +// example, you might override the Content-Disposition response header value +// through your GetObject request. +// +// You can override values for a set of response headers. These modified response +// header values are included only in a successful response, that is, when the HTTP +// status code 200 OK is returned. The headers you can override using the +// following query parameters in the request are a subset of the headers that +// Amazon S3 accepts when you create an object. +// +// The response headers that you can override for the GetObject response are +// Cache-Control , Content-Disposition , Content-Encoding , Content-Language , +// Content-Type , and Expires . +// +// To override values for a set of response headers in the GetObject response, you +// can use the following query parameters in the request. +// // - response-cache-control +// // - response-content-disposition +// // - response-content-encoding +// // - response-content-language +// // - response-content-type +// // - response-expires // // When you use these parameters, you must sign the request by using either an // Authorization header or a presigned URL. These parameters cannot be used with an -// unsigned (anonymous) request. HTTP Host header syntax Directory buckets - The -// HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com . +// unsigned (anonymous) request. +// +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// Bucket_name.s3express-az_id.region.amazonaws.com . +// // The following operations are related to GetObject : -// - ListBuckets (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html) -// - GetObjectAcl (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html) +// +// [ListBuckets] +// +// [GetObjectAcl] +// +// [RestoreObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [ListBuckets]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html +// [HTTP Host Header Bucket Specification]: https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket +// [Restoring Archived Objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html +// [GetObjectAcl]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html +// [Specifying permissions in a policy]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html +// +// [CreateSession]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html func (c *Client) GetObject(ctx context.Context, params *GetObjectInput, optFns ...func(*Options)) (*GetObjectOutput, error) { if params == nil { params = &GetObjectInput{} @@ -127,35 +168,44 @@ func (c *Client) GetObject(ctx context.Context, params *GetObjectInput, optFns . type GetObjectInput struct { - // The bucket name containing the object. Directory buckets - When you use this - // operation with a directory bucket, you must use virtual-hosted-style requests in - // the format Bucket_name.s3express-az_id.region.amazonaws.com . Path-style - // requests are not supported. Directory bucket names must be unique in the chosen - // Availability Zone. Bucket names must follow the format - // bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 - // ). For information about bucket naming restrictions, see Directory bucket - // naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. Object Lambda access points - When you use this - // action with an Object Lambda access point, you must direct requests to the - // Object Lambda access point hostname. The Object Lambda access point hostname - // takes the form AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com. + // The bucket name containing the object. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use virtual-hosted-style requests in the format + // Bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests are not + // supported. Directory bucket names must be unique in the chosen Availability + // Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for + // example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 ). For information about bucket + // naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // Object Lambda access points - When you use this action with an Object Lambda + // access point, you must direct requests to the Object Lambda access point + // hostname. The Object Lambda access point hostname takes the form + // AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com. + // // Access points and Object Lambda access points are not supported by directory - // buckets. S3 on Outposts - When you use this action with Amazon S3 on Outposts, - // you must direct requests to the S3 on Outposts hostname. The S3 on Outposts - // hostname takes the form + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -174,37 +224,55 @@ type GetObjectInput struct { ExpectedBucketOwner *string // Return the object only if its entity tag (ETag) is the same as the one - // specified in this header; otherwise, return a 412 Precondition Failed error. If - // both of the If-Match and If-Unmodified-Since headers are present in the request - // as follows: If-Match condition evaluates to true , and; If-Unmodified-Since - // condition evaluates to false ; then, S3 returns 200 OK and the data requested. - // For more information about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232) - // . + // specified in this header; otherwise, return a 412 Precondition Failed error. + // + // If both of the If-Match and If-Unmodified-Since headers are present in the + // request as follows: If-Match condition evaluates to true , and; + // If-Unmodified-Since condition evaluates to false ; then, S3 returns 200 OK and + // the data requested. + // + // For more information about conditional requests, see [RFC 7232]. + // + // [RFC 7232]: https://tools.ietf.org/html/rfc7232 IfMatch *string // Return the object only if it has been modified since the specified time; - // otherwise, return a 304 Not Modified error. If both of the If-None-Match and - // If-Modified-Since headers are present in the request as follows: If-None-Match - // condition evaluates to false , and; If-Modified-Since condition evaluates to - // true ; then, S3 returns 304 Not Modified status code. For more information - // about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232) . + // otherwise, return a 304 Not Modified error. + // + // If both of the If-None-Match and If-Modified-Since headers are present in the + // request as follows: If-None-Match condition evaluates to false , and; + // If-Modified-Since condition evaluates to true ; then, S3 returns 304 Not + // Modified status code. + // + // For more information about conditional requests, see [RFC 7232]. + // + // [RFC 7232]: https://tools.ietf.org/html/rfc7232 IfModifiedSince *time.Time // Return the object only if its entity tag (ETag) is different from the one - // specified in this header; otherwise, return a 304 Not Modified error. If both - // of the If-None-Match and If-Modified-Since headers are present in the request - // as follows: If-None-Match condition evaluates to false , and; If-Modified-Since - // condition evaluates to true ; then, S3 returns 304 Not Modified HTTP status - // code. For more information about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232) - // . + // specified in this header; otherwise, return a 304 Not Modified error. + // + // If both of the If-None-Match and If-Modified-Since headers are present in the + // request as follows: If-None-Match condition evaluates to false , and; + // If-Modified-Since condition evaluates to true ; then, S3 returns 304 Not + // Modified HTTP status code. + // + // For more information about conditional requests, see [RFC 7232]. + // + // [RFC 7232]: https://tools.ietf.org/html/rfc7232 IfNoneMatch *string // Return the object only if it has not been modified since the specified time; - // otherwise, return a 412 Precondition Failed error. If both of the If-Match and - // If-Unmodified-Since headers are present in the request as follows: If-Match - // condition evaluates to true , and; If-Unmodified-Since condition evaluates to - // false ; then, S3 returns 200 OK and the data requested. For more information - // about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232) . + // otherwise, return a 412 Precondition Failed error. + // + // If both of the If-Match and If-Unmodified-Since headers are present in the + // request as follows: If-Match condition evaluates to true , and; + // If-Unmodified-Since condition evaluates to false ; then, S3 returns 200 OK and + // the data requested. + // + // For more information about conditional requests, see [RFC 7232]. + // + // [RFC 7232]: https://tools.ietf.org/html/rfc7232 IfUnmodifiedSince *time.Time // Part number of the object being read. This is a positive integer between 1 and @@ -213,18 +281,23 @@ type GetObjectInput struct { PartNumber *int32 // Downloads the specified byte range of an object. For more information about the - // HTTP Range header, see https://www.rfc-editor.org/rfc/rfc9110.html#name-range (https://www.rfc-editor.org/rfc/rfc9110.html#name-range) - // . Amazon S3 doesn't support retrieving multiple ranges of data per GET request. + // HTTP Range header, see [https://www.rfc-editor.org/rfc/rfc9110.html#name-range]. + // + // Amazon S3 doesn't support retrieving multiple ranges of data per GET request. + // + // [https://www.rfc-editor.org/rfc/rfc9110.html#name-range]: https://www.rfc-editor.org/rfc/rfc9110.html#name-range Range *string // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer // Sets the Cache-Control header of the response. @@ -245,66 +318,90 @@ type GetObjectInput struct { // Sets the Expires header of the response. ResponseExpires *time.Time - // Specifies the algorithm to use when decrypting the object (for example, AES256 - // ). If you encrypt an object by using server-side encryption with - // customer-provided encryption keys (SSE-C) when you store the object in Amazon - // S3, then when you GET the object, you must use the following headers: + // Specifies the algorithm to use when decrypting the object (for example, AES256 ). + // + // If you encrypt an object by using server-side encryption with customer-provided + // encryption keys (SSE-C) when you store the object in Amazon S3, then when you + // GET the object, you must use the following headers: + // // - x-amz-server-side-encryption-customer-algorithm + // // - x-amz-server-side-encryption-customer-key + // // - x-amz-server-side-encryption-customer-key-MD5 - // For more information about SSE-C, see Server-Side Encryption (Using - // Customer-Provided Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // + // For more information about SSE-C, see [Server-Side Encryption (Using Customer-Provided Encryption Keys)] in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. + // + // [Server-Side Encryption (Using Customer-Provided Encryption Keys)]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html SSECustomerAlgorithm *string // Specifies the customer-provided encryption key that you originally provided for // Amazon S3 to encrypt the data before storing it. This value is used to decrypt // the object when recovering it and must match the one used when storing the data. // The key must be appropriate for use with the algorithm specified in the - // x-amz-server-side-encryption-customer-algorithm header. If you encrypt an object - // by using server-side encryption with customer-provided encryption keys (SSE-C) - // when you store the object in Amazon S3, then when you GET the object, you must - // use the following headers: + // x-amz-server-side-encryption-customer-algorithm header. + // + // If you encrypt an object by using server-side encryption with customer-provided + // encryption keys (SSE-C) when you store the object in Amazon S3, then when you + // GET the object, you must use the following headers: + // // - x-amz-server-side-encryption-customer-algorithm + // // - x-amz-server-side-encryption-customer-key + // // - x-amz-server-side-encryption-customer-key-MD5 - // For more information about SSE-C, see Server-Side Encryption (Using - // Customer-Provided Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // + // For more information about SSE-C, see [Server-Side Encryption (Using Customer-Provided Encryption Keys)] in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. + // + // [Server-Side Encryption (Using Customer-Provided Encryption Keys)]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html SSECustomerKey *string // Specifies the 128-bit MD5 digest of the customer-provided encryption key // according to RFC 1321. Amazon S3 uses this header for a message integrity check - // to ensure that the encryption key was transmitted without error. If you encrypt - // an object by using server-side encryption with customer-provided encryption keys - // (SSE-C) when you store the object in Amazon S3, then when you GET the object, - // you must use the following headers: + // to ensure that the encryption key was transmitted without error. + // + // If you encrypt an object by using server-side encryption with customer-provided + // encryption keys (SSE-C) when you store the object in Amazon S3, then when you + // GET the object, you must use the following headers: + // // - x-amz-server-side-encryption-customer-algorithm + // // - x-amz-server-side-encryption-customer-key + // // - x-amz-server-side-encryption-customer-key-MD5 - // For more information about SSE-C, see Server-Side Encryption (Using - // Customer-Provided Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // + // For more information about SSE-C, see [Server-Side Encryption (Using Customer-Provided Encryption Keys)] in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. + // + // [Server-Side Encryption (Using Customer-Provided Encryption Keys)]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html SSECustomerKeyMD5 *string - // Version ID used to reference a specific version of the object. By default, the - // GetObject operation returns the current version of an object. To return a - // different version, use the versionId subresource. + // Version ID used to reference a specific version of the object. + // + // By default, the GetObject operation returns the current version of an object. + // To return a different version, use the versionId subresource. + // // - If you include a versionId in your request header, you must have the // s3:GetObjectVersion permission to access a specific version of an object. The // s3:GetObject permission is not required in this scenario. + // // - If you request the current version of an object without a specific versionId // in the request header, only the s3:GetObject permission is required. The // s3:GetObjectVersion permission is not required in this scenario. + // // - Directory buckets - S3 Versioning isn't enabled and supported for directory // buckets. For this API operation, only the null value of the version ID is // supported by directory buckets. You can only specify null to the versionId // query parameter in the request. - // For more information about versioning, see PutBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html) - // . + // + // For more information about versioning, see [PutBucketVersioning]. + // + // [PutBucketVersioning]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html VersionId *string noSmithyDocumentSerde @@ -325,35 +422,40 @@ type GetObjectOutput struct { Body io.ReadCloser // Indicates whether the object uses an S3 Bucket Key for server-side encryption - // with Key Management Service (KMS) keys (SSE-KMS). This functionality is not - // supported for directory buckets. + // with Key Management Service (KMS) keys (SSE-KMS). + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool // Specifies caching behavior along the request/reply chain. CacheControl *string // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be - // present if it was uploaded with the object. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. + // present if it was uploaded with the object. For more information, see [Checking object integrity]in the + // Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumCRC32 *string // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be - // present if it was uploaded with the object. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. + // present if it was uploaded with the object. For more information, see [Checking object integrity]in the + // Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumCRC32C *string // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be - // present if it was uploaded with the object. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. + // present if it was uploaded with the object. For more information, see [Checking object integrity]in the + // Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumSHA1 *string // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be - // present if it was uploaded with the object. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. + // present if it was uploaded with the object. For more information, see [Checking object integrity]in the + // Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumSHA256 *string // Specifies presentational information for the object. @@ -378,9 +480,11 @@ type GetObjectOutput struct { // Indicates whether the object retrieved was (true) or was not (false) a Delete // Marker. If false, this response header does not appear in the response. + // // - If the current version of the object is a delete marker, Amazon S3 behaves // as if the object was deleted and includes x-amz-delete-marker: true in the // response. + // // - If the specified version in the request is a delete marker, the response // returns a 405 Method Not Allowed error and the Last-Modified: timestamp // response header. @@ -390,20 +494,33 @@ type GetObjectOutput struct { // specific version of a resource found at a URL. ETag *string - // If the object expiration is configured (see PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) - // ), the response includes this header. It includes the expiry-date and rule-id + // If the object expiration is configured (see [PutBucketLifecycleConfiguration]PutBucketLifecycleConfiguration ), + // the response includes this header. It includes the expiry-date and rule-id // key-value pairs providing object expiration information. The value of the - // rule-id is URL-encoded. This functionality is not supported for directory - // buckets. + // rule-id is URL-encoded. + // + // This functionality is not supported for directory buckets. + // + // [PutBucketLifecycleConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html Expiration *string // The date and time at which the object is no longer cacheable. + // + // Deprecated: This field is handled inconsistently across AWS SDKs. Prefer using + // the ExpiresString field which contains the unparsed value from the service + // response. Expires *time.Time - // Date and time when the object was last modified. General purpose buckets - When - // you specify a versionId of the object in your request, if the specified version - // in the request is a delete marker, the response returns a 405 Method Not Allowed - // error and the Last-Modified: timestamp response header. + // The unparsed value of the Expires field from the service response. Prefer use + // of this value over the normal Expires response field where possible. + ExpiresString *string + + // Date and time when the object was last modified. + // + // General purpose buckets - When you specify a versionId of the object in your + // request, if the specified version in the request is a delete marker, the + // response returns a 405 Method Not Allowed error and the Last-Modified: timestamp + // response header. LastModified *time.Time // A map of metadata to store with the object in S3. @@ -415,20 +532,25 @@ type GetObjectOutput struct { // are prefixed with x-amz-meta- . This can happen if you create metadata using an // API like SOAP that supports more flexible metadata than the REST API. For // example, using SOAP, you can create metadata whose values are not legal HTTP - // headers. This functionality is not supported for directory buckets. + // headers. + // + // This functionality is not supported for directory buckets. MissingMeta *int32 // Indicates whether this object has an active legal hold. This field is only - // returned if you have permission to view an object's legal hold status. This - // functionality is not supported for directory buckets. + // returned if you have permission to view an object's legal hold status. + // + // This functionality is not supported for directory buckets. ObjectLockLegalHoldStatus types.ObjectLockLegalHoldStatus - // The Object Lock mode that's currently in place for this object. This - // functionality is not supported for directory buckets. + // The Object Lock mode that's currently in place for this object. + // + // This functionality is not supported for directory buckets. ObjectLockMode types.ObjectLockMode - // The date and time when this object's Object Lock will expire. This - // functionality is not supported for directory buckets. + // The date and time when this object's Object Lock will expire. + // + // This functionality is not supported for directory buckets. ObjectLockRetainUntilDate *time.Time // The count of parts this object has. This value is only returned if you specify @@ -436,63 +558,78 @@ type GetObjectOutput struct { PartsCount *int32 // Amazon S3 can return this if your request involves a bucket that is either a - // source or destination in a replication rule. This functionality is not supported - // for directory buckets. + // source or destination in a replication rule. + // + // This functionality is not supported for directory buckets. ReplicationStatus types.ReplicationStatus // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // Provides information about object restoration action and expiration time of the - // restored object copy. This functionality is not supported for directory buckets. - // Only the S3 Express One Zone storage class is supported by directory buckets to - // store objects. + // restored object copy. + // + // This functionality is not supported for directory buckets. Only the S3 Express + // One Zone storage class is supported by directory buckets to store objects. Restore *string // If server-side encryption with a customer-provided encryption key was // requested, the response will include this header to confirm the encryption - // algorithm that's used. This functionality is not supported for directory - // buckets. + // algorithm that's used. + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string // If server-side encryption with a customer-provided encryption key was // requested, the response will include this header to provide the round-trip - // message integrity verification of the customer-provided encryption key. This - // functionality is not supported for directory buckets. + // message integrity verification of the customer-provided encryption key. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string // If present, indicates the ID of the Key Management Service (KMS) symmetric - // encryption customer managed key that was used for the object. This functionality - // is not supported for directory buckets. + // encryption customer managed key that was used for the object. + // + // This functionality is not supported for directory buckets. SSEKMSKeyId *string // The server-side encryption algorithm used when you store this object in Amazon - // S3 (for example, AES256 , aws:kms , aws:kms:dsse ). For directory buckets, only - // server-side encryption with Amazon S3 managed keys (SSE-S3) ( AES256 ) is - // supported. + // S3 (for example, AES256 , aws:kms , aws:kms:dsse ). + // + // For directory buckets, only server-side encryption with Amazon S3 managed keys + // (SSE-S3) ( AES256 ) is supported. ServerSideEncryption types.ServerSideEncryption // Provides storage class information of the object. Amazon S3 returns this header - // for all objects except for S3 Standard storage class objects. Directory buckets - // - Only the S3 Express One Zone storage class is supported by directory buckets - // to store objects. + // for all objects except for S3 Standard storage class objects. + // + // Directory buckets - Only the S3 Express One Zone storage class is supported by + // directory buckets to store objects. StorageClass types.StorageClass // The number of tags, if any, on the object, when you have the relevant - // permission to read object tags. You can use GetObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) - // to retrieve the tag set associated with an object. This functionality is not - // supported for directory buckets. + // permission to read object tags. + // + // You can use [GetObjectTagging] to retrieve the tag set associated with an object. + // + // This functionality is not supported for directory buckets. + // + // [GetObjectTagging]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html TagCount *int32 - // Version ID of the object. This functionality is not supported for directory - // buckets. + // Version ID of the object. + // + // This functionality is not supported for directory buckets. VersionId *string // If the bucket is configured as a website, redirects requests for this object to // another object in the same bucket or to an external URL. Amazon S3 stores the - // value of this header in the object metadata. This functionality is not supported - // for directory buckets. + // value of this header in the object metadata. + // + // This functionality is not supported for directory buckets. WebsiteRedirectLocation *string // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectAcl.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectAcl.go index fc903cb3..9ee25c4e 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectAcl.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectAcl.go @@ -13,24 +13,39 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Returns the access -// control list (ACL) of an object. To use this operation, you must have -// s3:GetObjectAcl permissions or READ_ACP access to the object. For more -// information, see Mapping of ACL permissions and access policy permissions (https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#acl-access-policy-permission-mapping) -// in the Amazon S3 User Guide This functionality is not supported for Amazon S3 on -// Outposts. By default, GET returns ACL information about the current version of -// an object. To return ACL information about a different version, use the -// versionId subresource. If your bucket uses the bucket owner enforced setting for -// S3 Object Ownership, requests to read ACLs are still supported and return the +// This operation is not supported by directory buckets. +// +// Returns the access control list (ACL) of an object. To use this operation, you +// must have s3:GetObjectAcl permissions or READ_ACP access to the object. For +// more information, see [Mapping of ACL permissions and access policy permissions]in the Amazon S3 User Guide +// +// This functionality is not supported for Amazon S3 on Outposts. +// +// By default, GET returns ACL information about the current version of an object. +// To return ACL information about a different version, use the versionId +// subresource. +// +// If your bucket uses the bucket owner enforced setting for S3 Object Ownership, +// requests to read ACLs are still supported and return the // bucket-owner-full-control ACL with the owner being the account that created the -// bucket. For more information, see Controlling object ownership and disabling -// ACLs (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) -// in the Amazon S3 User Guide. The following operations are related to -// GetObjectAcl : -// - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) -// - GetObjectAttributes (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) -// - DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) -// - PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) +// bucket. For more information, see [Controlling object ownership and disabling ACLs]in the Amazon S3 User Guide. +// +// The following operations are related to GetObjectAcl : +// +// [GetObject] +// +// [GetObjectAttributes] +// +// [DeleteObject] +// +// [PutObject] +// +// [DeleteObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html +// [Mapping of ACL permissions and access policy permissions]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#acl-access-policy-permission-mapping +// [GetObjectAttributes]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html +// [PutObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html +// [GetObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html +// [Controlling object ownership and disabling ACLs]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html func (c *Client) GetObjectAcl(ctx context.Context, params *GetObjectAclInput, optFns ...func(*Options)) (*GetObjectAclOutput, error) { if params == nil { params = &GetObjectAclInput{} @@ -49,6 +64,7 @@ func (c *Client) GetObjectAcl(ctx context.Context, params *GetObjectAclInput, op type GetObjectAclInput struct { // The bucket name that contains the object for which to get the ACL information. + // // Access points - When you use this action with an access point, you must provide // the alias of the access point in place of the bucket name or specify the access // point ARN. When using the access point ARN, you must direct requests to the @@ -56,8 +72,9 @@ type GetObjectAclInput struct { // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // action with an access point through the Amazon Web Services SDKs, you provide // the access point ARN in place of the bucket name. For more information about - // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -76,14 +93,17 @@ type GetObjectAclInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer - // Version ID used to reference a specific version of the object. This - // functionality is not supported for directory buckets. + // Version ID used to reference a specific version of the object. + // + // This functionality is not supported for directory buckets. VersionId *string noSmithyDocumentSerde @@ -100,11 +120,13 @@ type GetObjectAclOutput struct { // A list of grants. Grants []types.Grant - // Container for the bucket owner's display name and ID. + // Container for the bucket owner's display name and ID. Owner *types.Owner // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectAttributes.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectAttributes.go index dd1b9257..432b879a 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectAttributes.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectAttributes.go @@ -16,32 +16,39 @@ import ( // Retrieves all the metadata from an object without returning the object itself. // This operation is useful if you're interested only in an object's metadata. +// // GetObjectAttributes combines the functionality of HeadObject and ListParts . All // of the data returned with each of those individual calls can be returned with a -// single call to GetObjectAttributes . Directory buckets - For directory buckets, -// you must make requests for this API operation to the Zonal endpoint. These -// endpoints support virtual-hosted-style requests in the format +// single call to GetObjectAttributes . +// +// Directory buckets - For directory buckets, you must make requests for this API +// operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format // https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style -// requests are not supported. For more information, see Regional and Zonal -// endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. Permissions +// requests are not supported. For more information, see [Regional and Zonal endpoints]in the Amazon S3 User +// Guide. +// +// Permissions +// // - General purpose bucket permissions - To use GetObjectAttributes , you must // have READ access to the object. The permissions that you need to use this // operation with depend on whether the bucket is versioned. If the bucket is // versioned, you need both the s3:GetObjectVersion and // s3:GetObjectVersionAttributes permissions for this operation. If the bucket is // not versioned, you need the s3:GetObject and s3:GetObjectAttributes -// permissions. For more information, see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) -// in the Amazon S3 User Guide. If the object that you request does not exist, the -// error Amazon S3 returns depends on whether you also have the s3:ListBucket -// permission. +// permissions. For more information, see [Specifying Permissions in a Policy]in the Amazon S3 User Guide. If the +// object that you request does not exist, the error Amazon S3 returns depends on +// whether you also have the s3:ListBucket permission. +// // - If you have the s3:ListBucket permission on the bucket, Amazon S3 returns an // HTTP status code 404 Not Found ("no such key") error. +// // - If you don't have the s3:ListBucket permission, Amazon S3 returns an HTTP // status code 403 Forbidden ("access denied") error. +// // - Directory bucket permissions - To grant access to this API operation on a -// directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// API operation for session-based authorization. Specifically, you grant the +// directory bucket, we recommend that you use the [CreateSession]CreateSession API operation +// for session-based authorization. Specifically, you grant the // s3express:CreateSession permission to the directory bucket in a bucket policy // or an IAM identity-based policy. Then, you make the CreateSession API call on // the bucket to obtain a session token. With the session token in your request @@ -49,8 +56,7 @@ import ( // expires, you make another CreateSession API call to generate a new session // token for use. Amazon Web Services CLI or SDKs create session and refresh the // session token automatically to avoid service interruptions when a session -// expires. For more information about authorization, see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// . +// expires. For more information about authorization, see [CreateSession]CreateSession . // // Encryption Encryption request headers, like x-amz-server-side-encryption , // should not be sent for HEAD requests if your object uses server-side encryption @@ -61,49 +67,86 @@ import ( // want to specify the encryption method. If you include this header in a GET // request for an object that uses these types of keys, you’ll get an HTTP 400 Bad // Request error. It's because the encryption method can't be changed when you -// retrieve the object. If you encrypt an object by using server-side encryption -// with customer-provided encryption keys (SSE-C) when you store the object in -// Amazon S3, then when you retrieve the metadata from the object, you must use the -// following headers to provide the encryption key for the server to be able to -// retrieve the object's metadata. The headers are: +// retrieve the object. +// +// If you encrypt an object by using server-side encryption with customer-provided +// encryption keys (SSE-C) when you store the object in Amazon S3, then when you +// retrieve the metadata from the object, you must use the following headers to +// provide the encryption key for the server to be able to retrieve the object's +// metadata. The headers are: +// // - x-amz-server-side-encryption-customer-algorithm +// // - x-amz-server-side-encryption-customer-key +// // - x-amz-server-side-encryption-customer-key-MD5 // -// For more information about SSE-C, see Server-Side Encryption (Using -// Customer-Provided Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) -// in the Amazon S3 User Guide. Directory bucket permissions - For directory -// buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) ( -// AES256 ) is supported. Versioning Directory buckets - S3 Versioning isn't -// enabled and supported for directory buckets. For this API operation, only the -// null value of the version ID is supported by directory buckets. You can only -// specify null to the versionId query parameter in the request. Conditional -// request headers Consider the following when using request headers: +// For more information about SSE-C, see [Server-Side Encryption (Using Customer-Provided Encryption Keys)] in the Amazon S3 User Guide. +// +// Directory bucket permissions - For directory buckets, only server-side +// encryption with Amazon S3 managed keys (SSE-S3) ( AES256 ) is supported. +// +// Versioning Directory buckets - S3 Versioning isn't enabled and supported for +// directory buckets. For this API operation, only the null value of the version +// ID is supported by directory buckets. You can only specify null to the versionId +// query parameter in the request. +// +// Conditional request headers Consider the following when using request headers: +// // - If both of the If-Match and If-Unmodified-Since headers are present in the // request as follows, then Amazon S3 returns the HTTP status code 200 OK and the // data requested: +// // - If-Match condition evaluates to true . -// - If-Unmodified-Since condition evaluates to false . For more information -// about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232) -// . +// +// - If-Unmodified-Since condition evaluates to false . +// +// For more information about conditional requests, see [RFC 7232]. +// // - If both of the If-None-Match and If-Modified-Since headers are present in // the request as follows, then Amazon S3 returns the HTTP status code 304 Not // Modified : +// // - If-None-Match condition evaluates to false . -// - If-Modified-Since condition evaluates to true . For more information about -// conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232) . -// -// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is -// Bucket_name.s3express-az_id.region.amazonaws.com . The following actions are -// related to GetObjectAttributes : -// - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) -// - GetObjectAcl (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html) -// - GetObjectLegalHold (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLegalHold.html) -// - GetObjectLockConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLockConfiguration.html) -// - GetObjectRetention (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectRetention.html) -// - GetObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) -// - HeadObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html) -// - ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) +// +// - If-Modified-Since condition evaluates to true . +// +// For more information about conditional requests, see [RFC 7232]. +// +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// Bucket_name.s3express-az_id.region.amazonaws.com . +// +// The following actions are related to GetObjectAttributes : +// +// [GetObject] +// +// [GetObjectAcl] +// +// [GetObjectLegalHold] +// +// [GetObjectLockConfiguration] +// +// [GetObjectRetention] +// +// [GetObjectTagging] +// +// [HeadObject] +// +// [ListParts] +// +// [GetObjectLegalHold]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLegalHold.html +// [ListParts]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html +// [Server-Side Encryption (Using Customer-Provided Encryption Keys)]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [CreateSession]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html +// [GetObjectTagging]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html +// [Specifying Permissions in a Policy]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html +// [RFC 7232]: https://tools.ietf.org/html/rfc7232 +// [HeadObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html +// [GetObjectLockConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLockConfiguration.html +// [GetObjectAcl]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html +// [GetObjectRetention]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectRetention.html +// [GetObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html func (c *Client) GetObjectAttributes(ctx context.Context, params *GetObjectAttributesInput, optFns ...func(*Options)) (*GetObjectAttributesOutput, error) { if params == nil { params = &GetObjectAttributesInput{} @@ -121,31 +164,39 @@ func (c *Client) GetObjectAttributes(ctx context.Context, params *GetObjectAttri type GetObjectAttributesInput struct { - // The name of the bucket that contains the object. Directory buckets - When you - // use this operation with a directory bucket, you must use virtual-hosted-style - // requests in the format Bucket_name.s3express-az_id.region.amazonaws.com . - // Path-style requests are not supported. Directory bucket names must be unique in - // the chosen Availability Zone. Bucket names must follow the format - // bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 - // ). For information about bucket naming restrictions, see Directory bucket - // naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. Access points and Object Lambda access points are - // not supported by directory buckets. S3 on Outposts - When you use this action - // with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts - // hostname. The S3 on Outposts hostname takes the form + // The name of the bucket that contains the object. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use virtual-hosted-style requests in the format + // Bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests are not + // supported. Directory bucket names must be unique in the chosen Availability + // Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for + // example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 ). For information about bucket + // naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -177,32 +228,38 @@ type GetObjectAttributesInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer - // Specifies the algorithm to use when encrypting the object (for example, - // AES256). This functionality is not supported for directory buckets. + // Specifies the algorithm to use when encrypting the object (for example, AES256). + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string // Specifies the customer-provided encryption key for Amazon S3 to use in // encrypting data. This value is used to store the object and then it is // discarded; Amazon S3 does not store the encryption key. The key must be // appropriate for use with the algorithm specified in the - // x-amz-server-side-encryption-customer-algorithm header. This functionality is - // not supported for directory buckets. + // x-amz-server-side-encryption-customer-algorithm header. + // + // This functionality is not supported for directory buckets. SSECustomerKey *string // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure that the - // encryption key was transmitted without error. This functionality is not - // supported for directory buckets. + // encryption key was transmitted without error. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string - // The version ID used to reference a specific version of the object. S3 - // Versioning isn't enabled and supported for directory buckets. For this API + // The version ID used to reference a specific version of the object. + // + // S3 Versioning isn't enabled and supported for directory buckets. For this API // operation, only the null value of the version ID is supported by directory // buckets. You can only specify null to the versionId query parameter in the // request. @@ -223,6 +280,7 @@ type GetObjectAttributesOutput struct { // Specifies whether the object retrieved was ( true ) or was not ( false ) a // delete marker. If false , this response header does not appear in the response. + // // This functionality is not supported for directory buckets. DeleteMarker *bool @@ -240,18 +298,25 @@ type GetObjectAttributesOutput struct { ObjectSize *int64 // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // Provides the storage class information of the object. Amazon S3 returns this - // header for all objects except for S3 Standard storage class objects. For more - // information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) - // . Directory buckets - Only the S3 Express One Zone storage class is supported by + // header for all objects except for S3 Standard storage class objects. + // + // For more information, see [Storage Classes]. + // + // Directory buckets - Only the S3 Express One Zone storage class is supported by // directory buckets to store objects. + // + // [Storage Classes]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html StorageClass types.StorageClass - // The version ID of the object. This functionality is not supported for directory - // buckets. + // The version ID of the object. + // + // This functionality is not supported for directory buckets. VersionId *string // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectLegalHold.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectLegalHold.go index 548f5e1c..76edc7ad 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectLegalHold.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectLegalHold.go @@ -13,11 +13,18 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Gets an object's current -// legal hold status. For more information, see Locking Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) -// . This functionality is not supported for Amazon S3 on Outposts. The following -// action is related to GetObjectLegalHold : -// - GetObjectAttributes (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) +// This operation is not supported by directory buckets. +// +// Gets an object's current legal hold status. For more information, see [Locking Objects]. +// +// This functionality is not supported for Amazon S3 on Outposts. +// +// The following action is related to GetObjectLegalHold : +// +// [GetObjectAttributes] +// +// [GetObjectAttributes]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html +// [Locking Objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html func (c *Client) GetObjectLegalHold(ctx context.Context, params *GetObjectLegalHoldInput, optFns ...func(*Options)) (*GetObjectLegalHoldOutput, error) { if params == nil { params = &GetObjectLegalHoldInput{} @@ -36,15 +43,18 @@ func (c *Client) GetObjectLegalHold(ctx context.Context, params *GetObjectLegalH type GetObjectLegalHoldInput struct { // The bucket name containing the object whose legal hold status you want to - // retrieve. Access points - When you use this action with an access point, you - // must provide the alias of the access point in place of the bucket name or - // specify the access point ARN. When using the access point ARN, you must direct - // requests to the access point hostname. The access point hostname takes the form + // retrieve. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // action with an access point through the Amazon Web Services SDKs, you provide // the access point ARN in place of the bucket name. For more information about - // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -63,10 +73,12 @@ type GetObjectLegalHoldInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer // The version ID of the object whose legal hold status you want to retrieve. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectLockConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectLockConfiguration.go index e8e2fbd9..e170ecad 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectLockConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectLockConfiguration.go @@ -13,12 +13,18 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Gets the Object Lock -// configuration for a bucket. The rule specified in the Object Lock configuration -// will be applied by default to every new object placed in the specified bucket. -// For more information, see Locking Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) -// . The following action is related to GetObjectLockConfiguration : -// - GetObjectAttributes (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) +// This operation is not supported by directory buckets. +// +// Gets the Object Lock configuration for a bucket. The rule specified in the +// Object Lock configuration will be applied by default to every new object placed +// in the specified bucket. For more information, see [Locking Objects]. +// +// The following action is related to GetObjectLockConfiguration : +// +// [GetObjectAttributes] +// +// [GetObjectAttributes]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html +// [Locking Objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html func (c *Client) GetObjectLockConfiguration(ctx context.Context, params *GetObjectLockConfigurationInput, optFns ...func(*Options)) (*GetObjectLockConfigurationOutput, error) { if params == nil { params = &GetObjectLockConfigurationInput{} @@ -36,16 +42,18 @@ func (c *Client) GetObjectLockConfiguration(ctx context.Context, params *GetObje type GetObjectLockConfigurationInput struct { - // The bucket whose Object Lock configuration you want to retrieve. Access points - // - When you use this action with an access point, you must provide the alias of - // the access point in place of the bucket name or specify the access point ARN. - // When using the access point ARN, you must direct requests to the access point - // hostname. The access point hostname takes the form + // The bucket whose Object Lock configuration you want to retrieve. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // action with an access point through the Amazon Web Services SDKs, you provide // the access point ARN in place of the bucket name. For more information about - // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectRetention.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectRetention.go index b4daabf1..93b8115c 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectRetention.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectRetention.go @@ -13,11 +13,18 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Retrieves an object's -// retention settings. For more information, see Locking Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) -// . This functionality is not supported for Amazon S3 on Outposts. The following -// action is related to GetObjectRetention : -// - GetObjectAttributes (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) +// This operation is not supported by directory buckets. +// +// Retrieves an object's retention settings. For more information, see [Locking Objects]. +// +// This functionality is not supported for Amazon S3 on Outposts. +// +// The following action is related to GetObjectRetention : +// +// [GetObjectAttributes] +// +// [GetObjectAttributes]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html +// [Locking Objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html func (c *Client) GetObjectRetention(ctx context.Context, params *GetObjectRetentionInput, optFns ...func(*Options)) (*GetObjectRetentionOutput, error) { if params == nil { params = &GetObjectRetentionInput{} @@ -36,15 +43,18 @@ func (c *Client) GetObjectRetention(ctx context.Context, params *GetObjectRetent type GetObjectRetentionInput struct { // The bucket name containing the object whose retention settings you want to - // retrieve. Access points - When you use this action with an access point, you - // must provide the alias of the access point in place of the bucket name or - // specify the access point ARN. When using the access point ARN, you must direct - // requests to the access point hostname. The access point hostname takes the form + // retrieve. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // action with an access point through the Amazon Web Services SDKs, you provide // the access point ARN in place of the bucket name. For more information about - // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -63,10 +73,12 @@ type GetObjectRetentionInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer // The version ID for the object whose retention settings you want to retrieve. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectTagging.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectTagging.go index dc15914a..4aa17501 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectTagging.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectTagging.go @@ -13,20 +13,35 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Returns the tag-set of an -// object. You send the GET request against the tagging subresource associated with -// the object. To use this operation, you must have permission to perform the +// This operation is not supported by directory buckets. +// +// Returns the tag-set of an object. You send the GET request against the tagging +// subresource associated with the object. +// +// To use this operation, you must have permission to perform the // s3:GetObjectTagging action. By default, the GET action returns information about // current version of an object. For a versioned bucket, you can have multiple // versions of an object in your bucket. To retrieve tags of any other version, use // the versionId query parameter. You also need permission for the -// s3:GetObjectVersionTagging action. By default, the bucket owner has this -// permission and can grant this permission to others. For information about the -// Amazon S3 object tagging feature, see Object Tagging (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html) -// . The following actions are related to GetObjectTagging : -// - DeleteObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html) -// - GetObjectAttributes (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) -// - PutObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html) +// s3:GetObjectVersionTagging action. +// +// By default, the bucket owner has this permission and can grant this permission +// to others. +// +// For information about the Amazon S3 object tagging feature, see [Object Tagging]. +// +// The following actions are related to GetObjectTagging : +// +// [DeleteObjectTagging] +// +// [GetObjectAttributes] +// +// [PutObjectTagging] +// +// [DeleteObjectTagging]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html +// [PutObjectTagging]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html +// [GetObjectAttributes]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html +// [Object Tagging]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html func (c *Client) GetObjectTagging(ctx context.Context, params *GetObjectTaggingInput, optFns ...func(*Options)) (*GetObjectTaggingOutput, error) { if params == nil { params = &GetObjectTaggingInput{} @@ -45,6 +60,7 @@ func (c *Client) GetObjectTagging(ctx context.Context, params *GetObjectTaggingI type GetObjectTaggingInput struct { // The bucket name containing the object for which to get the tagging information. + // // Access points - When you use this action with an access point, you must provide // the alias of the access point in place of the bucket name or specify the access // point ARN. When using the access point ARN, you must direct requests to the @@ -52,15 +68,18 @@ type GetObjectTaggingInput struct { // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // action with an access point through the Amazon Web Services SDKs, you provide // the access point ARN in place of the bucket name. For more information about - // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. S3 on Outposts - When you use this action with - // Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. - // The S3 on Outposts hostname takes the form + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -79,10 +98,12 @@ type GetObjectTaggingInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer // The versionId of the object for which to get the tagging information. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectTorrent.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectTorrent.go index 9fc83178..04b1dad8 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectTorrent.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetObjectTorrent.go @@ -14,14 +14,24 @@ import ( "io" ) -// This operation is not supported by directory buckets. Returns torrent files -// from a bucket. BitTorrent can save you bandwidth when you're distributing large -// files. You can get torrent only for objects that are less than 5 GB in size, and -// that are not encrypted using server-side encryption with a customer-provided -// encryption key. To use GET, you must have READ access to the object. This -// functionality is not supported for Amazon S3 on Outposts. The following action -// is related to GetObjectTorrent : -// - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) +// This operation is not supported by directory buckets. +// +// Returns torrent files from a bucket. BitTorrent can save you bandwidth when +// you're distributing large files. +// +// You can get torrent only for objects that are less than 5 GB in size, and that +// are not encrypted using server-side encryption with a customer-provided +// encryption key. +// +// To use GET, you must have READ access to the object. +// +// This functionality is not supported for Amazon S3 on Outposts. +// +// The following action is related to GetObjectTorrent : +// +// [GetObject] +// +// [GetObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html func (c *Client) GetObjectTorrent(ctx context.Context, params *GetObjectTorrentInput, optFns ...func(*Options)) (*GetObjectTorrentOutput, error) { if params == nil { params = &GetObjectTorrentInput{} @@ -58,10 +68,12 @@ type GetObjectTorrentInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer noSmithyDocumentSerde @@ -78,7 +90,9 @@ type GetObjectTorrentOutput struct { Body io.ReadCloser // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetPublicAccessBlock.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetPublicAccessBlock.go index 3689a4e1..e09ce279 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetPublicAccessBlock.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_GetPublicAccessBlock.go @@ -14,22 +14,38 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Retrieves the -// PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, -// you must have the s3:GetBucketPublicAccessBlock permission. For more -// information about Amazon S3 permissions, see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) -// . When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or -// an object, it checks the PublicAccessBlock configuration for both the bucket -// (or the bucket that contains the object) and the bucket owner's account. If the +// This operation is not supported by directory buckets. +// +// Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket. To use +// this operation, you must have the s3:GetBucketPublicAccessBlock permission. For +// more information about Amazon S3 permissions, see [Specifying Permissions in a Policy]. +// +// When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an +// object, it checks the PublicAccessBlock configuration for both the bucket (or +// the bucket that contains the object) and the bucket owner's account. If the // PublicAccessBlock settings are different between the bucket and the account, // Amazon S3 uses the most restrictive combination of the bucket-level and -// account-level settings. For more information about when Amazon S3 considers a -// bucket or an object public, see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) -// . The following operations are related to GetPublicAccessBlock : -// - Using Amazon S3 Block Public Access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) -// - PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) -// - GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) -// - DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) +// account-level settings. +// +// For more information about when Amazon S3 considers a bucket or an object +// public, see [The Meaning of "Public"]. +// +// The following operations are related to GetPublicAccessBlock : +// +// [Using Amazon S3 Block Public Access] +// +// [PutPublicAccessBlock] +// +// [GetPublicAccessBlock] +// +// [DeletePublicAccessBlock] +// +// [GetPublicAccessBlock]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html +// [PutPublicAccessBlock]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html +// [DeletePublicAccessBlock]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html +// [Using Amazon S3 Block Public Access]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html +// [Specifying Permissions in a Policy]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html +// [The Meaning of "Public"]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status func (c *Client) GetPublicAccessBlock(ctx context.Context, params *GetPublicAccessBlockInput, optFns ...func(*Options)) (*GetPublicAccessBlockOutput, error) { if params == nil { params = &GetPublicAccessBlockInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_HeadBucket.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_HeadBucket.go index 5f595891..413e4eca 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_HeadBucket.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_HeadBucket.go @@ -19,42 +19,54 @@ import ( // You can use this operation to determine if a bucket exists and if you have // permission to access it. The action returns a 200 OK if the bucket exists and -// you have permission to access it. If the bucket does not exist or you do not -// have permission to access it, the HEAD request returns a generic 400 Bad Request -// , 403 Forbidden or 404 Not Found code. A message body is not included, so you -// cannot determine the exception beyond these HTTP response codes. Directory -// buckets - You must make requests for this API operation to the Zonal endpoint. -// These endpoints support virtual-hosted-style requests in the format +// you have permission to access it. +// +// If the bucket does not exist or you do not have permission to access it, the +// HEAD request returns a generic 400 Bad Request , 403 Forbidden or 404 Not Found +// code. A message body is not included, so you cannot determine the exception +// beyond these HTTP response codes. +// +// Directory buckets - You must make requests for this API operation to the Zonal +// endpoint. These endpoints support virtual-hosted-style requests in the format // https://bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests -// are not supported. For more information, see Regional and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. Authentication and authorization All HeadBucket -// requests must be authenticated and signed by using IAM credentials (access key -// ID and secret access key for the IAM identities). All headers with the x-amz- -// prefix, including x-amz-copy-source , must be signed. For more information, see -// REST Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html) -// . Directory bucket - You must use IAM credentials to authenticate and authorize +// are not supported. For more information, see [Regional and Zonal endpoints]in the Amazon S3 User Guide. +// +// Authentication and authorization All HeadBucket requests must be authenticated +// and signed by using IAM credentials (access key ID and secret access key for the +// IAM identities). All headers with the x-amz- prefix, including x-amz-copy-source +// , must be signed. For more information, see [REST Authentication]. +// +// Directory bucket - You must use IAM credentials to authenticate and authorize // your access to the HeadBucket API operation, instead of using the temporary -// security credentials through the CreateSession API operation. Amazon Web -// Services CLI or SDKs handles authentication and authorization on your behalf. +// security credentials through the CreateSession API operation. +// +// Amazon Web Services CLI or SDKs handles authentication and authorization on +// your behalf. +// // Permissions +// // - General purpose bucket permissions - To use this operation, you must have // permissions to perform the s3:ListBucket action. The bucket owner has this // permission by default and can grant this permission to others. For more -// information about permissions, see Managing access permissions to your Amazon -// S3 resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// in the Amazon S3 User Guide. +// information about permissions, see [Managing access permissions to your Amazon S3 resources]in the Amazon S3 User Guide. +// // - Directory bucket permissions - You must have the s3express:CreateSession // permission in the Action element of a policy. By default, the session is in // the ReadWrite mode. If you want to restrict the access, you can explicitly set -// the s3express:SessionMode condition key to ReadOnly on the bucket. For more -// information about example bucket policies, see Example bucket policies for S3 -// Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) -// and Amazon Web Services Identity and Access Management (IAM) identity-based -// policies for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html) -// in the Amazon S3 User Guide. +// the s3express:SessionMode condition key to ReadOnly on the bucket. +// +// For more information about example bucket policies, see [Example bucket policies for S3 Express One Zone]and [Amazon Web Services Identity and Access Management (IAM) identity-based policies for S3 Express One Zone]in the Amazon S3 +// +// User Guide. // -// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is // Bucket_name.s3express-az_id.region.amazonaws.com . +// +// [Amazon Web Services Identity and Access Management (IAM) identity-based policies for S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html +// [REST Authentication]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html +// [Example bucket policies for S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [Managing access permissions to your Amazon S3 resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html func (c *Client) HeadBucket(ctx context.Context, params *HeadBucketInput, optFns ...func(*Options)) (*HeadBucketOutput, error) { if params == nil { params = &HeadBucketInput{} @@ -72,36 +84,46 @@ func (c *Client) HeadBucket(ctx context.Context, params *HeadBucketInput, optFns type HeadBucketInput struct { - // The bucket name. Directory buckets - When you use this operation with a - // directory bucket, you must use virtual-hosted-style requests in the format + // The bucket name. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use virtual-hosted-style requests in the format // Bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests are not // supported. Directory bucket names must be unique in the chosen Availability // Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for // example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 ). For information about bucket - // naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. Object Lambda access points - When you use this API - // operation with an Object Lambda access point, provide the alias of the Object - // Lambda access point in place of the bucket name. If the Object Lambda access - // point alias in a request is not valid, the error code - // InvalidAccessPointAliasError is returned. For more information about - // InvalidAccessPointAliasError , see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList) - // . Access points and Object Lambda access points are not supported by directory - // buckets. S3 on Outposts - When you use this action with Amazon S3 on Outposts, - // you must direct requests to the S3 on Outposts hostname. The S3 on Outposts - // hostname takes the form + // naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // Object Lambda access points - When you use this API operation with an Object + // Lambda access point, provide the alias of the Object Lambda access point in + // place of the bucket name. If the Object Lambda access point alias in a request + // is not valid, the error code InvalidAccessPointAliasError is returned. For more + // information about InvalidAccessPointAliasError , see [List of Error Codes]. + // + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html + // [List of Error Codes]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList // // This member is required. Bucket *string @@ -122,21 +144,26 @@ func (in *HeadBucketInput) bindEndpointParams(p *EndpointParameters) { type HeadBucketOutput struct { // Indicates whether the bucket name used in the request is an access point alias. + // // This functionality is not supported for directory buckets. AccessPointAlias *bool - // The name of the location where the bucket will be created. For directory - // buckets, the AZ ID of the Availability Zone where the bucket is created. An - // example AZ ID value is usw2-az1 . This functionality is only supported by - // directory buckets. + // The name of the location where the bucket will be created. + // + // For directory buckets, the AZ ID of the Availability Zone where the bucket is + // created. An example AZ ID value is usw2-az1 . + // + // This functionality is only supported by directory buckets. BucketLocationName *string - // The type of location where the bucket is created. This functionality is only - // supported by directory buckets. + // The type of location where the bucket is created. + // + // This functionality is only supported by directory buckets. BucketLocationType types.LocationType - // The Region that the bucket is located. This functionality is not supported for - // directory buckets. + // The Region that the bucket is located. + // + // This functionality is not supported for directory buckets. BucketRegion *string // Metadata pertaining to the operation's result. @@ -285,12 +312,13 @@ type BucketExistsWaiterOptions struct { // Retryable is function that can be used to override the service defined // waiter-behavior based on operation output, or returned error. This function is - // used by the waiter to decide if a state is retryable or a terminal state. By - // default service-modeled logic will populate this option. This option can thus be - // used to define a custom waiter state with fall-back to service-modeled waiter - // state mutators.The function returns an error in case of a failure state. In case - // of retry state, this function returns a bool value of true and nil error, while - // in case of success it returns a bool value of false and nil error. + // used by the waiter to decide if a state is retryable or a terminal state. + // + // By default service-modeled logic will populate this option. This option can + // thus be used to define a custom waiter state with fall-back to service-modeled + // waiter state mutators.The function returns an error in case of a failure state. + // In case of retry state, this function returns a bool value of true and nil + // error, while in case of success it returns a bool value of false and nil error. Retryable func(context.Context, *HeadBucketInput, *HeadBucketOutput, error) (bool, error) } @@ -450,12 +478,13 @@ type BucketNotExistsWaiterOptions struct { // Retryable is function that can be used to override the service defined // waiter-behavior based on operation output, or returned error. This function is - // used by the waiter to decide if a state is retryable or a terminal state. By - // default service-modeled logic will populate this option. This option can thus be - // used to define a custom waiter state with fall-back to service-modeled waiter - // state mutators.The function returns an error in case of a failure state. In case - // of retry state, this function returns a bool value of true and nil error, while - // in case of success it returns a bool value of false and nil error. + // used by the waiter to decide if a state is retryable or a terminal state. + // + // By default service-modeled logic will populate this option. This option can + // thus be used to define a custom waiter state with fall-back to service-modeled + // waiter state mutators.The function returns an error in case of a failure state. + // In case of retry state, this function returns a bool value of true and nil + // error, while in case of success it returns a bool value of false and nil error. Retryable func(context.Context, *HeadBucketInput, *HeadBucketOutput, error) (bool, error) } diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_HeadObject.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_HeadObject.go index 5b7e9b6c..7152daf0 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_HeadObject.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_HeadObject.go @@ -19,43 +19,52 @@ import ( // The HEAD operation retrieves metadata from an object without returning the // object itself. This operation is useful if you're interested only in an object's -// metadata. A HEAD request has the same options as a GET operation on an object. -// The response is identical to the GET response except that there is no response +// metadata. +// +// A HEAD request has the same options as a GET operation on an object. The +// response is identical to the GET response except that there is no response // body. Because of this, if the HEAD request generates an error, it returns a // generic code, such as 400 Bad Request , 403 Forbidden , 404 Not Found , 405 // Method Not Allowed , 412 Precondition Failed , or 304 Not Modified . It's not -// possible to retrieve the exact exception of these error codes. Request headers -// are limited to 8 KB in size. For more information, see Common Request Headers (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html) -// . Directory buckets - For directory buckets, you must make requests for this API +// possible to retrieve the exact exception of these error codes. +// +// Request headers are limited to 8 KB in size. For more information, see [Common Request Headers]. +// +// Directory buckets - For directory buckets, you must make requests for this API // operation to the Zonal endpoint. These endpoints support virtual-hosted-style // requests in the format // https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style -// requests are not supported. For more information, see Regional and Zonal -// endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. Permissions +// requests are not supported. For more information, see [Regional and Zonal endpoints]in the Amazon S3 User +// Guide. +// +// Permissions +// // - General purpose bucket permissions - To use HEAD , you must have the // s3:GetObject permission. You need the relevant read object (or version) -// permission for this operation. For more information, see Actions, resources, -// and condition keys for Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html) -// in the Amazon S3 User Guide. If the object you request doesn't exist, the error -// that Amazon S3 returns depends on whether you also have the s3:ListBucket -// permission. -// - If you have the s3:ListBucket permission on the bucket, Amazon S3 returns an -// HTTP status code 404 Not Found error. -// - If you don’t have the s3:ListBucket permission, Amazon S3 returns an HTTP -// status code 403 Forbidden error. -// - Directory bucket permissions - To grant access to this API operation on a -// directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// API operation for session-based authorization. Specifically, you grant the -// s3express:CreateSession permission to the directory bucket in a bucket policy -// or an IAM identity-based policy. Then, you make the CreateSession API call on -// the bucket to obtain a session token. With the session token in your request -// header, you can make API requests to this operation. After the session token -// expires, you make another CreateSession API call to generate a new session -// token for use. Amazon Web Services CLI or SDKs create session and refresh the -// session token automatically to avoid service interruptions when a session -// expires. For more information about authorization, see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// . +// permission for this operation. For more information, see [Actions, resources, and condition keys for Amazon S3]in the Amazon S3 +// User Guide. +// +// If the object you request doesn't exist, the error that Amazon S3 returns +// +// depends on whether you also have the s3:ListBucket permission. +// +// - If you have the s3:ListBucket permission on the bucket, Amazon S3 returns an +// HTTP status code 404 Not Found error. +// +// - If you don’t have the s3:ListBucket permission, Amazon S3 returns an HTTP +// status code 403 Forbidden error. +// +// - Directory bucket permissions - To grant access to this API operation on a +// directory bucket, we recommend that you use the [CreateSession]CreateSession API operation +// for session-based authorization. Specifically, you grant the +// s3express:CreateSession permission to the directory bucket in a bucket policy +// or an IAM identity-based policy. Then, you make the CreateSession API call on +// the bucket to obtain a session token. With the session token in your request +// header, you can make API requests to this operation. After the session token +// expires, you make another CreateSession API call to generate a new session +// token for use. Amazon Web Services CLI or SDKs create session and refresh the +// session token automatically to avoid service interruptions when a session +// expires. For more information about authorization, see [CreateSession]CreateSession . // // Encryption Encryption request headers, like x-amz-server-side-encryption , // should not be sent for HEAD requests if your object uses server-side encryption @@ -66,20 +75,26 @@ import ( // want to specify the encryption method. If you include this header in a HEAD // request for an object that uses these types of keys, you’ll get an HTTP 400 Bad // Request error. It's because the encryption method can't be changed when you -// retrieve the object. If you encrypt an object by using server-side encryption -// with customer-provided encryption keys (SSE-C) when you store the object in -// Amazon S3, then when you retrieve the metadata from the object, you must use the -// following headers to provide the encryption key for the server to be able to -// retrieve the object's metadata. The headers are: +// retrieve the object. +// +// If you encrypt an object by using server-side encryption with customer-provided +// encryption keys (SSE-C) when you store the object in Amazon S3, then when you +// retrieve the metadata from the object, you must use the following headers to +// provide the encryption key for the server to be able to retrieve the object's +// metadata. The headers are: +// // - x-amz-server-side-encryption-customer-algorithm +// // - x-amz-server-side-encryption-customer-key +// // - x-amz-server-side-encryption-customer-key-MD5 // -// For more information about SSE-C, see Server-Side Encryption (Using -// Customer-Provided Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) -// in the Amazon S3 User Guide. Directory bucket permissions - For directory -// buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) ( -// AES256 ) is supported. Versioning +// For more information about SSE-C, see [Server-Side Encryption (Using Customer-Provided Encryption Keys)] in the Amazon S3 User Guide. +// +// Directory bucket permissions - For directory buckets, only server-side +// encryption with Amazon S3 managed keys (SSE-S3) ( AES256 ) is supported. +// +// Versioning // // - If the current version of the object is a delete marker, Amazon S3 behaves // as if the object was deleted and includes x-amz-delete-marker: true in the @@ -95,11 +110,23 @@ import ( // supported by directory buckets. You can only specify null to the versionId // query parameter in the request. // -// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is -// Bucket_name.s3express-az_id.region.amazonaws.com . The following actions are -// related to HeadObject : -// - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) -// - GetObjectAttributes (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// Bucket_name.s3express-az_id.region.amazonaws.com . +// +// The following actions are related to HeadObject : +// +// [GetObject] +// +// [GetObjectAttributes] +// +// [Server-Side Encryption (Using Customer-Provided Encryption Keys)]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [GetObjectAttributes]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html +// [Actions, resources, and condition keys for Amazon S3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html +// [GetObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html +// [Common Request Headers]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html +// +// [CreateSession]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html func (c *Client) HeadObject(ctx context.Context, params *HeadObjectInput, optFns ...func(*Options)) (*HeadObjectOutput, error) { if params == nil { params = &HeadObjectInput{} @@ -117,31 +144,39 @@ func (c *Client) HeadObject(ctx context.Context, params *HeadObjectInput, optFns type HeadObjectInput struct { - // The name of the bucket that contains the object. Directory buckets - When you - // use this operation with a directory bucket, you must use virtual-hosted-style - // requests in the format Bucket_name.s3express-az_id.region.amazonaws.com . - // Path-style requests are not supported. Directory bucket names must be unique in - // the chosen Availability Zone. Bucket names must follow the format - // bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 - // ). For information about bucket naming restrictions, see Directory bucket - // naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. Access points and Object Lambda access points are - // not supported by directory buckets. S3 on Outposts - When you use this action - // with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts - // hostname. The S3 on Outposts hostname takes the form + // The name of the bucket that contains the object. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use virtual-hosted-style requests in the format + // Bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests are not + // supported. Directory bucket names must be unique in the chosen Availability + // Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for + // example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 ). For information about bucket + // naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -151,10 +186,11 @@ type HeadObjectInput struct { // This member is required. Key *string - // To retrieve the checksum, this parameter must be enabled. In addition, if you - // enable ChecksumMode and the object is encrypted with Amazon Web Services Key - // Management Service (Amazon Web Services KMS), you must have permission to use - // the kms:Decrypt action for the request to succeed. + // To retrieve the checksum, this parameter must be enabled. + // + // In addition, if you enable ChecksumMode and the object is encrypted with Amazon + // Web Services Key Management Service (Amazon Web Services KMS), you must have + // permission to use the kms:Decrypt action for the request to succeed. ChecksumMode types.ChecksumMode // The account ID of the expected bucket owner. If the account ID that you provide @@ -163,40 +199,71 @@ type HeadObjectInput struct { ExpectedBucketOwner *string // Return the object only if its entity tag (ETag) is the same as the one - // specified; otherwise, return a 412 (precondition failed) error. If both of the - // If-Match and If-Unmodified-Since headers are present in the request as follows: + // specified; otherwise, return a 412 (precondition failed) error. + // + // If both of the If-Match and If-Unmodified-Since headers are present in the + // request as follows: + // // - If-Match condition evaluates to true , and; + // // - If-Unmodified-Since condition evaluates to false ; - // Then Amazon S3 returns 200 OK and the data requested. For more information - // about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232) . + // + // Then Amazon S3 returns 200 OK and the data requested. + // + // For more information about conditional requests, see [RFC 7232]. + // + // [RFC 7232]: https://tools.ietf.org/html/rfc7232 IfMatch *string // Return the object only if it has been modified since the specified time; - // otherwise, return a 304 (not modified) error. If both of the If-None-Match and - // If-Modified-Since headers are present in the request as follows: + // otherwise, return a 304 (not modified) error. + // + // If both of the If-None-Match and If-Modified-Since headers are present in the + // request as follows: + // // - If-None-Match condition evaluates to false , and; + // // - If-Modified-Since condition evaluates to true ; - // Then Amazon S3 returns the 304 Not Modified response code. For more information - // about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232) . + // + // Then Amazon S3 returns the 304 Not Modified response code. + // + // For more information about conditional requests, see [RFC 7232]. + // + // [RFC 7232]: https://tools.ietf.org/html/rfc7232 IfModifiedSince *time.Time // Return the object only if its entity tag (ETag) is different from the one - // specified; otherwise, return a 304 (not modified) error. If both of the - // If-None-Match and If-Modified-Since headers are present in the request as - // follows: + // specified; otherwise, return a 304 (not modified) error. + // + // If both of the If-None-Match and If-Modified-Since headers are present in the + // request as follows: + // // - If-None-Match condition evaluates to false , and; + // // - If-Modified-Since condition evaluates to true ; - // Then Amazon S3 returns the 304 Not Modified response code. For more information - // about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232) . + // + // Then Amazon S3 returns the 304 Not Modified response code. + // + // For more information about conditional requests, see [RFC 7232]. + // + // [RFC 7232]: https://tools.ietf.org/html/rfc7232 IfNoneMatch *string // Return the object only if it has not been modified since the specified time; - // otherwise, return a 412 (precondition failed) error. If both of the If-Match - // and If-Unmodified-Since headers are present in the request as follows: + // otherwise, return a 412 (precondition failed) error. + // + // If both of the If-Match and If-Unmodified-Since headers are present in the + // request as follows: + // // - If-Match condition evaluates to true , and; + // // - If-Unmodified-Since condition evaluates to false ; - // Then Amazon S3 returns 200 OK and the data requested. For more information - // about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232) . + // + // Then Amazon S3 returns 200 OK and the data requested. + // + // For more information about conditional requests, see [RFC 7232]. + // + // [RFC 7232]: https://tools.ietf.org/html/rfc7232 IfUnmodifiedSince *time.Time // Part number of the object being read. This is a positive integer between 1 and @@ -214,33 +281,39 @@ type HeadObjectInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer - // Specifies the algorithm to use when encrypting the object (for example, - // AES256). This functionality is not supported for directory buckets. + // Specifies the algorithm to use when encrypting the object (for example, AES256). + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string // Specifies the customer-provided encryption key for Amazon S3 to use in // encrypting data. This value is used to store the object and then it is // discarded; Amazon S3 does not store the encryption key. The key must be // appropriate for use with the algorithm specified in the - // x-amz-server-side-encryption-customer-algorithm header. This functionality is - // not supported for directory buckets. + // x-amz-server-side-encryption-customer-algorithm header. + // + // This functionality is not supported for directory buckets. SSECustomerKey *string // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure that the - // encryption key was transmitted without error. This functionality is not - // supported for directory buckets. + // encryption key was transmitted without error. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string - // Version ID used to reference a specific version of the object. For directory - // buckets in this API operation, only the null value of the version ID is - // supported. + // Version ID used to reference a specific version of the object. + // + // For directory buckets in this API operation, only the null value of the version + // ID is supported. VersionId *string noSmithyDocumentSerde @@ -257,13 +330,15 @@ type HeadObjectOutput struct { // Indicates that a range of bytes was specified. AcceptRanges *string - // The archive state of the head object. This functionality is not supported for - // directory buckets. + // The archive state of the head object. + // + // This functionality is not supported for directory buckets. ArchiveStatus types.ArchiveStatus // Indicates whether the object uses an S3 Bucket Key for server-side encryption - // with Key Management Service (KMS) keys (SSE-KMS). This functionality is not - // supported for directory buckets. + // with Key Management Service (KMS) keys (SSE-KMS). + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool // Specifies caching behavior along the request/reply chain. @@ -274,8 +349,10 @@ type HeadObjectOutput struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumCRC32 *string // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be @@ -283,8 +360,10 @@ type HeadObjectOutput struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumCRC32C *string // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be @@ -292,8 +371,10 @@ type HeadObjectOutput struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumSHA1 *string // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be @@ -301,8 +382,10 @@ type HeadObjectOutput struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumSHA256 *string // Specifies presentational information for the object. @@ -323,24 +406,36 @@ type HeadObjectOutput struct { ContentType *string // Specifies whether the object retrieved was (true) or was not (false) a Delete - // Marker. If false, this response header does not appear in the response. This - // functionality is not supported for directory buckets. + // Marker. If false, this response header does not appear in the response. + // + // This functionality is not supported for directory buckets. DeleteMarker *bool // An entity tag (ETag) is an opaque identifier assigned by a web server to a // specific version of a resource found at a URL. ETag *string - // If the object expiration is configured (see PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) - // ), the response includes this header. It includes the expiry-date and rule-id + // If the object expiration is configured (see [PutBucketLifecycleConfiguration]PutBucketLifecycleConfiguration ), + // the response includes this header. It includes the expiry-date and rule-id // key-value pairs providing object expiration information. The value of the - // rule-id is URL-encoded. This functionality is not supported for directory - // buckets. + // rule-id is URL-encoded. + // + // This functionality is not supported for directory buckets. + // + // [PutBucketLifecycleConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html Expiration *string // The date and time at which the object is no longer cacheable. + // + // Deprecated: This field is handled inconsistently across AWS SDKs. Prefer using + // the ExpiresString field which contains the unparsed value from the service + // response. Expires *time.Time + // The unparsed value of the Expires field from the service response. Prefer use + // of this value over the normal Expires response field where possible. + ExpiresString *string + // Date and time when the object was last modified. LastModified *time.Time @@ -352,26 +447,34 @@ type HeadObjectOutput struct { // This is set to the number of metadata entries not returned in x-amz-meta // headers. This can happen if you create metadata using an API like SOAP that // supports more flexible metadata than the REST API. For example, using SOAP, you - // can create metadata whose values are not legal HTTP headers. This functionality - // is not supported for directory buckets. + // can create metadata whose values are not legal HTTP headers. + // + // This functionality is not supported for directory buckets. MissingMeta *int32 // Specifies whether a legal hold is in effect for this object. This header is // only returned if the requester has the s3:GetObjectLegalHold permission. This // header is not returned if the specified version of this object has never had a - // legal hold applied. For more information about S3 Object Lock, see Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) - // . This functionality is not supported for directory buckets. + // legal hold applied. For more information about S3 Object Lock, see [Object Lock]. + // + // This functionality is not supported for directory buckets. + // + // [Object Lock]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html ObjectLockLegalHoldStatus types.ObjectLockLegalHoldStatus // The Object Lock mode, if any, that's in effect for this object. This header is // only returned if the requester has the s3:GetObjectRetention permission. For - // more information about S3 Object Lock, see Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) - // . This functionality is not supported for directory buckets. + // more information about S3 Object Lock, see [Object Lock]. + // + // This functionality is not supported for directory buckets. + // + // [Object Lock]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html ObjectLockMode types.ObjectLockMode // The date and time when the Object Lock retention period expires. This header is - // only returned if the requester has the s3:GetObjectRetention permission. This - // functionality is not supported for directory buckets. + // only returned if the requester has the s3:GetObjectRetention permission. + // + // This functionality is not supported for directory buckets. ObjectLockRetainUntilDate *time.Time // The count of parts this object has. This value is only returned if you specify @@ -379,89 +482,121 @@ type HeadObjectOutput struct { PartsCount *int32 // Amazon S3 can return this header if your request involves a bucket that is - // either a source or a destination in a replication rule. In replication, you have - // a source bucket on which you configure replication and destination bucket or - // buckets where Amazon S3 stores object replicas. When you request an object ( - // GetObject ) or object metadata ( HeadObject ) from these buckets, Amazon S3 will - // return the x-amz-replication-status header in the response as follows: + // either a source or a destination in a replication rule. + // + // In replication, you have a source bucket on which you configure replication and + // destination bucket or buckets where Amazon S3 stores object replicas. When you + // request an object ( GetObject ) or object metadata ( HeadObject ) from these + // buckets, Amazon S3 will return the x-amz-replication-status header in the + // response as follows: + // // - If requesting an object from the source bucket, Amazon S3 will return the // x-amz-replication-status header if the object in your request is eligible for - // replication. For example, suppose that in your replication configuration, you - // specify object prefix TaxDocs requesting Amazon S3 to replicate objects with - // key prefix TaxDocs . Any objects you upload with this key name prefix, for - // example TaxDocs/document1.pdf , are eligible for replication. For any object - // request with this key name prefix, Amazon S3 will return the - // x-amz-replication-status header with value PENDING, COMPLETED or FAILED - // indicating object replication status. + // replication. + // + // For example, suppose that in your replication configuration, you specify object + // prefix TaxDocs requesting Amazon S3 to replicate objects with key prefix + // TaxDocs . Any objects you upload with this key name prefix, for example + // TaxDocs/document1.pdf , are eligible for replication. For any object request + // with this key name prefix, Amazon S3 will return the x-amz-replication-status + // header with value PENDING, COMPLETED or FAILED indicating object replication + // status. + // // - If requesting an object from a destination bucket, Amazon S3 will return // the x-amz-replication-status header with value REPLICA if the object in your // request is a replica that Amazon S3 created and there is no replica modification // replication in progress. + // // - When replicating objects to multiple destination buckets, the // x-amz-replication-status header acts differently. The header of the source // object will only return a value of COMPLETED when replication is successful to // all destinations. The header will remain at value PENDING until replication has // completed for all destinations. If one or more destinations fails replication // the header will return FAILED. - // For more information, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) - // . This functionality is not supported for directory buckets. + // + // For more information, see [Replication]. + // + // This functionality is not supported for directory buckets. + // + // [Replication]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html ReplicationStatus types.ReplicationStatus // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // If the object is an archived object (an object whose storage class is GLACIER), // the response includes this header if either the archive restoration is in - // progress (see RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html) - // or an archive copy is already restored. If an archive copy is already restored, - // the header value indicates when Amazon S3 is scheduled to delete the object - // copy. For example: x-amz-restore: ongoing-request="false", expiry-date="Fri, 21 - // Dec 2012 00:00:00 GMT" If the object restoration is in progress, the header - // returns the value ongoing-request="true" . For more information about archiving - // objects, see Transitioning Objects: General Considerations (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-transition-general-considerations) - // . This functionality is not supported for directory buckets. Only the S3 Express + // progress (see [RestoreObject]or an archive copy is already restored. + // + // If an archive copy is already restored, the header value indicates when Amazon + // S3 is scheduled to delete the object copy. For example: + // + // x-amz-restore: ongoing-request="false", expiry-date="Fri, 21 Dec 2012 00:00:00 + // GMT" + // + // If the object restoration is in progress, the header returns the value + // ongoing-request="true" . + // + // For more information about archiving objects, see [Transitioning Objects: General Considerations]. + // + // This functionality is not supported for directory buckets. Only the S3 Express // One Zone storage class is supported by directory buckets to store objects. + // + // [Transitioning Objects: General Considerations]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-transition-general-considerations + // [RestoreObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html Restore *string // If server-side encryption with a customer-provided encryption key was // requested, the response will include this header to confirm the encryption - // algorithm that's used. This functionality is not supported for directory - // buckets. + // algorithm that's used. + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string // If server-side encryption with a customer-provided encryption key was // requested, the response will include this header to provide the round-trip - // message integrity verification of the customer-provided encryption key. This - // functionality is not supported for directory buckets. + // message integrity verification of the customer-provided encryption key. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string // If present, indicates the ID of the Key Management Service (KMS) symmetric - // encryption customer managed key that was used for the object. This functionality - // is not supported for directory buckets. + // encryption customer managed key that was used for the object. + // + // This functionality is not supported for directory buckets. SSEKMSKeyId *string // The server-side encryption algorithm used when you store this object in Amazon - // S3 (for example, AES256 , aws:kms , aws:kms:dsse ). For directory buckets, only - // server-side encryption with Amazon S3 managed keys (SSE-S3) ( AES256 ) is - // supported. + // S3 (for example, AES256 , aws:kms , aws:kms:dsse ). + // + // For directory buckets, only server-side encryption with Amazon S3 managed keys + // (SSE-S3) ( AES256 ) is supported. ServerSideEncryption types.ServerSideEncryption // Provides storage class information of the object. Amazon S3 returns this header - // for all objects except for S3 Standard storage class objects. For more - // information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) - // . Directory buckets - Only the S3 Express One Zone storage class is supported by + // for all objects except for S3 Standard storage class objects. + // + // For more information, see [Storage Classes]. + // + // Directory buckets - Only the S3 Express One Zone storage class is supported by // directory buckets to store objects. + // + // [Storage Classes]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html StorageClass types.StorageClass - // Version ID of the object. This functionality is not supported for directory - // buckets. + // Version ID of the object. + // + // This functionality is not supported for directory buckets. VersionId *string // If the bucket is configured as a website, redirects requests for this object to // another object in the same bucket or to an external URL. Amazon S3 stores the - // value of this header in the object metadata. This functionality is not supported - // for directory buckets. + // value of this header in the object metadata. + // + // This functionality is not supported for directory buckets. WebsiteRedirectLocation *string // Metadata pertaining to the operation's result. @@ -610,12 +745,13 @@ type ObjectExistsWaiterOptions struct { // Retryable is function that can be used to override the service defined // waiter-behavior based on operation output, or returned error. This function is - // used by the waiter to decide if a state is retryable or a terminal state. By - // default service-modeled logic will populate this option. This option can thus be - // used to define a custom waiter state with fall-back to service-modeled waiter - // state mutators.The function returns an error in case of a failure state. In case - // of retry state, this function returns a bool value of true and nil error, while - // in case of success it returns a bool value of false and nil error. + // used by the waiter to decide if a state is retryable or a terminal state. + // + // By default service-modeled logic will populate this option. This option can + // thus be used to define a custom waiter state with fall-back to service-modeled + // waiter state mutators.The function returns an error in case of a failure state. + // In case of retry state, this function returns a bool value of true and nil + // error, while in case of success it returns a bool value of false and nil error. Retryable func(context.Context, *HeadObjectInput, *HeadObjectOutput, error) (bool, error) } @@ -775,12 +911,13 @@ type ObjectNotExistsWaiterOptions struct { // Retryable is function that can be used to override the service defined // waiter-behavior based on operation output, or returned error. This function is - // used by the waiter to decide if a state is retryable or a terminal state. By - // default service-modeled logic will populate this option. This option can thus be - // used to define a custom waiter state with fall-back to service-modeled waiter - // state mutators.The function returns an error in case of a failure state. In case - // of retry state, this function returns a bool value of true and nil error, while - // in case of success it returns a bool value of false and nil error. + // used by the waiter to decide if a state is retryable or a terminal state. + // + // By default service-modeled logic will populate this option. This option can + // thus be used to define a custom waiter state with fall-back to service-modeled + // waiter state mutators.The function returns an error in case of a failure state. + // In case of retry state, this function returns a bool value of true and nil + // error, while in case of success it returns a bool value of false and nil error. Retryable func(context.Context, *HeadObjectInput, *HeadObjectOutput, error) (bool, error) } diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketAnalyticsConfigurations.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketAnalyticsConfigurations.go index 67b7571c..bc31e569 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketAnalyticsConfigurations.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketAnalyticsConfigurations.go @@ -14,27 +14,40 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Lists the analytics -// configurations for the bucket. You can have up to 1,000 analytics configurations -// per bucket. This action supports list pagination and does not return more than -// 100 configurations at a time. You should always check the IsTruncated element -// in the response. If there are no more configurations to list, IsTruncated is -// set to false. If there are more configurations to list, IsTruncated is set to -// true, and there will be a value in NextContinuationToken . You use the +// This operation is not supported by directory buckets. +// +// Lists the analytics configurations for the bucket. You can have up to 1,000 +// analytics configurations per bucket. +// +// This action supports list pagination and does not return more than 100 +// configurations at a time. You should always check the IsTruncated element in +// the response. If there are no more configurations to list, IsTruncated is set +// to false. If there are more configurations to list, IsTruncated is set to true, +// and there will be a value in NextContinuationToken . You use the // NextContinuationToken value to continue the pagination of the list by passing -// the value in continuation-token in the request to GET the next page. To use -// this operation, you must have permissions to perform the +// the value in continuation-token in the request to GET the next page. +// +// To use this operation, you must have permissions to perform the // s3:GetAnalyticsConfiguration action. The bucket owner has this permission by // default. The bucket owner can grant this permission to others. For more -// information about permissions, see Permissions Related to Bucket Subresource -// Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . For information about Amazon S3 analytics feature, see Amazon S3 Analytics – -// Storage Class Analysis (https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html) -// . The following operations are related to ListBucketAnalyticsConfigurations : -// - GetBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html) -// - DeleteBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html) -// - PutBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html) +// information about permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to Your Amazon S3 Resources]. +// +// For information about Amazon S3 analytics feature, see [Amazon S3 Analytics – Storage Class Analysis]. +// +// The following operations are related to ListBucketAnalyticsConfigurations : +// +// [GetBucketAnalyticsConfiguration] +// +// [DeleteBucketAnalyticsConfiguration] +// +// [PutBucketAnalyticsConfiguration] +// +// [Amazon S3 Analytics – Storage Class Analysis]: https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html +// [DeleteBucketAnalyticsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [GetBucketAnalyticsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html +// [PutBucketAnalyticsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html func (c *Client) ListBucketAnalyticsConfigurations(ctx context.Context, params *ListBucketAnalyticsConfigurationsInput, optFns ...func(*Options)) (*ListBucketAnalyticsConfigurationsOutput, error) { if params == nil { params = &ListBucketAnalyticsConfigurationsInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketIntelligentTieringConfigurations.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketIntelligentTieringConfigurations.go index 729f8785..0a6cb145 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketIntelligentTieringConfigurations.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketIntelligentTieringConfigurations.go @@ -14,25 +14,38 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Lists the S3 -// Intelligent-Tiering configuration from the specified bucket. The S3 -// Intelligent-Tiering storage class is designed to optimize storage costs by -// automatically moving data to the most cost-effective storage access tier, +// This operation is not supported by directory buckets. +// +// Lists the S3 Intelligent-Tiering configuration from the specified bucket. +// +// The S3 Intelligent-Tiering storage class is designed to optimize storage costs +// by automatically moving data to the most cost-effective storage access tier, // without performance impact or operational overhead. S3 Intelligent-Tiering // delivers automatic cost savings in three low latency and high throughput access // tiers. To get the lowest storage cost on data that can be accessed in minutes to -// hours, you can choose to activate additional archiving capabilities. The S3 -// Intelligent-Tiering storage class is the ideal storage class for data with -// unknown, changing, or unpredictable access patterns, independent of object size -// or retention period. If the size of an object is less than 128 KB, it is not -// monitored and not eligible for auto-tiering. Smaller objects can be stored, but -// they are always charged at the Frequent Access tier rates in the S3 -// Intelligent-Tiering storage class. For more information, see Storage class for -// automatically optimizing frequently and infrequently accessed objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) -// . Operations related to ListBucketIntelligentTieringConfigurations include: -// - DeleteBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) -// - PutBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html) -// - GetBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html) +// hours, you can choose to activate additional archiving capabilities. +// +// The S3 Intelligent-Tiering storage class is the ideal storage class for data +// with unknown, changing, or unpredictable access patterns, independent of object +// size or retention period. If the size of an object is less than 128 KB, it is +// not monitored and not eligible for auto-tiering. Smaller objects can be stored, +// but they are always charged at the Frequent Access tier rates in the S3 +// Intelligent-Tiering storage class. +// +// For more information, see [Storage class for automatically optimizing frequently and infrequently accessed objects]. +// +// Operations related to ListBucketIntelligentTieringConfigurations include: +// +// [DeleteBucketIntelligentTieringConfiguration] +// +// [PutBucketIntelligentTieringConfiguration] +// +// [GetBucketIntelligentTieringConfiguration] +// +// [GetBucketIntelligentTieringConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html +// [PutBucketIntelligentTieringConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html +// [Storage class for automatically optimizing frequently and infrequently accessed objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access +// [DeleteBucketIntelligentTieringConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html func (c *Client) ListBucketIntelligentTieringConfigurations(ctx context.Context, params *ListBucketIntelligentTieringConfigurationsInput, optFns ...func(*Options)) (*ListBucketIntelligentTieringConfigurationsOutput, error) { if params == nil { params = &ListBucketIntelligentTieringConfigurationsInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketInventoryConfigurations.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketInventoryConfigurations.go index 6c879048..fa760e6c 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketInventoryConfigurations.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketInventoryConfigurations.go @@ -14,26 +14,40 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Returns a list of -// inventory configurations for the bucket. You can have up to 1,000 analytics -// configurations per bucket. This action supports list pagination and does not -// return more than 100 configurations at a time. Always check the IsTruncated -// element in the response. If there are no more configurations to list, -// IsTruncated is set to false. If there are more configurations to list, -// IsTruncated is set to true, and there is a value in NextContinuationToken . You -// use the NextContinuationToken value to continue the pagination of the list by -// passing the value in continuation-token in the request to GET the next page. To -// use this operation, you must have permissions to perform the +// This operation is not supported by directory buckets. +// +// Returns a list of inventory configurations for the bucket. You can have up to +// 1,000 analytics configurations per bucket. +// +// This action supports list pagination and does not return more than 100 +// configurations at a time. Always check the IsTruncated element in the response. +// If there are no more configurations to list, IsTruncated is set to false. If +// there are more configurations to list, IsTruncated is set to true, and there is +// a value in NextContinuationToken . You use the NextContinuationToken value to +// continue the pagination of the list by passing the value in continuation-token +// in the request to GET the next page. +// +// To use this operation, you must have permissions to perform the // s3:GetInventoryConfiguration action. The bucket owner has this permission by // default. The bucket owner can grant this permission to others. For more -// information about permissions, see Permissions Related to Bucket Subresource -// Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . For information about the Amazon S3 inventory feature, see Amazon S3 Inventory (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html) +// information about permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to Your Amazon S3 Resources]. +// +// For information about the Amazon S3 inventory feature, see [Amazon S3 Inventory] +// // The following operations are related to ListBucketInventoryConfigurations : -// - GetBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) -// - DeleteBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html) -// - PutBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html) +// +// [GetBucketInventoryConfiguration] +// +// [DeleteBucketInventoryConfiguration] +// +// [PutBucketInventoryConfiguration] +// +// [Amazon S3 Inventory]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [DeleteBucketInventoryConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html +// [PutBucketInventoryConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html +// [GetBucketInventoryConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html func (c *Client) ListBucketInventoryConfigurations(ctx context.Context, params *ListBucketInventoryConfigurationsInput, optFns ...func(*Options)) (*ListBucketInventoryConfigurationsOutput, error) { if params == nil { params = &ListBucketInventoryConfigurationsInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketMetricsConfigurations.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketMetricsConfigurations.go index 0b6ca947..efae4c5c 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketMetricsConfigurations.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBucketMetricsConfigurations.go @@ -13,28 +13,42 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Lists the metrics -// configurations for the bucket. The metrics configurations are only for the -// request metrics of the bucket and do not provide information on daily storage -// metrics. You can have up to 1,000 configurations per bucket. This action -// supports list pagination and does not return more than 100 configurations at a -// time. Always check the IsTruncated element in the response. If there are no -// more configurations to list, IsTruncated is set to false. If there are more -// configurations to list, IsTruncated is set to true, and there is a value in -// NextContinuationToken . You use the NextContinuationToken value to continue the -// pagination of the list by passing the value in continuation-token in the -// request to GET the next page. To use this operation, you must have permissions -// to perform the s3:GetMetricsConfiguration action. The bucket owner has this -// permission by default. The bucket owner can grant this permission to others. For -// more information about permissions, see Permissions Related to Bucket -// Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . For more information about metrics configurations and CloudWatch request -// metrics, see Monitoring Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html) -// . The following operations are related to ListBucketMetricsConfigurations : -// - PutBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) -// - GetBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html) -// - DeleteBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html) +// This operation is not supported by directory buckets. +// +// Lists the metrics configurations for the bucket. The metrics configurations are +// only for the request metrics of the bucket and do not provide information on +// daily storage metrics. You can have up to 1,000 configurations per bucket. +// +// This action supports list pagination and does not return more than 100 +// configurations at a time. Always check the IsTruncated element in the response. +// If there are no more configurations to list, IsTruncated is set to false. If +// there are more configurations to list, IsTruncated is set to true, and there is +// a value in NextContinuationToken . You use the NextContinuationToken value to +// continue the pagination of the list by passing the value in continuation-token +// in the request to GET the next page. +// +// To use this operation, you must have permissions to perform the +// s3:GetMetricsConfiguration action. The bucket owner has this permission by +// default. The bucket owner can grant this permission to others. For more +// information about permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to Your Amazon S3 Resources]. +// +// For more information about metrics configurations and CloudWatch request +// metrics, see [Monitoring Metrics with Amazon CloudWatch]. +// +// The following operations are related to ListBucketMetricsConfigurations : +// +// [PutBucketMetricsConfiguration] +// +// [GetBucketMetricsConfiguration] +// +// [DeleteBucketMetricsConfiguration] +// +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [Monitoring Metrics with Amazon CloudWatch]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html +// [GetBucketMetricsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html +// [PutBucketMetricsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html +// [DeleteBucketMetricsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html func (c *Client) ListBucketMetricsConfigurations(ctx context.Context, params *ListBucketMetricsConfigurationsInput, optFns ...func(*Options)) (*ListBucketMetricsConfigurationsOutput, error) { if params == nil { params = &ListBucketMetricsConfigurationsInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBuckets.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBuckets.go index 086d9d29..dd5396f1 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBuckets.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListBuckets.go @@ -13,11 +13,14 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Returns a list of all -// buckets owned by the authenticated sender of the request. To use this operation, -// you must have the s3:ListAllMyBuckets permission. For information about Amazon -// S3 buckets, see Creating, configuring, and working with Amazon S3 buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html) -// . +// This operation is not supported by directory buckets. +// +// Returns a list of all buckets owned by the authenticated sender of the request. +// To use this operation, you must have the s3:ListAllMyBuckets permission. +// +// For information about Amazon S3 buckets, see [Creating, configuring, and working with Amazon S3 buckets]. +// +// [Creating, configuring, and working with Amazon S3 buckets]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html func (c *Client) ListBuckets(ctx context.Context, params *ListBucketsInput, optFns ...func(*Options)) (*ListBucketsOutput, error) { if params == nil { params = &ListBucketsInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListDirectoryBuckets.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListDirectoryBuckets.go index 3ebf78af..16cefddd 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListDirectoryBuckets.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListDirectoryBuckets.go @@ -15,23 +15,27 @@ import ( ) // Returns a list of all Amazon S3 directory buckets owned by the authenticated -// sender of the request. For more information about directory buckets, see -// Directory buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html) -// in the Amazon S3 User Guide. Directory buckets - For directory buckets, you must -// make requests for this API operation to the Regional endpoint. These endpoints -// support path-style requests in the format -// https://s3express-control.region_code.amazonaws.com/bucket-name . -// Virtual-hosted-style requests aren't supported. For more information, see -// Regional and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. Permissions You must have the -// s3express:ListAllMyDirectoryBuckets permission in an IAM identity-based policy -// instead of a bucket policy. Cross-account access to this API operation isn't -// supported. This operation can only be performed by the Amazon Web Services -// account that owns the resource. For more information about directory bucket -// policies and permissions, see Amazon Web Services Identity and Access -// Management (IAM) for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) -// in the Amazon S3 User Guide. HTTP Host header syntax Directory buckets - The -// HTTP Host header syntax is s3express-control.region.amazonaws.com . +// sender of the request. For more information about directory buckets, see [Directory buckets]in the +// Amazon S3 User Guide. +// +// Directory buckets - For directory buckets, you must make requests for this API +// operation to the Regional endpoint. These endpoints support path-style requests +// in the format https://s3express-control.region_code.amazonaws.com/bucket-name . +// Virtual-hosted-style requests aren't supported. For more information, see [Regional and Zonal endpoints]in +// the Amazon S3 User Guide. +// +// Permissions You must have the s3express:ListAllMyDirectoryBuckets permission in +// an IAM identity-based policy instead of a bucket policy. Cross-account access to +// this API operation isn't supported. This operation can only be performed by the +// Amazon Web Services account that owns the resource. For more information about +// directory bucket policies and permissions, see [Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone]in the Amazon S3 User Guide. +// +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// s3express-control.region.amazonaws.com . +// +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [Directory buckets]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html +// [Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html func (c *Client) ListDirectoryBuckets(ctx context.Context, params *ListDirectoryBucketsInput, optFns ...func(*Options)) (*ListDirectoryBucketsOutput, error) { if params == nil { params = &ListDirectoryBucketsInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListMultipartUploads.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListMultipartUploads.go index 18377365..a6c450b3 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListMultipartUploads.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListMultipartUploads.go @@ -16,38 +16,45 @@ import ( // This operation lists in-progress multipart uploads in a bucket. An in-progress // multipart upload is a multipart upload that has been initiated by the // CreateMultipartUpload request, but has not yet been completed or aborted. +// // Directory buckets - If multipart uploads in a directory bucket are in progress, // you can't delete the bucket until all the in-progress multipart uploads are -// aborted or completed. The ListMultipartUploads operation returns a maximum of -// 1,000 multipart uploads in the response. The limit of 1,000 multipart uploads is -// also the default value. You can further limit the number of uploads in a -// response by specifying the max-uploads request parameter. If there are more -// than 1,000 multipart uploads that satisfy your ListMultipartUploads request, -// the response returns an IsTruncated element with the value of true , a -// NextKeyMarker element, and a NextUploadIdMarker element. To list the remaining -// multipart uploads, you need to make subsequent ListMultipartUploads requests. -// In these requests, include two query parameters: key-marker and upload-id-marker -// . Set the value of key-marker to the NextKeyMarker value from the previous -// response. Similarly, set the value of upload-id-marker to the NextUploadIdMarker -// value from the previous response. Directory buckets - The upload-id-marker -// element and the NextUploadIdMarker element aren't supported by directory -// buckets. To list the additional multipart uploads, you only need to set the -// value of key-marker to the NextKeyMarker value from the previous response. For -// more information about multipart uploads, see Uploading Objects Using Multipart -// Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) -// in the Amazon S3 User Guide. Directory buckets - For directory buckets, you must -// make requests for this API operation to the Zonal endpoint. These endpoints -// support virtual-hosted-style requests in the format +// aborted or completed. +// +// The ListMultipartUploads operation returns a maximum of 1,000 multipart uploads +// in the response. The limit of 1,000 multipart uploads is also the default value. +// You can further limit the number of uploads in a response by specifying the +// max-uploads request parameter. If there are more than 1,000 multipart uploads +// that satisfy your ListMultipartUploads request, the response returns an +// IsTruncated element with the value of true , a NextKeyMarker element, and a +// NextUploadIdMarker element. To list the remaining multipart uploads, you need to +// make subsequent ListMultipartUploads requests. In these requests, include two +// query parameters: key-marker and upload-id-marker . Set the value of key-marker +// to the NextKeyMarker value from the previous response. Similarly, set the value +// of upload-id-marker to the NextUploadIdMarker value from the previous response. +// +// Directory buckets - The upload-id-marker element and the NextUploadIdMarker +// element aren't supported by directory buckets. To list the additional multipart +// uploads, you only need to set the value of key-marker to the NextKeyMarker +// value from the previous response. +// +// For more information about multipart uploads, see [Uploading Objects Using Multipart Upload] in the Amazon S3 User Guide. +// +// Directory buckets - For directory buckets, you must make requests for this API +// operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format // https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style -// requests are not supported. For more information, see Regional and Zonal -// endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. Permissions +// requests are not supported. For more information, see [Regional and Zonal endpoints]in the Amazon S3 User +// Guide. +// +// Permissions +// // - General purpose bucket permissions - For information about permissions -// required to use the multipart upload API, see Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) -// in the Amazon S3 User Guide. +// required to use the multipart upload API, see [Multipart Upload and Permissions]in the Amazon S3 User Guide. +// // - Directory bucket permissions - To grant access to this API operation on a -// directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// API operation for session-based authorization. Specifically, you grant the +// directory bucket, we recommend that you use the [CreateSession]CreateSession API operation +// for session-based authorization. Specifically, you grant the // s3express:CreateSession permission to the directory bucket in a bucket policy // or an IAM identity-based policy. Then, you make the CreateSession API call on // the bucket to obtain a session token. With the session token in your request @@ -55,29 +62,48 @@ import ( // expires, you make another CreateSession API call to generate a new session // token for use. Amazon Web Services CLI or SDKs create session and refresh the // session token automatically to avoid service interruptions when a session -// expires. For more information about authorization, see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// . +// expires. For more information about authorization, see [CreateSession]CreateSession . // // Sorting of multipart uploads in response +// // - General purpose bucket - In the ListMultipartUploads response, the multipart // uploads are sorted based on two criteria: +// // - Key-based sorting - Multipart uploads are initially sorted in ascending // order based on their object keys. +// // - Time-based sorting - For uploads that share the same object key, they are // further sorted in ascending order based on the upload initiation time. Among // uploads with the same key, the one that was initiated first will appear before // the ones that were initiated later. +// // - Directory bucket - In the ListMultipartUploads response, the multipart // uploads aren't sorted lexicographically based on the object keys. // -// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is -// Bucket_name.s3express-az_id.region.amazonaws.com . The following operations are -// related to ListMultipartUploads : -// - CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) -// - UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) -// - CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) -// - ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) -// - AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// Bucket_name.s3express-az_id.region.amazonaws.com . +// +// The following operations are related to ListMultipartUploads : +// +// [CreateMultipartUpload] +// +// [UploadPart] +// +// [CompleteMultipartUpload] +// +// [ListParts] +// +// [AbortMultipartUpload] +// +// [Uploading Objects Using Multipart Upload]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html +// [ListParts]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html +// [AbortMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html +// [UploadPart]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [CreateSession]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html +// [Multipart Upload and Permissions]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html +// [CompleteMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html +// [CreateMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html func (c *Client) ListMultipartUploads(ctx context.Context, params *ListMultipartUploadsInput, optFns ...func(*Options)) (*ListMultipartUploadsOutput, error) { if params == nil { params = &ListMultipartUploadsInput{} @@ -95,42 +121,52 @@ func (c *Client) ListMultipartUploads(ctx context.Context, params *ListMultipart type ListMultipartUploadsInput struct { - // The name of the bucket to which the multipart upload was initiated. Directory - // buckets - When you use this operation with a directory bucket, you must use - // virtual-hosted-style requests in the format + // The name of the bucket to which the multipart upload was initiated. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use virtual-hosted-style requests in the format // Bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests are not // supported. Directory bucket names must be unique in the chosen Availability // Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for // example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 ). For information about bucket - // naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. Access points and Object Lambda access points are - // not supported by directory buckets. S3 on Outposts - When you use this action - // with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts - // hostname. The S3 on Outposts hostname takes the form + // naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string - // Character you use to group keys. All keys that contain the same string between - // the prefix, if specified, and the first occurrence of the delimiter after the - // prefix are grouped under a single result element, CommonPrefixes . If you don't - // specify the prefix parameter, then the substring starts at the beginning of the - // key. The keys that are grouped under CommonPrefixes result element are not - // returned elsewhere in the response. Directory buckets - For directory buckets, / - // is the only supported delimiter. + // Character you use to group keys. + // + // All keys that contain the same string between the prefix, if specified, and the + // first occurrence of the delimiter after the prefix are grouped under a single + // result element, CommonPrefixes . If you don't specify the prefix parameter, then + // the substring starts at the beginning of the key. The keys that are grouped + // under CommonPrefixes result element are not returned elsewhere in the response. + // + // Directory buckets - For directory buckets, / is the only supported delimiter. Delimiter *string // Requests Amazon S3 to encode the object keys in the response and specifies the @@ -147,20 +183,26 @@ type ListMultipartUploadsInput struct { ExpectedBucketOwner *string // Specifies the multipart upload after which listing should begin. + // // - General purpose buckets - For general purpose buckets, key-marker is an // object key. Together with upload-id-marker , this parameter specifies the - // multipart upload after which listing should begin. If upload-id-marker is not - // specified, only the keys lexicographically greater than the specified - // key-marker will be included in the list. If upload-id-marker is specified, any - // multipart uploads for a key equal to the key-marker might also be included, - // provided those multipart uploads have upload IDs lexicographically greater than - // the specified upload-id-marker . + // multipart upload after which listing should begin. + // + // If upload-id-marker is not specified, only the keys lexicographically greater + // than the specified key-marker will be included in the list. + // + // If upload-id-marker is specified, any multipart uploads for a key equal to the + // key-marker might also be included, provided those multipart uploads have + // upload IDs lexicographically greater than the specified upload-id-marker . + // // - Directory buckets - For directory buckets, key-marker is obfuscated and // isn't a real object key. The upload-id-marker parameter isn't supported by // directory buckets. To list the additional multipart uploads, you only need to // set the value of key-marker to the NextKeyMarker value from the previous - // response. In the ListMultipartUploads response, the multipart uploads aren't - // sorted lexicographically based on the object keys. + // response. + // + // In the ListMultipartUploads response, the multipart uploads aren't sorted + // lexicographically based on the object keys. KeyMarker *string // Sets the maximum number of multipart uploads, from 1 to 1,000, to return in the @@ -171,26 +213,31 @@ type ListMultipartUploadsInput struct { // Lists in-progress uploads only for those keys that begin with the specified // prefix. You can use prefixes to separate a bucket into different grouping of // keys. (You can think of using prefix to make groups in the same way that you'd - // use a folder in a file system.) Directory buckets - For directory buckets, only - // prefixes that end in a delimiter ( / ) are supported. + // use a folder in a file system.) + // + // Directory buckets - For directory buckets, only prefixes that end in a + // delimiter ( / ) are supported. Prefix *string // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer // Together with key-marker, specifies the multipart upload after which listing // should begin. If key-marker is not specified, the upload-id-marker parameter is // ignored. Otherwise, any multipart uploads for a key equal to the key-marker // might be included in the list only if they have an upload ID lexicographically - // greater than the specified upload-id-marker . This functionality is not - // supported for directory buckets. + // greater than the specified upload-id-marker . + // + // This functionality is not supported for directory buckets. UploadIdMarker *string noSmithyDocumentSerde @@ -210,20 +257,25 @@ type ListMultipartUploadsOutput struct { // If you specify a delimiter in the request, then the result returns each // distinct key prefix containing the delimiter in a CommonPrefixes element. The - // distinct key prefixes are returned in the Prefix child element. Directory - // buckets - For directory buckets, only prefixes that end in a delimiter ( / ) are - // supported. + // distinct key prefixes are returned in the Prefix child element. + // + // Directory buckets - For directory buckets, only prefixes that end in a + // delimiter ( / ) are supported. CommonPrefixes []types.CommonPrefix // Contains the delimiter you specified in the request. If you don't specify a - // delimiter in your request, this element is absent from the response. Directory - // buckets - For directory buckets, / is the only supported delimiter. + // delimiter in your request, this element is absent from the response. + // + // Directory buckets - For directory buckets, / is the only supported delimiter. Delimiter *string - // Encoding type used by Amazon S3 to encode object keys in the response. If you - // specify the encoding-type request parameter, Amazon S3 includes this element in - // the response, and returns encoded key name values in the following response - // elements: Delimiter , KeyMarker , Prefix , NextKeyMarker , Key . + // Encoding type used by Amazon S3 to encode object keys in the response. + // + // If you specify the encoding-type request parameter, Amazon S3 includes this + // element in the response, and returns encoded key name values in the following + // response elements: + // + // Delimiter , KeyMarker , Prefix , NextKeyMarker , Key . EncodingType types.EncodingType // Indicates whether the returned list of multipart uploads is truncated. A value @@ -244,26 +296,31 @@ type ListMultipartUploadsOutput struct { NextKeyMarker *string // When a list is truncated, this element specifies the value that should be used - // for the upload-id-marker request parameter in a subsequent request. This - // functionality is not supported for directory buckets. + // for the upload-id-marker request parameter in a subsequent request. + // + // This functionality is not supported for directory buckets. NextUploadIdMarker *string // When a prefix is provided in the request, this field contains the specified // prefix. The result contains only keys starting with the specified prefix. - // Directory buckets - For directory buckets, only prefixes that end in a delimiter - // ( / ) are supported. + // + // Directory buckets - For directory buckets, only prefixes that end in a + // delimiter ( / ) are supported. Prefix *string // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // Together with key-marker, specifies the multipart upload after which listing // should begin. If key-marker is not specified, the upload-id-marker parameter is // ignored. Otherwise, any multipart uploads for a key equal to the key-marker // might be included in the list only if they have an upload ID lexicographically - // greater than the specified upload-id-marker . This functionality is not - // supported for directory buckets. + // greater than the specified upload-id-marker . + // + // This functionality is not supported for directory buckets. UploadIdMarker *string // Container for elements related to a particular multipart upload. A response can diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjectVersions.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjectVersions.go index bcb90eb2..f97d1569 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjectVersions.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjectVersions.go @@ -13,19 +13,34 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Returns metadata about -// all versions of the objects in a bucket. You can also use request parameters as -// selection criteria to return metadata about a subset of all the object versions. +// This operation is not supported by directory buckets. +// +// Returns metadata about all versions of the objects in a bucket. You can also +// use request parameters as selection criteria to return metadata about a subset +// of all the object versions. +// // To use this operation, you must have permission to perform the -// s3:ListBucketVersions action. Be aware of the name difference. A 200 OK -// response can contain valid or invalid XML. Make sure to design your application -// to parse the contents of the response and handle it appropriately. To use this -// operation, you must have READ access to the bucket. The following operations are -// related to ListObjectVersions : -// - ListObjectsV2 (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) -// - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) -// - PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) -// - DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) +// s3:ListBucketVersions action. Be aware of the name difference. +// +// A 200 OK response can contain valid or invalid XML. Make sure to design your +// application to parse the contents of the response and handle it appropriately. +// +// To use this operation, you must have READ access to the bucket. +// +// The following operations are related to ListObjectVersions : +// +// [ListObjectsV2] +// +// [GetObject] +// +// [PutObject] +// +// [DeleteObject] +// +// [DeleteObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html +// [PutObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html +// [GetObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html +// [ListObjectsV2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html func (c *Client) ListObjectVersions(ctx context.Context, params *ListObjectVersionsInput, optFns ...func(*Options)) (*ListObjectVersionsOutput, error) { if params == nil { params = &ListObjectVersionsInput{} @@ -93,10 +108,12 @@ type ListObjectVersionsInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer // Specifies the object version you want to start listing from. @@ -127,10 +144,13 @@ type ListObjectVersionsOutput struct { // max-keys limitation. These keys are not returned elsewhere in the response. Delimiter *string - // Encoding type used by Amazon S3 to encode object key names in the XML response. + // Encoding type used by Amazon S3 to encode object key names in the XML response. + // // If you specify the encoding-type request parameter, Amazon S3 includes this // element in the response, and returns encoded key name values in the following - // response elements: KeyMarker, NextKeyMarker, Prefix, Key , and Delimiter . + // response elements: + // + // KeyMarker, NextKeyMarker, Prefix, Key , and Delimiter . EncodingType types.EncodingType // A flag that indicates whether Amazon S3 returned all of the results that @@ -164,7 +184,9 @@ type ListObjectVersionsOutput struct { Prefix *string // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // Marks the last version of the key returned in a truncated response. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjects.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjects.go index 9a3bf3e0..ee9fd98d 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjects.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjects.go @@ -13,19 +13,35 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Returns some or all (up -// to 1,000) of the objects in a bucket. You can use the request parameters as -// selection criteria to return a subset of the objects in a bucket. A 200 OK -// response can contain valid or invalid XML. Be sure to design your application to -// parse the contents of the response and handle it appropriately. This action has -// been revised. We recommend that you use the newer version, ListObjectsV2 (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) -// , when developing applications. For backward compatibility, Amazon S3 continues -// to support ListObjects . The following operations are related to ListObjects : -// - ListObjectsV2 (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) -// - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) -// - PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) -// - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) -// - ListBuckets (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html) +// This operation is not supported by directory buckets. +// +// Returns some or all (up to 1,000) of the objects in a bucket. You can use the +// request parameters as selection criteria to return a subset of the objects in a +// bucket. A 200 OK response can contain valid or invalid XML. Be sure to design +// your application to parse the contents of the response and handle it +// appropriately. +// +// This action has been revised. We recommend that you use the newer version, [ListObjectsV2], +// when developing applications. For backward compatibility, Amazon S3 continues to +// support ListObjects . +// +// The following operations are related to ListObjects : +// +// [ListObjectsV2] +// +// [GetObject] +// +// [PutObject] +// +// [CreateBucket] +// +// [ListBuckets] +// +// [ListBuckets]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html +// [PutObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html +// [GetObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html +// [CreateBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html +// [ListObjectsV2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html func (c *Client) ListObjects(ctx context.Context, params *ListObjectsInput, optFns ...func(*Options)) (*ListObjectsOutput, error) { if params == nil { params = &ListObjectsInput{} @@ -43,31 +59,39 @@ func (c *Client) ListObjects(ctx context.Context, params *ListObjectsInput, optF type ListObjectsInput struct { - // The name of the bucket containing the objects. Directory buckets - When you use - // this operation with a directory bucket, you must use virtual-hosted-style - // requests in the format Bucket_name.s3express-az_id.region.amazonaws.com . - // Path-style requests are not supported. Directory bucket names must be unique in - // the chosen Availability Zone. Bucket names must follow the format - // bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 - // ). For information about bucket naming restrictions, see Directory bucket - // naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. Access points and Object Lambda access points are - // not supported by directory buckets. S3 on Outposts - When you use this action - // with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts - // hostname. The S3 on Outposts hostname takes the form + // The name of the bucket containing the objects. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use virtual-hosted-style requests in the format + // Bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests are not + // supported. Directory bucket names must be unique in the chosen Availability + // Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for + // example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 ). For information about bucket + // naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -121,14 +145,20 @@ func (in *ListObjectsInput) bindEndpointParams(p *EndpointParameters) { type ListObjectsOutput struct { // All of the keys (up to 1,000) rolled up in a common prefix count as a single - // return when calculating the number of returns. A response can contain - // CommonPrefixes only if you specify a delimiter. CommonPrefixes contains all (if - // there are any) keys between Prefix and the next occurrence of the string - // specified by the delimiter. CommonPrefixes lists keys that act like - // subdirectories in the directory specified by Prefix . For example, if the prefix - // is notes/ and the delimiter is a slash ( / ), as in notes/summer/july , the - // common prefix is notes/summer/ . All of the keys that roll up into a common - // prefix count as a single return when calculating the number of returns. + // return when calculating the number of returns. + // + // A response can contain CommonPrefixes only if you specify a delimiter. + // + // CommonPrefixes contains all (if there are any) keys between Prefix and the next + // occurrence of the string specified by the delimiter. + // + // CommonPrefixes lists keys that act like subdirectories in the directory + // specified by Prefix . + // + // For example, if the prefix is notes/ and the delimiter is a slash ( / ), as in + // notes/summer/july , the common prefix is notes/summer/ . All of the keys that + // roll up into a common prefix count as a single return when calculating the + // number of returns. CommonPrefixes []types.CommonPrefix // Metadata about each object returned. @@ -163,18 +193,21 @@ type ListObjectsOutput struct { // When the response is truncated (the IsTruncated element value in the response // is true ), you can use the key name in this field as the marker parameter in // the subsequent request to get the next set of objects. Amazon S3 lists objects - // in alphabetical order. This element is returned only if you have the delimiter - // request parameter specified. If the response does not include the NextMarker - // element and it is truncated, you can use the value of the last Key element in - // the response as the marker parameter in the subsequent request to get the next - // set of object keys. + // in alphabetical order. + // + // This element is returned only if you have the delimiter request parameter + // specified. If the response does not include the NextMarker element and it is + // truncated, you can use the value of the last Key element in the response as the + // marker parameter in the subsequent request to get the next set of object keys. NextMarker *string // Keys that begin with the indicated prefix. Prefix *string // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjectsV2.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjectsV2.go index ee09d3cb..50e9f5fb 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjectsV2.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListObjectsV2.go @@ -17,26 +17,29 @@ import ( // You can use the request parameters as selection criteria to return a subset of // the objects in a bucket. A 200 OK response can contain valid or invalid XML. // Make sure to design your application to parse the contents of the response and -// handle it appropriately. For more information about listing objects, see -// Listing object keys programmatically (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ListingKeysUsingAPIs.html) -// in the Amazon S3 User Guide. To get a list of your buckets, see ListBuckets (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html) -// . Directory buckets - For directory buckets, you must make requests for this API +// handle it appropriately. +// +// For more information about listing objects, see [Listing object keys programmatically] in the Amazon S3 User Guide. +// To get a list of your buckets, see [ListBuckets]. +// +// Directory buckets - For directory buckets, you must make requests for this API // operation to the Zonal endpoint. These endpoints support virtual-hosted-style // requests in the format // https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style -// requests are not supported. For more information, see Regional and Zonal -// endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. Permissions +// requests are not supported. For more information, see [Regional and Zonal endpoints]in the Amazon S3 User +// Guide. +// +// Permissions +// // - General purpose bucket permissions - To use this operation, you must have // READ access to the bucket. You must have permission to perform the // s3:ListBucket action. The bucket owner has this permission by default and can -// grant this permission to others. For more information about permissions, see -// Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// in the Amazon S3 User Guide. +// grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations] +// and [Managing Access Permissions to Your Amazon S3 Resources]in the Amazon S3 User Guide. +// // - Directory bucket permissions - To grant access to this API operation on a -// directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// API operation for session-based authorization. Specifically, you grant the +// directory bucket, we recommend that you use the [CreateSession]CreateSession API operation +// for session-based authorization. Specifically, you grant the // s3express:CreateSession permission to the directory bucket in a bucket policy // or an IAM identity-based policy. Then, you make the CreateSession API call on // the bucket to obtain a session token. With the session token in your request @@ -44,24 +47,42 @@ import ( // expires, you make another CreateSession API call to generate a new session // token for use. Amazon Web Services CLI or SDKs create session and refresh the // session token automatically to avoid service interruptions when a session -// expires. For more information about authorization, see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// . +// expires. For more information about authorization, see [CreateSession]CreateSession . // // Sorting order of returned objects +// // - General purpose bucket - For general purpose buckets, ListObjectsV2 returns // objects in lexicographical order based on their key names. +// // - Directory bucket - For directory buckets, ListObjectsV2 does not return // objects in lexicographical order. // -// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is -// Bucket_name.s3express-az_id.region.amazonaws.com . This section describes the -// latest revision of this action. We recommend that you use this revised API -// operation for application development. For backward compatibility, Amazon S3 -// continues to support the prior version of this API operation, ListObjects (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) -// . The following operations are related to ListObjectsV2 : -// - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) -// - PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) -// - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// Bucket_name.s3express-az_id.region.amazonaws.com . +// +// This section describes the latest revision of this action. We recommend that +// you use this revised API operation for application development. For backward +// compatibility, Amazon S3 continues to support the prior version of this API +// operation, [ListObjects]. +// +// The following operations are related to ListObjectsV2 : +// +// [GetObject] +// +// [PutObject] +// +// [CreateBucket] +// +// [ListObjects]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [Listing object keys programmatically]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ListingKeysUsingAPIs.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [ListBuckets]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html +// [PutObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html +// [CreateSession]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html +// [GetObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html +// [CreateBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html func (c *Client) ListObjectsV2(ctx context.Context, params *ListObjectsV2Input, optFns ...func(*Options)) (*ListObjectsV2Output, error) { if params == nil { params = &ListObjectsV2Input{} @@ -79,30 +100,37 @@ func (c *Client) ListObjectsV2(ctx context.Context, params *ListObjectsV2Input, type ListObjectsV2Input struct { - // Directory buckets - When you use this operation with a directory bucket, you + // Directory buckets - When you use this operation with a directory bucket, you // must use virtual-hosted-style requests in the format // Bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests are not // supported. Directory bucket names must be unique in the chosen Availability // Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for // example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 ). For information about bucket - // naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. Access points and Object Lambda access points are - // not supported by directory buckets. S3 on Outposts - When you use this action - // with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts - // hostname. The S3 on Outposts hostname takes the form + // naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -113,13 +141,15 @@ type ListObjectsV2Input struct { ContinuationToken *string // A delimiter is a character that you use to group keys. - // - Directory buckets - For directory buckets, / is the only supported - // delimiter. + // + // - Directory buckets - For directory buckets, / is the only supported delimiter. + // // - Directory buckets - When you query ListObjectsV2 with a delimiter during // in-progress multipart uploads, the CommonPrefixes response parameter contains // the prefixes that are associated with the in-progress multipart uploads. For - // more information about multipart uploads, see Multipart Upload Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html) - // in the Amazon S3 User Guide. + // more information about multipart uploads, see [Multipart Upload Overview]in the Amazon S3 User Guide. + // + // [Multipart Upload Overview]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html Delimiter *string // Encoding type used by Amazon S3 to encode object keys in the response. If using @@ -134,8 +164,10 @@ type ListObjectsV2Input struct { // The owner field is not present in ListObjectsV2 by default. If you want to // return the owner field with each key in the result, then set the FetchOwner - // field to true . Directory buckets - For directory buckets, the bucket owner is - // returned as the object owner for all objects. + // field to true . + // + // Directory buckets - For directory buckets, the bucket owner is returned as the + // object owner for all objects. FetchOwner *bool // Sets the maximum number of keys returned in the response. By default, the @@ -144,23 +176,28 @@ type ListObjectsV2Input struct { MaxKeys *int32 // Specifies the optional fields that you want returned in the response. Fields - // that you do not specify are not returned. This functionality is not supported - // for directory buckets. + // that you do not specify are not returned. + // + // This functionality is not supported for directory buckets. OptionalObjectAttributes []types.OptionalObjectAttributes - // Limits the response to keys that begin with the specified prefix. Directory - // buckets - For directory buckets, only prefixes that end in a delimiter ( / ) are - // supported. + // Limits the response to keys that begin with the specified prefix. + // + // Directory buckets - For directory buckets, only prefixes that end in a + // delimiter ( / ) are supported. Prefix *string // Confirms that the requester knows that she or he will be charged for the list // objects request in V2 style. Bucket owners need not specify this parameter in - // their requests. This functionality is not supported for directory buckets. + // their requests. + // + // This functionality is not supported for directory buckets. RequestPayer types.RequestPayer // StartAfter is where you want Amazon S3 to start listing from. Amazon S3 starts - // listing after this specified key. StartAfter can be any key in the bucket. This - // functionality is not supported for directory buckets. + // listing after this specified key. StartAfter can be any key in the bucket. + // + // This functionality is not supported for directory buckets. StartAfter *string noSmithyDocumentSerde @@ -176,43 +213,57 @@ type ListObjectsV2Output struct { // All of the keys (up to 1,000) that share the same prefix are grouped together. // When counting the total numbers of returns by this API operation, this group of - // keys is considered as one item. A response can contain CommonPrefixes only if - // you specify a delimiter. CommonPrefixes contains all (if there are any) keys - // between Prefix and the next occurrence of the string specified by a delimiter. + // keys is considered as one item. + // + // A response can contain CommonPrefixes only if you specify a delimiter. + // + // CommonPrefixes contains all (if there are any) keys between Prefix and the next + // occurrence of the string specified by a delimiter. + // // CommonPrefixes lists keys that act like subdirectories in the directory - // specified by Prefix . For example, if the prefix is notes/ and the delimiter is - // a slash ( / ) as in notes/summer/july , the common prefix is notes/summer/ . All - // of the keys that roll up into a common prefix count as a single return when - // calculating the number of returns. + // specified by Prefix . + // + // For example, if the prefix is notes/ and the delimiter is a slash ( / ) as in + // notes/summer/july , the common prefix is notes/summer/ . All of the keys that + // roll up into a common prefix count as a single return when calculating the + // number of returns. + // // - Directory buckets - For directory buckets, only prefixes that end in a // delimiter ( / ) are supported. + // // - Directory buckets - When you query ListObjectsV2 with a delimiter during // in-progress multipart uploads, the CommonPrefixes response parameter contains // the prefixes that are associated with the in-progress multipart uploads. For - // more information about multipart uploads, see Multipart Upload Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html) - // in the Amazon S3 User Guide. + // more information about multipart uploads, see [Multipart Upload Overview]in the Amazon S3 User Guide. + // + // [Multipart Upload Overview]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html CommonPrefixes []types.CommonPrefix // Metadata about each object returned. Contents []types.Object - // If ContinuationToken was sent with the request, it is included in the response. - // You can use the returned ContinuationToken for pagination of the list response. - // You can use this ContinuationToken for pagination of the list results. + // If ContinuationToken was sent with the request, it is included in the + // response. You can use the returned ContinuationToken for pagination of the list + // response. You can use this ContinuationToken for pagination of the list + // results. ContinuationToken *string // Causes keys that contain the same string between the prefix and the first // occurrence of the delimiter to be rolled up into a single result element in the // CommonPrefixes collection. These rolled-up keys are not returned elsewhere in // the response. Each rolled-up result counts as only one return against the - // MaxKeys value. Directory buckets - For directory buckets, / is the only - // supported delimiter. + // MaxKeys value. + // + // Directory buckets - For directory buckets, / is the only supported delimiter. Delimiter *string // Encoding type used by Amazon S3 to encode object key names in the XML response. + // // If you specify the encoding-type request parameter, Amazon S3 includes this // element in the response, and returns encoded key name values in the following - // response elements: Delimiter, Prefix, Key, and StartAfter . + // response elements: + // + // Delimiter, Prefix, Key, and StartAfter . EncodingType types.EncodingType // Set to false if all of the results were returned. Set to true if more keys are @@ -239,16 +290,21 @@ type ListObjectsV2Output struct { // obfuscated and is not a real key NextContinuationToken *string - // Keys that begin with the indicated prefix. Directory buckets - For directory - // buckets, only prefixes that end in a delimiter ( / ) are supported. + // Keys that begin with the indicated prefix. + // + // Directory buckets - For directory buckets, only prefixes that end in a + // delimiter ( / ) are supported. Prefix *string // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged - // If StartAfter was sent with the request, it is included in the response. This - // functionality is not supported for directory buckets. + // If StartAfter was sent with the request, it is included in the response. + // + // This functionality is not supported for directory buckets. StartAfter *string // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListParts.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListParts.go index 3f3946d9..4e40bb5b 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListParts.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_ListParts.go @@ -14,55 +14,79 @@ import ( "time" ) -// Lists the parts that have been uploaded for a specific multipart upload. To use -// this operation, you must provide the upload ID in the request. You obtain this -// uploadID by sending the initiate multipart upload request through -// CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) -// . The ListParts request returns a maximum of 1,000 uploaded parts. The limit of +// Lists the parts that have been uploaded for a specific multipart upload. +// +// To use this operation, you must provide the upload ID in the request. You +// obtain this uploadID by sending the initiate multipart upload request through [CreateMultipartUpload]. +// +// The ListParts request returns a maximum of 1,000 uploaded parts. The limit of // 1,000 parts is also the default value. You can restrict the number of parts in a // response by specifying the max-parts request parameter. If your multipart // upload consists of more than 1,000 parts, the response returns an IsTruncated // field with the value of true , and a NextPartNumberMarker element. To list // remaining uploaded parts, in subsequent ListParts requests, include the // part-number-marker query string parameter and set its value to the -// NextPartNumberMarker field value from the previous response. For more -// information on multipart uploads, see Uploading Objects Using Multipart Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) -// in the Amazon S3 User Guide. Directory buckets - For directory buckets, you must -// make requests for this API operation to the Zonal endpoint. These endpoints -// support virtual-hosted-style requests in the format +// NextPartNumberMarker field value from the previous response. +// +// For more information on multipart uploads, see [Uploading Objects Using Multipart Upload] in the Amazon S3 User Guide. +// +// Directory buckets - For directory buckets, you must make requests for this API +// operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format // https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style -// requests are not supported. For more information, see Regional and Zonal -// endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. Permissions +// requests are not supported. For more information, see [Regional and Zonal endpoints]in the Amazon S3 User +// Guide. +// +// Permissions // - General purpose bucket permissions - For information about permissions -// required to use the multipart upload API, see Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) -// in the Amazon S3 User Guide. If the upload was created using server-side -// encryption with Key Management Service (KMS) keys (SSE-KMS) or dual-layer -// server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), you must -// have permission to the kms:Decrypt action for the ListParts request to -// succeed. -// - Directory bucket permissions - To grant access to this API operation on a -// directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// API operation for session-based authorization. Specifically, you grant the -// s3express:CreateSession permission to the directory bucket in a bucket policy -// or an IAM identity-based policy. Then, you make the CreateSession API call on -// the bucket to obtain a session token. With the session token in your request -// header, you can make API requests to this operation. After the session token -// expires, you make another CreateSession API call to generate a new session -// token for use. Amazon Web Services CLI or SDKs create session and refresh the -// session token automatically to avoid service interruptions when a session -// expires. For more information about authorization, see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// . +// required to use the multipart upload API, see [Multipart Upload and Permissions]in the Amazon S3 User Guide. +// +// If the upload was created using server-side encryption with Key Management +// +// Service (KMS) keys (SSE-KMS) or dual-layer server-side encryption with Amazon +// Web Services KMS keys (DSSE-KMS), you must have permission to the kms:Decrypt +// action for the ListParts request to succeed. +// +// - Directory bucket permissions - To grant access to this API operation on a +// directory bucket, we recommend that you use the [CreateSession]CreateSession API operation +// for session-based authorization. Specifically, you grant the +// s3express:CreateSession permission to the directory bucket in a bucket policy +// or an IAM identity-based policy. Then, you make the CreateSession API call on +// the bucket to obtain a session token. With the session token in your request +// header, you can make API requests to this operation. After the session token +// expires, you make another CreateSession API call to generate a new session +// token for use. Amazon Web Services CLI or SDKs create session and refresh the +// session token automatically to avoid service interruptions when a session +// expires. For more information about authorization, see [CreateSession]CreateSession . +// +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// Bucket_name.s3express-az_id.region.amazonaws.com . +// +// The following operations are related to ListParts : +// +// [CreateMultipartUpload] +// +// [UploadPart] +// +// [CompleteMultipartUpload] // -// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is -// Bucket_name.s3express-az_id.region.amazonaws.com . The following operations are -// related to ListParts : -// - CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) -// - UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) -// - CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) -// - AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) -// - GetObjectAttributes (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html) -// - ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) +// [AbortMultipartUpload] +// +// [GetObjectAttributes] +// +// [ListMultipartUploads] +// +// [Uploading Objects Using Multipart Upload]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html +// [AbortMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html +// [UploadPart]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [GetObjectAttributes]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html +// [ListMultipartUploads]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html +// [Multipart Upload and Permissions]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html +// [CompleteMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html +// [CreateMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html +// +// [CreateSession]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html func (c *Client) ListParts(ctx context.Context, params *ListPartsInput, optFns ...func(*Options)) (*ListPartsOutput, error) { if params == nil { params = &ListPartsInput{} @@ -80,31 +104,39 @@ func (c *Client) ListParts(ctx context.Context, params *ListPartsInput, optFns . type ListPartsInput struct { - // The name of the bucket to which the parts are being uploaded. Directory buckets - // - When you use this operation with a directory bucket, you must use - // virtual-hosted-style requests in the format + // The name of the bucket to which the parts are being uploaded. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use virtual-hosted-style requests in the format // Bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests are not // supported. Directory bucket names must be unique in the chosen Availability // Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for // example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 ). For information about bucket - // naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. Access points and Object Lambda access points are - // not supported by directory buckets. S3 on Outposts - When you use this action - // with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts - // hostname. The S3 on Outposts hostname takes the form + // naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -135,31 +167,39 @@ type ListPartsInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer // The server-side encryption (SSE) algorithm used to encrypt the object. This // parameter is needed only when the object was created using a checksum algorithm. - // For more information, see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // For more information, see [Protecting data using SSE-C keys]in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. + // + // [Protecting data using SSE-C keys]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html SSECustomerAlgorithm *string // The server-side encryption (SSE) customer managed key. This parameter is needed // only when the object was created using a checksum algorithm. For more - // information, see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // information, see [Protecting data using SSE-C keys]in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. + // + // [Protecting data using SSE-C keys]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html SSECustomerKey *string // The MD5 server-side encryption (SSE) customer managed key. This parameter is // needed only when the object was created using a checksum algorithm. For more - // information, see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // information, see [Protecting data using SSE-C keys]in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. + // + // [Protecting data using SSE-C keys]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html SSECustomerKeyMD5 *string noSmithyDocumentSerde @@ -177,17 +217,21 @@ type ListPartsOutput struct { // incomplete multipart uploads and the prefix in the lifecycle rule matches the // object name in the request, then the response includes this header indicating // when the initiated multipart upload will become eligible for abort operation. - // For more information, see Aborting Incomplete Multipart Uploads Using a Bucket - // Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) - // . The response will also include the x-amz-abort-rule-id header that will - // provide the ID of the lifecycle configuration rule that defines this action. + // For more information, see [Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration]. + // + // The response will also include the x-amz-abort-rule-id header that will provide + // the ID of the lifecycle configuration rule that defines this action. + // // This functionality is not supported for directory buckets. + // + // [Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config AbortDate *time.Time // This header is returned along with the x-amz-abort-date header. It identifies // applicable lifecycle configuration rule that defines the action to abort - // incomplete multipart uploads. This functionality is not supported for directory - // buckets. + // incomplete multipart uploads. + // + // This functionality is not supported for directory buckets. AbortRuleId *string // The name of the bucket to which the multipart upload was initiated. Does not @@ -203,7 +247,7 @@ type ListPartsOutput struct { // provides the user ARN and display name. Initiator *types.Initiator - // Indicates whether the returned list of parts is truncated. A true value + // Indicates whether the returned list of parts is truncated. A true value // indicates that the list was truncated. A list can be truncated if the number of // parts exceeds the limit returned in the MaxParts element. IsTruncated *bool @@ -221,8 +265,10 @@ type ListPartsOutput struct { // Container element that identifies the object owner, after the object is // created. If multipart upload is initiated by an IAM user, this element provides - // the parent account ID and display name. Directory buckets - The bucket owner is - // returned as the object owner for all the parts. + // the parent account ID and display name. + // + // Directory buckets - The bucket owner is returned as the object owner for all + // the parts. Owner *types.Owner // Specifies the part after which listing should begin. Only parts with higher @@ -234,12 +280,15 @@ type ListPartsOutput struct { Parts []types.Part // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged - // The class of storage used to store the uploaded object. Directory buckets - - // Only the S3 Express One Zone storage class is supported by directory buckets to - // store objects. + // The class of storage used to store the uploaded object. + // + // Directory buckets - Only the S3 Express One Zone storage class is supported by + // directory buckets to store objects. StorageClass types.StorageClass // Upload ID identifying the multipart upload whose parts are being listed. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAccelerateConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAccelerateConfiguration.go index c15d55f1..a9685510 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAccelerateConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAccelerateConfiguration.go @@ -15,30 +15,45 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Sets the accelerate -// configuration of an existing bucket. Amazon S3 Transfer Acceleration is a -// bucket-level feature that enables you to perform faster data transfers to Amazon -// S3. To use this operation, you must have permission to perform the +// This operation is not supported by directory buckets. +// +// Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer +// Acceleration is a bucket-level feature that enables you to perform faster data +// transfers to Amazon S3. +// +// To use this operation, you must have permission to perform the // s3:PutAccelerateConfiguration action. The bucket owner has this permission by // default. The bucket owner can grant this permission to others. For more -// information about permissions, see Permissions Related to Bucket Subresource -// Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . The Transfer Acceleration state of a bucket can be set to one of the following +// information about permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to Your Amazon S3 Resources]. +// +// The Transfer Acceleration state of a bucket can be set to one of the following // two values: +// // - Enabled – Enables accelerated data transfers to the bucket. +// // - Suspended – Disables accelerated data transfers to the bucket. // -// The GetBucketAccelerateConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html) -// action returns the transfer acceleration state of a bucket. After setting the -// Transfer Acceleration state of a bucket to Enabled, it might take up to thirty -// minutes before the data transfer rates to the bucket increase. The name of the -// bucket used for Transfer Acceleration must be DNS-compliant and must not contain -// periods ("."). For more information about transfer acceleration, see Transfer -// Acceleration (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) -// . The following operations are related to PutBucketAccelerateConfiguration : -// - GetBucketAccelerateConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html) -// - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) +// The [GetBucketAccelerateConfiguration] action returns the transfer acceleration state of a bucket. +// +// After setting the Transfer Acceleration state of a bucket to Enabled, it might +// take up to thirty minutes before the data transfer rates to the bucket increase. +// +// The name of the bucket used for Transfer Acceleration must be DNS-compliant and +// must not contain periods ("."). +// +// For more information about transfer acceleration, see [Transfer Acceleration]. +// +// The following operations are related to PutBucketAccelerateConfiguration : +// +// [GetBucketAccelerateConfiguration] +// +// [CreateBucket] +// +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [Transfer Acceleration]: https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html +// [GetBucketAccelerateConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html +// [CreateBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html func (c *Client) PutBucketAccelerateConfiguration(ctx context.Context, params *PutBucketAccelerateConfigurationInput, optFns ...func(*Options)) (*PutBucketAccelerateConfigurationOutput, error) { if params == nil { params = &PutBucketAccelerateConfigurationInput{} @@ -70,10 +85,13 @@ type PutBucketAccelerateConfigurationInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // The account ID of the expected bucket owner. If the account ID that you provide diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAcl.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAcl.go index f88bb4af..d61376f0 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAcl.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAcl.go @@ -15,89 +15,159 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Sets the permissions on -// an existing bucket using access control lists (ACL). For more information, see -// Using ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html) -// . To set the ACL of a bucket, you must have the WRITE_ACP permission. You can -// use one of the following two ways to set a bucket's permissions: +// This operation is not supported by directory buckets. +// +// Sets the permissions on an existing bucket using access control lists (ACL). +// For more information, see [Using ACLs]. To set the ACL of a bucket, you must have the +// WRITE_ACP permission. +// +// You can use one of the following two ways to set a bucket's permissions: +// // - Specify the ACL in the request body +// // - Specify permissions using request headers // // You cannot specify access permission using both the body and the request -// headers. Depending on your application needs, you may choose to set the ACL on a -// bucket using either the request body or the headers. For example, if you have an +// headers. +// +// Depending on your application needs, you may choose to set the ACL on a bucket +// using either the request body or the headers. For example, if you have an // existing application that updates a bucket ACL using the request body, then you -// can continue to use that approach. If your bucket uses the bucket owner enforced -// setting for S3 Object Ownership, ACLs are disabled and no longer affect -// permissions. You must use policies to grant access to your bucket and the -// objects in it. Requests to set ACLs or update ACLs fail and return the -// AccessControlListNotSupported error code. Requests to read ACLs are still -// supported. For more information, see Controlling object ownership (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) -// in the Amazon S3 User Guide. Permissions You can set access permissions by using -// one of the following methods: +// can continue to use that approach. +// +// If your bucket uses the bucket owner enforced setting for S3 Object Ownership, +// ACLs are disabled and no longer affect permissions. You must use policies to +// grant access to your bucket and the objects in it. Requests to set ACLs or +// update ACLs fail and return the AccessControlListNotSupported error code. +// Requests to read ACLs are still supported. For more information, see [Controlling object ownership]in the +// Amazon S3 User Guide. +// +// Permissions You can set access permissions by using one of the following +// methods: +// // - Specify a canned ACL with the x-amz-acl request header. Amazon S3 supports a // set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined // set of grantees and permissions. Specify the canned ACL name as the value of // x-amz-acl . If you use this header, you cannot use other access -// control-specific headers in your request. For more information, see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL) -// . +// control-specific headers in your request. For more information, see [Canned ACL]. +// // - Specify access permissions explicitly with the x-amz-grant-read , // x-amz-grant-read-acp , x-amz-grant-write-acp , and x-amz-grant-full-control // headers. When using these headers, you specify explicit access permissions and // grantees (Amazon Web Services accounts or Amazon S3 groups) who will receive the // permission. If you use these ACL-specific headers, you cannot use the // x-amz-acl header to set a canned ACL. These parameters map to the set of -// permissions that Amazon S3 supports in an ACL. For more information, see -// Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) -// . You specify each grantee as a type=value pair, where the type is one of the -// following: -// - id – if the value specified is the canonical user ID of an Amazon Web -// Services account -// - uri – if you are granting permissions to a predefined group -// - emailAddress – if the value specified is the email address of an Amazon Web -// Services account Using email addresses to specify a grantee is only supported in -// the following Amazon Web Services Regions: -// - US East (N. Virginia) -// - US West (N. California) -// - US West (Oregon) -// - Asia Pacific (Singapore) -// - Asia Pacific (Sydney) -// - Asia Pacific (Tokyo) -// - Europe (Ireland) -// - South America (São Paulo) For a list of all the Amazon S3 supported Regions -// and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) -// in the Amazon Web Services General Reference. For example, the following -// x-amz-grant-write header grants create, overwrite, and delete objects -// permission to LogDelivery group predefined by Amazon S3 and two Amazon Web -// Services accounts identified by their email addresses. x-amz-grant-write: -// uri="http://acs.amazonaws.com/groups/s3/LogDelivery", id="111122223333", -// id="555566667777" +// permissions that Amazon S3 supports in an ACL. For more information, see [Access Control List (ACL) Overview]. +// +// You specify each grantee as a type=value pair, where the type is one of the +// +// following: +// +// - id – if the value specified is the canonical user ID of an Amazon Web +// Services account +// +// - uri – if you are granting permissions to a predefined group +// +// - emailAddress – if the value specified is the email address of an Amazon Web +// Services account +// +// Using email addresses to specify a grantee is only supported in the following +// +// Amazon Web Services Regions: +// +// - US East (N. Virginia) +// +// - US West (N. California) +// +// - US West (Oregon) +// +// - Asia Pacific (Singapore) +// +// - Asia Pacific (Sydney) +// +// - Asia Pacific (Tokyo) +// +// - Europe (Ireland) +// +// - South America (São Paulo) +// +// For a list of all the Amazon S3 supported Regions and endpoints, see [Regions and Endpoints]in the +// +// Amazon Web Services General Reference. +// +// For example, the following x-amz-grant-write header grants create, overwrite, +// +// and delete objects permission to LogDelivery group predefined by Amazon S3 and +// two Amazon Web Services accounts identified by their email addresses. +// +// x-amz-grant-write: uri="http://acs.amazonaws.com/groups/s3/LogDelivery", +// +// id="111122223333", id="555566667777" // // You can use either a canned ACL or specify access permissions explicitly. You -// cannot do both. Grantee Values You can specify the person (grantee) to whom -// you're assigning access rights (using request elements) in the following ways: -// - By the person's ID: <>ID<><>GranteesEmail<> DisplayName is optional and -// ignored in the request -// - By URI: <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<> -// - By Email address: <>Grantees@email.com<>& The grantee is resolved to the -// CanonicalUser and, in a response to a GET Object acl request, appears as the -// CanonicalUser. Using email addresses to specify a grantee is only supported in -// the following Amazon Web Services Regions: -// - US East (N. Virginia) -// - US West (N. California) -// - US West (Oregon) -// - Asia Pacific (Singapore) -// - Asia Pacific (Sydney) -// - Asia Pacific (Tokyo) -// - Europe (Ireland) -// - South America (São Paulo) For a list of all the Amazon S3 supported Regions -// and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) -// in the Amazon Web Services General Reference. +// cannot do both. +// +// Grantee Values You can specify the person (grantee) to whom you're assigning +// access rights (using request elements) in the following ways: +// +// - By the person's ID: +// +// <>ID<><>GranteesEmail<> +// +// DisplayName is optional and ignored in the request +// +// - By URI: +// +// <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<> +// +// - By Email address: +// +// <>Grantees@email.com<>& +// +// The grantee is resolved to the CanonicalUser and, in a response to a GET Object +// +// acl request, appears as the CanonicalUser. +// +// Using email addresses to specify a grantee is only supported in the following +// +// Amazon Web Services Regions: +// +// - US East (N. Virginia) +// +// - US West (N. California) +// +// - US West (Oregon) +// +// - Asia Pacific (Singapore) +// +// - Asia Pacific (Sydney) +// +// - Asia Pacific (Tokyo) +// +// - Europe (Ireland) +// +// - South America (São Paulo) +// +// For a list of all the Amazon S3 supported Regions and endpoints, see [Regions and Endpoints]in the +// +// Amazon Web Services General Reference. // // The following operations are related to PutBucketAcl : -// - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) -// - DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) -// - GetObjectAcl (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html) +// +// [CreateBucket] +// +// [DeleteBucket] +// +// [GetObjectAcl] +// +// [Regions and Endpoints]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region +// [Access Control List (ACL) Overview]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html +// [Controlling object ownership]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html +// [DeleteBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html +// [Using ACLs]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html +// [Canned ACL]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL +// [GetObjectAcl]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html +// [CreateBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html func (c *Client) PutBucketAcl(ctx context.Context, params *PutBucketAclInput, optFns ...func(*Options)) (*PutBucketAclOutput, error) { if params == nil { params = &PutBucketAclInput{} @@ -130,17 +200,23 @@ type PutBucketAclInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // The base64-encoded 128-bit MD5 digest of the data. This header must be used as // a message integrity check to verify that the request body was not corrupted in - // transit. For more information, go to RFC 1864. (http://www.ietf.org/rfc/rfc1864.txt) + // transit. For more information, go to [RFC 1864.] + // // For requests made using the Amazon Web Services Command Line Interface (CLI) or // Amazon Web Services SDKs, this field is calculated automatically. + // + // [RFC 1864.]: http://www.ietf.org/rfc/rfc1864.txt ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide @@ -158,9 +234,10 @@ type PutBucketAclInput struct { // Allows grantee to read the bucket ACL. GrantReadACP *string - // Allows grantee to create new objects in the bucket. For the bucket and object - // owners of existing objects, also allows deletions and overwrites of those - // objects. + // Allows grantee to create new objects in the bucket. + // + // For the bucket and object owners of existing objects, also allows deletions and + // overwrites of those objects. GrantWrite *string // Allows grantee to write the ACL for the applicable bucket. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAnalyticsConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAnalyticsConfiguration.go index 0604fb93..292a04b7 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAnalyticsConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketAnalyticsConfiguration.go @@ -14,45 +14,67 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Sets an analytics -// configuration for the bucket (specified by the analytics configuration ID). You -// can have up to 1,000 analytics configurations per bucket. You can choose to have -// storage class analysis export analysis reports sent to a comma-separated values -// (CSV) flat file. See the DataExport request element. Reports are updated daily -// and are based on the object filters that you configure. When selecting data -// export, you specify a destination bucket and an optional destination prefix -// where the file is written. You can export the data to a destination bucket in a -// different account. However, the destination bucket must be in the same Region as -// the bucket that you are making the PUT analytics configuration to. For more -// information, see Amazon S3 Analytics – Storage Class Analysis (https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html) -// . You must create a bucket policy on the destination bucket where the exported +// This operation is not supported by directory buckets. +// +// Sets an analytics configuration for the bucket (specified by the analytics +// configuration ID). You can have up to 1,000 analytics configurations per bucket. +// +// You can choose to have storage class analysis export analysis reports sent to a +// comma-separated values (CSV) flat file. See the DataExport request element. +// Reports are updated daily and are based on the object filters that you +// configure. When selecting data export, you specify a destination bucket and an +// optional destination prefix where the file is written. You can export the data +// to a destination bucket in a different account. However, the destination bucket +// must be in the same Region as the bucket that you are making the PUT analytics +// configuration to. For more information, see [Amazon S3 Analytics – Storage Class Analysis]. +// +// You must create a bucket policy on the destination bucket where the exported // file is written to grant permissions to Amazon S3 to write objects to the -// bucket. For an example policy, see Granting Permissions for Amazon S3 Inventory -// and Storage Class Analysis (https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9) -// . To use this operation, you must have permissions to perform the +// bucket. For an example policy, see [Granting Permissions for Amazon S3 Inventory and Storage Class Analysis]. +// +// To use this operation, you must have permissions to perform the // s3:PutAnalyticsConfiguration action. The bucket owner has this permission by // default. The bucket owner can grant this permission to others. For more -// information about permissions, see Permissions Related to Bucket Subresource -// Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . PutBucketAnalyticsConfiguration has the following special errors: +// information about permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to Your Amazon S3 Resources]. +// +// PutBucketAnalyticsConfiguration has the following special errors: +// // - HTTP Error: HTTP 400 Bad Request +// // - Code: InvalidArgument +// // - Cause: Invalid argument. +// // - HTTP Error: HTTP 400 Bad Request +// // - Code: TooManyConfigurations +// // - Cause: You are attempting to create a new configuration but have already // reached the 1,000-configuration limit. +// // - HTTP Error: HTTP 403 Forbidden +// // - Code: AccessDenied +// // - Cause: You are not the owner of the specified bucket, or you do not have // the s3:PutAnalyticsConfiguration bucket permission to set the configuration on // the bucket. // // The following operations are related to PutBucketAnalyticsConfiguration : -// - GetBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html) -// - DeleteBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html) -// - ListBucketAnalyticsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html) +// +// [GetBucketAnalyticsConfiguration] +// +// [DeleteBucketAnalyticsConfiguration] +// +// [ListBucketAnalyticsConfigurations] +// +// [Amazon S3 Analytics – Storage Class Analysis]: https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html +// [Granting Permissions for Amazon S3 Inventory and Storage Class Analysis]: https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9 +// [DeleteBucketAnalyticsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [GetBucketAnalyticsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html +// [ListBucketAnalyticsConfigurations]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html func (c *Client) PutBucketAnalyticsConfiguration(ctx context.Context, params *PutBucketAnalyticsConfigurationInput, optFns ...func(*Options)) (*PutBucketAnalyticsConfigurationOutput, error) { if params == nil { params = &PutBucketAnalyticsConfigurationInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketCors.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketCors.go index 3e6604ef..e56061b6 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketCors.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketCors.go @@ -15,35 +15,54 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Sets the cors -// configuration for your bucket. If the configuration exists, Amazon S3 replaces -// it. To use this operation, you must be allowed to perform the s3:PutBucketCORS +// This operation is not supported by directory buckets. +// +// Sets the cors configuration for your bucket. If the configuration exists, +// Amazon S3 replaces it. +// +// To use this operation, you must be allowed to perform the s3:PutBucketCORS // action. By default, the bucket owner has this permission and can grant it to -// others. You set this configuration on a bucket so that the bucket can service +// others. +// +// You set this configuration on a bucket so that the bucket can service // cross-origin requests. For example, you might want to enable a request whose // origin is http://www.example.com to access your Amazon S3 bucket at -// my.example.bucket.com by using the browser's XMLHttpRequest capability. To -// enable cross-origin resource sharing (CORS) on a bucket, you add the cors +// my.example.bucket.com by using the browser's XMLHttpRequest capability. +// +// To enable cross-origin resource sharing (CORS) on a bucket, you add the cors // subresource to the bucket. The cors subresource is an XML document in which you // configure rules that identify origins and the HTTP methods that can be executed -// on your bucket. The document is limited to 64 KB in size. When Amazon S3 -// receives a cross-origin request (or a pre-flight OPTIONS request) against a -// bucket, it evaluates the cors configuration on the bucket and uses the first -// CORSRule rule that matches the incoming browser request to enable a cross-origin -// request. For a rule to match, the following conditions must be met: +// on your bucket. The document is limited to 64 KB in size. +// +// When Amazon S3 receives a cross-origin request (or a pre-flight OPTIONS +// request) against a bucket, it evaluates the cors configuration on the bucket +// and uses the first CORSRule rule that matches the incoming browser request to +// enable a cross-origin request. For a rule to match, the following conditions +// must be met: +// // - The request's Origin header must match AllowedOrigin elements. +// // - The request method (for example, GET, PUT, HEAD, and so on) or the // Access-Control-Request-Method header in case of a pre-flight OPTIONS request // must be one of the AllowedMethod elements. +// // - Every header specified in the Access-Control-Request-Headers request header // of a pre-flight request must match an AllowedHeader element. // -// For more information about CORS, go to Enabling Cross-Origin Resource Sharing (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) -// in the Amazon S3 User Guide. The following operations are related to -// PutBucketCors : -// - GetBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html) -// - DeleteBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html) -// - RESTOPTIONSobject (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html) +// For more information about CORS, go to [Enabling Cross-Origin Resource Sharing] in the Amazon S3 User Guide. +// +// The following operations are related to PutBucketCors : +// +// [GetBucketCors] +// +// [DeleteBucketCors] +// +// [RESTOPTIONSobject] +// +// [GetBucketCors]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html +// [Enabling Cross-Origin Resource Sharing]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html +// [RESTOPTIONSobject]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html +// [DeleteBucketCors]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html func (c *Client) PutBucketCors(ctx context.Context, params *PutBucketCorsInput, optFns ...func(*Options)) (*PutBucketCorsOutput, error) { if params == nil { params = &PutBucketCorsInput{} @@ -67,8 +86,9 @@ type PutBucketCorsInput struct { Bucket *string // Describes the cross-origin access configuration for objects in an Amazon S3 - // bucket. For more information, see Enabling Cross-Origin Resource Sharing (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) - // in the Amazon S3 User Guide. + // bucket. For more information, see [Enabling Cross-Origin Resource Sharing]in the Amazon S3 User Guide. + // + // [Enabling Cross-Origin Resource Sharing]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html // // This member is required. CORSConfiguration *types.CORSConfiguration @@ -77,17 +97,23 @@ type PutBucketCorsInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // The base64-encoded 128-bit MD5 digest of the data. This header must be used as // a message integrity check to verify that the request body was not corrupted in - // transit. For more information, go to RFC 1864. (http://www.ietf.org/rfc/rfc1864.txt) + // transit. For more information, go to [RFC 1864.] + // // For requests made using the Amazon Web Services Command Line Interface (CLI) or // Amazon Web Services SDKs, this field is calculated automatically. + // + // [RFC 1864.]: http://www.ietf.org/rfc/rfc1864.txt ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketEncryption.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketEncryption.go index dfc71dc5..01e160cd 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketEncryption.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketEncryption.go @@ -15,30 +15,41 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. This action uses the -// encryption subresource to configure default encryption and Amazon S3 Bucket Keys -// for an existing bucket. By default, all buckets have a default encryption -// configuration that uses server-side encryption with Amazon S3 managed keys -// (SSE-S3). You can optionally configure default encryption for a bucket by using -// server-side encryption with Key Management Service (KMS) keys (SSE-KMS) or -// dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS). -// If you specify default encryption by using SSE-KMS, you can also configure -// Amazon S3 Bucket Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) -// . If you use PutBucketEncryption to set your default bucket encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) -// to SSE-KMS, you should verify that your KMS key ID is correct. Amazon S3 does -// not validate the KMS key ID provided in PutBucketEncryption requests. This -// action requires Amazon Web Services Signature Version 4. For more information, -// see Authenticating Requests (Amazon Web Services Signature Version 4) (https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) -// . To use this operation, you must have permission to perform the +// This operation is not supported by directory buckets. +// +// This action uses the encryption subresource to configure default encryption and +// Amazon S3 Bucket Keys for an existing bucket. +// +// By default, all buckets have a default encryption configuration that uses +// server-side encryption with Amazon S3 managed keys (SSE-S3). You can optionally +// configure default encryption for a bucket by using server-side encryption with +// Key Management Service (KMS) keys (SSE-KMS) or dual-layer server-side encryption +// with Amazon Web Services KMS keys (DSSE-KMS). If you specify default encryption +// by using SSE-KMS, you can also configure [Amazon S3 Bucket Keys]. If you use PutBucketEncryption to +// set your [default bucket encryption]to SSE-KMS, you should verify that your KMS key ID is correct. Amazon +// S3 does not validate the KMS key ID provided in PutBucketEncryption requests. +// +// This action requires Amazon Web Services Signature Version 4. For more +// information, see [Authenticating Requests (Amazon Web Services Signature Version 4)]. +// +// To use this operation, you must have permission to perform the // s3:PutEncryptionConfiguration action. The bucket owner has this permission by // default. The bucket owner can grant this permission to others. For more -// information about permissions, see Permissions Related to Bucket Subresource -// Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// in the Amazon S3 User Guide. The following operations are related to -// PutBucketEncryption : -// - GetBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) -// - DeleteBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html) +// information about permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to Your Amazon S3 Resources] in the Amazon S3 User Guide. +// +// The following operations are related to PutBucketEncryption : +// +// [GetBucketEncryption] +// +// [DeleteBucketEncryption] +// +// [Amazon S3 Bucket Keys]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html +// [GetBucketEncryption]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html +// [DeleteBucketEncryption]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [default bucket encryption]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html +// [Authenticating Requests (Amazon Web Services Signature Version 4)]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html func (c *Client) PutBucketEncryption(ctx context.Context, params *PutBucketEncryptionInput, optFns ...func(*Options)) (*PutBucketEncryptionOutput, error) { if params == nil { params = &PutBucketEncryptionInput{} @@ -62,8 +73,9 @@ type PutBucketEncryptionInput struct { // (SSE-S3). You can optionally configure default encryption for a bucket by using // server-side encryption with an Amazon Web Services KMS key (SSE-KMS) or a // customer-provided key (SSE-C). For information about the bucket default - // encryption feature, see Amazon S3 Bucket Default Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) - // in the Amazon S3 User Guide. + // encryption feature, see [Amazon S3 Bucket Default Encryption]in the Amazon S3 User Guide. + // + // [Amazon S3 Bucket Default Encryption]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html // // This member is required. Bucket *string @@ -77,16 +89,20 @@ type PutBucketEncryptionInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // The base64-encoded 128-bit MD5 digest of the server-side encryption - // configuration. For requests made using the Amazon Web Services Command Line - // Interface (CLI) or Amazon Web Services SDKs, this field is calculated - // automatically. + // configuration. + // + // For requests made using the Amazon Web Services Command Line Interface (CLI) or + // Amazon Web Services SDKs, this field is calculated automatically. ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketIntelligentTieringConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketIntelligentTieringConfiguration.go index 61d73da5..8aac2b98 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketIntelligentTieringConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketIntelligentTieringConfiguration.go @@ -14,37 +14,58 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Puts a S3 -// Intelligent-Tiering configuration to the specified bucket. You can have up to -// 1,000 S3 Intelligent-Tiering configurations per bucket. The S3 -// Intelligent-Tiering storage class is designed to optimize storage costs by -// automatically moving data to the most cost-effective storage access tier, +// This operation is not supported by directory buckets. +// +// Puts a S3 Intelligent-Tiering configuration to the specified bucket. You can +// have up to 1,000 S3 Intelligent-Tiering configurations per bucket. +// +// The S3 Intelligent-Tiering storage class is designed to optimize storage costs +// by automatically moving data to the most cost-effective storage access tier, // without performance impact or operational overhead. S3 Intelligent-Tiering // delivers automatic cost savings in three low latency and high throughput access // tiers. To get the lowest storage cost on data that can be accessed in minutes to -// hours, you can choose to activate additional archiving capabilities. The S3 -// Intelligent-Tiering storage class is the ideal storage class for data with -// unknown, changing, or unpredictable access patterns, independent of object size -// or retention period. If the size of an object is less than 128 KB, it is not -// monitored and not eligible for auto-tiering. Smaller objects can be stored, but -// they are always charged at the Frequent Access tier rates in the S3 -// Intelligent-Tiering storage class. For more information, see Storage class for -// automatically optimizing frequently and infrequently accessed objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) -// . Operations related to PutBucketIntelligentTieringConfiguration include: -// - DeleteBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) -// - GetBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html) -// - ListBucketIntelligentTieringConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html) +// hours, you can choose to activate additional archiving capabilities. +// +// The S3 Intelligent-Tiering storage class is the ideal storage class for data +// with unknown, changing, or unpredictable access patterns, independent of object +// size or retention period. If the size of an object is less than 128 KB, it is +// not monitored and not eligible for auto-tiering. Smaller objects can be stored, +// but they are always charged at the Frequent Access tier rates in the S3 +// Intelligent-Tiering storage class. +// +// For more information, see [Storage class for automatically optimizing frequently and infrequently accessed objects]. +// +// Operations related to PutBucketIntelligentTieringConfiguration include: +// +// [DeleteBucketIntelligentTieringConfiguration] +// +// [GetBucketIntelligentTieringConfiguration] +// +// [ListBucketIntelligentTieringConfigurations] // // You only need S3 Intelligent-Tiering enabled on a bucket if you want to // automatically move objects stored in the S3 Intelligent-Tiering storage class to // the Archive Access or Deep Archive Access tier. -// PutBucketIntelligentTieringConfiguration has the following special errors: HTTP -// 400 Bad Request Error Code: InvalidArgument Cause: Invalid Argument HTTP 400 Bad -// Request Error Code: TooManyConfigurations Cause: You are attempting to create a -// new configuration but have already reached the 1,000-configuration limit. HTTP -// 403 Forbidden Error Cause: You are not the owner of the specified bucket, or you -// do not have the s3:PutIntelligentTieringConfiguration bucket permission to set -// the configuration on the bucket. +// +// PutBucketIntelligentTieringConfiguration has the following special errors: +// +// HTTP 400 Bad Request Error Code: InvalidArgument +// +// Cause: Invalid Argument +// +// HTTP 400 Bad Request Error Code: TooManyConfigurations +// +// Cause: You are attempting to create a new configuration but have already +// reached the 1,000-configuration limit. +// +// HTTP 403 Forbidden Error Cause: You are not the owner of the specified bucket, +// or you do not have the s3:PutIntelligentTieringConfiguration bucket permission +// to set the configuration on the bucket. +// +// [ListBucketIntelligentTieringConfigurations]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html +// [GetBucketIntelligentTieringConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html +// [Storage class for automatically optimizing frequently and infrequently accessed objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access +// [DeleteBucketIntelligentTieringConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html func (c *Client) PutBucketIntelligentTieringConfiguration(ctx context.Context, params *PutBucketIntelligentTieringConfigurationInput, optFns ...func(*Options)) (*PutBucketIntelligentTieringConfigurationOutput, error) { if params == nil { params = &PutBucketIntelligentTieringConfigurationInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketInventoryConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketInventoryConfiguration.go index 03d79a0d..5933b648 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketInventoryConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketInventoryConfiguration.go @@ -14,48 +14,76 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. This implementation of -// the PUT action adds an inventory configuration (identified by the inventory ID) -// to the bucket. You can have up to 1,000 inventory configurations per bucket. +// This operation is not supported by directory buckets. +// +// This implementation of the PUT action adds an inventory configuration +// (identified by the inventory ID) to the bucket. You can have up to 1,000 +// inventory configurations per bucket. +// // Amazon S3 inventory generates inventories of the objects in the bucket on a // daily or weekly basis, and the results are published to a flat file. The bucket // that is inventoried is called the source bucket, and the bucket where the // inventory flat file is stored is called the destination bucket. The destination -// bucket must be in the same Amazon Web Services Region as the source bucket. When -// you configure an inventory for a source bucket, you specify the destination -// bucket where you want the inventory to be stored, and whether to generate the -// inventory daily or weekly. You can also configure what object metadata to -// include and whether to inventory all object versions or only current versions. -// For more information, see Amazon S3 Inventory (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html) -// in the Amazon S3 User Guide. You must create a bucket policy on the destination -// bucket to grant permissions to Amazon S3 to write objects to the bucket in the -// defined location. For an example policy, see Granting Permissions for Amazon S3 -// Inventory and Storage Class Analysis (https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9) -// . Permissions To use this operation, you must have permission to perform the +// bucket must be in the same Amazon Web Services Region as the source bucket. +// +// When you configure an inventory for a source bucket, you specify the +// destination bucket where you want the inventory to be stored, and whether to +// generate the inventory daily or weekly. You can also configure what object +// metadata to include and whether to inventory all object versions or only current +// versions. For more information, see [Amazon S3 Inventory]in the Amazon S3 User Guide. +// +// You must create a bucket policy on the destination bucket to grant permissions +// to Amazon S3 to write objects to the bucket in the defined location. For an +// example policy, see [Granting Permissions for Amazon S3 Inventory and Storage Class Analysis]. +// +// Permissions To use this operation, you must have permission to perform the // s3:PutInventoryConfiguration action. The bucket owner has this permission by -// default and can grant this permission to others. The -// s3:PutInventoryConfiguration permission allows a user to create an S3 Inventory (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html) -// report that includes all object metadata fields available and to specify the +// default and can grant this permission to others. +// +// The s3:PutInventoryConfiguration permission allows a user to create an [S3 Inventory] report +// that includes all object metadata fields available and to specify the // destination bucket to store the inventory. A user with read access to objects in // the destination bucket can also access all object metadata fields that are -// available in the inventory report. To restrict access to an inventory report, -// see Restricting access to an Amazon S3 Inventory report (https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-use-case-10) -// in the Amazon S3 User Guide. For more information about the metadata fields -// available in S3 Inventory, see Amazon S3 Inventory lists (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html#storage-inventory-contents) -// in the Amazon S3 User Guide. For more information about permissions, see -// Permissions related to bucket subresource operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Identity and access management in Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// in the Amazon S3 User Guide. PutBucketInventoryConfiguration has the following -// special errors: HTTP 400 Bad Request Error Code: InvalidArgument Cause: Invalid -// Argument HTTP 400 Bad Request Error Code: TooManyConfigurations Cause: You are -// attempting to create a new configuration but have already reached the -// 1,000-configuration limit. HTTP 403 Forbidden Error Cause: You are not the owner -// of the specified bucket, or you do not have the s3:PutInventoryConfiguration -// bucket permission to set the configuration on the bucket. The following -// operations are related to PutBucketInventoryConfiguration : -// - GetBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) -// - DeleteBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html) -// - ListBucketInventoryConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html) +// available in the inventory report. +// +// To restrict access to an inventory report, see [Restricting access to an Amazon S3 Inventory report] in the Amazon S3 User Guide. +// For more information about the metadata fields available in S3 Inventory, see [Amazon S3 Inventory lists] +// in the Amazon S3 User Guide. For more information about permissions, see [Permissions related to bucket subresource operations]and [Identity and access management in Amazon S3] +// in the Amazon S3 User Guide. +// +// PutBucketInventoryConfiguration has the following special errors: +// +// HTTP 400 Bad Request Error Code: InvalidArgument +// +// Cause: Invalid Argument +// +// HTTP 400 Bad Request Error Code: TooManyConfigurations +// +// Cause: You are attempting to create a new configuration but have already +// reached the 1,000-configuration limit. +// +// HTTP 403 Forbidden Error Cause: You are not the owner of the specified bucket, +// or you do not have the s3:PutInventoryConfiguration bucket permission to set +// the configuration on the bucket. +// +// The following operations are related to PutBucketInventoryConfiguration : +// +// [GetBucketInventoryConfiguration] +// +// [DeleteBucketInventoryConfiguration] +// +// [ListBucketInventoryConfigurations] +// +// [Granting Permissions for Amazon S3 Inventory and Storage Class Analysis]: https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9 +// [Amazon S3 Inventory]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html +// [ListBucketInventoryConfigurations]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html +// [S3 Inventory]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html +// [Permissions related to bucket subresource operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [DeleteBucketInventoryConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html +// [Identity and access management in Amazon S3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html +// [Restricting access to an Amazon S3 Inventory report]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-use-case-10 +// [Amazon S3 Inventory lists]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html#storage-inventory-contents +// [GetBucketInventoryConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html func (c *Client) PutBucketInventoryConfiguration(ctx context.Context, params *PutBucketInventoryConfigurationInput, optFns ...func(*Options)) (*PutBucketInventoryConfigurationOutput, error) { if params == nil { params = &PutBucketInventoryConfigurationInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketLifecycleConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketLifecycleConfiguration.go index 88096fdd..102077fc 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketLifecycleConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketLifecycleConfiguration.go @@ -15,26 +15,32 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Creates a new lifecycle -// configuration for the bucket or replaces an existing lifecycle configuration. -// Keep in mind that this will overwrite an existing lifecycle configuration, so if -// you want to retain any configuration details, they must be included in the new -// lifecycle configuration. For information about lifecycle configuration, see -// Managing your storage lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) -// . Bucket lifecycle configuration now supports specifying a lifecycle rule using +// This operation is not supported by directory buckets. +// +// Creates a new lifecycle configuration for the bucket or replaces an existing +// lifecycle configuration. Keep in mind that this will overwrite an existing +// lifecycle configuration, so if you want to retain any configuration details, +// they must be included in the new lifecycle configuration. For information about +// lifecycle configuration, see [Managing your storage lifecycle]. +// +// Bucket lifecycle configuration now supports specifying a lifecycle rule using // an object key name prefix, one or more object tags, object size, or any // combination of these. Accordingly, this section describes the latest API. The // previous version of the API supported filtering based only on an object key name // prefix, which is supported for backward compatibility. For the related API -// description, see PutBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html) -// . Rules You specify the lifecycle configuration in your request body. The +// description, see [PutBucketLifecycle]. +// +// Rules You specify the lifecycle configuration in your request body. The // lifecycle configuration is specified as XML consisting of one or more rules. An // Amazon S3 Lifecycle configuration can have up to 1,000 rules. This limit is not // adjustable. Each rule consists of the following: +// // - A filter identifying a subset of objects to which the rule applies. The // filter can be based on a key name prefix, object tags, object size, or any // combination of these. +// // - A status indicating whether the rule is in effect. +// // - One or more lifecycle transition and expiration actions that you want // Amazon S3 to perform on the objects identified by the filter. If the state of // your bucket is versioning-enabled or versioning-suspended, you can have many @@ -42,28 +48,44 @@ import ( // versions). Amazon S3 provides predefined actions that you can specify for // current and noncurrent object versions. // -// For more information, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) -// and Lifecycle Configuration Elements (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html) -// . Permissions By default, all Amazon S3 resources are private, including -// buckets, objects, and related subresources (for example, lifecycle configuration -// and website configuration). Only the resource owner (that is, the Amazon Web +// For more information, see [Object Lifecycle Management] and [Lifecycle Configuration Elements]. +// +// Permissions By default, all Amazon S3 resources are private, including buckets, +// objects, and related subresources (for example, lifecycle configuration and +// website configuration). Only the resource owner (that is, the Amazon Web // Services account that created it) can access the resource. The resource owner // can optionally grant access permissions to others by writing an access policy. -// For this operation, a user must get the s3:PutLifecycleConfiguration -// permission. You can also explicitly deny permissions. An explicit deny also -// supersedes any other permissions. If you want to block users or accounts from -// removing or deleting objects from your bucket, you must deny them permissions -// for the following actions: +// For this operation, a user must get the s3:PutLifecycleConfiguration permission. +// +// You can also explicitly deny permissions. An explicit deny also supersedes any +// other permissions. If you want to block users or accounts from removing or +// deleting objects from your bucket, you must deny them permissions for the +// following actions: +// // - s3:DeleteObject +// // - s3:DeleteObjectVersion +// // - s3:PutLifecycleConfiguration // -// For more information about permissions, see Managing Access Permissions to Your -// Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . The following operations are related to PutBucketLifecycleConfiguration : -// - Examples of Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-configuration-examples.html) -// - GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) -// - DeleteBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html) +// For more information about permissions, see [Managing Access Permissions to Your Amazon S3 Resources]. +// +// The following operations are related to PutBucketLifecycleConfiguration : +// +// [Examples of Lifecycle Configuration] +// +// [GetBucketLifecycleConfiguration] +// +// [DeleteBucketLifecycle] +// +// [Examples of Lifecycle Configuration]: https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-configuration-examples.html +// [Object Lifecycle Management]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html +// [Lifecycle Configuration Elements]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html +// [GetBucketLifecycleConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html +// [PutBucketLifecycle]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html +// [DeleteBucketLifecycle]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html +// [Managing your storage lifecycle]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html func (c *Client) PutBucketLifecycleConfiguration(ctx context.Context, params *PutBucketLifecycleConfigurationInput, optFns ...func(*Options)) (*PutBucketLifecycleConfigurationOutput, error) { if params == nil { params = &PutBucketLifecycleConfigurationInput{} @@ -90,10 +112,13 @@ type PutBucketLifecycleConfigurationInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // The account ID of the expected bucket owner. If the account ID that you provide diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketLogging.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketLogging.go index fb80d2ee..e07c4322 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketLogging.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketLogging.go @@ -15,39 +15,68 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Set the logging -// parameters for a bucket and to specify permissions for who can view and modify -// the logging parameters. All logs are saved to buckets in the same Amazon Web -// Services Region as the source bucket. To set the logging status of a bucket, you -// must be the bucket owner. The bucket owner is automatically granted FULL_CONTROL -// to all logs. You use the Grantee request element to grant access to other -// people. The Permissions request element specifies the kind of access the -// grantee has to the logs. If the target bucket for log delivery uses the bucket -// owner enforced setting for S3 Object Ownership, you can't use the Grantee -// request element to grant access to others. Permissions can only be granted using -// policies. For more information, see Permissions for server access log delivery (https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general) -// in the Amazon S3 User Guide. Grantee Values You can specify the person (grantee) -// to whom you're assigning access rights (by using request elements) in the -// following ways: -// - By the person's ID: <>ID<><>GranteesEmail<> DisplayName is optional and -// ignored in the request. -// - By Email address: <>Grantees@email.com<> The grantee is resolved to the -// CanonicalUser and, in a response to a GETObjectAcl request, appears as the -// CanonicalUser. -// - By URI: <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<> +// This operation is not supported by directory buckets. +// +// Set the logging parameters for a bucket and to specify permissions for who can +// view and modify the logging parameters. All logs are saved to buckets in the +// same Amazon Web Services Region as the source bucket. To set the logging status +// of a bucket, you must be the bucket owner. +// +// The bucket owner is automatically granted FULL_CONTROL to all logs. You use the +// Grantee request element to grant access to other people. The Permissions +// request element specifies the kind of access the grantee has to the logs. +// +// If the target bucket for log delivery uses the bucket owner enforced setting +// for S3 Object Ownership, you can't use the Grantee request element to grant +// access to others. Permissions can only be granted using policies. For more +// information, see [Permissions for server access log delivery]in the Amazon S3 User Guide. +// +// Grantee Values You can specify the person (grantee) to whom you're assigning +// access rights (by using request elements) in the following ways: +// +// - By the person's ID: +// +// <>ID<><>GranteesEmail<> +// +// DisplayName is optional and ignored in the request. +// +// - By Email address: +// +// <>Grantees@email.com<> +// +// The grantee is resolved to the CanonicalUser and, in a response to a +// +// GETObjectAcl request, appears as the CanonicalUser. +// +// - By URI: +// +// <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<> // // To enable logging, you use LoggingEnabled and its children request elements. To -// disable logging, you use an empty BucketLoggingStatus request element: For -// more information about server access logging, see Server Access Logging (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html) -// in the Amazon S3 User Guide. For more information about creating a bucket, see -// CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) -// . For more information about returning the logging status of a bucket, see -// GetBucketLogging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html) -// . The following operations are related to PutBucketLogging : -// - PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) -// - DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) -// - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) -// - GetBucketLogging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html) +// disable logging, you use an empty BucketLoggingStatus request element: +// +// For more information about server access logging, see [Server Access Logging] in the Amazon S3 User +// Guide. +// +// For more information about creating a bucket, see [CreateBucket]. For more information about +// returning the logging status of a bucket, see [GetBucketLogging]. +// +// The following operations are related to PutBucketLogging : +// +// [PutObject] +// +// [DeleteBucket] +// +// [CreateBucket] +// +// [GetBucketLogging] +// +// [Permissions for server access log delivery]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general +// [DeleteBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html +// [GetBucketLogging]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html +// [PutObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html +// [CreateBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html +// [Server Access Logging]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html func (c *Client) PutBucketLogging(ctx context.Context, params *PutBucketLoggingInput, optFns ...func(*Options)) (*PutBucketLoggingOutput, error) { if params == nil { params = &PutBucketLoggingInput{} @@ -79,15 +108,19 @@ type PutBucketLoggingInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm - // The MD5 hash of the PutBucketLogging request body. For requests made using the - // Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, - // this field is calculated automatically. + // The MD5 hash of the PutBucketLogging request body. + // + // For requests made using the Amazon Web Services Command Line Interface (CLI) or + // Amazon Web Services SDKs, this field is calculated automatically. ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketMetricsConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketMetricsConfiguration.go index bff1452b..10b3b597 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketMetricsConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketMetricsConfiguration.go @@ -14,29 +14,44 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Sets a metrics -// configuration (specified by the metrics configuration ID) for the bucket. You -// can have up to 1,000 metrics configurations per bucket. If you're updating an -// existing metrics configuration, note that this is a full replacement of the -// existing metrics configuration. If you don't include the elements you want to -// keep, they are erased. To use this operation, you must have permissions to -// perform the s3:PutMetricsConfiguration action. The bucket owner has this -// permission by default. The bucket owner can grant this permission to others. For -// more information about permissions, see Permissions Related to Bucket -// Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . For information about CloudWatch request metrics for Amazon S3, see -// Monitoring Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html) -// . The following operations are related to PutBucketMetricsConfiguration : -// - DeleteBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html) -// - GetBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html) -// - ListBucketMetricsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html) +// This operation is not supported by directory buckets. +// +// Sets a metrics configuration (specified by the metrics configuration ID) for +// the bucket. You can have up to 1,000 metrics configurations per bucket. If +// you're updating an existing metrics configuration, note that this is a full +// replacement of the existing metrics configuration. If you don't include the +// elements you want to keep, they are erased. +// +// To use this operation, you must have permissions to perform the +// s3:PutMetricsConfiguration action. The bucket owner has this permission by +// default. The bucket owner can grant this permission to others. For more +// information about permissions, see [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to Your Amazon S3 Resources]. +// +// For information about CloudWatch request metrics for Amazon S3, see [Monitoring Metrics with Amazon CloudWatch]. +// +// The following operations are related to PutBucketMetricsConfiguration : +// +// [DeleteBucketMetricsConfiguration] +// +// [GetBucketMetricsConfiguration] +// +// [ListBucketMetricsConfigurations] // // PutBucketMetricsConfiguration has the following special error: +// // - Error code: TooManyConfigurations +// // - Description: You are attempting to create a new configuration but have // already reached the 1,000-configuration limit. +// // - HTTP Status Code: HTTP 400 Bad Request +// +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [Monitoring Metrics with Amazon CloudWatch]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html +// [GetBucketMetricsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html +// [ListBucketMetricsConfigurations]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html +// [DeleteBucketMetricsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html func (c *Client) PutBucketMetricsConfiguration(ctx context.Context, params *PutBucketMetricsConfigurationInput, optFns ...func(*Options)) (*PutBucketMetricsConfigurationOutput, error) { if params == nil { params = &PutBucketMetricsConfigurationInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketNotificationConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketNotificationConfiguration.go index e937b5c5..f83abf02 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketNotificationConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketNotificationConfiguration.go @@ -14,41 +14,59 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Enables notifications of -// specified events for a bucket. For more information about event notifications, -// see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) -// . Using this API, you can replace an existing notification configuration. The +// This operation is not supported by directory buckets. +// +// Enables notifications of specified events for a bucket. For more information +// about event notifications, see [Configuring Event Notifications]. +// +// Using this API, you can replace an existing notification configuration. The // configuration is an XML file that defines the event types that you want Amazon // S3 to publish and the destination where you want Amazon S3 to publish an event -// notification when it detects an event of the specified type. By default, your -// bucket has no event notifications configured. That is, the notification -// configuration will be an empty NotificationConfiguration . This action -// replaces the existing notification configuration with the configuration you -// include in the request body. After Amazon S3 receives this request, it first -// verifies that any Amazon Simple Notification Service (Amazon SNS) or Amazon -// Simple Queue Service (Amazon SQS) destination exists, and that the bucket owner -// has permission to publish to it by sending a test notification. In the case of -// Lambda destinations, Amazon S3 verifies that the Lambda function permissions -// grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For -// more information, see Configuring Notifications for Amazon S3 Events (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) -// . You can disable notifications by adding the empty NotificationConfiguration -// element. For more information about the number of event notification -// configurations that you can create per bucket, see Amazon S3 service quotas (https://docs.aws.amazon.com/general/latest/gr/s3.html#limits_s3) -// in Amazon Web Services General Reference. By default, only the bucket owner can -// configure notifications on a bucket. However, bucket owners can use a bucket -// policy to grant permission to other users to set this configuration with the -// required s3:PutBucketNotification permission. The PUT notification is an atomic -// operation. For example, suppose your notification configuration includes SNS -// topic, SQS queue, and Lambda function configurations. When you send a PUT -// request with this configuration, Amazon S3 sends test messages to your SNS -// topic. If the message fails, the entire PUT action will fail, and Amazon S3 will -// not add the configuration to your bucket. If the configuration in the request -// body includes only one TopicConfiguration specifying only the -// s3:ReducedRedundancyLostObject event type, the response will also include the -// x-amz-sns-test-message-id header containing the message ID of the test -// notification sent to the topic. The following action is related to -// PutBucketNotificationConfiguration : -// - GetBucketNotificationConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html) +// notification when it detects an event of the specified type. +// +// By default, your bucket has no event notifications configured. That is, the +// notification configuration will be an empty NotificationConfiguration . +// +// This action replaces the existing notification configuration with the +// configuration you include in the request body. +// +// After Amazon S3 receives this request, it first verifies that any Amazon Simple +// Notification Service (Amazon SNS) or Amazon Simple Queue Service (Amazon SQS) +// destination exists, and that the bucket owner has permission to publish to it by +// sending a test notification. In the case of Lambda destinations, Amazon S3 +// verifies that the Lambda function permissions grant Amazon S3 permission to +// invoke the function from the Amazon S3 bucket. For more information, see [Configuring Notifications for Amazon S3 Events]. +// +// You can disable notifications by adding the empty NotificationConfiguration +// element. +// +// For more information about the number of event notification configurations that +// you can create per bucket, see [Amazon S3 service quotas]in Amazon Web Services General Reference. +// +// By default, only the bucket owner can configure notifications on a bucket. +// However, bucket owners can use a bucket policy to grant permission to other +// users to set this configuration with the required s3:PutBucketNotification +// permission. +// +// The PUT notification is an atomic operation. For example, suppose your +// notification configuration includes SNS topic, SQS queue, and Lambda function +// configurations. When you send a PUT request with this configuration, Amazon S3 +// sends test messages to your SNS topic. If the message fails, the entire PUT +// action will fail, and Amazon S3 will not add the configuration to your bucket. +// +// If the configuration in the request body includes only one TopicConfiguration +// specifying only the s3:ReducedRedundancyLostObject event type, the response +// will also include the x-amz-sns-test-message-id header containing the message +// ID of the test notification sent to the topic. +// +// The following action is related to PutBucketNotificationConfiguration : +// +// [GetBucketNotificationConfiguration] +// +// [Configuring Notifications for Amazon S3 Events]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html +// [Amazon S3 service quotas]: https://docs.aws.amazon.com/general/latest/gr/s3.html#limits_s3 +// [GetBucketNotificationConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html +// [Configuring Event Notifications]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html func (c *Client) PutBucketNotificationConfiguration(ctx context.Context, params *PutBucketNotificationConfigurationInput, optFns ...func(*Options)) (*PutBucketNotificationConfigurationOutput, error) { if params == nil { params = &PutBucketNotificationConfigurationInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketOwnershipControls.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketOwnershipControls.go index 94875b75..e3160fd5 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketOwnershipControls.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketOwnershipControls.go @@ -15,14 +15,22 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Creates or modifies -// OwnershipControls for an Amazon S3 bucket. To use this operation, you must have -// the s3:PutBucketOwnershipControls permission. For more information about Amazon -// S3 permissions, see Specifying permissions in a policy (https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-with-s3-actions.html) -// . For information about Amazon S3 Object Ownership, see Using object ownership (https://docs.aws.amazon.com/AmazonS3/latest/user-guide/about-object-ownership.html) -// . The following operations are related to PutBucketOwnershipControls : -// - GetBucketOwnershipControls -// - DeleteBucketOwnershipControls +// This operation is not supported by directory buckets. +// +// Creates or modifies OwnershipControls for an Amazon S3 bucket. To use this +// operation, you must have the s3:PutBucketOwnershipControls permission. For more +// information about Amazon S3 permissions, see [Specifying permissions in a policy]. +// +// For information about Amazon S3 Object Ownership, see [Using object ownership]. +// +// The following operations are related to PutBucketOwnershipControls : +// +// # GetBucketOwnershipControls +// +// # DeleteBucketOwnershipControls +// +// [Specifying permissions in a policy]: https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-with-s3-actions.html +// [Using object ownership]: https://docs.aws.amazon.com/AmazonS3/latest/user-guide/about-object-ownership.html func (c *Client) PutBucketOwnershipControls(ctx context.Context, params *PutBucketOwnershipControlsInput, optFns ...func(*Options)) (*PutBucketOwnershipControlsOutput, error) { if params == nil { params = &PutBucketOwnershipControlsInput{} @@ -51,9 +59,10 @@ type PutBucketOwnershipControlsInput struct { // This member is required. OwnershipControls *types.OwnershipControls - // The MD5 hash of the OwnershipControls request body. For requests made using the - // Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, - // this field is calculated automatically. + // The MD5 hash of the OwnershipControls request body. + // + // For requests made using the Amazon Web Services Command Line Interface (CLI) or + // Amazon Web Services SDKs, this field is calculated automatically. ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketPolicy.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketPolicy.go index 88e3f263..c00676ca 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketPolicy.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketPolicy.go @@ -15,48 +15,64 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Applies an Amazon S3 bucket policy to an Amazon S3 bucket. Directory buckets - -// For directory buckets, you must make requests for this API operation to the -// Regional endpoint. These endpoints support path-style requests in the format -// https://s3express-control.region_code.amazonaws.com/bucket-name . -// Virtual-hosted-style requests aren't supported. For more information, see -// Regional and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. Permissions If you are using an identity other than -// the root user of the Amazon Web Services account that owns the bucket, the -// calling identity must both have the PutBucketPolicy permissions on the -// specified bucket and belong to the bucket owner's account in order to use this -// operation. If you don't have PutBucketPolicy permissions, Amazon S3 returns a -// 403 Access Denied error. If you have the correct permissions, but you're not -// using an identity that belongs to the bucket owner's account, Amazon S3 returns -// a 405 Method Not Allowed error. To ensure that bucket owners don't -// inadvertently lock themselves out of their own buckets, the root principal in a -// bucket owner's Amazon Web Services account can perform the GetBucketPolicy , -// PutBucketPolicy , and DeleteBucketPolicy API actions, even if their bucket -// policy explicitly denies the root principal's access. Bucket owner root -// principals can only be blocked from performing these API actions by VPC endpoint -// policies and Amazon Web Services Organizations policies. +// Applies an Amazon S3 bucket policy to an Amazon S3 bucket. +// +// Directory buckets - For directory buckets, you must make requests for this API +// operation to the Regional endpoint. These endpoints support path-style requests +// in the format https://s3express-control.region_code.amazonaws.com/bucket-name . +// Virtual-hosted-style requests aren't supported. For more information, see [Regional and Zonal endpoints]in +// the Amazon S3 User Guide. +// +// Permissions If you are using an identity other than the root user of the Amazon +// Web Services account that owns the bucket, the calling identity must both have +// the PutBucketPolicy permissions on the specified bucket and belong to the +// bucket owner's account in order to use this operation. +// +// If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access +// Denied error. If you have the correct permissions, but you're not using an +// identity that belongs to the bucket owner's account, Amazon S3 returns a 405 +// Method Not Allowed error. +// +// To ensure that bucket owners don't inadvertently lock themselves out of their +// own buckets, the root principal in a bucket owner's Amazon Web Services account +// can perform the GetBucketPolicy , PutBucketPolicy , and DeleteBucketPolicy API +// actions, even if their bucket policy explicitly denies the root principal's +// access. Bucket owner root principals can only be blocked from performing these +// API actions by VPC endpoint policies and Amazon Web Services Organizations +// policies. +// // - General purpose bucket permissions - The s3:PutBucketPolicy permission is // required in a policy. For more information about general purpose buckets bucket -// policies, see Using Bucket Policies and User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) -// in the Amazon S3 User Guide. +// policies, see [Using Bucket Policies and User Policies]in the Amazon S3 User Guide. +// // - Directory bucket permissions - To grant access to this API operation, you // must have the s3express:PutBucketPolicy permission in an IAM identity-based // policy instead of a bucket policy. Cross-account access to this API operation // isn't supported. This operation can only be performed by the Amazon Web Services // account that owns the resource. For more information about directory bucket -// policies and permissions, see Amazon Web Services Identity and Access -// Management (IAM) for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) -// in the Amazon S3 User Guide. +// policies and permissions, see [Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone]in the Amazon S3 User Guide. +// +// Example bucket policies General purpose buckets example bucket policies - See [Bucket policy examples] +// in the Amazon S3 User Guide. // -// Example bucket policies General purpose buckets example bucket policies - See -// Bucket policy examples (https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) -// in the Amazon S3 User Guide. Directory bucket example bucket policies - See -// Example bucket policies for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) -// in the Amazon S3 User Guide. HTTP Host header syntax Directory buckets - The -// HTTP Host header syntax is s3express-control.region.amazonaws.com . The -// following operations are related to PutBucketPolicy : -// - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) -// - DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) +// Directory bucket example bucket policies - See [Example bucket policies for S3 Express One Zone] in the Amazon S3 User Guide. +// +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// s3express-control.region.amazonaws.com . +// +// The following operations are related to PutBucketPolicy : +// +// [CreateBucket] +// +// [DeleteBucket] +// +// [Bucket policy examples]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html +// [Example bucket policies for S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [DeleteBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html +// [Using Bucket Policies and User Policies]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html +// [CreateBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html +// [Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html func (c *Client) PutBucketPolicy(ctx context.Context, params *PutBucketPolicyInput, optFns ...func(*Options)) (*PutBucketPolicyOutput, error) { if params == nil { params = &PutBucketPolicyInput{} @@ -74,21 +90,26 @@ func (c *Client) PutBucketPolicy(ctx context.Context, params *PutBucketPolicyInp type PutBucketPolicyInput struct { - // The name of the bucket. Directory buckets - When you use this operation with a - // directory bucket, you must use path-style requests in the format + // The name of the bucket. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use path-style requests in the format // https://s3express-control.region_code.amazonaws.com/bucket-name . // Virtual-hosted-style requests aren't supported. Directory bucket names must be // unique in the chosen Availability Zone. Bucket names must also follow the format // bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 - // ). For information about bucket naming restrictions, see Directory bucket - // naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide + // ). For information about bucket naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User + // Guide + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html // // This member is required. Bucket *string - // The bucket policy as a JSON document. For directory buckets, the only IAM - // action supported in the bucket policy is s3express:CreateSession . + // The bucket policy as a JSON document. + // + // For directory buckets, the only IAM action supported in the bucket policy is + // s3express:CreateSession . // // This member is required. Policy *string @@ -97,39 +118,54 @@ type PutBucketPolicyInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum-algorithm or x-amz-trailer header sent. Otherwise, Amazon S3 - // fails the request with the HTTP status code 400 Bad Request . For the - // x-amz-checksum-algorithm header, replace algorithm with the supported - // algorithm from the following list: + // fails the request with the HTTP status code 400 Bad Request . + // + // For the x-amz-checksum-algorithm header, replace algorithm with the + // supported algorithm from the following list: + // // - CRC32 + // // - CRC32C + // // - SHA1 + // // - SHA256 - // For more information, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If the individual checksum value you provide - // through x-amz-checksum-algorithm doesn't match the checksum algorithm you set - // through x-amz-sdk-checksum-algorithm , Amazon S3 ignores any provided - // ChecksumAlgorithm parameter and uses the checksum algorithm that matches the - // provided value in x-amz-checksum-algorithm . For directory buckets, when you - // use Amazon Web Services SDKs, CRC32 is the default checksum algorithm that's - // used for performance. + // + // For more information, see [Checking object integrity] in the Amazon S3 User Guide. + // + // If the individual checksum value you provide through x-amz-checksum-algorithm + // doesn't match the checksum algorithm you set through + // x-amz-sdk-checksum-algorithm , Amazon S3 ignores any provided ChecksumAlgorithm + // parameter and uses the checksum algorithm that matches the provided value in + // x-amz-checksum-algorithm . + // + // For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the + // default checksum algorithm that's used for performance. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // Set this parameter to true to confirm that you want to remove your permissions - // to change this bucket policy in the future. This functionality is not supported - // for directory buckets. + // to change this bucket policy in the future. + // + // This functionality is not supported for directory buckets. ConfirmRemoveSelfBucketAccess *bool - // The MD5 hash of the request body. For requests made using the Amazon Web - // Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is - // calculated automatically. This functionality is not supported for directory - // buckets. + // The MD5 hash of the request body. + // + // For requests made using the Amazon Web Services Command Line Interface (CLI) or + // Amazon Web Services SDKs, this field is calculated automatically. + // + // This functionality is not supported for directory buckets. ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide // does not match the actual owner of the bucket, the request fails with the HTTP - // status code 403 Forbidden (access denied). For directory buckets, this header - // is not supported in this API operation. If you specify this header, the request - // fails with the HTTP status code 501 Not Implemented . + // status code 403 Forbidden (access denied). + // + // For directory buckets, this header is not supported in this API operation. If + // you specify this header, the request fails with the HTTP status code 501 Not + // Implemented . ExpectedBucketOwner *string noSmithyDocumentSerde diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketReplication.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketReplication.go index bf59164c..00182a6b 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketReplication.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketReplication.go @@ -15,47 +15,71 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Creates a replication -// configuration or replaces an existing one. For more information, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) -// in the Amazon S3 User Guide. Specify the replication configuration in the -// request body. In the replication configuration, you provide the name of the -// destination bucket or buckets where you want Amazon S3 to replicate objects, the -// IAM role that Amazon S3 can assume to replicate objects on your behalf, and -// other relevant information. You can invoke this request for a specific Amazon -// Web Services Region by using the aws:RequestedRegion (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion) -// condition key. A replication configuration must include at least one rule, and -// can contain a maximum of 1,000. Each rule identifies a subset of objects to -// replicate by filtering the objects in the source bucket. To choose additional -// subsets of objects to replicate, add a rule for each subset. To specify a subset -// of the objects in the source bucket to apply a replication rule to, add the -// Filter element as a child of the Rule element. You can filter objects based on -// an object key prefix, one or more object tags, or both. When you add the Filter -// element in the configuration, you must also add the following elements: -// DeleteMarkerReplication , Status , and Priority . If you are using an earlier -// version of the replication configuration, Amazon S3 handles replication of -// delete markers differently. For more information, see Backward Compatibility (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations) -// . For information about enabling versioning on a bucket, see Using Versioning (https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) -// . Handling Replication of Encrypted Objects By default, Amazon S3 doesn't +// This operation is not supported by directory buckets. +// +// Creates a replication configuration or replaces an existing one. For more +// information, see [Replication]in the Amazon S3 User Guide. +// +// Specify the replication configuration in the request body. In the replication +// configuration, you provide the name of the destination bucket or buckets where +// you want Amazon S3 to replicate objects, the IAM role that Amazon S3 can assume +// to replicate objects on your behalf, and other relevant information. You can +// invoke this request for a specific Amazon Web Services Region by using the [aws:RequestedRegion] +// aws:RequestedRegion condition key. +// +// A replication configuration must include at least one rule, and can contain a +// maximum of 1,000. Each rule identifies a subset of objects to replicate by +// filtering the objects in the source bucket. To choose additional subsets of +// objects to replicate, add a rule for each subset. +// +// To specify a subset of the objects in the source bucket to apply a replication +// rule to, add the Filter element as a child of the Rule element. You can filter +// objects based on an object key prefix, one or more object tags, or both. When +// you add the Filter element in the configuration, you must also add the following +// elements: DeleteMarkerReplication , Status , and Priority . +// +// If you are using an earlier version of the replication configuration, Amazon S3 +// handles replication of delete markers differently. For more information, see [Backward Compatibility]. +// +// For information about enabling versioning on a bucket, see [Using Versioning]. +// +// Handling Replication of Encrypted Objects By default, Amazon S3 doesn't // replicate objects that are stored at rest using server-side encryption with KMS // keys. To replicate Amazon Web Services KMS-encrypted objects, add the following: // SourceSelectionCriteria , SseKmsEncryptedObjects , Status , // EncryptionConfiguration , and ReplicaKmsKeyID . For information about -// replication configuration, see Replicating Objects Created with SSE Using KMS -// keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html) -// . For information on PutBucketReplication errors, see List of -// replication-related error codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList) +// replication configuration, see [Replicating Objects Created with SSE Using KMS keys]. +// +// For information on PutBucketReplication errors, see [List of replication-related error codes] +// // Permissions To create a PutBucketReplication request, you must have -// s3:PutReplicationConfiguration permissions for the bucket. By default, a -// resource owner, in this case the Amazon Web Services account that created the -// bucket, can perform this operation. The resource owner can also grant others -// permissions to perform the operation. For more information about permissions, -// see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . To perform this operation, the user or role performing the action must have -// the iam:PassRole (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) -// permission. The following operations are related to PutBucketReplication : -// - GetBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) -// - DeleteBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html) +// s3:PutReplicationConfiguration permissions for the bucket. +// +// By default, a resource owner, in this case the Amazon Web Services account that +// created the bucket, can perform this operation. The resource owner can also +// grant others permissions to perform the operation. For more information about +// permissions, see [Specifying Permissions in a Policy]and [Managing Access Permissions to Your Amazon S3 Resources]. +// +// To perform this operation, the user or role performing the action must have the [iam:PassRole] +// permission. +// +// The following operations are related to PutBucketReplication : +// +// [GetBucketReplication] +// +// [DeleteBucketReplication] +// +// [iam:PassRole]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html +// [GetBucketReplication]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html +// [aws:RequestedRegion]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion +// [Replicating Objects Created with SSE Using KMS keys]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html +// [Using Versioning]: https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html +// [Replication]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html +// [List of replication-related error codes]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList +// [Backward Compatibility]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations +// [DeleteBucketReplication]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html +// [Specifying Permissions in a Policy]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html func (c *Client) PutBucketReplication(ctx context.Context, params *PutBucketReplicationInput, optFns ...func(*Options)) (*PutBucketReplicationOutput, error) { if params == nil { params = &PutBucketReplicationInput{} @@ -88,17 +112,23 @@ type PutBucketReplicationInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // The base64-encoded 128-bit MD5 digest of the data. You must use this header as // a message integrity check to verify that the request body was not corrupted in - // transit. For more information, see RFC 1864 (http://www.ietf.org/rfc/rfc1864.txt) - // . For requests made using the Amazon Web Services Command Line Interface (CLI) - // or Amazon Web Services SDKs, this field is calculated automatically. + // transit. For more information, see [RFC 1864]. + // + // For requests made using the Amazon Web Services Command Line Interface (CLI) or + // Amazon Web Services SDKs, this field is calculated automatically. + // + // [RFC 1864]: http://www.ietf.org/rfc/rfc1864.txt ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketRequestPayment.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketRequestPayment.go index 07e0f163..57992d9d 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketRequestPayment.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketRequestPayment.go @@ -15,14 +15,22 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Sets the request payment -// configuration for a bucket. By default, the bucket owner pays for downloads from -// the bucket. This configuration parameter enables the bucket owner (only) to -// specify that the person requesting the download will be charged for the -// download. For more information, see Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) -// . The following operations are related to PutBucketRequestPayment : -// - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) -// - GetBucketRequestPayment (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html) +// This operation is not supported by directory buckets. +// +// Sets the request payment configuration for a bucket. By default, the bucket +// owner pays for downloads from the bucket. This configuration parameter enables +// the bucket owner (only) to specify that the person requesting the download will +// be charged for the download. For more information, see [Requester Pays Buckets]. +// +// The following operations are related to PutBucketRequestPayment : +// +// [CreateBucket] +// +// [GetBucketRequestPayment] +// +// [GetBucketRequestPayment]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html +// [Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html +// [CreateBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html func (c *Client) PutBucketRequestPayment(ctx context.Context, params *PutBucketRequestPaymentInput, optFns ...func(*Options)) (*PutBucketRequestPaymentOutput, error) { if params == nil { params = &PutBucketRequestPaymentInput{} @@ -54,17 +62,23 @@ type PutBucketRequestPaymentInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // The base64-encoded 128-bit MD5 digest of the data. You must use this header as // a message integrity check to verify that the request body was not corrupted in - // transit. For more information, see RFC 1864 (http://www.ietf.org/rfc/rfc1864.txt) - // . For requests made using the Amazon Web Services Command Line Interface (CLI) - // or Amazon Web Services SDKs, this field is calculated automatically. + // transit. For more information, see [RFC 1864]. + // + // For requests made using the Amazon Web Services Command Line Interface (CLI) or + // Amazon Web Services SDKs, this field is calculated automatically. + // + // [RFC 1864]: http://www.ietf.org/rfc/rfc1864.txt ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketTagging.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketTagging.go index 0f0a6fd4..7a97414e 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketTagging.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketTagging.go @@ -15,39 +15,54 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Sets the tags for a -// bucket. Use tags to organize your Amazon Web Services bill to reflect your own -// cost structure. To do this, sign up to get your Amazon Web Services account bill -// with tag key values included. Then, to see the cost of combined resources, -// organize your billing information according to resources with the same tag key -// values. For example, you can tag several resources with a specific application -// name, and then organize your billing information to see the total cost of that -// application across several services. For more information, see Cost Allocation -// and Tagging (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) -// and Using Cost Allocation in Amazon S3 Bucket Tags (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html) -// . When this operation sets the tags for a bucket, it will overwrite any current +// This operation is not supported by directory buckets. +// +// Sets the tags for a bucket. +// +// Use tags to organize your Amazon Web Services bill to reflect your own cost +// structure. To do this, sign up to get your Amazon Web Services account bill with +// tag key values included. Then, to see the cost of combined resources, organize +// your billing information according to resources with the same tag key values. +// For example, you can tag several resources with a specific application name, and +// then organize your billing information to see the total cost of that application +// across several services. For more information, see [Cost Allocation and Tagging]and [Using Cost Allocation in Amazon S3 Bucket Tags]. +// +// When this operation sets the tags for a bucket, it will overwrite any current // tags the bucket already has. You cannot use this operation to add tags to an -// existing list of tags. To use this operation, you must have permissions to -// perform the s3:PutBucketTagging action. The bucket owner has this permission by -// default and can grant this permission to others. For more information about -// permissions, see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// . PutBucketTagging has the following special errors. For more Amazon S3 errors -// see, Error Responses (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html) -// . +// existing list of tags. +// +// To use this operation, you must have permissions to perform the +// s3:PutBucketTagging action. The bucket owner has this permission by default and +// can grant this permission to others. For more information about permissions, see +// [Permissions Related to Bucket Subresource Operations]and [Managing Access Permissions to Your Amazon S3 Resources]. +// +// PutBucketTagging has the following special errors. For more Amazon S3 errors +// see, [Error Responses]. +// // - InvalidTag - The tag provided was not a valid tag. This error can occur if -// the tag did not pass input validation. For more information, see Using Cost -// Allocation in Amazon S3 Bucket Tags (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html) -// . +// the tag did not pass input validation. For more information, see [Using Cost Allocation in Amazon S3 Bucket Tags]. +// // - MalformedXML - The XML provided does not match the schema. +// // - OperationAborted - A conflicting conditional action is currently in progress // against this resource. Please try again. +// // - InternalError - The service was unable to apply the provided tag to the // bucket. // // The following operations are related to PutBucketTagging : -// - GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html) -// - DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html) +// +// [GetBucketTagging] +// +// [DeleteBucketTagging] +// +// [Error Responses]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html +// [GetBucketTagging]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html +// [Cost Allocation and Tagging]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [DeleteBucketTagging]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html +// [Using Cost Allocation in Amazon S3 Bucket Tags]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html func (c *Client) PutBucketTagging(ctx context.Context, params *PutBucketTaggingInput, optFns ...func(*Options)) (*PutBucketTaggingOutput, error) { if params == nil { params = &PutBucketTaggingInput{} @@ -79,17 +94,23 @@ type PutBucketTaggingInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // The base64-encoded 128-bit MD5 digest of the data. You must use this header as // a message integrity check to verify that the request body was not corrupted in - // transit. For more information, see RFC 1864 (http://www.ietf.org/rfc/rfc1864.txt) - // . For requests made using the Amazon Web Services Command Line Interface (CLI) - // or Amazon Web Services SDKs, this field is calculated automatically. + // transit. For more information, see [RFC 1864]. + // + // For requests made using the Amazon Web Services Command Line Interface (CLI) or + // Amazon Web Services SDKs, this field is calculated automatically. + // + // [RFC 1864]: http://www.ietf.org/rfc/rfc1864.txt ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketVersioning.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketVersioning.go index 495725ce..9a5d520a 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketVersioning.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketVersioning.go @@ -15,28 +15,47 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Sets the versioning state -// of an existing bucket. You can set the versioning state with one of the -// following values: Enabled—Enables versioning for the objects in the bucket. All -// objects added to the bucket receive a unique version ID. Suspended—Disables -// versioning for the objects in the bucket. All objects added to the bucket -// receive the version ID null. If the versioning state has never been set on a -// bucket, it has no versioning state; a GetBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) -// request does not return a versioning state value. In order to enable MFA Delete, -// you must be the bucket owner. If you are the bucket owner and want to enable MFA -// Delete in the bucket versioning configuration, you must include the x-amz-mfa -// request header and the Status and the MfaDelete request elements in a request -// to set the versioning state of the bucket. If you have an object expiration -// lifecycle configuration in your non-versioned bucket and you want to maintain -// the same permanent delete behavior when you enable versioning, you must add a -// noncurrent expiration policy. The noncurrent expiration lifecycle configuration -// will manage the deletes of the noncurrent object versions in the version-enabled -// bucket. (A version-enabled bucket maintains one current and zero or more -// noncurrent object versions.) For more information, see Lifecycle and Versioning (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config) -// . The following operations are related to PutBucketVersioning : -// - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) -// - DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) -// - GetBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) +// This operation is not supported by directory buckets. +// +// Sets the versioning state of an existing bucket. +// +// You can set the versioning state with one of the following values: +// +// Enabled—Enables versioning for the objects in the bucket. All objects added to +// the bucket receive a unique version ID. +// +// Suspended—Disables versioning for the objects in the bucket. All objects added +// to the bucket receive the version ID null. +// +// If the versioning state has never been set on a bucket, it has no versioning +// state; a [GetBucketVersioning]request does not return a versioning state value. +// +// In order to enable MFA Delete, you must be the bucket owner. If you are the +// bucket owner and want to enable MFA Delete in the bucket versioning +// configuration, you must include the x-amz-mfa request header and the Status and +// the MfaDelete request elements in a request to set the versioning state of the +// bucket. +// +// If you have an object expiration lifecycle configuration in your non-versioned +// bucket and you want to maintain the same permanent delete behavior when you +// enable versioning, you must add a noncurrent expiration policy. The noncurrent +// expiration lifecycle configuration will manage the deletes of the noncurrent +// object versions in the version-enabled bucket. (A version-enabled bucket +// maintains one current and zero or more noncurrent object versions.) For more +// information, see [Lifecycle and Versioning]. +// +// The following operations are related to PutBucketVersioning : +// +// [CreateBucket] +// +// [DeleteBucket] +// +// [GetBucketVersioning] +// +// [DeleteBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html +// [CreateBucket]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html +// [Lifecycle and Versioning]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config +// [GetBucketVersioning]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html func (c *Client) PutBucketVersioning(ctx context.Context, params *PutBucketVersioningInput, optFns ...func(*Options)) (*PutBucketVersioningOutput, error) { if params == nil { params = &PutBucketVersioningInput{} @@ -68,17 +87,23 @@ type PutBucketVersioningInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // >The base64-encoded 128-bit MD5 digest of the data. You must use this header as // a message integrity check to verify that the request body was not corrupted in - // transit. For more information, see RFC 1864 (http://www.ietf.org/rfc/rfc1864.txt) - // . For requests made using the Amazon Web Services Command Line Interface (CLI) - // or Amazon Web Services SDKs, this field is calculated automatically. + // transit. For more information, see [RFC 1864]. + // + // For requests made using the Amazon Web Services Command Line Interface (CLI) or + // Amazon Web Services SDKs, this field is calculated automatically. + // + // [RFC 1864]: http://www.ietf.org/rfc/rfc1864.txt ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketWebsite.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketWebsite.go index 08c8a582..85d0214a 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketWebsite.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutBucketWebsite.go @@ -15,21 +15,29 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Sets the configuration of -// the website that is specified in the website subresource. To configure a bucket -// as a website, you can add this subresource on the bucket with website -// configuration information such as the file name of the index document and any -// redirect rules. For more information, see Hosting Websites on Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) -// . This PUT action requires the S3:PutBucketWebsite permission. By default, only +// This operation is not supported by directory buckets. +// +// Sets the configuration of the website that is specified in the website +// subresource. To configure a bucket as a website, you can add this subresource on +// the bucket with website configuration information such as the file name of the +// index document and any redirect rules. For more information, see [Hosting Websites on Amazon S3]. +// +// This PUT action requires the S3:PutBucketWebsite permission. By default, only // the bucket owner can configure the website attached to a bucket; however, bucket // owners can allow other users to set the website configuration by writing a -// bucket policy that grants them the S3:PutBucketWebsite permission. To redirect -// all website requests sent to the bucket's website endpoint, you add a website -// configuration with the following elements. Because all requests are sent to -// another website, you don't need to provide index document name for the bucket. +// bucket policy that grants them the S3:PutBucketWebsite permission. +// +// To redirect all website requests sent to the bucket's website endpoint, you add +// a website configuration with the following elements. Because all requests are +// sent to another website, you don't need to provide index document name for the +// bucket. +// // - WebsiteConfiguration +// // - RedirectAllRequestsTo +// // - HostName +// // - Protocol // // If you want granular control over redirects, you can use the following elements @@ -37,27 +45,47 @@ import ( // information about the redirect destination. In this case, the website // configuration must provide an index document for the bucket, because some // requests might not be redirected. +// // - WebsiteConfiguration +// // - IndexDocument +// // - Suffix +// // - ErrorDocument +// // - Key +// // - RoutingRules +// // - RoutingRule +// // - Condition +// // - HttpErrorCodeReturnedEquals +// // - KeyPrefixEquals +// // - Redirect +// // - Protocol +// // - HostName +// // - ReplaceKeyPrefixWith +// // - ReplaceKeyWith +// // - HttpRedirectCode // // Amazon S3 has a limitation of 50 routing rules per website configuration. If // you require more than 50 routing rules, you can use object redirect. For more -// information, see Configuring an Object Redirect (https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html) -// in the Amazon S3 User Guide. The maximum request length is limited to 128 KB. +// information, see [Configuring an Object Redirect]in the Amazon S3 User Guide. +// +// The maximum request length is limited to 128 KB. +// +// [Hosting Websites on Amazon S3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html +// [Configuring an Object Redirect]: https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html func (c *Client) PutBucketWebsite(ctx context.Context, params *PutBucketWebsiteInput, optFns ...func(*Options)) (*PutBucketWebsiteOutput, error) { if params == nil { params = &PutBucketWebsiteInput{} @@ -89,17 +117,23 @@ type PutBucketWebsiteInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // The base64-encoded 128-bit MD5 digest of the data. You must use this header as // a message integrity check to verify that the request body was not corrupted in - // transit. For more information, see RFC 1864 (http://www.ietf.org/rfc/rfc1864.txt) - // . For requests made using the Amazon Web Services Command Line Interface (CLI) - // or Amazon Web Services SDKs, this field is calculated automatically. + // transit. For more information, see [RFC 1864]. + // + // For requests made using the Amazon Web Services Command Line Interface (CLI) or + // Amazon Web Services SDKs, this field is calculated automatically. + // + // [RFC 1864]: http://www.ietf.org/rfc/rfc1864.txt ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObject.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObject.go index d57e0026..6a479960 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObject.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObject.go @@ -18,51 +18,60 @@ import ( ) // Adds an object to a bucket. +// // - Amazon S3 never adds partial objects; if you receive a success response, // Amazon S3 added the entire object to the bucket. You cannot use PutObject to // only update a single piece of metadata for an existing object. You must put the // entire object with updated metadata if you want to update some values. +// // - If your bucket uses the bucket owner enforced setting for Object Ownership, // ACLs are disabled and no longer affect permissions. All objects written to the // bucket by any account will be owned by the bucket owner. +// // - Directory buckets - For directory buckets, you must make requests for this // API operation to the Zonal endpoint. These endpoints support // virtual-hosted-style requests in the format // https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . -// Path-style requests are not supported. For more information, see Regional and -// Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. +// Path-style requests are not supported. For more information, see [Regional and Zonal endpoints]in the +// Amazon S3 User Guide. // // Amazon S3 is a distributed system. If it receives multiple write requests for // the same object simultaneously, it overwrites all but the last object written. // However, Amazon S3 provides features that can modify this behavior: +// // - S3 Object Lock - To prevent objects from being deleted or overwritten, you -// can use Amazon S3 Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) -// in the Amazon S3 User Guide. This functionality is not supported for directory -// buckets. +// can use [Amazon S3 Object Lock]in the Amazon S3 User Guide. +// +// This functionality is not supported for directory buckets. +// // - S3 Versioning - When you enable versioning for a bucket, if Amazon S3 // receives multiple write requests for the same object simultaneously, it stores // all versions of the objects. For each write request that is made to the same // object, Amazon S3 automatically generates a unique version ID of that object // being stored in Amazon S3. You can retrieve, replace, or delete any version of -// the object. For more information about versioning, see Adding Objects to -// Versioning-Enabled Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html) -// in the Amazon S3 User Guide. For information about returning the versioning -// state of a bucket, see GetBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) -// . This functionality is not supported for directory buckets. +// the object. For more information about versioning, see [Adding Objects to Versioning-Enabled Buckets]in the Amazon S3 User +// Guide. For information about returning the versioning state of a bucket, see [GetBucketVersioning] +// . +// +// This functionality is not supported for directory buckets. // // Permissions +// // - General purpose bucket permissions - The following permissions are required // in your policies when your PutObject request includes specific headers. +// // - s3:PutObject - To successfully complete the PutObject request, you must // always have the s3:PutObject permission on a bucket to add an object to it. +// // - s3:PutObjectAcl - To successfully change the objects ACL of your PutObject // request, you must have the s3:PutObjectAcl . +// // - s3:PutObjectTagging - To successfully set the tag-set with your PutObject // request, you must have the s3:PutObjectTagging . +// // - Directory bucket permissions - To grant access to this API operation on a -// directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// API operation for session-based authorization. Specifically, you grant the +// directory bucket, we recommend that you use the [CreateSession]CreateSession API operation +// for session-based authorization. Specifically, you grant the // s3express:CreateSession permission to the directory bucket in a bucket policy // or an IAM identity-based policy. Then, you make the CreateSession API call on // the bucket to obtain a session token. With the session token in your request @@ -70,24 +79,36 @@ import ( // expires, you make another CreateSession API call to generate a new session // token for use. Amazon Web Services CLI or SDKs create session and refresh the // session token automatically to avoid service interruptions when a session -// expires. For more information about authorization, see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// . +// expires. For more information about authorization, see [CreateSession]CreateSession . // // Data integrity with Content-MD5 +// // - General purpose bucket - To ensure that data is not corrupted traversing // the network, use the Content-MD5 header. When you use this header, Amazon S3 // checks the object against the provided MD5 value and, if they do not match, // Amazon S3 returns an error. Alternatively, when the object's ETag is its MD5 // digest, you can calculate the MD5 while putting the object to Amazon S3 and // compare the returned ETag to the calculated MD5 value. +// // - Directory bucket - This functionality is not supported for directory // buckets. // -// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is -// Bucket_name.s3express-az_id.region.amazonaws.com . For more information about -// related Amazon S3 APIs, see the following: -// - CopyObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) -// - DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// Bucket_name.s3express-az_id.region.amazonaws.com . +// +// For more information about related Amazon S3 APIs, see the following: +// +// [CopyObject] +// +// [DeleteObject] +// +// [Amazon S3 Object Lock]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html +// [DeleteObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [Adding Objects to Versioning-Enabled Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html +// [CopyObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html +// [CreateSession]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html +// [GetBucketVersioning]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html func (c *Client) PutObject(ctx context.Context, params *PutObjectInput, optFns ...func(*Options)) (*PutObjectOutput, error) { if params == nil { params = &PutObjectInput{} @@ -105,31 +126,39 @@ func (c *Client) PutObject(ctx context.Context, params *PutObjectInput, optFns . type PutObjectInput struct { - // The bucket name to which the PUT action was initiated. Directory buckets - When - // you use this operation with a directory bucket, you must use - // virtual-hosted-style requests in the format + // The bucket name to which the PUT action was initiated. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use virtual-hosted-style requests in the format // Bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests are not // supported. Directory bucket names must be unique in the chosen Availability // Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for // example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 ). For information about bucket - // naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. Access points and Object Lambda access points are - // not supported by directory buckets. S3 on Outposts - When you use this action - // with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts - // hostname. The S3 on Outposts hostname takes the form + // naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -139,26 +168,33 @@ type PutObjectInput struct { // This member is required. Key *string - // The canned ACL to apply to the object. For more information, see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL) - // in the Amazon S3 User Guide. When adding a new object, you can use headers to - // grant ACL-based permissions to individual Amazon Web Services accounts or to - // predefined groups defined by Amazon S3. These permissions are then added to the - // ACL on the object. By default, all objects are private. Only the owner has full - // access control. For more information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) - // and Managing ACLs Using the REST API (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html) - // in the Amazon S3 User Guide. If the bucket that you're uploading objects to uses - // the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and - // no longer affect permissions. Buckets that use this setting only accept PUT - // requests that don't specify an ACL or PUT requests that specify bucket owner - // full control ACLs, such as the bucket-owner-full-control canned ACL or an - // equivalent form of this ACL expressed in the XML format. PUT requests that - // contain other ACLs (for example, custom grants to certain Amazon Web Services - // accounts) fail and return a 400 error with the error code - // AccessControlListNotSupported . For more information, see Controlling - // ownership of objects and disabling ACLs (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) - // in the Amazon S3 User Guide. + // The canned ACL to apply to the object. For more information, see [Canned ACL] in the Amazon + // S3 User Guide. + // + // When adding a new object, you can use headers to grant ACL-based permissions to + // individual Amazon Web Services accounts or to predefined groups defined by + // Amazon S3. These permissions are then added to the ACL on the object. By + // default, all objects are private. Only the owner has full access control. For + // more information, see [Access Control List (ACL) Overview]and [Managing ACLs Using the REST API] in the Amazon S3 User Guide. + // + // If the bucket that you're uploading objects to uses the bucket owner enforced + // setting for S3 Object Ownership, ACLs are disabled and no longer affect + // permissions. Buckets that use this setting only accept PUT requests that don't + // specify an ACL or PUT requests that specify bucket owner full control ACLs, such + // as the bucket-owner-full-control canned ACL or an equivalent form of this ACL + // expressed in the XML format. PUT requests that contain other ACLs (for example, + // custom grants to certain Amazon Web Services accounts) fail and return a 400 + // error with the error code AccessControlListNotSupported . For more information, + // see [Controlling ownership of objects and disabling ACLs]in the Amazon S3 User Guide. + // // - This functionality is not supported for directory buckets. + // // - This functionality is not supported for Amazon S3 on Outposts. + // + // [Managing ACLs Using the REST API]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html + // [Access Control List (ACL) Overview]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html + // [Canned ACL]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL + // [Controlling ownership of objects and disabling ACLs]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html ACL types.ObjectCannedACL // Object data. @@ -167,102 +203,124 @@ type PutObjectInput struct { // Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption // with server-side encryption using Key Management Service (KMS) keys (SSE-KMS). // Setting this header to true causes Amazon S3 to use an S3 Bucket Key for object - // encryption with SSE-KMS. Specifying this header with a PUT action doesn’t affect - // bucket-level settings for S3 Bucket Key. This functionality is not supported for - // directory buckets. + // encryption with SSE-KMS. + // + // Specifying this header with a PUT action doesn’t affect bucket-level settings + // for S3 Bucket Key. + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool // Can be used to specify caching behavior along the request/reply chain. For more - // information, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) - // . + // information, see [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9]. + // + // [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9 CacheControl *string // Indicates the algorithm used to create the checksum for the object when you use // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum-algorithm or x-amz-trailer header sent. Otherwise, Amazon S3 - // fails the request with the HTTP status code 400 Bad Request . For the - // x-amz-checksum-algorithm header, replace algorithm with the supported - // algorithm from the following list: + // fails the request with the HTTP status code 400 Bad Request . + // + // For the x-amz-checksum-algorithm header, replace algorithm with the + // supported algorithm from the following list: + // // - CRC32 + // // - CRC32C + // // - SHA1 + // // - SHA256 - // For more information, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If the individual checksum value you provide - // through x-amz-checksum-algorithm doesn't match the checksum algorithm you set - // through x-amz-sdk-checksum-algorithm , Amazon S3 ignores any provided - // ChecksumAlgorithm parameter and uses the checksum algorithm that matches the - // provided value in x-amz-checksum-algorithm . For directory buckets, when you - // use Amazon Web Services SDKs, CRC32 is the default checksum algorithm that's - // used for performance. + // + // For more information, see [Checking object integrity] in the Amazon S3 User Guide. + // + // If the individual checksum value you provide through x-amz-checksum-algorithm + // doesn't match the checksum algorithm you set through + // x-amz-sdk-checksum-algorithm , Amazon S3 ignores any provided ChecksumAlgorithm + // parameter and uses the checksum algorithm that matches the provided value in + // x-amz-checksum-algorithm . + // + // For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the + // default checksum algorithm that's used for performance. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // This header can be used as a data integrity check to verify that the data // received is the same data that was originally sent. This header specifies the - // base64-encoded, 32-bit CRC32 checksum of the object. For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // base64-encoded, 32-bit CRC32 checksum of the object. For more information, see [Checking object integrity] // in the Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumCRC32 *string // This header can be used as a data integrity check to verify that the data // received is the same data that was originally sent. This header specifies the - // base64-encoded, 32-bit CRC32C checksum of the object. For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // base64-encoded, 32-bit CRC32C checksum of the object. For more information, see [Checking object integrity] // in the Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumCRC32C *string // This header can be used as a data integrity check to verify that the data // received is the same data that was originally sent. This header specifies the - // base64-encoded, 160-bit SHA-1 digest of the object. For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // base64-encoded, 160-bit SHA-1 digest of the object. For more information, see [Checking object integrity] // in the Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumSHA1 *string // This header can be used as a data integrity check to verify that the data // received is the same data that was originally sent. This header specifies the - // base64-encoded, 256-bit SHA-256 digest of the object. For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // base64-encoded, 256-bit SHA-256 digest of the object. For more information, see [Checking object integrity] // in the Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumSHA256 *string - // Specifies presentational information for the object. For more information, see - // https://www.rfc-editor.org/rfc/rfc6266#section-4 (https://www.rfc-editor.org/rfc/rfc6266#section-4) - // . + // Specifies presentational information for the object. For more information, see [https://www.rfc-editor.org/rfc/rfc6266#section-4]. + // + // [https://www.rfc-editor.org/rfc/rfc6266#section-4]: https://www.rfc-editor.org/rfc/rfc6266#section-4 ContentDisposition *string // Specifies what content encodings have been applied to the object and thus what // decoding mechanisms must be applied to obtain the media-type referenced by the - // Content-Type header field. For more information, see - // https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding (https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding) - // . + // Content-Type header field. For more information, see [https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding]. + // + // [https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding]: https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding ContentEncoding *string // The language the content is in. ContentLanguage *string // Size of the body in bytes. This parameter is useful when the size of the body - // cannot be determined automatically. For more information, see - // https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length (https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length) - // . + // cannot be determined automatically. For more information, see [https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length]. + // + // [https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length ContentLength *int64 // The base64-encoded 128-bit MD5 digest of the message (without the headers) // according to RFC 1864. This header can be used as a message integrity check to // verify that the data is the same data that was originally sent. Although it is // optional, we recommend using the Content-MD5 mechanism as an end-to-end - // integrity check. For more information about REST request authentication, see - // REST Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html) - // . The Content-MD5 header is required for any request to upload an object with a + // integrity check. For more information about REST request authentication, see [REST Authentication]. + // + // The Content-MD5 header is required for any request to upload an object with a // retention period configured using Amazon S3 Object Lock. For more information - // about Amazon S3 Object Lock, see Amazon S3 Object Lock Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // about Amazon S3 Object Lock, see [Amazon S3 Object Lock Overview]in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. + // + // [REST Authentication]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html + // [Amazon S3 Object Lock Overview]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html ContentMD5 *string // A standard MIME type describing the format of the contents. For more - // information, see https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type (https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type) - // . + // information, see [https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type]. + // + // [https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type ContentType *string // The account ID of the expected bucket owner. If the account ID that you provide @@ -271,27 +329,36 @@ type PutObjectInput struct { ExpectedBucketOwner *string // The date and time at which the object is no longer cacheable. For more - // information, see https://www.rfc-editor.org/rfc/rfc7234#section-5.3 (https://www.rfc-editor.org/rfc/rfc7234#section-5.3) - // . + // information, see [https://www.rfc-editor.org/rfc/rfc7234#section-5.3]. + // + // [https://www.rfc-editor.org/rfc/rfc7234#section-5.3]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3 Expires *time.Time // Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. + // // - This functionality is not supported for directory buckets. + // // - This functionality is not supported for Amazon S3 on Outposts. GrantFullControl *string // Allows grantee to read the object data and its metadata. + // // - This functionality is not supported for directory buckets. + // // - This functionality is not supported for Amazon S3 on Outposts. GrantRead *string // Allows grantee to read the object ACL. + // // - This functionality is not supported for directory buckets. + // // - This functionality is not supported for Amazon S3 on Outposts. GrantReadACP *string // Allows grantee to write the ACL for the applicable object. + // // - This functionality is not supported for directory buckets. + // // - This functionality is not supported for Amazon S3 on Outposts. GrantWriteACP *string @@ -299,46 +366,55 @@ type PutObjectInput struct { Metadata map[string]string // Specifies whether a legal hold will be applied to this object. For more - // information about S3 Object Lock, see Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // information about S3 Object Lock, see [Object Lock]in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. + // + // [Object Lock]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html ObjectLockLegalHoldStatus types.ObjectLockLegalHoldStatus - // The Object Lock mode that you want to apply to this object. This functionality - // is not supported for directory buckets. + // The Object Lock mode that you want to apply to this object. + // + // This functionality is not supported for directory buckets. ObjectLockMode types.ObjectLockMode // The date and time when you want this object's Object Lock to expire. Must be - // formatted as a timestamp parameter. This functionality is not supported for - // directory buckets. + // formatted as a timestamp parameter. + // + // This functionality is not supported for directory buckets. ObjectLockRetainUntilDate *time.Time // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer - // Specifies the algorithm to use when encrypting the object (for example, AES256 - // ). This functionality is not supported for directory buckets. + // Specifies the algorithm to use when encrypting the object (for example, AES256 ). + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string // Specifies the customer-provided encryption key for Amazon S3 to use in // encrypting data. This value is used to store the object and then it is // discarded; Amazon S3 does not store the encryption key. The key must be // appropriate for use with the algorithm specified in the - // x-amz-server-side-encryption-customer-algorithm header. This functionality is - // not supported for directory buckets. + // x-amz-server-side-encryption-customer-algorithm header. + // + // This functionality is not supported for directory buckets. SSECustomerKey *string // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure that the - // encryption key was transmitted without error. This functionality is not - // supported for directory buckets. + // encryption key was transmitted without error. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string // Specifies the Amazon Web Services KMS Encryption Context to use for object @@ -346,8 +422,9 @@ type PutObjectInput struct { // JSON with the encryption context key-value pairs. This value is stored as object // metadata and automatically gets passed on to Amazon Web Services KMS for future // GetObject or CopyObject operations on this object. This value must be - // explicitly added during CopyObject operations. This functionality is not - // supported for directory buckets. + // explicitly added during CopyObject operations. + // + // This functionality is not supported for directory buckets. SSEKMSEncryptionContext *string // If x-amz-server-side-encryption has a valid value of aws:kms or aws:kms:dsse , @@ -358,53 +435,72 @@ type PutObjectInput struct { // x-amz-server-side-encryption-aws-kms-key-id , Amazon S3 uses the Amazon Web // Services managed key ( aws/s3 ) to protect the data. If the KMS key does not // exist in the same account that's issuing the command, you must use the full ARN - // and not just the ID. This functionality is not supported for directory buckets. + // and not just the ID. + // + // This functionality is not supported for directory buckets. SSEKMSKeyId *string // The server-side encryption algorithm that was used when you store this object - // in Amazon S3 (for example, AES256 , aws:kms , aws:kms:dsse ). General purpose - // buckets - You have four mutually exclusive options to protect data using - // server-side encryption in Amazon S3, depending on how you choose to manage the - // encryption keys. Specifically, the encryption key options are Amazon S3 managed - // keys (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS), and - // customer-provided keys (SSE-C). Amazon S3 encrypts data with server-side + // in Amazon S3 (for example, AES256 , aws:kms , aws:kms:dsse ). + // + // General purpose buckets - You have four mutually exclusive options to protect + // data using server-side encryption in Amazon S3, depending on how you choose to + // manage the encryption keys. Specifically, the encryption key options are Amazon + // S3 managed keys (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS), + // and customer-provided keys (SSE-C). Amazon S3 encrypts data with server-side // encryption by using Amazon S3 managed keys (SSE-S3) by default. You can // optionally tell Amazon S3 to encrypt data at rest by using server-side - // encryption with other key options. For more information, see Using Server-Side - // Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) - // in the Amazon S3 User Guide. Directory buckets - For directory buckets, only the - // server-side encryption with Amazon S3 managed keys (SSE-S3) ( AES256 ) value is - // supported. + // encryption with other key options. For more information, see [Using Server-Side Encryption]in the Amazon S3 + // User Guide. + // + // Directory buckets - For directory buckets, only the server-side encryption with + // Amazon S3 managed keys (SSE-S3) ( AES256 ) value is supported. + // + // [Using Server-Side Encryption]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html ServerSideEncryption types.ServerSideEncryption // By default, Amazon S3 uses the STANDARD Storage Class to store newly created // objects. The STANDARD storage class provides high durability and high // availability. Depending on performance needs, you can specify a different - // Storage Class. For more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) - // in the Amazon S3 User Guide. + // Storage Class. For more information, see [Storage Classes]in the Amazon S3 User Guide. + // // - For directory buckets, only the S3 Express One Zone storage class is // supported to store newly created objects. + // // - Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. + // + // [Storage Classes]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html StorageClass types.StorageClass // The tag-set for the object. The tag-set must be encoded as URL Query - // parameters. (For example, "Key1=Value1") This functionality is not supported for - // directory buckets. + // parameters. (For example, "Key1=Value1") + // + // This functionality is not supported for directory buckets. Tagging *string // If the bucket is configured as a website, redirects requests for this object to // another object in the same bucket or to an external URL. Amazon S3 stores the // value of this header in the object metadata. For information about object - // metadata, see Object Key and Metadata (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html) - // in the Amazon S3 User Guide. In the following example, the request header sets - // the redirect to an object (anotherPage.html) in the same bucket: - // x-amz-website-redirect-location: /anotherPage.html In the following example, the - // request header sets the object redirect to another website: - // x-amz-website-redirect-location: http://www.example.com/ For more information - // about website hosting in Amazon S3, see Hosting Websites on Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) - // and How to Configure Website Page Redirects (https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // metadata, see [Object Key and Metadata]in the Amazon S3 User Guide. + // + // In the following example, the request header sets the redirect to an object + // (anotherPage.html) in the same bucket: + // + // x-amz-website-redirect-location: /anotherPage.html + // + // In the following example, the request header sets the object redirect to + // another website: + // + // x-amz-website-redirect-location: http://www.example.com/ + // + // For more information about website hosting in Amazon S3, see [Hosting Websites on Amazon S3] and [How to Configure Website Page Redirects] in the + // Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. + // + // [How to Configure Website Page Redirects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html + // [Hosting Websites on Amazon S3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html + // [Object Key and Metadata]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html WebsiteRedirectLocation *string noSmithyDocumentSerde @@ -419,8 +515,9 @@ func (in *PutObjectInput) bindEndpointParams(p *EndpointParameters) { type PutObjectOutput struct { // Indicates whether the uploaded object uses an S3 Bucket Key for server-side - // encryption with Key Management Service (KMS) keys (SSE-KMS). This functionality - // is not supported for directory buckets. + // encryption with Key Management Service (KMS) keys (SSE-KMS). + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be @@ -428,8 +525,10 @@ type PutObjectOutput struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumCRC32 *string // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be @@ -437,8 +536,10 @@ type PutObjectOutput struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumCRC32C *string // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be @@ -446,8 +547,10 @@ type PutObjectOutput struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumSHA1 *string // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be @@ -455,71 +558,89 @@ type PutObjectOutput struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumSHA256 *string - // Entity tag for the uploaded object. General purpose buckets - To ensure that - // data is not corrupted traversing the network, for objects where the ETag is the - // MD5 digest of the object, you can calculate the MD5 while putting an object to - // Amazon S3 and compare the returned ETag to the calculated MD5 value. Directory - // buckets - The ETag for the object in a directory bucket isn't the MD5 digest of - // the object. + // Entity tag for the uploaded object. + // + // General purpose buckets - To ensure that data is not corrupted traversing the + // network, for objects where the ETag is the MD5 digest of the object, you can + // calculate the MD5 while putting an object to Amazon S3 and compare the returned + // ETag to the calculated MD5 value. + // + // Directory buckets - The ETag for the object in a directory bucket isn't the MD5 + // digest of the object. ETag *string - // If the expiration is configured for the object (see - // PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) - // ) in the Amazon S3 User Guide, the response includes this header. It includes - // the expiry-date and rule-id key-value pairs that provide information about - // object expiration. The value of the rule-id is URL-encoded. This functionality - // is not supported for directory buckets. + // If the expiration is configured for the object (see [PutBucketLifecycleConfiguration]) in the Amazon S3 User + // Guide, the response includes this header. It includes the expiry-date and + // rule-id key-value pairs that provide information about object expiration. The + // value of the rule-id is URL-encoded. + // + // This functionality is not supported for directory buckets. + // + // [PutBucketLifecycleConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html Expiration *string // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // If server-side encryption with a customer-provided encryption key was // requested, the response will include this header to confirm the encryption - // algorithm that's used. This functionality is not supported for directory - // buckets. + // algorithm that's used. + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string // If server-side encryption with a customer-provided encryption key was // requested, the response will include this header to provide the round-trip - // message integrity verification of the customer-provided encryption key. This - // functionality is not supported for directory buckets. + // message integrity verification of the customer-provided encryption key. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string // If present, indicates the Amazon Web Services KMS Encryption Context to use for // object encryption. The value of this header is a base64-encoded UTF-8 string // holding JSON with the encryption context key-value pairs. This value is stored // as object metadata and automatically gets passed on to Amazon Web Services KMS - // for future GetObject or CopyObject operations on this object. This - // functionality is not supported for directory buckets. + // for future GetObject or CopyObject operations on this object. + // + // This functionality is not supported for directory buckets. SSEKMSEncryptionContext *string // If x-amz-server-side-encryption has a valid value of aws:kms or aws:kms:dsse , // this header indicates the ID of the Key Management Service (KMS) symmetric - // encryption customer managed key that was used for the object. This functionality - // is not supported for directory buckets. + // encryption customer managed key that was used for the object. + // + // This functionality is not supported for directory buckets. SSEKMSKeyId *string // The server-side encryption algorithm used when you store this object in Amazon - // S3 (for example, AES256 , aws:kms , aws:kms:dsse ). For directory buckets, only - // server-side encryption with Amazon S3 managed keys (SSE-S3) ( AES256 ) is - // supported. + // S3 (for example, AES256 , aws:kms , aws:kms:dsse ). + // + // For directory buckets, only server-side encryption with Amazon S3 managed keys + // (SSE-S3) ( AES256 ) is supported. ServerSideEncryption types.ServerSideEncryption - // Version ID of the object. If you enable versioning for a bucket, Amazon S3 - // automatically generates a unique version ID for the object being stored. Amazon - // S3 returns this ID in the response. When you enable versioning for a bucket, if - // Amazon S3 receives multiple write requests for the same object simultaneously, - // it stores all of the objects. For more information about versioning, see Adding - // Objects to Versioning-Enabled Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html) - // in the Amazon S3 User Guide. For information about returning the versioning - // state of a bucket, see GetBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) - // . This functionality is not supported for directory buckets. + // Version ID of the object. + // + // If you enable versioning for a bucket, Amazon S3 automatically generates a + // unique version ID for the object being stored. Amazon S3 returns this ID in the + // response. When you enable versioning for a bucket, if Amazon S3 receives + // multiple write requests for the same object simultaneously, it stores all of the + // objects. For more information about versioning, see [Adding Objects to Versioning-Enabled Buckets]in the Amazon S3 User + // Guide. For information about returning the versioning state of a bucket, see [GetBucketVersioning]. + // + // This functionality is not supported for directory buckets. + // + // [Adding Objects to Versioning-Enabled Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html + // [GetBucketVersioning]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html VersionId *string // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectAcl.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectAcl.go index 08fea12c..bebccdce 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectAcl.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectAcl.go @@ -14,87 +14,152 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Uses the acl subresource -// to set the access control list (ACL) permissions for a new or existing object in -// an S3 bucket. You must have the WRITE_ACP permission to set the ACL of an -// object. For more information, see What permissions can I grant? (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions) -// in the Amazon S3 User Guide. This functionality is not supported for Amazon S3 -// on Outposts. Depending on your application needs, you can choose to set the ACL -// on an object using either the request body or the headers. For example, if you -// have an existing application that updates a bucket ACL using the request body, -// you can continue to use that approach. For more information, see Access Control -// List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) -// in the Amazon S3 User Guide. If your bucket uses the bucket owner enforced -// setting for S3 Object Ownership, ACLs are disabled and no longer affect -// permissions. You must use policies to grant access to your bucket and the -// objects in it. Requests to set ACLs or update ACLs fail and return the -// AccessControlListNotSupported error code. Requests to read ACLs are still -// supported. For more information, see Controlling object ownership (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) -// in the Amazon S3 User Guide. Permissions You can set access permissions using -// one of the following methods: +// This operation is not supported by directory buckets. +// +// Uses the acl subresource to set the access control list (ACL) permissions for a +// new or existing object in an S3 bucket. You must have the WRITE_ACP permission +// to set the ACL of an object. For more information, see [What permissions can I grant?]in the Amazon S3 User +// Guide. +// +// This functionality is not supported for Amazon S3 on Outposts. +// +// Depending on your application needs, you can choose to set the ACL on an object +// using either the request body or the headers. For example, if you have an +// existing application that updates a bucket ACL using the request body, you can +// continue to use that approach. For more information, see [Access Control List (ACL) Overview]in the Amazon S3 User +// Guide. +// +// If your bucket uses the bucket owner enforced setting for S3 Object Ownership, +// ACLs are disabled and no longer affect permissions. You must use policies to +// grant access to your bucket and the objects in it. Requests to set ACLs or +// update ACLs fail and return the AccessControlListNotSupported error code. +// Requests to read ACLs are still supported. For more information, see [Controlling object ownership]in the +// Amazon S3 User Guide. +// +// Permissions You can set access permissions using one of the following methods: +// // - Specify a canned ACL with the x-amz-acl request header. Amazon S3 supports a // set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined // set of grantees and permissions. Specify the canned ACL name as the value of // x-amz-ac l. If you use this header, you cannot use other access -// control-specific headers in your request. For more information, see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL) -// . +// control-specific headers in your request. For more information, see [Canned ACL]. +// // - Specify access permissions explicitly with the x-amz-grant-read , // x-amz-grant-read-acp , x-amz-grant-write-acp , and x-amz-grant-full-control // headers. When using these headers, you specify explicit access permissions and // grantees (Amazon Web Services accounts or Amazon S3 groups) who will receive the // permission. If you use these ACL-specific headers, you cannot use x-amz-acl // header to set a canned ACL. These parameters map to the set of permissions that -// Amazon S3 supports in an ACL. For more information, see Access Control List -// (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) -// . You specify each grantee as a type=value pair, where the type is one of the -// following: -// - id – if the value specified is the canonical user ID of an Amazon Web -// Services account -// - uri – if you are granting permissions to a predefined group -// - emailAddress – if the value specified is the email address of an Amazon Web -// Services account Using email addresses to specify a grantee is only supported in -// the following Amazon Web Services Regions: -// - US East (N. Virginia) -// - US West (N. California) -// - US West (Oregon) -// - Asia Pacific (Singapore) -// - Asia Pacific (Sydney) -// - Asia Pacific (Tokyo) -// - Europe (Ireland) -// - South America (São Paulo) For a list of all the Amazon S3 supported Regions -// and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) -// in the Amazon Web Services General Reference. For example, the following -// x-amz-grant-read header grants list objects permission to the two Amazon Web -// Services accounts identified by their email addresses. x-amz-grant-read: -// emailAddress="xyz@amazon.com", emailAddress="abc@amazon.com" +// Amazon S3 supports in an ACL. For more information, see [Access Control List (ACL) Overview]. +// +// You specify each grantee as a type=value pair, where the type is one of the +// +// following: +// +// - id – if the value specified is the canonical user ID of an Amazon Web +// Services account +// +// - uri – if you are granting permissions to a predefined group +// +// - emailAddress – if the value specified is the email address of an Amazon Web +// Services account +// +// Using email addresses to specify a grantee is only supported in the following +// +// Amazon Web Services Regions: +// +// - US East (N. Virginia) +// +// - US West (N. California) +// +// - US West (Oregon) +// +// - Asia Pacific (Singapore) +// +// - Asia Pacific (Sydney) +// +// - Asia Pacific (Tokyo) +// +// - Europe (Ireland) +// +// - South America (São Paulo) +// +// For a list of all the Amazon S3 supported Regions and endpoints, see [Regions and Endpoints]in the +// +// Amazon Web Services General Reference. +// +// For example, the following x-amz-grant-read header grants list objects +// +// permission to the two Amazon Web Services accounts identified by their email +// addresses. +// +// x-amz-grant-read: emailAddress="xyz@amazon.com", emailAddress="abc@amazon.com" // // You can use either a canned ACL or specify access permissions explicitly. You -// cannot do both. Grantee Values You can specify the person (grantee) to whom -// you're assigning access rights (using request elements) in the following ways: -// - By the person's ID: <>ID<><>GranteesEmail<> DisplayName is optional and -// ignored in the request. -// - By URI: <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<> -// - By Email address: <>Grantees@email.com<>lt;/Grantee> The grantee is resolved -// to the CanonicalUser and, in a response to a GET Object acl request, appears as -// the CanonicalUser. Using email addresses to specify a grantee is only supported -// in the following Amazon Web Services Regions: -// - US East (N. Virginia) -// - US West (N. California) -// - US West (Oregon) -// - Asia Pacific (Singapore) -// - Asia Pacific (Sydney) -// - Asia Pacific (Tokyo) -// - Europe (Ireland) -// - South America (São Paulo) For a list of all the Amazon S3 supported Regions -// and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) -// in the Amazon Web Services General Reference. +// cannot do both. +// +// Grantee Values You can specify the person (grantee) to whom you're assigning +// access rights (using request elements) in the following ways: +// +// - By the person's ID: +// +// <>ID<><>GranteesEmail<> +// +// DisplayName is optional and ignored in the request. +// +// - By URI: +// +// <>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<> +// +// - By Email address: +// +// <>Grantees@email.com<>lt;/Grantee> +// +// The grantee is resolved to the CanonicalUser and, in a response to a GET Object +// +// acl request, appears as the CanonicalUser. +// +// Using email addresses to specify a grantee is only supported in the following +// +// Amazon Web Services Regions: +// +// - US East (N. Virginia) +// +// - US West (N. California) +// +// - US West (Oregon) +// +// - Asia Pacific (Singapore) +// +// - Asia Pacific (Sydney) +// +// - Asia Pacific (Tokyo) +// +// - Europe (Ireland) +// +// - South America (São Paulo) +// +// For a list of all the Amazon S3 supported Regions and endpoints, see [Regions and Endpoints]in the +// +// Amazon Web Services General Reference. // // Versioning The ACL of an object is set at the object version level. By default, // PUT sets the ACL of the current version of an object. To set the ACL of a -// different version, use the versionId subresource. The following operations are -// related to PutObjectAcl : -// - CopyObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) -// - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) +// different version, use the versionId subresource. +// +// The following operations are related to PutObjectAcl : +// +// [CopyObject] +// +// [GetObject] +// +// [Regions and Endpoints]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region +// [Access Control List (ACL) Overview]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html +// [Controlling object ownership]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html +// [Canned ACL]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL +// [CopyObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html +// [What permissions can I grant?]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions +// [GetObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html func (c *Client) PutObjectAcl(ctx context.Context, params *PutObjectAclInput, optFns ...func(*Options)) (*PutObjectAclOutput, error) { if params == nil { params = &PutObjectAclInput{} @@ -113,6 +178,7 @@ func (c *Client) PutObjectAcl(ctx context.Context, params *PutObjectAclInput, op type PutObjectAclInput struct { // The bucket name that contains the object to which you want to attach the ACL. + // // Access points - When you use this action with an access point, you must provide // the alias of the access point in place of the bucket name or specify the access // point ARN. When using the access point ARN, you must direct requests to the @@ -120,15 +186,18 @@ type PutObjectAclInput struct { // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // action with an access point through the Amazon Web Services SDKs, you provide // the access point ARN in place of the bucket name. For more information about - // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. S3 on Outposts - When you use this action with - // Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. - // The S3 on Outposts hostname takes the form + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -138,8 +207,9 @@ type PutObjectAclInput struct { // This member is required. Key *string - // The canned ACL to apply to the object. For more information, see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL) - // . + // The canned ACL to apply to the object. For more information, see [Canned ACL]. + // + // [Canned ACL]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL ACL types.ObjectCannedACL // Contains the elements that set the ACL permissions for an object per grantee. @@ -149,17 +219,23 @@ type PutObjectAclInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // The base64-encoded 128-bit MD5 digest of the data. This header must be used as // a message integrity check to verify that the request body was not corrupted in - // transit. For more information, go to RFC 1864.> (http://www.ietf.org/rfc/rfc1864.txt) + // transit. For more information, go to [RFC 1864.>] + // // For requests made using the Amazon Web Services Command Line Interface (CLI) or // Amazon Web Services SDKs, this field is calculated automatically. + // + // [RFC 1864.>]: http://www.ietf.org/rfc/rfc1864.txt ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide @@ -168,38 +244,47 @@ type PutObjectAclInput struct { ExpectedBucketOwner *string // Allows grantee the read, write, read ACP, and write ACP permissions on the - // bucket. This functionality is not supported for Amazon S3 on Outposts. + // bucket. + // + // This functionality is not supported for Amazon S3 on Outposts. GrantFullControl *string - // Allows grantee to list the objects in the bucket. This functionality is not - // supported for Amazon S3 on Outposts. + // Allows grantee to list the objects in the bucket. + // + // This functionality is not supported for Amazon S3 on Outposts. GrantRead *string - // Allows grantee to read the bucket ACL. This functionality is not supported for - // Amazon S3 on Outposts. + // Allows grantee to read the bucket ACL. + // + // This functionality is not supported for Amazon S3 on Outposts. GrantReadACP *string - // Allows grantee to create new objects in the bucket. For the bucket and object - // owners of existing objects, also allows deletions and overwrites of those - // objects. + // Allows grantee to create new objects in the bucket. + // + // For the bucket and object owners of existing objects, also allows deletions and + // overwrites of those objects. GrantWrite *string - // Allows grantee to write the ACL for the applicable bucket. This functionality - // is not supported for Amazon S3 on Outposts. + // Allows grantee to write the ACL for the applicable bucket. + // + // This functionality is not supported for Amazon S3 on Outposts. GrantWriteACP *string // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer - // Version ID used to reference a specific version of the object. This - // functionality is not supported for directory buckets. + // Version ID used to reference a specific version of the object. + // + // This functionality is not supported for directory buckets. VersionId *string noSmithyDocumentSerde @@ -214,7 +299,9 @@ func (in *PutObjectAclInput) bindEndpointParams(p *EndpointParameters) { type PutObjectAclOutput struct { // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectLegalHold.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectLegalHold.go index cc23509f..98f3dcbf 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectLegalHold.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectLegalHold.go @@ -14,9 +14,14 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Applies a legal hold -// configuration to the specified object. For more information, see Locking Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) -// . This functionality is not supported for Amazon S3 on Outposts. +// This operation is not supported by directory buckets. +// +// Applies a legal hold configuration to the specified object. For more +// information, see [Locking Objects]. +// +// This functionality is not supported for Amazon S3 on Outposts. +// +// [Locking Objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html func (c *Client) PutObjectLegalHold(ctx context.Context, params *PutObjectLegalHoldInput, optFns ...func(*Options)) (*PutObjectLegalHoldOutput, error) { if params == nil { params = &PutObjectLegalHoldInput{} @@ -35,6 +40,7 @@ func (c *Client) PutObjectLegalHold(ctx context.Context, params *PutObjectLegalH type PutObjectLegalHoldInput struct { // The bucket name containing the object that you want to place a legal hold on. + // // Access points - When you use this action with an access point, you must provide // the alias of the access point in place of the bucket name or specify the access // point ARN. When using the access point ARN, you must direct requests to the @@ -42,8 +48,9 @@ type PutObjectLegalHoldInput struct { // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // action with an access point through the Amazon Web Services SDKs, you provide // the access point ARN in place of the bucket name. For more information about - // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -57,15 +64,19 @@ type PutObjectLegalHoldInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm - // The MD5 hash for the request body. For requests made using the Amazon Web - // Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is - // calculated automatically. + // The MD5 hash for the request body. + // + // For requests made using the Amazon Web Services Command Line Interface (CLI) or + // Amazon Web Services SDKs, this field is calculated automatically. ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide @@ -81,10 +92,12 @@ type PutObjectLegalHoldInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer // The version ID of the object that you want to place a legal hold on. @@ -101,7 +114,9 @@ func (in *PutObjectLegalHoldInput) bindEndpointParams(p *EndpointParameters) { type PutObjectLegalHoldOutput struct { // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectLockConfiguration.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectLockConfiguration.go index 358ececc..0eb948a9 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectLockConfiguration.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectLockConfiguration.go @@ -14,17 +14,22 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Places an Object Lock -// configuration on the specified bucket. The rule specified in the Object Lock -// configuration will be applied by default to every new object placed in the -// specified bucket. For more information, see Locking Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) -// . +// This operation is not supported by directory buckets. +// +// Places an Object Lock configuration on the specified bucket. The rule specified +// in the Object Lock configuration will be applied by default to every new object +// placed in the specified bucket. For more information, see [Locking Objects]. +// // - The DefaultRetention settings require both a mode and a period. +// // - The DefaultRetention period can be either Days or Years but you must select // one. You cannot specify Days and Years at the same time. +// // - You can enable Object Lock for new or existing buckets. For more -// information, see Configuring Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html) -// . +// information, see [Configuring Object Lock]. +// +// [Configuring Object Lock]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html +// [Locking Objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html func (c *Client) PutObjectLockConfiguration(ctx context.Context, params *PutObjectLockConfigurationInput, optFns ...func(*Options)) (*PutObjectLockConfigurationOutput, error) { if params == nil { params = &PutObjectLockConfigurationInput{} @@ -51,15 +56,19 @@ type PutObjectLockConfigurationInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm - // The MD5 hash for the request body. For requests made using the Amazon Web - // Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is - // calculated automatically. + // The MD5 hash for the request body. + // + // For requests made using the Amazon Web Services Command Line Interface (CLI) or + // Amazon Web Services SDKs, this field is calculated automatically. ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide @@ -74,10 +83,12 @@ type PutObjectLockConfigurationInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer // A token to allow Object Lock to be enabled for an existing bucket. @@ -94,7 +105,9 @@ func (in *PutObjectLockConfigurationInput) bindEndpointParams(p *EndpointParamet type PutObjectLockConfigurationOutput struct { // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectRetention.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectRetention.go index eb787de4..d3c6ed4f 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectRetention.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectRetention.go @@ -14,12 +14,16 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Places an Object -// Retention configuration on an object. For more information, see Locking Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) -// . Users or accounts require the s3:PutObjectRetention permission in order to -// place an Object Retention configuration on objects. Bypassing a Governance +// This operation is not supported by directory buckets. +// +// Places an Object Retention configuration on an object. For more information, +// see [Locking Objects]. Users or accounts require the s3:PutObjectRetention permission in order +// to place an Object Retention configuration on objects. Bypassing a Governance // Retention configuration requires the s3:BypassGovernanceRetention permission. +// // This functionality is not supported for Amazon S3 on Outposts. +// +// [Locking Objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html func (c *Client) PutObjectRetention(ctx context.Context, params *PutObjectRetentionInput, optFns ...func(*Options)) (*PutObjectRetentionOutput, error) { if params == nil { params = &PutObjectRetentionInput{} @@ -38,15 +42,18 @@ func (c *Client) PutObjectRetention(ctx context.Context, params *PutObjectRetent type PutObjectRetentionInput struct { // The bucket name that contains the object you want to apply this Object - // Retention configuration to. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. + // Retention configuration to. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -64,15 +71,19 @@ type PutObjectRetentionInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm - // The MD5 hash for the request body. For requests made using the Amazon Web - // Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is - // calculated automatically. + // The MD5 hash for the request body. + // + // For requests made using the Amazon Web Services Command Line Interface (CLI) or + // Amazon Web Services SDKs, this field is calculated automatically. ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide @@ -84,10 +95,12 @@ type PutObjectRetentionInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer // The container element for the Object Retention configuration. @@ -108,7 +121,9 @@ func (in *PutObjectRetentionInput) bindEndpointParams(p *EndpointParameters) { type PutObjectRetentionOutput struct { // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectTagging.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectTagging.go index 2768db50..6c43900c 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectTagging.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObjectTagging.go @@ -14,35 +14,50 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Sets the supplied tag-set -// to an object that already exists in a bucket. A tag is a key-value pair. For -// more information, see Object Tagging (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html) -// . You can associate tags with an object by sending a PUT request against the +// This operation is not supported by directory buckets. +// +// Sets the supplied tag-set to an object that already exists in a bucket. A tag +// is a key-value pair. For more information, see [Object Tagging]. +// +// You can associate tags with an object by sending a PUT request against the // tagging subresource that is associated with the object. You can retrieve tags by -// sending a GET request. For more information, see GetObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) -// . For tagging-related restrictions related to characters and encodings, see Tag -// Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) -// . Note that Amazon S3 limits the maximum number of tags to 10 tags per object. +// sending a GET request. For more information, see [GetObjectTagging]. +// +// For tagging-related restrictions related to characters and encodings, see [Tag Restrictions]. +// Note that Amazon S3 limits the maximum number of tags to 10 tags per object. +// // To use this operation, you must have permission to perform the // s3:PutObjectTagging action. By default, the bucket owner has this permission and -// can grant this permission to others. To put tags of any other version, use the -// versionId query parameter. You also need permission for the -// s3:PutObjectVersionTagging action. PutObjectTagging has the following special -// errors. For more Amazon S3 errors see, Error Responses (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html) -// . +// can grant this permission to others. +// +// To put tags of any other version, use the versionId query parameter. You also +// need permission for the s3:PutObjectVersionTagging action. +// +// PutObjectTagging has the following special errors. For more Amazon S3 errors +// see, [Error Responses]. +// // - InvalidTag - The tag provided was not a valid tag. This error can occur if -// the tag did not pass input validation. For more information, see Object -// Tagging (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html) -// . +// the tag did not pass input validation. For more information, see [Object Tagging]. +// // - MalformedXML - The XML provided does not match the schema. +// // - OperationAborted - A conflicting conditional action is currently in progress // against this resource. Please try again. +// // - InternalError - The service was unable to apply the provided tag to the // object. // // The following operations are related to PutObjectTagging : -// - GetObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) -// - DeleteObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html) +// +// [GetObjectTagging] +// +// [DeleteObjectTagging] +// +// [Error Responses]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html +// [DeleteObjectTagging]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html +// [Object Tagging]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html +// [Tag Restrictions]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html +// [GetObjectTagging]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html func (c *Client) PutObjectTagging(ctx context.Context, params *PutObjectTaggingInput, optFns ...func(*Options)) (*PutObjectTaggingOutput, error) { if params == nil { params = &PutObjectTaggingInput{} @@ -60,23 +75,27 @@ func (c *Client) PutObjectTagging(ctx context.Context, params *PutObjectTaggingI type PutObjectTaggingInput struct { - // The bucket name containing the object. Access points - When you use this action - // with an access point, you must provide the alias of the access point in place of - // the bucket name or specify the access point ARN. When using the access point - // ARN, you must direct requests to the access point hostname. The access point - // hostname takes the form + // The bucket name containing the object. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // action with an access point through the Amazon Web Services SDKs, you provide // the access point ARN in place of the bucket name. For more information about - // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. S3 on Outposts - When you use this action with - // Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. - // The S3 on Outposts hostname takes the form + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -95,15 +114,19 @@ type PutObjectTaggingInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm - // The MD5 hash for the request body. For requests made using the Amazon Web - // Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is - // calculated automatically. + // The MD5 hash for the request body. + // + // For requests made using the Amazon Web Services Command Line Interface (CLI) or + // Amazon Web Services SDKs, this field is calculated automatically. ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide @@ -115,10 +138,12 @@ type PutObjectTaggingInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer // The versionId of the object that the tag-set will be added to. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutPublicAccessBlock.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutPublicAccessBlock.go index 7e6d0788..009c3a31 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutPublicAccessBlock.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutPublicAccessBlock.go @@ -15,22 +15,38 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Creates or modifies the -// PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, -// you must have the s3:PutBucketPublicAccessBlock permission. For more -// information about Amazon S3 permissions, see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) -// . When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or -// an object, it checks the PublicAccessBlock configuration for both the bucket -// (or the bucket that contains the object) and the bucket owner's account. If the +// This operation is not supported by directory buckets. +// +// Creates or modifies the PublicAccessBlock configuration for an Amazon S3 +// bucket. To use this operation, you must have the s3:PutBucketPublicAccessBlock +// permission. For more information about Amazon S3 permissions, see [Specifying Permissions in a Policy]. +// +// When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an +// object, it checks the PublicAccessBlock configuration for both the bucket (or +// the bucket that contains the object) and the bucket owner's account. If the // PublicAccessBlock configurations are different between the bucket and the // account, Amazon S3 uses the most restrictive combination of the bucket-level and -// account-level settings. For more information about when Amazon S3 considers a -// bucket or an object public, see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) -// . The following operations are related to PutPublicAccessBlock : -// - GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) -// - DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) -// - GetBucketPolicyStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html) -// - Using Amazon S3 Block Public Access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) +// account-level settings. +// +// For more information about when Amazon S3 considers a bucket or an object +// public, see [The Meaning of "Public"]. +// +// The following operations are related to PutPublicAccessBlock : +// +// [GetPublicAccessBlock] +// +// [DeletePublicAccessBlock] +// +// [GetBucketPolicyStatus] +// +// [Using Amazon S3 Block Public Access] +// +// [GetPublicAccessBlock]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html +// [DeletePublicAccessBlock]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html +// [Using Amazon S3 Block Public Access]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html +// [GetBucketPolicyStatus]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html +// [Specifying Permissions in a Policy]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html +// [The Meaning of "Public"]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status func (c *Client) PutPublicAccessBlock(ctx context.Context, params *PutPublicAccessBlockInput, optFns ...func(*Options)) (*PutPublicAccessBlockOutput, error) { if params == nil { params = &PutPublicAccessBlockInput{} @@ -56,9 +72,10 @@ type PutPublicAccessBlockInput struct { // The PublicAccessBlock configuration that you want to apply to this Amazon S3 // bucket. You can enable the configuration options in any combination. For more - // information about when Amazon S3 considers a bucket or object public, see The - // Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) - // in the Amazon S3 User Guide. + // information about when Amazon S3 considers a bucket or object public, see [The Meaning of "Public"]in + // the Amazon S3 User Guide. + // + // [The Meaning of "Public"]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status // // This member is required. PublicAccessBlockConfiguration *types.PublicAccessBlockConfiguration @@ -67,15 +84,19 @@ type PutPublicAccessBlockInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm - // The MD5 hash of the PutPublicAccessBlock request body. For requests made using - // the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services - // SDKs, this field is calculated automatically. + // The MD5 hash of the PutPublicAccessBlock request body. + // + // For requests made using the Amazon Web Services Command Line Interface (CLI) or + // Amazon Web Services SDKs, this field is calculated automatically. ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_RestoreObject.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_RestoreObject.go index 3b6aad85..18bb6d03 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_RestoreObject.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_RestoreObject.go @@ -14,40 +14,51 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This operation is not supported by directory buckets. Restores an archived copy -// of an object back into Amazon S3 This functionality is not supported for Amazon -// S3 on Outposts. This action performs the following types of requests: +// This operation is not supported by directory buckets. +// +// # Restores an archived copy of an object back into Amazon S3 +// +// This functionality is not supported for Amazon S3 on Outposts. +// +// This action performs the following types of requests: +// // - restore an archive - Restore an archived object // // For more information about the S3 structure in the request body, see the // following: -// - PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) -// - Managing Access with ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html) -// in the Amazon S3 User Guide -// - Protecting Data Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html) -// in the Amazon S3 User Guide +// +// [PutObject] +// +// [Managing Access with ACLs] +// - in the Amazon S3 User Guide +// +// [Protecting Data Using Server-Side Encryption] +// - in the Amazon S3 User Guide // // Permissions To use this operation, you must have permissions to perform the // s3:RestoreObject action. The bucket owner has this permission by default and can -// grant this permission to others. For more information about permissions, see -// Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// in the Amazon S3 User Guide. Restoring objects Objects that you archive to the -// S3 Glacier Flexible Retrieval Flexible Retrieval or S3 Glacier Deep Archive -// storage class, and S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep -// Archive tiers, are not accessible in real time. For objects in the S3 Glacier -// Flexible Retrieval Flexible Retrieval or S3 Glacier Deep Archive storage -// classes, you must first initiate a restore request, and then wait until a -// temporary copy of the object is available. If you want a permanent copy of the -// object, create a copy of it in the Amazon S3 Standard storage class in your S3 -// bucket. To access an archived object, you must restore the object for the -// duration (number of days) that you specify. For objects in the Archive Access or -// Deep Archive Access tiers of S3 Intelligent-Tiering, you must first initiate a -// restore request, and then wait until the object is moved into the Frequent -// Access tier. To restore a specific object version, you can provide a version ID. -// If you don't provide a version ID, Amazon S3 restores the current version. When -// restoring an archived object, you can specify one of the following data access -// tier options in the Tier element of the request body: +// grant this permission to others. For more information about permissions, see [Permissions Related to Bucket Subresource Operations] +// and [Managing Access Permissions to Your Amazon S3 Resources]in the Amazon S3 User Guide. +// +// Restoring objects Objects that you archive to the S3 Glacier Flexible Retrieval +// Flexible Retrieval or S3 Glacier Deep Archive storage class, and S3 +// Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive tiers, are +// not accessible in real time. For objects in the S3 Glacier Flexible Retrieval +// Flexible Retrieval or S3 Glacier Deep Archive storage classes, you must first +// initiate a restore request, and then wait until a temporary copy of the object +// is available. If you want a permanent copy of the object, create a copy of it in +// the Amazon S3 Standard storage class in your S3 bucket. To access an archived +// object, you must restore the object for the duration (number of days) that you +// specify. For objects in the Archive Access or Deep Archive Access tiers of S3 +// Intelligent-Tiering, you must first initiate a restore request, and then wait +// until the object is moved into the Frequent Access tier. +// +// To restore a specific object version, you can provide a version ID. If you +// don't provide a version ID, Amazon S3 restores the current version. +// +// When restoring an archived object, you can specify one of the following data +// access tier options in the Tier element of the request body: +// // - Expedited - Expedited retrievals allow you to quickly access your data // stored in the S3 Glacier Flexible Retrieval Flexible Retrieval storage class or // S3 Intelligent-Tiering Archive tier when occasional urgent requests for @@ -57,6 +68,7 @@ import ( // Expedited retrievals is available when you need it. Expedited retrievals and // provisioned capacity are not available for objects stored in the S3 Glacier Deep // Archive storage class or S3 Intelligent-Tiering Deep Archive tier. +// // - Standard - Standard retrievals allow you to access any of your archived // objects within several hours. This is the default option for retrieval requests // that do not specify the retrieval option. Standard retrievals typically finish @@ -65,6 +77,7 @@ import ( // typically finish within 12 hours for objects stored in the S3 Glacier Deep // Archive storage class or S3 Intelligent-Tiering Deep Archive tier. Standard // retrievals are free for objects stored in S3 Intelligent-Tiering. +// // - Bulk - Bulk retrievals free for objects stored in the S3 Glacier Flexible // Retrieval and S3 Intelligent-Tiering storage classes, enabling you to retrieve // large amounts, even petabytes, of data at no cost. Bulk retrievals typically @@ -76,29 +89,33 @@ import ( // Deep Archive tier. // // For more information about archive retrieval options and provisioned capacity -// for Expedited data access, see Restoring Archived Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html) -// in the Amazon S3 User Guide. You can use Amazon S3 restore speed upgrade to -// change the restore speed to a faster speed while it is in progress. For more -// information, see Upgrading the speed of an in-progress restore (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html) -// in the Amazon S3 User Guide. To get the status of object restoration, you can -// send a HEAD request. Operations return the x-amz-restore header, which provides -// information about the restoration status, in the response. You can use Amazon S3 -// event notifications to notify you when a restore is initiated or completed. For -// more information, see Configuring Amazon S3 Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) -// in the Amazon S3 User Guide. After restoring an archived object, you can update -// the restoration period by reissuing the request with a new period. Amazon S3 -// updates the restoration period relative to the current time and charges only for -// the request-there are no data transfer charges. You cannot update the -// restoration period when Amazon S3 is actively processing your current restore -// request for the object. If your bucket has a lifecycle configuration with a rule -// that includes an expiration action, the object expiration overrides the life -// span that you specify in a restore request. For example, if you restore an -// object copy for 10 days, but the object is scheduled to expire in 3 days, Amazon -// S3 deletes the object in 3 days. For more information about lifecycle -// configuration, see PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) -// and Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) -// in Amazon S3 User Guide. Responses A successful action returns either the 200 OK -// or 202 Accepted status code. +// for Expedited data access, see [Restoring Archived Objects] in the Amazon S3 User Guide. +// +// You can use Amazon S3 restore speed upgrade to change the restore speed to a +// faster speed while it is in progress. For more information, see [Upgrading the speed of an in-progress restore]in the Amazon +// S3 User Guide. +// +// To get the status of object restoration, you can send a HEAD request. +// Operations return the x-amz-restore header, which provides information about +// the restoration status, in the response. You can use Amazon S3 event +// notifications to notify you when a restore is initiated or completed. For more +// information, see [Configuring Amazon S3 Event Notifications]in the Amazon S3 User Guide. +// +// After restoring an archived object, you can update the restoration period by +// reissuing the request with a new period. Amazon S3 updates the restoration +// period relative to the current time and charges only for the request-there are +// no data transfer charges. You cannot update the restoration period when Amazon +// S3 is actively processing your current restore request for the object. +// +// If your bucket has a lifecycle configuration with a rule that includes an +// expiration action, the object expiration overrides the life span that you +// specify in a restore request. For example, if you restore an object copy for 10 +// days, but the object is scheduled to expire in 3 days, Amazon S3 deletes the +// object in 3 days. For more information about lifecycle configuration, see [PutBucketLifecycleConfiguration]and [Object Lifecycle Management] +// in Amazon S3 User Guide. +// +// Responses A successful action returns either the 200 OK or 202 Accepted status +// code. // // - If the object is not previously restored, then Amazon S3 returns 202 // Accepted in the response. @@ -128,8 +145,22 @@ import ( // - SOAP Fault Code Prefix: N/A // // The following operations are related to RestoreObject : -// - PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) -// - GetBucketNotificationConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html) +// +// [PutBucketLifecycleConfiguration] +// +// [GetBucketNotificationConfiguration] +// +// [PutBucketLifecycleConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html +// [Object Lifecycle Management]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html +// [Permissions Related to Bucket Subresource Operations]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources +// [Configuring Amazon S3 Event Notifications]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html +// [Managing Access with ACLs]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html +// [Protecting Data Using Server-Side Encryption]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html +// [GetBucketNotificationConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html +// [PutObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html +// [Restoring Archived Objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html +// [Managing Access Permissions to Your Amazon S3 Resources]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html +// [Upgrading the speed of an in-progress restore]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html func (c *Client) RestoreObject(ctx context.Context, params *RestoreObjectInput, optFns ...func(*Options)) (*RestoreObjectOutput, error) { if params == nil { params = &RestoreObjectInput{} @@ -147,23 +178,27 @@ func (c *Client) RestoreObject(ctx context.Context, params *RestoreObjectInput, type RestoreObjectInput struct { - // The bucket name containing the object to restore. Access points - When you use - // this action with an access point, you must provide the alias of the access point - // in place of the bucket name or specify the access point ARN. When using the - // access point ARN, you must direct requests to the access point hostname. The - // access point hostname takes the form + // The bucket name containing the object to restore. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this // action with an access point through the Amazon Web Services SDKs, you provide // the access point ARN in place of the bucket name. For more information about - // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. S3 on Outposts - When you use this action with - // Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. - // The S3 on Outposts hostname takes the form + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -177,10 +212,13 @@ type RestoreObjectInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // The account ID of the expected bucket owner. If the account ID that you provide @@ -192,10 +230,12 @@ type RestoreObjectInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer // Container for restore job parameters. @@ -215,7 +255,9 @@ func (in *RestoreObjectInput) bindEndpointParams(p *EndpointParameters) { type RestoreObjectOutput struct { // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // Indicates the path in the provided S3 output location where Select results will diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_SelectObjectContent.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_SelectObjectContent.go index f69db696..584aa16a 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_SelectObjectContent.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_SelectObjectContent.go @@ -14,67 +14,94 @@ import ( "sync" ) -// This operation is not supported by directory buckets. This action filters the -// contents of an Amazon S3 object based on a simple structured query language -// (SQL) statement. In the request, along with the SQL expression, you must also -// specify a data serialization format (JSON, CSV, or Apache Parquet) of the -// object. Amazon S3 uses this format to parse object data into records, and -// returns only records that match the specified SQL expression. You must also -// specify the data serialization format for the response. This functionality is -// not supported for Amazon S3 on Outposts. For more information about Amazon S3 -// Select, see Selecting Content from Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html) -// and SELECT Command (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html) -// in the Amazon S3 User Guide. Permissions You must have the s3:GetObject -// permission for this operation. Amazon S3 Select does not support anonymous -// access. For more information about permissions, see Specifying Permissions in a -// Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) -// in the Amazon S3 User Guide. Object Data Formats You can use Amazon S3 Select to -// query objects that have the following format properties: +// This operation is not supported by directory buckets. +// +// This action filters the contents of an Amazon S3 object based on a simple +// structured query language (SQL) statement. In the request, along with the SQL +// expression, you must also specify a data serialization format (JSON, CSV, or +// Apache Parquet) of the object. Amazon S3 uses this format to parse object data +// into records, and returns only records that match the specified SQL expression. +// You must also specify the data serialization format for the response. +// +// This functionality is not supported for Amazon S3 on Outposts. +// +// For more information about Amazon S3 Select, see [Selecting Content from Objects] and [SELECT Command] in the Amazon S3 User +// Guide. +// +// Permissions You must have the s3:GetObject permission for this operation. +// Amazon S3 Select does not support anonymous access. For more information about +// permissions, see [Specifying Permissions in a Policy]in the Amazon S3 User Guide. +// +// Object Data Formats You can use Amazon S3 Select to query objects that have the +// following format properties: +// // - CSV, JSON, and Parquet - Objects must be in CSV, JSON, or Parquet format. +// // - UTF-8 - UTF-8 is the only encoding type Amazon S3 Select supports. +// // - GZIP or BZIP2 - CSV and JSON files can be compressed using GZIP or BZIP2. // GZIP and BZIP2 are the only compression formats that Amazon S3 Select supports // for CSV and JSON files. Amazon S3 Select supports columnar compression for // Parquet using GZIP or Snappy. Amazon S3 Select does not support whole-object // compression for Parquet objects. +// // - Server-side encryption - Amazon S3 Select supports querying objects that -// are protected with server-side encryption. For objects that are encrypted with -// customer-provided encryption keys (SSE-C), you must use HTTPS, and you must use -// the headers that are documented in the GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) -// . For more information about SSE-C, see Server-Side Encryption (Using -// Customer-Provided Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) -// in the Amazon S3 User Guide. For objects that are encrypted with Amazon S3 -// managed keys (SSE-S3) and Amazon Web Services KMS keys (SSE-KMS), server-side -// encryption is handled transparently, so you don't need to specify anything. For -// more information about server-side encryption, including SSE-S3 and SSE-KMS, see -// Protecting Data Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html) -// in the Amazon S3 User Guide. +// are protected with server-side encryption. +// +// For objects that are encrypted with customer-provided encryption keys (SSE-C), +// +// you must use HTTPS, and you must use the headers that are documented in the [GetObject]. +// For more information about SSE-C, see [Server-Side Encryption (Using Customer-Provided Encryption Keys)]in the Amazon S3 User Guide. +// +// For objects that are encrypted with Amazon S3 managed keys (SSE-S3) and Amazon +// +// Web Services KMS keys (SSE-KMS), server-side encryption is handled +// transparently, so you don't need to specify anything. For more information about +// server-side encryption, including SSE-S3 and SSE-KMS, see [Protecting Data Using Server-Side Encryption]in the Amazon S3 +// User Guide. // // Working with the Response Body Given the response size is unknown, Amazon S3 // Select streams the response as a series of messages and includes a // Transfer-Encoding header with chunked as its value in the response. For more -// information, see Appendix: SelectObjectContent Response (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html) -// . GetObject Support The SelectObjectContent action does not support the -// following GetObject functionality. For more information, see GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) -// . +// information, see [Appendix: SelectObjectContent Response]. +// +// GetObject Support The SelectObjectContent action does not support the following +// GetObject functionality. For more information, see [GetObject]. +// // - Range : Although you can specify a scan range for an Amazon S3 Select -// request (see SelectObjectContentRequest - ScanRange (https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange) -// in the request parameters), you cannot specify the range of bytes of an object -// to return. +// request (see [SelectObjectContentRequest - ScanRange]in the request parameters), you cannot specify the range of +// bytes of an object to return. +// // - The GLACIER , DEEP_ARCHIVE , and REDUCED_REDUNDANCY storage classes, or the // ARCHIVE_ACCESS and DEEP_ARCHIVE_ACCESS access tiers of the INTELLIGENT_TIERING // storage class: You cannot query objects in the GLACIER , DEEP_ARCHIVE , or // REDUCED_REDUNDANCY storage classes, nor objects in the ARCHIVE_ACCESS or // DEEP_ARCHIVE_ACCESS access tiers of the INTELLIGENT_TIERING storage class. For -// more information about storage classes, see Using Amazon S3 storage classes (https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html) -// in the Amazon S3 User Guide. +// more information about storage classes, see [Using Amazon S3 storage classes]in the Amazon S3 User Guide. +// +// Special Errors For a list of special errors for this operation, see [List of SELECT Object Content Error Codes] // -// Special Errors For a list of special errors for this operation, see List of -// SELECT Object Content Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList) // The following operations are related to SelectObjectContent : -// - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) -// - GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) -// - PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) +// +// [GetObject] +// +// [GetBucketLifecycleConfiguration] +// +// [PutBucketLifecycleConfiguration] +// +// [Appendix: SelectObjectContent Response]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html +// [Selecting Content from Objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html +// [PutBucketLifecycleConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html +// [SelectObjectContentRequest - ScanRange]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange +// [List of SELECT Object Content Error Codes]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList +// [GetBucketLifecycleConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html +// [Using Amazon S3 storage classes]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html +// [SELECT Command]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html +// [GetObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html +// [Specifying Permissions in a Policy]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html +// +// [Server-Side Encryption (Using Customer-Provided Encryption Keys)]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html +// [Protecting Data Using Server-Side Encryption]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html func (c *Client) SelectObjectContent(ctx context.Context, params *SelectObjectContentInput, optFns ...func(*Options)) (*SelectObjectContentOutput, error) { if params == nil { params = &SelectObjectContentInput{} @@ -95,9 +122,9 @@ func (c *Client) SelectObjectContent(ctx context.Context, params *SelectObjectCo // expression, you must specify a data serialization format (JSON or CSV) of the // object. Amazon S3 uses this to parse object data into records. It returns only // records that match the specified SQL expression. You must also specify the data -// serialization format for the response. For more information, see S3Select API -// Documentation (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html) -// . +// serialization format for the response. For more information, see [S3Select API Documentation]. +// +// [S3Select API Documentation]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html type SelectObjectContentInput struct { // The S3 bucket. @@ -140,30 +167,37 @@ type SelectObjectContentInput struct { // The server-side encryption (SSE) algorithm used to encrypt the object. This // parameter is needed only when the object was created using a checksum algorithm. - // For more information, see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) - // in the Amazon S3 User Guide. + // For more information, see [Protecting data using SSE-C keys]in the Amazon S3 User Guide. + // + // [Protecting data using SSE-C keys]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html SSECustomerAlgorithm *string // The server-side encryption (SSE) customer managed key. This parameter is needed // only when the object was created using a checksum algorithm. For more - // information, see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) - // in the Amazon S3 User Guide. + // information, see [Protecting data using SSE-C keys]in the Amazon S3 User Guide. + // + // [Protecting data using SSE-C keys]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html SSECustomerKey *string // The MD5 server-side encryption (SSE) customer managed key. This parameter is // needed only when the object was created using a checksum algorithm. For more - // information, see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) - // in the Amazon S3 User Guide. + // information, see [Protecting data using SSE-C keys]in the Amazon S3 User Guide. + // + // [Protecting data using SSE-C keys]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html SSECustomerKeyMD5 *string // Specifies the byte range of the object to get the records from. A record is // processed when its first byte is contained by the range. This parameter is // optional, but when specified, it must not be empty. See RFC 2616, Section - // 14.35.1 about how to specify the start and end of the range. ScanRange may be - // used in the following ways: + // 14.35.1 about how to specify the start and end of the range. + // + // ScanRange may be used in the following ways: + // // - 50100 - process only the records starting between the bytes 50 and 100 // (inclusive, counting from zero) + // // - 50 - process only the records starting after the byte 50 + // // - 50 - process only the records within the last 50 bytes of the file. ScanRange *types.ScanRange diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPart.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPart.go index ff731979..e78791a8 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPart.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPart.go @@ -16,38 +16,48 @@ import ( "io" ) -// Uploads a part in a multipart upload. In this operation, you provide new data -// as a part of an object in your request. However, you have an option to specify -// your existing Amazon S3 object as a data source for the part you are uploading. -// To upload a part from an existing object, you use the UploadPartCopy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) -// operation. You must initiate a multipart upload (see CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) -// ) before you can upload any part. In response to your initiate request, Amazon -// S3 returns an upload ID, a unique identifier that you must include in your -// upload part request. Part numbers can be any number from 1 to 10,000, inclusive. -// A part number uniquely identifies a part and also defines its position within -// the object being created. If you upload a new part using the same part number -// that was used with a previous part, the previously uploaded part is overwritten. +// Uploads a part in a multipart upload. +// +// In this operation, you provide new data as a part of an object in your request. +// However, you have an option to specify your existing Amazon S3 object as a data +// source for the part you are uploading. To upload a part from an existing object, +// you use the [UploadPartCopy]operation. +// +// You must initiate a multipart upload (see [CreateMultipartUpload]) before you can upload any part. In +// response to your initiate request, Amazon S3 returns an upload ID, a unique +// identifier that you must include in your upload part request. +// +// Part numbers can be any number from 1 to 10,000, inclusive. A part number +// uniquely identifies a part and also defines its position within the object being +// created. If you upload a new part using the same part number that was used with +// a previous part, the previously uploaded part is overwritten. +// // For information about maximum and minimum part sizes and other multipart upload -// specifications, see Multipart upload limits (https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html) -// in the Amazon S3 User Guide. After you initiate multipart upload and upload one -// or more parts, you must either complete or abort multipart upload in order to -// stop getting charged for storage of the uploaded parts. Only after you either -// complete or abort multipart upload, Amazon S3 frees up the parts storage and -// stops charging you for the parts storage. For more information on multipart -// uploads, go to Multipart Upload Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html) -// in the Amazon S3 User Guide . Directory buckets - For directory buckets, you -// must make requests for this API operation to the Zonal endpoint. These endpoints -// support virtual-hosted-style requests in the format +// specifications, see [Multipart upload limits]in the Amazon S3 User Guide. +// +// After you initiate multipart upload and upload one or more parts, you must +// either complete or abort multipart upload in order to stop getting charged for +// storage of the uploaded parts. Only after you either complete or abort multipart +// upload, Amazon S3 frees up the parts storage and stops charging you for the +// parts storage. +// +// For more information on multipart uploads, go to [Multipart Upload Overview] in the Amazon S3 User Guide . +// +// Directory buckets - For directory buckets, you must make requests for this API +// operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format // https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style -// requests are not supported. For more information, see Regional and Zonal -// endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. Permissions +// requests are not supported. For more information, see [Regional and Zonal endpoints]in the Amazon S3 User +// Guide. +// +// Permissions +// // - General purpose bucket permissions - For information on the permissions -// required to use the multipart upload API, see Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) -// in the Amazon S3 User Guide. +// required to use the multipart upload API, see [Multipart Upload and Permissions]in the Amazon S3 User Guide. +// // - Directory bucket permissions - To grant access to this API operation on a -// directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// API operation for session-based authorization. Specifically, you grant the +// directory bucket, we recommend that you use the [CreateSession]CreateSession API operation +// for session-based authorization. Specifically, you grant the // s3express:CreateSession permission to the directory bucket in a bucket policy // or an IAM identity-based policy. Then, you make the CreateSession API call on // the bucket to obtain a session token. With the session token in your request @@ -55,19 +65,19 @@ import ( // expires, you make another CreateSession API call to generate a new session // token for use. Amazon Web Services CLI or SDKs create session and refresh the // session token automatically to avoid service interruptions when a session -// expires. For more information about authorization, see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) -// . +// expires. For more information about authorization, see [CreateSession]CreateSession . // -// Data integrity General purpose bucket - To ensure that data is not corrupted +// Data integrity General purpose bucket - To ensure that data is not corrupted // traversing the network, specify the Content-MD5 header in the upload part // request. Amazon S3 checks the part data against the provided MD5 value. If they // do not match, Amazon S3 returns an error. If the upload request is signed with // Signature Version 4, then Amazon Web Services S3 uses the x-amz-content-sha256 -// header as a checksum instead of Content-MD5 . For more information see -// Authenticating Requests: Using the Authorization Header (Amazon Web Services -// Signature Version 4) (https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html) -// . Directory buckets - MD5 is not supported by directory buckets. You can use -// checksum algorithms to check object integrity. Encryption +// header as a checksum instead of Content-MD5 . For more information see [Authenticating Requests: Using the Authorization Header (Amazon Web Services Signature Version 4)]. +// +// Directory buckets - MD5 is not supported by directory buckets. You can use +// checksum algorithms to check object integrity. +// +// Encryption // - General purpose bucket - Server-side encryption is for data encryption at // rest. Amazon S3 encrypts your data as it writes it to disks in its data centers // and decrypts it when you access it. You have mutually exclusive options to @@ -78,37 +88,70 @@ import ( // encryption using Amazon S3 managed keys (SSE-S3) by default. You can optionally // tell Amazon S3 to encrypt data at rest using server-side encryption with other // key options. The option you use depends on whether you want to use KMS keys -// (SSE-KMS) or provide your own encryption key (SSE-C). Server-side encryption is -// supported by the S3 Multipart Upload operations. Unless you are using a -// customer-provided encryption key (SSE-C), you don't need to specify the -// encryption parameters in each UploadPart request. Instead, you only need to -// specify the server-side encryption parameters in the initial Initiate Multipart -// request. For more information, see CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) -// . If you request server-side encryption using a customer-provided encryption key -// (SSE-C) in your initiate multipart upload request, you must provide identical -// encryption information in each part upload using the following request headers. -// - x-amz-server-side-encryption-customer-algorithm -// - x-amz-server-side-encryption-customer-key -// - x-amz-server-side-encryption-customer-key-MD5 -// - Directory bucket - For directory buckets, only server-side encryption with -// Amazon S3 managed keys (SSE-S3) ( AES256 ) is supported. -// -// For more information, see Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) -// in the Amazon S3 User Guide. Special errors +// (SSE-KMS) or provide your own encryption key (SSE-C). +// +// Server-side encryption is supported by the S3 Multipart Upload operations. +// +// Unless you are using a customer-provided encryption key (SSE-C), you don't need +// to specify the encryption parameters in each UploadPart request. Instead, you +// only need to specify the server-side encryption parameters in the initial +// Initiate Multipart request. For more information, see [CreateMultipartUpload]. +// +// If you request server-side encryption using a customer-provided encryption key +// +// (SSE-C) in your initiate multipart upload request, you must provide identical +// encryption information in each part upload using the following request headers. +// +// - x-amz-server-side-encryption-customer-algorithm +// +// - x-amz-server-side-encryption-customer-key +// +// - x-amz-server-side-encryption-customer-key-MD5 +// +// - Directory bucket - For directory buckets, only server-side encryption with +// Amazon S3 managed keys (SSE-S3) ( AES256 ) is supported. +// +// For more information, see [Using Server-Side Encryption] in the Amazon S3 User Guide. +// +// Special errors +// // - Error Code: NoSuchUpload +// // - Description: The specified multipart upload does not exist. The upload ID // might be invalid, or the multipart upload might have been aborted or completed. +// // - HTTP Status Code: 404 Not Found +// // - SOAP Fault Code Prefix: Client // -// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is -// Bucket_name.s3express-az_id.region.amazonaws.com . The following operations are -// related to UploadPart : -// - CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) -// - CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) -// - AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) -// - ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) -// - ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// Bucket_name.s3express-az_id.region.amazonaws.com . +// +// The following operations are related to UploadPart : +// +// [CreateMultipartUpload] +// +// [CompleteMultipartUpload] +// +// [AbortMultipartUpload] +// +// [ListParts] +// +// [ListMultipartUploads] +// +// [ListParts]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html +// [Authenticating Requests: Using the Authorization Header (Amazon Web Services Signature Version 4)]: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [CreateSession]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html +// [UploadPartCopy]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html +// [CompleteMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html +// [CreateMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html +// [Using Server-Side Encryption]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html +// [Multipart upload limits]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html +// [AbortMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html +// [Multipart Upload Overview]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html +// [ListMultipartUploads]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html +// [Multipart Upload and Permissions]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html func (c *Client) UploadPart(ctx context.Context, params *UploadPartInput, optFns ...func(*Options)) (*UploadPartOutput, error) { if params == nil { params = &UploadPartInput{} @@ -126,31 +169,39 @@ func (c *Client) UploadPart(ctx context.Context, params *UploadPartInput, optFns type UploadPartInput struct { - // The name of the bucket to which the multipart upload was initiated. Directory - // buckets - When you use this operation with a directory bucket, you must use - // virtual-hosted-style requests in the format + // The name of the bucket to which the multipart upload was initiated. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use virtual-hosted-style requests in the format // Bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests are not // supported. Directory bucket names must be unique in the chosen Availability // Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for // example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 ). For information about bucket - // naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. Access points and Object Lambda access points are - // not supported by directory buckets. S3 on Outposts - When you use this action - // with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts - // hostname. The S3 on Outposts hostname takes the form + // naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string @@ -178,40 +229,48 @@ type UploadPartInput struct { // the SDK. This header will not provide any additional functionality if you don't // use the SDK. When you send this header, there must be a corresponding // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the - // request with the HTTP status code 400 Bad Request . For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 - // ignores any provided ChecksumAlgorithm parameter. This checksum algorithm must - // be the same for all parts and it match the checksum value supplied in the - // CreateMultipartUpload request. + // request with the HTTP status code 400 Bad Request . For more information, see [Checking object integrity] + // in the Amazon S3 User Guide. + // + // If you provide an individual checksum, Amazon S3 ignores any provided + // ChecksumAlgorithm parameter. + // + // This checksum algorithm must be the same for all parts and it match the + // checksum value supplied in the CreateMultipartUpload request. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumAlgorithm types.ChecksumAlgorithm // This header can be used as a data integrity check to verify that the data // received is the same data that was originally sent. This header specifies the - // base64-encoded, 32-bit CRC32 checksum of the object. For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // base64-encoded, 32-bit CRC32 checksum of the object. For more information, see [Checking object integrity] // in the Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumCRC32 *string // This header can be used as a data integrity check to verify that the data // received is the same data that was originally sent. This header specifies the - // base64-encoded, 32-bit CRC32C checksum of the object. For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // base64-encoded, 32-bit CRC32C checksum of the object. For more information, see [Checking object integrity] // in the Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumCRC32C *string // This header can be used as a data integrity check to verify that the data // received is the same data that was originally sent. This header specifies the - // base64-encoded, 160-bit SHA-1 digest of the object. For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // base64-encoded, 160-bit SHA-1 digest of the object. For more information, see [Checking object integrity] // in the Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumSHA1 *string // This header can be used as a data integrity check to verify that the data // received is the same data that was originally sent. This header specifies the - // base64-encoded, 256-bit SHA-256 digest of the object. For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // base64-encoded, 256-bit SHA-256 digest of the object. For more information, see [Checking object integrity] // in the Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumSHA256 *string // Size of the body in bytes. This parameter is useful when the size of the body @@ -220,8 +279,9 @@ type UploadPartInput struct { // The base64-encoded 128-bit MD5 digest of the part data. This parameter is // auto-populated when using the command from the CLI. This parameter is required - // if object lock parameters are specified. This functionality is not supported for - // directory buckets. + // if object lock parameters are specified. + // + // This functionality is not supported for directory buckets. ContentMD5 *string // The account ID of the expected bucket owner. If the account ID that you provide @@ -233,14 +293,17 @@ type UploadPartInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer - // Specifies the algorithm to use when encrypting the object (for example, - // AES256). This functionality is not supported for directory buckets. + // Specifies the algorithm to use when encrypting the object (for example, AES256). + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string // Specifies the customer-provided encryption key for Amazon S3 to use in @@ -248,14 +311,16 @@ type UploadPartInput struct { // discarded; Amazon S3 does not store the encryption key. The key must be // appropriate for use with the algorithm specified in the // x-amz-server-side-encryption-customer-algorithm header . This must be the same - // encryption key specified in the initiate multipart upload request. This - // functionality is not supported for directory buckets. + // encryption key specified in the initiate multipart upload request. + // + // This functionality is not supported for directory buckets. SSECustomerKey *string // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure that the - // encryption key was transmitted without error. This functionality is not - // supported for directory buckets. + // encryption key was transmitted without error. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string noSmithyDocumentSerde @@ -270,8 +335,9 @@ func (in *UploadPartInput) bindEndpointParams(p *EndpointParameters) { type UploadPartOutput struct { // Indicates whether the multipart upload uses an S3 Bucket Key for server-side - // encryption with Key Management Service (KMS) keys (SSE-KMS). This functionality - // is not supported for directory buckets. + // encryption with Key Management Service (KMS) keys (SSE-KMS). + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be @@ -279,8 +345,10 @@ type UploadPartOutput struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumCRC32 *string // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be @@ -288,8 +356,10 @@ type UploadPartOutput struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumCRC32C *string // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be @@ -297,8 +367,10 @@ type UploadPartOutput struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumSHA1 *string // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be @@ -306,37 +378,46 @@ type UploadPartOutput struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumSHA256 *string // Entity tag for the uploaded object. ETag *string // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // If server-side encryption with a customer-provided encryption key was // requested, the response will include this header to confirm the encryption - // algorithm that's used. This functionality is not supported for directory - // buckets. + // algorithm that's used. + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string // If server-side encryption with a customer-provided encryption key was // requested, the response will include this header to provide the round-trip - // message integrity verification of the customer-provided encryption key. This - // functionality is not supported for directory buckets. + // message integrity verification of the customer-provided encryption key. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string // If present, indicates the ID of the Key Management Service (KMS) symmetric - // encryption customer managed key that was used for the object. This functionality - // is not supported for directory buckets. + // encryption customer managed key that was used for the object. + // + // This functionality is not supported for directory buckets. SSEKMSKeyId *string // The server-side encryption algorithm used when you store this object in Amazon - // S3 (for example, AES256 , aws:kms ). For directory buckets, only server-side - // encryption with Amazon S3 managed keys (SSE-S3) ( AES256 ) is supported. + // S3 (for example, AES256 , aws:kms ). + // + // For directory buckets, only server-side encryption with Amazon S3 managed keys + // (SSE-S3) ( AES256 ) is supported. ServerSideEncryption types.ServerSideEncryption // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPartCopy.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPartCopy.go index d42dc60c..23fb6ef5 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPartCopy.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPartCopy.go @@ -18,90 +18,134 @@ import ( // Uploads a part by copying data from an existing object as data source. To // specify the data source, you add the request header x-amz-copy-source in your // request. To specify a byte range, you add the request header -// x-amz-copy-source-range in your request. For information about maximum and -// minimum part sizes and other multipart upload specifications, see Multipart -// upload limits (https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html) -// in the Amazon S3 User Guide. Instead of copying data from an existing object as -// part data, you might use the UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) -// action to upload new data as a part of an object in your request. You must -// initiate a multipart upload before you can upload any part. In response to your -// initiate request, Amazon S3 returns the upload ID, a unique identifier that you -// must include in your upload part request. For conceptual information about -// multipart uploads, see Uploading Objects Using Multipart Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) -// in the Amazon S3 User Guide. For information about copying objects using a -// single atomic action vs. a multipart upload, see Operations on Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html) -// in the Amazon S3 User Guide. Directory buckets - For directory buckets, you must -// make requests for this API operation to the Zonal endpoint. These endpoints -// support virtual-hosted-style requests in the format +// x-amz-copy-source-range in your request. +// +// For information about maximum and minimum part sizes and other multipart upload +// specifications, see [Multipart upload limits]in the Amazon S3 User Guide. +// +// Instead of copying data from an existing object as part data, you might use the [UploadPart] +// action to upload new data as a part of an object in your request. +// +// You must initiate a multipart upload before you can upload any part. In +// response to your initiate request, Amazon S3 returns the upload ID, a unique +// identifier that you must include in your upload part request. +// +// For conceptual information about multipart uploads, see [Uploading Objects Using Multipart Upload] in the Amazon S3 User +// Guide. For information about copying objects using a single atomic action vs. a +// multipart upload, see [Operations on Objects]in the Amazon S3 User Guide. +// +// Directory buckets - For directory buckets, you must make requests for this API +// operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format // https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style -// requests are not supported. For more information, see Regional and Zonal -// endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) -// in the Amazon S3 User Guide. Authentication and authorization All UploadPartCopy -// requests must be authenticated and signed by using IAM credentials (access key -// ID and secret access key for the IAM identities). All headers with the x-amz- -// prefix, including x-amz-copy-source , must be signed. For more information, see -// REST Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html) -// . Directory buckets - You must use IAM credentials to authenticate and authorize +// requests are not supported. For more information, see [Regional and Zonal endpoints]in the Amazon S3 User +// Guide. +// +// Authentication and authorization All UploadPartCopy requests must be +// authenticated and signed by using IAM credentials (access key ID and secret +// access key for the IAM identities). All headers with the x-amz- prefix, +// including x-amz-copy-source , must be signed. For more information, see [REST Authentication]. +// +// Directory buckets - You must use IAM credentials to authenticate and authorize // your access to the UploadPartCopy API operation, instead of using the temporary -// security credentials through the CreateSession API operation. Amazon Web -// Services CLI or SDKs handles authentication and authorization on your behalf. +// security credentials through the CreateSession API operation. +// +// Amazon Web Services CLI or SDKs handles authentication and authorization on +// your behalf. +// // Permissions You must have READ access to the source object and WRITE access to // the destination bucket. +// // - General purpose bucket permissions - You must have the permissions in a // policy based on the bucket types of your source bucket and destination bucket in // an UploadPartCopy operation. +// // - If the source object is in a general purpose bucket, you must have the // s3:GetObject permission to read the source object that is being copied. +// // - If the destination bucket is a general purpose bucket, you must have the // s3:PutObject permission to write the object copy to the destination bucket. -// For information about permissions required to use the multipart upload API, see -// Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) -// in the Amazon S3 User Guide. -// - Directory bucket permissions - You must have permissions in a bucket policy -// or an IAM identity-based policy based on the source and destination bucket types -// in an UploadPartCopy operation. -// - If the source object that you want to copy is in a directory bucket, you -// must have the s3express:CreateSession permission in the Action element of a -// policy to read the object . By default, the session is in the ReadWrite mode. -// If you want to restrict the access, you can explicitly set the -// s3express:SessionMode condition key to ReadOnly on the copy source bucket. -// - If the copy destination is a directory bucket, you must have the -// s3express:CreateSession permission in the Action element of a policy to write -// the object to the destination. The s3express:SessionMode condition key cannot -// be set to ReadOnly on the copy destination. For example policies, see Example -// bucket policies for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) -// and Amazon Web Services Identity and Access Management (IAM) identity-based -// policies for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html) -// in the Amazon S3 User Guide. +// +// For information about permissions required to use the multipart upload API, see [Multipart Upload and Permissions] +// +// in the Amazon S3 User Guide. +// +// - Directory bucket permissions - You must have permissions in a bucket policy +// or an IAM identity-based policy based on the source and destination bucket types +// in an UploadPartCopy operation. +// +// - If the source object that you want to copy is in a directory bucket, you +// must have the s3express:CreateSession permission in the Action element of a +// policy to read the object . By default, the session is in the ReadWrite mode. +// If you want to restrict the access, you can explicitly set the +// s3express:SessionMode condition key to ReadOnly on the copy source bucket. +// +// - If the copy destination is a directory bucket, you must have the +// s3express:CreateSession permission in the Action element of a policy to write +// the object to the destination. The s3express:SessionMode condition key cannot +// be set to ReadOnly on the copy destination. +// +// For example policies, see [Example bucket policies for S3 Express One Zone]and [Amazon Web Services Identity and Access Management (IAM) identity-based policies for S3 Express One Zone]in the Amazon S3 User Guide. // // Encryption -// - General purpose buckets - For information about using server-side -// encryption with customer-provided encryption keys with the UploadPartCopy -// operation, see CopyObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) -// and UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) -// . -// - Directory buckets - For directory buckets, only server-side encryption with -// Amazon S3 managed keys (SSE-S3) ( AES256 ) is supported. +// - General purpose buckets - +// +// For information about using server-side encryption with customer-provided +// +// encryption keys with the UploadPartCopy operation, see [CopyObject]and [UploadPart]. +// +// - Directory buckets - For directory buckets, only server-side encryption with +// Amazon S3 managed keys (SSE-S3) ( AES256 ) is supported. // // Special errors +// // - Error Code: NoSuchUpload +// // - Description: The specified multipart upload does not exist. The upload ID // might be invalid, or the multipart upload might have been aborted or completed. +// // - HTTP Status Code: 404 Not Found +// // - Error Code: InvalidRequest +// // - Description: The specified copy source is not supported as a byte-range // copy source. +// // - HTTP Status Code: 400 Bad Request // -// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is -// Bucket_name.s3express-az_id.region.amazonaws.com . The following operations are -// related to UploadPartCopy : -// - CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) -// - UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) -// - CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) -// - AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) -// - ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) -// - ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) +// HTTP Host header syntax Directory buckets - The HTTP Host header syntax is +// Bucket_name.s3express-az_id.region.amazonaws.com . +// +// The following operations are related to UploadPartCopy : +// +// [CreateMultipartUpload] +// +// [UploadPart] +// +// [CompleteMultipartUpload] +// +// [AbortMultipartUpload] +// +// [ListParts] +// +// [ListMultipartUploads] +// +// [Uploading Objects Using Multipart Upload]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html +// [ListParts]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html +// [UploadPart]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html +// [Regional and Zonal endpoints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html +// [CompleteMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html +// [CreateMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html +// [Multipart upload limits]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html +// [Amazon Web Services Identity and Access Management (IAM) identity-based policies for S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html +// [AbortMultipartUpload]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html +// [REST Authentication]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html +// [Example bucket policies for S3 Express One Zone]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html +// [Operations on Objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html +// [ListMultipartUploads]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html +// [Multipart Upload and Permissions]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html +// +// [CopyObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html func (c *Client) UploadPartCopy(ctx context.Context, params *UploadPartCopyInput, optFns ...func(*Options)) (*UploadPartCopyOutput, error) { if params == nil { params = &UploadPartCopyInput{} @@ -119,43 +163,53 @@ func (c *Client) UploadPartCopy(ctx context.Context, params *UploadPartCopyInput type UploadPartCopyInput struct { - // The bucket name. Directory buckets - When you use this operation with a - // directory bucket, you must use virtual-hosted-style requests in the format + // The bucket name. + // + // Directory buckets - When you use this operation with a directory bucket, you + // must use virtual-hosted-style requests in the format // Bucket_name.s3express-az_id.region.amazonaws.com . Path-style requests are not // supported. Directory bucket names must be unique in the chosen Availability // Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for // example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3 ). For information about bucket - // naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) - // in the Amazon S3 User Guide. Access points - When you use this action with an - // access point, you must provide the alias of the access point in place of the - // bucket name or specify the access point ARN. When using the access point ARN, - // you must direct requests to the access point hostname. The access point hostname - // takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. Access points and Object Lambda access points are - // not supported by directory buckets. S3 on Outposts - When you use this action - // with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts - // hostname. The S3 on Outposts hostname takes the form + // naming restrictions, see [Directory bucket naming rules]in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the access + // point ARN. When using the access point ARN, you must direct requests to the + // access point hostname. The access point hostname takes the form + // AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this + // action with an access point through the Amazon Web Services SDKs, you provide + // the access point ARN in place of the bucket name. For more information about + // access point ARNs, see [Using access points]in the Amazon S3 User Guide. + // + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must + // direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com . When you // use this action with S3 on Outposts through the Amazon Web Services SDKs, you // provide the Outposts access point ARN in place of the bucket name. For more - // information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // information about S3 on Outposts ARNs, see [What is S3 on Outposts?]in the Amazon S3 User Guide. + // + // [Directory bucket naming rules]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html + // [What is S3 on Outposts?]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html + // [Using access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html // // This member is required. Bucket *string // Specifies the source object for the copy operation. You specify the value in // one of two formats, depending on whether you want to access the source object - // through an access point (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html) - // : + // through an [access point]: + // // - For objects not accessed through an access point, specify the name of the // source bucket and key of the source object, separated by a slash (/). For // example, to copy the object reports/january.pdf from the bucket // awsexamplebucket , use awsexamplebucket/reports/january.pdf . The value must // be URL-encoded. + // // - For objects accessed through access points, specify the Amazon Resource // Name (ARN) of the object as accessed through the access point, in the format // arn:aws:s3:::accesspoint//object/ . For example, to copy the object @@ -163,28 +217,39 @@ type UploadPartCopyInput struct { // 123456789012 in Region us-west-2 , use the URL encoding of // arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf // . The value must be URL encoded. + // // - Amazon S3 supports copy operations using Access points only when the source // and destination buckets are in the same Amazon Web Services Region. - // - Access points are not supported by directory buckets. Alternatively, for - // objects accessed through Amazon S3 on Outposts, specify the ARN of the object as - // accessed in the format arn:aws:s3-outposts:::outpost//object/ . For example, - // to copy the object reports/january.pdf through outpost my-outpost owned by - // account 123456789012 in Region us-west-2 , use the URL encoding of + // + // - Access points are not supported by directory buckets. + // + // Alternatively, for objects accessed through Amazon S3 on Outposts, specify the + // ARN of the object as accessed in the format + // arn:aws:s3-outposts:::outpost//object/ . For example, to copy the object + // reports/january.pdf through outpost my-outpost owned by account 123456789012 + // in Region us-west-2 , use the URL encoding of // arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf // . The value must be URL-encoded. + // // If your bucket has versioning enabled, you could have multiple versions of the // same object. By default, x-amz-copy-source identifies the current version of // the source object to copy. To copy a specific version of the source object to // copy, append ?versionId= to the x-amz-copy-source request header (for example, // x-amz-copy-source: // /awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893 - // ). If the current version is a delete marker and you don't specify a versionId - // in the x-amz-copy-source request header, Amazon S3 returns a 404 Not Found - // error, because the object does not exist. If you specify versionId in the + // ). + // + // If the current version is a delete marker and you don't specify a versionId in + // the x-amz-copy-source request header, Amazon S3 returns a 404 Not Found error, + // because the object does not exist. If you specify versionId in the // x-amz-copy-source and the versionId is a delete marker, Amazon S3 returns an // HTTP 400 Bad Request error, because you are not allowed to specify a delete - // marker as a version for the x-amz-copy-source . Directory buckets - S3 - // Versioning isn't enabled and supported for directory buckets. + // marker as a version for the x-amz-copy-source . + // + // Directory buckets - S3 Versioning isn't enabled and supported for directory + // buckets. + // + // [access point]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html // // This member is required. CopySource *string @@ -205,34 +270,56 @@ type UploadPartCopyInput struct { // This member is required. UploadId *string - // Copies the object if its entity tag (ETag) matches the specified tag. If both - // of the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since - // headers are present in the request as follows: x-amz-copy-source-if-match - // condition evaluates to true , and; x-amz-copy-source-if-unmodified-since - // condition evaluates to false ; Amazon S3 returns 200 OK and copies the data. + // Copies the object if its entity tag (ETag) matches the specified tag. + // + // If both of the x-amz-copy-source-if-match and + // x-amz-copy-source-if-unmodified-since headers are present in the request as + // follows: + // + // x-amz-copy-source-if-match condition evaluates to true , and; + // + // x-amz-copy-source-if-unmodified-since condition evaluates to false ; + // + // Amazon S3 returns 200 OK and copies the data. CopySourceIfMatch *string - // Copies the object if it has been modified since the specified time. If both of - // the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since - // headers are present in the request as follows: x-amz-copy-source-if-none-match - // condition evaluates to false , and; x-amz-copy-source-if-modified-since - // condition evaluates to true ; Amazon S3 returns 412 Precondition Failed - // response code. + // Copies the object if it has been modified since the specified time. + // + // If both of the x-amz-copy-source-if-none-match and + // x-amz-copy-source-if-modified-since headers are present in the request as + // follows: + // + // x-amz-copy-source-if-none-match condition evaluates to false , and; + // + // x-amz-copy-source-if-modified-since condition evaluates to true ; + // + // Amazon S3 returns 412 Precondition Failed response code. CopySourceIfModifiedSince *time.Time - // Copies the object if its entity tag (ETag) is different than the specified - // ETag. If both of the x-amz-copy-source-if-none-match and + // Copies the object if its entity tag (ETag) is different than the specified ETag. + // + // If both of the x-amz-copy-source-if-none-match and // x-amz-copy-source-if-modified-since headers are present in the request as - // follows: x-amz-copy-source-if-none-match condition evaluates to false , and; - // x-amz-copy-source-if-modified-since condition evaluates to true ; Amazon S3 - // returns 412 Precondition Failed response code. + // follows: + // + // x-amz-copy-source-if-none-match condition evaluates to false , and; + // + // x-amz-copy-source-if-modified-since condition evaluates to true ; + // + // Amazon S3 returns 412 Precondition Failed response code. CopySourceIfNoneMatch *string - // Copies the object if it hasn't been modified since the specified time. If both - // of the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since - // headers are present in the request as follows: x-amz-copy-source-if-match - // condition evaluates to true , and; x-amz-copy-source-if-unmodified-since - // condition evaluates to false ; Amazon S3 returns 200 OK and copies the data. + // Copies the object if it hasn't been modified since the specified time. + // + // If both of the x-amz-copy-source-if-match and + // x-amz-copy-source-if-unmodified-since headers are present in the request as + // follows: + // + // x-amz-copy-source-if-match condition evaluates to true , and; + // + // x-amz-copy-source-if-unmodified-since condition evaluates to false ; + // + // Amazon S3 returns 200 OK and copies the data. CopySourceIfUnmodifiedSince *time.Time // The range of bytes to copy from the source object. The range value must use the @@ -243,20 +330,26 @@ type UploadPartCopyInput struct { CopySourceRange *string // Specifies the algorithm to use when decrypting the source object (for example, - // AES256 ). This functionality is not supported when the source object is in a - // directory bucket. + // AES256 ). + // + // This functionality is not supported when the source object is in a directory + // bucket. CopySourceSSECustomerAlgorithm *string // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt // the source object. The encryption key provided in this header must be one that - // was used when the source object was created. This functionality is not supported - // when the source object is in a directory bucket. + // was used when the source object was created. + // + // This functionality is not supported when the source object is in a directory + // bucket. CopySourceSSECustomerKey *string // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure that the - // encryption key was transmitted without error. This functionality is not - // supported when the source object is in a directory bucket. + // encryption key was transmitted without error. + // + // This functionality is not supported when the source object is in a directory + // bucket. CopySourceSSECustomerKeyMD5 *string // The account ID of the expected destination bucket owner. If the account ID that @@ -273,15 +366,18 @@ type UploadPartCopyInput struct { // Bucket owners need not specify this parameter in their requests. If either the // source or destination S3 bucket has Requester Pays enabled, the requester will // pay for corresponding charges to copy the object. For information about - // downloading objects from Requester Pays buckets, see Downloading Objects in - // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. + // downloading objects from Requester Pays buckets, see [Downloading Objects in Requester Pays Buckets]in the Amazon S3 User + // Guide. + // + // This functionality is not supported for directory buckets. + // + // [Downloading Objects in Requester Pays Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer types.RequestPayer - // Specifies the algorithm to use when encrypting the object (for example, - // AES256). This functionality is not supported when the destination bucket is a - // directory bucket. + // Specifies the algorithm to use when encrypting the object (for example, AES256). + // + // This functionality is not supported when the destination bucket is a directory + // bucket. SSECustomerAlgorithm *string // Specifies the customer-provided encryption key for Amazon S3 to use in @@ -289,15 +385,18 @@ type UploadPartCopyInput struct { // discarded; Amazon S3 does not store the encryption key. The key must be // appropriate for use with the algorithm specified in the // x-amz-server-side-encryption-customer-algorithm header. This must be the same - // encryption key specified in the initiate multipart upload request. This - // functionality is not supported when the destination bucket is a directory + // encryption key specified in the initiate multipart upload request. + // + // This functionality is not supported when the destination bucket is a directory // bucket. SSECustomerKey *string // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure that the - // encryption key was transmitted without error. This functionality is not - // supported when the destination bucket is a directory bucket. + // encryption key was transmitted without error. + // + // This functionality is not supported when the destination bucket is a directory + // bucket. SSECustomerKeyMD5 *string noSmithyDocumentSerde @@ -311,42 +410,52 @@ func (in *UploadPartCopyInput) bindEndpointParams(p *EndpointParameters) { type UploadPartCopyOutput struct { // Indicates whether the multipart upload uses an S3 Bucket Key for server-side - // encryption with Key Management Service (KMS) keys (SSE-KMS). This functionality - // is not supported for directory buckets. + // encryption with Key Management Service (KMS) keys (SSE-KMS). + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool // Container for all response elements. CopyPartResult *types.CopyPartResult // The version of the source object that was copied, if you have enabled - // versioning on the source bucket. This functionality is not supported when the - // source object is in a directory bucket. + // versioning on the source bucket. + // + // This functionality is not supported when the source object is in a directory + // bucket. CopySourceVersionId *string // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // If server-side encryption with a customer-provided encryption key was // requested, the response will include this header to confirm the encryption - // algorithm that's used. This functionality is not supported for directory - // buckets. + // algorithm that's used. + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string // If server-side encryption with a customer-provided encryption key was // requested, the response will include this header to provide the round-trip - // message integrity verification of the customer-provided encryption key. This - // functionality is not supported for directory buckets. + // message integrity verification of the customer-provided encryption key. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string // If present, indicates the ID of the Key Management Service (KMS) symmetric - // encryption customer managed key that was used for the object. This functionality - // is not supported for directory buckets. + // encryption customer managed key that was used for the object. + // + // This functionality is not supported for directory buckets. SSEKMSKeyId *string // The server-side encryption algorithm used when you store this object in Amazon - // S3 (for example, AES256 , aws:kms ). For directory buckets, only server-side - // encryption with Amazon S3 managed keys (SSE-S3) ( AES256 ) is supported. + // S3 (for example, AES256 , aws:kms ). + // + // For directory buckets, only server-side encryption with Amazon S3 managed keys + // (SSE-S3) ( AES256 ) is supported. ServerSideEncryption types.ServerSideEncryption // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_WriteGetObjectResponse.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_WriteGetObjectResponse.go index e181ab71..4dfa64e8 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_WriteGetObjectResponse.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_WriteGetObjectResponse.go @@ -18,42 +18,54 @@ import ( "time" ) -// This operation is not supported by directory buckets. Passes transformed -// objects to a GetObject operation when using Object Lambda access points. For -// information about Object Lambda access points, see Transforming objects with -// Object Lambda access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html) -// in the Amazon S3 User Guide. This operation supports metadata that can be -// returned by GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) -// , in addition to RequestRoute , RequestToken , StatusCode , ErrorCode , and -// ErrorMessage . The GetObject response metadata is supported so that the -// WriteGetObjectResponse caller, typically an Lambda function, can provide the -// same metadata when it internally invokes GetObject . When WriteGetObjectResponse -// is called by a customer-owned Lambda function, the metadata returned to the end -// user GetObject call might differ from what Amazon S3 would normally return. You -// can include any number of metadata headers. When including a metadata header, it -// should be prefaced with x-amz-meta . For example, x-amz-meta-my-custom-header: -// MyCustomValue . The primary use case for this is to forward GetObject metadata. +// This operation is not supported by directory buckets. +// +// Passes transformed objects to a GetObject operation when using Object Lambda +// access points. For information about Object Lambda access points, see [Transforming objects with Object Lambda access points]in the +// Amazon S3 User Guide. +// +// This operation supports metadata that can be returned by [GetObject], in addition to +// RequestRoute , RequestToken , StatusCode , ErrorCode , and ErrorMessage . The +// GetObject response metadata is supported so that the WriteGetObjectResponse +// caller, typically an Lambda function, can provide the same metadata when it +// internally invokes GetObject . When WriteGetObjectResponse is called by a +// customer-owned Lambda function, the metadata returned to the end user GetObject +// call might differ from what Amazon S3 would normally return. +// +// You can include any number of metadata headers. When including a metadata +// header, it should be prefaced with x-amz-meta . For example, +// x-amz-meta-my-custom-header: MyCustomValue . The primary use case for this is to +// forward GetObject metadata. +// // Amazon Web Services provides some prebuilt Lambda functions that you can use // with S3 Object Lambda to detect and redact personally identifiable information // (PII) and decompress S3 objects. These Lambda functions are available in the // Amazon Web Services Serverless Application Repository, and can be selected // through the Amazon Web Services Management Console when you create your Object -// Lambda access point. Example 1: PII Access Control - This Lambda function uses -// Amazon Comprehend, a natural language processing (NLP) service using machine -// learning to find insights and relationships in text. It automatically detects -// personally identifiable information (PII) such as names, addresses, dates, -// credit card numbers, and social security numbers from documents in your Amazon -// S3 bucket. Example 2: PII Redaction - This Lambda function uses Amazon -// Comprehend, a natural language processing (NLP) service using machine learning -// to find insights and relationships in text. It automatically redacts personally +// Lambda access point. +// +// Example 1: PII Access Control - This Lambda function uses Amazon Comprehend, a +// natural language processing (NLP) service using machine learning to find +// insights and relationships in text. It automatically detects personally // identifiable information (PII) such as names, addresses, dates, credit card // numbers, and social security numbers from documents in your Amazon S3 bucket. +// +// Example 2: PII Redaction - This Lambda function uses Amazon Comprehend, a +// natural language processing (NLP) service using machine learning to find +// insights and relationships in text. It automatically redacts personally +// identifiable information (PII) such as names, addresses, dates, credit card +// numbers, and social security numbers from documents in your Amazon S3 bucket. +// // Example 3: Decompression - The Lambda function S3ObjectLambdaDecompression, is // equipped to decompress objects stored in S3 in one of six compressed file -// formats including bzip2, gzip, snappy, zlib, zstandard and ZIP. For information -// on how to view and use these functions, see Using Amazon Web Services built -// Lambda functions (https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html) -// in the Amazon S3 User Guide. +// formats including bzip2, gzip, snappy, zlib, zstandard and ZIP. +// +// For information on how to view and use these functions, see [Using Amazon Web Services built Lambda functions] in the Amazon S3 +// User Guide. +// +// [Transforming objects with Object Lambda access points]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html +// [Using Amazon Web Services built Lambda functions]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html +// [GetObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html func (c *Client) WriteGetObjectResponse(ctx context.Context, params *WriteGetObjectResponseInput, optFns ...func(*Options)) (*WriteGetObjectResponseOutput, error) { if params == nil { params = &WriteGetObjectResponseInput{} @@ -88,7 +100,7 @@ type WriteGetObjectResponseInput struct { // The object data. Body io.Reader - // Indicates whether the object stored in Amazon S3 uses an S3 bucket key for + // Indicates whether the object stored in Amazon S3 uses an S3 bucket key for // server-side encryption with Amazon Web Services KMS (SSE-KMS). BucketKeyEnabled *bool @@ -101,9 +113,12 @@ type WriteGetObjectResponseInput struct { // Lambda function. This may not match the checksum for the object stored in Amazon // S3. Amazon S3 will perform validation of the checksum values only when the // original GetObject request required checksum validation. For more information - // about checksums, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. Only one checksum header can be specified at a - // time. If you supply multiple checksum headers, this request will fail. + // about checksums, see [Checking object integrity]in the Amazon S3 User Guide. + // + // Only one checksum header can be specified at a time. If you supply multiple + // checksum headers, this request will fail. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumCRC32 *string // This header can be used as a data integrity check to verify that the data @@ -112,9 +127,12 @@ type WriteGetObjectResponseInput struct { // Lambda function. This may not match the checksum for the object stored in Amazon // S3. Amazon S3 will perform validation of the checksum values only when the // original GetObject request required checksum validation. For more information - // about checksums, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. Only one checksum header can be specified at a - // time. If you supply multiple checksum headers, this request will fail. + // about checksums, see [Checking object integrity]in the Amazon S3 User Guide. + // + // Only one checksum header can be specified at a time. If you supply multiple + // checksum headers, this request will fail. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumCRC32C *string // This header can be used as a data integrity check to verify that the data @@ -123,9 +141,12 @@ type WriteGetObjectResponseInput struct { // function. This may not match the checksum for the object stored in Amazon S3. // Amazon S3 will perform validation of the checksum values only when the original // GetObject request required checksum validation. For more information about - // checksums, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. Only one checksum header can be specified at a - // time. If you supply multiple checksum headers, this request will fail. + // checksums, see [Checking object integrity]in the Amazon S3 User Guide. + // + // Only one checksum header can be specified at a time. If you supply multiple + // checksum headers, this request will fail. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumSHA1 *string // This header can be used as a data integrity check to verify that the data @@ -134,9 +155,12 @@ type WriteGetObjectResponseInput struct { // Lambda function. This may not match the checksum for the object stored in Amazon // S3. Amazon S3 will perform validation of the checksum values only when the // original GetObject request required checksum validation. For more information - // about checksums, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. Only one checksum header can be specified at a - // time. If you supply multiple checksum headers, this request will fail. + // about checksums, see [Checking object integrity]in the Amazon S3 User Guide. + // + // Only one checksum header can be specified at a time. If you supply multiple + // checksum headers, this request will fail. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumSHA256 *string // Specifies presentational information for the object. @@ -205,8 +229,9 @@ type WriteGetObjectResponseInput struct { ObjectLockLegalHoldStatus types.ObjectLockLegalHoldStatus // Indicates whether an object stored in Amazon S3 has Object Lock enabled. For - // more information about S3 Object Lock, see Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) - // . + // more information about S3 Object Lock, see [Object Lock]. + // + // [Object Lock]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html ObjectLockMode types.ObjectLockMode // The date and time when Object Lock is configured to expire. @@ -216,12 +241,15 @@ type WriteGetObjectResponseInput struct { PartsCount *int32 // Indicates if request involves bucket that is either a source or destination in - // a Replication rule. For more information about S3 Replication, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html) - // . + // a Replication rule. For more information about S3 Replication, see [Replication]. + // + // [Replication]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html ReplicationStatus types.ReplicationStatus // If present, indicates that the requester was successfully charged for the - // request. This functionality is not supported for directory buckets. + // request. + // + // This functionality is not supported for directory buckets. RequestCharged types.RequestCharged // Provides information about object restoration operation and expiration time of @@ -232,43 +260,59 @@ type WriteGetObjectResponseInput struct { // encryption key was specified for object stored in Amazon S3. SSECustomerAlgorithm *string - // 128-bit MD5 digest of customer-provided encryption key used in Amazon S3 to - // encrypt data stored in S3. For more information, see Protecting data using - // server-side encryption with customer-provided encryption keys (SSE-C) (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html) - // . + // 128-bit MD5 digest of customer-provided encryption key used in Amazon S3 to + // encrypt data stored in S3. For more information, see [Protecting data using server-side encryption with customer-provided encryption keys (SSE-C)]. + // + // [Protecting data using server-side encryption with customer-provided encryption keys (SSE-C)]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html SSECustomerKeyMD5 *string - // If present, specifies the ID (Key ID, Key ARN, or Key Alias) of the Amazon Web + // If present, specifies the ID (Key ID, Key ARN, or Key Alias) of the Amazon Web // Services Key Management Service (Amazon Web Services KMS) symmetric encryption // customer managed key that was used for stored in Amazon S3 object. SSEKMSKeyId *string - // The server-side encryption algorithm used when storing requested object in + // The server-side encryption algorithm used when storing requested object in // Amazon S3 (for example, AES256, aws:kms ). ServerSideEncryption types.ServerSideEncryption // The integer status code for an HTTP response of a corresponding GetObject // request. The following is a list of status codes. + // // - 200 - OK + // // - 206 - Partial Content + // // - 304 - Not Modified + // // - 400 - Bad Request + // // - 401 - Unauthorized + // // - 403 - Forbidden + // // - 404 - Not Found + // // - 405 - Method Not Allowed + // // - 409 - Conflict + // // - 411 - Length Required + // // - 412 - Precondition Failed + // // - 416 - Range Not Satisfiable + // // - 500 - Internal Server Error + // // - 503 - Service Unavailable StatusCode *int32 // Provides storage class information of the object. Amazon S3 returns this header - // for all objects except for S3 Standard storage class objects. For more - // information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) - // . + // for all objects except for S3 Standard storage class objects. + // + // For more information, see [Storage Classes]. + // + // [Storage Classes]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html StorageClass types.StorageClass // The number of tags, if any, on the object. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/deserializers.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/deserializers.go index 2be5df30..d953cdc1 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/deserializers.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/deserializers.go @@ -25,8 +25,17 @@ import ( "io/ioutil" "strconv" "strings" + "time" ) +func deserializeS3Expires(v string) (*time.Time, error) { + t, err := smithytime.ParseHTTPDate(v) + if err != nil { + return nil, nil + } + return &t, nil +} + type awsRestxml_deserializeOpAbortMultipartUpload struct { } @@ -5504,12 +5513,17 @@ func awsRestxml_deserializeOpHttpBindingsGetObjectOutput(v *GetObjectOutput, res } if headerValues := response.Header.Values("Expires"); len(headerValues) != 0 { - headerValues[0] = strings.TrimSpace(headerValues[0]) - t, err := smithytime.ParseHTTPDate(headerValues[0]) + deserOverride, err := deserializeS3Expires(headerValues[0]) if err != nil { return err } - v.Expires = ptr.Time(t) + v.Expires = deserOverride + + } + + if headerValues := response.Header.Values("Expires"); len(headerValues) != 0 { + headerValues[0] = strings.TrimSpace(headerValues[0]) + v.ExpiresString = ptr.String(headerValues[0]) } if headerValues := response.Header.Values("Last-Modified"); len(headerValues) != 0 { @@ -7128,12 +7142,17 @@ func awsRestxml_deserializeOpHttpBindingsHeadObjectOutput(v *HeadObjectOutput, r } if headerValues := response.Header.Values("Expires"); len(headerValues) != 0 { - headerValues[0] = strings.TrimSpace(headerValues[0]) - t, err := smithytime.ParseHTTPDate(headerValues[0]) + deserOverride, err := deserializeS3Expires(headerValues[0]) if err != nil { return err } - v.Expires = ptr.Time(t) + v.Expires = deserOverride + + } + + if headerValues := response.Header.Values("Expires"); len(headerValues) != 0 { + headerValues[0] = strings.TrimSpace(headerValues[0]) + v.ExpiresString = ptr.String(headerValues[0]) } if headerValues := response.Header.Values("Last-Modified"); len(headerValues) != 0 { diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/go_module_metadata.go index 04c6fdbb..e7a959d4 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/go_module_metadata.go @@ -3,4 +3,4 @@ package s3 // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.53.1" +const goModuleVersion = "1.54.4" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/options.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/options.go index 064bcefb..c5ab084d 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/options.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/options.go @@ -65,8 +65,10 @@ type Options struct { // Deprecated: Deprecated: EndpointResolver and WithEndpointResolver. Providing a // value for this field will likely prevent you from using any endpoint-related // service features released after the introduction of EndpointResolverV2 and - // BaseEndpoint. To migrate an EndpointResolver implementation that uses a custom - // endpoint, set the client option BaseEndpoint instead. + // BaseEndpoint. + // + // To migrate an EndpointResolver implementation that uses a custom endpoint, set + // the client option BaseEndpoint instead. EndpointResolver EndpointResolver // Resolves the endpoint used for a particular service operation. This should be @@ -88,17 +90,20 @@ type Options struct { // RetryMaxAttempts specifies the maximum number attempts an API client will call // an operation that fails with a retryable error. A value of 0 is ignored, and // will not be used to configure the API client created default retryer, or modify - // per operation call's retry max attempts. If specified in an operation call's - // functional options with a value that is different than the constructed client's - // Options, the Client's Retryer will be wrapped to use the operation's specific - // RetryMaxAttempts value. + // per operation call's retry max attempts. + // + // If specified in an operation call's functional options with a value that is + // different than the constructed client's Options, the Client's Retryer will be + // wrapped to use the operation's specific RetryMaxAttempts value. RetryMaxAttempts int // RetryMode specifies the retry mode the API client will be created with, if - // Retryer option is not also specified. When creating a new API Clients this - // member will only be used if the Retryer Options member is nil. This value will - // be ignored if Retryer is not nil. Currently does not support per operation call - // overrides, may in the future. + // Retryer option is not also specified. + // + // When creating a new API Clients this member will only be used if the Retryer + // Options member is nil. This value will be ignored if Retryer is not nil. + // + // Currently does not support per operation call overrides, may in the future. RetryMode aws.RetryMode // Retryer guides how HTTP requests should be retried in case of recoverable @@ -141,8 +146,9 @@ type Options struct { // The initial DefaultsMode used when the client options were constructed. If the // DefaultsMode was set to aws.DefaultsModeAuto this will store what the resolved - // value was at that point in time. Currently does not support per operation call - // overrides, may in the future. + // value was at that point in time. + // + // Currently does not support per operation call overrides, may in the future. resolvedDefaultsMode aws.DefaultsMode // The HTTP client to invoke API calls with. Defaults to client's default HTTP @@ -193,6 +199,7 @@ func WithAPIOptions(optFns ...func(*middleware.Stack) error) func(*Options) { // Deprecated: EndpointResolver and WithEndpointResolver. Providing a value for // this field will likely prevent you from using any endpoint-related service // features released after the introduction of EndpointResolverV2 and BaseEndpoint. +// // To migrate an EndpointResolver implementation that uses a custom endpoint, set // the client option BaseEndpoint instead. func WithEndpointResolver(v EndpointResolver) func(*Options) { diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/serializers.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/serializers.go index 59524bdc..09334d40 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/serializers.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/serializers.go @@ -118,7 +118,7 @@ func (m *awsRestxml_serializeOpCompleteMultipartUpload) HandleSerialize(ctx cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/{Key+}?x-id=CompleteMultipartUpload") + opPath, opQuery := httpbinding.SplitURI("/{Key+}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -640,7 +640,7 @@ func (m *awsRestxml_serializeOpCreateMultipartUpload) HandleSerialize(ctx contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/{Key+}?uploads&x-id=CreateMultipartUpload") + opPath, opQuery := httpbinding.SplitURI("/{Key+}?uploads") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -1803,7 +1803,7 @@ func (m *awsRestxml_serializeOpDeleteObjects) HandleSerialize(ctx context.Contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/?delete&x-id=DeleteObjects") + opPath, opQuery := httpbinding.SplitURI("/?delete") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -7758,7 +7758,7 @@ func (m *awsRestxml_serializeOpRestoreObject) HandleSerialize(ctx context.Contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/{Key+}?restore&x-id=RestoreObject") + opPath, opQuery := httpbinding.SplitURI("/{Key+}?restore") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -7866,7 +7866,7 @@ func (m *awsRestxml_serializeOpSelectObjectContent) HandleSerialize(ctx context. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/{Key+}?select&select-type=2&x-id=SelectObjectContent") + opPath, opQuery := httpbinding.SplitURI("/{Key+}?select&select-type=2") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -8341,7 +8341,7 @@ func (m *awsRestxml_serializeOpWriteGetObjectResponse) HandleSerialize(ctx conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/WriteGetObjectResponse?x-id=WriteGetObjectResponse") + opPath, opQuery := httpbinding.SplitURI("/WriteGetObjectResponse") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/enums.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/enums.go index ea3b9c82..bcb956b2 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/enums.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/enums.go @@ -11,6 +11,7 @@ const ( // Values returns all known values for AnalyticsS3ExportFileFormat. Note that this // can be expanded in the future, and so it is only as up to date as the client. +// // The ordering of this slice is not guaranteed to be stable across updates. func (AnalyticsS3ExportFileFormat) Values() []AnalyticsS3ExportFileFormat { return []AnalyticsS3ExportFileFormat{ @@ -27,8 +28,9 @@ const ( ) // Values returns all known values for ArchiveStatus. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (ArchiveStatus) Values() []ArchiveStatus { return []ArchiveStatus{ "ARCHIVE_ACCESS", @@ -45,8 +47,9 @@ const ( ) // Values returns all known values for BucketAccelerateStatus. Note that this can -// be expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// be expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (BucketAccelerateStatus) Values() []BucketAccelerateStatus { return []BucketAccelerateStatus{ "Enabled", @@ -65,8 +68,9 @@ const ( ) // Values returns all known values for BucketCannedACL. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (BucketCannedACL) Values() []BucketCannedACL { return []BucketCannedACL{ "private", @@ -112,6 +116,7 @@ const ( // Values returns all known values for BucketLocationConstraint. Note that this // can be expanded in the future, and so it is only as up to date as the client. +// // The ordering of this slice is not guaranteed to be stable across updates. func (BucketLocationConstraint) Values() []BucketLocationConstraint { return []BucketLocationConstraint{ @@ -156,8 +161,9 @@ const ( ) // Values returns all known values for BucketLogsPermission. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (BucketLogsPermission) Values() []BucketLogsPermission { return []BucketLogsPermission{ "FULL_CONTROL", @@ -174,8 +180,9 @@ const ( ) // Values returns all known values for BucketType. Note that this can be expanded -// in the future, and so it is only as up to date as the client. The ordering of -// this slice is not guaranteed to be stable across updates. +// in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (BucketType) Values() []BucketType { return []BucketType{ "Directory", @@ -191,8 +198,9 @@ const ( ) // Values returns all known values for BucketVersioningStatus. Note that this can -// be expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// be expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (BucketVersioningStatus) Values() []BucketVersioningStatus { return []BucketVersioningStatus{ "Enabled", @@ -211,8 +219,9 @@ const ( ) // Values returns all known values for ChecksumAlgorithm. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (ChecksumAlgorithm) Values() []ChecksumAlgorithm { return []ChecksumAlgorithm{ "CRC32", @@ -230,8 +239,9 @@ const ( ) // Values returns all known values for ChecksumMode. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (ChecksumMode) Values() []ChecksumMode { return []ChecksumMode{ "ENABLED", @@ -248,8 +258,9 @@ const ( ) // Values returns all known values for CompressionType. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (CompressionType) Values() []CompressionType { return []CompressionType{ "NONE", @@ -266,8 +277,9 @@ const ( ) // Values returns all known values for DataRedundancy. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (DataRedundancy) Values() []DataRedundancy { return []DataRedundancy{ "SingleAvailabilityZone", @@ -284,8 +296,9 @@ const ( // Values returns all known values for DeleteMarkerReplicationStatus. Note that // this can be expanded in the future, and so it is only as up to date as the -// client. The ordering of this slice is not guaranteed to be stable across -// updates. +// client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (DeleteMarkerReplicationStatus) Values() []DeleteMarkerReplicationStatus { return []DeleteMarkerReplicationStatus{ "Enabled", @@ -301,8 +314,9 @@ const ( ) // Values returns all known values for EncodingType. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (EncodingType) Values() []EncodingType { return []EncodingType{ "url", @@ -343,8 +357,9 @@ const ( ) // Values returns all known values for Event. Note that this can be expanded in -// the future, and so it is only as up to date as the client. The ordering of this -// slice is not guaranteed to be stable across updates. +// the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (Event) Values() []Event { return []Event{ "s3:ReducedRedundancyLostObject", @@ -387,8 +402,9 @@ const ( // Values returns all known values for ExistingObjectReplicationStatus. Note that // this can be expanded in the future, and so it is only as up to date as the -// client. The ordering of this slice is not guaranteed to be stable across -// updates. +// client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (ExistingObjectReplicationStatus) Values() []ExistingObjectReplicationStatus { return []ExistingObjectReplicationStatus{ "Enabled", @@ -405,8 +421,9 @@ const ( ) // Values returns all known values for ExpirationStatus. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (ExpirationStatus) Values() []ExpirationStatus { return []ExpirationStatus{ "Enabled", @@ -422,8 +439,9 @@ const ( ) // Values returns all known values for ExpressionType. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (ExpressionType) Values() []ExpressionType { return []ExpressionType{ "SQL", @@ -440,8 +458,9 @@ const ( ) // Values returns all known values for FileHeaderInfo. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (FileHeaderInfo) Values() []FileHeaderInfo { return []FileHeaderInfo{ "USE", @@ -459,8 +478,9 @@ const ( ) // Values returns all known values for FilterRuleName. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (FilterRuleName) Values() []FilterRuleName { return []FilterRuleName{ "prefix", @@ -478,8 +498,9 @@ const ( // Values returns all known values for IntelligentTieringAccessTier. Note that // this can be expanded in the future, and so it is only as up to date as the -// client. The ordering of this slice is not guaranteed to be stable across -// updates. +// client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (IntelligentTieringAccessTier) Values() []IntelligentTieringAccessTier { return []IntelligentTieringAccessTier{ "ARCHIVE_ACCESS", @@ -497,6 +518,7 @@ const ( // Values returns all known values for IntelligentTieringStatus. Note that this // can be expanded in the future, and so it is only as up to date as the client. +// // The ordering of this slice is not guaranteed to be stable across updates. func (IntelligentTieringStatus) Values() []IntelligentTieringStatus { return []IntelligentTieringStatus{ @@ -515,8 +537,9 @@ const ( ) // Values returns all known values for InventoryFormat. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (InventoryFormat) Values() []InventoryFormat { return []InventoryFormat{ "CSV", @@ -534,8 +557,9 @@ const ( ) // Values returns all known values for InventoryFrequency. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (InventoryFrequency) Values() []InventoryFrequency { return []InventoryFrequency{ "Daily", @@ -553,8 +577,9 @@ const ( // Values returns all known values for InventoryIncludedObjectVersions. Note that // this can be expanded in the future, and so it is only as up to date as the -// client. The ordering of this slice is not guaranteed to be stable across -// updates. +// client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (InventoryIncludedObjectVersions) Values() []InventoryIncludedObjectVersions { return []InventoryIncludedObjectVersions{ "All", @@ -584,8 +609,9 @@ const ( ) // Values returns all known values for InventoryOptionalField. Note that this can -// be expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// be expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (InventoryOptionalField) Values() []InventoryOptionalField { return []InventoryOptionalField{ "Size", @@ -615,8 +641,9 @@ const ( ) // Values returns all known values for JSONType. Note that this can be expanded in -// the future, and so it is only as up to date as the client. The ordering of this -// slice is not guaranteed to be stable across updates. +// the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (JSONType) Values() []JSONType { return []JSONType{ "DOCUMENT", @@ -632,8 +659,9 @@ const ( ) // Values returns all known values for LocationType. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (LocationType) Values() []LocationType { return []LocationType{ "AvailabilityZone", @@ -649,8 +677,9 @@ const ( ) // Values returns all known values for MetadataDirective. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (MetadataDirective) Values() []MetadataDirective { return []MetadataDirective{ "COPY", @@ -667,8 +696,9 @@ const ( ) // Values returns all known values for MetricsStatus. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (MetricsStatus) Values() []MetricsStatus { return []MetricsStatus{ "Enabled", @@ -685,8 +715,9 @@ const ( ) // Values returns all known values for MFADelete. Note that this can be expanded -// in the future, and so it is only as up to date as the client. The ordering of -// this slice is not guaranteed to be stable across updates. +// in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (MFADelete) Values() []MFADelete { return []MFADelete{ "Enabled", @@ -703,8 +734,9 @@ const ( ) // Values returns all known values for MFADeleteStatus. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (MFADeleteStatus) Values() []MFADeleteStatus { return []MFADeleteStatus{ "Enabled", @@ -724,8 +756,9 @@ const ( ) // Values returns all known values for ObjectAttributes. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (ObjectAttributes) Values() []ObjectAttributes { return []ObjectAttributes{ "ETag", @@ -750,8 +783,9 @@ const ( ) // Values returns all known values for ObjectCannedACL. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (ObjectCannedACL) Values() []ObjectCannedACL { return []ObjectCannedACL{ "private", @@ -772,8 +806,9 @@ const ( ) // Values returns all known values for ObjectLockEnabled. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (ObjectLockEnabled) Values() []ObjectLockEnabled { return []ObjectLockEnabled{ "Enabled", @@ -790,6 +825,7 @@ const ( // Values returns all known values for ObjectLockLegalHoldStatus. Note that this // can be expanded in the future, and so it is only as up to date as the client. +// // The ordering of this slice is not guaranteed to be stable across updates. func (ObjectLockLegalHoldStatus) Values() []ObjectLockLegalHoldStatus { return []ObjectLockLegalHoldStatus{ @@ -807,8 +843,9 @@ const ( ) // Values returns all known values for ObjectLockMode. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (ObjectLockMode) Values() []ObjectLockMode { return []ObjectLockMode{ "GOVERNANCE", @@ -825,8 +862,9 @@ const ( ) // Values returns all known values for ObjectLockRetentionMode. Note that this can -// be expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// be expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (ObjectLockRetentionMode) Values() []ObjectLockRetentionMode { return []ObjectLockRetentionMode{ "GOVERNANCE", @@ -844,8 +882,9 @@ const ( ) // Values returns all known values for ObjectOwnership. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (ObjectOwnership) Values() []ObjectOwnership { return []ObjectOwnership{ "BucketOwnerPreferred", @@ -872,8 +911,9 @@ const ( ) // Values returns all known values for ObjectStorageClass. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (ObjectStorageClass) Values() []ObjectStorageClass { return []ObjectStorageClass{ "STANDARD", @@ -899,6 +939,7 @@ const ( // Values returns all known values for ObjectVersionStorageClass. Note that this // can be expanded in the future, and so it is only as up to date as the client. +// // The ordering of this slice is not guaranteed to be stable across updates. func (ObjectVersionStorageClass) Values() []ObjectVersionStorageClass { return []ObjectVersionStorageClass{ @@ -915,6 +956,7 @@ const ( // Values returns all known values for OptionalObjectAttributes. Note that this // can be expanded in the future, and so it is only as up to date as the client. +// // The ordering of this slice is not guaranteed to be stable across updates. func (OptionalObjectAttributes) Values() []OptionalObjectAttributes { return []OptionalObjectAttributes{ @@ -930,8 +972,9 @@ const ( ) // Values returns all known values for OwnerOverride. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (OwnerOverride) Values() []OwnerOverride { return []OwnerOverride{ "Destination", @@ -947,8 +990,9 @@ const ( ) // Values returns all known values for PartitionDateSource. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (PartitionDateSource) Values() []PartitionDateSource { return []PartitionDateSource{ "EventTime", @@ -965,8 +1009,9 @@ const ( ) // Values returns all known values for Payer. Note that this can be expanded in -// the future, and so it is only as up to date as the client. The ordering of this -// slice is not guaranteed to be stable across updates. +// the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (Payer) Values() []Payer { return []Payer{ "Requester", @@ -986,8 +1031,9 @@ const ( ) // Values returns all known values for Permission. Note that this can be expanded -// in the future, and so it is only as up to date as the client. The ordering of -// this slice is not guaranteed to be stable across updates. +// in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (Permission) Values() []Permission { return []Permission{ "FULL_CONTROL", @@ -1007,8 +1053,9 @@ const ( ) // Values returns all known values for Protocol. Note that this can be expanded in -// the future, and so it is only as up to date as the client. The ordering of this -// slice is not guaranteed to be stable across updates. +// the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (Protocol) Values() []Protocol { return []Protocol{ "http", @@ -1025,8 +1072,9 @@ const ( ) // Values returns all known values for QuoteFields. Note that this can be expanded -// in the future, and so it is only as up to date as the client. The ordering of -// this slice is not guaranteed to be stable across updates. +// in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (QuoteFields) Values() []QuoteFields { return []QuoteFields{ "ALWAYS", @@ -1044,6 +1092,7 @@ const ( // Values returns all known values for ReplicaModificationsStatus. Note that this // can be expanded in the future, and so it is only as up to date as the client. +// // The ordering of this slice is not guaranteed to be stable across updates. func (ReplicaModificationsStatus) Values() []ReplicaModificationsStatus { return []ReplicaModificationsStatus{ @@ -1061,8 +1110,9 @@ const ( ) // Values returns all known values for ReplicationRuleStatus. Note that this can -// be expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// be expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (ReplicationRuleStatus) Values() []ReplicationRuleStatus { return []ReplicationRuleStatus{ "Enabled", @@ -1082,8 +1132,9 @@ const ( ) // Values returns all known values for ReplicationStatus. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (ReplicationStatus) Values() []ReplicationStatus { return []ReplicationStatus{ "COMPLETE", @@ -1103,8 +1154,9 @@ const ( ) // Values returns all known values for ReplicationTimeStatus. Note that this can -// be expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// be expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (ReplicationTimeStatus) Values() []ReplicationTimeStatus { return []ReplicationTimeStatus{ "Enabled", @@ -1120,8 +1172,9 @@ const ( ) // Values returns all known values for RequestCharged. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (RequestCharged) Values() []RequestCharged { return []RequestCharged{ "requester", @@ -1136,8 +1189,9 @@ const ( ) // Values returns all known values for RequestPayer. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (RequestPayer) Values() []RequestPayer { return []RequestPayer{ "requester", @@ -1152,8 +1206,9 @@ const ( ) // Values returns all known values for RestoreRequestType. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (RestoreRequestType) Values() []RestoreRequestType { return []RestoreRequestType{ "SELECT", @@ -1170,8 +1225,9 @@ const ( ) // Values returns all known values for ServerSideEncryption. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (ServerSideEncryption) Values() []ServerSideEncryption { return []ServerSideEncryption{ "AES256", @@ -1189,8 +1245,9 @@ const ( ) // Values returns all known values for SessionMode. Note that this can be expanded -// in the future, and so it is only as up to date as the client. The ordering of -// this slice is not guaranteed to be stable across updates. +// in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (SessionMode) Values() []SessionMode { return []SessionMode{ "ReadOnly", @@ -1208,8 +1265,9 @@ const ( // Values returns all known values for SseKmsEncryptedObjectsStatus. Note that // this can be expanded in the future, and so it is only as up to date as the -// client. The ordering of this slice is not guaranteed to be stable across -// updates. +// client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (SseKmsEncryptedObjectsStatus) Values() []SseKmsEncryptedObjectsStatus { return []SseKmsEncryptedObjectsStatus{ "Enabled", @@ -1235,8 +1293,9 @@ const ( ) // Values returns all known values for StorageClass. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (StorageClass) Values() []StorageClass { return []StorageClass{ "STANDARD", @@ -1262,8 +1321,9 @@ const ( // Values returns all known values for StorageClassAnalysisSchemaVersion. Note // that this can be expanded in the future, and so it is only as up to date as the -// client. The ordering of this slice is not guaranteed to be stable across -// updates. +// client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (StorageClassAnalysisSchemaVersion) Values() []StorageClassAnalysisSchemaVersion { return []StorageClassAnalysisSchemaVersion{ "V_1", @@ -1279,8 +1339,9 @@ const ( ) // Values returns all known values for TaggingDirective. Note that this can be -// expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (TaggingDirective) Values() []TaggingDirective { return []TaggingDirective{ "COPY", @@ -1298,8 +1359,9 @@ const ( ) // Values returns all known values for Tier. Note that this can be expanded in the -// future, and so it is only as up to date as the client. The ordering of this -// slice is not guaranteed to be stable across updates. +// future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (Tier) Values() []Tier { return []Tier{ "Standard", @@ -1321,8 +1383,9 @@ const ( ) // Values returns all known values for TransitionStorageClass. Note that this can -// be expanded in the future, and so it is only as up to date as the client. The -// ordering of this slice is not guaranteed to be stable across updates. +// be expanded in the future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (TransitionStorageClass) Values() []TransitionStorageClass { return []TransitionStorageClass{ "GLACIER", @@ -1344,8 +1407,9 @@ const ( ) // Values returns all known values for Type. Note that this can be expanded in the -// future, and so it is only as up to date as the client. The ordering of this -// slice is not guaranteed to be stable across updates. +// future, and so it is only as up to date as the client. +// +// The ordering of this slice is not guaranteed to be stable across updates. func (Type) Values() []Type { return []Type{ "CanonicalUser", diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/errors.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/errors.go index 166484f4..a01b922f 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/errors.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/errors.go @@ -64,14 +64,17 @@ func (e *BucketAlreadyOwnedByYou) ErrorCode() string { } func (e *BucketAlreadyOwnedByYou) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// Object is archived and inaccessible until restored. If the object you are -// retrieving is stored in the S3 Glacier Flexible Retrieval storage class, the S3 -// Glacier Deep Archive storage class, the S3 Intelligent-Tiering Archive Access -// tier, or the S3 Intelligent-Tiering Deep Archive Access tier, before you can -// retrieve the object you must first restore a copy using RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html) -// . Otherwise, this operation returns an InvalidObjectState error. For -// information about restoring archived objects, see Restoring Archived Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html) -// in the Amazon S3 User Guide. +// Object is archived and inaccessible until restored. +// +// If the object you are retrieving is stored in the S3 Glacier Flexible Retrieval +// storage class, the S3 Glacier Deep Archive storage class, the S3 +// Intelligent-Tiering Archive Access tier, or the S3 Intelligent-Tiering Deep +// Archive Access tier, before you can retrieve the object you must first restore a +// copy using [RestoreObject]. Otherwise, this operation returns an InvalidObjectState error. For +// information about restoring archived objects, see [Restoring Archived Objects]in the Amazon S3 User Guide. +// +// [RestoreObject]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html +// [Restoring Archived Objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html type InvalidObjectState struct { Message *string diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/types.go b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/types.go index 4299b57c..08225e62 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/types.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/types.go @@ -9,9 +9,9 @@ import ( // Specifies the days since the initiation of an incomplete multipart upload that // Amazon S3 will wait before permanently removing all parts of the upload. For -// more information, see Aborting Incomplete Multipart Uploads Using a Bucket -// Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) -// in the Amazon S3 User Guide. +// more information, see [Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration]in the Amazon S3 User Guide. +// +// [Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config type AbortIncompleteMultipartUpload struct { // Specifies the number of days after which Amazon S3 aborts an incomplete @@ -22,8 +22,9 @@ type AbortIncompleteMultipartUpload struct { } // Configures the transfer acceleration state for an Amazon S3 bucket. For more -// information, see Amazon S3 Transfer Acceleration (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) -// in the Amazon S3 User Guide. +// information, see [Amazon S3 Transfer Acceleration]in the Amazon S3 User Guide. +// +// [Amazon S3 Transfer Acceleration]: https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html type AccelerateConfiguration struct { // Specifies the transfer acceleration status of the bucket. @@ -47,9 +48,10 @@ type AccessControlPolicy struct { // A container for information about access control for replicas. type AccessControlTranslation struct { - // Specifies the replica ownership. For default and valid values, see PUT bucket - // replication (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) - // in the Amazon S3 API Reference. + // Specifies the replica ownership. For default and valid values, see [PUT bucket replication] in the + // Amazon S3 API Reference. + // + // [PUT bucket replication]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html // // This member is required. Owner OwnerOverride @@ -82,7 +84,7 @@ type AnalyticsConfiguration struct { // This member is required. Id *string - // Contains data related to access patterns to be collected and made available to + // Contains data related to access patterns to be collected and made available to // analyze the tradeoffs between different storage classes. // // This member is required. @@ -162,9 +164,10 @@ type AnalyticsS3BucketDestination struct { Format AnalyticsS3ExportFileFormat // The account ID that owns the destination S3 bucket. If no account ID is - // provided, the owner is not validated before exporting data. Although this value - // is optional, we strongly recommend that you set it to help prevent problems if - // the destination bucket ownership changes. + // provided, the owner is not validated before exporting data. + // + // Although this value is optional, we strongly recommend that you set it to help + // prevent problems if the destination bucket ownership changes. BucketAccountId *string // The prefix to use when exporting data. The prefix is prepended to all results. @@ -187,9 +190,11 @@ type Bucket struct { } // Specifies the information about the bucket that will be created. For more -// information about directory buckets, see Directory buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html) -// in the Amazon S3 User Guide. This functionality is only supported by directory -// buckets. +// information about directory buckets, see [Directory buckets]in the Amazon S3 User Guide. +// +// This functionality is only supported by directory buckets. +// +// [Directory buckets]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html type BucketInfo struct { // The number of Availability Zone that's used for redundancy for the bucket. @@ -202,8 +207,9 @@ type BucketInfo struct { } // Specifies the lifecycle configuration for objects in an Amazon S3 bucket. For -// more information, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) -// in the Amazon S3 User Guide. +// more information, see [Object Lifecycle Management]in the Amazon S3 User Guide. +// +// [Object Lifecycle Management]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html type BucketLifecycleConfiguration struct { // A lifecycle rule for individual objects in an Amazon S3 bucket. @@ -218,8 +224,10 @@ type BucketLifecycleConfiguration struct { type BucketLoggingStatus struct { // Describes where logs are stored and the prefix that Amazon S3 assigns to all - // log object keys for a bucket. For more information, see PUT Bucket logging (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) - // in the Amazon S3 API Reference. + // log object keys for a bucket. For more information, see [PUT Bucket logging]in the Amazon S3 API + // Reference. + // + // [PUT Bucket logging]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html LoggingEnabled *LoggingEnabled noSmithyDocumentSerde @@ -233,8 +241,10 @@ type Checksum struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumCRC32 *string // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be @@ -242,8 +252,10 @@ type Checksum struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumCRC32C *string // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be @@ -251,8 +263,10 @@ type Checksum struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumSHA1 *string // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be @@ -260,8 +274,10 @@ type Checksum struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumSHA256 *string noSmithyDocumentSerde @@ -283,8 +299,10 @@ type CommonPrefix struct { // The container for the completed multipart upload details. type CompletedMultipartUpload struct { - // Array of CompletedPart data types. If you do not supply a valid Part with your - // request, the service sends back an HTTP 400 response. + // Array of CompletedPart data types. + // + // If you do not supply a valid Part with your request, the service sends back an + // HTTP 400 response. Parts []CompletedPart noSmithyDocumentSerde @@ -298,8 +316,10 @@ type CompletedPart struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumCRC32 *string // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be @@ -307,8 +327,10 @@ type CompletedPart struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumCRC32C *string // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be @@ -316,8 +338,10 @@ type CompletedPart struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumSHA1 *string // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be @@ -325,8 +349,10 @@ type CompletedPart struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumSHA256 *string // Entity tag returned when the part was uploaded. @@ -334,12 +360,14 @@ type CompletedPart struct { // Part number that identifies the part. This is a positive integer between 1 and // 10,000. + // // - General purpose buckets - In CompleteMultipartUpload , when a additional // checksum (including x-amz-checksum-crc32 , x-amz-checksum-crc32c , // x-amz-checksum-sha1 , or x-amz-checksum-sha256 ) is applied to each part, the // PartNumber must start at 1 and the part numbers must be consecutive. // Otherwise, Amazon S3 generates an HTTP 400 Bad Request status code and an // InvalidPartOrder error code. + // // - Directory buckets - In CompleteMultipartUpload , the PartNumber must start // at 1 and the part numbers must be consecutive. PartNumber *int32 @@ -366,10 +394,12 @@ type Condition struct { // be /docs , which identifies all objects in the docs/ folder. Required when the // parent element Condition is specified and sibling HttpErrorCodeReturnedEquals // is not specified. If both conditions are specified, both must be true for the - // redirect to be applied. Replacement must be made for object keys containing - // special characters (such as carriage returns) when using XML requests. For more - // information, see XML related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) - // . + // redirect to be applied. + // + // Replacement must be made for object keys containing special characters (such as + // carriage returns) when using XML requests. For more information, see [XML related object key constraints]. + // + // [XML related object key constraints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints KeyPrefixEquals *string noSmithyDocumentSerde @@ -383,27 +413,31 @@ type ContinuationEvent struct { type CopyObjectResult struct { // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be - // present if it was uploaded with the object. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. + // present if it was uploaded with the object. For more information, see [Checking object integrity]in the + // Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumCRC32 *string // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be - // present if it was uploaded with the object. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. + // present if it was uploaded with the object. For more information, see [Checking object integrity]in the + // Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumCRC32C *string // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be - // present if it was uploaded with the object. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. + // present if it was uploaded with the object. For more information, see [Checking object integrity]in the + // Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumSHA1 *string // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be - // present if it was uploaded with the object. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) - // in the Amazon S3 User Guide. + // present if it was uploaded with the object. For more information, see [Checking object integrity]in the + // Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumSHA256 *string // Returns the ETag of the new object. The ETag reflects only changes to the @@ -424,8 +458,10 @@ type CopyPartResult struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumCRC32 *string // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be @@ -433,8 +469,10 @@ type CopyPartResult struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumCRC32C *string // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be @@ -442,8 +480,10 @@ type CopyPartResult struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumSHA1 *string // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be @@ -451,8 +491,10 @@ type CopyPartResult struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumSHA256 *string // Entity tag of the object. @@ -465,8 +507,9 @@ type CopyPartResult struct { } // Describes the cross-origin access configuration for objects in an Amazon S3 -// bucket. For more information, see Enabling Cross-Origin Resource Sharing (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) -// in the Amazon S3 User Guide. +// bucket. For more information, see [Enabling Cross-Origin Resource Sharing]in the Amazon S3 User Guide. +// +// [Enabling Cross-Origin Resource Sharing]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html type CORSConfiguration struct { // A set of origins and methods (cross-origin access that you want to allow). You @@ -515,23 +558,30 @@ type CORSRule struct { // The configuration information for the bucket. type CreateBucketConfiguration struct { - // Specifies the information about the bucket that will be created. This - // functionality is only supported by directory buckets. + // Specifies the information about the bucket that will be created. + // + // This functionality is only supported by directory buckets. Bucket *BucketInfo - // Specifies the location where the bucket will be created. For directory buckets, - // the location type is Availability Zone. This functionality is only supported by - // directory buckets. + // Specifies the location where the bucket will be created. + // + // For directory buckets, the location type is Availability Zone. + // + // This functionality is only supported by directory buckets. Location *LocationInfo // Specifies the Region where the bucket will be created. You might choose a // Region to optimize latency, minimize costs, or address regulatory requirements. // For example, if you reside in Europe, you will probably find it advantageous to - // create buckets in the Europe (Ireland) Region. For more information, see - // Accessing a bucket (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro) - // in the Amazon S3 User Guide. If you don't specify a Region, the bucket is - // created in the US East (N. Virginia) Region (us-east-1) by default. This - // functionality is not supported for directory buckets. + // create buckets in the Europe (Ireland) Region. For more information, see [Accessing a bucket]in the + // Amazon S3 User Guide. + // + // If you don't specify a Region, the bucket is created in the US East (N. + // Virginia) Region (us-east-1) by default. + // + // This functionality is not supported for directory buckets. + // + // [Accessing a bucket]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro LocationConstraint BucketLocationConstraint noSmithyDocumentSerde @@ -548,7 +598,9 @@ type CSVInput struct { // A single character used to indicate that a row should be ignored when the // character is present at the start of that row. You can specify any character to - // indicate a comment line. The default character is # . Default: # + // indicate a comment line. The default character is # . + // + // Default: # Comments *string // A single character used to separate individual fields in a record. You can @@ -556,17 +608,26 @@ type CSVInput struct { FieldDelimiter *string // Describes the first line of input. Valid values are: + // // - NONE : First line is not a header. + // // - IGNORE : First line is a header, but you can't use the header values to // indicate the column in an expression. You can use column position (such as _1, // _2, …) to indicate the column ( SELECT s._1 FROM OBJECT s ). + // // - Use : First line is a header, and you can use the header value to identify a // column in an expression ( SELECT "name" FROM OBJECT ). FileHeaderInfo FileHeaderInfo // A single character used for escaping when the field delimiter is part of the // value. For example, if the value is a, b , Amazon S3 wraps this field value in - // quotation marks, as follows: " a , b " . Type: String Default: " Ancestors: CSV + // quotation marks, as follows: " a , b " . + // + // Type: String + // + // Default: " + // + // Ancestors: CSV QuoteCharacter *string // A single character used for escaping the quotation mark character inside an @@ -599,7 +660,9 @@ type CSVOutput struct { QuoteEscapeCharacter *string // Indicates whether to use quotation marks around output fields. + // // - ALWAYS : Always use quotation marks for output fields. + // // - ASNEEDED : Use quotation marks for output fields when needed. QuoteFields QuoteFields @@ -612,7 +675,9 @@ type CSVOutput struct { // The container element for specifying the default Object Lock retention settings // for new objects placed in the specified bucket. +// // - The DefaultRetention settings require both a mode and a period. +// // - The DefaultRetention period can be either Days or Years but you must select // one. You cannot specify Days and Years at the same time. type DefaultRetention struct { @@ -635,10 +700,12 @@ type DefaultRetention struct { // Container for the objects to delete. type Delete struct { - // The object to delete. Directory buckets - For directory buckets, an object - // that's composed entirely of whitespace characters is not supported by the - // DeleteObjects API operation. The request will receive a 400 Bad Request error - // and none of the objects in the request will be deleted. + // The object to delete. + // + // Directory buckets - For directory buckets, an object that's composed entirely + // of whitespace characters is not supported by the DeleteObjects API operation. + // The request will receive a 400 Bad Request error and none of the objects in the + // request will be deleted. // // This member is required. Objects []ObjectIdentifier @@ -656,21 +723,24 @@ type DeletedObject struct { // Indicates whether the specified object version that was permanently deleted was // (true) or was not (false) a delete marker before deletion. In a simple DELETE, // this header indicates whether (true) or not (false) the current version of the - // object is a delete marker. This functionality is not supported for directory - // buckets. + // object is a delete marker. + // + // This functionality is not supported for directory buckets. DeleteMarker *bool // The version ID of the delete marker created as a result of the DELETE // operation. If you delete a specific object version, the value returned by this - // header is the version ID of the object version deleted. This functionality is - // not supported for directory buckets. + // header is the version ID of the object version deleted. + // + // This functionality is not supported for directory buckets. DeleteMarkerVersionId *string // The name of the deleted object. Key *string - // The version ID of the deleted object. This functionality is not supported for - // directory buckets. + // The version ID of the deleted object. + // + // This functionality is not supported for directory buckets. VersionId *string noSmithyDocumentSerde @@ -703,17 +773,20 @@ type DeleteMarkerEntry struct { // DeleteMarkerReplication element. If your Filter includes a Tag element, the // DeleteMarkerReplication Status must be set to Disabled, because Amazon S3 does // not support replicating delete markers for tag-based rules. For an example -// configuration, see Basic Rule Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config) -// . For more information about delete marker replication, see Basic Rule -// Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html) -// . If you are using an earlier version of the replication configuration, Amazon -// S3 handles replication of delete markers differently. For more information, see -// Backward Compatibility (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations) -// . +// configuration, see [Basic Rule Configuration]. +// +// For more information about delete marker replication, see [Basic Rule Configuration]. +// +// If you are using an earlier version of the replication configuration, Amazon S3 +// handles replication of delete markers differently. For more information, see [Backward Compatibility]. +// +// [Basic Rule Configuration]: https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html +// [Backward Compatibility]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations type DeleteMarkerReplication struct { - // Indicates whether to replicate delete markers. Indicates whether to replicate - // delete markers. + // Indicates whether to replicate delete markers. + // + // Indicates whether to replicate delete markers. Status DeleteMarkerReplicationStatus noSmithyDocumentSerde @@ -723,7 +796,7 @@ type DeleteMarkerReplication struct { // for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC). type Destination struct { - // The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store + // The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store // the results. // // This member is required. @@ -740,29 +813,32 @@ type Destination struct { // Amazon S3 to change replica ownership to the Amazon Web Services account that // owns the destination bucket by specifying the AccessControlTranslation // property, this is the account ID of the destination bucket owner. For more - // information, see Replication Additional Configuration: Changing the Replica - // Owner (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html) - // in the Amazon S3 User Guide. + // information, see [Replication Additional Configuration: Changing the Replica Owner]in the Amazon S3 User Guide. + // + // [Replication Additional Configuration: Changing the Replica Owner]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html Account *string // A container that provides information about encryption. If // SourceSelectionCriteria is specified, you must specify this element. EncryptionConfiguration *EncryptionConfiguration - // A container specifying replication metrics-related settings enabling + // A container specifying replication metrics-related settings enabling // replication metrics and events. Metrics *Metrics - // A container specifying S3 Replication Time Control (S3 RTC), including whether + // A container specifying S3 Replication Time Control (S3 RTC), including whether // S3 RTC is enabled and the time when all objects and operations on objects must // be replicated. Must be specified together with a Metrics block. ReplicationTime *ReplicationTime - // The storage class to use when replicating objects, such as S3 Standard or + // The storage class to use when replicating objects, such as S3 Standard or // reduced redundancy. By default, Amazon S3 uses the storage class of the source - // object to create the object replica. For valid values, see the StorageClass - // element of the PUT Bucket replication (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) - // action in the Amazon S3 API Reference. + // object to create the object replica. + // + // For valid values, see the StorageClass element of the [PUT Bucket replication] action in the Amazon S3 + // API Reference. + // + // [PUT Bucket replication]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html StorageClass StorageClass noSmithyDocumentSerde @@ -784,8 +860,9 @@ type Encryption struct { // If the encryption type is aws:kms , this optional value specifies the ID of the // symmetric encryption customer managed key to use for encryption of job results. // Amazon S3 only supports symmetric encryption KMS keys. For more information, see - // Asymmetric keys in KMS (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) - // in the Amazon Web Services Key Management Service Developer Guide. + // [Asymmetric keys in KMS]in the Amazon Web Services Key Management Service Developer Guide. + // + // [Asymmetric keys in KMS]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html KMSKeyId *string noSmithyDocumentSerde @@ -799,8 +876,9 @@ type EncryptionConfiguration struct { // Services KMS key stored in Amazon Web Services Key Management Service (KMS) for // the destination bucket. Amazon S3 uses this key to encrypt replica objects. // Amazon S3 only supports symmetric encryption KMS keys. For more information, see - // Asymmetric keys in Amazon Web Services KMS (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) - // in the Amazon Web Services Key Management Service Developer Guide. + // [Asymmetric keys in Amazon Web Services KMS]in the Amazon Web Services Key Management Service Developer Guide. + // + // [Asymmetric keys in Amazon Web Services KMS]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html ReplicaKmsKeyID *string noSmithyDocumentSerde @@ -819,414 +897,766 @@ type Error struct { // The error code is a string that uniquely identifies an error condition. It is // meant to be read and understood by programs that detect and handle errors by // type. The following is a list of Amazon S3 error codes. For more information, - // see Error responses (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html) - // . + // see [Error responses]. + // // - Code: AccessDenied + // // - Description: Access Denied + // // - HTTP Status Code: 403 Forbidden + // // - SOAP Fault Code Prefix: Client + // // - Code: AccountProblem + // // - Description: There is a problem with your Amazon Web Services account that // prevents the action from completing successfully. Contact Amazon Web Services // Support for further assistance. + // // - HTTP Status Code: 403 Forbidden + // // - SOAP Fault Code Prefix: Client + // // - Code: AllAccessDisabled + // // - Description: All access to this Amazon S3 resource has been disabled. // Contact Amazon Web Services Support for further assistance. + // // - HTTP Status Code: 403 Forbidden + // // - SOAP Fault Code Prefix: Client + // // - Code: AmbiguousGrantByEmailAddress + // // - Description: The email address you provided is associated with more than // one account. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: AuthorizationHeaderMalformed + // // - Description: The authorization header you provided is invalid. + // // - HTTP Status Code: 400 Bad Request + // // - HTTP Status Code: N/A + // // - Code: BadDigest + // // - Description: The Content-MD5 you specified did not match what we received. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: BucketAlreadyExists + // // - Description: The requested bucket name is not available. The bucket // namespace is shared by all users of the system. Please select a different name // and try again. + // // - HTTP Status Code: 409 Conflict + // // - SOAP Fault Code Prefix: Client + // // - Code: BucketAlreadyOwnedByYou + // // - Description: The bucket you tried to create already exists, and you own it. // Amazon S3 returns this error in all Amazon Web Services Regions except in the // North Virginia Region. For legacy compatibility, if you re-create an existing // bucket that you already own in the North Virginia Region, Amazon S3 returns 200 // OK and resets the bucket access control lists (ACLs). + // // - Code: 409 Conflict (in all Regions except the North Virginia Region) + // // - SOAP Fault Code Prefix: Client + // // - Code: BucketNotEmpty + // // - Description: The bucket you tried to delete is not empty. + // // - HTTP Status Code: 409 Conflict + // // - SOAP Fault Code Prefix: Client + // // - Code: CredentialsNotSupported + // // - Description: This request does not support credentials. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: CrossLocationLoggingProhibited + // // - Description: Cross-location logging not allowed. Buckets in one geographic // location cannot log information to a bucket in another location. + // // - HTTP Status Code: 403 Forbidden + // // - SOAP Fault Code Prefix: Client + // // - Code: EntityTooSmall + // // - Description: Your proposed upload is smaller than the minimum allowed // object size. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: EntityTooLarge + // // - Description: Your proposed upload exceeds the maximum allowed object size. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: ExpiredToken + // // - Description: The provided token has expired. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: IllegalVersioningConfigurationException + // // - Description: Indicates that the versioning configuration specified in the // request is invalid. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: IncompleteBody + // // - Description: You did not provide the number of bytes specified by the // Content-Length HTTP header + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: IncorrectNumberOfFilesInPostRequest + // // - Description: POST requires exactly one file upload per request. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: InlineDataTooLarge + // // - Description: Inline data exceeds the maximum allowed size. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: InternalError + // // - Description: We encountered an internal error. Please try again. + // // - HTTP Status Code: 500 Internal Server Error + // // - SOAP Fault Code Prefix: Server + // // - Code: InvalidAccessKeyId + // // - Description: The Amazon Web Services access key ID you provided does not // exist in our records. + // // - HTTP Status Code: 403 Forbidden + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidAddressingHeader + // // - Description: You must specify the Anonymous role. + // // - HTTP Status Code: N/A + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidArgument + // // - Description: Invalid Argument + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidBucketName + // // - Description: The specified bucket is not valid. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidBucketState + // // - Description: The request is not valid with the current state of the bucket. + // // - HTTP Status Code: 409 Conflict + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidDigest + // // - Description: The Content-MD5 you specified is not valid. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidEncryptionAlgorithmError + // // - Description: The encryption request you specified is not valid. The valid // value is AES256. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidLocationConstraint + // // - Description: The specified location constraint is not valid. For more - // information about Regions, see How to Select a Region for Your Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro) - // . + // information about Regions, see [How to Select a Region for Your Buckets]. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidObjectState + // // - Description: The action is not valid for the current state of the object. + // // - HTTP Status Code: 403 Forbidden + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidPart + // // - Description: One or more of the specified parts could not be found. The // part might not have been uploaded, or the specified entity tag might not have // matched the part's entity tag. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidPartOrder + // // - Description: The list of parts was not in ascending order. Parts list must // be specified in order by part number. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidPayer + // // - Description: All access to this object has been disabled. Please contact // Amazon Web Services Support for further assistance. + // // - HTTP Status Code: 403 Forbidden + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidPolicyDocument + // // - Description: The content of the form does not meet the conditions specified // in the policy document. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidRange + // // - Description: The requested range cannot be satisfied. + // // - HTTP Status Code: 416 Requested Range Not Satisfiable + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidRequest + // // - Description: Please use AWS4-HMAC-SHA256 . + // // - HTTP Status Code: 400 Bad Request + // // - Code: N/A + // // - Code: InvalidRequest + // // - Description: SOAP requests must be made over an HTTPS connection. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidRequest + // // - Description: Amazon S3 Transfer Acceleration is not supported for buckets // with non-DNS compliant names. + // // - HTTP Status Code: 400 Bad Request + // // - Code: N/A + // // - Code: InvalidRequest + // // - Description: Amazon S3 Transfer Acceleration is not supported for buckets // with periods (.) in their names. + // // - HTTP Status Code: 400 Bad Request + // // - Code: N/A + // // - Code: InvalidRequest + // // - Description: Amazon S3 Transfer Accelerate endpoint only supports virtual // style requests. + // // - HTTP Status Code: 400 Bad Request + // // - Code: N/A + // // - Code: InvalidRequest - // - Description: Amazon S3 Transfer Accelerate is not configured on this - // bucket. + // + // - Description: Amazon S3 Transfer Accelerate is not configured on this bucket. + // // - HTTP Status Code: 400 Bad Request + // // - Code: N/A + // // - Code: InvalidRequest + // // - Description: Amazon S3 Transfer Accelerate is disabled on this bucket. + // // - HTTP Status Code: 400 Bad Request + // // - Code: N/A + // // - Code: InvalidRequest + // // - Description: Amazon S3 Transfer Acceleration is not supported on this // bucket. Contact Amazon Web Services Support for more information. + // // - HTTP Status Code: 400 Bad Request + // // - Code: N/A + // // - Code: InvalidRequest + // // - Description: Amazon S3 Transfer Acceleration cannot be enabled on this // bucket. Contact Amazon Web Services Support for more information. + // // - HTTP Status Code: 400 Bad Request + // // - Code: N/A + // // - Code: InvalidSecurity + // // - Description: The provided security credentials are not valid. + // // - HTTP Status Code: 403 Forbidden + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidSOAPRequest + // // - Description: The SOAP request body is invalid. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidStorageClass + // // - Description: The storage class you specified is not valid. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidTargetBucketForLogging + // // - Description: The target bucket for logging does not exist, is not owned by // you, or does not have the appropriate grants for the log-delivery group. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidToken + // // - Description: The provided token is malformed or otherwise invalid. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: InvalidURI + // // - Description: Couldn't parse the specified URI. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: KeyTooLongError + // // - Description: Your key is too long. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: MalformedACLError + // // - Description: The XML you provided was not well-formed or did not validate // against our published schema. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: MalformedPOSTRequest + // // - Description: The body of your POST request is not well-formed // multipart/form-data. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: MalformedXML + // // - Description: This happens when the user sends malformed XML (XML that // doesn't conform to the published XSD) for the configuration. The error message // is, "The XML you provided was not well-formed or did not validate against our // published schema." + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: MaxMessageLengthExceeded + // // - Description: Your request was too big. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: MaxPostPreDataLengthExceededError + // // - Description: Your POST request fields preceding the upload file were too // large. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: MetadataTooLarge - // - Description: Your metadata headers exceed the maximum allowed metadata - // size. + // + // - Description: Your metadata headers exceed the maximum allowed metadata size. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: MethodNotAllowed + // // - Description: The specified method is not allowed against this resource. + // // - HTTP Status Code: 405 Method Not Allowed + // // - SOAP Fault Code Prefix: Client + // // - Code: MissingAttachment + // // - Description: A SOAP attachment was expected, but none were found. + // // - HTTP Status Code: N/A + // // - SOAP Fault Code Prefix: Client + // // - Code: MissingContentLength + // // - Description: You must provide the Content-Length HTTP header. + // // - HTTP Status Code: 411 Length Required + // // - SOAP Fault Code Prefix: Client + // // - Code: MissingRequestBodyError + // // - Description: This happens when the user sends an empty XML document as a // request. The error message is, "Request body is empty." + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: MissingSecurityElement + // // - Description: The SOAP 1.1 request is missing a security element. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: MissingSecurityHeader + // // - Description: Your request is missing a required header. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: NoLoggingStatusForKey + // // - Description: There is no such thing as a logging status subresource for a // key. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: NoSuchBucket + // // - Description: The specified bucket does not exist. + // // - HTTP Status Code: 404 Not Found + // // - SOAP Fault Code Prefix: Client + // // - Code: NoSuchBucketPolicy + // // - Description: The specified bucket does not have a bucket policy. + // // - HTTP Status Code: 404 Not Found + // // - SOAP Fault Code Prefix: Client + // // - Code: NoSuchKey + // // - Description: The specified key does not exist. + // // - HTTP Status Code: 404 Not Found + // // - SOAP Fault Code Prefix: Client + // // - Code: NoSuchLifecycleConfiguration + // // - Description: The lifecycle configuration does not exist. + // // - HTTP Status Code: 404 Not Found + // // - SOAP Fault Code Prefix: Client + // // - Code: NoSuchUpload + // // - Description: The specified multipart upload does not exist. The upload ID // might be invalid, or the multipart upload might have been aborted or completed. + // // - HTTP Status Code: 404 Not Found + // // - SOAP Fault Code Prefix: Client + // // - Code: NoSuchVersion + // // - Description: Indicates that the version ID specified in the request does // not match an existing version. + // // - HTTP Status Code: 404 Not Found + // // - SOAP Fault Code Prefix: Client + // // - Code: NotImplemented + // // - Description: A header you provided implies functionality that is not // implemented. + // // - HTTP Status Code: 501 Not Implemented + // // - SOAP Fault Code Prefix: Server + // // - Code: NotSignedUp + // // - Description: Your account is not signed up for the Amazon S3 service. You // must sign up before you can use Amazon S3. You can sign up at the following URL: - // Amazon S3 (http://aws.amazon.com/s3) + // [Amazon S3] + // // - HTTP Status Code: 403 Forbidden + // // - SOAP Fault Code Prefix: Client + // // - Code: OperationAborted + // // - Description: A conflicting conditional action is currently in progress // against this resource. Try again. + // // - HTTP Status Code: 409 Conflict + // // - SOAP Fault Code Prefix: Client + // // - Code: PermanentRedirect + // // - Description: The bucket you are attempting to access must be addressed // using the specified endpoint. Send all future requests to this endpoint. + // // - HTTP Status Code: 301 Moved Permanently + // // - SOAP Fault Code Prefix: Client + // // - Code: PreconditionFailed + // // - Description: At least one of the preconditions you specified did not hold. + // // - HTTP Status Code: 412 Precondition Failed + // // - SOAP Fault Code Prefix: Client + // // - Code: Redirect + // // - Description: Temporary redirect. + // // - HTTP Status Code: 307 Moved Temporarily + // // - SOAP Fault Code Prefix: Client + // // - Code: RestoreAlreadyInProgress + // // - Description: Object restore is already in progress. + // // - HTTP Status Code: 409 Conflict + // // - SOAP Fault Code Prefix: Client + // // - Code: RequestIsNotMultiPartContent + // // - Description: Bucket POST must be of the enclosure-type multipart/form-data. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: RequestTimeout + // // - Description: Your socket connection to the server was not read from or // written to within the timeout period. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: RequestTimeTooSkewed + // // - Description: The difference between the request time and the server's time // is too large. + // // - HTTP Status Code: 403 Forbidden + // // - SOAP Fault Code Prefix: Client + // // - Code: RequestTorrentOfBucketError + // // - Description: Requesting the torrent file of a bucket is not permitted. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: SignatureDoesNotMatch + // // - Description: The request signature we calculated does not match the // signature you provided. Check your Amazon Web Services secret access key and - // signing method. For more information, see REST Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html) - // and SOAP Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/SOAPAuthentication.html) - // for details. + // signing method. For more information, see [REST Authentication]and [SOAP Authentication]for details. + // // - HTTP Status Code: 403 Forbidden + // // - SOAP Fault Code Prefix: Client + // // - Code: ServiceUnavailable + // // - Description: Service is unable to handle request. + // // - HTTP Status Code: 503 Service Unavailable + // // - SOAP Fault Code Prefix: Server + // // - Code: SlowDown + // // - Description: Reduce your request rate. + // // - HTTP Status Code: 503 Slow Down + // // - SOAP Fault Code Prefix: Server + // // - Code: TemporaryRedirect + // // - Description: You are being redirected to the bucket while DNS updates. + // // - HTTP Status Code: 307 Moved Temporarily + // // - SOAP Fault Code Prefix: Client + // // - Code: TokenRefreshRequired + // // - Description: The provided token must be refreshed. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: TooManyBuckets + // // - Description: You have attempted to create more buckets than allowed. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: UnexpectedContent + // // - Description: This request does not support content. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: UnresolvableGrantByEmailAddress + // // - Description: The email address you provided does not match any account on // record. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // // - Code: UserKeyMustBeSpecified + // // - Description: The bucket POST must contain the specified field name. If it // is specified, check the order of the fields. + // // - HTTP Status Code: 400 Bad Request + // // - SOAP Fault Code Prefix: Client + // + // [How to Select a Region for Your Buckets]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro + // [Error responses]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html + // [REST Authentication]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html + // [Amazon S3]: http://aws.amazon.com/s3 + // [SOAP Authentication]: https://docs.aws.amazon.com/AmazonS3/latest/dev/SOAPAuthentication.html Code *string // The error key. @@ -1240,8 +1670,9 @@ type Error struct { // error message. Message *string - // The version ID of the error. This functionality is not supported for directory - // buckets. + // The version ID of the error. + // + // This functionality is not supported for directory buckets. VersionId *string noSmithyDocumentSerde @@ -1250,11 +1681,12 @@ type Error struct { // The error information. type ErrorDocument struct { - // The object key name to use when a 4XX class error occurs. Replacement must be - // made for object keys containing special characters (such as carriage returns) - // when using XML requests. For more information, see XML related object key - // constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) - // . + // The object key name to use when a 4XX class error occurs. + // + // Replacement must be made for object keys containing special characters (such as + // carriage returns) when using XML requests. For more information, see [XML related object key constraints]. + // + // [XML related object key constraints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints // // This member is required. Key *string @@ -1268,8 +1700,9 @@ type EventBridgeConfiguration struct { } // Optional configuration to replicate existing source bucket objects. For more -// information, see Replicating Existing Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-what-is-isnot-replicated.html#existing-object-replication) -// in the Amazon S3 User Guide. +// information, see [Replicating Existing Objects]in the Amazon S3 User Guide. +// +// [Replicating Existing Objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-what-is-isnot-replicated.html#existing-object-replication type ExistingObjectReplication struct { // Specifies whether Amazon S3 replicates existing source bucket objects. @@ -1293,9 +1726,10 @@ type FilterRule struct { // The object key name prefix or suffix identifying one or more objects to which // the filtering rule applies. The maximum length is 1,024 characters. Overlapping - // prefixes and suffixes are not supported. For more information, see Configuring - // Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) - // in the Amazon S3 User Guide. + // prefixes and suffixes are not supported. For more information, see [Configuring Event Notifications]in the + // Amazon S3 User Guide. + // + // [Configuring Event Notifications]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html Name FilterRuleName // The value that the filter searches for in object key names. @@ -1325,10 +1759,12 @@ type GetObjectAttributesParts struct { // A container for elements related to a particular part. A response can contain // zero or more Parts elements. + // // - General purpose buckets - For GetObjectAttributes , if a additional checksum // (including x-amz-checksum-crc32 , x-amz-checksum-crc32c , x-amz-checksum-sha1 // , or x-amz-checksum-sha256 ) isn't applied to the object specified in the // request, the response doesn't return Part . + // // - Directory buckets - For GetObjectAttributes , no matter whether a additional // checksum is applied to the object specified in the request, the response returns // Part . @@ -1374,19 +1810,31 @@ type Grantee struct { // Screen name of the grantee. DisplayName *string - // Email address of the grantee. Using email addresses to specify a grantee is - // only supported in the following Amazon Web Services Regions: + // Email address of the grantee. + // + // Using email addresses to specify a grantee is only supported in the following + // Amazon Web Services Regions: + // // - US East (N. Virginia) + // // - US West (N. California) + // // - US West (Oregon) + // // - Asia Pacific (Singapore) + // // - Asia Pacific (Sydney) + // // - Asia Pacific (Tokyo) + // // - Europe (Ireland) + // // - South America (São Paulo) - // For a list of all the Amazon S3 supported Regions and endpoints, see Regions - // and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) - // in the Amazon Web Services General Reference. + // + // For a list of all the Amazon S3 supported Regions and endpoints, see [Regions and Endpoints] in the + // Amazon Web Services General Reference. + // + // [Regions and Endpoints]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region EmailAddress *string // The canonical user ID of the grantee. @@ -1405,10 +1853,12 @@ type IndexDocument struct { // endpoint (for example,if the suffix is index.html and you make a request to // samplebucket/images/ the data that is returned will be for the object with the // key name images/index.html) The suffix must not be empty and must not include a - // slash character. Replacement must be made for object keys containing special - // characters (such as carriage returns) when using XML requests. For more - // information, see XML related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) - // . + // slash character. + // + // Replacement must be made for object keys containing special characters (such as + // carriage returns) when using XML requests. For more information, see [XML related object key constraints]. + // + // [XML related object key constraints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints // // This member is required. Suffix *string @@ -1419,12 +1869,14 @@ type IndexDocument struct { // Container element that identifies who initiated the multipart upload. type Initiator struct { - // Name of the Principal. This functionality is not supported for directory - // buckets. + // Name of the Principal. + // + // This functionality is not supported for directory buckets. DisplayName *string // If the principal is an Amazon Web Services account, it provides the Canonical // User ID. If the principal is an IAM User, it provides a user ARN value. + // // Directory buckets - If the principal is an Amazon Web Services account, it // provides the Amazon Web Services account ID. If the principal is an IAM User, it // provides a user ARN value. @@ -1467,10 +1919,11 @@ type IntelligentTieringAndOperator struct { noSmithyDocumentSerde } -// Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket. For -// information about the S3 Intelligent-Tiering storage class, see Storage class -// for automatically optimizing frequently and infrequently accessed objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) -// . +// Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket. +// +// For information about the S3 Intelligent-Tiering storage class, see [Storage class for automatically optimizing frequently and infrequently accessed objects]. +// +// [Storage class for automatically optimizing frequently and infrequently accessed objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access type IntelligentTieringConfiguration struct { // The ID used to identify the S3 Intelligent-Tiering configuration. @@ -1505,10 +1958,12 @@ type IntelligentTieringFilter struct { And *IntelligentTieringAndOperator // An object key name prefix that identifies the subset of objects to which the - // rule applies. Replacement must be made for object keys containing special - // characters (such as carriage returns) when using XML requests. For more - // information, see XML related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) - // . + // rule applies. + // + // Replacement must be made for object keys containing special characters (such as + // carriage returns) when using XML requests. For more information, see [XML related object key constraints]. + // + // [XML related object key constraints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints Prefix *string // A container of a key value name pair. @@ -1518,8 +1973,9 @@ type IntelligentTieringFilter struct { } // Specifies the inventory configuration for an Amazon S3 bucket. For more -// information, see GET Bucket inventory (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) -// in the Amazon S3 API Reference. +// information, see [GET Bucket inventory]in the Amazon S3 API Reference. +// +// [GET Bucket inventory]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html type InventoryConfiguration struct { // Contains information about where to publish the inventory results. @@ -1614,9 +2070,10 @@ type InventoryS3BucketDestination struct { Format InventoryFormat // The account ID that owns the destination S3 bucket. If no account ID is - // provided, the owner is not validated before exporting data. Although this value - // is optional, we strongly recommend that you set it to help prevent problems if - // the destination bucket ownership changes. + // provided, the owner is not validated before exporting data. + // + // Although this value is optional, we strongly recommend that you set it to help + // prevent problems if the destination bucket ownership changes. AccountId *string // Contains the type of server-side encryption used to encrypt the inventory @@ -1663,8 +2120,9 @@ type JSONOutput struct { type LambdaFunctionConfiguration struct { // The Amazon S3 bucket event for which to invoke the Lambda function. For more - // information, see Supported Event Types (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) - // in the Amazon S3 User Guide. + // information, see [Supported Event Types]in the Amazon S3 User Guide. + // + // [Supported Event Types]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html // // This member is required. Events []Event @@ -1676,8 +2134,9 @@ type LambdaFunctionConfiguration struct { LambdaFunctionArn *string // Specifies object key name filtering rules. For information about key name - // filtering, see Configuring event notifications using object key name filtering (https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html) - // in the Amazon S3 User Guide. + // filtering, see [Configuring event notifications using object key name filtering]in the Amazon S3 User Guide. + // + // [Configuring event notifications using object key name filtering]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html Filter *NotificationConfigurationFilter // An optional unique identifier for configurations in a notification @@ -1687,9 +2146,11 @@ type LambdaFunctionConfiguration struct { noSmithyDocumentSerde } -// Container for the expiration for the lifecycle of the object. For more -// information see, Managing your storage lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) -// in the Amazon S3 User Guide. +// Container for the expiration for the lifecycle of the object. +// +// For more information see, [Managing your storage lifecycle] in the Amazon S3 User Guide. +// +// [Managing your storage lifecycle]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html type LifecycleExpiration struct { // Indicates at what date the object is to be moved or deleted. The date value @@ -1709,9 +2170,11 @@ type LifecycleExpiration struct { noSmithyDocumentSerde } -// A lifecycle rule for individual objects in an Amazon S3 bucket. For more -// information see, Managing your storage lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) -// in the Amazon S3 User Guide. +// A lifecycle rule for individual objects in an Amazon S3 bucket. +// +// For more information see, [Managing your storage lifecycle] in the Amazon S3 User Guide. +// +// [Managing your storage lifecycle]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html type LifecycleRule struct { // If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is @@ -1722,9 +2185,9 @@ type LifecycleRule struct { // Specifies the days since the initiation of an incomplete multipart upload that // Amazon S3 will wait before permanently removing all parts of the upload. For - // more information, see Aborting Incomplete Multipart Uploads Using a Bucket - // Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) - // in the Amazon S3 User Guide. + // more information, see [Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration]in the Amazon S3 User Guide. + // + // [Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload // Specifies the expiration for the lifecycle of the object in the form of date, @@ -1746,7 +2209,7 @@ type LifecycleRule struct { // the object's lifetime. NoncurrentVersionExpiration *NoncurrentVersionExpiration - // Specifies the transition rule for the lifecycle rule that describes when + // Specifies the transition rule for the lifecycle rule that describes when // noncurrent objects transition to a specific storage class. If your bucket is // versioning-enabled (or versioning is suspended), you can set this action to // request that Amazon S3 transition noncurrent object versions to a specific @@ -1754,10 +2217,12 @@ type LifecycleRule struct { NoncurrentVersionTransitions []NoncurrentVersionTransition // Prefix identifying one or more objects to which the rule applies. This is no - // longer used; use Filter instead. Replacement must be made for object keys - // containing special characters (such as carriage returns) when using XML - // requests. For more information, see XML related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) - // . + // longer used; use Filter instead. + // + // Replacement must be made for object keys containing special characters (such as + // carriage returns) when using XML requests. For more information, see [XML related object key constraints]. + // + // [XML related object key constraints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints // // Deprecated: This member has been deprecated. Prefix *string @@ -1834,11 +2299,12 @@ type LifecycleRuleFilterMemberObjectSizeLessThan struct { func (*LifecycleRuleFilterMemberObjectSizeLessThan) isLifecycleRuleFilter() {} -// Prefix identifying one or more objects to which the rule applies. Replacement -// must be made for object keys containing special characters (such as carriage -// returns) when using XML requests. For more information, see XML related object -// key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) -// . +// Prefix identifying one or more objects to which the rule applies. +// +// Replacement must be made for object keys containing special characters (such as +// carriage returns) when using XML requests. For more information, see [XML related object key constraints]. +// +// [XML related object key constraints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints type LifecycleRuleFilterMemberPrefix struct { Value string @@ -1856,16 +2322,21 @@ type LifecycleRuleFilterMemberTag struct { func (*LifecycleRuleFilterMemberTag) isLifecycleRuleFilter() {} -// Specifies the location where the bucket will be created. For directory buckets, -// the location type is Availability Zone. For more information about directory -// buckets, see Directory buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html) -// in the Amazon S3 User Guide. This functionality is only supported by directory -// buckets. +// Specifies the location where the bucket will be created. +// +// For directory buckets, the location type is Availability Zone. For more +// information about directory buckets, see [Directory buckets]in the Amazon S3 User Guide. +// +// This functionality is only supported by directory buckets. +// +// [Directory buckets]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html type LocationInfo struct { - // The name of the location where the bucket will be created. For directory - // buckets, the name of the location is the AZ ID of the Availability Zone where - // the bucket will be created. An example AZ ID value is usw2-az1 . + // The name of the location where the bucket will be created. + // + // For directory buckets, the name of the location is the AZ ID of the + // Availability Zone where the bucket will be created. An example AZ ID value is + // usw2-az1 . Name *string // The type of location where the bucket will be created. @@ -1875,8 +2346,10 @@ type LocationInfo struct { } // Describes where logs are stored and the prefix that Amazon S3 assigns to all -// log object keys for a bucket. For more information, see PUT Bucket logging (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) -// in the Amazon S3 API Reference. +// log object keys for a bucket. For more information, see [PUT Bucket logging]in the Amazon S3 API +// Reference. +// +// [PUT Bucket logging]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html type LoggingEnabled struct { // Specifies the bucket where you want Amazon S3 to store server access logs. You @@ -1896,10 +2369,12 @@ type LoggingEnabled struct { // This member is required. TargetPrefix *string - // Container for granting information. Buckets that use the bucket owner enforced - // setting for Object Ownership don't support target grants. For more information, - // see Permissions for server access log delivery (https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general) - // in the Amazon S3 User Guide. + // Container for granting information. + // + // Buckets that use the bucket owner enforced setting for Object Ownership don't + // support target grants. For more information, see [Permissions for server access log delivery]in the Amazon S3 User Guide. + // + // [Permissions for server access log delivery]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general TargetGrants []TargetGrant // Amazon S3 key format for log objects. @@ -1920,16 +2395,17 @@ type MetadataEntry struct { noSmithyDocumentSerde } -// A container specifying replication metrics-related settings enabling +// A container specifying replication metrics-related settings enabling +// // replication metrics and events. type Metrics struct { - // Specifies whether the replication metrics are enabled. + // Specifies whether the replication metrics are enabled. // // This member is required. Status MetricsStatus - // A container specifying the time threshold for emitting the + // A container specifying the time threshold for emitting the // s3:Replication:OperationMissedThreshold event. EventThreshold *ReplicationTimeValue @@ -1957,8 +2433,9 @@ type MetricsAndOperator struct { // by the metrics configuration ID) from an Amazon S3 bucket. If you're updating an // existing metrics configuration, note that this is a full replacement of the // existing metrics configuration. If you don't include the elements you want to -// keep, they are erased. For more information, see PutBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html) -// . +// keep, they are erased. For more information, see [PutBucketMetricsConfiguration]. +// +// [PutBucketMetricsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html type MetricsConfiguration struct { // The ID used to identify the metrics configuration. The ID has a 64 character @@ -1978,8 +2455,7 @@ type MetricsConfiguration struct { // Specifies a metrics configuration filter. The metrics configuration only // includes objects that meet the filter's criteria. A filter must be a prefix, an // object tag, an access point ARN, or a conjunction (MetricsAndOperator). For more -// information, see PutBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) -// . +// information, see [PutBucketMetricsConfiguration]. // // The following types satisfy this interface: // @@ -1987,6 +2463,8 @@ type MetricsConfiguration struct { // MetricsFilterMemberAnd // MetricsFilterMemberPrefix // MetricsFilterMemberTag +// +// [PutBucketMetricsConfiguration]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html type MetricsFilter interface { isMetricsFilter() } @@ -2045,13 +2523,15 @@ type MultipartUpload struct { Key *string // Specifies the owner of the object that is part of the multipart upload. - // Directory buckets - The bucket owner is returned as the object owner for all the - // objects. + // + // Directory buckets - The bucket owner is returned as the object owner for all + // the objects. Owner *Owner - // The class of storage used to store the object. Directory buckets - Only the S3 - // Express One Zone storage class is supported by directory buckets to store - // objects. + // The class of storage used to store the object. + // + // Directory buckets - Only the S3 Express One Zone storage class is supported by + // directory buckets to store objects. StorageClass StorageClass // Upload ID that identifies the multipart upload. @@ -2070,15 +2550,17 @@ type NoncurrentVersionExpiration struct { // Specifies how many newer noncurrent versions must exist before Amazon S3 can // perform the associated action on a given version. If there are this many more // recent noncurrent versions, Amazon S3 will take the associated action. For more - // information about noncurrent versions, see Lifecycle configuration elements (https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) - // in the Amazon S3 User Guide. + // information about noncurrent versions, see [Lifecycle configuration elements]in the Amazon S3 User Guide. + // + // [Lifecycle configuration elements]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html NewerNoncurrentVersions *int32 // Specifies the number of days an object is noncurrent before Amazon S3 can // perform the associated action. The value must be a non-zero positive integer. - // For information about the noncurrent days calculations, see How Amazon S3 - // Calculates When an Object Became Noncurrent (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) - // in the Amazon S3 User Guide. + // For information about the noncurrent days calculations, see [How Amazon S3 Calculates When an Object Became Noncurrent]in the Amazon S3 + // User Guide. + // + // [How Amazon S3 Calculates When an Object Became Noncurrent]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations NoncurrentDays *int32 noSmithyDocumentSerde @@ -2096,15 +2578,16 @@ type NoncurrentVersionTransition struct { // Specifies how many newer noncurrent versions must exist before Amazon S3 can // perform the associated action on a given version. If there are this many more // recent noncurrent versions, Amazon S3 will take the associated action. For more - // information about noncurrent versions, see Lifecycle configuration elements (https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) - // in the Amazon S3 User Guide. + // information about noncurrent versions, see [Lifecycle configuration elements]in the Amazon S3 User Guide. + // + // [Lifecycle configuration elements]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html NewerNoncurrentVersions *int32 // Specifies the number of days an object is noncurrent before Amazon S3 can // perform the associated action. For information about the noncurrent days - // calculations, see How Amazon S3 Calculates How Long an Object Has Been - // Noncurrent (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) - // in the Amazon S3 User Guide. + // calculations, see [How Amazon S3 Calculates How Long an Object Has Been Noncurrent]in the Amazon S3 User Guide. + // + // [How Amazon S3 Calculates How Long an Object Has Been Noncurrent]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations NoncurrentDays *int32 // The class of storage used to store the object. @@ -2136,8 +2619,9 @@ type NotificationConfiguration struct { } // Specifies object key name filtering rules. For information about key name -// filtering, see Configuring event notifications using object key name filtering (https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html) -// in the Amazon S3 User Guide. +// filtering, see [Configuring event notifications using object key name filtering]in the Amazon S3 User Guide. +// +// [Configuring event notifications using object key name filtering]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html type NotificationConfigurationFilter struct { // A container for object key name prefix and suffix filtering rules. @@ -2156,17 +2640,21 @@ type Object struct { // contents of an object, not its metadata. The ETag may or may not be an MD5 // digest of the object data. Whether or not it is depends on how the object was // created and how it is encrypted as described below: + // // - Objects created by the PUT Object, POST Object, or Copy operation, or // through the Amazon Web Services Management Console, and are encrypted by SSE-S3 // or plaintext, have ETags that are an MD5 digest of their object data. + // // - Objects created by the PUT Object, POST Object, or Copy operation, or // through the Amazon Web Services Management Console, and are encrypted by SSE-C // or SSE-KMS, have ETags that are not an MD5 digest of their object data. + // // - If an object is created by either the Multipart Upload or Part Copy // operation, the ETag is not an MD5 digest, regardless of the method of // encryption. If an object is larger than 16 MB, the Amazon Web Services // Management Console will upload or copy that object as a Multipart Upload, and // therefore the ETag will not be an MD5 digest. + // // Directory buckets - MD5 is not supported by directory buckets. ETag *string @@ -2177,25 +2665,29 @@ type Object struct { // Creation date of the object. LastModified *time.Time - // The owner of the object Directory buckets - The bucket owner is returned as the - // object owner. + // The owner of the object + // + // Directory buckets - The bucket owner is returned as the object owner. Owner *Owner // Specifies the restoration status of an object. Objects in certain storage // classes must be restored before they can be retrieved. For more information - // about these storage classes and how to work with archived objects, see Working - // with archived objects (https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. Only the S3 Express One Zone storage class is supported by directory - // buckets to store objects. + // about these storage classes and how to work with archived objects, see [Working with archived objects]in the + // Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. Only the S3 Express + // One Zone storage class is supported by directory buckets to store objects. + // + // [Working with archived objects]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html RestoreStatus *RestoreStatus // Size in bytes of the object Size *int64 - // The class of storage used to store the object. Directory buckets - Only the S3 - // Express One Zone storage class is supported by directory buckets to store - // objects. + // The class of storage used to store the object. + // + // Directory buckets - Only the S3 Express One Zone storage class is supported by + // directory buckets to store objects. StorageClass ObjectStorageClass noSmithyDocumentSerde @@ -2204,16 +2696,19 @@ type Object struct { // Object Identifier is unique value to identify objects. type ObjectIdentifier struct { - // Key name of the object. Replacement must be made for object keys containing - // special characters (such as carriage returns) when using XML requests. For more - // information, see XML related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) - // . + // Key name of the object. + // + // Replacement must be made for object keys containing special characters (such as + // carriage returns) when using XML requests. For more information, see [XML related object key constraints]. + // + // [XML related object key constraints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints // // This member is required. Key *string - // Version ID for the specific version of the object to delete. This functionality - // is not supported for directory buckets. + // Version ID for the specific version of the object to delete. + // + // This functionality is not supported for directory buckets. VersionId *string noSmithyDocumentSerde @@ -2273,9 +2768,10 @@ type ObjectPart struct { // This header can be used as a data integrity check to verify that the data // received is the same data that was originally sent. This header specifies the - // base64-encoded, 32-bit CRC32 checksum of the object. For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // base64-encoded, 32-bit CRC32 checksum of the object. For more information, see [Checking object integrity] // in the Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumCRC32 *string // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be @@ -2283,8 +2779,10 @@ type ObjectPart struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumCRC32C *string // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be @@ -2292,8 +2790,10 @@ type ObjectPart struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumSHA1 *string // The base64-encoded, 256-bit SHA-256 digest of the object. This will only be @@ -2301,8 +2801,10 @@ type ObjectPart struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumSHA256 *string // The part number identifying the part. This value is a positive integer between @@ -2339,9 +2841,10 @@ type ObjectVersion struct { // Specifies the restoration status of an object. Objects in certain storage // classes must be restored before they can be retrieved. For more information - // about these storage classes and how to work with archived objects, see Working - // with archived objects (https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html) - // in the Amazon S3 User Guide. + // about these storage classes and how to work with archived objects, see [Working with archived objects]in the + // Amazon S3 User Guide. + // + // [Working with archived objects]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html RestoreStatus *RestoreStatus // Size in bytes of the object. @@ -2382,14 +2885,23 @@ type Owner struct { // Container for the display name of the owner. This value is only supported in // the following Amazon Web Services Regions: + // // - US East (N. Virginia) + // // - US West (N. California) + // // - US West (Oregon) + // // - Asia Pacific (Singapore) + // // - Asia Pacific (Sydney) + // // - Asia Pacific (Tokyo) + // // - Europe (Ireland) + // // - South America (São Paulo) + // // This functionality is not supported for directory buckets. DisplayName *string @@ -2414,23 +2926,30 @@ type OwnershipControls struct { type OwnershipControlsRule struct { // The container element for object ownership for a bucket's ownership controls. + // // BucketOwnerPreferred - Objects uploaded to the bucket change ownership to the // bucket owner if the objects are uploaded with the bucket-owner-full-control - // canned ACL. ObjectWriter - The uploading account will own the object if the - // object is uploaded with the bucket-owner-full-control canned ACL. + // canned ACL. + // + // ObjectWriter - The uploading account will own the object if the object is + // uploaded with the bucket-owner-full-control canned ACL. + // // BucketOwnerEnforced - Access control lists (ACLs) are disabled and no longer // affect permissions. The bucket owner automatically owns and has full control // over every object in the bucket. The bucket only accepts PUT requests that don't // specify an ACL or specify bucket owner full control ACLs (such as the predefined // bucket-owner-full-control canned ACL or a custom ACL in XML format that grants - // the same permissions). By default, ObjectOwnership is set to BucketOwnerEnforced - // and ACLs are disabled. We recommend keeping ACLs disabled, except in uncommon - // use cases where you must control access for each object individually. For more - // information about S3 Object Ownership, see Controlling ownership of objects and - // disabling ACLs for your bucket (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) - // in the Amazon S3 User Guide. This functionality is not supported for directory - // buckets. Directory buckets use the bucket owner enforced setting for S3 Object - // Ownership. + // the same permissions). + // + // By default, ObjectOwnership is set to BucketOwnerEnforced and ACLs are + // disabled. We recommend keeping ACLs disabled, except in uncommon use cases where + // you must control access for each object individually. For more information about + // S3 Object Ownership, see [Controlling ownership of objects and disabling ACLs for your bucket]in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. Directory buckets + // use the bucket owner enforced setting for S3 Object Ownership. + // + // [Controlling ownership of objects and disabling ACLs for your bucket]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html // // This member is required. ObjectOwnership ObjectOwnership @@ -2448,9 +2967,10 @@ type Part struct { // This header can be used as a data integrity check to verify that the data // received is the same data that was originally sent. This header specifies the - // base64-encoded, 32-bit CRC32 checksum of the object. For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // base64-encoded, 32-bit CRC32 checksum of the object. For more information, see [Checking object integrity] // in the Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumCRC32 *string // The base64-encoded, 32-bit CRC32C checksum of the object. This will only be @@ -2458,8 +2978,10 @@ type Part struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumCRC32C *string // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be @@ -2467,15 +2989,18 @@ type Part struct { // object that was uploaded using multipart uploads, this value may not be a direct // checksum value of the full object. Instead, it's a calculation based on the // checksum values of each individual part. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) - // in the Amazon S3 User Guide. + // checksums are calculated with multipart uploads, see [Checking object integrity]in the Amazon S3 User + // Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums ChecksumSHA1 *string // This header can be used as a data integrity check to verify that the data // received is the same data that was originally sent. This header specifies the - // base64-encoded, 256-bit SHA-256 digest of the object. For more information, see - // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // base64-encoded, 256-bit SHA-256 digest of the object. For more information, see [Checking object integrity] // in the Amazon S3 User Guide. + // + // [Checking object integrity]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html ChecksumSHA256 *string // Entity tag returned when the part was uploaded. @@ -2495,7 +3020,9 @@ type Part struct { } // Amazon S3 keys for log objects are partitioned in the following format: -// [DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString] +// +// [DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString] +// // PartitionedPrefix defaults to EventTime delivery when server access logs are // delivered. type PartitionedPrefix struct { @@ -2543,41 +3070,48 @@ type ProgressEvent struct { // The PublicAccessBlock configuration that you want to apply to this Amazon S3 // bucket. You can enable the configuration options in any combination. For more -// information about when Amazon S3 considers a bucket or object public, see The -// Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) -// in the Amazon S3 User Guide. +// information about when Amazon S3 considers a bucket or object public, see [The Meaning of "Public"]in +// the Amazon S3 User Guide. +// +// [The Meaning of "Public"]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status type PublicAccessBlockConfiguration struct { // Specifies whether Amazon S3 should block public access control lists (ACLs) for // this bucket and objects in this bucket. Setting this element to TRUE causes the // following behavior: - // - PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is - // public. + // + // - PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public. + // // - PUT Object calls fail if the request includes a public ACL. + // // - PUT Bucket calls fail if the request includes a public ACL. + // // Enabling this setting doesn't affect existing policies or ACLs. BlockPublicAcls *bool // Specifies whether Amazon S3 should block public bucket policies for this // bucket. Setting this element to TRUE causes Amazon S3 to reject calls to PUT - // Bucket policy if the specified bucket policy allows public access. Enabling this - // setting doesn't affect existing bucket policies. + // Bucket policy if the specified bucket policy allows public access. + // + // Enabling this setting doesn't affect existing bucket policies. BlockPublicPolicy *bool // Specifies whether Amazon S3 should ignore public ACLs for this bucket and // objects in this bucket. Setting this element to TRUE causes Amazon S3 to ignore - // all public ACLs on this bucket and objects in this bucket. Enabling this setting - // doesn't affect the persistence of any existing ACLs and doesn't prevent new - // public ACLs from being set. + // all public ACLs on this bucket and objects in this bucket. + // + // Enabling this setting doesn't affect the persistence of any existing ACLs and + // doesn't prevent new public ACLs from being set. IgnorePublicAcls *bool // Specifies whether Amazon S3 should restrict public bucket policies for this // bucket. Setting this element to TRUE restricts access to this bucket to only // Amazon Web Service principals and authorized users within this account if the - // bucket has a public policy. Enabling this setting doesn't affect previously - // stored bucket policies, except that public and cross-account access within any - // public bucket policy, including non-public delegation to specific accounts, is - // blocked. + // bucket has a public policy. + // + // Enabling this setting doesn't affect previously stored bucket policies, except + // that public and cross-account access within any public bucket policy, including + // non-public delegation to specific accounts, is blocked. RestrictPublicBuckets *bool noSmithyDocumentSerde @@ -2599,8 +3133,9 @@ type QueueConfiguration struct { QueueArn *string // Specifies object key name filtering rules. For information about key name - // filtering, see Configuring event notifications using object key name filtering (https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html) - // in the Amazon S3 User Guide. + // filtering, see [Configuring event notifications using object key name filtering]in the Amazon S3 User Guide. + // + // [Configuring event notifications using object key name filtering]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html Filter *NotificationConfigurationFilter // An optional unique identifier for configurations in a notification @@ -2639,18 +3174,22 @@ type Redirect struct { // documents/ , you can set a condition block with KeyPrefixEquals set to docs/ // and in the Redirect set ReplaceKeyPrefixWith to /documents . Not required if one // of the siblings is present. Can be present only if ReplaceKeyWith is not - // provided. Replacement must be made for object keys containing special characters - // (such as carriage returns) when using XML requests. For more information, see - // XML related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) - // . + // provided. + // + // Replacement must be made for object keys containing special characters (such as + // carriage returns) when using XML requests. For more information, see [XML related object key constraints]. + // + // [XML related object key constraints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints ReplaceKeyPrefixWith *string // The specific object key to use in the redirect request. For example, redirect // request to error.html . Not required if one of the siblings is present. Can be - // present only if ReplaceKeyPrefixWith is not provided. Replacement must be made - // for object keys containing special characters (such as carriage returns) when - // using XML requests. For more information, see XML related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) - // . + // present only if ReplaceKeyPrefixWith is not provided. + // + // Replacement must be made for object keys containing special characters (such as + // carriage returns) when using XML requests. For more information, see [XML related object key constraints]. + // + // [XML related object key constraints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints ReplaceKeyWith *string noSmithyDocumentSerde @@ -2676,9 +3215,11 @@ type RedirectAllRequestsTo struct { // Amazon S3 doesn't replicate replica modifications by default. In the latest // version of replication configuration (when Filter is specified), you can // specify this element and set the status to Enabled to replicate modifications -// on replicas. If you don't specify the Filter element, Amazon S3 assumes that -// the replication configuration is the earlier version, V1. In the earlier -// version, this element is not allowed. +// on replicas. +// +// If you don't specify the Filter element, Amazon S3 assumes that the replication +// configuration is the earlier version, V1. In the earlier version, this element +// is not allowed. type ReplicaModifications struct { // Specifies whether Amazon S3 replicates modifications on replicas. @@ -2694,9 +3235,10 @@ type ReplicaModifications struct { type ReplicationConfiguration struct { // The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role - // that Amazon S3 assumes when replicating objects. For more information, see How - // to Set Up Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-how-setup.html) - // in the Amazon S3 User Guide. + // that Amazon S3 assumes when replicating objects. For more information, see [How to Set Up Replication]in + // the Amazon S3 User Guide. + // + // [How to Set Up Replication]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-how-setup.html // // This member is required. Role *string @@ -2729,18 +3271,21 @@ type ReplicationRule struct { // DeleteMarkerReplication element. If your Filter includes a Tag element, the // DeleteMarkerReplication Status must be set to Disabled, because Amazon S3 does // not support replicating delete markers for tag-based rules. For an example - // configuration, see Basic Rule Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config) - // . For more information about delete marker replication, see Basic Rule - // Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html) - // . If you are using an earlier version of the replication configuration, Amazon - // S3 handles replication of delete markers differently. For more information, see - // Backward Compatibility (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations) - // . + // configuration, see [Basic Rule Configuration]. + // + // For more information about delete marker replication, see [Basic Rule Configuration]. + // + // If you are using an earlier version of the replication configuration, Amazon S3 + // handles replication of delete markers differently. For more information, see [Backward Compatibility]. + // + // [Basic Rule Configuration]: https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html + // [Backward Compatibility]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations DeleteMarkerReplication *DeleteMarkerReplication // Optional configuration to replicate existing source bucket objects. For more - // information, see Replicating Existing Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-what-is-isnot-replicated.html#existing-object-replication) - // in the Amazon S3 User Guide. + // information, see [Replicating Existing Objects]in the Amazon S3 User Guide. + // + // [Replicating Existing Objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-what-is-isnot-replicated.html#existing-object-replication ExistingObjectReplication *ExistingObjectReplication // A filter that identifies the subset of objects to which the replication rule @@ -2753,10 +3298,12 @@ type ReplicationRule struct { // An object key name prefix that identifies the object or objects to which the // rule applies. The maximum prefix length is 1,024 characters. To include all - // objects in a bucket, specify an empty string. Replacement must be made for - // object keys containing special characters (such as carriage returns) when using - // XML requests. For more information, see XML related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) - // . + // objects in a bucket, specify an empty string. + // + // Replacement must be made for object keys containing special characters (such as + // carriage returns) when using XML requests. For more information, see [XML related object key constraints]. + // + // [XML related object key constraints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints // // Deprecated: This member has been deprecated. Prefix *string @@ -2766,8 +3313,10 @@ type ReplicationRule struct { // according to all replication rules. However, if there are two or more rules with // the same destination bucket, then objects will be replicated according to the // rule with the highest priority. The higher the number, the higher the priority. - // For more information, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) - // in the Amazon S3 User Guide. + // + // For more information, see [Replication] in the Amazon S3 User Guide. + // + // [Replication]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html Priority *int32 // A container that describes additional filters for identifying the source @@ -2782,9 +3331,13 @@ type ReplicationRule struct { // A container for specifying rule filters. The filters determine the subset of // objects to which the rule applies. This element is required only if you specify -// more than one filter. For example: +// more than one filter. +// +// For example: +// // - If you specify both a Prefix and a Tag filter, wrap these filters in an And // tag. +// // - If you specify a filter based on multiple tags, wrap the Tag elements in an // And tag. type ReplicationRuleAndOperator struct { @@ -2815,8 +3368,10 @@ type ReplicationRuleFilter interface { // A container for specifying rule filters. The filters determine the subset of // objects to which the rule applies. This element is required only if you specify // more than one filter. For example: +// // - If you specify both a Prefix and a Tag filter, wrap these filters in an And // tag. +// // - If you specify a filter based on multiple tags, wrap the Tag elements in an // And tag. type ReplicationRuleFilterMemberAnd struct { @@ -2828,10 +3383,12 @@ type ReplicationRuleFilterMemberAnd struct { func (*ReplicationRuleFilterMemberAnd) isReplicationRuleFilter() {} // An object key name prefix that identifies the subset of objects to which the -// rule applies. Replacement must be made for object keys containing special -// characters (such as carriage returns) when using XML requests. For more -// information, see XML related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) -// . +// rule applies. +// +// Replacement must be made for object keys containing special characters (such as +// carriage returns) when using XML requests. For more information, see [XML related object key constraints]. +// +// [XML related object key constraints]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints type ReplicationRuleFilterMemberPrefix struct { Value string @@ -2840,8 +3397,9 @@ type ReplicationRuleFilterMemberPrefix struct { func (*ReplicationRuleFilterMemberPrefix) isReplicationRuleFilter() {} -// A container for specifying a tag key and value. The rule applies only to -// objects that have the tag in their tag set. +// A container for specifying a tag key and value. +// +// The rule applies only to objects that have the tag in their tag set. type ReplicationRuleFilterMemberTag struct { Value Tag @@ -2850,19 +3408,20 @@ type ReplicationRuleFilterMemberTag struct { func (*ReplicationRuleFilterMemberTag) isReplicationRuleFilter() {} -// A container specifying S3 Replication Time Control (S3 RTC) related +// A container specifying S3 Replication Time Control (S3 RTC) related +// // information, including whether S3 RTC is enabled and the time when all objects // and operations on objects must be replicated. Must be specified together with a // Metrics block. type ReplicationTime struct { - // Specifies whether the replication time is enabled. + // Specifies whether the replication time is enabled. // // This member is required. Status ReplicationTimeStatus - // A container specifying the time by which replication should be complete for all - // objects and operations on objects. + // A container specifying the time by which replication should be complete for + // all objects and operations on objects. // // This member is required. Time *ReplicationTimeValue @@ -2870,11 +3429,14 @@ type ReplicationTime struct { noSmithyDocumentSerde } -// A container specifying the time value for S3 Replication Time Control (S3 RTC) +// A container specifying the time value for S3 Replication Time Control (S3 RTC) +// // and replication metrics EventThreshold . type ReplicationTimeValue struct { - // Contains an integer specifying time in minutes. Valid value: 15 + // Contains an integer specifying time in minutes. + // + // Valid value: 15 Minutes *int32 noSmithyDocumentSerde @@ -2905,8 +3467,10 @@ type RequestProgress struct { type RestoreRequest struct { // Lifetime of the active copy in days. Do not use with restores that specify - // OutputLocation . The Days element is required for regular restores, and must not - // be provided for select requests. + // OutputLocation . + // + // The Days element is required for regular restores, and must not be provided for + // select requests. Days *int32 // The optional description for the job. @@ -2933,34 +3497,43 @@ type RestoreRequest struct { // Specifies the restoration status of an object. Objects in certain storage // classes must be restored before they can be retrieved. For more information -// about these storage classes and how to work with archived objects, see Working -// with archived objects (https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html) -// in the Amazon S3 User Guide. This functionality is not supported for directory -// buckets. Only the S3 Express One Zone storage class is supported by directory -// buckets to store objects. +// about these storage classes and how to work with archived objects, see [Working with archived objects]in the +// Amazon S3 User Guide. +// +// This functionality is not supported for directory buckets. Only the S3 Express +// One Zone storage class is supported by directory buckets to store objects. +// +// [Working with archived objects]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html type RestoreStatus struct { // Specifies whether the object is currently being restored. If the object // restoration is in progress, the header returns the value TRUE . For example: - // x-amz-optional-object-attributes: IsRestoreInProgress="true" If the object - // restoration has completed, the header returns the value FALSE . For example: - // x-amz-optional-object-attributes: IsRestoreInProgress="false", - // RestoreExpiryDate="2012-12-21T00:00:00.000Z" If the object hasn't been restored, - // there is no header response. + // + // x-amz-optional-object-attributes: IsRestoreInProgress="true" + // + // If the object restoration has completed, the header returns the value FALSE . + // For example: + // + // x-amz-optional-object-attributes: IsRestoreInProgress="false", + // RestoreExpiryDate="2012-12-21T00:00:00.000Z" + // + // If the object hasn't been restored, there is no header response. IsRestoreInProgress *bool // Indicates when the restored copy will expire. This value is populated only if // the object has already been restored. For example: - // x-amz-optional-object-attributes: IsRestoreInProgress="false", - // RestoreExpiryDate="2012-12-21T00:00:00.000Z" + // + // x-amz-optional-object-attributes: IsRestoreInProgress="false", + // RestoreExpiryDate="2012-12-21T00:00:00.000Z" RestoreExpiryDate *time.Time noSmithyDocumentSerde } // Specifies the redirect behavior and when a redirect is applied. For more -// information about routing rules, see Configuring advanced conditional redirects (https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html#advanced-conditional-redirects) -// in the Amazon S3 User Guide. +// information about routing rules, see [Configuring advanced conditional redirects]in the Amazon S3 User Guide. +// +// [Configuring advanced conditional redirects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html#advanced-conditional-redirects type RoutingRule struct { // Container for redirect information. You can redirect requests to another host, @@ -3135,8 +3708,9 @@ type SelectParameters struct { // at configuration, Amazon S3 automatically creates an Amazon Web Services KMS key // in your Amazon Web Services account the first time that you add an object // encrypted with SSE-KMS to a bucket. By default, Amazon S3 uses this KMS key for -// SSE-KMS. For more information, see PUT Bucket encryption (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html) -// in the Amazon S3 API Reference. +// SSE-KMS. For more information, see [PUT Bucket encryption]in the Amazon S3 API Reference. +// +// [PUT Bucket encryption]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html type ServerSideEncryptionByDefault struct { // Server-side encryption algorithm to use for the default encryption. @@ -3146,19 +3720,30 @@ type ServerSideEncryptionByDefault struct { // Amazon Web Services Key Management Service (KMS) customer Amazon Web Services // KMS key ID to use for the default encryption. This parameter is allowed if and - // only if SSEAlgorithm is set to aws:kms or aws:kms:dsse . You can specify the key - // ID, key alias, or the Amazon Resource Name (ARN) of the KMS key. + // only if SSEAlgorithm is set to aws:kms or aws:kms:dsse . + // + // You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the + // KMS key. + // // - Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // // - Key ARN: // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + // // - Key Alias: alias/alias-name + // // If you use a key ID, you can run into a LogDestination undeliverable error when - // creating a VPC flow log. If you are using encryption with cross-account or - // Amazon Web Services service operations you must use a fully qualified KMS key - // ARN. For more information, see Using encryption for cross-account operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy) - // . Amazon S3 only supports symmetric encryption KMS keys. For more information, - // see Asymmetric keys in Amazon Web Services KMS (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) - // in the Amazon Web Services Key Management Service Developer Guide. + // creating a VPC flow log. + // + // If you are using encryption with cross-account or Amazon Web Services service + // operations you must use a fully qualified KMS key ARN. For more information, see + // [Using encryption for cross-account operations]. + // + // Amazon S3 only supports symmetric encryption KMS keys. For more information, + // see [Asymmetric keys in Amazon Web Services KMS]in the Amazon Web Services Key Management Service Developer Guide. + // + // [Using encryption for cross-account operations]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy + // [Asymmetric keys in Amazon Web Services KMS]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html KMSMasterKeyID *string noSmithyDocumentSerde @@ -3187,17 +3772,20 @@ type ServerSideEncryptionRule struct { // Specifies whether Amazon S3 should use an S3 Bucket Key with server-side // encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects // are not affected. Setting the BucketKeyEnabled element to true causes Amazon S3 - // to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled. For more - // information, see Amazon S3 Bucket Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) - // in the Amazon S3 User Guide. + // to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled. + // + // For more information, see [Amazon S3 Bucket Keys] in the Amazon S3 User Guide. + // + // [Amazon S3 Bucket Keys]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html BucketKeyEnabled *bool noSmithyDocumentSerde } -// The established temporary security credentials of the session. Directory -// buckets - These session credentials are only supported for the authentication -// and authorization of Zonal endpoint APIs on directory buckets. +// The established temporary security credentials of the session. +// +// Directory buckets - These session credentials are only supported for the +// authentication and authorization of Zonal endpoint APIs on directory buckets. type SessionCredentials struct { // A unique identifier that's associated with a secret access key. The access key @@ -3233,7 +3821,9 @@ type SessionCredentials struct { } // To use simple format for S3 keys for log objects, set SimplePrefix to an empty -// object. [DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString] +// object. +// +// [DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString] type SimplePrefix struct { noSmithyDocumentSerde } @@ -3249,12 +3839,14 @@ type SourceSelectionCriteria struct { // Amazon S3 doesn't replicate replica modifications by default. In the latest // version of replication configuration (when Filter is specified), you can // specify this element and set the status to Enabled to replicate modifications - // on replicas. If you don't specify the Filter element, Amazon S3 assumes that - // the replication configuration is the earlier version, V1. In the earlier - // version, this element is not allowed + // on replicas. + // + // If you don't specify the Filter element, Amazon S3 assumes that the replication + // configuration is the earlier version, V1. In the earlier version, this element + // is not allowed ReplicaModifications *ReplicaModifications - // A container for filter information for the selection of Amazon S3 objects + // A container for filter information for the selection of Amazon S3 objects // encrypted with Amazon Web Services KMS. If you include SourceSelectionCriteria // in the replication configuration, this element is required. SseKmsEncryptedObjects *SseKmsEncryptedObjects @@ -3372,10 +3964,12 @@ type Tagging struct { noSmithyDocumentSerde } -// Container for granting information. Buckets that use the bucket owner enforced -// setting for Object Ownership don't support target grants. For more information, -// see Permissions server access log delivery (https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general) -// in the Amazon S3 User Guide. +// Container for granting information. +// +// Buckets that use the bucket owner enforced setting for Object Ownership don't +// support target grants. For more information, see [Permissions server access log delivery]in the Amazon S3 User Guide. +// +// [Permissions server access log delivery]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general type TargetGrant struct { // Container for the person being granted permissions. @@ -3406,9 +4000,10 @@ type TargetObjectKeyFormat struct { // without additional operational overhead. type Tiering struct { - // S3 Intelligent-Tiering access tier. See Storage class for automatically - // optimizing frequently and infrequently accessed objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) - // for a list of access tiers in the S3 Intelligent-Tiering storage class. + // S3 Intelligent-Tiering access tier. See [Storage class for automatically optimizing frequently and infrequently accessed objects] for a list of access tiers in the S3 + // Intelligent-Tiering storage class. + // + // [Storage class for automatically optimizing frequently and infrequently accessed objects]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access // // This member is required. AccessTier IntelligentTieringAccessTier @@ -3431,8 +4026,9 @@ type Tiering struct { type TopicConfiguration struct { // The Amazon S3 bucket event about which to send notifications. For more - // information, see Supported Event Types (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) - // in the Amazon S3 User Guide. + // information, see [Supported Event Types]in the Amazon S3 User Guide. + // + // [Supported Event Types]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html // // This member is required. Events []Event @@ -3444,8 +4040,9 @@ type TopicConfiguration struct { TopicArn *string // Specifies object key name filtering rules. For information about key name - // filtering, see Configuring event notifications using object key name filtering (https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html) - // in the Amazon S3 User Guide. + // filtering, see [Configuring event notifications using object key name filtering]in the Amazon S3 User Guide. + // + // [Configuring event notifications using object key name filtering]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-filtering.html Filter *NotificationConfigurationFilter // An optional unique identifier for configurations in a notification @@ -3456,9 +4053,10 @@ type TopicConfiguration struct { } // Specifies when an object transitions to a specified storage class. For more -// information about Amazon S3 lifecycle configuration rules, see Transitioning -// Objects Using Amazon S3 Lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html) -// in the Amazon S3 User Guide. +// information about Amazon S3 lifecycle configuration rules, see [Transitioning Objects Using Amazon S3 Lifecycle]in the Amazon S3 +// User Guide. +// +// [Transitioning Objects Using Amazon S3 Lifecycle]: https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html type Transition struct { // Indicates when objects are transitioned to the specified storage class. The @@ -3476,8 +4074,9 @@ type Transition struct { } // Describes the versioning state of an Amazon S3 bucket. For more information, -// see PUT Bucket versioning (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html) -// in the Amazon S3 API Reference. +// see [PUT Bucket versioning]in the Amazon S3 API Reference. +// +// [PUT Bucket versioning]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html type VersioningConfiguration struct { // Specifies whether MFA delete is enabled in the bucket versioning configuration. @@ -3500,8 +4099,9 @@ type WebsiteConfiguration struct { // The name of the index document for the website. IndexDocument *IndexDocument - // The redirect behavior for every request to this bucket's website endpoint. If - // you specify this property, you can't specify any other property. + // The redirect behavior for every request to this bucket's website endpoint. + // + // If you specify this property, you can't specify any other property. RedirectAllRequestsTo *RedirectAllRequestsTo // Rules that define when a redirect is applied and the redirect behavior. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/CHANGELOG.md index 4a3e25ac..cb6d9d59 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/CHANGELOG.md @@ -1,3 +1,23 @@ +# v1.20.10 (2024-06-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.20.9 (2024-05-23) + +* No change notes available for this release. + +# v1.20.8 (2024-05-16) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.20.7 (2024-05-15) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.20.6 (2024-05-08) + +* **Bug Fix**: GoDoc improvement + # v1.20.5 (2024-04-05) * No change notes available for this release. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_GetRoleCredentials.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_GetRoleCredentials.go index 4b21e8b0..44ad9ff1 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_GetRoleCredentials.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_GetRoleCredentials.go @@ -30,9 +30,10 @@ func (c *Client) GetRoleCredentials(ctx context.Context, params *GetRoleCredenti type GetRoleCredentialsInput struct { - // The token issued by the CreateToken API call. For more information, see - // CreateToken (https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html) - // in the IAM Identity Center OIDC API Reference Guide. + // The token issued by the CreateToken API call. For more information, see [CreateToken] in the + // IAM Identity Center OIDC API Reference Guide. + // + // [CreateToken]: https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html // // This member is required. AccessToken *string diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_ListAccountRoles.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_ListAccountRoles.go index e44da697..5861c9bb 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_ListAccountRoles.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_ListAccountRoles.go @@ -29,9 +29,10 @@ func (c *Client) ListAccountRoles(ctx context.Context, params *ListAccountRolesI type ListAccountRolesInput struct { - // The token issued by the CreateToken API call. For more information, see - // CreateToken (https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html) - // in the IAM Identity Center OIDC API Reference Guide. + // The token issued by the CreateToken API call. For more information, see [CreateToken] in the + // IAM Identity Center OIDC API Reference Guide. + // + // [CreateToken]: https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html // // This member is required. AccessToken *string diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_ListAccounts.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_ListAccounts.go index 2d7add06..7f2b2397 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_ListAccounts.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_ListAccounts.go @@ -12,9 +12,10 @@ import ( ) // Lists all AWS accounts assigned to the user. These AWS accounts are assigned by -// the administrator of the account. For more information, see Assign User Access (https://docs.aws.amazon.com/singlesignon/latest/userguide/useraccess.html#assignusers) -// in the IAM Identity Center User Guide. This operation returns a paginated -// response. +// the administrator of the account. For more information, see [Assign User Access]in the IAM Identity +// Center User Guide. This operation returns a paginated response. +// +// [Assign User Access]: https://docs.aws.amazon.com/singlesignon/latest/userguide/useraccess.html#assignusers func (c *Client) ListAccounts(ctx context.Context, params *ListAccountsInput, optFns ...func(*Options)) (*ListAccountsOutput, error) { if params == nil { params = &ListAccountsInput{} @@ -32,9 +33,10 @@ func (c *Client) ListAccounts(ctx context.Context, params *ListAccountsInput, op type ListAccountsInput struct { - // The token issued by the CreateToken API call. For more information, see - // CreateToken (https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html) - // in the IAM Identity Center OIDC API Reference Guide. + // The token issued by the CreateToken API call. For more information, see [CreateToken] in the + // IAM Identity Center OIDC API Reference Guide. + // + // [CreateToken]: https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html // // This member is required. AccessToken *string diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_Logout.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_Logout.go index 3ee682d1..65f582a8 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_Logout.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/api_op_Logout.go @@ -12,16 +12,20 @@ import ( // Removes the locally stored SSO tokens from the client-side cache and sends an // API call to the IAM Identity Center service to invalidate the corresponding -// server-side IAM Identity Center sign in session. If a user uses IAM Identity -// Center to access the AWS CLI, the user’s IAM Identity Center sign in session is -// used to obtain an IAM session, as specified in the corresponding IAM Identity -// Center permission set. More specifically, IAM Identity Center assumes an IAM -// role in the target account on behalf of the user, and the corresponding -// temporary AWS credentials are returned to the client. After user logout, any -// existing IAM role sessions that were created by using IAM Identity Center -// permission sets continue based on the duration configured in the permission set. -// For more information, see User authentications (https://docs.aws.amazon.com/singlesignon/latest/userguide/authconcept.html) -// in the IAM Identity Center User Guide. +// server-side IAM Identity Center sign in session. +// +// If a user uses IAM Identity Center to access the AWS CLI, the user’s IAM +// Identity Center sign in session is used to obtain an IAM session, as specified +// in the corresponding IAM Identity Center permission set. More specifically, IAM +// Identity Center assumes an IAM role in the target account on behalf of the user, +// and the corresponding temporary AWS credentials are returned to the client. +// +// After user logout, any existing IAM role sessions that were created by using +// IAM Identity Center permission sets continue based on the duration configured in +// the permission set. For more information, see [User authentications]in the IAM Identity Center User +// Guide. +// +// [User authentications]: https://docs.aws.amazon.com/singlesignon/latest/userguide/authconcept.html func (c *Client) Logout(ctx context.Context, params *LogoutInput, optFns ...func(*Options)) (*LogoutOutput, error) { if params == nil { params = &LogoutInput{} @@ -39,9 +43,10 @@ func (c *Client) Logout(ctx context.Context, params *LogoutInput, optFns ...func type LogoutInput struct { - // The token issued by the CreateToken API call. For more information, see - // CreateToken (https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html) - // in the IAM Identity Center OIDC API Reference Guide. + // The token issued by the CreateToken API call. For more information, see [CreateToken] in the + // IAM Identity Center OIDC API Reference Guide. + // + // [CreateToken]: https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html // // This member is required. AccessToken *string diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/deserializers.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/deserializers.go index 8bba205f..d6297fa6 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/deserializers.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/deserializers.go @@ -13,12 +13,22 @@ import ( smithyio "github.com/aws/smithy-go/io" "github.com/aws/smithy-go/middleware" "github.com/aws/smithy-go/ptr" + smithytime "github.com/aws/smithy-go/time" smithyhttp "github.com/aws/smithy-go/transport/http" "io" "io/ioutil" "strings" + "time" ) +func deserializeS3Expires(v string) (*time.Time, error) { + t, err := smithytime.ParseHTTPDate(v) + if err != nil { + return nil, nil + } + return &t, nil +} + type awsRestjson1_deserializeOpGetRoleCredentials struct { } diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/doc.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/doc.go index 59456d5d..7f6e429f 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/doc.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/doc.go @@ -6,16 +6,22 @@ // AWS IAM Identity Center (successor to AWS Single Sign-On) Portal is a web // service that makes it easy for you to assign user access to IAM Identity Center // resources such as the AWS access portal. Users can get AWS account applications -// and roles assigned to them and get federated into the application. Although AWS -// Single Sign-On was renamed, the sso and identitystore API namespaces will -// continue to retain their original name for backward compatibility purposes. For -// more information, see IAM Identity Center rename (https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed) -// . This reference guide describes the IAM Identity Center Portal operations that +// and roles assigned to them and get federated into the application. +// +// Although AWS Single Sign-On was renamed, the sso and identitystore API +// namespaces will continue to retain their original name for backward +// compatibility purposes. For more information, see [IAM Identity Center rename]. +// +// This reference guide describes the IAM Identity Center Portal operations that // you can call programatically and includes detailed information on data types and -// errors. AWS provides SDKs that consist of libraries and sample code for various +// errors. +// +// AWS provides SDKs that consist of libraries and sample code for various // programming languages and platforms, such as Java, Ruby, .Net, iOS, or Android. // The SDKs provide a convenient way to create programmatic access to IAM Identity // Center and other AWS services. For more information about the AWS SDKs, -// including how to download and install them, see Tools for Amazon Web Services (http://aws.amazon.com/tools/) -// . +// including how to download and install them, see [Tools for Amazon Web Services]. +// +// [Tools for Amazon Web Services]: http://aws.amazon.com/tools/ +// [IAM Identity Center rename]: https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed package sso diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/go_module_metadata.go index 44379817..5947e498 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/go_module_metadata.go @@ -3,4 +3,4 @@ package sso // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.20.5" +const goModuleVersion = "1.20.10" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/options.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/options.go index 5dee7e53..3561c443 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/options.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/options.go @@ -50,8 +50,10 @@ type Options struct { // Deprecated: Deprecated: EndpointResolver and WithEndpointResolver. Providing a // value for this field will likely prevent you from using any endpoint-related // service features released after the introduction of EndpointResolverV2 and - // BaseEndpoint. To migrate an EndpointResolver implementation that uses a custom - // endpoint, set the client option BaseEndpoint instead. + // BaseEndpoint. + // + // To migrate an EndpointResolver implementation that uses a custom endpoint, set + // the client option BaseEndpoint instead. EndpointResolver EndpointResolver // Resolves the endpoint used for a particular service operation. This should be @@ -70,17 +72,20 @@ type Options struct { // RetryMaxAttempts specifies the maximum number attempts an API client will call // an operation that fails with a retryable error. A value of 0 is ignored, and // will not be used to configure the API client created default retryer, or modify - // per operation call's retry max attempts. If specified in an operation call's - // functional options with a value that is different than the constructed client's - // Options, the Client's Retryer will be wrapped to use the operation's specific - // RetryMaxAttempts value. + // per operation call's retry max attempts. + // + // If specified in an operation call's functional options with a value that is + // different than the constructed client's Options, the Client's Retryer will be + // wrapped to use the operation's specific RetryMaxAttempts value. RetryMaxAttempts int // RetryMode specifies the retry mode the API client will be created with, if - // Retryer option is not also specified. When creating a new API Clients this - // member will only be used if the Retryer Options member is nil. This value will - // be ignored if Retryer is not nil. Currently does not support per operation call - // overrides, may in the future. + // Retryer option is not also specified. + // + // When creating a new API Clients this member will only be used if the Retryer + // Options member is nil. This value will be ignored if Retryer is not nil. + // + // Currently does not support per operation call overrides, may in the future. RetryMode aws.RetryMode // Retryer guides how HTTP requests should be retried in case of recoverable @@ -97,8 +102,9 @@ type Options struct { // The initial DefaultsMode used when the client options were constructed. If the // DefaultsMode was set to aws.DefaultsModeAuto this will store what the resolved - // value was at that point in time. Currently does not support per operation call - // overrides, may in the future. + // value was at that point in time. + // + // Currently does not support per operation call overrides, may in the future. resolvedDefaultsMode aws.DefaultsMode // The HTTP client to invoke API calls with. Defaults to client's default HTTP @@ -143,6 +149,7 @@ func WithAPIOptions(optFns ...func(*middleware.Stack) error) func(*Options) { // Deprecated: EndpointResolver and WithEndpointResolver. Providing a value for // this field will likely prevent you from using any endpoint-related service // features released after the introduction of EndpointResolverV2 and BaseEndpoint. +// // To migrate an EndpointResolver implementation that uses a custom endpoint, set // the client option BaseEndpoint instead. func WithEndpointResolver(v EndpointResolver) func(*Options) { diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/types/types.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/types/types.go index 8dc02296..07ac468e 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sso/types/types.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sso/types/types.go @@ -25,22 +25,24 @@ type AccountInfo struct { type RoleCredentials struct { // The identifier used for the temporary security credentials. For more - // information, see Using Temporary Security Credentials to Request Access to AWS - // Resources (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) - // in the AWS IAM User Guide. + // information, see [Using Temporary Security Credentials to Request Access to AWS Resources]in the AWS IAM User Guide. + // + // [Using Temporary Security Credentials to Request Access to AWS Resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html AccessKeyId *string // The date on which temporary security credentials expire. Expiration int64 - // The key that is used to sign the request. For more information, see Using - // Temporary Security Credentials to Request Access to AWS Resources (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) - // in the AWS IAM User Guide. + // The key that is used to sign the request. For more information, see [Using Temporary Security Credentials to Request Access to AWS Resources] in the AWS + // IAM User Guide. + // + // [Using Temporary Security Credentials to Request Access to AWS Resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html SecretAccessKey *string - // The token used for temporary credentials. For more information, see Using - // Temporary Security Credentials to Request Access to AWS Resources (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) - // in the AWS IAM User Guide. + // The token used for temporary credentials. For more information, see [Using Temporary Security Credentials to Request Access to AWS Resources] in the AWS + // IAM User Guide. + // + // [Using Temporary Security Credentials to Request Access to AWS Resources]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html SessionToken *string noSmithyDocumentSerde diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/CHANGELOG.md index 053f180b..a8a7f8fe 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/CHANGELOG.md @@ -1,3 +1,27 @@ +# v1.24.4 (2024-06-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.24.3 (2024-05-23) + +* No change notes available for this release. + +# v1.24.2 (2024-05-16) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.24.1 (2024-05-15) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.24.0 (2024-05-10) + +* **Feature**: Updated request parameters for PKCE support. + +# v1.23.5 (2024-05-08) + +* **Bug Fix**: GoDoc improvement + # v1.23.4 (2024-03-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_CreateToken.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_CreateToken.go index 63f1eeb1..393ab84b 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_CreateToken.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_CreateToken.go @@ -32,34 +32,43 @@ func (c *Client) CreateToken(ctx context.Context, params *CreateTokenInput, optF type CreateTokenInput struct { // The unique identifier string for the client or application. This value comes - // from the result of the RegisterClient API. + // from the result of the RegisterClientAPI. // // This member is required. ClientId *string // A secret string generated for the client. This value should come from the - // persisted result of the RegisterClient API. + // persisted result of the RegisterClientAPI. // // This member is required. ClientSecret *string // Supports the following OAuth grant types: Device Code and Refresh Token. // Specify either of the following values, depending on the grant type that you - // want: * Device Code - urn:ietf:params:oauth:grant-type:device_code * Refresh - // Token - refresh_token For information about how to obtain the device code, see - // the StartDeviceAuthorization topic. + // want: + // + // * Device Code - urn:ietf:params:oauth:grant-type:device_code + // + // * Refresh Token - refresh_token + // + // For information about how to obtain the device code, see the StartDeviceAuthorization topic. // // This member is required. GrantType *string // Used only when calling this API for the Authorization Code grant type. The // short-term code is used to identify this authorization request. This grant type - // is currently unsupported for the CreateToken API. + // is currently unsupported for the CreateTokenAPI. Code *string + // Used only when calling this API for the Authorization Code grant type. This + // value is generated by the client and presented to validate the original code + // challenge value the client passed at authorization time. + CodeVerifier *string + // Used only when calling this API for the Device Code grant type. This short-term // code is used to identify this authorization request. This comes from the result - // of the StartDeviceAuthorization API. + // of the StartDeviceAuthorizationAPI. DeviceCode *string // Used only when calling this API for the Authorization Code grant type. This @@ -69,16 +78,18 @@ type CreateTokenInput struct { // Used only when calling this API for the Refresh Token grant type. This token is // used to refresh short-term tokens, such as the access token, that might expire. + // // For more information about the features and limitations of the current IAM // Identity Center OIDC implementation, see Considerations for Using this Guide in - // the IAM Identity Center OIDC API Reference (https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/Welcome.html) - // . + // the [IAM Identity Center OIDC API Reference]. + // + // [IAM Identity Center OIDC API Reference]: https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/Welcome.html RefreshToken *string // The list of scopes for which authorization is requested. The access token that // is issued is limited to the scopes that are granted. If this value is not // specified, IAM Identity Center authorizes all scopes that are configured for the - // client during the call to RegisterClient . + // client during the call to RegisterClient. Scope []string noSmithyDocumentSerde @@ -86,7 +97,8 @@ type CreateTokenInput struct { type CreateTokenOutput struct { - // A bearer token to access AWS accounts and applications assigned to a user. + // A bearer token to access Amazon Web Services accounts and applications assigned + // to a user. AccessToken *string // Indicates the time in seconds when an access token will expire. @@ -94,18 +106,22 @@ type CreateTokenOutput struct { // The idToken is not implemented or supported. For more information about the // features and limitations of the current IAM Identity Center OIDC implementation, - // see Considerations for Using this Guide in the IAM Identity Center OIDC API - // Reference (https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/Welcome.html) - // . A JSON Web Token (JWT) that identifies who is associated with the issued - // access token. + // see Considerations for Using this Guide in the [IAM Identity Center OIDC API Reference]. + // + // A JSON Web Token (JWT) that identifies who is associated with the issued access + // token. + // + // [IAM Identity Center OIDC API Reference]: https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/Welcome.html IdToken *string // A token that, if present, can be used to refresh a previously issued access - // token that might have expired. For more information about the features and - // limitations of the current IAM Identity Center OIDC implementation, see - // Considerations for Using this Guide in the IAM Identity Center OIDC API - // Reference (https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/Welcome.html) - // . + // token that might have expired. + // + // For more information about the features and limitations of the current IAM + // Identity Center OIDC implementation, see Considerations for Using this Guide in + // the [IAM Identity Center OIDC API Reference]. + // + // [IAM Identity Center OIDC API Reference]: https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/Welcome.html RefreshToken *string // Used to notify the client that the returned token is an access token. The diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_CreateTokenWithIAM.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_CreateTokenWithIAM.go index 63409538..1d54f14d 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_CreateTokenWithIAM.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_CreateTokenWithIAM.go @@ -12,8 +12,8 @@ import ( // Creates and returns access and refresh tokens for clients and applications that // are authenticated using IAM entities. The access token can be used to fetch -// short-term credentials for the assigned AWS accounts or to access application -// APIs using bearer authentication. +// short-term credentials for the assigned Amazon Web Services accounts or to +// access application APIs using bearer authentication. func (c *Client) CreateTokenWithIAM(ctx context.Context, params *CreateTokenWithIAMInput, optFns ...func(*Options)) (*CreateTokenWithIAMOutput, error) { if params == nil { params = &CreateTokenWithIAMInput{} @@ -39,10 +39,15 @@ type CreateTokenWithIAMInput struct { // Supports the following OAuth grant types: Authorization Code, Refresh Token, // JWT Bearer, and Token Exchange. Specify one of the following values, depending - // on the grant type that you want: * Authorization Code - authorization_code * - // Refresh Token - refresh_token * JWT Bearer - - // urn:ietf:params:oauth:grant-type:jwt-bearer * Token Exchange - - // urn:ietf:params:oauth:grant-type:token-exchange + // on the grant type that you want: + // + // * Authorization Code - authorization_code + // + // * Refresh Token - refresh_token + // + // * JWT Bearer - urn:ietf:params:oauth:grant-type:jwt-bearer + // + // * Token Exchange - urn:ietf:params:oauth:grant-type:token-exchange // // This member is required. GrantType *string @@ -59,6 +64,11 @@ type CreateTokenWithIAMInput struct { // in the Authorization Code GrantOptions for the application. Code *string + // Used only when calling this API for the Authorization Code grant type. This + // value is generated by the client and presented to validate the original code + // challenge value the client passed at authorization time. + CodeVerifier *string + // Used only when calling this API for the Authorization Code grant type. This // value specifies the location of the client or application that has registered to // receive the authorization code. @@ -66,16 +76,21 @@ type CreateTokenWithIAMInput struct { // Used only when calling this API for the Refresh Token grant type. This token is // used to refresh short-term tokens, such as the access token, that might expire. + // // For more information about the features and limitations of the current IAM // Identity Center OIDC implementation, see Considerations for Using this Guide in - // the IAM Identity Center OIDC API Reference (https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/Welcome.html) - // . + // the [IAM Identity Center OIDC API Reference]. + // + // [IAM Identity Center OIDC API Reference]: https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/Welcome.html RefreshToken *string // Used only when calling this API for the Token Exchange grant type. This value // specifies the type of token that the requester can receive. The following values - // are supported: * Access Token - urn:ietf:params:oauth:token-type:access_token * - // Refresh Token - urn:ietf:params:oauth:token-type:refresh_token + // are supported: + // + // * Access Token - urn:ietf:params:oauth:token-type:access_token + // + // * Refresh Token - urn:ietf:params:oauth:token-type:refresh_token RequestedTokenType *string // The list of scopes for which authorization is requested. The access token that @@ -94,8 +109,9 @@ type CreateTokenWithIAMInput struct { // Used only when calling this API for the Token Exchange grant type. This value // specifies the type of token that is passed as the subject of the exchange. The - // following value is supported: * Access Token - - // urn:ietf:params:oauth:token-type:access_token + // following value is supported: + // + // * Access Token - urn:ietf:params:oauth:token-type:access_token SubjectTokenType *string noSmithyDocumentSerde @@ -103,7 +119,8 @@ type CreateTokenWithIAMInput struct { type CreateTokenWithIAMOutput struct { - // A bearer token to access AWS accounts and applications assigned to a user. + // A bearer token to access Amazon Web Services accounts and applications assigned + // to a user. AccessToken *string // Indicates the time in seconds when an access token will expire. @@ -114,17 +131,21 @@ type CreateTokenWithIAMOutput struct { IdToken *string // Indicates the type of tokens that are issued by IAM Identity Center. The - // following values are supported: * Access Token - - // urn:ietf:params:oauth:token-type:access_token * Refresh Token - - // urn:ietf:params:oauth:token-type:refresh_token + // following values are supported: + // + // * Access Token - urn:ietf:params:oauth:token-type:access_token + // + // * Refresh Token - urn:ietf:params:oauth:token-type:refresh_token IssuedTokenType *string // A token that, if present, can be used to refresh a previously issued access - // token that might have expired. For more information about the features and - // limitations of the current IAM Identity Center OIDC implementation, see - // Considerations for Using this Guide in the IAM Identity Center OIDC API - // Reference (https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/Welcome.html) - // . + // token that might have expired. + // + // For more information about the features and limitations of the current IAM + // Identity Center OIDC implementation, see Considerations for Using this Guide in + // the [IAM Identity Center OIDC API Reference]. + // + // [IAM Identity Center OIDC API Reference]: https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/Welcome.html RefreshToken *string // The list of scopes for which authorization is granted. The access token that is diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_RegisterClient.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_RegisterClient.go index 09f016ec..9daccf79 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_RegisterClient.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_RegisterClient.go @@ -41,6 +41,25 @@ type RegisterClientInput struct { // This member is required. ClientType *string + // This IAM Identity Center application ARN is used to define + // administrator-managed configuration for public client access to resources. At + // authorization, the scopes, grants, and redirect URI available to this client + // will be restricted by this application resource. + EntitledApplicationArn *string + + // The list of OAuth 2.0 grant types that are defined by the client. This list is + // used to restrict the token granting flows available to the client. + GrantTypes []string + + // The IAM Identity Center Issuer URL associated with an instance of IAM Identity + // Center. This value is needed for user access to resources through the client. + IssuerUrl *string + + // The list of redirect URI that are defined by the client. At completion of + // authorization, this list is used to restrict what locations the user agent can + // be redirected back to. + RedirectUris []string + // The list of scopes that are defined by the client. Upon authorization, this // list is used to restrict permissions when granting an access token. Scopes []string diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_StartDeviceAuthorization.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_StartDeviceAuthorization.go index c568805b..0b727e38 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_StartDeviceAuthorization.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/api_op_StartDeviceAuthorization.go @@ -30,22 +30,23 @@ func (c *Client) StartDeviceAuthorization(ctx context.Context, params *StartDevi type StartDeviceAuthorizationInput struct { // The unique identifier string for the client that is registered with IAM - // Identity Center. This value should come from the persisted result of the - // RegisterClient API operation. + // Identity Center. This value should come from the persisted result of the RegisterClientAPI + // operation. // // This member is required. ClientId *string // A secret string that is generated for the client. This value should come from - // the persisted result of the RegisterClient API operation. + // the persisted result of the RegisterClientAPI operation. // // This member is required. ClientSecret *string - // The URL for the Amazon Web Services access portal. For more information, see - // Using the Amazon Web Services access portal (https://docs.aws.amazon.com/singlesignon/latest/userguide/using-the-portal.html) + // The URL for the Amazon Web Services access portal. For more information, see [Using the Amazon Web Services access portal] // in the IAM Identity Center User Guide. // + // [Using the Amazon Web Services access portal]: https://docs.aws.amazon.com/singlesignon/latest/userguide/using-the-portal.html + // // This member is required. StartUrl *string diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/deserializers.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/deserializers.go index 76a1160e..05e8c6b7 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/deserializers.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/deserializers.go @@ -13,11 +13,21 @@ import ( smithyio "github.com/aws/smithy-go/io" "github.com/aws/smithy-go/middleware" "github.com/aws/smithy-go/ptr" + smithytime "github.com/aws/smithy-go/time" smithyhttp "github.com/aws/smithy-go/transport/http" "io" "strings" + "time" ) +func deserializeS3Expires(v string) (*time.Time, error) { + t, err := smithytime.ParseHTTPDate(v) + if err != nil { + return nil, nil + } + return &t, nil +} + type awsRestjson1_deserializeOpCreateToken struct { } @@ -581,12 +591,18 @@ func awsRestjson1_deserializeOpErrorRegisterClient(response *smithyhttp.Response case strings.EqualFold("InvalidClientMetadataException", errorCode): return awsRestjson1_deserializeErrorInvalidClientMetadataException(response, errorBody) + case strings.EqualFold("InvalidRedirectUriException", errorCode): + return awsRestjson1_deserializeErrorInvalidRedirectUriException(response, errorBody) + case strings.EqualFold("InvalidRequestException", errorCode): return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) case strings.EqualFold("InvalidScopeException", errorCode): return awsRestjson1_deserializeErrorInvalidScopeException(response, errorBody) + case strings.EqualFold("UnsupportedGrantTypeException", errorCode): + return awsRestjson1_deserializeErrorUnsupportedGrantTypeException(response, errorBody) + default: genericError := &smithy.GenericAPIError{ Code: errorCode, @@ -1158,6 +1174,42 @@ func awsRestjson1_deserializeErrorInvalidGrantException(response *smithyhttp.Res return output } +func awsRestjson1_deserializeErrorInvalidRedirectUriException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.InvalidRedirectUriException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + err := awsRestjson1_deserializeDocumentInvalidRedirectUriException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + + return output +} + func awsRestjson1_deserializeErrorInvalidRequestException(response *smithyhttp.Response, errorBody *bytes.Reader) error { output := &types.InvalidRequestException{} var buff [1024]byte @@ -1717,6 +1769,55 @@ func awsRestjson1_deserializeDocumentInvalidGrantException(v **types.InvalidGran return nil } +func awsRestjson1_deserializeDocumentInvalidRedirectUriException(v **types.InvalidRedirectUriException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.InvalidRedirectUriException + if *v == nil { + sv = &types.InvalidRedirectUriException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "error": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Error to be of type string, got %T instead", value) + } + sv.Error_ = ptr.String(jtv) + } + + case "error_description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value) + } + sv.Error_description = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentInvalidRequestException(v **types.InvalidRequestException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/doc.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/doc.go index 53cd4f55..1d258e56 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/doc.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/doc.go @@ -6,33 +6,41 @@ // IAM Identity Center OpenID Connect (OIDC) is a web service that enables a // client (such as CLI or a native application) to register with IAM Identity // Center. The service also enables the client to fetch the user’s access token -// upon successful authentication and authorization with IAM Identity Center. IAM -// Identity Center uses the sso and identitystore API namespaces. Considerations -// for Using This Guide Before you begin using this guide, we recommend that you -// first review the following important information about how the IAM Identity -// Center OIDC service works. +// upon successful authentication and authorization with IAM Identity Center. +// +// IAM Identity Center uses the sso and identitystore API namespaces. +// +// # Considerations for Using This Guide +// +// Before you begin using this guide, we recommend that you first review the +// following important information about how the IAM Identity Center OIDC service +// works. +// // - The IAM Identity Center OIDC service currently implements only the portions -// of the OAuth 2.0 Device Authorization Grant standard ( -// https://tools.ietf.org/html/rfc8628 (https://tools.ietf.org/html/rfc8628) ) -// that are necessary to enable single sign-on authentication with the CLI. +// of the OAuth 2.0 Device Authorization Grant standard ([https://tools.ietf.org/html/rfc8628] ) that are necessary to +// enable single sign-on authentication with the CLI. +// // - With older versions of the CLI, the service only emits OIDC access tokens, // so to obtain a new token, users must explicitly re-authenticate. To access the // OIDC flow that supports token refresh and doesn’t require re-authentication, // update to the latest CLI version (1.27.10 for CLI V1 and 2.9.0 for CLI V2) with // support for OIDC token refresh and configurable IAM Identity Center session -// durations. For more information, see Configure Amazon Web Services access -// portal session duration (https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-user-session.html) -// . +// durations. For more information, see [Configure Amazon Web Services access portal session duration]. +// // - The access tokens provided by this service grant access to all Amazon Web // Services account entitlements assigned to an IAM Identity Center user, not just // a particular application. +// // - The documentation in this guide does not describe the mechanism to convert // the access token into Amazon Web Services Auth (“sigv4”) credentials for use // with IAM-protected Amazon Web Services service endpoints. For more information, -// see GetRoleCredentials (https://docs.aws.amazon.com/singlesignon/latest/PortalAPIReference/API_GetRoleCredentials.html) -// in the IAM Identity Center Portal API Reference Guide. +// see [GetRoleCredentials]in the IAM Identity Center Portal API Reference Guide. +// +// For general information about IAM Identity Center, see [What is IAM Identity Center?] in the IAM Identity +// Center User Guide. // -// For general information about IAM Identity Center, see What is IAM Identity -// Center? (https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) -// in the IAM Identity Center User Guide. +// [Configure Amazon Web Services access portal session duration]: https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-user-session.html +// [GetRoleCredentials]: https://docs.aws.amazon.com/singlesignon/latest/PortalAPIReference/API_GetRoleCredentials.html +// [https://tools.ietf.org/html/rfc8628]: https://tools.ietf.org/html/rfc8628 +// [What is IAM Identity Center?]: https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html package ssooidc diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/go_module_metadata.go index cbc7e841..b1403a82 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/go_module_metadata.go @@ -3,4 +3,4 @@ package ssooidc // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.23.4" +const goModuleVersion = "1.24.4" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/options.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/options.go index b964e7e1..69ded47c 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/options.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/options.go @@ -50,8 +50,10 @@ type Options struct { // Deprecated: Deprecated: EndpointResolver and WithEndpointResolver. Providing a // value for this field will likely prevent you from using any endpoint-related // service features released after the introduction of EndpointResolverV2 and - // BaseEndpoint. To migrate an EndpointResolver implementation that uses a custom - // endpoint, set the client option BaseEndpoint instead. + // BaseEndpoint. + // + // To migrate an EndpointResolver implementation that uses a custom endpoint, set + // the client option BaseEndpoint instead. EndpointResolver EndpointResolver // Resolves the endpoint used for a particular service operation. This should be @@ -70,17 +72,20 @@ type Options struct { // RetryMaxAttempts specifies the maximum number attempts an API client will call // an operation that fails with a retryable error. A value of 0 is ignored, and // will not be used to configure the API client created default retryer, or modify - // per operation call's retry max attempts. If specified in an operation call's - // functional options with a value that is different than the constructed client's - // Options, the Client's Retryer will be wrapped to use the operation's specific - // RetryMaxAttempts value. + // per operation call's retry max attempts. + // + // If specified in an operation call's functional options with a value that is + // different than the constructed client's Options, the Client's Retryer will be + // wrapped to use the operation's specific RetryMaxAttempts value. RetryMaxAttempts int // RetryMode specifies the retry mode the API client will be created with, if - // Retryer option is not also specified. When creating a new API Clients this - // member will only be used if the Retryer Options member is nil. This value will - // be ignored if Retryer is not nil. Currently does not support per operation call - // overrides, may in the future. + // Retryer option is not also specified. + // + // When creating a new API Clients this member will only be used if the Retryer + // Options member is nil. This value will be ignored if Retryer is not nil. + // + // Currently does not support per operation call overrides, may in the future. RetryMode aws.RetryMode // Retryer guides how HTTP requests should be retried in case of recoverable @@ -97,8 +102,9 @@ type Options struct { // The initial DefaultsMode used when the client options were constructed. If the // DefaultsMode was set to aws.DefaultsModeAuto this will store what the resolved - // value was at that point in time. Currently does not support per operation call - // overrides, may in the future. + // value was at that point in time. + // + // Currently does not support per operation call overrides, may in the future. resolvedDefaultsMode aws.DefaultsMode // The HTTP client to invoke API calls with. Defaults to client's default HTTP @@ -143,6 +149,7 @@ func WithAPIOptions(optFns ...func(*middleware.Stack) error) func(*Options) { // Deprecated: EndpointResolver and WithEndpointResolver. Providing a value for // this field will likely prevent you from using any endpoint-related service // features released after the introduction of EndpointResolverV2 and BaseEndpoint. +// // To migrate an EndpointResolver implementation that uses a custom endpoint, set // the client option BaseEndpoint instead. func WithEndpointResolver(v EndpointResolver) func(*Options) { diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/serializers.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/serializers.go index 754218b7..04411bd6 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/serializers.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/serializers.go @@ -95,6 +95,11 @@ func awsRestjson1_serializeOpDocumentCreateTokenInput(v *CreateTokenInput, value ok.String(*v.Code) } + if v.CodeVerifier != nil { + ok := object.Key("codeVerifier") + ok.String(*v.CodeVerifier) + } + if v.DeviceCode != nil { ok := object.Key("deviceCode") ok.String(*v.DeviceCode) @@ -207,6 +212,11 @@ func awsRestjson1_serializeOpDocumentCreateTokenWithIAMInput(v *CreateTokenWithI ok.String(*v.Code) } + if v.CodeVerifier != nil { + ok := object.Key("codeVerifier") + ok.String(*v.CodeVerifier) + } + if v.GrantType != nil { ok := object.Key("grantType") ok.String(*v.GrantType) @@ -324,6 +334,30 @@ func awsRestjson1_serializeOpDocumentRegisterClientInput(v *RegisterClientInput, ok.String(*v.ClientType) } + if v.EntitledApplicationArn != nil { + ok := object.Key("entitledApplicationArn") + ok.String(*v.EntitledApplicationArn) + } + + if v.GrantTypes != nil { + ok := object.Key("grantTypes") + if err := awsRestjson1_serializeDocumentGrantTypes(v.GrantTypes, ok); err != nil { + return err + } + } + + if v.IssuerUrl != nil { + ok := object.Key("issuerUrl") + ok.String(*v.IssuerUrl) + } + + if v.RedirectUris != nil { + ok := object.Key("redirectUris") + if err := awsRestjson1_serializeDocumentRedirectUris(v.RedirectUris, ok); err != nil { + return err + } + } + if v.Scopes != nil { ok := object.Key("scopes") if err := awsRestjson1_serializeDocumentScopes(v.Scopes, ok); err != nil { @@ -419,6 +453,28 @@ func awsRestjson1_serializeOpDocumentStartDeviceAuthorizationInput(v *StartDevic return nil } +func awsRestjson1_serializeDocumentGrantTypes(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + +func awsRestjson1_serializeDocumentRedirectUris(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsRestjson1_serializeDocumentScopes(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/types/errors.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/types/errors.go index 86b62049..2cfe7b48 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/types/errors.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/types/errors.go @@ -188,7 +188,7 @@ func (e *InvalidClientMetadataException) ErrorCode() string { func (e *InvalidClientMetadataException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // Indicates that a request contains an invalid grant. This can occur if a client -// makes a CreateToken request with an invalid grant type. +// makes a CreateTokenrequest with an invalid grant type. type InvalidGrantException struct { Message *string @@ -217,6 +217,36 @@ func (e *InvalidGrantException) ErrorCode() string { } func (e *InvalidGrantException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } +// Indicates that one or more redirect URI in the request is not supported for +// this operation. +type InvalidRedirectUriException struct { + Message *string + + ErrorCodeOverride *string + + Error_ *string + Error_description *string + + noSmithyDocumentSerde +} + +func (e *InvalidRedirectUriException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *InvalidRedirectUriException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *InvalidRedirectUriException) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "InvalidRedirectUriException" + } + return *e.ErrorCodeOverride +} +func (e *InvalidRedirectUriException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + // Indicates that something is wrong with the input to the request. For example, a // required parameter might be missing or out of range. type InvalidRequestException struct { diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/CHANGELOG.md index 2fd5d5a6..24fe77f3 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/CHANGELOG.md @@ -1,3 +1,23 @@ +# v1.28.11 (2024-06-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.28.10 (2024-05-23) + +* No change notes available for this release. + +# v1.28.9 (2024-05-16) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.28.8 (2024-05-15) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.28.7 (2024-05-08) + +* **Bug Fix**: GoDoc improvement + # v1.28.6 (2024-03-29) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRole.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRole.go index e0e2c9c2..936f917b 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRole.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRole.go @@ -16,69 +16,99 @@ import ( // Amazon Web Services resources. These temporary credentials consist of an access // key ID, a secret access key, and a security token. Typically, you use AssumeRole // within your account or for cross-account access. For a comparison of AssumeRole -// with other API operations that produce temporary credentials, see Requesting -// Temporary Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) -// and Comparing the Amazon Web Services STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) -// in the IAM User Guide. Permissions The temporary security credentials created by -// AssumeRole can be used to make API calls to any Amazon Web Services service -// with the following exception: You cannot call the Amazon Web Services STS -// GetFederationToken or GetSessionToken API operations. (Optional) You can pass -// inline or managed session policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) -// to this operation. You can pass a single JSON policy document to use as an -// inline session policy. You can also specify up to 10 managed policy Amazon -// Resource Names (ARNs) to use as managed session policies. The plaintext that you -// use for both inline and managed session policies can't exceed 2,048 characters. -// Passing policies to this operation returns new temporary credentials. The -// resulting session's permissions are the intersection of the role's -// identity-based policy and the session policies. You can use the role's temporary -// credentials in subsequent Amazon Web Services API calls to access resources in -// the account that owns the role. You cannot use session policies to grant more -// permissions than those allowed by the identity-based policy of the role that is -// being assumed. For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) -// in the IAM User Guide. When you create a role, you create two policies: a role -// trust policy that specifies who can assume the role, and a permissions policy -// that specifies what can be done with the role. You specify the trusted principal -// that is allowed to assume the role in the role trust policy. To assume a role -// from a different account, your Amazon Web Services account must be trusted by -// the role. The trust relationship is defined in the role's trust policy when the -// role is created. That trust policy states which accounts are allowed to delegate -// that access to users in the account. A user who wants to access a role in a -// different account must also have permissions that are delegated from the account -// administrator. The administrator must attach a policy that allows the user to -// call AssumeRole for the ARN of the role in the other account. To allow a user -// to assume a role in the same account, you can do either of the following: +// with other API operations that produce temporary credentials, see [Requesting Temporary Security Credentials]and [Comparing the Amazon Web Services STS API operations] in the +// IAM User Guide. +// +// # Permissions +// +// The temporary security credentials created by AssumeRole can be used to make +// API calls to any Amazon Web Services service with the following exception: You +// cannot call the Amazon Web Services STS GetFederationToken or GetSessionToken +// API operations. +// +// (Optional) You can pass inline or managed [session policies] to this operation. You can pass a +// single JSON policy document to use as an inline session policy. You can also +// specify up to 10 managed policy Amazon Resource Names (ARNs) to use as managed +// session policies. The plaintext that you use for both inline and managed session +// policies can't exceed 2,048 characters. Passing policies to this operation +// returns new temporary credentials. The resulting session's permissions are the +// intersection of the role's identity-based policy and the session policies. You +// can use the role's temporary credentials in subsequent Amazon Web Services API +// calls to access resources in the account that owns the role. You cannot use +// session policies to grant more permissions than those allowed by the +// identity-based policy of the role that is being assumed. For more information, +// see [Session Policies]in the IAM User Guide. +// +// When you create a role, you create two policies: a role trust policy that +// specifies who can assume the role, and a permissions policy that specifies what +// can be done with the role. You specify the trusted principal that is allowed to +// assume the role in the role trust policy. +// +// To assume a role from a different account, your Amazon Web Services account +// must be trusted by the role. The trust relationship is defined in the role's +// trust policy when the role is created. That trust policy states which accounts +// are allowed to delegate that access to users in the account. +// +// A user who wants to access a role in a different account must also have +// permissions that are delegated from the account administrator. The administrator +// must attach a policy that allows the user to call AssumeRole for the ARN of the +// role in the other account. +// +// To allow a user to assume a role in the same account, you can do either of the +// following: +// // - Attach a policy to the user that allows the user to call AssumeRole (as long // as the role's trust policy trusts the account). +// // - Add the user as a principal directly in the role's trust policy. // // You can do either because the role’s trust policy acts as an IAM resource-based // policy. When a resource-based policy grants access to a principal in the same // account, no additional identity-based policy is required. For more information -// about trust policies and resource-based policies, see IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) -// in the IAM User Guide. Tags (Optional) You can pass tag key-value pairs to your -// session. These tags are called session tags. For more information about session -// tags, see Passing Session Tags in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) -// in the IAM User Guide. An administrator must grant you the permissions necessary -// to pass session tags. The administrator can also create granular permissions to -// allow you to pass only specific session tags. For more information, see -// Tutorial: Using Tags for Attribute-Based Access Control (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) -// in the IAM User Guide. You can set the session tags as transitive. Transitive -// tags persist during role chaining. For more information, see Chaining Roles -// with Session Tags (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining) -// in the IAM User Guide. Using MFA with AssumeRole (Optional) You can include -// multi-factor authentication (MFA) information when you call AssumeRole . This is -// useful for cross-account scenarios to ensure that the user that assumes the role -// has been authenticated with an Amazon Web Services MFA device. In that scenario, -// the trust policy of the role being assumed includes a condition that tests for -// MFA authentication. If the caller does not include valid MFA information, the -// request to assume the role is denied. The condition in a trust policy that tests -// for MFA authentication might look like the following example. "Condition": -// {"Bool": {"aws:MultiFactorAuthPresent": true}} For more information, see -// Configuring MFA-Protected API Access (https://docs.aws.amazon.com/IAM/latest/UserGuide/MFAProtectedAPI.html) -// in the IAM User Guide guide. To use MFA with AssumeRole , you pass values for -// the SerialNumber and TokenCode parameters. The SerialNumber value identifies -// the user's hardware or virtual MFA device. The TokenCode is the time-based -// one-time password (TOTP) that the MFA device produces. +// about trust policies and resource-based policies, see [IAM Policies]in the IAM User Guide. +// +// # Tags +// +// (Optional) You can pass tag key-value pairs to your session. These tags are +// called session tags. For more information about session tags, see [Passing Session Tags in STS]in the IAM +// User Guide. +// +// An administrator must grant you the permissions necessary to pass session tags. +// The administrator can also create granular permissions to allow you to pass only +// specific session tags. For more information, see [Tutorial: Using Tags for Attribute-Based Access Control]in the IAM User Guide. +// +// You can set the session tags as transitive. Transitive tags persist during role +// chaining. For more information, see [Chaining Roles with Session Tags]in the IAM User Guide. +// +// # Using MFA with AssumeRole +// +// (Optional) You can include multi-factor authentication (MFA) information when +// you call AssumeRole . This is useful for cross-account scenarios to ensure that +// the user that assumes the role has been authenticated with an Amazon Web +// Services MFA device. In that scenario, the trust policy of the role being +// assumed includes a condition that tests for MFA authentication. If the caller +// does not include valid MFA information, the request to assume the role is +// denied. The condition in a trust policy that tests for MFA authentication might +// look like the following example. +// +// "Condition": {"Bool": {"aws:MultiFactorAuthPresent": true}} +// +// For more information, see [Configuring MFA-Protected API Access] in the IAM User Guide guide. +// +// To use MFA with AssumeRole , you pass values for the SerialNumber and TokenCode +// parameters. The SerialNumber value identifies the user's hardware or virtual +// MFA device. The TokenCode is the time-based one-time password (TOTP) that the +// MFA device produces. +// +// [Configuring MFA-Protected API Access]: https://docs.aws.amazon.com/IAM/latest/UserGuide/MFAProtectedAPI.html +// [Session Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session +// [Passing Session Tags in STS]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html +// [Chaining Roles with Session Tags]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining +// [Comparing the Amazon Web Services STS API operations]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison +// [session policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session +// [IAM Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html +// [Requesting Temporary Security Credentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html +// [Tutorial: Using Tags for Attribute-Based Access Control]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html func (c *Client) AssumeRole(ctx context.Context, params *AssumeRoleInput, optFns ...func(*Options)) (*AssumeRoleOutput, error) { if params == nil { params = &AssumeRoleInput{} @@ -101,17 +131,19 @@ type AssumeRoleInput struct { // This member is required. RoleArn *string - // An identifier for the assumed role session. Use the role session name to - // uniquely identify a session when the same role is assumed by different - // principals or for different reasons. In cross-account scenarios, the role - // session name is visible to, and can be logged by the account that owns the role. - // The role session name is also used in the ARN of the assumed role principal. - // This means that subsequent cross-account API requests that use the temporary - // security credentials will expose the role session name to the external account - // in their CloudTrail logs. The regex used to validate this parameter is a string - // of characters consisting of upper- and lower-case alphanumeric characters with - // no spaces. You can also include underscores or any of the following characters: - // =,.@- + // An identifier for the assumed role session. + // + // Use the role session name to uniquely identify a session when the same role is + // assumed by different principals or for different reasons. In cross-account + // scenarios, the role session name is visible to, and can be logged by the account + // that owns the role. The role session name is also used in the ARN of the assumed + // role principal. This means that subsequent cross-account API requests that use + // the temporary security credentials will expose the role session name to the + // external account in their CloudTrail logs. + // + // The regex used to validate this parameter is a string of characters consisting + // of upper- and lower-case alphanumeric characters with no spaces. You can also + // include underscores or any of the following characters: =,.@- // // This member is required. RoleSessionName *string @@ -122,23 +154,27 @@ type AssumeRoleInput struct { // hours. If you specify a value higher than this setting or the administrator // setting (whichever is lower), the operation fails. For example, if you specify a // session duration of 12 hours, but your administrator set the maximum session - // duration to 6 hours, your operation fails. Role chaining limits your Amazon Web - // Services CLI or Amazon Web Services API role session to a maximum of one hour. - // When you use the AssumeRole API operation to assume a role, you can specify the - // duration of your role session with the DurationSeconds parameter. You can - // specify a parameter value of up to 43200 seconds (12 hours), depending on the - // maximum session duration setting for your role. However, if you assume a role - // using role chaining and provide a DurationSeconds parameter value greater than - // one hour, the operation fails. To learn how to view the maximum value for your - // role, see View the Maximum Session Duration Setting for a Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) - // in the IAM User Guide. By default, the value is set to 3600 seconds. The - // DurationSeconds parameter is separate from the duration of a console session - // that you might request using the returned credentials. The request to the - // federation endpoint for a console sign-in token takes a SessionDuration + // duration to 6 hours, your operation fails. + // + // Role chaining limits your Amazon Web Services CLI or Amazon Web Services API + // role session to a maximum of one hour. When you use the AssumeRole API + // operation to assume a role, you can specify the duration of your role session + // with the DurationSeconds parameter. You can specify a parameter value of up to + // 43200 seconds (12 hours), depending on the maximum session duration setting for + // your role. However, if you assume a role using role chaining and provide a + // DurationSeconds parameter value greater than one hour, the operation fails. To + // learn how to view the maximum value for your role, see [View the Maximum Session Duration Setting for a Role]in the IAM User Guide. + // + // By default, the value is set to 3600 seconds. + // + // The DurationSeconds parameter is separate from the duration of a console + // session that you might request using the returned credentials. The request to + // the federation endpoint for a console sign-in token takes a SessionDuration // parameter that specifies the maximum length of the console session. For more - // information, see Creating a URL that Enables Federated Users to Access the - // Amazon Web Services Management Console (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html) - // in the IAM User Guide. + // information, see [Creating a URL that Enables Federated Users to Access the Amazon Web Services Management Console]in the IAM User Guide. + // + // [View the Maximum Session Duration Setting for a Role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session + // [Creating a URL that Enables Federated Users to Access the Amazon Web Services Management Console]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html DurationSeconds *int32 // A unique identifier that might be required when you assume a role in another @@ -149,63 +185,79 @@ type AssumeRoleInput struct { // the administrator of the trusting account might send an external ID to the // administrator of the trusted account. That way, only someone with the ID can // assume the role, rather than everyone in the account. For more information about - // the external ID, see How to Use an External ID When Granting Access to Your - // Amazon Web Services Resources to a Third Party (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) - // in the IAM User Guide. The regex used to validate this parameter is a string of - // characters consisting of upper- and lower-case alphanumeric characters with no - // spaces. You can also include underscores or any of the following characters: - // =,.@:/- + // the external ID, see [How to Use an External ID When Granting Access to Your Amazon Web Services Resources to a Third Party]in the IAM User Guide. + // + // The regex used to validate this parameter is a string of characters consisting + // of upper- and lower-case alphanumeric characters with no spaces. You can also + // include underscores or any of the following characters: =,.@:/- + // + // [How to Use an External ID When Granting Access to Your Amazon Web Services Resources to a Third Party]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html ExternalId *string // An IAM policy in JSON format that you want to use as an inline session policy. + // // This parameter is optional. Passing policies to this operation returns new // temporary credentials. The resulting session's permissions are the intersection // of the role's identity-based policy and the session policies. You can use the // role's temporary credentials in subsequent Amazon Web Services API calls to // access resources in the account that owns the role. You cannot use session // policies to grant more permissions than those allowed by the identity-based - // policy of the role that is being assumed. For more information, see Session - // Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // in the IAM User Guide. The plaintext that you use for both inline and managed - // session policies can't exceed 2,048 characters. The JSON policy characters can - // be any ASCII character from the space character to the end of the valid - // character list (\u0020 through \u00FF). It can also include the tab (\u0009), - // linefeed (\u000A), and carriage return (\u000D) characters. An Amazon Web - // Services conversion compresses the passed inline session policy, managed policy - // ARNs, and session tags into a packed binary format that has a separate limit. - // Your request can fail for this limit even if your plaintext meets the other - // requirements. The PackedPolicySize response element indicates by percentage how - // close the policies and tags for your request are to the upper size limit. + // policy of the role that is being assumed. For more information, see [Session Policies]in the IAM + // User Guide. + // + // The plaintext that you use for both inline and managed session policies can't + // exceed 2,048 characters. The JSON policy characters can be any ASCII character + // from the space character to the end of the valid character list (\u0020 through + // \u00FF). It can also include the tab (\u0009), linefeed (\u000A), and carriage + // return (\u000D) characters. + // + // An Amazon Web Services conversion compresses the passed inline session policy, + // managed policy ARNs, and session tags into a packed binary format that has a + // separate limit. Your request can fail for this limit even if your plaintext + // meets the other requirements. The PackedPolicySize response element indicates + // by percentage how close the policies and tags for your request are to the upper + // size limit. + // + // [Session Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session Policy *string // The Amazon Resource Names (ARNs) of the IAM managed policies that you want to // use as managed session policies. The policies must exist in the same account as - // the role. This parameter is optional. You can provide up to 10 managed policy - // ARNs. However, the plaintext that you use for both inline and managed session - // policies can't exceed 2,048 characters. For more information about ARNs, see - // Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the Amazon Web Services General Reference. An Amazon Web Services conversion - // compresses the passed inline session policy, managed policy ARNs, and session - // tags into a packed binary format that has a separate limit. Your request can - // fail for this limit even if your plaintext meets the other requirements. The - // PackedPolicySize response element indicates by percentage how close the policies - // and tags for your request are to the upper size limit. Passing policies to this - // operation returns new temporary credentials. The resulting session's permissions - // are the intersection of the role's identity-based policy and the session - // policies. You can use the role's temporary credentials in subsequent Amazon Web - // Services API calls to access resources in the account that owns the role. You - // cannot use session policies to grant more permissions than those allowed by the - // identity-based policy of the role that is being assumed. For more information, - // see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // in the IAM User Guide. + // the role. + // + // This parameter is optional. You can provide up to 10 managed policy ARNs. + // However, the plaintext that you use for both inline and managed session policies + // can't exceed 2,048 characters. For more information about ARNs, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces]in the + // Amazon Web Services General Reference. + // + // An Amazon Web Services conversion compresses the passed inline session policy, + // managed policy ARNs, and session tags into a packed binary format that has a + // separate limit. Your request can fail for this limit even if your plaintext + // meets the other requirements. The PackedPolicySize response element indicates + // by percentage how close the policies and tags for your request are to the upper + // size limit. + // + // Passing policies to this operation returns new temporary credentials. The + // resulting session's permissions are the intersection of the role's + // identity-based policy and the session policies. You can use the role's temporary + // credentials in subsequent Amazon Web Services API calls to access resources in + // the account that owns the role. You cannot use session policies to grant more + // permissions than those allowed by the identity-based policy of the role that is + // being assumed. For more information, see [Session Policies]in the IAM User Guide. + // + // [Session Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session + // [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html PolicyArns []types.PolicyDescriptorType // A list of previously acquired trusted context assertions in the format of a // JSON array. The trusted context assertion is signed and encrypted by Amazon Web - // Services STS. The following is an example of a ProvidedContext value that - // includes a single trusted context assertion and the ARN of the context provider - // from which the trusted context assertion was generated. - // [{"ProviderArn":"arn:aws:iam::aws:contextProvider/IdentityCenter","ContextAssertion":"trusted-context-assertion"}] + // Services STS. + // + // The following is an example of a ProvidedContext value that includes a single + // trusted context assertion and the ARN of the context provider from which the + // trusted context assertion was generated. + // + // [{"ProviderArn":"arn:aws:iam::aws:contextProvider/IdentityCenter","ContextAssertion":"trusted-context-assertion"}] ProvidedContexts []types.ProvidedContext // The identification number of the MFA device that is associated with the user @@ -213,79 +265,97 @@ type AssumeRoleInput struct { // the role being assumed includes a condition that requires MFA authentication. // The value is either the serial number for a hardware device (such as // GAHT12345678 ) or an Amazon Resource Name (ARN) for a virtual device (such as - // arn:aws:iam::123456789012:mfa/user ). The regex used to validate this parameter - // is a string of characters consisting of upper- and lower-case alphanumeric - // characters with no spaces. You can also include underscores or any of the - // following characters: =,.@- + // arn:aws:iam::123456789012:mfa/user ). + // + // The regex used to validate this parameter is a string of characters consisting + // of upper- and lower-case alphanumeric characters with no spaces. You can also + // include underscores or any of the following characters: =,.@- SerialNumber *string // The source identity specified by the principal that is calling the AssumeRole - // operation. You can require users to specify a source identity when they assume a - // role. You do this by using the sts:SourceIdentity condition key in a role trust - // policy. You can use source identity information in CloudTrail logs to determine - // who took actions with a role. You can use the aws:SourceIdentity condition key - // to further control access to Amazon Web Services resources based on the value of - // source identity. For more information about using source identity, see Monitor - // and control actions taken with assumed roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html) - // in the IAM User Guide. The regex used to validate this parameter is a string of - // characters consisting of upper- and lower-case alphanumeric characters with no - // spaces. You can also include underscores or any of the following characters: - // =,.@-. You cannot use a value that begins with the text aws: . This prefix is - // reserved for Amazon Web Services internal use. + // operation. + // + // You can require users to specify a source identity when they assume a role. You + // do this by using the sts:SourceIdentity condition key in a role trust policy. + // You can use source identity information in CloudTrail logs to determine who took + // actions with a role. You can use the aws:SourceIdentity condition key to + // further control access to Amazon Web Services resources based on the value of + // source identity. For more information about using source identity, see [Monitor and control actions taken with assumed roles]in the + // IAM User Guide. + // + // The regex used to validate this parameter is a string of characters consisting + // of upper- and lower-case alphanumeric characters with no spaces. You can also + // include underscores or any of the following characters: =,.@-. You cannot use a + // value that begins with the text aws: . This prefix is reserved for Amazon Web + // Services internal use. + // + // [Monitor and control actions taken with assumed roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html SourceIdentity *string // A list of session tags that you want to pass. Each session tag consists of a - // key name and an associated value. For more information about session tags, see - // Tagging Amazon Web Services STS Sessions (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) - // in the IAM User Guide. This parameter is optional. You can pass up to 50 session - // tags. The plaintext session tag keys can’t exceed 128 characters, and the values - // can’t exceed 256 characters. For these and additional limits, see IAM and STS - // Character Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) - // in the IAM User Guide. An Amazon Web Services conversion compresses the passed - // inline session policy, managed policy ARNs, and session tags into a packed - // binary format that has a separate limit. Your request can fail for this limit - // even if your plaintext meets the other requirements. The PackedPolicySize - // response element indicates by percentage how close the policies and tags for - // your request are to the upper size limit. You can pass a session tag with the - // same key as a tag that is already attached to the role. When you do, session - // tags override a role tag with the same key. Tag key–value pairs are not case - // sensitive, but case is preserved. This means that you cannot have separate - // Department and department tag keys. Assume that the role has the Department = - // Marketing tag and you pass the department = engineering session tag. Department - // and department are not saved as separate tags, and the session tag passed in - // the request takes precedence over the role tag. Additionally, if you used - // temporary credentials to perform this operation, the new session inherits any - // transitive session tags from the calling session. If you pass a session tag with - // the same key as an inherited tag, the operation fails. To view the inherited - // tags for a session, see the CloudTrail logs. For more information, see Viewing - // Session Tags in CloudTrail (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_ctlogs) + // key name and an associated value. For more information about session tags, see [Tagging Amazon Web Services STS Sessions] // in the IAM User Guide. + // + // This parameter is optional. You can pass up to 50 session tags. The plaintext + // session tag keys can’t exceed 128 characters, and the values can’t exceed 256 + // characters. For these and additional limits, see [IAM and STS Character Limits]in the IAM User Guide. + // + // An Amazon Web Services conversion compresses the passed inline session policy, + // managed policy ARNs, and session tags into a packed binary format that has a + // separate limit. Your request can fail for this limit even if your plaintext + // meets the other requirements. The PackedPolicySize response element indicates + // by percentage how close the policies and tags for your request are to the upper + // size limit. + // + // You can pass a session tag with the same key as a tag that is already attached + // to the role. When you do, session tags override a role tag with the same key. + // + // Tag key–value pairs are not case sensitive, but case is preserved. This means + // that you cannot have separate Department and department tag keys. Assume that + // the role has the Department = Marketing tag and you pass the department = + // engineering session tag. Department and department are not saved as separate + // tags, and the session tag passed in the request takes precedence over the role + // tag. + // + // Additionally, if you used temporary credentials to perform this operation, the + // new session inherits any transitive session tags from the calling session. If + // you pass a session tag with the same key as an inherited tag, the operation + // fails. To view the inherited tags for a session, see the CloudTrail logs. For + // more information, see [Viewing Session Tags in CloudTrail]in the IAM User Guide. + // + // [Tagging Amazon Web Services STS Sessions]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html + // [IAM and STS Character Limits]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length + // [Viewing Session Tags in CloudTrail]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_ctlogs Tags []types.Tag // The value provided by the MFA device, if the trust policy of the role being // assumed requires MFA. (In other words, if the policy includes a condition that // tests for MFA). If the role being assumed requires MFA and if the TokenCode // value is missing or expired, the AssumeRole call returns an "access denied" - // error. The format for this parameter, as described by its regex pattern, is a - // sequence of six numeric digits. + // error. + // + // The format for this parameter, as described by its regex pattern, is a sequence + // of six numeric digits. TokenCode *string // A list of keys for session tags that you want to set as transitive. If you set // a tag key as transitive, the corresponding key and value passes to subsequent - // sessions in a role chain. For more information, see Chaining Roles with Session - // Tags (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining) - // in the IAM User Guide. This parameter is optional. When you set session tags as - // transitive, the session policy and session tags packed binary limit is not - // affected. If you choose not to specify a transitive tag key, then no tags are - // passed from this session to any subsequent sessions. + // sessions in a role chain. For more information, see [Chaining Roles with Session Tags]in the IAM User Guide. + // + // This parameter is optional. When you set session tags as transitive, the + // session policy and session tags packed binary limit is not affected. + // + // If you choose not to specify a transitive tag key, then no tags are passed from + // this session to any subsequent sessions. + // + // [Chaining Roles with Session Tags]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining TransitiveTagKeys []string noSmithyDocumentSerde } -// Contains the response to a successful AssumeRole request, including temporary -// Amazon Web Services credentials that can be used to make Amazon Web Services -// requests. +// Contains the response to a successful AssumeRole request, including temporary Amazon Web +// Services credentials that can be used to make Amazon Web Services requests. type AssumeRoleOutput struct { // The Amazon Resource Name (ARN) and the assumed role ID, which are identifiers @@ -296,9 +366,10 @@ type AssumeRoleOutput struct { AssumedRoleUser *types.AssumedRoleUser // The temporary security credentials, which include an access key ID, a secret - // access key, and a security (or session) token. The size of the security token - // that STS API operations return is not fixed. We strongly recommend that you make - // no assumptions about the maximum size. + // access key, and a security (or session) token. + // + // The size of the security token that STS API operations return is not fixed. We + // strongly recommend that you make no assumptions about the maximum size. Credentials *types.Credentials // A percentage value that indicates the packed size of the session policies and @@ -308,17 +379,21 @@ type AssumeRoleOutput struct { PackedPolicySize *int32 // The source identity specified by the principal that is calling the AssumeRole - // operation. You can require users to specify a source identity when they assume a - // role. You do this by using the sts:SourceIdentity condition key in a role trust - // policy. You can use source identity information in CloudTrail logs to determine - // who took actions with a role. You can use the aws:SourceIdentity condition key - // to further control access to Amazon Web Services resources based on the value of - // source identity. For more information about using source identity, see Monitor - // and control actions taken with assumed roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html) - // in the IAM User Guide. The regex used to validate this parameter is a string of - // characters consisting of upper- and lower-case alphanumeric characters with no - // spaces. You can also include underscores or any of the following characters: - // =,.@- + // operation. + // + // You can require users to specify a source identity when they assume a role. You + // do this by using the sts:SourceIdentity condition key in a role trust policy. + // You can use source identity information in CloudTrail logs to determine who took + // actions with a role. You can use the aws:SourceIdentity condition key to + // further control access to Amazon Web Services resources based on the value of + // source identity. For more information about using source identity, see [Monitor and control actions taken with assumed roles]in the + // IAM User Guide. + // + // The regex used to validate this parameter is a string of characters consisting + // of upper- and lower-case alphanumeric characters with no spaces. You can also + // include underscores or any of the following characters: =,.@- + // + // [Monitor and control actions taken with assumed roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html SourceIdentity *string // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithSAML.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithSAML.go index 2a57b72a..f88ab4a2 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithSAML.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithSAML.go @@ -16,92 +16,132 @@ import ( // mechanism for tying an enterprise identity store or directory to role-based // Amazon Web Services access without user-specific credentials or configuration. // For a comparison of AssumeRoleWithSAML with the other API operations that -// produce temporary credentials, see Requesting Temporary Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) -// and Comparing the Amazon Web Services STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) -// in the IAM User Guide. The temporary security credentials returned by this -// operation consist of an access key ID, a secret access key, and a security -// token. Applications can use these temporary security credentials to sign calls -// to Amazon Web Services services. Session Duration By default, the temporary -// security credentials created by AssumeRoleWithSAML last for one hour. However, -// you can use the optional DurationSeconds parameter to specify the duration of -// your session. Your role session lasts for the duration that you specify, or -// until the time specified in the SAML authentication response's -// SessionNotOnOrAfter value, whichever is shorter. You can provide a -// DurationSeconds value from 900 seconds (15 minutes) up to the maximum session -// duration setting for the role. This setting can have a value from 1 hour to 12 -// hours. To learn how to view the maximum value for your role, see View the -// Maximum Session Duration Setting for a Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) -// in the IAM User Guide. The maximum session duration limit applies when you use -// the AssumeRole* API operations or the assume-role* CLI commands. However the -// limit does not apply when you use those operations to create a console URL. For -// more information, see Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) -// in the IAM User Guide. Role chaining (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-role-chaining) -// limits your CLI or Amazon Web Services API role session to a maximum of one +// produce temporary credentials, see [Requesting Temporary Security Credentials]and [Comparing the Amazon Web Services STS API operations] in the IAM User Guide. +// +// The temporary security credentials returned by this operation consist of an +// access key ID, a secret access key, and a security token. Applications can use +// these temporary security credentials to sign calls to Amazon Web Services +// services. +// +// # Session Duration +// +// By default, the temporary security credentials created by AssumeRoleWithSAML +// last for one hour. However, you can use the optional DurationSeconds parameter +// to specify the duration of your session. Your role session lasts for the +// duration that you specify, or until the time specified in the SAML +// authentication response's SessionNotOnOrAfter value, whichever is shorter. You +// can provide a DurationSeconds value from 900 seconds (15 minutes) up to the +// maximum session duration setting for the role. This setting can have a value +// from 1 hour to 12 hours. To learn how to view the maximum value for your role, +// see [View the Maximum Session Duration Setting for a Role]in the IAM User Guide. The maximum session duration limit applies when you +// use the AssumeRole* API operations or the assume-role* CLI commands. However +// the limit does not apply when you use those operations to create a console URL. +// For more information, see [Using IAM Roles]in the IAM User Guide. +// +// [Role chaining]limits your CLI or Amazon Web Services API role session to a maximum of one // hour. When you use the AssumeRole API operation to assume a role, you can // specify the duration of your role session with the DurationSeconds parameter. // You can specify a parameter value of up to 43200 seconds (12 hours), depending // on the maximum session duration setting for your role. However, if you assume a // role using role chaining and provide a DurationSeconds parameter value greater -// than one hour, the operation fails. Permissions The temporary security -// credentials created by AssumeRoleWithSAML can be used to make API calls to any -// Amazon Web Services service with the following exception: you cannot call the -// STS GetFederationToken or GetSessionToken API operations. (Optional) You can -// pass inline or managed session policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) -// to this operation. You can pass a single JSON policy document to use as an -// inline session policy. You can also specify up to 10 managed policy Amazon -// Resource Names (ARNs) to use as managed session policies. The plaintext that you -// use for both inline and managed session policies can't exceed 2,048 characters. -// Passing policies to this operation returns new temporary credentials. The -// resulting session's permissions are the intersection of the role's -// identity-based policy and the session policies. You can use the role's temporary -// credentials in subsequent Amazon Web Services API calls to access resources in -// the account that owns the role. You cannot use session policies to grant more -// permissions than those allowed by the identity-based policy of the role that is -// being assumed. For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) -// in the IAM User Guide. Calling AssumeRoleWithSAML does not require the use of -// Amazon Web Services security credentials. The identity of the caller is -// validated by using keys in the metadata document that is uploaded for the SAML -// provider entity for your identity provider. Calling AssumeRoleWithSAML can -// result in an entry in your CloudTrail logs. The entry includes the value in the -// NameID element of the SAML assertion. We recommend that you use a NameIDType -// that is not associated with any personally identifiable information (PII). For -// example, you could instead use the persistent identifier ( -// urn:oasis:names:tc:SAML:2.0:nameid-format:persistent ). Tags (Optional) You can -// configure your IdP to pass attributes into your SAML assertion as session tags. -// Each session tag consists of a key name and an associated value. For more -// information about session tags, see Passing Session Tags in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) -// in the IAM User Guide. You can pass up to 50 session tags. The plaintext session -// tag keys can’t exceed 128 characters and the values can’t exceed 256 characters. -// For these and additional limits, see IAM and STS Character Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) -// in the IAM User Guide. An Amazon Web Services conversion compresses the passed -// inline session policy, managed policy ARNs, and session tags into a packed -// binary format that has a separate limit. Your request can fail for this limit -// even if your plaintext meets the other requirements. The PackedPolicySize -// response element indicates by percentage how close the policies and tags for -// your request are to the upper size limit. You can pass a session tag with the -// same key as a tag that is attached to the role. When you do, session tags -// override the role's tags with the same key. An administrator must grant you the -// permissions necessary to pass session tags. The administrator can also create -// granular permissions to allow you to pass only specific session tags. For more -// information, see Tutorial: Using Tags for Attribute-Based Access Control (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) -// in the IAM User Guide. You can set the session tags as transitive. Transitive -// tags persist during role chaining. For more information, see Chaining Roles -// with Session Tags (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining) -// in the IAM User Guide. SAML Configuration Before your application can call -// AssumeRoleWithSAML , you must configure your SAML identity provider (IdP) to -// issue the claims required by Amazon Web Services. Additionally, you must use -// Identity and Access Management (IAM) to create a SAML provider entity in your -// Amazon Web Services account that represents your identity provider. You must -// also create an IAM role that specifies this SAML provider in its trust policy. +// than one hour, the operation fails. +// +// # Permissions +// +// The temporary security credentials created by AssumeRoleWithSAML can be used to +// make API calls to any Amazon Web Services service with the following exception: +// you cannot call the STS GetFederationToken or GetSessionToken API operations. +// +// (Optional) You can pass inline or managed [session policies] to this operation. You can pass a +// single JSON policy document to use as an inline session policy. You can also +// specify up to 10 managed policy Amazon Resource Names (ARNs) to use as managed +// session policies. The plaintext that you use for both inline and managed session +// policies can't exceed 2,048 characters. Passing policies to this operation +// returns new temporary credentials. The resulting session's permissions are the +// intersection of the role's identity-based policy and the session policies. You +// can use the role's temporary credentials in subsequent Amazon Web Services API +// calls to access resources in the account that owns the role. You cannot use +// session policies to grant more permissions than those allowed by the +// identity-based policy of the role that is being assumed. For more information, +// see [Session Policies]in the IAM User Guide. +// +// Calling AssumeRoleWithSAML does not require the use of Amazon Web Services +// security credentials. The identity of the caller is validated by using keys in +// the metadata document that is uploaded for the SAML provider entity for your +// identity provider. +// +// Calling AssumeRoleWithSAML can result in an entry in your CloudTrail logs. The +// entry includes the value in the NameID element of the SAML assertion. We +// recommend that you use a NameIDType that is not associated with any personally +// identifiable information (PII). For example, you could instead use the +// persistent identifier ( urn:oasis:names:tc:SAML:2.0:nameid-format:persistent ). +// +// # Tags +// +// (Optional) You can configure your IdP to pass attributes into your SAML +// assertion as session tags. Each session tag consists of a key name and an +// associated value. For more information about session tags, see [Passing Session Tags in STS]in the IAM User +// Guide. +// +// You can pass up to 50 session tags. The plaintext session tag keys can’t exceed +// 128 characters and the values can’t exceed 256 characters. For these and +// additional limits, see [IAM and STS Character Limits]in the IAM User Guide. +// +// An Amazon Web Services conversion compresses the passed inline session policy, +// managed policy ARNs, and session tags into a packed binary format that has a +// separate limit. Your request can fail for this limit even if your plaintext +// meets the other requirements. The PackedPolicySize response element indicates +// by percentage how close the policies and tags for your request are to the upper +// size limit. +// +// You can pass a session tag with the same key as a tag that is attached to the +// role. When you do, session tags override the role's tags with the same key. +// +// An administrator must grant you the permissions necessary to pass session tags. +// The administrator can also create granular permissions to allow you to pass only +// specific session tags. For more information, see [Tutorial: Using Tags for Attribute-Based Access Control]in the IAM User Guide. +// +// You can set the session tags as transitive. Transitive tags persist during role +// chaining. For more information, see [Chaining Roles with Session Tags]in the IAM User Guide. +// +// # SAML Configuration +// +// Before your application can call AssumeRoleWithSAML , you must configure your +// SAML identity provider (IdP) to issue the claims required by Amazon Web +// Services. Additionally, you must use Identity and Access Management (IAM) to +// create a SAML provider entity in your Amazon Web Services account that +// represents your identity provider. You must also create an IAM role that +// specifies this SAML provider in its trust policy. +// // For more information, see the following resources: -// - About SAML 2.0-based Federation (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) -// in the IAM User Guide. -// - Creating SAML Identity Providers (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html) -// in the IAM User Guide. -// - Configuring a Relying Party and Claims (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html) -// in the IAM User Guide. -// - Creating a Role for SAML 2.0 Federation (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html) -// in the IAM User Guide. +// +// [About SAML 2.0-based Federation] +// - in the IAM User Guide. +// +// [Creating SAML Identity Providers] +// - in the IAM User Guide. +// +// [Configuring a Relying Party and Claims] +// - in the IAM User Guide. +// +// [Creating a Role for SAML 2.0 Federation] +// - in the IAM User Guide. +// +// [View the Maximum Session Duration Setting for a Role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session +// [Creating a Role for SAML 2.0 Federation]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html +// [IAM and STS Character Limits]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length +// [Comparing the Amazon Web Services STS API operations]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison +// [Creating SAML Identity Providers]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html +// [session policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session +// [Requesting Temporary Security Credentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html +// [Tutorial: Using Tags for Attribute-Based Access Control]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html +// [Configuring a Relying Party and Claims]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html +// [Role chaining]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-role-chaining +// [Using IAM Roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html +// [Session Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session +// [Passing Session Tags in STS]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html +// [About SAML 2.0-based Federation]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html +// [Chaining Roles with Session Tags]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining func (c *Client) AssumeRoleWithSAML(ctx context.Context, params *AssumeRoleWithSAMLInput, optFns ...func(*Options)) (*AssumeRoleWithSAMLOutput, error) { if params == nil { params = &AssumeRoleWithSAMLInput{} @@ -130,9 +170,11 @@ type AssumeRoleWithSAMLInput struct { // This member is required. RoleArn *string - // The base64 encoded SAML authentication response provided by the IdP. For more - // information, see Configuring a Relying Party and Adding Claims (https://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-saml-IdP-tasks.html) - // in the IAM User Guide. + // The base64 encoded SAML authentication response provided by the IdP. + // + // For more information, see [Configuring a Relying Party and Adding Claims] in the IAM User Guide. + // + // [Configuring a Relying Party and Adding Claims]: https://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-saml-IdP-tasks.html // // This member is required. SAMLAssertion *string @@ -146,92 +188,114 @@ type AssumeRoleWithSAMLInput struct { // than this setting, the operation fails. For example, if you specify a session // duration of 12 hours, but your administrator set the maximum session duration to // 6 hours, your operation fails. To learn how to view the maximum value for your - // role, see View the Maximum Session Duration Setting for a Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) - // in the IAM User Guide. By default, the value is set to 3600 seconds. The - // DurationSeconds parameter is separate from the duration of a console session - // that you might request using the returned credentials. The request to the - // federation endpoint for a console sign-in token takes a SessionDuration + // role, see [View the Maximum Session Duration Setting for a Role]in the IAM User Guide. + // + // By default, the value is set to 3600 seconds. + // + // The DurationSeconds parameter is separate from the duration of a console + // session that you might request using the returned credentials. The request to + // the federation endpoint for a console sign-in token takes a SessionDuration // parameter that specifies the maximum length of the console session. For more - // information, see Creating a URL that Enables Federated Users to Access the - // Amazon Web Services Management Console (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html) - // in the IAM User Guide. + // information, see [Creating a URL that Enables Federated Users to Access the Amazon Web Services Management Console]in the IAM User Guide. + // + // [View the Maximum Session Duration Setting for a Role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session + // [Creating a URL that Enables Federated Users to Access the Amazon Web Services Management Console]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html DurationSeconds *int32 // An IAM policy in JSON format that you want to use as an inline session policy. + // // This parameter is optional. Passing policies to this operation returns new // temporary credentials. The resulting session's permissions are the intersection // of the role's identity-based policy and the session policies. You can use the // role's temporary credentials in subsequent Amazon Web Services API calls to // access resources in the account that owns the role. You cannot use session // policies to grant more permissions than those allowed by the identity-based - // policy of the role that is being assumed. For more information, see Session - // Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // in the IAM User Guide. The plaintext that you use for both inline and managed - // session policies can't exceed 2,048 characters. The JSON policy characters can - // be any ASCII character from the space character to the end of the valid - // character list (\u0020 through \u00FF). It can also include the tab (\u0009), - // linefeed (\u000A), and carriage return (\u000D) characters. An Amazon Web - // Services conversion compresses the passed inline session policy, managed policy - // ARNs, and session tags into a packed binary format that has a separate limit. - // Your request can fail for this limit even if your plaintext meets the other - // requirements. The PackedPolicySize response element indicates by percentage how - // close the policies and tags for your request are to the upper size limit. + // policy of the role that is being assumed. For more information, see [Session Policies]in the IAM + // User Guide. + // + // The plaintext that you use for both inline and managed session policies can't + // exceed 2,048 characters. The JSON policy characters can be any ASCII character + // from the space character to the end of the valid character list (\u0020 through + // \u00FF). It can also include the tab (\u0009), linefeed (\u000A), and carriage + // return (\u000D) characters. + // + // An Amazon Web Services conversion compresses the passed inline session policy, + // managed policy ARNs, and session tags into a packed binary format that has a + // separate limit. Your request can fail for this limit even if your plaintext + // meets the other requirements. The PackedPolicySize response element indicates + // by percentage how close the policies and tags for your request are to the upper + // size limit. + // + // [Session Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session Policy *string // The Amazon Resource Names (ARNs) of the IAM managed policies that you want to // use as managed session policies. The policies must exist in the same account as - // the role. This parameter is optional. You can provide up to 10 managed policy - // ARNs. However, the plaintext that you use for both inline and managed session - // policies can't exceed 2,048 characters. For more information about ARNs, see - // Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the Amazon Web Services General Reference. An Amazon Web Services conversion - // compresses the passed inline session policy, managed policy ARNs, and session - // tags into a packed binary format that has a separate limit. Your request can - // fail for this limit even if your plaintext meets the other requirements. The - // PackedPolicySize response element indicates by percentage how close the policies - // and tags for your request are to the upper size limit. Passing policies to this - // operation returns new temporary credentials. The resulting session's permissions - // are the intersection of the role's identity-based policy and the session - // policies. You can use the role's temporary credentials in subsequent Amazon Web - // Services API calls to access resources in the account that owns the role. You - // cannot use session policies to grant more permissions than those allowed by the - // identity-based policy of the role that is being assumed. For more information, - // see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // in the IAM User Guide. + // the role. + // + // This parameter is optional. You can provide up to 10 managed policy ARNs. + // However, the plaintext that you use for both inline and managed session policies + // can't exceed 2,048 characters. For more information about ARNs, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces]in the + // Amazon Web Services General Reference. + // + // An Amazon Web Services conversion compresses the passed inline session policy, + // managed policy ARNs, and session tags into a packed binary format that has a + // separate limit. Your request can fail for this limit even if your plaintext + // meets the other requirements. The PackedPolicySize response element indicates + // by percentage how close the policies and tags for your request are to the upper + // size limit. + // + // Passing policies to this operation returns new temporary credentials. The + // resulting session's permissions are the intersection of the role's + // identity-based policy and the session policies. You can use the role's temporary + // credentials in subsequent Amazon Web Services API calls to access resources in + // the account that owns the role. You cannot use session policies to grant more + // permissions than those allowed by the identity-based policy of the role that is + // being assumed. For more information, see [Session Policies]in the IAM User Guide. + // + // [Session Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session + // [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html PolicyArns []types.PolicyDescriptorType noSmithyDocumentSerde } -// Contains the response to a successful AssumeRoleWithSAML request, including -// temporary Amazon Web Services credentials that can be used to make Amazon Web -// Services requests. +// Contains the response to a successful AssumeRoleWithSAML request, including temporary Amazon Web +// Services credentials that can be used to make Amazon Web Services requests. type AssumeRoleWithSAMLOutput struct { // The identifiers for the temporary security credentials that the operation // returns. AssumedRoleUser *types.AssumedRoleUser - // The value of the Recipient attribute of the SubjectConfirmationData element of + // The value of the Recipient attribute of the SubjectConfirmationData element of // the SAML assertion. Audience *string // The temporary security credentials, which include an access key ID, a secret - // access key, and a security (or session) token. The size of the security token - // that STS API operations return is not fixed. We strongly recommend that you make - // no assumptions about the maximum size. + // access key, and a security (or session) token. + // + // The size of the security token that STS API operations return is not fixed. We + // strongly recommend that you make no assumptions about the maximum size. Credentials *types.Credentials // The value of the Issuer element of the SAML assertion. Issuer *string // A hash value based on the concatenation of the following: + // // - The Issuer response value. + // // - The Amazon Web Services account ID. + // // - The friendly name (the last part of the ARN) of the SAML provider in IAM. + // // The combination of NameQualifier and Subject can be used to uniquely identify a - // user. The following pseudocode shows how the hash value is calculated: BASE64 ( - // SHA1 ( "https://example.com/saml" + "123456789012" + "/MySAMLIdP" ) ) + // user. + // + // The following pseudocode shows how the hash value is calculated: + // + // BASE64 ( SHA1 ( "https://example.com/saml" + "123456789012" + "/MySAMLIdP" ) ) NameQualifier *string // A percentage value that indicates the packed size of the session policies and @@ -240,31 +304,36 @@ type AssumeRoleWithSAMLOutput struct { // allowed space. PackedPolicySize *int32 - // The value in the SourceIdentity attribute in the SAML assertion. You can - // require users to set a source identity value when they assume a role. You do - // this by using the sts:SourceIdentity condition key in a role trust policy. That - // way, actions that are taken with the role are associated with that user. After - // the source identity is set, the value cannot be changed. It is present in the - // request for all actions that are taken by the role and persists across chained - // role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts#iam-term-role-chaining) - // sessions. You can configure your SAML identity provider to use an attribute - // associated with your users, like user name or email, as the source identity when - // calling AssumeRoleWithSAML . You do this by adding an attribute to the SAML - // assertion. For more information about using source identity, see Monitor and - // control actions taken with assumed roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html) - // in the IAM User Guide. The regex used to validate this parameter is a string of - // characters consisting of upper- and lower-case alphanumeric characters with no - // spaces. You can also include underscores or any of the following characters: - // =,.@- + // The value in the SourceIdentity attribute in the SAML assertion. + // + // You can require users to set a source identity value when they assume a role. + // You do this by using the sts:SourceIdentity condition key in a role trust + // policy. That way, actions that are taken with the role are associated with that + // user. After the source identity is set, the value cannot be changed. It is + // present in the request for all actions that are taken by the role and persists + // across [chained role]sessions. You can configure your SAML identity provider to use an + // attribute associated with your users, like user name or email, as the source + // identity when calling AssumeRoleWithSAML . You do this by adding an attribute to + // the SAML assertion. For more information about using source identity, see [Monitor and control actions taken with assumed roles]in + // the IAM User Guide. + // + // The regex used to validate this parameter is a string of characters consisting + // of upper- and lower-case alphanumeric characters with no spaces. You can also + // include underscores or any of the following characters: =,.@- + // + // [chained role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts#iam-term-role-chaining + // [Monitor and control actions taken with assumed roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html SourceIdentity *string // The value of the NameID element in the Subject element of the SAML assertion. Subject *string - // The format of the name ID, as defined by the Format attribute in the NameID + // The format of the name ID, as defined by the Format attribute in the NameID // element of the SAML assertion. Typical examples of the format are transient or - // persistent . If the format includes the prefix - // urn:oasis:names:tc:SAML:2.0:nameid-format , that prefix is removed. For example, + // persistent . + // + // If the format includes the prefix urn:oasis:names:tc:SAML:2.0:nameid-format , + // that prefix is removed. For example, // urn:oasis:names:tc:SAML:2.0:nameid-format:transient is returned as transient . // If the format includes any other prefix, the format is returned with no // modifications. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithWebIdentity.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithWebIdentity.go index 98108ce6..6c8cf43e 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithWebIdentity.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_AssumeRoleWithWebIdentity.go @@ -14,105 +14,143 @@ import ( // Returns a set of temporary security credentials for users who have been // authenticated in a mobile or web application with a web identity provider. // Example providers include the OAuth 2.0 providers Login with Amazon and -// Facebook, or any OpenID Connect-compatible identity provider such as Google or -// Amazon Cognito federated identities (https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html) -// . For mobile applications, we recommend that you use Amazon Cognito. You can use -// Amazon Cognito with the Amazon Web Services SDK for iOS Developer Guide (http://aws.amazon.com/sdkforios/) -// and the Amazon Web Services SDK for Android Developer Guide (http://aws.amazon.com/sdkforandroid/) -// to uniquely identify a user. You can also supply the user with a consistent -// identity throughout the lifetime of an application. To learn more about Amazon -// Cognito, see Amazon Cognito identity pools (https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html) -// in Amazon Cognito Developer Guide. Calling AssumeRoleWithWebIdentity does not -// require the use of Amazon Web Services security credentials. Therefore, you can -// distribute an application (for example, on mobile devices) that requests -// temporary security credentials without including long-term Amazon Web Services -// credentials in the application. You also don't need to deploy server-based proxy -// services that use long-term Amazon Web Services credentials. Instead, the -// identity of the caller is validated by using a token from the web identity -// provider. For a comparison of AssumeRoleWithWebIdentity with the other API -// operations that produce temporary credentials, see Requesting Temporary -// Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) -// and Comparing the Amazon Web Services STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) -// in the IAM User Guide. The temporary security credentials returned by this API -// consist of an access key ID, a secret access key, and a security token. -// Applications can use these temporary security credentials to sign calls to -// Amazon Web Services service API operations. Session Duration By default, the -// temporary security credentials created by AssumeRoleWithWebIdentity last for -// one hour. However, you can use the optional DurationSeconds parameter to -// specify the duration of your session. You can provide a value from 900 seconds -// (15 minutes) up to the maximum session duration setting for the role. This -// setting can have a value from 1 hour to 12 hours. To learn how to view the -// maximum value for your role, see View the Maximum Session Duration Setting for -// a Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) -// in the IAM User Guide. The maximum session duration limit applies when you use -// the AssumeRole* API operations or the assume-role* CLI commands. However the -// limit does not apply when you use those operations to create a console URL. For -// more information, see Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) -// in the IAM User Guide. Permissions The temporary security credentials created by -// AssumeRoleWithWebIdentity can be used to make API calls to any Amazon Web -// Services service with the following exception: you cannot call the STS -// GetFederationToken or GetSessionToken API operations. (Optional) You can pass -// inline or managed session policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) -// to this operation. You can pass a single JSON policy document to use as an -// inline session policy. You can also specify up to 10 managed policy Amazon -// Resource Names (ARNs) to use as managed session policies. The plaintext that you -// use for both inline and managed session policies can't exceed 2,048 characters. -// Passing policies to this operation returns new temporary credentials. The -// resulting session's permissions are the intersection of the role's -// identity-based policy and the session policies. You can use the role's temporary -// credentials in subsequent Amazon Web Services API calls to access resources in -// the account that owns the role. You cannot use session policies to grant more -// permissions than those allowed by the identity-based policy of the role that is -// being assumed. For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) -// in the IAM User Guide. Tags (Optional) You can configure your IdP to pass -// attributes into your web identity token as session tags. Each session tag -// consists of a key name and an associated value. For more information about -// session tags, see Passing Session Tags in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) -// in the IAM User Guide. You can pass up to 50 session tags. The plaintext session -// tag keys can’t exceed 128 characters and the values can’t exceed 256 characters. -// For these and additional limits, see IAM and STS Character Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) -// in the IAM User Guide. An Amazon Web Services conversion compresses the passed -// inline session policy, managed policy ARNs, and session tags into a packed -// binary format that has a separate limit. Your request can fail for this limit -// even if your plaintext meets the other requirements. The PackedPolicySize -// response element indicates by percentage how close the policies and tags for -// your request are to the upper size limit. You can pass a session tag with the -// same key as a tag that is attached to the role. When you do, the session tag -// overrides the role tag with the same key. An administrator must grant you the -// permissions necessary to pass session tags. The administrator can also create -// granular permissions to allow you to pass only specific session tags. For more -// information, see Tutorial: Using Tags for Attribute-Based Access Control (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) -// in the IAM User Guide. You can set the session tags as transitive. Transitive -// tags persist during role chaining. For more information, see Chaining Roles -// with Session Tags (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining) -// in the IAM User Guide. Identities Before your application can call -// AssumeRoleWithWebIdentity , you must have an identity token from a supported -// identity provider and create a role that the application can assume. The role -// that your application assumes must trust the identity provider that is -// associated with the identity token. In other words, the identity provider must -// be specified in the role's trust policy. Calling AssumeRoleWithWebIdentity can -// result in an entry in your CloudTrail logs. The entry includes the Subject (http://openid.net/specs/openid-connect-core-1_0.html#Claims) -// of the provided web identity token. We recommend that you avoid using any -// personally identifiable information (PII) in this field. For example, you could -// instead use a GUID or a pairwise identifier, as suggested in the OIDC -// specification (http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes) -// . For more information about how to use web identity federation and the +// Facebook, or any OpenID Connect-compatible identity provider such as Google or [Amazon Cognito federated identities]. +// +// For mobile applications, we recommend that you use Amazon Cognito. You can use +// Amazon Cognito with the [Amazon Web Services SDK for iOS Developer Guide]and the [Amazon Web Services SDK for Android Developer Guide] to uniquely identify a user. You can also +// supply the user with a consistent identity throughout the lifetime of an +// application. +// +// To learn more about Amazon Cognito, see [Amazon Cognito identity pools] in Amazon Cognito Developer Guide. +// +// Calling AssumeRoleWithWebIdentity does not require the use of Amazon Web +// Services security credentials. Therefore, you can distribute an application (for +// example, on mobile devices) that requests temporary security credentials without +// including long-term Amazon Web Services credentials in the application. You also +// don't need to deploy server-based proxy services that use long-term Amazon Web +// Services credentials. Instead, the identity of the caller is validated by using +// a token from the web identity provider. For a comparison of +// AssumeRoleWithWebIdentity with the other API operations that produce temporary +// credentials, see [Requesting Temporary Security Credentials]and [Comparing the Amazon Web Services STS API operations] in the IAM User Guide. +// +// The temporary security credentials returned by this API consist of an access +// key ID, a secret access key, and a security token. Applications can use these +// temporary security credentials to sign calls to Amazon Web Services service API +// operations. +// +// # Session Duration +// +// By default, the temporary security credentials created by +// AssumeRoleWithWebIdentity last for one hour. However, you can use the optional +// DurationSeconds parameter to specify the duration of your session. You can +// provide a value from 900 seconds (15 minutes) up to the maximum session duration +// setting for the role. This setting can have a value from 1 hour to 12 hours. To +// learn how to view the maximum value for your role, see [View the Maximum Session Duration Setting for a Role]in the IAM User Guide. +// The maximum session duration limit applies when you use the AssumeRole* API +// operations or the assume-role* CLI commands. However the limit does not apply +// when you use those operations to create a console URL. For more information, see +// [Using IAM Roles]in the IAM User Guide. +// +// # Permissions +// +// The temporary security credentials created by AssumeRoleWithWebIdentity can be +// used to make API calls to any Amazon Web Services service with the following +// exception: you cannot call the STS GetFederationToken or GetSessionToken API +// operations. +// +// (Optional) You can pass inline or managed [session policies] to this operation. You can pass a +// single JSON policy document to use as an inline session policy. You can also +// specify up to 10 managed policy Amazon Resource Names (ARNs) to use as managed +// session policies. The plaintext that you use for both inline and managed session +// policies can't exceed 2,048 characters. Passing policies to this operation +// returns new temporary credentials. The resulting session's permissions are the +// intersection of the role's identity-based policy and the session policies. You +// can use the role's temporary credentials in subsequent Amazon Web Services API +// calls to access resources in the account that owns the role. You cannot use +// session policies to grant more permissions than those allowed by the +// identity-based policy of the role that is being assumed. For more information, +// see [Session Policies]in the IAM User Guide. +// +// # Tags +// +// (Optional) You can configure your IdP to pass attributes into your web identity +// token as session tags. Each session tag consists of a key name and an associated +// value. For more information about session tags, see [Passing Session Tags in STS]in the IAM User Guide. +// +// You can pass up to 50 session tags. The plaintext session tag keys can’t exceed +// 128 characters and the values can’t exceed 256 characters. For these and +// additional limits, see [IAM and STS Character Limits]in the IAM User Guide. +// +// An Amazon Web Services conversion compresses the passed inline session policy, +// managed policy ARNs, and session tags into a packed binary format that has a +// separate limit. Your request can fail for this limit even if your plaintext +// meets the other requirements. The PackedPolicySize response element indicates +// by percentage how close the policies and tags for your request are to the upper +// size limit. +// +// You can pass a session tag with the same key as a tag that is attached to the +// role. When you do, the session tag overrides the role tag with the same key. +// +// An administrator must grant you the permissions necessary to pass session tags. +// The administrator can also create granular permissions to allow you to pass only +// specific session tags. For more information, see [Tutorial: Using Tags for Attribute-Based Access Control]in the IAM User Guide. +// +// You can set the session tags as transitive. Transitive tags persist during role +// chaining. For more information, see [Chaining Roles with Session Tags]in the IAM User Guide. +// +// # Identities +// +// Before your application can call AssumeRoleWithWebIdentity , you must have an +// identity token from a supported identity provider and create a role that the +// application can assume. The role that your application assumes must trust the +// identity provider that is associated with the identity token. In other words, +// the identity provider must be specified in the role's trust policy. +// +// Calling AssumeRoleWithWebIdentity can result in an entry in your CloudTrail +// logs. The entry includes the [Subject]of the provided web identity token. We recommend +// that you avoid using any personally identifiable information (PII) in this +// field. For example, you could instead use a GUID or a pairwise identifier, as [suggested in the OIDC specification]. +// +// For more information about how to use web identity federation and the // AssumeRoleWithWebIdentity API, see the following resources: -// - Using Web Identity Federation API Operations for Mobile Apps (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html) -// and Federation Through a Web-based Identity Provider (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity) -// . -// - Web Identity Federation Playground (https://aws.amazon.com/blogs/aws/the-aws-web-identity-federation-playground/) -// . Walk through the process of authenticating through Login with Amazon, +// +// [Using Web Identity Federation API Operations for Mobile Apps] +// - and [Federation Through a Web-based Identity Provider]. +// +// [Web Identity Federation Playground] +// - . Walk through the process of authenticating through Login with Amazon, // Facebook, or Google, getting temporary security credentials, and then using // those credentials to make a request to Amazon Web Services. -// - Amazon Web Services SDK for iOS Developer Guide (http://aws.amazon.com/sdkforios/) -// and Amazon Web Services SDK for Android Developer Guide (http://aws.amazon.com/sdkforandroid/) -// . These toolkits contain sample apps that show how to invoke the identity -// providers. The toolkits then show how to use the information from these +// +// [Amazon Web Services SDK for iOS Developer Guide] +// - and [Amazon Web Services SDK for Android Developer Guide]. These toolkits contain sample apps that show how to invoke the +// identity providers. The toolkits then show how to use the information from these // providers to get and use temporary security credentials. -// - Web Identity Federation with Mobile Applications (http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications) -// . This article discusses web identity federation and shows an example of how to -// use web identity federation to get access to content in Amazon S3. +// +// [Web Identity Federation with Mobile Applications] +// - . This article discusses web identity federation and shows an example of +// how to use web identity federation to get access to content in Amazon S3. +// +// [Amazon Web Services SDK for iOS Developer Guide]: http://aws.amazon.com/sdkforios/ +// [View the Maximum Session Duration Setting for a Role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session +// [Web Identity Federation Playground]: https://aws.amazon.com/blogs/aws/the-aws-web-identity-federation-playground/ +// [Amazon Web Services SDK for Android Developer Guide]: http://aws.amazon.com/sdkforandroid/ +// [IAM and STS Character Limits]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length +// [Comparing the Amazon Web Services STS API operations]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison +// [session policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session +// [Requesting Temporary Security Credentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html +// [Subject]: http://openid.net/specs/openid-connect-core-1_0.html#Claims +// [Tutorial: Using Tags for Attribute-Based Access Control]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html +// [Amazon Cognito identity pools]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html +// [Federation Through a Web-based Identity Provider]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity +// [Using IAM Roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html +// [Session Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session +// [Amazon Cognito federated identities]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html +// [Passing Session Tags in STS]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html +// [Chaining Roles with Session Tags]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining +// [Web Identity Federation with Mobile Applications]: http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications +// [Using Web Identity Federation API Operations for Mobile Apps]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html +// [suggested in the OIDC specification]: http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes func (c *Client) AssumeRoleWithWebIdentity(ctx context.Context, params *AssumeRoleWithWebIdentityInput, optFns ...func(*Options)) (*AssumeRoleWithWebIdentityOutput, error) { if params == nil { params = &AssumeRoleWithWebIdentityInput{} @@ -139,10 +177,11 @@ type AssumeRoleWithWebIdentityInput struct { // identifier that is associated with the user who is using your application. That // way, the temporary security credentials that your application will use are // associated with that user. This session name is included as part of the ARN and - // assumed role ID in the AssumedRoleUser response element. The regex used to - // validate this parameter is a string of characters consisting of upper- and - // lower-case alphanumeric characters with no spaces. You can also include - // underscores or any of the following characters: =,.@- + // assumed role ID in the AssumedRoleUser response element. + // + // The regex used to validate this parameter is a string of characters consisting + // of upper- and lower-case alphanumeric characters with no spaces. You can also + // include underscores or any of the following characters: =,.@- // // This member is required. RoleSessionName *string @@ -162,73 +201,90 @@ type AssumeRoleWithWebIdentityInput struct { // higher than this setting, the operation fails. For example, if you specify a // session duration of 12 hours, but your administrator set the maximum session // duration to 6 hours, your operation fails. To learn how to view the maximum - // value for your role, see View the Maximum Session Duration Setting for a Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) - // in the IAM User Guide. By default, the value is set to 3600 seconds. The - // DurationSeconds parameter is separate from the duration of a console session - // that you might request using the returned credentials. The request to the - // federation endpoint for a console sign-in token takes a SessionDuration + // value for your role, see [View the Maximum Session Duration Setting for a Role]in the IAM User Guide. + // + // By default, the value is set to 3600 seconds. + // + // The DurationSeconds parameter is separate from the duration of a console + // session that you might request using the returned credentials. The request to + // the federation endpoint for a console sign-in token takes a SessionDuration // parameter that specifies the maximum length of the console session. For more - // information, see Creating a URL that Enables Federated Users to Access the - // Amazon Web Services Management Console (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html) - // in the IAM User Guide. + // information, see [Creating a URL that Enables Federated Users to Access the Amazon Web Services Management Console]in the IAM User Guide. + // + // [View the Maximum Session Duration Setting for a Role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session + // [Creating a URL that Enables Federated Users to Access the Amazon Web Services Management Console]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html DurationSeconds *int32 // An IAM policy in JSON format that you want to use as an inline session policy. + // // This parameter is optional. Passing policies to this operation returns new // temporary credentials. The resulting session's permissions are the intersection // of the role's identity-based policy and the session policies. You can use the // role's temporary credentials in subsequent Amazon Web Services API calls to // access resources in the account that owns the role. You cannot use session // policies to grant more permissions than those allowed by the identity-based - // policy of the role that is being assumed. For more information, see Session - // Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // in the IAM User Guide. The plaintext that you use for both inline and managed - // session policies can't exceed 2,048 characters. The JSON policy characters can - // be any ASCII character from the space character to the end of the valid - // character list (\u0020 through \u00FF). It can also include the tab (\u0009), - // linefeed (\u000A), and carriage return (\u000D) characters. An Amazon Web - // Services conversion compresses the passed inline session policy, managed policy - // ARNs, and session tags into a packed binary format that has a separate limit. - // Your request can fail for this limit even if your plaintext meets the other - // requirements. The PackedPolicySize response element indicates by percentage how - // close the policies and tags for your request are to the upper size limit. + // policy of the role that is being assumed. For more information, see [Session Policies]in the IAM + // User Guide. + // + // The plaintext that you use for both inline and managed session policies can't + // exceed 2,048 characters. The JSON policy characters can be any ASCII character + // from the space character to the end of the valid character list (\u0020 through + // \u00FF). It can also include the tab (\u0009), linefeed (\u000A), and carriage + // return (\u000D) characters. + // + // An Amazon Web Services conversion compresses the passed inline session policy, + // managed policy ARNs, and session tags into a packed binary format that has a + // separate limit. Your request can fail for this limit even if your plaintext + // meets the other requirements. The PackedPolicySize response element indicates + // by percentage how close the policies and tags for your request are to the upper + // size limit. + // + // [Session Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session Policy *string // The Amazon Resource Names (ARNs) of the IAM managed policies that you want to // use as managed session policies. The policies must exist in the same account as - // the role. This parameter is optional. You can provide up to 10 managed policy - // ARNs. However, the plaintext that you use for both inline and managed session - // policies can't exceed 2,048 characters. For more information about ARNs, see - // Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the Amazon Web Services General Reference. An Amazon Web Services conversion - // compresses the passed inline session policy, managed policy ARNs, and session - // tags into a packed binary format that has a separate limit. Your request can - // fail for this limit even if your plaintext meets the other requirements. The - // PackedPolicySize response element indicates by percentage how close the policies - // and tags for your request are to the upper size limit. Passing policies to this - // operation returns new temporary credentials. The resulting session's permissions - // are the intersection of the role's identity-based policy and the session - // policies. You can use the role's temporary credentials in subsequent Amazon Web - // Services API calls to access resources in the account that owns the role. You - // cannot use session policies to grant more permissions than those allowed by the - // identity-based policy of the role that is being assumed. For more information, - // see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // in the IAM User Guide. + // the role. + // + // This parameter is optional. You can provide up to 10 managed policy ARNs. + // However, the plaintext that you use for both inline and managed session policies + // can't exceed 2,048 characters. For more information about ARNs, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces]in the + // Amazon Web Services General Reference. + // + // An Amazon Web Services conversion compresses the passed inline session policy, + // managed policy ARNs, and session tags into a packed binary format that has a + // separate limit. Your request can fail for this limit even if your plaintext + // meets the other requirements. The PackedPolicySize response element indicates + // by percentage how close the policies and tags for your request are to the upper + // size limit. + // + // Passing policies to this operation returns new temporary credentials. The + // resulting session's permissions are the intersection of the role's + // identity-based policy and the session policies. You can use the role's temporary + // credentials in subsequent Amazon Web Services API calls to access resources in + // the account that owns the role. You cannot use session policies to grant more + // permissions than those allowed by the identity-based policy of the role that is + // being assumed. For more information, see [Session Policies]in the IAM User Guide. + // + // [Session Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session + // [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html PolicyArns []types.PolicyDescriptorType // The fully qualified host component of the domain name of the OAuth 2.0 identity // provider. Do not specify this value for an OpenID Connect identity provider. + // // Currently www.amazon.com and graph.facebook.com are the only supported identity // providers for OAuth 2.0 access tokens. Do not include URL schemes and port - // numbers. Do not specify this value for OpenID Connect ID tokens. + // numbers. + // + // Do not specify this value for OpenID Connect ID tokens. ProviderId *string noSmithyDocumentSerde } -// Contains the response to a successful AssumeRoleWithWebIdentity request, -// including temporary Amazon Web Services credentials that can be used to make -// Amazon Web Services requests. +// Contains the response to a successful AssumeRoleWithWebIdentity request, including temporary Amazon Web +// Services credentials that can be used to make Amazon Web Services requests. type AssumeRoleWithWebIdentityOutput struct { // The Amazon Resource Name (ARN) and the assumed role ID, which are identifiers @@ -244,9 +300,10 @@ type AssumeRoleWithWebIdentityOutput struct { Audience *string // The temporary security credentials, which include an access key ID, a secret - // access key, and a security token. The size of the security token that STS API - // operations return is not fixed. We strongly recommend that you make no - // assumptions about the maximum size. + // access key, and a security token. + // + // The size of the security token that STS API operations return is not fixed. We + // strongly recommend that you make no assumptions about the maximum size. Credentials *types.Credentials // A percentage value that indicates the packed size of the session policies and @@ -255,30 +312,34 @@ type AssumeRoleWithWebIdentityOutput struct { // allowed space. PackedPolicySize *int32 - // The issuing authority of the web identity token presented. For OpenID Connect + // The issuing authority of the web identity token presented. For OpenID Connect // ID tokens, this contains the value of the iss field. For OAuth 2.0 access // tokens, this contains the value of the ProviderId parameter that was passed in // the AssumeRoleWithWebIdentity request. Provider *string // The value of the source identity that is returned in the JSON web token (JWT) - // from the identity provider. You can require users to set a source identity value - // when they assume a role. You do this by using the sts:SourceIdentity condition - // key in a role trust policy. That way, actions that are taken with the role are - // associated with that user. After the source identity is set, the value cannot be - // changed. It is present in the request for all actions that are taken by the role - // and persists across chained role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts#iam-term-role-chaining) - // sessions. You can configure your identity provider to use an attribute + // from the identity provider. + // + // You can require users to set a source identity value when they assume a role. + // You do this by using the sts:SourceIdentity condition key in a role trust + // policy. That way, actions that are taken with the role are associated with that + // user. After the source identity is set, the value cannot be changed. It is + // present in the request for all actions that are taken by the role and persists + // across [chained role]sessions. You can configure your identity provider to use an attribute // associated with your users, like user name or email, as the source identity when // calling AssumeRoleWithWebIdentity . You do this by adding a claim to the JSON - // web token. To learn more about OIDC tokens and claims, see Using Tokens with - // User Pools (https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html) - // in the Amazon Cognito Developer Guide. For more information about using source - // identity, see Monitor and control actions taken with assumed roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html) - // in the IAM User Guide. The regex used to validate this parameter is a string of - // characters consisting of upper- and lower-case alphanumeric characters with no - // spaces. You can also include underscores or any of the following characters: - // =,.@- + // web token. To learn more about OIDC tokens and claims, see [Using Tokens with User Pools]in the Amazon + // Cognito Developer Guide. For more information about using source identity, see [Monitor and control actions taken with assumed roles] + // in the IAM User Guide. + // + // The regex used to validate this parameter is a string of characters consisting + // of upper- and lower-case alphanumeric characters with no spaces. You can also + // include underscores or any of the following characters: =,.@- + // + // [chained role]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts#iam-term-role-chaining + // [Monitor and control actions taken with assumed roles]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html + // [Using Tokens with User Pools]: https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html SourceIdentity *string // The unique user identifier that is returned by the identity provider. This diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_DecodeAuthorizationMessage.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_DecodeAuthorizationMessage.go index b4ad54ab..186a8cb5 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_DecodeAuthorizationMessage.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_DecodeAuthorizationMessage.go @@ -11,28 +11,39 @@ import ( ) // Decodes additional information about the authorization status of a request from -// an encoded message returned in response to an Amazon Web Services request. For -// example, if a user is not authorized to perform an operation that he or she has -// requested, the request returns a Client.UnauthorizedOperation response (an HTTP -// 403 response). Some Amazon Web Services operations additionally return an -// encoded message that can provide details about this authorization failure. Only -// certain Amazon Web Services operations return an encoded authorization message. -// The documentation for an individual operation indicates whether that operation -// returns an encoded message in addition to returning an HTTP code. The message is -// encoded because the details of the authorization status can contain privileged -// information that the user who requested the operation should not see. To decode -// an authorization status message, a user must be granted permissions through an -// IAM policy (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) -// to request the DecodeAuthorizationMessage ( sts:DecodeAuthorizationMessage ) -// action. The decoded message includes the following type of information: +// an encoded message returned in response to an Amazon Web Services request. +// +// For example, if a user is not authorized to perform an operation that he or she +// has requested, the request returns a Client.UnauthorizedOperation response (an +// HTTP 403 response). Some Amazon Web Services operations additionally return an +// encoded message that can provide details about this authorization failure. +// +// Only certain Amazon Web Services operations return an encoded authorization +// message. The documentation for an individual operation indicates whether that +// operation returns an encoded message in addition to returning an HTTP code. +// +// The message is encoded because the details of the authorization status can +// contain privileged information that the user who requested the operation should +// not see. To decode an authorization status message, a user must be granted +// permissions through an IAM [policy]to request the DecodeAuthorizationMessage ( +// sts:DecodeAuthorizationMessage ) action. +// +// The decoded message includes the following type of information: +// // - Whether the request was denied due to an explicit deny or due to the -// absence of an explicit allow. For more information, see Determining Whether a -// Request is Allowed or Denied (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow) -// in the IAM User Guide. +// absence of an explicit allow. For more information, see [Determining Whether a Request is Allowed or Denied]in the IAM User +// Guide. +// // - The principal who made the request. +// // - The requested action. +// // - The requested resource. +// // - The values of condition keys in the context of the user's request. +// +// [Determining Whether a Request is Allowed or Denied]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow +// [policy]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html func (c *Client) DecodeAuthorizationMessage(ctx context.Context, params *DecodeAuthorizationMessageInput, optFns ...func(*Options)) (*DecodeAuthorizationMessageOutput, error) { if params == nil { params = &DecodeAuthorizationMessageInput{} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetAccessKeyInfo.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetAccessKeyInfo.go index 1f7cbcc2..b6eb6401 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetAccessKeyInfo.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetAccessKeyInfo.go @@ -10,23 +10,31 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the account identifier for the specified access key ID. Access keys -// consist of two parts: an access key ID (for example, AKIAIOSFODNN7EXAMPLE ) and -// a secret access key (for example, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY ). -// For more information about access keys, see Managing Access Keys for IAM Users (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) -// in the IAM User Guide. When you pass an access key ID to this operation, it -// returns the ID of the Amazon Web Services account to which the keys belong. -// Access key IDs beginning with AKIA are long-term credentials for an IAM user or -// the Amazon Web Services account root user. Access key IDs beginning with ASIA -// are temporary credentials that are created using STS operations. If the account -// in the response belongs to you, you can sign in as the root user and review your -// root user access keys. Then, you can pull a credentials report (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html) -// to learn which IAM user owns the keys. To learn who requested the temporary -// credentials for an ASIA access key, view the STS events in your CloudTrail logs (https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html) -// in the IAM User Guide. This operation does not indicate the state of the access -// key. The key might be active, inactive, or deleted. Active keys might not have -// permissions to perform an operation. Providing a deleted access key might return -// an error that the key doesn't exist. +// Returns the account identifier for the specified access key ID. +// +// Access keys consist of two parts: an access key ID (for example, +// AKIAIOSFODNN7EXAMPLE ) and a secret access key (for example, +// wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY ). For more information about access +// keys, see [Managing Access Keys for IAM Users]in the IAM User Guide. +// +// When you pass an access key ID to this operation, it returns the ID of the +// Amazon Web Services account to which the keys belong. Access key IDs beginning +// with AKIA are long-term credentials for an IAM user or the Amazon Web Services +// account root user. Access key IDs beginning with ASIA are temporary credentials +// that are created using STS operations. If the account in the response belongs to +// you, you can sign in as the root user and review your root user access keys. +// Then, you can pull a [credentials report]to learn which IAM user owns the keys. To learn who +// requested the temporary credentials for an ASIA access key, view the STS events +// in your [CloudTrail logs]in the IAM User Guide. +// +// This operation does not indicate the state of the access key. The key might be +// active, inactive, or deleted. Active keys might not have permissions to perform +// an operation. Providing a deleted access key might return an error that the key +// doesn't exist. +// +// [credentials report]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html +// [CloudTrail logs]: https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html +// [Managing Access Keys for IAM Users]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html func (c *Client) GetAccessKeyInfo(ctx context.Context, params *GetAccessKeyInfoInput, optFns ...func(*Options)) (*GetAccessKeyInfoOutput, error) { if params == nil { params = &GetAccessKeyInfoInput{} @@ -44,9 +52,10 @@ func (c *Client) GetAccessKeyInfo(ctx context.Context, params *GetAccessKeyInfoI type GetAccessKeyInfoInput struct { - // The identifier of an access key. This parameter allows (through its regex - // pattern) a string of characters that can consist of any upper- or lowercase - // letter or digit. + // The identifier of an access key. + // + // This parameter allows (through its regex pattern) a string of characters that + // can consist of any upper- or lowercase letter or digit. // // This member is required. AccessKeyId *string diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetCallerIdentity.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetCallerIdentity.go index acb7ede4..ed4c8283 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetCallerIdentity.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetCallerIdentity.go @@ -12,13 +12,15 @@ import ( ) // Returns details about the IAM user or role whose credentials are used to call -// the operation. No permissions are required to perform this operation. If an -// administrator attaches a policy to your identity that explicitly denies access -// to the sts:GetCallerIdentity action, you can still perform this operation. -// Permissions are not required because the same information is returned when -// access is denied. To view an example response, see I Am Not Authorized to -// Perform: iam:DeleteVirtualMFADevice (https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_access-denied-delete-mfa) -// in the IAM User Guide. +// the operation. +// +// No permissions are required to perform this operation. If an administrator +// attaches a policy to your identity that explicitly denies access to the +// sts:GetCallerIdentity action, you can still perform this operation. Permissions +// are not required because the same information is returned when access is denied. +// To view an example response, see [I Am Not Authorized to Perform: iam:DeleteVirtualMFADevice]in the IAM User Guide. +// +// [I Am Not Authorized to Perform: iam:DeleteVirtualMFADevice]: https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_access-denied-delete-mfa func (c *Client) GetCallerIdentity(ctx context.Context, params *GetCallerIdentityInput, optFns ...func(*Options)) (*GetCallerIdentityOutput, error) { if params == nil { params = &GetCallerIdentityInput{} @@ -38,8 +40,8 @@ type GetCallerIdentityInput struct { noSmithyDocumentSerde } -// Contains the response to a successful GetCallerIdentity request, including -// information about the entity making the request. +// Contains the response to a successful GetCallerIdentity request, including information about the +// entity making the request. type GetCallerIdentityOutput struct { // The Amazon Web Services account ID number of the account that owns or contains @@ -51,8 +53,10 @@ type GetCallerIdentityOutput struct { // The unique identifier of the calling entity. The exact value depends on the // type of entity that is making the call. The values returned are those listed in - // the aws:userid column in the Principal table (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable) - // found on the Policy Variables reference page in the IAM User Guide. + // the aws:userid column in the [Principal table]found on the Policy Variables reference page in + // the IAM User Guide. + // + // [Principal table]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable UserId *string // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetFederationToken.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetFederationToken.go index 3679618c..37bde0cc 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetFederationToken.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetFederationToken.go @@ -14,74 +14,100 @@ import ( // Returns a set of temporary security credentials (consisting of an access key // ID, a secret access key, and a security token) for a user. A typical use is in a // proxy application that gets temporary security credentials on behalf of -// distributed applications inside a corporate network. You must call the -// GetFederationToken operation using the long-term security credentials of an IAM -// user. As a result, this call is appropriate in contexts where those credentials -// can be safeguarded, usually in a server-based application. For a comparison of -// GetFederationToken with the other API operations that produce temporary -// credentials, see Requesting Temporary Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) -// and Comparing the Amazon Web Services STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) -// in the IAM User Guide. Although it is possible to call GetFederationToken using -// the security credentials of an Amazon Web Services account root user rather than -// an IAM user that you create for the purpose of a proxy application, we do not -// recommend it. For more information, see Safeguard your root user credentials -// and don't use them for everyday tasks (https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials) -// in the IAM User Guide. You can create a mobile-based or browser-based app that -// can authenticate users using a web identity provider like Login with Amazon, -// Facebook, Google, or an OpenID Connect-compatible identity provider. In this -// case, we recommend that you use Amazon Cognito (http://aws.amazon.com/cognito/) -// or AssumeRoleWithWebIdentity . For more information, see Federation Through a -// Web-based Identity Provider (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity) -// in the IAM User Guide. Session duration The temporary credentials are valid for -// the specified duration, from 900 seconds (15 minutes) up to a maximum of 129,600 -// seconds (36 hours). The default session duration is 43,200 seconds (12 hours). -// Temporary credentials obtained by using the root user credentials have a maximum -// duration of 3,600 seconds (1 hour). Permissions You can use the temporary -// credentials created by GetFederationToken in any Amazon Web Services service -// with the following exceptions: +// distributed applications inside a corporate network. +// +// You must call the GetFederationToken operation using the long-term security +// credentials of an IAM user. As a result, this call is appropriate in contexts +// where those credentials can be safeguarded, usually in a server-based +// application. For a comparison of GetFederationToken with the other API +// operations that produce temporary credentials, see [Requesting Temporary Security Credentials]and [Comparing the Amazon Web Services STS API operations] in the IAM User Guide. +// +// Although it is possible to call GetFederationToken using the security +// credentials of an Amazon Web Services account root user rather than an IAM user +// that you create for the purpose of a proxy application, we do not recommend it. +// For more information, see [Safeguard your root user credentials and don't use them for everyday tasks]in the IAM User Guide. +// +// You can create a mobile-based or browser-based app that can authenticate users +// using a web identity provider like Login with Amazon, Facebook, Google, or an +// OpenID Connect-compatible identity provider. In this case, we recommend that you +// use [Amazon Cognito]or AssumeRoleWithWebIdentity . For more information, see [Federation Through a Web-based Identity Provider] in the IAM User +// Guide. +// +// # Session duration +// +// The temporary credentials are valid for the specified duration, from 900 +// seconds (15 minutes) up to a maximum of 129,600 seconds (36 hours). The default +// session duration is 43,200 seconds (12 hours). Temporary credentials obtained by +// using the root user credentials have a maximum duration of 3,600 seconds (1 +// hour). +// +// # Permissions +// +// You can use the temporary credentials created by GetFederationToken in any +// Amazon Web Services service with the following exceptions: +// // - You cannot call any IAM operations using the CLI or the Amazon Web Services // API. This limitation does not apply to console sessions. +// // - You cannot call any STS operations except GetCallerIdentity . // -// You can use temporary credentials for single sign-on (SSO) to the console. You -// must pass an inline or managed session policy (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) -// to this operation. You can pass a single JSON policy document to use as an -// inline session policy. You can also specify up to 10 managed policy Amazon -// Resource Names (ARNs) to use as managed session policies. The plaintext that you -// use for both inline and managed session policies can't exceed 2,048 characters. +// You can use temporary credentials for single sign-on (SSO) to the console. +// +// You must pass an inline or managed [session policy] to this operation. You can pass a single +// JSON policy document to use as an inline session policy. You can also specify up +// to 10 managed policy Amazon Resource Names (ARNs) to use as managed session +// policies. The plaintext that you use for both inline and managed session +// policies can't exceed 2,048 characters. +// // Though the session policy parameters are optional, if you do not pass a policy, // then the resulting federated user session has no permissions. When you pass // session policies, the session permissions are the intersection of the IAM user // policies and the session policies that you pass. This gives you a way to further // restrict the permissions for a federated user. You cannot use session policies // to grant more permissions than those that are defined in the permissions policy -// of the IAM user. For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) -// in the IAM User Guide. For information about using GetFederationToken to create -// temporary security credentials, see GetFederationToken—Federation Through a -// Custom Identity Broker (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken) -// . You can use the credentials to access a resource that has a resource-based +// of the IAM user. For more information, see [Session Policies]in the IAM User Guide. For +// information about using GetFederationToken to create temporary security +// credentials, see [GetFederationToken—Federation Through a Custom Identity Broker]. +// +// You can use the credentials to access a resource that has a resource-based // policy. If that policy specifically references the federated user session in the // Principal element of the policy, the session has the permissions allowed by the // policy. These permissions are granted in addition to the permissions granted by -// the session policies. Tags (Optional) You can pass tag key-value pairs to your -// session. These are called session tags. For more information about session tags, -// see Passing Session Tags in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) -// in the IAM User Guide. You can create a mobile-based or browser-based app that -// can authenticate users using a web identity provider like Login with Amazon, -// Facebook, Google, or an OpenID Connect-compatible identity provider. In this -// case, we recommend that you use Amazon Cognito (http://aws.amazon.com/cognito/) -// or AssumeRoleWithWebIdentity . For more information, see Federation Through a -// Web-based Identity Provider (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity) -// in the IAM User Guide. An administrator must grant you the permissions necessary -// to pass session tags. The administrator can also create granular permissions to -// allow you to pass only specific session tags. For more information, see -// Tutorial: Using Tags for Attribute-Based Access Control (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) -// in the IAM User Guide. Tag key–value pairs are not case sensitive, but case is -// preserved. This means that you cannot have separate Department and department -// tag keys. Assume that the user that you are federating has the Department = -// Marketing tag and you pass the department = engineering session tag. Department -// and department are not saved as separate tags, and the session tag passed in -// the request takes precedence over the user tag. +// the session policies. +// +// # Tags +// +// (Optional) You can pass tag key-value pairs to your session. These are called +// session tags. For more information about session tags, see [Passing Session Tags in STS]in the IAM User +// Guide. +// +// You can create a mobile-based or browser-based app that can authenticate users +// using a web identity provider like Login with Amazon, Facebook, Google, or an +// OpenID Connect-compatible identity provider. In this case, we recommend that you +// use [Amazon Cognito]or AssumeRoleWithWebIdentity . For more information, see [Federation Through a Web-based Identity Provider] in the IAM User +// Guide. +// +// An administrator must grant you the permissions necessary to pass session tags. +// The administrator can also create granular permissions to allow you to pass only +// specific session tags. For more information, see [Tutorial: Using Tags for Attribute-Based Access Control]in the IAM User Guide. +// +// Tag key–value pairs are not case sensitive, but case is preserved. This means +// that you cannot have separate Department and department tag keys. Assume that +// the user that you are federating has the Department = Marketing tag and you +// pass the department = engineering session tag. Department and department are +// not saved as separate tags, and the session tag passed in the request takes +// precedence over the user tag. +// +// [Federation Through a Web-based Identity Provider]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity +// [session policy]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session +// [Amazon Cognito]: http://aws.amazon.com/cognito/ +// [Session Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session +// [Passing Session Tags in STS]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html +// [GetFederationToken—Federation Through a Custom Identity Broker]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken +// [Comparing the Amazon Web Services STS API operations]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison +// [Safeguard your root user credentials and don't use them for everyday tasks]: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials +// [Requesting Temporary Security Credentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html +// [Tutorial: Using Tags for Attribute-Based Access Control]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html func (c *Client) GetFederationToken(ctx context.Context, params *GetFederationTokenInput, optFns ...func(*Options)) (*GetFederationTokenOutput, error) { if params == nil { params = &GetFederationTokenInput{} @@ -102,10 +128,11 @@ type GetFederationTokenInput struct { // The name of the federated user. The name is used as an identifier for the // temporary security credentials (such as Bob ). For example, you can reference // the federated user name in a resource-based policy, such as in an Amazon S3 - // bucket policy. The regex used to validate this parameter is a string of - // characters consisting of upper- and lower-case alphanumeric characters with no - // spaces. You can also include underscores or any of the following characters: - // =,.@- + // bucket policy. + // + // The regex used to validate this parameter is a string of characters consisting + // of upper- and lower-case alphanumeric characters with no spaces. You can also + // include underscores or any of the following characters: =,.@- // // This member is required. Name *string @@ -119,99 +146,127 @@ type GetFederationTokenInput struct { DurationSeconds *int32 // An IAM policy in JSON format that you want to use as an inline session policy. - // You must pass an inline or managed session policy (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // to this operation. You can pass a single JSON policy document to use as an - // inline session policy. You can also specify up to 10 managed policy Amazon - // Resource Names (ARNs) to use as managed session policies. This parameter is - // optional. However, if you do not pass any session policies, then the resulting - // federated user session has no permissions. When you pass session policies, the - // session permissions are the intersection of the IAM user policies and the - // session policies that you pass. This gives you a way to further restrict the - // permissions for a federated user. You cannot use session policies to grant more - // permissions than those that are defined in the permissions policy of the IAM - // user. For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // in the IAM User Guide. The resulting credentials can be used to access a - // resource that has a resource-based policy. If that policy specifically - // references the federated user session in the Principal element of the policy, - // the session has the permissions allowed by the policy. These permissions are - // granted in addition to the permissions that are granted by the session policies. + // + // You must pass an inline or managed [session policy] to this operation. You can pass a single + // JSON policy document to use as an inline session policy. You can also specify up + // to 10 managed policy Amazon Resource Names (ARNs) to use as managed session + // policies. + // + // This parameter is optional. However, if you do not pass any session policies, + // then the resulting federated user session has no permissions. + // + // When you pass session policies, the session permissions are the intersection of + // the IAM user policies and the session policies that you pass. This gives you a + // way to further restrict the permissions for a federated user. You cannot use + // session policies to grant more permissions than those that are defined in the + // permissions policy of the IAM user. For more information, see [Session Policies]in the IAM User + // Guide. + // + // The resulting credentials can be used to access a resource that has a + // resource-based policy. If that policy specifically references the federated user + // session in the Principal element of the policy, the session has the permissions + // allowed by the policy. These permissions are granted in addition to the + // permissions that are granted by the session policies. + // // The plaintext that you use for both inline and managed session policies can't // exceed 2,048 characters. The JSON policy characters can be any ASCII character // from the space character to the end of the valid character list (\u0020 through // \u00FF). It can also include the tab (\u0009), linefeed (\u000A), and carriage - // return (\u000D) characters. An Amazon Web Services conversion compresses the - // passed inline session policy, managed policy ARNs, and session tags into a - // packed binary format that has a separate limit. Your request can fail for this - // limit even if your plaintext meets the other requirements. The PackedPolicySize - // response element indicates by percentage how close the policies and tags for - // your request are to the upper size limit. + // return (\u000D) characters. + // + // An Amazon Web Services conversion compresses the passed inline session policy, + // managed policy ARNs, and session tags into a packed binary format that has a + // separate limit. Your request can fail for this limit even if your plaintext + // meets the other requirements. The PackedPolicySize response element indicates + // by percentage how close the policies and tags for your request are to the upper + // size limit. + // + // [session policy]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session + // [Session Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session Policy *string // The Amazon Resource Names (ARNs) of the IAM managed policies that you want to // use as a managed session policy. The policies must exist in the same account as - // the IAM user that is requesting federated access. You must pass an inline or - // managed session policy (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // to this operation. You can pass a single JSON policy document to use as an - // inline session policy. You can also specify up to 10 managed policy Amazon - // Resource Names (ARNs) to use as managed session policies. The plaintext that you - // use for both inline and managed session policies can't exceed 2,048 characters. - // You can provide up to 10 managed policy ARNs. For more information about ARNs, - // see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the Amazon Web Services General Reference. This parameter is optional. - // However, if you do not pass any session policies, then the resulting federated - // user session has no permissions. When you pass session policies, the session - // permissions are the intersection of the IAM user policies and the session - // policies that you pass. This gives you a way to further restrict the permissions - // for a federated user. You cannot use session policies to grant more permissions - // than those that are defined in the permissions policy of the IAM user. For more - // information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // in the IAM User Guide. The resulting credentials can be used to access a - // resource that has a resource-based policy. If that policy specifically - // references the federated user session in the Principal element of the policy, - // the session has the permissions allowed by the policy. These permissions are - // granted in addition to the permissions that are granted by the session policies. + // the IAM user that is requesting federated access. + // + // You must pass an inline or managed [session policy] to this operation. You can pass a single + // JSON policy document to use as an inline session policy. You can also specify up + // to 10 managed policy Amazon Resource Names (ARNs) to use as managed session + // policies. The plaintext that you use for both inline and managed session + // policies can't exceed 2,048 characters. You can provide up to 10 managed policy + // ARNs. For more information about ARNs, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces]in the Amazon Web Services General + // Reference. + // + // This parameter is optional. However, if you do not pass any session policies, + // then the resulting federated user session has no permissions. + // + // When you pass session policies, the session permissions are the intersection of + // the IAM user policies and the session policies that you pass. This gives you a + // way to further restrict the permissions for a federated user. You cannot use + // session policies to grant more permissions than those that are defined in the + // permissions policy of the IAM user. For more information, see [Session Policies]in the IAM User + // Guide. + // + // The resulting credentials can be used to access a resource that has a + // resource-based policy. If that policy specifically references the federated user + // session in the Principal element of the policy, the session has the permissions + // allowed by the policy. These permissions are granted in addition to the + // permissions that are granted by the session policies. + // // An Amazon Web Services conversion compresses the passed inline session policy, // managed policy ARNs, and session tags into a packed binary format that has a // separate limit. Your request can fail for this limit even if your plaintext // meets the other requirements. The PackedPolicySize response element indicates // by percentage how close the policies and tags for your request are to the upper // size limit. + // + // [session policy]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session + // [Session Policies]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session + // [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html PolicyArns []types.PolicyDescriptorType // A list of session tags. Each session tag consists of a key name and an - // associated value. For more information about session tags, see Passing Session - // Tags in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) - // in the IAM User Guide. This parameter is optional. You can pass up to 50 session - // tags. The plaintext session tag keys can’t exceed 128 characters and the values - // can’t exceed 256 characters. For these and additional limits, see IAM and STS - // Character Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) - // in the IAM User Guide. An Amazon Web Services conversion compresses the passed - // inline session policy, managed policy ARNs, and session tags into a packed - // binary format that has a separate limit. Your request can fail for this limit - // even if your plaintext meets the other requirements. The PackedPolicySize - // response element indicates by percentage how close the policies and tags for - // your request are to the upper size limit. You can pass a session tag with the - // same key as a tag that is already attached to the user you are federating. When - // you do, session tags override a user tag with the same key. Tag key–value pairs - // are not case sensitive, but case is preserved. This means that you cannot have - // separate Department and department tag keys. Assume that the role has the - // Department = Marketing tag and you pass the department = engineering session - // tag. Department and department are not saved as separate tags, and the session - // tag passed in the request takes precedence over the role tag. + // associated value. For more information about session tags, see [Passing Session Tags in STS]in the IAM User + // Guide. + // + // This parameter is optional. You can pass up to 50 session tags. The plaintext + // session tag keys can’t exceed 128 characters and the values can’t exceed 256 + // characters. For these and additional limits, see [IAM and STS Character Limits]in the IAM User Guide. + // + // An Amazon Web Services conversion compresses the passed inline session policy, + // managed policy ARNs, and session tags into a packed binary format that has a + // separate limit. Your request can fail for this limit even if your plaintext + // meets the other requirements. The PackedPolicySize response element indicates + // by percentage how close the policies and tags for your request are to the upper + // size limit. + // + // You can pass a session tag with the same key as a tag that is already attached + // to the user you are federating. When you do, session tags override a user tag + // with the same key. + // + // Tag key–value pairs are not case sensitive, but case is preserved. This means + // that you cannot have separate Department and department tag keys. Assume that + // the role has the Department = Marketing tag and you pass the department = + // engineering session tag. Department and department are not saved as separate + // tags, and the session tag passed in the request takes precedence over the role + // tag. + // + // [Passing Session Tags in STS]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html + // [IAM and STS Character Limits]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length Tags []types.Tag noSmithyDocumentSerde } -// Contains the response to a successful GetFederationToken request, including -// temporary Amazon Web Services credentials that can be used to make Amazon Web -// Services requests. +// Contains the response to a successful GetFederationToken request, including temporary Amazon Web +// Services credentials that can be used to make Amazon Web Services requests. type GetFederationTokenOutput struct { // The temporary security credentials, which include an access key ID, a secret - // access key, and a security (or session) token. The size of the security token - // that STS API operations return is not fixed. We strongly recommend that you make - // no assumptions about the maximum size. + // access key, and a security (or session) token. + // + // The size of the security token that STS API operations return is not fixed. We + // strongly recommend that you make no assumptions about the maximum size. Credentials *types.Credentials // Identifiers for the federated user associated with the credentials (such as diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetSessionToken.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetSessionToken.go index 751fb147..097ccd84 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetSessionToken.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/api_op_GetSessionToken.go @@ -15,43 +15,58 @@ import ( // IAM user. The credentials consist of an access key ID, a secret access key, and // a security token. Typically, you use GetSessionToken if you want to use MFA to // protect programmatic calls to specific Amazon Web Services API operations like -// Amazon EC2 StopInstances . MFA-enabled IAM users must call GetSessionToken and -// submit an MFA code that is associated with their MFA device. Using the temporary -// security credentials that the call returns, IAM users can then make programmatic -// calls to API operations that require MFA authentication. An incorrect MFA code -// causes the API to return an access denied error. For a comparison of -// GetSessionToken with the other API operations that produce temporary -// credentials, see Requesting Temporary Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) -// and Comparing the Amazon Web Services STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) -// in the IAM User Guide. No permissions are required for users to perform this -// operation. The purpose of the sts:GetSessionToken operation is to authenticate -// the user using MFA. You cannot use policies to control authentication -// operations. For more information, see Permissions for GetSessionToken (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getsessiontoken.html) -// in the IAM User Guide. Session Duration The GetSessionToken operation must be -// called by using the long-term Amazon Web Services security credentials of an IAM -// user. Credentials that are created by IAM users are valid for the duration that -// you specify. This duration can range from 900 seconds (15 minutes) up to a -// maximum of 129,600 seconds (36 hours), with a default of 43,200 seconds (12 -// hours). Credentials based on account credentials can range from 900 seconds (15 -// minutes) up to 3,600 seconds (1 hour), with a default of 1 hour. Permissions The -// temporary security credentials created by GetSessionToken can be used to make -// API calls to any Amazon Web Services service with the following exceptions: +// Amazon EC2 StopInstances . +// +// MFA-enabled IAM users must call GetSessionToken and submit an MFA code that is +// associated with their MFA device. Using the temporary security credentials that +// the call returns, IAM users can then make programmatic calls to API operations +// that require MFA authentication. An incorrect MFA code causes the API to return +// an access denied error. For a comparison of GetSessionToken with the other API +// operations that produce temporary credentials, see [Requesting Temporary Security Credentials]and [Comparing the Amazon Web Services STS API operations] in the IAM User Guide. +// +// No permissions are required for users to perform this operation. The purpose of +// the sts:GetSessionToken operation is to authenticate the user using MFA. You +// cannot use policies to control authentication operations. For more information, +// see [Permissions for GetSessionToken]in the IAM User Guide. +// +// # Session Duration +// +// The GetSessionToken operation must be called by using the long-term Amazon Web +// Services security credentials of an IAM user. Credentials that are created by +// IAM users are valid for the duration that you specify. This duration can range +// from 900 seconds (15 minutes) up to a maximum of 129,600 seconds (36 hours), +// with a default of 43,200 seconds (12 hours). Credentials based on account +// credentials can range from 900 seconds (15 minutes) up to 3,600 seconds (1 +// hour), with a default of 1 hour. +// +// # Permissions +// +// The temporary security credentials created by GetSessionToken can be used to +// make API calls to any Amazon Web Services service with the following exceptions: +// // - You cannot call any IAM API operations unless MFA authentication // information is included in the request. +// // - You cannot call any STS API except AssumeRole or GetCallerIdentity . // // The credentials that GetSessionToken returns are based on permissions // associated with the IAM user whose credentials were used to call the operation. -// The temporary credentials have the same permissions as the IAM user. Although it -// is possible to call GetSessionToken using the security credentials of an Amazon -// Web Services account root user rather than an IAM user, we do not recommend it. -// If GetSessionToken is called using root user credentials, the temporary -// credentials have root user permissions. For more information, see Safeguard -// your root user credentials and don't use them for everyday tasks (https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials) -// in the IAM User Guide For more information about using GetSessionToken to -// create temporary credentials, see Temporary Credentials for Users in Untrusted -// Environments (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken) -// in the IAM User Guide. +// The temporary credentials have the same permissions as the IAM user. +// +// Although it is possible to call GetSessionToken using the security credentials +// of an Amazon Web Services account root user rather than an IAM user, we do not +// recommend it. If GetSessionToken is called using root user credentials, the +// temporary credentials have root user permissions. For more information, see [Safeguard your root user credentials and don't use them for everyday tasks]in +// the IAM User Guide +// +// For more information about using GetSessionToken to create temporary +// credentials, see [Temporary Credentials for Users in Untrusted Environments]in the IAM User Guide. +// +// [Permissions for GetSessionToken]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getsessiontoken.html +// [Comparing the Amazon Web Services STS API operations]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison +// [Temporary Credentials for Users in Untrusted Environments]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken +// [Safeguard your root user credentials and don't use them for everyday tasks]: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials +// [Requesting Temporary Security Credentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html func (c *Client) GetSessionToken(ctx context.Context, params *GetSessionTokenInput, optFns ...func(*Options)) (*GetSessionTokenOutput, error) { if params == nil { params = &GetSessionTokenInput{} @@ -83,10 +98,11 @@ type GetSessionTokenInput struct { // number for a hardware device (such as GAHT12345678 ) or an Amazon Resource Name // (ARN) for a virtual device (such as arn:aws:iam::123456789012:mfa/user ). You // can find the device for an IAM user by going to the Amazon Web Services - // Management Console and viewing the user's security credentials. The regex used - // to validate this parameter is a string of characters consisting of upper- and - // lower-case alphanumeric characters with no spaces. You can also include - // underscores or any of the following characters: =,.@:/- + // Management Console and viewing the user's security credentials. + // + // The regex used to validate this parameter is a string of characters consisting + // of upper- and lower-case alphanumeric characters with no spaces. You can also + // include underscores or any of the following characters: =,.@:/- SerialNumber *string // The value provided by the MFA device, if MFA is required. If any policy @@ -94,22 +110,24 @@ type GetSessionTokenInput struct { // authentication is required, the user must provide a code when requesting a set // of temporary security credentials. A user who fails to provide the code receives // an "access denied" response when requesting resources that require MFA - // authentication. The format for this parameter, as described by its regex - // pattern, is a sequence of six numeric digits. + // authentication. + // + // The format for this parameter, as described by its regex pattern, is a sequence + // of six numeric digits. TokenCode *string noSmithyDocumentSerde } -// Contains the response to a successful GetSessionToken request, including -// temporary Amazon Web Services credentials that can be used to make Amazon Web -// Services requests. +// Contains the response to a successful GetSessionToken request, including temporary Amazon Web +// Services credentials that can be used to make Amazon Web Services requests. type GetSessionTokenOutput struct { // The temporary security credentials, which include an access key ID, a secret - // access key, and a security (or session) token. The size of the security token - // that STS API operations return is not fixed. We strongly recommend that you make - // no assumptions about the maximum size. + // access key, and a security (or session) token. + // + // The size of the security token that STS API operations return is not fixed. We + // strongly recommend that you make no assumptions about the maximum size. Credentials *types.Credentials // Metadata pertaining to the operation's result. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/deserializers.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/deserializers.go index 5d634ce3..7e4346ec 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/deserializers.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/deserializers.go @@ -20,8 +20,17 @@ import ( "io" "strconv" "strings" + "time" ) +func deserializeS3Expires(v string) (*time.Time, error) { + t, err := smithytime.ParseHTTPDate(v) + if err != nil { + return nil, nil + } + return &t, nil +} + type awsAwsquery_deserializeOpAssumeRole struct { } diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/doc.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/doc.go index d963fd8d..cbb19c7f 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/doc.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/doc.go @@ -3,9 +3,11 @@ // Package sts provides the API client, operations, and parameter types for AWS // Security Token Service. // -// Security Token Service Security Token Service (STS) enables you to request -// temporary, limited-privilege credentials for users. This guide provides -// descriptions of the STS API. For more information about using this service, see -// Temporary Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) -// . +// # Security Token Service +// +// Security Token Service (STS) enables you to request temporary, +// limited-privilege credentials for users. This guide provides descriptions of the +// STS API. For more information about using this service, see [Temporary Security Credentials]. +// +// [Temporary Security Credentials]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html package sts diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/go_module_metadata.go index 6e0f31d2..08c29ce3 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/go_module_metadata.go @@ -3,4 +3,4 @@ package sts // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.28.6" +const goModuleVersion = "1.28.11" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/options.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/options.go index 5c1be79f..bb291161 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/options.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/options.go @@ -50,8 +50,10 @@ type Options struct { // Deprecated: Deprecated: EndpointResolver and WithEndpointResolver. Providing a // value for this field will likely prevent you from using any endpoint-related // service features released after the introduction of EndpointResolverV2 and - // BaseEndpoint. To migrate an EndpointResolver implementation that uses a custom - // endpoint, set the client option BaseEndpoint instead. + // BaseEndpoint. + // + // To migrate an EndpointResolver implementation that uses a custom endpoint, set + // the client option BaseEndpoint instead. EndpointResolver EndpointResolver // Resolves the endpoint used for a particular service operation. This should be @@ -70,17 +72,20 @@ type Options struct { // RetryMaxAttempts specifies the maximum number attempts an API client will call // an operation that fails with a retryable error. A value of 0 is ignored, and // will not be used to configure the API client created default retryer, or modify - // per operation call's retry max attempts. If specified in an operation call's - // functional options with a value that is different than the constructed client's - // Options, the Client's Retryer will be wrapped to use the operation's specific - // RetryMaxAttempts value. + // per operation call's retry max attempts. + // + // If specified in an operation call's functional options with a value that is + // different than the constructed client's Options, the Client's Retryer will be + // wrapped to use the operation's specific RetryMaxAttempts value. RetryMaxAttempts int // RetryMode specifies the retry mode the API client will be created with, if - // Retryer option is not also specified. When creating a new API Clients this - // member will only be used if the Retryer Options member is nil. This value will - // be ignored if Retryer is not nil. Currently does not support per operation call - // overrides, may in the future. + // Retryer option is not also specified. + // + // When creating a new API Clients this member will only be used if the Retryer + // Options member is nil. This value will be ignored if Retryer is not nil. + // + // Currently does not support per operation call overrides, may in the future. RetryMode aws.RetryMode // Retryer guides how HTTP requests should be retried in case of recoverable @@ -97,8 +102,9 @@ type Options struct { // The initial DefaultsMode used when the client options were constructed. If the // DefaultsMode was set to aws.DefaultsModeAuto this will store what the resolved - // value was at that point in time. Currently does not support per operation call - // overrides, may in the future. + // value was at that point in time. + // + // Currently does not support per operation call overrides, may in the future. resolvedDefaultsMode aws.DefaultsMode // The HTTP client to invoke API calls with. Defaults to client's default HTTP @@ -143,6 +149,7 @@ func WithAPIOptions(optFns ...func(*middleware.Stack) error) func(*Options) { // Deprecated: EndpointResolver and WithEndpointResolver. Providing a value for // this field will likely prevent you from using any endpoint-related service // features released after the introduction of EndpointResolverV2 and BaseEndpoint. +// // To migrate an EndpointResolver implementation that uses a custom endpoint, set // the client option BaseEndpoint instead. func WithEndpointResolver(v EndpointResolver) func(*Options) { diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/types/errors.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/types/errors.go index 097875b2..9573a4b6 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/types/errors.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/types/errors.go @@ -65,9 +65,10 @@ func (e *IDPCommunicationErrorException) ErrorCode() string { func (e *IDPCommunicationErrorException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // The identity provider (IdP) reported that authentication failed. This might be -// because the claim is invalid. If this error is returned for the -// AssumeRoleWithWebIdentity operation, it can also mean that the claim has expired -// or has been explicitly revoked. +// because the claim is invalid. +// +// If this error is returned for the AssumeRoleWithWebIdentity operation, it can +// also mean that the claim has expired or has been explicitly revoked. type IDPRejectedClaimException struct { Message *string @@ -183,11 +184,13 @@ func (e *MalformedPolicyDocumentException) ErrorFault() smithy.ErrorFault { retu // compresses the session policy document, session policy ARNs, and session tags // into a packed binary format that has a separate limit. The error message // indicates by percentage how close the policies and tags are to the upper size -// limit. For more information, see Passing Session Tags in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) -// in the IAM User Guide. You could receive this error even though you meet other -// defined session policy and session tag limits. For more information, see IAM -// and STS Entity Character Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-limits-entity-length) -// in the IAM User Guide. +// limit. For more information, see [Passing Session Tags in STS]in the IAM User Guide. +// +// You could receive this error even though you meet other defined session policy +// and session tag limits. For more information, see [IAM and STS Entity Character Limits]in the IAM User Guide. +// +// [Passing Session Tags in STS]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html +// [IAM and STS Entity Character Limits]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-limits-entity-length type PackedPolicyTooLargeException struct { Message *string @@ -215,9 +218,10 @@ func (e *PackedPolicyTooLargeException) ErrorFault() smithy.ErrorFault { return // STS is not activated in the requested region for the account that is being // asked to generate credentials. The account administrator must use the IAM -// console to activate STS in that region. For more information, see Activating -// and Deactivating Amazon Web Services STS in an Amazon Web Services Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) -// in the IAM User Guide. +// console to activate STS in that region. For more information, see [Activating and Deactivating Amazon Web Services STS in an Amazon Web Services Region]in the IAM +// User Guide. +// +// [Activating and Deactivating Amazon Web Services STS in an Amazon Web Services Region]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html type RegionDisabledException struct { Message *string diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/types/types.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/types/types.go index e3701d11..dff7a3c2 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/sts/types/types.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sts/types/types.go @@ -11,10 +11,11 @@ import ( // returns. type AssumedRoleUser struct { - // The ARN of the temporary security credentials that are returned from the - // AssumeRole action. For more information about ARNs and how to use them in - // policies, see IAM Identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) - // in the IAM User Guide. + // The ARN of the temporary security credentials that are returned from the AssumeRole + // action. For more information about ARNs and how to use them in policies, see [IAM Identifiers]in + // the IAM User Guide. + // + // [IAM Identifiers]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html // // This member is required. Arn *string @@ -61,8 +62,9 @@ type FederatedUser struct { // The ARN that specifies the federated user that is associated with the // credentials. For more information about ARNs and how to use them in policies, - // see IAM Identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) - // in the IAM User Guide. + // see [IAM Identifiers]in the IAM User Guide. + // + // [IAM Identifiers]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html // // This member is required. Arn *string @@ -81,9 +83,10 @@ type FederatedUser struct { type PolicyDescriptorType struct { // The Amazon Resource Name (ARN) of the IAM managed policy to use as a session - // policy for the role. For more information about ARNs, see Amazon Resource Names - // (ARNs) and Amazon Web Services Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the Amazon Web Services General Reference. + // policy for the role. For more information about ARNs, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces]in the Amazon Web + // Services General Reference. + // + // [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Arn *string noSmithyDocumentSerde @@ -107,23 +110,30 @@ type ProvidedContext struct { // You can pass custom key-value pair attributes when you assume a role or // federate a user. These are called session tags. You can then use the session -// tags to control access to resources. For more information, see Tagging Amazon -// Web Services STS Sessions (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) -// in the IAM User Guide. +// tags to control access to resources. For more information, see [Tagging Amazon Web Services STS Sessions]in the IAM User +// Guide. +// +// [Tagging Amazon Web Services STS Sessions]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html type Tag struct { - // The key for a session tag. You can pass up to 50 session tags. The plain text - // session tag keys can’t exceed 128 characters. For these and additional limits, - // see IAM and STS Character Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) - // in the IAM User Guide. + // The key for a session tag. + // + // You can pass up to 50 session tags. The plain text session tag keys can’t + // exceed 128 characters. For these and additional limits, see [IAM and STS Character Limits]in the IAM User + // Guide. + // + // [IAM and STS Character Limits]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length // // This member is required. Key *string - // The value for a session tag. You can pass up to 50 session tags. The plain text - // session tag values can’t exceed 256 characters. For these and additional limits, - // see IAM and STS Character Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) - // in the IAM User Guide. + // The value for a session tag. + // + // You can pass up to 50 session tags. The plain text session tag values can’t + // exceed 256 characters. For these and additional limits, see [IAM and STS Character Limits]in the IAM User + // Guide. + // + // [IAM and STS Character Limits]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length // // This member is required. Value *string diff --git a/vendor/github.com/cenkalti/backoff/v4/README.md b/vendor/github.com/cenkalti/backoff/v4/README.md index 16abdfc0..9433004a 100644 --- a/vendor/github.com/cenkalti/backoff/v4/README.md +++ b/vendor/github.com/cenkalti/backoff/v4/README.md @@ -1,4 +1,4 @@ -# Exponential Backoff [![GoDoc][godoc image]][godoc] [![Build Status][travis image]][travis] [![Coverage Status][coveralls image]][coveralls] +# Exponential Backoff [![GoDoc][godoc image]][godoc] [![Coverage Status][coveralls image]][coveralls] This is a Go port of the exponential backoff algorithm from [Google's HTTP Client Library for Java][google-http-java-client]. @@ -21,8 +21,6 @@ Use https://pkg.go.dev/github.com/cenkalti/backoff/v4 to view the documentation. [godoc]: https://pkg.go.dev/github.com/cenkalti/backoff/v4 [godoc image]: https://godoc.org/github.com/cenkalti/backoff?status.png -[travis]: https://travis-ci.org/cenkalti/backoff -[travis image]: https://travis-ci.org/cenkalti/backoff.png?branch=master [coveralls]: https://coveralls.io/github/cenkalti/backoff?branch=master [coveralls image]: https://coveralls.io/repos/github/cenkalti/backoff/badge.svg?branch=master diff --git a/vendor/github.com/cenkalti/backoff/v4/exponential.go b/vendor/github.com/cenkalti/backoff/v4/exponential.go index 2c56c1e7..aac99f19 100644 --- a/vendor/github.com/cenkalti/backoff/v4/exponential.go +++ b/vendor/github.com/cenkalti/backoff/v4/exponential.go @@ -71,6 +71,9 @@ type Clock interface { Now() time.Time } +// ExponentialBackOffOpts is a function type used to configure ExponentialBackOff options. +type ExponentialBackOffOpts func(*ExponentialBackOff) + // Default values for ExponentialBackOff. const ( DefaultInitialInterval = 500 * time.Millisecond @@ -81,7 +84,7 @@ const ( ) // NewExponentialBackOff creates an instance of ExponentialBackOff using default values. -func NewExponentialBackOff() *ExponentialBackOff { +func NewExponentialBackOff(opts ...ExponentialBackOffOpts) *ExponentialBackOff { b := &ExponentialBackOff{ InitialInterval: DefaultInitialInterval, RandomizationFactor: DefaultRandomizationFactor, @@ -91,10 +94,62 @@ func NewExponentialBackOff() *ExponentialBackOff { Stop: Stop, Clock: SystemClock, } + for _, fn := range opts { + fn(b) + } b.Reset() return b } +// WithInitialInterval sets the initial interval between retries. +func WithInitialInterval(duration time.Duration) ExponentialBackOffOpts { + return func(ebo *ExponentialBackOff) { + ebo.InitialInterval = duration + } +} + +// WithRandomizationFactor sets the randomization factor to add jitter to intervals. +func WithRandomizationFactor(randomizationFactor float64) ExponentialBackOffOpts { + return func(ebo *ExponentialBackOff) { + ebo.RandomizationFactor = randomizationFactor + } +} + +// WithMultiplier sets the multiplier for increasing the interval after each retry. +func WithMultiplier(multiplier float64) ExponentialBackOffOpts { + return func(ebo *ExponentialBackOff) { + ebo.Multiplier = multiplier + } +} + +// WithMaxInterval sets the maximum interval between retries. +func WithMaxInterval(duration time.Duration) ExponentialBackOffOpts { + return func(ebo *ExponentialBackOff) { + ebo.MaxInterval = duration + } +} + +// WithMaxElapsedTime sets the maximum total time for retries. +func WithMaxElapsedTime(duration time.Duration) ExponentialBackOffOpts { + return func(ebo *ExponentialBackOff) { + ebo.MaxElapsedTime = duration + } +} + +// WithRetryStopDuration sets the duration after which retries should stop. +func WithRetryStopDuration(duration time.Duration) ExponentialBackOffOpts { + return func(ebo *ExponentialBackOff) { + ebo.Stop = duration + } +} + +// WithClockProvider sets the clock used to measure time. +func WithClockProvider(clock Clock) ExponentialBackOffOpts { + return func(ebo *ExponentialBackOff) { + ebo.Clock = clock + } +} + type systemClock struct{} func (t systemClock) Now() time.Time { diff --git a/vendor/github.com/conductorone/baton-sdk/internal/connector/connector.go b/vendor/github.com/conductorone/baton-sdk/internal/connector/connector.go index bd2ddca3..10f2a05b 100644 --- a/vendor/github.com/conductorone/baton-sdk/internal/connector/connector.go +++ b/vendor/github.com/conductorone/baton-sdk/internal/connector/connector.go @@ -43,6 +43,7 @@ type connectorClient struct { connectorV2.AccountManagerServiceClient connectorV2.CredentialManagerServiceClient connectorV2.EventServiceClient + connectorV2.TicketsServiceClient } var ErrConnectorNotImplemented = errors.New("client does not implement connector connectorV2") @@ -55,6 +56,7 @@ type wrapper struct { serverStdin io.WriteCloser conn *grpc.ClientConn provisioningEnabled bool + ticketingEnabled bool rateLimiter ratelimitV1.RateLimiterServiceServer rlCfg *ratelimitV1.RateLimiterConfig @@ -93,6 +95,14 @@ func WithProvisioningEnabled() Option { } } +func WithTicketingEnabled() Option { + return func(ctx context.Context, w *wrapper) error { + w.ticketingEnabled = true + + return nil + } +} + // NewConnectorWrapper returns a connector wrapper for running connector services locally. func NewWrapper(ctx context.Context, server interface{}, opts ...Option) (*wrapper, error) { connectorServer, isServer := server.(types.ConnectorServer) @@ -143,6 +153,13 @@ func (cw *wrapper) Run(ctx context.Context, serverCfg *connectorwrapperV1.Server connectorV2.RegisterAssetServiceServer(server, cw.server) connectorV2.RegisterEventServiceServer(server, cw.server) + if cw.ticketingEnabled { + connectorV2.RegisterTicketsServiceServer(server, cw.server) + } else { + noop := &noopTicketing{} + connectorV2.RegisterTicketsServiceServer(server, noop) + } + if cw.provisioningEnabled { connectorV2.RegisterGrantManagerServiceServer(server, cw.server) connectorV2.RegisterResourceManagerServiceServer(server, cw.server) @@ -314,6 +331,7 @@ func (cw *wrapper) C(ctx context.Context) (types.ConnectorClient, error) { AccountManagerServiceClient: connectorV2.NewAccountManagerServiceClient(cw.conn), CredentialManagerServiceClient: connectorV2.NewCredentialManagerServiceClient(cw.conn), EventServiceClient: connectorV2.NewEventServiceClient(cw.conn), + TicketsServiceClient: connectorV2.NewTicketsServiceClient(cw.conn), } return cw.client, nil diff --git a/vendor/github.com/conductorone/baton-sdk/internal/connector/noop_ticketing.go b/vendor/github.com/conductorone/baton-sdk/internal/connector/noop_ticketing.go new file mode 100644 index 00000000..33a33b45 --- /dev/null +++ b/vendor/github.com/conductorone/baton-sdk/internal/connector/noop_ticketing.go @@ -0,0 +1,26 @@ +package connector + +import ( + "context" + "errors" + + v2 "github.com/conductorone/baton-sdk/pb/c1/connector/v2" +) + +type noopTicketing struct{} + +func (n noopTicketing) CreateTicket(ctx context.Context, request *v2.TicketsServiceCreateTicketRequest) (*v2.TicketsServiceCreateTicketResponse, error) { + return nil, errors.New("ticketing is not enabled") +} + +func (n noopTicketing) GetTicket(ctx context.Context, request *v2.TicketsServiceGetTicketRequest) (*v2.TicketsServiceGetTicketResponse, error) { + return nil, errors.New("ticketing is not enabled") +} + +func (n noopTicketing) ListTicketSchemas(ctx context.Context, request *v2.TicketsServiceListTicketSchemasRequest) (*v2.TicketsServiceListTicketSchemasResponse, error) { + return nil, errors.New("ticketing is not enabled") +} + +func (n noopTicketing) GetTicketSchema(ctx context.Context, request *v2.TicketsServiceGetTicketSchemaRequest) (*v2.TicketsServiceGetTicketSchemaResponse, error) { + return nil, errors.New("ticketing is not enabled") +} diff --git a/vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/connector.pb.go b/vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/connector.pb.go index 03737f0f..cd68169f 100644 --- a/vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/connector.pb.go +++ b/vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/connector.pb.go @@ -23,53 +23,59 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type ResourceTypeCapability_Capability int32 +type Capability int32 const ( - ResourceTypeCapability_CAPABILITY_UNSPECIFIED ResourceTypeCapability_Capability = 0 - ResourceTypeCapability_CAPABILITY_PROVISION ResourceTypeCapability_Capability = 1 - ResourceTypeCapability_CAPABILITY_SYNC ResourceTypeCapability_Capability = 2 + Capability_CAPABILITY_UNSPECIFIED Capability = 0 + Capability_CAPABILITY_PROVISION Capability = 1 + Capability_CAPABILITY_SYNC Capability = 2 + Capability_CAPABILITY_EVENT_FEED Capability = 3 + Capability_CAPABILITY_TICKETING Capability = 4 ) -// Enum value maps for ResourceTypeCapability_Capability. +// Enum value maps for Capability. var ( - ResourceTypeCapability_Capability_name = map[int32]string{ + Capability_name = map[int32]string{ 0: "CAPABILITY_UNSPECIFIED", 1: "CAPABILITY_PROVISION", 2: "CAPABILITY_SYNC", + 3: "CAPABILITY_EVENT_FEED", + 4: "CAPABILITY_TICKETING", } - ResourceTypeCapability_Capability_value = map[string]int32{ + Capability_value = map[string]int32{ "CAPABILITY_UNSPECIFIED": 0, "CAPABILITY_PROVISION": 1, "CAPABILITY_SYNC": 2, + "CAPABILITY_EVENT_FEED": 3, + "CAPABILITY_TICKETING": 4, } ) -func (x ResourceTypeCapability_Capability) Enum() *ResourceTypeCapability_Capability { - p := new(ResourceTypeCapability_Capability) +func (x Capability) Enum() *Capability { + p := new(Capability) *p = x return p } -func (x ResourceTypeCapability_Capability) String() string { +func (x Capability) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (ResourceTypeCapability_Capability) Descriptor() protoreflect.EnumDescriptor { +func (Capability) Descriptor() protoreflect.EnumDescriptor { return file_c1_connector_v2_connector_proto_enumTypes[0].Descriptor() } -func (ResourceTypeCapability_Capability) Type() protoreflect.EnumType { +func (Capability) Type() protoreflect.EnumType { return &file_c1_connector_v2_connector_proto_enumTypes[0] } -func (x ResourceTypeCapability_Capability) Number() protoreflect.EnumNumber { +func (x Capability) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Use ResourceTypeCapability_Capability.Descriptor instead. -func (ResourceTypeCapability_Capability) EnumDescriptor() ([]byte, []int) { - return file_c1_connector_v2_connector_proto_rawDescGZIP(), []int{2, 0} +// Deprecated: Use Capability.Descriptor instead. +func (Capability) EnumDescriptor() ([]byte, []int) { + return file_c1_connector_v2_connector_proto_rawDescGZIP(), []int{0} } type ConnectorMetadata struct { @@ -181,6 +187,7 @@ type ConnectorCapabilities struct { unknownFields protoimpl.UnknownFields ResourceTypeCapabilities []*ResourceTypeCapability `protobuf:"bytes,1,rep,name=resource_type_capabilities,json=resourceTypeCapabilities,proto3" json:"resource_type_capabilities,omitempty"` + ConnectorCapabilities []Capability `protobuf:"varint,2,rep,packed,name=connector_capabilities,json=connectorCapabilities,proto3,enum=c1.connector.v2.Capability" json:"connector_capabilities,omitempty"` } func (x *ConnectorCapabilities) Reset() { @@ -222,13 +229,20 @@ func (x *ConnectorCapabilities) GetResourceTypeCapabilities() []*ResourceTypeCap return nil } +func (x *ConnectorCapabilities) GetConnectorCapabilities() []Capability { + if x != nil { + return x.ConnectorCapabilities + } + return nil +} + type ResourceTypeCapability struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ResourceType *ResourceType `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` - Capabilities []ResourceTypeCapability_Capability `protobuf:"varint,2,rep,packed,name=capabilities,proto3,enum=c1.connector.v2.ResourceTypeCapability_Capability" json:"capabilities,omitempty"` + ResourceType *ResourceType `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` + Capabilities []Capability `protobuf:"varint,2,rep,packed,name=capabilities,proto3,enum=c1.connector.v2.Capability" json:"capabilities,omitempty"` } func (x *ResourceTypeCapability) Reset() { @@ -270,7 +284,7 @@ func (x *ResourceTypeCapability) GetResourceType() *ResourceType { return nil } -func (x *ResourceTypeCapability) GetCapabilities() []ResourceTypeCapability_Capability { +func (x *ResourceTypeCapability) GetCapabilities() []Capability { if x != nil { return x.Capabilities } @@ -492,68 +506,76 @@ var file_c1_connector_v2_connector_proto_rawDesc = []byte{ 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x22, 0x7e, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x65, 0x0a, 0x1a, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x61, - 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, - 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, - 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x18, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x22, 0x8d, 0x02, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x42, - 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x56, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x63, 0x61, - 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x57, 0x0a, 0x0a, 0x43, 0x61, - 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x41, 0x50, 0x41, - 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, - 0x54, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x13, - 0x0a, 0x0f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x59, 0x4e, - 0x43, 0x10, 0x02, 0x22, 0x24, 0x0a, 0x22, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x65, 0x0a, 0x23, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3e, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x21, 0x0a, 0x1f, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x5a, 0x0a, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, - 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, - 0xfd, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x78, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x33, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, - 0x0a, 0x08, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x30, 0x2e, 0x63, 0x31, 0x2e, - 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, + 0x69, 0x65, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x65, 0x0a, + 0x1a, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, + 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x18, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x70, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x31, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1b, 0x2e, + 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, + 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x24, 0x0a, 0x22, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x65, + 0x0a, 0x23, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x21, 0x0a, 0x1f, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5a, 0x0a, 0x20, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0b, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0x8c, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, + 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x18, 0x0a, 0x14, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x52, + 0x4f, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x41, 0x50, + 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x10, 0x02, 0x12, 0x19, + 0x0a, 0x15, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x46, 0x45, 0x45, 0x44, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x41, 0x50, + 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x49, 0x43, 0x4b, 0x45, 0x54, 0x49, 0x4e, + 0x47, 0x10, 0x04, 0x32, 0xfd, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x78, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x33, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, - 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, - 0x6e, 0x64, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x6f, 0x6e, 0x65, 0x2f, 0x62, 0x61, 0x74, 0x6f, 0x6e, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x70, 0x62, 0x2f, 0x63, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x2f, 0x76, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, + 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x08, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x30, + 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, + 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x31, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x6f, 0x6e, 0x65, 0x2f, 0x62, + 0x61, 0x74, 0x6f, 0x6e, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x70, 0x62, 0x2f, 0x63, 0x31, 0x2f, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2f, 0x76, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -571,7 +593,7 @@ func file_c1_connector_v2_connector_proto_rawDescGZIP() []byte { var file_c1_connector_v2_connector_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_c1_connector_v2_connector_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_c1_connector_v2_connector_proto_goTypes = []interface{}{ - (ResourceTypeCapability_Capability)(0), // 0: c1.connector.v2.ResourceTypeCapability.Capability + (Capability)(0), // 0: c1.connector.v2.Capability (*ConnectorMetadata)(nil), // 1: c1.connector.v2.ConnectorMetadata (*ConnectorCapabilities)(nil), // 2: c1.connector.v2.ConnectorCapabilities (*ResourceTypeCapability)(nil), // 3: c1.connector.v2.ResourceTypeCapability @@ -591,19 +613,20 @@ var file_c1_connector_v2_connector_proto_depIdxs = []int32{ 10, // 3: c1.connector.v2.ConnectorMetadata.annotations:type_name -> google.protobuf.Any 2, // 4: c1.connector.v2.ConnectorMetadata.capabilities:type_name -> c1.connector.v2.ConnectorCapabilities 3, // 5: c1.connector.v2.ConnectorCapabilities.resource_type_capabilities:type_name -> c1.connector.v2.ResourceTypeCapability - 11, // 6: c1.connector.v2.ResourceTypeCapability.resource_type:type_name -> c1.connector.v2.ResourceType - 0, // 7: c1.connector.v2.ResourceTypeCapability.capabilities:type_name -> c1.connector.v2.ResourceTypeCapability.Capability - 1, // 8: c1.connector.v2.ConnectorServiceGetMetadataResponse.metadata:type_name -> c1.connector.v2.ConnectorMetadata - 10, // 9: c1.connector.v2.ConnectorServiceValidateResponse.annotations:type_name -> google.protobuf.Any - 4, // 10: c1.connector.v2.ConnectorService.GetMetadata:input_type -> c1.connector.v2.ConnectorServiceGetMetadataRequest - 6, // 11: c1.connector.v2.ConnectorService.Validate:input_type -> c1.connector.v2.ConnectorServiceValidateRequest - 5, // 12: c1.connector.v2.ConnectorService.GetMetadata:output_type -> c1.connector.v2.ConnectorServiceGetMetadataResponse - 7, // 13: c1.connector.v2.ConnectorService.Validate:output_type -> c1.connector.v2.ConnectorServiceValidateResponse - 12, // [12:14] is the sub-list for method output_type - 10, // [10:12] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + 0, // 6: c1.connector.v2.ConnectorCapabilities.connector_capabilities:type_name -> c1.connector.v2.Capability + 11, // 7: c1.connector.v2.ResourceTypeCapability.resource_type:type_name -> c1.connector.v2.ResourceType + 0, // 8: c1.connector.v2.ResourceTypeCapability.capabilities:type_name -> c1.connector.v2.Capability + 1, // 9: c1.connector.v2.ConnectorServiceGetMetadataResponse.metadata:type_name -> c1.connector.v2.ConnectorMetadata + 10, // 10: c1.connector.v2.ConnectorServiceValidateResponse.annotations:type_name -> google.protobuf.Any + 4, // 11: c1.connector.v2.ConnectorService.GetMetadata:input_type -> c1.connector.v2.ConnectorServiceGetMetadataRequest + 6, // 12: c1.connector.v2.ConnectorService.Validate:input_type -> c1.connector.v2.ConnectorServiceValidateRequest + 5, // 13: c1.connector.v2.ConnectorService.GetMetadata:output_type -> c1.connector.v2.ConnectorServiceGetMetadataResponse + 7, // 14: c1.connector.v2.ConnectorService.Validate:output_type -> c1.connector.v2.ConnectorServiceValidateResponse + 13, // [13:15] is the sub-list for method output_type + 11, // [11:13] is the sub-list for method input_type + 11, // [11:11] is the sub-list for extension type_name + 11, // [11:11] is the sub-list for extension extendee + 0, // [0:11] is the sub-list for field type_name } func init() { file_c1_connector_v2_connector_proto_init() } diff --git a/vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/ticket.pb.go b/vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/ticket.pb.go new file mode 100644 index 00000000..8731ec79 --- /dev/null +++ b/vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/ticket.pb.go @@ -0,0 +1,2323 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc (unknown) +// source: c1/connector/v2/ticket.proto + +package v2 + +import ( + _ "github.com/envoyproxy/protoc-gen-validate/validate" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + anypb "google.golang.org/protobuf/types/known/anypb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type TicketSchema struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + Types []*TicketType `protobuf:"bytes,3,rep,name=types,proto3" json:"types,omitempty"` + Statuses []*TicketStatus `protobuf:"bytes,4,rep,name=statuses,proto3" json:"statuses,omitempty"` + CustomFields map[string]*TicketCustomField `protobuf:"bytes,5,rep,name=custom_fields,json=customFields,proto3" json:"custom_fields,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *TicketSchema) Reset() { + *x = TicketSchema{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketSchema) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketSchema) ProtoMessage() {} + +func (x *TicketSchema) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketSchema.ProtoReflect.Descriptor instead. +func (*TicketSchema) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{0} +} + +func (x *TicketSchema) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *TicketSchema) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *TicketSchema) GetTypes() []*TicketType { + if x != nil { + return x.Types + } + return nil +} + +func (x *TicketSchema) GetStatuses() []*TicketStatus { + if x != nil { + return x.Statuses + } + return nil +} + +func (x *TicketSchema) GetCustomFields() map[string]*TicketCustomField { + if x != nil { + return x.CustomFields + } + return nil +} + +type TicketCustomField struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + Required bool `protobuf:"varint,3,opt,name=required,proto3" json:"required,omitempty"` + // Types that are assignable to Value: + // + // *TicketCustomField_StringValue + // *TicketCustomField_StringValues + // *TicketCustomField_BoolValue + // *TicketCustomField_TimestampValue + // *TicketCustomField_PickStringValue + // *TicketCustomField_PickMultipleStringValues + // *TicketCustomField_PickObjectValue + // *TicketCustomField_PickMultipleObjectValues + Value isTicketCustomField_Value `protobuf_oneof:"value"` +} + +func (x *TicketCustomField) Reset() { + *x = TicketCustomField{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketCustomField) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketCustomField) ProtoMessage() {} + +func (x *TicketCustomField) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketCustomField.ProtoReflect.Descriptor instead. +func (*TicketCustomField) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{1} +} + +func (x *TicketCustomField) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *TicketCustomField) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *TicketCustomField) GetRequired() bool { + if x != nil { + return x.Required + } + return false +} + +func (m *TicketCustomField) GetValue() isTicketCustomField_Value { + if m != nil { + return m.Value + } + return nil +} + +func (x *TicketCustomField) GetStringValue() *TicketCustomFieldStringValue { + if x, ok := x.GetValue().(*TicketCustomField_StringValue); ok { + return x.StringValue + } + return nil +} + +func (x *TicketCustomField) GetStringValues() *TicketCustomFieldStringValues { + if x, ok := x.GetValue().(*TicketCustomField_StringValues); ok { + return x.StringValues + } + return nil +} + +func (x *TicketCustomField) GetBoolValue() *TicketCustomFieldBoolValue { + if x, ok := x.GetValue().(*TicketCustomField_BoolValue); ok { + return x.BoolValue + } + return nil +} + +func (x *TicketCustomField) GetTimestampValue() *TicketCustomFieldTimestampValue { + if x, ok := x.GetValue().(*TicketCustomField_TimestampValue); ok { + return x.TimestampValue + } + return nil +} + +func (x *TicketCustomField) GetPickStringValue() *TicketCustomFieldPickStringValue { + if x, ok := x.GetValue().(*TicketCustomField_PickStringValue); ok { + return x.PickStringValue + } + return nil +} + +func (x *TicketCustomField) GetPickMultipleStringValues() *TicketCustomFieldPickMultipleStringValues { + if x, ok := x.GetValue().(*TicketCustomField_PickMultipleStringValues); ok { + return x.PickMultipleStringValues + } + return nil +} + +func (x *TicketCustomField) GetPickObjectValue() *TicketCustomFieldPickObjectValue { + if x, ok := x.GetValue().(*TicketCustomField_PickObjectValue); ok { + return x.PickObjectValue + } + return nil +} + +func (x *TicketCustomField) GetPickMultipleObjectValues() *TicketCustomFieldPickMultipleObjectValues { + if x, ok := x.GetValue().(*TicketCustomField_PickMultipleObjectValues); ok { + return x.PickMultipleObjectValues + } + return nil +} + +type isTicketCustomField_Value interface { + isTicketCustomField_Value() +} + +type TicketCustomField_StringValue struct { + StringValue *TicketCustomFieldStringValue `protobuf:"bytes,100,opt,name=string_value,json=stringValue,proto3,oneof"` +} + +type TicketCustomField_StringValues struct { + StringValues *TicketCustomFieldStringValues `protobuf:"bytes,101,opt,name=string_values,json=stringValues,proto3,oneof"` +} + +type TicketCustomField_BoolValue struct { + BoolValue *TicketCustomFieldBoolValue `protobuf:"bytes,102,opt,name=bool_value,json=boolValue,proto3,oneof"` +} + +type TicketCustomField_TimestampValue struct { + TimestampValue *TicketCustomFieldTimestampValue `protobuf:"bytes,103,opt,name=timestamp_value,json=timestampValue,proto3,oneof"` +} + +type TicketCustomField_PickStringValue struct { + PickStringValue *TicketCustomFieldPickStringValue `protobuf:"bytes,104,opt,name=pick_string_value,json=pickStringValue,proto3,oneof"` +} + +type TicketCustomField_PickMultipleStringValues struct { + PickMultipleStringValues *TicketCustomFieldPickMultipleStringValues `protobuf:"bytes,105,opt,name=pick_multiple_string_values,json=pickMultipleStringValues,proto3,oneof"` +} + +type TicketCustomField_PickObjectValue struct { + PickObjectValue *TicketCustomFieldPickObjectValue `protobuf:"bytes,106,opt,name=pick_object_value,json=pickObjectValue,proto3,oneof"` +} + +type TicketCustomField_PickMultipleObjectValues struct { + PickMultipleObjectValues *TicketCustomFieldPickMultipleObjectValues `protobuf:"bytes,107,opt,name=pick_multiple_object_values,json=pickMultipleObjectValues,proto3,oneof"` +} + +func (*TicketCustomField_StringValue) isTicketCustomField_Value() {} + +func (*TicketCustomField_StringValues) isTicketCustomField_Value() {} + +func (*TicketCustomField_BoolValue) isTicketCustomField_Value() {} + +func (*TicketCustomField_TimestampValue) isTicketCustomField_Value() {} + +func (*TicketCustomField_PickStringValue) isTicketCustomField_Value() {} + +func (*TicketCustomField_PickMultipleStringValues) isTicketCustomField_Value() {} + +func (*TicketCustomField_PickObjectValue) isTicketCustomField_Value() {} + +func (*TicketCustomField_PickMultipleObjectValues) isTicketCustomField_Value() {} + +type TicketCustomFieldStringValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *TicketCustomFieldStringValue) Reset() { + *x = TicketCustomFieldStringValue{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketCustomFieldStringValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketCustomFieldStringValue) ProtoMessage() {} + +func (x *TicketCustomFieldStringValue) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketCustomFieldStringValue.ProtoReflect.Descriptor instead. +func (*TicketCustomFieldStringValue) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{2} +} + +func (x *TicketCustomFieldStringValue) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type TicketCustomFieldStringValues struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Values []string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` +} + +func (x *TicketCustomFieldStringValues) Reset() { + *x = TicketCustomFieldStringValues{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketCustomFieldStringValues) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketCustomFieldStringValues) ProtoMessage() {} + +func (x *TicketCustomFieldStringValues) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketCustomFieldStringValues.ProtoReflect.Descriptor instead. +func (*TicketCustomFieldStringValues) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{3} +} + +func (x *TicketCustomFieldStringValues) GetValues() []string { + if x != nil { + return x.Values + } + return nil +} + +type TicketCustomFieldBoolValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value bool `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *TicketCustomFieldBoolValue) Reset() { + *x = TicketCustomFieldBoolValue{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketCustomFieldBoolValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketCustomFieldBoolValue) ProtoMessage() {} + +func (x *TicketCustomFieldBoolValue) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketCustomFieldBoolValue.ProtoReflect.Descriptor instead. +func (*TicketCustomFieldBoolValue) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{4} +} + +func (x *TicketCustomFieldBoolValue) GetValue() bool { + if x != nil { + return x.Value + } + return false +} + +type TicketCustomFieldTimestampValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *TicketCustomFieldTimestampValue) Reset() { + *x = TicketCustomFieldTimestampValue{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketCustomFieldTimestampValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketCustomFieldTimestampValue) ProtoMessage() {} + +func (x *TicketCustomFieldTimestampValue) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketCustomFieldTimestampValue.ProtoReflect.Descriptor instead. +func (*TicketCustomFieldTimestampValue) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{5} +} + +func (x *TicketCustomFieldTimestampValue) GetValue() *timestamppb.Timestamp { + if x != nil { + return x.Value + } + return nil +} + +type TicketCustomFieldPickStringValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + AllowedValues []string `protobuf:"bytes,2,rep,name=allowed_values,json=allowedValues,proto3" json:"allowed_values,omitempty"` +} + +func (x *TicketCustomFieldPickStringValue) Reset() { + *x = TicketCustomFieldPickStringValue{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketCustomFieldPickStringValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketCustomFieldPickStringValue) ProtoMessage() {} + +func (x *TicketCustomFieldPickStringValue) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketCustomFieldPickStringValue.ProtoReflect.Descriptor instead. +func (*TicketCustomFieldPickStringValue) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{6} +} + +func (x *TicketCustomFieldPickStringValue) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +func (x *TicketCustomFieldPickStringValue) GetAllowedValues() []string { + if x != nil { + return x.AllowedValues + } + return nil +} + +type TicketCustomFieldPickMultipleStringValues struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Values []string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` + AllowedValues []string `protobuf:"bytes,2,rep,name=allowed_values,json=allowedValues,proto3" json:"allowed_values,omitempty"` +} + +func (x *TicketCustomFieldPickMultipleStringValues) Reset() { + *x = TicketCustomFieldPickMultipleStringValues{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketCustomFieldPickMultipleStringValues) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketCustomFieldPickMultipleStringValues) ProtoMessage() {} + +func (x *TicketCustomFieldPickMultipleStringValues) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketCustomFieldPickMultipleStringValues.ProtoReflect.Descriptor instead. +func (*TicketCustomFieldPickMultipleStringValues) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{7} +} + +func (x *TicketCustomFieldPickMultipleStringValues) GetValues() []string { + if x != nil { + return x.Values + } + return nil +} + +func (x *TicketCustomFieldPickMultipleStringValues) GetAllowedValues() []string { + if x != nil { + return x.AllowedValues + } + return nil +} + +type TicketCustomFieldPickObjectValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value *TicketCustomFieldObjectValue `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + AllowedValues []*TicketCustomFieldObjectValue `protobuf:"bytes,2,rep,name=allowed_values,json=allowedValues,proto3" json:"allowed_values,omitempty"` +} + +func (x *TicketCustomFieldPickObjectValue) Reset() { + *x = TicketCustomFieldPickObjectValue{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketCustomFieldPickObjectValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketCustomFieldPickObjectValue) ProtoMessage() {} + +func (x *TicketCustomFieldPickObjectValue) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketCustomFieldPickObjectValue.ProtoReflect.Descriptor instead. +func (*TicketCustomFieldPickObjectValue) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{8} +} + +func (x *TicketCustomFieldPickObjectValue) GetValue() *TicketCustomFieldObjectValue { + if x != nil { + return x.Value + } + return nil +} + +func (x *TicketCustomFieldPickObjectValue) GetAllowedValues() []*TicketCustomFieldObjectValue { + if x != nil { + return x.AllowedValues + } + return nil +} + +type TicketCustomFieldPickMultipleObjectValues struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Values []*TicketCustomFieldObjectValue `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` + AllowedValues []*TicketCustomFieldObjectValue `protobuf:"bytes,2,rep,name=allowed_values,json=allowedValues,proto3" json:"allowed_values,omitempty"` +} + +func (x *TicketCustomFieldPickMultipleObjectValues) Reset() { + *x = TicketCustomFieldPickMultipleObjectValues{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketCustomFieldPickMultipleObjectValues) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketCustomFieldPickMultipleObjectValues) ProtoMessage() {} + +func (x *TicketCustomFieldPickMultipleObjectValues) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketCustomFieldPickMultipleObjectValues.ProtoReflect.Descriptor instead. +func (*TicketCustomFieldPickMultipleObjectValues) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{9} +} + +func (x *TicketCustomFieldPickMultipleObjectValues) GetValues() []*TicketCustomFieldObjectValue { + if x != nil { + return x.Values + } + return nil +} + +func (x *TicketCustomFieldPickMultipleObjectValues) GetAllowedValues() []*TicketCustomFieldObjectValue { + if x != nil { + return x.AllowedValues + } + return nil +} + +type TicketCustomFieldObjectValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` +} + +func (x *TicketCustomFieldObjectValue) Reset() { + *x = TicketCustomFieldObjectValue{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketCustomFieldObjectValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketCustomFieldObjectValue) ProtoMessage() {} + +func (x *TicketCustomFieldObjectValue) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketCustomFieldObjectValue.ProtoReflect.Descriptor instead. +func (*TicketCustomFieldObjectValue) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{10} +} + +func (x *TicketCustomFieldObjectValue) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *TicketCustomFieldObjectValue) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +type TicketStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` +} + +func (x *TicketStatus) Reset() { + *x = TicketStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketStatus) ProtoMessage() {} + +func (x *TicketStatus) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketStatus.ProtoReflect.Descriptor instead. +func (*TicketStatus) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{11} +} + +func (x *TicketStatus) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *TicketStatus) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +type TicketsServiceGetTicketSchemaRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Annotations []*anypb.Any `protobuf:"bytes,2,rep,name=annotations,proto3" json:"annotations,omitempty"` +} + +func (x *TicketsServiceGetTicketSchemaRequest) Reset() { + *x = TicketsServiceGetTicketSchemaRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketsServiceGetTicketSchemaRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketsServiceGetTicketSchemaRequest) ProtoMessage() {} + +func (x *TicketsServiceGetTicketSchemaRequest) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketsServiceGetTicketSchemaRequest.ProtoReflect.Descriptor instead. +func (*TicketsServiceGetTicketSchemaRequest) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{12} +} + +func (x *TicketsServiceGetTicketSchemaRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *TicketsServiceGetTicketSchemaRequest) GetAnnotations() []*anypb.Any { + if x != nil { + return x.Annotations + } + return nil +} + +type TicketsServiceGetTicketSchemaResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Schema *TicketSchema `protobuf:"bytes,1,opt,name=schema,proto3" json:"schema,omitempty"` + Annotations []*anypb.Any `protobuf:"bytes,2,rep,name=annotations,proto3" json:"annotations,omitempty"` +} + +func (x *TicketsServiceGetTicketSchemaResponse) Reset() { + *x = TicketsServiceGetTicketSchemaResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketsServiceGetTicketSchemaResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketsServiceGetTicketSchemaResponse) ProtoMessage() {} + +func (x *TicketsServiceGetTicketSchemaResponse) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketsServiceGetTicketSchemaResponse.ProtoReflect.Descriptor instead. +func (*TicketsServiceGetTicketSchemaResponse) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{13} +} + +func (x *TicketsServiceGetTicketSchemaResponse) GetSchema() *TicketSchema { + if x != nil { + return x.Schema + } + return nil +} + +func (x *TicketsServiceGetTicketSchemaResponse) GetAnnotations() []*anypb.Any { + if x != nil { + return x.Annotations + } + return nil +} + +type TicketsServiceListTicketSchemasRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PageSize uint32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + Annotations []*anypb.Any `protobuf:"bytes,3,rep,name=annotations,proto3" json:"annotations,omitempty"` +} + +func (x *TicketsServiceListTicketSchemasRequest) Reset() { + *x = TicketsServiceListTicketSchemasRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketsServiceListTicketSchemasRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketsServiceListTicketSchemasRequest) ProtoMessage() {} + +func (x *TicketsServiceListTicketSchemasRequest) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketsServiceListTicketSchemasRequest.ProtoReflect.Descriptor instead. +func (*TicketsServiceListTicketSchemasRequest) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{14} +} + +func (x *TicketsServiceListTicketSchemasRequest) GetPageSize() uint32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *TicketsServiceListTicketSchemasRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *TicketsServiceListTicketSchemasRequest) GetAnnotations() []*anypb.Any { + if x != nil { + return x.Annotations + } + return nil +} + +type TicketsServiceListTicketSchemasResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*TicketSchema `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + Annotations []*anypb.Any `protobuf:"bytes,3,rep,name=annotations,proto3" json:"annotations,omitempty"` +} + +func (x *TicketsServiceListTicketSchemasResponse) Reset() { + *x = TicketsServiceListTicketSchemasResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketsServiceListTicketSchemasResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketsServiceListTicketSchemasResponse) ProtoMessage() {} + +func (x *TicketsServiceListTicketSchemasResponse) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketsServiceListTicketSchemasResponse.ProtoReflect.Descriptor instead. +func (*TicketsServiceListTicketSchemasResponse) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{15} +} + +func (x *TicketsServiceListTicketSchemasResponse) GetList() []*TicketSchema { + if x != nil { + return x.List + } + return nil +} + +func (x *TicketsServiceListTicketSchemasResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *TicketsServiceListTicketSchemasResponse) GetAnnotations() []*anypb.Any { + if x != nil { + return x.Annotations + } + return nil +} + +type Ticket struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + Assignees []*Resource `protobuf:"bytes,4,rep,name=assignees,proto3" json:"assignees,omitempty"` + Reporter *Resource `protobuf:"bytes,5,opt,name=reporter,proto3" json:"reporter,omitempty"` + Status *TicketStatus `protobuf:"bytes,7,opt,name=status,proto3" json:"status,omitempty"` + Type *TicketType `protobuf:"bytes,8,opt,name=type,proto3" json:"type,omitempty"` + Labels []string `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty"` + Url string `protobuf:"bytes,10,opt,name=url,proto3" json:"url,omitempty"` + CustomFields map[string]*TicketCustomField `protobuf:"bytes,11,rep,name=custom_fields,json=customFields,proto3" json:"custom_fields,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + CompletedAt *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"` +} + +func (x *Ticket) Reset() { + *x = Ticket{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Ticket) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Ticket) ProtoMessage() {} + +func (x *Ticket) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Ticket.ProtoReflect.Descriptor instead. +func (*Ticket) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{16} +} + +func (x *Ticket) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Ticket) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Ticket) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Ticket) GetAssignees() []*Resource { + if x != nil { + return x.Assignees + } + return nil +} + +func (x *Ticket) GetReporter() *Resource { + if x != nil { + return x.Reporter + } + return nil +} + +func (x *Ticket) GetStatus() *TicketStatus { + if x != nil { + return x.Status + } + return nil +} + +func (x *Ticket) GetType() *TicketType { + if x != nil { + return x.Type + } + return nil +} + +func (x *Ticket) GetLabels() []string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Ticket) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *Ticket) GetCustomFields() map[string]*TicketCustomField { + if x != nil { + return x.CustomFields + } + return nil +} + +func (x *Ticket) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +func (x *Ticket) GetUpdatedAt() *timestamppb.Timestamp { + if x != nil { + return x.UpdatedAt + } + return nil +} + +func (x *Ticket) GetCompletedAt() *timestamppb.Timestamp { + if x != nil { + return x.CompletedAt + } + return nil +} + +type TicketType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` +} + +func (x *TicketType) Reset() { + *x = TicketType{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketType) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketType) ProtoMessage() {} + +func (x *TicketType) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketType.ProtoReflect.Descriptor instead. +func (*TicketType) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{17} +} + +func (x *TicketType) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *TicketType) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +type TicketRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Status *TicketStatus `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` + Type *TicketType `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"` + Labels []string `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty"` + CustomFields map[string]*TicketCustomField `protobuf:"bytes,6,rep,name=custom_fields,json=customFields,proto3" json:"custom_fields,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *TicketRequest) Reset() { + *x = TicketRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketRequest) ProtoMessage() {} + +func (x *TicketRequest) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketRequest.ProtoReflect.Descriptor instead. +func (*TicketRequest) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{18} +} + +func (x *TicketRequest) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *TicketRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *TicketRequest) GetStatus() *TicketStatus { + if x != nil { + return x.Status + } + return nil +} + +func (x *TicketRequest) GetType() *TicketType { + if x != nil { + return x.Type + } + return nil +} + +func (x *TicketRequest) GetLabels() []string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *TicketRequest) GetCustomFields() map[string]*TicketCustomField { + if x != nil { + return x.CustomFields + } + return nil +} + +type TicketsServiceCreateTicketRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Request *TicketRequest `protobuf:"bytes,1,opt,name=request,proto3" json:"request,omitempty"` + Schema *TicketSchema `protobuf:"bytes,2,opt,name=schema,proto3" json:"schema,omitempty"` + Annotations []*anypb.Any `protobuf:"bytes,8,rep,name=annotations,proto3" json:"annotations,omitempty"` +} + +func (x *TicketsServiceCreateTicketRequest) Reset() { + *x = TicketsServiceCreateTicketRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketsServiceCreateTicketRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketsServiceCreateTicketRequest) ProtoMessage() {} + +func (x *TicketsServiceCreateTicketRequest) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketsServiceCreateTicketRequest.ProtoReflect.Descriptor instead. +func (*TicketsServiceCreateTicketRequest) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{19} +} + +func (x *TicketsServiceCreateTicketRequest) GetRequest() *TicketRequest { + if x != nil { + return x.Request + } + return nil +} + +func (x *TicketsServiceCreateTicketRequest) GetSchema() *TicketSchema { + if x != nil { + return x.Schema + } + return nil +} + +func (x *TicketsServiceCreateTicketRequest) GetAnnotations() []*anypb.Any { + if x != nil { + return x.Annotations + } + return nil +} + +type TicketsServiceCreateTicketResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ticket *Ticket `protobuf:"bytes,1,opt,name=ticket,proto3" json:"ticket,omitempty"` + Annotations []*anypb.Any `protobuf:"bytes,2,rep,name=annotations,proto3" json:"annotations,omitempty"` +} + +func (x *TicketsServiceCreateTicketResponse) Reset() { + *x = TicketsServiceCreateTicketResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketsServiceCreateTicketResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketsServiceCreateTicketResponse) ProtoMessage() {} + +func (x *TicketsServiceCreateTicketResponse) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketsServiceCreateTicketResponse.ProtoReflect.Descriptor instead. +func (*TicketsServiceCreateTicketResponse) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{20} +} + +func (x *TicketsServiceCreateTicketResponse) GetTicket() *Ticket { + if x != nil { + return x.Ticket + } + return nil +} + +func (x *TicketsServiceCreateTicketResponse) GetAnnotations() []*anypb.Any { + if x != nil { + return x.Annotations + } + return nil +} + +type TicketsServiceGetTicketRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Annotations []*anypb.Any `protobuf:"bytes,2,rep,name=annotations,proto3" json:"annotations,omitempty"` +} + +func (x *TicketsServiceGetTicketRequest) Reset() { + *x = TicketsServiceGetTicketRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketsServiceGetTicketRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketsServiceGetTicketRequest) ProtoMessage() {} + +func (x *TicketsServiceGetTicketRequest) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketsServiceGetTicketRequest.ProtoReflect.Descriptor instead. +func (*TicketsServiceGetTicketRequest) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{21} +} + +func (x *TicketsServiceGetTicketRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *TicketsServiceGetTicketRequest) GetAnnotations() []*anypb.Any { + if x != nil { + return x.Annotations + } + return nil +} + +type TicketsServiceGetTicketResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ticket *Ticket `protobuf:"bytes,1,opt,name=ticket,proto3" json:"ticket,omitempty"` + Annotations []*anypb.Any `protobuf:"bytes,2,rep,name=annotations,proto3" json:"annotations,omitempty"` +} + +func (x *TicketsServiceGetTicketResponse) Reset() { + *x = TicketsServiceGetTicketResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TicketsServiceGetTicketResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TicketsServiceGetTicketResponse) ProtoMessage() {} + +func (x *TicketsServiceGetTicketResponse) ProtoReflect() protoreflect.Message { + mi := &file_c1_connector_v2_ticket_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TicketsServiceGetTicketResponse.ProtoReflect.Descriptor instead. +func (*TicketsServiceGetTicketResponse) Descriptor() ([]byte, []int) { + return file_c1_connector_v2_ticket_proto_rawDescGZIP(), []int{22} +} + +func (x *TicketsServiceGetTicketResponse) GetTicket() *Ticket { + if x != nil { + return x.Ticket + } + return nil +} + +func (x *TicketsServiceGetTicketResponse) GetAnnotations() []*anypb.Any { + if x != nil { + return x.Annotations + } + return nil +} + +var File_c1_connector_v2_ticket_proto protoreflect.FileDescriptor + +var file_c1_connector_v2_ticket_proto_rawDesc = []byte{ + 0x0a, 0x1c, 0x63, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2f, 0x76, + 0x32, 0x2f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, + 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x1a, + 0x1e, 0x63, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2f, 0x76, 0x32, + 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xea, 0x02, 0x0a, 0x0c, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x08, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, + 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x08, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, + 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x63, 0x0a, 0x11, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0xfd, 0x06, 0x0a, 0x11, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x52, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, + 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, + 0x69, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x55, 0x0a, 0x0d, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x65, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x4c, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x5b, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x5f, 0x0a, 0x11, + 0x70, 0x69, 0x63, 0x6b, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x69, 0x63, 0x6b, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x70, 0x69, + 0x63, 0x6b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x7b, 0x0a, + 0x1b, 0x70, 0x69, 0x63, 0x6b, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x69, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x69, 0x63, 0x6b, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x48, 0x00, + 0x52, 0x18, 0x70, 0x69, 0x63, 0x6b, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x11, 0x70, 0x69, + 0x63, 0x6b, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x69, 0x63, 0x6b, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x70, 0x69, 0x63, 0x6b, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x7b, 0x0a, 0x1b, 0x70, + 0x69, 0x63, 0x6b, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3a, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x50, 0x69, 0x63, 0x6b, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x48, 0x00, 0x52, 0x18, + 0x70, 0x69, 0x63, 0x6b, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x34, 0x0a, 0x1c, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x37, 0x0a, 0x1d, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x22, 0x32, 0x0a, 0x1a, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x53, 0x0a, 0x1f, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5f, 0x0a, 0x20, 0x54, 0x69, 0x63, + 0x6b, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x69, + 0x63, 0x6b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x6a, 0x0a, 0x29, 0x54, 0x69, + 0x63, 0x6b, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, + 0x69, 0x63, 0x6b, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xbd, 0x01, 0x0a, 0x20, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x69, 0x63, 0x6b, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x31, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, + 0x6b, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x54, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xc8, 0x01, 0x0a, 0x29, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x69, 0x63, 0x6b, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x22, 0x51, 0x0a, 0x1c, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x41, 0x0a, 0x0c, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x6e, 0x0a, 0x24, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x25, 0x54, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, + 0x6b, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0xb7, 0x01, 0x0a, 0x26, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, + 0xfa, 0x42, 0x07, 0x2a, 0x05, 0x18, 0xfa, 0x01, 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2c, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xfa, 0x42, 0x0a, 0x72, 0x08, 0x20, + 0x01, 0x28, 0x80, 0x20, 0xd0, 0x01, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xcb, 0x01, 0x0a, 0x27, 0x54, + 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x0f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x0d, 0xfa, 0x42, 0x0a, 0x72, 0x08, 0x20, 0x01, 0x28, 0x80, 0x20, 0xd0, 0x01, + 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xc9, 0x05, 0x0a, 0x06, 0x54, 0x69, 0x63, + 0x6b, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x69, + 0x67, 0x6e, 0x65, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x31, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x09, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, + 0x73, 0x12, 0x35, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, + 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x4e, 0x0a, 0x0d, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x1a, + 0x63, 0x0a, 0x11, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3f, 0x0a, 0x0a, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x90, 0x03, 0x0a, 0x0d, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, + 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, + 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x55, 0x0a, 0x0d, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x1a, 0x63, 0x0a, 0x11, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x31, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xcc, 0x01, 0x0a, 0x21, 0x54, 0x69, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, + 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, + 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, + 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, + 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x22, 0x54, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, + 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, + 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, + 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x68, 0x0a, 0x1e, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x1f, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x06, + 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, + 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0x85, + 0x04, 0x0a, 0x0e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x77, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x12, 0x32, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x09, 0x47, 0x65, + 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x2f, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, + 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x11, 0x4c, + 0x69, 0x73, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, + 0x12, 0x37, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x31, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x69, + 0x63, 0x6b, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x35, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, + 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, + 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, + 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, + 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x6f, 0x6e, + 0x65, 0x2f, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x70, 0x62, 0x2f, 0x63, + 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2f, 0x76, 0x32, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_c1_connector_v2_ticket_proto_rawDescOnce sync.Once + file_c1_connector_v2_ticket_proto_rawDescData = file_c1_connector_v2_ticket_proto_rawDesc +) + +func file_c1_connector_v2_ticket_proto_rawDescGZIP() []byte { + file_c1_connector_v2_ticket_proto_rawDescOnce.Do(func() { + file_c1_connector_v2_ticket_proto_rawDescData = protoimpl.X.CompressGZIP(file_c1_connector_v2_ticket_proto_rawDescData) + }) + return file_c1_connector_v2_ticket_proto_rawDescData +} + +var file_c1_connector_v2_ticket_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_c1_connector_v2_ticket_proto_goTypes = []interface{}{ + (*TicketSchema)(nil), // 0: c1.connector.v2.TicketSchema + (*TicketCustomField)(nil), // 1: c1.connector.v2.TicketCustomField + (*TicketCustomFieldStringValue)(nil), // 2: c1.connector.v2.TicketCustomFieldStringValue + (*TicketCustomFieldStringValues)(nil), // 3: c1.connector.v2.TicketCustomFieldStringValues + (*TicketCustomFieldBoolValue)(nil), // 4: c1.connector.v2.TicketCustomFieldBoolValue + (*TicketCustomFieldTimestampValue)(nil), // 5: c1.connector.v2.TicketCustomFieldTimestampValue + (*TicketCustomFieldPickStringValue)(nil), // 6: c1.connector.v2.TicketCustomFieldPickStringValue + (*TicketCustomFieldPickMultipleStringValues)(nil), // 7: c1.connector.v2.TicketCustomFieldPickMultipleStringValues + (*TicketCustomFieldPickObjectValue)(nil), // 8: c1.connector.v2.TicketCustomFieldPickObjectValue + (*TicketCustomFieldPickMultipleObjectValues)(nil), // 9: c1.connector.v2.TicketCustomFieldPickMultipleObjectValues + (*TicketCustomFieldObjectValue)(nil), // 10: c1.connector.v2.TicketCustomFieldObjectValue + (*TicketStatus)(nil), // 11: c1.connector.v2.TicketStatus + (*TicketsServiceGetTicketSchemaRequest)(nil), // 12: c1.connector.v2.TicketsServiceGetTicketSchemaRequest + (*TicketsServiceGetTicketSchemaResponse)(nil), // 13: c1.connector.v2.TicketsServiceGetTicketSchemaResponse + (*TicketsServiceListTicketSchemasRequest)(nil), // 14: c1.connector.v2.TicketsServiceListTicketSchemasRequest + (*TicketsServiceListTicketSchemasResponse)(nil), // 15: c1.connector.v2.TicketsServiceListTicketSchemasResponse + (*Ticket)(nil), // 16: c1.connector.v2.Ticket + (*TicketType)(nil), // 17: c1.connector.v2.TicketType + (*TicketRequest)(nil), // 18: c1.connector.v2.TicketRequest + (*TicketsServiceCreateTicketRequest)(nil), // 19: c1.connector.v2.TicketsServiceCreateTicketRequest + (*TicketsServiceCreateTicketResponse)(nil), // 20: c1.connector.v2.TicketsServiceCreateTicketResponse + (*TicketsServiceGetTicketRequest)(nil), // 21: c1.connector.v2.TicketsServiceGetTicketRequest + (*TicketsServiceGetTicketResponse)(nil), // 22: c1.connector.v2.TicketsServiceGetTicketResponse + nil, // 23: c1.connector.v2.TicketSchema.CustomFieldsEntry + nil, // 24: c1.connector.v2.Ticket.CustomFieldsEntry + nil, // 25: c1.connector.v2.TicketRequest.CustomFieldsEntry + (*timestamppb.Timestamp)(nil), // 26: google.protobuf.Timestamp + (*anypb.Any)(nil), // 27: google.protobuf.Any + (*Resource)(nil), // 28: c1.connector.v2.Resource +} +var file_c1_connector_v2_ticket_proto_depIdxs = []int32{ + 17, // 0: c1.connector.v2.TicketSchema.types:type_name -> c1.connector.v2.TicketType + 11, // 1: c1.connector.v2.TicketSchema.statuses:type_name -> c1.connector.v2.TicketStatus + 23, // 2: c1.connector.v2.TicketSchema.custom_fields:type_name -> c1.connector.v2.TicketSchema.CustomFieldsEntry + 2, // 3: c1.connector.v2.TicketCustomField.string_value:type_name -> c1.connector.v2.TicketCustomFieldStringValue + 3, // 4: c1.connector.v2.TicketCustomField.string_values:type_name -> c1.connector.v2.TicketCustomFieldStringValues + 4, // 5: c1.connector.v2.TicketCustomField.bool_value:type_name -> c1.connector.v2.TicketCustomFieldBoolValue + 5, // 6: c1.connector.v2.TicketCustomField.timestamp_value:type_name -> c1.connector.v2.TicketCustomFieldTimestampValue + 6, // 7: c1.connector.v2.TicketCustomField.pick_string_value:type_name -> c1.connector.v2.TicketCustomFieldPickStringValue + 7, // 8: c1.connector.v2.TicketCustomField.pick_multiple_string_values:type_name -> c1.connector.v2.TicketCustomFieldPickMultipleStringValues + 8, // 9: c1.connector.v2.TicketCustomField.pick_object_value:type_name -> c1.connector.v2.TicketCustomFieldPickObjectValue + 9, // 10: c1.connector.v2.TicketCustomField.pick_multiple_object_values:type_name -> c1.connector.v2.TicketCustomFieldPickMultipleObjectValues + 26, // 11: c1.connector.v2.TicketCustomFieldTimestampValue.value:type_name -> google.protobuf.Timestamp + 10, // 12: c1.connector.v2.TicketCustomFieldPickObjectValue.value:type_name -> c1.connector.v2.TicketCustomFieldObjectValue + 10, // 13: c1.connector.v2.TicketCustomFieldPickObjectValue.allowed_values:type_name -> c1.connector.v2.TicketCustomFieldObjectValue + 10, // 14: c1.connector.v2.TicketCustomFieldPickMultipleObjectValues.values:type_name -> c1.connector.v2.TicketCustomFieldObjectValue + 10, // 15: c1.connector.v2.TicketCustomFieldPickMultipleObjectValues.allowed_values:type_name -> c1.connector.v2.TicketCustomFieldObjectValue + 27, // 16: c1.connector.v2.TicketsServiceGetTicketSchemaRequest.annotations:type_name -> google.protobuf.Any + 0, // 17: c1.connector.v2.TicketsServiceGetTicketSchemaResponse.schema:type_name -> c1.connector.v2.TicketSchema + 27, // 18: c1.connector.v2.TicketsServiceGetTicketSchemaResponse.annotations:type_name -> google.protobuf.Any + 27, // 19: c1.connector.v2.TicketsServiceListTicketSchemasRequest.annotations:type_name -> google.protobuf.Any + 0, // 20: c1.connector.v2.TicketsServiceListTicketSchemasResponse.list:type_name -> c1.connector.v2.TicketSchema + 27, // 21: c1.connector.v2.TicketsServiceListTicketSchemasResponse.annotations:type_name -> google.protobuf.Any + 28, // 22: c1.connector.v2.Ticket.assignees:type_name -> c1.connector.v2.Resource + 28, // 23: c1.connector.v2.Ticket.reporter:type_name -> c1.connector.v2.Resource + 11, // 24: c1.connector.v2.Ticket.status:type_name -> c1.connector.v2.TicketStatus + 17, // 25: c1.connector.v2.Ticket.type:type_name -> c1.connector.v2.TicketType + 24, // 26: c1.connector.v2.Ticket.custom_fields:type_name -> c1.connector.v2.Ticket.CustomFieldsEntry + 26, // 27: c1.connector.v2.Ticket.created_at:type_name -> google.protobuf.Timestamp + 26, // 28: c1.connector.v2.Ticket.updated_at:type_name -> google.protobuf.Timestamp + 26, // 29: c1.connector.v2.Ticket.completed_at:type_name -> google.protobuf.Timestamp + 11, // 30: c1.connector.v2.TicketRequest.status:type_name -> c1.connector.v2.TicketStatus + 17, // 31: c1.connector.v2.TicketRequest.type:type_name -> c1.connector.v2.TicketType + 25, // 32: c1.connector.v2.TicketRequest.custom_fields:type_name -> c1.connector.v2.TicketRequest.CustomFieldsEntry + 18, // 33: c1.connector.v2.TicketsServiceCreateTicketRequest.request:type_name -> c1.connector.v2.TicketRequest + 0, // 34: c1.connector.v2.TicketsServiceCreateTicketRequest.schema:type_name -> c1.connector.v2.TicketSchema + 27, // 35: c1.connector.v2.TicketsServiceCreateTicketRequest.annotations:type_name -> google.protobuf.Any + 16, // 36: c1.connector.v2.TicketsServiceCreateTicketResponse.ticket:type_name -> c1.connector.v2.Ticket + 27, // 37: c1.connector.v2.TicketsServiceCreateTicketResponse.annotations:type_name -> google.protobuf.Any + 27, // 38: c1.connector.v2.TicketsServiceGetTicketRequest.annotations:type_name -> google.protobuf.Any + 16, // 39: c1.connector.v2.TicketsServiceGetTicketResponse.ticket:type_name -> c1.connector.v2.Ticket + 27, // 40: c1.connector.v2.TicketsServiceGetTicketResponse.annotations:type_name -> google.protobuf.Any + 1, // 41: c1.connector.v2.TicketSchema.CustomFieldsEntry.value:type_name -> c1.connector.v2.TicketCustomField + 1, // 42: c1.connector.v2.Ticket.CustomFieldsEntry.value:type_name -> c1.connector.v2.TicketCustomField + 1, // 43: c1.connector.v2.TicketRequest.CustomFieldsEntry.value:type_name -> c1.connector.v2.TicketCustomField + 19, // 44: c1.connector.v2.TicketsService.CreateTicket:input_type -> c1.connector.v2.TicketsServiceCreateTicketRequest + 21, // 45: c1.connector.v2.TicketsService.GetTicket:input_type -> c1.connector.v2.TicketsServiceGetTicketRequest + 14, // 46: c1.connector.v2.TicketsService.ListTicketSchemas:input_type -> c1.connector.v2.TicketsServiceListTicketSchemasRequest + 12, // 47: c1.connector.v2.TicketsService.GetTicketSchema:input_type -> c1.connector.v2.TicketsServiceGetTicketSchemaRequest + 20, // 48: c1.connector.v2.TicketsService.CreateTicket:output_type -> c1.connector.v2.TicketsServiceCreateTicketResponse + 22, // 49: c1.connector.v2.TicketsService.GetTicket:output_type -> c1.connector.v2.TicketsServiceGetTicketResponse + 15, // 50: c1.connector.v2.TicketsService.ListTicketSchemas:output_type -> c1.connector.v2.TicketsServiceListTicketSchemasResponse + 13, // 51: c1.connector.v2.TicketsService.GetTicketSchema:output_type -> c1.connector.v2.TicketsServiceGetTicketSchemaResponse + 48, // [48:52] is the sub-list for method output_type + 44, // [44:48] is the sub-list for method input_type + 44, // [44:44] is the sub-list for extension type_name + 44, // [44:44] is the sub-list for extension extendee + 0, // [0:44] is the sub-list for field type_name +} + +func init() { file_c1_connector_v2_ticket_proto_init() } +func file_c1_connector_v2_ticket_proto_init() { + if File_c1_connector_v2_ticket_proto != nil { + return + } + file_c1_connector_v2_resource_proto_init() + if !protoimpl.UnsafeEnabled { + file_c1_connector_v2_ticket_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketSchema); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketCustomField); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketCustomFieldStringValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketCustomFieldStringValues); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketCustomFieldBoolValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketCustomFieldTimestampValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketCustomFieldPickStringValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketCustomFieldPickMultipleStringValues); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketCustomFieldPickObjectValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketCustomFieldPickMultipleObjectValues); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketCustomFieldObjectValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketsServiceGetTicketSchemaRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketsServiceGetTicketSchemaResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketsServiceListTicketSchemasRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketsServiceListTicketSchemasResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Ticket); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketsServiceCreateTicketRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketsServiceCreateTicketResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketsServiceGetTicketRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connector_v2_ticket_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TicketsServiceGetTicketResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_c1_connector_v2_ticket_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*TicketCustomField_StringValue)(nil), + (*TicketCustomField_StringValues)(nil), + (*TicketCustomField_BoolValue)(nil), + (*TicketCustomField_TimestampValue)(nil), + (*TicketCustomField_PickStringValue)(nil), + (*TicketCustomField_PickMultipleStringValues)(nil), + (*TicketCustomField_PickObjectValue)(nil), + (*TicketCustomField_PickMultipleObjectValues)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_c1_connector_v2_ticket_proto_rawDesc, + NumEnums: 0, + NumMessages: 26, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_c1_connector_v2_ticket_proto_goTypes, + DependencyIndexes: file_c1_connector_v2_ticket_proto_depIdxs, + MessageInfos: file_c1_connector_v2_ticket_proto_msgTypes, + }.Build() + File_c1_connector_v2_ticket_proto = out.File + file_c1_connector_v2_ticket_proto_rawDesc = nil + file_c1_connector_v2_ticket_proto_goTypes = nil + file_c1_connector_v2_ticket_proto_depIdxs = nil +} diff --git a/vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/ticket.pb.validate.go b/vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/ticket.pb.validate.go new file mode 100644 index 00000000..3d9a46d3 --- /dev/null +++ b/vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/ticket.pb.validate.go @@ -0,0 +1,3912 @@ +// Code generated by protoc-gen-validate. DO NOT EDIT. +// source: c1/connector/v2/ticket.proto + +package v2 + +import ( + "bytes" + "errors" + "fmt" + "net" + "net/mail" + "net/url" + "regexp" + "sort" + "strings" + "time" + "unicode/utf8" + + "google.golang.org/protobuf/types/known/anypb" +) + +// ensure the imports are used +var ( + _ = bytes.MinRead + _ = errors.New("") + _ = fmt.Print + _ = utf8.UTFMax + _ = (*regexp.Regexp)(nil) + _ = (*strings.Reader)(nil) + _ = net.IPv4len + _ = time.Duration(0) + _ = (*url.URL)(nil) + _ = (*mail.Address)(nil) + _ = anypb.Any{} + _ = sort.Sort +) + +// Validate checks the field values on TicketSchema with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *TicketSchema) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketSchema with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in TicketSchemaMultiError, or +// nil if none found. +func (m *TicketSchema) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketSchema) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for DisplayName + + for idx, item := range m.GetTypes() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketSchemaValidationError{ + field: fmt.Sprintf("Types[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketSchemaValidationError{ + field: fmt.Sprintf("Types[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketSchemaValidationError{ + field: fmt.Sprintf("Types[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for idx, item := range m.GetStatuses() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketSchemaValidationError{ + field: fmt.Sprintf("Statuses[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketSchemaValidationError{ + field: fmt.Sprintf("Statuses[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketSchemaValidationError{ + field: fmt.Sprintf("Statuses[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + { + sorted_keys := make([]string, len(m.GetCustomFields())) + i := 0 + for key := range m.GetCustomFields() { + sorted_keys[i] = key + i++ + } + sort.Slice(sorted_keys, func(i, j int) bool { return sorted_keys[i] < sorted_keys[j] }) + for _, key := range sorted_keys { + val := m.GetCustomFields()[key] + _ = val + + // no validation rules for CustomFields[key] + + if all { + switch v := interface{}(val).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketSchemaValidationError{ + field: fmt.Sprintf("CustomFields[%v]", key), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketSchemaValidationError{ + field: fmt.Sprintf("CustomFields[%v]", key), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(val).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketSchemaValidationError{ + field: fmt.Sprintf("CustomFields[%v]", key), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + } + + if len(errors) > 0 { + return TicketSchemaMultiError(errors) + } + + return nil +} + +// TicketSchemaMultiError is an error wrapping multiple validation errors +// returned by TicketSchema.ValidateAll() if the designated constraints aren't met. +type TicketSchemaMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketSchemaMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketSchemaMultiError) AllErrors() []error { return m } + +// TicketSchemaValidationError is the validation error returned by +// TicketSchema.Validate if the designated constraints aren't met. +type TicketSchemaValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketSchemaValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketSchemaValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketSchemaValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketSchemaValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketSchemaValidationError) ErrorName() string { return "TicketSchemaValidationError" } + +// Error satisfies the builtin error interface +func (e TicketSchemaValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketSchema.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketSchemaValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketSchemaValidationError{} + +// Validate checks the field values on TicketCustomField with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *TicketCustomField) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketCustomField with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// TicketCustomFieldMultiError, or nil if none found. +func (m *TicketCustomField) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketCustomField) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for DisplayName + + // no validation rules for Required + + switch v := m.Value.(type) { + case *TicketCustomField_StringValue: + if v == nil { + err := TicketCustomFieldValidationError{ + field: "Value", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetStringValue()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketCustomFieldValidationError{ + field: "StringValue", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketCustomFieldValidationError{ + field: "StringValue", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetStringValue()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketCustomFieldValidationError{ + field: "StringValue", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *TicketCustomField_StringValues: + if v == nil { + err := TicketCustomFieldValidationError{ + field: "Value", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetStringValues()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketCustomFieldValidationError{ + field: "StringValues", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketCustomFieldValidationError{ + field: "StringValues", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetStringValues()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketCustomFieldValidationError{ + field: "StringValues", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *TicketCustomField_BoolValue: + if v == nil { + err := TicketCustomFieldValidationError{ + field: "Value", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetBoolValue()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketCustomFieldValidationError{ + field: "BoolValue", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketCustomFieldValidationError{ + field: "BoolValue", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetBoolValue()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketCustomFieldValidationError{ + field: "BoolValue", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *TicketCustomField_TimestampValue: + if v == nil { + err := TicketCustomFieldValidationError{ + field: "Value", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetTimestampValue()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketCustomFieldValidationError{ + field: "TimestampValue", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketCustomFieldValidationError{ + field: "TimestampValue", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetTimestampValue()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketCustomFieldValidationError{ + field: "TimestampValue", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *TicketCustomField_PickStringValue: + if v == nil { + err := TicketCustomFieldValidationError{ + field: "Value", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetPickStringValue()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketCustomFieldValidationError{ + field: "PickStringValue", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketCustomFieldValidationError{ + field: "PickStringValue", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPickStringValue()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketCustomFieldValidationError{ + field: "PickStringValue", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *TicketCustomField_PickMultipleStringValues: + if v == nil { + err := TicketCustomFieldValidationError{ + field: "Value", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetPickMultipleStringValues()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketCustomFieldValidationError{ + field: "PickMultipleStringValues", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketCustomFieldValidationError{ + field: "PickMultipleStringValues", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPickMultipleStringValues()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketCustomFieldValidationError{ + field: "PickMultipleStringValues", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *TicketCustomField_PickObjectValue: + if v == nil { + err := TicketCustomFieldValidationError{ + field: "Value", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetPickObjectValue()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketCustomFieldValidationError{ + field: "PickObjectValue", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketCustomFieldValidationError{ + field: "PickObjectValue", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPickObjectValue()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketCustomFieldValidationError{ + field: "PickObjectValue", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *TicketCustomField_PickMultipleObjectValues: + if v == nil { + err := TicketCustomFieldValidationError{ + field: "Value", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetPickMultipleObjectValues()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketCustomFieldValidationError{ + field: "PickMultipleObjectValues", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketCustomFieldValidationError{ + field: "PickMultipleObjectValues", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPickMultipleObjectValues()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketCustomFieldValidationError{ + field: "PickMultipleObjectValues", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + _ = v // ensures v is used + } + + if len(errors) > 0 { + return TicketCustomFieldMultiError(errors) + } + + return nil +} + +// TicketCustomFieldMultiError is an error wrapping multiple validation errors +// returned by TicketCustomField.ValidateAll() if the designated constraints +// aren't met. +type TicketCustomFieldMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketCustomFieldMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketCustomFieldMultiError) AllErrors() []error { return m } + +// TicketCustomFieldValidationError is the validation error returned by +// TicketCustomField.Validate if the designated constraints aren't met. +type TicketCustomFieldValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketCustomFieldValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketCustomFieldValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketCustomFieldValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketCustomFieldValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketCustomFieldValidationError) ErrorName() string { + return "TicketCustomFieldValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketCustomFieldValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketCustomField.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketCustomFieldValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketCustomFieldValidationError{} + +// Validate checks the field values on TicketCustomFieldStringValue with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *TicketCustomFieldStringValue) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketCustomFieldStringValue with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// TicketCustomFieldStringValueMultiError, or nil if none found. +func (m *TicketCustomFieldStringValue) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketCustomFieldStringValue) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Value + + if len(errors) > 0 { + return TicketCustomFieldStringValueMultiError(errors) + } + + return nil +} + +// TicketCustomFieldStringValueMultiError is an error wrapping multiple +// validation errors returned by TicketCustomFieldStringValue.ValidateAll() if +// the designated constraints aren't met. +type TicketCustomFieldStringValueMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketCustomFieldStringValueMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketCustomFieldStringValueMultiError) AllErrors() []error { return m } + +// TicketCustomFieldStringValueValidationError is the validation error returned +// by TicketCustomFieldStringValue.Validate if the designated constraints +// aren't met. +type TicketCustomFieldStringValueValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketCustomFieldStringValueValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketCustomFieldStringValueValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketCustomFieldStringValueValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketCustomFieldStringValueValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketCustomFieldStringValueValidationError) ErrorName() string { + return "TicketCustomFieldStringValueValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketCustomFieldStringValueValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketCustomFieldStringValue.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketCustomFieldStringValueValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketCustomFieldStringValueValidationError{} + +// Validate checks the field values on TicketCustomFieldStringValues with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *TicketCustomFieldStringValues) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketCustomFieldStringValues with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// TicketCustomFieldStringValuesMultiError, or nil if none found. +func (m *TicketCustomFieldStringValues) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketCustomFieldStringValues) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return TicketCustomFieldStringValuesMultiError(errors) + } + + return nil +} + +// TicketCustomFieldStringValuesMultiError is an error wrapping multiple +// validation errors returned by TicketCustomFieldStringValues.ValidateAll() +// if the designated constraints aren't met. +type TicketCustomFieldStringValuesMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketCustomFieldStringValuesMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketCustomFieldStringValuesMultiError) AllErrors() []error { return m } + +// TicketCustomFieldStringValuesValidationError is the validation error +// returned by TicketCustomFieldStringValues.Validate if the designated +// constraints aren't met. +type TicketCustomFieldStringValuesValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketCustomFieldStringValuesValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketCustomFieldStringValuesValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketCustomFieldStringValuesValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketCustomFieldStringValuesValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketCustomFieldStringValuesValidationError) ErrorName() string { + return "TicketCustomFieldStringValuesValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketCustomFieldStringValuesValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketCustomFieldStringValues.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketCustomFieldStringValuesValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketCustomFieldStringValuesValidationError{} + +// Validate checks the field values on TicketCustomFieldBoolValue with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *TicketCustomFieldBoolValue) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketCustomFieldBoolValue with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// TicketCustomFieldBoolValueMultiError, or nil if none found. +func (m *TicketCustomFieldBoolValue) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketCustomFieldBoolValue) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Value + + if len(errors) > 0 { + return TicketCustomFieldBoolValueMultiError(errors) + } + + return nil +} + +// TicketCustomFieldBoolValueMultiError is an error wrapping multiple +// validation errors returned by TicketCustomFieldBoolValue.ValidateAll() if +// the designated constraints aren't met. +type TicketCustomFieldBoolValueMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketCustomFieldBoolValueMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketCustomFieldBoolValueMultiError) AllErrors() []error { return m } + +// TicketCustomFieldBoolValueValidationError is the validation error returned +// by TicketCustomFieldBoolValue.Validate if the designated constraints aren't met. +type TicketCustomFieldBoolValueValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketCustomFieldBoolValueValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketCustomFieldBoolValueValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketCustomFieldBoolValueValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketCustomFieldBoolValueValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketCustomFieldBoolValueValidationError) ErrorName() string { + return "TicketCustomFieldBoolValueValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketCustomFieldBoolValueValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketCustomFieldBoolValue.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketCustomFieldBoolValueValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketCustomFieldBoolValueValidationError{} + +// Validate checks the field values on TicketCustomFieldTimestampValue with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *TicketCustomFieldTimestampValue) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketCustomFieldTimestampValue with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// TicketCustomFieldTimestampValueMultiError, or nil if none found. +func (m *TicketCustomFieldTimestampValue) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketCustomFieldTimestampValue) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetValue()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketCustomFieldTimestampValueValidationError{ + field: "Value", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketCustomFieldTimestampValueValidationError{ + field: "Value", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetValue()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketCustomFieldTimestampValueValidationError{ + field: "Value", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return TicketCustomFieldTimestampValueMultiError(errors) + } + + return nil +} + +// TicketCustomFieldTimestampValueMultiError is an error wrapping multiple +// validation errors returned by TicketCustomFieldTimestampValue.ValidateAll() +// if the designated constraints aren't met. +type TicketCustomFieldTimestampValueMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketCustomFieldTimestampValueMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketCustomFieldTimestampValueMultiError) AllErrors() []error { return m } + +// TicketCustomFieldTimestampValueValidationError is the validation error +// returned by TicketCustomFieldTimestampValue.Validate if the designated +// constraints aren't met. +type TicketCustomFieldTimestampValueValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketCustomFieldTimestampValueValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketCustomFieldTimestampValueValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketCustomFieldTimestampValueValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketCustomFieldTimestampValueValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketCustomFieldTimestampValueValidationError) ErrorName() string { + return "TicketCustomFieldTimestampValueValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketCustomFieldTimestampValueValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketCustomFieldTimestampValue.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketCustomFieldTimestampValueValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketCustomFieldTimestampValueValidationError{} + +// Validate checks the field values on TicketCustomFieldPickStringValue with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *TicketCustomFieldPickStringValue) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketCustomFieldPickStringValue with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// TicketCustomFieldPickStringValueMultiError, or nil if none found. +func (m *TicketCustomFieldPickStringValue) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketCustomFieldPickStringValue) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Value + + if len(errors) > 0 { + return TicketCustomFieldPickStringValueMultiError(errors) + } + + return nil +} + +// TicketCustomFieldPickStringValueMultiError is an error wrapping multiple +// validation errors returned by +// TicketCustomFieldPickStringValue.ValidateAll() if the designated +// constraints aren't met. +type TicketCustomFieldPickStringValueMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketCustomFieldPickStringValueMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketCustomFieldPickStringValueMultiError) AllErrors() []error { return m } + +// TicketCustomFieldPickStringValueValidationError is the validation error +// returned by TicketCustomFieldPickStringValue.Validate if the designated +// constraints aren't met. +type TicketCustomFieldPickStringValueValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketCustomFieldPickStringValueValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketCustomFieldPickStringValueValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketCustomFieldPickStringValueValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketCustomFieldPickStringValueValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketCustomFieldPickStringValueValidationError) ErrorName() string { + return "TicketCustomFieldPickStringValueValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketCustomFieldPickStringValueValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketCustomFieldPickStringValue.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketCustomFieldPickStringValueValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketCustomFieldPickStringValueValidationError{} + +// Validate checks the field values on +// TicketCustomFieldPickMultipleStringValues with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *TicketCustomFieldPickMultipleStringValues) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on +// TicketCustomFieldPickMultipleStringValues with the rules defined in the +// proto definition for this message. If any rules are violated, the result is +// a list of violation errors wrapped in +// TicketCustomFieldPickMultipleStringValuesMultiError, or nil if none found. +func (m *TicketCustomFieldPickMultipleStringValues) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketCustomFieldPickMultipleStringValues) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return TicketCustomFieldPickMultipleStringValuesMultiError(errors) + } + + return nil +} + +// TicketCustomFieldPickMultipleStringValuesMultiError is an error wrapping +// multiple validation errors returned by +// TicketCustomFieldPickMultipleStringValues.ValidateAll() if the designated +// constraints aren't met. +type TicketCustomFieldPickMultipleStringValuesMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketCustomFieldPickMultipleStringValuesMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketCustomFieldPickMultipleStringValuesMultiError) AllErrors() []error { return m } + +// TicketCustomFieldPickMultipleStringValuesValidationError is the validation +// error returned by TicketCustomFieldPickMultipleStringValues.Validate if the +// designated constraints aren't met. +type TicketCustomFieldPickMultipleStringValuesValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketCustomFieldPickMultipleStringValuesValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketCustomFieldPickMultipleStringValuesValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketCustomFieldPickMultipleStringValuesValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketCustomFieldPickMultipleStringValuesValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketCustomFieldPickMultipleStringValuesValidationError) ErrorName() string { + return "TicketCustomFieldPickMultipleStringValuesValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketCustomFieldPickMultipleStringValuesValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketCustomFieldPickMultipleStringValues.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketCustomFieldPickMultipleStringValuesValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketCustomFieldPickMultipleStringValuesValidationError{} + +// Validate checks the field values on TicketCustomFieldPickObjectValue with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *TicketCustomFieldPickObjectValue) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketCustomFieldPickObjectValue with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// TicketCustomFieldPickObjectValueMultiError, or nil if none found. +func (m *TicketCustomFieldPickObjectValue) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketCustomFieldPickObjectValue) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetValue()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketCustomFieldPickObjectValueValidationError{ + field: "Value", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketCustomFieldPickObjectValueValidationError{ + field: "Value", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetValue()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketCustomFieldPickObjectValueValidationError{ + field: "Value", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetAllowedValues() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketCustomFieldPickObjectValueValidationError{ + field: fmt.Sprintf("AllowedValues[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketCustomFieldPickObjectValueValidationError{ + field: fmt.Sprintf("AllowedValues[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketCustomFieldPickObjectValueValidationError{ + field: fmt.Sprintf("AllowedValues[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return TicketCustomFieldPickObjectValueMultiError(errors) + } + + return nil +} + +// TicketCustomFieldPickObjectValueMultiError is an error wrapping multiple +// validation errors returned by +// TicketCustomFieldPickObjectValue.ValidateAll() if the designated +// constraints aren't met. +type TicketCustomFieldPickObjectValueMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketCustomFieldPickObjectValueMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketCustomFieldPickObjectValueMultiError) AllErrors() []error { return m } + +// TicketCustomFieldPickObjectValueValidationError is the validation error +// returned by TicketCustomFieldPickObjectValue.Validate if the designated +// constraints aren't met. +type TicketCustomFieldPickObjectValueValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketCustomFieldPickObjectValueValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketCustomFieldPickObjectValueValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketCustomFieldPickObjectValueValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketCustomFieldPickObjectValueValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketCustomFieldPickObjectValueValidationError) ErrorName() string { + return "TicketCustomFieldPickObjectValueValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketCustomFieldPickObjectValueValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketCustomFieldPickObjectValue.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketCustomFieldPickObjectValueValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketCustomFieldPickObjectValueValidationError{} + +// Validate checks the field values on +// TicketCustomFieldPickMultipleObjectValues with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *TicketCustomFieldPickMultipleObjectValues) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on +// TicketCustomFieldPickMultipleObjectValues with the rules defined in the +// proto definition for this message. If any rules are violated, the result is +// a list of violation errors wrapped in +// TicketCustomFieldPickMultipleObjectValuesMultiError, or nil if none found. +func (m *TicketCustomFieldPickMultipleObjectValues) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketCustomFieldPickMultipleObjectValues) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetValues() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketCustomFieldPickMultipleObjectValuesValidationError{ + field: fmt.Sprintf("Values[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketCustomFieldPickMultipleObjectValuesValidationError{ + field: fmt.Sprintf("Values[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketCustomFieldPickMultipleObjectValuesValidationError{ + field: fmt.Sprintf("Values[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for idx, item := range m.GetAllowedValues() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketCustomFieldPickMultipleObjectValuesValidationError{ + field: fmt.Sprintf("AllowedValues[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketCustomFieldPickMultipleObjectValuesValidationError{ + field: fmt.Sprintf("AllowedValues[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketCustomFieldPickMultipleObjectValuesValidationError{ + field: fmt.Sprintf("AllowedValues[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return TicketCustomFieldPickMultipleObjectValuesMultiError(errors) + } + + return nil +} + +// TicketCustomFieldPickMultipleObjectValuesMultiError is an error wrapping +// multiple validation errors returned by +// TicketCustomFieldPickMultipleObjectValues.ValidateAll() if the designated +// constraints aren't met. +type TicketCustomFieldPickMultipleObjectValuesMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketCustomFieldPickMultipleObjectValuesMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketCustomFieldPickMultipleObjectValuesMultiError) AllErrors() []error { return m } + +// TicketCustomFieldPickMultipleObjectValuesValidationError is the validation +// error returned by TicketCustomFieldPickMultipleObjectValues.Validate if the +// designated constraints aren't met. +type TicketCustomFieldPickMultipleObjectValuesValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketCustomFieldPickMultipleObjectValuesValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketCustomFieldPickMultipleObjectValuesValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketCustomFieldPickMultipleObjectValuesValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketCustomFieldPickMultipleObjectValuesValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketCustomFieldPickMultipleObjectValuesValidationError) ErrorName() string { + return "TicketCustomFieldPickMultipleObjectValuesValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketCustomFieldPickMultipleObjectValuesValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketCustomFieldPickMultipleObjectValues.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketCustomFieldPickMultipleObjectValuesValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketCustomFieldPickMultipleObjectValuesValidationError{} + +// Validate checks the field values on TicketCustomFieldObjectValue with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *TicketCustomFieldObjectValue) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketCustomFieldObjectValue with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// TicketCustomFieldObjectValueMultiError, or nil if none found. +func (m *TicketCustomFieldObjectValue) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketCustomFieldObjectValue) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for DisplayName + + if len(errors) > 0 { + return TicketCustomFieldObjectValueMultiError(errors) + } + + return nil +} + +// TicketCustomFieldObjectValueMultiError is an error wrapping multiple +// validation errors returned by TicketCustomFieldObjectValue.ValidateAll() if +// the designated constraints aren't met. +type TicketCustomFieldObjectValueMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketCustomFieldObjectValueMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketCustomFieldObjectValueMultiError) AllErrors() []error { return m } + +// TicketCustomFieldObjectValueValidationError is the validation error returned +// by TicketCustomFieldObjectValue.Validate if the designated constraints +// aren't met. +type TicketCustomFieldObjectValueValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketCustomFieldObjectValueValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketCustomFieldObjectValueValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketCustomFieldObjectValueValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketCustomFieldObjectValueValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketCustomFieldObjectValueValidationError) ErrorName() string { + return "TicketCustomFieldObjectValueValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketCustomFieldObjectValueValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketCustomFieldObjectValue.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketCustomFieldObjectValueValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketCustomFieldObjectValueValidationError{} + +// Validate checks the field values on TicketStatus with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *TicketStatus) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketStatus with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in TicketStatusMultiError, or +// nil if none found. +func (m *TicketStatus) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketStatus) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for DisplayName + + if len(errors) > 0 { + return TicketStatusMultiError(errors) + } + + return nil +} + +// TicketStatusMultiError is an error wrapping multiple validation errors +// returned by TicketStatus.ValidateAll() if the designated constraints aren't met. +type TicketStatusMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketStatusMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketStatusMultiError) AllErrors() []error { return m } + +// TicketStatusValidationError is the validation error returned by +// TicketStatus.Validate if the designated constraints aren't met. +type TicketStatusValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketStatusValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketStatusValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketStatusValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketStatusValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketStatusValidationError) ErrorName() string { return "TicketStatusValidationError" } + +// Error satisfies the builtin error interface +func (e TicketStatusValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketStatus.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketStatusValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketStatusValidationError{} + +// Validate checks the field values on TicketsServiceGetTicketSchemaRequest +// with the rules defined in the proto definition for this message. If any +// rules are violated, the first error encountered is returned, or nil if +// there are no violations. +func (m *TicketsServiceGetTicketSchemaRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketsServiceGetTicketSchemaRequest +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// TicketsServiceGetTicketSchemaRequestMultiError, or nil if none found. +func (m *TicketsServiceGetTicketSchemaRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketsServiceGetTicketSchemaRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + for idx, item := range m.GetAnnotations() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketsServiceGetTicketSchemaRequestValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketsServiceGetTicketSchemaRequestValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketsServiceGetTicketSchemaRequestValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return TicketsServiceGetTicketSchemaRequestMultiError(errors) + } + + return nil +} + +// TicketsServiceGetTicketSchemaRequestMultiError is an error wrapping multiple +// validation errors returned by +// TicketsServiceGetTicketSchemaRequest.ValidateAll() if the designated +// constraints aren't met. +type TicketsServiceGetTicketSchemaRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketsServiceGetTicketSchemaRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketsServiceGetTicketSchemaRequestMultiError) AllErrors() []error { return m } + +// TicketsServiceGetTicketSchemaRequestValidationError is the validation error +// returned by TicketsServiceGetTicketSchemaRequest.Validate if the designated +// constraints aren't met. +type TicketsServiceGetTicketSchemaRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketsServiceGetTicketSchemaRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketsServiceGetTicketSchemaRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketsServiceGetTicketSchemaRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketsServiceGetTicketSchemaRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketsServiceGetTicketSchemaRequestValidationError) ErrorName() string { + return "TicketsServiceGetTicketSchemaRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketsServiceGetTicketSchemaRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketsServiceGetTicketSchemaRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketsServiceGetTicketSchemaRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketsServiceGetTicketSchemaRequestValidationError{} + +// Validate checks the field values on TicketsServiceGetTicketSchemaResponse +// with the rules defined in the proto definition for this message. If any +// rules are violated, the first error encountered is returned, or nil if +// there are no violations. +func (m *TicketsServiceGetTicketSchemaResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketsServiceGetTicketSchemaResponse +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// TicketsServiceGetTicketSchemaResponseMultiError, or nil if none found. +func (m *TicketsServiceGetTicketSchemaResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketsServiceGetTicketSchemaResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetSchema()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketsServiceGetTicketSchemaResponseValidationError{ + field: "Schema", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketsServiceGetTicketSchemaResponseValidationError{ + field: "Schema", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetSchema()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketsServiceGetTicketSchemaResponseValidationError{ + field: "Schema", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetAnnotations() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketsServiceGetTicketSchemaResponseValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketsServiceGetTicketSchemaResponseValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketsServiceGetTicketSchemaResponseValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return TicketsServiceGetTicketSchemaResponseMultiError(errors) + } + + return nil +} + +// TicketsServiceGetTicketSchemaResponseMultiError is an error wrapping +// multiple validation errors returned by +// TicketsServiceGetTicketSchemaResponse.ValidateAll() if the designated +// constraints aren't met. +type TicketsServiceGetTicketSchemaResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketsServiceGetTicketSchemaResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketsServiceGetTicketSchemaResponseMultiError) AllErrors() []error { return m } + +// TicketsServiceGetTicketSchemaResponseValidationError is the validation error +// returned by TicketsServiceGetTicketSchemaResponse.Validate if the +// designated constraints aren't met. +type TicketsServiceGetTicketSchemaResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketsServiceGetTicketSchemaResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketsServiceGetTicketSchemaResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketsServiceGetTicketSchemaResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketsServiceGetTicketSchemaResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketsServiceGetTicketSchemaResponseValidationError) ErrorName() string { + return "TicketsServiceGetTicketSchemaResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketsServiceGetTicketSchemaResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketsServiceGetTicketSchemaResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketsServiceGetTicketSchemaResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketsServiceGetTicketSchemaResponseValidationError{} + +// Validate checks the field values on TicketsServiceListTicketSchemasRequest +// with the rules defined in the proto definition for this message. If any +// rules are violated, the first error encountered is returned, or nil if +// there are no violations. +func (m *TicketsServiceListTicketSchemasRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on +// TicketsServiceListTicketSchemasRequest with the rules defined in the proto +// definition for this message. If any rules are violated, the result is a +// list of violation errors wrapped in +// TicketsServiceListTicketSchemasRequestMultiError, or nil if none found. +func (m *TicketsServiceListTicketSchemasRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketsServiceListTicketSchemasRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.GetPageSize() != 0 { + + if m.GetPageSize() > 250 { + err := TicketsServiceListTicketSchemasRequestValidationError{ + field: "PageSize", + reason: "value must be less than or equal to 250", + } + if !all { + return err + } + errors = append(errors, err) + } + + } + + if m.GetPageToken() != "" { + + if l := len(m.GetPageToken()); l < 1 || l > 4096 { + err := TicketsServiceListTicketSchemasRequestValidationError{ + field: "PageToken", + reason: "value length must be between 1 and 4096 bytes, inclusive", + } + if !all { + return err + } + errors = append(errors, err) + } + + } + + for idx, item := range m.GetAnnotations() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketsServiceListTicketSchemasRequestValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketsServiceListTicketSchemasRequestValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketsServiceListTicketSchemasRequestValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return TicketsServiceListTicketSchemasRequestMultiError(errors) + } + + return nil +} + +// TicketsServiceListTicketSchemasRequestMultiError is an error wrapping +// multiple validation errors returned by +// TicketsServiceListTicketSchemasRequest.ValidateAll() if the designated +// constraints aren't met. +type TicketsServiceListTicketSchemasRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketsServiceListTicketSchemasRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketsServiceListTicketSchemasRequestMultiError) AllErrors() []error { return m } + +// TicketsServiceListTicketSchemasRequestValidationError is the validation +// error returned by TicketsServiceListTicketSchemasRequest.Validate if the +// designated constraints aren't met. +type TicketsServiceListTicketSchemasRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketsServiceListTicketSchemasRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketsServiceListTicketSchemasRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketsServiceListTicketSchemasRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketsServiceListTicketSchemasRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketsServiceListTicketSchemasRequestValidationError) ErrorName() string { + return "TicketsServiceListTicketSchemasRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketsServiceListTicketSchemasRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketsServiceListTicketSchemasRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketsServiceListTicketSchemasRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketsServiceListTicketSchemasRequestValidationError{} + +// Validate checks the field values on TicketsServiceListTicketSchemasResponse +// with the rules defined in the proto definition for this message. If any +// rules are violated, the first error encountered is returned, or nil if +// there are no violations. +func (m *TicketsServiceListTicketSchemasResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on +// TicketsServiceListTicketSchemasResponse with the rules defined in the proto +// definition for this message. If any rules are violated, the result is a +// list of violation errors wrapped in +// TicketsServiceListTicketSchemasResponseMultiError, or nil if none found. +func (m *TicketsServiceListTicketSchemasResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketsServiceListTicketSchemasResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketsServiceListTicketSchemasResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketsServiceListTicketSchemasResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketsServiceListTicketSchemasResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if m.GetNextPageToken() != "" { + + if l := len(m.GetNextPageToken()); l < 1 || l > 4096 { + err := TicketsServiceListTicketSchemasResponseValidationError{ + field: "NextPageToken", + reason: "value length must be between 1 and 4096 bytes, inclusive", + } + if !all { + return err + } + errors = append(errors, err) + } + + } + + for idx, item := range m.GetAnnotations() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketsServiceListTicketSchemasResponseValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketsServiceListTicketSchemasResponseValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketsServiceListTicketSchemasResponseValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return TicketsServiceListTicketSchemasResponseMultiError(errors) + } + + return nil +} + +// TicketsServiceListTicketSchemasResponseMultiError is an error wrapping +// multiple validation errors returned by +// TicketsServiceListTicketSchemasResponse.ValidateAll() if the designated +// constraints aren't met. +type TicketsServiceListTicketSchemasResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketsServiceListTicketSchemasResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketsServiceListTicketSchemasResponseMultiError) AllErrors() []error { return m } + +// TicketsServiceListTicketSchemasResponseValidationError is the validation +// error returned by TicketsServiceListTicketSchemasResponse.Validate if the +// designated constraints aren't met. +type TicketsServiceListTicketSchemasResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketsServiceListTicketSchemasResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketsServiceListTicketSchemasResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketsServiceListTicketSchemasResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketsServiceListTicketSchemasResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketsServiceListTicketSchemasResponseValidationError) ErrorName() string { + return "TicketsServiceListTicketSchemasResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketsServiceListTicketSchemasResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketsServiceListTicketSchemasResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketsServiceListTicketSchemasResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketsServiceListTicketSchemasResponseValidationError{} + +// Validate checks the field values on Ticket with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *Ticket) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Ticket with the rules defined in the +// proto definition for this message. If any rules are violated, the result is +// a list of violation errors wrapped in TicketMultiError, or nil if none found. +func (m *Ticket) ValidateAll() error { + return m.validate(true) +} + +func (m *Ticket) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for DisplayName + + // no validation rules for Description + + for idx, item := range m.GetAssignees() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketValidationError{ + field: fmt.Sprintf("Assignees[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketValidationError{ + field: fmt.Sprintf("Assignees[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketValidationError{ + field: fmt.Sprintf("Assignees[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if all { + switch v := interface{}(m.GetReporter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketValidationError{ + field: "Reporter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketValidationError{ + field: "Reporter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetReporter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketValidationError{ + field: "Reporter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetStatus()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketValidationError{ + field: "Status", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketValidationError{ + field: "Status", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetStatus()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketValidationError{ + field: "Status", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetType()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketValidationError{ + field: "Type", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketValidationError{ + field: "Type", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetType()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketValidationError{ + field: "Type", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for Url + + { + sorted_keys := make([]string, len(m.GetCustomFields())) + i := 0 + for key := range m.GetCustomFields() { + sorted_keys[i] = key + i++ + } + sort.Slice(sorted_keys, func(i, j int) bool { return sorted_keys[i] < sorted_keys[j] }) + for _, key := range sorted_keys { + val := m.GetCustomFields()[key] + _ = val + + // no validation rules for CustomFields[key] + + if all { + switch v := interface{}(val).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketValidationError{ + field: fmt.Sprintf("CustomFields[%v]", key), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketValidationError{ + field: fmt.Sprintf("CustomFields[%v]", key), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(val).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketValidationError{ + field: fmt.Sprintf("CustomFields[%v]", key), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + } + + if all { + switch v := interface{}(m.GetCreatedAt()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketValidationError{ + field: "CreatedAt", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketValidationError{ + field: "CreatedAt", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetCreatedAt()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketValidationError{ + field: "CreatedAt", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetUpdatedAt()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketValidationError{ + field: "UpdatedAt", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketValidationError{ + field: "UpdatedAt", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetUpdatedAt()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketValidationError{ + field: "UpdatedAt", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetCompletedAt()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketValidationError{ + field: "CompletedAt", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketValidationError{ + field: "CompletedAt", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetCompletedAt()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketValidationError{ + field: "CompletedAt", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return TicketMultiError(errors) + } + + return nil +} + +// TicketMultiError is an error wrapping multiple validation errors returned by +// Ticket.ValidateAll() if the designated constraints aren't met. +type TicketMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketMultiError) AllErrors() []error { return m } + +// TicketValidationError is the validation error returned by Ticket.Validate if +// the designated constraints aren't met. +type TicketValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketValidationError) ErrorName() string { return "TicketValidationError" } + +// Error satisfies the builtin error interface +func (e TicketValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicket.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketValidationError{} + +// Validate checks the field values on TicketType with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *TicketType) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketType with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in TicketTypeMultiError, or +// nil if none found. +func (m *TicketType) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketType) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for DisplayName + + if len(errors) > 0 { + return TicketTypeMultiError(errors) + } + + return nil +} + +// TicketTypeMultiError is an error wrapping multiple validation errors +// returned by TicketType.ValidateAll() if the designated constraints aren't met. +type TicketTypeMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketTypeMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketTypeMultiError) AllErrors() []error { return m } + +// TicketTypeValidationError is the validation error returned by +// TicketType.Validate if the designated constraints aren't met. +type TicketTypeValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketTypeValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketTypeValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketTypeValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketTypeValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketTypeValidationError) ErrorName() string { return "TicketTypeValidationError" } + +// Error satisfies the builtin error interface +func (e TicketTypeValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketType.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketTypeValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketTypeValidationError{} + +// Validate checks the field values on TicketRequest with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *TicketRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in TicketRequestMultiError, or +// nil if none found. +func (m *TicketRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for DisplayName + + // no validation rules for Description + + if all { + switch v := interface{}(m.GetStatus()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketRequestValidationError{ + field: "Status", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketRequestValidationError{ + field: "Status", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetStatus()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketRequestValidationError{ + field: "Status", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetType()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketRequestValidationError{ + field: "Type", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketRequestValidationError{ + field: "Type", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetType()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketRequestValidationError{ + field: "Type", + reason: "embedded message failed validation", + cause: err, + } + } + } + + { + sorted_keys := make([]string, len(m.GetCustomFields())) + i := 0 + for key := range m.GetCustomFields() { + sorted_keys[i] = key + i++ + } + sort.Slice(sorted_keys, func(i, j int) bool { return sorted_keys[i] < sorted_keys[j] }) + for _, key := range sorted_keys { + val := m.GetCustomFields()[key] + _ = val + + // no validation rules for CustomFields[key] + + if all { + switch v := interface{}(val).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketRequestValidationError{ + field: fmt.Sprintf("CustomFields[%v]", key), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketRequestValidationError{ + field: fmt.Sprintf("CustomFields[%v]", key), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(val).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketRequestValidationError{ + field: fmt.Sprintf("CustomFields[%v]", key), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + } + + if len(errors) > 0 { + return TicketRequestMultiError(errors) + } + + return nil +} + +// TicketRequestMultiError is an error wrapping multiple validation errors +// returned by TicketRequest.ValidateAll() if the designated constraints +// aren't met. +type TicketRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketRequestMultiError) AllErrors() []error { return m } + +// TicketRequestValidationError is the validation error returned by +// TicketRequest.Validate if the designated constraints aren't met. +type TicketRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketRequestValidationError) ErrorName() string { return "TicketRequestValidationError" } + +// Error satisfies the builtin error interface +func (e TicketRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketRequestValidationError{} + +// Validate checks the field values on TicketsServiceCreateTicketRequest with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *TicketsServiceCreateTicketRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketsServiceCreateTicketRequest +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// TicketsServiceCreateTicketRequestMultiError, or nil if none found. +func (m *TicketsServiceCreateTicketRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketsServiceCreateTicketRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetRequest()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketsServiceCreateTicketRequestValidationError{ + field: "Request", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketsServiceCreateTicketRequestValidationError{ + field: "Request", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRequest()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketsServiceCreateTicketRequestValidationError{ + field: "Request", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetSchema()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketsServiceCreateTicketRequestValidationError{ + field: "Schema", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketsServiceCreateTicketRequestValidationError{ + field: "Schema", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetSchema()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketsServiceCreateTicketRequestValidationError{ + field: "Schema", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetAnnotations() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketsServiceCreateTicketRequestValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketsServiceCreateTicketRequestValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketsServiceCreateTicketRequestValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return TicketsServiceCreateTicketRequestMultiError(errors) + } + + return nil +} + +// TicketsServiceCreateTicketRequestMultiError is an error wrapping multiple +// validation errors returned by +// TicketsServiceCreateTicketRequest.ValidateAll() if the designated +// constraints aren't met. +type TicketsServiceCreateTicketRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketsServiceCreateTicketRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketsServiceCreateTicketRequestMultiError) AllErrors() []error { return m } + +// TicketsServiceCreateTicketRequestValidationError is the validation error +// returned by TicketsServiceCreateTicketRequest.Validate if the designated +// constraints aren't met. +type TicketsServiceCreateTicketRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketsServiceCreateTicketRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketsServiceCreateTicketRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketsServiceCreateTicketRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketsServiceCreateTicketRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketsServiceCreateTicketRequestValidationError) ErrorName() string { + return "TicketsServiceCreateTicketRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketsServiceCreateTicketRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketsServiceCreateTicketRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketsServiceCreateTicketRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketsServiceCreateTicketRequestValidationError{} + +// Validate checks the field values on TicketsServiceCreateTicketResponse with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *TicketsServiceCreateTicketResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketsServiceCreateTicketResponse +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// TicketsServiceCreateTicketResponseMultiError, or nil if none found. +func (m *TicketsServiceCreateTicketResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketsServiceCreateTicketResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetTicket()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketsServiceCreateTicketResponseValidationError{ + field: "Ticket", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketsServiceCreateTicketResponseValidationError{ + field: "Ticket", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetTicket()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketsServiceCreateTicketResponseValidationError{ + field: "Ticket", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetAnnotations() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketsServiceCreateTicketResponseValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketsServiceCreateTicketResponseValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketsServiceCreateTicketResponseValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return TicketsServiceCreateTicketResponseMultiError(errors) + } + + return nil +} + +// TicketsServiceCreateTicketResponseMultiError is an error wrapping multiple +// validation errors returned by +// TicketsServiceCreateTicketResponse.ValidateAll() if the designated +// constraints aren't met. +type TicketsServiceCreateTicketResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketsServiceCreateTicketResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketsServiceCreateTicketResponseMultiError) AllErrors() []error { return m } + +// TicketsServiceCreateTicketResponseValidationError is the validation error +// returned by TicketsServiceCreateTicketResponse.Validate if the designated +// constraints aren't met. +type TicketsServiceCreateTicketResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketsServiceCreateTicketResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketsServiceCreateTicketResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketsServiceCreateTicketResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketsServiceCreateTicketResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketsServiceCreateTicketResponseValidationError) ErrorName() string { + return "TicketsServiceCreateTicketResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketsServiceCreateTicketResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketsServiceCreateTicketResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketsServiceCreateTicketResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketsServiceCreateTicketResponseValidationError{} + +// Validate checks the field values on TicketsServiceGetTicketRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *TicketsServiceGetTicketRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketsServiceGetTicketRequest with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// TicketsServiceGetTicketRequestMultiError, or nil if none found. +func (m *TicketsServiceGetTicketRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketsServiceGetTicketRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + for idx, item := range m.GetAnnotations() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketsServiceGetTicketRequestValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketsServiceGetTicketRequestValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketsServiceGetTicketRequestValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return TicketsServiceGetTicketRequestMultiError(errors) + } + + return nil +} + +// TicketsServiceGetTicketRequestMultiError is an error wrapping multiple +// validation errors returned by TicketsServiceGetTicketRequest.ValidateAll() +// if the designated constraints aren't met. +type TicketsServiceGetTicketRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketsServiceGetTicketRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketsServiceGetTicketRequestMultiError) AllErrors() []error { return m } + +// TicketsServiceGetTicketRequestValidationError is the validation error +// returned by TicketsServiceGetTicketRequest.Validate if the designated +// constraints aren't met. +type TicketsServiceGetTicketRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketsServiceGetTicketRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketsServiceGetTicketRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketsServiceGetTicketRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketsServiceGetTicketRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketsServiceGetTicketRequestValidationError) ErrorName() string { + return "TicketsServiceGetTicketRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketsServiceGetTicketRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketsServiceGetTicketRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketsServiceGetTicketRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketsServiceGetTicketRequestValidationError{} + +// Validate checks the field values on TicketsServiceGetTicketResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *TicketsServiceGetTicketResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on TicketsServiceGetTicketResponse with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// TicketsServiceGetTicketResponseMultiError, or nil if none found. +func (m *TicketsServiceGetTicketResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *TicketsServiceGetTicketResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetTicket()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketsServiceGetTicketResponseValidationError{ + field: "Ticket", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketsServiceGetTicketResponseValidationError{ + field: "Ticket", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetTicket()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketsServiceGetTicketResponseValidationError{ + field: "Ticket", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetAnnotations() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TicketsServiceGetTicketResponseValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TicketsServiceGetTicketResponseValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TicketsServiceGetTicketResponseValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return TicketsServiceGetTicketResponseMultiError(errors) + } + + return nil +} + +// TicketsServiceGetTicketResponseMultiError is an error wrapping multiple +// validation errors returned by TicketsServiceGetTicketResponse.ValidateAll() +// if the designated constraints aren't met. +type TicketsServiceGetTicketResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m TicketsServiceGetTicketResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m TicketsServiceGetTicketResponseMultiError) AllErrors() []error { return m } + +// TicketsServiceGetTicketResponseValidationError is the validation error +// returned by TicketsServiceGetTicketResponse.Validate if the designated +// constraints aren't met. +type TicketsServiceGetTicketResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TicketsServiceGetTicketResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TicketsServiceGetTicketResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TicketsServiceGetTicketResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TicketsServiceGetTicketResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TicketsServiceGetTicketResponseValidationError) ErrorName() string { + return "TicketsServiceGetTicketResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e TicketsServiceGetTicketResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTicketsServiceGetTicketResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TicketsServiceGetTicketResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TicketsServiceGetTicketResponseValidationError{} diff --git a/vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/ticket_grpc.pb.go b/vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/ticket_grpc.pb.go new file mode 100644 index 00000000..a8adbc66 --- /dev/null +++ b/vendor/github.com/conductorone/baton-sdk/pb/c1/connector/v2/ticket_grpc.pb.go @@ -0,0 +1,211 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc (unknown) +// source: c1/connector/v2/ticket.proto + +package v2 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// TicketsServiceClient is the client API for TicketsService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type TicketsServiceClient interface { + CreateTicket(ctx context.Context, in *TicketsServiceCreateTicketRequest, opts ...grpc.CallOption) (*TicketsServiceCreateTicketResponse, error) + GetTicket(ctx context.Context, in *TicketsServiceGetTicketRequest, opts ...grpc.CallOption) (*TicketsServiceGetTicketResponse, error) + ListTicketSchemas(ctx context.Context, in *TicketsServiceListTicketSchemasRequest, opts ...grpc.CallOption) (*TicketsServiceListTicketSchemasResponse, error) + GetTicketSchema(ctx context.Context, in *TicketsServiceGetTicketSchemaRequest, opts ...grpc.CallOption) (*TicketsServiceGetTicketSchemaResponse, error) +} + +type ticketsServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewTicketsServiceClient(cc grpc.ClientConnInterface) TicketsServiceClient { + return &ticketsServiceClient{cc} +} + +func (c *ticketsServiceClient) CreateTicket(ctx context.Context, in *TicketsServiceCreateTicketRequest, opts ...grpc.CallOption) (*TicketsServiceCreateTicketResponse, error) { + out := new(TicketsServiceCreateTicketResponse) + err := c.cc.Invoke(ctx, "/c1.connector.v2.TicketsService/CreateTicket", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *ticketsServiceClient) GetTicket(ctx context.Context, in *TicketsServiceGetTicketRequest, opts ...grpc.CallOption) (*TicketsServiceGetTicketResponse, error) { + out := new(TicketsServiceGetTicketResponse) + err := c.cc.Invoke(ctx, "/c1.connector.v2.TicketsService/GetTicket", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *ticketsServiceClient) ListTicketSchemas(ctx context.Context, in *TicketsServiceListTicketSchemasRequest, opts ...grpc.CallOption) (*TicketsServiceListTicketSchemasResponse, error) { + out := new(TicketsServiceListTicketSchemasResponse) + err := c.cc.Invoke(ctx, "/c1.connector.v2.TicketsService/ListTicketSchemas", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *ticketsServiceClient) GetTicketSchema(ctx context.Context, in *TicketsServiceGetTicketSchemaRequest, opts ...grpc.CallOption) (*TicketsServiceGetTicketSchemaResponse, error) { + out := new(TicketsServiceGetTicketSchemaResponse) + err := c.cc.Invoke(ctx, "/c1.connector.v2.TicketsService/GetTicketSchema", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// TicketsServiceServer is the server API for TicketsService service. +// All implementations should embed UnimplementedTicketsServiceServer +// for forward compatibility +type TicketsServiceServer interface { + CreateTicket(context.Context, *TicketsServiceCreateTicketRequest) (*TicketsServiceCreateTicketResponse, error) + GetTicket(context.Context, *TicketsServiceGetTicketRequest) (*TicketsServiceGetTicketResponse, error) + ListTicketSchemas(context.Context, *TicketsServiceListTicketSchemasRequest) (*TicketsServiceListTicketSchemasResponse, error) + GetTicketSchema(context.Context, *TicketsServiceGetTicketSchemaRequest) (*TicketsServiceGetTicketSchemaResponse, error) +} + +// UnimplementedTicketsServiceServer should be embedded to have forward compatible implementations. +type UnimplementedTicketsServiceServer struct { +} + +func (UnimplementedTicketsServiceServer) CreateTicket(context.Context, *TicketsServiceCreateTicketRequest) (*TicketsServiceCreateTicketResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateTicket not implemented") +} +func (UnimplementedTicketsServiceServer) GetTicket(context.Context, *TicketsServiceGetTicketRequest) (*TicketsServiceGetTicketResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetTicket not implemented") +} +func (UnimplementedTicketsServiceServer) ListTicketSchemas(context.Context, *TicketsServiceListTicketSchemasRequest) (*TicketsServiceListTicketSchemasResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListTicketSchemas not implemented") +} +func (UnimplementedTicketsServiceServer) GetTicketSchema(context.Context, *TicketsServiceGetTicketSchemaRequest) (*TicketsServiceGetTicketSchemaResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetTicketSchema not implemented") +} + +// UnsafeTicketsServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to TicketsServiceServer will +// result in compilation errors. +type UnsafeTicketsServiceServer interface { + mustEmbedUnimplementedTicketsServiceServer() +} + +func RegisterTicketsServiceServer(s grpc.ServiceRegistrar, srv TicketsServiceServer) { + s.RegisterService(&TicketsService_ServiceDesc, srv) +} + +func _TicketsService_CreateTicket_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TicketsServiceCreateTicketRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TicketsServiceServer).CreateTicket(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/c1.connector.v2.TicketsService/CreateTicket", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TicketsServiceServer).CreateTicket(ctx, req.(*TicketsServiceCreateTicketRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TicketsService_GetTicket_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TicketsServiceGetTicketRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TicketsServiceServer).GetTicket(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/c1.connector.v2.TicketsService/GetTicket", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TicketsServiceServer).GetTicket(ctx, req.(*TicketsServiceGetTicketRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TicketsService_ListTicketSchemas_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TicketsServiceListTicketSchemasRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TicketsServiceServer).ListTicketSchemas(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/c1.connector.v2.TicketsService/ListTicketSchemas", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TicketsServiceServer).ListTicketSchemas(ctx, req.(*TicketsServiceListTicketSchemasRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TicketsService_GetTicketSchema_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TicketsServiceGetTicketSchemaRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TicketsServiceServer).GetTicketSchema(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/c1.connector.v2.TicketsService/GetTicketSchema", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TicketsServiceServer).GetTicketSchema(ctx, req.(*TicketsServiceGetTicketSchemaRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// TicketsService_ServiceDesc is the grpc.ServiceDesc for TicketsService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var TicketsService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "c1.connector.v2.TicketsService", + HandlerType: (*TicketsServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateTicket", + Handler: _TicketsService_CreateTicket_Handler, + }, + { + MethodName: "GetTicket", + Handler: _TicketsService_GetTicket_Handler, + }, + { + MethodName: "ListTicketSchemas", + Handler: _TicketsService_ListTicketSchemas_Handler, + }, + { + MethodName: "GetTicketSchema", + Handler: _TicketsService_GetTicketSchema_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "c1/connector/v2/ticket.proto", +} diff --git a/vendor/github.com/conductorone/baton-sdk/pb/c1/connectorapi/baton/v1/baton.pb.go b/vendor/github.com/conductorone/baton-sdk/pb/c1/connectorapi/baton/v1/baton.pb.go index 889aea60..e4a427bb 100644 --- a/vendor/github.com/conductorone/baton-sdk/pb/c1/connectorapi/baton/v1/baton.pb.go +++ b/vendor/github.com/conductorone/baton-sdk/pb/c1/connectorapi/baton/v1/baton.pb.go @@ -100,6 +100,9 @@ type Task struct { // *Task_DeleteResource // *Task_RotateCredentials // *Task_EventFeed + // *Task_CreateTicketTask_ + // *Task_ListTicketSchemas + // *Task_GetTicket TaskType isTask_TaskType `protobuf_oneof:"task_type"` } @@ -226,6 +229,27 @@ func (x *Task) GetEventFeed() *Task_EventFeedTask { return nil } +func (x *Task) GetCreateTicketTask() *Task_CreateTicketTask { + if x, ok := x.GetTaskType().(*Task_CreateTicketTask_); ok { + return x.CreateTicketTask + } + return nil +} + +func (x *Task) GetListTicketSchemas() *Task_ListTicketSchemasTask { + if x, ok := x.GetTaskType().(*Task_ListTicketSchemas); ok { + return x.ListTicketSchemas + } + return nil +} + +func (x *Task) GetGetTicket() *Task_GetTicketTask { + if x, ok := x.GetTaskType().(*Task_GetTicket); ok { + return x.GetTicket + } + return nil +} + type isTask_TaskType interface { isTask_TaskType() } @@ -270,6 +294,18 @@ type Task_EventFeed struct { EventFeed *Task_EventFeedTask `protobuf:"bytes,109,opt,name=event_feed,json=eventFeed,proto3,oneof"` } +type Task_CreateTicketTask_ struct { + CreateTicketTask *Task_CreateTicketTask `protobuf:"bytes,110,opt,name=create_ticket_task,json=createTicketTask,proto3,oneof"` +} + +type Task_ListTicketSchemas struct { + ListTicketSchemas *Task_ListTicketSchemasTask `protobuf:"bytes,111,opt,name=list_ticket_schemas,json=listTicketSchemas,proto3,oneof"` +} + +type Task_GetTicket struct { + GetTicket *Task_GetTicketTask `protobuf:"bytes,112,opt,name=get_ticket,json=getTicket,proto3,oneof"` +} + func (*Task_None) isTask_TaskType() {} func (*Task_Hello) isTask_TaskType() {} @@ -290,6 +326,12 @@ func (*Task_RotateCredentials) isTask_TaskType() {} func (*Task_EventFeed) isTask_TaskType() {} +func (*Task_CreateTicketTask_) isTask_TaskType() {} + +func (*Task_ListTicketSchemas) isTask_TaskType() {} + +func (*Task_GetTicket) isTask_TaskType() {} + type BatonServiceHelloRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1505,6 +1547,171 @@ func (x *Task_RotateCredentialsTask) GetEncryptionConfigs() []*v2.EncryptionConf return nil } +type Task_CreateTicketTask struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TicketRequest *v2.TicketRequest `protobuf:"bytes,1,opt,name=ticket_request,json=ticketRequest,proto3" json:"ticket_request,omitempty"` + TicketSchema *v2.TicketSchema `protobuf:"bytes,2,opt,name=ticket_schema,json=ticketSchema,proto3" json:"ticket_schema,omitempty"` + Annotations []*anypb.Any `protobuf:"bytes,3,rep,name=annotations,proto3" json:"annotations,omitempty"` +} + +func (x *Task_CreateTicketTask) Reset() { + *x = Task_CreateTicketTask{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Task_CreateTicketTask) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Task_CreateTicketTask) ProtoMessage() {} + +func (x *Task_CreateTicketTask) ProtoReflect() protoreflect.Message { + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Task_CreateTicketTask.ProtoReflect.Descriptor instead. +func (*Task_CreateTicketTask) Descriptor() ([]byte, []int) { + return file_c1_connectorapi_baton_v1_baton_proto_rawDescGZIP(), []int{0, 10} +} + +func (x *Task_CreateTicketTask) GetTicketRequest() *v2.TicketRequest { + if x != nil { + return x.TicketRequest + } + return nil +} + +func (x *Task_CreateTicketTask) GetTicketSchema() *v2.TicketSchema { + if x != nil { + return x.TicketSchema + } + return nil +} + +func (x *Task_CreateTicketTask) GetAnnotations() []*anypb.Any { + if x != nil { + return x.Annotations + } + return nil +} + +type Task_ListTicketSchemasTask struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Annotations []*anypb.Any `protobuf:"bytes,1,rep,name=annotations,proto3" json:"annotations,omitempty"` +} + +func (x *Task_ListTicketSchemasTask) Reset() { + *x = Task_ListTicketSchemasTask{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Task_ListTicketSchemasTask) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Task_ListTicketSchemasTask) ProtoMessage() {} + +func (x *Task_ListTicketSchemasTask) ProtoReflect() protoreflect.Message { + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Task_ListTicketSchemasTask.ProtoReflect.Descriptor instead. +func (*Task_ListTicketSchemasTask) Descriptor() ([]byte, []int) { + return file_c1_connectorapi_baton_v1_baton_proto_rawDescGZIP(), []int{0, 11} +} + +func (x *Task_ListTicketSchemasTask) GetAnnotations() []*anypb.Any { + if x != nil { + return x.Annotations + } + return nil +} + +type Task_GetTicketTask struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TicketId string `protobuf:"bytes,1,opt,name=ticket_id,json=ticketId,proto3" json:"ticket_id,omitempty"` + Annotations []*anypb.Any `protobuf:"bytes,2,rep,name=annotations,proto3" json:"annotations,omitempty"` +} + +func (x *Task_GetTicketTask) Reset() { + *x = Task_GetTicketTask{} + if protoimpl.UnsafeEnabled { + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Task_GetTicketTask) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Task_GetTicketTask) ProtoMessage() {} + +func (x *Task_GetTicketTask) ProtoReflect() protoreflect.Message { + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Task_GetTicketTask.ProtoReflect.Descriptor instead. +func (*Task_GetTicketTask) Descriptor() ([]byte, []int) { + return file_c1_connectorapi_baton_v1_baton_proto_rawDescGZIP(), []int{0, 12} +} + +func (x *Task_GetTicketTask) GetTicketId() string { + if x != nil { + return x.TicketId + } + return "" +} + +func (x *Task_GetTicketTask) GetAnnotations() []*anypb.Any { + if x != nil { + return x.Annotations + } + return nil +} + type BatonServiceHelloRequest_BuildInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1518,7 +1725,7 @@ type BatonServiceHelloRequest_BuildInfo struct { func (x *BatonServiceHelloRequest_BuildInfo) Reset() { *x = BatonServiceHelloRequest_BuildInfo{} if protoimpl.UnsafeEnabled { - mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[21] + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1531,7 +1738,7 @@ func (x *BatonServiceHelloRequest_BuildInfo) String() string { func (*BatonServiceHelloRequest_BuildInfo) ProtoMessage() {} func (x *BatonServiceHelloRequest_BuildInfo) ProtoReflect() protoreflect.Message { - mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[21] + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1586,7 +1793,7 @@ type BatonServiceHelloRequest_OSInfo struct { func (x *BatonServiceHelloRequest_OSInfo) Reset() { *x = BatonServiceHelloRequest_OSInfo{} if protoimpl.UnsafeEnabled { - mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[22] + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1599,7 +1806,7 @@ func (x *BatonServiceHelloRequest_OSInfo) String() string { func (*BatonServiceHelloRequest_OSInfo) ProtoMessage() {} func (x *BatonServiceHelloRequest_OSInfo) ProtoReflect() protoreflect.Message { - mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[22] + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1684,7 +1891,7 @@ type BatonServiceUploadAssetRequest_UploadMetadata struct { func (x *BatonServiceUploadAssetRequest_UploadMetadata) Reset() { *x = BatonServiceUploadAssetRequest_UploadMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[23] + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1697,7 +1904,7 @@ func (x *BatonServiceUploadAssetRequest_UploadMetadata) String() string { func (*BatonServiceUploadAssetRequest_UploadMetadata) ProtoMessage() {} func (x *BatonServiceUploadAssetRequest_UploadMetadata) ProtoReflect() protoreflect.Message { - mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[23] + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1746,7 +1953,7 @@ type BatonServiceUploadAssetRequest_UploadData struct { func (x *BatonServiceUploadAssetRequest_UploadData) Reset() { *x = BatonServiceUploadAssetRequest_UploadData{} if protoimpl.UnsafeEnabled { - mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[24] + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1759,7 +1966,7 @@ func (x *BatonServiceUploadAssetRequest_UploadData) String() string { func (*BatonServiceUploadAssetRequest_UploadData) ProtoMessage() {} func (x *BatonServiceUploadAssetRequest_UploadData) ProtoReflect() protoreflect.Message { - mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[24] + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1794,7 +2001,7 @@ type BatonServiceUploadAssetRequest_UploadEOF struct { func (x *BatonServiceUploadAssetRequest_UploadEOF) Reset() { *x = BatonServiceUploadAssetRequest_UploadEOF{} if protoimpl.UnsafeEnabled { - mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[25] + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1807,7 +2014,7 @@ func (x *BatonServiceUploadAssetRequest_UploadEOF) String() string { func (*BatonServiceUploadAssetRequest_UploadEOF) ProtoMessage() {} func (x *BatonServiceUploadAssetRequest_UploadEOF) ProtoReflect() protoreflect.Message { - mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[25] + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1851,7 +2058,7 @@ type BatonServiceFinishTaskRequest_Error struct { func (x *BatonServiceFinishTaskRequest_Error) Reset() { *x = BatonServiceFinishTaskRequest_Error{} if protoimpl.UnsafeEnabled { - mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[26] + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1864,7 +2071,7 @@ func (x *BatonServiceFinishTaskRequest_Error) String() string { func (*BatonServiceFinishTaskRequest_Error) ProtoMessage() {} func (x *BatonServiceFinishTaskRequest_Error) ProtoReflect() protoreflect.Message { - mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[26] + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1914,7 +2121,7 @@ type BatonServiceFinishTaskRequest_Success struct { func (x *BatonServiceFinishTaskRequest_Success) Reset() { *x = BatonServiceFinishTaskRequest_Success{} if protoimpl.UnsafeEnabled { - mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[27] + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1927,7 +2134,7 @@ func (x *BatonServiceFinishTaskRequest_Success) String() string { func (*BatonServiceFinishTaskRequest_Success) ProtoMessage() {} func (x *BatonServiceFinishTaskRequest_Success) ProtoReflect() protoreflect.Message { - mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[27] + mi := &file_c1_connectorapi_baton_v1_baton_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1972,416 +2179,461 @@ var file_c1_connectorapi_baton_v1_baton_proto_rawDesc = []byte{ 0x6f, 0x72, 0x2f, 0x76, 0x32, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0xcd, 0x12, 0x0a, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x18, - 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x4e, 0x6f, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x12, 0x40, 0x0a, 0x05, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x18, - 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x61, 0x73, 0x6b, 0x48, - 0x00, 0x52, 0x05, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x12, 0x4a, 0x0a, 0x09, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x31, - 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, - 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x53, 0x79, 0x6e, 0x63, - 0x46, 0x75, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x08, 0x73, 0x79, 0x6e, 0x63, - 0x46, 0x75, 0x6c, 0x6c, 0x12, 0x40, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x18, 0x67, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, - 0x61, 0x73, 0x6b, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, - 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, - 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x6f, 0x1a, 0x1c, 0x63, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2f, + 0x76, 0x32, 0x2f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf4, 0x17, + 0x0a, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x54, 0x61, 0x73, - 0x6b, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x12, 0x59, 0x0a, 0x0e, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x69, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x18, 0x64, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, - 0x61, 0x73, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5c, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x31, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, - 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x12, 0x5c, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, - 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, - 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x73, 0x6b, - 0x48, 0x00, 0x52, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x65, 0x0a, 0x12, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, - 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, - 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x52, - 0x6f, 0x74, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, - 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x11, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x43, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x4d, 0x0a, 0x0a, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x61, 0x73, 0x6b, 0x2e, 0x4e, 0x6f, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x6f, 0x6e, 0x65, 0x12, 0x40, 0x0a, 0x05, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x18, 0x65, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, + 0x61, 0x73, 0x6b, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, + 0x05, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x12, 0x4a, 0x0a, 0x09, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x66, + 0x75, 0x6c, 0x6c, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x31, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x75, + 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x75, + 0x6c, 0x6c, 0x12, 0x40, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x18, 0x67, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, + 0x6b, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x05, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x18, 0x68, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x48, + 0x00, 0x52, 0x06, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x12, 0x59, 0x0a, 0x0e, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x69, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, + 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5c, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, - 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x09, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x64, 0x1a, 0x42, 0x0a, 0x08, 0x4e, 0x6f, 0x6e, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, - 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x43, 0x0a, 0x09, - 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x1a, 0x46, 0x0a, 0x0c, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x75, 0x6c, 0x6c, 0x54, 0x61, 0x73, - 0x6b, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x7e, 0x0a, 0x0d, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x46, 0x65, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, + 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x73, 0x6b, + 0x48, 0x00, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x5c, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x31, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, + 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, + 0x52, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x65, 0x0a, 0x12, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, + 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, + 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x52, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x54, 0x61, + 0x73, 0x6b, 0x48, 0x00, 0x52, 0x11, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x4d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x66, 0x65, 0x65, 0x64, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x31, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, + 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x46, 0x65, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x09, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x46, 0x65, 0x65, 0x64, 0x12, 0x5f, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x6e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, + 0x73, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x54, + 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x63, + 0x6b, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x66, 0x0a, 0x13, 0x6c, 0x69, 0x73, 0x74, 0x5f, + 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x6f, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x11, 0x6c, 0x69, + 0x73, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, + 0x4d, 0x0a, 0x0a, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x70, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, + 0x61, 0x73, 0x6b, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x61, 0x73, + 0x6b, 0x48, 0x00, 0x52, 0x09, 0x67, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x1a, 0x42, + 0x0a, 0x08, 0x4e, 0x6f, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x74, 0x1a, 0xf3, 0x01, 0x0a, 0x09, 0x47, 0x72, - 0x61, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x3e, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, - 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x45, - 0x6e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, - 0x69, 0x70, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x31, 0x2e, - 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, + 0x6e, 0x73, 0x1a, 0x43, 0x0a, 0x09, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x61, 0x73, 0x6b, 0x12, + 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x46, 0x0a, 0x0c, 0x53, 0x79, 0x6e, 0x63, 0x46, + 0x75, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, + 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, + 0x7e, 0x0a, 0x0d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, - 0x72, 0x0a, 0x0a, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2c, 0x0a, - 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, - 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x47, - 0x72, 0x61, 0x6e, 0x74, 0x52, 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x0b, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x1a, 0xf9, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x3f, 0x0a, 0x0c, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x51, 0x0a, 0x12, 0x63, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x11, 0x63, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x50, 0x0a, - 0x12, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x31, 0x2e, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x11, 0x65, 0x6e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x1a, - 0x4b, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x35, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x52, 0x0a, 0x12, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x12, 0x3c, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x49, 0x64, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, - 0x1a, 0xfa, 0x01, 0x0a, 0x15, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x3c, 0x0a, 0x0b, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, - 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x52, 0x0a, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x12, 0x51, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x11, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x50, 0x0a, 0x12, 0x65, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x11, 0x65, 0x6e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, 0x73, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, - 0x47, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x43, - 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x13, 0x0a, - 0x0f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, - 0x10, 0x04, 0x42, 0x0b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, - 0xf3, 0x07, 0x0a, 0x18, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x07, - 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, - 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, - 0x64, 0x12, 0x32, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x19, 0xfa, 0x42, 0x16, 0x72, 0x14, 0x32, 0x12, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, - 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x32, 0x37, 0x7d, 0x7c, 0x24, 0x52, 0x06, 0x74, - 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x65, 0x0a, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x63, 0x31, 0x2e, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x75, - 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, - 0x01, 0x52, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5c, 0x0a, 0x07, - 0x6f, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, - 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, - 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x74, 0x1a, + 0xf3, 0x01, 0x0a, 0x09, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x3e, 0x0a, + 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x37, 0x0a, + 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x09, 0x70, 0x72, 0x69, + 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, + 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, + 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x72, 0x0a, 0x0a, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x54, + 0x61, 0x73, 0x6b, 0x12, 0x2c, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x05, 0x67, 0x72, 0x61, 0x6e, + 0x74, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xf9, 0x01, 0x0a, 0x11, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, + 0x3f, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x51, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, + 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x11, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x50, 0x0a, 0x12, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, + 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x73, 0x1a, 0x4b, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x35, 0x0a, 0x08, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x1a, 0x52, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x3c, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x1a, 0xfa, 0x01, 0x0a, 0x15, 0x52, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x54, 0x61, 0x73, 0x6b, + 0x12, 0x3c, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x49, 0x64, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x12, 0x51, + 0x0a, 0x12, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x31, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x11, + 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x50, 0x0a, 0x12, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, + 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x73, 0x1a, 0xd5, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x63, 0x6b, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x45, 0x0a, 0x0e, 0x74, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, + 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x0d, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x42, 0x0a, 0x0d, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0c, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x4f, 0x0a, 0x15, 0x4c, + 0x69, 0x73, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, + 0x54, 0x61, 0x73, 0x6b, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, + 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x64, 0x0a, 0x0d, + 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1b, 0x0a, + 0x09, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0x73, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, + 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x12, + 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, + 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x49, 0x4e, + 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x04, 0x42, 0x0b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x22, 0xf3, 0x07, 0x0a, 0x18, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x4f, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, - 0x10, 0x01, 0x52, 0x06, 0x6f, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5b, 0x0a, 0x12, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, - 0x01, 0x02, 0x10, 0x01, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, - 0x6e, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x10, 0x10, 0x52, 0x0b, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x95, 0x01, 0x0a, 0x09, 0x42, 0x75, - 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2d, 0x0a, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, - 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x0b, 0x6c, 0x61, 0x6e, 0x67, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, - 0x18, 0x80, 0x02, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x0f, - 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, - 0x02, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x1a, 0x81, 0x03, 0x0a, 0x06, 0x4f, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x08, - 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, - 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x02, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x02, 0x6f, 0x73, - 0x12, 0x26, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x08, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x35, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x0f, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x33, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x66, 0x61, 0x6d, 0x69, - 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, - 0x01, 0x18, 0x80, 0x02, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x46, 0x61, - 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x31, 0x0a, 0x0e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, - 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x0d, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x0b, 0x6b, 0x65, 0x72, 0x6e, 0x65, - 0x6c, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, - 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x0a, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, - 0x41, 0x72, 0x63, 0x68, 0x12, 0x3f, 0x0a, 0x15, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, - 0x14, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x53, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x41, 0x0a, 0x1a, 0x42, 0x61, - 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, - 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x22, 0x83, 0x02, - 0x0a, 0x1b, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, - 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x31, - 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, - 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x74, 0x61, 0x73, - 0x6b, 0x12, 0x36, 0x0a, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x08, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x6f, 0x6c, 0x6c, 0x12, 0x40, 0x0a, 0x0e, 0x6e, 0x65, 0x78, - 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6e, 0x65, - 0x78, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x36, 0x0a, 0x0b, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x1c, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, - 0x02, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x74, 0x61, 0x73, - 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xfa, 0x42, 0x15, 0x72, - 0x13, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b, - 0x32, 0x37, 0x7d, 0x24, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x74, 0x12, 0x23, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x06, + 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0xfa, 0x42, 0x16, 0x72, 0x14, 0x32, 0x12, + 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x32, 0x37, 0x7d, + 0x7c, 0x24, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x65, 0x0a, 0x0a, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, + 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, + 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x08, 0xfa, 0x42, + 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x5c, 0x0a, 0x07, 0x6f, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, + 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x08, 0xfa, + 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6f, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x5b, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x31, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, + 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0b, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x10, - 0x10, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xb7, - 0x01, 0x0a, 0x1d, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, - 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x40, 0x0a, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, - 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, - 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, + 0x10, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x95, + 0x01, 0x0a, 0x09, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2d, 0x0a, 0x0c, + 0x6c, 0x61, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x0b, + 0x6c, 0x61, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x07, 0x70, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, + 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x12, 0x33, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, + 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x81, 0x03, 0x0a, 0x06, 0x4f, 0x53, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x26, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, + 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x02, 0x6f, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, + 0x02, 0x52, 0x02, 0x6f, 0x73, 0x12, 0x26, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, + 0x18, 0x80, 0x02, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x35, 0x0a, + 0x10, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, + 0x18, 0x80, 0x02, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, + 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x31, 0x0a, 0x0e, 0x6b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x0d, 0x6b, + 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x0b, + 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x0a, 0x6b, + 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x41, 0x72, 0x63, 0x68, 0x12, 0x3f, 0x0a, 0x15, 0x76, 0x69, 0x72, + 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, + 0x01, 0x18, 0x80, 0x02, 0x52, 0x14, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x53, 0x0a, 0x19, 0x42, 0x61, + 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, + 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, + 0x41, 0x0a, 0x1a, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, + 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, + 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, + 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, + 0x49, 0x64, 0x22, 0x83, 0x02, 0x0a, 0x1b, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, + 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, + 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x36, 0x0a, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, + 0x6f, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x6f, 0x6c, 0x6c, 0x12, 0x40, + 0x0a, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa3, 0x05, 0x0a, 0x1e, 0x42, 0x61, 0x74, - 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, - 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x65, 0x0a, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, - 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, - 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x59, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x43, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, - 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, - 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, - 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x56, 0x0a, - 0x03, 0x65, 0x6f, 0x66, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x63, 0x31, 0x2e, - 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, - 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x4f, 0x46, 0x48, 0x00, - 0x52, 0x03, 0x65, 0x6f, 0x66, 0x1a, 0xaa, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, - 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x31, 0x0a, - 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, - 0xfa, 0x42, 0x15, 0x72, 0x13, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, - 0x2d, 0x39, 0x5d, 0x7b, 0x32, 0x37, 0x7d, 0x24, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, - 0x12, 0x40, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, - 0x92, 0x01, 0x02, 0x10, 0x10, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x1a, 0x2d, 0x0a, 0x0a, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x1f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x0b, - 0xfa, 0x42, 0x08, 0x7a, 0x06, 0x10, 0x01, 0x18, 0x80, 0x80, 0x40, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x1a, 0x7f, 0x0a, 0x09, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x4f, 0x46, 0x12, 0x30, - 0x0a, 0x0f, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x7a, 0x02, 0x68, 0x20, - 0x52, 0x0e, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x12, 0x40, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, - 0x92, 0x01, 0x02, 0x10, 0x10, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x42, 0x0a, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x59, - 0x0a, 0x1f, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x8d, 0x05, 0x0a, 0x1d, 0x42, 0x61, - 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x07, 0x68, - 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, - 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, - 0x12, 0x31, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x18, 0xfa, 0x42, 0x15, 0x72, 0x13, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, - 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x32, 0x37, 0x7d, 0x24, 0x52, 0x06, 0x74, 0x61, 0x73, - 0x6b, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x55, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, - 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, - 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x61, 0x73, 0x6b, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x5b, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x1a, 0xa0, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x23, 0x0a, - 0x0d, 0x6e, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x08, 0xfa, - 0x42, 0x05, 0x92, 0x01, 0x02, 0x10, 0x10, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x08, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x7d, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x1c, 0x42, 0x61, 0x74, + 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, + 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x07, 0x68, 0x6f, 0x73, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, + 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x31, + 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x18, 0xfa, 0x42, 0x15, 0x72, 0x13, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, + 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x32, 0x37, 0x7d, 0x24, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, + 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x10, 0x10, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x08, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x12, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x58, 0x0a, 0x1e, 0x42, 0x61, 0x74, - 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, - 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0b, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x32, 0x89, 0x05, 0x0a, 0x0c, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x72, 0x0a, 0x05, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x12, 0x32, 0x2e, - 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, - 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, - 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x54, - 0x61, 0x73, 0x6b, 0x12, 0x34, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, - 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x63, 0x31, 0x2e, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, - 0x36, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, + 0x6f, 0x6e, 0x73, 0x22, 0xb7, 0x01, 0x0a, 0x1d, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, + 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x65, + 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, + 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa3, 0x05, + 0x0a, 0x1e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x65, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x64, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, + 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x59, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x56, 0x0a, 0x03, 0x65, 0x6f, 0x66, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x42, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, - 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x0a, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x61, 0x73, - 0x6b, 0x12, 0x37, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, - 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, - 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x31, 0x2e, - 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, - 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x86, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x38, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x45, 0x4f, 0x46, 0x48, 0x00, 0x52, 0x03, 0x65, 0x6f, 0x66, 0x1a, 0xaa, 0x01, 0x0a, 0x0e, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, + 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, + 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, + 0x49, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x18, 0xfa, 0x42, 0x15, 0x72, 0x13, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, + 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x32, 0x37, 0x7d, 0x24, 0x52, 0x06, 0x74, + 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, + 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x10, 0x10, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x2d, 0x0a, 0x0a, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x7a, 0x06, 0x10, 0x01, 0x18, 0x80, 0x80, 0x40, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x7f, 0x0a, 0x09, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x45, 0x4f, 0x46, 0x12, 0x30, 0x0a, 0x0f, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5f, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x7a, 0x02, 0x68, 0x20, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x40, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, + 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x10, 0x10, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x0a, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x03, + 0xf8, 0x42, 0x01, 0x22, 0x59, 0x0a, 0x1f, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, + 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x8d, + 0x05, 0x0a, 0x1d, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x23, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x02, 0x52, 0x06, 0x68, + 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xfa, 0x42, 0x15, 0x72, 0x13, 0x32, 0x11, 0x5e, + 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x32, 0x37, 0x7d, 0x24, + 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x55, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x64, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x5b, 0x0a, 0x07, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x63, + 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, + 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, + 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x1a, 0xa0, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x6f, 0x6e, 0x52, 0x65, + 0x74, 0x72, 0x79, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, + 0x6e, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x10, 0x10, 0x52, 0x0b, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, + 0x79, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x7d, 0x0a, 0x07, 0x53, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, + 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x10, 0x10, 0x52, 0x0b, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, + 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x12, 0x0a, 0x0b, 0x66, 0x69, + 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x58, + 0x0a, 0x1e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x36, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0x89, 0x05, 0x0a, 0x0c, 0x42, 0x61, 0x74, + 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x72, 0x0a, 0x05, 0x48, 0x65, 0x6c, + 0x6c, 0x6f, 0x12, 0x32, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, + 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x39, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, - 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, - 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, - 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x42, - 0x37, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x75, - 0x63, 0x74, 0x6f, 0x6e, 0x65, 0x2f, 0x63, 0x31, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x2f, - 0x63, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2f, - 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, + 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, + 0x07, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x34, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, + 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, + 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, + 0x62, 0x65, 0x61, 0x74, 0x12, 0x36, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, 0x72, + 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, + 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, + 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x0a, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x37, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x38, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, + 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x61, 0x73, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x86, 0x01, 0x0a, 0x0b, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x38, 0x2e, 0x63, 0x31, + 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, + 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x61, 0x70, 0x69, 0x2e, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x42, 0x61, 0x74, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x28, 0x01, 0x42, 0x37, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x64, 0x75, 0x63, 0x74, 0x6f, 0x6e, 0x65, 0x2f, 0x63, 0x31, 0x2f, 0x70, 0x6b, + 0x67, 0x2f, 0x70, 0x62, 0x2f, 0x63, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x61, 0x70, 0x69, 0x2f, 0x62, 0x61, 0x74, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2397,7 +2649,7 @@ func file_c1_connectorapi_baton_v1_baton_proto_rawDescGZIP() []byte { } var file_c1_connectorapi_baton_v1_baton_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_c1_connectorapi_baton_v1_baton_proto_msgTypes = make([]protoimpl.MessageInfo, 28) +var file_c1_connectorapi_baton_v1_baton_proto_msgTypes = make([]protoimpl.MessageInfo, 31) var file_c1_connectorapi_baton_v1_baton_proto_goTypes = []interface{}{ (Task_Status)(0), // 0: c1.connectorapi.baton.v1.Task.Status (*Task)(nil), // 1: c1.connectorapi.baton.v1.Task @@ -2421,25 +2673,30 @@ var file_c1_connectorapi_baton_v1_baton_proto_goTypes = []interface{}{ (*Task_CreateResourceTask)(nil), // 19: c1.connectorapi.baton.v1.Task.CreateResourceTask (*Task_DeleteResourceTask)(nil), // 20: c1.connectorapi.baton.v1.Task.DeleteResourceTask (*Task_RotateCredentialsTask)(nil), // 21: c1.connectorapi.baton.v1.Task.RotateCredentialsTask - (*BatonServiceHelloRequest_BuildInfo)(nil), // 22: c1.connectorapi.baton.v1.BatonServiceHelloRequest.BuildInfo - (*BatonServiceHelloRequest_OSInfo)(nil), // 23: c1.connectorapi.baton.v1.BatonServiceHelloRequest.OSInfo - (*BatonServiceUploadAssetRequest_UploadMetadata)(nil), // 24: c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.UploadMetadata - (*BatonServiceUploadAssetRequest_UploadData)(nil), // 25: c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.UploadData - (*BatonServiceUploadAssetRequest_UploadEOF)(nil), // 26: c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.UploadEOF - (*BatonServiceFinishTaskRequest_Error)(nil), // 27: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.Error - (*BatonServiceFinishTaskRequest_Success)(nil), // 28: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.Success - (*v2.ConnectorMetadata)(nil), // 29: c1.connector.v2.ConnectorMetadata - (*anypb.Any)(nil), // 30: google.protobuf.Any - (*durationpb.Duration)(nil), // 31: google.protobuf.Duration - (*status.Status)(nil), // 32: google.rpc.Status - (*timestamppb.Timestamp)(nil), // 33: google.protobuf.Timestamp - (*v2.Entitlement)(nil), // 34: c1.connector.v2.Entitlement - (*v2.Resource)(nil), // 35: c1.connector.v2.Resource - (*v2.Grant)(nil), // 36: c1.connector.v2.Grant - (*v2.AccountInfo)(nil), // 37: c1.connector.v2.AccountInfo - (*v2.CredentialOptions)(nil), // 38: c1.connector.v2.CredentialOptions - (*v2.EncryptionConfig)(nil), // 39: c1.connector.v2.EncryptionConfig - (*v2.ResourceId)(nil), // 40: c1.connector.v2.ResourceId + (*Task_CreateTicketTask)(nil), // 22: c1.connectorapi.baton.v1.Task.CreateTicketTask + (*Task_ListTicketSchemasTask)(nil), // 23: c1.connectorapi.baton.v1.Task.ListTicketSchemasTask + (*Task_GetTicketTask)(nil), // 24: c1.connectorapi.baton.v1.Task.GetTicketTask + (*BatonServiceHelloRequest_BuildInfo)(nil), // 25: c1.connectorapi.baton.v1.BatonServiceHelloRequest.BuildInfo + (*BatonServiceHelloRequest_OSInfo)(nil), // 26: c1.connectorapi.baton.v1.BatonServiceHelloRequest.OSInfo + (*BatonServiceUploadAssetRequest_UploadMetadata)(nil), // 27: c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.UploadMetadata + (*BatonServiceUploadAssetRequest_UploadData)(nil), // 28: c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.UploadData + (*BatonServiceUploadAssetRequest_UploadEOF)(nil), // 29: c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.UploadEOF + (*BatonServiceFinishTaskRequest_Error)(nil), // 30: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.Error + (*BatonServiceFinishTaskRequest_Success)(nil), // 31: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.Success + (*v2.ConnectorMetadata)(nil), // 32: c1.connector.v2.ConnectorMetadata + (*anypb.Any)(nil), // 33: google.protobuf.Any + (*durationpb.Duration)(nil), // 34: google.protobuf.Duration + (*status.Status)(nil), // 35: google.rpc.Status + (*timestamppb.Timestamp)(nil), // 36: google.protobuf.Timestamp + (*v2.Entitlement)(nil), // 37: c1.connector.v2.Entitlement + (*v2.Resource)(nil), // 38: c1.connector.v2.Resource + (*v2.Grant)(nil), // 39: c1.connector.v2.Grant + (*v2.AccountInfo)(nil), // 40: c1.connector.v2.AccountInfo + (*v2.CredentialOptions)(nil), // 41: c1.connector.v2.CredentialOptions + (*v2.EncryptionConfig)(nil), // 42: c1.connector.v2.EncryptionConfig + (*v2.ResourceId)(nil), // 43: c1.connector.v2.ResourceId + (*v2.TicketRequest)(nil), // 44: c1.connector.v2.TicketRequest + (*v2.TicketSchema)(nil), // 45: c1.connector.v2.TicketSchema } var file_c1_connectorapi_baton_v1_baton_proto_depIdxs = []int32{ 0, // 0: c1.connectorapi.baton.v1.Task.status:type_name -> c1.connectorapi.baton.v1.Task.Status @@ -2453,66 +2710,74 @@ var file_c1_connectorapi_baton_v1_baton_proto_depIdxs = []int32{ 20, // 8: c1.connectorapi.baton.v1.Task.delete_resource:type_name -> c1.connectorapi.baton.v1.Task.DeleteResourceTask 21, // 9: c1.connectorapi.baton.v1.Task.rotate_credentials:type_name -> c1.connectorapi.baton.v1.Task.RotateCredentialsTask 15, // 10: c1.connectorapi.baton.v1.Task.event_feed:type_name -> c1.connectorapi.baton.v1.Task.EventFeedTask - 22, // 11: c1.connectorapi.baton.v1.BatonServiceHelloRequest.build_info:type_name -> c1.connectorapi.baton.v1.BatonServiceHelloRequest.BuildInfo - 23, // 12: c1.connectorapi.baton.v1.BatonServiceHelloRequest.os_info:type_name -> c1.connectorapi.baton.v1.BatonServiceHelloRequest.OSInfo - 29, // 13: c1.connectorapi.baton.v1.BatonServiceHelloRequest.connector_metadata:type_name -> c1.connector.v2.ConnectorMetadata - 30, // 14: c1.connectorapi.baton.v1.BatonServiceHelloRequest.annotations:type_name -> google.protobuf.Any - 30, // 15: c1.connectorapi.baton.v1.BatonServiceHelloResponse.annotations:type_name -> google.protobuf.Any - 1, // 16: c1.connectorapi.baton.v1.BatonServiceGetTaskResponse.task:type_name -> c1.connectorapi.baton.v1.Task - 31, // 17: c1.connectorapi.baton.v1.BatonServiceGetTaskResponse.next_poll:type_name -> google.protobuf.Duration - 31, // 18: c1.connectorapi.baton.v1.BatonServiceGetTaskResponse.next_heartbeat:type_name -> google.protobuf.Duration - 30, // 19: c1.connectorapi.baton.v1.BatonServiceGetTaskResponse.annotations:type_name -> google.protobuf.Any - 30, // 20: c1.connectorapi.baton.v1.BatonServiceHeartbeatRequest.annotations:type_name -> google.protobuf.Any - 31, // 21: c1.connectorapi.baton.v1.BatonServiceHeartbeatResponse.next_heartbeat:type_name -> google.protobuf.Duration - 30, // 22: c1.connectorapi.baton.v1.BatonServiceHeartbeatResponse.annotations:type_name -> google.protobuf.Any - 24, // 23: c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.metadata:type_name -> c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.UploadMetadata - 25, // 24: c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.data:type_name -> c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.UploadData - 26, // 25: c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.eof:type_name -> c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.UploadEOF - 30, // 26: c1.connectorapi.baton.v1.BatonServiceUploadAssetResponse.annotations:type_name -> google.protobuf.Any - 32, // 27: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.status:type_name -> google.rpc.Status - 27, // 28: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.error:type_name -> c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.Error - 28, // 29: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.success:type_name -> c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.Success - 30, // 30: c1.connectorapi.baton.v1.BatonServiceFinishTaskResponse.annotations:type_name -> google.protobuf.Any - 30, // 31: c1.connectorapi.baton.v1.Task.NoneTask.annotations:type_name -> google.protobuf.Any - 30, // 32: c1.connectorapi.baton.v1.Task.HelloTask.annotations:type_name -> google.protobuf.Any - 30, // 33: c1.connectorapi.baton.v1.Task.SyncFullTask.annotations:type_name -> google.protobuf.Any - 30, // 34: c1.connectorapi.baton.v1.Task.EventFeedTask.annotations:type_name -> google.protobuf.Any - 33, // 35: c1.connectorapi.baton.v1.Task.EventFeedTask.start_at:type_name -> google.protobuf.Timestamp - 34, // 36: c1.connectorapi.baton.v1.Task.GrantTask.entitlement:type_name -> c1.connector.v2.Entitlement - 35, // 37: c1.connectorapi.baton.v1.Task.GrantTask.principal:type_name -> c1.connector.v2.Resource - 30, // 38: c1.connectorapi.baton.v1.Task.GrantTask.annotations:type_name -> google.protobuf.Any - 31, // 39: c1.connectorapi.baton.v1.Task.GrantTask.duration:type_name -> google.protobuf.Duration - 36, // 40: c1.connectorapi.baton.v1.Task.RevokeTask.grant:type_name -> c1.connector.v2.Grant - 30, // 41: c1.connectorapi.baton.v1.Task.RevokeTask.annotations:type_name -> google.protobuf.Any - 37, // 42: c1.connectorapi.baton.v1.Task.CreateAccountTask.account_info:type_name -> c1.connector.v2.AccountInfo - 38, // 43: c1.connectorapi.baton.v1.Task.CreateAccountTask.credential_options:type_name -> c1.connector.v2.CredentialOptions - 39, // 44: c1.connectorapi.baton.v1.Task.CreateAccountTask.encryption_configs:type_name -> c1.connector.v2.EncryptionConfig - 35, // 45: c1.connectorapi.baton.v1.Task.CreateResourceTask.resource:type_name -> c1.connector.v2.Resource - 40, // 46: c1.connectorapi.baton.v1.Task.DeleteResourceTask.resource_id:type_name -> c1.connector.v2.ResourceId - 40, // 47: c1.connectorapi.baton.v1.Task.RotateCredentialsTask.resource_id:type_name -> c1.connector.v2.ResourceId - 38, // 48: c1.connectorapi.baton.v1.Task.RotateCredentialsTask.credential_options:type_name -> c1.connector.v2.CredentialOptions - 39, // 49: c1.connectorapi.baton.v1.Task.RotateCredentialsTask.encryption_configs:type_name -> c1.connector.v2.EncryptionConfig - 30, // 50: c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.UploadMetadata.annotations:type_name -> google.protobuf.Any - 30, // 51: c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.UploadEOF.annotations:type_name -> google.protobuf.Any - 30, // 52: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.Error.annotations:type_name -> google.protobuf.Any - 30, // 53: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.Error.response:type_name -> google.protobuf.Any - 30, // 54: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.Success.annotations:type_name -> google.protobuf.Any - 30, // 55: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.Success.response:type_name -> google.protobuf.Any - 2, // 56: c1.connectorapi.baton.v1.BatonService.Hello:input_type -> c1.connectorapi.baton.v1.BatonServiceHelloRequest - 4, // 57: c1.connectorapi.baton.v1.BatonService.GetTask:input_type -> c1.connectorapi.baton.v1.BatonServiceGetTaskRequest - 6, // 58: c1.connectorapi.baton.v1.BatonService.Heartbeat:input_type -> c1.connectorapi.baton.v1.BatonServiceHeartbeatRequest - 10, // 59: c1.connectorapi.baton.v1.BatonService.FinishTask:input_type -> c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest - 8, // 60: c1.connectorapi.baton.v1.BatonService.UploadAsset:input_type -> c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest - 3, // 61: c1.connectorapi.baton.v1.BatonService.Hello:output_type -> c1.connectorapi.baton.v1.BatonServiceHelloResponse - 5, // 62: c1.connectorapi.baton.v1.BatonService.GetTask:output_type -> c1.connectorapi.baton.v1.BatonServiceGetTaskResponse - 7, // 63: c1.connectorapi.baton.v1.BatonService.Heartbeat:output_type -> c1.connectorapi.baton.v1.BatonServiceHeartbeatResponse - 11, // 64: c1.connectorapi.baton.v1.BatonService.FinishTask:output_type -> c1.connectorapi.baton.v1.BatonServiceFinishTaskResponse - 9, // 65: c1.connectorapi.baton.v1.BatonService.UploadAsset:output_type -> c1.connectorapi.baton.v1.BatonServiceUploadAssetResponse - 61, // [61:66] is the sub-list for method output_type - 56, // [56:61] is the sub-list for method input_type - 56, // [56:56] is the sub-list for extension type_name - 56, // [56:56] is the sub-list for extension extendee - 0, // [0:56] is the sub-list for field type_name + 22, // 11: c1.connectorapi.baton.v1.Task.create_ticket_task:type_name -> c1.connectorapi.baton.v1.Task.CreateTicketTask + 23, // 12: c1.connectorapi.baton.v1.Task.list_ticket_schemas:type_name -> c1.connectorapi.baton.v1.Task.ListTicketSchemasTask + 24, // 13: c1.connectorapi.baton.v1.Task.get_ticket:type_name -> c1.connectorapi.baton.v1.Task.GetTicketTask + 25, // 14: c1.connectorapi.baton.v1.BatonServiceHelloRequest.build_info:type_name -> c1.connectorapi.baton.v1.BatonServiceHelloRequest.BuildInfo + 26, // 15: c1.connectorapi.baton.v1.BatonServiceHelloRequest.os_info:type_name -> c1.connectorapi.baton.v1.BatonServiceHelloRequest.OSInfo + 32, // 16: c1.connectorapi.baton.v1.BatonServiceHelloRequest.connector_metadata:type_name -> c1.connector.v2.ConnectorMetadata + 33, // 17: c1.connectorapi.baton.v1.BatonServiceHelloRequest.annotations:type_name -> google.protobuf.Any + 33, // 18: c1.connectorapi.baton.v1.BatonServiceHelloResponse.annotations:type_name -> google.protobuf.Any + 1, // 19: c1.connectorapi.baton.v1.BatonServiceGetTaskResponse.task:type_name -> c1.connectorapi.baton.v1.Task + 34, // 20: c1.connectorapi.baton.v1.BatonServiceGetTaskResponse.next_poll:type_name -> google.protobuf.Duration + 34, // 21: c1.connectorapi.baton.v1.BatonServiceGetTaskResponse.next_heartbeat:type_name -> google.protobuf.Duration + 33, // 22: c1.connectorapi.baton.v1.BatonServiceGetTaskResponse.annotations:type_name -> google.protobuf.Any + 33, // 23: c1.connectorapi.baton.v1.BatonServiceHeartbeatRequest.annotations:type_name -> google.protobuf.Any + 34, // 24: c1.connectorapi.baton.v1.BatonServiceHeartbeatResponse.next_heartbeat:type_name -> google.protobuf.Duration + 33, // 25: c1.connectorapi.baton.v1.BatonServiceHeartbeatResponse.annotations:type_name -> google.protobuf.Any + 27, // 26: c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.metadata:type_name -> c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.UploadMetadata + 28, // 27: c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.data:type_name -> c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.UploadData + 29, // 28: c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.eof:type_name -> c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.UploadEOF + 33, // 29: c1.connectorapi.baton.v1.BatonServiceUploadAssetResponse.annotations:type_name -> google.protobuf.Any + 35, // 30: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.status:type_name -> google.rpc.Status + 30, // 31: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.error:type_name -> c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.Error + 31, // 32: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.success:type_name -> c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.Success + 33, // 33: c1.connectorapi.baton.v1.BatonServiceFinishTaskResponse.annotations:type_name -> google.protobuf.Any + 33, // 34: c1.connectorapi.baton.v1.Task.NoneTask.annotations:type_name -> google.protobuf.Any + 33, // 35: c1.connectorapi.baton.v1.Task.HelloTask.annotations:type_name -> google.protobuf.Any + 33, // 36: c1.connectorapi.baton.v1.Task.SyncFullTask.annotations:type_name -> google.protobuf.Any + 33, // 37: c1.connectorapi.baton.v1.Task.EventFeedTask.annotations:type_name -> google.protobuf.Any + 36, // 38: c1.connectorapi.baton.v1.Task.EventFeedTask.start_at:type_name -> google.protobuf.Timestamp + 37, // 39: c1.connectorapi.baton.v1.Task.GrantTask.entitlement:type_name -> c1.connector.v2.Entitlement + 38, // 40: c1.connectorapi.baton.v1.Task.GrantTask.principal:type_name -> c1.connector.v2.Resource + 33, // 41: c1.connectorapi.baton.v1.Task.GrantTask.annotations:type_name -> google.protobuf.Any + 34, // 42: c1.connectorapi.baton.v1.Task.GrantTask.duration:type_name -> google.protobuf.Duration + 39, // 43: c1.connectorapi.baton.v1.Task.RevokeTask.grant:type_name -> c1.connector.v2.Grant + 33, // 44: c1.connectorapi.baton.v1.Task.RevokeTask.annotations:type_name -> google.protobuf.Any + 40, // 45: c1.connectorapi.baton.v1.Task.CreateAccountTask.account_info:type_name -> c1.connector.v2.AccountInfo + 41, // 46: c1.connectorapi.baton.v1.Task.CreateAccountTask.credential_options:type_name -> c1.connector.v2.CredentialOptions + 42, // 47: c1.connectorapi.baton.v1.Task.CreateAccountTask.encryption_configs:type_name -> c1.connector.v2.EncryptionConfig + 38, // 48: c1.connectorapi.baton.v1.Task.CreateResourceTask.resource:type_name -> c1.connector.v2.Resource + 43, // 49: c1.connectorapi.baton.v1.Task.DeleteResourceTask.resource_id:type_name -> c1.connector.v2.ResourceId + 43, // 50: c1.connectorapi.baton.v1.Task.RotateCredentialsTask.resource_id:type_name -> c1.connector.v2.ResourceId + 41, // 51: c1.connectorapi.baton.v1.Task.RotateCredentialsTask.credential_options:type_name -> c1.connector.v2.CredentialOptions + 42, // 52: c1.connectorapi.baton.v1.Task.RotateCredentialsTask.encryption_configs:type_name -> c1.connector.v2.EncryptionConfig + 44, // 53: c1.connectorapi.baton.v1.Task.CreateTicketTask.ticket_request:type_name -> c1.connector.v2.TicketRequest + 45, // 54: c1.connectorapi.baton.v1.Task.CreateTicketTask.ticket_schema:type_name -> c1.connector.v2.TicketSchema + 33, // 55: c1.connectorapi.baton.v1.Task.CreateTicketTask.annotations:type_name -> google.protobuf.Any + 33, // 56: c1.connectorapi.baton.v1.Task.ListTicketSchemasTask.annotations:type_name -> google.protobuf.Any + 33, // 57: c1.connectorapi.baton.v1.Task.GetTicketTask.annotations:type_name -> google.protobuf.Any + 33, // 58: c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.UploadMetadata.annotations:type_name -> google.protobuf.Any + 33, // 59: c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest.UploadEOF.annotations:type_name -> google.protobuf.Any + 33, // 60: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.Error.annotations:type_name -> google.protobuf.Any + 33, // 61: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.Error.response:type_name -> google.protobuf.Any + 33, // 62: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.Success.annotations:type_name -> google.protobuf.Any + 33, // 63: c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest.Success.response:type_name -> google.protobuf.Any + 2, // 64: c1.connectorapi.baton.v1.BatonService.Hello:input_type -> c1.connectorapi.baton.v1.BatonServiceHelloRequest + 4, // 65: c1.connectorapi.baton.v1.BatonService.GetTask:input_type -> c1.connectorapi.baton.v1.BatonServiceGetTaskRequest + 6, // 66: c1.connectorapi.baton.v1.BatonService.Heartbeat:input_type -> c1.connectorapi.baton.v1.BatonServiceHeartbeatRequest + 10, // 67: c1.connectorapi.baton.v1.BatonService.FinishTask:input_type -> c1.connectorapi.baton.v1.BatonServiceFinishTaskRequest + 8, // 68: c1.connectorapi.baton.v1.BatonService.UploadAsset:input_type -> c1.connectorapi.baton.v1.BatonServiceUploadAssetRequest + 3, // 69: c1.connectorapi.baton.v1.BatonService.Hello:output_type -> c1.connectorapi.baton.v1.BatonServiceHelloResponse + 5, // 70: c1.connectorapi.baton.v1.BatonService.GetTask:output_type -> c1.connectorapi.baton.v1.BatonServiceGetTaskResponse + 7, // 71: c1.connectorapi.baton.v1.BatonService.Heartbeat:output_type -> c1.connectorapi.baton.v1.BatonServiceHeartbeatResponse + 11, // 72: c1.connectorapi.baton.v1.BatonService.FinishTask:output_type -> c1.connectorapi.baton.v1.BatonServiceFinishTaskResponse + 9, // 73: c1.connectorapi.baton.v1.BatonService.UploadAsset:output_type -> c1.connectorapi.baton.v1.BatonServiceUploadAssetResponse + 69, // [69:74] is the sub-list for method output_type + 64, // [64:69] is the sub-list for method input_type + 64, // [64:64] is the sub-list for extension type_name + 64, // [64:64] is the sub-list for extension extendee + 0, // [0:64] is the sub-list for field type_name } func init() { file_c1_connectorapi_baton_v1_baton_proto_init() } @@ -2774,7 +3039,7 @@ func file_c1_connectorapi_baton_v1_baton_proto_init() { } } file_c1_connectorapi_baton_v1_baton_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatonServiceHelloRequest_BuildInfo); i { + switch v := v.(*Task_CreateTicketTask); i { case 0: return &v.state case 1: @@ -2786,7 +3051,7 @@ func file_c1_connectorapi_baton_v1_baton_proto_init() { } } file_c1_connectorapi_baton_v1_baton_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatonServiceHelloRequest_OSInfo); i { + switch v := v.(*Task_ListTicketSchemasTask); i { case 0: return &v.state case 1: @@ -2798,7 +3063,7 @@ func file_c1_connectorapi_baton_v1_baton_proto_init() { } } file_c1_connectorapi_baton_v1_baton_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatonServiceUploadAssetRequest_UploadMetadata); i { + switch v := v.(*Task_GetTicketTask); i { case 0: return &v.state case 1: @@ -2810,7 +3075,7 @@ func file_c1_connectorapi_baton_v1_baton_proto_init() { } } file_c1_connectorapi_baton_v1_baton_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatonServiceUploadAssetRequest_UploadData); i { + switch v := v.(*BatonServiceHelloRequest_BuildInfo); i { case 0: return &v.state case 1: @@ -2822,7 +3087,7 @@ func file_c1_connectorapi_baton_v1_baton_proto_init() { } } file_c1_connectorapi_baton_v1_baton_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatonServiceUploadAssetRequest_UploadEOF); i { + switch v := v.(*BatonServiceHelloRequest_OSInfo); i { case 0: return &v.state case 1: @@ -2834,7 +3099,7 @@ func file_c1_connectorapi_baton_v1_baton_proto_init() { } } file_c1_connectorapi_baton_v1_baton_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatonServiceFinishTaskRequest_Error); i { + switch v := v.(*BatonServiceUploadAssetRequest_UploadMetadata); i { case 0: return &v.state case 1: @@ -2846,6 +3111,42 @@ func file_c1_connectorapi_baton_v1_baton_proto_init() { } } file_c1_connectorapi_baton_v1_baton_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatonServiceUploadAssetRequest_UploadData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connectorapi_baton_v1_baton_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatonServiceUploadAssetRequest_UploadEOF); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connectorapi_baton_v1_baton_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatonServiceFinishTaskRequest_Error); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_c1_connectorapi_baton_v1_baton_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BatonServiceFinishTaskRequest_Success); i { case 0: return &v.state @@ -2869,6 +3170,9 @@ func file_c1_connectorapi_baton_v1_baton_proto_init() { (*Task_DeleteResource)(nil), (*Task_RotateCredentials)(nil), (*Task_EventFeed)(nil), + (*Task_CreateTicketTask_)(nil), + (*Task_ListTicketSchemas)(nil), + (*Task_GetTicket)(nil), } file_c1_connectorapi_baton_v1_baton_proto_msgTypes[7].OneofWrappers = []interface{}{ (*BatonServiceUploadAssetRequest_Metadata)(nil), @@ -2885,7 +3189,7 @@ func file_c1_connectorapi_baton_v1_baton_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_c1_connectorapi_baton_v1_baton_proto_rawDesc, NumEnums: 1, - NumMessages: 28, + NumMessages: 31, NumExtensions: 0, NumServices: 1, }, diff --git a/vendor/github.com/conductorone/baton-sdk/pb/c1/connectorapi/baton/v1/baton.pb.validate.go b/vendor/github.com/conductorone/baton-sdk/pb/c1/connectorapi/baton/v1/baton.pb.validate.go index 349d92d5..a5aeb0a9 100644 --- a/vendor/github.com/conductorone/baton-sdk/pb/c1/connectorapi/baton/v1/baton.pb.validate.go +++ b/vendor/github.com/conductorone/baton-sdk/pb/c1/connectorapi/baton/v1/baton.pb.validate.go @@ -471,6 +471,129 @@ func (m *Task) validate(all bool) error { } } + case *Task_CreateTicketTask_: + if v == nil { + err := TaskValidationError{ + field: "TaskType", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetCreateTicketTask()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TaskValidationError{ + field: "CreateTicketTask", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TaskValidationError{ + field: "CreateTicketTask", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetCreateTicketTask()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TaskValidationError{ + field: "CreateTicketTask", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Task_ListTicketSchemas: + if v == nil { + err := TaskValidationError{ + field: "TaskType", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetListTicketSchemas()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TaskValidationError{ + field: "ListTicketSchemas", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TaskValidationError{ + field: "ListTicketSchemas", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetListTicketSchemas()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TaskValidationError{ + field: "ListTicketSchemas", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *Task_GetTicket: + if v == nil { + err := TaskValidationError{ + field: "TaskType", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetGetTicket()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, TaskValidationError{ + field: "GetTicket", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, TaskValidationError{ + field: "GetTicket", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetGetTicket()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TaskValidationError{ + field: "GetTicket", + reason: "embedded message failed validation", + cause: err, + } + } + } + default: _ = v // ensures v is used } @@ -4034,6 +4157,474 @@ var _ interface { ErrorName() string } = Task_RotateCredentialsTaskValidationError{} +// Validate checks the field values on Task_CreateTicketTask with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *Task_CreateTicketTask) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Task_CreateTicketTask with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// Task_CreateTicketTaskMultiError, or nil if none found. +func (m *Task_CreateTicketTask) ValidateAll() error { + return m.validate(true) +} + +func (m *Task_CreateTicketTask) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetTicketRequest()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, Task_CreateTicketTaskValidationError{ + field: "TicketRequest", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, Task_CreateTicketTaskValidationError{ + field: "TicketRequest", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetTicketRequest()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Task_CreateTicketTaskValidationError{ + field: "TicketRequest", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetTicketSchema()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, Task_CreateTicketTaskValidationError{ + field: "TicketSchema", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, Task_CreateTicketTaskValidationError{ + field: "TicketSchema", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetTicketSchema()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Task_CreateTicketTaskValidationError{ + field: "TicketSchema", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetAnnotations() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, Task_CreateTicketTaskValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, Task_CreateTicketTaskValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Task_CreateTicketTaskValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return Task_CreateTicketTaskMultiError(errors) + } + + return nil +} + +// Task_CreateTicketTaskMultiError is an error wrapping multiple validation +// errors returned by Task_CreateTicketTask.ValidateAll() if the designated +// constraints aren't met. +type Task_CreateTicketTaskMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m Task_CreateTicketTaskMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m Task_CreateTicketTaskMultiError) AllErrors() []error { return m } + +// Task_CreateTicketTaskValidationError is the validation error returned by +// Task_CreateTicketTask.Validate if the designated constraints aren't met. +type Task_CreateTicketTaskValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Task_CreateTicketTaskValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Task_CreateTicketTaskValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Task_CreateTicketTaskValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Task_CreateTicketTaskValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Task_CreateTicketTaskValidationError) ErrorName() string { + return "Task_CreateTicketTaskValidationError" +} + +// Error satisfies the builtin error interface +func (e Task_CreateTicketTaskValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTask_CreateTicketTask.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Task_CreateTicketTaskValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Task_CreateTicketTaskValidationError{} + +// Validate checks the field values on Task_ListTicketSchemasTask with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *Task_ListTicketSchemasTask) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Task_ListTicketSchemasTask with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// Task_ListTicketSchemasTaskMultiError, or nil if none found. +func (m *Task_ListTicketSchemasTask) ValidateAll() error { + return m.validate(true) +} + +func (m *Task_ListTicketSchemasTask) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetAnnotations() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, Task_ListTicketSchemasTaskValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, Task_ListTicketSchemasTaskValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Task_ListTicketSchemasTaskValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return Task_ListTicketSchemasTaskMultiError(errors) + } + + return nil +} + +// Task_ListTicketSchemasTaskMultiError is an error wrapping multiple +// validation errors returned by Task_ListTicketSchemasTask.ValidateAll() if +// the designated constraints aren't met. +type Task_ListTicketSchemasTaskMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m Task_ListTicketSchemasTaskMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m Task_ListTicketSchemasTaskMultiError) AllErrors() []error { return m } + +// Task_ListTicketSchemasTaskValidationError is the validation error returned +// by Task_ListTicketSchemasTask.Validate if the designated constraints aren't met. +type Task_ListTicketSchemasTaskValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Task_ListTicketSchemasTaskValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Task_ListTicketSchemasTaskValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Task_ListTicketSchemasTaskValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Task_ListTicketSchemasTaskValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Task_ListTicketSchemasTaskValidationError) ErrorName() string { + return "Task_ListTicketSchemasTaskValidationError" +} + +// Error satisfies the builtin error interface +func (e Task_ListTicketSchemasTaskValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTask_ListTicketSchemasTask.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Task_ListTicketSchemasTaskValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Task_ListTicketSchemasTaskValidationError{} + +// Validate checks the field values on Task_GetTicketTask with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *Task_GetTicketTask) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on Task_GetTicketTask with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// Task_GetTicketTaskMultiError, or nil if none found. +func (m *Task_GetTicketTask) ValidateAll() error { + return m.validate(true) +} + +func (m *Task_GetTicketTask) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for TicketId + + for idx, item := range m.GetAnnotations() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, Task_GetTicketTaskValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, Task_GetTicketTaskValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return Task_GetTicketTaskValidationError{ + field: fmt.Sprintf("Annotations[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return Task_GetTicketTaskMultiError(errors) + } + + return nil +} + +// Task_GetTicketTaskMultiError is an error wrapping multiple validation errors +// returned by Task_GetTicketTask.ValidateAll() if the designated constraints +// aren't met. +type Task_GetTicketTaskMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m Task_GetTicketTaskMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m Task_GetTicketTaskMultiError) AllErrors() []error { return m } + +// Task_GetTicketTaskValidationError is the validation error returned by +// Task_GetTicketTask.Validate if the designated constraints aren't met. +type Task_GetTicketTaskValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e Task_GetTicketTaskValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e Task_GetTicketTaskValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e Task_GetTicketTaskValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e Task_GetTicketTaskValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e Task_GetTicketTaskValidationError) ErrorName() string { + return "Task_GetTicketTaskValidationError" +} + +// Error satisfies the builtin error interface +func (e Task_GetTicketTaskValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTask_GetTicketTask.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = Task_GetTicketTaskValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = Task_GetTicketTaskValidationError{} + // Validate checks the field values on BatonServiceHelloRequest_BuildInfo with // the rules defined in the proto definition for this message. If any rules // are violated, the first error encountered is returned, or nil if there are diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/annotations/annotations.go b/vendor/github.com/conductorone/baton-sdk/pkg/annotations/annotations.go index 84db79b3..19eda948 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/annotations/annotations.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/annotations/annotations.go @@ -65,6 +65,10 @@ func (a *Annotations) Update(msg proto.Message) { *a = newAnnotations } +func (a *Annotations) Merge(newAnnotations ...*anypb.Any) { + *a = append(*a, newAnnotations...) +} + // Contains checks if the message is in the annotations slice. func (a *Annotations) Contains(msg proto.Message) bool { if msg == nil { diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/cli/cli.go b/vendor/github.com/conductorone/baton-sdk/pkg/cli/cli.go index 5b0eb8ae..2b1918d8 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/cli/cli.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/cli/cli.go @@ -136,6 +136,18 @@ func NewCmd[T any, PtrT *T]( v.GetString("rotate-credentials"), v.GetString("rotate-credentials-type"), )) + case v.GetBool("create-ticket"): + opts = append(opts, + connectorrunner.WithTicketingEnabled(), + connectorrunner.WithCreateTicket(v.GetString("ticket-template-path"))) + case v.GetBool("list-ticket-schemas"): + opts = append(opts, + connectorrunner.WithTicketingEnabled(), + connectorrunner.WithListTicketSchemas()) + case v.GetBool("get-ticket"): + opts = append(opts, + connectorrunner.WithTicketingEnabled(), + connectorrunner.WithGetTicket(v.GetString("ticket-id"))) default: opts = append(opts, connectorrunner.WithOnDemandSync(v.GetString("file"))) } @@ -198,6 +210,14 @@ func NewCmd[T any, PtrT *T]( var copts []connector.Option + if v.GetBool("provisioning") { + copts = append(copts, connector.WithProvisioningEnabled()) + } + + if v.GetBool("ticketing") { + copts = append(copts, connector.WithTicketingEnabled()) + } + switch { case v.GetString("grant-entitlement") != "": copts = append(copts, connector.WithProvisioningEnabled()) @@ -209,8 +229,12 @@ func NewCmd[T any, PtrT *T]( copts = append(copts, connector.WithProvisioningEnabled()) case v.GetString("rotate-credentials") != "" || v.GetString("rotate-credentials-type") != "": copts = append(copts, connector.WithProvisioningEnabled()) - case v.GetBool("provisioning"): - copts = append(copts, connector.WithProvisioningEnabled()) + case v.GetBool("create-ticket"): + copts = append(copts, connector.WithTicketingEnabled()) + case v.GetBool("list-ticket-schemas"): + copts = append(copts, connector.WithTicketingEnabled()) + case v.GetBool("get-ticket"): + copts = append(copts, connector.WithTicketingEnabled()) } cw, err := connector.NewWrapper(runCtx, c, copts...) @@ -354,8 +378,37 @@ func NewCmd[T any, PtrT *T]( cmd.PersistentFlags().String("rotate-credentials", "", "The id of the resource to rotate credentials on ($BATON_ROTATE_CREDENTIALS)") cmd.PersistentFlags().String("rotate-credentials-type", "", "The type of the resource to rotate credentials on ($BATON_ROTATE_CREDENTIALS_TYPE)") - cmd.MarkFlagsMutuallyExclusive("grant-entitlement", "revoke-grant", "create-account-login", "delete-resource", "rotate-credentials", "event-feed") - cmd.MarkFlagsMutuallyExclusive("grant-entitlement", "revoke-grant", "create-account-email", "delete-resource-type", "rotate-credentials-type", "event-feed") + cmd.PersistentFlags().Bool("ticketing", false, "This must be set to enable ticketing support ($BATON_TICKETING)") + cmd.PersistentFlags().Bool("create-ticket", false, "Create ticket ($BATON_CREATE_TICKET)") + cmd.PersistentFlags().String("ticket-template-path", "", "A JSON file describing the ticket to create ($BATON_TICKET_TEMPLATE_PATH)") + + cmd.PersistentFlags().Bool("list-ticket-schemas", false, "List ticket schemas ($BATON_LIST_SCHEMAS)") + + cmd.PersistentFlags().Bool("get-ticket", false, "Get ticket ($BATON_GET_TICKET)") + cmd.PersistentFlags().String("ticket-id", "", "The ID of the ticket to get ($BATON_TICKET_ID)") + + cmd.MarkFlagsMutuallyExclusive( + "grant-entitlement", + "revoke-grant", + "create-account-login", + "delete-resource", + "rotate-credentials", + "event-feed", + "create-ticket", + "get-ticket", + "list-ticket-schemas", + ) + cmd.MarkFlagsMutuallyExclusive( + "grant-entitlement", + "revoke-grant", + "create-account-email", + "delete-resource-type", + "rotate-credentials-type", + "event-feed", + "create-ticket", + "get-ticket", + "list-ticket-schemas", + ) err = cmd.PersistentFlags().MarkHidden("grant-entitlement") if err != nil { return nil, err @@ -376,6 +429,26 @@ func NewCmd[T any, PtrT *T]( if err != nil { return nil, err } + err = cmd.PersistentFlags().MarkHidden("create-ticket") + if err != nil { + return nil, err + } + err = cmd.PersistentFlags().MarkHidden("ticket-template-path") + if err != nil { + return nil, err + } + err = cmd.PersistentFlags().MarkHidden("list-ticket-schemas") + if err != nil { + return nil, err + } + err = cmd.PersistentFlags().MarkHidden("get-ticket") + if err != nil { + return nil, err + } + err = cmd.PersistentFlags().MarkHidden("ticket-id") + if err != nil { + return nil, err + } err = cmd.PersistentFlags().MarkHidden("create-account-login") if err != nil { return nil, err @@ -407,10 +480,16 @@ func NewCmd[T any, PtrT *T]( cmd.PersistentFlags().BoolP("provisioning", "p", false, "This must be set in order for provisioning actions to be enabled. ($BATON_PROVISIONING)") cmd.MarkFlagsRequiredTogether("client-id", "client-secret") cmd.MarkFlagsMutuallyExclusive("file", "client-id") - + cmd.MarkFlagsRequiredTogether("create-ticket", "ticket-template-path") + cmd.MarkFlagsRequiredTogether("get-ticket", "ticket-id") // Add a hook for additional commands to be added to the root command. // We use this for OS specific commands. cmd.AddCommand(additionalCommands(name, cfg)...) + err = configToCmdFlags(cmd, cfg) + if err != nil { + return nil, err + } + return cmd, nil } diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/cli/config.go b/vendor/github.com/conductorone/baton-sdk/pkg/cli/config.go index e0239e91..a271a3e6 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/cli/config.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/cli/config.go @@ -2,8 +2,11 @@ package cli import ( "errors" + "fmt" "os" "path/filepath" + "reflect" + "strconv" "strings" "github.com/spf13/cobra" @@ -76,3 +79,68 @@ func loadConfig[T any, PtrT *T](cmd *cobra.Command, cfg PtrT) (*viper.Viper, err return v, nil } + +func configToCmdFlags[T any, PtrT *T](cmd *cobra.Command, cfg PtrT) error { + baseConfigFields := reflect.VisibleFields(reflect.TypeOf(BaseConfig{})) + baseConfigFieldsMap := make(map[string]bool) + for _, field := range baseConfigFields { + baseConfigFieldsMap[field.Name] = true + } + + fields := reflect.VisibleFields(reflect.TypeOf(*cfg)) + for _, field := range fields { + // ignore BaseConfig fields + if _, ok := baseConfigFieldsMap[field.Name]; ok { + continue + } + if field.Name == "BaseConfig" { + continue + } + + cfgField := field.Tag.Get("mapstructure") + if cfgField == "" { + return fmt.Errorf("mapstructure tag is required on config field %s", field.Name) + } + description := field.Tag.Get("description") + if description == "" { + // Skip fields without descriptions for backwards compatibility + continue + } + defaultValueStr := field.Tag.Get("defaultValue") + + envVarName := strings.ReplaceAll(strings.ToUpper(cfgField), "-", "_") + description = fmt.Sprintf("%s ($BATON_%s)", description, envVarName) + switch field.Type.Kind() { + case reflect.String: + cmd.PersistentFlags().String(cfgField, defaultValueStr, description) + case reflect.Bool: + defaultValue, err := strconv.ParseBool(defaultValueStr) + if defaultValueStr != "" && err != nil { + return fmt.Errorf("invalid default value for config field %s: %w", field.Name, err) + } + cmd.PersistentFlags().Bool(cfgField, defaultValue, description) + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + defaultValue, err := strconv.ParseInt(defaultValueStr, 10, 64) + if defaultValueStr != "" && err != nil { + return fmt.Errorf("invalid default value for config field %s: %w", field.Name, err) + } + cmd.PersistentFlags().Int64(cfgField, defaultValue, description) + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + defaultValue, err := strconv.ParseUint(defaultValueStr, 10, 64) + if defaultValueStr != "" && err != nil { + return fmt.Errorf("invalid default value for config field %s: %w", field.Name, err) + } + cmd.PersistentFlags().Uint64(cfgField, defaultValue, description) + case reflect.Float32, reflect.Float64: + defaultValue, err := strconv.ParseFloat(defaultValueStr, 64) + if defaultValueStr != "" && err != nil { + return fmt.Errorf("invalid default value for config field %s: %w", field.Name, err) + } + cmd.PersistentFlags().Float64(cfgField, defaultValue, description) + default: + return fmt.Errorf("unsupported type %s for config field %s", field.Type.Kind(), field.Name) + } + } + + return nil +} diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/connectorbuilder/connectorbuilder.go b/vendor/github.com/conductorone/baton-sdk/pkg/connectorbuilder/connectorbuilder.go index ea632cb8..cba2192b 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/connectorbuilder/connectorbuilder.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/connectorbuilder/connectorbuilder.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "sort" + "time" "github.com/grpc-ecosystem/go-grpc-middleware/logging/zap/ctxzap" "go.uber.org/zap" @@ -15,7 +16,9 @@ import ( v2 "github.com/conductorone/baton-sdk/pb/c1/connector/v2" "github.com/conductorone/baton-sdk/pkg/annotations" "github.com/conductorone/baton-sdk/pkg/crypto" + "github.com/conductorone/baton-sdk/pkg/metrics" "github.com/conductorone/baton-sdk/pkg/pagination" + "github.com/conductorone/baton-sdk/pkg/tasks" "github.com/conductorone/baton-sdk/pkg/types" ) @@ -60,6 +63,13 @@ type EventProvider interface { ListEvents(ctx context.Context, earliestEvent *timestamppb.Timestamp, pToken *pagination.StreamToken) ([]*v2.Event, *pagination.StreamState, annotations.Annotations, error) } +type TicketManager interface { + GetTicket(ctx context.Context, ticketId string) (*v2.Ticket, annotations.Annotations, error) + CreateTicket(ctx context.Context, ticket *v2.Ticket, schema *v2.TicketSchema) (*v2.Ticket, annotations.Annotations, error) + GetTicketSchema(ctx context.Context, schemaID string) (*v2.TicketSchema, annotations.Annotations, error) + ListTicketSchemas(ctx context.Context, pToken *pagination.Token) ([]*v2.TicketSchema, string, annotations.Annotations, error) +} + type ConnectorBuilder interface { Metadata(ctx context.Context) (*v2.ConnectorMetadata, error) Validate(ctx context.Context) (annotations.Annotations, error) @@ -75,10 +85,119 @@ type builderImpl struct { credentialManagers map[string]CredentialManager eventFeed EventProvider cb ConnectorBuilder + ticketManager TicketManager + m *metrics.M + nowFunc func() time.Time +} + +func (b *builderImpl) ListTicketSchemas(ctx context.Context, request *v2.TicketsServiceListTicketSchemasRequest) (*v2.TicketsServiceListTicketSchemasResponse, error) { + start := b.nowFunc() + tt := tasks.ListTicketSchemasType + if b.ticketManager == nil { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) + return nil, fmt.Errorf("error: ticket manager not implemented") + } + + out, nextPageToken, annos, err := b.ticketManager.ListTicketSchemas(ctx, &pagination.Token{ + Size: int(request.PageSize), + Token: request.PageToken, + }) + if err != nil { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) + return nil, fmt.Errorf("error: listing ticket schemas failed: %w", err) + } + if request.PageToken != "" && request.PageToken == nextPageToken { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) + return nil, fmt.Errorf("error: listing ticket schemas failed: next page token is the same as the current page token. this is most likely a connector bug") + } + + b.m.RecordTaskSuccess(ctx, tt, b.nowFunc().Sub(start)) + return &v2.TicketsServiceListTicketSchemasResponse{ + List: out, + NextPageToken: nextPageToken, + Annotations: annos, + }, nil +} + +func (b *builderImpl) CreateTicket(ctx context.Context, request *v2.TicketsServiceCreateTicketRequest) (*v2.TicketsServiceCreateTicketResponse, error) { + start := b.nowFunc() + tt := tasks.CreateTicketType + if b.ticketManager == nil { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) + return nil, fmt.Errorf("error: ticket manager not implemented") + } + + reqBody := request.GetRequest() + if reqBody == nil { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) + return nil, fmt.Errorf("error: request body is nil") + } + cTicket := &v2.Ticket{ + DisplayName: reqBody.GetDisplayName(), + Description: reqBody.GetDescription(), + Status: reqBody.GetStatus(), + Type: reqBody.GetType(), + Labels: reqBody.GetLabels(), + CustomFields: reqBody.GetCustomFields(), + } + + ticket, annos, err := b.ticketManager.CreateTicket(ctx, cTicket, request.GetSchema()) + if err != nil { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) + return nil, fmt.Errorf("error: creating ticket failed: %w", err) + } + + b.m.RecordTaskSuccess(ctx, tt, b.nowFunc().Sub(start)) + return &v2.TicketsServiceCreateTicketResponse{ + Ticket: ticket, + Annotations: annos, + }, nil +} + +func (b *builderImpl) GetTicket(ctx context.Context, request *v2.TicketsServiceGetTicketRequest) (*v2.TicketsServiceGetTicketResponse, error) { + start := b.nowFunc() + tt := tasks.GetTicketType + if b.ticketManager == nil { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) + return nil, fmt.Errorf("error: ticket manager not implemented") + } + + ticket, annos, err := b.ticketManager.GetTicket(ctx, request.GetId()) + if err != nil { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) + return nil, fmt.Errorf("error: getting ticket failed: %w", err) + } + + b.m.RecordTaskSuccess(ctx, tt, b.nowFunc().Sub(start)) + return &v2.TicketsServiceGetTicketResponse{ + Ticket: ticket, + Annotations: annos, + }, nil +} + +func (b *builderImpl) GetTicketSchema(ctx context.Context, request *v2.TicketsServiceGetTicketSchemaRequest) (*v2.TicketsServiceGetTicketSchemaResponse, error) { + start := b.nowFunc() + tt := tasks.GetTicketSchemaType + if b.ticketManager == nil { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) + return nil, fmt.Errorf("error: ticket manager not implemented") + } + + ticketSchema, annos, err := b.ticketManager.GetTicketSchema(ctx, request.GetId()) + if err != nil { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) + return nil, fmt.Errorf("error: getting ticket metadata failed: %w", err) + } + + b.m.RecordTaskSuccess(ctx, tt, b.nowFunc().Sub(start)) + return &v2.TicketsServiceGetTicketSchemaResponse{ + Schema: ticketSchema, + Annotations: annos, + }, nil } // NewConnector creates a new ConnectorServer for a new resource. -func NewConnector(ctx context.Context, in interface{}) (types.ConnectorServer, error) { +func NewConnector(ctx context.Context, in interface{}, opts ...Opt) (types.ConnectorServer, error) { switch c := in.(type) { case ConnectorBuilder: ret := &builderImpl{ @@ -89,12 +208,30 @@ func NewConnector(ctx context.Context, in interface{}) (types.ConnectorServer, e accountManager: nil, credentialManagers: make(map[string]CredentialManager), cb: c, + ticketManager: nil, + nowFunc: time.Now, + } + + err := ret.options(opts...) + if err != nil { + return nil, err + } + + if ret.m == nil { + ret.m = metrics.New(metrics.NewNoOpHandler(ctx)) } if b, ok := c.(EventProvider); ok { ret.eventFeed = b } + if ticketManager, ok := c.(TicketManager); ok { + if ret.ticketManager != nil { + return nil, fmt.Errorf("error: cannot set multiple ticket managers") + } + ret.ticketManager = ticketManager + } + for _, rb := range c.ResourceSyncers(ctx) { rType := rb.ResourceType(ctx) if _, ok := ret.resourceBuilders[rType.Id]; ok { @@ -150,6 +287,25 @@ func NewConnector(ctx context.Context, in interface{}) (types.ConnectorServer, e } } +type Opt func(b *builderImpl) error + +func WithMetricsHandler(h metrics.Handler) Opt { + return func(b *builderImpl) error { + b.m = metrics.New(h) + return nil + } +} + +func (b *builderImpl) options(opts ...Opt) error { + for _, opt := range opts { + if err := opt(b); err != nil { + return err + } + } + + return nil +} + func validateProvisionerVersion(ctx context.Context, p ResourceSyncer) error { _, ok := p.(ResourceProvisioner) _, okV2 := p.(ResourceProvisionerV2) @@ -165,19 +321,25 @@ func (b *builderImpl) ListResourceTypes( ctx context.Context, request *v2.ResourceTypesServiceListResourceTypesRequest, ) (*v2.ResourceTypesServiceListResourceTypesResponse, error) { + start := b.nowFunc() + tt := tasks.ListResourceTypesType var out []*v2.ResourceType for _, rb := range b.resourceBuilders { out = append(out, rb.ResourceType(ctx)) } + b.m.RecordTaskSuccess(ctx, tt, b.nowFunc().Sub(start)) return &v2.ResourceTypesServiceListResourceTypesResponse{List: out}, nil } // ListResources returns all available resources for a given resource type ID. func (b *builderImpl) ListResources(ctx context.Context, request *v2.ResourcesServiceListResourcesRequest) (*v2.ResourcesServiceListResourcesResponse, error) { + start := b.nowFunc() + tt := tasks.ListResourcesType rb, ok := b.resourceBuilders[request.ResourceTypeId] if !ok { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: list resources with unknown resource type %s", request.ResourceTypeId) } @@ -186,12 +348,15 @@ func (b *builderImpl) ListResources(ctx context.Context, request *v2.ResourcesSe Token: request.PageToken, }) if err != nil { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: listing resources failed: %w", err) } if request.PageToken != "" && request.PageToken == nextPageToken { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: listing resources failed: next page token is the same as the current page token. this is most likely a connector bug") } + b.m.RecordTaskSuccess(ctx, tt, b.nowFunc().Sub(start)) return &v2.ResourcesServiceListResourcesResponse{ List: out, NextPageToken: nextPageToken, @@ -201,8 +366,11 @@ func (b *builderImpl) ListResources(ctx context.Context, request *v2.ResourcesSe // ListEntitlements returns all the entitlements for a given resource. func (b *builderImpl) ListEntitlements(ctx context.Context, request *v2.EntitlementsServiceListEntitlementsRequest) (*v2.EntitlementsServiceListEntitlementsResponse, error) { + start := b.nowFunc() + tt := tasks.ListEntitlementsType rb, ok := b.resourceBuilders[request.Resource.Id.ResourceType] if !ok { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: list entitlements with unknown resource type %s", request.Resource.Id.ResourceType) } @@ -211,12 +379,15 @@ func (b *builderImpl) ListEntitlements(ctx context.Context, request *v2.Entitlem Token: request.PageToken, }) if err != nil { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: listing entitlements failed: %w", err) } if request.PageToken != "" && request.PageToken == nextPageToken { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: listing entitlements failed: next page token is the same as the current page token. this is most likely a connector bug") } + b.m.RecordTaskSuccess(ctx, tt, b.nowFunc().Sub(start)) return &v2.EntitlementsServiceListEntitlementsResponse{ List: out, NextPageToken: nextPageToken, @@ -226,8 +397,11 @@ func (b *builderImpl) ListEntitlements(ctx context.Context, request *v2.Entitlem // ListGrants lists all the grants for a given resource. func (b *builderImpl) ListGrants(ctx context.Context, request *v2.GrantsServiceListGrantsRequest) (*v2.GrantsServiceListGrantsResponse, error) { + start := b.nowFunc() + tt := tasks.ListGrantsType rb, ok := b.resourceBuilders[request.Resource.Id.ResourceType] if !ok { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: list entitlements with unknown resource type %s", request.Resource.Id.ResourceType) } @@ -236,12 +410,15 @@ func (b *builderImpl) ListGrants(ctx context.Context, request *v2.GrantsServiceL Token: request.PageToken, }) if err != nil { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: listing grants failed: %w", err) } if request.PageToken != "" && request.PageToken == nextPageToken { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: listing grants failed: next page token is the same as the current page token. this is most likely a connector bug") } + b.m.RecordTaskSuccess(ctx, tt, b.nowFunc().Sub(start)) return &v2.GrantsServiceListGrantsResponse{ List: out, NextPageToken: nextPageToken, @@ -251,34 +428,61 @@ func (b *builderImpl) ListGrants(ctx context.Context, request *v2.GrantsServiceL // GetMetadata gets all metadata for a connector. func (b *builderImpl) GetMetadata(ctx context.Context, request *v2.ConnectorServiceGetMetadataRequest) (*v2.ConnectorServiceGetMetadataResponse, error) { + start := b.nowFunc() + tt := tasks.GetMetadataType md, err := b.cb.Metadata(ctx) if err != nil { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, err } md.Capabilities = getCapabilities(ctx, b) + b.m.RecordTaskSuccess(ctx, tt, b.nowFunc().Sub(start)) return &v2.ConnectorServiceGetMetadataResponse{Metadata: md}, nil } // getCapabilities gets all capabilities for a connector. func getCapabilities(ctx context.Context, b *builderImpl) *v2.ConnectorCapabilities { + connectorCaps := make(map[v2.Capability]struct{}) resourceTypeCapabilities := []*v2.ResourceTypeCapability{} for _, rb := range b.resourceBuilders { resourceTypeCapability := &v2.ResourceTypeCapability{ ResourceType: rb.ResourceType(ctx), // Currently by default all resource types support sync. - Capabilities: []v2.ResourceTypeCapability_Capability{v2.ResourceTypeCapability_CAPABILITY_SYNC}, + Capabilities: []v2.Capability{v2.Capability_CAPABILITY_SYNC}, } + connectorCaps[v2.Capability_CAPABILITY_SYNC] = struct{}{} if _, ok := rb.(ResourceProvisioner); ok { - resourceTypeCapability.Capabilities = append(resourceTypeCapability.Capabilities, v2.ResourceTypeCapability_CAPABILITY_PROVISION) + resourceTypeCapability.Capabilities = append(resourceTypeCapability.Capabilities, v2.Capability_CAPABILITY_PROVISION) + connectorCaps[v2.Capability_CAPABILITY_PROVISION] = struct{}{} + } else if _, ok = rb.(ResourceProvisionerV2); ok { + resourceTypeCapability.Capabilities = append(resourceTypeCapability.Capabilities, v2.Capability_CAPABILITY_PROVISION) + connectorCaps[v2.Capability_CAPABILITY_PROVISION] = struct{}{} } resourceTypeCapabilities = append(resourceTypeCapabilities, resourceTypeCapability) } sort.Slice(resourceTypeCapabilities, func(i, j int) bool { return resourceTypeCapabilities[i].ResourceType.GetId() < resourceTypeCapabilities[j].ResourceType.GetId() }) - return &v2.ConnectorCapabilities{ResourceTypeCapabilities: resourceTypeCapabilities} + + if b.eventFeed != nil { + connectorCaps[v2.Capability_CAPABILITY_EVENT_FEED] = struct{}{} + } + + if b.ticketManager != nil { + connectorCaps[v2.Capability_CAPABILITY_TICKETING] = struct{}{} + } + + var caps []v2.Capability + for c := range connectorCaps { + caps = append(caps, c) + } + + return &v2.ConnectorCapabilities{ + ResourceTypeCapabilities: resourceTypeCapabilities, + ConnectorCapabilities: caps, + } } // Validate validates the connector. @@ -292,6 +496,8 @@ func (b *builderImpl) Validate(ctx context.Context, request *v2.ConnectorService } func (b *builderImpl) Grant(ctx context.Context, request *v2.GrantManagerServiceGrantRequest) (*v2.GrantManagerServiceGrantResponse, error) { + start := b.nowFunc() + tt := tasks.GrantType l := ctxzap.Extract(ctx) rt := request.Entitlement.Resource.Id.ResourceType @@ -300,9 +506,11 @@ func (b *builderImpl) Grant(ctx context.Context, request *v2.GrantManagerService annos, err := provisioner.Grant(ctx, request.Principal, request.Entitlement) if err != nil { l.Error("error: grant failed", zap.Error(err)) + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: grant failed: %w", err) } + b.m.RecordTaskSuccess(ctx, tt, b.nowFunc().Sub(start)) return &v2.GrantManagerServiceGrantResponse{Annotations: annos}, nil } @@ -311,17 +519,23 @@ func (b *builderImpl) Grant(ctx context.Context, request *v2.GrantManagerService grants, annos, err := provisionerV2.Grant(ctx, request.Principal, request.Entitlement) if err != nil { l.Error("error: grant failed", zap.Error(err)) + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: grant failed: %w", err) } + b.m.RecordTaskSuccess(ctx, tt, b.nowFunc().Sub(start)) return &v2.GrantManagerServiceGrantResponse{Annotations: annos, Grants: grants}, nil } l.Error("error: resource type does not have provisioner configured", zap.String("resource_type", rt)) + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: resource type does not have provisioner configured") } func (b *builderImpl) Revoke(ctx context.Context, request *v2.GrantManagerServiceRevokeRequest) (*v2.GrantManagerServiceRevokeResponse, error) { + start := b.nowFunc() + tt := tasks.RevokeType + l := ctxzap.Extract(ctx) rt := request.Grant.Entitlement.Resource.Id.ResourceType @@ -330,6 +544,7 @@ func (b *builderImpl) Revoke(ctx context.Context, request *v2.GrantManagerServic annos, err := provisioner.Revoke(ctx, request.Grant) if err != nil { l.Error("error: revoke failed", zap.Error(err)) + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: revoke failed: %w", err) } return &v2.GrantManagerServiceRevokeResponse{Annotations: annos}, nil @@ -340,12 +555,16 @@ func (b *builderImpl) Revoke(ctx context.Context, request *v2.GrantManagerServic annos, err := provisionerV2.Revoke(ctx, request.Grant) if err != nil { l.Error("error: revoke failed", zap.Error(err)) + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: revoke failed: %w", err) } + + b.m.RecordTaskSuccess(ctx, tt, b.nowFunc().Sub(start)) return &v2.GrantManagerServiceRevokeResponse{Annotations: annos}, nil } l.Error("error: resource type does not have provisioner configured", zap.String("resource_type", rt)) + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, status.Error(codes.Unimplemented, "resource type does not have provisioner configured") } @@ -356,7 +575,10 @@ func (b *builderImpl) GetAsset(request *v2.AssetServiceGetAssetRequest, server v } func (b *builderImpl) ListEvents(ctx context.Context, request *v2.ListEventsRequest) (*v2.ListEventsResponse, error) { + start := b.nowFunc() + tt := tasks.ListEventsType if b.eventFeed == nil { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: event feed not implemented") } events, streamState, annotations, err := b.eventFeed.ListEvents(ctx, request.StartAt, &pagination.StreamToken{ @@ -364,8 +586,10 @@ func (b *builderImpl) ListEvents(ctx context.Context, request *v2.ListEventsRequ Cursor: request.Cursor, }) if err != nil { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: listing events failed: %w", err) } + b.m.RecordTaskSuccess(ctx, tt, b.nowFunc().Sub(start)) return &v2.ListEventsResponse{ Events: events, Cursor: streamState.Cursor, @@ -375,6 +599,8 @@ func (b *builderImpl) ListEvents(ctx context.Context, request *v2.ListEventsRequ } func (b *builderImpl) CreateResource(ctx context.Context, request *v2.CreateResourceRequest) (*v2.CreateResourceResponse, error) { + start := b.nowFunc() + tt := tasks.CreateResourceType l := ctxzap.Extract(ctx) rt := request.GetResource().GetId().GetResourceType() manager, ok := b.resourceManagers[rt] @@ -382,15 +608,21 @@ func (b *builderImpl) CreateResource(ctx context.Context, request *v2.CreateReso resource, annos, err := manager.Create(ctx, request.Resource) if err != nil { l.Error("error: create resource failed", zap.Error(err)) + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: create resource failed: %w", err) } + b.m.RecordTaskSuccess(ctx, tt, b.nowFunc().Sub(start)) return &v2.CreateResourceResponse{Created: resource, Annotations: annos}, nil } l.Error("error: resource type does not have resource manager configured", zap.String("resource_type", rt)) + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, status.Error(codes.Unimplemented, "resource type does not have resource manager configured") } func (b *builderImpl) DeleteResource(ctx context.Context, request *v2.DeleteResourceRequest) (*v2.DeleteResourceResponse, error) { + start := b.nowFunc() + tt := tasks.DeleteResourceType + l := ctxzap.Extract(ctx) rt := request.GetResourceId().GetResourceType() manager, ok := b.resourceManagers[rt] @@ -398,32 +630,40 @@ func (b *builderImpl) DeleteResource(ctx context.Context, request *v2.DeleteReso annos, err := manager.Delete(ctx, request.GetResourceId()) if err != nil { l.Error("error: delete resource failed", zap.Error(err)) + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: delete resource failed: %w", err) } + b.m.RecordTaskSuccess(ctx, tt, b.nowFunc().Sub(start)) return &v2.DeleteResourceResponse{Annotations: annos}, nil } l.Error("error: resource type does not have resource manager configured", zap.String("resource_type", rt)) + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, status.Error(codes.Unimplemented, "resource type does not have resource manager configured") } func (b *builderImpl) RotateCredential(ctx context.Context, request *v2.RotateCredentialRequest) (*v2.RotateCredentialResponse, error) { + start := b.nowFunc() + tt := tasks.RotateCredentialsType l := ctxzap.Extract(ctx) rt := request.GetResourceId().GetResourceType() manager, ok := b.credentialManagers[rt] if !ok { l.Error("error: resource type does not have credential manager configured", zap.String("resource_type", rt)) + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, status.Error(codes.Unimplemented, "resource type does not have credential manager configured") } plaintexts, annos, err := manager.Rotate(ctx, request.GetResourceId(), request.GetCredentialOptions()) if err != nil { l.Error("error: rotate credentials on resource failed", zap.Error(err)) + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: rotate credentials on resource failed: %w", err) } pkem, err := crypto.NewEncryptionManager(request.GetCredentialOptions(), request.GetEncryptionConfigs()) if err != nil { l.Error("error: creating encryption manager failed", zap.Error(err)) + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: creating encryption manager failed: %w", err) } @@ -431,11 +671,13 @@ func (b *builderImpl) RotateCredential(ctx context.Context, request *v2.RotateCr for _, plaintextCredential := range plaintexts { encryptedData, err := pkem.Encrypt(ctx, plaintextCredential) if err != nil { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, err } encryptedDatas = append(encryptedDatas, encryptedData...) } + b.m.RecordTaskSuccess(ctx, tt, b.nowFunc().Sub(start)) return &v2.RotateCredentialResponse{ Annotations: annos, ResourceId: request.GetResourceId(), @@ -444,20 +686,25 @@ func (b *builderImpl) RotateCredential(ctx context.Context, request *v2.RotateCr } func (b *builderImpl) CreateAccount(ctx context.Context, request *v2.CreateAccountRequest) (*v2.CreateAccountResponse, error) { + start := b.nowFunc() + tt := tasks.CreateAccountType l := ctxzap.Extract(ctx) if b.accountManager == nil { l.Error("error: connector does not have account manager configured") + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, status.Error(codes.Unimplemented, "connector does not have credential manager configured") } result, plaintexts, annos, err := b.accountManager.CreateAccount(ctx, request.GetAccountInfo(), request.GetCredentialOptions()) if err != nil { l.Error("error: create account failed", zap.Error(err)) + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: create account failed: %w", err) } pkem, err := crypto.NewEncryptionManager(request.GetCredentialOptions(), request.GetEncryptionConfigs()) if err != nil { l.Error("error: creating encryption manager failed", zap.Error(err)) + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, fmt.Errorf("error: creating encryption manager failed: %w", err) } @@ -465,6 +712,7 @@ func (b *builderImpl) CreateAccount(ctx context.Context, request *v2.CreateAccou for _, plaintextCredential := range plaintexts { encryptedData, err := pkem.Encrypt(ctx, plaintextCredential) if err != nil { + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, err } encryptedDatas = append(encryptedDatas, encryptedData...) @@ -481,8 +729,10 @@ func (b *builderImpl) CreateAccount(ctx context.Context, request *v2.CreateAccou case *v2.CreateAccountResponse_ActionRequiredResult: rv.Result = &v2.CreateAccountResponse_ActionRequired{ActionRequired: r} default: + b.m.RecordTaskFailure(ctx, tt, b.nowFunc().Sub(start)) return nil, status.Error(codes.Unimplemented, fmt.Sprintf("unknown result type: %T", result)) } + b.m.RecordTaskSuccess(ctx, tt, b.nowFunc().Sub(start)) return rv, nil } diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/connectorrunner/runner.go b/vendor/github.com/conductorone/baton-sdk/pkg/connectorrunner/runner.go index 834938ff..86a3f390 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/connectorrunner/runner.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/connectorrunner/runner.go @@ -191,6 +191,16 @@ func (c *connectorRunner) Close(ctx context.Context) error { type Option func(ctx context.Context, cfg *runnerConfig) error +type getTicketConfig struct { + ticketID string +} + +type listTicketSchemasConfig struct{} + +type createTicketConfig struct { + templatePath string +} + type grantConfig struct { entitlementID string principalType string @@ -228,6 +238,7 @@ type runnerConfig struct { clientID string clientSecret string provisioningEnabled bool + ticketingEnabled bool grantConfig *grantConfig revokeConfig *revokeConfig eventFeedConfig *eventStreamConfig @@ -235,6 +246,9 @@ type runnerConfig struct { createAccountConfig *createAccountConfig deleteResourceConfig *deleteResourceConfig rotateCredentialsConfig *rotateCredentialsConfig + createTicketConfig *createTicketConfig + listTicketSchemasConfig *listTicketSchemasConfig + getTicketConfig *getTicketConfig } // WithRateLimiterConfig sets the RateLimiterConfig for a runner. @@ -402,6 +416,41 @@ func WithProvisioningEnabled() Option { } } +func WithTicketingEnabled() Option { + return func(ctx context.Context, cfg *runnerConfig) error { + cfg.ticketingEnabled = true + return nil + } +} + +func WithCreateTicket(templatePath string) Option { + return func(ctx context.Context, cfg *runnerConfig) error { + cfg.onDemand = true + cfg.createTicketConfig = &createTicketConfig{ + templatePath: templatePath, + } + return nil + } +} + +func WithListTicketSchemas() Option { + return func(ctx context.Context, cfg *runnerConfig) error { + cfg.onDemand = true + cfg.listTicketSchemasConfig = &listTicketSchemasConfig{} + return nil + } +} + +func WithGetTicket(ticketID string) Option { + return func(ctx context.Context, cfg *runnerConfig) error { + cfg.onDemand = true + cfg.getTicketConfig = &getTicketConfig{ + ticketID: ticketID, + } + return nil + } +} + func WithTempDir(tempDir string) Option { return func(ctx context.Context, cfg *runnerConfig) error { cfg.tempDir = tempDir @@ -432,6 +481,10 @@ func NewConnectorRunner(ctx context.Context, c types.ConnectorServer, opts ...Op wrapperOpts = append(wrapperOpts, connector.WithProvisioningEnabled()) } + if cfg.ticketingEnabled { + wrapperOpts = append(wrapperOpts, connector.WithTicketingEnabled()) + } + cw, err := connector.NewWrapper(ctx, c, wrapperOpts...) if err != nil { return nil, err @@ -440,7 +493,7 @@ func NewConnectorRunner(ctx context.Context, c types.ConnectorServer, opts ...Op runner.cw = cw if cfg.onDemand { - if cfg.c1zPath == "" && cfg.eventFeedConfig == nil { + if cfg.c1zPath == "" && cfg.eventFeedConfig == nil && cfg.createTicketConfig == nil && cfg.listTicketSchemasConfig == nil && cfg.getTicketConfig == nil { return nil, errors.New("c1zPath must be set when in on-demand mode") } @@ -469,7 +522,12 @@ func NewConnectorRunner(ctx context.Context, c types.ConnectorServer, opts ...Op case cfg.eventFeedConfig != nil: tm = local.NewEventFeed(ctx) - + case cfg.createTicketConfig != nil: + tm = local.NewTicket(ctx, cfg.createTicketConfig.templatePath) + case cfg.listTicketSchemasConfig != nil: + tm = local.NewListTicketSchema(ctx) + case cfg.getTicketConfig != nil: + tm = local.NewGetTicket(ctx, cfg.getTicketConfig.ticketID) default: tm, err = local.NewSyncer(ctx, cfg.c1zPath, local.WithTmpDir(cfg.tempDir)) if err != nil { diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/entitlements.go b/vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/entitlements.go index 69e4eb6a..f91d5536 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/entitlements.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/entitlements.go @@ -54,7 +54,7 @@ func (c *C1File) ListEntitlements(ctx context.Context, request *v2.EntitlementsS ctxzap.Extract(ctx).Debug("listing entitlements") objs, nextPageToken, err := c.listConnectorObjects(ctx, entitlements.Name(), request) if err != nil { - return nil, err + return nil, fmt.Errorf("error listing entitlements: %w", err) } ret := make([]*v2.Entitlement, 0, len(objs)) @@ -80,7 +80,7 @@ func (c *C1File) GetEntitlement(ctx context.Context, request *reader_v2.Entitlem err := c.getConnectorObject(ctx, entitlements.Name(), request.EntitlementId, ret) if err != nil { - return nil, err + return nil, fmt.Errorf("error fetching entitlement '%s': %w", request.EntitlementId, err) } return &reader_v2.EntitlementsReaderServiceGetEntitlementResponse{ diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/grants.go b/vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/grants.go index 1f82d58b..d515f263 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/grants.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/grants.go @@ -64,7 +64,7 @@ func (c *C1File) ListGrants(ctx context.Context, request *v2.GrantsServiceListGr objs, nextPageToken, err := c.listConnectorObjects(ctx, grants.Name(), request) if err != nil { - return nil, err + return nil, fmt.Errorf("error listing grants: %w", err) } ret := make([]*v2.Grant, 0, len(objs)) @@ -90,7 +90,7 @@ func (c *C1File) GetGrant(ctx context.Context, request *reader_v2.GrantsReaderSe err := c.getConnectorObject(ctx, grants.Name(), request.GrantId, ret) if err != nil { - return nil, err + return nil, fmt.Errorf("error fetching grant '%s': %w", request.GetGrantId(), err) } return &reader_v2.GrantsReaderServiceGetGrantResponse{ @@ -102,11 +102,11 @@ func (c *C1File) ListGrantsForEntitlement( ctx context.Context, request *reader_v2.GrantsReaderServiceListGrantsForEntitlementRequest, ) (*reader_v2.GrantsReaderServiceListGrantsForEntitlementResponse, error) { - ctxzap.Extract(ctx).Debug("listing grants for entitlement") + ctxzap.Extract(ctx).Debug("listing grants for entitlement", zap.Any("entitlement", request.Entitlement)) objs, nextPageToken, err := c.listConnectorObjects(ctx, grants.Name(), request) if err != nil { - return nil, err + return nil, fmt.Errorf("error listing grants for entitlement '%s': %w", request.GetEntitlement().GetId(), err) } ret := make([]*v2.Grant, 0, len(objs)) @@ -129,11 +129,11 @@ func (c *C1File) ListGrantsForPrincipal( ctx context.Context, request *reader_v2.GrantsReaderServiceListGrantsForEntitlementRequest, ) (*reader_v2.GrantsReaderServiceListGrantsForEntitlementResponse, error) { - ctxzap.Extract(ctx).Debug("listing grants for entitlement") + ctxzap.Extract(ctx).Debug("listing grants for principal", zap.Any("principal", request.GetPrincipalId())) objs, nextPageToken, err := c.listConnectorObjects(ctx, grants.Name(), request) if err != nil { - return nil, err + return nil, fmt.Errorf("error listing grants for principal '%s': %w", request.GetPrincipalId(), err) } ret := make([]*v2.Grant, 0, len(objs)) @@ -156,11 +156,11 @@ func (c *C1File) ListGrantsForResourceType( ctx context.Context, request *reader_v2.GrantsReaderServiceListGrantsForResourceTypeRequest, ) (*reader_v2.GrantsReaderServiceListGrantsForResourceTypeResponse, error) { - ctxzap.Extract(ctx).Debug("listing grants for resource type") + ctxzap.Extract(ctx).Debug("listing grants for resource type", zap.String("resource_type_id", request.GetResourceTypeId())) objs, nextPageToken, err := c.listConnectorObjects(ctx, grants.Name(), request) if err != nil { - return nil, err + return nil, fmt.Errorf("error listing grants for resource type '%s': %w", request.GetResourceTypeId(), err) } ret := make([]*v2.Grant, 0, len(objs)) diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/resouce_types.go b/vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/resouce_types.go index 14048e31..b3f8eca4 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/resouce_types.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/resouce_types.go @@ -49,7 +49,7 @@ func (c *C1File) ListResourceTypes(ctx context.Context, request *v2.ResourceType objs, nextPageToken, err := c.listConnectorObjects(ctx, resourceTypes.Name(), request) if err != nil { - return nil, err + return nil, fmt.Errorf("error listing resource types: %w", err) } ret := make([]*v2.ResourceType, 0, len(objs)) @@ -75,7 +75,7 @@ func (c *C1File) GetResourceType(ctx context.Context, request *reader_v2.Resourc err := c.getConnectorObject(ctx, resourceTypes.Name(), request.ResourceTypeId, ret) if err != nil { - return nil, err + return nil, fmt.Errorf("error fetching resource type '%s': %w", request.ResourceTypeId, err) } return &reader_v2.ResourceTypesReaderServiceGetResourceTypeResponse{ diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/resources.go b/vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/resources.go index a4633166..d41daad3 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/resources.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/dotc1z/resources.go @@ -61,7 +61,7 @@ func (c *C1File) ListResources(ctx context.Context, request *v2.ResourcesService objs, nextPageToken, err := c.listConnectorObjects(ctx, resources.Name(), request) if err != nil { - return nil, err + return nil, fmt.Errorf("error listing resources: %w", err) } ret := make([]*v2.Resource, 0, len(objs)) @@ -98,7 +98,7 @@ func (c *C1File) GetResource(ctx context.Context, request *reader_v2.ResourcesRe err := c.getResourceObject(ctx, request.ResourceId, ret, syncID) if err != nil { - return nil, err + return nil, fmt.Errorf("error fetching resource '%s': %w", request.ResourceId, err) } return &reader_v2.ResourcesReaderServiceGetResourceResponse{ diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/logging/logging.go b/vendor/github.com/conductorone/baton-sdk/pkg/logging/logging.go index c31c6ed8..50c6fe36 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/logging/logging.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/logging/logging.go @@ -30,6 +30,7 @@ func WithLogFormat(format string) Option { c.Encoding = LogFormatJSON case LogFormatConsole: c.Encoding = LogFormatConsole + c.EncoderConfig = zap.NewDevelopmentEncoderConfig() default: c.Encoding = LogFormatJSON } diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/metrics/instrumentor.go b/vendor/github.com/conductorone/baton-sdk/pkg/metrics/instrumentor.go new file mode 100644 index 00000000..322016f3 --- /dev/null +++ b/vendor/github.com/conductorone/baton-sdk/pkg/metrics/instrumentor.go @@ -0,0 +1,39 @@ +package metrics + +import ( + "context" + "time" + + "github.com/conductorone/baton-sdk/pkg/tasks" +) + +const ( + taskSuccessCounterName = "task_success" + taskFailureCounterName = "task_failure" + taskDurationHistoName = "task_latency" + taskSuccessCounterDesc = "number of successful tasks by task type" + taskFailureCounterDesc = "number of failed tasks by task type" + taskDurationHistoDesc = "duration of all tasks by task type and status" +) + +type M struct { + underlying Handler +} + +func (m *M) RecordTaskSuccess(ctx context.Context, task tasks.TaskType, dur time.Duration) { + c := m.underlying.Int64Counter(taskSuccessCounterName, taskSuccessCounterDesc, Dimensionless) + h := m.underlying.Int64Histogram(taskDurationHistoName, taskDurationHistoDesc, Milliseconds) + c.Add(ctx, 1, map[string]string{"task_type": task.String()}) + h.Record(ctx, dur.Milliseconds(), map[string]string{"task_type": task.String(), "task_status": "success"}) +} + +func (m *M) RecordTaskFailure(ctx context.Context, task tasks.TaskType, dur time.Duration) { + c := m.underlying.Int64Counter(taskFailureCounterName, taskFailureCounterDesc, Dimensionless) + h := m.underlying.Int64Histogram(taskDurationHistoName, taskDurationHistoDesc, Milliseconds) + c.Add(ctx, 1, map[string]string{"task_type": task.String()}) + h.Record(ctx, dur.Milliseconds(), map[string]string{"task_type": task.String(), "task_status": "failure"}) +} + +func New(handler Handler) *M { + return &M{underlying: handler} +} diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/metrics/metrics.go b/vendor/github.com/conductorone/baton-sdk/pkg/metrics/metrics.go new file mode 100644 index 00000000..7af8bcd8 --- /dev/null +++ b/vendor/github.com/conductorone/baton-sdk/pkg/metrics/metrics.go @@ -0,0 +1,32 @@ +package metrics + +import ( + "context" +) + +type Handler interface { + Int64Counter(name string, description string, unit Unit) Int64Counter + Int64Gauge(name string, description string, unit Unit) Int64Gauge + Int64Histogram(name string, description string, unit Unit) Int64Histogram + WithTags(tags map[string]string) Handler +} + +type Int64Counter interface { + Add(ctx context.Context, value int64, tags map[string]string) +} + +type Int64Histogram interface { + Record(ctx context.Context, value int64, tags map[string]string) +} + +type Int64Gauge interface { + Observe(ctx context.Context, value int64, tags map[string]string) +} + +type Unit string + +const ( + Dimensionless Unit = "1" + Bytes Unit = "By" + Milliseconds Unit = "ms" +) diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/metrics/noop.go b/vendor/github.com/conductorone/baton-sdk/pkg/metrics/noop.go new file mode 100644 index 00000000..eec13f8a --- /dev/null +++ b/vendor/github.com/conductorone/baton-sdk/pkg/metrics/noop.go @@ -0,0 +1,39 @@ +package metrics + +import "context" + +type noopRecorder struct{} + +func (*noopRecorder) Record(_ context.Context, _ int64, _ map[string]string) {} + +func (*noopRecorder) Add(_ context.Context, _ int64, _ map[string]string) {} + +func (*noopRecorder) Observe(_ context.Context, _ int64, _ map[string]string) {} + +var _ Int64Counter = (*noopRecorder)(nil) +var _ Int64Histogram = (*noopRecorder)(nil) +var _ Int64Gauge = (*noopRecorder)(nil) + +type noopHandler struct{} + +func (*noopHandler) Int64Counter(_ string, _ string, _ Unit) Int64Counter { + return &noopRecorder{} +} + +func (*noopHandler) Int64Gauge(_ string, _ string, _ Unit) Int64Gauge { + return &noopRecorder{} +} + +func (*noopHandler) Int64Histogram(_ string, _ string, _ Unit) Int64Histogram { + return &noopRecorder{} +} + +func (*noopHandler) WithTags(_ map[string]string) Handler { + return &noopHandler{} +} + +var _ Handler = (*noopHandler)(nil) + +func NewNoOpHandler(_ context.Context) Handler { + return &noopHandler{} +} diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/metrics/otel.go b/vendor/github.com/conductorone/baton-sdk/pkg/metrics/otel.go new file mode 100644 index 00000000..768ab1aa --- /dev/null +++ b/vendor/github.com/conductorone/baton-sdk/pkg/metrics/otel.go @@ -0,0 +1,159 @@ +package metrics + +import ( + "context" + "strings" + "sync" + + "go.opentelemetry.io/otel/attribute" + otelmetric "go.opentelemetry.io/otel/metric" +) + +type otelHandler struct { + name string + meter otelmetric.Meter + provider otelmetric.MeterProvider + + int64CountersMtx sync.Mutex + int64Counters map[string]otelmetric.Int64Counter + int64HistosMtx sync.Mutex + int64Histos map[string]otelmetric.Int64Histogram + int64GaugesMtx sync.Mutex + int64Gauges map[string]Int64Gauge +} + +type otelInt64Histogram func(ctx context.Context, incr int64, options ...otelmetric.RecordOption) + +func (f otelInt64Histogram) Record(ctx context.Context, value int64, tags map[string]string) { + attrs := makeAttrs(tags) + + f(ctx, value, otelmetric.WithAttributes(attrs...)) +} + +var _ Int64Histogram = (otelInt64Histogram)(nil) + +type otelInt64Counter func(ctx context.Context, incr int64, options ...otelmetric.AddOption) + +func (f otelInt64Counter) Add(ctx context.Context, value int64, tags map[string]string) { + attrs := makeAttrs(tags) + f(ctx, value, otelmetric.WithAttributes(attrs...)) +} + +var _ Int64Counter = (otelInt64Counter)(nil) + +type syncInt64Gauge struct { + value int64 + attrs []otelmetric.ObserveOption + gauge otelmetric.Int64ObservableGauge +} + +func (s *syncInt64Gauge) Observe(_ context.Context, value int64, tags map[string]string) { + attrs := makeAttrs(tags) + s.attrs = append(s.attrs, otelmetric.WithAttributes(attrs...)) + s.value = value +} + +func newSyncInt64Gauge(meter otelmetric.Meter, name string, description string, unit Unit) *syncInt64Gauge { + g, err := meter.Int64ObservableGauge(name, otelmetric.WithDescription(description), otelmetric.WithUnit(string(unit))) + if err != nil { + panic(err) + } + + return &syncInt64Gauge{gauge: g} +} + +var _ Int64Gauge = (*syncInt64Gauge)(nil) + +func (h *otelHandler) Int64Histogram(name string, description string, unit Unit) Int64Histogram { + h.int64HistosMtx.Lock() + defer h.int64HistosMtx.Unlock() + + name = strings.ToLower(name) + + c, ok := h.int64Histos[name] + var err error + if !ok { + c, err = h.meter.Int64Histogram(name, otelmetric.WithDescription(description), otelmetric.WithUnit(string(unit))) + if err != nil { + panic(err) + } + h.int64Histos[name] = c + } + + return otelInt64Histogram(c.Record) +} + +func (h *otelHandler) Int64Counter(name string, description string, unit Unit) Int64Counter { + h.int64CountersMtx.Lock() + defer h.int64CountersMtx.Unlock() + + name = strings.ToLower(name) + + c, ok := h.int64Counters[name] + var err error + if !ok { + c, err = h.meter.Int64Counter(name, otelmetric.WithDescription(description), otelmetric.WithUnit(string(unit))) + if err != nil { + panic(err) + } + h.int64Counters[name] = c + } + + return otelInt64Counter(c.Add) +} + +func (h *otelHandler) Int64Gauge(name string, description string, unit Unit) Int64Gauge { + h.int64GaugesMtx.Lock() + defer h.int64GaugesMtx.Unlock() + + name = strings.ToLower(name) + + if c, ok := h.int64Gauges[name]; ok { + return c + } + + newGauge := newSyncInt64Gauge(h.meter, name, description, unit) + + _, err := h.meter.RegisterCallback(func(ctx context.Context, observer otelmetric.Observer) error { + observer.ObserveInt64(newGauge.gauge, newGauge.value, newGauge.attrs...) + return nil + }, newGauge.gauge) + + if err != nil { + panic(err) + } + + h.int64Gauges[name] = newGauge + + return newGauge +} + +func (h *otelHandler) WithTags(tags map[string]string) Handler { + attrs := makeAttrs(tags) + + h.meter = h.provider.Meter(h.name, otelmetric.WithInstrumentationAttributes(attrs...)) + + return h +} + +func makeAttrs(tags map[string]string) []attribute.KeyValue { + attrs := make([]attribute.KeyValue, len(tags)) + for k, v := range tags { + attrs = append(attrs, attribute.String(k, v)) + } + + return attrs +} + +func NewOtelHandler(_ context.Context, provider otelmetric.MeterProvider, name string) Handler { + return &otelHandler{ + name: name, + meter: provider.Meter(name), + provider: provider, + int64Counters: make(map[string]otelmetric.Int64Counter), + int64Histos: make(map[string]otelmetric.Int64Histogram), + int64Gauges: make(map[string]Int64Gauge), + } +} + +var _ Handler = (*otelHandler)(nil) diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/sync/expand.go b/vendor/github.com/conductorone/baton-sdk/pkg/sync/expand.go index 674f6372..6d339c4e 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/sync/expand.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/sync/expand.go @@ -7,6 +7,8 @@ import ( "reflect" v2 "github.com/conductorone/baton-sdk/pb/c1/connector/v2" + "github.com/grpc-ecosystem/go-grpc-middleware/logging/zap/ctxzap" + "go.uber.org/zap" ) var ( @@ -300,7 +302,7 @@ func (g *EntitlementGraph) GetNode(entitlementId string) *Node { return nil } -func (g *EntitlementGraph) AddEdge(srcEntitlementID string, dstEntitlementID string, shallow bool, resourceTypeIDs []string) error { +func (g *EntitlementGraph) AddEdge(ctx context.Context, srcEntitlementID string, dstEntitlementID string, shallow bool, resourceTypeIDs []string) error { srcNode := g.GetNode(srcEntitlementID) if srcNode == nil { return ErrNoEntitlement @@ -324,7 +326,14 @@ func (g *EntitlementGraph) AddEdge(srcEntitlementID string, dstEntitlementID str } } else { // TODO: just do nothing? it's probably a mistake if we're adding the same edge twice - return fmt.Errorf("edge already exists") + ctxzap.Extract(ctx).Warn( + "duplicate edge from datasource", + zap.String("src_entitlement_id", srcEntitlementID), + zap.String("dst_entitlement_id", dstEntitlementID), + zap.Bool("shallow", shallow), + zap.Strings("resource_type_ids", resourceTypeIDs), + ) + return nil } return nil } diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/sync/syncer.go b/vendor/github.com/conductorone/baton-sdk/pkg/sync/syncer.go index 840de30f..fa0958b8 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/sync/syncer.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/sync/syncer.go @@ -795,7 +795,7 @@ func (s *syncer) SyncGrantExpansion(ctx context.Context) error { entitlementGraph.AddEntitlement(grant.Entitlement) entitlementGraph.AddEntitlement(srcEntitlement.GetEntitlement()) - err = entitlementGraph.AddEdge( + err = entitlementGraph.AddEdge(ctx, srcEntitlement.GetEntitlement().GetId(), grant.GetEntitlement().GetId(), expandable.Shallow, diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/create_ticket.go b/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/create_ticket.go new file mode 100644 index 00000000..e5a15bfd --- /dev/null +++ b/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/create_ticket.go @@ -0,0 +1,60 @@ +package c1api + +import ( + "context" + "errors" + + "github.com/grpc-ecosystem/go-grpc-middleware/logging/zap/ctxzap" + "go.uber.org/zap" + "google.golang.org/protobuf/proto" + + v2 "github.com/conductorone/baton-sdk/pb/c1/connector/v2" + v1 "github.com/conductorone/baton-sdk/pb/c1/connectorapi/baton/v1" + "github.com/conductorone/baton-sdk/pkg/annotations" + "github.com/conductorone/baton-sdk/pkg/types" +) + +type createTicketTaskHelpers interface { + ConnectorClient() types.ConnectorClient + FinishTask(ctx context.Context, resp proto.Message, annos annotations.Annotations, err error) error +} + +type createTicketTaskHandler struct { + task *v1.Task + helpers createTicketTaskHelpers +} + +func (c *createTicketTaskHandler) HandleTask(ctx context.Context) error { + l := ctxzap.Extract(ctx) + + t := c.task.GetCreateTicketTask() + if t == nil || t.GetTicketRequest() == nil { + l.Error("create ticket task was nil or missing ticket request", zap.Any("create_ticket_task", t)) + return c.helpers.FinishTask(ctx, nil, nil, errors.Join(errors.New("malformed create ticket task"), ErrTaskNonRetryable)) + } + + cc := c.helpers.ConnectorClient() + resp, err := cc.CreateTicket(ctx, &v2.TicketsServiceCreateTicketRequest{ + Request: t.GetTicketRequest(), + Schema: t.GetTicketSchema(), + Annotations: t.GetAnnotations(), + }) + if err != nil { + l.Error("failed creating ticket", zap.Error(err)) + return c.helpers.FinishTask(ctx, nil, nil, errors.Join(err, ErrTaskNonRetryable)) + } + + respAnnos := annotations.Annotations(resp.GetAnnotations()) + respAnnos.Merge(t.GetAnnotations()...) + + resp.Annotations = respAnnos + + return c.helpers.FinishTask(ctx, resp, respAnnos, nil) +} + +func newCreateTicketTaskHandler(task *v1.Task, helpers createTicketTaskHelpers) *createTicketTaskHandler { + return &createTicketTaskHandler{ + task: task, + helpers: helpers, + } +} diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/get_ticket.go b/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/get_ticket.go new file mode 100644 index 00000000..70a13913 --- /dev/null +++ b/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/get_ticket.go @@ -0,0 +1,68 @@ +package c1api + +import ( + "context" + "errors" + "fmt" + + v2 "github.com/conductorone/baton-sdk/pb/c1/connector/v2" + v1 "github.com/conductorone/baton-sdk/pb/c1/connectorapi/baton/v1" + "github.com/conductorone/baton-sdk/pkg/annotations" + "github.com/conductorone/baton-sdk/pkg/types" + "github.com/grpc-ecosystem/go-grpc-middleware/logging/zap/ctxzap" + "go.uber.org/zap" + "google.golang.org/protobuf/proto" +) + +type getTicketTaskHelpers interface { + ConnectorClient() types.ConnectorClient + FinishTask(ctx context.Context, resp proto.Message, annos annotations.Annotations, err error) error +} + +type getTicketTaskHandler struct { + task *v1.Task + helpers getTicketTaskHelpers +} + +func (c *getTicketTaskHandler) HandleTask(ctx context.Context) error { + l := ctxzap.Extract(ctx) + + cc := c.helpers.ConnectorClient() + + t := c.task.GetGetTicket() + if t == nil || t.GetTicketId() == "" { + l.Error("get ticket task was nil or missing ticket id", zap.Any("get_ticket_task", t)) + return c.helpers.FinishTask(ctx, nil, nil, errors.Join(errors.New("malformed get ticket task"), ErrTaskNonRetryable)) + } + + ticket, err := cc.GetTicket(ctx, &v2.TicketsServiceGetTicketRequest{ + Id: t.GetTicketId(), + }) + if err != nil { + return err + } + + if ticket.GetTicket() == nil { + return fmt.Errorf("connector returned empty ticket") + } + + resp := &v2.TicketsServiceGetTicketResponse{ + Ticket: ticket.GetTicket(), + } + + respAnnos := annotations.Annotations(resp.GetAnnotations()) + respAnnos.Merge(t.GetAnnotations()...) + + resp.Annotations = respAnnos + + l.Debug("GetTicket response", zap.Any("resp", resp)) + + return c.helpers.FinishTask(ctx, resp, respAnnos, nil) +} + +func newGetTicketTaskHandler(task *v1.Task, helpers getTicketTaskHelpers) *getTicketTaskHandler { + return &getTicketTaskHandler{ + task: task, + helpers: helpers, + } +} diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/list_ticket_schemas.go b/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/list_ticket_schemas.go new file mode 100644 index 00000000..a539d1bf --- /dev/null +++ b/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/list_ticket_schemas.go @@ -0,0 +1,79 @@ +package c1api + +import ( + "context" + "errors" + "fmt" + + "github.com/grpc-ecosystem/go-grpc-middleware/logging/zap/ctxzap" + "go.uber.org/zap" + "google.golang.org/protobuf/proto" + + v2 "github.com/conductorone/baton-sdk/pb/c1/connector/v2" + v1 "github.com/conductorone/baton-sdk/pb/c1/connectorapi/baton/v1" + "github.com/conductorone/baton-sdk/pkg/annotations" + "github.com/conductorone/baton-sdk/pkg/types" +) + +type listTicketSchemasTaskHelpers interface { + ConnectorClient() types.ConnectorClient + FinishTask(ctx context.Context, resp proto.Message, annos annotations.Annotations, err error) error +} + +type listTicketSchemasTaskHandler struct { + task *v1.Task + helpers listTicketSchemasTaskHelpers +} + +func (c *listTicketSchemasTaskHandler) HandleTask(ctx context.Context) error { + l := ctxzap.Extract(ctx) + + t := c.task.GetListTicketSchemas() + if t == nil { + l.Error("list ticket schemas was nil", zap.Any("list_ticket_schemas_task", t)) + return c.helpers.FinishTask(ctx, nil, nil, errors.Join(errors.New("malformed list ticket schemas task"), ErrTaskNonRetryable)) + } + + cc := c.helpers.ConnectorClient() + var ticketSchemas []*v2.TicketSchema + var err error + pageToken := "" + for { + schemas, err := cc.ListTicketSchemas(ctx, &v2.TicketsServiceListTicketSchemasRequest{ + PageToken: pageToken, + }) + if err != nil { + return err + } + + ticketSchemas = append(ticketSchemas, schemas.GetList()...) + + if schemas.GetNextPageToken() == "" { + break + } + pageToken = schemas.GetNextPageToken() + } + + if len(ticketSchemas) == 0 { + err = fmt.Errorf("connector returned no ticket schemas") + } + + if err != nil { + l.Error("failed listing ticket schemas", zap.Error(err)) + return c.helpers.FinishTask(ctx, nil, nil, errors.Join(err, ErrTaskNonRetryable)) + } + + resp := &v2.TicketsServiceListTicketSchemasResponse{ + List: ticketSchemas, + NextPageToken: "", + } + + return c.helpers.FinishTask(ctx, resp, resp.GetAnnotations(), nil) +} + +func newListSchemasTaskHandler(task *v1.Task, helpers listTicketSchemasTaskHelpers) *listTicketSchemasTaskHandler { + return &listTicketSchemasTaskHandler{ + task: task, + helpers: helpers, + } +} diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/manager.go b/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/manager.go index c5fd180c..8dc532bc 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/manager.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/manager.go @@ -243,7 +243,12 @@ func (c *c1ApiTaskManager) Process(ctx context.Context, task *v1.Task, cc types. case tasks.RotateCredentialsType: handler = newRotateCredentialsTaskHandler(task, tHelpers) - + case tasks.CreateTicketType: + handler = newCreateTicketTaskHandler(task, tHelpers) + case tasks.ListTicketSchemasType: + handler = newListSchemasTaskHandler(task, tHelpers) + case tasks.GetTicketType: + handler = newGetTicketTaskHandler(task, tHelpers) default: return c.finishTask(ctx, task, nil, nil, errors.New("unsupported task type")) } diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/tasks/local/ticket.go b/vendor/github.com/conductorone/baton-sdk/pkg/tasks/local/ticket.go new file mode 100644 index 00000000..d62dc572 --- /dev/null +++ b/vendor/github.com/conductorone/baton-sdk/pkg/tasks/local/ticket.go @@ -0,0 +1,196 @@ +package local + +import ( + "context" + "encoding/json" + "os" + "sync" + "time" + + "github.com/grpc-ecosystem/go-grpc-middleware/logging/zap/ctxzap" + "go.uber.org/zap" + + v2 "github.com/conductorone/baton-sdk/pb/c1/connector/v2" + v1 "github.com/conductorone/baton-sdk/pb/c1/connectorapi/baton/v1" + "github.com/conductorone/baton-sdk/pkg/tasks" + "github.com/conductorone/baton-sdk/pkg/types" + sdkTicket "github.com/conductorone/baton-sdk/pkg/types/ticket" +) + +type localCreateTicket struct { + o sync.Once + + templatePath string +} + +type ticketTemplate struct { + SchemaID string `json:"schema_id"` + StatusId string `json:"status_id"` + TypeId string `json:"type_id"` + DisplayName string `json:"display_name"` + Description string `json:"description"` + Labels []string `json:"labels"` + CustomFields map[string]interface{} `json:"custom_fields"` +} + +func (m *localCreateTicket) loadTicketTemplate(ctx context.Context) (*ticketTemplate, error) { + tbytes, err := os.ReadFile(m.templatePath) + if err != nil { + return nil, err + } + + template := &ticketTemplate{} + err = json.Unmarshal(tbytes, template) + if err != nil { + return nil, err + } + + return template, nil +} + +func (m *localCreateTicket) Next(ctx context.Context) (*v1.Task, time.Duration, error) { + var task *v1.Task + m.o.Do(func() { + task = &v1.Task{ + TaskType: &v1.Task_CreateTicketTask_{ + CreateTicketTask: &v1.Task_CreateTicketTask{}, + }, + } + }) + return task, 0, nil +} + +func (m *localCreateTicket) Process(ctx context.Context, task *v1.Task, cc types.ConnectorClient) error { + l := ctxzap.Extract(ctx) + + template, err := m.loadTicketTemplate(ctx) + if err != nil { + return err + } + + schema, err := cc.GetTicketSchema(ctx, &v2.TicketsServiceGetTicketSchemaRequest{ + Id: template.SchemaID, + }) + if err != nil { + return err + } + + ticketRequestBody := &v2.TicketRequest{ + DisplayName: template.DisplayName, + Description: template.Description, + Type: &v2.TicketType{ + Id: template.TypeId, + }, + Labels: template.Labels, + } + + if template.StatusId != "" { + ticketRequestBody.Status = &v2.TicketStatus{ + Id: template.StatusId, + } + } + + cfs := make(map[string]*v2.TicketCustomField) + for k, v := range template.CustomFields { + newCfs, err := sdkTicket.CustomFieldForSchemaField(k, schema.Schema, v) + if err != nil { + return err + } + cfs[k] = newCfs + } + ticketRequestBody.CustomFields = cfs + ticketReq := &v2.TicketsServiceCreateTicketRequest{ + Request: ticketRequestBody, + Schema: schema.GetSchema(), + } + + resp, err := cc.CreateTicket(ctx, ticketReq) + if err != nil { + return err + } + + l.Info("created ticket", zap.Any("resp", resp)) + + return nil +} + +// NewTicket returns a task manager that queues a create ticket task. +func NewTicket(ctx context.Context, templatePath string) tasks.Manager { + return &localCreateTicket{ + templatePath: templatePath, + } +} + +// Get ticket task. +type localGetTicket struct { + o sync.Once + ticketId string +} + +func (m *localGetTicket) Next(ctx context.Context) (*v1.Task, time.Duration, error) { + var task *v1.Task + m.o.Do(func() { + task = &v1.Task{ + TaskType: &v1.Task_GetTicket{ + GetTicket: &v1.Task_GetTicketTask{ + TicketId: m.ticketId, + }, + }, + } + }) + return task, 0, nil +} + +func (m *localGetTicket) Process(ctx context.Context, task *v1.Task, cc types.ConnectorClient) error { + l := ctxzap.Extract(ctx) + + resp, err := cc.GetTicket(ctx, &v2.TicketsServiceGetTicketRequest{ + Id: m.ticketId, + }) + if err != nil { + return err + } + + l.Info("ticket", zap.Any("resp", resp)) + + return nil +} + +// NewGetTicket returns a task manager that queues a get ticket task. +func NewGetTicket(ctx context.Context, ticketId string) tasks.Manager { + return &localGetTicket{ + ticketId: ticketId, + } +} + +type localListTicketSchemas struct { + o sync.Once +} + +func (m *localListTicketSchemas) Next(ctx context.Context) (*v1.Task, time.Duration, error) { + var task *v1.Task + m.o.Do(func() { + task = &v1.Task{ + TaskType: &v1.Task_ListTicketSchemas{}, + } + }) + return task, 0, nil +} + +func (m *localListTicketSchemas) Process(ctx context.Context, task *v1.Task, cc types.ConnectorClient) error { + l := ctxzap.Extract(ctx) + + resp, err := cc.ListTicketSchemas(ctx, &v2.TicketsServiceListTicketSchemasRequest{}) + if err != nil { + return err + } + + l.Info("Ticket Schemas", zap.Any("resp", resp)) + + return nil +} + +// NewSchema returns a task manager that queues a list schema task. +func NewListTicketSchema(ctx context.Context) tasks.Manager { + return &localListTicketSchemas{} +} diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/tasks/tasks.go b/vendor/github.com/conductorone/baton-sdk/pkg/tasks/tasks.go index ff9fced3..359f3053 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/tasks/tasks.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/tasks/tasks.go @@ -41,6 +41,26 @@ func (tt TaskType) String() string { return "delete_resource" case RotateCredentialsType: return "rotate_credential" + case CreateTicketType: + return "create_ticket" + case ListTicketSchemasType: + return "list_ticket_schemas" + case GetTicketType: + return "get_ticket" + case GetTicketSchemaType: + return "get_ticket_schema" + case ListResourceTypesType: + return "list_resource_types" + case ListResourcesType: + return "list_resources" + case ListEntitlementsType: + return "list_entitlements" + case ListGrantsType: + return "list_grants" + case GetMetadataType: + return "get_metadata" + case ListEventsType: + return "list_events" default: return "unknown" } @@ -58,6 +78,16 @@ const ( DeleteResourceType RotateCredentialsType EventFeedType + CreateTicketType + ListTicketSchemasType + GetTicketType + GetTicketSchemaType + ListResourceTypesType + ListResourcesType + ListEntitlementsType + ListGrantsType + GetMetadataType + ListEventsType ) func Is(task *v1.Task, target TaskType) bool { @@ -88,6 +118,12 @@ func Is(task *v1.Task, target TaskType) bool { _, ok = task.GetTaskType().(*v1.Task_DeleteResource) case RotateCredentialsType: _, ok = task.GetTaskType().(*v1.Task_RotateCredentials) + case CreateTicketType: + _, ok = task.GetTaskType().(*v1.Task_CreateTicketTask_) + case ListTicketSchemasType: + _, ok = task.GetTaskType().(*v1.Task_ListTicketSchemas) + case GetTicketType: + _, ok = task.GetTaskType().(*v1.Task_GetTicket) default: return false } @@ -121,6 +157,12 @@ func GetType(task *v1.Task) TaskType { return DeleteResourceType case *v1.Task_RotateCredentials: return RotateCredentialsType + case *v1.Task_CreateTicketTask_: + return CreateTicketType + case *v1.Task_ListTicketSchemas: + return ListTicketSchemasType + case *v1.Task_GetTicket: + return GetTicketType default: return UnknownType } diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/types/entitlement/entitlement.go b/vendor/github.com/conductorone/baton-sdk/pkg/types/entitlement/entitlement.go new file mode 100644 index 00000000..69699b79 --- /dev/null +++ b/vendor/github.com/conductorone/baton-sdk/pkg/types/entitlement/entitlement.go @@ -0,0 +1,73 @@ +package entitlement + +import ( + "fmt" + + v2 "github.com/conductorone/baton-sdk/pb/c1/connector/v2" + "github.com/conductorone/baton-sdk/pkg/annotations" + "google.golang.org/protobuf/proto" +) + +type EntitlementOption func(*v2.Entitlement) + +func WithAnnotation(msgs ...proto.Message) EntitlementOption { + return func(e *v2.Entitlement) { + annos := annotations.Annotations(e.Annotations) + for _, msg := range msgs { + annos.Append(msg) + } + e.Annotations = annos + } +} + +func WithGrantableTo(grantableTo ...*v2.ResourceType) EntitlementOption { + return func(g *v2.Entitlement) { + g.GrantableTo = grantableTo + } +} + +func WithDisplayName(displayName string) EntitlementOption { + return func(g *v2.Entitlement) { + g.DisplayName = displayName + } +} + +func WithDescription(description string) EntitlementOption { + return func(g *v2.Entitlement) { + g.Description = description + } +} + +func NewEntitlementID(resource *v2.Resource, permission string) string { + return fmt.Sprintf("%s:%s:%s", resource.Id.ResourceType, resource.Id.Resource, permission) +} + +func NewPermissionEntitlement(resource *v2.Resource, name string, entitlementOptions ...EntitlementOption) *v2.Entitlement { + entitlement := &v2.Entitlement{ + Id: NewEntitlementID(resource, name), + DisplayName: name, + Slug: name, + Purpose: v2.Entitlement_PURPOSE_VALUE_PERMISSION, + Resource: resource, + } + + for _, entitlementOption := range entitlementOptions { + entitlementOption(entitlement) + } + return entitlement +} + +func NewAssignmentEntitlement(resource *v2.Resource, name string, entitlementOptions ...EntitlementOption) *v2.Entitlement { + entitlement := &v2.Entitlement{ + Id: NewEntitlementID(resource, name), + DisplayName: name, + Slug: name, + Purpose: v2.Entitlement_PURPOSE_VALUE_ASSIGNMENT, + Resource: resource, + } + + for _, entitlementOption := range entitlementOptions { + entitlementOption(entitlement) + } + return entitlement +} diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/types/grant/grant.go b/vendor/github.com/conductorone/baton-sdk/pkg/types/grant/grant.go new file mode 100644 index 00000000..25ff9ede --- /dev/null +++ b/vendor/github.com/conductorone/baton-sdk/pkg/types/grant/grant.go @@ -0,0 +1,91 @@ +package grant + +import ( + "fmt" + + v2 "github.com/conductorone/baton-sdk/pb/c1/connector/v2" + "github.com/conductorone/baton-sdk/pkg/annotations" + eopt "github.com/conductorone/baton-sdk/pkg/types/entitlement" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/structpb" +) + +type GrantOption func(*v2.Grant) error + +type GrantPrincipal interface { + proto.Message + GetBatonResource() bool +} + +func WithGrantMetadata(metadata map[string]interface{}) GrantOption { + return func(g *v2.Grant) error { + md, err := structpb.NewStruct(metadata) + if err != nil { + return err + } + + meta := &v2.GrantMetadata{Metadata: md} + annos := annotations.Annotations(g.Annotations) + annos.Update(meta) + g.Annotations = annos + + return nil + } +} + +func WithExternalPrincipalID(externalID *v2.ExternalId) GrantOption { + return func(g *v2.Grant) error { + g.Principal.ExternalId = externalID + return nil + } +} + +func WithAnnotation(msgs ...proto.Message) GrantOption { + return func(g *v2.Grant) error { + annos := annotations.Annotations(g.Annotations) + for _, msg := range msgs { + annos.Append(msg) + } + g.Annotations = annos + + return nil + } +} + +// NewGrant returns a new grant for the given entitlement on the resource for the provided principal resource ID. +func NewGrant(resource *v2.Resource, entitlementName string, principal GrantPrincipal, grantOptions ...GrantOption) *v2.Grant { + entitlement := &v2.Entitlement{ + Id: eopt.NewEntitlementID(resource, entitlementName), + Resource: resource, + } + + grant := &v2.Grant{ + Entitlement: entitlement, + } + + var resourceID *v2.ResourceId + switch p := principal.(type) { + case *v2.ResourceId: + resourceID = p + grant.Principal = &v2.Resource{Id: p} + case *v2.Resource: + grant.Principal = p + resourceID = p.Id + default: + panic("unexpected principal type") + } + + if resourceID == nil { + panic("principal resource must have a valid resource ID") + } + grant.Id = fmt.Sprintf("%s:%s:%s", entitlement.Id, resourceID.ResourceType, resourceID.Resource) + + for _, grantOption := range grantOptions { + err := grantOption(grant) + if err != nil { + panic(err) + } + } + + return grant +} diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/types/ticket/custom_fields.go b/vendor/github.com/conductorone/baton-sdk/pkg/types/ticket/custom_fields.go new file mode 100644 index 00000000..332ac763 --- /dev/null +++ b/vendor/github.com/conductorone/baton-sdk/pkg/types/ticket/custom_fields.go @@ -0,0 +1,684 @@ +package ticket + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "time" + + "github.com/grpc-ecosystem/go-grpc-middleware/logging/zap/ctxzap" + "go.uber.org/zap" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/types/known/timestamppb" + + v2 "github.com/conductorone/baton-sdk/pb/c1/connector/v2" +) + +var ErrFieldNil = errors.New("error: field is nil") + +// CustomFieldForSchemaField returns a typed custom field for a given schema field. +func CustomFieldForSchemaField(id string, schema *v2.TicketSchema, value interface{}) (*v2.TicketCustomField, error) { + field, ok := schema.GetCustomFields()[id] + if !ok { + return nil, fmt.Errorf("error: id(%s) not found in schema", id) + } + + switch field.GetValue().(type) { + case *v2.TicketCustomField_StringValue: + v, ok := value.(string) + if !ok { + return nil, fmt.Errorf("unexpected value type for custom field: %s %T", id, v) + } + return StringField(id, v), nil + + case *v2.TicketCustomField_StringValues: + v, ok := value.([]string) + if !ok { + return nil, fmt.Errorf("unexpected value type for custom field: %s %T", id, v) + } + return StringsField(id, v), nil + + case *v2.TicketCustomField_BoolValue: + v, ok := value.(bool) + if !ok { + return nil, fmt.Errorf("unexpected value type for custom field: %s %T", id, v) + } + return BoolField(id, v), nil + + case *v2.TicketCustomField_TimestampValue: + v, ok := value.(*timestamppb.Timestamp) + if !ok { + return nil, fmt.Errorf("unexpected value type for custom field: %s %T", id, v) + } + return TimestampField(id, v.AsTime()), nil + + case *v2.TicketCustomField_PickStringValue: + v, ok := value.(string) + if !ok { + return nil, fmt.Errorf("unexpected value type for custom field: %s %T", id, v) + } + return PickStringField(id, v), nil + + case *v2.TicketCustomField_PickMultipleStringValues: + v, ok := value.([]string) + if !ok { + return nil, fmt.Errorf("unexpected value type for custom field: %s %T", id, v) + } + return PickMultipleStringsField(id, v), nil + + case *v2.TicketCustomField_PickObjectValue: + rawBytes, err := json.Marshal(value) + if err != nil { + return nil, err + } + + ov := &v2.TicketCustomFieldObjectValue{} + err = protojson.Unmarshal(rawBytes, ov) + if err != nil { + return nil, err + } + + return PickObjectValueField(id, ov), nil + + case *v2.TicketCustomField_PickMultipleObjectValues: + rawValue, err := json.Marshal(value) + if err != nil { + return nil, err + } + + var vals []interface{} + err = json.Unmarshal(rawValue, &vals) + if err != nil { + return nil, err + } + var ret []*v2.TicketCustomFieldObjectValue + + for _, v := range vals { + rawBytes, err := json.Marshal(v) + if err != nil { + return nil, err + } + + ov := &v2.TicketCustomFieldObjectValue{} + err = protojson.Unmarshal(rawBytes, ov) + if err != nil { + return nil, err + } + + ret = append(ret, ov) + } + + return PickMultipleObjectValuesField(id, ret), nil + + default: + return nil, errors.New("error: unknown custom field type") + } +} + +func GetStringValue(field *v2.TicketCustomField) (string, error) { + if field == nil { + return "", ErrFieldNil + } + v, ok := field.GetValue().(*v2.TicketCustomField_StringValue) + if !ok { + return "", errors.New("error: expected string value") + } + return v.StringValue.Value, nil +} + +func GetStringsValue(field *v2.TicketCustomField) ([]string, error) { + if field == nil { + return nil, ErrFieldNil + } + v, ok := field.GetValue().(*v2.TicketCustomField_StringValues) + if !ok { + return nil, errors.New("error: expected string values") + } + return v.StringValues.Values, nil +} + +func GetBoolValue(field *v2.TicketCustomField) (bool, error) { + if field == nil { + return false, ErrFieldNil + } + v, ok := field.GetValue().(*v2.TicketCustomField_BoolValue) + if !ok { + return false, errors.New("error: expected bool value") + } + return v.BoolValue.Value, nil +} + +func GetTimestampValue(field *v2.TicketCustomField) (time.Time, error) { + if field == nil { + return time.Time{}, ErrFieldNil + } + v, ok := field.GetValue().(*v2.TicketCustomField_TimestampValue) + if !ok { + return time.Time{}, errors.New("error: expected timestamp value") + } + return v.TimestampValue.Value.AsTime(), nil +} + +func GetPickStringValue(field *v2.TicketCustomField) (string, error) { + if field == nil { + return "", ErrFieldNil + } + v, ok := field.GetValue().(*v2.TicketCustomField_PickStringValue) + if !ok { + return "", errors.New("error: expected pick string value") + } + return v.PickStringValue.Value, nil +} + +func GetPickMultipleStringValues(field *v2.TicketCustomField) ([]string, error) { + if field == nil { + return nil, ErrFieldNil + } + v, ok := field.GetValue().(*v2.TicketCustomField_PickMultipleStringValues) + if !ok { + return nil, errors.New("error: expected pick multiple string values") + } + return v.PickMultipleStringValues.Values, nil +} + +func GetPickObjectValue(field *v2.TicketCustomField) (*v2.TicketCustomFieldObjectValue, error) { + if field == nil { + return nil, ErrFieldNil + } + v, ok := field.GetValue().(*v2.TicketCustomField_PickObjectValue) + if !ok { + return nil, errors.New("error: expected pick object value") + } + return v.PickObjectValue.Value, nil +} + +func GetPickMultipleObjectValues(field *v2.TicketCustomField) ([]*v2.TicketCustomFieldObjectValue, error) { + if field == nil { + return nil, ErrFieldNil + } + v, ok := field.GetValue().(*v2.TicketCustomField_PickMultipleObjectValues) + if !ok { + return nil, errors.New("error: expected pick multiple object values") + } + return v.PickMultipleObjectValues.Values, nil +} + +// GetCustomFieldValue returns the interface{} of the value set on a given custom field. +func GetCustomFieldValue(field *v2.TicketCustomField) (interface{}, error) { + if field == nil { + return nil, nil + } + switch v := field.GetValue().(type) { + case *v2.TicketCustomField_StringValue: + return v.StringValue.GetValue(), nil + + case *v2.TicketCustomField_StringValues: + return v.StringValues.GetValues(), nil + + case *v2.TicketCustomField_BoolValue: + return v.BoolValue.GetValue(), nil + + case *v2.TicketCustomField_TimestampValue: + return v.TimestampValue.GetValue(), nil + + case *v2.TicketCustomField_PickStringValue: + return v.PickStringValue.GetValue(), nil + + case *v2.TicketCustomField_PickMultipleStringValues: + return v.PickMultipleStringValues.GetValues(), nil + + case *v2.TicketCustomField_PickObjectValue: + return v.PickObjectValue.GetValue(), nil + + case *v2.TicketCustomField_PickMultipleObjectValues: + return v.PickMultipleObjectValues.GetValues(), nil + + default: + return false, errors.New("error: unknown custom field type") + } +} + +// TODO(lauren) doesn't validate fields on ticket that are not in the schema +// ValidateTicket takes a ticket schema and ensures that the supplied ticket conforms. +func ValidateTicket(ctx context.Context, schema *v2.TicketSchema, ticket *v2.Ticket) (bool, error) { + l := ctxzap.Extract(ctx) + + // Look for a matching status + foundMatch := false + for _, status := range schema.GetStatuses() { + // Status is not required + if ticket.Status == nil { + foundMatch = true + break + } + + if ticket.Status.GetId() == status.GetId() { + foundMatch = true + break + } + } + + if !foundMatch { + l.Debug("error: invalid ticket: could not find status", zap.String("status_id", ticket.Status.GetId())) + return false, nil + } + + // Look for a matching ticket type + foundMatch = false + for _, tType := range schema.GetTypes() { + if ticket.Type == nil { + return false, nil + } + if ticket.Type.GetId() == tType.GetId() { + foundMatch = true + break + } + } + + if !foundMatch { + l.Debug("error: invalid ticket: could not find ticket type", zap.String("ticket_type_id", ticket.Type.GetId())) + return false, nil + } + + schemaCustomFields := schema.GetCustomFields() + ticketCustomFields := ticket.GetCustomFields() + + for id, cf := range schemaCustomFields { + ticketCf, ok := ticketCustomFields[id] + if !ok { + if cf.Required { + l.Debug("error: invalid ticket: missing custom field", zap.String("custom_field_id", cf.Id)) + return false, nil + } else { + // field not present but not required, so skip it + continue + } + } + + switch v := cf.GetValue().(type) { + case *v2.TicketCustomField_StringValue: + tv, tok := ticketCf.GetValue().(*v2.TicketCustomField_StringValue) + if !tok { + l.Debug("error: invalid ticket: expected string value for field", zap.String("custom_field_id", cf.Id), zap.Any("value", tv)) + return false, nil + } + + if cf.Required && tv.StringValue.Value == "" { + l.Debug("error: invalid ticket: string value is required but was empty", zap.String("custom_field_id", cf.Id)) + return false, nil + } + + case *v2.TicketCustomField_StringValues: + tv, tok := ticketCf.GetValue().(*v2.TicketCustomField_StringValues) + if !tok { + l.Debug("error: invalid ticket: expected string values for field", zap.String("custom_field_id", cf.Id), zap.Any("values", tv)) + return false, nil + } + + if cf.Required && len(tv.StringValues.Values) == 0 { + l.Debug("error: invalid ticket: string values is required but was empty", zap.String("custom_field_id", cf.Id)) + return false, nil + } + + case *v2.TicketCustomField_BoolValue: + tv, tok := ticketCf.GetValue().(*v2.TicketCustomField_BoolValue) + if !tok { + l.Debug("error: invalid ticket: expected bool value for field", zap.String("custom_field_id", cf.Id), zap.Any("value", tv)) + return false, nil + } + + case *v2.TicketCustomField_TimestampValue: + tv, tok := ticketCf.GetValue().(*v2.TicketCustomField_TimestampValue) + if !tok { + l.Debug("error: invalid ticket: expected timestamp value for field", zap.String("custom_field_id", cf.Id), zap.Any("value", tv)) + return false, nil + } + + if cf.Required && tv.TimestampValue.Value == nil { + l.Debug("error: invalid ticket: expected timestamp value for field but was empty", zap.String("custom_field_id", cf.Id)) + return false, nil + } + + case *v2.TicketCustomField_PickStringValue: + tv, tok := ticketCf.GetValue().(*v2.TicketCustomField_PickStringValue) + if !tok { + l.Debug("error: invalid ticket: expected string value for field", zap.String("custom_field_id", cf.Id), zap.Any("value", tv)) + return false, nil + } + + ticketValue := tv.PickStringValue.GetValue() + allowedValues := v.PickStringValue.GetAllowedValues() + + if cf.Required && ticketValue == "" { + l.Debug("error: invalid ticket: expected string value for field but was empty", zap.String("custom_field_id", cf.Id)) + return false, nil + } + + if len(allowedValues) == 0 { + l.Debug("error: invalid schema: expected schema to specify at least one allowed value", zap.String("custom_field_id", cf.Id)) + return false, nil + } + + foundMatch = false + for _, m := range allowedValues { + if m == ticketValue { + foundMatch = true + break + } + } + if !foundMatch { + l.Debug( + "error: invalid ticket: expected value from schema", + zap.String("custom_field_id", cf.Id), + zap.String("value", ticketValue), + zap.Strings("allowed_values", allowedValues), + ) + return false, nil + } + + case *v2.TicketCustomField_PickMultipleStringValues: + tv, tok := ticketCf.GetValue().(*v2.TicketCustomField_PickMultipleStringValues) + if !tok { + l.Debug("error: invalid ticket: expected string values for field", zap.String("custom_field_id", cf.Id), zap.Any("values", tv)) + return false, nil + } + + ticketValues := tv.PickMultipleStringValues.GetValues() + allowedValues := v.PickMultipleStringValues.GetAllowedValues() + + if cf.Required && len(ticketValues) == 0 { + l.Debug("error: invalid ticket: string values is required but was empty", zap.String("custom_field_id", cf.Id)) + return false, nil + } + + if len(allowedValues) == 0 { + l.Debug("error: invalid schema: expected schema to specify at least one allowed value", zap.String("custom_field_id", cf.Id)) + return false, nil + } + + foundMatches := 0 + for _, tm := range ticketValues { + for _, m := range allowedValues { + if m == tm { + foundMatches++ + } + } + } + if len(ticketValues) != foundMatches { + l.Debug( + "error: invalid ticket: expected value from schema", + zap.String("custom_field_id", cf.Id), + zap.Strings("values", ticketValues), + zap.Strings("allowed_values", allowedValues), + ) + return false, nil + } + + case *v2.TicketCustomField_PickObjectValue: + tv, tok := ticketCf.GetValue().(*v2.TicketCustomField_PickObjectValue) + if !tok { + l.Debug("error: invalid ticket: expected object value for field", zap.String("custom_field_id", cf.Id), zap.Any("value", tv)) + return false, nil + } + + ticketValue := tv.PickObjectValue.GetValue() + allowedValues := v.PickObjectValue.GetAllowedValues() + + if cf.Required && ticketValue == nil || ticketValue.GetId() == "" { + l.Debug("error: invalid ticket: expected object value for field but was nil", zap.String("custom_field_id", cf.Id)) + return false, nil + } + + if len(allowedValues) == 0 { + l.Debug("error: invalid schema: expected schema to specify at least one allowed value", zap.String("custom_field_id", cf.Id)) + return false, nil + } + + foundMatch = false + for _, m := range allowedValues { + if m.GetId() == ticketValue.GetId() { + foundMatch = true + break + } + } + if !foundMatch { + l.Debug( + "error: invalid ticket: expected value from schema", + zap.String("custom_field_id", cf.Id), + zap.String("value_id", ticketValue.GetId()), + zap.Any("allowed_values", allowedValues), + ) + return false, nil + } + + case *v2.TicketCustomField_PickMultipleObjectValues: + tv, tok := ticketCf.GetValue().(*v2.TicketCustomField_PickMultipleObjectValues) + if !tok { + l.Debug("error: invalid ticket: expected object values for field", zap.String("custom_field_id", cf.Id), zap.Any("values", tv)) + return false, nil + } + + ticketValues := tv.PickMultipleObjectValues.GetValues() + allowedValues := v.PickMultipleObjectValues.GetAllowedValues() + + if cf.Required && len(ticketValues) == 0 { + l.Debug("error: invalid ticket: object values is required but was empty", zap.String("custom_field_id", cf.Id)) + return false, nil + } + + if len(allowedValues) == 0 { + l.Debug("error: invalid schema: expected schema to specify at least one allowed value", zap.String("custom_field_id", cf.Id)) + return false, nil + } + + foundMatches := 0 + for _, tm := range ticketValues { + for _, m := range allowedValues { + if m.GetId() == tm.GetId() { + foundMatches++ + } + } + } + if len(ticketValues) != foundMatches { + l.Debug( + "error: invalid ticket: expected value from schema", + zap.String("custom_field_id", cf.Id), + zap.Any("values", ticketValues), + zap.Any("allowed_values", allowedValues), + ) + return false, nil + } + + default: + l.Debug("error: invalid schema: unknown custom field type", zap.Any("custom_field_type", v)) + return false, errors.New("error: invalid schema: unknown custom field type") + } + } + + return true, nil +} + +func StringFieldSchema(id, displayName string, required bool) *v2.TicketCustomField { + return &v2.TicketCustomField{ + Id: id, + DisplayName: displayName, + Required: required, + Value: &v2.TicketCustomField_StringValue{ + StringValue: &v2.TicketCustomFieldStringValue{}, + }, + } +} + +func StringField(id, value string) *v2.TicketCustomField { + return &v2.TicketCustomField{ + Id: id, + Value: &v2.TicketCustomField_StringValue{ + StringValue: &v2.TicketCustomFieldStringValue{ + Value: value, + }, + }, + } +} + +func StringsFieldSchema(id, displayName string, required bool) *v2.TicketCustomField { + return &v2.TicketCustomField{ + Id: id, + DisplayName: displayName, + Required: required, + Value: &v2.TicketCustomField_StringValues{ + StringValues: &v2.TicketCustomFieldStringValues{}, + }, + } +} + +func StringsField(id string, values []string) *v2.TicketCustomField { + return &v2.TicketCustomField{ + Id: id, + Value: &v2.TicketCustomField_StringValues{ + StringValues: &v2.TicketCustomFieldStringValues{ + Values: values, + }, + }, + } +} + +func BoolFieldSchema(id, displayName string, required bool) *v2.TicketCustomField { + return &v2.TicketCustomField{ + Id: id, + DisplayName: displayName, + Required: required, + Value: &v2.TicketCustomField_BoolValue{ + BoolValue: &v2.TicketCustomFieldBoolValue{}, + }, + } +} + +func BoolField(id string, value bool) *v2.TicketCustomField { + return &v2.TicketCustomField{ + Id: id, + Value: &v2.TicketCustomField_BoolValue{ + BoolValue: &v2.TicketCustomFieldBoolValue{ + Value: value, + }, + }, + } +} + +func TimestampFieldSchema(id, displayName string, required bool) *v2.TicketCustomField { + return &v2.TicketCustomField{ + Id: id, + DisplayName: displayName, + Required: required, + Value: &v2.TicketCustomField_TimestampValue{ + TimestampValue: &v2.TicketCustomFieldTimestampValue{}, + }, + } +} + +func TimestampField(id string, value time.Time) *v2.TicketCustomField { + return &v2.TicketCustomField{ + Id: id, + Value: &v2.TicketCustomField_TimestampValue{ + TimestampValue: &v2.TicketCustomFieldTimestampValue{ + Value: timestamppb.New(value), + }, + }, + } +} + +func PickStringFieldSchema(id, displayName string, required bool, allowedValues []string) *v2.TicketCustomField { + return &v2.TicketCustomField{ + Id: id, + DisplayName: displayName, + Required: required, + Value: &v2.TicketCustomField_PickStringValue{ + PickStringValue: &v2.TicketCustomFieldPickStringValue{ + AllowedValues: allowedValues, + }, + }, + } +} + +func PickStringField(id string, value string) *v2.TicketCustomField { + return &v2.TicketCustomField{ + Id: id, + Value: &v2.TicketCustomField_PickStringValue{ + PickStringValue: &v2.TicketCustomFieldPickStringValue{ + Value: value, + }, + }, + } +} + +func PickMultipleStringsFieldSchema(id, displayName string, required bool, allowedValues []string) *v2.TicketCustomField { + return &v2.TicketCustomField{ + Id: id, + DisplayName: displayName, + Required: required, + Value: &v2.TicketCustomField_PickMultipleStringValues{ + PickMultipleStringValues: &v2.TicketCustomFieldPickMultipleStringValues{ + AllowedValues: allowedValues, + }, + }, + } +} + +func PickMultipleStringsField(id string, values []string) *v2.TicketCustomField { + return &v2.TicketCustomField{ + Id: id, + Value: &v2.TicketCustomField_PickMultipleStringValues{ + PickMultipleStringValues: &v2.TicketCustomFieldPickMultipleStringValues{ + Values: values, + }, + }, + } +} + +func PickObjectValueFieldSchema(id, displayName string, required bool, allowedValues []*v2.TicketCustomFieldObjectValue) *v2.TicketCustomField { + return &v2.TicketCustomField{ + Id: id, + DisplayName: displayName, + Required: required, + Value: &v2.TicketCustomField_PickObjectValue{ + PickObjectValue: &v2.TicketCustomFieldPickObjectValue{ + AllowedValues: allowedValues, + }, + }, + } +} + +func PickObjectValueField(id string, value *v2.TicketCustomFieldObjectValue) *v2.TicketCustomField { + return &v2.TicketCustomField{ + Id: id, + Value: &v2.TicketCustomField_PickObjectValue{ + PickObjectValue: &v2.TicketCustomFieldPickObjectValue{ + Value: value, + }, + }, + } +} + +func PickMultipleObjectValuesFieldSchema(id, displayName string, required bool, allowedValues []*v2.TicketCustomFieldObjectValue) *v2.TicketCustomField { + return &v2.TicketCustomField{ + Id: id, + DisplayName: displayName, + Required: required, + Value: &v2.TicketCustomField_PickMultipleObjectValues{ + PickMultipleObjectValues: &v2.TicketCustomFieldPickMultipleObjectValues{ + AllowedValues: allowedValues, + }, + }, + } +} + +func PickMultipleObjectValuesField(id string, values []*v2.TicketCustomFieldObjectValue) *v2.TicketCustomField { + return &v2.TicketCustomField{ + Id: id, + Value: &v2.TicketCustomField_PickMultipleObjectValues{ + PickMultipleObjectValues: &v2.TicketCustomFieldPickMultipleObjectValues{ + Values: values, + }, + }, + } +} diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/types/types.go b/vendor/github.com/conductorone/baton-sdk/pkg/types/types.go index 1c6708d2..1803d2ff 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/types/types.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/types/types.go @@ -20,6 +20,7 @@ type ConnectorServer interface { connectorV2.AccountManagerServiceServer connectorV2.CredentialManagerServiceServer connectorV2.EventServiceServer + connectorV2.TicketsServiceServer } // ConnectorClient is an interface for a type that implements all ConnectorV2 services. @@ -35,6 +36,7 @@ type ConnectorClient interface { connectorV2.AccountManagerServiceClient connectorV2.CredentialManagerServiceClient connectorV2.EventServiceClient + connectorV2.TicketsServiceClient } // ClientWrapper is an interface that returns a connector client. diff --git a/vendor/github.com/sagikazarmark/locafero/.envrc b/vendor/github.com/sagikazarmark/locafero/.envrc index 3ce7171a..2e0f9f5f 100644 --- a/vendor/github.com/sagikazarmark/locafero/.envrc +++ b/vendor/github.com/sagikazarmark/locafero/.envrc @@ -1,4 +1,4 @@ -if ! has nix_direnv_version || ! nix_direnv_version 2.3.0; then - source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.3.0/direnvrc" "sha256-Dmd+j63L84wuzgyjITIfSxSD57Tx7v51DMxVZOsiUD8=" +if ! has nix_direnv_version || ! nix_direnv_version 3.0.4; then + source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.4/direnvrc" "sha256-DzlYZ33mWF/Gs8DDeyjr8mnVmQGx7ASYqA5WlxwvBG4=" fi use flake . --impure diff --git a/vendor/github.com/sagikazarmark/locafero/finder.go b/vendor/github.com/sagikazarmark/locafero/finder.go index 754c8b26..ef8d5471 100644 --- a/vendor/github.com/sagikazarmark/locafero/finder.go +++ b/vendor/github.com/sagikazarmark/locafero/finder.go @@ -27,7 +27,7 @@ type Finder struct { // It provides the capability to search for entries with depth, // meaning it can target deeper locations within the directory structure. // - // It also supports glob syntax (as defined by [filepat.Match]), offering greater flexibility in search patterns. + // It also supports glob syntax (as defined by [filepath.Match]), offering greater flexibility in search patterns. // // Examples: // - config.yaml @@ -63,7 +63,7 @@ func (f Finder) Find(fsys afero.Fs) ([]string, error) { // pool.Go(func() ([]string, error) { // // If the name contains any glob character, perform a glob match - // if strings.ContainsAny(searchName, "*?[]\\^") { + // if strings.ContainsAny(searchName, globMatch) { // return globWalkSearch(fsys, searchPath, searchName, f.Type) // } // @@ -79,7 +79,7 @@ func (f Finder) Find(fsys afero.Fs) ([]string, error) { allResults, err := iter.MapErr(searchItems, func(item *searchItem) ([]string, error) { // If the name contains any glob character, perform a glob match - if strings.ContainsAny(item.name, "*?[]\\^") { + if strings.ContainsAny(item.name, globMatch) { return globWalkSearch(fsys, item.path, item.name, f.Type) } diff --git a/vendor/github.com/sagikazarmark/locafero/flake.lock b/vendor/github.com/sagikazarmark/locafero/flake.lock index 46d28f80..4bea8154 100644 --- a/vendor/github.com/sagikazarmark/locafero/flake.lock +++ b/vendor/github.com/sagikazarmark/locafero/flake.lock @@ -1,22 +1,84 @@ { "nodes": { + "cachix": { + "inputs": { + "devenv": "devenv_2", + "flake-compat": [ + "devenv", + "flake-compat" + ], + "nixpkgs": [ + "devenv", + "nixpkgs" + ], + "pre-commit-hooks": [ + "devenv", + "pre-commit-hooks" + ] + }, + "locked": { + "lastModified": 1712055811, + "narHash": "sha256-7FcfMm5A/f02yyzuavJe06zLa9hcMHsagE28ADcmQvk=", + "owner": "cachix", + "repo": "cachix", + "rev": "02e38da89851ec7fec3356a5c04bc8349cae0e30", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "cachix", + "type": "github" + } + }, "devenv": { "inputs": { - "flake-compat": "flake-compat", + "cachix": "cachix", + "flake-compat": "flake-compat_2", + "nix": "nix_2", + "nixpkgs": "nixpkgs_2", + "pre-commit-hooks": "pre-commit-hooks" + }, + "locked": { + "lastModified": 1717245169, + "narHash": "sha256-+mW3rTBjGU8p1THJN0lX/Dd/8FbnF+3dB+mJuSaxewE=", + "owner": "cachix", + "repo": "devenv", + "rev": "c3f9f053c077c6f88a3de5276d9178c62baa3fc3", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "devenv_2": { + "inputs": { + "flake-compat": [ + "devenv", + "cachix", + "flake-compat" + ], "nix": "nix", "nixpkgs": "nixpkgs", - "pre-commit-hooks": "pre-commit-hooks" + "poetry2nix": "poetry2nix", + "pre-commit-hooks": [ + "devenv", + "cachix", + "pre-commit-hooks" + ] }, "locked": { - "lastModified": 1694097209, - "narHash": "sha256-gQmBjjxeSyySjbh0yQVBKApo2KWIFqqbRUvG+Fa+QpM=", + "lastModified": 1708704632, + "narHash": "sha256-w+dOIW60FKMaHI1q5714CSibk99JfYxm0CzTinYWr+Q=", "owner": "cachix", "repo": "devenv", - "rev": "7a8e6a91510efe89d8dcb8e43233f93e86f6b189", + "rev": "2ee4450b0f4b95a1b90f2eb5ffea98b90e48c196", "type": "github" }, "original": { "owner": "cachix", + "ref": "python-rewrite", "repo": "devenv", "type": "github" } @@ -37,16 +99,32 @@ "type": "github" } }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1693611461, - "narHash": "sha256-aPODl8vAgGQ0ZYFIRisxYG5MOGSkIczvu2Cd8Gb9+1Y=", + "lastModified": 1717285511, + "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "7f53fdb7bdc5bb237da7fefef12d099e4fd611ca", + "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", "type": "github" }, "original": { @@ -60,11 +138,29 @@ "systems": "systems" }, "locked": { - "lastModified": 1685518550, - "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "lastModified": 1689068808, + "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -82,11 +178,11 @@ ] }, "locked": { - "lastModified": 1660459072, - "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", "owner": "hercules-ci", "repo": "gitignore.nix", - "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", "type": "github" }, "original": { @@ -95,53 +191,90 @@ "type": "github" } }, - "lowdown-src": { - "flake": false, + "nix": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": [ + "devenv", + "cachix", + "devenv", + "nixpkgs" + ], + "nixpkgs-regression": "nixpkgs-regression" + }, "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1712911606, + "narHash": "sha256-BGvBhepCufsjcUkXnEEXhEVjwdJAwPglCC2+bInc794=", + "owner": "domenkozar", + "repo": "nix", + "rev": "b24a9318ea3f3600c1e24b4a00691ee912d4de12", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "domenkozar", + "ref": "devenv-2.21", + "repo": "nix", "type": "github" } }, - "nix": { + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "devenv", + "cachix", + "devenv", + "poetry2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1688870561, + "narHash": "sha256-4UYkifnPEw1nAzqqPOTL2MvWtm3sNGw1UTYTalkTcGY=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "165b1650b753316aa7f1787f3005a8d2da0f5301", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, + "nix_2": { "inputs": { - "lowdown-src": "lowdown-src", + "flake-compat": [ + "devenv", + "flake-compat" + ], "nixpkgs": [ "devenv", "nixpkgs" ], - "nixpkgs-regression": "nixpkgs-regression" + "nixpkgs-regression": "nixpkgs-regression_2" }, "locked": { - "lastModified": 1676545802, - "narHash": "sha256-EK4rZ+Hd5hsvXnzSzk2ikhStJnD63odF7SzsQ8CuSPU=", + "lastModified": 1712911606, + "narHash": "sha256-BGvBhepCufsjcUkXnEEXhEVjwdJAwPglCC2+bInc794=", "owner": "domenkozar", "repo": "nix", - "rev": "7c91803598ffbcfe4a55c44ac6d49b2cf07a527f", + "rev": "b24a9318ea3f3600c1e24b4a00691ee912d4de12", "type": "github" }, "original": { "owner": "domenkozar", - "ref": "relaxed-flakes", + "ref": "devenv-2.21", "repo": "nix", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1678875422, - "narHash": "sha256-T3o6NcQPwXjxJMn2shz86Chch4ljXgZn746c2caGxd8=", + "lastModified": 1692808169, + "narHash": "sha256-x9Opq06rIiwdwGeK2Ykj69dNc2IvUH1fY55Wm7atwrE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "126f49a01de5b7e35a43fd43f891ecf6d3a51459", + "rev": "9201b5ff357e781bf014d0330d18555695df7ba8", "type": "github" }, "original": { @@ -153,23 +286,33 @@ }, "nixpkgs-lib": { "locked": { - "dir": "lib", - "lastModified": 1693471703, - "narHash": "sha256-0l03ZBL8P1P6z8MaSDS/MvuU8E75rVxe5eE1N6gxeTo=", + "lastModified": 1717284937, + "narHash": "sha256-lIbdfCsf8LMFloheeE6N31+BMIeixqyQWbSr2vk79EQ=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" + } + }, + "nixpkgs-regression": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3e52e76b70d5508f3cec70b882a29199f4d1ee85", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "dir": "lib", "owner": "NixOS", - "ref": "nixos-unstable", "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixpkgs-regression": { + "nixpkgs-regression_2": { "locked": { "lastModified": 1643052045, "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", @@ -187,27 +330,43 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1685801374, - "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=", + "lastModified": 1710695816, + "narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c37ca420157f4abc31e26f436c1145f8951ff373", + "rev": "614b4613980a522ba49f0d194531beddbb7220d3", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-23.05", + "ref": "nixos-23.11", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1694343207, - "narHash": "sha256-jWi7OwFxU5Owi4k2JmiL1sa/OuBCQtpaAesuj5LXC8w=", + "lastModified": 1713361204, + "narHash": "sha256-TA6EDunWTkc5FvDCqU3W2T3SFn0gRZqh6D/hJnM02MM=", + "owner": "cachix", + "repo": "devenv-nixpkgs", + "rev": "285676e87ad9f0ca23d8714a6ab61e7e027020c6", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "rolling", + "repo": "devenv-nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1717112898, + "narHash": "sha256-7R2ZvOnvd9h8fDd65p0JnB7wXfUvreox3xFdYWd1BnY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "78058d810644f5ed276804ce7ea9e82d92bee293", + "rev": "6132b0f6e344ce2fe34fc051b72fb46e34f668e0", "type": "github" }, "original": { @@ -217,13 +376,38 @@ "type": "github" } }, + "poetry2nix": { + "inputs": { + "flake-utils": "flake-utils", + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "devenv", + "cachix", + "devenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1692876271, + "narHash": "sha256-IXfZEkI0Mal5y1jr6IRWMqK8GW2/f28xJenZIPQqkY0=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "d5006be9c2c2417dafb2e2e5034d83fabd207ee3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "poetry2nix", + "type": "github" + } + }, "pre-commit-hooks": { "inputs": { "flake-compat": [ "devenv", "flake-compat" ], - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_2", "gitignore": "gitignore", "nixpkgs": [ "devenv", @@ -232,11 +416,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1688056373, - "narHash": "sha256-2+SDlNRTKsgo3LBRiMUcoEUb6sDViRNQhzJquZ4koOI=", + "lastModified": 1713775815, + "narHash": "sha256-Wu9cdYTnGQQwtT20QQMg7jzkANKQjwBD9iccfGKkfls=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "5843cf069272d92b60c3ed9e55b7a8989c01d4c7", + "rev": "2ac4dcbf55ed43f3be0bae15e181f08a57af24a4", "type": "github" }, "original": { @@ -249,7 +433,7 @@ "inputs": { "devenv": "devenv", "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_3" } }, "systems": { @@ -266,6 +450,21 @@ "repo": "default", "type": "github" } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/vendor/github.com/sagikazarmark/locafero/flake.nix b/vendor/github.com/sagikazarmark/locafero/flake.nix index 209ecf28..cddf1d40 100644 --- a/vendor/github.com/sagikazarmark/locafero/flake.nix +++ b/vendor/github.com/sagikazarmark/locafero/flake.nix @@ -34,11 +34,11 @@ ci = devenv.shells.default; - ci_1_20 = { + ci_1_21 = { imports = [ devenv.shells.ci ]; languages = { - go.package = pkgs.go_1_20; + go.package = pkgs.go_1_21; }; }; }; diff --git a/vendor/github.com/sagikazarmark/locafero/glob.go b/vendor/github.com/sagikazarmark/locafero/glob.go new file mode 100644 index 00000000..00f833e9 --- /dev/null +++ b/vendor/github.com/sagikazarmark/locafero/glob.go @@ -0,0 +1,5 @@ +//go:build !windows + +package locafero + +const globMatch = "*?[]\\^" diff --git a/vendor/github.com/sagikazarmark/locafero/glob_windows.go b/vendor/github.com/sagikazarmark/locafero/glob_windows.go new file mode 100644 index 00000000..7aec2b24 --- /dev/null +++ b/vendor/github.com/sagikazarmark/locafero/glob_windows.go @@ -0,0 +1,8 @@ +//go:build windows + +package locafero + +// See [filepath.Match]: +// +// On Windows, escaping is disabled. Instead, '\\' is treated as path separator. +const globMatch = "*?[]^" diff --git a/vendor/github.com/shirou/gopsutil/v3/cpu/cpu_aix_nocgo.go b/vendor/github.com/shirou/gopsutil/v3/cpu/cpu_aix_nocgo.go index a77b4dbb..f3a3186a 100644 --- a/vendor/github.com/shirou/gopsutil/v3/cpu/cpu_aix_nocgo.go +++ b/vendor/github.com/shirou/gopsutil/v3/cpu/cpu_aix_nocgo.go @@ -12,8 +12,57 @@ import ( ) func TimesWithContext(ctx context.Context, percpu bool) ([]TimesStat, error) { + var ret []TimesStat if percpu { - return []TimesStat{}, common.ErrNotImplementedError + per_out, err := invoke.CommandWithContext(ctx, "sar", "-u", "-P", "ALL", "10", "1") + if err != nil { + return nil, err + } + lines := strings.Split(string(per_out), "\n") + if len(lines) < 6 { + return []TimesStat{}, common.ErrNotImplementedError + } + + hp := strings.Fields(lines[5]) // headers + for l := 6; l < len(lines)-1; l++ { + ct := &TimesStat{} + v := strings.Fields(lines[l]) // values + for i, header := range hp { + // We're done in any of these use cases + if i >= len(v) || v[0] == "-" { + break + } + + // Position variable for v + pos := i + // There is a missing field at the beginning of all but the first line + // so adjust the position + if l > 6 { + pos = i - 1 + } + // We don't want invalid positions + if pos < 0 { + continue + } + + if t, err := strconv.ParseFloat(v[pos], 64); err == nil { + switch header { + case `cpu`: + ct.CPU = strconv.FormatFloat(t, 'f', -1, 64) + case `%usr`: + ct.User = t + case `%sys`: + ct.System = t + case `%wio`: + ct.Iowait = t + case `%idle`: + ct.Idle = t + } + } + } + // Valid CPU data, so append it + ret = append(ret, *ct) + } } else { out, err := invoke.CommandWithContext(ctx, "sar", "-u", "10", "1") if err != nil { @@ -24,26 +73,28 @@ func TimesWithContext(ctx context.Context, percpu bool) ([]TimesStat, error) { return []TimesStat{}, common.ErrNotImplementedError } - ret := TimesStat{CPU: "cpu-total"} + ct := &TimesStat{CPU: "cpu-total"} h := strings.Fields(lines[len(lines)-3]) // headers v := strings.Fields(lines[len(lines)-2]) // values for i, header := range h { if t, err := strconv.ParseFloat(v[i], 64); err == nil { switch header { case `%usr`: - ret.User = t + ct.User = t case `%sys`: - ret.System = t + ct.System = t case `%wio`: - ret.Iowait = t + ct.Iowait = t case `%idle`: - ret.Idle = t + ct.Idle = t } } } - return []TimesStat{ret}, nil + ret = append(ret, *ct) } + + return ret, nil } func InfoWithContext(ctx context.Context) ([]InfoStat, error) { @@ -78,6 +129,20 @@ func InfoWithContext(ctx context.Context) ([]InfoStat, error) { } } break + } else if strings.HasPrefix(line, "System Model:") { + p := strings.Split(string(line), ":") + if p != nil { + ret.VendorID = strings.TrimSpace(p[1]) + } + } else if strings.HasPrefix(line, "Processor Type:") { + p := strings.Split(string(line), ":") + if p != nil { + c := strings.Split(string(p[1]), "_") + if c != nil { + ret.Family = strings.TrimSpace(c[0]) + ret.Model = strings.TrimSpace(c[1]) + } + } } } return []InfoStat{ret}, nil diff --git a/vendor/github.com/shirou/gopsutil/v3/host/host_aix.go b/vendor/github.com/shirou/gopsutil/v3/host/host_aix.go new file mode 100644 index 00000000..d06899ea --- /dev/null +++ b/vendor/github.com/shirou/gopsutil/v3/host/host_aix.go @@ -0,0 +1,202 @@ +//go:build aix +// +build aix + +package host + +import ( + "context" + "errors" + "strconv" + "strings" + + "github.com/shirou/gopsutil/v3/internal/common" +) + +// from https://www.ibm.com/docs/en/aix/7.2?topic=files-utmph-file +const ( + user_PROCESS = 7 + + hostTemperatureScale = 1000.0 // Not part of the linked file, but kept just in case it becomes relevant +) + +func HostIDWithContext(ctx context.Context) (string, error) { + out, err := invoke.CommandWithContext(ctx, "uname", "-u") + if err != nil { + return "", err + } + + // The command always returns an extra newline, so we make use of Split() to get only the first line + return strings.Split(string(out[:]), "\n")[0], nil +} + +func numProcs(ctx context.Context) (uint64, error) { + return 0, common.ErrNotImplementedError +} + +func BootTimeWithContext(ctx context.Context) (btime uint64, err error) { + ut, err := UptimeWithContext(ctx) + if err != nil { + return 0, err + } + + if ut <= 0 { + return 0, errors.New("Uptime was not set, so cannot calculate boot time from it.") + } + + ut = ut * 60 + return timeSince(ut), nil +} + +// This function takes multiple formats of output frmo the uptime +// command and converts the data into minutes. +// Some examples of uptime output that this command handles: +// 11:54AM up 13 mins, 1 user, load average: 2.78, 2.62, 1.79 +// 12:41PM up 1 hr, 1 user, load average: 2.47, 2.85, 2.83 +// 07:43PM up 5 hrs, 1 user, load average: 3.27, 2.91, 2.72 +// 11:18:23 up 83 days, 18:29, 4 users, load average: 0.16, 0.03, 0.01 +func UptimeWithContext(ctx context.Context) (uint64, error) { + out, err := invoke.CommandWithContext(ctx, "uptime") + if err != nil { + return 0, err + } + + // Convert our uptime to a series of fields we can extract + ut := strings.Fields(string(out[:])) + + // Convert the second field value to integer + var days uint64 = 0 + var hours uint64 = 0 + var minutes uint64 = 0 + if ut[3] == "days," { + days, err = strconv.ParseUint(ut[2], 10, 64) + if err != nil { + return 0, err + } + + // Split field 4 into hours and minutes + hm := strings.Split(ut[4], ":") + hours, err = strconv.ParseUint(hm[0], 10, 64) + if err != nil { + return 0, err + } + minutes, err = strconv.ParseUint(strings.Replace(hm[1], ",", "", -1), 10, 64) + if err != nil { + return 0, err + } + } else if ut[3] == "hr," || ut[3] == "hrs," { + hours, err = strconv.ParseUint(ut[2], 10, 64) + if err != nil { + return 0, err + } + } else if ut[3] == "mins," { + minutes, err = strconv.ParseUint(ut[2], 10, 64) + if err != nil { + return 0, err + } + } else if _, err := strconv.ParseInt(ut[3], 10, 64); err == nil && strings.Contains(ut[2], ":") { + // Split field 2 into hours and minutes + hm := strings.Split(ut[2], ":") + hours, err = strconv.ParseUint(hm[0], 10, 64) + if err != nil { + return 0, err + } + minutes, err = strconv.ParseUint(strings.Replace(hm[1], ",", "", -1), 10, 64) + if err != nil { + return 0, err + } + } + + // Stack them all together as minutes + total_time := (days * 24 * 60) + (hours * 60) + minutes + + return total_time, nil +} + +// This is a weak implementation due to the limitations on retrieving this data in AIX +func UsersWithContext(ctx context.Context) ([]UserStat, error) { + var ret []UserStat + out, err := invoke.CommandWithContext(ctx, "w") + if err != nil { + return nil, err + } + lines := strings.Split(string(out), "\n") + if len(lines) < 3 { + return []UserStat{}, common.ErrNotImplementedError + } + + hf := strings.Fields(lines[1]) // headers + for l := 2; l < len(lines); l++ { + v := strings.Fields(lines[l]) // values + us := &UserStat{} + for i, header := range hf { + // We're done in any of these use cases + if i >= len(v) || v[0] == "-" { + break + } + + if t, err := strconv.ParseFloat(v[i], 64); err == nil { + switch header { + case `User`: + us.User = strconv.FormatFloat(t, 'f', 1, 64) + case `tty`: + us.Terminal = strconv.FormatFloat(t, 'f', 1, 64) + } + } + } + + // Valid User data, so append it + ret = append(ret, *us) + } + + return ret, nil +} + +// Much of this function could be static. However, to be future proofed, I've made it call the OS for the information in all instances. +func PlatformInformationWithContext(ctx context.Context) (platform string, family string, version string, err error) { + // Set the platform (which should always, and only be, "AIX") from `uname -s` + out, err := invoke.CommandWithContext(ctx, "uname", "-s") + if err != nil { + return "", "", "", err + } + platform = strings.TrimRight(string(out[:]), "\n") + + // Set the family + family = strings.TrimRight(string(out[:]), "\n") + + // Set the version + out, err = invoke.CommandWithContext(ctx, "oslevel") + if err != nil { + return "", "", "", err + } + version = strings.TrimRight(string(out[:]), "\n") + + return platform, family, version, nil +} + +func KernelVersionWithContext(ctx context.Context) (version string, err error) { + out, err := invoke.CommandWithContext(ctx, "oslevel", "-s") + if err != nil { + return "", err + } + version = strings.TrimRight(string(out[:]), "\n") + + return version, nil +} + +func KernelArch() (arch string, err error) { + out, err := invoke.Command("bootinfo", "-y") + if err != nil { + return "", err + } + arch = strings.TrimRight(string(out[:]), "\n") + + return arch, nil +} + +func VirtualizationWithContext(ctx context.Context) (string, string, error) { + return "", "", common.ErrNotImplementedError +} + +func SensorsTemperaturesWithContext(ctx context.Context) ([]TemperatureStat, error) { + return nil, common.ErrNotImplementedError +} diff --git a/vendor/github.com/shirou/gopsutil/v3/host/host_aix_ppc64.go b/vendor/github.com/shirou/gopsutil/v3/host/host_aix_ppc64.go new file mode 100644 index 00000000..de9674b7 --- /dev/null +++ b/vendor/github.com/shirou/gopsutil/v3/host/host_aix_ppc64.go @@ -0,0 +1,48 @@ +//go:build aix && ppc64 && cgo +// +build aix,ppc64,cgo + +// Guessed at from the following document: +// https://www.ibm.com/docs/sl/ibm-mq/9.2?topic=platforms-standard-data-types-aix-linux-windows + +package host + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 + sizeOfUtmp = 0x180 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type utmp struct { + Type int16 + Pad_cgo_0 [2]byte + Pid int32 + Line [32]int8 + Id [4]int8 + User [32]int8 + Host [256]int8 + Exit exit_status + Session int32 + Tv timeval + Addr_v6 [4]int32 + X__glibc_reserved [20]int8 +} + +type exit_status struct { + Termination int16 + Exit int16 +} + +type timeval struct { + Sec int64 + Usec int64 +} diff --git a/vendor/github.com/shirou/gopsutil/v3/host/host_fallback.go b/vendor/github.com/shirou/gopsutil/v3/host/host_fallback.go index a393ca15..150ccf00 100644 --- a/vendor/github.com/shirou/gopsutil/v3/host/host_fallback.go +++ b/vendor/github.com/shirou/gopsutil/v3/host/host_fallback.go @@ -1,5 +1,5 @@ -//go:build !darwin && !linux && !freebsd && !openbsd && !netbsd && !solaris && !windows -// +build !darwin,!linux,!freebsd,!openbsd,!netbsd,!solaris,!windows +//go:build !darwin && !linux && !freebsd && !openbsd && !netbsd && !solaris && !windows && !aix +// +build !darwin,!linux,!freebsd,!openbsd,!netbsd,!solaris,!windows,!aix package host diff --git a/vendor/github.com/shirou/gopsutil/v3/mem/mem_aix_nocgo.go b/vendor/github.com/shirou/gopsutil/v3/mem/mem_aix_nocgo.go index cc6a76d2..027879d9 100644 --- a/vendor/github.com/shirou/gopsutil/v3/mem/mem_aix_nocgo.go +++ b/vendor/github.com/shirou/gopsutil/v3/mem/mem_aix_nocgo.go @@ -12,7 +12,7 @@ import ( ) func VirtualMemoryWithContext(ctx context.Context) (*VirtualMemoryStat, error) { - vmem, swap, err := callSVMon(ctx) + vmem, swap, err := callSVMon(ctx, true) if err != nil { return nil, err } @@ -25,7 +25,7 @@ func VirtualMemoryWithContext(ctx context.Context) (*VirtualMemoryStat, error) { } func SwapMemoryWithContext(ctx context.Context) (*SwapMemoryStat, error) { - _, swap, err := callSVMon(ctx) + _, swap, err := callSVMon(ctx, false) if err != nil { return nil, err } @@ -35,7 +35,7 @@ func SwapMemoryWithContext(ctx context.Context) (*SwapMemoryStat, error) { return swap, nil } -func callSVMon(ctx context.Context) (*VirtualMemoryStat, *SwapMemoryStat, error) { +func callSVMon(ctx context.Context, virt bool) (*VirtualMemoryStat, *SwapMemoryStat, error) { out, err := invoke.CommandWithContext(ctx, "svmon", "-G") if err != nil { return nil, nil, err @@ -45,7 +45,7 @@ func callSVMon(ctx context.Context) (*VirtualMemoryStat, *SwapMemoryStat, error) vmem := &VirtualMemoryStat{} swap := &SwapMemoryStat{} for _, line := range strings.Split(string(out), "\n") { - if strings.HasPrefix(line, "memory") { + if virt && strings.HasPrefix(line, "memory") { p := strings.Fields(line) if len(p) > 2 { if t, err := strconv.ParseUint(p[1], 10, 64); err == nil { diff --git a/vendor/github.com/shirou/gopsutil/v3/process/process_darwin_nocgo.go b/vendor/github.com/shirou/gopsutil/v3/process/process_darwin_nocgo.go index bc1d357d..d903474f 100644 --- a/vendor/github.com/shirou/gopsutil/v3/process/process_darwin_nocgo.go +++ b/vendor/github.com/shirou/gopsutil/v3/process/process_darwin_nocgo.go @@ -24,14 +24,21 @@ func (p *Process) ExeWithContext(ctx context.Context) (string, error) { } txtFound := 0 lines := strings.Split(string(out), "\n") + fallback := "" for i := 1; i < len(lines); i++ { if lines[i] == "ftxt" { txtFound++ + if txtFound == 1 { + fallback = lines[i-1][1:] + } if txtFound == 2 { return lines[i-1][1:], nil } } } + if fallback != "" { + return fallback, nil + } return "", fmt.Errorf("missing txt data returned by lsof") } diff --git a/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd.go b/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd.go index a58c5eb1..35869406 100644 --- a/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd.go +++ b/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd.go @@ -68,7 +68,12 @@ func (p *Process) NameWithContext(ctx context.Context) (string, error) { } func (p *Process) CwdWithContext(ctx context.Context) (string, error) { - return "", common.ErrNotImplementedError + mib := []int32{CTLKern, KernProcCwd, p.Pid} + buf, _, err := common.CallSyscall(mib) + if err != nil { + return "", err + } + return common.ByteToString(buf), nil } func (p *Process) ExeWithContext(ctx context.Context) (string, error) { diff --git a/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_386.go b/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_386.go index f4ed0249..6e9edc20 100644 --- a/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_386.go +++ b/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_386.go @@ -14,6 +14,7 @@ const ( KernProcProc = 8 KernProcPathname = 12 KernProcArgs = 55 + KernProcCwd = 78 KernProcArgv = 1 KernProcEnv = 3 ) diff --git a/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_amd64.go b/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_amd64.go index 8607422b..a46d28af 100644 --- a/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_amd64.go +++ b/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_amd64.go @@ -11,6 +11,7 @@ const ( KernProcProc = 8 KernProcPathname = 12 KernProcArgs = 55 + KernProcCwd = 78 KernProcArgv = 1 KernProcEnv = 3 ) diff --git a/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_arm.go b/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_arm.go index b94429f2..68ea3c8f 100644 --- a/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_arm.go +++ b/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_arm.go @@ -14,6 +14,7 @@ const ( KernProcProc = 8 KernProcPathname = 12 KernProcArgs = 55 + KernProcCwd = 78 KernProcArgv = 1 KernProcEnv = 3 ) diff --git a/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_arm64.go b/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_arm64.go index a3291b8c..fa620ff6 100644 --- a/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_arm64.go +++ b/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_arm64.go @@ -14,6 +14,7 @@ const ( KernProcProc = 8 KernProcPathname = 12 KernProcArgs = 55 + KernProcCwd = 78 KernProcArgv = 1 KernProcEnv = 3 ) diff --git a/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_riscv64.go b/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_riscv64.go index 076f095e..b677e70a 100644 --- a/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_riscv64.go +++ b/vendor/github.com/shirou/gopsutil/v3/process/process_openbsd_riscv64.go @@ -14,6 +14,7 @@ const ( KernProcProc = 8 KernProcPathname = 12 KernProcArgs = 55 + KernProcCwd = 78 KernProcArgv = 1 KernProcEnv = 3 ) diff --git a/vendor/github.com/spf13/viper/README.md b/vendor/github.com/spf13/viper/README.md index b96180b3..3fc7d84f 100644 --- a/vendor/github.com/spf13/viper/README.md +++ b/vendor/github.com/spf13/viper/README.md @@ -11,7 +11,7 @@ [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/spf13/viper/ci.yaml?branch=master&style=flat-square)](https://github.com/spf13/viper/actions?query=workflow%3ACI) [![Join the chat at https://gitter.im/spf13/viper](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/spf13/viper?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Go Report Card](https://goreportcard.com/badge/github.com/spf13/viper?style=flat-square)](https://goreportcard.com/report/github.com/spf13/viper) -![Go Version](https://img.shields.io/badge/go%20version-%3E=1.19-61CFDD.svg?style=flat-square) +![Go Version](https://img.shields.io/badge/go%20version-%3E=1.20-61CFDD.svg?style=flat-square) [![PkgGoDev](https://pkg.go.dev/badge/mod/github.com/spf13/viper)](https://pkg.go.dev/mod/github.com/spf13/viper) **Go configuration with fangs!** @@ -39,7 +39,7 @@ Many Go projects are built using Viper including: go get github.com/spf13/viper ``` -**Note:** Viper uses [Go Modules](https://github.com/golang/go/wiki/Modules) to manage dependencies. +**Note:** Viper uses [Go Modules](https://go.dev/wiki/Modules) to manage dependencies. ## What is Viper? @@ -420,7 +420,7 @@ flags, or environment variables. Viper supports multiple hosts. To use, pass a list of endpoints separated by `;`. For example `http://127.0.0.1:4001;http://127.0.0.1:4002`. -Viper uses [crypt](https://github.com/bketelsen/crypt) to retrieve +Viper uses [crypt](https://github.com/sagikazarmark/crypt) to retrieve configuration from the K/V store, which means that you can store your configuration values encrypted and have them automatically decrypted if you have the correct gpg keyring. Encryption is optional. @@ -432,7 +432,7 @@ independently of it. K/V store. `crypt` defaults to etcd on http://127.0.0.1:4001. ```bash -$ go get github.com/bketelsen/crypt/bin/crypt +$ go get github.com/sagikazarmark/crypt/bin/crypt $ crypt set -plaintext /config/hugo.json /Users/hugo/settings/config.json ``` diff --git a/vendor/github.com/spf13/viper/TROUBLESHOOTING.md b/vendor/github.com/spf13/viper/TROUBLESHOOTING.md index c4e36c68..b68993d4 100644 --- a/vendor/github.com/spf13/viper/TROUBLESHOOTING.md +++ b/vendor/github.com/spf13/viper/TROUBLESHOOTING.md @@ -15,10 +15,10 @@ cannot find package "github.com/hashicorp/hcl/tree/hcl1" in any of: ``` As the error message suggests, Go tries to look up dependencies in `GOPATH` mode (as it's commonly called) from the `GOPATH`. -Viper opted to use [Go Modules](https://github.com/golang/go/wiki/Modules) to manage its dependencies. While in many cases the two methods are interchangeable, once a dependency releases new (major) versions, `GOPATH` mode is no longer able to decide which version to use, so it'll either use one that's already present or pick a version (usually the `master` branch). +Viper opted to use [Go Modules](https://go.dev/wiki/Modules) to manage its dependencies. While in many cases the two methods are interchangeable, once a dependency releases new (major) versions, `GOPATH` mode is no longer able to decide which version to use, so it'll either use one that's already present or pick a version (usually the `master` branch). The solution is easy: switch to using Go Modules. -Please refer to the [wiki](https://github.com/golang/go/wiki/Modules) on how to do that. +Please refer to the [wiki](https://go.dev/wiki/Modules) on how to do that. **tl;dr* `export GO111MODULE=on` diff --git a/vendor/github.com/spf13/viper/flake.lock b/vendor/github.com/spf13/viper/flake.lock index 78da5109..3840614f 100644 --- a/vendor/github.com/spf13/viper/flake.lock +++ b/vendor/github.com/spf13/viper/flake.lock @@ -8,11 +8,11 @@ "pre-commit-hooks": "pre-commit-hooks" }, "locked": { - "lastModified": 1687972261, - "narHash": "sha256-+mxvZfwMVoaZYETmuQWqTi/7T9UKoAE+WpdSQkOVJ2g=", + "lastModified": 1707817777, + "narHash": "sha256-vHyIs1OULQ3/91wD6xOiuayfI71JXALGA5KLnDKAcy0=", "owner": "cachix", "repo": "devenv", - "rev": "e85df562088573305e55906eaa964341f8cb0d9f", + "rev": "5a30b9e5ac7c6167e61b1f4193d5130bb9f8defa", "type": "github" }, "original": { @@ -42,11 +42,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1687762428, - "narHash": "sha256-DIf7mi45PKo+s8dOYF+UlXHzE0Wl/+k3tXUyAoAnoGE=", + "lastModified": 1706830856, + "narHash": "sha256-a0NYyp+h9hlb7ddVz4LUn1vT/PLwqfrWYcHMvFB1xYg=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "37dd7bb15791c86d55c5121740a1887ab55ee836", + "rev": "b253292d9c0a5ead9bc98c4e9a26c6312e27d69f", "type": "github" }, "original": { @@ -56,12 +56,15 @@ } }, "flake-utils": { + "inputs": { + "systems": "systems" + }, "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", "owner": "numtide", "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", "type": "github" }, "original": { @@ -151,11 +154,11 @@ "nixpkgs-lib": { "locked": { "dir": "lib", - "lastModified": 1685564631, - "narHash": "sha256-8ywr3AkblY4++3lIVxmrWZFzac7+f32ZEhH/A8pNscI=", + "lastModified": 1706550542, + "narHash": "sha256-UcsnCG6wx++23yeER4Hg18CXWbgNpqNXcHIo5/1Y+hc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4f53efe34b3a8877ac923b9350c874e3dcd5dc0a", + "rev": "97b17f32362e475016f942bbdfda4a4a72a8a652", "type": "github" }, "original": { @@ -184,27 +187,27 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1678872516, - "narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=", + "lastModified": 1685801374, + "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8", + "rev": "c37ca420157f4abc31e26f436c1145f8951ff373", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-22.11", + "ref": "nixos-23.05", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1687886075, - "narHash": "sha256-PeayJDDDy+uw1Ats4moZnRdL1OFuZm1Tj+KiHlD67+o=", + "lastModified": 1707939175, + "narHash": "sha256-D1xan0lgxbmXDyzVqXTiSYHLmAMrMRdD+alKzEO/p3w=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a565059a348422af5af9026b5174dc5c0dcefdae", + "rev": "f7e8132daca31b1e3859ac0fb49741754375ac3d", "type": "github" }, "original": { @@ -229,11 +232,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1686050334, - "narHash": "sha256-R0mczWjDzBpIvM3XXhO908X5e2CQqjyh/gFbwZk/7/Q=", + "lastModified": 1704725188, + "narHash": "sha256-qq8NbkhRZF1vVYQFt1s8Mbgo8knj+83+QlL5LBnYGpI=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "6881eb2ae5d8a3516e34714e7a90d9d95914c4dc", + "rev": "ea96f0c05924341c551a797aaba8126334c505d2", "type": "github" }, "original": { @@ -248,6 +251,21 @@ "flake-parts": "flake-parts", "nixpkgs": "nixpkgs_2" } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/vendor/github.com/spf13/viper/flake.nix b/vendor/github.com/spf13/viper/flake.nix index 9b26c3fc..0230668c 100644 --- a/vendor/github.com/spf13/viper/flake.nix +++ b/vendor/github.com/spf13/viper/flake.nix @@ -20,6 +20,7 @@ default = { languages = { go.enable = true; + go.package = pkgs.go_1_22; }; pre-commit.hooks = { diff --git a/vendor/github.com/spf13/viper/viper.go b/vendor/github.com/spf13/viper/viper.go index 20eb4da1..da68d994 100644 --- a/vendor/github.com/spf13/viper/viper.go +++ b/vendor/github.com/spf13/viper/viper.go @@ -624,7 +624,7 @@ func (v *Viper) AddRemoteProvider(provider, endpoint, path string) error { // To retrieve a config file called myapp.json from /configs/myapp.json // you should set path to /configs and set config name (SetConfigName()) to // "myapp". -// Secure Remote Providers are implemented with github.com/bketelsen/crypt. +// Secure Remote Providers are implemented with github.com/sagikazarmark/crypt. func AddSecureRemoteProvider(provider, endpoint, path, secretkeyring string) error { return v.AddSecureRemoteProvider(provider, endpoint, path, secretkeyring) } @@ -1791,12 +1791,6 @@ func (v *Viper) writeConfig(filename string, force bool) error { return f.Sync() } -// Unmarshal a Reader into a map. -// Should probably be an unexported function. -func unmarshalReader(in io.Reader, c map[string]any) error { - return v.unmarshalReader(in, c) -} - func (v *Viper) unmarshalReader(in io.Reader, c map[string]any) error { buf := new(bytes.Buffer) buf.ReadFrom(in) diff --git a/vendor/go.opentelemetry.io/otel/LICENSE b/vendor/go.opentelemetry.io/otel/LICENSE new file mode 100644 index 00000000..261eeb9e --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/go.opentelemetry.io/otel/attribute/README.md b/vendor/go.opentelemetry.io/otel/attribute/README.md new file mode 100644 index 00000000..5b3da8f1 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/attribute/README.md @@ -0,0 +1,3 @@ +# Attribute + +[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/attribute)](https://pkg.go.dev/go.opentelemetry.io/otel/attribute) diff --git a/vendor/go.opentelemetry.io/otel/attribute/doc.go b/vendor/go.opentelemetry.io/otel/attribute/doc.go new file mode 100644 index 00000000..eef51ebc --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/attribute/doc.go @@ -0,0 +1,5 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +// Package attribute provides key and value attributes. +package attribute // import "go.opentelemetry.io/otel/attribute" diff --git a/vendor/go.opentelemetry.io/otel/attribute/encoder.go b/vendor/go.opentelemetry.io/otel/attribute/encoder.go new file mode 100644 index 00000000..318e42fc --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/attribute/encoder.go @@ -0,0 +1,135 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package attribute // import "go.opentelemetry.io/otel/attribute" + +import ( + "bytes" + "sync" + "sync/atomic" +) + +type ( + // Encoder is a mechanism for serializing an attribute set into a specific + // string representation that supports caching, to avoid repeated + // serialization. An example could be an exporter encoding the attribute + // set into a wire representation. + Encoder interface { + // Encode returns the serialized encoding of the attribute set using + // its Iterator. This result may be cached by a attribute.Set. + Encode(iterator Iterator) string + + // ID returns a value that is unique for each class of attribute + // encoder. Attribute encoders allocate these using `NewEncoderID`. + ID() EncoderID + } + + // EncoderID is used to identify distinct Encoder + // implementations, for caching encoded results. + EncoderID struct { + value uint64 + } + + // defaultAttrEncoder uses a sync.Pool of buffers to reduce the number of + // allocations used in encoding attributes. This implementation encodes a + // comma-separated list of key=value, with '/'-escaping of '=', ',', and + // '\'. + defaultAttrEncoder struct { + // pool is a pool of attribute set builders. The buffers in this pool + // grow to a size that most attribute encodings will not allocate new + // memory. + pool sync.Pool // *bytes.Buffer + } +) + +// escapeChar is used to ensure uniqueness of the attribute encoding where +// keys or values contain either '=' or ','. Since there is no parser needed +// for this encoding and its only requirement is to be unique, this choice is +// arbitrary. Users will see these in some exporters (e.g., stdout), so the +// backslash ('\') is used as a conventional choice. +const escapeChar = '\\' + +var ( + _ Encoder = &defaultAttrEncoder{} + + // encoderIDCounter is for generating IDs for other attribute encoders. + encoderIDCounter uint64 + + defaultEncoderOnce sync.Once + defaultEncoderID = NewEncoderID() + defaultEncoderInstance *defaultAttrEncoder +) + +// NewEncoderID returns a unique attribute encoder ID. It should be called +// once per each type of attribute encoder. Preferably in init() or in var +// definition. +func NewEncoderID() EncoderID { + return EncoderID{value: atomic.AddUint64(&encoderIDCounter, 1)} +} + +// DefaultEncoder returns an attribute encoder that encodes attributes in such +// a way that each escaped attribute's key is followed by an equal sign and +// then by an escaped attribute's value. All key-value pairs are separated by +// a comma. +// +// Escaping is done by prepending a backslash before either a backslash, equal +// sign or a comma. +func DefaultEncoder() Encoder { + defaultEncoderOnce.Do(func() { + defaultEncoderInstance = &defaultAttrEncoder{ + pool: sync.Pool{ + New: func() interface{} { + return &bytes.Buffer{} + }, + }, + } + }) + return defaultEncoderInstance +} + +// Encode is a part of an implementation of the AttributeEncoder interface. +func (d *defaultAttrEncoder) Encode(iter Iterator) string { + buf := d.pool.Get().(*bytes.Buffer) + defer d.pool.Put(buf) + buf.Reset() + + for iter.Next() { + i, keyValue := iter.IndexedAttribute() + if i > 0 { + _, _ = buf.WriteRune(',') + } + copyAndEscape(buf, string(keyValue.Key)) + + _, _ = buf.WriteRune('=') + + if keyValue.Value.Type() == STRING { + copyAndEscape(buf, keyValue.Value.AsString()) + } else { + _, _ = buf.WriteString(keyValue.Value.Emit()) + } + } + return buf.String() +} + +// ID is a part of an implementation of the AttributeEncoder interface. +func (*defaultAttrEncoder) ID() EncoderID { + return defaultEncoderID +} + +// copyAndEscape escapes `=`, `,` and its own escape character (`\`), +// making the default encoding unique. +func copyAndEscape(buf *bytes.Buffer, val string) { + for _, ch := range val { + switch ch { + case '=', ',', escapeChar: + _, _ = buf.WriteRune(escapeChar) + } + _, _ = buf.WriteRune(ch) + } +} + +// Valid returns true if this encoder ID was allocated by +// `NewEncoderID`. Invalid encoder IDs will not be cached. +func (id EncoderID) Valid() bool { + return id.value != 0 +} diff --git a/vendor/go.opentelemetry.io/otel/attribute/filter.go b/vendor/go.opentelemetry.io/otel/attribute/filter.go new file mode 100644 index 00000000..be9cd922 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/attribute/filter.go @@ -0,0 +1,49 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package attribute // import "go.opentelemetry.io/otel/attribute" + +// Filter supports removing certain attributes from attribute sets. When +// the filter returns true, the attribute will be kept in the filtered +// attribute set. When the filter returns false, the attribute is excluded +// from the filtered attribute set, and the attribute instead appears in +// the removed list of excluded attributes. +type Filter func(KeyValue) bool + +// NewAllowKeysFilter returns a Filter that only allows attributes with one of +// the provided keys. +// +// If keys is empty a deny-all filter is returned. +func NewAllowKeysFilter(keys ...Key) Filter { + if len(keys) <= 0 { + return func(kv KeyValue) bool { return false } + } + + allowed := make(map[Key]struct{}) + for _, k := range keys { + allowed[k] = struct{}{} + } + return func(kv KeyValue) bool { + _, ok := allowed[kv.Key] + return ok + } +} + +// NewDenyKeysFilter returns a Filter that only allows attributes +// that do not have one of the provided keys. +// +// If keys is empty an allow-all filter is returned. +func NewDenyKeysFilter(keys ...Key) Filter { + if len(keys) <= 0 { + return func(kv KeyValue) bool { return true } + } + + forbid := make(map[Key]struct{}) + for _, k := range keys { + forbid[k] = struct{}{} + } + return func(kv KeyValue) bool { + _, ok := forbid[kv.Key] + return !ok + } +} diff --git a/vendor/go.opentelemetry.io/otel/attribute/iterator.go b/vendor/go.opentelemetry.io/otel/attribute/iterator.go new file mode 100644 index 00000000..f2ba89ce --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/attribute/iterator.go @@ -0,0 +1,150 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package attribute // import "go.opentelemetry.io/otel/attribute" + +// Iterator allows iterating over the set of attributes in order, sorted by +// key. +type Iterator struct { + storage *Set + idx int +} + +// MergeIterator supports iterating over two sets of attributes while +// eliminating duplicate values from the combined set. The first iterator +// value takes precedence. +type MergeIterator struct { + one oneIterator + two oneIterator + current KeyValue +} + +type oneIterator struct { + iter Iterator + done bool + attr KeyValue +} + +// Next moves the iterator to the next position. Returns false if there are no +// more attributes. +func (i *Iterator) Next() bool { + i.idx++ + return i.idx < i.Len() +} + +// Label returns current KeyValue. Must be called only after Next returns +// true. +// +// Deprecated: Use Attribute instead. +func (i *Iterator) Label() KeyValue { + return i.Attribute() +} + +// Attribute returns the current KeyValue of the Iterator. It must be called +// only after Next returns true. +func (i *Iterator) Attribute() KeyValue { + kv, _ := i.storage.Get(i.idx) + return kv +} + +// IndexedLabel returns current index and attribute. Must be called only +// after Next returns true. +// +// Deprecated: Use IndexedAttribute instead. +func (i *Iterator) IndexedLabel() (int, KeyValue) { + return i.idx, i.Attribute() +} + +// IndexedAttribute returns current index and attribute. Must be called only +// after Next returns true. +func (i *Iterator) IndexedAttribute() (int, KeyValue) { + return i.idx, i.Attribute() +} + +// Len returns a number of attributes in the iterated set. +func (i *Iterator) Len() int { + return i.storage.Len() +} + +// ToSlice is a convenience function that creates a slice of attributes from +// the passed iterator. The iterator is set up to start from the beginning +// before creating the slice. +func (i *Iterator) ToSlice() []KeyValue { + l := i.Len() + if l == 0 { + return nil + } + i.idx = -1 + slice := make([]KeyValue, 0, l) + for i.Next() { + slice = append(slice, i.Attribute()) + } + return slice +} + +// NewMergeIterator returns a MergeIterator for merging two attribute sets. +// Duplicates are resolved by taking the value from the first set. +func NewMergeIterator(s1, s2 *Set) MergeIterator { + mi := MergeIterator{ + one: makeOne(s1.Iter()), + two: makeOne(s2.Iter()), + } + return mi +} + +func makeOne(iter Iterator) oneIterator { + oi := oneIterator{ + iter: iter, + } + oi.advance() + return oi +} + +func (oi *oneIterator) advance() { + if oi.done = !oi.iter.Next(); !oi.done { + oi.attr = oi.iter.Attribute() + } +} + +// Next returns true if there is another attribute available. +func (m *MergeIterator) Next() bool { + if m.one.done && m.two.done { + return false + } + if m.one.done { + m.current = m.two.attr + m.two.advance() + return true + } + if m.two.done { + m.current = m.one.attr + m.one.advance() + return true + } + if m.one.attr.Key == m.two.attr.Key { + m.current = m.one.attr // first iterator attribute value wins + m.one.advance() + m.two.advance() + return true + } + if m.one.attr.Key < m.two.attr.Key { + m.current = m.one.attr + m.one.advance() + return true + } + m.current = m.two.attr + m.two.advance() + return true +} + +// Label returns the current value after Next() returns true. +// +// Deprecated: Use Attribute instead. +func (m *MergeIterator) Label() KeyValue { + return m.current +} + +// Attribute returns the current value after Next() returns true. +func (m *MergeIterator) Attribute() KeyValue { + return m.current +} diff --git a/vendor/go.opentelemetry.io/otel/attribute/key.go b/vendor/go.opentelemetry.io/otel/attribute/key.go new file mode 100644 index 00000000..d9a22c65 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/attribute/key.go @@ -0,0 +1,123 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package attribute // import "go.opentelemetry.io/otel/attribute" + +// Key represents the key part in key-value pairs. It's a string. The +// allowed character set in the key depends on the use of the key. +type Key string + +// Bool creates a KeyValue instance with a BOOL Value. +// +// If creating both a key and value at the same time, use the provided +// convenience function instead -- Bool(name, value). +func (k Key) Bool(v bool) KeyValue { + return KeyValue{ + Key: k, + Value: BoolValue(v), + } +} + +// BoolSlice creates a KeyValue instance with a BOOLSLICE Value. +// +// If creating both a key and value at the same time, use the provided +// convenience function instead -- BoolSlice(name, value). +func (k Key) BoolSlice(v []bool) KeyValue { + return KeyValue{ + Key: k, + Value: BoolSliceValue(v), + } +} + +// Int creates a KeyValue instance with an INT64 Value. +// +// If creating both a key and value at the same time, use the provided +// convenience function instead -- Int(name, value). +func (k Key) Int(v int) KeyValue { + return KeyValue{ + Key: k, + Value: IntValue(v), + } +} + +// IntSlice creates a KeyValue instance with an INT64SLICE Value. +// +// If creating both a key and value at the same time, use the provided +// convenience function instead -- IntSlice(name, value). +func (k Key) IntSlice(v []int) KeyValue { + return KeyValue{ + Key: k, + Value: IntSliceValue(v), + } +} + +// Int64 creates a KeyValue instance with an INT64 Value. +// +// If creating both a key and value at the same time, use the provided +// convenience function instead -- Int64(name, value). +func (k Key) Int64(v int64) KeyValue { + return KeyValue{ + Key: k, + Value: Int64Value(v), + } +} + +// Int64Slice creates a KeyValue instance with an INT64SLICE Value. +// +// If creating both a key and value at the same time, use the provided +// convenience function instead -- Int64Slice(name, value). +func (k Key) Int64Slice(v []int64) KeyValue { + return KeyValue{ + Key: k, + Value: Int64SliceValue(v), + } +} + +// Float64 creates a KeyValue instance with a FLOAT64 Value. +// +// If creating both a key and value at the same time, use the provided +// convenience function instead -- Float64(name, value). +func (k Key) Float64(v float64) KeyValue { + return KeyValue{ + Key: k, + Value: Float64Value(v), + } +} + +// Float64Slice creates a KeyValue instance with a FLOAT64SLICE Value. +// +// If creating both a key and value at the same time, use the provided +// convenience function instead -- Float64(name, value). +func (k Key) Float64Slice(v []float64) KeyValue { + return KeyValue{ + Key: k, + Value: Float64SliceValue(v), + } +} + +// String creates a KeyValue instance with a STRING Value. +// +// If creating both a key and value at the same time, use the provided +// convenience function instead -- String(name, value). +func (k Key) String(v string) KeyValue { + return KeyValue{ + Key: k, + Value: StringValue(v), + } +} + +// StringSlice creates a KeyValue instance with a STRINGSLICE Value. +// +// If creating both a key and value at the same time, use the provided +// convenience function instead -- StringSlice(name, value). +func (k Key) StringSlice(v []string) KeyValue { + return KeyValue{ + Key: k, + Value: StringSliceValue(v), + } +} + +// Defined returns true for non-empty keys. +func (k Key) Defined() bool { + return len(k) != 0 +} diff --git a/vendor/go.opentelemetry.io/otel/attribute/kv.go b/vendor/go.opentelemetry.io/otel/attribute/kv.go new file mode 100644 index 00000000..3028f9a4 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/attribute/kv.go @@ -0,0 +1,75 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package attribute // import "go.opentelemetry.io/otel/attribute" + +import ( + "fmt" +) + +// KeyValue holds a key and value pair. +type KeyValue struct { + Key Key + Value Value +} + +// Valid returns if kv is a valid OpenTelemetry attribute. +func (kv KeyValue) Valid() bool { + return kv.Key.Defined() && kv.Value.Type() != INVALID +} + +// Bool creates a KeyValue with a BOOL Value type. +func Bool(k string, v bool) KeyValue { + return Key(k).Bool(v) +} + +// BoolSlice creates a KeyValue with a BOOLSLICE Value type. +func BoolSlice(k string, v []bool) KeyValue { + return Key(k).BoolSlice(v) +} + +// Int creates a KeyValue with an INT64 Value type. +func Int(k string, v int) KeyValue { + return Key(k).Int(v) +} + +// IntSlice creates a KeyValue with an INT64SLICE Value type. +func IntSlice(k string, v []int) KeyValue { + return Key(k).IntSlice(v) +} + +// Int64 creates a KeyValue with an INT64 Value type. +func Int64(k string, v int64) KeyValue { + return Key(k).Int64(v) +} + +// Int64Slice creates a KeyValue with an INT64SLICE Value type. +func Int64Slice(k string, v []int64) KeyValue { + return Key(k).Int64Slice(v) +} + +// Float64 creates a KeyValue with a FLOAT64 Value type. +func Float64(k string, v float64) KeyValue { + return Key(k).Float64(v) +} + +// Float64Slice creates a KeyValue with a FLOAT64SLICE Value type. +func Float64Slice(k string, v []float64) KeyValue { + return Key(k).Float64Slice(v) +} + +// String creates a KeyValue with a STRING Value type. +func String(k, v string) KeyValue { + return Key(k).String(v) +} + +// StringSlice creates a KeyValue with a STRINGSLICE Value type. +func StringSlice(k string, v []string) KeyValue { + return Key(k).StringSlice(v) +} + +// Stringer creates a new key-value pair with a passed name and a string +// value generated by the passed Stringer interface. +func Stringer(k string, v fmt.Stringer) KeyValue { + return Key(k).String(v.String()) +} diff --git a/vendor/go.opentelemetry.io/otel/attribute/set.go b/vendor/go.opentelemetry.io/otel/attribute/set.go new file mode 100644 index 00000000..bff9c7fd --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/attribute/set.go @@ -0,0 +1,431 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package attribute // import "go.opentelemetry.io/otel/attribute" + +import ( + "cmp" + "encoding/json" + "reflect" + "slices" + "sort" +) + +type ( + // Set is the representation for a distinct attribute set. It manages an + // immutable set of attributes, with an internal cache for storing + // attribute encodings. + // + // This type will remain comparable for backwards compatibility. The + // equivalence of Sets across versions is not guaranteed to be stable. + // Prior versions may find two Sets to be equal or not when compared + // directly (i.e. ==), but subsequent versions may not. Users should use + // the Equals method to ensure stable equivalence checking. + // + // Users should also use the Distinct returned from Equivalent as a map key + // instead of a Set directly. In addition to that type providing guarantees + // on stable equivalence, it may also provide performance improvements. + Set struct { + equivalent Distinct + } + + // Distinct is a unique identifier of a Set. + // + // Distinct is designed to be ensures equivalence stability: comparisons + // will return the save value across versions. For this reason, Distinct + // should always be used as a map key instead of a Set. + Distinct struct { + iface interface{} + } + + // Sortable implements sort.Interface, used for sorting KeyValue. + // + // Deprecated: This type is no longer used. It was added as a performance + // optimization for Go < 1.21 that is no longer needed (Go < 1.21 is no + // longer supported by the module). + Sortable []KeyValue +) + +var ( + // keyValueType is used in computeDistinctReflect. + keyValueType = reflect.TypeOf(KeyValue{}) + + // emptySet is returned for empty attribute sets. + emptySet = &Set{ + equivalent: Distinct{ + iface: [0]KeyValue{}, + }, + } +) + +// EmptySet returns a reference to a Set with no elements. +// +// This is a convenience provided for optimized calling utility. +func EmptySet() *Set { + return emptySet +} + +// reflectValue abbreviates reflect.ValueOf(d). +func (d Distinct) reflectValue() reflect.Value { + return reflect.ValueOf(d.iface) +} + +// Valid returns true if this value refers to a valid Set. +func (d Distinct) Valid() bool { + return d.iface != nil +} + +// Len returns the number of attributes in this set. +func (l *Set) Len() int { + if l == nil || !l.equivalent.Valid() { + return 0 + } + return l.equivalent.reflectValue().Len() +} + +// Get returns the KeyValue at ordered position idx in this set. +func (l *Set) Get(idx int) (KeyValue, bool) { + if l == nil || !l.equivalent.Valid() { + return KeyValue{}, false + } + value := l.equivalent.reflectValue() + + if idx >= 0 && idx < value.Len() { + // Note: The Go compiler successfully avoids an allocation for + // the interface{} conversion here: + return value.Index(idx).Interface().(KeyValue), true + } + + return KeyValue{}, false +} + +// Value returns the value of a specified key in this set. +func (l *Set) Value(k Key) (Value, bool) { + if l == nil || !l.equivalent.Valid() { + return Value{}, false + } + rValue := l.equivalent.reflectValue() + vlen := rValue.Len() + + idx := sort.Search(vlen, func(idx int) bool { + return rValue.Index(idx).Interface().(KeyValue).Key >= k + }) + if idx >= vlen { + return Value{}, false + } + keyValue := rValue.Index(idx).Interface().(KeyValue) + if k == keyValue.Key { + return keyValue.Value, true + } + return Value{}, false +} + +// HasValue tests whether a key is defined in this set. +func (l *Set) HasValue(k Key) bool { + if l == nil { + return false + } + _, ok := l.Value(k) + return ok +} + +// Iter returns an iterator for visiting the attributes in this set. +func (l *Set) Iter() Iterator { + return Iterator{ + storage: l, + idx: -1, + } +} + +// ToSlice returns the set of attributes belonging to this set, sorted, where +// keys appear no more than once. +func (l *Set) ToSlice() []KeyValue { + iter := l.Iter() + return iter.ToSlice() +} + +// Equivalent returns a value that may be used as a map key. The Distinct type +// guarantees that the result will equal the equivalent. Distinct value of any +// attribute set with the same elements as this, where sets are made unique by +// choosing the last value in the input for any given key. +func (l *Set) Equivalent() Distinct { + if l == nil || !l.equivalent.Valid() { + return emptySet.equivalent + } + return l.equivalent +} + +// Equals returns true if the argument set is equivalent to this set. +func (l *Set) Equals(o *Set) bool { + return l.Equivalent() == o.Equivalent() +} + +// Encoded returns the encoded form of this set, according to encoder. +func (l *Set) Encoded(encoder Encoder) string { + if l == nil || encoder == nil { + return "" + } + + return encoder.Encode(l.Iter()) +} + +func empty() Set { + return Set{ + equivalent: emptySet.equivalent, + } +} + +// NewSet returns a new Set. See the documentation for +// NewSetWithSortableFiltered for more details. +// +// Except for empty sets, this method adds an additional allocation compared +// with calls that include a Sortable. +func NewSet(kvs ...KeyValue) Set { + s, _ := NewSetWithFiltered(kvs, nil) + return s +} + +// NewSetWithSortable returns a new Set. See the documentation for +// NewSetWithSortableFiltered for more details. +// +// This call includes a Sortable option as a memory optimization. +// +// Deprecated: Use [NewSet] instead. +func NewSetWithSortable(kvs []KeyValue, _ *Sortable) Set { + s, _ := NewSetWithFiltered(kvs, nil) + return s +} + +// NewSetWithFiltered returns a new Set. See the documentation for +// NewSetWithSortableFiltered for more details. +// +// This call includes a Filter to include/exclude attribute keys from the +// return value. Excluded keys are returned as a slice of attribute values. +func NewSetWithFiltered(kvs []KeyValue, filter Filter) (Set, []KeyValue) { + // Check for empty set. + if len(kvs) == 0 { + return empty(), nil + } + + // Stable sort so the following de-duplication can implement + // last-value-wins semantics. + slices.SortStableFunc(kvs, func(a, b KeyValue) int { + return cmp.Compare(a.Key, b.Key) + }) + + position := len(kvs) - 1 + offset := position - 1 + + // The requirements stated above require that the stable + // result be placed in the end of the input slice, while + // overwritten values are swapped to the beginning. + // + // De-duplicate with last-value-wins semantics. Preserve + // duplicate values at the beginning of the input slice. + for ; offset >= 0; offset-- { + if kvs[offset].Key == kvs[position].Key { + continue + } + position-- + kvs[offset], kvs[position] = kvs[position], kvs[offset] + } + kvs = kvs[position:] + + if filter != nil { + if div := filteredToFront(kvs, filter); div != 0 { + return Set{equivalent: computeDistinct(kvs[div:])}, kvs[:div] + } + } + return Set{equivalent: computeDistinct(kvs)}, nil +} + +// NewSetWithSortableFiltered returns a new Set. +// +// Duplicate keys are eliminated by taking the last value. This +// re-orders the input slice so that unique last-values are contiguous +// at the end of the slice. +// +// This ensures the following: +// +// - Last-value-wins semantics +// - Caller sees the reordering, but doesn't lose values +// - Repeated call preserve last-value wins. +// +// Note that methods are defined on Set, although this returns Set. Callers +// can avoid memory allocations by: +// +// - allocating a Sortable for use as a temporary in this method +// - allocating a Set for storing the return value of this constructor. +// +// The result maintains a cache of encoded attributes, by attribute.EncoderID. +// This value should not be copied after its first use. +// +// The second []KeyValue return value is a list of attributes that were +// excluded by the Filter (if non-nil). +// +// Deprecated: Use [NewSetWithFiltered] instead. +func NewSetWithSortableFiltered(kvs []KeyValue, _ *Sortable, filter Filter) (Set, []KeyValue) { + return NewSetWithFiltered(kvs, filter) +} + +// filteredToFront filters slice in-place using keep function. All KeyValues that need to +// be removed are moved to the front. All KeyValues that need to be kept are +// moved (in-order) to the back. The index for the first KeyValue to be kept is +// returned. +func filteredToFront(slice []KeyValue, keep Filter) int { + n := len(slice) + j := n + for i := n - 1; i >= 0; i-- { + if keep(slice[i]) { + j-- + slice[i], slice[j] = slice[j], slice[i] + } + } + return j +} + +// Filter returns a filtered copy of this Set. See the documentation for +// NewSetWithSortableFiltered for more details. +func (l *Set) Filter(re Filter) (Set, []KeyValue) { + if re == nil { + return *l, nil + } + + // Iterate in reverse to the first attribute that will be filtered out. + n := l.Len() + first := n - 1 + for ; first >= 0; first-- { + kv, _ := l.Get(first) + if !re(kv) { + break + } + } + + // No attributes will be dropped, return the immutable Set l and nil. + if first < 0 { + return *l, nil + } + + // Copy now that we know we need to return a modified set. + // + // Do not do this in-place on the underlying storage of *Set l. Sets are + // immutable and filtering should not change this. + slice := l.ToSlice() + + // Don't re-iterate the slice if only slice[0] is filtered. + if first == 0 { + // It is safe to assume len(slice) >= 1 given we found at least one + // attribute above that needs to be filtered out. + return Set{equivalent: computeDistinct(slice[1:])}, slice[:1] + } + + // Move the filtered slice[first] to the front (preserving order). + kv := slice[first] + copy(slice[1:first+1], slice[:first]) + slice[0] = kv + + // Do not re-evaluate re(slice[first+1:]). + div := filteredToFront(slice[1:first+1], re) + 1 + return Set{equivalent: computeDistinct(slice[div:])}, slice[:div] +} + +// computeDistinct returns a Distinct using either the fixed- or +// reflect-oriented code path, depending on the size of the input. The input +// slice is assumed to already be sorted and de-duplicated. +func computeDistinct(kvs []KeyValue) Distinct { + iface := computeDistinctFixed(kvs) + if iface == nil { + iface = computeDistinctReflect(kvs) + } + return Distinct{ + iface: iface, + } +} + +// computeDistinctFixed computes a Distinct for small slices. It returns nil +// if the input is too large for this code path. +func computeDistinctFixed(kvs []KeyValue) interface{} { + switch len(kvs) { + case 1: + ptr := new([1]KeyValue) + copy((*ptr)[:], kvs) + return *ptr + case 2: + ptr := new([2]KeyValue) + copy((*ptr)[:], kvs) + return *ptr + case 3: + ptr := new([3]KeyValue) + copy((*ptr)[:], kvs) + return *ptr + case 4: + ptr := new([4]KeyValue) + copy((*ptr)[:], kvs) + return *ptr + case 5: + ptr := new([5]KeyValue) + copy((*ptr)[:], kvs) + return *ptr + case 6: + ptr := new([6]KeyValue) + copy((*ptr)[:], kvs) + return *ptr + case 7: + ptr := new([7]KeyValue) + copy((*ptr)[:], kvs) + return *ptr + case 8: + ptr := new([8]KeyValue) + copy((*ptr)[:], kvs) + return *ptr + case 9: + ptr := new([9]KeyValue) + copy((*ptr)[:], kvs) + return *ptr + case 10: + ptr := new([10]KeyValue) + copy((*ptr)[:], kvs) + return *ptr + default: + return nil + } +} + +// computeDistinctReflect computes a Distinct using reflection, works for any +// size input. +func computeDistinctReflect(kvs []KeyValue) interface{} { + at := reflect.New(reflect.ArrayOf(len(kvs), keyValueType)).Elem() + for i, keyValue := range kvs { + *(at.Index(i).Addr().Interface().(*KeyValue)) = keyValue + } + return at.Interface() +} + +// MarshalJSON returns the JSON encoding of the Set. +func (l *Set) MarshalJSON() ([]byte, error) { + return json.Marshal(l.equivalent.iface) +} + +// MarshalLog is the marshaling function used by the logging system to represent this Set. +func (l Set) MarshalLog() interface{} { + kvs := make(map[string]string) + for _, kv := range l.ToSlice() { + kvs[string(kv.Key)] = kv.Value.Emit() + } + return kvs +} + +// Len implements sort.Interface. +func (l *Sortable) Len() int { + return len(*l) +} + +// Swap implements sort.Interface. +func (l *Sortable) Swap(i, j int) { + (*l)[i], (*l)[j] = (*l)[j], (*l)[i] +} + +// Less implements sort.Interface. +func (l *Sortable) Less(i, j int) bool { + return (*l)[i].Key < (*l)[j].Key +} diff --git a/vendor/go.opentelemetry.io/otel/attribute/type_string.go b/vendor/go.opentelemetry.io/otel/attribute/type_string.go new file mode 100644 index 00000000..e584b247 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/attribute/type_string.go @@ -0,0 +1,31 @@ +// Code generated by "stringer -type=Type"; DO NOT EDIT. + +package attribute + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[INVALID-0] + _ = x[BOOL-1] + _ = x[INT64-2] + _ = x[FLOAT64-3] + _ = x[STRING-4] + _ = x[BOOLSLICE-5] + _ = x[INT64SLICE-6] + _ = x[FLOAT64SLICE-7] + _ = x[STRINGSLICE-8] +} + +const _Type_name = "INVALIDBOOLINT64FLOAT64STRINGBOOLSLICEINT64SLICEFLOAT64SLICESTRINGSLICE" + +var _Type_index = [...]uint8{0, 7, 11, 16, 23, 29, 38, 48, 60, 71} + +func (i Type) String() string { + if i < 0 || i >= Type(len(_Type_index)-1) { + return "Type(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _Type_name[_Type_index[i]:_Type_index[i+1]] +} diff --git a/vendor/go.opentelemetry.io/otel/attribute/value.go b/vendor/go.opentelemetry.io/otel/attribute/value.go new file mode 100644 index 00000000..9ea0ecbb --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/attribute/value.go @@ -0,0 +1,271 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package attribute // import "go.opentelemetry.io/otel/attribute" + +import ( + "encoding/json" + "fmt" + "reflect" + "strconv" + + "go.opentelemetry.io/otel/internal" + "go.opentelemetry.io/otel/internal/attribute" +) + +//go:generate stringer -type=Type + +// Type describes the type of the data Value holds. +type Type int // nolint: revive // redefines builtin Type. + +// Value represents the value part in key-value pairs. +type Value struct { + vtype Type + numeric uint64 + stringly string + slice interface{} +} + +const ( + // INVALID is used for a Value with no value set. + INVALID Type = iota + // BOOL is a boolean Type Value. + BOOL + // INT64 is a 64-bit signed integral Type Value. + INT64 + // FLOAT64 is a 64-bit floating point Type Value. + FLOAT64 + // STRING is a string Type Value. + STRING + // BOOLSLICE is a slice of booleans Type Value. + BOOLSLICE + // INT64SLICE is a slice of 64-bit signed integral numbers Type Value. + INT64SLICE + // FLOAT64SLICE is a slice of 64-bit floating point numbers Type Value. + FLOAT64SLICE + // STRINGSLICE is a slice of strings Type Value. + STRINGSLICE +) + +// BoolValue creates a BOOL Value. +func BoolValue(v bool) Value { + return Value{ + vtype: BOOL, + numeric: internal.BoolToRaw(v), + } +} + +// BoolSliceValue creates a BOOLSLICE Value. +func BoolSliceValue(v []bool) Value { + return Value{vtype: BOOLSLICE, slice: attribute.BoolSliceValue(v)} +} + +// IntValue creates an INT64 Value. +func IntValue(v int) Value { + return Int64Value(int64(v)) +} + +// IntSliceValue creates an INTSLICE Value. +func IntSliceValue(v []int) Value { + var int64Val int64 + cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(int64Val))) + for i, val := range v { + cp.Elem().Index(i).SetInt(int64(val)) + } + return Value{ + vtype: INT64SLICE, + slice: cp.Elem().Interface(), + } +} + +// Int64Value creates an INT64 Value. +func Int64Value(v int64) Value { + return Value{ + vtype: INT64, + numeric: internal.Int64ToRaw(v), + } +} + +// Int64SliceValue creates an INT64SLICE Value. +func Int64SliceValue(v []int64) Value { + return Value{vtype: INT64SLICE, slice: attribute.Int64SliceValue(v)} +} + +// Float64Value creates a FLOAT64 Value. +func Float64Value(v float64) Value { + return Value{ + vtype: FLOAT64, + numeric: internal.Float64ToRaw(v), + } +} + +// Float64SliceValue creates a FLOAT64SLICE Value. +func Float64SliceValue(v []float64) Value { + return Value{vtype: FLOAT64SLICE, slice: attribute.Float64SliceValue(v)} +} + +// StringValue creates a STRING Value. +func StringValue(v string) Value { + return Value{ + vtype: STRING, + stringly: v, + } +} + +// StringSliceValue creates a STRINGSLICE Value. +func StringSliceValue(v []string) Value { + return Value{vtype: STRINGSLICE, slice: attribute.StringSliceValue(v)} +} + +// Type returns a type of the Value. +func (v Value) Type() Type { + return v.vtype +} + +// AsBool returns the bool value. Make sure that the Value's type is +// BOOL. +func (v Value) AsBool() bool { + return internal.RawToBool(v.numeric) +} + +// AsBoolSlice returns the []bool value. Make sure that the Value's type is +// BOOLSLICE. +func (v Value) AsBoolSlice() []bool { + if v.vtype != BOOLSLICE { + return nil + } + return v.asBoolSlice() +} + +func (v Value) asBoolSlice() []bool { + return attribute.AsBoolSlice(v.slice) +} + +// AsInt64 returns the int64 value. Make sure that the Value's type is +// INT64. +func (v Value) AsInt64() int64 { + return internal.RawToInt64(v.numeric) +} + +// AsInt64Slice returns the []int64 value. Make sure that the Value's type is +// INT64SLICE. +func (v Value) AsInt64Slice() []int64 { + if v.vtype != INT64SLICE { + return nil + } + return v.asInt64Slice() +} + +func (v Value) asInt64Slice() []int64 { + return attribute.AsInt64Slice(v.slice) +} + +// AsFloat64 returns the float64 value. Make sure that the Value's +// type is FLOAT64. +func (v Value) AsFloat64() float64 { + return internal.RawToFloat64(v.numeric) +} + +// AsFloat64Slice returns the []float64 value. Make sure that the Value's type is +// FLOAT64SLICE. +func (v Value) AsFloat64Slice() []float64 { + if v.vtype != FLOAT64SLICE { + return nil + } + return v.asFloat64Slice() +} + +func (v Value) asFloat64Slice() []float64 { + return attribute.AsFloat64Slice(v.slice) +} + +// AsString returns the string value. Make sure that the Value's type +// is STRING. +func (v Value) AsString() string { + return v.stringly +} + +// AsStringSlice returns the []string value. Make sure that the Value's type is +// STRINGSLICE. +func (v Value) AsStringSlice() []string { + if v.vtype != STRINGSLICE { + return nil + } + return v.asStringSlice() +} + +func (v Value) asStringSlice() []string { + return attribute.AsStringSlice(v.slice) +} + +type unknownValueType struct{} + +// AsInterface returns Value's data as interface{}. +func (v Value) AsInterface() interface{} { + switch v.Type() { + case BOOL: + return v.AsBool() + case BOOLSLICE: + return v.asBoolSlice() + case INT64: + return v.AsInt64() + case INT64SLICE: + return v.asInt64Slice() + case FLOAT64: + return v.AsFloat64() + case FLOAT64SLICE: + return v.asFloat64Slice() + case STRING: + return v.stringly + case STRINGSLICE: + return v.asStringSlice() + } + return unknownValueType{} +} + +// Emit returns a string representation of Value's data. +func (v Value) Emit() string { + switch v.Type() { + case BOOLSLICE: + return fmt.Sprint(v.asBoolSlice()) + case BOOL: + return strconv.FormatBool(v.AsBool()) + case INT64SLICE: + j, err := json.Marshal(v.asInt64Slice()) + if err != nil { + return fmt.Sprintf("invalid: %v", v.asInt64Slice()) + } + return string(j) + case INT64: + return strconv.FormatInt(v.AsInt64(), 10) + case FLOAT64SLICE: + j, err := json.Marshal(v.asFloat64Slice()) + if err != nil { + return fmt.Sprintf("invalid: %v", v.asFloat64Slice()) + } + return string(j) + case FLOAT64: + return fmt.Sprint(v.AsFloat64()) + case STRINGSLICE: + j, err := json.Marshal(v.asStringSlice()) + if err != nil { + return fmt.Sprintf("invalid: %v", v.asStringSlice()) + } + return string(j) + case STRING: + return v.stringly + default: + return "unknown" + } +} + +// MarshalJSON returns the JSON encoding of the Value. +func (v Value) MarshalJSON() ([]byte, error) { + var jsonVal struct { + Type string + Value interface{} + } + jsonVal.Type = v.Type().String() + jsonVal.Value = v.AsInterface() + return json.Marshal(jsonVal) +} diff --git a/vendor/go.opentelemetry.io/otel/internal/attribute/attribute.go b/vendor/go.opentelemetry.io/otel/internal/attribute/attribute.go new file mode 100644 index 00000000..f32766e5 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/internal/attribute/attribute.go @@ -0,0 +1,100 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +/* +Package attribute provide several helper functions for some commonly used +logic of processing attributes. +*/ +package attribute // import "go.opentelemetry.io/otel/internal/attribute" + +import ( + "reflect" +) + +// BoolSliceValue converts a bool slice into an array with same elements as slice. +func BoolSliceValue(v []bool) interface{} { + var zero bool + cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))) + copy(cp.Elem().Slice(0, len(v)).Interface().([]bool), v) + return cp.Elem().Interface() +} + +// Int64SliceValue converts an int64 slice into an array with same elements as slice. +func Int64SliceValue(v []int64) interface{} { + var zero int64 + cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))) + copy(cp.Elem().Slice(0, len(v)).Interface().([]int64), v) + return cp.Elem().Interface() +} + +// Float64SliceValue converts a float64 slice into an array with same elements as slice. +func Float64SliceValue(v []float64) interface{} { + var zero float64 + cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))) + copy(cp.Elem().Slice(0, len(v)).Interface().([]float64), v) + return cp.Elem().Interface() +} + +// StringSliceValue converts a string slice into an array with same elements as slice. +func StringSliceValue(v []string) interface{} { + var zero string + cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))) + copy(cp.Elem().Slice(0, len(v)).Interface().([]string), v) + return cp.Elem().Interface() +} + +// AsBoolSlice converts a bool array into a slice into with same elements as array. +func AsBoolSlice(v interface{}) []bool { + rv := reflect.ValueOf(v) + if rv.Type().Kind() != reflect.Array { + return nil + } + var zero bool + correctLen := rv.Len() + correctType := reflect.ArrayOf(correctLen, reflect.TypeOf(zero)) + cpy := reflect.New(correctType) + _ = reflect.Copy(cpy.Elem(), rv) + return cpy.Elem().Slice(0, correctLen).Interface().([]bool) +} + +// AsInt64Slice converts an int64 array into a slice into with same elements as array. +func AsInt64Slice(v interface{}) []int64 { + rv := reflect.ValueOf(v) + if rv.Type().Kind() != reflect.Array { + return nil + } + var zero int64 + correctLen := rv.Len() + correctType := reflect.ArrayOf(correctLen, reflect.TypeOf(zero)) + cpy := reflect.New(correctType) + _ = reflect.Copy(cpy.Elem(), rv) + return cpy.Elem().Slice(0, correctLen).Interface().([]int64) +} + +// AsFloat64Slice converts a float64 array into a slice into with same elements as array. +func AsFloat64Slice(v interface{}) []float64 { + rv := reflect.ValueOf(v) + if rv.Type().Kind() != reflect.Array { + return nil + } + var zero float64 + correctLen := rv.Len() + correctType := reflect.ArrayOf(correctLen, reflect.TypeOf(zero)) + cpy := reflect.New(correctType) + _ = reflect.Copy(cpy.Elem(), rv) + return cpy.Elem().Slice(0, correctLen).Interface().([]float64) +} + +// AsStringSlice converts a string array into a slice into with same elements as array. +func AsStringSlice(v interface{}) []string { + rv := reflect.ValueOf(v) + if rv.Type().Kind() != reflect.Array { + return nil + } + var zero string + correctLen := rv.Len() + correctType := reflect.ArrayOf(correctLen, reflect.TypeOf(zero)) + cpy := reflect.New(correctType) + _ = reflect.Copy(cpy.Elem(), rv) + return cpy.Elem().Slice(0, correctLen).Interface().([]string) +} diff --git a/vendor/go.opentelemetry.io/otel/internal/gen.go b/vendor/go.opentelemetry.io/otel/internal/gen.go new file mode 100644 index 00000000..4259f032 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/internal/gen.go @@ -0,0 +1,18 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package internal // import "go.opentelemetry.io/otel/internal" + +//go:generate gotmpl --body=./shared/matchers/expectation.go.tmpl "--data={}" --out=matchers/expectation.go +//go:generate gotmpl --body=./shared/matchers/expecter.go.tmpl "--data={}" --out=matchers/expecter.go +//go:generate gotmpl --body=./shared/matchers/temporal_matcher.go.tmpl "--data={}" --out=matchers/temporal_matcher.go + +//go:generate gotmpl --body=./shared/internaltest/alignment.go.tmpl "--data={}" --out=internaltest/alignment.go +//go:generate gotmpl --body=./shared/internaltest/env.go.tmpl "--data={}" --out=internaltest/env.go +//go:generate gotmpl --body=./shared/internaltest/env_test.go.tmpl "--data={}" --out=internaltest/env_test.go +//go:generate gotmpl --body=./shared/internaltest/errors.go.tmpl "--data={}" --out=internaltest/errors.go +//go:generate gotmpl --body=./shared/internaltest/harness.go.tmpl "--data={\"matchersImportPath\": \"go.opentelemetry.io/otel/internal/matchers\"}" --out=internaltest/harness.go +//go:generate gotmpl --body=./shared/internaltest/text_map_carrier.go.tmpl "--data={}" --out=internaltest/text_map_carrier.go +//go:generate gotmpl --body=./shared/internaltest/text_map_carrier_test.go.tmpl "--data={}" --out=internaltest/text_map_carrier_test.go +//go:generate gotmpl --body=./shared/internaltest/text_map_propagator.go.tmpl "--data={}" --out=internaltest/text_map_propagator.go +//go:generate gotmpl --body=./shared/internaltest/text_map_propagator_test.go.tmpl "--data={}" --out=internaltest/text_map_propagator_test.go diff --git a/vendor/go.opentelemetry.io/otel/internal/rawhelpers.go b/vendor/go.opentelemetry.io/otel/internal/rawhelpers.go new file mode 100644 index 00000000..3e7bb3b3 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/internal/rawhelpers.go @@ -0,0 +1,44 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package internal // import "go.opentelemetry.io/otel/internal" + +import ( + "math" + "unsafe" +) + +func BoolToRaw(b bool) uint64 { // nolint:revive // b is not a control flag. + if b { + return 1 + } + return 0 +} + +func RawToBool(r uint64) bool { + return r != 0 +} + +func Int64ToRaw(i int64) uint64 { + return uint64(i) +} + +func RawToInt64(r uint64) int64 { + return int64(r) +} + +func Float64ToRaw(f float64) uint64 { + return math.Float64bits(f) +} + +func RawToFloat64(r uint64) float64 { + return math.Float64frombits(r) +} + +func RawPtrToFloat64Ptr(r *uint64) *float64 { + return (*float64)(unsafe.Pointer(r)) +} + +func RawPtrToInt64Ptr(r *uint64) *int64 { + return (*int64)(unsafe.Pointer(r)) +} diff --git a/vendor/go.opentelemetry.io/otel/metric/LICENSE b/vendor/go.opentelemetry.io/otel/metric/LICENSE new file mode 100644 index 00000000..261eeb9e --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/go.opentelemetry.io/otel/metric/README.md b/vendor/go.opentelemetry.io/otel/metric/README.md new file mode 100644 index 00000000..0cf902e0 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/README.md @@ -0,0 +1,3 @@ +# Metric API + +[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/metric)](https://pkg.go.dev/go.opentelemetry.io/otel/metric) diff --git a/vendor/go.opentelemetry.io/otel/metric/asyncfloat64.go b/vendor/go.opentelemetry.io/otel/metric/asyncfloat64.go new file mode 100644 index 00000000..cf23db77 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/asyncfloat64.go @@ -0,0 +1,260 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package metric // import "go.opentelemetry.io/otel/metric" + +import ( + "context" + + "go.opentelemetry.io/otel/metric/embedded" +) + +// Float64Observable describes a set of instruments used asynchronously to +// record float64 measurements once per collection cycle. Observations of +// these instruments are only made within a callback. +// +// Warning: Methods may be added to this interface in minor releases. +type Float64Observable interface { + Observable + + float64Observable() +} + +// Float64ObservableCounter is an instrument used to asynchronously record +// increasing float64 measurements once per collection cycle. Observations are +// only made within a callback for this instrument. The value observed is +// assumed the to be the cumulative sum of the count. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for +// unimplemented methods. +type Float64ObservableCounter interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Float64ObservableCounter + + Float64Observable +} + +// Float64ObservableCounterConfig contains options for asynchronous counter +// instruments that record float64 values. +type Float64ObservableCounterConfig struct { + description string + unit string + callbacks []Float64Callback +} + +// NewFloat64ObservableCounterConfig returns a new +// [Float64ObservableCounterConfig] with all opts applied. +func NewFloat64ObservableCounterConfig(opts ...Float64ObservableCounterOption) Float64ObservableCounterConfig { + var config Float64ObservableCounterConfig + for _, o := range opts { + config = o.applyFloat64ObservableCounter(config) + } + return config +} + +// Description returns the configured description. +func (c Float64ObservableCounterConfig) Description() string { + return c.description +} + +// Unit returns the configured unit. +func (c Float64ObservableCounterConfig) Unit() string { + return c.unit +} + +// Callbacks returns the configured callbacks. +func (c Float64ObservableCounterConfig) Callbacks() []Float64Callback { + return c.callbacks +} + +// Float64ObservableCounterOption applies options to a +// [Float64ObservableCounterConfig]. See [Float64ObservableOption] and +// [InstrumentOption] for other options that can be used as a +// Float64ObservableCounterOption. +type Float64ObservableCounterOption interface { + applyFloat64ObservableCounter(Float64ObservableCounterConfig) Float64ObservableCounterConfig +} + +// Float64ObservableUpDownCounter is an instrument used to asynchronously +// record float64 measurements once per collection cycle. Observations are only +// made within a callback for this instrument. The value observed is assumed +// the to be the cumulative sum of the count. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Float64ObservableUpDownCounter interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Float64ObservableUpDownCounter + + Float64Observable +} + +// Float64ObservableUpDownCounterConfig contains options for asynchronous +// counter instruments that record float64 values. +type Float64ObservableUpDownCounterConfig struct { + description string + unit string + callbacks []Float64Callback +} + +// NewFloat64ObservableUpDownCounterConfig returns a new +// [Float64ObservableUpDownCounterConfig] with all opts applied. +func NewFloat64ObservableUpDownCounterConfig(opts ...Float64ObservableUpDownCounterOption) Float64ObservableUpDownCounterConfig { + var config Float64ObservableUpDownCounterConfig + for _, o := range opts { + config = o.applyFloat64ObservableUpDownCounter(config) + } + return config +} + +// Description returns the configured description. +func (c Float64ObservableUpDownCounterConfig) Description() string { + return c.description +} + +// Unit returns the configured unit. +func (c Float64ObservableUpDownCounterConfig) Unit() string { + return c.unit +} + +// Callbacks returns the configured callbacks. +func (c Float64ObservableUpDownCounterConfig) Callbacks() []Float64Callback { + return c.callbacks +} + +// Float64ObservableUpDownCounterOption applies options to a +// [Float64ObservableUpDownCounterConfig]. See [Float64ObservableOption] and +// [InstrumentOption] for other options that can be used as a +// Float64ObservableUpDownCounterOption. +type Float64ObservableUpDownCounterOption interface { + applyFloat64ObservableUpDownCounter(Float64ObservableUpDownCounterConfig) Float64ObservableUpDownCounterConfig +} + +// Float64ObservableGauge is an instrument used to asynchronously record +// instantaneous float64 measurements once per collection cycle. Observations +// are only made within a callback for this instrument. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Float64ObservableGauge interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Float64ObservableGauge + + Float64Observable +} + +// Float64ObservableGaugeConfig contains options for asynchronous counter +// instruments that record float64 values. +type Float64ObservableGaugeConfig struct { + description string + unit string + callbacks []Float64Callback +} + +// NewFloat64ObservableGaugeConfig returns a new [Float64ObservableGaugeConfig] +// with all opts applied. +func NewFloat64ObservableGaugeConfig(opts ...Float64ObservableGaugeOption) Float64ObservableGaugeConfig { + var config Float64ObservableGaugeConfig + for _, o := range opts { + config = o.applyFloat64ObservableGauge(config) + } + return config +} + +// Description returns the configured description. +func (c Float64ObservableGaugeConfig) Description() string { + return c.description +} + +// Unit returns the configured unit. +func (c Float64ObservableGaugeConfig) Unit() string { + return c.unit +} + +// Callbacks returns the configured callbacks. +func (c Float64ObservableGaugeConfig) Callbacks() []Float64Callback { + return c.callbacks +} + +// Float64ObservableGaugeOption applies options to a +// [Float64ObservableGaugeConfig]. See [Float64ObservableOption] and +// [InstrumentOption] for other options that can be used as a +// Float64ObservableGaugeOption. +type Float64ObservableGaugeOption interface { + applyFloat64ObservableGauge(Float64ObservableGaugeConfig) Float64ObservableGaugeConfig +} + +// Float64Observer is a recorder of float64 measurements. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Float64Observer interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Float64Observer + + // Observe records the float64 value. + // + // Use the WithAttributeSet (or, if performance is not a concern, + // the WithAttributes) option to include measurement attributes. + Observe(value float64, options ...ObserveOption) +} + +// Float64Callback is a function registered with a Meter that makes +// observations for a Float64Observerable instrument it is registered with. +// Calls to the Float64Observer record measurement values for the +// Float64Observable. +// +// The function needs to complete in a finite amount of time and the deadline +// of the passed context is expected to be honored. +// +// The function needs to make unique observations across all registered +// Float64Callbacks. Meaning, it should not report measurements with the same +// attributes as another Float64Callbacks also registered for the same +// instrument. +// +// The function needs to be concurrent safe. +type Float64Callback func(context.Context, Float64Observer) error + +// Float64ObservableOption applies options to float64 Observer instruments. +type Float64ObservableOption interface { + Float64ObservableCounterOption + Float64ObservableUpDownCounterOption + Float64ObservableGaugeOption +} + +type float64CallbackOpt struct { + cback Float64Callback +} + +func (o float64CallbackOpt) applyFloat64ObservableCounter(cfg Float64ObservableCounterConfig) Float64ObservableCounterConfig { + cfg.callbacks = append(cfg.callbacks, o.cback) + return cfg +} + +func (o float64CallbackOpt) applyFloat64ObservableUpDownCounter(cfg Float64ObservableUpDownCounterConfig) Float64ObservableUpDownCounterConfig { + cfg.callbacks = append(cfg.callbacks, o.cback) + return cfg +} + +func (o float64CallbackOpt) applyFloat64ObservableGauge(cfg Float64ObservableGaugeConfig) Float64ObservableGaugeConfig { + cfg.callbacks = append(cfg.callbacks, o.cback) + return cfg +} + +// WithFloat64Callback adds callback to be called for an instrument. +func WithFloat64Callback(callback Float64Callback) Float64ObservableOption { + return float64CallbackOpt{callback} +} diff --git a/vendor/go.opentelemetry.io/otel/metric/asyncint64.go b/vendor/go.opentelemetry.io/otel/metric/asyncint64.go new file mode 100644 index 00000000..c82ba532 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/asyncint64.go @@ -0,0 +1,258 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package metric // import "go.opentelemetry.io/otel/metric" + +import ( + "context" + + "go.opentelemetry.io/otel/metric/embedded" +) + +// Int64Observable describes a set of instruments used asynchronously to record +// int64 measurements once per collection cycle. Observations of these +// instruments are only made within a callback. +// +// Warning: Methods may be added to this interface in minor releases. +type Int64Observable interface { + Observable + + int64Observable() +} + +// Int64ObservableCounter is an instrument used to asynchronously record +// increasing int64 measurements once per collection cycle. Observations are +// only made within a callback for this instrument. The value observed is +// assumed the to be the cumulative sum of the count. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Int64ObservableCounter interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Int64ObservableCounter + + Int64Observable +} + +// Int64ObservableCounterConfig contains options for asynchronous counter +// instruments that record int64 values. +type Int64ObservableCounterConfig struct { + description string + unit string + callbacks []Int64Callback +} + +// NewInt64ObservableCounterConfig returns a new [Int64ObservableCounterConfig] +// with all opts applied. +func NewInt64ObservableCounterConfig(opts ...Int64ObservableCounterOption) Int64ObservableCounterConfig { + var config Int64ObservableCounterConfig + for _, o := range opts { + config = o.applyInt64ObservableCounter(config) + } + return config +} + +// Description returns the configured description. +func (c Int64ObservableCounterConfig) Description() string { + return c.description +} + +// Unit returns the configured unit. +func (c Int64ObservableCounterConfig) Unit() string { + return c.unit +} + +// Callbacks returns the configured callbacks. +func (c Int64ObservableCounterConfig) Callbacks() []Int64Callback { + return c.callbacks +} + +// Int64ObservableCounterOption applies options to a +// [Int64ObservableCounterConfig]. See [Int64ObservableOption] and +// [InstrumentOption] for other options that can be used as an +// Int64ObservableCounterOption. +type Int64ObservableCounterOption interface { + applyInt64ObservableCounter(Int64ObservableCounterConfig) Int64ObservableCounterConfig +} + +// Int64ObservableUpDownCounter is an instrument used to asynchronously record +// int64 measurements once per collection cycle. Observations are only made +// within a callback for this instrument. The value observed is assumed the to +// be the cumulative sum of the count. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Int64ObservableUpDownCounter interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Int64ObservableUpDownCounter + + Int64Observable +} + +// Int64ObservableUpDownCounterConfig contains options for asynchronous counter +// instruments that record int64 values. +type Int64ObservableUpDownCounterConfig struct { + description string + unit string + callbacks []Int64Callback +} + +// NewInt64ObservableUpDownCounterConfig returns a new +// [Int64ObservableUpDownCounterConfig] with all opts applied. +func NewInt64ObservableUpDownCounterConfig(opts ...Int64ObservableUpDownCounterOption) Int64ObservableUpDownCounterConfig { + var config Int64ObservableUpDownCounterConfig + for _, o := range opts { + config = o.applyInt64ObservableUpDownCounter(config) + } + return config +} + +// Description returns the configured description. +func (c Int64ObservableUpDownCounterConfig) Description() string { + return c.description +} + +// Unit returns the configured unit. +func (c Int64ObservableUpDownCounterConfig) Unit() string { + return c.unit +} + +// Callbacks returns the configured callbacks. +func (c Int64ObservableUpDownCounterConfig) Callbacks() []Int64Callback { + return c.callbacks +} + +// Int64ObservableUpDownCounterOption applies options to a +// [Int64ObservableUpDownCounterConfig]. See [Int64ObservableOption] and +// [InstrumentOption] for other options that can be used as an +// Int64ObservableUpDownCounterOption. +type Int64ObservableUpDownCounterOption interface { + applyInt64ObservableUpDownCounter(Int64ObservableUpDownCounterConfig) Int64ObservableUpDownCounterConfig +} + +// Int64ObservableGauge is an instrument used to asynchronously record +// instantaneous int64 measurements once per collection cycle. Observations are +// only made within a callback for this instrument. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Int64ObservableGauge interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Int64ObservableGauge + + Int64Observable +} + +// Int64ObservableGaugeConfig contains options for asynchronous counter +// instruments that record int64 values. +type Int64ObservableGaugeConfig struct { + description string + unit string + callbacks []Int64Callback +} + +// NewInt64ObservableGaugeConfig returns a new [Int64ObservableGaugeConfig] +// with all opts applied. +func NewInt64ObservableGaugeConfig(opts ...Int64ObservableGaugeOption) Int64ObservableGaugeConfig { + var config Int64ObservableGaugeConfig + for _, o := range opts { + config = o.applyInt64ObservableGauge(config) + } + return config +} + +// Description returns the configured description. +func (c Int64ObservableGaugeConfig) Description() string { + return c.description +} + +// Unit returns the configured unit. +func (c Int64ObservableGaugeConfig) Unit() string { + return c.unit +} + +// Callbacks returns the configured callbacks. +func (c Int64ObservableGaugeConfig) Callbacks() []Int64Callback { + return c.callbacks +} + +// Int64ObservableGaugeOption applies options to a +// [Int64ObservableGaugeConfig]. See [Int64ObservableOption] and +// [InstrumentOption] for other options that can be used as an +// Int64ObservableGaugeOption. +type Int64ObservableGaugeOption interface { + applyInt64ObservableGauge(Int64ObservableGaugeConfig) Int64ObservableGaugeConfig +} + +// Int64Observer is a recorder of int64 measurements. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Int64Observer interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Int64Observer + + // Observe records the int64 value. + // + // Use the WithAttributeSet (or, if performance is not a concern, + // the WithAttributes) option to include measurement attributes. + Observe(value int64, options ...ObserveOption) +} + +// Int64Callback is a function registered with a Meter that makes observations +// for an Int64Observerable instrument it is registered with. Calls to the +// Int64Observer record measurement values for the Int64Observable. +// +// The function needs to complete in a finite amount of time and the deadline +// of the passed context is expected to be honored. +// +// The function needs to make unique observations across all registered +// Int64Callbacks. Meaning, it should not report measurements with the same +// attributes as another Int64Callbacks also registered for the same +// instrument. +// +// The function needs to be concurrent safe. +type Int64Callback func(context.Context, Int64Observer) error + +// Int64ObservableOption applies options to int64 Observer instruments. +type Int64ObservableOption interface { + Int64ObservableCounterOption + Int64ObservableUpDownCounterOption + Int64ObservableGaugeOption +} + +type int64CallbackOpt struct { + cback Int64Callback +} + +func (o int64CallbackOpt) applyInt64ObservableCounter(cfg Int64ObservableCounterConfig) Int64ObservableCounterConfig { + cfg.callbacks = append(cfg.callbacks, o.cback) + return cfg +} + +func (o int64CallbackOpt) applyInt64ObservableUpDownCounter(cfg Int64ObservableUpDownCounterConfig) Int64ObservableUpDownCounterConfig { + cfg.callbacks = append(cfg.callbacks, o.cback) + return cfg +} + +func (o int64CallbackOpt) applyInt64ObservableGauge(cfg Int64ObservableGaugeConfig) Int64ObservableGaugeConfig { + cfg.callbacks = append(cfg.callbacks, o.cback) + return cfg +} + +// WithInt64Callback adds callback to be called for an instrument. +func WithInt64Callback(callback Int64Callback) Int64ObservableOption { + return int64CallbackOpt{callback} +} diff --git a/vendor/go.opentelemetry.io/otel/metric/config.go b/vendor/go.opentelemetry.io/otel/metric/config.go new file mode 100644 index 00000000..d9e3b13e --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/config.go @@ -0,0 +1,81 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package metric // import "go.opentelemetry.io/otel/metric" + +import "go.opentelemetry.io/otel/attribute" + +// MeterConfig contains options for Meters. +type MeterConfig struct { + instrumentationVersion string + schemaURL string + attrs attribute.Set + + // Ensure forward compatibility by explicitly making this not comparable. + noCmp [0]func() //nolint: unused // This is indeed used. +} + +// InstrumentationVersion returns the version of the library providing +// instrumentation. +func (cfg MeterConfig) InstrumentationVersion() string { + return cfg.instrumentationVersion +} + +// InstrumentationAttributes returns the attributes associated with the library +// providing instrumentation. +func (cfg MeterConfig) InstrumentationAttributes() attribute.Set { + return cfg.attrs +} + +// SchemaURL is the schema_url of the library providing instrumentation. +func (cfg MeterConfig) SchemaURL() string { + return cfg.schemaURL +} + +// MeterOption is an interface for applying Meter options. +type MeterOption interface { + // applyMeter is used to set a MeterOption value of a MeterConfig. + applyMeter(MeterConfig) MeterConfig +} + +// NewMeterConfig creates a new MeterConfig and applies +// all the given options. +func NewMeterConfig(opts ...MeterOption) MeterConfig { + var config MeterConfig + for _, o := range opts { + config = o.applyMeter(config) + } + return config +} + +type meterOptionFunc func(MeterConfig) MeterConfig + +func (fn meterOptionFunc) applyMeter(cfg MeterConfig) MeterConfig { + return fn(cfg) +} + +// WithInstrumentationVersion sets the instrumentation version. +func WithInstrumentationVersion(version string) MeterOption { + return meterOptionFunc(func(config MeterConfig) MeterConfig { + config.instrumentationVersion = version + return config + }) +} + +// WithInstrumentationAttributes sets the instrumentation attributes. +// +// The passed attributes will be de-duplicated. +func WithInstrumentationAttributes(attr ...attribute.KeyValue) MeterOption { + return meterOptionFunc(func(config MeterConfig) MeterConfig { + config.attrs = attribute.NewSet(attr...) + return config + }) +} + +// WithSchemaURL sets the schema URL. +func WithSchemaURL(schemaURL string) MeterOption { + return meterOptionFunc(func(config MeterConfig) MeterConfig { + config.schemaURL = schemaURL + return config + }) +} diff --git a/vendor/go.opentelemetry.io/otel/metric/doc.go b/vendor/go.opentelemetry.io/otel/metric/doc.go new file mode 100644 index 00000000..075234b3 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/doc.go @@ -0,0 +1,159 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +/* +Package metric provides the OpenTelemetry API used to measure metrics about +source code operation. + +This API is separate from its implementation so the instrumentation built from +it is reusable. See [go.opentelemetry.io/otel/sdk/metric] for the official +OpenTelemetry implementation of this API. + +All measurements made with this package are made via instruments. These +instruments are created by a [Meter] which itself is created by a +[MeterProvider]. Applications need to accept a [MeterProvider] implementation +as a starting point when instrumenting. This can be done directly, or by using +the OpenTelemetry global MeterProvider via [GetMeterProvider]. Using an +appropriately named [Meter] from the accepted [MeterProvider], instrumentation +can then be built from the [Meter]'s instruments. + +# Instruments + +Each instrument is designed to make measurements of a particular type. Broadly, +all instruments fall into two overlapping logical categories: asynchronous or +synchronous, and int64 or float64. + +All synchronous instruments ([Int64Counter], [Int64UpDownCounter], +[Int64Histogram], [Float64Counter], [Float64UpDownCounter], and +[Float64Histogram]) are used to measure the operation and performance of source +code during the source code execution. These instruments only make measurements +when the source code they instrument is run. + +All asynchronous instruments ([Int64ObservableCounter], +[Int64ObservableUpDownCounter], [Int64ObservableGauge], +[Float64ObservableCounter], [Float64ObservableUpDownCounter], and +[Float64ObservableGauge]) are used to measure metrics outside of the execution +of source code. They are said to make "observations" via a callback function +called once every measurement collection cycle. + +Each instrument is also grouped by the value type it measures. Either int64 or +float64. The value being measured will dictate which instrument in these +categories to use. + +Outside of these two broad categories, instruments are described by the +function they are designed to serve. All Counters ([Int64Counter], +[Float64Counter], [Int64ObservableCounter], and [Float64ObservableCounter]) are +designed to measure values that never decrease in value, but instead only +incrementally increase in value. UpDownCounters ([Int64UpDownCounter], +[Float64UpDownCounter], [Int64ObservableUpDownCounter], and +[Float64ObservableUpDownCounter]) on the other hand, are designed to measure +values that can increase and decrease. When more information needs to be +conveyed about all the synchronous measurements made during a collection cycle, +a Histogram ([Int64Histogram] and [Float64Histogram]) should be used. Finally, +when just the most recent measurement needs to be conveyed about an +asynchronous measurement, a Gauge ([Int64ObservableGauge] and +[Float64ObservableGauge]) should be used. + +See the [OpenTelemetry documentation] for more information about instruments +and their intended use. + +# Measurements + +Measurements are made by recording values and information about the values with +an instrument. How these measurements are recorded depends on the instrument. + +Measurements for synchronous instruments ([Int64Counter], [Int64UpDownCounter], +[Int64Histogram], [Float64Counter], [Float64UpDownCounter], and +[Float64Histogram]) are recorded using the instrument methods directly. All +counter instruments have an Add method that is used to measure an increment +value, and all histogram instruments have a Record method to measure a data +point. + +Asynchronous instruments ([Int64ObservableCounter], +[Int64ObservableUpDownCounter], [Int64ObservableGauge], +[Float64ObservableCounter], [Float64ObservableUpDownCounter], and +[Float64ObservableGauge]) record measurements within a callback function. The +callback is registered with the Meter which ensures the callback is called once +per collection cycle. A callback can be registered two ways: during the +instrument's creation using an option, or later using the RegisterCallback +method of the [Meter] that created the instrument. + +If the following criteria are met, an option ([WithInt64Callback] or +[WithFloat64Callback]) can be used during the asynchronous instrument's +creation to register a callback ([Int64Callback] or [Float64Callback], +respectively): + + - The measurement process is known when the instrument is created + - Only that instrument will make a measurement within the callback + - The callback never needs to be unregistered + +If the criteria are not met, use the RegisterCallback method of the [Meter] that +created the instrument to register a [Callback]. + +# API Implementations + +This package does not conform to the standard Go versioning policy, all of its +interfaces may have methods added to them without a package major version bump. +This non-standard API evolution could surprise an uninformed implementation +author. They could unknowingly build their implementation in a way that would +result in a runtime panic for their users that update to the new API. + +The API is designed to help inform an instrumentation author about this +non-standard API evolution. It requires them to choose a default behavior for +unimplemented interface methods. There are three behavior choices they can +make: + + - Compilation failure + - Panic + - Default to another implementation + +All interfaces in this API embed a corresponding interface from +[go.opentelemetry.io/otel/metric/embedded]. If an author wants the default +behavior of their implementations to be a compilation failure, signaling to +their users they need to update to the latest version of that implementation, +they need to embed the corresponding interface from +[go.opentelemetry.io/otel/metric/embedded] in their implementation. For +example, + + import "go.opentelemetry.io/otel/metric/embedded" + + type MeterProvider struct { + embedded.MeterProvider + // ... + } + +If an author wants the default behavior of their implementations to a panic, +they need to embed the API interface directly. + + import "go.opentelemetry.io/otel/metric" + + type MeterProvider struct { + metric.MeterProvider + // ... + } + +This is not a recommended behavior as it could lead to publishing packages that +contain runtime panics when users update other package that use newer versions +of [go.opentelemetry.io/otel/metric]. + +Finally, an author can embed another implementation in theirs. The embedded +implementation will be used for methods not defined by the author. For example, +an author who wants to default to silently dropping the call can use +[go.opentelemetry.io/otel/metric/noop]: + + import "go.opentelemetry.io/otel/metric/noop" + + type MeterProvider struct { + noop.MeterProvider + // ... + } + +It is strongly recommended that authors only embed +[go.opentelemetry.io/otel/metric/noop] if they choose this default behavior. +That implementation is the only one OpenTelemetry authors can guarantee will +fully implement all the API interfaces when a user updates their API. + +[OpenTelemetry documentation]: https://opentelemetry.io/docs/concepts/signals/metrics/ +[GetMeterProvider]: https://pkg.go.dev/go.opentelemetry.io/otel#GetMeterProvider +*/ +package metric // import "go.opentelemetry.io/otel/metric" diff --git a/vendor/go.opentelemetry.io/otel/metric/embedded/README.md b/vendor/go.opentelemetry.io/otel/metric/embedded/README.md new file mode 100644 index 00000000..1f6e0efa --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/embedded/README.md @@ -0,0 +1,3 @@ +# Metric Embedded + +[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/metric/embedded)](https://pkg.go.dev/go.opentelemetry.io/otel/metric/embedded) diff --git a/vendor/go.opentelemetry.io/otel/metric/embedded/embedded.go b/vendor/go.opentelemetry.io/otel/metric/embedded/embedded.go new file mode 100644 index 00000000..1a9dc680 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/embedded/embedded.go @@ -0,0 +1,243 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +// Package embedded provides interfaces embedded within the [OpenTelemetry +// metric API]. +// +// Implementers of the [OpenTelemetry metric API] can embed the relevant type +// from this package into their implementation directly. Doing so will result +// in a compilation error for users when the [OpenTelemetry metric API] is +// extended (which is something that can happen without a major version bump of +// the API package). +// +// [OpenTelemetry metric API]: https://pkg.go.dev/go.opentelemetry.io/otel/metric +package embedded // import "go.opentelemetry.io/otel/metric/embedded" + +// MeterProvider is embedded in +// [go.opentelemetry.io/otel/metric.MeterProvider]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.MeterProvider] if you want users to +// experience a compilation error, signaling they need to update to your latest +// implementation, when the [go.opentelemetry.io/otel/metric.MeterProvider] +// interface is extended (which is something that can happen without a major +// version bump of the API package). +type MeterProvider interface{ meterProvider() } + +// Meter is embedded in [go.opentelemetry.io/otel/metric.Meter]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Meter] if you want users to experience a +// compilation error, signaling they need to update to your latest +// implementation, when the [go.opentelemetry.io/otel/metric.Meter] interface +// is extended (which is something that can happen without a major version bump +// of the API package). +type Meter interface{ meter() } + +// Float64Observer is embedded in +// [go.opentelemetry.io/otel/metric.Float64Observer]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Float64Observer] if you want +// users to experience a compilation error, signaling they need to update to +// your latest implementation, when the +// [go.opentelemetry.io/otel/metric.Float64Observer] interface is +// extended (which is something that can happen without a major version bump of +// the API package). +type Float64Observer interface{ float64Observer() } + +// Int64Observer is embedded in +// [go.opentelemetry.io/otel/metric.Int64Observer]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Int64Observer] if you want users +// to experience a compilation error, signaling they need to update to your +// latest implementation, when the +// [go.opentelemetry.io/otel/metric.Int64Observer] interface is +// extended (which is something that can happen without a major version bump of +// the API package). +type Int64Observer interface{ int64Observer() } + +// Observer is embedded in [go.opentelemetry.io/otel/metric.Observer]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Observer] if you want users to experience a +// compilation error, signaling they need to update to your latest +// implementation, when the [go.opentelemetry.io/otel/metric.Observer] +// interface is extended (which is something that can happen without a major +// version bump of the API package). +type Observer interface{ observer() } + +// Registration is embedded in [go.opentelemetry.io/otel/metric.Registration]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Registration] if you want users to +// experience a compilation error, signaling they need to update to your latest +// implementation, when the [go.opentelemetry.io/otel/metric.Registration] +// interface is extended (which is something that can happen without a major +// version bump of the API package). +type Registration interface{ registration() } + +// Float64Counter is embedded in +// [go.opentelemetry.io/otel/metric.Float64Counter]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Float64Counter] if you want +// users to experience a compilation error, signaling they need to update to +// your latest implementation, when the +// [go.opentelemetry.io/otel/metric.Float64Counter] interface is +// extended (which is something that can happen without a major version bump of +// the API package). +type Float64Counter interface{ float64Counter() } + +// Float64Histogram is embedded in +// [go.opentelemetry.io/otel/metric.Float64Histogram]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Float64Histogram] if you want +// users to experience a compilation error, signaling they need to update to +// your latest implementation, when the +// [go.opentelemetry.io/otel/metric.Float64Histogram] interface is +// extended (which is something that can happen without a major version bump of +// the API package). +type Float64Histogram interface{ float64Histogram() } + +// Float64Gauge is embedded in [go.opentelemetry.io/otel/metric.Float64Gauge]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Float64Gauge] if you want users to +// experience a compilation error, signaling they need to update to your latest +// implementation, when the [go.opentelemetry.io/otel/metric.Float64Gauge] +// interface is extended (which is something that can happen without a major +// version bump of the API package). +type Float64Gauge interface{ float64Gauge() } + +// Float64ObservableCounter is embedded in +// [go.opentelemetry.io/otel/metric.Float64ObservableCounter]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Float64ObservableCounter] if you +// want users to experience a compilation error, signaling they need to update +// to your latest implementation, when the +// [go.opentelemetry.io/otel/metric.Float64ObservableCounter] +// interface is extended (which is something that can happen without a major +// version bump of the API package). +type Float64ObservableCounter interface{ float64ObservableCounter() } + +// Float64ObservableGauge is embedded in +// [go.opentelemetry.io/otel/metric.Float64ObservableGauge]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Float64ObservableGauge] if you +// want users to experience a compilation error, signaling they need to update +// to your latest implementation, when the +// [go.opentelemetry.io/otel/metric.Float64ObservableGauge] +// interface is extended (which is something that can happen without a major +// version bump of the API package). +type Float64ObservableGauge interface{ float64ObservableGauge() } + +// Float64ObservableUpDownCounter is embedded in +// [go.opentelemetry.io/otel/metric.Float64ObservableUpDownCounter]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Float64ObservableUpDownCounter] +// if you want users to experience a compilation error, signaling they need to +// update to your latest implementation, when the +// [go.opentelemetry.io/otel/metric.Float64ObservableUpDownCounter] +// interface is extended (which is something that can happen without a major +// version bump of the API package). +type Float64ObservableUpDownCounter interface{ float64ObservableUpDownCounter() } + +// Float64UpDownCounter is embedded in +// [go.opentelemetry.io/otel/metric.Float64UpDownCounter]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Float64UpDownCounter] if you +// want users to experience a compilation error, signaling they need to update +// to your latest implementation, when the +// [go.opentelemetry.io/otel/metric.Float64UpDownCounter] interface +// is extended (which is something that can happen without a major version bump +// of the API package). +type Float64UpDownCounter interface{ float64UpDownCounter() } + +// Int64Counter is embedded in +// [go.opentelemetry.io/otel/metric.Int64Counter]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Int64Counter] if you want users +// to experience a compilation error, signaling they need to update to your +// latest implementation, when the +// [go.opentelemetry.io/otel/metric.Int64Counter] interface is +// extended (which is something that can happen without a major version bump of +// the API package). +type Int64Counter interface{ int64Counter() } + +// Int64Histogram is embedded in +// [go.opentelemetry.io/otel/metric.Int64Histogram]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Int64Histogram] if you want +// users to experience a compilation error, signaling they need to update to +// your latest implementation, when the +// [go.opentelemetry.io/otel/metric.Int64Histogram] interface is +// extended (which is something that can happen without a major version bump of +// the API package). +type Int64Histogram interface{ int64Histogram() } + +// Int64Gauge is embedded in [go.opentelemetry.io/otel/metric.Int64Gauge]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Int64Gauge] if you want users to experience +// a compilation error, signaling they need to update to your latest +// implementation, when the [go.opentelemetry.io/otel/metric.Int64Gauge] +// interface is extended (which is something that can happen without a major +// version bump of the API package). +type Int64Gauge interface{ int64Gauge() } + +// Int64ObservableCounter is embedded in +// [go.opentelemetry.io/otel/metric.Int64ObservableCounter]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Int64ObservableCounter] if you +// want users to experience a compilation error, signaling they need to update +// to your latest implementation, when the +// [go.opentelemetry.io/otel/metric.Int64ObservableCounter] +// interface is extended (which is something that can happen without a major +// version bump of the API package). +type Int64ObservableCounter interface{ int64ObservableCounter() } + +// Int64ObservableGauge is embedded in +// [go.opentelemetry.io/otel/metric.Int64ObservableGauge]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Int64ObservableGauge] if you +// want users to experience a compilation error, signaling they need to update +// to your latest implementation, when the +// [go.opentelemetry.io/otel/metric.Int64ObservableGauge] interface +// is extended (which is something that can happen without a major version bump +// of the API package). +type Int64ObservableGauge interface{ int64ObservableGauge() } + +// Int64ObservableUpDownCounter is embedded in +// [go.opentelemetry.io/otel/metric.Int64ObservableUpDownCounter]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Int64ObservableUpDownCounter] if +// you want users to experience a compilation error, signaling they need to +// update to your latest implementation, when the +// [go.opentelemetry.io/otel/metric.Int64ObservableUpDownCounter] +// interface is extended (which is something that can happen without a major +// version bump of the API package). +type Int64ObservableUpDownCounter interface{ int64ObservableUpDownCounter() } + +// Int64UpDownCounter is embedded in +// [go.opentelemetry.io/otel/metric.Int64UpDownCounter]. +// +// Embed this interface in your implementation of the +// [go.opentelemetry.io/otel/metric.Int64UpDownCounter] if you want +// users to experience a compilation error, signaling they need to update to +// your latest implementation, when the +// [go.opentelemetry.io/otel/metric.Int64UpDownCounter] interface is +// extended (which is something that can happen without a major version bump of +// the API package). +type Int64UpDownCounter interface{ int64UpDownCounter() } diff --git a/vendor/go.opentelemetry.io/otel/metric/instrument.go b/vendor/go.opentelemetry.io/otel/metric/instrument.go new file mode 100644 index 00000000..ea52e402 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/instrument.go @@ -0,0 +1,368 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package metric // import "go.opentelemetry.io/otel/metric" + +import "go.opentelemetry.io/otel/attribute" + +// Observable is used as a grouping mechanism for all instruments that are +// updated within a Callback. +type Observable interface { + observable() +} + +// InstrumentOption applies options to all instruments. +type InstrumentOption interface { + Int64CounterOption + Int64UpDownCounterOption + Int64HistogramOption + Int64GaugeOption + Int64ObservableCounterOption + Int64ObservableUpDownCounterOption + Int64ObservableGaugeOption + + Float64CounterOption + Float64UpDownCounterOption + Float64HistogramOption + Float64GaugeOption + Float64ObservableCounterOption + Float64ObservableUpDownCounterOption + Float64ObservableGaugeOption +} + +// HistogramOption applies options to histogram instruments. +type HistogramOption interface { + Int64HistogramOption + Float64HistogramOption +} + +type descOpt string + +func (o descOpt) applyFloat64Counter(c Float64CounterConfig) Float64CounterConfig { + c.description = string(o) + return c +} + +func (o descOpt) applyFloat64UpDownCounter(c Float64UpDownCounterConfig) Float64UpDownCounterConfig { + c.description = string(o) + return c +} + +func (o descOpt) applyFloat64Histogram(c Float64HistogramConfig) Float64HistogramConfig { + c.description = string(o) + return c +} + +func (o descOpt) applyFloat64Gauge(c Float64GaugeConfig) Float64GaugeConfig { + c.description = string(o) + return c +} + +func (o descOpt) applyFloat64ObservableCounter(c Float64ObservableCounterConfig) Float64ObservableCounterConfig { + c.description = string(o) + return c +} + +func (o descOpt) applyFloat64ObservableUpDownCounter(c Float64ObservableUpDownCounterConfig) Float64ObservableUpDownCounterConfig { + c.description = string(o) + return c +} + +func (o descOpt) applyFloat64ObservableGauge(c Float64ObservableGaugeConfig) Float64ObservableGaugeConfig { + c.description = string(o) + return c +} + +func (o descOpt) applyInt64Counter(c Int64CounterConfig) Int64CounterConfig { + c.description = string(o) + return c +} + +func (o descOpt) applyInt64UpDownCounter(c Int64UpDownCounterConfig) Int64UpDownCounterConfig { + c.description = string(o) + return c +} + +func (o descOpt) applyInt64Histogram(c Int64HistogramConfig) Int64HistogramConfig { + c.description = string(o) + return c +} + +func (o descOpt) applyInt64Gauge(c Int64GaugeConfig) Int64GaugeConfig { + c.description = string(o) + return c +} + +func (o descOpt) applyInt64ObservableCounter(c Int64ObservableCounterConfig) Int64ObservableCounterConfig { + c.description = string(o) + return c +} + +func (o descOpt) applyInt64ObservableUpDownCounter(c Int64ObservableUpDownCounterConfig) Int64ObservableUpDownCounterConfig { + c.description = string(o) + return c +} + +func (o descOpt) applyInt64ObservableGauge(c Int64ObservableGaugeConfig) Int64ObservableGaugeConfig { + c.description = string(o) + return c +} + +// WithDescription sets the instrument description. +func WithDescription(desc string) InstrumentOption { return descOpt(desc) } + +type unitOpt string + +func (o unitOpt) applyFloat64Counter(c Float64CounterConfig) Float64CounterConfig { + c.unit = string(o) + return c +} + +func (o unitOpt) applyFloat64UpDownCounter(c Float64UpDownCounterConfig) Float64UpDownCounterConfig { + c.unit = string(o) + return c +} + +func (o unitOpt) applyFloat64Histogram(c Float64HistogramConfig) Float64HistogramConfig { + c.unit = string(o) + return c +} + +func (o unitOpt) applyFloat64Gauge(c Float64GaugeConfig) Float64GaugeConfig { + c.unit = string(o) + return c +} + +func (o unitOpt) applyFloat64ObservableCounter(c Float64ObservableCounterConfig) Float64ObservableCounterConfig { + c.unit = string(o) + return c +} + +func (o unitOpt) applyFloat64ObservableUpDownCounter(c Float64ObservableUpDownCounterConfig) Float64ObservableUpDownCounterConfig { + c.unit = string(o) + return c +} + +func (o unitOpt) applyFloat64ObservableGauge(c Float64ObservableGaugeConfig) Float64ObservableGaugeConfig { + c.unit = string(o) + return c +} + +func (o unitOpt) applyInt64Counter(c Int64CounterConfig) Int64CounterConfig { + c.unit = string(o) + return c +} + +func (o unitOpt) applyInt64UpDownCounter(c Int64UpDownCounterConfig) Int64UpDownCounterConfig { + c.unit = string(o) + return c +} + +func (o unitOpt) applyInt64Histogram(c Int64HistogramConfig) Int64HistogramConfig { + c.unit = string(o) + return c +} + +func (o unitOpt) applyInt64Gauge(c Int64GaugeConfig) Int64GaugeConfig { + c.unit = string(o) + return c +} + +func (o unitOpt) applyInt64ObservableCounter(c Int64ObservableCounterConfig) Int64ObservableCounterConfig { + c.unit = string(o) + return c +} + +func (o unitOpt) applyInt64ObservableUpDownCounter(c Int64ObservableUpDownCounterConfig) Int64ObservableUpDownCounterConfig { + c.unit = string(o) + return c +} + +func (o unitOpt) applyInt64ObservableGauge(c Int64ObservableGaugeConfig) Int64ObservableGaugeConfig { + c.unit = string(o) + return c +} + +// WithUnit sets the instrument unit. +// +// The unit u should be defined using the appropriate [UCUM](https://ucum.org) case-sensitive code. +func WithUnit(u string) InstrumentOption { return unitOpt(u) } + +// WithExplicitBucketBoundaries sets the instrument explicit bucket boundaries. +// +// This option is considered "advisory", and may be ignored by API implementations. +func WithExplicitBucketBoundaries(bounds ...float64) HistogramOption { return bucketOpt(bounds) } + +type bucketOpt []float64 + +func (o bucketOpt) applyFloat64Histogram(c Float64HistogramConfig) Float64HistogramConfig { + c.explicitBucketBoundaries = o + return c +} + +func (o bucketOpt) applyInt64Histogram(c Int64HistogramConfig) Int64HistogramConfig { + c.explicitBucketBoundaries = o + return c +} + +// AddOption applies options to an addition measurement. See +// [MeasurementOption] for other options that can be used as an AddOption. +type AddOption interface { + applyAdd(AddConfig) AddConfig +} + +// AddConfig contains options for an addition measurement. +type AddConfig struct { + attrs attribute.Set +} + +// NewAddConfig returns a new [AddConfig] with all opts applied. +func NewAddConfig(opts []AddOption) AddConfig { + config := AddConfig{attrs: *attribute.EmptySet()} + for _, o := range opts { + config = o.applyAdd(config) + } + return config +} + +// Attributes returns the configured attribute set. +func (c AddConfig) Attributes() attribute.Set { + return c.attrs +} + +// RecordOption applies options to an addition measurement. See +// [MeasurementOption] for other options that can be used as a RecordOption. +type RecordOption interface { + applyRecord(RecordConfig) RecordConfig +} + +// RecordConfig contains options for a recorded measurement. +type RecordConfig struct { + attrs attribute.Set +} + +// NewRecordConfig returns a new [RecordConfig] with all opts applied. +func NewRecordConfig(opts []RecordOption) RecordConfig { + config := RecordConfig{attrs: *attribute.EmptySet()} + for _, o := range opts { + config = o.applyRecord(config) + } + return config +} + +// Attributes returns the configured attribute set. +func (c RecordConfig) Attributes() attribute.Set { + return c.attrs +} + +// ObserveOption applies options to an addition measurement. See +// [MeasurementOption] for other options that can be used as a ObserveOption. +type ObserveOption interface { + applyObserve(ObserveConfig) ObserveConfig +} + +// ObserveConfig contains options for an observed measurement. +type ObserveConfig struct { + attrs attribute.Set +} + +// NewObserveConfig returns a new [ObserveConfig] with all opts applied. +func NewObserveConfig(opts []ObserveOption) ObserveConfig { + config := ObserveConfig{attrs: *attribute.EmptySet()} + for _, o := range opts { + config = o.applyObserve(config) + } + return config +} + +// Attributes returns the configured attribute set. +func (c ObserveConfig) Attributes() attribute.Set { + return c.attrs +} + +// MeasurementOption applies options to all instrument measurement. +type MeasurementOption interface { + AddOption + RecordOption + ObserveOption +} + +type attrOpt struct { + set attribute.Set +} + +// mergeSets returns the union of keys between a and b. Any duplicate keys will +// use the value associated with b. +func mergeSets(a, b attribute.Set) attribute.Set { + // NewMergeIterator uses the first value for any duplicates. + iter := attribute.NewMergeIterator(&b, &a) + merged := make([]attribute.KeyValue, 0, a.Len()+b.Len()) + for iter.Next() { + merged = append(merged, iter.Attribute()) + } + return attribute.NewSet(merged...) +} + +func (o attrOpt) applyAdd(c AddConfig) AddConfig { + switch { + case o.set.Len() == 0: + case c.attrs.Len() == 0: + c.attrs = o.set + default: + c.attrs = mergeSets(c.attrs, o.set) + } + return c +} + +func (o attrOpt) applyRecord(c RecordConfig) RecordConfig { + switch { + case o.set.Len() == 0: + case c.attrs.Len() == 0: + c.attrs = o.set + default: + c.attrs = mergeSets(c.attrs, o.set) + } + return c +} + +func (o attrOpt) applyObserve(c ObserveConfig) ObserveConfig { + switch { + case o.set.Len() == 0: + case c.attrs.Len() == 0: + c.attrs = o.set + default: + c.attrs = mergeSets(c.attrs, o.set) + } + return c +} + +// WithAttributeSet sets the attribute Set associated with a measurement is +// made with. +// +// If multiple WithAttributeSet or WithAttributes options are passed the +// attributes will be merged together in the order they are passed. Attributes +// with duplicate keys will use the last value passed. +func WithAttributeSet(attributes attribute.Set) MeasurementOption { + return attrOpt{set: attributes} +} + +// WithAttributes converts attributes into an attribute Set and sets the Set to +// be associated with a measurement. This is shorthand for: +// +// cp := make([]attribute.KeyValue, len(attributes)) +// copy(cp, attributes) +// WithAttributes(attribute.NewSet(cp...)) +// +// [attribute.NewSet] may modify the passed attributes so this will make a copy +// of attributes before creating a set in order to ensure this function is +// concurrent safe. This makes this option function less optimized in +// comparison to [WithAttributeSet]. Therefore, [WithAttributeSet] should be +// preferred for performance sensitive code. +// +// See [WithAttributeSet] for information about how multiple WithAttributes are +// merged. +func WithAttributes(attributes ...attribute.KeyValue) MeasurementOption { + cp := make([]attribute.KeyValue, len(attributes)) + copy(cp, attributes) + return attrOpt{set: attribute.NewSet(cp...)} +} diff --git a/vendor/go.opentelemetry.io/otel/metric/meter.go b/vendor/go.opentelemetry.io/otel/metric/meter.go new file mode 100644 index 00000000..460b3f9b --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/meter.go @@ -0,0 +1,209 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package metric // import "go.opentelemetry.io/otel/metric" + +import ( + "context" + + "go.opentelemetry.io/otel/metric/embedded" +) + +// MeterProvider provides access to named Meter instances, for instrumenting +// an application or package. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type MeterProvider interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.MeterProvider + + // Meter returns a new Meter with the provided name and configuration. + // + // A Meter should be scoped at most to a single package. The name needs to + // be unique so it does not collide with other names used by + // an application, nor other applications. To achieve this, the import path + // of the instrumentation package is recommended to be used as name. + // + // If the name is empty, then an implementation defined default name will + // be used instead. + Meter(name string, opts ...MeterOption) Meter +} + +// Meter provides access to instrument instances for recording metrics. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Meter interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Meter + + // Int64Counter returns a new Int64Counter instrument identified by name + // and configured with options. The instrument is used to synchronously + // record increasing int64 measurements during a computational operation. + Int64Counter(name string, options ...Int64CounterOption) (Int64Counter, error) + // Int64UpDownCounter returns a new Int64UpDownCounter instrument + // identified by name and configured with options. The instrument is used + // to synchronously record int64 measurements during a computational + // operation. + Int64UpDownCounter(name string, options ...Int64UpDownCounterOption) (Int64UpDownCounter, error) + // Int64Histogram returns a new Int64Histogram instrument identified by + // name and configured with options. The instrument is used to + // synchronously record the distribution of int64 measurements during a + // computational operation. + Int64Histogram(name string, options ...Int64HistogramOption) (Int64Histogram, error) + // Int64Gauge returns a new Int64Gauge instrument identified by name and + // configured with options. The instrument is used to synchronously record + // instantaneous int64 measurements during a computational operation. + Int64Gauge(name string, options ...Int64GaugeOption) (Int64Gauge, error) + // Int64ObservableCounter returns a new Int64ObservableCounter identified + // by name and configured with options. The instrument is used to + // asynchronously record increasing int64 measurements once per a + // measurement collection cycle. + // + // Measurements for the returned instrument are made via a callback. Use + // the WithInt64Callback option to register the callback here, or use the + // RegisterCallback method of this Meter to register one later. See the + // Measurements section of the package documentation for more information. + Int64ObservableCounter(name string, options ...Int64ObservableCounterOption) (Int64ObservableCounter, error) + // Int64ObservableUpDownCounter returns a new Int64ObservableUpDownCounter + // instrument identified by name and configured with options. The + // instrument is used to asynchronously record int64 measurements once per + // a measurement collection cycle. + // + // Measurements for the returned instrument are made via a callback. Use + // the WithInt64Callback option to register the callback here, or use the + // RegisterCallback method of this Meter to register one later. See the + // Measurements section of the package documentation for more information. + Int64ObservableUpDownCounter(name string, options ...Int64ObservableUpDownCounterOption) (Int64ObservableUpDownCounter, error) + // Int64ObservableGauge returns a new Int64ObservableGauge instrument + // identified by name and configured with options. The instrument is used + // to asynchronously record instantaneous int64 measurements once per a + // measurement collection cycle. + // + // Measurements for the returned instrument are made via a callback. Use + // the WithInt64Callback option to register the callback here, or use the + // RegisterCallback method of this Meter to register one later. See the + // Measurements section of the package documentation for more information. + Int64ObservableGauge(name string, options ...Int64ObservableGaugeOption) (Int64ObservableGauge, error) + + // Float64Counter returns a new Float64Counter instrument identified by + // name and configured with options. The instrument is used to + // synchronously record increasing float64 measurements during a + // computational operation. + Float64Counter(name string, options ...Float64CounterOption) (Float64Counter, error) + // Float64UpDownCounter returns a new Float64UpDownCounter instrument + // identified by name and configured with options. The instrument is used + // to synchronously record float64 measurements during a computational + // operation. + Float64UpDownCounter(name string, options ...Float64UpDownCounterOption) (Float64UpDownCounter, error) + // Float64Histogram returns a new Float64Histogram instrument identified by + // name and configured with options. The instrument is used to + // synchronously record the distribution of float64 measurements during a + // computational operation. + Float64Histogram(name string, options ...Float64HistogramOption) (Float64Histogram, error) + // Float64Gauge returns a new Float64Gauge instrument identified by name and + // configured with options. The instrument is used to synchronously record + // instantaneous float64 measurements during a computational operation. + Float64Gauge(name string, options ...Float64GaugeOption) (Float64Gauge, error) + // Float64ObservableCounter returns a new Float64ObservableCounter + // instrument identified by name and configured with options. The + // instrument is used to asynchronously record increasing float64 + // measurements once per a measurement collection cycle. + // + // Measurements for the returned instrument are made via a callback. Use + // the WithFloat64Callback option to register the callback here, or use the + // RegisterCallback method of this Meter to register one later. See the + // Measurements section of the package documentation for more information. + Float64ObservableCounter(name string, options ...Float64ObservableCounterOption) (Float64ObservableCounter, error) + // Float64ObservableUpDownCounter returns a new + // Float64ObservableUpDownCounter instrument identified by name and + // configured with options. The instrument is used to asynchronously record + // float64 measurements once per a measurement collection cycle. + // + // Measurements for the returned instrument are made via a callback. Use + // the WithFloat64Callback option to register the callback here, or use the + // RegisterCallback method of this Meter to register one later. See the + // Measurements section of the package documentation for more information. + Float64ObservableUpDownCounter(name string, options ...Float64ObservableUpDownCounterOption) (Float64ObservableUpDownCounter, error) + // Float64ObservableGauge returns a new Float64ObservableGauge instrument + // identified by name and configured with options. The instrument is used + // to asynchronously record instantaneous float64 measurements once per a + // measurement collection cycle. + // + // Measurements for the returned instrument are made via a callback. Use + // the WithFloat64Callback option to register the callback here, or use the + // RegisterCallback method of this Meter to register one later. See the + // Measurements section of the package documentation for more information. + Float64ObservableGauge(name string, options ...Float64ObservableGaugeOption) (Float64ObservableGauge, error) + + // RegisterCallback registers f to be called during the collection of a + // measurement cycle. + // + // If Unregister of the returned Registration is called, f needs to be + // unregistered and not called during collection. + // + // The instruments f is registered with are the only instruments that f may + // observe values for. + // + // If no instruments are passed, f should not be registered nor called + // during collection. + // + // The function f needs to be concurrent safe. + RegisterCallback(f Callback, instruments ...Observable) (Registration, error) +} + +// Callback is a function registered with a Meter that makes observations for +// the set of instruments it is registered with. The Observer parameter is used +// to record measurement observations for these instruments. +// +// The function needs to complete in a finite amount of time and the deadline +// of the passed context is expected to be honored. +// +// The function needs to make unique observations across all registered +// Callbacks. Meaning, it should not report measurements for an instrument with +// the same attributes as another Callback will report. +// +// The function needs to be concurrent safe. +type Callback func(context.Context, Observer) error + +// Observer records measurements for multiple instruments in a Callback. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Observer interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Observer + + // ObserveFloat64 records the float64 value for obsrv. + ObserveFloat64(obsrv Float64Observable, value float64, opts ...ObserveOption) + // ObserveInt64 records the int64 value for obsrv. + ObserveInt64(obsrv Int64Observable, value int64, opts ...ObserveOption) +} + +// Registration is an token representing the unique registration of a callback +// for a set of instruments with a Meter. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Registration interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Registration + + // Unregister removes the callback registration from a Meter. + // + // This method needs to be idempotent and concurrent safe. + Unregister() error +} diff --git a/vendor/go.opentelemetry.io/otel/metric/syncfloat64.go b/vendor/go.opentelemetry.io/otel/metric/syncfloat64.go new file mode 100644 index 00000000..8403a4ba --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/syncfloat64.go @@ -0,0 +1,226 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package metric // import "go.opentelemetry.io/otel/metric" + +import ( + "context" + + "go.opentelemetry.io/otel/metric/embedded" +) + +// Float64Counter is an instrument that records increasing float64 values. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Float64Counter interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Float64Counter + + // Add records a change to the counter. + // + // Use the WithAttributeSet (or, if performance is not a concern, + // the WithAttributes) option to include measurement attributes. + Add(ctx context.Context, incr float64, options ...AddOption) +} + +// Float64CounterConfig contains options for synchronous counter instruments that +// record float64 values. +type Float64CounterConfig struct { + description string + unit string +} + +// NewFloat64CounterConfig returns a new [Float64CounterConfig] with all opts +// applied. +func NewFloat64CounterConfig(opts ...Float64CounterOption) Float64CounterConfig { + var config Float64CounterConfig + for _, o := range opts { + config = o.applyFloat64Counter(config) + } + return config +} + +// Description returns the configured description. +func (c Float64CounterConfig) Description() string { + return c.description +} + +// Unit returns the configured unit. +func (c Float64CounterConfig) Unit() string { + return c.unit +} + +// Float64CounterOption applies options to a [Float64CounterConfig]. See +// [InstrumentOption] for other options that can be used as a +// Float64CounterOption. +type Float64CounterOption interface { + applyFloat64Counter(Float64CounterConfig) Float64CounterConfig +} + +// Float64UpDownCounter is an instrument that records increasing or decreasing +// float64 values. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Float64UpDownCounter interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Float64UpDownCounter + + // Add records a change to the counter. + // + // Use the WithAttributeSet (or, if performance is not a concern, + // the WithAttributes) option to include measurement attributes. + Add(ctx context.Context, incr float64, options ...AddOption) +} + +// Float64UpDownCounterConfig contains options for synchronous counter +// instruments that record float64 values. +type Float64UpDownCounterConfig struct { + description string + unit string +} + +// NewFloat64UpDownCounterConfig returns a new [Float64UpDownCounterConfig] +// with all opts applied. +func NewFloat64UpDownCounterConfig(opts ...Float64UpDownCounterOption) Float64UpDownCounterConfig { + var config Float64UpDownCounterConfig + for _, o := range opts { + config = o.applyFloat64UpDownCounter(config) + } + return config +} + +// Description returns the configured description. +func (c Float64UpDownCounterConfig) Description() string { + return c.description +} + +// Unit returns the configured unit. +func (c Float64UpDownCounterConfig) Unit() string { + return c.unit +} + +// Float64UpDownCounterOption applies options to a +// [Float64UpDownCounterConfig]. See [InstrumentOption] for other options that +// can be used as a Float64UpDownCounterOption. +type Float64UpDownCounterOption interface { + applyFloat64UpDownCounter(Float64UpDownCounterConfig) Float64UpDownCounterConfig +} + +// Float64Histogram is an instrument that records a distribution of float64 +// values. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Float64Histogram interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Float64Histogram + + // Record adds an additional value to the distribution. + // + // Use the WithAttributeSet (or, if performance is not a concern, + // the WithAttributes) option to include measurement attributes. + Record(ctx context.Context, incr float64, options ...RecordOption) +} + +// Float64HistogramConfig contains options for synchronous histogram +// instruments that record float64 values. +type Float64HistogramConfig struct { + description string + unit string + explicitBucketBoundaries []float64 +} + +// NewFloat64HistogramConfig returns a new [Float64HistogramConfig] with all +// opts applied. +func NewFloat64HistogramConfig(opts ...Float64HistogramOption) Float64HistogramConfig { + var config Float64HistogramConfig + for _, o := range opts { + config = o.applyFloat64Histogram(config) + } + return config +} + +// Description returns the configured description. +func (c Float64HistogramConfig) Description() string { + return c.description +} + +// Unit returns the configured unit. +func (c Float64HistogramConfig) Unit() string { + return c.unit +} + +// ExplicitBucketBoundaries returns the configured explicit bucket boundaries. +func (c Float64HistogramConfig) ExplicitBucketBoundaries() []float64 { + return c.explicitBucketBoundaries +} + +// Float64HistogramOption applies options to a [Float64HistogramConfig]. See +// [InstrumentOption] for other options that can be used as a +// Float64HistogramOption. +type Float64HistogramOption interface { + applyFloat64Histogram(Float64HistogramConfig) Float64HistogramConfig +} + +// Float64Gauge is an instrument that records instantaneous float64 values. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Float64Gauge interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Float64Gauge + + // Record records the instantaneous value. + // + // Use the WithAttributeSet (or, if performance is not a concern, + // the WithAttributes) option to include measurement attributes. + Record(ctx context.Context, value float64, options ...RecordOption) +} + +// Float64GaugeConfig contains options for synchronous gauge instruments that +// record float64 values. +type Float64GaugeConfig struct { + description string + unit string +} + +// NewFloat64GaugeConfig returns a new [Float64GaugeConfig] with all opts +// applied. +func NewFloat64GaugeConfig(opts ...Float64GaugeOption) Float64GaugeConfig { + var config Float64GaugeConfig + for _, o := range opts { + config = o.applyFloat64Gauge(config) + } + return config +} + +// Description returns the configured description. +func (c Float64GaugeConfig) Description() string { + return c.description +} + +// Unit returns the configured unit. +func (c Float64GaugeConfig) Unit() string { + return c.unit +} + +// Float64GaugeOption applies options to a [Float64GaugeConfig]. See +// [InstrumentOption] for other options that can be used as a +// Float64GaugeOption. +type Float64GaugeOption interface { + applyFloat64Gauge(Float64GaugeConfig) Float64GaugeConfig +} diff --git a/vendor/go.opentelemetry.io/otel/metric/syncint64.go b/vendor/go.opentelemetry.io/otel/metric/syncint64.go new file mode 100644 index 00000000..783fdfba --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/syncint64.go @@ -0,0 +1,226 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package metric // import "go.opentelemetry.io/otel/metric" + +import ( + "context" + + "go.opentelemetry.io/otel/metric/embedded" +) + +// Int64Counter is an instrument that records increasing int64 values. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Int64Counter interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Int64Counter + + // Add records a change to the counter. + // + // Use the WithAttributeSet (or, if performance is not a concern, + // the WithAttributes) option to include measurement attributes. + Add(ctx context.Context, incr int64, options ...AddOption) +} + +// Int64CounterConfig contains options for synchronous counter instruments that +// record int64 values. +type Int64CounterConfig struct { + description string + unit string +} + +// NewInt64CounterConfig returns a new [Int64CounterConfig] with all opts +// applied. +func NewInt64CounterConfig(opts ...Int64CounterOption) Int64CounterConfig { + var config Int64CounterConfig + for _, o := range opts { + config = o.applyInt64Counter(config) + } + return config +} + +// Description returns the configured description. +func (c Int64CounterConfig) Description() string { + return c.description +} + +// Unit returns the configured unit. +func (c Int64CounterConfig) Unit() string { + return c.unit +} + +// Int64CounterOption applies options to a [Int64CounterConfig]. See +// [InstrumentOption] for other options that can be used as an +// Int64CounterOption. +type Int64CounterOption interface { + applyInt64Counter(Int64CounterConfig) Int64CounterConfig +} + +// Int64UpDownCounter is an instrument that records increasing or decreasing +// int64 values. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Int64UpDownCounter interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Int64UpDownCounter + + // Add records a change to the counter. + // + // Use the WithAttributeSet (or, if performance is not a concern, + // the WithAttributes) option to include measurement attributes. + Add(ctx context.Context, incr int64, options ...AddOption) +} + +// Int64UpDownCounterConfig contains options for synchronous counter +// instruments that record int64 values. +type Int64UpDownCounterConfig struct { + description string + unit string +} + +// NewInt64UpDownCounterConfig returns a new [Int64UpDownCounterConfig] with +// all opts applied. +func NewInt64UpDownCounterConfig(opts ...Int64UpDownCounterOption) Int64UpDownCounterConfig { + var config Int64UpDownCounterConfig + for _, o := range opts { + config = o.applyInt64UpDownCounter(config) + } + return config +} + +// Description returns the configured description. +func (c Int64UpDownCounterConfig) Description() string { + return c.description +} + +// Unit returns the configured unit. +func (c Int64UpDownCounterConfig) Unit() string { + return c.unit +} + +// Int64UpDownCounterOption applies options to a [Int64UpDownCounterConfig]. +// See [InstrumentOption] for other options that can be used as an +// Int64UpDownCounterOption. +type Int64UpDownCounterOption interface { + applyInt64UpDownCounter(Int64UpDownCounterConfig) Int64UpDownCounterConfig +} + +// Int64Histogram is an instrument that records a distribution of int64 +// values. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Int64Histogram interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Int64Histogram + + // Record adds an additional value to the distribution. + // + // Use the WithAttributeSet (or, if performance is not a concern, + // the WithAttributes) option to include measurement attributes. + Record(ctx context.Context, incr int64, options ...RecordOption) +} + +// Int64HistogramConfig contains options for synchronous histogram instruments +// that record int64 values. +type Int64HistogramConfig struct { + description string + unit string + explicitBucketBoundaries []float64 +} + +// NewInt64HistogramConfig returns a new [Int64HistogramConfig] with all opts +// applied. +func NewInt64HistogramConfig(opts ...Int64HistogramOption) Int64HistogramConfig { + var config Int64HistogramConfig + for _, o := range opts { + config = o.applyInt64Histogram(config) + } + return config +} + +// Description returns the configured description. +func (c Int64HistogramConfig) Description() string { + return c.description +} + +// Unit returns the configured unit. +func (c Int64HistogramConfig) Unit() string { + return c.unit +} + +// ExplicitBucketBoundaries returns the configured explicit bucket boundaries. +func (c Int64HistogramConfig) ExplicitBucketBoundaries() []float64 { + return c.explicitBucketBoundaries +} + +// Int64HistogramOption applies options to a [Int64HistogramConfig]. See +// [InstrumentOption] for other options that can be used as an +// Int64HistogramOption. +type Int64HistogramOption interface { + applyInt64Histogram(Int64HistogramConfig) Int64HistogramConfig +} + +// Int64Gauge is an instrument that records instantaneous int64 values. +// +// Warning: Methods may be added to this interface in minor releases. See +// package documentation on API implementation for information on how to set +// default behavior for unimplemented methods. +type Int64Gauge interface { + // Users of the interface can ignore this. This embedded type is only used + // by implementations of this interface. See the "API Implementations" + // section of the package documentation for more information. + embedded.Int64Gauge + + // Record records the instantaneous value. + // + // Use the WithAttributeSet (or, if performance is not a concern, + // the WithAttributes) option to include measurement attributes. + Record(ctx context.Context, value int64, options ...RecordOption) +} + +// Int64GaugeConfig contains options for synchronous gauge instruments that +// record int64 values. +type Int64GaugeConfig struct { + description string + unit string +} + +// NewInt64GaugeConfig returns a new [Int64GaugeConfig] with all opts +// applied. +func NewInt64GaugeConfig(opts ...Int64GaugeOption) Int64GaugeConfig { + var config Int64GaugeConfig + for _, o := range opts { + config = o.applyInt64Gauge(config) + } + return config +} + +// Description returns the configured description. +func (c Int64GaugeConfig) Description() string { + return c.description +} + +// Unit returns the configured unit. +func (c Int64GaugeConfig) Unit() string { + return c.unit +} + +// Int64GaugeOption applies options to a [Int64GaugeConfig]. See +// [InstrumentOption] for other options that can be used as a +// Int64GaugeOption. +type Int64GaugeOption interface { + applyInt64Gauge(Int64GaugeConfig) Int64GaugeConfig +} diff --git a/vendor/golang.org/x/crypto/ssh/keys.go b/vendor/golang.org/x/crypto/ssh/keys.go index df4ebdad..7967665f 100644 --- a/vendor/golang.org/x/crypto/ssh/keys.go +++ b/vendor/golang.org/x/crypto/ssh/keys.go @@ -904,6 +904,10 @@ func (k *skECDSAPublicKey) Verify(data []byte, sig *Signature) error { return errors.New("ssh: signature did not verify") } +func (k *skECDSAPublicKey) CryptoPublicKey() crypto.PublicKey { + return &k.PublicKey +} + type skEd25519PublicKey struct { // application is a URL-like string, typically "ssh:" for SSH. // see openssh/PROTOCOL.u2f for details. @@ -1000,6 +1004,10 @@ func (k *skEd25519PublicKey) Verify(data []byte, sig *Signature) error { return nil } +func (k *skEd25519PublicKey) CryptoPublicKey() crypto.PublicKey { + return k.PublicKey +} + // NewSignerFromKey takes an *rsa.PrivateKey, *dsa.PrivateKey, // *ecdsa.PrivateKey or any other crypto.Signer and returns a // corresponding Signer instance. ECDSA keys must use P-256, P-384 or diff --git a/vendor/golang.org/x/crypto/ssh/server.go b/vendor/golang.org/x/crypto/ssh/server.go index e2ae4f89..3ca9e89e 100644 --- a/vendor/golang.org/x/crypto/ssh/server.go +++ b/vendor/golang.org/x/crypto/ssh/server.go @@ -462,6 +462,24 @@ func (p *PartialSuccessError) Error() string { // It is returned in ServerAuthError.Errors from NewServerConn. var ErrNoAuth = errors.New("ssh: no auth passed yet") +// BannerError is an error that can be returned by authentication handlers in +// ServerConfig to send a banner message to the client. +type BannerError struct { + Err error + Message string +} + +func (b *BannerError) Unwrap() error { + return b.Err +} + +func (b *BannerError) Error() string { + if b.Err == nil { + return b.Message + } + return b.Err.Error() +} + func (s *connection) serverAuthenticate(config *ServerConfig) (*Permissions, error) { sessionID := s.transport.getSessionID() var cache pubKeyCache @@ -734,6 +752,18 @@ userAuthLoop: config.AuthLogCallback(s, userAuthReq.Method, authErr) } + var bannerErr *BannerError + if errors.As(authErr, &bannerErr) { + if bannerErr.Message != "" { + bannerMsg := &userAuthBannerMsg{ + Message: bannerErr.Message, + } + if err := s.transport.writePacket(Marshal(bannerMsg)); err != nil { + return nil, err + } + } + } + if authErr == nil { break userAuthLoop } diff --git a/vendor/golang.org/x/net/http2/http2.go b/vendor/golang.org/x/net/http2/http2.go index 6f2df281..003e649f 100644 --- a/vendor/golang.org/x/net/http2/http2.go +++ b/vendor/golang.org/x/net/http2/http2.go @@ -17,6 +17,7 @@ package http2 // import "golang.org/x/net/http2" import ( "bufio" + "context" "crypto/tls" "fmt" "io" @@ -26,6 +27,7 @@ import ( "strconv" "strings" "sync" + "time" "golang.org/x/net/http/httpguts" ) @@ -210,12 +212,6 @@ type stringWriter interface { WriteString(s string) (n int, err error) } -// A gate lets two goroutines coordinate their activities. -type gate chan struct{} - -func (g gate) Done() { g <- struct{}{} } -func (g gate) Wait() { <-g } - // A closeWaiter is like a sync.WaitGroup but only goes 1 to 0 (open to closed). type closeWaiter chan struct{} @@ -383,3 +379,14 @@ func validPseudoPath(v string) bool { // makes that struct also non-comparable, and generally doesn't add // any size (as long as it's first). type incomparable [0]func() + +// synctestGroupInterface is the methods of synctestGroup used by Server and Transport. +// It's defined as an interface here to let us keep synctestGroup entirely test-only +// and not a part of non-test builds. +type synctestGroupInterface interface { + Join() + Now() time.Time + NewTimer(d time.Duration) timer + AfterFunc(d time.Duration, f func()) timer + ContextWithTimeout(ctx context.Context, d time.Duration) (context.Context, context.CancelFunc) +} diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go index c5d08108..6c349f3e 100644 --- a/vendor/golang.org/x/net/http2/server.go +++ b/vendor/golang.org/x/net/http2/server.go @@ -154,6 +154,39 @@ type Server struct { // so that we don't embed a Mutex in this struct, which will make the // struct non-copyable, which might break some callers. state *serverInternalState + + // Synchronization group used for testing. + // Outside of tests, this is nil. + group synctestGroupInterface +} + +func (s *Server) markNewGoroutine() { + if s.group != nil { + s.group.Join() + } +} + +func (s *Server) now() time.Time { + if s.group != nil { + return s.group.Now() + } + return time.Now() +} + +// newTimer creates a new time.Timer, or a synthetic timer in tests. +func (s *Server) newTimer(d time.Duration) timer { + if s.group != nil { + return s.group.NewTimer(d) + } + return timeTimer{time.NewTimer(d)} +} + +// afterFunc creates a new time.AfterFunc timer, or a synthetic timer in tests. +func (s *Server) afterFunc(d time.Duration, f func()) timer { + if s.group != nil { + return s.group.AfterFunc(d, f) + } + return timeTimer{time.AfterFunc(d, f)} } func (s *Server) initialConnRecvWindowSize() int32 { @@ -400,6 +433,10 @@ func (o *ServeConnOpts) handler() http.Handler { // // The opts parameter is optional. If nil, default values are used. func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { + s.serveConn(c, opts, nil) +} + +func (s *Server) serveConn(c net.Conn, opts *ServeConnOpts, newf func(*serverConn)) { baseCtx, cancel := serverConnBaseContext(c, opts) defer cancel() @@ -426,6 +463,9 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { pushEnabled: true, sawClientPreface: opts.SawClientPreface, } + if newf != nil { + newf(sc) + } s.state.registerConn(sc) defer s.state.unregisterConn(sc) @@ -599,8 +639,8 @@ type serverConn struct { inFrameScheduleLoop bool // whether we're in the scheduleFrameWrite loop needToSendGoAway bool // we need to schedule a GOAWAY frame write goAwayCode ErrCode - shutdownTimer *time.Timer // nil until used - idleTimer *time.Timer // nil if unused + shutdownTimer timer // nil until used + idleTimer timer // nil if unused // Owned by the writeFrameAsync goroutine: headerWriteBuf bytes.Buffer @@ -649,12 +689,12 @@ type stream struct { flow outflow // limits writing from Handler to client inflow inflow // what the client is allowed to POST/etc to us state streamState - resetQueued bool // RST_STREAM queued for write; set by sc.resetStream - gotTrailerHeader bool // HEADER frame for trailers was seen - wroteHeaders bool // whether we wrote headers (not status 100) - readDeadline *time.Timer // nil if unused - writeDeadline *time.Timer // nil if unused - closeErr error // set before cw is closed + resetQueued bool // RST_STREAM queued for write; set by sc.resetStream + gotTrailerHeader bool // HEADER frame for trailers was seen + wroteHeaders bool // whether we wrote headers (not status 100) + readDeadline timer // nil if unused + writeDeadline timer // nil if unused + closeErr error // set before cw is closed trailer http.Header // accumulated trailers reqTrailer http.Header // handler's Request.Trailer @@ -811,8 +851,9 @@ type readFrameResult struct { // consumer is done with the frame. // It's run on its own goroutine. func (sc *serverConn) readFrames() { - gate := make(gate) - gateDone := gate.Done + sc.srv.markNewGoroutine() + gate := make(chan struct{}) + gateDone := func() { gate <- struct{}{} } for { f, err := sc.framer.ReadFrame() select { @@ -843,6 +884,7 @@ type frameWriteResult struct { // At most one goroutine can be running writeFrameAsync at a time per // serverConn. func (sc *serverConn) writeFrameAsync(wr FrameWriteRequest, wd *writeData) { + sc.srv.markNewGoroutine() var err error if wd == nil { err = wr.write.writeFrame(sc) @@ -922,13 +964,13 @@ func (sc *serverConn) serve() { sc.setConnState(http.StateIdle) if sc.srv.IdleTimeout > 0 { - sc.idleTimer = time.AfterFunc(sc.srv.IdleTimeout, sc.onIdleTimer) + sc.idleTimer = sc.srv.afterFunc(sc.srv.IdleTimeout, sc.onIdleTimer) defer sc.idleTimer.Stop() } go sc.readFrames() // closed by defer sc.conn.Close above - settingsTimer := time.AfterFunc(firstSettingsTimeout, sc.onSettingsTimer) + settingsTimer := sc.srv.afterFunc(firstSettingsTimeout, sc.onSettingsTimer) defer settingsTimer.Stop() loopNum := 0 @@ -1057,10 +1099,10 @@ func (sc *serverConn) readPreface() error { errc <- nil } }() - timer := time.NewTimer(prefaceTimeout) // TODO: configurable on *Server? + timer := sc.srv.newTimer(prefaceTimeout) // TODO: configurable on *Server? defer timer.Stop() select { - case <-timer.C: + case <-timer.C(): return errPrefaceTimeout case err := <-errc: if err == nil { @@ -1425,7 +1467,7 @@ func (sc *serverConn) goAway(code ErrCode) { func (sc *serverConn) shutDownIn(d time.Duration) { sc.serveG.check() - sc.shutdownTimer = time.AfterFunc(d, sc.onShutdownTimer) + sc.shutdownTimer = sc.srv.afterFunc(d, sc.onShutdownTimer) } func (sc *serverConn) resetStream(se StreamError) { @@ -1639,7 +1681,7 @@ func (sc *serverConn) closeStream(st *stream, err error) { delete(sc.streams, st.id) if len(sc.streams) == 0 { sc.setConnState(http.StateIdle) - if sc.srv.IdleTimeout > 0 { + if sc.srv.IdleTimeout > 0 && sc.idleTimer != nil { sc.idleTimer.Reset(sc.srv.IdleTimeout) } if h1ServerKeepAlivesDisabled(sc.hs) { @@ -1661,6 +1703,7 @@ func (sc *serverConn) closeStream(st *stream, err error) { } } st.closeErr = err + st.cancelCtx() st.cw.Close() // signals Handler's CloseNotifier, unblocks writes, etc sc.writeSched.CloseStream(st.id) } @@ -2021,7 +2064,7 @@ func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error { // (in Go 1.8), though. That's a more sane option anyway. if sc.hs.ReadTimeout > 0 { sc.conn.SetReadDeadline(time.Time{}) - st.readDeadline = time.AfterFunc(sc.hs.ReadTimeout, st.onReadTimeout) + st.readDeadline = sc.srv.afterFunc(sc.hs.ReadTimeout, st.onReadTimeout) } return sc.scheduleHandler(id, rw, req, handler) @@ -2119,7 +2162,7 @@ func (sc *serverConn) newStream(id, pusherID uint32, state streamState) *stream st.flow.add(sc.initialStreamSendWindowSize) st.inflow.init(sc.srv.initialStreamRecvWindowSize()) if sc.hs.WriteTimeout > 0 { - st.writeDeadline = time.AfterFunc(sc.hs.WriteTimeout, st.onWriteTimeout) + st.writeDeadline = sc.srv.afterFunc(sc.hs.WriteTimeout, st.onWriteTimeout) } sc.streams[id] = st @@ -2343,6 +2386,7 @@ func (sc *serverConn) handlerDone() { // Run on its own goroutine. func (sc *serverConn) runHandler(rw *responseWriter, req *http.Request, handler func(http.ResponseWriter, *http.Request)) { + sc.srv.markNewGoroutine() defer sc.sendServeMsg(handlerDoneMsg) didPanic := true defer func() { @@ -2639,7 +2683,7 @@ func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) { var date string if _, ok := rws.snapHeader["Date"]; !ok { // TODO(bradfitz): be faster here, like net/http? measure. - date = time.Now().UTC().Format(http.TimeFormat) + date = rws.conn.srv.now().UTC().Format(http.TimeFormat) } for _, v := range rws.snapHeader["Trailer"] { @@ -2761,7 +2805,7 @@ func (rws *responseWriterState) promoteUndeclaredTrailers() { func (w *responseWriter) SetReadDeadline(deadline time.Time) error { st := w.rws.stream - if !deadline.IsZero() && deadline.Before(time.Now()) { + if !deadline.IsZero() && deadline.Before(w.rws.conn.srv.now()) { // If we're setting a deadline in the past, reset the stream immediately // so writes after SetWriteDeadline returns will fail. st.onReadTimeout() @@ -2777,9 +2821,9 @@ func (w *responseWriter) SetReadDeadline(deadline time.Time) error { if deadline.IsZero() { st.readDeadline = nil } else if st.readDeadline == nil { - st.readDeadline = time.AfterFunc(deadline.Sub(time.Now()), st.onReadTimeout) + st.readDeadline = sc.srv.afterFunc(deadline.Sub(sc.srv.now()), st.onReadTimeout) } else { - st.readDeadline.Reset(deadline.Sub(time.Now())) + st.readDeadline.Reset(deadline.Sub(sc.srv.now())) } }) return nil @@ -2787,7 +2831,7 @@ func (w *responseWriter) SetReadDeadline(deadline time.Time) error { func (w *responseWriter) SetWriteDeadline(deadline time.Time) error { st := w.rws.stream - if !deadline.IsZero() && deadline.Before(time.Now()) { + if !deadline.IsZero() && deadline.Before(w.rws.conn.srv.now()) { // If we're setting a deadline in the past, reset the stream immediately // so writes after SetWriteDeadline returns will fail. st.onWriteTimeout() @@ -2803,9 +2847,9 @@ func (w *responseWriter) SetWriteDeadline(deadline time.Time) error { if deadline.IsZero() { st.writeDeadline = nil } else if st.writeDeadline == nil { - st.writeDeadline = time.AfterFunc(deadline.Sub(time.Now()), st.onWriteTimeout) + st.writeDeadline = sc.srv.afterFunc(deadline.Sub(sc.srv.now()), st.onWriteTimeout) } else { - st.writeDeadline.Reset(deadline.Sub(time.Now())) + st.writeDeadline.Reset(deadline.Sub(sc.srv.now())) } }) return nil diff --git a/vendor/golang.org/x/net/http2/testsync.go b/vendor/golang.org/x/net/http2/testsync.go deleted file mode 100644 index 61075bd1..00000000 --- a/vendor/golang.org/x/net/http2/testsync.go +++ /dev/null @@ -1,331 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -package http2 - -import ( - "context" - "sync" - "time" -) - -// testSyncHooks coordinates goroutines in tests. -// -// For example, a call to ClientConn.RoundTrip involves several goroutines, including: -// - the goroutine running RoundTrip; -// - the clientStream.doRequest goroutine, which writes the request; and -// - the clientStream.readLoop goroutine, which reads the response. -// -// Using testSyncHooks, a test can start a RoundTrip and identify when all these goroutines -// are blocked waiting for some condition such as reading the Request.Body or waiting for -// flow control to become available. -// -// The testSyncHooks also manage timers and synthetic time in tests. -// This permits us to, for example, start a request and cause it to time out waiting for -// response headers without resorting to time.Sleep calls. -type testSyncHooks struct { - // active/inactive act as a mutex and condition variable. - // - // - neither chan contains a value: testSyncHooks is locked. - // - active contains a value: unlocked, and at least one goroutine is not blocked - // - inactive contains a value: unlocked, and all goroutines are blocked - active chan struct{} - inactive chan struct{} - - // goroutine counts - total int // total goroutines - condwait map[*sync.Cond]int // blocked in sync.Cond.Wait - blocked []*testBlockedGoroutine // otherwise blocked - - // fake time - now time.Time - timers []*fakeTimer - - // Transport testing: Report various events. - newclientconn func(*ClientConn) - newstream func(*clientStream) -} - -// testBlockedGoroutine is a blocked goroutine. -type testBlockedGoroutine struct { - f func() bool // blocked until f returns true - ch chan struct{} // closed when unblocked -} - -func newTestSyncHooks() *testSyncHooks { - h := &testSyncHooks{ - active: make(chan struct{}, 1), - inactive: make(chan struct{}, 1), - condwait: map[*sync.Cond]int{}, - } - h.inactive <- struct{}{} - h.now = time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC) - return h -} - -// lock acquires the testSyncHooks mutex. -func (h *testSyncHooks) lock() { - select { - case <-h.active: - case <-h.inactive: - } -} - -// waitInactive waits for all goroutines to become inactive. -func (h *testSyncHooks) waitInactive() { - for { - <-h.inactive - if !h.unlock() { - break - } - } -} - -// unlock releases the testSyncHooks mutex. -// It reports whether any goroutines are active. -func (h *testSyncHooks) unlock() (active bool) { - // Look for a blocked goroutine which can be unblocked. - blocked := h.blocked[:0] - unblocked := false - for _, b := range h.blocked { - if !unblocked && b.f() { - unblocked = true - close(b.ch) - } else { - blocked = append(blocked, b) - } - } - h.blocked = blocked - - // Count goroutines blocked on condition variables. - condwait := 0 - for _, count := range h.condwait { - condwait += count - } - - if h.total > condwait+len(blocked) { - h.active <- struct{}{} - return true - } else { - h.inactive <- struct{}{} - return false - } -} - -// goRun starts a new goroutine. -func (h *testSyncHooks) goRun(f func()) { - h.lock() - h.total++ - h.unlock() - go func() { - defer func() { - h.lock() - h.total-- - h.unlock() - }() - f() - }() -} - -// blockUntil indicates that a goroutine is blocked waiting for some condition to become true. -// It waits until f returns true before proceeding. -// -// Example usage: -// -// h.blockUntil(func() bool { -// // Is the context done yet? -// select { -// case <-ctx.Done(): -// default: -// return false -// } -// return true -// }) -// // Wait for the context to become done. -// <-ctx.Done() -// -// The function f passed to blockUntil must be non-blocking and idempotent. -func (h *testSyncHooks) blockUntil(f func() bool) { - if f() { - return - } - ch := make(chan struct{}) - h.lock() - h.blocked = append(h.blocked, &testBlockedGoroutine{ - f: f, - ch: ch, - }) - h.unlock() - <-ch -} - -// broadcast is sync.Cond.Broadcast. -func (h *testSyncHooks) condBroadcast(cond *sync.Cond) { - h.lock() - delete(h.condwait, cond) - h.unlock() - cond.Broadcast() -} - -// broadcast is sync.Cond.Wait. -func (h *testSyncHooks) condWait(cond *sync.Cond) { - h.lock() - h.condwait[cond]++ - h.unlock() -} - -// newTimer creates a new fake timer. -func (h *testSyncHooks) newTimer(d time.Duration) timer { - h.lock() - defer h.unlock() - t := &fakeTimer{ - hooks: h, - when: h.now.Add(d), - c: make(chan time.Time), - } - h.timers = append(h.timers, t) - return t -} - -// afterFunc creates a new fake AfterFunc timer. -func (h *testSyncHooks) afterFunc(d time.Duration, f func()) timer { - h.lock() - defer h.unlock() - t := &fakeTimer{ - hooks: h, - when: h.now.Add(d), - f: f, - } - h.timers = append(h.timers, t) - return t -} - -func (h *testSyncHooks) contextWithTimeout(ctx context.Context, d time.Duration) (context.Context, context.CancelFunc) { - ctx, cancel := context.WithCancel(ctx) - t := h.afterFunc(d, cancel) - return ctx, func() { - t.Stop() - cancel() - } -} - -func (h *testSyncHooks) timeUntilEvent() time.Duration { - h.lock() - defer h.unlock() - var next time.Time - for _, t := range h.timers { - if next.IsZero() || t.when.Before(next) { - next = t.when - } - } - if d := next.Sub(h.now); d > 0 { - return d - } - return 0 -} - -// advance advances time and causes synthetic timers to fire. -func (h *testSyncHooks) advance(d time.Duration) { - h.lock() - defer h.unlock() - h.now = h.now.Add(d) - timers := h.timers[:0] - for _, t := range h.timers { - t := t // remove after go.mod depends on go1.22 - t.mu.Lock() - switch { - case t.when.After(h.now): - timers = append(timers, t) - case t.when.IsZero(): - // stopped timer - default: - t.when = time.Time{} - if t.c != nil { - close(t.c) - } - if t.f != nil { - h.total++ - go func() { - defer func() { - h.lock() - h.total-- - h.unlock() - }() - t.f() - }() - } - } - t.mu.Unlock() - } - h.timers = timers -} - -// A timer wraps a time.Timer, or a synthetic equivalent in tests. -// Unlike time.Timer, timer is single-use: The timer channel is closed when the timer expires. -type timer interface { - C() <-chan time.Time - Stop() bool - Reset(d time.Duration) bool -} - -// timeTimer implements timer using real time. -type timeTimer struct { - t *time.Timer - c chan time.Time -} - -// newTimeTimer creates a new timer using real time. -func newTimeTimer(d time.Duration) timer { - ch := make(chan time.Time) - t := time.AfterFunc(d, func() { - close(ch) - }) - return &timeTimer{t, ch} -} - -// newTimeAfterFunc creates an AfterFunc timer using real time. -func newTimeAfterFunc(d time.Duration, f func()) timer { - return &timeTimer{ - t: time.AfterFunc(d, f), - } -} - -func (t timeTimer) C() <-chan time.Time { return t.c } -func (t timeTimer) Stop() bool { return t.t.Stop() } -func (t timeTimer) Reset(d time.Duration) bool { return t.t.Reset(d) } - -// fakeTimer implements timer using fake time. -type fakeTimer struct { - hooks *testSyncHooks - - mu sync.Mutex - when time.Time // when the timer will fire - c chan time.Time // closed when the timer fires; mutually exclusive with f - f func() // called when the timer fires; mutually exclusive with c -} - -func (t *fakeTimer) C() <-chan time.Time { return t.c } - -func (t *fakeTimer) Stop() bool { - t.mu.Lock() - defer t.mu.Unlock() - stopped := t.when.IsZero() - t.when = time.Time{} - return stopped -} - -func (t *fakeTimer) Reset(d time.Duration) bool { - if t.c != nil || t.f == nil { - panic("fakeTimer only supports Reset on AfterFunc timers") - } - t.mu.Lock() - defer t.mu.Unlock() - t.hooks.lock() - defer t.hooks.unlock() - active := !t.when.IsZero() - t.when = t.hooks.now.Add(d) - if !active { - t.hooks.timers = append(t.hooks.timers, t) - } - return active -} diff --git a/vendor/golang.org/x/net/http2/timer.go b/vendor/golang.org/x/net/http2/timer.go new file mode 100644 index 00000000..0b1c17b8 --- /dev/null +++ b/vendor/golang.org/x/net/http2/timer.go @@ -0,0 +1,20 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +package http2 + +import "time" + +// A timer is a time.Timer, as an interface which can be replaced in tests. +type timer = interface { + C() <-chan time.Time + Reset(d time.Duration) bool + Stop() bool +} + +// timeTimer adapts a time.Timer to the timer interface. +type timeTimer struct { + *time.Timer +} + +func (t timeTimer) C() <-chan time.Time { return t.Timer.C } diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go index 2fa49490..98a49c6b 100644 --- a/vendor/golang.org/x/net/http2/transport.go +++ b/vendor/golang.org/x/net/http2/transport.go @@ -185,7 +185,45 @@ type Transport struct { connPoolOnce sync.Once connPoolOrDef ClientConnPool // non-nil version of ConnPool - syncHooks *testSyncHooks + *transportTestHooks +} + +// Hook points used for testing. +// Outside of tests, t.transportTestHooks is nil and these all have minimal implementations. +// Inside tests, see the testSyncHooks function docs. + +type transportTestHooks struct { + newclientconn func(*ClientConn) + group synctestGroupInterface +} + +func (t *Transport) markNewGoroutine() { + if t != nil && t.transportTestHooks != nil { + t.transportTestHooks.group.Join() + } +} + +// newTimer creates a new time.Timer, or a synthetic timer in tests. +func (t *Transport) newTimer(d time.Duration) timer { + if t.transportTestHooks != nil { + return t.transportTestHooks.group.NewTimer(d) + } + return timeTimer{time.NewTimer(d)} +} + +// afterFunc creates a new time.AfterFunc timer, or a synthetic timer in tests. +func (t *Transport) afterFunc(d time.Duration, f func()) timer { + if t.transportTestHooks != nil { + return t.transportTestHooks.group.AfterFunc(d, f) + } + return timeTimer{time.AfterFunc(d, f)} +} + +func (t *Transport) contextWithTimeout(ctx context.Context, d time.Duration) (context.Context, context.CancelFunc) { + if t.transportTestHooks != nil { + return t.transportTestHooks.group.ContextWithTimeout(ctx, d) + } + return context.WithTimeout(ctx, d) } func (t *Transport) maxHeaderListSize() uint32 { @@ -352,60 +390,6 @@ type ClientConn struct { werr error // first write error that has occurred hbuf bytes.Buffer // HPACK encoder writes into this henc *hpack.Encoder - - syncHooks *testSyncHooks // can be nil -} - -// Hook points used for testing. -// Outside of tests, cc.syncHooks is nil and these all have minimal implementations. -// Inside tests, see the testSyncHooks function docs. - -// goRun starts a new goroutine. -func (cc *ClientConn) goRun(f func()) { - if cc.syncHooks != nil { - cc.syncHooks.goRun(f) - return - } - go f() -} - -// condBroadcast is cc.cond.Broadcast. -func (cc *ClientConn) condBroadcast() { - if cc.syncHooks != nil { - cc.syncHooks.condBroadcast(cc.cond) - } - cc.cond.Broadcast() -} - -// condWait is cc.cond.Wait. -func (cc *ClientConn) condWait() { - if cc.syncHooks != nil { - cc.syncHooks.condWait(cc.cond) - } - cc.cond.Wait() -} - -// newTimer creates a new time.Timer, or a synthetic timer in tests. -func (cc *ClientConn) newTimer(d time.Duration) timer { - if cc.syncHooks != nil { - return cc.syncHooks.newTimer(d) - } - return newTimeTimer(d) -} - -// afterFunc creates a new time.AfterFunc timer, or a synthetic timer in tests. -func (cc *ClientConn) afterFunc(d time.Duration, f func()) timer { - if cc.syncHooks != nil { - return cc.syncHooks.afterFunc(d, f) - } - return newTimeAfterFunc(d, f) -} - -func (cc *ClientConn) contextWithTimeout(ctx context.Context, d time.Duration) (context.Context, context.CancelFunc) { - if cc.syncHooks != nil { - return cc.syncHooks.contextWithTimeout(ctx, d) - } - return context.WithTimeout(ctx, d) } // clientStream is the state for a single HTTP/2 stream. One of these @@ -487,7 +471,7 @@ func (cs *clientStream) abortStreamLocked(err error) { // TODO(dneil): Clean up tests where cs.cc.cond is nil. if cs.cc.cond != nil { // Wake up writeRequestBody if it is waiting on flow control. - cs.cc.condBroadcast() + cs.cc.cond.Broadcast() } } @@ -497,7 +481,7 @@ func (cs *clientStream) abortRequestBodyWrite() { defer cc.mu.Unlock() if cs.reqBody != nil && cs.reqBodyClosed == nil { cs.closeReqBodyLocked() - cc.condBroadcast() + cc.cond.Broadcast() } } @@ -507,10 +491,11 @@ func (cs *clientStream) closeReqBodyLocked() { } cs.reqBodyClosed = make(chan struct{}) reqBodyClosed := cs.reqBodyClosed - cs.cc.goRun(func() { + go func() { + cs.cc.t.markNewGoroutine() cs.reqBody.Close() close(reqBodyClosed) - }) + }() } type stickyErrWriter struct { @@ -626,21 +611,7 @@ func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Res backoff := float64(uint(1) << (uint(retry) - 1)) backoff += backoff * (0.1 * mathrand.Float64()) d := time.Second * time.Duration(backoff) - var tm timer - if t.syncHooks != nil { - tm = t.syncHooks.newTimer(d) - t.syncHooks.blockUntil(func() bool { - select { - case <-tm.C(): - case <-req.Context().Done(): - default: - return false - } - return true - }) - } else { - tm = newTimeTimer(d) - } + tm := t.newTimer(d) select { case <-tm.C(): t.vlogf("RoundTrip retrying after failure: %v", roundTripErr) @@ -725,8 +696,8 @@ func canRetryError(err error) bool { } func (t *Transport) dialClientConn(ctx context.Context, addr string, singleUse bool) (*ClientConn, error) { - if t.syncHooks != nil { - return t.newClientConn(nil, singleUse, t.syncHooks) + if t.transportTestHooks != nil { + return t.newClientConn(nil, singleUse) } host, _, err := net.SplitHostPort(addr) if err != nil { @@ -736,7 +707,7 @@ func (t *Transport) dialClientConn(ctx context.Context, addr string, singleUse b if err != nil { return nil, err } - return t.newClientConn(tconn, singleUse, nil) + return t.newClientConn(tconn, singleUse) } func (t *Transport) newTLSConfig(host string) *tls.Config { @@ -802,10 +773,10 @@ func (t *Transport) maxEncoderHeaderTableSize() uint32 { } func (t *Transport) NewClientConn(c net.Conn) (*ClientConn, error) { - return t.newClientConn(c, t.disableKeepAlives(), nil) + return t.newClientConn(c, t.disableKeepAlives()) } -func (t *Transport) newClientConn(c net.Conn, singleUse bool, hooks *testSyncHooks) (*ClientConn, error) { +func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, error) { cc := &ClientConn{ t: t, tconn: c, @@ -820,16 +791,12 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool, hooks *testSyncHoo wantSettingsAck: true, pings: make(map[[8]byte]chan struct{}), reqHeaderMu: make(chan struct{}, 1), - syncHooks: hooks, } - if hooks != nil { - hooks.newclientconn(cc) + if t.transportTestHooks != nil { + t.markNewGoroutine() + t.transportTestHooks.newclientconn(cc) c = cc.tconn } - if d := t.idleConnTimeout(); d != 0 { - cc.idleTimeout = d - cc.idleTimer = cc.afterFunc(d, cc.onIdleTimeout) - } if VerboseLogs { t.vlogf("http2: Transport creating client conn %p to %v", cc, c.RemoteAddr()) } @@ -893,7 +860,13 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool, hooks *testSyncHoo return nil, cc.werr } - cc.goRun(cc.readLoop) + // Start the idle timer after the connection is fully initialized. + if d := t.idleConnTimeout(); d != 0 { + cc.idleTimeout = d + cc.idleTimer = t.afterFunc(d, cc.onIdleTimeout) + } + + go cc.readLoop() return cc, nil } @@ -901,7 +874,7 @@ func (cc *ClientConn) healthCheck() { pingTimeout := cc.t.pingTimeout() // We don't need to periodically ping in the health check, because the readLoop of ClientConn will // trigger the healthCheck again if there is no frame received. - ctx, cancel := cc.contextWithTimeout(context.Background(), pingTimeout) + ctx, cancel := cc.t.contextWithTimeout(context.Background(), pingTimeout) defer cancel() cc.vlogf("http2: Transport sending health check") err := cc.Ping(ctx) @@ -1144,7 +1117,8 @@ func (cc *ClientConn) Shutdown(ctx context.Context) error { // Wait for all in-flight streams to complete or connection to close done := make(chan struct{}) cancelled := false // guarded by cc.mu - cc.goRun(func() { + go func() { + cc.t.markNewGoroutine() cc.mu.Lock() defer cc.mu.Unlock() for { @@ -1156,9 +1130,9 @@ func (cc *ClientConn) Shutdown(ctx context.Context) error { if cancelled { break } - cc.condWait() + cc.cond.Wait() } - }) + }() shutdownEnterWaitStateHook() select { case <-done: @@ -1168,7 +1142,7 @@ func (cc *ClientConn) Shutdown(ctx context.Context) error { cc.mu.Lock() // Free the goroutine above cancelled = true - cc.condBroadcast() + cc.cond.Broadcast() cc.mu.Unlock() return ctx.Err() } @@ -1206,7 +1180,7 @@ func (cc *ClientConn) closeForError(err error) { for _, cs := range cc.streams { cs.abortStreamLocked(err) } - cc.condBroadcast() + cc.cond.Broadcast() cc.mu.Unlock() cc.closeConn() } @@ -1321,23 +1295,30 @@ func (cc *ClientConn) roundTrip(req *http.Request, streamf func(*clientStream)) respHeaderRecv: make(chan struct{}), donec: make(chan struct{}), } - cc.goRun(func() { - cs.doRequest(req) - }) + + // TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere? + if !cc.t.disableCompression() && + req.Header.Get("Accept-Encoding") == "" && + req.Header.Get("Range") == "" && + !cs.isHead { + // Request gzip only, not deflate. Deflate is ambiguous and + // not as universally supported anyway. + // See: https://zlib.net/zlib_faq.html#faq39 + // + // Note that we don't request this for HEAD requests, + // due to a bug in nginx: + // http://trac.nginx.org/nginx/ticket/358 + // https://golang.org/issue/5522 + // + // We don't request gzip if the request is for a range, since + // auto-decoding a portion of a gzipped document will just fail + // anyway. See https://golang.org/issue/8923 + cs.requestedGzip = true + } + + go cs.doRequest(req, streamf) waitDone := func() error { - if cc.syncHooks != nil { - cc.syncHooks.blockUntil(func() bool { - select { - case <-cs.donec: - case <-ctx.Done(): - case <-cs.reqCancel: - default: - return false - } - return true - }) - } select { case <-cs.donec: return nil @@ -1398,24 +1379,7 @@ func (cc *ClientConn) roundTrip(req *http.Request, streamf func(*clientStream)) return err } - if streamf != nil { - streamf(cs) - } - for { - if cc.syncHooks != nil { - cc.syncHooks.blockUntil(func() bool { - select { - case <-cs.respHeaderRecv: - case <-cs.abort: - case <-ctx.Done(): - case <-cs.reqCancel: - default: - return false - } - return true - }) - } select { case <-cs.respHeaderRecv: return handleResponseHeaders() @@ -1445,8 +1409,9 @@ func (cc *ClientConn) roundTrip(req *http.Request, streamf func(*clientStream)) // doRequest runs for the duration of the request lifetime. // // It sends the request and performs post-request cleanup (closing Request.Body, etc.). -func (cs *clientStream) doRequest(req *http.Request) { - err := cs.writeRequest(req) +func (cs *clientStream) doRequest(req *http.Request, streamf func(*clientStream)) { + cs.cc.t.markNewGoroutine() + err := cs.writeRequest(req, streamf) cs.cleanupWriteRequest(err) } @@ -1457,7 +1422,7 @@ func (cs *clientStream) doRequest(req *http.Request) { // // It returns non-nil if the request ends otherwise. // If the returned error is StreamError, the error Code may be used in resetting the stream. -func (cs *clientStream) writeRequest(req *http.Request) (err error) { +func (cs *clientStream) writeRequest(req *http.Request, streamf func(*clientStream)) (err error) { cc := cs.cc ctx := cs.ctx @@ -1471,21 +1436,6 @@ func (cs *clientStream) writeRequest(req *http.Request) (err error) { if cc.reqHeaderMu == nil { panic("RoundTrip on uninitialized ClientConn") // for tests } - var newStreamHook func(*clientStream) - if cc.syncHooks != nil { - newStreamHook = cc.syncHooks.newstream - cc.syncHooks.blockUntil(func() bool { - select { - case cc.reqHeaderMu <- struct{}{}: - <-cc.reqHeaderMu - case <-cs.reqCancel: - case <-ctx.Done(): - default: - return false - } - return true - }) - } select { case cc.reqHeaderMu <- struct{}{}: case <-cs.reqCancel: @@ -1510,28 +1460,8 @@ func (cs *clientStream) writeRequest(req *http.Request) (err error) { } cc.mu.Unlock() - if newStreamHook != nil { - newStreamHook(cs) - } - - // TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere? - if !cc.t.disableCompression() && - req.Header.Get("Accept-Encoding") == "" && - req.Header.Get("Range") == "" && - !cs.isHead { - // Request gzip only, not deflate. Deflate is ambiguous and - // not as universally supported anyway. - // See: https://zlib.net/zlib_faq.html#faq39 - // - // Note that we don't request this for HEAD requests, - // due to a bug in nginx: - // http://trac.nginx.org/nginx/ticket/358 - // https://golang.org/issue/5522 - // - // We don't request gzip if the request is for a range, since - // auto-decoding a portion of a gzipped document will just fail - // anyway. See https://golang.org/issue/8923 - cs.requestedGzip = true + if streamf != nil { + streamf(cs) } continueTimeout := cc.t.expectContinueTimeout() @@ -1594,7 +1524,7 @@ func (cs *clientStream) writeRequest(req *http.Request) (err error) { var respHeaderTimer <-chan time.Time var respHeaderRecv chan struct{} if d := cc.responseHeaderTimeout(); d != 0 { - timer := cc.newTimer(d) + timer := cc.t.newTimer(d) defer timer.Stop() respHeaderTimer = timer.C() respHeaderRecv = cs.respHeaderRecv @@ -1603,21 +1533,6 @@ func (cs *clientStream) writeRequest(req *http.Request) (err error) { // or until the request is aborted (via context, error, or otherwise), // whichever comes first. for { - if cc.syncHooks != nil { - cc.syncHooks.blockUntil(func() bool { - select { - case <-cs.peerClosed: - case <-respHeaderTimer: - case <-respHeaderRecv: - case <-cs.abort: - case <-ctx.Done(): - case <-cs.reqCancel: - default: - return false - } - return true - }) - } select { case <-cs.peerClosed: return nil @@ -1766,7 +1681,7 @@ func (cc *ClientConn) awaitOpenSlotForStreamLocked(cs *clientStream) error { return nil } cc.pendingRequests++ - cc.condWait() + cc.cond.Wait() cc.pendingRequests-- select { case <-cs.abort: @@ -2028,7 +1943,7 @@ func (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error) cs.flow.take(take) return take, nil } - cc.condWait() + cc.cond.Wait() } } @@ -2311,7 +2226,7 @@ func (cc *ClientConn) forgetStreamID(id uint32) { } // Wake up writeRequestBody via clientStream.awaitFlowControl and // wake up RoundTrip if there is a pending request. - cc.condBroadcast() + cc.cond.Broadcast() closeOnIdle := cc.singleUse || cc.doNotReuse || cc.t.disableKeepAlives() || cc.goAway != nil if closeOnIdle && cc.streamsReserved == 0 && len(cc.streams) == 0 { @@ -2333,6 +2248,7 @@ type clientConnReadLoop struct { // readLoop runs in its own goroutine and reads and dispatches frames. func (cc *ClientConn) readLoop() { + cc.t.markNewGoroutine() rl := &clientConnReadLoop{cc: cc} defer rl.cleanup() cc.readerErr = rl.run() @@ -2399,7 +2315,7 @@ func (rl *clientConnReadLoop) cleanup() { cs.abortStreamLocked(err) } } - cc.condBroadcast() + cc.cond.Broadcast() cc.mu.Unlock() } @@ -2436,7 +2352,7 @@ func (rl *clientConnReadLoop) run() error { readIdleTimeout := cc.t.ReadIdleTimeout var t timer if readIdleTimeout != 0 { - t = cc.afterFunc(readIdleTimeout, cc.healthCheck) + t = cc.t.afterFunc(readIdleTimeout, cc.healthCheck) } for { f, err := cc.fr.ReadFrame() @@ -3034,7 +2950,7 @@ func (rl *clientConnReadLoop) processSettingsNoWrite(f *SettingsFrame) error { for _, cs := range cc.streams { cs.flow.add(delta) } - cc.condBroadcast() + cc.cond.Broadcast() cc.initialWindowSize = s.Val case SettingHeaderTableSize: @@ -3089,7 +3005,7 @@ func (rl *clientConnReadLoop) processWindowUpdate(f *WindowUpdateFrame) error { return ConnectionError(ErrCodeFlowControl) } - cc.condBroadcast() + cc.cond.Broadcast() return nil } @@ -3133,7 +3049,8 @@ func (cc *ClientConn) Ping(ctx context.Context) error { } var pingError error errc := make(chan struct{}) - cc.goRun(func() { + go func() { + cc.t.markNewGoroutine() cc.wmu.Lock() defer cc.wmu.Unlock() if pingError = cc.fr.WritePing(false, p); pingError != nil { @@ -3144,20 +3061,7 @@ func (cc *ClientConn) Ping(ctx context.Context) error { close(errc) return } - }) - if cc.syncHooks != nil { - cc.syncHooks.blockUntil(func() bool { - select { - case <-c: - case <-errc: - case <-ctx.Done(): - case <-cc.readerDone: - default: - return false - } - return true - }) - } + }() select { case <-c: return nil diff --git a/vendor/golang.org/x/net/http2/writesched_priority.go b/vendor/golang.org/x/net/http2/writesched_priority.go index 0a242c66..f6783339 100644 --- a/vendor/golang.org/x/net/http2/writesched_priority.go +++ b/vendor/golang.org/x/net/http2/writesched_priority.go @@ -443,8 +443,8 @@ func (ws *priorityWriteScheduler) addClosedOrIdleNode(list *[]*priorityNode, max } func (ws *priorityWriteScheduler) removeNode(n *priorityNode) { - for k := n.kids; k != nil; k = k.next { - k.setParent(n.parent) + for n.kids != nil { + n.kids.setParent(n.parent) } n.setParent(nil) delete(ws.nodes, n.id) diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh index fdcaa974..4ed2e488 100644 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ b/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -263,6 +263,7 @@ struct ltchars { #include #include #include +#include #include #include #include @@ -549,6 +550,7 @@ ccflags="$@" $2 !~ "NLA_TYPE_MASK" && $2 !~ /^RTC_VL_(ACCURACY|BACKUP|DATA)/ && $2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTC|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P|NETNSA)_/ || + $2 ~ /^SOCK_|SK_DIAG_|SKNLGRP_$/ || $2 ~ /^FIORDCHK$/ || $2 ~ /^SIOC/ || $2 ~ /^TIOC/ || diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go index 93a38a97..877a62b4 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go @@ -502,6 +502,7 @@ const ( BPF_IMM = 0x0 BPF_IND = 0x40 BPF_JA = 0x0 + BPF_JCOND = 0xe0 BPF_JEQ = 0x10 BPF_JGE = 0x30 BPF_JGT = 0x20 @@ -657,6 +658,9 @@ const ( CAN_NPROTO = 0x8 CAN_RAW = 0x1 CAN_RAW_FILTER_MAX = 0x200 + CAN_RAW_XL_VCID_RX_FILTER = 0x4 + CAN_RAW_XL_VCID_TX_PASS = 0x2 + CAN_RAW_XL_VCID_TX_SET = 0x1 CAN_RTR_FLAG = 0x40000000 CAN_SFF_ID_BITS = 0xb CAN_SFF_MASK = 0x7ff @@ -1339,6 +1343,7 @@ const ( F_OFD_SETLK = 0x25 F_OFD_SETLKW = 0x26 F_OK = 0x0 + F_SEAL_EXEC = 0x20 F_SEAL_FUTURE_WRITE = 0x10 F_SEAL_GROW = 0x4 F_SEAL_SEAL = 0x1 @@ -1627,6 +1632,7 @@ const ( IP_FREEBIND = 0xf IP_HDRINCL = 0x3 IP_IPSEC_POLICY = 0x10 + IP_LOCAL_PORT_RANGE = 0x33 IP_MAXPACKET = 0xffff IP_MAX_MEMBERSHIPS = 0x14 IP_MF = 0x2000 @@ -1653,6 +1659,7 @@ const ( IP_PMTUDISC_OMIT = 0x5 IP_PMTUDISC_PROBE = 0x3 IP_PMTUDISC_WANT = 0x1 + IP_PROTOCOL = 0x34 IP_RECVERR = 0xb IP_RECVERR_RFC4884 = 0x1a IP_RECVFRAGSIZE = 0x19 @@ -2169,7 +2176,7 @@ const ( NFT_SECMARK_CTX_MAXLEN = 0x100 NFT_SET_MAXNAMELEN = 0x100 NFT_SOCKET_MAX = 0x3 - NFT_TABLE_F_MASK = 0x3 + NFT_TABLE_F_MASK = 0x7 NFT_TABLE_MAXNAMELEN = 0x100 NFT_TRACETYPE_MAX = 0x3 NFT_TUNNEL_F_MASK = 0x7 @@ -2403,6 +2410,7 @@ const ( PERF_RECORD_MISC_USER = 0x2 PERF_SAMPLE_BRANCH_PLM_ALL = 0x7 PERF_SAMPLE_WEIGHT_TYPE = 0x1004000 + PID_FS_MAGIC = 0x50494446 PIPEFS_MAGIC = 0x50495045 PPPIOCGNPMODE = 0xc008744c PPPIOCNEWUNIT = 0xc004743e @@ -2896,8 +2904,9 @@ const ( RWF_APPEND = 0x10 RWF_DSYNC = 0x2 RWF_HIPRI = 0x1 + RWF_NOAPPEND = 0x20 RWF_NOWAIT = 0x8 - RWF_SUPPORTED = 0x1f + RWF_SUPPORTED = 0x3f RWF_SYNC = 0x4 RWF_WRITE_LIFE_NOT_SET = 0x0 SCHED_BATCH = 0x3 @@ -2918,7 +2927,9 @@ const ( SCHED_RESET_ON_FORK = 0x40000000 SCHED_RR = 0x2 SCM_CREDENTIALS = 0x2 + SCM_PIDFD = 0x4 SCM_RIGHTS = 0x1 + SCM_SECURITY = 0x3 SCM_TIMESTAMP = 0x1d SC_LOG_FLUSH = 0x100000 SECCOMP_ADDFD_FLAG_SEND = 0x2 @@ -3051,6 +3062,8 @@ const ( SIOCSMIIREG = 0x8949 SIOCSRARP = 0x8962 SIOCWANDEV = 0x894a + SK_DIAG_BPF_STORAGE_MAX = 0x3 + SK_DIAG_BPF_STORAGE_REQ_MAX = 0x1 SMACK_MAGIC = 0x43415d53 SMART_AUTOSAVE = 0xd2 SMART_AUTO_OFFLINE = 0xdb @@ -3071,6 +3084,8 @@ const ( SOCKFS_MAGIC = 0x534f434b SOCK_BUF_LOCK_MASK = 0x3 SOCK_DCCP = 0x6 + SOCK_DESTROY = 0x15 + SOCK_DIAG_BY_FAMILY = 0x14 SOCK_IOC_TYPE = 0x89 SOCK_PACKET = 0xa SOCK_RAW = 0x3 @@ -3260,6 +3275,7 @@ const ( TCP_MAX_WINSHIFT = 0xe TCP_MD5SIG = 0xe TCP_MD5SIG_EXT = 0x20 + TCP_MD5SIG_FLAG_IFINDEX = 0x2 TCP_MD5SIG_FLAG_PREFIX = 0x1 TCP_MD5SIG_MAXKEYLEN = 0x50 TCP_MSS = 0x200 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go index 42ff8c3c..e4bc0bd5 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go @@ -118,6 +118,7 @@ const ( IXOFF = 0x1000 IXON = 0x400 MAP_32BIT = 0x40 + MAP_ABOVE4G = 0x80 MAP_ANON = 0x20 MAP_ANONYMOUS = 0x20 MAP_DENYWRITE = 0x800 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go index dca43600..689317af 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go @@ -118,6 +118,7 @@ const ( IXOFF = 0x1000 IXON = 0x400 MAP_32BIT = 0x40 + MAP_ABOVE4G = 0x80 MAP_ANON = 0x20 MAP_ANONYMOUS = 0x20 MAP_DENYWRITE = 0x800 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go index d8cae6d1..14270508 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go @@ -87,6 +87,7 @@ const ( FICLONE = 0x40049409 FICLONERANGE = 0x4020940d FLUSHO = 0x1000 + FPMR_MAGIC = 0x46504d52 FPSIMD_MAGIC = 0x46508001 FS_IOC_ENABLE_VERITY = 0x40806685 FS_IOC_GETFLAGS = 0x80086601 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go index 0036746e..4740b834 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go @@ -4605,7 +4605,7 @@ const ( NL80211_ATTR_MAC_HINT = 0xc8 NL80211_ATTR_MAC_MASK = 0xd7 NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca - NL80211_ATTR_MAX = 0x149 + NL80211_ATTR_MAX = 0x14a NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4 NL80211_ATTR_MAX_CSA_COUNTERS = 0xce NL80211_ATTR_MAX_MATCH_SETS = 0x85 @@ -5209,7 +5209,7 @@ const ( NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf - NL80211_FREQUENCY_ATTR_MAX = 0x1f + NL80211_FREQUENCY_ATTR_MAX = 0x20 NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6 NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11 NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc @@ -5703,7 +5703,7 @@ const ( NL80211_STA_FLAG_ASSOCIATED = 0x7 NL80211_STA_FLAG_AUTHENTICATED = 0x5 NL80211_STA_FLAG_AUTHORIZED = 0x1 - NL80211_STA_FLAG_MAX = 0x7 + NL80211_STA_FLAG_MAX = 0x8 NL80211_STA_FLAG_MAX_OLD_API = 0x6 NL80211_STA_FLAG_MFP = 0x4 NL80211_STA_FLAG_SHORT_PREAMBLE = 0x2 @@ -6001,3 +6001,34 @@ type CachestatRange struct { Off uint64 Len uint64 } + +const ( + SK_MEMINFO_RMEM_ALLOC = 0x0 + SK_MEMINFO_RCVBUF = 0x1 + SK_MEMINFO_WMEM_ALLOC = 0x2 + SK_MEMINFO_SNDBUF = 0x3 + SK_MEMINFO_FWD_ALLOC = 0x4 + SK_MEMINFO_WMEM_QUEUED = 0x5 + SK_MEMINFO_OPTMEM = 0x6 + SK_MEMINFO_BACKLOG = 0x7 + SK_MEMINFO_DROPS = 0x8 + SK_MEMINFO_VARS = 0x9 + SKNLGRP_NONE = 0x0 + SKNLGRP_INET_TCP_DESTROY = 0x1 + SKNLGRP_INET_UDP_DESTROY = 0x2 + SKNLGRP_INET6_TCP_DESTROY = 0x3 + SKNLGRP_INET6_UDP_DESTROY = 0x4 + SK_DIAG_BPF_STORAGE_REQ_NONE = 0x0 + SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 0x1 + SK_DIAG_BPF_STORAGE_REP_NONE = 0x0 + SK_DIAG_BPF_STORAGE = 0x1 + SK_DIAG_BPF_STORAGE_NONE = 0x0 + SK_DIAG_BPF_STORAGE_PAD = 0x1 + SK_DIAG_BPF_STORAGE_MAP_ID = 0x2 + SK_DIAG_BPF_STORAGE_MAP_VALUE = 0x3 +) + +type SockDiagReq struct { + Family uint8 + Protocol uint8 +} diff --git a/vendor/golang.org/x/sys/windows/security_windows.go b/vendor/golang.org/x/sys/windows/security_windows.go index 26be94a8..6f7d2ac7 100644 --- a/vendor/golang.org/x/sys/windows/security_windows.go +++ b/vendor/golang.org/x/sys/windows/security_windows.go @@ -68,6 +68,7 @@ type UserInfo10 struct { //sys NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) = netapi32.NetUserGetInfo //sys NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) = netapi32.NetGetJoinInformation //sys NetApiBufferFree(buf *byte) (neterr error) = netapi32.NetApiBufferFree +//sys NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) = netapi32.NetUserEnum const ( // do not reorder diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go index 5c6035dd..9f73df75 100644 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -401,6 +401,7 @@ var ( procTransmitFile = modmswsock.NewProc("TransmitFile") procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree") procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation") + procNetUserEnum = modnetapi32.NewProc("NetUserEnum") procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo") procNtCreateFile = modntdll.NewProc("NtCreateFile") procNtCreateNamedPipeFile = modntdll.NewProc("NtCreateNamedPipeFile") @@ -3486,6 +3487,14 @@ func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (nete return } +func NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) { + r0, _, _ := syscall.Syscall9(procNetUserEnum.Addr(), 8, uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle)), 0) + if r0 != 0 { + neterr = syscall.Errno(r0) + } + return +} + func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) { r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0) if r0 != 0 { diff --git a/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go b/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go index a6b50818..6ad1b1c1 100644 --- a/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.21.9 +// protoc v4.24.4 // source: google/rpc/status.proto package status diff --git a/vendor/google.golang.org/grpc/CONTRIBUTING.md b/vendor/google.golang.org/grpc/CONTRIBUTING.md index 608aa6e1..0854d298 100644 --- a/vendor/google.golang.org/grpc/CONTRIBUTING.md +++ b/vendor/google.golang.org/grpc/CONTRIBUTING.md @@ -66,7 +66,7 @@ How to get your contributions merged smoothly and quickly. - **All tests need to be passing** before your change can be merged. We recommend you **run tests locally** before creating your PR to catch breakages early on. - - `VET_SKIP_PROTO=1 ./vet.sh` to catch vet errors + - `./scripts/vet.sh` to catch vet errors - `go test -cpu 1,4 -timeout 7m ./...` to run the tests - `go test -race -cpu 1,4 -timeout 7m ./...` to run tests in race mode diff --git a/vendor/google.golang.org/grpc/MAINTAINERS.md b/vendor/google.golang.org/grpc/MAINTAINERS.md index c6672c0a..6a8a0778 100644 --- a/vendor/google.golang.org/grpc/MAINTAINERS.md +++ b/vendor/google.golang.org/grpc/MAINTAINERS.md @@ -9,6 +9,7 @@ for general contribution guidelines. ## Maintainers (in alphabetical order) +- [atollena](https://github.com/atollena), Datadog, Inc. - [cesarghali](https://github.com/cesarghali), Google LLC - [dfawley](https://github.com/dfawley), Google LLC - [easwars](https://github.com/easwars), Google LLC diff --git a/vendor/google.golang.org/grpc/Makefile b/vendor/google.golang.org/grpc/Makefile index 1f896092..be38384f 100644 --- a/vendor/google.golang.org/grpc/Makefile +++ b/vendor/google.golang.org/grpc/Makefile @@ -30,17 +30,20 @@ testdeps: GO111MODULE=on go get -d -v -t google.golang.org/grpc/... vet: vetdeps - ./vet.sh + ./scripts/vet.sh vetdeps: - ./vet.sh -install + ./scripts/vet.sh -install .PHONY: \ all \ build \ clean \ + deps \ proto \ test \ + testsubmodule \ testrace \ + testdeps \ vet \ vetdeps diff --git a/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go b/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go index 856c75dd..1afb1e84 100644 --- a/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go +++ b/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go @@ -18,7 +18,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 +// protoc-gen-go v1.33.0 // protoc v4.25.2 // source: grpc/binlog/v1/binarylog.proto diff --git a/vendor/google.golang.org/grpc/clientconn.go b/vendor/google.golang.org/grpc/clientconn.go index c7f26071..2359f94b 100644 --- a/vendor/google.golang.org/grpc/clientconn.go +++ b/vendor/google.golang.org/grpc/clientconn.go @@ -37,7 +37,6 @@ import ( "google.golang.org/grpc/internal/channelz" "google.golang.org/grpc/internal/grpcsync" "google.golang.org/grpc/internal/idle" - "google.golang.org/grpc/internal/pretty" iresolver "google.golang.org/grpc/internal/resolver" "google.golang.org/grpc/internal/transport" "google.golang.org/grpc/keepalive" @@ -121,8 +120,9 @@ func (dcs *defaultConfigSelector) SelectConfig(rpcInfo iresolver.RPCInfo) (*ires // https://github.com/grpc/grpc/blob/master/doc/naming.md. e.g. to use dns // resolver, a "dns:///" prefix should be applied to the target. // -// The DialOptions returned by WithBlock, WithTimeout, and -// WithReturnConnectionError are ignored by this function. +// The DialOptions returned by WithBlock, WithTimeout, +// WithReturnConnectionError, and FailOnNonTempDialError are ignored by this +// function. func NewClient(target string, opts ...DialOption) (conn *ClientConn, err error) { cc := &ClientConn{ target: target, @@ -196,6 +196,8 @@ func NewClient(target string, opts ...DialOption) (conn *ClientConn, err error) } // Dial calls DialContext(context.Background(), target, opts...). +// +// Deprecated: use NewClient instead. Will be supported throughout 1.x. func Dial(target string, opts ...DialOption) (*ClientConn, error) { return DialContext(context.Background(), target, opts...) } @@ -209,6 +211,8 @@ func Dial(target string, opts ...DialOption) (*ClientConn, error) { // "passthrough" for backward compatibility. This distinction should not matter // to most users, but could matter to legacy users that specify a custom dialer // and expect it to receive the target string directly. +// +// Deprecated: use NewClient instead. Will be supported throughout 1.x. func DialContext(ctx context.Context, target string, opts ...DialOption) (conn *ClientConn, err error) { // At the end of this method, we kick the channel out of idle, rather than // waiting for the first rpc. @@ -838,6 +842,9 @@ func (cc *ClientConn) newAddrConnLocked(addrs []resolver.Address, opts balancer. stateChan: make(chan struct{}), } ac.ctx, ac.cancel = context.WithCancel(cc.ctx) + // Start with our address set to the first address; this may be updated if + // we connect to different addresses. + ac.channelz.ChannelMetrics.Target.Store(&addrs[0].Addr) channelz.AddTraceEvent(logger, ac.channelz, 0, &channelz.TraceEvent{ Desc: "Subchannel created", @@ -929,10 +936,14 @@ func equalAddresses(a, b []resolver.Address) bool { // updateAddrs updates ac.addrs with the new addresses list and handles active // connections or connection attempts. func (ac *addrConn) updateAddrs(addrs []resolver.Address) { - ac.mu.Lock() - channelz.Infof(logger, ac.channelz, "addrConn: updateAddrs curAddr: %v, addrs: %v", pretty.ToJSON(ac.curAddr), pretty.ToJSON(addrs)) - addrs = copyAddressesWithoutBalancerAttributes(addrs) + limit := len(addrs) + if limit > 5 { + limit = 5 + } + channelz.Infof(logger, ac.channelz, "addrConn: updateAddrs addrs (%d of %d): %v", limit, len(addrs), addrs[:limit]) + + ac.mu.Lock() if equalAddresses(ac.addrs, addrs) { ac.mu.Unlock() return @@ -1167,6 +1178,10 @@ type addrConn struct { // is received, transport is closed, ac has been torn down). transport transport.ClientTransport // The current transport. + // This mutex is used on the RPC path, so its usage should be minimized as + // much as possible. + // TODO: Find a lock-free way to retrieve the transport and state from the + // addrConn. mu sync.Mutex curAddr resolver.Address // The current address. addrs []resolver.Address // All addresses that the resolver resolved to. @@ -1292,6 +1307,7 @@ func (ac *addrConn) resetTransport() { func (ac *addrConn) tryAllAddrs(ctx context.Context, addrs []resolver.Address, connectDeadline time.Time) error { var firstConnErr error for _, addr := range addrs { + ac.channelz.ChannelMetrics.Target.Store(&addr.Addr) if ctx.Err() != nil { return errConnClosing } @@ -1739,7 +1755,7 @@ func encodeAuthority(authority string) string { return false case '!', '$', '&', '\'', '(', ')', '*', '+', ',', ';', '=': // Subdelim characters return false - case ':', '[', ']', '@': // Authority related delimeters + case ':', '[', ']', '@': // Authority related delimiters return false } // Everything else must be escaped. diff --git a/vendor/google.golang.org/grpc/codegen.sh b/vendor/google.golang.org/grpc/codegen.sh deleted file mode 100644 index 4cdc6ba7..00000000 --- a/vendor/google.golang.org/grpc/codegen.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -# This script serves as an example to demonstrate how to generate the gRPC-Go -# interface and the related messages from .proto file. -# -# It assumes the installation of i) Google proto buffer compiler at -# https://github.com/google/protobuf (after v2.6.1) and ii) the Go codegen -# plugin at https://github.com/golang/protobuf (after 2015-02-20). If you have -# not, please install them first. -# -# We recommend running this script at $GOPATH/src. -# -# If this is not what you need, feel free to make your own scripts. Again, this -# script is for demonstration purpose. -# -proto=$1 -protoc --go_out=plugins=grpc:. $proto diff --git a/vendor/google.golang.org/grpc/codes/codes.go b/vendor/google.golang.org/grpc/codes/codes.go index 08476ad1..0b42c302 100644 --- a/vendor/google.golang.org/grpc/codes/codes.go +++ b/vendor/google.golang.org/grpc/codes/codes.go @@ -235,7 +235,7 @@ func (c *Code) UnmarshalJSON(b []byte) error { if ci, err := strconv.ParseUint(string(b), 10, 32); err == nil { if ci >= _maxCode { - return fmt.Errorf("invalid code: %q", ci) + return fmt.Errorf("invalid code: %d", ci) } *c = Code(ci) diff --git a/vendor/google.golang.org/grpc/credentials/credentials.go b/vendor/google.golang.org/grpc/credentials/credentials.go index f6b55c68..665e790b 100644 --- a/vendor/google.golang.org/grpc/credentials/credentials.go +++ b/vendor/google.golang.org/grpc/credentials/credentials.go @@ -30,7 +30,7 @@ import ( "google.golang.org/grpc/attributes" icredentials "google.golang.org/grpc/internal/credentials" - "google.golang.org/protobuf/protoadapt" + "google.golang.org/protobuf/proto" ) // PerRPCCredentials defines the common interface for the credentials which need to @@ -237,7 +237,7 @@ func ClientHandshakeInfoFromContext(ctx context.Context) ClientHandshakeInfo { } // CheckSecurityLevel checks if a connection's security level is greater than or equal to the specified one. -// It returns success if 1) the condition is satisified or 2) AuthInfo struct does not implement GetCommonAuthInfo() method +// It returns success if 1) the condition is satisfied or 2) AuthInfo struct does not implement GetCommonAuthInfo() method // or 3) CommonAuthInfo.SecurityLevel has an invalid zero value. For 2) and 3), it is for the purpose of backward-compatibility. // // This API is experimental. @@ -287,5 +287,5 @@ type ChannelzSecurityValue interface { type OtherChannelzSecurityValue struct { ChannelzSecurityValue Name string - Value protoadapt.MessageV1 + Value proto.Message } diff --git a/vendor/google.golang.org/grpc/dialoptions.go b/vendor/google.golang.org/grpc/dialoptions.go index 40249322..00273702 100644 --- a/vendor/google.golang.org/grpc/dialoptions.go +++ b/vendor/google.golang.org/grpc/dialoptions.go @@ -300,6 +300,9 @@ func withBackoff(bs internalbackoff.Strategy) DialOption { // // Use of this feature is not recommended. For more information, please see: // https://github.com/grpc/grpc-go/blob/master/Documentation/anti-patterns.md +// +// Deprecated: this DialOption is not supported by NewClient. +// Will be supported throughout 1.x. func WithBlock() DialOption { return newFuncDialOption(func(o *dialOptions) { o.block = true @@ -314,10 +317,8 @@ func WithBlock() DialOption { // Use of this feature is not recommended. For more information, please see: // https://github.com/grpc/grpc-go/blob/master/Documentation/anti-patterns.md // -// # Experimental -// -// Notice: This API is EXPERIMENTAL and may be changed or removed in a -// later release. +// Deprecated: this DialOption is not supported by NewClient. +// Will be supported throughout 1.x. func WithReturnConnectionError() DialOption { return newFuncDialOption(func(o *dialOptions) { o.block = true @@ -387,8 +388,8 @@ func WithCredentialsBundle(b credentials.Bundle) DialOption { // WithTimeout returns a DialOption that configures a timeout for dialing a // ClientConn initially. This is valid if and only if WithBlock() is present. // -// Deprecated: use DialContext instead of Dial and context.WithTimeout -// instead. Will be supported throughout 1.x. +// Deprecated: this DialOption is not supported by NewClient. +// Will be supported throughout 1.x. func WithTimeout(d time.Duration) DialOption { return newFuncDialOption(func(o *dialOptions) { o.timeout = d @@ -470,9 +471,8 @@ func withBinaryLogger(bl binarylog.Logger) DialOption { // Use of this feature is not recommended. For more information, please see: // https://github.com/grpc/grpc-go/blob/master/Documentation/anti-patterns.md // -// # Experimental -// -// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// Deprecated: this DialOption is not supported by NewClient. +// This API may be changed or removed in a // later release. func FailOnNonTempDialError(f bool) DialOption { return newFuncDialOption(func(o *dialOptions) { @@ -601,12 +601,22 @@ func WithDisableRetry() DialOption { }) } +// MaxHeaderListSizeDialOption is a DialOption that specifies the maximum +// (uncompressed) size of header list that the client is prepared to accept. +type MaxHeaderListSizeDialOption struct { + MaxHeaderListSize uint32 +} + +func (o MaxHeaderListSizeDialOption) apply(do *dialOptions) { + do.copts.MaxHeaderListSize = &o.MaxHeaderListSize +} + // WithMaxHeaderListSize returns a DialOption that specifies the maximum // (uncompressed) size of header list that the client is prepared to accept. func WithMaxHeaderListSize(s uint32) DialOption { - return newFuncDialOption(func(o *dialOptions) { - o.copts.MaxHeaderListSize = &s - }) + return MaxHeaderListSizeDialOption{ + MaxHeaderListSize: s, + } } // WithDisableHealthCheck disables the LB channel health checking for all @@ -648,7 +658,7 @@ func defaultDialOptions() dialOptions { } } -// withGetMinConnectDeadline specifies the function that clientconn uses to +// withMinConnectDeadline specifies the function that clientconn uses to // get minConnectDeadline. This can be used to make connection attempts happen // faster/slower. // diff --git a/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/config.go b/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/config.go index 6bf7f873..13821a92 100644 --- a/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/config.go +++ b/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/config.go @@ -75,7 +75,6 @@ func ParseConfig(cfg json.RawMessage) (serviceconfig.LoadBalancingConfig, error) if err != nil { return nil, fmt.Errorf("error parsing config for policy %q: %v", name, err) } - return &lbConfig{childBuilder: builder, childConfig: cfg}, nil } diff --git a/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go b/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go index 45d5e50e..73bb4c4e 100644 --- a/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go +++ b/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go @@ -169,7 +169,6 @@ func (gsb *Balancer) latestBalancer() *balancerWrapper { func (gsb *Balancer) UpdateClientConnState(state balancer.ClientConnState) error { // The resolver data is only relevant to the most recent LB Policy. balToUpdate := gsb.latestBalancer() - gsbCfg, ok := state.BalancerConfig.(*lbConfig) if ok { // Switch to the child in the config unless it is already active. diff --git a/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go b/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go index e8456a77..aa4505a8 100644 --- a/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go +++ b/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go @@ -65,7 +65,7 @@ type TruncatingMethodLogger struct { callID uint64 idWithinCallGen *callIDGenerator - sink Sink // TODO(blog): make this plugable. + sink Sink // TODO(blog): make this pluggable. } // NewTruncatingMethodLogger returns a new truncating method logger. @@ -80,7 +80,7 @@ func NewTruncatingMethodLogger(h, m uint64) *TruncatingMethodLogger { callID: idGen.next(), idWithinCallGen: &callIDGenerator{}, - sink: DefaultSink, // TODO(blog): make it plugable. + sink: DefaultSink, // TODO(blog): make it pluggable. } } @@ -397,7 +397,7 @@ func metadataKeyOmit(key string) bool { switch key { case "lb-token", ":path", ":authority", "content-encoding", "content-type", "user-agent", "te": return true - case "grpc-trace-bin": // grpc-trace-bin is special because it's visiable to users. + case "grpc-trace-bin": // grpc-trace-bin is special because it's visible to users. return false } return strings.HasPrefix(key, "grpc-") diff --git a/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go b/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go index 685a3cb4..9c915d9e 100644 --- a/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go +++ b/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go @@ -28,9 +28,6 @@ import ( var ( // TXTErrIgnore is set if TXT errors should be ignored ("GRPC_GO_IGNORE_TXT_ERRORS" is not "false"). TXTErrIgnore = boolFromEnv("GRPC_GO_IGNORE_TXT_ERRORS", true) - // AdvertiseCompressors is set if registered compressor should be advertised - // ("GRPC_GO_ADVERTISE_COMPRESSORS" is not "false"). - AdvertiseCompressors = boolFromEnv("GRPC_GO_ADVERTISE_COMPRESSORS", true) // RingHashCap indicates the maximum ring size which defaults to 4096 // entries but may be overridden by setting the environment variable // "GRPC_RING_HASH_CAP". This does not override the default bounds diff --git a/vendor/google.golang.org/grpc/internal/grpcutil/compressor.go b/vendor/google.golang.org/grpc/internal/grpcutil/compressor.go index 9f409096..e8d86698 100644 --- a/vendor/google.golang.org/grpc/internal/grpcutil/compressor.go +++ b/vendor/google.golang.org/grpc/internal/grpcutil/compressor.go @@ -20,8 +20,6 @@ package grpcutil import ( "strings" - - "google.golang.org/grpc/internal/envconfig" ) // RegisteredCompressorNames holds names of the registered compressors. @@ -40,8 +38,5 @@ func IsCompressorNameRegistered(name string) bool { // RegisteredCompressors returns a string of registered compressor names // separated by comma. func RegisteredCompressors() string { - if !envconfig.AdvertiseCompressors { - return "" - } return strings.Join(RegisteredCompressorNames, ",") } diff --git a/vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go b/vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go index abab35e2..f3f52a59 100644 --- a/vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go +++ b/vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go @@ -41,18 +41,24 @@ import ( "google.golang.org/grpc/serviceconfig" ) -// EnableSRVLookups controls whether the DNS resolver attempts to fetch gRPCLB -// addresses from SRV records. Must not be changed after init time. -var EnableSRVLookups = false - -// ResolvingTimeout specifies the maximum duration for a DNS resolution request. -// If the timeout expires before a response is received, the request will be canceled. -// -// It is recommended to set this value at application startup. Avoid modifying this variable -// after initialization as it's not thread-safe for concurrent modification. -var ResolvingTimeout = 30 * time.Second - -var logger = grpclog.Component("dns") +var ( + // EnableSRVLookups controls whether the DNS resolver attempts to fetch gRPCLB + // addresses from SRV records. Must not be changed after init time. + EnableSRVLookups = false + + // MinResolutionInterval is the minimum interval at which re-resolutions are + // allowed. This helps to prevent excessive re-resolution. + MinResolutionInterval = 30 * time.Second + + // ResolvingTimeout specifies the maximum duration for a DNS resolution request. + // If the timeout expires before a response is received, the request will be canceled. + // + // It is recommended to set this value at application startup. Avoid modifying this variable + // after initialization as it's not thread-safe for concurrent modification. + ResolvingTimeout = 30 * time.Second + + logger = grpclog.Component("dns") +) func init() { resolver.Register(NewBuilder()) @@ -208,7 +214,7 @@ func (d *dnsResolver) watcher() { // Success resolving, wait for the next ResolveNow. However, also wait 30 // seconds at the very least to prevent constantly re-resolving. backoffIndex = 1 - waitTime = internal.MinResolutionRate + waitTime = MinResolutionInterval select { case <-d.ctx.Done(): return diff --git a/vendor/google.golang.org/grpc/internal/resolver/dns/internal/internal.go b/vendor/google.golang.org/grpc/internal/resolver/dns/internal/internal.go index c7fc557d..a7ecaf8d 100644 --- a/vendor/google.golang.org/grpc/internal/resolver/dns/internal/internal.go +++ b/vendor/google.golang.org/grpc/internal/resolver/dns/internal/internal.go @@ -28,7 +28,7 @@ import ( // NetResolver groups the methods on net.Resolver that are used by the DNS // resolver implementation. This allows the default net.Resolver instance to be -// overidden from tests. +// overridden from tests. type NetResolver interface { LookupHost(ctx context.Context, host string) (addrs []string, err error) LookupSRV(ctx context.Context, service, proto, name string) (cname string, addrs []*net.SRV, err error) @@ -50,10 +50,6 @@ var ( // The following vars are overridden from tests. var ( - // MinResolutionRate is the minimum rate at which re-resolutions are - // allowed. This helps to prevent excessive re-resolution. - MinResolutionRate = 30 * time.Second - // TimeAfterFunc is used by the DNS resolver to wait for the given duration // to elapse. In non-test code, this is implemented by time.After. In test // code, this can be used to control the amount of time the resolver is diff --git a/vendor/google.golang.org/grpc/internal/transport/controlbuf.go b/vendor/google.golang.org/grpc/internal/transport/controlbuf.go index 83c38298..3deadfb4 100644 --- a/vendor/google.golang.org/grpc/internal/transport/controlbuf.go +++ b/vendor/google.golang.org/grpc/internal/transport/controlbuf.go @@ -193,7 +193,7 @@ type goAway struct { code http2.ErrCode debugData []byte headsUp bool - closeConn error // if set, loopyWriter will exit, resulting in conn closure + closeConn error // if set, loopyWriter will exit with this error } func (*goAway) isTransportResponseFrame() bool { return false } @@ -336,7 +336,7 @@ func (c *controlBuffer) put(it cbItem) error { return err } -func (c *controlBuffer) executeAndPut(f func(it any) bool, it cbItem) (bool, error) { +func (c *controlBuffer) executeAndPut(f func() bool, it cbItem) (bool, error) { var wakeUp bool c.mu.Lock() if c.err != nil { @@ -344,7 +344,7 @@ func (c *controlBuffer) executeAndPut(f func(it any) bool, it cbItem) (bool, err return false, c.err } if f != nil { - if !f(it) { // f wasn't successful + if !f() { // f wasn't successful c.mu.Unlock() return false, nil } @@ -495,21 +495,22 @@ type loopyWriter struct { ssGoAwayHandler func(*goAway) (bool, error) } -func newLoopyWriter(s side, fr *framer, cbuf *controlBuffer, bdpEst *bdpEstimator, conn net.Conn, logger *grpclog.PrefixLogger) *loopyWriter { +func newLoopyWriter(s side, fr *framer, cbuf *controlBuffer, bdpEst *bdpEstimator, conn net.Conn, logger *grpclog.PrefixLogger, goAwayHandler func(*goAway) (bool, error)) *loopyWriter { var buf bytes.Buffer l := &loopyWriter{ - side: s, - cbuf: cbuf, - sendQuota: defaultWindowSize, - oiws: defaultWindowSize, - estdStreams: make(map[uint32]*outStream), - activeStreams: newOutStreamList(), - framer: fr, - hBuf: &buf, - hEnc: hpack.NewEncoder(&buf), - bdpEst: bdpEst, - conn: conn, - logger: logger, + side: s, + cbuf: cbuf, + sendQuota: defaultWindowSize, + oiws: defaultWindowSize, + estdStreams: make(map[uint32]*outStream), + activeStreams: newOutStreamList(), + framer: fr, + hBuf: &buf, + hEnc: hpack.NewEncoder(&buf), + bdpEst: bdpEst, + conn: conn, + logger: logger, + ssGoAwayHandler: goAwayHandler, } return l } diff --git a/vendor/google.golang.org/grpc/internal/transport/http2_client.go b/vendor/google.golang.org/grpc/internal/transport/http2_client.go index deba0c4d..3c63c706 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http2_client.go +++ b/vendor/google.golang.org/grpc/internal/transport/http2_client.go @@ -114,11 +114,11 @@ type http2Client struct { streamQuota int64 streamsQuotaAvailable chan struct{} waitingStreams uint32 - nextID uint32 registeredCompressors string // Do not access controlBuf with mu held. mu sync.Mutex // guard the following variables + nextID uint32 state transportState activeStreams map[uint32]*Stream // prevGoAway ID records the Last-Stream-ID in the previous GOAway frame. @@ -408,10 +408,10 @@ func newHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts readerErrCh := make(chan error, 1) go t.reader(readerErrCh) defer func() { - if err == nil { - err = <-readerErrCh - } if err != nil { + // writerDone should be closed since the loopy goroutine + // wouldn't have started in the case this function returns an error. + close(t.writerDone) t.Close(err) } }() @@ -458,8 +458,12 @@ func newHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts if err := t.framer.writer.Flush(); err != nil { return nil, err } + // Block until the server preface is received successfully or an error occurs. + if err = <-readerErrCh; err != nil { + return nil, err + } go func() { - t.loopy = newLoopyWriter(clientSide, t.framer, t.controlBuf, t.bdpEst, t.conn, t.logger) + t.loopy = newLoopyWriter(clientSide, t.framer, t.controlBuf, t.bdpEst, t.conn, t.logger, t.outgoingGoAwayHandler) if err := t.loopy.run(); !isIOError(err) { // Immediately close the connection, as the loopy writer returns // when there are no more active streams and we were draining (the @@ -517,6 +521,17 @@ func (t *http2Client) getPeer() *peer.Peer { } } +// OutgoingGoAwayHandler writes a GOAWAY to the connection. Always returns (false, err) as we want the GoAway +// to be the last frame loopy writes to the transport. +func (t *http2Client) outgoingGoAwayHandler(g *goAway) (bool, error) { + t.mu.Lock() + defer t.mu.Unlock() + if err := t.framer.fr.WriteGoAway(t.nextID-2, http2.ErrCodeNo, g.debugData); err != nil { + return false, err + } + return false, g.closeConn +} + func (t *http2Client) createHeaderFields(ctx context.Context, callHdr *CallHdr) ([]hpack.HeaderField, error) { aud := t.createAudience(callHdr) ri := credentials.RequestInfo{ @@ -781,7 +796,7 @@ func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr) (*Stream, firstTry := true var ch chan struct{} transportDrainRequired := false - checkForStreamQuota := func(it any) bool { + checkForStreamQuota := func() bool { if t.streamQuota <= 0 { // Can go negative if server decreases it. if firstTry { t.waitingStreams++ @@ -793,23 +808,24 @@ func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr) (*Stream, t.waitingStreams-- } t.streamQuota-- - h := it.(*headerFrame) - h.streamID = t.nextID - t.nextID += 2 - - // Drain client transport if nextID > MaxStreamID which signals gRPC that - // the connection is closed and a new one must be created for subsequent RPCs. - transportDrainRequired = t.nextID > MaxStreamID - s.id = h.streamID - s.fc = &inFlow{limit: uint32(t.initialWindowSize)} t.mu.Lock() if t.state == draining || t.activeStreams == nil { // Can be niled from Close(). t.mu.Unlock() return false // Don't create a stream if the transport is already closed. } + + hdr.streamID = t.nextID + t.nextID += 2 + // Drain client transport if nextID > MaxStreamID which signals gRPC that + // the connection is closed and a new one must be created for subsequent RPCs. + transportDrainRequired = t.nextID > MaxStreamID + + s.id = hdr.streamID + s.fc = &inFlow{limit: uint32(t.initialWindowSize)} t.activeStreams[s.id] = s t.mu.Unlock() + if t.streamQuota > 0 && t.waitingStreams > 0 { select { case t.streamsQuotaAvailable <- struct{}{}: @@ -819,13 +835,12 @@ func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr) (*Stream, return true } var hdrListSizeErr error - checkForHeaderListSize := func(it any) bool { + checkForHeaderListSize := func() bool { if t.maxSendHeaderListSize == nil { return true } - hdrFrame := it.(*headerFrame) var sz int64 - for _, f := range hdrFrame.hf { + for _, f := range hdr.hf { if sz += int64(f.Size()); sz > int64(*t.maxSendHeaderListSize) { hdrListSizeErr = status.Errorf(codes.Internal, "header list size to send violates the maximum size (%d bytes) set by server", *t.maxSendHeaderListSize) return false @@ -834,8 +849,8 @@ func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr) (*Stream, return true } for { - success, err := t.controlBuf.executeAndPut(func(it any) bool { - return checkForHeaderListSize(it) && checkForStreamQuota(it) + success, err := t.controlBuf.executeAndPut(func() bool { + return checkForHeaderListSize() && checkForStreamQuota() }, hdr) if err != nil { // Connection closed. @@ -946,7 +961,7 @@ func (t *http2Client) closeStream(s *Stream, err error, rst bool, rstCode http2. rst: rst, rstCode: rstCode, } - addBackStreamQuota := func(any) bool { + addBackStreamQuota := func() bool { t.streamQuota++ if t.streamQuota > 0 && t.waitingStreams > 0 { select { @@ -966,7 +981,7 @@ func (t *http2Client) closeStream(s *Stream, err error, rst bool, rstCode http2. // Close kicks off the shutdown process of the transport. This should be called // only once on a transport. Once it is called, the transport should not be -// accessed any more. +// accessed anymore. func (t *http2Client) Close(err error) { t.mu.Lock() // Make sure we only close once. @@ -991,7 +1006,10 @@ func (t *http2Client) Close(err error) { t.kpDormancyCond.Signal() } t.mu.Unlock() - t.controlBuf.finish() + // Per HTTP/2 spec, a GOAWAY frame must be sent before closing the + // connection. See https://httpwg.org/specs/rfc7540.html#GOAWAY. + t.controlBuf.put(&goAway{code: http2.ErrCodeNo, debugData: []byte("client transport shutdown"), closeConn: err}) + <-t.writerDone t.cancel() t.conn.Close() channelz.RemoveEntry(t.channelz.ID) @@ -1099,7 +1117,7 @@ func (t *http2Client) updateWindow(s *Stream, n uint32) { // for the transport and the stream based on the current bdp // estimation. func (t *http2Client) updateFlowControl(n uint32) { - updateIWS := func(any) bool { + updateIWS := func() bool { t.initialWindowSize = int32(n) t.mu.Lock() for _, s := range t.activeStreams { @@ -1252,7 +1270,7 @@ func (t *http2Client) handleSettings(f *http2.SettingsFrame, isFirst bool) { } updateFuncs = append(updateFuncs, updateStreamQuota) } - t.controlBuf.executeAndPut(func(any) bool { + t.controlBuf.executeAndPut(func() bool { for _, f := range updateFuncs { f() } diff --git a/vendor/google.golang.org/grpc/internal/transport/http2_server.go b/vendor/google.golang.org/grpc/internal/transport/http2_server.go index d582e047..cab0e2d3 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http2_server.go +++ b/vendor/google.golang.org/grpc/internal/transport/http2_server.go @@ -330,8 +330,7 @@ func NewServerTransport(conn net.Conn, config *ServerConfig) (_ ServerTransport, t.handleSettings(sf) go func() { - t.loopy = newLoopyWriter(serverSide, t.framer, t.controlBuf, t.bdpEst, t.conn, t.logger) - t.loopy.ssGoAwayHandler = t.outgoingGoAwayHandler + t.loopy = newLoopyWriter(serverSide, t.framer, t.controlBuf, t.bdpEst, t.conn, t.logger, t.outgoingGoAwayHandler) err := t.loopy.run() close(t.loopyWriterDone) if !isIOError(err) { @@ -860,7 +859,7 @@ func (t *http2Server) handleSettings(f *http2.SettingsFrame) { } return nil }) - t.controlBuf.executeAndPut(func(any) bool { + t.controlBuf.executeAndPut(func() bool { for _, f := range updateFuncs { f() } @@ -1014,12 +1013,13 @@ func (t *http2Server) writeHeaderLocked(s *Stream) error { headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-encoding", Value: s.sendCompress}) } headerFields = appendHeaderFieldsFromMD(headerFields, s.header) - success, err := t.controlBuf.executeAndPut(t.checkForHeaderListSize, &headerFrame{ + hf := &headerFrame{ streamID: s.id, hf: headerFields, endStream: false, onWrite: t.setResetPingStrikes, - }) + } + success, err := t.controlBuf.executeAndPut(func() bool { return t.checkForHeaderListSize(hf) }, hf) if !success { if err != nil { return err @@ -1208,7 +1208,7 @@ func (t *http2Server) keepalive() { continue } if outstandingPing && kpTimeoutLeft <= 0 { - t.Close(fmt.Errorf("keepalive ping not acked within timeout %s", t.kp.Time)) + t.Close(fmt.Errorf("keepalive ping not acked within timeout %s", t.kp.Timeout)) return } if !outstandingPing { diff --git a/vendor/google.golang.org/grpc/internal/transport/transport.go b/vendor/google.golang.org/grpc/internal/transport/transport.go index 0d2a6e47..4b39c0ad 100644 --- a/vendor/google.golang.org/grpc/internal/transport/transport.go +++ b/vendor/google.golang.org/grpc/internal/transport/transport.go @@ -304,7 +304,7 @@ func (s *Stream) isHeaderSent() bool { } // updateHeaderSent updates headerSent and returns true -// if it was alreay set. It is valid only on server-side. +// if it was already set. It is valid only on server-side. func (s *Stream) updateHeaderSent() bool { return atomic.SwapUint32(&s.headerSent, 1) == 1 } diff --git a/vendor/google.golang.org/grpc/metadata/metadata.go b/vendor/google.golang.org/grpc/metadata/metadata.go index 1e9485fd..6c01a9b3 100644 --- a/vendor/google.golang.org/grpc/metadata/metadata.go +++ b/vendor/google.golang.org/grpc/metadata/metadata.go @@ -90,6 +90,21 @@ func Pairs(kv ...string) MD { return md } +// String implements the Stringer interface for pretty-printing a MD. +// Ordering of the values is non-deterministic as it ranges over a map. +func (md MD) String() string { + var sb strings.Builder + fmt.Fprintf(&sb, "MD{") + for k, v := range md { + if sb.Len() > 3 { + fmt.Fprintf(&sb, ", ") + } + fmt.Fprintf(&sb, "%s=[%s]", k, strings.Join(v, ", ")) + } + fmt.Fprintf(&sb, "}") + return sb.String() +} + // Len returns the number of items in md. func (md MD) Len() int { return len(md) diff --git a/vendor/google.golang.org/grpc/peer/peer.go b/vendor/google.golang.org/grpc/peer/peer.go index a821ff9b..499a49c8 100644 --- a/vendor/google.golang.org/grpc/peer/peer.go +++ b/vendor/google.golang.org/grpc/peer/peer.go @@ -22,7 +22,9 @@ package peer import ( "context" + "fmt" "net" + "strings" "google.golang.org/grpc/credentials" ) @@ -39,6 +41,34 @@ type Peer struct { AuthInfo credentials.AuthInfo } +// String ensures the Peer types implements the Stringer interface in order to +// allow to print a context with a peerKey value effectively. +func (p *Peer) String() string { + if p == nil { + return "Peer" + } + sb := &strings.Builder{} + sb.WriteString("Peer{") + if p.Addr != nil { + fmt.Fprintf(sb, "Addr: '%s', ", p.Addr.String()) + } else { + fmt.Fprintf(sb, "Addr: , ") + } + if p.LocalAddr != nil { + fmt.Fprintf(sb, "LocalAddr: '%s', ", p.LocalAddr.String()) + } else { + fmt.Fprintf(sb, "LocalAddr: , ") + } + if p.AuthInfo != nil { + fmt.Fprintf(sb, "AuthInfo: '%s'", p.AuthInfo.AuthType()) + } else { + fmt.Fprintf(sb, "AuthInfo: ") + } + sb.WriteString("}") + + return sb.String() +} + type peerKey struct{} // NewContext creates a new context with peer information attached. diff --git a/vendor/google.golang.org/grpc/picker_wrapper.go b/vendor/google.golang.org/grpc/picker_wrapper.go index bf56faa7..56e8aba7 100644 --- a/vendor/google.golang.org/grpc/picker_wrapper.go +++ b/vendor/google.golang.org/grpc/picker_wrapper.go @@ -20,6 +20,7 @@ package grpc import ( "context" + "fmt" "io" "sync" @@ -117,7 +118,7 @@ func (pw *pickerWrapper) pick(ctx context.Context, failfast bool, info balancer. if lastPickErr != nil { errStr = "latest balancer error: " + lastPickErr.Error() } else { - errStr = ctx.Err().Error() + errStr = fmt.Sprintf("received context error while waiting for new LB policy update: %s", ctx.Err().Error()) } switch ctx.Err() { case context.DeadlineExceeded: diff --git a/vendor/google.golang.org/grpc/pickfirst.go b/vendor/google.golang.org/grpc/pickfirst.go index e3ea42ba..88536266 100644 --- a/vendor/google.golang.org/grpc/pickfirst.go +++ b/vendor/google.golang.org/grpc/pickfirst.go @@ -54,7 +54,7 @@ type pfConfig struct { serviceconfig.LoadBalancingConfig `json:"-"` // If set to true, instructs the LB policy to shuffle the order of the list - // of addresses received from the name resolver before attempting to + // of endpoints received from the name resolver before attempting to // connect to them. ShuffleAddressList bool `json:"shuffleAddressList"` } @@ -94,8 +94,7 @@ func (b *pickfirstBalancer) ResolverError(err error) { } func (b *pickfirstBalancer) UpdateClientConnState(state balancer.ClientConnState) error { - addrs := state.ResolverState.Addresses - if len(addrs) == 0 { + if len(state.ResolverState.Addresses) == 0 && len(state.ResolverState.Endpoints) == 0 { // The resolver reported an empty address list. Treat it like an error by // calling b.ResolverError. if b.subConn != nil { @@ -107,22 +106,49 @@ func (b *pickfirstBalancer) UpdateClientConnState(state balancer.ClientConnState b.ResolverError(errors.New("produced zero addresses")) return balancer.ErrBadResolverState } - // We don't have to guard this block with the env var because ParseConfig // already does so. cfg, ok := state.BalancerConfig.(pfConfig) if state.BalancerConfig != nil && !ok { return fmt.Errorf("pickfirst: received illegal BalancerConfig (type %T): %v", state.BalancerConfig, state.BalancerConfig) } - if cfg.ShuffleAddressList { - addrs = append([]resolver.Address{}, addrs...) - grpcrand.Shuffle(len(addrs), func(i, j int) { addrs[i], addrs[j] = addrs[j], addrs[i] }) - } if b.logger.V(2) { b.logger.Infof("Received new config %s, resolver state %s", pretty.ToJSON(cfg), pretty.ToJSON(state.ResolverState)) } + var addrs []resolver.Address + if endpoints := state.ResolverState.Endpoints; len(endpoints) != 0 { + // Perform the optional shuffling described in gRFC A62. The shuffling will + // change the order of endpoints but not touch the order of the addresses + // within each endpoint. - A61 + if cfg.ShuffleAddressList { + endpoints = append([]resolver.Endpoint{}, endpoints...) + grpcrand.Shuffle(len(endpoints), func(i, j int) { endpoints[i], endpoints[j] = endpoints[j], endpoints[i] }) + } + + // "Flatten the list by concatenating the ordered list of addresses for each + // of the endpoints, in order." - A61 + for _, endpoint := range endpoints { + // "In the flattened list, interleave addresses from the two address + // families, as per RFC-8304 section 4." - A61 + // TODO: support the above language. + addrs = append(addrs, endpoint.Addresses...) + } + } else { + // Endpoints not set, process addresses until we migrate resolver + // emissions fully to Endpoints. The top channel does wrap emitted + // addresses with endpoints, however some balancers such as weighted + // target do not forwarrd the corresponding correct endpoints down/split + // endpoints properly. Once all balancers correctly forward endpoints + // down, can delete this else conditional. + addrs = state.ResolverState.Addresses + if cfg.ShuffleAddressList { + addrs = append([]resolver.Address{}, addrs...) + grpcrand.Shuffle(len(addrs), func(i, j int) { addrs[i], addrs[j] = addrs[j], addrs[i] }) + } + } + if b.subConn != nil { b.cc.UpdateAddresses(b.subConn, addrs) return nil diff --git a/vendor/google.golang.org/grpc/regenerate.sh b/vendor/google.golang.org/grpc/regenerate.sh index a6f26c8a..3edca296 100644 --- a/vendor/google.golang.org/grpc/regenerate.sh +++ b/vendor/google.golang.org/grpc/regenerate.sh @@ -63,7 +63,7 @@ LEGACY_SOURCES=( # Generates only the new gRPC Service symbols SOURCES=( - $(git ls-files --exclude-standard --cached --others "*.proto" | grep -v '^\(profiling/proto/service.proto\|reflection/grpc_reflection_v1alpha/reflection.proto\)$') + $(git ls-files --exclude-standard --cached --others "*.proto" | grep -v '^profiling/proto/service.proto$') ${WORKDIR}/grpc-proto/grpc/gcp/altscontext.proto ${WORKDIR}/grpc-proto/grpc/gcp/handshaker.proto ${WORKDIR}/grpc-proto/grpc/gcp/transport_security_common.proto @@ -93,7 +93,7 @@ Mgrpc/testing/empty.proto=google.golang.org/grpc/interop/grpc_testing for src in ${SOURCES[@]}; do echo "protoc ${src}" - protoc --go_out=${OPTS}:${WORKDIR}/out --go-grpc_out=${OPTS}:${WORKDIR}/out \ + protoc --go_out=${OPTS}:${WORKDIR}/out --go-grpc_out=${OPTS},use_generic_streams_experimental=true:${WORKDIR}/out \ -I"." \ -I${WORKDIR}/grpc-proto \ -I${WORKDIR}/googleapis \ @@ -118,6 +118,6 @@ mv ${WORKDIR}/out/google.golang.org/grpc/lookup/grpc_lookup_v1/* ${WORKDIR}/out/ # grpc_testing_not_regenerate/*.pb.go are not re-generated, # see grpc_testing_not_regenerate/README.md for details. -rm ${WORKDIR}/out/google.golang.org/grpc/reflection/grpc_testing_not_regenerate/*.pb.go +rm ${WORKDIR}/out/google.golang.org/grpc/reflection/test/grpc_testing_not_regenerate/*.pb.go cp -R ${WORKDIR}/out/google.golang.org/grpc/* . diff --git a/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go b/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go index b54a3a32..ef3d6ed6 100644 --- a/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go +++ b/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go @@ -18,9 +18,6 @@ // Package dns implements a dns resolver to be installed as the default resolver // in grpc. -// -// Deprecated: this package is imported by grpc and should not need to be -// imported directly by users. package dns import ( @@ -52,3 +49,12 @@ func SetResolvingTimeout(timeout time.Duration) { func NewBuilder() resolver.Builder { return dns.NewBuilder() } + +// SetMinResolutionInterval sets the default minimum interval at which DNS +// re-resolutions are allowed. This helps to prevent excessive re-resolution. +// +// It must be called only at application startup, before any gRPC calls are +// made. Modifying this value after initialization is not thread-safe. +func SetMinResolutionInterval(d time.Duration) { + dns.MinResolutionInterval = d +} diff --git a/vendor/google.golang.org/grpc/rpc_util.go b/vendor/google.golang.org/grpc/rpc_util.go index 998e251d..fdd49e6e 100644 --- a/vendor/google.golang.org/grpc/rpc_util.go +++ b/vendor/google.golang.org/grpc/rpc_util.go @@ -964,7 +964,7 @@ func setCallInfoCodec(c *callInfo) error { // The SupportPackageIsVersion variables are referenced from generated protocol // buffer files to ensure compatibility with the gRPC version used. The latest -// support package version is 7. +// support package version is 9. // // Older versions are kept for compatibility. // @@ -976,6 +976,7 @@ const ( SupportPackageIsVersion6 = true SupportPackageIsVersion7 = true SupportPackageIsVersion8 = true + SupportPackageIsVersion9 = true ) const grpcUA = "grpc-go/" + Version diff --git a/vendor/google.golang.org/grpc/server.go b/vendor/google.golang.org/grpc/server.go index fd4558da..89f8e479 100644 --- a/vendor/google.golang.org/grpc/server.go +++ b/vendor/google.golang.org/grpc/server.go @@ -527,12 +527,22 @@ func ConnectionTimeout(d time.Duration) ServerOption { }) } +// MaxHeaderListSizeServerOption is a ServerOption that sets the max +// (uncompressed) size of header list that the server is prepared to accept. +type MaxHeaderListSizeServerOption struct { + MaxHeaderListSize uint32 +} + +func (o MaxHeaderListSizeServerOption) apply(so *serverOptions) { + so.maxHeaderListSize = &o.MaxHeaderListSize +} + // MaxHeaderListSize returns a ServerOption that sets the max (uncompressed) size // of header list that the server is prepared to accept. func MaxHeaderListSize(s uint32) ServerOption { - return newFuncServerOption(func(o *serverOptions) { - o.maxHeaderListSize = &s - }) + return MaxHeaderListSizeServerOption{ + MaxHeaderListSize: s, + } } // HeaderTableSize returns a ServerOption that sets the size of dynamic diff --git a/vendor/google.golang.org/grpc/service_config.go b/vendor/google.golang.org/grpc/service_config.go index 2b35c5d2..9da8fc80 100644 --- a/vendor/google.golang.org/grpc/service_config.go +++ b/vendor/google.golang.org/grpc/service_config.go @@ -172,7 +172,7 @@ func parseServiceConfig(js string) *serviceconfig.ParseResult { var rsc jsonSC err := json.Unmarshal([]byte(js), &rsc) if err != nil { - logger.Warningf("grpc: unmarshaling service config %s: %v", js, err) + logger.Warningf("grpc: unmarshalling service config %s: %v", js, err) return &serviceconfig.ParseResult{Err: err} } sc := ServiceConfig{ @@ -219,7 +219,7 @@ func parseServiceConfig(js string) *serviceconfig.ParseResult { Timeout: (*time.Duration)(m.Timeout), } if mc.RetryPolicy, err = convertRetryPolicy(m.RetryPolicy); err != nil { - logger.Warningf("grpc: unmarshaling service config %s: %v", js, err) + logger.Warningf("grpc: unmarshalling service config %s: %v", js, err) return &serviceconfig.ParseResult{Err: err} } if m.MaxRequestMessageBytes != nil { @@ -239,13 +239,13 @@ func parseServiceConfig(js string) *serviceconfig.ParseResult { for i, n := range *m.Name { path, err := n.generatePath() if err != nil { - logger.Warningf("grpc: error unmarshaling service config %s due to methodConfig[%d]: %v", js, i, err) + logger.Warningf("grpc: error unmarshalling service config %s due to methodConfig[%d]: %v", js, i, err) return &serviceconfig.ParseResult{Err: err} } if _, ok := paths[path]; ok { err = errDuplicatedName - logger.Warningf("grpc: error unmarshaling service config %s due to methodConfig[%d]: %v", js, i, err) + logger.Warningf("grpc: error unmarshalling service config %s due to methodConfig[%d]: %v", js, i, err) return &serviceconfig.ParseResult{Err: err} } paths[path] = struct{}{} diff --git a/vendor/google.golang.org/grpc/stats/stats.go b/vendor/google.golang.org/grpc/stats/stats.go index 4ab70e2d..fdb0bd65 100644 --- a/vendor/google.golang.org/grpc/stats/stats.go +++ b/vendor/google.golang.org/grpc/stats/stats.go @@ -73,9 +73,12 @@ func (*PickerUpdated) isRPCStats() {} type InPayload struct { // Client is true if this InPayload is from client side. Client bool - // Payload is the payload with original type. + // Payload is the payload with original type. This may be modified after + // the call to HandleRPC which provides the InPayload returns and must be + // copied if needed later. Payload any // Data is the serialized message payload. + // Deprecated: Data will be removed in the next release. Data []byte // Length is the size of the uncompressed payload data. Does not include any @@ -143,9 +146,12 @@ func (s *InTrailer) isRPCStats() {} type OutPayload struct { // Client is true if this OutPayload is from client side. Client bool - // Payload is the payload with original type. + // Payload is the payload with original type. This may be modified after + // the call to HandleRPC which provides the OutPayload returns and must be + // copied if needed later. Payload any // Data is the serialized message payload. + // Deprecated: Data will be removed in the next release. Data []byte // Length is the size of the uncompressed payload data. Does not include any // framing (gRPC or HTTP/2). diff --git a/vendor/google.golang.org/grpc/stream.go b/vendor/google.golang.org/grpc/stream.go index d939ffc6..b54563e8 100644 --- a/vendor/google.golang.org/grpc/stream.go +++ b/vendor/google.golang.org/grpc/stream.go @@ -516,6 +516,7 @@ func (a *csAttempt) newStream() error { return toRPCErr(nse.Err) } a.s = s + a.ctx = s.Context() a.p = &parser{r: s, recvBufferPool: a.cs.cc.dopts.recvBufferPool} return nil } diff --git a/vendor/google.golang.org/grpc/stream_interfaces.go b/vendor/google.golang.org/grpc/stream_interfaces.go new file mode 100644 index 00000000..8b813529 --- /dev/null +++ b/vendor/google.golang.org/grpc/stream_interfaces.go @@ -0,0 +1,152 @@ +/* + * + * Copyright 2024 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +// ServerStreamingClient represents the client side of a server-streaming (one +// request, many responses) RPC. It is generic over the type of the response +// message. It is used in generated code. +type ServerStreamingClient[Res any] interface { + Recv() (*Res, error) + ClientStream +} + +// ServerStreamingServer represents the server side of a server-streaming (one +// request, many responses) RPC. It is generic over the type of the response +// message. It is used in generated code. +type ServerStreamingServer[Res any] interface { + Send(*Res) error + ServerStream +} + +// ClientStreamingClient represents the client side of a client-streaming (many +// requests, one response) RPC. It is generic over both the type of the request +// message stream and the type of the unary response message. It is used in +// generated code. +type ClientStreamingClient[Req any, Res any] interface { + Send(*Req) error + CloseAndRecv() (*Res, error) + ClientStream +} + +// ClientStreamingServer represents the server side of a client-streaming (many +// requests, one response) RPC. It is generic over both the type of the request +// message stream and the type of the unary response message. It is used in +// generated code. +type ClientStreamingServer[Req any, Res any] interface { + Recv() (*Req, error) + SendAndClose(*Res) error + ServerStream +} + +// BidiStreamingClient represents the client side of a bidirectional-streaming +// (many requests, many responses) RPC. It is generic over both the type of the +// request message stream and the type of the response message stream. It is +// used in generated code. +type BidiStreamingClient[Req any, Res any] interface { + Send(*Req) error + Recv() (*Res, error) + ClientStream +} + +// BidiStreamingServer represents the server side of a bidirectional-streaming +// (many requests, many responses) RPC. It is generic over both the type of the +// request message stream and the type of the response message stream. It is +// used in generated code. +type BidiStreamingServer[Req any, Res any] interface { + Recv() (*Req, error) + Send(*Res) error + ServerStream +} + +// GenericClientStream implements the ServerStreamingClient, ClientStreamingClient, +// and BidiStreamingClient interfaces. It is used in generated code. +type GenericClientStream[Req any, Res any] struct { + ClientStream +} + +var _ ServerStreamingClient[string] = (*GenericClientStream[int, string])(nil) +var _ ClientStreamingClient[int, string] = (*GenericClientStream[int, string])(nil) +var _ BidiStreamingClient[int, string] = (*GenericClientStream[int, string])(nil) + +// Send pushes one message into the stream of requests to be consumed by the +// server. The type of message which can be sent is determined by the Req type +// parameter of the GenericClientStream receiver. +func (x *GenericClientStream[Req, Res]) Send(m *Req) error { + return x.ClientStream.SendMsg(m) +} + +// Recv reads one message from the stream of responses generated by the server. +// The type of the message returned is determined by the Res type parameter +// of the GenericClientStream receiver. +func (x *GenericClientStream[Req, Res]) Recv() (*Res, error) { + m := new(Res) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +// CloseAndRecv closes the sending side of the stream, then receives the unary +// response from the server. The type of message which it returns is determined +// by the Res type parameter of the GenericClientStream receiver. +func (x *GenericClientStream[Req, Res]) CloseAndRecv() (*Res, error) { + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + m := new(Res) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +// GenericServerStream implements the ServerStreamingServer, ClientStreamingServer, +// and BidiStreamingServer interfaces. It is used in generated code. +type GenericServerStream[Req any, Res any] struct { + ServerStream +} + +var _ ServerStreamingServer[string] = (*GenericServerStream[int, string])(nil) +var _ ClientStreamingServer[int, string] = (*GenericServerStream[int, string])(nil) +var _ BidiStreamingServer[int, string] = (*GenericServerStream[int, string])(nil) + +// Send pushes one message into the stream of responses to be consumed by the +// client. The type of message which can be sent is determined by the Res +// type parameter of the serverStreamServer receiver. +func (x *GenericServerStream[Req, Res]) Send(m *Res) error { + return x.ServerStream.SendMsg(m) +} + +// SendAndClose pushes the unary response to the client. The type of message +// which can be sent is determined by the Res type parameter of the +// clientStreamServer receiver. +func (x *GenericServerStream[Req, Res]) SendAndClose(m *Res) error { + return x.ServerStream.SendMsg(m) +} + +// Recv reads one message from the stream of requests generated by the client. +// The type of the message returned is determined by the Req type parameter +// of the clientStreamServer receiver. +func (x *GenericServerStream[Req, Res]) Recv() (*Req, error) { + m := new(Req) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} diff --git a/vendor/google.golang.org/grpc/version.go b/vendor/google.golang.org/grpc/version.go index 2556f758..e1806e76 100644 --- a/vendor/google.golang.org/grpc/version.go +++ b/vendor/google.golang.org/grpc/version.go @@ -19,4 +19,4 @@ package grpc // Version is the current grpc version. -const Version = "1.63.2" +const Version = "1.64.0" diff --git a/vendor/google.golang.org/grpc/vet.sh b/vendor/google.golang.org/grpc/vet.sh deleted file mode 100644 index 7e6b92e4..00000000 --- a/vendor/google.golang.org/grpc/vet.sh +++ /dev/null @@ -1,195 +0,0 @@ -#!/bin/bash - -set -ex # Exit on error; debugging enabled. -set -o pipefail # Fail a pipe if any sub-command fails. - -# not makes sure the command passed to it does not exit with a return code of 0. -not() { - # This is required instead of the earlier (! $COMMAND) because subshells and - # pipefail don't work the same on Darwin as in Linux. - ! "$@" -} - -die() { - echo "$@" >&2 - exit 1 -} - -fail_on_output() { - tee /dev/stderr | not read -} - -# Check to make sure it's safe to modify the user's git repo. -git status --porcelain | fail_on_output - -# Undo any edits made by this script. -cleanup() { - git reset --hard HEAD -} -trap cleanup EXIT - -PATH="${HOME}/go/bin:${GOROOT}/bin:${PATH}" -go version - -if [[ "$1" = "-install" ]]; then - # Install the pinned versions as defined in module tools. - pushd ./test/tools - go install \ - golang.org/x/tools/cmd/goimports \ - honnef.co/go/tools/cmd/staticcheck \ - github.com/client9/misspell/cmd/misspell - popd - if [[ -z "${VET_SKIP_PROTO}" ]]; then - if [[ "${GITHUB_ACTIONS}" = "true" ]]; then - PROTOBUF_VERSION=25.2 # a.k.a. v4.22.0 in pb.go files. - PROTOC_FILENAME=protoc-${PROTOBUF_VERSION}-linux-x86_64.zip - pushd /home/runner/go - wget https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/${PROTOC_FILENAME} - unzip ${PROTOC_FILENAME} - bin/protoc --version - popd - elif not which protoc > /dev/null; then - die "Please install protoc into your path" - fi - fi - exit 0 -elif [[ "$#" -ne 0 ]]; then - die "Unknown argument(s): $*" -fi - -# - Check that generated proto files are up to date. -if [[ -z "${VET_SKIP_PROTO}" ]]; then - make proto && git status --porcelain 2>&1 | fail_on_output || \ - (git status; git --no-pager diff; exit 1) -fi - -if [[ -n "${VET_ONLY_PROTO}" ]]; then - exit 0 -fi - -# - Ensure all source files contain a copyright message. -# (Done in two parts because Darwin "git grep" has broken support for compound -# exclusion matches.) -(grep -L "DO NOT EDIT" $(git grep -L "\(Copyright [0-9]\{4,\} gRPC authors\)" -- '*.go') || true) | fail_on_output - -# - Make sure all tests in grpc and grpc/test use leakcheck via Teardown. -not grep 'func Test[^(]' *_test.go -not grep 'func Test[^(]' test/*.go - -# - Check for typos in test function names -git grep 'func (s) ' -- "*_test.go" | not grep -v 'func (s) Test' -git grep 'func [A-Z]' -- "*_test.go" | not grep -v 'func Test\|Benchmark\|Example' - -# - Do not import x/net/context. -not git grep -l 'x/net/context' -- "*.go" - -# - Do not use time.After except in tests. It has the potential to leak the -# timer since there is no way to stop it early. -git grep -l 'time.After(' -- "*.go" | not grep -v '_test.go\|test_utils\|testutils' - -# - Do not import math/rand for real library code. Use internal/grpcrand for -# thread safety. -git grep -l '"math/rand"' -- "*.go" 2>&1 | not grep -v '^examples\|^interop/stress\|grpcrand\|^benchmark\|wrr_test' - -# - Do not use "interface{}"; use "any" instead. -git grep -l 'interface{}' -- "*.go" 2>&1 | not grep -v '\.pb\.go\|protoc-gen-go-grpc\|grpc_testing_not_regenerate' - -# - Do not call grpclog directly. Use grpclog.Component instead. -git grep -l -e 'grpclog.I' --or -e 'grpclog.W' --or -e 'grpclog.E' --or -e 'grpclog.F' --or -e 'grpclog.V' -- "*.go" | not grep -v '^grpclog/component.go\|^internal/grpctest/tlogger_test.go' - -# - Ensure all ptypes proto packages are renamed when importing. -not git grep "\(import \|^\s*\)\"github.com/golang/protobuf/ptypes/" -- "*.go" - -# - Ensure all usages of grpc_testing package are renamed when importing. -not git grep "\(import \|^\s*\)\"google.golang.org/grpc/interop/grpc_testing" -- "*.go" - -# - Ensure all xds proto imports are renamed to *pb or *grpc. -git grep '"github.com/envoyproxy/go-control-plane/envoy' -- '*.go' ':(exclude)*.pb.go' | not grep -v 'pb "\|grpc "' - -misspell -error . - -# - gofmt, goimports, go vet, go mod tidy. -# Perform these checks on each module inside gRPC. -for MOD_FILE in $(find . -name 'go.mod'); do - MOD_DIR=$(dirname ${MOD_FILE}) - pushd ${MOD_DIR} - go vet -all ./... | fail_on_output - gofmt -s -d -l . 2>&1 | fail_on_output - goimports -l . 2>&1 | not grep -vE "\.pb\.go" - - go mod tidy -compat=1.19 - git status --porcelain 2>&1 | fail_on_output || \ - (git status; git --no-pager diff; exit 1) - popd -done - -# - Collection of static analysis checks -SC_OUT="$(mktemp)" -staticcheck -go 1.19 -checks 'all' ./... > "${SC_OUT}" || true - -# Error for anything other than checks that need exclusions. -grep -v "(ST1000)" "${SC_OUT}" | grep -v "(SA1019)" | grep -v "(ST1003)" | not grep -v "(ST1019)\|\(other import of\)" - -# Exclude underscore checks for generated code. -grep "(ST1003)" "${SC_OUT}" | not grep -v '\(.pb.go:\)\|\(code_string_test.go:\)\|\(grpc_testing_not_regenerate\)' - -# Error for duplicate imports not including grpc protos. -grep "(ST1019)\|\(other import of\)" "${SC_OUT}" | not grep -Fv 'XXXXX PleaseIgnoreUnused -channelz/grpc_channelz_v1" -go-control-plane/envoy -grpclb/grpc_lb_v1" -health/grpc_health_v1" -interop/grpc_testing" -orca/v3" -proto/grpc_gcp" -proto/grpc_lookup_v1" -reflection/grpc_reflection_v1" -reflection/grpc_reflection_v1alpha" -XXXXX PleaseIgnoreUnused' - -# Error for any package comments not in generated code. -grep "(ST1000)" "${SC_OUT}" | not grep -v "\.pb\.go:" - -# Only ignore the following deprecated types/fields/functions and exclude -# generated code. -grep "(SA1019)" "${SC_OUT}" | not grep -Fv 'XXXXX PleaseIgnoreUnused -XXXXX Protobuf related deprecation errors: -"github.com/golang/protobuf -.pb.go: -grpc_testing_not_regenerate -: ptypes. -proto.RegisterType -XXXXX gRPC internal usage deprecation errors: -"google.golang.org/grpc -: grpc. -: v1alpha. -: v1alphareflectionpb. -BalancerAttributes is deprecated: -CredsBundle is deprecated: -Metadata is deprecated: use Attributes instead. -NewSubConn is deprecated: -OverrideServerName is deprecated: -RemoveSubConn is deprecated: -SecurityVersion is deprecated: -Target is deprecated: Use the Target field in the BuildOptions instead. -UpdateAddresses is deprecated: -UpdateSubConnState is deprecated: -balancer.ErrTransientFailure is deprecated: -grpc/reflection/v1alpha/reflection.proto -SwitchTo is deprecated: -XXXXX xDS deprecated fields we support -.ExactMatch -.PrefixMatch -.SafeRegexMatch -.SuffixMatch -GetContainsMatch -GetExactMatch -GetMatchSubjectAltNames -GetPrefixMatch -GetSafeRegexMatch -GetSuffixMatch -GetTlsCertificateCertificateProviderInstance -GetValidationContextCertificateProviderInstance -XXXXX PleaseIgnoreUnused' - -echo SUCCESS diff --git a/vendor/modernc.org/libc/CONTRIBUTORS b/vendor/modernc.org/libc/CONTRIBUTORS index aa802b6d..50bc47a3 100644 --- a/vendor/modernc.org/libc/CONTRIBUTORS +++ b/vendor/modernc.org/libc/CONTRIBUTORS @@ -16,4 +16,5 @@ Koichi Shiraishi Marius Orcsik Scot C Bontrager Steffen Butzer +W. Michael Petullo ZHU Zijia diff --git a/vendor/modernc.org/libc/aliases.go b/vendor/modernc.org/libc/aliases.go index 903c9f52..7bc2d983 100644 --- a/vendor/modernc.org/libc/aliases.go +++ b/vendor/modernc.org/libc/aliases.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build linux && (amd64 || loong64) +//go:build linux && (amd64 || arm64 || loong64) package libc // import "modernc.org/libc" diff --git a/vendor/modernc.org/libc/atomic.go b/vendor/modernc.org/libc/atomic.go index 478037ef..66b55462 100644 --- a/vendor/modernc.org/libc/atomic.go +++ b/vendor/modernc.org/libc/atomic.go @@ -2,13 +2,13 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build linux && (amd64 || loong64) +//go:build linux && (amd64 || arm64 || loong64) -package libc // import "modernc.org/libc/v2" +package libc // import "modernc.org/libc" import ( "math" - "math/bits" + mbits "math/bits" "sync/atomic" "unsafe" ) @@ -41,15 +41,15 @@ func a_store_16(addr uintptr, val uint16) { // static inline int a_ctz_l(unsigned long x) func _a_ctz_l(tls *TLS, x ulong) int32 { if unsafe.Sizeof(x) == 8 { - return int32(bits.TrailingZeros64(x)) + return int32(mbits.TrailingZeros64(x)) } - return int32(bits.TrailingZeros32(uint32(x))) + return int32(mbits.TrailingZeros32(uint32(x))) } // static inline int a_ctz_64(uint64_t x) func _a_ctz_64(tls *TLS, x uint64) int32 { - return int32(bits.TrailingZeros64(x)) + return int32(mbits.TrailingZeros64(x)) } func AtomicAddFloat32(addr *float32, delta float32) (new float32) { diff --git a/vendor/modernc.org/libc/builder.json b/vendor/modernc.org/libc/builder.json index 6b9f4177..7b70c32f 100644 --- a/vendor/modernc.org/libc/builder.json +++ b/vendor/modernc.org/libc/builder.json @@ -1,9 +1,9 @@ { - "autogen": "linux/(amd64|loong64)", + "autogen": "linux/(amd64|arm64|loong64)", "autoupdate": "", "autotag": "darwin/(amd64|arm64)|freebsd/(amd64|arm64)|linux/(386|amd64|arm|arm64|loong64|ppc64le|riscv64|s390x)|openbsd/(386|amd64|arm64)|windows/(amd64|arm64)", "download": [ - {"re": "linux/(amd64|loong64)", "files": ["https://git.musl-libc.org/cgit/musl/snapshot/musl-7ada6dde6f9dc6a2836c3d92c2f762d35fd229e0.tar.gz"]} + {"re": "linux/(amd64|arm64|loong64)", "files": ["https://git.musl-libc.org/cgit/musl/snapshot/musl-7ada6dde6f9dc6a2836c3d92c2f762d35fd229e0.tar.gz"]} ], "test": "darwin/(amd64|arm64)|freebsd/(amd64|arm64)|linux/(386|amd64|arm|arm64|loong64|ppc64le|riscv64|s390x)|openbsd/(386|amd64|arm64)|windows/(amd64|arm64)" } diff --git a/vendor/modernc.org/libc/builtin.go b/vendor/modernc.org/libc/builtin.go index 1d727eb0..5582af66 100644 --- a/vendor/modernc.org/libc/builtin.go +++ b/vendor/modernc.org/libc/builtin.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build linux && (amd64 || loong64) +//go:build linux && (amd64 || arm64 || loong64) package libc // import "modernc.org/libc" @@ -32,6 +32,10 @@ func X__builtin_round(tls *TLS, x float64) (r float64) { return Xround(tls, x) } +func X__builtin_roundf(tls *TLS, x float32) (r float32) { + return Xroundf(tls, x) +} + func X__builtin_expect(t *TLS, exp, c long) long { return exp } diff --git a/vendor/modernc.org/libc/ccgo.go b/vendor/modernc.org/libc/ccgo.go index 160a84ce..9812e363 100644 --- a/vendor/modernc.org/libc/ccgo.go +++ b/vendor/modernc.org/libc/ccgo.go @@ -1,6 +1,6 @@ // Code generated by 'go generate' - DO NOT EDIT. -//go:build !(linux && (amd64 || loong64)) +//go:build !(linux && (amd64 || arm64 || loong64)) package libc // import "modernc.org/libc" diff --git a/vendor/modernc.org/libc/ccgo_linux_amd64.go b/vendor/modernc.org/libc/ccgo_linux_amd64.go index f5ead627..66c8363b 100644 --- a/vendor/modernc.org/libc/ccgo_linux_amd64.go +++ b/vendor/modernc.org/libc/ccgo_linux_amd64.go @@ -702,7 +702,7 @@ func Xcabsl(tls *TLS, z complex128) (r float64) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Xcabs(tls, Complex128FromComplex128(z)) + return float64(Xcabs(tls, Complex128FromComplex128(complex128(z)))) } const M_PI_21 = 1.5707963267948966 @@ -828,7 +828,7 @@ func Xcacoshl(tls *TLS, z complex128) (r complex128) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Complex128FromComplex128(Xcacosh(tls, Complex128FromComplex128(z))) + return Complex128FromComplex128(Xcacosh(tls, Complex128FromComplex128(complex128(z)))) } func Xcacosl(tls *TLS, z complex128) (r complex128) { @@ -836,7 +836,7 @@ func Xcacosl(tls *TLS, z complex128) (r complex128) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Complex128FromComplex128(Xcacos(tls, Complex128FromComplex128(z))) + return Complex128FromComplex128(Xcacos(tls, Complex128FromComplex128(complex128(z)))) } func Xcarg(tls *TLS, z complex128) (r float64) { @@ -860,7 +860,7 @@ func Xcargl(tls *TLS, z complex128) (r float64) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Xcarg(tls, Complex128FromComplex128(z)) + return float64(Xcarg(tls, Complex128FromComplex128(complex128(z)))) } // FIXME @@ -910,7 +910,7 @@ func Xcasinf(tls *TLS, z complex64) (r1 complex64) { y = +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)] v1 = [2]float32{ 0: float32(Float64FromFloat64(1) - float64((x-y)*(x+y))), - 1: float32(-Float64FromFloat64(2) * float64(x) * float64(y)), + 1: float32(-Float64FromFloat64(2) * float64(float64(x)) * float64(float64(y))), } w = *(*complex64)(unsafe.Pointer(&v1)) v2 = [2]float32{ @@ -970,7 +970,7 @@ func Xcasinhl(tls *TLS, z complex128) (r complex128) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Complex128FromComplex128(Xcasinh(tls, Complex128FromComplex128(z))) + return Complex128FromComplex128(Xcasinh(tls, Complex128FromComplex128(complex128(z)))) } func Xcasinl(tls *TLS, z complex128) (r complex128) { @@ -978,7 +978,7 @@ func Xcasinl(tls *TLS, z complex128) (r complex128) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Complex128FromComplex128(Xcasin(tls, Complex128FromComplex128(z))) + return Complex128FromComplex128(Xcasin(tls, Complex128FromComplex128(complex128(z)))) } const MAXNUM = 0 @@ -998,8 +998,8 @@ func __redupi(tls *TLS, x float64) (r float64) { } else { t -= float64(0.5) } - i = int64(t) /* the multiple */ - t = float64(i) + i = int64(int64(t)) /* the multiple */ + t = float64(float64(i)) t = x - t*_DP1 - t*_DP2 - t*_DP3 return t } @@ -1050,9 +1050,9 @@ func __redupif(tls *TLS, xx float32) (r float32) { } else { t -= Float32FromFloat32(0.5) } - i = int64(t) /* the multiple */ - t = float32(i) - t = float32(float64(x) - float64(t)*_DP11 - float64(t)*_DP21 - float64(t)*_DP31) + i = int64(int64(t)) /* the multiple */ + t = float32(float32(i)) + t = float32(float64(float64(x)) - float64(float64(t))*_DP11 - float64(float64(t))*_DP21 - float64(float64(t))*_DP31) return t } @@ -1130,7 +1130,7 @@ func Xcatanhl(tls *TLS, z complex128) (r complex128) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Complex128FromComplex128(Xcatanh(tls, Complex128FromComplex128(z))) + return Complex128FromComplex128(Xcatanh(tls, Complex128FromComplex128(complex128(z)))) } func Xcatanl(tls *TLS, z complex128) (r complex128) { @@ -1138,7 +1138,7 @@ func Xcatanl(tls *TLS, z complex128) (r complex128) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Complex128FromComplex128(Xcatan(tls, Complex128FromComplex128(z))) + return Complex128FromComplex128(Xcatan(tls, Complex128FromComplex128(complex128(z)))) } /* cos(z) = cosh(i z) */ @@ -1187,10 +1187,10 @@ func Xccosh(tls *TLS, z complex128) (r complex128) { y = +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)] __u = *(*Tuint64_t)(unsafe.Pointer(&x)) hx = int32(__u >> int32(32)) - lx = int32(uint32(__u)) + lx = int32(uint32(uint32(__u))) __u1 = *(*Tuint64_t)(unsafe.Pointer(&y)) hy = int32(__u1 >> int32(32)) - ly = int32(uint32(__u1)) + ly = int32(uint32(uint32(__u1))) ix = int32(0x7fffffff) & hx iy = int32(0x7fffffff) & hy /* Handle the nearly-non-exceptional cases where x and y are finite. */ @@ -1456,7 +1456,7 @@ func Xccoshl(tls *TLS, z complex128) (r complex128) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Complex128FromComplex128(Xccosh(tls, Complex128FromComplex128(z))) + return Complex128FromComplex128(Xccosh(tls, Complex128FromComplex128(complex128(z)))) } func Xccosl(tls *TLS, z complex128) (r complex128) { @@ -1464,7 +1464,7 @@ func Xccosl(tls *TLS, z complex128) (r complex128) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Complex128FromComplex128(Xccos(tls, Complex128FromComplex128(z))) + return Complex128FromComplex128(Xccos(tls, Complex128FromComplex128(complex128(z)))) } var _exp_ovfl = uint32(0x40862e42) /* high bits of MAX_EXP * ln2 ~= 710 */ @@ -1484,7 +1484,7 @@ func Xcexp(tls *TLS, z complex128) (r complex128) { y = +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)] __u = *(*Tuint64_t)(unsafe.Pointer(&y)) hy = uint32(__u >> int32(32)) - ly = uint32(__u) + ly = uint32(uint32(__u)) hy &= uint32(0x7fffffff) /* cexp(x + I 0) = exp(x) + I 0 */ if hy|ly == uint32(0) { @@ -1496,7 +1496,7 @@ func Xcexp(tls *TLS, z complex128) (r complex128) { } __u1 = *(*Tuint64_t)(unsafe.Pointer(&x)) hx = uint32(__u1 >> int32(32)) - lx = uint32(__u1) + lx = uint32(uint32(__u1)) /* cexp(0 + I y) = cos(y) + I sin(y) */ if hx&uint32(0x7fffffff)|lx == uint32(0) { v2 = [2]float64{ @@ -1640,7 +1640,7 @@ func Xcexpl(tls *TLS, z complex128) (r complex128) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Complex128FromComplex128(Xcexp(tls, Complex128FromComplex128(z))) + return Complex128FromComplex128(Xcexp(tls, Complex128FromComplex128(complex128(z)))) } func Xcimag(tls *TLS, z complex128) (r float64) { @@ -1712,7 +1712,7 @@ func Xclogl(tls *TLS, z complex128) (r complex128) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Complex128FromComplex128(Xclog(tls, Complex128FromComplex128(z))) + return Complex128FromComplex128(Xclog(tls, Complex128FromComplex128(complex128(z)))) } func Xconj(tls *TLS, z complex128) (r complex128) { @@ -1780,7 +1780,7 @@ func Xcpowl(tls *TLS, z complex128, c complex128) (r complex128) { trc("tls=%v z=%v c=%v, (%v:)", tls, z, c, origin(2)) defer func() { trc("-> %v", r) }() } - return Complex128FromComplex128(Xcpow(tls, Complex128FromComplex128(z), Complex128FromComplex128(c))) + return Complex128FromComplex128(Xcpow(tls, Complex128FromComplex128(complex128(z)), Complex128FromComplex128(complex128(c)))) } func Xcproj(tls *TLS, z complex128) (r complex128) { @@ -1860,7 +1860,7 @@ func Xcprojl(tls *TLS, z complex128) (r complex128) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Complex128FromComplex128(Xcproj(tls, Complex128FromComplex128(z))) + return Complex128FromComplex128(Xcproj(tls, Complex128FromComplex128(complex128(z)))) } func Xcreal(tls *TLS, z complex128) (r float64) { @@ -1943,10 +1943,10 @@ func Xcsinh(tls *TLS, z complex128) (r complex128) { y = +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)] __u = *(*Tuint64_t)(unsafe.Pointer(&x)) hx = int32(__u >> int32(32)) - lx = int32(uint32(__u)) + lx = int32(uint32(uint32(__u))) __u1 = *(*Tuint64_t)(unsafe.Pointer(&y)) hy = int32(__u1 >> int32(32)) - ly = int32(uint32(__u1)) + ly = int32(uint32(uint32(__u1))) ix = int32(0x7fffffff) & hx iy = int32(0x7fffffff) & hy /* Handle the nearly-non-exceptional cases where x and y are finite. */ @@ -2213,7 +2213,7 @@ func Xcsinhl(tls *TLS, z complex128) (r complex128) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Complex128FromComplex128(Xcsinh(tls, Complex128FromComplex128(z))) + return Complex128FromComplex128(Xcsinh(tls, Complex128FromComplex128(complex128(z)))) } func Xcsinl(tls *TLS, z complex128) (r complex128) { @@ -2221,7 +2221,7 @@ func Xcsinl(tls *TLS, z complex128) (r complex128) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Complex128FromComplex128(Xcsin(tls, Complex128FromComplex128(z))) + return Complex128FromComplex128(Xcsin(tls, Complex128FromComplex128(complex128(z)))) } const THRESH = 7.446288774449766e+307 @@ -2444,17 +2444,17 @@ _9: * This is Algorithm 312, CACM vol 10, Oct 1967. */ if a >= Float32FromInt32(0) { - t = Xsqrt(tls, (float64(a)+Xhypot(tls, float64(a), float64(b)))*float64(0.5)) + t = Xsqrt(tls, (float64(float64(a))+Xhypot(tls, float64(float64(a)), float64(float64(b))))*float64(0.5)) v14 = [2]float32{ 0: float32(t), - 1: float32(float64(b) / (Float64FromFloat64(2) * t)), + 1: float32(float64(float64(b)) / (Float64FromFloat64(2) * t)), } return *(*complex64)(unsafe.Pointer(&v14)) } else { - t = Xsqrt(tls, (float64(-a)+Xhypot(tls, float64(a), float64(b)))*float64(0.5)) + t = Xsqrt(tls, (float64(-a)+Xhypot(tls, float64(float64(a)), float64(float64(b))))*float64(0.5)) v15 = [2]float32{ 0: float32(float64(Xfabsf(tls, b)) / (Float64FromFloat64(2) * t)), - 1: Xcopysignf(tls, float32(t), b), + 1: Xcopysignf(tls, float32(float32(t)), b), } return *(*complex64)(unsafe.Pointer(&v15)) } @@ -2469,7 +2469,7 @@ func Xcsqrtl(tls *TLS, z complex128) (r complex128) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Complex128FromComplex128(Xcsqrt(tls, Complex128FromComplex128(z))) + return Complex128FromComplex128(Xcsqrt(tls, Complex128FromComplex128(complex128(z)))) } /* tan(z) = -i tanh(i z) */ @@ -2533,7 +2533,7 @@ func Xctanh(tls *TLS, z complex128) (r complex128) { y = +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)] __u1 = *(*Tuint64_t)(unsafe.Pointer(&x)) hx = uint32(__u1 >> int32(32)) - lx = uint32(__u1) + lx = uint32(uint32(__u1)) ix = hx & uint32(0x7fffffff) /* * ctanh(NaN + i 0) = NaN + i 0 @@ -2723,7 +2723,7 @@ func Xctanhl(tls *TLS, z complex128) (r complex128) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Complex128FromComplex128(Xctanh(tls, Complex128FromComplex128(z))) + return Complex128FromComplex128(Xctanh(tls, Complex128FromComplex128(complex128(z)))) } func Xctanl(tls *TLS, z complex128) (r complex128) { @@ -2731,7 +2731,7 @@ func Xctanl(tls *TLS, z complex128) (r complex128) { trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) defer func() { trc("-> %v", r) }() } - return Complex128FromComplex128(Xctan(tls, Complex128FromComplex128(z))) + return Complex128FromComplex128(Xctan(tls, Complex128FromComplex128(complex128(z)))) } const BUFSIZ = 1024 @@ -3182,7 +3182,7 @@ func Xconfstr(tls *TLS, name int32, buf uintptr, len1 Tsize_t) (r Tsize_t) { if !(name != 0) { s = __ccgo_ts + 1 } else { - if uint32(name) & ^Uint32FromUint32(4) != uint32(1) && uint32(name-int32(_CS_POSIX_V6_ILP32_OFF32_CFLAGS)) > uint32(35) { + if uint32(uint32(name)) & ^Uint32FromUint32(4) != uint32(1) && uint32(name-int32(_CS_POSIX_V6_ILP32_OFF32_CFLAGS)) > uint32(35) { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) return uint64(0) } @@ -3309,7 +3309,7 @@ func Xfpathconf(tls *TLS, fd int32, name int32) (r int64) { trc("tls=%v fd=%v name=%v, (%v:)", tls, fd, name, origin(2)) defer func() { trc("-> %v", r) }() } - if uint64(name) >= Uint64FromInt64(42)/Uint64FromInt64(2) { + if uint64(uint64(name)) >= Uint64FromInt64(42)/Uint64FromInt64(2) { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) return int64(-int32(1)) } @@ -7458,7 +7458,7 @@ func Xsysconf(tls *TLS, name int32) (r int64) { var _ /* set at bp+16 */ [128]uint8 var _ /* si at bp+144 */ Tsysinfo _, _, _, _, _, _, _, _ = cnt, i, mem, val, v1, v3, v6, p5 - if uint64(name) >= Uint64FromInt64(502)/Uint64FromInt64(2) || !(_values1[name] != 0) { + if uint64(uint64(name)) >= Uint64FromInt64(502)/Uint64FromInt64(2) || !(_values1[name] != 0) { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) return int64(-int32(1)) } else { @@ -7503,7 +7503,7 @@ func Xsysconf(tls *TLS, name int32) (r int64) { cnt = v3 i = v3 for { - if !(uint64(i) < uint64(128)) { + if !(uint64(uint64(i)) < uint64(128)) { break } for { @@ -7522,7 +7522,7 @@ func Xsysconf(tls *TLS, name int32) (r int64) { ; i++ } - return int64(cnt) + return int64(int64(cnt)) case (-Int32FromInt32(256) | Int32FromInt32(8)) & Int32FromInt32(255): fallthrough case (-Int32FromInt32(256) | Int32FromInt32(9)) & Int32FromInt32(255): @@ -7531,9 +7531,9 @@ func Xsysconf(tls *TLS, name int32) (r int64) { (*(*Tsysinfo)(unsafe.Pointer(bp + 144))).Fmem_unit = uint32(1) } if name == int32(_SC_PHYS_PAGES) { - mem = (*(*Tsysinfo)(unsafe.Pointer(bp + 144))).Ftotalram + mem = uint64((*(*Tsysinfo)(unsafe.Pointer(bp + 144))).Ftotalram) } else { - mem = (*(*Tsysinfo)(unsafe.Pointer(bp + 144))).Ffreeram + (*(*Tsysinfo)(unsafe.Pointer(bp + 144))).Fbufferram + mem = uint64((*(*Tsysinfo)(unsafe.Pointer(bp + 144))).Ffreeram + (*(*Tsysinfo)(unsafe.Pointer(bp + 144))).Fbufferram) } mem *= uint64((*(*Tsysinfo)(unsafe.Pointer(bp + 144))).Fmem_unit) mem /= uint64(PAGESIZE) @@ -9176,8 +9176,8 @@ func _BF_set_key(tls *TLS, key uintptr, expanded uintptr, initial uintptr, flags * Prefix "$2x$": bug = 1, safety = 0 * Prefix "$2y$": bug = 0, safety = 0 */ - bug = uint32(int32(flags) & int32(1)) - safety = uint32(flags) & uint32(2) << int32(15) + bug = uint32(int32(int32(flags)) & int32(1)) + safety = uint32(uint32(flags)) & uint32(2) << int32(15) v1 = Uint32FromInt32(0) diff = v1 sign = v1 @@ -9197,7 +9197,7 @@ func _BF_set_key(tls *TLS, key uintptr, expanded uintptr, initial uintptr, flags *(*TBF_word)(unsafe.Pointer(bp)) <<= uint32(8) *(*TBF_word)(unsafe.Pointer(bp)) |= uint32(uint8(*(*int8)(unsafe.Pointer(ptr)))) /* correct */ *(*TBF_word)(unsafe.Pointer(bp + 1*4)) <<= uint32(8) - *(*TBF_word)(unsafe.Pointer(bp + 1*4)) |= uint32(*(*int8)(unsafe.Pointer(ptr))) /* bug */ + *(*TBF_word)(unsafe.Pointer(bp + 1*4)) |= uint32(int8(*(*int8)(unsafe.Pointer(ptr)))) /* bug */ /* * Sign extension in the first char has no effect - nothing to overwrite yet, * and those extra 24 bits will be fully shifted out of the 32-bit word. For @@ -11259,7 +11259,7 @@ func _ascii_to_bin(tls *TLS, ch int32) (r Tuint32_t) { } } retval &= int32(0x3f) - return uint32(retval) + return uint32(uint32(retval)) } // C documentation @@ -11269,7 +11269,7 @@ func _ascii_to_bin(tls *TLS, ch int32) (r Tuint32_t) { // * containing characters that would violate the passwd file format. // */ func _ascii_is_unsafe(tls *TLS, ch uint8) (r int32) { - return BoolInt32(!(ch != 0) || int32(ch) == int32('\n') || int32(ch) == int32(':')) + return BoolInt32(!(ch != 0) || int32(int32(ch)) == int32('\n') || int32(int32(ch)) == int32(':')) } func _setup_salt(tls *TLS, salt Tuint32_t) (r Tuint32_t) { @@ -12023,17 +12023,17 @@ func _md5crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r uintpt slen = i /* md5(key salt key) */ _md5_init(tls, bp) - _md5_update(tls, bp, key, uint64(klen)) - _md5_update(tls, bp, salt, uint64(slen)) - _md5_update(tls, bp, key, uint64(klen)) + _md5_update(tls, bp, key, uint64(uint64(klen))) + _md5_update(tls, bp, salt, uint64(uint64(slen))) + _md5_update(tls, bp, key, uint64(uint64(klen))) _md5_sum(tls, bp, bp+88) /* md5(key $1$ salt repeated-md weird-key[0]-0) */ _md5_init(tls, bp) - _md5_update(tls, bp, key, uint64(klen)) + _md5_update(tls, bp, key, uint64(uint64(klen))) _md5_update(tls, bp, setting, uint64(uint32(3)+slen)) i = klen for { - if !(uint64(i) > uint64(16)) { + if !(uint64(uint64(i)) > uint64(16)) { break } _md5_update(tls, bp, bp+88, uint64(16)) @@ -12042,7 +12042,7 @@ func _md5crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r uintpt ; i = uint32(uint64(i) - Uint64FromInt64(16)) } - _md5_update(tls, bp, bp+88, uint64(i)) + _md5_update(tls, bp, bp+88, uint64(uint64(i))) (*(*[16]uint8)(unsafe.Pointer(bp + 88)))[0] = uint8(0) i = klen for { @@ -12068,20 +12068,20 @@ func _md5crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r uintpt } _md5_init(tls, bp) if i%uint32(2) != 0 { - _md5_update(tls, bp, key, uint64(klen)) + _md5_update(tls, bp, key, uint64(uint64(klen))) } else { _md5_update(tls, bp, bp+88, uint64(16)) } if i%uint32(3) != 0 { - _md5_update(tls, bp, salt, uint64(slen)) + _md5_update(tls, bp, salt, uint64(uint64(slen))) } if i%uint32(7) != 0 { - _md5_update(tls, bp, key, uint64(klen)) + _md5_update(tls, bp, key, uint64(uint64(klen))) } if i%uint32(2) != 0 { _md5_update(tls, bp, bp+88, uint64(16)) } else { - _md5_update(tls, bp, key, uint64(klen)) + _md5_update(tls, bp, key, uint64(uint64(klen))) } _md5_sum(tls, bp, bp+88) goto _4 @@ -12483,7 +12483,7 @@ func _hashmd(tls *TLS, s uintptr, n uint32, md uintptr) { ; i -= uint32(32) } - _sha256_update(tls, s, md, uint64(i)) + _sha256_update(tls, s, md, uint64(uint64(i))) } func _sha256crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r1 uintptr) { @@ -12539,7 +12539,7 @@ func _sha256crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r1 ui if u > uint64(ROUNDS_MAX) { return uintptr(0) } else { - r = uint32(u) + r = uint32(uint32(u)) } } /* needed when rounds is zero prefixed or out of bounds */ @@ -12562,14 +12562,14 @@ func _sha256crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r1 ui slen = i /* B = sha(key salt key) */ _sha256_init(tls, bp) - _sha256_update(tls, bp, key, uint64(klen)) - _sha256_update(tls, bp, salt, uint64(slen)) - _sha256_update(tls, bp, key, uint64(klen)) + _sha256_update(tls, bp, key, uint64(uint64(klen))) + _sha256_update(tls, bp, salt, uint64(uint64(slen))) + _sha256_update(tls, bp, key, uint64(uint64(klen))) _sha256_sum(tls, bp, bp+104) /* A = sha(key salt repeat-B alternate-B-key) */ _sha256_init(tls, bp) - _sha256_update(tls, bp, key, uint64(klen)) - _sha256_update(tls, bp, salt, uint64(slen)) + _sha256_update(tls, bp, key, uint64(uint64(klen))) + _sha256_update(tls, bp, salt, uint64(uint64(slen))) _hashmd(tls, bp, klen, bp+104) i = klen for { @@ -12579,7 +12579,7 @@ func _sha256crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r1 ui if i&uint32(1) != 0 { _sha256_update(tls, bp, bp+104, uint64(32)) } else { - _sha256_update(tls, bp, key, uint64(klen)) + _sha256_update(tls, bp, key, uint64(uint64(klen))) } goto _2 _2: @@ -12594,7 +12594,7 @@ func _sha256crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r1 ui if !(i < klen) { break } - _sha256_update(tls, bp, key, uint64(klen)) + _sha256_update(tls, bp, key, uint64(uint64(klen))) goto _3 _3: ; @@ -12608,7 +12608,7 @@ func _sha256crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r1 ui if !(i < uint32(int32(16)+int32((*(*[32]uint8)(unsafe.Pointer(bp + 104)))[0]))) { break } - _sha256_update(tls, bp, salt, uint64(slen)) + _sha256_update(tls, bp, salt, uint64(uint64(slen))) goto _4 _4: ; @@ -12628,7 +12628,7 @@ func _sha256crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r1 ui _sha256_update(tls, bp, bp+104, uint64(32)) } if i%uint32(3) != 0 { - _sha256_update(tls, bp, bp+168, uint64(slen)) + _sha256_update(tls, bp, bp+168, uint64(uint64(slen))) } if i%uint32(7) != 0 { _hashmd(tls, bp, klen, bp+136) @@ -13042,7 +13042,7 @@ func _hashmd1(tls *TLS, s uintptr, n uint32, md uintptr) { ; i -= uint32(64) } - _sha512_update(tls, s, md, uint64(i)) + _sha512_update(tls, s, md, uint64(uint64(i))) } func _sha512crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r1 uintptr) { @@ -13108,7 +13108,7 @@ func _sha512crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r1 ui if u > uint64(ROUNDS_MAX) { return uintptr(0) } else { - r = uint32(u) + r = uint32(uint32(u)) } } /* needed when rounds is zero prefixed or out of bounds */ @@ -13131,14 +13131,14 @@ func _sha512crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r1 ui slen = i /* B = sha(key salt key) */ _sha512_init(tls, bp) - _sha512_update(tls, bp, key, uint64(klen)) - _sha512_update(tls, bp, salt, uint64(slen)) - _sha512_update(tls, bp, key, uint64(klen)) + _sha512_update(tls, bp, key, uint64(uint64(klen))) + _sha512_update(tls, bp, salt, uint64(uint64(slen))) + _sha512_update(tls, bp, key, uint64(uint64(klen))) _sha512_sum(tls, bp, bp+200) /* A = sha(key salt repeat-B alternate-B-key) */ _sha512_init(tls, bp) - _sha512_update(tls, bp, key, uint64(klen)) - _sha512_update(tls, bp, salt, uint64(slen)) + _sha512_update(tls, bp, key, uint64(uint64(klen))) + _sha512_update(tls, bp, salt, uint64(uint64(slen))) _hashmd1(tls, bp, klen, bp+200) i = klen for { @@ -13148,7 +13148,7 @@ func _sha512crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r1 ui if i&uint32(1) != 0 { _sha512_update(tls, bp, bp+200, uint64(64)) } else { - _sha512_update(tls, bp, key, uint64(klen)) + _sha512_update(tls, bp, key, uint64(uint64(klen))) } goto _3 _3: @@ -13163,7 +13163,7 @@ func _sha512crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r1 ui if !(i < klen) { break } - _sha512_update(tls, bp, key, uint64(klen)) + _sha512_update(tls, bp, key, uint64(uint64(klen))) goto _4 _4: ; @@ -13177,7 +13177,7 @@ func _sha512crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r1 ui if !(i < uint32(int32(16)+int32((*(*[64]uint8)(unsafe.Pointer(bp + 200)))[0]))) { break } - _sha512_update(tls, bp, salt, uint64(slen)) + _sha512_update(tls, bp, salt, uint64(uint64(slen))) goto _5 _5: ; @@ -13197,7 +13197,7 @@ func _sha512crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r1 ui _sha512_update(tls, bp, bp+200, uint64(64)) } if i%uint32(3) != 0 { - _sha512_update(tls, bp, bp+328, uint64(slen)) + _sha512_update(tls, bp, bp+328, uint64(uint64(slen))) } if i%uint32(7) != 0 { _hashmd1(tls, bp, klen, bp+264) @@ -13943,7 +13943,7 @@ func X__ctype_get_mb_cur_max(tls *TLS) (r Tsize_t) { } var v1 int32 _ = v1 - if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale)) != 0) { + if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Flocale)) != 0) { v1 = int32(4) } else { v1 = int32(1) @@ -14260,7 +14260,7 @@ func Xisalpha(tls *TLS, c int32) (r int32) { trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) defer func() { trc("-> %v", r) }() } - return BoolInt32(uint32(c)|uint32(32)-uint32('a') < uint32(26)) + return BoolInt32(uint32(uint32(c))|uint32(32)-uint32('a') < uint32(26)) } func X__isalpha_l(tls *TLS, c int32, l Tlocale_t) (r int32) { @@ -14316,7 +14316,7 @@ func Xiscntrl(tls *TLS, c int32) (r int32) { trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) defer func() { trc("-> %v", r) }() } - return BoolInt32(uint32(c) < uint32(0x20) || c == int32(0x7f)) + return BoolInt32(uint32(uint32(c)) < uint32(0x20) || c == int32(0x7f)) } func X__iscntrl_l(tls *TLS, c int32, l Tlocale_t) (r int32) { @@ -14340,7 +14340,7 @@ func Xisdigit(tls *TLS, c int32) (r int32) { trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) defer func() { trc("-> %v", r) }() } - return BoolInt32(uint32(c)-uint32('0') < uint32(10)) + return BoolInt32(uint32(uint32(c))-uint32('0') < uint32(10)) } func X__isdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) { @@ -14364,7 +14364,7 @@ func Xisgraph(tls *TLS, c int32) (r int32) { trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) defer func() { trc("-> %v", r) }() } - return BoolInt32(uint32(c)-uint32(0x21) < uint32(0x5e)) + return BoolInt32(uint32(uint32(c))-uint32(0x21) < uint32(0x5e)) } func X__isgraph_l(tls *TLS, c int32, l Tlocale_t) (r int32) { @@ -14388,7 +14388,7 @@ func Xislower(tls *TLS, c int32) (r int32) { trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) defer func() { trc("-> %v", r) }() } - return BoolInt32(uint32(c)-uint32('a') < uint32(26)) + return BoolInt32(uint32(uint32(c))-uint32('a') < uint32(26)) } func X__islower_l(tls *TLS, c int32, l Tlocale_t) (r int32) { @@ -14412,7 +14412,7 @@ func Xisprint(tls *TLS, c int32) (r int32) { trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) defer func() { trc("-> %v", r) }() } - return BoolInt32(uint32(c)-uint32(0x20) < uint32(0x5f)) + return BoolInt32(uint32(uint32(c))-uint32(0x20) < uint32(0x5f)) } func X__isprint_l(tls *TLS, c int32, l Tlocale_t) (r int32) { @@ -14460,7 +14460,7 @@ func Xisspace(tls *TLS, c int32) (r int32) { trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) defer func() { trc("-> %v", r) }() } - return BoolInt32(c == int32(' ') || uint32(c)-uint32('\t') < uint32(5)) + return BoolInt32(c == int32(' ') || uint32(uint32(c))-uint32('\t') < uint32(5)) } func X__isspace_l(tls *TLS, c int32, l Tlocale_t) (r int32) { @@ -14484,7 +14484,7 @@ func Xisupper(tls *TLS, c int32) (r int32) { trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) defer func() { trc("-> %v", r) }() } - return BoolInt32(uint32(c)-uint32('A') < uint32(26)) + return BoolInt32(uint32(uint32(c))-uint32('A') < uint32(26)) } func X__isupper_l(tls *TLS, c int32, l Tlocale_t) (r int32) { @@ -17406,7 +17406,7 @@ func Xiswblank(tls *TLS, wc Twint_t) (r int32) { trc("tls=%v wc=%v, (%v:)", tls, wc, origin(2)) defer func() { trc("-> %v", r) }() } - return Xisblank(tls, int32(wc)) + return Xisblank(tls, int32(int32(wc))) } func X__iswblank_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { @@ -17511,7 +17511,7 @@ func Xwctype(tls *TLS, s uintptr) (r Twctype_t) { break } if int32(*(*int8)(unsafe.Pointer(s))) == int32(*(*int8)(unsafe.Pointer(p))) && !(Xstrcmp(tls, s, p) != 0) { - return uint64(i) + return uint64(uint64(i)) } goto _1 _1: @@ -19265,7 +19265,7 @@ func Xiswspace(tls *TLS, wc Twint_t) (r int32) { trc("tls=%v wc=%v, (%v:)", tls, wc, origin(2)) defer func() { trc("-> %v", r) }() } - return BoolInt32(wc != 0 && Xwcschr(tls, uintptr(unsafe.Pointer(&_spaces)), int32(wc)) != 0) + return BoolInt32(wc != 0 && Xwcschr(tls, uintptr(unsafe.Pointer(&_spaces)), int32(int32(wc))) != 0) } var _spaces = [22]Twchar_t{ @@ -19361,7 +19361,7 @@ func Xisxdigit(tls *TLS, c int32) (r int32) { trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) defer func() { trc("-> %v", r) }() } - return BoolInt32(BoolInt32(uint32(c)-uint32('0') < uint32(10)) != 0 || uint32(c)|uint32(32)-uint32('a') < uint32(6)) + return BoolInt32(BoolInt32(uint32(c)-uint32('0') < uint32(10)) != 0 || uint32(uint32(c))|uint32(32)-uint32('a') < uint32(6)) } func X__isxdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) { @@ -22229,9 +22229,9 @@ func _casemap(tls *TLS, c uint32, dir int32) (r1 int32) { var b, rt, try, v, x, xb, xn, y uint32 var c0, r, rd, v1 int32 _, _, _, _, _, _, _, _, _, _, _, _ = b, c0, r, rd, rt, try, v, x, xb, xn, y, v1 - c0 = int32(c) + c0 = int32(int32(c)) if c >= uint32(0x20000) { - return int32(c) + return int32(int32(c)) } b = c >> int32(8) c &= uint32(255) @@ -22249,12 +22249,12 @@ func _casemap(tls *TLS, c uint32, dir int32) (r1 int32) { /* rules 0/1 are simple lower/upper case with a delta. * apply according to desired mapping direction. */ if rt < uint32(2) { - return int32(uint32(c0) + uint32(rd)&-(rt^uint32(dir))) + return int32(uint32(uint32(c0)) + uint32(uint32(rd))&-(rt^uint32(uint32(dir)))) } /* binary search. endpoints of the binary search for * this block are stored in the rule delta field. */ xn = uint32(rd & int32(0xff)) - xb = uint32(rd) >> int32(8) + xb = uint32(uint32(rd)) >> int32(8) for xn != 0 { try = uint32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_exceptions)) + uintptr(xb+xn/uint32(2))*2))) if try == c { @@ -22262,7 +22262,7 @@ func _casemap(tls *TLS, c uint32, dir int32) (r1 int32) { rt = uint32(r & int32(255)) rd = r >> int32(8) if rt < uint32(2) { - return int32(uint32(c0) + uint32(rd)&-(rt^uint32(dir))) + return int32(uint32(uint32(c0)) + uint32(uint32(rd))&-(rt^uint32(uint32(dir)))) } /* Hard-coded for the four exceptional titlecase */ if dir != 0 { @@ -24501,7 +24501,7 @@ func Xwcwidth(tls *TLS, wc Twchar_t) (r int32) { } var v1, v2 int32 _, _ = v1, v2 - if uint32(wc) < uint32(0xff) { + if uint32(uint32(wc)) < uint32(0xff) { if (wc+int32(1))&int32(0x7f) >= int32(0x21) { v1 = int32(1) } else { @@ -24514,7 +24514,7 @@ func Xwcwidth(tls *TLS, wc Twchar_t) (r int32) { } return v1 } - if uint32(wc)&uint32(0xfffeffff) < uint32(0xfffe) { + if uint32(uint32(wc))&uint32(0xfffeffff) < uint32(0xfffe) { if int32(_table5[int32(_table5[wc>>int32(8)])*int32(32)+wc&int32(255)>>int32(3)])>>(wc&int32(7))&int32(1) != 0 { return 0 } @@ -24526,10 +24526,10 @@ func Xwcwidth(tls *TLS, wc Twchar_t) (r int32) { if wc&int32(0xfffe) == int32(0xfffe) { return -int32(1) } - if uint32(wc)-uint32(0x20000) < uint32(0x20000) { + if uint32(uint32(wc))-uint32(0x20000) < uint32(0x20000) { return int32(2) } - if wc == int32(0xe0001) || uint32(wc)-uint32(0xe0020) < uint32(0x5f) || uint32(wc)-uint32(0xe0100) < uint32(0xef) { + if wc == int32(0xe0001) || uint32(uint32(wc))-uint32(0xe0020) < uint32(0x5f) || uint32(uint32(wc))-uint32(0xe0100) < uint32(0xef) { return 0 } return int32(1) @@ -24982,7 +24982,7 @@ func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r Xqsort(tls, names, cnt, uint64(8), cmp) } *(*uintptr)(unsafe.Pointer(res)) = names - return int32(cnt) + return int32(int32(cnt)) } func Xseekdir(tls *TLS, dir uintptr, off int64) { @@ -25023,7 +25023,7 @@ func X__reset_tls(tls *TLS) { var mem, p uintptr var self Tpthread_t _, _, _, _, _ = i, mem, n, p, self - self = ___get_tp(tls) + self = uintptr(___get_tp(tls)) n = *(*Tuintptr_t)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(self)).Fdtv)) if n != 0 { p = X__libc.Ftls_head @@ -25059,7 +25059,7 @@ func X__init_ssp(tls *TLS, entropy uintptr) { * still be detected. Endianness is taken care of * automatically. */ *(*int8)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__stack_chk_guard)) + 1)) = 0 - (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Fcanary = X__stack_chk_guard + (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Fcanary = X__stack_chk_guard } func X__stack_chk_fail(tls *TLS) { @@ -25111,7 +25111,7 @@ func Xgetenv(tls *TLS, name uintptr) (r uintptr) { var e uintptr var l Tsize_t _, _ = e, l - l = uint64(int64(X__strchrnul(tls, name, int32('='))) - int64(name)) + l = uint64(int64(X__strchrnul(tls, name, int32('='))) - int64(int64(name))) if l != 0 && !(*(*int8)(unsafe.Pointer(name + uintptr(l))) != 0) && Xenviron != 0 { e = Xenviron for { @@ -25185,6 +25185,7 @@ func X__putenv(tls *TLS, s uintptr, l Tsize_t, r uintptr) (r1 int32) { X__env_rm_add(tls, uintptr(0), r) } return 0 + goto oom oom: ; Xfree(tls, r) @@ -25200,7 +25201,7 @@ func Xputenv(tls *TLS, s uintptr) (r int32) { } var l Tsize_t _ = l - l = uint64(int64(X__strchrnul(tls, s, int32('='))) - int64(s)) + l = uint64(int64(X__strchrnul(tls, s, int32('='))) - int64(int64(s))) if !(l != 0) || !(*(*int8)(unsafe.Pointer(s + uintptr(l))) != 0) { return Xunsetenv(tls, s) } @@ -25289,7 +25290,7 @@ func Xsetenv(tls *TLS, var1 uintptr, value uintptr, overwrite int32) (r int32) { var v2 bool _, _, _, _, _ = l1, l2, s, v1, v2 if v2 = !(var1 != 0); !v2 { - v1 = uint64(int64(X__strchrnul(tls, var1, int32('='))) - int64(var1)) + v1 = uint64(int64(X__strchrnul(tls, var1, int32('='))) - int64(int64(var1))) l1 = v1 } if v2 || !(v1 != 0) || *(*int8)(unsafe.Pointer(var1 + uintptr(l1))) != 0 { @@ -25321,7 +25322,7 @@ func Xunsetenv(tls *TLS, name uintptr) (r int32) { var e, eo, v2 uintptr var l Tsize_t _, _, _, _ = e, eo, l, v2 - l = uint64(int64(X__strchrnul(tls, name, int32('='))) - int64(name)) + l = uint64(int64(X__strchrnul(tls, name, int32('='))) - int64(int64(name))) if !(l != 0) || *(*int8)(unsafe.Pointer(name + uintptr(l))) != 0 { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) return -int32(1) @@ -25656,7 +25657,7 @@ func X__strerror_l(tls *TLS, e int32, loc Tlocale_t) (r uintptr) { } var s uintptr _ = s - if uint64(e) >= Uint64FromInt64(264)/Uint64FromInt64(2) { + if uint64(uint64(e)) >= Uint64FromInt64(264)/Uint64FromInt64(2) { e = 0 } s = uintptr(unsafe.Pointer(&_errmsgstr)) + uintptr(_errmsgidx[e]) @@ -25668,7 +25669,7 @@ func Xstrerror(tls *TLS, e int32) (r uintptr) { trc("tls=%v e=%v, (%v:)", tls, e, origin(2)) defer func() { trc("-> %v", r) }() } - return X__strerror_l(tls, e, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale) + return X__strerror_l(tls, e, (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Flocale) } func Xstrerror_l(tls *TLS, e int32, loc Tlocale_t) (r uintptr) { @@ -25793,7 +25794,7 @@ func Xfcntl(tls *TLS, fd int32, cmd int32, va uintptr) (r int32) { return int32(X__syscall3(tls, int64(SYS_fcntl), int64(fd), int64(cmd), int64(uintptr(arg)))) } if ret != 0 { - return int32(X__syscall_ret(tls, uint64(ret))) + return int32(X__syscall_ret(tls, uint64(uint64(ret)))) } if (*(*Tf_owner_ex)(unsafe.Pointer(bp))).Ftype1 == int32(F_OWNER_PGRP) { v1 = -(*(*Tf_owner_ex)(unsafe.Pointer(bp))).Fpid @@ -25808,7 +25809,7 @@ func Xfcntl(tls *TLS, fd int32, cmd int32, va uintptr) (r int32) { if ret1 >= 0 { X__syscall3(tls, int64(SYS_fcntl), int64(ret1), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) } - return int32(X__syscall_ret(tls, uint64(ret1))) + return int32(X__syscall_ret(tls, uint64(uint64(ret1)))) } ret1 = int32(X__syscall3(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_DUPFD_CLOEXEC)), int64(Int32FromInt32(0)))) if ret1 != -int32(EINVAL) { @@ -25821,7 +25822,7 @@ func Xfcntl(tls *TLS, fd int32, cmd int32, va uintptr) (r int32) { if ret1 >= 0 { X__syscall3(tls, int64(SYS_fcntl), int64(ret1), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) } - return int32(X__syscall_ret(tls, uint64(ret1))) + return int32(X__syscall_ret(tls, uint64(uint64(ret1)))) } switch cmd { case int32(F_SETLK): @@ -25857,7 +25858,7 @@ func Xopen(tls *TLS, filename uintptr, flags int32, va uintptr) (r int32) { if fd >= 0 && flags&int32(O_CLOEXEC) != 0 { X__syscall3(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) } - return int32(X__syscall_ret(tls, uint64(fd))) + return int32(X__syscall_ret(tls, uint64(uint64(fd)))) } func Xopenat(tls *TLS, fd int32, filename uintptr, flags int32, va uintptr) (r int32) { @@ -26106,12 +26107,12 @@ func _scanexp(tls *TLS, f uintptr, pok int32) (r int64) { } c = v10 } - y = int64(x) + y = int64(int64(x)) for { if !(uint32(c-int32('0')) < uint32(10) && y < Int64FromInt64(0x7fffffffffffffff)/Int64FromInt32(100)) { break } - y = int64(10)*y + int64(c) - int64('0') + y = int64(10)*y + int64(int64(c)) - int64('0') goto _13 _13: ; @@ -26241,10 +26242,10 @@ func _decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, if k < Int32FromInt32(KMAX)-Int32FromInt32(3) { dc++ if c != int32('0') { - lnz = int32(dc) + lnz = int32(int32(dc)) } if j != 0 { - (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] = (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k]*uint32(10) + uint32(c) - uint32('0') + (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] = (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k]*uint32(10) + uint32(uint32(c)) - uint32('0') } else { (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] = uint32(c - int32('0')) } @@ -26307,19 +26308,19 @@ func _decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, } /* Handle zero specially to avoid nasty special cases later */ if !((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0] != 0) { - return float64(sign) * float64(0) + return float64(float64(float64(sign)) * float64(0)) } /* Optimize small integers (w/no exponent) and over/under-flow */ if lrp == dc && dc < int64(10) && (bits > int32(30) || (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0]>>bits == uint32(0)) { - return float64(sign) * float64((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0]) + return float64(float64(sign)) * float64((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0]) } if lrp > int64(-emin/int32(2)) { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ERANGE) - return float64(sign) * Float64FromFloat64(1.79769313486231570815e+308) * Float64FromFloat64(1.79769313486231570815e+308) + return float64(float64(sign)) * Float64FromFloat64(1.79769313486231570815e+308) * Float64FromFloat64(1.79769313486231570815e+308) } if lrp < int64(emin-Int32FromInt32(2)*Int32FromInt32(LDBL_MANT_DIG)) { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ERANGE) - return float64(sign) * Float64FromFloat64(2.22507385850720138309e-308) * Float64FromFloat64(2.22507385850720138309e-308) + return float64(float64(sign)) * Float64FromFloat64(2.22507385850720138309e-308) * Float64FromFloat64(2.22507385850720138309e-308) } /* Align incomplete final B1B digit */ if j != 0 { @@ -26339,18 +26340,18 @@ func _decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, a = 0 z = k e2 = 0 - rp = int32(lrp) + rp = int32(int32(lrp)) /* Optimize small to mid-size integers (even in exp. notation) */ if lnz < int32(9) && lnz <= rp && rp < int32(18) { if rp == int32(9) { - return float64(sign) * float64((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0]) + return float64(float64(sign)) * float64((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0]) } if rp < int32(9) { - return float64(sign) * float64((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0]) / float64(_p10s[int32(8)-rp]) + return float64(float64(sign)) * float64((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0]) / float64(_p10s[int32(8)-rp]) } bitlim = bits - int32(3)*(rp-Int32FromInt32(9)) if bitlim > int32(30) || (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0]>>bitlim == uint32(0) { - return float64(sign) * float64((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0]) * float64(_p10s[rp-int32(10)]) + return float64(float64(sign)) * float64((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0]) * float64(_p10s[rp-int32(10)]) } } /* Drop trailing zeros */ @@ -26378,8 +26379,8 @@ func _decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, if !(k != z) { break } - tmp = (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] % uint32(p10) - (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] = (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k]/uint32(p10) + carry + tmp = (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] % uint32(uint32(p10)) + (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] = (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k]/uint32(uint32(p10)) + carry carry = uint32(int32(1000000000)/p10) * tmp if k == a && !((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] != 0) { a = (a + int32(1)) & (Int32FromInt32(KMAX) - Int32FromInt32(1)) @@ -26403,13 +26404,13 @@ func _decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, e2 -= int32(29) k = (z - int32(1)) & (Int32FromInt32(KMAX) - Int32FromInt32(1)) for { - tmp1 = uint64((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k])< uint64(1000000000) { carry1 = uint32(tmp1 / uint64(1000000000)) (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] = uint32(tmp1 % uint64(1000000000)) } else { carry1 = uint32(0) - (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] = uint32(tmp1) + (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] = uint32(uint32(tmp1)) } if k == (z-int32(1))&(Int32FromInt32(KMAX)-Int32FromInt32(1)) && k != a && !((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] != 0) { z = k @@ -26510,7 +26511,7 @@ func _decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, ; i++ } - y *= float64(sign) + y *= float64(float64(sign)) /* Limit precision for denormal results */ if bits > int32(LDBL_MANT_DIG)+e2-emin { bits = int32(LDBL_MANT_DIG) + e2 - emin @@ -26521,8 +26522,8 @@ func _decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, } /* Calculate bias term to force rounding, move out lower bits */ if bits < int32(LDBL_MANT_DIG) { - bias = Xcopysignl(tls, Xscalbn(tls, Float64FromInt32(1), Int32FromInt32(2)*Int32FromInt32(LDBL_MANT_DIG)-bits-int32(1)), y) - frac = Xfmodl(tls, y, Xscalbn(tls, Float64FromInt32(1), int32(LDBL_MANT_DIG)-bits)) + bias = Xcopysignl(tls, float64(Xscalbn(tls, Float64FromInt32(1), Int32FromInt32(2)*Int32FromInt32(LDBL_MANT_DIG)-bits-int32(1))), y) + frac = Xfmodl(tls, y, float64(Xscalbn(tls, Float64FromInt32(1), int32(LDBL_MANT_DIG)-bits))) y -= frac y += bias } @@ -26530,16 +26531,16 @@ func _decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, if (a+i)&(Int32FromInt32(KMAX)-Int32FromInt32(1)) != z { t = (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[(a+i)&(Int32FromInt32(KMAX)-Int32FromInt32(1))] if t < uint32(500000000) && (t != 0 || (a+i+int32(1))&(Int32FromInt32(KMAX)-Int32FromInt32(1)) != z) { - frac += float64(0.25) * float64(sign) + frac += float64(float64(0.25) * float64(float64(sign))) } else { if t > uint32(500000000) { - frac += float64(0.75) * float64(sign) + frac += float64(float64(0.75) * float64(float64(sign))) } else { if t == uint32(500000000) { if (a+i+int32(1))&(Int32FromInt32(KMAX)-Int32FromInt32(1)) == z { - frac += float64(0.5) * float64(sign) + frac += float64(float64(0.5) * float64(float64(sign))) } else { - frac += float64(0.75) * float64(sign) + frac += float64(float64(0.75) * float64(float64(sign))) } } } @@ -26677,11 +26678,11 @@ func _hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int3 d = c - int32('0') } if dc < int64(8) { - x = x*uint32(16) + uint32(d) + x = x*uint32(16) + uint32(uint32(d)) } else { if dc < int64(Int32FromInt32(LDBL_MANT_DIG)/Int32FromInt32(4)+Int32FromInt32(1)) { scale /= Float64FromInt32(16) - y += float64(d) * scale + y += float64(float64(d)) * scale } else { if d != 0 && !(gottail != 0) { y += Float64FromFloat64(0.5) * scale @@ -26720,7 +26721,7 @@ func _hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int3 } else { X__shlim(tls, f, int64(Int32FromInt32(0))) } - return float64(sign) * float64(0) + return float64(float64(float64(sign)) * float64(0)) } if !(gotrad != 0) { rp = dc @@ -26749,15 +26750,15 @@ func _hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int3 } e2 += int64(4)*rp - int64(32) if !(x != 0) { - return float64(sign) * float64(0) + return float64(float64(float64(sign)) * float64(0)) } if e2 > int64(-emin) { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ERANGE) - return float64(sign) * Float64FromFloat64(1.79769313486231570815e+308) * Float64FromFloat64(1.79769313486231570815e+308) + return float64(float64(sign)) * Float64FromFloat64(1.79769313486231570815e+308) * Float64FromFloat64(1.79769313486231570815e+308) } if e2 < int64(emin-Int32FromInt32(2)*Int32FromInt32(LDBL_MANT_DIG)) { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ERANGE) - return float64(sign) * Float64FromFloat64(2.22507385850720138309e-308) * Float64FromFloat64(2.22507385850720138309e-308) + return float64(float64(sign)) * Float64FromFloat64(2.22507385850720138309e-308) * Float64FromFloat64(2.22507385850720138309e-308) } for x < uint32(0x80000000) { if y >= Float64FromFloat64(0.5) { @@ -26769,25 +26770,25 @@ func _hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int3 } e2-- } - if int64(bits) > int64(32)+e2-int64(emin) { - bits = int32(int64(32) + e2 - int64(emin)) + if int64(int64(bits)) > int64(32)+e2-int64(int64(emin)) { + bits = int32(int64(32) + e2 - int64(int64(emin))) if bits < 0 { bits = 0 } } if bits < int32(LDBL_MANT_DIG) { - bias = Xcopysignl(tls, Xscalbn(tls, Float64FromInt32(1), Int32FromInt32(32)+Int32FromInt32(LDBL_MANT_DIG)-bits-int32(1)), float64(sign)) + bias = Xcopysignl(tls, float64(Xscalbn(tls, Float64FromInt32(1), Int32FromInt32(32)+Int32FromInt32(LDBL_MANT_DIG)-bits-int32(1))), float64(float64(sign))) } if bits < int32(32) && y != 0 && !(x&Uint32FromInt32(1) != 0) { x++ y = Float64FromInt32(0) } - y = bias + float64(sign)*float64(x) + float64(sign)*y + y = bias + float64(float64(sign))*float64(float64(x)) + float64(float64(sign))*y y -= bias if !(y != 0) { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ERANGE) } - return Xscalbnl(tls, y, int32(e2)) + return Xscalbnl(tls, y, int32(int32(e2))) } func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) (r float64) { @@ -26885,7 +26886,7 @@ func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) (r float64) { } } } - return float64(float32(sign) * X__builtin_inff(tls)) + return float64(float32(float32(sign)) * X__builtin_inff(tls)) } if !(i != 0) { i = uint64(0) @@ -27378,7 +27379,7 @@ func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) (r uint } c = v21 } - y = uint64(x) + y = uint64(uint64(x)) for { if !(uint32(c-int32('0')) < uint32(10) && y <= (Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1))/Uint64FromInt32(10) && uint64(10)*y <= Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1)-uint64(c-Int32FromUint8('0'))) { break @@ -27422,7 +27423,7 @@ func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) (r uint } c = v29 } - y = uint64(x) + y = uint64(uint64(x)) for { if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= (Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1))>>bs) { break @@ -27461,12 +27462,12 @@ func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) (r uint } c = v37 } - y = uint64(x) + y = uint64(uint64(x)) for { - if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= (Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1))/uint64(base) && uint64(base)*y <= Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1)-uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) { + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && y <= (Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1))/uint64(uint64(base)) && uint64(uint64(base))*y <= Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1)-uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c))))) { break } - y = y*uint64(base) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) + y = y*uint64(uint64(base)) + uint64(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) goto _40 _40: ; @@ -27506,6 +27507,7 @@ func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) (r uint neg = 0 } } + goto done done: ; if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { @@ -27522,7 +27524,7 @@ done: } } } - return y ^ uint64(neg) - uint64(neg) + return y ^ uint64(uint64(neg)) - uint64(uint64(neg)) } func X__procfdname(tls *TLS, buf uintptr, fd uint32) { @@ -27622,7 +27624,7 @@ func X__shgetc(tls *TLS, f uintptr) (r int32) { } (*TFILE)(unsafe.Pointer(f)).Fshcnt = int64((*TFILE)(unsafe.Pointer(f)).Fbuf) - int64((*TFILE)(unsafe.Pointer(f)).Frpos) + cnt if (*TFILE)(unsafe.Pointer(f)).Frpos <= (*TFILE)(unsafe.Pointer(f)).Fbuf { - *(*uint8)(unsafe.Pointer((*TFILE)(unsafe.Pointer(f)).Frpos + uintptr(-Int32FromInt32(1)))) = uint8(c) + *(*uint8)(unsafe.Pointer((*TFILE)(unsafe.Pointer(f)).Frpos + uintptr(-Int32FromInt32(1)))) = uint8(uint8(c)) } return c } @@ -27636,7 +27638,7 @@ func X__syscall_ret(tls *TLS, r uint64) (r1 int64) { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(-r) return int64(-int32(1)) } - return int64(r) + return int64(int64(r)) } type TElf_Symndx = uint32 @@ -27708,7 +27710,7 @@ func Xftok(tls *TLS, path uintptr, id int32) (r Tkey_t) { if Xstat(tls, path, bp) < 0 { return -int32(1) } - return int32((*(*Tstat)(unsafe.Pointer(bp))).Fst_ino&Uint64FromInt32(0xffff) | (*(*Tstat)(unsafe.Pointer(bp))).Fst_dev&Uint64FromInt32(0xff)<= 0 { - if l > 0 && int32(_password[l-int64(1)]) == int32('\n') || uint64(l) == uint64(128) { + if l > 0 && int32(_password[l-int64(1)]) == int32('\n') || uint64(uint64(l)) == uint64(128) { l-- } _password[l] = 0 @@ -28787,7 +28789,7 @@ func Xulimit(tls *TLS, cmd int32, va uintptr) (r int64) { ap = va val = VaInt64(&ap) _ = ap - (*(*Trlimit)(unsafe.Pointer(bp))).Frlim_cur = uint64(512) * uint64(val) + (*(*Trlimit)(unsafe.Pointer(bp))).Frlim_cur = uint64(512) * uint64(uint64(val)) if Xsetrlimit(tls, int32(RLIMIT_FSIZE), bp) != 0 { return int64(-int32(1)) } @@ -29212,7 +29214,7 @@ func Xclock_adjtime(tls *TLS, clock_id Tclockid_t, utx uintptr) (r1 int32) { (*Ttimex)(unsafe.Pointer(utx)).Fstbcnt = (*(*Tktimex)(unsafe.Pointer(bp))).Fstbcnt (*Ttimex)(unsafe.Pointer(utx)).Ftai = (*(*Tktimex)(unsafe.Pointer(bp))).Ftai } - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } if clock_id == CLOCK_REALTIME { return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_adjtimex), int64(utx))))) @@ -29294,7 +29296,7 @@ func Xepoll_create1(tls *TLS, flags int32) (r1 int32) { if r == -int32(ENOSYS) && !(flags != 0) { r = int32(X__syscall1(tls, int64(SYS_epoll_create), int64(Int32FromInt32(1)))) } - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } func Xepoll_ctl(tls *TLS, fd int32, op int32, fd2 int32, ev uintptr) (r int32) { @@ -29316,7 +29318,7 @@ func Xepoll_pwait(tls *TLS, fd int32, ev uintptr, cnt int32, to int32, sigs uint if r == -int32(ENOSYS) && !(sigs != 0) { r = int32(___syscall_cp(tls, int64(SYS_epoll_wait), int64(fd), int64(ev), int64(cnt), int64(to), 0, 0)) } - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } func Xepoll_wait(tls *TLS, fd int32, ev uintptr, cnt int32, to int32) (r int32) { @@ -29344,7 +29346,7 @@ func Xeventfd(tls *TLS, count uint32, flags int32) (r1 int32) { if r == -int32(ENOSYS) && !(flags != 0) { r = int32(X__syscall1(tls, int64(SYS_eventfd), int64(count))) } - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } func Xeventfd_read(tls *TLS, fd int32, value uintptr) (r int32) { @@ -29631,7 +29633,7 @@ func Xinotify_init1(tls *TLS, flags int32) (r1 int32) { if r == -int32(ENOSYS) && !(flags != 0) { r = int32(X__syscall0(tls, int64(SYS_inotify_init))) } - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } func Xinotify_add_watch(tls *TLS, fd int32, pathname uintptr, mask Tuint32_t) (r int32) { @@ -30475,11 +30477,11 @@ func Xptrace(tls *TLS, req int32, va uintptr) (r int64) { data = VaUintptr(&ap) /* PTRACE_{READ,WRITE}{DATA,TEXT} (16...19) are specific to SPARC. */ _ = ap - if uint32(req)-uint32(1) < uint32(3) { + if uint32(uint32(req))-uint32(1) < uint32(3) { data = bp } ret = X__syscall_ret(tls, uint64(X__syscall5(tls, int64(SYS_ptrace), int64(req), int64(pid), int64(addr), int64(data), int64(addr2)))) - if ret < 0 || uint32(req)-uint32(1) >= uint32(3) { + if ret < 0 || uint32(uint32(req))-uint32(1) >= uint32(3) { return ret } return *(*int64)(unsafe.Pointer(bp)) @@ -30754,7 +30756,7 @@ func Xsignalfd(tls *TLS, fd int32, sigs uintptr, flags int32) (r int32) { _ = ret ret = int32(X__syscall4(tls, int64(SYS_signalfd4), int64(fd), int64(sigs), int64(Int32FromInt32(_NSIG)/Int32FromInt32(8)), int64(flags))) if ret != -int32(ENOSYS) { - return int32(X__syscall_ret(tls, uint64(ret))) + return int32(X__syscall_ret(tls, uint64(uint64(ret)))) } ret = int32(X__syscall3(tls, int64(SYS_signalfd), int64(fd), int64(sigs), int64(Int32FromInt32(_NSIG)/Int32FromInt32(8)))) if ret >= 0 { @@ -30765,7 +30767,7 @@ func Xsignalfd(tls *TLS, fd int32, sigs uintptr, flags int32) (r int32) { X__syscall3(tls, int64(SYS_fcntl), int64(ret), int64(Int32FromInt32(F_SETFL)), int64(Int32FromInt32(O_NONBLOCK))) } } - return int32(X__syscall_ret(tls, uint64(ret))) + return int32(X__syscall_ret(tls, uint64(uint64(ret)))) } func Xsplice(tls *TLS, fd_in int32, off_in uintptr, fd_out int32, off_out uintptr, len1 Tsize_t, flags uint32) (r Tssize_t) { @@ -30788,7 +30790,7 @@ func Xstatx(tls *TLS, dirfd int32, path uintptr, flags int32, mask uint32, stx u _ = ret ret = int32(X__syscall5(tls, int64(SYS_statx), int64(dirfd), int64(path), int64(flags), int64(mask), int64(stx))) if ret != -int32(ENOSYS) { - return int32(X__syscall_ret(tls, uint64(ret))) + return int32(X__syscall_ret(tls, uint64(uint64(ret)))) } ret = Xfstatat(tls, dirfd, path, bp, flags) if ret != 0 { @@ -31097,7 +31099,7 @@ func Xwait4(tls *TLS, pid Tpid_t, status uintptr, options int32, ru uintptr) (r1 Ftv_usec: (*(*[4]int64)(unsafe.Pointer(bp)))[int32(3)], } } - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } const XATTR_CREATE = 1 @@ -31226,7 +31228,7 @@ func X__lctrans_cur(tls *TLS, msg uintptr) (r uintptr) { trc("tls=%v msg=%v, (%v:)", tls, msg, origin(2)) defer func() { trc("-> %v", r) }() } - return X__lctrans_impl(tls, msg, *(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale + 5*8))) + return X__lctrans_impl(tls, msg, *(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Flocale + 5*8))) } func _swapc(tls *TLS, x Tuint32_t, c int32) (r Tuint32_t) { @@ -31255,7 +31257,7 @@ func X__mo_lookup(tls *TLS, p uintptr, size Tsize_t, s uintptr) (r uintptr) { n = _swapc(tls, *(*Tuint32_t)(unsafe.Pointer(mo + 2*4)), sw) o = _swapc(tls, *(*Tuint32_t)(unsafe.Pointer(mo + 3*4)), sw) t = _swapc(tls, *(*Tuint32_t)(unsafe.Pointer(mo + 4*4)), sw) - if uint64(n) >= size/uint64(4) || uint64(o) >= size-uint64(uint32(4)*n) || uint64(t) >= size-uint64(uint32(4)*n) || (o|t)%uint32(4) != 0 { + if uint64(uint64(n)) >= size/uint64(4) || uint64(uint64(o)) >= size-uint64(uint32(4)*n) || uint64(uint64(t)) >= size-uint64(uint32(4)*n) || (o|t)%uint32(4) != 0 { return uintptr(0) } o /= uint32(4) @@ -31263,14 +31265,14 @@ func X__mo_lookup(tls *TLS, p uintptr, size Tsize_t, s uintptr) (r uintptr) { for { ol = _swapc(tls, *(*Tuint32_t)(unsafe.Pointer(mo + uintptr(o+uint32(2)*(b+n/uint32(2)))*4)), sw) os = _swapc(tls, *(*Tuint32_t)(unsafe.Pointer(mo + uintptr(o+uint32(2)*(b+n/uint32(2))+uint32(1))*4)), sw) - if uint64(os) >= size || uint64(ol) >= size-uint64(os) || *(*int8)(unsafe.Pointer(p + uintptr(os+ol))) != 0 { + if uint64(uint64(os)) >= size || uint64(uint64(ol)) >= size-uint64(uint64(os)) || *(*int8)(unsafe.Pointer(p + uintptr(os+ol))) != 0 { return uintptr(0) } sign = Xstrcmp(tls, s, p+uintptr(os)) if !(sign != 0) { tl = _swapc(tls, *(*Tuint32_t)(unsafe.Pointer(mo + uintptr(t+uint32(2)*(b+n/uint32(2)))*4)), sw) ts = _swapc(tls, *(*Tuint32_t)(unsafe.Pointer(mo + uintptr(t+uint32(2)*(b+n/uint32(2))+uint32(1))*4)), sw) - if uint64(ts) >= size || uint64(tl) >= size-uint64(ts) || *(*int8)(unsafe.Pointer(p + uintptr(ts+tl))) != 0 { + if uint64(uint64(ts)) >= size || uint64(uint64(tl)) >= size-uint64(uint64(ts)) || *(*int8)(unsafe.Pointer(p + uintptr(ts+tl))) != 0 { return uintptr(0) } return p + uintptr(ts) @@ -31392,17 +31394,17 @@ _6: goto _9 _9: strings = map1 + uintptr(20) + uintptr(v8) - v10 = uint32(set_id) + v10 = uint32(uint32(set_id)) v11 = v10>>int32(24) | v10>>int32(8)&uint32(0xff00) | v10<>int32(24) | v13>>int32(8)&uint32(0xff00) | v13<= uint32(LC_ALL) { + if uint32(uint32(category)) >= uint32(LC_ALL) { goto notrans } if !(domainname != 0) { @@ -31842,6 +31844,7 @@ func Xdcngettext(tls *TLS, domainname uintptr, msgid1 uintptr, msgid2 uintptr, n if !!(lm != 0) { goto _2 } + goto notrans notrans: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = old_errno @@ -31878,19 +31881,19 @@ _2: if !(modname != 0) { modname = locname + uintptr(loclen) } - v5 = loclen - uint64(int64(modname)-int64(locname)) + v5 = loclen - uint64(int64(int64(modname))-int64(int64(locname))) modlen = v5 alt_modlen = v5 - loclen = uint64(int64(modname) - int64(locname)) + loclen = uint64(int64(int64(modname)) - int64(int64(locname))) /* Drop .charset identifier; it is not used. */ csp = Xmemchr(tls, locname, int32('.'), loclen) if csp != 0 { - loclen = uint64(int64(csp) - int64(locname)) + loclen = uint64(int64(int64(csp)) - int64(int64(locname))) } v6 = dirlen + uint64(1) + loclen + modlen + uint64(1) + catlen + uint64(1) + domlen + uint64(3) + uint64(1) name = Xrealloc(tls, name, v6) for { - Xsnprintf(tls, name, v6, __ccgo_ts+440, VaList(bp+24, dirname, int32(loclen), locname, int32(alt_modlen), modname, catname, domainname)) + Xsnprintf(tls, name, v6, __ccgo_ts+440, VaList(bp+24, dirname, int32(int32(loclen)), locname, int32(int32(alt_modlen)), modname, catname, domainname)) v8 = X__map_file(tls, name, bp) map1 = v8 if v8 != 0 { @@ -31903,7 +31906,7 @@ _2: v9 = Xmemchr(tls, locname, int32('_'), loclen) locp = v9 if v9 != 0 { - loclen = uint64(int64(locp) - int64(locname)) + loclen = uint64(int64(int64(locp)) - int64(int64(locname))) alt_modlen = modlen } else { break @@ -31973,7 +31976,7 @@ _2: } } } - (*Tmsgcat)(unsafe.Pointer(p1)).Fnplurals = int32(np) + (*Tmsgcat)(unsafe.Pointer(p1)).Fnplurals = int32(int32(np)) (*Tmsgcat)(unsafe.Pointer(p1)).Fplural_rule = rule for { old_cats = AtomicLoadPUintptr(uintptr(unsafe.Pointer(&_cats))) @@ -32013,7 +32016,7 @@ _2: if !(v21 != 0) { break } - rem = (*Tmsgcat)(unsafe.Pointer(p1)).Fmap_size - uint64(int64(trans)-int64((*Tmsgcat)(unsafe.Pointer(p1)).Fmap1)) + rem = (*Tmsgcat)(unsafe.Pointer(p1)).Fmap_size - uint64(int64(int64(trans))-int64((*Tmsgcat)(unsafe.Pointer(p1)).Fmap1)) l = Xstrnlen(tls, trans, rem) if l+uint64(1) >= rem { goto notrans @@ -98304,11 +98307,11 @@ func _combine_to_from(tls *TLS, t Tsize_t, f Tsize_t) (r Ticonv_t) { } func _extract_from(tls *TLS, cd Ticonv_t) (r Tsize_t) { - return uint64(cd) >> int32(16) + return uint64(uint64(cd)) >> int32(16) } func _extract_to(tls *TLS, cd Ticonv_t) (r Tsize_t) { - return uint64(cd) >> int32(1) & uint64(0x7fff) + return uint64(uint64(cd)) >> int32(1) & uint64(0x7fff) } func Xiconv_open(tls *TLS, to uintptr, from uintptr) (r Ticonv_t) { @@ -98359,7 +98362,7 @@ func _get_16(tls *TLS, s uintptr, e int32) (r uint32) { func _put_16(tls *TLS, s uintptr, c uint32, e int32) { e &= int32(1) *(*uint8)(unsafe.Pointer(s + uintptr(e))) = uint8(c >> int32(8)) - *(*uint8)(unsafe.Pointer(s + uintptr(int32(1)-e))) = uint8(c) + *(*uint8)(unsafe.Pointer(s + uintptr(int32(1)-e))) = uint8(uint8(c)) } func _get_32(tls *TLS, s uintptr, e int32) (r uint32) { @@ -98372,7 +98375,7 @@ func _put_32(tls *TLS, s uintptr, c uint32, e int32) { *(*uint8)(unsafe.Pointer(s + uintptr(e^0))) = uint8(c >> int32(24)) *(*uint8)(unsafe.Pointer(s + uintptr(e^int32(1)))) = uint8(c >> int32(16)) *(*uint8)(unsafe.Pointer(s + uintptr(e^int32(2)))) = uint8(c >> int32(8)) - *(*uint8)(unsafe.Pointer(s + uintptr(e^int32(3)))) = uint8(c) + *(*uint8)(unsafe.Pointer(s + uintptr(e^int32(3)))) = uint8(uint8(c)) } /* Adapt as needed */ @@ -98446,7 +98449,7 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, d, err, from, i, i1, j, j1, k, l, loc, map1, ploc, scd, tmplen, tmpx, to, tomap, totype, type1, x, v100, v101, v102, v103, v104, v25, v26, v27, v28, v54, v55, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94, v95, v96, v97, v98, v99 x = uint64(0) scd = uintptr(0) - if !(uint64(cd)&Uint64FromInt32(1) != 0) { + if !(uint64(uint64(cd))&Uint64FromInt32(1) != 0) { scd = cd cd = (*Tstateful_cd)(unsafe.Pointer(scd)).Fbase_cd } @@ -98457,7 +98460,7 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui *(*Tmbstate_t)(unsafe.Pointer(bp + 24)) = Tmbstate_t{} type1 = *(*uint8)(unsafe.Pointer(map1 + uintptr(-Int32FromInt32(1)))) totype = *(*uint8)(unsafe.Pointer(tomap + uintptr(-Int32FromInt32(1)))) - ploc = ___get_tp(tls) + 168 + ploc = uintptr(___get_tp(tls)) + 168 loc = *(*Tlocale_t)(unsafe.Pointer(ploc)) if !(in != 0) || !(*(*uintptr)(unsafe.Pointer(in)) != 0) || !(*(*Tsize_t)(unsafe.Pointer(inb)) != 0) { return uint64(0) @@ -98469,7 +98472,7 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui } c = uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(in))))) l = uint64(1) - switch int32(type1) { + switch int32(int32(type1)) { case int32(UTF_8): goto _2 case int32(US_ASCII): @@ -98552,7 +98555,7 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui if *(*Tsize_t)(unsafe.Pointer(inb)) < uint64(4) { goto starved } - c = _get_32(tls, *(*uintptr)(unsafe.Pointer(in)), int32(type1)) + c = _get_32(tls, *(*uintptr)(unsafe.Pointer(in)), int32(int32(type1))) _24: ; if c-uint32(0xd800) < uint32(0x800) || c >= uint32(0x110000) { @@ -98571,19 +98574,19 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui if *(*Tsize_t)(unsafe.Pointer(inb)) < uint64(2) { goto starved } - c = _get_16(tls, *(*uintptr)(unsafe.Pointer(in)), int32(type1)) + c = _get_16(tls, *(*uintptr)(unsafe.Pointer(in)), int32(int32(type1))) if c-Uint32FromInt32(0xdc00) < uint32(0x400) { goto ilseq } if c-Uint32FromInt32(0xd800) < uint32(0x400) { - if uint32(int32(type1)-int32(UCS2BE)) < uint32(2) { + if uint32(int32(int32(type1))-int32(UCS2BE)) < uint32(2) { goto ilseq } l = uint64(4) if *(*Tsize_t)(unsafe.Pointer(inb)) < uint64(4) { goto starved } - d = _get_16(tls, *(*uintptr)(unsafe.Pointer(in))+UintptrFromInt32(2), int32(type1)) + d = _get_16(tls, *(*uintptr)(unsafe.Pointer(in))+UintptrFromInt32(2), int32(int32(type1))) if d-Uint32FromInt32(0xdc00) >= uint32(0x400) { goto ilseq } @@ -98600,7 +98603,7 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui goto starved } c = _get_16(tls, *(*uintptr)(unsafe.Pointer(in)), 0) - if int32(type1) == int32(UCS2) { + if int32(int32(type1)) == int32(UCS2) { if c == uint32(0xfffe) { v26 = int32(UCS2LE) } else { @@ -98813,11 +98816,11 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui goto starved } d = uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(in)) + UintptrFromInt32(1)))) - if d < uint32(0xa1) && int32(type1) == int32(GB2312) { + if d < uint32(0xa1) && int32(int32(type1)) == int32(GB2312) { goto ilseq } if d-uint32(0x40) >= uint32(191) || d == uint32(127) { - if d-uint32('0') > uint32(9) || int32(type1) != int32(GB18030) { + if d-uint32('0') > uint32(9) || int32(int32(type1)) != int32(GB18030) { goto ilseq } l = uint64(4) @@ -98914,7 +98917,7 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui *(*uintptr)(unsafe.Pointer(bp)) = __ccgo_ts + 511 + uintptr(c%uint32(256)) *(*Tsize_t)(unsafe.Pointer(bp + 8)) = uint64(4) *(*Tsize_t)(unsafe.Pointer(bp + 16)) = uint64(8) - tmpx = Xiconv(tls, _combine_to_from(tls, uint64(to), _find_charmap(tls, __ccgo_ts+528)), bp, bp+8, bp+48, bp+16) + tmpx = Xiconv(tls, _combine_to_from(tls, uint64(uint64(to)), _find_charmap(tls, __ccgo_ts+528)), bp, bp+8, bp+48, bp+16) tmplen = uint64(int64(*(*uintptr)(unsafe.Pointer(bp + 48))) - t__predefined_ptrdiff_t(bp+40)) if tmplen > *(*Tsize_t)(unsafe.Pointer(outb)) { goto toobig @@ -99027,7 +99030,7 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui } _23: ; - switch int32(totype) { + switch int32(int32(totype)) { case int32(WCHAR_T): goto _35 case int32(UTF_8): @@ -99067,20 +99070,20 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui if *(*Tsize_t)(unsafe.Pointer(outb)) < uint64(4) { goto toobig } - *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(out)))) = int32(c) + *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(out)))) = int32(int32(c)) *(*uintptr)(unsafe.Pointer(out)) += uintptr(4) *(*Tsize_t)(unsafe.Pointer(outb)) -= uint64(4) goto _51 _36: ; if *(*Tsize_t)(unsafe.Pointer(outb)) < uint64(4) { - k = uint64(Xwctomb(tls, bp+56, int32(c))) + k = uint64(Xwctomb(tls, bp+56, int32(int32(c)))) if *(*Tsize_t)(unsafe.Pointer(outb)) < k { goto toobig } Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(out)), bp+56, k) } else { - k = uint64(Xwctomb(tls, *(*uintptr)(unsafe.Pointer(out)), int32(c))) + k = uint64(Xwctomb(tls, *(*uintptr)(unsafe.Pointer(out)), int32(int32(c)))) } *(*uintptr)(unsafe.Pointer(out)) += uintptr(k) *(*Tsize_t)(unsafe.Pointer(outb)) -= k @@ -99090,6 +99093,7 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui if !(c > uint32(0x7f)) { goto _52 } + goto subst subst: ; x++ @@ -99104,6 +99108,7 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui if !(c < uint32(256) && c == _legacy_map(tls, tomap, c)) { goto _53 } + goto revout revout: ; if *(*Tsize_t)(unsafe.Pointer(outb)) < uint64(1) { @@ -99112,13 +99117,13 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui v55 = out v54 = *(*uintptr)(unsafe.Pointer(v55)) *(*uintptr)(unsafe.Pointer(v55))++ - *(*int8)(unsafe.Pointer(v54)) = int8(c) + *(*int8)(unsafe.Pointer(v54)) = int8(int8(c)) *(*Tsize_t)(unsafe.Pointer(outb)) -= uint64(1) goto _51 _53: ; d = c - c = uint32(int32(4) * int32(totype)) + c = uint32(int32(4) * int32(int32(totype))) for { if !(c < uint32(256)) { break @@ -99322,14 +99327,14 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui ; _43: ; - if c < uint32(0x10000) || uint32(int32(totype)-int32(UCS2BE)) < uint32(2) { + if c < uint32(0x10000) || uint32(int32(int32(totype))-int32(UCS2BE)) < uint32(2) { if c >= uint32(0x10000) { c = uint32(0xFFFD) } if *(*Tsize_t)(unsafe.Pointer(outb)) < uint64(2) { goto toobig } - _put_16(tls, *(*uintptr)(unsafe.Pointer(out)), c, int32(totype)) + _put_16(tls, *(*uintptr)(unsafe.Pointer(out)), c, int32(int32(totype))) *(*uintptr)(unsafe.Pointer(out)) += uintptr(2) *(*Tsize_t)(unsafe.Pointer(outb)) -= uint64(2) goto _51 @@ -99338,8 +99343,8 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui goto toobig } c -= uint32(0x10000) - _put_16(tls, *(*uintptr)(unsafe.Pointer(out)), c>>int32(10)|uint32(0xd800), int32(totype)) - _put_16(tls, *(*uintptr)(unsafe.Pointer(out))+UintptrFromInt32(2), c&uint32(0x3ff)|uint32(0xdc00), int32(totype)) + _put_16(tls, *(*uintptr)(unsafe.Pointer(out)), c>>int32(10)|uint32(0xd800), int32(int32(totype))) + _put_16(tls, *(*uintptr)(unsafe.Pointer(out))+UintptrFromInt32(2), c&uint32(0x3ff)|uint32(0xdc00), int32(int32(totype))) *(*uintptr)(unsafe.Pointer(out)) += uintptr(4) *(*Tsize_t)(unsafe.Pointer(outb)) -= uint64(4) goto _51 @@ -99353,7 +99358,7 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui if *(*Tsize_t)(unsafe.Pointer(outb)) < uint64(4) { goto toobig } - _put_32(tls, *(*uintptr)(unsafe.Pointer(out)), c, int32(totype)) + _put_32(tls, *(*uintptr)(unsafe.Pointer(out)), c, int32(int32(totype))) *(*uintptr)(unsafe.Pointer(out)) += uintptr(4) *(*Tsize_t)(unsafe.Pointer(outb)) -= uint64(4) goto _51 @@ -99367,20 +99372,24 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui } *(*Tlocale_t)(unsafe.Pointer(ploc)) = loc return x + goto ilseq ilseq: ; err = int32(EILSEQ) x = uint64(-Int32FromInt32(1)) goto end + goto toobig toobig: ; err = int32(E2BIG) x = uint64(-Int32FromInt32(1)) goto end + goto starved starved: ; err = int32(EINVAL) x = uint64(-Int32FromInt32(1)) + goto end end: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = err @@ -99393,7 +99402,7 @@ func Xiconv_close(tls *TLS, cd Ticonv_t) (r int32) { trc("tls=%v cd=%v, (%v:)", tls, cd, origin(2)) defer func() { trc("-> %v", r) }() } - if !(uint64(cd)&Uint64FromInt32(1) != 0) { + if !(uint64(uint64(cd))&Uint64FromInt32(1) != 0) { Xfree(tls, cd) } return 0 @@ -99485,7 +99494,7 @@ func X__nl_langinfo(tls *TLS, item Tnl_item) (r uintptr) { trc("tls=%v item=%v, (%v:)", tls, item, origin(2)) defer func() { trc("-> %v", r) }() } - return X__nl_langinfo_l(tls, item, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale) + return X__nl_langinfo_l(tls, item, (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Flocale) } func Xnl_langinfo(tls *TLS, item Tnl_item) (r uintptr) { @@ -99609,7 +99618,7 @@ func X__get_locale(tls *TLS, cat int32, val uintptr) (r uintptr) { break } z = X__strchrnul(tls, path, int32(':')) - l = uint64(int64(z) - int64(path)) + l = uint64(int64(int64(z)) - int64(int64(path))) if l >= uint64(256)-n-uint64(2) { goto _10 } @@ -100094,7 +100103,7 @@ func Xsetlocale(tls *TLS, cat int32, name uintptr) (r uintptr) { var _ /* part at bp+48 */ [24]int8 var _ /* tmp_locale at bp+0 */ t__locale_struct _, _, _, _, _, _, _, _, _, _, _, _, _, _ = i, l, lm, lm1, p, part1, ret, s, same, z, v3, v4, v5, v6 - if uint32(cat) > uint32(LC_ALL) { + if uint32(uint32(cat)) > uint32(LC_ALL) { return uintptr(0) } ___lock(tls, uintptr(unsafe.Pointer(&X__locale_lock))) @@ -100113,9 +100122,9 @@ func Xsetlocale(tls *TLS, cat int32, name uintptr) (r uintptr) { break } z = X__strchrnul(tls, p, int32(';')) - if int64(z)-int64(p) <= int64(LOCALE_NAME_MAX) { - Xmemcpy(tls, bp+48, p, uint64(int64(z)-int64(p))) - (*(*[24]int8)(unsafe.Pointer(bp + 48)))[int64(z)-int64(p)] = 0 + if int64(int64(z))-int64(int64(p)) <= int64(LOCALE_NAME_MAX) { + Xmemcpy(tls, bp+48, p, uint64(int64(int64(z))-int64(int64(p)))) + (*(*[24]int8)(unsafe.Pointer(bp + 48)))[int64(int64(z))-int64(int64(p))] = 0 if *(*int8)(unsafe.Pointer(z)) != 0 { p = z + uintptr(1) } @@ -100203,7 +100212,7 @@ func Xstrcoll(tls *TLS, l uintptr, r uintptr) (r1 int32) { trc("tls=%v l=%v r=%v, (%v:)", tls, l, r, origin(2)) defer func() { trc("-> %v", r1) }() } - return X__strcoll_l(tls, l, r, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale) + return X__strcoll_l(tls, l, r, (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Flocale) } func Xstrcoll_l(tls *TLS, l uintptr, r uintptr, loc Tlocale_t) (r1 int32) { @@ -100231,6 +100240,7 @@ _3: if !(int32(*(*int8)(unsafe.Pointer(fmt))) != int32('%')) { goto _4 } + goto literal literal: ; v5 = s @@ -100342,7 +100352,7 @@ _2: goto _1 _1: ; - return int64(s) - int64(s0) + return int64(int64(s)) - int64(int64(s0)) } func Xstrfmon_l(tls *TLS, s uintptr, n Tsize_t, loc Tlocale_t, fmt uintptr, va uintptr) (r Tssize_t) { @@ -100368,7 +100378,7 @@ func Xstrfmon(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, va uintptr) (r Tssize var ret Tssize_t _, _ = ap, ret ap = va - ret = _vstrfmon_l(tls, s, n, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale, fmt, ap) + ret = _vstrfmon_l(tls, s, n, (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Flocale, fmt, ap) _ = ap return ret } @@ -100443,7 +100453,7 @@ func Xstrxfrm(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r Tsize_t) { trc("tls=%v dest=%v src=%v n=%v, (%v:)", tls, dest, src, n, origin(2)) defer func() { trc("-> %v", r) }() } - return X__strxfrm_l(tls, dest, src, n, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale) + return X__strxfrm_l(tls, dest, src, n, (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Flocale) } // C documentation @@ -100532,7 +100542,7 @@ func X__uselocale(tls *TLS, new1 Tlocale_t) (r Tlocale_t) { var global, old, v1, v2 Tlocale_t var self Tpthread_t _, _, _, _, _ = global, old, self, v1, v2 - self = ___get_tp(tls) + self = uintptr(___get_tp(tls)) old = (*t__pthread)(unsafe.Pointer(self)).Flocale global = uintptr(unsafe.Pointer(&X__libc)) + 56 if new1 != 0 { @@ -100575,7 +100585,7 @@ func Xwcscoll(tls *TLS, l uintptr, r uintptr) (r1 int32) { trc("tls=%v l=%v r=%v, (%v:)", tls, l, r, origin(2)) defer func() { trc("-> %v", r1) }() } - return X__wcscoll_l(tls, l, r, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale) + return X__wcscoll_l(tls, l, r, (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Flocale) } // C documentation @@ -100616,7 +100626,7 @@ func Xwcsxfrm(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r Tsize_t) { trc("tls=%v dest=%v src=%v n=%v, (%v:)", tls, dest, src, n, origin(2)) defer func() { trc("-> %v", r) }() } - return X__wcsxfrm_l(tls, dest, src, n, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale) + return X__wcsxfrm_l(tls, dest, src, n, (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Flocale) } // C documentation @@ -100828,7 +100838,7 @@ func X__fpclassifyl(tls *TLS, x float64) (r int32) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return X__fpclassify(tls, x) + return X__fpclassify(tls, float64(float64(x))) } const pio2_hi = 0 @@ -101088,11 +101098,12 @@ func X__rem_pio2(tls *TLS, x float64, y uintptr) (r1 int32) { if !(ix < uint32(0x413921fb)) { goto _1 } /* |x| ~< 2^20*(pi/2), medium size */ + goto medium medium: ; /* rint(x/(pi/2)) */ fn = x*_invpio2 + _toint - _toint - n = int32(fn) + n = int32(int32(fn)) r = x - fn*_pio2_1 w = fn * _pio2_1t /* 1st round, good to 85 bits */ /* Matters with directed rounding. */ @@ -101152,7 +101163,7 @@ _1: if !(i < int32(2)) { break } - (*(*[3]float64)(unsafe.Pointer(bp + 8)))[i] = float64(int32(z)) + (*(*[3]float64)(unsafe.Pointer(bp + 8)))[i] = float64(int32(int32(z))) z = (z - (*(*[3]float64)(unsafe.Pointer(bp + 8)))[i]) * float64(1.6777216e+07) goto _3 _3: @@ -101346,6 +101357,7 @@ func X__rem_pio2_large(tls *TLS, x uintptr, y uintptr, e0 int32, nx int32, prec i++ } jz = jk + goto recompute recompute: ; /* distill q[] into iq[] reversingly */ @@ -101368,8 +101380,8 @@ recompute: /* compute n */ z = Xscalbn(tls, z, q0) /* actual value of z */ z -= float64(8) * Xfloor(tls, z*float64(0.125)) /* trim off integer >= 8 */ - n = int32(z) - z -= float64(n) + n = int32(int32(z)) + z -= float64(float64(n)) ih = 0 if q0 > 0 { /* need iq[jz-1] to determine n */ i = (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[jz-int32(1)] >> (int32(24) - q0) @@ -101491,9 +101503,9 @@ recompute: (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[jz] = int32(z - Float64FromFloat64(1.6777216e+07)*fw) jz += int32(1) q0 += int32(24) - (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[jz] = int32(fw) + (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[jz] = int32(int32(fw)) } else { - (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[jz] = int32(z) + (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[jz] = int32(int32(z)) } } /* convert integer "bit" chunk to floating-point value */ @@ -101713,19 +101725,19 @@ func X__rem_pio2f(tls *TLS, x float32, y uintptr) (r int32) { /* 25+53 bit pi is good enough for medium size */ if ix < uint32(0x4dc90fdb) { /* |x| ~< 2^28*(pi/2), medium size */ /* Use a specialized rint() to get fn. */ - fn = float64(x)*_invpio21 + _toint1 - _toint1 - n = int32(fn) - *(*float64)(unsafe.Pointer(y)) = float64(x) - fn*_pio2_11 - fn*_pio2_1t1 + fn = float64(float64(x))*_invpio21 + _toint1 - _toint1 + n = int32(int32(fn)) + *(*float64)(unsafe.Pointer(y)) = float64(float64(x)) - fn*_pio2_11 - fn*_pio2_1t1 /* Matters with directed rounding. */ if *(*float64)(unsafe.Pointer(y)) < -_pio41 { n-- fn-- - *(*float64)(unsafe.Pointer(y)) = float64(x) - fn*_pio2_11 - fn*_pio2_1t1 + *(*float64)(unsafe.Pointer(y)) = float64(float64(x)) - fn*_pio2_11 - fn*_pio2_1t1 } else { if *(*float64)(unsafe.Pointer(y)) > _pio41 { n++ fn++ - *(*float64)(unsafe.Pointer(y)) = float64(x) - fn*_pio2_11 - fn*_pio2_1t1 + *(*float64)(unsafe.Pointer(y)) = float64(float64(x)) - fn*_pio2_11 - fn*_pio2_1t1 } } return n @@ -101805,7 +101817,7 @@ func X__signbitl(tls *TLS, x float64) (r int32) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return X__signbit(tls, x) + return X__signbit(tls, float64(float64(x))) } var _S1 = -Float64FromFloat64(0.16666666666666632) /* 0xBFC55555, 0x55555549 */ @@ -102195,7 +102207,7 @@ func Xacoshl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xacosh(tls, x) + return float64(Xacosh(tls, float64(float64(x)))) } func Xacosl(tls *TLS, x float64) (r float64) { @@ -102203,7 +102215,7 @@ func Xacosl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xacos(tls, x) + return float64(Xacos(tls, float64(float64(x)))) } var _pio2_hi2 = float64(1.5707963267948966) /* 0x3FF921FB, 0x54442D18 */ @@ -102305,7 +102317,7 @@ func Xasinf(tls *TLS, x float32) (r float32) { ix = hx & uint32(0x7fffffff) if ix >= uint32(0x3f800000) { /* |x| >= 1 */ if ix == uint32(0x3f800000) { /* |x| == 1 */ - return float32(float64(x)*_pio2 + Float64FromFloat32(7.52316384526264e-37)) + return float32(float64(float64(x))*_pio2 + Float64FromFloat32(7.52316384526264e-37)) } /* asin(+-1) = +-pi/2 with inexact */ return Float32FromInt32(0) / (x - x) /* asin(|x|>1) is NaN */ } @@ -102318,7 +102330,7 @@ func Xasinf(tls *TLS, x float32) (r float32) { } /* 1 > |x| >= 0.5 */ z = (Float32FromInt32(1) - Xfabsf(tls, x)) * Float32FromFloat32(0.5) - s = Xsqrt(tls, float64(z)) + s = Xsqrt(tls, float64(float64(z))) x = float32(_pio2 - Float64FromInt32(2)*(s+s*float64(_R3(tls, z)))) if hx>>int32(31) != 0 { return -x @@ -102376,7 +102388,7 @@ func Xasinh(tls *TLS, x3 float64) (r float64) { if uint64(8) == uint64(8) { y1 = x3 + Float64FromFloat32(1.329227995784916e+36) } else { - y2 = x3 + Float64FromFloat32(1.329227995784916e+36) + y2 = float64(x3 + Float64FromFloat32(1.329227995784916e+36)) } } } @@ -102460,7 +102472,7 @@ func Xasinhl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xasinh(tls, x) + return float64(Xasinh(tls, float64(float64(x)))) } func Xasinl(tls *TLS, x float64) (r float64) { @@ -102468,7 +102480,7 @@ func Xasinl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xasin(tls, x) + return float64(Xasin(tls, float64(float64(x)))) } var _atanhi = [4]float64{ @@ -102541,12 +102553,12 @@ func Xatan(tls *TLS, x3 float64) (r float64) { if ix < uint32(0x00100000) { /* raise underflow for subnormal x */ if uint64(4) == uint64(4) { - y = float32(x3) + y = float32(float32(x3)) } else { if uint64(4) == uint64(8) { - y1 = float64(float32(x3)) + y1 = float64(float32(float32(x3))) } else { - y2 = float64(float32(x3)) + y2 = float64(float32(float32(x3))) } } } @@ -102627,10 +102639,10 @@ _2: } __u1 = *(*Tuint64_t)(unsafe.Pointer(&x)) ix = uint32(__u1 >> int32(32)) - lx = uint32(__u1) + lx = uint32(uint32(__u1)) __u2 = *(*Tuint64_t)(unsafe.Pointer(&y)) iy = uint32(__u2 >> int32(32)) - ly = uint32(__u2) + ly = uint32(uint32(__u2)) if ix-uint32(0x3ff00000)|lx == uint32(0) { /* x = 1.0 */ return Xatan(tls, y) } @@ -102835,7 +102847,7 @@ func Xatan2l(tls *TLS, y float64, x float64) (r float64) { trc("tls=%v y=%v x=%v, (%v:)", tls, y, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xatan2(tls, y, x) + return float64(Xatan2(tls, float64(float64(y)), float64(float64(x)))) } var _atanhi1 = [4]float32{ @@ -102989,12 +103001,12 @@ func Xatanh(tls *TLS, x3 float64) (r float64) { /* handle underflow */ if e == uint32(0) { if uint64(4) == uint64(4) { - y = float32(y3) + y = float32(float32(y3)) } else { if uint64(4) == uint64(8) { - y1 = float64(float32(y3)) + y1 = float64(float32(float32(y3))) } else { - y2 = float64(float32(y3)) + y2 = float64(float32(float32(y3))) } } } @@ -103080,7 +103092,7 @@ func Xatanhl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xatanh(tls, x) + return float64(Xatanh(tls, float64(float64(x)))) } func Xatanl(tls *TLS, x float64) (r float64) { @@ -103088,7 +103100,7 @@ func Xatanl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xatan(tls, x) + return float64(Xatan(tls, float64(float64(x)))) } var _B1 = uint32(715094163) /* B1 = (1023-1023/3-0.03306235651)*2**20 */ @@ -103157,8 +103169,8 @@ func Xcbrt(tls *TLS, x float64) (r1 float64) { hx = hx/uint32(3) + _B1 } p1 = bp - *(*Tuint64_t)(unsafe.Pointer(p1)) = *(*Tuint64_t)(unsafe.Pointer(p1)) & (Uint64FromUint64(1) << Int32FromInt32(63)) - *(*Tuint64_t)(unsafe.Pointer(bp)) |= uint64(hx) << int32(32) + *(*Tuint64_t)(unsafe.Pointer(p1)) = Tuint64_t(uint64(*(*Tuint64_t)(unsafe.Pointer(p1))) & (Uint64FromUint64(1) << Int32FromInt32(63))) + *(*Tuint64_t)(unsafe.Pointer(bp)) |= uint64(uint64(hx)) << int32(32) t = *(*float64)(unsafe.Pointer(bp)) /* * New cbrt to 23 bits: @@ -103183,7 +103195,7 @@ func Xcbrt(tls *TLS, x float64) (r1 float64) { * before the final error is larger than 0.667 ulps. */ *(*float64)(unsafe.Pointer(bp)) = t - *(*Tuint64_t)(unsafe.Pointer(bp)) = (*(*Tuint64_t)(unsafe.Pointer(bp)) + Uint64FromUint32(0x80000000)) & uint64(0xffffffffc0000000) + *(*Tuint64_t)(unsafe.Pointer(bp)) = uint64(uint64(*(*Tuint64_t)(unsafe.Pointer(bp))+Uint64FromUint32(0x80000000)) & uint64(0xffffffffc0000000)) t = *(*float64)(unsafe.Pointer(bp)) /* one step Newton iteration to 53 bits with error < 0.667 ulps */ s = t * t /* t*t is exact */ @@ -103243,15 +103255,15 @@ func Xcbrtf(tls *TLS, x float32) (r1 float32) { */ T = float64(*(*float32)(unsafe.Pointer(bp))) r = T * T * T - T = T * (float64(x) + float64(x) + r) / (float64(x) + r + r) + T = T * (float64(float64(x)) + float64(float64(x)) + r) / (float64(float64(x)) + r + r) /* * Second step Newton iteration to 47 bits. In double precision for * efficiency and accuracy. */ r = T * T * T - T = T * (float64(x) + float64(x) + r) / (float64(x) + r + r) + T = T * (float64(float64(x)) + float64(float64(x)) + r) / (float64(float64(x)) + r + r) /* rounding to 24 bits is perfect in round-to-nearest mode */ - return float32(T) + return float32(float32(T)) } func Xcbrtl(tls *TLS, x float64) (r float64) { @@ -103259,7 +103271,7 @@ func Xcbrtl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xcbrt(tls, x) + return float64(Xcbrt(tls, float64(float64(x)))) } const DBL_EPSILON5 = 2.220446049250313e-16 @@ -103303,12 +103315,12 @@ func Xceil(tls *TLS, x3 float64) (r float64) { /* special case because of non-nearest rounding modes */ if e <= Int32FromInt32(0x3ff)-Int32FromInt32(1) { if uint64(8) == uint64(4) { - y = float32(y3) + y = float32(float32(y3)) } else { if uint64(8) == uint64(8) { y1 = y3 } else { - y2 = y3 + y2 = float64(float64(y3)) } } if *(*Tuint64_t)(unsafe.Pointer(bp))>>int32(63) != 0 { @@ -103398,7 +103410,7 @@ func Xceill(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xceil(tls, x) + return float64(Xceil(tls, float64(float64(x)))) } func Xcopysign(tls *TLS, x float64, y float64) (r float64) { @@ -103435,9 +103447,9 @@ func Xcopysign(tls *TLS, x float64, y float64) (r float64) { }{} *(*float64)(unsafe.Pointer(bp + 8)) = y p1 = bp - *(*Tuint64_t)(unsafe.Pointer(p1)) = *(*Tuint64_t)(unsafe.Pointer(p1)) & (-Uint64FromUint64(1) / Uint64FromInt32(2)) + *(*Tuint64_t)(unsafe.Pointer(p1)) = Tuint64_t(uint64(*(*Tuint64_t)(unsafe.Pointer(p1))) & (-Uint64FromUint64(1) / Uint64FromInt32(2))) p2 = bp - *(*Tuint64_t)(unsafe.Pointer(p2)) = *(*Tuint64_t)(unsafe.Pointer(p2)) | *(*Tuint64_t)(unsafe.Pointer(bp + 8))&(Uint64FromUint64(1)< %v", r) }() } - return Xcopysign(tls, x, y) + return float64(Xcopysign(tls, float64(float64(x)), float64(float64(y)))) } func Xcos(tls *TLS, x3 float64) (r float64) { @@ -103510,7 +103522,7 @@ func Xcos(tls *TLS, x3 float64) (r float64) { if uint64(8) == uint64(8) { y1 = x3 + Float64FromFloat32(1.329227995784916e+36) } else { - y2 = x3 + Float64FromFloat32(1.329227995784916e+36) + y2 = float64(x3 + Float64FromFloat32(1.329227995784916e+36)) } } return float64(1) @@ -103577,37 +103589,37 @@ func Xcosf(tls *TLS, x3 float32) (r float32) { } return Float32FromFloat32(1) } - return X__cosdf(tls, float64(x3)) + return X__cosdf(tls, float64(float64(x3))) } if ix <= uint32(0x407b53d1) { /* |x| ~<= 5*pi/4 */ if ix > uint32(0x4016cbe3) { /* |x| ~> 3*pi/4 */ if sign != 0 { - v1 = float64(x3) + _c2pio2 + v1 = float64(float64(x3)) + _c2pio2 } else { - v1 = float64(x3) - _c2pio2 + v1 = float64(float64(x3)) - _c2pio2 } return -X__cosdf(tls, v1) } else { if sign != 0 { - return X__sindf(tls, float64(x3)+_c1pio2) + return X__sindf(tls, float64(float64(x3))+_c1pio2) } else { - return X__sindf(tls, _c1pio2-float64(x3)) + return X__sindf(tls, _c1pio2-float64(float64(x3))) } } } if ix <= uint32(0x40e231d5) { /* |x| ~<= 9*pi/4 */ if ix > uint32(0x40afeddf) { /* |x| ~> 7*pi/4 */ if sign != 0 { - v2 = float64(x3) + _c4pio2 + v2 = float64(float64(x3)) + _c4pio2 } else { - v2 = float64(x3) - _c4pio2 + v2 = float64(float64(x3)) - _c4pio2 } return X__cosdf(tls, v2) } else { if sign != 0 { return X__sindf(tls, float64(-x3)-_c3pio2) } else { - return X__sindf(tls, float64(x3)-_c3pio2) + return X__sindf(tls, float64(float64(x3))-_c3pio2) } } } @@ -103675,7 +103687,7 @@ func Xcosh(tls *TLS, x3 float64) (r float64) { if uint64(8) == uint64(8) { y1 = x3 + Float64FromFloat32(1.329227995784916e+36) } else { - y2 = x3 + Float64FromFloat32(1.329227995784916e+36) + y2 = float64(x3 + Float64FromFloat32(1.329227995784916e+36)) } } return Float64FromInt32(1) @@ -103754,7 +103766,7 @@ func Xcoshl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xcosh(tls, x) + return float64(Xcosh(tls, float64(float64(x)))) } func Xcosl(tls *TLS, x float64) (r float64) { @@ -103762,7 +103774,7 @@ func Xcosl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xcos(tls, x) + return float64(Xcos(tls, float64(float64(x)))) } var _erx = float64(0.8450629115104675) /* 0x3FEB0AC1, 0x60000000 */ @@ -104140,7 +104152,7 @@ func Xerfl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xerf(tls, x) + return float64(Xerf(tls, float64(float64(x)))) } func Xerfcl(tls *TLS, x float64) (r float64) { @@ -104148,7 +104160,7 @@ func Xerfcl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xerfc(tls, x) + return float64(Xerfc(tls, float64(float64(x)))) } const EXP2_POLY_ORDER = 5 @@ -104172,7 +104184,7 @@ func _specialcase(tls *TLS, tmp Tdouble_t, sbits Tuint64_t, ki Tuint64_t) (r flo _, _, _, _, _, _, _, _, _, _, _ = hi, lo, scale, y, y1, y2, y3, v1, v3, v5, v7 if ki&uint64(0x80000000) == uint64(0) { /* k > 0, the exponent of scale might have overflowed by <= 460. */ - sbits = sbits - Uint64FromUint64(1009)< %v", r) }() } - return Xexp10(tls, x) + return float64(Xexp10(tls, float64(float64(x)))) } func Xpow10l(tls *TLS, x float64) (r float64) { @@ -104462,7 +104474,7 @@ func _specialcase1(tls *TLS, tmp Tdouble_t, sbits Tuint64_t, ki Tuint64_t) (r fl _, _, _, _, _, _, _, _, _, _, _ = hi, lo, scale, y, y1, y2, y3, v1, v3, v5, v7 if ki&uint64(0x80000000) == uint64(0) { /* k > 0, the exponent of scale might have overflowed by 1. */ - sbits = sbits - Uint64FromUint64(1)<= _top122(tls, Float32FromFloat32(128)) { /* |x| >= 128 or x is nan. */ @@ -104653,7 +104665,7 @@ _3: y2 = *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__exp2f_data)) + 264 + 2*8))*r + Float64FromInt32(1) y2 = z*r2 + y2 y2 = y2 * s - y = float32(y2) + y = float32(float32(y2)) v5 = y goto _6 _6: @@ -104674,7 +104686,7 @@ func Xexp2l(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xexp2(tls, x) + return float64(Xexp2(tls, float64(float64(x)))) } const N2 = 128 @@ -104717,7 +104729,7 @@ func Xexpf(tls *TLS, x2 float32) (r1 float32) { var y, v1, v5 float32 var y1, v2, v4 float64 _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = abstop, kd, ki, r, r2, s, t, xd, y, y1, y2, z, v1, v2, v4, v5 - xd = float64(x2) + xd = float64(float64(x2)) abstop = _top123(tls, x2) & uint32(0x7ff) if abstop >= _top123(tls, Float32FromFloat32(88)) { /* |x| >= 88 or x is nan. */ @@ -104758,7 +104770,7 @@ _3: y2 = *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__exp2f_data)) + 304 + 2*8))*r + Float64FromInt32(1) y2 = z*r2 + y2 y2 = y2 * s - y = float32(y2) + y = float32(float32(y2)) v5 = y goto _6 _6: @@ -104770,7 +104782,7 @@ func Xexpl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xexp(tls, x) + return float64(Xexp(tls, float64(float64(x)))) } var _o_threshold = float64(709.782712893384) /* 0x40862E42, 0xFEFA39EF */ @@ -104852,7 +104864,7 @@ func Xexpm1(tls *TLS, x3 float64) (r float64) { v3 = float64(0.5) } k = int32(_invln2*x3 + v3) - t = float64(k) + t = float64(float64(k)) hi = x3 - t*_ln2_hi /* t*ln2_hi is exact here */ lo = t * _ln2_lo } @@ -104862,12 +104874,12 @@ func Xexpm1(tls *TLS, x3 float64) (r float64) { if hx < uint32(0x3c900000) { /* |x| < 2**-54, return x */ if hx < uint32(0x00100000) { if uint64(4) == uint64(4) { - y = float32(x3) + y = float32(float32(x3)) } else { if uint64(4) == uint64(8) { - y1 = float64(float32(x3)) + y1 = float64(float32(float32(x3))) } else { - y2 = float64(float32(x3)) + y2 = float64(float32(float32(x3))) } } } @@ -104987,7 +104999,7 @@ func Xexpm1f(tls *TLS, x3 float32) (r float32) { v1 = Float32FromFloat32(0.5) } k = int32(_invln21*x3 + v1) - t = float32(k) + t = float32(float32(k)) hi = x3 - t*_ln2_hi1 /* t*ln2_hi is exact here */ lo = t * _ln2_lo1 } @@ -105057,7 +105069,7 @@ func Xexpm1l(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xexpm1(tls, x) + return float64(Xexpm1(tls, float64(float64(x)))) } func Xfabs(tls *TLS, x float64) (r float64) { @@ -105082,7 +105094,7 @@ func Xfabs(tls *TLS, x float64) (r float64) { }{} *(*float64)(unsafe.Pointer(bp)) = x p1 = bp - *(*Tuint64_t)(unsafe.Pointer(p1)) = *(*Tuint64_t)(unsafe.Pointer(p1)) & (-Uint64FromUint64(1) / Uint64FromInt32(2)) + *(*Tuint64_t)(unsafe.Pointer(p1)) = Tuint64_t(uint64(*(*Tuint64_t)(unsafe.Pointer(p1))) & (-Uint64FromUint64(1) / Uint64FromInt32(2))) return *(*float64)(unsafe.Pointer(bp)) } @@ -105114,7 +105126,7 @@ func Xfabsl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xfabs(tls, x) + return float64(Xfabs(tls, float64(float64(x)))) } func Xfdim(tls *TLS, x float64, y float64) (r float64) { @@ -105194,7 +105206,7 @@ func Xfdiml(tls *TLS, x float64, y float64) (r float64) { trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) defer func() { trc("-> %v", r) }() } - return Xfdim(tls, x, y) + return float64(Xfdim(tls, float64(float64(x)), float64(float64(y)))) } func Xfinite(tls *TLS, x float64) (r int32) { @@ -105278,12 +105290,12 @@ func Xfloor(tls *TLS, x3 float64) (r float64) { /* special case because of non-nearest rounding modes */ if e <= Int32FromInt32(0x3ff)-Int32FromInt32(1) { if uint64(8) == uint64(4) { - y = float32(y3) + y = float32(float32(y3)) } else { if uint64(8) == uint64(8) { y1 = y3 } else { - y2 = y3 + y2 = float64(float64(y3)) } } if *(*Tuint64_t)(unsafe.Pointer(bp))>>int32(63) != 0 { @@ -105373,7 +105385,7 @@ func Xfloorl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xfloor(tls, x) + return float64(Xfloor(tls, float64(float64(x)))) } const DBL_MIN1 = 2.2250738585072014e-308 @@ -105406,8 +105418,8 @@ func _normalize(tls *TLS, x float64) (r Tnum) { } e = v2 } - ix = ix & (Uint64FromUint64(1)<> int32(32) - ylo = uint64(uint32(y)) + ylo = uint64(uint32(uint32(y))) yhi = y >> int32(32) t1 = xlo * ylo t2 = xlo*yhi + xhi*ylo @@ -105556,7 +105568,7 @@ func Xfma(tls *TLS, x1 float64, y float64, z float64) (r1 float64) { if sign != 0 { i = -i } - r = float64(i) /* |r| is in [0x1p62,0x1p63] */ + r = float64(float64(i)) /* |r| is in [0x1p62,0x1p63] */ if e < -Int32FromInt32(1022)-Int32FromInt32(62) { /* result is subnormal before rounding */ if e == -Int32FromInt32(1022)-Int32FromInt32(63) { @@ -105569,16 +105581,16 @@ func Xfma(tls *TLS, x1 float64, y float64, z float64) (r1 float64) { on arch behaviour which can be imitated by a double to float conversion */ fltmin = float32(Float64FromFloat64(1.0842021401737618e-19) * Float64FromFloat32(1.1754943508222875e-38) * r) - return Float64FromFloat64(2.2250738585072014e-308) / Float64FromFloat32(1.1754943508222875e-38) * float64(fltmin) + return Float64FromFloat64(2.2250738585072014e-308) / Float64FromFloat32(1.1754943508222875e-38) * float64(float64(fltmin)) } /* one bit is lost when scaled, add another top bit to only round once at conversion if it is inexact */ if *(*Tuint64_t)(unsafe.Pointer(bp))<>int32(1) | *(*Tuint64_t)(unsafe.Pointer(bp))&uint64(1) | Uint64FromUint64(1)<>int32(1)|*(*Tuint64_t)(unsafe.Pointer(bp))&uint64(1)) | Uint64FromUint64(1)< %v", r) }() } - return Xfma(tls, x, y, z) + return float64(Xfma(tls, float64(float64(x)), float64(float64(y)), float64(float64(z)))) } func Xfmax(tls *TLS, x float64, y float64) (r float64) { @@ -105728,7 +105740,7 @@ func Xfmaxl(tls *TLS, x float64, y float64) (r float64) { trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) defer func() { trc("-> %v", r) }() } - return Xfmax(tls, x, y) + return float64(Xfmax(tls, float64(float64(x)), float64(float64(y)))) } func Xfmin(tls *TLS, x float64, y float64) (r float64) { @@ -105850,7 +105862,7 @@ func Xfminl(tls *TLS, x float64, y float64) (r float64) { trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) defer func() { trc("-> %v", r) }() } - return Xfmin(tls, x, y) + return float64(Xfmin(tls, float64(float64(x)), float64(float64(y)))) } func Xfmod(tls *TLS, x float64, y float64) (r float64) { @@ -105930,8 +105942,8 @@ func Xfmod(tls *TLS, x float64, y float64) (r float64) { } uxi <<= uint64(-ex + int32(1)) } else { - uxi = uxi & (-Uint64FromUint64(1) >> Int32FromInt32(12)) - uxi = uxi | Uint64FromUint64(1)<> Int32FromInt32(12))) + uxi = Tuint64_t(uint64(uxi) | Uint64FromUint64(1)<> Int32FromInt32(12)) + *(*Tuint64_t)(unsafe.Pointer(p6)) = Tuint64_t(uint64(*(*Tuint64_t)(unsafe.Pointer(p6))) & (-Uint64FromUint64(1) >> Int32FromInt32(12))) p7 = bp + 16 - *(*Tuint64_t)(unsafe.Pointer(p7)) = *(*Tuint64_t)(unsafe.Pointer(p7)) | Uint64FromUint64(1)< 0 { - uxi = uxi - Uint64FromUint64(1)<>= uint64(-ex + int32(1)) } - uxi |= uint64(sx) << int32(63) + uxi |= uint64(uint64(sx)) << int32(63) *(*Tuint64_t)(unsafe.Pointer(bp + 8)) = uxi return *(*float64)(unsafe.Pointer(bp + 8)) } @@ -106131,7 +106143,7 @@ func Xfmodf(tls *TLS, x float32, y float32) (r float32) { /* scale result up */ if ex > 0 { uxi -= Uint32FromUint32(1) << Int32FromInt32(23) - uxi |= uint32(ex) << int32(23) + uxi |= uint32(uint32(ex)) << int32(23) } else { uxi >>= uint32(-ex + int32(1)) } @@ -106145,7 +106157,7 @@ func Xfmodl(tls *TLS, x float64, y float64) (r float64) { trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) defer func() { trc("-> %v", r) }() } - return Xfmod(tls, x, y) + return float64(Xfmod(tls, float64(float64(x)), float64(float64(y)))) } func Xfrexp(tls *TLS, x float64, e uintptr) (r float64) { @@ -106186,9 +106198,9 @@ func Xfrexp(tls *TLS, x float64, e uintptr) (r float64) { } *(*int32)(unsafe.Pointer(e)) = ee - int32(0x3fe) p1 = bp - *(*Tuint64_t)(unsafe.Pointer(p1)) = *(*Tuint64_t)(unsafe.Pointer(p1)) & Uint64FromUint64(0x800fffffffffffff) + *(*Tuint64_t)(unsafe.Pointer(p1)) = Tuint64_t(uint64(*(*Tuint64_t)(unsafe.Pointer(p1))) & Uint64FromUint64(0x800fffffffffffff)) p2 = bp - *(*Tuint64_t)(unsafe.Pointer(p2)) = *(*Tuint64_t)(unsafe.Pointer(p2)) | Uint64FromUint64(0x3fe0000000000000) + *(*Tuint64_t)(unsafe.Pointer(p2)) = Tuint64_t(uint64(*(*Tuint64_t)(unsafe.Pointer(p2))) | Uint64FromUint64(0x3fe0000000000000)) return *(*float64)(unsafe.Pointer(bp)) } @@ -106217,7 +106229,7 @@ func Xfrexpf(tls *TLS, x float32, e uintptr) (r float32) { ee = int32(*(*Tuint32_t)(unsafe.Pointer(bp)) >> int32(23) & uint32(0xff)) if !(ee != 0) { if x != 0 { - x = Xfrexpf(tls, float32(float64(x)*float64(1.8446744073709552e+19)), e) + x = Xfrexpf(tls, float32(float64(float64(x))*float64(1.8446744073709552e+19)), e) *(*int32)(unsafe.Pointer(e)) -= int32(64) } else { *(*int32)(unsafe.Pointer(e)) = 0 @@ -106241,7 +106253,7 @@ func Xfrexpl(tls *TLS, x float64, e uintptr) (r float64) { trc("tls=%v x=%v e=%v, (%v:)", tls, x, e, origin(2)) defer func() { trc("-> %v", r) }() } - return Xfrexp(tls, x, e) + return float64(Xfrexp(tls, float64(float64(x)), e)) } const SPLIT = 1 @@ -106301,9 +106313,9 @@ func Xhypot(tls *TLS, x float64, y float64) (r float64) { *(*float64)(unsafe.Pointer(bp + 8)) = y /* arrange |x| >= |y| */ p1 = bp - *(*Tuint64_t)(unsafe.Pointer(p1)) = *(*Tuint64_t)(unsafe.Pointer(p1)) & (-Uint64FromUint64(1) >> Int32FromInt32(1)) + *(*Tuint64_t)(unsafe.Pointer(p1)) = Tuint64_t(uint64(*(*Tuint64_t)(unsafe.Pointer(p1))) & (-Uint64FromUint64(1) >> Int32FromInt32(1))) p2 = bp + 8 - *(*Tuint64_t)(unsafe.Pointer(p2)) = *(*Tuint64_t)(unsafe.Pointer(p2)) & (-Uint64FromUint64(1) >> Int32FromInt32(1)) + *(*Tuint64_t)(unsafe.Pointer(p2)) = Tuint64_t(uint64(*(*Tuint64_t)(unsafe.Pointer(p2))) & (-Uint64FromUint64(1) >> Int32FromInt32(1))) if *(*Tuint64_t)(unsafe.Pointer(bp)) < *(*Tuint64_t)(unsafe.Pointer(bp + 8)) { ut = *(*struct { Fi [0]Tuint64_t @@ -106433,7 +106445,7 @@ func Xhypotf(tls *TLS, x float32, y float32) (r float32) { y *= Float32FromFloat32(1.2379400392853803e+27) } } - return z * Xsqrtf(tls, float32(float64(x)*float64(x)+float64(y)*float64(y))) + return z * Xsqrtf(tls, float32(float64(float64(x))*float64(float64(x))+float64(float64(y))*float64(float64(y)))) } func Xhypotl(tls *TLS, x float64, y float64) (r float64) { @@ -106441,7 +106453,7 @@ func Xhypotl(tls *TLS, x float64, y float64) (r float64) { trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) defer func() { trc("-> %v", r) }() } - return Xhypot(tls, x, y) + return float64(Xhypot(tls, float64(float64(x)), float64(float64(y)))) } func Xilogb(tls *TLS, x3 float64) (r int32) { @@ -106597,7 +106609,7 @@ func Xilogbl(tls *TLS, x float64) (r int32) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xilogb(tls, x) + return Xilogb(tls, float64(float64(x))) } var _invsqrtpi = float64(0.5641895835477563) /* 0x3FE20DD7, 0x50429B6D */ @@ -106714,7 +106726,7 @@ func Xy0(tls *TLS, x float64) (r float64) { _, _, _, _, _, _ = __u, ix, lx, u, v, z __u = *(*Tuint64_t)(unsafe.Pointer(&x)) ix = uint32(__u >> int32(32)) - lx = uint32(__u) + lx = uint32(uint32(__u)) /* y0(nan)=nan, y0(<0)=nan, y0(0)=-inf, y0(inf)=0 */ if ix<> int32(32)) - lx = uint32(__u) + lx = uint32(uint32(__u)) /* y1(nan)=nan, y1(<0)=nan, y1(0)=-inf, y1(inf)=0 */ if ix<> int32(32)) - lx = uint32(__u) + lx = uint32(uint32(__u)) sign = int32(ix >> int32(31)) ix &= uint32(0x7fffffff) if ix|(lx|-lx)>>int32(31) > uint32(0x7ff00000) { /* nan */ @@ -108003,7 +108015,7 @@ func Xjn(tls *TLS, n int32, x float64) (r float64) { if ix|lx == uint32(0) || ix == uint32(0x7ff00000) { /* if x is 0 or inf */ b = float64(0) } else { - if float64(nm1) < x { + if float64(float64(nm1)) < x { /* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */ if ix >= uint32(0x52d00000) { /* x > 2**302 */ /* (x >> n**2) @@ -108043,7 +108055,7 @@ func Xjn(tls *TLS, n int32, x float64) (r float64) { } i++ temp = b - b = b*(float64(2)*float64(i)/x) - a /* avoid underflow */ + b = b*(float64(2)*float64(float64(i))/x) - a /* avoid underflow */ a = temp goto _1 _1: @@ -108065,8 +108077,8 @@ func Xjn(tls *TLS, n int32, x float64) (r float64) { if !(i <= nm1+int32(1)) { break } - a *= float64(i) /* a = n! */ - b *= temp /* b = (x/2)^n */ + a *= float64(float64(i)) /* a = n! */ + b *= temp /* b = (x/2)^n */ goto _2 _2: ; @@ -108075,7 +108087,7 @@ func Xjn(tls *TLS, n int32, x float64) (r float64) { b = b / a } } else { - nf = float64(nm1) + float64(1) + nf = float64(float64(nm1)) + float64(1) w = Float64FromInt32(2) * nf / x h = Float64FromInt32(2) / x z = w + h @@ -108095,7 +108107,7 @@ func Xjn(tls *TLS, n int32, x float64) (r float64) { if !(i >= 0) { break } - t = Float64FromInt32(1) / (Float64FromInt32(2)*(float64(i)+nf)/x - t) + t = Float64FromInt32(1) / (Float64FromInt32(2)*(float64(float64(i))+nf)/x - t) goto _3 _3: ; @@ -108119,7 +108131,7 @@ func Xjn(tls *TLS, n int32, x float64) (r float64) { break } temp = b - b = b*(float64(2)*float64(i))/x - a + b = b*(float64(2)*float64(float64(i)))/x - a a = temp goto _4 _4: @@ -108133,7 +108145,7 @@ func Xjn(tls *TLS, n int32, x float64) (r float64) { break } temp = b - b = b*(float64(2)*float64(i))/x - a + b = b*(float64(2)*float64(float64(i)))/x - a a = temp /* scale b to avoid spurious overflow */ if b > float64(3.273390607896142e+150) { @@ -108177,7 +108189,7 @@ func Xyn(tls *TLS, n int32, x float64) (r float64) { _, _, _, _, _, _, _, _, _, _, _, _ = __u, a, b, i, ib, ix, lx, nm1, sign, temp, v1, v3 __u = *(*Tuint64_t)(unsafe.Pointer(&x)) ix = uint32(__u >> int32(32)) - lx = uint32(__u) + lx = uint32(uint32(__u)) sign = int32(ix >> int32(31)) ix &= uint32(0x7fffffff) if ix|(lx|-lx)>>int32(31) > uint32(0x7ff00000) { /* nan */ @@ -108247,7 +108259,7 @@ func Xyn(tls *TLS, n int32, x float64) (r float64) { } i++ temp = b - b = float64(2)*float64(i)/x*b - a + b = float64(2)*float64(float64(i))/x*b - a ib = uint32(*(*Tuint64_t)(unsafe.Pointer(&b)) >> int32(32)) a = temp goto _2 @@ -108296,7 +108308,7 @@ func Xjnf(tls *TLS, n int32, x float32) (r float32) { if ix == uint32(0) || ix == uint32(0x7f800000) { /* if x is 0 or inf */ b = Float32FromFloat32(0) } else { - if float32(nm1) < x { + if float32(float32(nm1)) < x { /* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */ a = Xj0f(tls, x) b = Xj1f(tls, x) @@ -108307,7 +108319,7 @@ func Xjnf(tls *TLS, n int32, x float32) (r float32) { } i++ temp = b - b = b*(Float32FromFloat32(2)*float32(i)/x) - a + b = b*(Float32FromFloat32(2)*float32(float32(i))/x) - a a = temp goto _1 _1: @@ -108328,8 +108340,8 @@ func Xjnf(tls *TLS, n int32, x float32) (r float32) { if !(i <= nm1+int32(1)) { break } - a *= float32(i) /* a = n! */ - b *= temp /* b = (x/2)^n */ + a *= float32(float32(i)) /* a = n! */ + b *= temp /* b = (x/2)^n */ goto _2 _2: ; @@ -108337,7 +108349,7 @@ func Xjnf(tls *TLS, n int32, x float32) (r float32) { } b = b / a } else { - nf = float32(nm1) + Float32FromFloat32(1) + nf = float32(float32(nm1)) + Float32FromFloat32(1) w = Float32FromInt32(2) * nf / x h = Float32FromInt32(2) / x z = w + h @@ -108357,7 +108369,7 @@ func Xjnf(tls *TLS, n int32, x float32) (r float32) { if !(i >= 0) { break } - t = Float32FromFloat32(1) / (Float32FromInt32(2)*(float32(i)+nf)/x - t) + t = Float32FromFloat32(1) / (Float32FromInt32(2)*(float32(float32(i))+nf)/x - t) goto _3 _3: ; @@ -108381,7 +108393,7 @@ func Xjnf(tls *TLS, n int32, x float32) (r float32) { break } temp = b - b = Float32FromFloat32(2)*float32(i)*b/x - a + b = Float32FromFloat32(2)*float32(float32(i))*b/x - a a = temp goto _4 _4: @@ -108395,7 +108407,7 @@ func Xjnf(tls *TLS, n int32, x float32) (r float32) { break } temp = b - b = Float32FromFloat32(2)*float32(i)*b/x - a + b = Float32FromFloat32(2)*float32(float32(i))*b/x - a a = temp /* scale b to avoid spurious overflow */ if b > Float32FromFloat32(1.152921504606847e+18) { @@ -108477,7 +108489,7 @@ func Xynf(tls *TLS, n int32, x float32) (r float32) { } i++ temp = b - b = Float32FromFloat32(2)*float32(i)/x*b - a + b = Float32FromFloat32(2)*float32(float32(i))/x*b - a ib = *(*Tuint32_t)(unsafe.Pointer(&b)) a = temp goto _2 @@ -108597,7 +108609,7 @@ func _sin_pi(tls *TLS, x float64) (r float64) { x = float64(2) * (x*float64(0.5) - Xfloor(tls, x*float64(0.5))) /* x mod 2.0 */ n = int32(x * Float64FromFloat64(4)) n = (n + int32(1)) / int32(2) - x -= float64(float32(n) * Float32FromFloat32(0.5)) + x -= float64(float32(float32(n)) * Float32FromFloat32(0.5)) x *= _pi2 switch n { default: /* case 4: */ @@ -108720,8 +108732,8 @@ func X__lgamma_r(tls *TLS, x float64, signgamp uintptr) (r1 float64) { } } else { if ix < uint32(0x40200000) { /* x < 8.0 */ - i = int32(x) - y = x - float64(i) + i = int32(int32(x)) + y = x - float64(float64(i)) p = y * (_s0 + y*(_s1+y*(_s2+y*(_s3+y*(_s4+y*(_s5+y*_s6)))))) q = float64(1) + y*(_r1+y*(_r2+y*(_r3+y*(_r4+y*(_r5+y*_r6))))) r = float64(0.5)*y + p/q @@ -108854,7 +108866,7 @@ func _sin_pi1(tls *TLS, x float32) (r float32) { x = Float32FromInt32(2) * (x*Float32FromFloat32(0.5) - Xfloorf(tls, x*Float32FromFloat32(0.5))) /* x mod 2.0 */ n = int32(x * Float32FromInt32(4)) n = (n + int32(1)) / int32(2) - y = float64(x - float32(n)*Float32FromFloat32(0.5)) + y = float64(x - float32(float32(n))*Float32FromFloat32(0.5)) y *= float64(3.141592653589793) switch n { default: /* case 4: */ @@ -108977,8 +108989,8 @@ func X__lgammaf_r(tls *TLS, x float32, signgamp uintptr) (r1 float32) { } } else { if ix < uint32(0x41000000) { /* x < 8.0 */ - i = int32(x) - y = x - float32(i) + i = int32(int32(x)) + y = x - float32(float32(i)) p = y * (_s06 + y*(_s11+y*(_s21+y*(_s31+y*(_s41+y*(_s51+y*_s61)))))) q = Float32FromFloat32(1) + y*(_r11+y*(_r21+y*(_r31+y*(_r41+y*(_r51+y*_r61))))) r = Float32FromFloat32(0.5)*y + p/q @@ -109033,7 +109045,7 @@ func X__lgammal_r(tls *TLS, x float64, sg uintptr) (r float64) { trc("tls=%v x=%v sg=%v, (%v:)", tls, x, sg, origin(2)) defer func() { trc("-> %v", r) }() } - return X__lgamma_r(tls, x, sg) + return float64(X__lgamma_r(tls, float64(float64(x)), sg)) } func Xlgammal(tls *TLS, x float64) (r float64) { @@ -109077,7 +109089,7 @@ func Xllrintl(tls *TLS, x float64) (r int64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xllrint(tls, x) + return Xllrint(tls, float64(float64(x))) } func Xllround(tls *TLS, x float64) (r int64) { @@ -109178,15 +109190,15 @@ func Xlog(tls *TLS, x1 float64) (r1 float64) { /* x is subnormal, normalize it. */ v9 = x1 * float64(4.503599627370496e+15) ix = *(*Tuint64_t)(unsafe.Pointer(&v9)) - ix = ix - Uint64FromUint64(52)<> (Int32FromInt32(52) - Int32FromInt32(LOG_TABLE_BITS)) % uint64(Int32FromInt32(1)<> int32(52)) /* arithmetic shift */ - iz = ix - tmp&(Uint64FromUint64(0xfff)<> int32(52)) /* arithmetic shift */ + iz = uint64(uint64(uint64(ix)) - uint64(uint64(tmp))&(Uint64FromUint64(0xfff)<>Int32FromInt32(20)) - int32(0x3ff) hx = hx&uint32(0x000fffff) + uint32(0x3fe6a09e) - *(*Tuint64_t)(unsafe.Pointer(bp)) = uint64(hx)< %v", r) }() } - return Xlog10(tls, x) + return float64(Xlog10(tls, float64(float64(x)))) } var _ln2_hi2 = float64(0.6931471803691238) /* 3fe62e42 fee00000 */ @@ -109456,12 +109468,12 @@ func Xlog1p(tls *TLS, x3 float64) (r float64) { /* underflow if subnormal */ if hx&uint32(0x7ff00000) == uint32(0) { if uint64(4) == uint64(4) { - y = float32(x3) + y = float32(float32(x3)) } else { if uint64(4) == uint64(8) { - y1 = float64(float32(x3)) + y1 = float64(float32(float32(x3))) } else { - y2 = float64(float32(x3)) + y2 = float64(float32(float32(x3))) } } } @@ -109496,7 +109508,7 @@ func Xlog1p(tls *TLS, x3 float64) (r float64) { } /* reduce u into [sqrt(2)/2, sqrt(2)] */ hu = hu&uint32(0x000fffff) + uint32(0x3fe6a09e) - *(*Tuint64_t)(unsafe.Pointer(bp)) = uint64(hu)< %v", r) }() } - return Xlog1p(tls, x) + return float64(Xlog1p(tls, float64(float64(x)))) } const LOG2_POLY1_ORDER = 11 @@ -109658,7 +109670,7 @@ func Xlog2(tls *TLS, x1 float64) (r1 float64) { } r = x1 - float64(1) v7 = r - v6 = *(*Tuint64_t)(unsafe.Pointer(&v7)) & (-Uint64FromUint64(1) << Int32FromInt32(32)) + v6 = uint64(uint64(*(*Tuint64_t)(unsafe.Pointer(&v7))) & (-Uint64FromUint64(1) << Int32FromInt32(32))) rhi = *(*float64)(unsafe.Pointer(&v6)) rlo = r - rhi hi = rhi * X__log2_data.Finvln2hi @@ -109692,15 +109704,15 @@ func Xlog2(tls *TLS, x1 float64) (r1 float64) { /* x is subnormal, normalize it. */ v11 = x1 * float64(4.503599627370496e+15) ix = *(*Tuint64_t)(unsafe.Pointer(&v11)) - ix = ix - Uint64FromUint64(52)<> (Int32FromInt32(52) - Int32FromInt32(LOG2_TABLE_BITS)) % uint64(Int32FromInt32(1)<> int32(52)) /* arithmetic shift */ - iz = ix - tmp&(Uint64FromUint64(0xfff)<> int32(52)) /* arithmetic shift */ + iz = uint64(uint64(uint64(ix)) - uint64(uint64(tmp))&(Uint64FromUint64(0xfff)<> (Int32FromInt32(23) - Int32FromInt32(LOG2F_TABLE_BITS)) % uint32(Int32FromInt32(1)<> int32(23) /* arithmetic shift */ + k = int32(int32(tmp)) >> int32(23) /* arithmetic shift */ invc = (*(*struct { Finvc float64 Flogc float64 @@ -109822,14 +109834,14 @@ func Xlog2f(tls *TLS, x1 float32) (r1 float32) { z = float64(*(*float32)(unsafe.Pointer(&iz))) /* log2(x) = log1p(z/c-1)/ln2 + log2(c) + k */ r = z*invc - Float64FromInt32(1) - y0 = logc + float64(k) + y0 = logc + float64(float64(k)) /* Pipelined polynomial evaluation to approximate log1p(r)/ln2. */ r2 = r * r y1 = *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2f_data)) + 256 + 1*8))*r + *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2f_data)) + 256 + 2*8)) y1 = *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2f_data)) + 256))*r2 + y1 p = *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2f_data)) + 256 + 3*8))*r + y0 y1 = y1*r2 + p - y = float32(y1) + y = float32(float32(y1)) v2 = y goto _3 _3: @@ -109849,7 +109861,7 @@ func Xlog2l(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xlog2(tls, x) + return float64(Xlog2(tls, float64(float64(x)))) } const N7 = 128 @@ -109941,7 +109953,7 @@ func Xlogbl(tls *TLS, x float64) (r float64) { F__f float64 } _ = v1 - *(*float64)(unsafe.Pointer(bp)) = x + *(*float64)(unsafe.Pointer(bp)) = float64(float64(x)) v1 = *(*uint64)(unsafe.Pointer(bp)) goto _2 _2: @@ -110002,7 +110014,7 @@ func Xlogf(tls *TLS, x1 float32) (r1 float32) { The ith subinterval contains z and c is near its center. */ tmp = ix - uint32(OFF1) i = int32(tmp >> (Int32FromInt32(23) - Int32FromInt32(LOGF_TABLE_BITS)) % uint32(Int32FromInt32(1)<> int32(23) /* arithmetic shift */ + k = int32(int32(tmp)) >> int32(23) /* arithmetic shift */ iz = ix - tmp&uint32(0xff800000) invc = (*(*struct { Finvc float64 @@ -110015,13 +110027,13 @@ func Xlogf(tls *TLS, x1 float32) (r1 float32) { z = float64(*(*float32)(unsafe.Pointer(&iz))) /* log(x) = log1p(z/c-1) + log(c) + k*Ln2 */ r = z*invc - Float64FromInt32(1) - y0 = logc + float64(k)*X__logf_data.Fln2 + y0 = logc + float64(float64(k))*X__logf_data.Fln2 /* Pipelined polynomial evaluation to approximate log1p(r). */ r2 = r * r y1 = *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__logf_data)) + 264 + 1*8))*r + *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__logf_data)) + 264 + 2*8)) y1 = *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__logf_data)) + 264))*r2 + y1 y1 = y1*r2 + (y0 + r) - y = float32(y1) + y = float32(float32(y1)) v2 = y goto _3 _3: @@ -110042,7 +110054,7 @@ func Xlogl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xlog(tls, x) + return float64(Xlog(tls, float64(float64(x)))) } /* @@ -110091,7 +110103,7 @@ func Xlrintl(tls *TLS, x float64) (r int64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xlrint(tls, x) + return Xlrint(tls, float64(float64(x))) } func Xlround(tls *TLS, x float64) (r int64) { @@ -110149,21 +110161,21 @@ func Xmodf(tls *TLS, x float64, iptr uintptr) (r float64) { return x } p1 = bp - *(*Tuint64_t)(unsafe.Pointer(p1)) = *(*Tuint64_t)(unsafe.Pointer(p1)) & (Uint64FromUint64(1) << Int32FromInt32(63)) + *(*Tuint64_t)(unsafe.Pointer(p1)) = Tuint64_t(uint64(*(*Tuint64_t)(unsafe.Pointer(p1))) & (Uint64FromUint64(1) << Int32FromInt32(63))) return *(*float64)(unsafe.Pointer(bp)) } /* no integral part*/ if e < 0 { p2 = bp - *(*Tuint64_t)(unsafe.Pointer(p2)) = *(*Tuint64_t)(unsafe.Pointer(p2)) & (Uint64FromUint64(1) << Int32FromInt32(63)) + *(*Tuint64_t)(unsafe.Pointer(p2)) = Tuint64_t(uint64(*(*Tuint64_t)(unsafe.Pointer(p2))) & (Uint64FromUint64(1) << Int32FromInt32(63))) *(*float64)(unsafe.Pointer(iptr)) = *(*float64)(unsafe.Pointer(bp)) return x } - mask = -Uint64FromUint64(1) >> Int32FromInt32(12) >> e + mask = uint64(-Uint64FromUint64(1) >> Int32FromInt32(12) >> e) if *(*Tuint64_t)(unsafe.Pointer(bp))&mask == uint64(0) { *(*float64)(unsafe.Pointer(iptr)) = x p3 = bp - *(*Tuint64_t)(unsafe.Pointer(p3)) = *(*Tuint64_t)(unsafe.Pointer(p3)) & (Uint64FromUint64(1) << Int32FromInt32(63)) + *(*Tuint64_t)(unsafe.Pointer(p3)) = Tuint64_t(uint64(*(*Tuint64_t)(unsafe.Pointer(p3))) & (Uint64FromUint64(1) << Int32FromInt32(63))) return *(*float64)(unsafe.Pointer(bp)) } *(*Tuint64_t)(unsafe.Pointer(bp)) &= ^mask @@ -110230,8 +110242,8 @@ func Xmodfl(tls *TLS, x float64, iptr uintptr) (r1 float64) { var r float64 var _ /* d at bp+0 */ float64 _ = r - r = Xmodf(tls, x, bp) - *(*float64)(unsafe.Pointer(iptr)) = *(*float64)(unsafe.Pointer(bp)) + r = float64(Xmodf(tls, float64(float64(x)), bp)) + *(*float64)(unsafe.Pointer(iptr)) = float64(*(*float64)(unsafe.Pointer(bp))) return r } @@ -110318,15 +110330,15 @@ _2: if *(*Tuint64_t)(unsafe.Pointer(bp + 8)) == *(*Tuint64_t)(unsafe.Pointer(bp + 16)) { return y3 } - ax = *(*Tuint64_t)(unsafe.Pointer(bp + 8)) & (-Uint64FromUint64(1) / Uint64FromInt32(2)) - ay = *(*Tuint64_t)(unsafe.Pointer(bp + 16)) & (-Uint64FromUint64(1) / Uint64FromInt32(2)) + ax = uint64(uint64(*(*Tuint64_t)(unsafe.Pointer(bp + 8))) & (-Uint64FromUint64(1) / Uint64FromInt32(2))) + ay = uint64(uint64(*(*Tuint64_t)(unsafe.Pointer(bp + 16))) & (-Uint64FromUint64(1) / Uint64FromInt32(2))) if ax == uint64(0) { if ay == uint64(0) { return y3 } - *(*Tuint64_t)(unsafe.Pointer(bp + 8)) = *(*Tuint64_t)(unsafe.Pointer(bp + 16))&(Uint64FromUint64(1)< ay || (*(*Tuint64_t)(unsafe.Pointer(bp + 8))^*(*Tuint64_t)(unsafe.Pointer(bp + 16)))&(Uint64FromUint64(1)< ay || uint64(*(*Tuint64_t)(unsafe.Pointer(bp + 8))^*(*Tuint64_t)(unsafe.Pointer(bp + 16)))&(Uint64FromUint64(1)< %v", r) }() } - return Xnextafter(tls, x, y) + return float64(Xnextafter(tls, float64(float64(x)), float64(float64(y)))) } func Xnexttoward(tls *TLS, x float64, y float64) (r float64) { @@ -110473,7 +110485,7 @@ func Xnexttoward(tls *TLS, x float64, y float64) (r float64) { trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) defer func() { trc("-> %v", r) }() } - return Xnextafter(tls, x, y) + return Xnextafter(tls, x, float64(float64(y))) } func Xnexttowardf(tls *TLS, x3 float32, y3 float64) (r float32) { @@ -110516,20 +110528,20 @@ func Xnexttowardf(tls *TLS, x3 float32, y3 float64) (r float32) { _2: ; if v5 = BoolInt32(v1&uint32(0x7fffffff) > uint32(0x7f800000)) != 0; !v5 { - *(*float64)(unsafe.Pointer(bp + 8)) = y3 + *(*float64)(unsafe.Pointer(bp + 8)) = float64(float64(y3)) v3 = *(*uint64)(unsafe.Pointer(bp + 8)) goto _4 _4: } if v5 || BoolInt32(v3&(-Uint64FromUint64(1)>>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)<> (Int32FromInt32(52) - Int32FromInt32(POW_LOG_TABLE_BITS)) % uint64(Int32FromInt32(1)<> int32(52)) /* arithmetic shift */ - iz = ix - tmp&(Uint64FromUint64(0xfff)<> int32(52)) /* arithmetic shift */ + iz = uint64(uint64(uint64(ix)) - uint64(uint64(tmp))&(Uint64FromUint64(0xfff)< 0, the exponent of scale might have overflowed by <= 460. */ - sbits = sbits - Uint64FromUint64(1009)< Int32FromInt32(0x3ff)+Int32FromInt32(52) { return int32(2) } - if iy&(uint64(1)<<(Int32FromInt32(0x3ff)+Int32FromInt32(52)-e)-uint64(1)) != 0 { + if uint64(uint64(iy))&(uint64(1)<<(Int32FromInt32(0x3ff)+Int32FromInt32(52)-e)-uint64(1)) != 0 { return 0 } - if iy&(uint64(1)<<(Int32FromInt32(0x3ff)+Int32FromInt32(52)-e)) != 0 { + if uint64(uint64(iy))&(uint64(1)<<(Int32FromInt32(0x3ff)+Int32FromInt32(52)-e)) != 0 { return int32(1) } return int32(2) @@ -110968,15 +110980,15 @@ func Xpow(tls *TLS, x1 float64, y1 float64) (r float64) { v15 = x1 * float64(4.503599627370496e+15) ix = *(*Tuint64_t)(unsafe.Pointer(&v15)) ix &= uint64(0x7fffffffffffffff) - ix = ix - Uint64FromUint64(52)<> (Int32FromInt32(23) - Int32FromInt32(POWF_LOG2_TABLE_BITS)) % uint32(Int32FromInt32(1)<> (Int32FromInt32(23) - Int32FromInt32(POWF_SCALE_BITS)) /* arithmetic shift */ + k = int32(int32(top)) >> (Int32FromInt32(23) - Int32FromInt32(POWF_SCALE_BITS)) /* arithmetic shift */ invc = (*(*struct { Finvc float64 Flogc float64 @@ -111042,7 +111054,7 @@ func _log2_inline(tls *TLS, ix Tuint32_t) (r1 Tdouble_t) { z = float64(*(*float32)(unsafe.Pointer(&iz))) /* log2(x) = log1p(z/c-1)/ln2 + log2(c) + k */ r = z*invc - Float64FromInt32(1) - y0 = logc + float64(k) + y0 = logc + float64(float64(k)) /* Pipelined polynomial evaluation to approximate log1p(r)/ln2. */ r2 = r * r y = *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__powf_log2_data)) + 256))*r + *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__powf_log2_data)) + 256 + 1*8)) @@ -111077,7 +111089,7 @@ _2: r = xd - kd /* exp2(x) = 2^(k/N) * 2^r ~= s * (C0*r^3 + C1*r^2 + C2*r + 1) */ t = *(*Tuint64_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__exp2f_data)) + uintptr(ki%uint64(Int32FromInt32(1)<>int32(47)&uint64(0xffff) >= *(*Tuint64_t)(unsafe.Pointer(&v6))>>int32(47) { @@ -111221,7 +111233,7 @@ func Xpowl(tls *TLS, x float64, y float64) (r float64) { trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) defer func() { trc("-> %v", r) }() } - return Xpow(tls, x, y) + return float64(Xpow(tls, float64(float64(x)), float64(float64(y)))) } func Xremainder(tls *TLS, x float64, y float64) (r float64) { @@ -111267,7 +111279,7 @@ func Xremainderl(tls *TLS, x float64, y float64) (r float64) { trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) defer func() { trc("-> %v", r) }() } - return Xremainder(tls, x, y) + return float64(Xremainder(tls, float64(float64(x)), float64(float64(y)))) } func Xremquo(tls *TLS, x float64, y float64, quo uintptr) (r float64) { @@ -111346,8 +111358,8 @@ func Xremquo(tls *TLS, x float64, y float64, quo uintptr) (r float64) { } uxi <<= uint64(-ex + int32(1)) } else { - uxi = uxi & (-Uint64FromUint64(1) >> Int32FromInt32(12)) - uxi = uxi | Uint64FromUint64(1)<> Int32FromInt32(12))) + uxi = Tuint64_t(uint64(uxi) | Uint64FromUint64(1)<> Int32FromInt32(12)) + *(*Tuint64_t)(unsafe.Pointer(p6)) = Tuint64_t(uint64(*(*Tuint64_t)(unsafe.Pointer(p6))) & (-Uint64FromUint64(1) >> Int32FromInt32(12))) p7 = bp + 16 - *(*Tuint64_t)(unsafe.Pointer(p7)) = *(*Tuint64_t)(unsafe.Pointer(p7)) | Uint64FromUint64(1)< 0 { - uxi = uxi - Uint64FromUint64(1)<>= uint64(-ex + int32(1)) } @@ -111431,9 +111444,9 @@ end: } q &= uint32(0x7fffffff) if sx^sy != 0 { - v10 = -int32(q) + v10 = -int32(int32(q)) } else { - v10 = int32(q) + v10 = int32(int32(q)) } *(*int32)(unsafe.Pointer(quo)) = v10 if sx != 0 { @@ -111581,12 +111594,13 @@ func Xremquof(tls *TLS, x float32, y float32, quo uintptr) (r float32) { ex-- } } + goto end end: ; /* scale result and decide between |x| and |x|-|y| */ if ex > 0 { uxi -= Uint32FromUint32(1) << Int32FromInt32(23) - uxi |= uint32(ex) << int32(23) + uxi |= uint32(uint32(ex)) << int32(23) } else { uxi >>= uint32(-ex + int32(1)) } @@ -111601,9 +111615,9 @@ end: } q &= uint32(0x7fffffff) if sx^sy != 0 { - v8 = -int32(q) + v8 = -int32(int32(q)) } else { - v8 = int32(q) + v8 = int32(int32(q)) } *(*int32)(unsafe.Pointer(quo)) = v8 if sx != 0 { @@ -111619,7 +111633,7 @@ func Xremquol(tls *TLS, x float64, y float64, quo uintptr) (r float64) { trc("tls=%v x=%v y=%v quo=%v, (%v:)", tls, x, y, quo, origin(2)) defer func() { trc("-> %v", r) }() } - return Xremquo(tls, x, y, quo) + return float64(Xremquo(tls, float64(float64(x)), float64(float64(y)), quo)) } const DBL_EPSILON9 = 2.220446049250313e-16 @@ -111726,7 +111740,7 @@ func Xrintl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xrint(tls, x) + return float64(Xrint(tls, float64(float64(x)))) } const DBL_EPSILON11 = 2.220446049250313e-16 @@ -111772,7 +111786,7 @@ func Xround(tls *TLS, x3 float64) (r float64) { if uint64(8) == uint64(8) { y1 = x3 + _toint6 } else { - y2 = x3 + _toint6 + y2 = float64(x3 + _toint6) } } return Float64FromInt32(0) * *(*float64)(unsafe.Pointer(bp)) @@ -111864,7 +111878,7 @@ func Xroundl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xround(tls, x) + return float64(Xround(tls, float64(float64(x)))) } func Xscalb(tls *TLS, x float64, fn float64) (r float64) { @@ -111915,7 +111929,7 @@ _7: if -fn > float64(65000) { return Xscalbn(tls, x, -int32(65000)) } - return Xscalbn(tls, x, int32(fn)) + return Xscalbn(tls, x, int32(int32(fn))) } func Xscalbf(tls *TLS, x float32, fn float32) (r float32) { @@ -111966,7 +111980,7 @@ _7: if -fn > Float32FromFloat32(65000) { return Xscalbnf(tls, x, -int32(65000)) } - return Xscalbnf(tls, x, int32(fn)) + return Xscalbnf(tls, x, int32(int32(fn))) } func Xscalbln(tls *TLS, x float64, n int64) (r float64) { @@ -111981,7 +111995,7 @@ func Xscalbln(tls *TLS, x float64, n int64) (r float64) { n = int64(-Int32FromInt32(1) - Int32FromInt32(0x7fffffff)) } } - return Xscalbn(tls, x, int32(n)) + return Xscalbn(tls, x, int32(int32(n))) } func Xscalblnf(tls *TLS, x float32, n int64) (r float32) { @@ -111996,7 +112010,7 @@ func Xscalblnf(tls *TLS, x float32, n int64) (r float32) { n = int64(-Int32FromInt32(1) - Int32FromInt32(0x7fffffff)) } } - return Xscalbnf(tls, x, int32(n)) + return Xscalbnf(tls, x, int32(int32(n))) } func Xscalblnl(tls *TLS, x float64, n int64) (r float64) { @@ -112004,7 +112018,7 @@ func Xscalblnl(tls *TLS, x float64, n int64) (r float64) { trc("tls=%v x=%v n=%v, (%v:)", tls, x, n, origin(2)) defer func() { trc("-> %v", r) }() } - return Xscalbln(tls, x, n) + return float64(Xscalbln(tls, float64(float64(x)), n)) } func Xscalbn(tls *TLS, x float64, n int32) (r float64) { @@ -112098,7 +112112,7 @@ func Xscalbnl(tls *TLS, x float64, n int32) (r float64) { trc("tls=%v x=%v n=%v, (%v:)", tls, x, n, origin(2)) defer func() { trc("-> %v", r) }() } - return Xscalbn(tls, x, n) + return float64(Xscalbn(tls, float64(float64(x)), n)) } func Xsignificand(tls *TLS, x float64) (r float64) { @@ -112158,7 +112172,7 @@ func Xsin(tls *TLS, x3 float64) (r float64) { } else { v3 = x3 + Float64FromFloat32(1.329227995784916e+36) } - y2 = v3 + y2 = float64(v3) } } return x3 @@ -112224,7 +112238,7 @@ func Xsincos(tls *TLS, x3 float64, sin uintptr, cos uintptr) { } else { v3 = x3 + Float64FromFloat32(1.329227995784916e+36) } - y2 = v3 + y2 = float64(v3) } } *(*float64)(unsafe.Pointer(sin)) = x3 @@ -112325,33 +112339,33 @@ func Xsincosf(tls *TLS, x3 float32, sin uintptr, cos uintptr) { *(*float32)(unsafe.Pointer(cos)) = Float32FromFloat32(1) return } - *(*float32)(unsafe.Pointer(sin)) = X__sindf(tls, float64(x3)) - *(*float32)(unsafe.Pointer(cos)) = X__cosdf(tls, float64(x3)) + *(*float32)(unsafe.Pointer(sin)) = X__sindf(tls, float64(float64(x3))) + *(*float32)(unsafe.Pointer(cos)) = X__cosdf(tls, float64(float64(x3))) return } /* |x| ~<= 5*pi/4 */ if ix <= uint32(0x407b53d1) { if ix <= uint32(0x4016cbe3) { /* |x| ~<= 3pi/4 */ if sign != 0 { - *(*float32)(unsafe.Pointer(sin)) = -X__cosdf(tls, float64(x3)+_s1pio2) - *(*float32)(unsafe.Pointer(cos)) = X__sindf(tls, float64(x3)+_s1pio2) + *(*float32)(unsafe.Pointer(sin)) = -X__cosdf(tls, float64(float64(x3))+_s1pio2) + *(*float32)(unsafe.Pointer(cos)) = X__sindf(tls, float64(float64(x3))+_s1pio2) } else { - *(*float32)(unsafe.Pointer(sin)) = X__cosdf(tls, _s1pio2-float64(x3)) - *(*float32)(unsafe.Pointer(cos)) = X__sindf(tls, _s1pio2-float64(x3)) + *(*float32)(unsafe.Pointer(sin)) = X__cosdf(tls, _s1pio2-float64(float64(x3))) + *(*float32)(unsafe.Pointer(cos)) = X__sindf(tls, _s1pio2-float64(float64(x3))) } return } /* -sin(x+c) is not correct if x+c could be 0: -0 vs +0 */ if sign != 0 { - v4 = float64(x3) + _s2pio2 + v4 = float64(float64(x3)) + _s2pio2 } else { - v4 = float64(x3) - _s2pio2 + v4 = float64(float64(x3)) - _s2pio2 } *(*float32)(unsafe.Pointer(sin)) = -X__sindf(tls, v4) if sign != 0 { - v5 = float64(x3) + _s2pio2 + v5 = float64(float64(x3)) + _s2pio2 } else { - v5 = float64(x3) - _s2pio2 + v5 = float64(float64(x3)) - _s2pio2 } *(*float32)(unsafe.Pointer(cos)) = -X__cosdf(tls, v5) return @@ -112360,24 +112374,24 @@ func Xsincosf(tls *TLS, x3 float32, sin uintptr, cos uintptr) { if ix <= uint32(0x40e231d5) { if ix <= uint32(0x40afeddf) { /* |x| ~<= 7*pi/4 */ if sign != 0 { - *(*float32)(unsafe.Pointer(sin)) = X__cosdf(tls, float64(x3)+_s3pio2) - *(*float32)(unsafe.Pointer(cos)) = -X__sindf(tls, float64(x3)+_s3pio2) + *(*float32)(unsafe.Pointer(sin)) = X__cosdf(tls, float64(float64(x3))+_s3pio2) + *(*float32)(unsafe.Pointer(cos)) = -X__sindf(tls, float64(float64(x3))+_s3pio2) } else { - *(*float32)(unsafe.Pointer(sin)) = -X__cosdf(tls, float64(x3)-_s3pio2) - *(*float32)(unsafe.Pointer(cos)) = X__sindf(tls, float64(x3)-_s3pio2) + *(*float32)(unsafe.Pointer(sin)) = -X__cosdf(tls, float64(float64(x3))-_s3pio2) + *(*float32)(unsafe.Pointer(cos)) = X__sindf(tls, float64(float64(x3))-_s3pio2) } return } if sign != 0 { - v6 = float64(x3) + _s4pio2 + v6 = float64(float64(x3)) + _s4pio2 } else { - v6 = float64(x3) - _s4pio2 + v6 = float64(float64(x3)) - _s4pio2 } *(*float32)(unsafe.Pointer(sin)) = X__sindf(tls, v6) if sign != 0 { - v7 = float64(x3) + _s4pio2 + v7 = float64(float64(x3)) + _s4pio2 } else { - v7 = float64(x3) - _s4pio2 + v7 = float64(float64(x3)) - _s4pio2 } *(*float32)(unsafe.Pointer(cos)) = X__cosdf(tls, v7) return @@ -112422,9 +112436,9 @@ func Xsincosl(tls *TLS, x float64, sin uintptr, cos uintptr) { defer tls.Free(16) var _ /* cosd at bp+8 */ float64 var _ /* sind at bp+0 */ float64 - Xsincos(tls, x, bp, bp+8) - *(*float64)(unsafe.Pointer(sin)) = *(*float64)(unsafe.Pointer(bp)) - *(*float64)(unsafe.Pointer(cos)) = *(*float64)(unsafe.Pointer(bp + 8)) + Xsincos(tls, float64(float64(x)), bp, bp+8) + *(*float64)(unsafe.Pointer(sin)) = float64(*(*float64)(unsafe.Pointer(bp))) + *(*float64)(unsafe.Pointer(cos)) = float64(*(*float64)(unsafe.Pointer(bp + 8))) } const M_PI_27 = 1.5707963267948966 @@ -112483,35 +112497,35 @@ func Xsinf(tls *TLS, x3 float32) (r float32) { } return x3 } - return X__sindf(tls, float64(x3)) + return X__sindf(tls, float64(float64(x3))) } if ix <= uint32(0x407b53d1) { /* |x| ~<= 5*pi/4 */ if ix <= uint32(0x4016cbe3) { /* |x| ~<= 3pi/4 */ if sign != 0 { - return -X__cosdf(tls, float64(x3)+_s1pio21) + return -X__cosdf(tls, float64(float64(x3))+_s1pio21) } else { - return X__cosdf(tls, float64(x3)-_s1pio21) + return X__cosdf(tls, float64(float64(x3))-_s1pio21) } } if sign != 0 { - v4 = -(float64(x3) + _s2pio21) + v4 = -(float64(float64(x3)) + _s2pio21) } else { - v4 = -(float64(x3) - _s2pio21) + v4 = -(float64(float64(x3)) - _s2pio21) } return X__sindf(tls, v4) } if ix <= uint32(0x40e231d5) { /* |x| ~<= 9*pi/4 */ if ix <= uint32(0x40afeddf) { /* |x| ~<= 7*pi/4 */ if sign != 0 { - return X__cosdf(tls, float64(x3)+_s3pio21) + return X__cosdf(tls, float64(float64(x3))+_s3pio21) } else { - return -X__cosdf(tls, float64(x3)-_s3pio21) + return -X__cosdf(tls, float64(float64(x3))-_s3pio21) } } if sign != 0 { - v5 = float64(x3) + _s4pio21 + v5 = float64(float64(x3)) + _s4pio21 } else { - v5 = float64(x3) - _s4pio21 + v5 = float64(float64(x3)) - _s4pio21 } return X__sindf(tls, v5) } @@ -112643,7 +112657,7 @@ func Xsinhl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xsinh(tls, x) + return float64(Xsinh(tls, float64(float64(x)))) } func Xsinl(tls *TLS, x float64) (r float64) { @@ -112651,7 +112665,7 @@ func Xsinl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xsin(tls, x) + return float64(Xsin(tls, float64(float64(x)))) } const FENV_SUPPORT = 1 @@ -112660,7 +112674,7 @@ const FENV_SUPPORT = 1 // // /* returns a*b*2^-32 - e, with error 0 <= e < 1. */ func _mul32(tls *TLS, a Tuint32_t, b Tuint32_t) (r Tuint32_t) { - return uint32(uint64(a) * uint64(b) >> int32(32)) + return uint32(uint64(uint64(a)) * uint64(uint64(b)) >> int32(32)) } // C documentation @@ -112719,17 +112733,17 @@ func Xsqrt(tls *TLS, x1 float64) (r1 float64) { i = ix >> Int32FromInt32(46) % uint64(128) r = uint64(uint32(X__rsqrt_tab[i]) << int32(16)) /* |r sqrt(m) - 1| < 0x1.fdp-9 */ - s = uint64(_mul32(tls, uint32(m>>int32(32)), uint32(r))) + s = uint64(_mul32(tls, uint32(m>>int32(32)), uint32(uint32(r)))) /* |s/sqrt(m) - 1| < 0x1.fdp-9 */ - d = uint64(_mul32(tls, uint32(s), uint32(r))) + d = uint64(_mul32(tls, uint32(uint32(s)), uint32(uint32(r)))) u = _three - d - r = uint64(_mul32(tls, uint32(r), uint32(u)) << int32(1)) + r = uint64(_mul32(tls, uint32(uint32(r)), uint32(uint32(u))) << int32(1)) /* |r sqrt(m) - 1| < 0x1.7bp-16 */ - s = uint64(_mul32(tls, uint32(s), uint32(u)) << int32(1)) + s = uint64(_mul32(tls, uint32(uint32(s)), uint32(uint32(u))) << int32(1)) /* |s/sqrt(m) - 1| < 0x1.7bp-16 */ - d = uint64(_mul32(tls, uint32(s), uint32(r))) + d = uint64(_mul32(tls, uint32(uint32(s)), uint32(uint32(r)))) u = _three - d - r = uint64(_mul32(tls, uint32(r), uint32(u)) << int32(1)) + r = uint64(_mul32(tls, uint32(uint32(r)), uint32(uint32(u))) << int32(1)) /* |r sqrt(m) - 1| < 0x1.3704p-29 (measured worst-case) */ r = r << int32(32) s = _mul64(tls, m, r) @@ -112823,7 +112837,7 @@ func Xsqrt(tls *TLS, x1 float64) (r1 float64) { var _three = uint64(0xc0000000) func _mul321(tls *TLS, a Tuint32_t, b Tuint32_t) (r Tuint32_t) { - return uint32(uint64(a) * uint64(b) >> int32(32)) + return uint32(uint64(uint64(a)) * uint64(uint64(b)) >> int32(32)) } /* see sqrt.c for more detailed comments. */ @@ -112919,7 +112933,7 @@ func Xsqrtl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xsqrt(tls, x) + return float64(Xsqrt(tls, float64(float64(x)))) } func Xtan(tls *TLS, x3 float64) (r float64) { @@ -112962,7 +112976,7 @@ func Xtan(tls *TLS, x3 float64) (r float64) { } else { v3 = x3 + Float64FromFloat32(1.329227995784916e+36) } - y2 = v3 + y2 = float64(v3) } } return x3 @@ -113034,21 +113048,21 @@ func Xtanf(tls *TLS, x3 float32) (r float32) { } return x3 } - return X__tandf(tls, float64(x3), 0) + return X__tandf(tls, float64(float64(x3)), 0) } if ix <= uint32(0x407b53d1) { /* |x| ~<= 5*pi/4 */ if ix <= uint32(0x4016cbe3) { /* |x| ~<= 3pi/4 */ if sign != 0 { - v4 = float64(x3) + _t1pio2 + v4 = float64(float64(x3)) + _t1pio2 } else { - v4 = float64(x3) - _t1pio2 + v4 = float64(float64(x3)) - _t1pio2 } return X__tandf(tls, v4, int32(1)) } else { if sign != 0 { - v5 = float64(x3) + _t2pio2 + v5 = float64(float64(x3)) + _t2pio2 } else { - v5 = float64(x3) - _t2pio2 + v5 = float64(float64(x3)) - _t2pio2 } return X__tandf(tls, v5, 0) } @@ -113056,16 +113070,16 @@ func Xtanf(tls *TLS, x3 float32) (r float32) { if ix <= uint32(0x40e231d5) { /* |x| ~<= 9*pi/4 */ if ix <= uint32(0x40afeddf) { /* |x| ~<= 7*pi/4 */ if sign != 0 { - v6 = float64(x3) + _t3pio2 + v6 = float64(float64(x3)) + _t3pio2 } else { - v6 = float64(x3) - _t3pio2 + v6 = float64(float64(x3)) - _t3pio2 } return X__tandf(tls, v6, int32(1)) } else { if sign != 0 { - v7 = float64(x3) + _t4pio2 + v7 = float64(float64(x3)) + _t4pio2 } else { - v7 = float64(x3) - _t4pio2 + v7 = float64(float64(x3)) - _t4pio2 } return X__tandf(tls, v7, 0) } @@ -113141,12 +113155,12 @@ func Xtanh(tls *TLS, x3 float64) (r float64) { /* |x| is subnormal */ /* note: the branch above would not raise underflow in [0x1p-1023,0x1p-1022) */ if uint64(4) == uint64(4) { - y = float32(x3) + y = float32(float32(x3)) } else { if uint64(4) == uint64(8) { - y1 = float64(float32(x3)) + y1 = float64(float32(float32(x3))) } else { - y2 = float64(float32(x3)) + y2 = float64(float32(float32(x3))) } } t = x3 @@ -113237,7 +113251,7 @@ func Xtanhl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xtanh(tls, x) + return float64(Xtanh(tls, float64(float64(x)))) } func Xtanl(tls *TLS, x float64) (r float64) { @@ -113245,7 +113259,7 @@ func Xtanl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xtan(tls, x) + return float64(Xtan(tls, float64(float64(x)))) } const N10 = 12 @@ -113265,7 +113279,7 @@ func _sinpi(tls *TLS, x float64) (r float64) { /* reduce x into [-.25,.25] */ n = int32(Float64FromInt32(4) * x) n = (n + int32(1)) / int32(2) - x -= float64(n) * float64(0.5) + x -= float64(float64(n)) * float64(0.5) x *= _pi4 switch n { default: /* case 4 */ @@ -113428,7 +113442,7 @@ func Xtgamma(tls *TLS, x3 float64) (r1 float64) { return Float64FromInt32(0) / Float64FromFloat64(0) } if x3 <= float64(Uint64FromInt64(184)/Uint64FromInt64(8)) { - return _fact[int32(x3)-int32(1)] + return _fact[int32(int32(x3))-int32(1)] } } /* x >= 172: tgamma(x)=inf with overflow */ @@ -113487,7 +113501,7 @@ func Xtgammaf(tls *TLS, x float32) (r float32) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return float32(Xtgamma(tls, float64(x))) + return float32(Xtgamma(tls, float64(float64(x)))) } func Xtgammal(tls *TLS, x float64) (r float64) { @@ -113495,7 +113509,7 @@ func Xtgammal(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xtgamma(tls, x) + return float64(Xtgamma(tls, float64(float64(x)))) } func Xtrunc(tls *TLS, x3 float64) (r float64) { @@ -113529,7 +113543,7 @@ func Xtrunc(tls *TLS, x3 float64) (r float64) { if e < int32(12) { e = int32(1) } - m = -Uint64FromUint64(1) >> e + m = uint64(-Uint64FromUint64(1) >> e) if *(*Tuint64_t)(unsafe.Pointer(bp))&m == uint64(0) { return x3 } @@ -113539,7 +113553,7 @@ func Xtrunc(tls *TLS, x3 float64) (r float64) { if uint64(8) == uint64(8) { y1 = x3 + Float64FromFloat32(1.329227995784916e+36) } else { - y2 = x3 + Float64FromFloat32(1.329227995784916e+36) + y2 = float64(x3 + Float64FromFloat32(1.329227995784916e+36)) } } *(*Tuint64_t)(unsafe.Pointer(bp)) &= ^m @@ -113599,7 +113613,7 @@ func Xtruncl(tls *TLS, x float64) (r float64) { trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) defer func() { trc("-> %v", r) }() } - return Xtrunc(tls, x) + return float64(Xtrunc(tls, float64(float64(x)))) } var _digits = [65]int8{'.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'} @@ -113623,14 +113637,14 @@ func Xa64l(tls *TLS, s uintptr) (r int64) { if !(d != 0) { break } - x |= uint32(int64(d)-t__predefined_ptrdiff_t(uintptr(unsafe.Pointer(&_digits)))) << e + x |= uint32(int64(int64(d))-t__predefined_ptrdiff_t(uintptr(unsafe.Pointer(&_digits)))) << e goto _1 _1: ; e += int32(6) s++ } - return int64(int32(x)) + return int64(int32(int32(x))) } func Xl64a(tls *TLS, x0 int64) (r uintptr) { @@ -113641,7 +113655,7 @@ func Xl64a(tls *TLS, x0 int64) (r uintptr) { var p uintptr var x Tuint32_t _, _ = p, x - x = uint32(x0) + x = uint32(uint32(x0)) p = uintptr(unsafe.Pointer(&_s)) for { if !(x != 0) { @@ -113760,7 +113774,7 @@ func Xffs(tls *TLS, i int32) (r int32) { var v1 int32 _ = v1 if i != 0 { - v1 = _a_ctz_l(tls, uint64(i)) + int32(1) + v1 = _a_ctz_l(tls, uint64(uint64(i))) + int32(1) } else { v1 = 0 } @@ -113775,7 +113789,7 @@ func Xffsl(tls *TLS, i int64) (r int32) { var v1 int32 _ = v1 if i != 0 { - v1 = _a_ctz_l(tls, uint64(i)) + int32(1) + v1 = _a_ctz_l(tls, uint64(uint64(i))) + int32(1) } else { v1 = 0 } @@ -113791,7 +113805,7 @@ func Xffsll(tls *TLS, i int64) (r int32) { var v2 Tuint64_t _, _, _ = v1, v2, v3 if i != 0 { - v2 = uint64(i) + v2 = uint64(uint64(i)) // __asm__( "bsf %1,%0" : "=r"(x) : "r"(x) ); X__assert_fail(tls, __ccgo_ts+212, __ccgo_ts+247, 114, __ccgo_ts+589) v3 = int32(v2) @@ -114124,7 +114138,7 @@ func Xgetentropy(tls *TLS, buffer uintptr, len1 Tsize_t) (r int32) { } } pos += uintptr(ret) - len1 -= uint64(ret) + len1 -= uint64(uint64(ret)) ret = 0 } _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) @@ -114240,7 +114254,7 @@ func Xgetopt(tls *TLS, argc int32, argv uintptr, optstring uintptr) (r int32) { if *(*Twchar_t)(unsafe.Pointer(bp + 4)) != *(*Twchar_t)(unsafe.Pointer(bp)) || *(*Twchar_t)(unsafe.Pointer(bp)) == int32(':') { Xoptopt = *(*Twchar_t)(unsafe.Pointer(bp)) if int32(*(*int8)(unsafe.Pointer(optstring))) != int32(':') && Xopterr != 0 { - X__getopt_msg(tls, *(*uintptr)(unsafe.Pointer(argv)), __ccgo_ts+713, optchar, uint64(k)) + X__getopt_msg(tls, *(*uintptr)(unsafe.Pointer(argv)), __ccgo_ts+713, optchar, uint64(uint64(k))) } return int32('?') } @@ -114261,7 +114275,7 @@ func Xgetopt(tls *TLS, argc int32, argv uintptr, optstring uintptr) (r int32) { return int32(':') } if Xopterr != 0 { - X__getopt_msg(tls, *(*uintptr)(unsafe.Pointer(argv)), __ccgo_ts+737, optchar, uint64(k)) + X__getopt_msg(tls, *(*uintptr)(unsafe.Pointer(argv)), __ccgo_ts+737, optchar, uint64(uint64(k))) } return int32('?') } @@ -114395,8 +114409,8 @@ func ___getopt_long_core(tls *TLS, argc int32, argv uintptr, optstring uintptr, ; i++ } - if cnt == int32(1) && longonly != 0 && int64(arg)-int64(start) == int64(Xmblen(tls, start, uint64(MB_LEN_MAX))) { - l = int32(int64(arg) - int64(start)) + if cnt == int32(1) && longonly != 0 && int64(int64(arg))-int64(int64(start)) == int64(Xmblen(tls, start, uint64(MB_LEN_MAX))) { + l = int32(int64(int64(arg)) - int64(int64(start))) i = 0 for { if !(*(*int8)(unsafe.Pointer(optstring + uintptr(i))) != 0) { @@ -114555,13 +114569,13 @@ func Xgetrlimit(tls *TLS, resource int32, rlim uintptr) (r int32) { if (*(*[2]uint64)(unsafe.Pointer(bp)))[0] == -Uint64FromUint64(1) { v1 = ^Uint64FromUint64(0) } else { - v1 = (*(*[2]uint64)(unsafe.Pointer(bp)))[0] + v1 = uint64((*(*[2]uint64)(unsafe.Pointer(bp)))[0]) } (*Trlimit)(unsafe.Pointer(rlim)).Frlim_cur = v1 if (*(*[2]uint64)(unsafe.Pointer(bp)))[int32(1)] == -Uint64FromUint64(1) { v2 = ^Uint64FromUint64(0) } else { - v2 = (*(*[2]uint64)(unsafe.Pointer(bp)))[int32(1)] + v2 = uint64((*(*[2]uint64)(unsafe.Pointer(bp)))[int32(1)]) } (*Trlimit)(unsafe.Pointer(rlim)).Frlim_max = v2 if (*Trlimit)(unsafe.Pointer(rlim)).Frlim_cur >= ^Uint64FromUint64(0) { @@ -114597,7 +114611,7 @@ func Xgetrusage(tls *TLS, who int32, ru uintptr) (r1 int32) { Ftv_usec: (*(*[4]int64)(unsafe.Pointer(bp)))[int32(3)], } } - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } func Xgetsubopt(tls *TLS, opt uintptr, keys uintptr, val uintptr) (r int32) { @@ -114924,9 +114938,9 @@ func _convert_ioctl_struct(tls *TLS, map1 uintptr, old uintptr, new1 uintptr, di ts_offset = int32(*(*uint8)(unsafe.Pointer(map1 + 12 + uintptr(i)))) len1 = ts_offset - old_offset if dir == int32(W) { - Xmemcpy(tls, old+uintptr(old_offset), new1+uintptr(new_offset), uint64(len1)) + Xmemcpy(tls, old+uintptr(old_offset), new1+uintptr(new_offset), uint64(uint64(len1))) } else { - Xmemcpy(tls, new1+uintptr(new_offset), old+uintptr(old_offset), uint64(len1)) + Xmemcpy(tls, new1+uintptr(new_offset), old+uintptr(old_offset), uint64(uint64(len1))) } new_offset += len1 old_offset += len1 @@ -114939,11 +114953,11 @@ func _convert_ioctl_struct(tls *TLS, map1 uintptr, old uintptr, new1 uintptr, di new_offset += (align - int32(1)) & -new_offset if dir == int32(W) { Xmemcpy(tls, bp, new1+uintptr(new_offset), uint64(8)) - *(*int64)(unsafe.Pointer(bp + 8)) = *(*int64)(unsafe.Pointer(bp)) + *(*int64)(unsafe.Pointer(bp + 8)) = int64(*(*int64)(unsafe.Pointer(bp))) Xmemcpy(tls, old+uintptr(old_offset), bp+8, uint64(8)) } else { Xmemcpy(tls, bp+8, old+uintptr(old_offset), uint64(8)) - *(*int64)(unsafe.Pointer(bp)) = *(*int64)(unsafe.Pointer(bp + 8)) + *(*int64)(unsafe.Pointer(bp)) = int64(*(*int64)(unsafe.Pointer(bp + 8))) Xmemcpy(tls, new1+uintptr(new_offset), bp, uint64(8)) } new_offset = int32(uint64(new_offset) + Uint64FromInt64(8)) @@ -114983,7 +114997,7 @@ func Xioctl(tls *TLS, fd int32, req int32, va uintptr) (r1 int32) { if Bool(Bool(int32(SIOCGSTAMP) != int32(SIOCGSTAMP_OLD)) && req != 0) && r == -int32(ENOTTY) { i = 0 for { - if !(uint64(i) < Uint64FromInt64(400)/Uint64FromInt64(20)) { + if !(uint64(uint64(i)) < Uint64FromInt64(400)/Uint64FromInt64(20)) { break } if _compat_map[i].Fnew_req != req { @@ -115002,7 +115016,7 @@ func Xioctl(tls *TLS, fd int32, req int32, va uintptr) (r1 int32) { i++ } } - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } func Xissetugid(tls *TLS) (r int32) { @@ -115188,7 +115202,7 @@ func _unescape_ent(tls *TLS, beg uintptr) (r uintptr) { if cval != 0 { v7 = dest dest++ - *(*int8)(unsafe.Pointer(v7)) = int8(cval) + *(*int8)(unsafe.Pointer(v7)) = int8(int8(cval)) src = val } else { v8 = dest @@ -115240,7 +115254,7 @@ func Xgetmntent_r(tls *TLS, f uintptr, mnt uintptr, linebuf uintptr, buflen int3 if !(i < Uint64FromInt64(32)/Uint64FromInt64(4)) { break } - (*(*[8]int32)(unsafe.Pointer(bp)))[i] = int32(len1) + (*(*[8]int32)(unsafe.Pointer(bp)))[i] = int32(int32(len1)) goto _1 _1: ; @@ -115391,7 +115405,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h ; k-- } - (*(*TFTW)(unsafe.Pointer(bp + 176))).Fbase = int32(k) + (*(*TFTW)(unsafe.Pointer(bp + 176))).Fbase = int32(int32(k)) } if type1 == int32(FTW_D) || type1 == int32(FTW_DP) { dfd = Xopen(tls, path, O_RDONLY, 0) @@ -115538,6 +115552,7 @@ func Xopenpty(tls *TLS, pm uintptr, ps uintptr, name uintptr, tio uintptr, ws ui *(*int32)(unsafe.Pointer(ps)) = s _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 4)), uintptr(0)) return 0 + goto fail fail: ; Xclose(tls, m) @@ -115635,7 +115650,7 @@ func _slash_len(tls *TLS, s uintptr) (r Tsize_t) { for int32(*(*int8)(unsafe.Pointer(s))) == int32('/') { s++ } - return uint64(int64(s) - int64(s0)) + return uint64(int64(int64(s)) - int64(int64(s0))) } func Xrealpath(tls *TLS, filename uintptr, resolved uintptr) (r uintptr) { @@ -115674,6 +115689,7 @@ func Xrealpath(tls *TLS, filename uintptr, resolved uintptr) (r uintptr) { * remaining path components and consumes any slashes that follow. * If not a link, it's moved to output; if a link, contents are * pushed to the stack. */ + goto restart restart: ; _3: @@ -115697,7 +115713,7 @@ _3: goto _2 } z = X__strchrnul(tls, bp+uintptr(p), int32('/')) - v6 = uint64(int64(z) - int64(bp+uintptr(p))) + v6 = uint64(int64(int64(z)) - int64(bp+uintptr(p))) l = v6 l0 = v6 if !(l != 0) && !(check_dir != 0) { @@ -115745,7 +115761,7 @@ _3: } } k = Xreadlink(tls, bp+4097, bp, p) - if uint64(k) == p { + if uint64(uint64(k)) == p { goto toolong } if !(k != 0) { @@ -115758,6 +115774,7 @@ _3: if *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(EINVAL) { return uintptr(0) } + goto skip_readlink skip_readlink: ; check_dir = 0 @@ -115790,8 +115807,8 @@ _8: p++ } } - p -= uint64(k) - Xmemmove(tls, bp+uintptr(p), bp, uint64(k)) + p -= uint64(uint64(k)) + Xmemmove(tls, bp+uintptr(p), bp, uint64(uint64(k))) /* Skip the stack advancement in case we have a new * absolute base path. */ goto restart @@ -115845,6 +115862,7 @@ _1: } else { return Xstrdup(tls, bp+4097) } + goto toolong toolong: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENAMETOOLONG) @@ -115907,7 +115925,7 @@ func Xsetrlimit(tls *TLS, resource int32, rlim uintptr) (r int32) { } ret = int32(X__syscall4(tls, int64(SYS_prlimit64), int64(Int32FromInt32(0)), int64(resource), int64(rlim), int64(Int32FromInt32(0)))) if ret != -int32(ENOSYS) { - return int32(X__syscall_ret(tls, uint64(ret))) + return int32(X__syscall_ret(tls, uint64(uint64(ret)))) } if (*Trlimit)(unsafe.Pointer(rlim)).Frlim_cur < ^Uint64FromUint64(0) { v1 = (*Trlimit)(unsafe.Pointer(rlim)).Frlim_cur @@ -115921,8 +115939,8 @@ func Xsetrlimit(tls *TLS, resource int32, rlim uintptr) (r int32) { } *(*Tctx)(unsafe.Pointer(bp + 16)) = Tctx{ Flim: [2]uint64{ - 0: v1, - 1: v2, + 0: uint64(v1), + 1: uint64(v2), }, Fres: resource, Ferr: -int32(1), @@ -116381,9 +116399,9 @@ func __vsyslog(tls *TLS, priority int32, message uintptr, ap Tva_list) { pid = v1 l = Xsnprintf(tls, bp+80, uint64(1024), __ccgo_ts+947, VaList(bp+1120, priority, bp, bp+1104, uintptr(unsafe.Pointer(&_log_ident)), __ccgo_ts+969+BoolUintptr(!(pid != 0)), pid, __ccgo_ts+971+BoolUintptr(!(pid != 0)))) *(*int32)(unsafe.Pointer(X__errno_location(tls))) = errno_save - l2 = Xvsnprintf(tls, bp+80+uintptr(l), uint64(1024)-uint64(l), message, ap) + l2 = Xvsnprintf(tls, bp+80+uintptr(l), uint64(1024)-uint64(uint64(l)), message, ap) if l2 >= 0 { - if uint64(l2) >= uint64(1024)-uint64(l) { + if uint64(uint64(l2)) >= uint64(1024)-uint64(uint64(l)) { l = int32(Uint64FromInt64(1024) - Uint64FromInt32(1)) } else { l += l2 @@ -116393,7 +116411,7 @@ func __vsyslog(tls *TLS, priority int32, message uintptr, ap Tva_list) { l++ (*(*[1024]int8)(unsafe.Pointer(bp + 80)))[v2] = int8('\n') } - if Xsend(tls, _log_fd, bp+80, uint64(l), 0) < 0 && (!(_is_lost_conn(tls, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0) || Xconnect(tls, _log_fd, uintptr(unsafe.Pointer(&_log_addr)), uint32(12)) < 0 || Xsend(tls, _log_fd, bp+80, uint64(l), 0) < 0) && _log_opt&int32(LOG_CONS) != 0 { + if Xsend(tls, _log_fd, bp+80, uint64(uint64(l)), 0) < 0 && (!(_is_lost_conn(tls, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0) || Xconnect(tls, _log_fd, uintptr(unsafe.Pointer(&_log_addr)), uint32(12)) < 0 || Xsend(tls, _log_fd, bp+80, uint64(uint64(l)), 0) < 0) && _log_opt&int32(LOG_CONS) != 0 { fd = Xopen(tls, __ccgo_ts+666, Int32FromInt32(O_WRONLY)|Int32FromInt32(O_NOCTTY)|Int32FromInt32(O_CLOEXEC), 0) if fd >= 0 { Xdprintf(tls, fd, __ccgo_ts+973, VaList(bp+1120, l-*(*int32)(unsafe.Pointer(bp + 1104)), bp+80+uintptr(*(*int32)(unsafe.Pointer(bp + 1104))))) @@ -116501,7 +116519,7 @@ func X__mmap(tls *TLS, start uintptr, len1 Tsize_t, prot int32, flags int32, fd } var ret int64 _ = ret - if uint64(off)&(-Uint64FromUint64(0x2000)<<(Uint64FromInt32(8)*Uint64FromInt64(8)-Uint64FromInt32(1))|(Uint64FromUint64(4096)-Uint64FromInt32(1))) != 0 { + if uint64(uint64(off))&(-Uint64FromUint64(0x2000)<<(Uint64FromInt32(8)*Uint64FromInt64(8)-Uint64FromInt32(1))|(Uint64FromUint64(4096)-Uint64FromInt32(1))) != 0 { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) return uintptr(-Int32FromInt32(1)) } @@ -116517,7 +116535,7 @@ func X__mmap(tls *TLS, start uintptr, len1 Tsize_t, prot int32, flags int32, fd if ret == int64(-int32(EPERM)) && !(start != 0) && flags&int32(MAP_ANON) != 0 && !(flags&Int32FromInt32(MAP_FIXED) != 0) { ret = int64(-int32(ENOMEM)) } - return uintptr(X__syscall_ret(tls, uint64(ret))) + return uintptr(X__syscall_ret(tls, uint64(uint64(ret)))) } func Xmmap(tls *TLS, start uintptr, len1 Tsize_t, prot int32, flags int32, fd int32, off Toff_t) (r uintptr) { @@ -116535,7 +116553,7 @@ func X__mprotect(tls *TLS, addr uintptr, len1 Tsize_t, prot int32) (r int32) { } var end, start Tsize_t _, _ = end, start - start = uint64(addr) & uint64(-Int32FromInt32(PAGESIZE)) + start = uint64(uint64(addr)) & uint64(-Int32FromInt32(PAGESIZE)) end = uint64(addr+uintptr(len1)+UintptrFromInt32(PAGESIZE)-UintptrFromInt32(1)) & uint64(-Int32FromInt32(PAGESIZE)) return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_mprotect), int64(start), int64(end-start), int64(prot))))) } @@ -116648,16 +116666,16 @@ func X__shm_mapname(tls *TLS, name uintptr, buf uintptr) (r uintptr) { } v1 = X__strchrnul(tls, name, int32('/')) p = v1 - if *(*int8)(unsafe.Pointer(v1)) != 0 || p == name || int64(p)-int64(name) <= int64(2) && int32(*(*int8)(unsafe.Pointer(name))) == int32('.') && int32(*(*int8)(unsafe.Pointer(p + uintptr(-Int32FromInt32(1))))) == int32('.') { + if *(*int8)(unsafe.Pointer(v1)) != 0 || p == name || int64(int64(p))-int64(int64(name)) <= int64(2) && int32(*(*int8)(unsafe.Pointer(name))) == int32('.') && int32(*(*int8)(unsafe.Pointer(p + uintptr(-Int32FromInt32(1))))) == int32('.') { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) return uintptr(0) } - if int64(p)-int64(name) > int64(NAME_MAX) { + if int64(int64(p))-int64(int64(name)) > int64(NAME_MAX) { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENAMETOOLONG) return uintptr(0) } Xmemcpy(tls, buf, __ccgo_ts+978, uint64(9)) - Xmemcpy(tls, buf+uintptr(9), name, uint64(int64(p)-int64(name)+int64(1))) + Xmemcpy(tls, buf+uintptr(9), name, uint64(int64(int64(p))-int64(int64(name))+int64(1))) return buf } @@ -116723,11 +116741,11 @@ func Xbtowc(tls *TLS, c int32) (r Twint_t) { var b, v3 int32 var v1, v2 uint32 _, _, _, _ = b, v1, v2, v3 - b = int32(uint8(c)) - if uint32(b) < uint32(128) { - v1 = uint32(b) + b = int32(uint8(uint8(c))) + if uint32(uint32(b)) < uint32(128) { + v1 = uint32(uint32(b)) } else { - if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale)) != 0) { + if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Flocale)) != 0) { v3 = int32(4) } else { v3 = int32(1) @@ -116764,21 +116782,22 @@ func Xc16rtomb(tls *TLS, s uintptr, c16 Tchar16_t, ps uintptr) (r Tsize_t) { } return uint64(1) } - if !(*(*uint32)(unsafe.Pointer(x)) != 0) && uint32(c16)-uint32(0xd800) < uint32(0x400) { - *(*uint32)(unsafe.Pointer(x)) = uint32((int32(c16) - int32(0xd7c0)) << int32(10)) + if !(*(*uint32)(unsafe.Pointer(x)) != 0) && uint32(uint32(c16))-uint32(0xd800) < uint32(0x400) { + *(*uint32)(unsafe.Pointer(x)) = uint32((int32(int32(c16)) - int32(0xd7c0)) << int32(10)) return uint64(0) } if *(*uint32)(unsafe.Pointer(x)) != 0 { - if uint32(c16)-uint32(0xdc00) >= uint32(0x400) { + if uint32(uint32(c16))-uint32(0xdc00) >= uint32(0x400) { goto ilseq } else { - wc = int32(*(*uint32)(unsafe.Pointer(x)) + uint32(c16) - uint32(0xdc00)) + wc = int32(*(*uint32)(unsafe.Pointer(x)) + uint32(uint32(c16)) - uint32(0xdc00)) } *(*uint32)(unsafe.Pointer(x)) = uint32(0) } else { - wc = int32(c16) + wc = int32(int32(c16)) } return Xwcrtomb(tls, s, wc, uintptr(0)) + goto ilseq ilseq: ; *(*uint32)(unsafe.Pointer(x)) = uint32(0) @@ -116793,7 +116812,7 @@ func Xc32rtomb(tls *TLS, s uintptr, c32 Tchar32_t, ps uintptr) (r Tsize_t) { trc("tls=%v s=%v c32=%v ps=%v, (%v:)", tls, s, c32, ps, origin(2)) defer func() { trc("-> %v", r) }() } - return Xwcrtomb(tls, s, int32(c32), ps) + return Xwcrtomb(tls, s, int32(int32(c32)), ps) } func Xmblen(tls *TLS, s uintptr, n Tsize_t) (r int32) { @@ -116927,7 +116946,7 @@ func Xmbrtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t, st uintptr) (r Tsize *(*Twchar_t)(unsafe.Pointer(wc)) = v1 return BoolUint64(!!(v1 != 0)) } - if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale)) != 0) { + if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Flocale)) != 0) { v2 = int32(4) } else { v2 = int32(1) @@ -116948,6 +116967,7 @@ func Xmbrtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t, st uintptr) (r Tsize if (int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)-int32(0x10)|(int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)+int32(c)>>Int32FromInt32(26))) & ^Int32FromInt32(7) != 0 { goto ilseq } + goto loop loop: ; v4 = s @@ -116956,7 +116976,7 @@ func Xmbrtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t, st uintptr) (r Tsize n-- if !(c&(Uint32FromUint32(1)<>int32(3)-int32(0x10)|(int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)+int32(c)>>Int32FromInt32(26))) & ^Int32FromInt32(7) != 0 { @@ -117188,7 +117210,7 @@ _15: *(*uintptr)(unsafe.Pointer(src)) = s return wn0 } - if uint32(*(*uint8)(unsafe.Pointer(s)))-uint32(1) < uint32(0x7f) && uint64(s)%uint64(4) == uint64(0) { + if uint32(*(*uint8)(unsafe.Pointer(s)))-uint32(1) < uint32(0x7f) && uint64(uint64(s))%uint64(4) == uint64(0) { for wn >= uint64(5) && !((*(*uint32)(unsafe.Pointer(s))|(*(*uint32)(unsafe.Pointer(s))-Uint32FromInt32(0x01010101)))&Uint32FromUint32(0x80808080) != 0) { v16 = ws ws += 4 @@ -117228,6 +117250,7 @@ _15: v26 = s s++ c = X__fsmu8[uint32(*(*uint8)(unsafe.Pointer(v26)))-uint32(0xc2)] + goto resume resume: ; if (int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)-int32(0x10)|(int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)+int32(c)>>Int32FromInt32(26))) & ^Int32FromInt32(7) != 0 { @@ -117257,7 +117280,7 @@ resume: } v30 = ws ws += 4 - *(*Twchar_t)(unsafe.Pointer(v30)) = int32(c) + *(*Twchar_t)(unsafe.Pointer(v30)) = int32(int32(c)) wn-- c = uint32(0) goto _14 @@ -117322,7 +117345,7 @@ func Xmbtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t) (r int32) { *(*Twchar_t)(unsafe.Pointer(wc)) = v1 return BoolInt32(!!(v1 != 0)) } - if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale)) != 0) { + if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Flocale)) != 0) { v2 = int32(4) } else { v2 = int32(1) @@ -117350,7 +117373,7 @@ func Xmbtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t) (r int32) { s++ c = c<= uint32(0x40) { @@ -117360,7 +117383,7 @@ func Xmbtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t) (r int32) { s++ c = c<= uint32(0x40) { @@ -117370,6 +117393,7 @@ func Xmbtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t) (r int32) { s++ *(*Twchar_t)(unsafe.Pointer(wc)) = int32(c<>Int32FromInt32(6)) *(*int8)(unsafe.Pointer(s)) = int8(int32(0x80) | wc&int32(0x3f)) return uint64(2) } else { - if uint32(wc) < uint32(0xd800) || uint32(wc)-uint32(0xe000) < uint32(0x2000) { + if uint32(uint32(wc)) < uint32(0xd800) || uint32(uint32(wc))-uint32(0xe000) < uint32(0x2000) { v3 = s s++ *(*int8)(unsafe.Pointer(v3)) = int8(int32(0xe0) | wc>>Int32FromInt32(12)) @@ -117421,7 +117445,7 @@ func Xwcrtomb(tls *TLS, s uintptr, wc Twchar_t, st uintptr) (r Tsize_t) { *(*int8)(unsafe.Pointer(s)) = int8(int32(0x80) | wc&int32(0x3f)) return uint64(3) } else { - if uint32(wc)-uint32(0x10000) < uint32(0x100000) { + if uint32(uint32(wc))-uint32(0x10000) < uint32(0x100000) { v5 = s s++ *(*int8)(unsafe.Pointer(v5)) = int8(int32(0xf0) | wc>>Int32FromInt32(18)) @@ -117596,15 +117620,15 @@ func Xwctob(tls *TLS, c Twint_t) (r int32) { var v1 int32 _ = v1 if c < uint32(128) { - return int32(c) + return int32(int32(c)) } - if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale)) != 0) { + if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Flocale)) != 0) { v1 = int32(4) } else { v1 = int32(1) } if v1 == int32(1) && c-uint32(0xdf80) < uint32(0x80) { - return int32(uint8(c)) + return int32(uint8(uint8(c))) } return -int32(1) } @@ -118696,12 +118720,12 @@ func _getoffs(tls *TLS, offs uintptr, base uintptr, s uintptr) (r int32) { if !(*(*uint8)(unsafe.Pointer(s)) != 0) { return i } - if int64(s)-int64(base) >= int64(0x4000) { + if int64(int64(s))-int64(int64(base)) >= int64(0x4000) { return 0 } v2 = i i++ - *(*int16)(unsafe.Pointer(offs + uintptr(v2)*2)) = int16(int64(s) - int64(base)) + *(*int16)(unsafe.Pointer(offs + uintptr(v2)*2)) = int16(int64(int64(s)) - int64(int64(base))) s += uintptr(int32(*(*uint8)(unsafe.Pointer(s))) + int32(1)) goto _1 _1: @@ -118768,7 +118792,7 @@ func _match(tls *TLS, offset uintptr, base uintptr, dn uintptr, end uintptr, len v3 = noff o = int32((*(*[128]int16)(unsafe.Pointer(bp)))[v3]) end -= uintptr(l) - if l != int32(*(*uint8)(unsafe.Pointer(base + uintptr(o)))) || Xmemcmp(tls, base+uintptr(o)+uintptr(1), end, uint64(l)) != 0 { + if l != int32(*(*uint8)(unsafe.Pointer(base + uintptr(o)))) || Xmemcmp(tls, base+uintptr(o)+uintptr(1), end, uint64(uint64(l))) != 0 { return m } *(*int32)(unsafe.Pointer(offset)) = o @@ -118813,7 +118837,7 @@ func Xdn_comp(tls *TLS, src uintptr, dst uintptr, space int32, dnptrs uintptr, l return int32(1) } end = src + uintptr(l) - n = _getlens(tls, bp+4, src, int32(l)) + n = _getlens(tls, bp+4, src, int32(int32(l))) if !(n != 0) { return -int32(1) } @@ -118828,7 +118852,7 @@ func Xdn_comp(tls *TLS, src uintptr, dst uintptr, space int32, dnptrs uintptr, l if m > bestlen { bestlen = m bestoff = *(*int32)(unsafe.Pointer(bp)) - if uint64(m) == l { + if uint64(uint64(m)) == l { break } } @@ -118839,15 +118863,15 @@ func Xdn_comp(tls *TLS, src uintptr, dst uintptr, space int32, dnptrs uintptr, l } } /* encode unmatched part */ - if uint64(space) < l-uint64(bestlen)+uint64(2)+BoolUint64(uint64(bestlen-Int32FromInt32(1)) < l-Uint64FromInt32(1)) { + if uint64(uint64(space)) < l-uint64(uint64(bestlen))+uint64(2)+BoolUint64(uint64(bestlen-Int32FromInt32(1)) < l-Uint64FromInt32(1)) { return -int32(1) } - Xmemcpy(tls, dst+uintptr(1), src, l-uint64(bestlen)) + Xmemcpy(tls, dst+uintptr(1), src, l-uint64(uint64(bestlen))) v3 = Int32FromInt32(0) j = v3 i = v3 for { - if !(uint64(i) < l-uint64(bestlen)) { + if !(uint64(uint64(i)) < l-uint64(uint64(bestlen))) { break } *(*uint8)(unsafe.Pointer(dst + uintptr(i))) = (*(*[127]uint8)(unsafe.Pointer(bp + 4)))[j] @@ -118865,7 +118889,7 @@ func Xdn_comp(tls *TLS, src uintptr, dst uintptr, space int32, dnptrs uintptr, l *(*uint8)(unsafe.Pointer(dst + uintptr(v5))) = uint8(int32(0xc0) | bestoff>>int32(8)) v6 = i i++ - *(*uint8)(unsafe.Pointer(dst + uintptr(v6))) = uint8(bestoff) + *(*uint8)(unsafe.Pointer(dst + uintptr(v6))) = uint8(uint8(bestoff)) } else { v7 = i i++ @@ -118909,7 +118933,7 @@ func X__dn_expand(tls *TLS, base uintptr, end uintptr, src uintptr, dest uintptr /* detect reference loop using an iteration counter */ i = 0 for { - if !(int64(i) < int64(end)-int64(base)) { + if !(int64(int64(i)) < int64(int64(end))-int64(int64(base))) { break } /* loop invariants: p= int64(end)-int64(base) { + if int64(int64(j)) >= int64(int64(end))-int64(int64(base)) { return -int32(1) } p = base + uintptr(j) @@ -118935,7 +118959,7 @@ func X__dn_expand(tls *TLS, base uintptr, end uintptr, src uintptr, dest uintptr v4 = p p++ j = int32(*(*uint8)(unsafe.Pointer(v4))) - if int64(j) >= int64(end)-int64(p) || int64(j) >= int64(dend)-int64(dest) { + if int64(int64(j)) >= int64(int64(end))-int64(int64(p)) || int64(int64(j)) >= int64(int64(dend))-int64(int64(dest)) { return -int32(1) } for { @@ -118953,7 +118977,7 @@ func X__dn_expand(tls *TLS, base uintptr, end uintptr, src uintptr, dest uintptr } else { *(*int8)(unsafe.Pointer(dest)) = 0 if len1 < 0 { - len1 = int32(int64(p+uintptr(1)) - int64(src)) + len1 = int32(int64(p+uintptr(1)) - int64(int64(src))) } return len1 } @@ -118984,16 +119008,16 @@ func Xdn_skipname(tls *TLS, s uintptr, end uintptr) (r int32) { p = s for p < end { if !(*(*uint8)(unsafe.Pointer(p)) != 0) { - return int32(int64(p) - int64(s) + int64(1)) + return int32(int64(int64(p)) - int64(int64(s)) + int64(1)) } else { if int32(*(*uint8)(unsafe.Pointer(p))) >= int32(192) { if p+uintptr(1) < end { - return int32(int64(p) - int64(s) + int64(2)) + return int32(int64(int64(p)) - int64(int64(s)) + int64(2)) } else { break } } else { - if int64(end)-int64(p) < int64(int32(*(*uint8)(unsafe.Pointer(p)))+int32(1)) { + if int64(int64(end))-int64(int64(p)) < int64(int32(*(*uint8)(unsafe.Pointer(p)))+int32(1)) { break } else { p += uintptr(int32(*(*uint8)(unsafe.Pointer(p))) + int32(1)) @@ -119122,7 +119146,7 @@ func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr if !(v1 != 0) { break } - for int64(p)-int64(r) < int64(rlen) && uint32(*(*uint8)(unsafe.Pointer(p)))-uint32(1) < uint32(127) { + for int64(int64(p))-int64(int64(r)) < int64(int64(rlen)) && uint32(*(*uint8)(unsafe.Pointer(p)))-uint32(1) < uint32(127) { p++ } if p > r+uintptr(rlen)-uintptr(6) { @@ -119136,7 +119160,7 @@ func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr if !(v2 != 0) { break } - for int64(p)-int64(r) < int64(rlen) && uint32(*(*uint8)(unsafe.Pointer(p)))-uint32(1) < uint32(127) { + for int64(int64(p))-int64(int64(r)) < int64(int64(rlen)) && uint32(*(*uint8)(unsafe.Pointer(p)))-uint32(1) < uint32(127) { p++ } if p > r+uintptr(rlen)-uintptr(12) { @@ -119144,7 +119168,7 @@ func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr } p += uintptr(int32(1) + BoolInt32(!!(*(*uint8)(unsafe.Pointer(p)) != 0))) len1 = int32(*(*uint8)(unsafe.Pointer(p + 8)))*int32(256) + int32(*(*uint8)(unsafe.Pointer(p + 9))) - if int64(len1+int32(10)) > int64(r+uintptr(rlen))-int64(p) { + if int64(len1+int32(10)) > int64(r+uintptr(rlen))-int64(int64(p)) { return -int32(1) } if (*(*func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{callback})))(tls, ctx, int32(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { @@ -119500,7 +119524,7 @@ func Xether_aton_r(tls *TLS, x uintptr, p_a uintptr) (r uintptr) { if n > uint64(0xFF) { return uintptr(0) } /* bad byte */ - *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(ii))) = uint8(n) + *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(ii))) = uint8(uint8(n)) goto _1 _1: ; @@ -119767,7 +119791,7 @@ func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintpt } nais = nservs * naddrs canon_len = int32(Xstrlen(tls, bp+1352)) - out = Xcalloc(tls, uint64(1), uint64(nais)*uint64(88)+uint64(canon_len)+uint64(1)) + out = Xcalloc(tls, uint64(1), uint64(uint64(nais))*uint64(88)+uint64(uint64(canon_len))+uint64(1)) if !(out != 0) { return -int32(10) } @@ -119789,7 +119813,7 @@ func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintpt if !(j < nservs) { break } - (*(*Taibuf)(unsafe.Pointer(out + uintptr(k)*88))).Fslot = int16(k) + (*(*Taibuf)(unsafe.Pointer(out + uintptr(k)*88))).Fslot = int16(int16(k)) if (*(*[48]Taddress)(unsafe.Pointer(bp + 8)))[i].Ffamily == int32(PF_INET) { v5 = uint64(16) } else { @@ -119829,7 +119853,7 @@ func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintpt ; i++ } - (*(*Taibuf)(unsafe.Pointer(out))).Fref = int16(nais) + (*(*Taibuf)(unsafe.Pointer(out))).Fref = int16(int16(nais)) *(*uintptr)(unsafe.Pointer(res)) = out return 0 } @@ -119996,7 +120020,7 @@ func Xgethostbyaddr_r(tls *TLS, a uintptr, l Tsocklen_t, af int32, h uintptr, bu Fsin Tsockaddr_in F__ccgo_pad2 [12]byte }{} - *(*uint16)(unsafe.Pointer(bp)) = uint16(af) + *(*uint16)(unsafe.Pointer(bp)) = uint16(uint16(af)) if af == int32(PF_INET6) { v1 = uint64(28) } else { @@ -120016,26 +120040,26 @@ func Xgethostbyaddr_r(tls *TLS, a uintptr, l Tsocklen_t, af int32, h uintptr, bu } } /* Align buffer and check for space for pointers and ip address */ - i = int32(uint64(buf) & (Uint64FromInt64(8) - Uint64FromInt32(1))) + i = int32(uint64(uint64(buf)) & (Uint64FromInt64(8) - Uint64FromInt32(1))) if !(i != 0) { i = int32(8) } - if buflen <= Uint64FromInt32(5)*Uint64FromInt64(8)-uint64(i)+uint64(l) { + if buflen <= Uint64FromInt32(5)*Uint64FromInt64(8)-uint64(uint64(i))+uint64(uint64(l)) { return int32(ERANGE) } - buf += uintptr(uint64(8) - uint64(i)) - buflen -= Uint64FromInt32(5)*Uint64FromInt64(8) - uint64(i) + uint64(l) + buf += uintptr(uint64(8) - uint64(uint64(i))) + buflen -= Uint64FromInt32(5)*Uint64FromInt64(8) - uint64(uint64(i)) + uint64(uint64(l)) (*Thostent)(unsafe.Pointer(h)).Fh_addr_list = buf buf += uintptr(Uint64FromInt32(2) * Uint64FromInt64(8)) (*Thostent)(unsafe.Pointer(h)).Fh_aliases = buf buf += uintptr(Uint64FromInt32(2) * Uint64FromInt64(8)) *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_addr_list)) = buf - Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_addr_list)), a, uint64(l)) + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_addr_list)), a, uint64(uint64(l))) buf += uintptr(l) *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_addr_list + 1*8)) = uintptr(0) *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_aliases)) = buf *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_aliases + 1*8)) = uintptr(0) - switch Xgetnameinfo(tls, bp, sl, buf, uint32(buflen), uintptr(0), uint32(0), 0) { + switch Xgetnameinfo(tls, bp, sl, buf, uint32(uint32(buflen)), uintptr(0), uint32(0), 0) { case -int32(3): *(*int32)(unsafe.Pointer(err)) = int32(TRY_AGAIN) return int32(EAGAIN) @@ -120053,7 +120077,7 @@ func Xgethostbyaddr_r(tls *TLS, a uintptr, l Tsocklen_t, af int32, h uintptr, bu break } (*Thostent)(unsafe.Pointer(h)).Fh_addrtype = af - (*Thostent)(unsafe.Pointer(h)).Fh_length = int32(l) + (*Thostent)(unsafe.Pointer(h)).Fh_length = int32(int32(l)) (*Thostent)(unsafe.Pointer(h)).Fh_name = *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_aliases)) *(*uintptr)(unsafe.Pointer(res)) = h return 0 @@ -120138,7 +120162,7 @@ func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, } (*Thostent)(unsafe.Pointer(h)).Fh_length = v1 /* Align buffer */ - align = -uint64(buf) & (Uint64FromInt64(8) - Uint64FromInt32(1)) + align = -uint64(uint64(buf)) & (Uint64FromInt64(8) - Uint64FromInt32(1)) need = Uint64FromInt32(4) * Uint64FromInt64(8) need += uint64(cnt+Int32FromInt32(1)) * (uint64(8) + uint64((*Thostent)(unsafe.Pointer(h)).Fh_length)) need += Xstrlen(tls, name) + uint64(1) @@ -120409,16 +120433,16 @@ func _copy_addr(tls *TLS, r uintptr, af int32, sa uintptr, addr uintptr, addrlen dst = sa + 8 len1 = int32(16) if int32(*(*Tuint8_t)(unsafe.Pointer(addr))) == int32(0xfe) && int32(*(*Tuint8_t)(unsafe.Pointer(addr + 1)))&int32(0xc0) == int32(0x80) || int32(*(*Tuint8_t)(unsafe.Pointer(addr))) == int32(0xff) && int32(*(*Tuint8_t)(unsafe.Pointer(addr + 1)))&int32(0xf) == int32(0x2) { - (*(*Tsockaddr_in6)(unsafe.Pointer(sa))).Fsin6_scope_id = uint32(ifindex) + (*(*Tsockaddr_in6)(unsafe.Pointer(sa))).Fsin6_scope_id = uint32(uint32(ifindex)) } default: return } - if addrlen < uint64(len1) { + if addrlen < uint64(uint64(len1)) { return } - (*Tsockany)(unsafe.Pointer(sa)).Fsa.Fsa_family = uint16(af) - Xmemcpy(tls, dst, addr, uint64(len1)) + (*Tsockany)(unsafe.Pointer(sa)).Fsa.Fsa_family = uint16(uint16(af)) + Xmemcpy(tls, dst, addr, uint64(uint64(len1))) *(*uintptr)(unsafe.Pointer(r)) = sa } @@ -120429,12 +120453,12 @@ func _gen_netmask(tls *TLS, r uintptr, af int32, sa uintptr, prefixlen int32) { var _ /* addr at bp+0 */ [16]Tuint8_t _, _ = i, v1 *(*[16]Tuint8_t)(unsafe.Pointer(bp)) = [16]Tuint8_t{} - if uint64(prefixlen) > Uint64FromInt32(8)*Uint64FromInt64(16) { + if uint64(uint64(prefixlen)) > Uint64FromInt32(8)*Uint64FromInt64(16) { prefixlen = int32(Uint64FromInt32(8) * Uint64FromInt64(16)) } i = prefixlen / int32(8) - Xmemset(tls, bp, int32(0xff), uint64(i)) - if uint64(i) < uint64(16) { + Xmemset(tls, bp, int32(0xff), uint64(uint64(i))) + if uint64(uint64(i)) < uint64(16) { v1 = i i++ (*(*[16]Tuint8_t)(unsafe.Pointer(bp)))[v1] = uint8(int32(0xff) << (int32(8) - prefixlen%int32(8))) @@ -120449,7 +120473,7 @@ func _copy_lladdr(tls *TLS, r uintptr, sa uintptr, addr uintptr, addrlen Tsize_t (*(*Tsockaddr_ll_hack)(unsafe.Pointer(sa))).Fsll_family = uint16(PF_PACKET) (*(*Tsockaddr_ll_hack)(unsafe.Pointer(sa))).Fsll_ifindex = ifindex (*(*Tsockaddr_ll_hack)(unsafe.Pointer(sa))).Fsll_hatype = hatype - (*(*Tsockaddr_ll_hack)(unsafe.Pointer(sa))).Fsll_halen = uint8(addrlen) + (*(*Tsockaddr_ll_hack)(unsafe.Pointer(sa))).Fsll_halen = uint8(uint8(addrlen)) Xmemcpy(tls, sa+12, addr, addrlen) *(*uintptr)(unsafe.Pointer(r)) = sa } @@ -120497,7 +120521,7 @@ func _netlink_msg_to_ifaddr(tls *TLS, pctx uintptr, h uintptr) (r int32) { return 0 } } - ifs = Xcalloc(tls, uint64(1), uint64(200)+uint64(stats_len)) + ifs = Xcalloc(tls, uint64(1), uint64(200)+uint64(uint64(stats_len))) if ifs == uintptr(0) { return -int32(1) } @@ -120764,8 +120788,8 @@ func _reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int z++ } *(*int8)(unsafe.Pointer(z)) = 0 - if int64(z)-int64(p) < int64(256) { - Xmemcpy(tls, buf, p, uint64(int64(z)-int64(p)+int64(1))) + if int64(int64(z))-int64(int64(p)) < int64(256) { + Xmemcpy(tls, buf, p, uint64(int64(int64(z))-int64(int64(p))+int64(1))) break } } @@ -120820,7 +120844,7 @@ func _reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { p++ *(*int8)(unsafe.Pointer(v8)) = 0 svport = Xstrtoul(tls, p, bp+128, int32(10)) - if svport != uint64(port) || *(*uintptr)(unsafe.Pointer(bp + 128)) == p { + if svport != uint64(uint64(port)) || *(*uintptr)(unsafe.Pointer(bp + 128)) == p { continue } if dgram != 0 && Xstrncmp(tls, *(*uintptr)(unsafe.Pointer(bp + 128)), __ccgo_ts+1071, uint64(4)) != 0 { @@ -120829,10 +120853,10 @@ func _reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { if !(dgram != 0) && Xstrncmp(tls, *(*uintptr)(unsafe.Pointer(bp + 128)), __ccgo_ts+1076, uint64(4)) != 0 { continue } - if int64(p)-t__predefined_ptrdiff_t(bp) > int64(32) { + if int64(int64(p))-t__predefined_ptrdiff_t(bp) > int64(32) { continue } - Xmemcpy(tls, buf, bp, uint64(int64(p)-t__predefined_ptrdiff_t(bp))) + Xmemcpy(tls, buf, bp, uint64(int64(int64(p))-t__predefined_ptrdiff_t(bp))) break } X__fclose_ca(tls, f) @@ -120869,14 +120893,14 @@ func Xgetnameinfo(tls *TLS, sa uintptr, sl Tsocklen_t, node uintptr, nodelen Tso switch af { case int32(PF_INET): a = sa + 4 - if uint64(sl) < uint64(16) { + if uint64(uint64(sl)) < uint64(16) { return -int32(6) } _mkptr4(tls, bp, a) scopeid = uint32(0) case int32(PF_INET6): a = sa + 8 - if uint64(sl) < uint64(28) { + if uint64(uint64(sl)) < uint64(28) { return -int32(6) } if Xmemcmp(tls, a, __ccgo_ts+1044, uint64(12)) != 0 { @@ -120899,7 +120923,7 @@ func Xgetnameinfo(tls *TLS, sa uintptr, sl Tsocklen_t, node uintptr, nodelen Tso rlen = X__res_send(tls, bp+347, qlen, bp+443, int32(512)) (*(*[256]int8)(unsafe.Pointer(bp + 78)))[0] = 0 if rlen > 0 { - if uint64(rlen) > uint64(512) { + if uint64(uint64(rlen)) > uint64(512) { rlen = int32(512) } X__dns_parse(tls, bp+443, rlen, __ccgo_fp(_dns_parse_callback), bp+78) @@ -120924,7 +120948,7 @@ func Xgetnameinfo(tls *TLS, sa uintptr, sl Tsocklen_t, node uintptr, nodelen Tso Xstrcat(tls, bp+78, p) } } - if Xstrlen(tls, bp+78) >= uint64(nodelen) { + if Xstrlen(tls, bp+78) >= uint64(uint64(nodelen)) { return -int32(12) } Xstrcpy(tls, node, bp+78) @@ -120937,9 +120961,9 @@ func Xgetnameinfo(tls *TLS, sa uintptr, sl Tsocklen_t, node uintptr, nodelen Tso _reverse_services(tls, bp+78, port, flags&int32(NI_DGRAM)) } if !(*(*int8)(unsafe.Pointer(p1)) != 0) { - p1 = _itoa(tls, bp+334, uint32(port)) + p1 = _itoa(tls, bp+334, uint32(uint32(port))) } - if Xstrlen(tls, p1) >= uint64(servlen) { + if Xstrlen(tls, p1) >= uint64(uint64(servlen)) { return -int32(12) } Xstrcpy(tls, serv, p1) @@ -121019,8 +121043,8 @@ func Xgetservbyname_r(tls *TLS, name uintptr, prots uintptr, se uintptr, buf uin return int32(ENOENT) } /* Align buffer */ - align = int32(-uint64(buf) & (Uint64FromInt64(16) - Uint64FromInt64(8) - Uint64FromInt32(1))) - if buflen < Uint64FromInt32(2)*Uint64FromInt64(8)+uint64(align) { + align = int32(-uint64(uint64(buf)) & (Uint64FromInt64(16) - Uint64FromInt64(8) - Uint64FromInt32(1))) + if buflen < Uint64FromInt32(2)*Uint64FromInt64(8)+uint64(uint64(align)) { return int32(ERANGE) } buf += uintptr(align) @@ -121216,7 +121240,7 @@ _9: } } } - return int32(X__syscall_ret(tls, uint64(r1))) + return int32(X__syscall_ret(tls, uint64(uint64(r1)))) } func X__h_errno_location(tls *TLS) (r uintptr) { @@ -121224,10 +121248,10 @@ func X__h_errno_location(tls *TLS) (r uintptr) { trc("tls=%v, (%v:)", tls, origin(2)) defer func() { trc("-> %v", r) }() } - if !((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Fstack != 0) { + if !((*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Fstack != 0) { return uintptr(unsafe.Pointer(&Xh_errno)) } - return ___get_tp(tls) + 160 + return uintptr(___get_tp(tls)) + 160 } func Xherror(tls *TLS, msg uintptr) { @@ -121351,7 +121375,7 @@ func Xhtons(tls *TLS, n Tuint16_t) (r Tuint16_t) { _4: v1 = int32(v3) } else { - v1 = int32(n) + v1 = int32(int32(n)) } return uint16(v1) } @@ -121378,7 +121402,7 @@ func Xif_indextoname(tls *TLS, index uint32, name uintptr) (r1 uintptr) { if v1 < 0 { return uintptr(0) } - *(*int32)(unsafe.Pointer(bp + 16)) = int32(index) + *(*int32)(unsafe.Pointer(bp + 16)) = int32(int32(index)) r = Xioctl(tls, fd, int32(SIOCGIFNAME), VaList(bp+48, bp)) X__syscall1(tls, int64(SYS_close), int64(fd)) if r < 0 { @@ -121439,7 +121463,7 @@ func _netlink_msg_to_nameindex(tls *TLS, pctx uintptr, h uintptr) (r int32) { i = *(*uint32)(unsafe.Pointer(ctx + 24 + uintptr(bucket)*4)) for i != 0 { map1 = (*Tifnameindexctx)(unsafe.Pointer(ctx)).Flist + uintptr(i-uint32(1))*28 - if (*Tifnamemap)(unsafe.Pointer(map1)).Findex == uint32(index) && int32((*Tifnamemap)(unsafe.Pointer(map1)).Fnamelen) == namelen && Xmemcmp(tls, map1+9, rta+UintptrFromInt64(4), uint64(namelen)) == 0 { + if (*Tifnamemap)(unsafe.Pointer(map1)).Findex == uint32(uint32(index)) && int32((*Tifnamemap)(unsafe.Pointer(map1)).Fnamelen) == namelen && Xmemcmp(tls, map1+9, rta+UintptrFromInt64(4), uint64(uint64(namelen))) == 0 { return 0 } i = (*Tifnamemap)(unsafe.Pointer(map1)).Fhash_next @@ -121459,12 +121483,12 @@ func _netlink_msg_to_nameindex(tls *TLS, pctx uintptr, h uintptr) (r int32) { return -int32(1) } (*Tifnameindexctx)(unsafe.Pointer(ctx)).Flist = map1 - (*Tifnameindexctx)(unsafe.Pointer(ctx)).Fallocated = uint32(a) + (*Tifnameindexctx)(unsafe.Pointer(ctx)).Fallocated = uint32(uint32(a)) } map1 = (*Tifnameindexctx)(unsafe.Pointer(ctx)).Flist + uintptr((*Tifnameindexctx)(unsafe.Pointer(ctx)).Fnum)*28 - (*Tifnamemap)(unsafe.Pointer(map1)).Findex = uint32(index) - (*Tifnamemap)(unsafe.Pointer(map1)).Fnamelen = uint8(namelen) - Xmemcpy(tls, map1+9, rta+UintptrFromInt64(4), uint64(namelen)) + (*Tifnamemap)(unsafe.Pointer(map1)).Findex = uint32(uint32(index)) + (*Tifnamemap)(unsafe.Pointer(map1)).Fnamelen = uint8(uint8(namelen)) + Xmemcpy(tls, map1+9, rta+UintptrFromInt64(4), uint64(uint64(namelen))) *(*uint32)(unsafe.Pointer(ctx + 8)) += uint32(namelen + int32(1)) (*Tifnameindexctx)(unsafe.Pointer(ctx)).Fnum++ (*Tifnamemap)(unsafe.Pointer(map1)).Fhash_next = *(*uint32)(unsafe.Pointer(ctx + 24 + uintptr(bucket)*4)) @@ -121525,6 +121549,7 @@ func Xif_nameindex(tls *TLS) (r uintptr) { } (*Tif_nameindex)(unsafe.Pointer(d)).Fif_index = uint32(0) (*Tif_nameindex)(unsafe.Pointer(d)).Fif_name = uintptr(0) + goto err err: ; _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 280)), uintptr(0)) @@ -121740,7 +121765,7 @@ func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l Tsocklen_t) (r uint a = a0 switch af { case int32(PF_INET): - if uint32(Xsnprintf(tls, s, uint64(l), __ccgo_ts+1097, VaList(bp+112, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l { + if uint32(Xsnprintf(tls, s, uint64(uint64(l)), __ccgo_ts+1097, VaList(bp+112, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l { return s } case int32(PF_INET6): @@ -121777,7 +121802,7 @@ func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l Tsocklen_t) (r uint (*(*[100]int8)(unsafe.Pointer(bp)))[best] = v3 Xmemmove(tls, bp+uintptr(best)+uintptr(2), bp+uintptr(best)+uintptr(max), uint64(i-best-max+int32(1))) } - if Xstrlen(tls, bp) < uint64(l) { + if Xstrlen(tls, bp) < uint64(uint64(l)) { Xstrcpy(tls, s, bp) return s } @@ -121837,7 +121862,7 @@ func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) (r int32) { if j == 0 || j > int32(1) && int32(*(*int8)(unsafe.Pointer(s))) == int32('0') || v > int32(255) { return 0 } - *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v) + *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(uint8(v)) if int32(*(*int8)(unsafe.Pointer(s + uintptr(j)))) == 0 && i == int32(3) { return int32(1) } @@ -121899,7 +121924,7 @@ func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) (r int32) { if j == 0 { return 0 } - (*(*[8]Tuint16_t)(unsafe.Pointer(bp)))[i&int32(7)] = uint16(v) + (*(*[8]Tuint16_t)(unsafe.Pointer(bp)))[i&int32(7)] = uint16(uint16(v)) if !(*(*int8)(unsafe.Pointer(s + uintptr(j))) != 0) && (brk >= 0 || i == int32(7)) { break } @@ -122014,9 +122039,9 @@ func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) (r i } p = Xstrchr(tls, name, int32('%')) scopeid = uint64(0) - if p != 0 && int64(p)-int64(name) < int64(64) { - Xmemcpy(tls, bp+20, name, uint64(int64(p)-int64(name))) - (*(*[64]int8)(unsafe.Pointer(bp + 20)))[int64(p)-int64(name)] = 0 + if p != 0 && int64(int64(p))-int64(int64(name)) < int64(64) { + Xmemcpy(tls, bp+20, name, uint64(int64(int64(p))-int64(int64(name)))) + (*(*[64]int8)(unsafe.Pointer(bp + 20)))[int64(int64(p))-int64(int64(name))] = 0 name = bp + 20 } if Xinet_pton(tls, int32(PF_INET6), name, bp+4) <= 0 { @@ -122048,7 +122073,7 @@ func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) (r i return -int32(2) } } - (*(*Taddress)(unsafe.Pointer(buf))).Fscopeid = uint32(scopeid) + (*(*Taddress)(unsafe.Pointer(buf))).Fscopeid = uint32(uint32(scopeid)) return int32(1) } @@ -122267,7 +122292,7 @@ func _name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family *(*int8)(unsafe.Pointer(z)) = 0 if _is_valid_hostname(tls, p) != 0 { have_canon = int32(1) - Xmemcpy(tls, canon, p, uint64(int64(z)-int64(p)+int64(1))) + Xmemcpy(tls, canon, p, uint64(int64(int64(z))-int64(int64(p))+int64(1))) } } X__fclose_ca(tls, f) @@ -122324,7 +122349,7 @@ func _dns_parse_callback1(tls *TLS, c uintptr, rr int32, data uintptr, len1 int3 v2 = ctx + 16 v1 = *(*int32)(unsafe.Pointer(v2)) *(*int32)(unsafe.Pointer(v2))++ - Xmemcpy(tls, (*Tdpc_ctx)(unsafe.Pointer(ctx)).Faddrs+uintptr(v1)*28+8, data, uint64(len1)) + Xmemcpy(tls, (*Tdpc_ctx)(unsafe.Pointer(ctx)).Faddrs+uintptr(v1)*28+8, data, uint64(uint64(len1))) return 0 } @@ -122521,9 +122546,9 @@ func _name_from_dns_search(tls *TLS, buf uintptr, canon uintptr, name uintptr, f if z == p { break } - if uint64(int64(z)-int64(p)) < uint64(256)-l-uint64(1) { - Xmemcpy(tls, canon+uintptr(l)+uintptr(1), p, uint64(int64(z)-int64(p))) - *(*int8)(unsafe.Pointer(canon + uintptr(uint64(int64(z)-int64(p)+int64(1))+l))) = 0 + if uint64(int64(int64(z))-int64(int64(p))) < uint64(256)-l-uint64(1) { + Xmemcpy(tls, canon+uintptr(l)+uintptr(1), p, uint64(int64(int64(z))-int64(int64(p)))) + *(*int8)(unsafe.Pointer(canon + uintptr(uint64(int64(int64(z))-int64(int64(p))+int64(1))+l))) = 0 cnt = _name_from_dns(tls, buf, canon, canon, family, bp+256) if cnt != 0 { return cnt @@ -122640,7 +122665,7 @@ func _prefixmatch(tls *TLS, s uintptr, d uintptr) (r int32) { ; i++ } - return int32(i) + return int32(int32(i)) } func _addrcmp(tls *TLS, _a uintptr, _b uintptr) (r int32) { @@ -122857,7 +122882,7 @@ func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family i ; i++ } - Xqsort(tls, buf, uint64(cnt), uint64(28), __ccgo_fp(_addrcmp)) + Xqsort(tls, buf, uint64(uint64(cnt)), uint64(28), __ccgo_fp(_addrcmp)) _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) return cnt } @@ -122908,8 +122933,8 @@ func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype i return -int32(8) } (*(*Tservice)(unsafe.Pointer(buf))).Fport = uint16(0) - (*(*Tservice)(unsafe.Pointer(buf))).Fproto = uint8(proto) - (*(*Tservice)(unsafe.Pointer(buf))).Fsocktype = uint8(socktype) + (*(*Tservice)(unsafe.Pointer(buf))).Fproto = uint8(uint8(proto)) + (*(*Tservice)(unsafe.Pointer(buf))).Fsocktype = uint8(uint8(socktype)) return int32(1) } if name != 0 { @@ -122923,14 +122948,14 @@ func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype i return -int32(8) } if proto != int32(IPPROTO_UDP) { - (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fport = uint16(port) + (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fport = uint16(uint16(port)) (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fsocktype = uint8(SOCK_STREAM) v1 = cnt cnt++ (*(*Tservice)(unsafe.Pointer(buf + uintptr(v1)*4))).Fproto = uint8(IPPROTO_TCP) } if proto != int32(IPPROTO_TCP) { - (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fport = uint16(port) + (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fport = uint16(uint16(port)) (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fsocktype = uint8(SOCK_DGRAM) v2 = cnt cnt++ @@ -123024,7 +123049,7 @@ func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype i if proto == int32(IPPROTO_TCP) { continue } - (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fport = uint16(port) + (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fport = uint16(uint16(port)) (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fsocktype = uint8(SOCK_DGRAM) v20 = cnt cnt++ @@ -123034,7 +123059,7 @@ func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype i if proto == int32(IPPROTO_UDP) { continue } - (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fport = uint16(port) + (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fport = uint16(uint16(port)) (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fsocktype = uint8(SOCK_STREAM) v21 = cnt cnt++ @@ -123086,7 +123111,7 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, } Freply [0]Tnlmsghdr Fbuf [8192]Tuint8_t - })(unsafe.Pointer(bp))))).Fnlh.Fnlmsg_type = uint16(type1) + })(unsafe.Pointer(bp))))).Fnlh.Fnlmsg_type = uint16(uint16(type1)) (*(*struct { Fnlh Tnlmsghdr Fg Trtgenmsg @@ -123119,7 +123144,7 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, } Freply [0]Tnlmsghdr Fbuf [8192]Tuint8_t - })(unsafe.Pointer(bp))))).Fg.Frtgen_family = uint8(af) + })(unsafe.Pointer(bp))))).Fg.Frtgen_family = uint8(uint8(af)) r = int32(Xsend(tls, fd, bp, uint64(20), 0)) if r < 0 { return r @@ -123215,7 +123240,7 @@ func Xns_put16(tls *TLS, s uint32, cp uintptr) { *(*uint8)(unsafe.Pointer(v1)) = uint8(s >> int32(8)) v2 = cp cp++ - *(*uint8)(unsafe.Pointer(v2)) = uint8(s) + *(*uint8)(unsafe.Pointer(v2)) = uint8(uint8(s)) } func Xns_put32(tls *TLS, l uint64, cp uintptr) { @@ -123235,7 +123260,7 @@ func Xns_put32(tls *TLS, l uint64, cp uintptr) { *(*uint8)(unsafe.Pointer(v3)) = uint8(l >> int32(8)) v4 = cp cp++ - *(*uint8)(unsafe.Pointer(v4)) = uint8(l) + *(*uint8)(unsafe.Pointer(v4)) = uint8(uint8(l)) } func Xns_initparse(tls *TLS, msg uintptr, msglen int32, handle uintptr) (r1 int32) { @@ -123273,7 +123298,7 @@ func Xns_initparse(tls *TLS, msg uintptr, msglen int32, handle uintptr) (r1 int3 } if *(*Tuint16_t)(unsafe.Pointer(handle + 20 + uintptr(i)*2)) != 0 { *(*uintptr)(unsafe.Pointer(handle + 32 + uintptr(i)*8)) = msg - r = Xns_skiprr(tls, msg, (*Tns_msg)(unsafe.Pointer(handle)).F_eom, i, int32(*(*Tuint16_t)(unsafe.Pointer(handle + 20 + uintptr(i)*2)))) + r = Xns_skiprr(tls, msg, (*Tns_msg)(unsafe.Pointer(handle)).F_eom, int32(i), int32(*(*Tuint16_t)(unsafe.Pointer(handle + 20 + uintptr(i)*2)))) if r < 0 { return -int32(1) } @@ -123293,6 +123318,7 @@ func Xns_initparse(tls *TLS, msg uintptr, msglen int32, handle uintptr) (r1 int3 (*Tns_msg)(unsafe.Pointer(handle)).F_rrnum = -int32(1) (*Tns_msg)(unsafe.Pointer(handle)).F_msg_ptr = UintptrFromInt32(0) return 0 + goto bad bad: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EMSGSIZE) @@ -123318,24 +123344,25 @@ func Xns_skiprr(tls *TLS, ptr uintptr, eom uintptr, section Tns_sect, count int3 if r < 0 { goto bad } - if int64(r+Int32FromInt32(2)*Int32FromInt32(NS_INT16SZ)) > int64(eom)-int64(p) { + if int64(r+Int32FromInt32(2)*Int32FromInt32(NS_INT16SZ)) > int64(int64(eom))-int64(int64(p)) { goto bad } p += uintptr(r + Int32FromInt32(2)*Int32FromInt32(NS_INT16SZ)) - if section != int32(_ns_s_qd) { - if int64(Int32FromInt32(NS_INT32SZ)+Int32FromInt32(NS_INT16SZ)) > int64(eom)-int64(p) { + if int32(section) != int32(_ns_s_qd) { + if int64(Int32FromInt32(NS_INT32SZ)+Int32FromInt32(NS_INT16SZ)) > int64(int64(eom))-int64(int64(p)) { goto bad } p += uintptr(NS_INT32SZ) p += uintptr(2) r = int32(Xns_get16(tls, p-uintptr(2))) - if int64(r) > int64(eom)-int64(p) { + if int64(int64(r)) > int64(int64(eom))-int64(int64(p)) { goto bad } p += uintptr(r) } } - return int32(int64(p) - int64(ptr)) + return int32(int64(int64(p)) - int64(int64(ptr))) + goto bad bad: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EMSGSIZE) @@ -123350,10 +123377,10 @@ func Xns_parserr(tls *TLS, handle uintptr, section Tns_sect, rrnum int32, rr uin var r int32 var p1, p2, p3, p4 uintptr _, _, _, _, _ = r, p1, p2, p3, p4 - if section < 0 || section >= int32(_ns_s_max) { + if int32(section) < 0 || int32(section) >= int32(_ns_s_max) { goto bad } - if section != (*Tns_msg)(unsafe.Pointer(handle)).F_sect { + if int32(section) != (*Tns_msg)(unsafe.Pointer(handle)).F_sect { (*Tns_msg)(unsafe.Pointer(handle)).F_sect = section (*Tns_msg)(unsafe.Pointer(handle)).F_rrnum = 0 (*Tns_msg)(unsafe.Pointer(handle)).F_msg_ptr = *(*uintptr)(unsafe.Pointer(handle + 32 + uintptr(section)*8)) @@ -123390,7 +123417,7 @@ func Xns_parserr(tls *TLS, handle uintptr, section Tns_sect, rrnum int32, rr uin p2 = handle + 72 *(*uintptr)(unsafe.Pointer(p2)) += uintptr(2) (*Tns_rr)(unsafe.Pointer(rr)).Frr_class = uint16(Xns_get16(tls, *(*uintptr)(unsafe.Pointer(p2))-uintptr(2))) - if section != int32(_ns_s_qd) { + if int32(section) != int32(_ns_s_qd) { if int64(Int32FromInt32(NS_INT32SZ)+Int32FromInt32(NS_INT16SZ)) > int64((*Tns_msg)(unsafe.Pointer(handle)).F_eom)-int64((*Tns_msg)(unsafe.Pointer(handle)).F_msg_ptr) { goto size } @@ -123412,7 +123439,7 @@ func Xns_parserr(tls *TLS, handle uintptr, section Tns_sect, rrnum int32, rr uin } (*Tns_msg)(unsafe.Pointer(handle)).F_rrnum++ if (*Tns_msg)(unsafe.Pointer(handle)).F_rrnum > int32(*(*Tuint16_t)(unsafe.Pointer(handle + 20 + uintptr(section)*2))) { - (*Tns_msg)(unsafe.Pointer(handle)).F_sect = section + int32(1) + (*Tns_msg)(unsafe.Pointer(handle)).F_sect = int32(section) + int32(1) if (*Tns_msg)(unsafe.Pointer(handle)).F_sect == int32(_ns_s_max) { (*Tns_msg)(unsafe.Pointer(handle)).F_rrnum = -int32(1) (*Tns_msg)(unsafe.Pointer(handle)).F_msg_ptr = UintptrFromInt32(0) @@ -123421,10 +123448,12 @@ func Xns_parserr(tls *TLS, handle uintptr, section Tns_sect, rrnum int32, rr uin } } return 0 + goto bad bad: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENODEV) return -int32(1) + goto size size: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EMSGSIZE) @@ -123438,7 +123467,7 @@ func Xns_name_uncompress(tls *TLS, msg uintptr, eom uintptr, src uintptr, dst ui } var r int32 _ = r - r = Xdn_expand(tls, msg, eom, src, dst, int32(dstsiz)) + r = Xdn_expand(tls, msg, eom, src, dst, int32(int32(dstsiz))) if r < 0 { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EMSGSIZE) } @@ -123496,7 +123525,7 @@ func Xntohs(tls *TLS, n Tuint16_t) (r Tuint16_t) { _4: v1 = int32(v3) } else { - v1 = int32(n) + v1 = int32(int32(n)) } return uint16(v1) } @@ -123525,7 +123554,7 @@ func Xgetprotoent(tls *TLS) (r uintptr) { trc("tls=%v, (%v:)", tls, origin(2)) defer func() { trc("-> %v", r) }() } - if uint64(_idx) >= uint64(239) { + if uint64(uint64(_idx)) >= uint64(239) { return UintptrFromInt32(0) } _p.Fp_proto = int32(_protos[_idx]) @@ -123681,12 +123710,13 @@ func X__convert_scm_timestamps(tls *TLS, msg uintptr, csize Tsocklen_t) { _4: ; type1 = int32(SO_TIMESTAMPNS) + goto common common: ; Xmemcpy(tls, bp, cmsg+UintptrFromInt32(1)*16, uint64(8)) - (*(*[2]int64)(unsafe.Pointer(bp + 8)))[0] = *(*int64)(unsafe.Pointer(bp)) + (*(*[2]int64)(unsafe.Pointer(bp + 8)))[0] = int64(*(*int64)(unsafe.Pointer(bp))) Xmemcpy(tls, bp, cmsg+UintptrFromInt32(1)*16+uintptr(8), uint64(8)) - (*(*[2]int64)(unsafe.Pointer(bp + 8)))[int32(1)] = *(*int64)(unsafe.Pointer(bp)) + (*(*[2]int64)(unsafe.Pointer(bp + 8)))[int32(1)] = int64(*(*int64)(unsafe.Pointer(bp))) goto _5 _5: } @@ -123804,11 +123834,11 @@ func X__res_mkquery(tls *TLS, op int32, dname uintptr, class int32, type1 int32, return -int32(1) } n = int32(uint64(17) + l + BoolUint64(!!(l != 0))) - if l > uint64(253) || buflen < n || uint32(op) > uint32(15) || uint32(class) > uint32(255) || uint32(type1) > uint32(255) { + if l > uint64(253) || buflen < n || uint32(uint32(op)) > uint32(15) || uint32(uint32(class)) > uint32(255) || uint32(uint32(type1)) > uint32(255) { return -int32(1) } /* Construct query template - ID will be filled later */ - Xmemset(tls, bp, 0, uint64(n)) + Xmemset(tls, bp, 0, uint64(uint64(n))) (*(*[280]uint8)(unsafe.Pointer(bp)))[int32(2)] = uint8(op*int32(8) + int32(1)) (*(*[280]uint8)(unsafe.Pointer(bp)))[int32(3)] = uint8(32) /* AD */ (*(*[280]uint8)(unsafe.Pointer(bp)))[int32(5)] = uint8(1) @@ -123837,14 +123867,14 @@ func X__res_mkquery(tls *TLS, op int32, dname uintptr, class int32, type1 int32, ; i = j + int32(1) } - (*(*[280]uint8)(unsafe.Pointer(bp)))[i+int32(1)] = uint8(type1) - (*(*[280]uint8)(unsafe.Pointer(bp)))[i+int32(3)] = uint8(class) + (*(*[280]uint8)(unsafe.Pointer(bp)))[i+int32(1)] = uint8(uint8(type1)) + (*(*[280]uint8)(unsafe.Pointer(bp)))[i+int32(3)] = uint8(uint8(class)) /* Make a reasonably unpredictable id */ Xclock_gettime(tls, CLOCK_REALTIME, bp+280) id = int32((uint64((*(*Ttimespec)(unsafe.Pointer(bp + 280))).Ftv_nsec) + uint64((*(*Ttimespec)(unsafe.Pointer(bp + 280))).Ftv_nsec)/uint64(65536)) & uint64(0xffff)) (*(*[280]uint8)(unsafe.Pointer(bp)))[0] = uint8(id / int32(256)) - (*(*[280]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(id) - Xmemcpy(tls, buf, bp, uint64(n)) + (*(*[280]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(uint8(id)) + Xmemcpy(tls, buf, bp, uint64(uint64(n))) return n } @@ -123991,7 +124021,7 @@ func _start_tcp(tls *TLS, pfd uintptr, family int32, sa uintptr, sl Tsocklen_t, _, _ = fd, r *(*[2]Tuint8_t)(unsafe.Pointer(bp + 32)) = [2]Tuint8_t{ 0: uint8(ql >> int32(8)), - 1: uint8(ql), + 1: uint8(uint8(ql)), } *(*[2]Tiovec)(unsafe.Pointer(bp)) = [2]Tiovec{ 0: { @@ -124000,7 +124030,7 @@ func _start_tcp(tls *TLS, pfd uintptr, family int32, sa uintptr, sl Tsocklen_t, }, 1: { Fiov_base: q, - Fiov_len: uint64(ql), + Fiov_len: uint64(uint64(ql)), }, } *(*Tmsghdr)(unsafe.Pointer(bp + 40)) = Tmsghdr{ @@ -124111,18 +124141,18 @@ func X__res_msend_rc(tls *TLS, nqueries int32, queries uintptr, qlens uintptr, a family = int32(PF_INET) v1 = uint64(nqueries+int32(2)) * 8 pfd = Xrealloc(tls, pfd, v1) - v2 = uint64(nqueries) * 4 + v2 = uint64(uint64(nqueries)) * 4 qpos = Xrealloc(tls, qpos, v2) - v3 = uint64(nqueries) * 4 + v3 = uint64(uint64(nqueries)) * 4 apos = Xrealloc(tls, apos, v3) - v4 = uint64(nqueries) * 2 + v4 = uint64(uint64(nqueries)) * 2 alen_buf = Xrealloc(tls, alen_buf, v4) _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp+200) timeout = int32(uint32(1000) * (*Tresolvconf)(unsafe.Pointer(conf)).Ftimeout) attempts = int32((*Tresolvconf)(unsafe.Pointer(conf)).Fattempts) nns = 0 for { - if !(uint32(nns) < (*Tresolvconf)(unsafe.Pointer(conf)).Fnns) { + if !(uint32(uint32(nns)) < (*Tresolvconf)(unsafe.Pointer(conf)).Fnns) { break } iplit = conf + uintptr(nns)*28 @@ -124205,7 +124235,7 @@ func X__res_msend_rc(tls *TLS, nqueries int32, queries uintptr, qlens uintptr, a Fsin6 [0]Tsockaddr_in6 Fsin Tsockaddr_in F__ccgo_pad2 [12]byte - })(unsafe.Pointer(bp + 88))).Fsin.Fsin_family = uint16(family) + })(unsafe.Pointer(bp + 88))).Fsin.Fsin_family = uint16(uint16(family)) if fd < 0 || Xbind(tls, fd, bp+88, sl) < 0 { if fd >= 0 { Xclose(tls, fd) @@ -124232,15 +124262,15 @@ func X__res_msend_rc(tls *TLS, nqueries int32, queries uintptr, qlens uintptr, a (*(*Tpollfd)(unsafe.Add(unsafe.Pointer(pfd), (nqueries+int32(1))*8))).Ffd = -int32(2) __pthread_cleanup_push(tls, bp+208, __ccgo_fp(_cleanup), pfd) _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 200)), uintptr(0)) - Xmemset(tls, alens, 0, uint64(4)*uint64(nqueries)) + Xmemset(tls, alens, 0, uint64(4)*uint64(uint64(nqueries))) retry_interval = timeout / attempts next = 0 v10 = _mtime(tls) t2 = v10 t0 = v10 - t1 = t2 - uint64(retry_interval) + t1 = t2 - uint64(uint64(retry_interval)) for { - if !(t2-t0 < uint64(timeout)) { + if !(t2-t0 < uint64(uint64(timeout))) { break } /* This is the loop exit condition: that all queries @@ -124258,7 +124288,7 @@ func X__res_msend_rc(tls *TLS, nqueries int32, queries uintptr, qlens uintptr, a if i == nqueries { break } - if t2-t1 >= uint64(retry_interval) { + if t2-t1 >= uint64(uint64(retry_interval)) { /* Query all configured namservers in parallel */ i = 0 for { @@ -124287,14 +124317,14 @@ func X__res_msend_rc(tls *TLS, nqueries int32, queries uintptr, qlens uintptr, a servfail_retry = int32(2) * nqueries } /* Wait for a response, or until time to retry */ - if Xpoll(tls, pfd, uint64(nqueries+int32(1)), int32(t1+uint64(retry_interval)-t2)) <= 0 { + if Xpoll(tls, pfd, uint64(nqueries+int32(1)), int32(t1+uint64(uint64(retry_interval))-t2)) <= 0 { goto _11 } for next < nqueries { *(*[1]Tiovec)(unsafe.Pointer(bp + 8)) = [1]Tiovec{ 0: { Fiov_base: *(*uintptr)(unsafe.Pointer(answers + uintptr(next)*8)), - Fiov_len: uint64(asize), + Fiov_len: uint64(uint64(asize)), }, } *(*Tmsghdr)(unsafe.Pointer(bp + 232)) = Tmsghdr{ @@ -124314,7 +124344,7 @@ func X__res_msend_rc(tls *TLS, nqueries int32, queries uintptr, qlens uintptr, a /* Ignore replies from addresses we didn't send to */ j = 0 for { - if !(j < nns && Xmemcmp(tls, bp+116+uintptr(j)*28, bp+88, uint64(sl)) != 0) { + if !(j < nns && Xmemcmp(tls, bp+116+uintptr(j)*28, bp+88, uint64(uint64(sl))) != 0) { break } goto _15 @@ -124375,7 +124405,7 @@ func X__res_msend_rc(tls *TLS, nqueries int32, queries uintptr, qlens uintptr, a next++ } } else { - Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(answers + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer(answers + uintptr(next)*8)), uint64(rlen)) + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(answers + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer(answers + uintptr(next)*8)), uint64(uint64(rlen))) } /* Ignore further UDP if all slots full or TCP-mode */ if next == nqueries { @@ -124446,7 +124476,7 @@ func X__res_msend_rc(tls *TLS, nqueries int32, queries uintptr, qlens uintptr, a }, 1: { Fiov_base: *(*uintptr)(unsafe.Pointer(answers + uintptr(i)*8)), - Fiov_len: uint64(asize), + Fiov_len: uint64(uint64(asize)), }, } *(*Tmsghdr)(unsafe.Pointer(bp + 344)) = Tmsghdr{ @@ -124490,6 +124520,7 @@ func X__res_msend_rc(tls *TLS, nqueries int32, queries uintptr, qlens uintptr, a ; t2 = _mtime(tls) } + goto out out: ; __pthread_cleanup_pop(tls, bp+208, int32(1)) @@ -124751,13 +124782,14 @@ func X__get_resolv_conf(tls *TLS, conf uintptr, search uintptr, search_sz Tsize_ Xmemcpy(tls, search, p, l+uint64(1)) } X__fclose_ca(tls, f) + goto no_resolv_conf no_resolv_conf: ; if !(nns != 0) { X__lookup_ipliteral(tls, conf, __ccgo_ts+1242, PF_UNSPEC) nns = int32(1) } - (*Tresolvconf)(unsafe.Pointer(conf)).Fnns = uint32(nns) + (*Tresolvconf)(unsafe.Pointer(conf)).Fnns = uint32(uint32(nns)) return 0 } @@ -124785,23 +124817,24 @@ func Xsendmmsg(tls *TLS, fd int32, msgvec uintptr, vlen uint32, flags uint32) (r } i = 0 for { - if !(uint32(i) < vlen) { + if !(uint32(uint32(i)) < vlen) { break } /* As an unfortunate inconsistency, the sendmmsg API uses * unsigned int for the resulting msg_len, despite sendmsg * returning ssize_t. However Linux limits the total bytes * sent by sendmsg to INT_MAX, so the assignment is safe. */ - r = Xsendmsg(tls, fd, msgvec+uintptr(i)*64, int32(flags)) + r = Xsendmsg(tls, fd, msgvec+uintptr(i)*64, int32(int32(flags))) if r < 0 { goto error } - (*(*Tmmsghdr)(unsafe.Pointer(msgvec + uintptr(i)*64))).Fmsg_len = uint32(r) + (*(*Tmmsghdr)(unsafe.Pointer(msgvec + uintptr(i)*64))).Fmsg_len = uint32(uint32(r)) goto _1 _1: ; i++ } + goto error error: ; if i != 0 { @@ -124984,7 +125017,7 @@ _9: if true { break } - if uint64(optlen) < uint64(16) { + if uint64(uint64(optlen)) < uint64(16) { return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EINVAL)))) } tv = optval @@ -125066,7 +125099,7 @@ _9: } } } - return int32(X__syscall_ret(tls, uint64(r1))) + return int32(X__syscall_ret(tls, uint64(uint64(r1)))) } func Xshutdown(tls *TLS, fd int32, how int32) (r1 int32) { @@ -125168,7 +125201,7 @@ _9: _18: s = int32(v17) if s < 0 { - return int32(X__syscall_ret(tls, uint64(s))) + return int32(X__syscall_ret(tls, uint64(uint64(s)))) } if type1&int32(SOCK_CLOEXEC) != 0 { X__syscall3(tls, int64(SYS_fcntl), int64(s), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) @@ -125177,7 +125210,7 @@ _9: X__syscall3(tls, int64(SYS_fcntl), int64(s), int64(Int32FromInt32(F_SETFL)), int64(Int32FromInt32(O_NONBLOCK))) } } - return int32(X__syscall_ret(tls, uint64(s))) + return int32(X__syscall_ret(tls, uint64(uint64(s)))) } func Xsocketpair(tls *TLS, domain int32, type1 int32, protocol int32, fd uintptr) (r2 int32) { @@ -125535,11 +125568,13 @@ func X__getgr_a(tls *TLS, name uintptr, gid Tgid_t, gr uintptr, buf uintptr, siz goto cleanup_f } *(*uintptr)(unsafe.Pointer(res)) = gr + goto cleanup_f cleanup_f: ; Xfclose(tls, f) goto done } + goto done done: ; _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) @@ -125572,7 +125607,7 @@ func _getgr_r(tls *TLS, name uintptr, gid Tgid_t, gr uintptr, buf uintptr, size rv = int32(ERANGE) } if *(*uintptr)(unsafe.Pointer(res)) != 0 { - buf += uintptr((uint64(16) - uint64(buf)) % uint64(16)) + buf += uintptr((uint64(16) - uint64(uint64(buf))) % uint64(16)) (*Tgroup)(unsafe.Pointer(gr)).Fgr_mem = buf buf += uintptr((*(*Tsize_t)(unsafe.Pointer(bp + 24)) + uint64(1)) * uint64(8)) Xmemcpy(tls, buf, *(*uintptr)(unsafe.Pointer(bp)), *(*Tsize_t)(unsafe.Pointer(bp + 8))) @@ -125824,6 +125859,7 @@ func X__getgrent_a(tls *TLS, f uintptr, gr uintptr, line uintptr, size uintptr, *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(mem)))) = uintptr(0) } (*Tgroup)(unsafe.Pointer(gr)).Fgr_mem = *(*uintptr)(unsafe.Pointer(mem)) + goto end end: ; _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 8)), uintptr(0)) @@ -125945,7 +125981,7 @@ func Xgetgrouplist(tls *TLS, user uintptr, gid Tgid_t, groups uintptr, ngroups u } n++ v9 = n - if v9 <= int64(nlim) { + if v9 <= int64(int64(nlim)) { v10 = groups groups += 4 *(*Tgid_t)(unsafe.Pointer(v10)) = (*(*Tgroup)(unsafe.Pointer(bp))).Fgr_gid @@ -125965,7 +126001,7 @@ func Xgetgrouplist(tls *TLS, user uintptr, gid Tgid_t, groups uintptr, ngroups u if *(*Tuint32_t)(unsafe.Pointer(nscdbuf + uintptr(i)*4)) != gid { n++ v12 = n - if v12 <= int64(nlim) { + if v12 <= int64(int64(nlim)) { v13 = groups groups += 4 *(*Tgid_t)(unsafe.Pointer(v13)) = *(*Tuint32_t)(unsafe.Pointer(nscdbuf + uintptr(i)*4)) @@ -125977,13 +126013,14 @@ func Xgetgrouplist(tls *TLS, user uintptr, gid Tgid_t, groups uintptr, ngroups u i++ } } - if n > int64(nlim) { + if n > int64(int64(nlim)) { v14 = int64(-int32(1)) } else { v14 = n } ret = int32(v14) - *(*int32)(unsafe.Pointer(ngroups)) = int32(n) + *(*int32)(unsafe.Pointer(ngroups)) = int32(int32(n)) + goto cleanup cleanup: ; if f != 0 { @@ -126131,11 +126168,13 @@ func X__getpw_a(tls *TLS, name uintptr, uid Tuid_t, pw uintptr, buf uintptr, siz goto cleanup_f } *(*uintptr)(unsafe.Pointer(res)) = pw + goto cleanup_f cleanup_f: ; Xfclose(tls, f) goto done } + goto done done: ; _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 4)), uintptr(0)) @@ -126452,6 +126491,7 @@ func X__nscd_query(tls *TLS, req Tint32_t, key uintptr, buf uintptr, len1 Tsize_ } errno_save = *(*int32)(unsafe.Pointer(X__errno_location(tls))) *(*int32)(unsafe.Pointer(swap)) = 0 + goto retry retry: ; Xmemset(tls, buf, 0, len1) @@ -126549,6 +126589,7 @@ retry: goto error } return f + goto error error: ; Xfclose(tls, f) @@ -126595,6 +126636,7 @@ func Xputgrent(tls *TLS, gr uintptr, f uintptr) (r1 int32) { } } r = Xfputc(tls, int32('\n'), f) + goto done done: ; Xfunlockfile(tls, f) @@ -126730,13 +126772,13 @@ func X__rand48_step(tls *TLS, xi uintptr, lc uintptr) (r Tuint64_t) { } var a, x Tuint64_t _, _ = a, x - x = uint64(uint32(*(*uint16)(unsafe.Pointer(xi)))|(uint32(*(*uint16)(unsafe.Pointer(xi + 1*2)))+0)<> int32(16)) *(*uint16)(unsafe.Pointer(xi + 2*2)) = uint16(x >> int32(32)) - return x & uint64(0xffffffffffff) + return uint64(uint64(uint64(x)) & uint64(0xffffffffffff)) } func Xerand48(tls *TLS, s uintptr) (r float64) { @@ -126757,7 +126799,7 @@ func Xerand48(tls *TLS, s uintptr) (r float64) { Ff [0]float64 Fu Tuint64_t }{} - *(*uint64)(unsafe.Pointer(bp)) = uint64(0x3ff0000000000000) | X__rand48_step(tls, s, uintptr(unsafe.Pointer(&X__seed48))+uintptr(3)*2)< %v", r) }() } - _seed = uint64(6364136223846793005)*_seed + uint64(1) + _seed = uint64(uint64(6364136223846793005)*uint64(uint64(_seed)) + uint64(1)) return int32(_seed >> int32(33)) } @@ -126897,7 +126939,7 @@ func _lcg31(tls *TLS, x Tuint32_t) (r Tuint32_t) { } func _lcg64(tls *TLS, x Tuint64_t) (r Tuint64_t) { - return uint64(6364136223846793005)*x + uint64(1) + return uint64(uint64(6364136223846793005)*uint64(uint64(x)) + uint64(1)) } func _savestate(tls *TLS) (r uintptr) { @@ -126916,9 +126958,9 @@ func ___srandom(tls *TLS, seed uint32) { var k, v1 int32 var s Tuint64_t _, _, _ = k, s, v1 - s = uint64(seed) + s = uint64(uint64(seed)) if _n == 0 { - *(*Tuint32_t)(unsafe.Pointer(_x1)) = uint32(s) + *(*Tuint32_t)(unsafe.Pointer(_x1)) = uint32(uint32(s)) return } if _n == int32(31) || _n == int32(7) { @@ -127031,6 +127073,7 @@ func Xrandom(tls *TLS) (r int64) { if v3 == _n { _j = 0 } + goto end end: ; ___unlock(tls, uintptr(unsafe.Pointer(&_lock3))) @@ -127057,7 +127100,7 @@ func Xsrand48(tls *TLS, seed int64) { defer tls.Free(16) *(*[3]uint16)(unsafe.Pointer(bp)) = [3]uint16{ 0: uint16(0x330e), - 1: uint16(seed), + 1: uint16(uint16(seed)), 2: uint16(seed >> int32(16)), } Xseed48(tls, bp) @@ -127246,7 +127289,7 @@ func X__execvpe(tls *TLS, file uintptr, argv uintptr, envp uintptr) (r int32) { v2 = l + k + uint64(1) b = Xrealloc(tls, b, v2) z = X__strchrnul(tls, p, int32(':')) - if uint64(int64(z)-int64(p)) >= l { + if uint64(int64(int64(z))-int64(int64(p))) >= l { v3 = z z++ if !(*(*int8)(unsafe.Pointer(v3)) != 0) { @@ -127254,9 +127297,9 @@ func X__execvpe(tls *TLS, file uintptr, argv uintptr, envp uintptr) (r int32) { } goto _1 } - Xmemcpy(tls, b, p, uint64(int64(z)-int64(p))) - *(*int8)(unsafe.Add(unsafe.Pointer(b), int64(z)-int64(p))) = int8('/') - Xmemcpy(tls, b+uintptr(int64(z)-int64(p))+BoolUintptr(z > p), file, k+uint64(1)) + Xmemcpy(tls, b, p, uint64(int64(int64(z))-int64(int64(p)))) + *(*int8)(unsafe.Add(unsafe.Pointer(b), int64(int64(z))-int64(int64(p)))) = int8('/') + Xmemcpy(tls, b+uintptr(int64(int64(z))-int64(int64(p)))+BoolUintptr(z > p), file, k+uint64(1)) Xexecve(tls, b, argv, envp) switch *(*int32)(unsafe.Pointer(X__errno_location(tls))) { case int32(EACCES): @@ -127312,9 +127355,9 @@ func Xfexecve(tls *TLS, fd int32, argv uintptr, envp uintptr) (r1 int32) { _ = r r = int32(X__syscall5(tls, int64(SYS_execveat), int64(fd), int64(__ccgo_ts), int64(argv), int64(envp), int64(Int32FromInt32(AT_EMPTY_PATH)))) if r != -int32(ENOSYS) { - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } - X__procfdname(tls, bp, uint32(fd)) + X__procfdname(tls, bp, uint32(uint32(fd))) Xexecve(tls, bp, argv, envp) if *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(ENOENT) { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EBADF) @@ -127634,10 +127677,10 @@ func Xposix_spawnattr_setflags(tls *TLS, attr uintptr, flags int16) (r int32) { var all_flags uint32 _ = all_flags all_flags = uint32(Int32FromInt32(POSIX_SPAWN_RESETIDS) | Int32FromInt32(POSIX_SPAWN_SETPGROUP) | Int32FromInt32(POSIX_SPAWN_SETSIGDEF) | Int32FromInt32(POSIX_SPAWN_SETSIGMASK) | Int32FromInt32(POSIX_SPAWN_SETSCHEDPARAM) | Int32FromInt32(POSIX_SPAWN_SETSCHEDULER) | Int32FromInt32(POSIX_SPAWN_USEVFORK) | Int32FromInt32(POSIX_SPAWN_SETSID)) - if uint32(flags) & ^all_flags != 0 { + if uint32(uint32(flags)) & ^all_flags != 0 { return int32(EINVAL) } - (*Tposix_spawnattr_t)(unsafe.Pointer(attr)).F__flags = int32(flags) + (*Tposix_spawnattr_t)(unsafe.Pointer(attr)).F__flags = int32(int32(flags)) return 0 } @@ -127731,7 +127774,7 @@ func _str_next(tls *TLS, str uintptr, n Tsize_t, step uintptr) (r int32) { *(*Tsize_t)(unsafe.Pointer(step)) = uint64(1) return -int32(1) } - *(*Tsize_t)(unsafe.Pointer(step)) = uint64(k) + *(*Tsize_t)(unsafe.Pointer(step)) = uint64(uint64(k)) return *(*Twchar_t)(unsafe.Pointer(bp)) } *(*Tsize_t)(unsafe.Pointer(step)) = uint64(1) @@ -127804,6 +127847,7 @@ func _pat_next(tls *TLS, pat uintptr, m Tsize_t, step uintptr, flags int32) (r i if int32(*(*int8)(unsafe.Pointer(pat))) == int32('?') { return -int32(4) } + goto escaped escaped: ; if uint32(*(*int8)(unsafe.Pointer(pat))) >= uint32(128) { @@ -127822,11 +127866,11 @@ func _casefold(tls *TLS, k int32) (r int32) { var c int32 var v1 uint32 _, _ = c, v1 - c = int32(Xtowupper(tls, uint32(k))) + c = int32(Xtowupper(tls, uint32(uint32(k)))) if c == k { - v1 = Xtowlower(tls, uint32(k)) + v1 = Xtowlower(tls, uint32(uint32(k))) } else { - v1 = uint32(c) + v1 = uint32(uint32(c)) } return int32(v1) } @@ -127870,7 +127914,7 @@ func _match_bracket(tls *TLS, p uintptr, k int32, kfold int32) (r int32) { return 0 } if *(*Twchar_t)(unsafe.Pointer(bp)) <= *(*Twchar_t)(unsafe.Pointer(bp + 4)) { - if uint32(k)-uint32(*(*Twchar_t)(unsafe.Pointer(bp))) <= uint32(*(*Twchar_t)(unsafe.Pointer(bp + 4))-*(*Twchar_t)(unsafe.Pointer(bp))) || uint32(kfold)-uint32(*(*Twchar_t)(unsafe.Pointer(bp))) <= uint32(*(*Twchar_t)(unsafe.Pointer(bp + 4))-*(*Twchar_t)(unsafe.Pointer(bp))) { + if uint32(uint32(k))-uint32(*(*Twchar_t)(unsafe.Pointer(bp))) <= uint32(*(*Twchar_t)(unsafe.Pointer(bp + 4))-*(*Twchar_t)(unsafe.Pointer(bp))) || uint32(uint32(kfold))-uint32(*(*Twchar_t)(unsafe.Pointer(bp))) <= uint32(*(*Twchar_t)(unsafe.Pointer(bp + 4))-*(*Twchar_t)(unsafe.Pointer(bp))) { return BoolInt32(!(inv != 0)) } } @@ -127884,10 +127928,10 @@ func _match_bracket(tls *TLS, p uintptr, k int32, kfold int32) (r int32) { for int32(*(*int8)(unsafe.Pointer(p + uintptr(-Int32FromInt32(1))))) != z || int32(*(*int8)(unsafe.Pointer(p))) != int32(']') { p++ } - if z == int32(':') && int64(p-uintptr(1))-int64(p0) < int64(16) { - Xmemcpy(tls, bp+8, p0, uint64(int64(p-uintptr(1))-int64(p0))) - (*(*[16]int8)(unsafe.Pointer(bp + 8)))[int64(p-uintptr(1))-int64(p0)] = 0 - if Xiswctype(tls, uint32(k), Xwctype(tls, bp+8)) != 0 || Xiswctype(tls, uint32(kfold), Xwctype(tls, bp+8)) != 0 { + if z == int32(':') && int64(p-uintptr(1))-int64(int64(p0)) < int64(16) { + Xmemcpy(tls, bp+8, p0, uint64(int64(p-uintptr(1))-int64(int64(p0)))) + (*(*[16]int8)(unsafe.Pointer(bp + 8)))[int64(p-uintptr(1))-int64(int64(p0))] = 0 + if Xiswctype(tls, uint32(uint32(k)), Xwctype(tls, bp+8)) != 0 || Xiswctype(tls, uint32(uint32(kfold)), Xwctype(tls, bp+8)) != 0 { return BoolInt32(!(inv != 0)) } } @@ -127984,7 +128028,7 @@ func _fnmatch_internal(tls *TLS, pat uintptr, m Tsize_t, str uintptr, n Tsize_t, if !(p < endpat) { break } - switch _pat_next(tls, p, uint64(int64(endpat)-int64(p)), bp, flags) { + switch _pat_next(tls, p, uint64(int64(int64(endpat))-int64(int64(p))), bp, flags) { case -int32(2): return int32(FNM_NOMATCH) case -int32(5): @@ -128016,7 +128060,7 @@ func _fnmatch_internal(tls *TLS, pat uintptr, m Tsize_t, str uintptr, n Tsize_t, break } if v9 = uint32(*(*int8)(unsafe.Pointer(s + uintptr(-Int32FromInt32(1))))) < uint32(128); !v9 { - if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale)) != 0) { + if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Flocale)) != 0) { v8 = int32(4) } else { v8 = int32(1) @@ -128045,9 +128089,9 @@ func _fnmatch_internal(tls *TLS, pat uintptr, m Tsize_t, str uintptr, n Tsize_t, /* Check that the pat and str tails match */ p = ptail for { - c = _pat_next(tls, p, uint64(int64(endpat)-int64(p)), bp, flags) + c = _pat_next(tls, p, uint64(int64(int64(endpat))-int64(int64(p))), bp, flags) p += uintptr(*(*Tsize_t)(unsafe.Pointer(bp))) - v12 = _str_next(tls, s, uint64(int64(endstr)-int64(s)), bp+8) + v12 = _str_next(tls, s, uint64(int64(int64(endstr))-int64(int64(s))), bp+8) k = v12 if v12 <= 0 { if c != END { @@ -128082,7 +128126,7 @@ func _fnmatch_internal(tls *TLS, pat uintptr, m Tsize_t, str uintptr, n Tsize_t, p = pat s = str for { - c = _pat_next(tls, p, uint64(int64(endpat)-int64(p)), bp, flags) + c = _pat_next(tls, p, uint64(int64(int64(endpat))-int64(int64(p))), bp, flags) p += uintptr(*(*Tsize_t)(unsafe.Pointer(bp))) /* Encountering * completes/commits a component */ if c == -int32(5) { @@ -128090,7 +128134,7 @@ func _fnmatch_internal(tls *TLS, pat uintptr, m Tsize_t, str uintptr, n Tsize_t, str = s break } - k = _str_next(tls, s, uint64(int64(endstr)-int64(s)), bp+8) + k = _str_next(tls, s, uint64(int64(int64(endstr))-int64(int64(s))), bp+8) if !(k != 0) { return int32(FNM_NOMATCH) } @@ -128118,13 +128162,13 @@ func _fnmatch_internal(tls *TLS, pat uintptr, m Tsize_t, str uintptr, n Tsize_t, } /* If we failed, advance str, by 1 char if it's a valid * char, or past all invalid bytes otherwise. */ - k = _str_next(tls, str, uint64(int64(endstr)-int64(str)), bp+8) + k = _str_next(tls, str, uint64(int64(int64(endstr))-int64(int64(str))), bp+8) if k > 0 { str += uintptr(*(*Tsize_t)(unsafe.Pointer(bp + 8))) } else { str++ for { - if !(_str_next(tls, str, uint64(int64(endstr)-int64(str)), bp+8) < 0) { + if !(_str_next(tls, str, uint64(int64(int64(endstr))-int64(int64(str))), bp+8) < 0) { break } goto _16 @@ -128175,7 +128219,7 @@ func Xfnmatch(tls *TLS, pat uintptr, str uintptr, flags int32) (r int32) { if c != int32(*(*int8)(unsafe.Pointer(s))) && (!(*(*int8)(unsafe.Pointer(s)) != 0) || !(flags&Int32FromInt32(FNM_LEADING_DIR) != 0)) { return int32(FNM_NOMATCH) } - if _fnmatch_internal(tls, pat, uint64(int64(p)-int64(pat)), str, uint64(int64(s)-int64(str)), flags) != 0 { + if _fnmatch_internal(tls, pat, uint64(int64(int64(p))-int64(int64(pat))), str, uint64(int64(int64(s))-int64(int64(str))), flags) != 0 { return int32(FNM_NOMATCH) } if !(c != 0) { @@ -128196,7 +128240,7 @@ func Xfnmatch(tls *TLS, pat uintptr, str uintptr, flags int32) (r int32) { if int32(*(*int8)(unsafe.Pointer(s))) != int32('/') { goto _5 } - if !(_fnmatch_internal(tls, pat, uint64(-Int32FromInt32(1)), str, uint64(int64(s)-int64(str)), flags) != 0) { + if !(_fnmatch_internal(tls, pat, uint64(-Int32FromInt32(1)), str, uint64(int64(int64(s))-int64(int64(str))), flags) != 0) { return 0 } goto _5 @@ -128295,7 +128339,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag return 0 } pat += uintptr(i) - pos += uint64(j) + pos += uint64(uint64(j)) v4 = Int64FromInt32(0) j = v4 i = v4 @@ -128388,7 +128432,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag ; p-- } - if (int64(p2)-int64(p))%int64(2) != 0 { + if (int64(int64(p2))-int64(int64(p)))%int64(2) != 0 { p2-- saved_sep = int8('\\') } @@ -128986,7 +129030,7 @@ func _tre_ast_new_node(tls *TLS, mem Ttre_mem_t, type1 int32, obj uintptr) (r ui return uintptr(0) } (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj = obj - (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ftype1 = type1 + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ftype1 = int32(type1) (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnullable = -int32(1) (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fsubmatch_id = -int32(1) return node @@ -129000,8 +129044,8 @@ func _tre_ast_new_literal(tls *TLS, mem Ttre_mem_t, code_min int32, code_max int if !(node != 0) { return uintptr(0) } - (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min = int64(code_min) - (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max = int64(code_max) + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min = int64(int64(code_min)) + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max = int64(int64(code_max)) (*Ttre_literal_t)(unsafe.Pointer(lit)).Fposition = position return node } @@ -129017,7 +129061,7 @@ func _tre_ast_new_iter(tls *TLS, mem Ttre_mem_t, arg uintptr, min int32, max int (*Ttre_iteration_t)(unsafe.Pointer(iter)).Farg = arg (*Ttre_iteration_t)(unsafe.Pointer(iter)).Fmin = min (*Ttre_iteration_t)(unsafe.Pointer(iter)).Fmax = max - SetBitFieldPtr8Uint32(iter+16, uint32(minimal), 0, 0x1) + SetBitFieldPtr8Uint32(iter+16, uint32(uint32(minimal)), 0, 0x1) (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnum_submatches = (*Ttre_ast_node_t)(unsafe.Pointer(arg)).Fnum_submatches return node } @@ -129086,7 +129130,7 @@ func _tre_stack_new(tls *TLS, size int32, max_size int32, increment int32) (r ui _ = s s = Xmalloc(tls, uint64(24)) if s != UintptrFromInt32(0) { - (*Ttre_stack_t)(unsafe.Pointer(s)).Fstack = Xmalloc(tls, uint64(8)*uint64(size)) + (*Ttre_stack_t)(unsafe.Pointer(s)).Fstack = Xmalloc(tls, uint64(8)*uint64(uint64(size))) if (*Ttre_stack_t)(unsafe.Pointer(s)).Fstack == UintptrFromInt32(0) { Xfree(tls, s) return UintptrFromInt32(0) @@ -129123,7 +129167,7 @@ func _tre_stack_push(tls *TLS, s uintptr, value Ttre_stack_item) (r Treg_errcode if new_size > (*Ttre_stack_t)(unsafe.Pointer(s)).Fmax_size { new_size = (*Ttre_stack_t)(unsafe.Pointer(s)).Fmax_size } - new_buffer = Xrealloc(tls, (*Ttre_stack_t)(unsafe.Pointer(s)).Fstack, uint64(8)*uint64(new_size)) + new_buffer = Xrealloc(tls, (*Ttre_stack_t)(unsafe.Pointer(s)).Fstack, uint64(8)*uint64(uint64(new_size))) if new_buffer == UintptrFromInt32(0) { return int32(REG_ESPACE) } @@ -129319,8 +129363,8 @@ func _add_icase_literals(tls *TLS, ls uintptr, min int32, max int32) (r int32) { /* assumes islower(c) and isupper(c) are exclusive and toupper(c)!=c if islower(c). multiple opposite case characters are not supported */ - if Xiswlower(tls, uint32(c)) != 0 { - v2 = int32(Xtowupper(tls, uint32(c))) + if Xiswlower(tls, uint32(uint32(c))) != 0 { + v2 = int32(Xtowupper(tls, uint32(uint32(c)))) e = v2 b = v2 c++ @@ -129329,7 +129373,7 @@ func _add_icase_literals(tls *TLS, ls uintptr, min int32, max int32) (r int32) { if !(c <= max) { break } - if Xtowupper(tls, uint32(c)) != uint32(e) { + if Xtowupper(tls, uint32(uint32(c))) != uint32(uint32(e)) { break } goto _3 @@ -129339,8 +129383,8 @@ func _add_icase_literals(tls *TLS, ls uintptr, min int32, max int32) (r int32) { e++ } } else { - if Xiswupper(tls, uint32(c)) != 0 { - v4 = int32(Xtowlower(tls, uint32(c))) + if Xiswupper(tls, uint32(uint32(c))) != 0 { + v4 = int32(Xtowlower(tls, uint32(uint32(c)))) e = v4 b = v4 c++ @@ -129349,7 +129393,7 @@ func _add_icase_literals(tls *TLS, ls uintptr, min int32, max int32) (r int32) { if !(c <= max) { break } - if Xtowlower(tls, uint32(c)) != uint32(e) { + if Xtowlower(tls, uint32(uint32(c))) != uint32(uint32(e)) { break } goto _5 @@ -129367,7 +129411,7 @@ func _add_icase_literals(tls *TLS, ls uintptr, min int32, max int32) (r int32) { if !(lit != 0) { return -int32(1) } - (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min = int64(b) + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min = int64(int64(b)) (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max = int64(e - int32(1)) (*Ttre_literal_t)(unsafe.Pointer(lit)).Fposition = -int32(1) goto _1 @@ -129444,7 +129488,7 @@ func _parse_bracket_terms(tls *TLS, ctx uintptr, s uintptr, ls uintptr, neg uint break } if int32(*(*int8)(unsafe.Pointer(s + uintptr(len1)))) == int32(':') { - Xmemcpy(tls, bp+4, s, uint64(len1)) + Xmemcpy(tls, bp+4, s, uint64(uint64(len1))) (*(*[15]int8)(unsafe.Pointer(bp + 4)))[len1] = 0 class = Xwctype(tls, bp+4) break @@ -129490,8 +129534,8 @@ func _parse_bracket_terms(tls *TLS, ctx uintptr, s uintptr, ls uintptr, neg uint if !(lit != 0) { return int32(REG_ESPACE) } - (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min = int64(min) - (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max = int64(max) + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min = int64(int64(min)) + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max = int64(int64(max)) (*Ttre_literal_t)(unsafe.Pointer(lit)).Fclass = class (*Ttre_literal_t)(unsafe.Pointer(lit)).Fposition = -int32(1) /* Add opposite-case codepoints if REG_ICASE is present. @@ -129601,8 +129645,8 @@ func _parse_bracket(tls *TLS, ctx uintptr, s uintptr) (r Treg_errcode_t) { goto _2 } negmax = min - int32(1) - (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min = int64(negmin) - (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max = int64(negmax) + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min = int64(int64(negmin)) + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max = int64(int64(negmax)) negmin = max + int32(1) } (*Ttre_literal_t)(unsafe.Pointer(lit)).Fposition = (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fposition @@ -129618,6 +129662,7 @@ func _parse_bracket(tls *TLS, ctx uintptr, s uintptr) (r Treg_errcode_t) { ; i++ } + goto parse_bracket_done parse_bracket_done: ; Xfree(tls, (*(*Tliterals)(unsafe.Pointer(bp))).Fa) @@ -129930,6 +129975,7 @@ _11: goto _13 _12: ; + goto parse_literal parse_literal: ; len1 = Xmbtowc(tls, bp, s, uint64(-Int32FromInt32(1))) @@ -129953,6 +129999,7 @@ parse_literal: goto _13 _13: ; + goto end end: ; if !(node != 0) { @@ -130028,6 +130075,7 @@ func _tre_parse(tls *TLS, ctx uintptr) (r Treg_errcode_t) { } s = (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fs } + goto parse_iter parse_iter: ; for { @@ -132166,7 +132214,7 @@ func Xregcomp(tls *TLS, preg uintptr, regex uintptr, cflags int32) (r int32) { ; i++ } - transitions = Xcalloc(tls, uint64(uint32(add)+uint32(1)), uint64(56)) + transitions = Xcalloc(tls, uint64(uint32(uint32(add))+uint32(1)), uint64(56)) if transitions == UintptrFromInt32(0) { errcode = int32(REG_ESPACE) if int32(1) != 0 { @@ -132174,7 +132222,7 @@ func Xregcomp(tls *TLS, preg uintptr, regex uintptr, cflags int32) (r int32) { } } (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftransitions = transitions - (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_transitions = uint32(add) + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_transitions = uint32(uint32(add)) errcode = _tre_ast_to_tnfa(tls, tree, transitions, counts, offs) if errcode != REG_OK { errcode = errcode @@ -132189,7 +132237,7 @@ func Xregcomp(tls *TLS, preg uintptr, regex uintptr, cflags int32) (r int32) { i++ p += 56 } - initial = Xcalloc(tls, uint64(uint32(i)+uint32(1)), uint64(56)) + initial = Xcalloc(tls, uint64(uint32(uint32(i))+uint32(1)), uint64(56)) if initial == UintptrFromInt32(0) { errcode = int32(REG_ESPACE) if int32(1) != 0 { @@ -132236,7 +132284,7 @@ func Xregcomp(tls *TLS, preg uintptr, regex uintptr, cflags int32) (r int32) { p += 56 } (*(*Ttre_tnfa_transition_t)(unsafe.Pointer(initial + uintptr(i)*56))).Fstate = UintptrFromInt32(0) - (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_transitions = uint32(add) + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_transitions = uint32(uint32(add)) (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ffinal = transitions + uintptr(*(*int32)(unsafe.Pointer(offs + uintptr((*(*Ttre_pos_and_tags_t)(unsafe.Pointer((*Ttre_ast_node_t)(unsafe.Pointer(tree)).Flastpos))).Fposition)*4)))*56 (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states = (*(*Ttre_parse_ctx_t)(unsafe.Pointer(bp))).Fposition (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags = cflags @@ -132246,6 +132294,7 @@ func Xregcomp(tls *TLS, preg uintptr, regex uintptr, cflags int32) (r int32) { Xfree(tls, offs) (*Tregex_t)(unsafe.Pointer(preg)).F__opaque = tnfa return REG_OK + goto error_exit error_exit: ; /* Free everything that was allocated and return the error code. */ @@ -132493,7 +132542,7 @@ func _tre_tnfa_run_parallel(tls *TLS, tnfa uintptr, string1 uintptr, match_tags everything in a single large block with calloc(). */ /* Ensure that tbytes and xbytes*num_states cannot overflow, and that * they don't contribute more than 1/8 of SIZE_MAX to total_bytes. */ - if uint64(num_tags) > uint64(0xffffffffffffffff)/(Uint64FromInt32(8)*Uint64FromInt64(8)*uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states)) { + if uint64(uint64(num_tags)) > uint64(0xffffffffffffffff)/(Uint64FromInt32(8)*Uint64FromInt64(8)*uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states)) { return int32(REG_ESPACE) } /* Likewise check rbytes. */ @@ -132505,10 +132554,10 @@ func _tre_tnfa_run_parallel(tls *TLS, tnfa uintptr, string1 uintptr, match_tags return int32(REG_ESPACE) } /* Compute the length of the block we need. */ - tbytes = uint64(8) * uint64(num_tags) + tbytes = uint64(8) * uint64(uint64(num_tags)) rbytes = uint64(16) * uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states+Int32FromInt32(1)) pbytes = uint64(16) * uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states) - xbytes = uint64(8) * uint64(num_tags) + xbytes = uint64(8) * uint64(uint64(num_tags)) total_bytes = (Uint64FromInt64(8)-Uint64FromInt32(1))*Uint64FromInt32(4) + (rbytes+xbytes*uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states))*uint64(2) + tbytes + pbytes /* Allocate the memory. */ buf = Xcalloc(tls, total_bytes, uint64(1)) @@ -132518,32 +132567,32 @@ func _tre_tnfa_run_parallel(tls *TLS, tnfa uintptr, string1 uintptr, match_tags /* Get the various pointers within tmp_buf (properly aligned). */ tmp_tags = buf tmp_buf = buf + uintptr(tbytes) - if uint64(int64(tmp_buf))%uint64(8) != 0 { - v1 = uint64(8) - uint64(int64(tmp_buf))%uint64(8) + if uint64(int64(int64(tmp_buf)))%uint64(8) != 0 { + v1 = uint64(8) - uint64(int64(int64(tmp_buf)))%uint64(8) } else { v1 = uint64(0) } tmp_buf += uintptr(v1) reach_next = tmp_buf tmp_buf += uintptr(rbytes) - if uint64(int64(tmp_buf))%uint64(8) != 0 { - v2 = uint64(8) - uint64(int64(tmp_buf))%uint64(8) + if uint64(int64(int64(tmp_buf)))%uint64(8) != 0 { + v2 = uint64(8) - uint64(int64(int64(tmp_buf)))%uint64(8) } else { v2 = uint64(0) } tmp_buf += uintptr(v2) reach = tmp_buf tmp_buf += uintptr(rbytes) - if uint64(int64(tmp_buf))%uint64(8) != 0 { - v3 = uint64(8) - uint64(int64(tmp_buf))%uint64(8) + if uint64(int64(int64(tmp_buf)))%uint64(8) != 0 { + v3 = uint64(8) - uint64(int64(int64(tmp_buf)))%uint64(8) } else { v3 = uint64(0) } tmp_buf += uintptr(v3) reach_pos = tmp_buf tmp_buf += uintptr(pbytes) - if uint64(int64(tmp_buf))%uint64(8) != 0 { - v4 = uint64(8) - uint64(int64(tmp_buf))%uint64(8) + if uint64(int64(int64(tmp_buf)))%uint64(8) != 0 { + v4 = uint64(8) - uint64(int64(int64(tmp_buf)))%uint64(8) } else { v4 = uint64(0) } @@ -132594,7 +132643,7 @@ func _tre_tnfa_run_parallel(tls *TLS, tnfa uintptr, string1 uintptr, match_tags trans_i = (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Finitial for (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate != UintptrFromInt32(0) { if (*(*Ttre_reach_pos_t)(unsafe.Pointer(reach_pos + uintptr((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate_id)*16))).Fpos < pos { - if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions != 0 && ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOL) != 0 && (pos > 0 || reg_notbol != 0) && (prev_c != int32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOL) != 0 && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\000') || reg_noteol != 0) && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOW) != 0 && (prev_c == int32('_') || Xiswalnum(tls, uint32(prev_c)) != 0 || !(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOW) != 0 && (!(prev_c == int32('_') || Xiswalnum(tls, uint32(prev_c)) != 0) || (*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB) != 0 && (pos != 0 && *(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\000') && BoolInt32(prev_c == int32('_') || Xiswalnum(tls, uint32(prev_c)) != 0) == BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB_NEG) != 0 && (pos == 0 || *(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('\000') || BoolInt32(prev_c == int32('_') || Xiswalnum(tls, uint32(prev_c)) != 0) != BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0))) { + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions != 0 && ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOL) != 0 && (pos > 0 || reg_notbol != 0) && (prev_c != int32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOL) != 0 && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\000') || reg_noteol != 0) && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOW) != 0 && (prev_c == int32('_') || Xiswalnum(tls, uint32(uint32(prev_c))) != 0 || !(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOW) != 0 && (!(prev_c == int32('_') || Xiswalnum(tls, uint32(uint32(prev_c))) != 0) || (*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB) != 0 && (pos != 0 && *(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\000') && BoolInt32(prev_c == int32('_') || Xiswalnum(tls, uint32(uint32(prev_c))) != 0) == BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB_NEG) != 0 && (pos == 0 || *(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('\000') || BoolInt32(prev_c == int32('_') || Xiswalnum(tls, uint32(uint32(prev_c))) != 0) != BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0))) { trans_i += 56 continue } @@ -132733,8 +132782,8 @@ func _tre_tnfa_run_parallel(tls *TLS, tnfa uintptr, string1 uintptr, match_tags break } /* Does this transition match the input symbol? */ - if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fcode_min <= uint32(prev_c) && (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fcode_max >= uint32(prev_c) { - if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions != 0 && ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOL) != 0 && (pos > 0 || reg_notbol != 0) && (prev_c != int32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOL) != 0 && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\000') || reg_noteol != 0) && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOW) != 0 && (prev_c == int32('_') || Xiswalnum(tls, uint32(prev_c)) != 0 || !(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOW) != 0 && (!(prev_c == int32('_') || Xiswalnum(tls, uint32(prev_c)) != 0) || (*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB) != 0 && (pos != 0 && *(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\000') && BoolInt32(prev_c == int32('_') || Xiswalnum(tls, uint32(prev_c)) != 0) == BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB_NEG) != 0 && (pos == 0 || *(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('\000') || BoolInt32(prev_c == int32('_') || Xiswalnum(tls, uint32(prev_c)) != 0) != BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS) != 0 && !((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&Int32FromInt32(REG_ICASE) != 0) && !(Xiswctype(tls, uint32(prev_c), *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS) != 0 && (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&int32(REG_ICASE) != 0 && !(Xiswctype(tls, Xtowlower(tls, uint32(prev_c)), *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) && !(Xiswctype(tls, Xtowupper(tls, uint32(prev_c)), *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS_NEG) != 0 && _tre_neg_char_classes_match(tls, (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fneg_classes, uint32(prev_c), (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&int32(REG_ICASE)) != 0)) { + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fcode_min <= uint32(uint32(prev_c)) && (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fcode_max >= uint32(uint32(prev_c)) { + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions != 0 && ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOL) != 0 && (pos > 0 || reg_notbol != 0) && (prev_c != int32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOL) != 0 && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\000') || reg_noteol != 0) && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOW) != 0 && (prev_c == int32('_') || Xiswalnum(tls, uint32(uint32(prev_c))) != 0 || !(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOW) != 0 && (!(prev_c == int32('_') || Xiswalnum(tls, uint32(uint32(prev_c))) != 0) || (*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB) != 0 && (pos != 0 && *(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\000') && BoolInt32(prev_c == int32('_') || Xiswalnum(tls, uint32(uint32(prev_c))) != 0) == BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB_NEG) != 0 && (pos == 0 || *(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('\000') || BoolInt32(prev_c == int32('_') || Xiswalnum(tls, uint32(uint32(prev_c))) != 0) != BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS) != 0 && !((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&Int32FromInt32(REG_ICASE) != 0) && !(Xiswctype(tls, uint32(uint32(prev_c)), *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS) != 0 && (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&int32(REG_ICASE) != 0 && !(Xiswctype(tls, Xtowlower(tls, uint32(uint32(prev_c))), *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) && !(Xiswctype(tls, Xtowupper(tls, uint32(uint32(prev_c))), *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS_NEG) != 0 && _tre_neg_char_classes_match(tls, (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fneg_classes, uint32(uint32(prev_c)), (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&int32(REG_ICASE)) != 0)) { goto _14 } /* Compute the tags after this transition. */ @@ -132828,6 +132877,7 @@ func _tre_tnfa_run_parallel(tls *TLS, tnfa uintptr, string1 uintptr, match_tags v18 = int32(REG_NOMATCH) } ret = v18 + goto error_exit error_exit: ; Xfree(tls, buf) @@ -132937,6 +132987,7 @@ func _tre_tnfa_run_backtrack(tls *TLS, tnfa uintptr, string1 uintptr, match_tags goto error_exit } } + goto retry retry: ; i = 0 @@ -132989,7 +133040,7 @@ retry: if !((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate != 0) { break } - if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions != 0 && ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOL) != 0 && (pos > 0 || reg_notbol != 0) && (prev_c != int32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOL) != 0 && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\000') || reg_noteol != 0) && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOW) != 0 && (prev_c == int32('_') || Xiswalnum(tls, uint32(prev_c)) != 0 || !(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOW) != 0 && (!(prev_c == int32('_') || Xiswalnum(tls, uint32(prev_c)) != 0) || (*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB) != 0 && (pos != 0 && *(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\000') && BoolInt32(prev_c == int32('_') || Xiswalnum(tls, uint32(prev_c)) != 0) == BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB_NEG) != 0 && (pos == 0 || *(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('\000') || BoolInt32(prev_c == int32('_') || Xiswalnum(tls, uint32(prev_c)) != 0) != BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0))) { + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions != 0 && ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOL) != 0 && (pos > 0 || reg_notbol != 0) && (prev_c != int32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOL) != 0 && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\000') || reg_noteol != 0) && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOW) != 0 && (prev_c == int32('_') || Xiswalnum(tls, uint32(uint32(prev_c))) != 0 || !(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOW) != 0 && (!(prev_c == int32('_') || Xiswalnum(tls, uint32(uint32(prev_c))) != 0) || (*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB) != 0 && (pos != 0 && *(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\000') && BoolInt32(prev_c == int32('_') || Xiswalnum(tls, uint32(uint32(prev_c))) != 0) == BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB_NEG) != 0 && (pos == 0 || *(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('\000') || BoolInt32(prev_c == int32('_') || Xiswalnum(tls, uint32(uint32(prev_c))) != 0) != BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0))) { goto _4 } if state == UintptrFromInt32(0) { @@ -133117,7 +133168,7 @@ _9: so = (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(bt)*16))).Frm_so eo = (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(bt)*16))).Frm_eo bt_len = eo - so - result = Xstrncmp(tls, string1+uintptr(so), str_byte-uintptr(1), uint64(bt_len)) + result = Xstrncmp(tls, string1+uintptr(so), str_byte-uintptr(1), uint64(uint64(bt_len))) if result == 0 { /* Back reference matched. Check for infinite loop. */ if bt_len == 0 { @@ -133173,8 +133224,8 @@ _9: if !((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate != 0) { break } - if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fcode_min <= uint32(prev_c) && (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fcode_max >= uint32(prev_c) { - if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions != 0 && ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOL) != 0 && (pos > 0 || reg_notbol != 0) && (prev_c != int32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOL) != 0 && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\000') || reg_noteol != 0) && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOW) != 0 && (prev_c == int32('_') || Xiswalnum(tls, uint32(prev_c)) != 0 || !(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOW) != 0 && (!(prev_c == int32('_') || Xiswalnum(tls, uint32(prev_c)) != 0) || (*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB) != 0 && (pos != 0 && *(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\000') && BoolInt32(prev_c == int32('_') || Xiswalnum(tls, uint32(prev_c)) != 0) == BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB_NEG) != 0 && (pos == 0 || *(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('\000') || BoolInt32(prev_c == int32('_') || Xiswalnum(tls, uint32(prev_c)) != 0) != BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS) != 0 && !((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&Int32FromInt32(REG_ICASE) != 0) && !(Xiswctype(tls, uint32(prev_c), *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS) != 0 && (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&int32(REG_ICASE) != 0 && !(Xiswctype(tls, Xtowlower(tls, uint32(prev_c)), *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) && !(Xiswctype(tls, Xtowupper(tls, uint32(prev_c)), *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS_NEG) != 0 && _tre_neg_char_classes_match(tls, (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fneg_classes, uint32(prev_c), (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&int32(REG_ICASE)) != 0)) { + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fcode_min <= uint32(uint32(prev_c)) && (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fcode_max >= uint32(uint32(prev_c)) { + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions != 0 && ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOL) != 0 && (pos > 0 || reg_notbol != 0) && (prev_c != int32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOL) != 0 && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\000') || reg_noteol != 0) && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOW) != 0 && (prev_c == int32('_') || Xiswalnum(tls, uint32(uint32(prev_c))) != 0 || !(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOW) != 0 && (!(prev_c == int32('_') || Xiswalnum(tls, uint32(uint32(prev_c))) != 0) || (*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB) != 0 && (pos != 0 && *(*Ttre_char_t)(unsafe.Pointer(bp)) != int32('\000') && BoolInt32(prev_c == int32('_') || Xiswalnum(tls, uint32(uint32(prev_c))) != 0) == BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB_NEG) != 0 && (pos == 0 || *(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('\000') || BoolInt32(prev_c == int32('_') || Xiswalnum(tls, uint32(uint32(prev_c))) != 0) != BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == int32('_') || Xiswalnum(tls, uint32(*(*Ttre_char_t)(unsafe.Pointer(bp)))) != 0)) || ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS) != 0 && !((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&Int32FromInt32(REG_ICASE) != 0) && !(Xiswctype(tls, uint32(uint32(prev_c)), *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS) != 0 && (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&int32(REG_ICASE) != 0 && !(Xiswctype(tls, Xtowlower(tls, uint32(uint32(prev_c))), *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) && !(Xiswctype(tls, Xtowupper(tls, uint32(uint32(prev_c))), *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS_NEG) != 0 && _tre_neg_char_classes_match(tls, (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fneg_classes, uint32(uint32(prev_c)), (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&int32(REG_ICASE)) != 0)) { goto _13 } if next_state == UintptrFromInt32(0) { @@ -133272,6 +133323,7 @@ _9: goto _17 _16: ; + goto backtrack backtrack: ; /* A matching transition was not found. Try to backtrack. */ @@ -133321,6 +133373,7 @@ _8: } ret = v20 *(*Tregoff_t)(unsafe.Pointer(match_end_ofs)) = match_eo + goto error_exit error_exit: ; X__tre_mem_destroy(tls, mem) @@ -133353,7 +133406,7 @@ func _tre_fill_pmatch(tls *TLS, nmatch Tsize_t, pmatch uintptr, cflags int32, tn if match_eo >= 0 && !(cflags&Int32FromInt32(REG_NOSUB) != 0) { /* Construct submatch offsets from the tags. */ submatch_data = (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fsubmatch_data - for i < (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_submatches && uint64(i) < nmatch { + for i < (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_submatches && uint64(uint64(i)) < nmatch { if (*(*Ttre_submatch_data_t)(unsafe.Pointer(submatch_data + uintptr(i)*16))).Fso_tag == (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fend_tag { (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_so = match_eo } else { @@ -133376,7 +133429,7 @@ func _tre_fill_pmatch(tls *TLS, nmatch Tsize_t, pmatch uintptr, cflags int32, tn /* Reset all submatches that are not within all of their parent submatches. */ i = uint32(0) - for i < (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_submatches && uint64(i) < nmatch { + for i < (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_submatches && uint64(uint64(i)) < nmatch { if (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_eo == int64(-int32(1)) { } parents = (*(*Ttre_submatch_data_t)(unsafe.Pointer(submatch_data + uintptr(i)*16))).Fparents @@ -133400,7 +133453,7 @@ func _tre_fill_pmatch(tls *TLS, nmatch Tsize_t, pmatch uintptr, cflags int32, tn i++ } } - for uint64(i) < nmatch { + for uint64(uint64(i)) < nmatch { (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_so = int64(-int32(1)) (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_eo = int64(-int32(1)) i++ @@ -133534,7 +133587,7 @@ func X__tre_mem_alloc_impl(tls *TLS, mem Ttre_mem_t, provided int32, provided_bl (*Ttre_mem_struct)(unsafe.Pointer(mem)).Ffailed = int32(1) return UintptrFromInt32(0) } - (*Ttre_list_t)(unsafe.Pointer(l)).Fdata = Xmalloc(tls, uint64(block_size)) + (*Ttre_list_t)(unsafe.Pointer(l)).Fdata = Xmalloc(tls, uint64(uint64(block_size))) if (*Ttre_list_t)(unsafe.Pointer(l)).Fdata == UintptrFromInt32(0) { Xfree(tls, l) (*Ttre_mem_struct)(unsafe.Pointer(mem)).Ffailed = int32(1) @@ -133549,7 +133602,7 @@ func X__tre_mem_alloc_impl(tls *TLS, mem Ttre_mem_t, provided int32, provided_bl } (*Ttre_mem_struct)(unsafe.Pointer(mem)).Fcurrent = l (*Ttre_mem_struct)(unsafe.Pointer(mem)).Fptr = (*Ttre_list_t)(unsafe.Pointer(l)).Fdata - (*Ttre_mem_struct)(unsafe.Pointer(mem)).Fn = uint64(block_size) + (*Ttre_mem_struct)(unsafe.Pointer(mem)).Fn = uint64(uint64(block_size)) } } /* Make sure the next pointer will be aligned. */ @@ -133775,7 +133828,7 @@ func ___hsearch_r(tls *TLS, item TENTRY, action TACTION, retval uintptr, htab ui *(*uintptr)(unsafe.Pointer(retval)) = e return int32(1) } - if action == int32(_FIND) { + if int32(action) == int32(_FIND) { *(*uintptr)(unsafe.Pointer(retval)) = uintptr(0) return 0 } @@ -134238,7 +134291,7 @@ func Xpselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, ts ui var _ /* data at bp+16 */ [2]Tsyscall_arg_t _, _, _, _, _ = ns, s, v1, v2, v3 *(*[2]Tsyscall_arg_t)(unsafe.Pointer(bp + 16)) = [2]Tsyscall_arg_t{ - 0: int64(uint64(mask)), + 0: int64(uint64(uint64(mask))), 1: int64(Int32FromInt32(_NSIG) / Int32FromInt32(8)), } if ts != 0 { @@ -134370,7 +134423,7 @@ func Xgetitimer(tls *TLS, which int32, old uintptr) (r1 int32) { (*Titimerval)(unsafe.Pointer(old)).Fit_value.Ftv_sec = (*(*[4]int64)(unsafe.Pointer(bp)))[int32(2)] (*Titimerval)(unsafe.Pointer(old)).Fit_value.Ftv_usec = (*(*[4]int64)(unsafe.Pointer(bp)))[int32(3)] } - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_getitimer), int64(which), int64(old))))) } @@ -134457,7 +134510,7 @@ func Xraise(tls *TLS, sig int32) (r int32) { var _ /* set at bp+0 */ Tsigset_t _ = ret X__block_app_sigs(tls, bp) - ret = int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_tkill), int64((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Ftid), int64(sig))))) + ret = int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_tkill), int64((*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Ftid), int64(sig))))) X__restore_sigs(tls, bp) return ret } @@ -134509,7 +134562,7 @@ func Xsetitimer(tls *TLS, which int32, new1 uintptr, old uintptr) (r1 int32) { (*Titimerval)(unsafe.Pointer(old)).Fit_value.Ftv_sec = (*(*[4]int64)(unsafe.Pointer(bp + 32)))[int32(2)] (*Titimerval)(unsafe.Pointer(old)).Fit_value.Ftv_usec = (*(*[4]int64)(unsafe.Pointer(bp + 32)))[int32(3)] } - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_setitimer), int64(which), int64(new1), int64(old))))) } @@ -134613,7 +134666,7 @@ func X__libc_sigaction(tls *TLS, sig int32, sa uintptr, old uintptr) (r1 int32) (*Tsigaction)(unsafe.Pointer(old)).Fsa_flags = int32((*(*Tk_sigaction)(unsafe.Pointer(bp + 40))).Fflags) Xmemcpy(tls, old+8, bp+40+24, uint64(Int32FromInt32(_NSIG)/Int32FromInt32(8))) } - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } func X__sigaction(tls *TLS, sig int32, sa uintptr, old uintptr) (r1 int32) { @@ -134626,7 +134679,7 @@ func X__sigaction(tls *TLS, sig int32, sa uintptr, old uintptr) (r1 int32) { var r int32 var _ /* set at bp+0 */ [1]uint64 _ = r - if uint32(sig)-uint32(32) < uint32(3) || uint32(sig)-uint32(1) >= uint32(Int32FromInt32(_NSIG)-Int32FromInt32(1)) { + if uint32(uint32(sig))-uint32(32) < uint32(3) || uint32(uint32(sig))-uint32(1) >= uint32(Int32FromInt32(_NSIG)-Int32FromInt32(1)) { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) return -int32(1) } @@ -134661,11 +134714,11 @@ func Xsigaddset(tls *TLS, set uintptr, sig int32) (r int32) { var s uint32 _ = s s = uint32(sig - int32(1)) - if s >= uint32(Int32FromInt32(_NSIG)-Int32FromInt32(1)) || uint32(sig)-uint32(32) < uint32(3) { + if s >= uint32(Int32FromInt32(_NSIG)-Int32FromInt32(1)) || uint32(uint32(sig))-uint32(32) < uint32(3) { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) return -int32(1) } - *(*uint64)(unsafe.Pointer(set + uintptr(uint64(s/uint32(8))/uint64(8))*8)) |= uint64(1) << (uint64(s) & (Uint64FromInt32(8)*Uint64FromInt64(8) - Uint64FromInt32(1))) + *(*uint64)(unsafe.Pointer(set + uintptr(uint64(s/uint32(8))/uint64(8))*8)) |= uint64(1) << (uint64(uint64(s)) & (Uint64FromInt32(8)*Uint64FromInt64(8) - Uint64FromInt32(1))) return 0 } @@ -134731,11 +134784,11 @@ func Xsigdelset(tls *TLS, set uintptr, sig int32) (r int32) { var s uint32 _ = s s = uint32(sig - int32(1)) - if s >= uint32(Int32FromInt32(_NSIG)-Int32FromInt32(1)) || uint32(sig)-uint32(32) < uint32(3) { + if s >= uint32(Int32FromInt32(_NSIG)-Int32FromInt32(1)) || uint32(uint32(sig))-uint32(32) < uint32(3) { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) return -int32(1) } - *(*uint64)(unsafe.Pointer(set + uintptr(uint64(s/uint32(8))/uint64(8))*8)) &= ^(Uint64FromUint64(1) << (uint64(s) & (Uint64FromInt32(8)*Uint64FromInt64(8) - Uint64FromInt32(1)))) + *(*uint64)(unsafe.Pointer(set + uintptr(uint64(s/uint32(8))/uint64(8))*8)) &= ^(Uint64FromUint64(1) << (uint64(uint64(s)) & (Uint64FromInt32(8)*Uint64FromInt64(8) - Uint64FromInt32(1)))) return 0 } @@ -134810,7 +134863,7 @@ func Xsigismember(tls *TLS, set uintptr, sig int32) (r int32) { if s >= uint32(Int32FromInt32(_NSIG)-Int32FromInt32(1)) { return 0 } - return BoolInt32(!!(*(*uint64)(unsafe.Pointer(set + uintptr(uint64(s/uint32(8))/uint64(8))*8))&(Uint64FromUint64(1)<<(uint64(s)&(Uint64FromInt32(8)*Uint64FromInt64(8)-Uint64FromInt32(1)))) != 0)) + return BoolInt32(!!(*(*uint64)(unsafe.Pointer(set + uintptr(uint64(s/uint32(8))/uint64(8))*8))&(Uint64FromUint64(1)<<(uint64(uint64(s))&(Uint64FromInt32(8)*Uint64FromInt64(8)-Uint64FromInt32(1)))) != 0)) } func Xsigorset(tls *TLS, dest uintptr, left uintptr, right uintptr) (r1 int32) { @@ -134956,7 +135009,7 @@ func Xsigtimedwait(tls *TLS, mask uintptr, si uintptr, timeout uintptr) (r int32 for cond := true; cond; cond = ret == -int32(EINTR) { ret = _do_sigtimedwait(tls, mask, si, timeout) } - return int32(X__syscall_ret(tls, uint64(ret))) + return int32(X__syscall_ret(tls, uint64(uint64(ret)))) } func Xsigwait(tls *TLS, mask uintptr, sig uintptr) (r int32) { @@ -135050,9 +135103,9 @@ func Xfchmod(tls *TLS, fd int32, mode Tmode_t) (r int32) { _ = ret ret = int32(X__syscall2(tls, int64(SYS_fchmod), int64(fd), int64(mode))) if ret != -int32(EBADF) || X__syscall2(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_GETFD))) < 0 { - return int32(X__syscall_ret(tls, uint64(ret))) + return int32(X__syscall_ret(tls, uint64(uint64(ret)))) } - X__procfdname(tls, bp, uint32(fd)) + X__procfdname(tls, bp, uint32(uint32(fd))) return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_chmod), int64(bp), int64(mode))))) } @@ -135072,7 +135125,7 @@ func Xfchmodat(tls *TLS, fd int32, path uintptr, mode Tmode_t, flag int32) (r in } ret = int32(X__syscall4(tls, int64(SYS_fchmodat2), int64(fd), int64(path), int64(mode), int64(flag))) if ret != -int32(ENOSYS) { - return int32(X__syscall_ret(tls, uint64(ret))) + return int32(X__syscall_ret(tls, uint64(uint64(ret)))) } if flag != int32(AT_SYMLINK_NOFOLLOW) { return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EINVAL)))) @@ -135089,9 +135142,9 @@ func Xfchmodat(tls *TLS, fd int32, path uintptr, mode Tmode_t, flag int32) (r in if fd2 == -int32(ELOOP) { return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EOPNOTSUPP)))) } - return int32(X__syscall_ret(tls, uint64(fd2))) + return int32(X__syscall_ret(tls, uint64(uint64(fd2)))) } - X__procfdname(tls, bp+144, uint32(fd2)) + X__procfdname(tls, bp+144, uint32(uint32(fd2))) ret = Xstat(tls, bp+144, bp) if !(ret != 0) { if (*(*Tstat)(unsafe.Pointer(bp))).Fst_mode&uint32(S_IFMT) == uint32(S_IFLNK) { @@ -135175,13 +135228,13 @@ func _fstatat_statx(tls *TLS, fd int32, path uintptr, st uintptr, flag int32) (r return ret } *(*Tstat)(unsafe.Pointer(st)) = Tstat{ - Fst_dev: uint64((*(*Tstatx1)(unsafe.Pointer(bp))).Fstx_dev_major)&Uint64FromUint64(0xfffff000)<= 0 { ret = int32(X__syscall4(tls, int64(SYS_newfstatat), int64(fd), int64(path), int64(bp), int64(flag))) if ret == -int32(EINVAL) { - X__procfdname(tls, bp+144, uint32(fd)) + X__procfdname(tls, bp+144, uint32(uint32(fd))) ret = int32(X__syscall2(tls, int64(SYS_stat), int64(bp+144), int64(bp))) } } @@ -135289,11 +135342,11 @@ func X__fstatat(tls *TLS, fd int32, path uintptr, st uintptr, flag int32) (r int if uint64(8) < uint64(8) { ret = _fstatat_statx(tls, fd, path, st, flag) if ret != -int32(ENOSYS) { - return int32(X__syscall_ret(tls, uint64(ret))) + return int32(X__syscall_ret(tls, uint64(uint64(ret)))) } } ret = _fstatat_kstat(tls, fd, path, st, flag) - return int32(X__syscall_ret(tls, uint64(ret))) + return int32(X__syscall_ret(tls, uint64(uint64(ret)))) } func Xfstatat(tls *TLS, fd int32, path uintptr, st uintptr, flag int32) (r int32) { @@ -135519,7 +135572,7 @@ func Xutimensat(tls *TLS, fd int32, path uintptr, times uintptr, flags int32) (r } r = int32(X__syscall4(tls, int64(SYS_utimensat), int64(fd), int64(path), int64(times), int64(flags))) if r != -int32(ENOSYS) || flags != 0 { - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } tv = uintptr(0) if times != 0 { @@ -135545,10 +135598,10 @@ func Xutimensat(tls *TLS, fd int32, path uintptr, times uintptr, flags int32) (r } r = int32(X__syscall3(tls, int64(SYS_futimesat), int64(fd), int64(path), int64(tv))) if r != -int32(ENOSYS) || fd != -int32(100) { - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } r = int32(X__syscall2(tls, int64(SYS_utimes), int64(path), int64(tv))) - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } func X__fclose_ca(tls *TLS, f uintptr) (r int32) { @@ -135698,7 +135751,7 @@ func X__overflow(tls *TLS, f uintptr, _c int32) (r int32) { var v2, v3 uintptr var _ /* c at bp+0 */ uint8 _, _, _ = v1, v2, v3 - *(*uint8)(unsafe.Pointer(bp)) = uint8(_c) + *(*uint8)(unsafe.Pointer(bp)) = uint8(uint8(_c)) if !((*TFILE)(unsafe.Pointer(f)).Fwend != 0) && X__towrite(tls, f) != 0 { return -int32(1) } @@ -135812,8 +135865,8 @@ func X__stdio_read(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { *(*uint32)(unsafe.Pointer(f)) |= uint32(v2) return uint64(0) } - if uint64(cnt) <= (*(*[2]Tiovec)(unsafe.Pointer(bp)))[0].Fiov_len { - return uint64(cnt) + if uint64(uint64(cnt)) <= (*(*[2]Tiovec)(unsafe.Pointer(bp)))[0].Fiov_len { + return uint64(uint64(cnt)) } cnt = Tssize_t(uint64(cnt) - (*(*[2]Tiovec)(unsafe.Pointer(bp)))[0].Fiov_len) (*TFILE)(unsafe.Pointer(f)).Frpos = (*TFILE)(unsafe.Pointer(f)).Fbuf @@ -135864,7 +135917,7 @@ func X__stdio_write(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) iovcnt = int32(2) for { cnt = X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_writev), int64((*TFILE)(unsafe.Pointer(f)).Ffd), int64(iov), int64(iovcnt)))) - if uint64(cnt) == rem { + if uint64(uint64(cnt)) == rem { (*TFILE)(unsafe.Pointer(f)).Fwend = (*TFILE)(unsafe.Pointer(f)).Fbuf + uintptr((*TFILE)(unsafe.Pointer(f)).Fbuf_size) v2 = (*TFILE)(unsafe.Pointer(f)).Fbuf (*TFILE)(unsafe.Pointer(f)).Fwbase = v2 @@ -135885,14 +135938,14 @@ func X__stdio_write(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) } return v5 } - rem -= uint64(cnt) - if uint64(cnt) > (*(*Tiovec)(unsafe.Pointer(iov))).Fiov_len { + rem -= uint64(uint64(cnt)) + if uint64(uint64(cnt)) > (*(*Tiovec)(unsafe.Pointer(iov))).Fiov_len { cnt = Tssize_t(uint64(cnt) - (*(*Tiovec)(unsafe.Pointer(iov))).Fiov_len) iov += 16 iovcnt-- } (*(*Tiovec)(unsafe.Pointer(iov))).Fiov_base = (*(*Tiovec)(unsafe.Pointer(iov))).Fiov_base + uintptr(cnt) - (*(*Tiovec)(unsafe.Pointer(iov))).Fiov_len -= uint64(cnt) + (*(*Tiovec)(unsafe.Pointer(iov))).Fiov_len -= uint64(uint64(cnt)) goto _1 _1: } @@ -136475,7 +136528,7 @@ func Xfgetc(tls *TLS, f1 uintptr) (r int32) { _, _, _, _, _, _ = l, v1, v2, v4, v5, v6 v1 = f1 l = AtomicLoadPInt32(v1 + 140) - if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Ftid { + if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Ftid { if (*TFILE)(unsafe.Pointer(v1)).Frpos != (*TFILE)(unsafe.Pointer(v1)).Frend { v6 = v1 + 8 v5 = *(*uintptr)(unsafe.Pointer(v6)) @@ -136529,14 +136582,14 @@ func Xfgetln(tls *TLS, f uintptr, plen uintptr) (r uintptr) { ret = (*TFILE)(unsafe.Pointer(f)).Frpos z++ v7 = z - *(*Tsize_t)(unsafe.Pointer(plen)) = uint64(int64(v7) - int64(ret)) + *(*Tsize_t)(unsafe.Pointer(plen)) = uint64(int64(v7) - int64(int64(ret))) (*TFILE)(unsafe.Pointer(f)).Frpos = z } else { *(*[1]Tsize_t)(unsafe.Pointer(bp)) = [1]Tsize_t{} v8 = Xgetline(tls, f+168, bp, f) l = v8 if v8 > 0 { - *(*Tsize_t)(unsafe.Pointer(plen)) = uint64(l) + *(*Tsize_t)(unsafe.Pointer(plen)) = uint64(uint64(l)) ret = (*TFILE)(unsafe.Pointer(f)).Fgetln_buf } } @@ -136557,7 +136610,7 @@ func Xfgetpos(tls *TLS, f uintptr, pos uintptr) (r int32) { if off < 0 { return -int32(1) } - *(*int64)(unsafe.Pointer(pos)) = off + *(*int64)(unsafe.Pointer(pos)) = int64(int64(off)) return 0 } @@ -136596,7 +136649,7 @@ func Xfgets(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) { if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend { z = Xmemchr(tls, (*TFILE)(unsafe.Pointer(f)).Frpos, int32('\n'), uint64(int64((*TFILE)(unsafe.Pointer(f)).Frend)-int64((*TFILE)(unsafe.Pointer(f)).Frpos))) if z != 0 { - v2 = int64(z) - int64((*TFILE)(unsafe.Pointer(f)).Frpos) + int64(1) + v2 = int64(int64(z)) - int64((*TFILE)(unsafe.Pointer(f)).Frpos) + int64(1) } else { v2 = int64((*TFILE)(unsafe.Pointer(f)).Frend) - int64((*TFILE)(unsafe.Pointer(f)).Frpos) } @@ -136632,7 +136685,7 @@ func Xfgets(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) { break } n-- - v8 = int8(c) + v8 = int8(int8(c)) v9 = p p++ *(*int8)(unsafe.Pointer(v9)) = v8 @@ -136719,7 +136772,7 @@ func X__fgetwc_unlocked(tls *TLS, f uintptr) (r Twint_t) { var ploc uintptr var wc Twchar_t _, _, _ = loc, ploc, wc - ploc = ___get_tp(tls) + 168 + ploc = uintptr(___get_tp(tls)) + 168 loc = *(*Tlocale_t)(unsafe.Pointer(ploc)) if (*TFILE)(unsafe.Pointer(f)).Fmode <= 0 { Xfwide(tls, f, int32(1)) @@ -136727,7 +136780,7 @@ func X__fgetwc_unlocked(tls *TLS, f uintptr) (r Twint_t) { *(*Tlocale_t)(unsafe.Pointer(ploc)) = (*TFILE)(unsafe.Pointer(f)).Flocale wc = int32(___fgetwc_unlocked_internal(tls, f)) *(*Tlocale_t)(unsafe.Pointer(ploc)) = loc - return uint32(wc) + return uint32(uint32(wc)) } func Xfgetwc(tls *TLS, f uintptr) (r Twint_t) { @@ -136798,7 +136851,7 @@ func Xfgetws(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) { } v4 = p p += 4 - *(*Twchar_t)(unsafe.Pointer(v4)) = int32(c) + *(*Twchar_t)(unsafe.Pointer(v4)) = int32(int32(c)) if c == uint32('\n') { break } @@ -136870,7 +136923,7 @@ func Xflockfile(tls *TLS, f uintptr) { return } ___lockfile(tls, f) - X__register_locked_file(tls, f, ___get_tp(tls)) + X__register_locked_file(tls, f, uintptr(___get_tp(tls))) } type Tcookie = struct { @@ -136895,9 +136948,10 @@ func _mseek(tls *TLS, f uintptr, off Toff_t, whence int32) (r Toff_t) { var v2 Tsize_t _, _, _ = base, c, v2 c = (*TFILE)(unsafe.Pointer(f)).Fcookie - if !(uint32(whence) > uint32(2)) { + if !(uint32(uint32(whence)) > uint32(2)) { goto _1 } + goto fail fail: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) @@ -137113,8 +137167,8 @@ func _cookieread(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { if ret <= 0 { goto bail } - readlen += uint64(ret) - remain -= uint64(ret) + readlen += uint64(uint64(ret)) + remain -= uint64(uint64(ret)) } if !((*TFILE)(unsafe.Pointer(f)).Fbuf_size != 0) || remain > BoolUint64(!!((*TFILE)(unsafe.Pointer(f)).Fbuf_size != 0)) { return readlen @@ -137132,6 +137186,7 @@ func _cookieread(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { *(*uintptr)(unsafe.Pointer(v3))++ *(*uint8)(unsafe.Pointer(buf + uintptr(v1))) = *(*uint8)(unsafe.Pointer(v2)) return readlen + goto bail bail: ; if ret == 0 { @@ -137172,7 +137227,7 @@ func _cookiewrite(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { *(*uint32)(unsafe.Pointer(f)) |= uint32(F_ERR) return uint64(0) } - return uint64(ret) + return uint64(uint64(ret)) } func _cookieseek(tls *TLS, f uintptr, _off Toff_t, whence int32) (r Toff_t) { @@ -137183,7 +137238,7 @@ func _cookieseek(tls *TLS, f uintptr, _off Toff_t, whence int32) (r Toff_t) { var res int32 _, _ = fc, res fc = (*TFILE)(unsafe.Pointer(f)).Fcookie - if uint32(whence) > uint32(2) { + if uint32(uint32(whence)) > uint32(2) { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) return int64(-int32(1)) } @@ -137193,7 +137248,7 @@ func _cookieseek(tls *TLS, f uintptr, _off Toff_t, whence int32) (r Toff_t) { } res = (*(*func(*TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfcookie)(unsafe.Pointer(fc)).Fiofuncs.Fseek})))(tls, (*Tfcookie)(unsafe.Pointer(fc)).Fcookie, bp, whence) if res < 0 { - return int64(res) + return int64(int64(res)) } return *(*Toff_t)(unsafe.Pointer(bp)) } @@ -137333,7 +137388,7 @@ func Xfputc(tls *TLS, c1 int32, f1 uintptr) (r int32) { v1 = c1 v2 = f1 l = AtomicLoadPInt32(v2 + 140) - if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Ftid { + if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Ftid { if int32(uint8(v1)) != (*TFILE)(unsafe.Pointer(v2)).Flbf && (*TFILE)(unsafe.Pointer(v2)).Fwpos != (*TFILE)(unsafe.Pointer(v2)).Fwend { v6 = uint8(v1) v8 = v2 + 40 @@ -137385,7 +137440,7 @@ func X__fputwc_unlocked(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) { var v2 uint8 var _ /* mbc at bp+0 */ [4]int8 _, _, _, _, _, _, _ = l, loc, ploc, v1, v2, v3, v4 - ploc = ___get_tp(tls) + 168 + ploc = uintptr(___get_tp(tls)) + 168 loc = *(*Tlocale_t)(unsafe.Pointer(ploc)) if (*TFILE)(unsafe.Pointer(f)).Fmode <= 0 { Xfwide(tls, f, int32(1)) @@ -137413,16 +137468,16 @@ func X__fputwc_unlocked(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) { } } else { l = Xwctomb(tls, bp, c) - if l < 0 || X__fwritex(tls, bp, uint64(l), f) < uint64(l) { + if l < 0 || X__fwritex(tls, bp, uint64(uint64(l)), f) < uint64(uint64(l)) { c = Int32FromUint32(0xffffffff) } } } - if uint32(c) == uint32(0xffffffff) { + if uint32(uint32(c)) == uint32(0xffffffff) { *(*uint32)(unsafe.Pointer(f)) |= uint32(F_ERR) } *(*Tlocale_t)(unsafe.Pointer(ploc)) = loc - return uint32(c) + return uint32(uint32(c)) } func Xfputwc(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) { @@ -137442,7 +137497,7 @@ func Xfputwc(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) { if __need_unlock != 0 { ___unlockfile(tls, f) } - return uint32(c) + return uint32(uint32(c)) } func Xfputwc_unlocked(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) { @@ -137477,7 +137532,7 @@ func Xfputws(tls *TLS, _ws uintptr, f uintptr) (r int32) { var _ /* buf at bp+8 */ [1024]uint8 _, _, _, _, _, _, _ = __need_unlock, l, loc, ploc, v1, v2, v3 l = uint64(0) - ploc = ___get_tp(tls) + 168 + ploc = uintptr(___get_tp(tls)) + 168 loc = *(*Tlocale_t)(unsafe.Pointer(ploc)) if AtomicLoadPInt32(f+140) >= 0 { v1 = ___lockfile(tls, f) @@ -137507,7 +137562,7 @@ func Xfputws(tls *TLS, _ws uintptr, f uintptr) (r int32) { ___unlockfile(tls, f) } *(*Tlocale_t)(unsafe.Pointer(ploc)) = loc - return int32(l) /* 0 or -1 */ + return int32(int32(l)) /* 0 or -1 */ } func Xfputws_unlocked(tls *TLS, _ws uintptr, f uintptr) (r int32) { @@ -137648,9 +137703,11 @@ func Xfreopen(tls *TLS, filename uintptr, mode uintptr, f uintptr) (r uintptr) { ___unlockfile(tls, f) } return f + goto fail2 fail2: ; Xfclose(tls, f2) + goto fail fail: ; Xfclose(tls, f) @@ -137761,7 +137818,7 @@ func Xfsetpos(tls *TLS, f uintptr, pos uintptr) (r int32) { trc("tls=%v f=%v pos=%v, (%v:)", tls, f, pos, origin(2)) defer func() { trc("-> %v", r) }() } - return X__fseeko(tls, f, *(*int64)(unsafe.Pointer(pos)), 0) + return X__fseeko(tls, f, int64(*(*int64)(unsafe.Pointer(pos))), 0) } /* Support signed or unsigned plain-char */ @@ -137851,7 +137908,7 @@ func X__do_orphaned_stdio_locks(tls *TLS) { } var f uintptr _ = f - f = (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Fstdio_locks + f = (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Fstdio_locks for { if !(f != 0) { break @@ -137879,7 +137936,7 @@ func X__unlist_locked_file(tls *TLS, f uintptr) { if (*TFILE)(unsafe.Pointer(f)).Fprev_locked != 0 { (*TFILE)(unsafe.Pointer((*TFILE)(unsafe.Pointer(f)).Fprev_locked)).Fnext_locked = (*TFILE)(unsafe.Pointer(f)).Fnext_locked } else { - (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Fstdio_locks = (*TFILE)(unsafe.Pointer(f)).Fnext_locked + (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Fstdio_locks = (*TFILE)(unsafe.Pointer(f)).Fnext_locked } } } @@ -137906,7 +137963,7 @@ func Xftrylockfile(tls *TLS, f uintptr) (r int32) { var self Tpthread_t var v5 bool _, _, _, _, _, _, _ = owner, self, tid, v1, v2, v3, v5 - self = ___get_tp(tls) + self = uintptr(___get_tp(tls)) tid = (*t__pthread)(unsafe.Pointer(self)).Ftid owner = AtomicLoadPInt32(f + 140) if owner & ^Int32FromInt32(MAYBE_WAITERS) == tid { @@ -137968,7 +138025,7 @@ func Xfwide(tls *TLS, f uintptr, mode int32) (r int32) { __need_unlock = v1 if mode != 0 { if !((*TFILE)(unsafe.Pointer(f)).Flocale != 0) { - if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale)) != 0) { + if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Flocale)) != 0) { v3 = int32(4) } else { v3 = int32(1) @@ -138170,7 +138227,7 @@ func Xgetc(tls *TLS, f1 uintptr) (r int32) { _, _, _, _, _, _ = l, v1, v2, v4, v5, v6 v1 = f1 l = AtomicLoadPInt32(v1 + 140) - if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Ftid { + if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Ftid { if (*TFILE)(unsafe.Pointer(v1)).Frpos != (*TFILE)(unsafe.Pointer(v1)).Frend { v6 = v1 + 8 v5 = *(*uintptr)(unsafe.Pointer(v6)) @@ -138290,7 +138347,7 @@ func Xgetchar(tls *TLS) (r int32) { _, _, _, _, _, _ = l, v1, v2, v4, v5, v6 v1 = uintptr(unsafe.Pointer(&X__stdin_FILE)) l = AtomicLoadPInt32(v1 + 140) - if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Ftid { + if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Ftid { if (*TFILE)(unsafe.Pointer(v1)).Frpos != (*TFILE)(unsafe.Pointer(v1)).Frend { v6 = v1 + 8 v5 = *(*uintptr)(unsafe.Pointer(v6)) @@ -138361,7 +138418,7 @@ func Xgetdelim(tls *TLS, s uintptr, n uintptr, delim int32, f uintptr) (r Tssize if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend { z = Xmemchr(tls, (*TFILE)(unsafe.Pointer(f)).Frpos, delim, uint64(int64((*TFILE)(unsafe.Pointer(f)).Frend)-int64((*TFILE)(unsafe.Pointer(f)).Frpos))) if z != 0 { - v3 = int64(z) - int64((*TFILE)(unsafe.Pointer(f)).Frpos) + int64(1) + v3 = int64(int64(z)) - int64((*TFILE)(unsafe.Pointer(f)).Frpos) + int64(1) } else { v3 = int64((*TFILE)(unsafe.Pointer(f)).Frend) - int64((*TFILE)(unsafe.Pointer(f)).Frpos) } @@ -138430,9 +138487,9 @@ func Xgetdelim(tls *TLS, s uintptr, n uintptr, delim int32, f uintptr) (r Tssize v9 = f + 8 *(*uintptr)(unsafe.Pointer(v9))-- v8 = *(*uintptr)(unsafe.Pointer(v9)) - *(*uint8)(unsafe.Pointer(v8)) = uint8(c) + *(*uint8)(unsafe.Pointer(v8)) = uint8(uint8(c)) } else { - v10 = int8(c) + v10 = int8(int8(c)) v11 = i i++ *(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s)) + uintptr(v11))) = v10 @@ -138447,7 +138504,7 @@ func Xgetdelim(tls *TLS, s uintptr, n uintptr, delim int32, f uintptr) (r Tssize if __need_unlock != 0 { ___unlockfile(tls, f) } - return int64(i) + return int64(int64(i)) } func X__getdelim(tls *TLS, s uintptr, n uintptr, delim int32, f uintptr) (r Tssize_t) { @@ -138498,7 +138555,7 @@ func Xgets(tls *TLS, s uintptr) (r uintptr) { } v6 = i i++ - *(*int8)(unsafe.Pointer(s + uintptr(v6))) = int8(c) + *(*int8)(unsafe.Pointer(s + uintptr(v6))) = int8(int8(c)) } *(*int8)(unsafe.Pointer(s + uintptr(i))) = 0 if c != int32('\n') && (!((*TFILE)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__stdin_FILE)))).Fflags&Uint32FromInt32(F_EOF) != 0) || !(i != 0)) { @@ -138611,9 +138668,10 @@ func _ms_seek(tls *TLS, f uintptr, off Toff_t, whence int32) (r Toff_t) { var v2 Tsize_t _, _, _ = base, c, v2 c = (*TFILE)(unsafe.Pointer(f)).Fcookie - if !(uint32(whence) > uint32(2)) { + if !(uint32(uint32(whence)) > uint32(2)) { goto _1 } + goto fail fail: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) @@ -138744,9 +138802,10 @@ func _wms_seek(tls *TLS, f uintptr, off Toff_t, whence int32) (r Toff_t) { var v2 Tsize_t _, _, _ = base, c, v2 c = (*TFILE)(unsafe.Pointer(f)).Fcookie - if !(uint32(whence) > uint32(2)) { + if !(uint32(uint32(whence)) > uint32(2)) { goto _1 } + goto fail fail: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) @@ -138884,7 +138943,7 @@ func Xpclose(tls *TLS, f uintptr) (r1 int32) { } } if r < 0 { - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } return *(*int32)(unsafe.Pointer(bp)) } @@ -139000,7 +139059,7 @@ func Xputc(tls *TLS, c1 int32, f1 uintptr) (r int32) { v1 = c1 v2 = f1 l = AtomicLoadPInt32(v2 + 140) - if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Ftid { + if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Ftid { if int32(uint8(v1)) != (*TFILE)(unsafe.Pointer(v2)).Flbf && (*TFILE)(unsafe.Pointer(v2)).Fwpos != (*TFILE)(unsafe.Pointer(v2)).Fwend { v6 = uint8(v1) v8 = v2 + 40 @@ -139130,7 +139189,7 @@ func Xputchar(tls *TLS, c1 int32) (r int32) { v1 = c1 v2 = uintptr(unsafe.Pointer(&X__stdout_FILE)) l = AtomicLoadPInt32(v2 + 140) - if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Ftid { + if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Ftid { if int32(uint8(v1)) != (*TFILE)(unsafe.Pointer(v2)).Flbf && (*TFILE)(unsafe.Pointer(v2)).Fwpos != (*TFILE)(unsafe.Pointer(v2)).Fwend { v6 = uint8(v1) v8 = v2 + 40 @@ -139253,7 +139312,7 @@ func Xremove(tls *TLS, path uintptr) (r1 int32) { if r == -int32(EISDIR) { r = int32(X__syscall1(tls, int64(SYS_rmdir), int64(path))) } - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } func Xrename(tls *TLS, old uintptr, new1 uintptr) (r int32) { @@ -139636,12 +139695,12 @@ func Xungetc(tls *TLS, c int32, f uintptr) (r int32) { v3 = f + 8 *(*uintptr)(unsafe.Pointer(v3))-- v2 = *(*uintptr)(unsafe.Pointer(v3)) - *(*uint8)(unsafe.Pointer(v2)) = uint8(c) + *(*uint8)(unsafe.Pointer(v2)) = uint8(uint8(c)) *(*uint32)(unsafe.Pointer(f)) &= uint32(^Int32FromInt32(F_EOF)) if __need_unlock != 0 { ___unlockfile(tls, f) } - return int32(uint8(c)) + return int32(uint8(uint8(c))) } func Xungetwc(tls *TLS, c Twint_t, f uintptr) (r Twint_t) { @@ -139657,7 +139716,7 @@ func Xungetwc(tls *TLS, c Twint_t, f uintptr) (r Twint_t) { var v3 bool var _ /* mbc at bp+0 */ [4]uint8 _, _, _, _, _, _, _, _, _, _ = __need_unlock, l, loc, ploc, v1, v2, v3, v4, v5, p6 - ploc = ___get_tp(tls) + 168 + ploc = uintptr(___get_tp(tls)) + 168 loc = *(*Tlocale_t)(unsafe.Pointer(ploc)) if AtomicLoadPInt32(f+140) >= 0 { v1 = ___lockfile(tls, f) @@ -139673,7 +139732,7 @@ func Xungetwc(tls *TLS, c Twint_t, f uintptr) (r Twint_t) { X__toread(tls, f) } if v3 = !((*TFILE)(unsafe.Pointer(f)).Frpos != 0) || c == uint32(0xffffffff); !v3 { - v2 = int32(Xwcrtomb(tls, bp, int32(c), uintptr(0))) + v2 = int32(Xwcrtomb(tls, bp, int32(int32(c)), uintptr(0))) l = v2 } if v3 || v2 < 0 || (*TFILE)(unsafe.Pointer(f)).Frpos < (*TFILE)(unsafe.Pointer(f)).Fbuf-uintptr(UNGET)+uintptr(l) { @@ -139687,11 +139746,11 @@ func Xungetwc(tls *TLS, c Twint_t, f uintptr) (r Twint_t) { v5 = f + 8 *(*uintptr)(unsafe.Pointer(v5))-- v4 = *(*uintptr)(unsafe.Pointer(v5)) - *(*uint8)(unsafe.Pointer(v4)) = uint8(c) + *(*uint8)(unsafe.Pointer(v4)) = uint8(uint8(c)) } else { p6 = f + 8 *(*uintptr)(unsafe.Pointer(p6)) -= uintptr(l) - Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(p6)), bp, uint64(l)) + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(p6)), bp, uint64(uint64(l))) } *(*uint32)(unsafe.Pointer(f)) &= uint32(^Int32FromInt32(F_EOF)) if __need_unlock != 0 { @@ -139715,13 +139774,13 @@ func Xvasprintf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) { l = Xvsnprintf(tls, uintptr(0), uint64(0), fmt, ap2) _ = ap2 if v2 = l < 0; !v2 { - v1 = Xmalloc(tls, uint64(uint32(l)+uint32(1))) + v1 = Xmalloc(tls, uint64(uint32(uint32(l))+uint32(1))) *(*uintptr)(unsafe.Pointer(s)) = v1 } if v2 || !(v1 != 0) { return -int32(1) } - return Xvsnprintf(tls, *(*uintptr)(unsafe.Pointer(s)), uint64(uint32(l)+uint32(1)), fmt, ap) + return Xvsnprintf(tls, *(*uintptr)(unsafe.Pointer(s)), uint64(uint32(uint32(l))+uint32(1)), fmt, ap) } func Xvdprintf(tls *TLS, fd int32, fmt uintptr, ap Tva_list) (r int32) { @@ -139909,7 +139968,7 @@ func _pop_arg(tls *TLS, arg uintptr, type1 int32, ap uintptr) { case int32(_ULONG): (*Targ)(unsafe.Pointer(arg)).Fi = VaUint64(&*(*Tva_list)(unsafe.Pointer(ap))) case int32(_ULLONG): - (*Targ)(unsafe.Pointer(arg)).Fi = VaUint64(&*(*Tva_list)(unsafe.Pointer(ap))) + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaUint64(&*(*Tva_list)(unsafe.Pointer(ap)))) case int32(_SHORT): (*Targ)(unsafe.Pointer(arg)).Fi = uint64(int16(VaInt32(&*(*Tva_list)(unsafe.Pointer(ap))))) case int32(_USHORT): @@ -139931,7 +139990,7 @@ func _pop_arg(tls *TLS, arg uintptr, type1 int32, ap uintptr) { case int32(_UIPTR): (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaUintptr(&*(*Tva_list)(unsafe.Pointer(ap)))) case int32(_DBL): - *(*float64)(unsafe.Pointer(arg)) = VaFloat64(&*(*Tva_list)(unsafe.Pointer(ap))) + *(*float64)(unsafe.Pointer(arg)) = float64(VaFloat64(&*(*Tva_list)(unsafe.Pointer(ap)))) case int32(_LDBL): *(*float64)(unsafe.Pointer(arg)) = VaFloat64(&*(*Tva_list)(unsafe.Pointer(ap))) } @@ -139949,18 +140008,18 @@ func _pad3(tls *TLS, f uintptr, c int8, w int32, l int32, fl int32) { var v1 uint64 var _ /* pad at bp+0 */ [256]int8 _ = v1 - if uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' '))|Uint32FromUint32(1)<<(Int32FromUint8('0')-Int32FromUint8(' '))) != 0 || l >= w { + if uint32(uint32(fl))&(Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' '))|Uint32FromUint32(1)<<(Int32FromUint8('0')-Int32FromUint8(' '))) != 0 || l >= w { return } l = w - l - if uint64(l) > uint64(256) { + if uint64(uint64(l)) > uint64(256) { v1 = uint64(256) } else { - v1 = uint64(l) + v1 = uint64(uint64(l)) } - Xmemset(tls, bp, int32(c), v1) + Xmemset(tls, bp, int32(int32(c)), v1) for { - if !(uint64(l) >= uint64(256)) { + if !(uint64(uint64(l)) >= uint64(256)) { break } _out(tls, f, bp, uint64(256)) @@ -139969,7 +140028,7 @@ func _pad3(tls *TLS, f uintptr, c int8, w int32, l int32, fl int32) { ; l = int32(uint64(l) - Uint64FromInt64(256)) } - _out(tls, f, bp, uint64(l)) + _out(tls, f, bp, uint64(uint64(l))) } var _xdigits1 = [16]int8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'} @@ -140072,17 +140131,17 @@ func _fmt_fp(tls *TLS, f uintptr, y float64, w int32, p int32, fl int32, t int32 prefix = __ccgo_ts + 1603 ebuf = bp + 538 + uintptr(Uint64FromInt32(3)*Uint64FromInt64(4)) pl = int32(1) - *(*float64)(unsafe.Pointer(bp)) = y + *(*float64)(unsafe.Pointer(bp)) = float64(float64(y)) v1 = *(*uint64)(unsafe.Pointer(bp)) goto _2 _2: if int32(v1>>Int32FromInt32(63)) != 0 { y = -y } else { - if uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('+')-Int32FromUint8(' '))) != 0 { + if uint32(uint32(fl))&(Uint32FromUint32(1)<<(Int32FromUint8('+')-Int32FromUint8(' '))) != 0 { prefix += uintptr(3) } else { - if uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8(' ')-Int32FromUint8(' '))) != 0 { + if uint32(uint32(fl))&(Uint32FromUint32(1)<<(Int32FromUint8(' ')-Int32FromUint8(' '))) != 0 { prefix += uintptr(6) } else { prefix++ @@ -140090,7 +140149,7 @@ _2: } } } - *(*float64)(unsafe.Pointer(bp)) = y + *(*float64)(unsafe.Pointer(bp)) = float64(float64(y)) v3 = *(*uint64)(unsafe.Pointer(bp)) goto _4 _4: @@ -140109,10 +140168,10 @@ _4: } s1 = v6 } - _pad3(tls, f, int8(' '), w, int32(3)+pl, int32(uint32(fl) & ^(Uint32FromUint32(1)<<(Int32FromUint8('0')-Int32FromUint8(' '))))) - _out(tls, f, prefix, uint64(pl)) + _pad3(tls, f, int8(' '), w, int32(3)+pl, int32(uint32(uint32(fl)) & ^(Uint32FromUint32(1)<<(Int32FromUint8('0')-Int32FromUint8(' '))))) + _out(tls, f, prefix, uint64(uint64(pl))) _out(tls, f, s1, uint64(3)) - _pad3(tls, f, int8(' '), w, int32(3)+pl, int32(uint32(fl)^Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' ')))) + _pad3(tls, f, int8(' '), w, int32(3)+pl, int32(uint32(uint32(fl))^Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' ')))) if w > int32(3)+pl { v7 = w } else { @@ -140179,32 +140238,32 @@ _4: *(*int8)(unsafe.Pointer(v13)) = int8(t + (Int32FromUint8('p') - Int32FromUint8('a'))) s = bp + 516 for cond := true; cond; cond = y != 0 { - x = int32(y) + x = int32(int32(y)) v14 = s s++ *(*int8)(unsafe.Pointer(v14)) = int8(int32(_xdigits1[x]) | t&int32(32)) - y = Float64FromInt32(16) * (y - float64(x)) - if int64(s)-t__predefined_ptrdiff_t(bp+516) == int64(1) && (y != 0 || p > 0 || uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0) { + y = Float64FromInt32(16) * (y - float64(float64(x))) + if int64(int64(s))-t__predefined_ptrdiff_t(bp+516) == int64(1) && (y != 0 || p > 0 || uint32(uint32(fl))&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0) { v15 = s s++ *(*int8)(unsafe.Pointer(v15)) = int8('.') } } - if int64(p) > int64(Int32FromInt32(INT_MAX)-Int32FromInt32(2))-(int64(ebuf)-int64(estr))-int64(pl) { + if int64(int64(p)) > int64(Int32FromInt32(INT_MAX)-Int32FromInt32(2))-(int64(int64(ebuf))-int64(int64(estr)))-int64(int64(pl)) { return -int32(1) } - if p != 0 && int64(s)-t__predefined_ptrdiff_t(bp+516)-int64(2) < int64(p) { - l = int32(int64(p+Int32FromInt32(2)) + (int64(ebuf) - int64(estr))) + if p != 0 && int64(int64(s))-t__predefined_ptrdiff_t(bp+516)-int64(2) < int64(int64(p)) { + l = int32(int64(p+Int32FromInt32(2)) + (int64(int64(ebuf)) - int64(int64(estr)))) } else { - l = int32(int64(s) - t__predefined_ptrdiff_t(bp+516) + (int64(ebuf) - int64(estr))) + l = int32(int64(int64(s)) - t__predefined_ptrdiff_t(bp+516) + (int64(int64(ebuf)) - int64(int64(estr)))) } _pad3(tls, f, int8(' '), w, pl+l, fl) - _out(tls, f, prefix, uint64(pl)) - _pad3(tls, f, int8('0'), w, pl+l, int32(uint32(fl)^Uint32FromUint32(1)<<(Int32FromUint8('0')-Int32FromUint8(' ')))) - _out(tls, f, bp+516, uint64(int64(s)-t__predefined_ptrdiff_t(bp+516))) - _pad3(tls, f, int8('0'), int32(int64(l)-(int64(ebuf)-int64(estr))-(int64(s)-t__predefined_ptrdiff_t(bp+516))), 0, 0) - _out(tls, f, estr, uint64(int64(ebuf)-int64(estr))) - _pad3(tls, f, int8(' '), w, pl+l, int32(uint32(fl)^Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' ')))) + _out(tls, f, prefix, uint64(uint64(pl))) + _pad3(tls, f, int8('0'), w, pl+l, int32(uint32(uint32(fl))^Uint32FromUint32(1)<<(Int32FromUint8('0')-Int32FromUint8(' ')))) + _out(tls, f, bp+516, uint64(int64(int64(s))-t__predefined_ptrdiff_t(bp+516))) + _pad3(tls, f, int8('0'), int32(int64(int64(l))-(int64(int64(ebuf))-int64(int64(estr)))-(int64(int64(s))-t__predefined_ptrdiff_t(bp+516))), 0, 0) + _out(tls, f, estr, uint64(int64(int64(ebuf))-int64(int64(estr)))) + _pad3(tls, f, int8(' '), w, pl+l, int32(uint32(uint32(fl))^Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' ')))) if w > pl+l { v16 = w } else { @@ -140233,7 +140292,7 @@ _4: a = v19 } for cond := true; cond; cond = y != 0 { - *(*Tuint32_t)(unsafe.Pointer(z)) = uint32(y) + *(*Tuint32_t)(unsafe.Pointer(z)) = uint32(uint32(y)) v21 = z z += 4 y = Float64FromInt32(1000000000) * (y - float64(*(*Tuint32_t)(unsafe.Pointer(v21)))) @@ -140251,7 +140310,7 @@ _4: if !(d >= a) { break } - x1 = uint64(*(*Tuint32_t)(unsafe.Pointer(d)))< int64(need) { + if (int64(int64(z))-int64(int64(b)))/4 > int64(int64(need)) { z = b + uintptr(need)*4 } *(*int32)(unsafe.Pointer(bp + 512)) += sh1 } if a < z { i = int32(10) - e = int32(Int64FromInt32(9) * ((int64(r) - int64(a)) / 4)) + e = int32(Int64FromInt32(9) * ((int64(int64(r)) - int64(int64(a))) / 4)) for { - if !(*(*Tuint32_t)(unsafe.Pointer(a)) >= uint32(i)) { + if !(*(*Tuint32_t)(unsafe.Pointer(a)) >= uint32(uint32(i))) { break } goto _29 @@ -140329,7 +140388,7 @@ _4: } /* Perform rounding: j is precision after the radix (possibly neg) */ j = p - BoolInt32(t|int32(32) != int32('f'))*e - BoolInt32(t|int32(32) == int32('g') && p != 0) - if int64(j) < int64(9)*((int64(z)-int64(r))/4-int64(1)) { + if int64(int64(j)) < int64(9)*((int64(int64(z))-int64(int64(r)))/4-int64(1)) { /* We avoid C's broken division of negative numbers */ d = r + uintptr(1)*4 + uintptr((j+Int32FromInt32(9)*Int32FromInt32(LDBL_MAX_EXP))/Int32FromInt32(9)-Int32FromInt32(LDBL_MAX_EXP))*4 j += Int32FromInt32(9) * Int32FromInt32(LDBL_MAX_EXP) @@ -140346,11 +140405,11 @@ _4: i *= int32(10) j++ } - x2 = *(*Tuint32_t)(unsafe.Pointer(d)) % uint32(i) + x2 = *(*Tuint32_t)(unsafe.Pointer(d)) % uint32(uint32(i)) /* Are there any significant digits past j? */ if x2 != 0 || d+uintptr(1)*4 != z { round1 = Float64FromInt32(2) / Float64FromFloat64(2.22044604925031308085e-16) - if *(*Tuint32_t)(unsafe.Pointer(d))/uint32(i)&uint32(1) != 0 || i == int32(1000000000) && d > a && *(*Tuint32_t)(unsafe.Pointer(d + uintptr(-Int32FromInt32(1))*4))&uint32(1) != 0 { + if *(*Tuint32_t)(unsafe.Pointer(d))/uint32(uint32(i))&uint32(1) != 0 || i == int32(1000000000) && d > a && *(*Tuint32_t)(unsafe.Pointer(d + uintptr(-Int32FromInt32(1))*4))&uint32(1) != 0 { round1 += Float64FromInt32(2) } if x2 < uint32(i/int32(2)) { @@ -140369,7 +140428,7 @@ _4: *(*Tuint32_t)(unsafe.Pointer(d)) -= x2 /* Decide whether to round by probing round+small */ if round1+small != round1 { - *(*Tuint32_t)(unsafe.Pointer(d)) = *(*Tuint32_t)(unsafe.Pointer(d)) + uint32(i) + *(*Tuint32_t)(unsafe.Pointer(d)) = *(*Tuint32_t)(unsafe.Pointer(d)) + uint32(uint32(i)) for *(*Tuint32_t)(unsafe.Pointer(d)) > uint32(999999999) { v31 = d d -= 4 @@ -140382,9 +140441,9 @@ _4: *(*Tuint32_t)(unsafe.Pointer(d))++ } i = int32(10) - e = int32(Int64FromInt32(9) * ((int64(r) - int64(a)) / 4)) + e = int32(Int64FromInt32(9) * ((int64(int64(r)) - int64(int64(a))) / 4)) for { - if !(*(*Tuint32_t)(unsafe.Pointer(a)) >= uint32(i)) { + if !(*(*Tuint32_t)(unsafe.Pointer(a)) >= uint32(uint32(i))) { break } goto _33 @@ -140419,13 +140478,13 @@ _4: t -= int32(2) p-- } - if !(uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0) { + if !(uint32(uint32(fl))&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0) { /* Count trailing zeros in last place */ if z > a && *(*Tuint32_t)(unsafe.Pointer(z + uintptr(-Int32FromInt32(1))*4)) != 0 { i = int32(10) j = Int32FromInt32(0) for { - if !(*(*Tuint32_t)(unsafe.Pointer(z + uintptr(-Int32FromInt32(1))*4))%uint32(i) == uint32(0)) { + if !(*(*Tuint32_t)(unsafe.Pointer(z + uintptr(-Int32FromInt32(1))*4))%uint32(uint32(i)) == uint32(0)) { break } goto _35 @@ -140438,35 +140497,35 @@ _4: j = int32(9) } if t|int32(32) == int32('f') { - if int64(Int32FromInt32(0)) > int64(9)*((int64(z)-int64(r))/4-int64(1))-int64(j) { + if int64(Int32FromInt32(0)) > int64(9)*((int64(int64(z))-int64(int64(r)))/4-int64(1))-int64(int64(j)) { v37 = int64(Int32FromInt32(0)) } else { - v37 = int64(9)*((int64(z)-int64(r))/4-int64(1)) - int64(j) + v37 = int64(9)*((int64(int64(z))-int64(int64(r)))/4-int64(1)) - int64(int64(j)) } if int64(p) < v37 { v36 = int64(p) } else { - if int64(Int32FromInt32(0)) > int64(9)*((int64(z)-int64(r))/4-int64(1))-int64(j) { + if int64(Int32FromInt32(0)) > int64(9)*((int64(int64(z))-int64(int64(r)))/4-int64(1))-int64(int64(j)) { v38 = int64(Int32FromInt32(0)) } else { - v38 = int64(9)*((int64(z)-int64(r))/4-int64(1)) - int64(j) + v38 = int64(9)*((int64(int64(z))-int64(int64(r)))/4-int64(1)) - int64(int64(j)) } v36 = v38 } p = int32(v36) } else { - if int64(Int32FromInt32(0)) > int64(9)*((int64(z)-int64(r))/4-int64(1))+int64(e)-int64(j) { + if int64(Int32FromInt32(0)) > int64(9)*((int64(int64(z))-int64(int64(r)))/4-int64(1))+int64(int64(e))-int64(int64(j)) { v40 = int64(Int32FromInt32(0)) } else { - v40 = int64(9)*((int64(z)-int64(r))/4-int64(1)) + int64(e) - int64(j) + v40 = int64(9)*((int64(int64(z))-int64(int64(r)))/4-int64(1)) + int64(int64(e)) - int64(int64(j)) } if int64(p) < v40 { v39 = int64(p) } else { - if int64(Int32FromInt32(0)) > int64(9)*((int64(z)-int64(r))/4-int64(1))+int64(e)-int64(j) { + if int64(Int32FromInt32(0)) > int64(9)*((int64(int64(z))-int64(int64(r)))/4-int64(1))+int64(int64(e))-int64(int64(j)) { v41 = int64(Int32FromInt32(0)) } else { - v41 = int64(9)*((int64(z)-int64(r))/4-int64(1)) + int64(e) - int64(j) + v41 = int64(9)*((int64(int64(z))-int64(int64(r)))/4-int64(1)) + int64(int64(e)) - int64(int64(j)) } v39 = v41 } @@ -140474,10 +140533,10 @@ _4: } } } - if p > Int32FromInt32(INT_MAX)-Int32FromInt32(1)-BoolInt32(p != 0 || uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0) { + if p > Int32FromInt32(INT_MAX)-Int32FromInt32(1)-BoolInt32(p != 0 || uint32(uint32(fl))&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0) { return -int32(1) } - l = int32(1) + p + BoolInt32(p != 0 || uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0) + l = int32(1) + p + BoolInt32(p != 0 || uint32(uint32(fl))&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0) if t|int32(32) == int32('f') { if e > int32(INT_MAX)-l { return -int32(1) @@ -140492,7 +140551,7 @@ _4: v42 = e } estr = _fmt_u(tls, uint64(v42), ebuf) - for int64(ebuf)-int64(estr) < int64(2) { + for int64(int64(ebuf))-int64(int64(estr)) < int64(2) { estr-- v43 = estr *(*int8)(unsafe.Pointer(v43)) = int8('0') @@ -140507,18 +140566,18 @@ _4: *(*int8)(unsafe.Pointer(v44)) = int8(v45) estr-- v46 = estr - *(*int8)(unsafe.Pointer(v46)) = int8(t) - if int64(ebuf)-int64(estr) > int64(int32(INT_MAX)-l) { + *(*int8)(unsafe.Pointer(v46)) = int8(int8(t)) + if int64(int64(ebuf))-int64(int64(estr)) > int64(int32(INT_MAX)-l) { return -int32(1) } - l = int32(int64(l) + (int64(ebuf) - int64(estr))) + l = int32(int64(l) + (int64(int64(ebuf)) - int64(int64(estr)))) } if l > int32(INT_MAX)-pl { return -int32(1) } _pad3(tls, f, int8(' '), w, pl+l, fl) - _out(tls, f, prefix, uint64(pl)) - _pad3(tls, f, int8('0'), w, pl+l, int32(uint32(fl)^Uint32FromUint32(1)<<(Int32FromUint8('0')-Int32FromUint8(' ')))) + _out(tls, f, prefix, uint64(uint64(pl))) + _pad3(tls, f, int8('0'), w, pl+l, int32(uint32(uint32(fl))^Uint32FromUint32(1)<<(Int32FromUint8('0')-Int32FromUint8(' ')))) if t|int32(32) == int32('f') { if a > r { a = r @@ -140542,13 +140601,13 @@ _4: *(*int8)(unsafe.Pointer(v49)) = int8('0') } } - _out(tls, f, s2, uint64(int64(bp+516+uintptr(9))-int64(s2))) + _out(tls, f, s2, uint64(int64(bp+516+uintptr(9))-int64(int64(s2)))) goto _47 _47: ; d += 4 } - if p != 0 || uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0 { + if p != 0 || uint32(uint32(fl))&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0 { _out(tls, f, __ccgo_ts+575, uint64(1)) } for { @@ -140599,26 +140658,26 @@ _4: v56 = s4 s4++ _out(tls, f, v56, uint64(1)) - if p > 0 || uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0 { + if p > 0 || uint32(uint32(fl))&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0 { _out(tls, f, __ccgo_ts+575, uint64(1)) } } - if int64(bp+516+UintptrFromInt32(9))-int64(s4) < int64(p) { - v57 = int64(bp+516+UintptrFromInt32(9)) - int64(s4) + if int64(bp+516+UintptrFromInt32(9))-int64(int64(s4)) < int64(p) { + v57 = int64(bp+516+UintptrFromInt32(9)) - int64(int64(s4)) } else { v57 = int64(p) } _out(tls, f, s4, uint64(v57)) - p = int32(int64(p) - (int64(bp+516+UintptrFromInt32(9)) - int64(s4))) + p = int32(int64(p) - (int64(bp+516+UintptrFromInt32(9)) - int64(int64(s4)))) goto _53 _53: ; d += 4 } _pad3(tls, f, int8('0'), p+int32(18), int32(18), 0) - _out(tls, f, estr, uint64(int64(ebuf)-int64(estr))) + _out(tls, f, estr, uint64(int64(int64(ebuf))-int64(int64(estr)))) } - _pad3(tls, f, int8(' '), w, pl+l, int32(uint32(fl)^Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' ')))) + _pad3(tls, f, int8(' '), w, pl+l, int32(uint32(uint32(fl))^Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' ')))) if w > pl+l { v58 = w } else { @@ -140635,7 +140694,7 @@ func _getint(tls *TLS, s uintptr) (r int32) { if !(BoolInt32(uint32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s)))))-uint32('0') < uint32(10)) != 0) { break } - if uint32(i) > Uint32FromInt32(INT_MAX)/Uint32FromUint32(10) || int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s)))))-int32('0') > int32(INT_MAX)-int32(10)*i { + if uint32(uint32(i)) > Uint32FromInt32(INT_MAX)/Uint32FromUint32(10) || int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s)))))-int32('0') > int32(INT_MAX)-int32(10)*i { i = -int32(1) } else { i = int32(10)*i + (int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s))))) - int32('0')) @@ -140702,12 +140761,12 @@ func _printf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, z++ *(*uintptr)(unsafe.Pointer(bp)) += uintptr(2) } - if int64(z)-int64(a) > int64(int32(INT_MAX)-cnt) { + if int64(int64(z))-int64(int64(a)) > int64(int32(INT_MAX)-cnt) { goto overflow } - l = int32(int64(z) - int64(a)) + l = int32(int64(int64(z)) - int64(int64(a))) if f != 0 { - _out(tls, f, a, uint64(l)) + _out(tls, f, a, uint64(uint64(l))) } if l != 0 { goto _1 @@ -140823,13 +140882,13 @@ func _printf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, } else { if argpos >= 0 { if !(f != 0) { - *(*int32)(unsafe.Pointer(nl_type + uintptr(argpos)*4)) = int32(st) + *(*int32)(unsafe.Pointer(nl_type + uintptr(argpos)*4)) = int32(int32(st)) } else { *(*Targ)(unsafe.Pointer(bp + 8)) = *(*Targ)(unsafe.Pointer(nl_arg + uintptr(argpos)*8)) } } else { if f != 0 { - _pop_arg(tls, bp+8, int32(st), ap) + _pop_arg(tls, bp+8, int32(int32(st)), ap) } else { return 0 } @@ -140905,17 +140964,17 @@ func _printf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, case uint32(_BARE): *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = cnt case uint32(_LPRE): - *(*int64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = int64(cnt) + *(*int64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = int64(int64(cnt)) case uint32(_LLPRE): - *(*int64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = int64(cnt) + *(*int64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = int64(int64(cnt)) case uint32(_HPRE): - *(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = uint16(cnt) + *(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = uint16(uint16(cnt)) case uint32(_HHPRE): - *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = uint8(cnt) + *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = uint8(uint8(cnt)) case uint32(_ZTPRE): - *(*Tsize_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = uint64(cnt) + *(*Tsize_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = uint64(uint64(cnt)) case uint32(_JPRE): - *(*Tuintmax_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = uint64(cnt) + *(*Tuintmax_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = uint64(uint64(cnt)) break } goto _1 @@ -140944,8 +141003,8 @@ func _printf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, _13: ; a = _fmt_o(tls, *(*Tuintmax_t)(unsafe.Pointer(bp + 8)), z) - if fl&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0 && int64(p) < int64(z)-int64(a)+int64(1) { - p = int32(int64(z) - int64(a) + int64(1)) + if fl&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0 && int64(int64(p)) < int64(int64(z))-int64(int64(a))+int64(1) { + p = int32(int64(int64(z)) - int64(int64(a)) + int64(1)) } _32: ; @@ -140985,13 +141044,14 @@ func _printf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, a = z goto _30 } - if int64(p) > int64(z)-int64(a)+BoolInt64(!(*(*Tuintmax_t)(unsafe.Pointer(bp + 8)) != 0)) { + if int64(p) > int64(int64(z))-int64(int64(a))+BoolInt64(!(*(*Tuintmax_t)(unsafe.Pointer(bp + 8)) != 0)) { v34 = int64(p) } else { - v34 = int64(z) - int64(a) + BoolInt64(!(*(*Tuintmax_t)(unsafe.Pointer(bp + 8)) != 0)) + v34 = int64(int64(z)) - int64(int64(a)) + BoolInt64(!(*(*Tuintmax_t)(unsafe.Pointer(bp + 8)) != 0)) } p = int32(v34) goto _30 + goto narrow_c narrow_c: ; _17: @@ -141031,7 +141091,7 @@ func _printf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, if p < 0 && *(*int8)(unsafe.Pointer(z)) != 0 { goto overflow } - p = int32(int64(z) - int64(a)) + p = int32(int64(int64(z)) - int64(int64(a))) fl &= ^(Uint32FromUint32(1) << (Int32FromUint8('0') - Int32FromUint8(' '))) goto _30 _20: @@ -141050,19 +141110,19 @@ func _printf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, l = v42 i = uint64(v42) for { - if v45 = i < uint64(p) && *(*Twchar_t)(unsafe.Pointer(ws)) != 0; v45 { + if v45 = i < uint64(uint64(p)) && *(*Twchar_t)(unsafe.Pointer(ws)) != 0; v45 { v44 = ws ws += 4 v43 = Xwctomb(tls, bp+48, *(*Twchar_t)(unsafe.Pointer(v44))) l = v43 } - if !(v45 && v43 >= 0 && uint64(l) <= uint64(p)-i) { + if !(v45 && v43 >= 0 && uint64(uint64(l)) <= uint64(uint64(p))-i) { break } goto _41 _41: ; - i += uint64(l) + i += uint64(uint64(l)) } if l < 0 { return -int32(1) @@ -141070,25 +141130,25 @@ func _printf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, if i > uint64(INT_MAX) { goto overflow } - p = int32(i) - _pad3(tls, f, int8(' '), w, p, int32(fl)) + p = int32(int32(i)) + _pad3(tls, f, int8(' '), w, p, int32(int32(fl))) ws = *(*uintptr)(unsafe.Pointer(bp + 8)) i = uint64(0) for { - if v49 = i < uint64(0+uint32(p)) && *(*Twchar_t)(unsafe.Pointer(ws)) != 0; v49 { + if v49 = i < uint64(0+uint32(uint32(p))) && *(*Twchar_t)(unsafe.Pointer(ws)) != 0; v49 { v48 = ws ws += 4 v47 = Xwctomb(tls, bp+48, *(*Twchar_t)(unsafe.Pointer(v48))) l = v47 } - if !(v49 && i+uint64(v47) <= uint64(p)) { + if !(v49 && i+uint64(v47) <= uint64(uint64(p))) { break } - _out(tls, f, bp+48, uint64(l)) + _out(tls, f, bp+48, uint64(uint64(l))) goto _46 _46: ; - i += uint64(l) + i += uint64(uint64(l)) } _pad3(tls, f, int8(' '), w, p, int32(fl^Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' ')))) if w > p { @@ -141117,15 +141177,15 @@ func _printf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, if xp != 0 && p < 0 { goto overflow } - l = _fmt_fp(tls, f, *(*float64)(unsafe.Pointer(bp + 8)), w, p, int32(fl), t) + l = _fmt_fp(tls, f, *(*float64)(unsafe.Pointer(bp + 8)), w, p, int32(int32(fl)), t) if l < 0 { goto overflow } goto _1 _30: ; - if int64(p) < int64(z)-int64(a) { - p = int32(int64(z) - int64(a)) + if int64(int64(p)) < int64(int64(z))-int64(int64(a)) { + p = int32(int64(int64(z)) - int64(int64(a))) } if p > int32(INT_MAX)-pl { goto overflow @@ -141136,11 +141196,11 @@ func _printf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, if w > int32(INT_MAX)-cnt { goto overflow } - _pad3(tls, f, int8(' '), w, pl+p, int32(fl)) - _out(tls, f, prefix, uint64(pl)) + _pad3(tls, f, int8(' '), w, pl+p, int32(int32(fl))) + _out(tls, f, prefix, uint64(uint64(pl))) _pad3(tls, f, int8('0'), w, pl+p, int32(fl^Uint32FromUint32(1)<<(Int32FromUint8('0')-Int32FromUint8(' ')))) - _pad3(tls, f, int8('0'), p, int32(int64(z)-int64(a)), 0) - _out(tls, f, a, uint64(int64(z)-int64(a))) + _pad3(tls, f, int8('0'), p, int32(int64(int64(z))-int64(int64(a))), 0) + _out(tls, f, a, uint64(int64(int64(z))-int64(int64(a)))) _pad3(tls, f, int8(' '), w, pl+p, int32(fl^Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' ')))) l = w goto _1 @@ -141176,10 +141236,12 @@ func _printf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, goto inval } return int32(1) + goto inval inval: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) return -int32(1) + goto overflow overflow: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOVERFLOW) @@ -141247,7 +141309,7 @@ func Xvfprintf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { if (*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_ERR) != 0 { ret = -int32(1) } - *(*uint32)(unsafe.Pointer(f)) |= uint32(olderr) + *(*uint32)(unsafe.Pointer(f)) |= uint32(uint32(olderr)) if __need_unlock != 0 { ___unlockfile(tls, f) } @@ -141268,15 +141330,15 @@ func _store_int(tls *TLS, dest uintptr, size int32, i uint64) { } switch size { case -int32(2): - *(*int8)(unsafe.Pointer(dest)) = int8(i) + *(*int8)(unsafe.Pointer(dest)) = int8(int8(i)) case -int32(1): - *(*int16)(unsafe.Pointer(dest)) = int16(i) + *(*int16)(unsafe.Pointer(dest)) = int16(int16(i)) case SIZE_def: - *(*int32)(unsafe.Pointer(dest)) = int32(i) + *(*int32)(unsafe.Pointer(dest)) = int32(int32(i)) case int32(SIZE_l): - *(*int64)(unsafe.Pointer(dest)) = int64(i) + *(*int64)(unsafe.Pointer(dest)) = int64(int64(i)) case int32(SIZE_ll): - *(*int64)(unsafe.Pointer(dest)) = int64(i) + *(*int64)(unsafe.Pointer(dest)) = int64(int64(i)) break } } @@ -141544,7 +141606,7 @@ func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { fallthrough case int32('['): case int32('n'): - _store_int(tls, dest, size, uint64(pos)) + _store_int(tls, dest, size, uint64(uint64(pos))) /* do not increment match count, etc! */ goto _2 default: @@ -141695,7 +141757,7 @@ func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { s = uintptr(0) i = uint64(0) if t == int32('c') { - v63 = uint32(width) + uint32(1) + v63 = uint32(uint32(width)) + uint32(1) } else { v63 = uint32(31) } @@ -141724,7 +141786,7 @@ func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { if !((*(*[257]uint8)(unsafe.Pointer(bp + 16)))[v64+int32(1)] != 0) { break } - *(*int8)(unsafe.Pointer(bp)) = int8(c) + *(*int8)(unsafe.Pointer(bp)) = int8(int8(c)) switch Xmbrtowc(tls, bp+276, bp, uint64(1), bp+8) { case uint64(-Int32FromInt32(1)): goto input_fail @@ -141770,7 +141832,7 @@ func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { } v73 = i i++ - *(*int8)(unsafe.Pointer(s + uintptr(v73))) = int8(c) + *(*int8)(unsafe.Pointer(s + uintptr(v73))) = int8(int8(c)) if i == k { k += k + uint64(1) tmp1 = Xrealloc(tls, s, k) @@ -141800,7 +141862,7 @@ func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { } v79 = i i++ - *(*int8)(unsafe.Pointer(s + uintptr(v79))) = int8(c) + *(*int8)(unsafe.Pointer(s + uintptr(v79))) = int8(int8(c)) } } else { for { @@ -141827,7 +141889,7 @@ func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { if !((*TFILE)(unsafe.Pointer(f)).Fshcnt+(int64((*TFILE)(unsafe.Pointer(f)).Frpos)-int64((*TFILE)(unsafe.Pointer(f)).Fbuf)) != 0) { goto match_fail } - if t == int32('c') && (*TFILE)(unsafe.Pointer(f)).Fshcnt+(int64((*TFILE)(unsafe.Pointer(f)).Frpos)-int64((*TFILE)(unsafe.Pointer(f)).Fbuf)) != int64(width) { + if t == int32('c') && (*TFILE)(unsafe.Pointer(f)).Fshcnt+(int64((*TFILE)(unsafe.Pointer(f)).Frpos)-int64((*TFILE)(unsafe.Pointer(f)).Fbuf)) != int64(int64(width)) { goto match_fail } if alloc != 0 { @@ -141867,14 +141929,15 @@ func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { _49: ; base = 0 + goto int_common int_common: ; - x = X__intscan(tls, f, uint32(base), 0, Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1)) + x = X__intscan(tls, f, uint32(uint32(base)), 0, Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1)) if !((*TFILE)(unsafe.Pointer(f)).Fshcnt+(int64((*TFILE)(unsafe.Pointer(f)).Frpos)-int64((*TFILE)(unsafe.Pointer(f)).Fbuf)) != 0) { goto match_fail } if t == int32('p') && dest != 0 { - *(*uintptr)(unsafe.Pointer(dest)) = uintptr(x) + *(*uintptr)(unsafe.Pointer(dest)) = uintptr(uint64(uint64(x))) } else { _store_int(tls, dest, size, x) } @@ -141902,9 +141965,9 @@ func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { if dest != 0 { switch size { case SIZE_def: - *(*float32)(unsafe.Pointer(dest)) = float32(y) + *(*float32)(unsafe.Pointer(dest)) = float32(float32(y)) case int32(SIZE_l): - *(*float64)(unsafe.Pointer(dest)) = y + *(*float64)(unsafe.Pointer(dest)) = float64(float64(y)) case int32(SIZE_L): *(*float64)(unsafe.Pointer(dest)) = y break @@ -141925,15 +141988,19 @@ func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { if !(0 != 0) { goto _85 } + goto fmt_fail fmt_fail: ; + goto alloc_fail alloc_fail: ; + goto input_fail input_fail: ; if !(matches != 0) { matches-- } + goto match_fail match_fail: ; if alloc != 0 { @@ -142078,7 +142145,7 @@ func _pop_arg1(tls *TLS, arg uintptr, type1 int32, ap uintptr) { case int32(_ULONG): (*Targ)(unsafe.Pointer(arg)).Fi = VaUint64(&*(*Tva_list)(unsafe.Pointer(ap))) case int32(_ULLONG): - (*Targ)(unsafe.Pointer(arg)).Fi = VaUint64(&*(*Tva_list)(unsafe.Pointer(ap))) + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaUint64(&*(*Tva_list)(unsafe.Pointer(ap)))) case int32(_SHORT): (*Targ)(unsafe.Pointer(arg)).Fi = uint64(int16(VaInt32(&*(*Tva_list)(unsafe.Pointer(ap))))) case int32(_USHORT): @@ -142100,7 +142167,7 @@ func _pop_arg1(tls *TLS, arg uintptr, type1 int32, ap uintptr) { case int32(_UIPTR): (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaUintptr(&*(*Tva_list)(unsafe.Pointer(ap)))) case int32(_DBL): - *(*float64)(unsafe.Pointer(arg)) = VaFloat64(&*(*Tva_list)(unsafe.Pointer(ap))) + *(*float64)(unsafe.Pointer(arg)) = float64(VaFloat64(&*(*Tva_list)(unsafe.Pointer(ap)))) case int32(_LDBL): *(*float64)(unsafe.Pointer(arg)) = VaFloat64(&*(*Tva_list)(unsafe.Pointer(ap))) } @@ -142125,7 +142192,7 @@ func _out1(tls *TLS, f uintptr, s uintptr, l Tsize_t) { func _pad4(tls *TLS, f uintptr, n int32, fl int32) { bp := tls.Alloc(32) defer tls.Free(32) - if uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' '))) != 0 || !(n != 0) || (*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_ERR) != 0 { + if uint32(uint32(fl))&(Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' '))) != 0 || !(n != 0) || (*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_ERR) != 0 { return } Xfprintf(tls, f, __ccgo_ts+1651, VaList(bp+8, n, __ccgo_ts)) @@ -142139,7 +142206,7 @@ func _getint1(tls *TLS, s uintptr) (r int32) { if !(BoolInt32(uint32(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s)))))-uint32('0') < uint32(10)) != 0) { break } - if uint32(i) > Uint32FromInt32(INT_MAX)/Uint32FromUint32(10) || *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s))))-int32('0') > int32(INT_MAX)-int32(10)*i { + if uint32(uint32(i)) > Uint32FromInt32(INT_MAX)/Uint32FromUint32(10) || *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s))))-int32('0') > int32(INT_MAX)-int32(10)*i { i = -int32(1) } else { i = int32(10)*i + (*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s)))) - int32('0')) @@ -142216,12 +142283,12 @@ func _wprintf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, z += 4 *(*uintptr)(unsafe.Pointer(bp + 8)) += uintptr(2) * 4 } - if (int64(z)-int64(a))/4 > int64(int32(INT_MAX)-cnt) { + if (int64(int64(z))-int64(int64(a)))/4 > int64(int32(INT_MAX)-cnt) { goto overflow } - l = int32((int64(z) - int64(a)) / 4) + l = int32((int64(int64(z)) - int64(int64(a))) / 4) if f != 0 { - _out1(tls, f, a, uint64(l)) + _out1(tls, f, a, uint64(uint64(l))) } if l != 0 { goto _1 @@ -142328,11 +142395,11 @@ func _wprintf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, } } else { if argpos >= 0 { - *(*int32)(unsafe.Pointer(nl_type + uintptr(argpos)*4)) = int32(st) + *(*int32)(unsafe.Pointer(nl_type + uintptr(argpos)*4)) = int32(int32(st)) *(*Targ)(unsafe.Pointer(bp + 16)) = *(*Targ)(unsafe.Pointer(nl_arg + uintptr(argpos)*8)) } else { if f != 0 { - _pop_arg1(tls, bp+16, int32(st), ap) + _pop_arg1(tls, bp+16, int32(int32(st)), ap) } else { return 0 } @@ -142355,17 +142422,17 @@ func _wprintf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, case uint32(_BARE): *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = cnt case uint32(_LPRE): - *(*int64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = int64(cnt) + *(*int64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = int64(int64(cnt)) case uint32(_LLPRE): - *(*int64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = int64(cnt) + *(*int64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = int64(int64(cnt)) case uint32(_HPRE): - *(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = uint16(cnt) + *(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = uint16(uint16(cnt)) case uint32(_HHPRE): - *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = uint8(cnt) + *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = uint8(uint8(cnt)) case uint32(_ZTPRE): - *(*Tsize_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = uint64(cnt) + *(*Tsize_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = uint64(uint64(cnt)) case uint32(_JPRE): - *(*Tuintmax_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = uint64(cnt) + *(*Tuintmax_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = uint64(uint64(cnt)) break } goto _1 @@ -142375,7 +142442,7 @@ func _wprintf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, if w < int32(1) { w = int32(1) } - _pad4(tls, f, w-int32(1), int32(fl)) + _pad4(tls, f, w-int32(1), int32(int32(fl))) if t == int32('C') { v9 = *(*Tuintmax_t)(unsafe.Pointer(bp + 16)) } else { @@ -142397,12 +142464,12 @@ func _wprintf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, if p < 0 && *(*Twchar_t)(unsafe.Pointer(z)) != 0 { goto overflow } - p = int32((int64(z) - int64(a)) / 4) + p = int32((int64(int64(z)) - int64(int64(a))) / 4) if w < p { w = p } - _pad4(tls, f, w-p, int32(fl)) - _out1(tls, f, a, uint64(p)) + _pad4(tls, f, w-p, int32(int32(fl))) + _out1(tls, f, a, uint64(uint64(p))) _pad4(tls, f, w-p, int32(fl^Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' ')))) l = w goto _1 @@ -142446,7 +142513,7 @@ func _wprintf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, if w < p { w = p } - _pad4(tls, f, w-p, int32(fl)) + _pad4(tls, f, w-p, int32(int32(fl))) bs = *(*uintptr)(unsafe.Pointer(bp + 16)) for { v16 = l @@ -142522,10 +142589,12 @@ func _wprintf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, return -int32(1) } return int32(1) + goto inval inval: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) return -int32(1) + goto overflow overflow: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOVERFLOW) @@ -142564,7 +142633,7 @@ func Xvfwprintf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { if (*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_ERR) != 0 { ret = -int32(1) } - *(*uint32)(unsafe.Pointer(f)) |= uint32(olderr) + *(*uint32)(unsafe.Pointer(f)) |= uint32(uint32(olderr)) if __need_unlock != 0 { ___unlockfile(tls, f) } @@ -142578,15 +142647,15 @@ func _store_int1(tls *TLS, dest uintptr, size int32, i uint64) { } switch size { case -int32(2): - *(*int8)(unsafe.Pointer(dest)) = int8(i) + *(*int8)(unsafe.Pointer(dest)) = int8(int8(i)) case -int32(1): - *(*int16)(unsafe.Pointer(dest)) = int16(i) + *(*int16)(unsafe.Pointer(dest)) = int16(int16(i)) case SIZE_def: - *(*int32)(unsafe.Pointer(dest)) = int32(i) + *(*int32)(unsafe.Pointer(dest)) = int32(int32(i)) case int32(SIZE_l): - *(*int64)(unsafe.Pointer(dest)) = int64(i) + *(*int64)(unsafe.Pointer(dest)) = int64(int64(i)) case int32(SIZE_ll): - *(*int64)(unsafe.Pointer(dest)) = int64(i) + *(*int64)(unsafe.Pointer(dest)) = int64(int64(i)) break } } @@ -142922,7 +142991,7 @@ func Xvfwscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { } switch t { case int32('n'): - _store_int1(tls, dest, size, uint64(pos)) + _store_int1(tls, dest, size, uint64(uint64(pos))) /* do not increment match count, etc! */ goto _2 case int32('s'): @@ -142980,7 +143049,7 @@ func Xvfwscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { i = uint64(0) if alloc != 0 { if t == int32('c') { - v35 = uint32(width) + uint32(1) + v35 = uint32(uint32(width)) + uint32(1) } else { v35 = uint32(31) } @@ -143037,7 +143106,7 @@ func Xvfwscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { if l < 0 { goto input_fail } - i += uint64(l) + i += uint64(uint64(l)) if alloc != 0 && i > k-uint64(4) { k += k + uint64(1) tmp2 = Xrealloc(tls, s, k) @@ -143141,15 +143210,19 @@ func Xvfwscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { if !(0 != 0) { goto _46 } + goto fmt_fail fmt_fail: ; + goto alloc_fail alloc_fail: ; + goto input_fail input_fail: ; if !(matches != 0) { matches-- } + goto match_fail match_fail: ; if alloc != 0 { @@ -143334,7 +143407,7 @@ func _string_read(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { k = len1 + uint64(256) end = Xmemchr(tls, src, 0, k) if end != 0 { - k = uint64(int64(end) - int64(src)) + k = uint64(int64(int64(end)) - int64(int64(src))) } if k < len1 { len1 = k @@ -143400,7 +143473,7 @@ func _sw_write(tls *TLS, f uintptr, s uintptr, l Tsize_t) (r Tsize_t) { i = int32(1) } s += uintptr(i) - l -= uint64(i) + l -= uint64(uint64(i)) (*Tcookie4)(unsafe.Pointer(c)).Fl-- (*Tcookie4)(unsafe.Pointer(c)).Fws += 4 } @@ -143412,7 +143485,7 @@ func _sw_write(tls *TLS, f uintptr, s uintptr, l Tsize_t) (r Tsize_t) { (*TFILE)(unsafe.Pointer(f)).Fwbase = v3 (*TFILE)(unsafe.Pointer(f)).Fwpos = v3 *(*uint32)(unsafe.Pointer(f)) |= uint32(F_ERR) - return uint64(i) + return uint64(uint64(i)) } (*TFILE)(unsafe.Pointer(f)).Fwend = (*TFILE)(unsafe.Pointer(f)).Fbuf + uintptr((*TFILE)(unsafe.Pointer(f)).Fbuf_size) v5 = (*TFILE)(unsafe.Pointer(f)).Fbuf @@ -143450,7 +143523,7 @@ func Xvswprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, ap Tva_list) (r1 in } r = Xvfwprintf(tls, bp+272, fmt, ap) _sw_write(tls, bp+272, uintptr(0), uint64(0)) - if uint64(r) >= n { + if uint64(uint64(r)) >= n { v1 = -int32(1) } else { v1 = r @@ -143770,7 +143843,7 @@ func Xecvt(tls *TLS, x float64, n int32, dp uintptr, sign uintptr) (r uintptr) { var i, j, v1, v3 int32 var _ /* tmp at bp+0 */ [32]int8 _, _, _, _ = i, j, v1, v3 - if uint32(n)-uint32(1) > uint32(15) { + if uint32(uint32(n))-uint32(1) > uint32(15) { n = int32(15) } Xsprintf(tls, bp, __ccgo_ts+1708, VaList(bp+40, n-int32(1), x)) @@ -143807,7 +143880,7 @@ func Xfcvt(tls *TLS, x float64, n int32, dp uintptr, sign uintptr) (r uintptr) { var i, lz int32 var _ /* tmp at bp+0 */ [1500]int8 _, _ = i, lz - if uint32(n) > uint32(1400) { + if uint32(uint32(n)) > uint32(1400) { n = int32(1400) } Xsprintf(tls, bp, __ccgo_ts+1713, VaList(bp+1512, n, x)) @@ -143820,7 +143893,7 @@ func Xfcvt(tls *TLS, x float64, n int32, dp uintptr, sign uintptr) (r uintptr) { if n <= lz { *(*int32)(unsafe.Pointer(sign)) = i *(*int32)(unsafe.Pointer(dp)) = int32(1) - if uint32(n) > uint32(14) { + if uint32(uint32(n)) > uint32(14) { n = int32(14) } return __ccgo_ts + 1718 + UintptrFromInt32(14) - uintptr(n) @@ -143974,25 +144047,25 @@ func _cycle(tls *TLS, width Tsize_t, ar uintptr, n int32) { // // /* shl() and shr() need n > 0 */ func _shl(tls *TLS, p uintptr, n int32) { - if uint64(n) >= Uint64FromInt32(8)*Uint64FromInt64(8) { + if uint64(uint64(n)) >= Uint64FromInt32(8)*Uint64FromInt64(8) { n = int32(uint64(n) - Uint64FromInt32(8)*Uint64FromInt64(8)) *(*Tsize_t)(unsafe.Pointer(p + 1*8)) = *(*Tsize_t)(unsafe.Pointer(p)) *(*Tsize_t)(unsafe.Pointer(p)) = uint64(0) } - *(*Tsize_t)(unsafe.Pointer(p + 1*8)) <<= uint64(n) - *(*Tsize_t)(unsafe.Pointer(p + 1*8)) |= *(*Tsize_t)(unsafe.Pointer(p)) >> (Uint64FromInt64(8)*Uint64FromInt32(8) - uint64(n)) - *(*Tsize_t)(unsafe.Pointer(p)) <<= uint64(n) + *(*Tsize_t)(unsafe.Pointer(p + 1*8)) <<= uint64(uint64(n)) + *(*Tsize_t)(unsafe.Pointer(p + 1*8)) |= *(*Tsize_t)(unsafe.Pointer(p)) >> (Uint64FromInt64(8)*Uint64FromInt32(8) - uint64(uint64(n))) + *(*Tsize_t)(unsafe.Pointer(p)) <<= uint64(uint64(n)) } func _shr(tls *TLS, p uintptr, n int32) { - if uint64(n) >= Uint64FromInt32(8)*Uint64FromInt64(8) { + if uint64(uint64(n)) >= Uint64FromInt32(8)*Uint64FromInt64(8) { n = int32(uint64(n) - Uint64FromInt32(8)*Uint64FromInt64(8)) *(*Tsize_t)(unsafe.Pointer(p)) = *(*Tsize_t)(unsafe.Pointer(p + 1*8)) *(*Tsize_t)(unsafe.Pointer(p + 1*8)) = uint64(0) } - *(*Tsize_t)(unsafe.Pointer(p)) >>= uint64(n) - *(*Tsize_t)(unsafe.Pointer(p)) |= *(*Tsize_t)(unsafe.Pointer(p + 1*8)) << (Uint64FromInt64(8)*Uint64FromInt32(8) - uint64(n)) - *(*Tsize_t)(unsafe.Pointer(p + 1*8)) >>= uint64(n) + *(*Tsize_t)(unsafe.Pointer(p)) >>= uint64(uint64(n)) + *(*Tsize_t)(unsafe.Pointer(p)) |= *(*Tsize_t)(unsafe.Pointer(p + 1*8)) << (Uint64FromInt64(8)*Uint64FromInt32(8) - uint64(uint64(n))) + *(*Tsize_t)(unsafe.Pointer(p + 1*8)) >>= uint64(uint64(n)) } func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { @@ -144110,7 +144183,7 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, _shr(tls, bp+768, int32(2)) pshift += int32(2) } else { - if (*(*[96]Tsize_t)(unsafe.Pointer(bp)))[pshift-int32(1)] >= uint64(int64(high)-int64(head)) { + if (*(*[96]Tsize_t)(unsafe.Pointer(bp)))[pshift-int32(1)] >= uint64(int64(int64(high))-int64(int64(head))) { _trinkle(tls, head, width, cmp, arg, bp+768, pshift, 0, bp) } else { _sift(tls, head, width, cmp, arg, pshift, bp) @@ -144203,7 +144276,7 @@ func Xstrtod(tls *TLS, s uintptr, p uintptr) (r float64) { trc("tls=%v s=%v p=%v, (%v:)", tls, s, p, origin(2)) defer func() { trc("-> %v", r) }() } - return _strtox(tls, s, p, int32(1)) + return float64(_strtox(tls, s, p, int32(1))) } func Xstrtold(tls *TLS, s uintptr, p uintptr) (r float64) { @@ -144227,7 +144300,7 @@ func _strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) (r uint64) (*TFILE)(unsafe.Pointer(bp)).Fbuf = v1 (*TFILE)(unsafe.Pointer(bp)).Frend = uintptr(-Int32FromInt32(1)) X__shlim(tls, bp, int64(Int32FromInt32(0))) - y = X__intscan(tls, bp, uint32(base), int32(1), lim) + y = X__intscan(tls, bp, uint32(uint32(base)), int32(1), lim) if p != 0 { cnt = uint64((*TFILE)(unsafe.Pointer(bp)).Fshcnt + (int64((*TFILE)(unsafe.Pointer(bp)).Frpos) - int64((*TFILE)(unsafe.Pointer(bp)).Fbuf))) *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(cnt) @@ -144256,7 +144329,7 @@ func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) { trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) defer func() { trc("-> %v", r) }() } - return _strtox1(tls, s, p, base, Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1)) + return uint64(_strtox1(tls, s, p, base, uint64(Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1)))) } func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) (r int64) { @@ -144264,7 +144337,7 @@ func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) (r int64) { trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) defer func() { trc("-> %v", r) }() } - return int64(_strtox1(tls, s, p, base, Uint64FromUint64(0)+uint64(-Int64FromInt64(0x7fffffffffffffff)-Int64FromInt32(1)))) + return int64(_strtox1(tls, s, p, base, uint64(Uint64FromUint64(0)+uint64(-Int64FromInt64(0x7fffffffffffffff)-Int64FromInt32(1))))) } func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) { @@ -144272,7 +144345,7 @@ func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) { trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) defer func() { trc("-> %v", r) }() } - return Xstrtoll(tls, s, p, base) + return int64(Xstrtoll(tls, s, p, base)) } func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) (r Tuintmax_t) { @@ -144280,7 +144353,7 @@ func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) (r Tuintmax_t) { trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) defer func() { trc("-> %v", r) }() } - return Xstrtoull(tls, s, p, base) + return uint64(Xstrtoull(tls, s, p, base)) } func X__strtoimax_internal(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) { @@ -144424,7 +144497,7 @@ func Xwcstod(tls *TLS, s uintptr, p uintptr) (r float64) { trc("tls=%v s=%v p=%v, (%v:)", tls, s, p, origin(2)) defer func() { trc("-> %v", r) }() } - return _wcstox(tls, s, p, int32(1)) + return float64(_wcstox(tls, s, p, int32(1))) } func Xwcstold(tls *TLS, s uintptr, p uintptr) (r float64) { @@ -144502,7 +144575,7 @@ func _wcstox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) (r uint64) } (*(*TFILE)(unsafe.Pointer(bp + 64))).Fcookie = t X__shlim(tls, bp+64, int64(Int32FromInt32(0))) - y = X__intscan(tls, bp+64, uint32(base), int32(1), lim) + y = X__intscan(tls, bp+64, uint32(uint32(base)), int32(1), lim) if p != 0 { cnt = uint64((*TFILE)(unsafe.Pointer(bp+64)).Fshcnt + (int64((*TFILE)(unsafe.Pointer(bp+64)).Frpos) - int64((*TFILE)(unsafe.Pointer(bp+64)).Fbuf))) if cnt != 0 { @@ -144536,7 +144609,7 @@ func Xwcstoul(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) { trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) defer func() { trc("-> %v", r) }() } - return _wcstox1(tls, s, p, base, Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1)) + return uint64(_wcstox1(tls, s, p, base, uint64(Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1)))) } func Xwcstol(tls *TLS, s uintptr, p uintptr, base int32) (r int64) { @@ -144544,7 +144617,7 @@ func Xwcstol(tls *TLS, s uintptr, p uintptr, base int32) (r int64) { trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) defer func() { trc("-> %v", r) }() } - return int64(_wcstox1(tls, s, p, base, Uint64FromUint64(0)+uint64(-Int64FromInt64(0x7fffffffffffffff)-Int64FromInt32(1)))) + return int64(_wcstox1(tls, s, p, base, uint64(Uint64FromUint64(0)+uint64(-Int64FromInt64(0x7fffffffffffffff)-Int64FromInt32(1))))) } func Xwcstoimax(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) { @@ -144552,7 +144625,7 @@ func Xwcstoimax(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) { trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) defer func() { trc("-> %v", r) }() } - return Xwcstoll(tls, s, p, base) + return int64(Xwcstoll(tls, s, p, base)) } func Xwcstoumax(tls *TLS, s uintptr, p uintptr, base int32) (r Tuintmax_t) { @@ -144560,7 +144633,7 @@ func Xwcstoumax(tls *TLS, s uintptr, p uintptr, base int32) (r Tuintmax_t) { trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) defer func() { trc("-> %v", r) }() } - return Xwcstoull(tls, s, p, base) + return uint64(Xwcstoull(tls, s, p, base)) } func Xbcmp(tls *TLS, s1 uintptr, s2 uintptr, n Tsize_t) (r int32) { @@ -144625,10 +144698,10 @@ func Xmemccpy(tls *TLS, dest uintptr, src uintptr, c int32, n Tsize_t) (r uintpt _, _, _, _, _, _, _, _, _ = d, k, s, wd, ws, v2, v3, v6, v7 d = dest s = src - c = int32(uint8(c)) - if uint64(s)&(Uint64FromInt64(8)-Uint64FromInt32(1)) == uint64(d)&(Uint64FromInt64(8)-Uint64FromInt32(1)) { + c = int32(uint8(uint8(c))) + if uint64(uint64(s))&(Uint64FromInt64(8)-Uint64FromInt32(1)) == uint64(uint64(d))&(Uint64FromInt64(8)-Uint64FromInt32(1)) { for { - if v3 = uint64(s)&(Uint64FromInt64(8)-Uint64FromInt32(1)) != 0 && n != 0; v3 { + if v3 = uint64(uint64(s))&(Uint64FromInt64(8)-Uint64FromInt32(1)) != 0 && n != 0; v3 { v2 = *(*uint8)(unsafe.Pointer(s)) *(*uint8)(unsafe.Pointer(d)) = v2 } @@ -144642,10 +144715,10 @@ func Xmemccpy(tls *TLS, dest uintptr, src uintptr, c int32, n Tsize_t) (r uintpt s++ d++ } - if uint64(s)&(Uint64FromInt64(8)-Uint64FromInt32(1)) != 0 { + if uint64(uint64(s))&(Uint64FromInt64(8)-Uint64FromInt32(1)) != 0 { goto tail } - k = uint64(-Int32FromInt32(1)) / Uint64FromInt32(UCHAR_MAX) * uint64(c) + k = uint64(-Int32FromInt32(1)) / Uint64FromInt32(UCHAR_MAX) * uint64(uint64(c)) wd = d ws = s for { @@ -144678,6 +144751,7 @@ func Xmemccpy(tls *TLS, dest uintptr, src uintptr, c int32, n Tsize_t) (r uintpt s++ d++ } + goto tail tail: ; if n != 0 { @@ -144706,9 +144780,9 @@ func Xmemchr(tls *TLS, src uintptr, c int32, n Tsize_t) (r uintptr) { var s, w, v4 uintptr _, _, _, _ = k, s, w, v4 s = src - c = int32(uint8(c)) + c = int32(uint8(uint8(c))) for { - if !(uint64(s)&(Uint64FromInt64(8)-Uint64FromInt32(1)) != 0 && n != 0 && int32(*(*uint8)(unsafe.Pointer(s))) != c) { + if !(uint64(uint64(s))&(Uint64FromInt64(8)-Uint64FromInt32(1)) != 0 && n != 0 && int32(*(*uint8)(unsafe.Pointer(s))) != c) { break } goto _1 @@ -144718,7 +144792,7 @@ func Xmemchr(tls *TLS, src uintptr, c int32, n Tsize_t) (r uintptr) { n-- } if n != 0 && int32(*(*uint8)(unsafe.Pointer(s))) != c { - k = uint64(-Int32FromInt32(1)) / Uint64FromInt32(UCHAR_MAX) * uint64(c) + k = uint64(-Int32FromInt32(1)) / Uint64FromInt32(UCHAR_MAX) * uint64(uint64(c)) w = s for { if !(n >= Uint64FromInt64(8) && !((*(*uint64)(unsafe.Pointer(w))^k-uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)) & ^(*(*uint64)(unsafe.Pointer(w))^k) & (uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)*uint64(Int32FromInt32(UCHAR_MAX)/Int32FromInt32(2)+Int32FromInt32(1))) != 0)) { @@ -144793,7 +144867,7 @@ func Xmemcpy(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) { d = dest s = src for { - if !(uint64(s)%uint64(4) != 0 && n != 0) { + if !(uint64(uint64(s))%uint64(4) != 0 && n != 0) { break } v2 = d @@ -144806,7 +144880,7 @@ func Xmemcpy(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) { ; n-- } - if uint64(d)%uint64(4) == uint64(0) { + if uint64(uint64(d))%uint64(4) == uint64(0) { for { if !(n >= uint64(16)) { break @@ -144851,7 +144925,7 @@ func Xmemcpy(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) { return dest } if n >= uint64(32) { - switch uint64(d) % Uint64FromInt32(4) { + switch uint64(uint64(d)) % Uint64FromInt32(4) { case uint64(1): w = *(*uint32)(unsafe.Pointer(s)) v9 = d @@ -145142,7 +145216,7 @@ func _twobyte_memmem(tls *TLS, h uintptr, k Tsize_t, n uintptr) (r uintptr) { if !(k != 0) { break } - if int32(hw) == int32(nw) { + if int32(int32(hw)) == int32(int32(nw)) { return h - uintptr(2) } goto _1 @@ -145151,9 +145225,9 @@ func _twobyte_memmem(tls *TLS, h uintptr, k Tsize_t, n uintptr) (r uintptr) { k-- v2 = h h++ - hw = uint16(int32(hw)<= uint64(32)) { break @@ -145671,9 +145745,9 @@ func X__stpcpy(tls *TLS, d uintptr, s uintptr) (r uintptr) { var wd, ws, v4, v5 uintptr var v2, v7 int8 _, _, _, _, _, _ = wd, ws, v2, v4, v5, v7 - if uint64(s)%Uint64FromInt64(8) == uint64(d)%Uint64FromInt64(8) { + if uint64(uint64(s))%Uint64FromInt64(8) == uint64(uint64(d))%Uint64FromInt64(8) { for { - if !(uint64(s)%Uint64FromInt64(8) != 0) { + if !(uint64(uint64(s))%Uint64FromInt64(8) != 0) { break } v2 = *(*int8)(unsafe.Pointer(s)) @@ -145757,9 +145831,9 @@ func X__stpncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) { var v2, v6 int8 var v3, v7 bool _, _, _, _, _, _ = wd, ws, v2, v3, v6, v7 - if uint64(s)&(Uint64FromInt64(8)-Uint64FromInt32(1)) == uint64(d)&(Uint64FromInt64(8)-Uint64FromInt32(1)) { + if uint64(uint64(s))&(Uint64FromInt64(8)-Uint64FromInt32(1)) == uint64(uint64(d))&(Uint64FromInt64(8)-Uint64FromInt32(1)) { for { - if v3 = uint64(s)&(Uint64FromInt64(8)-Uint64FromInt32(1)) != 0 && n != 0; v3 { + if v3 = uint64(uint64(s))&(Uint64FromInt64(8)-Uint64FromInt32(1)) != 0 && n != 0; v3 { v2 = *(*int8)(unsafe.Pointer(s)) *(*int8)(unsafe.Pointer(d)) = v2 } @@ -145808,6 +145882,7 @@ func X__stpncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) { s++ d++ } + goto tail tail: ; Xmemset(tls, d, 0, n) @@ -145909,7 +145984,7 @@ func Xstrchr(tls *TLS, s uintptr, c int32) (r1 uintptr) { var r, v1 uintptr _, _ = r, v1 r = X__strchrnul(tls, s, c) - if int32(*(*uint8)(unsafe.Pointer(r))) == int32(uint8(c)) { + if int32(*(*uint8)(unsafe.Pointer(r))) == int32(uint8(uint8(c))) { v1 = r } else { v1 = uintptr(0) @@ -145936,12 +146011,12 @@ func X__strchrnul(tls *TLS, s uintptr, c int32) (r uintptr) { var k Tsize_t var w uintptr _, _ = k, w - c = int32(uint8(c)) + c = int32(uint8(uint8(c))) if !(c != 0) { return s + uintptr(Xstrlen(tls, s)) } for { - if !(uint64(s)%Uint64FromInt64(8) != 0) { + if !(uint64(uint64(s))%Uint64FromInt64(8) != 0) { break } if !(*(*int8)(unsafe.Pointer(s)) != 0) || int32(*(*uint8)(unsafe.Pointer(s))) == c { @@ -145952,7 +146027,7 @@ func X__strchrnul(tls *TLS, s uintptr, c int32) (r uintptr) { ; s++ } - k = uint64(-Int32FromInt32(1)) / Uint64FromInt32(UCHAR_MAX) * uint64(c) + k = uint64(-Int32FromInt32(1)) / Uint64FromInt32(UCHAR_MAX) * uint64(uint64(c)) w = s for { if !(!((*(*uint64)(unsafe.Pointer(w))-uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)) & ^*(*uint64)(unsafe.Pointer(w)) & (uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)*uint64(Int32FromInt32(UCHAR_MAX)/Int32FromInt32(2)+Int32FromInt32(1))) != 0) && !((*(*uint64)(unsafe.Pointer(w))^k-uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)) & ^(*(*uint64)(unsafe.Pointer(w))^k) & (uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)*uint64(Int32FromInt32(UCHAR_MAX)/Int32FromInt32(2)+Int32FromInt32(1))) != 0)) { @@ -146033,7 +146108,7 @@ func Xstrcspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) { _, _, _ = a, v3, p2 a = s if !(*(*int8)(unsafe.Pointer(c)) != 0) || !(*(*int8)(unsafe.Pointer(c + 1)) != 0) { - return uint64(int64(X__strchrnul(tls, s, int32(*(*int8)(unsafe.Pointer(c))))) - int64(a)) + return uint64(int64(X__strchrnul(tls, s, int32(*(*int8)(unsafe.Pointer(c))))) - int64(int64(a))) } Xmemset(tls, bp, 0, uint64(32)) for { @@ -146058,7 +146133,7 @@ func Xstrcspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) { ; s++ } - return uint64(int64(s) - int64(a)) + return uint64(int64(int64(s)) - int64(int64(a))) } func Xstrdup(tls *TLS, s uintptr) (r uintptr) { @@ -146147,9 +146222,9 @@ func Xstrlcpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r Tsize_t) { if !(v1 != 0) { goto finish } - if uint64(s)&(Uint64FromInt64(8)-Uint64FromInt32(1)) == uint64(d)&(Uint64FromInt64(8)-Uint64FromInt32(1)) { + if uint64(uint64(s))&(Uint64FromInt64(8)-Uint64FromInt32(1)) == uint64(uint64(d))&(Uint64FromInt64(8)-Uint64FromInt32(1)) { for { - if v4 = uint64(s)&(Uint64FromInt64(8)-Uint64FromInt32(1)) != 0 && n != 0; v4 { + if v4 = uint64(uint64(s))&(Uint64FromInt64(8)-Uint64FromInt32(1)) != 0 && n != 0; v4 { v3 = *(*int8)(unsafe.Pointer(s)) *(*int8)(unsafe.Pointer(d)) = v3 } @@ -146198,9 +146273,10 @@ func Xstrlcpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r Tsize_t) { d++ } *(*int8)(unsafe.Pointer(d)) = 0 + goto finish finish: ; - return uint64(int64(d)-int64(d0)) + Xstrlen(tls, s) + return uint64(int64(int64(d))-int64(int64(d0))) + Xstrlen(tls, s) return r } @@ -146224,11 +146300,11 @@ func Xstrlen(tls *TLS, s uintptr) (r Tsize_t) { _, _ = a, w a = s for { - if !(uint64(s)%Uint64FromInt64(8) != 0) { + if !(uint64(uint64(s))%Uint64FromInt64(8) != 0) { break } if !(*(*int8)(unsafe.Pointer(s)) != 0) { - return uint64(int64(s) - int64(a)) + return uint64(int64(int64(s)) - int64(int64(a))) } goto _1 _1: @@ -146255,7 +146331,7 @@ func Xstrlen(tls *TLS, s uintptr) (r Tsize_t) { ; s++ } - return uint64(int64(s) - int64(a)) + return uint64(int64(int64(s)) - int64(int64(a))) } func Xstrncasecmp(tls *TLS, _l uintptr, _r uintptr, n Tsize_t) (r1 int32) { @@ -146392,7 +146468,7 @@ func Xstrnlen(tls *TLS, s uintptr, n Tsize_t) (r Tsize_t) { _, _ = p, v1 p = Xmemchr(tls, s, 0, n) if p != 0 { - v1 = uint64(int64(p) - int64(s)) + v1 = uint64(int64(int64(p)) - int64(int64(s))) } else { v1 = n } @@ -146458,7 +146534,7 @@ func Xstrsignal(tls *TLS, signum int32) (r uintptr) { _, _ = s, v2 s = uintptr(unsafe.Pointer(&_strings)) signum = signum - if uint32(signum)-uint32(1) >= uint32(Int32FromInt32(_NSIG)-Int32FromInt32(1)) { + if uint32(uint32(signum))-uint32(1) >= uint32(Int32FromInt32(_NSIG)-Int32FromInt32(1)) { signum = 0 } for { @@ -146510,7 +146586,7 @@ func Xstrspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) { ; s++ } - return uint64(int64(s) - int64(a)) + return uint64(int64(int64(s)) - int64(int64(a))) } for { if v4 = *(*int8)(unsafe.Pointer(c)) != 0; v4 { @@ -146534,7 +146610,7 @@ func Xstrspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) { ; s++ } - return uint64(int64(s) - int64(a)) + return uint64(int64(int64(s)) - int64(int64(a))) } func _twobyte_strstr(tls *TLS, h uintptr, n uintptr) (r uintptr) { @@ -146545,7 +146621,7 @@ func _twobyte_strstr(tls *TLS, h uintptr, n uintptr) (r uintptr) { hw = uint16(int32(*(*uint8)(unsafe.Pointer(h)))< l-uint64(6) || Xmemcmp(tls, template+uintptr(l)-uintptr(len1)-uintptr(6), __ccgo_ts+1747, uint64(6)) != 0 { + if l < uint64(6) || uint64(uint64(len1)) > l-uint64(6) || Xmemcmp(tls, template+uintptr(l)-uintptr(len1)-uintptr(6), __ccgo_ts+1747, uint64(6)) != 0 { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) return -int32(1) } @@ -148146,7 +148222,7 @@ func X__secs_to_tm(tls *TLS, t int64, tm uintptr) (r int32) { if yday >= int32(365)+leap { yday -= int32(365) + leap } - years = int64(remyears+int32(4)*q_cycles+int32(100)*c_cycles) + int64(400)*int64(qc_cycles) + years = int64(remyears+int32(4)*q_cycles+int32(100)*c_cycles) + int64(400)*int64(int64(qc_cycles)) months = 0 for { if !(int32(_days_in_month[months]) <= remdays) { @@ -148211,7 +148287,7 @@ func X__tm_to_secs(tls *TLS, tm uintptr) (r int64) { adj-- month += int32(12) } - year += int64(adj) + year += int64(int64(adj)) } t = X__year_to_secs(tls, year, bp) t += int64(X__month_to_secs(tls, month, *(*int32)(unsafe.Pointer(bp)))) @@ -148257,7 +148333,7 @@ func _getint2(tls *TLS, p uintptr) (r int32) { ; *(*uintptr)(unsafe.Pointer(p))++ } - return int32(x) + return int32(int32(x)) } func _getoff(tls *TLS, p uintptr) (r int32) { @@ -148567,7 +148643,7 @@ func _do_tzset(tls *TLS) { } if !(Xdaylight != 0) { Xtzname[int32(1)] = Xtzname[0] - _dst_off = int32(Xtimezone) + _dst_off = int32(int32(Xtimezone)) } return } @@ -148589,7 +148665,7 @@ func _do_tzset(tls *TLS) { } } else { Xdaylight = 0 - _dst_off = int32(Xtimezone) + _dst_off = int32(int32(Xtimezone)) } if int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 288))))) == int32(',') { *(*uintptr)(unsafe.Pointer(bp + 288))++ @@ -148614,7 +148690,7 @@ func _scan_trans(tls *TLS, t int64, local int32, alt uintptr) (r Tsize_t) { scale = int32(3) - BoolInt32(_trans == _zi+uintptr(44)) off = 0 a = uint64(0) - n = uint64((int64(_index) - int64(_trans)) >> scale) + n = uint64((int64(int64(_index)) - int64(int64(_trans))) >> scale) if !(n != 0) { if alt != 0 { *(*Tsize_t)(unsafe.Pointer(alt)) = uint64(0) @@ -148628,12 +148704,12 @@ func _scan_trans(tls *TLS, t int64, local int32, alt uintptr) (r Tsize_t) { if scale == int32(3) { x = x<> scale) + n = uint64((int64(int64(_index)) - int64(int64(_trans))) >> scale) if a == n-uint64(1) { return uint64(-Int32FromInt32(1)) } @@ -148651,11 +148727,11 @@ func _scan_trans(tls *TLS, t int64, local int32, alt uintptr) (r Tsize_t) { if scale == int32(3) { x = x<= t0 && t < t1 { @@ -148800,6 +148876,7 @@ func X__secs_to_zone(tls *TLS, t int64, local int32, isdst uintptr, offset uintp } goto dst } + goto std std: ; *(*int32)(unsafe.Pointer(isdst)) = 0 @@ -148810,6 +148887,7 @@ std: *(*uintptr)(unsafe.Pointer(zonename)) = Xtzname[0] ___unlock(tls, uintptr(unsafe.Pointer(&_lock4))) return + goto dst dst: ; *(*int32)(unsafe.Pointer(isdst)) = int32(1) @@ -148837,7 +148915,7 @@ func X__tm_to_tzname(tls *TLS, tm uintptr) (r uintptr) { p = (*Ttm)(unsafe.Pointer(tm)).F__tm_zone ___lock(tls, uintptr(unsafe.Pointer(&_lock4))) _do_tzset(tls) - if p != uintptr(unsafe.Pointer(&X__utc)) && p != Xtzname[0] && p != Xtzname[int32(1)] && (!(_zi != 0) || uint64(p)-uint64(_abbrevs) >= uint64(int64(_abbrevs_end)-int64(_abbrevs))) { + if p != uintptr(unsafe.Pointer(&X__utc)) && p != Xtzname[0] && p != Xtzname[int32(1)] && (!(_zi != 0) || uint64(uint64(p))-uint64(uint64(_abbrevs)) >= uint64(int64(int64(_abbrevs_end))-int64(int64(_abbrevs)))) { p = __ccgo_ts } ___unlock(tls, uintptr(unsafe.Pointer(&_lock4))) @@ -148854,8 +148932,8 @@ func X__year_to_secs(tls *TLS, year int64, is_leap uintptr) (r int64) { var centuries, cycles, leaps, leaps1, rem, y int32 var _ /* dummy at bp+0 */ int32 _, _, _, _, _, _ = centuries, cycles, leaps, leaps1, rem, y - if uint64(year)-uint64(2) <= uint64(136) { - y = int32(year) + if uint64(uint64(year))-uint64(2) <= uint64(136) { + y = int32(int32(year)) leaps = (y - int32(68)) >> int32(2) if !((y-Int32FromInt32(68))&Int32FromInt32(3) != 0) { leaps-- @@ -148903,13 +148981,13 @@ func X__year_to_secs(tls *TLS, year int64, is_leap uintptr) (r int64) { *(*int32)(unsafe.Pointer(is_leap)) = 0 leaps1 = 0 } else { - leaps1 = int32(uint32(rem) / uint32(4)) + leaps1 = int32(uint32(uint32(rem)) / uint32(4)) rem = int32(uint32(rem) % Uint32FromUint32(4)) *(*int32)(unsafe.Pointer(is_leap)) = BoolInt32(!(rem != 0)) } } leaps1 += int32(97)*cycles + int32(24)*centuries - *(*int32)(unsafe.Pointer(is_leap)) - return (year-int64(100))*int64(31536000) + int64(leaps1)*int64(86400) + int64(946684800) + int64(86400) + return (year-int64(100))*int64(31536000) + int64(int64(leaps1))*int64(86400) + int64(946684800) + int64(86400) } func Xasctime(tls *TLS, tm uintptr) (r uintptr) { @@ -149026,7 +149104,7 @@ func X__clock_gettime(tls *TLS, clk Tclockid_t, ts uintptr) (r1 int32) { } r = -int32(EINVAL) } - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } func Xclock_gettime(tls *TLS, clk Tclockid_t, ts uintptr) (r int32) { @@ -149174,6 +149252,7 @@ func Xgetdate(tls *TLS, s uintptr) (r uintptr) { } else { Xgetdate_err = int32(7) } + goto out out: ; if f != 0 { @@ -149217,7 +149296,7 @@ func X__gmtime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) { trc("tls=%v t=%v tm=%v, (%v:)", tls, t, tm, origin(2)) defer func() { trc("-> %v", r) }() } - if X__secs_to_tm(tls, *(*Ttime_t)(unsafe.Pointer(t)), tm) < 0 { + if X__secs_to_tm(tls, int64(*(*Ttime_t)(unsafe.Pointer(t))), tm) < 0 { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOVERFLOW) return uintptr(0) } @@ -149261,12 +149340,12 @@ func X__localtime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) { } /* Reject time_t values whose year would overflow int because * __secs_to_zone cannot safely handle them. */ - if *(*Ttime_t)(unsafe.Pointer(t)) < int64(-Int32FromInt32(1)-Int32FromInt32(0x7fffffff))*Int64FromInt64(31622400) || *(*Ttime_t)(unsafe.Pointer(t)) > Int64FromInt32(INT_MAX)*Int64FromInt64(31622400) { + if int64(*(*Ttime_t)(unsafe.Pointer(t))) < int64(-Int32FromInt32(1)-Int32FromInt32(0x7fffffff))*Int64FromInt64(31622400) || int64(*(*Ttime_t)(unsafe.Pointer(t))) > Int64FromInt32(INT_MAX)*Int64FromInt64(31622400) { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOVERFLOW) return uintptr(0) } - X__secs_to_zone(tls, *(*Ttime_t)(unsafe.Pointer(t)), 0, tm+32, tm+40, uintptr(0), tm+48) - if X__secs_to_tm(tls, *(*Ttime_t)(unsafe.Pointer(t))+(*Ttm)(unsafe.Pointer(tm)).F__tm_gmtoff, tm) < 0 { + X__secs_to_zone(tls, int64(*(*Ttime_t)(unsafe.Pointer(t))), 0, tm+32, tm+40, uintptr(0), tm+48) + if X__secs_to_tm(tls, int64(*(*Ttime_t)(unsafe.Pointer(t)))+int64((*Ttm)(unsafe.Pointer(tm)).F__tm_gmtoff), tm) < 0 { *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOVERFLOW) return uintptr(0) } @@ -149304,18 +149383,19 @@ func Xmktime(tls *TLS, tm uintptr) (r Ttime_t) { t = X__tm_to_secs(tls, tm) X__secs_to_zone(tls, t, int32(1), bp+32, bp+40, bp+56, bp+48) if (*Ttm)(unsafe.Pointer(tm)).Ftm_isdst >= 0 && (*(*Ttm)(unsafe.Pointer(bp))).Ftm_isdst != (*Ttm)(unsafe.Pointer(tm)).Ftm_isdst { - t -= *(*int64)(unsafe.Pointer(bp + 56)) - (*(*Ttm)(unsafe.Pointer(bp))).F__tm_gmtoff + t -= int64(*(*int64)(unsafe.Pointer(bp + 56)) - (*(*Ttm)(unsafe.Pointer(bp))).F__tm_gmtoff) } - t -= (*(*Ttm)(unsafe.Pointer(bp))).F__tm_gmtoff - if t != t { + t -= int64((*(*Ttm)(unsafe.Pointer(bp))).F__tm_gmtoff) + if int64(int64(int64(t))) != t { goto error } X__secs_to_zone(tls, t, 0, bp+32, bp+40, bp+56, bp+48) - if X__secs_to_tm(tls, t+(*(*Ttm)(unsafe.Pointer(bp))).F__tm_gmtoff, bp) < 0 { + if X__secs_to_tm(tls, t+int64((*(*Ttm)(unsafe.Pointer(bp))).F__tm_gmtoff), bp) < 0 { goto error } *(*Ttm)(unsafe.Pointer(tm)) = *(*Ttm)(unsafe.Pointer(bp)) - return t + return int64(int64(t)) + goto error error: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOVERFLOW) @@ -149521,7 +149601,7 @@ func X__strftime_fmt_1(tls *TLS, s uintptr, l uintptr, f int32, tm uintptr, loc fmt = __ccgo_ts + 1855 goto recu_strftime case int32('s'): - val = X__tm_to_secs(tls, tm) - (*Ttm)(unsafe.Pointer(tm)).F__tm_gmtoff + val = X__tm_to_secs(tls, tm) - int64((*Ttm)(unsafe.Pointer(tm)).F__tm_gmtoff) width = int32(1) goto number case int32('S'): @@ -149595,6 +149675,7 @@ func X__strftime_fmt_1(tls *TLS, s uintptr, l uintptr, f int32, tm uintptr, loc default: return uintptr(0) } + goto number number: ; if pad != 0 { @@ -149614,16 +149695,20 @@ number: break } return s + goto nl_strcat nl_strcat: ; fmt = X__nl_langinfo_l(tls, item, loc) + goto string string: ; *(*Tsize_t)(unsafe.Pointer(l)) = Xstrlen(tls, fmt) return fmt + goto nl_strftime nl_strftime: ; fmt = X__nl_langinfo_l(tls, item, loc) + goto recu_strftime recu_strftime: ; *(*Tsize_t)(unsafe.Pointer(l)) = X__strftime_l(tls, s, uint64(100), fmt, tm, loc) @@ -149785,7 +149870,7 @@ func Xstrftime(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr) (r Tsize_t trc("tls=%v s=%v n=%v f=%v tm=%v, (%v:)", tls, s, n, f, tm, origin(2)) defer func() { trc("-> %v", r) }() } - return X__strftime_l(tls, s, n, f, tm, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale) + return X__strftime_l(tls, s, n, f, tm, (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Flocale) } func Xstrftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) { @@ -150129,6 +150214,7 @@ func Xstrptime(tls *TLS, s uintptr, f uintptr, tm uintptr) (r uintptr) { _40: ; return uintptr(0) + goto numeric_range numeric_range: ; if !(BoolInt32(uint32(*(*int8)(unsafe.Pointer(s)))-Uint32FromUint8('0') < Uint32FromInt32(10)) != 0) { @@ -150148,7 +150234,7 @@ func Xstrptime(tls *TLS, s uintptr, f uintptr, tm uintptr) (r uintptr) { ; i *= int32(10) } - if uint32(*(*int32)(unsafe.Pointer(dest))-min) >= uint32(range1) { + if uint32(*(*int32)(unsafe.Pointer(dest))-min) >= uint32(uint32(range1)) { return uintptr(0) } *(*int32)(unsafe.Pointer(dest)) -= adj @@ -150156,6 +150242,7 @@ func Xstrptime(tls *TLS, s uintptr, f uintptr, tm uintptr) (r uintptr) { case int64(uint64(UintptrFromInt32(0) + 28)): } goto update + goto numeric_digits numeric_digits: ; neg = 0 @@ -150190,6 +150277,7 @@ func Xstrptime(tls *TLS, s uintptr, f uintptr, tm uintptr) (r uintptr) { } *(*int32)(unsafe.Pointer(dest)) -= adj goto update + goto symbolic_range symbolic_range: ; i = int32(2)*range1 - int32(1) @@ -150214,6 +150302,7 @@ func Xstrptime(tls *TLS, s uintptr, f uintptr, tm uintptr) (r uintptr) { return uintptr(0) } goto update + goto update update: ; //FIXME @@ -150266,7 +150355,7 @@ func Xtimegm(tls *TLS, tm uintptr) (r Ttime_t) { (*Ttm1)(unsafe.Pointer(tm)).Ftm_isdst = 0 (*Ttm1)(unsafe.Pointer(tm)).Ftm_gmtoff = 0 (*Ttm1)(unsafe.Pointer(tm)).Ftm_zone = uintptr(unsafe.Pointer(&X__utc)) - return t + return int64(int64(t)) } func Xtimer_delete(tls *TLS, t Ttimer_t) (r int32) { @@ -150276,8 +150365,8 @@ func Xtimer_delete(tls *TLS, t Ttimer_t) (r int32) { } var td Tpthread_t _ = td - if int64(t) < 0 { - td = uintptr(uint64(t) << Int32FromInt32(1)) + if int64(int64(t)) < 0 { + td = uintptr(uint64(uint64(t)) << Int32FromInt32(1)) // __asm__ __volatile__( // // "mov %1, %0 ; lock ; orl $0,(%%rsp)" @@ -150296,8 +150385,8 @@ func Xtimer_getoverrun(tls *TLS, t Ttimer_t) (r int32) { } var td Tpthread_t _ = td - if int64(t) < 0 { - td = uintptr(uint64(t) << Int32FromInt32(1)) + if int64(int64(t)) < 0 { + td = uintptr(uint64(uint64(t)) << Int32FromInt32(1)) t = uintptr(uint64(AtomicLoadPInt32(td+164) & Int32FromInt32(INT_MAX))) } return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_timer_getoverrun), int64(t))))) @@ -150310,8 +150399,8 @@ func Xtimer_gettime(tls *TLS, t Ttimer_t, val uintptr) (r int32) { } var td Tpthread_t _ = td - if int64(t) < 0 { - td = uintptr(uint64(t) << Int32FromInt32(1)) + if int64(int64(t)) < 0 { + td = uintptr(uint64(uint64(t)) << Int32FromInt32(1)) t = uintptr(uint64(AtomicLoadPInt32(td+164) & Int32FromInt32(INT_MAX))) } return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_timer_gettime), int64(t), int64(val))))) @@ -150324,8 +150413,8 @@ func Xtimer_settime(tls *TLS, t Ttimer_t, flags int32, val uintptr, old uintptr) } var td Tpthread_t _ = td - if int64(t) < 0 { - td = uintptr(uint64(t) << Int32FromInt32(1)) + if int64(int64(t)) < 0 { + td = uintptr(uint64(uint64(t)) << Int32FromInt32(1)) t = uintptr(uint64(AtomicLoadPInt32(td+164) & Int32FromInt32(INT_MAX))) } return int32(X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_timer_settime), int64(t), int64(flags), int64(val), int64(old))))) @@ -150525,7 +150614,7 @@ func Xwcsftime(tls *TLS, wcs uintptr, n Tsize_t, f uintptr, tm uintptr) (r Tsize trc("tls=%v wcs=%v n=%v f=%v tm=%v, (%v:)", tls, wcs, n, f, tm, origin(2)) defer func() { trc("-> %v", r) }() } - return X__wcsftime_l(tls, wcs, n, f, tm, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale) + return X__wcsftime_l(tls, wcs, n, f, tm, (*t__pthread)(unsafe.Pointer(uintptr(___get_tp(tls)))).Flocale) } func Xwcsftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) { @@ -150570,7 +150659,7 @@ func Xalarm(tls *TLS, seconds uint32) (r uint32) { var _ /* old at bp+32 */ Titimerval *(*Titimerval)(unsafe.Pointer(bp)) = Titimerval{ Fit_value: Ttimeval{ - Ftv_sec: int64(seconds), + Ftv_sec: int64(int64(seconds)), }, } *(*Titimerval)(unsafe.Pointer(bp + 32)) = Titimerval{} @@ -150610,7 +150699,7 @@ func Xclose(tls *TLS, fd int32) (r1 int32) { if r == -int32(EINTR) { r = 0 } - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } func Xctermid(tls *TLS, s uintptr) (r uintptr) { @@ -150650,7 +150739,7 @@ func Xdup2(tls *TLS, old int32, new1 int32) (r1 int32) { break } } - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } func X__dup3(tls *TLS, old int32, new1 int32, flags int32) (r1 int32) { @@ -150672,7 +150761,7 @@ func X__dup3(tls *TLS, old int32, new1 int32, flags int32) (r1 int32) { } } if r != -int32(ENOSYS) { - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } if flags & ^Int32FromInt32(O_CLOEXEC) != 0 { return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EINVAL)))) @@ -150688,7 +150777,7 @@ func X__dup3(tls *TLS, old int32, new1 int32, flags int32) (r1 int32) { if r >= 0 && flags&int32(O_CLOEXEC) != 0 { X__syscall3(tls, int64(SYS_fcntl), int64(new1), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) } - return int32(X__syscall_ret(tls, uint64(r))) + return int32(X__syscall_ret(tls, uint64(uint64(r)))) } func Xdup3(tls *TLS, old int32, new1 int32, flags int32) (r int32) { @@ -150731,7 +150820,7 @@ func Xfaccessat(tls *TLS, fd int32, filename uintptr, amode int32, flag int32) ( if flag != 0 { ret = int32(X__syscall4(tls, int64(SYS_faccessat2), int64(fd), int64(filename), int64(amode), int64(flag))) if ret != -int32(ENOSYS) { - return int32(X__syscall_ret(tls, uint64(ret))) + return int32(X__syscall_ret(tls, uint64(uint64(ret)))) } } if flag & ^Int32FromInt32(AT_EACCESS) != 0 { @@ -150752,9 +150841,9 @@ func Xfchdir(tls *TLS, fd int32) (r int32) { _ = ret ret = int32(X__syscall1(tls, int64(SYS_fchdir), int64(fd))) if ret != -int32(EBADF) || X__syscall2(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_GETFD))) < 0 { - return int32(X__syscall_ret(tls, uint64(ret))) + return int32(X__syscall_ret(tls, uint64(uint64(ret)))) } - X__procfdname(tls, bp, uint32(fd)) + X__procfdname(tls, bp, uint32(uint32(fd))) return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_chdir), int64(bp))))) } @@ -150770,9 +150859,9 @@ func Xfchown(tls *TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) { _ = ret ret = int32(X__syscall3(tls, int64(SYS_fchown), int64(fd), int64(uid), int64(gid))) if ret != -int32(EBADF) || X__syscall2(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_GETFD))) < 0 { - return int32(X__syscall_ret(tls, uint64(ret))) + return int32(X__syscall_ret(tls, uint64(uint64(ret)))) } - X__procfdname(tls, bp, uint32(fd)) + X__procfdname(tls, bp, uint32(uint32(fd))) return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_chown), int64(bp), int64(uid), int64(gid))))) } @@ -151113,7 +151202,7 @@ func Xpipe2(tls *TLS, fd uintptr, flag int32) (r int32) { } ret = int32(X__syscall2(tls, int64(SYS_pipe2), int64(fd), int64(flag))) if ret != -int32(ENOSYS) { - return int32(X__syscall_ret(tls, uint64(ret))) + return int32(X__syscall_ret(tls, uint64(uint64(ret)))) } if flag & ^(Int32FromInt32(O_CLOEXEC)|Int32FromInt32(O_NONBLOCK)) != 0 { return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EINVAL)))) @@ -151199,7 +151288,7 @@ func Xreadlink(tls *TLS, path uintptr, buf uintptr, bufsize Tsize_t) (r1 Tssize_ if buf == bp && r > 0 { r = 0 } - return X__syscall_ret(tls, uint64(r)) + return X__syscall_ret(tls, uint64(uint64(r))) } func Xreadlinkat(tls *TLS, fd int32, path uintptr, buf uintptr, bufsize Tsize_t) (r1 Tssize_t) { @@ -151220,7 +151309,7 @@ func Xreadlinkat(tls *TLS, fd int32, path uintptr, buf uintptr, bufsize Tsize_t) if buf == bp && r > 0 { r = 0 } - return X__syscall_ret(tls, uint64(r)) + return X__syscall_ret(tls, uint64(uint64(r))) } func Xreadv(tls *TLS, fd int32, iov uintptr, count int32) (r Tssize_t) { @@ -151252,7 +151341,7 @@ func Xsetgid(tls *TLS, gid Tgid_t) (r int32) { trc("tls=%v gid=%v, (%v:)", tls, gid, origin(2)) defer func() { trc("-> %v", r) }() } - return X__setxid(tls, int32(SYS_setgid), int32(gid), 0, 0) + return X__setxid(tls, int32(SYS_setgid), int32(int32(gid)), 0, 0) } func Xsetpgid(tls *TLS, pid Tpid_t, pgid Tpid_t) (r int32) { @@ -151284,7 +151373,7 @@ func Xsetuid(tls *TLS, uid Tuid_t) (r int32) { trc("tls=%v uid=%v, (%v:)", tls, uid, origin(2)) defer func() { trc("-> %v", r) }() } - return X__setxid(tls, int32(SYS_setuid), int32(uid), 0, 0) + return X__setxid(tls, int32(SYS_setuid), int32(int32(uid)), 0, 0) } type Tctx2 = struct { @@ -151352,7 +151441,7 @@ func Xsleep(tls *TLS, seconds uint32) (r uint32) { defer tls.Free(16) var _ /* tv at bp+0 */ Ttimespec *(*Ttimespec)(unsafe.Pointer(bp)) = Ttimespec{ - Ftv_sec: int64(seconds), + Ftv_sec: int64(int64(seconds)), } if Xnanosleep(tls, bp, bp) != 0 { return uint32((*(*Ttimespec)(unsafe.Pointer(bp))).Ftv_sec) @@ -151459,12 +151548,12 @@ func Xttyname_r(tls *TLS, fd int32, name uintptr, size Tsize_t) (r int32) { if !(Xisatty(tls, fd) != 0) { return *(*int32)(unsafe.Pointer(X__errno_location(tls))) } - X__procfdname(tls, bp+288, uint32(fd)) + X__procfdname(tls, bp+288, uint32(uint32(fd))) l = Xreadlink(tls, bp+288, name, size) if l < 0 { return *(*int32)(unsafe.Pointer(X__errno_location(tls))) } else { - if uint64(l) == size { + if uint64(uint64(l)) == size { return int32(ERANGE) } } @@ -151489,10 +151578,10 @@ func Xualarm(tls *TLS, value uint32, interval uint32) (r uint32) { var _ /* it_old at bp+32 */ Titimerval *(*Titimerval)(unsafe.Pointer(bp)) = Titimerval{ Fit_interval: Ttimeval{ - Ftv_usec: int64(interval), + Ftv_usec: int64(int64(interval)), }, Fit_value: Ttimeval{ - Ftv_usec: int64(value), + Ftv_usec: int64(int64(value)), }, } Xsetitimer(tls, ITIMER_REAL, bp, bp+32) diff --git a/vendor/modernc.org/libc/ccgo_linux_arm64.go b/vendor/modernc.org/libc/ccgo_linux_arm64.go new file mode 100644 index 00000000..1cdeca3a --- /dev/null +++ b/vendor/modernc.org/libc/ccgo_linux_arm64.go @@ -0,0 +1,154130 @@ +// Code generated for linux/arm64 by 'gcc --package-name=libc --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -emit-func-aliases -eval-all-macros -extended-errors -ignore-asm-errors -isystem -std=c99 -nostdinc -ffreestanding -D_XOPEN_SOURCE=700 -I./arch/aarch64 -I./arch/generic -Iobj/src/internal -I./src/include -I./src/internal -Iobj/include -I./include -DNDEBUG -nostdlib -shared -o lib/libc.so.go obj/src/complex/__cexp.lo.go obj/src/complex/__cexpf.lo.go obj/src/complex/cabs.lo.go obj/src/complex/cabsf.lo.go obj/src/complex/cabsl.lo.go obj/src/complex/cacos.lo.go obj/src/complex/cacosf.lo.go obj/src/complex/cacosh.lo.go obj/src/complex/cacoshf.lo.go obj/src/complex/cacoshl.lo.go obj/src/complex/cacosl.lo.go obj/src/complex/carg.lo.go obj/src/complex/cargf.lo.go obj/src/complex/cargl.lo.go obj/src/complex/casin.lo.go obj/src/complex/casinf.lo.go obj/src/complex/casinh.lo.go obj/src/complex/casinhf.lo.go obj/src/complex/casinhl.lo.go obj/src/complex/casinl.lo.go obj/src/complex/catan.lo.go obj/src/complex/catanf.lo.go obj/src/complex/catanh.lo.go obj/src/complex/catanhf.lo.go obj/src/complex/catanhl.lo.go obj/src/complex/catanl.lo.go obj/src/complex/ccos.lo.go obj/src/complex/ccosf.lo.go obj/src/complex/ccosh.lo.go obj/src/complex/ccoshf.lo.go obj/src/complex/ccoshl.lo.go obj/src/complex/ccosl.lo.go obj/src/complex/cexp.lo.go obj/src/complex/cexpf.lo.go obj/src/complex/cexpl.lo.go obj/src/complex/cimag.lo.go obj/src/complex/cimagf.lo.go obj/src/complex/cimagl.lo.go obj/src/complex/clog.lo.go obj/src/complex/clogf.lo.go obj/src/complex/clogl.lo.go obj/src/complex/conj.lo.go obj/src/complex/conjf.lo.go obj/src/complex/conjl.lo.go obj/src/complex/cpow.lo.go obj/src/complex/cpowf.lo.go obj/src/complex/cpowl.lo.go obj/src/complex/cproj.lo.go obj/src/complex/cprojf.lo.go obj/src/complex/cprojl.lo.go obj/src/complex/creal.lo.go obj/src/complex/crealf.lo.go obj/src/complex/creall.lo.go obj/src/complex/csin.lo.go obj/src/complex/csinf.lo.go obj/src/complex/csinh.lo.go obj/src/complex/csinhf.lo.go obj/src/complex/csinhl.lo.go obj/src/complex/csinl.lo.go obj/src/complex/csqrt.lo.go obj/src/complex/csqrtf.lo.go obj/src/complex/csqrtl.lo.go obj/src/complex/ctan.lo.go obj/src/complex/ctanf.lo.go obj/src/complex/ctanh.lo.go obj/src/complex/ctanhf.lo.go obj/src/complex/ctanhl.lo.go obj/src/complex/ctanl.lo.go obj/src/conf/confstr.lo.go obj/src/conf/fpathconf.lo.go obj/src/conf/legacy.lo.go obj/src/conf/pathconf.lo.go obj/src/conf/sysconf.lo.go obj/src/crypt/crypt.lo.go obj/src/crypt/crypt_blowfish.lo.go obj/src/crypt/crypt_des.lo.go obj/src/crypt/crypt_md5.lo.go obj/src/crypt/crypt_r.lo.go obj/src/crypt/crypt_sha256.lo.go obj/src/crypt/crypt_sha512.lo.go obj/src/crypt/encrypt.lo.go obj/src/ctype/__ctype_b_loc.lo.go obj/src/ctype/__ctype_get_mb_cur_max.lo.go obj/src/ctype/__ctype_tolower_loc.lo.go obj/src/ctype/__ctype_toupper_loc.lo.go obj/src/ctype/isalnum.lo.go obj/src/ctype/isalpha.lo.go obj/src/ctype/isascii.lo.go obj/src/ctype/isblank.lo.go obj/src/ctype/iscntrl.lo.go obj/src/ctype/isdigit.lo.go obj/src/ctype/isgraph.lo.go obj/src/ctype/islower.lo.go obj/src/ctype/isprint.lo.go obj/src/ctype/ispunct.lo.go obj/src/ctype/isspace.lo.go obj/src/ctype/isupper.lo.go obj/src/ctype/iswalnum.lo.go obj/src/ctype/iswalpha.lo.go obj/src/ctype/iswblank.lo.go obj/src/ctype/iswcntrl.lo.go obj/src/ctype/iswctype.lo.go obj/src/ctype/iswdigit.lo.go obj/src/ctype/iswgraph.lo.go obj/src/ctype/iswlower.lo.go obj/src/ctype/iswprint.lo.go obj/src/ctype/iswpunct.lo.go obj/src/ctype/iswspace.lo.go obj/src/ctype/iswupper.lo.go obj/src/ctype/iswxdigit.lo.go obj/src/ctype/isxdigit.lo.go obj/src/ctype/toascii.lo.go obj/src/ctype/tolower.lo.go obj/src/ctype/toupper.lo.go obj/src/ctype/towctrans.lo.go obj/src/ctype/wcswidth.lo.go obj/src/ctype/wctrans.lo.go obj/src/ctype/wcwidth.lo.go obj/src/dirent/alphasort.lo.go obj/src/dirent/closedir.lo.go obj/src/dirent/dirfd.lo.go obj/src/dirent/fdopendir.lo.go obj/src/dirent/opendir.lo.go obj/src/dirent/readdir.lo.go obj/src/dirent/readdir_r.lo.go obj/src/dirent/rewinddir.lo.go obj/src/dirent/scandir.lo.go obj/src/dirent/seekdir.lo.go obj/src/dirent/telldir.lo.go obj/src/dirent/versionsort.lo.go obj/src/env/__environ.lo.go obj/src/env/__reset_tls.lo.go obj/src/env/__stack_chk_fail.lo.go obj/src/env/clearenv.lo.go obj/src/env/getenv.lo.go obj/src/env/putenv.lo.go obj/src/env/secure_getenv.lo.go obj/src/env/setenv.lo.go obj/src/env/unsetenv.lo.go obj/src/errno/strerror.lo.go obj/src/exit/_Exit.lo.go obj/src/exit/abort_lock.lo.go obj/src/exit/assert.lo.go obj/src/exit/at_quick_exit.lo.go obj/src/exit/quick_exit.lo.go obj/src/fcntl/creat.lo.go obj/src/fcntl/fcntl.lo.go obj/src/fcntl/open.lo.go obj/src/fcntl/openat.lo.go obj/src/fcntl/posix_fadvise.lo.go obj/src/fcntl/posix_fallocate.lo.go obj/src/fenv/fenv.lo.go obj/src/internal/defsysinfo.lo.go obj/src/internal/emulate_wait4.lo.go obj/src/internal/floatscan.lo.go obj/src/internal/intscan.lo.go obj/src/internal/libc.lo.go obj/src/internal/procfdname.lo.go obj/src/internal/shgetc.lo.go obj/src/internal/syscall_ret.lo.go obj/src/internal/vdso.lo.go obj/src/internal/version.lo.go obj/src/ipc/ftok.lo.go obj/src/ipc/msgctl.lo.go obj/src/ipc/msgget.lo.go obj/src/ipc/msgrcv.lo.go obj/src/ipc/msgsnd.lo.go obj/src/ipc/semctl.lo.go obj/src/ipc/semget.lo.go obj/src/ipc/semop.lo.go obj/src/ipc/semtimedop.lo.go obj/src/ipc/shmat.lo.go obj/src/ipc/shmctl.lo.go obj/src/ipc/shmdt.lo.go obj/src/ipc/shmget.lo.go obj/src/legacy/cuserid.lo.go obj/src/legacy/err.lo.go obj/src/legacy/euidaccess.lo.go obj/src/legacy/ftw.lo.go obj/src/legacy/futimes.lo.go obj/src/legacy/getdtablesize.lo.go obj/src/legacy/getloadavg.lo.go obj/src/legacy/getpagesize.lo.go obj/src/legacy/getpass.lo.go obj/src/legacy/getusershell.lo.go obj/src/legacy/isastream.lo.go obj/src/legacy/lutimes.lo.go obj/src/legacy/ulimit.lo.go obj/src/legacy/utmpx.lo.go obj/src/linux/adjtime.lo.go obj/src/linux/adjtimex.lo.go obj/src/linux/arch_prctl.lo.go obj/src/linux/brk.lo.go obj/src/linux/cache.lo.go obj/src/linux/cap.lo.go obj/src/linux/chroot.lo.go obj/src/linux/clock_adjtime.lo.go obj/src/linux/copy_file_range.lo.go obj/src/linux/epoll.lo.go obj/src/linux/eventfd.lo.go obj/src/linux/fallocate.lo.go obj/src/linux/fanotify.lo.go obj/src/linux/flock.lo.go obj/src/linux/getdents.lo.go obj/src/linux/getrandom.lo.go obj/src/linux/inotify.lo.go obj/src/linux/ioperm.lo.go obj/src/linux/iopl.lo.go obj/src/linux/klogctl.lo.go obj/src/linux/memfd_create.lo.go obj/src/linux/mlock2.lo.go obj/src/linux/module.lo.go obj/src/linux/mount.lo.go obj/src/linux/name_to_handle_at.lo.go obj/src/linux/open_by_handle_at.lo.go obj/src/linux/personality.lo.go obj/src/linux/pivot_root.lo.go obj/src/linux/prctl.lo.go obj/src/linux/preadv2.lo.go obj/src/linux/prlimit.lo.go obj/src/linux/process_vm.lo.go obj/src/linux/ptrace.lo.go obj/src/linux/pwritev2.lo.go obj/src/linux/quotactl.lo.go obj/src/linux/readahead.lo.go obj/src/linux/reboot.lo.go obj/src/linux/remap_file_pages.lo.go obj/src/linux/sbrk.lo.go obj/src/linux/sendfile.lo.go obj/src/linux/setfsgid.lo.go obj/src/linux/setfsuid.lo.go obj/src/linux/sethostname.lo.go obj/src/linux/setns.lo.go obj/src/linux/settimeofday.lo.go obj/src/linux/signalfd.lo.go obj/src/linux/splice.lo.go obj/src/linux/statx.lo.go obj/src/linux/stime.lo.go obj/src/linux/swap.lo.go obj/src/linux/sync_file_range.lo.go obj/src/linux/syncfs.lo.go obj/src/linux/sysinfo.lo.go obj/src/linux/tee.lo.go obj/src/linux/timerfd.lo.go obj/src/linux/unshare.lo.go obj/src/linux/utimes.lo.go obj/src/linux/vhangup.lo.go obj/src/linux/vmsplice.lo.go obj/src/linux/wait3.lo.go obj/src/linux/wait4.lo.go obj/src/linux/xattr.lo.go obj/src/locale/__lctrans.lo.go obj/src/locale/__mo_lookup.lo.go obj/src/locale/bind_textdomain_codeset.lo.go obj/src/locale/c_locale.lo.go obj/src/locale/catclose.lo.go obj/src/locale/catgets.lo.go obj/src/locale/catopen.lo.go obj/src/locale/dcngettext.lo.go obj/src/locale/duplocale.lo.go obj/src/locale/freelocale.lo.go obj/src/locale/iconv.lo.go obj/src/locale/iconv_close.lo.go obj/src/locale/langinfo.lo.go obj/src/locale/locale_map.lo.go obj/src/locale/localeconv.lo.go obj/src/locale/newlocale.lo.go obj/src/locale/pleval.lo.go obj/src/locale/setlocale.lo.go obj/src/locale/strcoll.lo.go obj/src/locale/strfmon.lo.go obj/src/locale/strtod_l.lo.go obj/src/locale/strxfrm.lo.go obj/src/locale/textdomain.lo.go obj/src/locale/uselocale.lo.go obj/src/locale/wcscoll.lo.go obj/src/locale/wcsxfrm.lo.go obj/src/malloc/reallocarray.lo.go obj/src/math/__cos.lo.go obj/src/math/__cosdf.lo.go obj/src/math/__cosl.lo.go obj/src/math/__expo2.lo.go obj/src/math/__expo2f.lo.go obj/src/math/__fpclassify.lo.go obj/src/math/__fpclassifyf.lo.go obj/src/math/__fpclassifyl.lo.go obj/src/math/__invtrigl.lo.go obj/src/math/__math_divzero.lo.go obj/src/math/__math_divzerof.lo.go obj/src/math/__math_invalid.lo.go obj/src/math/__math_invalidf.lo.go obj/src/math/__math_invalidl.lo.go obj/src/math/__math_oflow.lo.go obj/src/math/__math_oflowf.lo.go obj/src/math/__math_uflow.lo.go obj/src/math/__math_uflowf.lo.go obj/src/math/__math_xflow.lo.go obj/src/math/__math_xflowf.lo.go obj/src/math/__polevll.lo.go obj/src/math/__rem_pio2.lo.go obj/src/math/__rem_pio2_large.lo.go obj/src/math/__rem_pio2f.lo.go obj/src/math/__rem_pio2l.lo.go obj/src/math/__signbit.lo.go obj/src/math/__signbitf.lo.go obj/src/math/__signbitl.lo.go obj/src/math/__sin.lo.go obj/src/math/__sindf.lo.go obj/src/math/__sinl.lo.go obj/src/math/__tan.lo.go obj/src/math/__tandf.lo.go obj/src/math/__tanl.lo.go obj/src/math/acos.lo.go obj/src/math/acosf.lo.go obj/src/math/acosh.lo.go obj/src/math/acoshf.lo.go obj/src/math/acoshl.lo.go obj/src/math/acosl.lo.go obj/src/math/asin.lo.go obj/src/math/asinf.lo.go obj/src/math/asinh.lo.go obj/src/math/asinhf.lo.go obj/src/math/asinhl.lo.go obj/src/math/asinl.lo.go obj/src/math/atan.lo.go obj/src/math/atan2.lo.go obj/src/math/atan2f.lo.go obj/src/math/atan2l.lo.go obj/src/math/atanf.lo.go obj/src/math/atanh.lo.go obj/src/math/atanhf.lo.go obj/src/math/atanhl.lo.go obj/src/math/atanl.lo.go obj/src/math/cbrt.lo.go obj/src/math/cbrtf.lo.go obj/src/math/cbrtl.lo.go obj/src/math/ceil.lo.go obj/src/math/ceilf.lo.go obj/src/math/ceill.lo.go obj/src/math/copysign.lo.go obj/src/math/copysignf.lo.go obj/src/math/copysignl.lo.go obj/src/math/cos.lo.go obj/src/math/cosf.lo.go obj/src/math/cosh.lo.go obj/src/math/coshf.lo.go obj/src/math/coshl.lo.go obj/src/math/cosl.lo.go obj/src/math/erf.lo.go obj/src/math/erff.lo.go obj/src/math/erfl.lo.go obj/src/math/exp.lo.go obj/src/math/exp10.lo.go obj/src/math/exp10f.lo.go obj/src/math/exp10l.lo.go obj/src/math/exp2.lo.go obj/src/math/exp2f.lo.go obj/src/math/exp2f_data.lo.go obj/src/math/exp2l.lo.go obj/src/math/exp_data.lo.go obj/src/math/expf.lo.go obj/src/math/expl.lo.go obj/src/math/expm1.lo.go obj/src/math/expm1f.lo.go obj/src/math/expm1l.lo.go obj/src/math/fabs.lo.go obj/src/math/fabsf.lo.go obj/src/math/fabsl.lo.go obj/src/math/fdim.lo.go obj/src/math/fdimf.lo.go obj/src/math/fdiml.lo.go obj/src/math/finite.lo.go obj/src/math/finitef.lo.go obj/src/math/floor.lo.go obj/src/math/floorf.lo.go obj/src/math/floorl.lo.go obj/src/math/fma.lo.go obj/src/math/fmal.lo.go obj/src/math/fmax.lo.go obj/src/math/fmaxf.lo.go obj/src/math/fmaxl.lo.go obj/src/math/fmin.lo.go obj/src/math/fminf.lo.go obj/src/math/fminl.lo.go obj/src/math/fmod.lo.go obj/src/math/fmodf.lo.go obj/src/math/fmodl.lo.go obj/src/math/frexp.lo.go obj/src/math/frexpf.lo.go obj/src/math/frexpl.lo.go obj/src/math/hypot.lo.go obj/src/math/hypotf.lo.go obj/src/math/hypotl.lo.go obj/src/math/ilogb.lo.go obj/src/math/ilogbf.lo.go obj/src/math/ilogbl.lo.go obj/src/math/j0.lo.go obj/src/math/j0f.lo.go obj/src/math/j1.lo.go obj/src/math/j1f.lo.go obj/src/math/jn.lo.go obj/src/math/jnf.lo.go obj/src/math/ldexp.lo.go obj/src/math/ldexpf.lo.go obj/src/math/ldexpl.lo.go obj/src/math/lgamma.lo.go obj/src/math/lgamma_r.lo.go obj/src/math/lgammaf.lo.go obj/src/math/lgammaf_r.lo.go obj/src/math/lgammal.lo.go obj/src/math/llrint.lo.go obj/src/math/llrintf.lo.go obj/src/math/llrintl.lo.go obj/src/math/llround.lo.go obj/src/math/llroundf.lo.go obj/src/math/llroundl.lo.go obj/src/math/log.lo.go obj/src/math/log10.lo.go obj/src/math/log10f.lo.go obj/src/math/log10l.lo.go obj/src/math/log1p.lo.go obj/src/math/log1pf.lo.go obj/src/math/log1pl.lo.go obj/src/math/log2.lo.go obj/src/math/log2_data.lo.go obj/src/math/log2f.lo.go obj/src/math/log2f_data.lo.go obj/src/math/log2l.lo.go obj/src/math/log_data.lo.go obj/src/math/logb.lo.go obj/src/math/logbf.lo.go obj/src/math/logbl.lo.go obj/src/math/logf.lo.go obj/src/math/logf_data.lo.go obj/src/math/logl.lo.go obj/src/math/lrint.lo.go obj/src/math/lrintf.lo.go obj/src/math/lrintl.lo.go obj/src/math/lround.lo.go obj/src/math/lroundf.lo.go obj/src/math/lroundl.lo.go obj/src/math/modf.lo.go obj/src/math/modff.lo.go obj/src/math/modfl.lo.go obj/src/math/nan.lo.go obj/src/math/nanf.lo.go obj/src/math/nanl.lo.go obj/src/math/nextafter.lo.go obj/src/math/nextafterf.lo.go obj/src/math/nextafterl.lo.go obj/src/math/nexttoward.lo.go obj/src/math/nexttowardf.lo.go obj/src/math/nexttowardl.lo.go obj/src/math/pow.lo.go obj/src/math/pow_data.lo.go obj/src/math/powf.lo.go obj/src/math/powf_data.lo.go obj/src/math/powl.lo.go obj/src/math/remainder.lo.go obj/src/math/remainderf.lo.go obj/src/math/remainderl.lo.go obj/src/math/remquo.lo.go obj/src/math/remquof.lo.go obj/src/math/remquol.lo.go obj/src/math/rint.lo.go obj/src/math/rintf.lo.go obj/src/math/rintl.lo.go obj/src/math/round.lo.go obj/src/math/roundf.lo.go obj/src/math/roundl.lo.go obj/src/math/scalb.lo.go obj/src/math/scalbf.lo.go obj/src/math/scalbln.lo.go obj/src/math/scalblnf.lo.go obj/src/math/scalblnl.lo.go obj/src/math/scalbn.lo.go obj/src/math/scalbnf.lo.go obj/src/math/scalbnl.lo.go obj/src/math/signgam.lo.go obj/src/math/significand.lo.go obj/src/math/significandf.lo.go obj/src/math/sin.lo.go obj/src/math/sincos.lo.go obj/src/math/sincosf.lo.go obj/src/math/sincosl.lo.go obj/src/math/sinf.lo.go obj/src/math/sinh.lo.go obj/src/math/sinhf.lo.go obj/src/math/sinhl.lo.go obj/src/math/sinl.lo.go obj/src/math/sqrt.lo.go obj/src/math/sqrt_data.lo.go obj/src/math/sqrtf.lo.go obj/src/math/sqrtl.lo.go obj/src/math/tan.lo.go obj/src/math/tanf.lo.go obj/src/math/tanh.lo.go obj/src/math/tanhf.lo.go obj/src/math/tanhl.lo.go obj/src/math/tanl.lo.go obj/src/math/tgamma.lo.go obj/src/math/tgammaf.lo.go obj/src/math/tgammal.lo.go obj/src/math/trunc.lo.go obj/src/math/truncf.lo.go obj/src/math/truncl.lo.go obj/src/misc/a64l.lo.go obj/src/misc/basename.lo.go obj/src/misc/dirname.lo.go obj/src/misc/ffs.lo.go obj/src/misc/ffsl.lo.go obj/src/misc/ffsll.lo.go obj/src/misc/fmtmsg.lo.go obj/src/misc/get_current_dir_name.lo.go obj/src/misc/getauxval.lo.go obj/src/misc/getdomainname.lo.go obj/src/misc/getentropy.lo.go obj/src/misc/gethostid.lo.go obj/src/misc/getopt.lo.go obj/src/misc/getopt_long.lo.go obj/src/misc/getpriority.lo.go obj/src/misc/getresgid.lo.go obj/src/misc/getresuid.lo.go obj/src/misc/getrlimit.lo.go obj/src/misc/getrusage.lo.go obj/src/misc/getsubopt.lo.go obj/src/misc/ioctl.lo.go obj/src/misc/issetugid.lo.go obj/src/misc/lockf.lo.go obj/src/misc/login_tty.lo.go obj/src/misc/mntent.lo.go obj/src/misc/nftw.lo.go obj/src/misc/openpty.lo.go obj/src/misc/ptsname.lo.go obj/src/misc/pty.lo.go obj/src/misc/realpath.lo.go obj/src/misc/setdomainname.lo.go obj/src/misc/setpriority.lo.go obj/src/misc/setrlimit.lo.go obj/src/misc/syscall.lo.go obj/src/misc/syslog.lo.go obj/src/misc/uname.lo.go obj/src/mman/madvise.lo.go obj/src/mman/mincore.lo.go obj/src/mman/mlock.lo.go obj/src/mman/mlockall.lo.go obj/src/mman/mmap.lo.go obj/src/mman/mprotect.lo.go obj/src/mman/mremap.lo.go obj/src/mman/msync.lo.go obj/src/mman/munlock.lo.go obj/src/mman/munlockall.lo.go obj/src/mman/munmap.lo.go obj/src/mman/posix_madvise.lo.go obj/src/mman/shm_open.lo.go obj/src/multibyte/btowc.lo.go obj/src/multibyte/c16rtomb.lo.go obj/src/multibyte/c32rtomb.lo.go obj/src/multibyte/internal.lo.go obj/src/multibyte/mblen.lo.go obj/src/multibyte/mbrlen.lo.go obj/src/multibyte/mbrtoc16.lo.go obj/src/multibyte/mbrtoc32.lo.go obj/src/multibyte/mbrtowc.lo.go obj/src/multibyte/mbsinit.lo.go obj/src/multibyte/mbsnrtowcs.lo.go obj/src/multibyte/mbsrtowcs.lo.go obj/src/multibyte/mbstowcs.lo.go obj/src/multibyte/mbtowc.lo.go obj/src/multibyte/wcrtomb.lo.go obj/src/multibyte/wcsnrtombs.lo.go obj/src/multibyte/wcsrtombs.lo.go obj/src/multibyte/wcstombs.lo.go obj/src/multibyte/wctob.lo.go obj/src/multibyte/wctomb.lo.go obj/src/network/accept.lo.go obj/src/network/accept4.lo.go obj/src/network/bind.lo.go obj/src/network/connect.lo.go obj/src/network/dn_comp.lo.go obj/src/network/dn_expand.lo.go obj/src/network/dn_skipname.lo.go obj/src/network/dns_parse.lo.go obj/src/network/ent.lo.go obj/src/network/ether.lo.go obj/src/network/freeaddrinfo.lo.go obj/src/network/gai_strerror.lo.go obj/src/network/getaddrinfo.lo.go obj/src/network/gethostbyaddr.lo.go obj/src/network/gethostbyaddr_r.lo.go obj/src/network/gethostbyname.lo.go obj/src/network/gethostbyname2.lo.go obj/src/network/gethostbyname2_r.lo.go obj/src/network/gethostbyname_r.lo.go obj/src/network/getifaddrs.lo.go obj/src/network/getnameinfo.lo.go obj/src/network/getpeername.lo.go obj/src/network/getservbyname.lo.go obj/src/network/getservbyname_r.lo.go obj/src/network/getsockname.lo.go obj/src/network/getsockopt.lo.go obj/src/network/h_errno.lo.go obj/src/network/herror.lo.go obj/src/network/hstrerror.lo.go obj/src/network/htonl.lo.go obj/src/network/htons.lo.go obj/src/network/if_freenameindex.lo.go obj/src/network/if_indextoname.lo.go obj/src/network/if_nameindex.lo.go obj/src/network/if_nametoindex.lo.go obj/src/network/in6addr_any.lo.go obj/src/network/in6addr_loopback.lo.go obj/src/network/inet_addr.lo.go obj/src/network/inet_aton.lo.go obj/src/network/inet_legacy.lo.go obj/src/network/inet_ntoa.lo.go obj/src/network/inet_ntop.lo.go obj/src/network/inet_pton.lo.go obj/src/network/listen.lo.go obj/src/network/lookup_ipliteral.lo.go obj/src/network/lookup_name.lo.go obj/src/network/lookup_serv.lo.go obj/src/network/netlink.lo.go obj/src/network/netname.lo.go obj/src/network/ns_parse.lo.go obj/src/network/ntohl.lo.go obj/src/network/ntohs.lo.go obj/src/network/proto.lo.go obj/src/network/recv.lo.go obj/src/network/recvfrom.lo.go obj/src/network/recvmmsg.lo.go obj/src/network/recvmsg.lo.go obj/src/network/res_init.lo.go obj/src/network/res_mkquery.lo.go obj/src/network/res_msend.lo.go obj/src/network/res_send.lo.go obj/src/network/res_state.lo.go obj/src/network/resolvconf.lo.go obj/src/network/send.lo.go obj/src/network/sendmmsg.lo.go obj/src/network/sendmsg.lo.go obj/src/network/sendto.lo.go obj/src/network/serv.lo.go obj/src/network/setsockopt.lo.go obj/src/network/shutdown.lo.go obj/src/network/sockatmark.lo.go obj/src/network/socket.lo.go obj/src/network/socketpair.lo.go obj/src/passwd/fgetgrent.lo.go obj/src/passwd/fgetpwent.lo.go obj/src/passwd/getgr_a.lo.go obj/src/passwd/getgr_r.lo.go obj/src/passwd/getgrent.lo.go obj/src/passwd/getgrent_a.lo.go obj/src/passwd/getgrouplist.lo.go obj/src/passwd/getpw_a.lo.go obj/src/passwd/getpw_r.lo.go obj/src/passwd/getpwent.lo.go obj/src/passwd/getpwent_a.lo.go obj/src/passwd/getspent.lo.go obj/src/passwd/lckpwdf.lo.go obj/src/passwd/nscd_query.lo.go obj/src/passwd/putgrent.lo.go obj/src/passwd/putpwent.lo.go obj/src/passwd/putspent.lo.go obj/src/prng/__rand48_step.lo.go obj/src/prng/__seed48.lo.go obj/src/prng/drand48.lo.go obj/src/prng/lcong48.lo.go obj/src/prng/lrand48.lo.go obj/src/prng/mrand48.lo.go obj/src/prng/rand.lo.go obj/src/prng/rand_r.lo.go obj/src/prng/random.lo.go obj/src/prng/seed48.lo.go obj/src/prng/srand48.lo.go obj/src/process/execl.lo.go obj/src/process/execle.lo.go obj/src/process/execlp.lo.go obj/src/process/execv.lo.go obj/src/process/execve.lo.go obj/src/process/execvp.lo.go obj/src/process/fexecve.lo.go obj/src/process/fork.lo.go obj/src/process/posix_spawn_file_actions_addchdir.lo.go obj/src/process/posix_spawn_file_actions_addclose.lo.go obj/src/process/posix_spawn_file_actions_adddup2.lo.go obj/src/process/posix_spawn_file_actions_addfchdir.lo.go obj/src/process/posix_spawn_file_actions_addopen.lo.go obj/src/process/posix_spawn_file_actions_destroy.lo.go obj/src/process/posix_spawn_file_actions_init.lo.go obj/src/process/posix_spawnattr_destroy.lo.go obj/src/process/posix_spawnattr_getflags.lo.go obj/src/process/posix_spawnattr_getpgroup.lo.go obj/src/process/posix_spawnattr_getsigdefault.lo.go obj/src/process/posix_spawnattr_getsigmask.lo.go obj/src/process/posix_spawnattr_init.lo.go obj/src/process/posix_spawnattr_sched.lo.go obj/src/process/posix_spawnattr_setflags.lo.go obj/src/process/posix_spawnattr_setpgroup.lo.go obj/src/process/posix_spawnattr_setsigdefault.lo.go obj/src/process/posix_spawnattr_setsigmask.lo.go obj/src/process/vfork.lo.go obj/src/process/wait.lo.go obj/src/process/waitid.lo.go obj/src/process/waitpid.lo.go obj/src/regex/fnmatch.lo.go obj/src/regex/glob.lo.go obj/src/regex/regcomp.lo.go obj/src/regex/regerror.lo.go obj/src/regex/regexec.lo.go obj/src/regex/tre-mem.lo.go obj/src/search/hsearch.lo.go obj/src/search/insque.lo.go obj/src/search/lsearch.lo.go obj/src/search/tdelete.lo.go obj/src/search/tdestroy.lo.go obj/src/search/tfind.lo.go obj/src/search/tsearch.lo.go obj/src/search/twalk.lo.go obj/src/select/poll.lo.go obj/src/select/ppoll.lo.go obj/src/select/pselect.lo.go obj/src/select/select.lo.go obj/src/setjmp/longjmp.lo.go obj/src/setjmp/setjmp.lo.go obj/src/signal/block.lo.go obj/src/signal/getitimer.lo.go obj/src/signal/kill.lo.go obj/src/signal/killpg.lo.go obj/src/signal/psiginfo.lo.go obj/src/signal/psignal.lo.go obj/src/signal/raise.lo.go obj/src/signal/restore.lo.go obj/src/signal/setitimer.lo.go obj/src/signal/sigaction.lo.go obj/src/signal/sigaddset.lo.go obj/src/signal/sigaltstack.lo.go obj/src/signal/sigandset.lo.go obj/src/signal/sigdelset.lo.go obj/src/signal/sigemptyset.lo.go obj/src/signal/sigfillset.lo.go obj/src/signal/sigisemptyset.lo.go obj/src/signal/sigismember.lo.go obj/src/signal/sigorset.lo.go obj/src/signal/sigpending.lo.go obj/src/signal/sigprocmask.lo.go obj/src/signal/sigqueue.lo.go obj/src/signal/sigrtmax.lo.go obj/src/signal/sigrtmin.lo.go obj/src/signal/sigsetjmp.lo.go obj/src/signal/sigsetjmp_tail.lo.go obj/src/signal/sigsuspend.lo.go obj/src/signal/sigtimedwait.lo.go obj/src/signal/sigwait.lo.go obj/src/signal/sigwaitinfo.lo.go obj/src/stat/__xstat.lo.go obj/src/stat/chmod.lo.go obj/src/stat/fchmod.lo.go obj/src/stat/fchmodat.lo.go obj/src/stat/fstat.lo.go obj/src/stat/fstatat.lo.go obj/src/stat/futimens.lo.go obj/src/stat/futimesat.lo.go obj/src/stat/lchmod.lo.go obj/src/stat/lstat.lo.go obj/src/stat/mkdir.lo.go obj/src/stat/mkdirat.lo.go obj/src/stat/mkfifo.lo.go obj/src/stat/mkfifoat.lo.go obj/src/stat/mknod.lo.go obj/src/stat/mknodat.lo.go obj/src/stat/stat.lo.go obj/src/stat/statvfs.lo.go obj/src/stat/umask.lo.go obj/src/stat/utimensat.lo.go obj/src/stdio/__fclose_ca.lo.go obj/src/stdio/__fdopen.lo.go obj/src/stdio/__fmodeflags.lo.go obj/src/stdio/__fopen_rb_ca.lo.go obj/src/stdio/__overflow.lo.go obj/src/stdio/__stdio_close.lo.go obj/src/stdio/__stdio_exit.lo.go obj/src/stdio/__stdio_read.lo.go obj/src/stdio/__stdio_seek.lo.go obj/src/stdio/__stdio_write.lo.go obj/src/stdio/__stdout_write.lo.go obj/src/stdio/__toread.lo.go obj/src/stdio/__towrite.lo.go obj/src/stdio/__uflow.lo.go obj/src/stdio/asprintf.lo.go obj/src/stdio/clearerr.lo.go obj/src/stdio/dprintf.lo.go obj/src/stdio/ext.lo.go obj/src/stdio/ext2.lo.go obj/src/stdio/fclose.lo.go obj/src/stdio/feof.lo.go obj/src/stdio/ferror.lo.go obj/src/stdio/fflush.lo.go obj/src/stdio/fgetc.lo.go obj/src/stdio/fgetln.lo.go obj/src/stdio/fgetpos.lo.go obj/src/stdio/fgets.lo.go obj/src/stdio/fgetwc.lo.go obj/src/stdio/fgetws.lo.go obj/src/stdio/fileno.lo.go obj/src/stdio/flockfile.lo.go obj/src/stdio/fmemopen.lo.go obj/src/stdio/fopen.lo.go obj/src/stdio/fopencookie.lo.go obj/src/stdio/fprintf.lo.go obj/src/stdio/fputc.lo.go obj/src/stdio/fputs.lo.go obj/src/stdio/fputwc.lo.go obj/src/stdio/fputws.lo.go obj/src/stdio/fread.lo.go obj/src/stdio/freopen.lo.go obj/src/stdio/fscanf.lo.go obj/src/stdio/fseek.lo.go obj/src/stdio/fsetpos.lo.go obj/src/stdio/ftell.lo.go obj/src/stdio/ftrylockfile.lo.go obj/src/stdio/funlockfile.lo.go obj/src/stdio/fwide.lo.go obj/src/stdio/fwprintf.lo.go obj/src/stdio/fwrite.lo.go obj/src/stdio/fwscanf.lo.go obj/src/stdio/getc.lo.go obj/src/stdio/getc_unlocked.lo.go obj/src/stdio/getchar.lo.go obj/src/stdio/getchar_unlocked.lo.go obj/src/stdio/getdelim.lo.go obj/src/stdio/getline.lo.go obj/src/stdio/gets.lo.go obj/src/stdio/getw.lo.go obj/src/stdio/getwc.lo.go obj/src/stdio/getwchar.lo.go obj/src/stdio/ofl.lo.go obj/src/stdio/ofl_add.lo.go obj/src/stdio/open_memstream.lo.go obj/src/stdio/open_wmemstream.lo.go obj/src/stdio/pclose.lo.go obj/src/stdio/perror.lo.go obj/src/stdio/printf.lo.go obj/src/stdio/putc.lo.go obj/src/stdio/putc_unlocked.lo.go obj/src/stdio/putchar.lo.go obj/src/stdio/putchar_unlocked.lo.go obj/src/stdio/puts.lo.go obj/src/stdio/putw.lo.go obj/src/stdio/putwc.lo.go obj/src/stdio/putwchar.lo.go obj/src/stdio/remove.lo.go obj/src/stdio/rename.lo.go obj/src/stdio/rewind.lo.go obj/src/stdio/scanf.lo.go obj/src/stdio/setbuf.lo.go obj/src/stdio/setbuffer.lo.go obj/src/stdio/setlinebuf.lo.go obj/src/stdio/setvbuf.lo.go obj/src/stdio/snprintf.lo.go obj/src/stdio/sprintf.lo.go obj/src/stdio/sscanf.lo.go obj/src/stdio/stderr.lo.go obj/src/stdio/stdin.lo.go obj/src/stdio/stdout.lo.go obj/src/stdio/swprintf.lo.go obj/src/stdio/swscanf.lo.go obj/src/stdio/tempnam.lo.go obj/src/stdio/tmpfile.lo.go obj/src/stdio/tmpnam.lo.go obj/src/stdio/ungetc.lo.go obj/src/stdio/ungetwc.lo.go obj/src/stdio/vasprintf.lo.go obj/src/stdio/vdprintf.lo.go obj/src/stdio/vfprintf.lo.go obj/src/stdio/vfscanf.lo.go obj/src/stdio/vfwprintf.lo.go obj/src/stdio/vfwscanf.lo.go obj/src/stdio/vprintf.lo.go obj/src/stdio/vscanf.lo.go obj/src/stdio/vsnprintf.lo.go obj/src/stdio/vsprintf.lo.go obj/src/stdio/vsscanf.lo.go obj/src/stdio/vswprintf.lo.go obj/src/stdio/vswscanf.lo.go obj/src/stdio/vwprintf.lo.go obj/src/stdio/vwscanf.lo.go obj/src/stdio/wprintf.lo.go obj/src/stdio/wscanf.lo.go obj/src/stdlib/abs.lo.go obj/src/stdlib/atof.lo.go obj/src/stdlib/atoi.lo.go obj/src/stdlib/atol.lo.go obj/src/stdlib/atoll.lo.go obj/src/stdlib/bsearch.lo.go obj/src/stdlib/div.lo.go obj/src/stdlib/ecvt.lo.go obj/src/stdlib/fcvt.lo.go obj/src/stdlib/gcvt.lo.go obj/src/stdlib/imaxabs.lo.go obj/src/stdlib/imaxdiv.lo.go obj/src/stdlib/labs.lo.go obj/src/stdlib/ldiv.lo.go obj/src/stdlib/llabs.lo.go obj/src/stdlib/lldiv.lo.go obj/src/stdlib/qsort.lo.go obj/src/stdlib/qsort_nr.lo.go obj/src/stdlib/strtod.lo.go obj/src/stdlib/strtol.lo.go obj/src/stdlib/wcstod.lo.go obj/src/stdlib/wcstol.lo.go obj/src/string/bcmp.lo.go obj/src/string/bcopy.lo.go obj/src/string/bzero.lo.go obj/src/string/explicit_bzero.lo.go obj/src/string/index.lo.go obj/src/string/memccpy.lo.go obj/src/string/memchr.lo.go obj/src/string/memcmp.lo.go obj/src/string/memcpy.lo.go obj/src/string/memmem.lo.go obj/src/string/memmove.lo.go obj/src/string/mempcpy.lo.go obj/src/string/memrchr.lo.go obj/src/string/memset.lo.go obj/src/string/rindex.lo.go obj/src/string/stpcpy.lo.go obj/src/string/stpncpy.lo.go obj/src/string/strcasecmp.lo.go obj/src/string/strcasestr.lo.go obj/src/string/strcat.lo.go obj/src/string/strchr.lo.go obj/src/string/strchrnul.lo.go obj/src/string/strcmp.lo.go obj/src/string/strcpy.lo.go obj/src/string/strcspn.lo.go obj/src/string/strdup.lo.go obj/src/string/strerror_r.lo.go obj/src/string/strlcat.lo.go obj/src/string/strlcpy.lo.go obj/src/string/strlen.lo.go obj/src/string/strncasecmp.lo.go obj/src/string/strncat.lo.go obj/src/string/strncmp.lo.go obj/src/string/strncpy.lo.go obj/src/string/strndup.lo.go obj/src/string/strnlen.lo.go obj/src/string/strpbrk.lo.go obj/src/string/strrchr.lo.go obj/src/string/strsep.lo.go obj/src/string/strsignal.lo.go obj/src/string/strspn.lo.go obj/src/string/strstr.lo.go obj/src/string/strtok.lo.go obj/src/string/strtok_r.lo.go obj/src/string/strverscmp.lo.go obj/src/string/swab.lo.go obj/src/string/wcpcpy.lo.go obj/src/string/wcpncpy.lo.go obj/src/string/wcscasecmp.lo.go obj/src/string/wcscasecmp_l.lo.go obj/src/string/wcscat.lo.go obj/src/string/wcschr.lo.go obj/src/string/wcscmp.lo.go obj/src/string/wcscpy.lo.go obj/src/string/wcscspn.lo.go obj/src/string/wcsdup.lo.go obj/src/string/wcslen.lo.go obj/src/string/wcsncasecmp.lo.go obj/src/string/wcsncasecmp_l.lo.go obj/src/string/wcsncat.lo.go obj/src/string/wcsncmp.lo.go obj/src/string/wcsncpy.lo.go obj/src/string/wcsnlen.lo.go obj/src/string/wcspbrk.lo.go obj/src/string/wcsrchr.lo.go obj/src/string/wcsspn.lo.go obj/src/string/wcsstr.lo.go obj/src/string/wcstok.lo.go obj/src/string/wcswcs.lo.go obj/src/string/wmemchr.lo.go obj/src/string/wmemcmp.lo.go obj/src/string/wmemcpy.lo.go obj/src/string/wmemmove.lo.go obj/src/string/wmemset.lo.go obj/src/temp/mkdtemp.lo.go obj/src/temp/mkostemp.lo.go obj/src/temp/mkostemps.lo.go obj/src/temp/mkstemp.lo.go obj/src/temp/mkstemps.lo.go obj/src/temp/mktemp.lo.go obj/src/termios/cfgetospeed.lo.go obj/src/termios/cfmakeraw.lo.go obj/src/termios/cfsetospeed.lo.go obj/src/termios/tcdrain.lo.go obj/src/termios/tcflow.lo.go obj/src/termios/tcflush.lo.go obj/src/termios/tcgetattr.lo.go obj/src/termios/tcgetsid.lo.go obj/src/termios/tcgetwinsize.lo.go obj/src/termios/tcsendbreak.lo.go obj/src/termios/tcsetattr.lo.go obj/src/termios/tcsetwinsize.lo.go obj/src/time/__map_file.lo.go obj/src/time/__month_to_secs.lo.go obj/src/time/__secs_to_tm.lo.go obj/src/time/__tm_to_secs.lo.go obj/src/time/__tz.lo.go obj/src/time/__year_to_secs.lo.go obj/src/time/asctime.lo.go obj/src/time/asctime_r.lo.go obj/src/time/clock.lo.go obj/src/time/clock_getcpuclockid.lo.go obj/src/time/clock_getres.lo.go obj/src/time/clock_gettime.lo.go obj/src/time/clock_nanosleep.lo.go obj/src/time/clock_settime.lo.go obj/src/time/ctime.lo.go obj/src/time/ctime_r.lo.go obj/src/time/difftime.lo.go obj/src/time/ftime.lo.go obj/src/time/getdate.lo.go obj/src/time/gettimeofday.lo.go obj/src/time/gmtime.lo.go obj/src/time/gmtime_r.lo.go obj/src/time/localtime.lo.go obj/src/time/localtime_r.lo.go obj/src/time/mktime.lo.go obj/src/time/nanosleep.lo.go obj/src/time/strftime.lo.go obj/src/time/strptime.lo.go obj/src/time/time.lo.go obj/src/time/timegm.lo.go obj/src/time/timer_delete.lo.go obj/src/time/timer_getoverrun.lo.go obj/src/time/timer_gettime.lo.go obj/src/time/timer_settime.lo.go obj/src/time/times.lo.go obj/src/time/timespec_get.lo.go obj/src/time/utime.lo.go obj/src/time/wcsftime.lo.go obj/src/unistd/_exit.lo.go obj/src/unistd/access.lo.go obj/src/unistd/acct.lo.go obj/src/unistd/alarm.lo.go obj/src/unistd/chdir.lo.go obj/src/unistd/chown.lo.go obj/src/unistd/close.lo.go obj/src/unistd/ctermid.lo.go obj/src/unistd/dup.lo.go obj/src/unistd/dup2.lo.go obj/src/unistd/dup3.lo.go obj/src/unistd/faccessat.lo.go obj/src/unistd/fchdir.lo.go obj/src/unistd/fchown.lo.go obj/src/unistd/fchownat.lo.go obj/src/unistd/fdatasync.lo.go obj/src/unistd/fsync.lo.go obj/src/unistd/ftruncate.lo.go obj/src/unistd/getcwd.lo.go obj/src/unistd/getegid.lo.go obj/src/unistd/geteuid.lo.go obj/src/unistd/getgid.lo.go obj/src/unistd/getgroups.lo.go obj/src/unistd/gethostname.lo.go obj/src/unistd/getlogin.lo.go obj/src/unistd/getlogin_r.lo.go obj/src/unistd/getpgid.lo.go obj/src/unistd/getpgrp.lo.go obj/src/unistd/getpid.lo.go obj/src/unistd/getppid.lo.go obj/src/unistd/getsid.lo.go obj/src/unistd/getuid.lo.go obj/src/unistd/isatty.lo.go obj/src/unistd/lchown.lo.go obj/src/unistd/link.lo.go obj/src/unistd/linkat.lo.go obj/src/unistd/lseek.lo.go obj/src/unistd/nice.lo.go obj/src/unistd/pause.lo.go obj/src/unistd/pipe.lo.go obj/src/unistd/pipe2.lo.go obj/src/unistd/posix_close.lo.go obj/src/unistd/pread.lo.go obj/src/unistd/preadv.lo.go obj/src/unistd/pwrite.lo.go obj/src/unistd/pwritev.lo.go obj/src/unistd/read.lo.go obj/src/unistd/readlink.lo.go obj/src/unistd/readlinkat.lo.go obj/src/unistd/readv.lo.go obj/src/unistd/renameat.lo.go obj/src/unistd/rmdir.lo.go obj/src/unistd/setgid.lo.go obj/src/unistd/setpgid.lo.go obj/src/unistd/setpgrp.lo.go obj/src/unistd/setsid.lo.go obj/src/unistd/setuid.lo.go obj/src/unistd/setxid.lo.go obj/src/unistd/sleep.lo.go obj/src/unistd/symlink.lo.go obj/src/unistd/symlinkat.lo.go obj/src/unistd/sync.lo.go obj/src/unistd/tcgetpgrp.lo.go obj/src/unistd/tcsetpgrp.lo.go obj/src/unistd/truncate.lo.go obj/src/unistd/ttyname.lo.go obj/src/unistd/ttyname_r.lo.go obj/src/unistd/ualarm.lo.go obj/src/unistd/unlink.lo.go obj/src/unistd/unlinkat.lo.go obj/src/unistd/usleep.lo.go obj/src/unistd/write.lo.go obj/src/unistd/writev.lo.go -lgcc -lgcc_eh', DO NOT EDIT. + +//go:build linux && arm64 +// +build linux,arm64 + +package libc + +import ( + "reflect" + "unsafe" +) + +var ( + _ reflect.Type + _ unsafe.Pointer +) + +const BIG_ENDIAN = 4321 +const BYTE_ORDER = 1234 +const DBL_DECIMAL_DIG = 17 +const DBL_DIG = 15 +const DBL_EPSILON = 0 +const DBL_HAS_SUBNORM = 1 +const DBL_MANT_DIG = 53 +const DBL_MAX = 0 +const DBL_MAX_10_EXP = 308 +const DBL_MAX_EXP = 1024 +const DBL_MIN = 0 +const DBL_MIN_10_EXP = -307 +const DBL_MIN_EXP = -1021 +const DBL_TRUE_MIN = 0 +const DECIMAL_DIG = 17 +const FLT_DECIMAL_DIG = 9 +const FLT_DIG = 6 +const FLT_EPSILON = 0 +const FLT_EVAL_METHOD = 0 +const FLT_HAS_SUBNORM = 1 +const FLT_MANT_DIG = 24 +const FLT_MAX = 0 +const FLT_MAX_10_EXP = 38 +const FLT_MAX_EXP = 128 +const FLT_MIN = 0 +const FLT_MIN_10_EXP = -37 +const FLT_MIN_EXP = -125 +const FLT_RADIX = 2 +const FLT_ROUNDS = 0 +const FLT_TRUE_MIN = 0 +const FP_FAST_FMA = 1 +const FP_FAST_FMAF = 1 +const FP_ILOGB0 = -2147483648 +const FP_ILOGBNAN = -2147483648 +const FP_INFINITE = 1 +const FP_NAN = 0 +const FP_NORMAL = 4 +const FP_SUBNORMAL = 3 +const FP_ZERO = 2 +const HUGE_VALF = 0 +const I = 0 +const INFINITY = 0 +const INT16_MAX = 32767 +const INT16_MIN = -32768 +const INT32_MAX = 2147483647 +const INT32_MIN = -2147483648 +const INT64_MAX = 9223372036854775807 +const INT64_MIN = -9223372036854775808 +const INT8_MAX = 127 +const INT8_MIN = -128 +const INTMAX_MAX = 9223372036854775807 +const INTMAX_MIN = -9223372036854775808 +const INTPTR_MAX = 9223372036854775807 +const INTPTR_MIN = -9223372036854775808 +const INT_FAST16_MAX = 2147483647 +const INT_FAST16_MIN = -2147483648 +const INT_FAST32_MAX = 2147483647 +const INT_FAST32_MIN = -2147483648 +const INT_FAST64_MAX = 9223372036854775807 +const INT_FAST64_MIN = -9223372036854775808 +const INT_FAST8_MAX = 127 +const INT_FAST8_MIN = -128 +const INT_LEAST16_MAX = 32767 +const INT_LEAST16_MIN = -32768 +const INT_LEAST32_MAX = 2147483647 +const INT_LEAST32_MIN = -2147483648 +const INT_LEAST64_MAX = 9223372036854775807 +const INT_LEAST64_MIN = -9223372036854775808 +const INT_LEAST8_MAX = 127 +const INT_LEAST8_MIN = -128 +const LDBL_DECIMAL_DIG = 17 +const LDBL_DIG = 15 +const LDBL_EPSILON = 0 +const LDBL_HAS_SUBNORM = 1 +const LDBL_MANT_DIG = 53 +const LDBL_MAX = 0 +const LDBL_MAX_10_EXP = 308 +const LDBL_MAX_EXP = 1024 +const LDBL_MIN = 0 +const LDBL_MIN_10_EXP = -307 +const LDBL_MIN_EXP = -1021 +const LDBL_TRUE_MIN = 0 +const LITTLE_ENDIAN = 1234 +const MATH_ERREXCEPT = 2 +const MATH_ERRNO = 1 +const M_1_PI = 0 +const M_2_PI = 0 +const M_2_SQRTPI = 0 +const M_E = 0 +const M_LN10 = 0 +const M_LN2 = 0 +const M_LOG10E = 0 +const M_LOG2E = 0 +const M_PI = 0 +const M_PI_2 = 0 +const M_PI_4 = 0 +const M_SQRT1_2 = 0 +const M_SQRT2 = 0 +const NAN = 0 +const NDEBUG = 1 +const PDP_ENDIAN = 3412 +const PTRDIFF_MAX = 9223372036854775807 +const PTRDIFF_MIN = -9223372036854775808 +const SIG_ATOMIC_MAX = 2147483647 +const SIG_ATOMIC_MIN = -2147483648 +const SIZE_MAX = 18446744073709551615 +const TOINT_INTRINSICS = 0 +const UINT16_MAX = 65535 +const UINT32_MAX = 4294967295 +const UINT64_MAX = 18446744073709551615 +const UINT8_MAX = 255 +const UINTMAX_MAX = 18446744073709551615 +const UINTPTR_MAX = 18446744073709551615 +const UINT_FAST16_MAX = 4294967295 +const UINT_FAST32_MAX = 4294967295 +const UINT_FAST64_MAX = 18446744073709551615 +const UINT_FAST8_MAX = 255 +const UINT_LEAST16_MAX = 65535 +const UINT_LEAST32_MAX = 4294967295 +const UINT_LEAST64_MAX = 18446744073709551615 +const UINT_LEAST8_MAX = 255 +const WANT_ROUNDING = 1 +const WANT_SNAN = 0 +const WCHAR_MAX = 2147483647 +const WCHAR_MIN = -2147483648 +const WINT_MAX = 4294967295 +const WINT_MIN = 0 +const _Complex_I = 0 +const _LP64 = 1 +const _XOPEN_SOURCE = 700 +const __AARCH64EL__ = 1 +const __AARCH64_CMODEL_SMALL__ = 1 +const __ARM_64BIT_STATE = 1 +const __ARM_ALIGN_MAX_PWR = 28 +const __ARM_ALIGN_MAX_STACK_PWR = 16 +const __ARM_ARCH = 8 +const __ARM_ARCH_8A = 1 +const __ARM_ARCH_ISA_A64 = 1 +const __ARM_ARCH_PROFILE = 65 +const __ARM_FEATURE_CLZ = 1 +const __ARM_FEATURE_FMA = 1 +const __ARM_FEATURE_IDIV = 1 +const __ARM_FEATURE_NUMERIC_MAXMIN = 1 +const __ARM_FEATURE_UNALIGNED = 1 +const __ARM_FP = 14 +const __ARM_FP16_ARGS = 1 +const __ARM_FP16_FORMAT_IEEE = 1 +const __ARM_NEON = 1 +const __ARM_PCS_AAPCS64 = 1 +const __ARM_SIZEOF_MINIMAL_ENUM = 4 +const __ARM_SIZEOF_WCHAR_T = 4 +const __ATOMIC_ACQUIRE = 2 +const __ATOMIC_ACQ_REL = 4 +const __ATOMIC_CONSUME = 1 +const __ATOMIC_RELAXED = 0 +const __ATOMIC_RELEASE = 3 +const __ATOMIC_SEQ_CST = 5 +const __BIGGEST_ALIGNMENT__ = 16 +const __BIG_ENDIAN = 4321 +const __BYTE_ORDER = 1234 +const __BYTE_ORDER__ = 1234 +const __CCGO__ = 1 +const __CHAR_BIT__ = 8 +const __CHAR_UNSIGNED__ = 1 +const __DBL_DECIMAL_DIG__ = 17 +const __DBL_DIG__ = 15 +const __DBL_HAS_DENORM__ = 1 +const __DBL_HAS_INFINITY__ = 1 +const __DBL_HAS_QUIET_NAN__ = 1 +const __DBL_IS_IEC_60559__ = 2 +const __DBL_MANT_DIG__ = 53 +const __DBL_MAX_10_EXP__ = 308 +const __DBL_MAX_EXP__ = 1024 +const __DBL_MIN_10_EXP__ = -307 +const __DBL_MIN_EXP__ = -1021 +const __DECIMAL_DIG__ = 36 +const __DEC_EVAL_METHOD__ = 2 +const __ELF__ = 1 +const __FINITE_MATH_ONLY__ = 0 +const __FLOAT_WORD_ORDER__ = 1234 +const __FLT128_DECIMAL_DIG__ = 36 +const __FLT128_DENORM_MIN__ = 0 +const __FLT128_DIG__ = 33 +const __FLT128_EPSILON__ = 0 +const __FLT128_HAS_DENORM__ = 1 +const __FLT128_HAS_INFINITY__ = 1 +const __FLT128_HAS_QUIET_NAN__ = 1 +const __FLT128_IS_IEC_60559__ = 2 +const __FLT128_MANT_DIG__ = 113 +const __FLT128_MAX_10_EXP__ = 4932 +const __FLT128_MAX_EXP__ = 16384 +const __FLT128_MAX__ = 0 +const __FLT128_MIN_10_EXP__ = -4931 +const __FLT128_MIN_EXP__ = -16381 +const __FLT128_MIN__ = 0 +const __FLT128_NORM_MAX__ = 0 +const __FLT16_DECIMAL_DIG__ = 5 +const __FLT16_DENORM_MIN__ = 0 +const __FLT16_DIG__ = 3 +const __FLT16_EPSILON__ = 0 +const __FLT16_HAS_DENORM__ = 1 +const __FLT16_HAS_INFINITY__ = 1 +const __FLT16_HAS_QUIET_NAN__ = 1 +const __FLT16_IS_IEC_60559__ = 2 +const __FLT16_MANT_DIG__ = 11 +const __FLT16_MAX_10_EXP__ = 4 +const __FLT16_MAX_EXP__ = 16 +const __FLT16_MAX__ = 0 +const __FLT16_MIN_10_EXP__ = -4 +const __FLT16_MIN_EXP__ = -13 +const __FLT16_MIN__ = 0 +const __FLT16_NORM_MAX__ = 0 +const __FLT32X_DECIMAL_DIG__ = 17 +const __FLT32X_DENORM_MIN__ = 0 +const __FLT32X_DIG__ = 15 +const __FLT32X_EPSILON__ = 0 +const __FLT32X_HAS_DENORM__ = 1 +const __FLT32X_HAS_INFINITY__ = 1 +const __FLT32X_HAS_QUIET_NAN__ = 1 +const __FLT32X_IS_IEC_60559__ = 2 +const __FLT32X_MANT_DIG__ = 53 +const __FLT32X_MAX_10_EXP__ = 308 +const __FLT32X_MAX_EXP__ = 1024 +const __FLT32X_MAX__ = 0 +const __FLT32X_MIN_10_EXP__ = -307 +const __FLT32X_MIN_EXP__ = -1021 +const __FLT32X_MIN__ = 0 +const __FLT32X_NORM_MAX__ = 0 +const __FLT32_DECIMAL_DIG__ = 9 +const __FLT32_DENORM_MIN__ = 0 +const __FLT32_DIG__ = 6 +const __FLT32_EPSILON__ = 0 +const __FLT32_HAS_DENORM__ = 1 +const __FLT32_HAS_INFINITY__ = 1 +const __FLT32_HAS_QUIET_NAN__ = 1 +const __FLT32_IS_IEC_60559__ = 2 +const __FLT32_MANT_DIG__ = 24 +const __FLT32_MAX_10_EXP__ = 38 +const __FLT32_MAX_EXP__ = 128 +const __FLT32_MAX__ = 0 +const __FLT32_MIN_10_EXP__ = -37 +const __FLT32_MIN_EXP__ = -125 +const __FLT32_MIN__ = 0 +const __FLT32_NORM_MAX__ = 0 +const __FLT64X_DECIMAL_DIG__ = 36 +const __FLT64X_DENORM_MIN__ = 0 +const __FLT64X_DIG__ = 33 +const __FLT64X_EPSILON__ = 0 +const __FLT64X_HAS_DENORM__ = 1 +const __FLT64X_HAS_INFINITY__ = 1 +const __FLT64X_HAS_QUIET_NAN__ = 1 +const __FLT64X_IS_IEC_60559__ = 2 +const __FLT64X_MANT_DIG__ = 113 +const __FLT64X_MAX_10_EXP__ = 4932 +const __FLT64X_MAX_EXP__ = 16384 +const __FLT64X_MAX__ = 0 +const __FLT64X_MIN_10_EXP__ = -4931 +const __FLT64X_MIN_EXP__ = -16381 +const __FLT64X_MIN__ = 0 +const __FLT64X_NORM_MAX__ = 0 +const __FLT64_DECIMAL_DIG__ = 17 +const __FLT64_DENORM_MIN__ = 0 +const __FLT64_DIG__ = 15 +const __FLT64_EPSILON__ = 0 +const __FLT64_HAS_DENORM__ = 1 +const __FLT64_HAS_INFINITY__ = 1 +const __FLT64_HAS_QUIET_NAN__ = 1 +const __FLT64_IS_IEC_60559__ = 2 +const __FLT64_MANT_DIG__ = 53 +const __FLT64_MAX_10_EXP__ = 308 +const __FLT64_MAX_EXP__ = 1024 +const __FLT64_MAX__ = 0 +const __FLT64_MIN_10_EXP__ = -307 +const __FLT64_MIN_EXP__ = -1021 +const __FLT64_MIN__ = 0 +const __FLT64_NORM_MAX__ = 0 +const __FLT_DECIMAL_DIG__ = 9 +const __FLT_DENORM_MIN__ = 0 +const __FLT_DIG__ = 6 +const __FLT_EPSILON__ = 0 +const __FLT_EVAL_METHOD_C99__ = 0 +const __FLT_EVAL_METHOD_TS_18661_3__ = 0 +const __FLT_EVAL_METHOD__ = 0 +const __FLT_HAS_DENORM__ = 1 +const __FLT_HAS_INFINITY__ = 1 +const __FLT_HAS_QUIET_NAN__ = 1 +const __FLT_IS_IEC_60559__ = 2 +const __FLT_MANT_DIG__ = 24 +const __FLT_MAX_10_EXP__ = 38 +const __FLT_MAX_EXP__ = 128 +const __FLT_MAX__ = 0 +const __FLT_MIN_10_EXP__ = -37 +const __FLT_MIN_EXP__ = -125 +const __FLT_MIN__ = 0 +const __FLT_NORM_MAX__ = 0 +const __FLT_RADIX__ = 2 +const __FP_FAST_FMA = 1 +const __FP_FAST_FMAF = 1 +const __FP_FAST_FMAF32 = 1 +const __FP_FAST_FMAF32x = 1 +const __FP_FAST_FMAF64 = 1 +const __FUNCTION__ = 0 +const __GCC_ASM_FLAG_OUTPUTS__ = 1 +const __GCC_ATOMIC_BOOL_LOCK_FREE = 2 +const __GCC_ATOMIC_CHAR16_T_LOCK_FREE = 2 +const __GCC_ATOMIC_CHAR32_T_LOCK_FREE = 2 +const __GCC_ATOMIC_CHAR_LOCK_FREE = 2 +const __GCC_ATOMIC_INT_LOCK_FREE = 2 +const __GCC_ATOMIC_LLONG_LOCK_FREE = 2 +const __GCC_ATOMIC_LONG_LOCK_FREE = 2 +const __GCC_ATOMIC_POINTER_LOCK_FREE = 2 +const __GCC_ATOMIC_SHORT_LOCK_FREE = 2 +const __GCC_ATOMIC_TEST_AND_SET_TRUEVAL = 1 +const __GCC_ATOMIC_WCHAR_T_LOCK_FREE = 2 +const __GCC_CONSTRUCTIVE_SIZE = 64 +const __GCC_DESTRUCTIVE_SIZE = 256 +const __GCC_HAVE_DWARF2_CFI_ASM = 1 +const __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 = 1 +const __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 = 1 +const __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 = 1 +const __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 = 1 +const __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 = 1 +const __GCC_IEC_559 = 2 +const __GCC_IEC_559_COMPLEX = 2 +const __GNUC_EXECUTION_CHARSET_NAME = "UTF-8" +const __GNUC_MINOR__ = 2 +const __GNUC_PATCHLEVEL__ = 0 +const __GNUC_STDC_INLINE__ = 1 +const __GNUC_WIDE_EXECUTION_CHARSET_NAME = "UTF-32LE" +const __GNUC__ = 12 +const __GXX_ABI_VERSION = 1017 +const __HAVE_SPECULATION_SAFE_VALUE = 1 +const __INT16_MAX__ = 32767 +const __INT32_MAX__ = 2147483647 +const __INT32_TYPE__ = 0 +const __INT64_MAX__ = 9223372036854775807 +const __INT8_MAX__ = 127 +const __INTMAX_MAX__ = 9223372036854775807 +const __INTMAX_WIDTH__ = 64 +const __INTPTR_MAX__ = 9223372036854775807 +const __INTPTR_WIDTH__ = 64 +const __INT_FAST16_MAX__ = 9223372036854775807 +const __INT_FAST16_WIDTH__ = 64 +const __INT_FAST32_MAX__ = 9223372036854775807 +const __INT_FAST32_WIDTH__ = 64 +const __INT_FAST64_MAX__ = 9223372036854775807 +const __INT_FAST64_WIDTH__ = 64 +const __INT_FAST8_MAX__ = 127 +const __INT_FAST8_WIDTH__ = 8 +const __INT_LEAST16_MAX__ = 32767 +const __INT_LEAST16_WIDTH__ = 16 +const __INT_LEAST32_MAX__ = 2147483647 +const __INT_LEAST32_TYPE__ = 0 +const __INT_LEAST32_WIDTH__ = 32 +const __INT_LEAST64_MAX__ = 9223372036854775807 +const __INT_LEAST64_WIDTH__ = 64 +const __INT_LEAST8_MAX__ = 127 +const __INT_LEAST8_WIDTH__ = 8 +const __INT_MAX__ = 2147483647 +const __INT_WIDTH__ = 32 +const __LDBL_DECIMAL_DIG__ = 36 +const __LDBL_DENORM_MIN__ = 0 +const __LDBL_DIG__ = 33 +const __LDBL_EPSILON__ = 0 +const __LDBL_HAS_DENORM__ = 1 +const __LDBL_HAS_INFINITY__ = 1 +const __LDBL_HAS_QUIET_NAN__ = 1 +const __LDBL_IS_IEC_60559__ = 2 +const __LDBL_MANT_DIG__ = 113 +const __LDBL_MAX_10_EXP__ = 4932 +const __LDBL_MAX_EXP__ = 16384 +const __LDBL_MAX__ = 0 +const __LDBL_MIN_10_EXP__ = -4931 +const __LDBL_MIN_EXP__ = -16381 +const __LDBL_MIN__ = 0 +const __LDBL_NORM_MAX__ = 0 +const __LITTLE_ENDIAN = 1234 +const __LONG_LONG_MAX__ = 9223372036854775807 +const __LONG_LONG_WIDTH__ = 64 +const __LONG_MAX = 9223372036854775807 +const __LONG_MAX__ = 9223372036854775807 +const __LONG_WIDTH__ = 64 +const __LP64__ = 1 +const __NO_INLINE__ = 1 +const __ORDER_BIG_ENDIAN__ = 4321 +const __ORDER_LITTLE_ENDIAN__ = 1234 +const __ORDER_PDP_ENDIAN__ = 3412 +const __PDP_ENDIAN = 3412 +const __PIC__ = 2 +const __PIE__ = 2 +const __PRAGMA_REDEFINE_EXTNAME = 1 +const __PRETTY_FUNCTION__ = 0 +const __PTRDIFF_MAX__ = 9223372036854775807 +const __PTRDIFF_WIDTH__ = 64 +const __SCHAR_MAX__ = 127 +const __SCHAR_WIDTH__ = 8 +const __SHRT_MAX__ = 32767 +const __SHRT_WIDTH__ = 16 +const __SIG_ATOMIC_MAX__ = 2147483647 +const __SIG_ATOMIC_MIN__ = -2147483648 +const __SIG_ATOMIC_TYPE__ = 0 +const __SIG_ATOMIC_WIDTH__ = 32 +const __SIZEOF_DOUBLE__ = 8 +const __SIZEOF_FLOAT__ = 4 +const __SIZEOF_INT128__ = 16 +const __SIZEOF_INT__ = 4 +const __SIZEOF_LONG_DOUBLE__ = 8 +const __SIZEOF_LONG_LONG__ = 8 +const __SIZEOF_LONG__ = 8 +const __SIZEOF_POINTER__ = 8 +const __SIZEOF_PTRDIFF_T__ = 8 +const __SIZEOF_SHORT__ = 2 +const __SIZEOF_SIZE_T__ = 8 +const __SIZEOF_WCHAR_T__ = 4 +const __SIZEOF_WINT_T__ = 4 +const __SIZE_MAX__ = 18446744073709551615 +const __SIZE_WIDTH__ = 64 +const __STDC_HOSTED__ = 0 +const __STDC_VERSION__ = 199901 +const __STDC__ = 1 +const __STRICT_ANSI__ = 1 +const __UINT16_MAX__ = 65535 +const __UINT32_MAX__ = 4294967295 +const __UINT64_MAX__ = 18446744073709551615 +const __UINT8_MAX__ = 255 +const __UINTMAX_MAX__ = 18446744073709551615 +const __UINTPTR_MAX__ = 18446744073709551615 +const __UINT_FAST16_MAX__ = 18446744073709551615 +const __UINT_FAST32_MAX__ = 18446744073709551615 +const __UINT_FAST64_MAX__ = 18446744073709551615 +const __UINT_FAST8_MAX__ = 255 +const __UINT_LEAST16_MAX__ = 65535 +const __UINT_LEAST32_MAX__ = 4294967295 +const __UINT_LEAST64_MAX__ = 18446744073709551615 +const __UINT_LEAST8_MAX__ = 255 +const __USE_TIME_BITS64 = 1 +const __VERSION__ = "12.2.0" +const __WCHAR_MAX__ = 4294967295 +const __WCHAR_MIN__ = 0 +const __WCHAR_WIDTH__ = 32 +const __WINT_MAX__ = 4294967295 +const __WINT_MIN__ = 0 +const __WINT_WIDTH__ = 32 +const __aarch64__ = 1 +const __gnu_linux__ = 1 +const __inline = 0 +const __linux = 1 +const __linux__ = 1 +const __pic__ = 2 +const __pie__ = 2 +const __restrict = 0 +const __restrict_arr = 0 +const __unix = 1 +const __unix__ = 1 +const complex1 = 0 +const math_errhandling = 2 + +type t__builtin_va_list = uintptr + +type t__predefined_size_t = uint64 + +type t__predefined_wchar_t = uint32 + +type t__predefined_ptrdiff_t = int64 + +type Tuintptr_t = uint64 + +type Tintptr_t = int64 + +type Tint8_t = int8 + +type Tint16_t = int16 + +type Tint32_t = int32 + +type Tint64_t = int64 + +type Tintmax_t = int64 + +type Tuint8_t = uint8 + +type Tuint16_t = uint16 + +type Tuint32_t = uint32 + +type Tuint64_t = uint64 + +type Tuintmax_t = uint64 + +type Tint_fast8_t = int8 + +type Tint_fast64_t = int64 + +type Tint_least8_t = int8 + +type Tint_least16_t = int16 + +type Tint_least32_t = int32 + +type Tint_least64_t = int64 + +type Tuint_fast8_t = uint8 + +type Tuint_fast64_t = uint64 + +type Tuint_least8_t = uint8 + +type Tuint_least16_t = uint16 + +type Tuint_least32_t = uint32 + +type Tuint_least64_t = uint64 + +type Tint_fast16_t = int32 + +type Tint_fast32_t = int32 + +type Tuint_fast16_t = uint32 + +type Tuint_fast32_t = uint32 + +type Tfloat_t = float32 + +type Tdouble_t = float64 + +var _k = uint32(1799) /* constant for reduction */ +var _kln2 = float64(1246.9717778273416) /* k * ln2 */ + +// C documentation +// +// /* +// * Compute exp(x), scaled to avoid spurious overflow. An exponent is +// * returned separately in 'expt'. +// * +// * Input: ln(DBL_MAX) <= x < ln(2 * DBL_MAX / DBL_MIN_DENORM) ~= 1454.91 +// * Output: 2**1023 <= y < 2**1024 +// */ +func ___frexp_exp(tls *TLS, x float64, expt uintptr) (r float64) { + var exp_x float64 + var hx Tuint32_t + var v1 Tuint64_t + _, _, _ = exp_x, hx, v1 + /* + * We use exp(x) = exp(x - kln2) * 2**k, carefully chosen to + * minimize |exp(kln2) - 2**k|. We also scale the exponent of + * exp_x to MAX_EXP so that the result can be multiplied by + * a tiny number without losing accuracy due to denormalization. + */ + exp_x = Xexp(tls, x-_kln2) + hx = uint32(*(*Tuint64_t)(unsafe.Pointer(&exp_x)) >> int32(32)) + *(*int32)(unsafe.Pointer(expt)) = int32(hx>>Int32FromInt32(20) - uint32(Int32FromInt32(0x3ff)+Int32FromInt32(1023)) + _k) + v1 = uint64(hx&Uint32FromInt32(0xfffff)|uint32((Int32FromInt32(0x3ff)+Int32FromInt32(1023))<= ln(DBL_MAX)) +// * where care is needed to avoid overflow. +// * +// * The present implementation is narrowly tailored for our hyperbolic and +// * exponential functions. We assume expt is small (0 or -1), and the caller +// * has filtered out very large x, for which overflow would be inevitable. +// */ +func X__ldexp_cexp(tls *TLS, z complex128, expt int32) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v expt=%v, (%v:)", tls, z, expt, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var exp_x, scale1, scale2, x, y float64 + var half_expt int32 + var v1, v2 Tuint64_t + var v3 [2]float64 + var _ /* ex_expt at bp+0 */ int32 + _, _, _, _, _, _, _, _, _ = exp_x, half_expt, scale1, scale2, x, y, v1, v2, v3 + x = Float64FromComplex128(z) + y = +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)] + exp_x = ___frexp_exp(tls, x, bp) + expt += *(*int32)(unsafe.Pointer(bp)) + /* + * Arrange so that scale1 * scale2 == 2**expt. We use this to + * compensate for scalbn being horrendously slow. + */ + half_expt = expt / int32(2) + v1 = uint64((Int32FromInt32(0x3ff)+half_expt)<>Int32FromInt32(23) - uint32(Int32FromInt32(0x7f)+Int32FromInt32(127)) + _k1) + v1 = hx&uint32(0x7fffff) | uint32((Int32FromInt32(0x7f)+Int32FromInt32(127))< %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var exp_x, scale1, scale2, x, y float32 + var half_expt int32 + var v1, v2 Tuint32_t + var v3 [2]float32 + var _ /* ex_expt at bp+0 */ int32 + _, _, _, _, _, _, _, _, _ = exp_x, half_expt, scale1, scale2, x, y, v1, v2, v3 + x = Float32FromComplex64(z) + y = +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)] + exp_x = ___frexp_expf(tls, x, bp) + expt += *(*int32)(unsafe.Pointer(bp)) + half_expt = expt / int32(2) + v1 = uint32((int32(0x7f) + half_expt) << int32(23)) + scale1 = *(*float32)(unsafe.Pointer(&v1)) + half_expt = expt - half_expt + v2 = uint32((int32(0x7f) + half_expt) << int32(23)) + scale2 = *(*float32)(unsafe.Pointer(&v2)) + v3 = [2]float32{ + 0: Xcosf(tls, y) * exp_x * scale1 * scale2, + 1: Xsinf(tls, y) * exp_x * scale1 * scale2, + } + return *(*complex64)(unsafe.Pointer(&v3)) +} + +func Xcabs(tls *TLS, z complex128) (r float64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xhypot(tls, Float64FromComplex128(z), +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)]) +} + +func Xcabsf(tls *TLS, z complex64) (r float32) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xhypotf(tls, Float32FromComplex64(z), +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)]) +} + +func Xcabsl(tls *TLS, z complex128) (r float64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xcabs(tls, Complex128FromComplex128(z)) +} + +const M_PI_21 = 1.5707963267948966 + +// FIXME: Hull et al. "Implementing the complex arcsine and arccosine functions using exception handling" 1997 + +/* acos(z) = pi/2 - asin(z) */ + +func Xcacos(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 [2]float64 + _ = v1 + z = Xcasin(tls, z) + v1 = [2]float64{ + 0: float64(1.5707963267948966) - Float64FromComplex128(z), + 1: -+(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)], + } + return *(*complex128)(unsafe.Pointer(&v1)) +} + +// FIXME + +var _float_pi_2 = float32(1.5707963267948966) + +func Xcacosf(tls *TLS, z complex64) (r complex64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 [2]float32 + _ = v1 + z = Xcasinf(tls, z) + v1 = [2]float32{ + 0: _float_pi_2 - Float32FromComplex64(z), + 1: -+(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)], + } + return *(*complex64)(unsafe.Pointer(&v1)) +} + +const M_PI_22 = 0 + +/* acosh(z) = i acos(z) */ + +func Xcacosh(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var zineg int32 + var v1 uint64 + var v3, v4 [2]float64 + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + _, _, _, _ = zineg, v1, v3, v4 + *(*float64)(unsafe.Pointer(bp)) = +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)] + v1 = *(*uint64)(unsafe.Pointer(bp)) + goto _2 +_2: + zineg = int32(v1 >> Int32FromInt32(63)) + z = Xcacos(tls, z) + if zineg != 0 { + v3 = [2]float64{ + 0: +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)], + 1: -Float64FromComplex128(z), + } + return *(*complex128)(unsafe.Pointer(&v3)) + } else { + v4 = [2]float64{ + 0: -+(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)], + 1: Float64FromComplex128(z), + } + return *(*complex128)(unsafe.Pointer(&v4)) + } + return r +} + +func Xcacoshf(tls *TLS, z complex64) (r complex64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var zineg int32 + var v1 uint32 + var v3, v4 [2]float32 + var _ /* __u at bp+0 */ struct { + F__i [0]uint32 + F__f float32 + } + _, _, _, _ = zineg, v1, v3, v4 + *(*float32)(unsafe.Pointer(bp)) = +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)] + v1 = *(*uint32)(unsafe.Pointer(bp)) + goto _2 +_2: + zineg = int32(v1 >> Int32FromInt32(31)) + z = Xcacosf(tls, z) + if zineg != 0 { + v3 = [2]float32{ + 0: +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)], + 1: -Float32FromComplex64(z), + } + return *(*complex64)(unsafe.Pointer(&v3)) + } else { + v4 = [2]float32{ + 0: -+(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)], + 1: Float32FromComplex64(z), + } + return *(*complex64)(unsafe.Pointer(&v4)) + } + return r +} + +func Xcacoshl(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Complex128FromComplex128(Xcacosh(tls, Complex128FromComplex128(z))) +} + +func Xcacosl(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Complex128FromComplex128(Xcacos(tls, Complex128FromComplex128(z))) +} + +func Xcarg(tls *TLS, z complex128) (r float64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xatan2(tls, +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)], Float64FromComplex128(z)) +} + +func Xcargf(tls *TLS, z complex64) (r float32) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xatan2f(tls, +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)], Float32FromComplex64(z)) +} + +func Xcargl(tls *TLS, z complex128) (r float64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xcarg(tls, Complex128FromComplex128(z)) +} + +// FIXME + +/* asin(z) = -i log(i z + sqrt(1 - z*z)) */ + +func Xcasin(tls *TLS, z complex128) (r1 complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, w complex128 + var x, y float64 + var v1, v2, v3 [2]float64 + _, _, _, _, _, _, _ = r, w, x, y, v1, v2, v3 + x = Float64FromComplex128(z) + y = +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)] + v1 = [2]float64{ + 0: float64(1) - (x-y)*(x+y), + 1: -Float64FromFloat64(2) * x * y, + } + w = *(*complex128)(unsafe.Pointer(&v1)) + v2 = [2]float64{ + 0: -y, + 1: x, + } + r = Xclog(tls, *(*complex128)(unsafe.Pointer(&v2))+Xcsqrt(tls, w)) + v3 = [2]float64{ + 0: +(*(*[2]float64)(unsafe.Pointer(&r)))[int32(1)], + 1: -Float64FromComplex128(r), + } + return *(*complex128)(unsafe.Pointer(&v3)) +} + +// FIXME + +func Xcasinf(tls *TLS, z complex64) (r1 complex64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, w complex64 + var x, y float32 + var v1, v2, v3 [2]float32 + _, _, _, _, _, _, _ = r, w, x, y, v1, v2, v3 + x = Float32FromComplex64(z) + y = +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)] + v1 = [2]float32{ + 0: float32(Float64FromFloat64(1) - float64((x-y)*(x+y))), + 1: float32(-Float64FromFloat64(2) * float64(x) * float64(y)), + } + w = *(*complex64)(unsafe.Pointer(&v1)) + v2 = [2]float32{ + 0: -y, + 1: x, + } + r = Xclogf(tls, *(*complex64)(unsafe.Pointer(&v2))+Xcsqrtf(tls, w)) + v3 = [2]float32{ + 0: +(*(*[2]float32)(unsafe.Pointer(&r)))[int32(1)], + 1: -Float32FromComplex64(r), + } + return *(*complex64)(unsafe.Pointer(&v3)) +} + +/* asinh(z) = -i asin(i z) */ + +func Xcasinh(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1, v2 [2]float64 + _, _ = v1, v2 + v1 = [2]float64{ + 0: -+(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)], + 1: Float64FromComplex128(z), + } + z = Xcasin(tls, *(*complex128)(unsafe.Pointer(&v1))) + v2 = [2]float64{ + 0: +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)], + 1: -Float64FromComplex128(z), + } + return *(*complex128)(unsafe.Pointer(&v2)) +} + +func Xcasinhf(tls *TLS, z complex64) (r complex64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1, v2 [2]float32 + _, _ = v1, v2 + v1 = [2]float32{ + 0: -+(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)], + 1: Float32FromComplex64(z), + } + z = Xcasinf(tls, *(*complex64)(unsafe.Pointer(&v1))) + v2 = [2]float32{ + 0: +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)], + 1: -Float32FromComplex64(z), + } + return *(*complex64)(unsafe.Pointer(&v2)) +} + +func Xcasinhl(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Complex128FromComplex128(Xcasinh(tls, Complex128FromComplex128(z))) +} + +func Xcasinl(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Complex128FromComplex128(Xcasin(tls, Complex128FromComplex128(z))) +} + +const MAXNUM = 0 +const M_PI1 = 3.141592653589793 + +var _DP1 = float64(3.141592651605606) +var _DP2 = float64(1.9841871479187034e-09) +var _DP3 = float64(1.1442377452219664e-17) + +func __redupi(tls *TLS, x float64) (r float64) { + var i int64 + var t float64 + _, _ = i, t + t = x / float64(3.141592653589793) + if t >= float64(0) { + t += float64(0.5) + } else { + t -= float64(0.5) + } + i = int64(t) /* the multiple */ + t = float64(i) + t = x - t*_DP1 - t*_DP2 - t*_DP3 + return t +} + +func Xcatan(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var a, t, x, x2, y float64 + var w complex128 + var v1 [2]float64 + _, _, _, _, _, _, _ = a, t, w, x, x2, y, v1 + x = Float64FromComplex128(z) + y = +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)] + x2 = x * x + a = float64(1) - x2 - y*y + t = float64(0.5) * Xatan2(tls, float64(2)*x, a) + w = Complex128FromFloat64(__redupi(tls, t)) + t = y - float64(1) + a = x2 + t*t + t = y + float64(1) + a = (x2 + t*t) / a + v1 = [2]float64{ + 0: Float64FromComplex128(w), + 1: float64(0.25) * Xlog(tls, a), + } + w = *(*complex128)(unsafe.Pointer(&v1)) + return w +} + +const MAXNUMF = 0 + +var _DP11 = float64(3.140625) +var _DP21 = float64(0.0009675025939941406) +var _DP31 = float64(1.5099579909783765e-07) + +var _float_pi = float32(3.141592653589793) + +func __redupif(tls *TLS, xx float32) (r float32) { + var i int64 + var t, x float32 + _, _, _ = i, t, x + x = xx + t = x / _float_pi + if t >= Float32FromFloat32(0) { + t += Float32FromFloat32(0.5) + } else { + t -= Float32FromFloat32(0.5) + } + i = int64(t) /* the multiple */ + t = float32(i) + t = float32(float64(x) - float64(t)*_DP11 - float64(t)*_DP21 - float64(t)*_DP31) + return t +} + +func Xcatanf(tls *TLS, z complex64) (r complex64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var a, t, x, x2, y float32 + var w complex64 + var v1 [2]float32 + _, _, _, _, _, _, _ = a, t, w, x, x2, y, v1 + x = Float32FromComplex64(z) + y = +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)] + x2 = x * x + a = Float32FromFloat32(1) - x2 - y*y + t = Float32FromFloat32(0.5) * Xatan2f(tls, Float32FromFloat32(2)*x, a) + w = Complex64FromFloat32(__redupif(tls, t)) + t = y - Float32FromFloat32(1) + a = x2 + t*t + t = y + Float32FromFloat32(1) + a = (x2 + t*t) / a + v1 = [2]float32{ + 0: Float32FromComplex64(w), + 1: Float32FromFloat32(0.25) * Xlogf(tls, a), + } + w = *(*complex64)(unsafe.Pointer(&v1)) + return w +} + +const M_PI2 = 0 + +/* atanh = -i atan(i z) */ + +func Xcatanh(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1, v2 [2]float64 + _, _ = v1, v2 + v1 = [2]float64{ + 0: -+(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)], + 1: Float64FromComplex128(z), + } + z = Xcatan(tls, *(*complex128)(unsafe.Pointer(&v1))) + v2 = [2]float64{ + 0: +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)], + 1: -Float64FromComplex128(z), + } + return *(*complex128)(unsafe.Pointer(&v2)) +} + +func Xcatanhf(tls *TLS, z complex64) (r complex64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1, v2 [2]float32 + _, _ = v1, v2 + v1 = [2]float32{ + 0: -+(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)], + 1: Float32FromComplex64(z), + } + z = Xcatanf(tls, *(*complex64)(unsafe.Pointer(&v1))) + v2 = [2]float32{ + 0: +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)], + 1: -Float32FromComplex64(z), + } + return *(*complex64)(unsafe.Pointer(&v2)) +} + +func Xcatanhl(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Complex128FromComplex128(Xcatanh(tls, Complex128FromComplex128(z))) +} + +func Xcatanl(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Complex128FromComplex128(Xcatan(tls, Complex128FromComplex128(z))) +} + +/* cos(z) = cosh(i z) */ + +func Xccos(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 [2]float64 + _ = v1 + v1 = [2]float64{ + 0: -+(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)], + 1: Float64FromComplex128(z), + } + return Xccosh(tls, *(*complex128)(unsafe.Pointer(&v1))) +} + +func Xccosf(tls *TLS, z complex64) (r complex64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 [2]float32 + _ = v1 + v1 = [2]float32{ + 0: -+(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)], + 1: Float32FromComplex64(z), + } + return Xccoshf(tls, *(*complex64)(unsafe.Pointer(&v1))) +} + +var _huge = float64(8.98846567431158e+307) + +func Xccosh(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __u, __u1 Tuint64_t + var h, x, y float64 + var hx, hy, ix, iy, lx, ly Tint32_t + var v1, v10, v11, v12, v13, v2, v3, v4, v5, v6, v7, v8, v9 [2]float64 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = __u, __u1, h, hx, hy, ix, iy, lx, ly, x, y, v1, v10, v11, v12, v13, v2, v3, v4, v5, v6, v7, v8, v9 + x = Float64FromComplex128(z) + y = +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)] + __u = *(*Tuint64_t)(unsafe.Pointer(&x)) + hx = int32(__u >> int32(32)) + lx = int32(uint32(__u)) + __u1 = *(*Tuint64_t)(unsafe.Pointer(&y)) + hy = int32(__u1 >> int32(32)) + ly = int32(uint32(__u1)) + ix = int32(0x7fffffff) & hx + iy = int32(0x7fffffff) & hy + /* Handle the nearly-non-exceptional cases where x and y are finite. */ + if ix < int32(0x7ff00000) && iy < int32(0x7ff00000) { + if iy|ly == 0 { + v1 = [2]float64{ + 0: Xcosh(tls, x), + 1: x * y, + } + return *(*complex128)(unsafe.Pointer(&v1)) + } + if ix < int32(0x40360000) { /* small x: normal case */ + v2 = [2]float64{ + 0: Xcosh(tls, x) * Xcos(tls, y), + 1: Xsinh(tls, x) * Xsin(tls, y), + } + return *(*complex128)(unsafe.Pointer(&v2)) + } + /* |x| >= 22, so cosh(x) ~= exp(|x|) */ + if ix < int32(0x40862e42) { + /* x < 710: exp(|x|) won't overflow */ + h = Xexp(tls, Xfabs(tls, x)) * float64(0.5) + v3 = [2]float64{ + 0: h * Xcos(tls, y), + 1: Xcopysign(tls, h, x) * Xsin(tls, y), + } + return *(*complex128)(unsafe.Pointer(&v3)) + } else { + if ix < int32(0x4096bbaa) { + /* x < 1455: scale to avoid overflow */ + v4 = [2]float64{ + 0: Xfabs(tls, x), + 1: y, + } + z = X__ldexp_cexp(tls, *(*complex128)(unsafe.Pointer(&v4)), -int32(1)) + v5 = [2]float64{ + 0: Float64FromComplex128(z), + 1: +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)] * Xcopysign(tls, Float64FromInt32(1), x), + } + return *(*complex128)(unsafe.Pointer(&v5)) + } else { + /* x >= 1455: the result always overflows */ + h = _huge * x + v6 = [2]float64{ + 0: h * h * Xcos(tls, y), + 1: h * Xsin(tls, y), + } + return *(*complex128)(unsafe.Pointer(&v6)) + } + } + } + /* + * cosh(+-0 +- I Inf) = dNaN + I sign(d(+-0, dNaN))0. + * The sign of 0 in the result is unspecified. Choice = normally + * the same as dNaN. Raise the invalid floating-point exception. + * + * cosh(+-0 +- I NaN) = d(NaN) + I sign(d(+-0, NaN))0. + * The sign of 0 in the result is unspecified. Choice = normally + * the same as d(NaN). + */ + if ix|lx == 0 && iy >= int32(0x7ff00000) { + v7 = [2]float64{ + 0: y - y, + 1: Xcopysign(tls, Float64FromInt32(0), x*(y-y)), + } + return *(*complex128)(unsafe.Pointer(&v7)) + } + /* + * cosh(+-Inf +- I 0) = +Inf + I (+-)(+-)0. + * + * cosh(NaN +- I 0) = d(NaN) + I sign(d(NaN, +-0))0. + * The sign of 0 in the result is unspecified. + */ + if iy|ly == 0 && ix >= int32(0x7ff00000) { + if hx&int32(0xfffff)|lx == 0 { + v8 = [2]float64{ + 0: x * x, + 1: Xcopysign(tls, Float64FromInt32(0), x) * y, + } + return *(*complex128)(unsafe.Pointer(&v8)) + } + v9 = [2]float64{ + 0: x * x, + 1: Xcopysign(tls, Float64FromInt32(0), (x+x)*y), + } + return *(*complex128)(unsafe.Pointer(&v9)) + } + /* + * cosh(x +- I Inf) = dNaN + I dNaN. + * Raise the invalid floating-point exception for finite nonzero x. + * + * cosh(x + I NaN) = d(NaN) + I d(NaN). + * Optionally raises the invalid floating-point exception for finite + * nonzero x. Choice = don't raise (except for signaling NaNs). + */ + if ix < int32(0x7ff00000) && iy >= int32(0x7ff00000) { + v10 = [2]float64{ + 0: y - y, + 1: x * (y - y), + } + return *(*complex128)(unsafe.Pointer(&v10)) + } + /* + * cosh(+-Inf + I NaN) = +Inf + I d(NaN). + * + * cosh(+-Inf +- I Inf) = +Inf + I dNaN. + * The sign of Inf in the result is unspecified. Choice = always +. + * Raise the invalid floating-point exception. + * + * cosh(+-Inf + I y) = +Inf cos(y) +- I Inf sin(y) + */ + if ix >= int32(0x7ff00000) && hx&int32(0xfffff)|lx == 0 { + if iy >= int32(0x7ff00000) { + v11 = [2]float64{ + 0: x * x, + 1: x * (y - y), + } + return *(*complex128)(unsafe.Pointer(&v11)) + } + v12 = [2]float64{ + 0: x * x * Xcos(tls, y), + 1: x * Xsin(tls, y), + } + return *(*complex128)(unsafe.Pointer(&v12)) + } + /* + * cosh(NaN + I NaN) = d(NaN) + I d(NaN). + * + * cosh(NaN +- I Inf) = d(NaN) + I d(NaN). + * Optionally raises the invalid floating-point exception. + * Choice = raise. + * + * cosh(NaN + I y) = d(NaN) + I d(NaN). + * Optionally raises the invalid floating-point exception for finite + * nonzero y. Choice = don't raise (except for signaling NaNs). + */ + v13 = [2]float64{ + 0: x * x * (y - y), + 1: (x + x) * (y - y), + } + return *(*complex128)(unsafe.Pointer(&v13)) +} + +var _huge1 = float32(1.7014118346046923e+38) + +func Xccoshf(tls *TLS, z complex64) (r complex64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var h, x, y float32 + var hx, hy, ix, iy Tint32_t + var v1, v10, v11, v12, v13, v2, v3, v4, v5, v6, v7, v8, v9 [2]float32 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = h, hx, hy, ix, iy, x, y, v1, v10, v11, v12, v13, v2, v3, v4, v5, v6, v7, v8, v9 + x = Float32FromComplex64(z) + y = +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)] + hx = int32(*(*Tuint32_t)(unsafe.Pointer(&x))) + hy = int32(*(*Tuint32_t)(unsafe.Pointer(&y))) + ix = int32(0x7fffffff) & hx + iy = int32(0x7fffffff) & hy + if ix < int32(0x7f800000) && iy < int32(0x7f800000) { + if iy == 0 { + v1 = [2]float32{ + 0: Xcoshf(tls, x), + 1: x * y, + } + return *(*complex64)(unsafe.Pointer(&v1)) + } + if ix < int32(0x41100000) { /* small x: normal case */ + v2 = [2]float32{ + 0: Xcoshf(tls, x) * Xcosf(tls, y), + 1: Xsinhf(tls, x) * Xsinf(tls, y), + } + return *(*complex64)(unsafe.Pointer(&v2)) + } + /* |x| >= 9, so cosh(x) ~= exp(|x|) */ + if ix < int32(0x42b17218) { + /* x < 88.7: expf(|x|) won't overflow */ + h = Xexpf(tls, Xfabsf(tls, x)) * Float32FromFloat32(0.5) + v3 = [2]float32{ + 0: h * Xcosf(tls, y), + 1: Xcopysignf(tls, h, x) * Xsinf(tls, y), + } + return *(*complex64)(unsafe.Pointer(&v3)) + } else { + if ix < int32(0x4340b1e7) { + /* x < 192.7: scale to avoid overflow */ + v4 = [2]float32{ + 0: Xfabsf(tls, x), + 1: y, + } + z = X__ldexp_cexpf(tls, *(*complex64)(unsafe.Pointer(&v4)), -int32(1)) + v5 = [2]float32{ + 0: Float32FromComplex64(z), + 1: +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)] * Xcopysignf(tls, Float32FromInt32(1), x), + } + return *(*complex64)(unsafe.Pointer(&v5)) + } else { + /* x >= 192.7: the result always overflows */ + h = _huge1 * x + v6 = [2]float32{ + 0: h * h * Xcosf(tls, y), + 1: h * Xsinf(tls, y), + } + return *(*complex64)(unsafe.Pointer(&v6)) + } + } + } + if ix == 0 && iy >= int32(0x7f800000) { + v7 = [2]float32{ + 0: y - y, + 1: Xcopysignf(tls, Float32FromInt32(0), x*(y-y)), + } + return *(*complex64)(unsafe.Pointer(&v7)) + } + if iy == 0 && ix >= int32(0x7f800000) { + if hx&int32(0x7fffff) == 0 { + v8 = [2]float32{ + 0: x * x, + 1: Xcopysignf(tls, Float32FromInt32(0), x) * y, + } + return *(*complex64)(unsafe.Pointer(&v8)) + } + v9 = [2]float32{ + 0: x * x, + 1: Xcopysignf(tls, Float32FromInt32(0), (x+x)*y), + } + return *(*complex64)(unsafe.Pointer(&v9)) + } + if ix < int32(0x7f800000) && iy >= int32(0x7f800000) { + v10 = [2]float32{ + 0: y - y, + 1: x * (y - y), + } + return *(*complex64)(unsafe.Pointer(&v10)) + } + if ix >= int32(0x7f800000) && hx&int32(0x7fffff) == 0 { + if iy >= int32(0x7f800000) { + v11 = [2]float32{ + 0: x * x, + 1: x * (y - y), + } + return *(*complex64)(unsafe.Pointer(&v11)) + } + v12 = [2]float32{ + 0: x * x * Xcosf(tls, y), + 1: x * Xsinf(tls, y), + } + return *(*complex64)(unsafe.Pointer(&v12)) + } + v13 = [2]float32{ + 0: x * x * (y - y), + 1: (x + x) * (y - y), + } + return *(*complex64)(unsafe.Pointer(&v13)) +} + +// C documentation +// +// //FIXME +func Xccoshl(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Complex128FromComplex128(Xccosh(tls, Complex128FromComplex128(z))) +} + +func Xccosl(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Complex128FromComplex128(Xccos(tls, Complex128FromComplex128(z))) +} + +var _exp_ovfl = uint32(0x40862e42) /* high bits of MAX_EXP * ln2 ~= 710 */ +var _cexp_ovfl = uint32(0x4096b8e4) /* (MAX_EXP - MIN_DENORM_EXP) * ln2 */ + +func Xcexp(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __u, __u1 Tuint64_t + var exp_x, x, y float64 + var hx, hy, lx, ly Tuint32_t + var v1, v2, v3, v4, v5, v6 [2]float64 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = __u, __u1, exp_x, hx, hy, lx, ly, x, y, v1, v2, v3, v4, v5, v6 + x = Float64FromComplex128(z) + y = +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)] + __u = *(*Tuint64_t)(unsafe.Pointer(&y)) + hy = uint32(__u >> int32(32)) + ly = uint32(__u) + hy &= uint32(0x7fffffff) + /* cexp(x + I 0) = exp(x) + I 0 */ + if hy|ly == uint32(0) { + v1 = [2]float64{ + 0: Xexp(tls, x), + 1: y, + } + return *(*complex128)(unsafe.Pointer(&v1)) + } + __u1 = *(*Tuint64_t)(unsafe.Pointer(&x)) + hx = uint32(__u1 >> int32(32)) + lx = uint32(__u1) + /* cexp(0 + I y) = cos(y) + I sin(y) */ + if hx&uint32(0x7fffffff)|lx == uint32(0) { + v2 = [2]float64{ + 0: Xcos(tls, y), + 1: Xsin(tls, y), + } + return *(*complex128)(unsafe.Pointer(&v2)) + } + if hy >= uint32(0x7ff00000) { + if lx != uint32(0) || hx&uint32(0x7fffffff) != uint32(0x7ff00000) { + /* cexp(finite|NaN +- I Inf|NaN) = NaN + I NaN */ + v3 = [2]float64{ + 0: y - y, + 1: y - y, + } + return *(*complex128)(unsafe.Pointer(&v3)) + } else { + if hx&uint32(0x80000000) != 0 { + /* cexp(-Inf +- I Inf|NaN) = 0 + I 0 */ + v4 = [2]float64{} + return *(*complex128)(unsafe.Pointer(&v4)) + } else { + /* cexp(+Inf +- I Inf|NaN) = Inf + I NaN */ + v5 = [2]float64{ + 0: x, + 1: y - y, + } + return *(*complex128)(unsafe.Pointer(&v5)) + } + } + } + if hx >= _exp_ovfl && hx <= _cexp_ovfl { + /* + * x is between 709.7 and 1454.3, so we must scale to avoid + * overflow in exp(x). + */ + return X__ldexp_cexp(tls, z, 0) + } else { + /* + * Cases covered here: + * - x < exp_ovfl and exp(x) won't overflow (common case) + * - x > cexp_ovfl, so exp(x) * s overflows for all s > 0 + * - x = +-Inf (generated by exp()) + * - x = NaN (spurious inexact exception from y) + */ + exp_x = Xexp(tls, x) + v6 = [2]float64{ + 0: exp_x * Xcos(tls, y), + 1: exp_x * Xsin(tls, y), + } + return *(*complex128)(unsafe.Pointer(&v6)) + } + return r +} + +var _exp_ovfl1 = uint32(0x42b17218) /* MAX_EXP * ln2 ~= 88.722839355 */ +var _cexp_ovfl1 = uint32(0x43400074) /* (MAX_EXP - MIN_DENORM_EXP) * ln2 */ + +func Xcexpf(tls *TLS, z complex64) (r complex64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var exp_x, x, y float32 + var hx, hy Tuint32_t + var v1, v2, v3, v4, v5, v6 [2]float32 + _, _, _, _, _, _, _, _, _, _, _ = exp_x, hx, hy, x, y, v1, v2, v3, v4, v5, v6 + x = Float32FromComplex64(z) + y = +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)] + hy = *(*Tuint32_t)(unsafe.Pointer(&y)) + hy &= uint32(0x7fffffff) + /* cexp(x + I 0) = exp(x) + I 0 */ + if hy == uint32(0) { + v1 = [2]float32{ + 0: Xexpf(tls, x), + 1: y, + } + return *(*complex64)(unsafe.Pointer(&v1)) + } + hx = *(*Tuint32_t)(unsafe.Pointer(&x)) + /* cexp(0 + I y) = cos(y) + I sin(y) */ + if hx&uint32(0x7fffffff) == uint32(0) { + v2 = [2]float32{ + 0: Xcosf(tls, y), + 1: Xsinf(tls, y), + } + return *(*complex64)(unsafe.Pointer(&v2)) + } + if hy >= uint32(0x7f800000) { + if hx&uint32(0x7fffffff) != uint32(0x7f800000) { + /* cexp(finite|NaN +- I Inf|NaN) = NaN + I NaN */ + v3 = [2]float32{ + 0: y - y, + 1: y - y, + } + return *(*complex64)(unsafe.Pointer(&v3)) + } else { + if hx&uint32(0x80000000) != 0 { + /* cexp(-Inf +- I Inf|NaN) = 0 + I 0 */ + v4 = [2]float32{} + return *(*complex64)(unsafe.Pointer(&v4)) + } else { + /* cexp(+Inf +- I Inf|NaN) = Inf + I NaN */ + v5 = [2]float32{ + 0: x, + 1: y - y, + } + return *(*complex64)(unsafe.Pointer(&v5)) + } + } + } + if hx >= _exp_ovfl1 && hx <= _cexp_ovfl1 { + /* + * x is between 88.7 and 192, so we must scale to avoid + * overflow in expf(x). + */ + return X__ldexp_cexpf(tls, z, 0) + } else { + /* + * Cases covered here: + * - x < exp_ovfl and exp(x) won't overflow (common case) + * - x > cexp_ovfl, so exp(x) * s overflows for all s > 0 + * - x = +-Inf (generated by exp()) + * - x = NaN (spurious inexact exception from y) + */ + exp_x = Xexpf(tls, x) + v6 = [2]float32{ + 0: exp_x * Xcosf(tls, y), + 1: exp_x * Xsinf(tls, y), + } + return *(*complex64)(unsafe.Pointer(&v6)) + } + return r +} + +// C documentation +// +// //FIXME +func Xcexpl(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Complex128FromComplex128(Xcexp(tls, Complex128FromComplex128(z))) +} + +func Xcimag(tls *TLS, z complex128) (r float64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)] +} + +func Xcimagf(tls *TLS, z complex64) (r float32) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)] +} + +func Xcimagl(tls *TLS, z complex128) (r float64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)] +} + +// FIXME + +/* log(z) = log(|z|) + i arg(z) */ + +func Xclog(tls *TLS, z complex128) (r1 complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var phi, r float64 + var v1 [2]float64 + _, _, _ = phi, r, v1 + r = Xcabs(tls, z) + phi = Xcarg(tls, z) + v1 = [2]float64{ + 0: Xlog(tls, r), + 1: phi, + } + return *(*complex128)(unsafe.Pointer(&v1)) +} + +// FIXME + +func Xclogf(tls *TLS, z complex64) (r1 complex64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var phi, r float32 + var v1 [2]float32 + _, _, _ = phi, r, v1 + r = Xcabsf(tls, z) + phi = Xcargf(tls, z) + v1 = [2]float32{ + 0: Xlogf(tls, r), + 1: phi, + } + return *(*complex64)(unsafe.Pointer(&v1)) +} + +func Xclogl(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Complex128FromComplex128(Xclog(tls, Complex128FromComplex128(z))) +} + +func Xconj(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 [2]float64 + _ = v1 + v1 = [2]float64{ + 0: Float64FromComplex128(z), + 1: -+(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)], + } + return *(*complex128)(unsafe.Pointer(&v1)) +} + +func Xconjf(tls *TLS, z complex64) (r complex64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 [2]float32 + _ = v1 + v1 = [2]float32{ + 0: Float32FromComplex64(z), + 1: -+(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)], + } + return *(*complex64)(unsafe.Pointer(&v1)) +} + +func Xconjl(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 [2]float64 + _ = v1 + v1 = [2]float64{ + 0: Float64FromComplex128(z), + 1: -+(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)], + } + return *(*complex128)(unsafe.Pointer(&v1)) +} + +/* pow(z, c) = exp(c log(z)), See C99 G.6.4.1 */ + +func Xcpow(tls *TLS, z complex128, c complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v c=%v, (%v:)", tls, z, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xcexp(tls, c*Xclog(tls, z)) +} + +func Xcpowf(tls *TLS, z complex64, c complex64) (r complex64) { + if __ccgo_strace { + trc("tls=%v z=%v c=%v, (%v:)", tls, z, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xcexpf(tls, c*Xclogf(tls, z)) +} + +func Xcpowl(tls *TLS, z complex128, c complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v c=%v, (%v:)", tls, z, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Complex128FromComplex128(Xcpow(tls, Complex128FromComplex128(z), Complex128FromComplex128(c))) +} + +func Xcproj(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1, v3 uint64 + var v5 bool + var v6 [2]float64 + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + _, _, _, _ = v1, v3, v5, v6 + *(*float64)(unsafe.Pointer(bp)) = Float64FromComplex128(z) + v1 = *(*uint64)(unsafe.Pointer(bp)) + goto _2 +_2: + ; + if v5 = BoolInt32(v1&(-Uint64FromUint64(1)>>Int32FromInt32(1)) == Uint64FromUint64(0x7ff)<>Int32FromInt32(1)) == Uint64FromUint64(0x7ff)< %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1, v3 uint32 + var v5 bool + var v6 [2]float32 + var _ /* __u at bp+0 */ struct { + F__i [0]uint32 + F__f float32 + } + _, _, _, _ = v1, v3, v5, v6 + *(*float32)(unsafe.Pointer(bp)) = Float32FromComplex64(z) + v1 = *(*uint32)(unsafe.Pointer(bp)) + goto _2 +_2: + ; + if v5 = BoolInt32(v1&uint32(0x7fffffff) == uint32(0x7f800000)) != 0; !v5 { + *(*float32)(unsafe.Pointer(bp)) = +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)] + v3 = *(*uint32)(unsafe.Pointer(bp)) + goto _4 + _4: + } + if v5 || BoolInt32(v3&uint32(0x7fffffff) == uint32(0x7f800000)) != 0 { + v6 = [2]float32{ + 0: X__builtin_inff(tls), + 1: Xcopysignf(tls, float32(0), +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)]), + } + return *(*complex64)(unsafe.Pointer(&v6)) + } + return z +} + +func Xcprojl(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Complex128FromComplex128(Xcproj(tls, Complex128FromComplex128(z))) +} + +func Xcreal(tls *TLS, z complex128) (r float64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Float64FromComplex128(z) +} + +func Xcrealf(tls *TLS, z complex64) (r float32) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Float32FromComplex64(z) +} + +func Xcreall(tls *TLS, z complex128) (r float64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Float64FromComplex128(z) +} + +/* sin(z) = -i sinh(i z) */ + +func Xcsin(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1, v2 [2]float64 + _, _ = v1, v2 + v1 = [2]float64{ + 0: -+(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)], + 1: Float64FromComplex128(z), + } + z = Xcsinh(tls, *(*complex128)(unsafe.Pointer(&v1))) + v2 = [2]float64{ + 0: +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)], + 1: -Float64FromComplex128(z), + } + return *(*complex128)(unsafe.Pointer(&v2)) +} + +func Xcsinf(tls *TLS, z complex64) (r complex64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1, v2 [2]float32 + _, _ = v1, v2 + v1 = [2]float32{ + 0: -+(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)], + 1: Float32FromComplex64(z), + } + z = Xcsinhf(tls, *(*complex64)(unsafe.Pointer(&v1))) + v2 = [2]float32{ + 0: +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)], + 1: -Float32FromComplex64(z), + } + return *(*complex64)(unsafe.Pointer(&v2)) +} + +var _huge2 = float64(8.98846567431158e+307) + +func Xcsinh(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __u, __u1 Tuint64_t + var h, x, y float64 + var hx, hy, ix, iy, lx, ly Tint32_t + var v1, v10, v11, v12, v13, v2, v3, v4, v5, v6, v7, v8, v9 [2]float64 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = __u, __u1, h, hx, hy, ix, iy, lx, ly, x, y, v1, v10, v11, v12, v13, v2, v3, v4, v5, v6, v7, v8, v9 + x = Float64FromComplex128(z) + y = +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)] + __u = *(*Tuint64_t)(unsafe.Pointer(&x)) + hx = int32(__u >> int32(32)) + lx = int32(uint32(__u)) + __u1 = *(*Tuint64_t)(unsafe.Pointer(&y)) + hy = int32(__u1 >> int32(32)) + ly = int32(uint32(__u1)) + ix = int32(0x7fffffff) & hx + iy = int32(0x7fffffff) & hy + /* Handle the nearly-non-exceptional cases where x and y are finite. */ + if ix < int32(0x7ff00000) && iy < int32(0x7ff00000) { + if iy|ly == 0 { + v1 = [2]float64{ + 0: Xsinh(tls, x), + 1: y, + } + return *(*complex128)(unsafe.Pointer(&v1)) + } + if ix < int32(0x40360000) { /* small x: normal case */ + v2 = [2]float64{ + 0: Xsinh(tls, x) * Xcos(tls, y), + 1: Xcosh(tls, x) * Xsin(tls, y), + } + return *(*complex128)(unsafe.Pointer(&v2)) + } + /* |x| >= 22, so cosh(x) ~= exp(|x|) */ + if ix < int32(0x40862e42) { + /* x < 710: exp(|x|) won't overflow */ + h = Xexp(tls, Xfabs(tls, x)) * float64(0.5) + v3 = [2]float64{ + 0: Xcopysign(tls, h, x) * Xcos(tls, y), + 1: h * Xsin(tls, y), + } + return *(*complex128)(unsafe.Pointer(&v3)) + } else { + if ix < int32(0x4096bbaa) { + /* x < 1455: scale to avoid overflow */ + v4 = [2]float64{ + 0: Xfabs(tls, x), + 1: y, + } + z = X__ldexp_cexp(tls, *(*complex128)(unsafe.Pointer(&v4)), -int32(1)) + v5 = [2]float64{ + 0: Float64FromComplex128(z) * Xcopysign(tls, Float64FromInt32(1), x), + 1: +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)], + } + return *(*complex128)(unsafe.Pointer(&v5)) + } else { + /* x >= 1455: the result always overflows */ + h = _huge2 * x + v6 = [2]float64{ + 0: h * Xcos(tls, y), + 1: h * h * Xsin(tls, y), + } + return *(*complex128)(unsafe.Pointer(&v6)) + } + } + } + /* + * sinh(+-0 +- I Inf) = sign(d(+-0, dNaN))0 + I dNaN. + * The sign of 0 in the result is unspecified. Choice = normally + * the same as dNaN. Raise the invalid floating-point exception. + * + * sinh(+-0 +- I NaN) = sign(d(+-0, NaN))0 + I d(NaN). + * The sign of 0 in the result is unspecified. Choice = normally + * the same as d(NaN). + */ + if ix|lx == 0 && iy >= int32(0x7ff00000) { + v7 = [2]float64{ + 0: Xcopysign(tls, Float64FromInt32(0), x*(y-y)), + 1: y - y, + } + return *(*complex128)(unsafe.Pointer(&v7)) + } + /* + * sinh(+-Inf +- I 0) = +-Inf + I +-0. + * + * sinh(NaN +- I 0) = d(NaN) + I +-0. + */ + if iy|ly == 0 && ix >= int32(0x7ff00000) { + if hx&int32(0xfffff)|lx == 0 { + v8 = [2]float64{ + 0: x, + 1: y, + } + return *(*complex128)(unsafe.Pointer(&v8)) + } + v9 = [2]float64{ + 0: x, + 1: Xcopysign(tls, Float64FromInt32(0), y), + } + return *(*complex128)(unsafe.Pointer(&v9)) + } + /* + * sinh(x +- I Inf) = dNaN + I dNaN. + * Raise the invalid floating-point exception for finite nonzero x. + * + * sinh(x + I NaN) = d(NaN) + I d(NaN). + * Optionally raises the invalid floating-point exception for finite + * nonzero x. Choice = don't raise (except for signaling NaNs). + */ + if ix < int32(0x7ff00000) && iy >= int32(0x7ff00000) { + v10 = [2]float64{ + 0: y - y, + 1: x * (y - y), + } + return *(*complex128)(unsafe.Pointer(&v10)) + } + /* + * sinh(+-Inf + I NaN) = +-Inf + I d(NaN). + * The sign of Inf in the result is unspecified. Choice = normally + * the same as d(NaN). + * + * sinh(+-Inf +- I Inf) = +Inf + I dNaN. + * The sign of Inf in the result is unspecified. Choice = always +. + * Raise the invalid floating-point exception. + * + * sinh(+-Inf + I y) = +-Inf cos(y) + I Inf sin(y) + */ + if ix >= int32(0x7ff00000) && hx&int32(0xfffff)|lx == 0 { + if iy >= int32(0x7ff00000) { + v11 = [2]float64{ + 0: x * x, + 1: x * (y - y), + } + return *(*complex128)(unsafe.Pointer(&v11)) + } + v12 = [2]float64{ + 0: x * Xcos(tls, y), + 1: float64(X__builtin_inff(tls)) * Xsin(tls, y), + } + return *(*complex128)(unsafe.Pointer(&v12)) + } + /* + * sinh(NaN + I NaN) = d(NaN) + I d(NaN). + * + * sinh(NaN +- I Inf) = d(NaN) + I d(NaN). + * Optionally raises the invalid floating-point exception. + * Choice = raise. + * + * sinh(NaN + I y) = d(NaN) + I d(NaN). + * Optionally raises the invalid floating-point exception for finite + * nonzero y. Choice = don't raise (except for signaling NaNs). + */ + v13 = [2]float64{ + 0: x * x * (y - y), + 1: (x + x) * (y - y), + } + return *(*complex128)(unsafe.Pointer(&v13)) +} + +var _huge3 = float32(1.7014118346046923e+38) + +func Xcsinhf(tls *TLS, z complex64) (r complex64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var h, x, y float32 + var hx, hy, ix, iy Tint32_t + var v1, v10, v11, v12, v13, v2, v3, v4, v5, v6, v7, v8, v9 [2]float32 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = h, hx, hy, ix, iy, x, y, v1, v10, v11, v12, v13, v2, v3, v4, v5, v6, v7, v8, v9 + x = Float32FromComplex64(z) + y = +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)] + hx = int32(*(*Tuint32_t)(unsafe.Pointer(&x))) + hy = int32(*(*Tuint32_t)(unsafe.Pointer(&y))) + ix = int32(0x7fffffff) & hx + iy = int32(0x7fffffff) & hy + if ix < int32(0x7f800000) && iy < int32(0x7f800000) { + if iy == 0 { + v1 = [2]float32{ + 0: Xsinhf(tls, x), + 1: y, + } + return *(*complex64)(unsafe.Pointer(&v1)) + } + if ix < int32(0x41100000) { /* small x: normal case */ + v2 = [2]float32{ + 0: Xsinhf(tls, x) * Xcosf(tls, y), + 1: Xcoshf(tls, x) * Xsinf(tls, y), + } + return *(*complex64)(unsafe.Pointer(&v2)) + } + /* |x| >= 9, so cosh(x) ~= exp(|x|) */ + if ix < int32(0x42b17218) { + /* x < 88.7: expf(|x|) won't overflow */ + h = Xexpf(tls, Xfabsf(tls, x)) * Float32FromFloat32(0.5) + v3 = [2]float32{ + 0: Xcopysignf(tls, h, x) * Xcosf(tls, y), + 1: h * Xsinf(tls, y), + } + return *(*complex64)(unsafe.Pointer(&v3)) + } else { + if ix < int32(0x4340b1e7) { + /* x < 192.7: scale to avoid overflow */ + v4 = [2]float32{ + 0: Xfabsf(tls, x), + 1: y, + } + z = X__ldexp_cexpf(tls, *(*complex64)(unsafe.Pointer(&v4)), -int32(1)) + v5 = [2]float32{ + 0: Float32FromComplex64(z) * Xcopysignf(tls, Float32FromInt32(1), x), + 1: +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)], + } + return *(*complex64)(unsafe.Pointer(&v5)) + } else { + /* x >= 192.7: the result always overflows */ + h = _huge3 * x + v6 = [2]float32{ + 0: h * Xcosf(tls, y), + 1: h * h * Xsinf(tls, y), + } + return *(*complex64)(unsafe.Pointer(&v6)) + } + } + } + if ix == 0 && iy >= int32(0x7f800000) { + v7 = [2]float32{ + 0: Xcopysignf(tls, Float32FromInt32(0), x*(y-y)), + 1: y - y, + } + return *(*complex64)(unsafe.Pointer(&v7)) + } + if iy == 0 && ix >= int32(0x7f800000) { + if hx&int32(0x7fffff) == 0 { + v8 = [2]float32{ + 0: x, + 1: y, + } + return *(*complex64)(unsafe.Pointer(&v8)) + } + v9 = [2]float32{ + 0: x, + 1: Xcopysignf(tls, Float32FromInt32(0), y), + } + return *(*complex64)(unsafe.Pointer(&v9)) + } + if ix < int32(0x7f800000) && iy >= int32(0x7f800000) { + v10 = [2]float32{ + 0: y - y, + 1: x * (y - y), + } + return *(*complex64)(unsafe.Pointer(&v10)) + } + if ix >= int32(0x7f800000) && hx&int32(0x7fffff) == 0 { + if iy >= int32(0x7f800000) { + v11 = [2]float32{ + 0: x * x, + 1: x * (y - y), + } + return *(*complex64)(unsafe.Pointer(&v11)) + } + v12 = [2]float32{ + 0: x * Xcosf(tls, y), + 1: X__builtin_inff(tls) * Xsinf(tls, y), + } + return *(*complex64)(unsafe.Pointer(&v12)) + } + v13 = [2]float32{ + 0: x * x * (y - y), + 1: (x + x) * (y - y), + } + return *(*complex64)(unsafe.Pointer(&v13)) +} + +// C documentation +// +// //FIXME +func Xcsinhl(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Complex128FromComplex128(Xcsinh(tls, Complex128FromComplex128(z))) +} + +func Xcsinl(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Complex128FromComplex128(Xcsin(tls, Complex128FromComplex128(z))) +} + +const THRESH = 7.446288774449766e+307 + +/* + * gcc doesn't implement complex multiplication or division correctly, + * so we need to handle infinities specially. We turn on this pragma to + * notify conforming c99 compilers that the fast-but-incorrect code that + * gcc generates is acceptable, since the special cases have already been + * handled. + */ + +/* We risk spurious overflow for components >= DBL_MAX / (1 + sqrt(2)). */ + +func Xcsqrt(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var a, b, t float64 + var result complex128 + var scale int32 + var v1, v12, v13, v14, v15, v4, v7 [2]float64 + var v10, v2, v5, v8 uint64 + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, b, result, scale, t, v1, v10, v12, v13, v14, v15, v2, v4, v5, v7, v8 + a = Float64FromComplex128(z) + b = +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)] + /* Handle special cases. */ + if z == Complex128FromInt32(0) { + v1 = [2]float64{ + 1: b, + } + return *(*complex128)(unsafe.Pointer(&v1)) + } + *(*float64)(unsafe.Pointer(bp)) = b + v2 = *(*uint64)(unsafe.Pointer(bp)) + goto _3 +_3: + if BoolInt32(v2&(-Uint64FromUint64(1)>>Int32FromInt32(1)) == Uint64FromUint64(0x7ff)<>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)<>Int32FromInt32(1)) == Uint64FromUint64(0x7ff)<>Int32FromInt32(63)) != 0 { + v12 = [2]float64{ + 0: Xfabs(tls, b-b), + 1: Xcopysign(tls, a, b), + } + return *(*complex128)(unsafe.Pointer(&v12)) + } else { + v13 = [2]float64{ + 0: a, + 1: Xcopysign(tls, b-b, b), + } + return *(*complex128)(unsafe.Pointer(&v13)) + } + } + /* + * The remaining special case (b is NaN) is handled just fine by + * the normal code path below. + */ + /* Scale to avoid overflow. */ + if Xfabs(tls, a) >= float64(7.446288774449766e+307) || Xfabs(tls, b) >= float64(7.446288774449766e+307) { + a *= float64(0.25) + b *= float64(0.25) + scale = int32(1) + } else { + scale = 0 + } + /* Algorithm 312, CACM vol 10, Oct 1967. */ + if a >= Float64FromInt32(0) { + t = Xsqrt(tls, (a+Xhypot(tls, a, b))*float64(0.5)) + v14 = [2]float64{ + 0: t, + 1: b / (Float64FromInt32(2) * t), + } + result = *(*complex128)(unsafe.Pointer(&v14)) + } else { + t = Xsqrt(tls, (-a+Xhypot(tls, a, b))*float64(0.5)) + v15 = [2]float64{ + 0: Xfabs(tls, b) / (Float64FromInt32(2) * t), + 1: Xcopysign(tls, t, b), + } + result = *(*complex128)(unsafe.Pointer(&v15)) + } + /* Rescale. */ + if scale != 0 { + result *= Complex128FromInt32(2) + } + return result +} + +/* + * gcc doesn't implement complex multiplication or division correctly, + * so we need to handle infinities specially. We turn on this pragma to + * notify conforming c99 compilers that the fast-but-incorrect code that + * gcc generates is acceptable, since the special cases have already been + * handled. + */ + +func Xcsqrtf(tls *TLS, z complex64) (r complex64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var a, b float32 + var t float64 + var v1, v12, v13, v14, v15, v4, v7 [2]float32 + var v10, v2, v5, v8 uint32 + var _ /* __u at bp+0 */ struct { + F__i [0]uint32 + F__f float32 + } + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, b, t, v1, v10, v12, v13, v14, v15, v2, v4, v5, v7, v8 + a = Float32FromComplex64(z) + b = +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)] + /* Handle special cases. */ + if z == Complex64FromInt32(0) { + v1 = [2]float32{ + 1: b, + } + return *(*complex64)(unsafe.Pointer(&v1)) + } + *(*float32)(unsafe.Pointer(bp)) = b + v2 = *(*uint32)(unsafe.Pointer(bp)) + goto _3 +_3: + if BoolInt32(v2&uint32(0x7fffffff) == uint32(0x7f800000)) != 0 { + v4 = [2]float32{ + 0: X__builtin_inff(tls), + 1: b, + } + return *(*complex64)(unsafe.Pointer(&v4)) + } + *(*float32)(unsafe.Pointer(bp)) = a + v5 = *(*uint32)(unsafe.Pointer(bp)) + goto _6 +_6: + if BoolInt32(v5&uint32(0x7fffffff) > uint32(0x7f800000)) != 0 { + t = float64((b - b) / (b - b)) /* raise invalid if b is not a NaN */ + v7 = [2]float32{ + 0: a, + 1: float32(t), + } + return *(*complex64)(unsafe.Pointer(&v7)) /* return NaN + NaN i */ + } + *(*float32)(unsafe.Pointer(bp)) = a + v8 = *(*uint32)(unsafe.Pointer(bp)) + goto _9 +_9: + if BoolInt32(v8&uint32(0x7fffffff) == uint32(0x7f800000)) != 0 { + /* + * csqrtf(inf + NaN i) = inf + NaN i + * csqrtf(inf + y i) = inf + 0 i + * csqrtf(-inf + NaN i) = NaN +- inf i + * csqrtf(-inf + y i) = 0 + inf i + */ + *(*float32)(unsafe.Pointer(bp)) = a + v10 = *(*uint32)(unsafe.Pointer(bp)) + goto _11 + _11: + if int32(v10>>Int32FromInt32(31)) != 0 { + v12 = [2]float32{ + 0: Xfabsf(tls, b-b), + 1: Xcopysignf(tls, a, b), + } + return *(*complex64)(unsafe.Pointer(&v12)) + } else { + v13 = [2]float32{ + 0: a, + 1: Xcopysignf(tls, b-b, b), + } + return *(*complex64)(unsafe.Pointer(&v13)) + } + } + /* + * The remaining special case (b is NaN) is handled just fine by + * the normal code path below. + */ + /* + * We compute t in double precision to avoid overflow and to + * provide correct rounding in nearly all cases. + * This is Algorithm 312, CACM vol 10, Oct 1967. + */ + if a >= Float32FromInt32(0) { + t = Xsqrt(tls, (float64(a)+Xhypot(tls, float64(a), float64(b)))*float64(0.5)) + v14 = [2]float32{ + 0: float32(t), + 1: float32(float64(b) / (Float64FromFloat64(2) * t)), + } + return *(*complex64)(unsafe.Pointer(&v14)) + } else { + t = Xsqrt(tls, (float64(-a)+Xhypot(tls, float64(a), float64(b)))*float64(0.5)) + v15 = [2]float32{ + 0: float32(float64(Xfabsf(tls, b)) / (Float64FromFloat64(2) * t)), + 1: Xcopysignf(tls, float32(t), b), + } + return *(*complex64)(unsafe.Pointer(&v15)) + } + return r +} + +// C documentation +// +// //FIXME +func Xcsqrtl(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Complex128FromComplex128(Xcsqrt(tls, Complex128FromComplex128(z))) +} + +/* tan(z) = -i tanh(i z) */ + +func Xctan(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1, v2 [2]float64 + _, _ = v1, v2 + v1 = [2]float64{ + 0: -+(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)], + 1: Float64FromComplex128(z), + } + z = Xctanh(tls, *(*complex128)(unsafe.Pointer(&v1))) + v2 = [2]float64{ + 0: +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)], + 1: -Float64FromComplex128(z), + } + return *(*complex128)(unsafe.Pointer(&v2)) +} + +func Xctanf(tls *TLS, z complex64) (r complex64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1, v2 [2]float32 + _, _ = v1, v2 + v1 = [2]float32{ + 0: -+(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)], + 1: Float32FromComplex64(z), + } + z = Xctanhf(tls, *(*complex64)(unsafe.Pointer(&v1))) + v2 = [2]float32{ + 0: +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)], + 1: -Float32FromComplex64(z), + } + return *(*complex64)(unsafe.Pointer(&v2)) +} + +func Xctanh(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var __u1, v3 Tuint64_t + var beta, denom, exp_mx, rho, s, t, x, y, v11, v2, v5 float64 + var hx, ix, lx Tuint32_t + var v1, v10, v12, v13, v4 [2]float64 + var v6, v8 uint64 + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = __u1, beta, denom, exp_mx, hx, ix, lx, rho, s, t, x, y, v1, v10, v11, v12, v13, v2, v3, v4, v5, v6, v8 + x = Float64FromComplex128(z) + y = +(*(*[2]float64)(unsafe.Pointer(&z)))[int32(1)] + __u1 = *(*Tuint64_t)(unsafe.Pointer(&x)) + hx = uint32(__u1 >> int32(32)) + lx = uint32(__u1) + ix = hx & uint32(0x7fffffff) + /* + * ctanh(NaN + i 0) = NaN + i 0 + * + * ctanh(NaN + i y) = NaN + i NaN for y != 0 + * + * The imaginary part has the sign of x*sin(2*y), but there's no + * special effort to get this right. + * + * ctanh(+-Inf +- i Inf) = +-1 +- 0 + * + * ctanh(+-Inf + i y) = +-1 + 0 sin(2y) for y finite + * + * The imaginary part of the sign is unspecified. This special + * case is only needed to avoid a spurious invalid exception when + * y is infinite. + */ + if ix >= uint32(0x7ff00000) { + if ix&uint32(0xfffff)|lx != 0 { /* x is NaN */ + if y == Float64FromInt32(0) { + v2 = y + } else { + v2 = x * y + } + v1 = [2]float64{ + 0: x, + 1: v2, + } + return *(*complex128)(unsafe.Pointer(&v1)) + } + v3 = uint64(hx-Uint32FromInt32(0x40000000))<>Int32FromInt32(1)) == Uint64FromUint64(0x7ff)<>Int32FromInt32(1)) < Uint64FromUint64(0x7ff)<= uint32(0x40360000) { /* x >= 22 */ + exp_mx = Xexp(tls, -Xfabs(tls, x)) + v12 = [2]float64{ + 0: Xcopysign(tls, Float64FromInt32(1), x), + 1: Float64FromInt32(4) * Xsin(tls, y) * Xcos(tls, y) * exp_mx * exp_mx, + } + return *(*complex128)(unsafe.Pointer(&v12)) + } + /* Kahan's algorithm */ + t = Xtan(tls, y) + beta = float64(1) + t*t /* = 1 / cos^2(y) */ + s = Xsinh(tls, x) + rho = Xsqrt(tls, Float64FromInt32(1)+s*s) /* = cosh(x) */ + denom = Float64FromInt32(1) + beta*s*s + v13 = [2]float64{ + 0: beta * rho * s / denom, + 1: t / denom, + } + return *(*complex128)(unsafe.Pointer(&v13)) +} + +func Xctanhf(tls *TLS, z complex64) (r complex64) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var beta, denom, exp_mx, rho, s, t, x, y, v11, v2, v5 float32 + var hx, ix, v3 Tuint32_t + var v1, v10, v12, v13, v4 [2]float32 + var v6, v8 uint32 + var _ /* __u at bp+0 */ struct { + F__i [0]uint32 + F__f float32 + } + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = beta, denom, exp_mx, hx, ix, rho, s, t, x, y, v1, v10, v11, v12, v13, v2, v3, v4, v5, v6, v8 + x = Float32FromComplex64(z) + y = +(*(*[2]float32)(unsafe.Pointer(&z)))[int32(1)] + hx = *(*Tuint32_t)(unsafe.Pointer(&x)) + ix = hx & uint32(0x7fffffff) + if ix >= uint32(0x7f800000) { + if ix&uint32(0x7fffff) != 0 { + if y == Float32FromInt32(0) { + v2 = y + } else { + v2 = x * y + } + v1 = [2]float32{ + 0: x, + 1: v2, + } + return *(*complex64)(unsafe.Pointer(&v1)) + } + v3 = hx - uint32(0x40000000) + x = *(*float32)(unsafe.Pointer(&v3)) + *(*float32)(unsafe.Pointer(bp)) = y + v6 = *(*uint32)(unsafe.Pointer(bp)) + goto _7 + _7: + if BoolInt32(v6&uint32(0x7fffffff) == uint32(0x7f800000)) != 0 { + v5 = y + } else { + v5 = Xsinf(tls, y) * Xcosf(tls, y) + } + v4 = [2]float32{ + 0: x, + 1: Xcopysignf(tls, Float32FromInt32(0), v5), + } + return *(*complex64)(unsafe.Pointer(&v4)) + } + *(*float32)(unsafe.Pointer(bp)) = y + v8 = *(*uint32)(unsafe.Pointer(bp)) + goto _9 +_9: + if !(BoolInt32(v8&Uint32FromInt32(0x7fffffff) < Uint32FromInt32(0x7f800000)) != 0) { + if ix != 0 { + v11 = y - y + } else { + v11 = x + } + v10 = [2]float32{ + 0: v11, + 1: y - y, + } + return *(*complex64)(unsafe.Pointer(&v10)) + } + if ix >= uint32(0x41300000) { /* x >= 11 */ + exp_mx = Xexpf(tls, -Xfabsf(tls, x)) + v12 = [2]float32{ + 0: Xcopysignf(tls, Float32FromInt32(1), x), + 1: Float32FromInt32(4) * Xsinf(tls, y) * Xcosf(tls, y) * exp_mx * exp_mx, + } + return *(*complex64)(unsafe.Pointer(&v12)) + } + t = Xtanf(tls, y) + beta = float32(float64(1) + float64(t*t)) + s = Xsinhf(tls, x) + rho = Xsqrtf(tls, Float32FromInt32(1)+s*s) + denom = Float32FromInt32(1) + beta*s*s + v13 = [2]float32{ + 0: beta * rho * s / denom, + 1: t / denom, + } + return *(*complex64)(unsafe.Pointer(&v13)) +} + +// C documentation +// +// //FIXME +func Xctanhl(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Complex128FromComplex128(Xctanh(tls, Complex128FromComplex128(z))) +} + +func Xctanl(tls *TLS, z complex128) (r complex128) { + if __ccgo_strace { + trc("tls=%v z=%v, (%v:)", tls, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Complex128FromComplex128(Xctan(tls, Complex128FromComplex128(z))) +} + +const BUFSIZ = 1024 +const E2BIG = 7 +const EACCES = 13 +const EADDRINUSE = 98 +const EADDRNOTAVAIL = 99 +const EADV = 68 +const EAFNOSUPPORT = 97 +const EAGAIN = 11 +const EALREADY = 114 +const EBADE = 52 +const EBADF = 9 +const EBADFD = 77 +const EBADMSG = 74 +const EBADR = 53 +const EBADRQC = 56 +const EBADSLT = 57 +const EBFONT = 59 +const EBUSY = 16 +const ECANCELED = 125 +const ECHILD = 10 +const ECHRNG = 44 +const ECOMM = 70 +const ECONNABORTED = 103 +const ECONNREFUSED = 111 +const ECONNRESET = 104 +const EDEADLK = 35 +const EDEADLOCK = 35 +const EDESTADDRREQ = 89 +const EDOM = 33 +const EDOTDOT = 73 +const EDQUOT = 122 +const EEXIST = 17 +const EFAULT = 14 +const EFBIG = 27 +const EHOSTDOWN = 112 +const EHOSTUNREACH = 113 +const EHWPOISON = 133 +const EIDRM = 43 +const EILSEQ = 84 +const EINPROGRESS = 115 +const EINTR = 4 +const EINVAL = 22 +const EIO = 5 +const EISCONN = 106 +const EISDIR = 21 +const EISNAM = 120 +const EKEYEXPIRED = 127 +const EKEYREJECTED = 129 +const EKEYREVOKED = 128 +const EL2HLT = 51 +const EL2NSYNC = 45 +const EL3HLT = 46 +const EL3RST = 47 +const ELIBACC = 79 +const ELIBBAD = 80 +const ELIBEXEC = 83 +const ELIBMAX = 82 +const ELIBSCN = 81 +const ELNRNG = 48 +const ELOOP = 40 +const EMEDIUMTYPE = 124 +const EMFILE = 24 +const EMLINK = 31 +const EMSGSIZE = 90 +const EMULTIHOP = 72 +const ENAMETOOLONG = 36 +const ENAVAIL = 119 +const ENETDOWN = 100 +const ENETRESET = 102 +const ENETUNREACH = 101 +const ENFILE = 23 +const ENOANO = 55 +const ENOBUFS = 105 +const ENOCSI = 50 +const ENODATA = 61 +const ENODEV = 19 +const ENOENT = 2 +const ENOEXEC = 8 +const ENOKEY = 126 +const ENOLCK = 37 +const ENOLINK = 67 +const ENOMEDIUM = 123 +const ENOMEM = 12 +const ENOMSG = 42 +const ENONET = 64 +const ENOPKG = 65 +const ENOPROTOOPT = 92 +const ENOSPC = 28 +const ENOSR = 63 +const ENOSTR = 60 +const ENOSYS = 38 +const ENOTBLK = 15 +const ENOTCONN = 107 +const ENOTDIR = 20 +const ENOTEMPTY = 39 +const ENOTNAM = 118 +const ENOTRECOVERABLE = 131 +const ENOTSOCK = 88 +const ENOTSUP = 95 +const ENOTTY = 25 +const ENOTUNIQ = 76 +const ENXIO = 6 +const EOPNOTSUPP = 95 +const EOVERFLOW = 75 +const EOWNERDEAD = 130 +const EPERM = 1 +const EPFNOSUPPORT = 96 +const EPIPE = 32 +const EPROTO = 71 +const EPROTONOSUPPORT = 93 +const EPROTOTYPE = 91 +const ERANGE = 34 +const EREMCHG = 78 +const EREMOTE = 66 +const EREMOTEIO = 121 +const ERESTART = 85 +const ERFKILL = 132 +const EROFS = 30 +const ESHUTDOWN = 108 +const ESOCKTNOSUPPORT = 94 +const ESPIPE = 29 +const ESRCH = 3 +const ESRMNT = 69 +const ESTALE = 116 +const ESTRPIPE = 86 +const ETIME = 62 +const ETIMEDOUT = 110 +const ETOOMANYREFS = 109 +const ETXTBSY = 26 +const EUCLEAN = 117 +const EUNATCH = 49 +const EUSERS = 87 +const EWOULDBLOCK = 11 +const EXDEV = 18 +const EXFULL = 54 +const FILENAME_MAX = 4096 +const FOPEN_MAX = 1000 +const F_LOCK = 1 +const F_OK = 0 +const F_TEST = 3 +const F_TLOCK = 2 +const F_ULOCK = 0 +const L_ctermid = 20 +const L_tmpnam = 20 +const POSIX_CLOSE_RESTART = 0 +const P_tmpdir = "/tmp" +const R_OK = 4 +const SEEK_DATA = 3 +const SEEK_HOLE = 4 +const STDERR_FILENO = 2 +const STDIN_FILENO = 0 +const STDOUT_FILENO = 1 +const TMP_MAX = 10000 +const W_OK = 2 +const X_OK = 1 +const _CS_GNU_LIBC_VERSION = 2 +const _CS_GNU_LIBPTHREAD_VERSION = 3 +const _CS_PATH = 0 +const _CS_POSIX_V5_WIDTH_RESTRICTED_ENVS = 4 +const _CS_POSIX_V6_ILP32_OFF32_CFLAGS = 1116 +const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 1117 +const _CS_POSIX_V6_ILP32_OFF32_LIBS = 1118 +const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = 1119 +const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 1120 +const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 1121 +const _CS_POSIX_V6_ILP32_OFFBIG_LIBS = 1122 +const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = 1123 +const _CS_POSIX_V6_LP64_OFF64_CFLAGS = 1124 +const _CS_POSIX_V6_LP64_OFF64_LDFLAGS = 1125 +const _CS_POSIX_V6_LP64_OFF64_LIBS = 1126 +const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS = 1127 +const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 1128 +const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 1129 +const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 1130 +const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = 1131 +const _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 1 +const _CS_POSIX_V7_ILP32_OFF32_CFLAGS = 1132 +const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 1133 +const _CS_POSIX_V7_ILP32_OFF32_LIBS = 1134 +const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS = 1135 +const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 1136 +const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 1137 +const _CS_POSIX_V7_ILP32_OFFBIG_LIBS = 1138 +const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS = 1139 +const _CS_POSIX_V7_LP64_OFF64_CFLAGS = 1140 +const _CS_POSIX_V7_LP64_OFF64_LDFLAGS = 1141 +const _CS_POSIX_V7_LP64_OFF64_LIBS = 1142 +const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS = 1143 +const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 1144 +const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 1145 +const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 1146 +const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS = 1147 +const _CS_POSIX_V7_THREADS_CFLAGS = 1150 +const _CS_POSIX_V7_THREADS_LDFLAGS = 1151 +const _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS = 5 +const _CS_V6_ENV = 1148 +const _CS_V7_ENV = 1149 +const _IOFBF = 0 +const _IOLBF = 1 +const _IONBF = 2 +const _PC_2_SYMLINKS = 20 +const _PC_ALLOC_SIZE_MIN = 18 +const _PC_ASYNC_IO = 10 +const _PC_CHOWN_RESTRICTED = 6 +const _PC_FILESIZEBITS = 13 +const _PC_LINK_MAX = 0 +const _PC_MAX_CANON = 1 +const _PC_MAX_INPUT = 2 +const _PC_NAME_MAX = 3 +const _PC_NO_TRUNC = 7 +const _PC_PATH_MAX = 4 +const _PC_PIPE_BUF = 5 +const _PC_PRIO_IO = 11 +const _PC_REC_INCR_XFER_SIZE = 14 +const _PC_REC_MAX_XFER_SIZE = 15 +const _PC_REC_MIN_XFER_SIZE = 16 +const _PC_REC_XFER_ALIGN = 17 +const _PC_SOCK_MAXBUF = 12 +const _PC_SYMLINK_MAX = 19 +const _PC_SYNC_IO = 9 +const _PC_VDISABLE = 8 +const _POSIX2_C_BIND = 200809 +const _POSIX2_VERSION = 200809 +const _POSIX_ADVISORY_INFO = 200809 +const _POSIX_ASYNCHRONOUS_IO = 200809 +const _POSIX_BARRIERS = 200809 +const _POSIX_CHOWN_RESTRICTED = 1 +const _POSIX_CLOCK_SELECTION = 200809 +const _POSIX_CPUTIME = 200809 +const _POSIX_FSYNC = 200809 +const _POSIX_IPV6 = 200809 +const _POSIX_JOB_CONTROL = 1 +const _POSIX_MAPPED_FILES = 200809 +const _POSIX_MEMLOCK = 200809 +const _POSIX_MEMLOCK_RANGE = 200809 +const _POSIX_MEMORY_PROTECTION = 200809 +const _POSIX_MESSAGE_PASSING = 200809 +const _POSIX_MONOTONIC_CLOCK = 200809 +const _POSIX_NO_TRUNC = 1 +const _POSIX_RAW_SOCKETS = 200809 +const _POSIX_READER_WRITER_LOCKS = 200809 +const _POSIX_REALTIME_SIGNALS = 200809 +const _POSIX_REGEXP = 1 +const _POSIX_SAVED_IDS = 1 +const _POSIX_SEMAPHORES = 200809 +const _POSIX_SHARED_MEMORY_OBJECTS = 200809 +const _POSIX_SHELL = 1 +const _POSIX_SPAWN = 200809 +const _POSIX_SPIN_LOCKS = 200809 +const _POSIX_THREADS = 200809 +const _POSIX_THREAD_ATTR_STACKADDR = 200809 +const _POSIX_THREAD_ATTR_STACKSIZE = 200809 +const _POSIX_THREAD_CPUTIME = 200809 +const _POSIX_THREAD_PRIORITY_SCHEDULING = 200809 +const _POSIX_THREAD_PROCESS_SHARED = 200809 +const _POSIX_THREAD_SAFE_FUNCTIONS = 200809 +const _POSIX_TIMEOUTS = 200809 +const _POSIX_TIMERS = 200809 +const _POSIX_V6_LP64_OFF64 = 1 +const _POSIX_V7_LP64_OFF64 = 1 +const _POSIX_VDISABLE = 0 +const _POSIX_VERSION = 200809 +const _SC_2_CHAR_TERM = 95 +const _SC_2_C_BIND = 47 +const _SC_2_C_DEV = 48 +const _SC_2_FORT_DEV = 49 +const _SC_2_FORT_RUN = 50 +const _SC_2_LOCALEDEF = 52 +const _SC_2_PBS = 168 +const _SC_2_PBS_ACCOUNTING = 169 +const _SC_2_PBS_CHECKPOINT = 175 +const _SC_2_PBS_LOCATE = 170 +const _SC_2_PBS_MESSAGE = 171 +const _SC_2_PBS_TRACK = 172 +const _SC_2_SW_DEV = 51 +const _SC_2_UPE = 97 +const _SC_2_VERSION = 46 +const _SC_ADVISORY_INFO = 132 +const _SC_AIO_LISTIO_MAX = 23 +const _SC_AIO_MAX = 24 +const _SC_AIO_PRIO_DELTA_MAX = 25 +const _SC_ARG_MAX = 0 +const _SC_ASYNCHRONOUS_IO = 12 +const _SC_ATEXIT_MAX = 87 +const _SC_AVPHYS_PAGES = 86 +const _SC_BARRIERS = 133 +const _SC_BC_BASE_MAX = 36 +const _SC_BC_DIM_MAX = 37 +const _SC_BC_SCALE_MAX = 38 +const _SC_BC_STRING_MAX = 39 +const _SC_CHILD_MAX = 1 +const _SC_CLK_TCK = 2 +const _SC_CLOCK_SELECTION = 137 +const _SC_COLL_WEIGHTS_MAX = 40 +const _SC_CPUTIME = 138 +const _SC_DELAYTIMER_MAX = 26 +const _SC_EXPR_NEST_MAX = 42 +const _SC_FSYNC = 15 +const _SC_GETGR_R_SIZE_MAX = 69 +const _SC_GETPW_R_SIZE_MAX = 70 +const _SC_HOST_NAME_MAX = 180 +const _SC_IOV_MAX = 60 +const _SC_IPV6 = 235 +const _SC_JOB_CONTROL = 7 +const _SC_LINE_MAX = 43 +const _SC_LOGIN_NAME_MAX = 71 +const _SC_MAPPED_FILES = 16 +const _SC_MEMLOCK = 17 +const _SC_MEMLOCK_RANGE = 18 +const _SC_MEMORY_PROTECTION = 19 +const _SC_MESSAGE_PASSING = 20 +const _SC_MINSIGSTKSZ = 249 +const _SC_MONOTONIC_CLOCK = 149 +const _SC_MQ_OPEN_MAX = 27 +const _SC_MQ_PRIO_MAX = 28 +const _SC_NGROUPS_MAX = 3 +const _SC_NPROCESSORS_CONF = 83 +const _SC_NPROCESSORS_ONLN = 84 +const _SC_NZERO = 109 +const _SC_OPEN_MAX = 4 +const _SC_PAGESIZE = 30 +const _SC_PAGE_SIZE = 30 +const _SC_PASS_MAX = 88 +const _SC_PHYS_PAGES = 85 +const _SC_PRIORITIZED_IO = 13 +const _SC_PRIORITY_SCHEDULING = 10 +const _SC_RAW_SOCKETS = 236 +const _SC_READER_WRITER_LOCKS = 153 +const _SC_REALTIME_SIGNALS = 9 +const _SC_REGEXP = 155 +const _SC_RE_DUP_MAX = 44 +const _SC_RTSIG_MAX = 31 +const _SC_SAVED_IDS = 8 +const _SC_SEMAPHORES = 21 +const _SC_SEM_NSEMS_MAX = 32 +const _SC_SEM_VALUE_MAX = 33 +const _SC_SHARED_MEMORY_OBJECTS = 22 +const _SC_SHELL = 157 +const _SC_SIGQUEUE_MAX = 34 +const _SC_SIGSTKSZ = 250 +const _SC_SPAWN = 159 +const _SC_SPIN_LOCKS = 154 +const _SC_SPORADIC_SERVER = 160 +const _SC_SS_REPL_MAX = 241 +const _SC_STREAMS = 174 +const _SC_STREAM_MAX = 5 +const _SC_SYMLOOP_MAX = 173 +const _SC_SYNCHRONIZED_IO = 14 +const _SC_THREADS = 67 +const _SC_THREAD_ATTR_STACKADDR = 77 +const _SC_THREAD_ATTR_STACKSIZE = 78 +const _SC_THREAD_CPUTIME = 139 +const _SC_THREAD_DESTRUCTOR_ITERATIONS = 73 +const _SC_THREAD_KEYS_MAX = 74 +const _SC_THREAD_PRIORITY_SCHEDULING = 79 +const _SC_THREAD_PRIO_INHERIT = 80 +const _SC_THREAD_PRIO_PROTECT = 81 +const _SC_THREAD_PROCESS_SHARED = 82 +const _SC_THREAD_ROBUST_PRIO_INHERIT = 247 +const _SC_THREAD_ROBUST_PRIO_PROTECT = 248 +const _SC_THREAD_SAFE_FUNCTIONS = 68 +const _SC_THREAD_SPORADIC_SERVER = 161 +const _SC_THREAD_STACK_MIN = 75 +const _SC_THREAD_THREADS_MAX = 76 +const _SC_TIMEOUTS = 164 +const _SC_TIMERS = 11 +const _SC_TIMER_MAX = 35 +const _SC_TRACE = 181 +const _SC_TRACE_EVENT_FILTER = 182 +const _SC_TRACE_EVENT_NAME_MAX = 242 +const _SC_TRACE_INHERIT = 183 +const _SC_TRACE_LOG = 184 +const _SC_TRACE_NAME_MAX = 243 +const _SC_TRACE_SYS_MAX = 244 +const _SC_TRACE_USER_EVENT_MAX = 245 +const _SC_TTY_NAME_MAX = 72 +const _SC_TYPED_MEMORY_OBJECTS = 165 +const _SC_TZNAME_MAX = 6 +const _SC_UIO_MAXIOV = 60 +const _SC_V6_ILP32_OFF32 = 176 +const _SC_V6_ILP32_OFFBIG = 177 +const _SC_V6_LP64_OFF64 = 178 +const _SC_V6_LPBIG_OFFBIG = 179 +const _SC_V7_ILP32_OFF32 = 237 +const _SC_V7_ILP32_OFFBIG = 238 +const _SC_V7_LP64_OFF64 = 239 +const _SC_V7_LPBIG_OFFBIG = 240 +const _SC_VERSION = 29 +const _SC_XBS5_ILP32_OFF32 = 125 +const _SC_XBS5_ILP32_OFFBIG = 126 +const _SC_XBS5_LP64_OFF64 = 127 +const _SC_XBS5_LPBIG_OFFBIG = 128 +const _SC_XOPEN_CRYPT = 92 +const _SC_XOPEN_ENH_I18N = 93 +const _SC_XOPEN_LEGACY = 129 +const _SC_XOPEN_REALTIME = 130 +const _SC_XOPEN_REALTIME_THREADS = 131 +const _SC_XOPEN_SHM = 94 +const _SC_XOPEN_STREAMS = 246 +const _SC_XOPEN_UNIX = 91 +const _SC_XOPEN_VERSION = 89 +const _SC_XOPEN_XCU_VERSION = 90 +const _SC_XOPEN_XPG2 = 98 +const _SC_XOPEN_XPG3 = 99 +const _SC_XOPEN_XPG4 = 100 +const _XOPEN_ENH_I18N = 1 +const _XOPEN_UNIX = 1 +const _XOPEN_VERSION = 700 + +type Tsize_t = uint64 + +type Tssize_t = int64 + +type Toff_t = int64 + +type Tpid_t = int32 + +type Tuid_t = uint32 + +type Tgid_t = uint32 + +type Tuseconds_t = uint32 + +type Tva_list = uintptr + +type t__isoc_va_list = uintptr + +type Tfpos_t = struct { + F__lldata [0]int64 + F__align [0]float64 + F__opaque [16]uint8 +} + +type T_G_fpos64_t = Tfpos_t + +func Xconfstr(tls *TLS, name int32, buf uintptr, len1 Tsize_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v name=%v buf=%v len1=%v, (%v:)", tls, name, buf, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var s uintptr + _ = s + s = __ccgo_ts + if !(name != 0) { + s = __ccgo_ts + 1 + } else { + if uint32(name) & ^Uint32FromUint32(4) != uint32(1) && uint32(name-int32(_CS_POSIX_V6_ILP32_OFF32_CFLAGS)) > uint32(35) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return uint64(0) + } + } + // snprintf is overkill but avoid wasting code size to implement + // this completely useless function and its truncation semantics + return uint64(Xsnprintf(tls, buf, len1, __ccgo_ts+15, VaList(bp+8, s)) + int32(1)) +} + +const ARG_MAX = 131072 +const BC_BASE_MAX = 99 +const BC_DIM_MAX = 2048 +const BC_SCALE_MAX = 99 +const BC_STRING_MAX = 1000 +const CHARCLASS_NAME_MAX = 14 +const CHAR_BIT = 8 +const CHAR_MAX = 255 +const CHAR_MIN = 0 +const COLL_WEIGHTS_MAX = 2 +const DELAYTIMER_MAX = 2147483647 +const EXPR_NEST_MAX = 32 +const FILESIZEBITS = 64 +const HOST_NAME_MAX = 255 +const INT_MAX = 2147483647 +const INT_MIN = -2147483648 +const IOV_MAX = 1024 +const LINE_MAX = 4096 +const LLONG_MAX = 9223372036854775807 +const LLONG_MIN = -9223372036854775808 +const LOGIN_NAME_MAX = 256 +const LONG_BIT = 64 +const LONG_MAX = 9223372036854775807 +const LONG_MIN = -9223372036854775808 +const MB_LEN_MAX = 4 +const MQ_PRIO_MAX = 32768 +const NAME_MAX = 255 +const NGROUPS_MAX = 32 +const NL_ARGMAX = 9 +const NL_LANGMAX = 32 +const NL_MSGMAX = 32767 +const NL_SETMAX = 255 +const NL_TEXTMAX = 2048 +const NZERO = 20 +const PATH_MAX = 4096 +const PIPE_BUF = 4096 +const PTHREAD_DESTRUCTOR_ITERATIONS = 4 +const PTHREAD_KEYS_MAX = 128 +const PTHREAD_STACK_MIN = 2048 +const RE_DUP_MAX = 255 +const SCHAR_MAX = 127 +const SCHAR_MIN = -128 +const SEEK_CUR = 1 +const SEEK_END = 2 +const SEEK_SET = 0 +const SEM_NSEMS_MAX = 256 +const SEM_VALUE_MAX = 2147483647 +const SHRT_MAX = 32767 +const SHRT_MIN = -32768 +const SSIZE_MAX = 9223372036854775807 +const SYMLOOP_MAX = 40 +const TTY_NAME_MAX = 32 +const TZNAME_MAX = 6 +const UCHAR_MAX = 255 +const UINT_MAX = 4294967295 +const ULLONG_MAX = 18446744073709551615 +const ULONG_MAX = 18446744073709551615 +const USHRT_MAX = 65535 +const WORD_BIT = 32 +const _POSIX2_BC_BASE_MAX = 99 +const _POSIX2_BC_DIM_MAX = 2048 +const _POSIX2_BC_SCALE_MAX = 99 +const _POSIX2_BC_STRING_MAX = 1000 +const _POSIX2_CHARCLASS_NAME_MAX = 14 +const _POSIX2_COLL_WEIGHTS_MAX = 2 +const _POSIX2_EXPR_NEST_MAX = 32 +const _POSIX2_LINE_MAX = 2048 +const _POSIX2_RE_DUP_MAX = 255 +const _POSIX_AIO_LISTIO_MAX = 2 +const _POSIX_AIO_MAX = 1 +const _POSIX_ARG_MAX = 4096 +const _POSIX_CHILD_MAX = 25 +const _POSIX_CLOCKRES_MIN = 20000000 +const _POSIX_DELAYTIMER_MAX = 32 +const _POSIX_HOST_NAME_MAX = 255 +const _POSIX_LINK_MAX = 8 +const _POSIX_LOGIN_NAME_MAX = 9 +const _POSIX_MAX_CANON = 255 +const _POSIX_MAX_INPUT = 255 +const _POSIX_MQ_OPEN_MAX = 8 +const _POSIX_MQ_PRIO_MAX = 32 +const _POSIX_NAME_MAX = 14 +const _POSIX_NGROUPS_MAX = 8 +const _POSIX_OPEN_MAX = 20 +const _POSIX_PATH_MAX = 256 +const _POSIX_PIPE_BUF = 512 +const _POSIX_RE_DUP_MAX = 255 +const _POSIX_RTSIG_MAX = 8 +const _POSIX_SEM_NSEMS_MAX = 256 +const _POSIX_SEM_VALUE_MAX = 32767 +const _POSIX_SIGQUEUE_MAX = 32 +const _POSIX_SSIZE_MAX = 32767 +const _POSIX_SS_REPL_MAX = 4 +const _POSIX_STREAM_MAX = 8 +const _POSIX_SYMLINK_MAX = 255 +const _POSIX_SYMLOOP_MAX = 8 +const _POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4 +const _POSIX_THREAD_KEYS_MAX = 128 +const _POSIX_THREAD_THREADS_MAX = 64 +const _POSIX_TIMER_MAX = 32 +const _POSIX_TRACE_EVENT_NAME_MAX = 30 +const _POSIX_TRACE_NAME_MAX = 8 +const _POSIX_TRACE_SYS_MAX = 8 +const _POSIX_TRACE_USER_EVENT_MAX = 32 +const _POSIX_TTY_NAME_MAX = 9 +const _POSIX_TZNAME_MAX = 6 +const _XOPEN_IOV_MAX = 16 +const _XOPEN_NAME_MAX = 255 +const _XOPEN_PATH_MAX = 1024 + +func Xfpathconf(tls *TLS, fd int32, name int32) (r int64) { + if __ccgo_strace { + trc("tls=%v fd=%v name=%v, (%v:)", tls, fd, name, origin(2)) + defer func() { trc("-> %v", r) }() + } + if uint64(name) >= Uint64FromInt64(42)/Uint64FromInt64(2) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return int64(-int32(1)) + } + return int64(_values[name]) +} + +var _values = [21]int16{ + 0: int16(_POSIX_LINK_MAX), + 1: int16(_POSIX_MAX_CANON), + 2: int16(_POSIX_MAX_INPUT), + 3: int16(NAME_MAX), + 4: int16(PATH_MAX), + 5: int16(PIPE_BUF), + 6: int16(1), + 7: int16(1), + 9: int16(1), + 10: int16(-int32(1)), + 11: int16(-int32(1)), + 12: int16(-int32(1)), + 13: int16(FILESIZEBITS), + 14: int16(4096), + 15: int16(4096), + 16: int16(4096), + 17: int16(4096), + 18: int16(4096), + 19: int16(-int32(1)), + 20: int16(1), +} + +const SI_LOAD_SHIFT = 16 + +type Tsysinfo = struct { + Fuptime uint64 + Floads [3]uint64 + Ftotalram uint64 + Ffreeram uint64 + Fsharedram uint64 + Fbufferram uint64 + Ftotalswap uint64 + Ffreeswap uint64 + Fprocs uint16 + Fpad uint16 + Ftotalhigh uint64 + Ffreehigh uint64 + Fmem_unit uint32 + F__reserved [256]uint8 +} + +func Xget_nprocs_conf(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(Xsysconf(tls, int32(_SC_NPROCESSORS_CONF))) +} + +func Xget_nprocs(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(Xsysconf(tls, int32(_SC_NPROCESSORS_ONLN))) +} + +func Xget_phys_pages(tls *TLS) (r int64) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xsysconf(tls, int32(_SC_PHYS_PAGES)) +} + +func Xget_avphys_pages(tls *TLS) (r int64) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xsysconf(tls, int32(_SC_AVPHYS_PAGES)) +} + +func Xpathconf(tls *TLS, path uintptr, name int32) (r int64) { + if __ccgo_strace { + trc("tls=%v path=%v name=%v, (%v:)", tls, path, name, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfpathconf(tls, -int32(1), name) +} + +const AT_BASE = 7 +const AT_BASE_PLATFORM = 24 +const AT_CLKTCK = 17 +const AT_DCACHEBSIZE = 19 +const AT_EGID = 14 +const AT_ENTRY = 9 +const AT_EUID = 12 +const AT_EXECFD = 2 +const AT_EXECFN = 31 +const AT_FLAGS = 8 +const AT_FPUCW = 18 +const AT_GID = 13 +const AT_HWCAP = 16 +const AT_HWCAP2 = 26 +const AT_ICACHEBSIZE = 20 +const AT_IGNORE = 1 +const AT_IGNOREPPC = 22 +const AT_L1D_CACHEGEOMETRY = 43 +const AT_L1D_CACHESHAPE = 35 +const AT_L1D_CACHESIZE = 42 +const AT_L1I_CACHEGEOMETRY = 41 +const AT_L1I_CACHESHAPE = 34 +const AT_L1I_CACHESIZE = 40 +const AT_L2_CACHEGEOMETRY = 45 +const AT_L2_CACHESHAPE = 36 +const AT_L2_CACHESIZE = 44 +const AT_L3_CACHEGEOMETRY = 47 +const AT_L3_CACHESHAPE = 37 +const AT_L3_CACHESIZE = 46 +const AT_MINSIGSTKSZ = 51 +const AT_NOTELF = 10 +const AT_NULL = 0 +const AT_PAGESZ = 6 +const AT_PHDR = 3 +const AT_PHENT = 4 +const AT_PHNUM = 5 +const AT_PLATFORM = 15 +const AT_RANDOM = 25 +const AT_SECURE = 23 +const AT_SYSINFO = 32 +const AT_SYSINFO_EHDR = 33 +const AT_UCACHEBSIZE = 21 +const AT_UID = 11 +const BUS_ADRALN = 1 +const BUS_ADRERR = 2 +const BUS_MCEERR_AO = 5 +const BUS_MCEERR_AR = 4 +const BUS_OBJERR = 3 +const CLD_CONTINUED = 6 +const CLD_DUMPED = 3 +const CLD_EXITED = 1 +const CLD_KILLED = 2 +const CLD_STOPPED = 5 +const CLD_TRAPPED = 4 +const DF_1_CONFALT = 8192 +const DF_1_DIRECT = 256 +const DF_1_DISPRELDNE = 32768 +const DF_1_DISPRELPND = 65536 +const DF_1_EDITED = 2097152 +const DF_1_ENDFILTEE = 16384 +const DF_1_GLOBAL = 2 +const DF_1_GLOBAUDIT = 16777216 +const DF_1_GROUP = 4 +const DF_1_IGNMULDEF = 262144 +const DF_1_INITFIRST = 32 +const DF_1_INTERPOSE = 1024 +const DF_1_LOADFLTR = 16 +const DF_1_NODEFLIB = 2048 +const DF_1_NODELETE = 8 +const DF_1_NODIRECT = 131072 +const DF_1_NODUMP = 4096 +const DF_1_NOHDR = 1048576 +const DF_1_NOKSYMS = 524288 +const DF_1_NOOPEN = 64 +const DF_1_NORELOC = 4194304 +const DF_1_NOW = 1 +const DF_1_ORIGIN = 128 +const DF_1_PIE = 134217728 +const DF_1_SINGLETON = 33554432 +const DF_1_STUB = 67108864 +const DF_1_SYMINTPOSE = 8388608 +const DF_1_TRANS = 512 +const DF_BIND_NOW = 8 +const DF_ORIGIN = 1 +const DF_P1_GROUPPERM = 2 +const DF_P1_LAZYLOAD = 1 +const DF_STATIC_TLS = 16 +const DF_SYMBOLIC = 2 +const DF_TEXTREL = 4 +const DTF_1_CONFEXP = 2 +const DTF_1_PARINIT = 1 +const DT_ADDRNUM = 11 +const DT_ADDRRNGHI = 1879047935 +const DT_ADDRRNGLO = 1879047680 +const DT_ALPHA_NUM = 1 +const DT_ALPHA_PLTRO = 1879048192 +const DT_AUDIT = 1879047932 +const DT_AUXILIARY = 2147483645 +const DT_BIND_NOW = 24 +const DT_CHECKSUM = 1879047672 +const DT_CONFIG = 1879047930 +const DT_DEBUG = 21 +const DT_DEPAUDIT = 1879047931 +const DT_ENCODING = 32 +const DT_EXTRANUM = 3 +const DT_FEATURE_1 = 1879047676 +const DT_FILTER = 2147483647 +const DT_FINI = 13 +const DT_FINI_ARRAY = 26 +const DT_FINI_ARRAYSZ = 28 +const DT_FLAGS = 30 +const DT_FLAGS_1 = 1879048187 +const DT_GNU_CONFLICT = 1879047928 +const DT_GNU_CONFLICTSZ = 1879047670 +const DT_GNU_HASH = 1879047925 +const DT_GNU_LIBLIST = 1879047929 +const DT_GNU_LIBLISTSZ = 1879047671 +const DT_GNU_PRELINKED = 1879047669 +const DT_HASH = 4 +const DT_HIOS = 1879044096 +const DT_HIPROC = 2147483647 +const DT_IA_64_NUM = 1 +const DT_IA_64_PLT_RESERVE = 1879048192 +const DT_INIT = 12 +const DT_INIT_ARRAY = 25 +const DT_INIT_ARRAYSZ = 27 +const DT_JMPREL = 23 +const DT_LOOS = 1610612749 +const DT_LOPROC = 1879048192 +const DT_MIPS_AUX_DYNAMIC = 1879048241 +const DT_MIPS_BASE_ADDRESS = 1879048198 +const DT_MIPS_COMPACT_SIZE = 1879048239 +const DT_MIPS_CONFLICT = 1879048200 +const DT_MIPS_CONFLICTNO = 1879048203 +const DT_MIPS_CXX_FLAGS = 1879048226 +const DT_MIPS_DELTA_CLASS = 1879048215 +const DT_MIPS_DELTA_CLASSSYM = 1879048224 +const DT_MIPS_DELTA_CLASSSYM_NO = 1879048225 +const DT_MIPS_DELTA_CLASS_NO = 1879048216 +const DT_MIPS_DELTA_INSTANCE = 1879048217 +const DT_MIPS_DELTA_INSTANCE_NO = 1879048218 +const DT_MIPS_DELTA_RELOC = 1879048219 +const DT_MIPS_DELTA_RELOC_NO = 1879048220 +const DT_MIPS_DELTA_SYM = 1879048221 +const DT_MIPS_DELTA_SYM_NO = 1879048222 +const DT_MIPS_DYNSTR_ALIGN = 1879048235 +const DT_MIPS_FLAGS = 1879048197 +const DT_MIPS_GOTSYM = 1879048211 +const DT_MIPS_GP_VALUE = 1879048240 +const DT_MIPS_HIDDEN_GOTIDX = 1879048231 +const DT_MIPS_HIPAGENO = 1879048212 +const DT_MIPS_ICHECKSUM = 1879048195 +const DT_MIPS_INTERFACE = 1879048234 +const DT_MIPS_INTERFACE_SIZE = 1879048236 +const DT_MIPS_IVERSION = 1879048196 +const DT_MIPS_LIBLIST = 1879048201 +const DT_MIPS_LIBLISTNO = 1879048208 +const DT_MIPS_LOCALPAGE_GOTIDX = 1879048229 +const DT_MIPS_LOCAL_GOTIDX = 1879048230 +const DT_MIPS_LOCAL_GOTNO = 1879048202 +const DT_MIPS_MSYM = 1879048199 +const DT_MIPS_NUM = 54 +const DT_MIPS_OPTIONS = 1879048233 +const DT_MIPS_PERF_SUFFIX = 1879048238 +const DT_MIPS_PIXIE_INIT = 1879048227 +const DT_MIPS_PLTGOT = 1879048242 +const DT_MIPS_PROTECTED_GOTIDX = 1879048232 +const DT_MIPS_RLD_MAP = 1879048214 +const DT_MIPS_RLD_MAP_REL = 1879048245 +const DT_MIPS_RLD_TEXT_RESOLVE_ADDR = 1879048237 +const DT_MIPS_RLD_VERSION = 1879048193 +const DT_MIPS_RWPLT = 1879048244 +const DT_MIPS_SYMBOL_LIB = 1879048228 +const DT_MIPS_SYMTABNO = 1879048209 +const DT_MIPS_TIME_STAMP = 1879048194 +const DT_MIPS_UNREFEXTNO = 1879048210 +const DT_MOVEENT = 1879047674 +const DT_MOVESZ = 1879047675 +const DT_MOVETAB = 1879047934 +const DT_NEEDED = 1 +const DT_NIOS2_GP = 1879048194 +const DT_NULL = 0 +const DT_NUM = 38 +const DT_PLTGOT = 3 +const DT_PLTPAD = 1879047933 +const DT_PLTPADSZ = 1879047673 +const DT_PLTREL = 20 +const DT_PLTRELSZ = 2 +const DT_POSFLAG_1 = 1879047677 +const DT_PPC64_GLINK = 1879048192 +const DT_PPC64_NUM = 4 +const DT_PPC64_OPD = 1879048193 +const DT_PPC64_OPDSZ = 1879048194 +const DT_PPC64_OPT = 1879048195 +const DT_PPC_GOT = 1879048192 +const DT_PPC_NUM = 2 +const DT_PPC_OPT = 1879048193 +const DT_PREINIT_ARRAY = 32 +const DT_PREINIT_ARRAYSZ = 33 +const DT_PROCNUM = 54 +const DT_REL = 17 +const DT_RELA = 7 +const DT_RELACOUNT = 1879048185 +const DT_RELAENT = 9 +const DT_RELASZ = 8 +const DT_RELCOUNT = 1879048186 +const DT_RELENT = 19 +const DT_RELR = 36 +const DT_RELRENT = 37 +const DT_RELRSZ = 35 +const DT_RELSZ = 18 +const DT_RPATH = 15 +const DT_RUNPATH = 29 +const DT_SONAME = 14 +const DT_SPARC_NUM = 2 +const DT_SPARC_REGISTER = 1879048193 +const DT_STRSZ = 10 +const DT_STRTAB = 5 +const DT_SYMBOLIC = 16 +const DT_SYMENT = 11 +const DT_SYMINENT = 1879047679 +const DT_SYMINFO = 1879047935 +const DT_SYMINSZ = 1879047678 +const DT_SYMTAB = 6 +const DT_SYMTAB_SHNDX = 34 +const DT_TEXTREL = 22 +const DT_TLSDESC_GOT = 1879047927 +const DT_TLSDESC_PLT = 1879047926 +const DT_VALNUM = 12 +const DT_VALRNGHI = 1879047679 +const DT_VALRNGLO = 1879047424 +const DT_VERDEF = 1879048188 +const DT_VERDEFNUM = 1879048189 +const DT_VERNEED = 1879048190 +const DT_VERNEEDNUM = 1879048191 +const DT_VERSIONTAGNUM = 16 +const DT_VERSYM = 1879048176 +const EFA_PARISC_1_0 = 523 +const EFA_PARISC_1_1 = 528 +const EFA_PARISC_2_0 = 532 +const EF_ALPHA_32BIT = 1 +const EF_ALPHA_CANRELAX = 2 +const EF_ARM_ABI_FLOAT_HARD = 1024 +const EF_ARM_ABI_FLOAT_SOFT = 512 +const EF_ARM_ALIGN8 = 64 +const EF_ARM_APCS_26 = 8 +const EF_ARM_APCS_FLOAT = 16 +const EF_ARM_BE8 = 8388608 +const EF_ARM_DYNSYMSUSESEGIDX = 8 +const EF_ARM_EABIMASK = 4278190080 +const EF_ARM_EABI_UNKNOWN = 0 +const EF_ARM_EABI_VER1 = 16777216 +const EF_ARM_EABI_VER2 = 33554432 +const EF_ARM_EABI_VER3 = 50331648 +const EF_ARM_EABI_VER4 = 67108864 +const EF_ARM_EABI_VER5 = 83886080 +const EF_ARM_HASENTRY = 2 +const EF_ARM_INTERWORK = 4 +const EF_ARM_LE8 = 4194304 +const EF_ARM_MAPSYMSFIRST = 16 +const EF_ARM_MAVERICK_FLOAT = 2048 +const EF_ARM_NEW_ABI = 128 +const EF_ARM_OLD_ABI = 256 +const EF_ARM_PIC = 32 +const EF_ARM_RELEXEC = 1 +const EF_ARM_SOFT_FLOAT = 512 +const EF_ARM_SYMSARESORTED = 4 +const EF_ARM_VFP_FLOAT = 1024 +const EF_CPU32 = 8454144 +const EF_IA_64_ABI64 = 16 +const EF_IA_64_ARCH = 4278190080 +const EF_IA_64_MASKOS = 15 +const EF_LARCH_ABI_DOUBLE_FLOAT = 3 +const EF_LARCH_ABI_MODIFIER_MASK = 7 +const EF_LARCH_ABI_SINGLE_FLOAT = 2 +const EF_LARCH_ABI_SOFT_FLOAT = 1 +const EF_LARCH_OBJABI_V1 = 64 +const EF_MIPS_64BIT_WHIRL = 16 +const EF_MIPS_ABI2 = 32 +const EF_MIPS_ABI_ON32 = 64 +const EF_MIPS_ARCH = 4026531840 +const EF_MIPS_ARCH_1 = 0 +const EF_MIPS_ARCH_2 = 268435456 +const EF_MIPS_ARCH_3 = 536870912 +const EF_MIPS_ARCH_32 = 1342177280 +const EF_MIPS_ARCH_32R2 = 1879048192 +const EF_MIPS_ARCH_4 = 805306368 +const EF_MIPS_ARCH_5 = 1073741824 +const EF_MIPS_ARCH_64 = 1610612736 +const EF_MIPS_ARCH_64R2 = 2147483648 +const EF_MIPS_CPIC = 4 +const EF_MIPS_FP64 = 512 +const EF_MIPS_NAN2008 = 1024 +const EF_MIPS_NOREORDER = 1 +const EF_MIPS_PIC = 2 +const EF_MIPS_XGOT = 8 +const EF_PARISC_ARCH = 65535 +const EF_PARISC_EXT = 131072 +const EF_PARISC_LAZYSWAP = 4194304 +const EF_PARISC_LSB = 262144 +const EF_PARISC_NO_KABP = 1048576 +const EF_PARISC_TRAPNIL = 65536 +const EF_PARISC_WIDE = 524288 +const EF_PPC64_ABI = 3 +const EF_PPC_EMB = 2147483648 +const EF_PPC_RELOCATABLE = 65536 +const EF_PPC_RELOCATABLE_LIB = 32768 +const EF_SH1 = 1 +const EF_SH2 = 2 +const EF_SH2A = 13 +const EF_SH2A_NOFPU = 19 +const EF_SH2A_SH3E = 24 +const EF_SH2A_SH3_NOFPU = 22 +const EF_SH2A_SH4 = 23 +const EF_SH2A_SH4_NOFPU = 21 +const EF_SH2E = 11 +const EF_SH3 = 3 +const EF_SH3E = 8 +const EF_SH3_DSP = 5 +const EF_SH3_NOMMU = 20 +const EF_SH4 = 9 +const EF_SH4A = 12 +const EF_SH4AL_DSP = 6 +const EF_SH4A_NOFPU = 17 +const EF_SH4_NOFPU = 16 +const EF_SH4_NOMMU_NOFPU = 18 +const EF_SH_DSP = 4 +const EF_SH_MACH_MASK = 31 +const EF_SH_UNKNOWN = 0 +const EF_SPARCV9_MM = 3 +const EF_SPARCV9_PSO = 1 +const EF_SPARCV9_RMO = 2 +const EF_SPARCV9_TSO = 0 +const EF_SPARC_32PLUS = 256 +const EF_SPARC_EXT_MASK = 16776960 +const EF_SPARC_HAL_R1 = 1024 +const EF_SPARC_LEDATA = 8388608 +const EF_SPARC_SUN_US1 = 512 +const EF_SPARC_SUN_US3 = 2048 +const EI_ABIVERSION = 8 +const EI_CLASS = 4 +const EI_DATA = 5 +const EI_MAG0 = 0 +const EI_MAG1 = 1 +const EI_MAG2 = 2 +const EI_MAG3 = 3 +const EI_NIDENT = 16 +const EI_OSABI = 7 +const EI_PAD = 9 +const EI_VERSION = 6 +const ELFCLASS32 = 1 +const ELFCLASS64 = 2 +const ELFCLASSNONE = 0 +const ELFCLASSNUM = 3 +const ELFCOMPRESS_HIOS = 1879048191 +const ELFCOMPRESS_HIPROC = 2147483647 +const ELFCOMPRESS_LOOS = 1610612736 +const ELFCOMPRESS_LOPROC = 1879048192 +const ELFCOMPRESS_ZLIB = 1 +const ELFCOMPRESS_ZSTD = 2 +const ELFDATA2LSB = 1 +const ELFDATA2MSB = 2 +const ELFDATANONE = 0 +const ELFDATANUM = 3 +const ELFMAG = "\\177ELF" +const ELFMAG0 = 127 +const ELFMAG1 = 69 +const ELFMAG2 = 76 +const ELFMAG3 = 70 +const ELFOSABI_AIX = 7 +const ELFOSABI_ARM = 97 +const ELFOSABI_FREEBSD = 9 +const ELFOSABI_GNU = 3 +const ELFOSABI_HPUX = 1 +const ELFOSABI_IRIX = 8 +const ELFOSABI_LINUX = 3 +const ELFOSABI_MODESTO = 11 +const ELFOSABI_NETBSD = 2 +const ELFOSABI_NONE = 0 +const ELFOSABI_OPENBSD = 12 +const ELFOSABI_SOLARIS = 6 +const ELFOSABI_STANDALONE = 255 +const ELFOSABI_SYSV = 0 +const ELFOSABI_TRU64 = 10 +const ELF_NOTE_ABI = 1 +const ELF_NOTE_GNU = "GNU" +const ELF_NOTE_OS_FREEBSD = 3 +const ELF_NOTE_OS_GNU = 1 +const ELF_NOTE_OS_LINUX = 0 +const ELF_NOTE_OS_SOLARIS2 = 2 +const ELF_NOTE_PAGESIZE_HINT = 1 +const ELF_NOTE_SOLARIS = "SUNW Solaris" +const EM_386 = 3 +const EM_56800EX = 200 +const EM_68HC05 = 72 +const EM_68HC08 = 71 +const EM_68HC11 = 70 +const EM_68HC12 = 53 +const EM_68HC16 = 69 +const EM_68K = 4 +const EM_78KOR = 199 +const EM_8051 = 165 +const EM_860 = 7 +const EM_88K = 5 +const EM_960 = 19 +const EM_AARCH64 = 183 +const EM_ALPHA = 36902 +const EM_ALTERA_NIOS2 = 113 +const EM_AMDGPU = 224 +const EM_ARC = 45 +const EM_ARCA = 109 +const EM_ARC_A5 = 93 +const EM_ARC_COMPACT = 93 +const EM_ARC_COMPACT2 = 195 +const EM_ARM = 40 +const EM_AVR = 83 +const EM_AVR32 = 185 +const EM_BA1 = 201 +const EM_BA2 = 202 +const EM_BLACKFIN = 106 +const EM_BPF = 247 +const EM_C166 = 116 +const EM_CDP = 215 +const EM_CE = 119 +const EM_CLOUDSHIELD = 192 +const EM_COGE = 216 +const EM_COLDFIRE = 52 +const EM_COOL = 217 +const EM_COREA_1ST = 193 +const EM_COREA_2ND = 194 +const EM_CR = 103 +const EM_CR16 = 177 +const EM_CRAYNV2 = 172 +const EM_CRIS = 76 +const EM_CRX = 114 +const EM_CSKY = 252 +const EM_CSR_KALIMBA = 219 +const EM_CUDA = 190 +const EM_CYPRESS_M8C = 161 +const EM_D10V = 85 +const EM_D30V = 86 +const EM_DSP24 = 136 +const EM_DSPIC30F = 118 +const EM_DXP = 112 +const EM_ECOG16 = 176 +const EM_ECOG1X = 168 +const EM_ECOG2 = 134 +const EM_EMX16 = 212 +const EM_EMX8 = 213 +const EM_ETPU = 178 +const EM_EXCESS = 111 +const EM_F2MC16 = 104 +const EM_FAKE_ALPHA = 41 +const EM_FIREPATH = 78 +const EM_FR20 = 37 +const EM_FR30 = 84 +const EM_FT32 = 222 +const EM_FX66 = 66 +const EM_H8S = 48 +const EM_H8_300 = 46 +const EM_H8_300H = 47 +const EM_H8_500 = 49 +const EM_HUANY = 81 +const EM_IA_64 = 50 +const EM_IP2K = 101 +const EM_JAVELIN = 77 +const EM_K10M = 181 +const EM_KM32 = 210 +const EM_KMX32 = 211 +const EM_KVARC = 214 +const EM_L10M = 180 +const EM_LATTICEMICO32 = 138 +const EM_LOONGARCH = 258 +const EM_M16C = 117 +const EM_M32 = 1 +const EM_M32C = 120 +const EM_M32R = 88 +const EM_MANIK = 171 +const EM_MAX = 102 +const EM_MAXQ30 = 169 +const EM_MCHP_PIC = 204 +const EM_MCST_ELBRUS = 175 +const EM_ME16 = 59 +const EM_METAG = 174 +const EM_MICROBLAZE = 189 +const EM_MIPS = 8 +const EM_MIPS_RS3_LE = 10 +const EM_MIPS_X = 51 +const EM_MMA = 54 +const EM_MMDSP_PLUS = 160 +const EM_MMIX = 80 +const EM_MN10200 = 90 +const EM_MN10300 = 89 +const EM_MOXIE = 223 +const EM_MSP430 = 105 +const EM_NCPU = 56 +const EM_NDR1 = 57 +const EM_NDS32 = 167 +const EM_NONE = 0 +const EM_NORC = 218 +const EM_NS32K = 97 +const EM_NUM = 259 +const EM_OPEN8 = 196 +const EM_OPENRISC = 92 +const EM_OR1K = 92 +const EM_PARISC = 15 +const EM_PCP = 55 +const EM_PDSP = 63 +const EM_PJ = 91 +const EM_PPC = 20 +const EM_PPC64 = 21 +const EM_PRISM = 82 +const EM_QDSP6 = 164 +const EM_R32C = 162 +const EM_RCE = 39 +const EM_RH32 = 38 +const EM_RISCV = 243 +const EM_RL78 = 197 +const EM_RS08 = 132 +const EM_RX = 173 +const EM_S370 = 9 +const EM_S390 = 22 +const EM_SCORE7 = 135 +const EM_SEP = 108 +const EM_SE_C17 = 139 +const EM_SE_C33 = 107 +const EM_SH = 42 +const EM_SHARC = 133 +const EM_SLE9X = 179 +const EM_SNP1K = 99 +const EM_SPARC = 2 +const EM_SPARC32PLUS = 18 +const EM_SPARCV9 = 43 +const EM_ST100 = 60 +const EM_ST19 = 74 +const EM_ST200 = 100 +const EM_ST7 = 68 +const EM_ST9PLUS = 67 +const EM_STARCORE = 58 +const EM_STM8 = 186 +const EM_STXP7X = 166 +const EM_SVX = 73 +const EM_TILE64 = 187 +const EM_TILEGX = 191 +const EM_TILEPRO = 188 +const EM_TINYJ = 61 +const EM_TI_ARP32 = 143 +const EM_TI_C2000 = 141 +const EM_TI_C5500 = 142 +const EM_TI_C6000 = 140 +const EM_TI_PRU = 144 +const EM_TMM_GPP = 96 +const EM_TPC = 98 +const EM_TRICORE = 44 +const EM_TRIMEDIA = 163 +const EM_TSK3000 = 131 +const EM_UNICORE = 110 +const EM_V800 = 36 +const EM_V850 = 87 +const EM_VAX = 75 +const EM_VIDEOCORE = 95 +const EM_VIDEOCORE3 = 137 +const EM_VIDEOCORE5 = 198 +const EM_VISIUM = 221 +const EM_VPP500 = 17 +const EM_X86_64 = 62 +const EM_XCORE = 203 +const EM_XGATE = 115 +const EM_XIMO16 = 170 +const EM_XTENSA = 94 +const EM_Z80 = 220 +const EM_ZSP = 79 +const ET_CORE = 4 +const ET_DYN = 3 +const ET_EXEC = 2 +const ET_HIOS = 65279 +const ET_HIPROC = 65535 +const ET_LOOS = 65024 +const ET_LOPROC = 65280 +const ET_NONE = 0 +const ET_NUM = 5 +const ET_REL = 1 +const EV_CURRENT = 1 +const EV_NONE = 0 +const EV_NUM = 2 +const EXIT_FAILURE = 1 +const EXIT_SUCCESS = 0 +const E_MIPS_ARCH_1 = 0 +const E_MIPS_ARCH_2 = 268435456 +const E_MIPS_ARCH_3 = 536870912 +const E_MIPS_ARCH_32 = 1342177280 +const E_MIPS_ARCH_4 = 805306368 +const E_MIPS_ARCH_5 = 1073741824 +const E_MIPS_ARCH_64 = 1610612736 +const FD_SETSIZE = 1024 +const FPE_FLTDIV = 3 +const FPE_FLTINV = 7 +const FPE_FLTOVF = 4 +const FPE_FLTRES = 6 +const FPE_FLTSUB = 8 +const FPE_FLTUND = 5 +const FPE_INTDIV = 1 +const FPE_INTOVF = 2 +const GRP_COMDAT = 1 +const HWCAP2_BF16 = 16384 +const HWCAP2_BTI = 131072 +const HWCAP2_DCPODP = 1 +const HWCAP2_DGH = 32768 +const HWCAP2_FLAGM2 = 128 +const HWCAP2_FRINT = 256 +const HWCAP2_I8MM = 8192 +const HWCAP2_MTE = 262144 +const HWCAP2_RNG = 65536 +const HWCAP2_SVE2 = 2 +const HWCAP2_SVEAES = 4 +const HWCAP2_SVEBF16 = 4096 +const HWCAP2_SVEBITPERM = 16 +const HWCAP2_SVEF32MM = 1024 +const HWCAP2_SVEF64MM = 2048 +const HWCAP2_SVEI8MM = 512 +const HWCAP2_SVEPMULL = 8 +const HWCAP2_SVESHA3 = 32 +const HWCAP2_SVESM4 = 64 +const HWCAP_AES = 8 +const HWCAP_ASIMD = 2 +const HWCAP_ASIMDDP = 1048576 +const HWCAP_ASIMDFHM = 8388608 +const HWCAP_ASIMDHP = 1024 +const HWCAP_ASIMDRDM = 4096 +const HWCAP_ATOMICS = 256 +const HWCAP_CPUID = 2048 +const HWCAP_CRC32 = 128 +const HWCAP_DCPOP = 65536 +const HWCAP_DIT = 16777216 +const HWCAP_EVTSTRM = 4 +const HWCAP_FCMA = 16384 +const HWCAP_FLAGM = 134217728 +const HWCAP_FP = 1 +const HWCAP_FPHP = 512 +const HWCAP_ILRCPC = 67108864 +const HWCAP_JSCVT = 8192 +const HWCAP_LRCPC = 32768 +const HWCAP_PACA = 1073741824 +const HWCAP_PACG = 2147483648 +const HWCAP_PMULL = 16 +const HWCAP_SB = 536870912 +const HWCAP_SHA1 = 32 +const HWCAP_SHA2 = 64 +const HWCAP_SHA3 = 131072 +const HWCAP_SHA512 = 2097152 +const HWCAP_SM3 = 262144 +const HWCAP_SM4 = 524288 +const HWCAP_SSBS = 268435456 +const HWCAP_SVE = 4194304 +const HWCAP_USCAT = 33554432 +const ILL_BADSTK = 8 +const ILL_COPROC = 7 +const ILL_ILLADR = 3 +const ILL_ILLOPC = 1 +const ILL_ILLOPN = 2 +const ILL_ILLTRP = 4 +const ILL_PRVOPC = 5 +const ILL_PRVREG = 6 +const IPC_64 = 0 +const ITIMER_PROF = 2 +const ITIMER_REAL = 0 +const ITIMER_VIRTUAL = 1 +const JT_ARG_MAX = -254 +const JT_AVPHYS_PAGES = -247 +const JT_DELAYTIMER_MAX = -245 +const JT_MINSIGSTKSZ = -244 +const JT_MQ_PRIO_MAX = -253 +const JT_NPROCESSORS_CONF = -250 +const JT_NPROCESSORS_ONLN = -249 +const JT_PAGE_SIZE = -252 +const JT_PHYS_PAGES = -248 +const JT_SEM_VALUE_MAX = -251 +const JT_SIGSTKSZ = -243 +const JT_ZERO = -246 +const LITUSE_ALPHA_ADDR = 0 +const LITUSE_ALPHA_BASE = 1 +const LITUSE_ALPHA_BYTOFF = 2 +const LITUSE_ALPHA_JSR = 3 +const LITUSE_ALPHA_TLS_GD = 4 +const LITUSE_ALPHA_TLS_LDM = 5 +const LL_DELAY_LOAD = 16 +const LL_DELTA = 32 +const LL_EXACT_MATCH = 1 +const LL_EXPORTS = 8 +const LL_IGNORE_INT_VER = 2 +const LL_NONE = 0 +const LL_REQUIRE_MINOR = 4 +const MB_CUR_MAX = 0 +const MINSIGSTKSZ = 6144 +const MIPS_AFL_ASE_DSP = 1 +const MIPS_AFL_ASE_DSPR2 = 2 +const MIPS_AFL_ASE_EVA = 4 +const MIPS_AFL_ASE_MASK = 8191 +const MIPS_AFL_ASE_MCU = 8 +const MIPS_AFL_ASE_MDMX = 16 +const MIPS_AFL_ASE_MICROMIPS = 2048 +const MIPS_AFL_ASE_MIPS16 = 1024 +const MIPS_AFL_ASE_MIPS3D = 32 +const MIPS_AFL_ASE_MSA = 512 +const MIPS_AFL_ASE_MT = 64 +const MIPS_AFL_ASE_SMARTMIPS = 128 +const MIPS_AFL_ASE_VIRT = 256 +const MIPS_AFL_ASE_XPA = 4096 +const MIPS_AFL_EXT_10000 = 11 +const MIPS_AFL_EXT_3900 = 10 +const MIPS_AFL_EXT_4010 = 8 +const MIPS_AFL_EXT_4100 = 9 +const MIPS_AFL_EXT_4111 = 13 +const MIPS_AFL_EXT_4120 = 14 +const MIPS_AFL_EXT_4650 = 7 +const MIPS_AFL_EXT_5400 = 15 +const MIPS_AFL_EXT_5500 = 16 +const MIPS_AFL_EXT_5900 = 6 +const MIPS_AFL_EXT_LOONGSON_2E = 17 +const MIPS_AFL_EXT_LOONGSON_2F = 18 +const MIPS_AFL_EXT_LOONGSON_3A = 4 +const MIPS_AFL_EXT_OCTEON = 5 +const MIPS_AFL_EXT_OCTEON2 = 2 +const MIPS_AFL_EXT_OCTEONP = 3 +const MIPS_AFL_EXT_SB1 = 12 +const MIPS_AFL_EXT_XLR = 1 +const MIPS_AFL_FLAGS1_ODDSPREG = 1 +const MIPS_AFL_REG_128 = 3 +const MIPS_AFL_REG_32 = 1 +const MIPS_AFL_REG_64 = 2 +const MIPS_AFL_REG_NONE = 0 +const NT_386_IOPERM = 513 +const NT_386_TLS = 512 +const NT_ARC_V2 = 1536 +const NT_ARM_HW_BREAK = 1026 +const NT_ARM_HW_WATCH = 1027 +const NT_ARM_PACA_KEYS = 1031 +const NT_ARM_PACG_KEYS = 1032 +const NT_ARM_PAC_ENABLED_KEYS = 1034 +const NT_ARM_PAC_MASK = 1030 +const NT_ARM_SVE = 1029 +const NT_ARM_SYSTEM_CALL = 1028 +const NT_ARM_TAGGED_ADDR_CTRL = 1033 +const NT_ARM_TLS = 1025 +const NT_ARM_VFP = 1024 +const NT_ASRS = 8 +const NT_AUXV = 6 +const NT_FILE = 1179208773 +const NT_FPREGSET = 2 +const NT_GNU_ABI_TAG = 1 +const NT_GNU_BUILD_ID = 3 +const NT_GNU_GOLD_VERSION = 4 +const NT_GNU_PROPERTY_TYPE_0 = 5 +const NT_GWINDOWS = 7 +const NT_LOONGARCH_CPUCFG = 2560 +const NT_LOONGARCH_CSR = 2561 +const NT_LOONGARCH_LASX = 2563 +const NT_LOONGARCH_LBT = 2564 +const NT_LOONGARCH_LSX = 2562 +const NT_LWPSINFO = 17 +const NT_LWPSTATUS = 16 +const NT_METAG_CBUF = 1280 +const NT_METAG_RPIPE = 1281 +const NT_METAG_TLS = 1282 +const NT_MIPS_DSP = 2048 +const NT_MIPS_FP_MODE = 2049 +const NT_MIPS_MSA = 2050 +const NT_PLATFORM = 5 +const NT_PPC_DSCR = 261 +const NT_PPC_EBB = 262 +const NT_PPC_PMU = 263 +const NT_PPC_PPR = 260 +const NT_PPC_SPE = 257 +const NT_PPC_TAR = 259 +const NT_PPC_TM_CDSCR = 271 +const NT_PPC_TM_CFPR = 265 +const NT_PPC_TM_CGPR = 264 +const NT_PPC_TM_CPPR = 270 +const NT_PPC_TM_CTAR = 269 +const NT_PPC_TM_CVMX = 266 +const NT_PPC_TM_CVSX = 267 +const NT_PPC_TM_SPR = 268 +const NT_PPC_VMX = 256 +const NT_PPC_VSX = 258 +const NT_PRCRED = 14 +const NT_PRFPREG = 2 +const NT_PRFPXREG = 20 +const NT_PRPSINFO = 3 +const NT_PRSTATUS = 1 +const NT_PRXFPREG = 1189489535 +const NT_PRXREG = 4 +const NT_PSINFO = 13 +const NT_PSTATUS = 10 +const NT_RISCV_CSR = 2304 +const NT_RISCV_VECTOR = 2305 +const NT_S390_CTRS = 772 +const NT_S390_GS_BC = 780 +const NT_S390_GS_CB = 779 +const NT_S390_HIGH_GPRS = 768 +const NT_S390_LAST_BREAK = 774 +const NT_S390_PREFIX = 773 +const NT_S390_RI_CB = 781 +const NT_S390_SYSTEM_CALL = 775 +const NT_S390_TDB = 776 +const NT_S390_TIMER = 769 +const NT_S390_TODCMP = 770 +const NT_S390_TODPREG = 771 +const NT_S390_VXRS_HIGH = 778 +const NT_S390_VXRS_LOW = 777 +const NT_SIGINFO = 1397311305 +const NT_TASKSTRUCT = 4 +const NT_UTSNAME = 15 +const NT_VERSION = 1 +const NT_VMCOREDD = 1792 +const NT_X86_XSTATE = 514 +const ODK_EXCEPTIONS = 2 +const ODK_FILL = 5 +const ODK_HWAND = 7 +const ODK_HWOR = 8 +const ODK_HWPATCH = 4 +const ODK_NULL = 0 +const ODK_PAD = 3 +const ODK_REGINFO = 1 +const ODK_TAGS = 6 +const OEX_DISMISS = 524288 +const OEX_FPDBUG = 262144 +const OEX_FPU_DIV0 = 8 +const OEX_FPU_INEX = 1 +const OEX_FPU_INVAL = 16 +const OEX_FPU_MAX = 7936 +const OEX_FPU_MIN = 31 +const OEX_FPU_OFLO = 4 +const OEX_FPU_UFLO = 2 +const OEX_PAGE0 = 65536 +const OEX_PRECISEFP = 262144 +const OEX_SMM = 131072 +const OHWA0_R4KEOP_CHECKED = 1 +const OHWA1_R4KEOP_CLEAN = 2 +const OHW_R4KEOP = 1 +const OHW_R5KCVTL = 8 +const OHW_R5KEOP = 4 +const OHW_R8KPFETCH = 2 +const OPAD_POSTFIX = 2 +const OPAD_PREFIX = 1 +const OPAD_SYMBOL = 4 +const PF_ARM_ABS = 1073741824 +const PF_ARM_PI = 536870912 +const PF_ARM_SB = 268435456 +const PF_HP_CODE = 16777216 +const PF_HP_FAR_SHARED = 2097152 +const PF_HP_LAZYSWAP = 67108864 +const PF_HP_MODIFY = 33554432 +const PF_HP_NEAR_SHARED = 4194304 +const PF_HP_PAGE_SIZE = 1048576 +const PF_HP_SBP = 134217728 +const PF_IA_64_NORECOV = 2147483648 +const PF_MASKOS = 267386880 +const PF_MASKPROC = 4026531840 +const PF_MIPS_LOCAL = 268435456 +const PF_PARISC_SBP = 134217728 +const PF_R = 4 +const PF_W = 2 +const PF_X = 1 +const PN_XNUM = 65535 +const POLL_ERR = 4 +const POLL_HUP = 6 +const POLL_IN = 1 +const POLL_MSG = 3 +const POLL_OUT = 2 +const POLL_PRI = 5 +const PPC64_OPT_LOCALENTRY = 4 +const PPC64_OPT_MULTI_TOC = 2 +const PPC64_OPT_TLS = 1 +const PPC_OPT_TLS = 1 +const PRIO_MAX = 20 +const PRIO_MIN = -20 +const PRIO_PGRP = 1 +const PRIO_PROCESS = 0 +const PRIO_USER = 2 +const PT_ARM_EXIDX = 1879048193 +const PT_DYNAMIC = 2 +const PT_GNU_EH_FRAME = 1685382480 +const PT_GNU_PROPERTY = 1685382483 +const PT_GNU_RELRO = 1685382482 +const PT_GNU_STACK = 1685382481 +const PT_HIOS = 1879048191 +const PT_HIPROC = 2147483647 +const PT_HISUNW = 1879048191 +const PT_HP_CORE_COMM = 1610612740 +const PT_HP_CORE_KERNEL = 1610612739 +const PT_HP_CORE_LOADABLE = 1610612742 +const PT_HP_CORE_MMF = 1610612745 +const PT_HP_CORE_NONE = 1610612737 +const PT_HP_CORE_PROC = 1610612741 +const PT_HP_CORE_SHM = 1610612744 +const PT_HP_CORE_STACK = 1610612743 +const PT_HP_CORE_VERSION = 1610612738 +const PT_HP_FASTBIND = 1610612753 +const PT_HP_HSL_ANNOT = 1610612755 +const PT_HP_OPT_ANNOT = 1610612754 +const PT_HP_PARALLEL = 1610612752 +const PT_HP_STACK = 1610612756 +const PT_HP_TLS = 1610612736 +const PT_IA_64_ARCHEXT = 1879048192 +const PT_IA_64_HP_HSL_ANOT = 1610612755 +const PT_IA_64_HP_OPT_ANOT = 1610612754 +const PT_IA_64_HP_STACK = 1610612756 +const PT_IA_64_UNWIND = 1879048193 +const PT_INTERP = 3 +const PT_LOAD = 1 +const PT_LOOS = 1610612736 +const PT_LOPROC = 1879048192 +const PT_LOSUNW = 1879048186 +const PT_MIPS_ABIFLAGS = 1879048195 +const PT_MIPS_OPTIONS = 1879048194 +const PT_MIPS_REGINFO = 1879048192 +const PT_MIPS_RTPROC = 1879048193 +const PT_NOTE = 4 +const PT_NULL = 0 +const PT_NUM = 8 +const PT_PARISC_ARCHEXT = 1879048192 +const PT_PARISC_UNWIND = 1879048193 +const PT_PHDR = 6 +const PT_SHLIB = 5 +const PT_SUNWBSS = 1879048186 +const PT_SUNWSTACK = 1879048187 +const PT_TLS = 7 +const RAND_MAX = 2147483647 +const RHF_CORD = 4096 +const RHF_DEFAULT_DELAY_LOAD = 512 +const RHF_DELTA_C_PLUS_PLUS = 64 +const RHF_GUARANTEE_INIT = 32 +const RHF_GUARANTEE_START_INIT = 128 +const RHF_NONE = 0 +const RHF_NOTPOT = 2 +const RHF_NO_LIBRARY_REPLACEMENT = 4 +const RHF_NO_MOVE = 8 +const RHF_NO_UNRES_UNDEF = 8192 +const RHF_PIXIE = 256 +const RHF_QUICKSTART = 1 +const RHF_REQUICKSTART = 1024 +const RHF_REQUICKSTARTED = 2048 +const RHF_RLD_ORDER_SAFE = 16384 +const RHF_SGI_ONLY = 16 +const RLIMIT_AS = 9 +const RLIMIT_CORE = 4 +const RLIMIT_CPU = 0 +const RLIMIT_DATA = 2 +const RLIMIT_FSIZE = 1 +const RLIMIT_LOCKS = 10 +const RLIMIT_MEMLOCK = 8 +const RLIMIT_MSGQUEUE = 12 +const RLIMIT_NICE = 13 +const RLIMIT_NLIMITS = 16 +const RLIMIT_NOFILE = 7 +const RLIMIT_NPROC = 6 +const RLIMIT_RSS = 5 +const RLIMIT_RTPRIO = 14 +const RLIMIT_RTTIME = 15 +const RLIMIT_SIGPENDING = 11 +const RLIMIT_STACK = 3 +const RLIM_INFINITY = 18446744073709551615 +const RLIM_NLIMITS = 16 +const RLIM_SAVED_CUR = 18446744073709551615 +const RLIM_SAVED_MAX = 18446744073709551615 +const RUSAGE_CHILDREN = -1 +const RUSAGE_SELF = 0 +const RUSAGE_THREAD = 1 +const R_386_16 = 20 +const R_386_32 = 1 +const R_386_32PLT = 11 +const R_386_8 = 22 +const R_386_COPY = 5 +const R_386_GLOB_DAT = 6 +const R_386_GOT32 = 3 +const R_386_GOT32X = 43 +const R_386_GOTOFF = 9 +const R_386_GOTPC = 10 +const R_386_IRELATIVE = 42 +const R_386_JMP_SLOT = 7 +const R_386_NONE = 0 +const R_386_NUM = 44 +const R_386_PC16 = 21 +const R_386_PC32 = 2 +const R_386_PC8 = 23 +const R_386_PLT32 = 4 +const R_386_RELATIVE = 8 +const R_386_SIZE32 = 38 +const R_386_TLS_DESC = 41 +const R_386_TLS_DESC_CALL = 40 +const R_386_TLS_DTPMOD32 = 35 +const R_386_TLS_DTPOFF32 = 36 +const R_386_TLS_GD = 18 +const R_386_TLS_GD_32 = 24 +const R_386_TLS_GD_CALL = 26 +const R_386_TLS_GD_POP = 27 +const R_386_TLS_GD_PUSH = 25 +const R_386_TLS_GOTDESC = 39 +const R_386_TLS_GOTIE = 16 +const R_386_TLS_IE = 15 +const R_386_TLS_IE_32 = 33 +const R_386_TLS_LDM = 19 +const R_386_TLS_LDM_32 = 28 +const R_386_TLS_LDM_CALL = 30 +const R_386_TLS_LDM_POP = 31 +const R_386_TLS_LDM_PUSH = 29 +const R_386_TLS_LDO_32 = 32 +const R_386_TLS_LE = 17 +const R_386_TLS_LE_32 = 34 +const R_386_TLS_TPOFF = 14 +const R_386_TLS_TPOFF32 = 37 +const R_390_12 = 2 +const R_390_16 = 3 +const R_390_20 = 57 +const R_390_32 = 4 +const R_390_64 = 22 +const R_390_8 = 1 +const R_390_COPY = 9 +const R_390_GLOB_DAT = 10 +const R_390_GOT12 = 6 +const R_390_GOT16 = 15 +const R_390_GOT20 = 58 +const R_390_GOT32 = 7 +const R_390_GOT64 = 24 +const R_390_GOTENT = 26 +const R_390_GOTOFF16 = 27 +const R_390_GOTOFF32 = 13 +const R_390_GOTOFF64 = 28 +const R_390_GOTPC = 14 +const R_390_GOTPCDBL = 21 +const R_390_GOTPLT12 = 29 +const R_390_GOTPLT16 = 30 +const R_390_GOTPLT20 = 59 +const R_390_GOTPLT32 = 31 +const R_390_GOTPLT64 = 32 +const R_390_GOTPLTENT = 33 +const R_390_JMP_SLOT = 11 +const R_390_NONE = 0 +const R_390_NUM = 61 +const R_390_PC16 = 16 +const R_390_PC16DBL = 17 +const R_390_PC32 = 5 +const R_390_PC32DBL = 19 +const R_390_PC64 = 23 +const R_390_PLT16DBL = 18 +const R_390_PLT32 = 8 +const R_390_PLT32DBL = 20 +const R_390_PLT64 = 25 +const R_390_PLTOFF16 = 34 +const R_390_PLTOFF32 = 35 +const R_390_PLTOFF64 = 36 +const R_390_RELATIVE = 12 +const R_390_TLS_DTPMOD = 54 +const R_390_TLS_DTPOFF = 55 +const R_390_TLS_GD32 = 40 +const R_390_TLS_GD64 = 41 +const R_390_TLS_GDCALL = 38 +const R_390_TLS_GOTIE12 = 42 +const R_390_TLS_GOTIE20 = 60 +const R_390_TLS_GOTIE32 = 43 +const R_390_TLS_GOTIE64 = 44 +const R_390_TLS_IE32 = 47 +const R_390_TLS_IE64 = 48 +const R_390_TLS_IEENT = 49 +const R_390_TLS_LDCALL = 39 +const R_390_TLS_LDM32 = 45 +const R_390_TLS_LDM64 = 46 +const R_390_TLS_LDO32 = 52 +const R_390_TLS_LDO64 = 53 +const R_390_TLS_LE32 = 50 +const R_390_TLS_LE64 = 51 +const R_390_TLS_LOAD = 37 +const R_390_TLS_TPOFF = 56 +const R_68K_16 = 2 +const R_68K_32 = 1 +const R_68K_8 = 3 +const R_68K_COPY = 19 +const R_68K_GLOB_DAT = 20 +const R_68K_GOT16 = 8 +const R_68K_GOT16O = 11 +const R_68K_GOT32 = 7 +const R_68K_GOT32O = 10 +const R_68K_GOT8 = 9 +const R_68K_GOT8O = 12 +const R_68K_JMP_SLOT = 21 +const R_68K_NONE = 0 +const R_68K_NUM = 43 +const R_68K_PC16 = 5 +const R_68K_PC32 = 4 +const R_68K_PC8 = 6 +const R_68K_PLT16 = 14 +const R_68K_PLT16O = 17 +const R_68K_PLT32 = 13 +const R_68K_PLT32O = 16 +const R_68K_PLT8 = 15 +const R_68K_PLT8O = 18 +const R_68K_RELATIVE = 22 +const R_68K_TLS_DTPMOD32 = 40 +const R_68K_TLS_DTPREL32 = 41 +const R_68K_TLS_GD16 = 26 +const R_68K_TLS_GD32 = 25 +const R_68K_TLS_GD8 = 27 +const R_68K_TLS_IE16 = 35 +const R_68K_TLS_IE32 = 34 +const R_68K_TLS_IE8 = 36 +const R_68K_TLS_LDM16 = 29 +const R_68K_TLS_LDM32 = 28 +const R_68K_TLS_LDM8 = 30 +const R_68K_TLS_LDO16 = 32 +const R_68K_TLS_LDO32 = 31 +const R_68K_TLS_LDO8 = 33 +const R_68K_TLS_LE16 = 38 +const R_68K_TLS_LE32 = 37 +const R_68K_TLS_LE8 = 39 +const R_68K_TLS_TPREL32 = 42 +const R_AARCH64_ABS16 = 259 +const R_AARCH64_ABS32 = 258 +const R_AARCH64_ABS64 = 257 +const R_AARCH64_ADD_ABS_LO12_NC = 277 +const R_AARCH64_ADR_GOT_PAGE = 311 +const R_AARCH64_ADR_PREL_LO21 = 274 +const R_AARCH64_ADR_PREL_PG_HI21 = 275 +const R_AARCH64_ADR_PREL_PG_HI21_NC = 276 +const R_AARCH64_CALL26 = 283 +const R_AARCH64_CONDBR19 = 280 +const R_AARCH64_COPY = 1024 +const R_AARCH64_GLOB_DAT = 1025 +const R_AARCH64_GOTREL32 = 308 +const R_AARCH64_GOTREL64 = 307 +const R_AARCH64_GOT_LD_PREL19 = 309 +const R_AARCH64_JUMP26 = 282 +const R_AARCH64_JUMP_SLOT = 1026 +const R_AARCH64_LD64_GOTOFF_LO15 = 310 +const R_AARCH64_LD64_GOTPAGE_LO15 = 313 +const R_AARCH64_LD64_GOT_LO12_NC = 312 +const R_AARCH64_LDST128_ABS_LO12_NC = 299 +const R_AARCH64_LDST16_ABS_LO12_NC = 284 +const R_AARCH64_LDST32_ABS_LO12_NC = 285 +const R_AARCH64_LDST64_ABS_LO12_NC = 286 +const R_AARCH64_LDST8_ABS_LO12_NC = 278 +const R_AARCH64_LD_PREL_LO19 = 273 +const R_AARCH64_MOVW_GOTOFF_G0 = 300 +const R_AARCH64_MOVW_GOTOFF_G0_NC = 301 +const R_AARCH64_MOVW_GOTOFF_G1 = 302 +const R_AARCH64_MOVW_GOTOFF_G1_NC = 303 +const R_AARCH64_MOVW_GOTOFF_G2 = 304 +const R_AARCH64_MOVW_GOTOFF_G2_NC = 305 +const R_AARCH64_MOVW_GOTOFF_G3 = 306 +const R_AARCH64_MOVW_PREL_G0 = 287 +const R_AARCH64_MOVW_PREL_G0_NC = 288 +const R_AARCH64_MOVW_PREL_G1 = 289 +const R_AARCH64_MOVW_PREL_G1_NC = 290 +const R_AARCH64_MOVW_PREL_G2 = 291 +const R_AARCH64_MOVW_PREL_G2_NC = 292 +const R_AARCH64_MOVW_PREL_G3 = 293 +const R_AARCH64_MOVW_SABS_G0 = 270 +const R_AARCH64_MOVW_SABS_G1 = 271 +const R_AARCH64_MOVW_SABS_G2 = 272 +const R_AARCH64_MOVW_UABS_G0 = 263 +const R_AARCH64_MOVW_UABS_G0_NC = 264 +const R_AARCH64_MOVW_UABS_G1 = 265 +const R_AARCH64_MOVW_UABS_G1_NC = 266 +const R_AARCH64_MOVW_UABS_G2 = 267 +const R_AARCH64_MOVW_UABS_G2_NC = 268 +const R_AARCH64_MOVW_UABS_G3 = 269 +const R_AARCH64_NONE = 0 +const R_AARCH64_P32_ABS32 = 1 +const R_AARCH64_P32_COPY = 180 +const R_AARCH64_P32_GLOB_DAT = 181 +const R_AARCH64_P32_IRELATIVE = 188 +const R_AARCH64_P32_JUMP_SLOT = 182 +const R_AARCH64_P32_RELATIVE = 183 +const R_AARCH64_P32_TLSDESC = 187 +const R_AARCH64_P32_TLS_DTPMOD = 184 +const R_AARCH64_P32_TLS_DTPREL = 185 +const R_AARCH64_P32_TLS_TPREL = 186 +const R_AARCH64_PREL16 = 262 +const R_AARCH64_PREL32 = 261 +const R_AARCH64_PREL64 = 260 +const R_AARCH64_RELATIVE = 1027 +const R_AARCH64_TLSDESC = 1031 +const R_AARCH64_TLSDESC_ADD = 568 +const R_AARCH64_TLSDESC_ADD_LO12 = 564 +const R_AARCH64_TLSDESC_ADR_PAGE21 = 562 +const R_AARCH64_TLSDESC_ADR_PREL21 = 561 +const R_AARCH64_TLSDESC_CALL = 569 +const R_AARCH64_TLSDESC_LD64_LO12 = 563 +const R_AARCH64_TLSDESC_LDR = 567 +const R_AARCH64_TLSDESC_LD_PREL19 = 560 +const R_AARCH64_TLSDESC_OFF_G0_NC = 566 +const R_AARCH64_TLSDESC_OFF_G1 = 565 +const R_AARCH64_TLSGD_ADD_LO12_NC = 514 +const R_AARCH64_TLSGD_ADR_PAGE21 = 513 +const R_AARCH64_TLSGD_ADR_PREL21 = 512 +const R_AARCH64_TLSGD_MOVW_G0_NC = 516 +const R_AARCH64_TLSGD_MOVW_G1 = 515 +const R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 = 541 +const R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC = 542 +const R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 = 543 +const R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC = 540 +const R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 = 539 +const R_AARCH64_TLSLD_ADD_DTPREL_HI12 = 528 +const R_AARCH64_TLSLD_ADD_DTPREL_LO12 = 529 +const R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC = 530 +const R_AARCH64_TLSLD_ADD_LO12_NC = 519 +const R_AARCH64_TLSLD_ADR_PAGE21 = 518 +const R_AARCH64_TLSLD_ADR_PREL21 = 517 +const R_AARCH64_TLSLD_LDST128_DTPREL_LO12 = 572 +const R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC = 573 +const R_AARCH64_TLSLD_LDST16_DTPREL_LO12 = 533 +const R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC = 534 +const R_AARCH64_TLSLD_LDST32_DTPREL_LO12 = 535 +const R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC = 536 +const R_AARCH64_TLSLD_LDST64_DTPREL_LO12 = 537 +const R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC = 538 +const R_AARCH64_TLSLD_LDST8_DTPREL_LO12 = 531 +const R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC = 532 +const R_AARCH64_TLSLD_LD_PREL19 = 522 +const R_AARCH64_TLSLD_MOVW_DTPREL_G0 = 526 +const R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC = 527 +const R_AARCH64_TLSLD_MOVW_DTPREL_G1 = 524 +const R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC = 525 +const R_AARCH64_TLSLD_MOVW_DTPREL_G2 = 523 +const R_AARCH64_TLSLD_MOVW_G0_NC = 521 +const R_AARCH64_TLSLD_MOVW_G1 = 520 +const R_AARCH64_TLSLE_ADD_TPREL_HI12 = 549 +const R_AARCH64_TLSLE_ADD_TPREL_LO12 = 550 +const R_AARCH64_TLSLE_ADD_TPREL_LO12_NC = 551 +const R_AARCH64_TLSLE_LDST128_TPREL_LO12 = 570 +const R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC = 571 +const R_AARCH64_TLSLE_LDST16_TPREL_LO12 = 554 +const R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC = 555 +const R_AARCH64_TLSLE_LDST32_TPREL_LO12 = 556 +const R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC = 557 +const R_AARCH64_TLSLE_LDST64_TPREL_LO12 = 558 +const R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC = 559 +const R_AARCH64_TLSLE_LDST8_TPREL_LO12 = 552 +const R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC = 553 +const R_AARCH64_TLSLE_MOVW_TPREL_G0 = 547 +const R_AARCH64_TLSLE_MOVW_TPREL_G0_NC = 548 +const R_AARCH64_TLSLE_MOVW_TPREL_G1 = 545 +const R_AARCH64_TLSLE_MOVW_TPREL_G1_NC = 546 +const R_AARCH64_TLSLE_MOVW_TPREL_G2 = 544 +const R_AARCH64_TLS_DTPMOD = 1028 +const R_AARCH64_TLS_DTPMOD64 = 1028 +const R_AARCH64_TLS_DTPREL = 1029 +const R_AARCH64_TLS_DTPREL64 = 1029 +const R_AARCH64_TLS_TPREL = 1030 +const R_AARCH64_TLS_TPREL64 = 1030 +const R_AARCH64_TSTBR14 = 279 +const R_ALPHA_BRADDR = 7 +const R_ALPHA_COPY = 24 +const R_ALPHA_DTPMOD64 = 31 +const R_ALPHA_DTPREL16 = 36 +const R_ALPHA_DTPREL64 = 33 +const R_ALPHA_DTPRELHI = 34 +const R_ALPHA_DTPRELLO = 35 +const R_ALPHA_GLOB_DAT = 25 +const R_ALPHA_GOTDTPREL = 32 +const R_ALPHA_GOTTPREL = 37 +const R_ALPHA_GPDISP = 6 +const R_ALPHA_GPREL16 = 19 +const R_ALPHA_GPREL32 = 3 +const R_ALPHA_GPRELHIGH = 17 +const R_ALPHA_GPRELLOW = 18 +const R_ALPHA_HINT = 8 +const R_ALPHA_JMP_SLOT = 26 +const R_ALPHA_LITERAL = 4 +const R_ALPHA_LITUSE = 5 +const R_ALPHA_NONE = 0 +const R_ALPHA_NUM = 46 +const R_ALPHA_REFLONG = 1 +const R_ALPHA_REFQUAD = 2 +const R_ALPHA_RELATIVE = 27 +const R_ALPHA_SREL16 = 9 +const R_ALPHA_SREL32 = 10 +const R_ALPHA_SREL64 = 11 +const R_ALPHA_TLSGD = 29 +const R_ALPHA_TLS_GD_HI = 28 +const R_ALPHA_TLS_LDM = 30 +const R_ALPHA_TPREL16 = 41 +const R_ALPHA_TPREL64 = 38 +const R_ALPHA_TPRELHI = 39 +const R_ALPHA_TPRELLO = 40 +const R_ARM_ABS12 = 6 +const R_ARM_ABS16 = 5 +const R_ARM_ABS32 = 2 +const R_ARM_ABS32_NOI = 55 +const R_ARM_ABS8 = 8 +const R_ARM_ALU_PCREL_15_8 = 33 +const R_ARM_ALU_PCREL_23_15 = 34 +const R_ARM_ALU_PCREL_7_0 = 32 +const R_ARM_ALU_PC_G0 = 58 +const R_ARM_ALU_PC_G0_NC = 57 +const R_ARM_ALU_PC_G1 = 60 +const R_ARM_ALU_PC_G1_NC = 59 +const R_ARM_ALU_PC_G2 = 61 +const R_ARM_ALU_SBREL_19_12 = 36 +const R_ARM_ALU_SBREL_27_20 = 37 +const R_ARM_ALU_SB_G0 = 71 +const R_ARM_ALU_SB_G0_NC = 70 +const R_ARM_ALU_SB_G1 = 73 +const R_ARM_ALU_SB_G1_NC = 72 +const R_ARM_ALU_SB_G2 = 74 +const R_ARM_AMP_VCALL9 = 12 +const R_ARM_BASE_ABS = 31 +const R_ARM_CALL = 28 +const R_ARM_COPY = 20 +const R_ARM_GLOB_DAT = 21 +const R_ARM_GNU_VTENTRY = 100 +const R_ARM_GNU_VTINHERIT = 101 +const R_ARM_GOT32 = 26 +const R_ARM_GOTOFF = 24 +const R_ARM_GOTOFF12 = 98 +const R_ARM_GOTPC = 25 +const R_ARM_GOTRELAX = 99 +const R_ARM_GOT_ABS = 95 +const R_ARM_GOT_BREL12 = 97 +const R_ARM_GOT_PREL = 96 +const R_ARM_IRELATIVE = 160 +const R_ARM_JUMP24 = 29 +const R_ARM_JUMP_SLOT = 22 +const R_ARM_LDC_PC_G0 = 67 +const R_ARM_LDC_PC_G1 = 68 +const R_ARM_LDC_PC_G2 = 69 +const R_ARM_LDC_SB_G0 = 81 +const R_ARM_LDC_SB_G1 = 82 +const R_ARM_LDC_SB_G2 = 83 +const R_ARM_LDRS_PC_G0 = 64 +const R_ARM_LDRS_PC_G1 = 65 +const R_ARM_LDRS_PC_G2 = 66 +const R_ARM_LDRS_SB_G0 = 78 +const R_ARM_LDRS_SB_G1 = 79 +const R_ARM_LDRS_SB_G2 = 80 +const R_ARM_LDR_PC_G1 = 62 +const R_ARM_LDR_PC_G2 = 63 +const R_ARM_LDR_SBREL_11_0 = 35 +const R_ARM_LDR_SB_G0 = 75 +const R_ARM_LDR_SB_G1 = 76 +const R_ARM_LDR_SB_G2 = 77 +const R_ARM_ME_TOO = 128 +const R_ARM_MOVT_ABS = 44 +const R_ARM_MOVT_BREL = 85 +const R_ARM_MOVT_PREL = 46 +const R_ARM_MOVW_ABS_NC = 43 +const R_ARM_MOVW_BREL = 86 +const R_ARM_MOVW_BREL_NC = 84 +const R_ARM_MOVW_PREL_NC = 45 +const R_ARM_NONE = 0 +const R_ARM_NUM = 256 +const R_ARM_PC13 = 4 +const R_ARM_PC24 = 1 +const R_ARM_PLT32 = 27 +const R_ARM_PLT32_ABS = 94 +const R_ARM_PREL31 = 42 +const R_ARM_RABS22 = 253 +const R_ARM_RBASE = 255 +const R_ARM_REL32 = 3 +const R_ARM_REL32_NOI = 56 +const R_ARM_RELATIVE = 23 +const R_ARM_RPC24 = 254 +const R_ARM_RREL32 = 252 +const R_ARM_RSBREL32 = 250 +const R_ARM_RXPC25 = 249 +const R_ARM_SBREL31 = 39 +const R_ARM_SBREL32 = 9 +const R_ARM_TARGET1 = 38 +const R_ARM_TARGET2 = 41 +const R_ARM_THM_ABS5 = 7 +const R_ARM_THM_ALU_PREL_11_0 = 53 +const R_ARM_THM_GOT_BREL12 = 131 +const R_ARM_THM_JUMP19 = 51 +const R_ARM_THM_JUMP24 = 30 +const R_ARM_THM_JUMP6 = 52 +const R_ARM_THM_MOVT_ABS = 48 +const R_ARM_THM_MOVT_BREL = 88 +const R_ARM_THM_MOVT_PREL = 50 +const R_ARM_THM_MOVW_ABS_NC = 47 +const R_ARM_THM_MOVW_BREL = 89 +const R_ARM_THM_MOVW_BREL_NC = 87 +const R_ARM_THM_MOVW_PREL_NC = 49 +const R_ARM_THM_PC11 = 102 +const R_ARM_THM_PC12 = 54 +const R_ARM_THM_PC22 = 10 +const R_ARM_THM_PC8 = 11 +const R_ARM_THM_PC9 = 103 +const R_ARM_THM_RPC22 = 251 +const R_ARM_THM_SWI8 = 14 +const R_ARM_THM_TLS_CALL = 93 +const R_ARM_THM_TLS_DESCSEQ = 129 +const R_ARM_THM_TLS_DESCSEQ16 = 129 +const R_ARM_THM_TLS_DESCSEQ32 = 130 +const R_ARM_THM_XPC22 = 16 +const R_ARM_TLS_CALL = 91 +const R_ARM_TLS_DESC = 13 +const R_ARM_TLS_DESCSEQ = 92 +const R_ARM_TLS_DTPMOD32 = 17 +const R_ARM_TLS_DTPOFF32 = 18 +const R_ARM_TLS_GD32 = 104 +const R_ARM_TLS_GOTDESC = 90 +const R_ARM_TLS_IE12GP = 111 +const R_ARM_TLS_IE32 = 107 +const R_ARM_TLS_LDM32 = 105 +const R_ARM_TLS_LDO12 = 109 +const R_ARM_TLS_LDO32 = 106 +const R_ARM_TLS_LE12 = 110 +const R_ARM_TLS_LE32 = 108 +const R_ARM_TLS_TPOFF32 = 19 +const R_ARM_V4BX = 40 +const R_ARM_XPC25 = 15 +const R_BPF_MAP_FD = 1 +const R_BPF_NONE = 0 +const R_CKCORE_ADDR32 = 1 +const R_CKCORE_ADDRGOT = 17 +const R_CKCORE_ADDRGOT_HI16 = 36 +const R_CKCORE_ADDRGOT_LO16 = 37 +const R_CKCORE_ADDRPLT = 18 +const R_CKCORE_ADDRPLT_HI16 = 38 +const R_CKCORE_ADDRPLT_LO16 = 39 +const R_CKCORE_ADDR_HI16 = 24 +const R_CKCORE_ADDR_LO16 = 25 +const R_CKCORE_COPY = 10 +const R_CKCORE_DOFFSET_IMM18 = 44 +const R_CKCORE_DOFFSET_IMM18BY2 = 45 +const R_CKCORE_DOFFSET_IMM18BY4 = 46 +const R_CKCORE_DOFFSET_LO16 = 42 +const R_CKCORE_GLOB_DAT = 11 +const R_CKCORE_GOT12 = 30 +const R_CKCORE_GOT32 = 15 +const R_CKCORE_GOTOFF = 13 +const R_CKCORE_GOTOFF_HI16 = 28 +const R_CKCORE_GOTOFF_LO16 = 29 +const R_CKCORE_GOTPC = 14 +const R_CKCORE_GOTPC_HI16 = 26 +const R_CKCORE_GOTPC_LO16 = 27 +const R_CKCORE_GOT_HI16 = 31 +const R_CKCORE_GOT_IMM18BY4 = 48 +const R_CKCORE_GOT_LO16 = 32 +const R_CKCORE_JUMP_SLOT = 12 +const R_CKCORE_NONE = 0 +const R_CKCORE_PCREL32 = 5 +const R_CKCORE_PCRELIMM11BY2 = 3 +const R_CKCORE_PCRELIMM8BY4 = 2 +const R_CKCORE_PCRELJSR_IMM11BY2 = 6 +const R_CKCORE_PCREL_IMM10BY2 = 22 +const R_CKCORE_PCREL_IMM10BY4 = 23 +const R_CKCORE_PCREL_IMM16BY2 = 20 +const R_CKCORE_PCREL_IMM16BY4 = 21 +const R_CKCORE_PCREL_IMM18BY2 = 43 +const R_CKCORE_PCREL_IMM26BY2 = 19 +const R_CKCORE_PCREL_IMM7BY4 = 50 +const R_CKCORE_PCREL_JSR_IMM26BY2 = 40 +const R_CKCORE_PLT12 = 33 +const R_CKCORE_PLT32 = 16 +const R_CKCORE_PLT_HI16 = 34 +const R_CKCORE_PLT_IMM18BY4 = 49 +const R_CKCORE_PLT_LO16 = 35 +const R_CKCORE_RELATIVE = 9 +const R_CKCORE_TLS_DTPMOD32 = 56 +const R_CKCORE_TLS_DTPOFF32 = 57 +const R_CKCORE_TLS_GD32 = 53 +const R_CKCORE_TLS_IE32 = 52 +const R_CKCORE_TLS_LDM32 = 54 +const R_CKCORE_TLS_LDO32 = 55 +const R_CKCORE_TLS_LE32 = 51 +const R_CKCORE_TLS_TPOFF32 = 58 +const R_CKCORE_TOFFSET_LO16 = 41 +const R_CRIS_16 = 2 +const R_CRIS_16_GOT = 13 +const R_CRIS_16_GOTPLT = 15 +const R_CRIS_16_PCREL = 5 +const R_CRIS_32 = 3 +const R_CRIS_32_GOT = 14 +const R_CRIS_32_GOTPLT = 16 +const R_CRIS_32_GOTREL = 17 +const R_CRIS_32_PCREL = 6 +const R_CRIS_32_PLT_GOTREL = 18 +const R_CRIS_32_PLT_PCREL = 19 +const R_CRIS_8 = 1 +const R_CRIS_8_PCREL = 4 +const R_CRIS_COPY = 9 +const R_CRIS_GLOB_DAT = 10 +const R_CRIS_GNU_VTENTRY = 8 +const R_CRIS_GNU_VTINHERIT = 7 +const R_CRIS_JUMP_SLOT = 11 +const R_CRIS_NONE = 0 +const R_CRIS_NUM = 20 +const R_CRIS_RELATIVE = 12 +const R_IA64_COPY = 132 +const R_IA64_DIR32LSB = 37 +const R_IA64_DIR32MSB = 36 +const R_IA64_DIR64LSB = 39 +const R_IA64_DIR64MSB = 38 +const R_IA64_DTPMOD64LSB = 167 +const R_IA64_DTPMOD64MSB = 166 +const R_IA64_DTPREL14 = 177 +const R_IA64_DTPREL22 = 178 +const R_IA64_DTPREL32LSB = 181 +const R_IA64_DTPREL32MSB = 180 +const R_IA64_DTPREL64I = 179 +const R_IA64_DTPREL64LSB = 183 +const R_IA64_DTPREL64MSB = 182 +const R_IA64_FPTR32LSB = 69 +const R_IA64_FPTR32MSB = 68 +const R_IA64_FPTR64I = 67 +const R_IA64_FPTR64LSB = 71 +const R_IA64_FPTR64MSB = 70 +const R_IA64_GPREL22 = 42 +const R_IA64_GPREL32LSB = 45 +const R_IA64_GPREL32MSB = 44 +const R_IA64_GPREL64I = 43 +const R_IA64_GPREL64LSB = 47 +const R_IA64_GPREL64MSB = 46 +const R_IA64_IMM14 = 33 +const R_IA64_IMM22 = 34 +const R_IA64_IMM64 = 35 +const R_IA64_IPLTLSB = 129 +const R_IA64_IPLTMSB = 128 +const R_IA64_LDXMOV = 135 +const R_IA64_LTOFF22 = 50 +const R_IA64_LTOFF22X = 134 +const R_IA64_LTOFF64I = 51 +const R_IA64_LTOFF_DTPMOD22 = 170 +const R_IA64_LTOFF_DTPREL22 = 186 +const R_IA64_LTOFF_FPTR22 = 82 +const R_IA64_LTOFF_FPTR32LSB = 85 +const R_IA64_LTOFF_FPTR32MSB = 84 +const R_IA64_LTOFF_FPTR64I = 83 +const R_IA64_LTOFF_FPTR64LSB = 87 +const R_IA64_LTOFF_FPTR64MSB = 86 +const R_IA64_LTOFF_TPREL22 = 154 +const R_IA64_LTV32LSB = 117 +const R_IA64_LTV32MSB = 116 +const R_IA64_LTV64LSB = 119 +const R_IA64_LTV64MSB = 118 +const R_IA64_NONE = 0 +const R_IA64_PCREL21B = 73 +const R_IA64_PCREL21BI = 121 +const R_IA64_PCREL21F = 75 +const R_IA64_PCREL21M = 74 +const R_IA64_PCREL22 = 122 +const R_IA64_PCREL32LSB = 77 +const R_IA64_PCREL32MSB = 76 +const R_IA64_PCREL60B = 72 +const R_IA64_PCREL64I = 123 +const R_IA64_PCREL64LSB = 79 +const R_IA64_PCREL64MSB = 78 +const R_IA64_PLTOFF22 = 58 +const R_IA64_PLTOFF64I = 59 +const R_IA64_PLTOFF64LSB = 63 +const R_IA64_PLTOFF64MSB = 62 +const R_IA64_REL32LSB = 109 +const R_IA64_REL32MSB = 108 +const R_IA64_REL64LSB = 111 +const R_IA64_REL64MSB = 110 +const R_IA64_SECREL32LSB = 101 +const R_IA64_SECREL32MSB = 100 +const R_IA64_SECREL64LSB = 103 +const R_IA64_SECREL64MSB = 102 +const R_IA64_SEGREL32LSB = 93 +const R_IA64_SEGREL32MSB = 92 +const R_IA64_SEGREL64LSB = 95 +const R_IA64_SEGREL64MSB = 94 +const R_IA64_SUB = 133 +const R_IA64_TPREL14 = 145 +const R_IA64_TPREL22 = 146 +const R_IA64_TPREL64I = 147 +const R_IA64_TPREL64LSB = 151 +const R_IA64_TPREL64MSB = 150 +const R_LARCH_32 = 1 +const R_LARCH_32_PCREL = 99 +const R_LARCH_64 = 2 +const R_LARCH_ABS64_HI12 = 70 +const R_LARCH_ABS64_LO20 = 69 +const R_LARCH_ABS_HI20 = 67 +const R_LARCH_ABS_LO12 = 68 +const R_LARCH_ADD16 = 48 +const R_LARCH_ADD24 = 49 +const R_LARCH_ADD32 = 50 +const R_LARCH_ADD64 = 51 +const R_LARCH_ADD8 = 47 +const R_LARCH_B16 = 64 +const R_LARCH_B21 = 65 +const R_LARCH_B26 = 66 +const R_LARCH_COPY = 4 +const R_LARCH_GNU_VTENTRY = 58 +const R_LARCH_GNU_VTINHERIT = 57 +const R_LARCH_GOT64_HI12 = 82 +const R_LARCH_GOT64_LO20 = 81 +const R_LARCH_GOT64_PC_HI12 = 78 +const R_LARCH_GOT64_PC_LO20 = 77 +const R_LARCH_GOT_HI20 = 79 +const R_LARCH_GOT_LO12 = 80 +const R_LARCH_GOT_PC_HI20 = 75 +const R_LARCH_GOT_PC_LO12 = 76 +const R_LARCH_IRELATIVE = 12 +const R_LARCH_JUMP_SLOT = 5 +const R_LARCH_MARK_LA = 20 +const R_LARCH_MARK_PCREL = 21 +const R_LARCH_NONE = 0 +const R_LARCH_PCALA64_HI12 = 74 +const R_LARCH_PCALA64_LO20 = 73 +const R_LARCH_PCALA_HI20 = 71 +const R_LARCH_PCALA_LO12 = 72 +const R_LARCH_RELATIVE = 3 +const R_LARCH_RELAX = 100 +const R_LARCH_SOP_ADD = 35 +const R_LARCH_SOP_AND = 36 +const R_LARCH_SOP_ASSERT = 30 +const R_LARCH_SOP_IF_ELSE = 37 +const R_LARCH_SOP_NOT = 31 +const R_LARCH_SOP_POP_32_S_0_10_10_16_S2 = 45 +const R_LARCH_SOP_POP_32_S_0_5_10_16_S2 = 44 +const R_LARCH_SOP_POP_32_S_10_12 = 40 +const R_LARCH_SOP_POP_32_S_10_16 = 41 +const R_LARCH_SOP_POP_32_S_10_16_S2 = 42 +const R_LARCH_SOP_POP_32_S_10_5 = 38 +const R_LARCH_SOP_POP_32_S_5_20 = 43 +const R_LARCH_SOP_POP_32_U = 46 +const R_LARCH_SOP_POP_32_U_10_12 = 39 +const R_LARCH_SOP_PUSH_ABSOLUTE = 23 +const R_LARCH_SOP_PUSH_DUP = 24 +const R_LARCH_SOP_PUSH_GPREL = 25 +const R_LARCH_SOP_PUSH_PCREL = 22 +const R_LARCH_SOP_PUSH_PLT_PCREL = 29 +const R_LARCH_SOP_PUSH_TLS_GD = 28 +const R_LARCH_SOP_PUSH_TLS_GOT = 27 +const R_LARCH_SOP_PUSH_TLS_TPREL = 26 +const R_LARCH_SOP_SL = 33 +const R_LARCH_SOP_SR = 34 +const R_LARCH_SOP_SUB = 32 +const R_LARCH_SUB16 = 53 +const R_LARCH_SUB24 = 54 +const R_LARCH_SUB32 = 55 +const R_LARCH_SUB64 = 56 +const R_LARCH_SUB8 = 52 +const R_LARCH_TLS_DTPMOD32 = 6 +const R_LARCH_TLS_DTPMOD64 = 7 +const R_LARCH_TLS_DTPREL32 = 8 +const R_LARCH_TLS_DTPREL64 = 9 +const R_LARCH_TLS_GD_HI20 = 98 +const R_LARCH_TLS_GD_PC_HI20 = 97 +const R_LARCH_TLS_IE64_HI12 = 94 +const R_LARCH_TLS_IE64_LO20 = 93 +const R_LARCH_TLS_IE64_PC_HI12 = 90 +const R_LARCH_TLS_IE64_PC_LO20 = 89 +const R_LARCH_TLS_IE_HI20 = 91 +const R_LARCH_TLS_IE_LO12 = 92 +const R_LARCH_TLS_IE_PC_HI20 = 87 +const R_LARCH_TLS_IE_PC_LO12 = 88 +const R_LARCH_TLS_LD_HI20 = 96 +const R_LARCH_TLS_LD_PC_HI20 = 95 +const R_LARCH_TLS_LE64_HI12 = 86 +const R_LARCH_TLS_LE64_LO20 = 85 +const R_LARCH_TLS_LE_HI20 = 83 +const R_LARCH_TLS_LE_LO12 = 84 +const R_LARCH_TLS_TPREL32 = 10 +const R_LARCH_TLS_TPREL64 = 11 +const R_M32R_10_PCREL = 4 +const R_M32R_10_PCREL_RELA = 36 +const R_M32R_16 = 1 +const R_M32R_16_RELA = 33 +const R_M32R_18_PCREL = 5 +const R_M32R_18_PCREL_RELA = 37 +const R_M32R_24 = 3 +const R_M32R_24_RELA = 35 +const R_M32R_26_PCREL = 6 +const R_M32R_26_PCREL_RELA = 38 +const R_M32R_26_PLTREL = 49 +const R_M32R_32 = 2 +const R_M32R_32_RELA = 34 +const R_M32R_COPY = 50 +const R_M32R_GLOB_DAT = 51 +const R_M32R_GNU_VTENTRY = 12 +const R_M32R_GNU_VTINHERIT = 11 +const R_M32R_GOT16_HI_SLO = 57 +const R_M32R_GOT16_HI_ULO = 56 +const R_M32R_GOT16_LO = 58 +const R_M32R_GOT24 = 48 +const R_M32R_GOTOFF = 54 +const R_M32R_GOTOFF_HI_SLO = 63 +const R_M32R_GOTOFF_HI_ULO = 62 +const R_M32R_GOTOFF_LO = 64 +const R_M32R_GOTPC24 = 55 +const R_M32R_GOTPC_HI_SLO = 60 +const R_M32R_GOTPC_HI_ULO = 59 +const R_M32R_GOTPC_LO = 61 +const R_M32R_HI16_SLO = 8 +const R_M32R_HI16_SLO_RELA = 40 +const R_M32R_HI16_ULO = 7 +const R_M32R_HI16_ULO_RELA = 39 +const R_M32R_JMP_SLOT = 52 +const R_M32R_LO16 = 9 +const R_M32R_LO16_RELA = 41 +const R_M32R_NONE = 0 +const R_M32R_NUM = 256 +const R_M32R_REL32 = 45 +const R_M32R_RELATIVE = 53 +const R_M32R_RELA_GNU_VTENTRY = 44 +const R_M32R_RELA_GNU_VTINHERIT = 43 +const R_M32R_SDA16 = 10 +const R_M32R_SDA16_RELA = 42 +const R_MICROBLAZE_32 = 1 +const R_MICROBLAZE_32_LO = 6 +const R_MICROBLAZE_32_PCREL = 2 +const R_MICROBLAZE_32_PCREL_LO = 4 +const R_MICROBLAZE_32_SYM_OP_SYM = 10 +const R_MICROBLAZE_64 = 5 +const R_MICROBLAZE_64_NONE = 9 +const R_MICROBLAZE_64_PCREL = 3 +const R_MICROBLAZE_COPY = 21 +const R_MICROBLAZE_GLOB_DAT = 18 +const R_MICROBLAZE_GNU_VTENTRY = 12 +const R_MICROBLAZE_GNU_VTINHERIT = 11 +const R_MICROBLAZE_GOTOFF_32 = 20 +const R_MICROBLAZE_GOTOFF_64 = 19 +const R_MICROBLAZE_GOTPC_64 = 13 +const R_MICROBLAZE_GOT_64 = 14 +const R_MICROBLAZE_JUMP_SLOT = 17 +const R_MICROBLAZE_NONE = 0 +const R_MICROBLAZE_PLT_64 = 15 +const R_MICROBLAZE_REL = 16 +const R_MICROBLAZE_SRO32 = 7 +const R_MICROBLAZE_SRW32 = 8 +const R_MICROBLAZE_TLS = 22 +const R_MICROBLAZE_TLSDTPMOD32 = 25 +const R_MICROBLAZE_TLSDTPREL32 = 26 +const R_MICROBLAZE_TLSDTPREL64 = 27 +const R_MICROBLAZE_TLSGD = 23 +const R_MICROBLAZE_TLSGOTTPREL32 = 28 +const R_MICROBLAZE_TLSLD = 24 +const R_MICROBLAZE_TLSTPREL32 = 29 +const R_MIPS_16 = 1 +const R_MIPS_26 = 4 +const R_MIPS_32 = 2 +const R_MIPS_64 = 18 +const R_MIPS_ADD_IMMEDIATE = 34 +const R_MIPS_CALL16 = 11 +const R_MIPS_CALL_HI16 = 30 +const R_MIPS_CALL_LO16 = 31 +const R_MIPS_COPY = 126 +const R_MIPS_DELETE = 27 +const R_MIPS_GLOB_DAT = 51 +const R_MIPS_GOT16 = 9 +const R_MIPS_GOT_DISP = 19 +const R_MIPS_GOT_HI16 = 22 +const R_MIPS_GOT_LO16 = 23 +const R_MIPS_GOT_OFST = 21 +const R_MIPS_GOT_PAGE = 20 +const R_MIPS_GPREL16 = 7 +const R_MIPS_GPREL32 = 12 +const R_MIPS_HI16 = 5 +const R_MIPS_HIGHER = 28 +const R_MIPS_HIGHEST = 29 +const R_MIPS_INSERT_A = 25 +const R_MIPS_INSERT_B = 26 +const R_MIPS_JALR = 37 +const R_MIPS_JUMP_SLOT = 127 +const R_MIPS_LITERAL = 8 +const R_MIPS_LO16 = 6 +const R_MIPS_NONE = 0 +const R_MIPS_NUM = 128 +const R_MIPS_PC16 = 10 +const R_MIPS_PJUMP = 35 +const R_MIPS_REL16 = 33 +const R_MIPS_REL32 = 3 +const R_MIPS_RELGOT = 36 +const R_MIPS_SCN_DISP = 32 +const R_MIPS_SHIFT5 = 16 +const R_MIPS_SHIFT6 = 17 +const R_MIPS_SUB = 24 +const R_MIPS_TLS_DTPMOD32 = 38 +const R_MIPS_TLS_DTPMOD64 = 40 +const R_MIPS_TLS_DTPREL32 = 39 +const R_MIPS_TLS_DTPREL64 = 41 +const R_MIPS_TLS_DTPREL_HI16 = 44 +const R_MIPS_TLS_DTPREL_LO16 = 45 +const R_MIPS_TLS_GD = 42 +const R_MIPS_TLS_GOTTPREL = 46 +const R_MIPS_TLS_LDM = 43 +const R_MIPS_TLS_TPREL32 = 47 +const R_MIPS_TLS_TPREL64 = 48 +const R_MIPS_TLS_TPREL_HI16 = 49 +const R_MIPS_TLS_TPREL_LO16 = 50 +const R_MN10300_16 = 2 +const R_MN10300_24 = 9 +const R_MN10300_32 = 1 +const R_MN10300_8 = 3 +const R_MN10300_COPY = 20 +const R_MN10300_GLOB_DAT = 21 +const R_MN10300_GNU_VTENTRY = 8 +const R_MN10300_GNU_VTINHERIT = 7 +const R_MN10300_GOT16 = 19 +const R_MN10300_GOT24 = 18 +const R_MN10300_GOT32 = 17 +const R_MN10300_GOTOFF16 = 14 +const R_MN10300_GOTOFF24 = 13 +const R_MN10300_GOTOFF32 = 12 +const R_MN10300_GOTPC16 = 11 +const R_MN10300_GOTPC32 = 10 +const R_MN10300_JMP_SLOT = 22 +const R_MN10300_NONE = 0 +const R_MN10300_NUM = 24 +const R_MN10300_PCREL16 = 5 +const R_MN10300_PCREL32 = 4 +const R_MN10300_PCREL8 = 6 +const R_MN10300_PLT16 = 16 +const R_MN10300_PLT32 = 15 +const R_MN10300_RELATIVE = 23 +const R_NIOS2_ALIGN = 21 +const R_NIOS2_BFD_RELOC_16 = 13 +const R_NIOS2_BFD_RELOC_32 = 12 +const R_NIOS2_BFD_RELOC_8 = 14 +const R_NIOS2_CACHE_OPX = 6 +const R_NIOS2_CALL16 = 23 +const R_NIOS2_CALL26 = 4 +const R_NIOS2_CALL26_NOAT = 41 +const R_NIOS2_CALLR = 20 +const R_NIOS2_CALL_HA = 45 +const R_NIOS2_CALL_LO = 44 +const R_NIOS2_CJMP = 19 +const R_NIOS2_COPY = 36 +const R_NIOS2_GLOB_DAT = 37 +const R_NIOS2_GNU_VTENTRY = 17 +const R_NIOS2_GNU_VTINHERIT = 16 +const R_NIOS2_GOT16 = 22 +const R_NIOS2_GOTOFF = 40 +const R_NIOS2_GOTOFF_HA = 25 +const R_NIOS2_GOTOFF_LO = 24 +const R_NIOS2_GOT_HA = 43 +const R_NIOS2_GOT_LO = 42 +const R_NIOS2_GPREL = 15 +const R_NIOS2_HI16 = 9 +const R_NIOS2_HIADJ16 = 11 +const R_NIOS2_IMM5 = 5 +const R_NIOS2_IMM6 = 7 +const R_NIOS2_IMM8 = 8 +const R_NIOS2_JUMP_SLOT = 38 +const R_NIOS2_LO16 = 10 +const R_NIOS2_NONE = 0 +const R_NIOS2_PCREL16 = 3 +const R_NIOS2_PCREL_HA = 27 +const R_NIOS2_PCREL_LO = 26 +const R_NIOS2_RELATIVE = 39 +const R_NIOS2_S16 = 1 +const R_NIOS2_TLS_DTPMOD = 33 +const R_NIOS2_TLS_DTPREL = 34 +const R_NIOS2_TLS_GD16 = 28 +const R_NIOS2_TLS_IE16 = 31 +const R_NIOS2_TLS_LDM16 = 29 +const R_NIOS2_TLS_LDO16 = 30 +const R_NIOS2_TLS_LE16 = 32 +const R_NIOS2_TLS_TPREL = 35 +const R_NIOS2_U16 = 2 +const R_NIOS2_UJMP = 18 +const R_OR1K_16 = 2 +const R_OR1K_16_PCREL = 10 +const R_OR1K_32 = 1 +const R_OR1K_32_PCREL = 9 +const R_OR1K_8 = 3 +const R_OR1K_8_PCREL = 11 +const R_OR1K_COPY = 18 +const R_OR1K_GLOB_DAT = 19 +const R_OR1K_GNU_VTENTRY = 7 +const R_OR1K_GNU_VTINHERIT = 8 +const R_OR1K_GOT16 = 14 +const R_OR1K_GOTOFF_HI16 = 16 +const R_OR1K_GOTOFF_LO16 = 17 +const R_OR1K_GOTPC_HI16 = 12 +const R_OR1K_GOTPC_LO16 = 13 +const R_OR1K_HI_16_IN_INSN = 5 +const R_OR1K_INSN_REL_26 = 6 +const R_OR1K_JMP_SLOT = 20 +const R_OR1K_LO_16_IN_INSN = 4 +const R_OR1K_NONE = 0 +const R_OR1K_PLT26 = 15 +const R_OR1K_RELATIVE = 21 +const R_OR1K_TLS_DTPMOD = 34 +const R_OR1K_TLS_DTPOFF = 33 +const R_OR1K_TLS_GD_HI16 = 22 +const R_OR1K_TLS_GD_LO16 = 23 +const R_OR1K_TLS_IE_HI16 = 28 +const R_OR1K_TLS_IE_LO16 = 29 +const R_OR1K_TLS_LDM_HI16 = 24 +const R_OR1K_TLS_LDM_LO16 = 25 +const R_OR1K_TLS_LDO_HI16 = 26 +const R_OR1K_TLS_LDO_LO16 = 27 +const R_OR1K_TLS_LE_HI16 = 30 +const R_OR1K_TLS_LE_LO16 = 31 +const R_OR1K_TLS_TPOFF = 32 +const R_PARISC_COPY = 128 +const R_PARISC_DIR14DR = 84 +const R_PARISC_DIR14R = 6 +const R_PARISC_DIR14WR = 83 +const R_PARISC_DIR16DF = 87 +const R_PARISC_DIR16F = 85 +const R_PARISC_DIR16WF = 86 +const R_PARISC_DIR17F = 4 +const R_PARISC_DIR17R = 3 +const R_PARISC_DIR21L = 2 +const R_PARISC_DIR32 = 1 +const R_PARISC_DIR64 = 80 +const R_PARISC_DPREL14R = 22 +const R_PARISC_DPREL21L = 18 +const R_PARISC_EPLT = 130 +const R_PARISC_FPTR64 = 64 +const R_PARISC_GNU_VTENTRY = 232 +const R_PARISC_GNU_VTINHERIT = 233 +const R_PARISC_GPREL14DR = 92 +const R_PARISC_GPREL14R = 30 +const R_PARISC_GPREL14WR = 91 +const R_PARISC_GPREL16DF = 95 +const R_PARISC_GPREL16F = 93 +const R_PARISC_GPREL16WF = 94 +const R_PARISC_GPREL21L = 26 +const R_PARISC_GPREL64 = 88 +const R_PARISC_HIRESERVE = 255 +const R_PARISC_IPLT = 129 +const R_PARISC_LORESERVE = 128 +const R_PARISC_LTOFF14DR = 100 +const R_PARISC_LTOFF14R = 38 +const R_PARISC_LTOFF14WR = 99 +const R_PARISC_LTOFF16DF = 103 +const R_PARISC_LTOFF16F = 101 +const R_PARISC_LTOFF16WF = 102 +const R_PARISC_LTOFF21L = 34 +const R_PARISC_LTOFF64 = 96 +const R_PARISC_LTOFF_FPTR14DR = 124 +const R_PARISC_LTOFF_FPTR14R = 62 +const R_PARISC_LTOFF_FPTR14WR = 123 +const R_PARISC_LTOFF_FPTR16DF = 127 +const R_PARISC_LTOFF_FPTR16F = 125 +const R_PARISC_LTOFF_FPTR16WF = 126 +const R_PARISC_LTOFF_FPTR21L = 58 +const R_PARISC_LTOFF_FPTR32 = 57 +const R_PARISC_LTOFF_FPTR64 = 120 +const R_PARISC_LTOFF_TP14DR = 228 +const R_PARISC_LTOFF_TP14F = 167 +const R_PARISC_LTOFF_TP14R = 166 +const R_PARISC_LTOFF_TP14WR = 227 +const R_PARISC_LTOFF_TP16DF = 231 +const R_PARISC_LTOFF_TP16F = 229 +const R_PARISC_LTOFF_TP16WF = 230 +const R_PARISC_LTOFF_TP21L = 162 +const R_PARISC_LTOFF_TP64 = 224 +const R_PARISC_NONE = 0 +const R_PARISC_PCREL14DR = 76 +const R_PARISC_PCREL14R = 14 +const R_PARISC_PCREL14WR = 75 +const R_PARISC_PCREL16DF = 79 +const R_PARISC_PCREL16F = 77 +const R_PARISC_PCREL16WF = 78 +const R_PARISC_PCREL17F = 12 +const R_PARISC_PCREL17R = 11 +const R_PARISC_PCREL21L = 10 +const R_PARISC_PCREL22F = 74 +const R_PARISC_PCREL32 = 9 +const R_PARISC_PCREL64 = 72 +const R_PARISC_PLABEL14R = 70 +const R_PARISC_PLABEL21L = 66 +const R_PARISC_PLABEL32 = 65 +const R_PARISC_PLTOFF14DR = 116 +const R_PARISC_PLTOFF14R = 54 +const R_PARISC_PLTOFF14WR = 115 +const R_PARISC_PLTOFF16DF = 119 +const R_PARISC_PLTOFF16F = 117 +const R_PARISC_PLTOFF16WF = 118 +const R_PARISC_PLTOFF21L = 50 +const R_PARISC_SECREL32 = 41 +const R_PARISC_SECREL64 = 104 +const R_PARISC_SEGBASE = 48 +const R_PARISC_SEGREL32 = 49 +const R_PARISC_SEGREL64 = 112 +const R_PARISC_TLS_DTPMOD32 = 242 +const R_PARISC_TLS_DTPMOD64 = 243 +const R_PARISC_TLS_DTPOFF32 = 244 +const R_PARISC_TLS_DTPOFF64 = 245 +const R_PARISC_TLS_GD14R = 235 +const R_PARISC_TLS_GD21L = 234 +const R_PARISC_TLS_GDCALL = 236 +const R_PARISC_TLS_IE14R = 166 +const R_PARISC_TLS_IE21L = 162 +const R_PARISC_TLS_LDM14R = 238 +const R_PARISC_TLS_LDM21L = 237 +const R_PARISC_TLS_LDMCALL = 239 +const R_PARISC_TLS_LDO14R = 241 +const R_PARISC_TLS_LDO21L = 240 +const R_PARISC_TLS_LE14R = 158 +const R_PARISC_TLS_LE21L = 154 +const R_PARISC_TLS_TPREL32 = 153 +const R_PARISC_TLS_TPREL64 = 216 +const R_PARISC_TPREL14DR = 220 +const R_PARISC_TPREL14R = 158 +const R_PARISC_TPREL14WR = 219 +const R_PARISC_TPREL16DF = 223 +const R_PARISC_TPREL16F = 221 +const R_PARISC_TPREL16WF = 222 +const R_PARISC_TPREL21L = 154 +const R_PARISC_TPREL32 = 153 +const R_PARISC_TPREL64 = 216 +const R_PPC64_ADDR14 = 7 +const R_PPC64_ADDR14_BRNTAKEN = 9 +const R_PPC64_ADDR14_BRTAKEN = 8 +const R_PPC64_ADDR16 = 3 +const R_PPC64_ADDR16_DS = 56 +const R_PPC64_ADDR16_HA = 6 +const R_PPC64_ADDR16_HI = 5 +const R_PPC64_ADDR16_HIGH = 110 +const R_PPC64_ADDR16_HIGHA = 111 +const R_PPC64_ADDR16_HIGHER = 39 +const R_PPC64_ADDR16_HIGHERA = 40 +const R_PPC64_ADDR16_HIGHEST = 41 +const R_PPC64_ADDR16_HIGHESTA = 42 +const R_PPC64_ADDR16_LO = 4 +const R_PPC64_ADDR16_LO_DS = 57 +const R_PPC64_ADDR24 = 2 +const R_PPC64_ADDR30 = 37 +const R_PPC64_ADDR32 = 1 +const R_PPC64_ADDR64 = 38 +const R_PPC64_COPY = 19 +const R_PPC64_DTPMOD64 = 68 +const R_PPC64_DTPREL16 = 74 +const R_PPC64_DTPREL16_DS = 101 +const R_PPC64_DTPREL16_HA = 77 +const R_PPC64_DTPREL16_HI = 76 +const R_PPC64_DTPREL16_HIGH = 114 +const R_PPC64_DTPREL16_HIGHA = 115 +const R_PPC64_DTPREL16_HIGHER = 103 +const R_PPC64_DTPREL16_HIGHERA = 104 +const R_PPC64_DTPREL16_HIGHEST = 105 +const R_PPC64_DTPREL16_HIGHESTA = 106 +const R_PPC64_DTPREL16_LO = 75 +const R_PPC64_DTPREL16_LO_DS = 102 +const R_PPC64_DTPREL64 = 78 +const R_PPC64_GLOB_DAT = 20 +const R_PPC64_GOT16 = 14 +const R_PPC64_GOT16_DS = 58 +const R_PPC64_GOT16_HA = 17 +const R_PPC64_GOT16_HI = 16 +const R_PPC64_GOT16_LO = 15 +const R_PPC64_GOT16_LO_DS = 59 +const R_PPC64_GOT_DTPREL16_DS = 91 +const R_PPC64_GOT_DTPREL16_HA = 94 +const R_PPC64_GOT_DTPREL16_HI = 93 +const R_PPC64_GOT_DTPREL16_LO_DS = 92 +const R_PPC64_GOT_TLSGD16 = 79 +const R_PPC64_GOT_TLSGD16_HA = 82 +const R_PPC64_GOT_TLSGD16_HI = 81 +const R_PPC64_GOT_TLSGD16_LO = 80 +const R_PPC64_GOT_TLSLD16 = 83 +const R_PPC64_GOT_TLSLD16_HA = 86 +const R_PPC64_GOT_TLSLD16_HI = 85 +const R_PPC64_GOT_TLSLD16_LO = 84 +const R_PPC64_GOT_TPREL16_DS = 87 +const R_PPC64_GOT_TPREL16_HA = 90 +const R_PPC64_GOT_TPREL16_HI = 89 +const R_PPC64_GOT_TPREL16_LO_DS = 88 +const R_PPC64_IRELATIVE = 248 +const R_PPC64_JMP_IREL = 247 +const R_PPC64_JMP_SLOT = 21 +const R_PPC64_NONE = 0 +const R_PPC64_PLT16_HA = 31 +const R_PPC64_PLT16_HI = 30 +const R_PPC64_PLT16_LO = 29 +const R_PPC64_PLT16_LO_DS = 60 +const R_PPC64_PLT32 = 27 +const R_PPC64_PLT64 = 45 +const R_PPC64_PLTGOT16 = 52 +const R_PPC64_PLTGOT16_DS = 65 +const R_PPC64_PLTGOT16_HA = 55 +const R_PPC64_PLTGOT16_HI = 54 +const R_PPC64_PLTGOT16_LO = 53 +const R_PPC64_PLTGOT16_LO_DS = 66 +const R_PPC64_PLTREL32 = 28 +const R_PPC64_PLTREL64 = 46 +const R_PPC64_REL14 = 11 +const R_PPC64_REL14_BRNTAKEN = 13 +const R_PPC64_REL14_BRTAKEN = 12 +const R_PPC64_REL16 = 249 +const R_PPC64_REL16_HA = 252 +const R_PPC64_REL16_HI = 251 +const R_PPC64_REL16_LO = 250 +const R_PPC64_REL24 = 10 +const R_PPC64_REL32 = 26 +const R_PPC64_REL64 = 44 +const R_PPC64_RELATIVE = 22 +const R_PPC64_SECTOFF = 33 +const R_PPC64_SECTOFF_DS = 61 +const R_PPC64_SECTOFF_HA = 36 +const R_PPC64_SECTOFF_HI = 35 +const R_PPC64_SECTOFF_LO = 34 +const R_PPC64_SECTOFF_LO_DS = 62 +const R_PPC64_TLS = 67 +const R_PPC64_TLSGD = 107 +const R_PPC64_TLSLD = 108 +const R_PPC64_TOC = 51 +const R_PPC64_TOC16 = 47 +const R_PPC64_TOC16_DS = 63 +const R_PPC64_TOC16_HA = 50 +const R_PPC64_TOC16_HI = 49 +const R_PPC64_TOC16_LO = 48 +const R_PPC64_TOC16_LO_DS = 64 +const R_PPC64_TOCSAVE = 109 +const R_PPC64_TPREL16 = 69 +const R_PPC64_TPREL16_DS = 95 +const R_PPC64_TPREL16_HA = 72 +const R_PPC64_TPREL16_HI = 71 +const R_PPC64_TPREL16_HIGH = 112 +const R_PPC64_TPREL16_HIGHA = 113 +const R_PPC64_TPREL16_HIGHER = 97 +const R_PPC64_TPREL16_HIGHERA = 98 +const R_PPC64_TPREL16_HIGHEST = 99 +const R_PPC64_TPREL16_HIGHESTA = 100 +const R_PPC64_TPREL16_LO = 70 +const R_PPC64_TPREL16_LO_DS = 96 +const R_PPC64_TPREL64 = 73 +const R_PPC64_UADDR16 = 25 +const R_PPC64_UADDR32 = 24 +const R_PPC64_UADDR64 = 43 +const R_PPC_ADDR14 = 7 +const R_PPC_ADDR14_BRNTAKEN = 9 +const R_PPC_ADDR14_BRTAKEN = 8 +const R_PPC_ADDR16 = 3 +const R_PPC_ADDR16_HA = 6 +const R_PPC_ADDR16_HI = 5 +const R_PPC_ADDR16_LO = 4 +const R_PPC_ADDR24 = 2 +const R_PPC_ADDR32 = 1 +const R_PPC_COPY = 19 +const R_PPC_DIAB_RELSDA_HA = 185 +const R_PPC_DIAB_RELSDA_HI = 184 +const R_PPC_DIAB_RELSDA_LO = 183 +const R_PPC_DIAB_SDA21_HA = 182 +const R_PPC_DIAB_SDA21_HI = 181 +const R_PPC_DIAB_SDA21_LO = 180 +const R_PPC_DTPMOD32 = 68 +const R_PPC_DTPREL16 = 74 +const R_PPC_DTPREL16_HA = 77 +const R_PPC_DTPREL16_HI = 76 +const R_PPC_DTPREL16_LO = 75 +const R_PPC_DTPREL32 = 78 +const R_PPC_EMB_BIT_FLD = 115 +const R_PPC_EMB_MRKREF = 110 +const R_PPC_EMB_NADDR16 = 102 +const R_PPC_EMB_NADDR16_HA = 105 +const R_PPC_EMB_NADDR16_HI = 104 +const R_PPC_EMB_NADDR16_LO = 103 +const R_PPC_EMB_NADDR32 = 101 +const R_PPC_EMB_RELSDA = 116 +const R_PPC_EMB_RELSEC16 = 111 +const R_PPC_EMB_RELST_HA = 114 +const R_PPC_EMB_RELST_HI = 113 +const R_PPC_EMB_RELST_LO = 112 +const R_PPC_EMB_SDA21 = 109 +const R_PPC_EMB_SDA2I16 = 107 +const R_PPC_EMB_SDA2REL = 108 +const R_PPC_EMB_SDAI16 = 106 +const R_PPC_GLOB_DAT = 20 +const R_PPC_GOT16 = 14 +const R_PPC_GOT16_HA = 17 +const R_PPC_GOT16_HI = 16 +const R_PPC_GOT16_LO = 15 +const R_PPC_GOT_DTPREL16 = 91 +const R_PPC_GOT_DTPREL16_HA = 94 +const R_PPC_GOT_DTPREL16_HI = 93 +const R_PPC_GOT_DTPREL16_LO = 92 +const R_PPC_GOT_TLSGD16 = 79 +const R_PPC_GOT_TLSGD16_HA = 82 +const R_PPC_GOT_TLSGD16_HI = 81 +const R_PPC_GOT_TLSGD16_LO = 80 +const R_PPC_GOT_TLSLD16 = 83 +const R_PPC_GOT_TLSLD16_HA = 86 +const R_PPC_GOT_TLSLD16_HI = 85 +const R_PPC_GOT_TLSLD16_LO = 84 +const R_PPC_GOT_TPREL16 = 87 +const R_PPC_GOT_TPREL16_HA = 90 +const R_PPC_GOT_TPREL16_HI = 89 +const R_PPC_GOT_TPREL16_LO = 88 +const R_PPC_IRELATIVE = 248 +const R_PPC_JMP_SLOT = 21 +const R_PPC_LOCAL24PC = 23 +const R_PPC_NONE = 0 +const R_PPC_PLT16_HA = 31 +const R_PPC_PLT16_HI = 30 +const R_PPC_PLT16_LO = 29 +const R_PPC_PLT32 = 27 +const R_PPC_PLTREL24 = 18 +const R_PPC_PLTREL32 = 28 +const R_PPC_REL14 = 11 +const R_PPC_REL14_BRNTAKEN = 13 +const R_PPC_REL14_BRTAKEN = 12 +const R_PPC_REL16 = 249 +const R_PPC_REL16_HA = 252 +const R_PPC_REL16_HI = 251 +const R_PPC_REL16_LO = 250 +const R_PPC_REL24 = 10 +const R_PPC_REL32 = 26 +const R_PPC_RELATIVE = 22 +const R_PPC_SDAREL16 = 32 +const R_PPC_SECTOFF = 33 +const R_PPC_SECTOFF_HA = 36 +const R_PPC_SECTOFF_HI = 35 +const R_PPC_SECTOFF_LO = 34 +const R_PPC_TLS = 67 +const R_PPC_TLSGD = 95 +const R_PPC_TLSLD = 96 +const R_PPC_TOC16 = 255 +const R_PPC_TPREL16 = 69 +const R_PPC_TPREL16_HA = 72 +const R_PPC_TPREL16_HI = 71 +const R_PPC_TPREL16_LO = 70 +const R_PPC_TPREL32 = 73 +const R_PPC_UADDR16 = 25 +const R_PPC_UADDR32 = 24 +const R_RISCV_32 = 1 +const R_RISCV_32_PCREL = 57 +const R_RISCV_64 = 2 +const R_RISCV_ADD16 = 34 +const R_RISCV_ADD32 = 35 +const R_RISCV_ADD64 = 36 +const R_RISCV_ADD8 = 33 +const R_RISCV_ALIGN = 43 +const R_RISCV_BRANCH = 16 +const R_RISCV_CALL = 18 +const R_RISCV_CALL_PLT = 19 +const R_RISCV_COPY = 4 +const R_RISCV_GOT32_PCREL = 41 +const R_RISCV_GOT_HI20 = 20 +const R_RISCV_HI20 = 26 +const R_RISCV_IRELATIVE = 58 +const R_RISCV_JAL = 17 +const R_RISCV_JUMP_SLOT = 5 +const R_RISCV_LO12_I = 27 +const R_RISCV_LO12_S = 28 +const R_RISCV_NONE = 0 +const R_RISCV_PCREL_HI20 = 23 +const R_RISCV_PCREL_LO12_I = 24 +const R_RISCV_PCREL_LO12_S = 25 +const R_RISCV_PLT32 = 59 +const R_RISCV_RELATIVE = 3 +const R_RISCV_RELAX = 51 +const R_RISCV_RVC_BRANCH = 44 +const R_RISCV_RVC_JUMP = 45 +const R_RISCV_RVC_LUI = 46 +const R_RISCV_SET16 = 55 +const R_RISCV_SET32 = 56 +const R_RISCV_SET6 = 53 +const R_RISCV_SET8 = 54 +const R_RISCV_SET_ULEB128 = 60 +const R_RISCV_SUB16 = 38 +const R_RISCV_SUB32 = 39 +const R_RISCV_SUB6 = 52 +const R_RISCV_SUB64 = 40 +const R_RISCV_SUB8 = 37 +const R_RISCV_SUB_ULEB128 = 61 +const R_RISCV_TLSDESC = 12 +const R_RISCV_TLSDESC_ADD_LO12 = 64 +const R_RISCV_TLSDESC_CALL = 65 +const R_RISCV_TLSDESC_HI20 = 62 +const R_RISCV_TLSDESC_LOAD_LO12 = 63 +const R_RISCV_TLS_DTPMOD32 = 6 +const R_RISCV_TLS_DTPMOD64 = 7 +const R_RISCV_TLS_DTPREL32 = 8 +const R_RISCV_TLS_DTPREL64 = 9 +const R_RISCV_TLS_GD_HI20 = 22 +const R_RISCV_TLS_GOT_HI20 = 21 +const R_RISCV_TLS_TPREL32 = 10 +const R_RISCV_TLS_TPREL64 = 11 +const R_RISCV_TPREL_ADD = 32 +const R_RISCV_TPREL_HI20 = 29 +const R_RISCV_TPREL_LO12_I = 30 +const R_RISCV_TPREL_LO12_S = 31 +const R_SH_ALIGN = 29 +const R_SH_CODE = 30 +const R_SH_COPY = 162 +const R_SH_COUNT = 28 +const R_SH_DATA = 31 +const R_SH_DIR32 = 1 +const R_SH_DIR8BP = 7 +const R_SH_DIR8L = 9 +const R_SH_DIR8W = 8 +const R_SH_DIR8WPL = 5 +const R_SH_DIR8WPN = 3 +const R_SH_DIR8WPZ = 6 +const R_SH_FUNCDESC = 207 +const R_SH_FUNCDESC_VALUE = 208 +const R_SH_GLOB_DAT = 163 +const R_SH_GNU_VTENTRY = 35 +const R_SH_GNU_VTINHERIT = 34 +const R_SH_GOT20 = 201 +const R_SH_GOT32 = 160 +const R_SH_GOTFUNCDESC = 203 +const R_SH_GOTFUNCDEST20 = 204 +const R_SH_GOTOFF = 166 +const R_SH_GOTOFF20 = 202 +const R_SH_GOTOFFFUNCDESC = 205 +const R_SH_GOTOFFFUNCDEST20 = 206 +const R_SH_GOTPC = 167 +const R_SH_IND12W = 4 +const R_SH_JMP_SLOT = 164 +const R_SH_LABEL = 32 +const R_SH_NONE = 0 +const R_SH_NUM = 256 +const R_SH_PLT32 = 161 +const R_SH_REL32 = 2 +const R_SH_RELATIVE = 165 +const R_SH_SWITCH16 = 25 +const R_SH_SWITCH32 = 26 +const R_SH_SWITCH8 = 33 +const R_SH_TLS_DTPMOD32 = 149 +const R_SH_TLS_DTPOFF32 = 150 +const R_SH_TLS_GD_32 = 144 +const R_SH_TLS_IE_32 = 147 +const R_SH_TLS_LDO_32 = 146 +const R_SH_TLS_LD_32 = 145 +const R_SH_TLS_LE_32 = 148 +const R_SH_TLS_TPOFF32 = 151 +const R_SH_USES = 27 +const R_SPARC_10 = 30 +const R_SPARC_11 = 31 +const R_SPARC_13 = 11 +const R_SPARC_16 = 2 +const R_SPARC_22 = 10 +const R_SPARC_32 = 3 +const R_SPARC_5 = 44 +const R_SPARC_6 = 45 +const R_SPARC_64 = 32 +const R_SPARC_7 = 43 +const R_SPARC_8 = 1 +const R_SPARC_COPY = 19 +const R_SPARC_DISP16 = 5 +const R_SPARC_DISP32 = 6 +const R_SPARC_DISP64 = 46 +const R_SPARC_DISP8 = 4 +const R_SPARC_GLOB_DAT = 20 +const R_SPARC_GLOB_JMP = 42 +const R_SPARC_GNU_VTENTRY = 251 +const R_SPARC_GNU_VTINHERIT = 250 +const R_SPARC_GOT10 = 13 +const R_SPARC_GOT13 = 14 +const R_SPARC_GOT22 = 15 +const R_SPARC_GOTDATA_HIX22 = 80 +const R_SPARC_GOTDATA_LOX10 = 81 +const R_SPARC_GOTDATA_OP = 84 +const R_SPARC_GOTDATA_OP_HIX22 = 82 +const R_SPARC_GOTDATA_OP_LOX10 = 83 +const R_SPARC_H34 = 85 +const R_SPARC_H44 = 50 +const R_SPARC_HH22 = 34 +const R_SPARC_HI22 = 9 +const R_SPARC_HIPLT22 = 25 +const R_SPARC_HIX22 = 48 +const R_SPARC_HM10 = 35 +const R_SPARC_JMP_SLOT = 21 +const R_SPARC_L44 = 52 +const R_SPARC_LM22 = 36 +const R_SPARC_LO10 = 12 +const R_SPARC_LOPLT10 = 26 +const R_SPARC_LOX10 = 49 +const R_SPARC_M44 = 51 +const R_SPARC_NONE = 0 +const R_SPARC_NUM = 253 +const R_SPARC_OLO10 = 33 +const R_SPARC_PC10 = 16 +const R_SPARC_PC22 = 17 +const R_SPARC_PCPLT10 = 29 +const R_SPARC_PCPLT22 = 28 +const R_SPARC_PCPLT32 = 27 +const R_SPARC_PC_HH22 = 37 +const R_SPARC_PC_HM10 = 38 +const R_SPARC_PC_LM22 = 39 +const R_SPARC_PLT32 = 24 +const R_SPARC_PLT64 = 47 +const R_SPARC_REGISTER = 53 +const R_SPARC_RELATIVE = 22 +const R_SPARC_REV32 = 252 +const R_SPARC_SIZE32 = 86 +const R_SPARC_SIZE64 = 87 +const R_SPARC_TLS_DTPMOD32 = 74 +const R_SPARC_TLS_DTPMOD64 = 75 +const R_SPARC_TLS_DTPOFF32 = 76 +const R_SPARC_TLS_DTPOFF64 = 77 +const R_SPARC_TLS_GD_ADD = 58 +const R_SPARC_TLS_GD_CALL = 59 +const R_SPARC_TLS_GD_HI22 = 56 +const R_SPARC_TLS_GD_LO10 = 57 +const R_SPARC_TLS_IE_ADD = 71 +const R_SPARC_TLS_IE_HI22 = 67 +const R_SPARC_TLS_IE_LD = 69 +const R_SPARC_TLS_IE_LDX = 70 +const R_SPARC_TLS_IE_LO10 = 68 +const R_SPARC_TLS_LDM_ADD = 62 +const R_SPARC_TLS_LDM_CALL = 63 +const R_SPARC_TLS_LDM_HI22 = 60 +const R_SPARC_TLS_LDM_LO10 = 61 +const R_SPARC_TLS_LDO_ADD = 66 +const R_SPARC_TLS_LDO_HIX22 = 64 +const R_SPARC_TLS_LDO_LOX10 = 65 +const R_SPARC_TLS_LE_HIX22 = 72 +const R_SPARC_TLS_LE_LOX10 = 73 +const R_SPARC_TLS_TPOFF32 = 78 +const R_SPARC_TLS_TPOFF64 = 79 +const R_SPARC_UA16 = 55 +const R_SPARC_UA32 = 23 +const R_SPARC_UA64 = 54 +const R_SPARC_WDISP16 = 40 +const R_SPARC_WDISP19 = 41 +const R_SPARC_WDISP22 = 8 +const R_SPARC_WDISP30 = 7 +const R_SPARC_WPLT30 = 18 +const R_X86_64_16 = 12 +const R_X86_64_32 = 10 +const R_X86_64_32S = 11 +const R_X86_64_64 = 1 +const R_X86_64_8 = 14 +const R_X86_64_COPY = 5 +const R_X86_64_DTPMOD64 = 16 +const R_X86_64_DTPOFF32 = 21 +const R_X86_64_DTPOFF64 = 17 +const R_X86_64_GLOB_DAT = 6 +const R_X86_64_GOT32 = 3 +const R_X86_64_GOT64 = 27 +const R_X86_64_GOTOFF64 = 25 +const R_X86_64_GOTPC32 = 26 +const R_X86_64_GOTPC32_TLSDESC = 34 +const R_X86_64_GOTPC64 = 29 +const R_X86_64_GOTPCREL = 9 +const R_X86_64_GOTPCREL64 = 28 +const R_X86_64_GOTPCRELX = 41 +const R_X86_64_GOTPLT64 = 30 +const R_X86_64_GOTTPOFF = 22 +const R_X86_64_IRELATIVE = 37 +const R_X86_64_JUMP_SLOT = 7 +const R_X86_64_NONE = 0 +const R_X86_64_NUM = 43 +const R_X86_64_PC16 = 13 +const R_X86_64_PC32 = 2 +const R_X86_64_PC64 = 24 +const R_X86_64_PC8 = 15 +const R_X86_64_PLT32 = 4 +const R_X86_64_PLTOFF64 = 31 +const R_X86_64_RELATIVE = 8 +const R_X86_64_RELATIVE64 = 38 +const R_X86_64_REX_GOTPCRELX = 42 +const R_X86_64_SIZE32 = 32 +const R_X86_64_SIZE64 = 33 +const R_X86_64_TLSDESC = 36 +const R_X86_64_TLSDESC_CALL = 35 +const R_X86_64_TLSGD = 19 +const R_X86_64_TLSLD = 20 +const R_X86_64_TPOFF32 = 23 +const R_X86_64_TPOFF64 = 18 +const SA_EXPOSE_TAGBITS = 2048 +const SA_NOCLDSTOP = 1 +const SA_NOCLDWAIT = 2 +const SA_NODEFER = 1073741824 +const SA_ONSTACK = 134217728 +const SA_RESETHAND = 2147483648 +const SA_RESTART = 268435456 +const SA_RESTORER = 67108864 +const SA_SIGINFO = 4 +const SA_UNSUPPORTED = 1024 +const SCM_TIMESTAMPING_OLD = 37 +const SCM_TIMESTAMPNS_OLD = 35 +const SCM_TIMESTAMP_OLD = 29 +const SEGV_ACCERR = 2 +const SEGV_BNDERR = 3 +const SEGV_MAPERR = 1 +const SEGV_MTEAERR = 8 +const SEGV_MTESERR = 9 +const SEGV_PKUERR = 4 +const SELFMAG = 4 +const SHF_ALLOC = 2 +const SHF_ALPHA_GPREL = 268435456 +const SHF_ARM_COMDEF = 2147483648 +const SHF_ARM_ENTRYSECT = 268435456 +const SHF_COMPRESSED = 2048 +const SHF_EXCLUDE = 2147483648 +const SHF_EXECINSTR = 4 +const SHF_GROUP = 512 +const SHF_IA_64_NORECOV = 536870912 +const SHF_IA_64_SHORT = 268435456 +const SHF_INFO_LINK = 64 +const SHF_LINK_ORDER = 128 +const SHF_MASKOS = 267386880 +const SHF_MASKPROC = 4026531840 +const SHF_MERGE = 16 +const SHF_MIPS_ADDR = 1073741824 +const SHF_MIPS_GPREL = 268435456 +const SHF_MIPS_LOCAL = 67108864 +const SHF_MIPS_MERGE = 536870912 +const SHF_MIPS_NAMES = 33554432 +const SHF_MIPS_NODUPE = 16777216 +const SHF_MIPS_NOSTRIP = 134217728 +const SHF_MIPS_STRINGS = 2147483648 +const SHF_ORDERED = 1073741824 +const SHF_OS_NONCONFORMING = 256 +const SHF_PARISC_HUGE = 1073741824 +const SHF_PARISC_SBP = 2147483648 +const SHF_PARISC_SHORT = 536870912 +const SHF_STRINGS = 32 +const SHF_TLS = 1024 +const SHF_WRITE = 1 +const SHN_ABS = 65521 +const SHN_AFTER = 65281 +const SHN_BEFORE = 65280 +const SHN_COMMON = 65522 +const SHN_HIOS = 65343 +const SHN_HIPROC = 65311 +const SHN_HIRESERVE = 65535 +const SHN_LOOS = 65312 +const SHN_LOPROC = 65280 +const SHN_LORESERVE = 65280 +const SHN_MIPS_ACOMMON = 65280 +const SHN_MIPS_DATA = 65282 +const SHN_MIPS_SCOMMON = 65283 +const SHN_MIPS_SUNDEFINED = 65284 +const SHN_MIPS_TEXT = 65281 +const SHN_PARISC_ANSI_COMMON = 65280 +const SHN_PARISC_HUGE_COMMON = 65281 +const SHN_UNDEF = 0 +const SHN_XINDEX = 65535 +const SHT_ALPHA_DEBUG = 1879048193 +const SHT_ALPHA_REGINFO = 1879048194 +const SHT_ARM_ATTRIBUTES = 1879048195 +const SHT_ARM_EXIDX = 1879048193 +const SHT_ARM_PREEMPTMAP = 1879048194 +const SHT_CHECKSUM = 1879048184 +const SHT_DYNAMIC = 6 +const SHT_DYNSYM = 11 +const SHT_FINI_ARRAY = 15 +const SHT_GNU_ATTRIBUTES = 1879048181 +const SHT_GNU_HASH = 1879048182 +const SHT_GNU_LIBLIST = 1879048183 +const SHT_GNU_verdef = 1879048189 +const SHT_GNU_verneed = 1879048190 +const SHT_GNU_versym = 1879048191 +const SHT_GROUP = 17 +const SHT_HASH = 5 +const SHT_HIOS = 1879048191 +const SHT_HIPROC = 2147483647 +const SHT_HISUNW = 1879048191 +const SHT_HIUSER = 2415919103 +const SHT_IA_64_EXT = 1879048192 +const SHT_IA_64_UNWIND = 1879048193 +const SHT_INIT_ARRAY = 14 +const SHT_LOOS = 1610612736 +const SHT_LOPROC = 1879048192 +const SHT_LOSUNW = 1879048186 +const SHT_LOUSER = 2147483648 +const SHT_MIPS_AUXSYM = 1879048214 +const SHT_MIPS_CONFLICT = 1879048194 +const SHT_MIPS_CONTENT = 1879048204 +const SHT_MIPS_DEBUG = 1879048197 +const SHT_MIPS_DELTACLASS = 1879048221 +const SHT_MIPS_DELTADECL = 1879048223 +const SHT_MIPS_DELTAINST = 1879048220 +const SHT_MIPS_DELTASYM = 1879048219 +const SHT_MIPS_DENSE = 1879048211 +const SHT_MIPS_DWARF = 1879048222 +const SHT_MIPS_EH_REGION = 1879048231 +const SHT_MIPS_EVENTS = 1879048225 +const SHT_MIPS_EXTSYM = 1879048210 +const SHT_MIPS_FDESC = 1879048209 +const SHT_MIPS_GPTAB = 1879048195 +const SHT_MIPS_IFACE = 1879048203 +const SHT_MIPS_LIBLIST = 1879048192 +const SHT_MIPS_LINE = 1879048217 +const SHT_MIPS_LOCSTR = 1879048216 +const SHT_MIPS_LOCSYM = 1879048213 +const SHT_MIPS_MSYM = 1879048193 +const SHT_MIPS_OPTIONS = 1879048205 +const SHT_MIPS_OPTSYM = 1879048215 +const SHT_MIPS_PACKAGE = 1879048199 +const SHT_MIPS_PACKSYM = 1879048200 +const SHT_MIPS_PDESC = 1879048212 +const SHT_MIPS_PDR_EXCEPTION = 1879048233 +const SHT_MIPS_PIXIE = 1879048227 +const SHT_MIPS_REGINFO = 1879048198 +const SHT_MIPS_RELD = 1879048201 +const SHT_MIPS_RFDESC = 1879048218 +const SHT_MIPS_SHDR = 1879048208 +const SHT_MIPS_SYMBOL_LIB = 1879048224 +const SHT_MIPS_TRANSLATE = 1879048226 +const SHT_MIPS_UCODE = 1879048196 +const SHT_MIPS_WHIRL = 1879048230 +const SHT_MIPS_XLATE = 1879048228 +const SHT_MIPS_XLATE_DEBUG = 1879048229 +const SHT_MIPS_XLATE_OLD = 1879048232 +const SHT_NOBITS = 8 +const SHT_NOTE = 7 +const SHT_NULL = 0 +const SHT_NUM = 20 +const SHT_PARISC_DOC = 1879048194 +const SHT_PARISC_EXT = 1879048192 +const SHT_PARISC_UNWIND = 1879048193 +const SHT_PREINIT_ARRAY = 16 +const SHT_PROGBITS = 1 +const SHT_REL = 9 +const SHT_RELA = 4 +const SHT_RELR = 19 +const SHT_SHLIB = 10 +const SHT_STRTAB = 3 +const SHT_SUNW_COMDAT = 1879048187 +const SHT_SUNW_move = 1879048186 +const SHT_SUNW_syminfo = 1879048188 +const SHT_SYMTAB = 2 +const SHT_SYMTAB_SHNDX = 18 +const SIGABRT = 6 +const SIGALRM = 14 +const SIGBUS = 7 +const SIGCHLD = 17 +const SIGCONT = 18 +const SIGEV_NONE = 1 +const SIGEV_SIGNAL = 0 +const SIGEV_THREAD = 2 +const SIGEV_THREAD_ID = 4 +const SIGFPE = 8 +const SIGHUP = 1 +const SIGILL = 4 +const SIGINT = 2 +const SIGIO = 29 +const SIGIOT = 6 +const SIGKILL = 9 +const SIGPIPE = 13 +const SIGPOLL = 29 +const SIGPROF = 27 +const SIGPWR = 30 +const SIGQUIT = 3 +const SIGRTMAX = 0 +const SIGRTMIN = 0 +const SIGSEGV = 11 +const SIGSTKFLT = 16 +const SIGSTKSZ = 12288 +const SIGSTOP = 19 +const SIGSYS = 31 +const SIGTERM = 15 +const SIGTRAP = 5 +const SIGTSTP = 20 +const SIGTTIN = 21 +const SIGTTOU = 22 +const SIGUNUSED = 31 +const SIGURG = 23 +const SIGUSR1 = 10 +const SIGUSR2 = 12 +const SIGVTALRM = 26 +const SIGWINCH = 28 +const SIGXCPU = 24 +const SIGXFSZ = 25 +const SIG_BLOCK = 0 +const SIG_SETMASK = 2 +const SIG_UNBLOCK = 1 +const SIOCGSTAMPNS_OLD = 35079 +const SIOCGSTAMP_OLD = 35078 +const SI_ASYNCIO = -4 +const SI_ASYNCNL = -60 +const SI_KERNEL = 128 +const SI_MESGQ = -3 +const SI_QUEUE = -1 +const SI_SIGIO = -5 +const SI_TIMER = -2 +const SI_TKILL = -6 +const SI_USER = 0 +const SO_RCVTIMEO_OLD = 20 +const SO_SNDTIMEO_OLD = 21 +const SO_TIMESTAMPING_OLD = 37 +const SO_TIMESTAMPNS_OLD = 35 +const SO_TIMESTAMP_OLD = 29 +const SS_AUTODISARM = 2147483648 +const SS_DISABLE = 2 +const SS_FLAG_BITS = 2147483648 +const SS_ONSTACK = 1 +const STB_GLOBAL = 1 +const STB_GNU_UNIQUE = 10 +const STB_HIOS = 12 +const STB_HIPROC = 15 +const STB_LOCAL = 0 +const STB_LOOS = 10 +const STB_LOPROC = 13 +const STB_MIPS_SPLIT_COMMON = 13 +const STB_NUM = 3 +const STB_WEAK = 2 +const STN_UNDEF = 0 +const STO_ALPHA_NOPV = 128 +const STO_ALPHA_STD_GPLOAD = 136 +const STO_MIPS_DEFAULT = 0 +const STO_MIPS_HIDDEN = 2 +const STO_MIPS_INTERNAL = 1 +const STO_MIPS_PLT = 8 +const STO_MIPS_PROTECTED = 3 +const STO_MIPS_SC_ALIGN_UNUSED = 255 +const STO_PPC64_LOCAL_BIT = 5 +const STO_PPC64_LOCAL_MASK = 224 +const STT_ARM_16BIT = 15 +const STT_ARM_TFUNC = 13 +const STT_COMMON = 5 +const STT_FILE = 4 +const STT_FUNC = 2 +const STT_GNU_IFUNC = 10 +const STT_HIOS = 12 +const STT_HIPROC = 15 +const STT_HP_OPAQUE = 11 +const STT_HP_STUB = 12 +const STT_LOOS = 10 +const STT_LOPROC = 13 +const STT_NOTYPE = 0 +const STT_NUM = 7 +const STT_OBJECT = 1 +const STT_PARISC_MILLICODE = 13 +const STT_SECTION = 3 +const STT_SPARC_REGISTER = 13 +const STT_TLS = 6 +const STV_DEFAULT = 0 +const STV_HIDDEN = 2 +const STV_INTERNAL = 1 +const STV_PROTECTED = 3 +const SYMINFO_BT_LOWRESERVE = 65280 +const SYMINFO_BT_PARENT = 65534 +const SYMINFO_BT_SELF = 65535 +const SYMINFO_CURRENT = 1 +const SYMINFO_FLG_COPY = 4 +const SYMINFO_FLG_DIRECT = 1 +const SYMINFO_FLG_LAZYLOAD = 8 +const SYMINFO_FLG_PASSTHRU = 2 +const SYMINFO_NONE = 0 +const SYMINFO_NUM = 2 +const SYSCALL_MMAP2_UNIT = 4096 +const SYSCALL_RLIM_INFINITY = 18446744073709551615 +const SYS_accept = 202 +const SYS_accept4 = 242 +const SYS_acct = 89 +const SYS_add_key = 217 +const SYS_adjtimex = 171 +const SYS_bind = 200 +const SYS_bpf = 280 +const SYS_brk = 214 +const SYS_cachestat = 451 +const SYS_capget = 90 +const SYS_capset = 91 +const SYS_chdir = 49 +const SYS_chroot = 51 +const SYS_clock_adjtime = 266 +const SYS_clock_getres = 114 +const SYS_clock_gettime = 113 +const SYS_clock_nanosleep = 115 +const SYS_clock_settime = 112 +const SYS_clone = 220 +const SYS_clone3 = 435 +const SYS_close = 57 +const SYS_close_range = 436 +const SYS_connect = 203 +const SYS_copy_file_range = 285 +const SYS_delete_module = 106 +const SYS_dup = 23 +const SYS_dup3 = 24 +const SYS_epoll_create1 = 20 +const SYS_epoll_ctl = 21 +const SYS_epoll_pwait = 22 +const SYS_epoll_pwait2 = 441 +const SYS_eventfd2 = 19 +const SYS_execve = 221 +const SYS_execveat = 281 +const SYS_exit = 93 +const SYS_exit_group = 94 +const SYS_faccessat = 48 +const SYS_faccessat2 = 439 +const SYS_fadvise64 = 223 +const SYS_fallocate = 47 +const SYS_fanotify_init = 262 +const SYS_fanotify_mark = 263 +const SYS_fchdir = 50 +const SYS_fchmod = 52 +const SYS_fchmodat = 53 +const SYS_fchmodat2 = 452 +const SYS_fchown = 55 +const SYS_fchownat = 54 +const SYS_fcntl = 25 +const SYS_fdatasync = 83 +const SYS_fgetxattr = 10 +const SYS_finit_module = 273 +const SYS_flistxattr = 13 +const SYS_flock = 32 +const SYS_fremovexattr = 16 +const SYS_fsconfig = 431 +const SYS_fsetxattr = 7 +const SYS_fsmount = 432 +const SYS_fsopen = 430 +const SYS_fspick = 433 +const SYS_fstat = 80 +const SYS_fstatfs = 44 +const SYS_fsync = 82 +const SYS_ftruncate = 46 +const SYS_futex = 98 +const SYS_futex_waitv = 449 +const SYS_get_mempolicy = 236 +const SYS_get_robust_list = 100 +const SYS_getcpu = 168 +const SYS_getcwd = 17 +const SYS_getdents64 = 61 +const SYS_getegid = 177 +const SYS_geteuid = 175 +const SYS_getgid = 176 +const SYS_getgroups = 158 +const SYS_getitimer = 102 +const SYS_getpeername = 205 +const SYS_getpgid = 155 +const SYS_getpid = 172 +const SYS_getppid = 173 +const SYS_getpriority = 141 +const SYS_getrandom = 278 +const SYS_getresgid = 150 +const SYS_getresuid = 148 +const SYS_getrlimit = 163 +const SYS_getrusage = 165 +const SYS_getsid = 156 +const SYS_getsockname = 204 +const SYS_getsockopt = 209 +const SYS_gettid = 178 +const SYS_gettimeofday = 169 +const SYS_getuid = 174 +const SYS_getxattr = 8 +const SYS_init_module = 105 +const SYS_inotify_add_watch = 27 +const SYS_inotify_init1 = 26 +const SYS_inotify_rm_watch = 28 +const SYS_io_cancel = 3 +const SYS_io_destroy = 1 +const SYS_io_getevents = 4 +const SYS_io_pgetevents = 292 +const SYS_io_setup = 0 +const SYS_io_submit = 2 +const SYS_io_uring_enter = 426 +const SYS_io_uring_register = 427 +const SYS_io_uring_setup = 425 +const SYS_ioctl = 29 +const SYS_ioprio_get = 31 +const SYS_ioprio_set = 30 +const SYS_kcmp = 272 +const SYS_kexec_file_load = 294 +const SYS_kexec_load = 104 +const SYS_keyctl = 219 +const SYS_kill = 129 +const SYS_landlock_add_rule = 445 +const SYS_landlock_create_ruleset = 444 +const SYS_landlock_restrict_self = 446 +const SYS_lgetxattr = 9 +const SYS_linkat = 37 +const SYS_listen = 201 +const SYS_listxattr = 11 +const SYS_llistxattr = 12 +const SYS_lookup_dcookie = 18 +const SYS_lremovexattr = 15 +const SYS_lseek = 62 +const SYS_lsetxattr = 6 +const SYS_madvise = 233 +const SYS_mbind = 235 +const SYS_membarrier = 283 +const SYS_memfd_create = 279 +const SYS_migrate_pages = 238 +const SYS_mincore = 232 +const SYS_mkdirat = 34 +const SYS_mknodat = 33 +const SYS_mlock = 228 +const SYS_mlock2 = 284 +const SYS_mlockall = 230 +const SYS_mmap = 222 +const SYS_mount = 40 +const SYS_mount_setattr = 442 +const SYS_move_mount = 429 +const SYS_move_pages = 239 +const SYS_mprotect = 226 +const SYS_mq_getsetattr = 185 +const SYS_mq_notify = 184 +const SYS_mq_open = 180 +const SYS_mq_timedreceive = 183 +const SYS_mq_timedsend = 182 +const SYS_mq_unlink = 181 +const SYS_mremap = 216 +const SYS_msgctl = 187 +const SYS_msgget = 186 +const SYS_msgrcv = 188 +const SYS_msgsnd = 189 +const SYS_msync = 227 +const SYS_munlock = 229 +const SYS_munlockall = 231 +const SYS_munmap = 215 +const SYS_name_to_handle_at = 264 +const SYS_nanosleep = 101 +const SYS_newfstatat = 79 +const SYS_nfsservctl = 42 +const SYS_open_by_handle_at = 265 +const SYS_open_tree = 428 +const SYS_openat = 56 +const SYS_openat2 = 437 +const SYS_perf_event_open = 241 +const SYS_personality = 92 +const SYS_pidfd_getfd = 438 +const SYS_pidfd_open = 434 +const SYS_pidfd_send_signal = 424 +const SYS_pipe2 = 59 +const SYS_pivot_root = 41 +const SYS_pkey_alloc = 289 +const SYS_pkey_free = 290 +const SYS_pkey_mprotect = 288 +const SYS_ppoll = 73 +const SYS_prctl = 167 +const SYS_pread64 = 67 +const SYS_preadv = 69 +const SYS_preadv2 = 286 +const SYS_prlimit64 = 261 +const SYS_process_madvise = 440 +const SYS_process_mrelease = 448 +const SYS_process_vm_readv = 270 +const SYS_process_vm_writev = 271 +const SYS_pselect6 = 72 +const SYS_ptrace = 117 +const SYS_pwrite64 = 68 +const SYS_pwritev = 70 +const SYS_pwritev2 = 287 +const SYS_quotactl = 60 +const SYS_read = 63 +const SYS_readahead = 213 +const SYS_readlinkat = 78 +const SYS_readv = 65 +const SYS_reboot = 142 +const SYS_recvfrom = 207 +const SYS_recvmmsg = 243 +const SYS_recvmsg = 212 +const SYS_remap_file_pages = 234 +const SYS_removexattr = 14 +const SYS_renameat = 38 +const SYS_renameat2 = 276 +const SYS_request_key = 218 +const SYS_restart_syscall = 128 +const SYS_rseq = 293 +const SYS_rt_sigaction = 134 +const SYS_rt_sigpending = 136 +const SYS_rt_sigprocmask = 135 +const SYS_rt_sigqueueinfo = 138 +const SYS_rt_sigreturn = 139 +const SYS_rt_sigsuspend = 133 +const SYS_rt_sigtimedwait = 137 +const SYS_rt_tgsigqueueinfo = 240 +const SYS_sched_get_priority_max = 125 +const SYS_sched_get_priority_min = 126 +const SYS_sched_getaffinity = 123 +const SYS_sched_getattr = 275 +const SYS_sched_getparam = 121 +const SYS_sched_getscheduler = 120 +const SYS_sched_rr_get_interval = 127 +const SYS_sched_setaffinity = 122 +const SYS_sched_setattr = 274 +const SYS_sched_setparam = 118 +const SYS_sched_setscheduler = 119 +const SYS_sched_yield = 124 +const SYS_seccomp = 277 +const SYS_semctl = 191 +const SYS_semget = 190 +const SYS_semop = 193 +const SYS_semtimedop = 192 +const SYS_sendfile = 71 +const SYS_sendmmsg = 269 +const SYS_sendmsg = 211 +const SYS_sendto = 206 +const SYS_set_mempolicy = 237 +const SYS_set_mempolicy_home_node = 450 +const SYS_set_robust_list = 99 +const SYS_set_tid_address = 96 +const SYS_setdomainname = 162 +const SYS_setfsgid = 152 +const SYS_setfsuid = 151 +const SYS_setgid = 144 +const SYS_setgroups = 159 +const SYS_sethostname = 161 +const SYS_setitimer = 103 +const SYS_setns = 268 +const SYS_setpgid = 154 +const SYS_setpriority = 140 +const SYS_setregid = 143 +const SYS_setresgid = 149 +const SYS_setresuid = 147 +const SYS_setreuid = 145 +const SYS_setrlimit = 164 +const SYS_setsid = 157 +const SYS_setsockopt = 208 +const SYS_settimeofday = 170 +const SYS_setuid = 146 +const SYS_setxattr = 5 +const SYS_shmat = 196 +const SYS_shmctl = 195 +const SYS_shmdt = 197 +const SYS_shmget = 194 +const SYS_shutdown = 210 +const SYS_sigaltstack = 132 +const SYS_signalfd4 = 74 +const SYS_socket = 198 +const SYS_socketpair = 199 +const SYS_splice = 76 +const SYS_statfs = 43 +const SYS_statx = 291 +const SYS_swapoff = 225 +const SYS_swapon = 224 +const SYS_symlinkat = 36 +const SYS_sync = 81 +const SYS_sync_file_range = 84 +const SYS_syncfs = 267 +const SYS_sysinfo = 179 +const SYS_syslog = 116 +const SYS_tee = 77 +const SYS_tgkill = 131 +const SYS_timer_create = 107 +const SYS_timer_delete = 111 +const SYS_timer_getoverrun = 109 +const SYS_timer_gettime = 108 +const SYS_timer_settime = 110 +const SYS_timerfd_create = 85 +const SYS_timerfd_gettime = 87 +const SYS_timerfd_settime = 86 +const SYS_times = 153 +const SYS_tkill = 130 +const SYS_truncate = 45 +const SYS_umask = 166 +const SYS_umount2 = 39 +const SYS_uname = 160 +const SYS_unlinkat = 35 +const SYS_unshare = 97 +const SYS_userfaultfd = 282 +const SYS_utimensat = 88 +const SYS_vhangup = 58 +const SYS_vmsplice = 75 +const SYS_wait4 = 260 +const SYS_waitid = 95 +const SYS_write = 64 +const SYS_writev = 66 +const TRAP_BRANCH = 3 +const TRAP_BRKPT = 1 +const TRAP_HWBKPT = 4 +const TRAP_TRACE = 2 +const TRAP_UNK = 5 +const VER = -255 +const VER_DEF_CURRENT = 1 +const VER_DEF_NONE = 0 +const VER_DEF_NUM = 2 +const VER_FLG_BASE = 1 +const VER_FLG_WEAK = 2 +const VER_NDX_ELIMINATE = 65281 +const VER_NDX_GLOBAL = 1 +const VER_NDX_LOCAL = 0 +const VER_NDX_LORESERVE = 65280 +const VER_NEED_CURRENT = 1 +const VER_NEED_NONE = 0 +const VER_NEED_NUM = 2 +const WNOHANG = 1 +const WUNTRACED = 2 +const _NSIG = 65 +const __NR_accept = 202 +const __NR_accept4 = 242 +const __NR_acct = 89 +const __NR_add_key = 217 +const __NR_adjtimex = 171 +const __NR_bind = 200 +const __NR_bpf = 280 +const __NR_brk = 214 +const __NR_cachestat = 451 +const __NR_capget = 90 +const __NR_capset = 91 +const __NR_chdir = 49 +const __NR_chroot = 51 +const __NR_clock_adjtime = 266 +const __NR_clock_getres = 114 +const __NR_clock_gettime = 113 +const __NR_clock_nanosleep = 115 +const __NR_clock_settime = 112 +const __NR_clone = 220 +const __NR_clone3 = 435 +const __NR_close = 57 +const __NR_close_range = 436 +const __NR_connect = 203 +const __NR_copy_file_range = 285 +const __NR_delete_module = 106 +const __NR_dup = 23 +const __NR_dup3 = 24 +const __NR_epoll_create1 = 20 +const __NR_epoll_ctl = 21 +const __NR_epoll_pwait = 22 +const __NR_epoll_pwait2 = 441 +const __NR_eventfd2 = 19 +const __NR_execve = 221 +const __NR_execveat = 281 +const __NR_exit = 93 +const __NR_exit_group = 94 +const __NR_faccessat = 48 +const __NR_faccessat2 = 439 +const __NR_fadvise64 = 223 +const __NR_fallocate = 47 +const __NR_fanotify_init = 262 +const __NR_fanotify_mark = 263 +const __NR_fchdir = 50 +const __NR_fchmod = 52 +const __NR_fchmodat = 53 +const __NR_fchmodat2 = 452 +const __NR_fchown = 55 +const __NR_fchownat = 54 +const __NR_fcntl = 25 +const __NR_fdatasync = 83 +const __NR_fgetxattr = 10 +const __NR_finit_module = 273 +const __NR_flistxattr = 13 +const __NR_flock = 32 +const __NR_fremovexattr = 16 +const __NR_fsconfig = 431 +const __NR_fsetxattr = 7 +const __NR_fsmount = 432 +const __NR_fsopen = 430 +const __NR_fspick = 433 +const __NR_fstat = 80 +const __NR_fstatfs = 44 +const __NR_fsync = 82 +const __NR_ftruncate = 46 +const __NR_futex = 98 +const __NR_futex_waitv = 449 +const __NR_get_mempolicy = 236 +const __NR_get_robust_list = 100 +const __NR_getcpu = 168 +const __NR_getcwd = 17 +const __NR_getdents64 = 61 +const __NR_getegid = 177 +const __NR_geteuid = 175 +const __NR_getgid = 176 +const __NR_getgroups = 158 +const __NR_getitimer = 102 +const __NR_getpeername = 205 +const __NR_getpgid = 155 +const __NR_getpid = 172 +const __NR_getppid = 173 +const __NR_getpriority = 141 +const __NR_getrandom = 278 +const __NR_getresgid = 150 +const __NR_getresuid = 148 +const __NR_getrlimit = 163 +const __NR_getrusage = 165 +const __NR_getsid = 156 +const __NR_getsockname = 204 +const __NR_getsockopt = 209 +const __NR_gettid = 178 +const __NR_gettimeofday = 169 +const __NR_getuid = 174 +const __NR_getxattr = 8 +const __NR_init_module = 105 +const __NR_inotify_add_watch = 27 +const __NR_inotify_init1 = 26 +const __NR_inotify_rm_watch = 28 +const __NR_io_cancel = 3 +const __NR_io_destroy = 1 +const __NR_io_getevents = 4 +const __NR_io_pgetevents = 292 +const __NR_io_setup = 0 +const __NR_io_submit = 2 +const __NR_io_uring_enter = 426 +const __NR_io_uring_register = 427 +const __NR_io_uring_setup = 425 +const __NR_ioctl = 29 +const __NR_ioprio_get = 31 +const __NR_ioprio_set = 30 +const __NR_kcmp = 272 +const __NR_kexec_file_load = 294 +const __NR_kexec_load = 104 +const __NR_keyctl = 219 +const __NR_kill = 129 +const __NR_landlock_add_rule = 445 +const __NR_landlock_create_ruleset = 444 +const __NR_landlock_restrict_self = 446 +const __NR_lgetxattr = 9 +const __NR_linkat = 37 +const __NR_listen = 201 +const __NR_listxattr = 11 +const __NR_llistxattr = 12 +const __NR_lookup_dcookie = 18 +const __NR_lremovexattr = 15 +const __NR_lseek = 62 +const __NR_lsetxattr = 6 +const __NR_madvise = 233 +const __NR_mbind = 235 +const __NR_membarrier = 283 +const __NR_memfd_create = 279 +const __NR_migrate_pages = 238 +const __NR_mincore = 232 +const __NR_mkdirat = 34 +const __NR_mknodat = 33 +const __NR_mlock = 228 +const __NR_mlock2 = 284 +const __NR_mlockall = 230 +const __NR_mmap = 222 +const __NR_mount = 40 +const __NR_mount_setattr = 442 +const __NR_move_mount = 429 +const __NR_move_pages = 239 +const __NR_mprotect = 226 +const __NR_mq_getsetattr = 185 +const __NR_mq_notify = 184 +const __NR_mq_open = 180 +const __NR_mq_timedreceive = 183 +const __NR_mq_timedsend = 182 +const __NR_mq_unlink = 181 +const __NR_mremap = 216 +const __NR_msgctl = 187 +const __NR_msgget = 186 +const __NR_msgrcv = 188 +const __NR_msgsnd = 189 +const __NR_msync = 227 +const __NR_munlock = 229 +const __NR_munlockall = 231 +const __NR_munmap = 215 +const __NR_name_to_handle_at = 264 +const __NR_nanosleep = 101 +const __NR_newfstatat = 79 +const __NR_nfsservctl = 42 +const __NR_open_by_handle_at = 265 +const __NR_open_tree = 428 +const __NR_openat = 56 +const __NR_openat2 = 437 +const __NR_perf_event_open = 241 +const __NR_personality = 92 +const __NR_pidfd_getfd = 438 +const __NR_pidfd_open = 434 +const __NR_pidfd_send_signal = 424 +const __NR_pipe2 = 59 +const __NR_pivot_root = 41 +const __NR_pkey_alloc = 289 +const __NR_pkey_free = 290 +const __NR_pkey_mprotect = 288 +const __NR_ppoll = 73 +const __NR_prctl = 167 +const __NR_pread64 = 67 +const __NR_preadv = 69 +const __NR_preadv2 = 286 +const __NR_prlimit64 = 261 +const __NR_process_madvise = 440 +const __NR_process_mrelease = 448 +const __NR_process_vm_readv = 270 +const __NR_process_vm_writev = 271 +const __NR_pselect6 = 72 +const __NR_ptrace = 117 +const __NR_pwrite64 = 68 +const __NR_pwritev = 70 +const __NR_pwritev2 = 287 +const __NR_quotactl = 60 +const __NR_read = 63 +const __NR_readahead = 213 +const __NR_readlinkat = 78 +const __NR_readv = 65 +const __NR_reboot = 142 +const __NR_recvfrom = 207 +const __NR_recvmmsg = 243 +const __NR_recvmsg = 212 +const __NR_remap_file_pages = 234 +const __NR_removexattr = 14 +const __NR_renameat = 38 +const __NR_renameat2 = 276 +const __NR_request_key = 218 +const __NR_restart_syscall = 128 +const __NR_rseq = 293 +const __NR_rt_sigaction = 134 +const __NR_rt_sigpending = 136 +const __NR_rt_sigprocmask = 135 +const __NR_rt_sigqueueinfo = 138 +const __NR_rt_sigreturn = 139 +const __NR_rt_sigsuspend = 133 +const __NR_rt_sigtimedwait = 137 +const __NR_rt_tgsigqueueinfo = 240 +const __NR_sched_get_priority_max = 125 +const __NR_sched_get_priority_min = 126 +const __NR_sched_getaffinity = 123 +const __NR_sched_getattr = 275 +const __NR_sched_getparam = 121 +const __NR_sched_getscheduler = 120 +const __NR_sched_rr_get_interval = 127 +const __NR_sched_setaffinity = 122 +const __NR_sched_setattr = 274 +const __NR_sched_setparam = 118 +const __NR_sched_setscheduler = 119 +const __NR_sched_yield = 124 +const __NR_seccomp = 277 +const __NR_semctl = 191 +const __NR_semget = 190 +const __NR_semop = 193 +const __NR_semtimedop = 192 +const __NR_sendfile = 71 +const __NR_sendmmsg = 269 +const __NR_sendmsg = 211 +const __NR_sendto = 206 +const __NR_set_mempolicy = 237 +const __NR_set_mempolicy_home_node = 450 +const __NR_set_robust_list = 99 +const __NR_set_tid_address = 96 +const __NR_setdomainname = 162 +const __NR_setfsgid = 152 +const __NR_setfsuid = 151 +const __NR_setgid = 144 +const __NR_setgroups = 159 +const __NR_sethostname = 161 +const __NR_setitimer = 103 +const __NR_setns = 268 +const __NR_setpgid = 154 +const __NR_setpriority = 140 +const __NR_setregid = 143 +const __NR_setresgid = 149 +const __NR_setresuid = 147 +const __NR_setreuid = 145 +const __NR_setrlimit = 164 +const __NR_setsid = 157 +const __NR_setsockopt = 208 +const __NR_settimeofday = 170 +const __NR_setuid = 146 +const __NR_setxattr = 5 +const __NR_shmat = 196 +const __NR_shmctl = 195 +const __NR_shmdt = 197 +const __NR_shmget = 194 +const __NR_shutdown = 210 +const __NR_sigaltstack = 132 +const __NR_signalfd4 = 74 +const __NR_socket = 198 +const __NR_socketpair = 199 +const __NR_splice = 76 +const __NR_statfs = 43 +const __NR_statx = 291 +const __NR_swapoff = 225 +const __NR_swapon = 224 +const __NR_symlinkat = 36 +const __NR_sync = 81 +const __NR_sync_file_range = 84 +const __NR_syncfs = 267 +const __NR_sysinfo = 179 +const __NR_syslog = 116 +const __NR_tee = 77 +const __NR_tgkill = 131 +const __NR_timer_create = 107 +const __NR_timer_delete = 111 +const __NR_timer_getoverrun = 109 +const __NR_timer_gettime = 108 +const __NR_timer_settime = 110 +const __NR_timerfd_create = 85 +const __NR_timerfd_gettime = 87 +const __NR_timerfd_settime = 86 +const __NR_times = 153 +const __NR_tkill = 130 +const __NR_truncate = 45 +const __NR_umask = 166 +const __NR_umount2 = 39 +const __NR_uname = 160 +const __NR_unlinkat = 35 +const __NR_unshare = 97 +const __NR_userfaultfd = 282 +const __NR_utimensat = 88 +const __NR_vhangup = 58 +const __NR_vmsplice = 75 +const __NR_wait4 = 260 +const __NR_waitid = 95 +const __NR_write = 64 +const __NR_writev = 66 +const __SC_accept = 5 +const __SC_accept4 = 18 +const __SC_bind = 2 +const __SC_connect = 3 +const __SC_getpeername = 7 +const __SC_getsockname = 6 +const __SC_getsockopt = 15 +const __SC_listen = 4 +const __SC_recv = 10 +const __SC_recvfrom = 12 +const __SC_recvmmsg = 19 +const __SC_recvmsg = 17 +const __SC_send = 9 +const __SC_sendmmsg = 20 +const __SC_sendmsg = 16 +const __SC_sendto = 11 +const __SC_setsockopt = 14 +const __SC_shutdown = 13 +const __SC_socket = 1 +const __SC_socketpair = 8 +const libc = 0 + +type Ttime_t = int64 + +type Tsuseconds_t = int64 + +type Ttimeval = struct { + Ftv_sec Ttime_t + Ftv_usec Tsuseconds_t +} + +type Ttimespec = struct { + Ftv_sec Ttime_t + Ftv_nsec int64 +} + +type Tsigset_t = struct { + F__bits [16]uint64 +} + +type t__sigset_t = Tsigset_t + +type Tfd_mask = uint64 + +type Tfd_set = struct { + Ffds_bits [16]uint64 +} + +type Titimerval = struct { + Fit_interval Ttimeval + Fit_value Ttimeval +} + +type Tid_t = uint32 + +type Trlim_t = uint64 + +type Trlimit = struct { + Frlim_cur Trlim_t + Frlim_max Trlim_t +} + +type Trusage = struct { + Fru_utime Ttimeval + Fru_stime Ttimeval + Fru_maxrss int64 + Fru_ixrss int64 + Fru_idrss int64 + Fru_isrss int64 + Fru_minflt int64 + Fru_majflt int64 + Fru_nswap int64 + Fru_inblock int64 + Fru_oublock int64 + Fru_msgsnd int64 + Fru_msgrcv int64 + Fru_nsignals int64 + Fru_nvcsw int64 + Fru_nivcsw int64 + F__reserved [16]int64 +} + +type Tclock_t = int64 + +type Tpthread_t = uintptr + +type Tpthread_attr_t = struct { + F__u struct { + F__vi [0][14]int32 + F__s [0][7]uint64 + F__i [14]int32 + } +} + +type Tstack_t = struct { + Fss_sp uintptr + Fss_flags int32 + Fss_size Tsize_t +} + +type Tsigaltstack = Tstack_t + +type Tmcontext_t = struct { + F__regs [274]float64 +} + +type Tucontext_t = struct { + Fuc_flags uint64 + Fuc_link uintptr + Fuc_stack Tstack_t + Fuc_sigmask Tsigset_t + Fuc_mcontext Tmcontext_t +} + +type t__ucontext = Tucontext_t + +type Tsigval = struct { + Fsival_ptr [0]uintptr + Fsival_int int32 + F__ccgo_pad2 [4]byte +} + +type Tsiginfo_t = struct { + Fsi_signo int32 + Fsi_errno int32 + Fsi_code int32 + F__si_fields struct { + F__si_common [0]struct { + F__first struct { + F__timer [0]struct { + Fsi_timerid int32 + Fsi_overrun int32 + } + F__piduid struct { + Fsi_pid Tpid_t + Fsi_uid Tuid_t + } + } + F__second struct { + F__sigchld [0]struct { + Fsi_status int32 + Fsi_utime Tclock_t + Fsi_stime Tclock_t + } + Fsi_value Tsigval + F__ccgo_pad2 [16]byte + } + } + F__sigfault [0]struct { + Fsi_addr uintptr + Fsi_addr_lsb int16 + F__first struct { + Fsi_pkey [0]uint32 + F__addr_bnd struct { + Fsi_lower uintptr + Fsi_upper uintptr + } + } + } + F__sigpoll [0]struct { + Fsi_band int64 + Fsi_fd int32 + } + F__sigsys [0]struct { + Fsi_call_addr uintptr + Fsi_syscall int32 + Fsi_arch uint32 + } + F__pad [112]uint8 + } +} + +type Tsigaction = struct { + F__sa_handler struct { + Fsa_sigaction [0]uintptr + Fsa_handler uintptr + } + Fsa_mask Tsigset_t + Fsa_flags int32 + Fsa_restorer uintptr +} + +type Tsigevent = struct { + Fsigev_value Tsigval + Fsigev_signo int32 + Fsigev_notify int32 + F__sev_fields struct { + Fsigev_notify_thread_id [0]Tpid_t + F__sev_thread [0]struct { + Fsigev_notify_function uintptr + Fsigev_notify_attributes uintptr + } + F__pad [48]uint8 + } +} + +type Tsig_atomic_t = int32 + +type TElf32_Half = uint16 + +type TElf64_Half = uint16 + +type TElf32_Word = uint32 + +type TElf32_Sword = int32 + +type TElf64_Word = uint32 + +type TElf64_Sword = int32 + +type TElf32_Xword = uint64 + +type TElf32_Sxword = int64 + +type TElf64_Xword = uint64 + +type TElf64_Sxword = int64 + +type TElf32_Addr = uint32 + +type TElf64_Addr = uint64 + +type TElf32_Off = uint32 + +type TElf64_Off = uint64 + +type TElf32_Section = uint16 + +type TElf64_Section = uint16 + +type TElf32_Versym = uint16 + +type TElf64_Versym = uint16 + +type TElf32_Ehdr = struct { + Fe_ident [16]uint8 + Fe_type TElf32_Half + Fe_machine TElf32_Half + Fe_version TElf32_Word + Fe_entry TElf32_Addr + Fe_phoff TElf32_Off + Fe_shoff TElf32_Off + Fe_flags TElf32_Word + Fe_ehsize TElf32_Half + Fe_phentsize TElf32_Half + Fe_phnum TElf32_Half + Fe_shentsize TElf32_Half + Fe_shnum TElf32_Half + Fe_shstrndx TElf32_Half +} + +type TElf64_Ehdr = struct { + Fe_ident [16]uint8 + Fe_type TElf64_Half + Fe_machine TElf64_Half + Fe_version TElf64_Word + Fe_entry TElf64_Addr + Fe_phoff TElf64_Off + Fe_shoff TElf64_Off + Fe_flags TElf64_Word + Fe_ehsize TElf64_Half + Fe_phentsize TElf64_Half + Fe_phnum TElf64_Half + Fe_shentsize TElf64_Half + Fe_shnum TElf64_Half + Fe_shstrndx TElf64_Half +} + +type TElf32_Shdr = struct { + Fsh_name TElf32_Word + Fsh_type TElf32_Word + Fsh_flags TElf32_Word + Fsh_addr TElf32_Addr + Fsh_offset TElf32_Off + Fsh_size TElf32_Word + Fsh_link TElf32_Word + Fsh_info TElf32_Word + Fsh_addralign TElf32_Word + Fsh_entsize TElf32_Word +} + +type TElf64_Shdr = struct { + Fsh_name TElf64_Word + Fsh_type TElf64_Word + Fsh_flags TElf64_Xword + Fsh_addr TElf64_Addr + Fsh_offset TElf64_Off + Fsh_size TElf64_Xword + Fsh_link TElf64_Word + Fsh_info TElf64_Word + Fsh_addralign TElf64_Xword + Fsh_entsize TElf64_Xword +} + +type TElf32_Chdr = struct { + Fch_type TElf32_Word + Fch_size TElf32_Word + Fch_addralign TElf32_Word +} + +type TElf64_Chdr = struct { + Fch_type TElf64_Word + Fch_reserved TElf64_Word + Fch_size TElf64_Xword + Fch_addralign TElf64_Xword +} + +type TElf32_Sym = struct { + Fst_name TElf32_Word + Fst_value TElf32_Addr + Fst_size TElf32_Word + Fst_info uint8 + Fst_other uint8 + Fst_shndx TElf32_Section +} + +type TElf64_Sym = struct { + Fst_name TElf64_Word + Fst_info uint8 + Fst_other uint8 + Fst_shndx TElf64_Section + Fst_value TElf64_Addr + Fst_size TElf64_Xword +} + +type TElf32_Syminfo = struct { + Fsi_boundto TElf32_Half + Fsi_flags TElf32_Half +} + +type TElf64_Syminfo = struct { + Fsi_boundto TElf64_Half + Fsi_flags TElf64_Half +} + +type TElf32_Rel = struct { + Fr_offset TElf32_Addr + Fr_info TElf32_Word +} + +type TElf64_Rel = struct { + Fr_offset TElf64_Addr + Fr_info TElf64_Xword +} + +type TElf32_Rela = struct { + Fr_offset TElf32_Addr + Fr_info TElf32_Word + Fr_addend TElf32_Sword +} + +type TElf64_Rela = struct { + Fr_offset TElf64_Addr + Fr_info TElf64_Xword + Fr_addend TElf64_Sxword +} + +type TElf32_Relr = uint32 + +type TElf64_Relr = uint64 + +type TElf32_Phdr = struct { + Fp_type TElf32_Word + Fp_offset TElf32_Off + Fp_vaddr TElf32_Addr + Fp_paddr TElf32_Addr + Fp_filesz TElf32_Word + Fp_memsz TElf32_Word + Fp_flags TElf32_Word + Fp_align TElf32_Word +} + +type TElf64_Phdr = struct { + Fp_type TElf64_Word + Fp_flags TElf64_Word + Fp_offset TElf64_Off + Fp_vaddr TElf64_Addr + Fp_paddr TElf64_Addr + Fp_filesz TElf64_Xword + Fp_memsz TElf64_Xword + Fp_align TElf64_Xword +} + +type TElf32_Dyn = struct { + Fd_tag TElf32_Sword + Fd_un struct { + Fd_ptr [0]TElf32_Addr + Fd_val TElf32_Word + } +} + +type TElf64_Dyn = struct { + Fd_tag TElf64_Sxword + Fd_un struct { + Fd_ptr [0]TElf64_Addr + Fd_val TElf64_Xword + } +} + +type TElf32_Verdef = struct { + Fvd_version TElf32_Half + Fvd_flags TElf32_Half + Fvd_ndx TElf32_Half + Fvd_cnt TElf32_Half + Fvd_hash TElf32_Word + Fvd_aux TElf32_Word + Fvd_next TElf32_Word +} + +type TElf64_Verdef = struct { + Fvd_version TElf64_Half + Fvd_flags TElf64_Half + Fvd_ndx TElf64_Half + Fvd_cnt TElf64_Half + Fvd_hash TElf64_Word + Fvd_aux TElf64_Word + Fvd_next TElf64_Word +} + +type TElf32_Verdaux = struct { + Fvda_name TElf32_Word + Fvda_next TElf32_Word +} + +type TElf64_Verdaux = struct { + Fvda_name TElf64_Word + Fvda_next TElf64_Word +} + +type TElf32_Verneed = struct { + Fvn_version TElf32_Half + Fvn_cnt TElf32_Half + Fvn_file TElf32_Word + Fvn_aux TElf32_Word + Fvn_next TElf32_Word +} + +type TElf64_Verneed = struct { + Fvn_version TElf64_Half + Fvn_cnt TElf64_Half + Fvn_file TElf64_Word + Fvn_aux TElf64_Word + Fvn_next TElf64_Word +} + +type TElf32_Vernaux = struct { + Fvna_hash TElf32_Word + Fvna_flags TElf32_Half + Fvna_other TElf32_Half + Fvna_name TElf32_Word + Fvna_next TElf32_Word +} + +type TElf64_Vernaux = struct { + Fvna_hash TElf64_Word + Fvna_flags TElf64_Half + Fvna_other TElf64_Half + Fvna_name TElf64_Word + Fvna_next TElf64_Word +} + +type TElf32_auxv_t = struct { + Fa_type Tuint32_t + Fa_un struct { + Fa_val Tuint32_t + } +} + +type TElf64_auxv_t = struct { + Fa_type Tuint64_t + Fa_un struct { + Fa_val Tuint64_t + } +} + +type TElf32_Nhdr = struct { + Fn_namesz TElf32_Word + Fn_descsz TElf32_Word + Fn_type TElf32_Word +} + +type TElf64_Nhdr = struct { + Fn_namesz TElf64_Word + Fn_descsz TElf64_Word + Fn_type TElf64_Word +} + +type TElf32_Move = struct { + Fm_value TElf32_Xword + Fm_info TElf32_Word + Fm_poffset TElf32_Word + Fm_repeat TElf32_Half + Fm_stride TElf32_Half +} + +type TElf64_Move = struct { + Fm_value TElf64_Xword + Fm_info TElf64_Xword + Fm_poffset TElf64_Xword + Fm_repeat TElf64_Half + Fm_stride TElf64_Half +} + +type TElf32_gptab = struct { + Fgt_entry [0]struct { + Fgt_g_value TElf32_Word + Fgt_bytes TElf32_Word + } + Fgt_header struct { + Fgt_current_g_value TElf32_Word + Fgt_unused TElf32_Word + } +} + +type TElf32_RegInfo = struct { + Fri_gprmask TElf32_Word + Fri_cprmask [4]TElf32_Word + Fri_gp_value TElf32_Sword +} + +type TElf_Options = struct { + Fkind uint8 + Fsize uint8 + Fsection TElf32_Section + Finfo TElf32_Word +} + +type TElf_Options_Hw = struct { + Fhwp_flags1 TElf32_Word + Fhwp_flags2 TElf32_Word +} + +type TElf32_Lib = struct { + Fl_name TElf32_Word + Fl_time_stamp TElf32_Word + Fl_checksum TElf32_Word + Fl_version TElf32_Word + Fl_flags TElf32_Word +} + +type TElf64_Lib = struct { + Fl_name TElf64_Word + Fl_time_stamp TElf64_Word + Fl_checksum TElf64_Word + Fl_version TElf64_Word + Fl_flags TElf64_Word +} + +type TElf32_Conflict = uint32 + +type TElf_MIPS_ABIFlags_v0 = struct { + Fversion TElf32_Half + Fisa_level uint8 + Fisa_rev uint8 + Fgpr_size uint8 + Fcpr1_size uint8 + Fcpr2_size uint8 + Ffp_abi uint8 + Fisa_ext TElf32_Word + Fases TElf32_Word + Fflags1 TElf32_Word + Fflags2 TElf32_Word +} + +const _Val_GNU_MIPS_ABI_FP_ANY = 0 +const _Val_GNU_MIPS_ABI_FP_DOUBLE = 1 +const _Val_GNU_MIPS_ABI_FP_SINGLE = 2 +const _Val_GNU_MIPS_ABI_FP_SOFT = 3 +const _Val_GNU_MIPS_ABI_FP_OLD_64 = 4 +const _Val_GNU_MIPS_ABI_FP_XX = 5 +const _Val_GNU_MIPS_ABI_FP_64 = 6 +const _Val_GNU_MIPS_ABI_FP_64A = 7 +const _Val_GNU_MIPS_ABI_FP_MAX = 7 + +type Tsyscall_arg_t = int64 + +type Twchar_t = uint32 + +type Tdiv_t = struct { + Fquot int32 + Frem int32 +} + +type Tldiv_t = struct { + Fquot int64 + Frem int64 +} + +type Tlldiv_t = struct { + Fquot int64 + Frem int64 +} + +type t__locale_struct = struct { + Fcat [6]uintptr +} + +type Ttls_module = struct { + Fnext uintptr + Fimage uintptr + Flen1 Tsize_t + Fsize Tsize_t + Falign Tsize_t + Foffset Tsize_t +} + +type t__libc = struct { + Fcan_do_threads uint8 + Fthreaded uint8 + Fsecure uint8 + Fneed_locks int8 + Fthreads_minus_1 int32 + Fauxv uintptr + Ftls_head uintptr + Ftls_size Tsize_t + Ftls_align Tsize_t + Ftls_cnt Tsize_t + Fpage_size Tsize_t + Fglobal_locale t__locale_struct +} + +func Xsysconf(tls *TLS, name int32) (r int64) { + if __ccgo_strace { + trc("tls=%v name=%v, (%v:)", tls, name, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(512) + defer tls.Free(512) + var cnt, i, v3 int32 + var mem, v1, v6 uint64 + var val int64 + var p5 uintptr + var _ /* lim at bp+0 */ Trlimit + var _ /* set at bp+16 */ [128]uint8 + var _ /* si at bp+144 */ Tsysinfo + _, _, _, _, _, _, _, _ = cnt, i, mem, val, v1, v3, v6, p5 + if uint64(name) >= Uint64FromInt64(502)/Uint64FromInt64(2) || !(_values1[name] != 0) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return int64(-int32(1)) + } else { + if int32(_values1[name]) >= -int32(1) { + return int64(_values1[name]) + } else { + if int32(_values1[name]) < -int32(256) { + Xgetrlimit(tls, int32(_values1[name])&int32(16383), bp) + if (*(*Trlimit)(unsafe.Pointer(bp))).Frlim_cur == ^Uint64FromUint64(0) { + return int64(-int32(1)) + } + if (*(*Trlimit)(unsafe.Pointer(bp))).Frlim_cur > uint64(0x7fffffffffffffff) { + v1 = uint64(0x7fffffffffffffff) + } else { + v1 = (*(*Trlimit)(unsafe.Pointer(bp))).Frlim_cur + } + return int64(v1) + } + } + } + switch int32(uint8(_values1[name])) { + case (-Int32FromInt32(256) | Int32FromInt32(1)) & Int32FromInt32(255): + return int64(200809) + case (-Int32FromInt32(256) | Int32FromInt32(2)) & Int32FromInt32(255): + return int64(ARG_MAX) + case (-Int32FromInt32(256) | Int32FromInt32(3)) & Int32FromInt32(255): + return int64(MQ_PRIO_MAX) + case (-Int32FromInt32(256) | Int32FromInt32(4)) & Int32FromInt32(255): + return int64(X__libc.Fpage_size) + case (-Int32FromInt32(256) | Int32FromInt32(5)) & Int32FromInt32(255): + return int64(SEM_VALUE_MAX) + case (-Int32FromInt32(256) | Int32FromInt32(11)) & Int32FromInt32(255): + return int64(DELAYTIMER_MAX) + case (-Int32FromInt32(256) | Int32FromInt32(6)) & Int32FromInt32(255): + fallthrough + case (-Int32FromInt32(256) | Int32FromInt32(7)) & Int32FromInt32(255): + *(*[128]uint8)(unsafe.Pointer(bp + 16)) = [128]uint8{ + 0: uint8(1), + } + X__syscall3(tls, int64(SYS_sched_getaffinity), int64(Int32FromInt32(0)), int64(Uint64FromInt64(128)), int64(bp+16)) + v3 = Int32FromInt32(0) + cnt = v3 + i = v3 + for { + if !(uint64(i) < uint64(128)) { + break + } + for { + if !((*(*[128]uint8)(unsafe.Pointer(bp + 16)))[i] != 0) { + break + } + goto _4 + _4: + ; + p5 = bp + 16 + uintptr(i) + *(*uint8)(unsafe.Pointer(p5)) = uint8(int32(*(*uint8)(unsafe.Pointer(p5))) & (int32((*(*[128]uint8)(unsafe.Pointer(bp + 16)))[i]) - Int32FromInt32(1))) + cnt++ + } + goto _2 + _2: + ; + i++ + } + return int64(cnt) + case (-Int32FromInt32(256) | Int32FromInt32(8)) & Int32FromInt32(255): + fallthrough + case (-Int32FromInt32(256) | Int32FromInt32(9)) & Int32FromInt32(255): + X__lsysinfo(tls, bp+144) + if !((*(*Tsysinfo)(unsafe.Pointer(bp + 144))).Fmem_unit != 0) { + (*(*Tsysinfo)(unsafe.Pointer(bp + 144))).Fmem_unit = uint32(1) + } + if name == int32(_SC_PHYS_PAGES) { + mem = (*(*Tsysinfo)(unsafe.Pointer(bp + 144))).Ftotalram + } else { + mem = (*(*Tsysinfo)(unsafe.Pointer(bp + 144))).Ffreeram + (*(*Tsysinfo)(unsafe.Pointer(bp + 144))).Fbufferram + } + mem *= uint64((*(*Tsysinfo)(unsafe.Pointer(bp + 144))).Fmem_unit) + mem /= X__libc.Fpage_size + if mem > uint64(0x7fffffffffffffff) { + v6 = uint64(0x7fffffffffffffff) + } else { + v6 = mem + } + return int64(v6) + case (-Int32FromInt32(256) | Int32FromInt32(12)) & Int32FromInt32(255): + fallthrough + case (-Int32FromInt32(256) | Int32FromInt32(13)) & Int32FromInt32(255): + val = int64(X__getauxval(tls, uint64(AT_MINSIGSTKSZ))) + if val < int64(MINSIGSTKSZ) { + val = int64(MINSIGSTKSZ) + } + if int32(_values1[name]) == -Int32FromInt32(256)|Int32FromInt32(13) { + val += int64(Int32FromInt32(SIGSTKSZ) - Int32FromInt32(MINSIGSTKSZ)) + } + return val + case (-Int32FromInt32(256) | Int32FromInt32(10)) & Int32FromInt32(255): + return 0 + } + return int64(_values1[name]) +} + +var _values1 = [251]int16{ + 0: int16(-Int32FromInt32(256) | Int32FromInt32(2)), + 1: int16(-Int32FromInt32(32768) | Int32FromInt32(RLIMIT_NPROC)), + 2: int16(100), + 3: int16(32), + 4: int16(-Int32FromInt32(32768) | Int32FromInt32(RLIMIT_NOFILE)), + 5: int16(-int32(1)), + 6: int16(TZNAME_MAX), + 7: int16(1), + 8: int16(1), + 9: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 10: int16(-int32(1)), + 11: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 12: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 13: int16(-int32(1)), + 14: int16(-int32(1)), + 15: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 16: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 17: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 18: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 19: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 20: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 21: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 22: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 23: int16(-int32(1)), + 24: int16(-int32(1)), + 25: int16(-Int32FromInt32(256) | Int32FromInt32(10)), + 26: int16(-Int32FromInt32(256) | Int32FromInt32(11)), + 27: int16(-int32(1)), + 28: int16(-Int32FromInt32(256) | Int32FromInt32(3)), + 29: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 30: int16(-Int32FromInt32(256) | Int32FromInt32(4)), + 31: int16(Int32FromInt32(_NSIG) - Int32FromInt32(1) - Int32FromInt32(31) - Int32FromInt32(3)), + 32: int16(SEM_NSEMS_MAX), + 33: int16(-Int32FromInt32(256) | Int32FromInt32(5)), + 34: int16(-int32(1)), + 35: int16(-int32(1)), + 36: int16(_POSIX2_BC_BASE_MAX), + 37: int16(_POSIX2_BC_DIM_MAX), + 38: int16(_POSIX2_BC_SCALE_MAX), + 39: int16(_POSIX2_BC_STRING_MAX), + 40: int16(COLL_WEIGHTS_MAX), + 42: int16(-int32(1)), + 43: int16(-int32(1)), + 44: int16(RE_DUP_MAX), + 46: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 47: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 48: int16(-int32(1)), + 49: int16(-int32(1)), + 50: int16(-int32(1)), + 51: int16(-int32(1)), + 52: int16(-int32(1)), + 60: int16(IOV_MAX), + 67: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 68: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 69: int16(-int32(1)), + 70: int16(-int32(1)), + 71: int16(256), + 72: int16(TTY_NAME_MAX), + 73: int16(PTHREAD_DESTRUCTOR_ITERATIONS), + 74: int16(PTHREAD_KEYS_MAX), + 75: int16(PTHREAD_STACK_MIN), + 76: int16(-int32(1)), + 77: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 78: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 79: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 80: int16(-int32(1)), + 81: int16(-int32(1)), + 82: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 83: int16(-Int32FromInt32(256) | Int32FromInt32(6)), + 84: int16(-Int32FromInt32(256) | Int32FromInt32(7)), + 85: int16(-Int32FromInt32(256) | Int32FromInt32(8)), + 86: int16(-Int32FromInt32(256) | Int32FromInt32(9)), + 87: int16(-int32(1)), + 88: int16(-int32(1)), + 89: int16(_XOPEN_VERSION), + 90: int16(_XOPEN_VERSION), + 91: int16(1), + 92: int16(-int32(1)), + 93: int16(1), + 94: int16(1), + 95: int16(-int32(1)), + 97: int16(-int32(1)), + 98: int16(-int32(1)), + 99: int16(-int32(1)), + 100: int16(-int32(1)), + 109: int16(NZERO), + 125: int16(-int32(1)), + 126: int16(-int32(1)), + 127: int16(1), + 128: int16(-int32(1)), + 129: int16(-int32(1)), + 130: int16(-int32(1)), + 131: int16(-int32(1)), + 132: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 133: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 137: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 138: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 139: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 149: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 153: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 154: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 155: int16(1), + 157: int16(1), + 159: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 160: int16(-int32(1)), + 161: int16(-int32(1)), + 164: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 165: int16(-int32(1)), + 168: int16(-int32(1)), + 169: int16(-int32(1)), + 170: int16(-int32(1)), + 171: int16(-int32(1)), + 172: int16(-int32(1)), + 173: int16(SYMLOOP_MAX), + 174: int16(-Int32FromInt32(256) | Int32FromInt32(10)), + 175: int16(-int32(1)), + 176: int16(-int32(1)), + 177: int16(-int32(1)), + 178: int16(1), + 179: int16(-int32(1)), + 180: int16(HOST_NAME_MAX), + 181: int16(-int32(1)), + 182: int16(-int32(1)), + 183: int16(-int32(1)), + 184: int16(-int32(1)), + 235: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 236: int16(-Int32FromInt32(256) | Int32FromInt32(1)), + 237: int16(-int32(1)), + 238: int16(-int32(1)), + 239: int16(1), + 240: int16(-int32(1)), + 241: int16(-int32(1)), + 242: int16(-int32(1)), + 243: int16(-int32(1)), + 244: int16(-int32(1)), + 245: int16(-int32(1)), + 246: int16(-Int32FromInt32(256) | Int32FromInt32(10)), + 247: int16(-int32(1)), + 248: int16(-int32(1)), + 249: int16(-Int32FromInt32(256) | Int32FromInt32(12)), + 250: int16(-Int32FromInt32(256) | Int32FromInt32(13)), +} + +type Tcrypt_data = struct { + Finitialized int32 + F__buf [256]uint8 +} + +func Xcrypt(tls *TLS, key uintptr, salt uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v key=%v salt=%v, (%v:)", tls, key, salt, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__crypt_r(tls, key, salt, uintptr(unsafe.Pointer(&_buf))) +} + +/* This buffer is sufficiently large for all + * currently-supported hash types. It needs to be updated if + * longer hashes are added. The cast to struct crypt_data * is + * purely to meet the public API requirements of the crypt_r + * function; the implementation of crypt_r uses the object + * purely as a char buffer. */ +var _buf [128]uint8 + +const BF_N = 16 + +type Tlocale_t = uintptr + +type TBF_word = uint32 + +type TBF_word_signed = int32 + +/* Number of Blowfish rounds, this is also hardcoded into a few places */ + +type TBF_key = [18]TBF_word + +type TBF_ctx = struct { + FPS [0][1042]TBF_word + Fs struct { + FP TBF_key + FS [4][256]TBF_word + } +} + +// C documentation +// +// /* +// * Magic IV for 64 Blowfish encryptions that we do at the end. +// * The string is "OrpheanBeholderScryDoubt" on big-endian. +// */ +var _BF_magic_w = [6]TBF_word{ + 0: uint32(0x4F727068), + 1: uint32(0x65616E42), + 2: uint32(0x65686F6C), + 3: uint32(0x64657253), + 4: uint32(0x63727944), + 5: uint32(0x6F756274), +} + +// C documentation +// +// /* +// * P-box and S-box tables initialized with digits of Pi. +// */ +var _BF_init_state = *(*TBF_ctx)(unsafe.Pointer(&struct { + FP TBF_key + FS [4][256]TBF_word +}{ + FP: TBF_key{ + 0: uint32(0x243f6a88), + 1: uint32(0x85a308d3), + 2: uint32(0x13198a2e), + 3: uint32(0x03707344), + 4: uint32(0xa4093822), + 5: uint32(0x299f31d0), + 6: uint32(0x082efa98), + 7: uint32(0xec4e6c89), + 8: uint32(0x452821e6), + 9: uint32(0x38d01377), + 10: uint32(0xbe5466cf), + 11: uint32(0x34e90c6c), + 12: uint32(0xc0ac29b7), + 13: uint32(0xc97c50dd), + 14: uint32(0x3f84d5b5), + 15: uint32(0xb5470917), + 16: uint32(0x9216d5d9), + 17: uint32(0x8979fb1b), + }, + FS: [4][256]TBF_word{ + 0: { + 0: uint32(0xd1310ba6), + 1: uint32(0x98dfb5ac), + 2: uint32(0x2ffd72db), + 3: uint32(0xd01adfb7), + 4: uint32(0xb8e1afed), + 5: uint32(0x6a267e96), + 6: uint32(0xba7c9045), + 7: uint32(0xf12c7f99), + 8: uint32(0x24a19947), + 9: uint32(0xb3916cf7), + 10: uint32(0x0801f2e2), + 11: uint32(0x858efc16), + 12: uint32(0x636920d8), + 13: uint32(0x71574e69), + 14: uint32(0xa458fea3), + 15: uint32(0xf4933d7e), + 16: uint32(0x0d95748f), + 17: uint32(0x728eb658), + 18: uint32(0x718bcd58), + 19: uint32(0x82154aee), + 20: uint32(0x7b54a41d), + 21: uint32(0xc25a59b5), + 22: uint32(0x9c30d539), + 23: uint32(0x2af26013), + 24: uint32(0xc5d1b023), + 25: uint32(0x286085f0), + 26: uint32(0xca417918), + 27: uint32(0xb8db38ef), + 28: uint32(0x8e79dcb0), + 29: uint32(0x603a180e), + 30: uint32(0x6c9e0e8b), + 31: uint32(0xb01e8a3e), + 32: uint32(0xd71577c1), + 33: uint32(0xbd314b27), + 34: uint32(0x78af2fda), + 35: uint32(0x55605c60), + 36: uint32(0xe65525f3), + 37: uint32(0xaa55ab94), + 38: uint32(0x57489862), + 39: uint32(0x63e81440), + 40: uint32(0x55ca396a), + 41: uint32(0x2aab10b6), + 42: uint32(0xb4cc5c34), + 43: uint32(0x1141e8ce), + 44: uint32(0xa15486af), + 45: uint32(0x7c72e993), + 46: uint32(0xb3ee1411), + 47: uint32(0x636fbc2a), + 48: uint32(0x2ba9c55d), + 49: uint32(0x741831f6), + 50: uint32(0xce5c3e16), + 51: uint32(0x9b87931e), + 52: uint32(0xafd6ba33), + 53: uint32(0x6c24cf5c), + 54: uint32(0x7a325381), + 55: uint32(0x28958677), + 56: uint32(0x3b8f4898), + 57: uint32(0x6b4bb9af), + 58: uint32(0xc4bfe81b), + 59: uint32(0x66282193), + 60: uint32(0x61d809cc), + 61: uint32(0xfb21a991), + 62: uint32(0x487cac60), + 63: uint32(0x5dec8032), + 64: uint32(0xef845d5d), + 65: uint32(0xe98575b1), + 66: uint32(0xdc262302), + 67: uint32(0xeb651b88), + 68: uint32(0x23893e81), + 69: uint32(0xd396acc5), + 70: uint32(0x0f6d6ff3), + 71: uint32(0x83f44239), + 72: uint32(0x2e0b4482), + 73: uint32(0xa4842004), + 74: uint32(0x69c8f04a), + 75: uint32(0x9e1f9b5e), + 76: uint32(0x21c66842), + 77: uint32(0xf6e96c9a), + 78: uint32(0x670c9c61), + 79: uint32(0xabd388f0), + 80: uint32(0x6a51a0d2), + 81: uint32(0xd8542f68), + 82: uint32(0x960fa728), + 83: uint32(0xab5133a3), + 84: uint32(0x6eef0b6c), + 85: uint32(0x137a3be4), + 86: uint32(0xba3bf050), + 87: uint32(0x7efb2a98), + 88: uint32(0xa1f1651d), + 89: uint32(0x39af0176), + 90: uint32(0x66ca593e), + 91: uint32(0x82430e88), + 92: uint32(0x8cee8619), + 93: uint32(0x456f9fb4), + 94: uint32(0x7d84a5c3), + 95: uint32(0x3b8b5ebe), + 96: uint32(0xe06f75d8), + 97: uint32(0x85c12073), + 98: uint32(0x401a449f), + 99: uint32(0x56c16aa6), + 100: uint32(0x4ed3aa62), + 101: uint32(0x363f7706), + 102: uint32(0x1bfedf72), + 103: uint32(0x429b023d), + 104: uint32(0x37d0d724), + 105: uint32(0xd00a1248), + 106: uint32(0xdb0fead3), + 107: uint32(0x49f1c09b), + 108: uint32(0x075372c9), + 109: uint32(0x80991b7b), + 110: uint32(0x25d479d8), + 111: uint32(0xf6e8def7), + 112: uint32(0xe3fe501a), + 113: uint32(0xb6794c3b), + 114: uint32(0x976ce0bd), + 115: uint32(0x04c006ba), + 116: uint32(0xc1a94fb6), + 117: uint32(0x409f60c4), + 118: uint32(0x5e5c9ec2), + 119: uint32(0x196a2463), + 120: uint32(0x68fb6faf), + 121: uint32(0x3e6c53b5), + 122: uint32(0x1339b2eb), + 123: uint32(0x3b52ec6f), + 124: uint32(0x6dfc511f), + 125: uint32(0x9b30952c), + 126: uint32(0xcc814544), + 127: uint32(0xaf5ebd09), + 128: uint32(0xbee3d004), + 129: uint32(0xde334afd), + 130: uint32(0x660f2807), + 131: uint32(0x192e4bb3), + 132: uint32(0xc0cba857), + 133: uint32(0x45c8740f), + 134: uint32(0xd20b5f39), + 135: uint32(0xb9d3fbdb), + 136: uint32(0x5579c0bd), + 137: uint32(0x1a60320a), + 138: uint32(0xd6a100c6), + 139: uint32(0x402c7279), + 140: uint32(0x679f25fe), + 141: uint32(0xfb1fa3cc), + 142: uint32(0x8ea5e9f8), + 143: uint32(0xdb3222f8), + 144: uint32(0x3c7516df), + 145: uint32(0xfd616b15), + 146: uint32(0x2f501ec8), + 147: uint32(0xad0552ab), + 148: uint32(0x323db5fa), + 149: uint32(0xfd238760), + 150: uint32(0x53317b48), + 151: uint32(0x3e00df82), + 152: uint32(0x9e5c57bb), + 153: uint32(0xca6f8ca0), + 154: uint32(0x1a87562e), + 155: uint32(0xdf1769db), + 156: uint32(0xd542a8f6), + 157: uint32(0x287effc3), + 158: uint32(0xac6732c6), + 159: uint32(0x8c4f5573), + 160: uint32(0x695b27b0), + 161: uint32(0xbbca58c8), + 162: uint32(0xe1ffa35d), + 163: uint32(0xb8f011a0), + 164: uint32(0x10fa3d98), + 165: uint32(0xfd2183b8), + 166: uint32(0x4afcb56c), + 167: uint32(0x2dd1d35b), + 168: uint32(0x9a53e479), + 169: uint32(0xb6f84565), + 170: uint32(0xd28e49bc), + 171: uint32(0x4bfb9790), + 172: uint32(0xe1ddf2da), + 173: uint32(0xa4cb7e33), + 174: uint32(0x62fb1341), + 175: uint32(0xcee4c6e8), + 176: uint32(0xef20cada), + 177: uint32(0x36774c01), + 178: uint32(0xd07e9efe), + 179: uint32(0x2bf11fb4), + 180: uint32(0x95dbda4d), + 181: uint32(0xae909198), + 182: uint32(0xeaad8e71), + 183: uint32(0x6b93d5a0), + 184: uint32(0xd08ed1d0), + 185: uint32(0xafc725e0), + 186: uint32(0x8e3c5b2f), + 187: uint32(0x8e7594b7), + 188: uint32(0x8ff6e2fb), + 189: uint32(0xf2122b64), + 190: uint32(0x8888b812), + 191: uint32(0x900df01c), + 192: uint32(0x4fad5ea0), + 193: uint32(0x688fc31c), + 194: uint32(0xd1cff191), + 195: uint32(0xb3a8c1ad), + 196: uint32(0x2f2f2218), + 197: uint32(0xbe0e1777), + 198: uint32(0xea752dfe), + 199: uint32(0x8b021fa1), + 200: uint32(0xe5a0cc0f), + 201: uint32(0xb56f74e8), + 202: uint32(0x18acf3d6), + 203: uint32(0xce89e299), + 204: uint32(0xb4a84fe0), + 205: uint32(0xfd13e0b7), + 206: uint32(0x7cc43b81), + 207: uint32(0xd2ada8d9), + 208: uint32(0x165fa266), + 209: uint32(0x80957705), + 210: uint32(0x93cc7314), + 211: uint32(0x211a1477), + 212: uint32(0xe6ad2065), + 213: uint32(0x77b5fa86), + 214: uint32(0xc75442f5), + 215: uint32(0xfb9d35cf), + 216: uint32(0xebcdaf0c), + 217: uint32(0x7b3e89a0), + 218: uint32(0xd6411bd3), + 219: uint32(0xae1e7e49), + 220: uint32(0x00250e2d), + 221: uint32(0x2071b35e), + 222: uint32(0x226800bb), + 223: uint32(0x57b8e0af), + 224: uint32(0x2464369b), + 225: uint32(0xf009b91e), + 226: uint32(0x5563911d), + 227: uint32(0x59dfa6aa), + 228: uint32(0x78c14389), + 229: uint32(0xd95a537f), + 230: uint32(0x207d5ba2), + 231: uint32(0x02e5b9c5), + 232: uint32(0x83260376), + 233: uint32(0x6295cfa9), + 234: uint32(0x11c81968), + 235: uint32(0x4e734a41), + 236: uint32(0xb3472dca), + 237: uint32(0x7b14a94a), + 238: uint32(0x1b510052), + 239: uint32(0x9a532915), + 240: uint32(0xd60f573f), + 241: uint32(0xbc9bc6e4), + 242: uint32(0x2b60a476), + 243: uint32(0x81e67400), + 244: uint32(0x08ba6fb5), + 245: uint32(0x571be91f), + 246: uint32(0xf296ec6b), + 247: uint32(0x2a0dd915), + 248: uint32(0xb6636521), + 249: uint32(0xe7b9f9b6), + 250: uint32(0xff34052e), + 251: uint32(0xc5855664), + 252: uint32(0x53b02d5d), + 253: uint32(0xa99f8fa1), + 254: uint32(0x08ba4799), + 255: uint32(0x6e85076a), + }, + 1: { + 0: uint32(0x4b7a70e9), + 1: uint32(0xb5b32944), + 2: uint32(0xdb75092e), + 3: uint32(0xc4192623), + 4: uint32(0xad6ea6b0), + 5: uint32(0x49a7df7d), + 6: uint32(0x9cee60b8), + 7: uint32(0x8fedb266), + 8: uint32(0xecaa8c71), + 9: uint32(0x699a17ff), + 10: uint32(0x5664526c), + 11: uint32(0xc2b19ee1), + 12: uint32(0x193602a5), + 13: uint32(0x75094c29), + 14: uint32(0xa0591340), + 15: uint32(0xe4183a3e), + 16: uint32(0x3f54989a), + 17: uint32(0x5b429d65), + 18: uint32(0x6b8fe4d6), + 19: uint32(0x99f73fd6), + 20: uint32(0xa1d29c07), + 21: uint32(0xefe830f5), + 22: uint32(0x4d2d38e6), + 23: uint32(0xf0255dc1), + 24: uint32(0x4cdd2086), + 25: uint32(0x8470eb26), + 26: uint32(0x6382e9c6), + 27: uint32(0x021ecc5e), + 28: uint32(0x09686b3f), + 29: uint32(0x3ebaefc9), + 30: uint32(0x3c971814), + 31: uint32(0x6b6a70a1), + 32: uint32(0x687f3584), + 33: uint32(0x52a0e286), + 34: uint32(0xb79c5305), + 35: uint32(0xaa500737), + 36: uint32(0x3e07841c), + 37: uint32(0x7fdeae5c), + 38: uint32(0x8e7d44ec), + 39: uint32(0x5716f2b8), + 40: uint32(0xb03ada37), + 41: uint32(0xf0500c0d), + 42: uint32(0xf01c1f04), + 43: uint32(0x0200b3ff), + 44: uint32(0xae0cf51a), + 45: uint32(0x3cb574b2), + 46: uint32(0x25837a58), + 47: uint32(0xdc0921bd), + 48: uint32(0xd19113f9), + 49: uint32(0x7ca92ff6), + 50: uint32(0x94324773), + 51: uint32(0x22f54701), + 52: uint32(0x3ae5e581), + 53: uint32(0x37c2dadc), + 54: uint32(0xc8b57634), + 55: uint32(0x9af3dda7), + 56: uint32(0xa9446146), + 57: uint32(0x0fd0030e), + 58: uint32(0xecc8c73e), + 59: uint32(0xa4751e41), + 60: uint32(0xe238cd99), + 61: uint32(0x3bea0e2f), + 62: uint32(0x3280bba1), + 63: uint32(0x183eb331), + 64: uint32(0x4e548b38), + 65: uint32(0x4f6db908), + 66: uint32(0x6f420d03), + 67: uint32(0xf60a04bf), + 68: uint32(0x2cb81290), + 69: uint32(0x24977c79), + 70: uint32(0x5679b072), + 71: uint32(0xbcaf89af), + 72: uint32(0xde9a771f), + 73: uint32(0xd9930810), + 74: uint32(0xb38bae12), + 75: uint32(0xdccf3f2e), + 76: uint32(0x5512721f), + 77: uint32(0x2e6b7124), + 78: uint32(0x501adde6), + 79: uint32(0x9f84cd87), + 80: uint32(0x7a584718), + 81: uint32(0x7408da17), + 82: uint32(0xbc9f9abc), + 83: uint32(0xe94b7d8c), + 84: uint32(0xec7aec3a), + 85: uint32(0xdb851dfa), + 86: uint32(0x63094366), + 87: uint32(0xc464c3d2), + 88: uint32(0xef1c1847), + 89: uint32(0x3215d908), + 90: uint32(0xdd433b37), + 91: uint32(0x24c2ba16), + 92: uint32(0x12a14d43), + 93: uint32(0x2a65c451), + 94: uint32(0x50940002), + 95: uint32(0x133ae4dd), + 96: uint32(0x71dff89e), + 97: uint32(0x10314e55), + 98: uint32(0x81ac77d6), + 99: uint32(0x5f11199b), + 100: uint32(0x043556f1), + 101: uint32(0xd7a3c76b), + 102: uint32(0x3c11183b), + 103: uint32(0x5924a509), + 104: uint32(0xf28fe6ed), + 105: uint32(0x97f1fbfa), + 106: uint32(0x9ebabf2c), + 107: uint32(0x1e153c6e), + 108: uint32(0x86e34570), + 109: uint32(0xeae96fb1), + 110: uint32(0x860e5e0a), + 111: uint32(0x5a3e2ab3), + 112: uint32(0x771fe71c), + 113: uint32(0x4e3d06fa), + 114: uint32(0x2965dcb9), + 115: uint32(0x99e71d0f), + 116: uint32(0x803e89d6), + 117: uint32(0x5266c825), + 118: uint32(0x2e4cc978), + 119: uint32(0x9c10b36a), + 120: uint32(0xc6150eba), + 121: uint32(0x94e2ea78), + 122: uint32(0xa5fc3c53), + 123: uint32(0x1e0a2df4), + 124: uint32(0xf2f74ea7), + 125: uint32(0x361d2b3d), + 126: uint32(0x1939260f), + 127: uint32(0x19c27960), + 128: uint32(0x5223a708), + 129: uint32(0xf71312b6), + 130: uint32(0xebadfe6e), + 131: uint32(0xeac31f66), + 132: uint32(0xe3bc4595), + 133: uint32(0xa67bc883), + 134: uint32(0xb17f37d1), + 135: uint32(0x018cff28), + 136: uint32(0xc332ddef), + 137: uint32(0xbe6c5aa5), + 138: uint32(0x65582185), + 139: uint32(0x68ab9802), + 140: uint32(0xeecea50f), + 141: uint32(0xdb2f953b), + 142: uint32(0x2aef7dad), + 143: uint32(0x5b6e2f84), + 144: uint32(0x1521b628), + 145: uint32(0x29076170), + 146: uint32(0xecdd4775), + 147: uint32(0x619f1510), + 148: uint32(0x13cca830), + 149: uint32(0xeb61bd96), + 150: uint32(0x0334fe1e), + 151: uint32(0xaa0363cf), + 152: uint32(0xb5735c90), + 153: uint32(0x4c70a239), + 154: uint32(0xd59e9e0b), + 155: uint32(0xcbaade14), + 156: uint32(0xeecc86bc), + 157: uint32(0x60622ca7), + 158: uint32(0x9cab5cab), + 159: uint32(0xb2f3846e), + 160: uint32(0x648b1eaf), + 161: uint32(0x19bdf0ca), + 162: uint32(0xa02369b9), + 163: uint32(0x655abb50), + 164: uint32(0x40685a32), + 165: uint32(0x3c2ab4b3), + 166: uint32(0x319ee9d5), + 167: uint32(0xc021b8f7), + 168: uint32(0x9b540b19), + 169: uint32(0x875fa099), + 170: uint32(0x95f7997e), + 171: uint32(0x623d7da8), + 172: uint32(0xf837889a), + 173: uint32(0x97e32d77), + 174: uint32(0x11ed935f), + 175: uint32(0x16681281), + 176: uint32(0x0e358829), + 177: uint32(0xc7e61fd6), + 178: uint32(0x96dedfa1), + 179: uint32(0x7858ba99), + 180: uint32(0x57f584a5), + 181: uint32(0x1b227263), + 182: uint32(0x9b83c3ff), + 183: uint32(0x1ac24696), + 184: uint32(0xcdb30aeb), + 185: uint32(0x532e3054), + 186: uint32(0x8fd948e4), + 187: uint32(0x6dbc3128), + 188: uint32(0x58ebf2ef), + 189: uint32(0x34c6ffea), + 190: uint32(0xfe28ed61), + 191: uint32(0xee7c3c73), + 192: uint32(0x5d4a14d9), + 193: uint32(0xe864b7e3), + 194: uint32(0x42105d14), + 195: uint32(0x203e13e0), + 196: uint32(0x45eee2b6), + 197: uint32(0xa3aaabea), + 198: uint32(0xdb6c4f15), + 199: uint32(0xfacb4fd0), + 200: uint32(0xc742f442), + 201: uint32(0xef6abbb5), + 202: uint32(0x654f3b1d), + 203: uint32(0x41cd2105), + 204: uint32(0xd81e799e), + 205: uint32(0x86854dc7), + 206: uint32(0xe44b476a), + 207: uint32(0x3d816250), + 208: uint32(0xcf62a1f2), + 209: uint32(0x5b8d2646), + 210: uint32(0xfc8883a0), + 211: uint32(0xc1c7b6a3), + 212: uint32(0x7f1524c3), + 213: uint32(0x69cb7492), + 214: uint32(0x47848a0b), + 215: uint32(0x5692b285), + 216: uint32(0x095bbf00), + 217: uint32(0xad19489d), + 218: uint32(0x1462b174), + 219: uint32(0x23820e00), + 220: uint32(0x58428d2a), + 221: uint32(0x0c55f5ea), + 222: uint32(0x1dadf43e), + 223: uint32(0x233f7061), + 224: uint32(0x3372f092), + 225: uint32(0x8d937e41), + 226: uint32(0xd65fecf1), + 227: uint32(0x6c223bdb), + 228: uint32(0x7cde3759), + 229: uint32(0xcbee7460), + 230: uint32(0x4085f2a7), + 231: uint32(0xce77326e), + 232: uint32(0xa6078084), + 233: uint32(0x19f8509e), + 234: uint32(0xe8efd855), + 235: uint32(0x61d99735), + 236: uint32(0xa969a7aa), + 237: uint32(0xc50c06c2), + 238: uint32(0x5a04abfc), + 239: uint32(0x800bcadc), + 240: uint32(0x9e447a2e), + 241: uint32(0xc3453484), + 242: uint32(0xfdd56705), + 243: uint32(0x0e1e9ec9), + 244: uint32(0xdb73dbd3), + 245: uint32(0x105588cd), + 246: uint32(0x675fda79), + 247: uint32(0xe3674340), + 248: uint32(0xc5c43465), + 249: uint32(0x713e38d8), + 250: uint32(0x3d28f89e), + 251: uint32(0xf16dff20), + 252: uint32(0x153e21e7), + 253: uint32(0x8fb03d4a), + 254: uint32(0xe6e39f2b), + 255: uint32(0xdb83adf7), + }, + 2: { + 0: uint32(0xe93d5a68), + 1: uint32(0x948140f7), + 2: uint32(0xf64c261c), + 3: uint32(0x94692934), + 4: uint32(0x411520f7), + 5: uint32(0x7602d4f7), + 6: uint32(0xbcf46b2e), + 7: uint32(0xd4a20068), + 8: uint32(0xd4082471), + 9: uint32(0x3320f46a), + 10: uint32(0x43b7d4b7), + 11: uint32(0x500061af), + 12: uint32(0x1e39f62e), + 13: uint32(0x97244546), + 14: uint32(0x14214f74), + 15: uint32(0xbf8b8840), + 16: uint32(0x4d95fc1d), + 17: uint32(0x96b591af), + 18: uint32(0x70f4ddd3), + 19: uint32(0x66a02f45), + 20: uint32(0xbfbc09ec), + 21: uint32(0x03bd9785), + 22: uint32(0x7fac6dd0), + 23: uint32(0x31cb8504), + 24: uint32(0x96eb27b3), + 25: uint32(0x55fd3941), + 26: uint32(0xda2547e6), + 27: uint32(0xabca0a9a), + 28: uint32(0x28507825), + 29: uint32(0x530429f4), + 30: uint32(0x0a2c86da), + 31: uint32(0xe9b66dfb), + 32: uint32(0x68dc1462), + 33: uint32(0xd7486900), + 34: uint32(0x680ec0a4), + 35: uint32(0x27a18dee), + 36: uint32(0x4f3ffea2), + 37: uint32(0xe887ad8c), + 38: uint32(0xb58ce006), + 39: uint32(0x7af4d6b6), + 40: uint32(0xaace1e7c), + 41: uint32(0xd3375fec), + 42: uint32(0xce78a399), + 43: uint32(0x406b2a42), + 44: uint32(0x20fe9e35), + 45: uint32(0xd9f385b9), + 46: uint32(0xee39d7ab), + 47: uint32(0x3b124e8b), + 48: uint32(0x1dc9faf7), + 49: uint32(0x4b6d1856), + 50: uint32(0x26a36631), + 51: uint32(0xeae397b2), + 52: uint32(0x3a6efa74), + 53: uint32(0xdd5b4332), + 54: uint32(0x6841e7f7), + 55: uint32(0xca7820fb), + 56: uint32(0xfb0af54e), + 57: uint32(0xd8feb397), + 58: uint32(0x454056ac), + 59: uint32(0xba489527), + 60: uint32(0x55533a3a), + 61: uint32(0x20838d87), + 62: uint32(0xfe6ba9b7), + 63: uint32(0xd096954b), + 64: uint32(0x55a867bc), + 65: uint32(0xa1159a58), + 66: uint32(0xcca92963), + 67: uint32(0x99e1db33), + 68: uint32(0xa62a4a56), + 69: uint32(0x3f3125f9), + 70: uint32(0x5ef47e1c), + 71: uint32(0x9029317c), + 72: uint32(0xfdf8e802), + 73: uint32(0x04272f70), + 74: uint32(0x80bb155c), + 75: uint32(0x05282ce3), + 76: uint32(0x95c11548), + 77: uint32(0xe4c66d22), + 78: uint32(0x48c1133f), + 79: uint32(0xc70f86dc), + 80: uint32(0x07f9c9ee), + 81: uint32(0x41041f0f), + 82: uint32(0x404779a4), + 83: uint32(0x5d886e17), + 84: uint32(0x325f51eb), + 85: uint32(0xd59bc0d1), + 86: uint32(0xf2bcc18f), + 87: uint32(0x41113564), + 88: uint32(0x257b7834), + 89: uint32(0x602a9c60), + 90: uint32(0xdff8e8a3), + 91: uint32(0x1f636c1b), + 92: uint32(0x0e12b4c2), + 93: uint32(0x02e1329e), + 94: uint32(0xaf664fd1), + 95: uint32(0xcad18115), + 96: uint32(0x6b2395e0), + 97: uint32(0x333e92e1), + 98: uint32(0x3b240b62), + 99: uint32(0xeebeb922), + 100: uint32(0x85b2a20e), + 101: uint32(0xe6ba0d99), + 102: uint32(0xde720c8c), + 103: uint32(0x2da2f728), + 104: uint32(0xd0127845), + 105: uint32(0x95b794fd), + 106: uint32(0x647d0862), + 107: uint32(0xe7ccf5f0), + 108: uint32(0x5449a36f), + 109: uint32(0x877d48fa), + 110: uint32(0xc39dfd27), + 111: uint32(0xf33e8d1e), + 112: uint32(0x0a476341), + 113: uint32(0x992eff74), + 114: uint32(0x3a6f6eab), + 115: uint32(0xf4f8fd37), + 116: uint32(0xa812dc60), + 117: uint32(0xa1ebddf8), + 118: uint32(0x991be14c), + 119: uint32(0xdb6e6b0d), + 120: uint32(0xc67b5510), + 121: uint32(0x6d672c37), + 122: uint32(0x2765d43b), + 123: uint32(0xdcd0e804), + 124: uint32(0xf1290dc7), + 125: uint32(0xcc00ffa3), + 126: uint32(0xb5390f92), + 127: uint32(0x690fed0b), + 128: uint32(0x667b9ffb), + 129: uint32(0xcedb7d9c), + 130: uint32(0xa091cf0b), + 131: uint32(0xd9155ea3), + 132: uint32(0xbb132f88), + 133: uint32(0x515bad24), + 134: uint32(0x7b9479bf), + 135: uint32(0x763bd6eb), + 136: uint32(0x37392eb3), + 137: uint32(0xcc115979), + 138: uint32(0x8026e297), + 139: uint32(0xf42e312d), + 140: uint32(0x6842ada7), + 141: uint32(0xc66a2b3b), + 142: uint32(0x12754ccc), + 143: uint32(0x782ef11c), + 144: uint32(0x6a124237), + 145: uint32(0xb79251e7), + 146: uint32(0x06a1bbe6), + 147: uint32(0x4bfb6350), + 148: uint32(0x1a6b1018), + 149: uint32(0x11caedfa), + 150: uint32(0x3d25bdd8), + 151: uint32(0xe2e1c3c9), + 152: uint32(0x44421659), + 153: uint32(0x0a121386), + 154: uint32(0xd90cec6e), + 155: uint32(0xd5abea2a), + 156: uint32(0x64af674e), + 157: uint32(0xda86a85f), + 158: uint32(0xbebfe988), + 159: uint32(0x64e4c3fe), + 160: uint32(0x9dbc8057), + 161: uint32(0xf0f7c086), + 162: uint32(0x60787bf8), + 163: uint32(0x6003604d), + 164: uint32(0xd1fd8346), + 165: uint32(0xf6381fb0), + 166: uint32(0x7745ae04), + 167: uint32(0xd736fccc), + 168: uint32(0x83426b33), + 169: uint32(0xf01eab71), + 170: uint32(0xb0804187), + 171: uint32(0x3c005e5f), + 172: uint32(0x77a057be), + 173: uint32(0xbde8ae24), + 174: uint32(0x55464299), + 175: uint32(0xbf582e61), + 176: uint32(0x4e58f48f), + 177: uint32(0xf2ddfda2), + 178: uint32(0xf474ef38), + 179: uint32(0x8789bdc2), + 180: uint32(0x5366f9c3), + 181: uint32(0xc8b38e74), + 182: uint32(0xb475f255), + 183: uint32(0x46fcd9b9), + 184: uint32(0x7aeb2661), + 185: uint32(0x8b1ddf84), + 186: uint32(0x846a0e79), + 187: uint32(0x915f95e2), + 188: uint32(0x466e598e), + 189: uint32(0x20b45770), + 190: uint32(0x8cd55591), + 191: uint32(0xc902de4c), + 192: uint32(0xb90bace1), + 193: uint32(0xbb8205d0), + 194: uint32(0x11a86248), + 195: uint32(0x7574a99e), + 196: uint32(0xb77f19b6), + 197: uint32(0xe0a9dc09), + 198: uint32(0x662d09a1), + 199: uint32(0xc4324633), + 200: uint32(0xe85a1f02), + 201: uint32(0x09f0be8c), + 202: uint32(0x4a99a025), + 203: uint32(0x1d6efe10), + 204: uint32(0x1ab93d1d), + 205: uint32(0x0ba5a4df), + 206: uint32(0xa186f20f), + 207: uint32(0x2868f169), + 208: uint32(0xdcb7da83), + 209: uint32(0x573906fe), + 210: uint32(0xa1e2ce9b), + 211: uint32(0x4fcd7f52), + 212: uint32(0x50115e01), + 213: uint32(0xa70683fa), + 214: uint32(0xa002b5c4), + 215: uint32(0x0de6d027), + 216: uint32(0x9af88c27), + 217: uint32(0x773f8641), + 218: uint32(0xc3604c06), + 219: uint32(0x61a806b5), + 220: uint32(0xf0177a28), + 221: uint32(0xc0f586e0), + 222: uint32(0x006058aa), + 223: uint32(0x30dc7d62), + 224: uint32(0x11e69ed7), + 225: uint32(0x2338ea63), + 226: uint32(0x53c2dd94), + 227: uint32(0xc2c21634), + 228: uint32(0xbbcbee56), + 229: uint32(0x90bcb6de), + 230: uint32(0xebfc7da1), + 231: uint32(0xce591d76), + 232: uint32(0x6f05e409), + 233: uint32(0x4b7c0188), + 234: uint32(0x39720a3d), + 235: uint32(0x7c927c24), + 236: uint32(0x86e3725f), + 237: uint32(0x724d9db9), + 238: uint32(0x1ac15bb4), + 239: uint32(0xd39eb8fc), + 240: uint32(0xed545578), + 241: uint32(0x08fca5b5), + 242: uint32(0xd83d7cd3), + 243: uint32(0x4dad0fc4), + 244: uint32(0x1e50ef5e), + 245: uint32(0xb161e6f8), + 246: uint32(0xa28514d9), + 247: uint32(0x6c51133c), + 248: uint32(0x6fd5c7e7), + 249: uint32(0x56e14ec4), + 250: uint32(0x362abfce), + 251: uint32(0xddc6c837), + 252: uint32(0xd79a3234), + 253: uint32(0x92638212), + 254: uint32(0x670efa8e), + 255: uint32(0x406000e0), + }, + 3: { + 0: uint32(0x3a39ce37), + 1: uint32(0xd3faf5cf), + 2: uint32(0xabc27737), + 3: uint32(0x5ac52d1b), + 4: uint32(0x5cb0679e), + 5: uint32(0x4fa33742), + 6: uint32(0xd3822740), + 7: uint32(0x99bc9bbe), + 8: uint32(0xd5118e9d), + 9: uint32(0xbf0f7315), + 10: uint32(0xd62d1c7e), + 11: uint32(0xc700c47b), + 12: uint32(0xb78c1b6b), + 13: uint32(0x21a19045), + 14: uint32(0xb26eb1be), + 15: uint32(0x6a366eb4), + 16: uint32(0x5748ab2f), + 17: uint32(0xbc946e79), + 18: uint32(0xc6a376d2), + 19: uint32(0x6549c2c8), + 20: uint32(0x530ff8ee), + 21: uint32(0x468dde7d), + 22: uint32(0xd5730a1d), + 23: uint32(0x4cd04dc6), + 24: uint32(0x2939bbdb), + 25: uint32(0xa9ba4650), + 26: uint32(0xac9526e8), + 27: uint32(0xbe5ee304), + 28: uint32(0xa1fad5f0), + 29: uint32(0x6a2d519a), + 30: uint32(0x63ef8ce2), + 31: uint32(0x9a86ee22), + 32: uint32(0xc089c2b8), + 33: uint32(0x43242ef6), + 34: uint32(0xa51e03aa), + 35: uint32(0x9cf2d0a4), + 36: uint32(0x83c061ba), + 37: uint32(0x9be96a4d), + 38: uint32(0x8fe51550), + 39: uint32(0xba645bd6), + 40: uint32(0x2826a2f9), + 41: uint32(0xa73a3ae1), + 42: uint32(0x4ba99586), + 43: uint32(0xef5562e9), + 44: uint32(0xc72fefd3), + 45: uint32(0xf752f7da), + 46: uint32(0x3f046f69), + 47: uint32(0x77fa0a59), + 48: uint32(0x80e4a915), + 49: uint32(0x87b08601), + 50: uint32(0x9b09e6ad), + 51: uint32(0x3b3ee593), + 52: uint32(0xe990fd5a), + 53: uint32(0x9e34d797), + 54: uint32(0x2cf0b7d9), + 55: uint32(0x022b8b51), + 56: uint32(0x96d5ac3a), + 57: uint32(0x017da67d), + 58: uint32(0xd1cf3ed6), + 59: uint32(0x7c7d2d28), + 60: uint32(0x1f9f25cf), + 61: uint32(0xadf2b89b), + 62: uint32(0x5ad6b472), + 63: uint32(0x5a88f54c), + 64: uint32(0xe029ac71), + 65: uint32(0xe019a5e6), + 66: uint32(0x47b0acfd), + 67: uint32(0xed93fa9b), + 68: uint32(0xe8d3c48d), + 69: uint32(0x283b57cc), + 70: uint32(0xf8d56629), + 71: uint32(0x79132e28), + 72: uint32(0x785f0191), + 73: uint32(0xed756055), + 74: uint32(0xf7960e44), + 75: uint32(0xe3d35e8c), + 76: uint32(0x15056dd4), + 77: uint32(0x88f46dba), + 78: uint32(0x03a16125), + 79: uint32(0x0564f0bd), + 80: uint32(0xc3eb9e15), + 81: uint32(0x3c9057a2), + 82: uint32(0x97271aec), + 83: uint32(0xa93a072a), + 84: uint32(0x1b3f6d9b), + 85: uint32(0x1e6321f5), + 86: uint32(0xf59c66fb), + 87: uint32(0x26dcf319), + 88: uint32(0x7533d928), + 89: uint32(0xb155fdf5), + 90: uint32(0x03563482), + 91: uint32(0x8aba3cbb), + 92: uint32(0x28517711), + 93: uint32(0xc20ad9f8), + 94: uint32(0xabcc5167), + 95: uint32(0xccad925f), + 96: uint32(0x4de81751), + 97: uint32(0x3830dc8e), + 98: uint32(0x379d5862), + 99: uint32(0x9320f991), + 100: uint32(0xea7a90c2), + 101: uint32(0xfb3e7bce), + 102: uint32(0x5121ce64), + 103: uint32(0x774fbe32), + 104: uint32(0xa8b6e37e), + 105: uint32(0xc3293d46), + 106: uint32(0x48de5369), + 107: uint32(0x6413e680), + 108: uint32(0xa2ae0810), + 109: uint32(0xdd6db224), + 110: uint32(0x69852dfd), + 111: uint32(0x09072166), + 112: uint32(0xb39a460a), + 113: uint32(0x6445c0dd), + 114: uint32(0x586cdecf), + 115: uint32(0x1c20c8ae), + 116: uint32(0x5bbef7dd), + 117: uint32(0x1b588d40), + 118: uint32(0xccd2017f), + 119: uint32(0x6bb4e3bb), + 120: uint32(0xdda26a7e), + 121: uint32(0x3a59ff45), + 122: uint32(0x3e350a44), + 123: uint32(0xbcb4cdd5), + 124: uint32(0x72eacea8), + 125: uint32(0xfa6484bb), + 126: uint32(0x8d6612ae), + 127: uint32(0xbf3c6f47), + 128: uint32(0xd29be463), + 129: uint32(0x542f5d9e), + 130: uint32(0xaec2771b), + 131: uint32(0xf64e6370), + 132: uint32(0x740e0d8d), + 133: uint32(0xe75b1357), + 134: uint32(0xf8721671), + 135: uint32(0xaf537d5d), + 136: uint32(0x4040cb08), + 137: uint32(0x4eb4e2cc), + 138: uint32(0x34d2466a), + 139: uint32(0x0115af84), + 140: uint32(0xe1b00428), + 141: uint32(0x95983a1d), + 142: uint32(0x06b89fb4), + 143: uint32(0xce6ea048), + 144: uint32(0x6f3f3b82), + 145: uint32(0x3520ab82), + 146: uint32(0x011a1d4b), + 147: uint32(0x277227f8), + 148: uint32(0x611560b1), + 149: uint32(0xe7933fdc), + 150: uint32(0xbb3a792b), + 151: uint32(0x344525bd), + 152: uint32(0xa08839e1), + 153: uint32(0x51ce794b), + 154: uint32(0x2f32c9b7), + 155: uint32(0xa01fbac9), + 156: uint32(0xe01cc87e), + 157: uint32(0xbcc7d1f6), + 158: uint32(0xcf0111c3), + 159: uint32(0xa1e8aac7), + 160: uint32(0x1a908749), + 161: uint32(0xd44fbd9a), + 162: uint32(0xd0dadecb), + 163: uint32(0xd50ada38), + 164: uint32(0x0339c32a), + 165: uint32(0xc6913667), + 166: uint32(0x8df9317c), + 167: uint32(0xe0b12b4f), + 168: uint32(0xf79e59b7), + 169: uint32(0x43f5bb3a), + 170: uint32(0xf2d519ff), + 171: uint32(0x27d9459c), + 172: uint32(0xbf97222c), + 173: uint32(0x15e6fc2a), + 174: uint32(0x0f91fc71), + 175: uint32(0x9b941525), + 176: uint32(0xfae59361), + 177: uint32(0xceb69ceb), + 178: uint32(0xc2a86459), + 179: uint32(0x12baa8d1), + 180: uint32(0xb6c1075e), + 181: uint32(0xe3056a0c), + 182: uint32(0x10d25065), + 183: uint32(0xcb03a442), + 184: uint32(0xe0ec6e0e), + 185: uint32(0x1698db3b), + 186: uint32(0x4c98a0be), + 187: uint32(0x3278e964), + 188: uint32(0x9f1f9532), + 189: uint32(0xe0d392df), + 190: uint32(0xd3a0342b), + 191: uint32(0x8971f21e), + 192: uint32(0x1b0a7441), + 193: uint32(0x4ba3348c), + 194: uint32(0xc5be7120), + 195: uint32(0xc37632d8), + 196: uint32(0xdf359f8d), + 197: uint32(0x9b992f2e), + 198: uint32(0xe60b6f47), + 199: uint32(0x0fe3f11d), + 200: uint32(0xe54cda54), + 201: uint32(0x1edad891), + 202: uint32(0xce6279cf), + 203: uint32(0xcd3e7e6f), + 204: uint32(0x1618b166), + 205: uint32(0xfd2c1d05), + 206: uint32(0x848fd2c5), + 207: uint32(0xf6fb2299), + 208: uint32(0xf523f357), + 209: uint32(0xa6327623), + 210: uint32(0x93a83531), + 211: uint32(0x56cccd02), + 212: uint32(0xacf08162), + 213: uint32(0x5a75ebb5), + 214: uint32(0x6e163697), + 215: uint32(0x88d273cc), + 216: uint32(0xde966292), + 217: uint32(0x81b949d0), + 218: uint32(0x4c50901b), + 219: uint32(0x71c65614), + 220: uint32(0xe6c6c7bd), + 221: uint32(0x327a140a), + 222: uint32(0x45e1d006), + 223: uint32(0xc3f27b9a), + 224: uint32(0xc9aa53fd), + 225: uint32(0x62a80f00), + 226: uint32(0xbb25bfe2), + 227: uint32(0x35bdd2f6), + 228: uint32(0x71126905), + 229: uint32(0xb2040222), + 230: uint32(0xb6cbcf7c), + 231: uint32(0xcd769c2b), + 232: uint32(0x53113ec0), + 233: uint32(0x1640e3d3), + 234: uint32(0x38abbd60), + 235: uint32(0x2547adf0), + 236: uint32(0xba38209c), + 237: uint32(0xf746ce76), + 238: uint32(0x77afa1c5), + 239: uint32(0x20756060), + 240: uint32(0x85cbfe4e), + 241: uint32(0x8ae88dd8), + 242: uint32(0x7aaaf9b0), + 243: uint32(0x4cf9aa7e), + 244: uint32(0x1948c25c), + 245: uint32(0x02fb8a8c), + 246: uint32(0x01c36ae4), + 247: uint32(0xd6ebe1f9), + 248: uint32(0x90d4f869), + 249: uint32(0xa65cdea0), + 250: uint32(0x3f09252d), + 251: uint32(0xc208e69f), + 252: uint32(0xb74e6132), + 253: uint32(0xce77e25b), + 254: uint32(0x578fdfe3), + 255: uint32(0x3ac372e6), + }, + }, +})) + +var _BF_itoa64 = [65]uint8{'.', '/', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'} + +var _BF_atoi64 = [96]uint8{ + 0: uint8(64), + 1: uint8(64), + 2: uint8(64), + 3: uint8(64), + 4: uint8(64), + 5: uint8(64), + 6: uint8(64), + 7: uint8(64), + 8: uint8(64), + 9: uint8(64), + 10: uint8(64), + 11: uint8(64), + 12: uint8(64), + 13: uint8(64), + 15: uint8(1), + 16: uint8(54), + 17: uint8(55), + 18: uint8(56), + 19: uint8(57), + 20: uint8(58), + 21: uint8(59), + 22: uint8(60), + 23: uint8(61), + 24: uint8(62), + 25: uint8(63), + 26: uint8(64), + 27: uint8(64), + 28: uint8(64), + 29: uint8(64), + 30: uint8(64), + 31: uint8(64), + 32: uint8(64), + 33: uint8(2), + 34: uint8(3), + 35: uint8(4), + 36: uint8(5), + 37: uint8(6), + 38: uint8(7), + 39: uint8(8), + 40: uint8(9), + 41: uint8(10), + 42: uint8(11), + 43: uint8(12), + 44: uint8(13), + 45: uint8(14), + 46: uint8(15), + 47: uint8(16), + 48: uint8(17), + 49: uint8(18), + 50: uint8(19), + 51: uint8(20), + 52: uint8(21), + 53: uint8(22), + 54: uint8(23), + 55: uint8(24), + 56: uint8(25), + 57: uint8(26), + 58: uint8(27), + 59: uint8(64), + 60: uint8(64), + 61: uint8(64), + 62: uint8(64), + 63: uint8(64), + 64: uint8(64), + 65: uint8(28), + 66: uint8(29), + 67: uint8(30), + 68: uint8(31), + 69: uint8(32), + 70: uint8(33), + 71: uint8(34), + 72: uint8(35), + 73: uint8(36), + 74: uint8(37), + 75: uint8(38), + 76: uint8(39), + 77: uint8(40), + 78: uint8(41), + 79: uint8(42), + 80: uint8(43), + 81: uint8(44), + 82: uint8(45), + 83: uint8(46), + 84: uint8(47), + 85: uint8(48), + 86: uint8(49), + 87: uint8(50), + 88: uint8(51), + 89: uint8(52), + 90: uint8(53), + 91: uint8(64), + 92: uint8(64), + 93: uint8(64), + 94: uint8(64), + 95: uint8(64), +} + +func _BF_decode(tls *TLS, dst uintptr, src uintptr, size int32) (r int32) { + var c1, c2, c3, c4, tmp uint32 + var dptr, end, sptr, v1, v2, v3, v4, v5, v6, v7 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c1, c2, c3, c4, dptr, end, sptr, tmp, v1, v2, v3, v4, v5, v6, v7 + dptr = dst + end = dptr + uintptr(size) + sptr = src + for cond := true; cond; cond = dptr < end { + v1 = sptr + sptr++ + tmp = uint32(*(*uint8)(unsafe.Pointer(v1))) + tmp -= uint32(0x20) + if tmp >= uint32(0x60) { + return -int32(1) + } + tmp = uint32(_BF_atoi64[tmp]) + if tmp > uint32(63) { + return -int32(1) + } + c1 = tmp + v2 = sptr + sptr++ + tmp = uint32(*(*uint8)(unsafe.Pointer(v2))) + tmp -= uint32(0x20) + if tmp >= uint32(0x60) { + return -int32(1) + } + tmp = uint32(_BF_atoi64[tmp]) + if tmp > uint32(63) { + return -int32(1) + } + c2 = tmp + v3 = dptr + dptr++ + *(*uint8)(unsafe.Pointer(v3)) = uint8(c1<>int32(4)) + if dptr >= end { + break + } + v4 = sptr + sptr++ + tmp = uint32(*(*uint8)(unsafe.Pointer(v4))) + tmp -= uint32(0x20) + if tmp >= uint32(0x60) { + return -int32(1) + } + tmp = uint32(_BF_atoi64[tmp]) + if tmp > uint32(63) { + return -int32(1) + } + c3 = tmp + v5 = dptr + dptr++ + *(*uint8)(unsafe.Pointer(v5)) = uint8(c2&uint32(0x0F)<>int32(2)) + if dptr >= end { + break + } + v6 = sptr + sptr++ + tmp = uint32(*(*uint8)(unsafe.Pointer(v6))) + tmp -= uint32(0x20) + if tmp >= uint32(0x60) { + return -int32(1) + } + tmp = uint32(_BF_atoi64[tmp]) + if tmp > uint32(63) { + return -int32(1) + } + c4 = tmp + v7 = dptr + dptr++ + *(*uint8)(unsafe.Pointer(v7)) = uint8(c3&uint32(0x03)<>int32(2)] + c1 = c1 & uint32(0x03) << int32(4) + if sptr >= end { + v3 = dptr + dptr++ + *(*uint8)(unsafe.Pointer(v3)) = _BF_itoa64[c1] + break + } + v4 = sptr + sptr++ + c2 = uint32(*(*uint8)(unsafe.Pointer(v4))) + c1 |= c2 >> int32(4) + v5 = dptr + dptr++ + *(*uint8)(unsafe.Pointer(v5)) = _BF_itoa64[c1] + c1 = c2 & uint32(0x0f) << int32(2) + if sptr >= end { + v6 = dptr + dptr++ + *(*uint8)(unsafe.Pointer(v6)) = _BF_itoa64[c1] + break + } + v7 = sptr + sptr++ + c2 = uint32(*(*uint8)(unsafe.Pointer(v7))) + c1 |= c2 >> int32(6) + v8 = dptr + dptr++ + *(*uint8)(unsafe.Pointer(v8)) = _BF_itoa64[c1] + v9 = dptr + dptr++ + *(*uint8)(unsafe.Pointer(v9)) = _BF_itoa64[c2&uint32(0x3f)] + } +} + +func _BF_swap(tls *TLS, x uintptr, count int32) { + var tmp TBF_word + var v1, v2 int32 + var v4 uintptr + _, _, _, _ = tmp, v1, v2, v4 + v1 = int32(1) + if *(*uint8)(unsafe.Pointer(&v1)) != 0 { + for { + tmp = *(*TBF_word)(unsafe.Pointer(x)) + tmp = tmp<>Int32FromInt32(16) + v4 = x + x += 4 + *(*TBF_word)(unsafe.Pointer(v4)) = tmp&uint32(0x00FF00FF)<>Int32FromInt32(8)&uint32(0x00FF00FF) + goto _3 + _3: + ; + count-- + v2 = count + if !(v2 != 0) { + break + } + } + } +} + +func _BF_encrypt(tls *TLS, ctx uintptr, L TBF_word, R TBF_word, start uintptr, end uintptr) (r TBF_word) { + var i int32 + var ptr, v2, v3 uintptr + var tmp1, tmp2, tmp3, tmp4 TBF_word + _, _, _, _, _, _, _, _ = i, ptr, tmp1, tmp2, tmp3, tmp4, v2, v3 + ptr = start + for cond := true; cond; cond = ptr < end { + L ^= *(*TBF_word)(unsafe.Pointer(ctx)) + i = 0 + for { + if !(i < int32(16)) { + break + } + tmp1 = L & uint32(0xFF) + tmp2 = L >> int32(8) + tmp2 &= uint32(0xFF) + tmp3 = L >> int32(16) + tmp3 &= uint32(0xFF) + tmp4 = L >> int32(24) + tmp1 = *(*TBF_word)(unsafe.Pointer(ctx + 72 + 3*1024 + uintptr(tmp1)*4)) + tmp2 = *(*TBF_word)(unsafe.Pointer(ctx + 72 + 2*1024 + uintptr(tmp2)*4)) + tmp3 = *(*TBF_word)(unsafe.Pointer(ctx + 72 + 1*1024 + uintptr(tmp3)*4)) + tmp3 += *(*TBF_word)(unsafe.Pointer(ctx + 72 + uintptr(tmp4)*4)) + tmp3 ^= tmp2 + R ^= *(*TBF_word)(unsafe.Pointer(ctx + uintptr(i+int32(1))*4)) + tmp3 += tmp1 + R ^= tmp3 + tmp1 = R & uint32(0xFF) + tmp2 = R >> int32(8) + tmp2 &= uint32(0xFF) + tmp3 = R >> int32(16) + tmp3 &= uint32(0xFF) + tmp4 = R >> int32(24) + tmp1 = *(*TBF_word)(unsafe.Pointer(ctx + 72 + 3*1024 + uintptr(tmp1)*4)) + tmp2 = *(*TBF_word)(unsafe.Pointer(ctx + 72 + 2*1024 + uintptr(tmp2)*4)) + tmp3 = *(*TBF_word)(unsafe.Pointer(ctx + 72 + 1*1024 + uintptr(tmp3)*4)) + tmp3 += *(*TBF_word)(unsafe.Pointer(ctx + 72 + uintptr(tmp4)*4)) + tmp3 ^= tmp2 + L ^= *(*TBF_word)(unsafe.Pointer(ctx + uintptr(i+int32(1)+int32(1))*4)) + tmp3 += tmp1 + L ^= tmp3 + goto _1 + _1: + ; + i += int32(2) + } + tmp4 = R + R = L + L = tmp4 ^ *(*TBF_word)(unsafe.Pointer(ctx + uintptr(Int32FromInt32(BF_N)+Int32FromInt32(1))*4)) + v2 = ptr + ptr += 4 + *(*TBF_word)(unsafe.Pointer(v2)) = L + v3 = ptr + ptr += 4 + *(*TBF_word)(unsafe.Pointer(v3)) = R + } + return L +} + +func _BF_set_key(tls *TLS, key uintptr, expanded uintptr, initial uintptr, flags uint8) { + bp := tls.Alloc(16) + defer tls.Free(16) + var bug, i, j uint32 + var diff, safety, sign, v1, v3 TBF_word + var ptr uintptr + var _ /* tmp at bp+0 */ [2]TBF_word + _, _, _, _, _, _, _, _, _ = bug, diff, i, j, ptr, safety, sign, v1, v3 + ptr = key + /* + * There was a sign extension bug in older revisions of this function. While + * we would have liked to simply fix the bug and move on, we have to provide + * a backwards compatibility feature (essentially the bug) for some systems and + * a safety measure for some others. The latter is needed because for certain + * multiple inputs to the buggy algorithm there exist easily found inputs to + * the correct algorithm that produce the same hash. Thus, we optionally + * deviate from the correct algorithm just enough to avoid such collisions. + * While the bug itself affected the majority of passwords containing + * characters with the 8th bit set (although only a percentage of those in a + * collision-producing way), the anti-collision safety measure affects + * only a subset of passwords containing the '\xff' character (not even all of + * those passwords, just some of them). This character is not found in valid + * UTF-8 sequences and is rarely used in popular 8-bit character encodings. + * Thus, the safety measure is unlikely to cause much annoyance, and is a + * reasonable tradeoff to use when authenticating against existing hashes that + * are not reliably known to have been computed with the correct algorithm. + * + * We use an approach that tries to minimize side-channel leaks of password + * information - that is, we mostly use fixed-cost bitwise operations instead + * of branches or table lookups. (One conditional branch based on password + * length remains. It is not part of the bug aftermath, though, and is + * difficult and possibly unreasonable to avoid given the use of C strings by + * the caller, which results in similar timing leaks anyway.) + * + * For actual implementation, we set an array index in the variable "bug" + * (0 means no bug, 1 means sign extension bug emulation) and a flag in the + * variable "safety" (bit 16 is set when the safety measure is requested). + * Valid combinations of settings are: + * + * Prefix "$2a$": bug = 0, safety = 0x10000 + * Prefix "$2b$": bug = 0, safety = 0 + * Prefix "$2x$": bug = 1, safety = 0 + * Prefix "$2y$": bug = 0, safety = 0 + */ + bug = uint32(int32(flags) & int32(1)) + safety = uint32(flags) & uint32(2) << int32(15) + v1 = Uint32FromInt32(0) + diff = v1 + sign = v1 + i = uint32(0) + for { + if !(i < uint32(Int32FromInt32(BF_N)+Int32FromInt32(2))) { + break + } + v3 = Uint32FromInt32(0) + (*(*[2]TBF_word)(unsafe.Pointer(bp)))[int32(1)] = v3 + (*(*[2]TBF_word)(unsafe.Pointer(bp)))[0] = v3 + j = uint32(0) + for { + if !(j < uint32(4)) { + break + } + *(*TBF_word)(unsafe.Pointer(bp)) <<= uint32(8) + *(*TBF_word)(unsafe.Pointer(bp)) |= uint32(*(*uint8)(unsafe.Pointer(ptr))) /* correct */ + *(*TBF_word)(unsafe.Pointer(bp + 1*4)) <<= uint32(8) + *(*TBF_word)(unsafe.Pointer(bp + 1*4)) |= uint32(int8(*(*uint8)(unsafe.Pointer(ptr)))) /* bug */ + /* + * Sign extension in the first char has no effect - nothing to overwrite yet, + * and those extra 24 bits will be fully shifted out of the 32-bit word. For + * chars 2, 3, 4 in each four-char block, we set bit 7 of "sign" if sign + * extension in tmp[1] occurs. Once this flag is set, it remains set. + */ + if j != 0 { + sign |= (*(*[2]TBF_word)(unsafe.Pointer(bp)))[int32(1)] & uint32(0x80) + } + if !(*(*uint8)(unsafe.Pointer(ptr)) != 0) { + ptr = key + } else { + ptr++ + } + goto _4 + _4: + ; + j++ + } + diff |= (*(*[2]TBF_word)(unsafe.Pointer(bp)))[0] ^ (*(*[2]TBF_word)(unsafe.Pointer(bp)))[int32(1)] /* Non-zero on any differences */ + *(*TBF_word)(unsafe.Pointer(expanded + uintptr(i)*4)) = (*(*[2]TBF_word)(unsafe.Pointer(bp)))[bug] + *(*TBF_word)(unsafe.Pointer(initial + uintptr(i)*4)) = *(*TBF_word)(unsafe.Pointer(uintptr(unsafe.Pointer(&_BF_init_state)) + uintptr(i)*4)) ^ (*(*[2]TBF_word)(unsafe.Pointer(bp)))[bug] + goto _2 + _2: + ; + i++ + } + /* + * At this point, "diff" is zero iff the correct and buggy algorithms produced + * exactly the same result. If so and if "sign" is non-zero, which indicates + * that there was a non-benign sign extension, this means that we have a + * collision between the correctly computed hash for this password and a set of + * passwords that could be supplied to the buggy algorithm. Our safety measure + * is meant to protect from such many-buggy to one-correct collisions, by + * deviating from the correct algorithm in such cases. Let's check for this. + */ + diff |= diff >> int32(16) /* still zero iff exact match */ + diff &= uint32(0xffff) /* ditto */ + diff += uint32(0xffff) /* bit 16 set iff "diff" was non-zero (on non-match) */ + sign <<= uint32(9) /* move the non-benign sign extension flag to bit 16 */ + sign &= ^diff & safety /* action needed? */ + /* + * If we have determined that we need to deviate from the correct algorithm, + * flip bit 16 in initial expanded key. (The choice of 16 is arbitrary, but + * let's stick to it now. It came out of the approach we used above, and it's + * not any worse than any other choice we could make.) + * + * It is crucial that we don't do the same to the expanded key used in the main + * Eksblowfish loop. By doing it to only one of these two, we deviate from a + * state that could be directly specified by a password to the buggy algorithm + * (and to the fully correct one as well, but that's a side-effect). + */ + *(*TBF_word)(unsafe.Pointer(initial)) ^= sign +} + +var _flags_by_subtype = [26]uint8{ + 0: uint8(2), + 1: uint8(4), + 23: uint8(1), + 24: uint8(4), +} + +func _BF_crypt(tls *TLS, key uintptr, setting uintptr, output uintptr, min TBF_word) (r uintptr) { + bp := tls.Alloc(4272) + defer tls.Free(4272) + var L, L1, R, count, tmp1, tmp2, tmp3, tmp4, v1, v6 TBF_word + var done, i int32 + var ptr uintptr + var _ /* LR at bp+4264 */ [2]TBF_word + var _ /* data at bp+0 */ struct { + Fctx TBF_ctx + Fexpanded_key TBF_key + Fbinary struct { + Foutput [0][6]TBF_word + Fsalt [4]TBF_word + F__ccgo_pad2 [8]byte + } + } + _, _, _, _, _, _, _, _, _, _, _, _, _ = L, L1, R, count, done, i, ptr, tmp1, tmp2, tmp3, tmp4, v1, v6 + if int32(*(*uint8)(unsafe.Pointer(setting))) != int32('$') || int32(*(*uint8)(unsafe.Pointer(setting + 1))) != int32('2') || uint32(int32(*(*uint8)(unsafe.Pointer(setting + 2)))-int32('a')) > uint32(25) || !(_flags_by_subtype[int32(*(*uint8)(unsafe.Pointer(setting + 2)))-int32('a')] != 0) || int32(*(*uint8)(unsafe.Pointer(setting + 3))) != int32('$') || uint32(int32(*(*uint8)(unsafe.Pointer(setting + 4)))-int32('0')) > uint32(1) || uint32(int32(*(*uint8)(unsafe.Pointer(setting + 5)))-int32('0')) > uint32(9) || int32(*(*uint8)(unsafe.Pointer(setting + 6))) != int32('$') { + return UintptrFromInt32(0) + } + count = Uint32FromInt32(1) << ((int32(*(*uint8)(unsafe.Pointer(setting + 4)))-int32('0'))*int32(10) + (int32(*(*uint8)(unsafe.Pointer(setting + 5))) - int32('0'))) + if count < min || _BF_decode(tls, bp+4240, setting+7, int32(16)) != 0 { + return UintptrFromInt32(0) + } + _BF_swap(tls, bp+4240, int32(4)) + _BF_set_key(tls, key, bp+4168, bp, _flags_by_subtype[int32(*(*uint8)(unsafe.Pointer(setting + 2)))-int32('a')]) + Xmemcpy(tls, bp+72, uintptr(unsafe.Pointer(&_BF_init_state))+72, uint64(4096)) + L = uint32(0) + R = uint32(0) + ptr = bp + for cond := true; cond; cond = int32(1) != 0 { + L = _BF_encrypt(tls, bp, L^*(*TBF_word)(unsafe.Pointer(bp + 4240)), R^*(*TBF_word)(unsafe.Pointer(bp + 4240 + 1*4)), ptr, ptr) + R = *(*TBF_word)(unsafe.Pointer(ptr + UintptrFromInt32(1)*4)) + ptr += uintptr(2) * 4 + if ptr >= bp+uintptr(Int32FromInt32(BF_N)+Int32FromInt32(2)+Int32FromInt32(4)*Int32FromInt32(0x100))*4 { + break + } + L = _BF_encrypt(tls, bp, L^*(*TBF_word)(unsafe.Pointer(bp + 4240 + 2*4)), R^*(*TBF_word)(unsafe.Pointer(bp + 4240 + 3*4)), ptr, ptr) + R = *(*TBF_word)(unsafe.Pointer(ptr + UintptrFromInt32(1)*4)) + ptr += uintptr(2) * 4 + } + for { + i = 0 + for { + if !(i < Int32FromInt32(BF_N)+Int32FromInt32(2)) { + break + } + *(*TBF_word)(unsafe.Pointer(bp + uintptr(i)*4)) ^= *(*TBF_word)(unsafe.Pointer(bp + 4168 + uintptr(i)*4)) + *(*TBF_word)(unsafe.Pointer(bp + uintptr(i+int32(1))*4)) ^= *(*TBF_word)(unsafe.Pointer(bp + 4168 + uintptr(i+int32(1))*4)) + goto _3 + _3: + ; + i += int32(2) + } + done = 0 + for cond := true; cond; cond = int32(1) != 0 { + _BF_encrypt(tls, bp, uint32(0), uint32(0), bp, bp+uintptr(Int32FromInt32(BF_N)+Int32FromInt32(2)+Int32FromInt32(4)*Int32FromInt32(0x100))*4) + if done != 0 { + break + } + done = int32(1) + tmp1 = *(*TBF_word)(unsafe.Pointer(bp + 4240)) + tmp2 = *(*TBF_word)(unsafe.Pointer(bp + 4240 + 1*4)) + tmp3 = *(*TBF_word)(unsafe.Pointer(bp + 4240 + 2*4)) + tmp4 = *(*TBF_word)(unsafe.Pointer(bp + 4240 + 3*4)) + i = 0 + for { + if !(i < int32(BF_N)) { + break + } + *(*TBF_word)(unsafe.Pointer(bp + uintptr(i)*4)) ^= tmp1 + *(*TBF_word)(unsafe.Pointer(bp + uintptr(i+int32(1))*4)) ^= tmp2 + *(*TBF_word)(unsafe.Pointer(bp + uintptr(i+int32(2))*4)) ^= tmp3 + *(*TBF_word)(unsafe.Pointer(bp + uintptr(i+int32(3))*4)) ^= tmp4 + goto _4 + _4: + ; + i += int32(4) + } + *(*TBF_word)(unsafe.Pointer(bp + 16*4)) ^= tmp1 + *(*TBF_word)(unsafe.Pointer(bp + 17*4)) ^= tmp2 + } + goto _2 + _2: + ; + count-- + v1 = count + if !(v1 != 0) { + break + } + } + i = 0 + for { + if !(i < int32(6)) { + break + } + L1 = _BF_magic_w[i] + (*(*[2]TBF_word)(unsafe.Pointer(bp + 4264)))[int32(1)] = _BF_magic_w[i+int32(1)] + count = uint32(64) + for { + L1 = _BF_encrypt(tls, bp, L1, (*(*[2]TBF_word)(unsafe.Pointer(bp + 4264)))[int32(1)], bp+4264, bp+4264) + goto _7 + _7: + ; + count-- + v6 = count + if !(v6 != 0) { + break + } + } + *(*TBF_word)(unsafe.Pointer(bp + 4240 + uintptr(i)*4)) = L1 + *(*TBF_word)(unsafe.Pointer(bp + 4240 + uintptr(i+int32(1))*4)) = (*(*[2]TBF_word)(unsafe.Pointer(bp + 4264)))[int32(1)] + goto _5 + _5: + ; + i += int32(2) + } + Xmemcpy(tls, output, setting, uint64(Int32FromInt32(7)+Int32FromInt32(22)-Int32FromInt32(1))) + *(*uint8)(unsafe.Pointer(output + uintptr(Int32FromInt32(7)+Int32FromInt32(22)-Int32FromInt32(1)))) = _BF_itoa64[int32(_BF_atoi64[int32(*(*uint8)(unsafe.Pointer(setting + uintptr(Int32FromInt32(7)+Int32FromInt32(22)-Int32FromInt32(1)))))-int32(0x20)])&int32(0x30)] + /* This has to be bug-compatible with the original implementation, so + * only encode 23 of the 24 bytes. :-) */ + _BF_swap(tls, bp+4240, int32(6)) + _BF_encode(tls, output+uintptr(Int32FromInt32(7)+Int32FromInt32(22)), bp+4240, int32(23)) + *(*uint8)(unsafe.Pointer(output + uintptr(Int32FromInt32(7)+Int32FromInt32(22)+Int32FromInt32(31)))) = uint8('\000') + return output +} + +// C documentation +// +// /* +// * Please preserve the runtime self-test. It serves two purposes at once: +// * +// * 1. We really can't afford the risk of producing incompatible hashes e.g. +// * when there's something like gcc bug 26587 again, whereas an application or +// * library integrating this code might not also integrate our external tests or +// * it might not run them after every build. Even if it does, the miscompile +// * might only occur on the production build, but not on a testing build (such +// * as because of different optimization settings). It is painful to recover +// * from incorrectly-computed hashes - merely fixing whatever broke is not +// * enough. Thus, a proactive measure like this self-test is needed. +// * +// * 2. We don't want to leave sensitive data from our actual password hash +// * computation on the stack or in registers. Previous revisions of the code +// * would do explicit cleanups, but simply running the self-test after hash +// * computation is more reliable. +// * +// * The performance cost of this quick self-test is around 0.6% at the "$2a$08" +// * setting. +// */ +func X__crypt_blowfish(tls *TLS, key uintptr, setting uintptr, output uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v key=%v setting=%v output=%v, (%v:)", tls, key, setting, output, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(384) + defer tls.Free(384) + var flags uint32 + var k, p, retval, test_hash, test_key, test_setting uintptr + var ok int32 + var _ /* ae at bp+96 */ TBF_key + var _ /* ai at bp+168 */ TBF_key + var _ /* buf at bp+0 */ struct { + Fs [30]uint8 + Fo [63]uint8 + } + var _ /* ye at bp+240 */ TBF_key + var _ /* yi at bp+312 */ TBF_key + _, _, _, _, _, _, _, _ = flags, k, ok, p, retval, test_hash, test_key, test_setting + test_key = __ccgo_ts + 18 + test_setting = __ccgo_ts + 28 + test_hash = uintptr(unsafe.Pointer(&_test_hashes)) + /* Hash the supplied password */ + retval = _BF_crypt(tls, key, setting, output, uint32(16)) + /* + * Do a quick self-test. It is important that we make both calls to BF_crypt() + * from the same scope such that they likely use the same stack locations, + * which makes the second call overwrite the first call's sensitive data on the + * stack and makes it more likely that any alignment related issues would be + * detected by the self-test. + */ + Xmemcpy(tls, bp, test_setting, uint64(30)) + if retval != 0 { + flags = uint32(_flags_by_subtype[int32(*(*uint8)(unsafe.Pointer(setting + 2)))-int32('a')]) + test_hash = uintptr(unsafe.Pointer(&_test_hashes)) + uintptr(flags&uint32(1))*34 + *(*uint8)(unsafe.Pointer(bp + 2)) = *(*uint8)(unsafe.Pointer(setting + 2)) + } + Xmemset(tls, bp+30, int32(0x55), uint64(63)) + *(*uint8)(unsafe.Pointer(bp + 30 + uintptr(Uint64FromInt64(63)-Uint64FromInt32(1)))) = uint8(0) + p = _BF_crypt(tls, test_key, bp, bp+30, uint32(1)) + ok = BoolInt32(p == bp+30 && !(Xmemcmp(tls, p, bp, uint64(Int32FromInt32(7)+Int32FromInt32(22))) != 0) && !(Xmemcmp(tls, p+uintptr(Int32FromInt32(7)+Int32FromInt32(22)), test_hash, uint64(Int32FromInt32(31)+Int32FromInt32(1)+Int32FromInt32(1)+Int32FromInt32(1))) != 0)) + k = __ccgo_ts + 58 + _BF_set_key(tls, k, bp+96, bp+168, uint8(2)) /* $2a$ */ + _BF_set_key(tls, k, bp+240, bp+312, uint8(4)) /* $2y$ */ + *(*TBF_word)(unsafe.Pointer(bp + 168)) ^= uint32(0x10000) /* undo the safety (for comparison) */ + ok = BoolInt32(ok != 0 && (*(*TBF_key)(unsafe.Pointer(bp + 168)))[0] == uint32(0xdb9c59bc) && (*(*TBF_key)(unsafe.Pointer(bp + 240)))[int32(17)] == uint32(0x33343500) && !(Xmemcmp(tls, bp+96, bp+240, uint64(72)) != 0) && !(Xmemcmp(tls, bp+168, bp+312, uint64(72)) != 0)) + if ok != 0 && retval != 0 { + return retval + } + return __ccgo_ts + 70 +} + +var _test_hashes = [2][34]uint8{ + 0: {'i', '1', 'D', '7', '0', '9', 'v', 'f', 'a', 'm', 'u', 'l', 'i', 'm', 'l', 'G', 'c', 'q', '0', 'q', 'q', '3', 'U', 'v', 'u', 'U', 'a', 's', 'v', 'E', 'a', 0, 'U'}, + 1: {'V', 'U', 'r', 'P', 'm', 'X', 'D', '6', 'q', '/', 'n', 'V', 'S', 'S', 'p', '7', 'p', 'N', 'D', 'h', 'C', 'R', '9', '0', '7', '1', 'I', 'f', 'I', 'R', 'e', 0, 'U'}, +} + +const _PASSWORD_EFMT1 = 95 + +type Texpanded_key = struct { + Fl [16]Tuint32_t + Fr [16]Tuint32_t +} + +var _key_shifts = [16]uint8{ + 0: uint8(1), + 1: uint8(1), + 2: uint8(2), + 3: uint8(2), + 4: uint8(2), + 5: uint8(2), + 6: uint8(2), + 7: uint8(2), + 8: uint8(1), + 9: uint8(2), + 10: uint8(2), + 11: uint8(2), + 12: uint8(2), + 13: uint8(2), + 14: uint8(2), + 15: uint8(1), +} + +var _psbox = [8][64]Tuint32_t{ + 0: { + 0: uint32(0x00808200), + 2: uint32(0x00008000), + 3: uint32(0x00808202), + 4: uint32(0x00808002), + 5: uint32(0x00008202), + 6: uint32(0x00000002), + 7: uint32(0x00008000), + 8: uint32(0x00000200), + 9: uint32(0x00808200), + 10: uint32(0x00808202), + 11: uint32(0x00000200), + 12: uint32(0x00800202), + 13: uint32(0x00808002), + 14: uint32(0x00800000), + 15: uint32(0x00000002), + 16: uint32(0x00000202), + 17: uint32(0x00800200), + 18: uint32(0x00800200), + 19: uint32(0x00008200), + 20: uint32(0x00008200), + 21: uint32(0x00808000), + 22: uint32(0x00808000), + 23: uint32(0x00800202), + 24: uint32(0x00008002), + 25: uint32(0x00800002), + 26: uint32(0x00800002), + 27: uint32(0x00008002), + 29: uint32(0x00000202), + 30: uint32(0x00008202), + 31: uint32(0x00800000), + 32: uint32(0x00008000), + 33: uint32(0x00808202), + 34: uint32(0x00000002), + 35: uint32(0x00808000), + 36: uint32(0x00808200), + 37: uint32(0x00800000), + 38: uint32(0x00800000), + 39: uint32(0x00000200), + 40: uint32(0x00808002), + 41: uint32(0x00008000), + 42: uint32(0x00008200), + 43: uint32(0x00800002), + 44: uint32(0x00000200), + 45: uint32(0x00000002), + 46: uint32(0x00800202), + 47: uint32(0x00008202), + 48: uint32(0x00808202), + 49: uint32(0x00008002), + 50: uint32(0x00808000), + 51: uint32(0x00800202), + 52: uint32(0x00800002), + 53: uint32(0x00000202), + 54: uint32(0x00008202), + 55: uint32(0x00808200), + 56: uint32(0x00000202), + 57: uint32(0x00800200), + 58: uint32(0x00800200), + 60: uint32(0x00008002), + 61: uint32(0x00008200), + 63: uint32(0x00808002), + }, + 1: { + 0: uint32(0x40084010), + 1: uint32(0x40004000), + 2: uint32(0x00004000), + 3: uint32(0x00084010), + 4: uint32(0x00080000), + 5: uint32(0x00000010), + 6: uint32(0x40080010), + 7: uint32(0x40004010), + 8: uint32(0x40000010), + 9: uint32(0x40084010), + 10: uint32(0x40084000), + 11: uint32(0x40000000), + 12: uint32(0x40004000), + 13: uint32(0x00080000), + 14: uint32(0x00000010), + 15: uint32(0x40080010), + 16: uint32(0x00084000), + 17: uint32(0x00080010), + 18: uint32(0x40004010), + 20: uint32(0x40000000), + 21: uint32(0x00004000), + 22: uint32(0x00084010), + 23: uint32(0x40080000), + 24: uint32(0x00080010), + 25: uint32(0x40000010), + 27: uint32(0x00084000), + 28: uint32(0x00004010), + 29: uint32(0x40084000), + 30: uint32(0x40080000), + 31: uint32(0x00004010), + 33: uint32(0x00084010), + 34: uint32(0x40080010), + 35: uint32(0x00080000), + 36: uint32(0x40004010), + 37: uint32(0x40080000), + 38: uint32(0x40084000), + 39: uint32(0x00004000), + 40: uint32(0x40080000), + 41: uint32(0x40004000), + 42: uint32(0x00000010), + 43: uint32(0x40084010), + 44: uint32(0x00084010), + 45: uint32(0x00000010), + 46: uint32(0x00004000), + 47: uint32(0x40000000), + 48: uint32(0x00004010), + 49: uint32(0x40084000), + 50: uint32(0x00080000), + 51: uint32(0x40000010), + 52: uint32(0x00080010), + 53: uint32(0x40004010), + 54: uint32(0x40000010), + 55: uint32(0x00080010), + 56: uint32(0x00084000), + 58: uint32(0x40004000), + 59: uint32(0x00004010), + 60: uint32(0x40000000), + 61: uint32(0x40080010), + 62: uint32(0x40084010), + 63: uint32(0x00084000), + }, + 2: { + 0: uint32(0x00000104), + 1: uint32(0x04010100), + 3: uint32(0x04010004), + 4: uint32(0x04000100), + 6: uint32(0x00010104), + 7: uint32(0x04000100), + 8: uint32(0x00010004), + 9: uint32(0x04000004), + 10: uint32(0x04000004), + 11: uint32(0x00010000), + 12: uint32(0x04010104), + 13: uint32(0x00010004), + 14: uint32(0x04010000), + 15: uint32(0x00000104), + 16: uint32(0x04000000), + 17: uint32(0x00000004), + 18: uint32(0x04010100), + 19: uint32(0x00000100), + 20: uint32(0x00010100), + 21: uint32(0x04010000), + 22: uint32(0x04010004), + 23: uint32(0x00010104), + 24: uint32(0x04000104), + 25: uint32(0x00010100), + 26: uint32(0x00010000), + 27: uint32(0x04000104), + 28: uint32(0x00000004), + 29: uint32(0x04010104), + 30: uint32(0x00000100), + 31: uint32(0x04000000), + 32: uint32(0x04010100), + 33: uint32(0x04000000), + 34: uint32(0x00010004), + 35: uint32(0x00000104), + 36: uint32(0x00010000), + 37: uint32(0x04010100), + 38: uint32(0x04000100), + 40: uint32(0x00000100), + 41: uint32(0x00010004), + 42: uint32(0x04010104), + 43: uint32(0x04000100), + 44: uint32(0x04000004), + 45: uint32(0x00000100), + 47: uint32(0x04010004), + 48: uint32(0x04000104), + 49: uint32(0x00010000), + 50: uint32(0x04000000), + 51: uint32(0x04010104), + 52: uint32(0x00000004), + 53: uint32(0x00010104), + 54: uint32(0x00010100), + 55: uint32(0x04000004), + 56: uint32(0x04010000), + 57: uint32(0x04000104), + 58: uint32(0x00000104), + 59: uint32(0x04010000), + 60: uint32(0x00010104), + 61: uint32(0x00000004), + 62: uint32(0x04010004), + 63: uint32(0x00010100), + }, + 3: { + 0: uint32(0x80401000), + 1: uint32(0x80001040), + 2: uint32(0x80001040), + 3: uint32(0x00000040), + 4: uint32(0x00401040), + 5: uint32(0x80400040), + 6: uint32(0x80400000), + 7: uint32(0x80001000), + 9: uint32(0x00401000), + 10: uint32(0x00401000), + 11: uint32(0x80401040), + 12: uint32(0x80000040), + 14: uint32(0x00400040), + 15: uint32(0x80400000), + 16: uint32(0x80000000), + 17: uint32(0x00001000), + 18: uint32(0x00400000), + 19: uint32(0x80401000), + 20: uint32(0x00000040), + 21: uint32(0x00400000), + 22: uint32(0x80001000), + 23: uint32(0x00001040), + 24: uint32(0x80400040), + 25: uint32(0x80000000), + 26: uint32(0x00001040), + 27: uint32(0x00400040), + 28: uint32(0x00001000), + 29: uint32(0x00401040), + 30: uint32(0x80401040), + 31: uint32(0x80000040), + 32: uint32(0x00400040), + 33: uint32(0x80400000), + 34: uint32(0x00401000), + 35: uint32(0x80401040), + 36: uint32(0x80000040), + 39: uint32(0x00401000), + 40: uint32(0x00001040), + 41: uint32(0x00400040), + 42: uint32(0x80400040), + 43: uint32(0x80000000), + 44: uint32(0x80401000), + 45: uint32(0x80001040), + 46: uint32(0x80001040), + 47: uint32(0x00000040), + 48: uint32(0x80401040), + 49: uint32(0x80000040), + 50: uint32(0x80000000), + 51: uint32(0x00001000), + 52: uint32(0x80400000), + 53: uint32(0x80001000), + 54: uint32(0x00401040), + 55: uint32(0x80400040), + 56: uint32(0x80001000), + 57: uint32(0x00001040), + 58: uint32(0x00400000), + 59: uint32(0x80401000), + 60: uint32(0x00000040), + 61: uint32(0x00400000), + 62: uint32(0x00001000), + 63: uint32(0x00401040), + }, + 4: { + 0: uint32(0x00000080), + 1: uint32(0x01040080), + 2: uint32(0x01040000), + 3: uint32(0x21000080), + 4: uint32(0x00040000), + 5: uint32(0x00000080), + 6: uint32(0x20000000), + 7: uint32(0x01040000), + 8: uint32(0x20040080), + 9: uint32(0x00040000), + 10: uint32(0x01000080), + 11: uint32(0x20040080), + 12: uint32(0x21000080), + 13: uint32(0x21040000), + 14: uint32(0x00040080), + 15: uint32(0x20000000), + 16: uint32(0x01000000), + 17: uint32(0x20040000), + 18: uint32(0x20040000), + 20: uint32(0x20000080), + 21: uint32(0x21040080), + 22: uint32(0x21040080), + 23: uint32(0x01000080), + 24: uint32(0x21040000), + 25: uint32(0x20000080), + 27: uint32(0x21000000), + 28: uint32(0x01040080), + 29: uint32(0x01000000), + 30: uint32(0x21000000), + 31: uint32(0x00040080), + 32: uint32(0x00040000), + 33: uint32(0x21000080), + 34: uint32(0x00000080), + 35: uint32(0x01000000), + 36: uint32(0x20000000), + 37: uint32(0x01040000), + 38: uint32(0x21000080), + 39: uint32(0x20040080), + 40: uint32(0x01000080), + 41: uint32(0x20000000), + 42: uint32(0x21040000), + 43: uint32(0x01040080), + 44: uint32(0x20040080), + 45: uint32(0x00000080), + 46: uint32(0x01000000), + 47: uint32(0x21040000), + 48: uint32(0x21040080), + 49: uint32(0x00040080), + 50: uint32(0x21000000), + 51: uint32(0x21040080), + 52: uint32(0x01040000), + 54: uint32(0x20040000), + 55: uint32(0x21000000), + 56: uint32(0x00040080), + 57: uint32(0x01000080), + 58: uint32(0x20000080), + 59: uint32(0x00040000), + 61: uint32(0x20040000), + 62: uint32(0x01040080), + 63: uint32(0x20000080), + }, + 5: { + 0: uint32(0x10000008), + 1: uint32(0x10200000), + 2: uint32(0x00002000), + 3: uint32(0x10202008), + 4: uint32(0x10200000), + 5: uint32(0x00000008), + 6: uint32(0x10202008), + 7: uint32(0x00200000), + 8: uint32(0x10002000), + 9: uint32(0x00202008), + 10: uint32(0x00200000), + 11: uint32(0x10000008), + 12: uint32(0x00200008), + 13: uint32(0x10002000), + 14: uint32(0x10000000), + 15: uint32(0x00002008), + 17: uint32(0x00200008), + 18: uint32(0x10002008), + 19: uint32(0x00002000), + 20: uint32(0x00202000), + 21: uint32(0x10002008), + 22: uint32(0x00000008), + 23: uint32(0x10200008), + 24: uint32(0x10200008), + 26: uint32(0x00202008), + 27: uint32(0x10202000), + 28: uint32(0x00002008), + 29: uint32(0x00202000), + 30: uint32(0x10202000), + 31: uint32(0x10000000), + 32: uint32(0x10002000), + 33: uint32(0x00000008), + 34: uint32(0x10200008), + 35: uint32(0x00202000), + 36: uint32(0x10202008), + 37: uint32(0x00200000), + 38: uint32(0x00002008), + 39: uint32(0x10000008), + 40: uint32(0x00200000), + 41: uint32(0x10002000), + 42: uint32(0x10000000), + 43: uint32(0x00002008), + 44: uint32(0x10000008), + 45: uint32(0x10202008), + 46: uint32(0x00202000), + 47: uint32(0x10200000), + 48: uint32(0x00202008), + 49: uint32(0x10202000), + 51: uint32(0x10200008), + 52: uint32(0x00000008), + 53: uint32(0x00002000), + 54: uint32(0x10200000), + 55: uint32(0x00202008), + 56: uint32(0x00002000), + 57: uint32(0x00200008), + 58: uint32(0x10002008), + 60: uint32(0x10202000), + 61: uint32(0x10000000), + 62: uint32(0x00200008), + 63: uint32(0x10002008), + }, + 6: { + 0: uint32(0x00100000), + 1: uint32(0x02100001), + 2: uint32(0x02000401), + 4: uint32(0x00000400), + 5: uint32(0x02000401), + 6: uint32(0x00100401), + 7: uint32(0x02100400), + 8: uint32(0x02100401), + 9: uint32(0x00100000), + 11: uint32(0x02000001), + 12: uint32(0x00000001), + 13: uint32(0x02000000), + 14: uint32(0x02100001), + 15: uint32(0x00000401), + 16: uint32(0x02000400), + 17: uint32(0x00100401), + 18: uint32(0x00100001), + 19: uint32(0x02000400), + 20: uint32(0x02000001), + 21: uint32(0x02100000), + 22: uint32(0x02100400), + 23: uint32(0x00100001), + 24: uint32(0x02100000), + 25: uint32(0x00000400), + 26: uint32(0x00000401), + 27: uint32(0x02100401), + 28: uint32(0x00100400), + 29: uint32(0x00000001), + 30: uint32(0x02000000), + 31: uint32(0x00100400), + 32: uint32(0x02000000), + 33: uint32(0x00100400), + 34: uint32(0x00100000), + 35: uint32(0x02000401), + 36: uint32(0x02000401), + 37: uint32(0x02100001), + 38: uint32(0x02100001), + 39: uint32(0x00000001), + 40: uint32(0x00100001), + 41: uint32(0x02000000), + 42: uint32(0x02000400), + 43: uint32(0x00100000), + 44: uint32(0x02100400), + 45: uint32(0x00000401), + 46: uint32(0x00100401), + 47: uint32(0x02100400), + 48: uint32(0x00000401), + 49: uint32(0x02000001), + 50: uint32(0x02100401), + 51: uint32(0x02100000), + 52: uint32(0x00100400), + 54: uint32(0x00000001), + 55: uint32(0x02100401), + 57: uint32(0x00100401), + 58: uint32(0x02100000), + 59: uint32(0x00000400), + 60: uint32(0x02000001), + 61: uint32(0x02000400), + 62: uint32(0x00000400), + 63: uint32(0x00100001), + }, + 7: { + 0: uint32(0x08000820), + 1: uint32(0x00000800), + 2: uint32(0x00020000), + 3: uint32(0x08020820), + 4: uint32(0x08000000), + 5: uint32(0x08000820), + 6: uint32(0x00000020), + 7: uint32(0x08000000), + 8: uint32(0x00020020), + 9: uint32(0x08020000), + 10: uint32(0x08020820), + 11: uint32(0x00020800), + 12: uint32(0x08020800), + 13: uint32(0x00020820), + 14: uint32(0x00000800), + 15: uint32(0x00000020), + 16: uint32(0x08020000), + 17: uint32(0x08000020), + 18: uint32(0x08000800), + 19: uint32(0x00000820), + 20: uint32(0x00020800), + 21: uint32(0x00020020), + 22: uint32(0x08020020), + 23: uint32(0x08020800), + 24: uint32(0x00000820), + 27: uint32(0x08020020), + 28: uint32(0x08000020), + 29: uint32(0x08000800), + 30: uint32(0x00020820), + 31: uint32(0x00020000), + 32: uint32(0x00020820), + 33: uint32(0x00020000), + 34: uint32(0x08020800), + 35: uint32(0x00000800), + 36: uint32(0x00000020), + 37: uint32(0x08020020), + 38: uint32(0x00000800), + 39: uint32(0x00020820), + 40: uint32(0x08000800), + 41: uint32(0x00000020), + 42: uint32(0x08000020), + 43: uint32(0x08020000), + 44: uint32(0x08020020), + 45: uint32(0x08000000), + 46: uint32(0x00020000), + 47: uint32(0x08000820), + 49: uint32(0x08020820), + 50: uint32(0x00020020), + 51: uint32(0x08000020), + 52: uint32(0x08020000), + 53: uint32(0x08000800), + 54: uint32(0x08000820), + 56: uint32(0x08020820), + 57: uint32(0x00020800), + 58: uint32(0x00020800), + 59: uint32(0x00000820), + 60: uint32(0x00000820), + 61: uint32(0x00020020), + 62: uint32(0x08000000), + 63: uint32(0x08020800), + }, +} +var _ip_maskl = [16][16]Tuint32_t{ + 0: { + 1: uint32(0x00010000), + 3: uint32(0x00010000), + 4: uint32(0x01000000), + 5: uint32(0x01010000), + 6: uint32(0x01000000), + 7: uint32(0x01010000), + 9: uint32(0x00010000), + 11: uint32(0x00010000), + 12: uint32(0x01000000), + 13: uint32(0x01010000), + 14: uint32(0x01000000), + 15: uint32(0x01010000), + }, + 1: { + 1: uint32(0x00000001), + 3: uint32(0x00000001), + 4: uint32(0x00000100), + 5: uint32(0x00000101), + 6: uint32(0x00000100), + 7: uint32(0x00000101), + 9: uint32(0x00000001), + 11: uint32(0x00000001), + 12: uint32(0x00000100), + 13: uint32(0x00000101), + 14: uint32(0x00000100), + 15: uint32(0x00000101), + }, + 2: { + 1: uint32(0x00020000), + 3: uint32(0x00020000), + 4: uint32(0x02000000), + 5: uint32(0x02020000), + 6: uint32(0x02000000), + 7: uint32(0x02020000), + 9: uint32(0x00020000), + 11: uint32(0x00020000), + 12: uint32(0x02000000), + 13: uint32(0x02020000), + 14: uint32(0x02000000), + 15: uint32(0x02020000), + }, + 3: { + 1: uint32(0x00000002), + 3: uint32(0x00000002), + 4: uint32(0x00000200), + 5: uint32(0x00000202), + 6: uint32(0x00000200), + 7: uint32(0x00000202), + 9: uint32(0x00000002), + 11: uint32(0x00000002), + 12: uint32(0x00000200), + 13: uint32(0x00000202), + 14: uint32(0x00000200), + 15: uint32(0x00000202), + }, + 4: { + 1: uint32(0x00040000), + 3: uint32(0x00040000), + 4: uint32(0x04000000), + 5: uint32(0x04040000), + 6: uint32(0x04000000), + 7: uint32(0x04040000), + 9: uint32(0x00040000), + 11: uint32(0x00040000), + 12: uint32(0x04000000), + 13: uint32(0x04040000), + 14: uint32(0x04000000), + 15: uint32(0x04040000), + }, + 5: { + 1: uint32(0x00000004), + 3: uint32(0x00000004), + 4: uint32(0x00000400), + 5: uint32(0x00000404), + 6: uint32(0x00000400), + 7: uint32(0x00000404), + 9: uint32(0x00000004), + 11: uint32(0x00000004), + 12: uint32(0x00000400), + 13: uint32(0x00000404), + 14: uint32(0x00000400), + 15: uint32(0x00000404), + }, + 6: { + 1: uint32(0x00080000), + 3: uint32(0x00080000), + 4: uint32(0x08000000), + 5: uint32(0x08080000), + 6: uint32(0x08000000), + 7: uint32(0x08080000), + 9: uint32(0x00080000), + 11: uint32(0x00080000), + 12: uint32(0x08000000), + 13: uint32(0x08080000), + 14: uint32(0x08000000), + 15: uint32(0x08080000), + }, + 7: { + 1: uint32(0x00000008), + 3: uint32(0x00000008), + 4: uint32(0x00000800), + 5: uint32(0x00000808), + 6: uint32(0x00000800), + 7: uint32(0x00000808), + 9: uint32(0x00000008), + 11: uint32(0x00000008), + 12: uint32(0x00000800), + 13: uint32(0x00000808), + 14: uint32(0x00000800), + 15: uint32(0x00000808), + }, + 8: { + 1: uint32(0x00100000), + 3: uint32(0x00100000), + 4: uint32(0x10000000), + 5: uint32(0x10100000), + 6: uint32(0x10000000), + 7: uint32(0x10100000), + 9: uint32(0x00100000), + 11: uint32(0x00100000), + 12: uint32(0x10000000), + 13: uint32(0x10100000), + 14: uint32(0x10000000), + 15: uint32(0x10100000), + }, + 9: { + 1: uint32(0x00000010), + 3: uint32(0x00000010), + 4: uint32(0x00001000), + 5: uint32(0x00001010), + 6: uint32(0x00001000), + 7: uint32(0x00001010), + 9: uint32(0x00000010), + 11: uint32(0x00000010), + 12: uint32(0x00001000), + 13: uint32(0x00001010), + 14: uint32(0x00001000), + 15: uint32(0x00001010), + }, + 10: { + 1: uint32(0x00200000), + 3: uint32(0x00200000), + 4: uint32(0x20000000), + 5: uint32(0x20200000), + 6: uint32(0x20000000), + 7: uint32(0x20200000), + 9: uint32(0x00200000), + 11: uint32(0x00200000), + 12: uint32(0x20000000), + 13: uint32(0x20200000), + 14: uint32(0x20000000), + 15: uint32(0x20200000), + }, + 11: { + 1: uint32(0x00000020), + 3: uint32(0x00000020), + 4: uint32(0x00002000), + 5: uint32(0x00002020), + 6: uint32(0x00002000), + 7: uint32(0x00002020), + 9: uint32(0x00000020), + 11: uint32(0x00000020), + 12: uint32(0x00002000), + 13: uint32(0x00002020), + 14: uint32(0x00002000), + 15: uint32(0x00002020), + }, + 12: { + 1: uint32(0x00400000), + 3: uint32(0x00400000), + 4: uint32(0x40000000), + 5: uint32(0x40400000), + 6: uint32(0x40000000), + 7: uint32(0x40400000), + 9: uint32(0x00400000), + 11: uint32(0x00400000), + 12: uint32(0x40000000), + 13: uint32(0x40400000), + 14: uint32(0x40000000), + 15: uint32(0x40400000), + }, + 13: { + 1: uint32(0x00000040), + 3: uint32(0x00000040), + 4: uint32(0x00004000), + 5: uint32(0x00004040), + 6: uint32(0x00004000), + 7: uint32(0x00004040), + 9: uint32(0x00000040), + 11: uint32(0x00000040), + 12: uint32(0x00004000), + 13: uint32(0x00004040), + 14: uint32(0x00004000), + 15: uint32(0x00004040), + }, + 14: { + 1: uint32(0x00800000), + 3: uint32(0x00800000), + 4: uint32(0x80000000), + 5: uint32(0x80800000), + 6: uint32(0x80000000), + 7: uint32(0x80800000), + 9: uint32(0x00800000), + 11: uint32(0x00800000), + 12: uint32(0x80000000), + 13: uint32(0x80800000), + 14: uint32(0x80000000), + 15: uint32(0x80800000), + }, + 15: { + 1: uint32(0x00000080), + 3: uint32(0x00000080), + 4: uint32(0x00008000), + 5: uint32(0x00008080), + 6: uint32(0x00008000), + 7: uint32(0x00008080), + 9: uint32(0x00000080), + 11: uint32(0x00000080), + 12: uint32(0x00008000), + 13: uint32(0x00008080), + 14: uint32(0x00008000), + 15: uint32(0x00008080), + }, +} +var _ip_maskr = [16][16]Tuint32_t{ + 0: { + 2: uint32(0x00010000), + 3: uint32(0x00010000), + 6: uint32(0x00010000), + 7: uint32(0x00010000), + 8: uint32(0x01000000), + 9: uint32(0x01000000), + 10: uint32(0x01010000), + 11: uint32(0x01010000), + 12: uint32(0x01000000), + 13: uint32(0x01000000), + 14: uint32(0x01010000), + 15: uint32(0x01010000), + }, + 1: { + 2: uint32(0x00000001), + 3: uint32(0x00000001), + 6: uint32(0x00000001), + 7: uint32(0x00000001), + 8: uint32(0x00000100), + 9: uint32(0x00000100), + 10: uint32(0x00000101), + 11: uint32(0x00000101), + 12: uint32(0x00000100), + 13: uint32(0x00000100), + 14: uint32(0x00000101), + 15: uint32(0x00000101), + }, + 2: { + 2: uint32(0x00020000), + 3: uint32(0x00020000), + 6: uint32(0x00020000), + 7: uint32(0x00020000), + 8: uint32(0x02000000), + 9: uint32(0x02000000), + 10: uint32(0x02020000), + 11: uint32(0x02020000), + 12: uint32(0x02000000), + 13: uint32(0x02000000), + 14: uint32(0x02020000), + 15: uint32(0x02020000), + }, + 3: { + 2: uint32(0x00000002), + 3: uint32(0x00000002), + 6: uint32(0x00000002), + 7: uint32(0x00000002), + 8: uint32(0x00000200), + 9: uint32(0x00000200), + 10: uint32(0x00000202), + 11: uint32(0x00000202), + 12: uint32(0x00000200), + 13: uint32(0x00000200), + 14: uint32(0x00000202), + 15: uint32(0x00000202), + }, + 4: { + 2: uint32(0x00040000), + 3: uint32(0x00040000), + 6: uint32(0x00040000), + 7: uint32(0x00040000), + 8: uint32(0x04000000), + 9: uint32(0x04000000), + 10: uint32(0x04040000), + 11: uint32(0x04040000), + 12: uint32(0x04000000), + 13: uint32(0x04000000), + 14: uint32(0x04040000), + 15: uint32(0x04040000), + }, + 5: { + 2: uint32(0x00000004), + 3: uint32(0x00000004), + 6: uint32(0x00000004), + 7: uint32(0x00000004), + 8: uint32(0x00000400), + 9: uint32(0x00000400), + 10: uint32(0x00000404), + 11: uint32(0x00000404), + 12: uint32(0x00000400), + 13: uint32(0x00000400), + 14: uint32(0x00000404), + 15: uint32(0x00000404), + }, + 6: { + 2: uint32(0x00080000), + 3: uint32(0x00080000), + 6: uint32(0x00080000), + 7: uint32(0x00080000), + 8: uint32(0x08000000), + 9: uint32(0x08000000), + 10: uint32(0x08080000), + 11: uint32(0x08080000), + 12: uint32(0x08000000), + 13: uint32(0x08000000), + 14: uint32(0x08080000), + 15: uint32(0x08080000), + }, + 7: { + 2: uint32(0x00000008), + 3: uint32(0x00000008), + 6: uint32(0x00000008), + 7: uint32(0x00000008), + 8: uint32(0x00000800), + 9: uint32(0x00000800), + 10: uint32(0x00000808), + 11: uint32(0x00000808), + 12: uint32(0x00000800), + 13: uint32(0x00000800), + 14: uint32(0x00000808), + 15: uint32(0x00000808), + }, + 8: { + 2: uint32(0x00100000), + 3: uint32(0x00100000), + 6: uint32(0x00100000), + 7: uint32(0x00100000), + 8: uint32(0x10000000), + 9: uint32(0x10000000), + 10: uint32(0x10100000), + 11: uint32(0x10100000), + 12: uint32(0x10000000), + 13: uint32(0x10000000), + 14: uint32(0x10100000), + 15: uint32(0x10100000), + }, + 9: { + 2: uint32(0x00000010), + 3: uint32(0x00000010), + 6: uint32(0x00000010), + 7: uint32(0x00000010), + 8: uint32(0x00001000), + 9: uint32(0x00001000), + 10: uint32(0x00001010), + 11: uint32(0x00001010), + 12: uint32(0x00001000), + 13: uint32(0x00001000), + 14: uint32(0x00001010), + 15: uint32(0x00001010), + }, + 10: { + 2: uint32(0x00200000), + 3: uint32(0x00200000), + 6: uint32(0x00200000), + 7: uint32(0x00200000), + 8: uint32(0x20000000), + 9: uint32(0x20000000), + 10: uint32(0x20200000), + 11: uint32(0x20200000), + 12: uint32(0x20000000), + 13: uint32(0x20000000), + 14: uint32(0x20200000), + 15: uint32(0x20200000), + }, + 11: { + 2: uint32(0x00000020), + 3: uint32(0x00000020), + 6: uint32(0x00000020), + 7: uint32(0x00000020), + 8: uint32(0x00002000), + 9: uint32(0x00002000), + 10: uint32(0x00002020), + 11: uint32(0x00002020), + 12: uint32(0x00002000), + 13: uint32(0x00002000), + 14: uint32(0x00002020), + 15: uint32(0x00002020), + }, + 12: { + 2: uint32(0x00400000), + 3: uint32(0x00400000), + 6: uint32(0x00400000), + 7: uint32(0x00400000), + 8: uint32(0x40000000), + 9: uint32(0x40000000), + 10: uint32(0x40400000), + 11: uint32(0x40400000), + 12: uint32(0x40000000), + 13: uint32(0x40000000), + 14: uint32(0x40400000), + 15: uint32(0x40400000), + }, + 13: { + 2: uint32(0x00000040), + 3: uint32(0x00000040), + 6: uint32(0x00000040), + 7: uint32(0x00000040), + 8: uint32(0x00004000), + 9: uint32(0x00004000), + 10: uint32(0x00004040), + 11: uint32(0x00004040), + 12: uint32(0x00004000), + 13: uint32(0x00004000), + 14: uint32(0x00004040), + 15: uint32(0x00004040), + }, + 14: { + 2: uint32(0x00800000), + 3: uint32(0x00800000), + 6: uint32(0x00800000), + 7: uint32(0x00800000), + 8: uint32(0x80000000), + 9: uint32(0x80000000), + 10: uint32(0x80800000), + 11: uint32(0x80800000), + 12: uint32(0x80000000), + 13: uint32(0x80000000), + 14: uint32(0x80800000), + 15: uint32(0x80800000), + }, + 15: { + 2: uint32(0x00000080), + 3: uint32(0x00000080), + 6: uint32(0x00000080), + 7: uint32(0x00000080), + 8: uint32(0x00008000), + 9: uint32(0x00008000), + 10: uint32(0x00008080), + 11: uint32(0x00008080), + 12: uint32(0x00008000), + 13: uint32(0x00008000), + 14: uint32(0x00008080), + 15: uint32(0x00008080), + }, +} +var _fp_maskl = [8][16]Tuint32_t{ + 0: { + 1: uint32(0x40000000), + 2: uint32(0x00400000), + 3: uint32(0x40400000), + 4: uint32(0x00004000), + 5: uint32(0x40004000), + 6: uint32(0x00404000), + 7: uint32(0x40404000), + 8: uint32(0x00000040), + 9: uint32(0x40000040), + 10: uint32(0x00400040), + 11: uint32(0x40400040), + 12: uint32(0x00004040), + 13: uint32(0x40004040), + 14: uint32(0x00404040), + 15: uint32(0x40404040), + }, + 1: { + 1: uint32(0x10000000), + 2: uint32(0x00100000), + 3: uint32(0x10100000), + 4: uint32(0x00001000), + 5: uint32(0x10001000), + 6: uint32(0x00101000), + 7: uint32(0x10101000), + 8: uint32(0x00000010), + 9: uint32(0x10000010), + 10: uint32(0x00100010), + 11: uint32(0x10100010), + 12: uint32(0x00001010), + 13: uint32(0x10001010), + 14: uint32(0x00101010), + 15: uint32(0x10101010), + }, + 2: { + 1: uint32(0x04000000), + 2: uint32(0x00040000), + 3: uint32(0x04040000), + 4: uint32(0x00000400), + 5: uint32(0x04000400), + 6: uint32(0x00040400), + 7: uint32(0x04040400), + 8: uint32(0x00000004), + 9: uint32(0x04000004), + 10: uint32(0x00040004), + 11: uint32(0x04040004), + 12: uint32(0x00000404), + 13: uint32(0x04000404), + 14: uint32(0x00040404), + 15: uint32(0x04040404), + }, + 3: { + 1: uint32(0x01000000), + 2: uint32(0x00010000), + 3: uint32(0x01010000), + 4: uint32(0x00000100), + 5: uint32(0x01000100), + 6: uint32(0x00010100), + 7: uint32(0x01010100), + 8: uint32(0x00000001), + 9: uint32(0x01000001), + 10: uint32(0x00010001), + 11: uint32(0x01010001), + 12: uint32(0x00000101), + 13: uint32(0x01000101), + 14: uint32(0x00010101), + 15: uint32(0x01010101), + }, + 4: { + 1: uint32(0x80000000), + 2: uint32(0x00800000), + 3: uint32(0x80800000), + 4: uint32(0x00008000), + 5: uint32(0x80008000), + 6: uint32(0x00808000), + 7: uint32(0x80808000), + 8: uint32(0x00000080), + 9: uint32(0x80000080), + 10: uint32(0x00800080), + 11: uint32(0x80800080), + 12: uint32(0x00008080), + 13: uint32(0x80008080), + 14: uint32(0x00808080), + 15: uint32(0x80808080), + }, + 5: { + 1: uint32(0x20000000), + 2: uint32(0x00200000), + 3: uint32(0x20200000), + 4: uint32(0x00002000), + 5: uint32(0x20002000), + 6: uint32(0x00202000), + 7: uint32(0x20202000), + 8: uint32(0x00000020), + 9: uint32(0x20000020), + 10: uint32(0x00200020), + 11: uint32(0x20200020), + 12: uint32(0x00002020), + 13: uint32(0x20002020), + 14: uint32(0x00202020), + 15: uint32(0x20202020), + }, + 6: { + 1: uint32(0x08000000), + 2: uint32(0x00080000), + 3: uint32(0x08080000), + 4: uint32(0x00000800), + 5: uint32(0x08000800), + 6: uint32(0x00080800), + 7: uint32(0x08080800), + 8: uint32(0x00000008), + 9: uint32(0x08000008), + 10: uint32(0x00080008), + 11: uint32(0x08080008), + 12: uint32(0x00000808), + 13: uint32(0x08000808), + 14: uint32(0x00080808), + 15: uint32(0x08080808), + }, + 7: { + 1: uint32(0x02000000), + 2: uint32(0x00020000), + 3: uint32(0x02020000), + 4: uint32(0x00000200), + 5: uint32(0x02000200), + 6: uint32(0x00020200), + 7: uint32(0x02020200), + 8: uint32(0x00000002), + 9: uint32(0x02000002), + 10: uint32(0x00020002), + 11: uint32(0x02020002), + 12: uint32(0x00000202), + 13: uint32(0x02000202), + 14: uint32(0x00020202), + 15: uint32(0x02020202), + }, +} +var _fp_maskr = [8][16]Tuint32_t{ + 0: { + 1: uint32(0x40000000), + 2: uint32(0x00400000), + 3: uint32(0x40400000), + 4: uint32(0x00004000), + 5: uint32(0x40004000), + 6: uint32(0x00404000), + 7: uint32(0x40404000), + 8: uint32(0x00000040), + 9: uint32(0x40000040), + 10: uint32(0x00400040), + 11: uint32(0x40400040), + 12: uint32(0x00004040), + 13: uint32(0x40004040), + 14: uint32(0x00404040), + 15: uint32(0x40404040), + }, + 1: { + 1: uint32(0x10000000), + 2: uint32(0x00100000), + 3: uint32(0x10100000), + 4: uint32(0x00001000), + 5: uint32(0x10001000), + 6: uint32(0x00101000), + 7: uint32(0x10101000), + 8: uint32(0x00000010), + 9: uint32(0x10000010), + 10: uint32(0x00100010), + 11: uint32(0x10100010), + 12: uint32(0x00001010), + 13: uint32(0x10001010), + 14: uint32(0x00101010), + 15: uint32(0x10101010), + }, + 2: { + 1: uint32(0x04000000), + 2: uint32(0x00040000), + 3: uint32(0x04040000), + 4: uint32(0x00000400), + 5: uint32(0x04000400), + 6: uint32(0x00040400), + 7: uint32(0x04040400), + 8: uint32(0x00000004), + 9: uint32(0x04000004), + 10: uint32(0x00040004), + 11: uint32(0x04040004), + 12: uint32(0x00000404), + 13: uint32(0x04000404), + 14: uint32(0x00040404), + 15: uint32(0x04040404), + }, + 3: { + 1: uint32(0x01000000), + 2: uint32(0x00010000), + 3: uint32(0x01010000), + 4: uint32(0x00000100), + 5: uint32(0x01000100), + 6: uint32(0x00010100), + 7: uint32(0x01010100), + 8: uint32(0x00000001), + 9: uint32(0x01000001), + 10: uint32(0x00010001), + 11: uint32(0x01010001), + 12: uint32(0x00000101), + 13: uint32(0x01000101), + 14: uint32(0x00010101), + 15: uint32(0x01010101), + }, + 4: { + 1: uint32(0x80000000), + 2: uint32(0x00800000), + 3: uint32(0x80800000), + 4: uint32(0x00008000), + 5: uint32(0x80008000), + 6: uint32(0x00808000), + 7: uint32(0x80808000), + 8: uint32(0x00000080), + 9: uint32(0x80000080), + 10: uint32(0x00800080), + 11: uint32(0x80800080), + 12: uint32(0x00008080), + 13: uint32(0x80008080), + 14: uint32(0x00808080), + 15: uint32(0x80808080), + }, + 5: { + 1: uint32(0x20000000), + 2: uint32(0x00200000), + 3: uint32(0x20200000), + 4: uint32(0x00002000), + 5: uint32(0x20002000), + 6: uint32(0x00202000), + 7: uint32(0x20202000), + 8: uint32(0x00000020), + 9: uint32(0x20000020), + 10: uint32(0x00200020), + 11: uint32(0x20200020), + 12: uint32(0x00002020), + 13: uint32(0x20002020), + 14: uint32(0x00202020), + 15: uint32(0x20202020), + }, + 6: { + 1: uint32(0x08000000), + 2: uint32(0x00080000), + 3: uint32(0x08080000), + 4: uint32(0x00000800), + 5: uint32(0x08000800), + 6: uint32(0x00080800), + 7: uint32(0x08080800), + 8: uint32(0x00000008), + 9: uint32(0x08000008), + 10: uint32(0x00080008), + 11: uint32(0x08080008), + 12: uint32(0x00000808), + 13: uint32(0x08000808), + 14: uint32(0x00080808), + 15: uint32(0x08080808), + }, + 7: { + 1: uint32(0x02000000), + 2: uint32(0x00020000), + 3: uint32(0x02020000), + 4: uint32(0x00000200), + 5: uint32(0x02000200), + 6: uint32(0x00020200), + 7: uint32(0x02020200), + 8: uint32(0x00000002), + 9: uint32(0x02000002), + 10: uint32(0x00020002), + 11: uint32(0x02020002), + 12: uint32(0x00000202), + 13: uint32(0x02000202), + 14: uint32(0x00020202), + 15: uint32(0x02020202), + }, +} +var _key_perm_maskl = [8][16]Tuint32_t{ + 0: { + 2: uint32(0x00000010), + 3: uint32(0x00000010), + 4: uint32(0x00001000), + 5: uint32(0x00001000), + 6: uint32(0x00001010), + 7: uint32(0x00001010), + 8: uint32(0x00100000), + 9: uint32(0x00100000), + 10: uint32(0x00100010), + 11: uint32(0x00100010), + 12: uint32(0x00101000), + 13: uint32(0x00101000), + 14: uint32(0x00101010), + 15: uint32(0x00101010), + }, + 1: { + 2: uint32(0x00000020), + 3: uint32(0x00000020), + 4: uint32(0x00002000), + 5: uint32(0x00002000), + 6: uint32(0x00002020), + 7: uint32(0x00002020), + 8: uint32(0x00200000), + 9: uint32(0x00200000), + 10: uint32(0x00200020), + 11: uint32(0x00200020), + 12: uint32(0x00202000), + 13: uint32(0x00202000), + 14: uint32(0x00202020), + 15: uint32(0x00202020), + }, + 2: { + 2: uint32(0x00000040), + 3: uint32(0x00000040), + 4: uint32(0x00004000), + 5: uint32(0x00004000), + 6: uint32(0x00004040), + 7: uint32(0x00004040), + 8: uint32(0x00400000), + 9: uint32(0x00400000), + 10: uint32(0x00400040), + 11: uint32(0x00400040), + 12: uint32(0x00404000), + 13: uint32(0x00404000), + 14: uint32(0x00404040), + 15: uint32(0x00404040), + }, + 3: { + 2: uint32(0x00000080), + 3: uint32(0x00000080), + 4: uint32(0x00008000), + 5: uint32(0x00008000), + 6: uint32(0x00008080), + 7: uint32(0x00008080), + 8: uint32(0x00800000), + 9: uint32(0x00800000), + 10: uint32(0x00800080), + 11: uint32(0x00800080), + 12: uint32(0x00808000), + 13: uint32(0x00808000), + 14: uint32(0x00808080), + 15: uint32(0x00808080), + }, + 4: { + 1: uint32(0x00000001), + 2: uint32(0x00000100), + 3: uint32(0x00000101), + 4: uint32(0x00010000), + 5: uint32(0x00010001), + 6: uint32(0x00010100), + 7: uint32(0x00010101), + 8: uint32(0x01000000), + 9: uint32(0x01000001), + 10: uint32(0x01000100), + 11: uint32(0x01000101), + 12: uint32(0x01010000), + 13: uint32(0x01010001), + 14: uint32(0x01010100), + 15: uint32(0x01010101), + }, + 5: { + 1: uint32(0x00000002), + 2: uint32(0x00000200), + 3: uint32(0x00000202), + 4: uint32(0x00020000), + 5: uint32(0x00020002), + 6: uint32(0x00020200), + 7: uint32(0x00020202), + 8: uint32(0x02000000), + 9: uint32(0x02000002), + 10: uint32(0x02000200), + 11: uint32(0x02000202), + 12: uint32(0x02020000), + 13: uint32(0x02020002), + 14: uint32(0x02020200), + 15: uint32(0x02020202), + }, + 6: { + 1: uint32(0x00000004), + 2: uint32(0x00000400), + 3: uint32(0x00000404), + 4: uint32(0x00040000), + 5: uint32(0x00040004), + 6: uint32(0x00040400), + 7: uint32(0x00040404), + 8: uint32(0x04000000), + 9: uint32(0x04000004), + 10: uint32(0x04000400), + 11: uint32(0x04000404), + 12: uint32(0x04040000), + 13: uint32(0x04040004), + 14: uint32(0x04040400), + 15: uint32(0x04040404), + }, + 7: { + 1: uint32(0x00000008), + 2: uint32(0x00000800), + 3: uint32(0x00000808), + 4: uint32(0x00080000), + 5: uint32(0x00080008), + 6: uint32(0x00080800), + 7: uint32(0x00080808), + 8: uint32(0x08000000), + 9: uint32(0x08000008), + 10: uint32(0x08000800), + 11: uint32(0x08000808), + 12: uint32(0x08080000), + 13: uint32(0x08080008), + 14: uint32(0x08080800), + 15: uint32(0x08080808), + }, +} +var _key_perm_maskr = [12][16]Tuint32_t{ + 0: { + 1: uint32(0x00000001), + 3: uint32(0x00000001), + 5: uint32(0x00000001), + 7: uint32(0x00000001), + 9: uint32(0x00000001), + 11: uint32(0x00000001), + 13: uint32(0x00000001), + 15: uint32(0x00000001), + }, + 1: { + 2: uint32(0x00100000), + 3: uint32(0x00100000), + 4: uint32(0x00001000), + 5: uint32(0x00001000), + 6: uint32(0x00101000), + 7: uint32(0x00101000), + 8: uint32(0x00000010), + 9: uint32(0x00000010), + 10: uint32(0x00100010), + 11: uint32(0x00100010), + 12: uint32(0x00001010), + 13: uint32(0x00001010), + 14: uint32(0x00101010), + 15: uint32(0x00101010), + }, + 2: { + 1: uint32(0x00000002), + 3: uint32(0x00000002), + 5: uint32(0x00000002), + 7: uint32(0x00000002), + 9: uint32(0x00000002), + 11: uint32(0x00000002), + 13: uint32(0x00000002), + 15: uint32(0x00000002), + }, + 3: { + 2: uint32(0x00200000), + 3: uint32(0x00200000), + 4: uint32(0x00002000), + 5: uint32(0x00002000), + 6: uint32(0x00202000), + 7: uint32(0x00202000), + 8: uint32(0x00000020), + 9: uint32(0x00000020), + 10: uint32(0x00200020), + 11: uint32(0x00200020), + 12: uint32(0x00002020), + 13: uint32(0x00002020), + 14: uint32(0x00202020), + 15: uint32(0x00202020), + }, + 4: { + 1: uint32(0x00000004), + 3: uint32(0x00000004), + 5: uint32(0x00000004), + 7: uint32(0x00000004), + 9: uint32(0x00000004), + 11: uint32(0x00000004), + 13: uint32(0x00000004), + 15: uint32(0x00000004), + }, + 5: { + 2: uint32(0x00400000), + 3: uint32(0x00400000), + 4: uint32(0x00004000), + 5: uint32(0x00004000), + 6: uint32(0x00404000), + 7: uint32(0x00404000), + 8: uint32(0x00000040), + 9: uint32(0x00000040), + 10: uint32(0x00400040), + 11: uint32(0x00400040), + 12: uint32(0x00004040), + 13: uint32(0x00004040), + 14: uint32(0x00404040), + 15: uint32(0x00404040), + }, + 6: { + 1: uint32(0x00000008), + 3: uint32(0x00000008), + 5: uint32(0x00000008), + 7: uint32(0x00000008), + 9: uint32(0x00000008), + 11: uint32(0x00000008), + 13: uint32(0x00000008), + 15: uint32(0x00000008), + }, + 7: { + 2: uint32(0x00800000), + 3: uint32(0x00800000), + 4: uint32(0x00008000), + 5: uint32(0x00008000), + 6: uint32(0x00808000), + 7: uint32(0x00808000), + 8: uint32(0x00000080), + 9: uint32(0x00000080), + 10: uint32(0x00800080), + 11: uint32(0x00800080), + 12: uint32(0x00008080), + 13: uint32(0x00008080), + 14: uint32(0x00808080), + 15: uint32(0x00808080), + }, + 8: { + 2: uint32(0x01000000), + 3: uint32(0x01000000), + 4: uint32(0x00010000), + 5: uint32(0x00010000), + 6: uint32(0x01010000), + 7: uint32(0x01010000), + 8: uint32(0x00000100), + 9: uint32(0x00000100), + 10: uint32(0x01000100), + 11: uint32(0x01000100), + 12: uint32(0x00010100), + 13: uint32(0x00010100), + 14: uint32(0x01010100), + 15: uint32(0x01010100), + }, + 9: { + 2: uint32(0x02000000), + 3: uint32(0x02000000), + 4: uint32(0x00020000), + 5: uint32(0x00020000), + 6: uint32(0x02020000), + 7: uint32(0x02020000), + 8: uint32(0x00000200), + 9: uint32(0x00000200), + 10: uint32(0x02000200), + 11: uint32(0x02000200), + 12: uint32(0x00020200), + 13: uint32(0x00020200), + 14: uint32(0x02020200), + 15: uint32(0x02020200), + }, + 10: { + 2: uint32(0x04000000), + 3: uint32(0x04000000), + 4: uint32(0x00040000), + 5: uint32(0x00040000), + 6: uint32(0x04040000), + 7: uint32(0x04040000), + 8: uint32(0x00000400), + 9: uint32(0x00000400), + 10: uint32(0x04000400), + 11: uint32(0x04000400), + 12: uint32(0x00040400), + 13: uint32(0x00040400), + 14: uint32(0x04040400), + 15: uint32(0x04040400), + }, + 11: { + 2: uint32(0x08000000), + 3: uint32(0x08000000), + 4: uint32(0x00080000), + 5: uint32(0x00080000), + 6: uint32(0x08080000), + 7: uint32(0x08080000), + 8: uint32(0x00000800), + 9: uint32(0x00000800), + 10: uint32(0x08000800), + 11: uint32(0x08000800), + 12: uint32(0x00080800), + 13: uint32(0x00080800), + 14: uint32(0x08080800), + 15: uint32(0x08080800), + }, +} +var _comp_maskl0 = [4][8]Tuint32_t{ + 0: { + 1: uint32(0x00020000), + 2: uint32(0x00000001), + 3: uint32(0x00020001), + 4: uint32(0x00080000), + 5: uint32(0x000a0000), + 6: uint32(0x00080001), + 7: uint32(0x000a0001), + }, + 1: { + 1: uint32(0x00001000), + 3: uint32(0x00001000), + 4: uint32(0x00000040), + 5: uint32(0x00001040), + 6: uint32(0x00000040), + 7: uint32(0x00001040), + }, + 2: { + 1: uint32(0x00400000), + 2: uint32(0x00000020), + 3: uint32(0x00400020), + 4: uint32(0x00008000), + 5: uint32(0x00408000), + 6: uint32(0x00008020), + 7: uint32(0x00408020), + }, + 3: { + 1: uint32(0x00100000), + 2: uint32(0x00000800), + 3: uint32(0x00100800), + 5: uint32(0x00100000), + 6: uint32(0x00000800), + 7: uint32(0x00100800), + }, +} +var _comp_maskr0 = [4][8]Tuint32_t{ + 0: { + 1: uint32(0x00200000), + 2: uint32(0x00020000), + 3: uint32(0x00220000), + 4: uint32(0x00000002), + 5: uint32(0x00200002), + 6: uint32(0x00020002), + 7: uint32(0x00220002), + }, + 1: { + 2: uint32(0x00100000), + 3: uint32(0x00100000), + 4: uint32(0x00000004), + 5: uint32(0x00000004), + 6: uint32(0x00100004), + 7: uint32(0x00100004), + }, + 2: { + 1: uint32(0x00004000), + 2: uint32(0x00000800), + 3: uint32(0x00004800), + 5: uint32(0x00004000), + 6: uint32(0x00000800), + 7: uint32(0x00004800), + }, + 3: { + 1: uint32(0x00400000), + 2: uint32(0x00008000), + 3: uint32(0x00408000), + 4: uint32(0x00000008), + 5: uint32(0x00400008), + 6: uint32(0x00008008), + 7: uint32(0x00408008), + }, +} +var _comp_maskl1 = [4][16]Tuint32_t{ + 0: { + 1: uint32(0x00000010), + 2: uint32(0x00004000), + 3: uint32(0x00004010), + 4: uint32(0x00040000), + 5: uint32(0x00040010), + 6: uint32(0x00044000), + 7: uint32(0x00044010), + 8: uint32(0x00000100), + 9: uint32(0x00000110), + 10: uint32(0x00004100), + 11: uint32(0x00004110), + 12: uint32(0x00040100), + 13: uint32(0x00040110), + 14: uint32(0x00044100), + 15: uint32(0x00044110), + }, + 1: { + 1: uint32(0x00800000), + 2: uint32(0x00000002), + 3: uint32(0x00800002), + 4: uint32(0x00000200), + 5: uint32(0x00800200), + 6: uint32(0x00000202), + 7: uint32(0x00800202), + 8: uint32(0x00200000), + 9: uint32(0x00a00000), + 10: uint32(0x00200002), + 11: uint32(0x00a00002), + 12: uint32(0x00200200), + 13: uint32(0x00a00200), + 14: uint32(0x00200202), + 15: uint32(0x00a00202), + }, + 2: { + 1: uint32(0x00002000), + 2: uint32(0x00000004), + 3: uint32(0x00002004), + 4: uint32(0x00000400), + 5: uint32(0x00002400), + 6: uint32(0x00000404), + 7: uint32(0x00002404), + 9: uint32(0x00002000), + 10: uint32(0x00000004), + 11: uint32(0x00002004), + 12: uint32(0x00000400), + 13: uint32(0x00002400), + 14: uint32(0x00000404), + 15: uint32(0x00002404), + }, + 3: { + 1: uint32(0x00010000), + 2: uint32(0x00000008), + 3: uint32(0x00010008), + 4: uint32(0x00000080), + 5: uint32(0x00010080), + 6: uint32(0x00000088), + 7: uint32(0x00010088), + 9: uint32(0x00010000), + 10: uint32(0x00000008), + 11: uint32(0x00010008), + 12: uint32(0x00000080), + 13: uint32(0x00010080), + 14: uint32(0x00000088), + 15: uint32(0x00010088), + }, +} +var _comp_maskr1 = [4][16]Tuint32_t{ + 0: { + 2: uint32(0x00000080), + 3: uint32(0x00000080), + 4: uint32(0x00002000), + 5: uint32(0x00002000), + 6: uint32(0x00002080), + 7: uint32(0x00002080), + 8: uint32(0x00000001), + 9: uint32(0x00000001), + 10: uint32(0x00000081), + 11: uint32(0x00000081), + 12: uint32(0x00002001), + 13: uint32(0x00002001), + 14: uint32(0x00002081), + 15: uint32(0x00002081), + }, + 1: { + 1: uint32(0x00000010), + 2: uint32(0x00800000), + 3: uint32(0x00800010), + 4: uint32(0x00010000), + 5: uint32(0x00010010), + 6: uint32(0x00810000), + 7: uint32(0x00810010), + 8: uint32(0x00000200), + 9: uint32(0x00000210), + 10: uint32(0x00800200), + 11: uint32(0x00800210), + 12: uint32(0x00010200), + 13: uint32(0x00010210), + 14: uint32(0x00810200), + 15: uint32(0x00810210), + }, + 2: { + 1: uint32(0x00000400), + 2: uint32(0x00001000), + 3: uint32(0x00001400), + 4: uint32(0x00080000), + 5: uint32(0x00080400), + 6: uint32(0x00081000), + 7: uint32(0x00081400), + 8: uint32(0x00000020), + 9: uint32(0x00000420), + 10: uint32(0x00001020), + 11: uint32(0x00001420), + 12: uint32(0x00080020), + 13: uint32(0x00080420), + 14: uint32(0x00081020), + 15: uint32(0x00081420), + }, + 3: { + 1: uint32(0x00000100), + 2: uint32(0x00040000), + 3: uint32(0x00040100), + 5: uint32(0x00000100), + 6: uint32(0x00040000), + 7: uint32(0x00040100), + 8: uint32(0x00000040), + 9: uint32(0x00000140), + 10: uint32(0x00040040), + 11: uint32(0x00040140), + 12: uint32(0x00000040), + 13: uint32(0x00000140), + 14: uint32(0x00040040), + 15: uint32(0x00040140), + }, +} + +var _ascii64 = [65]uint8{'.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'} + +/* 0000000000111111111122222222223333333333444444444455555555556666 */ +/* 0123456789012345678901234567890123456789012345678901234567890123 */ + +// C documentation +// +// /* +// * We match the behavior of UFC-crypt on systems where "char" is signed by +// * default (the majority), regardless of char's signedness on our system. +// */ +func _ascii_to_bin(tls *TLS, ch int32) (r Tuint32_t) { + var retval, sch, v1 int32 + _, _, _ = retval, sch, v1 + if ch < int32(0x80) { + v1 = ch + } else { + v1 = -(int32(0x100) - ch) + } + sch = v1 + retval = sch - int32('.') + if sch >= int32('A') { + retval = sch - (Int32FromUint8('A') - Int32FromInt32(12)) + if sch >= int32('a') { + retval = sch - (Int32FromUint8('a') - Int32FromInt32(38)) + } + } + retval &= int32(0x3f) + return uint32(retval) +} + +// C documentation +// +// /* +// * When we choose to "support" invalid salts, nevertheless disallow those +// * containing characters that would violate the passwd file format. +// */ +func _ascii_is_unsafe(tls *TLS, ch uint8) (r int32) { + return BoolInt32(!(ch != 0) || int32(ch) == int32('\n') || int32(ch) == int32(':')) +} + +func _setup_salt(tls *TLS, salt Tuint32_t) (r Tuint32_t) { + var i uint32 + var obit, saltbit, saltbits Tuint32_t + _, _, _, _ = i, obit, saltbit, saltbits + saltbits = uint32(0) + saltbit = uint32(1) + obit = uint32(0x800000) + i = uint32(0) + for { + if !(i < uint32(24)) { + break + } + if salt&saltbit != 0 { + saltbits |= obit + } + saltbit <<= uint32(1) + obit >>= uint32(1) + goto _1 + _1: + ; + i++ + } + return saltbits +} + +func X__des_setkey(tls *TLS, key uintptr, ekey uintptr) { + if __ccgo_strace { + trc("tls=%v key=%v ekey=%v, (%v:)", tls, key, ekey, origin(2)) + } + var i, ibit, j, round, shifts uint32 + var k0, k1, kl, kr, rawkey0, rawkey1, t0, t1, v1, v4 Tuint32_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = i, ibit, j, k0, k1, kl, kr, rawkey0, rawkey1, round, shifts, t0, t1, v1, v4 + rawkey0 = uint32(*(*uint8)(unsafe.Pointer(key + 3))) | uint32(*(*uint8)(unsafe.Pointer(key + 2)))<>ibit&uint32(0xf))*4)) | *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_key_perm_maskl)) + uintptr(i+uint32(4))*64 + uintptr(rawkey1>>ibit&uint32(0xf))*4)) + k1 |= *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_key_perm_maskr)) + uintptr(j)*64 + uintptr(rawkey0>>ibit&uint32(0xf))*4)) + ibit -= uint32(4) + k1 |= *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_key_perm_maskr)) + uintptr(j+uint32(1))*64 + uintptr(rawkey0>>ibit&uint32(0xf))*4)) | *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_key_perm_maskr)) + uintptr(i+uint32(8))*64 + uintptr(rawkey1>>ibit&uint32(0xf))*4)) + goto _2 + _2: + ; + i++ + ibit -= uint32(4) + } + /* + * Rotate subkeys and do compression permutation. + */ + shifts = uint32(0) + round = uint32(0) + for { + if !(round < uint32(16)) { + break + } + shifts += uint32(_key_shifts[round]) + t0 = k0<>(Uint32FromInt32(28)-shifts) + t1 = k1<>(Uint32FromInt32(28)-shifts) + v4 = Uint32FromInt32(0) + kr = v4 + kl = v4 + ibit = uint32(25) + i = uint32(0) + for { + if !(i < uint32(4)) { + break + } + kl |= *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_comp_maskl0)) + uintptr(i)*32 + uintptr(t0>>ibit&uint32(7))*4)) + kr |= *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_comp_maskr0)) + uintptr(i)*32 + uintptr(t1>>ibit&uint32(7))*4)) + ibit -= uint32(4) + kl |= *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_comp_maskl1)) + uintptr(i)*64 + uintptr(t0>>ibit&uint32(0xf))*4)) + kr |= *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_comp_maskr1)) + uintptr(i)*64 + uintptr(t1>>ibit&uint32(0xf))*4)) + ibit -= uint32(3) + goto _5 + _5: + ; + i++ + } + *(*Tuint32_t)(unsafe.Pointer(ekey + uintptr(round)*4)) = kl + *(*Tuint32_t)(unsafe.Pointer(ekey + 64 + uintptr(round)*4)) = kr + goto _3 + _3: + ; + round++ + } +} + +// C documentation +// +// /* +// * l_in, r_in, l_out, and r_out are in pseudo-"big-endian" format. +// */ +func X__do_des(tls *TLS, l_in Tuint32_t, r_in Tuint32_t, l_out uintptr, r_out uintptr, count Tuint32_t, saltbits Tuint32_t, ekey uintptr) { + if __ccgo_strace { + trc("tls=%v l_in=%v r_in=%v l_out=%v r_out=%v count=%v saltbits=%v ekey=%v, (%v:)", tls, l_in, r_in, l_out, r_out, count, saltbits, ekey, origin(2)) + } + var f, l, lo, r, r48l, r48r, ro, v1, v3, v7 Tuint32_t + var i, i1, ibit, ibit1, round, v4 uint32 + var kl, kr, v5, v6 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = f, i, i1, ibit, ibit1, kl, kr, l, lo, r, r48l, r48r, ro, round, v1, v3, v4, v5, v6, v7 + /* + * Do initial permutation (IP). + */ + v1 = Uint32FromInt32(0) + r = v1 + l = v1 + if l_in|r_in != 0 { + i = uint32(0) + ibit = Uint32FromInt32(28) + for { + if !(i < uint32(8)) { + break + } + l |= *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_ip_maskl)) + uintptr(i)*64 + uintptr(l_in>>ibit&uint32(0xf))*4)) | *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_ip_maskl)) + uintptr(i+uint32(8))*64 + uintptr(r_in>>ibit&uint32(0xf))*4)) + r |= *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_ip_maskr)) + uintptr(i)*64 + uintptr(l_in>>ibit&uint32(0xf))*4)) | *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_ip_maskr)) + uintptr(i+uint32(8))*64 + uintptr(r_in>>ibit&uint32(0xf))*4)) + goto _2 + _2: + ; + i++ + ibit -= uint32(4) + } + } + for { + v3 = count + count-- + if !(v3 != 0) { + break + } + /* + * Do each round. + */ + round = uint32(16) + kl = ekey + kr = ekey + 64 + for { + v4 = round + round-- + if !(v4 != 0) { + break + } + /* + * Expand R to 48 bits (simulate the E-box). + */ + r48l = r&uint32(0x00000001)<>int32(9) | r&uint32(0x1f800000)>>int32(11) | r&uint32(0x01f80000)>>int32(13) | r&uint32(0x001f8000)>>int32(15) + r48r = r&uint32(0x0001f800)<>int32(31) + /* + * Do salting for crypt() and friends, and + * XOR with the permuted key. + */ + f = (r48l ^ r48r) & saltbits + v5 = kl + kl += 4 + r48l ^= f ^ *(*Tuint32_t)(unsafe.Pointer(v5)) + v6 = kr + kr += 4 + r48r ^= f ^ *(*Tuint32_t)(unsafe.Pointer(v6)) + /* + * Do S-box lookups (which shrink it back to 32 bits) + * and do the P-box permutation at the same time. + */ + f = *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_psbox)) + uintptr(r48l>>int32(18))*4)) | *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_psbox)) + 1*256 + uintptr(r48l>>Int32FromInt32(12)&uint32(0x3f))*4)) | *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_psbox)) + 2*256 + uintptr(r48l>>Int32FromInt32(6)&uint32(0x3f))*4)) | *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_psbox)) + 3*256 + uintptr(r48l&uint32(0x3f))*4)) | *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_psbox)) + 4*256 + uintptr(r48r>>int32(18))*4)) | *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_psbox)) + 5*256 + uintptr(r48r>>Int32FromInt32(12)&uint32(0x3f))*4)) | *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_psbox)) + 6*256 + uintptr(r48r>>Int32FromInt32(6)&uint32(0x3f))*4)) | *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_psbox)) + 7*256 + uintptr(r48r&uint32(0x3f))*4)) + /* + * Now that we've permuted things, complete f(). + */ + f ^= l + l = r + r = f + } + r = l + l = f + } + /* + * Do final permutation (inverse of IP). + */ + v7 = Uint32FromInt32(0) + ro = v7 + lo = v7 + i1 = uint32(0) + ibit1 = Uint32FromInt32(28) + for { + if !(i1 < uint32(4)) { + break + } + ro |= *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_fp_maskr)) + uintptr(i1)*64 + uintptr(l>>ibit1&uint32(0xf))*4)) | *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_fp_maskr)) + uintptr(i1+uint32(4))*64 + uintptr(r>>ibit1&uint32(0xf))*4)) + ibit1 -= uint32(4) + lo |= *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_fp_maskl)) + uintptr(i1)*64 + uintptr(l>>ibit1&uint32(0xf))*4)) | *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_fp_maskl)) + uintptr(i1+uint32(4))*64 + uintptr(r>>ibit1&uint32(0xf))*4)) + goto _8 + _8: + ; + i1++ + ibit1 -= uint32(4) + } + *(*Tuint32_t)(unsafe.Pointer(l_out)) = lo + *(*Tuint32_t)(unsafe.Pointer(r_out)) = ro +} + +func _des_cipher(tls *TLS, in uintptr, out uintptr, count Tuint32_t, saltbits Tuint32_t, ekey uintptr) { + bp := tls.Alloc(16) + defer tls.Free(16) + var rawl, rawr Tuint32_t + var _ /* l_out at bp+0 */ Tuint32_t + var _ /* r_out at bp+4 */ Tuint32_t + _, _ = rawl, rawr + rawl = uint32(*(*uint8)(unsafe.Pointer(in + 3))) | uint32(*(*uint8)(unsafe.Pointer(in + 2)))<> int32(24)) + *(*uint8)(unsafe.Pointer(out + 1)) = uint8(*(*Tuint32_t)(unsafe.Pointer(bp)) >> int32(16)) + *(*uint8)(unsafe.Pointer(out + 2)) = uint8(*(*Tuint32_t)(unsafe.Pointer(bp)) >> int32(8)) + *(*uint8)(unsafe.Pointer(out + 3)) = uint8(*(*Tuint32_t)(unsafe.Pointer(bp))) + *(*uint8)(unsafe.Pointer(out + 4)) = uint8(*(*Tuint32_t)(unsafe.Pointer(bp + 4)) >> int32(24)) + *(*uint8)(unsafe.Pointer(out + 5)) = uint8(*(*Tuint32_t)(unsafe.Pointer(bp + 4)) >> int32(16)) + *(*uint8)(unsafe.Pointer(out + 6)) = uint8(*(*Tuint32_t)(unsafe.Pointer(bp + 4)) >> int32(8)) + *(*uint8)(unsafe.Pointer(out + 7)) = uint8(*(*Tuint32_t)(unsafe.Pointer(bp + 4))) +} + +func __crypt_extended_r_uut(tls *TLS, _key uintptr, _setting uintptr, output uintptr) (r uintptr) { + bp := tls.Alloc(144) + defer tls.Free(144) + var count, l, salt, value, value1 Tuint32_t + var i uint32 + var key, p, q, setting, v1, v10, v11, v12, v13, v14, v15, v16, v17, v5, v6, v7, v8, v9, p4 uintptr + var _ /* ekey at bp+0 */ Texpanded_key + var _ /* keybuf at bp+128 */ [8]uint8 + var _ /* r0 at bp+136 */ Tuint32_t + var _ /* r1 at bp+140 */ Tuint32_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = count, i, key, l, p, q, salt, setting, value, value1, v1, v10, v11, v12, v13, v14, v15, v16, v17, v5, v6, v7, v8, v9, p4 + key = _key + setting = _setting + /* + * Copy the key, shifting each character left by one bit and padding + * with zeroes. + */ + q = bp + 128 + for q <= bp+128+uintptr(Uint64FromInt64(8)-Uint64FromInt32(1)) { + v1 = q + q++ + *(*uint8)(unsafe.Pointer(v1)) = uint8(int32(*(*uint8)(unsafe.Pointer(key))) << int32(1)) + if *(*uint8)(unsafe.Pointer(key)) != 0 { + key++ + } + } + X__des_setkey(tls, bp+128, bp) + if int32(*(*uint8)(unsafe.Pointer(setting))) == int32('_') { + /* + * "new"-style: + * setting - underscore, 4 chars of count, 4 chars of salt + * key - unlimited characters + */ + i = uint32(1) + count = Uint32FromInt32(0) + for { + if !(i < uint32(5)) { + break + } + value = _ascii_to_bin(tls, int32(*(*uint8)(unsafe.Pointer(setting + uintptr(i))))) + if int32(_ascii64[value]) != int32(*(*uint8)(unsafe.Pointer(setting + uintptr(i)))) { + return UintptrFromInt32(0) + } + count |= value << ((i - uint32(1)) * uint32(6)) + goto _2 + _2: + ; + i++ + } + if !(count != 0) { + return UintptrFromInt32(0) + } + i = uint32(5) + salt = Uint32FromInt32(0) + for { + if !(i < uint32(9)) { + break + } + value1 = _ascii_to_bin(tls, int32(*(*uint8)(unsafe.Pointer(setting + uintptr(i))))) + if int32(_ascii64[value1]) != int32(*(*uint8)(unsafe.Pointer(setting + uintptr(i)))) { + return UintptrFromInt32(0) + } + salt |= value1 << ((i - uint32(5)) * uint32(6)) + goto _3 + _3: + ; + i++ + } + for *(*uint8)(unsafe.Pointer(key)) != 0 { + /* + * Encrypt the key with itself. + */ + _des_cipher(tls, bp+128, bp+128, uint32(1), uint32(0), bp) + /* + * And XOR with the next 8 characters of the key. + */ + q = bp + 128 + for q <= bp+128+uintptr(Uint64FromInt64(8)-Uint64FromInt32(1)) && *(*uint8)(unsafe.Pointer(key)) != 0 { + v5 = q + q++ + p4 = v5 + v6 = key + key++ + *(*uint8)(unsafe.Pointer(p4)) = uint8(int32(*(*uint8)(unsafe.Pointer(p4))) ^ int32(*(*uint8)(unsafe.Pointer(v6)))<> int32(8) + v7 = p + p++ + *(*uint8)(unsafe.Pointer(v7)) = _ascii64[l>>Int32FromInt32(18)&uint32(0x3f)] + v8 = p + p++ + *(*uint8)(unsafe.Pointer(v8)) = _ascii64[l>>Int32FromInt32(12)&uint32(0x3f)] + v9 = p + p++ + *(*uint8)(unsafe.Pointer(v9)) = _ascii64[l>>Int32FromInt32(6)&uint32(0x3f)] + v10 = p + p++ + *(*uint8)(unsafe.Pointer(v10)) = _ascii64[l&uint32(0x3f)] + l = *(*Tuint32_t)(unsafe.Pointer(bp + 136))<>Int32FromInt32(16)&uint32(0xffff) + v11 = p + p++ + *(*uint8)(unsafe.Pointer(v11)) = _ascii64[l>>Int32FromInt32(18)&uint32(0x3f)] + v12 = p + p++ + *(*uint8)(unsafe.Pointer(v12)) = _ascii64[l>>Int32FromInt32(12)&uint32(0x3f)] + v13 = p + p++ + *(*uint8)(unsafe.Pointer(v13)) = _ascii64[l>>Int32FromInt32(6)&uint32(0x3f)] + v14 = p + p++ + *(*uint8)(unsafe.Pointer(v14)) = _ascii64[l&uint32(0x3f)] + l = *(*Tuint32_t)(unsafe.Pointer(bp + 140)) << int32(2) + v15 = p + p++ + *(*uint8)(unsafe.Pointer(v15)) = _ascii64[l>>Int32FromInt32(12)&uint32(0x3f)] + v16 = p + p++ + *(*uint8)(unsafe.Pointer(v16)) = _ascii64[l>>Int32FromInt32(6)&uint32(0x3f)] + v17 = p + p++ + *(*uint8)(unsafe.Pointer(v17)) = _ascii64[l&uint32(0x3f)] + *(*uint8)(unsafe.Pointer(p)) = uint8(0) + return output +} + +func X__crypt_des(tls *TLS, key uintptr, setting uintptr, output uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v key=%v setting=%v output=%v, (%v:)", tls, key, setting, output, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var p, retval, test_hash, test_key, test_setting, v1 uintptr + var _ /* test_buf at bp+0 */ [21]uint8 + _, _, _, _, _, _ = p, retval, test_hash, test_key, test_setting, v1 + test_key = __ccgo_ts + 72 + test_setting = __ccgo_ts + 93 + test_hash = __ccgo_ts + 103 + if int32(*(*uint8)(unsafe.Pointer(setting))) != int32('_') { + test_setting = __ccgo_ts + 124 + test_hash = __ccgo_ts + 127 + } + /* + * Hash the supplied password. + */ + retval = __crypt_extended_r_uut(tls, key, setting, output) + /* + * Perform a quick self-test. It is important that we make both calls + * to _crypt_extended_r_uut() from the same scope such that they likely + * use the same stack locations, which makes the second call overwrite + * the first call's sensitive data on the stack and makes it more + * likely that any alignment related issues would be detected. + */ + p = __crypt_extended_r_uut(tls, test_key, test_setting, bp) + if p != 0 && !(Xstrcmp(tls, p, test_hash) != 0) && retval != 0 { + return retval + } + if int32(*(*uint8)(unsafe.Pointer(setting))) == int32('*') { + v1 = __ccgo_ts + 141 + } else { + v1 = __ccgo_ts + 70 + } + return v1 +} + +const KEY_MAX = 30000 +const SALT_MAX = 8 + +/* public domain md5 implementation based on rfc1321 and libtomcrypt */ + +type Tmd5 = struct { + Flen1 Tuint64_t + Fh [4]Tuint32_t + Fbuf [64]Tuint8_t +} + +func _rol(tls *TLS, n Tuint32_t, k int32) (r Tuint32_t) { + return n<>(Int32FromInt32(32)-k) +} + +var _tab = [64]Tuint32_t{ + 0: uint32(0xd76aa478), + 1: uint32(0xe8c7b756), + 2: uint32(0x242070db), + 3: uint32(0xc1bdceee), + 4: uint32(0xf57c0faf), + 5: uint32(0x4787c62a), + 6: uint32(0xa8304613), + 7: uint32(0xfd469501), + 8: uint32(0x698098d8), + 9: uint32(0x8b44f7af), + 10: uint32(0xffff5bb1), + 11: uint32(0x895cd7be), + 12: uint32(0x6b901122), + 13: uint32(0xfd987193), + 14: uint32(0xa679438e), + 15: uint32(0x49b40821), + 16: uint32(0xf61e2562), + 17: uint32(0xc040b340), + 18: uint32(0x265e5a51), + 19: uint32(0xe9b6c7aa), + 20: uint32(0xd62f105d), + 21: uint32(0x02441453), + 22: uint32(0xd8a1e681), + 23: uint32(0xe7d3fbc8), + 24: uint32(0x21e1cde6), + 25: uint32(0xc33707d6), + 26: uint32(0xf4d50d87), + 27: uint32(0x455a14ed), + 28: uint32(0xa9e3e905), + 29: uint32(0xfcefa3f8), + 30: uint32(0x676f02d9), + 31: uint32(0x8d2a4c8a), + 32: uint32(0xfffa3942), + 33: uint32(0x8771f681), + 34: uint32(0x6d9d6122), + 35: uint32(0xfde5380c), + 36: uint32(0xa4beea44), + 37: uint32(0x4bdecfa9), + 38: uint32(0xf6bb4b60), + 39: uint32(0xbebfbc70), + 40: uint32(0x289b7ec6), + 41: uint32(0xeaa127fa), + 42: uint32(0xd4ef3085), + 43: uint32(0x04881d05), + 44: uint32(0xd9d4d039), + 45: uint32(0xe6db99e5), + 46: uint32(0x1fa27cf8), + 47: uint32(0xc4ac5665), + 48: uint32(0xf4292244), + 49: uint32(0x432aff97), + 50: uint32(0xab9423a7), + 51: uint32(0xfc93a039), + 52: uint32(0x655b59c3), + 53: uint32(0x8f0ccc92), + 54: uint32(0xffeff47d), + 55: uint32(0x85845dd1), + 56: uint32(0x6fa87e4f), + 57: uint32(0xfe2ce6e0), + 58: uint32(0xa3014314), + 59: uint32(0x4e0811a1), + 60: uint32(0xf7537e82), + 61: uint32(0xbd3af235), + 62: uint32(0x2ad7d2bb), + 63: uint32(0xeb86d391), +} + +func _processblock(tls *TLS, s uintptr, buf uintptr) { + bp := tls.Alloc(64) + defer tls.Free(64) + var a, b, c, d, i Tuint32_t + var _ /* W at bp+0 */ [16]Tuint32_t + _, _, _, _, _ = a, b, c, d, i + i = uint32(0) + for { + if !(i < uint32(16)) { + break + } + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[i] = uint32(*(*Tuint8_t)(unsafe.Pointer(buf + uintptr(uint32(4)*i)))) + *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(i)*4)) |= uint32(*(*Tuint8_t)(unsafe.Pointer(buf + uintptr(uint32(4)*i+uint32(1))))) << int32(8) + *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(i)*4)) |= uint32(*(*Tuint8_t)(unsafe.Pointer(buf + uintptr(uint32(4)*i+uint32(2))))) << int32(16) + *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(i)*4)) |= uint32(*(*Tuint8_t)(unsafe.Pointer(buf + uintptr(uint32(4)*i+uint32(3))))) << int32(24) + goto _1 + _1: + ; + i++ + } + a = *(*Tuint32_t)(unsafe.Pointer(s + 8)) + b = *(*Tuint32_t)(unsafe.Pointer(s + 8 + 1*4)) + c = *(*Tuint32_t)(unsafe.Pointer(s + 8 + 2*4)) + d = *(*Tuint32_t)(unsafe.Pointer(s + 8 + 3*4)) + i = uint32(0) + for i < uint32(16) { + a += d ^ b&(c^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[i] + _tab[i] + a = _rol(tls, a, int32(7)) + b + i++ + d += c ^ a&(b^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[i] + _tab[i] + d = _rol(tls, d, int32(12)) + a + i++ + c += b ^ d&(a^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[i] + _tab[i] + c = _rol(tls, c, int32(17)) + d + i++ + b += a ^ c&(d^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[i] + _tab[i] + b = _rol(tls, b, int32(22)) + c + i++ + } + for i < uint32(32) { + a += c ^ d&(c^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[(uint32(5)*i+uint32(1))%uint32(16)] + _tab[i] + a = _rol(tls, a, int32(5)) + b + i++ + d += b ^ c&(b^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[(uint32(5)*i+uint32(1))%uint32(16)] + _tab[i] + d = _rol(tls, d, int32(9)) + a + i++ + c += a ^ b&(a^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[(uint32(5)*i+uint32(1))%uint32(16)] + _tab[i] + c = _rol(tls, c, int32(14)) + d + i++ + b += d ^ a&(d^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[(uint32(5)*i+uint32(1))%uint32(16)] + _tab[i] + b = _rol(tls, b, int32(20)) + c + i++ + } + for i < uint32(48) { + a += b ^ c ^ d + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[(uint32(3)*i+uint32(5))%uint32(16)] + _tab[i] + a = _rol(tls, a, int32(4)) + b + i++ + d += a ^ b ^ c + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[(uint32(3)*i+uint32(5))%uint32(16)] + _tab[i] + d = _rol(tls, d, int32(11)) + a + i++ + c += d ^ a ^ b + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[(uint32(3)*i+uint32(5))%uint32(16)] + _tab[i] + c = _rol(tls, c, int32(16)) + d + i++ + b += c ^ d ^ a + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[(uint32(3)*i+uint32(5))%uint32(16)] + _tab[i] + b = _rol(tls, b, int32(23)) + c + i++ + } + for i < uint32(64) { + a += c ^ (b | ^d) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[uint32(7)*i%uint32(16)] + _tab[i] + a = _rol(tls, a, int32(6)) + b + i++ + d += b ^ (a | ^c) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[uint32(7)*i%uint32(16)] + _tab[i] + d = _rol(tls, d, int32(10)) + a + i++ + c += a ^ (d | ^b) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[uint32(7)*i%uint32(16)] + _tab[i] + c = _rol(tls, c, int32(15)) + d + i++ + b += d ^ (c | ^a) + (*(*[16]Tuint32_t)(unsafe.Pointer(bp)))[uint32(7)*i%uint32(16)] + _tab[i] + b = _rol(tls, b, int32(21)) + c + i++ + } + *(*Tuint32_t)(unsafe.Pointer(s + 8)) += a + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 1*4)) += b + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 2*4)) += c + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 3*4)) += d +} + +func _pad(tls *TLS, s uintptr) { + var r, v1 uint32 + _, _ = r, v1 + r = uint32((*Tmd5)(unsafe.Pointer(s)).Flen1 % uint64(64)) + v1 = r + r++ + *(*Tuint8_t)(unsafe.Pointer(s + 24 + uintptr(v1))) = uint8(0x80) + if r > uint32(56) { + Xmemset(tls, s+24+uintptr(r), 0, uint64(uint32(64)-r)) + r = uint32(0) + _processblock(tls, s, s+24) + } + Xmemset(tls, s+24+uintptr(r), 0, uint64(uint32(56)-r)) + *(*Tuint64_t)(unsafe.Pointer(s)) *= uint64(8) + *(*Tuint8_t)(unsafe.Pointer(s + 24 + 56)) = uint8((*Tmd5)(unsafe.Pointer(s)).Flen1) + *(*Tuint8_t)(unsafe.Pointer(s + 24 + 57)) = uint8((*Tmd5)(unsafe.Pointer(s)).Flen1 >> int32(8)) + *(*Tuint8_t)(unsafe.Pointer(s + 24 + 58)) = uint8((*Tmd5)(unsafe.Pointer(s)).Flen1 >> int32(16)) + *(*Tuint8_t)(unsafe.Pointer(s + 24 + 59)) = uint8((*Tmd5)(unsafe.Pointer(s)).Flen1 >> int32(24)) + *(*Tuint8_t)(unsafe.Pointer(s + 24 + 60)) = uint8((*Tmd5)(unsafe.Pointer(s)).Flen1 >> int32(32)) + *(*Tuint8_t)(unsafe.Pointer(s + 24 + 61)) = uint8((*Tmd5)(unsafe.Pointer(s)).Flen1 >> int32(40)) + *(*Tuint8_t)(unsafe.Pointer(s + 24 + 62)) = uint8((*Tmd5)(unsafe.Pointer(s)).Flen1 >> int32(48)) + *(*Tuint8_t)(unsafe.Pointer(s + 24 + 63)) = uint8((*Tmd5)(unsafe.Pointer(s)).Flen1 >> int32(56)) + _processblock(tls, s, s+24) +} + +func _md5_init(tls *TLS, s uintptr) { + (*Tmd5)(unsafe.Pointer(s)).Flen1 = uint64(0) + *(*Tuint32_t)(unsafe.Pointer(s + 8)) = uint32(0x67452301) + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 1*4)) = uint32(0xefcdab89) + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 2*4)) = uint32(0x98badcfe) + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 3*4)) = uint32(0x10325476) +} + +func _md5_sum(tls *TLS, s uintptr, md uintptr) { + var i int32 + _ = i + _pad(tls, s) + i = 0 + for { + if !(i < int32(4)) { + break + } + *(*Tuint8_t)(unsafe.Pointer(md + uintptr(int32(4)*i))) = uint8(*(*Tuint32_t)(unsafe.Pointer(s + 8 + uintptr(i)*4))) + *(*Tuint8_t)(unsafe.Pointer(md + uintptr(int32(4)*i+int32(1)))) = uint8(*(*Tuint32_t)(unsafe.Pointer(s + 8 + uintptr(i)*4)) >> int32(8)) + *(*Tuint8_t)(unsafe.Pointer(md + uintptr(int32(4)*i+int32(2)))) = uint8(*(*Tuint32_t)(unsafe.Pointer(s + 8 + uintptr(i)*4)) >> int32(16)) + *(*Tuint8_t)(unsafe.Pointer(md + uintptr(int32(4)*i+int32(3)))) = uint8(*(*Tuint32_t)(unsafe.Pointer(s + 8 + uintptr(i)*4)) >> int32(24)) + goto _1 + _1: + ; + i++ + } +} + +func _md5_update(tls *TLS, s uintptr, m uintptr, len1 uint64) { + var p uintptr + var r uint32 + _, _ = p, r + p = m + r = uint32((*Tmd5)(unsafe.Pointer(s)).Flen1 % uint64(64)) + *(*Tuint64_t)(unsafe.Pointer(s)) += len1 + if r != 0 { + if len1 < uint64(uint32(64)-r) { + Xmemcpy(tls, s+24+uintptr(r), p, len1) + return + } + Xmemcpy(tls, s+24+uintptr(r), p, uint64(uint32(64)-r)) + len1 -= uint64(uint32(64) - r) + p += uintptr(uint32(64) - r) + _processblock(tls, s, s+24) + } + for { + if !(len1 >= uint64(64)) { + break + } + _processblock(tls, s, p) + goto _1 + _1: + ; + len1 -= uint64(64) + p += uintptr(64) + } + Xmemcpy(tls, s+24, p, len1) +} + +/*- + * Copyright (c) 2003 Poul-Henning Kamp + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* key limit is not part of the original design, added for DoS protection */ + +var _b64 = [65]uint8{'.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'} + +func _to64(tls *TLS, s uintptr, u uint32, n int32) (r uintptr) { + var v1 int32 + var v2 uintptr + _, _ = v1, v2 + for { + n-- + v1 = n + if !(v1 >= 0) { + break + } + v2 = s + s++ + *(*uint8)(unsafe.Pointer(v2)) = _b64[u%uint32(64)] + u /= uint32(64) + } + return s +} + +func _md5crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r uintptr) { + bp := tls.Alloc(112) + defer tls.Free(112) + var i, klen, slen uint32 + var p, salt, v5 uintptr + var _ /* ctx at bp+0 */ Tmd5 + var _ /* md at bp+88 */ [16]uint8 + _, _, _, _, _, _ = i, klen, p, salt, slen, v5 + /* reject large keys */ + klen = uint32(Xstrnlen(tls, key, uint64(Int32FromInt32(KEY_MAX)+Int32FromInt32(1)))) + if klen > uint32(KEY_MAX) { + return uintptr(0) + } + /* setting: $1$salt$ (closing $ is optional) */ + if Xstrncmp(tls, setting, __ccgo_ts+143, uint64(3)) != 0 { + return uintptr(0) + } + salt = setting + uintptr(3) + i = uint32(0) + for { + if !(i < uint32(SALT_MAX) && *(*uint8)(unsafe.Pointer(salt + uintptr(i))) != 0 && int32(*(*uint8)(unsafe.Pointer(salt + uintptr(i)))) != int32('$')) { + break + } + goto _1 + _1: + ; + i++ + } + slen = i + /* md5(key salt key) */ + _md5_init(tls, bp) + _md5_update(tls, bp, key, uint64(klen)) + _md5_update(tls, bp, salt, uint64(slen)) + _md5_update(tls, bp, key, uint64(klen)) + _md5_sum(tls, bp, bp+88) + /* md5(key $1$ salt repeated-md weird-key[0]-0) */ + _md5_init(tls, bp) + _md5_update(tls, bp, key, uint64(klen)) + _md5_update(tls, bp, setting, uint64(uint32(3)+slen)) + i = klen + for { + if !(uint64(i) > uint64(16)) { + break + } + _md5_update(tls, bp, bp+88, uint64(16)) + goto _2 + _2: + ; + i = uint32(uint64(i) - Uint64FromInt64(16)) + } + _md5_update(tls, bp, bp+88, uint64(i)) + (*(*[16]uint8)(unsafe.Pointer(bp + 88)))[0] = uint8(0) + i = klen + for { + if !(i != 0) { + break + } + if i&uint32(1) != 0 { + _md5_update(tls, bp, bp+88, uint64(1)) + } else { + _md5_update(tls, bp, key, uint64(1)) + } + goto _3 + _3: + ; + i >>= uint32(1) + } + _md5_sum(tls, bp, bp+88) + /* md = f(md, key, salt) iteration */ + i = uint32(0) + for { + if !(i < uint32(1000)) { + break + } + _md5_init(tls, bp) + if i%uint32(2) != 0 { + _md5_update(tls, bp, key, uint64(klen)) + } else { + _md5_update(tls, bp, bp+88, uint64(16)) + } + if i%uint32(3) != 0 { + _md5_update(tls, bp, salt, uint64(slen)) + } + if i%uint32(7) != 0 { + _md5_update(tls, bp, key, uint64(klen)) + } + if i%uint32(2) != 0 { + _md5_update(tls, bp, bp+88, uint64(16)) + } else { + _md5_update(tls, bp, key, uint64(klen)) + } + _md5_sum(tls, bp, bp+88) + goto _4 + _4: + ; + i++ + } + /* output is $1$salt$hash */ + Xmemcpy(tls, output, setting, uint64(uint32(3)+slen)) + p = output + uintptr(3) + uintptr(slen) + v5 = p + p++ + *(*uint8)(unsafe.Pointer(v5)) = uint8('$') + i = uint32(0) + for { + if !(i < uint32(5)) { + break + } + p = _to64(tls, p, uint32(int32((*(*[16]uint8)(unsafe.Pointer(bp + 88)))[*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_perm)) + uintptr(i)*3))])< %v", r) }() + } + bp := tls.Alloc(64) + defer tls.Free(64) + var p, q uintptr + var _ /* testbuf at bp+0 */ [64]uint8 + _, _ = p, q + p = _md5crypt(tls, key, setting, output) + /* self test and stack cleanup */ + q = _md5crypt(tls, uintptr(unsafe.Pointer(&_testkey)), uintptr(unsafe.Pointer(&_testsetting)), bp) + if !(p != 0) || q != bp || Xmemcmp(tls, bp, uintptr(unsafe.Pointer(&_testhash)), uint64(35)) != 0 { + return __ccgo_ts + 70 + } + return p +} + +var _testkey = [18]uint8{'X', 'y', '0', '1', '@', '#', 1, 2, 128, 127, 255, 13, 10, 129, 9, ' ', '!'} + +var _testsetting = [13]uint8{'$', '1', '$', 'a', 'b', 'c', 'd', '0', '1', '2', '3', '$'} + +var _testhash = [35]uint8{'$', '1', '$', 'a', 'b', 'c', 'd', '0', '1', '2', '3', '$', '9', 'Q', 'c', 'g', '8', 'D', 'y', 'v', 'i', 'e', 'k', 'V', '3', 't', 'D', 'G', 'M', 'Z', 'y', 'n', 'J', '1'} + +func X__crypt_r(tls *TLS, key uintptr, salt uintptr, data uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v key=%v salt=%v data=%v, (%v:)", tls, key, salt, data, origin(2)) + defer func() { trc("-> %v", r) }() + } + var output uintptr + _ = output + /* Per the crypt_r API, the caller has provided a pointer to + * struct crypt_data; however, this implementation does not + * use the structure to store any internal state, and treats + * it purely as a char buffer for storing the result. */ + output = data + if int32(*(*uint8)(unsafe.Pointer(salt))) == int32('$') && *(*uint8)(unsafe.Pointer(salt + 1)) != 0 && *(*uint8)(unsafe.Pointer(salt + 2)) != 0 { + if int32(*(*uint8)(unsafe.Pointer(salt + 1))) == int32('1') && int32(*(*uint8)(unsafe.Pointer(salt + 2))) == int32('$') { + return X__crypt_md5(tls, key, salt, output) + } + if int32(*(*uint8)(unsafe.Pointer(salt + 1))) == int32('2') && int32(*(*uint8)(unsafe.Pointer(salt + 3))) == int32('$') { + return X__crypt_blowfish(tls, key, salt, output) + } + if int32(*(*uint8)(unsafe.Pointer(salt + 1))) == int32('5') && int32(*(*uint8)(unsafe.Pointer(salt + 2))) == int32('$') { + return X__crypt_sha256(tls, key, salt, output) + } + if int32(*(*uint8)(unsafe.Pointer(salt + 1))) == int32('6') && int32(*(*uint8)(unsafe.Pointer(salt + 2))) == int32('$') { + return X__crypt_sha512(tls, key, salt, output) + } + } + return X__crypt_des(tls, key, salt, output) +} + +func Xcrypt_r(tls *TLS, key uintptr, salt uintptr, data uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v key=%v salt=%v data=%v, (%v:)", tls, key, salt, data, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__crypt_r(tls, key, salt, data) +} + +const KEY_MAX1 = 256 +const ROUNDS_DEFAULT = 5000 +const ROUNDS_MAX = 9999999 +const ROUNDS_MIN = 1000 +const SALT_MAX1 = 16 + +/* public domain sha256 implementation based on fips180-3 */ + +type Tsha256 = struct { + Flen1 Tuint64_t + Fh [8]Tuint32_t + Fbuf [64]Tuint8_t +} + +func _ror(tls *TLS, n Tuint32_t, k int32) (r Tuint32_t) { + return n>>k | n<<(Int32FromInt32(32)-k) +} + +var _K = [64]Tuint32_t{ + 0: uint32(0x428a2f98), + 1: uint32(0x71374491), + 2: uint32(0xb5c0fbcf), + 3: uint32(0xe9b5dba5), + 4: uint32(0x3956c25b), + 5: uint32(0x59f111f1), + 6: uint32(0x923f82a4), + 7: uint32(0xab1c5ed5), + 8: uint32(0xd807aa98), + 9: uint32(0x12835b01), + 10: uint32(0x243185be), + 11: uint32(0x550c7dc3), + 12: uint32(0x72be5d74), + 13: uint32(0x80deb1fe), + 14: uint32(0x9bdc06a7), + 15: uint32(0xc19bf174), + 16: uint32(0xe49b69c1), + 17: uint32(0xefbe4786), + 18: uint32(0x0fc19dc6), + 19: uint32(0x240ca1cc), + 20: uint32(0x2de92c6f), + 21: uint32(0x4a7484aa), + 22: uint32(0x5cb0a9dc), + 23: uint32(0x76f988da), + 24: uint32(0x983e5152), + 25: uint32(0xa831c66d), + 26: uint32(0xb00327c8), + 27: uint32(0xbf597fc7), + 28: uint32(0xc6e00bf3), + 29: uint32(0xd5a79147), + 30: uint32(0x06ca6351), + 31: uint32(0x14292967), + 32: uint32(0x27b70a85), + 33: uint32(0x2e1b2138), + 34: uint32(0x4d2c6dfc), + 35: uint32(0x53380d13), + 36: uint32(0x650a7354), + 37: uint32(0x766a0abb), + 38: uint32(0x81c2c92e), + 39: uint32(0x92722c85), + 40: uint32(0xa2bfe8a1), + 41: uint32(0xa81a664b), + 42: uint32(0xc24b8b70), + 43: uint32(0xc76c51a3), + 44: uint32(0xd192e819), + 45: uint32(0xd6990624), + 46: uint32(0xf40e3585), + 47: uint32(0x106aa070), + 48: uint32(0x19a4c116), + 49: uint32(0x1e376c08), + 50: uint32(0x2748774c), + 51: uint32(0x34b0bcb5), + 52: uint32(0x391c0cb3), + 53: uint32(0x4ed8aa4a), + 54: uint32(0x5b9cca4f), + 55: uint32(0x682e6ff3), + 56: uint32(0x748f82ee), + 57: uint32(0x78a5636f), + 58: uint32(0x84c87814), + 59: uint32(0x8cc70208), + 60: uint32(0x90befffa), + 61: uint32(0xa4506ceb), + 62: uint32(0xbef9a3f7), + 63: uint32(0xc67178f2), +} + +func _processblock1(tls *TLS, s uintptr, buf uintptr) { + bp := tls.Alloc(256) + defer tls.Free(256) + var a, b, c, d, e, f, g, h, t1, t2 Tuint32_t + var i int32 + var _ /* W at bp+0 */ [64]Tuint32_t + _, _, _, _, _, _, _, _, _, _, _ = a, b, c, d, e, f, g, h, i, t1, t2 + i = 0 + for { + if !(i < int32(16)) { + break + } + (*(*[64]Tuint32_t)(unsafe.Pointer(bp)))[i] = uint32(*(*Tuint8_t)(unsafe.Pointer(buf + uintptr(int32(4)*i)))) << int32(24) + *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(i)*4)) |= uint32(*(*Tuint8_t)(unsafe.Pointer(buf + uintptr(int32(4)*i+int32(1))))) << int32(16) + *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(i)*4)) |= uint32(*(*Tuint8_t)(unsafe.Pointer(buf + uintptr(int32(4)*i+int32(2))))) << int32(8) + *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(i)*4)) |= uint32(*(*Tuint8_t)(unsafe.Pointer(buf + uintptr(int32(4)*i+int32(3))))) + goto _1 + _1: + ; + i++ + } + for { + if !(i < int32(64)) { + break + } + (*(*[64]Tuint32_t)(unsafe.Pointer(bp)))[i] = _ror(tls, (*(*[64]Tuint32_t)(unsafe.Pointer(bp)))[i-int32(2)], int32(17)) ^ _ror(tls, (*(*[64]Tuint32_t)(unsafe.Pointer(bp)))[i-int32(2)], int32(19)) ^ (*(*[64]Tuint32_t)(unsafe.Pointer(bp)))[i-int32(2)]>>Int32FromInt32(10) + (*(*[64]Tuint32_t)(unsafe.Pointer(bp)))[i-int32(7)] + (_ror(tls, (*(*[64]Tuint32_t)(unsafe.Pointer(bp)))[i-int32(15)], int32(7)) ^ _ror(tls, (*(*[64]Tuint32_t)(unsafe.Pointer(bp)))[i-int32(15)], int32(18)) ^ (*(*[64]Tuint32_t)(unsafe.Pointer(bp)))[i-int32(15)]>>Int32FromInt32(3)) + (*(*[64]Tuint32_t)(unsafe.Pointer(bp)))[i-int32(16)] + goto _2 + _2: + ; + i++ + } + a = *(*Tuint32_t)(unsafe.Pointer(s + 8)) + b = *(*Tuint32_t)(unsafe.Pointer(s + 8 + 1*4)) + c = *(*Tuint32_t)(unsafe.Pointer(s + 8 + 2*4)) + d = *(*Tuint32_t)(unsafe.Pointer(s + 8 + 3*4)) + e = *(*Tuint32_t)(unsafe.Pointer(s + 8 + 4*4)) + f = *(*Tuint32_t)(unsafe.Pointer(s + 8 + 5*4)) + g = *(*Tuint32_t)(unsafe.Pointer(s + 8 + 6*4)) + h = *(*Tuint32_t)(unsafe.Pointer(s + 8 + 7*4)) + i = 0 + for { + if !(i < int32(64)) { + break + } + t1 = h + (_ror(tls, e, int32(6)) ^ _ror(tls, e, int32(11)) ^ _ror(tls, e, int32(25))) + (g ^ e&(f^g)) + _K[i] + (*(*[64]Tuint32_t)(unsafe.Pointer(bp)))[i] + t2 = _ror(tls, a, int32(2)) ^ _ror(tls, a, int32(13)) ^ _ror(tls, a, int32(22)) + (a&b | c&(a|b)) + h = g + g = f + f = e + e = d + t1 + d = c + c = b + b = a + a = t1 + t2 + goto _3 + _3: + ; + i++ + } + *(*Tuint32_t)(unsafe.Pointer(s + 8)) += a + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 1*4)) += b + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 2*4)) += c + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 3*4)) += d + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 4*4)) += e + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 5*4)) += f + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 6*4)) += g + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 7*4)) += h +} + +func _pad1(tls *TLS, s uintptr) { + var r, v1 uint32 + _, _ = r, v1 + r = uint32((*Tsha256)(unsafe.Pointer(s)).Flen1 % uint64(64)) + v1 = r + r++ + *(*Tuint8_t)(unsafe.Pointer(s + 40 + uintptr(v1))) = uint8(0x80) + if r > uint32(56) { + Xmemset(tls, s+40+uintptr(r), 0, uint64(uint32(64)-r)) + r = uint32(0) + _processblock1(tls, s, s+40) + } + Xmemset(tls, s+40+uintptr(r), 0, uint64(uint32(56)-r)) + *(*Tuint64_t)(unsafe.Pointer(s)) *= uint64(8) + *(*Tuint8_t)(unsafe.Pointer(s + 40 + 56)) = uint8((*Tsha256)(unsafe.Pointer(s)).Flen1 >> int32(56)) + *(*Tuint8_t)(unsafe.Pointer(s + 40 + 57)) = uint8((*Tsha256)(unsafe.Pointer(s)).Flen1 >> int32(48)) + *(*Tuint8_t)(unsafe.Pointer(s + 40 + 58)) = uint8((*Tsha256)(unsafe.Pointer(s)).Flen1 >> int32(40)) + *(*Tuint8_t)(unsafe.Pointer(s + 40 + 59)) = uint8((*Tsha256)(unsafe.Pointer(s)).Flen1 >> int32(32)) + *(*Tuint8_t)(unsafe.Pointer(s + 40 + 60)) = uint8((*Tsha256)(unsafe.Pointer(s)).Flen1 >> int32(24)) + *(*Tuint8_t)(unsafe.Pointer(s + 40 + 61)) = uint8((*Tsha256)(unsafe.Pointer(s)).Flen1 >> int32(16)) + *(*Tuint8_t)(unsafe.Pointer(s + 40 + 62)) = uint8((*Tsha256)(unsafe.Pointer(s)).Flen1 >> int32(8)) + *(*Tuint8_t)(unsafe.Pointer(s + 40 + 63)) = uint8((*Tsha256)(unsafe.Pointer(s)).Flen1) + _processblock1(tls, s, s+40) +} + +func _sha256_init(tls *TLS, s uintptr) { + (*Tsha256)(unsafe.Pointer(s)).Flen1 = uint64(0) + *(*Tuint32_t)(unsafe.Pointer(s + 8)) = uint32(0x6a09e667) + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 1*4)) = uint32(0xbb67ae85) + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 2*4)) = uint32(0x3c6ef372) + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 3*4)) = uint32(0xa54ff53a) + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 4*4)) = uint32(0x510e527f) + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 5*4)) = uint32(0x9b05688c) + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 6*4)) = uint32(0x1f83d9ab) + *(*Tuint32_t)(unsafe.Pointer(s + 8 + 7*4)) = uint32(0x5be0cd19) +} + +func _sha256_sum(tls *TLS, s uintptr, md uintptr) { + var i int32 + _ = i + _pad1(tls, s) + i = 0 + for { + if !(i < int32(8)) { + break + } + *(*Tuint8_t)(unsafe.Pointer(md + uintptr(int32(4)*i))) = uint8(*(*Tuint32_t)(unsafe.Pointer(s + 8 + uintptr(i)*4)) >> int32(24)) + *(*Tuint8_t)(unsafe.Pointer(md + uintptr(int32(4)*i+int32(1)))) = uint8(*(*Tuint32_t)(unsafe.Pointer(s + 8 + uintptr(i)*4)) >> int32(16)) + *(*Tuint8_t)(unsafe.Pointer(md + uintptr(int32(4)*i+int32(2)))) = uint8(*(*Tuint32_t)(unsafe.Pointer(s + 8 + uintptr(i)*4)) >> int32(8)) + *(*Tuint8_t)(unsafe.Pointer(md + uintptr(int32(4)*i+int32(3)))) = uint8(*(*Tuint32_t)(unsafe.Pointer(s + 8 + uintptr(i)*4))) + goto _1 + _1: + ; + i++ + } +} + +func _sha256_update(tls *TLS, s uintptr, m uintptr, len1 uint64) { + var p uintptr + var r uint32 + _, _ = p, r + p = m + r = uint32((*Tsha256)(unsafe.Pointer(s)).Flen1 % uint64(64)) + *(*Tuint64_t)(unsafe.Pointer(s)) += len1 + if r != 0 { + if len1 < uint64(uint32(64)-r) { + Xmemcpy(tls, s+40+uintptr(r), p, len1) + return + } + Xmemcpy(tls, s+40+uintptr(r), p, uint64(uint32(64)-r)) + len1 -= uint64(uint32(64) - r) + p += uintptr(uint32(64) - r) + _processblock1(tls, s, s+40) + } + for { + if !(len1 >= uint64(64)) { + break + } + _processblock1(tls, s, p) + goto _1 + _1: + ; + len1 -= uint64(64) + p += uintptr(64) + } + Xmemcpy(tls, s+40, p, len1) +} + +var _b641 = [65]uint8{'.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'} + +func _to641(tls *TLS, s uintptr, u uint32, n int32) (r uintptr) { + var v1 int32 + var v2 uintptr + _, _ = v1, v2 + for { + n-- + v1 = n + if !(v1 >= 0) { + break + } + v2 = s + s++ + *(*uint8)(unsafe.Pointer(v2)) = _b641[u%uint32(64)] + u /= uint32(64) + } + return s +} + +/* key limit is not part of the original design, added for DoS protection. + * rounds limit has been lowered (versus the reference/spec), also for DoS + * protection. runtime is O(klen^2 + klen*rounds) */ + +// C documentation +// +// /* hash n bytes of the repeated md message digest */ +func _hashmd(tls *TLS, s uintptr, n uint32, md uintptr) { + var i uint32 + _ = i + i = n + for { + if !(i > uint32(32)) { + break + } + _sha256_update(tls, s, md, uint64(32)) + goto _1 + _1: + ; + i -= uint32(32) + } + _sha256_update(tls, s, md, uint64(i)) +} + +func _sha256crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r1 uintptr) { + bp := tls.Alloc(272) + defer tls.Free(272) + var i, klen, r, slen uint32 + var p, salt uintptr + var u uint64 + var _ /* ctx at bp+0 */ Tsha256 + var _ /* end at bp+224 */ uintptr + var _ /* kmd at bp+136 */ [32]uint8 + var _ /* md at bp+104 */ [32]uint8 + var _ /* rounds at bp+200 */ [20]uint8 + var _ /* smd at bp+168 */ [32]uint8 + _, _, _, _, _, _, _ = i, klen, p, r, salt, slen, u + *(*[20]uint8)(unsafe.Pointer(bp + 200)) = [20]uint8{} + /* reject large keys */ + klen = uint32(Xstrnlen(tls, key, uint64(Int32FromInt32(KEY_MAX1)+Int32FromInt32(1)))) + if klen > uint32(KEY_MAX1) { + return uintptr(0) + } + /* setting: $5$rounds=n$salt$ (rounds=n$ and closing $ are optional) */ + if Xstrncmp(tls, setting, __ccgo_ts+147, uint64(3)) != 0 { + return uintptr(0) + } + salt = setting + uintptr(3) + r = uint32(ROUNDS_DEFAULT) + if Xstrncmp(tls, salt, __ccgo_ts+151, Uint64FromInt64(8)-Uint64FromInt32(1)) == 0 { + /* + * this is a deviation from the reference: + * bad rounds setting is rejected if it is + * - empty + * - unterminated (missing '$') + * - begins with anything but a decimal digit + * the reference implementation treats these bad + * rounds as part of the salt or parse them with + * strtoul semantics which may cause problems + * including non-portable hashes that depend on + * the host's value of ULONG_MAX. + */ + salt += uintptr(Uint64FromInt64(8) - Uint64FromInt32(1)) + if !(BoolInt32(uint32(*(*uint8)(unsafe.Pointer(salt)))-Uint32FromUint8('0') < Uint32FromInt32(10)) != 0) { + return uintptr(0) + } + u = Xstrtoul(tls, salt, bp+224, int32(10)) + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 224))))) != int32('$') { + return uintptr(0) + } + salt = *(*uintptr)(unsafe.Pointer(bp + 224)) + uintptr(1) + if u < uint64(ROUNDS_MIN) { + r = uint32(ROUNDS_MIN) + } else { + if u > uint64(ROUNDS_MAX) { + return uintptr(0) + } else { + r = uint32(u) + } + } + /* needed when rounds is zero prefixed or out of bounds */ + Xsprintf(tls, bp+200, __ccgo_ts+159, VaList(bp+240, r)) + } + i = uint32(0) + for { + if !(i < uint32(SALT_MAX1) && *(*uint8)(unsafe.Pointer(salt + uintptr(i))) != 0 && int32(*(*uint8)(unsafe.Pointer(salt + uintptr(i)))) != int32('$')) { + break + } + /* reject characters that interfere with /etc/shadow parsing */ + if int32(*(*uint8)(unsafe.Pointer(salt + uintptr(i)))) == int32('\n') || int32(*(*uint8)(unsafe.Pointer(salt + uintptr(i)))) == int32(':') { + return uintptr(0) + } + goto _1 + _1: + ; + i++ + } + slen = i + /* B = sha(key salt key) */ + _sha256_init(tls, bp) + _sha256_update(tls, bp, key, uint64(klen)) + _sha256_update(tls, bp, salt, uint64(slen)) + _sha256_update(tls, bp, key, uint64(klen)) + _sha256_sum(tls, bp, bp+104) + /* A = sha(key salt repeat-B alternate-B-key) */ + _sha256_init(tls, bp) + _sha256_update(tls, bp, key, uint64(klen)) + _sha256_update(tls, bp, salt, uint64(slen)) + _hashmd(tls, bp, klen, bp+104) + i = klen + for { + if !(i > uint32(0)) { + break + } + if i&uint32(1) != 0 { + _sha256_update(tls, bp, bp+104, uint64(32)) + } else { + _sha256_update(tls, bp, key, uint64(klen)) + } + goto _2 + _2: + ; + i >>= uint32(1) + } + _sha256_sum(tls, bp, bp+104) + /* DP = sha(repeat-key), this step takes O(klen^2) time */ + _sha256_init(tls, bp) + i = uint32(0) + for { + if !(i < klen) { + break + } + _sha256_update(tls, bp, key, uint64(klen)) + goto _3 + _3: + ; + i++ + } + _sha256_sum(tls, bp, bp+136) + /* DS = sha(repeat-salt) */ + _sha256_init(tls, bp) + i = uint32(0) + for { + if !(i < uint32(int32(16)+int32((*(*[32]uint8)(unsafe.Pointer(bp + 104)))[0]))) { + break + } + _sha256_update(tls, bp, salt, uint64(slen)) + goto _4 + _4: + ; + i++ + } + _sha256_sum(tls, bp, bp+168) + /* iterate A = f(A,DP,DS), this step takes O(rounds*klen) time */ + i = uint32(0) + for { + if !(i < r) { + break + } + _sha256_init(tls, bp) + if i%uint32(2) != 0 { + _hashmd(tls, bp, klen, bp+136) + } else { + _sha256_update(tls, bp, bp+104, uint64(32)) + } + if i%uint32(3) != 0 { + _sha256_update(tls, bp, bp+168, uint64(slen)) + } + if i%uint32(7) != 0 { + _hashmd(tls, bp, klen, bp+136) + } + if i%uint32(2) != 0 { + _sha256_update(tls, bp, bp+104, uint64(32)) + } else { + _hashmd(tls, bp, klen, bp+136) + } + _sha256_sum(tls, bp, bp+104) + goto _5 + _5: + ; + i++ + } + /* output is $5$rounds=n$salt$hash */ + p = output + p += uintptr(Xsprintf(tls, p, __ccgo_ts+170, VaList(bp+240, bp+200, slen, salt))) + i = uint32(0) + for { + if !(i < uint32(10)) { + break + } + p = _to641(tls, p, uint32(int32((*(*[32]uint8)(unsafe.Pointer(bp + 104)))[*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_perm1)) + uintptr(i)*3))])< %v", r) }() + } + bp := tls.Alloc(128) + defer tls.Free(128) + var p, q uintptr + var _ /* testbuf at bp+0 */ [128]uint8 + _, _ = p, q + p = _sha256crypt(tls, key, setting, output) + /* self test and stack cleanup */ + q = _sha256crypt(tls, uintptr(unsafe.Pointer(&_testkey1)), uintptr(unsafe.Pointer(&_testsetting1)), bp) + if !(p != 0) || q != bp || Xmemcmp(tls, bp, uintptr(unsafe.Pointer(&_testhash1)), uint64(73)) != 0 { + return __ccgo_ts + 70 + } + return p +} + +var _testkey1 = [18]uint8{'X', 'y', '0', '1', '@', '#', 1, 2, 128, 127, 255, 13, 10, 129, 9, ' ', '!'} + +var _testsetting1 = [30]uint8{'$', '5', '$', 'r', 'o', 'u', 'n', 'd', 's', '=', '1', '2', '3', '4', '$', 'a', 'b', 'c', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '$'} + +var _testhash1 = [73]uint8{'$', '5', '$', 'r', 'o', 'u', 'n', 'd', 's', '=', '1', '2', '3', '4', '$', 'a', 'b', 'c', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '$', '3', 'V', 'f', 'D', 'j', 'P', 't', '0', '5', 'V', 'H', 'F', 'n', '4', '7', 'C', '/', 'o', 'j', 'F', 'Z', '6', 'K', 'R', 'P', 'Y', 'r', 'O', 'j', 'j', '1', 'l', 'L', 'b', 'H', '.', 'd', 'k', 'F', '3', 'b', 'Z', '6'} + +/* public domain sha512 implementation based on fips180-3 */ +/* >=2^64 bits messages are not supported (about 2000 peta bytes) */ + +type Tsha512 = struct { + Flen1 Tuint64_t + Fh [8]Tuint64_t + Fbuf [128]Tuint8_t +} + +func _ror1(tls *TLS, n Tuint64_t, k int32) (r Tuint64_t) { + return n>>k | n<<(Int32FromInt32(64)-k) +} + +var _K1 = [80]Tuint64_t{ + 0: uint64(0x428a2f98d728ae22), + 1: uint64(0x7137449123ef65cd), + 2: uint64(0xb5c0fbcfec4d3b2f), + 3: uint64(0xe9b5dba58189dbbc), + 4: uint64(0x3956c25bf348b538), + 5: uint64(0x59f111f1b605d019), + 6: uint64(0x923f82a4af194f9b), + 7: uint64(0xab1c5ed5da6d8118), + 8: uint64(0xd807aa98a3030242), + 9: uint64(0x12835b0145706fbe), + 10: uint64(0x243185be4ee4b28c), + 11: uint64(0x550c7dc3d5ffb4e2), + 12: uint64(0x72be5d74f27b896f), + 13: uint64(0x80deb1fe3b1696b1), + 14: uint64(0x9bdc06a725c71235), + 15: uint64(0xc19bf174cf692694), + 16: uint64(0xe49b69c19ef14ad2), + 17: uint64(0xefbe4786384f25e3), + 18: uint64(0x0fc19dc68b8cd5b5), + 19: uint64(0x240ca1cc77ac9c65), + 20: uint64(0x2de92c6f592b0275), + 21: uint64(0x4a7484aa6ea6e483), + 22: uint64(0x5cb0a9dcbd41fbd4), + 23: uint64(0x76f988da831153b5), + 24: uint64(0x983e5152ee66dfab), + 25: uint64(0xa831c66d2db43210), + 26: uint64(0xb00327c898fb213f), + 27: uint64(0xbf597fc7beef0ee4), + 28: uint64(0xc6e00bf33da88fc2), + 29: uint64(0xd5a79147930aa725), + 30: uint64(0x06ca6351e003826f), + 31: uint64(0x142929670a0e6e70), + 32: uint64(0x27b70a8546d22ffc), + 33: uint64(0x2e1b21385c26c926), + 34: uint64(0x4d2c6dfc5ac42aed), + 35: uint64(0x53380d139d95b3df), + 36: uint64(0x650a73548baf63de), + 37: uint64(0x766a0abb3c77b2a8), + 38: uint64(0x81c2c92e47edaee6), + 39: uint64(0x92722c851482353b), + 40: uint64(0xa2bfe8a14cf10364), + 41: uint64(0xa81a664bbc423001), + 42: uint64(0xc24b8b70d0f89791), + 43: uint64(0xc76c51a30654be30), + 44: uint64(0xd192e819d6ef5218), + 45: uint64(0xd69906245565a910), + 46: uint64(0xf40e35855771202a), + 47: uint64(0x106aa07032bbd1b8), + 48: uint64(0x19a4c116b8d2d0c8), + 49: uint64(0x1e376c085141ab53), + 50: uint64(0x2748774cdf8eeb99), + 51: uint64(0x34b0bcb5e19b48a8), + 52: uint64(0x391c0cb3c5c95a63), + 53: uint64(0x4ed8aa4ae3418acb), + 54: uint64(0x5b9cca4f7763e373), + 55: uint64(0x682e6ff3d6b2b8a3), + 56: uint64(0x748f82ee5defb2fc), + 57: uint64(0x78a5636f43172f60), + 58: uint64(0x84c87814a1f0ab72), + 59: uint64(0x8cc702081a6439ec), + 60: uint64(0x90befffa23631e28), + 61: uint64(0xa4506cebde82bde9), + 62: uint64(0xbef9a3f7b2c67915), + 63: uint64(0xc67178f2e372532b), + 64: uint64(0xca273eceea26619c), + 65: uint64(0xd186b8c721c0c207), + 66: uint64(0xeada7dd6cde0eb1e), + 67: uint64(0xf57d4f7fee6ed178), + 68: uint64(0x06f067aa72176fba), + 69: uint64(0x0a637dc5a2c898a6), + 70: uint64(0x113f9804bef90dae), + 71: uint64(0x1b710b35131c471b), + 72: uint64(0x28db77f523047d84), + 73: uint64(0x32caab7b40c72493), + 74: uint64(0x3c9ebe0a15c9bebc), + 75: uint64(0x431d67c49c100d4c), + 76: uint64(0x4cc5d4becb3e42b6), + 77: uint64(0x597f299cfc657e2a), + 78: uint64(0x5fcb6fab3ad6faec), + 79: uint64(0x6c44198c4a475817), +} + +func _processblock2(tls *TLS, s uintptr, buf uintptr) { + bp := tls.Alloc(640) + defer tls.Free(640) + var a, b, c, d, e, f, g, h, t1, t2 Tuint64_t + var i int32 + var _ /* W at bp+0 */ [80]Tuint64_t + _, _, _, _, _, _, _, _, _, _, _ = a, b, c, d, e, f, g, h, i, t1, t2 + i = 0 + for { + if !(i < int32(16)) { + break + } + (*(*[80]Tuint64_t)(unsafe.Pointer(bp)))[i] = uint64(*(*Tuint8_t)(unsafe.Pointer(buf + uintptr(int32(8)*i)))) << int32(56) + *(*Tuint64_t)(unsafe.Pointer(bp + uintptr(i)*8)) |= uint64(*(*Tuint8_t)(unsafe.Pointer(buf + uintptr(int32(8)*i+int32(1))))) << int32(48) + *(*Tuint64_t)(unsafe.Pointer(bp + uintptr(i)*8)) |= uint64(*(*Tuint8_t)(unsafe.Pointer(buf + uintptr(int32(8)*i+int32(2))))) << int32(40) + *(*Tuint64_t)(unsafe.Pointer(bp + uintptr(i)*8)) |= uint64(*(*Tuint8_t)(unsafe.Pointer(buf + uintptr(int32(8)*i+int32(3))))) << int32(32) + *(*Tuint64_t)(unsafe.Pointer(bp + uintptr(i)*8)) |= uint64(*(*Tuint8_t)(unsafe.Pointer(buf + uintptr(int32(8)*i+int32(4))))) << int32(24) + *(*Tuint64_t)(unsafe.Pointer(bp + uintptr(i)*8)) |= uint64(*(*Tuint8_t)(unsafe.Pointer(buf + uintptr(int32(8)*i+int32(5))))) << int32(16) + *(*Tuint64_t)(unsafe.Pointer(bp + uintptr(i)*8)) |= uint64(*(*Tuint8_t)(unsafe.Pointer(buf + uintptr(int32(8)*i+int32(6))))) << int32(8) + *(*Tuint64_t)(unsafe.Pointer(bp + uintptr(i)*8)) |= uint64(*(*Tuint8_t)(unsafe.Pointer(buf + uintptr(int32(8)*i+int32(7))))) + goto _1 + _1: + ; + i++ + } + for { + if !(i < int32(80)) { + break + } + (*(*[80]Tuint64_t)(unsafe.Pointer(bp)))[i] = _ror1(tls, (*(*[80]Tuint64_t)(unsafe.Pointer(bp)))[i-int32(2)], int32(19)) ^ _ror1(tls, (*(*[80]Tuint64_t)(unsafe.Pointer(bp)))[i-int32(2)], int32(61)) ^ (*(*[80]Tuint64_t)(unsafe.Pointer(bp)))[i-int32(2)]>>Int32FromInt32(6) + (*(*[80]Tuint64_t)(unsafe.Pointer(bp)))[i-int32(7)] + (_ror1(tls, (*(*[80]Tuint64_t)(unsafe.Pointer(bp)))[i-int32(15)], int32(1)) ^ _ror1(tls, (*(*[80]Tuint64_t)(unsafe.Pointer(bp)))[i-int32(15)], int32(8)) ^ (*(*[80]Tuint64_t)(unsafe.Pointer(bp)))[i-int32(15)]>>Int32FromInt32(7)) + (*(*[80]Tuint64_t)(unsafe.Pointer(bp)))[i-int32(16)] + goto _2 + _2: + ; + i++ + } + a = *(*Tuint64_t)(unsafe.Pointer(s + 8)) + b = *(*Tuint64_t)(unsafe.Pointer(s + 8 + 1*8)) + c = *(*Tuint64_t)(unsafe.Pointer(s + 8 + 2*8)) + d = *(*Tuint64_t)(unsafe.Pointer(s + 8 + 3*8)) + e = *(*Tuint64_t)(unsafe.Pointer(s + 8 + 4*8)) + f = *(*Tuint64_t)(unsafe.Pointer(s + 8 + 5*8)) + g = *(*Tuint64_t)(unsafe.Pointer(s + 8 + 6*8)) + h = *(*Tuint64_t)(unsafe.Pointer(s + 8 + 7*8)) + i = 0 + for { + if !(i < int32(80)) { + break + } + t1 = h + (_ror1(tls, e, int32(14)) ^ _ror1(tls, e, int32(18)) ^ _ror1(tls, e, int32(41))) + (g ^ e&(f^g)) + _K1[i] + (*(*[80]Tuint64_t)(unsafe.Pointer(bp)))[i] + t2 = _ror1(tls, a, int32(28)) ^ _ror1(tls, a, int32(34)) ^ _ror1(tls, a, int32(39)) + (a&b | c&(a|b)) + h = g + g = f + f = e + e = d + t1 + d = c + c = b + b = a + a = t1 + t2 + goto _3 + _3: + ; + i++ + } + *(*Tuint64_t)(unsafe.Pointer(s + 8)) += a + *(*Tuint64_t)(unsafe.Pointer(s + 8 + 1*8)) += b + *(*Tuint64_t)(unsafe.Pointer(s + 8 + 2*8)) += c + *(*Tuint64_t)(unsafe.Pointer(s + 8 + 3*8)) += d + *(*Tuint64_t)(unsafe.Pointer(s + 8 + 4*8)) += e + *(*Tuint64_t)(unsafe.Pointer(s + 8 + 5*8)) += f + *(*Tuint64_t)(unsafe.Pointer(s + 8 + 6*8)) += g + *(*Tuint64_t)(unsafe.Pointer(s + 8 + 7*8)) += h +} + +func _pad2(tls *TLS, s uintptr) { + var r, v1 uint32 + _, _ = r, v1 + r = uint32((*Tsha512)(unsafe.Pointer(s)).Flen1 % uint64(128)) + v1 = r + r++ + *(*Tuint8_t)(unsafe.Pointer(s + 72 + uintptr(v1))) = uint8(0x80) + if r > uint32(112) { + Xmemset(tls, s+72+uintptr(r), 0, uint64(uint32(128)-r)) + r = uint32(0) + _processblock2(tls, s, s+72) + } + Xmemset(tls, s+72+uintptr(r), 0, uint64(uint32(120)-r)) + *(*Tuint64_t)(unsafe.Pointer(s)) *= uint64(8) + *(*Tuint8_t)(unsafe.Pointer(s + 72 + 120)) = uint8((*Tsha512)(unsafe.Pointer(s)).Flen1 >> int32(56)) + *(*Tuint8_t)(unsafe.Pointer(s + 72 + 121)) = uint8((*Tsha512)(unsafe.Pointer(s)).Flen1 >> int32(48)) + *(*Tuint8_t)(unsafe.Pointer(s + 72 + 122)) = uint8((*Tsha512)(unsafe.Pointer(s)).Flen1 >> int32(40)) + *(*Tuint8_t)(unsafe.Pointer(s + 72 + 123)) = uint8((*Tsha512)(unsafe.Pointer(s)).Flen1 >> int32(32)) + *(*Tuint8_t)(unsafe.Pointer(s + 72 + 124)) = uint8((*Tsha512)(unsafe.Pointer(s)).Flen1 >> int32(24)) + *(*Tuint8_t)(unsafe.Pointer(s + 72 + 125)) = uint8((*Tsha512)(unsafe.Pointer(s)).Flen1 >> int32(16)) + *(*Tuint8_t)(unsafe.Pointer(s + 72 + 126)) = uint8((*Tsha512)(unsafe.Pointer(s)).Flen1 >> int32(8)) + *(*Tuint8_t)(unsafe.Pointer(s + 72 + 127)) = uint8((*Tsha512)(unsafe.Pointer(s)).Flen1) + _processblock2(tls, s, s+72) +} + +func _sha512_init(tls *TLS, s uintptr) { + (*Tsha512)(unsafe.Pointer(s)).Flen1 = uint64(0) + *(*Tuint64_t)(unsafe.Pointer(s + 8)) = uint64(0x6a09e667f3bcc908) + *(*Tuint64_t)(unsafe.Pointer(s + 8 + 1*8)) = uint64(0xbb67ae8584caa73b) + *(*Tuint64_t)(unsafe.Pointer(s + 8 + 2*8)) = uint64(0x3c6ef372fe94f82b) + *(*Tuint64_t)(unsafe.Pointer(s + 8 + 3*8)) = uint64(0xa54ff53a5f1d36f1) + *(*Tuint64_t)(unsafe.Pointer(s + 8 + 4*8)) = uint64(0x510e527fade682d1) + *(*Tuint64_t)(unsafe.Pointer(s + 8 + 5*8)) = uint64(0x9b05688c2b3e6c1f) + *(*Tuint64_t)(unsafe.Pointer(s + 8 + 6*8)) = uint64(0x1f83d9abfb41bd6b) + *(*Tuint64_t)(unsafe.Pointer(s + 8 + 7*8)) = uint64(0x5be0cd19137e2179) +} + +func _sha512_sum(tls *TLS, s uintptr, md uintptr) { + var i int32 + _ = i + _pad2(tls, s) + i = 0 + for { + if !(i < int32(8)) { + break + } + *(*Tuint8_t)(unsafe.Pointer(md + uintptr(int32(8)*i))) = uint8(*(*Tuint64_t)(unsafe.Pointer(s + 8 + uintptr(i)*8)) >> int32(56)) + *(*Tuint8_t)(unsafe.Pointer(md + uintptr(int32(8)*i+int32(1)))) = uint8(*(*Tuint64_t)(unsafe.Pointer(s + 8 + uintptr(i)*8)) >> int32(48)) + *(*Tuint8_t)(unsafe.Pointer(md + uintptr(int32(8)*i+int32(2)))) = uint8(*(*Tuint64_t)(unsafe.Pointer(s + 8 + uintptr(i)*8)) >> int32(40)) + *(*Tuint8_t)(unsafe.Pointer(md + uintptr(int32(8)*i+int32(3)))) = uint8(*(*Tuint64_t)(unsafe.Pointer(s + 8 + uintptr(i)*8)) >> int32(32)) + *(*Tuint8_t)(unsafe.Pointer(md + uintptr(int32(8)*i+int32(4)))) = uint8(*(*Tuint64_t)(unsafe.Pointer(s + 8 + uintptr(i)*8)) >> int32(24)) + *(*Tuint8_t)(unsafe.Pointer(md + uintptr(int32(8)*i+int32(5)))) = uint8(*(*Tuint64_t)(unsafe.Pointer(s + 8 + uintptr(i)*8)) >> int32(16)) + *(*Tuint8_t)(unsafe.Pointer(md + uintptr(int32(8)*i+int32(6)))) = uint8(*(*Tuint64_t)(unsafe.Pointer(s + 8 + uintptr(i)*8)) >> int32(8)) + *(*Tuint8_t)(unsafe.Pointer(md + uintptr(int32(8)*i+int32(7)))) = uint8(*(*Tuint64_t)(unsafe.Pointer(s + 8 + uintptr(i)*8))) + goto _1 + _1: + ; + i++ + } +} + +func _sha512_update(tls *TLS, s uintptr, m uintptr, len1 uint64) { + var p uintptr + var r uint32 + _, _ = p, r + p = m + r = uint32((*Tsha512)(unsafe.Pointer(s)).Flen1 % uint64(128)) + *(*Tuint64_t)(unsafe.Pointer(s)) += len1 + if r != 0 { + if len1 < uint64(uint32(128)-r) { + Xmemcpy(tls, s+72+uintptr(r), p, len1) + return + } + Xmemcpy(tls, s+72+uintptr(r), p, uint64(uint32(128)-r)) + len1 -= uint64(uint32(128) - r) + p += uintptr(uint32(128) - r) + _processblock2(tls, s, s+72) + } + for { + if !(len1 >= uint64(128)) { + break + } + _processblock2(tls, s, p) + goto _1 + _1: + ; + len1 -= uint64(128) + p += uintptr(128) + } + Xmemcpy(tls, s+72, p, len1) +} + +var _b642 = [65]uint8{'.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'} + +func _to642(tls *TLS, s uintptr, u uint32, n int32) (r uintptr) { + var v1 int32 + var v2 uintptr + _, _ = v1, v2 + for { + n-- + v1 = n + if !(v1 >= 0) { + break + } + v2 = s + s++ + *(*uint8)(unsafe.Pointer(v2)) = _b642[u%uint32(64)] + u /= uint32(64) + } + return s +} + +/* key limit is not part of the original design, added for DoS protection. + * rounds limit has been lowered (versus the reference/spec), also for DoS + * protection. runtime is O(klen^2 + klen*rounds) */ + +// C documentation +// +// /* hash n bytes of the repeated md message digest */ +func _hashmd1(tls *TLS, s uintptr, n uint32, md uintptr) { + var i uint32 + _ = i + i = n + for { + if !(i > uint32(64)) { + break + } + _sha512_update(tls, s, md, uint64(64)) + goto _1 + _1: + ; + i -= uint32(64) + } + _sha512_update(tls, s, md, uint64(i)) +} + +func _sha512crypt(tls *TLS, key uintptr, setting uintptr, output uintptr) (r1 uintptr) { + bp := tls.Alloc(464) + defer tls.Free(464) + var i, klen, r, slen uint32 + var p, salt uintptr + var u uint64 + var _ /* ctx at bp+0 */ Tsha512 + var _ /* end at bp+416 */ uintptr + var _ /* kmd at bp+264 */ [64]uint8 + var _ /* md at bp+200 */ [64]uint8 + var _ /* rounds at bp+392 */ [20]uint8 + var _ /* smd at bp+328 */ [64]uint8 + _, _, _, _, _, _, _ = i, klen, p, r, salt, slen, u + *(*[20]uint8)(unsafe.Pointer(bp + 392)) = [20]uint8{} + /* reject large keys */ + i = uint32(0) + for { + if !(i <= uint32(KEY_MAX1) && *(*uint8)(unsafe.Pointer(key + uintptr(i))) != 0) { + break + } + goto _1 + _1: + ; + i++ + } + if i > uint32(KEY_MAX1) { + return uintptr(0) + } + klen = i + /* setting: $6$rounds=n$salt$ (rounds=n$ and closing $ are optional) */ + if Xstrncmp(tls, setting, __ccgo_ts+181, uint64(3)) != 0 { + return uintptr(0) + } + salt = setting + uintptr(3) + r = uint32(ROUNDS_DEFAULT) + if Xstrncmp(tls, salt, __ccgo_ts+151, Uint64FromInt64(8)-Uint64FromInt32(1)) == 0 { + /* + * this is a deviation from the reference: + * bad rounds setting is rejected if it is + * - empty + * - unterminated (missing '$') + * - begins with anything but a decimal digit + * the reference implementation treats these bad + * rounds as part of the salt or parse them with + * strtoul semantics which may cause problems + * including non-portable hashes that depend on + * the host's value of ULONG_MAX. + */ + salt += uintptr(Uint64FromInt64(8) - Uint64FromInt32(1)) + if !(BoolInt32(uint32(*(*uint8)(unsafe.Pointer(salt)))-Uint32FromUint8('0') < Uint32FromInt32(10)) != 0) { + return uintptr(0) + } + u = Xstrtoul(tls, salt, bp+416, int32(10)) + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 416))))) != int32('$') { + return uintptr(0) + } + salt = *(*uintptr)(unsafe.Pointer(bp + 416)) + uintptr(1) + if u < uint64(ROUNDS_MIN) { + r = uint32(ROUNDS_MIN) + } else { + if u > uint64(ROUNDS_MAX) { + return uintptr(0) + } else { + r = uint32(u) + } + } + /* needed when rounds is zero prefixed or out of bounds */ + Xsprintf(tls, bp+392, __ccgo_ts+159, VaList(bp+432, r)) + } + i = uint32(0) + for { + if !(i < uint32(SALT_MAX1) && *(*uint8)(unsafe.Pointer(salt + uintptr(i))) != 0 && int32(*(*uint8)(unsafe.Pointer(salt + uintptr(i)))) != int32('$')) { + break + } + /* reject characters that interfere with /etc/shadow parsing */ + if int32(*(*uint8)(unsafe.Pointer(salt + uintptr(i)))) == int32('\n') || int32(*(*uint8)(unsafe.Pointer(salt + uintptr(i)))) == int32(':') { + return uintptr(0) + } + goto _2 + _2: + ; + i++ + } + slen = i + /* B = sha(key salt key) */ + _sha512_init(tls, bp) + _sha512_update(tls, bp, key, uint64(klen)) + _sha512_update(tls, bp, salt, uint64(slen)) + _sha512_update(tls, bp, key, uint64(klen)) + _sha512_sum(tls, bp, bp+200) + /* A = sha(key salt repeat-B alternate-B-key) */ + _sha512_init(tls, bp) + _sha512_update(tls, bp, key, uint64(klen)) + _sha512_update(tls, bp, salt, uint64(slen)) + _hashmd1(tls, bp, klen, bp+200) + i = klen + for { + if !(i > uint32(0)) { + break + } + if i&uint32(1) != 0 { + _sha512_update(tls, bp, bp+200, uint64(64)) + } else { + _sha512_update(tls, bp, key, uint64(klen)) + } + goto _3 + _3: + ; + i >>= uint32(1) + } + _sha512_sum(tls, bp, bp+200) + /* DP = sha(repeat-key), this step takes O(klen^2) time */ + _sha512_init(tls, bp) + i = uint32(0) + for { + if !(i < klen) { + break + } + _sha512_update(tls, bp, key, uint64(klen)) + goto _4 + _4: + ; + i++ + } + _sha512_sum(tls, bp, bp+264) + /* DS = sha(repeat-salt) */ + _sha512_init(tls, bp) + i = uint32(0) + for { + if !(i < uint32(int32(16)+int32((*(*[64]uint8)(unsafe.Pointer(bp + 200)))[0]))) { + break + } + _sha512_update(tls, bp, salt, uint64(slen)) + goto _5 + _5: + ; + i++ + } + _sha512_sum(tls, bp, bp+328) + /* iterate A = f(A,DP,DS), this step takes O(rounds*klen) time */ + i = uint32(0) + for { + if !(i < r) { + break + } + _sha512_init(tls, bp) + if i%uint32(2) != 0 { + _hashmd1(tls, bp, klen, bp+264) + } else { + _sha512_update(tls, bp, bp+200, uint64(64)) + } + if i%uint32(3) != 0 { + _sha512_update(tls, bp, bp+328, uint64(slen)) + } + if i%uint32(7) != 0 { + _hashmd1(tls, bp, klen, bp+264) + } + if i%uint32(2) != 0 { + _sha512_update(tls, bp, bp+200, uint64(64)) + } else { + _hashmd1(tls, bp, klen, bp+264) + } + _sha512_sum(tls, bp, bp+200) + goto _6 + _6: + ; + i++ + } + /* output is $6$rounds=n$salt$hash */ + p = output + p += uintptr(Xsprintf(tls, p, __ccgo_ts+185, VaList(bp+432, bp+392, slen, salt))) + i = uint32(0) + for { + if !(i < uint32(21)) { + break + } + p = _to642(tls, p, uint32(int32((*(*[64]uint8)(unsafe.Pointer(bp + 200)))[*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_perm2)) + uintptr(i)*3))])< %v", r) }() + } + bp := tls.Alloc(128) + defer tls.Free(128) + var p, q uintptr + var _ /* testbuf at bp+0 */ [128]uint8 + _, _ = p, q + p = _sha512crypt(tls, key, setting, output) + /* self test and stack cleanup */ + q = _sha512crypt(tls, uintptr(unsafe.Pointer(&_testkey2)), uintptr(unsafe.Pointer(&_testsetting2)), bp) + if !(p != 0) || q != bp || Xmemcmp(tls, bp, uintptr(unsafe.Pointer(&_testhash2)), uint64(116)) != 0 { + return __ccgo_ts + 70 + } + return p +} + +var _testkey2 = [18]uint8{'X', 'y', '0', '1', '@', '#', 1, 2, 128, 127, 255, 13, 10, 129, 9, ' ', '!'} + +var _testsetting2 = [30]uint8{'$', '6', '$', 'r', 'o', 'u', 'n', 'd', 's', '=', '1', '2', '3', '4', '$', 'a', 'b', 'c', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '$'} + +var _testhash2 = [116]uint8{'$', '6', '$', 'r', 'o', 'u', 'n', 'd', 's', '=', '1', '2', '3', '4', '$', 'a', 'b', 'c', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '$', 'B', 'C', 'p', 't', '8', 'z', 'L', 'r', 'c', '/', 'R', 'c', 'y', 'u', 'X', 'm', 'C', 'D', 'O', 'E', '1', 'A', 'L', 'q', 'M', 'X', 'B', '2', 'M', 'H', '6', 'n', '1', 'g', '8', '9', '1', 'H', 'h', 'F', 'j', '8', '.', 'w', '7', 'L', 'x', 'G', 'v', '.', 'F', 'T', 'k', 'q', 'q', '6', 'V', 'x', 'c', '/', 'k', 'm', '3', 'Y', '0', 'j', 'E', '0', 'j', '2', '4', 'j', 'Y', '5', 'P', 'I', 'v', '/', 'o', 'O', 'u', '6', 'r', 'e', 'g', '1'} + +var ___encrypt_key Texpanded_key + +func Xsetkey(tls *TLS, key uintptr) { + if __ccgo_strace { + trc("tls=%v key=%v, (%v:)", tls, key, origin(2)) + } + bp := tls.Alloc(16) + defer tls.Free(16) + var i, j int32 + var p3 uintptr + var _ /* bkey at bp+0 */ [8]uint8 + _, _, _ = i, j, p3 + i = 0 + for { + if !(i < int32(8)) { + break + } + (*(*[8]uint8)(unsafe.Pointer(bp)))[i] = uint8(0) + j = int32(7) + for { + if !(j >= 0) { + break + } + p3 = bp + uintptr(i) + *(*uint8)(unsafe.Pointer(p3)) = uint8(uint32(*(*uint8)(unsafe.Pointer(p3))) | uint32(int32(*(*uint8)(unsafe.Pointer(key)))&Int32FromInt32(1))<= 0) { + break + } + *(*Tuint32_t)(unsafe.Pointer(bp + 128 + uintptr(i)*4)) |= uint32(int32(*(*uint8)(unsafe.Pointer(p)))&Int32FromInt32(1)) << j + goto _2 + _2: + ; + j-- + p++ + } + goto _1 + _1: + ; + i++ + } + key = uintptr(unsafe.Pointer(&___encrypt_key)) + if edflag != 0 { + key = bp + i = 0 + for { + if !(i < int32(16)) { + break + } + *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(i)*4)) = *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&___encrypt_key)) + uintptr(int32(15)-i)*4)) + *(*Tuint32_t)(unsafe.Pointer(bp + 64 + uintptr(i)*4)) = *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&___encrypt_key)) + 64 + uintptr(int32(15)-i)*4)) + goto _3 + _3: + ; + i++ + } + } + X__do_des(tls, (*(*[2]Tuint32_t)(unsafe.Pointer(bp + 128)))[0], (*(*[2]Tuint32_t)(unsafe.Pointer(bp + 128)))[int32(1)], bp+128, bp+128+uintptr(1)*4, uint32(1), uint32(0), key) + p = block + i = 0 + for { + if !(i < int32(2)) { + break + } + j = int32(31) + for { + if !(j >= 0) { + break + } + v6 = p + p++ + *(*uint8)(unsafe.Pointer(v6)) = uint8((*(*[2]Tuint32_t)(unsafe.Pointer(bp + 128)))[i] >> j & uint32(1)) + goto _5 + _5: + ; + j-- + } + goto _4 + _4: + ; + i++ + } +} + +var _table = [384]uint16{ + 128: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 129: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 130: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 131: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 132: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 133: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 134: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 135: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 136: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 137: uint16((Int32FromInt32(0x320)/Int32FromInt32(256) | Int32FromInt32(0x320)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 138: uint16((Int32FromInt32(0x220)/Int32FromInt32(256) | Int32FromInt32(0x220)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 139: uint16((Int32FromInt32(0x220)/Int32FromInt32(256) | Int32FromInt32(0x220)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 140: uint16((Int32FromInt32(0x220)/Int32FromInt32(256) | Int32FromInt32(0x220)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 141: uint16((Int32FromInt32(0x220)/Int32FromInt32(256) | Int32FromInt32(0x220)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 142: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 143: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 144: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 145: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 146: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 147: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 148: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 149: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 150: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 151: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 152: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 153: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 154: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 155: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 156: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 157: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 158: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 159: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 160: uint16((Int32FromInt32(0x160)/Int32FromInt32(256) | Int32FromInt32(0x160)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 161: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 162: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 163: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 164: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 165: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 166: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 167: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 168: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 169: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 170: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 171: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 172: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 173: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 174: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 175: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 176: uint16((Int32FromInt32(0x8d8)/Int32FromInt32(256) | Int32FromInt32(0x8d8)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 177: uint16((Int32FromInt32(0x8d8)/Int32FromInt32(256) | Int32FromInt32(0x8d8)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 178: uint16((Int32FromInt32(0x8d8)/Int32FromInt32(256) | Int32FromInt32(0x8d8)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 179: uint16((Int32FromInt32(0x8d8)/Int32FromInt32(256) | Int32FromInt32(0x8d8)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 180: uint16((Int32FromInt32(0x8d8)/Int32FromInt32(256) | Int32FromInt32(0x8d8)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 181: uint16((Int32FromInt32(0x8d8)/Int32FromInt32(256) | Int32FromInt32(0x8d8)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 182: uint16((Int32FromInt32(0x8d8)/Int32FromInt32(256) | Int32FromInt32(0x8d8)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 183: uint16((Int32FromInt32(0x8d8)/Int32FromInt32(256) | Int32FromInt32(0x8d8)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 184: uint16((Int32FromInt32(0x8d8)/Int32FromInt32(256) | Int32FromInt32(0x8d8)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 185: uint16((Int32FromInt32(0x8d8)/Int32FromInt32(256) | Int32FromInt32(0x8d8)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 186: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 187: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 188: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 189: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 190: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 191: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 192: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 193: uint16((Int32FromInt32(0x8d5)/Int32FromInt32(256) | Int32FromInt32(0x8d5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 194: uint16((Int32FromInt32(0x8d5)/Int32FromInt32(256) | Int32FromInt32(0x8d5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 195: uint16((Int32FromInt32(0x8d5)/Int32FromInt32(256) | Int32FromInt32(0x8d5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 196: uint16((Int32FromInt32(0x8d5)/Int32FromInt32(256) | Int32FromInt32(0x8d5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 197: uint16((Int32FromInt32(0x8d5)/Int32FromInt32(256) | Int32FromInt32(0x8d5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 198: uint16((Int32FromInt32(0x8d5)/Int32FromInt32(256) | Int32FromInt32(0x8d5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 199: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 200: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 201: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 202: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 203: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 204: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 205: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 206: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 207: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 208: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 209: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 210: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 211: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 212: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 213: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 214: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 215: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 216: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 217: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 218: uint16((Int32FromInt32(0x8c5)/Int32FromInt32(256) | Int32FromInt32(0x8c5)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 219: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 220: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 221: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 222: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 223: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 224: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 225: uint16((Int32FromInt32(0x8d6)/Int32FromInt32(256) | Int32FromInt32(0x8d6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 226: uint16((Int32FromInt32(0x8d6)/Int32FromInt32(256) | Int32FromInt32(0x8d6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 227: uint16((Int32FromInt32(0x8d6)/Int32FromInt32(256) | Int32FromInt32(0x8d6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 228: uint16((Int32FromInt32(0x8d6)/Int32FromInt32(256) | Int32FromInt32(0x8d6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 229: uint16((Int32FromInt32(0x8d6)/Int32FromInt32(256) | Int32FromInt32(0x8d6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 230: uint16((Int32FromInt32(0x8d6)/Int32FromInt32(256) | Int32FromInt32(0x8d6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 231: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 232: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 233: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 234: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 235: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 236: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 237: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 238: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 239: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 240: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 241: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 242: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 243: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 244: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 245: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 246: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 247: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 248: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 249: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 250: uint16((Int32FromInt32(0x8c6)/Int32FromInt32(256) | Int32FromInt32(0x8c6)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 251: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 252: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 253: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 254: uint16((Int32FromInt32(0x4c0)/Int32FromInt32(256) | Int32FromInt32(0x4c0)*Int32FromInt32(256)) % Int32FromInt32(65536)), + 255: uint16((Int32FromInt32(0x200)/Int32FromInt32(256) | Int32FromInt32(0x200)*Int32FromInt32(256)) % Int32FromInt32(65536)), +} + +var _ptable = uintptr(unsafe.Pointer(&_table)) + uintptr(128)*2 + +func X__ctype_b_loc(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uintptr(unsafe.Pointer(&_ptable)) +} + +const CLOCKS_PER_SEC = 1000000 +const CLOCK_BOOTTIME = 7 +const CLOCK_BOOTTIME_ALARM = 9 +const CLOCK_MONOTONIC = 1 +const CLOCK_MONOTONIC_COARSE = 6 +const CLOCK_MONOTONIC_RAW = 4 +const CLOCK_PROCESS_CPUTIME_ID = 2 +const CLOCK_REALTIME = 0 +const CLOCK_REALTIME_ALARM = 8 +const CLOCK_REALTIME_COARSE = 5 +const CLOCK_SGI_CYCLE = 10 +const CLOCK_TAI = 11 +const CLOCK_THREAD_CPUTIME_ID = 3 +const C_LOCALE = 0 +const DEFAULT_GUARD_MAX = 1048576 +const DEFAULT_GUARD_SIZE = 8192 +const DEFAULT_STACK_MAX = 8388608 +const DEFAULT_STACK_SIZE = 131072 +const DTP_OFFSET = 0 +const FUTEX_CLOCK_REALTIME = 256 +const FUTEX_CMP_REQUEUE = 4 +const FUTEX_FD = 2 +const FUTEX_LOCK_PI = 6 +const FUTEX_PRIVATE = 128 +const FUTEX_REQUEUE = 3 +const FUTEX_TRYLOCK_PI = 8 +const FUTEX_UNLOCK_PI = 7 +const FUTEX_WAIT = 0 +const FUTEX_WAIT_BITSET = 9 +const FUTEX_WAKE = 1 +const FUTEX_WAKE_OP = 5 +const GAP_ABOVE_TP = 16 +const LC_ALL = 6 +const LC_ALL_MASK = 2147483647 +const LC_COLLATE = 3 +const LC_COLLATE_MASK = 8 +const LC_CTYPE = 0 +const LC_CTYPE_MASK = 1 +const LC_GLOBAL_LOCALE = -1 +const LC_MESSAGES = 5 +const LC_MESSAGES_MASK = 32 +const LC_MONETARY = 4 +const LC_MONETARY_MASK = 16 +const LC_NUMERIC = 1 +const LC_NUMERIC_MASK = 2 +const LC_TIME = 2 +const LC_TIME_MASK = 4 +const LOCALE_NAME_MAX = 23 +const MAP_ANON = 32 +const MAP_ANONYMOUS = 32 +const MAP_DENYWRITE = 2048 +const MAP_EXECUTABLE = 4096 +const MAP_FAILED = -1 +const MAP_FILE = 0 +const MAP_FIXED = 16 +const MAP_FIXED_NOREPLACE = 1048576 +const MAP_GROWSDOWN = 256 +const MAP_HUGETLB = 262144 +const MAP_HUGE_16GB = 2281701376 +const MAP_HUGE_16KB = 939524096 +const MAP_HUGE_16MB = 1610612736 +const MAP_HUGE_1GB = 2013265920 +const MAP_HUGE_1MB = 1342177280 +const MAP_HUGE_256MB = 1879048192 +const MAP_HUGE_2GB = 2080374784 +const MAP_HUGE_2MB = 1409286144 +const MAP_HUGE_32MB = 1677721600 +const MAP_HUGE_512KB = 1275068416 +const MAP_HUGE_512MB = 1946157056 +const MAP_HUGE_64KB = 1073741824 +const MAP_HUGE_8MB = 1543503872 +const MAP_HUGE_MASK = 63 +const MAP_HUGE_SHIFT = 26 +const MAP_LOCKED = 8192 +const MAP_NONBLOCK = 65536 +const MAP_NORESERVE = 16384 +const MAP_POPULATE = 32768 +const MAP_PRIVATE = 2 +const MAP_SHARED = 1 +const MAP_SHARED_VALIDATE = 3 +const MAP_STACK = 131072 +const MAP_SYNC = 524288 +const MAP_TYPE = 15 +const MCL_CURRENT = 1 +const MCL_FUTURE = 2 +const MCL_ONFAULT = 4 +const MC_PC = 0 +const MS_ASYNC = 1 +const MS_INVALIDATE = 2 +const MS_SYNC = 4 +const POSIX_MADV_DONTNEED = 4 +const POSIX_MADV_NORMAL = 0 +const POSIX_MADV_RANDOM = 1 +const POSIX_MADV_SEQUENTIAL = 2 +const POSIX_MADV_WILLNEED = 3 +const PROT_BTI = 16 +const PROT_EXEC = 4 +const PROT_GROWSDOWN = 16777216 +const PROT_GROWSUP = 33554432 +const PROT_MTE = 32 +const PROT_NONE = 0 +const PROT_READ = 1 +const PROT_WRITE = 2 +const PTHREAD_BARRIER_SERIAL_THREAD = -1 +const PTHREAD_CANCELED = -1 +const PTHREAD_CANCEL_ASYNCHRONOUS = 1 +const PTHREAD_CANCEL_DEFERRED = 0 +const PTHREAD_CANCEL_DISABLE = 1 +const PTHREAD_CANCEL_ENABLE = 0 +const PTHREAD_CANCEL_MASKED = 2 +const PTHREAD_CREATE_DETACHED = 1 +const PTHREAD_CREATE_JOINABLE = 0 +const PTHREAD_EXPLICIT_SCHED = 1 +const PTHREAD_INHERIT_SCHED = 0 +const PTHREAD_MUTEX_DEFAULT = 0 +const PTHREAD_MUTEX_ERRORCHECK = 2 +const PTHREAD_MUTEX_NORMAL = 0 +const PTHREAD_MUTEX_RECURSIVE = 1 +const PTHREAD_MUTEX_ROBUST = 1 +const PTHREAD_MUTEX_STALLED = 0 +const PTHREAD_ONCE_INIT = 0 +const PTHREAD_PRIO_INHERIT = 1 +const PTHREAD_PRIO_NONE = 0 +const PTHREAD_PRIO_PROTECT = 2 +const PTHREAD_PROCESS_PRIVATE = 0 +const PTHREAD_PROCESS_SHARED = 1 +const PTHREAD_SCOPE_PROCESS = 1 +const PTHREAD_SCOPE_SYSTEM = 0 +const SCHED_BATCH = 3 +const SCHED_DEADLINE = 6 +const SCHED_FIFO = 1 +const SCHED_IDLE = 5 +const SCHED_OTHER = 0 +const SCHED_RESET_ON_FORK = 1073741824 +const SCHED_RR = 2 +const SIGCANCEL = 33 +const SIGSYNCCALL = 34 +const SIGTIMER = 32 +const TIMER_ABSTIME = 1 +const TIME_UTC = 1 +const TP_OFFSET = 0 +const UTF8_LOCALE = 0 +const __CCGO_SIZEOF_GO_MUTEX = 8 +const __SU = 0 +const a_spin = 0 +const pthread = 0 +const tls_mod_off_t = 0 + +type Tlconv = struct { + Fdecimal_point uintptr + Fthousands_sep uintptr + Fgrouping uintptr + Fint_curr_symbol uintptr + Fcurrency_symbol uintptr + Fmon_decimal_point uintptr + Fmon_thousands_sep uintptr + Fmon_grouping uintptr + Fpositive_sign uintptr + Fnegative_sign uintptr + Fint_frac_digits uint8 + Ffrac_digits uint8 + Fp_cs_precedes uint8 + Fp_sep_by_space uint8 + Fn_cs_precedes uint8 + Fn_sep_by_space uint8 + Fp_sign_posn uint8 + Fn_sign_posn uint8 + Fint_p_cs_precedes uint8 + Fint_p_sep_by_space uint8 + Fint_n_cs_precedes uint8 + Fint_n_sep_by_space uint8 + Fint_p_sign_posn uint8 + Fint_n_sign_posn uint8 +} + +type t__locale_map = struct { + Fmap1 uintptr + Fmap_size Tsize_t + Fname [24]uint8 + Fnext uintptr +} + +type Tclockid_t = int32 + +type t__pthread = struct { + Fself uintptr + Fprev uintptr + Fnext uintptr + Fsysinfo Tuintptr_t + Ftid int32 + Ferrno_val int32 + Fdetach_state int32 + Fcancel int32 + Fcanceldisable uint8 + Fcancelasync uint8 + F__ccgo50 uint8 + Fmap_base uintptr + Fmap_size Tsize_t + Fstack uintptr + Fstack_size Tsize_t + Fguard_size Tsize_t + Fresult uintptr + Fcancelbuf uintptr + Ftsd uintptr + Frobust_list struct { + Fhead uintptr + Foff int64 + Fpending uintptr + } + Fh_errno_val int32 + Ftimer_id int32 + Flocale Tlocale_t + Fkilllock [1]int32 + Fdlerror_buf uintptr + Fstdio_locks uintptr + F__ccgo_join_mutex [1]int64 + Fcanary Tuintptr_t + Fdtv uintptr +} + +type Tpthread_once_t = int32 + +type Tpthread_key_t = uint32 + +type Tpthread_spinlock_t = int32 + +type Tpthread_mutexattr_t = struct { + F__attr uint32 +} + +type Tpthread_condattr_t = struct { + F__attr uint32 +} + +type Tpthread_barrierattr_t = struct { + F__attr uint32 +} + +type Tpthread_rwlockattr_t = struct { + F__attr [2]uint32 +} + +type Tpthread_mutex_t = struct { + F__u struct { + F__vi [0][10]int32 + F__p [0][5]uintptr + F__i [10]int32 + } +} + +type Tpthread_cond_t = struct { + F__u struct { + F__vi [0][12]int32 + F__p [0][6]uintptr + F__i [12]int32 + } +} + +type Tpthread_rwlock_t = struct { + F__u struct { + F__vi [0][14]int32 + F__p [0][7]uintptr + F__i [14]int32 + } +} + +type Tpthread_barrier_t = struct { + F__u struct { + F__vi [0][8]int32 + F__p [0][4]uintptr + F__i [8]int32 + } +} + +type Tsched_param = struct { + Fsched_priority int32 + F__reserved1 int32 + F__reserved2 [2]struct { + F__reserved1 Ttime_t + F__reserved2 int64 + } + F__reserved3 int32 +} + +type Ttimer_t = uintptr + +type Ttm = struct { + Ftm_sec int32 + Ftm_min int32 + Ftm_hour int32 + Ftm_mday int32 + Ftm_mon int32 + Ftm_year int32 + Ftm_wday int32 + Ftm_yday int32 + Ftm_isdst int32 + F__tm_gmtoff int64 + F__tm_zone uintptr +} + +type Titimerspec = struct { + Fit_interval Ttimespec + Fit_value Ttimespec +} + +type t__ptcb = struct { + F__f uintptr + F__x uintptr + F__next uintptr +} + +type Tmode_t = uint32 + +const _DT_EXITED = 0 +const _DT_EXITING = 1 +const _DT_JOINABLE = 2 +const _DT_DETACHED = 3 + +func X__ctype_get_mb_cur_max(tls *TLS) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 int32 + _ = v1 + if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale)) != 0) { + v1 = int32(4) + } else { + v1 = int32(1) + } + return uint64(v1) +} + +var _table1 = [384]Tint32_t{ + 129: int32(1), + 130: int32(2), + 131: int32(3), + 132: int32(4), + 133: int32(5), + 134: int32(6), + 135: int32(7), + 136: int32(8), + 137: int32(9), + 138: int32(10), + 139: int32(11), + 140: int32(12), + 141: int32(13), + 142: int32(14), + 143: int32(15), + 144: int32(16), + 145: int32(17), + 146: int32(18), + 147: int32(19), + 148: int32(20), + 149: int32(21), + 150: int32(22), + 151: int32(23), + 152: int32(24), + 153: int32(25), + 154: int32(26), + 155: int32(27), + 156: int32(28), + 157: int32(29), + 158: int32(30), + 159: int32(31), + 160: int32(32), + 161: int32(33), + 162: int32(34), + 163: int32(35), + 164: int32(36), + 165: int32(37), + 166: int32(38), + 167: int32(39), + 168: int32(40), + 169: int32(41), + 170: int32(42), + 171: int32(43), + 172: int32(44), + 173: int32(45), + 174: int32(46), + 175: int32(47), + 176: int32(48), + 177: int32(49), + 178: int32(50), + 179: int32(51), + 180: int32(52), + 181: int32(53), + 182: int32(54), + 183: int32(55), + 184: int32(56), + 185: int32(57), + 186: int32(58), + 187: int32(59), + 188: int32(60), + 189: int32(61), + 190: int32(62), + 191: int32(63), + 192: int32(64), + 193: int32('a'), + 194: int32('b'), + 195: int32('c'), + 196: int32('d'), + 197: int32('e'), + 198: int32('f'), + 199: int32('g'), + 200: int32('h'), + 201: int32('i'), + 202: int32('j'), + 203: int32('k'), + 204: int32('l'), + 205: int32('m'), + 206: int32('n'), + 207: int32('o'), + 208: int32('p'), + 209: int32('q'), + 210: int32('r'), + 211: int32('s'), + 212: int32('t'), + 213: int32('u'), + 214: int32('v'), + 215: int32('w'), + 216: int32('x'), + 217: int32('y'), + 218: int32('z'), + 219: int32(91), + 220: int32(92), + 221: int32(93), + 222: int32(94), + 223: int32(95), + 224: int32(96), + 225: int32('a'), + 226: int32('b'), + 227: int32('c'), + 228: int32('d'), + 229: int32('e'), + 230: int32('f'), + 231: int32('g'), + 232: int32('h'), + 233: int32('i'), + 234: int32('j'), + 235: int32('k'), + 236: int32('l'), + 237: int32('m'), + 238: int32('n'), + 239: int32('o'), + 240: int32('p'), + 241: int32('q'), + 242: int32('r'), + 243: int32('s'), + 244: int32('t'), + 245: int32('u'), + 246: int32('v'), + 247: int32('w'), + 248: int32('x'), + 249: int32('y'), + 250: int32('z'), + 251: int32(123), + 252: int32(124), + 253: int32(125), + 254: int32(126), + 255: int32(127), +} + +var _ptable1 = uintptr(unsafe.Pointer(&_table1)) + uintptr(128)*4 + +func X__ctype_tolower_loc(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uintptr(unsafe.Pointer(&_ptable1)) +} + +var _table2 = [384]Tint32_t{ + 129: int32(1), + 130: int32(2), + 131: int32(3), + 132: int32(4), + 133: int32(5), + 134: int32(6), + 135: int32(7), + 136: int32(8), + 137: int32(9), + 138: int32(10), + 139: int32(11), + 140: int32(12), + 141: int32(13), + 142: int32(14), + 143: int32(15), + 144: int32(16), + 145: int32(17), + 146: int32(18), + 147: int32(19), + 148: int32(20), + 149: int32(21), + 150: int32(22), + 151: int32(23), + 152: int32(24), + 153: int32(25), + 154: int32(26), + 155: int32(27), + 156: int32(28), + 157: int32(29), + 158: int32(30), + 159: int32(31), + 160: int32(32), + 161: int32(33), + 162: int32(34), + 163: int32(35), + 164: int32(36), + 165: int32(37), + 166: int32(38), + 167: int32(39), + 168: int32(40), + 169: int32(41), + 170: int32(42), + 171: int32(43), + 172: int32(44), + 173: int32(45), + 174: int32(46), + 175: int32(47), + 176: int32(48), + 177: int32(49), + 178: int32(50), + 179: int32(51), + 180: int32(52), + 181: int32(53), + 182: int32(54), + 183: int32(55), + 184: int32(56), + 185: int32(57), + 186: int32(58), + 187: int32(59), + 188: int32(60), + 189: int32(61), + 190: int32(62), + 191: int32(63), + 192: int32(64), + 193: int32('A'), + 194: int32('B'), + 195: int32('C'), + 196: int32('D'), + 197: int32('E'), + 198: int32('F'), + 199: int32('G'), + 200: int32('H'), + 201: int32('I'), + 202: int32('J'), + 203: int32('K'), + 204: int32('L'), + 205: int32('M'), + 206: int32('N'), + 207: int32('O'), + 208: int32('P'), + 209: int32('Q'), + 210: int32('R'), + 211: int32('S'), + 212: int32('T'), + 213: int32('U'), + 214: int32('V'), + 215: int32('W'), + 216: int32('X'), + 217: int32('Y'), + 218: int32('Z'), + 219: int32(91), + 220: int32(92), + 221: int32(93), + 222: int32(94), + 223: int32(95), + 224: int32(96), + 225: int32('A'), + 226: int32('B'), + 227: int32('C'), + 228: int32('D'), + 229: int32('E'), + 230: int32('F'), + 231: int32('G'), + 232: int32('H'), + 233: int32('I'), + 234: int32('J'), + 235: int32('K'), + 236: int32('L'), + 237: int32('M'), + 238: int32('N'), + 239: int32('O'), + 240: int32('P'), + 241: int32('Q'), + 242: int32('R'), + 243: int32('S'), + 244: int32('T'), + 245: int32('U'), + 246: int32('V'), + 247: int32('W'), + 248: int32('X'), + 249: int32('Y'), + 250: int32('Z'), + 251: int32(123), + 252: int32(124), + 253: int32(125), + 254: int32(126), + 255: int32(127), +} + +var _ptable2 = uintptr(unsafe.Pointer(&_table2)) + uintptr(128)*4 + +func X__ctype_toupper_loc(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uintptr(unsafe.Pointer(&_ptable2)) +} + +func Xisalnum(tls *TLS, c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(BoolInt32(uint32(c)|uint32(32)-uint32('a') < uint32(26)) != 0 || BoolInt32(uint32(c)-uint32('0') < uint32(10)) != 0) +} + +func X__isalnum_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xisalnum(tls, c) +} + +func Xisalnum_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__isalnum_l(tls, c, l) +} + +func Xisalpha(tls *TLS, c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(uint32(c)|uint32(32)-uint32('a') < uint32(26)) +} + +func X__isalpha_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xisalpha(tls, c) +} + +func Xisalpha_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__isalpha_l(tls, c, l) +} + +func Xisascii(tls *TLS, c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(!(c & ^Int32FromInt32(0x7f) != 0)) +} + +func Xisblank(tls *TLS, c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(c == int32(' ') || c == int32('\t')) +} + +func X__isblank_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xisblank(tls, c) +} + +func Xisblank_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__isblank_l(tls, c, l) +} + +func Xiscntrl(tls *TLS, c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(uint32(c) < uint32(0x20) || c == int32(0x7f)) +} + +func X__iscntrl_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xiscntrl(tls, c) +} + +func Xiscntrl_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__iscntrl_l(tls, c, l) +} + +func Xisdigit(tls *TLS, c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(uint32(c)-uint32('0') < uint32(10)) +} + +func X__isdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xisdigit(tls, c) +} + +func Xisdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__isdigit_l(tls, c, l) +} + +func Xisgraph(tls *TLS, c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(uint32(c)-uint32(0x21) < uint32(0x5e)) +} + +func X__isgraph_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xisgraph(tls, c) +} + +func Xisgraph_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__isgraph_l(tls, c, l) +} + +func Xislower(tls *TLS, c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(uint32(c)-uint32('a') < uint32(26)) +} + +func X__islower_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xislower(tls, c) +} + +func Xislower_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__islower_l(tls, c, l) +} + +func Xisprint(tls *TLS, c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(uint32(c)-uint32(0x20) < uint32(0x5f)) +} + +func X__isprint_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xisprint(tls, c) +} + +func Xisprint_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__isprint_l(tls, c, l) +} + +func Xispunct(tls *TLS, c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(BoolInt32(uint32(c)-uint32(0x21) < uint32(0x5e)) != 0 && !(Xisalnum(tls, c) != 0)) +} + +func X__ispunct_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xispunct(tls, c) +} + +func Xispunct_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__ispunct_l(tls, c, l) +} + +func Xisspace(tls *TLS, c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(c == int32(' ') || uint32(c)-uint32('\t') < uint32(5)) +} + +func X__isspace_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xisspace(tls, c) +} + +func Xisspace_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__isspace_l(tls, c, l) +} + +func Xisupper(tls *TLS, c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(uint32(c)-uint32('A') < uint32(26)) +} + +func X__isupper_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xisupper(tls, c) +} + +func Xisupper_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__isupper_l(tls, c, l) +} + +type Twint_t = uint32 + +type Twctype_t = uint64 + +type Twctrans_t = uintptr + +func Xiswalnum(tls *TLS, wc Twint_t) (r int32) { + if __ccgo_strace { + trc("tls=%v wc=%v, (%v:)", tls, wc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(BoolInt32(wc-uint32('0') < uint32(10)) != 0 || Xiswalpha(tls, wc) != 0) +} + +func X__iswalnum_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xiswalnum(tls, c) +} + +func Xiswalnum_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__iswalnum_l(tls, c, l) +} + +var _table3 = [3904]uint8{ + 0: uint8(18), + 1: uint8(17), + 2: uint8(19), + 3: uint8(20), + 4: uint8(21), + 5: uint8(22), + 6: uint8(23), + 7: uint8(24), + 8: uint8(25), + 9: uint8(26), + 10: uint8(27), + 11: uint8(28), + 12: uint8(29), + 13: uint8(30), + 14: uint8(31), + 15: uint8(32), + 16: uint8(33), + 17: uint8(17), + 18: uint8(34), + 19: uint8(35), + 20: uint8(36), + 21: uint8(17), + 22: uint8(37), + 23: uint8(38), + 24: uint8(39), + 25: uint8(40), + 26: uint8(41), + 27: uint8(42), + 28: uint8(43), + 29: uint8(44), + 30: uint8(17), + 31: uint8(45), + 32: uint8(46), + 33: uint8(47), + 34: uint8(16), + 35: uint8(16), + 36: uint8(48), + 37: uint8(16), + 38: uint8(16), + 39: uint8(16), + 40: uint8(16), + 41: uint8(16), + 42: uint8(16), + 43: uint8(16), + 44: uint8(49), + 45: uint8(50), + 46: uint8(51), + 47: uint8(16), + 48: uint8(52), + 49: uint8(53), + 50: uint8(16), + 51: uint8(16), + 52: uint8(17), + 53: uint8(17), + 54: uint8(17), + 55: uint8(17), + 56: uint8(17), + 57: uint8(17), + 58: uint8(17), + 59: uint8(17), + 60: uint8(17), + 61: uint8(17), + 62: uint8(17), + 63: uint8(17), + 64: uint8(17), + 65: uint8(17), + 66: uint8(17), + 67: uint8(17), + 68: uint8(17), + 69: uint8(17), + 70: uint8(17), + 71: uint8(17), + 72: uint8(17), + 73: uint8(17), + 74: uint8(17), + 75: uint8(17), + 76: uint8(17), + 77: uint8(54), + 78: uint8(17), + 79: uint8(17), + 80: uint8(17), + 81: uint8(17), + 82: uint8(17), + 83: uint8(17), + 84: uint8(17), + 85: uint8(17), + 86: uint8(17), + 87: uint8(17), + 88: uint8(17), + 89: uint8(17), + 90: uint8(17), + 91: uint8(17), + 92: uint8(17), + 93: uint8(17), + 94: uint8(17), + 95: uint8(17), + 96: uint8(17), + 97: uint8(17), + 98: uint8(17), + 99: uint8(17), + 100: uint8(17), + 101: uint8(17), + 102: uint8(17), + 103: uint8(17), + 104: uint8(17), + 105: uint8(17), + 106: uint8(17), + 107: uint8(17), + 108: uint8(17), + 109: uint8(17), + 110: uint8(17), + 111: uint8(17), + 112: uint8(17), + 113: uint8(17), + 114: uint8(17), + 115: uint8(17), + 116: uint8(17), + 117: uint8(17), + 118: uint8(17), + 119: uint8(17), + 120: uint8(17), + 121: uint8(17), + 122: uint8(17), + 123: uint8(17), + 124: uint8(17), + 125: uint8(17), + 126: uint8(17), + 127: uint8(17), + 128: uint8(17), + 129: uint8(17), + 130: uint8(17), + 131: uint8(17), + 132: uint8(17), + 133: uint8(17), + 134: uint8(17), + 135: uint8(17), + 136: uint8(17), + 137: uint8(17), + 138: uint8(17), + 139: uint8(17), + 140: uint8(17), + 141: uint8(17), + 142: uint8(17), + 143: uint8(17), + 144: uint8(17), + 145: uint8(17), + 146: uint8(17), + 147: uint8(17), + 148: uint8(17), + 149: uint8(17), + 150: uint8(17), + 151: uint8(17), + 152: uint8(17), + 153: uint8(17), + 154: uint8(17), + 155: uint8(17), + 156: uint8(17), + 157: uint8(17), + 158: uint8(17), + 159: uint8(55), + 160: uint8(17), + 161: uint8(17), + 162: uint8(17), + 163: uint8(17), + 164: uint8(56), + 165: uint8(17), + 166: uint8(57), + 167: uint8(58), + 168: uint8(59), + 169: uint8(60), + 170: uint8(61), + 171: uint8(62), + 172: uint8(17), + 173: uint8(17), + 174: uint8(17), + 175: uint8(17), + 176: uint8(17), + 177: uint8(17), + 178: uint8(17), + 179: uint8(17), + 180: uint8(17), + 181: uint8(17), + 182: uint8(17), + 183: uint8(17), + 184: uint8(17), + 185: uint8(17), + 186: uint8(17), + 187: uint8(17), + 188: uint8(17), + 189: uint8(17), + 190: uint8(17), + 191: uint8(17), + 192: uint8(17), + 193: uint8(17), + 194: uint8(17), + 195: uint8(17), + 196: uint8(17), + 197: uint8(17), + 198: uint8(17), + 199: uint8(17), + 200: uint8(17), + 201: uint8(17), + 202: uint8(17), + 203: uint8(17), + 204: uint8(17), + 205: uint8(17), + 206: uint8(17), + 207: uint8(17), + 208: uint8(17), + 209: uint8(17), + 210: uint8(17), + 211: uint8(17), + 212: uint8(17), + 213: uint8(17), + 214: uint8(17), + 215: uint8(63), + 216: uint8(16), + 217: uint8(16), + 218: uint8(16), + 219: uint8(16), + 220: uint8(16), + 221: uint8(16), + 222: uint8(16), + 223: uint8(16), + 224: uint8(16), + 225: uint8(16), + 226: uint8(16), + 227: uint8(16), + 228: uint8(16), + 229: uint8(16), + 230: uint8(16), + 231: uint8(16), + 232: uint8(16), + 233: uint8(16), + 234: uint8(16), + 235: uint8(16), + 236: uint8(16), + 237: uint8(16), + 238: uint8(16), + 239: uint8(16), + 240: uint8(16), + 241: uint8(16), + 242: uint8(16), + 243: uint8(16), + 244: uint8(16), + 245: uint8(16), + 246: uint8(16), + 247: uint8(16), + 248: uint8(16), + 249: uint8(17), + 250: uint8(64), + 251: uint8(65), + 252: uint8(17), + 253: uint8(66), + 254: uint8(67), + 255: uint8(68), + 256: uint8(69), + 257: uint8(70), + 258: uint8(71), + 259: uint8(72), + 260: uint8(73), + 261: uint8(74), + 262: uint8(17), + 263: uint8(75), + 264: uint8(76), + 265: uint8(77), + 266: uint8(78), + 267: uint8(79), + 268: uint8(80), + 269: uint8(81), + 270: uint8(16), + 271: uint8(82), + 272: uint8(83), + 273: uint8(84), + 274: uint8(85), + 275: uint8(86), + 276: uint8(87), + 277: uint8(88), + 278: uint8(89), + 279: uint8(90), + 280: uint8(91), + 281: uint8(92), + 282: uint8(93), + 283: uint8(16), + 284: uint8(94), + 285: uint8(95), + 286: uint8(96), + 287: uint8(16), + 288: uint8(17), + 289: uint8(17), + 290: uint8(17), + 291: uint8(97), + 292: uint8(98), + 293: uint8(99), + 294: uint8(16), + 295: uint8(16), + 296: uint8(16), + 297: uint8(16), + 298: uint8(16), + 299: uint8(16), + 300: uint8(16), + 301: uint8(16), + 302: uint8(16), + 303: uint8(16), + 304: uint8(17), + 305: uint8(17), + 306: uint8(17), + 307: uint8(17), + 308: uint8(100), + 309: uint8(16), + 310: uint8(16), + 311: uint8(16), + 312: uint8(16), + 313: uint8(16), + 314: uint8(16), + 315: uint8(16), + 316: uint8(16), + 317: uint8(16), + 318: uint8(16), + 319: uint8(16), + 320: uint8(16), + 321: uint8(16), + 322: uint8(16), + 323: uint8(16), + 324: uint8(17), + 325: uint8(17), + 326: uint8(101), + 327: uint8(16), + 328: uint8(16), + 329: uint8(16), + 330: uint8(16), + 331: uint8(16), + 332: uint8(16), + 333: uint8(16), + 334: uint8(16), + 335: uint8(16), + 336: uint8(16), + 337: uint8(16), + 338: uint8(16), + 339: uint8(16), + 340: uint8(16), + 341: uint8(16), + 342: uint8(16), + 343: uint8(16), + 344: uint8(16), + 345: uint8(16), + 346: uint8(16), + 347: uint8(16), + 348: uint8(16), + 349: uint8(16), + 350: uint8(16), + 351: uint8(16), + 352: uint8(16), + 353: uint8(16), + 354: uint8(16), + 355: uint8(16), + 356: uint8(16), + 357: uint8(16), + 358: uint8(16), + 359: uint8(16), + 360: uint8(17), + 361: uint8(17), + 362: uint8(102), + 363: uint8(103), + 364: uint8(16), + 365: uint8(16), + 366: uint8(104), + 367: uint8(105), + 368: uint8(17), + 369: uint8(17), + 370: uint8(17), + 371: uint8(17), + 372: uint8(17), + 373: uint8(17), + 374: uint8(17), + 375: uint8(17), + 376: uint8(17), + 377: uint8(17), + 378: uint8(17), + 379: uint8(17), + 380: uint8(17), + 381: uint8(17), + 382: uint8(17), + 383: uint8(17), + 384: uint8(17), + 385: uint8(17), + 386: uint8(17), + 387: uint8(17), + 388: uint8(17), + 389: uint8(17), + 390: uint8(17), + 391: uint8(106), + 392: uint8(17), + 393: uint8(17), + 394: uint8(107), + 395: uint8(16), + 396: uint8(16), + 397: uint8(16), + 398: uint8(16), + 399: uint8(16), + 400: uint8(16), + 401: uint8(16), + 402: uint8(16), + 403: uint8(16), + 404: uint8(16), + 405: uint8(16), + 406: uint8(16), + 407: uint8(16), + 408: uint8(16), + 409: uint8(16), + 410: uint8(16), + 411: uint8(16), + 412: uint8(16), + 413: uint8(16), + 414: uint8(16), + 415: uint8(16), + 416: uint8(16), + 417: uint8(16), + 418: uint8(16), + 419: uint8(16), + 420: uint8(16), + 421: uint8(16), + 422: uint8(16), + 423: uint8(16), + 424: uint8(16), + 425: uint8(16), + 426: uint8(16), + 427: uint8(16), + 428: uint8(16), + 429: uint8(16), + 430: uint8(16), + 431: uint8(16), + 432: uint8(17), + 433: uint8(108), + 434: uint8(109), + 435: uint8(16), + 436: uint8(16), + 437: uint8(16), + 438: uint8(16), + 439: uint8(16), + 440: uint8(16), + 441: uint8(16), + 442: uint8(16), + 443: uint8(16), + 444: uint8(110), + 445: uint8(16), + 446: uint8(16), + 447: uint8(16), + 448: uint8(16), + 449: uint8(16), + 450: uint8(16), + 451: uint8(16), + 452: uint8(16), + 453: uint8(16), + 454: uint8(16), + 455: uint8(16), + 456: uint8(16), + 457: uint8(16), + 458: uint8(16), + 459: uint8(16), + 460: uint8(16), + 461: uint8(16), + 462: uint8(16), + 463: uint8(16), + 464: uint8(16), + 465: uint8(16), + 466: uint8(16), + 467: uint8(16), + 468: uint8(111), + 469: uint8(112), + 470: uint8(113), + 471: uint8(114), + 472: uint8(16), + 473: uint8(16), + 474: uint8(16), + 475: uint8(16), + 476: uint8(16), + 477: uint8(16), + 478: uint8(16), + 479: uint8(16), + 480: uint8(115), + 481: uint8(116), + 482: uint8(117), + 483: uint8(16), + 484: uint8(16), + 485: uint8(16), + 486: uint8(16), + 487: uint8(16), + 488: uint8(118), + 489: uint8(119), + 490: uint8(16), + 491: uint8(16), + 492: uint8(16), + 493: uint8(16), + 494: uint8(120), + 495: uint8(16), + 496: uint8(16), + 497: uint8(121), + 498: uint8(16), + 499: uint8(16), + 500: uint8(16), + 501: uint8(16), + 502: uint8(16), + 503: uint8(16), + 504: uint8(16), + 505: uint8(16), + 506: uint8(16), + 507: uint8(16), + 508: uint8(16), + 509: uint8(16), + 510: uint8(16), + 511: uint8(16), + 544: uint8(255), + 545: uint8(255), + 546: uint8(255), + 547: uint8(255), + 548: uint8(255), + 549: uint8(255), + 550: uint8(255), + 551: uint8(255), + 552: uint8(255), + 553: uint8(255), + 554: uint8(255), + 555: uint8(255), + 556: uint8(255), + 557: uint8(255), + 558: uint8(255), + 559: uint8(255), + 560: uint8(255), + 561: uint8(255), + 562: uint8(255), + 563: uint8(255), + 564: uint8(255), + 565: uint8(255), + 566: uint8(255), + 567: uint8(255), + 568: uint8(255), + 569: uint8(255), + 570: uint8(255), + 571: uint8(255), + 572: uint8(255), + 573: uint8(255), + 574: uint8(255), + 575: uint8(255), + 584: uint8(254), + 585: uint8(255), + 586: uint8(255), + 587: uint8(7), + 588: uint8(254), + 589: uint8(255), + 590: uint8(255), + 591: uint8(7), + 597: uint8(4), + 598: uint8(32), + 599: uint8(4), + 600: uint8(255), + 601: uint8(255), + 602: uint8(127), + 603: uint8(255), + 604: uint8(255), + 605: uint8(255), + 606: uint8(127), + 607: uint8(255), + 608: uint8(255), + 609: uint8(255), + 610: uint8(255), + 611: uint8(255), + 612: uint8(255), + 613: uint8(255), + 614: uint8(255), + 615: uint8(255), + 616: uint8(255), + 617: uint8(255), + 618: uint8(255), + 619: uint8(255), + 620: uint8(255), + 621: uint8(255), + 622: uint8(255), + 623: uint8(255), + 624: uint8(255), + 625: uint8(255), + 626: uint8(255), + 627: uint8(255), + 628: uint8(255), + 629: uint8(255), + 630: uint8(255), + 631: uint8(255), + 632: uint8(195), + 633: uint8(255), + 634: uint8(3), + 636: uint8(31), + 637: uint8(80), + 648: uint8(32), + 654: uint8(223), + 655: uint8(188), + 656: uint8(64), + 657: uint8(215), + 658: uint8(255), + 659: uint8(255), + 660: uint8(251), + 661: uint8(255), + 662: uint8(255), + 663: uint8(255), + 664: uint8(255), + 665: uint8(255), + 666: uint8(255), + 667: uint8(255), + 668: uint8(255), + 669: uint8(255), + 670: uint8(191), + 671: uint8(255), + 672: uint8(255), + 673: uint8(255), + 674: uint8(255), + 675: uint8(255), + 676: uint8(255), + 677: uint8(255), + 678: uint8(255), + 679: uint8(255), + 680: uint8(255), + 681: uint8(255), + 682: uint8(255), + 683: uint8(255), + 684: uint8(255), + 685: uint8(255), + 686: uint8(255), + 687: uint8(255), + 688: uint8(3), + 689: uint8(252), + 690: uint8(255), + 691: uint8(255), + 692: uint8(255), + 693: uint8(255), + 694: uint8(255), + 695: uint8(255), + 696: uint8(255), + 697: uint8(255), + 698: uint8(255), + 699: uint8(255), + 700: uint8(255), + 701: uint8(255), + 702: uint8(255), + 703: uint8(255), + 704: uint8(255), + 705: uint8(255), + 706: uint8(255), + 707: uint8(255), + 708: uint8(255), + 709: uint8(255), + 710: uint8(254), + 711: uint8(255), + 712: uint8(255), + 713: uint8(255), + 714: uint8(127), + 715: uint8(2), + 716: uint8(255), + 717: uint8(255), + 718: uint8(255), + 719: uint8(255), + 720: uint8(255), + 721: uint8(1), + 726: uint8(255), + 727: uint8(191), + 728: uint8(182), + 730: uint8(255), + 731: uint8(255), + 732: uint8(255), + 733: uint8(135), + 734: uint8(7), + 738: uint8(255), + 739: uint8(7), + 740: uint8(255), + 741: uint8(255), + 742: uint8(255), + 743: uint8(255), + 744: uint8(255), + 745: uint8(255), + 746: uint8(255), + 747: uint8(254), + 748: uint8(255), + 749: uint8(195), + 750: uint8(255), + 751: uint8(255), + 752: uint8(255), + 753: uint8(255), + 754: uint8(255), + 755: uint8(255), + 756: uint8(255), + 757: uint8(255), + 758: uint8(255), + 759: uint8(255), + 760: uint8(255), + 761: uint8(255), + 762: uint8(239), + 763: uint8(31), + 764: uint8(254), + 765: uint8(225), + 766: uint8(255), + 767: uint8(159), + 770: uint8(255), + 771: uint8(255), + 772: uint8(255), + 773: uint8(255), + 774: uint8(255), + 775: uint8(255), + 777: uint8(224), + 778: uint8(255), + 779: uint8(255), + 780: uint8(255), + 781: uint8(255), + 782: uint8(255), + 783: uint8(255), + 784: uint8(255), + 785: uint8(255), + 786: uint8(255), + 787: uint8(255), + 788: uint8(255), + 789: uint8(255), + 790: uint8(3), + 792: uint8(255), + 793: uint8(255), + 794: uint8(255), + 795: uint8(255), + 796: uint8(255), + 797: uint8(7), + 798: uint8(48), + 799: uint8(4), + 800: uint8(255), + 801: uint8(255), + 802: uint8(255), + 803: uint8(252), + 804: uint8(255), + 805: uint8(31), + 808: uint8(255), + 809: uint8(255), + 810: uint8(255), + 811: uint8(1), + 812: uint8(255), + 813: uint8(7), + 820: uint8(255), + 821: uint8(255), + 822: uint8(223), + 823: uint8(63), + 826: uint8(240), + 827: uint8(255), + 828: uint8(248), + 829: uint8(3), + 830: uint8(255), + 831: uint8(255), + 832: uint8(255), + 833: uint8(255), + 834: uint8(255), + 835: uint8(255), + 836: uint8(255), + 837: uint8(255), + 838: uint8(255), + 839: uint8(239), + 840: uint8(255), + 841: uint8(223), + 842: uint8(225), + 843: uint8(255), + 844: uint8(207), + 845: uint8(255), + 846: uint8(254), + 847: uint8(255), + 848: uint8(239), + 849: uint8(159), + 850: uint8(249), + 851: uint8(255), + 852: uint8(255), + 853: uint8(253), + 854: uint8(197), + 855: uint8(227), + 856: uint8(159), + 857: uint8(89), + 858: uint8(128), + 859: uint8(176), + 860: uint8(207), + 861: uint8(255), + 862: uint8(3), + 863: uint8(16), + 864: uint8(238), + 865: uint8(135), + 866: uint8(249), + 867: uint8(255), + 868: uint8(255), + 869: uint8(253), + 870: uint8(109), + 871: uint8(195), + 872: uint8(135), + 873: uint8(25), + 874: uint8(2), + 875: uint8(94), + 876: uint8(192), + 877: uint8(255), + 878: uint8(63), + 880: uint8(238), + 881: uint8(191), + 882: uint8(251), + 883: uint8(255), + 884: uint8(255), + 885: uint8(253), + 886: uint8(237), + 887: uint8(227), + 888: uint8(191), + 889: uint8(27), + 890: uint8(1), + 892: uint8(207), + 893: uint8(255), + 895: uint8(30), + 896: uint8(238), + 897: uint8(159), + 898: uint8(249), + 899: uint8(255), + 900: uint8(255), + 901: uint8(253), + 902: uint8(237), + 903: uint8(227), + 904: uint8(159), + 905: uint8(25), + 906: uint8(192), + 907: uint8(176), + 908: uint8(207), + 909: uint8(255), + 910: uint8(2), + 912: uint8(236), + 913: uint8(199), + 914: uint8(61), + 915: uint8(214), + 916: uint8(24), + 917: uint8(199), + 918: uint8(255), + 919: uint8(195), + 920: uint8(199), + 921: uint8(29), + 922: uint8(129), + 924: uint8(192), + 925: uint8(255), + 928: uint8(239), + 929: uint8(223), + 930: uint8(253), + 931: uint8(255), + 932: uint8(255), + 933: uint8(253), + 934: uint8(255), + 935: uint8(227), + 936: uint8(223), + 937: uint8(29), + 938: uint8(96), + 939: uint8(7), + 940: uint8(207), + 941: uint8(255), + 944: uint8(239), + 945: uint8(223), + 946: uint8(253), + 947: uint8(255), + 948: uint8(255), + 949: uint8(253), + 950: uint8(239), + 951: uint8(227), + 952: uint8(223), + 953: uint8(29), + 954: uint8(96), + 955: uint8(64), + 956: uint8(207), + 957: uint8(255), + 958: uint8(6), + 960: uint8(239), + 961: uint8(223), + 962: uint8(253), + 963: uint8(255), + 964: uint8(255), + 965: uint8(255), + 966: uint8(255), + 967: uint8(231), + 968: uint8(223), + 969: uint8(93), + 970: uint8(240), + 971: uint8(128), + 972: uint8(207), + 973: uint8(255), + 975: uint8(252), + 976: uint8(236), + 977: uint8(255), + 978: uint8(127), + 979: uint8(252), + 980: uint8(255), + 981: uint8(255), + 982: uint8(251), + 983: uint8(47), + 984: uint8(127), + 985: uint8(128), + 986: uint8(95), + 987: uint8(255), + 988: uint8(192), + 989: uint8(255), + 990: uint8(12), + 992: uint8(254), + 993: uint8(255), + 994: uint8(255), + 995: uint8(255), + 996: uint8(255), + 997: uint8(127), + 998: uint8(255), + 999: uint8(7), + 1000: uint8(63), + 1001: uint8(32), + 1002: uint8(255), + 1003: uint8(3), + 1008: uint8(214), + 1009: uint8(247), + 1010: uint8(255), + 1011: uint8(255), + 1012: uint8(175), + 1013: uint8(255), + 1014: uint8(255), + 1015: uint8(59), + 1016: uint8(95), + 1017: uint8(32), + 1018: uint8(255), + 1019: uint8(243), + 1024: uint8(1), + 1028: uint8(255), + 1029: uint8(3), + 1032: uint8(255), + 1033: uint8(254), + 1034: uint8(255), + 1035: uint8(255), + 1036: uint8(255), + 1037: uint8(31), + 1038: uint8(254), + 1039: uint8(255), + 1040: uint8(3), + 1041: uint8(255), + 1042: uint8(255), + 1043: uint8(254), + 1044: uint8(255), + 1045: uint8(255), + 1046: uint8(255), + 1047: uint8(31), + 1056: uint8(255), + 1057: uint8(255), + 1058: uint8(255), + 1059: uint8(255), + 1060: uint8(255), + 1061: uint8(255), + 1062: uint8(127), + 1063: uint8(249), + 1064: uint8(255), + 1065: uint8(3), + 1066: uint8(255), + 1067: uint8(255), + 1068: uint8(255), + 1069: uint8(255), + 1070: uint8(255), + 1071: uint8(255), + 1072: uint8(255), + 1073: uint8(255), + 1074: uint8(255), + 1075: uint8(63), + 1076: uint8(255), + 1077: uint8(255), + 1078: uint8(255), + 1079: uint8(255), + 1080: uint8(191), + 1081: uint8(32), + 1082: uint8(255), + 1083: uint8(255), + 1084: uint8(255), + 1085: uint8(255), + 1086: uint8(255), + 1087: uint8(247), + 1088: uint8(255), + 1089: uint8(255), + 1090: uint8(255), + 1091: uint8(255), + 1092: uint8(255), + 1093: uint8(255), + 1094: uint8(255), + 1095: uint8(255), + 1096: uint8(255), + 1097: uint8(61), + 1098: uint8(127), + 1099: uint8(61), + 1100: uint8(255), + 1101: uint8(255), + 1102: uint8(255), + 1103: uint8(255), + 1104: uint8(255), + 1105: uint8(61), + 1106: uint8(255), + 1107: uint8(255), + 1108: uint8(255), + 1109: uint8(255), + 1110: uint8(61), + 1111: uint8(127), + 1112: uint8(61), + 1113: uint8(255), + 1114: uint8(127), + 1115: uint8(255), + 1116: uint8(255), + 1117: uint8(255), + 1118: uint8(255), + 1119: uint8(255), + 1120: uint8(255), + 1121: uint8(255), + 1122: uint8(61), + 1123: uint8(255), + 1124: uint8(255), + 1125: uint8(255), + 1126: uint8(255), + 1127: uint8(255), + 1128: uint8(255), + 1129: uint8(255), + 1130: uint8(255), + 1131: uint8(7), + 1136: uint8(255), + 1137: uint8(255), + 1140: uint8(255), + 1141: uint8(255), + 1142: uint8(255), + 1143: uint8(255), + 1144: uint8(255), + 1145: uint8(255), + 1146: uint8(255), + 1147: uint8(255), + 1148: uint8(255), + 1149: uint8(255), + 1150: uint8(63), + 1151: uint8(63), + 1152: uint8(254), + 1153: uint8(255), + 1154: uint8(255), + 1155: uint8(255), + 1156: uint8(255), + 1157: uint8(255), + 1158: uint8(255), + 1159: uint8(255), + 1160: uint8(255), + 1161: uint8(255), + 1162: uint8(255), + 1163: uint8(255), + 1164: uint8(255), + 1165: uint8(255), + 1166: uint8(255), + 1167: uint8(255), + 1168: uint8(255), + 1169: uint8(255), + 1170: uint8(255), + 1171: uint8(255), + 1172: uint8(255), + 1173: uint8(255), + 1174: uint8(255), + 1175: uint8(255), + 1176: uint8(255), + 1177: uint8(255), + 1178: uint8(255), + 1179: uint8(255), + 1180: uint8(255), + 1181: uint8(255), + 1182: uint8(255), + 1183: uint8(255), + 1184: uint8(255), + 1185: uint8(255), + 1186: uint8(255), + 1187: uint8(255), + 1188: uint8(255), + 1189: uint8(255), + 1190: uint8(255), + 1191: uint8(255), + 1192: uint8(255), + 1193: uint8(255), + 1194: uint8(255), + 1195: uint8(255), + 1196: uint8(255), + 1197: uint8(159), + 1198: uint8(255), + 1199: uint8(255), + 1200: uint8(254), + 1201: uint8(255), + 1202: uint8(255), + 1203: uint8(7), + 1204: uint8(255), + 1205: uint8(255), + 1206: uint8(255), + 1207: uint8(255), + 1208: uint8(255), + 1209: uint8(255), + 1210: uint8(255), + 1211: uint8(255), + 1212: uint8(255), + 1213: uint8(199), + 1214: uint8(255), + 1215: uint8(1), + 1216: uint8(255), + 1217: uint8(223), + 1218: uint8(15), + 1220: uint8(255), + 1221: uint8(255), + 1222: uint8(15), + 1224: uint8(255), + 1225: uint8(255), + 1226: uint8(15), + 1228: uint8(255), + 1229: uint8(223), + 1230: uint8(13), + 1232: uint8(255), + 1233: uint8(255), + 1234: uint8(255), + 1235: uint8(255), + 1236: uint8(255), + 1237: uint8(255), + 1238: uint8(207), + 1239: uint8(255), + 1240: uint8(255), + 1241: uint8(1), + 1242: uint8(128), + 1243: uint8(16), + 1244: uint8(255), + 1245: uint8(3), + 1250: uint8(255), + 1251: uint8(3), + 1252: uint8(255), + 1253: uint8(255), + 1254: uint8(255), + 1255: uint8(255), + 1256: uint8(255), + 1257: uint8(255), + 1258: uint8(255), + 1259: uint8(255), + 1260: uint8(255), + 1261: uint8(255), + 1262: uint8(255), + 1263: uint8(1), + 1264: uint8(255), + 1265: uint8(255), + 1266: uint8(255), + 1267: uint8(255), + 1268: uint8(255), + 1269: uint8(7), + 1270: uint8(255), + 1271: uint8(255), + 1272: uint8(255), + 1273: uint8(255), + 1274: uint8(255), + 1275: uint8(255), + 1276: uint8(255), + 1277: uint8(255), + 1278: uint8(63), + 1280: uint8(255), + 1281: uint8(255), + 1282: uint8(255), + 1283: uint8(127), + 1284: uint8(255), + 1285: uint8(15), + 1286: uint8(255), + 1287: uint8(1), + 1288: uint8(192), + 1289: uint8(255), + 1290: uint8(255), + 1291: uint8(255), + 1292: uint8(255), + 1293: uint8(63), + 1294: uint8(31), + 1296: uint8(255), + 1297: uint8(255), + 1298: uint8(255), + 1299: uint8(255), + 1300: uint8(255), + 1301: uint8(15), + 1302: uint8(255), + 1303: uint8(255), + 1304: uint8(255), + 1305: uint8(3), + 1306: uint8(255), + 1307: uint8(3), + 1312: uint8(255), + 1313: uint8(255), + 1314: uint8(255), + 1315: uint8(15), + 1316: uint8(255), + 1317: uint8(255), + 1318: uint8(255), + 1319: uint8(255), + 1320: uint8(255), + 1321: uint8(255), + 1322: uint8(255), + 1323: uint8(127), + 1324: uint8(254), + 1325: uint8(255), + 1326: uint8(31), + 1328: uint8(255), + 1329: uint8(3), + 1330: uint8(255), + 1331: uint8(3), + 1332: uint8(128), + 1344: uint8(255), + 1345: uint8(255), + 1346: uint8(255), + 1347: uint8(255), + 1348: uint8(255), + 1349: uint8(255), + 1350: uint8(239), + 1351: uint8(255), + 1352: uint8(239), + 1353: uint8(15), + 1354: uint8(255), + 1355: uint8(3), + 1360: uint8(255), + 1361: uint8(255), + 1362: uint8(255), + 1363: uint8(255), + 1364: uint8(255), + 1365: uint8(243), + 1366: uint8(255), + 1367: uint8(255), + 1368: uint8(255), + 1369: uint8(255), + 1370: uint8(255), + 1371: uint8(255), + 1372: uint8(191), + 1373: uint8(255), + 1374: uint8(3), + 1376: uint8(255), + 1377: uint8(255), + 1378: uint8(255), + 1379: uint8(255), + 1380: uint8(255), + 1381: uint8(255), + 1382: uint8(127), + 1384: uint8(255), + 1385: uint8(227), + 1386: uint8(255), + 1387: uint8(255), + 1388: uint8(255), + 1389: uint8(255), + 1390: uint8(255), + 1391: uint8(63), + 1392: uint8(255), + 1393: uint8(1), + 1394: uint8(255), + 1395: uint8(255), + 1396: uint8(255), + 1397: uint8(255), + 1398: uint8(255), + 1399: uint8(231), + 1405: uint8(222), + 1406: uint8(111), + 1407: uint8(4), + 1408: uint8(255), + 1409: uint8(255), + 1410: uint8(255), + 1411: uint8(255), + 1412: uint8(255), + 1413: uint8(255), + 1414: uint8(255), + 1415: uint8(255), + 1416: uint8(255), + 1417: uint8(255), + 1418: uint8(255), + 1419: uint8(255), + 1420: uint8(255), + 1421: uint8(255), + 1422: uint8(255), + 1423: uint8(255), + 1424: uint8(255), + 1425: uint8(255), + 1426: uint8(255), + 1427: uint8(255), + 1428: uint8(255), + 1429: uint8(255), + 1430: uint8(255), + 1431: uint8(255), + 1436: uint8(128), + 1437: uint8(255), + 1438: uint8(31), + 1440: uint8(255), + 1441: uint8(255), + 1442: uint8(63), + 1443: uint8(63), + 1444: uint8(255), + 1445: uint8(255), + 1446: uint8(255), + 1447: uint8(255), + 1448: uint8(63), + 1449: uint8(63), + 1450: uint8(255), + 1451: uint8(170), + 1452: uint8(255), + 1453: uint8(255), + 1454: uint8(255), + 1455: uint8(63), + 1456: uint8(255), + 1457: uint8(255), + 1458: uint8(255), + 1459: uint8(255), + 1460: uint8(255), + 1461: uint8(255), + 1462: uint8(223), + 1463: uint8(95), + 1464: uint8(220), + 1465: uint8(31), + 1466: uint8(207), + 1467: uint8(15), + 1468: uint8(255), + 1469: uint8(31), + 1470: uint8(220), + 1471: uint8(31), + 1486: uint8(2), + 1487: uint8(128), + 1490: uint8(255), + 1491: uint8(31), + 1504: uint8(132), + 1505: uint8(252), + 1506: uint8(47), + 1507: uint8(62), + 1508: uint8(80), + 1509: uint8(189), + 1510: uint8(255), + 1511: uint8(243), + 1512: uint8(224), + 1513: uint8(67), + 1516: uint8(255), + 1517: uint8(255), + 1518: uint8(255), + 1519: uint8(255), + 1520: uint8(255), + 1521: uint8(1), + 1558: uint8(192), + 1559: uint8(255), + 1560: uint8(255), + 1561: uint8(255), + 1562: uint8(255), + 1563: uint8(255), + 1564: uint8(255), + 1565: uint8(3), + 1568: uint8(255), + 1569: uint8(255), + 1570: uint8(255), + 1571: uint8(255), + 1572: uint8(255), + 1573: uint8(127), + 1574: uint8(255), + 1575: uint8(255), + 1576: uint8(255), + 1577: uint8(255), + 1578: uint8(255), + 1579: uint8(127), + 1580: uint8(255), + 1581: uint8(255), + 1582: uint8(255), + 1583: uint8(255), + 1584: uint8(255), + 1585: uint8(255), + 1586: uint8(255), + 1587: uint8(255), + 1588: uint8(255), + 1589: uint8(255), + 1590: uint8(255), + 1591: uint8(255), + 1592: uint8(255), + 1593: uint8(255), + 1594: uint8(255), + 1595: uint8(255), + 1596: uint8(31), + 1597: uint8(120), + 1598: uint8(12), + 1600: uint8(255), + 1601: uint8(255), + 1602: uint8(255), + 1603: uint8(255), + 1604: uint8(191), + 1605: uint8(32), + 1606: uint8(255), + 1607: uint8(255), + 1608: uint8(255), + 1609: uint8(255), + 1610: uint8(255), + 1611: uint8(255), + 1612: uint8(255), + 1613: uint8(128), + 1616: uint8(255), + 1617: uint8(255), + 1618: uint8(127), + 1620: uint8(127), + 1621: uint8(127), + 1622: uint8(127), + 1623: uint8(127), + 1624: uint8(127), + 1625: uint8(127), + 1626: uint8(127), + 1627: uint8(127), + 1628: uint8(255), + 1629: uint8(255), + 1630: uint8(255), + 1631: uint8(255), + 1637: uint8(128), + 1664: uint8(224), + 1668: uint8(254), + 1669: uint8(3), + 1670: uint8(62), + 1671: uint8(31), + 1672: uint8(254), + 1673: uint8(255), + 1674: uint8(255), + 1675: uint8(255), + 1676: uint8(255), + 1677: uint8(255), + 1678: uint8(255), + 1679: uint8(255), + 1680: uint8(255), + 1681: uint8(255), + 1682: uint8(127), + 1683: uint8(224), + 1684: uint8(254), + 1685: uint8(255), + 1686: uint8(255), + 1687: uint8(255), + 1688: uint8(255), + 1689: uint8(255), + 1690: uint8(255), + 1691: uint8(255), + 1692: uint8(255), + 1693: uint8(255), + 1694: uint8(255), + 1695: uint8(247), + 1696: uint8(224), + 1697: uint8(255), + 1698: uint8(255), + 1699: uint8(255), + 1700: uint8(255), + 1701: uint8(255), + 1702: uint8(254), + 1703: uint8(255), + 1704: uint8(255), + 1705: uint8(255), + 1706: uint8(255), + 1707: uint8(255), + 1708: uint8(255), + 1709: uint8(255), + 1710: uint8(255), + 1711: uint8(255), + 1712: uint8(255), + 1713: uint8(127), + 1716: uint8(255), + 1717: uint8(255), + 1718: uint8(255), + 1719: uint8(7), + 1726: uint8(255), + 1727: uint8(255), + 1728: uint8(255), + 1729: uint8(255), + 1730: uint8(255), + 1731: uint8(255), + 1732: uint8(255), + 1733: uint8(255), + 1734: uint8(255), + 1735: uint8(255), + 1736: uint8(255), + 1737: uint8(255), + 1738: uint8(255), + 1739: uint8(255), + 1740: uint8(255), + 1741: uint8(255), + 1742: uint8(255), + 1743: uint8(255), + 1744: uint8(255), + 1745: uint8(255), + 1746: uint8(255), + 1747: uint8(255), + 1748: uint8(255), + 1749: uint8(255), + 1750: uint8(63), + 1760: uint8(255), + 1761: uint8(255), + 1762: uint8(255), + 1763: uint8(255), + 1764: uint8(255), + 1765: uint8(255), + 1766: uint8(255), + 1767: uint8(255), + 1768: uint8(255), + 1769: uint8(255), + 1770: uint8(255), + 1771: uint8(255), + 1772: uint8(255), + 1773: uint8(255), + 1774: uint8(255), + 1775: uint8(255), + 1776: uint8(255), + 1777: uint8(255), + 1778: uint8(255), + 1779: uint8(255), + 1780: uint8(255), + 1781: uint8(255), + 1782: uint8(255), + 1783: uint8(255), + 1784: uint8(255), + 1785: uint8(255), + 1786: uint8(255), + 1787: uint8(255), + 1788: uint8(255), + 1789: uint8(255), + 1792: uint8(255), + 1793: uint8(255), + 1794: uint8(255), + 1795: uint8(255), + 1796: uint8(255), + 1797: uint8(255), + 1798: uint8(255), + 1799: uint8(255), + 1800: uint8(255), + 1801: uint8(255), + 1802: uint8(255), + 1803: uint8(255), + 1804: uint8(255), + 1805: uint8(255), + 1806: uint8(255), + 1807: uint8(255), + 1808: uint8(255), + 1809: uint8(31), + 1818: uint8(255), + 1819: uint8(255), + 1820: uint8(255), + 1821: uint8(255), + 1822: uint8(255), + 1823: uint8(63), + 1824: uint8(255), + 1825: uint8(31), + 1826: uint8(255), + 1827: uint8(255), + 1828: uint8(255), + 1829: uint8(15), + 1832: uint8(255), + 1833: uint8(255), + 1834: uint8(255), + 1835: uint8(255), + 1836: uint8(255), + 1837: uint8(127), + 1838: uint8(240), + 1839: uint8(143), + 1840: uint8(255), + 1841: uint8(255), + 1842: uint8(255), + 1843: uint8(255), + 1844: uint8(255), + 1845: uint8(255), + 1846: uint8(255), + 1847: uint8(255), + 1848: uint8(255), + 1849: uint8(255), + 1850: uint8(255), + 1851: uint8(255), + 1852: uint8(255), + 1853: uint8(255), + 1858: uint8(128), + 1859: uint8(255), + 1860: uint8(252), + 1861: uint8(255), + 1862: uint8(255), + 1863: uint8(255), + 1864: uint8(255), + 1865: uint8(255), + 1866: uint8(255), + 1867: uint8(255), + 1868: uint8(255), + 1869: uint8(255), + 1870: uint8(255), + 1871: uint8(255), + 1872: uint8(255), + 1873: uint8(249), + 1874: uint8(255), + 1875: uint8(255), + 1876: uint8(255), + 1877: uint8(255), + 1878: uint8(255), + 1879: uint8(255), + 1880: uint8(124), + 1886: uint8(128), + 1887: uint8(255), + 1888: uint8(191), + 1889: uint8(255), + 1890: uint8(255), + 1891: uint8(255), + 1892: uint8(255), + 1896: uint8(255), + 1897: uint8(255), + 1898: uint8(255), + 1899: uint8(255), + 1900: uint8(255), + 1901: uint8(255), + 1902: uint8(15), + 1904: uint8(255), + 1905: uint8(255), + 1906: uint8(255), + 1907: uint8(255), + 1908: uint8(255), + 1909: uint8(255), + 1910: uint8(255), + 1911: uint8(255), + 1912: uint8(47), + 1914: uint8(255), + 1915: uint8(3), + 1918: uint8(252), + 1919: uint8(232), + 1920: uint8(255), + 1921: uint8(255), + 1922: uint8(255), + 1923: uint8(255), + 1924: uint8(255), + 1925: uint8(7), + 1926: uint8(255), + 1927: uint8(255), + 1928: uint8(255), + 1929: uint8(255), + 1930: uint8(7), + 1932: uint8(255), + 1933: uint8(255), + 1934: uint8(255), + 1935: uint8(31), + 1936: uint8(255), + 1937: uint8(255), + 1938: uint8(255), + 1939: uint8(255), + 1940: uint8(255), + 1941: uint8(255), + 1942: uint8(247), + 1943: uint8(255), + 1945: uint8(128), + 1946: uint8(255), + 1947: uint8(3), + 1948: uint8(255), + 1949: uint8(255), + 1950: uint8(255), + 1951: uint8(127), + 1952: uint8(255), + 1953: uint8(255), + 1954: uint8(255), + 1955: uint8(255), + 1956: uint8(255), + 1957: uint8(255), + 1958: uint8(127), + 1960: uint8(255), + 1961: uint8(63), + 1962: uint8(255), + 1963: uint8(3), + 1964: uint8(255), + 1965: uint8(255), + 1966: uint8(127), + 1967: uint8(252), + 1968: uint8(255), + 1969: uint8(255), + 1970: uint8(255), + 1971: uint8(255), + 1972: uint8(255), + 1973: uint8(255), + 1974: uint8(255), + 1975: uint8(127), + 1976: uint8(5), + 1979: uint8(56), + 1980: uint8(255), + 1981: uint8(255), + 1982: uint8(60), + 1984: uint8(126), + 1985: uint8(126), + 1986: uint8(126), + 1988: uint8(127), + 1989: uint8(127), + 1990: uint8(255), + 1991: uint8(255), + 1992: uint8(255), + 1993: uint8(255), + 1994: uint8(255), + 1995: uint8(247), + 1996: uint8(255), + 1998: uint8(255), + 1999: uint8(255), + 2000: uint8(255), + 2001: uint8(255), + 2002: uint8(255), + 2003: uint8(255), + 2004: uint8(255), + 2005: uint8(255), + 2006: uint8(255), + 2007: uint8(255), + 2008: uint8(255), + 2009: uint8(255), + 2010: uint8(255), + 2011: uint8(255), + 2012: uint8(255), + 2013: uint8(7), + 2014: uint8(255), + 2015: uint8(3), + 2016: uint8(255), + 2017: uint8(255), + 2018: uint8(255), + 2019: uint8(255), + 2020: uint8(255), + 2021: uint8(255), + 2022: uint8(255), + 2023: uint8(255), + 2024: uint8(255), + 2025: uint8(255), + 2026: uint8(255), + 2027: uint8(255), + 2028: uint8(255), + 2029: uint8(255), + 2030: uint8(255), + 2031: uint8(255), + 2032: uint8(255), + 2033: uint8(255), + 2034: uint8(255), + 2035: uint8(255), + 2036: uint8(15), + 2038: uint8(255), + 2039: uint8(255), + 2040: uint8(127), + 2041: uint8(248), + 2042: uint8(255), + 2043: uint8(255), + 2044: uint8(255), + 2045: uint8(255), + 2046: uint8(255), + 2047: uint8(15), + 2048: uint8(255), + 2049: uint8(255), + 2050: uint8(255), + 2051: uint8(255), + 2052: uint8(255), + 2053: uint8(255), + 2054: uint8(255), + 2055: uint8(255), + 2056: uint8(255), + 2057: uint8(255), + 2058: uint8(255), + 2059: uint8(255), + 2060: uint8(255), + 2061: uint8(63), + 2062: uint8(255), + 2063: uint8(255), + 2064: uint8(255), + 2065: uint8(255), + 2066: uint8(255), + 2067: uint8(255), + 2068: uint8(255), + 2069: uint8(255), + 2070: uint8(255), + 2071: uint8(255), + 2072: uint8(255), + 2073: uint8(255), + 2074: uint8(255), + 2075: uint8(3), + 2080: uint8(127), + 2082: uint8(248), + 2083: uint8(224), + 2084: uint8(255), + 2085: uint8(253), + 2086: uint8(127), + 2087: uint8(95), + 2088: uint8(219), + 2089: uint8(255), + 2090: uint8(255), + 2091: uint8(255), + 2092: uint8(255), + 2093: uint8(255), + 2094: uint8(255), + 2095: uint8(255), + 2096: uint8(255), + 2097: uint8(255), + 2098: uint8(255), + 2099: uint8(255), + 2100: uint8(255), + 2101: uint8(255), + 2102: uint8(3), + 2106: uint8(248), + 2107: uint8(255), + 2108: uint8(255), + 2109: uint8(255), + 2110: uint8(255), + 2111: uint8(255), + 2112: uint8(255), + 2113: uint8(255), + 2114: uint8(255), + 2115: uint8(255), + 2116: uint8(255), + 2117: uint8(255), + 2118: uint8(255), + 2119: uint8(63), + 2122: uint8(255), + 2123: uint8(255), + 2124: uint8(255), + 2125: uint8(255), + 2126: uint8(255), + 2127: uint8(255), + 2128: uint8(255), + 2129: uint8(255), + 2130: uint8(252), + 2131: uint8(255), + 2132: uint8(255), + 2133: uint8(255), + 2134: uint8(255), + 2135: uint8(255), + 2136: uint8(255), + 2142: uint8(255), + 2143: uint8(15), + 2158: uint8(223), + 2159: uint8(255), + 2160: uint8(255), + 2161: uint8(255), + 2162: uint8(255), + 2163: uint8(255), + 2164: uint8(255), + 2165: uint8(255), + 2166: uint8(255), + 2167: uint8(255), + 2168: uint8(255), + 2169: uint8(255), + 2170: uint8(255), + 2171: uint8(255), + 2172: uint8(255), + 2173: uint8(255), + 2174: uint8(255), + 2175: uint8(31), + 2178: uint8(255), + 2179: uint8(3), + 2180: uint8(254), + 2181: uint8(255), + 2182: uint8(255), + 2183: uint8(7), + 2184: uint8(254), + 2185: uint8(255), + 2186: uint8(255), + 2187: uint8(7), + 2188: uint8(192), + 2189: uint8(255), + 2190: uint8(255), + 2191: uint8(255), + 2192: uint8(255), + 2193: uint8(255), + 2194: uint8(255), + 2195: uint8(255), + 2196: uint8(255), + 2197: uint8(255), + 2198: uint8(255), + 2199: uint8(127), + 2200: uint8(252), + 2201: uint8(252), + 2202: uint8(252), + 2203: uint8(28), + 2208: uint8(255), + 2209: uint8(239), + 2210: uint8(255), + 2211: uint8(255), + 2212: uint8(127), + 2213: uint8(255), + 2214: uint8(255), + 2215: uint8(183), + 2216: uint8(255), + 2217: uint8(63), + 2218: uint8(255), + 2219: uint8(63), + 2224: uint8(255), + 2225: uint8(255), + 2226: uint8(255), + 2227: uint8(255), + 2228: uint8(255), + 2229: uint8(255), + 2230: uint8(255), + 2231: uint8(255), + 2232: uint8(255), + 2233: uint8(255), + 2234: uint8(255), + 2235: uint8(255), + 2236: uint8(255), + 2237: uint8(255), + 2238: uint8(255), + 2239: uint8(7), + 2248: uint8(255), + 2249: uint8(255), + 2250: uint8(255), + 2251: uint8(255), + 2252: uint8(255), + 2253: uint8(255), + 2254: uint8(31), + 2288: uint8(255), + 2289: uint8(255), + 2290: uint8(255), + 2291: uint8(31), + 2292: uint8(255), + 2293: uint8(255), + 2294: uint8(255), + 2295: uint8(255), + 2296: uint8(255), + 2297: uint8(255), + 2298: uint8(1), + 2304: uint8(255), + 2305: uint8(255), + 2306: uint8(255), + 2307: uint8(255), + 2309: uint8(224), + 2310: uint8(255), + 2311: uint8(255), + 2312: uint8(255), + 2313: uint8(7), + 2314: uint8(255), + 2315: uint8(255), + 2316: uint8(255), + 2317: uint8(255), + 2318: uint8(255), + 2319: uint8(7), + 2320: uint8(255), + 2321: uint8(255), + 2322: uint8(255), + 2323: uint8(63), + 2324: uint8(255), + 2325: uint8(255), + 2326: uint8(255), + 2327: uint8(255), + 2328: uint8(15), + 2329: uint8(255), + 2330: uint8(62), + 2336: uint8(255), + 2337: uint8(255), + 2338: uint8(255), + 2339: uint8(255), + 2340: uint8(255), + 2341: uint8(255), + 2342: uint8(255), + 2343: uint8(255), + 2344: uint8(255), + 2345: uint8(255), + 2346: uint8(255), + 2347: uint8(255), + 2348: uint8(255), + 2349: uint8(255), + 2350: uint8(255), + 2351: uint8(255), + 2352: uint8(255), + 2353: uint8(255), + 2354: uint8(255), + 2355: uint8(63), + 2356: uint8(255), + 2357: uint8(3), + 2358: uint8(255), + 2359: uint8(255), + 2360: uint8(255), + 2361: uint8(255), + 2362: uint8(15), + 2363: uint8(255), + 2364: uint8(255), + 2365: uint8(255), + 2366: uint8(255), + 2367: uint8(15), + 2368: uint8(255), + 2369: uint8(255), + 2370: uint8(255), + 2371: uint8(255), + 2372: uint8(255), + 2374: uint8(255), + 2375: uint8(255), + 2376: uint8(255), + 2377: uint8(255), + 2378: uint8(255), + 2379: uint8(255), + 2380: uint8(15), + 2400: uint8(255), + 2401: uint8(255), + 2402: uint8(255), + 2403: uint8(255), + 2404: uint8(255), + 2405: uint8(255), + 2406: uint8(127), + 2408: uint8(255), + 2409: uint8(255), + 2410: uint8(63), + 2412: uint8(255), + 2432: uint8(63), + 2433: uint8(253), + 2434: uint8(255), + 2435: uint8(255), + 2436: uint8(255), + 2437: uint8(255), + 2438: uint8(191), + 2439: uint8(145), + 2440: uint8(255), + 2441: uint8(255), + 2442: uint8(63), + 2444: uint8(255), + 2445: uint8(255), + 2446: uint8(127), + 2448: uint8(255), + 2449: uint8(255), + 2450: uint8(255), + 2451: uint8(127), + 2460: uint8(255), + 2461: uint8(255), + 2462: uint8(55), + 2464: uint8(255), + 2465: uint8(255), + 2466: uint8(63), + 2468: uint8(255), + 2469: uint8(255), + 2470: uint8(255), + 2471: uint8(3), + 2480: uint8(255), + 2481: uint8(255), + 2482: uint8(255), + 2483: uint8(255), + 2484: uint8(255), + 2485: uint8(255), + 2486: uint8(255), + 2487: uint8(192), + 2496: uint8(111), + 2497: uint8(240), + 2498: uint8(239), + 2499: uint8(254), + 2500: uint8(255), + 2501: uint8(255), + 2502: uint8(63), + 2508: uint8(255), + 2509: uint8(255), + 2510: uint8(255), + 2511: uint8(31), + 2512: uint8(255), + 2513: uint8(255), + 2514: uint8(255), + 2515: uint8(31), + 2520: uint8(255), + 2521: uint8(254), + 2522: uint8(255), + 2523: uint8(255), + 2524: uint8(31), + 2528: uint8(255), + 2529: uint8(255), + 2530: uint8(255), + 2531: uint8(255), + 2532: uint8(255), + 2533: uint8(255), + 2534: uint8(63), + 2536: uint8(255), + 2537: uint8(255), + 2538: uint8(63), + 2540: uint8(255), + 2541: uint8(255), + 2542: uint8(7), + 2544: uint8(255), + 2545: uint8(255), + 2546: uint8(3), + 2560: uint8(255), + 2561: uint8(255), + 2562: uint8(255), + 2563: uint8(255), + 2564: uint8(255), + 2565: uint8(255), + 2566: uint8(255), + 2567: uint8(255), + 2568: uint8(255), + 2569: uint8(1), + 2576: uint8(255), + 2577: uint8(255), + 2578: uint8(255), + 2579: uint8(255), + 2580: uint8(255), + 2581: uint8(255), + 2582: uint8(7), + 2584: uint8(255), + 2585: uint8(255), + 2586: uint8(255), + 2587: uint8(255), + 2588: uint8(255), + 2589: uint8(255), + 2590: uint8(7), + 2592: uint8(255), + 2593: uint8(255), + 2594: uint8(255), + 2595: uint8(255), + 2596: uint8(255), + 2598: uint8(255), + 2599: uint8(3), + 2624: uint8(255), + 2625: uint8(255), + 2626: uint8(255), + 2627: uint8(31), + 2628: uint8(128), + 2630: uint8(255), + 2631: uint8(255), + 2632: uint8(63), + 2652: uint8(255), + 2653: uint8(255), + 2654: uint8(127), + 2656: uint8(255), + 2657: uint8(255), + 2658: uint8(255), + 2659: uint8(255), + 2660: uint8(255), + 2661: uint8(255), + 2662: uint8(255), + 2663: uint8(255), + 2664: uint8(63), + 2668: uint8(192), + 2669: uint8(255), + 2672: uint8(252), + 2673: uint8(255), + 2674: uint8(255), + 2675: uint8(255), + 2676: uint8(255), + 2677: uint8(255), + 2678: uint8(255), + 2679: uint8(1), + 2682: uint8(255), + 2683: uint8(255), + 2684: uint8(255), + 2685: uint8(1), + 2686: uint8(255), + 2687: uint8(3), + 2688: uint8(255), + 2689: uint8(255), + 2690: uint8(255), + 2691: uint8(255), + 2692: uint8(255), + 2693: uint8(255), + 2694: uint8(199), + 2695: uint8(255), + 2696: uint8(112), + 2698: uint8(255), + 2699: uint8(255), + 2700: uint8(255), + 2701: uint8(255), + 2702: uint8(71), + 2704: uint8(255), + 2705: uint8(255), + 2706: uint8(255), + 2707: uint8(255), + 2708: uint8(255), + 2709: uint8(255), + 2710: uint8(255), + 2711: uint8(255), + 2712: uint8(30), + 2714: uint8(255), + 2715: uint8(23), + 2720: uint8(255), + 2721: uint8(255), + 2722: uint8(251), + 2723: uint8(255), + 2724: uint8(255), + 2725: uint8(255), + 2726: uint8(159), + 2727: uint8(64), + 2736: uint8(127), + 2737: uint8(189), + 2738: uint8(255), + 2739: uint8(191), + 2740: uint8(255), + 2741: uint8(1), + 2742: uint8(255), + 2743: uint8(255), + 2744: uint8(255), + 2745: uint8(255), + 2746: uint8(255), + 2747: uint8(255), + 2748: uint8(255), + 2749: uint8(1), + 2750: uint8(255), + 2751: uint8(3), + 2752: uint8(239), + 2753: uint8(159), + 2754: uint8(249), + 2755: uint8(255), + 2756: uint8(255), + 2757: uint8(253), + 2758: uint8(237), + 2759: uint8(227), + 2760: uint8(159), + 2761: uint8(25), + 2762: uint8(129), + 2763: uint8(224), + 2764: uint8(15), + 2784: uint8(255), + 2785: uint8(255), + 2786: uint8(255), + 2787: uint8(255), + 2788: uint8(255), + 2789: uint8(255), + 2790: uint8(255), + 2791: uint8(255), + 2792: uint8(187), + 2793: uint8(7), + 2794: uint8(255), + 2795: uint8(131), + 2800: uint8(255), + 2801: uint8(255), + 2802: uint8(255), + 2803: uint8(255), + 2804: uint8(255), + 2805: uint8(255), + 2806: uint8(255), + 2807: uint8(255), + 2808: uint8(179), + 2810: uint8(255), + 2811: uint8(3), + 2832: uint8(255), + 2833: uint8(255), + 2834: uint8(255), + 2835: uint8(255), + 2836: uint8(255), + 2837: uint8(255), + 2838: uint8(63), + 2839: uint8(127), + 2843: uint8(63), + 2848: uint8(255), + 2849: uint8(255), + 2850: uint8(255), + 2851: uint8(255), + 2852: uint8(255), + 2853: uint8(255), + 2854: uint8(255), + 2855: uint8(127), + 2856: uint8(17), + 2858: uint8(255), + 2859: uint8(3), + 2864: uint8(255), + 2865: uint8(255), + 2866: uint8(255), + 2867: uint8(255), + 2868: uint8(255), + 2869: uint8(255), + 2870: uint8(63), + 2871: uint8(1), + 2872: uint8(255), + 2873: uint8(3), + 2880: uint8(255), + 2881: uint8(255), + 2882: uint8(255), + 2883: uint8(231), + 2884: uint8(255), + 2885: uint8(7), + 2886: uint8(255), + 2887: uint8(3), + 2912: uint8(255), + 2913: uint8(255), + 2914: uint8(255), + 2915: uint8(255), + 2916: uint8(255), + 2917: uint8(255), + 2918: uint8(255), + 2919: uint8(1), + 2932: uint8(255), + 2933: uint8(255), + 2934: uint8(255), + 2935: uint8(255), + 2936: uint8(255), + 2937: uint8(255), + 2938: uint8(255), + 2939: uint8(255), + 2940: uint8(255), + 2941: uint8(3), + 2943: uint8(128), + 2964: uint8(255), + 2965: uint8(252), + 2966: uint8(255), + 2967: uint8(255), + 2968: uint8(255), + 2969: uint8(255), + 2970: uint8(255), + 2971: uint8(252), + 2972: uint8(26), + 2976: uint8(255), + 2977: uint8(255), + 2978: uint8(255), + 2979: uint8(255), + 2980: uint8(255), + 2981: uint8(255), + 2982: uint8(231), + 2983: uint8(127), + 2986: uint8(255), + 2987: uint8(255), + 2988: uint8(255), + 2989: uint8(255), + 2990: uint8(255), + 2991: uint8(255), + 2992: uint8(255), + 2993: uint8(255), + 2994: uint8(255), + 2995: uint8(32), + 3000: uint8(255), + 3001: uint8(255), + 3002: uint8(255), + 3003: uint8(255), + 3004: uint8(255), + 3005: uint8(255), + 3006: uint8(255), + 3007: uint8(1), + 3008: uint8(255), + 3009: uint8(253), + 3010: uint8(255), + 3011: uint8(255), + 3012: uint8(255), + 3013: uint8(255), + 3014: uint8(127), + 3015: uint8(127), + 3016: uint8(1), + 3018: uint8(255), + 3019: uint8(3), + 3022: uint8(252), + 3023: uint8(255), + 3024: uint8(255), + 3025: uint8(255), + 3026: uint8(252), + 3027: uint8(255), + 3028: uint8(255), + 3029: uint8(254), + 3030: uint8(127), + 3040: uint8(127), + 3041: uint8(251), + 3042: uint8(255), + 3043: uint8(255), + 3044: uint8(255), + 3045: uint8(255), + 3046: uint8(127), + 3047: uint8(180), + 3048: uint8(203), + 3050: uint8(255), + 3051: uint8(3), + 3052: uint8(191), + 3053: uint8(253), + 3054: uint8(255), + 3055: uint8(255), + 3056: uint8(255), + 3057: uint8(127), + 3058: uint8(123), + 3059: uint8(1), + 3060: uint8(255), + 3061: uint8(3), + 3100: uint8(255), + 3101: uint8(255), + 3102: uint8(127), + 3104: uint8(255), + 3105: uint8(255), + 3106: uint8(255), + 3107: uint8(255), + 3108: uint8(255), + 3109: uint8(255), + 3110: uint8(255), + 3111: uint8(255), + 3112: uint8(255), + 3113: uint8(255), + 3114: uint8(255), + 3115: uint8(255), + 3116: uint8(255), + 3117: uint8(255), + 3118: uint8(255), + 3119: uint8(255), + 3120: uint8(255), + 3121: uint8(255), + 3122: uint8(255), + 3123: uint8(3), + 3136: uint8(255), + 3137: uint8(255), + 3138: uint8(255), + 3139: uint8(255), + 3140: uint8(255), + 3141: uint8(255), + 3142: uint8(255), + 3143: uint8(255), + 3144: uint8(255), + 3145: uint8(255), + 3146: uint8(255), + 3147: uint8(255), + 3148: uint8(255), + 3149: uint8(127), + 3152: uint8(255), + 3153: uint8(255), + 3154: uint8(255), + 3155: uint8(255), + 3156: uint8(255), + 3157: uint8(255), + 3158: uint8(255), + 3159: uint8(255), + 3160: uint8(255), + 3161: uint8(255), + 3162: uint8(255), + 3163: uint8(255), + 3164: uint8(255), + 3165: uint8(255), + 3166: uint8(255), + 3167: uint8(255), + 3168: uint8(255), + 3169: uint8(255), + 3170: uint8(255), + 3171: uint8(255), + 3172: uint8(255), + 3173: uint8(255), + 3174: uint8(255), + 3175: uint8(255), + 3176: uint8(15), + 3200: uint8(255), + 3201: uint8(255), + 3202: uint8(255), + 3203: uint8(255), + 3204: uint8(255), + 3205: uint8(127), + 3232: uint8(255), + 3233: uint8(255), + 3234: uint8(255), + 3235: uint8(255), + 3236: uint8(255), + 3237: uint8(255), + 3238: uint8(255), + 3239: uint8(255), + 3240: uint8(127), + 3264: uint8(255), + 3265: uint8(255), + 3266: uint8(255), + 3267: uint8(255), + 3268: uint8(255), + 3269: uint8(255), + 3270: uint8(255), + 3271: uint8(1), + 3272: uint8(255), + 3273: uint8(255), + 3274: uint8(255), + 3275: uint8(127), + 3276: uint8(255), + 3277: uint8(3), + 3290: uint8(255), + 3291: uint8(255), + 3292: uint8(255), + 3293: uint8(63), + 3296: uint8(255), + 3297: uint8(255), + 3298: uint8(255), + 3299: uint8(255), + 3300: uint8(255), + 3301: uint8(255), + 3304: uint8(15), + 3306: uint8(255), + 3307: uint8(3), + 3308: uint8(248), + 3309: uint8(255), + 3310: uint8(255), + 3311: uint8(224), + 3312: uint8(255), + 3313: uint8(255), + 3336: uint8(255), + 3337: uint8(255), + 3338: uint8(255), + 3339: uint8(255), + 3340: uint8(255), + 3341: uint8(255), + 3342: uint8(255), + 3343: uint8(255), + 3360: uint8(255), + 3361: uint8(255), + 3362: uint8(255), + 3363: uint8(255), + 3364: uint8(255), + 3365: uint8(255), + 3366: uint8(255), + 3367: uint8(255), + 3368: uint8(255), + 3369: uint8(135), + 3370: uint8(255), + 3371: uint8(255), + 3372: uint8(255), + 3373: uint8(255), + 3374: uint8(255), + 3375: uint8(255), + 3376: uint8(255), + 3377: uint8(128), + 3378: uint8(255), + 3379: uint8(255), + 3388: uint8(11), + 3392: uint8(255), + 3393: uint8(255), + 3394: uint8(255), + 3395: uint8(255), + 3396: uint8(255), + 3397: uint8(255), + 3398: uint8(255), + 3399: uint8(255), + 3400: uint8(255), + 3401: uint8(255), + 3402: uint8(255), + 3403: uint8(255), + 3404: uint8(255), + 3405: uint8(255), + 3406: uint8(255), + 3407: uint8(255), + 3408: uint8(255), + 3409: uint8(255), + 3410: uint8(255), + 3411: uint8(255), + 3412: uint8(255), + 3413: uint8(255), + 3414: uint8(255), + 3415: uint8(255), + 3416: uint8(255), + 3417: uint8(255), + 3418: uint8(255), + 3419: uint8(255), + 3420: uint8(255), + 3421: uint8(255), + 3422: uint8(255), + 3424: uint8(255), + 3425: uint8(255), + 3426: uint8(255), + 3427: uint8(255), + 3428: uint8(255), + 3429: uint8(255), + 3430: uint8(255), + 3431: uint8(255), + 3432: uint8(255), + 3433: uint8(255), + 3434: uint8(255), + 3435: uint8(255), + 3436: uint8(255), + 3437: uint8(255), + 3438: uint8(255), + 3439: uint8(255), + 3440: uint8(255), + 3441: uint8(255), + 3442: uint8(255), + 3443: uint8(255), + 3444: uint8(255), + 3445: uint8(255), + 3446: uint8(255), + 3447: uint8(255), + 3448: uint8(255), + 3449: uint8(255), + 3450: uint8(255), + 3451: uint8(255), + 3452: uint8(255), + 3453: uint8(255), + 3454: uint8(7), + 3456: uint8(255), + 3457: uint8(255), + 3458: uint8(255), + 3459: uint8(127), + 3466: uint8(7), + 3468: uint8(240), + 3470: uint8(255), + 3471: uint8(255), + 3472: uint8(255), + 3473: uint8(255), + 3474: uint8(255), + 3475: uint8(255), + 3476: uint8(255), + 3477: uint8(255), + 3478: uint8(255), + 3479: uint8(255), + 3480: uint8(255), + 3481: uint8(255), + 3482: uint8(255), + 3483: uint8(255), + 3484: uint8(255), + 3485: uint8(255), + 3486: uint8(255), + 3487: uint8(255), + 3488: uint8(255), + 3489: uint8(255), + 3490: uint8(255), + 3491: uint8(255), + 3492: uint8(255), + 3493: uint8(255), + 3494: uint8(255), + 3495: uint8(255), + 3496: uint8(255), + 3497: uint8(255), + 3498: uint8(255), + 3499: uint8(255), + 3500: uint8(255), + 3501: uint8(255), + 3502: uint8(255), + 3503: uint8(255), + 3504: uint8(255), + 3505: uint8(255), + 3506: uint8(255), + 3507: uint8(255), + 3508: uint8(255), + 3509: uint8(255), + 3510: uint8(255), + 3511: uint8(255), + 3512: uint8(255), + 3513: uint8(255), + 3514: uint8(255), + 3515: uint8(255), + 3516: uint8(255), + 3517: uint8(255), + 3518: uint8(255), + 3519: uint8(15), + 3520: uint8(255), + 3521: uint8(255), + 3522: uint8(255), + 3523: uint8(255), + 3524: uint8(255), + 3525: uint8(255), + 3526: uint8(255), + 3527: uint8(255), + 3528: uint8(255), + 3529: uint8(255), + 3530: uint8(255), + 3531: uint8(255), + 3532: uint8(255), + 3533: uint8(7), + 3534: uint8(255), + 3535: uint8(31), + 3536: uint8(255), + 3537: uint8(1), + 3538: uint8(255), + 3539: uint8(67), + 3552: uint8(255), + 3553: uint8(255), + 3554: uint8(255), + 3555: uint8(255), + 3556: uint8(255), + 3557: uint8(255), + 3558: uint8(255), + 3559: uint8(255), + 3560: uint8(255), + 3561: uint8(255), + 3562: uint8(223), + 3563: uint8(255), + 3564: uint8(255), + 3565: uint8(255), + 3566: uint8(255), + 3567: uint8(255), + 3568: uint8(255), + 3569: uint8(255), + 3570: uint8(255), + 3571: uint8(223), + 3572: uint8(100), + 3573: uint8(222), + 3574: uint8(255), + 3575: uint8(235), + 3576: uint8(239), + 3577: uint8(255), + 3578: uint8(255), + 3579: uint8(255), + 3580: uint8(255), + 3581: uint8(255), + 3582: uint8(255), + 3583: uint8(255), + 3584: uint8(191), + 3585: uint8(231), + 3586: uint8(223), + 3587: uint8(223), + 3588: uint8(255), + 3589: uint8(255), + 3590: uint8(255), + 3591: uint8(123), + 3592: uint8(95), + 3593: uint8(252), + 3594: uint8(253), + 3595: uint8(255), + 3596: uint8(255), + 3597: uint8(255), + 3598: uint8(255), + 3599: uint8(255), + 3600: uint8(255), + 3601: uint8(255), + 3602: uint8(255), + 3603: uint8(255), + 3604: uint8(255), + 3605: uint8(255), + 3606: uint8(255), + 3607: uint8(255), + 3608: uint8(255), + 3609: uint8(255), + 3610: uint8(255), + 3611: uint8(255), + 3612: uint8(255), + 3613: uint8(255), + 3614: uint8(255), + 3615: uint8(255), + 3616: uint8(255), + 3617: uint8(255), + 3618: uint8(255), + 3619: uint8(255), + 3620: uint8(255), + 3621: uint8(255), + 3622: uint8(255), + 3623: uint8(255), + 3624: uint8(255), + 3625: uint8(255), + 3626: uint8(255), + 3627: uint8(255), + 3628: uint8(255), + 3629: uint8(255), + 3630: uint8(255), + 3631: uint8(255), + 3632: uint8(255), + 3633: uint8(255), + 3634: uint8(255), + 3635: uint8(255), + 3636: uint8(63), + 3637: uint8(255), + 3638: uint8(255), + 3639: uint8(255), + 3640: uint8(253), + 3641: uint8(255), + 3642: uint8(255), + 3643: uint8(247), + 3644: uint8(255), + 3645: uint8(255), + 3646: uint8(255), + 3647: uint8(247), + 3648: uint8(255), + 3649: uint8(255), + 3650: uint8(223), + 3651: uint8(255), + 3652: uint8(255), + 3653: uint8(255), + 3654: uint8(223), + 3655: uint8(255), + 3656: uint8(255), + 3657: uint8(127), + 3658: uint8(255), + 3659: uint8(255), + 3660: uint8(255), + 3661: uint8(127), + 3662: uint8(255), + 3663: uint8(255), + 3664: uint8(255), + 3665: uint8(253), + 3666: uint8(255), + 3667: uint8(255), + 3668: uint8(255), + 3669: uint8(253), + 3670: uint8(255), + 3671: uint8(255), + 3672: uint8(247), + 3673: uint8(207), + 3674: uint8(255), + 3675: uint8(255), + 3676: uint8(255), + 3677: uint8(255), + 3678: uint8(255), + 3679: uint8(255), + 3680: uint8(127), + 3681: uint8(255), + 3682: uint8(255), + 3683: uint8(249), + 3684: uint8(219), + 3685: uint8(7), + 3712: uint8(255), + 3713: uint8(255), + 3714: uint8(255), + 3715: uint8(255), + 3716: uint8(255), + 3717: uint8(31), + 3718: uint8(128), + 3719: uint8(63), + 3720: uint8(255), + 3721: uint8(67), + 3768: uint8(255), + 3769: uint8(255), + 3770: uint8(255), + 3771: uint8(255), + 3772: uint8(255), + 3773: uint8(15), + 3774: uint8(255), + 3775: uint8(3), + 3776: uint8(255), + 3777: uint8(255), + 3778: uint8(255), + 3779: uint8(255), + 3780: uint8(255), + 3781: uint8(255), + 3782: uint8(255), + 3783: uint8(255), + 3784: uint8(255), + 3785: uint8(255), + 3786: uint8(255), + 3787: uint8(255), + 3788: uint8(255), + 3789: uint8(255), + 3790: uint8(255), + 3791: uint8(255), + 3792: uint8(255), + 3793: uint8(255), + 3794: uint8(255), + 3795: uint8(255), + 3796: uint8(255), + 3797: uint8(255), + 3798: uint8(255), + 3799: uint8(255), + 3800: uint8(31), + 3808: uint8(255), + 3809: uint8(255), + 3810: uint8(255), + 3811: uint8(255), + 3812: uint8(255), + 3813: uint8(255), + 3814: uint8(255), + 3815: uint8(255), + 3816: uint8(143), + 3817: uint8(8), + 3818: uint8(255), + 3819: uint8(3), + 3840: uint8(239), + 3841: uint8(255), + 3842: uint8(255), + 3843: uint8(255), + 3844: uint8(150), + 3845: uint8(254), + 3846: uint8(247), + 3847: uint8(10), + 3848: uint8(132), + 3849: uint8(234), + 3850: uint8(150), + 3851: uint8(170), + 3852: uint8(150), + 3853: uint8(247), + 3854: uint8(247), + 3855: uint8(94), + 3856: uint8(255), + 3857: uint8(251), + 3858: uint8(255), + 3859: uint8(15), + 3860: uint8(238), + 3861: uint8(251), + 3862: uint8(255), + 3863: uint8(15), + 3878: uint8(255), + 3879: uint8(255), + 3880: uint8(255), + 3881: uint8(3), + 3882: uint8(255), + 3883: uint8(255), + 3884: uint8(255), + 3885: uint8(3), + 3886: uint8(255), + 3887: uint8(255), + 3888: uint8(255), + 3889: uint8(3), +} + +func Xiswalpha(tls *TLS, wc Twint_t) (r int32) { + if __ccgo_strace { + trc("tls=%v wc=%v, (%v:)", tls, wc, origin(2)) + defer func() { trc("-> %v", r) }() + } + if wc < uint32(0x20000) { + return int32(_table3[uint32(int32(_table3[wc>>int32(8)])*int32(32))+wc&uint32(255)>>int32(3)]) >> (wc & uint32(7)) & int32(1) + } + if wc < uint32(0x2fffe) { + return int32(1) + } + return 0 +} + +func X__iswalpha_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xiswalpha(tls, c) +} + +func Xiswalpha_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__iswalpha_l(tls, c, l) +} + +func Xiswblank(tls *TLS, wc Twint_t) (r int32) { + if __ccgo_strace { + trc("tls=%v wc=%v, (%v:)", tls, wc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xisblank(tls, int32(wc)) +} + +func X__iswblank_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xiswblank(tls, c) +} + +func Xiswblank_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__iswblank_l(tls, c, l) +} + +func Xiswcntrl(tls *TLS, wc Twint_t) (r int32) { + if __ccgo_strace { + trc("tls=%v wc=%v, (%v:)", tls, wc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(wc < uint32(32) || wc-Uint32FromInt32(0x7f) < uint32(33) || wc-Uint32FromInt32(0x2028) < uint32(2) || wc-Uint32FromInt32(0xfff9) < uint32(3)) +} + +func X__iswcntrl_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xiswcntrl(tls, c) +} + +func Xiswcntrl_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__iswcntrl_l(tls, c, l) +} + +const WCTYPE_ALNUM = 1 +const WCTYPE_ALPHA = 2 +const WCTYPE_BLANK = 3 +const WCTYPE_CNTRL = 4 +const WCTYPE_DIGIT = 5 +const WCTYPE_GRAPH = 6 +const WCTYPE_LOWER = 7 +const WCTYPE_PRINT = 8 +const WCTYPE_PUNCT = 9 +const WCTYPE_SPACE = 10 +const WCTYPE_UPPER = 11 +const WCTYPE_XDIGIT = 12 + +func Xiswctype(tls *TLS, wc Twint_t, type1 Twctype_t) (r int32) { + if __ccgo_strace { + trc("tls=%v wc=%v type1=%v, (%v:)", tls, wc, type1, origin(2)) + defer func() { trc("-> %v", r) }() + } + switch type1 { + case uint64(WCTYPE_ALNUM): + return Xiswalnum(tls, wc) + case uint64(WCTYPE_ALPHA): + return Xiswalpha(tls, wc) + case uint64(WCTYPE_BLANK): + return Xiswblank(tls, wc) + case uint64(WCTYPE_CNTRL): + return Xiswcntrl(tls, wc) + case uint64(WCTYPE_DIGIT): + return BoolInt32(wc-uint32('0') < uint32(10)) + case uint64(WCTYPE_GRAPH): + return Xiswgraph(tls, wc) + case uint64(WCTYPE_LOWER): + return Xiswlower(tls, wc) + case uint64(WCTYPE_PRINT): + return Xiswprint(tls, wc) + case uint64(WCTYPE_PUNCT): + return Xiswpunct(tls, wc) + case uint64(WCTYPE_SPACE): + return Xiswspace(tls, wc) + case uint64(WCTYPE_UPPER): + return Xiswupper(tls, wc) + case uint64(WCTYPE_XDIGIT): + return Xiswxdigit(tls, wc) + } + return 0 +} + +func Xwctype(tls *TLS, s uintptr) (r Twctype_t) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + var i int32 + var p uintptr + _, _ = i, p + i = int32(1) + p = uintptr(unsafe.Pointer(&_names)) + for { + if !(*(*uint8)(unsafe.Pointer(p)) != 0) { + break + } + if int32(*(*uint8)(unsafe.Pointer(s))) == int32(*(*uint8)(unsafe.Pointer(p))) && !(Xstrcmp(tls, s, p) != 0) { + return uint64(i) + } + goto _1 + _1: + ; + i++ + p += uintptr(6) + } + return uint64(0) +} + +/* order must match! */ +var _names = [73]uint8{'a', 'l', 'n', 'u', 'm', 0, 'a', 'l', 'p', 'h', 'a', 0, 'b', 'l', 'a', 'n', 'k', 0, 'c', 'n', 't', 'r', 'l', 0, 'd', 'i', 'g', 'i', 't', 0, 'g', 'r', 'a', 'p', 'h', 0, 'l', 'o', 'w', 'e', 'r', 0, 'p', 'r', 'i', 'n', 't', 0, 'p', 'u', 'n', 'c', 't', 0, 's', 'p', 'a', 'c', 'e', 0, 'u', 'p', 'p', 'e', 'r', 0, 'x', 'd', 'i', 'g', 'i', 't'} + +func X__iswctype_l(tls *TLS, c Twint_t, t Twctype_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v t=%v l=%v, (%v:)", tls, c, t, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xiswctype(tls, c, t) +} + +func X__wctype_l(tls *TLS, s uintptr, l Tlocale_t) (r Twctype_t) { + if __ccgo_strace { + trc("tls=%v s=%v l=%v, (%v:)", tls, s, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xwctype(tls, s) +} + +func Xiswctype_l(tls *TLS, c Twint_t, t Twctype_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v t=%v l=%v, (%v:)", tls, c, t, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__iswctype_l(tls, c, t, l) +} + +func Xwctype_l(tls *TLS, s uintptr, l Tlocale_t) (r Twctype_t) { + if __ccgo_strace { + trc("tls=%v s=%v l=%v, (%v:)", tls, s, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__wctype_l(tls, s, l) +} + +func Xiswdigit(tls *TLS, wc Twint_t) (r int32) { + if __ccgo_strace { + trc("tls=%v wc=%v, (%v:)", tls, wc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(wc-uint32('0') < uint32(10)) +} + +func X__iswdigit_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xiswdigit(tls, c) +} + +func Xiswdigit_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__iswdigit_l(tls, c, l) +} + +func Xiswgraph(tls *TLS, wc Twint_t) (r int32) { + if __ccgo_strace { + trc("tls=%v wc=%v, (%v:)", tls, wc, origin(2)) + defer func() { trc("-> %v", r) }() + } + /* ISO C defines this function as: */ + return BoolInt32(!(Xiswspace(tls, wc) != 0) && Xiswprint(tls, wc) != 0) +} + +func X__iswgraph_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xiswgraph(tls, c) +} + +func Xiswgraph_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__iswgraph_l(tls, c, l) +} + +func Xiswlower(tls *TLS, wc Twint_t) (r int32) { + if __ccgo_strace { + trc("tls=%v wc=%v, (%v:)", tls, wc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(Xtowupper(tls, wc) != wc) +} + +func X__iswlower_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xiswlower(tls, c) +} + +func Xiswlower_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__iswlower_l(tls, c, l) +} + +/* Consider all legal codepoints as printable except for: + * - C0 and C1 control characters + * - U+2028 and U+2029 (line/para break) + * - U+FFF9 through U+FFFB (interlinear annotation controls) + * The following code is optimized heavily to make hot paths for the + * expected printable characters. */ + +func Xiswprint(tls *TLS, wc Twint_t) (r int32) { + if __ccgo_strace { + trc("tls=%v wc=%v, (%v:)", tls, wc, origin(2)) + defer func() { trc("-> %v", r) }() + } + if wc < uint32(0xff) { + return BoolInt32((wc+uint32(1))&uint32(0x7f) >= uint32(0x21)) + } + if wc < uint32(0x2028) || wc-uint32(0x202a) < uint32(Int32FromInt32(0xd800)-Int32FromInt32(0x202a)) || wc-uint32(0xe000) < uint32(Int32FromInt32(0xfff9)-Int32FromInt32(0xe000)) { + return int32(1) + } + if wc-uint32(0xfffc) > uint32(Int32FromInt32(0x10ffff)-Int32FromInt32(0xfffc)) || wc&uint32(0xfffe) == uint32(0xfffe) { + return 0 + } + return int32(1) +} + +func X__iswprint_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xiswprint(tls, c) +} + +func Xiswprint_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__iswprint_l(tls, c, l) +} + +var _table4 = [4000]uint8{ + 0: uint8(18), + 1: uint8(16), + 2: uint8(19), + 3: uint8(20), + 4: uint8(21), + 5: uint8(22), + 6: uint8(23), + 7: uint8(24), + 8: uint8(25), + 9: uint8(26), + 10: uint8(27), + 11: uint8(28), + 12: uint8(29), + 13: uint8(30), + 14: uint8(31), + 15: uint8(32), + 16: uint8(33), + 17: uint8(16), + 18: uint8(16), + 19: uint8(34), + 20: uint8(35), + 21: uint8(16), + 22: uint8(36), + 23: uint8(37), + 24: uint8(38), + 25: uint8(39), + 26: uint8(40), + 27: uint8(41), + 28: uint8(42), + 29: uint8(43), + 30: uint8(16), + 31: uint8(44), + 32: uint8(45), + 33: uint8(46), + 34: uint8(17), + 35: uint8(17), + 36: uint8(47), + 37: uint8(17), + 38: uint8(17), + 39: uint8(17), + 40: uint8(17), + 41: uint8(17), + 42: uint8(17), + 43: uint8(48), + 44: uint8(49), + 45: uint8(50), + 46: uint8(51), + 47: uint8(52), + 48: uint8(53), + 49: uint8(54), + 50: uint8(55), + 51: uint8(17), + 52: uint8(16), + 53: uint8(16), + 54: uint8(16), + 55: uint8(16), + 56: uint8(16), + 57: uint8(16), + 58: uint8(16), + 59: uint8(16), + 60: uint8(16), + 61: uint8(16), + 62: uint8(16), + 63: uint8(16), + 64: uint8(16), + 65: uint8(16), + 66: uint8(16), + 67: uint8(16), + 68: uint8(16), + 69: uint8(16), + 70: uint8(16), + 71: uint8(16), + 72: uint8(16), + 73: uint8(16), + 74: uint8(16), + 75: uint8(16), + 76: uint8(16), + 77: uint8(56), + 78: uint8(16), + 79: uint8(16), + 80: uint8(16), + 81: uint8(16), + 82: uint8(16), + 83: uint8(16), + 84: uint8(16), + 85: uint8(16), + 86: uint8(16), + 87: uint8(16), + 88: uint8(16), + 89: uint8(16), + 90: uint8(16), + 91: uint8(16), + 92: uint8(16), + 93: uint8(16), + 94: uint8(16), + 95: uint8(16), + 96: uint8(16), + 97: uint8(16), + 98: uint8(16), + 99: uint8(16), + 100: uint8(16), + 101: uint8(16), + 102: uint8(16), + 103: uint8(16), + 104: uint8(16), + 105: uint8(16), + 106: uint8(16), + 107: uint8(16), + 108: uint8(16), + 109: uint8(16), + 110: uint8(16), + 111: uint8(16), + 112: uint8(16), + 113: uint8(16), + 114: uint8(16), + 115: uint8(16), + 116: uint8(16), + 117: uint8(16), + 118: uint8(16), + 119: uint8(16), + 120: uint8(16), + 121: uint8(16), + 122: uint8(16), + 123: uint8(16), + 124: uint8(16), + 125: uint8(16), + 126: uint8(16), + 127: uint8(16), + 128: uint8(16), + 129: uint8(16), + 130: uint8(16), + 131: uint8(16), + 132: uint8(16), + 133: uint8(16), + 134: uint8(16), + 135: uint8(16), + 136: uint8(16), + 137: uint8(16), + 138: uint8(16), + 139: uint8(16), + 140: uint8(16), + 141: uint8(16), + 142: uint8(16), + 143: uint8(16), + 144: uint8(16), + 145: uint8(16), + 146: uint8(16), + 147: uint8(16), + 148: uint8(16), + 149: uint8(16), + 150: uint8(16), + 151: uint8(16), + 152: uint8(16), + 153: uint8(16), + 154: uint8(16), + 155: uint8(16), + 156: uint8(16), + 157: uint8(16), + 158: uint8(16), + 159: uint8(16), + 160: uint8(16), + 161: uint8(16), + 162: uint8(16), + 163: uint8(16), + 164: uint8(57), + 165: uint8(16), + 166: uint8(58), + 167: uint8(59), + 168: uint8(60), + 169: uint8(61), + 170: uint8(62), + 171: uint8(63), + 172: uint8(16), + 173: uint8(16), + 174: uint8(16), + 175: uint8(16), + 176: uint8(16), + 177: uint8(16), + 178: uint8(16), + 179: uint8(16), + 180: uint8(16), + 181: uint8(16), + 182: uint8(16), + 183: uint8(16), + 184: uint8(16), + 185: uint8(16), + 186: uint8(16), + 187: uint8(16), + 188: uint8(16), + 189: uint8(16), + 190: uint8(16), + 191: uint8(16), + 192: uint8(16), + 193: uint8(16), + 194: uint8(16), + 195: uint8(16), + 196: uint8(16), + 197: uint8(16), + 198: uint8(16), + 199: uint8(16), + 200: uint8(16), + 201: uint8(16), + 202: uint8(16), + 203: uint8(16), + 204: uint8(16), + 205: uint8(16), + 206: uint8(16), + 207: uint8(16), + 208: uint8(16), + 209: uint8(16), + 210: uint8(16), + 211: uint8(16), + 212: uint8(16), + 213: uint8(16), + 214: uint8(16), + 215: uint8(16), + 216: uint8(16), + 217: uint8(16), + 218: uint8(16), + 219: uint8(16), + 220: uint8(16), + 221: uint8(16), + 222: uint8(16), + 223: uint8(16), + 224: uint8(64), + 225: uint8(16), + 226: uint8(16), + 227: uint8(16), + 228: uint8(16), + 229: uint8(16), + 230: uint8(16), + 231: uint8(16), + 232: uint8(16), + 233: uint8(16), + 234: uint8(16), + 235: uint8(16), + 236: uint8(16), + 237: uint8(16), + 238: uint8(16), + 239: uint8(16), + 240: uint8(16), + 241: uint8(16), + 242: uint8(16), + 243: uint8(16), + 244: uint8(16), + 245: uint8(16), + 246: uint8(16), + 247: uint8(16), + 248: uint8(65), + 249: uint8(16), + 250: uint8(16), + 251: uint8(66), + 252: uint8(16), + 253: uint8(67), + 254: uint8(68), + 255: uint8(69), + 256: uint8(16), + 257: uint8(70), + 258: uint8(71), + 259: uint8(72), + 260: uint8(16), + 261: uint8(73), + 262: uint8(16), + 263: uint8(16), + 264: uint8(74), + 265: uint8(75), + 266: uint8(76), + 267: uint8(77), + 268: uint8(78), + 269: uint8(16), + 270: uint8(79), + 271: uint8(80), + 272: uint8(81), + 273: uint8(82), + 274: uint8(83), + 275: uint8(84), + 276: uint8(85), + 277: uint8(86), + 278: uint8(87), + 279: uint8(88), + 280: uint8(89), + 281: uint8(90), + 282: uint8(91), + 283: uint8(16), + 284: uint8(92), + 285: uint8(93), + 286: uint8(94), + 287: uint8(95), + 288: uint8(16), + 289: uint8(16), + 290: uint8(16), + 291: uint8(16), + 292: uint8(96), + 293: uint8(16), + 294: uint8(16), + 295: uint8(16), + 296: uint8(16), + 297: uint8(16), + 298: uint8(16), + 299: uint8(16), + 300: uint8(16), + 301: uint8(16), + 302: uint8(16), + 303: uint8(16), + 304: uint8(16), + 305: uint8(16), + 306: uint8(16), + 307: uint8(16), + 308: uint8(97), + 309: uint8(16), + 310: uint8(16), + 311: uint8(16), + 312: uint8(16), + 313: uint8(16), + 314: uint8(16), + 315: uint8(16), + 316: uint8(16), + 317: uint8(16), + 318: uint8(16), + 319: uint8(16), + 320: uint8(16), + 321: uint8(16), + 322: uint8(16), + 323: uint8(16), + 324: uint8(16), + 325: uint8(16), + 326: uint8(16), + 327: uint8(16), + 328: uint8(16), + 329: uint8(16), + 330: uint8(16), + 331: uint8(16), + 332: uint8(16), + 333: uint8(16), + 334: uint8(16), + 335: uint8(16), + 336: uint8(16), + 337: uint8(16), + 338: uint8(16), + 339: uint8(16), + 340: uint8(16), + 341: uint8(16), + 342: uint8(16), + 343: uint8(16), + 344: uint8(16), + 345: uint8(16), + 346: uint8(16), + 347: uint8(16), + 348: uint8(16), + 349: uint8(16), + 350: uint8(16), + 351: uint8(16), + 352: uint8(16), + 353: uint8(16), + 354: uint8(16), + 355: uint8(16), + 356: uint8(16), + 357: uint8(16), + 358: uint8(16), + 359: uint8(16), + 360: uint8(16), + 361: uint8(16), + 362: uint8(98), + 363: uint8(99), + 364: uint8(16), + 365: uint8(16), + 366: uint8(100), + 367: uint8(101), + 368: uint8(16), + 369: uint8(16), + 370: uint8(16), + 371: uint8(16), + 372: uint8(16), + 373: uint8(16), + 374: uint8(16), + 375: uint8(16), + 376: uint8(16), + 377: uint8(16), + 378: uint8(16), + 379: uint8(16), + 380: uint8(16), + 381: uint8(16), + 382: uint8(16), + 383: uint8(16), + 384: uint8(16), + 385: uint8(16), + 386: uint8(16), + 387: uint8(16), + 388: uint8(16), + 389: uint8(16), + 390: uint8(16), + 391: uint8(16), + 392: uint8(16), + 393: uint8(16), + 394: uint8(16), + 395: uint8(16), + 396: uint8(16), + 397: uint8(16), + 398: uint8(16), + 399: uint8(16), + 400: uint8(16), + 401: uint8(16), + 402: uint8(16), + 403: uint8(16), + 404: uint8(16), + 405: uint8(16), + 406: uint8(16), + 407: uint8(16), + 408: uint8(16), + 409: uint8(16), + 410: uint8(16), + 411: uint8(16), + 412: uint8(16), + 413: uint8(16), + 414: uint8(16), + 415: uint8(16), + 416: uint8(16), + 417: uint8(16), + 418: uint8(16), + 419: uint8(16), + 420: uint8(16), + 421: uint8(16), + 422: uint8(16), + 423: uint8(16), + 424: uint8(16), + 425: uint8(16), + 426: uint8(16), + 427: uint8(16), + 428: uint8(16), + 429: uint8(16), + 430: uint8(16), + 431: uint8(16), + 432: uint8(16), + 433: uint8(16), + 434: uint8(16), + 435: uint8(16), + 436: uint8(16), + 437: uint8(16), + 438: uint8(16), + 439: uint8(16), + 440: uint8(16), + 441: uint8(16), + 442: uint8(16), + 443: uint8(16), + 444: uint8(102), + 445: uint8(16), + 446: uint8(16), + 447: uint8(16), + 448: uint8(16), + 449: uint8(16), + 450: uint8(16), + 451: uint8(16), + 452: uint8(16), + 453: uint8(16), + 454: uint8(16), + 455: uint8(16), + 456: uint8(16), + 457: uint8(16), + 458: uint8(16), + 459: uint8(16), + 460: uint8(16), + 461: uint8(16), + 462: uint8(16), + 463: uint8(16), + 464: uint8(103), + 465: uint8(104), + 466: uint8(105), + 467: uint8(106), + 468: uint8(16), + 469: uint8(16), + 470: uint8(107), + 471: uint8(108), + 472: uint8(17), + 473: uint8(17), + 474: uint8(109), + 475: uint8(16), + 476: uint8(16), + 477: uint8(16), + 478: uint8(16), + 479: uint8(16), + 480: uint8(16), + 481: uint8(110), + 482: uint8(111), + 483: uint8(16), + 484: uint8(16), + 485: uint8(16), + 486: uint8(16), + 487: uint8(16), + 488: uint8(112), + 489: uint8(113), + 490: uint8(16), + 491: uint8(16), + 492: uint8(114), + 493: uint8(115), + 494: uint8(116), + 495: uint8(16), + 496: uint8(117), + 497: uint8(118), + 498: uint8(119), + 499: uint8(17), + 500: uint8(17), + 501: uint8(17), + 502: uint8(120), + 503: uint8(121), + 504: uint8(122), + 505: uint8(123), + 506: uint8(124), + 507: uint8(16), + 508: uint8(16), + 509: uint8(16), + 510: uint8(16), + 511: uint8(16), + 544: uint8(255), + 545: uint8(255), + 546: uint8(255), + 547: uint8(255), + 548: uint8(255), + 549: uint8(255), + 550: uint8(255), + 551: uint8(255), + 552: uint8(255), + 553: uint8(255), + 554: uint8(255), + 555: uint8(255), + 556: uint8(255), + 557: uint8(255), + 558: uint8(255), + 559: uint8(255), + 560: uint8(255), + 561: uint8(255), + 562: uint8(255), + 563: uint8(255), + 564: uint8(255), + 565: uint8(255), + 566: uint8(255), + 567: uint8(255), + 568: uint8(255), + 569: uint8(255), + 570: uint8(255), + 571: uint8(255), + 572: uint8(255), + 573: uint8(255), + 574: uint8(255), + 575: uint8(255), + 580: uint8(254), + 581: uint8(255), + 583: uint8(252), + 584: uint8(1), + 587: uint8(248), + 588: uint8(1), + 591: uint8(120), + 596: uint8(255), + 597: uint8(251), + 598: uint8(223), + 599: uint8(251), + 602: uint8(128), + 606: uint8(128), + 632: uint8(60), + 634: uint8(252), + 635: uint8(255), + 636: uint8(224), + 637: uint8(175), + 638: uint8(255), + 639: uint8(255), + 640: uint8(255), + 641: uint8(255), + 642: uint8(255), + 643: uint8(255), + 644: uint8(255), + 645: uint8(255), + 646: uint8(255), + 647: uint8(255), + 648: uint8(223), + 649: uint8(255), + 650: uint8(255), + 651: uint8(255), + 652: uint8(255), + 653: uint8(255), + 654: uint8(32), + 655: uint8(64), + 656: uint8(176), + 670: uint8(64), + 688: uint8(252), + 689: uint8(3), + 715: uint8(252), + 721: uint8(230), + 722: uint8(254), + 723: uint8(255), + 724: uint8(255), + 725: uint8(255), + 727: uint8(64), + 728: uint8(73), + 734: uint8(24), + 736: uint8(255), + 737: uint8(255), + 739: uint8(216), + 747: uint8(1), + 749: uint8(60), + 762: uint8(16), + 763: uint8(224), + 764: uint8(1), + 765: uint8(30), + 767: uint8(96), + 768: uint8(255), + 769: uint8(191), + 776: uint8(255), + 777: uint8(7), + 797: uint8(248), + 798: uint8(207), + 799: uint8(227), + 803: uint8(3), + 805: uint8(32), + 806: uint8(255), + 807: uint8(127), + 811: uint8(78), + 826: uint8(8), + 828: uint8(7), + 829: uint8(252), + 839: uint8(16), + 841: uint8(32), + 842: uint8(30), + 844: uint8(48), + 846: uint8(1), + 855: uint8(16), + 857: uint8(32), + 862: uint8(252), + 863: uint8(111), + 871: uint8(16), + 873: uint8(32), + 878: uint8(64), + 887: uint8(16), + 889: uint8(32), + 894: uint8(3), + 895: uint8(224), + 903: uint8(16), + 905: uint8(32), + 910: uint8(253), + 921: uint8(32), + 926: uint8(255), + 927: uint8(7), + 928: uint8(16), + 937: uint8(32), + 942: uint8(128), + 943: uint8(255), + 944: uint8(16), + 951: uint8(16), + 953: uint8(32), + 967: uint8(24), + 969: uint8(160), + 971: uint8(127), + 974: uint8(255), + 975: uint8(3), + 985: uint8(4), + 990: uint8(16), + 997: uint8(128), + 999: uint8(128), + 1000: uint8(192), + 1001: uint8(223), + 1003: uint8(12), + 1015: uint8(4), + 1017: uint8(31), + 1024: uint8(254), + 1025: uint8(255), + 1026: uint8(255), + 1027: uint8(255), + 1029: uint8(252), + 1030: uint8(255), + 1031: uint8(255), + 1040: uint8(252), + 1047: uint8(192), + 1048: uint8(255), + 1049: uint8(223), + 1050: uint8(255), + 1051: uint8(7), + 1062: uint8(128), + 1063: uint8(6), + 1065: uint8(252), + 1075: uint8(192), + 1087: uint8(8), + 1099: uint8(224), + 1100: uint8(255), + 1101: uint8(255), + 1102: uint8(255), + 1103: uint8(31), + 1106: uint8(255), + 1107: uint8(3), + 1120: uint8(1), + 1165: uint8(96), + 1168: uint8(1), + 1171: uint8(24), + 1181: uint8(56), + 1186: uint8(16), + 1190: uint8(112), + 1206: uint8(48), + 1209: uint8(254), + 1210: uint8(127), + 1211: uint8(47), + 1214: uint8(255), + 1215: uint8(3), + 1216: uint8(255), + 1217: uint8(127), + 1255: uint8(14), + 1256: uint8(49), + 1275: uint8(196), + 1276: uint8(255), + 1277: uint8(255), + 1278: uint8(255), + 1279: uint8(255), + 1283: uint8(192), + 1292: uint8(1), + 1294: uint8(224), + 1295: uint8(159), + 1300: uint8(127), + 1301: uint8(63), + 1302: uint8(255), + 1303: uint8(127), + 1318: uint8(16), + 1320: uint8(16), + 1323: uint8(252), + 1324: uint8(255), + 1325: uint8(255), + 1326: uint8(255), + 1327: uint8(31), + 1333: uint8(12), + 1340: uint8(64), + 1342: uint8(12), + 1343: uint8(240), + 1350: uint8(128), + 1351: uint8(248), + 1359: uint8(192), + 1368: uint8(255), + 1370: uint8(255), + 1371: uint8(255), + 1372: uint8(255), + 1373: uint8(33), + 1374: uint8(144), + 1375: uint8(3), + 1400: uint8(255), + 1401: uint8(255), + 1402: uint8(255), + 1403: uint8(255), + 1404: uint8(127), + 1406: uint8(224), + 1407: uint8(251), + 1431: uint8(160), + 1432: uint8(3), + 1433: uint8(224), + 1435: uint8(224), + 1437: uint8(224), + 1439: uint8(96), + 1440: uint8(128), + 1441: uint8(248), + 1442: uint8(255), + 1443: uint8(255), + 1444: uint8(255), + 1445: uint8(252), + 1446: uint8(255), + 1447: uint8(255), + 1448: uint8(255), + 1449: uint8(255), + 1450: uint8(255), + 1451: uint8(127), + 1452: uint8(223), + 1453: uint8(255), + 1454: uint8(241), + 1455: uint8(127), + 1456: uint8(255), + 1457: uint8(127), + 1460: uint8(255), + 1461: uint8(255), + 1462: uint8(255), + 1463: uint8(255), + 1466: uint8(255), + 1467: uint8(255), + 1468: uint8(255), + 1469: uint8(255), + 1470: uint8(1), + 1472: uint8(123), + 1473: uint8(3), + 1474: uint8(208), + 1475: uint8(193), + 1476: uint8(175), + 1477: uint8(66), + 1479: uint8(12), + 1480: uint8(31), + 1481: uint8(188), + 1482: uint8(255), + 1483: uint8(255), + 1489: uint8(14), + 1490: uint8(255), + 1491: uint8(255), + 1492: uint8(255), + 1493: uint8(255), + 1494: uint8(255), + 1495: uint8(255), + 1496: uint8(255), + 1497: uint8(255), + 1498: uint8(255), + 1499: uint8(255), + 1500: uint8(255), + 1501: uint8(255), + 1502: uint8(255), + 1503: uint8(255), + 1504: uint8(255), + 1505: uint8(255), + 1506: uint8(255), + 1507: uint8(255), + 1508: uint8(127), + 1512: uint8(255), + 1513: uint8(7), + 1516: uint8(255), + 1517: uint8(255), + 1518: uint8(255), + 1519: uint8(255), + 1520: uint8(255), + 1521: uint8(255), + 1522: uint8(255), + 1523: uint8(255), + 1524: uint8(255), + 1525: uint8(255), + 1526: uint8(63), + 1533: uint8(252), + 1534: uint8(255), + 1535: uint8(255), + 1536: uint8(255), + 1537: uint8(255), + 1538: uint8(255), + 1539: uint8(255), + 1540: uint8(255), + 1541: uint8(255), + 1542: uint8(255), + 1543: uint8(255), + 1544: uint8(255), + 1545: uint8(255), + 1546: uint8(255), + 1547: uint8(255), + 1548: uint8(255), + 1549: uint8(255), + 1550: uint8(207), + 1551: uint8(255), + 1552: uint8(255), + 1553: uint8(255), + 1554: uint8(63), + 1555: uint8(255), + 1556: uint8(255), + 1557: uint8(255), + 1558: uint8(255), + 1559: uint8(255), + 1560: uint8(255), + 1561: uint8(255), + 1562: uint8(255), + 1563: uint8(255), + 1564: uint8(255), + 1565: uint8(255), + 1566: uint8(255), + 1567: uint8(255), + 1596: uint8(224), + 1597: uint8(135), + 1598: uint8(3), + 1599: uint8(254), + 1614: uint8(1), + 1615: uint8(128), + 1632: uint8(255), + 1633: uint8(255), + 1634: uint8(255), + 1635: uint8(255), + 1636: uint8(255), + 1637: uint8(127), + 1638: uint8(255), + 1639: uint8(255), + 1640: uint8(255), + 1641: uint8(255), + 1648: uint8(255), + 1649: uint8(255), + 1650: uint8(255), + 1651: uint8(251), + 1652: uint8(255), + 1653: uint8(255), + 1654: uint8(255), + 1655: uint8(255), + 1656: uint8(255), + 1657: uint8(255), + 1658: uint8(255), + 1659: uint8(255), + 1660: uint8(255), + 1661: uint8(255), + 1662: uint8(15), + 1664: uint8(255), + 1665: uint8(255), + 1666: uint8(255), + 1667: uint8(255), + 1668: uint8(255), + 1669: uint8(255), + 1670: uint8(255), + 1671: uint8(255), + 1672: uint8(255), + 1673: uint8(255), + 1674: uint8(255), + 1675: uint8(255), + 1676: uint8(255), + 1677: uint8(255), + 1678: uint8(255), + 1679: uint8(255), + 1680: uint8(255), + 1681: uint8(255), + 1682: uint8(255), + 1683: uint8(255), + 1684: uint8(255), + 1685: uint8(255), + 1686: uint8(255), + 1687: uint8(255), + 1688: uint8(255), + 1689: uint8(255), + 1690: uint8(63), + 1694: uint8(255), + 1695: uint8(15), + 1696: uint8(30), + 1697: uint8(255), + 1698: uint8(255), + 1699: uint8(255), + 1700: uint8(1), + 1701: uint8(252), + 1702: uint8(193), + 1703: uint8(224), + 1715: uint8(30), + 1716: uint8(1), + 1727: uint8(8), + 1746: uint8(255), + 1747: uint8(255), + 1752: uint8(255), + 1753: uint8(255), + 1754: uint8(255), + 1755: uint8(255), + 1756: uint8(15), + 1760: uint8(255), + 1761: uint8(255), + 1762: uint8(255), + 1763: uint8(127), + 1764: uint8(255), + 1765: uint8(255), + 1766: uint8(255), + 1767: uint8(255), + 1768: uint8(255), + 1769: uint8(255), + 1770: uint8(255), + 1771: uint8(255), + 1772: uint8(255), + 1773: uint8(255), + 1774: uint8(255), + 1775: uint8(255), + 1776: uint8(255), + 1777: uint8(255), + 1778: uint8(255), + 1779: uint8(255), + 1780: uint8(255), + 1781: uint8(255), + 1782: uint8(255), + 1783: uint8(255), + 1784: uint8(255), + 1785: uint8(255), + 1786: uint8(255), + 1787: uint8(255), + 1788: uint8(255), + 1789: uint8(255), + 1790: uint8(255), + 1791: uint8(255), + 1816: uint8(255), + 1817: uint8(255), + 1818: uint8(255), + 1819: uint8(255), + 1820: uint8(255), + 1821: uint8(255), + 1822: uint8(255), + 1823: uint8(255), + 1842: uint8(255), + 1843: uint8(255), + 1844: uint8(255), + 1845: uint8(255), + 1846: uint8(255), + 1847: uint8(255), + 1848: uint8(127), + 1855: uint8(192), + 1857: uint8(224), + 1869: uint8(128), + 1870: uint8(15), + 1871: uint8(112), + 1886: uint8(255), + 1888: uint8(255), + 1889: uint8(255), + 1890: uint8(127), + 1892: uint8(3), + 1905: uint8(6), + 1920: uint8(64), + 1925: uint8(15), + 1926: uint8(255), + 1927: uint8(3), + 1934: uint8(240), + 1944: uint8(16), + 1945: uint8(192), + 1948: uint8(255), + 1949: uint8(255), + 1950: uint8(3), + 1951: uint8(23), + 1957: uint8(248), + 1962: uint8(8), + 1963: uint8(128), + 1974: uint8(8), + 1976: uint8(255), + 1977: uint8(63), + 1979: uint8(192), + 1995: uint8(240), + 1998: uint8(128), + 1999: uint8(3), + 2007: uint8(128), + 2008: uint8(2), + 2011: uint8(192), + 2014: uint8(67), + 2027: uint8(8), + 2045: uint8(56), + 2048: uint8(1), + 2111: uint8(128), + 2117: uint8(2), + 2134: uint8(252), + 2135: uint8(255), + 2136: uint8(3), + 2151: uint8(192), + 2175: uint8(48), + 2176: uint8(255), + 2177: uint8(255), + 2178: uint8(255), + 2179: uint8(3), + 2180: uint8(255), + 2181: uint8(255), + 2182: uint8(255), + 2183: uint8(255), + 2184: uint8(255), + 2185: uint8(255), + 2186: uint8(247), + 2187: uint8(255), + 2188: uint8(127), + 2189: uint8(15), + 2207: uint8(128), + 2208: uint8(254), + 2209: uint8(255), + 2211: uint8(252), + 2212: uint8(1), + 2215: uint8(248), + 2216: uint8(1), + 2219: uint8(248), + 2220: uint8(63), + 2236: uint8(127), + 2237: uint8(127), + 2239: uint8(48), + 2240: uint8(135), + 2241: uint8(255), + 2242: uint8(255), + 2243: uint8(255), + 2244: uint8(255), + 2245: uint8(255), + 2246: uint8(143), + 2247: uint8(255), + 2254: uint8(224), + 2255: uint8(255), + 2256: uint8(255), + 2257: uint8(127), + 2258: uint8(255), + 2259: uint8(15), + 2260: uint8(1), + 2266: uint8(255), + 2267: uint8(255), + 2268: uint8(255), + 2269: uint8(255), + 2270: uint8(255), + 2271: uint8(63), + 2300: uint8(255), + 2301: uint8(255), + 2302: uint8(255), + 2303: uint8(15), + 2308: uint8(15), + 2323: uint8(128), + 2330: uint8(1), + 2349: uint8(128), + 2378: uint8(128), + 2379: uint8(255), + 2382: uint8(128), + 2383: uint8(255), + 2388: uint8(128), + 2389: uint8(255), + 2399: uint8(248), + 2402: uint8(192), + 2403: uint8(143), + 2407: uint8(128), + 2423: uint8(48), + 2424: uint8(255), + 2425: uint8(255), + 2426: uint8(252), + 2427: uint8(255), + 2428: uint8(255), + 2429: uint8(255), + 2430: uint8(255), + 2431: uint8(255), + 2439: uint8(135), + 2440: uint8(255), + 2441: uint8(1), + 2442: uint8(255), + 2443: uint8(1), + 2447: uint8(224), + 2451: uint8(224), + 2457: uint8(1), + 2460: uint8(96), + 2461: uint8(248), + 2462: uint8(127), + 2471: uint8(254), + 2475: uint8(255), + 2479: uint8(255), + 2483: uint8(30), + 2485: uint8(254), + 2527: uint8(252), + 2540: uint8(255), + 2541: uint8(255), + 2542: uint8(255), + 2543: uint8(127), + 2563: uint8(224), + 2564: uint8(127), + 2568: uint8(192), + 2569: uint8(255), + 2570: uint8(255), + 2571: uint8(3), + 2600: uint8(192), + 2601: uint8(63), + 2602: uint8(252), + 2603: uint8(255), + 2604: uint8(63), + 2607: uint8(128), + 2608: uint8(3), + 2615: uint8(254), + 2616: uint8(3), + 2617: uint8(32), + 2630: uint8(24), + 2632: uint8(15), + 2638: uint8(56), + 2648: uint8(225), + 2649: uint8(63), + 2651: uint8(232), + 2652: uint8(254), + 2653: uint8(255), + 2654: uint8(31), + 2662: uint8(96), + 2663: uint8(63), + 2677: uint8(2), + 2685: uint8(6), + 2695: uint8(24), + 2697: uint8(32), + 2700: uint8(192), + 2701: uint8(31), + 2702: uint8(31), + 2728: uint8(68), + 2729: uint8(248), + 2731: uint8(104), + 2744: uint8(76), + 2775: uint8(128), + 2776: uint8(255), + 2777: uint8(255), + 2778: uint8(255), + 2791: uint8(128), + 2792: uint8(14), + 2796: uint8(255), + 2797: uint8(31), + 2806: uint8(192), + 2821: uint8(8), + 2823: uint8(252), + 2855: uint8(14), + 2877: uint8(252), + 2878: uint8(7), + 2908: uint8(5), + 2918: uint8(24), + 2919: uint8(128), + 2920: uint8(255), + 2931: uint8(223), + 2932: uint8(7), + 2951: uint8(128), + 2952: uint8(62), + 2955: uint8(252), + 2956: uint8(255), + 2957: uint8(31), + 2958: uint8(3), + 2984: uint8(52), + 2994: uint8(128), + 3038: uint8(128), + 3039: uint8(1), + 3064: uint8(255), + 3065: uint8(255), + 3066: uint8(255), + 3067: uint8(255), + 3068: uint8(255), + 3069: uint8(255), + 3070: uint8(3), + 3071: uint8(128), + 3086: uint8(31), + 3110: uint8(255), + 3111: uint8(1), + 3149: uint8(192), + 3166: uint8(63), + 3174: uint8(255), + 3175: uint8(255), + 3176: uint8(48), + 3179: uint8(248), + 3180: uint8(3), + 3216: uint8(255), + 3217: uint8(255), + 3218: uint8(255), + 3219: uint8(7), + 3260: uint8(4), + 3283: uint8(176), + 3284: uint8(15), + 3296: uint8(255), + 3297: uint8(255), + 3298: uint8(255), + 3299: uint8(255), + 3300: uint8(255), + 3301: uint8(255), + 3302: uint8(255), + 3303: uint8(255), + 3304: uint8(255), + 3305: uint8(255), + 3306: uint8(255), + 3307: uint8(255), + 3308: uint8(255), + 3309: uint8(255), + 3310: uint8(255), + 3311: uint8(255), + 3312: uint8(255), + 3313: uint8(255), + 3314: uint8(255), + 3315: uint8(255), + 3316: uint8(255), + 3317: uint8(255), + 3318: uint8(255), + 3319: uint8(255), + 3320: uint8(255), + 3321: uint8(255), + 3322: uint8(255), + 3323: uint8(255), + 3324: uint8(255), + 3325: uint8(255), + 3326: uint8(63), + 3328: uint8(255), + 3329: uint8(255), + 3330: uint8(255), + 3331: uint8(255), + 3332: uint8(127), + 3333: uint8(254), + 3334: uint8(255), + 3335: uint8(255), + 3336: uint8(255), + 3337: uint8(255), + 3338: uint8(255), + 3339: uint8(255), + 3340: uint8(255), + 3341: uint8(255), + 3342: uint8(255), + 3343: uint8(255), + 3344: uint8(255), + 3345: uint8(255), + 3346: uint8(255), + 3347: uint8(255), + 3348: uint8(255), + 3349: uint8(255), + 3350: uint8(255), + 3351: uint8(255), + 3352: uint8(255), + 3353: uint8(255), + 3354: uint8(255), + 3355: uint8(255), + 3356: uint8(255), + 3357: uint8(1), + 3360: uint8(255), + 3361: uint8(255), + 3362: uint8(255), + 3363: uint8(255), + 3364: uint8(255), + 3365: uint8(255), + 3366: uint8(255), + 3367: uint8(255), + 3368: uint8(63), + 3388: uint8(255), + 3389: uint8(255), + 3390: uint8(15), + 3392: uint8(255), + 3393: uint8(255), + 3394: uint8(255), + 3395: uint8(255), + 3396: uint8(255), + 3397: uint8(255), + 3398: uint8(255), + 3399: uint8(255), + 3400: uint8(255), + 3401: uint8(255), + 3402: uint8(127), + 3404: uint8(255), + 3405: uint8(255), + 3406: uint8(255), + 3407: uint8(1), + 3448: uint8(2), + 3451: uint8(8), + 3455: uint8(8), + 3458: uint8(32), + 3462: uint8(32), + 3465: uint8(128), + 3469: uint8(128), + 3473: uint8(2), + 3477: uint8(2), + 3480: uint8(8), + 3488: uint8(255), + 3489: uint8(255), + 3490: uint8(255), + 3491: uint8(255), + 3492: uint8(255), + 3493: uint8(255), + 3494: uint8(255), + 3495: uint8(255), + 3496: uint8(255), + 3497: uint8(255), + 3498: uint8(255), + 3499: uint8(255), + 3500: uint8(255), + 3501: uint8(255), + 3502: uint8(255), + 3503: uint8(255), + 3504: uint8(255), + 3505: uint8(15), + 3507: uint8(248), + 3508: uint8(254), + 3509: uint8(255), + 3526: uint8(127), + 3529: uint8(128), + 3581: uint8(240), + 3583: uint8(128), + 3608: uint8(128), + 3609: uint8(255), + 3610: uint8(127), + 3624: uint8(112), + 3625: uint8(7), + 3627: uint8(192), + 3662: uint8(254), + 3663: uint8(255), + 3664: uint8(255), + 3665: uint8(255), + 3666: uint8(255), + 3667: uint8(255), + 3668: uint8(255), + 3669: uint8(255), + 3670: uint8(31), + 3680: uint8(254), + 3681: uint8(255), + 3682: uint8(255), + 3683: uint8(255), + 3684: uint8(255), + 3685: uint8(255), + 3686: uint8(255), + 3687: uint8(63), + 3742: uint8(3), + 3744: uint8(255), + 3745: uint8(255), + 3746: uint8(255), + 3747: uint8(255), + 3748: uint8(255), + 3749: uint8(15), + 3750: uint8(255), + 3751: uint8(255), + 3752: uint8(255), + 3753: uint8(255), + 3754: uint8(255), + 3755: uint8(255), + 3756: uint8(255), + 3757: uint8(255), + 3758: uint8(255), + 3759: uint8(255), + 3760: uint8(255), + 3761: uint8(255), + 3762: uint8(15), + 3764: uint8(255), + 3765: uint8(127), + 3766: uint8(254), + 3767: uint8(255), + 3768: uint8(254), + 3769: uint8(255), + 3770: uint8(254), + 3771: uint8(255), + 3772: uint8(255), + 3773: uint8(255), + 3774: uint8(63), + 3776: uint8(255), + 3777: uint8(31), + 3778: uint8(255), + 3779: uint8(255), + 3780: uint8(255), + 3781: uint8(255), + 3785: uint8(252), + 3789: uint8(28), + 3793: uint8(252), + 3794: uint8(255), + 3795: uint8(255), + 3796: uint8(255), + 3797: uint8(31), + 3804: uint8(192), + 3805: uint8(255), + 3806: uint8(255), + 3807: uint8(255), + 3808: uint8(7), + 3810: uint8(255), + 3811: uint8(255), + 3812: uint8(255), + 3813: uint8(255), + 3814: uint8(255), + 3815: uint8(15), + 3816: uint8(255), + 3817: uint8(1), + 3818: uint8(3), + 3820: uint8(63), + 3840: uint8(255), + 3841: uint8(255), + 3842: uint8(255), + 3843: uint8(255), + 3844: uint8(255), + 3845: uint8(255), + 3846: uint8(255), + 3847: uint8(255), + 3848: uint8(255), + 3849: uint8(255), + 3850: uint8(255), + 3851: uint8(255), + 3852: uint8(255), + 3853: uint8(255), + 3854: uint8(255), + 3855: uint8(255), + 3856: uint8(255), + 3857: uint8(255), + 3858: uint8(255), + 3859: uint8(255), + 3860: uint8(255), + 3861: uint8(255), + 3862: uint8(255), + 3863: uint8(255), + 3864: uint8(255), + 3865: uint8(255), + 3866: uint8(63), + 3868: uint8(255), + 3869: uint8(31), + 3870: uint8(255), + 3871: uint8(7), + 3872: uint8(255), + 3873: uint8(255), + 3874: uint8(255), + 3875: uint8(255), + 3876: uint8(255), + 3877: uint8(255), + 3878: uint8(255), + 3879: uint8(255), + 3880: uint8(255), + 3881: uint8(255), + 3882: uint8(255), + 3883: uint8(255), + 3884: uint8(255), + 3885: uint8(255), + 3886: uint8(15), + 3888: uint8(255), + 3889: uint8(255), + 3890: uint8(255), + 3891: uint8(255), + 3892: uint8(255), + 3893: uint8(255), + 3894: uint8(255), + 3895: uint8(255), + 3896: uint8(255), + 3897: uint8(255), + 3898: uint8(255), + 3899: uint8(1), + 3900: uint8(255), + 3901: uint8(15), + 3904: uint8(255), + 3905: uint8(15), + 3906: uint8(255), + 3907: uint8(255), + 3908: uint8(255), + 3909: uint8(255), + 3910: uint8(255), + 3911: uint8(255), + 3912: uint8(255), + 3914: uint8(255), + 3915: uint8(3), + 3916: uint8(255), + 3917: uint8(255), + 3918: uint8(255), + 3919: uint8(255), + 3920: uint8(255), + 3922: uint8(255), + 3923: uint8(255), + 3924: uint8(255), + 3925: uint8(63), + 3936: uint8(255), + 3937: uint8(239), + 3938: uint8(255), + 3939: uint8(255), + 3940: uint8(255), + 3941: uint8(255), + 3942: uint8(255), + 3943: uint8(255), + 3944: uint8(255), + 3945: uint8(255), + 3946: uint8(255), + 3947: uint8(255), + 3948: uint8(255), + 3949: uint8(255), + 3950: uint8(123), + 3951: uint8(252), + 3952: uint8(255), + 3953: uint8(255), + 3954: uint8(255), + 3955: uint8(255), + 3956: uint8(231), + 3957: uint8(199), + 3958: uint8(255), + 3959: uint8(255), + 3960: uint8(255), + 3961: uint8(231), + 3962: uint8(255), + 3963: uint8(255), + 3964: uint8(255), + 3965: uint8(255), + 3966: uint8(255), + 3967: uint8(255), + 3968: uint8(255), + 3969: uint8(255), + 3970: uint8(255), + 3971: uint8(255), + 3972: uint8(255), + 3973: uint8(255), + 3974: uint8(255), + 3975: uint8(255), + 3976: uint8(255), + 3977: uint8(255), + 3978: uint8(15), + 3980: uint8(255), + 3981: uint8(63), + 3982: uint8(15), + 3983: uint8(7), + 3984: uint8(7), + 3986: uint8(63), +} + +func Xiswpunct(tls *TLS, wc Twint_t) (r int32) { + if __ccgo_strace { + trc("tls=%v wc=%v, (%v:)", tls, wc, origin(2)) + defer func() { trc("-> %v", r) }() + } + if wc < uint32(0x20000) { + return int32(_table4[uint32(int32(_table4[wc>>int32(8)])*int32(32))+wc&uint32(255)>>int32(3)]) >> (wc & uint32(7)) & int32(1) + } + return 0 +} + +func X__iswpunct_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xiswpunct(tls, c) +} + +func Xiswpunct_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__iswpunct_l(tls, c, l) +} + +type Tmbstate_t = struct { + F__opaque1 uint32 + F__opaque2 uint32 +} + +type t__mbstate_t = Tmbstate_t + +/* Our definition of whitespace is the Unicode White_Space property, + * minus non-breaking spaces (U+00A0, U+2007, and U+202F) and script- + * specific characters with non-blank glyphs (U+1680 and U+180E). */ + +func Xiswspace(tls *TLS, wc Twint_t) (r int32) { + if __ccgo_strace { + trc("tls=%v wc=%v, (%v:)", tls, wc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(wc != 0 && Xwcschr(tls, uintptr(unsafe.Pointer(&_spaces)), wc) != 0) +} + +var _spaces = [22]Twchar_t{ + 0: uint32(' '), + 1: uint32('\t'), + 2: uint32('\n'), + 3: uint32('\r'), + 4: uint32(11), + 5: uint32(12), + 6: uint32(0x0085), + 7: uint32(0x2000), + 8: uint32(0x2001), + 9: uint32(0x2002), + 10: uint32(0x2003), + 11: uint32(0x2004), + 12: uint32(0x2005), + 13: uint32(0x2006), + 14: uint32(0x2008), + 15: uint32(0x2009), + 16: uint32(0x200a), + 17: uint32(0x2028), + 18: uint32(0x2029), + 19: uint32(0x205f), + 20: uint32(0x3000), +} + +func X__iswspace_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xiswspace(tls, c) +} + +func Xiswspace_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__iswspace_l(tls, c, l) +} + +func Xiswupper(tls *TLS, wc Twint_t) (r int32) { + if __ccgo_strace { + trc("tls=%v wc=%v, (%v:)", tls, wc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(Xtowlower(tls, wc) != wc) +} + +func X__iswupper_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xiswupper(tls, c) +} + +func Xiswupper_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__iswupper_l(tls, c, l) +} + +func Xiswxdigit(tls *TLS, wc Twint_t) (r int32) { + if __ccgo_strace { + trc("tls=%v wc=%v, (%v:)", tls, wc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(wc-Uint32FromUint8('0') < uint32(10) || wc|Uint32FromInt32(32)-Uint32FromUint8('a') < uint32(6)) +} + +func X__iswxdigit_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xiswxdigit(tls, c) +} + +func Xiswxdigit_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__iswxdigit_l(tls, c, l) +} + +func Xisxdigit(tls *TLS, c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(BoolInt32(uint32(c)-uint32('0') < uint32(10)) != 0 || uint32(c)|uint32(32)-uint32('a') < uint32(6)) +} + +func X__isxdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xisxdigit(tls, c) +} + +func Xisxdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__isxdigit_l(tls, c, l) +} + +// C documentation +// +// /* nonsense function that should NEVER be used! */ +func Xtoascii(tls *TLS, c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return c & int32(0x7f) +} + +func Xtolower(tls *TLS, c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + if BoolInt32(uint32(c)-uint32('A') < uint32(26)) != 0 { + return c | int32(32) + } + return c +} + +func X__tolower_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xtolower(tls, c) +} + +func Xtolower_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__tolower_l(tls, c, l) +} + +func Xtoupper(tls *TLS, c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + if BoolInt32(uint32(c)-uint32('a') < uint32(26)) != 0 { + return c & int32(0x5f) + } + return c +} + +func X__toupper_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xtoupper(tls, c) +} + +func Xtoupper_l(tls *TLS, c int32, l Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__toupper_l(tls, c, l) +} + +var _tab1 = [2666]uint8{ + 0: uint8(7), + 1: uint8(8), + 2: uint8(9), + 3: uint8(10), + 4: uint8(11), + 5: uint8(12), + 6: uint8(6), + 7: uint8(6), + 8: uint8(6), + 9: uint8(6), + 10: uint8(6), + 11: uint8(6), + 12: uint8(6), + 13: uint8(6), + 14: uint8(6), + 15: uint8(6), + 16: uint8(13), + 17: uint8(6), + 18: uint8(6), + 19: uint8(14), + 20: uint8(6), + 21: uint8(6), + 22: uint8(6), + 23: uint8(6), + 24: uint8(6), + 25: uint8(6), + 26: uint8(6), + 27: uint8(6), + 28: uint8(15), + 29: uint8(16), + 30: uint8(17), + 31: uint8(18), + 32: uint8(6), + 33: uint8(19), + 34: uint8(6), + 35: uint8(6), + 36: uint8(6), + 37: uint8(6), + 38: uint8(6), + 39: uint8(6), + 40: uint8(6), + 41: uint8(6), + 42: uint8(6), + 43: uint8(6), + 44: uint8(20), + 45: uint8(21), + 46: uint8(6), + 47: uint8(6), + 48: uint8(6), + 49: uint8(6), + 50: uint8(6), + 51: uint8(6), + 52: uint8(6), + 53: uint8(6), + 54: uint8(6), + 55: uint8(6), + 56: uint8(6), + 57: uint8(6), + 58: uint8(6), + 59: uint8(6), + 60: uint8(6), + 61: uint8(6), + 62: uint8(6), + 63: uint8(6), + 64: uint8(6), + 65: uint8(6), + 66: uint8(6), + 67: uint8(6), + 68: uint8(6), + 69: uint8(6), + 70: uint8(6), + 71: uint8(6), + 72: uint8(6), + 73: uint8(6), + 74: uint8(6), + 75: uint8(6), + 76: uint8(6), + 77: uint8(6), + 78: uint8(6), + 79: uint8(6), + 80: uint8(6), + 81: uint8(6), + 82: uint8(6), + 83: uint8(6), + 84: uint8(6), + 85: uint8(6), + 86: uint8(6), + 87: uint8(6), + 88: uint8(6), + 89: uint8(6), + 90: uint8(6), + 91: uint8(6), + 92: uint8(6), + 93: uint8(6), + 94: uint8(6), + 95: uint8(6), + 96: uint8(6), + 97: uint8(6), + 98: uint8(6), + 99: uint8(6), + 100: uint8(6), + 101: uint8(6), + 102: uint8(6), + 103: uint8(6), + 104: uint8(6), + 105: uint8(6), + 106: uint8(6), + 107: uint8(6), + 108: uint8(6), + 109: uint8(6), + 110: uint8(6), + 111: uint8(6), + 112: uint8(6), + 113: uint8(6), + 114: uint8(6), + 115: uint8(6), + 116: uint8(6), + 117: uint8(6), + 118: uint8(6), + 119: uint8(6), + 120: uint8(6), + 121: uint8(6), + 122: uint8(6), + 123: uint8(6), + 124: uint8(6), + 125: uint8(6), + 126: uint8(6), + 127: uint8(6), + 128: uint8(6), + 129: uint8(6), + 130: uint8(6), + 131: uint8(6), + 132: uint8(6), + 133: uint8(6), + 134: uint8(6), + 135: uint8(6), + 136: uint8(6), + 137: uint8(6), + 138: uint8(6), + 139: uint8(6), + 140: uint8(6), + 141: uint8(6), + 142: uint8(6), + 143: uint8(6), + 144: uint8(6), + 145: uint8(6), + 146: uint8(6), + 147: uint8(6), + 148: uint8(6), + 149: uint8(6), + 150: uint8(6), + 151: uint8(6), + 152: uint8(6), + 153: uint8(6), + 154: uint8(6), + 155: uint8(6), + 156: uint8(6), + 157: uint8(6), + 158: uint8(6), + 159: uint8(6), + 160: uint8(6), + 161: uint8(6), + 162: uint8(6), + 163: uint8(6), + 164: uint8(6), + 165: uint8(6), + 166: uint8(22), + 167: uint8(23), + 168: uint8(6), + 169: uint8(6), + 170: uint8(6), + 171: uint8(24), + 172: uint8(6), + 173: uint8(6), + 174: uint8(6), + 175: uint8(6), + 176: uint8(6), + 177: uint8(6), + 178: uint8(6), + 179: uint8(6), + 180: uint8(6), + 181: uint8(6), + 182: uint8(6), + 183: uint8(6), + 184: uint8(6), + 185: uint8(6), + 186: uint8(6), + 187: uint8(6), + 188: uint8(6), + 189: uint8(6), + 190: uint8(6), + 191: uint8(6), + 192: uint8(6), + 193: uint8(6), + 194: uint8(6), + 195: uint8(6), + 196: uint8(6), + 197: uint8(6), + 198: uint8(6), + 199: uint8(6), + 200: uint8(6), + 201: uint8(6), + 202: uint8(6), + 203: uint8(6), + 204: uint8(6), + 205: uint8(6), + 206: uint8(6), + 207: uint8(6), + 208: uint8(6), + 209: uint8(6), + 210: uint8(6), + 211: uint8(6), + 212: uint8(6), + 213: uint8(6), + 214: uint8(6), + 215: uint8(6), + 216: uint8(6), + 217: uint8(6), + 218: uint8(6), + 219: uint8(6), + 220: uint8(6), + 221: uint8(6), + 222: uint8(6), + 223: uint8(6), + 224: uint8(6), + 225: uint8(6), + 226: uint8(6), + 227: uint8(6), + 228: uint8(6), + 229: uint8(6), + 230: uint8(6), + 231: uint8(6), + 232: uint8(6), + 233: uint8(6), + 234: uint8(6), + 235: uint8(6), + 236: uint8(6), + 237: uint8(6), + 238: uint8(6), + 239: uint8(6), + 240: uint8(6), + 241: uint8(6), + 242: uint8(6), + 243: uint8(6), + 244: uint8(6), + 245: uint8(6), + 246: uint8(6), + 247: uint8(6), + 248: uint8(6), + 249: uint8(6), + 250: uint8(6), + 251: uint8(6), + 252: uint8(6), + 253: uint8(6), + 254: uint8(6), + 255: uint8(25), + 256: uint8(6), + 257: uint8(6), + 258: uint8(6), + 259: uint8(6), + 260: uint8(26), + 261: uint8(6), + 262: uint8(6), + 263: uint8(6), + 264: uint8(6), + 265: uint8(6), + 266: uint8(6), + 267: uint8(6), + 268: uint8(27), + 269: uint8(6), + 270: uint8(6), + 271: uint8(6), + 272: uint8(6), + 273: uint8(6), + 274: uint8(6), + 275: uint8(6), + 276: uint8(6), + 277: uint8(6), + 278: uint8(6), + 279: uint8(6), + 280: uint8(28), + 281: uint8(6), + 282: uint8(6), + 283: uint8(6), + 284: uint8(6), + 285: uint8(6), + 286: uint8(6), + 287: uint8(6), + 288: uint8(6), + 289: uint8(6), + 290: uint8(6), + 291: uint8(6), + 292: uint8(6), + 293: uint8(6), + 294: uint8(6), + 295: uint8(6), + 296: uint8(6), + 297: uint8(6), + 298: uint8(6), + 299: uint8(6), + 300: uint8(6), + 301: uint8(6), + 302: uint8(6), + 303: uint8(6), + 304: uint8(6), + 305: uint8(6), + 306: uint8(6), + 307: uint8(6), + 308: uint8(6), + 309: uint8(6), + 310: uint8(6), + 311: uint8(6), + 312: uint8(6), + 313: uint8(6), + 314: uint8(6), + 315: uint8(6), + 316: uint8(6), + 317: uint8(6), + 318: uint8(6), + 319: uint8(6), + 320: uint8(6), + 321: uint8(6), + 322: uint8(6), + 323: uint8(6), + 324: uint8(6), + 325: uint8(6), + 326: uint8(6), + 327: uint8(6), + 328: uint8(6), + 329: uint8(6), + 330: uint8(6), + 331: uint8(6), + 332: uint8(6), + 333: uint8(6), + 334: uint8(6), + 335: uint8(6), + 336: uint8(6), + 337: uint8(6), + 338: uint8(6), + 339: uint8(6), + 340: uint8(6), + 341: uint8(6), + 342: uint8(6), + 343: uint8(6), + 344: uint8(6), + 345: uint8(6), + 346: uint8(6), + 347: uint8(6), + 348: uint8(6), + 349: uint8(6), + 350: uint8(6), + 351: uint8(6), + 352: uint8(6), + 353: uint8(6), + 354: uint8(6), + 355: uint8(6), + 356: uint8(6), + 357: uint8(6), + 358: uint8(6), + 359: uint8(6), + 360: uint8(6), + 361: uint8(6), + 362: uint8(6), + 363: uint8(6), + 364: uint8(6), + 365: uint8(6), + 366: uint8(29), + 367: uint8(6), + 368: uint8(6), + 369: uint8(6), + 370: uint8(6), + 371: uint8(6), + 372: uint8(6), + 373: uint8(6), + 374: uint8(6), + 375: uint8(6), + 376: uint8(6), + 377: uint8(6), + 378: uint8(6), + 379: uint8(6), + 380: uint8(6), + 381: uint8(6), + 382: uint8(6), + 383: uint8(6), + 384: uint8(6), + 385: uint8(6), + 386: uint8(6), + 387: uint8(6), + 388: uint8(6), + 389: uint8(6), + 390: uint8(6), + 391: uint8(6), + 392: uint8(6), + 393: uint8(6), + 394: uint8(6), + 395: uint8(6), + 396: uint8(6), + 397: uint8(6), + 398: uint8(6), + 399: uint8(6), + 400: uint8(6), + 401: uint8(6), + 402: uint8(6), + 403: uint8(6), + 404: uint8(6), + 405: uint8(6), + 406: uint8(6), + 407: uint8(6), + 408: uint8(6), + 409: uint8(6), + 410: uint8(6), + 411: uint8(6), + 412: uint8(6), + 413: uint8(6), + 414: uint8(6), + 415: uint8(6), + 416: uint8(6), + 417: uint8(6), + 418: uint8(6), + 419: uint8(6), + 420: uint8(6), + 421: uint8(6), + 422: uint8(6), + 423: uint8(6), + 424: uint8(6), + 425: uint8(6), + 426: uint8(6), + 427: uint8(6), + 428: uint8(6), + 429: uint8(6), + 430: uint8(6), + 431: uint8(6), + 432: uint8(6), + 433: uint8(6), + 434: uint8(6), + 435: uint8(6), + 436: uint8(6), + 437: uint8(6), + 438: uint8(6), + 439: uint8(6), + 440: uint8(6), + 441: uint8(6), + 442: uint8(6), + 443: uint8(6), + 444: uint8(6), + 445: uint8(6), + 446: uint8(6), + 447: uint8(6), + 448: uint8(6), + 449: uint8(6), + 450: uint8(6), + 451: uint8(6), + 452: uint8(6), + 453: uint8(6), + 454: uint8(6), + 455: uint8(6), + 456: uint8(6), + 457: uint8(6), + 458: uint8(6), + 459: uint8(6), + 460: uint8(6), + 461: uint8(6), + 462: uint8(6), + 463: uint8(6), + 464: uint8(6), + 465: uint8(6), + 466: uint8(6), + 467: uint8(6), + 468: uint8(6), + 469: uint8(6), + 470: uint8(6), + 471: uint8(6), + 472: uint8(6), + 473: uint8(6), + 474: uint8(6), + 475: uint8(6), + 476: uint8(6), + 477: uint8(6), + 478: uint8(6), + 479: uint8(6), + 480: uint8(6), + 481: uint8(6), + 482: uint8(6), + 483: uint8(6), + 484: uint8(6), + 485: uint8(6), + 486: uint8(6), + 487: uint8(6), + 488: uint8(6), + 489: uint8(30), + 490: uint8(6), + 491: uint8(6), + 492: uint8(6), + 493: uint8(6), + 494: uint8(6), + 495: uint8(6), + 496: uint8(6), + 497: uint8(6), + 498: uint8(6), + 499: uint8(6), + 500: uint8(6), + 501: uint8(6), + 502: uint8(6), + 503: uint8(6), + 504: uint8(6), + 505: uint8(6), + 506: uint8(6), + 507: uint8(6), + 508: uint8(6), + 509: uint8(6), + 510: uint8(6), + 511: uint8(6), + 623: uint8(36), + 624: uint8(43), + 625: uint8(43), + 626: uint8(43), + 627: uint8(43), + 628: uint8(43), + 629: uint8(43), + 630: uint8(43), + 631: uint8(43), + 632: uint8(1), + 634: uint8(84), + 635: uint8(86), + 636: uint8(86), + 637: uint8(86), + 638: uint8(86), + 639: uint8(86), + 640: uint8(86), + 641: uint8(86), + 642: uint8(86), + 662: uint8(24), + 666: uint8(43), + 667: uint8(43), + 668: uint8(43), + 669: uint8(43), + 670: uint8(43), + 671: uint8(43), + 672: uint8(43), + 673: uint8(7), + 674: uint8(43), + 675: uint8(43), + 676: uint8(91), + 677: uint8(86), + 678: uint8(86), + 679: uint8(86), + 680: uint8(86), + 681: uint8(86), + 682: uint8(86), + 683: uint8(86), + 684: uint8(74), + 685: uint8(86), + 686: uint8(86), + 687: uint8(5), + 688: uint8(49), + 689: uint8(80), + 690: uint8(49), + 691: uint8(80), + 692: uint8(49), + 693: uint8(80), + 694: uint8(49), + 695: uint8(80), + 696: uint8(49), + 697: uint8(80), + 698: uint8(49), + 699: uint8(80), + 700: uint8(49), + 701: uint8(80), + 702: uint8(49), + 703: uint8(80), + 704: uint8(36), + 705: uint8(80), + 706: uint8(121), + 707: uint8(49), + 708: uint8(80), + 709: uint8(49), + 710: uint8(80), + 711: uint8(49), + 712: uint8(56), + 713: uint8(80), + 714: uint8(49), + 715: uint8(80), + 716: uint8(49), + 717: uint8(80), + 718: uint8(49), + 719: uint8(80), + 720: uint8(49), + 721: uint8(80), + 722: uint8(49), + 723: uint8(80), + 724: uint8(49), + 725: uint8(80), + 726: uint8(49), + 727: uint8(80), + 728: uint8(78), + 729: uint8(49), + 730: uint8(2), + 731: uint8(78), + 732: uint8(13), + 733: uint8(13), + 734: uint8(78), + 735: uint8(3), + 736: uint8(78), + 738: uint8(36), + 739: uint8(110), + 741: uint8(78), + 742: uint8(49), + 743: uint8(38), + 744: uint8(110), + 745: uint8(81), + 746: uint8(78), + 747: uint8(36), + 748: uint8(80), + 749: uint8(78), + 750: uint8(57), + 751: uint8(20), + 752: uint8(129), + 753: uint8(27), + 754: uint8(29), + 755: uint8(29), + 756: uint8(83), + 757: uint8(49), + 758: uint8(80), + 759: uint8(49), + 760: uint8(80), + 761: uint8(13), + 762: uint8(49), + 763: uint8(80), + 764: uint8(49), + 765: uint8(80), + 766: uint8(49), + 767: uint8(80), + 768: uint8(27), + 769: uint8(83), + 770: uint8(36), + 771: uint8(80), + 772: uint8(49), + 773: uint8(2), + 774: uint8(92), + 775: uint8(123), + 776: uint8(92), + 777: uint8(123), + 778: uint8(92), + 779: uint8(123), + 780: uint8(92), + 781: uint8(123), + 782: uint8(92), + 783: uint8(123), + 784: uint8(20), + 785: uint8(121), + 786: uint8(92), + 787: uint8(123), + 788: uint8(92), + 789: uint8(123), + 790: uint8(92), + 791: uint8(45), + 792: uint8(43), + 793: uint8(73), + 794: uint8(3), + 795: uint8(72), + 796: uint8(3), + 797: uint8(120), + 798: uint8(92), + 799: uint8(123), + 800: uint8(20), + 802: uint8(150), + 803: uint8(10), + 804: uint8(1), + 805: uint8(43), + 806: uint8(40), + 807: uint8(6), + 808: uint8(6), + 810: uint8(42), + 811: uint8(6), + 812: uint8(42), + 813: uint8(42), + 814: uint8(43), + 815: uint8(7), + 816: uint8(187), + 817: uint8(181), + 818: uint8(43), + 819: uint8(30), + 821: uint8(43), + 822: uint8(7), + 823: uint8(43), + 824: uint8(43), + 825: uint8(43), + 826: uint8(1), + 827: uint8(43), + 828: uint8(43), + 829: uint8(43), + 830: uint8(43), + 831: uint8(43), + 832: uint8(43), + 833: uint8(43), + 834: uint8(43), + 835: uint8(43), + 836: uint8(43), + 837: uint8(43), + 838: uint8(43), + 839: uint8(43), + 840: uint8(43), + 841: uint8(43), + 842: uint8(43), + 843: uint8(43), + 844: uint8(43), + 845: uint8(43), + 846: uint8(43), + 847: uint8(43), + 848: uint8(43), + 849: uint8(43), + 850: uint8(43), + 851: uint8(43), + 852: uint8(43), + 853: uint8(43), + 854: uint8(43), + 855: uint8(43), + 856: uint8(43), + 857: uint8(43), + 858: uint8(43), + 859: uint8(1), + 860: uint8(43), + 861: uint8(43), + 862: uint8(43), + 863: uint8(43), + 864: uint8(43), + 865: uint8(43), + 866: uint8(43), + 867: uint8(43), + 868: uint8(43), + 869: uint8(43), + 870: uint8(43), + 871: uint8(43), + 872: uint8(43), + 873: uint8(43), + 874: uint8(43), + 875: uint8(43), + 876: uint8(43), + 877: uint8(43), + 878: uint8(43), + 879: uint8(43), + 880: uint8(43), + 881: uint8(43), + 882: uint8(43), + 883: uint8(42), + 884: uint8(43), + 885: uint8(43), + 886: uint8(43), + 887: uint8(43), + 888: uint8(43), + 889: uint8(43), + 890: uint8(43), + 891: uint8(43), + 892: uint8(43), + 893: uint8(43), + 894: uint8(43), + 895: uint8(43), + 896: uint8(43), + 897: uint8(205), + 898: uint8(70), + 899: uint8(205), + 900: uint8(43), + 902: uint8(37), + 903: uint8(43), + 904: uint8(7), + 905: uint8(1), + 906: uint8(6), + 907: uint8(1), + 908: uint8(85), + 909: uint8(86), + 910: uint8(86), + 911: uint8(86), + 912: uint8(86), + 913: uint8(86), + 914: uint8(85), + 915: uint8(86), + 916: uint8(86), + 917: uint8(2), + 918: uint8(36), + 919: uint8(129), + 920: uint8(129), + 921: uint8(129), + 922: uint8(129), + 923: uint8(129), + 924: uint8(21), + 925: uint8(129), + 926: uint8(129), + 927: uint8(129), + 930: uint8(43), + 932: uint8(178), + 933: uint8(209), + 934: uint8(178), + 935: uint8(209), + 936: uint8(178), + 937: uint8(209), + 938: uint8(178), + 939: uint8(209), + 942: uint8(205), + 943: uint8(204), + 944: uint8(1), + 946: uint8(215), + 947: uint8(215), + 948: uint8(215), + 949: uint8(215), + 950: uint8(215), + 951: uint8(131), + 952: uint8(129), + 953: uint8(129), + 954: uint8(129), + 955: uint8(129), + 956: uint8(129), + 957: uint8(129), + 958: uint8(129), + 959: uint8(129), + 960: uint8(129), + 961: uint8(129), + 962: uint8(172), + 963: uint8(172), + 964: uint8(172), + 965: uint8(172), + 966: uint8(172), + 967: uint8(172), + 968: uint8(172), + 969: uint8(172), + 970: uint8(172), + 971: uint8(172), + 972: uint8(28), + 978: uint8(49), + 979: uint8(80), + 980: uint8(49), + 981: uint8(80), + 982: uint8(49), + 983: uint8(80), + 984: uint8(49), + 985: uint8(80), + 986: uint8(49), + 987: uint8(80), + 988: uint8(49), + 989: uint8(2), + 992: uint8(49), + 993: uint8(80), + 994: uint8(49), + 995: uint8(80), + 996: uint8(49), + 997: uint8(80), + 998: uint8(49), + 999: uint8(80), + 1000: uint8(49), + 1001: uint8(80), + 1002: uint8(49), + 1003: uint8(80), + 1004: uint8(49), + 1005: uint8(80), + 1006: uint8(49), + 1007: uint8(80), + 1008: uint8(49), + 1009: uint8(80), + 1010: uint8(78), + 1011: uint8(49), + 1012: uint8(80), + 1013: uint8(49), + 1014: uint8(80), + 1015: uint8(78), + 1016: uint8(49), + 1017: uint8(80), + 1018: uint8(49), + 1019: uint8(80), + 1020: uint8(49), + 1021: uint8(80), + 1022: uint8(49), + 1023: uint8(80), + 1024: uint8(49), + 1025: uint8(80), + 1026: uint8(49), + 1027: uint8(80), + 1028: uint8(49), + 1029: uint8(80), + 1030: uint8(49), + 1031: uint8(2), + 1032: uint8(135), + 1033: uint8(166), + 1034: uint8(135), + 1035: uint8(166), + 1036: uint8(135), + 1037: uint8(166), + 1038: uint8(135), + 1039: uint8(166), + 1040: uint8(135), + 1041: uint8(166), + 1042: uint8(135), + 1043: uint8(166), + 1044: uint8(135), + 1045: uint8(166), + 1046: uint8(135), + 1047: uint8(166), + 1048: uint8(42), + 1049: uint8(43), + 1050: uint8(43), + 1051: uint8(43), + 1052: uint8(43), + 1053: uint8(43), + 1054: uint8(43), + 1055: uint8(43), + 1056: uint8(43), + 1057: uint8(43), + 1058: uint8(43), + 1059: uint8(43), + 1060: uint8(43), + 1064: uint8(84), + 1065: uint8(86), + 1066: uint8(86), + 1067: uint8(86), + 1068: uint8(86), + 1069: uint8(86), + 1070: uint8(86), + 1071: uint8(86), + 1072: uint8(86), + 1073: uint8(86), + 1074: uint8(86), + 1075: uint8(86), + 1076: uint8(86), + 1171: uint8(84), + 1172: uint8(86), + 1173: uint8(86), + 1174: uint8(86), + 1175: uint8(86), + 1176: uint8(86), + 1177: uint8(86), + 1178: uint8(86), + 1179: uint8(86), + 1180: uint8(86), + 1181: uint8(86), + 1182: uint8(86), + 1183: uint8(86), + 1184: uint8(12), + 1186: uint8(12), + 1187: uint8(42), + 1188: uint8(43), + 1189: uint8(43), + 1190: uint8(43), + 1191: uint8(43), + 1192: uint8(43), + 1193: uint8(43), + 1194: uint8(43), + 1195: uint8(43), + 1196: uint8(43), + 1197: uint8(43), + 1198: uint8(43), + 1199: uint8(43), + 1200: uint8(43), + 1201: uint8(7), + 1202: uint8(42), + 1203: uint8(1), + 1257: uint8(42), + 1258: uint8(43), + 1259: uint8(43), + 1260: uint8(43), + 1261: uint8(43), + 1262: uint8(43), + 1263: uint8(43), + 1264: uint8(43), + 1265: uint8(43), + 1266: uint8(43), + 1267: uint8(43), + 1268: uint8(43), + 1269: uint8(43), + 1270: uint8(43), + 1271: uint8(43), + 1272: uint8(43), + 1273: uint8(43), + 1274: uint8(43), + 1275: uint8(43), + 1276: uint8(43), + 1277: uint8(43), + 1278: uint8(43), + 1279: uint8(43), + 1280: uint8(43), + 1281: uint8(43), + 1282: uint8(43), + 1283: uint8(43), + 1284: uint8(86), + 1285: uint8(86), + 1286: uint8(108), + 1287: uint8(129), + 1288: uint8(21), + 1290: uint8(43), + 1291: uint8(43), + 1292: uint8(43), + 1293: uint8(43), + 1294: uint8(43), + 1295: uint8(43), + 1296: uint8(43), + 1297: uint8(43), + 1298: uint8(43), + 1299: uint8(43), + 1300: uint8(43), + 1301: uint8(43), + 1302: uint8(43), + 1303: uint8(43), + 1304: uint8(43), + 1305: uint8(43), + 1306: uint8(43), + 1307: uint8(43), + 1308: uint8(43), + 1309: uint8(43), + 1310: uint8(43), + 1311: uint8(43), + 1312: uint8(43), + 1313: uint8(43), + 1314: uint8(43), + 1315: uint8(43), + 1316: uint8(43), + 1317: uint8(43), + 1318: uint8(43), + 1319: uint8(43), + 1320: uint8(43), + 1321: uint8(43), + 1322: uint8(43), + 1323: uint8(43), + 1324: uint8(43), + 1325: uint8(43), + 1326: uint8(43), + 1327: uint8(43), + 1328: uint8(43), + 1329: uint8(43), + 1330: uint8(43), + 1331: uint8(43), + 1332: uint8(7), + 1333: uint8(108), + 1334: uint8(3), + 1335: uint8(65), + 1336: uint8(43), + 1337: uint8(43), + 1338: uint8(86), + 1339: uint8(86), + 1340: uint8(86), + 1341: uint8(86), + 1342: uint8(86), + 1343: uint8(86), + 1344: uint8(86), + 1345: uint8(86), + 1346: uint8(86), + 1347: uint8(86), + 1348: uint8(86), + 1349: uint8(86), + 1350: uint8(86), + 1351: uint8(86), + 1352: uint8(44), + 1353: uint8(86), + 1354: uint8(43), + 1355: uint8(43), + 1356: uint8(43), + 1357: uint8(43), + 1358: uint8(43), + 1359: uint8(43), + 1360: uint8(43), + 1361: uint8(43), + 1362: uint8(43), + 1363: uint8(43), + 1364: uint8(43), + 1365: uint8(43), + 1366: uint8(43), + 1367: uint8(43), + 1368: uint8(43), + 1369: uint8(43), + 1370: uint8(43), + 1371: uint8(43), + 1372: uint8(43), + 1373: uint8(43), + 1374: uint8(43), + 1375: uint8(1), + 1416: uint8(12), + 1417: uint8(108), + 1423: uint8(6), + 1462: uint8(6), + 1463: uint8(37), + 1464: uint8(6), + 1465: uint8(37), + 1466: uint8(6), + 1467: uint8(37), + 1468: uint8(6), + 1469: uint8(37), + 1470: uint8(6), + 1471: uint8(37), + 1472: uint8(6), + 1473: uint8(37), + 1474: uint8(6), + 1475: uint8(37), + 1476: uint8(6), + 1477: uint8(37), + 1478: uint8(6), + 1479: uint8(37), + 1480: uint8(6), + 1481: uint8(37), + 1482: uint8(6), + 1483: uint8(37), + 1484: uint8(6), + 1485: uint8(37), + 1486: uint8(6), + 1487: uint8(37), + 1488: uint8(6), + 1489: uint8(37), + 1490: uint8(6), + 1491: uint8(37), + 1492: uint8(6), + 1493: uint8(37), + 1494: uint8(6), + 1495: uint8(37), + 1496: uint8(6), + 1497: uint8(37), + 1498: uint8(6), + 1499: uint8(37), + 1500: uint8(6), + 1501: uint8(37), + 1502: uint8(6), + 1503: uint8(37), + 1504: uint8(6), + 1505: uint8(37), + 1506: uint8(6), + 1507: uint8(37), + 1508: uint8(6), + 1509: uint8(37), + 1510: uint8(6), + 1511: uint8(37), + 1512: uint8(86), + 1513: uint8(122), + 1514: uint8(158), + 1515: uint8(38), + 1516: uint8(6), + 1517: uint8(37), + 1518: uint8(6), + 1519: uint8(37), + 1520: uint8(6), + 1521: uint8(37), + 1522: uint8(6), + 1523: uint8(37), + 1524: uint8(6), + 1525: uint8(37), + 1526: uint8(6), + 1527: uint8(37), + 1528: uint8(6), + 1529: uint8(37), + 1530: uint8(6), + 1531: uint8(37), + 1532: uint8(6), + 1533: uint8(37), + 1534: uint8(6), + 1535: uint8(37), + 1536: uint8(6), + 1537: uint8(37), + 1538: uint8(6), + 1539: uint8(37), + 1540: uint8(6), + 1541: uint8(37), + 1542: uint8(6), + 1543: uint8(37), + 1544: uint8(6), + 1545: uint8(37), + 1546: uint8(6), + 1547: uint8(1), + 1548: uint8(43), + 1549: uint8(43), + 1550: uint8(79), + 1551: uint8(86), + 1552: uint8(86), + 1553: uint8(44), + 1554: uint8(43), + 1555: uint8(127), + 1556: uint8(86), + 1557: uint8(86), + 1558: uint8(57), + 1559: uint8(43), + 1560: uint8(43), + 1561: uint8(85), + 1562: uint8(86), + 1563: uint8(86), + 1564: uint8(43), + 1565: uint8(43), + 1566: uint8(79), + 1567: uint8(86), + 1568: uint8(86), + 1569: uint8(44), + 1570: uint8(43), + 1571: uint8(127), + 1572: uint8(86), + 1573: uint8(86), + 1574: uint8(129), + 1575: uint8(55), + 1576: uint8(117), + 1577: uint8(91), + 1578: uint8(123), + 1579: uint8(92), + 1580: uint8(43), + 1581: uint8(43), + 1582: uint8(79), + 1583: uint8(86), + 1584: uint8(86), + 1585: uint8(2), + 1586: uint8(172), + 1587: uint8(4), + 1590: uint8(57), + 1591: uint8(43), + 1592: uint8(43), + 1593: uint8(85), + 1594: uint8(86), + 1595: uint8(86), + 1596: uint8(43), + 1597: uint8(43), + 1598: uint8(79), + 1599: uint8(86), + 1600: uint8(86), + 1601: uint8(44), + 1602: uint8(43), + 1603: uint8(43), + 1604: uint8(86), + 1605: uint8(86), + 1606: uint8(50), + 1607: uint8(19), + 1608: uint8(129), + 1609: uint8(87), + 1611: uint8(111), + 1612: uint8(129), + 1613: uint8(126), + 1614: uint8(201), + 1615: uint8(215), + 1616: uint8(126), + 1617: uint8(45), + 1618: uint8(129), + 1619: uint8(129), + 1620: uint8(14), + 1621: uint8(126), + 1622: uint8(57), + 1623: uint8(127), + 1624: uint8(111), + 1625: uint8(87), + 1627: uint8(129), + 1628: uint8(129), + 1629: uint8(126), + 1630: uint8(21), + 1632: uint8(126), + 1633: uint8(3), + 1634: uint8(43), + 1635: uint8(43), + 1636: uint8(43), + 1637: uint8(43), + 1638: uint8(43), + 1639: uint8(43), + 1640: uint8(43), + 1641: uint8(43), + 1642: uint8(43), + 1643: uint8(43), + 1644: uint8(43), + 1645: uint8(43), + 1646: uint8(7), + 1647: uint8(43), + 1648: uint8(36), + 1649: uint8(43), + 1650: uint8(151), + 1651: uint8(43), + 1652: uint8(43), + 1653: uint8(43), + 1654: uint8(43), + 1655: uint8(43), + 1656: uint8(43), + 1657: uint8(43), + 1658: uint8(43), + 1659: uint8(43), + 1660: uint8(42), + 1661: uint8(43), + 1662: uint8(43), + 1663: uint8(43), + 1664: uint8(43), + 1665: uint8(43), + 1666: uint8(86), + 1667: uint8(86), + 1668: uint8(86), + 1669: uint8(86), + 1670: uint8(86), + 1671: uint8(128), + 1672: uint8(129), + 1673: uint8(129), + 1674: uint8(129), + 1675: uint8(129), + 1676: uint8(57), + 1677: uint8(187), + 1678: uint8(42), + 1679: uint8(43), + 1680: uint8(43), + 1681: uint8(43), + 1682: uint8(43), + 1683: uint8(43), + 1684: uint8(43), + 1685: uint8(43), + 1686: uint8(43), + 1687: uint8(43), + 1688: uint8(43), + 1689: uint8(43), + 1690: uint8(43), + 1691: uint8(43), + 1692: uint8(43), + 1693: uint8(43), + 1694: uint8(43), + 1695: uint8(43), + 1696: uint8(43), + 1697: uint8(43), + 1698: uint8(43), + 1699: uint8(43), + 1700: uint8(43), + 1701: uint8(43), + 1702: uint8(43), + 1703: uint8(43), + 1704: uint8(43), + 1705: uint8(43), + 1706: uint8(43), + 1707: uint8(43), + 1708: uint8(43), + 1709: uint8(43), + 1710: uint8(43), + 1711: uint8(43), + 1712: uint8(43), + 1713: uint8(43), + 1714: uint8(43), + 1715: uint8(43), + 1716: uint8(43), + 1717: uint8(43), + 1718: uint8(43), + 1719: uint8(1), + 1720: uint8(129), + 1721: uint8(129), + 1722: uint8(129), + 1723: uint8(129), + 1724: uint8(129), + 1725: uint8(129), + 1726: uint8(129), + 1727: uint8(129), + 1728: uint8(129), + 1729: uint8(129), + 1730: uint8(129), + 1731: uint8(129), + 1732: uint8(129), + 1733: uint8(129), + 1734: uint8(129), + 1735: uint8(201), + 1736: uint8(172), + 1737: uint8(172), + 1738: uint8(172), + 1739: uint8(172), + 1740: uint8(172), + 1741: uint8(172), + 1742: uint8(172), + 1743: uint8(172), + 1744: uint8(172), + 1745: uint8(172), + 1746: uint8(172), + 1747: uint8(172), + 1748: uint8(172), + 1749: uint8(172), + 1750: uint8(172), + 1751: uint8(208), + 1752: uint8(13), + 1754: uint8(78), + 1755: uint8(49), + 1756: uint8(2), + 1757: uint8(180), + 1758: uint8(193), + 1759: uint8(193), + 1760: uint8(215), + 1761: uint8(215), + 1762: uint8(36), + 1763: uint8(80), + 1764: uint8(49), + 1765: uint8(80), + 1766: uint8(49), + 1767: uint8(80), + 1768: uint8(49), + 1769: uint8(80), + 1770: uint8(49), + 1771: uint8(80), + 1772: uint8(49), + 1773: uint8(80), + 1774: uint8(49), + 1775: uint8(80), + 1776: uint8(49), + 1777: uint8(80), + 1778: uint8(49), + 1779: uint8(80), + 1780: uint8(49), + 1781: uint8(80), + 1782: uint8(49), + 1783: uint8(80), + 1784: uint8(49), + 1785: uint8(80), + 1786: uint8(49), + 1787: uint8(80), + 1788: uint8(49), + 1789: uint8(80), + 1790: uint8(49), + 1791: uint8(80), + 1792: uint8(49), + 1793: uint8(80), + 1794: uint8(49), + 1795: uint8(80), + 1796: uint8(215), + 1797: uint8(215), + 1798: uint8(83), + 1799: uint8(193), + 1800: uint8(71), + 1801: uint8(212), + 1802: uint8(215), + 1803: uint8(215), + 1804: uint8(215), + 1805: uint8(5), + 1806: uint8(43), + 1807: uint8(43), + 1808: uint8(43), + 1809: uint8(43), + 1810: uint8(43), + 1811: uint8(43), + 1812: uint8(43), + 1813: uint8(43), + 1814: uint8(43), + 1815: uint8(43), + 1816: uint8(43), + 1817: uint8(43), + 1818: uint8(7), + 1819: uint8(1), + 1821: uint8(1), + 1913: uint8(78), + 1914: uint8(49), + 1915: uint8(80), + 1916: uint8(49), + 1917: uint8(80), + 1918: uint8(49), + 1919: uint8(80), + 1920: uint8(49), + 1921: uint8(80), + 1922: uint8(49), + 1923: uint8(80), + 1924: uint8(49), + 1925: uint8(80), + 1926: uint8(49), + 1927: uint8(80), + 1928: uint8(13), + 1934: uint8(36), + 1935: uint8(80), + 1936: uint8(49), + 1937: uint8(80), + 1938: uint8(49), + 1939: uint8(80), + 1940: uint8(49), + 1941: uint8(80), + 1942: uint8(49), + 1943: uint8(80), + 1978: uint8(43), + 1979: uint8(43), + 1980: uint8(43), + 1981: uint8(43), + 1982: uint8(43), + 1983: uint8(43), + 1984: uint8(43), + 1985: uint8(43), + 1986: uint8(43), + 1987: uint8(43), + 1988: uint8(43), + 1989: uint8(121), + 1990: uint8(92), + 1991: uint8(123), + 1992: uint8(92), + 1993: uint8(123), + 1994: uint8(79), + 1995: uint8(123), + 1996: uint8(92), + 1997: uint8(123), + 1998: uint8(92), + 1999: uint8(123), + 2000: uint8(92), + 2001: uint8(123), + 2002: uint8(92), + 2003: uint8(123), + 2004: uint8(92), + 2005: uint8(123), + 2006: uint8(92), + 2007: uint8(123), + 2008: uint8(92), + 2009: uint8(123), + 2010: uint8(92), + 2011: uint8(123), + 2012: uint8(92), + 2013: uint8(123), + 2014: uint8(92), + 2015: uint8(45), + 2016: uint8(43), + 2017: uint8(43), + 2018: uint8(121), + 2019: uint8(20), + 2020: uint8(92), + 2021: uint8(123), + 2022: uint8(92), + 2023: uint8(45), + 2024: uint8(121), + 2025: uint8(42), + 2026: uint8(92), + 2027: uint8(39), + 2028: uint8(92), + 2029: uint8(123), + 2030: uint8(92), + 2031: uint8(123), + 2032: uint8(92), + 2033: uint8(123), + 2034: uint8(164), + 2036: uint8(10), + 2037: uint8(180), + 2038: uint8(92), + 2039: uint8(123), + 2040: uint8(92), + 2041: uint8(123), + 2042: uint8(79), + 2043: uint8(3), + 2044: uint8(42), + 2045: uint8(43), + 2046: uint8(43), + 2047: uint8(43), + 2048: uint8(43), + 2049: uint8(43), + 2050: uint8(43), + 2051: uint8(43), + 2052: uint8(43), + 2053: uint8(43), + 2054: uint8(43), + 2055: uint8(43), + 2056: uint8(43), + 2057: uint8(43), + 2058: uint8(43), + 2059: uint8(43), + 2060: uint8(43), + 2061: uint8(43), + 2062: uint8(43), + 2063: uint8(1), + 2091: uint8(72), + 2101: uint8(42), + 2102: uint8(43), + 2103: uint8(43), + 2104: uint8(43), + 2105: uint8(43), + 2106: uint8(43), + 2107: uint8(43), + 2108: uint8(43), + 2109: uint8(43), + 2110: uint8(43), + 2111: uint8(43), + 2112: uint8(43), + 2113: uint8(43), + 2114: uint8(43), + 2115: uint8(43), + 2116: uint8(43), + 2117: uint8(43), + 2118: uint8(43), + 2119: uint8(43), + 2120: uint8(43), + 2121: uint8(43), + 2122: uint8(43), + 2123: uint8(43), + 2124: uint8(43), + 2125: uint8(43), + 2126: uint8(43), + 2127: uint8(43), + 2161: uint8(43), + 2162: uint8(43), + 2163: uint8(43), + 2164: uint8(43), + 2165: uint8(43), + 2166: uint8(43), + 2167: uint8(43), + 2168: uint8(43), + 2169: uint8(7), + 2171: uint8(72), + 2172: uint8(86), + 2173: uint8(86), + 2174: uint8(86), + 2175: uint8(86), + 2176: uint8(86), + 2177: uint8(86), + 2178: uint8(86), + 2179: uint8(86), + 2180: uint8(2), + 2236: uint8(43), + 2237: uint8(43), + 2238: uint8(43), + 2239: uint8(43), + 2240: uint8(43), + 2241: uint8(43), + 2242: uint8(43), + 2243: uint8(43), + 2244: uint8(43), + 2245: uint8(43), + 2246: uint8(43), + 2247: uint8(43), + 2248: uint8(43), + 2249: uint8(85), + 2250: uint8(86), + 2251: uint8(86), + 2252: uint8(86), + 2253: uint8(86), + 2254: uint8(86), + 2255: uint8(86), + 2256: uint8(86), + 2257: uint8(86), + 2258: uint8(86), + 2259: uint8(86), + 2260: uint8(86), + 2261: uint8(86), + 2262: uint8(14), + 2294: uint8(36), + 2295: uint8(43), + 2296: uint8(43), + 2297: uint8(43), + 2298: uint8(43), + 2299: uint8(43), + 2300: uint8(43), + 2301: uint8(43), + 2302: uint8(43), + 2303: uint8(43), + 2304: uint8(43), + 2305: uint8(43), + 2306: uint8(7), + 2308: uint8(86), + 2309: uint8(86), + 2310: uint8(86), + 2311: uint8(86), + 2312: uint8(86), + 2313: uint8(86), + 2314: uint8(86), + 2315: uint8(86), + 2316: uint8(86), + 2317: uint8(86), + 2318: uint8(86), + 2319: uint8(86), + 2364: uint8(36), + 2365: uint8(43), + 2366: uint8(43), + 2367: uint8(43), + 2368: uint8(43), + 2369: uint8(43), + 2370: uint8(43), + 2371: uint8(43), + 2372: uint8(43), + 2373: uint8(43), + 2374: uint8(43), + 2375: uint8(43), + 2376: uint8(43), + 2377: uint8(43), + 2378: uint8(43), + 2379: uint8(43), + 2380: uint8(43), + 2381: uint8(7), + 2386: uint8(86), + 2387: uint8(86), + 2388: uint8(86), + 2389: uint8(86), + 2390: uint8(86), + 2391: uint8(86), + 2392: uint8(86), + 2393: uint8(86), + 2394: uint8(86), + 2395: uint8(86), + 2396: uint8(86), + 2397: uint8(86), + 2398: uint8(86), + 2399: uint8(86), + 2400: uint8(86), + 2401: uint8(86), + 2402: uint8(86), + 2461: uint8(42), + 2462: uint8(43), + 2463: uint8(43), + 2464: uint8(43), + 2465: uint8(43), + 2466: uint8(43), + 2467: uint8(43), + 2468: uint8(43), + 2469: uint8(43), + 2470: uint8(43), + 2471: uint8(43), + 2472: uint8(86), + 2473: uint8(86), + 2474: uint8(86), + 2475: uint8(86), + 2476: uint8(86), + 2477: uint8(86), + 2478: uint8(86), + 2479: uint8(86), + 2480: uint8(86), + 2481: uint8(86), + 2482: uint8(14), + 2515: uint8(42), + 2516: uint8(43), + 2517: uint8(43), + 2518: uint8(43), + 2519: uint8(43), + 2520: uint8(43), + 2521: uint8(43), + 2522: uint8(43), + 2523: uint8(43), + 2524: uint8(43), + 2525: uint8(43), + 2526: uint8(86), + 2527: uint8(86), + 2528: uint8(86), + 2529: uint8(86), + 2530: uint8(86), + 2531: uint8(86), + 2532: uint8(86), + 2533: uint8(86), + 2534: uint8(86), + 2535: uint8(86), + 2536: uint8(14), + 2580: uint8(43), + 2581: uint8(43), + 2582: uint8(43), + 2583: uint8(43), + 2584: uint8(43), + 2585: uint8(43), + 2586: uint8(43), + 2587: uint8(43), + 2588: uint8(43), + 2589: uint8(43), + 2590: uint8(43), + 2591: uint8(85), + 2592: uint8(86), + 2593: uint8(86), + 2594: uint8(86), + 2595: uint8(86), + 2596: uint8(86), + 2597: uint8(86), + 2598: uint8(86), + 2599: uint8(86), + 2600: uint8(86), + 2601: uint8(86), + 2602: uint8(14), +} +var _rules = [240]int32{ + 1: int32(0x2001), + 2: -int32(0x2000), + 3: int32(0x1dbf00), + 4: int32(0x2e700), + 5: int32(0x7900), + 6: int32(0x2402), + 7: int32(0x101), + 8: -int32(0x100), + 10: int32(0x201), + 11: -int32(0x200), + 12: -int32(0xc6ff), + 13: -int32(0xe800), + 14: -int32(0x78ff), + 15: -int32(0x12c00), + 16: int32(0xc300), + 17: int32(0xd201), + 18: int32(0xce01), + 19: int32(0xcd01), + 20: int32(0x4f01), + 21: int32(0xca01), + 22: int32(0xcb01), + 23: int32(0xcf01), + 24: int32(0x6100), + 25: int32(0xd301), + 26: int32(0xd101), + 27: int32(0xa300), + 28: int32(0xd501), + 29: int32(0x8200), + 30: int32(0xd601), + 31: int32(0xda01), + 32: int32(0xd901), + 33: int32(0xdb01), + 34: int32(0x3800), + 35: int32(0x3), + 36: -int32(0x4f00), + 37: -int32(0x60ff), + 38: -int32(0x37ff), + 39: int32(0x242802), + 41: int32(0x101), + 42: -int32(0x100), + 43: -int32(0xcd00), + 44: -int32(0xda00), + 45: -int32(0x81ff), + 46: int32(0x2a2b01), + 47: -int32(0xa2ff), + 48: int32(0x2a2801), + 49: int32(0x2a3f00), + 50: -int32(0xc2ff), + 51: int32(0x4501), + 52: int32(0x4701), + 53: int32(0x2a1f00), + 54: int32(0x2a1c00), + 55: int32(0x2a1e00), + 56: -int32(0xd200), + 57: -int32(0xce00), + 58: -int32(0xca00), + 59: -int32(0xcb00), + 60: int32(0xa54f00), + 61: int32(0xa54b00), + 62: -int32(0xcf00), + 63: int32(0xa52800), + 64: int32(0xa54400), + 65: -int32(0xd100), + 66: -int32(0xd300), + 67: int32(0x29f700), + 68: int32(0xa54100), + 69: int32(0x29fd00), + 70: -int32(0xd500), + 71: -int32(0xd600), + 72: int32(0x29e700), + 73: int32(0xa54300), + 74: int32(0xa52a00), + 75: -int32(0x4500), + 76: -int32(0xd900), + 77: -int32(0x4700), + 78: -int32(0xdb00), + 79: int32(0xa51500), + 80: int32(0xa51200), + 81: int32(0x4c2402), + 83: int32(0x2001), + 84: -int32(0x2000), + 85: int32(0x101), + 86: -int32(0x100), + 87: int32(0x5400), + 88: int32(0x7401), + 89: int32(0x2601), + 90: int32(0x2501), + 91: int32(0x4001), + 92: int32(0x3f01), + 93: -int32(0x2600), + 94: -int32(0x2500), + 95: -int32(0x1f00), + 96: -int32(0x4000), + 97: -int32(0x3f00), + 98: int32(0x801), + 99: -int32(0x3e00), + 100: -int32(0x3900), + 101: -int32(0x2f00), + 102: -int32(0x3600), + 103: -int32(0x800), + 104: -int32(0x5600), + 105: -int32(0x5000), + 106: int32(0x700), + 107: -int32(0x7400), + 108: -int32(0x3bff), + 109: -int32(0x6000), + 110: -int32(0x6ff), + 111: int32(0x701a02), + 112: int32(0x101), + 113: -int32(0x100), + 114: int32(0x2001), + 115: -int32(0x2000), + 116: int32(0x5001), + 117: int32(0xf01), + 118: -int32(0xf00), + 120: int32(0x3001), + 121: -int32(0x3000), + 122: int32(0x101), + 123: -int32(0x100), + 125: int32(0xbc000), + 126: int32(0x1c6001), + 128: int32(0x97d001), + 129: int32(0x801), + 130: -int32(0x800), + 131: int32(0x8a0502), + 133: -int32(0xbbfff), + 134: -int32(0x186200), + 135: int32(0x89c200), + 136: -int32(0x182500), + 137: -int32(0x186e00), + 138: -int32(0x186d00), + 139: -int32(0x186400), + 140: -int32(0x186300), + 141: -int32(0x185c00), + 143: int32(0x8a3800), + 144: int32(0x8a0400), + 145: int32(0xee600), + 146: int32(0x101), + 147: -int32(0x100), + 149: -int32(0x3b00), + 150: -int32(0x1dbeff), + 151: int32(0x8f1d02), + 152: int32(0x800), + 153: -int32(0x7ff), + 155: int32(0x5600), + 156: -int32(0x55ff), + 157: int32(0x4a00), + 158: int32(0x6400), + 159: int32(0x8000), + 160: int32(0x7000), + 161: int32(0x7e00), + 162: int32(0x900), + 163: -int32(0x49ff), + 164: -int32(0x8ff), + 165: -int32(0x1c2500), + 166: -int32(0x63ff), + 167: -int32(0x6fff), + 168: -int32(0x7fff), + 169: -int32(0x7dff), + 170: int32(0xac0502), + 172: int32(0x1001), + 173: -int32(0x1000), + 174: int32(0x1c01), + 175: int32(0x101), + 176: -int32(0x1d5cff), + 177: -int32(0x20beff), + 178: -int32(0x2045ff), + 179: -int32(0x1c00), + 180: int32(0xb10b02), + 181: int32(0x101), + 182: -int32(0x100), + 183: int32(0x3001), + 184: -int32(0x3000), + 186: -int32(0x29f6ff), + 187: -int32(0xee5ff), + 188: -int32(0x29e6ff), + 189: -int32(0x2a2b00), + 190: -int32(0x2a2800), + 191: -int32(0x2a1bff), + 192: -int32(0x29fcff), + 193: -int32(0x2a1eff), + 194: -int32(0x2a1dff), + 195: -int32(0x2a3eff), + 197: -int32(0x1c6000), + 199: int32(0x101), + 200: -int32(0x100), + 201: int32(0xbc0c02), + 203: int32(0x101), + 204: -int32(0x100), + 205: -int32(0xa543ff), + 206: int32(0x3a001), + 207: -int32(0x8a03ff), + 208: -int32(0xa527ff), + 209: int32(0x3000), + 210: -int32(0xa54eff), + 211: -int32(0xa54aff), + 212: -int32(0xa540ff), + 213: -int32(0xa511ff), + 214: -int32(0xa529ff), + 215: -int32(0xa514ff), + 216: -int32(0x2fff), + 217: -int32(0xa542ff), + 218: -int32(0x8a37ff), + 220: -int32(0x97d000), + 221: -int32(0x3a000), + 223: int32(0x2001), + 224: -int32(0x2000), + 226: int32(0x2801), + 227: -int32(0x2800), + 229: int32(0x4001), + 230: -int32(0x4000), + 232: int32(0x2001), + 233: -int32(0x2000), + 235: int32(0x2001), + 236: -int32(0x2000), + 238: int32(0x2201), + 239: -int32(0x2200), +} +var _rulebases = [512]uint8{ + 1: uint8(6), + 2: uint8(39), + 3: uint8(81), + 4: uint8(111), + 5: uint8(119), + 16: uint8(124), + 19: uint8(127), + 28: uint8(131), + 29: uint8(142), + 30: uint8(146), + 31: uint8(151), + 33: uint8(170), + 44: uint8(180), + 45: uint8(196), + 166: uint8(198), + 167: uint8(201), + 171: uint8(219), + 255: uint8(222), + 260: uint8(225), + 268: uint8(228), + 280: uint8(231), + 366: uint8(234), + 489: uint8(237), +} +var _exceptions = [200][2]uint8{ + 0: { + 0: uint8(48), + 1: uint8(12), + }, + 1: { + 0: uint8(49), + 1: uint8(13), + }, + 2: { + 0: uint8(120), + 1: uint8(14), + }, + 3: { + 0: uint8(127), + 1: uint8(15), + }, + 4: { + 0: uint8(128), + 1: uint8(16), + }, + 5: { + 0: uint8(129), + 1: uint8(17), + }, + 6: { + 0: uint8(134), + 1: uint8(18), + }, + 7: { + 0: uint8(137), + 1: uint8(19), + }, + 8: { + 0: uint8(138), + 1: uint8(19), + }, + 9: { + 0: uint8(142), + 1: uint8(20), + }, + 10: { + 0: uint8(143), + 1: uint8(21), + }, + 11: { + 0: uint8(144), + 1: uint8(22), + }, + 12: { + 0: uint8(147), + 1: uint8(19), + }, + 13: { + 0: uint8(148), + 1: uint8(23), + }, + 14: { + 0: uint8(149), + 1: uint8(24), + }, + 15: { + 0: uint8(150), + 1: uint8(25), + }, + 16: { + 0: uint8(151), + 1: uint8(26), + }, + 17: { + 0: uint8(154), + 1: uint8(27), + }, + 18: { + 0: uint8(156), + 1: uint8(25), + }, + 19: { + 0: uint8(157), + 1: uint8(28), + }, + 20: { + 0: uint8(158), + 1: uint8(29), + }, + 21: { + 0: uint8(159), + 1: uint8(30), + }, + 22: { + 0: uint8(166), + 1: uint8(31), + }, + 23: { + 0: uint8(169), + 1: uint8(31), + }, + 24: { + 0: uint8(174), + 1: uint8(31), + }, + 25: { + 0: uint8(177), + 1: uint8(32), + }, + 26: { + 0: uint8(178), + 1: uint8(32), + }, + 27: { + 0: uint8(183), + 1: uint8(33), + }, + 28: { + 0: uint8(191), + 1: uint8(34), + }, + 29: { + 0: uint8(197), + 1: uint8(35), + }, + 30: { + 0: uint8(200), + 1: uint8(35), + }, + 31: { + 0: uint8(203), + 1: uint8(35), + }, + 32: { + 0: uint8(221), + 1: uint8(36), + }, + 33: { + 0: uint8(242), + 1: uint8(35), + }, + 34: { + 0: uint8(246), + 1: uint8(37), + }, + 35: { + 0: uint8(247), + 1: uint8(38), + }, + 36: { + 0: uint8(32), + 1: uint8(45), + }, + 37: { + 0: uint8(58), + 1: uint8(46), + }, + 38: { + 0: uint8(61), + 1: uint8(47), + }, + 39: { + 0: uint8(62), + 1: uint8(48), + }, + 40: { + 0: uint8(63), + 1: uint8(49), + }, + 41: { + 0: uint8(64), + 1: uint8(49), + }, + 42: { + 0: uint8(67), + 1: uint8(50), + }, + 43: { + 0: uint8(68), + 1: uint8(51), + }, + 44: { + 0: uint8(69), + 1: uint8(52), + }, + 45: { + 0: uint8(80), + 1: uint8(53), + }, + 46: { + 0: uint8(81), + 1: uint8(54), + }, + 47: { + 0: uint8(82), + 1: uint8(55), + }, + 48: { + 0: uint8(83), + 1: uint8(56), + }, + 49: { + 0: uint8(84), + 1: uint8(57), + }, + 50: { + 0: uint8(89), + 1: uint8(58), + }, + 51: { + 0: uint8(91), + 1: uint8(59), + }, + 52: { + 0: uint8(92), + 1: uint8(60), + }, + 53: { + 0: uint8(97), + 1: uint8(61), + }, + 54: { + 0: uint8(99), + 1: uint8(62), + }, + 55: { + 0: uint8(101), + 1: uint8(63), + }, + 56: { + 0: uint8(102), + 1: uint8(64), + }, + 57: { + 0: uint8(104), + 1: uint8(65), + }, + 58: { + 0: uint8(105), + 1: uint8(66), + }, + 59: { + 0: uint8(106), + 1: uint8(64), + }, + 60: { + 0: uint8(107), + 1: uint8(67), + }, + 61: { + 0: uint8(108), + 1: uint8(68), + }, + 62: { + 0: uint8(111), + 1: uint8(66), + }, + 63: { + 0: uint8(113), + 1: uint8(69), + }, + 64: { + 0: uint8(114), + 1: uint8(70), + }, + 65: { + 0: uint8(117), + 1: uint8(71), + }, + 66: { + 0: uint8(125), + 1: uint8(72), + }, + 67: { + 0: uint8(130), + 1: uint8(73), + }, + 68: { + 0: uint8(135), + 1: uint8(74), + }, + 69: { + 0: uint8(137), + 1: uint8(75), + }, + 70: { + 0: uint8(138), + 1: uint8(76), + }, + 71: { + 0: uint8(139), + 1: uint8(76), + }, + 72: { + 0: uint8(140), + 1: uint8(77), + }, + 73: { + 0: uint8(146), + 1: uint8(78), + }, + 74: { + 0: uint8(157), + 1: uint8(79), + }, + 75: { + 0: uint8(158), + 1: uint8(80), + }, + 76: { + 0: uint8(69), + 1: uint8(87), + }, + 77: { + 0: uint8(123), + 1: uint8(29), + }, + 78: { + 0: uint8(124), + 1: uint8(29), + }, + 79: { + 0: uint8(125), + 1: uint8(29), + }, + 80: { + 0: uint8(127), + 1: uint8(88), + }, + 81: { + 0: uint8(134), + 1: uint8(89), + }, + 82: { + 0: uint8(136), + 1: uint8(90), + }, + 83: { + 0: uint8(137), + 1: uint8(90), + }, + 84: { + 0: uint8(138), + 1: uint8(90), + }, + 85: { + 0: uint8(140), + 1: uint8(91), + }, + 86: { + 0: uint8(142), + 1: uint8(92), + }, + 87: { + 0: uint8(143), + 1: uint8(92), + }, + 88: { + 0: uint8(172), + 1: uint8(93), + }, + 89: { + 0: uint8(173), + 1: uint8(94), + }, + 90: { + 0: uint8(174), + 1: uint8(94), + }, + 91: { + 0: uint8(175), + 1: uint8(94), + }, + 92: { + 0: uint8(194), + 1: uint8(95), + }, + 93: { + 0: uint8(204), + 1: uint8(96), + }, + 94: { + 0: uint8(205), + 1: uint8(97), + }, + 95: { + 0: uint8(206), + 1: uint8(97), + }, + 96: { + 0: uint8(207), + 1: uint8(98), + }, + 97: { + 0: uint8(208), + 1: uint8(99), + }, + 98: { + 0: uint8(209), + 1: uint8(100), + }, + 99: { + 0: uint8(213), + 1: uint8(101), + }, + 100: { + 0: uint8(214), + 1: uint8(102), + }, + 101: { + 0: uint8(215), + 1: uint8(103), + }, + 102: { + 0: uint8(240), + 1: uint8(104), + }, + 103: { + 0: uint8(241), + 1: uint8(105), + }, + 104: { + 0: uint8(242), + 1: uint8(106), + }, + 105: { + 0: uint8(243), + 1: uint8(107), + }, + 106: { + 0: uint8(244), + 1: uint8(108), + }, + 107: { + 0: uint8(245), + 1: uint8(109), + }, + 108: { + 0: uint8(249), + 1: uint8(110), + }, + 109: { + 0: uint8(253), + 1: uint8(45), + }, + 110: { + 0: uint8(254), + 1: uint8(45), + }, + 111: { + 0: uint8(255), + 1: uint8(45), + }, + 112: { + 0: uint8(80), + 1: uint8(105), + }, + 113: { + 0: uint8(81), + 1: uint8(105), + }, + 114: { + 0: uint8(82), + 1: uint8(105), + }, + 115: { + 0: uint8(83), + 1: uint8(105), + }, + 116: { + 0: uint8(84), + 1: uint8(105), + }, + 117: { + 0: uint8(85), + 1: uint8(105), + }, + 118: { + 0: uint8(86), + 1: uint8(105), + }, + 119: { + 0: uint8(87), + 1: uint8(105), + }, + 120: { + 0: uint8(88), + 1: uint8(105), + }, + 121: { + 0: uint8(89), + 1: uint8(105), + }, + 122: { + 0: uint8(90), + 1: uint8(105), + }, + 123: { + 0: uint8(91), + 1: uint8(105), + }, + 124: { + 0: uint8(92), + 1: uint8(105), + }, + 125: { + 0: uint8(93), + 1: uint8(105), + }, + 126: { + 0: uint8(94), + 1: uint8(105), + }, + 127: { + 0: uint8(95), + 1: uint8(105), + }, + 128: { + 0: uint8(130), + }, + 129: { + 0: uint8(131), + }, + 130: { + 0: uint8(132), + }, + 131: { + 0: uint8(133), + }, + 132: { + 0: uint8(134), + }, + 133: { + 0: uint8(135), + }, + 134: { + 0: uint8(136), + }, + 135: { + 0: uint8(137), + }, + 136: { + 0: uint8(192), + 1: uint8(117), + }, + 137: { + 0: uint8(207), + 1: uint8(118), + }, + 138: { + 0: uint8(128), + 1: uint8(137), + }, + 139: { + 0: uint8(129), + 1: uint8(138), + }, + 140: { + 0: uint8(130), + 1: uint8(139), + }, + 141: { + 0: uint8(133), + 1: uint8(140), + }, + 142: { + 0: uint8(134), + 1: uint8(141), + }, + 143: { + 0: uint8(112), + 1: uint8(157), + }, + 144: { + 0: uint8(113), + 1: uint8(157), + }, + 145: { + 0: uint8(118), + 1: uint8(158), + }, + 146: { + 0: uint8(119), + 1: uint8(158), + }, + 147: { + 0: uint8(120), + 1: uint8(159), + }, + 148: { + 0: uint8(121), + 1: uint8(159), + }, + 149: { + 0: uint8(122), + 1: uint8(160), + }, + 150: { + 0: uint8(123), + 1: uint8(160), + }, + 151: { + 0: uint8(124), + 1: uint8(161), + }, + 152: { + 0: uint8(125), + 1: uint8(161), + }, + 153: { + 0: uint8(179), + 1: uint8(162), + }, + 154: { + 0: uint8(186), + 1: uint8(163), + }, + 155: { + 0: uint8(187), + 1: uint8(163), + }, + 156: { + 0: uint8(188), + 1: uint8(164), + }, + 157: { + 0: uint8(190), + 1: uint8(165), + }, + 158: { + 0: uint8(195), + 1: uint8(162), + }, + 159: { + 0: uint8(204), + 1: uint8(164), + }, + 160: { + 0: uint8(218), + 1: uint8(166), + }, + 161: { + 0: uint8(219), + 1: uint8(166), + }, + 162: { + 0: uint8(229), + 1: uint8(106), + }, + 163: { + 0: uint8(234), + 1: uint8(167), + }, + 164: { + 0: uint8(235), + 1: uint8(167), + }, + 165: { + 0: uint8(236), + 1: uint8(110), + }, + 166: { + 0: uint8(243), + 1: uint8(162), + }, + 167: { + 0: uint8(248), + 1: uint8(168), + }, + 168: { + 0: uint8(249), + 1: uint8(168), + }, + 169: { + 0: uint8(250), + 1: uint8(169), + }, + 170: { + 0: uint8(251), + 1: uint8(169), + }, + 171: { + 0: uint8(252), + 1: uint8(164), + }, + 172: { + 0: uint8(38), + 1: uint8(176), + }, + 173: { + 0: uint8(42), + 1: uint8(177), + }, + 174: { + 0: uint8(43), + 1: uint8(178), + }, + 175: { + 0: uint8(78), + 1: uint8(179), + }, + 176: { + 0: uint8(132), + 1: uint8(8), + }, + 177: { + 0: uint8(98), + 1: uint8(186), + }, + 178: { + 0: uint8(99), + 1: uint8(187), + }, + 179: { + 0: uint8(100), + 1: uint8(188), + }, + 180: { + 0: uint8(101), + 1: uint8(189), + }, + 181: { + 0: uint8(102), + 1: uint8(190), + }, + 182: { + 0: uint8(109), + 1: uint8(191), + }, + 183: { + 0: uint8(110), + 1: uint8(192), + }, + 184: { + 0: uint8(111), + 1: uint8(193), + }, + 185: { + 0: uint8(112), + 1: uint8(194), + }, + 186: { + 0: uint8(126), + 1: uint8(195), + }, + 187: { + 0: uint8(127), + 1: uint8(195), + }, + 188: { + 0: uint8(125), + 1: uint8(207), + }, + 189: { + 0: uint8(141), + 1: uint8(208), + }, + 190: { + 0: uint8(148), + 1: uint8(209), + }, + 191: { + 0: uint8(171), + 1: uint8(210), + }, + 192: { + 0: uint8(172), + 1: uint8(211), + }, + 193: { + 0: uint8(173), + 1: uint8(212), + }, + 194: { + 0: uint8(176), + 1: uint8(213), + }, + 195: { + 0: uint8(177), + 1: uint8(214), + }, + 196: { + 0: uint8(178), + 1: uint8(215), + }, + 197: { + 0: uint8(196), + 1: uint8(216), + }, + 198: { + 0: uint8(197), + 1: uint8(217), + }, + 199: { + 0: uint8(198), + 1: uint8(218), + }, +} + +func _casemap(tls *TLS, c uint32, dir int32) (r1 int32) { + var b, rt, try, v, x, xb, xn, y uint32 + var c0, r, rd, v1 int32 + _, _, _, _, _, _, _, _, _, _, _, _ = b, c0, r, rd, rt, try, v, x, xb, xn, y, v1 + c0 = int32(c) + if c >= uint32(0x20000) { + return int32(c) + } + b = c >> int32(8) + c &= uint32(255) + x = c / uint32(3) + y = c % uint32(3) + /* lookup entry in two-level base-6 table */ + v = uint32(_tab1[uint32(int32(_tab1[b])*int32(86))+x]) + v = v * uint32(_mt[y]) >> int32(11) % uint32(6) + /* use the bit vector out of the tables as an index into + * a block-specific set of rules and decode the rule into + * a type and a case-mapping delta. */ + r = _rules[uint32(_rulebases[b])+v] + rt = uint32(r & int32(255)) + rd = r >> int32(8) + /* rules 0/1 are simple lower/upper case with a delta. + * apply according to desired mapping direction. */ + if rt < uint32(2) { + return int32(uint32(c0) + uint32(rd)&-(rt^uint32(dir))) + } + /* binary search. endpoints of the binary search for + * this block are stored in the rule delta field. */ + xn = uint32(rd & int32(0xff)) + xb = uint32(rd) >> int32(8) + for xn != 0 { + try = uint32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_exceptions)) + uintptr(xb+xn/uint32(2))*2))) + if try == c { + r = _rules[*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_exceptions)) + uintptr(xb+xn/uint32(2))*2 + 1))] + rt = uint32(r & int32(255)) + rd = r >> int32(8) + if rt < uint32(2) { + return int32(uint32(c0) + uint32(rd)&-(rt^uint32(dir))) + } + /* Hard-coded for the four exceptional titlecase */ + if dir != 0 { + v1 = -int32(1) + } else { + v1 = int32(1) + } + return c0 + v1 + } else { + if try > c { + xn /= uint32(2) + } else { + xb += xn / uint32(2) + xn -= xn / uint32(2) + } + } + } + return c0 +} + +var _mt = [3]int32{ + 0: int32(2048), + 1: int32(342), + 2: int32(57), +} + +func Xtowlower(tls *TLS, wc Twint_t) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v wc=%v, (%v:)", tls, wc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uint32(_casemap(tls, wc, 0)) +} + +func Xtowupper(tls *TLS, wc Twint_t) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v wc=%v, (%v:)", tls, wc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uint32(_casemap(tls, wc, int32(1))) +} + +func X__towupper_l(tls *TLS, c Twint_t, l Tlocale_t) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xtowupper(tls, c) +} + +func X__towlower_l(tls *TLS, c Twint_t, l Tlocale_t) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xtowlower(tls, c) +} + +func Xtowlower_l(tls *TLS, c Twint_t, l Tlocale_t) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__towlower_l(tls, c, l) +} + +func Xtowupper_l(tls *TLS, c Twint_t, l Tlocale_t) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__towupper_l(tls, c, l) +} + +func Xwcswidth(tls *TLS, wcs uintptr, n Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v wcs=%v n=%v, (%v:)", tls, wcs, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var k, l, v3, v5 int32 + var v2 Tsize_t + var v4 bool + _, _, _, _, _, _ = k, l, v2, v3, v4, v5 + l = 0 + k = 0 + for { + v2 = n + n-- + if v4 = v2 != 0 && *(*Twchar_t)(unsafe.Pointer(wcs)) != 0; v4 { + v3 = Xwcwidth(tls, *(*Twchar_t)(unsafe.Pointer(wcs))) + k = v3 + } + if !(v4 && v3 >= 0) { + break + } + goto _1 + _1: + ; + l += k + wcs += 4 + } + if k < 0 { + v5 = k + } else { + v5 = l + } + return v5 +} + +func Xwctrans(tls *TLS, class uintptr) (r Twctrans_t) { + if __ccgo_strace { + trc("tls=%v class=%v, (%v:)", tls, class, origin(2)) + defer func() { trc("-> %v", r) }() + } + if !(Xstrcmp(tls, class, __ccgo_ts+196) != 0) { + return UintptrFromInt32(1) + } + if !(Xstrcmp(tls, class, __ccgo_ts+204) != 0) { + return UintptrFromInt32(2) + } + return uintptr(0) +} + +func Xtowctrans(tls *TLS, wc Twint_t, trans Twctrans_t) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v wc=%v trans=%v, (%v:)", tls, wc, trans, origin(2)) + defer func() { trc("-> %v", r) }() + } + if trans == UintptrFromInt32(1) { + return Xtowupper(tls, wc) + } + if trans == UintptrFromInt32(2) { + return Xtowlower(tls, wc) + } + return wc +} + +func X__wctrans_l(tls *TLS, s uintptr, l Tlocale_t) (r Twctrans_t) { + if __ccgo_strace { + trc("tls=%v s=%v l=%v, (%v:)", tls, s, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xwctrans(tls, s) +} + +func X__towctrans_l(tls *TLS, c Twint_t, t Twctrans_t, l Tlocale_t) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v c=%v t=%v l=%v, (%v:)", tls, c, t, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xtowctrans(tls, c, t) +} + +func Xtowctrans_l(tls *TLS, c Twint_t, t Twctrans_t, l Tlocale_t) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v c=%v t=%v l=%v, (%v:)", tls, c, t, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__towctrans_l(tls, c, t, l) +} + +func Xwctrans_l(tls *TLS, s uintptr, l Tlocale_t) (r Twctrans_t) { + if __ccgo_strace { + trc("tls=%v s=%v l=%v, (%v:)", tls, s, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__wctrans_l(tls, s, l) +} + +var _table5 = [2784]uint8{ + 0: uint8(16), + 1: uint8(16), + 2: uint8(16), + 3: uint8(18), + 4: uint8(19), + 5: uint8(20), + 6: uint8(21), + 7: uint8(22), + 8: uint8(23), + 9: uint8(24), + 10: uint8(25), + 11: uint8(26), + 12: uint8(27), + 13: uint8(28), + 14: uint8(29), + 15: uint8(30), + 16: uint8(31), + 17: uint8(32), + 18: uint8(16), + 19: uint8(33), + 20: uint8(16), + 21: uint8(16), + 22: uint8(16), + 23: uint8(34), + 24: uint8(35), + 25: uint8(36), + 26: uint8(37), + 27: uint8(38), + 28: uint8(39), + 29: uint8(40), + 30: uint8(16), + 31: uint8(16), + 32: uint8(41), + 33: uint8(16), + 34: uint8(16), + 35: uint8(16), + 36: uint8(16), + 37: uint8(16), + 38: uint8(16), + 39: uint8(16), + 40: uint8(16), + 41: uint8(16), + 42: uint8(16), + 43: uint8(16), + 44: uint8(42), + 45: uint8(43), + 46: uint8(16), + 47: uint8(16), + 48: uint8(44), + 49: uint8(16), + 50: uint8(16), + 51: uint8(16), + 52: uint8(16), + 53: uint8(16), + 54: uint8(16), + 55: uint8(16), + 56: uint8(16), + 57: uint8(16), + 58: uint8(16), + 59: uint8(16), + 60: uint8(16), + 61: uint8(16), + 62: uint8(16), + 63: uint8(16), + 64: uint8(16), + 65: uint8(16), + 66: uint8(16), + 67: uint8(16), + 68: uint8(16), + 69: uint8(16), + 70: uint8(16), + 71: uint8(16), + 72: uint8(16), + 73: uint8(16), + 74: uint8(16), + 75: uint8(16), + 76: uint8(16), + 77: uint8(16), + 78: uint8(16), + 79: uint8(16), + 80: uint8(16), + 81: uint8(16), + 82: uint8(16), + 83: uint8(16), + 84: uint8(16), + 85: uint8(16), + 86: uint8(16), + 87: uint8(16), + 88: uint8(16), + 89: uint8(16), + 90: uint8(16), + 91: uint8(16), + 92: uint8(16), + 93: uint8(16), + 94: uint8(16), + 95: uint8(16), + 96: uint8(16), + 97: uint8(16), + 98: uint8(16), + 99: uint8(16), + 100: uint8(16), + 101: uint8(16), + 102: uint8(16), + 103: uint8(16), + 104: uint8(16), + 105: uint8(16), + 106: uint8(16), + 107: uint8(16), + 108: uint8(16), + 109: uint8(16), + 110: uint8(16), + 111: uint8(16), + 112: uint8(16), + 113: uint8(16), + 114: uint8(16), + 115: uint8(16), + 116: uint8(16), + 117: uint8(16), + 118: uint8(16), + 119: uint8(16), + 120: uint8(16), + 121: uint8(16), + 122: uint8(16), + 123: uint8(16), + 124: uint8(16), + 125: uint8(16), + 126: uint8(16), + 127: uint8(16), + 128: uint8(16), + 129: uint8(16), + 130: uint8(16), + 131: uint8(16), + 132: uint8(16), + 133: uint8(16), + 134: uint8(16), + 135: uint8(16), + 136: uint8(16), + 137: uint8(16), + 138: uint8(16), + 139: uint8(16), + 140: uint8(16), + 141: uint8(16), + 142: uint8(16), + 143: uint8(16), + 144: uint8(16), + 145: uint8(16), + 146: uint8(16), + 147: uint8(16), + 148: uint8(16), + 149: uint8(16), + 150: uint8(16), + 151: uint8(16), + 152: uint8(16), + 153: uint8(16), + 154: uint8(16), + 155: uint8(16), + 156: uint8(16), + 157: uint8(16), + 158: uint8(16), + 159: uint8(16), + 160: uint8(16), + 161: uint8(16), + 162: uint8(16), + 163: uint8(16), + 164: uint8(16), + 165: uint8(16), + 166: uint8(45), + 167: uint8(16), + 168: uint8(46), + 169: uint8(47), + 170: uint8(48), + 171: uint8(49), + 172: uint8(16), + 173: uint8(16), + 174: uint8(16), + 175: uint8(16), + 176: uint8(16), + 177: uint8(16), + 178: uint8(16), + 179: uint8(16), + 180: uint8(16), + 181: uint8(16), + 182: uint8(16), + 183: uint8(16), + 184: uint8(16), + 185: uint8(16), + 186: uint8(16), + 187: uint8(16), + 188: uint8(16), + 189: uint8(16), + 190: uint8(16), + 191: uint8(16), + 192: uint8(16), + 193: uint8(16), + 194: uint8(16), + 195: uint8(16), + 196: uint8(16), + 197: uint8(16), + 198: uint8(16), + 199: uint8(16), + 200: uint8(16), + 201: uint8(16), + 202: uint8(16), + 203: uint8(16), + 204: uint8(16), + 205: uint8(16), + 206: uint8(16), + 207: uint8(16), + 208: uint8(16), + 209: uint8(16), + 210: uint8(16), + 211: uint8(16), + 212: uint8(16), + 213: uint8(16), + 214: uint8(16), + 215: uint8(50), + 216: uint8(16), + 217: uint8(16), + 218: uint8(16), + 219: uint8(16), + 220: uint8(16), + 221: uint8(16), + 222: uint8(16), + 223: uint8(16), + 224: uint8(16), + 225: uint8(16), + 226: uint8(16), + 227: uint8(16), + 228: uint8(16), + 229: uint8(16), + 230: uint8(16), + 231: uint8(16), + 232: uint8(16), + 233: uint8(16), + 234: uint8(16), + 235: uint8(16), + 236: uint8(16), + 237: uint8(16), + 238: uint8(16), + 239: uint8(16), + 240: uint8(16), + 241: uint8(16), + 242: uint8(16), + 243: uint8(16), + 244: uint8(16), + 245: uint8(16), + 246: uint8(16), + 247: uint8(16), + 248: uint8(16), + 249: uint8(16), + 250: uint8(16), + 251: uint8(51), + 252: uint8(16), + 253: uint8(16), + 254: uint8(52), + 255: uint8(53), + 256: uint8(16), + 257: uint8(54), + 258: uint8(55), + 259: uint8(56), + 260: uint8(16), + 261: uint8(16), + 262: uint8(16), + 263: uint8(16), + 264: uint8(16), + 265: uint8(16), + 266: uint8(57), + 267: uint8(16), + 268: uint8(16), + 269: uint8(58), + 270: uint8(16), + 271: uint8(59), + 272: uint8(60), + 273: uint8(61), + 274: uint8(62), + 275: uint8(63), + 276: uint8(64), + 277: uint8(65), + 278: uint8(66), + 279: uint8(67), + 280: uint8(68), + 281: uint8(69), + 282: uint8(70), + 283: uint8(16), + 284: uint8(71), + 285: uint8(72), + 286: uint8(73), + 287: uint8(16), + 288: uint8(16), + 289: uint8(16), + 290: uint8(16), + 291: uint8(16), + 292: uint8(16), + 293: uint8(16), + 294: uint8(16), + 295: uint8(16), + 296: uint8(16), + 297: uint8(16), + 298: uint8(16), + 299: uint8(16), + 300: uint8(16), + 301: uint8(16), + 302: uint8(16), + 303: uint8(16), + 304: uint8(16), + 305: uint8(16), + 306: uint8(16), + 307: uint8(16), + 308: uint8(74), + 309: uint8(16), + 310: uint8(16), + 311: uint8(16), + 312: uint8(16), + 313: uint8(16), + 314: uint8(16), + 315: uint8(16), + 316: uint8(16), + 317: uint8(16), + 318: uint8(16), + 319: uint8(16), + 320: uint8(16), + 321: uint8(16), + 322: uint8(16), + 323: uint8(16), + 324: uint8(16), + 325: uint8(16), + 326: uint8(16), + 327: uint8(16), + 328: uint8(16), + 329: uint8(16), + 330: uint8(16), + 331: uint8(16), + 332: uint8(16), + 333: uint8(16), + 334: uint8(16), + 335: uint8(16), + 336: uint8(16), + 337: uint8(16), + 338: uint8(16), + 339: uint8(16), + 340: uint8(16), + 341: uint8(16), + 342: uint8(16), + 343: uint8(16), + 344: uint8(16), + 345: uint8(16), + 346: uint8(16), + 347: uint8(16), + 348: uint8(16), + 349: uint8(16), + 350: uint8(16), + 351: uint8(16), + 352: uint8(16), + 353: uint8(16), + 354: uint8(16), + 355: uint8(16), + 356: uint8(16), + 357: uint8(16), + 358: uint8(16), + 359: uint8(16), + 360: uint8(16), + 361: uint8(16), + 362: uint8(75), + 363: uint8(76), + 364: uint8(16), + 365: uint8(16), + 366: uint8(16), + 367: uint8(77), + 368: uint8(16), + 369: uint8(16), + 370: uint8(16), + 371: uint8(16), + 372: uint8(16), + 373: uint8(16), + 374: uint8(16), + 375: uint8(16), + 376: uint8(16), + 377: uint8(16), + 378: uint8(16), + 379: uint8(16), + 380: uint8(16), + 381: uint8(16), + 382: uint8(16), + 383: uint8(16), + 384: uint8(16), + 385: uint8(16), + 386: uint8(16), + 387: uint8(16), + 388: uint8(16), + 389: uint8(16), + 390: uint8(16), + 391: uint8(16), + 392: uint8(16), + 393: uint8(16), + 394: uint8(16), + 395: uint8(16), + 396: uint8(16), + 397: uint8(16), + 398: uint8(16), + 399: uint8(16), + 400: uint8(16), + 401: uint8(16), + 402: uint8(16), + 403: uint8(16), + 404: uint8(16), + 405: uint8(16), + 406: uint8(16), + 407: uint8(16), + 408: uint8(16), + 409: uint8(16), + 410: uint8(16), + 411: uint8(16), + 412: uint8(16), + 413: uint8(16), + 414: uint8(16), + 415: uint8(16), + 416: uint8(16), + 417: uint8(16), + 418: uint8(16), + 419: uint8(16), + 420: uint8(16), + 421: uint8(16), + 422: uint8(16), + 423: uint8(16), + 424: uint8(16), + 425: uint8(16), + 426: uint8(16), + 427: uint8(16), + 428: uint8(16), + 429: uint8(16), + 430: uint8(16), + 431: uint8(16), + 432: uint8(16), + 433: uint8(16), + 434: uint8(16), + 435: uint8(16), + 436: uint8(16), + 437: uint8(16), + 438: uint8(16), + 439: uint8(16), + 440: uint8(16), + 441: uint8(16), + 442: uint8(16), + 443: uint8(16), + 444: uint8(78), + 445: uint8(16), + 446: uint8(16), + 447: uint8(16), + 448: uint8(16), + 449: uint8(16), + 450: uint8(16), + 451: uint8(16), + 452: uint8(16), + 453: uint8(16), + 454: uint8(16), + 455: uint8(16), + 456: uint8(16), + 457: uint8(16), + 458: uint8(16), + 459: uint8(16), + 460: uint8(16), + 461: uint8(16), + 462: uint8(16), + 463: uint8(16), + 464: uint8(16), + 465: uint8(79), + 466: uint8(80), + 467: uint8(16), + 468: uint8(16), + 469: uint8(16), + 470: uint8(16), + 471: uint8(16), + 472: uint8(16), + 473: uint8(16), + 474: uint8(81), + 475: uint8(16), + 476: uint8(16), + 477: uint8(16), + 478: uint8(16), + 479: uint8(16), + 480: uint8(82), + 481: uint8(83), + 482: uint8(84), + 483: uint8(16), + 484: uint8(16), + 485: uint8(16), + 486: uint8(16), + 487: uint8(16), + 488: uint8(85), + 489: uint8(86), + 490: uint8(16), + 491: uint8(16), + 492: uint8(16), + 493: uint8(16), + 494: uint8(16), + 495: uint8(16), + 496: uint8(16), + 497: uint8(16), + 498: uint8(16), + 499: uint8(16), + 500: uint8(16), + 501: uint8(16), + 502: uint8(16), + 503: uint8(16), + 504: uint8(16), + 505: uint8(16), + 506: uint8(16), + 507: uint8(16), + 508: uint8(16), + 509: uint8(16), + 510: uint8(16), + 511: uint8(16), + 544: uint8(255), + 545: uint8(255), + 546: uint8(255), + 547: uint8(255), + 548: uint8(255), + 549: uint8(255), + 550: uint8(255), + 551: uint8(255), + 552: uint8(255), + 553: uint8(255), + 554: uint8(255), + 555: uint8(255), + 556: uint8(255), + 557: uint8(255), + 558: uint8(255), + 559: uint8(255), + 560: uint8(255), + 561: uint8(255), + 562: uint8(255), + 563: uint8(255), + 564: uint8(255), + 565: uint8(255), + 566: uint8(255), + 567: uint8(255), + 568: uint8(255), + 569: uint8(255), + 570: uint8(255), + 571: uint8(255), + 572: uint8(255), + 573: uint8(255), + 574: uint8(255), + 575: uint8(255), + 576: uint8(255), + 577: uint8(255), + 578: uint8(255), + 579: uint8(255), + 580: uint8(255), + 581: uint8(255), + 582: uint8(255), + 583: uint8(255), + 584: uint8(255), + 585: uint8(255), + 586: uint8(255), + 587: uint8(255), + 588: uint8(255), + 589: uint8(255), + 624: uint8(248), + 625: uint8(3), + 658: uint8(254), + 659: uint8(255), + 660: uint8(255), + 661: uint8(255), + 662: uint8(255), + 663: uint8(191), + 664: uint8(182), + 672: uint8(63), + 674: uint8(255), + 675: uint8(23), + 681: uint8(248), + 682: uint8(255), + 683: uint8(255), + 686: uint8(1), + 698: uint8(192), + 699: uint8(191), + 700: uint8(159), + 701: uint8(61), + 705: uint8(128), + 706: uint8(2), + 710: uint8(255), + 711: uint8(255), + 712: uint8(255), + 713: uint8(7), + 724: uint8(192), + 725: uint8(255), + 726: uint8(1), + 733: uint8(248), + 734: uint8(15), + 735: uint8(32), + 738: uint8(192), + 739: uint8(251), + 740: uint8(239), + 741: uint8(62), + 747: uint8(14), + 762: uint8(248), + 763: uint8(255), + 764: uint8(255), + 765: uint8(255), + 766: uint8(255), + 767: uint8(255), + 768: uint8(7), + 775: uint8(20), + 776: uint8(254), + 777: uint8(33), + 778: uint8(254), + 780: uint8(12), + 784: uint8(2), + 791: uint8(16), + 792: uint8(30), + 793: uint8(32), + 796: uint8(12), + 799: uint8(64), + 800: uint8(6), + 807: uint8(16), + 808: uint8(134), + 809: uint8(57), + 810: uint8(2), + 814: uint8(35), + 816: uint8(6), + 823: uint8(16), + 824: uint8(190), + 825: uint8(33), + 828: uint8(12), + 831: uint8(252), + 832: uint8(2), + 839: uint8(144), + 840: uint8(30), + 841: uint8(32), + 842: uint8(64), + 844: uint8(12), + 848: uint8(4), + 856: uint8(1), + 857: uint8(32), + 864: uint8(17), + 871: uint8(192), + 872: uint8(193), + 873: uint8(61), + 874: uint8(96), + 876: uint8(12), + 880: uint8(2), + 887: uint8(144), + 888: uint8(64), + 889: uint8(48), + 892: uint8(12), + 896: uint8(3), + 903: uint8(24), + 904: uint8(30), + 905: uint8(32), + 908: uint8(12), + 921: uint8(4), + 922: uint8(92), + 934: uint8(242), + 935: uint8(7), + 936: uint8(128), + 937: uint8(127), + 950: uint8(242), + 951: uint8(31), + 953: uint8(63), + 963: uint8(3), + 966: uint8(160), + 967: uint8(2), + 974: uint8(254), + 975: uint8(127), + 976: uint8(223), + 977: uint8(224), + 978: uint8(255), + 979: uint8(254), + 980: uint8(255), + 981: uint8(255), + 982: uint8(255), + 983: uint8(31), + 984: uint8(64), + 997: uint8(224), + 998: uint8(253), + 999: uint8(102), + 1003: uint8(195), + 1004: uint8(1), + 1006: uint8(30), + 1008: uint8(100), + 1009: uint8(32), + 1011: uint8(32), + 1036: uint8(255), + 1037: uint8(255), + 1038: uint8(255), + 1039: uint8(255), + 1040: uint8(255), + 1041: uint8(255), + 1042: uint8(255), + 1043: uint8(255), + 1044: uint8(255), + 1045: uint8(255), + 1046: uint8(255), + 1047: uint8(255), + 1048: uint8(255), + 1049: uint8(255), + 1050: uint8(255), + 1051: uint8(255), + 1052: uint8(255), + 1053: uint8(255), + 1054: uint8(255), + 1055: uint8(255), + 1067: uint8(224), + 1090: uint8(28), + 1094: uint8(28), + 1098: uint8(12), + 1102: uint8(12), + 1110: uint8(176), + 1111: uint8(63), + 1112: uint8(64), + 1113: uint8(254), + 1114: uint8(15), + 1115: uint8(32), + 1121: uint8(120), + 1136: uint8(96), + 1141: uint8(2), + 1156: uint8(135), + 1157: uint8(1), + 1158: uint8(4), + 1159: uint8(14), + 1186: uint8(128), + 1187: uint8(9), + 1194: uint8(64), + 1195: uint8(127), + 1196: uint8(229), + 1197: uint8(31), + 1198: uint8(248), + 1199: uint8(159), + 1206: uint8(255), + 1207: uint8(127), + 1216: uint8(15), + 1222: uint8(208), + 1223: uint8(23), + 1224: uint8(4), + 1229: uint8(248), + 1230: uint8(15), + 1232: uint8(3), + 1236: uint8(60), + 1237: uint8(59), + 1244: uint8(64), + 1245: uint8(163), + 1246: uint8(3), + 1253: uint8(240), + 1254: uint8(207), + 1274: uint8(247), + 1275: uint8(255), + 1276: uint8(253), + 1277: uint8(33), + 1278: uint8(16), + 1279: uint8(3), + 1304: uint8(255), + 1305: uint8(255), + 1306: uint8(255), + 1307: uint8(255), + 1308: uint8(255), + 1309: uint8(255), + 1310: uint8(255), + 1311: uint8(251), + 1313: uint8(248), + 1317: uint8(124), + 1324: uint8(223), + 1325: uint8(255), + 1338: uint8(255), + 1339: uint8(255), + 1340: uint8(255), + 1341: uint8(255), + 1342: uint8(1), + 1373: uint8(128), + 1374: uint8(3), + 1391: uint8(128), + 1404: uint8(255), + 1405: uint8(255), + 1406: uint8(255), + 1407: uint8(255), + 1413: uint8(60), + 1427: uint8(6), + 1453: uint8(128), + 1454: uint8(247), + 1455: uint8(63), + 1459: uint8(192), + 1470: uint8(3), + 1472: uint8(68), + 1473: uint8(8), + 1476: uint8(96), + 1496: uint8(48), + 1500: uint8(255), + 1501: uint8(255), + 1502: uint8(3), + 1503: uint8(128), + 1508: uint8(192), + 1509: uint8(63), + 1512: uint8(128), + 1513: uint8(255), + 1514: uint8(3), + 1520: uint8(7), + 1526: uint8(200), + 1527: uint8(51), + 1532: uint8(32), + 1541: uint8(126), + 1542: uint8(102), + 1544: uint8(8), + 1545: uint8(16), + 1551: uint8(16), + 1558: uint8(157), + 1559: uint8(193), + 1560: uint8(2), + 1565: uint8(48), + 1566: uint8(64), + 1596: uint8(32), + 1597: uint8(33), + 1622: uint8(255), + 1623: uint8(255), + 1624: uint8(255), + 1625: uint8(255), + 1626: uint8(255), + 1627: uint8(255), + 1628: uint8(255), + 1629: uint8(255), + 1630: uint8(255), + 1631: uint8(255), + 1635: uint8(64), + 1664: uint8(255), + 1665: uint8(255), + 1668: uint8(255), + 1669: uint8(255), + 1695: uint8(128), + 1727: uint8(14), + 1759: uint8(32), + 1788: uint8(1), + 1806: uint8(192), + 1807: uint8(7), + 1824: uint8(110), + 1825: uint8(240), + 1831: uint8(135), + 1852: uint8(96), + 1860: uint8(240), + 1896: uint8(192), + 1897: uint8(255), + 1898: uint8(1), + 1920: uint8(2), + 1927: uint8(255), + 1928: uint8(127), + 1935: uint8(128), + 1936: uint8(3), + 1942: uint8(120), + 1943: uint8(38), + 1945: uint8(32), + 1952: uint8(7), + 1956: uint8(128), + 1957: uint8(239), + 1958: uint8(31), + 1966: uint8(8), + 1968: uint8(3), + 1974: uint8(192), + 1975: uint8(127), + 1977: uint8(30), + 1989: uint8(128), + 1990: uint8(211), + 1991: uint8(64), + 2011: uint8(128), + 2012: uint8(248), + 2013: uint8(7), + 2016: uint8(3), + 2023: uint8(24), + 2024: uint8(1), + 2028: uint8(192), + 2029: uint8(31), + 2030: uint8(31), + 2055: uint8(255), + 2056: uint8(92), + 2059: uint8(64), + 2070: uint8(248), + 2071: uint8(133), + 2072: uint8(13), + 2102: uint8(60), + 2103: uint8(176), + 2104: uint8(1), + 2107: uint8(48), + 2118: uint8(248), + 2119: uint8(167), + 2120: uint8(1), + 2133: uint8(40), + 2134: uint8(191), + 2147: uint8(224), + 2148: uint8(188), + 2149: uint8(15), + 2181: uint8(128), + 2182: uint8(255), + 2183: uint8(6), + 2234: uint8(240), + 2235: uint8(12), + 2236: uint8(1), + 2240: uint8(254), + 2241: uint8(7), + 2246: uint8(248), + 2247: uint8(121), + 2248: uint8(128), + 2250: uint8(126), + 2251: uint8(14), + 2257: uint8(252), + 2258: uint8(127), + 2259: uint8(3), + 2278: uint8(127), + 2279: uint8(191), + 2290: uint8(252), + 2291: uint8(255), + 2292: uint8(255), + 2293: uint8(252), + 2294: uint8(109), + 2310: uint8(126), + 2311: uint8(180), + 2312: uint8(191), + 2322: uint8(163), + 2366: uint8(24), + 2374: uint8(255), + 2375: uint8(1), + 2430: uint8(31), + 2438: uint8(127), + 2473: uint8(128), + 2481: uint8(128), + 2482: uint8(7), + 2515: uint8(96), + 2516: uint8(15), + 2540: uint8(128), + 2541: uint8(3), + 2542: uint8(248), + 2543: uint8(255), + 2544: uint8(231), + 2545: uint8(15), + 2549: uint8(60), + 2568: uint8(28), + 2592: uint8(255), + 2593: uint8(255), + 2594: uint8(255), + 2595: uint8(255), + 2596: uint8(255), + 2597: uint8(255), + 2598: uint8(127), + 2599: uint8(248), + 2600: uint8(255), + 2601: uint8(255), + 2602: uint8(255), + 2603: uint8(255), + 2604: uint8(255), + 2605: uint8(31), + 2606: uint8(32), + 2608: uint8(16), + 2611: uint8(248), + 2612: uint8(254), + 2613: uint8(255), + 2624: uint8(127), + 2625: uint8(255), + 2626: uint8(255), + 2627: uint8(249), + 2628: uint8(219), + 2629: uint8(7), + 2662: uint8(127), + 2717: uint8(240), + 2746: uint8(127), + 2760: uint8(240), + 2761: uint8(7), +} + +var _wtable = [1600]uint8{ + 0: uint8(16), + 1: uint8(16), + 2: uint8(16), + 3: uint8(16), + 4: uint8(16), + 5: uint8(16), + 6: uint8(16), + 7: uint8(16), + 8: uint8(16), + 9: uint8(16), + 10: uint8(16), + 11: uint8(16), + 12: uint8(16), + 13: uint8(16), + 14: uint8(16), + 15: uint8(16), + 16: uint8(16), + 17: uint8(18), + 18: uint8(16), + 19: uint8(16), + 20: uint8(16), + 21: uint8(16), + 22: uint8(16), + 23: uint8(16), + 24: uint8(16), + 25: uint8(16), + 26: uint8(16), + 27: uint8(16), + 28: uint8(16), + 29: uint8(16), + 30: uint8(16), + 31: uint8(16), + 32: uint8(16), + 33: uint8(16), + 34: uint8(16), + 35: uint8(19), + 36: uint8(16), + 37: uint8(20), + 38: uint8(21), + 39: uint8(22), + 40: uint8(16), + 41: uint8(16), + 42: uint8(16), + 43: uint8(23), + 44: uint8(16), + 45: uint8(16), + 46: uint8(24), + 47: uint8(25), + 48: uint8(26), + 49: uint8(27), + 50: uint8(28), + 51: uint8(17), + 52: uint8(17), + 53: uint8(17), + 54: uint8(17), + 55: uint8(17), + 56: uint8(17), + 57: uint8(17), + 58: uint8(17), + 59: uint8(17), + 60: uint8(17), + 61: uint8(17), + 62: uint8(17), + 63: uint8(17), + 64: uint8(17), + 65: uint8(17), + 66: uint8(17), + 67: uint8(17), + 68: uint8(17), + 69: uint8(17), + 70: uint8(17), + 71: uint8(17), + 72: uint8(17), + 73: uint8(17), + 74: uint8(17), + 75: uint8(17), + 76: uint8(17), + 77: uint8(29), + 78: uint8(17), + 79: uint8(17), + 80: uint8(17), + 81: uint8(17), + 82: uint8(17), + 83: uint8(17), + 84: uint8(17), + 85: uint8(17), + 86: uint8(17), + 87: uint8(17), + 88: uint8(17), + 89: uint8(17), + 90: uint8(17), + 91: uint8(17), + 92: uint8(17), + 93: uint8(17), + 94: uint8(17), + 95: uint8(17), + 96: uint8(17), + 97: uint8(17), + 98: uint8(17), + 99: uint8(17), + 100: uint8(17), + 101: uint8(17), + 102: uint8(17), + 103: uint8(17), + 104: uint8(17), + 105: uint8(17), + 106: uint8(17), + 107: uint8(17), + 108: uint8(17), + 109: uint8(17), + 110: uint8(17), + 111: uint8(17), + 112: uint8(17), + 113: uint8(17), + 114: uint8(17), + 115: uint8(17), + 116: uint8(17), + 117: uint8(17), + 118: uint8(17), + 119: uint8(17), + 120: uint8(17), + 121: uint8(17), + 122: uint8(17), + 123: uint8(17), + 124: uint8(17), + 125: uint8(17), + 126: uint8(17), + 127: uint8(17), + 128: uint8(17), + 129: uint8(17), + 130: uint8(17), + 131: uint8(17), + 132: uint8(17), + 133: uint8(17), + 134: uint8(17), + 135: uint8(17), + 136: uint8(17), + 137: uint8(17), + 138: uint8(17), + 139: uint8(17), + 140: uint8(17), + 141: uint8(17), + 142: uint8(17), + 143: uint8(17), + 144: uint8(17), + 145: uint8(17), + 146: uint8(17), + 147: uint8(17), + 148: uint8(17), + 149: uint8(17), + 150: uint8(17), + 151: uint8(17), + 152: uint8(17), + 153: uint8(17), + 154: uint8(17), + 155: uint8(17), + 156: uint8(17), + 157: uint8(17), + 158: uint8(17), + 159: uint8(17), + 160: uint8(17), + 161: uint8(17), + 162: uint8(17), + 163: uint8(17), + 164: uint8(30), + 165: uint8(16), + 166: uint8(16), + 167: uint8(16), + 168: uint8(16), + 169: uint8(31), + 170: uint8(16), + 171: uint8(16), + 172: uint8(17), + 173: uint8(17), + 174: uint8(17), + 175: uint8(17), + 176: uint8(17), + 177: uint8(17), + 178: uint8(17), + 179: uint8(17), + 180: uint8(17), + 181: uint8(17), + 182: uint8(17), + 183: uint8(17), + 184: uint8(17), + 185: uint8(17), + 186: uint8(17), + 187: uint8(17), + 188: uint8(17), + 189: uint8(17), + 190: uint8(17), + 191: uint8(17), + 192: uint8(17), + 193: uint8(17), + 194: uint8(17), + 195: uint8(17), + 196: uint8(17), + 197: uint8(17), + 198: uint8(17), + 199: uint8(17), + 200: uint8(17), + 201: uint8(17), + 202: uint8(17), + 203: uint8(17), + 204: uint8(17), + 205: uint8(17), + 206: uint8(17), + 207: uint8(17), + 208: uint8(17), + 209: uint8(17), + 210: uint8(17), + 211: uint8(17), + 212: uint8(17), + 213: uint8(17), + 214: uint8(17), + 215: uint8(32), + 216: uint8(16), + 217: uint8(16), + 218: uint8(16), + 219: uint8(16), + 220: uint8(16), + 221: uint8(16), + 222: uint8(16), + 223: uint8(16), + 224: uint8(16), + 225: uint8(16), + 226: uint8(16), + 227: uint8(16), + 228: uint8(16), + 229: uint8(16), + 230: uint8(16), + 231: uint8(16), + 232: uint8(16), + 233: uint8(16), + 234: uint8(16), + 235: uint8(16), + 236: uint8(16), + 237: uint8(16), + 238: uint8(16), + 239: uint8(16), + 240: uint8(16), + 241: uint8(16), + 242: uint8(16), + 243: uint8(16), + 244: uint8(16), + 245: uint8(16), + 246: uint8(16), + 247: uint8(16), + 248: uint8(16), + 249: uint8(17), + 250: uint8(17), + 251: uint8(16), + 252: uint8(16), + 253: uint8(16), + 254: uint8(33), + 255: uint8(34), + 256: uint8(16), + 257: uint8(16), + 258: uint8(16), + 259: uint8(16), + 260: uint8(16), + 261: uint8(16), + 262: uint8(16), + 263: uint8(16), + 264: uint8(16), + 265: uint8(16), + 266: uint8(16), + 267: uint8(16), + 268: uint8(16), + 269: uint8(16), + 270: uint8(16), + 271: uint8(16), + 272: uint8(16), + 273: uint8(16), + 274: uint8(16), + 275: uint8(16), + 276: uint8(16), + 277: uint8(16), + 278: uint8(16), + 279: uint8(16), + 280: uint8(16), + 281: uint8(16), + 282: uint8(16), + 283: uint8(16), + 284: uint8(16), + 285: uint8(16), + 286: uint8(16), + 287: uint8(16), + 288: uint8(16), + 289: uint8(16), + 290: uint8(16), + 291: uint8(16), + 292: uint8(16), + 293: uint8(16), + 294: uint8(16), + 295: uint8(16), + 296: uint8(16), + 297: uint8(16), + 298: uint8(16), + 299: uint8(16), + 300: uint8(16), + 301: uint8(16), + 302: uint8(16), + 303: uint8(16), + 304: uint8(16), + 305: uint8(16), + 306: uint8(16), + 307: uint8(16), + 308: uint8(16), + 309: uint8(16), + 310: uint8(16), + 311: uint8(16), + 312: uint8(16), + 313: uint8(16), + 314: uint8(16), + 315: uint8(16), + 316: uint8(16), + 317: uint8(16), + 318: uint8(16), + 319: uint8(16), + 320: uint8(16), + 321: uint8(16), + 322: uint8(16), + 323: uint8(16), + 324: uint8(16), + 325: uint8(16), + 326: uint8(16), + 327: uint8(16), + 328: uint8(16), + 329: uint8(16), + 330: uint8(16), + 331: uint8(16), + 332: uint8(16), + 333: uint8(16), + 334: uint8(16), + 335: uint8(16), + 336: uint8(16), + 337: uint8(16), + 338: uint8(16), + 339: uint8(16), + 340: uint8(16), + 341: uint8(16), + 342: uint8(16), + 343: uint8(16), + 344: uint8(16), + 345: uint8(16), + 346: uint8(16), + 347: uint8(16), + 348: uint8(16), + 349: uint8(16), + 350: uint8(16), + 351: uint8(16), + 352: uint8(16), + 353: uint8(16), + 354: uint8(16), + 355: uint8(16), + 356: uint8(16), + 357: uint8(16), + 358: uint8(16), + 359: uint8(16), + 360: uint8(16), + 361: uint8(16), + 362: uint8(16), + 363: uint8(16), + 364: uint8(16), + 365: uint8(16), + 366: uint8(16), + 367: uint8(35), + 368: uint8(17), + 369: uint8(17), + 370: uint8(17), + 371: uint8(17), + 372: uint8(17), + 373: uint8(17), + 374: uint8(17), + 375: uint8(17), + 376: uint8(17), + 377: uint8(17), + 378: uint8(17), + 379: uint8(17), + 380: uint8(17), + 381: uint8(17), + 382: uint8(17), + 383: uint8(17), + 384: uint8(17), + 385: uint8(17), + 386: uint8(17), + 387: uint8(17), + 388: uint8(17), + 389: uint8(17), + 390: uint8(17), + 391: uint8(36), + 392: uint8(17), + 393: uint8(17), + 394: uint8(37), + 395: uint8(16), + 396: uint8(16), + 397: uint8(16), + 398: uint8(16), + 399: uint8(16), + 400: uint8(16), + 401: uint8(16), + 402: uint8(16), + 403: uint8(16), + 404: uint8(16), + 405: uint8(16), + 406: uint8(16), + 407: uint8(16), + 408: uint8(16), + 409: uint8(16), + 410: uint8(16), + 411: uint8(16), + 412: uint8(16), + 413: uint8(16), + 414: uint8(16), + 415: uint8(16), + 416: uint8(16), + 417: uint8(16), + 418: uint8(16), + 419: uint8(16), + 420: uint8(16), + 421: uint8(16), + 422: uint8(16), + 423: uint8(16), + 424: uint8(16), + 425: uint8(16), + 426: uint8(16), + 427: uint8(16), + 428: uint8(16), + 429: uint8(16), + 430: uint8(16), + 431: uint8(16), + 432: uint8(17), + 433: uint8(38), + 434: uint8(39), + 435: uint8(16), + 436: uint8(16), + 437: uint8(16), + 438: uint8(16), + 439: uint8(16), + 440: uint8(16), + 441: uint8(16), + 442: uint8(16), + 443: uint8(16), + 444: uint8(16), + 445: uint8(16), + 446: uint8(16), + 447: uint8(16), + 448: uint8(16), + 449: uint8(16), + 450: uint8(16), + 451: uint8(16), + 452: uint8(16), + 453: uint8(16), + 454: uint8(16), + 455: uint8(16), + 456: uint8(16), + 457: uint8(16), + 458: uint8(16), + 459: uint8(16), + 460: uint8(16), + 461: uint8(16), + 462: uint8(16), + 463: uint8(16), + 464: uint8(16), + 465: uint8(16), + 466: uint8(16), + 467: uint8(16), + 468: uint8(16), + 469: uint8(16), + 470: uint8(16), + 471: uint8(16), + 472: uint8(16), + 473: uint8(16), + 474: uint8(16), + 475: uint8(16), + 476: uint8(16), + 477: uint8(16), + 478: uint8(16), + 479: uint8(16), + 480: uint8(16), + 481: uint8(16), + 482: uint8(16), + 483: uint8(16), + 484: uint8(16), + 485: uint8(16), + 486: uint8(16), + 487: uint8(16), + 488: uint8(16), + 489: uint8(16), + 490: uint8(16), + 491: uint8(16), + 492: uint8(16), + 493: uint8(16), + 494: uint8(16), + 495: uint8(16), + 496: uint8(40), + 497: uint8(41), + 498: uint8(42), + 499: uint8(43), + 500: uint8(44), + 501: uint8(45), + 502: uint8(46), + 503: uint8(47), + 504: uint8(16), + 505: uint8(48), + 506: uint8(49), + 507: uint8(16), + 508: uint8(16), + 509: uint8(16), + 510: uint8(16), + 511: uint8(16), + 544: uint8(255), + 545: uint8(255), + 546: uint8(255), + 547: uint8(255), + 548: uint8(255), + 549: uint8(255), + 550: uint8(255), + 551: uint8(255), + 552: uint8(255), + 553: uint8(255), + 554: uint8(255), + 555: uint8(255), + 556: uint8(255), + 557: uint8(255), + 558: uint8(255), + 559: uint8(255), + 560: uint8(255), + 561: uint8(255), + 562: uint8(255), + 563: uint8(255), + 564: uint8(255), + 565: uint8(255), + 566: uint8(255), + 567: uint8(255), + 568: uint8(255), + 569: uint8(255), + 570: uint8(255), + 571: uint8(255), + 572: uint8(255), + 573: uint8(255), + 574: uint8(255), + 575: uint8(255), + 576: uint8(255), + 577: uint8(255), + 578: uint8(255), + 579: uint8(255), + 580: uint8(255), + 581: uint8(255), + 582: uint8(255), + 583: uint8(255), + 584: uint8(255), + 585: uint8(255), + 586: uint8(255), + 587: uint8(255), + 611: uint8(12), + 613: uint8(6), + 637: uint8(30), + 638: uint8(9), + 671: uint8(96), + 674: uint8(48), + 681: uint8(255), + 682: uint8(15), + 687: uint8(128), + 690: uint8(8), + 692: uint8(2), + 693: uint8(12), + 695: uint8(96), + 696: uint8(48), + 697: uint8(64), + 698: uint8(16), + 701: uint8(4), + 702: uint8(44), + 703: uint8(36), + 704: uint8(32), + 705: uint8(12), + 709: uint8(1), + 713: uint8(80), + 714: uint8(184), + 722: uint8(224), + 726: uint8(1), + 727: uint8(128), + 739: uint8(24), + 746: uint8(33), + 784: uint8(255), + 785: uint8(255), + 786: uint8(255), + 787: uint8(251), + 788: uint8(255), + 789: uint8(255), + 790: uint8(255), + 791: uint8(255), + 792: uint8(255), + 793: uint8(255), + 794: uint8(255), + 795: uint8(255), + 796: uint8(255), + 797: uint8(255), + 798: uint8(15), + 800: uint8(255), + 801: uint8(255), + 802: uint8(255), + 803: uint8(255), + 804: uint8(255), + 805: uint8(255), + 806: uint8(255), + 807: uint8(255), + 808: uint8(255), + 809: uint8(255), + 810: uint8(255), + 811: uint8(255), + 812: uint8(255), + 813: uint8(255), + 814: uint8(255), + 815: uint8(255), + 816: uint8(255), + 817: uint8(255), + 818: uint8(255), + 819: uint8(255), + 820: uint8(255), + 821: uint8(255), + 822: uint8(255), + 823: uint8(255), + 824: uint8(255), + 825: uint8(255), + 826: uint8(63), + 830: uint8(255), + 831: uint8(15), + 832: uint8(255), + 833: uint8(255), + 834: uint8(255), + 835: uint8(255), + 836: uint8(255), + 837: uint8(255), + 838: uint8(255), + 839: uint8(127), + 840: uint8(254), + 841: uint8(255), + 842: uint8(255), + 843: uint8(255), + 844: uint8(255), + 845: uint8(255), + 846: uint8(255), + 847: uint8(255), + 848: uint8(255), + 849: uint8(255), + 850: uint8(127), + 851: uint8(254), + 852: uint8(255), + 853: uint8(255), + 854: uint8(255), + 855: uint8(255), + 856: uint8(255), + 857: uint8(255), + 858: uint8(255), + 859: uint8(255), + 860: uint8(255), + 861: uint8(255), + 862: uint8(255), + 863: uint8(255), + 864: uint8(224), + 865: uint8(255), + 866: uint8(255), + 867: uint8(255), + 868: uint8(255), + 869: uint8(255), + 870: uint8(254), + 871: uint8(255), + 872: uint8(255), + 873: uint8(255), + 874: uint8(255), + 875: uint8(255), + 876: uint8(255), + 877: uint8(255), + 878: uint8(255), + 879: uint8(255), + 880: uint8(255), + 881: uint8(127), + 882: uint8(255), + 883: uint8(255), + 884: uint8(255), + 885: uint8(255), + 886: uint8(255), + 887: uint8(7), + 888: uint8(255), + 889: uint8(255), + 890: uint8(255), + 891: uint8(255), + 892: uint8(15), + 894: uint8(255), + 895: uint8(255), + 896: uint8(255), + 897: uint8(255), + 898: uint8(255), + 899: uint8(127), + 900: uint8(255), + 901: uint8(255), + 902: uint8(255), + 903: uint8(255), + 904: uint8(255), + 906: uint8(255), + 907: uint8(255), + 908: uint8(255), + 909: uint8(255), + 910: uint8(255), + 911: uint8(255), + 912: uint8(255), + 913: uint8(255), + 914: uint8(255), + 915: uint8(255), + 916: uint8(255), + 917: uint8(255), + 918: uint8(255), + 919: uint8(255), + 920: uint8(255), + 921: uint8(255), + 922: uint8(255), + 923: uint8(255), + 924: uint8(255), + 925: uint8(255), + 926: uint8(255), + 927: uint8(255), + 928: uint8(255), + 929: uint8(255), + 930: uint8(255), + 931: uint8(255), + 932: uint8(255), + 933: uint8(255), + 934: uint8(255), + 935: uint8(255), + 936: uint8(255), + 937: uint8(255), + 938: uint8(255), + 939: uint8(255), + 940: uint8(255), + 941: uint8(255), + 942: uint8(255), + 943: uint8(255), + 944: uint8(255), + 945: uint8(255), + 946: uint8(255), + 947: uint8(255), + 948: uint8(255), + 949: uint8(255), + 950: uint8(255), + 951: uint8(255), + 960: uint8(255), + 961: uint8(255), + 962: uint8(255), + 963: uint8(255), + 964: uint8(255), + 965: uint8(255), + 966: uint8(255), + 967: uint8(255), + 968: uint8(255), + 969: uint8(255), + 970: uint8(255), + 971: uint8(255), + 972: uint8(255), + 973: uint8(255), + 974: uint8(255), + 975: uint8(255), + 976: uint8(255), + 977: uint8(31), + 978: uint8(255), + 979: uint8(255), + 980: uint8(255), + 981: uint8(255), + 982: uint8(255), + 983: uint8(255), + 984: uint8(127), + 1004: uint8(255), + 1005: uint8(255), + 1006: uint8(255), + 1007: uint8(31), + 1024: uint8(255), + 1025: uint8(255), + 1026: uint8(255), + 1027: uint8(255), + 1028: uint8(255), + 1029: uint8(255), + 1030: uint8(255), + 1031: uint8(255), + 1032: uint8(255), + 1033: uint8(255), + 1034: uint8(255), + 1035: uint8(255), + 1036: uint8(255), + 1037: uint8(255), + 1038: uint8(255), + 1039: uint8(255), + 1040: uint8(255), + 1041: uint8(255), + 1042: uint8(255), + 1043: uint8(255), + 1044: uint8(15), + 1058: uint8(255), + 1059: uint8(3), + 1062: uint8(255), + 1063: uint8(255), + 1064: uint8(255), + 1065: uint8(255), + 1066: uint8(247), + 1067: uint8(255), + 1068: uint8(127), + 1069: uint8(15), + 1088: uint8(254), + 1089: uint8(255), + 1090: uint8(255), + 1091: uint8(255), + 1092: uint8(255), + 1093: uint8(255), + 1094: uint8(255), + 1095: uint8(255), + 1096: uint8(255), + 1097: uint8(255), + 1098: uint8(255), + 1099: uint8(255), + 1100: uint8(1), + 1116: uint8(127), + 1148: uint8(15), + 1152: uint8(255), + 1153: uint8(255), + 1154: uint8(255), + 1155: uint8(255), + 1156: uint8(255), + 1157: uint8(255), + 1158: uint8(255), + 1159: uint8(255), + 1160: uint8(255), + 1161: uint8(255), + 1162: uint8(255), + 1163: uint8(255), + 1164: uint8(255), + 1165: uint8(255), + 1166: uint8(255), + 1167: uint8(255), + 1168: uint8(255), + 1169: uint8(255), + 1170: uint8(255), + 1171: uint8(255), + 1172: uint8(255), + 1173: uint8(255), + 1174: uint8(255), + 1175: uint8(255), + 1176: uint8(255), + 1177: uint8(255), + 1178: uint8(255), + 1179: uint8(255), + 1180: uint8(255), + 1181: uint8(255), + 1182: uint8(255), + 1184: uint8(255), + 1185: uint8(255), + 1186: uint8(255), + 1187: uint8(255), + 1188: uint8(255), + 1189: uint8(255), + 1190: uint8(255), + 1191: uint8(255), + 1192: uint8(255), + 1193: uint8(255), + 1194: uint8(255), + 1195: uint8(255), + 1196: uint8(255), + 1197: uint8(255), + 1198: uint8(255), + 1199: uint8(255), + 1200: uint8(255), + 1201: uint8(255), + 1202: uint8(255), + 1203: uint8(255), + 1204: uint8(255), + 1205: uint8(255), + 1206: uint8(255), + 1207: uint8(255), + 1208: uint8(255), + 1209: uint8(255), + 1210: uint8(255), + 1211: uint8(255), + 1212: uint8(255), + 1213: uint8(255), + 1214: uint8(7), + 1216: uint8(255), + 1217: uint8(255), + 1218: uint8(255), + 1219: uint8(127), + 1226: uint8(7), + 1228: uint8(240), + 1230: uint8(255), + 1231: uint8(255), + 1232: uint8(255), + 1233: uint8(255), + 1234: uint8(255), + 1235: uint8(255), + 1236: uint8(255), + 1237: uint8(255), + 1238: uint8(255), + 1239: uint8(255), + 1240: uint8(255), + 1241: uint8(255), + 1242: uint8(255), + 1243: uint8(255), + 1244: uint8(255), + 1245: uint8(255), + 1246: uint8(255), + 1247: uint8(255), + 1248: uint8(255), + 1249: uint8(255), + 1250: uint8(255), + 1251: uint8(255), + 1252: uint8(255), + 1253: uint8(255), + 1254: uint8(255), + 1255: uint8(255), + 1256: uint8(255), + 1257: uint8(255), + 1258: uint8(255), + 1259: uint8(255), + 1260: uint8(255), + 1261: uint8(255), + 1262: uint8(255), + 1263: uint8(255), + 1264: uint8(255), + 1265: uint8(255), + 1266: uint8(255), + 1267: uint8(255), + 1268: uint8(255), + 1269: uint8(255), + 1270: uint8(255), + 1271: uint8(255), + 1272: uint8(255), + 1273: uint8(255), + 1274: uint8(255), + 1275: uint8(255), + 1276: uint8(255), + 1277: uint8(255), + 1278: uint8(255), + 1279: uint8(15), + 1280: uint8(16), + 1305: uint8(128), + 1329: uint8(64), + 1330: uint8(254), + 1331: uint8(7), + 1344: uint8(7), + 1346: uint8(255), + 1347: uint8(255), + 1348: uint8(255), + 1349: uint8(255), + 1350: uint8(255), + 1351: uint8(15), + 1352: uint8(255), + 1353: uint8(1), + 1354: uint8(3), + 1356: uint8(63), + 1376: uint8(255), + 1377: uint8(255), + 1378: uint8(255), + 1379: uint8(255), + 1380: uint8(1), + 1381: uint8(224), + 1382: uint8(191), + 1383: uint8(255), + 1384: uint8(255), + 1385: uint8(255), + 1386: uint8(255), + 1387: uint8(255), + 1388: uint8(255), + 1389: uint8(255), + 1390: uint8(255), + 1391: uint8(223), + 1392: uint8(255), + 1393: uint8(255), + 1394: uint8(15), + 1396: uint8(255), + 1397: uint8(255), + 1398: uint8(255), + 1399: uint8(255), + 1400: uint8(255), + 1401: uint8(135), + 1402: uint8(15), + 1404: uint8(255), + 1405: uint8(255), + 1406: uint8(17), + 1407: uint8(255), + 1408: uint8(255), + 1409: uint8(255), + 1410: uint8(255), + 1411: uint8(255), + 1412: uint8(255), + 1413: uint8(255), + 1414: uint8(255), + 1415: uint8(127), + 1416: uint8(253), + 1417: uint8(255), + 1418: uint8(255), + 1419: uint8(255), + 1420: uint8(255), + 1421: uint8(255), + 1422: uint8(255), + 1423: uint8(255), + 1424: uint8(255), + 1425: uint8(255), + 1426: uint8(255), + 1427: uint8(255), + 1428: uint8(255), + 1429: uint8(255), + 1430: uint8(255), + 1431: uint8(255), + 1432: uint8(255), + 1433: uint8(255), + 1434: uint8(255), + 1435: uint8(255), + 1436: uint8(255), + 1437: uint8(255), + 1438: uint8(255), + 1439: uint8(159), + 1440: uint8(255), + 1441: uint8(255), + 1442: uint8(255), + 1443: uint8(255), + 1444: uint8(255), + 1445: uint8(255), + 1446: uint8(255), + 1447: uint8(63), + 1449: uint8(120), + 1450: uint8(255), + 1451: uint8(255), + 1452: uint8(255), + 1455: uint8(4), + 1458: uint8(96), + 1460: uint8(16), + 1471: uint8(248), + 1472: uint8(255), + 1473: uint8(255), + 1474: uint8(255), + 1475: uint8(255), + 1476: uint8(255), + 1477: uint8(255), + 1478: uint8(255), + 1479: uint8(255), + 1480: uint8(255), + 1481: uint8(255), + 1488: uint8(255), + 1489: uint8(255), + 1490: uint8(255), + 1491: uint8(255), + 1492: uint8(255), + 1493: uint8(255), + 1494: uint8(255), + 1495: uint8(255), + 1496: uint8(63), + 1497: uint8(16), + 1498: uint8(39), + 1501: uint8(24), + 1502: uint8(240), + 1503: uint8(7), + 1532: uint8(255), + 1533: uint8(15), + 1537: uint8(224), + 1538: uint8(255), + 1539: uint8(255), + 1540: uint8(255), + 1541: uint8(255), + 1542: uint8(255), + 1543: uint8(255), + 1544: uint8(255), + 1545: uint8(255), + 1546: uint8(255), + 1547: uint8(255), + 1548: uint8(255), + 1549: uint8(255), + 1550: uint8(123), + 1551: uint8(252), + 1552: uint8(255), + 1553: uint8(255), + 1554: uint8(255), + 1555: uint8(255), + 1556: uint8(231), + 1557: uint8(199), + 1558: uint8(255), + 1559: uint8(255), + 1560: uint8(255), + 1561: uint8(231), + 1562: uint8(255), + 1563: uint8(255), + 1564: uint8(255), + 1565: uint8(255), + 1566: uint8(255), + 1567: uint8(255), + 1582: uint8(15), + 1583: uint8(7), + 1584: uint8(7), + 1586: uint8(63), +} + +func Xwcwidth(tls *TLS, wc Twchar_t) (r int32) { + if __ccgo_strace { + trc("tls=%v wc=%v, (%v:)", tls, wc, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1, v2 int32 + _, _ = v1, v2 + if wc < uint32(0xff) { + if (wc+uint32(1))&uint32(0x7f) >= uint32(0x21) { + v1 = int32(1) + } else { + if wc != 0 { + v2 = -int32(1) + } else { + v2 = 0 + } + v1 = v2 + } + return v1 + } + if wc&uint32(0xfffeffff) < uint32(0xfffe) { + if int32(_table5[uint32(int32(_table5[wc>>int32(8)])*int32(32))+wc&uint32(255)>>int32(3)])>>(wc&uint32(7))&int32(1) != 0 { + return 0 + } + if int32(_wtable[uint32(int32(_wtable[wc>>int32(8)])*int32(32))+wc&uint32(255)>>int32(3)])>>(wc&uint32(7))&int32(1) != 0 { + return int32(2) + } + return int32(1) + } + if wc&uint32(0xfffe) == uint32(0xfffe) { + return -int32(1) + } + if wc-uint32(0x20000) < uint32(0x20000) { + return int32(2) + } + if wc == uint32(0xe0001) || wc-uint32(0xe0020) < uint32(0x5f) || wc-uint32(0xe0100) < uint32(0xef) { + return 0 + } + return int32(1) +} + +const d_fileno = 0 + +type Tino_t = uint64 + +type Tdirent = struct { + Fd_ino Tino_t + Fd_off Toff_t + Fd_reclen uint16 + Fd_type uint8 + Fd_name [256]uint8 +} + +func Xalphasort(tls *TLS, a uintptr, b uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v a=%v b=%v, (%v:)", tls, a, b, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrcoll(tls, *(*uintptr)(unsafe.Pointer(a))+19, *(*uintptr)(unsafe.Pointer(b))+19) +} + +type TDIR = struct { + Ftell Toff_t + Ffd int32 + Fbuf_pos int32 + Fbuf_end int32 + Flock [1]int32 + Fbuf [2048]uint8 +} + +type t__dirstream = TDIR + +func Xclosedir(tls *TLS, dir uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v dir=%v, (%v:)", tls, dir, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ret int32 + _ = ret + ret = Xclose(tls, (*TDIR)(unsafe.Pointer(dir)).Ffd) + Xfree(tls, dir) + return ret +} + +func Xdirfd(tls *TLS, d uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v d=%v, (%v:)", tls, d, origin(2)) + defer func() { trc("-> %v", r) }() + } + return (*TDIR)(unsafe.Pointer(d)).Ffd +} + +const AT_EACCESS = 512 +const AT_FDCWD = -100 +const AT_REMOVEDIR = 512 +const AT_SYMLINK_FOLLOW = 1024 +const AT_SYMLINK_NOFOLLOW = 256 +const FD_CLOEXEC = 1 +const F_DUPFD = 0 +const F_DUPFD_CLOEXEC = 1030 +const F_GETFD = 1 +const F_GETFL = 3 +const F_GETLK = 5 +const F_GETOWN = 9 +const F_GETOWNER_UIDS = 17 +const F_GETOWN_EX = 16 +const F_GETSIG = 11 +const F_OFD_GETLK = 36 +const F_OFD_SETLK = 37 +const F_OFD_SETLKW = 38 +const F_RDLCK = 0 +const F_SETFD = 2 +const F_SETFL = 4 +const F_SETLK = 6 +const F_SETLKW = 7 +const F_SETOWN = 8 +const F_SETOWN_EX = 15 +const F_SETSIG = 10 +const F_UNLCK = 2 +const F_WRLCK = 1 +const O_ACCMODE = 2097155 +const O_APPEND = 1024 +const O_ASYNC = 8192 +const O_CLOEXEC = 524288 +const O_CREAT = 64 +const O_DIRECT = 65536 +const O_DIRECTORY = 16384 +const O_DSYNC = 4096 +const O_EXCL = 128 +const O_EXEC = 2097152 +const O_LARGEFILE = 131072 +const O_NDELAY = 2048 +const O_NOATIME = 262144 +const O_NOCTTY = 256 +const O_NOFOLLOW = 32768 +const O_NONBLOCK = 2048 +const O_PATH = 2097152 +const O_RDONLY = 0 +const O_RDWR = 2 +const O_RSYNC = 1052672 +const O_SEARCH = 2097152 +const O_SYNC = 1052672 +const O_TMPFILE = 4210688 +const O_TRUNC = 512 +const O_TTY_INIT = 0 +const O_WRONLY = 1 +const POSIX_FADV_DONTNEED = 4 +const POSIX_FADV_NOREUSE = 5 +const POSIX_FADV_NORMAL = 0 +const POSIX_FADV_RANDOM = 1 +const POSIX_FADV_SEQUENTIAL = 2 +const POSIX_FADV_WILLNEED = 3 +const S_IFBLK = 24576 +const S_IFCHR = 8192 +const S_IFDIR = 16384 +const S_IFIFO = 4096 +const S_IFLNK = 40960 +const S_IFMT = 61440 +const S_IFREG = 32768 +const S_IFSOCK = 49152 +const S_IRGRP = 32 +const S_IROTH = 4 +const S_IRUSR = 256 +const S_IRWXG = 56 +const S_IRWXO = 7 +const S_IRWXU = 448 +const S_ISGID = 1024 +const S_ISUID = 2048 +const S_ISVTX = 512 +const S_IWGRP = 16 +const S_IWOTH = 2 +const S_IWUSR = 128 +const S_IXGRP = 8 +const S_IXOTH = 1 +const S_IXUSR = 64 +const UTIME_NOW = 1073741823 +const UTIME_OMIT = 1073741822 + +type Tflock = struct { + Fl_type int16 + Fl_whence int16 + Fl_start Toff_t + Fl_len Toff_t + Fl_pid Tpid_t +} + +type Tblksize_t = int32 + +type Tnlink_t = uint32 + +type Tdev_t = uint64 + +type Tblkcnt_t = int64 + +type Tstat = struct { + Fst_dev Tdev_t + Fst_ino Tino_t + Fst_mode Tmode_t + Fst_nlink Tnlink_t + Fst_uid Tuid_t + Fst_gid Tgid_t + Fst_rdev Tdev_t + F__pad uint64 + Fst_size Toff_t + Fst_blksize Tblksize_t + F__pad2 int32 + Fst_blocks Tblkcnt_t + Fst_atim Ttimespec + Fst_mtim Ttimespec + Fst_ctim Ttimespec + F__unused [2]uint32 +} + +func Xfdopendir(tls *TLS, fd int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(144) + defer tls.Free(144) + var dir, v1 uintptr + var _ /* st at bp+0 */ Tstat + _, _ = dir, v1 + if Xfstat(tls, fd, bp) < 0 { + return uintptr(0) + } + if Xfcntl(tls, fd, int32(F_GETFL), 0)&int32(O_PATH) != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EBADF) + return uintptr(0) + } + if !((*(*Tstat)(unsafe.Pointer(bp))).Fst_mode&Uint32FromInt32(S_IFMT) == Uint32FromInt32(S_IFDIR)) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOTDIR) + return uintptr(0) + } + v1 = Xcalloc(tls, uint64(1), uint64(2072)) + dir = v1 + if !(v1 != 0) { + return uintptr(0) + } + Xfcntl(tls, fd, int32(F_SETFD), VaList(bp+136, int32(FD_CLOEXEC))) + (*TDIR)(unsafe.Pointer(dir)).Ffd = fd + return dir +} + +const AT_EMPTY_PATH = 4096 +const AT_NO_AUTOMOUNT = 2048 +const AT_RECURSIVE = 32768 +const AT_STATX_DONT_SYNC = 16384 +const AT_STATX_FORCE_SYNC = 8192 +const AT_STATX_SYNC_AS_STAT = 0 +const AT_STATX_SYNC_TYPE = 24576 +const DN_ACCESS = 1 +const DN_ATTRIB = 32 +const DN_CREATE = 4 +const DN_DELETE = 8 +const DN_MODIFY = 2 +const DN_MULTISHOT = 2147483648 +const DN_RENAME = 16 +const DT_BLK = 6 +const DT_CHR = 2 +const DT_DIR = 4 +const DT_FIFO = 1 +const DT_LNK = 10 +const DT_REG = 8 +const DT_SOCK = 12 +const DT_UNKNOWN = 0 +const DT_WHT = 14 +const FALLOC_FL_KEEP_SIZE = 1 +const FALLOC_FL_PUNCH_HOLE = 2 +const FAPPEND = 1024 +const FASYNC = 8192 +const FFSYNC = 1052672 +const FNDELAY = 2048 +const FNONBLOCK = 2048 +const F_ADD_SEALS = 1033 +const F_CANCELLK = 1029 +const F_GETLEASE = 1025 +const F_GETPIPE_SZ = 1032 +const F_GET_FILE_RW_HINT = 1037 +const F_GET_RW_HINT = 1035 +const F_GET_SEALS = 1034 +const F_NOTIFY = 1026 +const F_OWNER_GID = 2 +const F_OWNER_PGRP = 2 +const F_OWNER_PID = 1 +const F_OWNER_TID = 0 +const F_SEAL_FUTURE_WRITE = 16 +const F_SEAL_GROW = 4 +const F_SEAL_SEAL = 1 +const F_SEAL_SHRINK = 2 +const F_SEAL_WRITE = 8 +const F_SETLEASE = 1024 +const F_SETPIPE_SZ = 1031 +const F_SET_FILE_RW_HINT = 1038 +const F_SET_RW_HINT = 1036 +const MAX_HANDLE_SZ = 128 +const RWF_WRITE_LIFE_NOT_SET = 0 +const RWH_WRITE_LIFE_EXTREME = 5 +const RWH_WRITE_LIFE_LONG = 4 +const RWH_WRITE_LIFE_MEDIUM = 3 +const RWH_WRITE_LIFE_NONE = 1 +const RWH_WRITE_LIFE_SHORT = 2 +const SPLICE_F_GIFT = 8 +const SPLICE_F_MORE = 4 +const SPLICE_F_MOVE = 1 +const SPLICE_F_NONBLOCK = 2 +const SYNC_FILE_RANGE_WAIT_AFTER = 4 +const SYNC_FILE_RANGE_WAIT_BEFORE = 1 +const SYNC_FILE_RANGE_WRITE = 2 +const alloca = 0 +const loff_t = 0 + +type Tiovec = struct { + Fiov_base uintptr + Fiov_len Tsize_t +} + +type Tfile_handle = struct { + Fhandle_bytes uint32 + Fhandle_type int32 +} + +type Tf_owner_ex = struct { + Ftype1 int32 + Fpid Tpid_t +} + +func Xopendir(tls *TLS, name uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v name=%v, (%v:)", tls, name, origin(2)) + defer func() { trc("-> %v", r) }() + } + var dir, v2 uintptr + var fd, v1 int32 + _, _, _, _ = dir, fd, v1, v2 + v1 = Xopen(tls, name, Int32FromInt32(O_RDONLY)|Int32FromInt32(O_DIRECTORY)|Int32FromInt32(O_CLOEXEC), 0) + fd = v1 + if v1 < 0 { + return uintptr(0) + } + v2 = Xcalloc(tls, uint64(1), uint64(2072)) + dir = v2 + if !(v2 != 0) { + X__syscall1(tls, int64(SYS_close), int64(fd)) + return uintptr(0) + } + (*TDIR)(unsafe.Pointer(dir)).Ffd = fd + return dir +} + +type Tptrdiff_t = int64 + +type Tdirstream_buf_alignment_check = [1]uint8 + +func Xreaddir(tls *TLS, dir uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v dir=%v, (%v:)", tls, dir, origin(2)) + defer func() { trc("-> %v", r) }() + } + var de uintptr + var len1 int32 + _, _ = de, len1 + if (*TDIR)(unsafe.Pointer(dir)).Fbuf_pos >= (*TDIR)(unsafe.Pointer(dir)).Fbuf_end { + len1 = int32(X__syscall3(tls, int64(SYS_getdents64), int64((*TDIR)(unsafe.Pointer(dir)).Ffd), int64(dir+24), int64(Uint64FromInt64(2048)))) + if len1 <= 0 { + if len1 < 0 && len1 != -int32(ENOENT) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = -len1 + } + return uintptr(0) + } + (*TDIR)(unsafe.Pointer(dir)).Fbuf_end = len1 + (*TDIR)(unsafe.Pointer(dir)).Fbuf_pos = 0 + } + de = dir + 24 + uintptr((*TDIR)(unsafe.Pointer(dir)).Fbuf_pos) + *(*int32)(unsafe.Pointer(dir + 12)) += int32((*Tdirent)(unsafe.Pointer(de)).Fd_reclen) + (*TDIR)(unsafe.Pointer(dir)).Ftell = (*Tdirent)(unsafe.Pointer(de)).Fd_off + return de +} + +func Xreaddir_r(tls *TLS, dir uintptr, buf uintptr, result uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v dir=%v buf=%v result=%v, (%v:)", tls, dir, buf, result, origin(2)) + defer func() { trc("-> %v", r) }() + } + var de uintptr + var errno_save, ret, v1 int32 + _, _, _, _ = de, errno_save, ret, v1 + errno_save = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + ___lock(tls, dir+20) + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = 0 + de = Xreaddir(tls, dir) + v1 = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + ret = v1 + if v1 != 0 { + ___unlock(tls, dir+20) + return ret + } + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = errno_save + if de != 0 { + Xmemcpy(tls, buf, de, uint64((*Tdirent)(unsafe.Pointer(de)).Fd_reclen)) + } else { + buf = UintptrFromInt32(0) + } + ___unlock(tls, dir+20) + *(*uintptr)(unsafe.Pointer(result)) = buf + return 0 +} + +func Xrewinddir(tls *TLS, dir uintptr) { + if __ccgo_strace { + trc("tls=%v dir=%v, (%v:)", tls, dir, origin(2)) + } + var v1 int32 + _ = v1 + ___lock(tls, dir+20) + Xlseek(tls, (*TDIR)(unsafe.Pointer(dir)).Ffd, 0, SEEK_SET) + v1 = Int32FromInt32(0) + (*TDIR)(unsafe.Pointer(dir)).Fbuf_end = v1 + (*TDIR)(unsafe.Pointer(dir)).Fbuf_pos = v1 + (*TDIR)(unsafe.Pointer(dir)).Ftell = 0 + ___unlock(tls, dir+20) +} + +func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v res=%v sel=%v cmp=%v, (%v:)", tls, path, res, sel, cmp, origin(2)) + defer func() { trc("-> %v", r) }() + } + var cnt, len1, v2, v3 Tsize_t + var d, de, names, tmp, v1 uintptr + var old_errno int32 + _, _, _, _, _, _, _, _, _, _ = cnt, d, de, len1, names, old_errno, tmp, v1, v2, v3 + d = Xopendir(tls, path) + names = uintptr(0) + cnt = uint64(0) + len1 = uint64(0) + old_errno = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + if !(d != 0) { + return -int32(1) + } + for { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = 0 + v1 = Xreaddir(tls, d) + de = v1 + if !(v1 != 0) { + break + } + if sel != 0 && !((*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{sel})))(tls, de) != 0) { + continue + } + if cnt >= len1 { + len1 = uint64(2)*len1 + uint64(1) + if len1 > Uint64FromUint64(0xffffffffffffffff)/Uint64FromInt64(8) { + break + } + tmp = Xrealloc(tls, names, len1*uint64(8)) + if !(tmp != 0) { + break + } + names = tmp + } + *(*uintptr)(unsafe.Pointer(names + uintptr(cnt)*8)) = Xmalloc(tls, uint64((*Tdirent)(unsafe.Pointer(de)).Fd_reclen)) + if !(*(*uintptr)(unsafe.Pointer(names + uintptr(cnt)*8)) != 0) { + break + } + v2 = cnt + cnt++ + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(names + uintptr(v2)*8)), de, uint64((*Tdirent)(unsafe.Pointer(de)).Fd_reclen)) + } + Xclosedir(tls, d) + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) != 0 { + if names != 0 { + for { + v3 = cnt + cnt-- + if !(v3 > uint64(0)) { + break + } + Xfree(tls, *(*uintptr)(unsafe.Pointer(names + uintptr(cnt)*8))) + } + } + Xfree(tls, names) + return -int32(1) + } + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = old_errno + if cmp != 0 { + Xqsort(tls, names, cnt, uint64(8), cmp) + } + *(*uintptr)(unsafe.Pointer(res)) = names + return int32(cnt) +} + +func Xseekdir(tls *TLS, dir uintptr, off int64) { + if __ccgo_strace { + trc("tls=%v dir=%v off=%v, (%v:)", tls, dir, off, origin(2)) + } + var v1 int32 + _ = v1 + ___lock(tls, dir+20) + (*TDIR)(unsafe.Pointer(dir)).Ftell = Xlseek(tls, (*TDIR)(unsafe.Pointer(dir)).Ffd, off, SEEK_SET) + v1 = Int32FromInt32(0) + (*TDIR)(unsafe.Pointer(dir)).Fbuf_end = v1 + (*TDIR)(unsafe.Pointer(dir)).Fbuf_pos = v1 + ___unlock(tls, dir+20) +} + +func Xtelldir(tls *TLS, dir uintptr) (r int64) { + if __ccgo_strace { + trc("tls=%v dir=%v, (%v:)", tls, dir, origin(2)) + defer func() { trc("-> %v", r) }() + } + return (*TDIR)(unsafe.Pointer(dir)).Ftell +} + +func Xversionsort(tls *TLS, a uintptr, b uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v a=%v b=%v, (%v:)", tls, a, b, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrverscmp(tls, *(*uintptr)(unsafe.Pointer(a))+19, *(*uintptr)(unsafe.Pointer(b))+19) +} + +func X__reset_tls(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + var i, n Tsize_t + var mem, p uintptr + var self Tpthread_t + _, _, _, _, _ = i, mem, n, p, self + self = ___get_tp(tls) + n = *(*Tuintptr_t)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(self)).Fdtv)) + if n != 0 { + p = X__libc.Ftls_head + i = Uint64FromInt32(1) + for { + if !(i <= n) { + break + } + mem = uintptr(*(*Tuintptr_t)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(self)).Fdtv + uintptr(i)*8)) - Uint64FromInt32(DTP_OFFSET)) + Xmemcpy(tls, mem, (*Ttls_module)(unsafe.Pointer(p)).Fimage, (*Ttls_module)(unsafe.Pointer(p)).Flen1) + Xmemset(tls, mem+uintptr((*Ttls_module)(unsafe.Pointer(p)).Flen1), 0, (*Ttls_module)(unsafe.Pointer(p)).Fsize-(*Ttls_module)(unsafe.Pointer(p)).Flen1) + goto _1 + _1: + ; + i++ + p = (*Ttls_module)(unsafe.Pointer(p)).Fnext + } + } +} + +func X__init_ssp(tls *TLS, entropy uintptr) { + if __ccgo_strace { + trc("tls=%v entropy=%v, (%v:)", tls, entropy, origin(2)) + } + if entropy != 0 { + Xmemcpy(tls, uintptr(unsafe.Pointer(&X__stack_chk_guard)), entropy, uint64(8)) + } else { + X__stack_chk_guard = Tuintptr_t(uintptr(unsafe.Pointer(&X__stack_chk_guard))) * uint64(1103515245) + } + /* Sacrifice 8 bits of entropy on 64bit to prevent leaking/ + * overwriting the canary via string-manipulation functions. + * The NULL byte is on the second byte so that off-by-ones can + * still be detected. Endianness is taken care of + * automatically. */ + *(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__stack_chk_guard)) + 1)) = uint8(0) + (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Fcanary = X__stack_chk_guard +} + +func X__stack_chk_fail(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + *(*uint8)(unsafe.Pointer(UintptrFromInt32(0))) = uint8(0) +} + +func X__stack_chk_fail_local(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + X__stack_chk_fail(tls) +} + +const L_INCR = 1 +const L_SET = 0 +const L_XTND = 2 + +func _dummy(tls *TLS, old uintptr, new1 uintptr) { +} + +func Xclearenv(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + var e, v1 uintptr + _, _ = e, v1 + e = Xenviron + Xenviron = uintptr(0) + if e != 0 { + for *(*uintptr)(unsafe.Pointer(e)) != 0 { + v1 = e + e += 8 + X__env_rm_add(tls, *(*uintptr)(unsafe.Pointer(v1)), uintptr(0)) + } + } + return 0 +} + +func Xgetenv(tls *TLS, name uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v name=%v, (%v:)", tls, name, origin(2)) + defer func() { trc("-> %v", r) }() + } + var e uintptr + var l Tsize_t + _, _ = e, l + l = uint64(int64(X__strchrnul(tls, name, int32('='))) - int64(name)) + if l != 0 && !(*(*uint8)(unsafe.Pointer(name + uintptr(l))) != 0) && Xenviron != 0 { + e = Xenviron + for { + if !(*(*uintptr)(unsafe.Pointer(e)) != 0) { + break + } + if !(Xstrncmp(tls, name, *(*uintptr)(unsafe.Pointer(e)), l) != 0) && int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(e)) + uintptr(l)))) == int32('=') { + return *(*uintptr)(unsafe.Pointer(e)) + uintptr(l) + uintptr(1) + } + goto _1 + _1: + ; + e += 8 + } + } + return uintptr(0) +} + +func _dummy1(tls *TLS, old uintptr, new1 uintptr) { +} + +func X__putenv(tls *TLS, s uintptr, l Tsize_t, r uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v s=%v l=%v r=%v, (%v:)", tls, s, l, r, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var e, newenv, tmp, v2 uintptr + var i Tsize_t + _, _, _, _, _ = e, i, newenv, tmp, v2 + i = uint64(0) + if Xenviron != 0 { + e = Xenviron + for { + if !(*(*uintptr)(unsafe.Pointer(e)) != 0) { + break + } + if !(Xstrncmp(tls, s, *(*uintptr)(unsafe.Pointer(e)), l+uint64(1)) != 0) { + tmp = *(*uintptr)(unsafe.Pointer(e)) + *(*uintptr)(unsafe.Pointer(e)) = s + X__env_rm_add(tls, tmp, r) + return 0 + } + goto _1 + _1: + ; + e += 8 + i++ + } + } + if Xenviron == _oldenv { + newenv = Xrealloc(tls, _oldenv, uint64(8)*(i+uint64(2))) + if !(newenv != 0) { + goto oom + } + } else { + newenv = Xmalloc(tls, uint64(8)*(i+uint64(2))) + if !(newenv != 0) { + goto oom + } + if i != 0 { + Xmemcpy(tls, newenv, Xenviron, uint64(8)*i) + } + Xfree(tls, _oldenv) + } + *(*uintptr)(unsafe.Pointer(newenv + uintptr(i)*8)) = s + *(*uintptr)(unsafe.Pointer(newenv + uintptr(i+uint64(1))*8)) = uintptr(0) + v2 = newenv + _oldenv = v2 + Xenviron = v2 + if r != 0 { + X__env_rm_add(tls, uintptr(0), r) + } + return 0 + goto oom +oom: + ; + Xfree(tls, r) + return -int32(1) +} + +var _oldenv uintptr + +func Xputenv(tls *TLS, s uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + var l Tsize_t + _ = l + l = uint64(int64(X__strchrnul(tls, s, int32('='))) - int64(s)) + if !(l != 0) || !(*(*uint8)(unsafe.Pointer(s + uintptr(l))) != 0) { + return Xunsetenv(tls, s) + } + return X__putenv(tls, s, l, uintptr(0)) +} + +const L_cuserid = 20 +const NL_NMAX = 16 + +type Tcookie_io_functions_t = struct { + Fread uintptr + Fwrite uintptr + Fseek uintptr + Fclose1 uintptr +} + +type T_IO_cookie_io_functions_t = Tcookie_io_functions_t + +func Xsecure_getenv(tls *TLS, name uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v name=%v, (%v:)", tls, name, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 uintptr + _ = v1 + if X__libc.Fsecure != 0 { + v1 = UintptrFromInt32(0) + } else { + v1 = Xgetenv(tls, name) + } + return v1 +} + +func X__env_rm_add(tls *TLS, old uintptr, new1 uintptr) { + if __ccgo_strace { + trc("tls=%v old=%v new1=%v, (%v:)", tls, old, new1, origin(2)) + } + var i, v3 Tsize_t + var t, v2 uintptr + _, _, _, _ = i, t, v2, v3 + i = uint64(0) + for { + if !(i < _env_alloced_n) { + break + } + if *(*uintptr)(unsafe.Pointer(_env_alloced + uintptr(i)*8)) == old { + *(*uintptr)(unsafe.Pointer(_env_alloced + uintptr(i)*8)) = new1 + Xfree(tls, old) + return + } else { + if !(*(*uintptr)(unsafe.Pointer(_env_alloced + uintptr(i)*8)) != 0) && new1 != 0 { + *(*uintptr)(unsafe.Pointer(_env_alloced + uintptr(i)*8)) = new1 + new1 = uintptr(0) + } + } + goto _1 + _1: + ; + i++ + } + if !(new1 != 0) { + return + } + t = Xrealloc(tls, _env_alloced, uint64(8)*(_env_alloced_n+uint64(1))) + if !(t != 0) { + return + } + v2 = t + _env_alloced = v2 + v3 = _env_alloced_n + _env_alloced_n++ + *(*uintptr)(unsafe.Pointer(v2 + uintptr(v3)*8)) = new1 +} + +var _env_alloced uintptr + +var _env_alloced_n Tsize_t + +func Xsetenv(tls *TLS, var1 uintptr, value uintptr, overwrite int32) (r int32) { + if __ccgo_strace { + trc("tls=%v var1=%v value=%v overwrite=%v, (%v:)", tls, var1, value, overwrite, origin(2)) + defer func() { trc("-> %v", r) }() + } + var l1, l2, v1 Tsize_t + var s uintptr + var v2 bool + _, _, _, _, _ = l1, l2, s, v1, v2 + if v2 = !(var1 != 0); !v2 { + v1 = uint64(int64(X__strchrnul(tls, var1, int32('='))) - int64(var1)) + l1 = v1 + } + if v2 || !(v1 != 0) || *(*uint8)(unsafe.Pointer(var1 + uintptr(l1))) != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return -int32(1) + } + if !(overwrite != 0) && Xgetenv(tls, var1) != 0 { + return 0 + } + l2 = Xstrlen(tls, value) + s = Xmalloc(tls, l1+l2+uint64(2)) + if !(s != 0) { + return -int32(1) + } + Xmemcpy(tls, s, var1, l1) + *(*uint8)(unsafe.Pointer(s + uintptr(l1))) = uint8('=') + Xmemcpy(tls, s+uintptr(l1)+uintptr(1), value, l2+uint64(1)) + return X__putenv(tls, s, l1, s) +} + +func _dummy2(tls *TLS, old uintptr, new1 uintptr) { +} + +func Xunsetenv(tls *TLS, name uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v name=%v, (%v:)", tls, name, origin(2)) + defer func() { trc("-> %v", r) }() + } + var e, eo, v2 uintptr + var l Tsize_t + _, _, _, _ = e, eo, l, v2 + l = uint64(int64(X__strchrnul(tls, name, int32('='))) - int64(name)) + if !(l != 0) || *(*uint8)(unsafe.Pointer(name + uintptr(l))) != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return -int32(1) + } + if Xenviron != 0 { + e = Xenviron + eo = e + for { + if !(*(*uintptr)(unsafe.Pointer(e)) != 0) { + break + } + if !(Xstrncmp(tls, name, *(*uintptr)(unsafe.Pointer(e)), l) != 0) && int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(e)) + uintptr(l)))) == int32('=') { + X__env_rm_add(tls, *(*uintptr)(unsafe.Pointer(e)), uintptr(0)) + } else { + if eo != e { + v2 = eo + eo += 8 + *(*uintptr)(unsafe.Pointer(v2)) = *(*uintptr)(unsafe.Pointer(e)) + } else { + eo += 8 + } + } + goto _1 + _1: + ; + e += 8 + } + if eo != e { + *(*uintptr)(unsafe.Pointer(eo)) = uintptr(0) + } + } + return 0 +} + +/* mips has one error code outside of the 8-bit range due to a + * historical typo, so we just remap it. */ + +type Terrmsgstr_t = struct { + Fstr0 [21]uint8 + FstrEILSEQ [22]uint8 + FstrEDOM [13]uint8 + FstrERANGE [25]uint8 + FstrENOTTY [10]uint8 + FstrEACCES [18]uint8 + FstrEPERM [24]uint8 + FstrENOENT [26]uint8 + FstrESRCH [16]uint8 + FstrEEXIST [12]uint8 + FstrEOVERFLOW [30]uint8 + FstrENOSPC [24]uint8 + FstrENOMEM [14]uint8 + FstrEBUSY [14]uint8 + FstrEINTR [24]uint8 + FstrEAGAIN [33]uint8 + FstrESPIPE [13]uint8 + FstrEXDEV [18]uint8 + FstrEROFS [22]uint8 + FstrENOTEMPTY [20]uint8 + FstrECONNRESET [25]uint8 + FstrETIMEDOUT [20]uint8 + FstrECONNREFUSED [19]uint8 + FstrEHOSTDOWN [13]uint8 + FstrEHOSTUNREACH [20]uint8 + FstrEADDRINUSE [15]uint8 + FstrEPIPE [12]uint8 + FstrEIO [10]uint8 + FstrENXIO [26]uint8 + FstrENOTBLK [22]uint8 + FstrENODEV [15]uint8 + FstrENOTDIR [16]uint8 + FstrEISDIR [15]uint8 + FstrETXTBSY [15]uint8 + FstrENOEXEC [18]uint8 + FstrEINVAL [17]uint8 + FstrE2BIG [23]uint8 + FstrELOOP [19]uint8 + FstrENAMETOOLONG [18]uint8 + FstrENFILE [30]uint8 + FstrEMFILE [30]uint8 + FstrEBADF [20]uint8 + FstrECHILD [17]uint8 + FstrEFAULT [12]uint8 + FstrEFBIG [15]uint8 + FstrEMLINK [15]uint8 + FstrENOLCK [19]uint8 + FstrEDEADLK [30]uint8 + FstrENOTRECOVERABLE [22]uint8 + FstrEOWNERDEAD [20]uint8 + FstrECANCELED [19]uint8 + FstrENOSYS [25]uint8 + FstrENOMSG [27]uint8 + FstrEIDRM [19]uint8 + FstrENOSTR [20]uint8 + FstrENODATA [18]uint8 + FstrETIME [15]uint8 + FstrENOSR [25]uint8 + FstrENOLINK [22]uint8 + FstrEPROTO [15]uint8 + FstrEBADMSG [12]uint8 + FstrEBADFD [29]uint8 + FstrENOTSOCK [13]uint8 + FstrEDESTADDRREQ [29]uint8 + FstrEMSGSIZE [18]uint8 + FstrEPROTOTYPE [31]uint8 + FstrENOPROTOOPT [23]uint8 + FstrEPROTONOSUPPORT [23]uint8 + FstrESOCKTNOSUPPORT [26]uint8 + FstrENOTSUP [14]uint8 + FstrEPFNOSUPPORT [30]uint8 + FstrEAFNOSUPPORT [41]uint8 + FstrEADDRNOTAVAIL [22]uint8 + FstrENETDOWN [16]uint8 + FstrENETUNREACH [20]uint8 + FstrENETRESET [28]uint8 + FstrECONNABORTED [19]uint8 + FstrENOBUFS [26]uint8 + FstrEISCONN [20]uint8 + FstrENOTCONN [21]uint8 + FstrESHUTDOWN [34]uint8 + FstrEALREADY [30]uint8 + FstrEINPROGRESS [22]uint8 + FstrESTALE [18]uint8 + FstrEREMOTEIO [17]uint8 + FstrEDQUOT [15]uint8 + FstrENOMEDIUM [16]uint8 + FstrEMEDIUMTYPE [18]uint8 + FstrEMULTIHOP [19]uint8 + FstrENOKEY [27]uint8 + FstrEKEYEXPIRED [16]uint8 + FstrEKEYREVOKED [21]uint8 + FstrEKEYREJECTED [28]uint8 +} + +/* mips has one error code outside of the 8-bit range due to a + * historical typo, so we just remap it. */ + +var _errmsgstr = Terrmsgstr_t{ + Fstr0: [21]uint8{'N', 'o', ' ', 'e', 'r', 'r', 'o', 'r', ' ', 'i', 'n', 'f', 'o', 'r', 'm', 'a', 't', 'i', 'o', 'n'}, + FstrEILSEQ: [22]uint8{'I', 'l', 'l', 'e', 'g', 'a', 'l', ' ', 'b', 'y', 't', 'e', ' ', 's', 'e', 'q', 'u', 'e', 'n', 'c', 'e'}, + FstrEDOM: [13]uint8{'D', 'o', 'm', 'a', 'i', 'n', ' ', 'e', 'r', 'r', 'o', 'r'}, + FstrERANGE: [25]uint8{'R', 'e', 's', 'u', 'l', 't', ' ', 'n', 'o', 't', ' ', 'r', 'e', 'p', 'r', 'e', 's', 'e', 'n', 't', 'a', 'b', 'l', 'e'}, + FstrENOTTY: [10]uint8{'N', 'o', 't', ' ', 'a', ' ', 't', 't', 'y'}, + FstrEACCES: [18]uint8{'P', 'e', 'r', 'm', 'i', 's', 's', 'i', 'o', 'n', ' ', 'd', 'e', 'n', 'i', 'e', 'd'}, + FstrEPERM: [24]uint8{'O', 'p', 'e', 'r', 'a', 't', 'i', 'o', 'n', ' ', 'n', 'o', 't', ' ', 'p', 'e', 'r', 'm', 'i', 't', 't', 'e', 'd'}, + FstrENOENT: [26]uint8{'N', 'o', ' ', 's', 'u', 'c', 'h', ' ', 'f', 'i', 'l', 'e', ' ', 'o', 'r', ' ', 'd', 'i', 'r', 'e', 'c', 't', 'o', 'r', 'y'}, + FstrESRCH: [16]uint8{'N', 'o', ' ', 's', 'u', 'c', 'h', ' ', 'p', 'r', 'o', 'c', 'e', 's', 's'}, + FstrEEXIST: [12]uint8{'F', 'i', 'l', 'e', ' ', 'e', 'x', 'i', 's', 't', 's'}, + FstrEOVERFLOW: [30]uint8{'V', 'a', 'l', 'u', 'e', ' ', 't', 'o', 'o', ' ', 'l', 'a', 'r', 'g', 'e', ' ', 'f', 'o', 'r', ' ', 'd', 'a', 't', 'a', ' ', 't', 'y', 'p', 'e'}, + FstrENOSPC: [24]uint8{'N', 'o', ' ', 's', 'p', 'a', 'c', 'e', ' ', 'l', 'e', 'f', 't', ' ', 'o', 'n', ' ', 'd', 'e', 'v', 'i', 'c', 'e'}, + FstrENOMEM: [14]uint8{'O', 'u', 't', ' ', 'o', 'f', ' ', 'm', 'e', 'm', 'o', 'r', 'y'}, + FstrEBUSY: [14]uint8{'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', ' ', 'b', 'u', 's', 'y'}, + FstrEINTR: [24]uint8{'I', 'n', 't', 'e', 'r', 'r', 'u', 'p', 't', 'e', 'd', ' ', 's', 'y', 's', 't', 'e', 'm', ' ', 'c', 'a', 'l', 'l'}, + FstrEAGAIN: [33]uint8{'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', ' ', 't', 'e', 'm', 'p', 'o', 'r', 'a', 'r', 'i', 'l', 'y', ' ', 'u', 'n', 'a', 'v', 'a', 'i', 'l', 'a', 'b', 'l', 'e'}, + FstrESPIPE: [13]uint8{'I', 'n', 'v', 'a', 'l', 'i', 'd', ' ', 's', 'e', 'e', 'k'}, + FstrEXDEV: [18]uint8{'C', 'r', 'o', 's', 's', '-', 'd', 'e', 'v', 'i', 'c', 'e', ' ', 'l', 'i', 'n', 'k'}, + FstrEROFS: [22]uint8{'R', 'e', 'a', 'd', '-', 'o', 'n', 'l', 'y', ' ', 'f', 'i', 'l', 'e', ' ', 's', 'y', 's', 't', 'e', 'm'}, + FstrENOTEMPTY: [20]uint8{'D', 'i', 'r', 'e', 'c', 't', 'o', 'r', 'y', ' ', 'n', 'o', 't', ' ', 'e', 'm', 'p', 't', 'y'}, + FstrECONNRESET: [25]uint8{'C', 'o', 'n', 'n', 'e', 'c', 't', 'i', 'o', 'n', ' ', 'r', 'e', 's', 'e', 't', ' ', 'b', 'y', ' ', 'p', 'e', 'e', 'r'}, + FstrETIMEDOUT: [20]uint8{'O', 'p', 'e', 'r', 'a', 't', 'i', 'o', 'n', ' ', 't', 'i', 'm', 'e', 'd', ' ', 'o', 'u', 't'}, + FstrECONNREFUSED: [19]uint8{'C', 'o', 'n', 'n', 'e', 'c', 't', 'i', 'o', 'n', ' ', 'r', 'e', 'f', 'u', 's', 'e', 'd'}, + FstrEHOSTDOWN: [13]uint8{'H', 'o', 's', 't', ' ', 'i', 's', ' ', 'd', 'o', 'w', 'n'}, + FstrEHOSTUNREACH: [20]uint8{'H', 'o', 's', 't', ' ', 'i', 's', ' ', 'u', 'n', 'r', 'e', 'a', 'c', 'h', 'a', 'b', 'l', 'e'}, + FstrEADDRINUSE: [15]uint8{'A', 'd', 'd', 'r', 'e', 's', 's', ' ', 'i', 'n', ' ', 'u', 's', 'e'}, + FstrEPIPE: [12]uint8{'B', 'r', 'o', 'k', 'e', 'n', ' ', 'p', 'i', 'p', 'e'}, + FstrEIO: [10]uint8{'I', '/', 'O', ' ', 'e', 'r', 'r', 'o', 'r'}, + FstrENXIO: [26]uint8{'N', 'o', ' ', 's', 'u', 'c', 'h', ' ', 'd', 'e', 'v', 'i', 'c', 'e', ' ', 'o', 'r', ' ', 'a', 'd', 'd', 'r', 'e', 's', 's'}, + FstrENOTBLK: [22]uint8{'B', 'l', 'o', 'c', 'k', ' ', 'd', 'e', 'v', 'i', 'c', 'e', ' ', 'r', 'e', 'q', 'u', 'i', 'r', 'e', 'd'}, + FstrENODEV: [15]uint8{'N', 'o', ' ', 's', 'u', 'c', 'h', ' ', 'd', 'e', 'v', 'i', 'c', 'e'}, + FstrENOTDIR: [16]uint8{'N', 'o', 't', ' ', 'a', ' ', 'd', 'i', 'r', 'e', 'c', 't', 'o', 'r', 'y'}, + FstrEISDIR: [15]uint8{'I', 's', ' ', 'a', ' ', 'd', 'i', 'r', 'e', 'c', 't', 'o', 'r', 'y'}, + FstrETXTBSY: [15]uint8{'T', 'e', 'x', 't', ' ', 'f', 'i', 'l', 'e', ' ', 'b', 'u', 's', 'y'}, + FstrENOEXEC: [18]uint8{'E', 'x', 'e', 'c', ' ', 'f', 'o', 'r', 'm', 'a', 't', ' ', 'e', 'r', 'r', 'o', 'r'}, + FstrEINVAL: [17]uint8{'I', 'n', 'v', 'a', 'l', 'i', 'd', ' ', 'a', 'r', 'g', 'u', 'm', 'e', 'n', 't'}, + FstrE2BIG: [23]uint8{'A', 'r', 'g', 'u', 'm', 'e', 'n', 't', ' ', 'l', 'i', 's', 't', ' ', 't', 'o', 'o', ' ', 'l', 'o', 'n', 'g'}, + FstrELOOP: [19]uint8{'S', 'y', 'm', 'b', 'o', 'l', 'i', 'c', ' ', 'l', 'i', 'n', 'k', ' ', 'l', 'o', 'o', 'p'}, + FstrENAMETOOLONG: [18]uint8{'F', 'i', 'l', 'e', 'n', 'a', 'm', 'e', ' ', 't', 'o', 'o', ' ', 'l', 'o', 'n', 'g'}, + FstrENFILE: [30]uint8{'T', 'o', 'o', ' ', 'm', 'a', 'n', 'y', ' ', 'o', 'p', 'e', 'n', ' ', 'f', 'i', 'l', 'e', 's', ' ', 'i', 'n', ' ', 's', 'y', 's', 't', 'e', 'm'}, + FstrEMFILE: [30]uint8{'N', 'o', ' ', 'f', 'i', 'l', 'e', ' ', 'd', 'e', 's', 'c', 'r', 'i', 'p', 't', 'o', 'r', 's', ' ', 'a', 'v', 'a', 'i', 'l', 'a', 'b', 'l', 'e'}, + FstrEBADF: [20]uint8{'B', 'a', 'd', ' ', 'f', 'i', 'l', 'e', ' ', 'd', 'e', 's', 'c', 'r', 'i', 'p', 't', 'o', 'r'}, + FstrECHILD: [17]uint8{'N', 'o', ' ', 'c', 'h', 'i', 'l', 'd', ' ', 'p', 'r', 'o', 'c', 'e', 's', 's'}, + FstrEFAULT: [12]uint8{'B', 'a', 'd', ' ', 'a', 'd', 'd', 'r', 'e', 's', 's'}, + FstrEFBIG: [15]uint8{'F', 'i', 'l', 'e', ' ', 't', 'o', 'o', ' ', 'l', 'a', 'r', 'g', 'e'}, + FstrEMLINK: [15]uint8{'T', 'o', 'o', ' ', 'm', 'a', 'n', 'y', ' ', 'l', 'i', 'n', 'k', 's'}, + FstrENOLCK: [19]uint8{'N', 'o', ' ', 'l', 'o', 'c', 'k', 's', ' ', 'a', 'v', 'a', 'i', 'l', 'a', 'b', 'l', 'e'}, + FstrEDEADLK: [30]uint8{'R', 'e', 's', 'o', 'u', 'r', 'c', 'e', ' ', 'd', 'e', 'a', 'd', 'l', 'o', 'c', 'k', ' ', 'w', 'o', 'u', 'l', 'd', ' ', 'o', 'c', 'c', 'u', 'r'}, + FstrENOTRECOVERABLE: [22]uint8{'S', 't', 'a', 't', 'e', ' ', 'n', 'o', 't', ' ', 'r', 'e', 'c', 'o', 'v', 'e', 'r', 'a', 'b', 'l', 'e'}, + FstrEOWNERDEAD: [20]uint8{'P', 'r', 'e', 'v', 'i', 'o', 'u', 's', ' ', 'o', 'w', 'n', 'e', 'r', ' ', 'd', 'i', 'e', 'd'}, + FstrECANCELED: [19]uint8{'O', 'p', 'e', 'r', 'a', 't', 'i', 'o', 'n', ' ', 'c', 'a', 'n', 'c', 'e', 'l', 'e', 'd'}, + FstrENOSYS: [25]uint8{'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', ' ', 'n', 'o', 't', ' ', 'i', 'm', 'p', 'l', 'e', 'm', 'e', 'n', 't', 'e', 'd'}, + FstrENOMSG: [27]uint8{'N', 'o', ' ', 'm', 'e', 's', 's', 'a', 'g', 'e', ' ', 'o', 'f', ' ', 'd', 'e', 's', 'i', 'r', 'e', 'd', ' ', 't', 'y', 'p', 'e'}, + FstrEIDRM: [19]uint8{'I', 'd', 'e', 'n', 't', 'i', 'f', 'i', 'e', 'r', ' ', 'r', 'e', 'm', 'o', 'v', 'e', 'd'}, + FstrENOSTR: [20]uint8{'D', 'e', 'v', 'i', 'c', 'e', ' ', 'n', 'o', 't', ' ', 'a', ' ', 's', 't', 'r', 'e', 'a', 'm'}, + FstrENODATA: [18]uint8{'N', 'o', ' ', 'd', 'a', 't', 'a', ' ', 'a', 'v', 'a', 'i', 'l', 'a', 'b', 'l', 'e'}, + FstrETIME: [15]uint8{'D', 'e', 'v', 'i', 'c', 'e', ' ', 't', 'i', 'm', 'e', 'o', 'u', 't'}, + FstrENOSR: [25]uint8{'O', 'u', 't', ' ', 'o', 'f', ' ', 's', 't', 'r', 'e', 'a', 'm', 's', ' ', 'r', 'e', 's', 'o', 'u', 'r', 'c', 'e', 's'}, + FstrENOLINK: [22]uint8{'L', 'i', 'n', 'k', ' ', 'h', 'a', 's', ' ', 'b', 'e', 'e', 'n', ' ', 's', 'e', 'v', 'e', 'r', 'e', 'd'}, + FstrEPROTO: [15]uint8{'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', ' ', 'e', 'r', 'r', 'o', 'r'}, + FstrEBADMSG: [12]uint8{'B', 'a', 'd', ' ', 'm', 'e', 's', 's', 'a', 'g', 'e'}, + FstrEBADFD: [29]uint8{'F', 'i', 'l', 'e', ' ', 'd', 'e', 's', 'c', 'r', 'i', 'p', 't', 'o', 'r', ' ', 'i', 'n', ' ', 'b', 'a', 'd', ' ', 's', 't', 'a', 't', 'e'}, + FstrENOTSOCK: [13]uint8{'N', 'o', 't', ' ', 'a', ' ', 's', 'o', 'c', 'k', 'e', 't'}, + FstrEDESTADDRREQ: [29]uint8{'D', 'e', 's', 't', 'i', 'n', 'a', 't', 'i', 'o', 'n', ' ', 'a', 'd', 'd', 'r', 'e', 's', 's', ' ', 'r', 'e', 'q', 'u', 'i', 'r', 'e', 'd'}, + FstrEMSGSIZE: [18]uint8{'M', 'e', 's', 's', 'a', 'g', 'e', ' ', 't', 'o', 'o', ' ', 'l', 'a', 'r', 'g', 'e'}, + FstrEPROTOTYPE: [31]uint8{'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', ' ', 'w', 'r', 'o', 'n', 'g', ' ', 't', 'y', 'p', 'e', ' ', 'f', 'o', 'r', ' ', 's', 'o', 'c', 'k', 'e', 't'}, + FstrENOPROTOOPT: [23]uint8{'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', ' ', 'n', 'o', 't', ' ', 'a', 'v', 'a', 'i', 'l', 'a', 'b', 'l', 'e'}, + FstrEPROTONOSUPPORT: [23]uint8{'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', ' ', 'n', 'o', 't', ' ', 's', 'u', 'p', 'p', 'o', 'r', 't', 'e', 'd'}, + FstrESOCKTNOSUPPORT: [26]uint8{'S', 'o', 'c', 'k', 'e', 't', ' ', 't', 'y', 'p', 'e', ' ', 'n', 'o', 't', ' ', 's', 'u', 'p', 'p', 'o', 'r', 't', 'e', 'd'}, + FstrENOTSUP: [14]uint8{'N', 'o', 't', ' ', 's', 'u', 'p', 'p', 'o', 'r', 't', 'e', 'd'}, + FstrEPFNOSUPPORT: [30]uint8{'P', 'r', 'o', 't', 'o', 'c', 'o', 'l', ' ', 'f', 'a', 'm', 'i', 'l', 'y', ' ', 'n', 'o', 't', ' ', 's', 'u', 'p', 'p', 'o', 'r', 't', 'e', 'd'}, + FstrEAFNOSUPPORT: [41]uint8{'A', 'd', 'd', 'r', 'e', 's', 's', ' ', 'f', 'a', 'm', 'i', 'l', 'y', ' ', 'n', 'o', 't', ' ', 's', 'u', 'p', 'p', 'o', 'r', 't', 'e', 'd', ' ', 'b', 'y', ' ', 'p', 'r', 'o', 't', 'o', 'c', 'o', 'l'}, + FstrEADDRNOTAVAIL: [22]uint8{'A', 'd', 'd', 'r', 'e', 's', 's', ' ', 'n', 'o', 't', ' ', 'a', 'v', 'a', 'i', 'l', 'a', 'b', 'l', 'e'}, + FstrENETDOWN: [16]uint8{'N', 'e', 't', 'w', 'o', 'r', 'k', ' ', 'i', 's', ' ', 'd', 'o', 'w', 'n'}, + FstrENETUNREACH: [20]uint8{'N', 'e', 't', 'w', 'o', 'r', 'k', ' ', 'u', 'n', 'r', 'e', 'a', 'c', 'h', 'a', 'b', 'l', 'e'}, + FstrENETRESET: [28]uint8{'C', 'o', 'n', 'n', 'e', 'c', 't', 'i', 'o', 'n', ' ', 'r', 'e', 's', 'e', 't', ' ', 'b', 'y', ' ', 'n', 'e', 't', 'w', 'o', 'r', 'k'}, + FstrECONNABORTED: [19]uint8{'C', 'o', 'n', 'n', 'e', 'c', 't', 'i', 'o', 'n', ' ', 'a', 'b', 'o', 'r', 't', 'e', 'd'}, + FstrENOBUFS: [26]uint8{'N', 'o', ' ', 'b', 'u', 'f', 'f', 'e', 'r', ' ', 's', 'p', 'a', 'c', 'e', ' ', 'a', 'v', 'a', 'i', 'l', 'a', 'b', 'l', 'e'}, + FstrEISCONN: [20]uint8{'S', 'o', 'c', 'k', 'e', 't', ' ', 'i', 's', ' ', 'c', 'o', 'n', 'n', 'e', 'c', 't', 'e', 'd'}, + FstrENOTCONN: [21]uint8{'S', 'o', 'c', 'k', 'e', 't', ' ', 'n', 'o', 't', ' ', 'c', 'o', 'n', 'n', 'e', 'c', 't', 'e', 'd'}, + FstrESHUTDOWN: [34]uint8{'C', 'a', 'n', 'n', 'o', 't', ' ', 's', 'e', 'n', 'd', ' ', 'a', 'f', 't', 'e', 'r', ' ', 's', 'o', 'c', 'k', 'e', 't', ' ', 's', 'h', 'u', 't', 'd', 'o', 'w', 'n'}, + FstrEALREADY: [30]uint8{'O', 'p', 'e', 'r', 'a', 't', 'i', 'o', 'n', ' ', 'a', 'l', 'r', 'e', 'a', 'd', 'y', ' ', 'i', 'n', ' ', 'p', 'r', 'o', 'g', 'r', 'e', 's', 's'}, + FstrEINPROGRESS: [22]uint8{'O', 'p', 'e', 'r', 'a', 't', 'i', 'o', 'n', ' ', 'i', 'n', ' ', 'p', 'r', 'o', 'g', 'r', 'e', 's', 's'}, + FstrESTALE: [18]uint8{'S', 't', 'a', 'l', 'e', ' ', 'f', 'i', 'l', 'e', ' ', 'h', 'a', 'n', 'd', 'l', 'e'}, + FstrEREMOTEIO: [17]uint8{'R', 'e', 'm', 'o', 't', 'e', ' ', 'I', '/', 'O', ' ', 'e', 'r', 'r', 'o', 'r'}, + FstrEDQUOT: [15]uint8{'Q', 'u', 'o', 't', 'a', ' ', 'e', 'x', 'c', 'e', 'e', 'd', 'e', 'd'}, + FstrENOMEDIUM: [16]uint8{'N', 'o', ' ', 'm', 'e', 'd', 'i', 'u', 'm', ' ', 'f', 'o', 'u', 'n', 'd'}, + FstrEMEDIUMTYPE: [18]uint8{'W', 'r', 'o', 'n', 'g', ' ', 'm', 'e', 'd', 'i', 'u', 'm', ' ', 't', 'y', 'p', 'e'}, + FstrEMULTIHOP: [19]uint8{'M', 'u', 'l', 't', 'i', 'h', 'o', 'p', ' ', 'a', 't', 't', 'e', 'm', 'p', 't', 'e', 'd'}, + FstrENOKEY: [27]uint8{'R', 'e', 'q', 'u', 'i', 'r', 'e', 'd', ' ', 'k', 'e', 'y', ' ', 'n', 'o', 't', ' ', 'a', 'v', 'a', 'i', 'l', 'a', 'b', 'l', 'e'}, + FstrEKEYEXPIRED: [16]uint8{'K', 'e', 'y', ' ', 'h', 'a', 's', ' ', 'e', 'x', 'p', 'i', 'r', 'e', 'd'}, + FstrEKEYREVOKED: [21]uint8{'K', 'e', 'y', ' ', 'h', 'a', 's', ' ', 'b', 'e', 'e', 'n', ' ', 'r', 'e', 'v', 'o', 'k', 'e', 'd'}, + FstrEKEYREJECTED: [28]uint8{'K', 'e', 'y', ' ', 'w', 'a', 's', ' ', 'r', 'e', 'j', 'e', 'c', 't', 'e', 'd', ' ', 'b', 'y', ' ', 's', 'e', 'r', 'v', 'i', 'c', 'e'}, +} + +var _errmsgidx = [132]uint16{ + 1: uint16(uint64(UintptrFromInt32(0) + 109)), + 2: uint16(uint64(UintptrFromInt32(0) + 133)), + 3: uint16(uint64(UintptrFromInt32(0) + 159)), + 4: uint16(uint64(UintptrFromInt32(0) + 269)), + 5: uint16(uint64(UintptrFromInt32(0) + 523)), + 6: uint16(uint64(UintptrFromInt32(0) + 533)), + 7: uint16(uint64(UintptrFromInt32(0) + 677)), + 8: uint16(uint64(UintptrFromInt32(0) + 642)), + 9: uint16(uint64(UintptrFromInt32(0) + 797)), + 10: uint16(uint64(UintptrFromInt32(0) + 817)), + 11: uint16(uint64(UintptrFromInt32(0) + 293)), + 12: uint16(uint64(UintptrFromInt32(0) + 241)), + 13: uint16(uint64(UintptrFromInt32(0) + 91)), + 14: uint16(uint64(UintptrFromInt32(0) + 834)), + 15: uint16(uint64(UintptrFromInt32(0) + 559)), + 16: uint16(uint64(UintptrFromInt32(0) + 255)), + 17: uint16(uint64(UintptrFromInt32(0) + 175)), + 18: uint16(uint64(UintptrFromInt32(0) + 339)), + 19: uint16(uint64(UintptrFromInt32(0) + 581)), + 20: uint16(uint64(UintptrFromInt32(0) + 596)), + 21: uint16(uint64(UintptrFromInt32(0) + 612)), + 22: uint16(uint64(UintptrFromInt32(0) + 660)), + 23: uint16(uint64(UintptrFromInt32(0) + 737)), + 24: uint16(uint64(UintptrFromInt32(0) + 767)), + 25: uint16(uint64(UintptrFromInt32(0) + 81)), + 26: uint16(uint64(UintptrFromInt32(0) + 627)), + 27: uint16(uint64(UintptrFromInt32(0) + 846)), + 28: uint16(uint64(UintptrFromInt32(0) + 217)), + 29: uint16(uint64(UintptrFromInt32(0) + 326)), + 30: uint16(uint64(UintptrFromInt32(0) + 357)), + 31: uint16(uint64(UintptrFromInt32(0) + 861)), + 32: uint16(uint64(UintptrFromInt32(0) + 511)), + 33: uint16(uint64(UintptrFromInt32(0) + 43)), + 34: uint16(uint64(UintptrFromInt32(0) + 56)), + 35: uint16(uint64(UintptrFromInt32(0) + 895)), + 36: uint16(uint64(UintptrFromInt32(0) + 719)), + 37: uint16(uint64(UintptrFromInt32(0) + 876)), + 38: uint16(uint64(UintptrFromInt32(0) + 986)), + 39: uint16(uint64(UintptrFromInt32(0) + 379)), + 40: uint16(uint64(UintptrFromInt32(0) + 700)), + 42: uint16(uint64(UintptrFromInt32(0) + 1011)), + 43: uint16(uint64(UintptrFromInt32(0) + 1038)), + 60: uint16(uint64(UintptrFromInt32(0) + 1057)), + 61: uint16(uint64(UintptrFromInt32(0) + 1077)), + 62: uint16(uint64(UintptrFromInt32(0) + 1095)), + 63: uint16(uint64(UintptrFromInt32(0) + 1110)), + 67: uint16(uint64(UintptrFromInt32(0) + 1135)), + 71: uint16(uint64(UintptrFromInt32(0) + 1157)), + 72: uint16(uint64(UintptrFromInt32(0) + 1803)), + 74: uint16(uint64(UintptrFromInt32(0) + 1172)), + 75: uint16(uint64(UintptrFromInt32(0) + 187)), + 77: uint16(uint64(UintptrFromInt32(0) + 1184)), + 84: uint16(uint64(UintptrFromInt32(0) + 21)), + 88: uint16(uint64(UintptrFromInt32(0) + 1213)), + 89: uint16(uint64(UintptrFromInt32(0) + 1226)), + 90: uint16(uint64(UintptrFromInt32(0) + 1255)), + 91: uint16(uint64(UintptrFromInt32(0) + 1273)), + 92: uint16(uint64(UintptrFromInt32(0) + 1304)), + 93: uint16(uint64(UintptrFromInt32(0) + 1327)), + 94: uint16(uint64(UintptrFromInt32(0) + 1350)), + 95: uint16(uint64(UintptrFromInt32(0) + 1376)), + 96: uint16(uint64(UintptrFromInt32(0) + 1390)), + 97: uint16(uint64(UintptrFromInt32(0) + 1420)), + 98: uint16(uint64(UintptrFromInt32(0) + 496)), + 99: uint16(uint64(UintptrFromInt32(0) + 1461)), + 100: uint16(uint64(UintptrFromInt32(0) + 1483)), + 101: uint16(uint64(UintptrFromInt32(0) + 1499)), + 102: uint16(uint64(UintptrFromInt32(0) + 1519)), + 103: uint16(uint64(UintptrFromInt32(0) + 1547)), + 104: uint16(uint64(UintptrFromInt32(0) + 399)), + 105: uint16(uint64(UintptrFromInt32(0) + 1566)), + 106: uint16(uint64(UintptrFromInt32(0) + 1592)), + 107: uint16(uint64(UintptrFromInt32(0) + 1612)), + 108: uint16(uint64(UintptrFromInt32(0) + 1633)), + 110: uint16(uint64(UintptrFromInt32(0) + 424)), + 111: uint16(uint64(UintptrFromInt32(0) + 444)), + 112: uint16(uint64(UintptrFromInt32(0) + 463)), + 113: uint16(uint64(UintptrFromInt32(0) + 476)), + 114: uint16(uint64(UintptrFromInt32(0) + 1667)), + 115: uint16(uint64(UintptrFromInt32(0) + 1697)), + 116: uint16(uint64(UintptrFromInt32(0) + 1719)), + 121: uint16(uint64(UintptrFromInt32(0) + 1737)), + 122: uint16(uint64(UintptrFromInt32(0) + 1754)), + 123: uint16(uint64(UintptrFromInt32(0) + 1769)), + 124: uint16(uint64(UintptrFromInt32(0) + 1785)), + 125: uint16(uint64(UintptrFromInt32(0) + 967)), + 126: uint16(uint64(UintptrFromInt32(0) + 1822)), + 127: uint16(uint64(UintptrFromInt32(0) + 1849)), + 128: uint16(uint64(UintptrFromInt32(0) + 1865)), + 129: uint16(uint64(UintptrFromInt32(0) + 1886)), + 130: uint16(uint64(UintptrFromInt32(0) + 947)), + 131: uint16(uint64(UintptrFromInt32(0) + 925)), +} + +func X__strerror_l(tls *TLS, e int32, loc Tlocale_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v e=%v loc=%v, (%v:)", tls, e, loc, origin(2)) + defer func() { trc("-> %v", r) }() + } + var s uintptr + _ = s + if uint64(e) >= Uint64FromInt64(264)/Uint64FromInt64(2) { + e = 0 + } + s = uintptr(unsafe.Pointer(&_errmsgstr)) + uintptr(_errmsgidx[e]) + return X__lctrans(tls, s, *(*uintptr)(unsafe.Pointer(loc + 5*8))) +} + +func Xstrerror(tls *TLS, e int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v e=%v, (%v:)", tls, e, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__strerror_l(tls, e, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale) +} + +func Xstrerror_l(tls *TLS, e int32, loc Tlocale_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v e=%v loc=%v, (%v:)", tls, e, loc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__strerror_l(tls, e, loc) +} + +func X_Exit(tls *TLS, ec int32) { + if __ccgo_strace { + trc("tls=%v ec=%v, (%v:)", tls, ec, origin(2)) + } + X__syscall1(tls, int64(SYS_exit_group), int64(ec)) + for { + X__syscall1(tls, int64(SYS_exit), int64(ec)) + goto _1 + _1: + } +} + +func X__assert_fail(tls *TLS, expr uintptr, file uintptr, line int32, func1 uintptr) { + if __ccgo_strace { + trc("tls=%v expr=%v file=%v line=%v func1=%v, (%v:)", tls, expr, file, line, func1, origin(2)) + } + bp := tls.Alloc(48) + defer tls.Free(48) + Xfprintf(tls, uintptr(unsafe.Pointer(&X__stderr_FILE)), __ccgo_ts+212, VaList(bp+8, expr, file, func1, line)) + Xabort(tls) +} + +const COUNT = 32 + +var _funcs [32]uintptr +var _count int32 +var _lock [1]int32 + +func X__funcs_on_quick_exit(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + var func1 uintptr + var v1 int32 + _, _ = func1, v1 + ___lock(tls, uintptr(unsafe.Pointer(&_lock))) + for _count > 0 { + _count-- + v1 = _count + func1 = _funcs[v1] + ___unlock(tls, uintptr(unsafe.Pointer(&_lock))) + (*(*func(*TLS))(unsafe.Pointer(&struct{ uintptr }{func1})))(tls) + ___lock(tls, uintptr(unsafe.Pointer(&_lock))) + } +} + +func Xat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v func1=%v, (%v:)", tls, func1, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, v1 int32 + _, _ = r, v1 + r = 0 + ___lock(tls, uintptr(unsafe.Pointer(&_lock))) + if _count == int32(32) { + r = -int32(1) + } else { + v1 = _count + _count++ + _funcs[v1] = func1 + } + ___unlock(tls, uintptr(unsafe.Pointer(&_lock))) + return r +} + +func _dummy3(tls *TLS) { +} + +func Xquick_exit(tls *TLS, code int32) { + if __ccgo_strace { + trc("tls=%v code=%v, (%v:)", tls, code, origin(2)) + } + X__funcs_on_quick_exit(tls) + X_Exit(tls, code) +} + +func Xcreat(tls *TLS, filename uintptr, mode Tmode_t) (r int32) { + if __ccgo_strace { + trc("tls=%v filename=%v mode=%v, (%v:)", tls, filename, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + return Xopen(tls, filename, Int32FromInt32(O_CREAT)|Int32FromInt32(O_WRONLY)|Int32FromInt32(O_TRUNC), VaList(bp+8, mode)) +} + +func Xfcntl(tls *TLS, fd int32, cmd int32, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v cmd=%v va=%v, (%v:)", tls, fd, cmd, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ap Tva_list + var arg uint64 + var ret, ret1, v1 int32 + var _ /* ex at bp+0 */ Tf_owner_ex + _, _, _, _, _ = ap, arg, ret, ret1, v1 + ap = va + arg = VaUint64(&ap) + _ = ap + if cmd == int32(F_SETFL) { + arg |= uint64(O_LARGEFILE) + } + if cmd == int32(F_SETLKW) { + return int32(X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_fcntl), int64(fd), int64(cmd), int64(uintptr(arg)), 0, 0, 0)))) + } + if cmd == int32(F_GETOWN) { + ret = int32(X__syscall3(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_GETOWN_EX)), int64(bp))) + if ret == -int32(EINVAL) { + return int32(X__syscall3(tls, int64(SYS_fcntl), int64(fd), int64(cmd), int64(uintptr(arg)))) + } + if ret != 0 { + return int32(X__syscall_ret(tls, uint64(ret))) + } + if (*(*Tf_owner_ex)(unsafe.Pointer(bp))).Ftype1 == int32(F_OWNER_PGRP) { + v1 = -(*(*Tf_owner_ex)(unsafe.Pointer(bp))).Fpid + } else { + v1 = (*(*Tf_owner_ex)(unsafe.Pointer(bp))).Fpid + } + return v1 + } + if cmd == int32(F_DUPFD_CLOEXEC) { + ret1 = int32(X__syscall3(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_DUPFD_CLOEXEC)), int64(arg))) + if ret1 != -int32(EINVAL) { + if ret1 >= 0 { + X__syscall3(tls, int64(SYS_fcntl), int64(ret1), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) + } + return int32(X__syscall_ret(tls, uint64(ret1))) + } + ret1 = int32(X__syscall3(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_DUPFD_CLOEXEC)), int64(Int32FromInt32(0)))) + if ret1 != -int32(EINVAL) { + if ret1 >= 0 { + X__syscall1(tls, int64(SYS_close), int64(ret1)) + } + return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EINVAL)))) + } + ret1 = int32(X__syscall3(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_DUPFD)), int64(arg))) + if ret1 >= 0 { + X__syscall3(tls, int64(SYS_fcntl), int64(ret1), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) + } + return int32(X__syscall_ret(tls, uint64(ret1))) + } + switch cmd { + case int32(F_SETLK): + fallthrough + case int32(F_GETLK): + fallthrough + case int32(F_GETOWN_EX): + fallthrough + case int32(F_SETOWN_EX): + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_fcntl), int64(fd), int64(cmd), int64(uintptr(arg)))))) + default: + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_fcntl), int64(fd), int64(cmd), int64(arg))))) + } + return r +} + +func Xopen(tls *TLS, filename uintptr, flags int32, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v filename=%v flags=%v va=%v, (%v:)", tls, filename, flags, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var fd int32 + var mode Tmode_t + _, _, _ = ap, fd, mode + mode = uint32(0) + if flags&int32(O_CREAT) != 0 || flags&int32(O_TMPFILE) == int32(O_TMPFILE) { + ap = va + mode = VaUint32(&ap) + _ = ap + } + fd = int32(___syscall_cp(tls, int64(SYS_openat), int64(-Int32FromInt32(100)), int64(filename), int64(flags|Int32FromInt32(O_LARGEFILE)), int64(mode), 0, 0)) + if fd >= 0 && flags&int32(O_CLOEXEC) != 0 { + X__syscall3(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) + } + return int32(X__syscall_ret(tls, uint64(fd))) +} + +func Xopenat(tls *TLS, fd int32, filename uintptr, flags int32, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v filename=%v flags=%v va=%v, (%v:)", tls, fd, filename, flags, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var mode Tmode_t + _, _ = ap, mode + mode = uint32(0) + if flags&int32(O_CREAT) != 0 || flags&int32(O_TMPFILE) == int32(O_TMPFILE) { + ap = va + mode = VaUint32(&ap) + _ = ap + } + return int32(X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_openat), int64(fd), int64(filename), int64(flags|Int32FromInt32(O_LARGEFILE)), int64(mode), 0, 0)))) +} + +func Xposix_fadvise(tls *TLS, fd int32, base Toff_t, len1 Toff_t, advice int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v base=%v len1=%v advice=%v, (%v:)", tls, fd, base, len1, advice, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(-X__syscall4(tls, int64(SYS_fadvise64), int64(fd), base, len1, int64(advice))) +} + +func Xposix_fallocate(tls *TLS, fd int32, base Toff_t, len1 Toff_t) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v base=%v len1=%v, (%v:)", tls, fd, base, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(-X__syscall4(tls, int64(SYS_fallocate), int64(fd), int64(Int32FromInt32(0)), base, len1)) +} + +const FE_ALL_EXCEPT = 31 +const FE_DIVBYZERO = 2 +const FE_DOWNWARD = 8388608 +const FE_INEXACT = 16 +const FE_INVALID = 1 +const FE_OVERFLOW = 4 +const FE_TONEAREST = 0 +const FE_TOWARDZERO = 12582912 +const FE_UNDERFLOW = 8 +const FE_UPWARD = 4194304 + +type Tfexcept_t = uint32 + +type Tfenv_t = struct { + F__fpcr uint32 + F__fpsr uint32 +} + +/* Dummy functions for archs lacking fenv implementation */ + +func Xfeclearexcept(tls *TLS, mask int32) (r int32) { + if __ccgo_strace { + trc("tls=%v mask=%v, (%v:)", tls, mask, origin(2)) + defer func() { trc("-> %v", r) }() + } + return 0 +} + +func Xferaiseexcept(tls *TLS, mask int32) (r int32) { + if __ccgo_strace { + trc("tls=%v mask=%v, (%v:)", tls, mask, origin(2)) + defer func() { trc("-> %v", r) }() + } + return 0 +} + +func Xfetestexcept(tls *TLS, mask int32) (r int32) { + if __ccgo_strace { + trc("tls=%v mask=%v, (%v:)", tls, mask, origin(2)) + defer func() { trc("-> %v", r) }() + } + return 0 +} + +func Xfegetround(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return FE_TONEAREST +} + +func X__fesetround(tls *TLS, r int32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v r=%v, (%v:)", tls, r, origin(2)) + defer func() { trc("-> %v", r1) }() + } + return 0 +} + +func Xfegetenv(tls *TLS, envp uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v envp=%v, (%v:)", tls, envp, origin(2)) + defer func() { trc("-> %v", r) }() + } + return 0 +} + +func Xfesetenv(tls *TLS, envp uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v envp=%v, (%v:)", tls, envp, origin(2)) + defer func() { trc("-> %v", r) }() + } + return 0 +} + +const WCONTINUED = 8 +const WEXITED = 4 +const WNOWAIT = 16777216 +const WSTOPPED = 2 +const __WALL = 1073741824 +const __WCLONE = 2147483648 +const __WNOTHREAD = 536870912 + +type Tidtype_t = int32 + +const _P_ALL = 0 +const _P_PID = 1 +const _P_PGID = 2 +const _P_PIDFD = 3 +const F_APP = 128 +const F_EOF = 16 +const F_ERR = 32 +const F_NORD = 4 +const F_NOWR = 8 +const F_PERM = 1 +const F_SVB = 64 +const KMAX = 128 +const LDBL_EPSILON1 = 2.22044604925031308085e-16 +const LDBL_MAX1 = 1.79769313486231570815e+308 +const LDBL_MIN1 = 2.22507385850720138309e-308 +const LD_B1B_DIG = 2 +const LD_B1B_MAX = 254740991 +const MASK = 127 +const MAYBE_WAITERS = 1073741824 +const UNGET = 8 + +type TFILE = struct { + Fflags uint32 + Frpos uintptr + Frend uintptr + Fclose1 uintptr + Fwend uintptr + Fwpos uintptr + Fmustbezero_1 uintptr + Fwbase uintptr + Fread uintptr + Fwrite uintptr + Fseek uintptr + Fbuf uintptr + Fbuf_size Tsize_t + Fprev uintptr + Fnext uintptr + Ffd int32 + Fpipe_pid int32 + Flockcount int64 + Fmode int32 + Flock int32 + Flbf int32 + Fcookie uintptr + Foff Toff_t + Fgetln_buf uintptr + Fmustbezero_2 uintptr + Fshend uintptr + Fshlim Toff_t + Fshcnt Toff_t + Fprev_locked uintptr + Fnext_locked uintptr + Flocale uintptr +} + +type T_IO_FILE = TFILE + +func _scanexp(tls *TLS, f uintptr, pok int32) (r int64) { + var c, neg, x, v1, v10, v14, v18, v4 int32 + var y, v22 int64 + var v11, v12, v15, v16, v19, v2, v20, v3, v5, v6 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, neg, x, y, v1, v10, v11, v12, v14, v15, v16, v18, v19, v2, v20, v22, v3, v4, v5, v6 + neg = 0 + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v3 = f + 8 + v2 = *(*uintptr)(unsafe.Pointer(v3)) + *(*uintptr)(unsafe.Pointer(v3))++ + v1 = int32(*(*uint8)(unsafe.Pointer(v2))) + } else { + v1 = X__shgetc(tls, f) + } + c = v1 + if c == int32('+') || c == int32('-') { + neg = BoolInt32(c == int32('-')) + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v6 = f + 8 + v5 = *(*uintptr)(unsafe.Pointer(v6)) + *(*uintptr)(unsafe.Pointer(v6))++ + v4 = int32(*(*uint8)(unsafe.Pointer(v5))) + } else { + v4 = X__shgetc(tls, f) + } + c = v4 + if uint32(c-int32('0')) >= uint32(10) && pok != 0 { + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + } + } + if uint32(c-int32('0')) >= uint32(10) { + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + return -Int64FromInt64(0x7fffffffffffffff) - Int64FromInt32(1) + } + x = 0 + for { + if !(uint32(c-int32('0')) < uint32(10) && x < Int32FromInt32(INT_MAX)/Int32FromInt32(10)) { + break + } + x = int32(10)*x + c - int32('0') + goto _9 + _9: + ; + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v12 = f + 8 + v11 = *(*uintptr)(unsafe.Pointer(v12)) + *(*uintptr)(unsafe.Pointer(v12))++ + v10 = int32(*(*uint8)(unsafe.Pointer(v11))) + } else { + v10 = X__shgetc(tls, f) + } + c = v10 + } + y = int64(x) + for { + if !(uint32(c-int32('0')) < uint32(10) && y < Int64FromInt64(0x7fffffffffffffff)/Int64FromInt32(100)) { + break + } + y = int64(10)*y + int64(c) - int64('0') + goto _13 + _13: + ; + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v16 = f + 8 + v15 = *(*uintptr)(unsafe.Pointer(v16)) + *(*uintptr)(unsafe.Pointer(v16))++ + v14 = int32(*(*uint8)(unsafe.Pointer(v15))) + } else { + v14 = X__shgetc(tls, f) + } + c = v14 + } + for { + if !(uint32(c-int32('0')) < uint32(10)) { + break + } + goto _17 + _17: + ; + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v20 = f + 8 + v19 = *(*uintptr)(unsafe.Pointer(v20)) + *(*uintptr)(unsafe.Pointer(v20))++ + v18 = int32(*(*uint8)(unsafe.Pointer(v19))) + } else { + v18 = X__shgetc(tls, f) + } + c = v18 + } + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + if neg != 0 { + v22 = -y + } else { + v22 = y + } + return v22 +} + +func _decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, pok int32) (r float64) { + bp := tls.Alloc(512) + defer tls.Free(512) + var a, bitlim, denormal, e2, emax, gotdig, gotrad, i, j, k, lnz, p10, rp, rpm9, sh, z, v13, v14, v2, v21, v23, v29, v30, v6, v9 int32 + var bias, frac, y float64 + var carry, carry1, carry2, t, tmp, tmp2 Tuint32_t + var dc, e10, lrp int64 + var tmp1 Tuint64_t + var v10, v11, v15, v16, v3, v4, v7, v8 uintptr + var _ /* x at bp+0 */ [128]Tuint32_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, bias, bitlim, carry, carry1, carry2, dc, denormal, e10, e2, emax, frac, gotdig, gotrad, i, j, k, lnz, lrp, p10, rp, rpm9, sh, t, tmp, tmp1, tmp2, y, z, v10, v11, v13, v14, v15, v16, v2, v21, v23, v29, v3, v30, v4, v6, v7, v8, v9 + lrp = 0 + dc = 0 + e10 = 0 + lnz = 0 + gotdig = 0 + gotrad = 0 + emax = -emin - bits + int32(3) + denormal = 0 + frac = Float64FromInt32(0) + bias = Float64FromInt32(0) + j = 0 + k = 0 + /* Don't let leading zeros consume buffer space */ + for { + if !(c == int32('0')) { + break + } + gotdig = int32(1) + goto _1 + _1: + ; + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v4 = f + 8 + v3 = *(*uintptr)(unsafe.Pointer(v4)) + *(*uintptr)(unsafe.Pointer(v4))++ + v2 = int32(*(*uint8)(unsafe.Pointer(v3))) + } else { + v2 = X__shgetc(tls, f) + } + c = v2 + } + if c == int32('.') { + gotrad = int32(1) + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v8 = f + 8 + v7 = *(*uintptr)(unsafe.Pointer(v8)) + *(*uintptr)(unsafe.Pointer(v8))++ + v6 = int32(*(*uint8)(unsafe.Pointer(v7))) + } else { + v6 = X__shgetc(tls, f) + } + c = v6 + for { + if !(c == int32('0')) { + break + } + gotdig = int32(1) + lrp-- + goto _5 + _5: + ; + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v11 = f + 8 + v10 = *(*uintptr)(unsafe.Pointer(v11)) + *(*uintptr)(unsafe.Pointer(v11))++ + v9 = int32(*(*uint8)(unsafe.Pointer(v10))) + } else { + v9 = X__shgetc(tls, f) + } + c = v9 + } + } + (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0] = uint32(0) + for { + if !(uint32(c-int32('0')) < uint32(10) || c == int32('.')) { + break + } + if c == int32('.') { + if gotrad != 0 { + break + } + gotrad = int32(1) + lrp = dc + } else { + if k < Int32FromInt32(KMAX)-Int32FromInt32(3) { + dc++ + if c != int32('0') { + lnz = int32(dc) + } + if j != 0 { + (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] = (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k]*uint32(10) + uint32(c) - uint32('0') + } else { + (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] = uint32(c - int32('0')) + } + j++ + v13 = j + if v13 == int32(9) { + k++ + j = 0 + } + gotdig = int32(1) + } else { + dc++ + if c != int32('0') { + lnz = (Int32FromInt32(KMAX) - Int32FromInt32(4)) * Int32FromInt32(9) + *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(Int32FromInt32(KMAX)-Int32FromInt32(4))*4)) |= uint32(1) + } + } + } + goto _12 + _12: + ; + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v16 = f + 8 + v15 = *(*uintptr)(unsafe.Pointer(v16)) + *(*uintptr)(unsafe.Pointer(v16))++ + v14 = int32(*(*uint8)(unsafe.Pointer(v15))) + } else { + v14 = X__shgetc(tls, f) + } + c = v14 + } + if !(gotrad != 0) { + lrp = dc + } + if gotdig != 0 && c|int32(32) == int32('e') { + e10 = _scanexp(tls, f, pok) + if e10 == -Int64FromInt64(0x7fffffffffffffff)-Int64FromInt32(1) { + if pok != 0 { + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + } else { + X__shlim(tls, f, int64(Int32FromInt32(0))) + return Float64FromInt32(0) + } + e10 = 0 + } + lrp += e10 + } else { + if c >= 0 { + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + } + } + if !(gotdig != 0) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + X__shlim(tls, f, int64(Int32FromInt32(0))) + return Float64FromInt32(0) + } + /* Handle zero specially to avoid nasty special cases later */ + if !((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0] != 0) { + return float64(sign) * float64(0) + } + /* Optimize small integers (w/no exponent) and over/under-flow */ + if lrp == dc && dc < int64(10) && (bits > int32(30) || (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0]>>bits == uint32(0)) { + return float64(sign) * float64((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0]) + } + if lrp > int64(-emin/int32(2)) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ERANGE) + return float64(sign) * Float64FromFloat64(1.79769313486231570815e+308) * Float64FromFloat64(1.79769313486231570815e+308) + } + if lrp < int64(emin-Int32FromInt32(2)*Int32FromInt32(LDBL_MANT_DIG)) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ERANGE) + return float64(sign) * Float64FromFloat64(2.22507385850720138309e-308) * Float64FromFloat64(2.22507385850720138309e-308) + } + /* Align incomplete final B1B digit */ + if j != 0 { + for { + if !(j < int32(9)) { + break + } + *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) *= uint32(10) + goto _19 + _19: + ; + j++ + } + k++ + j = 0 + } + a = 0 + z = k + e2 = 0 + rp = int32(lrp) + /* Optimize small to mid-size integers (even in exp. notation) */ + if lnz < int32(9) && lnz <= rp && rp < int32(18) { + if rp == int32(9) { + return float64(sign) * float64((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0]) + } + if rp < int32(9) { + return float64(sign) * float64((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0]) / float64(_p10s[int32(8)-rp]) + } + bitlim = bits - int32(3)*(rp-Int32FromInt32(9)) + if bitlim > int32(30) || (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0]>>bitlim == uint32(0) { + return float64(sign) * float64((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[0]) * float64(_p10s[rp-int32(10)]) + } + } + /* Drop trailing zeros */ + for { + if !!((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[z-int32(1)] != 0) { + break + } + goto _20 + _20: + ; + z-- + } + /* Align radix point to B1B digit boundary */ + if rp%int32(9) != 0 { + if rp >= 0 { + v21 = rp % int32(9) + } else { + v21 = rp%int32(9) + int32(9) + } + rpm9 = v21 + p10 = _p10s[int32(8)-rpm9] + carry = uint32(0) + k = a + for { + if !(k != z) { + break + } + tmp = (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] % uint32(p10) + (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] = (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k]/uint32(p10) + carry + carry = uint32(int32(1000000000)/p10) * tmp + if k == a && !((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] != 0) { + a = (a + int32(1)) & (Int32FromInt32(KMAX) - Int32FromInt32(1)) + rp -= int32(9) + } + goto _22 + _22: + ; + k++ + } + if carry != 0 { + v23 = z + z++ + (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[v23] = carry + } + rp += int32(9) - rpm9 + } + /* Upscale until desired number of bits are left of radix point */ + for rp < Int32FromInt32(9)*Int32FromInt32(LD_B1B_DIG) || rp == Int32FromInt32(9)*Int32FromInt32(LD_B1B_DIG) && (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[a] < _th[0] { + carry1 = uint32(0) + e2 -= int32(29) + k = (z - int32(1)) & (Int32FromInt32(KMAX) - Int32FromInt32(1)) + for { + tmp1 = uint64((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k])< uint64(1000000000) { + carry1 = uint32(tmp1 / uint64(1000000000)) + (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] = uint32(tmp1 % uint64(1000000000)) + } else { + carry1 = uint32(0) + (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] = uint32(tmp1) + } + if k == (z-int32(1))&(Int32FromInt32(KMAX)-Int32FromInt32(1)) && k != a && !((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] != 0) { + z = k + } + if k == a { + break + } + goto _24 + _24: + ; + k = (k - int32(1)) & (Int32FromInt32(KMAX) - Int32FromInt32(1)) + } + if carry1 != 0 { + rp += int32(9) + a = (a - int32(1)) & (Int32FromInt32(KMAX) - Int32FromInt32(1)) + if a == z { + z = (z - int32(1)) & (Int32FromInt32(KMAX) - Int32FromInt32(1)) + *(*Tuint32_t)(unsafe.Pointer(bp + uintptr((z-int32(1))&(Int32FromInt32(KMAX)-Int32FromInt32(1)))*4)) |= (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[z] + } + (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[a] = carry1 + } + } + /* Downscale until exactly number of bits are left of radix point */ + for { + carry2 = uint32(0) + sh = int32(1) + i = 0 + for { + if !(i < int32(LD_B1B_DIG)) { + break + } + k = (a + i) & (Int32FromInt32(KMAX) - Int32FromInt32(1)) + if k == z || (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] < _th[i] { + i = int32(LD_B1B_DIG) + break + } + if (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[(a+i)&(Int32FromInt32(KMAX)-Int32FromInt32(1))] > _th[i] { + break + } + goto _26 + _26: + ; + i++ + } + if i == int32(LD_B1B_DIG) && rp == Int32FromInt32(9)*Int32FromInt32(LD_B1B_DIG) { + break + } + /* FIXME: find a way to compute optimal sh */ + if rp > Int32FromInt32(9)+Int32FromInt32(9)*Int32FromInt32(LD_B1B_DIG) { + sh = int32(9) + } + e2 += sh + k = a + for { + if !(k != z) { + break + } + tmp2 = (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] & uint32(int32(1)<>sh + carry2 + carry2 = uint32(Int32FromInt32(1000000000)>>sh) * tmp2 + if k == a && !((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[k] != 0) { + a = (a + int32(1)) & (Int32FromInt32(KMAX) - Int32FromInt32(1)) + i-- + rp -= int32(9) + } + goto _27 + _27: + ; + k = (k + int32(1)) & (Int32FromInt32(KMAX) - Int32FromInt32(1)) + } + if carry2 != 0 { + if (z+int32(1))&(Int32FromInt32(KMAX)-Int32FromInt32(1)) != a { + (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[z] = carry2 + z = (z + int32(1)) & (Int32FromInt32(KMAX) - Int32FromInt32(1)) + } else { + *(*Tuint32_t)(unsafe.Pointer(bp + uintptr((z-int32(1))&(Int32FromInt32(KMAX)-Int32FromInt32(1)))*4)) |= uint32(1) + } + } + goto _25 + _25: + } + /* Assemble desired bits into floating point variable */ + v29 = Int32FromInt32(0) + i = v29 + y = float64(v29) + for { + if !(i < int32(LD_B1B_DIG)) { + break + } + if (a+i)&(Int32FromInt32(KMAX)-Int32FromInt32(1)) == z { + v30 = (z + Int32FromInt32(1)) & (Int32FromInt32(KMAX) - Int32FromInt32(1)) + z = v30 + (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[v30-int32(1)] = uint32(0) + } + y = Float64FromFloat64(1e+09)*y + float64((*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[(a+i)&(Int32FromInt32(KMAX)-Int32FromInt32(1))]) + goto _28 + _28: + ; + i++ + } + y *= float64(sign) + /* Limit precision for denormal results */ + if bits > int32(LDBL_MANT_DIG)+e2-emin { + bits = int32(LDBL_MANT_DIG) + e2 - emin + if bits < 0 { + bits = 0 + } + denormal = int32(1) + } + /* Calculate bias term to force rounding, move out lower bits */ + if bits < int32(LDBL_MANT_DIG) { + bias = Xcopysignl(tls, Xscalbn(tls, Float64FromInt32(1), Int32FromInt32(2)*Int32FromInt32(LDBL_MANT_DIG)-bits-int32(1)), y) + frac = Xfmodl(tls, y, Xscalbn(tls, Float64FromInt32(1), int32(LDBL_MANT_DIG)-bits)) + y -= frac + y += bias + } + /* Process tail of decimal input so it can affect rounding */ + if (a+i)&(Int32FromInt32(KMAX)-Int32FromInt32(1)) != z { + t = (*(*[128]Tuint32_t)(unsafe.Pointer(bp)))[(a+i)&(Int32FromInt32(KMAX)-Int32FromInt32(1))] + if t < uint32(500000000) && (t != 0 || (a+i+int32(1))&(Int32FromInt32(KMAX)-Int32FromInt32(1)) != z) { + frac += float64(0.25) * float64(sign) + } else { + if t > uint32(500000000) { + frac += float64(0.75) * float64(sign) + } else { + if t == uint32(500000000) { + if (a+i+int32(1))&(Int32FromInt32(KMAX)-Int32FromInt32(1)) == z { + frac += float64(0.5) * float64(sign) + } else { + frac += float64(0.75) * float64(sign) + } + } + } + } + if int32(LDBL_MANT_DIG)-bits >= int32(2) && !(Xfmodl(tls, frac, Float64FromInt32(1)) != 0) { + frac++ + } + } + y += frac + y -= bias + if (e2+int32(LDBL_MANT_DIG))&int32(INT_MAX) > emax-int32(5) { + if Xfabsl(tls, y) >= Float64FromInt32(2)/Float64FromFloat64(2.22044604925031308085e-16) { + if denormal != 0 && bits == int32(LDBL_MANT_DIG)+e2-emin { + denormal = 0 + } + y *= Float64FromFloat64(0.5) + e2++ + } + if e2+int32(LDBL_MANT_DIG) > emax || denormal != 0 && frac != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ERANGE) + } + } + return Xscalbnl(tls, y, e2) +} + +var _th = [2]Tuint32_t{ + 0: uint32(9007199), + 1: uint32(254740991), +} + +var _p10s = [8]int32{ + 0: int32(10), + 1: int32(100), + 2: int32(1000), + 3: int32(10000), + 4: int32(100000), + 5: int32(1000000), + 6: int32(10000000), + 7: int32(100000000), +} + +func _hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32) (r float64) { + var bias, scale, y float64 + var c, d, gotdig, gotrad, gottail, v1, v12, v16, v5, v8 int32 + var dc, e2, rp int64 + var x Tuint32_t + var v10, v13, v14, v17, v18, v2, v3, v6, v7, v9 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bias, c, d, dc, e2, gotdig, gotrad, gottail, rp, scale, x, y, v1, v10, v12, v13, v14, v16, v17, v18, v2, v3, v5, v6, v7, v8, v9 + x = uint32(0) + y = Float64FromInt32(0) + scale = Float64FromInt32(1) + bias = Float64FromInt32(0) + gottail = 0 + gotrad = 0 + gotdig = 0 + rp = 0 + dc = 0 + e2 = 0 + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v3 = f + 8 + v2 = *(*uintptr)(unsafe.Pointer(v3)) + *(*uintptr)(unsafe.Pointer(v3))++ + v1 = int32(*(*uint8)(unsafe.Pointer(v2))) + } else { + v1 = X__shgetc(tls, f) + } + c = v1 + /* Skip leading zeros */ + for { + if !(c == int32('0')) { + break + } + gotdig = int32(1) + goto _4 + _4: + ; + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v7 = f + 8 + v6 = *(*uintptr)(unsafe.Pointer(v7)) + *(*uintptr)(unsafe.Pointer(v7))++ + v5 = int32(*(*uint8)(unsafe.Pointer(v6))) + } else { + v5 = X__shgetc(tls, f) + } + c = v5 + } + if c == int32('.') { + gotrad = int32(1) + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v10 = f + 8 + v9 = *(*uintptr)(unsafe.Pointer(v10)) + *(*uintptr)(unsafe.Pointer(v10))++ + v8 = int32(*(*uint8)(unsafe.Pointer(v9))) + } else { + v8 = X__shgetc(tls, f) + } + c = v8 + /* Count zeros after the radix point before significand */ + rp = 0 + for { + if !(c == int32('0')) { + break + } + gotdig = int32(1) + goto _11 + _11: + ; + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v14 = f + 8 + v13 = *(*uintptr)(unsafe.Pointer(v14)) + *(*uintptr)(unsafe.Pointer(v14))++ + v12 = int32(*(*uint8)(unsafe.Pointer(v13))) + } else { + v12 = X__shgetc(tls, f) + } + c = v12 + rp-- + } + } + for { + if !(uint32(c-int32('0')) < uint32(10) || uint32(c|int32(32)-int32('a')) < uint32(6) || c == int32('.')) { + break + } + if c == int32('.') { + if gotrad != 0 { + break + } + rp = dc + gotrad = int32(1) + } else { + gotdig = int32(1) + if c > int32('9') { + d = c | int32(32) + int32(10) - int32('a') + } else { + d = c - int32('0') + } + if dc < int64(8) { + x = x*uint32(16) + uint32(d) + } else { + if dc < int64(Int32FromInt32(LDBL_MANT_DIG)/Int32FromInt32(4)+Int32FromInt32(1)) { + scale /= Float64FromInt32(16) + y += float64(d) * scale + } else { + if d != 0 && !(gottail != 0) { + y += Float64FromFloat64(0.5) * scale + gottail = int32(1) + } + } + } + dc++ + } + goto _15 + _15: + ; + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v18 = f + 8 + v17 = *(*uintptr)(unsafe.Pointer(v18)) + *(*uintptr)(unsafe.Pointer(v18))++ + v16 = int32(*(*uint8)(unsafe.Pointer(v17))) + } else { + v16 = X__shgetc(tls, f) + } + c = v16 + } + if !(gotdig != 0) { + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + if pok != 0 { + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + if gotrad != 0 { + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + } + } else { + X__shlim(tls, f, int64(Int32FromInt32(0))) + } + return float64(sign) * float64(0) + } + if !(gotrad != 0) { + rp = dc + } + for dc < int64(8) { + x *= uint32(16) + dc++ + } + if c|int32(32) == int32('p') { + e2 = _scanexp(tls, f, pok) + if e2 == -Int64FromInt64(0x7fffffffffffffff)-Int64FromInt32(1) { + if pok != 0 { + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + } else { + X__shlim(tls, f, int64(Int32FromInt32(0))) + return Float64FromInt32(0) + } + e2 = 0 + } + } else { + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + } + e2 += int64(4)*rp - int64(32) + if !(x != 0) { + return float64(sign) * float64(0) + } + if e2 > int64(-emin) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ERANGE) + return float64(sign) * Float64FromFloat64(1.79769313486231570815e+308) * Float64FromFloat64(1.79769313486231570815e+308) + } + if e2 < int64(emin-Int32FromInt32(2)*Int32FromInt32(LDBL_MANT_DIG)) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ERANGE) + return float64(sign) * Float64FromFloat64(2.22507385850720138309e-308) * Float64FromFloat64(2.22507385850720138309e-308) + } + for x < uint32(0x80000000) { + if y >= Float64FromFloat64(0.5) { + x += x + uint32(1) + y += y - Float64FromInt32(1) + } else { + x += x + y += y + } + e2-- + } + if int64(bits) > int64(32)+e2-int64(emin) { + bits = int32(int64(32) + e2 - int64(emin)) + if bits < 0 { + bits = 0 + } + } + if bits < int32(LDBL_MANT_DIG) { + bias = Xcopysignl(tls, Xscalbn(tls, Float64FromInt32(1), Int32FromInt32(32)+Int32FromInt32(LDBL_MANT_DIG)-bits-int32(1)), float64(sign)) + } + if bits < int32(32) && y != 0 && !(x&Uint32FromInt32(1) != 0) { + x++ + y = Float64FromInt32(0) + } + y = bias + float64(sign)*float64(x) + float64(sign)*y + y -= bias + if !(y != 0) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ERANGE) + } + return Xscalbnl(tls, y, int32(e2)) +} + +func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) (r float64) { + if __ccgo_strace { + trc("tls=%v f=%v prec=%v pok=%v, (%v:)", tls, f, prec, pok, origin(2)) + defer func() { trc("-> %v", r) }() + } + var bits, c, emin, sign, v1, v12, v19, v2, v22, v27, v34, v5, v6, v8 int32 + var i, v31 Tsize_t + var v10, v13, v14, v20, v21, v23, v24, v28, v29, v3, v35, v36, v4, v9 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bits, c, emin, i, sign, v1, v10, v12, v13, v14, v19, v2, v20, v21, v22, v23, v24, v27, v28, v29, v3, v31, v34, v35, v36, v4, v5, v6, v8, v9 + sign = int32(1) + switch prec { + case 0: + bits = int32(FLT_MANT_DIG) + emin = -int32(125) - bits + case int32(1): + bits = int32(DBL_MANT_DIG) + emin = -int32(1021) - bits + case int32(2): + bits = int32(LDBL_MANT_DIG) + emin = -int32(1021) - bits + default: + return Float64FromInt32(0) + } + for { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v4 = f + 8 + v3 = *(*uintptr)(unsafe.Pointer(v4)) + *(*uintptr)(unsafe.Pointer(v4))++ + v2 = int32(*(*uint8)(unsafe.Pointer(v3))) + } else { + v2 = X__shgetc(tls, f) + } + v1 = v2 + c = v1 + v5 = v1 + v6 = BoolInt32(v5 == int32(' ') || uint32(v5)-uint32('\t') < uint32(5)) + goto _7 + _7: + if !(v6 != 0) { + break + } + } + if c == int32('+') || c == int32('-') { + sign -= int32(2) * BoolInt32(c == int32('-')) + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v10 = f + 8 + v9 = *(*uintptr)(unsafe.Pointer(v10)) + *(*uintptr)(unsafe.Pointer(v10))++ + v8 = int32(*(*uint8)(unsafe.Pointer(v9))) + } else { + v8 = X__shgetc(tls, f) + } + c = v8 + } + i = uint64(0) + for { + if !(i < uint64(8) && c|int32(32) == int32(*(*uint8)(unsafe.Pointer(__ccgo_ts + 247 + uintptr(i))))) { + break + } + if i < uint64(7) { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v14 = f + 8 + v13 = *(*uintptr)(unsafe.Pointer(v14)) + *(*uintptr)(unsafe.Pointer(v14))++ + v12 = int32(*(*uint8)(unsafe.Pointer(v13))) + } else { + v12 = X__shgetc(tls, f) + } + c = v12 + } + goto _11 + _11: + ; + i++ + } + if i == uint64(3) || i == uint64(8) || i > uint64(3) && pok != 0 { + if i != uint64(8) { + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + if pok != 0 { + for { + if !(i > uint64(3)) { + break + } + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + goto _16 + _16: + ; + i-- + } + } + } + return float64(float32(sign) * X__builtin_inff(tls)) + } + if !(i != 0) { + i = uint64(0) + for { + if !(i < uint64(3) && c|int32(32) == int32(*(*uint8)(unsafe.Pointer(__ccgo_ts + 256 + uintptr(i))))) { + break + } + if i < uint64(2) { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v21 = f + 8 + v20 = *(*uintptr)(unsafe.Pointer(v21)) + *(*uintptr)(unsafe.Pointer(v21))++ + v19 = int32(*(*uint8)(unsafe.Pointer(v20))) + } else { + v19 = X__shgetc(tls, f) + } + c = v19 + } + goto _18 + _18: + ; + i++ + } + } + if i == uint64(3) { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v24 = f + 8 + v23 = *(*uintptr)(unsafe.Pointer(v24)) + *(*uintptr)(unsafe.Pointer(v24))++ + v22 = int32(*(*uint8)(unsafe.Pointer(v23))) + } else { + v22 = X__shgetc(tls, f) + } + if v22 != int32('(') { + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + return float64(X__builtin_nanf(tls, __ccgo_ts)) + } + i = uint64(1) + for { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v29 = f + 8 + v28 = *(*uintptr)(unsafe.Pointer(v29)) + *(*uintptr)(unsafe.Pointer(v29))++ + v27 = int32(*(*uint8)(unsafe.Pointer(v28))) + } else { + v27 = X__shgetc(tls, f) + } + c = v27 + if uint32(c-int32('0')) < uint32(10) || uint32(c-int32('A')) < uint32(26) || uint32(c-int32('a')) < uint32(26) || c == int32('_') { + goto _26 + } + if c == int32(')') { + return float64(X__builtin_nanf(tls, __ccgo_ts)) + } + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + if !(pok != 0) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + X__shlim(tls, f, int64(Int32FromInt32(0))) + return Float64FromInt32(0) + } + for { + v31 = i + i-- + if !(v31 != 0) { + break + } + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + } + return float64(X__builtin_nanf(tls, __ccgo_ts)) + goto _26 + _26: + ; + i++ + } + return float64(X__builtin_nanf(tls, __ccgo_ts)) + } + if i != 0 { + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + X__shlim(tls, f, int64(Int32FromInt32(0))) + return Float64FromInt32(0) + } + if c == int32('0') { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v36 = f + 8 + v35 = *(*uintptr)(unsafe.Pointer(v36)) + *(*uintptr)(unsafe.Pointer(v36))++ + v34 = int32(*(*uint8)(unsafe.Pointer(v35))) + } else { + v34 = X__shgetc(tls, f) + } + c = v34 + if c|int32(32) == int32('x') { + return _hexfloat(tls, f, bits, emin, sign, pok) + } + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + c = int32('0') + } + return _decfloat(tls, f, c, bits, emin, sign, pok) +} + +// C documentation +// +// /* Lookup table for digit values. -1==255>=36 -> invalid */ +var _table6 = [257]uint8{ + 0: uint8(-Int32FromInt32(1)), + 1: uint8(-Int32FromInt32(1)), + 2: uint8(-Int32FromInt32(1)), + 3: uint8(-Int32FromInt32(1)), + 4: uint8(-Int32FromInt32(1)), + 5: uint8(-Int32FromInt32(1)), + 6: uint8(-Int32FromInt32(1)), + 7: uint8(-Int32FromInt32(1)), + 8: uint8(-Int32FromInt32(1)), + 9: uint8(-Int32FromInt32(1)), + 10: uint8(-Int32FromInt32(1)), + 11: uint8(-Int32FromInt32(1)), + 12: uint8(-Int32FromInt32(1)), + 13: uint8(-Int32FromInt32(1)), + 14: uint8(-Int32FromInt32(1)), + 15: uint8(-Int32FromInt32(1)), + 16: uint8(-Int32FromInt32(1)), + 17: uint8(-Int32FromInt32(1)), + 18: uint8(-Int32FromInt32(1)), + 19: uint8(-Int32FromInt32(1)), + 20: uint8(-Int32FromInt32(1)), + 21: uint8(-Int32FromInt32(1)), + 22: uint8(-Int32FromInt32(1)), + 23: uint8(-Int32FromInt32(1)), + 24: uint8(-Int32FromInt32(1)), + 25: uint8(-Int32FromInt32(1)), + 26: uint8(-Int32FromInt32(1)), + 27: uint8(-Int32FromInt32(1)), + 28: uint8(-Int32FromInt32(1)), + 29: uint8(-Int32FromInt32(1)), + 30: uint8(-Int32FromInt32(1)), + 31: uint8(-Int32FromInt32(1)), + 32: uint8(-Int32FromInt32(1)), + 33: uint8(-Int32FromInt32(1)), + 34: uint8(-Int32FromInt32(1)), + 35: uint8(-Int32FromInt32(1)), + 36: uint8(-Int32FromInt32(1)), + 37: uint8(-Int32FromInt32(1)), + 38: uint8(-Int32FromInt32(1)), + 39: uint8(-Int32FromInt32(1)), + 40: uint8(-Int32FromInt32(1)), + 41: uint8(-Int32FromInt32(1)), + 42: uint8(-Int32FromInt32(1)), + 43: uint8(-Int32FromInt32(1)), + 44: uint8(-Int32FromInt32(1)), + 45: uint8(-Int32FromInt32(1)), + 46: uint8(-Int32FromInt32(1)), + 47: uint8(-Int32FromInt32(1)), + 48: uint8(-Int32FromInt32(1)), + 50: uint8(1), + 51: uint8(2), + 52: uint8(3), + 53: uint8(4), + 54: uint8(5), + 55: uint8(6), + 56: uint8(7), + 57: uint8(8), + 58: uint8(9), + 59: uint8(-Int32FromInt32(1)), + 60: uint8(-Int32FromInt32(1)), + 61: uint8(-Int32FromInt32(1)), + 62: uint8(-Int32FromInt32(1)), + 63: uint8(-Int32FromInt32(1)), + 64: uint8(-Int32FromInt32(1)), + 65: uint8(-Int32FromInt32(1)), + 66: uint8(10), + 67: uint8(11), + 68: uint8(12), + 69: uint8(13), + 70: uint8(14), + 71: uint8(15), + 72: uint8(16), + 73: uint8(17), + 74: uint8(18), + 75: uint8(19), + 76: uint8(20), + 77: uint8(21), + 78: uint8(22), + 79: uint8(23), + 80: uint8(24), + 81: uint8(25), + 82: uint8(26), + 83: uint8(27), + 84: uint8(28), + 85: uint8(29), + 86: uint8(30), + 87: uint8(31), + 88: uint8(32), + 89: uint8(33), + 90: uint8(34), + 91: uint8(35), + 92: uint8(-Int32FromInt32(1)), + 93: uint8(-Int32FromInt32(1)), + 94: uint8(-Int32FromInt32(1)), + 95: uint8(-Int32FromInt32(1)), + 96: uint8(-Int32FromInt32(1)), + 97: uint8(-Int32FromInt32(1)), + 98: uint8(10), + 99: uint8(11), + 100: uint8(12), + 101: uint8(13), + 102: uint8(14), + 103: uint8(15), + 104: uint8(16), + 105: uint8(17), + 106: uint8(18), + 107: uint8(19), + 108: uint8(20), + 109: uint8(21), + 110: uint8(22), + 111: uint8(23), + 112: uint8(24), + 113: uint8(25), + 114: uint8(26), + 115: uint8(27), + 116: uint8(28), + 117: uint8(29), + 118: uint8(30), + 119: uint8(31), + 120: uint8(32), + 121: uint8(33), + 122: uint8(34), + 123: uint8(35), + 124: uint8(-Int32FromInt32(1)), + 125: uint8(-Int32FromInt32(1)), + 126: uint8(-Int32FromInt32(1)), + 127: uint8(-Int32FromInt32(1)), + 128: uint8(-Int32FromInt32(1)), + 129: uint8(-Int32FromInt32(1)), + 130: uint8(-Int32FromInt32(1)), + 131: uint8(-Int32FromInt32(1)), + 132: uint8(-Int32FromInt32(1)), + 133: uint8(-Int32FromInt32(1)), + 134: uint8(-Int32FromInt32(1)), + 135: uint8(-Int32FromInt32(1)), + 136: uint8(-Int32FromInt32(1)), + 137: uint8(-Int32FromInt32(1)), + 138: uint8(-Int32FromInt32(1)), + 139: uint8(-Int32FromInt32(1)), + 140: uint8(-Int32FromInt32(1)), + 141: uint8(-Int32FromInt32(1)), + 142: uint8(-Int32FromInt32(1)), + 143: uint8(-Int32FromInt32(1)), + 144: uint8(-Int32FromInt32(1)), + 145: uint8(-Int32FromInt32(1)), + 146: uint8(-Int32FromInt32(1)), + 147: uint8(-Int32FromInt32(1)), + 148: uint8(-Int32FromInt32(1)), + 149: uint8(-Int32FromInt32(1)), + 150: uint8(-Int32FromInt32(1)), + 151: uint8(-Int32FromInt32(1)), + 152: uint8(-Int32FromInt32(1)), + 153: uint8(-Int32FromInt32(1)), + 154: uint8(-Int32FromInt32(1)), + 155: uint8(-Int32FromInt32(1)), + 156: uint8(-Int32FromInt32(1)), + 157: uint8(-Int32FromInt32(1)), + 158: uint8(-Int32FromInt32(1)), + 159: uint8(-Int32FromInt32(1)), + 160: uint8(-Int32FromInt32(1)), + 161: uint8(-Int32FromInt32(1)), + 162: uint8(-Int32FromInt32(1)), + 163: uint8(-Int32FromInt32(1)), + 164: uint8(-Int32FromInt32(1)), + 165: uint8(-Int32FromInt32(1)), + 166: uint8(-Int32FromInt32(1)), + 167: uint8(-Int32FromInt32(1)), + 168: uint8(-Int32FromInt32(1)), + 169: uint8(-Int32FromInt32(1)), + 170: uint8(-Int32FromInt32(1)), + 171: uint8(-Int32FromInt32(1)), + 172: uint8(-Int32FromInt32(1)), + 173: uint8(-Int32FromInt32(1)), + 174: uint8(-Int32FromInt32(1)), + 175: uint8(-Int32FromInt32(1)), + 176: uint8(-Int32FromInt32(1)), + 177: uint8(-Int32FromInt32(1)), + 178: uint8(-Int32FromInt32(1)), + 179: uint8(-Int32FromInt32(1)), + 180: uint8(-Int32FromInt32(1)), + 181: uint8(-Int32FromInt32(1)), + 182: uint8(-Int32FromInt32(1)), + 183: uint8(-Int32FromInt32(1)), + 184: uint8(-Int32FromInt32(1)), + 185: uint8(-Int32FromInt32(1)), + 186: uint8(-Int32FromInt32(1)), + 187: uint8(-Int32FromInt32(1)), + 188: uint8(-Int32FromInt32(1)), + 189: uint8(-Int32FromInt32(1)), + 190: uint8(-Int32FromInt32(1)), + 191: uint8(-Int32FromInt32(1)), + 192: uint8(-Int32FromInt32(1)), + 193: uint8(-Int32FromInt32(1)), + 194: uint8(-Int32FromInt32(1)), + 195: uint8(-Int32FromInt32(1)), + 196: uint8(-Int32FromInt32(1)), + 197: uint8(-Int32FromInt32(1)), + 198: uint8(-Int32FromInt32(1)), + 199: uint8(-Int32FromInt32(1)), + 200: uint8(-Int32FromInt32(1)), + 201: uint8(-Int32FromInt32(1)), + 202: uint8(-Int32FromInt32(1)), + 203: uint8(-Int32FromInt32(1)), + 204: uint8(-Int32FromInt32(1)), + 205: uint8(-Int32FromInt32(1)), + 206: uint8(-Int32FromInt32(1)), + 207: uint8(-Int32FromInt32(1)), + 208: uint8(-Int32FromInt32(1)), + 209: uint8(-Int32FromInt32(1)), + 210: uint8(-Int32FromInt32(1)), + 211: uint8(-Int32FromInt32(1)), + 212: uint8(-Int32FromInt32(1)), + 213: uint8(-Int32FromInt32(1)), + 214: uint8(-Int32FromInt32(1)), + 215: uint8(-Int32FromInt32(1)), + 216: uint8(-Int32FromInt32(1)), + 217: uint8(-Int32FromInt32(1)), + 218: uint8(-Int32FromInt32(1)), + 219: uint8(-Int32FromInt32(1)), + 220: uint8(-Int32FromInt32(1)), + 221: uint8(-Int32FromInt32(1)), + 222: uint8(-Int32FromInt32(1)), + 223: uint8(-Int32FromInt32(1)), + 224: uint8(-Int32FromInt32(1)), + 225: uint8(-Int32FromInt32(1)), + 226: uint8(-Int32FromInt32(1)), + 227: uint8(-Int32FromInt32(1)), + 228: uint8(-Int32FromInt32(1)), + 229: uint8(-Int32FromInt32(1)), + 230: uint8(-Int32FromInt32(1)), + 231: uint8(-Int32FromInt32(1)), + 232: uint8(-Int32FromInt32(1)), + 233: uint8(-Int32FromInt32(1)), + 234: uint8(-Int32FromInt32(1)), + 235: uint8(-Int32FromInt32(1)), + 236: uint8(-Int32FromInt32(1)), + 237: uint8(-Int32FromInt32(1)), + 238: uint8(-Int32FromInt32(1)), + 239: uint8(-Int32FromInt32(1)), + 240: uint8(-Int32FromInt32(1)), + 241: uint8(-Int32FromInt32(1)), + 242: uint8(-Int32FromInt32(1)), + 243: uint8(-Int32FromInt32(1)), + 244: uint8(-Int32FromInt32(1)), + 245: uint8(-Int32FromInt32(1)), + 246: uint8(-Int32FromInt32(1)), + 247: uint8(-Int32FromInt32(1)), + 248: uint8(-Int32FromInt32(1)), + 249: uint8(-Int32FromInt32(1)), + 250: uint8(-Int32FromInt32(1)), + 251: uint8(-Int32FromInt32(1)), + 252: uint8(-Int32FromInt32(1)), + 253: uint8(-Int32FromInt32(1)), + 254: uint8(-Int32FromInt32(1)), + 255: uint8(-Int32FromInt32(1)), + 256: uint8(-Int32FromInt32(1)), +} + +func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) (r uint64) { + if __ccgo_strace { + trc("tls=%v f=%v base=%v pok=%v lim=%v, (%v:)", tls, f, base, pok, lim, origin(2)) + defer func() { trc("-> %v", r) }() + } + var bs, c, neg, v1, v11, v14, v2, v21, v25, v29, v33, v37, v41, v45, v5, v6, v8 int32 + var val, v10, v12, v13, v15, v16, v22, v23, v26, v27, v3, v30, v31, v34, v35, v38, v39, v4, v42, v43, v46, v47, v9 uintptr + var x uint32 + var y uint64 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bs, c, neg, val, x, y, v1, v10, v11, v12, v13, v14, v15, v16, v2, v21, v22, v23, v25, v26, v27, v29, v3, v30, v31, v33, v34, v35, v37, v38, v39, v4, v41, v42, v43, v45, v46, v47, v5, v6, v8, v9 + val = uintptr(unsafe.Pointer(&_table6)) + uintptr(1) + neg = 0 + if base > uint32(36) || base == uint32(1) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return uint64(0) + } + for { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v4 = f + 8 + v3 = *(*uintptr)(unsafe.Pointer(v4)) + *(*uintptr)(unsafe.Pointer(v4))++ + v2 = int32(*(*uint8)(unsafe.Pointer(v3))) + } else { + v2 = X__shgetc(tls, f) + } + v1 = v2 + c = v1 + v5 = v1 + v6 = BoolInt32(v5 == int32(' ') || uint32(v5)-uint32('\t') < uint32(5)) + goto _7 + _7: + if !(v6 != 0) { + break + } + } + if c == int32('+') || c == int32('-') { + neg = -BoolInt32(c == int32('-')) + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v10 = f + 8 + v9 = *(*uintptr)(unsafe.Pointer(v10)) + *(*uintptr)(unsafe.Pointer(v10))++ + v8 = int32(*(*uint8)(unsafe.Pointer(v9))) + } else { + v8 = X__shgetc(tls, f) + } + c = v8 + } + if (base == uint32(0) || base == uint32(16)) && c == int32('0') { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v13 = f + 8 + v12 = *(*uintptr)(unsafe.Pointer(v13)) + *(*uintptr)(unsafe.Pointer(v13))++ + v11 = int32(*(*uint8)(unsafe.Pointer(v12))) + } else { + v11 = X__shgetc(tls, f) + } + c = v11 + if c|int32(32) == int32('x') { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v16 = f + 8 + v15 = *(*uintptr)(unsafe.Pointer(v16)) + *(*uintptr)(unsafe.Pointer(v16))++ + v14 = int32(*(*uint8)(unsafe.Pointer(v15))) + } else { + v14 = X__shgetc(tls, f) + } + c = v14 + if int32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= int32(16) { + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + if pok != 0 { + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + } else { + X__shlim(tls, f, int64(Int32FromInt32(0))) + } + return uint64(0) + } + base = uint32(16) + } else { + if base == uint32(0) { + base = uint32(8) + } + } + } else { + if base == uint32(0) { + base = uint32(10) + } + if uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= base { + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + X__shlim(tls, f, int64(Int32FromInt32(0))) + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return uint64(0) + } + } + if base == uint32(10) { + x = uint32(0) + for { + if !(uint32(c-int32('0')) < uint32(10) && x <= Uint32FromUint32(0xffffffff)/Uint32FromInt32(10)-Uint32FromInt32(1)) { + break + } + x = x*uint32(10) + uint32(c-Int32FromUint8('0')) + goto _20 + _20: + ; + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v23 = f + 8 + v22 = *(*uintptr)(unsafe.Pointer(v23)) + *(*uintptr)(unsafe.Pointer(v23))++ + v21 = int32(*(*uint8)(unsafe.Pointer(v22))) + } else { + v21 = X__shgetc(tls, f) + } + c = v21 + } + y = uint64(x) + for { + if !(uint32(c-int32('0')) < uint32(10) && y <= (Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1))/Uint64FromInt32(10) && uint64(10)*y <= Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1)-uint64(c-Int32FromUint8('0'))) { + break + } + y = y*uint64(10) + uint64(c-Int32FromUint8('0')) + goto _24 + _24: + ; + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v27 = f + 8 + v26 = *(*uintptr)(unsafe.Pointer(v27)) + *(*uintptr)(unsafe.Pointer(v27))++ + v25 = int32(*(*uint8)(unsafe.Pointer(v26))) + } else { + v25 = X__shgetc(tls, f) + } + c = v25 + } + if uint32(c-int32('0')) >= uint32(10) { + goto done + } + } else { + if !(base&(base-Uint32FromInt32(1)) != 0) { + bs = int32(*(*uint8)(unsafe.Pointer(__ccgo_ts + 260 + uintptr(uint32(0x17)*base>>int32(5)&uint32(7))))) + x = uint32(0) + for { + if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= Uint32FromUint32(0xffffffff)/Uint32FromInt32(32)) { + break + } + x = x<>bs) { + break + } + y = y<= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + if y >= lim { + if !(lim&Uint64FromInt32(1) != 0) && !(neg != 0) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ERANGE) + return lim - uint64(1) + } else { + if y > lim { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ERANGE) + return lim + } + } + } + return y ^ uint64(neg) - uint64(neg) +} + +func X__procfdname(tls *TLS, buf uintptr, fd uint32) { + if __ccgo_strace { + trc("tls=%v buf=%v fd=%v, (%v:)", tls, buf, fd, origin(2)) + } + var i, j, v5 uint32 + var v2 uint8 + _, _, _, _ = i, j, v2, v5 + i = uint32(0) + for { + v2 = *(*uint8)(unsafe.Pointer(__ccgo_ts + 269 + uintptr(i))) + *(*uint8)(unsafe.Pointer(buf + uintptr(i))) = v2 + if !(v2 != 0) { + break + } + goto _1 + _1: + ; + i++ + } + if !(fd != 0) { + *(*uint8)(unsafe.Pointer(buf + uintptr(i))) = uint8('0') + *(*uint8)(unsafe.Pointer(buf + uintptr(i+uint32(1)))) = uint8(0) + return + } + j = fd + for { + if !(j != 0) { + break + } + goto _3 + _3: + ; + j /= uint32(10) + i++ + } + *(*uint8)(unsafe.Pointer(buf + uintptr(i))) = uint8(0) + for { + if !(fd != 0) { + break + } + i-- + v5 = i + *(*uint8)(unsafe.Pointer(buf + uintptr(v5))) = uint8(uint32('0') + fd%uint32(10)) + goto _4 + _4: + ; + fd /= uint32(10) + } +} + +/* The shcnt field stores the number of bytes read so far, offset by + * the value of buf-rpos at the last function call (__shlim or __shgetc), + * so that between calls the inline shcnt macro can add rpos-buf to get + * the actual count. */ + +func X__shlim(tls *TLS, f uintptr, lim Toff_t) { + if __ccgo_strace { + trc("tls=%v f=%v lim=%v, (%v:)", tls, f, lim, origin(2)) + } + (*TFILE)(unsafe.Pointer(f)).Fshlim = lim + (*TFILE)(unsafe.Pointer(f)).Fshcnt = int64((*TFILE)(unsafe.Pointer(f)).Fbuf) - int64((*TFILE)(unsafe.Pointer(f)).Frpos) + /* If lim is nonzero, rend must be a valid pointer. */ + if lim != 0 && int64((*TFILE)(unsafe.Pointer(f)).Frend)-int64((*TFILE)(unsafe.Pointer(f)).Frpos) > lim { + (*TFILE)(unsafe.Pointer(f)).Fshend = (*TFILE)(unsafe.Pointer(f)).Frpos + uintptr(lim) + } else { + (*TFILE)(unsafe.Pointer(f)).Fshend = (*TFILE)(unsafe.Pointer(f)).Frend + } +} + +func X__shgetc(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var c, v1 int32 + var cnt Toff_t + var v2 bool + _, _, _, _ = c, cnt, v1, v2 + cnt = (*TFILE)(unsafe.Pointer(f)).Fshcnt + (int64((*TFILE)(unsafe.Pointer(f)).Frpos) - int64((*TFILE)(unsafe.Pointer(f)).Fbuf)) + if v2 = (*TFILE)(unsafe.Pointer(f)).Fshlim != 0 && cnt >= (*TFILE)(unsafe.Pointer(f)).Fshlim; !v2 { + v1 = X__uflow(tls, f) + c = v1 + } + if v2 || v1 < 0 { + (*TFILE)(unsafe.Pointer(f)).Fshcnt = int64((*TFILE)(unsafe.Pointer(f)).Fbuf) - int64((*TFILE)(unsafe.Pointer(f)).Frpos) + cnt + (*TFILE)(unsafe.Pointer(f)).Fshend = (*TFILE)(unsafe.Pointer(f)).Frpos + (*TFILE)(unsafe.Pointer(f)).Fshlim = int64(-int32(1)) + return -int32(1) + } + cnt++ + if (*TFILE)(unsafe.Pointer(f)).Fshlim != 0 && int64((*TFILE)(unsafe.Pointer(f)).Frend)-int64((*TFILE)(unsafe.Pointer(f)).Frpos) > (*TFILE)(unsafe.Pointer(f)).Fshlim-cnt { + (*TFILE)(unsafe.Pointer(f)).Fshend = (*TFILE)(unsafe.Pointer(f)).Frpos + uintptr((*TFILE)(unsafe.Pointer(f)).Fshlim-cnt) + } else { + (*TFILE)(unsafe.Pointer(f)).Fshend = (*TFILE)(unsafe.Pointer(f)).Frend + } + (*TFILE)(unsafe.Pointer(f)).Fshcnt = int64((*TFILE)(unsafe.Pointer(f)).Fbuf) - int64((*TFILE)(unsafe.Pointer(f)).Frpos) + cnt + if (*TFILE)(unsafe.Pointer(f)).Frpos <= (*TFILE)(unsafe.Pointer(f)).Fbuf { + *(*uint8)(unsafe.Pointer((*TFILE)(unsafe.Pointer(f)).Frpos + uintptr(-Int32FromInt32(1)))) = uint8(c) + } + return c +} + +func X__syscall_ret(tls *TLS, r uint64) (r1 int64) { + if __ccgo_strace { + trc("tls=%v r=%v, (%v:)", tls, r, origin(2)) + defer func() { trc("-> %v", r1) }() + } + if r > -Uint64FromUint64(4096) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(-r) + return int64(-int32(1)) + } + return int64(r) +} + +type TElf_Symndx = uint32 + +type Tdl_phdr_info = struct { + Fdlpi_addr TElf64_Addr + Fdlpi_name uintptr + Fdlpi_phdr uintptr + Fdlpi_phnum TElf64_Half + Fdlpi_adds uint64 + Fdlpi_subs uint64 + Fdlpi_tls_modid Tsize_t + Fdlpi_tls_data uintptr +} + +type Tlink_map = struct { + Fl_addr TElf64_Addr + Fl_name uintptr + Fl_ld uintptr + Fl_next uintptr + Fl_prev uintptr +} + +type Tr_debug = struct { + Fr_version int32 + Fr_map uintptr + Fr_brk TElf64_Addr + Fr_state int32 + Fr_ldbase TElf64_Addr +} + +const _RT_CONSISTENT = 0 +const _RT_ADD = 1 +const _RT_DELETE = 2 +const VERSION = "1.2.5" + +const IPC_CREAT = 512 +const IPC_EXCL = 1024 +const IPC_INFO = 3 +const IPC_NOWAIT = 2048 +const IPC_RMID = 0 +const IPC_SET = 1 +const IPC_STAT = 2 +const __ipc_perm_key = 0 +const __ipc_perm_seq = 0 + +type Tkey_t = int32 + +type Tipc_perm = struct { + F__key Tkey_t + Fuid Tuid_t + Fgid Tgid_t + Fcuid Tuid_t + Fcgid Tgid_t + Fmode Tmode_t + F__seq int32 + F__pad1 int64 + F__pad2 int64 +} + +func Xftok(tls *TLS, path uintptr, id int32) (r Tkey_t) { + if __ccgo_strace { + trc("tls=%v path=%v id=%v, (%v:)", tls, path, id, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(128) + defer tls.Free(128) + var _ /* st at bp+0 */ Tstat + if Xstat(tls, path, bp) < 0 { + return -int32(1) + } + return int32((*(*Tstat)(unsafe.Pointer(bp))).Fst_ino&Uint64FromInt32(0xffff) | (*(*Tstat)(unsafe.Pointer(bp))).Fst_dev&Uint64FromInt32(0xff)< %v", r1) }() + } + var r int32 + _ = r + r = int32(X__syscall3(tls, int64(SYS_msgctl), int64(q), int64(cmd & ^(Int32FromInt32(IPC_STAT)&Int32FromInt32(0x100)) | Int32FromInt32(IPC_64)), int64(buf))) + return int32(X__syscall_ret(tls, uint64(r))) +} + +func Xmsgget(tls *TLS, k Tkey_t, flag int32) (r int32) { + if __ccgo_strace { + trc("tls=%v k=%v flag=%v, (%v:)", tls, k, flag, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_msgget), int64(k), int64(flag))))) +} + +func Xmsgrcv(tls *TLS, q int32, m uintptr, len1 Tsize_t, type1 int64, flag int32) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v q=%v m=%v len1=%v type1=%v flag=%v, (%v:)", tls, q, m, len1, type1, flag, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_msgrcv), int64(q), int64(m), int64(len1), type1, int64(flag), 0))) +} + +func Xmsgsnd(tls *TLS, q int32, m uintptr, len1 Tsize_t, flag int32) (r int32) { + if __ccgo_strace { + trc("tls=%v q=%v m=%v len1=%v flag=%v, (%v:)", tls, q, m, len1, flag, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_msgsnd), int64(q), int64(m), int64(len1), int64(flag), 0, 0)))) +} + +const GETALL = 13 +const GETNCNT = 14 +const GETPID = 11 +const GETVAL = 12 +const GETZCNT = 15 +const SEM_INFO = 19 +const SEM_STAT = 18 +const SEM_STAT_ANY = 20 +const SEM_UNDO = 4096 +const SETALL = 17 +const SETVAL = 16 +const _SEM_SEMUN_UNDEFINED = 1 + +type Tsemid_ds = struct { + Fsem_perm Tipc_perm + Fsem_otime Ttime_t + Fsem_ctime Ttime_t + Fsem_nsems uint16 + F__sem_nsems_pad [6]uint8 + F__unused3 int64 + F__unused4 int64 +} + +type Tseminfo = struct { + Fsemmap int32 + Fsemmni int32 + Fsemmns int32 + Fsemmnu int32 + Fsemmsl int32 + Fsemopm int32 + Fsemume int32 + Fsemusz int32 + Fsemvmx int32 + Fsemaem int32 +} + +type Tsembuf = struct { + Fsem_num uint16 + Fsem_op int16 + Fsem_flg int16 +} + +type Tsemun = struct { + Fbuf [0]uintptr + Farray [0]uintptr + Fval int32 + F__ccgo_pad3 [4]byte +} + +func Xsemctl(tls *TLS, id int32, num int32, cmd int32, va uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v id=%v num=%v cmd=%v va=%v, (%v:)", tls, id, num, cmd, va, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ap Tva_list + var r int32 + var _ /* arg at bp+0 */ Tsemun + _, _ = ap, r + *(*Tsemun)(unsafe.Pointer(bp)) = Tsemun{} + *(*int32)(unsafe.Pointer(bp)) = 0 + switch cmd & ^(Int32FromInt32(IPC_STAT) & Int32FromInt32(0x100)) { + case int32(SETVAL): + fallthrough + case int32(GETALL): + fallthrough + case int32(SETALL): + fallthrough + case int32(IPC_SET): + fallthrough + case int32(IPC_INFO): + fallthrough + case int32(SEM_INFO): + fallthrough + case Int32FromInt32(IPC_STAT) & ^(Int32FromInt32(IPC_STAT) & Int32FromInt32(0x100)): + fallthrough + case (Int32FromInt32(18) | Int32FromInt32(IPC_STAT)&Int32FromInt32(0x100)) & ^(Int32FromInt32(IPC_STAT) & Int32FromInt32(0x100)): + fallthrough + case (Int32FromInt32(20) | Int32FromInt32(IPC_STAT)&Int32FromInt32(0x100)) & ^(Int32FromInt32(IPC_STAT) & Int32FromInt32(0x100)): + ap = va + *(*Tsemun)(unsafe.Pointer(bp)) = *(*Tsemun)(unsafe.Pointer(VaOther(&ap, 8))) + _ = ap + } + r = int32(X__syscall4(tls, int64(SYS_semctl), int64(id), int64(num), int64(cmd & ^(Int32FromInt32(IPC_STAT)&Int32FromInt32(0x100)) | Int32FromInt32(IPC_64)), int64(*(*uintptr)(unsafe.Pointer(bp))))) + return int32(X__syscall_ret(tls, uint64(r))) +} + +func Xsemget(tls *TLS, key Tkey_t, n int32, fl int32) (r int32) { + if __ccgo_strace { + trc("tls=%v key=%v n=%v fl=%v, (%v:)", tls, key, n, fl, origin(2)) + defer func() { trc("-> %v", r) }() + } + /* The kernel uses the wrong type for the sem_nsems member + * of struct semid_ds, and thus might not check that the + * n fits in the correct (per POSIX) userspace type, so + * we have to check here. */ + if n > int32(USHRT_MAX) { + return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EINVAL)))) + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_semget), int64(key), int64(n), int64(fl))))) +} + +func Xsemop(tls *TLS, id int32, buf uintptr, n Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v id=%v buf=%v n=%v, (%v:)", tls, id, buf, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_semop), int64(id), int64(buf), int64(n))))) +} + +const NO_TIME32 = 0 +const __key = 0 +const __seq = 0 + +type Tipc_perm1 = struct { + Fkey Tkey_t + Fuid Tuid_t + Fgid Tgid_t + Fcuid Tuid_t + Fcgid Tgid_t + Fmode Tmode_t + Fseq int32 + F__pad1 int64 + F__pad2 int64 +} + +type Tsemid_ds1 = struct { + Fsem_perm Tipc_perm1 + Fsem_otime Ttime_t + Fsem_ctime Ttime_t + Fsem_nsems uint16 + F__sem_nsems_pad [6]uint8 + F__unused3 int64 + F__unused4 int64 +} + +func Xsemtimedop(tls *TLS, id int32, buf uintptr, n Tsize_t, ts uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v id=%v buf=%v n=%v ts=%v, (%v:)", tls, id, buf, n, ts, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_semtimedop), int64(id), int64(buf), int64(n), int64(ts))))) +} + +const SHMLBA = 4096 +const SHM_DEST = 512 +const SHM_EXEC = 32768 +const SHM_HUGETLB = 2048 +const SHM_HUGE_16GB = 2281701376 +const SHM_HUGE_16MB = 1610612736 +const SHM_HUGE_1GB = 2013265920 +const SHM_HUGE_1MB = 1342177280 +const SHM_HUGE_256MB = 1879048192 +const SHM_HUGE_2GB = 2080374784 +const SHM_HUGE_2MB = 1409286144 +const SHM_HUGE_32MB = 1677721600 +const SHM_HUGE_512KB = 1275068416 +const SHM_HUGE_512MB = 1946157056 +const SHM_HUGE_64KB = 1073741824 +const SHM_HUGE_8MB = 1543503872 +const SHM_HUGE_MASK = 63 +const SHM_HUGE_SHIFT = 26 +const SHM_INFO = 14 +const SHM_LOCK = 11 +const SHM_LOCKED = 1024 +const SHM_NORESERVE = 4096 +const SHM_R = 256 +const SHM_RDONLY = 4096 +const SHM_REMAP = 16384 +const SHM_RND = 8192 +const SHM_STAT = 13 +const SHM_STAT_ANY = 15 +const SHM_UNLOCK = 12 +const SHM_W = 128 + +type Tshmid_ds = struct { + Fshm_perm Tipc_perm + Fshm_segsz Tsize_t + Fshm_atime Ttime_t + Fshm_dtime Ttime_t + Fshm_ctime Ttime_t + Fshm_cpid Tpid_t + Fshm_lpid Tpid_t + Fshm_nattch uint64 + F__pad1 uint64 + F__pad2 uint64 +} + +type Tshminfo = struct { + Fshmmax uint64 + Fshmmin uint64 + Fshmmni uint64 + Fshmseg uint64 + Fshmall uint64 + F__unused [4]uint64 +} + +type Tshm_info = struct { + F__used_ids int32 + Fshm_tot uint64 + Fshm_rss uint64 + Fshm_swp uint64 + F__swap_attempts uint64 + F__swap_successes uint64 +} + +type Tshmatt_t = uint64 + +func Xshmat(tls *TLS, id int32, addr uintptr, flag int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v id=%v addr=%v flag=%v, (%v:)", tls, id, addr, flag, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uintptr(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_shmat), int64(id), int64(addr), int64(flag))))) +} + +func Xshmctl(tls *TLS, id int32, cmd int32, buf uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v id=%v cmd=%v buf=%v, (%v:)", tls, id, cmd, buf, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r int32 + _ = r + r = int32(X__syscall3(tls, int64(SYS_shmctl), int64(id), int64(cmd & ^(Int32FromInt32(IPC_STAT)&Int32FromInt32(0x100)) | Int32FromInt32(IPC_64)), int64(buf))) + return int32(X__syscall_ret(tls, uint64(r))) +} + +func Xshmdt(tls *TLS, addr uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v addr=%v, (%v:)", tls, addr, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_shmdt), int64(addr))))) +} + +func Xshmget(tls *TLS, key Tkey_t, size Tsize_t, flag int32) (r int32) { + if __ccgo_strace { + trc("tls=%v key=%v size=%v flag=%v, (%v:)", tls, key, size, flag, origin(2)) + defer func() { trc("-> %v", r) }() + } + if size > uint64(Int64FromInt64(INT64_MAX)) { + size = Uint64FromUint64(0xffffffffffffffff) + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_shmget), int64(key), int64(size), int64(flag))))) +} + +type Tpasswd = struct { + Fpw_name uintptr + Fpw_passwd uintptr + Fpw_uid Tuid_t + Fpw_gid Tgid_t + Fpw_gecos uintptr + Fpw_dir uintptr + Fpw_shell uintptr +} + +func Xcuserid(tls *TLS, buf uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v buf=%v, (%v:)", tls, buf, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(2112) + defer tls.Free(2112) + var len1 Tsize_t + var _ /* ppw at bp+48 */ uintptr + var _ /* pw at bp+0 */ Tpasswd + var _ /* pwb at bp+56 */ [256]int64 + _ = len1 + if buf != 0 { + *(*uint8)(unsafe.Pointer(buf)) = uint8(0) + } + Xgetpwuid_r(tls, Xgeteuid(tls), bp, bp+56, uint64(2048), bp+48) + if !(*(*uintptr)(unsafe.Pointer(bp + 48)) != 0) { + return buf + } + len1 = Xstrnlen(tls, (*(*Tpasswd)(unsafe.Pointer(bp))).Fpw_name, uint64(L_cuserid)) + if len1 == uint64(L_cuserid) { + return buf + } + if !(buf != 0) { + buf = uintptr(unsafe.Pointer(&_usridbuf)) + } + Xmemcpy(tls, buf, (*(*Tpasswd)(unsafe.Pointer(bp))).Fpw_name, len1+uint64(1)) + return buf +} + +var _usridbuf [20]uint8 + +func Xvwarn(tls *TLS, fmt uintptr, ap Tva_list) { + if __ccgo_strace { + trc("tls=%v fmt=%v ap=%v, (%v:)", tls, fmt, ap, origin(2)) + } + bp := tls.Alloc(16) + defer tls.Free(16) + Xfprintf(tls, uintptr(unsafe.Pointer(&X__stderr_FILE)), __ccgo_ts+284, VaList(bp+8, Xprogram_invocation_short_name)) + if fmt != 0 { + Xvfprintf(tls, uintptr(unsafe.Pointer(&X__stderr_FILE)), fmt, ap) + Xfputs(tls, __ccgo_ts+289, uintptr(unsafe.Pointer(&X__stderr_FILE))) + } + Xperror(tls, uintptr(0)) +} + +func Xvwarnx(tls *TLS, fmt uintptr, ap Tva_list) { + if __ccgo_strace { + trc("tls=%v fmt=%v ap=%v, (%v:)", tls, fmt, ap, origin(2)) + } + bp := tls.Alloc(16) + defer tls.Free(16) + Xfprintf(tls, uintptr(unsafe.Pointer(&X__stderr_FILE)), __ccgo_ts+284, VaList(bp+8, Xprogram_invocation_short_name)) + if fmt != 0 { + Xvfprintf(tls, uintptr(unsafe.Pointer(&X__stderr_FILE)), fmt, ap) + } + Xputc(tls, int32('\n'), uintptr(unsafe.Pointer(&X__stderr_FILE))) +} + +func Xverr(tls *TLS, status int32, fmt uintptr, ap Tva_list) { + if __ccgo_strace { + trc("tls=%v status=%v fmt=%v ap=%v, (%v:)", tls, status, fmt, ap, origin(2)) + } + Xvwarn(tls, fmt, ap) + _exit(tls, status) +} + +func Xverrx(tls *TLS, status int32, fmt uintptr, ap Tva_list) { + if __ccgo_strace { + trc("tls=%v status=%v fmt=%v ap=%v, (%v:)", tls, status, fmt, ap, origin(2)) + } + Xvwarnx(tls, fmt, ap) + _exit(tls, status) +} + +func Xwarn(tls *TLS, fmt uintptr, va uintptr) { + if __ccgo_strace { + trc("tls=%v fmt=%v va=%v, (%v:)", tls, fmt, va, origin(2)) + } + var ap Tva_list + _ = ap + ap = va + Xvwarn(tls, fmt, ap) + _ = ap +} + +func Xwarnx(tls *TLS, fmt uintptr, va uintptr) { + if __ccgo_strace { + trc("tls=%v fmt=%v va=%v, (%v:)", tls, fmt, va, origin(2)) + } + var ap Tva_list + _ = ap + ap = va + Xvwarnx(tls, fmt, ap) + _ = ap +} + +func Xerr(tls *TLS, status int32, fmt uintptr, va uintptr) { + if __ccgo_strace { + trc("tls=%v status=%v fmt=%v va=%v, (%v:)", tls, status, fmt, va, origin(2)) + } + var ap Tva_list + _ = ap + ap = va + Xverr(tls, status, fmt, ap) + _ = ap +} + +func Xerrx(tls *TLS, status int32, fmt uintptr, va uintptr) { + if __ccgo_strace { + trc("tls=%v status=%v fmt=%v va=%v, (%v:)", tls, status, fmt, va, origin(2)) + } + var ap Tva_list + _ = ap + ap = va + Xverrx(tls, status, fmt, ap) + _ = ap +} + +func Xeuidaccess(tls *TLS, filename uintptr, amode int32) (r int32) { + if __ccgo_strace { + trc("tls=%v filename=%v amode=%v, (%v:)", tls, filename, amode, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfaccessat(tls, -int32(100), filename, amode, int32(AT_EACCESS)) +} + +func Xeaccess(tls *TLS, filename uintptr, amode int32) (r int32) { + if __ccgo_strace { + trc("tls=%v filename=%v amode=%v, (%v:)", tls, filename, amode, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xeuidaccess(tls, filename, amode) +} + +const FTW_CHDIR = 4 +const FTW_D = 2 +const FTW_DEPTH = 8 +const FTW_DNR = 3 +const FTW_DP = 6 +const FTW_F = 1 +const FTW_MOUNT = 2 +const FTW_NS = 4 +const FTW_PHYS = 1 +const FTW_SL = 5 +const FTW_SLN = 7 + +type TFTW = struct { + Fbase int32 + Flevel int32 +} + +func Xftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v fn=%v fd_limit=%v, (%v:)", tls, path, fn, fd_limit, origin(2)) + defer func() { trc("-> %v", r) }() + } + /* The following cast assumes that calling a function with one + * argument more than it needs behaves as expected. This is + * actually undefined, but works on all real-world machines. */ + return Xnftw(tls, path, fn, fd_limit, int32(FTW_PHYS)) +} + +const STATX_ALL = 4095 +const STATX_ATIME = 32 +const STATX_BASIC_STATS = 2047 +const STATX_BLOCKS = 1024 +const STATX_BTIME = 2048 +const STATX_CTIME = 128 +const STATX_GID = 16 +const STATX_INO = 256 +const STATX_MODE = 2 +const STATX_MTIME = 64 +const STATX_NLINK = 4 +const STATX_SIZE = 512 +const STATX_TYPE = 1 +const STATX_UID = 8 +const S_IEXEC = 64 +const S_IREAD = 256 +const S_IWRITE = 128 + +type Tstatx_timestamp = struct { + Ftv_sec Tint64_t + Ftv_nsec Tuint32_t + F__pad Tuint32_t +} + +type Tstatx = struct { + Fstx_mask Tuint32_t + Fstx_blksize Tuint32_t + Fstx_attributes Tuint64_t + Fstx_nlink Tuint32_t + Fstx_uid Tuint32_t + Fstx_gid Tuint32_t + Fstx_mode Tuint16_t + F__pad0 [1]Tuint16_t + Fstx_ino Tuint64_t + Fstx_size Tuint64_t + Fstx_blocks Tuint64_t + Fstx_attributes_mask Tuint64_t + Fstx_atime Tstatx_timestamp + Fstx_btime Tstatx_timestamp + Fstx_ctime Tstatx_timestamp + Fstx_mtime Tstatx_timestamp + Fstx_rdev_major Tuint32_t + Fstx_rdev_minor Tuint32_t + Fstx_dev_major Tuint32_t + Fstx_dev_minor Tuint32_t + F__pad1 [14]Tuint64_t +} + +type Ttimezone = struct { + Ftz_minuteswest int32 + Ftz_dsttime int32 +} + +func Xfutimes(tls *TLS, fd int32, tv uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v tv=%v, (%v:)", tls, fd, tv, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var _ /* times at bp+0 */ [2]Ttimespec + if !(tv != 0) { + return Xfutimens(tls, fd, uintptr(0)) + } + (*(*[2]Ttimespec)(unsafe.Pointer(bp)))[0].Ftv_sec = (*(*Ttimeval)(unsafe.Pointer(tv))).Ftv_sec + (*(*[2]Ttimespec)(unsafe.Pointer(bp)))[0].Ftv_nsec = (*(*Ttimeval)(unsafe.Pointer(tv))).Ftv_usec * int64(1000) + (*(*[2]Ttimespec)(unsafe.Pointer(bp)))[int32(1)].Ftv_sec = (*(*Ttimeval)(unsafe.Pointer(tv + 1*16))).Ftv_sec + (*(*[2]Ttimespec)(unsafe.Pointer(bp)))[int32(1)].Ftv_nsec = (*(*Ttimeval)(unsafe.Pointer(tv + 1*16))).Ftv_usec * int64(1000) + return Xfutimens(tls, fd, bp) +} + +const prlimit64 = 0 + +func Xgetdtablesize(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1 uint64 + var _ /* rl at bp+0 */ Trlimit + _ = v1 + Xgetrlimit(tls, int32(RLIMIT_NOFILE), bp) + if (*(*Trlimit)(unsafe.Pointer(bp))).Frlim_cur < uint64(INT_MAX) { + v1 = (*(*Trlimit)(unsafe.Pointer(bp))).Frlim_cur + } else { + v1 = uint64(INT_MAX) + } + return int32(v1) +} + +func Xgetloadavg(tls *TLS, a uintptr, n int32) (r int32) { + if __ccgo_strace { + trc("tls=%v a=%v n=%v, (%v:)", tls, a, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(368) + defer tls.Free(368) + var i, v1 int32 + var _ /* si at bp+0 */ Tsysinfo + _, _ = i, v1 + if n <= 0 { + if n != 0 { + v1 = -int32(1) + } else { + v1 = 0 + } + return v1 + } + Xsysinfo(tls, bp) + if n > int32(3) { + n = int32(3) + } + i = 0 + for { + if !(i < n) { + break + } + *(*float64)(unsafe.Pointer(a + uintptr(i)*8)) = Float64FromFloat64(1) / float64(Int32FromInt32(1)< %v", r) }() + } + return int32(X__libc.Fpage_size) +} + +const B0 = 0 +const B1000000 = 4104 +const B110 = 3 +const B115200 = 4098 +const B1152000 = 4105 +const B1200 = 9 +const B134 = 4 +const B150 = 5 +const B1500000 = 4106 +const B1800 = 10 +const B19200 = 14 +const B200 = 6 +const B2000000 = 4107 +const B230400 = 4099 +const B2400 = 11 +const B2500000 = 4108 +const B300 = 7 +const B3000000 = 4109 +const B3500000 = 4110 +const B38400 = 15 +const B4000000 = 4111 +const B460800 = 4100 +const B4800 = 12 +const B50 = 1 +const B500000 = 4101 +const B57600 = 4097 +const B576000 = 4102 +const B600 = 8 +const B75 = 2 +const B921600 = 4103 +const B9600 = 13 +const BRKINT = 2 +const BS0 = 0 +const BS1 = 8192 +const BSDLY = 8192 +const CBAUD = 4111 +const CBAUDEX = 4096 +const CIBAUD = 269418496 +const CLOCAL = 2048 +const CMSPAR = 1073741824 +const CR0 = 0 +const CR1 = 512 +const CR2 = 1024 +const CR3 = 1536 +const CRDLY = 1536 +const CREAD = 128 +const CRTSCTS = 2147483648 +const CS5 = 0 +const CS6 = 16 +const CS7 = 32 +const CS8 = 48 +const CSIZE = 48 +const CSTOPB = 64 +const ECHO = 8 +const ECHOCTL = 512 +const ECHOE = 16 +const ECHOK = 32 +const ECHOKE = 2048 +const ECHONL = 64 +const ECHOPRT = 1024 +const EXTA = 14 +const EXTB = 15 +const EXTPROC = 65536 +const FF0 = 0 +const FF1 = 32768 +const FFDLY = 32768 +const FLUSHO = 4096 +const HUPCL = 1024 +const ICANON = 2 +const ICRNL = 256 +const IEXTEN = 32768 +const IGNBRK = 1 +const IGNCR = 128 +const IGNPAR = 4 +const IMAXBEL = 8192 +const INLCR = 64 +const INPCK = 16 +const ISIG = 1 +const ISTRIP = 32 +const IUCLC = 512 +const IUTF8 = 16384 +const IXANY = 2048 +const IXOFF = 4096 +const IXON = 1024 +const NCCS = 32 +const NL0 = 0 +const NL1 = 256 +const NLDLY = 256 +const NOFLSH = 128 +const OCRNL = 8 +const OFDEL = 128 +const OFILL = 64 +const OLCUC = 2 +const ONLCR = 4 +const ONLRET = 32 +const ONOCR = 16 +const OPOST = 1 +const PARENB = 256 +const PARMRK = 8 +const PARODD = 512 +const PENDIN = 16384 +const TAB0 = 0 +const TAB1 = 2048 +const TAB2 = 4096 +const TAB3 = 6144 +const TABDLY = 6144 +const TCIFLUSH = 0 +const TCIOFF = 2 +const TCIOFLUSH = 2 +const TCION = 3 +const TCOFLUSH = 1 +const TCOOFF = 0 +const TCOON = 1 +const TCSADRAIN = 1 +const TCSAFLUSH = 2 +const TCSANOW = 0 +const TOSTOP = 256 +const VDISCARD = 13 +const VEOF = 4 +const VEOL = 11 +const VEOL2 = 16 +const VERASE = 2 +const VINTR = 0 +const VKILL = 3 +const VLNEXT = 15 +const VMIN = 6 +const VQUIT = 1 +const VREPRINT = 12 +const VSTART = 8 +const VSTOP = 9 +const VSUSP = 10 +const VSWTC = 7 +const VT0 = 0 +const VT1 = 16384 +const VTDLY = 16384 +const VTIME = 5 +const VWERASE = 14 +const XCASE = 4 +const XTABS = 6144 + +type Twinsize = struct { + Fws_row uint16 + Fws_col uint16 + Fws_xpixel uint16 + Fws_ypixel uint16 +} + +type Tcc_t = uint8 + +type Tspeed_t = uint32 + +type Ttcflag_t = uint32 + +type Ttermios = struct { + Fc_iflag Ttcflag_t + Fc_oflag Ttcflag_t + Fc_cflag Ttcflag_t + Fc_lflag Ttcflag_t + Fc_line Tcc_t + Fc_cc [32]Tcc_t + F__c_ispeed Tspeed_t + F__c_ospeed Tspeed_t +} + +func Xgetpass(tls *TLS, prompt uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v prompt=%v, (%v:)", tls, prompt, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(144) + defer tls.Free(144) + var fd, v1 int32 + var l Tssize_t + var v2 uintptr + var _ /* s at bp+0 */ Ttermios + var _ /* t at bp+60 */ Ttermios + _, _, _, _ = fd, l, v1, v2 + v1 = Xopen(tls, __ccgo_ts+292, Int32FromInt32(O_RDWR)|Int32FromInt32(O_NOCTTY)|Int32FromInt32(O_CLOEXEC), 0) + fd = v1 + if v1 < 0 { + return uintptr(0) + } + Xtcgetattr(tls, fd, bp+60) + *(*Ttermios)(unsafe.Pointer(bp)) = *(*Ttermios)(unsafe.Pointer(bp + 60)) + (*(*Ttermios)(unsafe.Pointer(bp + 60))).Fc_lflag &= uint32(^(Int32FromInt32(ECHO) | Int32FromInt32(ISIG))) + (*(*Ttermios)(unsafe.Pointer(bp + 60))).Fc_lflag |= uint32(ICANON) + (*(*Ttermios)(unsafe.Pointer(bp + 60))).Fc_iflag &= uint32(^(Int32FromInt32(INLCR) | Int32FromInt32(IGNCR))) + (*(*Ttermios)(unsafe.Pointer(bp + 60))).Fc_iflag |= uint32(ICRNL) + Xtcsetattr(tls, fd, int32(TCSAFLUSH), bp+60) + Xtcdrain(tls, fd) + Xdprintf(tls, fd, __ccgo_ts+15, VaList(bp+128, prompt)) + l = Xread(tls, fd, uintptr(unsafe.Pointer(&_password)), uint64(128)) + if l >= 0 { + if l > 0 && int32(_password[l-int64(1)]) == int32('\n') || uint64(l) == uint64(128) { + l-- + } + _password[l] = uint8(0) + } + Xtcsetattr(tls, fd, int32(TCSAFLUSH), bp) + Xdprintf(tls, fd, __ccgo_ts+301, 0) + Xclose(tls, fd) + if l < 0 { + v2 = uintptr(0) + } else { + v2 = uintptr(unsafe.Pointer(&_password)) + } + return v2 +} + +var _password [128]uint8 + +var _defshells = [18]uint8{'/', 'b', 'i', 'n', '/', 's', 'h', 10, '/', 'b', 'i', 'n', '/', 'c', 's', 'h', 10} + +var _line uintptr +var _linesize Tsize_t +var _f uintptr + +func Xendusershell(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + if _f != 0 { + Xfclose(tls, _f) + } + _f = uintptr(0) +} + +func Xsetusershell(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + if !(_f != 0) { + _f = Xfopen(tls, __ccgo_ts+303, __ccgo_ts+315) + } + if !(_f != 0) { + _f = Xfmemopen(tls, uintptr(unsafe.Pointer(&_defshells)), Uint64FromInt64(18)-Uint64FromInt32(1), __ccgo_ts+319) + } +} + +func Xgetusershell(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + var l Tssize_t + _ = l + if !(_f != 0) { + Xsetusershell(tls) + } + if !(_f != 0) { + return uintptr(0) + } + l = Xgetline(tls, uintptr(unsafe.Pointer(&_line)), uintptr(unsafe.Pointer(&_linesize)), _f) + if l <= 0 { + return uintptr(0) + } + if int32(*(*uint8)(unsafe.Pointer(_line + uintptr(l-int64(1))))) == int32('\n') { + *(*uint8)(unsafe.Pointer(_line + uintptr(l-int64(1)))) = uint8(0) + } + return _line +} + +const ANYMARK = 1 +const FLUSHBAND = 4 +const FLUSHR = 1 +const FLUSHRW = 3 +const FLUSHW = 2 +const FMNAMESZ = 8 +const I_ATMARK = 21279 +const I_CANPUT = 21282 +const I_CKBAND = 21277 +const I_FDINSERT = 21264 +const I_FIND = 21259 +const I_FLUSH = 21253 +const I_FLUSHBAND = 21276 +const I_GETBAND = 21278 +const I_GETCLTIME = 21281 +const I_GETSIG = 21258 +const I_GRDOPT = 21255 +const I_GWROPT = 21268 +const I_LINK = 21260 +const I_LIST = 21269 +const I_LOOK = 21252 +const I_NREAD = 21249 +const I_PEEK = 21263 +const I_PLINK = 21270 +const I_POP = 21251 +const I_PUNLINK = 21271 +const I_PUSH = 21250 +const I_RECVFD = 21262 +const I_SENDFD = 21265 +const I_SETCLTIME = 21280 +const I_SETSIG = 21257 +const I_SRDOPT = 21254 +const I_STR = 21256 +const I_SWROPT = 21267 +const I_UNLINK = 21261 +const LASTMARK = 2 +const MORECTL = 1 +const MOREDATA = 2 +const MSG_ANY = 2 +const MSG_BAND = 4 +const MSG_HIPRI = 1 +const MUXID_ALL = -1 +const RMSGD = 1 +const RMSGN = 2 +const RNORM = 0 +const RPROTDAT = 4 +const RPROTDIS = 8 +const RPROTMASK = 28 +const RPROTNORM = 16 +const RS_HIPRI = 1 +const SNDPIPE = 2 +const SNDZERO = 1 +const S_BANDURG = 512 +const S_ERROR = 16 +const S_HANGUP = 32 +const S_HIPRI = 2 +const S_INPUT = 1 +const S_MSG = 8 +const S_OUTPUT = 4 +const S_RDBAND = 128 +const S_RDNORM = 64 +const S_WRBAND = 256 +const S_WRNORM = 4 +const __SID = 21248 + +type Tbandinfo = struct { + Fbi_pri uint8 + Fbi_flag int32 +} + +type Tstrbuf = struct { + Fmaxlen int32 + Flen1 int32 + Fbuf uintptr +} + +type Tstrpeek = struct { + Fctlbuf Tstrbuf + Fdatabuf Tstrbuf + Fflags uint32 +} + +type Tstrfdinsert = struct { + Fctlbuf Tstrbuf + Fdatabuf Tstrbuf + Fflags uint32 + Ffildes int32 + Foffset int32 +} + +type Tstrioctl = struct { + Fic_cmd int32 + Fic_timout int32 + Fic_len int32 + Fic_dp uintptr +} + +type Tstrrecvfd = struct { + Ffd int32 + Fuid int32 + Fgid int32 + F__fill [8]uint8 +} + +type Tstr_mlist = struct { + Fl_name [9]uint8 +} + +type Tstr_list = struct { + Fsl_nmods int32 + Fsl_modlist uintptr +} + +func Xisastream(tls *TLS, fd int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 int32 + _ = v1 + if Xfcntl(tls, fd, int32(F_GETFD), 0) < 0 { + v1 = -int32(1) + } else { + v1 = 0 + } + return v1 +} + +func Xlutimes(tls *TLS, filename uintptr, tv uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v filename=%v tv=%v, (%v:)", tls, filename, tv, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var v1 uintptr + var _ /* times at bp+0 */ [2]Ttimespec + _ = v1 + if tv != 0 { + (*(*[2]Ttimespec)(unsafe.Pointer(bp)))[0].Ftv_sec = (*(*Ttimeval)(unsafe.Pointer(tv))).Ftv_sec + (*(*[2]Ttimespec)(unsafe.Pointer(bp)))[0].Ftv_nsec = (*(*Ttimeval)(unsafe.Pointer(tv))).Ftv_usec * int64(1000) + (*(*[2]Ttimespec)(unsafe.Pointer(bp)))[int32(1)].Ftv_sec = (*(*Ttimeval)(unsafe.Pointer(tv + 1*16))).Ftv_sec + (*(*[2]Ttimespec)(unsafe.Pointer(bp)))[int32(1)].Ftv_nsec = (*(*Ttimeval)(unsafe.Pointer(tv + 1*16))).Ftv_usec * int64(1000) + } + if tv != 0 { + v1 = bp + } else { + v1 = uintptr(0) + } + return Xutimensat(tls, -int32(100), filename, v1, int32(AT_SYMLINK_NOFOLLOW)) +} + +const UL_GETFSIZE = 1 +const UL_SETFSIZE = 2 + +func Xulimit(tls *TLS, cmd int32, va uintptr) (r int64) { + if __ccgo_strace { + trc("tls=%v cmd=%v va=%v, (%v:)", tls, cmd, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ap Tva_list + var val int64 + var _ /* rl at bp+0 */ Trlimit + _, _ = ap, val + Xgetrlimit(tls, int32(RLIMIT_FSIZE), bp) + if cmd == int32(UL_SETFSIZE) { + ap = va + val = VaInt64(&ap) + _ = ap + (*(*Trlimit)(unsafe.Pointer(bp))).Frlim_cur = uint64(512) * uint64(val) + if Xsetrlimit(tls, int32(RLIMIT_FSIZE), bp) != 0 { + return int64(-int32(1)) + } + } + return int64((*(*Trlimit)(unsafe.Pointer(bp))).Frlim_cur / uint64(512)) +} + +const BOOT_TIME = 2 +const DEAD_PROCESS = 8 +const EMPTY = 0 +const INIT_PROCESS = 5 +const LOGIN_PROCESS = 6 +const NEW_TIME = 3 +const OLD_TIME = 4 +const RUN_LVL = 1 +const USER_PROCESS = 7 +const e_exit = 0 +const e_termination = 0 + +type Tutmpx = struct { + Fut_type int16 + F__ut_pad1 int16 + Fut_pid Tpid_t + Fut_line [32]uint8 + Fut_id [4]uint8 + Fut_user [32]uint8 + Fut_host [256]uint8 + Fut_exit struct { + F__e_termination int16 + F__e_exit int16 + } + Fut_session int32 + F__ut_pad2 int32 + Fut_tv Ttimeval + Fut_addr_v6 [4]uint32 + F__unused [20]uint8 +} + +func Xendutxent(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } +} + +func Xsetutxent(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } +} + +func Xgetutxent(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return UintptrFromInt32(0) +} + +func Xgetutxid(tls *TLS, ut uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v ut=%v, (%v:)", tls, ut, origin(2)) + defer func() { trc("-> %v", r) }() + } + return UintptrFromInt32(0) +} + +func Xgetutxline(tls *TLS, ut uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v ut=%v, (%v:)", tls, ut, origin(2)) + defer func() { trc("-> %v", r) }() + } + return UintptrFromInt32(0) +} + +func Xpututxline(tls *TLS, ut uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v ut=%v, (%v:)", tls, ut, origin(2)) + defer func() { trc("-> %v", r) }() + } + return UintptrFromInt32(0) +} + +func Xupdwtmpx(tls *TLS, f uintptr, u uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v u=%v, (%v:)", tls, f, u, origin(2)) + } +} + +func ___utmpxname(tls *TLS, f uintptr) (r int32) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOPNOTSUPP) + return -int32(1) +} + +func Xendutent(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + Xendutxent(tls) +} + +func Xgetutent(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xgetutxent(tls) +} + +func Xgetutid(tls *TLS, ut uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v ut=%v, (%v:)", tls, ut, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xgetutxid(tls, ut) +} + +func Xgetutline(tls *TLS, ut uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v ut=%v, (%v:)", tls, ut, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xgetutxline(tls, ut) +} + +func Xpututline(tls *TLS, ut uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v ut=%v, (%v:)", tls, ut, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xpututxline(tls, ut) +} + +func Xsetutent(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + Xsetutxent(tls) +} + +func Xupdwtmp(tls *TLS, f uintptr, u uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v u=%v, (%v:)", tls, f, u, origin(2)) + } + Xupdwtmpx(tls, f, u) +} + +const ADJ_ESTERROR = 8 +const ADJ_FREQUENCY = 2 +const ADJ_MAXERROR = 4 +const ADJ_MICRO = 4096 +const ADJ_NANO = 8192 +const ADJ_OFFSET = 1 +const ADJ_OFFSET_SINGLESHOT = 32769 +const ADJ_OFFSET_SS_READ = 40961 +const ADJ_SETOFFSET = 256 +const ADJ_STATUS = 16 +const ADJ_TAI = 128 +const ADJ_TICK = 16384 +const ADJ_TIMECONST = 32 +const MAXTC = 6 +const MOD_CLKA = 32769 +const MOD_CLKB = 16384 +const MOD_ESTERROR = 8 +const MOD_FREQUENCY = 2 +const MOD_MAXERROR = 4 +const MOD_MICRO = 4096 +const MOD_NANO = 8192 +const MOD_OFFSET = 1 +const MOD_STATUS = 16 +const MOD_TAI = 128 +const MOD_TIMECONST = 32 +const STA_CLK = 32768 +const STA_CLOCKERR = 4096 +const STA_DEL = 32 +const STA_FLL = 8 +const STA_FREQHOLD = 128 +const STA_INS = 16 +const STA_MODE = 16384 +const STA_NANO = 8192 +const STA_PLL = 1 +const STA_PPSERROR = 2048 +const STA_PPSFREQ = 2 +const STA_PPSJITTER = 512 +const STA_PPSSIGNAL = 256 +const STA_PPSTIME = 4 +const STA_PPSWANDER = 1024 +const STA_RONLY = 65280 +const STA_UNSYNC = 64 +const TIME_BAD = 5 +const TIME_DEL = 2 +const TIME_ERROR = 5 +const TIME_INS = 1 +const TIME_OK = 0 +const TIME_OOP = 3 +const TIME_WAIT = 4 + +type Tntptimeval = struct { + Ftime Ttimeval + Fmaxerror int64 + Festerror int64 +} + +type Ttimex = struct { + Fmodes uint32 + Foffset int64 + Ffreq int64 + Fmaxerror int64 + Festerror int64 + Fstatus int32 + Fconstant int64 + Fprecision int64 + Ftolerance int64 + Ftime Ttimeval + Ftick int64 + Fppsfreq int64 + Fjitter int64 + Fshift int32 + Fstabil int64 + Fjitcnt int64 + Fcalcnt int64 + Ferrcnt int64 + Fstbcnt int64 + Ftai int32 + F__padding [11]int32 +} + +func Xadjtime(tls *TLS, in uintptr, out uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v in=%v out=%v, (%v:)", tls, in, out, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(208) + defer tls.Free(208) + var v1 Tsuseconds_t + var _ /* tx at bp+0 */ Ttimex + _ = v1 + *(*Ttimex)(unsafe.Pointer(bp)) = Ttimex{} + if in != 0 { + if (*Ttimeval)(unsafe.Pointer(in)).Ftv_sec > int64(1000) || (*Ttimeval)(unsafe.Pointer(in)).Ftv_usec > int64(1000000000) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return -int32(1) + } + (*(*Ttimex)(unsafe.Pointer(bp))).Foffset = (*Ttimeval)(unsafe.Pointer(in)).Ftv_sec*int64(1000000) + (*Ttimeval)(unsafe.Pointer(in)).Ftv_usec + (*(*Ttimex)(unsafe.Pointer(bp))).Fmodes = uint32(ADJ_OFFSET_SINGLESHOT) + } + if Xadjtimex(tls, bp) < 0 { + return -int32(1) + } + if out != 0 { + (*Ttimeval)(unsafe.Pointer(out)).Ftv_sec = (*(*Ttimex)(unsafe.Pointer(bp))).Foffset / int64(1000000) + v1 = (*(*Ttimex)(unsafe.Pointer(bp))).Foffset % Int64FromInt32(1000000) + (*Ttimeval)(unsafe.Pointer(out)).Ftv_usec = v1 + if v1 < 0 { + (*Ttimeval)(unsafe.Pointer(out)).Ftv_sec-- + *(*Tsuseconds_t)(unsafe.Pointer(out + 8)) += int64(1000000) + } + } + return 0 +} + +func Xadjtimex(tls *TLS, tx uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v tx=%v, (%v:)", tls, tx, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xclock_adjtime(tls, CLOCK_REALTIME, tx) +} + +func Xbrk(tls *TLS, end uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v end=%v, (%v:)", tls, end, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(ENOMEM)))) +} + +func Xcapset(tls *TLS, a uintptr, b uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v a=%v b=%v, (%v:)", tls, a, b, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_capset), int64(a), int64(b))))) +} + +func Xcapget(tls *TLS, a uintptr, b uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v a=%v b=%v, (%v:)", tls, a, b, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_capget), int64(a), int64(b))))) +} + +func Xchroot(tls *TLS, path uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v, (%v:)", tls, path, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_chroot), int64(path))))) +} + +type Tktimex64 = struct { + Fmodes uint32 + F__ccgo4 uint32 + Foffset int64 + Ffreq int64 + Fmaxerror int64 + Festerror int64 + Fstatus int32 + F__ccgo44 uint32 + Fconstant int64 + Fprecision int64 + Ftolerance int64 + Ftime_sec int64 + Ftime_usec int64 + Ftick int64 + Fppsfreq int64 + Fjitter int64 + Fshift int32 + F__ccgo116 uint32 + Fstabil int64 + Fjitcnt int64 + Fcalcnt int64 + Ferrcnt int64 + Fstbcnt int64 + Ftai int32 + F__padding [11]int32 +} + +type Tktimex = struct { + Fmodes uint32 + Foffset int64 + Ffreq int64 + Fmaxerror int64 + Festerror int64 + Fstatus int32 + Fconstant int64 + Fprecision int64 + Ftolerance int64 + Ftime_sec int64 + Ftime_usec int64 + Ftick int64 + Fppsfreq int64 + Fjitter int64 + Fshift int32 + Fstabil int64 + Fjitcnt int64 + Fcalcnt int64 + Ferrcnt int64 + Fstbcnt int64 + Ftai int32 + F__padding [11]int32 +} + +func Xclock_adjtime(tls *TLS, clock_id Tclockid_t, utx uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v clock_id=%v utx=%v, (%v:)", tls, clock_id, utx, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(208) + defer tls.Free(208) + var r int32 + var _ /* ktx at bp+0 */ Tktimex + _ = r + r = -int32(ENOSYS) + if uint64(8) > uint64(8) { + *(*Tktimex)(unsafe.Pointer(bp)) = Tktimex{ + Fmodes: (*Ttimex)(unsafe.Pointer(utx)).Fmodes, + Foffset: (*Ttimex)(unsafe.Pointer(utx)).Foffset, + Ffreq: (*Ttimex)(unsafe.Pointer(utx)).Ffreq, + Fmaxerror: (*Ttimex)(unsafe.Pointer(utx)).Fmaxerror, + Festerror: (*Ttimex)(unsafe.Pointer(utx)).Festerror, + Fstatus: (*Ttimex)(unsafe.Pointer(utx)).Fstatus, + Fconstant: (*Ttimex)(unsafe.Pointer(utx)).Fconstant, + Fprecision: (*Ttimex)(unsafe.Pointer(utx)).Fprecision, + Ftolerance: (*Ttimex)(unsafe.Pointer(utx)).Ftolerance, + Ftime_sec: (*Ttimex)(unsafe.Pointer(utx)).Ftime.Ftv_sec, + Ftime_usec: (*Ttimex)(unsafe.Pointer(utx)).Ftime.Ftv_usec, + Ftick: (*Ttimex)(unsafe.Pointer(utx)).Ftick, + Fppsfreq: (*Ttimex)(unsafe.Pointer(utx)).Fppsfreq, + Fjitter: (*Ttimex)(unsafe.Pointer(utx)).Fjitter, + Fshift: (*Ttimex)(unsafe.Pointer(utx)).Fshift, + Fstabil: (*Ttimex)(unsafe.Pointer(utx)).Fstabil, + Fjitcnt: (*Ttimex)(unsafe.Pointer(utx)).Fjitcnt, + Fcalcnt: (*Ttimex)(unsafe.Pointer(utx)).Fcalcnt, + Ferrcnt: (*Ttimex)(unsafe.Pointer(utx)).Ferrcnt, + Fstbcnt: (*Ttimex)(unsafe.Pointer(utx)).Fstbcnt, + Ftai: (*Ttimex)(unsafe.Pointer(utx)).Ftai, + } + if clock_id == CLOCK_REALTIME { + r = int32(X__syscall1(tls, int64(SYS_adjtimex), int64(bp))) + } else { + r = int32(X__syscall2(tls, int64(SYS_clock_adjtime), int64(clock_id), int64(bp))) + } + if r >= 0 { + (*Ttimex)(unsafe.Pointer(utx)).Fmodes = (*(*Tktimex)(unsafe.Pointer(bp))).Fmodes + (*Ttimex)(unsafe.Pointer(utx)).Foffset = (*(*Tktimex)(unsafe.Pointer(bp))).Foffset + (*Ttimex)(unsafe.Pointer(utx)).Ffreq = (*(*Tktimex)(unsafe.Pointer(bp))).Ffreq + (*Ttimex)(unsafe.Pointer(utx)).Fmaxerror = (*(*Tktimex)(unsafe.Pointer(bp))).Fmaxerror + (*Ttimex)(unsafe.Pointer(utx)).Festerror = (*(*Tktimex)(unsafe.Pointer(bp))).Festerror + (*Ttimex)(unsafe.Pointer(utx)).Fstatus = (*(*Tktimex)(unsafe.Pointer(bp))).Fstatus + (*Ttimex)(unsafe.Pointer(utx)).Fconstant = (*(*Tktimex)(unsafe.Pointer(bp))).Fconstant + (*Ttimex)(unsafe.Pointer(utx)).Fprecision = (*(*Tktimex)(unsafe.Pointer(bp))).Fprecision + (*Ttimex)(unsafe.Pointer(utx)).Ftolerance = (*(*Tktimex)(unsafe.Pointer(bp))).Ftolerance + (*Ttimex)(unsafe.Pointer(utx)).Ftime.Ftv_sec = (*(*Tktimex)(unsafe.Pointer(bp))).Ftime_sec + (*Ttimex)(unsafe.Pointer(utx)).Ftime.Ftv_usec = (*(*Tktimex)(unsafe.Pointer(bp))).Ftime_usec + (*Ttimex)(unsafe.Pointer(utx)).Ftick = (*(*Tktimex)(unsafe.Pointer(bp))).Ftick + (*Ttimex)(unsafe.Pointer(utx)).Fppsfreq = (*(*Tktimex)(unsafe.Pointer(bp))).Fppsfreq + (*Ttimex)(unsafe.Pointer(utx)).Fjitter = (*(*Tktimex)(unsafe.Pointer(bp))).Fjitter + (*Ttimex)(unsafe.Pointer(utx)).Fshift = (*(*Tktimex)(unsafe.Pointer(bp))).Fshift + (*Ttimex)(unsafe.Pointer(utx)).Fstabil = (*(*Tktimex)(unsafe.Pointer(bp))).Fstabil + (*Ttimex)(unsafe.Pointer(utx)).Fjitcnt = (*(*Tktimex)(unsafe.Pointer(bp))).Fjitcnt + (*Ttimex)(unsafe.Pointer(utx)).Fcalcnt = (*(*Tktimex)(unsafe.Pointer(bp))).Fcalcnt + (*Ttimex)(unsafe.Pointer(utx)).Ferrcnt = (*(*Tktimex)(unsafe.Pointer(bp))).Ferrcnt + (*Ttimex)(unsafe.Pointer(utx)).Fstbcnt = (*(*Tktimex)(unsafe.Pointer(bp))).Fstbcnt + (*Ttimex)(unsafe.Pointer(utx)).Ftai = (*(*Tktimex)(unsafe.Pointer(bp))).Ftai + } + return int32(X__syscall_ret(tls, uint64(r))) + } + if clock_id == CLOCK_REALTIME { + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_adjtimex), int64(utx))))) + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_clock_adjtime), int64(clock_id), int64(utx))))) +} + +func Xcopy_file_range(tls *TLS, fd_in int32, off_in uintptr, fd_out int32, off_out uintptr, len1 Tsize_t, flags uint32) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd_in=%v off_in=%v fd_out=%v off_out=%v len1=%v flags=%v, (%v:)", tls, fd_in, off_in, fd_out, off_out, len1, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(X__syscall6(tls, int64(SYS_copy_file_range), int64(fd_in), int64(off_in), int64(fd_out), int64(off_out), int64(len1), int64(flags)))) +} + +const EPOLLERR = 8 +const EPOLLET = 2147483648 +const EPOLLEXCLUSIVE = 268435456 +const EPOLLHUP = 16 +const EPOLLIN = 1 +const EPOLLMSG = 1024 +const EPOLLNVAL = 32 +const EPOLLONESHOT = 1073741824 +const EPOLLOUT = 4 +const EPOLLPRI = 2 +const EPOLLRDBAND = 128 +const EPOLLRDHUP = 8192 +const EPOLLRDNORM = 64 +const EPOLLWAKEUP = 536870912 +const EPOLLWRBAND = 512 +const EPOLLWRNORM = 256 +const EPOLL_CLOEXEC = 524288 +const EPOLL_CTL_ADD = 1 +const EPOLL_CTL_DEL = 2 +const EPOLL_CTL_MOD = 3 +const EPOLL_NONBLOCK = 2048 + +type Tfsblkcnt_t = uint64 + +type Tfsfilcnt_t = uint64 + +type _EPOLL_EVENTS = int32 + +const ___EPOLL_DUMMY = 0 + +type Tepoll_data_t = struct { + Ffd [0]int32 + Fu32 [0]Tuint32_t + Fu64 [0]Tuint64_t + Fptr uintptr +} + +type Tepoll_data = Tepoll_data_t + +type Tepoll_event = struct { + Fevents Tuint32_t + Fdata Tepoll_data_t +} + +func Xepoll_create(tls *TLS, size int32) (r int32) { + if __ccgo_strace { + trc("tls=%v size=%v, (%v:)", tls, size, origin(2)) + defer func() { trc("-> %v", r) }() + } + if size <= 0 { + return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EINVAL)))) + } + return Xepoll_create1(tls, 0) +} + +func Xepoll_create1(tls *TLS, flags int32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v flags=%v, (%v:)", tls, flags, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r int32 + _ = r + r = int32(X__syscall1(tls, int64(SYS_epoll_create1), int64(flags))) + return int32(X__syscall_ret(tls, uint64(r))) +} + +func Xepoll_ctl(tls *TLS, fd int32, op int32, fd2 int32, ev uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v op=%v fd2=%v ev=%v, (%v:)", tls, fd, op, fd2, ev, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_epoll_ctl), int64(fd), int64(op), int64(fd2), int64(ev))))) +} + +func Xepoll_pwait(tls *TLS, fd int32, ev uintptr, cnt int32, to int32, sigs uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v fd=%v ev=%v cnt=%v to=%v sigs=%v, (%v:)", tls, fd, ev, cnt, to, sigs, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r int32 + _ = r + r = int32(___syscall_cp(tls, int64(SYS_epoll_pwait), int64(fd), int64(ev), int64(cnt), int64(to), int64(sigs), int64(Int32FromInt32(_NSIG)/Int32FromInt32(8)))) + return int32(X__syscall_ret(tls, uint64(r))) +} + +func Xepoll_wait(tls *TLS, fd int32, ev uintptr, cnt int32, to int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v ev=%v cnt=%v to=%v, (%v:)", tls, fd, ev, cnt, to, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xepoll_pwait(tls, fd, ev, cnt, to, uintptr(0)) +} + +const EFD_CLOEXEC = 524288 +const EFD_NONBLOCK = 2048 +const EFD_SEMAPHORE = 1 + +type Teventfd_t = uint64 + +func Xeventfd(tls *TLS, count uint32, flags int32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v count=%v flags=%v, (%v:)", tls, count, flags, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r int32 + _ = r + r = int32(X__syscall2(tls, int64(SYS_eventfd2), int64(count), int64(flags))) + return int32(X__syscall_ret(tls, uint64(r))) +} + +func Xeventfd_read(tls *TLS, fd int32, value uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v value=%v, (%v:)", tls, fd, value, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 int32 + _ = v1 + if uint64(8) == uint64(Xread(tls, fd, value, uint64(8))) { + v1 = 0 + } else { + v1 = -int32(1) + } + return v1 +} + +func Xeventfd_write(tls *TLS, fd int32, _value Teventfd_t) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v _value=%v, (%v:)", tls, fd, _value, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + *(*Teventfd_t)(unsafe.Pointer(bp)) = _value + var v1 int32 + _ = v1 + if uint64(8) == uint64(Xwrite(tls, fd, bp, uint64(8))) { + v1 = 0 + } else { + v1 = -int32(1) + } + return v1 +} + +func Xfallocate(tls *TLS, fd int32, mode int32, base Toff_t, len1 Toff_t) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v mode=%v base=%v len1=%v, (%v:)", tls, fd, mode, base, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_fallocate), int64(fd), int64(mode), base, len1)))) +} + +const FANOTIFY_METADATA_VERSION = 3 +const FAN_ACCESS = 1 +const FAN_ACCESS_PERM = 131072 +const FAN_ALLOW = 1 +const FAN_ALL_CLASS_BITS = 12 +const FAN_ALL_EVENTS = 59 +const FAN_ALL_INIT_FLAGS = 63 +const FAN_ALL_MARK_FLAGS = 255 +const FAN_ALL_OUTGOING_EVENTS = 213051 +const FAN_ALL_PERM_EVENTS = 196608 +const FAN_ATTRIB = 4 +const FAN_AUDIT = 16 +const FAN_CLASS_CONTENT = 4 +const FAN_CLASS_NOTIF = 0 +const FAN_CLASS_PRE_CONTENT = 8 +const FAN_CLOEXEC = 1 +const FAN_CLOSE = 24 +const FAN_CLOSE_NOWRITE = 16 +const FAN_CLOSE_WRITE = 8 +const FAN_CREATE = 256 +const FAN_DELETE = 512 +const FAN_DELETE_SELF = 1024 +const FAN_DENY = 2 +const FAN_DIR_MODIFY = 524288 +const FAN_ENABLE_AUDIT = 64 +const FAN_EVENT_INFO_TYPE_DFID = 3 +const FAN_EVENT_INFO_TYPE_DFID_NAME = 2 +const FAN_EVENT_INFO_TYPE_FID = 1 +const FAN_EVENT_METADATA_LEN = 0 +const FAN_EVENT_ON_CHILD = 134217728 +const FAN_MARK_ADD = 1 +const FAN_MARK_DONT_FOLLOW = 4 +const FAN_MARK_FILESYSTEM = 256 +const FAN_MARK_FLUSH = 128 +const FAN_MARK_IGNORED_MASK = 32 +const FAN_MARK_IGNORED_SURV_MODIFY = 64 +const FAN_MARK_INODE = 0 +const FAN_MARK_MOUNT = 16 +const FAN_MARK_ONLYDIR = 8 +const FAN_MARK_REMOVE = 2 +const FAN_MARK_TYPE_MASK = 272 +const FAN_MODIFY = 2 +const FAN_MOVE = 192 +const FAN_MOVED_FROM = 64 +const FAN_MOVED_TO = 128 +const FAN_MOVE_SELF = 2048 +const FAN_NOFD = -1 +const FAN_NONBLOCK = 2 +const FAN_ONDIR = 1073741824 +const FAN_OPEN = 32 +const FAN_OPEN_EXEC = 4096 +const FAN_OPEN_EXEC_PERM = 262144 +const FAN_OPEN_PERM = 65536 +const FAN_Q_OVERFLOW = 16384 +const FAN_REPORT_DFID_NAME = 3072 +const FAN_REPORT_DIR_FID = 1024 +const FAN_REPORT_FID = 512 +const FAN_REPORT_NAME = 2048 +const FAN_REPORT_TID = 256 +const FAN_UNLIMITED_MARKS = 32 +const FAN_UNLIMITED_QUEUE = 16 +const ST_APPEND = 256 +const ST_IMMUTABLE = 512 +const ST_MANDLOCK = 64 +const ST_NOATIME = 1024 +const ST_NODEV = 4 +const ST_NODIRATIME = 2048 +const ST_NOEXEC = 8 +const ST_NOSUID = 2 +const ST_RDONLY = 1 +const ST_RELATIME = 4096 +const ST_SYNCHRONOUS = 16 +const ST_WRITE = 128 + +type Tstatvfs = struct { + Ff_bsize uint64 + Ff_frsize uint64 + Ff_blocks Tfsblkcnt_t + Ff_bfree Tfsblkcnt_t + Ff_bavail Tfsblkcnt_t + Ff_files Tfsfilcnt_t + Ff_ffree Tfsfilcnt_t + Ff_favail Tfsfilcnt_t + Ff_fsid uint64 + Ff_flag uint64 + Ff_namemax uint64 + Ff_type uint32 + F__reserved [5]int32 +} + +type Tfsid_t = struct { + F__val [2]int32 +} + +type t__fsid_t = Tfsid_t + +type Tstatfs = struct { + Ff_type uint64 + Ff_bsize uint64 + Ff_blocks Tfsblkcnt_t + Ff_bfree Tfsblkcnt_t + Ff_bavail Tfsblkcnt_t + Ff_files Tfsfilcnt_t + Ff_ffree Tfsfilcnt_t + Ff_fsid Tfsid_t + Ff_namelen uint64 + Ff_frsize uint64 + Ff_flags uint64 + Ff_spare [4]uint64 +} + +type Tfanotify_event_metadata = struct { + Fevent_len uint32 + Fvers uint8 + Freserved uint8 + Fmetadata_len uint16 + Fmask uint64 + Ffd int32 + Fpid int32 +} + +type Tfanotify_event_info_header = struct { + Finfo_type uint8 + Fpad uint8 + Flen1 uint16 +} + +type Tfanotify_event_info_fid = struct { + Fhdr Tfanotify_event_info_header + Ffsid Tfsid_t +} + +type Tfanotify_response = struct { + Ffd int32 + Fresponse uint32 +} + +func Xfanotify_init(tls *TLS, flags uint32, event_f_flags uint32) (r int32) { + if __ccgo_strace { + trc("tls=%v flags=%v event_f_flags=%v, (%v:)", tls, flags, event_f_flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_fanotify_init), int64(flags), int64(event_f_flags))))) +} + +func Xfanotify_mark(tls *TLS, fanotify_fd int32, flags uint32, mask uint64, dfd int32, pathname uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fanotify_fd=%v flags=%v mask=%v dfd=%v pathname=%v, (%v:)", tls, fanotify_fd, flags, mask, dfd, pathname, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall5(tls, int64(SYS_fanotify_mark), int64(fanotify_fd), int64(flags), int64(mask), int64(dfd), int64(pathname))))) +} + +const LOCK_EX = 2 +const LOCK_NB = 4 +const LOCK_SH = 1 +const LOCK_UN = 8 + +func Xflock(tls *TLS, fd int32, op int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v op=%v, (%v:)", tls, fd, op, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_flock), int64(fd), int64(op))))) +} + +func Xgetdents(tls *TLS, fd int32, buf uintptr, len1 Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v buf=%v len1=%v, (%v:)", tls, fd, buf, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + if len1 > uint64(INT_MAX) { + len1 = uint64(INT_MAX) + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_getdents64), int64(fd), int64(buf), int64(len1))))) +} + +const GRND_INSECURE = 4 +const GRND_NONBLOCK = 1 +const GRND_RANDOM = 2 + +func Xgetrandom(tls *TLS, buf uintptr, buflen Tsize_t, flags uint32) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v buf=%v buflen=%v flags=%v, (%v:)", tls, buf, buflen, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_getrandom), int64(buf), int64(buflen), int64(flags), 0, 0, 0))) +} + +const IN_ACCESS = 1 +const IN_ALL_EVENTS = 4095 +const IN_ATTRIB = 4 +const IN_CLOEXEC = 524288 +const IN_CLOSE = 24 +const IN_CLOSE_NOWRITE = 16 +const IN_CLOSE_WRITE = 8 +const IN_CREATE = 256 +const IN_DELETE = 512 +const IN_DELETE_SELF = 1024 +const IN_DONT_FOLLOW = 33554432 +const IN_EXCL_UNLINK = 67108864 +const IN_IGNORED = 32768 +const IN_ISDIR = 1073741824 +const IN_MASK_ADD = 536870912 +const IN_MASK_CREATE = 268435456 +const IN_MODIFY = 2 +const IN_MOVE = 192 +const IN_MOVED_FROM = 64 +const IN_MOVED_TO = 128 +const IN_MOVE_SELF = 2048 +const IN_NONBLOCK = 2048 +const IN_ONESHOT = 2147483648 +const IN_ONLYDIR = 16777216 +const IN_OPEN = 32 +const IN_Q_OVERFLOW = 16384 +const IN_UNMOUNT = 8192 + +type Tinotify_event = struct { + Fwd int32 + Fmask Tuint32_t + Fcookie Tuint32_t + Flen1 Tuint32_t +} + +func Xinotify_init(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xinotify_init1(tls, 0) +} + +func Xinotify_init1(tls *TLS, flags int32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v flags=%v, (%v:)", tls, flags, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r int32 + _ = r + r = int32(X__syscall1(tls, int64(SYS_inotify_init1), int64(flags))) + return int32(X__syscall_ret(tls, uint64(r))) +} + +func Xinotify_add_watch(tls *TLS, fd int32, pathname uintptr, mask Tuint32_t) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v pathname=%v mask=%v, (%v:)", tls, fd, pathname, mask, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_inotify_add_watch), int64(fd), int64(pathname), int64(mask))))) +} + +func Xinotify_rm_watch(tls *TLS, fd int32, wd int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v wd=%v, (%v:)", tls, fd, wd, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_inotify_rm_watch), int64(fd), int64(wd))))) +} + +func Xklogctl(tls *TLS, type1 int32, buf uintptr, len1 int32) (r int32) { + if __ccgo_strace { + trc("tls=%v type1=%v buf=%v len1=%v, (%v:)", tls, type1, buf, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_syslog), int64(type1), int64(buf), int64(len1))))) +} + +const MADV_COLD = 20 +const MADV_DODUMP = 17 +const MADV_DOFORK = 11 +const MADV_DONTDUMP = 16 +const MADV_DONTFORK = 10 +const MADV_DONTNEED = 4 +const MADV_FREE = 8 +const MADV_HUGEPAGE = 14 +const MADV_HWPOISON = 100 +const MADV_KEEPONFORK = 19 +const MADV_MERGEABLE = 12 +const MADV_NOHUGEPAGE = 15 +const MADV_NORMAL = 0 +const MADV_PAGEOUT = 21 +const MADV_RANDOM = 1 +const MADV_REMOVE = 9 +const MADV_SEQUENTIAL = 2 +const MADV_SOFT_OFFLINE = 101 +const MADV_UNMERGEABLE = 13 +const MADV_WILLNEED = 3 +const MADV_WIPEONFORK = 18 +const MFD_ALLOW_SEALING = 2 +const MFD_CLOEXEC = 1 +const MFD_HUGETLB = 4 +const MLOCK_ONFAULT = 1 +const MREMAP_DONTUNMAP = 4 +const MREMAP_FIXED = 2 +const MREMAP_MAYMOVE = 1 +const _GNU_SOURCE = 1 + +func Xmemfd_create(tls *TLS, name uintptr, flags uint32) (r int32) { + if __ccgo_strace { + trc("tls=%v name=%v flags=%v, (%v:)", tls, name, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_memfd_create), int64(name), int64(flags))))) +} + +func Xmlock2(tls *TLS, addr uintptr, len1 Tsize_t, flags uint32) (r int32) { + if __ccgo_strace { + trc("tls=%v addr=%v len1=%v flags=%v, (%v:)", tls, addr, len1, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + if flags == uint32(0) { + return Xmlock(tls, addr, len1) + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_mlock2), int64(addr), int64(len1), int64(flags))))) +} + +func Xinit_module(tls *TLS, a uintptr, b uint64, c uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v a=%v b=%v c=%v, (%v:)", tls, a, b, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_init_module), int64(a), int64(b), int64(c))))) +} + +func Xdelete_module(tls *TLS, a uintptr, b uint32) (r int32) { + if __ccgo_strace { + trc("tls=%v a=%v b=%v, (%v:)", tls, a, b, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_delete_module), int64(a), int64(b))))) +} + +const BLKBSZGET = 2147488368 +const BLKBSZSET = 1073746545 +const BLKFLSBUF = 4705 +const BLKFRAGET = 4709 +const BLKFRASET = 4708 +const BLKGETSIZE = 4704 +const BLKGETSIZE64 = 2147488370 +const BLKRAGET = 4707 +const BLKRASET = 4706 +const BLKROGET = 4702 +const BLKROSET = 4701 +const BLKRRPART = 4703 +const BLKSECTGET = 4711 +const BLKSECTSET = 4710 +const BLKSSZGET = 4712 +const FIOASYNC = 21586 +const FIOCLEX = 21585 +const FIOGETOWN = 35075 +const FIONBIO = 21537 +const FIONCLEX = 21584 +const FIONREAD = 21531 +const FIOQSIZE = 21600 +const FIOSETOWN = 35073 +const MNT_DETACH = 2 +const MNT_EXPIRE = 4 +const MNT_FORCE = 1 +const MS_ACTIVE = 1073741824 +const MS_BIND = 4096 +const MS_BORN = 536870912 +const MS_DIRSYNC = 128 +const MS_I_VERSION = 8388608 +const MS_KERNMOUNT = 4194304 +const MS_LAZYTIME = 33554432 +const MS_MANDLOCK = 64 +const MS_MGC_MSK = 4294901760 +const MS_MGC_VAL = 3236757504 +const MS_MOVE = 8192 +const MS_NOATIME = 1024 +const MS_NODEV = 4 +const MS_NODIRATIME = 2048 +const MS_NOEXEC = 8 +const MS_NOREMOTELOCK = 134217728 +const MS_NOSEC = 268435456 +const MS_NOSUID = 2 +const MS_NOSYMFOLLOW = 256 +const MS_NOUSER = 2147483648 +const MS_POSIXACL = 65536 +const MS_PRIVATE = 262144 +const MS_RDONLY = 1 +const MS_REC = 16384 +const MS_RELATIME = 2097152 +const MS_REMOUNT = 32 +const MS_RMT_MASK = 41943121 +const MS_SHARED = 1048576 +const MS_SILENT = 32768 +const MS_SLAVE = 524288 +const MS_STRICTATIME = 16777216 +const MS_SYNCHRONOUS = 16 +const MS_UNBINDABLE = 131072 +const N_6PACK = 7 +const N_AX25 = 5 +const N_CAIF = 20 +const N_GIGASET_M101 = 16 +const N_GSM0710 = 21 +const N_HCI = 15 +const N_HDLC = 13 +const N_IRDA = 11 +const N_MASC = 8 +const N_MOUSE = 2 +const N_NCI = 25 +const N_NULL = 27 +const N_PPP = 3 +const N_PPS = 18 +const N_PROFIBUS_FDL = 10 +const N_R3964 = 9 +const N_SLCAN = 17 +const N_SLIP = 1 +const N_SMSBLOCK = 12 +const N_SPEAKUP = 26 +const N_STRIP = 4 +const N_SYNC_PPP = 14 +const N_TI_WL = 22 +const N_TRACEROUTER = 24 +const N_TRACESINK = 23 +const N_TTY = 0 +const N_V253 = 19 +const N_X25 = 6 +const SIOCADDDLCI = 35200 +const SIOCADDMULTI = 35121 +const SIOCADDRT = 35083 +const SIOCATMARK = 35077 +const SIOCDARP = 35155 +const SIOCDELDLCI = 35201 +const SIOCDELMULTI = 35122 +const SIOCDELRT = 35084 +const SIOCDEVPRIVATE = 35312 +const SIOCDIFADDR = 35126 +const SIOCDRARP = 35168 +const SIOCGARP = 35156 +const SIOCGIFADDR = 35093 +const SIOCGIFBR = 35136 +const SIOCGIFBRDADDR = 35097 +const SIOCGIFCONF = 35090 +const SIOCGIFCOUNT = 35128 +const SIOCGIFDSTADDR = 35095 +const SIOCGIFENCAP = 35109 +const SIOCGIFFLAGS = 35091 +const SIOCGIFHWADDR = 35111 +const SIOCGIFINDEX = 35123 +const SIOCGIFMAP = 35184 +const SIOCGIFMEM = 35103 +const SIOCGIFMETRIC = 35101 +const SIOCGIFMTU = 35105 +const SIOCGIFNAME = 35088 +const SIOCGIFNETMASK = 35099 +const SIOCGIFPFLAGS = 35125 +const SIOCGIFSLAVE = 35113 +const SIOCGIFTXQLEN = 35138 +const SIOCGPGRP = 35076 +const SIOCGRARP = 35169 +const SIOCGSTAMP = 35078 +const SIOCGSTAMPNS = 35079 +const SIOCPROTOPRIVATE = 35296 +const SIOCRTMSG = 35085 +const SIOCSARP = 35157 +const SIOCSIFADDR = 35094 +const SIOCSIFBR = 35137 +const SIOCSIFBRDADDR = 35098 +const SIOCSIFDSTADDR = 35096 +const SIOCSIFENCAP = 35110 +const SIOCSIFFLAGS = 35092 +const SIOCSIFHWADDR = 35108 +const SIOCSIFHWBROADCAST = 35127 +const SIOCSIFLINK = 35089 +const SIOCSIFMAP = 35185 +const SIOCSIFMEM = 35104 +const SIOCSIFMETRIC = 35102 +const SIOCSIFMTU = 35106 +const SIOCSIFNAME = 35107 +const SIOCSIFNETMASK = 35100 +const SIOCSIFPFLAGS = 35124 +const SIOCSIFSLAVE = 35120 +const SIOCSIFTXQLEN = 35139 +const SIOCSPGRP = 35074 +const SIOCSRARP = 35170 +const SIOGIFINDEX = 35123 +const TCFLSH = 21515 +const TCGETA = 21509 +const TCGETS = 21505 +const TCGETX = 21554 +const TCSBRK = 21513 +const TCSBRKP = 21541 +const TCSETA = 21510 +const TCSETAF = 21512 +const TCSETAW = 21511 +const TCSETS = 21506 +const TCSETSF = 21508 +const TCSETSW = 21507 +const TCSETX = 21555 +const TCSETXF = 21556 +const TCSETXW = 21557 +const TCXONC = 21514 +const TIOCCBRK = 21544 +const TIOCCONS = 21533 +const TIOCEXCL = 21516 +const TIOCGDEV = 2147767346 +const TIOCGETD = 21540 +const TIOCGEXCL = 2147767360 +const TIOCGICOUNT = 21597 +const TIOCGISO7816 = 2150126658 +const TIOCGLCKTRMIOS = 21590 +const TIOCGPGRP = 21519 +const TIOCGPKT = 2147767352 +const TIOCGPTLCK = 2147767353 +const TIOCGPTN = 2147767344 +const TIOCGPTPEER = 21569 +const TIOCGRS485 = 21550 +const TIOCGSERIAL = 21534 +const TIOCGSID = 21545 +const TIOCGSOFTCAR = 21529 +const TIOCGWINSZ = 21523 +const TIOCINQ = 21531 +const TIOCLINUX = 21532 +const TIOCMBIC = 21527 +const TIOCMBIS = 21526 +const TIOCMGET = 21525 +const TIOCMIWAIT = 21596 +const TIOCMSET = 21528 +const TIOCM_CAR = 64 +const TIOCM_CD = 64 +const TIOCM_CTS = 32 +const TIOCM_DSR = 256 +const TIOCM_DTR = 2 +const TIOCM_LE = 1 +const TIOCM_LOOP = 32768 +const TIOCM_OUT1 = 8192 +const TIOCM_OUT2 = 16384 +const TIOCM_RI = 128 +const TIOCM_RNG = 128 +const TIOCM_RTS = 4 +const TIOCM_SR = 16 +const TIOCM_ST = 8 +const TIOCNOTTY = 21538 +const TIOCNXCL = 21517 +const TIOCOUTQ = 21521 +const TIOCPKT = 21536 +const TIOCPKT_DATA = 0 +const TIOCPKT_DOSTOP = 32 +const TIOCPKT_FLUSHREAD = 1 +const TIOCPKT_FLUSHWRITE = 2 +const TIOCPKT_IOCTL = 64 +const TIOCPKT_NOSTOP = 16 +const TIOCPKT_START = 8 +const TIOCPKT_STOP = 4 +const TIOCSBRK = 21543 +const TIOCSCTTY = 21518 +const TIOCSERCONFIG = 21587 +const TIOCSERGETLSR = 21593 +const TIOCSERGETMULTI = 21594 +const TIOCSERGSTRUCT = 21592 +const TIOCSERGWILD = 21588 +const TIOCSERSETMULTI = 21595 +const TIOCSERSWILD = 21589 +const TIOCSER_TEMT = 1 +const TIOCSETD = 21539 +const TIOCSIG = 1074025526 +const TIOCSISO7816 = 3223868483 +const TIOCSLCKTRMIOS = 21591 +const TIOCSPGRP = 21520 +const TIOCSPTLCK = 1074025521 +const TIOCSRS485 = 21551 +const TIOCSSERIAL = 21535 +const TIOCSSOFTCAR = 21530 +const TIOCSTI = 21522 +const TIOCSWINSZ = 21524 +const TIOCVHANGUP = 21559 +const UMOUNT_NOFOLLOW = 8 +const _IOC_NONE = 0 +const _IOC_READ = 2 +const _IOC_WRITE = 1 + +func Xmount(tls *TLS, special uintptr, dir uintptr, fstype uintptr, flags uint64, data uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v special=%v dir=%v fstype=%v flags=%v data=%v, (%v:)", tls, special, dir, fstype, flags, data, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall5(tls, int64(SYS_mount), int64(special), int64(dir), int64(fstype), int64(flags), int64(data))))) +} + +func Xumount(tls *TLS, special uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v special=%v, (%v:)", tls, special, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_umount2), int64(special), int64(Int32FromInt32(0)))))) +} + +func Xumount2(tls *TLS, special uintptr, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v special=%v flags=%v, (%v:)", tls, special, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_umount2), int64(special), int64(flags))))) +} + +func Xname_to_handle_at(tls *TLS, dirfd int32, pathname uintptr, handle uintptr, mount_id uintptr, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v dirfd=%v pathname=%v handle=%v mount_id=%v flags=%v, (%v:)", tls, dirfd, pathname, handle, mount_id, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall5(tls, int64(SYS_name_to_handle_at), int64(dirfd), int64(pathname), int64(handle), int64(mount_id), int64(flags))))) +} + +func Xopen_by_handle_at(tls *TLS, mount_fd int32, handle uintptr, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v mount_fd=%v handle=%v flags=%v, (%v:)", tls, mount_fd, handle, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_open_by_handle_at), int64(mount_fd), int64(handle), int64(flags))))) +} + +const ADDR_COMPAT_LAYOUT = 2097152 +const ADDR_LIMIT_32BIT = 8388608 +const ADDR_LIMIT_3GB = 134217728 +const ADDR_NO_RANDOMIZE = 262144 +const FDPIC_FUNCPTRS = 524288 +const MMAP_PAGE_ZERO = 1048576 +const PER_BSD = 6 +const PER_HPUX = 16 +const PER_IRIX32 = 67108873 +const PER_IRIX64 = 67108875 +const PER_IRIXN32 = 67108874 +const PER_ISCR4 = 67108869 +const PER_LINUX = 0 +const PER_LINUX32 = 8 +const PER_LINUX32_3GB = 134217736 +const PER_LINUX_32BIT = 8388608 +const PER_LINUX_FDPIC = 524288 +const PER_MASK = 255 +const PER_OSF4 = 15 +const PER_OSR5 = 100663299 +const PER_RISCOS = 12 +const PER_SCOSVR3 = 117440515 +const PER_SOLARIS = 67108877 +const PER_SUNOS = 67108870 +const PER_SVR3 = 83886082 +const PER_SVR4 = 68157441 +const PER_UW7 = 68157454 +const PER_WYSEV386 = 83886084 +const PER_XENIX = 83886087 +const READ_IMPLIES_EXEC = 4194304 +const SHORT_INODE = 16777216 +const STICKY_TIMEOUTS = 67108864 +const UNAME26 = 131072 +const WHOLE_SECONDS = 33554432 + +func Xpersonality(tls *TLS, persona uint64) (r int32) { + if __ccgo_strace { + trc("tls=%v persona=%v, (%v:)", tls, persona, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_personality), int64(persona))))) +} + +func Xpivot_root(tls *TLS, new1 uintptr, old uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v new1=%v old=%v, (%v:)", tls, new1, old, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_pivot_root), int64(new1), int64(old))))) +} + +const PR_CAPBSET_DROP = 24 +const PR_CAPBSET_READ = 23 +const PR_CAP_AMBIENT = 47 +const PR_CAP_AMBIENT_CLEAR_ALL = 4 +const PR_CAP_AMBIENT_IS_SET = 1 +const PR_CAP_AMBIENT_LOWER = 3 +const PR_CAP_AMBIENT_RAISE = 2 +const PR_ENDIAN_BIG = 0 +const PR_ENDIAN_LITTLE = 1 +const PR_ENDIAN_PPC_LITTLE = 2 +const PR_FPEMU_NOPRINT = 1 +const PR_FPEMU_SIGFPE = 2 +const PR_FP_EXC_ASYNC = 2 +const PR_FP_EXC_DISABLED = 0 +const PR_FP_EXC_DIV = 65536 +const PR_FP_EXC_INV = 1048576 +const PR_FP_EXC_NONRECOV = 1 +const PR_FP_EXC_OVF = 131072 +const PR_FP_EXC_PRECISE = 3 +const PR_FP_EXC_RES = 524288 +const PR_FP_EXC_SW_ENABLE = 128 +const PR_FP_EXC_UND = 262144 +const PR_FP_MODE_FR = 1 +const PR_FP_MODE_FRE = 2 +const PR_GET_CHILD_SUBREAPER = 37 +const PR_GET_DUMPABLE = 3 +const PR_GET_ENDIAN = 19 +const PR_GET_FPEMU = 9 +const PR_GET_FPEXC = 11 +const PR_GET_FP_MODE = 46 +const PR_GET_IO_FLUSHER = 58 +const PR_GET_KEEPCAPS = 7 +const PR_GET_NAME = 16 +const PR_GET_NO_NEW_PRIVS = 39 +const PR_GET_PDEATHSIG = 2 +const PR_GET_SECCOMP = 21 +const PR_GET_SECUREBITS = 27 +const PR_GET_SPECULATION_CTRL = 52 +const PR_GET_TAGGED_ADDR_CTRL = 56 +const PR_GET_THP_DISABLE = 42 +const PR_GET_TID_ADDRESS = 40 +const PR_GET_TIMERSLACK = 30 +const PR_GET_TIMING = 13 +const PR_GET_TSC = 25 +const PR_GET_UNALIGN = 5 +const PR_MCE_KILL = 33 +const PR_MCE_KILL_CLEAR = 0 +const PR_MCE_KILL_DEFAULT = 2 +const PR_MCE_KILL_EARLY = 1 +const PR_MCE_KILL_GET = 34 +const PR_MCE_KILL_LATE = 0 +const PR_MCE_KILL_SET = 1 +const PR_MPX_DISABLE_MANAGEMENT = 44 +const PR_MPX_ENABLE_MANAGEMENT = 43 +const PR_MTE_TAG_MASK = 524280 +const PR_MTE_TAG_SHIFT = 3 +const PR_MTE_TCF_ASYNC = 4 +const PR_MTE_TCF_MASK = 6 +const PR_MTE_TCF_NONE = 0 +const PR_MTE_TCF_SHIFT = 1 +const PR_MTE_TCF_SYNC = 2 +const PR_PAC_APDAKEY = 4 +const PR_PAC_APDBKEY = 8 +const PR_PAC_APGAKEY = 16 +const PR_PAC_APIAKEY = 1 +const PR_PAC_APIBKEY = 2 +const PR_PAC_GET_ENABLED_KEYS = 61 +const PR_PAC_RESET_KEYS = 54 +const PR_PAC_SET_ENABLED_KEYS = 60 +const PR_SET_CHILD_SUBREAPER = 36 +const PR_SET_DUMPABLE = 4 +const PR_SET_ENDIAN = 20 +const PR_SET_FPEMU = 10 +const PR_SET_FPEXC = 12 +const PR_SET_FP_MODE = 45 +const PR_SET_IO_FLUSHER = 57 +const PR_SET_KEEPCAPS = 8 +const PR_SET_MM = 35 +const PR_SET_MM_ARG_END = 9 +const PR_SET_MM_ARG_START = 8 +const PR_SET_MM_AUXV = 12 +const PR_SET_MM_BRK = 7 +const PR_SET_MM_END_CODE = 2 +const PR_SET_MM_END_DATA = 4 +const PR_SET_MM_ENV_END = 11 +const PR_SET_MM_ENV_START = 10 +const PR_SET_MM_EXE_FILE = 13 +const PR_SET_MM_MAP = 14 +const PR_SET_MM_MAP_SIZE = 15 +const PR_SET_MM_START_BRK = 6 +const PR_SET_MM_START_CODE = 1 +const PR_SET_MM_START_DATA = 3 +const PR_SET_MM_START_STACK = 5 +const PR_SET_NAME = 15 +const PR_SET_NO_NEW_PRIVS = 38 +const PR_SET_PDEATHSIG = 1 +const PR_SET_PTRACER = 1499557217 +const PR_SET_PTRACER_ANY = 18446744073709551615 +const PR_SET_SECCOMP = 22 +const PR_SET_SECUREBITS = 28 +const PR_SET_SPECULATION_CTRL = 53 +const PR_SET_SYSCALL_USER_DISPATCH = 59 +const PR_SET_TAGGED_ADDR_CTRL = 55 +const PR_SET_THP_DISABLE = 41 +const PR_SET_TIMERSLACK = 29 +const PR_SET_TIMING = 14 +const PR_SET_TSC = 26 +const PR_SET_UNALIGN = 6 +const PR_SPEC_DISABLE = 4 +const PR_SPEC_DISABLE_NOEXEC = 16 +const PR_SPEC_ENABLE = 2 +const PR_SPEC_FORCE_DISABLE = 8 +const PR_SPEC_INDIRECT_BRANCH = 1 +const PR_SPEC_NOT_AFFECTED = 0 +const PR_SPEC_PRCTL = 1 +const PR_SPEC_STORE_BYPASS = 0 +const PR_SVE_GET_VL = 51 +const PR_SVE_SET_VL = 50 +const PR_SVE_SET_VL_ONEXEC = 262144 +const PR_SVE_VL_INHERIT = 131072 +const PR_SVE_VL_LEN_MASK = 65535 +const PR_SYS_DISPATCH_OFF = 0 +const PR_SYS_DISPATCH_ON = 1 +const PR_TAGGED_ADDR_ENABLE = 1 +const PR_TASK_PERF_EVENTS_DISABLE = 31 +const PR_TASK_PERF_EVENTS_ENABLE = 32 +const PR_TIMING_STATISTICAL = 0 +const PR_TIMING_TIMESTAMP = 1 +const PR_TSC_ENABLE = 1 +const PR_TSC_SIGSEGV = 2 +const PR_UNALIGN_NOPRINT = 1 +const PR_UNALIGN_SIGBUS = 2 +const SYSCALL_DISPATCH_FILTER_ALLOW = 0 +const SYSCALL_DISPATCH_FILTER_BLOCK = 1 + +type Tprctl_mm_map = struct { + Fstart_code Tuint64_t + Fend_code Tuint64_t + Fstart_data Tuint64_t + Fend_data Tuint64_t + Fstart_brk Tuint64_t + Fbrk Tuint64_t + Fstart_stack Tuint64_t + Farg_start Tuint64_t + Farg_end Tuint64_t + Fenv_start Tuint64_t + Fenv_end Tuint64_t + Fauxv uintptr + Fauxv_size Tuint32_t + Fexe_fd Tuint32_t +} + +func Xprctl(tls *TLS, op int32, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v op=%v va=%v, (%v:)", tls, op, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var i int32 + var x [4]uint64 + _, _, _ = ap, i, x + ap = va + i = 0 + for { + if !(i < int32(4)) { + break + } + x[i] = VaUint64(&ap) + goto _1 + _1: + ; + i++ + } + _ = ap + return int32(X__syscall_ret(tls, uint64(X__syscall5(tls, int64(SYS_prctl), int64(op), int64(x[0]), int64(x[int32(1)]), int64(x[int32(2)]), int64(x[int32(3)]))))) +} + +const RWF_APPEND = 16 +const RWF_DSYNC = 2 +const RWF_HIPRI = 1 +const RWF_NOWAIT = 8 +const RWF_SYNC = 4 +const UIO_MAXIOV = 1024 + +func Xpreadv2(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t, flags int32) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v iov=%v count=%v ofs=%v flags=%v, (%v:)", tls, fd, iov, count, ofs, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + if !(flags != 0) { + if ofs == int64(-int32(1)) { + return Xreadv(tls, fd, iov, count) + } + return X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_preadv), int64(fd), int64(iov), int64(count), ofs, ofs>>Int32FromInt32(32), 0))) + } + return X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_preadv2), int64(fd), int64(iov), int64(count), ofs, ofs>>Int32FromInt32(32), int64(flags)))) +} + +func Xprlimit(tls *TLS, pid Tpid_t, resource int32, new_limit uintptr, old_limit uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v pid=%v resource=%v new_limit=%v old_limit=%v, (%v:)", tls, pid, resource, new_limit, old_limit, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var r int32 + var _ /* tmp at bp+0 */ Trlimit + _ = r + if new_limit != 0 && Bool(^Uint64FromUint64(0) != ^Uint64FromUint64(0)) { + *(*Trlimit)(unsafe.Pointer(bp)) = *(*Trlimit)(unsafe.Pointer(new_limit)) + if (*(*Trlimit)(unsafe.Pointer(bp))).Frlim_cur >= ^Uint64FromUint64(0) { + (*(*Trlimit)(unsafe.Pointer(bp))).Frlim_cur = ^Uint64FromUint64(0) + } + if (*(*Trlimit)(unsafe.Pointer(bp))).Frlim_max >= ^Uint64FromUint64(0) { + (*(*Trlimit)(unsafe.Pointer(bp))).Frlim_max = ^Uint64FromUint64(0) + } + new_limit = bp + } + r = int32(X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_prlimit64), int64(pid), int64(resource), int64(new_limit), int64(old_limit))))) + if !(r != 0) && old_limit != 0 && Bool(^Uint64FromUint64(0) != ^Uint64FromUint64(0)) { + if (*Trlimit)(unsafe.Pointer(old_limit)).Frlim_cur >= ^Uint64FromUint64(0) { + (*Trlimit)(unsafe.Pointer(old_limit)).Frlim_cur = ^Uint64FromUint64(0) + } + if (*Trlimit)(unsafe.Pointer(old_limit)).Frlim_max >= ^Uint64FromUint64(0) { + (*Trlimit)(unsafe.Pointer(old_limit)).Frlim_max = ^Uint64FromUint64(0) + } + } + return r +} + +func Xprocess_vm_writev(tls *TLS, pid Tpid_t, lvec uintptr, liovcnt uint64, rvec uintptr, riovcnt uint64, flags uint64) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v pid=%v lvec=%v liovcnt=%v rvec=%v riovcnt=%v flags=%v, (%v:)", tls, pid, lvec, liovcnt, rvec, riovcnt, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(X__syscall6(tls, int64(SYS_process_vm_writev), int64(pid), int64(lvec), int64(liovcnt), int64(rvec), int64(riovcnt), int64(flags)))) +} + +func Xprocess_vm_readv(tls *TLS, pid Tpid_t, lvec uintptr, liovcnt uint64, rvec uintptr, riovcnt uint64, flags uint64) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v pid=%v lvec=%v liovcnt=%v rvec=%v riovcnt=%v flags=%v, (%v:)", tls, pid, lvec, liovcnt, rvec, riovcnt, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(X__syscall6(tls, int64(SYS_process_vm_readv), int64(pid), int64(lvec), int64(liovcnt), int64(rvec), int64(riovcnt), int64(flags)))) +} + +const PTRACE_ATTACH = 16 +const PTRACE_CONT = 7 +const PTRACE_DETACH = 17 +const PTRACE_EVENT_CLONE = 3 +const PTRACE_EVENT_EXEC = 4 +const PTRACE_EVENT_EXIT = 6 +const PTRACE_EVENT_FORK = 1 +const PTRACE_EVENT_SECCOMP = 7 +const PTRACE_EVENT_STOP = 128 +const PTRACE_EVENT_VFORK = 2 +const PTRACE_EVENT_VFORK_DONE = 5 +const PTRACE_GETEVENTMSG = 16897 +const PTRACE_GETFPREGS = 14 +const PTRACE_GETFPXREGS = 18 +const PTRACE_GETREGS = 12 +const PTRACE_GETREGSET = 16900 +const PTRACE_GETSIGINFO = 16898 +const PTRACE_GETSIGMASK = 16906 +const PTRACE_GET_RSEQ_CONFIGURATION = 16911 +const PTRACE_GET_SYSCALL_INFO = 16910 +const PTRACE_INTERRUPT = 16903 +const PTRACE_KILL = 8 +const PTRACE_LISTEN = 16904 +const PTRACE_O_EXITKILL = 1048576 +const PTRACE_O_MASK = 3145983 +const PTRACE_O_SUSPEND_SECCOMP = 2097152 +const PTRACE_O_TRACECLONE = 8 +const PTRACE_O_TRACEEXEC = 16 +const PTRACE_O_TRACEEXIT = 64 +const PTRACE_O_TRACEFORK = 2 +const PTRACE_O_TRACESECCOMP = 128 +const PTRACE_O_TRACESYSGOOD = 1 +const PTRACE_O_TRACEVFORK = 4 +const PTRACE_O_TRACEVFORKDONE = 32 +const PTRACE_PEEKDATA = 2 +const PTRACE_PEEKSIGINFO = 16905 +const PTRACE_PEEKSIGINFO_SHARED = 1 +const PTRACE_PEEKTEXT = 1 +const PTRACE_PEEKUSER = 3 +const PTRACE_POKEDATA = 5 +const PTRACE_POKETEXT = 4 +const PTRACE_POKEUSER = 6 +const PTRACE_SECCOMP_GET_FILTER = 16908 +const PTRACE_SECCOMP_GET_METADATA = 16909 +const PTRACE_SEIZE = 16902 +const PTRACE_SETFPREGS = 15 +const PTRACE_SETFPXREGS = 19 +const PTRACE_SETOPTIONS = 16896 +const PTRACE_SETREGS = 13 +const PTRACE_SETREGSET = 16901 +const PTRACE_SETSIGINFO = 16899 +const PTRACE_SETSIGMASK = 16907 +const PTRACE_SINGLESTEP = 9 +const PTRACE_SYSCALL = 24 +const PTRACE_SYSCALL_INFO_ENTRY = 1 +const PTRACE_SYSCALL_INFO_EXIT = 2 +const PTRACE_SYSCALL_INFO_NONE = 0 +const PTRACE_SYSCALL_INFO_SECCOMP = 3 +const PTRACE_TRACEME = 0 +const PT_ATTACH = 16 +const PT_CONTINUE = 7 +const PT_DETACH = 17 +const PT_GETEVENTMSG = 16897 +const PT_GETFPREGS = 14 +const PT_GETFPXREGS = 18 +const PT_GETREGS = 12 +const PT_GETSIGINFO = 16898 +const PT_KILL = 8 +const PT_READ_D = 2 +const PT_READ_I = 1 +const PT_READ_U = 3 +const PT_SETFPREGS = 15 +const PT_SETFPXREGS = 19 +const PT_SETOPTIONS = 16896 +const PT_SETREGS = 13 +const PT_SETSIGINFO = 16899 +const PT_STEP = 9 +const PT_SYSCALL = 24 +const PT_TRACE_ME = 0 +const PT_WRITE_D = 5 +const PT_WRITE_I = 4 +const PT_WRITE_U = 6 + +type t__ptrace_peeksiginfo_args = struct { + Foff Tuint64_t + Fflags Tuint32_t + Fnr Tint32_t +} + +type t__ptrace_seccomp_metadata = struct { + Ffilter_off Tuint64_t + Fflags Tuint64_t +} + +type t__ptrace_syscall_info = struct { + Fop Tuint8_t + F__pad [3]Tuint8_t + Farch Tuint32_t + Finstruction_pointer Tuint64_t + Fstack_pointer Tuint64_t + F__ccgo5_24 struct { + Fexit [0]struct { + Frval Tint64_t + Fis_error Tuint8_t + } + Fseccomp [0]struct { + Fnr Tuint64_t + Fargs [6]Tuint64_t + Fret_data Tuint32_t + } + Fentry struct { + Fnr Tuint64_t + Fargs [6]Tuint64_t + } + F__ccgo_pad3 [8]byte + } +} + +type t__ptrace_rseq_configuration = struct { + Frseq_abi_pointer Tuint64_t + Frseq_abi_size Tuint32_t + Fsignature Tuint32_t + Fflags Tuint32_t + Fpad Tuint32_t +} + +func Xptrace(tls *TLS, req int32, va uintptr) (r int64) { + if __ccgo_strace { + trc("tls=%v req=%v va=%v, (%v:)", tls, req, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var addr, addr2, data uintptr + var ap Tva_list + var pid Tpid_t + var ret int64 + var _ /* result at bp+0 */ int64 + _, _, _, _, _, _ = addr, addr2, ap, data, pid, ret + addr2 = uintptr(0) + ap = va + pid = VaInt32(&ap) + addr = VaUintptr(&ap) + data = VaUintptr(&ap) + /* PTRACE_{READ,WRITE}{DATA,TEXT} (16...19) are specific to SPARC. */ + _ = ap + if uint32(req)-uint32(1) < uint32(3) { + data = bp + } + ret = X__syscall_ret(tls, uint64(X__syscall5(tls, int64(SYS_ptrace), int64(req), int64(pid), int64(addr), int64(data), int64(addr2)))) + if ret < 0 || uint32(req)-uint32(1) >= uint32(3) { + return ret + } + return *(*int64)(unsafe.Pointer(bp)) +} + +func Xpwritev2(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t, flags int32) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v iov=%v count=%v ofs=%v flags=%v, (%v:)", tls, fd, iov, count, ofs, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + if !(flags != 0) { + if ofs == int64(-int32(1)) { + return Xwritev(tls, fd, iov, count) + } + return X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_pwritev), int64(fd), int64(iov), int64(count), ofs, ofs>>Int32FromInt32(32), 0))) + } + return X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_pwritev2), int64(fd), int64(iov), int64(count), ofs, ofs>>Int32FromInt32(32), int64(flags)))) +} + +const GRPQUOTA = 1 +const IIF_ALL = 7 +const IIF_BGRACE = 1 +const IIF_FLAGS = 4 +const IIF_IGRACE = 2 +const MAXQUOTAS = 2 +const MAX_DQ_TIME = 604800 +const MAX_IQ_TIME = 604800 +const NR_DQHASH = 43 +const NR_DQUOTS = 256 +const QFMT_OCFS2 = 3 +const QFMT_VFS_OLD = 1 +const QFMT_VFS_V0 = 2 +const QFMT_VFS_V1 = 4 +const QIF_ALL = 63 +const QIF_BLIMITS = 1 +const QIF_BTIME = 16 +const QIF_ILIMITS = 4 +const QIF_INODES = 8 +const QIF_ITIME = 32 +const QIF_LIMITS = 5 +const QIF_SPACE = 2 +const QIF_TIMES = 48 +const QIF_USAGE = 10 +const QUOTAFILENAME = "quota" +const QUOTAGROUP = "staff" +const Q_GETFMT = 8388612 +const Q_GETINFO = 8388613 +const Q_GETQUOTA = 8388615 +const Q_QUOTAOFF = 8388611 +const Q_QUOTAON = 8388610 +const Q_SETINFO = 8388614 +const Q_SETQUOTA = 8388616 +const Q_SYNC = 8388609 +const SUBCMDMASK = 255 +const SUBCMDSHIFT = 8 +const USRQUOTA = 0 +const _LINUX_QUOTA_VERSION = 2 + +type Tdqblk = struct { + Fdqb_bhardlimit Tuint64_t + Fdqb_bsoftlimit Tuint64_t + Fdqb_curspace Tuint64_t + Fdqb_ihardlimit Tuint64_t + Fdqb_isoftlimit Tuint64_t + Fdqb_curinodes Tuint64_t + Fdqb_btime Tuint64_t + Fdqb_itime Tuint64_t + Fdqb_valid Tuint32_t +} + +type Tdqinfo = struct { + Fdqi_bgrace Tuint64_t + Fdqi_igrace Tuint64_t + Fdqi_flags Tuint32_t + Fdqi_valid Tuint32_t +} + +func Xquotactl(tls *TLS, cmd int32, special uintptr, id int32, addr uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v cmd=%v special=%v id=%v addr=%v, (%v:)", tls, cmd, special, id, addr, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_quotactl), int64(cmd), int64(special), int64(id), int64(addr))))) +} + +func Xreadahead(tls *TLS, fd int32, pos Toff_t, len1 Tsize_t) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v pos=%v len1=%v, (%v:)", tls, fd, pos, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_readahead), int64(fd), pos, int64(len1)))) +} + +const RB_AUTOBOOT = 19088743 +const RB_DISABLE_CAD = 0 +const RB_ENABLE_CAD = 2309737967 +const RB_HALT_SYSTEM = 3454992675 +const RB_KEXEC = 1163412803 +const RB_POWER_OFF = 1126301404 +const RB_SW_SUSPEND = 3489725666 + +func Xreboot(tls *TLS, type1 int32) (r int32) { + if __ccgo_strace { + trc("tls=%v type1=%v, (%v:)", tls, type1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_reboot), int64(Uint32FromUint32(0xfee1dead)), int64(Int32FromInt32(672274793)), int64(type1))))) +} + +func Xremap_file_pages(tls *TLS, addr uintptr, size Tsize_t, prot int32, pgoff Tsize_t, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v addr=%v size=%v prot=%v pgoff=%v flags=%v, (%v:)", tls, addr, size, prot, pgoff, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall5(tls, int64(SYS_remap_file_pages), int64(addr), int64(size), int64(prot), int64(pgoff), int64(flags))))) +} + +func Xsbrk(tls *TLS, inc Tintptr_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v inc=%v, (%v:)", tls, inc, origin(2)) + defer func() { trc("-> %v", r) }() + } + if inc != 0 { + return uintptr(X__syscall_ret(tls, uint64(-Int32FromInt32(ENOMEM)))) + } + return uintptr(X__syscall1(tls, int64(SYS_brk), int64(Int32FromInt32(0)))) +} + +func Xsendfile(tls *TLS, out_fd int32, in_fd int32, ofs uintptr, count Tsize_t) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v out_fd=%v in_fd=%v ofs=%v count=%v, (%v:)", tls, out_fd, in_fd, ofs, count, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_sendfile), int64(out_fd), int64(in_fd), int64(ofs), int64(count)))) +} + +func Xsetfsgid(tls *TLS, gid Tgid_t) (r int32) { + if __ccgo_strace { + trc("tls=%v gid=%v, (%v:)", tls, gid, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_setfsgid), int64(gid))))) +} + +func Xsetfsuid(tls *TLS, uid Tuid_t) (r int32) { + if __ccgo_strace { + trc("tls=%v uid=%v, (%v:)", tls, uid, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_setfsuid), int64(uid))))) +} + +func Xsethostname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v name=%v len1=%v, (%v:)", tls, name, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_sethostname), int64(name), int64(len1))))) +} + +const CLONE_CHILD_CLEARTID = 2097152 +const CLONE_CHILD_SETTID = 16777216 +const CLONE_DETACHED = 4194304 +const CLONE_FILES = 1024 +const CLONE_FS = 512 +const CLONE_IO = 2147483648 +const CLONE_NEWCGROUP = 33554432 +const CLONE_NEWIPC = 134217728 +const CLONE_NEWNET = 1073741824 +const CLONE_NEWNS = 131072 +const CLONE_NEWPID = 536870912 +const CLONE_NEWTIME = 128 +const CLONE_NEWUSER = 268435456 +const CLONE_NEWUTS = 67108864 +const CLONE_PARENT = 32768 +const CLONE_PARENT_SETTID = 1048576 +const CLONE_PIDFD = 4096 +const CLONE_PTRACE = 8192 +const CLONE_SETTLS = 524288 +const CLONE_SIGHAND = 2048 +const CLONE_SYSVSEM = 262144 +const CLONE_THREAD = 65536 +const CLONE_UNTRACED = 8388608 +const CLONE_VFORK = 16384 +const CLONE_VM = 256 +const CPU_SETSIZE = 1024 +const CSIGNAL = 255 + +type Tcpu_set_t = struct { + F__bits [16]uint64 +} + +func Xsetns(tls *TLS, fd int32, nstype int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v nstype=%v, (%v:)", tls, fd, nstype, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_setns), int64(fd), int64(nstype))))) +} + +const __tm_gmtoff = 0 +const __tm_zone = 0 + +type Ttm1 = struct { + Ftm_sec int32 + Ftm_min int32 + Ftm_hour int32 + Ftm_mday int32 + Ftm_mon int32 + Ftm_year int32 + Ftm_wday int32 + Ftm_yday int32 + Ftm_isdst int32 + Ftm_gmtoff int64 + Ftm_zone uintptr +} + +func Xsettimeofday(tls *TLS, tv uintptr, tz uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v tv=%v tz=%v, (%v:)", tls, tv, tz, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + if !(tv != 0) { + return 0 + } + if uint64((*Ttimeval)(unsafe.Pointer(tv)).Ftv_usec) >= uint64(1000000) { + return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EINVAL)))) + } + *(*Ttimespec)(unsafe.Pointer(bp)) = Ttimespec{ + Ftv_sec: (*Ttimeval)(unsafe.Pointer(tv)).Ftv_sec, + Ftv_nsec: (*Ttimeval)(unsafe.Pointer(tv)).Ftv_usec * int64(1000), + } + return Xclock_settime(tls, CLOCK_REALTIME, bp) +} + +const SFD_CLOEXEC = 524288 +const SFD_NONBLOCK = 2048 + +type Tsignalfd_siginfo = struct { + Fssi_signo Tuint32_t + Fssi_errno Tint32_t + Fssi_code Tint32_t + Fssi_pid Tuint32_t + Fssi_uid Tuint32_t + Fssi_fd Tint32_t + Fssi_tid Tuint32_t + Fssi_band Tuint32_t + Fssi_overrun Tuint32_t + Fssi_trapno Tuint32_t + Fssi_status Tint32_t + Fssi_int Tint32_t + Fssi_ptr Tuint64_t + Fssi_utime Tuint64_t + Fssi_stime Tuint64_t + Fssi_addr Tuint64_t + Fssi_addr_lsb Tuint16_t + F__pad2 Tuint16_t + Fssi_syscall Tint32_t + Fssi_call_addr Tuint64_t + Fssi_arch Tuint32_t + F__pad [28]Tuint8_t +} + +func Xsignalfd(tls *TLS, fd int32, sigs uintptr, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v sigs=%v flags=%v, (%v:)", tls, fd, sigs, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ret int32 + _ = ret + ret = int32(X__syscall4(tls, int64(SYS_signalfd4), int64(fd), int64(sigs), int64(Int32FromInt32(_NSIG)/Int32FromInt32(8)), int64(flags))) + return int32(X__syscall_ret(tls, uint64(ret))) +} + +func Xsplice(tls *TLS, fd_in int32, off_in uintptr, fd_out int32, off_out uintptr, len1 Tsize_t, flags uint32) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd_in=%v off_in=%v fd_out=%v off_out=%v len1=%v flags=%v, (%v:)", tls, fd_in, off_in, fd_out, off_out, len1, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(X__syscall6(tls, int64(SYS_splice), int64(fd_in), int64(off_in), int64(fd_out), int64(off_out), int64(len1), int64(flags)))) +} + +func Xstatx(tls *TLS, dirfd int32, path uintptr, flags int32, mask uint32, stx uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v dirfd=%v path=%v flags=%v mask=%v stx=%v, (%v:)", tls, dirfd, path, flags, mask, stx, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(128) + defer tls.Free(128) + var ret int32 + var _ /* st at bp+0 */ Tstat + _ = ret + ret = int32(X__syscall5(tls, int64(SYS_statx), int64(dirfd), int64(path), int64(flags), int64(mask), int64(stx))) + if ret != -int32(ENOSYS) { + return int32(X__syscall_ret(tls, uint64(ret))) + } + ret = Xfstatat(tls, dirfd, path, bp, flags) + if ret != 0 { + return ret + } + (*Tstatx)(unsafe.Pointer(stx)).Fstx_dev_major = uint32((*(*Tstat)(unsafe.Pointer(bp))).Fst_dev>>Int32FromInt32(31)>>Int32FromInt32(1)&Uint64FromUint32(0xfffff000) | (*(*Tstat)(unsafe.Pointer(bp))).Fst_dev>>Int32FromInt32(8)&Uint64FromInt32(0x00000fff)) + (*Tstatx)(unsafe.Pointer(stx)).Fstx_dev_minor = uint32((*(*Tstat)(unsafe.Pointer(bp))).Fst_dev>>Int32FromInt32(12)&Uint64FromUint32(0xffffff00) | (*(*Tstat)(unsafe.Pointer(bp))).Fst_dev&Uint64FromInt32(0x000000ff)) + (*Tstatx)(unsafe.Pointer(stx)).Fstx_ino = (*(*Tstat)(unsafe.Pointer(bp))).Fst_ino + (*Tstatx)(unsafe.Pointer(stx)).Fstx_mode = uint16((*(*Tstat)(unsafe.Pointer(bp))).Fst_mode) + (*Tstatx)(unsafe.Pointer(stx)).Fstx_nlink = (*(*Tstat)(unsafe.Pointer(bp))).Fst_nlink + (*Tstatx)(unsafe.Pointer(stx)).Fstx_uid = (*(*Tstat)(unsafe.Pointer(bp))).Fst_uid + (*Tstatx)(unsafe.Pointer(stx)).Fstx_gid = (*(*Tstat)(unsafe.Pointer(bp))).Fst_gid + (*Tstatx)(unsafe.Pointer(stx)).Fstx_size = uint64((*(*Tstat)(unsafe.Pointer(bp))).Fst_size) + (*Tstatx)(unsafe.Pointer(stx)).Fstx_blksize = uint32((*(*Tstat)(unsafe.Pointer(bp))).Fst_blksize) + (*Tstatx)(unsafe.Pointer(stx)).Fstx_blocks = uint64((*(*Tstat)(unsafe.Pointer(bp))).Fst_blocks) + (*Tstatx)(unsafe.Pointer(stx)).Fstx_atime.Ftv_sec = (*(*Tstat)(unsafe.Pointer(bp))).Fst_atim.Ftv_sec + (*Tstatx)(unsafe.Pointer(stx)).Fstx_atime.Ftv_nsec = uint32((*(*Tstat)(unsafe.Pointer(bp))).Fst_atim.Ftv_nsec) + (*Tstatx)(unsafe.Pointer(stx)).Fstx_mtime.Ftv_sec = (*(*Tstat)(unsafe.Pointer(bp))).Fst_mtim.Ftv_sec + (*Tstatx)(unsafe.Pointer(stx)).Fstx_mtime.Ftv_nsec = uint32((*(*Tstat)(unsafe.Pointer(bp))).Fst_mtim.Ftv_nsec) + (*Tstatx)(unsafe.Pointer(stx)).Fstx_ctime.Ftv_sec = (*(*Tstat)(unsafe.Pointer(bp))).Fst_ctim.Ftv_sec + (*Tstatx)(unsafe.Pointer(stx)).Fstx_ctime.Ftv_nsec = uint32((*(*Tstat)(unsafe.Pointer(bp))).Fst_ctim.Ftv_nsec) + (*Tstatx)(unsafe.Pointer(stx)).Fstx_btime = Tstatx_timestamp{} + (*Tstatx)(unsafe.Pointer(stx)).Fstx_mask = uint32(0x7ff) + return 0 +} + +func Xstime(tls *TLS, t uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v t=%v, (%v:)", tls, t, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* tv at bp+0 */ Ttimeval + *(*Ttimeval)(unsafe.Pointer(bp)) = Ttimeval{ + Ftv_sec: *(*Ttime_t)(unsafe.Pointer(t)), + } + return Xsettimeofday(tls, bp, UintptrFromInt32(0)) +} + +const SWAP_FLAG_DISCARD = 65536 +const SWAP_FLAG_PREFER = 32768 +const SWAP_FLAG_PRIO_MASK = 32767 +const SWAP_FLAG_PRIO_SHIFT = 0 + +func Xswapon(tls *TLS, path uintptr, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v flags=%v, (%v:)", tls, path, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_swapon), int64(path), int64(flags))))) +} + +func Xswapoff(tls *TLS, path uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v, (%v:)", tls, path, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_swapoff), int64(path))))) +} + +func Xsync_file_range(tls *TLS, fd int32, pos Toff_t, len1 Toff_t, flags uint32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v pos=%v len1=%v flags=%v, (%v:)", tls, fd, pos, len1, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_sync_file_range), int64(fd), pos, len1, int64(flags))))) +} + +func Xsyncfs(tls *TLS, fd int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_syncfs), int64(fd))))) +} + +func X__lsysinfo(tls *TLS, info uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v info=%v, (%v:)", tls, info, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_sysinfo), int64(info))))) +} + +func Xsysinfo(tls *TLS, info uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v info=%v, (%v:)", tls, info, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__lsysinfo(tls, info) +} + +func Xtee(tls *TLS, src int32, dest int32, len1 Tsize_t, flags uint32) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v src=%v dest=%v len1=%v flags=%v, (%v:)", tls, src, dest, len1, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_tee), int64(src), int64(dest), int64(len1), int64(flags)))) +} + +const TFD_CLOEXEC = 524288 +const TFD_NONBLOCK = 2048 +const TFD_TIMER_ABSTIME = 1 +const TFD_TIMER_CANCEL_ON_SET = 2 + +func Xtimerfd_create(tls *TLS, clockid int32, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v clockid=%v flags=%v, (%v:)", tls, clockid, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_timerfd_create), int64(clockid), int64(flags))))) +} + +func Xtimerfd_settime(tls *TLS, fd int32, flags int32, new1 uintptr, old uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v flags=%v new1=%v old=%v, (%v:)", tls, fd, flags, new1, old, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_timerfd_settime), int64(fd), int64(flags), int64(new1), int64(old))))) +} + +func Xtimerfd_gettime(tls *TLS, fd int32, cur uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v cur=%v, (%v:)", tls, fd, cur, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_timerfd_gettime), int64(fd), int64(cur))))) +} + +func Xunshare(tls *TLS, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v flags=%v, (%v:)", tls, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_unshare), int64(flags))))) +} + +func Xutimes(tls *TLS, path uintptr, times uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v times=%v, (%v:)", tls, path, times, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__futimesat(tls, -int32(100), path, times) +} + +func Xvhangup(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall0(tls, int64(SYS_vhangup))))) +} + +func Xvmsplice(tls *TLS, fd int32, iov uintptr, cnt Tsize_t, flags uint32) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v iov=%v cnt=%v flags=%v, (%v:)", tls, fd, iov, cnt, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_vmsplice), int64(fd), int64(iov), int64(cnt), int64(flags)))) +} + +const ESR_MAGIC = 1163088385 +const EXTRA_MAGIC = 1163416577 +const FPSIMD_MAGIC = 1179680769 +const NSIG = 65 +const SA_NOMASK = 1073741824 +const SA_ONESHOT = 2147483648 +const SVE_MAGIC = 1398162689 +const SVE_NUM_PREGS = 16 +const SVE_NUM_ZREGS = 32 +const SVE_SIG_REGS_OFFSET = 0 +const SVE_SIG_ZREGS_OFFSET = 0 +const SVE_VL_MAX = 8192 +const SVE_VL_MIN = 16 +const SVE_VQ_BYTES = 16 +const SVE_VQ_MAX = 512 +const SVE_VQ_MIN = 1 +const SYS_SECCOMP = 1 +const SYS_USER_DISPATCH = 2 +const __ucontext = 0 + +type Tgreg_t = uint64 + +type Tgregset_t = [34]uint64 + +type Tmcontext_t1 = struct { + Ffault_address uint64 + Fregs [31]uint64 + Fsp uint64 + Fpc uint64 + Fpstate uint64 + F__reserved [256]float64 +} + +type Tsigcontext = Tmcontext_t1 + +type T_aarch64_ctx = struct { + Fmagic uint32 + Fsize uint32 +} + +type Tfpsimd_context = int32 + +type Tesr_context = struct { + Fhead T_aarch64_ctx + Fesr uint64 +} + +type Textra_context = struct { + Fhead T_aarch64_ctx + Fdatap uint64 + Fsize uint32 + F__reserved [3]uint32 +} + +type Tsve_context = struct { + Fhead T_aarch64_ctx + Fvl uint16 + F__reserved [3]uint16 +} + +type Tucontext_t1 = struct { + Fuc_flags uint64 + Fuc_link uintptr + Fuc_stack Tstack_t + Fuc_sigmask Tsigset_t + Fuc_mcontext Tmcontext_t1 +} + +type Tucontext = Tucontext_t1 + +type Tsig_t = uintptr + +type Tsighandler_t = uintptr + +func Xwait3(tls *TLS, status uintptr, options int32, usage uintptr) (r Tpid_t) { + if __ccgo_strace { + trc("tls=%v status=%v options=%v usage=%v, (%v:)", tls, status, options, usage, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xwait4(tls, -int32(1), status, options, usage) +} + +func Xwait4(tls *TLS, pid Tpid_t, status uintptr, options int32, ru uintptr) (r1 Tpid_t) { + if __ccgo_strace { + trc("tls=%v pid=%v status=%v options=%v ru=%v, (%v:)", tls, pid, status, options, ru, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var dest, v1 uintptr + var r int32 + var _ /* kru at bp+0 */ [4]int64 + _, _, _ = dest, r, v1 + if ru != 0 { + v1 = ru + 32 - uintptr(Uint64FromInt32(4)*Uint64FromInt64(8)) + } else { + v1 = uintptr(0) + } + dest = v1 + r = int32(X__syscall4(tls, int64(SYS_wait4), int64(pid), int64(status), int64(options), int64(dest))) + if r > 0 && ru != 0 && Bool(uint64(8) > uint64(8)) { + Xmemcpy(tls, bp, dest, Uint64FromInt32(4)*Uint64FromInt64(8)) + (*Trusage)(unsafe.Pointer(ru)).Fru_utime = Ttimeval{ + Ftv_sec: (*(*[4]int64)(unsafe.Pointer(bp)))[0], + Ftv_usec: (*(*[4]int64)(unsafe.Pointer(bp)))[int32(1)], + } + (*Trusage)(unsafe.Pointer(ru)).Fru_stime = Ttimeval{ + Ftv_sec: (*(*[4]int64)(unsafe.Pointer(bp)))[int32(2)], + Ftv_usec: (*(*[4]int64)(unsafe.Pointer(bp)))[int32(3)], + } + } + return int32(X__syscall_ret(tls, uint64(r))) +} + +const XATTR_CREATE = 1 +const XATTR_REPLACE = 2 +const __UAPI_DEF_XATTR = 0 + +func Xgetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v path=%v name=%v value=%v size=%v, (%v:)", tls, path, name, value, size, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_getxattr), int64(path), int64(name), int64(value), int64(size)))) +} + +func Xlgetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v path=%v name=%v value=%v size=%v, (%v:)", tls, path, name, value, size, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_lgetxattr), int64(path), int64(name), int64(value), int64(size)))) +} + +func Xfgetxattr(tls *TLS, filedes int32, name uintptr, value uintptr, size Tsize_t) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v filedes=%v name=%v value=%v size=%v, (%v:)", tls, filedes, name, value, size, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_fgetxattr), int64(filedes), int64(name), int64(value), int64(size)))) +} + +func Xlistxattr(tls *TLS, path uintptr, list uintptr, size Tsize_t) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v path=%v list=%v size=%v, (%v:)", tls, path, list, size, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_listxattr), int64(path), int64(list), int64(size)))) +} + +func Xllistxattr(tls *TLS, path uintptr, list uintptr, size Tsize_t) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v path=%v list=%v size=%v, (%v:)", tls, path, list, size, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_llistxattr), int64(path), int64(list), int64(size)))) +} + +func Xflistxattr(tls *TLS, filedes int32, list uintptr, size Tsize_t) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v filedes=%v list=%v size=%v, (%v:)", tls, filedes, list, size, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_flistxattr), int64(filedes), int64(list), int64(size)))) +} + +func Xsetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v name=%v value=%v size=%v flags=%v, (%v:)", tls, path, name, value, size, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall5(tls, int64(SYS_setxattr), int64(path), int64(name), int64(value), int64(size), int64(flags))))) +} + +func Xlsetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v name=%v value=%v size=%v flags=%v, (%v:)", tls, path, name, value, size, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall5(tls, int64(SYS_lsetxattr), int64(path), int64(name), int64(value), int64(size), int64(flags))))) +} + +func Xfsetxattr(tls *TLS, filedes int32, name uintptr, value uintptr, size Tsize_t, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v filedes=%v name=%v value=%v size=%v flags=%v, (%v:)", tls, filedes, name, value, size, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall5(tls, int64(SYS_fsetxattr), int64(filedes), int64(name), int64(value), int64(size), int64(flags))))) +} + +func Xremovexattr(tls *TLS, path uintptr, name uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v name=%v, (%v:)", tls, path, name, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_removexattr), int64(path), int64(name))))) +} + +func Xlremovexattr(tls *TLS, path uintptr, name uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v name=%v, (%v:)", tls, path, name, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_lremovexattr), int64(path), int64(name))))) +} + +func Xfremovexattr(tls *TLS, fd int32, name uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v name=%v, (%v:)", tls, fd, name, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_fremovexattr), int64(fd), int64(name))))) +} + +type Tucontext_t2 = struct { + Fuc_flags uint64 + Fuc_link uintptr + Fuc_stack Tstack_t + Fuc_sigmask Tsigset_t + Fuc_mcontext Tmcontext_t +} + +func _dummy4(tls *TLS, msg uintptr, lm uintptr) (r uintptr) { + return msg +} + +func X__lctrans(tls *TLS, msg uintptr, lm uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v msg=%v lm=%v, (%v:)", tls, msg, lm, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__lctrans_impl(tls, msg, lm) +} + +func X__lctrans_cur(tls *TLS, msg uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v msg=%v, (%v:)", tls, msg, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__lctrans_impl(tls, msg, *(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale + 5*8))) +} + +func _swapc(tls *TLS, x Tuint32_t, c int32) (r Tuint32_t) { + var v1 uint32 + _ = v1 + if c != 0 { + v1 = x>>int32(24) | x>>int32(8)&uint32(0xff00) | x< %v", r) }() + } + var b, n, o, ol, os, t, tl, ts Tuint32_t + var mo uintptr + var sign, sw int32 + _, _, _, _, _, _, _, _, _, _, _ = b, mo, n, o, ol, os, sign, sw, t, tl, ts + mo = p + sw = int32(*(*Tuint32_t)(unsafe.Pointer(mo)) - uint32(0x950412de)) + b = uint32(0) + n = _swapc(tls, *(*Tuint32_t)(unsafe.Pointer(mo + 2*4)), sw) + o = _swapc(tls, *(*Tuint32_t)(unsafe.Pointer(mo + 3*4)), sw) + t = _swapc(tls, *(*Tuint32_t)(unsafe.Pointer(mo + 4*4)), sw) + if uint64(n) >= size/uint64(4) || uint64(o) >= size-uint64(uint32(4)*n) || uint64(t) >= size-uint64(uint32(4)*n) || (o|t)%uint32(4) != 0 { + return uintptr(0) + } + o /= uint32(4) + t /= uint32(4) + for { + ol = _swapc(tls, *(*Tuint32_t)(unsafe.Pointer(mo + uintptr(o+uint32(2)*(b+n/uint32(2)))*4)), sw) + os = _swapc(tls, *(*Tuint32_t)(unsafe.Pointer(mo + uintptr(o+uint32(2)*(b+n/uint32(2))+uint32(1))*4)), sw) + if uint64(os) >= size || uint64(ol) >= size-uint64(os) || *(*uint8)(unsafe.Pointer(p + uintptr(os+ol))) != 0 { + return uintptr(0) + } + sign = Xstrcmp(tls, s, p+uintptr(os)) + if !(sign != 0) { + tl = _swapc(tls, *(*Tuint32_t)(unsafe.Pointer(mo + uintptr(t+uint32(2)*(b+n/uint32(2)))*4)), sw) + ts = _swapc(tls, *(*Tuint32_t)(unsafe.Pointer(mo + uintptr(t+uint32(2)*(b+n/uint32(2))+uint32(1))*4)), sw) + if uint64(ts) >= size || uint64(tl) >= size-uint64(ts) || *(*uint8)(unsafe.Pointer(p + uintptr(ts+tl))) != 0 { + return uintptr(0) + } + return p + uintptr(ts) + } else { + if n == uint32(1) { + return uintptr(0) + } else { + if sign < 0 { + n /= uint32(2) + } else { + b += n / uint32(2) + n -= n / uint32(2) + } + } + } + goto _1 + _1: + } + return uintptr(0) +} + +const __USE_GNU_GETTEXT = 1 + +func Xbind_textdomain_codeset(tls *TLS, domainname uintptr, codeset uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v domainname=%v codeset=%v, (%v:)", tls, domainname, codeset, origin(2)) + defer func() { trc("-> %v", r) }() + } + if codeset != 0 && Xstrcasecmp(tls, codeset, __ccgo_ts+322) != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + } + return UintptrFromInt32(0) +} + +var _empty_mo = [5]Tuint32_t{ + 0: uint32(0x950412de), + 2: uint32(-Int32FromInt32(1)), + 3: uint32(-Int32FromInt32(1)), + 4: uint32(-Int32FromInt32(1)), +} + +const NL_CAT_LOCALE = 1 +const NL_SETD = 1 + +type Tnl_item = int32 + +type Tnl_catd = uintptr + +func Xcatclose(tls *TLS, catd Tnl_catd) (r int32) { + if __ccgo_strace { + trc("tls=%v catd=%v, (%v:)", tls, catd, origin(2)) + defer func() { trc("-> %v", r) }() + } + var map1 uintptr + var v1, v2 Tuint32_t + _, _, _ = map1, v1, v2 + map1 = catd + v1 = *(*Tuint32_t)(unsafe.Pointer(map1 + UintptrFromInt32(8))) + v2 = v1>>int32(24) | v1>>int32(8)&uint32(0xff00) | v1<>int32(24) | v1>>int32(8)&uint32(0xff00) | v1<>int32(24) | v4>>int32(8)&uint32(0xff00) | v4< y { + v8 = int32(1) + } else { + v8 = 0 + } + v7 = v8 + } + return v7 +} + +func Xcatgets(tls *TLS, catd Tnl_catd, set_id int32, msg_id int32, s uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v catd=%v set_id=%v msg_id=%v s=%v, (%v:)", tls, catd, set_id, msg_id, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var map1, msg, msgs, set, sets, strings uintptr + var nmsgs, nsets, v1, v10, v11, v13, v14, v16, v17, v19, v2, v20, v22, v23, v4, v5, v7, v8 Tuint32_t + var _ /* msg_id_be at bp+4 */ Tuint32_t + var _ /* set_id_be at bp+0 */ Tuint32_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = map1, msg, msgs, nmsgs, nsets, set, sets, strings, v1, v10, v11, v13, v14, v16, v17, v19, v2, v20, v22, v23, v4, v5, v7, v8 + map1 = catd + v1 = *(*Tuint32_t)(unsafe.Pointer(map1 + UintptrFromInt32(4))) + v2 = v1>>int32(24) | v1>>int32(8)&uint32(0xff00) | v1<>int32(24) | v4>>int32(8)&uint32(0xff00) | v4<>int32(24) | v7>>int32(8)&uint32(0xff00) | v7<>int32(24) | v10>>int32(8)&uint32(0xff00) | v10<>int32(24) | v13>>int32(8)&uint32(0xff00) | v13<>int32(24) | v16>>int32(8)&uint32(0xff00) | v16<>int32(24) | v19>>int32(8)&uint32(0xff00) | v19<>int32(24) | v22>>int32(8)&uint32(0xff00) | v22<>int32(24) | v1>>int32(8)&uint32(0xff00) | v1<>int32(24) | v5>>int32(8)&uint32(0xff00) | v5< %v", r) }() + } + bp := tls.Alloc(4096) + defer tls.Free(4096) + var catd Tnl_catd + var i, l Tsize_t + var lang, p, path, v, z, v1, v3, v6, v7 uintptr + var v2 bool + var _ /* buf at bp+0 */ [4096]uint8 + _, _, _, _, _, _, _, _, _, _, _, _, _ = catd, i, l, lang, p, path, v, z, v1, v2, v3, v6, v7 + if Xstrchr(tls, name, int32('/')) != 0 { + return _do_catopen(tls, name) + } + if v2 = X__libc.Fsecure != 0; !v2 { + v1 = Xgetenv(tls, __ccgo_ts+328) + path = v1 + } + if v2 || !(v1 != 0) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOENT) + return uintptr(-Int32FromInt32(1)) + } + if oflag != 0 { + v3 = Xnl_langinfo(tls, Int32FromInt32(LC_MESSAGES)<= uint64(4096)-i { + break + } + Xmemcpy(tls, bp+uintptr(i), v, l) + i += l + goto _5 + _5: + ; + p++ + } + if !(*(*uint8)(unsafe.Pointer(z)) != 0) && (p < z || !(i != 0)) { + break + } + if p < z { + goto _4 + } + if *(*uint8)(unsafe.Pointer(z)) != 0 { + z++ + } + (*(*[4096]uint8)(unsafe.Pointer(bp)))[i] = uint8(0) + /* Leading : or :: in NLSPATH is same as %N */ + if i != 0 { + v7 = bp + } else { + v7 = name + } + catd = _do_catopen(tls, v7) + if catd != uintptr(-Int32FromInt32(1)) { + return catd + } + goto _4 + _4: + ; + p = z + } + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOENT) + return uintptr(-Int32FromInt32(1)) +} + +const calloc = 0 +const free = 0 +const malloc = 0 +const realloc = 0 + +type Tbinding = struct { + Fnext uintptr + Fdirlen int32 + Factive int32 + Fdomainname uintptr + Fdirname uintptr +} + +var _bindings uintptr + +func _gettextdir(tls *TLS, domainname uintptr, dirlen uintptr) (r uintptr) { + var p uintptr + _ = p + p = AtomicLoadPUintptr(uintptr(unsafe.Pointer(&_bindings))) + for { + if !(p != 0) { + break + } + if !(Xstrcmp(tls, (*Tbinding)(unsafe.Pointer(p)).Fdomainname, domainname) != 0) && AtomicLoadPInt32(p+12) != 0 { + *(*Tsize_t)(unsafe.Pointer(dirlen)) = uint64((*Tbinding)(unsafe.Pointer(p)).Fdirlen) + return (*Tbinding)(unsafe.Pointer(p)).Fdirname + } + goto _1 + _1: + ; + p = (*Tbinding)(unsafe.Pointer(p)).Fnext + } + return uintptr(0) +} + +var _lock1 [1]int32 + +func Xbindtextdomain(tls *TLS, domainname uintptr, dirname uintptr) (r1 uintptr) { + if __ccgo_strace { + trc("tls=%v domainname=%v dirname=%v, (%v:)", tls, domainname, dirname, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var dirlen, domlen Tsize_t + var old, p4, q, v, v2, v6 uintptr + var r, v3 int32 + _, _, _, _, _, _, _, _, _, _ = dirlen, domlen, old, p4, q, r, v, v2, v3, v6 + if !(domainname != 0) { + return uintptr(0) + } + if !(dirname != 0) { + *(*Tsize_t)(unsafe.Pointer(bp)) = uint64(0) + return _gettextdir(tls, domainname, bp) + } + domlen = Xstrnlen(tls, domainname, uint64(Int32FromInt32(NAME_MAX)+Int32FromInt32(1))) + dirlen = Xstrnlen(tls, dirname, uint64(PATH_MAX)) + if domlen > uint64(NAME_MAX) || dirlen >= uint64(PATH_MAX) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return uintptr(0) + } + ___lock(tls, uintptr(unsafe.Pointer(&_lock1))) + p4 = AtomicLoadPUintptr(uintptr(unsafe.Pointer(&_bindings))) + for { + if !(p4 != 0) { + break + } + if !(Xstrcmp(tls, (*Tbinding)(unsafe.Pointer(p4)).Fdomainname, domainname) != 0) && !(Xstrcmp(tls, (*Tbinding)(unsafe.Pointer(p4)).Fdirname, dirname) != 0) { + break + } + goto _1 + _1: + ; + p4 = (*Tbinding)(unsafe.Pointer(p4)).Fnext + } + if !(p4 != 0) { + p4 = Xcalloc(tls, uint64(32)+domlen+dirlen+uint64(2), uint64(1)) + if !(p4 != 0) { + ___unlock(tls, uintptr(unsafe.Pointer(&_lock1))) + return uintptr(0) + } + (*Tbinding)(unsafe.Pointer(p4)).Fnext = AtomicLoadPUintptr(uintptr(unsafe.Pointer(&_bindings))) + (*Tbinding)(unsafe.Pointer(p4)).Fdirlen = int32(dirlen) + (*Tbinding)(unsafe.Pointer(p4)).Fdomainname = p4 + 32 + (*Tbinding)(unsafe.Pointer(p4)).Fdirname = p4 + 32 + uintptr(domlen) + uintptr(1) + Xmemcpy(tls, (*Tbinding)(unsafe.Pointer(p4)).Fdomainname, domainname, domlen+uint64(1)) + Xmemcpy(tls, (*Tbinding)(unsafe.Pointer(p4)).Fdirname, dirname, dirlen+uint64(1)) + v2 = uintptr(unsafe.Pointer(&_bindings)) + for { + // __asm__ __volatile__ ("ldaxr %0, %1" : "=r"(v) : "Q"(*(void *volatile *)p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 41, __ccgo_ts+399) + v6 = v + goto _7 + _7: + old = v6 + if old != AtomicLoadPUintptr(uintptr(unsafe.Pointer(&_bindings))) { + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+399) + break + } + goto _5 + _5: + ; + // __asm__ __volatile__ ("stlxr %w0,%2,%1" : "=&r"(r), "=Q"(*(void *volatile *)p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 49, __ccgo_ts+399) + v3 = BoolInt32(!(r != 0)) + goto _4 + _4: + ; + if !!(v3 != 0) { + break + } + } + _ = old + goto _8 + _8: + } + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+399) + AtomicStorePInt32(p4+12, int32(1)) + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+399) + q = AtomicLoadPUintptr(uintptr(unsafe.Pointer(&_bindings))) + for { + if !(q != 0) { + break + } + if !(Xstrcmp(tls, (*Tbinding)(unsafe.Pointer(q)).Fdomainname, domainname) != 0) && q != p4 { + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+399) + AtomicStorePInt32(q+12, 0) + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+399) + } + goto _9 + _9: + ; + q = (*Tbinding)(unsafe.Pointer(q)).Fnext + } + ___unlock(tls, uintptr(unsafe.Pointer(&_lock1))) + return (*Tbinding)(unsafe.Pointer(p4)).Fdirname +} + +var _catnames = [6][12]uint8{ + 0: {'L', 'C', '_', 'C', 'T', 'Y', 'P', 'E'}, + 1: {'L', 'C', '_', 'N', 'U', 'M', 'E', 'R', 'I', 'C'}, + 2: {'L', 'C', '_', 'T', 'I', 'M', 'E'}, + 3: {'L', 'C', '_', 'C', 'O', 'L', 'L', 'A', 'T', 'E'}, + 4: {'L', 'C', '_', 'M', 'O', 'N', 'E', 'T', 'A', 'R', 'Y'}, + 5: {'L', 'C', '_', 'M', 'E', 'S', 'S', 'A', 'G', 'E', 'S'}, +} + +var _catlens = [6]uint8{ + 0: uint8(8), + 1: uint8(10), + 2: uint8(7), + 3: uint8(10), + 4: uint8(11), + 5: uint8(11), +} + +type Tmsgcat = struct { + Fnext uintptr + Fmap1 uintptr + Fmap_size Tsize_t + Fplural_rule uintptr + Fnplurals int32 + Fbinding uintptr + Flm uintptr + Fcat int32 +} + +func _dummy_gettextdomain(tls *TLS) (r uintptr) { + return __ccgo_ts + 414 +} + +func Xdcngettext(tls *TLS, domainname uintptr, msgid1 uintptr, msgid2 uintptr, n uint64, category int32) (r2 uintptr) { + if __ccgo_strace { + trc("tls=%v domainname=%v msgid1=%v msgid2=%v n=%v category=%v, (%v:)", tls, domainname, msgid1, msgid2, n, category, origin(2)) + defer func() { trc("-> %v", r2) }() + } + bp := tls.Alloc(80) + defer tls.Free(80) + var alt_modlen, catlen, dirlen, domlen, l, loclen, modlen, rem, v5 Tsize_t + var catname, csp, dirname, lm, loc, locname, locp, map1, modname, name, old, old_cats, p3, q, r1, rule, trans, v, v10, v17, v21, v23, v3, v8, v9 uintptr + var np, plural, v26 uint64 + var old_errno, r, v11, v12, v14, v15, v18 int32 + var v6 t__predefined_size_t + var _ /* map_size at bp+0 */ Tsize_t + var _ /* z at bp+8 */ uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = alt_modlen, catlen, catname, csp, dirlen, dirname, domlen, l, lm, loc, loclen, locname, locp, map1, modlen, modname, name, np, old, old_cats, old_errno, p3, plural, q, r, r1, rem, rule, trans, v, v10, v11, v12, v14, v15, v17, v18, v21, v23, v26, v3, v5, v6, v8, v9 + defer func() { Xrealloc(tls, name, 0) }() + loc = (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale + old_errno = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + /* match gnu gettext behaviour */ + if !(msgid1 != 0) { + goto notrans + } + if uint32(category) >= uint32(LC_ALL) { + goto notrans + } + if !(domainname != 0) { + domainname = X__gettextdomain(tls) + } + domlen = Xstrnlen(tls, domainname, uint64(Int32FromInt32(NAME_MAX)+Int32FromInt32(1))) + if domlen > uint64(NAME_MAX) { + goto notrans + } + q = AtomicLoadPUintptr(uintptr(unsafe.Pointer(&_bindings))) + for { + if !(q != 0) { + break + } + if !(Xstrcmp(tls, (*Tbinding)(unsafe.Pointer(q)).Fdomainname, domainname) != 0) && AtomicLoadPInt32(q+12) != 0 { + break + } + goto _1 + _1: + ; + q = (*Tbinding)(unsafe.Pointer(q)).Fnext + } + if !(q != 0) { + goto notrans + } + lm = *(*uintptr)(unsafe.Pointer(loc + uintptr(category)*8)) + if !!(lm != 0) { + goto _2 + } + goto notrans +notrans: + ; + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = old_errno + if n == uint64(1) { + v3 = msgid1 + } else { + v3 = msgid2 + } + return v3 +_2: + ; + p3 = AtomicLoadPUintptr(uintptr(unsafe.Pointer(&_cats))) + for { + if !(p3 != 0) { + break + } + if (*Tmsgcat)(unsafe.Pointer(p3)).Fbinding == q && (*Tmsgcat)(unsafe.Pointer(p3)).Flm == lm && (*Tmsgcat)(unsafe.Pointer(p3)).Fcat == category { + break + } + goto _4 + _4: + ; + p3 = (*Tmsgcat)(unsafe.Pointer(p3)).Fnext + } + if !(p3 != 0) { + dirname = (*Tbinding)(unsafe.Pointer(q)).Fdirname + locname = lm + 16 + catname = uintptr(unsafe.Pointer(&_catnames)) + uintptr(category)*12 + dirlen = uint64((*Tbinding)(unsafe.Pointer(q)).Fdirlen) + loclen = Xstrlen(tls, locname) + catlen = uint64(_catlens[category]) + /* Logically split @mod suffix from locale name. */ + modname = Xmemchr(tls, locname, int32('@'), loclen) + if !(modname != 0) { + modname = locname + uintptr(loclen) + } + v5 = loclen - uint64(int64(modname)-int64(locname)) + modlen = v5 + alt_modlen = v5 + loclen = uint64(int64(modname) - int64(locname)) + /* Drop .charset identifier; it is not used. */ + csp = Xmemchr(tls, locname, int32('.'), loclen) + if csp != 0 { + loclen = uint64(int64(csp) - int64(locname)) + } + v6 = dirlen + uint64(1) + loclen + modlen + uint64(1) + catlen + uint64(1) + domlen + uint64(3) + uint64(1) + name = Xrealloc(tls, name, v6) + for { + Xsnprintf(tls, name, v6, __ccgo_ts+423, VaList(bp+24, dirname, int32(loclen), locname, int32(alt_modlen), modname, catname, domainname)) + v8 = X__map_file(tls, name, bp) + map1 = v8 + if v8 != 0 { + break + } + /* Try dropping @mod, _YY, then both. */ + if alt_modlen != 0 { + alt_modlen = uint64(0) + } else { + v9 = Xmemchr(tls, locname, int32('_'), loclen) + locp = v9 + if v9 != 0 { + loclen = uint64(int64(locp) - int64(locname)) + alt_modlen = modlen + } else { + break + } + } + goto _7 + _7: + } + if !(map1 != 0) { + goto notrans + } + p3 = Xcalloc(tls, uint64(64), uint64(1)) + if !(p3 != 0) { + X__munmap(tls, map1, *(*Tsize_t)(unsafe.Pointer(bp))) + goto notrans + } + (*Tmsgcat)(unsafe.Pointer(p3)).Fcat = category + (*Tmsgcat)(unsafe.Pointer(p3)).Fbinding = q + (*Tmsgcat)(unsafe.Pointer(p3)).Flm = lm + (*Tmsgcat)(unsafe.Pointer(p3)).Fmap1 = map1 + (*Tmsgcat)(unsafe.Pointer(p3)).Fmap_size = *(*Tsize_t)(unsafe.Pointer(bp)) + rule = __ccgo_ts + 445 + np = uint64(2) + r1 = X__mo_lookup(tls, (*Tmsgcat)(unsafe.Pointer(p3)).Fmap1, (*Tmsgcat)(unsafe.Pointer(p3)).Fmap_size, __ccgo_ts) + for r1 != 0 && Xstrncmp(tls, r1, __ccgo_ts+451, uint64(13)) != 0 { + *(*uintptr)(unsafe.Pointer(bp + 8)) = Xstrchr(tls, r1, int32('\n')) + if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { + v10 = *(*uintptr)(unsafe.Pointer(bp + 8)) + uintptr(1) + } else { + v10 = uintptr(0) + } + r1 = v10 + } + if r1 != 0 { + r1 += uintptr(13) + for { + v11 = int32(*(*uint8)(unsafe.Pointer(r1))) + v12 = BoolInt32(v11 == int32(' ') || uint32(v11)-uint32('\t') < uint32(5)) + goto _13 + _13: + if !(v12 != 0) { + break + } + r1++ + } + if !(Xstrncmp(tls, r1, __ccgo_ts+465, uint64(9)) != 0) { + np = Xstrtoul(tls, r1+uintptr(9), bp+8, int32(10)) + r1 = *(*uintptr)(unsafe.Pointer(bp + 8)) + } + for *(*uint8)(unsafe.Pointer(r1)) != 0 && int32(*(*uint8)(unsafe.Pointer(r1))) != int32(';') { + r1++ + } + if *(*uint8)(unsafe.Pointer(r1)) != 0 { + r1++ + for { + v14 = int32(*(*uint8)(unsafe.Pointer(r1))) + v15 = BoolInt32(v14 == int32(' ') || uint32(v14)-uint32('\t') < uint32(5)) + goto _16 + _16: + if !(v15 != 0) { + break + } + r1++ + } + if !(Xstrncmp(tls, r1, __ccgo_ts+475, uint64(7)) != 0) { + rule = r1 + uintptr(7) + } + } + } + (*Tmsgcat)(unsafe.Pointer(p3)).Fnplurals = int32(np) + (*Tmsgcat)(unsafe.Pointer(p3)).Fplural_rule = rule + for { + old_cats = AtomicLoadPUintptr(uintptr(unsafe.Pointer(&_cats))) + (*Tmsgcat)(unsafe.Pointer(p3)).Fnext = old_cats + goto _25 + _25: + ; + v17 = uintptr(unsafe.Pointer(&_cats)) + for { + // __asm__ __volatile__ ("ldaxr %0, %1" : "=r"(v) : "Q"(*(void *volatile *)p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 41, __ccgo_ts+483) + v21 = v + goto _22 + _22: + old = v21 + if old != old_cats { + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+483) + break + } + goto _20 + _20: + ; + // __asm__ __volatile__ ("stlxr %w0,%2,%1" : "=&r"(r), "=Q"(*(void *volatile *)p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 49, __ccgo_ts+483) + v18 = BoolInt32(!(r != 0)) + goto _19 + _19: + ; + if !!(v18 != 0) { + break + } + } + v23 = old + goto _24 + _24: + ; + if !(v23 != old_cats) { + break + } + } + } + trans = X__mo_lookup(tls, (*Tmsgcat)(unsafe.Pointer(p3)).Fmap1, (*Tmsgcat)(unsafe.Pointer(p3)).Fmap_size, msgid1) + if !(trans != 0) { + goto notrans + } + /* Non-plural-processing gettext forms pass a null pointer as + * msgid2 to request that dcngettext suppress plural processing. */ + if msgid2 != 0 && (*Tmsgcat)(unsafe.Pointer(p3)).Fnplurals != 0 { + plural = X__pleval(tls, (*Tmsgcat)(unsafe.Pointer(p3)).Fplural_rule, n) + if plural > uint64((*Tmsgcat)(unsafe.Pointer(p3)).Fnplurals) { + goto notrans + } + for { + v26 = plural + plural-- + if !(v26 != 0) { + break + } + rem = (*Tmsgcat)(unsafe.Pointer(p3)).Fmap_size - uint64(int64(trans)-int64((*Tmsgcat)(unsafe.Pointer(p3)).Fmap1)) + l = Xstrnlen(tls, trans, rem) + if l+uint64(1) >= rem { + goto notrans + } + trans += uintptr(l + uint64(1)) + } + } + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = old_errno + return trans +} + +var _cats uintptr + +func Xdcgettext(tls *TLS, domainname uintptr, msgid uintptr, category int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v domainname=%v msgid=%v category=%v, (%v:)", tls, domainname, msgid, category, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xdcngettext(tls, domainname, msgid, uintptr(0), uint64(1), category) +} + +func Xdngettext(tls *TLS, domainname uintptr, msgid1 uintptr, msgid2 uintptr, n uint64) (r uintptr) { + if __ccgo_strace { + trc("tls=%v domainname=%v msgid1=%v msgid2=%v n=%v, (%v:)", tls, domainname, msgid1, msgid2, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xdcngettext(tls, domainname, msgid1, msgid2, n, int32(LC_MESSAGES)) +} + +func Xdgettext(tls *TLS, domainname uintptr, msgid uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v domainname=%v msgid=%v, (%v:)", tls, domainname, msgid, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xdcngettext(tls, domainname, msgid, uintptr(0), uint64(1), int32(LC_MESSAGES)) +} + +func X__duplocale(tls *TLS, old Tlocale_t) (r Tlocale_t) { + if __ccgo_strace { + trc("tls=%v old=%v, (%v:)", tls, old, origin(2)) + defer func() { trc("-> %v", r) }() + } + var new1 Tlocale_t + _ = new1 + new1 = Xmalloc(tls, uint64(48)) + if !(new1 != 0) { + return uintptr(0) + } + if old == uintptr(-Int32FromInt32(1)) { + old = uintptr(unsafe.Pointer(&X__libc)) + 56 + } + *(*t__locale_struct)(unsafe.Pointer(new1)) = *(*t__locale_struct)(unsafe.Pointer(old)) + return new1 +} + +func Xduplocale(tls *TLS, old Tlocale_t) (r Tlocale_t) { + if __ccgo_strace { + trc("tls=%v old=%v, (%v:)", tls, old, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__duplocale(tls, old) +} + +func Xfreelocale(tls *TLS, l Tlocale_t) { + if __ccgo_strace { + trc("tls=%v l=%v, (%v:)", tls, l, origin(2)) + } + if X__loc_is_allocated(tls, l) != 0 { + Xfree(tls, l) + } +} + +func X__freelocale(tls *TLS, l Tlocale_t) { + if __ccgo_strace { + trc("tls=%v l=%v, (%v:)", tls, l, origin(2)) + } + Xfreelocale(tls, l) +} + +const BIG5 = 224 +const EUC_JP = 208 +const EUC_KR = 232 +const GB18030 = 216 +const GB2312 = 218 +const GBK = 217 +const ISO2022_JP = 210 +const SHIFT_JIS = 209 +const UCS2 = 204 +const UCS2BE = 196 +const UCS2LE = 197 +const US_ASCII = 199 +const UTF_16 = 202 +const UTF_16BE = 194 +const UTF_16LE = 193 +const UTF_32 = 203 +const UTF_32BE = 192 +const UTF_32LE = 195 +const UTF_8 = 200 +const WCHAR_T = 198 +const mbrtowc_utf8 = 0 +const wctomb_utf8 = 0 + +type Ticonv_t = uintptr + +/* Definitions of charmaps. Each charmap consists of: + * 1. Empty-string-terminated list of null-terminated aliases. + * 2. Special type code or number of elided quads of entries. + * 3. Character table (size determined by field 2), consisting + * of 5 bytes for every 4 characters, interpreted as 10-bit + * indices into the legacy_chars table. */ + +var _charmaps = [4907]uint8{'u', 't', 'f', '8', 0, 'c', 'h', 'a', 'r', 0, 0, 200, 'w', 'c', 'h', 'a', 'r', 't', 0, 0, 198, 'u', 'c', 's', '2', 'b', 'e', 0, 0, 196, 'u', 'c', 's', '2', 'l', 'e', 0, 0, 197, 'u', 't', 'f', '1', '6', 'b', 'e', 0, 0, 194, 'u', 't', 'f', '1', '6', 'l', 'e', 0, 0, 193, 'u', 'c', 's', '4', 'b', 'e', 0, 'u', 't', 'f', '3', '2', 'b', 'e', 0, 0, 192, 'u', 'c', 's', '4', 'l', 'e', 0, 'u', 't', 'f', '3', '2', 'l', 'e', 0, 0, 195, 'a', 's', 'c', 'i', 'i', 0, 'u', 's', 'a', 's', 'c', 'i', 'i', 0, 'i', 's', 'o', '6', '4', '6', 0, 'i', 's', 'o', '6', '4', '6', 'u', 's', 0, 0, 199, 'u', 't', 'f', '1', '6', 0, 0, 202, 'u', 'c', 's', '4', 0, 'u', 't', 'f', '3', '2', 0, 0, 203, 'u', 'c', 's', '2', 0, 0, 204, 'e', 'u', 'c', 'j', 'p', 0, 0, 208, 's', 'h', 'i', 'f', 't', 'j', 'i', 's', 0, 's', 'j', 'i', 's', 0, 'c', 'p', '9', '3', '2', 0, 0, 209, 'i', 's', 'o', '2', '0', '2', '2', 'j', 'p', 0, 0, 210, 'g', 'b', '1', '8', '0', '3', '0', 0, 0, 216, 'g', 'b', 'k', 0, 'c', 'p', '9', '3', '6', 0, 'w', 'i', 'n', 'd', 'o', 'w', 's', '9', '3', '6', 0, 0, 217, 'g', 'b', '2', '3', '1', '2', 0, 0, 218, 'b', 'i', 'g', '5', 0, 'b', 'i', 'g', 'f', 'i', 'v', 'e', 0, 'c', 'p', '9', '5', '0', 0, 'b', 'i', 'g', '5', 'h', 'k', 's', 'c', 's', 0, 0, 224, 'e', 'u', 'c', 'k', 'r', 0, 'k', 's', 'c', '5', '6', '0', '1', 0, 'k', 's', 'x', '1', '0', '0', '1', 0, 'c', 'p', '9', '4', '9', 0, 0, 232, 'i', 's', 'o', '8', '8', '5', '9', '1', 0, 'l', 'a', 't', 'i', 'n', '1', 0, 0, '@', 'i', 's', 'o', '8', '8', '5', '9', '2', 0, 0, '(', 160, 16, 244, 'W', 'N', 164, 220, 244, 212, ')', 168, 'T', '5', 'U', 'V', 'n', 181, '"', 23, '\\', 176, 20, 20, 152, 'N', 180, 224, 4, 149, '_', 184, 'X', 'E', 149, 'V', 'o', 13, '6', 'W', '\\', 'I', 5, '#', 140, '@', 196, 204, 'd', 208, '1', 12, '%', 'c', 209, '2', 24, '5', 227, 140, 'C', 16, 237, 244, 211, '4', 212, 20, 'e', 205, '5', 'M', 141, 165, 'M', 'Y', 220, 't', 's', 213, '7', 'J', 133, '#', 206, '@', 228, 208, 't', 208, '9', 13, 165, 's', 209, ':', 25, 181, 227, 206, 'C', 17, 241, 4, 212, '<', 244, 24, 'e', 207, '=', 'N', 145, 165, 143, 'Y', 252, 244, 131, 21, '`', 'i', 's', 'o', '8', '8', '5', '9', '3', 0, 0, '(', 160, 144, 244, 215, '(', 164, 0, ' ', 210, ')', 168, 176, '4', 21, 'G', '.', 181, 2, 0, '\\', 176, 148, '$', 203, ',', 180, 212, '2', 210, '-', 184, 180, 'D', 'U', 'G', '/', 245, 2, '@', '\\', 192, 4, '#', 12, 0, 196, '(', 132, 208, '1', 200, '$', 163, 204, '2', 204, '4', 227, 204, '3', 0, 'D', '#', 205, '4', 212, 'x', 'd', 205, '5', 26, 'e', 163, 205, '6', 220, 132, 21, 213, '7', 224, 132, '#', 14, 0, 228, ',', 148, 208, '9', 232, 164, 163, 206, ':', 236, 180, 227, 206, ';', 0, 196, '#', 207, '<', 244, '|', 'd', 207, '=', 27, 229, 163, 207, '>', 252, 136, '%', 21, '`', 'i', 's', 'o', '8', '8', '5', '9', '4', 0, 0, '(', 160, 16, '$', 211, 'R', 164, 152, 'T', 211, ')', 168, 'T', '%', 17, 'H', '[', 181, '"', 215, '+', 176, 20, 20, 24, 'S', 180, 156, 'd', 147, '_', 184, 'X', '5', 'Q', 'H', '\\', 5, '5', 151, 'P', 0, 5, '#', 204, '0', 196, 20, 'c', 140, 'J', 12, '%', 'c', 209, '2', 20, '5', 227, 12, 'J', 16, 245, '4', 20, 'L', 212, 'T', 'c', 205, '5', 216, 156, 165, 205, '6', 220, 't', 245, 213, '7', 1, 133, '#', 206, '8', 228, 148, 'c', 206, 'J', 13, 165, 's', 209, ':', 21, 181, 227, 'N', 'J', 17, 249, 'D', 'T', 'L', 244, 212, 'c', 207, '=', 248, 160, 165, 207, '>', 252, 'x', 5, 22, '`', 'i', 's', 'o', '8', '8', '5', '9', '5', 0, 0, '(', 160, 'D', '\'', 221, 't', 212, 'U', 'g', 221, 'u', 216, 'e', 167, 221, 'v', 220, 181, 210, 157, 'w', 223, 129, 23, 158, 'x', 227, 145, 'W', 158, 'y', 231, 161, 151, 158, 'z', 235, 177, 215, 158, '{', 239, 193, 23, 159, '|', 243, 209, 'W', 159, '}', 247, 225, 151, 159, '~', 251, 241, 215, 159, 127, 255, 1, 24, 160, 128, 3, 18, 'X', 160, 129, 7, '"', 152, 160, 130, 11, '2', 216, 160, 131, 15, 'B', 24, 161, 132, 19, 'R', 'X', 161, 133, 23, 'b', 152, 161, 134, 27, 'r', 216, 161, 135, '&', 127, 8, 'b', 136, '"', 142, 'H', 'b', 137, '&', 158, 136, 'b', 138, '*', 158, 178, '"', 139, 'i', 's', 'o', '8', '8', '5', '9', '6', 0, 0, '(', 160, 0, 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'b', 182, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 152, 0, 0, 0, 0, 153, 0, 148, 'i', 230, 153, 'h', 166, 169, 230, 154, 'l', 182, 233, 230, 155, 'p', 198, ')', 231, 156, 't', 214, 'i', 231, 157, 'x', 230, 169, 231, 158, '|', 246, 233, '\'', 0, 0, 0, 0, 0, 0, 127, 2, 26, 168, 160, 131, 18, 'Z', 168, 161, 135, '"', 154, 168, 162, 139, '2', 218, 168, 163, 143, 'B', 26, ')', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'i', 's', 'o', '8', '8', '5', '9', '7', 0, 0, '(', 160, 'L', 'L', 241, '(', '$', 151, 'l', 202, ')', 168, 164, 146, 216, '*', 172, 180, 2, '@', 196, 176, 196, '"', 203, ',', 138, '-', 198, 216, '-', 141, '9', 246, 216, '.', 144, 245, 18, 153, 'd', 147, 'Q', 'V', 153, 'e', 151, 'a', 150, 153, 'f', 155, 'q', 214, 153, 'g', 159, 129, 22, 154, 'h', 163, 145, 6, '@', 'i', 166, 157, 134, 'Z', 'j', 170, 173, 198, 'Z', 'k', 174, 189, 6, '[', 'l', 178, 205, 'F', '[', 'm', 182, 221, 134, '[', 'n', 186, 237, 198, '[', 'o', 190, 253, 6, '\\', 'p', 194, 13, 'G', '\\', 'q', 198, 29, 135, '\\', 'r', 202, '-', 199, '\\', 's', 206, '=', 7, 29, 0, 'i', 's', 'o', '8', '8', '5', '9', '8', 0, 0, '(', 160, 0, ' ', 202, '(', 164, 148, 'b', 202, ')', 168, 164, 'r', 205, '*', 172, 180, 226, 202, '+', 176, 196, '"', 203, ',', 180, 212, 'b', 203, '-', 184, 228, 'r', 207, '.', 188, 244, 226, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 196, 'B', 14, 'I', 'd', 145, 'F', 30, 137, 'd', 146, 'J', '.', 201, 'd', 147, 'N', '>', 9, 'e', 148, 'R', 'N', 'I', 'e', 149, 'V', '^', 137, 'e', 150, 'Z', 'n', 201, '%', 0, 0, '4', 236, '0', 0, 'i', 's', 'o', '8', '8', '5', '9', '9', 0, 0, '4', 28, 'E', '#', 205, '4', 212, 'T', 'c', 205, '5', 216, 'd', 163, 205, '6', 220, 176, '4', 213, '7', 224, 132, '#', 206, '8', 228, 148, 'c', 206, '9', 232, 164, 163, 206, ':', 236, 180, 227, 206, ';', 29, 197, '#', 207, '<', 244, 212, 'c', 207, '=', 248, 228, 163, 207, '>', 252, 180, 'D', 213, '?', 'i', 's', 'o', '8', '8', '5', '9', '1', '0', 0, 0, '(', 160, 16, '$', 17, 'H', '(', 153, 4, 211, ')', '5', 'A', 'T', 213, 'V', 'r', 181, 242, 'U', 'P', 176, 20, '4', 'Q', 'H', ')', 157, 20, 211, '-', '6', 'E', 'd', 21, 'W', 's', 'E', 12, 150, 'P', 0, 5, '#', 204, '0', 196, 20, 'c', 140, 'J', 12, '%', 'c', 209, '2', 20, '5', 227, 204, '3', 208, 244, '4', 212, '4', 212, 'T', 'c', 'M', 'W', 216, 156, 165, 205, '6', 220, 't', 227, 205, '7', 1, 133, '#', 206, '8', 228, 148, 'c', 206, 'J', 13, 165, 's', 209, ':', 21, 181, 227, 206, ';', 240, 248, 'D', 212, '<', 244, 212, 'c', 143, 'W', 248, 160, 165, 207, '>', 252, 244, 227, 143, 'L', 'i', 's', 'o', '8', '8', '5', '9', '1', '1', 0, 't', 'i', 's', '6', '2', '0', 0, 0, '(', 160, 'x', 250, ')', 168, 161, 138, ':', '*', 169, 165, 154, 'z', '*', 170, 169, 170, 186, '*', 171, 173, 186, 250, '*', 172, 177, 202, ':', '+', 173, 181, 218, 'z', '+', 174, 185, 234, 186, '+', 175, 189, 250, 250, '+', 176, 193, 10, ';', ',', 177, 197, 26, '{', ',', 178, 201, '*', 187, ',', 179, 205, ':', 251, ',', 180, 209, 'J', ';', '-', 181, 213, 'Z', '{', '-', 0, 0, 0, 0, 0, 182, 217, 'j', 187, '-', 183, 221, 'z', 251, '-', 184, 225, 138, ';', '.', 185, 229, 154, '{', '.', 186, 233, 170, 187, '.', 187, 237, 186, 251, '.', 188, 241, 202, ';', '/', 189, 0, 0, 0, 0, 0, 'i', 's', 'o', '8', '8', '5', '9', '1', '3', 0, 0, '(', 160, '\\', ',', 202, '(', 164, '`', 'l', 202, ')', 216, 164, 178, 212, '*', 172, 180, 226, 138, '1', 176, 196, '"', 203, ',', 22, 215, 'b', 203, '-', 248, 228, 194, 212, '.', 188, 244, 226, 139, '9', 4, 169, 4, 144, 'A', 196, 20, 'c', 145, 'D', 12, '%', 227, 22, 'E', ' ', 193, 132, 'R', 'M', 'U', 237, 212, 211, '4', 'C', 'U', 'c', 205, '5', 'g', 229, 244, 212, 'W', 220, 192, '%', 215, '7', 5, 173, 20, 208, 'A', 228, 148, 's', 209, 'D', 13, 165, 243, 'V', 'E', '!', 197, 148, 146, 'M', 'V', 241, 228, 211, '<', 'D', 213, 'c', 207, '=', 'h', 233, 4, 21, 'X', 252, 196, '5', 23, 197, 'i', 's', 'o', '8', '8', '5', '9', '1', '4', 0, 0, '(', 160, 212, 'k', 239, '(', 10, '-', 't', 239, ')', 3, 167, 'R', '0', 190, 9, 183, 226, 'J', '[', 249, 234, 235, 209, 'G', 251, 242, 'k', 'K', 191, 4, 251, 'k', 240, 191, 10, 31, 140, '0', 192, 192, 4, '#', 204, '0', 196, 20, 'c', 204, '1', 200, '$', 163, 204, '2', 204, '4', 227, 204, '3', 'i', 'E', '#', 205, '4', 212, 'T', 'c', 'M', 192, 216, 'd', 163, 205, '6', 220, 't', 179, 214, '7', 224, 132, '#', 206, '8', 228, 148, 'c', 206, '9', 232, 164, 163, 206, ':', 236, 180, 227, 206, ';', 'j', 197, '#', 207, '<', 244, 212, 'c', 143, 192, 248, 228, 163, 207, '>', 252, 244, 195, 214, '?', 'i', 's', 'o', '8', '8', '5', '9', '1', '5', 0, 'l', 'a', 't', 'i', 'n', '9', 0, 0, ')', '$', 151, 'R', 213, ')', 'V', 165, 162, 202, '*', 172, 180, 226, 202, '+', 176, 196, '"', 203, ',', 'r', 213, 'b', 203, '-', 's', 229, 162, 203, '.', 'G', '!', 213, 214, '/', 192, 4, '#', 204, '0', 196, 20, 'c', 204, '1', 200, '$', 163, 204, '2', 204, '4', 227, 204, '3', 208, 'D', '#', 205, '4', 212, 'T', 'c', 205, '5', 216, 'd', 163, 205, '6', 220, 't', 227, 205, '7', 224, 132, '#', 206, '8', 228, 148, 'c', 206, '9', 232, 164, 163, 206, ':', 236, 180, 227, 206, ';', 240, 196, '#', 207, '<', 244, 212, 'c', 207, '=', 248, 228, 163, 207, '>', 252, 244, 227, 207, '?', 'i', 's', 'o', '8', '8', '5', '9', '1', '6', 0, 0, '(', 160, 16, 'T', 'P', 'N', '$', 'c', '\\', 213, ')', 'V', 165, 146, 215, '*', 'n', 181, 242, 22, '\\', 176, 196, 194, 144, 'N', 'r', ']', 'l', 203, '-', 's', '5', 164, 215, '.', 'G', '!', 213, 'V', '\\', 192, 4, '#', 140, '@', 196, 24, 'd', 204, '1', 200, '$', 163, 204, '2', 204, '4', 227, 204, '3', 16, 237, '$', 205, '4', 212, 20, 'e', 205, 'S', 'e', 'e', 163, 205, '6', 220, 'X', 180, 215, '7', 224, 132, '#', 206, '@', 228, 28, 'd', 206, '9', 232, 164, 163, 206, ':', 236, 180, 227, 206, ';', 17, 241, '$', 207, '<', 244, 24, 'e', 15, 'T', 'f', 229, 163, 207, '>', 252, '\\', 196, 215, '?', 'c', 'p', '1', '2', '5', '0', 0, 'w', 'i', 'n', 'd', 'o', 'w', 's', '1', '2', '5', '0', 0, 0, ' ', '$', 3, 'P', '1', 0, 24, 's', 156, 177, 198, 0, 't', '\\', 149, 199, 'O', 'e', '%', 151, '[', 0, 'L', 'L', 177, 197, 23, 'o', 252, '0', 196, 0, 156, 'l', 213, 199, 'P', 'i', '5', 215, '[', 160, 248, 245, 'W', 'N', 164, 16, 'd', 202, ')', 168, 164, '2', 213, '*', 172, 180, 226, 10, '\\', 176, 196, 18, 152, 'N', 180, 212, 'b', 203, '-', 184, 20, 'D', 213, '.', '7', 13, 134, 'S', '\\', 'I', 5, '#', 140, '@', 196, 204, 'd', 208, '1', 12, '%', 'c', 209, '2', 24, '5', 227, 140, 'C', 16, 237, 244, 211, '4', 212, 20, 'e', 205, '5', 'M', 141, 165, 'M', 'Y', 220, 't', 's', 213, '7', 'J', 133, '#', 206, '@', 228, 208, 't', 208, '9', 13, 165, 's', 209, ':', 25, 181, 227, 206, 'C', 17, 241, 4, 212, '<', 244, 24, 'e', 207, '=', 'N', 145, 165, 143, 'Y', 252, 244, 131, 21, '`', 'c', 'p', '1', '2', '5', '1', 0, 'w', 'i', 'n', 'd', 'o', 'w', 's', '1', '2', '5', '1', 0, 0, ' ', 210, 'M', 'W', 'q', 136, 24, 's', 156, 177, 198, '$', 'w', 156, 157, 199, 218, 'q', 183, 157, 'w', ' ', 'N', 'L', 177, 197, 23, 'o', 252, '0', 196, 0, 156, '|', 226, 199, '(', 170, 152, '"', 139, 160, 't', 183, '"', 'v', 164, 180, 'h', 202, ')', 209, 165, 'B', 221, '*', 172, 180, 226, 202, 'u', 176, 196, 'b', 29, 137, '.', 214, 'b', 203, '-', 31, 154, ',', 226, '.', '&', 'V', '7', 'b', 137, 223, 129, 23, 158, 'x', 227, 145, 'W', 158, 'y', 231, 161, 151, 158, 'z', 235, 177, 215, 158, '{', 239, 193, 23, 159, '|', 243, 209, 'W', 159, '}', 247, 225, 151, 159, '~', 251, 241, 215, 159, 127, 255, 1, 24, 160, 128, 3, 18, 'X', 160, 129, 7, '"', 152, 160, 130, 11, '2', 216, 160, 131, 15, 'B', 24, 161, 132, 19, 'R', 'X', 161, 133, 23, 'b', 152, 161, 134, 27, 'r', 216, 161, 135, 'c', 'p', '1', '2', '5', '2', 0, 'w', 'i', 'n', 'd', 'o', 'w', 's', '1', '2', '5', '2', 0, 0, ' ', '$', 3, 'P', '1', ']', 24, 's', 156, 177, 198, '}', 'u', '\\', 149, 199, 'G', 1, ' ', 23, 0, 0, 'L', 'L', 177, 197, 23, 'o', 252, '0', 196, 130, 157, 'l', 213, 199, 'H', 1, '0', 'W', '[', 160, 132, '"', 202, '(', 164, 148, 'b', 202, ')', 168, 164, 162, 202, '*', 172, 180, 226, 202, '+', 176, 196, '"', 203, ',', 180, 212, 'b', 203, '-', 184, 228, 162, 203, '.', 188, 244, 226, 203, '/', 192, 4, '#', 204, '0', 196, 20, 'c', 204, '1', 200, '$', 163, 204, '2', 204, '4', 227, 204, '3', 208, 'D', '#', 205, '4', 212, 'T', 'c', 205, '5', 216, 'd', 163, 205, '6', 220, 't', 227, 205, '7', 224, 132, '#', 206, '8', 228, 148, 'c', 206, '9', 232, 164, 163, 206, ':', 236, 180, 227, 206, ';', 240, 196, '#', 207, '<', 244, 212, 'c', 207, '=', 248, 228, 163, 207, '>', 252, 244, 227, 207, '?', 'c', 'p', '1', '2', '5', '3', 0, 'w', 'i', 'n', 'd', 'o', 'w', 's', '1', '2', '5', '3', 0, 0, ' ', '$', 3, 'P', '1', ']', 24, 's', 156, 177, 198, 0, 't', 12, 128, 199, 0, 0, 0, 0, 0, 0, 'L', 'L', 177, 197, 23, 'o', 252, '0', 196, 0, 156, 12, 192, 199, 0, 0, 0, 0, 0, 160, ',', 198, 216, '(', 164, 148, 'b', 202, ')', 168, 164, 2, 192, '*', 172, 180, 226, 'J', 196, 176, 196, '"', 203, ',', 138, 213, 'b', 203, '-', 141, '9', 246, 216, '.', 144, 245, 18, 153, 'd', 147, 'Q', 'V', 153, 'e', 151, 'a', 150, 153, 'f', 155, 'q', 214, 153, 'g', 159, 129, 22, 154, 'h', 163, 145, 6, '@', 'i', 166, 157, 134, 'Z', 'j', 170, 173, 198, 'Z', 'k', 174, 189, 6, '[', 'l', 178, 205, 'F', '[', 'm', 182, 221, 134, '[', 'n', 186, 237, 198, '[', 'o', 190, 253, 6, '\\', 'p', 194, 13, 'G', '\\', 'q', 198, 29, 135, '\\', 'r', 202, '-', 199, '\\', 's', 206, '=', 7, 29, 0, 'c', 'p', '1', '2', '5', '4', 0, 'w', 'i', 'n', 'd', 'o', 'w', 's', '1', '2', '5', '4', 0, 0, ' ', '$', 3, 'P', '1', ']', 24, 's', 156, 177, 198, '}', 'u', '\\', 149, 199, 'G', 1, 0, 0, 0, 0, 'L', 'L', 177, 197, 23, 'o', 252, '0', 196, 130, 157, 'l', 213, 199, 'H', 1, 0, '@', '[', 160, 132, '"', 202, '(', 164, 148, 'b', 202, ')', 168, 164, 162, 202, '*', 172, 180, 226, 202, '+', 176, 196, '"', 203, ',', 180, 212, 'b', 203, '-', 184, 228, 162, 203, '.', 188, 244, 226, 203, '/', 192, 4, '#', 204, '0', 196, 20, 'c', 204, '1', 200, '$', 163, 204, '2', 204, '4', 227, 204, '3', 28, 'E', '#', 205, '4', 212, 'T', 'c', 205, '5', 216, 'd', 163, 205, '6', 220, 176, '4', 213, '7', 224, 132, '#', 206, '8', 228, 148, 'c', 206, '9', 232, 164, 163, 206, ':', 236, 180, 227, 206, ';', 29, 197, '#', 207, '<', 244, 212, 'c', 207, '=', 248, 228, 163, 207, '>', 252, 180, 'D', 213, '?', 'c', 'p', '1', '2', '5', '5', 0, 'w', 'i', 'n', 'd', 'o', 'w', 's', '1', '2', '5', '5', 0, 0, ' ', '$', 3, 'P', '1', ']', 24, 's', 156, 177, 198, '}', 'u', 12, 128, 199, 0, 0, 0, 0, 0, 0, 'L', 'L', 177, 197, 23, 'o', 252, '0', 196, 130, 157, 12, 192, 199, 0, 0, 0, 0, 0, 160, 132, '"', 202, '(', '"', 151, 'b', 202, ')', 168, 164, 'r', 205, '*', 172, 180, 226, 202, '+', 176, 196, '"', 203, ',', 180, 212, 'b', 203, '-', 184, 228, 'r', 207, '.', 188, 244, 226, 203, '/', '/', 194, 24, 163, 140, '3', 210, 'X', 163, 141, '7', 226, 8, '@', 142, ':', 238, 200, 'c', 143, '>', 254, 8, 'd', 144, ']', 'z', 249, '%', 152, 'a', 2, 0, 0, 0, 0, 0, 0, 0, 0, 'B', 14, 'I', 'd', 145, 'F', 30, 137, 'd', 146, 'J', '.', 201, 'd', 147, 'N', '>', 9, 'e', 148, 'R', 'N', 'I', 'e', 149, 'V', '^', 137, 'e', 150, 'Z', 'n', 201, '%', 0, 0, '4', 236, '0', 0, 'c', 'p', '1', '2', '5', '6', 0, 'w', 'i', 'n', 'd', 'o', 'w', 's', '1', '2', '5', '6', 0, 0, ' ', '$', 'O', 'Z', '1', ']', 24, 's', 156, 177, 198, '}', 'u', ',', 169, 199, 'G', 'Q', 'z', 'i', 165, 153, 'N', 'L', 177, 197, 23, 'o', 252, '0', 196, 152, 158, 'l', 233, 199, 'H', '-', 204, 176, 166, 160, 136, ')', 202, '(', 164, 148, 'b', 202, ')', 168, 164, 178, 233, '*', 172, 180, 226, 202, '+', 176, 196, '"', 203, ',', 180, 212, 'b', 203, '-', 184, 228, '2', 230, '.', 188, 244, 226, 11, 153, 156, 150, 'i', 230, 153, 'h', 166, 169, 230, 154, 'l', 182, 233, 230, 155, 'p', 198, ')', 231, 156, 't', 214, 'i', 231, 157, 'x', 230, 169, 231, '5', '{', 242, 217, 167, 159, 127, 2, 26, 168, 160, 224, 12, '*', 14, 161, 133, 26, 'z', 232, '9', 232, 164, 163, 206, ':', 136, '&', 234, 206, ';', 138, '.', 202, 'h', 163, 244, '8', 250, 232, '=', 144, 230, 19, 233, '>', 252, '4', 236, 'p', 167, 'c', 'p', '1', '2', '5', '7', 0, 'w', 'i', 'n', 'd', 'o', 'w', 's', '1', '2', '5', '7', 0, 0, ' ', '$', 3, 'P', '1', 0, 24, 's', 156, 177, 198, 0, 't', 12, 128, 199, 0, 160, 226, 23, '.', 0, 'L', 'L', 177, 197, 23, 'o', 252, '0', 196, 0, 156, 12, 192, 199, 0, 188, 18, 24, 0, 160, 0, ' ', 202, '(', 164, 0, '`', 202, ')', 216, 164, 178, 212, '*', 172, 180, 226, 138, '1', 176, 196, '"', 203, ',', 180, 212, 'b', 203, '-', 248, 228, 194, 212, '.', 188, 244, 226, 139, '9', 4, 169, 4, 144, 'A', 196, 20, 'c', 145, 'D', 12, '%', 227, 22, 'E', ' ', 193, 132, 'R', 'M', 'U', 237, 212, 211, '4', 'C', 'U', 'c', 205, '5', 'g', 229, 244, 212, 'W', 220, 192, '%', 215, '7', 5, 173, 20, 208, 'A', 228, 148, 's', 209, 'D', 13, 165, 243, 'V', 'E', '!', 197, 148, 146, 'M', 'V', 241, 228, 211, '<', 'D', 213, 'c', 207, '=', 'h', 233, 4, 21, 'X', 252, 196, '5', 23, '`', 'c', 'p', '1', '2', '5', '8', 0, 'w', 'i', 'n', 'd', 'o', 'w', 's', '1', '2', '5', '8', 0, 0, ' ', '$', 3, 'P', '1', ']', 24, 's', 156, 177, 198, '}', 'u', 12, 128, 199, 'G', 1, 0, 0, 0, 0, 'L', 'L', 177, 197, 23, 'o', 252, '0', 196, 130, 157, 12, 192, 199, 'H', 1, 0, '@', '[', 160, 132, '"', 202, '(', 164, 148, 'b', 202, ')', 168, 164, 162, 202, '*', 172, 180, 226, 202, '+', 176, 196, '"', 203, ',', 180, 212, 'b', 203, '-', 184, 228, 162, 203, '.', 188, 244, 226, 203, '/', 192, 4, '#', 140, '@', 196, 20, 'c', 204, '1', 200, '$', 163, 204, '2', 132, '5', 227, 204, '3', 16, 'E', 's', 216, '4', 212, 212, 'e', 205, '5', 216, 'd', 163, 205, '6', 220, 220, 'e', 216, '7', 224, 132, '#', 206, '@', 228, 148, 'c', 206, '9', 232, 164, 163, 206, ':', 133, 181, 227, 206, ';', 17, 197, 131, 216, '<', 244, 216, 'e', 207, '=', 248, 228, 163, 207, '>', 252, 224, '5', 242, '?', 'k', 'o', 'i', '8', 'r', 0, 0, ' ', '3', 211, '\\', 179, 205, '7', 227, 156, 179, 206, ';', 243, 220, 243, 214, '\\', 'w', 237, 245, 215, '`', 135, '-', 'v', 204, 'c', 163, 156, '2', 203, '.', 191, 12, 138, 204, 176, 200, 'r', 203, '=', '>', 255, 12, 244, 135, 'A', 11, '=', '4', 209, 'E', 27, '}', '4', 210, 'I', '+', 189, '4', 211, 'M', ';', 253, 't', 't', 'P', 'G', '-', 245, 212, 'T', 'W', 'm', 245, 213, 'X', 'g', 173, 'u', '*', 29, 254, 7, '`', 133, 3, 18, '8', 161, 128, 20, 30, 136, '`', 130, 10, '.', 200, '`', 131, 14, 'z', 248, ' ', 132, 17, 'J', 'X', '`', 128, 27, 'j', 'h', 224, 133, 28, 'b', 'h', 'a', 134, 253, '}', 7, '^', '}', 227, 145, '7', 159, 'x', 244, 157, 135, '^', 'z', 234, 173, 199, '^', '{', 238, 249, 247, 30, '|', 241, 201, 'W', '^', 'x', 251, 233, 'g', 222, '}', 252, 225, 'g', '_', '~', 'k', 'o', 'i', '8', 'u', 0, 0, ' ', '3', 211, '\\', 179, 205, '7', 227, 156, 179, 206, ';', 243, 220, 243, 214, '\\', 'w', 237, 245, 215, '`', 135, '-', 'v', 204, 'c', 163, 156, '2', 203, '.', 191, 12, 138, 204, 176, 200, 'r', 203, '=', '>', 255, 12, 244, 135, '"', 10, 'M', 'b', 137, 'E', 27, '}', '4', 210, 'I', 187, 184, '4', 211, 'M', ';', 253, 't', 't', 212, 'E', 'm', 221, 'u', 'T', 'W', 'm', 245, 213, 'X', 183, 168, 'u', '*', 29, 254, 7, '`', 133, 3, 18, '8', 161, 128, 20, 30, 136, '`', 130, 10, '.', 200, '`', 131, 14, 'z', 248, ' ', 132, 17, 'J', 'X', '`', 128, 27, 'j', 'h', 224, 133, 28, 'b', 'h', 'a', 134, 253, '}', 7, '^', '}', 227, 145, '7', 159, 'x', 244, 157, 135, '^', 'z', 234, 173, 199, '^', '{', 238, 249, 247, 30, '|', 241, 201, 'W', '^', 'x', 251, 233, 'g', 222, '}', 252, 225, 'g', '_', '~', 'c', 'p', '4', '3', '7', 0, 0, ' ', 199, 240, 147, 142, '8', 228, 128, 'S', 206, '9', 234, 172, 131, 206, ';', 238, 176, 'C', 'L', '1', 201, 152, 'c', 12, '=', 246, 200, 179, 'O', '>', 255, 'X', 195, 141, '(', 163, 148, 18, '2', ']', 225, 180, '3', 143, '>', 241, 'D', 163, 138, '.', 191, 192, 204, 'J', '/', 188, 132, 178, 202, '.', '`', 135, '-', '6', 205, ':', '?', 13, '5', 209, 'C', 'G', 253, 's', 209, 'K', '+', 157, 180, 205, '7', 243, 188, 's', 206, '3', 247, 204, 't', 211, 'H', 11, '}', '5', 213, 'N', 251, 172, 'u', 213, 'V', 'K', '=', 245, 209, 'F', 3, 29, 't', 214, 'X', 227, '\\', 's', 215, '\\', '{', 253, 245, 214, 179, '}', 'c', 153, 'p', 165, 21, 'W', 139, 'q', 168, 'm', 182, 154, 'm', '*', '#', 'w', 219, 202, '-', 199, 242, 178, 203, '1', 203, '|', 15, 203, 176, 160, '|', 'K', 202, ' ', 203, '2', '6', '(', 'c', 'p', '8', '5', '0', 0, 0, ' ', 199, 240, 147, 142, '8', 228, 128, 'S', 206, '9', 234, 172, 131, 206, ';', 238, 176, 'C', 'L', '1', 201, 152, 'c', 12, '=', 246, 200, 179, 'O', '>', 255, 'X', 195, 13, '>', 163, '`', 's', 13, ']', 225, 180, '3', 143, '>', 241, 'D', 163, 138, '.', 191, 184, 194, 'J', '/', 188, 132, 178, 202, '.', '`', 135, '-', '6', 205, ':', 7, '#', 12, '0', 169, 'D', 253, 's', 209, 'K', 139, 'R', 138, 205, '7', 243, 188, 's', 206, '3', 247, '<', 206, '0', 'H', 11, '}', '5', 213, 'N', 251, 172, '5', ')', 240, '@', 163, 204, '2', 200, 180, 212, 140, '3', 207, 224, '\\', 's', 215, '\\', 155, 194, 204, 214, 211, '|', 'C', 141, '4', 245, 'T', 'S', 139, '?', 222, 'h', 179, 'M', '6', 253, 't', 243, 10, '-', 173, 196, '"', 177, '/', 182, 156, 'r', 15, '.', 176, 160, 'r', 'K', '.', 179, 200, '2', '6', '(', 'c', 'p', '8', '6', '6', 0, 0, ' ', 223, 129, 23, 158, 'x', 227, 145, 'W', 158, 'y', 231, 161, 151, 158, 'z', 235, 177, 215, 158, '{', 239, 193, 23, 159, '|', 243, 209, 'W', 159, '}', 247, 225, 151, 159, '~', 251, 241, 215, 159, 127, 255, 1, 24, 160, 128, 3, 18, 'X', 160, 129, 7, '"', 152, 160, 130, 11, '2', 216, 160, 131, '`', 135, '-', '6', 205, ':', '?', 13, '5', 209, 'C', 'G', 253, 's', 209, 'K', '+', 157, 180, 205, '7', 243, 188, 's', 206, '3', 247, 204, 't', 211, 'H', 11, '}', '5', 213, 'N', 251, 172, 'u', 213, 'V', 'K', '=', 245, 209, 'F', 3, 29, 't', 214, 'X', 227, '\\', 's', 215, '\\', '{', 253, 245, 214, 15, 'B', 24, 161, 132, 19, 'R', 'X', 161, 133, 23, 'b', 152, 161, 134, 27, 'r', 216, 161, 135, 209, '}', 'H', 157, 136, 215, 149, 216, 221, 138, 176, 160, '|', 'K', 202, '&', 147, '2', '6', '(', 'i', 'b', 'm', '1', '0', '4', '7', 0, 'c', 'p', '1', '0', '4', '7', 0, 0, 1, 156, '$', '`', 200, 31, 151, '4', 226, 200, 2, 12, '4', 224, 192, 3, 16, 'D', ' ', 193, 4, 157, 20, 130, 192, '!', 24, 'd', ' ', 201, '#', 28, 't', 224, 193, 7, 128, 4, '"', 200, ' ', 132, '(', 'p', 193, 6, 136, '$', 162, 200, '"', 140, 20, '`', 192, 1, 144, 'D', 'b', 193, '$', 148, 'T', 'b', 9, 1, 152, 'd', 162, 201, '&', 20, 'T', 224, 137, 6, ' ', 128, '"', 14, '9', 224, 132, '3', 'N', '9', 231, 196, '#', 138, 11, '<', 160, 176, 2, 31, '&', 164, 163, 206, ':', 232, 180, 227, 206, ';', 236, '|', 19, 2, 9, '*', 164, 176, 131, 23, '-', 188, ' ', 12, '1', 192, 4, '3', 'L', '1', 199, 'D', 'c', 10, 11, '%', '|', 225, 195, 15, 248, '$', 163, 204, '2', 200, '4', 227, 204, '3', 204, 128, 161, 195, 8, '@', 156, 208, 131, 8, 216, 132, '!', 198, 24, 'd', 148, 'a', 198, 25, 'h', 164, 177, 202, '.', 240, 244, 227, 'O', ',', 176, 168, 177, 6, 27, 'm', 184, 241, 6, 28, 'q', 200, 161, 138, '.', 230, 224, 'b', 12, ')', 181, 248, '1', 7, 29, 'u', 216, 'q', 7, 30, 'y', 232, 17, 202, '/', 208, 'l', 225, 141, '+', 172, 140, 'R', 202, '-', 169, 156, 'b', 11, '/', 189, 248, 210, 13, '*', 175, 't', 'A', 203, '5', '{', 4, '!', 196, 16, 'D', 20, 'a', 196, 17, 'H', '$', 209, 10, '=', 246, 200, '3', 'O', '=', '}', '(', 177, 4, 19, 'M', '8', 241, 4, 20, 'Q', 'H', 145, 203, '>', 252, 228, 163, 207, '?', '\\', 220, '3', 5, 21, 'U', 'X', 'q', 5, 22, 'Y', 'h', '!', 11, '5', 214, 'H', '3', 'M', '5', '0', 196, ' ', 195, 12, '4', 212, '`', 195, 13, '8', 228, '0', 203, '6', 220, 'd', 163, 205, '\''} + +// C documentation +// +// /* Table of characters that appear in legacy 8-bit codepages, +// * limited to 1024 slots (10 bit indices). The first 256 entries +// * are elided since those characters are obviously all included. */ +var _legacy_chars = [612]uint16{ + 0: uint16(256), + 1: uint16(257), + 2: uint16(258), + 3: uint16(259), + 4: uint16(260), + 5: uint16(261), + 6: uint16(262), + 7: uint16(263), + 8: uint16(264), + 9: uint16(265), + 10: uint16(266), + 11: uint16(267), + 12: uint16(268), + 13: uint16(269), + 14: uint16(270), + 15: uint16(271), + 16: uint16(272), + 17: uint16(273), + 18: uint16(274), + 19: uint16(275), + 20: uint16(278), + 21: uint16(279), + 22: uint16(280), + 23: uint16(281), + 24: uint16(282), + 25: uint16(283), + 26: uint16(284), + 27: uint16(285), + 28: uint16(286), + 29: uint16(287), + 30: uint16(288), + 31: uint16(289), + 32: uint16(290), + 33: uint16(291), + 34: uint16(292), + 35: uint16(293), + 36: uint16(294), + 37: uint16(295), + 38: uint16(296), + 39: uint16(297), + 40: uint16(298), + 41: uint16(299), + 42: uint16(302), + 43: uint16(303), + 44: uint16(304), + 45: uint16(305), + 46: uint16(308), + 47: uint16(309), + 48: uint16(310), + 49: uint16(311), + 50: uint16(312), + 51: uint16(313), + 52: uint16(314), + 53: uint16(315), + 54: uint16(316), + 55: uint16(317), + 56: uint16(318), + 57: uint16(321), + 58: uint16(322), + 59: uint16(323), + 60: uint16(324), + 61: uint16(325), + 62: uint16(326), + 63: uint16(327), + 64: uint16(328), + 65: uint16(330), + 66: uint16(331), + 67: uint16(332), + 68: uint16(333), + 69: uint16(336), + 70: uint16(337), + 71: uint16(338), + 72: uint16(339), + 73: uint16(340), + 74: uint16(341), + 75: uint16(342), + 76: uint16(343), + 77: uint16(344), + 78: uint16(345), + 79: uint16(346), + 80: uint16(347), + 81: uint16(348), + 82: uint16(349), + 83: uint16(350), + 84: uint16(351), + 85: uint16(352), + 86: uint16(353), + 87: uint16(354), + 88: uint16(355), + 89: uint16(356), + 90: uint16(357), + 91: uint16(358), + 92: uint16(359), + 93: uint16(360), + 94: uint16(361), + 95: uint16(362), + 96: uint16(363), + 97: uint16(364), + 98: uint16(365), + 99: uint16(366), + 100: uint16(367), + 101: uint16(368), + 102: uint16(369), + 103: uint16(370), + 104: uint16(371), + 105: uint16(372), + 106: uint16(373), + 107: uint16(374), + 108: uint16(375), + 109: uint16(376), + 110: uint16(377), + 111: uint16(378), + 112: uint16(379), + 113: uint16(380), + 114: uint16(381), + 115: uint16(382), + 116: uint16(402), + 117: uint16(416), + 118: uint16(417), + 119: uint16(431), + 120: uint16(432), + 121: uint16(536), + 122: uint16(537), + 123: uint16(538), + 124: uint16(539), + 125: uint16(710), + 126: uint16(711), + 127: uint16(728), + 128: uint16(729), + 129: uint16(731), + 130: uint16(732), + 131: uint16(733), + 132: uint16(768), + 133: uint16(769), + 134: uint16(771), + 135: uint16(777), + 136: uint16(803), + 137: uint16(890), + 138: uint16(900), + 139: uint16(901), + 140: uint16(902), + 141: uint16(904), + 142: uint16(905), + 143: uint16(906), + 144: uint16(908), + 145: uint16(910), + 146: uint16(911), + 147: uint16(912), + 148: uint16(913), + 149: uint16(914), + 150: uint16(915), + 151: uint16(916), + 152: uint16(917), + 153: uint16(918), + 154: uint16(919), + 155: uint16(920), + 156: uint16(921), + 157: uint16(922), + 158: uint16(923), + 159: uint16(924), + 160: uint16(925), + 161: uint16(926), + 162: uint16(927), + 163: uint16(928), + 164: uint16(929), + 165: uint16(931), + 166: uint16(932), + 167: uint16(933), + 168: uint16(934), + 169: uint16(935), + 170: uint16(936), + 171: uint16(937), + 172: uint16(938), + 173: uint16(939), + 174: uint16(940), + 175: uint16(941), + 176: uint16(942), + 177: uint16(943), + 178: uint16(944), + 179: uint16(945), + 180: uint16(946), + 181: uint16(947), + 182: uint16(948), + 183: uint16(949), + 184: uint16(950), + 185: uint16(951), + 186: uint16(952), + 187: uint16(953), + 188: uint16(954), + 189: uint16(955), + 190: uint16(956), + 191: uint16(957), + 192: uint16(958), + 193: uint16(959), + 194: uint16(960), + 195: uint16(961), + 196: uint16(962), + 197: uint16(963), + 198: uint16(964), + 199: uint16(965), + 200: uint16(966), + 201: uint16(967), + 202: uint16(968), + 203: uint16(969), + 204: uint16(970), + 205: uint16(971), + 206: uint16(972), + 207: uint16(973), + 208: uint16(974), + 209: uint16(1025), + 210: uint16(1026), + 211: uint16(1027), + 212: uint16(1028), + 213: uint16(1029), + 214: uint16(1030), + 215: uint16(1031), + 216: uint16(1032), + 217: uint16(1033), + 218: uint16(1034), + 219: uint16(1035), + 220: uint16(1036), + 221: uint16(1038), + 222: uint16(1039), + 223: uint16(1040), + 224: uint16(1041), + 225: uint16(1042), + 226: uint16(1043), + 227: uint16(1044), + 228: uint16(1045), + 229: uint16(1046), + 230: uint16(1047), + 231: uint16(1048), + 232: uint16(1049), + 233: uint16(1050), + 234: uint16(1051), + 235: uint16(1052), + 236: uint16(1053), + 237: uint16(1054), + 238: uint16(1055), + 239: uint16(1056), + 240: uint16(1057), + 241: uint16(1058), + 242: uint16(1059), + 243: uint16(1060), + 244: uint16(1061), + 245: uint16(1062), + 246: uint16(1063), + 247: uint16(1064), + 248: uint16(1065), + 249: uint16(1066), + 250: uint16(1067), + 251: uint16(1068), + 252: uint16(1069), + 253: uint16(1070), + 254: uint16(1071), + 255: uint16(1072), + 256: uint16(1073), + 257: uint16(1074), + 258: uint16(1075), + 259: uint16(1076), + 260: uint16(1077), + 261: uint16(1078), + 262: uint16(1079), + 263: uint16(1080), + 264: uint16(1081), + 265: uint16(1082), + 266: uint16(1083), + 267: uint16(1084), + 268: uint16(1085), + 269: uint16(1086), + 270: uint16(1087), + 271: uint16(1088), + 272: uint16(1089), + 273: uint16(1090), + 274: uint16(1091), + 275: uint16(1092), + 276: uint16(1093), + 277: uint16(1094), + 278: uint16(1095), + 279: uint16(1096), + 280: uint16(1097), + 281: uint16(1098), + 282: uint16(1099), + 283: uint16(1100), + 284: uint16(1101), + 285: uint16(1102), + 286: uint16(1103), + 287: uint16(1105), + 288: uint16(1106), + 289: uint16(1107), + 290: uint16(1108), + 291: uint16(1109), + 292: uint16(1110), + 293: uint16(1111), + 294: uint16(1112), + 295: uint16(1113), + 296: uint16(1114), + 297: uint16(1115), + 298: uint16(1116), + 299: uint16(1118), + 300: uint16(1119), + 301: uint16(1168), + 302: uint16(1169), + 303: uint16(1456), + 304: uint16(1457), + 305: uint16(1458), + 306: uint16(1459), + 307: uint16(1460), + 308: uint16(1461), + 309: uint16(1462), + 310: uint16(1463), + 311: uint16(1464), + 312: uint16(1465), + 313: uint16(1467), + 314: uint16(1468), + 315: uint16(1469), + 316: uint16(1470), + 317: uint16(1471), + 318: uint16(1472), + 319: uint16(1473), + 320: uint16(1474), + 321: uint16(1475), + 322: uint16(1488), + 323: uint16(1489), + 324: uint16(1490), + 325: uint16(1491), + 326: uint16(1492), + 327: uint16(1493), + 328: uint16(1494), + 329: uint16(1495), + 330: uint16(1496), + 331: uint16(1497), + 332: uint16(1498), + 333: uint16(1499), + 334: uint16(1500), + 335: uint16(1501), + 336: uint16(1502), + 337: uint16(1503), + 338: uint16(1504), + 339: uint16(1505), + 340: uint16(1506), + 341: uint16(1507), + 342: uint16(1508), + 343: uint16(1509), + 344: uint16(1510), + 345: uint16(1511), + 346: uint16(1512), + 347: uint16(1513), + 348: uint16(1514), + 349: uint16(1520), + 350: uint16(1521), + 351: uint16(1522), + 352: uint16(1523), + 353: uint16(1524), + 354: uint16(1548), + 355: uint16(1563), + 356: uint16(1567), + 357: uint16(1569), + 358: uint16(1570), + 359: uint16(1571), + 360: uint16(1572), + 361: uint16(1573), + 362: uint16(1574), + 363: uint16(1575), + 364: uint16(1576), + 365: uint16(1577), + 366: uint16(1578), + 367: uint16(1579), + 368: uint16(1580), + 369: uint16(1581), + 370: uint16(1582), + 371: uint16(1583), + 372: uint16(1584), + 373: uint16(1585), + 374: uint16(1586), + 375: uint16(1587), + 376: uint16(1588), + 377: uint16(1589), + 378: uint16(1590), + 379: uint16(1591), + 380: uint16(1592), + 381: uint16(1593), + 382: uint16(1594), + 383: uint16(1600), + 384: uint16(1601), + 385: uint16(1602), + 386: uint16(1603), + 387: uint16(1604), + 388: uint16(1605), + 389: uint16(1606), + 390: uint16(1607), + 391: uint16(1608), + 392: uint16(1609), + 393: uint16(1610), + 394: uint16(1611), + 395: uint16(1612), + 396: uint16(1613), + 397: uint16(1614), + 398: uint16(1615), + 399: uint16(1616), + 400: uint16(1617), + 401: uint16(1618), + 402: uint16(1657), + 403: uint16(1662), + 404: uint16(1670), + 405: uint16(1672), + 406: uint16(1681), + 407: uint16(1688), + 408: uint16(1705), + 409: uint16(1711), + 410: uint16(1722), + 411: uint16(1726), + 412: uint16(1729), + 413: uint16(1746), + 414: uint16(3585), + 415: uint16(3586), + 416: uint16(3587), + 417: uint16(3588), + 418: uint16(3589), + 419: uint16(3590), + 420: uint16(3591), + 421: uint16(3592), + 422: uint16(3593), + 423: uint16(3594), + 424: uint16(3595), + 425: uint16(3596), + 426: uint16(3597), + 427: uint16(3598), + 428: uint16(3599), + 429: uint16(3600), + 430: uint16(3601), + 431: uint16(3602), + 432: uint16(3603), + 433: uint16(3604), + 434: uint16(3605), + 435: uint16(3606), + 436: uint16(3607), + 437: uint16(3608), + 438: uint16(3609), + 439: uint16(3610), + 440: uint16(3611), + 441: uint16(3612), + 442: uint16(3613), + 443: uint16(3614), + 444: uint16(3615), + 445: uint16(3616), + 446: uint16(3617), + 447: uint16(3618), + 448: uint16(3619), + 449: uint16(3620), + 450: uint16(3621), + 451: uint16(3622), + 452: uint16(3623), + 453: uint16(3624), + 454: uint16(3625), + 455: uint16(3626), + 456: uint16(3627), + 457: uint16(3628), + 458: uint16(3629), + 459: uint16(3630), + 460: uint16(3631), + 461: uint16(3632), + 462: uint16(3633), + 463: uint16(3634), + 464: uint16(3635), + 465: uint16(3636), + 466: uint16(3637), + 467: uint16(3638), + 468: uint16(3639), + 469: uint16(3640), + 470: uint16(3641), + 471: uint16(3642), + 472: uint16(3647), + 473: uint16(3648), + 474: uint16(3649), + 475: uint16(3650), + 476: uint16(3651), + 477: uint16(3652), + 478: uint16(3653), + 479: uint16(3654), + 480: uint16(3655), + 481: uint16(3656), + 482: uint16(3657), + 483: uint16(3658), + 484: uint16(3659), + 485: uint16(3660), + 486: uint16(3661), + 487: uint16(3662), + 488: uint16(3663), + 489: uint16(3664), + 490: uint16(3665), + 491: uint16(3666), + 492: uint16(3667), + 493: uint16(3668), + 494: uint16(3669), + 495: uint16(3670), + 496: uint16(3671), + 497: uint16(3672), + 498: uint16(3673), + 499: uint16(3674), + 500: uint16(3675), + 501: uint16(7682), + 502: uint16(7683), + 503: uint16(7690), + 504: uint16(7691), + 505: uint16(7710), + 506: uint16(7711), + 507: uint16(7744), + 508: uint16(7745), + 509: uint16(7766), + 510: uint16(7767), + 511: uint16(7776), + 512: uint16(7777), + 513: uint16(7786), + 514: uint16(7787), + 515: uint16(7808), + 516: uint16(7809), + 517: uint16(7810), + 518: uint16(7811), + 519: uint16(7812), + 520: uint16(7813), + 521: uint16(7922), + 522: uint16(7923), + 523: uint16(8204), + 524: uint16(8205), + 525: uint16(8206), + 526: uint16(8207), + 527: uint16(8211), + 528: uint16(8212), + 529: uint16(8213), + 530: uint16(8215), + 531: uint16(8216), + 532: uint16(8217), + 533: uint16(8218), + 534: uint16(8220), + 535: uint16(8221), + 536: uint16(8222), + 537: uint16(8224), + 538: uint16(8225), + 539: uint16(8226), + 540: uint16(8230), + 541: uint16(8240), + 542: uint16(8249), + 543: uint16(8250), + 544: uint16(8319), + 545: uint16(8359), + 546: uint16(8362), + 547: uint16(8363), + 548: uint16(8364), + 549: uint16(8367), + 550: uint16(8470), + 551: uint16(8482), + 552: uint16(8729), + 553: uint16(8730), + 554: uint16(8734), + 555: uint16(8745), + 556: uint16(8776), + 557: uint16(8801), + 558: uint16(8804), + 559: uint16(8805), + 560: uint16(8976), + 561: uint16(8992), + 562: uint16(8993), + 563: uint16(9472), + 564: uint16(9474), + 565: uint16(9484), + 566: uint16(9488), + 567: uint16(9492), + 568: uint16(9496), + 569: uint16(9500), + 570: uint16(9508), + 571: uint16(9516), + 572: uint16(9524), + 573: uint16(9532), + 574: uint16(9552), + 575: uint16(9553), + 576: uint16(9554), + 577: uint16(9555), + 578: uint16(9556), + 579: uint16(9557), + 580: uint16(9558), + 581: uint16(9559), + 582: uint16(9560), + 583: uint16(9561), + 584: uint16(9562), + 585: uint16(9563), + 586: uint16(9564), + 587: uint16(9565), + 588: uint16(9566), + 589: uint16(9567), + 590: uint16(9568), + 591: uint16(9569), + 592: uint16(9570), + 593: uint16(9571), + 594: uint16(9572), + 595: uint16(9573), + 596: uint16(9574), + 597: uint16(9575), + 598: uint16(9576), + 599: uint16(9577), + 600: uint16(9578), + 601: uint16(9579), + 602: uint16(9580), + 603: uint16(9600), + 604: uint16(9604), + 605: uint16(9608), + 606: uint16(9612), + 607: uint16(9616), + 608: uint16(9617), + 609: uint16(9618), + 610: uint16(9619), + 611: uint16(9632), +} + +var _jis0208 = [84][94]uint16{ + 0: { + 0: uint16(12288), + 1: uint16(12289), + 2: uint16(12290), + 3: uint16(65292), + 4: uint16(65294), + 5: uint16(12539), + 6: uint16(65306), + 7: uint16(65307), + 8: uint16(65311), + 9: uint16(65281), + 10: uint16(12443), + 11: uint16(12444), + 12: uint16(180), + 13: uint16(65344), + 14: uint16(168), + 15: uint16(65342), + 16: uint16(65507), + 17: uint16(65343), + 18: uint16(12541), + 19: uint16(12542), + 20: uint16(12445), + 21: uint16(12446), + 22: uint16(12291), + 23: uint16(20189), + 24: uint16(12293), + 25: uint16(12294), + 26: uint16(12295), + 27: uint16(12540), + 28: uint16(8213), + 29: uint16(8208), + 30: uint16(65295), + 31: uint16(92), + 32: uint16(12316), + 33: uint16(8214), + 34: uint16(65372), + 35: uint16(8230), + 36: uint16(8229), + 37: uint16(8216), + 38: uint16(8217), + 39: uint16(8220), + 40: uint16(8221), + 41: uint16(65288), + 42: uint16(65289), + 43: uint16(12308), + 44: uint16(12309), + 45: uint16(65339), + 46: uint16(65341), + 47: uint16(65371), + 48: uint16(65373), + 49: uint16(12296), + 50: uint16(12297), + 51: uint16(12298), + 52: uint16(12299), + 53: uint16(12300), + 54: uint16(12301), + 55: uint16(12302), + 56: uint16(12303), + 57: uint16(12304), + 58: uint16(12305), + 59: uint16(65291), + 60: uint16(8722), + 61: uint16(177), + 62: uint16(215), + 63: uint16(247), + 64: uint16(65309), + 65: uint16(8800), + 66: uint16(65308), + 67: uint16(65310), + 68: uint16(8806), + 69: uint16(8807), + 70: uint16(8734), + 71: uint16(8756), + 72: uint16(9794), + 73: uint16(9792), + 74: uint16(176), + 75: uint16(8242), + 76: uint16(8243), + 77: uint16(8451), + 78: uint16(65509), + 79: uint16(65284), + 80: uint16(162), + 81: uint16(163), + 82: uint16(65285), + 83: uint16(65283), + 84: uint16(65286), + 85: uint16(65290), + 86: uint16(65312), + 87: uint16(167), + 88: uint16(9734), + 89: uint16(9733), + 90: uint16(9675), + 91: uint16(9679), + 92: uint16(9678), + 93: uint16(9671), + }, + 1: { + 0: uint16(9670), + 1: uint16(9633), + 2: uint16(9632), + 3: uint16(9651), + 4: uint16(9650), + 5: uint16(9661), + 6: uint16(9660), + 7: uint16(8251), + 8: uint16(12306), + 9: uint16(8594), + 10: uint16(8592), + 11: uint16(8593), + 12: uint16(8595), + 13: uint16(12307), + 25: uint16(8712), + 26: uint16(8715), + 27: uint16(8838), + 28: uint16(8839), + 29: uint16(8834), + 30: uint16(8835), + 31: uint16(8746), + 32: uint16(8745), + 41: uint16(8743), + 42: uint16(8744), + 43: uint16(172), + 44: uint16(8658), + 45: uint16(8660), + 46: uint16(8704), + 47: uint16(8707), + 59: uint16(8736), + 60: uint16(8869), + 61: uint16(8978), + 62: uint16(8706), + 63: uint16(8711), + 64: uint16(8801), + 65: uint16(8786), + 66: uint16(8810), + 67: uint16(8811), + 68: uint16(8730), + 69: uint16(8765), + 70: uint16(8733), + 71: uint16(8757), + 72: uint16(8747), + 73: uint16(8748), + 81: uint16(8491), + 82: uint16(8240), + 83: uint16(9839), + 84: uint16(9837), + 85: uint16(9834), + 86: uint16(8224), + 87: uint16(8225), + 88: uint16(182), + 93: uint16(9711), + }, + 2: { + 15: uint16(65296), + 16: uint16(65297), + 17: uint16(65298), + 18: uint16(65299), + 19: uint16(65300), + 20: uint16(65301), + 21: uint16(65302), + 22: uint16(65303), + 23: uint16(65304), + 24: uint16(65305), + 32: uint16(65313), + 33: uint16(65314), + 34: uint16(65315), + 35: uint16(65316), + 36: uint16(65317), + 37: uint16(65318), + 38: uint16(65319), + 39: uint16(65320), + 40: uint16(65321), + 41: uint16(65322), + 42: uint16(65323), + 43: uint16(65324), + 44: uint16(65325), + 45: uint16(65326), + 46: uint16(65327), + 47: uint16(65328), + 48: uint16(65329), + 49: uint16(65330), + 50: uint16(65331), + 51: uint16(65332), + 52: uint16(65333), + 53: uint16(65334), + 54: uint16(65335), + 55: uint16(65336), + 56: uint16(65337), + 57: uint16(65338), + 64: uint16(65345), + 65: uint16(65346), + 66: uint16(65347), + 67: uint16(65348), + 68: uint16(65349), + 69: uint16(65350), + 70: uint16(65351), + 71: uint16(65352), + 72: uint16(65353), + 73: uint16(65354), + 74: uint16(65355), + 75: uint16(65356), + 76: uint16(65357), + 77: uint16(65358), + 78: uint16(65359), + 79: uint16(65360), + 80: uint16(65361), + 81: uint16(65362), + 82: uint16(65363), + 83: uint16(65364), + 84: uint16(65365), + 85: uint16(65366), + 86: uint16(65367), + 87: uint16(65368), + 88: uint16(65369), + 89: uint16(65370), + }, + 3: { + 0: uint16(12353), + 1: uint16(12354), + 2: uint16(12355), + 3: uint16(12356), + 4: uint16(12357), + 5: uint16(12358), + 6: uint16(12359), + 7: uint16(12360), + 8: uint16(12361), + 9: uint16(12362), + 10: uint16(12363), + 11: uint16(12364), + 12: uint16(12365), + 13: uint16(12366), + 14: uint16(12367), + 15: uint16(12368), + 16: uint16(12369), + 17: uint16(12370), + 18: uint16(12371), + 19: uint16(12372), + 20: uint16(12373), + 21: uint16(12374), + 22: uint16(12375), + 23: uint16(12376), + 24: uint16(12377), + 25: uint16(12378), + 26: uint16(12379), + 27: uint16(12380), + 28: uint16(12381), + 29: uint16(12382), + 30: uint16(12383), + 31: uint16(12384), + 32: uint16(12385), + 33: uint16(12386), + 34: uint16(12387), + 35: uint16(12388), + 36: uint16(12389), + 37: uint16(12390), + 38: uint16(12391), + 39: uint16(12392), + 40: uint16(12393), + 41: uint16(12394), + 42: uint16(12395), + 43: uint16(12396), + 44: uint16(12397), + 45: uint16(12398), + 46: uint16(12399), + 47: uint16(12400), + 48: uint16(12401), + 49: uint16(12402), + 50: uint16(12403), + 51: uint16(12404), + 52: uint16(12405), + 53: uint16(12406), + 54: uint16(12407), + 55: uint16(12408), + 56: uint16(12409), + 57: uint16(12410), + 58: uint16(12411), + 59: uint16(12412), + 60: uint16(12413), + 61: uint16(12414), + 62: uint16(12415), + 63: uint16(12416), + 64: uint16(12417), + 65: uint16(12418), + 66: uint16(12419), + 67: uint16(12420), + 68: uint16(12421), + 69: uint16(12422), + 70: uint16(12423), + 71: uint16(12424), + 72: uint16(12425), + 73: uint16(12426), + 74: uint16(12427), + 75: uint16(12428), + 76: uint16(12429), + 77: uint16(12430), + 78: uint16(12431), + 79: uint16(12432), + 80: uint16(12433), + 81: uint16(12434), + 82: uint16(12435), + }, + 4: { + 0: uint16(12449), + 1: uint16(12450), + 2: uint16(12451), + 3: uint16(12452), + 4: uint16(12453), + 5: uint16(12454), + 6: uint16(12455), + 7: uint16(12456), + 8: uint16(12457), + 9: uint16(12458), + 10: uint16(12459), + 11: uint16(12460), + 12: uint16(12461), + 13: uint16(12462), + 14: uint16(12463), + 15: uint16(12464), + 16: uint16(12465), + 17: uint16(12466), + 18: uint16(12467), + 19: uint16(12468), + 20: uint16(12469), + 21: uint16(12470), + 22: uint16(12471), + 23: uint16(12472), + 24: uint16(12473), + 25: uint16(12474), + 26: uint16(12475), + 27: uint16(12476), + 28: uint16(12477), + 29: uint16(12478), + 30: uint16(12479), + 31: uint16(12480), + 32: uint16(12481), + 33: uint16(12482), + 34: uint16(12483), + 35: uint16(12484), + 36: uint16(12485), + 37: uint16(12486), + 38: uint16(12487), + 39: uint16(12488), + 40: uint16(12489), + 41: uint16(12490), + 42: uint16(12491), + 43: uint16(12492), + 44: uint16(12493), + 45: uint16(12494), + 46: uint16(12495), + 47: uint16(12496), + 48: uint16(12497), + 49: uint16(12498), + 50: uint16(12499), + 51: uint16(12500), + 52: uint16(12501), + 53: uint16(12502), + 54: uint16(12503), + 55: uint16(12504), + 56: uint16(12505), + 57: uint16(12506), + 58: uint16(12507), + 59: uint16(12508), + 60: uint16(12509), + 61: uint16(12510), + 62: uint16(12511), + 63: uint16(12512), + 64: uint16(12513), + 65: uint16(12514), + 66: uint16(12515), + 67: uint16(12516), + 68: uint16(12517), + 69: uint16(12518), + 70: uint16(12519), + 71: uint16(12520), + 72: uint16(12521), + 73: uint16(12522), + 74: uint16(12523), + 75: uint16(12524), + 76: uint16(12525), + 77: uint16(12526), + 78: uint16(12527), + 79: uint16(12528), + 80: uint16(12529), + 81: uint16(12530), + 82: uint16(12531), + 83: uint16(12532), + 84: uint16(12533), + 85: uint16(12534), + }, + 5: { + 0: uint16(913), + 1: uint16(914), + 2: uint16(915), + 3: uint16(916), + 4: uint16(917), + 5: uint16(918), + 6: uint16(919), + 7: uint16(920), + 8: uint16(921), + 9: uint16(922), + 10: uint16(923), + 11: uint16(924), + 12: uint16(925), + 13: uint16(926), + 14: uint16(927), + 15: uint16(928), + 16: uint16(929), + 17: uint16(931), + 18: uint16(932), + 19: uint16(933), + 20: uint16(934), + 21: uint16(935), + 22: uint16(936), + 23: uint16(937), + 32: uint16(945), + 33: uint16(946), + 34: uint16(947), + 35: uint16(948), + 36: uint16(949), + 37: uint16(950), + 38: uint16(951), + 39: uint16(952), + 40: uint16(953), + 41: uint16(954), + 42: uint16(955), + 43: uint16(956), + 44: uint16(957), + 45: uint16(958), + 46: uint16(959), + 47: uint16(960), + 48: uint16(961), + 49: uint16(963), + 50: uint16(964), + 51: uint16(965), + 52: uint16(966), + 53: uint16(967), + 54: uint16(968), + 55: uint16(969), + }, + 6: { + 0: uint16(1040), + 1: uint16(1041), + 2: uint16(1042), + 3: uint16(1043), + 4: uint16(1044), + 5: uint16(1045), + 6: uint16(1025), + 7: uint16(1046), + 8: uint16(1047), + 9: uint16(1048), + 10: uint16(1049), + 11: uint16(1050), + 12: uint16(1051), + 13: uint16(1052), + 14: uint16(1053), + 15: uint16(1054), + 16: uint16(1055), + 17: uint16(1056), + 18: uint16(1057), + 19: uint16(1058), + 20: uint16(1059), + 21: uint16(1060), + 22: uint16(1061), + 23: uint16(1062), + 24: uint16(1063), + 25: uint16(1064), + 26: uint16(1065), + 27: uint16(1066), + 28: uint16(1067), + 29: uint16(1068), + 30: uint16(1069), + 31: uint16(1070), + 32: uint16(1071), + 48: uint16(1072), + 49: uint16(1073), + 50: uint16(1074), + 51: uint16(1075), + 52: uint16(1076), + 53: uint16(1077), + 54: uint16(1105), + 55: uint16(1078), + 56: uint16(1079), + 57: uint16(1080), + 58: uint16(1081), + 59: uint16(1082), + 60: uint16(1083), + 61: uint16(1084), + 62: uint16(1085), + 63: uint16(1086), + 64: uint16(1087), + 65: uint16(1088), + 66: uint16(1089), + 67: uint16(1090), + 68: uint16(1091), + 69: uint16(1092), + 70: uint16(1093), + 71: uint16(1094), + 72: uint16(1095), + 73: uint16(1096), + 74: uint16(1097), + 75: uint16(1098), + 76: uint16(1099), + 77: uint16(1100), + 78: uint16(1101), + 79: uint16(1102), + 80: uint16(1103), + }, + 7: { + 0: uint16(9472), + 1: uint16(9474), + 2: uint16(9484), + 3: uint16(9488), + 4: uint16(9496), + 5: uint16(9492), + 6: uint16(9500), + 7: uint16(9516), + 8: uint16(9508), + 9: uint16(9524), + 10: uint16(9532), + 11: uint16(9473), + 12: uint16(9475), + 13: uint16(9487), + 14: uint16(9491), + 15: uint16(9499), + 16: uint16(9495), + 17: uint16(9507), + 18: uint16(9523), + 19: uint16(9515), + 20: uint16(9531), + 21: uint16(9547), + 22: uint16(9504), + 23: uint16(9519), + 24: uint16(9512), + 25: uint16(9527), + 26: uint16(9535), + 27: uint16(9501), + 28: uint16(9520), + 29: uint16(9509), + 30: uint16(9528), + 31: uint16(9538), + }, + 8: {}, + 9: {}, + 10: {}, + 11: {}, + 12: {}, + 13: {}, + 14: {}, + 15: { + 0: uint16(20124), + 1: uint16(21782), + 2: uint16(23043), + 3: uint16(38463), + 4: uint16(21696), + 5: uint16(24859), + 6: uint16(25384), + 7: uint16(23030), + 8: uint16(36898), + 9: uint16(33909), + 10: uint16(33564), + 11: uint16(31312), + 12: uint16(24746), + 13: uint16(25569), + 14: uint16(28197), + 15: uint16(26093), + 16: uint16(33894), + 17: uint16(33446), + 18: uint16(39925), + 19: uint16(26771), + 20: uint16(22311), + 21: uint16(26017), + 22: uint16(25201), + 23: uint16(23451), + 24: uint16(22992), + 25: uint16(34427), + 26: uint16(39156), + 27: uint16(32098), + 28: uint16(32190), + 29: uint16(39822), + 30: uint16(25110), + 31: uint16(31903), + 32: uint16(34999), + 33: uint16(23433), + 34: uint16(24245), + 35: uint16(25353), + 36: uint16(26263), + 37: uint16(26696), + 38: uint16(38343), + 39: uint16(38797), + 40: uint16(26447), + 41: uint16(20197), + 42: uint16(20234), + 43: uint16(20301), + 44: uint16(20381), + 45: uint16(20553), + 46: uint16(22258), + 47: uint16(22839), + 48: uint16(22996), + 49: uint16(23041), + 50: uint16(23561), + 51: uint16(24799), + 52: uint16(24847), + 53: uint16(24944), + 54: uint16(26131), + 55: uint16(26885), + 56: uint16(28858), + 57: uint16(30031), + 58: uint16(30064), + 59: uint16(31227), + 60: uint16(32173), + 61: uint16(32239), + 62: uint16(32963), + 63: uint16(33806), + 64: uint16(34915), + 65: uint16(35586), + 66: uint16(36949), + 67: uint16(36986), + 68: uint16(21307), + 69: uint16(20117), + 70: uint16(20133), + 71: uint16(22495), + 72: uint16(32946), + 73: uint16(37057), + 74: uint16(30959), + 75: uint16(19968), + 76: uint16(22769), + 77: uint16(28322), + 78: uint16(36920), + 79: uint16(31282), + 80: uint16(33576), + 81: uint16(33419), + 82: uint16(39983), + 83: uint16(20801), + 84: uint16(21360), + 85: uint16(21693), + 86: uint16(21729), + 87: uint16(22240), + 88: uint16(23035), + 89: uint16(24341), + 90: uint16(39154), + 91: uint16(28139), + 92: uint16(32996), + 93: uint16(34093), + }, + 16: { + 0: uint16(38498), + 1: uint16(38512), + 2: uint16(38560), + 3: uint16(38907), + 4: uint16(21515), + 5: uint16(21491), + 6: uint16(23431), + 7: uint16(28879), + 8: uint16(32701), + 9: uint16(36802), + 10: uint16(38632), + 11: uint16(21359), + 12: uint16(40284), + 13: uint16(31418), + 14: uint16(19985), + 15: uint16(30867), + 16: uint16(33276), + 17: uint16(28198), + 18: uint16(22040), + 19: uint16(21764), + 20: uint16(27421), + 21: uint16(34074), + 22: uint16(39995), + 23: uint16(23013), + 24: uint16(21417), + 25: uint16(28006), + 26: uint16(29916), + 27: uint16(38287), + 28: uint16(22082), + 29: uint16(20113), + 30: uint16(36939), + 31: uint16(38642), + 32: uint16(33615), + 33: uint16(39180), + 34: uint16(21473), + 35: uint16(21942), + 36: uint16(23344), + 37: uint16(24433), + 38: uint16(26144), + 39: uint16(26355), + 40: uint16(26628), + 41: uint16(27704), + 42: uint16(27891), + 43: uint16(27945), + 44: uint16(29787), + 45: uint16(30408), + 46: uint16(31310), + 47: uint16(38964), + 48: uint16(33521), + 49: uint16(34907), + 50: uint16(35424), + 51: uint16(37613), + 52: uint16(28082), + 53: uint16(30123), + 54: uint16(30410), + 55: uint16(39365), + 56: uint16(24742), + 57: uint16(35585), + 58: uint16(36234), + 59: uint16(38322), + 60: uint16(27022), + 61: uint16(21421), + 62: uint16(20870), + 63: uint16(22290), + 64: uint16(22576), + 65: uint16(22852), + 66: uint16(23476), + 67: uint16(24310), + 68: uint16(24616), + 69: uint16(25513), + 70: uint16(25588), + 71: uint16(27839), + 72: uint16(28436), + 73: uint16(28814), + 74: uint16(28948), + 75: uint16(29017), + 76: uint16(29141), + 77: uint16(29503), + 78: uint16(32257), + 79: uint16(33398), + 80: uint16(33489), + 81: uint16(34199), + 82: uint16(36960), + 83: uint16(37467), + 84: uint16(40219), + 85: uint16(22633), + 86: uint16(26044), + 87: uint16(27738), + 88: uint16(29989), + 89: uint16(20985), + 90: uint16(22830), + 91: uint16(22885), + 92: uint16(24448), + 93: uint16(24540), + }, + 17: { + 0: uint16(25276), + 1: uint16(26106), + 2: uint16(27178), + 3: uint16(27431), + 4: uint16(27572), + 5: uint16(29579), + 6: uint16(32705), + 7: uint16(35158), + 8: uint16(40236), + 9: uint16(40206), + 10: uint16(40644), + 11: uint16(23713), + 12: uint16(27798), + 13: uint16(33659), + 14: uint16(20740), + 15: uint16(23627), + 16: uint16(25014), + 17: uint16(33222), + 18: uint16(26742), + 19: uint16(29281), + 20: uint16(20057), + 21: uint16(20474), + 22: uint16(21368), + 23: uint16(24681), + 24: uint16(28201), + 25: uint16(31311), + 26: uint16(38899), + 27: uint16(19979), + 28: uint16(21270), + 29: uint16(20206), + 30: uint16(20309), + 31: uint16(20285), + 32: uint16(20385), + 33: uint16(20339), + 34: uint16(21152), + 35: uint16(21487), + 36: uint16(22025), + 37: uint16(22799), + 38: uint16(23233), + 39: uint16(23478), + 40: uint16(23521), + 41: uint16(31185), + 42: uint16(26247), + 43: uint16(26524), + 44: uint16(26550), + 45: uint16(27468), + 46: uint16(27827), + 47: uint16(28779), + 48: uint16(29634), + 49: uint16(31117), + 50: uint16(31166), + 51: uint16(31292), + 52: uint16(31623), + 53: uint16(33457), + 54: uint16(33499), + 55: uint16(33540), + 56: uint16(33655), + 57: uint16(33775), + 58: uint16(33747), + 59: uint16(34662), + 60: uint16(35506), + 61: uint16(22057), + 62: uint16(36008), + 63: uint16(36838), + 64: uint16(36942), + 65: uint16(38686), + 66: uint16(34442), + 67: uint16(20420), + 68: uint16(23784), + 69: uint16(25105), + 70: uint16(29273), + 71: uint16(30011), + 72: uint16(33253), + 73: uint16(33469), + 74: uint16(34558), + 75: uint16(36032), + 76: uint16(38597), + 77: uint16(39187), + 78: uint16(39381), + 79: uint16(20171), + 80: uint16(20250), + 81: uint16(35299), + 82: uint16(22238), + 83: uint16(22602), + 84: uint16(22730), + 85: uint16(24315), + 86: uint16(24555), + 87: uint16(24618), + 88: uint16(24724), + 89: uint16(24674), + 90: uint16(25040), + 91: uint16(25106), + 92: uint16(25296), + 93: uint16(25913), + }, + 18: { + 0: uint16(39745), + 1: uint16(26214), + 2: uint16(26800), + 3: uint16(28023), + 4: uint16(28784), + 5: uint16(30028), + 6: uint16(30342), + 7: uint16(32117), + 8: uint16(33445), + 9: uint16(34809), + 10: uint16(38283), + 11: uint16(38542), + 12: uint16(35997), + 13: uint16(20977), + 14: uint16(21182), + 15: uint16(22806), + 16: uint16(21683), + 17: uint16(23475), + 18: uint16(23830), + 19: uint16(24936), + 20: uint16(27010), + 21: uint16(28079), + 22: uint16(30861), + 23: uint16(33995), + 24: uint16(34903), + 25: uint16(35442), + 26: uint16(37799), + 27: uint16(39608), + 28: uint16(28012), + 29: uint16(39336), + 30: uint16(34521), + 31: uint16(22435), + 32: uint16(26623), + 33: uint16(34510), + 34: uint16(37390), + 35: uint16(21123), + 36: uint16(22151), + 37: uint16(21508), + 38: uint16(24275), + 39: uint16(25313), + 40: uint16(25785), + 41: uint16(26684), + 42: uint16(26680), + 43: uint16(27579), + 44: uint16(29554), + 45: uint16(30906), + 46: uint16(31339), + 47: uint16(35226), + 48: uint16(35282), + 49: uint16(36203), + 50: uint16(36611), + 51: uint16(37101), + 52: uint16(38307), + 53: uint16(38548), + 54: uint16(38761), + 55: uint16(23398), + 56: uint16(23731), + 57: uint16(27005), + 58: uint16(38989), + 59: uint16(38990), + 60: uint16(25499), + 61: uint16(31520), + 62: uint16(27179), + 63: uint16(27263), + 64: uint16(26806), + 65: uint16(39949), + 66: uint16(28511), + 67: uint16(21106), + 68: uint16(21917), + 69: uint16(24688), + 70: uint16(25324), + 71: uint16(27963), + 72: uint16(28167), + 73: uint16(28369), + 74: uint16(33883), + 75: uint16(35088), + 76: uint16(36676), + 77: uint16(19988), + 78: uint16(39993), + 79: uint16(21494), + 80: uint16(26907), + 81: uint16(27194), + 82: uint16(38788), + 83: uint16(26666), + 84: uint16(20828), + 85: uint16(31427), + 86: uint16(33970), + 87: uint16(37340), + 88: uint16(37772), + 89: uint16(22107), + 90: uint16(40232), + 91: uint16(26658), + 92: uint16(33541), + 93: uint16(33841), + }, + 19: { + 0: uint16(31909), + 1: uint16(21000), + 2: uint16(33477), + 3: uint16(29926), + 4: uint16(20094), + 5: uint16(20355), + 6: uint16(20896), + 7: uint16(23506), + 8: uint16(21002), + 9: uint16(21208), + 10: uint16(21223), + 11: uint16(24059), + 12: uint16(21914), + 13: uint16(22570), + 14: uint16(23014), + 15: uint16(23436), + 16: uint16(23448), + 17: uint16(23515), + 18: uint16(24178), + 19: uint16(24185), + 20: uint16(24739), + 21: uint16(24863), + 22: uint16(24931), + 23: uint16(25022), + 24: uint16(25563), + 25: uint16(25954), + 26: uint16(26577), + 27: uint16(26707), + 28: uint16(26874), + 29: uint16(27454), + 30: uint16(27475), + 31: uint16(27735), + 32: uint16(28450), + 33: uint16(28567), + 34: uint16(28485), + 35: uint16(29872), + 36: uint16(29976), + 37: uint16(30435), + 38: uint16(30475), + 39: uint16(31487), + 40: uint16(31649), + 41: uint16(31777), + 42: uint16(32233), + 43: uint16(32566), + 44: uint16(32752), + 45: uint16(32925), + 46: uint16(33382), + 47: uint16(33694), + 48: uint16(35251), + 49: uint16(35532), + 50: uint16(36011), + 51: uint16(36996), + 52: uint16(37969), + 53: uint16(38291), + 54: uint16(38289), + 55: uint16(38306), + 56: uint16(38501), + 57: uint16(38867), + 58: uint16(39208), + 59: uint16(33304), + 60: uint16(20024), + 61: uint16(21547), + 62: uint16(23736), + 63: uint16(24012), + 64: uint16(29609), + 65: uint16(30284), + 66: uint16(30524), + 67: uint16(23721), + 68: uint16(32747), + 69: uint16(36107), + 70: uint16(38593), + 71: uint16(38929), + 72: uint16(38996), + 73: uint16(39000), + 74: uint16(20225), + 75: uint16(20238), + 76: uint16(21361), + 77: uint16(21916), + 78: uint16(22120), + 79: uint16(22522), + 80: uint16(22855), + 81: uint16(23305), + 82: uint16(23492), + 83: uint16(23696), + 84: uint16(24076), + 85: uint16(24190), + 86: uint16(24524), + 87: uint16(25582), + 88: uint16(26426), + 89: uint16(26071), + 90: uint16(26082), + 91: uint16(26399), + 92: uint16(26827), + 93: uint16(26820), + }, + 20: { + 0: uint16(27231), + 1: uint16(24112), + 2: uint16(27589), + 3: uint16(27671), + 4: uint16(27773), + 5: uint16(30079), + 6: uint16(31048), + 7: uint16(23395), + 8: uint16(31232), + 9: uint16(32000), + 10: uint16(24509), + 11: uint16(35215), + 12: uint16(35352), + 13: uint16(36020), + 14: uint16(36215), + 15: uint16(36556), + 16: uint16(36637), + 17: uint16(39138), + 18: uint16(39438), + 19: uint16(39740), + 20: uint16(20096), + 21: uint16(20605), + 22: uint16(20736), + 23: uint16(22931), + 24: uint16(23452), + 25: uint16(25135), + 26: uint16(25216), + 27: uint16(25836), + 28: uint16(27450), + 29: uint16(29344), + 30: uint16(30097), + 31: uint16(31047), + 32: uint16(32681), + 33: uint16(34811), + 34: uint16(35516), + 35: uint16(35696), + 36: uint16(25516), + 37: uint16(33738), + 38: uint16(38816), + 39: uint16(21513), + 40: uint16(21507), + 41: uint16(21931), + 42: uint16(26708), + 43: uint16(27224), + 44: uint16(35440), + 45: uint16(30759), + 46: uint16(26485), + 47: uint16(40653), + 48: uint16(21364), + 49: uint16(23458), + 50: uint16(33050), + 51: uint16(34384), + 52: uint16(36870), + 53: uint16(19992), + 54: uint16(20037), + 55: uint16(20167), + 56: uint16(20241), + 57: uint16(21450), + 58: uint16(21560), + 59: uint16(23470), + 60: uint16(24339), + 61: uint16(24613), + 62: uint16(25937), + 63: uint16(26429), + 64: uint16(27714), + 65: uint16(27762), + 66: uint16(27875), + 67: uint16(28792), + 68: uint16(29699), + 69: uint16(31350), + 70: uint16(31406), + 71: uint16(31496), + 72: uint16(32026), + 73: uint16(31998), + 74: uint16(32102), + 75: uint16(26087), + 76: uint16(29275), + 77: uint16(21435), + 78: uint16(23621), + 79: uint16(24040), + 80: uint16(25298), + 81: uint16(25312), + 82: uint16(25369), + 83: uint16(28192), + 84: uint16(34394), + 85: uint16(35377), + 86: uint16(36317), + 87: uint16(37624), + 88: uint16(28417), + 89: uint16(31142), + 90: uint16(39770), + 91: uint16(20136), + 92: uint16(20139), + 93: uint16(20140), + }, + 21: { + 0: uint16(20379), + 1: uint16(20384), + 2: uint16(20689), + 3: uint16(20807), + 4: uint16(31478), + 5: uint16(20849), + 6: uint16(20982), + 7: uint16(21332), + 8: uint16(21281), + 9: uint16(21375), + 10: uint16(21483), + 11: uint16(21932), + 12: uint16(22659), + 13: uint16(23777), + 14: uint16(24375), + 15: uint16(24394), + 16: uint16(24623), + 17: uint16(24656), + 18: uint16(24685), + 19: uint16(25375), + 20: uint16(25945), + 21: uint16(27211), + 22: uint16(27841), + 23: uint16(29378), + 24: uint16(29421), + 25: uint16(30703), + 26: uint16(33016), + 27: uint16(33029), + 28: uint16(33288), + 29: uint16(34126), + 30: uint16(37111), + 31: uint16(37857), + 32: uint16(38911), + 33: uint16(39255), + 34: uint16(39514), + 35: uint16(20208), + 36: uint16(20957), + 37: uint16(23597), + 38: uint16(26241), + 39: uint16(26989), + 40: uint16(23616), + 41: uint16(26354), + 42: uint16(26997), + 43: uint16(29577), + 44: uint16(26704), + 45: uint16(31873), + 46: uint16(20677), + 47: uint16(21220), + 48: uint16(22343), + 49: uint16(24062), + 50: uint16(37670), + 51: uint16(26020), + 52: uint16(27427), + 53: uint16(27453), + 54: uint16(29748), + 55: uint16(31105), + 56: uint16(31165), + 57: uint16(31563), + 58: uint16(32202), + 59: uint16(33465), + 60: uint16(33740), + 61: uint16(34943), + 62: uint16(35167), + 63: uint16(35641), + 64: uint16(36817), + 65: uint16(37329), + 66: uint16(21535), + 67: uint16(37504), + 68: uint16(20061), + 69: uint16(20534), + 70: uint16(21477), + 71: uint16(21306), + 72: uint16(29399), + 73: uint16(29590), + 74: uint16(30697), + 75: uint16(33510), + 76: uint16(36527), + 77: uint16(39366), + 78: uint16(39368), + 79: uint16(39378), + 80: uint16(20855), + 81: uint16(24858), + 82: uint16(34398), + 83: uint16(21936), + 84: uint16(31354), + 85: uint16(20598), + 86: uint16(23507), + 87: uint16(36935), + 88: uint16(38533), + 89: uint16(20018), + 90: uint16(27355), + 91: uint16(37351), + 92: uint16(23633), + 93: uint16(23624), + }, + 22: { + 0: uint16(25496), + 1: uint16(31391), + 2: uint16(27795), + 3: uint16(38772), + 4: uint16(36705), + 5: uint16(31402), + 6: uint16(29066), + 7: uint16(38536), + 8: uint16(31874), + 9: uint16(26647), + 10: uint16(32368), + 11: uint16(26705), + 12: uint16(37740), + 13: uint16(21234), + 14: uint16(21531), + 15: uint16(34219), + 16: uint16(35347), + 17: uint16(32676), + 18: uint16(36557), + 19: uint16(37089), + 20: uint16(21350), + 21: uint16(34952), + 22: uint16(31041), + 23: uint16(20418), + 24: uint16(20670), + 25: uint16(21009), + 26: uint16(20804), + 27: uint16(21843), + 28: uint16(22317), + 29: uint16(29674), + 30: uint16(22411), + 31: uint16(22865), + 32: uint16(24418), + 33: uint16(24452), + 34: uint16(24693), + 35: uint16(24950), + 36: uint16(24935), + 37: uint16(25001), + 38: uint16(25522), + 39: uint16(25658), + 40: uint16(25964), + 41: uint16(26223), + 42: uint16(26690), + 43: uint16(28179), + 44: uint16(30054), + 45: uint16(31293), + 46: uint16(31995), + 47: uint16(32076), + 48: uint16(32153), + 49: uint16(32331), + 50: uint16(32619), + 51: uint16(33550), + 52: uint16(33610), + 53: uint16(34509), + 54: uint16(35336), + 55: uint16(35427), + 56: uint16(35686), + 57: uint16(36605), + 58: uint16(38938), + 59: uint16(40335), + 60: uint16(33464), + 61: uint16(36814), + 62: uint16(39912), + 63: uint16(21127), + 64: uint16(25119), + 65: uint16(25731), + 66: uint16(28608), + 67: uint16(38553), + 68: uint16(26689), + 69: uint16(20625), + 70: uint16(27424), + 71: uint16(27770), + 72: uint16(28500), + 73: uint16(31348), + 74: uint16(32080), + 75: uint16(34880), + 76: uint16(35363), + 77: uint16(26376), + 78: uint16(20214), + 79: uint16(20537), + 80: uint16(20518), + 81: uint16(20581), + 82: uint16(20860), + 83: uint16(21048), + 84: uint16(21091), + 85: uint16(21927), + 86: uint16(22287), + 87: uint16(22533), + 88: uint16(23244), + 89: uint16(24314), + 90: uint16(25010), + 91: uint16(25080), + 92: uint16(25331), + 93: uint16(25458), + }, + 23: { + 0: uint16(26908), + 1: uint16(27177), + 2: uint16(29309), + 3: uint16(29356), + 4: uint16(29486), + 5: uint16(30740), + 6: uint16(30831), + 7: uint16(32121), + 8: uint16(30476), + 9: uint16(32937), + 10: uint16(35211), + 11: uint16(35609), + 12: uint16(36066), + 13: uint16(36562), + 14: uint16(36963), + 15: uint16(37749), + 16: uint16(38522), + 17: uint16(38997), + 18: uint16(39443), + 19: uint16(40568), + 20: uint16(20803), + 21: uint16(21407), + 22: uint16(21427), + 23: uint16(24187), + 24: uint16(24358), + 25: uint16(28187), + 26: uint16(28304), + 27: uint16(29572), + 28: uint16(29694), + 29: uint16(32067), + 30: uint16(33335), + 31: uint16(35328), + 32: uint16(35578), + 33: uint16(38480), + 34: uint16(20046), + 35: uint16(20491), + 36: uint16(21476), + 37: uint16(21628), + 38: uint16(22266), + 39: uint16(22993), + 40: uint16(23396), + 41: uint16(24049), + 42: uint16(24235), + 43: uint16(24359), + 44: uint16(25144), + 45: uint16(25925), + 46: uint16(26543), + 47: uint16(28246), + 48: uint16(29392), + 49: uint16(31946), + 50: uint16(34996), + 51: uint16(32929), + 52: uint16(32993), + 53: uint16(33776), + 54: uint16(34382), + 55: uint16(35463), + 56: uint16(36328), + 57: uint16(37431), + 58: uint16(38599), + 59: uint16(39015), + 60: uint16(40723), + 61: uint16(20116), + 62: uint16(20114), + 63: uint16(20237), + 64: uint16(21320), + 65: uint16(21577), + 66: uint16(21566), + 67: uint16(23087), + 68: uint16(24460), + 69: uint16(24481), + 70: uint16(24735), + 71: uint16(26791), + 72: uint16(27278), + 73: uint16(29786), + 74: uint16(30849), + 75: uint16(35486), + 76: uint16(35492), + 77: uint16(35703), + 78: uint16(37264), + 79: uint16(20062), + 80: uint16(39881), + 81: uint16(20132), + 82: uint16(20348), + 83: uint16(20399), + 84: uint16(20505), + 85: uint16(20502), + 86: uint16(20809), + 87: uint16(20844), + 88: uint16(21151), + 89: uint16(21177), + 90: uint16(21246), + 91: uint16(21402), + 92: uint16(21475), + 93: uint16(21521), + }, + 24: { + 0: uint16(21518), + 1: uint16(21897), + 2: uint16(22353), + 3: uint16(22434), + 4: uint16(22909), + 5: uint16(23380), + 6: uint16(23389), + 7: uint16(23439), + 8: uint16(24037), + 9: uint16(24039), + 10: uint16(24055), + 11: uint16(24184), + 12: uint16(24195), + 13: uint16(24218), + 14: uint16(24247), + 15: uint16(24344), + 16: uint16(24658), + 17: uint16(24908), + 18: uint16(25239), + 19: uint16(25304), + 20: uint16(25511), + 21: uint16(25915), + 22: uint16(26114), + 23: uint16(26179), + 24: uint16(26356), + 25: uint16(26477), + 26: uint16(26657), + 27: uint16(26775), + 28: uint16(27083), + 29: uint16(27743), + 30: uint16(27946), + 31: uint16(28009), + 32: uint16(28207), + 33: uint16(28317), + 34: uint16(30002), + 35: uint16(30343), + 36: uint16(30828), + 37: uint16(31295), + 38: uint16(31968), + 39: uint16(32005), + 40: uint16(32024), + 41: uint16(32094), + 42: uint16(32177), + 43: uint16(32789), + 44: uint16(32771), + 45: uint16(32943), + 46: uint16(32945), + 47: uint16(33108), + 48: uint16(33167), + 49: uint16(33322), + 50: uint16(33618), + 51: uint16(34892), + 52: uint16(34913), + 53: uint16(35611), + 54: uint16(36002), + 55: uint16(36092), + 56: uint16(37066), + 57: uint16(37237), + 58: uint16(37489), + 59: uint16(30783), + 60: uint16(37628), + 61: uint16(38308), + 62: uint16(38477), + 63: uint16(38917), + 64: uint16(39321), + 65: uint16(39640), + 66: uint16(40251), + 67: uint16(21083), + 68: uint16(21163), + 69: uint16(21495), + 70: uint16(21512), + 71: uint16(22741), + 72: uint16(25335), + 73: uint16(28640), + 74: uint16(35946), + 75: uint16(36703), + 76: uint16(40633), + 77: uint16(20811), + 78: uint16(21051), + 79: uint16(21578), + 80: uint16(22269), + 81: uint16(31296), + 82: uint16(37239), + 83: uint16(40288), + 84: uint16(40658), + 85: uint16(29508), + 86: uint16(28425), + 87: uint16(33136), + 88: uint16(29969), + 89: uint16(24573), + 90: uint16(24794), + 91: uint16(39592), + 92: uint16(29403), + 93: uint16(36796), + }, + 25: { + 0: uint16(27492), + 1: uint16(38915), + 2: uint16(20170), + 3: uint16(22256), + 4: uint16(22372), + 5: uint16(22718), + 6: uint16(23130), + 7: uint16(24680), + 8: uint16(25031), + 9: uint16(26127), + 10: uint16(26118), + 11: uint16(26681), + 12: uint16(26801), + 13: uint16(28151), + 14: uint16(30165), + 15: uint16(32058), + 16: uint16(33390), + 17: uint16(39746), + 18: uint16(20123), + 19: uint16(20304), + 20: uint16(21449), + 21: uint16(21766), + 22: uint16(23919), + 23: uint16(24038), + 24: uint16(24046), + 25: uint16(26619), + 26: uint16(27801), + 27: uint16(29811), + 28: uint16(30722), + 29: uint16(35408), + 30: uint16(37782), + 31: uint16(35039), + 32: uint16(22352), + 33: uint16(24231), + 34: uint16(25387), + 35: uint16(20661), + 36: uint16(20652), + 37: uint16(20877), + 38: uint16(26368), + 39: uint16(21705), + 40: uint16(22622), + 41: uint16(22971), + 42: uint16(23472), + 43: uint16(24425), + 44: uint16(25165), + 45: uint16(25505), + 46: uint16(26685), + 47: uint16(27507), + 48: uint16(28168), + 49: uint16(28797), + 50: uint16(37319), + 51: uint16(29312), + 52: uint16(30741), + 53: uint16(30758), + 54: uint16(31085), + 55: uint16(25998), + 56: uint16(32048), + 57: uint16(33756), + 58: uint16(35009), + 59: uint16(36617), + 60: uint16(38555), + 61: uint16(21092), + 62: uint16(22312), + 63: uint16(26448), + 64: uint16(32618), + 65: uint16(36001), + 66: uint16(20916), + 67: uint16(22338), + 68: uint16(38442), + 69: uint16(22586), + 70: uint16(27018), + 71: uint16(32948), + 72: uint16(21682), + 73: uint16(23822), + 74: uint16(22524), + 75: uint16(30869), + 76: uint16(40442), + 77: uint16(20316), + 78: uint16(21066), + 79: uint16(21643), + 80: uint16(25662), + 81: uint16(26152), + 82: uint16(26388), + 83: uint16(26613), + 84: uint16(31364), + 85: uint16(31574), + 86: uint16(32034), + 87: uint16(37679), + 88: uint16(26716), + 89: uint16(39853), + 90: uint16(31545), + 91: uint16(21273), + 92: uint16(20874), + 93: uint16(21047), + }, + 26: { + 0: uint16(23519), + 1: uint16(25334), + 2: uint16(25774), + 3: uint16(25830), + 4: uint16(26413), + 5: uint16(27578), + 6: uint16(34217), + 7: uint16(38609), + 8: uint16(30352), + 9: uint16(39894), + 10: uint16(25420), + 11: uint16(37638), + 12: uint16(39851), + 13: uint16(30399), + 14: uint16(26194), + 15: uint16(19977), + 16: uint16(20632), + 17: uint16(21442), + 18: uint16(23665), + 19: uint16(24808), + 20: uint16(25746), + 21: uint16(25955), + 22: uint16(26719), + 23: uint16(29158), + 24: uint16(29642), + 25: uint16(29987), + 26: uint16(31639), + 27: uint16(32386), + 28: uint16(34453), + 29: uint16(35715), + 30: uint16(36059), + 31: uint16(37240), + 32: uint16(39184), + 33: uint16(26028), + 34: uint16(26283), + 35: uint16(27531), + 36: uint16(20181), + 37: uint16(20180), + 38: uint16(20282), + 39: uint16(20351), + 40: uint16(21050), + 41: uint16(21496), + 42: uint16(21490), + 43: uint16(21987), + 44: uint16(22235), + 45: uint16(22763), + 46: uint16(22987), + 47: uint16(22985), + 48: uint16(23039), + 49: uint16(23376), + 50: uint16(23629), + 51: uint16(24066), + 52: uint16(24107), + 53: uint16(24535), + 54: uint16(24605), + 55: uint16(25351), + 56: uint16(25903), + 57: uint16(23388), + 58: uint16(26031), + 59: uint16(26045), + 60: uint16(26088), + 61: uint16(26525), + 62: uint16(27490), + 63: uint16(27515), + 64: uint16(27663), + 65: uint16(29509), + 66: uint16(31049), + 67: uint16(31169), + 68: uint16(31992), + 69: uint16(32025), + 70: uint16(32043), + 71: uint16(32930), + 72: uint16(33026), + 73: uint16(33267), + 74: uint16(35222), + 75: uint16(35422), + 76: uint16(35433), + 77: uint16(35430), + 78: uint16(35468), + 79: uint16(35566), + 80: uint16(36039), + 81: uint16(36060), + 82: uint16(38604), + 83: uint16(39164), + 84: uint16(27503), + 85: uint16(20107), + 86: uint16(20284), + 87: uint16(20365), + 88: uint16(20816), + 89: uint16(23383), + 90: uint16(23546), + 91: uint16(24904), + 92: uint16(25345), + 93: uint16(26178), + }, + 27: { + 0: uint16(27425), + 1: uint16(28363), + 2: uint16(27835), + 3: uint16(29246), + 4: uint16(29885), + 5: uint16(30164), + 6: uint16(30913), + 7: uint16(31034), + 8: uint16(32780), + 9: uint16(32819), + 10: uint16(33258), + 11: uint16(33940), + 12: uint16(36766), + 13: uint16(27728), + 14: uint16(40575), + 15: uint16(24335), + 16: uint16(35672), + 17: uint16(40235), + 18: uint16(31482), + 19: uint16(36600), + 20: uint16(23437), + 21: uint16(38635), + 22: uint16(19971), + 23: uint16(21489), + 24: uint16(22519), + 25: uint16(22833), + 26: uint16(23241), + 27: uint16(23460), + 28: uint16(24713), + 29: uint16(28287), + 30: uint16(28422), + 31: uint16(30142), + 32: uint16(36074), + 33: uint16(23455), + 34: uint16(34048), + 35: uint16(31712), + 36: uint16(20594), + 37: uint16(26612), + 38: uint16(33437), + 39: uint16(23649), + 40: uint16(34122), + 41: uint16(32286), + 42: uint16(33294), + 43: uint16(20889), + 44: uint16(23556), + 45: uint16(25448), + 46: uint16(36198), + 47: uint16(26012), + 48: uint16(29038), + 49: uint16(31038), + 50: uint16(32023), + 51: uint16(32773), + 52: uint16(35613), + 53: uint16(36554), + 54: uint16(36974), + 55: uint16(34503), + 56: uint16(37034), + 57: uint16(20511), + 58: uint16(21242), + 59: uint16(23610), + 60: uint16(26451), + 61: uint16(28796), + 62: uint16(29237), + 63: uint16(37196), + 64: uint16(37320), + 65: uint16(37675), + 66: uint16(33509), + 67: uint16(23490), + 68: uint16(24369), + 69: uint16(24825), + 70: uint16(20027), + 71: uint16(21462), + 72: uint16(23432), + 73: uint16(25163), + 74: uint16(26417), + 75: uint16(27530), + 76: uint16(29417), + 77: uint16(29664), + 78: uint16(31278), + 79: uint16(33131), + 80: uint16(36259), + 81: uint16(37202), + 82: uint16(39318), + 83: uint16(20754), + 84: uint16(21463), + 85: uint16(21610), + 86: uint16(23551), + 87: uint16(25480), + 88: uint16(27193), + 89: uint16(32172), + 90: uint16(38656), + 91: uint16(22234), + 92: uint16(21454), + 93: uint16(21608), + }, + 28: { + 0: uint16(23447), + 1: uint16(23601), + 2: uint16(24030), + 3: uint16(20462), + 4: uint16(24833), + 5: uint16(25342), + 6: uint16(27954), + 7: uint16(31168), + 8: uint16(31179), + 9: uint16(32066), + 10: uint16(32333), + 11: uint16(32722), + 12: uint16(33261), + 13: uint16(33311), + 14: uint16(33936), + 15: uint16(34886), + 16: uint16(35186), + 17: uint16(35728), + 18: uint16(36468), + 19: uint16(36655), + 20: uint16(36913), + 21: uint16(37195), + 22: uint16(37228), + 23: uint16(38598), + 24: uint16(37276), + 25: uint16(20160), + 26: uint16(20303), + 27: uint16(20805), + 28: uint16(21313), + 29: uint16(24467), + 30: uint16(25102), + 31: uint16(26580), + 32: uint16(27713), + 33: uint16(28171), + 34: uint16(29539), + 35: uint16(32294), + 36: uint16(37325), + 37: uint16(37507), + 38: uint16(21460), + 39: uint16(22809), + 40: uint16(23487), + 41: uint16(28113), + 42: uint16(31069), + 43: uint16(32302), + 44: uint16(31899), + 45: uint16(22654), + 46: uint16(29087), + 47: uint16(20986), + 48: uint16(34899), + 49: uint16(36848), + 50: uint16(20426), + 51: uint16(23803), + 52: uint16(26149), + 53: uint16(30636), + 54: uint16(31459), + 55: uint16(33308), + 56: uint16(39423), + 57: uint16(20934), + 58: uint16(24490), + 59: uint16(26092), + 60: uint16(26991), + 61: uint16(27529), + 62: uint16(28147), + 63: uint16(28310), + 64: uint16(28516), + 65: uint16(30462), + 66: uint16(32020), + 67: uint16(24033), + 68: uint16(36981), + 69: uint16(37255), + 70: uint16(38918), + 71: uint16(20966), + 72: uint16(21021), + 73: uint16(25152), + 74: uint16(26257), + 75: uint16(26329), + 76: uint16(28186), + 77: uint16(24246), + 78: uint16(32210), + 79: uint16(32626), + 80: uint16(26360), + 81: uint16(34223), + 82: uint16(34295), + 83: uint16(35576), + 84: uint16(21161), + 85: uint16(21465), + 86: uint16(22899), + 87: uint16(24207), + 88: uint16(24464), + 89: uint16(24661), + 90: uint16(37604), + 91: uint16(38500), + 92: uint16(20663), + 93: uint16(20767), + }, + 29: { + 0: uint16(21213), + 1: uint16(21280), + 2: uint16(21319), + 3: uint16(21484), + 4: uint16(21736), + 5: uint16(21830), + 6: uint16(21809), + 7: uint16(22039), + 8: uint16(22888), + 9: uint16(22974), + 10: uint16(23100), + 11: uint16(23477), + 12: uint16(23558), + 13: uint16(23567), + 14: uint16(23569), + 15: uint16(23578), + 16: uint16(24196), + 17: uint16(24202), + 18: uint16(24288), + 19: uint16(24432), + 20: uint16(25215), + 21: uint16(25220), + 22: uint16(25307), + 23: uint16(25484), + 24: uint16(25463), + 25: uint16(26119), + 26: uint16(26124), + 27: uint16(26157), + 28: uint16(26230), + 29: uint16(26494), + 30: uint16(26786), + 31: uint16(27167), + 32: uint16(27189), + 33: uint16(27836), + 34: uint16(28040), + 35: uint16(28169), + 36: uint16(28248), + 37: uint16(28988), + 38: uint16(28966), + 39: uint16(29031), + 40: uint16(30151), + 41: uint16(30465), + 42: uint16(30813), + 43: uint16(30977), + 44: uint16(31077), + 45: uint16(31216), + 46: uint16(31456), + 47: uint16(31505), + 48: uint16(31911), + 49: uint16(32057), + 50: uint16(32918), + 51: uint16(33750), + 52: uint16(33931), + 53: uint16(34121), + 54: uint16(34909), + 55: uint16(35059), + 56: uint16(35359), + 57: uint16(35388), + 58: uint16(35412), + 59: uint16(35443), + 60: uint16(35937), + 61: uint16(36062), + 62: uint16(37284), + 63: uint16(37478), + 64: uint16(37758), + 65: uint16(37912), + 66: uint16(38556), + 67: uint16(38808), + 68: uint16(19978), + 69: uint16(19976), + 70: uint16(19998), + 71: uint16(20055), + 72: uint16(20887), + 73: uint16(21104), + 74: uint16(22478), + 75: uint16(22580), + 76: uint16(22732), + 77: uint16(23330), + 78: uint16(24120), + 79: uint16(24773), + 80: uint16(25854), + 81: uint16(26465), + 82: uint16(26454), + 83: uint16(27972), + 84: uint16(29366), + 85: uint16(30067), + 86: uint16(31331), + 87: uint16(33976), + 88: uint16(35698), + 89: uint16(37304), + 90: uint16(37664), + 91: uint16(22065), + 92: uint16(22516), + 93: uint16(39166), + }, + 30: { + 0: uint16(25325), + 1: uint16(26893), + 2: uint16(27542), + 3: uint16(29165), + 4: uint16(32340), + 5: uint16(32887), + 6: uint16(33394), + 7: uint16(35302), + 8: uint16(39135), + 9: uint16(34645), + 10: uint16(36785), + 11: uint16(23611), + 12: uint16(20280), + 13: uint16(20449), + 14: uint16(20405), + 15: uint16(21767), + 16: uint16(23072), + 17: uint16(23517), + 18: uint16(23529), + 19: uint16(24515), + 20: uint16(24910), + 21: uint16(25391), + 22: uint16(26032), + 23: uint16(26187), + 24: uint16(26862), + 25: uint16(27035), + 26: uint16(28024), + 27: uint16(28145), + 28: uint16(30003), + 29: uint16(30137), + 30: uint16(30495), + 31: uint16(31070), + 32: uint16(31206), + 33: uint16(32051), + 34: uint16(33251), + 35: uint16(33455), + 36: uint16(34218), + 37: uint16(35242), + 38: uint16(35386), + 39: uint16(36523), + 40: uint16(36763), + 41: uint16(36914), + 42: uint16(37341), + 43: uint16(38663), + 44: uint16(20154), + 45: uint16(20161), + 46: uint16(20995), + 47: uint16(22645), + 48: uint16(22764), + 49: uint16(23563), + 50: uint16(29978), + 51: uint16(23613), + 52: uint16(33102), + 53: uint16(35338), + 54: uint16(36805), + 55: uint16(38499), + 56: uint16(38765), + 57: uint16(31525), + 58: uint16(35535), + 59: uint16(38920), + 60: uint16(37218), + 61: uint16(22259), + 62: uint16(21416), + 63: uint16(36887), + 64: uint16(21561), + 65: uint16(22402), + 66: uint16(24101), + 67: uint16(25512), + 68: uint16(27700), + 69: uint16(28810), + 70: uint16(30561), + 71: uint16(31883), + 72: uint16(32736), + 73: uint16(34928), + 74: uint16(36930), + 75: uint16(37204), + 76: uint16(37648), + 77: uint16(37656), + 78: uint16(38543), + 79: uint16(29790), + 80: uint16(39620), + 81: uint16(23815), + 82: uint16(23913), + 83: uint16(25968), + 84: uint16(26530), + 85: uint16(36264), + 86: uint16(38619), + 87: uint16(25454), + 88: uint16(26441), + 89: uint16(26905), + 90: uint16(33733), + 91: uint16(38935), + 92: uint16(38592), + 93: uint16(35070), + }, + 31: { + 0: uint16(28548), + 1: uint16(25722), + 2: uint16(23544), + 3: uint16(19990), + 4: uint16(28716), + 5: uint16(30045), + 6: uint16(26159), + 7: uint16(20932), + 8: uint16(21046), + 9: uint16(21218), + 10: uint16(22995), + 11: uint16(24449), + 12: uint16(24615), + 13: uint16(25104), + 14: uint16(25919), + 15: uint16(25972), + 16: uint16(26143), + 17: uint16(26228), + 18: uint16(26866), + 19: uint16(26646), + 20: uint16(27491), + 21: uint16(28165), + 22: uint16(29298), + 23: uint16(29983), + 24: uint16(30427), + 25: uint16(31934), + 26: uint16(32854), + 27: uint16(22768), + 28: uint16(35069), + 29: uint16(35199), + 30: uint16(35488), + 31: uint16(35475), + 32: uint16(35531), + 33: uint16(36893), + 34: uint16(37266), + 35: uint16(38738), + 36: uint16(38745), + 37: uint16(25993), + 38: uint16(31246), + 39: uint16(33030), + 40: uint16(38587), + 41: uint16(24109), + 42: uint16(24796), + 43: uint16(25114), + 44: uint16(26021), + 45: uint16(26132), + 46: uint16(26512), + 47: uint16(30707), + 48: uint16(31309), + 49: uint16(31821), + 50: uint16(32318), + 51: uint16(33034), + 52: uint16(36012), + 53: uint16(36196), + 54: uint16(36321), + 55: uint16(36447), + 56: uint16(30889), + 57: uint16(20999), + 58: uint16(25305), + 59: uint16(25509), + 60: uint16(25666), + 61: uint16(25240), + 62: uint16(35373), + 63: uint16(31363), + 64: uint16(31680), + 65: uint16(35500), + 66: uint16(38634), + 67: uint16(32118), + 68: uint16(33292), + 69: uint16(34633), + 70: uint16(20185), + 71: uint16(20808), + 72: uint16(21315), + 73: uint16(21344), + 74: uint16(23459), + 75: uint16(23554), + 76: uint16(23574), + 77: uint16(24029), + 78: uint16(25126), + 79: uint16(25159), + 80: uint16(25776), + 81: uint16(26643), + 82: uint16(26676), + 83: uint16(27849), + 84: uint16(27973), + 85: uint16(27927), + 86: uint16(26579), + 87: uint16(28508), + 88: uint16(29006), + 89: uint16(29053), + 90: uint16(26059), + 91: uint16(31359), + 92: uint16(31661), + 93: uint16(32218), + }, + 32: { + 0: uint16(32330), + 1: uint16(32680), + 2: uint16(33146), + 3: uint16(33307), + 4: uint16(33337), + 5: uint16(34214), + 6: uint16(35438), + 7: uint16(36046), + 8: uint16(36341), + 9: uint16(36984), + 10: uint16(36983), + 11: uint16(37549), + 12: uint16(37521), + 13: uint16(38275), + 14: uint16(39854), + 15: uint16(21069), + 16: uint16(21892), + 17: uint16(28472), + 18: uint16(28982), + 19: uint16(20840), + 20: uint16(31109), + 21: uint16(32341), + 22: uint16(33203), + 23: uint16(31950), + 24: uint16(22092), + 25: uint16(22609), + 26: uint16(23720), + 27: uint16(25514), + 28: uint16(26366), + 29: uint16(26365), + 30: uint16(26970), + 31: uint16(29401), + 32: uint16(30095), + 33: uint16(30094), + 34: uint16(30990), + 35: uint16(31062), + 36: uint16(31199), + 37: uint16(31895), + 38: uint16(32032), + 39: uint16(32068), + 40: uint16(34311), + 41: uint16(35380), + 42: uint16(38459), + 43: uint16(36961), + 44: uint16(40736), + 45: uint16(20711), + 46: uint16(21109), + 47: uint16(21452), + 48: uint16(21474), + 49: uint16(20489), + 50: uint16(21930), + 51: uint16(22766), + 52: uint16(22863), + 53: uint16(29245), + 54: uint16(23435), + 55: uint16(23652), + 56: uint16(21277), + 57: uint16(24803), + 58: uint16(24819), + 59: uint16(25436), + 60: uint16(25475), + 61: uint16(25407), + 62: uint16(25531), + 63: uint16(25805), + 64: uint16(26089), + 65: uint16(26361), + 66: uint16(24035), + 67: uint16(27085), + 68: uint16(27133), + 69: uint16(28437), + 70: uint16(29157), + 71: uint16(20105), + 72: uint16(30185), + 73: uint16(30456), + 74: uint16(31379), + 75: uint16(31967), + 76: uint16(32207), + 77: uint16(32156), + 78: uint16(32865), + 79: uint16(33609), + 80: uint16(33624), + 81: uint16(33900), + 82: uint16(33980), + 83: uint16(34299), + 84: uint16(35013), + 85: uint16(36208), + 86: uint16(36865), + 87: uint16(36973), + 88: uint16(37783), + 89: uint16(38684), + 90: uint16(39442), + 91: uint16(20687), + 92: uint16(22679), + 93: uint16(24974), + }, + 33: { + 0: uint16(33235), + 1: uint16(34101), + 2: uint16(36104), + 3: uint16(36896), + 4: uint16(20419), + 5: uint16(20596), + 6: uint16(21063), + 7: uint16(21363), + 8: uint16(24687), + 9: uint16(25417), + 10: uint16(26463), + 11: uint16(28204), + 12: uint16(36275), + 13: uint16(36895), + 14: uint16(20439), + 15: uint16(23646), + 16: uint16(36042), + 17: uint16(26063), + 18: uint16(32154), + 19: uint16(21330), + 20: uint16(34966), + 21: uint16(20854), + 22: uint16(25539), + 23: uint16(23384), + 24: uint16(23403), + 25: uint16(23562), + 26: uint16(25613), + 27: uint16(26449), + 28: uint16(36956), + 29: uint16(20182), + 30: uint16(22810), + 31: uint16(22826), + 32: uint16(27760), + 33: uint16(35409), + 34: uint16(21822), + 35: uint16(22549), + 36: uint16(22949), + 37: uint16(24816), + 38: uint16(25171), + 39: uint16(26561), + 40: uint16(33333), + 41: uint16(26965), + 42: uint16(38464), + 43: uint16(39364), + 44: uint16(39464), + 45: uint16(20307), + 46: uint16(22534), + 47: uint16(23550), + 48: uint16(32784), + 49: uint16(23729), + 50: uint16(24111), + 51: uint16(24453), + 52: uint16(24608), + 53: uint16(24907), + 54: uint16(25140), + 55: uint16(26367), + 56: uint16(27888), + 57: uint16(28382), + 58: uint16(32974), + 59: uint16(33151), + 60: uint16(33492), + 61: uint16(34955), + 62: uint16(36024), + 63: uint16(36864), + 64: uint16(36910), + 65: uint16(38538), + 66: uint16(40667), + 67: uint16(39899), + 68: uint16(20195), + 69: uint16(21488), + 70: uint16(22823), + 71: uint16(31532), + 72: uint16(37261), + 73: uint16(38988), + 74: uint16(40441), + 75: uint16(28381), + 76: uint16(28711), + 77: uint16(21331), + 78: uint16(21828), + 79: uint16(23429), + 80: uint16(25176), + 81: uint16(25246), + 82: uint16(25299), + 83: uint16(27810), + 84: uint16(28655), + 85: uint16(29730), + 86: uint16(35351), + 87: uint16(37944), + 88: uint16(28609), + 89: uint16(35582), + 90: uint16(33592), + 91: uint16(20967), + 92: uint16(34552), + 93: uint16(21482), + }, + 34: { + 0: uint16(21481), + 1: uint16(20294), + 2: uint16(36948), + 3: uint16(36784), + 4: uint16(22890), + 5: uint16(33073), + 6: uint16(24061), + 7: uint16(31466), + 8: uint16(36799), + 9: uint16(26842), + 10: uint16(35895), + 11: uint16(29432), + 12: uint16(40008), + 13: uint16(27197), + 14: uint16(35504), + 15: uint16(20025), + 16: uint16(21336), + 17: uint16(22022), + 18: uint16(22374), + 19: uint16(25285), + 20: uint16(25506), + 21: uint16(26086), + 22: uint16(27470), + 23: uint16(28129), + 24: uint16(28251), + 25: uint16(28845), + 26: uint16(30701), + 27: uint16(31471), + 28: uint16(31658), + 29: uint16(32187), + 30: uint16(32829), + 31: uint16(32966), + 32: uint16(34507), + 33: uint16(35477), + 34: uint16(37723), + 35: uint16(22243), + 36: uint16(22727), + 37: uint16(24382), + 38: uint16(26029), + 39: uint16(26262), + 40: uint16(27264), + 41: uint16(27573), + 42: uint16(30007), + 43: uint16(35527), + 44: uint16(20516), + 45: uint16(30693), + 46: uint16(22320), + 47: uint16(24347), + 48: uint16(24677), + 49: uint16(26234), + 50: uint16(27744), + 51: uint16(30196), + 52: uint16(31258), + 53: uint16(32622), + 54: uint16(33268), + 55: uint16(34584), + 56: uint16(36933), + 57: uint16(39347), + 58: uint16(31689), + 59: uint16(30044), + 60: uint16(31481), + 61: uint16(31569), + 62: uint16(33988), + 63: uint16(36880), + 64: uint16(31209), + 65: uint16(31378), + 66: uint16(33590), + 67: uint16(23265), + 68: uint16(30528), + 69: uint16(20013), + 70: uint16(20210), + 71: uint16(23449), + 72: uint16(24544), + 73: uint16(25277), + 74: uint16(26172), + 75: uint16(26609), + 76: uint16(27880), + 77: uint16(34411), + 78: uint16(34935), + 79: uint16(35387), + 80: uint16(37198), + 81: uint16(37619), + 82: uint16(39376), + 83: uint16(27159), + 84: uint16(28710), + 85: uint16(29482), + 86: uint16(33511), + 87: uint16(33879), + 88: uint16(36015), + 89: uint16(19969), + 90: uint16(20806), + 91: uint16(20939), + 92: uint16(21899), + 93: uint16(23541), + }, + 35: { + 0: uint16(24086), + 1: uint16(24115), + 2: uint16(24193), + 3: uint16(24340), + 4: uint16(24373), + 5: uint16(24427), + 6: uint16(24500), + 7: uint16(25074), + 8: uint16(25361), + 9: uint16(26274), + 10: uint16(26397), + 11: uint16(28526), + 12: uint16(29266), + 13: uint16(30010), + 14: uint16(30522), + 15: uint16(32884), + 16: uint16(33081), + 17: uint16(33144), + 18: uint16(34678), + 19: uint16(35519), + 20: uint16(35548), + 21: uint16(36229), + 22: uint16(36339), + 23: uint16(37530), + 24: uint16(38263), + 25: uint16(38914), + 26: uint16(40165), + 27: uint16(21189), + 28: uint16(25431), + 29: uint16(30452), + 30: uint16(26389), + 31: uint16(27784), + 32: uint16(29645), + 33: uint16(36035), + 34: uint16(37806), + 35: uint16(38515), + 36: uint16(27941), + 37: uint16(22684), + 38: uint16(26894), + 39: uint16(27084), + 40: uint16(36861), + 41: uint16(37786), + 42: uint16(30171), + 43: uint16(36890), + 44: uint16(22618), + 45: uint16(26626), + 46: uint16(25524), + 47: uint16(27131), + 48: uint16(20291), + 49: uint16(28460), + 50: uint16(26584), + 51: uint16(36795), + 52: uint16(34086), + 53: uint16(32180), + 54: uint16(37716), + 55: uint16(26943), + 56: uint16(28528), + 57: uint16(22378), + 58: uint16(22775), + 59: uint16(23340), + 60: uint16(32044), + 61: uint16(29226), + 62: uint16(21514), + 63: uint16(37347), + 64: uint16(40372), + 65: uint16(20141), + 66: uint16(20302), + 67: uint16(20572), + 68: uint16(20597), + 69: uint16(21059), + 70: uint16(35998), + 71: uint16(21576), + 72: uint16(22564), + 73: uint16(23450), + 74: uint16(24093), + 75: uint16(24213), + 76: uint16(24237), + 77: uint16(24311), + 78: uint16(24351), + 79: uint16(24716), + 80: uint16(25269), + 81: uint16(25402), + 82: uint16(25552), + 83: uint16(26799), + 84: uint16(27712), + 85: uint16(30855), + 86: uint16(31118), + 87: uint16(31243), + 88: uint16(32224), + 89: uint16(33351), + 90: uint16(35330), + 91: uint16(35558), + 92: uint16(36420), + 93: uint16(36883), + }, + 36: { + 0: uint16(37048), + 1: uint16(37165), + 2: uint16(37336), + 3: uint16(40718), + 4: uint16(27877), + 5: uint16(25688), + 6: uint16(25826), + 7: uint16(25973), + 8: uint16(28404), + 9: uint16(30340), + 10: uint16(31515), + 11: uint16(36969), + 12: uint16(37841), + 13: uint16(28346), + 14: uint16(21746), + 15: uint16(24505), + 16: uint16(25764), + 17: uint16(36685), + 18: uint16(36845), + 19: uint16(37444), + 20: uint16(20856), + 21: uint16(22635), + 22: uint16(22825), + 23: uint16(23637), + 24: uint16(24215), + 25: uint16(28155), + 26: uint16(32399), + 27: uint16(29980), + 28: uint16(36028), + 29: uint16(36578), + 30: uint16(39003), + 31: uint16(28857), + 32: uint16(20253), + 33: uint16(27583), + 34: uint16(28593), + 35: uint16(30000), + 36: uint16(38651), + 37: uint16(20814), + 38: uint16(21520), + 39: uint16(22581), + 40: uint16(22615), + 41: uint16(22956), + 42: uint16(23648), + 43: uint16(24466), + 44: uint16(26007), + 45: uint16(26460), + 46: uint16(28193), + 47: uint16(30331), + 48: uint16(33759), + 49: uint16(36077), + 50: uint16(36884), + 51: uint16(37117), + 52: uint16(37709), + 53: uint16(30757), + 54: uint16(30778), + 55: uint16(21162), + 56: uint16(24230), + 57: uint16(22303), + 58: uint16(22900), + 59: uint16(24594), + 60: uint16(20498), + 61: uint16(20826), + 62: uint16(20908), + 63: uint16(20941), + 64: uint16(20992), + 65: uint16(21776), + 66: uint16(22612), + 67: uint16(22616), + 68: uint16(22871), + 69: uint16(23445), + 70: uint16(23798), + 71: uint16(23947), + 72: uint16(24764), + 73: uint16(25237), + 74: uint16(25645), + 75: uint16(26481), + 76: uint16(26691), + 77: uint16(26812), + 78: uint16(26847), + 79: uint16(30423), + 80: uint16(28120), + 81: uint16(28271), + 82: uint16(28059), + 83: uint16(28783), + 84: uint16(29128), + 85: uint16(24403), + 86: uint16(30168), + 87: uint16(31095), + 88: uint16(31561), + 89: uint16(31572), + 90: uint16(31570), + 91: uint16(31958), + 92: uint16(32113), + 93: uint16(21040), + }, + 37: { + 0: uint16(33891), + 1: uint16(34153), + 2: uint16(34276), + 3: uint16(35342), + 4: uint16(35588), + 5: uint16(35910), + 6: uint16(36367), + 7: uint16(36867), + 8: uint16(36879), + 9: uint16(37913), + 10: uint16(38518), + 11: uint16(38957), + 12: uint16(39472), + 13: uint16(38360), + 14: uint16(20685), + 15: uint16(21205), + 16: uint16(21516), + 17: uint16(22530), + 18: uint16(23566), + 19: uint16(24999), + 20: uint16(25758), + 21: uint16(27934), + 22: uint16(30643), + 23: uint16(31461), + 24: uint16(33012), + 25: uint16(33796), + 26: uint16(36947), + 27: uint16(37509), + 28: uint16(23776), + 29: uint16(40199), + 30: uint16(21311), + 31: uint16(24471), + 32: uint16(24499), + 33: uint16(28060), + 34: uint16(29305), + 35: uint16(30563), + 36: uint16(31167), + 37: uint16(31716), + 38: uint16(27602), + 39: uint16(29420), + 40: uint16(35501), + 41: uint16(26627), + 42: uint16(27233), + 43: uint16(20984), + 44: uint16(31361), + 45: uint16(26932), + 46: uint16(23626), + 47: uint16(40182), + 48: uint16(33515), + 49: uint16(23493), + 50: uint16(37193), + 51: uint16(28702), + 52: uint16(22136), + 53: uint16(23663), + 54: uint16(24775), + 55: uint16(25958), + 56: uint16(27788), + 57: uint16(35930), + 58: uint16(36929), + 59: uint16(38931), + 60: uint16(21585), + 61: uint16(26311), + 62: uint16(37389), + 63: uint16(22856), + 64: uint16(37027), + 65: uint16(20869), + 66: uint16(20045), + 67: uint16(20970), + 68: uint16(34201), + 69: uint16(35598), + 70: uint16(28760), + 71: uint16(25466), + 72: uint16(37707), + 73: uint16(26978), + 74: uint16(39348), + 75: uint16(32260), + 76: uint16(30071), + 77: uint16(21335), + 78: uint16(26976), + 79: uint16(36575), + 80: uint16(38627), + 81: uint16(27741), + 82: uint16(20108), + 83: uint16(23612), + 84: uint16(24336), + 85: uint16(36841), + 86: uint16(21250), + 87: uint16(36049), + 88: uint16(32905), + 89: uint16(34425), + 90: uint16(24319), + 91: uint16(26085), + 92: uint16(20083), + 93: uint16(20837), + }, + 38: { + 0: uint16(22914), + 1: uint16(23615), + 2: uint16(38894), + 3: uint16(20219), + 4: uint16(22922), + 5: uint16(24525), + 6: uint16(35469), + 7: uint16(28641), + 8: uint16(31152), + 9: uint16(31074), + 10: uint16(23527), + 11: uint16(33905), + 12: uint16(29483), + 13: uint16(29105), + 14: uint16(24180), + 15: uint16(24565), + 16: uint16(25467), + 17: uint16(25754), + 18: uint16(29123), + 19: uint16(31896), + 20: uint16(20035), + 21: uint16(24316), + 22: uint16(20043), + 23: uint16(22492), + 24: uint16(22178), + 25: uint16(24745), + 26: uint16(28611), + 27: uint16(32013), + 28: uint16(33021), + 29: uint16(33075), + 30: uint16(33215), + 31: uint16(36786), + 32: uint16(35223), + 33: uint16(34468), + 34: uint16(24052), + 35: uint16(25226), + 36: uint16(25773), + 37: uint16(35207), + 38: uint16(26487), + 39: uint16(27874), + 40: uint16(27966), + 41: uint16(29750), + 42: uint16(30772), + 43: uint16(23110), + 44: uint16(32629), + 45: uint16(33453), + 46: uint16(39340), + 47: uint16(20467), + 48: uint16(24259), + 49: uint16(25309), + 50: uint16(25490), + 51: uint16(25943), + 52: uint16(26479), + 53: uint16(30403), + 54: uint16(29260), + 55: uint16(32972), + 56: uint16(32954), + 57: uint16(36649), + 58: uint16(37197), + 59: uint16(20493), + 60: uint16(22521), + 61: uint16(23186), + 62: uint16(26757), + 63: uint16(26995), + 64: uint16(29028), + 65: uint16(29437), + 66: uint16(36023), + 67: uint16(22770), + 68: uint16(36064), + 69: uint16(38506), + 70: uint16(36889), + 71: uint16(34687), + 72: uint16(31204), + 73: uint16(30695), + 74: uint16(33833), + 75: uint16(20271), + 76: uint16(21093), + 77: uint16(21338), + 78: uint16(25293), + 79: uint16(26575), + 80: uint16(27850), + 81: uint16(30333), + 82: uint16(31636), + 83: uint16(31893), + 84: uint16(33334), + 85: uint16(34180), + 86: uint16(36843), + 87: uint16(26333), + 88: uint16(28448), + 89: uint16(29190), + 90: uint16(32283), + 91: uint16(33707), + 92: uint16(39361), + 93: uint16(40614), + }, + 39: { + 0: uint16(20989), + 1: uint16(31665), + 2: uint16(30834), + 3: uint16(31672), + 4: uint16(32903), + 5: uint16(31560), + 6: uint16(27368), + 7: uint16(24161), + 8: uint16(32908), + 9: uint16(30033), + 10: uint16(30048), + 11: uint16(20843), + 12: uint16(37474), + 13: uint16(28300), + 14: uint16(30330), + 15: uint16(37271), + 16: uint16(39658), + 17: uint16(20240), + 18: uint16(32624), + 19: uint16(25244), + 20: uint16(31567), + 21: uint16(38309), + 22: uint16(40169), + 23: uint16(22138), + 24: uint16(22617), + 25: uint16(34532), + 26: uint16(38588), + 27: uint16(20276), + 28: uint16(21028), + 29: uint16(21322), + 30: uint16(21453), + 31: uint16(21467), + 32: uint16(24070), + 33: uint16(25644), + 34: uint16(26001), + 35: uint16(26495), + 36: uint16(27710), + 37: uint16(27726), + 38: uint16(29256), + 39: uint16(29359), + 40: uint16(29677), + 41: uint16(30036), + 42: uint16(32321), + 43: uint16(33324), + 44: uint16(34281), + 45: uint16(36009), + 46: uint16(31684), + 47: uint16(37318), + 48: uint16(29033), + 49: uint16(38930), + 50: uint16(39151), + 51: uint16(25405), + 52: uint16(26217), + 53: uint16(30058), + 54: uint16(30436), + 55: uint16(30928), + 56: uint16(34115), + 57: uint16(34542), + 58: uint16(21290), + 59: uint16(21329), + 60: uint16(21542), + 61: uint16(22915), + 62: uint16(24199), + 63: uint16(24444), + 64: uint16(24754), + 65: uint16(25161), + 66: uint16(25209), + 67: uint16(25259), + 68: uint16(26000), + 69: uint16(27604), + 70: uint16(27852), + 71: uint16(30130), + 72: uint16(30382), + 73: uint16(30865), + 74: uint16(31192), + 75: uint16(32203), + 76: uint16(32631), + 77: uint16(32933), + 78: uint16(34987), + 79: uint16(35513), + 80: uint16(36027), + 81: uint16(36991), + 82: uint16(38750), + 83: uint16(39131), + 84: uint16(27147), + 85: uint16(31800), + 86: uint16(20633), + 87: uint16(23614), + 88: uint16(24494), + 89: uint16(26503), + 90: uint16(27608), + 91: uint16(29749), + 92: uint16(30473), + 93: uint16(32654), + }, + 40: { + 0: uint16(40763), + 1: uint16(26570), + 2: uint16(31255), + 3: uint16(21305), + 4: uint16(30091), + 5: uint16(39661), + 6: uint16(24422), + 7: uint16(33181), + 8: uint16(33777), + 9: uint16(32920), + 10: uint16(24380), + 11: uint16(24517), + 12: uint16(30050), + 13: uint16(31558), + 14: uint16(36924), + 15: uint16(26727), + 16: uint16(23019), + 17: uint16(23195), + 18: uint16(32016), + 19: uint16(30334), + 20: uint16(35628), + 21: uint16(20469), + 22: uint16(24426), + 23: uint16(27161), + 24: uint16(27703), + 25: uint16(28418), + 26: uint16(29922), + 27: uint16(31080), + 28: uint16(34920), + 29: uint16(35413), + 30: uint16(35961), + 31: uint16(24287), + 32: uint16(25551), + 33: uint16(30149), + 34: uint16(31186), + 35: uint16(33495), + 36: uint16(37672), + 37: uint16(37618), + 38: uint16(33948), + 39: uint16(34541), + 40: uint16(39981), + 41: uint16(21697), + 42: uint16(24428), + 43: uint16(25996), + 44: uint16(27996), + 45: uint16(28693), + 46: uint16(36007), + 47: uint16(36051), + 48: uint16(38971), + 49: uint16(25935), + 50: uint16(29942), + 51: uint16(19981), + 52: uint16(20184), + 53: uint16(22496), + 54: uint16(22827), + 55: uint16(23142), + 56: uint16(23500), + 57: uint16(20904), + 58: uint16(24067), + 59: uint16(24220), + 60: uint16(24598), + 61: uint16(25206), + 62: uint16(25975), + 63: uint16(26023), + 64: uint16(26222), + 65: uint16(28014), + 66: uint16(29238), + 67: uint16(31526), + 68: uint16(33104), + 69: uint16(33178), + 70: uint16(33433), + 71: uint16(35676), + 72: uint16(36000), + 73: uint16(36070), + 74: uint16(36212), + 75: uint16(38428), + 76: uint16(38468), + 77: uint16(20398), + 78: uint16(25771), + 79: uint16(27494), + 80: uint16(33310), + 81: uint16(33889), + 82: uint16(34154), + 83: uint16(37096), + 84: uint16(23553), + 85: uint16(26963), + 86: uint16(39080), + 87: uint16(33914), + 88: uint16(34135), + 89: uint16(20239), + 90: uint16(21103), + 91: uint16(24489), + 92: uint16(24133), + 93: uint16(26381), + }, + 41: { + 0: uint16(31119), + 1: uint16(33145), + 2: uint16(35079), + 3: uint16(35206), + 4: uint16(28149), + 5: uint16(24343), + 6: uint16(25173), + 7: uint16(27832), + 8: uint16(20175), + 9: uint16(29289), + 10: uint16(39826), + 11: uint16(20998), + 12: uint16(21563), + 13: uint16(22132), + 14: uint16(22707), + 15: uint16(24996), + 16: uint16(25198), + 17: uint16(28954), + 18: uint16(22894), + 19: uint16(31881), + 20: uint16(31966), + 21: uint16(32027), + 22: uint16(38640), + 23: uint16(25991), + 24: uint16(32862), + 25: uint16(19993), + 26: uint16(20341), + 27: uint16(20853), + 28: uint16(22592), + 29: uint16(24163), + 30: uint16(24179), + 31: uint16(24330), + 32: uint16(26564), + 33: uint16(20006), + 34: uint16(34109), + 35: uint16(38281), + 36: uint16(38491), + 37: uint16(31859), + 38: uint16(38913), + 39: uint16(20731), + 40: uint16(22721), + 41: uint16(30294), + 42: uint16(30887), + 43: uint16(21029), + 44: uint16(30629), + 45: uint16(34065), + 46: uint16(31622), + 47: uint16(20559), + 48: uint16(22793), + 49: uint16(29255), + 50: uint16(31687), + 51: uint16(32232), + 52: uint16(36794), + 53: uint16(36820), + 54: uint16(36941), + 55: uint16(20415), + 56: uint16(21193), + 57: uint16(23081), + 58: uint16(24321), + 59: uint16(38829), + 60: uint16(20445), + 61: uint16(33303), + 62: uint16(37610), + 63: uint16(22275), + 64: uint16(25429), + 65: uint16(27497), + 66: uint16(29995), + 67: uint16(35036), + 68: uint16(36628), + 69: uint16(31298), + 70: uint16(21215), + 71: uint16(22675), + 72: uint16(24917), + 73: uint16(25098), + 74: uint16(26286), + 75: uint16(27597), + 76: uint16(31807), + 77: uint16(33769), + 78: uint16(20515), + 79: uint16(20472), + 80: uint16(21253), + 81: uint16(21574), + 82: uint16(22577), + 83: uint16(22857), + 84: uint16(23453), + 85: uint16(23792), + 86: uint16(23791), + 87: uint16(23849), + 88: uint16(24214), + 89: uint16(25265), + 90: uint16(25447), + 91: uint16(25918), + 92: uint16(26041), + 93: uint16(26379), + }, + 42: { + 0: uint16(27861), + 1: uint16(27873), + 2: uint16(28921), + 3: uint16(30770), + 4: uint16(32299), + 5: uint16(32990), + 6: uint16(33459), + 7: uint16(33804), + 8: uint16(34028), + 9: uint16(34562), + 10: uint16(35090), + 11: uint16(35370), + 12: uint16(35914), + 13: uint16(37030), + 14: uint16(37586), + 15: uint16(39165), + 16: uint16(40179), + 17: uint16(40300), + 18: uint16(20047), + 19: uint16(20129), + 20: uint16(20621), + 21: uint16(21078), + 22: uint16(22346), + 23: uint16(22952), + 24: uint16(24125), + 25: uint16(24536), + 26: uint16(24537), + 27: uint16(25151), + 28: uint16(26292), + 29: uint16(26395), + 30: uint16(26576), + 31: uint16(26834), + 32: uint16(20882), + 33: uint16(32033), + 34: uint16(32938), + 35: uint16(33192), + 36: uint16(35584), + 37: uint16(35980), + 38: uint16(36031), + 39: uint16(37502), + 40: uint16(38450), + 41: uint16(21536), + 42: uint16(38956), + 43: uint16(21271), + 44: uint16(20693), + 45: uint16(21340), + 46: uint16(22696), + 47: uint16(25778), + 48: uint16(26420), + 49: uint16(29287), + 50: uint16(30566), + 51: uint16(31302), + 52: uint16(37350), + 53: uint16(21187), + 54: uint16(27809), + 55: uint16(27526), + 56: uint16(22528), + 57: uint16(24140), + 58: uint16(22868), + 59: uint16(26412), + 60: uint16(32763), + 61: uint16(20961), + 62: uint16(30406), + 63: uint16(25705), + 64: uint16(30952), + 65: uint16(39764), + 66: uint16(40635), + 67: uint16(22475), + 68: uint16(22969), + 69: uint16(26151), + 70: uint16(26522), + 71: uint16(27598), + 72: uint16(21737), + 73: uint16(27097), + 74: uint16(24149), + 75: uint16(33180), + 76: uint16(26517), + 77: uint16(39850), + 78: uint16(26622), + 79: uint16(40018), + 80: uint16(26717), + 81: uint16(20134), + 82: uint16(20451), + 83: uint16(21448), + 84: uint16(25273), + 85: uint16(26411), + 86: uint16(27819), + 87: uint16(36804), + 88: uint16(20397), + 89: uint16(32365), + 90: uint16(40639), + 91: uint16(19975), + 92: uint16(24930), + 93: uint16(28288), + }, + 43: { + 0: uint16(28459), + 1: uint16(34067), + 2: uint16(21619), + 3: uint16(26410), + 4: uint16(39749), + 5: uint16(24051), + 6: uint16(31637), + 7: uint16(23724), + 8: uint16(23494), + 9: uint16(34588), + 10: uint16(28234), + 11: uint16(34001), + 12: uint16(31252), + 13: uint16(33032), + 14: uint16(22937), + 15: uint16(31885), + 16: uint16(27665), + 17: uint16(30496), + 18: uint16(21209), + 19: uint16(22818), + 20: uint16(28961), + 21: uint16(29279), + 22: uint16(30683), + 23: uint16(38695), + 24: uint16(40289), + 25: uint16(26891), + 26: uint16(23167), + 27: uint16(23064), + 28: uint16(20901), + 29: uint16(21517), + 30: uint16(21629), + 31: uint16(26126), + 32: uint16(30431), + 33: uint16(36855), + 34: uint16(37528), + 35: uint16(40180), + 36: uint16(23018), + 37: uint16(29277), + 38: uint16(28357), + 39: uint16(20813), + 40: uint16(26825), + 41: uint16(32191), + 42: uint16(32236), + 43: uint16(38754), + 44: uint16(40634), + 45: uint16(25720), + 46: uint16(27169), + 47: uint16(33538), + 48: uint16(22916), + 49: uint16(23391), + 50: uint16(27611), + 51: uint16(29467), + 52: uint16(30450), + 53: uint16(32178), + 54: uint16(32791), + 55: uint16(33945), + 56: uint16(20786), + 57: uint16(26408), + 58: uint16(40665), + 59: uint16(30446), + 60: uint16(26466), + 61: uint16(21247), + 62: uint16(39173), + 63: uint16(23588), + 64: uint16(25147), + 65: uint16(31870), + 66: uint16(36016), + 67: uint16(21839), + 68: uint16(24758), + 69: uint16(32011), + 70: uint16(38272), + 71: uint16(21249), + 72: uint16(20063), + 73: uint16(20918), + 74: uint16(22812), + 75: uint16(29242), + 76: uint16(32822), + 77: uint16(37326), + 78: uint16(24357), + 79: uint16(30690), + 80: uint16(21380), + 81: uint16(24441), + 82: uint16(32004), + 83: uint16(34220), + 84: uint16(35379), + 85: uint16(36493), + 86: uint16(38742), + 87: uint16(26611), + 88: uint16(34222), + 89: uint16(37971), + 90: uint16(24841), + 91: uint16(24840), + 92: uint16(27833), + 93: uint16(30290), + }, + 44: { + 0: uint16(35565), + 1: uint16(36664), + 2: uint16(21807), + 3: uint16(20305), + 4: uint16(20778), + 5: uint16(21191), + 6: uint16(21451), + 7: uint16(23461), + 8: uint16(24189), + 9: uint16(24736), + 10: uint16(24962), + 11: uint16(25558), + 12: uint16(26377), + 13: uint16(26586), + 14: uint16(28263), + 15: uint16(28044), + 16: uint16(29494), + 17: uint16(29495), + 18: uint16(30001), + 19: uint16(31056), + 20: uint16(35029), + 21: uint16(35480), + 22: uint16(36938), + 23: uint16(37009), + 24: uint16(37109), + 25: uint16(38596), + 26: uint16(34701), + 27: uint16(22805), + 28: uint16(20104), + 29: uint16(20313), + 30: uint16(19982), + 31: uint16(35465), + 32: uint16(36671), + 33: uint16(38928), + 34: uint16(20653), + 35: uint16(24188), + 36: uint16(22934), + 37: uint16(23481), + 38: uint16(24248), + 39: uint16(25562), + 40: uint16(25594), + 41: uint16(25793), + 42: uint16(26332), + 43: uint16(26954), + 44: uint16(27096), + 45: uint16(27915), + 46: uint16(28342), + 47: uint16(29076), + 48: uint16(29992), + 49: uint16(31407), + 50: uint16(32650), + 51: uint16(32768), + 52: uint16(33865), + 53: uint16(33993), + 54: uint16(35201), + 55: uint16(35617), + 56: uint16(36362), + 57: uint16(36965), + 58: uint16(38525), + 59: uint16(39178), + 60: uint16(24958), + 61: uint16(25233), + 62: uint16(27442), + 63: uint16(27779), + 64: uint16(28020), + 65: uint16(32716), + 66: uint16(32764), + 67: uint16(28096), + 68: uint16(32645), + 69: uint16(34746), + 70: uint16(35064), + 71: uint16(26469), + 72: uint16(33713), + 73: uint16(38972), + 74: uint16(38647), + 75: uint16(27931), + 76: uint16(32097), + 77: uint16(33853), + 78: uint16(37226), + 79: uint16(20081), + 80: uint16(21365), + 81: uint16(23888), + 82: uint16(27396), + 83: uint16(28651), + 84: uint16(34253), + 85: uint16(34349), + 86: uint16(35239), + 87: uint16(21033), + 88: uint16(21519), + 89: uint16(23653), + 90: uint16(26446), + 91: uint16(26792), + 92: uint16(29702), + 93: uint16(29827), + }, + 45: { + 0: uint16(30178), + 1: uint16(35023), + 2: uint16(35041), + 3: uint16(37324), + 4: uint16(38626), + 5: uint16(38520), + 6: uint16(24459), + 7: uint16(29575), + 8: uint16(31435), + 9: uint16(33870), + 10: uint16(25504), + 11: uint16(30053), + 12: uint16(21129), + 13: uint16(27969), + 14: uint16(28316), + 15: uint16(29705), + 16: uint16(30041), + 17: uint16(30827), + 18: uint16(31890), + 19: uint16(38534), + 20: uint16(31452), + 21: uint16(40845), + 22: uint16(20406), + 23: uint16(24942), + 24: uint16(26053), + 25: uint16(34396), + 26: uint16(20102), + 27: uint16(20142), + 28: uint16(20698), + 29: uint16(20001), + 30: uint16(20940), + 31: uint16(23534), + 32: uint16(26009), + 33: uint16(26753), + 34: uint16(28092), + 35: uint16(29471), + 36: uint16(30274), + 37: uint16(30637), + 38: uint16(31260), + 39: uint16(31975), + 40: uint16(33391), + 41: uint16(35538), + 42: uint16(36988), + 43: uint16(37327), + 44: uint16(38517), + 45: uint16(38936), + 46: uint16(21147), + 47: uint16(32209), + 48: uint16(20523), + 49: uint16(21400), + 50: uint16(26519), + 51: uint16(28107), + 52: uint16(29136), + 53: uint16(29747), + 54: uint16(33256), + 55: uint16(36650), + 56: uint16(38563), + 57: uint16(40023), + 58: uint16(40607), + 59: uint16(29792), + 60: uint16(22593), + 61: uint16(28057), + 62: uint16(32047), + 63: uint16(39006), + 64: uint16(20196), + 65: uint16(20278), + 66: uint16(20363), + 67: uint16(20919), + 68: uint16(21169), + 69: uint16(23994), + 70: uint16(24604), + 71: uint16(29618), + 72: uint16(31036), + 73: uint16(33491), + 74: uint16(37428), + 75: uint16(38583), + 76: uint16(38646), + 77: uint16(38666), + 78: uint16(40599), + 79: uint16(40802), + 80: uint16(26278), + 81: uint16(27508), + 82: uint16(21015), + 83: uint16(21155), + 84: uint16(28872), + 85: uint16(35010), + 86: uint16(24265), + 87: uint16(24651), + 88: uint16(24976), + 89: uint16(28451), + 90: uint16(29001), + 91: uint16(31806), + 92: uint16(32244), + 93: uint16(32879), + }, + 46: { + 0: uint16(34030), + 1: uint16(36899), + 2: uint16(37676), + 3: uint16(21570), + 4: uint16(39791), + 5: uint16(27347), + 6: uint16(28809), + 7: uint16(36034), + 8: uint16(36335), + 9: uint16(38706), + 10: uint16(21172), + 11: uint16(23105), + 12: uint16(24266), + 13: uint16(24324), + 14: uint16(26391), + 15: uint16(27004), + 16: uint16(27028), + 17: uint16(28010), + 18: uint16(28431), + 19: uint16(29282), + 20: uint16(29436), + 21: uint16(31725), + 22: uint16(32769), + 23: uint16(32894), + 24: uint16(34635), + 25: uint16(37070), + 26: uint16(20845), + 27: uint16(40595), + 28: uint16(31108), + 29: uint16(32907), + 30: uint16(37682), + 31: uint16(35542), + 32: uint16(20525), + 33: uint16(21644), + 34: uint16(35441), + 35: uint16(27498), + 36: uint16(36036), + 37: uint16(33031), + 38: uint16(24785), + 39: uint16(26528), + 40: uint16(40434), + 41: uint16(20121), + 42: uint16(20120), + 43: uint16(39952), + 44: uint16(35435), + 45: uint16(34241), + 46: uint16(34152), + 47: uint16(26880), + 48: uint16(28286), + 49: uint16(30871), + 50: uint16(33109), + }, + 47: { + 0: uint16(24332), + 1: uint16(19984), + 2: uint16(19989), + 3: uint16(20010), + 4: uint16(20017), + 5: uint16(20022), + 6: uint16(20028), + 7: uint16(20031), + 8: uint16(20034), + 9: uint16(20054), + 10: uint16(20056), + 11: uint16(20098), + 12: uint16(20101), + 13: uint16(35947), + 14: uint16(20106), + 15: uint16(33298), + 16: uint16(24333), + 17: uint16(20110), + 18: uint16(20126), + 19: uint16(20127), + 20: uint16(20128), + 21: uint16(20130), + 22: uint16(20144), + 23: uint16(20147), + 24: uint16(20150), + 25: uint16(20174), + 26: uint16(20173), + 27: uint16(20164), + 28: uint16(20166), + 29: uint16(20162), + 30: uint16(20183), + 31: uint16(20190), + 32: uint16(20205), + 33: uint16(20191), + 34: uint16(20215), + 35: uint16(20233), + 36: uint16(20314), + 37: uint16(20272), + 38: uint16(20315), + 39: uint16(20317), + 40: uint16(20311), + 41: uint16(20295), + 42: uint16(20342), + 43: uint16(20360), + 44: uint16(20367), + 45: uint16(20376), + 46: uint16(20347), + 47: uint16(20329), + 48: uint16(20336), + 49: uint16(20369), + 50: uint16(20335), + 51: uint16(20358), + 52: uint16(20374), + 53: uint16(20760), + 54: uint16(20436), + 55: uint16(20447), + 56: uint16(20430), + 57: uint16(20440), + 58: uint16(20443), + 59: uint16(20433), + 60: uint16(20442), + 61: uint16(20432), + 62: uint16(20452), + 63: uint16(20453), + 64: uint16(20506), + 65: uint16(20520), + 66: uint16(20500), + 67: uint16(20522), + 68: uint16(20517), + 69: uint16(20485), + 70: uint16(20252), + 71: uint16(20470), + 72: uint16(20513), + 73: uint16(20521), + 74: uint16(20524), + 75: uint16(20478), + 76: uint16(20463), + 77: uint16(20497), + 78: uint16(20486), + 79: uint16(20547), + 80: uint16(20551), + 81: uint16(26371), + 82: uint16(20565), + 83: uint16(20560), + 84: uint16(20552), + 85: uint16(20570), + 86: uint16(20566), + 87: uint16(20588), + 88: uint16(20600), + 89: uint16(20608), + 90: uint16(20634), + 91: uint16(20613), + 92: uint16(20660), + 93: uint16(20658), + }, + 48: { + 0: uint16(20681), + 1: uint16(20682), + 2: uint16(20659), + 3: uint16(20674), + 4: uint16(20694), + 5: uint16(20702), + 6: uint16(20709), + 7: uint16(20717), + 8: uint16(20707), + 9: uint16(20718), + 10: uint16(20729), + 11: uint16(20725), + 12: uint16(20745), + 13: uint16(20737), + 14: uint16(20738), + 15: uint16(20758), + 16: uint16(20757), + 17: uint16(20756), + 18: uint16(20762), + 19: uint16(20769), + 20: uint16(20794), + 21: uint16(20791), + 22: uint16(20796), + 23: uint16(20795), + 24: uint16(20799), + 25: uint16(20800), + 26: uint16(20818), + 27: uint16(20812), + 28: uint16(20820), + 29: uint16(20834), + 30: uint16(31480), + 31: uint16(20841), + 32: uint16(20842), + 33: uint16(20846), + 34: uint16(20864), + 35: uint16(20866), + 36: uint16(22232), + 37: uint16(20876), + 38: uint16(20873), + 39: uint16(20879), + 40: uint16(20881), + 41: uint16(20883), + 42: uint16(20885), + 43: uint16(20886), + 44: uint16(20900), + 45: uint16(20902), + 46: uint16(20898), + 47: uint16(20905), + 48: uint16(20906), + 49: uint16(20907), + 50: uint16(20915), + 51: uint16(20913), + 52: uint16(20914), + 53: uint16(20912), + 54: uint16(20917), + 55: uint16(20925), + 56: uint16(20933), + 57: uint16(20937), + 58: uint16(20955), + 59: uint16(20960), + 60: uint16(34389), + 61: uint16(20969), + 62: uint16(20973), + 63: uint16(20976), + 64: uint16(20981), + 65: uint16(20990), + 66: uint16(20996), + 67: uint16(21003), + 68: uint16(21012), + 69: uint16(21006), + 70: uint16(21031), + 71: uint16(21034), + 72: uint16(21038), + 73: uint16(21043), + 74: uint16(21049), + 75: uint16(21071), + 76: uint16(21060), + 77: uint16(21067), + 78: uint16(21068), + 79: uint16(21086), + 80: uint16(21076), + 81: uint16(21098), + 82: uint16(21108), + 83: uint16(21097), + 84: uint16(21107), + 85: uint16(21119), + 86: uint16(21117), + 87: uint16(21133), + 88: uint16(21140), + 89: uint16(21138), + 90: uint16(21105), + 91: uint16(21128), + 92: uint16(21137), + 93: uint16(36776), + }, + 49: { + 0: uint16(36775), + 1: uint16(21164), + 2: uint16(21165), + 3: uint16(21180), + 4: uint16(21173), + 5: uint16(21185), + 6: uint16(21197), + 7: uint16(21207), + 8: uint16(21214), + 9: uint16(21219), + 10: uint16(21222), + 11: uint16(39149), + 12: uint16(21216), + 13: uint16(21235), + 14: uint16(21237), + 15: uint16(21240), + 16: uint16(21241), + 17: uint16(21254), + 18: uint16(21256), + 19: uint16(30008), + 20: uint16(21261), + 21: uint16(21264), + 22: uint16(21263), + 23: uint16(21269), + 24: uint16(21274), + 25: uint16(21283), + 26: uint16(21295), + 27: uint16(21297), + 28: uint16(21299), + 29: uint16(21304), + 30: uint16(21312), + 31: uint16(21318), + 32: uint16(21317), + 33: uint16(19991), + 34: uint16(21321), + 35: uint16(21325), + 36: uint16(20950), + 37: uint16(21342), + 38: uint16(21353), + 39: uint16(21358), + 40: uint16(22808), + 41: uint16(21371), + 42: uint16(21367), + 43: uint16(21378), + 44: uint16(21398), + 45: uint16(21408), + 46: uint16(21414), + 47: uint16(21413), + 48: uint16(21422), + 49: uint16(21424), + 50: uint16(21430), + 51: uint16(21443), + 52: uint16(31762), + 53: uint16(38617), + 54: uint16(21471), + 55: uint16(26364), + 56: uint16(29166), + 57: uint16(21486), + 58: uint16(21480), + 59: uint16(21485), + 60: uint16(21498), + 61: uint16(21505), + 62: uint16(21565), + 63: uint16(21568), + 64: uint16(21548), + 65: uint16(21549), + 66: uint16(21564), + 67: uint16(21550), + 68: uint16(21558), + 69: uint16(21545), + 70: uint16(21533), + 71: uint16(21582), + 72: uint16(21647), + 73: uint16(21621), + 74: uint16(21646), + 75: uint16(21599), + 76: uint16(21617), + 77: uint16(21623), + 78: uint16(21616), + 79: uint16(21650), + 80: uint16(21627), + 81: uint16(21632), + 82: uint16(21622), + 83: uint16(21636), + 84: uint16(21648), + 85: uint16(21638), + 86: uint16(21703), + 87: uint16(21666), + 88: uint16(21688), + 89: uint16(21669), + 90: uint16(21676), + 91: uint16(21700), + 92: uint16(21704), + 93: uint16(21672), + }, + 50: { + 0: uint16(21675), + 1: uint16(21698), + 2: uint16(21668), + 3: uint16(21694), + 4: uint16(21692), + 5: uint16(21720), + 6: uint16(21733), + 7: uint16(21734), + 8: uint16(21775), + 9: uint16(21780), + 10: uint16(21757), + 11: uint16(21742), + 12: uint16(21741), + 13: uint16(21754), + 14: uint16(21730), + 15: uint16(21817), + 16: uint16(21824), + 17: uint16(21859), + 18: uint16(21836), + 19: uint16(21806), + 20: uint16(21852), + 21: uint16(21829), + 22: uint16(21846), + 23: uint16(21847), + 24: uint16(21816), + 25: uint16(21811), + 26: uint16(21853), + 27: uint16(21913), + 28: uint16(21888), + 29: uint16(21679), + 30: uint16(21898), + 31: uint16(21919), + 32: uint16(21883), + 33: uint16(21886), + 34: uint16(21912), + 35: uint16(21918), + 36: uint16(21934), + 37: uint16(21884), + 38: uint16(21891), + 39: uint16(21929), + 40: uint16(21895), + 41: uint16(21928), + 42: uint16(21978), + 43: uint16(21957), + 44: uint16(21983), + 45: uint16(21956), + 46: uint16(21980), + 47: uint16(21988), + 48: uint16(21972), + 49: uint16(22036), + 50: uint16(22007), + 51: uint16(22038), + 52: uint16(22014), + 53: uint16(22013), + 54: uint16(22043), + 55: uint16(22009), + 56: uint16(22094), + 57: uint16(22096), + 58: uint16(29151), + 59: uint16(22068), + 60: uint16(22070), + 61: uint16(22066), + 62: uint16(22072), + 63: uint16(22123), + 64: uint16(22116), + 65: uint16(22063), + 66: uint16(22124), + 67: uint16(22122), + 68: uint16(22150), + 69: uint16(22144), + 70: uint16(22154), + 71: uint16(22176), + 72: uint16(22164), + 73: uint16(22159), + 74: uint16(22181), + 75: uint16(22190), + 76: uint16(22198), + 77: uint16(22196), + 78: uint16(22210), + 79: uint16(22204), + 80: uint16(22209), + 81: uint16(22211), + 82: uint16(22208), + 83: uint16(22216), + 84: uint16(22222), + 85: uint16(22225), + 86: uint16(22227), + 87: uint16(22231), + 88: uint16(22254), + 89: uint16(22265), + 90: uint16(22272), + 91: uint16(22271), + 92: uint16(22276), + 93: uint16(22281), + }, + 51: { + 0: uint16(22280), + 1: uint16(22283), + 2: uint16(22285), + 3: uint16(22291), + 4: uint16(22296), + 5: uint16(22294), + 6: uint16(21959), + 7: uint16(22300), + 8: uint16(22310), + 9: uint16(22327), + 10: uint16(22328), + 11: uint16(22350), + 12: uint16(22331), + 13: uint16(22336), + 14: uint16(22351), + 15: uint16(22377), + 16: uint16(22464), + 17: uint16(22408), + 18: uint16(22369), + 19: uint16(22399), + 20: uint16(22409), + 21: uint16(22419), + 22: uint16(22432), + 23: uint16(22451), + 24: uint16(22436), + 25: uint16(22442), + 26: uint16(22448), + 27: uint16(22467), + 28: uint16(22470), + 29: uint16(22484), + 30: uint16(22482), + 31: uint16(22483), + 32: uint16(22538), + 33: uint16(22486), + 34: uint16(22499), + 35: uint16(22539), + 36: uint16(22553), + 37: uint16(22557), + 38: uint16(22642), + 39: uint16(22561), + 40: uint16(22626), + 41: uint16(22603), + 42: uint16(22640), + 43: uint16(27584), + 44: uint16(22610), + 45: uint16(22589), + 46: uint16(22649), + 47: uint16(22661), + 48: uint16(22713), + 49: uint16(22687), + 50: uint16(22699), + 51: uint16(22714), + 52: uint16(22750), + 53: uint16(22715), + 54: uint16(22712), + 55: uint16(22702), + 56: uint16(22725), + 57: uint16(22739), + 58: uint16(22737), + 59: uint16(22743), + 60: uint16(22745), + 61: uint16(22744), + 62: uint16(22757), + 63: uint16(22748), + 64: uint16(22756), + 65: uint16(22751), + 66: uint16(22767), + 67: uint16(22778), + 68: uint16(22777), + 69: uint16(22779), + 70: uint16(22780), + 71: uint16(22781), + 72: uint16(22786), + 73: uint16(22794), + 74: uint16(22800), + 75: uint16(22811), + 76: uint16(26790), + 77: uint16(22821), + 78: uint16(22828), + 79: uint16(22829), + 80: uint16(22834), + 81: uint16(22840), + 82: uint16(22846), + 83: uint16(31442), + 84: uint16(22869), + 85: uint16(22864), + 86: uint16(22862), + 87: uint16(22874), + 88: uint16(22872), + 89: uint16(22882), + 90: uint16(22880), + 91: uint16(22887), + 92: uint16(22892), + 93: uint16(22889), + }, + 52: { + 0: uint16(22904), + 1: uint16(22913), + 2: uint16(22941), + 3: uint16(20318), + 4: uint16(20395), + 5: uint16(22947), + 6: uint16(22962), + 7: uint16(22982), + 8: uint16(23016), + 9: uint16(23004), + 10: uint16(22925), + 11: uint16(23001), + 12: uint16(23002), + 13: uint16(23077), + 14: uint16(23071), + 15: uint16(23057), + 16: uint16(23068), + 17: uint16(23049), + 18: uint16(23066), + 19: uint16(23104), + 20: uint16(23148), + 21: uint16(23113), + 22: uint16(23093), + 23: uint16(23094), + 24: uint16(23138), + 25: uint16(23146), + 26: uint16(23194), + 27: uint16(23228), + 28: uint16(23230), + 29: uint16(23243), + 30: uint16(23234), + 31: uint16(23229), + 32: uint16(23267), + 33: uint16(23255), + 34: uint16(23270), + 35: uint16(23273), + 36: uint16(23254), + 37: uint16(23290), + 38: uint16(23291), + 39: uint16(23308), + 40: uint16(23307), + 41: uint16(23318), + 42: uint16(23346), + 43: uint16(23248), + 44: uint16(23338), + 45: uint16(23350), + 46: uint16(23358), + 47: uint16(23363), + 48: uint16(23365), + 49: uint16(23360), + 50: uint16(23377), + 51: uint16(23381), + 52: uint16(23386), + 53: uint16(23387), + 54: uint16(23397), + 55: uint16(23401), + 56: uint16(23408), + 57: uint16(23411), + 58: uint16(23413), + 59: uint16(23416), + 60: uint16(25992), + 61: uint16(23418), + 62: uint16(23424), + 63: uint16(23427), + 64: uint16(23462), + 65: uint16(23480), + 66: uint16(23491), + 67: uint16(23495), + 68: uint16(23497), + 69: uint16(23508), + 70: uint16(23504), + 71: uint16(23524), + 72: uint16(23526), + 73: uint16(23522), + 74: uint16(23518), + 75: uint16(23525), + 76: uint16(23531), + 77: uint16(23536), + 78: uint16(23542), + 79: uint16(23539), + 80: uint16(23557), + 81: uint16(23559), + 82: uint16(23560), + 83: uint16(23565), + 84: uint16(23571), + 85: uint16(23584), + 86: uint16(23586), + 87: uint16(23592), + 88: uint16(23608), + 89: uint16(23609), + 90: uint16(23617), + 91: uint16(23622), + 92: uint16(23630), + 93: uint16(23635), + }, + 53: { + 0: uint16(23632), + 1: uint16(23631), + 2: uint16(23409), + 3: uint16(23660), + 4: uint16(23662), + 5: uint16(20066), + 6: uint16(23670), + 7: uint16(23673), + 8: uint16(23692), + 9: uint16(23697), + 10: uint16(23700), + 11: uint16(22939), + 12: uint16(23723), + 13: uint16(23739), + 14: uint16(23734), + 15: uint16(23740), + 16: uint16(23735), + 17: uint16(23749), + 18: uint16(23742), + 19: uint16(23751), + 20: uint16(23769), + 21: uint16(23785), + 22: uint16(23805), + 23: uint16(23802), + 24: uint16(23789), + 25: uint16(23948), + 26: uint16(23786), + 27: uint16(23819), + 28: uint16(23829), + 29: uint16(23831), + 30: uint16(23900), + 31: uint16(23839), + 32: uint16(23835), + 33: uint16(23825), + 34: uint16(23828), + 35: uint16(23842), + 36: uint16(23834), + 37: uint16(23833), + 38: uint16(23832), + 39: uint16(23884), + 40: uint16(23890), + 41: uint16(23886), + 42: uint16(23883), + 43: uint16(23916), + 44: uint16(23923), + 45: uint16(23926), + 46: uint16(23943), + 47: uint16(23940), + 48: uint16(23938), + 49: uint16(23970), + 50: uint16(23965), + 51: uint16(23980), + 52: uint16(23982), + 53: uint16(23997), + 54: uint16(23952), + 55: uint16(23991), + 56: uint16(23996), + 57: uint16(24009), + 58: uint16(24013), + 59: uint16(24019), + 60: uint16(24018), + 61: uint16(24022), + 62: uint16(24027), + 63: uint16(24043), + 64: uint16(24050), + 65: uint16(24053), + 66: uint16(24075), + 67: uint16(24090), + 68: uint16(24089), + 69: uint16(24081), + 70: uint16(24091), + 71: uint16(24118), + 72: uint16(24119), + 73: uint16(24132), + 74: uint16(24131), + 75: uint16(24128), + 76: uint16(24142), + 77: uint16(24151), + 78: uint16(24148), + 79: uint16(24159), + 80: uint16(24162), + 81: uint16(24164), + 82: uint16(24135), + 83: uint16(24181), + 84: uint16(24182), + 85: uint16(24186), + 86: uint16(40636), + 87: uint16(24191), + 88: uint16(24224), + 89: uint16(24257), + 90: uint16(24258), + 91: uint16(24264), + 92: uint16(24272), + 93: uint16(24271), + }, + 54: { + 0: uint16(24278), + 1: uint16(24291), + 2: uint16(24285), + 3: uint16(24282), + 4: uint16(24283), + 5: uint16(24290), + 6: uint16(24289), + 7: uint16(24296), + 8: uint16(24297), + 9: uint16(24300), + 10: uint16(24305), + 11: uint16(24307), + 12: uint16(24304), + 13: uint16(24308), + 14: uint16(24312), + 15: uint16(24318), + 16: uint16(24323), + 17: uint16(24329), + 18: uint16(24413), + 19: uint16(24412), + 20: uint16(24331), + 21: uint16(24337), + 22: uint16(24342), + 23: uint16(24361), + 24: uint16(24365), + 25: uint16(24376), + 26: uint16(24385), + 27: uint16(24392), + 28: uint16(24396), + 29: uint16(24398), + 30: uint16(24367), + 31: uint16(24401), + 32: uint16(24406), + 33: uint16(24407), + 34: uint16(24409), + 35: uint16(24417), + 36: uint16(24429), + 37: uint16(24435), + 38: uint16(24439), + 39: uint16(24451), + 40: uint16(24450), + 41: uint16(24447), + 42: uint16(24458), + 43: uint16(24456), + 44: uint16(24465), + 45: uint16(24455), + 46: uint16(24478), + 47: uint16(24473), + 48: uint16(24472), + 49: uint16(24480), + 50: uint16(24488), + 51: uint16(24493), + 52: uint16(24508), + 53: uint16(24534), + 54: uint16(24571), + 55: uint16(24548), + 56: uint16(24568), + 57: uint16(24561), + 58: uint16(24541), + 59: uint16(24755), + 60: uint16(24575), + 61: uint16(24609), + 62: uint16(24672), + 63: uint16(24601), + 64: uint16(24592), + 65: uint16(24617), + 66: uint16(24590), + 67: uint16(24625), + 68: uint16(24603), + 69: uint16(24597), + 70: uint16(24619), + 71: uint16(24614), + 72: uint16(24591), + 73: uint16(24634), + 74: uint16(24666), + 75: uint16(24641), + 76: uint16(24682), + 77: uint16(24695), + 78: uint16(24671), + 79: uint16(24650), + 80: uint16(24646), + 81: uint16(24653), + 82: uint16(24675), + 83: uint16(24643), + 84: uint16(24676), + 85: uint16(24642), + 86: uint16(24684), + 87: uint16(24683), + 88: uint16(24665), + 89: uint16(24705), + 90: uint16(24717), + 91: uint16(24807), + 92: uint16(24707), + 93: uint16(24730), + }, + 55: { + 0: uint16(24708), + 1: uint16(24731), + 2: uint16(24726), + 3: uint16(24727), + 4: uint16(24722), + 5: uint16(24743), + 6: uint16(24715), + 7: uint16(24801), + 8: uint16(24760), + 9: uint16(24800), + 10: uint16(24787), + 11: uint16(24756), + 12: uint16(24560), + 13: uint16(24765), + 14: uint16(24774), + 15: uint16(24757), + 16: uint16(24792), + 17: uint16(24909), + 18: uint16(24853), + 19: uint16(24838), + 20: uint16(24822), + 21: uint16(24823), + 22: uint16(24832), + 23: uint16(24820), + 24: uint16(24826), + 25: uint16(24835), + 26: uint16(24865), + 27: uint16(24827), + 28: uint16(24817), + 29: uint16(24845), + 30: uint16(24846), + 31: uint16(24903), + 32: uint16(24894), + 33: uint16(24872), + 34: uint16(24871), + 35: uint16(24906), + 36: uint16(24895), + 37: uint16(24892), + 38: uint16(24876), + 39: uint16(24884), + 40: uint16(24893), + 41: uint16(24898), + 42: uint16(24900), + 43: uint16(24947), + 44: uint16(24951), + 45: uint16(24920), + 46: uint16(24921), + 47: uint16(24922), + 48: uint16(24939), + 49: uint16(24948), + 50: uint16(24943), + 51: uint16(24933), + 52: uint16(24945), + 53: uint16(24927), + 54: uint16(24925), + 55: uint16(24915), + 56: uint16(24949), + 57: uint16(24985), + 58: uint16(24982), + 59: uint16(24967), + 60: uint16(25004), + 61: uint16(24980), + 62: uint16(24986), + 63: uint16(24970), + 64: uint16(24977), + 65: uint16(25003), + 66: uint16(25006), + 67: uint16(25036), + 68: uint16(25034), + 69: uint16(25033), + 70: uint16(25079), + 71: uint16(25032), + 72: uint16(25027), + 73: uint16(25030), + 74: uint16(25018), + 75: uint16(25035), + 76: uint16(32633), + 77: uint16(25037), + 78: uint16(25062), + 79: uint16(25059), + 80: uint16(25078), + 81: uint16(25082), + 82: uint16(25076), + 83: uint16(25087), + 84: uint16(25085), + 85: uint16(25084), + 86: uint16(25086), + 87: uint16(25088), + 88: uint16(25096), + 89: uint16(25097), + 90: uint16(25101), + 91: uint16(25100), + 92: uint16(25108), + 93: uint16(25115), + }, + 56: { + 0: uint16(25118), + 1: uint16(25121), + 2: uint16(25130), + 3: uint16(25134), + 4: uint16(25136), + 5: uint16(25138), + 6: uint16(25139), + 7: uint16(25153), + 8: uint16(25166), + 9: uint16(25182), + 10: uint16(25187), + 11: uint16(25179), + 12: uint16(25184), + 13: uint16(25192), + 14: uint16(25212), + 15: uint16(25218), + 16: uint16(25225), + 17: uint16(25214), + 18: uint16(25234), + 19: uint16(25235), + 20: uint16(25238), + 21: uint16(25300), + 22: uint16(25219), + 23: uint16(25236), + 24: uint16(25303), + 25: uint16(25297), + 26: uint16(25275), + 27: uint16(25295), + 28: uint16(25343), + 29: uint16(25286), + 30: uint16(25812), + 31: uint16(25288), + 32: uint16(25308), + 33: uint16(25292), + 34: uint16(25290), + 35: uint16(25282), + 36: uint16(25287), + 37: uint16(25243), + 38: uint16(25289), + 39: uint16(25356), + 40: uint16(25326), + 41: uint16(25329), + 42: uint16(25383), + 43: uint16(25346), + 44: uint16(25352), + 45: uint16(25327), + 46: uint16(25333), + 47: uint16(25424), + 48: uint16(25406), + 49: uint16(25421), + 50: uint16(25628), + 51: uint16(25423), + 52: uint16(25494), + 53: uint16(25486), + 54: uint16(25472), + 55: uint16(25515), + 56: uint16(25462), + 57: uint16(25507), + 58: uint16(25487), + 59: uint16(25481), + 60: uint16(25503), + 61: uint16(25525), + 62: uint16(25451), + 63: uint16(25449), + 64: uint16(25534), + 65: uint16(25577), + 66: uint16(25536), + 67: uint16(25542), + 68: uint16(25571), + 69: uint16(25545), + 70: uint16(25554), + 71: uint16(25590), + 72: uint16(25540), + 73: uint16(25622), + 74: uint16(25652), + 75: uint16(25606), + 76: uint16(25619), + 77: uint16(25638), + 78: uint16(25654), + 79: uint16(25885), + 80: uint16(25623), + 81: uint16(25640), + 82: uint16(25615), + 83: uint16(25703), + 84: uint16(25711), + 85: uint16(25718), + 86: uint16(25678), + 87: uint16(25898), + 88: uint16(25749), + 89: uint16(25747), + 90: uint16(25765), + 91: uint16(25769), + 92: uint16(25736), + 93: uint16(25788), + }, + 57: { + 0: uint16(25818), + 1: uint16(25810), + 2: uint16(25797), + 3: uint16(25799), + 4: uint16(25787), + 5: uint16(25816), + 6: uint16(25794), + 7: uint16(25841), + 8: uint16(25831), + 9: uint16(33289), + 10: uint16(25824), + 11: uint16(25825), + 12: uint16(25260), + 13: uint16(25827), + 14: uint16(25839), + 15: uint16(25900), + 16: uint16(25846), + 17: uint16(25844), + 18: uint16(25842), + 19: uint16(25850), + 20: uint16(25856), + 21: uint16(25853), + 22: uint16(25880), + 23: uint16(25884), + 24: uint16(25861), + 25: uint16(25892), + 26: uint16(25891), + 27: uint16(25899), + 28: uint16(25908), + 29: uint16(25909), + 30: uint16(25911), + 31: uint16(25910), + 32: uint16(25912), + 33: uint16(30027), + 34: uint16(25928), + 35: uint16(25942), + 36: uint16(25941), + 37: uint16(25933), + 38: uint16(25944), + 39: uint16(25950), + 40: uint16(25949), + 41: uint16(25970), + 42: uint16(25976), + 43: uint16(25986), + 44: uint16(25987), + 45: uint16(35722), + 46: uint16(26011), + 47: uint16(26015), + 48: uint16(26027), + 49: uint16(26039), + 50: uint16(26051), + 51: uint16(26054), + 52: uint16(26049), + 53: uint16(26052), + 54: uint16(26060), + 55: uint16(26066), + 56: uint16(26075), + 57: uint16(26073), + 58: uint16(26080), + 59: uint16(26081), + 60: uint16(26097), + 61: uint16(26482), + 62: uint16(26122), + 63: uint16(26115), + 64: uint16(26107), + 65: uint16(26483), + 66: uint16(26165), + 67: uint16(26166), + 68: uint16(26164), + 69: uint16(26140), + 70: uint16(26191), + 71: uint16(26180), + 72: uint16(26185), + 73: uint16(26177), + 74: uint16(26206), + 75: uint16(26205), + 76: uint16(26212), + 77: uint16(26215), + 78: uint16(26216), + 79: uint16(26207), + 80: uint16(26210), + 81: uint16(26224), + 82: uint16(26243), + 83: uint16(26248), + 84: uint16(26254), + 85: uint16(26249), + 86: uint16(26244), + 87: uint16(26264), + 88: uint16(26269), + 89: uint16(26305), + 90: uint16(26297), + 91: uint16(26313), + 92: uint16(26302), + 93: uint16(26300), + }, + 58: { + 0: uint16(26308), + 1: uint16(26296), + 2: uint16(26326), + 3: uint16(26330), + 4: uint16(26336), + 5: uint16(26175), + 6: uint16(26342), + 7: uint16(26345), + 8: uint16(26352), + 9: uint16(26357), + 10: uint16(26359), + 11: uint16(26383), + 12: uint16(26390), + 13: uint16(26398), + 14: uint16(26406), + 15: uint16(26407), + 16: uint16(38712), + 17: uint16(26414), + 18: uint16(26431), + 19: uint16(26422), + 20: uint16(26433), + 21: uint16(26424), + 22: uint16(26423), + 23: uint16(26438), + 24: uint16(26462), + 25: uint16(26464), + 26: uint16(26457), + 27: uint16(26467), + 28: uint16(26468), + 29: uint16(26505), + 30: uint16(26480), + 31: uint16(26537), + 32: uint16(26492), + 33: uint16(26474), + 34: uint16(26508), + 35: uint16(26507), + 36: uint16(26534), + 37: uint16(26529), + 38: uint16(26501), + 39: uint16(26551), + 40: uint16(26607), + 41: uint16(26548), + 42: uint16(26604), + 43: uint16(26547), + 44: uint16(26601), + 45: uint16(26552), + 46: uint16(26596), + 47: uint16(26590), + 48: uint16(26589), + 49: uint16(26594), + 50: uint16(26606), + 51: uint16(26553), + 52: uint16(26574), + 53: uint16(26566), + 54: uint16(26599), + 55: uint16(27292), + 56: uint16(26654), + 57: uint16(26694), + 58: uint16(26665), + 59: uint16(26688), + 60: uint16(26701), + 61: uint16(26674), + 62: uint16(26702), + 63: uint16(26803), + 64: uint16(26667), + 65: uint16(26713), + 66: uint16(26723), + 67: uint16(26743), + 68: uint16(26751), + 69: uint16(26783), + 70: uint16(26767), + 71: uint16(26797), + 72: uint16(26772), + 73: uint16(26781), + 74: uint16(26779), + 75: uint16(26755), + 76: uint16(27310), + 77: uint16(26809), + 78: uint16(26740), + 79: uint16(26805), + 80: uint16(26784), + 81: uint16(26810), + 82: uint16(26895), + 83: uint16(26765), + 84: uint16(26750), + 85: uint16(26881), + 86: uint16(26826), + 87: uint16(26888), + 88: uint16(26840), + 89: uint16(26914), + 90: uint16(26918), + 91: uint16(26849), + 92: uint16(26892), + 93: uint16(26829), + }, + 59: { + 0: uint16(26836), + 1: uint16(26855), + 2: uint16(26837), + 3: uint16(26934), + 4: uint16(26898), + 5: uint16(26884), + 6: uint16(26839), + 7: uint16(26851), + 8: uint16(26917), + 9: uint16(26873), + 10: uint16(26848), + 11: uint16(26863), + 12: uint16(26920), + 13: uint16(26922), + 14: uint16(26906), + 15: uint16(26915), + 16: uint16(26913), + 17: uint16(26822), + 18: uint16(27001), + 19: uint16(26999), + 20: uint16(26972), + 21: uint16(27000), + 22: uint16(26987), + 23: uint16(26964), + 24: uint16(27006), + 25: uint16(26990), + 26: uint16(26937), + 27: uint16(26996), + 28: uint16(26941), + 29: uint16(26969), + 30: uint16(26928), + 31: uint16(26977), + 32: uint16(26974), + 33: uint16(26973), + 34: uint16(27009), + 35: uint16(26986), + 36: uint16(27058), + 37: uint16(27054), + 38: uint16(27088), + 39: uint16(27071), + 40: uint16(27073), + 41: uint16(27091), + 42: uint16(27070), + 43: uint16(27086), + 44: uint16(23528), + 45: uint16(27082), + 46: uint16(27101), + 47: uint16(27067), + 48: uint16(27075), + 49: uint16(27047), + 50: uint16(27182), + 51: uint16(27025), + 52: uint16(27040), + 53: uint16(27036), + 54: uint16(27029), + 55: uint16(27060), + 56: uint16(27102), + 57: uint16(27112), + 58: uint16(27138), + 59: uint16(27163), + 60: uint16(27135), + 61: uint16(27402), + 62: uint16(27129), + 63: uint16(27122), + 64: uint16(27111), + 65: uint16(27141), + 66: uint16(27057), + 67: uint16(27166), + 68: uint16(27117), + 69: uint16(27156), + 70: uint16(27115), + 71: uint16(27146), + 72: uint16(27154), + 73: uint16(27329), + 74: uint16(27171), + 75: uint16(27155), + 76: uint16(27204), + 77: uint16(27148), + 78: uint16(27250), + 79: uint16(27190), + 80: uint16(27256), + 81: uint16(27207), + 82: uint16(27234), + 83: uint16(27225), + 84: uint16(27238), + 85: uint16(27208), + 86: uint16(27192), + 87: uint16(27170), + 88: uint16(27280), + 89: uint16(27277), + 90: uint16(27296), + 91: uint16(27268), + 92: uint16(27298), + 93: uint16(27299), + }, + 60: { + 0: uint16(27287), + 1: uint16(34327), + 2: uint16(27323), + 3: uint16(27331), + 4: uint16(27330), + 5: uint16(27320), + 6: uint16(27315), + 7: uint16(27308), + 8: uint16(27358), + 9: uint16(27345), + 10: uint16(27359), + 11: uint16(27306), + 12: uint16(27354), + 13: uint16(27370), + 14: uint16(27387), + 15: uint16(27397), + 16: uint16(34326), + 17: uint16(27386), + 18: uint16(27410), + 19: uint16(27414), + 20: uint16(39729), + 21: uint16(27423), + 22: uint16(27448), + 23: uint16(27447), + 24: uint16(30428), + 25: uint16(27449), + 26: uint16(39150), + 27: uint16(27463), + 28: uint16(27459), + 29: uint16(27465), + 30: uint16(27472), + 31: uint16(27481), + 32: uint16(27476), + 33: uint16(27483), + 34: uint16(27487), + 35: uint16(27489), + 36: uint16(27512), + 37: uint16(27513), + 38: uint16(27519), + 39: uint16(27520), + 40: uint16(27524), + 41: uint16(27523), + 42: uint16(27533), + 43: uint16(27544), + 44: uint16(27541), + 45: uint16(27550), + 46: uint16(27556), + 47: uint16(27562), + 48: uint16(27563), + 49: uint16(27567), + 50: uint16(27570), + 51: uint16(27569), + 52: uint16(27571), + 53: uint16(27575), + 54: uint16(27580), + 55: uint16(27590), + 56: uint16(27595), + 57: uint16(27603), + 58: uint16(27615), + 59: uint16(27628), + 60: uint16(27627), + 61: uint16(27635), + 62: uint16(27631), + 63: uint16(40638), + 64: uint16(27656), + 65: uint16(27667), + 66: uint16(27668), + 67: uint16(27675), + 68: uint16(27684), + 69: uint16(27683), + 70: uint16(27742), + 71: uint16(27733), + 72: uint16(27746), + 73: uint16(27754), + 74: uint16(27778), + 75: uint16(27789), + 76: uint16(27802), + 77: uint16(27777), + 78: uint16(27803), + 79: uint16(27774), + 80: uint16(27752), + 81: uint16(27763), + 82: uint16(27794), + 83: uint16(27792), + 84: uint16(27844), + 85: uint16(27889), + 86: uint16(27859), + 87: uint16(27837), + 88: uint16(27863), + 89: uint16(27845), + 90: uint16(27869), + 91: uint16(27822), + 92: uint16(27825), + 93: uint16(27838), + }, + 61: { + 0: uint16(27834), + 1: uint16(27867), + 2: uint16(27887), + 3: uint16(27865), + 4: uint16(27882), + 5: uint16(27935), + 6: uint16(34893), + 7: uint16(27958), + 8: uint16(27947), + 9: uint16(27965), + 10: uint16(27960), + 11: uint16(27929), + 12: uint16(27957), + 13: uint16(27955), + 14: uint16(27922), + 15: uint16(27916), + 16: uint16(28003), + 17: uint16(28051), + 18: uint16(28004), + 19: uint16(27994), + 20: uint16(28025), + 21: uint16(27993), + 22: uint16(28046), + 23: uint16(28053), + 24: uint16(28644), + 25: uint16(28037), + 26: uint16(28153), + 27: uint16(28181), + 28: uint16(28170), + 29: uint16(28085), + 30: uint16(28103), + 31: uint16(28134), + 32: uint16(28088), + 33: uint16(28102), + 34: uint16(28140), + 35: uint16(28126), + 36: uint16(28108), + 37: uint16(28136), + 38: uint16(28114), + 39: uint16(28101), + 40: uint16(28154), + 41: uint16(28121), + 42: uint16(28132), + 43: uint16(28117), + 44: uint16(28138), + 45: uint16(28142), + 46: uint16(28205), + 47: uint16(28270), + 48: uint16(28206), + 49: uint16(28185), + 50: uint16(28274), + 51: uint16(28255), + 52: uint16(28222), + 53: uint16(28195), + 54: uint16(28267), + 55: uint16(28203), + 56: uint16(28278), + 57: uint16(28237), + 58: uint16(28191), + 59: uint16(28227), + 60: uint16(28218), + 61: uint16(28238), + 62: uint16(28196), + 63: uint16(28415), + 64: uint16(28189), + 65: uint16(28216), + 66: uint16(28290), + 67: uint16(28330), + 68: uint16(28312), + 69: uint16(28361), + 70: uint16(28343), + 71: uint16(28371), + 72: uint16(28349), + 73: uint16(28335), + 74: uint16(28356), + 75: uint16(28338), + 76: uint16(28372), + 77: uint16(28373), + 78: uint16(28303), + 79: uint16(28325), + 80: uint16(28354), + 81: uint16(28319), + 82: uint16(28481), + 83: uint16(28433), + 84: uint16(28748), + 85: uint16(28396), + 86: uint16(28408), + 87: uint16(28414), + 88: uint16(28479), + 89: uint16(28402), + 90: uint16(28465), + 91: uint16(28399), + 92: uint16(28466), + 93: uint16(28364), + }, + 62: { + 0: uint16(28478), + 1: uint16(28435), + 2: uint16(28407), + 3: uint16(28550), + 4: uint16(28538), + 5: uint16(28536), + 6: uint16(28545), + 7: uint16(28544), + 8: uint16(28527), + 9: uint16(28507), + 10: uint16(28659), + 11: uint16(28525), + 12: uint16(28546), + 13: uint16(28540), + 14: uint16(28504), + 15: uint16(28558), + 16: uint16(28561), + 17: uint16(28610), + 18: uint16(28518), + 19: uint16(28595), + 20: uint16(28579), + 21: uint16(28577), + 22: uint16(28580), + 23: uint16(28601), + 24: uint16(28614), + 25: uint16(28586), + 26: uint16(28639), + 27: uint16(28629), + 28: uint16(28652), + 29: uint16(28628), + 30: uint16(28632), + 31: uint16(28657), + 32: uint16(28654), + 33: uint16(28635), + 34: uint16(28681), + 35: uint16(28683), + 36: uint16(28666), + 37: uint16(28689), + 38: uint16(28673), + 39: uint16(28687), + 40: uint16(28670), + 41: uint16(28699), + 42: uint16(28698), + 43: uint16(28532), + 44: uint16(28701), + 45: uint16(28696), + 46: uint16(28703), + 47: uint16(28720), + 48: uint16(28734), + 49: uint16(28722), + 50: uint16(28753), + 51: uint16(28771), + 52: uint16(28825), + 53: uint16(28818), + 54: uint16(28847), + 55: uint16(28913), + 56: uint16(28844), + 57: uint16(28856), + 58: uint16(28851), + 59: uint16(28846), + 60: uint16(28895), + 61: uint16(28875), + 62: uint16(28893), + 63: uint16(28889), + 64: uint16(28937), + 65: uint16(28925), + 66: uint16(28956), + 67: uint16(28953), + 68: uint16(29029), + 69: uint16(29013), + 70: uint16(29064), + 71: uint16(29030), + 72: uint16(29026), + 73: uint16(29004), + 74: uint16(29014), + 75: uint16(29036), + 76: uint16(29071), + 77: uint16(29179), + 78: uint16(29060), + 79: uint16(29077), + 80: uint16(29096), + 81: uint16(29100), + 82: uint16(29143), + 83: uint16(29113), + 84: uint16(29118), + 85: uint16(29138), + 86: uint16(29129), + 87: uint16(29140), + 88: uint16(29134), + 89: uint16(29152), + 90: uint16(29164), + 91: uint16(29159), + 92: uint16(29173), + 93: uint16(29180), + }, + 63: { + 0: uint16(29177), + 1: uint16(29183), + 2: uint16(29197), + 3: uint16(29200), + 4: uint16(29211), + 5: uint16(29224), + 6: uint16(29229), + 7: uint16(29228), + 8: uint16(29232), + 9: uint16(29234), + 10: uint16(29243), + 11: uint16(29244), + 12: uint16(29247), + 13: uint16(29248), + 14: uint16(29254), + 15: uint16(29259), + 16: uint16(29272), + 17: uint16(29300), + 18: uint16(29310), + 19: uint16(29314), + 20: uint16(29313), + 21: uint16(29319), + 22: uint16(29330), + 23: uint16(29334), + 24: uint16(29346), + 25: uint16(29351), + 26: uint16(29369), + 27: uint16(29362), + 28: uint16(29379), + 29: uint16(29382), + 30: uint16(29380), + 31: uint16(29390), + 32: uint16(29394), + 33: uint16(29410), + 34: uint16(29408), + 35: uint16(29409), + 36: uint16(29433), + 37: uint16(29431), + 38: uint16(20495), + 39: uint16(29463), + 40: uint16(29450), + 41: uint16(29468), + 42: uint16(29462), + 43: uint16(29469), + 44: uint16(29492), + 45: uint16(29487), + 46: uint16(29481), + 47: uint16(29477), + 48: uint16(29502), + 49: uint16(29518), + 50: uint16(29519), + 51: uint16(40664), + 52: uint16(29527), + 53: uint16(29546), + 54: uint16(29544), + 55: uint16(29552), + 56: uint16(29560), + 57: uint16(29557), + 58: uint16(29563), + 59: uint16(29562), + 60: uint16(29640), + 61: uint16(29619), + 62: uint16(29646), + 63: uint16(29627), + 64: uint16(29632), + 65: uint16(29669), + 66: uint16(29678), + 67: uint16(29662), + 68: uint16(29858), + 69: uint16(29701), + 70: uint16(29807), + 71: uint16(29733), + 72: uint16(29688), + 73: uint16(29746), + 74: uint16(29754), + 75: uint16(29781), + 76: uint16(29759), + 77: uint16(29791), + 78: uint16(29785), + 79: uint16(29761), + 80: uint16(29788), + 81: uint16(29801), + 82: uint16(29808), + 83: uint16(29795), + 84: uint16(29802), + 85: uint16(29814), + 86: uint16(29822), + 87: uint16(29835), + 88: uint16(29854), + 89: uint16(29863), + 90: uint16(29898), + 91: uint16(29903), + 92: uint16(29908), + 93: uint16(29681), + }, + 64: { + 0: uint16(29920), + 1: uint16(29923), + 2: uint16(29927), + 3: uint16(29929), + 4: uint16(29934), + 5: uint16(29938), + 6: uint16(29936), + 7: uint16(29937), + 8: uint16(29944), + 9: uint16(29943), + 10: uint16(29956), + 11: uint16(29955), + 12: uint16(29957), + 13: uint16(29964), + 14: uint16(29966), + 15: uint16(29965), + 16: uint16(29973), + 17: uint16(29971), + 18: uint16(29982), + 19: uint16(29990), + 20: uint16(29996), + 21: uint16(30012), + 22: uint16(30020), + 23: uint16(30029), + 24: uint16(30026), + 25: uint16(30025), + 26: uint16(30043), + 27: uint16(30022), + 28: uint16(30042), + 29: uint16(30057), + 30: uint16(30052), + 31: uint16(30055), + 32: uint16(30059), + 33: uint16(30061), + 34: uint16(30072), + 35: uint16(30070), + 36: uint16(30086), + 37: uint16(30087), + 38: uint16(30068), + 39: uint16(30090), + 40: uint16(30089), + 41: uint16(30082), + 42: uint16(30100), + 43: uint16(30106), + 44: uint16(30109), + 45: uint16(30117), + 46: uint16(30115), + 47: uint16(30146), + 48: uint16(30131), + 49: uint16(30147), + 50: uint16(30133), + 51: uint16(30141), + 52: uint16(30136), + 53: uint16(30140), + 54: uint16(30129), + 55: uint16(30157), + 56: uint16(30154), + 57: uint16(30162), + 58: uint16(30169), + 59: uint16(30179), + 60: uint16(30174), + 61: uint16(30206), + 62: uint16(30207), + 63: uint16(30204), + 64: uint16(30209), + 65: uint16(30192), + 66: uint16(30202), + 67: uint16(30194), + 68: uint16(30195), + 69: uint16(30219), + 70: uint16(30221), + 71: uint16(30217), + 72: uint16(30239), + 73: uint16(30247), + 74: uint16(30240), + 75: uint16(30241), + 76: uint16(30242), + 77: uint16(30244), + 78: uint16(30260), + 79: uint16(30256), + 80: uint16(30267), + 81: uint16(30279), + 82: uint16(30280), + 83: uint16(30278), + 84: uint16(30300), + 85: uint16(30296), + 86: uint16(30305), + 87: uint16(30306), + 88: uint16(30312), + 89: uint16(30313), + 90: uint16(30314), + 91: uint16(30311), + 92: uint16(30316), + 93: uint16(30320), + }, + 65: { + 0: uint16(30322), + 1: uint16(30326), + 2: uint16(30328), + 3: uint16(30332), + 4: uint16(30336), + 5: uint16(30339), + 6: uint16(30344), + 7: uint16(30347), + 8: uint16(30350), + 9: uint16(30358), + 10: uint16(30355), + 11: uint16(30361), + 12: uint16(30362), + 13: uint16(30384), + 14: uint16(30388), + 15: uint16(30392), + 16: uint16(30393), + 17: uint16(30394), + 18: uint16(30402), + 19: uint16(30413), + 20: uint16(30422), + 21: uint16(30418), + 22: uint16(30430), + 23: uint16(30433), + 24: uint16(30437), + 25: uint16(30439), + 26: uint16(30442), + 27: uint16(34351), + 28: uint16(30459), + 29: uint16(30472), + 30: uint16(30471), + 31: uint16(30468), + 32: uint16(30505), + 33: uint16(30500), + 34: uint16(30494), + 35: uint16(30501), + 36: uint16(30502), + 37: uint16(30491), + 38: uint16(30519), + 39: uint16(30520), + 40: uint16(30535), + 41: uint16(30554), + 42: uint16(30568), + 43: uint16(30571), + 44: uint16(30555), + 45: uint16(30565), + 46: uint16(30591), + 47: uint16(30590), + 48: uint16(30585), + 49: uint16(30606), + 50: uint16(30603), + 51: uint16(30609), + 52: uint16(30624), + 53: uint16(30622), + 54: uint16(30640), + 55: uint16(30646), + 56: uint16(30649), + 57: uint16(30655), + 58: uint16(30652), + 59: uint16(30653), + 60: uint16(30651), + 61: uint16(30663), + 62: uint16(30669), + 63: uint16(30679), + 64: uint16(30682), + 65: uint16(30684), + 66: uint16(30691), + 67: uint16(30702), + 68: uint16(30716), + 69: uint16(30732), + 70: uint16(30738), + 71: uint16(31014), + 72: uint16(30752), + 73: uint16(31018), + 74: uint16(30789), + 75: uint16(30862), + 76: uint16(30836), + 77: uint16(30854), + 78: uint16(30844), + 79: uint16(30874), + 80: uint16(30860), + 81: uint16(30883), + 82: uint16(30901), + 83: uint16(30890), + 84: uint16(30895), + 85: uint16(30929), + 86: uint16(30918), + 87: uint16(30923), + 88: uint16(30932), + 89: uint16(30910), + 90: uint16(30908), + 91: uint16(30917), + 92: uint16(30922), + 93: uint16(30956), + }, + 66: { + 0: uint16(30951), + 1: uint16(30938), + 2: uint16(30973), + 3: uint16(30964), + 4: uint16(30983), + 5: uint16(30994), + 6: uint16(30993), + 7: uint16(31001), + 8: uint16(31020), + 9: uint16(31019), + 10: uint16(31040), + 11: uint16(31072), + 12: uint16(31063), + 13: uint16(31071), + 14: uint16(31066), + 15: uint16(31061), + 16: uint16(31059), + 17: uint16(31098), + 18: uint16(31103), + 19: uint16(31114), + 20: uint16(31133), + 21: uint16(31143), + 22: uint16(40779), + 23: uint16(31146), + 24: uint16(31150), + 25: uint16(31155), + 26: uint16(31161), + 27: uint16(31162), + 28: uint16(31177), + 29: uint16(31189), + 30: uint16(31207), + 31: uint16(31212), + 32: uint16(31201), + 33: uint16(31203), + 34: uint16(31240), + 35: uint16(31245), + 36: uint16(31256), + 37: uint16(31257), + 38: uint16(31264), + 39: uint16(31263), + 40: uint16(31104), + 41: uint16(31281), + 42: uint16(31291), + 43: uint16(31294), + 44: uint16(31287), + 45: uint16(31299), + 46: uint16(31319), + 47: uint16(31305), + 48: uint16(31329), + 49: uint16(31330), + 50: uint16(31337), + 51: uint16(40861), + 52: uint16(31344), + 53: uint16(31353), + 54: uint16(31357), + 55: uint16(31368), + 56: uint16(31383), + 57: uint16(31381), + 58: uint16(31384), + 59: uint16(31382), + 60: uint16(31401), + 61: uint16(31432), + 62: uint16(31408), + 63: uint16(31414), + 64: uint16(31429), + 65: uint16(31428), + 66: uint16(31423), + 67: uint16(36995), + 68: uint16(31431), + 69: uint16(31434), + 70: uint16(31437), + 71: uint16(31439), + 72: uint16(31445), + 73: uint16(31443), + 74: uint16(31449), + 75: uint16(31450), + 76: uint16(31453), + 77: uint16(31457), + 78: uint16(31458), + 79: uint16(31462), + 80: uint16(31469), + 81: uint16(31472), + 82: uint16(31490), + 83: uint16(31503), + 84: uint16(31498), + 85: uint16(31494), + 86: uint16(31539), + 87: uint16(31512), + 88: uint16(31513), + 89: uint16(31518), + 90: uint16(31541), + 91: uint16(31528), + 92: uint16(31542), + 93: uint16(31568), + }, + 67: { + 0: uint16(31610), + 1: uint16(31492), + 2: uint16(31565), + 3: uint16(31499), + 4: uint16(31564), + 5: uint16(31557), + 6: uint16(31605), + 7: uint16(31589), + 8: uint16(31604), + 9: uint16(31591), + 10: uint16(31600), + 11: uint16(31601), + 12: uint16(31596), + 13: uint16(31598), + 14: uint16(31645), + 15: uint16(31640), + 16: uint16(31647), + 17: uint16(31629), + 18: uint16(31644), + 19: uint16(31642), + 20: uint16(31627), + 21: uint16(31634), + 22: uint16(31631), + 23: uint16(31581), + 24: uint16(31641), + 25: uint16(31691), + 26: uint16(31681), + 27: uint16(31692), + 28: uint16(31695), + 29: uint16(31668), + 30: uint16(31686), + 31: uint16(31709), + 32: uint16(31721), + 33: uint16(31761), + 34: uint16(31764), + 35: uint16(31718), + 36: uint16(31717), + 37: uint16(31840), + 38: uint16(31744), + 39: uint16(31751), + 40: uint16(31763), + 41: uint16(31731), + 42: uint16(31735), + 43: uint16(31767), + 44: uint16(31757), + 45: uint16(31734), + 46: uint16(31779), + 47: uint16(31783), + 48: uint16(31786), + 49: uint16(31775), + 50: uint16(31799), + 51: uint16(31787), + 52: uint16(31805), + 53: uint16(31820), + 54: uint16(31811), + 55: uint16(31828), + 56: uint16(31823), + 57: uint16(31808), + 58: uint16(31824), + 59: uint16(31832), + 60: uint16(31839), + 61: uint16(31844), + 62: uint16(31830), + 63: uint16(31845), + 64: uint16(31852), + 65: uint16(31861), + 66: uint16(31875), + 67: uint16(31888), + 68: uint16(31908), + 69: uint16(31917), + 70: uint16(31906), + 71: uint16(31915), + 72: uint16(31905), + 73: uint16(31912), + 74: uint16(31923), + 75: uint16(31922), + 76: uint16(31921), + 77: uint16(31918), + 78: uint16(31929), + 79: uint16(31933), + 80: uint16(31936), + 81: uint16(31941), + 82: uint16(31938), + 83: uint16(31960), + 84: uint16(31954), + 85: uint16(31964), + 86: uint16(31970), + 87: uint16(39739), + 88: uint16(31983), + 89: uint16(31986), + 90: uint16(31988), + 91: uint16(31990), + 92: uint16(31994), + 93: uint16(32006), + }, + 68: { + 0: uint16(32002), + 1: uint16(32028), + 2: uint16(32021), + 3: uint16(32010), + 4: uint16(32069), + 5: uint16(32075), + 6: uint16(32046), + 7: uint16(32050), + 8: uint16(32063), + 9: uint16(32053), + 10: uint16(32070), + 11: uint16(32115), + 12: uint16(32086), + 13: uint16(32078), + 14: uint16(32114), + 15: uint16(32104), + 16: uint16(32110), + 17: uint16(32079), + 18: uint16(32099), + 19: uint16(32147), + 20: uint16(32137), + 21: uint16(32091), + 22: uint16(32143), + 23: uint16(32125), + 24: uint16(32155), + 25: uint16(32186), + 26: uint16(32174), + 27: uint16(32163), + 28: uint16(32181), + 29: uint16(32199), + 30: uint16(32189), + 31: uint16(32171), + 32: uint16(32317), + 33: uint16(32162), + 34: uint16(32175), + 35: uint16(32220), + 36: uint16(32184), + 37: uint16(32159), + 38: uint16(32176), + 39: uint16(32216), + 40: uint16(32221), + 41: uint16(32228), + 42: uint16(32222), + 43: uint16(32251), + 44: uint16(32242), + 45: uint16(32225), + 46: uint16(32261), + 47: uint16(32266), + 48: uint16(32291), + 49: uint16(32289), + 50: uint16(32274), + 51: uint16(32305), + 52: uint16(32287), + 53: uint16(32265), + 54: uint16(32267), + 55: uint16(32290), + 56: uint16(32326), + 57: uint16(32358), + 58: uint16(32315), + 59: uint16(32309), + 60: uint16(32313), + 61: uint16(32323), + 62: uint16(32311), + 63: uint16(32306), + 64: uint16(32314), + 65: uint16(32359), + 66: uint16(32349), + 67: uint16(32342), + 68: uint16(32350), + 69: uint16(32345), + 70: uint16(32346), + 71: uint16(32377), + 72: uint16(32362), + 73: uint16(32361), + 74: uint16(32380), + 75: uint16(32379), + 76: uint16(32387), + 77: uint16(32213), + 78: uint16(32381), + 79: uint16(36782), + 80: uint16(32383), + 81: uint16(32392), + 82: uint16(32393), + 83: uint16(32396), + 84: uint16(32402), + 85: uint16(32400), + 86: uint16(32403), + 87: uint16(32404), + 88: uint16(32406), + 89: uint16(32398), + 90: uint16(32411), + 91: uint16(32412), + 92: uint16(32568), + 93: uint16(32570), + }, + 69: { + 0: uint16(32581), + 1: uint16(32588), + 2: uint16(32589), + 3: uint16(32590), + 4: uint16(32592), + 5: uint16(32593), + 6: uint16(32597), + 7: uint16(32596), + 8: uint16(32600), + 9: uint16(32607), + 10: uint16(32608), + 11: uint16(32616), + 12: uint16(32617), + 13: uint16(32615), + 14: uint16(32632), + 15: uint16(32642), + 16: uint16(32646), + 17: uint16(32643), + 18: uint16(32648), + 19: uint16(32647), + 20: uint16(32652), + 21: uint16(32660), + 22: uint16(32670), + 23: uint16(32669), + 24: uint16(32666), + 25: uint16(32675), + 26: uint16(32687), + 27: uint16(32690), + 28: uint16(32697), + 29: uint16(32686), + 30: uint16(32694), + 31: uint16(32696), + 32: uint16(35697), + 33: uint16(32709), + 34: uint16(32710), + 35: uint16(32714), + 36: uint16(32725), + 37: uint16(32724), + 38: uint16(32737), + 39: uint16(32742), + 40: uint16(32745), + 41: uint16(32755), + 42: uint16(32761), + 43: uint16(39132), + 44: uint16(32774), + 45: uint16(32772), + 46: uint16(32779), + 47: uint16(32786), + 48: uint16(32792), + 49: uint16(32793), + 50: uint16(32796), + 51: uint16(32801), + 52: uint16(32808), + 53: uint16(32831), + 54: uint16(32827), + 55: uint16(32842), + 56: uint16(32838), + 57: uint16(32850), + 58: uint16(32856), + 59: uint16(32858), + 60: uint16(32863), + 61: uint16(32866), + 62: uint16(32872), + 63: uint16(32883), + 64: uint16(32882), + 65: uint16(32880), + 66: uint16(32886), + 67: uint16(32889), + 68: uint16(32893), + 69: uint16(32895), + 70: uint16(32900), + 71: uint16(32902), + 72: uint16(32901), + 73: uint16(32923), + 74: uint16(32915), + 75: uint16(32922), + 76: uint16(32941), + 77: uint16(20880), + 78: uint16(32940), + 79: uint16(32987), + 80: uint16(32997), + 81: uint16(32985), + 82: uint16(32989), + 83: uint16(32964), + 84: uint16(32986), + 85: uint16(32982), + 86: uint16(33033), + 87: uint16(33007), + 88: uint16(33009), + 89: uint16(33051), + 90: uint16(33065), + 91: uint16(33059), + 92: uint16(33071), + 93: uint16(33099), + }, + 70: { + 0: uint16(38539), + 1: uint16(33094), + 2: uint16(33086), + 3: uint16(33107), + 4: uint16(33105), + 5: uint16(33020), + 6: uint16(33137), + 7: uint16(33134), + 8: uint16(33125), + 9: uint16(33126), + 10: uint16(33140), + 11: uint16(33155), + 12: uint16(33160), + 13: uint16(33162), + 14: uint16(33152), + 15: uint16(33154), + 16: uint16(33184), + 17: uint16(33173), + 18: uint16(33188), + 19: uint16(33187), + 20: uint16(33119), + 21: uint16(33171), + 22: uint16(33193), + 23: uint16(33200), + 24: uint16(33205), + 25: uint16(33214), + 26: uint16(33208), + 27: uint16(33213), + 28: uint16(33216), + 29: uint16(33218), + 30: uint16(33210), + 31: uint16(33225), + 32: uint16(33229), + 33: uint16(33233), + 34: uint16(33241), + 35: uint16(33240), + 36: uint16(33224), + 37: uint16(33242), + 38: uint16(33247), + 39: uint16(33248), + 40: uint16(33255), + 41: uint16(33274), + 42: uint16(33275), + 43: uint16(33278), + 44: uint16(33281), + 45: uint16(33282), + 46: uint16(33285), + 47: uint16(33287), + 48: uint16(33290), + 49: uint16(33293), + 50: uint16(33296), + 51: uint16(33302), + 52: uint16(33321), + 53: uint16(33323), + 54: uint16(33336), + 55: uint16(33331), + 56: uint16(33344), + 57: uint16(33369), + 58: uint16(33368), + 59: uint16(33373), + 60: uint16(33370), + 61: uint16(33375), + 62: uint16(33380), + 63: uint16(33378), + 64: uint16(33384), + 65: uint16(33386), + 66: uint16(33387), + 67: uint16(33326), + 68: uint16(33393), + 69: uint16(33399), + 70: uint16(33400), + 71: uint16(33406), + 72: uint16(33421), + 73: uint16(33426), + 74: uint16(33451), + 75: uint16(33439), + 76: uint16(33467), + 77: uint16(33452), + 78: uint16(33505), + 79: uint16(33507), + 80: uint16(33503), + 81: uint16(33490), + 82: uint16(33524), + 83: uint16(33523), + 84: uint16(33530), + 85: uint16(33683), + 86: uint16(33539), + 87: uint16(33531), + 88: uint16(33529), + 89: uint16(33502), + 90: uint16(33542), + 91: uint16(33500), + 92: uint16(33545), + 93: uint16(33497), + }, + 71: { + 0: uint16(33589), + 1: uint16(33588), + 2: uint16(33558), + 3: uint16(33586), + 4: uint16(33585), + 5: uint16(33600), + 6: uint16(33593), + 7: uint16(33616), + 8: uint16(33605), + 9: uint16(33583), + 10: uint16(33579), + 11: uint16(33559), + 12: uint16(33560), + 13: uint16(33669), + 14: uint16(33690), + 15: uint16(33706), + 16: uint16(33695), + 17: uint16(33698), + 18: uint16(33686), + 19: uint16(33571), + 20: uint16(33678), + 21: uint16(33671), + 22: uint16(33674), + 23: uint16(33660), + 24: uint16(33717), + 25: uint16(33651), + 26: uint16(33653), + 27: uint16(33696), + 28: uint16(33673), + 29: uint16(33704), + 30: uint16(33780), + 31: uint16(33811), + 32: uint16(33771), + 33: uint16(33742), + 34: uint16(33789), + 35: uint16(33795), + 36: uint16(33752), + 37: uint16(33803), + 38: uint16(33729), + 39: uint16(33783), + 40: uint16(33799), + 41: uint16(33760), + 42: uint16(33778), + 43: uint16(33805), + 44: uint16(33826), + 45: uint16(33824), + 46: uint16(33725), + 47: uint16(33848), + 48: uint16(34054), + 49: uint16(33787), + 50: uint16(33901), + 51: uint16(33834), + 52: uint16(33852), + 53: uint16(34138), + 54: uint16(33924), + 55: uint16(33911), + 56: uint16(33899), + 57: uint16(33965), + 58: uint16(33902), + 59: uint16(33922), + 60: uint16(33897), + 61: uint16(33862), + 62: uint16(33836), + 63: uint16(33903), + 64: uint16(33913), + 65: uint16(33845), + 66: uint16(33994), + 67: uint16(33890), + 68: uint16(33977), + 69: uint16(33983), + 70: uint16(33951), + 71: uint16(34009), + 72: uint16(33997), + 73: uint16(33979), + 74: uint16(34010), + 75: uint16(34000), + 76: uint16(33985), + 77: uint16(33990), + 78: uint16(34006), + 79: uint16(33953), + 80: uint16(34081), + 81: uint16(34047), + 82: uint16(34036), + 83: uint16(34071), + 84: uint16(34072), + 85: uint16(34092), + 86: uint16(34079), + 87: uint16(34069), + 88: uint16(34068), + 89: uint16(34044), + 90: uint16(34112), + 91: uint16(34147), + 92: uint16(34136), + 93: uint16(34120), + }, + 72: { + 0: uint16(34113), + 1: uint16(34306), + 2: uint16(34123), + 3: uint16(34133), + 4: uint16(34176), + 5: uint16(34212), + 6: uint16(34184), + 7: uint16(34193), + 8: uint16(34186), + 9: uint16(34216), + 10: uint16(34157), + 11: uint16(34196), + 12: uint16(34203), + 13: uint16(34282), + 14: uint16(34183), + 15: uint16(34204), + 16: uint16(34167), + 17: uint16(34174), + 18: uint16(34192), + 19: uint16(34249), + 20: uint16(34234), + 21: uint16(34255), + 22: uint16(34233), + 23: uint16(34256), + 24: uint16(34261), + 25: uint16(34269), + 26: uint16(34277), + 27: uint16(34268), + 28: uint16(34297), + 29: uint16(34314), + 30: uint16(34323), + 31: uint16(34315), + 32: uint16(34302), + 33: uint16(34298), + 34: uint16(34310), + 35: uint16(34338), + 36: uint16(34330), + 37: uint16(34352), + 38: uint16(34367), + 39: uint16(34381), + 40: uint16(20053), + 41: uint16(34388), + 42: uint16(34399), + 43: uint16(34407), + 44: uint16(34417), + 45: uint16(34451), + 46: uint16(34467), + 47: uint16(34473), + 48: uint16(34474), + 49: uint16(34443), + 50: uint16(34444), + 51: uint16(34486), + 52: uint16(34479), + 53: uint16(34500), + 54: uint16(34502), + 55: uint16(34480), + 56: uint16(34505), + 57: uint16(34851), + 58: uint16(34475), + 59: uint16(34516), + 60: uint16(34526), + 61: uint16(34537), + 62: uint16(34540), + 63: uint16(34527), + 64: uint16(34523), + 65: uint16(34543), + 66: uint16(34578), + 67: uint16(34566), + 68: uint16(34568), + 69: uint16(34560), + 70: uint16(34563), + 71: uint16(34555), + 72: uint16(34577), + 73: uint16(34569), + 74: uint16(34573), + 75: uint16(34553), + 76: uint16(34570), + 77: uint16(34612), + 78: uint16(34623), + 79: uint16(34615), + 80: uint16(34619), + 81: uint16(34597), + 82: uint16(34601), + 83: uint16(34586), + 84: uint16(34656), + 85: uint16(34655), + 86: uint16(34680), + 87: uint16(34636), + 88: uint16(34638), + 89: uint16(34676), + 90: uint16(34647), + 91: uint16(34664), + 92: uint16(34670), + 93: uint16(34649), + }, + 73: { + 0: uint16(34643), + 1: uint16(34659), + 2: uint16(34666), + 3: uint16(34821), + 4: uint16(34722), + 5: uint16(34719), + 6: uint16(34690), + 7: uint16(34735), + 8: uint16(34763), + 9: uint16(34749), + 10: uint16(34752), + 11: uint16(34768), + 12: uint16(38614), + 13: uint16(34731), + 14: uint16(34756), + 15: uint16(34739), + 16: uint16(34759), + 17: uint16(34758), + 18: uint16(34747), + 19: uint16(34799), + 20: uint16(34802), + 21: uint16(34784), + 22: uint16(34831), + 23: uint16(34829), + 24: uint16(34814), + 25: uint16(34806), + 26: uint16(34807), + 27: uint16(34830), + 28: uint16(34770), + 29: uint16(34833), + 30: uint16(34838), + 31: uint16(34837), + 32: uint16(34850), + 33: uint16(34849), + 34: uint16(34865), + 35: uint16(34870), + 36: uint16(34873), + 37: uint16(34855), + 38: uint16(34875), + 39: uint16(34884), + 40: uint16(34882), + 41: uint16(34898), + 42: uint16(34905), + 43: uint16(34910), + 44: uint16(34914), + 45: uint16(34923), + 46: uint16(34945), + 47: uint16(34942), + 48: uint16(34974), + 49: uint16(34933), + 50: uint16(34941), + 51: uint16(34997), + 52: uint16(34930), + 53: uint16(34946), + 54: uint16(34967), + 55: uint16(34962), + 56: uint16(34990), + 57: uint16(34969), + 58: uint16(34978), + 59: uint16(34957), + 60: uint16(34980), + 61: uint16(34992), + 62: uint16(35007), + 63: uint16(34993), + 64: uint16(35011), + 65: uint16(35012), + 66: uint16(35028), + 67: uint16(35032), + 68: uint16(35033), + 69: uint16(35037), + 70: uint16(35065), + 71: uint16(35074), + 72: uint16(35068), + 73: uint16(35060), + 74: uint16(35048), + 75: uint16(35058), + 76: uint16(35076), + 77: uint16(35084), + 78: uint16(35082), + 79: uint16(35091), + 80: uint16(35139), + 81: uint16(35102), + 82: uint16(35109), + 83: uint16(35114), + 84: uint16(35115), + 85: uint16(35137), + 86: uint16(35140), + 87: uint16(35131), + 88: uint16(35126), + 89: uint16(35128), + 90: uint16(35148), + 91: uint16(35101), + 92: uint16(35168), + 93: uint16(35166), + }, + 74: { + 0: uint16(35174), + 1: uint16(35172), + 2: uint16(35181), + 3: uint16(35178), + 4: uint16(35183), + 5: uint16(35188), + 6: uint16(35191), + 7: uint16(35198), + 8: uint16(35203), + 9: uint16(35208), + 10: uint16(35210), + 11: uint16(35219), + 12: uint16(35224), + 13: uint16(35233), + 14: uint16(35241), + 15: uint16(35238), + 16: uint16(35244), + 17: uint16(35247), + 18: uint16(35250), + 19: uint16(35258), + 20: uint16(35261), + 21: uint16(35263), + 22: uint16(35264), + 23: uint16(35290), + 24: uint16(35292), + 25: uint16(35293), + 26: uint16(35303), + 27: uint16(35316), + 28: uint16(35320), + 29: uint16(35331), + 30: uint16(35350), + 31: uint16(35344), + 32: uint16(35340), + 33: uint16(35355), + 34: uint16(35357), + 35: uint16(35365), + 36: uint16(35382), + 37: uint16(35393), + 38: uint16(35419), + 39: uint16(35410), + 40: uint16(35398), + 41: uint16(35400), + 42: uint16(35452), + 43: uint16(35437), + 44: uint16(35436), + 45: uint16(35426), + 46: uint16(35461), + 47: uint16(35458), + 48: uint16(35460), + 49: uint16(35496), + 50: uint16(35489), + 51: uint16(35473), + 52: uint16(35493), + 53: uint16(35494), + 54: uint16(35482), + 55: uint16(35491), + 56: uint16(35524), + 57: uint16(35533), + 58: uint16(35522), + 59: uint16(35546), + 60: uint16(35563), + 61: uint16(35571), + 62: uint16(35559), + 63: uint16(35556), + 64: uint16(35569), + 65: uint16(35604), + 66: uint16(35552), + 67: uint16(35554), + 68: uint16(35575), + 69: uint16(35550), + 70: uint16(35547), + 71: uint16(35596), + 72: uint16(35591), + 73: uint16(35610), + 74: uint16(35553), + 75: uint16(35606), + 76: uint16(35600), + 77: uint16(35607), + 78: uint16(35616), + 79: uint16(35635), + 80: uint16(38827), + 81: uint16(35622), + 82: uint16(35627), + 83: uint16(35646), + 84: uint16(35624), + 85: uint16(35649), + 86: uint16(35660), + 87: uint16(35663), + 88: uint16(35662), + 89: uint16(35657), + 90: uint16(35670), + 91: uint16(35675), + 92: uint16(35674), + 93: uint16(35691), + }, + 75: { + 0: uint16(35679), + 1: uint16(35692), + 2: uint16(35695), + 3: uint16(35700), + 4: uint16(35709), + 5: uint16(35712), + 6: uint16(35724), + 7: uint16(35726), + 8: uint16(35730), + 9: uint16(35731), + 10: uint16(35734), + 11: uint16(35737), + 12: uint16(35738), + 13: uint16(35898), + 14: uint16(35905), + 15: uint16(35903), + 16: uint16(35912), + 17: uint16(35916), + 18: uint16(35918), + 19: uint16(35920), + 20: uint16(35925), + 21: uint16(35938), + 22: uint16(35948), + 23: uint16(35960), + 24: uint16(35962), + 25: uint16(35970), + 26: uint16(35977), + 27: uint16(35973), + 28: uint16(35978), + 29: uint16(35981), + 30: uint16(35982), + 31: uint16(35988), + 32: uint16(35964), + 33: uint16(35992), + 34: uint16(25117), + 35: uint16(36013), + 36: uint16(36010), + 37: uint16(36029), + 38: uint16(36018), + 39: uint16(36019), + 40: uint16(36014), + 41: uint16(36022), + 42: uint16(36040), + 43: uint16(36033), + 44: uint16(36068), + 45: uint16(36067), + 46: uint16(36058), + 47: uint16(36093), + 48: uint16(36090), + 49: uint16(36091), + 50: uint16(36100), + 51: uint16(36101), + 52: uint16(36106), + 53: uint16(36103), + 54: uint16(36111), + 55: uint16(36109), + 56: uint16(36112), + 57: uint16(40782), + 58: uint16(36115), + 59: uint16(36045), + 60: uint16(36116), + 61: uint16(36118), + 62: uint16(36199), + 63: uint16(36205), + 64: uint16(36209), + 65: uint16(36211), + 66: uint16(36225), + 67: uint16(36249), + 68: uint16(36290), + 69: uint16(36286), + 70: uint16(36282), + 71: uint16(36303), + 72: uint16(36314), + 73: uint16(36310), + 74: uint16(36300), + 75: uint16(36315), + 76: uint16(36299), + 77: uint16(36330), + 78: uint16(36331), + 79: uint16(36319), + 80: uint16(36323), + 81: uint16(36348), + 82: uint16(36360), + 83: uint16(36361), + 84: uint16(36351), + 85: uint16(36381), + 86: uint16(36382), + 87: uint16(36368), + 88: uint16(36383), + 89: uint16(36418), + 90: uint16(36405), + 91: uint16(36400), + 92: uint16(36404), + 93: uint16(36426), + }, + 76: { + 0: uint16(36423), + 1: uint16(36425), + 2: uint16(36428), + 3: uint16(36432), + 4: uint16(36424), + 5: uint16(36441), + 6: uint16(36452), + 7: uint16(36448), + 8: uint16(36394), + 9: uint16(36451), + 10: uint16(36437), + 11: uint16(36470), + 12: uint16(36466), + 13: uint16(36476), + 14: uint16(36481), + 15: uint16(36487), + 16: uint16(36485), + 17: uint16(36484), + 18: uint16(36491), + 19: uint16(36490), + 20: uint16(36499), + 21: uint16(36497), + 22: uint16(36500), + 23: uint16(36505), + 24: uint16(36522), + 25: uint16(36513), + 26: uint16(36524), + 27: uint16(36528), + 28: uint16(36550), + 29: uint16(36529), + 30: uint16(36542), + 31: uint16(36549), + 32: uint16(36552), + 33: uint16(36555), + 34: uint16(36571), + 35: uint16(36579), + 36: uint16(36604), + 37: uint16(36603), + 38: uint16(36587), + 39: uint16(36606), + 40: uint16(36618), + 41: uint16(36613), + 42: uint16(36629), + 43: uint16(36626), + 44: uint16(36633), + 45: uint16(36627), + 46: uint16(36636), + 47: uint16(36639), + 48: uint16(36635), + 49: uint16(36620), + 50: uint16(36646), + 51: uint16(36659), + 52: uint16(36667), + 53: uint16(36665), + 54: uint16(36677), + 55: uint16(36674), + 56: uint16(36670), + 57: uint16(36684), + 58: uint16(36681), + 59: uint16(36678), + 60: uint16(36686), + 61: uint16(36695), + 62: uint16(36700), + 63: uint16(36706), + 64: uint16(36707), + 65: uint16(36708), + 66: uint16(36764), + 67: uint16(36767), + 68: uint16(36771), + 69: uint16(36781), + 70: uint16(36783), + 71: uint16(36791), + 72: uint16(36826), + 73: uint16(36837), + 74: uint16(36834), + 75: uint16(36842), + 76: uint16(36847), + 77: uint16(36999), + 78: uint16(36852), + 79: uint16(36869), + 80: uint16(36857), + 81: uint16(36858), + 82: uint16(36881), + 83: uint16(36885), + 84: uint16(36897), + 85: uint16(36877), + 86: uint16(36894), + 87: uint16(36886), + 88: uint16(36875), + 89: uint16(36903), + 90: uint16(36918), + 91: uint16(36917), + 92: uint16(36921), + 93: uint16(36856), + }, + 77: { + 0: uint16(36943), + 1: uint16(36944), + 2: uint16(36945), + 3: uint16(36946), + 4: uint16(36878), + 5: uint16(36937), + 6: uint16(36926), + 7: uint16(36950), + 8: uint16(36952), + 9: uint16(36958), + 10: uint16(36968), + 11: uint16(36975), + 12: uint16(36982), + 13: uint16(38568), + 14: uint16(36978), + 15: uint16(36994), + 16: uint16(36989), + 17: uint16(36993), + 18: uint16(36992), + 19: uint16(37002), + 20: uint16(37001), + 21: uint16(37007), + 22: uint16(37032), + 23: uint16(37039), + 24: uint16(37041), + 25: uint16(37045), + 26: uint16(37090), + 27: uint16(37092), + 28: uint16(25160), + 29: uint16(37083), + 30: uint16(37122), + 31: uint16(37138), + 32: uint16(37145), + 33: uint16(37170), + 34: uint16(37168), + 35: uint16(37194), + 36: uint16(37206), + 37: uint16(37208), + 38: uint16(37219), + 39: uint16(37221), + 40: uint16(37225), + 41: uint16(37235), + 42: uint16(37234), + 43: uint16(37259), + 44: uint16(37257), + 45: uint16(37250), + 46: uint16(37282), + 47: uint16(37291), + 48: uint16(37295), + 49: uint16(37290), + 50: uint16(37301), + 51: uint16(37300), + 52: uint16(37306), + 53: uint16(37312), + 54: uint16(37313), + 55: uint16(37321), + 56: uint16(37323), + 57: uint16(37328), + 58: uint16(37334), + 59: uint16(37343), + 60: uint16(37345), + 61: uint16(37339), + 62: uint16(37372), + 63: uint16(37365), + 64: uint16(37366), + 65: uint16(37406), + 66: uint16(37375), + 67: uint16(37396), + 68: uint16(37420), + 69: uint16(37397), + 70: uint16(37393), + 71: uint16(37470), + 72: uint16(37463), + 73: uint16(37445), + 74: uint16(37449), + 75: uint16(37476), + 76: uint16(37448), + 77: uint16(37525), + 78: uint16(37439), + 79: uint16(37451), + 80: uint16(37456), + 81: uint16(37532), + 82: uint16(37526), + 83: uint16(37523), + 84: uint16(37531), + 85: uint16(37466), + 86: uint16(37583), + 87: uint16(37561), + 88: uint16(37559), + 89: uint16(37609), + 90: uint16(37647), + 91: uint16(37626), + 92: uint16(37700), + 93: uint16(37678), + }, + 78: { + 0: uint16(37657), + 1: uint16(37666), + 2: uint16(37658), + 3: uint16(37667), + 4: uint16(37690), + 5: uint16(37685), + 6: uint16(37691), + 7: uint16(37724), + 8: uint16(37728), + 9: uint16(37756), + 10: uint16(37742), + 11: uint16(37718), + 12: uint16(37808), + 13: uint16(37804), + 14: uint16(37805), + 15: uint16(37780), + 16: uint16(37817), + 17: uint16(37846), + 18: uint16(37847), + 19: uint16(37864), + 20: uint16(37861), + 21: uint16(37848), + 22: uint16(37827), + 23: uint16(37853), + 24: uint16(37840), + 25: uint16(37832), + 26: uint16(37860), + 27: uint16(37914), + 28: uint16(37908), + 29: uint16(37907), + 30: uint16(37891), + 31: uint16(37895), + 32: uint16(37904), + 33: uint16(37942), + 34: uint16(37931), + 35: uint16(37941), + 36: uint16(37921), + 37: uint16(37946), + 38: uint16(37953), + 39: uint16(37970), + 40: uint16(37956), + 41: uint16(37979), + 42: uint16(37984), + 43: uint16(37986), + 44: uint16(37982), + 45: uint16(37994), + 46: uint16(37417), + 47: uint16(38000), + 48: uint16(38005), + 49: uint16(38007), + 50: uint16(38013), + 51: uint16(37978), + 52: uint16(38012), + 53: uint16(38014), + 54: uint16(38017), + 55: uint16(38015), + 56: uint16(38274), + 57: uint16(38279), + 58: uint16(38282), + 59: uint16(38292), + 60: uint16(38294), + 61: uint16(38296), + 62: uint16(38297), + 63: uint16(38304), + 64: uint16(38312), + 65: uint16(38311), + 66: uint16(38317), + 67: uint16(38332), + 68: uint16(38331), + 69: uint16(38329), + 70: uint16(38334), + 71: uint16(38346), + 72: uint16(28662), + 73: uint16(38339), + 74: uint16(38349), + 75: uint16(38348), + 76: uint16(38357), + 77: uint16(38356), + 78: uint16(38358), + 79: uint16(38364), + 80: uint16(38369), + 81: uint16(38373), + 82: uint16(38370), + 83: uint16(38433), + 84: uint16(38440), + 85: uint16(38446), + 86: uint16(38447), + 87: uint16(38466), + 88: uint16(38476), + 89: uint16(38479), + 90: uint16(38475), + 91: uint16(38519), + 92: uint16(38492), + 93: uint16(38494), + }, + 79: { + 0: uint16(38493), + 1: uint16(38495), + 2: uint16(38502), + 3: uint16(38514), + 4: uint16(38508), + 5: uint16(38541), + 6: uint16(38552), + 7: uint16(38549), + 8: uint16(38551), + 9: uint16(38570), + 10: uint16(38567), + 11: uint16(38577), + 12: uint16(38578), + 13: uint16(38576), + 14: uint16(38580), + 15: uint16(38582), + 16: uint16(38584), + 17: uint16(38585), + 18: uint16(38606), + 19: uint16(38603), + 20: uint16(38601), + 21: uint16(38605), + 22: uint16(35149), + 23: uint16(38620), + 24: uint16(38669), + 25: uint16(38613), + 26: uint16(38649), + 27: uint16(38660), + 28: uint16(38662), + 29: uint16(38664), + 30: uint16(38675), + 31: uint16(38670), + 32: uint16(38673), + 33: uint16(38671), + 34: uint16(38678), + 35: uint16(38681), + 36: uint16(38692), + 37: uint16(38698), + 38: uint16(38704), + 39: uint16(38713), + 40: uint16(38717), + 41: uint16(38718), + 42: uint16(38724), + 43: uint16(38726), + 44: uint16(38728), + 45: uint16(38722), + 46: uint16(38729), + 47: uint16(38748), + 48: uint16(38752), + 49: uint16(38756), + 50: uint16(38758), + 51: uint16(38760), + 52: uint16(21202), + 53: uint16(38763), + 54: uint16(38769), + 55: uint16(38777), + 56: uint16(38789), + 57: uint16(38780), + 58: uint16(38785), + 59: uint16(38778), + 60: uint16(38790), + 61: uint16(38795), + 62: uint16(38799), + 63: uint16(38800), + 64: uint16(38812), + 65: uint16(38824), + 66: uint16(38822), + 67: uint16(38819), + 68: uint16(38835), + 69: uint16(38836), + 70: uint16(38851), + 71: uint16(38854), + 72: uint16(38856), + 73: uint16(38859), + 74: uint16(38876), + 75: uint16(38893), + 76: uint16(40783), + 77: uint16(38898), + 78: uint16(31455), + 79: uint16(38902), + 80: uint16(38901), + 81: uint16(38927), + 82: uint16(38924), + 83: uint16(38968), + 84: uint16(38948), + 85: uint16(38945), + 86: uint16(38967), + 87: uint16(38973), + 88: uint16(38982), + 89: uint16(38991), + 90: uint16(38987), + 91: uint16(39019), + 92: uint16(39023), + 93: uint16(39024), + }, + 80: { + 0: uint16(39025), + 1: uint16(39028), + 2: uint16(39027), + 3: uint16(39082), + 4: uint16(39087), + 5: uint16(39089), + 6: uint16(39094), + 7: uint16(39108), + 8: uint16(39107), + 9: uint16(39110), + 10: uint16(39145), + 11: uint16(39147), + 12: uint16(39171), + 13: uint16(39177), + 14: uint16(39186), + 15: uint16(39188), + 16: uint16(39192), + 17: uint16(39201), + 18: uint16(39197), + 19: uint16(39198), + 20: uint16(39204), + 21: uint16(39200), + 22: uint16(39212), + 23: uint16(39214), + 24: uint16(39229), + 25: uint16(39230), + 26: uint16(39234), + 27: uint16(39241), + 28: uint16(39237), + 29: uint16(39248), + 30: uint16(39243), + 31: uint16(39249), + 32: uint16(39250), + 33: uint16(39244), + 34: uint16(39253), + 35: uint16(39319), + 36: uint16(39320), + 37: uint16(39333), + 38: uint16(39341), + 39: uint16(39342), + 40: uint16(39356), + 41: uint16(39391), + 42: uint16(39387), + 43: uint16(39389), + 44: uint16(39384), + 45: uint16(39377), + 46: uint16(39405), + 47: uint16(39406), + 48: uint16(39409), + 49: uint16(39410), + 50: uint16(39419), + 51: uint16(39416), + 52: uint16(39425), + 53: uint16(39439), + 54: uint16(39429), + 55: uint16(39394), + 56: uint16(39449), + 57: uint16(39467), + 58: uint16(39479), + 59: uint16(39493), + 60: uint16(39490), + 61: uint16(39488), + 62: uint16(39491), + 63: uint16(39486), + 64: uint16(39509), + 65: uint16(39501), + 66: uint16(39515), + 67: uint16(39511), + 68: uint16(39519), + 69: uint16(39522), + 70: uint16(39525), + 71: uint16(39524), + 72: uint16(39529), + 73: uint16(39531), + 74: uint16(39530), + 75: uint16(39597), + 76: uint16(39600), + 77: uint16(39612), + 78: uint16(39616), + 79: uint16(39631), + 80: uint16(39633), + 81: uint16(39635), + 82: uint16(39636), + 83: uint16(39646), + 84: uint16(39647), + 85: uint16(39650), + 86: uint16(39651), + 87: uint16(39654), + 88: uint16(39663), + 89: uint16(39659), + 90: uint16(39662), + 91: uint16(39668), + 92: uint16(39665), + 93: uint16(39671), + }, + 81: { + 0: uint16(39675), + 1: uint16(39686), + 2: uint16(39704), + 3: uint16(39706), + 4: uint16(39711), + 5: uint16(39714), + 6: uint16(39715), + 7: uint16(39717), + 8: uint16(39719), + 9: uint16(39720), + 10: uint16(39721), + 11: uint16(39722), + 12: uint16(39726), + 13: uint16(39727), + 14: uint16(39730), + 15: uint16(39748), + 16: uint16(39747), + 17: uint16(39759), + 18: uint16(39757), + 19: uint16(39758), + 20: uint16(39761), + 21: uint16(39768), + 22: uint16(39796), + 23: uint16(39827), + 24: uint16(39811), + 25: uint16(39825), + 26: uint16(39830), + 27: uint16(39831), + 28: uint16(39839), + 29: uint16(39840), + 30: uint16(39848), + 31: uint16(39860), + 32: uint16(39872), + 33: uint16(39882), + 34: uint16(39865), + 35: uint16(39878), + 36: uint16(39887), + 37: uint16(39889), + 38: uint16(39890), + 39: uint16(39907), + 40: uint16(39906), + 41: uint16(39908), + 42: uint16(39892), + 43: uint16(39905), + 44: uint16(39994), + 45: uint16(39922), + 46: uint16(39921), + 47: uint16(39920), + 48: uint16(39957), + 49: uint16(39956), + 50: uint16(39945), + 51: uint16(39955), + 52: uint16(39948), + 53: uint16(39942), + 54: uint16(39944), + 55: uint16(39954), + 56: uint16(39946), + 57: uint16(39940), + 58: uint16(39982), + 59: uint16(39963), + 60: uint16(39973), + 61: uint16(39972), + 62: uint16(39969), + 63: uint16(39984), + 64: uint16(40007), + 65: uint16(39986), + 66: uint16(40006), + 67: uint16(39998), + 68: uint16(40026), + 69: uint16(40032), + 70: uint16(40039), + 71: uint16(40054), + 72: uint16(40056), + 73: uint16(40167), + 74: uint16(40172), + 75: uint16(40176), + 76: uint16(40201), + 77: uint16(40200), + 78: uint16(40171), + 79: uint16(40195), + 80: uint16(40198), + 81: uint16(40234), + 82: uint16(40230), + 83: uint16(40367), + 84: uint16(40227), + 85: uint16(40223), + 86: uint16(40260), + 87: uint16(40213), + 88: uint16(40210), + 89: uint16(40257), + 90: uint16(40255), + 91: uint16(40254), + 92: uint16(40262), + 93: uint16(40264), + }, + 82: { + 0: uint16(40285), + 1: uint16(40286), + 2: uint16(40292), + 3: uint16(40273), + 4: uint16(40272), + 5: uint16(40281), + 6: uint16(40306), + 7: uint16(40329), + 8: uint16(40327), + 9: uint16(40363), + 10: uint16(40303), + 11: uint16(40314), + 12: uint16(40346), + 13: uint16(40356), + 14: uint16(40361), + 15: uint16(40370), + 16: uint16(40388), + 17: uint16(40385), + 18: uint16(40379), + 19: uint16(40376), + 20: uint16(40378), + 21: uint16(40390), + 22: uint16(40399), + 23: uint16(40386), + 24: uint16(40409), + 25: uint16(40403), + 26: uint16(40440), + 27: uint16(40422), + 28: uint16(40429), + 29: uint16(40431), + 30: uint16(40445), + 31: uint16(40474), + 32: uint16(40475), + 33: uint16(40478), + 34: uint16(40565), + 35: uint16(40569), + 36: uint16(40573), + 37: uint16(40577), + 38: uint16(40584), + 39: uint16(40587), + 40: uint16(40588), + 41: uint16(40594), + 42: uint16(40597), + 43: uint16(40593), + 44: uint16(40605), + 45: uint16(40613), + 46: uint16(40617), + 47: uint16(40632), + 48: uint16(40618), + 49: uint16(40621), + 50: uint16(38753), + 51: uint16(40652), + 52: uint16(40654), + 53: uint16(40655), + 54: uint16(40656), + 55: uint16(40660), + 56: uint16(40668), + 57: uint16(40670), + 58: uint16(40669), + 59: uint16(40672), + 60: uint16(40677), + 61: uint16(40680), + 62: uint16(40687), + 63: uint16(40692), + 64: uint16(40694), + 65: uint16(40695), + 66: uint16(40697), + 67: uint16(40699), + 68: uint16(40700), + 69: uint16(40701), + 70: uint16(40711), + 71: uint16(40712), + 72: uint16(30391), + 73: uint16(40725), + 74: uint16(40737), + 75: uint16(40748), + 76: uint16(40766), + 77: uint16(40778), + 78: uint16(40786), + 79: uint16(40788), + 80: uint16(40803), + 81: uint16(40799), + 82: uint16(40800), + 83: uint16(40801), + 84: uint16(40806), + 85: uint16(40807), + 86: uint16(40812), + 87: uint16(40810), + 88: uint16(40823), + 89: uint16(40818), + 90: uint16(40822), + 91: uint16(40853), + 92: uint16(40860), + 93: uint16(40864), + }, + 83: { + 0: uint16(22575), + 1: uint16(27079), + 2: uint16(36953), + 3: uint16(29796), + 4: uint16(20956), + 5: uint16(29081), + }, +} + +var _gb18030 = [126][190]uint16{ + 0: { + 0: uint16(19970), + 1: uint16(19972), + 2: uint16(19973), + 3: uint16(19974), + 4: uint16(19983), + 5: uint16(19986), + 6: uint16(19991), + 7: uint16(19999), + 8: uint16(20000), + 9: uint16(20001), + 10: uint16(20003), + 11: uint16(20006), + 12: uint16(20009), + 13: uint16(20014), + 14: uint16(20015), + 15: uint16(20017), + 16: uint16(20019), + 17: uint16(20021), + 18: uint16(20023), + 19: uint16(20028), + 20: uint16(20032), + 21: uint16(20033), + 22: uint16(20034), + 23: uint16(20036), + 24: uint16(20038), + 25: uint16(20042), + 26: uint16(20049), + 27: uint16(20053), + 28: uint16(20055), + 29: uint16(20058), + 30: uint16(20059), + 31: uint16(20066), + 32: uint16(20067), + 33: uint16(20068), + 34: uint16(20069), + 35: uint16(20071), + 36: uint16(20072), + 37: uint16(20074), + 38: uint16(20075), + 39: uint16(20076), + 40: uint16(20077), + 41: uint16(20078), + 42: uint16(20079), + 43: uint16(20082), + 44: uint16(20084), + 45: uint16(20085), + 46: uint16(20086), + 47: uint16(20087), + 48: uint16(20088), + 49: uint16(20089), + 50: uint16(20090), + 51: uint16(20091), + 52: uint16(20092), + 53: uint16(20093), + 54: uint16(20095), + 55: uint16(20096), + 56: uint16(20097), + 57: uint16(20098), + 58: uint16(20099), + 59: uint16(20100), + 60: uint16(20101), + 61: uint16(20103), + 62: uint16(20106), + 63: uint16(20112), + 64: uint16(20118), + 65: uint16(20119), + 66: uint16(20121), + 67: uint16(20124), + 68: uint16(20125), + 69: uint16(20126), + 70: uint16(20131), + 71: uint16(20138), + 72: uint16(20143), + 73: uint16(20144), + 74: uint16(20145), + 75: uint16(20148), + 76: uint16(20150), + 77: uint16(20151), + 78: uint16(20152), + 79: uint16(20153), + 80: uint16(20156), + 81: uint16(20157), + 82: uint16(20158), + 83: uint16(20168), + 84: uint16(20172), + 85: uint16(20175), + 86: uint16(20176), + 87: uint16(20178), + 88: uint16(20186), + 89: uint16(20187), + 90: uint16(20188), + 91: uint16(20192), + 92: uint16(20194), + 93: uint16(20198), + 94: uint16(20199), + 95: uint16(20201), + 96: uint16(20205), + 97: uint16(20206), + 98: uint16(20207), + 99: uint16(20209), + 100: uint16(20212), + 101: uint16(20216), + 102: uint16(20217), + 103: uint16(20218), + 104: uint16(20220), + 105: uint16(20222), + 106: uint16(20224), + 107: uint16(20226), + 108: uint16(20227), + 109: uint16(20228), + 110: uint16(20229), + 111: uint16(20230), + 112: uint16(20231), + 113: uint16(20232), + 114: uint16(20235), + 115: uint16(20236), + 116: uint16(20242), + 117: uint16(20243), + 118: uint16(20244), + 119: uint16(20245), + 120: uint16(20246), + 121: uint16(20252), + 122: uint16(20253), + 123: uint16(20257), + 124: uint16(20259), + 125: uint16(20264), + 126: uint16(20265), + 127: uint16(20268), + 128: uint16(20269), + 129: uint16(20270), + 130: uint16(20273), + 131: uint16(20275), + 132: uint16(20277), + 133: uint16(20279), + 134: uint16(20281), + 135: uint16(20283), + 136: uint16(20286), + 137: uint16(20287), + 138: uint16(20288), + 139: uint16(20289), + 140: uint16(20290), + 141: uint16(20292), + 142: uint16(20293), + 143: uint16(20295), + 144: uint16(20296), + 145: uint16(20297), + 146: uint16(20298), + 147: uint16(20299), + 148: uint16(20300), + 149: uint16(20306), + 150: uint16(20308), + 151: uint16(20310), + 152: uint16(20321), + 153: uint16(20322), + 154: uint16(20326), + 155: uint16(20328), + 156: uint16(20330), + 157: uint16(20331), + 158: uint16(20333), + 159: uint16(20334), + 160: uint16(20337), + 161: uint16(20338), + 162: uint16(20341), + 163: uint16(20343), + 164: uint16(20344), + 165: uint16(20345), + 166: uint16(20346), + 167: uint16(20349), + 168: uint16(20352), + 169: uint16(20353), + 170: uint16(20354), + 171: uint16(20357), + 172: uint16(20358), + 173: uint16(20359), + 174: uint16(20362), + 175: uint16(20364), + 176: uint16(20366), + 177: uint16(20368), + 178: uint16(20370), + 179: uint16(20371), + 180: uint16(20373), + 181: uint16(20374), + 182: uint16(20376), + 183: uint16(20377), + 184: uint16(20378), + 185: uint16(20380), + 186: uint16(20382), + 187: uint16(20383), + 188: uint16(20385), + 189: uint16(20386), + }, + 1: { + 0: uint16(20388), + 1: uint16(20395), + 2: uint16(20397), + 3: uint16(20400), + 4: uint16(20401), + 5: uint16(20402), + 6: uint16(20403), + 7: uint16(20404), + 8: uint16(20406), + 9: uint16(20407), + 10: uint16(20408), + 11: uint16(20409), + 12: uint16(20410), + 13: uint16(20411), + 14: uint16(20412), + 15: uint16(20413), + 16: uint16(20414), + 17: uint16(20416), + 18: uint16(20417), + 19: uint16(20418), + 20: uint16(20422), + 21: uint16(20423), + 22: uint16(20424), + 23: uint16(20425), + 24: uint16(20427), + 25: uint16(20428), + 26: uint16(20429), + 27: uint16(20434), + 28: uint16(20435), + 29: uint16(20436), + 30: uint16(20437), + 31: uint16(20438), + 32: uint16(20441), + 33: uint16(20443), + 34: uint16(20448), + 35: uint16(20450), + 36: uint16(20452), + 37: uint16(20453), + 38: uint16(20455), + 39: uint16(20459), + 40: uint16(20460), + 41: uint16(20464), + 42: uint16(20466), + 43: uint16(20468), + 44: uint16(20469), + 45: uint16(20470), + 46: uint16(20471), + 47: uint16(20473), + 48: uint16(20475), + 49: uint16(20476), + 50: uint16(20477), + 51: uint16(20479), + 52: uint16(20480), + 53: uint16(20481), + 54: uint16(20482), + 55: uint16(20483), + 56: uint16(20484), + 57: uint16(20485), + 58: uint16(20486), + 59: uint16(20487), + 60: uint16(20488), + 61: uint16(20489), + 62: uint16(20490), + 63: uint16(20491), + 64: uint16(20494), + 65: uint16(20496), + 66: uint16(20497), + 67: uint16(20499), + 68: uint16(20501), + 69: uint16(20502), + 70: uint16(20503), + 71: uint16(20507), + 72: uint16(20509), + 73: uint16(20510), + 74: uint16(20512), + 75: uint16(20514), + 76: uint16(20515), + 77: uint16(20516), + 78: uint16(20519), + 79: uint16(20523), + 80: uint16(20527), + 81: uint16(20528), + 82: uint16(20529), + 83: uint16(20530), + 84: uint16(20531), + 85: uint16(20532), + 86: uint16(20533), + 87: uint16(20534), + 88: uint16(20535), + 89: uint16(20536), + 90: uint16(20537), + 91: uint16(20539), + 92: uint16(20541), + 93: uint16(20543), + 94: uint16(20544), + 95: uint16(20545), + 96: uint16(20546), + 97: uint16(20548), + 98: uint16(20549), + 99: uint16(20550), + 100: uint16(20553), + 101: uint16(20554), + 102: uint16(20555), + 103: uint16(20557), + 104: uint16(20560), + 105: uint16(20561), + 106: uint16(20562), + 107: uint16(20563), + 108: uint16(20564), + 109: uint16(20566), + 110: uint16(20567), + 111: uint16(20568), + 112: uint16(20569), + 113: uint16(20571), + 114: uint16(20573), + 115: uint16(20574), + 116: uint16(20575), + 117: uint16(20576), + 118: uint16(20577), + 119: uint16(20578), + 120: uint16(20579), + 121: uint16(20580), + 122: uint16(20582), + 123: uint16(20583), + 124: uint16(20584), + 125: uint16(20585), + 126: uint16(20586), + 127: uint16(20587), + 128: uint16(20589), + 129: uint16(20590), + 130: uint16(20591), + 131: uint16(20592), + 132: uint16(20593), + 133: uint16(20594), + 134: uint16(20595), + 135: uint16(20596), + 136: uint16(20597), + 137: uint16(20600), + 138: uint16(20601), + 139: uint16(20602), + 140: uint16(20604), + 141: uint16(20605), + 142: uint16(20609), + 143: uint16(20610), + 144: uint16(20611), + 145: uint16(20612), + 146: uint16(20614), + 147: uint16(20615), + 148: uint16(20617), + 149: uint16(20618), + 150: uint16(20619), + 151: uint16(20620), + 152: uint16(20622), + 153: uint16(20623), + 154: uint16(20624), + 155: uint16(20625), + 156: uint16(20626), + 157: uint16(20627), + 158: uint16(20628), + 159: uint16(20629), + 160: uint16(20630), + 161: uint16(20631), + 162: uint16(20632), + 163: uint16(20633), + 164: uint16(20634), + 165: uint16(20635), + 166: uint16(20636), + 167: uint16(20637), + 168: uint16(20638), + 169: uint16(20639), + 170: uint16(20640), + 171: uint16(20641), + 172: uint16(20642), + 173: uint16(20644), + 174: uint16(20646), + 175: uint16(20650), + 176: uint16(20651), + 177: uint16(20653), + 178: uint16(20654), + 179: uint16(20655), + 180: uint16(20656), + 181: uint16(20657), + 182: uint16(20659), + 183: uint16(20660), + 184: uint16(20661), + 185: uint16(20662), + 186: uint16(20663), + 187: uint16(20664), + 188: uint16(20665), + 189: uint16(20668), + }, + 2: { + 0: uint16(20669), + 1: uint16(20670), + 2: uint16(20671), + 3: uint16(20672), + 4: uint16(20673), + 5: uint16(20674), + 6: uint16(20675), + 7: uint16(20676), + 8: uint16(20677), + 9: uint16(20678), + 10: uint16(20679), + 11: uint16(20680), + 12: uint16(20681), + 13: uint16(20682), + 14: uint16(20683), + 15: uint16(20684), + 16: uint16(20685), + 17: uint16(20686), + 18: uint16(20688), + 19: uint16(20689), + 20: uint16(20690), + 21: uint16(20691), + 22: uint16(20692), + 23: uint16(20693), + 24: uint16(20695), + 25: uint16(20696), + 26: uint16(20697), + 27: uint16(20699), + 28: uint16(20700), + 29: uint16(20701), + 30: uint16(20702), + 31: uint16(20703), + 32: uint16(20704), + 33: uint16(20705), + 34: uint16(20706), + 35: uint16(20707), + 36: uint16(20708), + 37: uint16(20709), + 38: uint16(20712), + 39: uint16(20713), + 40: uint16(20714), + 41: uint16(20715), + 42: uint16(20719), + 43: uint16(20720), + 44: uint16(20721), + 45: uint16(20722), + 46: uint16(20724), + 47: uint16(20726), + 48: uint16(20727), + 49: uint16(20728), + 50: uint16(20729), + 51: uint16(20730), + 52: uint16(20732), + 53: uint16(20733), + 54: uint16(20734), + 55: uint16(20735), + 56: uint16(20736), + 57: uint16(20737), + 58: uint16(20738), + 59: uint16(20739), + 60: uint16(20740), + 61: uint16(20741), + 62: uint16(20744), + 63: uint16(20745), + 64: uint16(20746), + 65: uint16(20748), + 66: uint16(20749), + 67: uint16(20750), + 68: uint16(20751), + 69: uint16(20752), + 70: uint16(20753), + 71: uint16(20755), + 72: uint16(20756), + 73: uint16(20757), + 74: uint16(20758), + 75: uint16(20759), + 76: uint16(20760), + 77: uint16(20761), + 78: uint16(20762), + 79: uint16(20763), + 80: uint16(20764), + 81: uint16(20765), + 82: uint16(20766), + 83: uint16(20767), + 84: uint16(20768), + 85: uint16(20770), + 86: uint16(20771), + 87: uint16(20772), + 88: uint16(20773), + 89: uint16(20774), + 90: uint16(20775), + 91: uint16(20776), + 92: uint16(20777), + 93: uint16(20778), + 94: uint16(20779), + 95: uint16(20780), + 96: uint16(20781), + 97: uint16(20782), + 98: uint16(20783), + 99: uint16(20784), + 100: uint16(20785), + 101: uint16(20786), + 102: uint16(20787), + 103: uint16(20788), + 104: uint16(20789), + 105: uint16(20790), + 106: uint16(20791), + 107: uint16(20792), + 108: uint16(20793), + 109: uint16(20794), + 110: uint16(20795), + 111: uint16(20796), + 112: uint16(20797), + 113: uint16(20798), + 114: uint16(20802), + 115: uint16(20807), + 116: uint16(20810), + 117: uint16(20812), + 118: uint16(20814), + 119: uint16(20815), + 120: uint16(20816), + 121: uint16(20818), + 122: uint16(20819), + 123: uint16(20823), + 124: uint16(20824), + 125: uint16(20825), + 126: uint16(20827), + 127: uint16(20829), + 128: uint16(20830), + 129: uint16(20831), + 130: uint16(20832), + 131: uint16(20833), + 132: uint16(20835), + 133: uint16(20836), + 134: uint16(20838), + 135: uint16(20839), + 136: uint16(20841), + 137: uint16(20842), + 138: uint16(20847), + 139: uint16(20850), + 140: uint16(20858), + 141: uint16(20862), + 142: uint16(20863), + 143: uint16(20867), + 144: uint16(20868), + 145: uint16(20870), + 146: uint16(20871), + 147: uint16(20874), + 148: uint16(20875), + 149: uint16(20878), + 150: uint16(20879), + 151: uint16(20880), + 152: uint16(20881), + 153: uint16(20883), + 154: uint16(20884), + 155: uint16(20888), + 156: uint16(20890), + 157: uint16(20893), + 158: uint16(20894), + 159: uint16(20895), + 160: uint16(20897), + 161: uint16(20899), + 162: uint16(20902), + 163: uint16(20903), + 164: uint16(20904), + 165: uint16(20905), + 166: uint16(20906), + 167: uint16(20909), + 168: uint16(20910), + 169: uint16(20916), + 170: uint16(20920), + 171: uint16(20921), + 172: uint16(20922), + 173: uint16(20926), + 174: uint16(20927), + 175: uint16(20929), + 176: uint16(20930), + 177: uint16(20931), + 178: uint16(20933), + 179: uint16(20936), + 180: uint16(20938), + 181: uint16(20941), + 182: uint16(20942), + 183: uint16(20944), + 184: uint16(20946), + 185: uint16(20947), + 186: uint16(20948), + 187: uint16(20949), + 188: uint16(20950), + 189: uint16(20951), + }, + 3: { + 0: uint16(20952), + 1: uint16(20953), + 2: uint16(20954), + 3: uint16(20956), + 4: uint16(20958), + 5: uint16(20959), + 6: uint16(20962), + 7: uint16(20963), + 8: uint16(20965), + 9: uint16(20966), + 10: uint16(20967), + 11: uint16(20968), + 12: uint16(20969), + 13: uint16(20970), + 14: uint16(20972), + 15: uint16(20974), + 16: uint16(20977), + 17: uint16(20978), + 18: uint16(20980), + 19: uint16(20983), + 20: uint16(20990), + 21: uint16(20996), + 22: uint16(20997), + 23: uint16(21001), + 24: uint16(21003), + 25: uint16(21004), + 26: uint16(21007), + 27: uint16(21008), + 28: uint16(21011), + 29: uint16(21012), + 30: uint16(21013), + 31: uint16(21020), + 32: uint16(21022), + 33: uint16(21023), + 34: uint16(21025), + 35: uint16(21026), + 36: uint16(21027), + 37: uint16(21029), + 38: uint16(21030), + 39: uint16(21031), + 40: uint16(21034), + 41: uint16(21036), + 42: uint16(21039), + 43: uint16(21041), + 44: uint16(21042), + 45: uint16(21044), + 46: uint16(21045), + 47: uint16(21052), + 48: uint16(21054), + 49: uint16(21060), + 50: uint16(21061), + 51: uint16(21062), + 52: uint16(21063), + 53: uint16(21064), + 54: uint16(21065), + 55: uint16(21067), + 56: uint16(21070), + 57: uint16(21071), + 58: uint16(21074), + 59: uint16(21075), + 60: uint16(21077), + 61: uint16(21079), + 62: uint16(21080), + 63: uint16(21081), + 64: uint16(21082), + 65: uint16(21083), + 66: uint16(21085), + 67: uint16(21087), + 68: uint16(21088), + 69: uint16(21090), + 70: uint16(21091), + 71: uint16(21092), + 72: uint16(21094), + 73: uint16(21096), + 74: uint16(21099), + 75: uint16(21100), + 76: uint16(21101), + 77: uint16(21102), + 78: uint16(21104), + 79: uint16(21105), + 80: uint16(21107), + 81: uint16(21108), + 82: uint16(21109), + 83: uint16(21110), + 84: uint16(21111), + 85: uint16(21112), + 86: uint16(21113), + 87: uint16(21114), + 88: uint16(21115), + 89: uint16(21116), + 90: uint16(21118), + 91: uint16(21120), + 92: uint16(21123), + 93: uint16(21124), + 94: uint16(21125), + 95: uint16(21126), + 96: uint16(21127), + 97: uint16(21129), + 98: uint16(21130), + 99: uint16(21131), + 100: uint16(21132), + 101: uint16(21133), + 102: uint16(21134), + 103: uint16(21135), + 104: uint16(21137), + 105: uint16(21138), + 106: uint16(21140), + 107: uint16(21141), + 108: uint16(21142), + 109: uint16(21143), + 110: uint16(21144), + 111: uint16(21145), + 112: uint16(21146), + 113: uint16(21148), + 114: uint16(21156), + 115: uint16(21157), + 116: uint16(21158), + 117: uint16(21159), + 118: uint16(21166), + 119: uint16(21167), + 120: uint16(21168), + 121: uint16(21172), + 122: uint16(21173), + 123: uint16(21174), + 124: uint16(21175), + 125: uint16(21176), + 126: uint16(21177), + 127: uint16(21178), + 128: uint16(21179), + 129: uint16(21180), + 130: uint16(21181), + 131: uint16(21184), + 132: uint16(21185), + 133: uint16(21186), + 134: uint16(21188), + 135: uint16(21189), + 136: uint16(21190), + 137: uint16(21192), + 138: uint16(21194), + 139: uint16(21196), + 140: uint16(21197), + 141: uint16(21198), + 142: uint16(21199), + 143: uint16(21201), + 144: uint16(21203), + 145: uint16(21204), + 146: uint16(21205), + 147: uint16(21207), + 148: uint16(21209), + 149: uint16(21210), + 150: uint16(21211), + 151: uint16(21212), + 152: uint16(21213), + 153: uint16(21214), + 154: uint16(21216), + 155: uint16(21217), + 156: uint16(21218), + 157: uint16(21219), + 158: uint16(21221), + 159: uint16(21222), + 160: uint16(21223), + 161: uint16(21224), + 162: uint16(21225), + 163: uint16(21226), + 164: uint16(21227), + 165: uint16(21228), + 166: uint16(21229), + 167: uint16(21230), + 168: uint16(21231), + 169: uint16(21233), + 170: uint16(21234), + 171: uint16(21235), + 172: uint16(21236), + 173: uint16(21237), + 174: uint16(21238), + 175: uint16(21239), + 176: uint16(21240), + 177: uint16(21243), + 178: uint16(21244), + 179: uint16(21245), + 180: uint16(21249), + 181: uint16(21250), + 182: uint16(21251), + 183: uint16(21252), + 184: uint16(21255), + 185: uint16(21257), + 186: uint16(21258), + 187: uint16(21259), + 188: uint16(21260), + 189: uint16(21262), + }, + 4: { + 0: uint16(21265), + 1: uint16(21266), + 2: uint16(21267), + 3: uint16(21268), + 4: uint16(21272), + 5: uint16(21275), + 6: uint16(21276), + 7: uint16(21278), + 8: uint16(21279), + 9: uint16(21282), + 10: uint16(21284), + 11: uint16(21285), + 12: uint16(21287), + 13: uint16(21288), + 14: uint16(21289), + 15: uint16(21291), + 16: uint16(21292), + 17: uint16(21293), + 18: uint16(21295), + 19: uint16(21296), + 20: uint16(21297), + 21: uint16(21298), + 22: uint16(21299), + 23: uint16(21300), + 24: uint16(21301), + 25: uint16(21302), + 26: uint16(21303), + 27: uint16(21304), + 28: uint16(21308), + 29: uint16(21309), + 30: uint16(21312), + 31: uint16(21314), + 32: uint16(21316), + 33: uint16(21318), + 34: uint16(21323), + 35: uint16(21324), + 36: uint16(21325), + 37: uint16(21328), + 38: uint16(21332), + 39: uint16(21336), + 40: uint16(21337), + 41: uint16(21339), + 42: uint16(21341), + 43: uint16(21349), + 44: uint16(21352), + 45: uint16(21354), + 46: uint16(21356), + 47: uint16(21357), + 48: uint16(21362), + 49: uint16(21366), + 50: uint16(21369), + 51: uint16(21371), + 52: uint16(21372), + 53: uint16(21373), + 54: uint16(21374), + 55: uint16(21376), + 56: uint16(21377), + 57: uint16(21379), + 58: uint16(21383), + 59: uint16(21384), + 60: uint16(21386), + 61: uint16(21390), + 62: uint16(21391), + 63: uint16(21392), + 64: uint16(21393), + 65: uint16(21394), + 66: uint16(21395), + 67: uint16(21396), + 68: uint16(21398), + 69: uint16(21399), + 70: uint16(21401), + 71: uint16(21403), + 72: uint16(21404), + 73: uint16(21406), + 74: uint16(21408), + 75: uint16(21409), + 76: uint16(21412), + 77: uint16(21415), + 78: uint16(21418), + 79: uint16(21419), + 80: uint16(21420), + 81: uint16(21421), + 82: uint16(21423), + 83: uint16(21424), + 84: uint16(21425), + 85: uint16(21426), + 86: uint16(21427), + 87: uint16(21428), + 88: uint16(21429), + 89: uint16(21431), + 90: uint16(21432), + 91: uint16(21433), + 92: uint16(21434), + 93: uint16(21436), + 94: uint16(21437), + 95: uint16(21438), + 96: uint16(21440), + 97: uint16(21443), + 98: uint16(21444), + 99: uint16(21445), + 100: uint16(21446), + 101: uint16(21447), + 102: uint16(21454), + 103: uint16(21455), + 104: uint16(21456), + 105: uint16(21458), + 106: uint16(21459), + 107: uint16(21461), + 108: uint16(21466), + 109: uint16(21468), + 110: uint16(21469), + 111: uint16(21470), + 112: uint16(21473), + 113: uint16(21474), + 114: uint16(21479), + 115: uint16(21492), + 116: uint16(21498), + 117: uint16(21502), + 118: uint16(21503), + 119: uint16(21504), + 120: uint16(21506), + 121: uint16(21509), + 122: uint16(21511), + 123: uint16(21515), + 124: uint16(21524), + 125: uint16(21528), + 126: uint16(21529), + 127: uint16(21530), + 128: uint16(21532), + 129: uint16(21538), + 130: uint16(21540), + 131: uint16(21541), + 132: uint16(21546), + 133: uint16(21552), + 134: uint16(21555), + 135: uint16(21558), + 136: uint16(21559), + 137: uint16(21562), + 138: uint16(21565), + 139: uint16(21567), + 140: uint16(21569), + 141: uint16(21570), + 142: uint16(21572), + 143: uint16(21573), + 144: uint16(21575), + 145: uint16(21577), + 146: uint16(21580), + 147: uint16(21581), + 148: uint16(21582), + 149: uint16(21583), + 150: uint16(21585), + 151: uint16(21594), + 152: uint16(21597), + 153: uint16(21598), + 154: uint16(21599), + 155: uint16(21600), + 156: uint16(21601), + 157: uint16(21603), + 158: uint16(21605), + 159: uint16(21607), + 160: uint16(21609), + 161: uint16(21610), + 162: uint16(21611), + 163: uint16(21612), + 164: uint16(21613), + 165: uint16(21614), + 166: uint16(21615), + 167: uint16(21616), + 168: uint16(21620), + 169: uint16(21625), + 170: uint16(21626), + 171: uint16(21630), + 172: uint16(21631), + 173: uint16(21633), + 174: uint16(21635), + 175: uint16(21637), + 176: uint16(21639), + 177: uint16(21640), + 178: uint16(21641), + 179: uint16(21642), + 180: uint16(21645), + 181: uint16(21649), + 182: uint16(21651), + 183: uint16(21655), + 184: uint16(21656), + 185: uint16(21660), + 186: uint16(21662), + 187: uint16(21663), + 188: uint16(21664), + 189: uint16(21665), + }, + 5: { + 0: uint16(21666), + 1: uint16(21669), + 2: uint16(21678), + 3: uint16(21680), + 4: uint16(21682), + 5: uint16(21685), + 6: uint16(21686), + 7: uint16(21687), + 8: uint16(21689), + 9: uint16(21690), + 10: uint16(21692), + 11: uint16(21694), + 12: uint16(21699), + 13: uint16(21701), + 14: uint16(21706), + 15: uint16(21707), + 16: uint16(21718), + 17: uint16(21720), + 18: uint16(21723), + 19: uint16(21728), + 20: uint16(21729), + 21: uint16(21730), + 22: uint16(21731), + 23: uint16(21732), + 24: uint16(21739), + 25: uint16(21740), + 26: uint16(21743), + 27: uint16(21744), + 28: uint16(21745), + 29: uint16(21748), + 30: uint16(21749), + 31: uint16(21750), + 32: uint16(21751), + 33: uint16(21752), + 34: uint16(21753), + 35: uint16(21755), + 36: uint16(21758), + 37: uint16(21760), + 38: uint16(21762), + 39: uint16(21763), + 40: uint16(21764), + 41: uint16(21765), + 42: uint16(21768), + 43: uint16(21770), + 44: uint16(21771), + 45: uint16(21772), + 46: uint16(21773), + 47: uint16(21774), + 48: uint16(21778), + 49: uint16(21779), + 50: uint16(21781), + 51: uint16(21782), + 52: uint16(21783), + 53: uint16(21784), + 54: uint16(21785), + 55: uint16(21786), + 56: uint16(21788), + 57: uint16(21789), + 58: uint16(21790), + 59: uint16(21791), + 60: uint16(21793), + 61: uint16(21797), + 62: uint16(21798), + 63: uint16(21800), + 64: uint16(21801), + 65: uint16(21803), + 66: uint16(21805), + 67: uint16(21810), + 68: uint16(21812), + 69: uint16(21813), + 70: uint16(21814), + 71: uint16(21816), + 72: uint16(21817), + 73: uint16(21818), + 74: uint16(21819), + 75: uint16(21821), + 76: uint16(21824), + 77: uint16(21826), + 78: uint16(21829), + 79: uint16(21831), + 80: uint16(21832), + 81: uint16(21835), + 82: uint16(21836), + 83: uint16(21837), + 84: uint16(21838), + 85: uint16(21839), + 86: uint16(21841), + 87: uint16(21842), + 88: uint16(21843), + 89: uint16(21844), + 90: uint16(21847), + 91: uint16(21848), + 92: uint16(21849), + 93: uint16(21850), + 94: uint16(21851), + 95: uint16(21853), + 96: uint16(21854), + 97: uint16(21855), + 98: uint16(21856), + 99: uint16(21858), + 100: uint16(21859), + 101: uint16(21864), + 102: uint16(21865), + 103: uint16(21867), + 104: uint16(21871), + 105: uint16(21872), + 106: uint16(21873), + 107: uint16(21874), + 108: uint16(21875), + 109: uint16(21876), + 110: uint16(21881), + 111: uint16(21882), + 112: uint16(21885), + 113: uint16(21887), + 114: uint16(21893), + 115: uint16(21894), + 116: uint16(21900), + 117: uint16(21901), + 118: uint16(21902), + 119: uint16(21904), + 120: uint16(21906), + 121: uint16(21907), + 122: uint16(21909), + 123: uint16(21910), + 124: uint16(21911), + 125: uint16(21914), + 126: uint16(21915), + 127: uint16(21918), + 128: uint16(21920), + 129: uint16(21921), + 130: uint16(21922), + 131: uint16(21923), + 132: uint16(21924), + 133: uint16(21925), + 134: uint16(21926), + 135: uint16(21928), + 136: uint16(21929), + 137: uint16(21930), + 138: uint16(21931), + 139: uint16(21932), + 140: uint16(21933), + 141: uint16(21934), + 142: uint16(21935), + 143: uint16(21936), + 144: uint16(21938), + 145: uint16(21940), + 146: uint16(21942), + 147: uint16(21944), + 148: uint16(21946), + 149: uint16(21948), + 150: uint16(21951), + 151: uint16(21952), + 152: uint16(21953), + 153: uint16(21954), + 154: uint16(21955), + 155: uint16(21958), + 156: uint16(21959), + 157: uint16(21960), + 158: uint16(21962), + 159: uint16(21963), + 160: uint16(21966), + 161: uint16(21967), + 162: uint16(21968), + 163: uint16(21973), + 164: uint16(21975), + 165: uint16(21976), + 166: uint16(21977), + 167: uint16(21978), + 168: uint16(21979), + 169: uint16(21982), + 170: uint16(21984), + 171: uint16(21986), + 172: uint16(21991), + 173: uint16(21993), + 174: uint16(21997), + 175: uint16(21998), + 176: uint16(22000), + 177: uint16(22001), + 178: uint16(22004), + 179: uint16(22006), + 180: uint16(22008), + 181: uint16(22009), + 182: uint16(22010), + 183: uint16(22011), + 184: uint16(22012), + 185: uint16(22015), + 186: uint16(22018), + 187: uint16(22019), + 188: uint16(22020), + 189: uint16(22021), + }, + 6: { + 0: uint16(22022), + 1: uint16(22023), + 2: uint16(22026), + 3: uint16(22027), + 4: uint16(22029), + 5: uint16(22032), + 6: uint16(22033), + 7: uint16(22034), + 8: uint16(22035), + 9: uint16(22036), + 10: uint16(22037), + 11: uint16(22038), + 12: uint16(22039), + 13: uint16(22041), + 14: uint16(22042), + 15: uint16(22044), + 16: uint16(22045), + 17: uint16(22048), + 18: uint16(22049), + 19: uint16(22050), + 20: uint16(22053), + 21: uint16(22054), + 22: uint16(22056), + 23: uint16(22057), + 24: uint16(22058), + 25: uint16(22059), + 26: uint16(22062), + 27: uint16(22063), + 28: uint16(22064), + 29: uint16(22067), + 30: uint16(22069), + 31: uint16(22071), + 32: uint16(22072), + 33: uint16(22074), + 34: uint16(22076), + 35: uint16(22077), + 36: uint16(22078), + 37: uint16(22080), + 38: uint16(22081), + 39: uint16(22082), + 40: uint16(22083), + 41: uint16(22084), + 42: uint16(22085), + 43: uint16(22086), + 44: uint16(22087), + 45: uint16(22088), + 46: uint16(22089), + 47: uint16(22090), + 48: uint16(22091), + 49: uint16(22095), + 50: uint16(22096), + 51: uint16(22097), + 52: uint16(22098), + 53: uint16(22099), + 54: uint16(22101), + 55: uint16(22102), + 56: uint16(22106), + 57: uint16(22107), + 58: uint16(22109), + 59: uint16(22110), + 60: uint16(22111), + 61: uint16(22112), + 62: uint16(22113), + 63: uint16(22115), + 64: uint16(22117), + 65: uint16(22118), + 66: uint16(22119), + 67: uint16(22125), + 68: uint16(22126), + 69: uint16(22127), + 70: uint16(22128), + 71: uint16(22130), + 72: uint16(22131), + 73: uint16(22132), + 74: uint16(22133), + 75: uint16(22135), + 76: uint16(22136), + 77: uint16(22137), + 78: uint16(22138), + 79: uint16(22141), + 80: uint16(22142), + 81: uint16(22143), + 82: uint16(22144), + 83: uint16(22145), + 84: uint16(22146), + 85: uint16(22147), + 86: uint16(22148), + 87: uint16(22151), + 88: uint16(22152), + 89: uint16(22153), + 90: uint16(22154), + 91: uint16(22155), + 92: uint16(22156), + 93: uint16(22157), + 94: uint16(22160), + 95: uint16(22161), + 96: uint16(22162), + 97: uint16(22164), + 98: uint16(22165), + 99: uint16(22166), + 100: uint16(22167), + 101: uint16(22168), + 102: uint16(22169), + 103: uint16(22170), + 104: uint16(22171), + 105: uint16(22172), + 106: uint16(22173), + 107: uint16(22174), + 108: uint16(22175), + 109: uint16(22176), + 110: uint16(22177), + 111: uint16(22178), + 112: uint16(22180), + 113: uint16(22181), + 114: uint16(22182), + 115: uint16(22183), + 116: uint16(22184), + 117: uint16(22185), + 118: uint16(22186), + 119: uint16(22187), + 120: uint16(22188), + 121: uint16(22189), + 122: uint16(22190), + 123: uint16(22192), + 124: uint16(22193), + 125: uint16(22194), + 126: uint16(22195), + 127: uint16(22196), + 128: uint16(22197), + 129: uint16(22198), + 130: uint16(22200), + 131: uint16(22201), + 132: uint16(22202), + 133: uint16(22203), + 134: uint16(22205), + 135: uint16(22206), + 136: uint16(22207), + 137: uint16(22208), + 138: uint16(22209), + 139: uint16(22210), + 140: uint16(22211), + 141: uint16(22212), + 142: uint16(22213), + 143: uint16(22214), + 144: uint16(22215), + 145: uint16(22216), + 146: uint16(22217), + 147: uint16(22219), + 148: uint16(22220), + 149: uint16(22221), + 150: uint16(22222), + 151: uint16(22223), + 152: uint16(22224), + 153: uint16(22225), + 154: uint16(22226), + 155: uint16(22227), + 156: uint16(22229), + 157: uint16(22230), + 158: uint16(22232), + 159: uint16(22233), + 160: uint16(22236), + 161: uint16(22243), + 162: uint16(22245), + 163: uint16(22246), + 164: uint16(22247), + 165: uint16(22248), + 166: uint16(22249), + 167: uint16(22250), + 168: uint16(22252), + 169: uint16(22254), + 170: uint16(22255), + 171: uint16(22258), + 172: uint16(22259), + 173: uint16(22262), + 174: uint16(22263), + 175: uint16(22264), + 176: uint16(22267), + 177: uint16(22268), + 178: uint16(22272), + 179: uint16(22273), + 180: uint16(22274), + 181: uint16(22277), + 182: uint16(22279), + 183: uint16(22283), + 184: uint16(22284), + 185: uint16(22285), + 186: uint16(22286), + 187: uint16(22287), + 188: uint16(22288), + 189: uint16(22289), + }, + 7: { + 0: uint16(22290), + 1: uint16(22291), + 2: uint16(22292), + 3: uint16(22293), + 4: uint16(22294), + 5: uint16(22295), + 6: uint16(22296), + 7: uint16(22297), + 8: uint16(22298), + 9: uint16(22299), + 10: uint16(22301), + 11: uint16(22302), + 12: uint16(22304), + 13: uint16(22305), + 14: uint16(22306), + 15: uint16(22308), + 16: uint16(22309), + 17: uint16(22310), + 18: uint16(22311), + 19: uint16(22315), + 20: uint16(22321), + 21: uint16(22322), + 22: uint16(22324), + 23: uint16(22325), + 24: uint16(22326), + 25: uint16(22327), + 26: uint16(22328), + 27: uint16(22332), + 28: uint16(22333), + 29: uint16(22335), + 30: uint16(22337), + 31: uint16(22339), + 32: uint16(22340), + 33: uint16(22341), + 34: uint16(22342), + 35: uint16(22344), + 36: uint16(22345), + 37: uint16(22347), + 38: uint16(22354), + 39: uint16(22355), + 40: uint16(22356), + 41: uint16(22357), + 42: uint16(22358), + 43: uint16(22360), + 44: uint16(22361), + 45: uint16(22370), + 46: uint16(22371), + 47: uint16(22373), + 48: uint16(22375), + 49: uint16(22380), + 50: uint16(22382), + 51: uint16(22384), + 52: uint16(22385), + 53: uint16(22386), + 54: uint16(22388), + 55: uint16(22389), + 56: uint16(22392), + 57: uint16(22393), + 58: uint16(22394), + 59: uint16(22397), + 60: uint16(22398), + 61: uint16(22399), + 62: uint16(22400), + 63: uint16(22401), + 64: uint16(22407), + 65: uint16(22408), + 66: uint16(22409), + 67: uint16(22410), + 68: uint16(22413), + 69: uint16(22414), + 70: uint16(22415), + 71: uint16(22416), + 72: uint16(22417), + 73: uint16(22420), + 74: uint16(22421), + 75: uint16(22422), + 76: uint16(22423), + 77: uint16(22424), + 78: uint16(22425), + 79: uint16(22426), + 80: uint16(22428), + 81: uint16(22429), + 82: uint16(22430), + 83: uint16(22431), + 84: uint16(22437), + 85: uint16(22440), + 86: uint16(22442), + 87: uint16(22444), + 88: uint16(22447), + 89: uint16(22448), + 90: uint16(22449), + 91: uint16(22451), + 92: uint16(22453), + 93: uint16(22454), + 94: uint16(22455), + 95: uint16(22457), + 96: uint16(22458), + 97: uint16(22459), + 98: uint16(22460), + 99: uint16(22461), + 100: uint16(22462), + 101: uint16(22463), + 102: uint16(22464), + 103: uint16(22465), + 104: uint16(22468), + 105: uint16(22469), + 106: uint16(22470), + 107: uint16(22471), + 108: uint16(22472), + 109: uint16(22473), + 110: uint16(22474), + 111: uint16(22476), + 112: uint16(22477), + 113: uint16(22480), + 114: uint16(22481), + 115: uint16(22483), + 116: uint16(22486), + 117: uint16(22487), + 118: uint16(22491), + 119: uint16(22492), + 120: uint16(22494), + 121: uint16(22497), + 122: uint16(22498), + 123: uint16(22499), + 124: uint16(22501), + 125: uint16(22502), + 126: uint16(22503), + 127: uint16(22504), + 128: uint16(22505), + 129: uint16(22506), + 130: uint16(22507), + 131: uint16(22508), + 132: uint16(22510), + 133: uint16(22512), + 134: uint16(22513), + 135: uint16(22514), + 136: uint16(22515), + 137: uint16(22517), + 138: uint16(22518), + 139: uint16(22519), + 140: uint16(22523), + 141: uint16(22524), + 142: uint16(22526), + 143: uint16(22527), + 144: uint16(22529), + 145: uint16(22531), + 146: uint16(22532), + 147: uint16(22533), + 148: uint16(22536), + 149: uint16(22537), + 150: uint16(22538), + 151: uint16(22540), + 152: uint16(22542), + 153: uint16(22543), + 154: uint16(22544), + 155: uint16(22546), + 156: uint16(22547), + 157: uint16(22548), + 158: uint16(22550), + 159: uint16(22551), + 160: uint16(22552), + 161: uint16(22554), + 162: uint16(22555), + 163: uint16(22556), + 164: uint16(22557), + 165: uint16(22559), + 166: uint16(22562), + 167: uint16(22563), + 168: uint16(22565), + 169: uint16(22566), + 170: uint16(22567), + 171: uint16(22568), + 172: uint16(22569), + 173: uint16(22571), + 174: uint16(22572), + 175: uint16(22573), + 176: uint16(22574), + 177: uint16(22575), + 178: uint16(22577), + 179: uint16(22578), + 180: uint16(22579), + 181: uint16(22580), + 182: uint16(22582), + 183: uint16(22583), + 184: uint16(22584), + 185: uint16(22585), + 186: uint16(22586), + 187: uint16(22587), + 188: uint16(22588), + 189: uint16(22589), + }, + 8: { + 0: uint16(22590), + 1: uint16(22591), + 2: uint16(22592), + 3: uint16(22593), + 4: uint16(22594), + 5: uint16(22595), + 6: uint16(22597), + 7: uint16(22598), + 8: uint16(22599), + 9: uint16(22600), + 10: uint16(22601), + 11: uint16(22602), + 12: uint16(22603), + 13: uint16(22606), + 14: uint16(22607), + 15: uint16(22608), + 16: uint16(22610), + 17: uint16(22611), + 18: uint16(22613), + 19: uint16(22614), + 20: uint16(22615), + 21: uint16(22617), + 22: uint16(22618), + 23: uint16(22619), + 24: uint16(22620), + 25: uint16(22621), + 26: uint16(22623), + 27: uint16(22624), + 28: uint16(22625), + 29: uint16(22626), + 30: uint16(22627), + 31: uint16(22628), + 32: uint16(22630), + 33: uint16(22631), + 34: uint16(22632), + 35: uint16(22633), + 36: uint16(22634), + 37: uint16(22637), + 38: uint16(22638), + 39: uint16(22639), + 40: uint16(22640), + 41: uint16(22641), + 42: uint16(22642), + 43: uint16(22643), + 44: uint16(22644), + 45: uint16(22645), + 46: uint16(22646), + 47: uint16(22647), + 48: uint16(22648), + 49: uint16(22649), + 50: uint16(22650), + 51: uint16(22651), + 52: uint16(22652), + 53: uint16(22653), + 54: uint16(22655), + 55: uint16(22658), + 56: uint16(22660), + 57: uint16(22662), + 58: uint16(22663), + 59: uint16(22664), + 60: uint16(22666), + 61: uint16(22667), + 62: uint16(22668), + 63: uint16(22669), + 64: uint16(22670), + 65: uint16(22671), + 66: uint16(22672), + 67: uint16(22673), + 68: uint16(22676), + 69: uint16(22677), + 70: uint16(22678), + 71: uint16(22679), + 72: uint16(22680), + 73: uint16(22683), + 74: uint16(22684), + 75: uint16(22685), + 76: uint16(22688), + 77: uint16(22689), + 78: uint16(22690), + 79: uint16(22691), + 80: uint16(22692), + 81: uint16(22693), + 82: uint16(22694), + 83: uint16(22695), + 84: uint16(22698), + 85: uint16(22699), + 86: uint16(22700), + 87: uint16(22701), + 88: uint16(22702), + 89: uint16(22703), + 90: uint16(22704), + 91: uint16(22705), + 92: uint16(22706), + 93: uint16(22707), + 94: uint16(22708), + 95: uint16(22709), + 96: uint16(22710), + 97: uint16(22711), + 98: uint16(22712), + 99: uint16(22713), + 100: uint16(22714), + 101: uint16(22715), + 102: uint16(22717), + 103: uint16(22718), + 104: uint16(22719), + 105: uint16(22720), + 106: uint16(22722), + 107: uint16(22723), + 108: uint16(22724), + 109: uint16(22726), + 110: uint16(22727), + 111: uint16(22728), + 112: uint16(22729), + 113: uint16(22730), + 114: uint16(22731), + 115: uint16(22732), + 116: uint16(22733), + 117: uint16(22734), + 118: uint16(22735), + 119: uint16(22736), + 120: uint16(22738), + 121: uint16(22739), + 122: uint16(22740), + 123: uint16(22742), + 124: uint16(22743), + 125: uint16(22744), + 126: uint16(22745), + 127: uint16(22746), + 128: uint16(22747), + 129: uint16(22748), + 130: uint16(22749), + 131: uint16(22750), + 132: uint16(22751), + 133: uint16(22752), + 134: uint16(22753), + 135: uint16(22754), + 136: uint16(22755), + 137: uint16(22757), + 138: uint16(22758), + 139: uint16(22759), + 140: uint16(22760), + 141: uint16(22761), + 142: uint16(22762), + 143: uint16(22765), + 144: uint16(22767), + 145: uint16(22769), + 146: uint16(22770), + 147: uint16(22772), + 148: uint16(22773), + 149: uint16(22775), + 150: uint16(22776), + 151: uint16(22778), + 152: uint16(22779), + 153: uint16(22780), + 154: uint16(22781), + 155: uint16(22782), + 156: uint16(22783), + 157: uint16(22784), + 158: uint16(22785), + 159: uint16(22787), + 160: uint16(22789), + 161: uint16(22790), + 162: uint16(22792), + 163: uint16(22793), + 164: uint16(22794), + 165: uint16(22795), + 166: uint16(22796), + 167: uint16(22798), + 168: uint16(22800), + 169: uint16(22801), + 170: uint16(22802), + 171: uint16(22803), + 172: uint16(22807), + 173: uint16(22808), + 174: uint16(22811), + 175: uint16(22813), + 176: uint16(22814), + 177: uint16(22816), + 178: uint16(22817), + 179: uint16(22818), + 180: uint16(22819), + 181: uint16(22822), + 182: uint16(22824), + 183: uint16(22828), + 184: uint16(22832), + 185: uint16(22834), + 186: uint16(22835), + 187: uint16(22837), + 188: uint16(22838), + 189: uint16(22843), + }, + 9: { + 0: uint16(22845), + 1: uint16(22846), + 2: uint16(22847), + 3: uint16(22848), + 4: uint16(22851), + 5: uint16(22853), + 6: uint16(22854), + 7: uint16(22858), + 8: uint16(22860), + 9: uint16(22861), + 10: uint16(22864), + 11: uint16(22866), + 12: uint16(22867), + 13: uint16(22873), + 14: uint16(22875), + 15: uint16(22876), + 16: uint16(22877), + 17: uint16(22878), + 18: uint16(22879), + 19: uint16(22881), + 20: uint16(22883), + 21: uint16(22884), + 22: uint16(22886), + 23: uint16(22887), + 24: uint16(22888), + 25: uint16(22889), + 26: uint16(22890), + 27: uint16(22891), + 28: uint16(22892), + 29: uint16(22893), + 30: uint16(22894), + 31: uint16(22895), + 32: uint16(22896), + 33: uint16(22897), + 34: uint16(22898), + 35: uint16(22901), + 36: uint16(22903), + 37: uint16(22906), + 38: uint16(22907), + 39: uint16(22908), + 40: uint16(22910), + 41: uint16(22911), + 42: uint16(22912), + 43: uint16(22917), + 44: uint16(22921), + 45: uint16(22923), + 46: uint16(22924), + 47: uint16(22926), + 48: uint16(22927), + 49: uint16(22928), + 50: uint16(22929), + 51: uint16(22932), + 52: uint16(22933), + 53: uint16(22936), + 54: uint16(22938), + 55: uint16(22939), + 56: uint16(22940), + 57: uint16(22941), + 58: uint16(22943), + 59: uint16(22944), + 60: uint16(22945), + 61: uint16(22946), + 62: uint16(22950), + 63: uint16(22951), + 64: uint16(22956), + 65: uint16(22957), + 66: uint16(22960), + 67: uint16(22961), + 68: uint16(22963), + 69: uint16(22964), + 70: uint16(22965), + 71: uint16(22966), + 72: uint16(22967), + 73: uint16(22968), + 74: uint16(22970), + 75: uint16(22972), + 76: uint16(22973), + 77: uint16(22975), + 78: uint16(22976), + 79: uint16(22977), + 80: uint16(22978), + 81: uint16(22979), + 82: uint16(22980), + 83: uint16(22981), + 84: uint16(22983), + 85: uint16(22984), + 86: uint16(22985), + 87: uint16(22988), + 88: uint16(22989), + 89: uint16(22990), + 90: uint16(22991), + 91: uint16(22997), + 92: uint16(22998), + 93: uint16(23001), + 94: uint16(23003), + 95: uint16(23006), + 96: uint16(23007), + 97: uint16(23008), + 98: uint16(23009), + 99: uint16(23010), + 100: uint16(23012), + 101: uint16(23014), + 102: uint16(23015), + 103: uint16(23017), + 104: uint16(23018), + 105: uint16(23019), + 106: uint16(23021), + 107: uint16(23022), + 108: uint16(23023), + 109: uint16(23024), + 110: uint16(23025), + 111: uint16(23026), + 112: uint16(23027), + 113: uint16(23028), + 114: uint16(23029), + 115: uint16(23030), + 116: uint16(23031), + 117: uint16(23032), + 118: uint16(23034), + 119: uint16(23036), + 120: uint16(23037), + 121: uint16(23038), + 122: uint16(23040), + 123: uint16(23042), + 124: uint16(23050), + 125: uint16(23051), + 126: uint16(23053), + 127: uint16(23054), + 128: uint16(23055), + 129: uint16(23056), + 130: uint16(23058), + 131: uint16(23060), + 132: uint16(23061), + 133: uint16(23062), + 134: uint16(23063), + 135: uint16(23065), + 136: uint16(23066), + 137: uint16(23067), + 138: uint16(23069), + 139: uint16(23070), + 140: uint16(23073), + 141: uint16(23074), + 142: uint16(23076), + 143: uint16(23078), + 144: uint16(23079), + 145: uint16(23080), + 146: uint16(23082), + 147: uint16(23083), + 148: uint16(23084), + 149: uint16(23085), + 150: uint16(23086), + 151: uint16(23087), + 152: uint16(23088), + 153: uint16(23091), + 154: uint16(23093), + 155: uint16(23095), + 156: uint16(23096), + 157: uint16(23097), + 158: uint16(23098), + 159: uint16(23099), + 160: uint16(23101), + 161: uint16(23102), + 162: uint16(23103), + 163: uint16(23105), + 164: uint16(23106), + 165: uint16(23107), + 166: uint16(23108), + 167: uint16(23109), + 168: uint16(23111), + 169: uint16(23112), + 170: uint16(23115), + 171: uint16(23116), + 172: uint16(23117), + 173: uint16(23118), + 174: uint16(23119), + 175: uint16(23120), + 176: uint16(23121), + 177: uint16(23122), + 178: uint16(23123), + 179: uint16(23124), + 180: uint16(23126), + 181: uint16(23127), + 182: uint16(23128), + 183: uint16(23129), + 184: uint16(23131), + 185: uint16(23132), + 186: uint16(23133), + 187: uint16(23134), + 188: uint16(23135), + 189: uint16(23136), + }, + 10: { + 0: uint16(23137), + 1: uint16(23139), + 2: uint16(23140), + 3: uint16(23141), + 4: uint16(23142), + 5: uint16(23144), + 6: uint16(23145), + 7: uint16(23147), + 8: uint16(23148), + 9: uint16(23149), + 10: uint16(23150), + 11: uint16(23151), + 12: uint16(23152), + 13: uint16(23153), + 14: uint16(23154), + 15: uint16(23155), + 16: uint16(23160), + 17: uint16(23161), + 18: uint16(23163), + 19: uint16(23164), + 20: uint16(23165), + 21: uint16(23166), + 22: uint16(23168), + 23: uint16(23169), + 24: uint16(23170), + 25: uint16(23171), + 26: uint16(23172), + 27: uint16(23173), + 28: uint16(23174), + 29: uint16(23175), + 30: uint16(23176), + 31: uint16(23177), + 32: uint16(23178), + 33: uint16(23179), + 34: uint16(23180), + 35: uint16(23181), + 36: uint16(23182), + 37: uint16(23183), + 38: uint16(23184), + 39: uint16(23185), + 40: uint16(23187), + 41: uint16(23188), + 42: uint16(23189), + 43: uint16(23190), + 44: uint16(23191), + 45: uint16(23192), + 46: uint16(23193), + 47: uint16(23196), + 48: uint16(23197), + 49: uint16(23198), + 50: uint16(23199), + 51: uint16(23200), + 52: uint16(23201), + 53: uint16(23202), + 54: uint16(23203), + 55: uint16(23204), + 56: uint16(23205), + 57: uint16(23206), + 58: uint16(23207), + 59: uint16(23208), + 60: uint16(23209), + 61: uint16(23211), + 62: uint16(23212), + 63: uint16(23213), + 64: uint16(23214), + 65: uint16(23215), + 66: uint16(23216), + 67: uint16(23217), + 68: uint16(23220), + 69: uint16(23222), + 70: uint16(23223), + 71: uint16(23225), + 72: uint16(23226), + 73: uint16(23227), + 74: uint16(23228), + 75: uint16(23229), + 76: uint16(23231), + 77: uint16(23232), + 78: uint16(23235), + 79: uint16(23236), + 80: uint16(23237), + 81: uint16(23238), + 82: uint16(23239), + 83: uint16(23240), + 84: uint16(23242), + 85: uint16(23243), + 86: uint16(23245), + 87: uint16(23246), + 88: uint16(23247), + 89: uint16(23248), + 90: uint16(23249), + 91: uint16(23251), + 92: uint16(23253), + 93: uint16(23255), + 94: uint16(23257), + 95: uint16(23258), + 96: uint16(23259), + 97: uint16(23261), + 98: uint16(23262), + 99: uint16(23263), + 100: uint16(23266), + 101: uint16(23268), + 102: uint16(23269), + 103: uint16(23271), + 104: uint16(23272), + 105: uint16(23274), + 106: uint16(23276), + 107: uint16(23277), + 108: uint16(23278), + 109: uint16(23279), + 110: uint16(23280), + 111: uint16(23282), + 112: uint16(23283), + 113: uint16(23284), + 114: uint16(23285), + 115: uint16(23286), + 116: uint16(23287), + 117: uint16(23288), + 118: uint16(23289), + 119: uint16(23290), + 120: uint16(23291), + 121: uint16(23292), + 122: uint16(23293), + 123: uint16(23294), + 124: uint16(23295), + 125: uint16(23296), + 126: uint16(23297), + 127: uint16(23298), + 128: uint16(23299), + 129: uint16(23300), + 130: uint16(23301), + 131: uint16(23302), + 132: uint16(23303), + 133: uint16(23304), + 134: uint16(23306), + 135: uint16(23307), + 136: uint16(23308), + 137: uint16(23309), + 138: uint16(23310), + 139: uint16(23311), + 140: uint16(23312), + 141: uint16(23313), + 142: uint16(23314), + 143: uint16(23315), + 144: uint16(23316), + 145: uint16(23317), + 146: uint16(23320), + 147: uint16(23321), + 148: uint16(23322), + 149: uint16(23323), + 150: uint16(23324), + 151: uint16(23325), + 152: uint16(23326), + 153: uint16(23327), + 154: uint16(23328), + 155: uint16(23329), + 156: uint16(23330), + 157: uint16(23331), + 158: uint16(23332), + 159: uint16(23333), + 160: uint16(23334), + 161: uint16(23335), + 162: uint16(23336), + 163: uint16(23337), + 164: uint16(23338), + 165: uint16(23339), + 166: uint16(23340), + 167: uint16(23341), + 168: uint16(23342), + 169: uint16(23343), + 170: uint16(23344), + 171: uint16(23345), + 172: uint16(23347), + 173: uint16(23349), + 174: uint16(23350), + 175: uint16(23352), + 176: uint16(23353), + 177: uint16(23354), + 178: uint16(23355), + 179: uint16(23356), + 180: uint16(23357), + 181: uint16(23358), + 182: uint16(23359), + 183: uint16(23361), + 184: uint16(23362), + 185: uint16(23363), + 186: uint16(23364), + 187: uint16(23365), + 188: uint16(23366), + 189: uint16(23367), + }, + 11: { + 0: uint16(23368), + 1: uint16(23369), + 2: uint16(23370), + 3: uint16(23371), + 4: uint16(23372), + 5: uint16(23373), + 6: uint16(23374), + 7: uint16(23375), + 8: uint16(23378), + 9: uint16(23382), + 10: uint16(23390), + 11: uint16(23392), + 12: uint16(23393), + 13: uint16(23399), + 14: uint16(23400), + 15: uint16(23403), + 16: uint16(23405), + 17: uint16(23406), + 18: uint16(23407), + 19: uint16(23410), + 20: uint16(23412), + 21: uint16(23414), + 22: uint16(23415), + 23: uint16(23416), + 24: uint16(23417), + 25: uint16(23419), + 26: uint16(23420), + 27: uint16(23422), + 28: uint16(23423), + 29: uint16(23426), + 30: uint16(23430), + 31: uint16(23434), + 32: uint16(23437), + 33: uint16(23438), + 34: uint16(23440), + 35: uint16(23441), + 36: uint16(23442), + 37: uint16(23444), + 38: uint16(23446), + 39: uint16(23455), + 40: uint16(23463), + 41: uint16(23464), + 42: uint16(23465), + 43: uint16(23468), + 44: uint16(23469), + 45: uint16(23470), + 46: uint16(23471), + 47: uint16(23473), + 48: uint16(23474), + 49: uint16(23479), + 50: uint16(23482), + 51: uint16(23483), + 52: uint16(23484), + 53: uint16(23488), + 54: uint16(23489), + 55: uint16(23491), + 56: uint16(23496), + 57: uint16(23497), + 58: uint16(23498), + 59: uint16(23499), + 60: uint16(23501), + 61: uint16(23502), + 62: uint16(23503), + 63: uint16(23505), + 64: uint16(23508), + 65: uint16(23509), + 66: uint16(23510), + 67: uint16(23511), + 68: uint16(23512), + 69: uint16(23513), + 70: uint16(23514), + 71: uint16(23515), + 72: uint16(23516), + 73: uint16(23520), + 74: uint16(23522), + 75: uint16(23523), + 76: uint16(23526), + 77: uint16(23527), + 78: uint16(23529), + 79: uint16(23530), + 80: uint16(23531), + 81: uint16(23532), + 82: uint16(23533), + 83: uint16(23535), + 84: uint16(23537), + 85: uint16(23538), + 86: uint16(23539), + 87: uint16(23540), + 88: uint16(23541), + 89: uint16(23542), + 90: uint16(23543), + 91: uint16(23549), + 92: uint16(23550), + 93: uint16(23552), + 94: uint16(23554), + 95: uint16(23555), + 96: uint16(23557), + 97: uint16(23559), + 98: uint16(23560), + 99: uint16(23563), + 100: uint16(23564), + 101: uint16(23565), + 102: uint16(23566), + 103: uint16(23568), + 104: uint16(23570), + 105: uint16(23571), + 106: uint16(23575), + 107: uint16(23577), + 108: uint16(23579), + 109: uint16(23582), + 110: uint16(23583), + 111: uint16(23584), + 112: uint16(23585), + 113: uint16(23587), + 114: uint16(23590), + 115: uint16(23592), + 116: uint16(23593), + 117: uint16(23594), + 118: uint16(23595), + 119: uint16(23597), + 120: uint16(23598), + 121: uint16(23599), + 122: uint16(23600), + 123: uint16(23602), + 124: uint16(23603), + 125: uint16(23605), + 126: uint16(23606), + 127: uint16(23607), + 128: uint16(23619), + 129: uint16(23620), + 130: uint16(23622), + 131: uint16(23623), + 132: uint16(23628), + 133: uint16(23629), + 134: uint16(23634), + 135: uint16(23635), + 136: uint16(23636), + 137: uint16(23638), + 138: uint16(23639), + 139: uint16(23640), + 140: uint16(23642), + 141: uint16(23643), + 142: uint16(23644), + 143: uint16(23645), + 144: uint16(23647), + 145: uint16(23650), + 146: uint16(23652), + 147: uint16(23655), + 148: uint16(23656), + 149: uint16(23657), + 150: uint16(23658), + 151: uint16(23659), + 152: uint16(23660), + 153: uint16(23661), + 154: uint16(23664), + 155: uint16(23666), + 156: uint16(23667), + 157: uint16(23668), + 158: uint16(23669), + 159: uint16(23670), + 160: uint16(23671), + 161: uint16(23672), + 162: uint16(23675), + 163: uint16(23676), + 164: uint16(23677), + 165: uint16(23678), + 166: uint16(23680), + 167: uint16(23683), + 168: uint16(23684), + 169: uint16(23685), + 170: uint16(23686), + 171: uint16(23687), + 172: uint16(23689), + 173: uint16(23690), + 174: uint16(23691), + 175: uint16(23694), + 176: uint16(23695), + 177: uint16(23698), + 178: uint16(23699), + 179: uint16(23701), + 180: uint16(23709), + 181: uint16(23710), + 182: uint16(23711), + 183: uint16(23712), + 184: uint16(23713), + 185: uint16(23716), + 186: uint16(23717), + 187: uint16(23718), + 188: uint16(23719), + 189: uint16(23720), + }, + 12: { + 0: uint16(23722), + 1: uint16(23726), + 2: uint16(23727), + 3: uint16(23728), + 4: uint16(23730), + 5: uint16(23732), + 6: uint16(23734), + 7: uint16(23737), + 8: uint16(23738), + 9: uint16(23739), + 10: uint16(23740), + 11: uint16(23742), + 12: uint16(23744), + 13: uint16(23746), + 14: uint16(23747), + 15: uint16(23749), + 16: uint16(23750), + 17: uint16(23751), + 18: uint16(23752), + 19: uint16(23753), + 20: uint16(23754), + 21: uint16(23756), + 22: uint16(23757), + 23: uint16(23758), + 24: uint16(23759), + 25: uint16(23760), + 26: uint16(23761), + 27: uint16(23763), + 28: uint16(23764), + 29: uint16(23765), + 30: uint16(23766), + 31: uint16(23767), + 32: uint16(23768), + 33: uint16(23770), + 34: uint16(23771), + 35: uint16(23772), + 36: uint16(23773), + 37: uint16(23774), + 38: uint16(23775), + 39: uint16(23776), + 40: uint16(23778), + 41: uint16(23779), + 42: uint16(23783), + 43: uint16(23785), + 44: uint16(23787), + 45: uint16(23788), + 46: uint16(23790), + 47: uint16(23791), + 48: uint16(23793), + 49: uint16(23794), + 50: uint16(23795), + 51: uint16(23796), + 52: uint16(23797), + 53: uint16(23798), + 54: uint16(23799), + 55: uint16(23800), + 56: uint16(23801), + 57: uint16(23802), + 58: uint16(23804), + 59: uint16(23805), + 60: uint16(23806), + 61: uint16(23807), + 62: uint16(23808), + 63: uint16(23809), + 64: uint16(23812), + 65: uint16(23813), + 66: uint16(23816), + 67: uint16(23817), + 68: uint16(23818), + 69: uint16(23819), + 70: uint16(23820), + 71: uint16(23821), + 72: uint16(23823), + 73: uint16(23824), + 74: uint16(23825), + 75: uint16(23826), + 76: uint16(23827), + 77: uint16(23829), + 78: uint16(23831), + 79: uint16(23832), + 80: uint16(23833), + 81: uint16(23834), + 82: uint16(23836), + 83: uint16(23837), + 84: uint16(23839), + 85: uint16(23840), + 86: uint16(23841), + 87: uint16(23842), + 88: uint16(23843), + 89: uint16(23845), + 90: uint16(23848), + 91: uint16(23850), + 92: uint16(23851), + 93: uint16(23852), + 94: uint16(23855), + 95: uint16(23856), + 96: uint16(23857), + 97: uint16(23858), + 98: uint16(23859), + 99: uint16(23861), + 100: uint16(23862), + 101: uint16(23863), + 102: uint16(23864), + 103: uint16(23865), + 104: uint16(23866), + 105: uint16(23867), + 106: uint16(23868), + 107: uint16(23871), + 108: uint16(23872), + 109: uint16(23873), + 110: uint16(23874), + 111: uint16(23875), + 112: uint16(23876), + 113: uint16(23877), + 114: uint16(23878), + 115: uint16(23880), + 116: uint16(23881), + 117: uint16(23885), + 118: uint16(23886), + 119: uint16(23887), + 120: uint16(23888), + 121: uint16(23889), + 122: uint16(23890), + 123: uint16(23891), + 124: uint16(23892), + 125: uint16(23893), + 126: uint16(23894), + 127: uint16(23895), + 128: uint16(23897), + 129: uint16(23898), + 130: uint16(23900), + 131: uint16(23902), + 132: uint16(23903), + 133: uint16(23904), + 134: uint16(23905), + 135: uint16(23906), + 136: uint16(23907), + 137: uint16(23908), + 138: uint16(23909), + 139: uint16(23910), + 140: uint16(23911), + 141: uint16(23912), + 142: uint16(23914), + 143: uint16(23917), + 144: uint16(23918), + 145: uint16(23920), + 146: uint16(23921), + 147: uint16(23922), + 148: uint16(23923), + 149: uint16(23925), + 150: uint16(23926), + 151: uint16(23927), + 152: uint16(23928), + 153: uint16(23929), + 154: uint16(23930), + 155: uint16(23931), + 156: uint16(23932), + 157: uint16(23933), + 158: uint16(23934), + 159: uint16(23935), + 160: uint16(23936), + 161: uint16(23937), + 162: uint16(23939), + 163: uint16(23940), + 164: uint16(23941), + 165: uint16(23942), + 166: uint16(23943), + 167: uint16(23944), + 168: uint16(23945), + 169: uint16(23946), + 170: uint16(23947), + 171: uint16(23948), + 172: uint16(23949), + 173: uint16(23950), + 174: uint16(23951), + 175: uint16(23952), + 176: uint16(23953), + 177: uint16(23954), + 178: uint16(23955), + 179: uint16(23956), + 180: uint16(23957), + 181: uint16(23958), + 182: uint16(23959), + 183: uint16(23960), + 184: uint16(23962), + 185: uint16(23963), + 186: uint16(23964), + 187: uint16(23966), + 188: uint16(23967), + 189: uint16(23968), + }, + 13: { + 0: uint16(23969), + 1: uint16(23970), + 2: uint16(23971), + 3: uint16(23972), + 4: uint16(23973), + 5: uint16(23974), + 6: uint16(23975), + 7: uint16(23976), + 8: uint16(23977), + 9: uint16(23978), + 10: uint16(23979), + 11: uint16(23980), + 12: uint16(23981), + 13: uint16(23982), + 14: uint16(23983), + 15: uint16(23984), + 16: uint16(23985), + 17: uint16(23986), + 18: uint16(23987), + 19: uint16(23988), + 20: uint16(23989), + 21: uint16(23990), + 22: uint16(23992), + 23: uint16(23993), + 24: uint16(23994), + 25: uint16(23995), + 26: uint16(23996), + 27: uint16(23997), + 28: uint16(23998), + 29: uint16(23999), + 30: uint16(24000), + 31: uint16(24001), + 32: uint16(24002), + 33: uint16(24003), + 34: uint16(24004), + 35: uint16(24006), + 36: uint16(24007), + 37: uint16(24008), + 38: uint16(24009), + 39: uint16(24010), + 40: uint16(24011), + 41: uint16(24012), + 42: uint16(24014), + 43: uint16(24015), + 44: uint16(24016), + 45: uint16(24017), + 46: uint16(24018), + 47: uint16(24019), + 48: uint16(24020), + 49: uint16(24021), + 50: uint16(24022), + 51: uint16(24023), + 52: uint16(24024), + 53: uint16(24025), + 54: uint16(24026), + 55: uint16(24028), + 56: uint16(24031), + 57: uint16(24032), + 58: uint16(24035), + 59: uint16(24036), + 60: uint16(24042), + 61: uint16(24044), + 62: uint16(24045), + 63: uint16(24048), + 64: uint16(24053), + 65: uint16(24054), + 66: uint16(24056), + 67: uint16(24057), + 68: uint16(24058), + 69: uint16(24059), + 70: uint16(24060), + 71: uint16(24063), + 72: uint16(24064), + 73: uint16(24068), + 74: uint16(24071), + 75: uint16(24073), + 76: uint16(24074), + 77: uint16(24075), + 78: uint16(24077), + 79: uint16(24078), + 80: uint16(24082), + 81: uint16(24083), + 82: uint16(24087), + 83: uint16(24094), + 84: uint16(24095), + 85: uint16(24096), + 86: uint16(24097), + 87: uint16(24098), + 88: uint16(24099), + 89: uint16(24100), + 90: uint16(24101), + 91: uint16(24104), + 92: uint16(24105), + 93: uint16(24106), + 94: uint16(24107), + 95: uint16(24108), + 96: uint16(24111), + 97: uint16(24112), + 98: uint16(24114), + 99: uint16(24115), + 100: uint16(24116), + 101: uint16(24117), + 102: uint16(24118), + 103: uint16(24121), + 104: uint16(24122), + 105: uint16(24126), + 106: uint16(24127), + 107: uint16(24128), + 108: uint16(24129), + 109: uint16(24131), + 110: uint16(24134), + 111: uint16(24135), + 112: uint16(24136), + 113: uint16(24137), + 114: uint16(24138), + 115: uint16(24139), + 116: uint16(24141), + 117: uint16(24142), + 118: uint16(24143), + 119: uint16(24144), + 120: uint16(24145), + 121: uint16(24146), + 122: uint16(24147), + 123: uint16(24150), + 124: uint16(24151), + 125: uint16(24152), + 126: uint16(24153), + 127: uint16(24154), + 128: uint16(24156), + 129: uint16(24157), + 130: uint16(24159), + 131: uint16(24160), + 132: uint16(24163), + 133: uint16(24164), + 134: uint16(24165), + 135: uint16(24166), + 136: uint16(24167), + 137: uint16(24168), + 138: uint16(24169), + 139: uint16(24170), + 140: uint16(24171), + 141: uint16(24172), + 142: uint16(24173), + 143: uint16(24174), + 144: uint16(24175), + 145: uint16(24176), + 146: uint16(24177), + 147: uint16(24181), + 148: uint16(24183), + 149: uint16(24185), + 150: uint16(24190), + 151: uint16(24193), + 152: uint16(24194), + 153: uint16(24195), + 154: uint16(24197), + 155: uint16(24200), + 156: uint16(24201), + 157: uint16(24204), + 158: uint16(24205), + 159: uint16(24206), + 160: uint16(24210), + 161: uint16(24216), + 162: uint16(24219), + 163: uint16(24221), + 164: uint16(24225), + 165: uint16(24226), + 166: uint16(24227), + 167: uint16(24228), + 168: uint16(24232), + 169: uint16(24233), + 170: uint16(24234), + 171: uint16(24235), + 172: uint16(24236), + 173: uint16(24238), + 174: uint16(24239), + 175: uint16(24240), + 176: uint16(24241), + 177: uint16(24242), + 178: uint16(24244), + 179: uint16(24250), + 180: uint16(24251), + 181: uint16(24252), + 182: uint16(24253), + 183: uint16(24255), + 184: uint16(24256), + 185: uint16(24257), + 186: uint16(24258), + 187: uint16(24259), + 188: uint16(24260), + 189: uint16(24261), + }, + 14: { + 0: uint16(24262), + 1: uint16(24263), + 2: uint16(24264), + 3: uint16(24267), + 4: uint16(24268), + 5: uint16(24269), + 6: uint16(24270), + 7: uint16(24271), + 8: uint16(24272), + 9: uint16(24276), + 10: uint16(24277), + 11: uint16(24279), + 12: uint16(24280), + 13: uint16(24281), + 14: uint16(24282), + 15: uint16(24284), + 16: uint16(24285), + 17: uint16(24286), + 18: uint16(24287), + 19: uint16(24288), + 20: uint16(24289), + 21: uint16(24290), + 22: uint16(24291), + 23: uint16(24292), + 24: uint16(24293), + 25: uint16(24294), + 26: uint16(24295), + 27: uint16(24297), + 28: uint16(24299), + 29: uint16(24300), + 30: uint16(24301), + 31: uint16(24302), + 32: uint16(24303), + 33: uint16(24304), + 34: uint16(24305), + 35: uint16(24306), + 36: uint16(24307), + 37: uint16(24309), + 38: uint16(24312), + 39: uint16(24313), + 40: uint16(24315), + 41: uint16(24316), + 42: uint16(24317), + 43: uint16(24325), + 44: uint16(24326), + 45: uint16(24327), + 46: uint16(24329), + 47: uint16(24332), + 48: uint16(24333), + 49: uint16(24334), + 50: uint16(24336), + 51: uint16(24338), + 52: uint16(24340), + 53: uint16(24342), + 54: uint16(24345), + 55: uint16(24346), + 56: uint16(24348), + 57: uint16(24349), + 58: uint16(24350), + 59: uint16(24353), + 60: uint16(24354), + 61: uint16(24355), + 62: uint16(24356), + 63: uint16(24360), + 64: uint16(24363), + 65: uint16(24364), + 66: uint16(24366), + 67: uint16(24368), + 68: uint16(24370), + 69: uint16(24371), + 70: uint16(24372), + 71: uint16(24373), + 72: uint16(24374), + 73: uint16(24375), + 74: uint16(24376), + 75: uint16(24379), + 76: uint16(24381), + 77: uint16(24382), + 78: uint16(24383), + 79: uint16(24385), + 80: uint16(24386), + 81: uint16(24387), + 82: uint16(24388), + 83: uint16(24389), + 84: uint16(24390), + 85: uint16(24391), + 86: uint16(24392), + 87: uint16(24393), + 88: uint16(24394), + 89: uint16(24395), + 90: uint16(24396), + 91: uint16(24397), + 92: uint16(24398), + 93: uint16(24399), + 94: uint16(24401), + 95: uint16(24404), + 96: uint16(24409), + 97: uint16(24410), + 98: uint16(24411), + 99: uint16(24412), + 100: uint16(24414), + 101: uint16(24415), + 102: uint16(24416), + 103: uint16(24419), + 104: uint16(24421), + 105: uint16(24423), + 106: uint16(24424), + 107: uint16(24427), + 108: uint16(24430), + 109: uint16(24431), + 110: uint16(24434), + 111: uint16(24436), + 112: uint16(24437), + 113: uint16(24438), + 114: uint16(24440), + 115: uint16(24442), + 116: uint16(24445), + 117: uint16(24446), + 118: uint16(24447), + 119: uint16(24451), + 120: uint16(24454), + 121: uint16(24461), + 122: uint16(24462), + 123: uint16(24463), + 124: uint16(24465), + 125: uint16(24467), + 126: uint16(24468), + 127: uint16(24470), + 128: uint16(24474), + 129: uint16(24475), + 130: uint16(24477), + 131: uint16(24478), + 132: uint16(24479), + 133: uint16(24480), + 134: uint16(24482), + 135: uint16(24483), + 136: uint16(24484), + 137: uint16(24485), + 138: uint16(24486), + 139: uint16(24487), + 140: uint16(24489), + 141: uint16(24491), + 142: uint16(24492), + 143: uint16(24495), + 144: uint16(24496), + 145: uint16(24497), + 146: uint16(24498), + 147: uint16(24499), + 148: uint16(24500), + 149: uint16(24502), + 150: uint16(24504), + 151: uint16(24505), + 152: uint16(24506), + 153: uint16(24507), + 154: uint16(24510), + 155: uint16(24511), + 156: uint16(24512), + 157: uint16(24513), + 158: uint16(24514), + 159: uint16(24519), + 160: uint16(24520), + 161: uint16(24522), + 162: uint16(24523), + 163: uint16(24526), + 164: uint16(24531), + 165: uint16(24532), + 166: uint16(24533), + 167: uint16(24538), + 168: uint16(24539), + 169: uint16(24540), + 170: uint16(24542), + 171: uint16(24543), + 172: uint16(24546), + 173: uint16(24547), + 174: uint16(24549), + 175: uint16(24550), + 176: uint16(24552), + 177: uint16(24553), + 178: uint16(24556), + 179: uint16(24559), + 180: uint16(24560), + 181: uint16(24562), + 182: uint16(24563), + 183: uint16(24564), + 184: uint16(24566), + 185: uint16(24567), + 186: uint16(24569), + 187: uint16(24570), + 188: uint16(24572), + 189: uint16(24583), + }, + 15: { + 0: uint16(24584), + 1: uint16(24585), + 2: uint16(24587), + 3: uint16(24588), + 4: uint16(24592), + 5: uint16(24593), + 6: uint16(24595), + 7: uint16(24599), + 8: uint16(24600), + 9: uint16(24602), + 10: uint16(24606), + 11: uint16(24607), + 12: uint16(24610), + 13: uint16(24611), + 14: uint16(24612), + 15: uint16(24620), + 16: uint16(24621), + 17: uint16(24622), + 18: uint16(24624), + 19: uint16(24625), + 20: uint16(24626), + 21: uint16(24627), + 22: uint16(24628), + 23: uint16(24630), + 24: uint16(24631), + 25: uint16(24632), + 26: uint16(24633), + 27: uint16(24634), + 28: uint16(24637), + 29: uint16(24638), + 30: uint16(24640), + 31: uint16(24644), + 32: uint16(24645), + 33: uint16(24646), + 34: uint16(24647), + 35: uint16(24648), + 36: uint16(24649), + 37: uint16(24650), + 38: uint16(24652), + 39: uint16(24654), + 40: uint16(24655), + 41: uint16(24657), + 42: uint16(24659), + 43: uint16(24660), + 44: uint16(24662), + 45: uint16(24663), + 46: uint16(24664), + 47: uint16(24667), + 48: uint16(24668), + 49: uint16(24670), + 50: uint16(24671), + 51: uint16(24672), + 52: uint16(24673), + 53: uint16(24677), + 54: uint16(24678), + 55: uint16(24686), + 56: uint16(24689), + 57: uint16(24690), + 58: uint16(24692), + 59: uint16(24693), + 60: uint16(24695), + 61: uint16(24702), + 62: uint16(24704), + 63: uint16(24705), + 64: uint16(24706), + 65: uint16(24709), + 66: uint16(24710), + 67: uint16(24711), + 68: uint16(24712), + 69: uint16(24714), + 70: uint16(24715), + 71: uint16(24718), + 72: uint16(24719), + 73: uint16(24720), + 74: uint16(24721), + 75: uint16(24723), + 76: uint16(24725), + 77: uint16(24727), + 78: uint16(24728), + 79: uint16(24729), + 80: uint16(24732), + 81: uint16(24734), + 82: uint16(24737), + 83: uint16(24738), + 84: uint16(24740), + 85: uint16(24741), + 86: uint16(24743), + 87: uint16(24745), + 88: uint16(24746), + 89: uint16(24750), + 90: uint16(24752), + 91: uint16(24755), + 92: uint16(24757), + 93: uint16(24758), + 94: uint16(24759), + 95: uint16(24761), + 96: uint16(24762), + 97: uint16(24765), + 98: uint16(24766), + 99: uint16(24767), + 100: uint16(24768), + 101: uint16(24769), + 102: uint16(24770), + 103: uint16(24771), + 104: uint16(24772), + 105: uint16(24775), + 106: uint16(24776), + 107: uint16(24777), + 108: uint16(24780), + 109: uint16(24781), + 110: uint16(24782), + 111: uint16(24783), + 112: uint16(24784), + 113: uint16(24786), + 114: uint16(24787), + 115: uint16(24788), + 116: uint16(24790), + 117: uint16(24791), + 118: uint16(24793), + 119: uint16(24795), + 120: uint16(24798), + 121: uint16(24801), + 122: uint16(24802), + 123: uint16(24803), + 124: uint16(24804), + 125: uint16(24805), + 126: uint16(24810), + 127: uint16(24817), + 128: uint16(24818), + 129: uint16(24821), + 130: uint16(24823), + 131: uint16(24824), + 132: uint16(24827), + 133: uint16(24828), + 134: uint16(24829), + 135: uint16(24830), + 136: uint16(24831), + 137: uint16(24834), + 138: uint16(24835), + 139: uint16(24836), + 140: uint16(24837), + 141: uint16(24839), + 142: uint16(24842), + 143: uint16(24843), + 144: uint16(24844), + 145: uint16(24848), + 146: uint16(24849), + 147: uint16(24850), + 148: uint16(24851), + 149: uint16(24852), + 150: uint16(24854), + 151: uint16(24855), + 152: uint16(24856), + 153: uint16(24857), + 154: uint16(24859), + 155: uint16(24860), + 156: uint16(24861), + 157: uint16(24862), + 158: uint16(24865), + 159: uint16(24866), + 160: uint16(24869), + 161: uint16(24872), + 162: uint16(24873), + 163: uint16(24874), + 164: uint16(24876), + 165: uint16(24877), + 166: uint16(24878), + 167: uint16(24879), + 168: uint16(24880), + 169: uint16(24881), + 170: uint16(24882), + 171: uint16(24883), + 172: uint16(24884), + 173: uint16(24885), + 174: uint16(24886), + 175: uint16(24887), + 176: uint16(24888), + 177: uint16(24889), + 178: uint16(24890), + 179: uint16(24891), + 180: uint16(24892), + 181: uint16(24893), + 182: uint16(24894), + 183: uint16(24896), + 184: uint16(24897), + 185: uint16(24898), + 186: uint16(24899), + 187: uint16(24900), + 188: uint16(24901), + 189: uint16(24902), + }, + 16: { + 0: uint16(24903), + 1: uint16(24905), + 2: uint16(24907), + 3: uint16(24909), + 4: uint16(24911), + 5: uint16(24912), + 6: uint16(24914), + 7: uint16(24915), + 8: uint16(24916), + 9: uint16(24918), + 10: uint16(24919), + 11: uint16(24920), + 12: uint16(24921), + 13: uint16(24922), + 14: uint16(24923), + 15: uint16(24924), + 16: uint16(24926), + 17: uint16(24927), + 18: uint16(24928), + 19: uint16(24929), + 20: uint16(24931), + 21: uint16(24932), + 22: uint16(24933), + 23: uint16(24934), + 24: uint16(24937), + 25: uint16(24938), + 26: uint16(24939), + 27: uint16(24940), + 28: uint16(24941), + 29: uint16(24942), + 30: uint16(24943), + 31: uint16(24945), + 32: uint16(24946), + 33: uint16(24947), + 34: uint16(24948), + 35: uint16(24950), + 36: uint16(24952), + 37: uint16(24953), + 38: uint16(24954), + 39: uint16(24955), + 40: uint16(24956), + 41: uint16(24957), + 42: uint16(24958), + 43: uint16(24959), + 44: uint16(24960), + 45: uint16(24961), + 46: uint16(24962), + 47: uint16(24963), + 48: uint16(24964), + 49: uint16(24965), + 50: uint16(24966), + 51: uint16(24967), + 52: uint16(24968), + 53: uint16(24969), + 54: uint16(24970), + 55: uint16(24972), + 56: uint16(24973), + 57: uint16(24975), + 58: uint16(24976), + 59: uint16(24977), + 60: uint16(24978), + 61: uint16(24979), + 62: uint16(24981), + 63: uint16(24982), + 64: uint16(24983), + 65: uint16(24984), + 66: uint16(24985), + 67: uint16(24986), + 68: uint16(24987), + 69: uint16(24988), + 70: uint16(24990), + 71: uint16(24991), + 72: uint16(24992), + 73: uint16(24993), + 74: uint16(24994), + 75: uint16(24995), + 76: uint16(24996), + 77: uint16(24997), + 78: uint16(24998), + 79: uint16(25002), + 80: uint16(25003), + 81: uint16(25005), + 82: uint16(25006), + 83: uint16(25007), + 84: uint16(25008), + 85: uint16(25009), + 86: uint16(25010), + 87: uint16(25011), + 88: uint16(25012), + 89: uint16(25013), + 90: uint16(25014), + 91: uint16(25016), + 92: uint16(25017), + 93: uint16(25018), + 94: uint16(25019), + 95: uint16(25020), + 96: uint16(25021), + 97: uint16(25023), + 98: uint16(25024), + 99: uint16(25025), + 100: uint16(25027), + 101: uint16(25028), + 102: uint16(25029), + 103: uint16(25030), + 104: uint16(25031), + 105: uint16(25033), + 106: uint16(25036), + 107: uint16(25037), + 108: uint16(25038), + 109: uint16(25039), + 110: uint16(25040), + 111: uint16(25043), + 112: uint16(25045), + 113: uint16(25046), + 114: uint16(25047), + 115: uint16(25048), + 116: uint16(25049), + 117: uint16(25050), + 118: uint16(25051), + 119: uint16(25052), + 120: uint16(25053), + 121: uint16(25054), + 122: uint16(25055), + 123: uint16(25056), + 124: uint16(25057), + 125: uint16(25058), + 126: uint16(25059), + 127: uint16(25060), + 128: uint16(25061), + 129: uint16(25063), + 130: uint16(25064), + 131: uint16(25065), + 132: uint16(25066), + 133: uint16(25067), + 134: uint16(25068), + 135: uint16(25069), + 136: uint16(25070), + 137: uint16(25071), + 138: uint16(25072), + 139: uint16(25073), + 140: uint16(25074), + 141: uint16(25075), + 142: uint16(25076), + 143: uint16(25078), + 144: uint16(25079), + 145: uint16(25080), + 146: uint16(25081), + 147: uint16(25082), + 148: uint16(25083), + 149: uint16(25084), + 150: uint16(25085), + 151: uint16(25086), + 152: uint16(25088), + 153: uint16(25089), + 154: uint16(25090), + 155: uint16(25091), + 156: uint16(25092), + 157: uint16(25093), + 158: uint16(25095), + 159: uint16(25097), + 160: uint16(25107), + 161: uint16(25108), + 162: uint16(25113), + 163: uint16(25116), + 164: uint16(25117), + 165: uint16(25118), + 166: uint16(25120), + 167: uint16(25123), + 168: uint16(25126), + 169: uint16(25127), + 170: uint16(25128), + 171: uint16(25129), + 172: uint16(25131), + 173: uint16(25133), + 174: uint16(25135), + 175: uint16(25136), + 176: uint16(25137), + 177: uint16(25138), + 178: uint16(25141), + 179: uint16(25142), + 180: uint16(25144), + 181: uint16(25145), + 182: uint16(25146), + 183: uint16(25147), + 184: uint16(25148), + 185: uint16(25154), + 186: uint16(25156), + 187: uint16(25157), + 188: uint16(25158), + 189: uint16(25162), + }, + 17: { + 0: uint16(25167), + 1: uint16(25168), + 2: uint16(25173), + 3: uint16(25174), + 4: uint16(25175), + 5: uint16(25177), + 6: uint16(25178), + 7: uint16(25180), + 8: uint16(25181), + 9: uint16(25182), + 10: uint16(25183), + 11: uint16(25184), + 12: uint16(25185), + 13: uint16(25186), + 14: uint16(25188), + 15: uint16(25189), + 16: uint16(25192), + 17: uint16(25201), + 18: uint16(25202), + 19: uint16(25204), + 20: uint16(25205), + 21: uint16(25207), + 22: uint16(25208), + 23: uint16(25210), + 24: uint16(25211), + 25: uint16(25213), + 26: uint16(25217), + 27: uint16(25218), + 28: uint16(25219), + 29: uint16(25221), + 30: uint16(25222), + 31: uint16(25223), + 32: uint16(25224), + 33: uint16(25227), + 34: uint16(25228), + 35: uint16(25229), + 36: uint16(25230), + 37: uint16(25231), + 38: uint16(25232), + 39: uint16(25236), + 40: uint16(25241), + 41: uint16(25244), + 42: uint16(25245), + 43: uint16(25246), + 44: uint16(25251), + 45: uint16(25254), + 46: uint16(25255), + 47: uint16(25257), + 48: uint16(25258), + 49: uint16(25261), + 50: uint16(25262), + 51: uint16(25263), + 52: uint16(25264), + 53: uint16(25266), + 54: uint16(25267), + 55: uint16(25268), + 56: uint16(25270), + 57: uint16(25271), + 58: uint16(25272), + 59: uint16(25274), + 60: uint16(25278), + 61: uint16(25280), + 62: uint16(25281), + 63: uint16(25283), + 64: uint16(25291), + 65: uint16(25295), + 66: uint16(25297), + 67: uint16(25301), + 68: uint16(25309), + 69: uint16(25310), + 70: uint16(25312), + 71: uint16(25313), + 72: uint16(25316), + 73: uint16(25322), + 74: uint16(25323), + 75: uint16(25328), + 76: uint16(25330), + 77: uint16(25333), + 78: uint16(25336), + 79: uint16(25337), + 80: uint16(25338), + 81: uint16(25339), + 82: uint16(25344), + 83: uint16(25347), + 84: uint16(25348), + 85: uint16(25349), + 86: uint16(25350), + 87: uint16(25354), + 88: uint16(25355), + 89: uint16(25356), + 90: uint16(25357), + 91: uint16(25359), + 92: uint16(25360), + 93: uint16(25362), + 94: uint16(25363), + 95: uint16(25364), + 96: uint16(25365), + 97: uint16(25367), + 98: uint16(25368), + 99: uint16(25369), + 100: uint16(25372), + 101: uint16(25382), + 102: uint16(25383), + 103: uint16(25385), + 104: uint16(25388), + 105: uint16(25389), + 106: uint16(25390), + 107: uint16(25392), + 108: uint16(25393), + 109: uint16(25395), + 110: uint16(25396), + 111: uint16(25397), + 112: uint16(25398), + 113: uint16(25399), + 114: uint16(25400), + 115: uint16(25403), + 116: uint16(25404), + 117: uint16(25406), + 118: uint16(25407), + 119: uint16(25408), + 120: uint16(25409), + 121: uint16(25412), + 122: uint16(25415), + 123: uint16(25416), + 124: uint16(25418), + 125: uint16(25425), + 126: uint16(25426), + 127: uint16(25427), + 128: uint16(25428), + 129: uint16(25430), + 130: uint16(25431), + 131: uint16(25432), + 132: uint16(25433), + 133: uint16(25434), + 134: uint16(25435), + 135: uint16(25436), + 136: uint16(25437), + 137: uint16(25440), + 138: uint16(25444), + 139: uint16(25445), + 140: uint16(25446), + 141: uint16(25448), + 142: uint16(25450), + 143: uint16(25451), + 144: uint16(25452), + 145: uint16(25455), + 146: uint16(25456), + 147: uint16(25458), + 148: uint16(25459), + 149: uint16(25460), + 150: uint16(25461), + 151: uint16(25464), + 152: uint16(25465), + 153: uint16(25468), + 154: uint16(25469), + 155: uint16(25470), + 156: uint16(25471), + 157: uint16(25473), + 158: uint16(25475), + 159: uint16(25476), + 160: uint16(25477), + 161: uint16(25478), + 162: uint16(25483), + 163: uint16(25485), + 164: uint16(25489), + 165: uint16(25491), + 166: uint16(25492), + 167: uint16(25493), + 168: uint16(25495), + 169: uint16(25497), + 170: uint16(25498), + 171: uint16(25499), + 172: uint16(25500), + 173: uint16(25501), + 174: uint16(25502), + 175: uint16(25503), + 176: uint16(25505), + 177: uint16(25508), + 178: uint16(25510), + 179: uint16(25515), + 180: uint16(25519), + 181: uint16(25521), + 182: uint16(25522), + 183: uint16(25525), + 184: uint16(25526), + 185: uint16(25529), + 186: uint16(25531), + 187: uint16(25533), + 188: uint16(25535), + 189: uint16(25536), + }, + 18: { + 0: uint16(25537), + 1: uint16(25538), + 2: uint16(25539), + 3: uint16(25541), + 4: uint16(25543), + 5: uint16(25544), + 6: uint16(25546), + 7: uint16(25547), + 8: uint16(25548), + 9: uint16(25553), + 10: uint16(25555), + 11: uint16(25556), + 12: uint16(25557), + 13: uint16(25559), + 14: uint16(25560), + 15: uint16(25561), + 16: uint16(25562), + 17: uint16(25563), + 18: uint16(25564), + 19: uint16(25565), + 20: uint16(25567), + 21: uint16(25570), + 22: uint16(25572), + 23: uint16(25573), + 24: uint16(25574), + 25: uint16(25575), + 26: uint16(25576), + 27: uint16(25579), + 28: uint16(25580), + 29: uint16(25582), + 30: uint16(25583), + 31: uint16(25584), + 32: uint16(25585), + 33: uint16(25587), + 34: uint16(25589), + 35: uint16(25591), + 36: uint16(25593), + 37: uint16(25594), + 38: uint16(25595), + 39: uint16(25596), + 40: uint16(25598), + 41: uint16(25603), + 42: uint16(25604), + 43: uint16(25606), + 44: uint16(25607), + 45: uint16(25608), + 46: uint16(25609), + 47: uint16(25610), + 48: uint16(25613), + 49: uint16(25614), + 50: uint16(25617), + 51: uint16(25618), + 52: uint16(25621), + 53: uint16(25622), + 54: uint16(25623), + 55: uint16(25624), + 56: uint16(25625), + 57: uint16(25626), + 58: uint16(25629), + 59: uint16(25631), + 60: uint16(25634), + 61: uint16(25635), + 62: uint16(25636), + 63: uint16(25637), + 64: uint16(25639), + 65: uint16(25640), + 66: uint16(25641), + 67: uint16(25643), + 68: uint16(25646), + 69: uint16(25647), + 70: uint16(25648), + 71: uint16(25649), + 72: uint16(25650), + 73: uint16(25651), + 74: uint16(25653), + 75: uint16(25654), + 76: uint16(25655), + 77: uint16(25656), + 78: uint16(25657), + 79: uint16(25659), + 80: uint16(25660), + 81: uint16(25662), + 82: uint16(25664), + 83: uint16(25666), + 84: uint16(25667), + 85: uint16(25673), + 86: uint16(25675), + 87: uint16(25676), + 88: uint16(25677), + 89: uint16(25678), + 90: uint16(25679), + 91: uint16(25680), + 92: uint16(25681), + 93: uint16(25683), + 94: uint16(25685), + 95: uint16(25686), + 96: uint16(25687), + 97: uint16(25689), + 98: uint16(25690), + 99: uint16(25691), + 100: uint16(25692), + 101: uint16(25693), + 102: uint16(25695), + 103: uint16(25696), + 104: uint16(25697), + 105: uint16(25698), + 106: uint16(25699), + 107: uint16(25700), + 108: uint16(25701), + 109: uint16(25702), + 110: uint16(25704), + 111: uint16(25706), + 112: uint16(25707), + 113: uint16(25708), + 114: uint16(25710), + 115: uint16(25711), + 116: uint16(25712), + 117: uint16(25713), + 118: uint16(25714), + 119: uint16(25715), + 120: uint16(25716), + 121: uint16(25717), + 122: uint16(25718), + 123: uint16(25719), + 124: uint16(25723), + 125: uint16(25724), + 126: uint16(25725), + 127: uint16(25726), + 128: uint16(25727), + 129: uint16(25728), + 130: uint16(25729), + 131: uint16(25731), + 132: uint16(25734), + 133: uint16(25736), + 134: uint16(25737), + 135: uint16(25738), + 136: uint16(25739), + 137: uint16(25740), + 138: uint16(25741), + 139: uint16(25742), + 140: uint16(25743), + 141: uint16(25744), + 142: uint16(25747), + 143: uint16(25748), + 144: uint16(25751), + 145: uint16(25752), + 146: uint16(25754), + 147: uint16(25755), + 148: uint16(25756), + 149: uint16(25757), + 150: uint16(25759), + 151: uint16(25760), + 152: uint16(25761), + 153: uint16(25762), + 154: uint16(25763), + 155: uint16(25765), + 156: uint16(25766), + 157: uint16(25767), + 158: uint16(25768), + 159: uint16(25770), + 160: uint16(25771), + 161: uint16(25775), + 162: uint16(25777), + 163: uint16(25778), + 164: uint16(25779), + 165: uint16(25780), + 166: uint16(25782), + 167: uint16(25785), + 168: uint16(25787), + 169: uint16(25789), + 170: uint16(25790), + 171: uint16(25791), + 172: uint16(25793), + 173: uint16(25795), + 174: uint16(25796), + 175: uint16(25798), + 176: uint16(25799), + 177: uint16(25800), + 178: uint16(25801), + 179: uint16(25802), + 180: uint16(25803), + 181: uint16(25804), + 182: uint16(25807), + 183: uint16(25809), + 184: uint16(25811), + 185: uint16(25812), + 186: uint16(25813), + 187: uint16(25814), + 188: uint16(25817), + 189: uint16(25818), + }, + 19: { + 0: uint16(25819), + 1: uint16(25820), + 2: uint16(25821), + 3: uint16(25823), + 4: uint16(25824), + 5: uint16(25825), + 6: uint16(25827), + 7: uint16(25829), + 8: uint16(25831), + 9: uint16(25832), + 10: uint16(25833), + 11: uint16(25834), + 12: uint16(25835), + 13: uint16(25836), + 14: uint16(25837), + 15: uint16(25838), + 16: uint16(25839), + 17: uint16(25840), + 18: uint16(25841), + 19: uint16(25842), + 20: uint16(25843), + 21: uint16(25844), + 22: uint16(25845), + 23: uint16(25846), + 24: uint16(25847), + 25: uint16(25848), + 26: uint16(25849), + 27: uint16(25850), + 28: uint16(25851), + 29: uint16(25852), + 30: uint16(25853), + 31: uint16(25854), + 32: uint16(25855), + 33: uint16(25857), + 34: uint16(25858), + 35: uint16(25859), + 36: uint16(25860), + 37: uint16(25861), + 38: uint16(25862), + 39: uint16(25863), + 40: uint16(25864), + 41: uint16(25866), + 42: uint16(25867), + 43: uint16(25868), + 44: uint16(25869), + 45: uint16(25870), + 46: uint16(25871), + 47: uint16(25872), + 48: uint16(25873), + 49: uint16(25875), + 50: uint16(25876), + 51: uint16(25877), + 52: uint16(25878), + 53: uint16(25879), + 54: uint16(25881), + 55: uint16(25882), + 56: uint16(25883), + 57: uint16(25884), + 58: uint16(25885), + 59: uint16(25886), + 60: uint16(25887), + 61: uint16(25888), + 62: uint16(25889), + 63: uint16(25890), + 64: uint16(25891), + 65: uint16(25892), + 66: uint16(25894), + 67: uint16(25895), + 68: uint16(25896), + 69: uint16(25897), + 70: uint16(25898), + 71: uint16(25900), + 72: uint16(25901), + 73: uint16(25904), + 74: uint16(25905), + 75: uint16(25906), + 76: uint16(25907), + 77: uint16(25911), + 78: uint16(25914), + 79: uint16(25916), + 80: uint16(25917), + 81: uint16(25920), + 82: uint16(25921), + 83: uint16(25922), + 84: uint16(25923), + 85: uint16(25924), + 86: uint16(25926), + 87: uint16(25927), + 88: uint16(25930), + 89: uint16(25931), + 90: uint16(25933), + 91: uint16(25934), + 92: uint16(25936), + 93: uint16(25938), + 94: uint16(25939), + 95: uint16(25940), + 96: uint16(25943), + 97: uint16(25944), + 98: uint16(25946), + 99: uint16(25948), + 100: uint16(25951), + 101: uint16(25952), + 102: uint16(25953), + 103: uint16(25956), + 104: uint16(25957), + 105: uint16(25959), + 106: uint16(25960), + 107: uint16(25961), + 108: uint16(25962), + 109: uint16(25965), + 110: uint16(25966), + 111: uint16(25967), + 112: uint16(25969), + 113: uint16(25971), + 114: uint16(25973), + 115: uint16(25974), + 116: uint16(25976), + 117: uint16(25977), + 118: uint16(25978), + 119: uint16(25979), + 120: uint16(25980), + 121: uint16(25981), + 122: uint16(25982), + 123: uint16(25983), + 124: uint16(25984), + 125: uint16(25985), + 126: uint16(25986), + 127: uint16(25987), + 128: uint16(25988), + 129: uint16(25989), + 130: uint16(25990), + 131: uint16(25992), + 132: uint16(25993), + 133: uint16(25994), + 134: uint16(25997), + 135: uint16(25998), + 136: uint16(25999), + 137: uint16(26002), + 138: uint16(26004), + 139: uint16(26005), + 140: uint16(26006), + 141: uint16(26008), + 142: uint16(26010), + 143: uint16(26013), + 144: uint16(26014), + 145: uint16(26016), + 146: uint16(26018), + 147: uint16(26019), + 148: uint16(26022), + 149: uint16(26024), + 150: uint16(26026), + 151: uint16(26028), + 152: uint16(26030), + 153: uint16(26033), + 154: uint16(26034), + 155: uint16(26035), + 156: uint16(26036), + 157: uint16(26037), + 158: uint16(26038), + 159: uint16(26039), + 160: uint16(26040), + 161: uint16(26042), + 162: uint16(26043), + 163: uint16(26046), + 164: uint16(26047), + 165: uint16(26048), + 166: uint16(26050), + 167: uint16(26055), + 168: uint16(26056), + 169: uint16(26057), + 170: uint16(26058), + 171: uint16(26061), + 172: uint16(26064), + 173: uint16(26065), + 174: uint16(26067), + 175: uint16(26068), + 176: uint16(26069), + 177: uint16(26072), + 178: uint16(26073), + 179: uint16(26074), + 180: uint16(26075), + 181: uint16(26076), + 182: uint16(26077), + 183: uint16(26078), + 184: uint16(26079), + 185: uint16(26081), + 186: uint16(26083), + 187: uint16(26084), + 188: uint16(26090), + 189: uint16(26091), + }, + 20: { + 0: uint16(26098), + 1: uint16(26099), + 2: uint16(26100), + 3: uint16(26101), + 4: uint16(26104), + 5: uint16(26105), + 6: uint16(26107), + 7: uint16(26108), + 8: uint16(26109), + 9: uint16(26110), + 10: uint16(26111), + 11: uint16(26113), + 12: uint16(26116), + 13: uint16(26117), + 14: uint16(26119), + 15: uint16(26120), + 16: uint16(26121), + 17: uint16(26123), + 18: uint16(26125), + 19: uint16(26128), + 20: uint16(26129), + 21: uint16(26130), + 22: uint16(26134), + 23: uint16(26135), + 24: uint16(26136), + 25: uint16(26138), + 26: uint16(26139), + 27: uint16(26140), + 28: uint16(26142), + 29: uint16(26145), + 30: uint16(26146), + 31: uint16(26147), + 32: uint16(26148), + 33: uint16(26150), + 34: uint16(26153), + 35: uint16(26154), + 36: uint16(26155), + 37: uint16(26156), + 38: uint16(26158), + 39: uint16(26160), + 40: uint16(26162), + 41: uint16(26163), + 42: uint16(26167), + 43: uint16(26168), + 44: uint16(26169), + 45: uint16(26170), + 46: uint16(26171), + 47: uint16(26173), + 48: uint16(26175), + 49: uint16(26176), + 50: uint16(26178), + 51: uint16(26180), + 52: uint16(26181), + 53: uint16(26182), + 54: uint16(26183), + 55: uint16(26184), + 56: uint16(26185), + 57: uint16(26186), + 58: uint16(26189), + 59: uint16(26190), + 60: uint16(26192), + 61: uint16(26193), + 62: uint16(26200), + 63: uint16(26201), + 64: uint16(26203), + 65: uint16(26204), + 66: uint16(26205), + 67: uint16(26206), + 68: uint16(26208), + 69: uint16(26210), + 70: uint16(26211), + 71: uint16(26213), + 72: uint16(26215), + 73: uint16(26217), + 74: uint16(26218), + 75: uint16(26219), + 76: uint16(26220), + 77: uint16(26221), + 78: uint16(26225), + 79: uint16(26226), + 80: uint16(26227), + 81: uint16(26229), + 82: uint16(26232), + 83: uint16(26233), + 84: uint16(26235), + 85: uint16(26236), + 86: uint16(26237), + 87: uint16(26239), + 88: uint16(26240), + 89: uint16(26241), + 90: uint16(26243), + 91: uint16(26245), + 92: uint16(26246), + 93: uint16(26248), + 94: uint16(26249), + 95: uint16(26250), + 96: uint16(26251), + 97: uint16(26253), + 98: uint16(26254), + 99: uint16(26255), + 100: uint16(26256), + 101: uint16(26258), + 102: uint16(26259), + 103: uint16(26260), + 104: uint16(26261), + 105: uint16(26264), + 106: uint16(26265), + 107: uint16(26266), + 108: uint16(26267), + 109: uint16(26268), + 110: uint16(26270), + 111: uint16(26271), + 112: uint16(26272), + 113: uint16(26273), + 114: uint16(26274), + 115: uint16(26275), + 116: uint16(26276), + 117: uint16(26277), + 118: uint16(26278), + 119: uint16(26281), + 120: uint16(26282), + 121: uint16(26283), + 122: uint16(26284), + 123: uint16(26285), + 124: uint16(26287), + 125: uint16(26288), + 126: uint16(26289), + 127: uint16(26290), + 128: uint16(26291), + 129: uint16(26293), + 130: uint16(26294), + 131: uint16(26295), + 132: uint16(26296), + 133: uint16(26298), + 134: uint16(26299), + 135: uint16(26300), + 136: uint16(26301), + 137: uint16(26303), + 138: uint16(26304), + 139: uint16(26305), + 140: uint16(26306), + 141: uint16(26307), + 142: uint16(26308), + 143: uint16(26309), + 144: uint16(26310), + 145: uint16(26311), + 146: uint16(26312), + 147: uint16(26313), + 148: uint16(26314), + 149: uint16(26315), + 150: uint16(26316), + 151: uint16(26317), + 152: uint16(26318), + 153: uint16(26319), + 154: uint16(26320), + 155: uint16(26321), + 156: uint16(26322), + 157: uint16(26323), + 158: uint16(26324), + 159: uint16(26325), + 160: uint16(26326), + 161: uint16(26327), + 162: uint16(26328), + 163: uint16(26330), + 164: uint16(26334), + 165: uint16(26335), + 166: uint16(26336), + 167: uint16(26337), + 168: uint16(26338), + 169: uint16(26339), + 170: uint16(26340), + 171: uint16(26341), + 172: uint16(26343), + 173: uint16(26344), + 174: uint16(26346), + 175: uint16(26347), + 176: uint16(26348), + 177: uint16(26349), + 178: uint16(26350), + 179: uint16(26351), + 180: uint16(26353), + 181: uint16(26357), + 182: uint16(26358), + 183: uint16(26360), + 184: uint16(26362), + 185: uint16(26363), + 186: uint16(26365), + 187: uint16(26369), + 188: uint16(26370), + 189: uint16(26371), + }, + 21: { + 0: uint16(26372), + 1: uint16(26373), + 2: uint16(26374), + 3: uint16(26375), + 4: uint16(26380), + 5: uint16(26382), + 6: uint16(26383), + 7: uint16(26385), + 8: uint16(26386), + 9: uint16(26387), + 10: uint16(26390), + 11: uint16(26392), + 12: uint16(26393), + 13: uint16(26394), + 14: uint16(26396), + 15: uint16(26398), + 16: uint16(26400), + 17: uint16(26401), + 18: uint16(26402), + 19: uint16(26403), + 20: uint16(26404), + 21: uint16(26405), + 22: uint16(26407), + 23: uint16(26409), + 24: uint16(26414), + 25: uint16(26416), + 26: uint16(26418), + 27: uint16(26419), + 28: uint16(26422), + 29: uint16(26423), + 30: uint16(26424), + 31: uint16(26425), + 32: uint16(26427), + 33: uint16(26428), + 34: uint16(26430), + 35: uint16(26431), + 36: uint16(26433), + 37: uint16(26436), + 38: uint16(26437), + 39: uint16(26439), + 40: uint16(26442), + 41: uint16(26443), + 42: uint16(26445), + 43: uint16(26450), + 44: uint16(26452), + 45: uint16(26453), + 46: uint16(26455), + 47: uint16(26456), + 48: uint16(26457), + 49: uint16(26458), + 50: uint16(26459), + 51: uint16(26461), + 52: uint16(26466), + 53: uint16(26467), + 54: uint16(26468), + 55: uint16(26470), + 56: uint16(26471), + 57: uint16(26475), + 58: uint16(26476), + 59: uint16(26478), + 60: uint16(26481), + 61: uint16(26484), + 62: uint16(26486), + 63: uint16(26488), + 64: uint16(26489), + 65: uint16(26490), + 66: uint16(26491), + 67: uint16(26493), + 68: uint16(26496), + 69: uint16(26498), + 70: uint16(26499), + 71: uint16(26501), + 72: uint16(26502), + 73: uint16(26504), + 74: uint16(26506), + 75: uint16(26508), + 76: uint16(26509), + 77: uint16(26510), + 78: uint16(26511), + 79: uint16(26513), + 80: uint16(26514), + 81: uint16(26515), + 82: uint16(26516), + 83: uint16(26518), + 84: uint16(26521), + 85: uint16(26523), + 86: uint16(26527), + 87: uint16(26528), + 88: uint16(26529), + 89: uint16(26532), + 90: uint16(26534), + 91: uint16(26537), + 92: uint16(26540), + 93: uint16(26542), + 94: uint16(26545), + 95: uint16(26546), + 96: uint16(26548), + 97: uint16(26553), + 98: uint16(26554), + 99: uint16(26555), + 100: uint16(26556), + 101: uint16(26557), + 102: uint16(26558), + 103: uint16(26559), + 104: uint16(26560), + 105: uint16(26562), + 106: uint16(26565), + 107: uint16(26566), + 108: uint16(26567), + 109: uint16(26568), + 110: uint16(26569), + 111: uint16(26570), + 112: uint16(26571), + 113: uint16(26572), + 114: uint16(26573), + 115: uint16(26574), + 116: uint16(26581), + 117: uint16(26582), + 118: uint16(26583), + 119: uint16(26587), + 120: uint16(26591), + 121: uint16(26593), + 122: uint16(26595), + 123: uint16(26596), + 124: uint16(26598), + 125: uint16(26599), + 126: uint16(26600), + 127: uint16(26602), + 128: uint16(26603), + 129: uint16(26605), + 130: uint16(26606), + 131: uint16(26610), + 132: uint16(26613), + 133: uint16(26614), + 134: uint16(26615), + 135: uint16(26616), + 136: uint16(26617), + 137: uint16(26618), + 138: uint16(26619), + 139: uint16(26620), + 140: uint16(26622), + 141: uint16(26625), + 142: uint16(26626), + 143: uint16(26627), + 144: uint16(26628), + 145: uint16(26630), + 146: uint16(26637), + 147: uint16(26640), + 148: uint16(26642), + 149: uint16(26644), + 150: uint16(26645), + 151: uint16(26648), + 152: uint16(26649), + 153: uint16(26650), + 154: uint16(26651), + 155: uint16(26652), + 156: uint16(26654), + 157: uint16(26655), + 158: uint16(26656), + 159: uint16(26658), + 160: uint16(26659), + 161: uint16(26660), + 162: uint16(26661), + 163: uint16(26662), + 164: uint16(26663), + 165: uint16(26664), + 166: uint16(26667), + 167: uint16(26668), + 168: uint16(26669), + 169: uint16(26670), + 170: uint16(26671), + 171: uint16(26672), + 172: uint16(26673), + 173: uint16(26676), + 174: uint16(26677), + 175: uint16(26678), + 176: uint16(26682), + 177: uint16(26683), + 178: uint16(26687), + 179: uint16(26695), + 180: uint16(26699), + 181: uint16(26701), + 182: uint16(26703), + 183: uint16(26706), + 184: uint16(26710), + 185: uint16(26711), + 186: uint16(26712), + 187: uint16(26713), + 188: uint16(26714), + 189: uint16(26715), + }, + 22: { + 0: uint16(26716), + 1: uint16(26717), + 2: uint16(26718), + 3: uint16(26719), + 4: uint16(26730), + 5: uint16(26732), + 6: uint16(26733), + 7: uint16(26734), + 8: uint16(26735), + 9: uint16(26736), + 10: uint16(26737), + 11: uint16(26738), + 12: uint16(26739), + 13: uint16(26741), + 14: uint16(26744), + 15: uint16(26745), + 16: uint16(26746), + 17: uint16(26747), + 18: uint16(26748), + 19: uint16(26749), + 20: uint16(26750), + 21: uint16(26751), + 22: uint16(26752), + 23: uint16(26754), + 24: uint16(26756), + 25: uint16(26759), + 26: uint16(26760), + 27: uint16(26761), + 28: uint16(26762), + 29: uint16(26763), + 30: uint16(26764), + 31: uint16(26765), + 32: uint16(26766), + 33: uint16(26768), + 34: uint16(26769), + 35: uint16(26770), + 36: uint16(26772), + 37: uint16(26773), + 38: uint16(26774), + 39: uint16(26776), + 40: uint16(26777), + 41: uint16(26778), + 42: uint16(26779), + 43: uint16(26780), + 44: uint16(26781), + 45: uint16(26782), + 46: uint16(26783), + 47: uint16(26784), + 48: uint16(26785), + 49: uint16(26787), + 50: uint16(26788), + 51: uint16(26789), + 52: uint16(26793), + 53: uint16(26794), + 54: uint16(26795), + 55: uint16(26796), + 56: uint16(26798), + 57: uint16(26801), + 58: uint16(26802), + 59: uint16(26804), + 60: uint16(26806), + 61: uint16(26807), + 62: uint16(26808), + 63: uint16(26809), + 64: uint16(26810), + 65: uint16(26811), + 66: uint16(26812), + 67: uint16(26813), + 68: uint16(26814), + 69: uint16(26815), + 70: uint16(26817), + 71: uint16(26819), + 72: uint16(26820), + 73: uint16(26821), + 74: uint16(26822), + 75: uint16(26823), + 76: uint16(26824), + 77: uint16(26826), + 78: uint16(26828), + 79: uint16(26830), + 80: uint16(26831), + 81: uint16(26832), + 82: uint16(26833), + 83: uint16(26835), + 84: uint16(26836), + 85: uint16(26838), + 86: uint16(26839), + 87: uint16(26841), + 88: uint16(26843), + 89: uint16(26844), + 90: uint16(26845), + 91: uint16(26846), + 92: uint16(26847), + 93: uint16(26849), + 94: uint16(26850), + 95: uint16(26852), + 96: uint16(26853), + 97: uint16(26854), + 98: uint16(26855), + 99: uint16(26856), + 100: uint16(26857), + 101: uint16(26858), + 102: uint16(26859), + 103: uint16(26860), + 104: uint16(26861), + 105: uint16(26863), + 106: uint16(26866), + 107: uint16(26867), + 108: uint16(26868), + 109: uint16(26870), + 110: uint16(26871), + 111: uint16(26872), + 112: uint16(26875), + 113: uint16(26877), + 114: uint16(26878), + 115: uint16(26879), + 116: uint16(26880), + 117: uint16(26882), + 118: uint16(26883), + 119: uint16(26884), + 120: uint16(26886), + 121: uint16(26887), + 122: uint16(26888), + 123: uint16(26889), + 124: uint16(26890), + 125: uint16(26892), + 126: uint16(26895), + 127: uint16(26897), + 128: uint16(26899), + 129: uint16(26900), + 130: uint16(26901), + 131: uint16(26902), + 132: uint16(26903), + 133: uint16(26904), + 134: uint16(26905), + 135: uint16(26906), + 136: uint16(26907), + 137: uint16(26908), + 138: uint16(26909), + 139: uint16(26910), + 140: uint16(26913), + 141: uint16(26914), + 142: uint16(26915), + 143: uint16(26917), + 144: uint16(26918), + 145: uint16(26919), + 146: uint16(26920), + 147: uint16(26921), + 148: uint16(26922), + 149: uint16(26923), + 150: uint16(26924), + 151: uint16(26926), + 152: uint16(26927), + 153: uint16(26929), + 154: uint16(26930), + 155: uint16(26931), + 156: uint16(26933), + 157: uint16(26934), + 158: uint16(26935), + 159: uint16(26936), + 160: uint16(26938), + 161: uint16(26939), + 162: uint16(26940), + 163: uint16(26942), + 164: uint16(26944), + 165: uint16(26945), + 166: uint16(26947), + 167: uint16(26948), + 168: uint16(26949), + 169: uint16(26950), + 170: uint16(26951), + 171: uint16(26952), + 172: uint16(26953), + 173: uint16(26954), + 174: uint16(26955), + 175: uint16(26956), + 176: uint16(26957), + 177: uint16(26958), + 178: uint16(26959), + 179: uint16(26960), + 180: uint16(26961), + 181: uint16(26962), + 182: uint16(26963), + 183: uint16(26965), + 184: uint16(26966), + 185: uint16(26968), + 186: uint16(26969), + 187: uint16(26971), + 188: uint16(26972), + 189: uint16(26975), + }, + 23: { + 0: uint16(26977), + 1: uint16(26978), + 2: uint16(26980), + 3: uint16(26981), + 4: uint16(26983), + 5: uint16(26984), + 6: uint16(26985), + 7: uint16(26986), + 8: uint16(26988), + 9: uint16(26989), + 10: uint16(26991), + 11: uint16(26992), + 12: uint16(26994), + 13: uint16(26995), + 14: uint16(26996), + 15: uint16(26997), + 16: uint16(26998), + 17: uint16(27002), + 18: uint16(27003), + 19: uint16(27005), + 20: uint16(27006), + 21: uint16(27007), + 22: uint16(27009), + 23: uint16(27011), + 24: uint16(27013), + 25: uint16(27018), + 26: uint16(27019), + 27: uint16(27020), + 28: uint16(27022), + 29: uint16(27023), + 30: uint16(27024), + 31: uint16(27025), + 32: uint16(27026), + 33: uint16(27027), + 34: uint16(27030), + 35: uint16(27031), + 36: uint16(27033), + 37: uint16(27034), + 38: uint16(27037), + 39: uint16(27038), + 40: uint16(27039), + 41: uint16(27040), + 42: uint16(27041), + 43: uint16(27042), + 44: uint16(27043), + 45: uint16(27044), + 46: uint16(27045), + 47: uint16(27046), + 48: uint16(27049), + 49: uint16(27050), + 50: uint16(27052), + 51: uint16(27054), + 52: uint16(27055), + 53: uint16(27056), + 54: uint16(27058), + 55: uint16(27059), + 56: uint16(27061), + 57: uint16(27062), + 58: uint16(27064), + 59: uint16(27065), + 60: uint16(27066), + 61: uint16(27068), + 62: uint16(27069), + 63: uint16(27070), + 64: uint16(27071), + 65: uint16(27072), + 66: uint16(27074), + 67: uint16(27075), + 68: uint16(27076), + 69: uint16(27077), + 70: uint16(27078), + 71: uint16(27079), + 72: uint16(27080), + 73: uint16(27081), + 74: uint16(27083), + 75: uint16(27085), + 76: uint16(27087), + 77: uint16(27089), + 78: uint16(27090), + 79: uint16(27091), + 80: uint16(27093), + 81: uint16(27094), + 82: uint16(27095), + 83: uint16(27096), + 84: uint16(27097), + 85: uint16(27098), + 86: uint16(27100), + 87: uint16(27101), + 88: uint16(27102), + 89: uint16(27105), + 90: uint16(27106), + 91: uint16(27107), + 92: uint16(27108), + 93: uint16(27109), + 94: uint16(27110), + 95: uint16(27111), + 96: uint16(27112), + 97: uint16(27113), + 98: uint16(27114), + 99: uint16(27115), + 100: uint16(27116), + 101: uint16(27118), + 102: uint16(27119), + 103: uint16(27120), + 104: uint16(27121), + 105: uint16(27123), + 106: uint16(27124), + 107: uint16(27125), + 108: uint16(27126), + 109: uint16(27127), + 110: uint16(27128), + 111: uint16(27129), + 112: uint16(27130), + 113: uint16(27131), + 114: uint16(27132), + 115: uint16(27134), + 116: uint16(27136), + 117: uint16(27137), + 118: uint16(27138), + 119: uint16(27139), + 120: uint16(27140), + 121: uint16(27141), + 122: uint16(27142), + 123: uint16(27143), + 124: uint16(27144), + 125: uint16(27145), + 126: uint16(27147), + 127: uint16(27148), + 128: uint16(27149), + 129: uint16(27150), + 130: uint16(27151), + 131: uint16(27152), + 132: uint16(27153), + 133: uint16(27154), + 134: uint16(27155), + 135: uint16(27156), + 136: uint16(27157), + 137: uint16(27158), + 138: uint16(27161), + 139: uint16(27162), + 140: uint16(27163), + 141: uint16(27164), + 142: uint16(27165), + 143: uint16(27166), + 144: uint16(27168), + 145: uint16(27170), + 146: uint16(27171), + 147: uint16(27172), + 148: uint16(27173), + 149: uint16(27174), + 150: uint16(27175), + 151: uint16(27177), + 152: uint16(27179), + 153: uint16(27180), + 154: uint16(27181), + 155: uint16(27182), + 156: uint16(27184), + 157: uint16(27186), + 158: uint16(27187), + 159: uint16(27188), + 160: uint16(27190), + 161: uint16(27191), + 162: uint16(27192), + 163: uint16(27193), + 164: uint16(27194), + 165: uint16(27195), + 166: uint16(27196), + 167: uint16(27199), + 168: uint16(27200), + 169: uint16(27201), + 170: uint16(27202), + 171: uint16(27203), + 172: uint16(27205), + 173: uint16(27206), + 174: uint16(27208), + 175: uint16(27209), + 176: uint16(27210), + 177: uint16(27211), + 178: uint16(27212), + 179: uint16(27213), + 180: uint16(27214), + 181: uint16(27215), + 182: uint16(27217), + 183: uint16(27218), + 184: uint16(27219), + 185: uint16(27220), + 186: uint16(27221), + 187: uint16(27222), + 188: uint16(27223), + 189: uint16(27226), + }, + 24: { + 0: uint16(27228), + 1: uint16(27229), + 2: uint16(27230), + 3: uint16(27231), + 4: uint16(27232), + 5: uint16(27234), + 6: uint16(27235), + 7: uint16(27236), + 8: uint16(27238), + 9: uint16(27239), + 10: uint16(27240), + 11: uint16(27241), + 12: uint16(27242), + 13: uint16(27243), + 14: uint16(27244), + 15: uint16(27245), + 16: uint16(27246), + 17: uint16(27247), + 18: uint16(27248), + 19: uint16(27250), + 20: uint16(27251), + 21: uint16(27252), + 22: uint16(27253), + 23: uint16(27254), + 24: uint16(27255), + 25: uint16(27256), + 26: uint16(27258), + 27: uint16(27259), + 28: uint16(27261), + 29: uint16(27262), + 30: uint16(27263), + 31: uint16(27265), + 32: uint16(27266), + 33: uint16(27267), + 34: uint16(27269), + 35: uint16(27270), + 36: uint16(27271), + 37: uint16(27272), + 38: uint16(27273), + 39: uint16(27274), + 40: uint16(27275), + 41: uint16(27276), + 42: uint16(27277), + 43: uint16(27279), + 44: uint16(27282), + 45: uint16(27283), + 46: uint16(27284), + 47: uint16(27285), + 48: uint16(27286), + 49: uint16(27288), + 50: uint16(27289), + 51: uint16(27290), + 52: uint16(27291), + 53: uint16(27292), + 54: uint16(27293), + 55: uint16(27294), + 56: uint16(27295), + 57: uint16(27297), + 58: uint16(27298), + 59: uint16(27299), + 60: uint16(27300), + 61: uint16(27301), + 62: uint16(27302), + 63: uint16(27303), + 64: uint16(27304), + 65: uint16(27306), + 66: uint16(27309), + 67: uint16(27310), + 68: uint16(27311), + 69: uint16(27312), + 70: uint16(27313), + 71: uint16(27314), + 72: uint16(27315), + 73: uint16(27316), + 74: uint16(27317), + 75: uint16(27318), + 76: uint16(27319), + 77: uint16(27320), + 78: uint16(27321), + 79: uint16(27322), + 80: uint16(27323), + 81: uint16(27324), + 82: uint16(27325), + 83: uint16(27326), + 84: uint16(27327), + 85: uint16(27328), + 86: uint16(27329), + 87: uint16(27330), + 88: uint16(27331), + 89: uint16(27332), + 90: uint16(27333), + 91: uint16(27334), + 92: uint16(27335), + 93: uint16(27336), + 94: uint16(27337), + 95: uint16(27338), + 96: uint16(27339), + 97: uint16(27340), + 98: uint16(27341), + 99: uint16(27342), + 100: uint16(27343), + 101: uint16(27344), + 102: uint16(27345), + 103: uint16(27346), + 104: uint16(27347), + 105: uint16(27348), + 106: uint16(27349), + 107: uint16(27350), + 108: uint16(27351), + 109: uint16(27352), + 110: uint16(27353), + 111: uint16(27354), + 112: uint16(27355), + 113: uint16(27356), + 114: uint16(27357), + 115: uint16(27358), + 116: uint16(27359), + 117: uint16(27360), + 118: uint16(27361), + 119: uint16(27362), + 120: uint16(27363), + 121: uint16(27364), + 122: uint16(27365), + 123: uint16(27366), + 124: uint16(27367), + 125: uint16(27368), + 126: uint16(27369), + 127: uint16(27370), + 128: uint16(27371), + 129: uint16(27372), + 130: uint16(27373), + 131: uint16(27374), + 132: uint16(27375), + 133: uint16(27376), + 134: uint16(27377), + 135: uint16(27378), + 136: uint16(27379), + 137: uint16(27380), + 138: uint16(27381), + 139: uint16(27382), + 140: uint16(27383), + 141: uint16(27384), + 142: uint16(27385), + 143: uint16(27386), + 144: uint16(27387), + 145: uint16(27388), + 146: uint16(27389), + 147: uint16(27390), + 148: uint16(27391), + 149: uint16(27392), + 150: uint16(27393), + 151: uint16(27394), + 152: uint16(27395), + 153: uint16(27396), + 154: uint16(27397), + 155: uint16(27398), + 156: uint16(27399), + 157: uint16(27400), + 158: uint16(27401), + 159: uint16(27402), + 160: uint16(27403), + 161: uint16(27404), + 162: uint16(27405), + 163: uint16(27406), + 164: uint16(27407), + 165: uint16(27408), + 166: uint16(27409), + 167: uint16(27410), + 168: uint16(27411), + 169: uint16(27412), + 170: uint16(27413), + 171: uint16(27414), + 172: uint16(27415), + 173: uint16(27416), + 174: uint16(27417), + 175: uint16(27418), + 176: uint16(27419), + 177: uint16(27420), + 178: uint16(27421), + 179: uint16(27422), + 180: uint16(27423), + 181: uint16(27429), + 182: uint16(27430), + 183: uint16(27432), + 184: uint16(27433), + 185: uint16(27434), + 186: uint16(27435), + 187: uint16(27436), + 188: uint16(27437), + 189: uint16(27438), + }, + 25: { + 0: uint16(27439), + 1: uint16(27440), + 2: uint16(27441), + 3: uint16(27443), + 4: uint16(27444), + 5: uint16(27445), + 6: uint16(27446), + 7: uint16(27448), + 8: uint16(27451), + 9: uint16(27452), + 10: uint16(27453), + 11: uint16(27455), + 12: uint16(27456), + 13: uint16(27457), + 14: uint16(27458), + 15: uint16(27460), + 16: uint16(27461), + 17: uint16(27464), + 18: uint16(27466), + 19: uint16(27467), + 20: uint16(27469), + 21: uint16(27470), + 22: uint16(27471), + 23: uint16(27472), + 24: uint16(27473), + 25: uint16(27474), + 26: uint16(27475), + 27: uint16(27476), + 28: uint16(27477), + 29: uint16(27478), + 30: uint16(27479), + 31: uint16(27480), + 32: uint16(27482), + 33: uint16(27483), + 34: uint16(27484), + 35: uint16(27485), + 36: uint16(27486), + 37: uint16(27487), + 38: uint16(27488), + 39: uint16(27489), + 40: uint16(27496), + 41: uint16(27497), + 42: uint16(27499), + 43: uint16(27500), + 44: uint16(27501), + 45: uint16(27502), + 46: uint16(27503), + 47: uint16(27504), + 48: uint16(27505), + 49: uint16(27506), + 50: uint16(27507), + 51: uint16(27508), + 52: uint16(27509), + 53: uint16(27510), + 54: uint16(27511), + 55: uint16(27512), + 56: uint16(27514), + 57: uint16(27517), + 58: uint16(27518), + 59: uint16(27519), + 60: uint16(27520), + 61: uint16(27525), + 62: uint16(27528), + 63: uint16(27532), + 64: uint16(27534), + 65: uint16(27535), + 66: uint16(27536), + 67: uint16(27537), + 68: uint16(27540), + 69: uint16(27541), + 70: uint16(27543), + 71: uint16(27544), + 72: uint16(27545), + 73: uint16(27548), + 74: uint16(27549), + 75: uint16(27550), + 76: uint16(27551), + 77: uint16(27552), + 78: uint16(27554), + 79: uint16(27555), + 80: uint16(27556), + 81: uint16(27557), + 82: uint16(27558), + 83: uint16(27559), + 84: uint16(27560), + 85: uint16(27561), + 86: uint16(27563), + 87: uint16(27564), + 88: uint16(27565), + 89: uint16(27566), + 90: uint16(27567), + 91: uint16(27568), + 92: uint16(27569), + 93: uint16(27570), + 94: uint16(27574), + 95: uint16(27576), + 96: uint16(27577), + 97: uint16(27578), + 98: uint16(27579), + 99: uint16(27580), + 100: uint16(27581), + 101: uint16(27582), + 102: uint16(27584), + 103: uint16(27587), + 104: uint16(27588), + 105: uint16(27590), + 106: uint16(27591), + 107: uint16(27592), + 108: uint16(27593), + 109: uint16(27594), + 110: uint16(27596), + 111: uint16(27598), + 112: uint16(27600), + 113: uint16(27601), + 114: uint16(27608), + 115: uint16(27610), + 116: uint16(27612), + 117: uint16(27613), + 118: uint16(27614), + 119: uint16(27615), + 120: uint16(27616), + 121: uint16(27618), + 122: uint16(27619), + 123: uint16(27620), + 124: uint16(27621), + 125: uint16(27622), + 126: uint16(27623), + 127: uint16(27624), + 128: uint16(27625), + 129: uint16(27628), + 130: uint16(27629), + 131: uint16(27630), + 132: uint16(27632), + 133: uint16(27633), + 134: uint16(27634), + 135: uint16(27636), + 136: uint16(27638), + 137: uint16(27639), + 138: uint16(27640), + 139: uint16(27642), + 140: uint16(27643), + 141: uint16(27644), + 142: uint16(27646), + 143: uint16(27647), + 144: uint16(27648), + 145: uint16(27649), + 146: uint16(27650), + 147: uint16(27651), + 148: uint16(27652), + 149: uint16(27656), + 150: uint16(27657), + 151: uint16(27658), + 152: uint16(27659), + 153: uint16(27660), + 154: uint16(27662), + 155: uint16(27666), + 156: uint16(27671), + 157: uint16(27676), + 158: uint16(27677), + 159: uint16(27678), + 160: uint16(27680), + 161: uint16(27683), + 162: uint16(27685), + 163: uint16(27691), + 164: uint16(27692), + 165: uint16(27693), + 166: uint16(27697), + 167: uint16(27699), + 168: uint16(27702), + 169: uint16(27703), + 170: uint16(27705), + 171: uint16(27706), + 172: uint16(27707), + 173: uint16(27708), + 174: uint16(27710), + 175: uint16(27711), + 176: uint16(27715), + 177: uint16(27716), + 178: uint16(27717), + 179: uint16(27720), + 180: uint16(27723), + 181: uint16(27724), + 182: uint16(27725), + 183: uint16(27726), + 184: uint16(27727), + 185: uint16(27729), + 186: uint16(27730), + 187: uint16(27731), + 188: uint16(27734), + 189: uint16(27736), + }, + 26: { + 0: uint16(27737), + 1: uint16(27738), + 2: uint16(27746), + 3: uint16(27747), + 4: uint16(27749), + 5: uint16(27750), + 6: uint16(27751), + 7: uint16(27755), + 8: uint16(27756), + 9: uint16(27757), + 10: uint16(27758), + 11: uint16(27759), + 12: uint16(27761), + 13: uint16(27763), + 14: uint16(27765), + 15: uint16(27767), + 16: uint16(27768), + 17: uint16(27770), + 18: uint16(27771), + 19: uint16(27772), + 20: uint16(27775), + 21: uint16(27776), + 22: uint16(27780), + 23: uint16(27783), + 24: uint16(27786), + 25: uint16(27787), + 26: uint16(27789), + 27: uint16(27790), + 28: uint16(27793), + 29: uint16(27794), + 30: uint16(27797), + 31: uint16(27798), + 32: uint16(27799), + 33: uint16(27800), + 34: uint16(27802), + 35: uint16(27804), + 36: uint16(27805), + 37: uint16(27806), + 38: uint16(27808), + 39: uint16(27810), + 40: uint16(27816), + 41: uint16(27820), + 42: uint16(27823), + 43: uint16(27824), + 44: uint16(27828), + 45: uint16(27829), + 46: uint16(27830), + 47: uint16(27831), + 48: uint16(27834), + 49: uint16(27840), + 50: uint16(27841), + 51: uint16(27842), + 52: uint16(27843), + 53: uint16(27846), + 54: uint16(27847), + 55: uint16(27848), + 56: uint16(27851), + 57: uint16(27853), + 58: uint16(27854), + 59: uint16(27855), + 60: uint16(27857), + 61: uint16(27858), + 62: uint16(27864), + 63: uint16(27865), + 64: uint16(27866), + 65: uint16(27868), + 66: uint16(27869), + 67: uint16(27871), + 68: uint16(27876), + 69: uint16(27878), + 70: uint16(27879), + 71: uint16(27881), + 72: uint16(27884), + 73: uint16(27885), + 74: uint16(27890), + 75: uint16(27892), + 76: uint16(27897), + 77: uint16(27903), + 78: uint16(27904), + 79: uint16(27906), + 80: uint16(27907), + 81: uint16(27909), + 82: uint16(27910), + 83: uint16(27912), + 84: uint16(27913), + 85: uint16(27914), + 86: uint16(27917), + 87: uint16(27919), + 88: uint16(27920), + 89: uint16(27921), + 90: uint16(27923), + 91: uint16(27924), + 92: uint16(27925), + 93: uint16(27926), + 94: uint16(27928), + 95: uint16(27932), + 96: uint16(27933), + 97: uint16(27935), + 98: uint16(27936), + 99: uint16(27937), + 100: uint16(27938), + 101: uint16(27939), + 102: uint16(27940), + 103: uint16(27942), + 104: uint16(27944), + 105: uint16(27945), + 106: uint16(27948), + 107: uint16(27949), + 108: uint16(27951), + 109: uint16(27952), + 110: uint16(27956), + 111: uint16(27958), + 112: uint16(27959), + 113: uint16(27960), + 114: uint16(27962), + 115: uint16(27967), + 116: uint16(27968), + 117: uint16(27970), + 118: uint16(27972), + 119: uint16(27977), + 120: uint16(27980), + 121: uint16(27984), + 122: uint16(27989), + 123: uint16(27990), + 124: uint16(27991), + 125: uint16(27992), + 126: uint16(27995), + 127: uint16(27997), + 128: uint16(27999), + 129: uint16(28001), + 130: uint16(28002), + 131: uint16(28004), + 132: uint16(28005), + 133: uint16(28007), + 134: uint16(28008), + 135: uint16(28011), + 136: uint16(28012), + 137: uint16(28013), + 138: uint16(28016), + 139: uint16(28017), + 140: uint16(28018), + 141: uint16(28019), + 142: uint16(28021), + 143: uint16(28022), + 144: uint16(28025), + 145: uint16(28026), + 146: uint16(28027), + 147: uint16(28029), + 148: uint16(28030), + 149: uint16(28031), + 150: uint16(28032), + 151: uint16(28033), + 152: uint16(28035), + 153: uint16(28036), + 154: uint16(28038), + 155: uint16(28039), + 156: uint16(28042), + 157: uint16(28043), + 158: uint16(28045), + 159: uint16(28047), + 160: uint16(28048), + 161: uint16(28050), + 162: uint16(28054), + 163: uint16(28055), + 164: uint16(28056), + 165: uint16(28057), + 166: uint16(28058), + 167: uint16(28060), + 168: uint16(28066), + 169: uint16(28069), + 170: uint16(28076), + 171: uint16(28077), + 172: uint16(28080), + 173: uint16(28081), + 174: uint16(28083), + 175: uint16(28084), + 176: uint16(28086), + 177: uint16(28087), + 178: uint16(28089), + 179: uint16(28090), + 180: uint16(28091), + 181: uint16(28092), + 182: uint16(28093), + 183: uint16(28094), + 184: uint16(28097), + 185: uint16(28098), + 186: uint16(28099), + 187: uint16(28104), + 188: uint16(28105), + 189: uint16(28106), + }, + 27: { + 0: uint16(28109), + 1: uint16(28110), + 2: uint16(28111), + 3: uint16(28112), + 4: uint16(28114), + 5: uint16(28115), + 6: uint16(28116), + 7: uint16(28117), + 8: uint16(28119), + 9: uint16(28122), + 10: uint16(28123), + 11: uint16(28124), + 12: uint16(28127), + 13: uint16(28130), + 14: uint16(28131), + 15: uint16(28133), + 16: uint16(28135), + 17: uint16(28136), + 18: uint16(28137), + 19: uint16(28138), + 20: uint16(28141), + 21: uint16(28143), + 22: uint16(28144), + 23: uint16(28146), + 24: uint16(28148), + 25: uint16(28149), + 26: uint16(28150), + 27: uint16(28152), + 28: uint16(28154), + 29: uint16(28157), + 30: uint16(28158), + 31: uint16(28159), + 32: uint16(28160), + 33: uint16(28161), + 34: uint16(28162), + 35: uint16(28163), + 36: uint16(28164), + 37: uint16(28166), + 38: uint16(28167), + 39: uint16(28168), + 40: uint16(28169), + 41: uint16(28171), + 42: uint16(28175), + 43: uint16(28178), + 44: uint16(28179), + 45: uint16(28181), + 46: uint16(28184), + 47: uint16(28185), + 48: uint16(28187), + 49: uint16(28188), + 50: uint16(28190), + 51: uint16(28191), + 52: uint16(28194), + 53: uint16(28198), + 54: uint16(28199), + 55: uint16(28200), + 56: uint16(28202), + 57: uint16(28204), + 58: uint16(28206), + 59: uint16(28208), + 60: uint16(28209), + 61: uint16(28211), + 62: uint16(28213), + 63: uint16(28214), + 64: uint16(28215), + 65: uint16(28217), + 66: uint16(28219), + 67: uint16(28220), + 68: uint16(28221), + 69: uint16(28222), + 70: uint16(28223), + 71: uint16(28224), + 72: uint16(28225), + 73: uint16(28226), + 74: uint16(28229), + 75: uint16(28230), + 76: uint16(28231), + 77: uint16(28232), + 78: uint16(28233), + 79: uint16(28234), + 80: uint16(28235), + 81: uint16(28236), + 82: uint16(28239), + 83: uint16(28240), + 84: uint16(28241), + 85: uint16(28242), + 86: uint16(28245), + 87: uint16(28247), + 88: uint16(28249), + 89: uint16(28250), + 90: uint16(28252), + 91: uint16(28253), + 92: uint16(28254), + 93: uint16(28256), + 94: uint16(28257), + 95: uint16(28258), + 96: uint16(28259), + 97: uint16(28260), + 98: uint16(28261), + 99: uint16(28262), + 100: uint16(28263), + 101: uint16(28264), + 102: uint16(28265), + 103: uint16(28266), + 104: uint16(28268), + 105: uint16(28269), + 106: uint16(28271), + 107: uint16(28272), + 108: uint16(28273), + 109: uint16(28274), + 110: uint16(28275), + 111: uint16(28276), + 112: uint16(28277), + 113: uint16(28278), + 114: uint16(28279), + 115: uint16(28280), + 116: uint16(28281), + 117: uint16(28282), + 118: uint16(28283), + 119: uint16(28284), + 120: uint16(28285), + 121: uint16(28288), + 122: uint16(28289), + 123: uint16(28290), + 124: uint16(28292), + 125: uint16(28295), + 126: uint16(28296), + 127: uint16(28298), + 128: uint16(28299), + 129: uint16(28300), + 130: uint16(28301), + 131: uint16(28302), + 132: uint16(28305), + 133: uint16(28306), + 134: uint16(28307), + 135: uint16(28308), + 136: uint16(28309), + 137: uint16(28310), + 138: uint16(28311), + 139: uint16(28313), + 140: uint16(28314), + 141: uint16(28315), + 142: uint16(28317), + 143: uint16(28318), + 144: uint16(28320), + 145: uint16(28321), + 146: uint16(28323), + 147: uint16(28324), + 148: uint16(28326), + 149: uint16(28328), + 150: uint16(28329), + 151: uint16(28331), + 152: uint16(28332), + 153: uint16(28333), + 154: uint16(28334), + 155: uint16(28336), + 156: uint16(28339), + 157: uint16(28341), + 158: uint16(28344), + 159: uint16(28345), + 160: uint16(28348), + 161: uint16(28350), + 162: uint16(28351), + 163: uint16(28352), + 164: uint16(28355), + 165: uint16(28356), + 166: uint16(28357), + 167: uint16(28358), + 168: uint16(28360), + 169: uint16(28361), + 170: uint16(28362), + 171: uint16(28364), + 172: uint16(28365), + 173: uint16(28366), + 174: uint16(28368), + 175: uint16(28370), + 176: uint16(28374), + 177: uint16(28376), + 178: uint16(28377), + 179: uint16(28379), + 180: uint16(28380), + 181: uint16(28381), + 182: uint16(28387), + 183: uint16(28391), + 184: uint16(28394), + 185: uint16(28395), + 186: uint16(28396), + 187: uint16(28397), + 188: uint16(28398), + 189: uint16(28399), + }, + 28: { + 0: uint16(28400), + 1: uint16(28401), + 2: uint16(28402), + 3: uint16(28403), + 4: uint16(28405), + 5: uint16(28406), + 6: uint16(28407), + 7: uint16(28408), + 8: uint16(28410), + 9: uint16(28411), + 10: uint16(28412), + 11: uint16(28413), + 12: uint16(28414), + 13: uint16(28415), + 14: uint16(28416), + 15: uint16(28417), + 16: uint16(28419), + 17: uint16(28420), + 18: uint16(28421), + 19: uint16(28423), + 20: uint16(28424), + 21: uint16(28426), + 22: uint16(28427), + 23: uint16(28428), + 24: uint16(28429), + 25: uint16(28430), + 26: uint16(28432), + 27: uint16(28433), + 28: uint16(28434), + 29: uint16(28438), + 30: uint16(28439), + 31: uint16(28440), + 32: uint16(28441), + 33: uint16(28442), + 34: uint16(28443), + 35: uint16(28444), + 36: uint16(28445), + 37: uint16(28446), + 38: uint16(28447), + 39: uint16(28449), + 40: uint16(28450), + 41: uint16(28451), + 42: uint16(28453), + 43: uint16(28454), + 44: uint16(28455), + 45: uint16(28456), + 46: uint16(28460), + 47: uint16(28462), + 48: uint16(28464), + 49: uint16(28466), + 50: uint16(28468), + 51: uint16(28469), + 52: uint16(28471), + 53: uint16(28472), + 54: uint16(28473), + 55: uint16(28474), + 56: uint16(28475), + 57: uint16(28476), + 58: uint16(28477), + 59: uint16(28479), + 60: uint16(28480), + 61: uint16(28481), + 62: uint16(28482), + 63: uint16(28483), + 64: uint16(28484), + 65: uint16(28485), + 66: uint16(28488), + 67: uint16(28489), + 68: uint16(28490), + 69: uint16(28492), + 70: uint16(28494), + 71: uint16(28495), + 72: uint16(28496), + 73: uint16(28497), + 74: uint16(28498), + 75: uint16(28499), + 76: uint16(28500), + 77: uint16(28501), + 78: uint16(28502), + 79: uint16(28503), + 80: uint16(28505), + 81: uint16(28506), + 82: uint16(28507), + 83: uint16(28509), + 84: uint16(28511), + 85: uint16(28512), + 86: uint16(28513), + 87: uint16(28515), + 88: uint16(28516), + 89: uint16(28517), + 90: uint16(28519), + 91: uint16(28520), + 92: uint16(28521), + 93: uint16(28522), + 94: uint16(28523), + 95: uint16(28524), + 96: uint16(28527), + 97: uint16(28528), + 98: uint16(28529), + 99: uint16(28531), + 100: uint16(28533), + 101: uint16(28534), + 102: uint16(28535), + 103: uint16(28537), + 104: uint16(28539), + 105: uint16(28541), + 106: uint16(28542), + 107: uint16(28543), + 108: uint16(28544), + 109: uint16(28545), + 110: uint16(28546), + 111: uint16(28547), + 112: uint16(28549), + 113: uint16(28550), + 114: uint16(28551), + 115: uint16(28554), + 116: uint16(28555), + 117: uint16(28559), + 118: uint16(28560), + 119: uint16(28561), + 120: uint16(28562), + 121: uint16(28563), + 122: uint16(28564), + 123: uint16(28565), + 124: uint16(28566), + 125: uint16(28567), + 126: uint16(28568), + 127: uint16(28569), + 128: uint16(28570), + 129: uint16(28571), + 130: uint16(28573), + 131: uint16(28574), + 132: uint16(28575), + 133: uint16(28576), + 134: uint16(28578), + 135: uint16(28579), + 136: uint16(28580), + 137: uint16(28581), + 138: uint16(28582), + 139: uint16(28584), + 140: uint16(28585), + 141: uint16(28586), + 142: uint16(28587), + 143: uint16(28588), + 144: uint16(28589), + 145: uint16(28590), + 146: uint16(28591), + 147: uint16(28592), + 148: uint16(28593), + 149: uint16(28594), + 150: uint16(28596), + 151: uint16(28597), + 152: uint16(28599), + 153: uint16(28600), + 154: uint16(28602), + 155: uint16(28603), + 156: uint16(28604), + 157: uint16(28605), + 158: uint16(28606), + 159: uint16(28607), + 160: uint16(28609), + 161: uint16(28611), + 162: uint16(28612), + 163: uint16(28613), + 164: uint16(28614), + 165: uint16(28615), + 166: uint16(28616), + 167: uint16(28618), + 168: uint16(28619), + 169: uint16(28620), + 170: uint16(28621), + 171: uint16(28622), + 172: uint16(28623), + 173: uint16(28624), + 174: uint16(28627), + 175: uint16(28628), + 176: uint16(28629), + 177: uint16(28630), + 178: uint16(28631), + 179: uint16(28632), + 180: uint16(28633), + 181: uint16(28634), + 182: uint16(28635), + 183: uint16(28636), + 184: uint16(28637), + 185: uint16(28639), + 186: uint16(28642), + 187: uint16(28643), + 188: uint16(28644), + 189: uint16(28645), + }, + 29: { + 0: uint16(28646), + 1: uint16(28647), + 2: uint16(28648), + 3: uint16(28649), + 4: uint16(28650), + 5: uint16(28651), + 6: uint16(28652), + 7: uint16(28653), + 8: uint16(28656), + 9: uint16(28657), + 10: uint16(28658), + 11: uint16(28659), + 12: uint16(28660), + 13: uint16(28661), + 14: uint16(28662), + 15: uint16(28663), + 16: uint16(28664), + 17: uint16(28665), + 18: uint16(28666), + 19: uint16(28667), + 20: uint16(28668), + 21: uint16(28669), + 22: uint16(28670), + 23: uint16(28671), + 24: uint16(28672), + 25: uint16(28673), + 26: uint16(28674), + 27: uint16(28675), + 28: uint16(28676), + 29: uint16(28677), + 30: uint16(28678), + 31: uint16(28679), + 32: uint16(28680), + 33: uint16(28681), + 34: uint16(28682), + 35: uint16(28683), + 36: uint16(28684), + 37: uint16(28685), + 38: uint16(28686), + 39: uint16(28687), + 40: uint16(28688), + 41: uint16(28690), + 42: uint16(28691), + 43: uint16(28692), + 44: uint16(28693), + 45: uint16(28694), + 46: uint16(28695), + 47: uint16(28696), + 48: uint16(28697), + 49: uint16(28700), + 50: uint16(28701), + 51: uint16(28702), + 52: uint16(28703), + 53: uint16(28704), + 54: uint16(28705), + 55: uint16(28706), + 56: uint16(28708), + 57: uint16(28709), + 58: uint16(28710), + 59: uint16(28711), + 60: uint16(28712), + 61: uint16(28713), + 62: uint16(28714), + 63: uint16(28715), + 64: uint16(28716), + 65: uint16(28717), + 66: uint16(28718), + 67: uint16(28719), + 68: uint16(28720), + 69: uint16(28721), + 70: uint16(28722), + 71: uint16(28723), + 72: uint16(28724), + 73: uint16(28726), + 74: uint16(28727), + 75: uint16(28728), + 76: uint16(28730), + 77: uint16(28731), + 78: uint16(28732), + 79: uint16(28733), + 80: uint16(28734), + 81: uint16(28735), + 82: uint16(28736), + 83: uint16(28737), + 84: uint16(28738), + 85: uint16(28739), + 86: uint16(28740), + 87: uint16(28741), + 88: uint16(28742), + 89: uint16(28743), + 90: uint16(28744), + 91: uint16(28745), + 92: uint16(28746), + 93: uint16(28747), + 94: uint16(28749), + 95: uint16(28750), + 96: uint16(28752), + 97: uint16(28753), + 98: uint16(28754), + 99: uint16(28755), + 100: uint16(28756), + 101: uint16(28757), + 102: uint16(28758), + 103: uint16(28759), + 104: uint16(28760), + 105: uint16(28761), + 106: uint16(28762), + 107: uint16(28763), + 108: uint16(28764), + 109: uint16(28765), + 110: uint16(28767), + 111: uint16(28768), + 112: uint16(28769), + 113: uint16(28770), + 114: uint16(28771), + 115: uint16(28772), + 116: uint16(28773), + 117: uint16(28774), + 118: uint16(28775), + 119: uint16(28776), + 120: uint16(28777), + 121: uint16(28778), + 122: uint16(28782), + 123: uint16(28785), + 124: uint16(28786), + 125: uint16(28787), + 126: uint16(28788), + 127: uint16(28791), + 128: uint16(28793), + 129: uint16(28794), + 130: uint16(28795), + 131: uint16(28797), + 132: uint16(28801), + 133: uint16(28802), + 134: uint16(28803), + 135: uint16(28804), + 136: uint16(28806), + 137: uint16(28807), + 138: uint16(28808), + 139: uint16(28811), + 140: uint16(28812), + 141: uint16(28813), + 142: uint16(28815), + 143: uint16(28816), + 144: uint16(28817), + 145: uint16(28819), + 146: uint16(28823), + 147: uint16(28824), + 148: uint16(28826), + 149: uint16(28827), + 150: uint16(28830), + 151: uint16(28831), + 152: uint16(28832), + 153: uint16(28833), + 154: uint16(28834), + 155: uint16(28835), + 156: uint16(28836), + 157: uint16(28837), + 158: uint16(28838), + 159: uint16(28839), + 160: uint16(28840), + 161: uint16(28841), + 162: uint16(28842), + 163: uint16(28848), + 164: uint16(28850), + 165: uint16(28852), + 166: uint16(28853), + 167: uint16(28854), + 168: uint16(28858), + 169: uint16(28862), + 170: uint16(28863), + 171: uint16(28868), + 172: uint16(28869), + 173: uint16(28870), + 174: uint16(28871), + 175: uint16(28873), + 176: uint16(28875), + 177: uint16(28876), + 178: uint16(28877), + 179: uint16(28878), + 180: uint16(28879), + 181: uint16(28880), + 182: uint16(28881), + 183: uint16(28882), + 184: uint16(28883), + 185: uint16(28884), + 186: uint16(28885), + 187: uint16(28886), + 188: uint16(28887), + 189: uint16(28890), + }, + 30: { + 0: uint16(28892), + 1: uint16(28893), + 2: uint16(28894), + 3: uint16(28896), + 4: uint16(28897), + 5: uint16(28898), + 6: uint16(28899), + 7: uint16(28901), + 8: uint16(28906), + 9: uint16(28910), + 10: uint16(28912), + 11: uint16(28913), + 12: uint16(28914), + 13: uint16(28915), + 14: uint16(28916), + 15: uint16(28917), + 16: uint16(28918), + 17: uint16(28920), + 18: uint16(28922), + 19: uint16(28923), + 20: uint16(28924), + 21: uint16(28926), + 22: uint16(28927), + 23: uint16(28928), + 24: uint16(28929), + 25: uint16(28930), + 26: uint16(28931), + 27: uint16(28932), + 28: uint16(28933), + 29: uint16(28934), + 30: uint16(28935), + 31: uint16(28936), + 32: uint16(28939), + 33: uint16(28940), + 34: uint16(28941), + 35: uint16(28942), + 36: uint16(28943), + 37: uint16(28945), + 38: uint16(28946), + 39: uint16(28948), + 40: uint16(28951), + 41: uint16(28955), + 42: uint16(28956), + 43: uint16(28957), + 44: uint16(28958), + 45: uint16(28959), + 46: uint16(28960), + 47: uint16(28961), + 48: uint16(28962), + 49: uint16(28963), + 50: uint16(28964), + 51: uint16(28965), + 52: uint16(28967), + 53: uint16(28968), + 54: uint16(28969), + 55: uint16(28970), + 56: uint16(28971), + 57: uint16(28972), + 58: uint16(28973), + 59: uint16(28974), + 60: uint16(28978), + 61: uint16(28979), + 62: uint16(28980), + 63: uint16(28981), + 64: uint16(28983), + 65: uint16(28984), + 66: uint16(28985), + 67: uint16(28986), + 68: uint16(28987), + 69: uint16(28988), + 70: uint16(28989), + 71: uint16(28990), + 72: uint16(28991), + 73: uint16(28992), + 74: uint16(28993), + 75: uint16(28994), + 76: uint16(28995), + 77: uint16(28996), + 78: uint16(28998), + 79: uint16(28999), + 80: uint16(29000), + 81: uint16(29001), + 82: uint16(29003), + 83: uint16(29005), + 84: uint16(29007), + 85: uint16(29008), + 86: uint16(29009), + 87: uint16(29010), + 88: uint16(29011), + 89: uint16(29012), + 90: uint16(29013), + 91: uint16(29014), + 92: uint16(29015), + 93: uint16(29016), + 94: uint16(29017), + 95: uint16(29018), + 96: uint16(29019), + 97: uint16(29021), + 98: uint16(29023), + 99: uint16(29024), + 100: uint16(29025), + 101: uint16(29026), + 102: uint16(29027), + 103: uint16(29029), + 104: uint16(29033), + 105: uint16(29034), + 106: uint16(29035), + 107: uint16(29036), + 108: uint16(29037), + 109: uint16(29039), + 110: uint16(29040), + 111: uint16(29041), + 112: uint16(29044), + 113: uint16(29045), + 114: uint16(29046), + 115: uint16(29047), + 116: uint16(29049), + 117: uint16(29051), + 118: uint16(29052), + 119: uint16(29054), + 120: uint16(29055), + 121: uint16(29056), + 122: uint16(29057), + 123: uint16(29058), + 124: uint16(29059), + 125: uint16(29061), + 126: uint16(29062), + 127: uint16(29063), + 128: uint16(29064), + 129: uint16(29065), + 130: uint16(29067), + 131: uint16(29068), + 132: uint16(29069), + 133: uint16(29070), + 134: uint16(29072), + 135: uint16(29073), + 136: uint16(29074), + 137: uint16(29075), + 138: uint16(29077), + 139: uint16(29078), + 140: uint16(29079), + 141: uint16(29082), + 142: uint16(29083), + 143: uint16(29084), + 144: uint16(29085), + 145: uint16(29086), + 146: uint16(29089), + 147: uint16(29090), + 148: uint16(29091), + 149: uint16(29092), + 150: uint16(29093), + 151: uint16(29094), + 152: uint16(29095), + 153: uint16(29097), + 154: uint16(29098), + 155: uint16(29099), + 156: uint16(29101), + 157: uint16(29102), + 158: uint16(29103), + 159: uint16(29104), + 160: uint16(29105), + 161: uint16(29106), + 162: uint16(29108), + 163: uint16(29110), + 164: uint16(29111), + 165: uint16(29112), + 166: uint16(29114), + 167: uint16(29115), + 168: uint16(29116), + 169: uint16(29117), + 170: uint16(29118), + 171: uint16(29119), + 172: uint16(29120), + 173: uint16(29121), + 174: uint16(29122), + 175: uint16(29124), + 176: uint16(29125), + 177: uint16(29126), + 178: uint16(29127), + 179: uint16(29128), + 180: uint16(29129), + 181: uint16(29130), + 182: uint16(29131), + 183: uint16(29132), + 184: uint16(29133), + 185: uint16(29135), + 186: uint16(29136), + 187: uint16(29137), + 188: uint16(29138), + 189: uint16(29139), + }, + 31: { + 0: uint16(29142), + 1: uint16(29143), + 2: uint16(29144), + 3: uint16(29145), + 4: uint16(29146), + 5: uint16(29147), + 6: uint16(29148), + 7: uint16(29149), + 8: uint16(29150), + 9: uint16(29151), + 10: uint16(29153), + 11: uint16(29154), + 12: uint16(29155), + 13: uint16(29156), + 14: uint16(29158), + 15: uint16(29160), + 16: uint16(29161), + 17: uint16(29162), + 18: uint16(29163), + 19: uint16(29164), + 20: uint16(29165), + 21: uint16(29167), + 22: uint16(29168), + 23: uint16(29169), + 24: uint16(29170), + 25: uint16(29171), + 26: uint16(29172), + 27: uint16(29173), + 28: uint16(29174), + 29: uint16(29175), + 30: uint16(29176), + 31: uint16(29178), + 32: uint16(29179), + 33: uint16(29180), + 34: uint16(29181), + 35: uint16(29182), + 36: uint16(29183), + 37: uint16(29184), + 38: uint16(29185), + 39: uint16(29186), + 40: uint16(29187), + 41: uint16(29188), + 42: uint16(29189), + 43: uint16(29191), + 44: uint16(29192), + 45: uint16(29193), + 46: uint16(29194), + 47: uint16(29195), + 48: uint16(29196), + 49: uint16(29197), + 50: uint16(29198), + 51: uint16(29199), + 52: uint16(29200), + 53: uint16(29201), + 54: uint16(29202), + 55: uint16(29203), + 56: uint16(29204), + 57: uint16(29205), + 58: uint16(29206), + 59: uint16(29207), + 60: uint16(29208), + 61: uint16(29209), + 62: uint16(29210), + 63: uint16(29211), + 64: uint16(29212), + 65: uint16(29214), + 66: uint16(29215), + 67: uint16(29216), + 68: uint16(29217), + 69: uint16(29218), + 70: uint16(29219), + 71: uint16(29220), + 72: uint16(29221), + 73: uint16(29222), + 74: uint16(29223), + 75: uint16(29225), + 76: uint16(29227), + 77: uint16(29229), + 78: uint16(29230), + 79: uint16(29231), + 80: uint16(29234), + 81: uint16(29235), + 82: uint16(29236), + 83: uint16(29242), + 84: uint16(29244), + 85: uint16(29246), + 86: uint16(29248), + 87: uint16(29249), + 88: uint16(29250), + 89: uint16(29251), + 90: uint16(29252), + 91: uint16(29253), + 92: uint16(29254), + 93: uint16(29257), + 94: uint16(29258), + 95: uint16(29259), + 96: uint16(29262), + 97: uint16(29263), + 98: uint16(29264), + 99: uint16(29265), + 100: uint16(29267), + 101: uint16(29268), + 102: uint16(29269), + 103: uint16(29271), + 104: uint16(29272), + 105: uint16(29274), + 106: uint16(29276), + 107: uint16(29278), + 108: uint16(29280), + 109: uint16(29283), + 110: uint16(29284), + 111: uint16(29285), + 112: uint16(29288), + 113: uint16(29290), + 114: uint16(29291), + 115: uint16(29292), + 116: uint16(29293), + 117: uint16(29296), + 118: uint16(29297), + 119: uint16(29299), + 120: uint16(29300), + 121: uint16(29302), + 122: uint16(29303), + 123: uint16(29304), + 124: uint16(29307), + 125: uint16(29308), + 126: uint16(29309), + 127: uint16(29314), + 128: uint16(29315), + 129: uint16(29317), + 130: uint16(29318), + 131: uint16(29319), + 132: uint16(29320), + 133: uint16(29321), + 134: uint16(29324), + 135: uint16(29326), + 136: uint16(29328), + 137: uint16(29329), + 138: uint16(29331), + 139: uint16(29332), + 140: uint16(29333), + 141: uint16(29334), + 142: uint16(29335), + 143: uint16(29336), + 144: uint16(29337), + 145: uint16(29338), + 146: uint16(29339), + 147: uint16(29340), + 148: uint16(29341), + 149: uint16(29342), + 150: uint16(29344), + 151: uint16(29345), + 152: uint16(29346), + 153: uint16(29347), + 154: uint16(29348), + 155: uint16(29349), + 156: uint16(29350), + 157: uint16(29351), + 158: uint16(29352), + 159: uint16(29353), + 160: uint16(29354), + 161: uint16(29355), + 162: uint16(29358), + 163: uint16(29361), + 164: uint16(29362), + 165: uint16(29363), + 166: uint16(29365), + 167: uint16(29370), + 168: uint16(29371), + 169: uint16(29372), + 170: uint16(29373), + 171: uint16(29374), + 172: uint16(29375), + 173: uint16(29376), + 174: uint16(29381), + 175: uint16(29382), + 176: uint16(29383), + 177: uint16(29385), + 178: uint16(29386), + 179: uint16(29387), + 180: uint16(29388), + 181: uint16(29391), + 182: uint16(29393), + 183: uint16(29395), + 184: uint16(29396), + 185: uint16(29397), + 186: uint16(29398), + 187: uint16(29400), + 188: uint16(29402), + 189: uint16(29403), + }, + 32: { + 0: uint16(58566), + 1: uint16(58567), + 2: uint16(58568), + 3: uint16(58569), + 4: uint16(58570), + 5: uint16(58571), + 6: uint16(58572), + 7: uint16(58573), + 8: uint16(58574), + 9: uint16(58575), + 10: uint16(58576), + 11: uint16(58577), + 12: uint16(58578), + 13: uint16(58579), + 14: uint16(58580), + 15: uint16(58581), + 16: uint16(58582), + 17: uint16(58583), + 18: uint16(58584), + 19: uint16(58585), + 20: uint16(58586), + 21: uint16(58587), + 22: uint16(58588), + 23: uint16(58589), + 24: uint16(58590), + 25: uint16(58591), + 26: uint16(58592), + 27: uint16(58593), + 28: uint16(58594), + 29: uint16(58595), + 30: uint16(58596), + 31: uint16(58597), + 32: uint16(58598), + 33: uint16(58599), + 34: uint16(58600), + 35: uint16(58601), + 36: uint16(58602), + 37: uint16(58603), + 38: uint16(58604), + 39: uint16(58605), + 40: uint16(58606), + 41: uint16(58607), + 42: uint16(58608), + 43: uint16(58609), + 44: uint16(58610), + 45: uint16(58611), + 46: uint16(58612), + 47: uint16(58613), + 48: uint16(58614), + 49: uint16(58615), + 50: uint16(58616), + 51: uint16(58617), + 52: uint16(58618), + 53: uint16(58619), + 54: uint16(58620), + 55: uint16(58621), + 56: uint16(58622), + 57: uint16(58623), + 58: uint16(58624), + 59: uint16(58625), + 60: uint16(58626), + 61: uint16(58627), + 62: uint16(58628), + 63: uint16(58629), + 64: uint16(58630), + 65: uint16(58631), + 66: uint16(58632), + 67: uint16(58633), + 68: uint16(58634), + 69: uint16(58635), + 70: uint16(58636), + 71: uint16(58637), + 72: uint16(58638), + 73: uint16(58639), + 74: uint16(58640), + 75: uint16(58641), + 76: uint16(58642), + 77: uint16(58643), + 78: uint16(58644), + 79: uint16(58645), + 80: uint16(58646), + 81: uint16(58647), + 82: uint16(58648), + 83: uint16(58649), + 84: uint16(58650), + 85: uint16(58651), + 86: uint16(58652), + 87: uint16(58653), + 88: uint16(58654), + 89: uint16(58655), + 90: uint16(58656), + 91: uint16(58657), + 92: uint16(58658), + 93: uint16(58659), + 94: uint16(58660), + 95: uint16(58661), + 96: uint16(12288), + 97: uint16(12289), + 98: uint16(12290), + 99: uint16(183), + 100: uint16(713), + 101: uint16(711), + 102: uint16(168), + 103: uint16(12291), + 104: uint16(12293), + 105: uint16(8212), + 106: uint16(65374), + 107: uint16(8214), + 108: uint16(8230), + 109: uint16(8216), + 110: uint16(8217), + 111: uint16(8220), + 112: uint16(8221), + 113: uint16(12308), + 114: uint16(12309), + 115: uint16(12296), + 116: uint16(12297), + 117: uint16(12298), + 118: uint16(12299), + 119: uint16(12300), + 120: uint16(12301), + 121: uint16(12302), + 122: uint16(12303), + 123: uint16(12310), + 124: uint16(12311), + 125: uint16(12304), + 126: uint16(12305), + 127: uint16(177), + 128: uint16(215), + 129: uint16(247), + 130: uint16(8758), + 131: uint16(8743), + 132: uint16(8744), + 133: uint16(8721), + 134: uint16(8719), + 135: uint16(8746), + 136: uint16(8745), + 137: uint16(8712), + 138: uint16(8759), + 139: uint16(8730), + 140: uint16(8869), + 141: uint16(8741), + 142: uint16(8736), + 143: uint16(8978), + 144: uint16(8857), + 145: uint16(8747), + 146: uint16(8750), + 147: uint16(8801), + 148: uint16(8780), + 149: uint16(8776), + 150: uint16(8765), + 151: uint16(8733), + 152: uint16(8800), + 153: uint16(8814), + 154: uint16(8815), + 155: uint16(8804), + 156: uint16(8805), + 157: uint16(8734), + 158: uint16(8757), + 159: uint16(8756), + 160: uint16(9794), + 161: uint16(9792), + 162: uint16(176), + 163: uint16(8242), + 164: uint16(8243), + 165: uint16(8451), + 166: uint16(65284), + 167: uint16(164), + 168: uint16(65504), + 169: uint16(65505), + 170: uint16(8240), + 171: uint16(167), + 172: uint16(8470), + 173: uint16(9734), + 174: uint16(9733), + 175: uint16(9675), + 176: uint16(9679), + 177: uint16(9678), + 178: uint16(9671), + 179: uint16(9670), + 180: uint16(9633), + 181: uint16(9632), + 182: uint16(9651), + 183: uint16(9650), + 184: uint16(8251), + 185: uint16(8594), + 186: uint16(8592), + 187: uint16(8593), + 188: uint16(8595), + 189: uint16(12307), + }, + 33: { + 0: uint16(58662), + 1: uint16(58663), + 2: uint16(58664), + 3: uint16(58665), + 4: uint16(58666), + 5: uint16(58667), + 6: uint16(58668), + 7: uint16(58669), + 8: uint16(58670), + 9: uint16(58671), + 10: uint16(58672), + 11: uint16(58673), + 12: uint16(58674), + 13: uint16(58675), + 14: uint16(58676), + 15: uint16(58677), + 16: uint16(58678), + 17: uint16(58679), + 18: uint16(58680), + 19: uint16(58681), + 20: uint16(58682), + 21: uint16(58683), + 22: uint16(58684), + 23: uint16(58685), + 24: uint16(58686), + 25: uint16(58687), + 26: uint16(58688), + 27: uint16(58689), + 28: uint16(58690), + 29: uint16(58691), + 30: uint16(58692), + 31: uint16(58693), + 32: uint16(58694), + 33: uint16(58695), + 34: uint16(58696), + 35: uint16(58697), + 36: uint16(58698), + 37: uint16(58699), + 38: uint16(58700), + 39: uint16(58701), + 40: uint16(58702), + 41: uint16(58703), + 42: uint16(58704), + 43: uint16(58705), + 44: uint16(58706), + 45: uint16(58707), + 46: uint16(58708), + 47: uint16(58709), + 48: uint16(58710), + 49: uint16(58711), + 50: uint16(58712), + 51: uint16(58713), + 52: uint16(58714), + 53: uint16(58715), + 54: uint16(58716), + 55: uint16(58717), + 56: uint16(58718), + 57: uint16(58719), + 58: uint16(58720), + 59: uint16(58721), + 60: uint16(58722), + 61: uint16(58723), + 62: uint16(58724), + 63: uint16(58725), + 64: uint16(58726), + 65: uint16(58727), + 66: uint16(58728), + 67: uint16(58729), + 68: uint16(58730), + 69: uint16(58731), + 70: uint16(58732), + 71: uint16(58733), + 72: uint16(58734), + 73: uint16(58735), + 74: uint16(58736), + 75: uint16(58737), + 76: uint16(58738), + 77: uint16(58739), + 78: uint16(58740), + 79: uint16(58741), + 80: uint16(58742), + 81: uint16(58743), + 82: uint16(58744), + 83: uint16(58745), + 84: uint16(58746), + 85: uint16(58747), + 86: uint16(58748), + 87: uint16(58749), + 88: uint16(58750), + 89: uint16(58751), + 90: uint16(58752), + 91: uint16(58753), + 92: uint16(58754), + 93: uint16(58755), + 94: uint16(58756), + 95: uint16(58757), + 96: uint16(8560), + 97: uint16(8561), + 98: uint16(8562), + 99: uint16(8563), + 100: uint16(8564), + 101: uint16(8565), + 102: uint16(8566), + 103: uint16(8567), + 104: uint16(8568), + 105: uint16(8569), + 106: uint16(59238), + 107: uint16(59239), + 108: uint16(59240), + 109: uint16(59241), + 110: uint16(59242), + 111: uint16(59243), + 112: uint16(9352), + 113: uint16(9353), + 114: uint16(9354), + 115: uint16(9355), + 116: uint16(9356), + 117: uint16(9357), + 118: uint16(9358), + 119: uint16(9359), + 120: uint16(9360), + 121: uint16(9361), + 122: uint16(9362), + 123: uint16(9363), + 124: uint16(9364), + 125: uint16(9365), + 126: uint16(9366), + 127: uint16(9367), + 128: uint16(9368), + 129: uint16(9369), + 130: uint16(9370), + 131: uint16(9371), + 132: uint16(9332), + 133: uint16(9333), + 134: uint16(9334), + 135: uint16(9335), + 136: uint16(9336), + 137: uint16(9337), + 138: uint16(9338), + 139: uint16(9339), + 140: uint16(9340), + 141: uint16(9341), + 142: uint16(9342), + 143: uint16(9343), + 144: uint16(9344), + 145: uint16(9345), + 146: uint16(9346), + 147: uint16(9347), + 148: uint16(9348), + 149: uint16(9349), + 150: uint16(9350), + 151: uint16(9351), + 152: uint16(9312), + 153: uint16(9313), + 154: uint16(9314), + 155: uint16(9315), + 156: uint16(9316), + 157: uint16(9317), + 158: uint16(9318), + 159: uint16(9319), + 160: uint16(9320), + 161: uint16(9321), + 162: uint16(8364), + 163: uint16(59245), + 164: uint16(12832), + 165: uint16(12833), + 166: uint16(12834), + 167: uint16(12835), + 168: uint16(12836), + 169: uint16(12837), + 170: uint16(12838), + 171: uint16(12839), + 172: uint16(12840), + 173: uint16(12841), + 174: uint16(59246), + 175: uint16(59247), + 176: uint16(8544), + 177: uint16(8545), + 178: uint16(8546), + 179: uint16(8547), + 180: uint16(8548), + 181: uint16(8549), + 182: uint16(8550), + 183: uint16(8551), + 184: uint16(8552), + 185: uint16(8553), + 186: uint16(8554), + 187: uint16(8555), + 188: uint16(59248), + 189: uint16(59249), + }, + 34: { + 0: uint16(58758), + 1: uint16(58759), + 2: uint16(58760), + 3: uint16(58761), + 4: uint16(58762), + 5: uint16(58763), + 6: uint16(58764), + 7: uint16(58765), + 8: uint16(58766), + 9: uint16(58767), + 10: uint16(58768), + 11: uint16(58769), + 12: uint16(58770), + 13: uint16(58771), + 14: uint16(58772), + 15: uint16(58773), + 16: uint16(58774), + 17: uint16(58775), + 18: uint16(58776), + 19: uint16(58777), + 20: uint16(58778), + 21: uint16(58779), + 22: uint16(58780), + 23: uint16(58781), + 24: uint16(58782), + 25: uint16(58783), + 26: uint16(58784), + 27: uint16(58785), + 28: uint16(58786), + 29: uint16(58787), + 30: uint16(58788), + 31: uint16(58789), + 32: uint16(58790), + 33: uint16(58791), + 34: uint16(58792), + 35: uint16(58793), + 36: uint16(58794), + 37: uint16(58795), + 38: uint16(58796), + 39: uint16(58797), + 40: uint16(58798), + 41: uint16(58799), + 42: uint16(58800), + 43: uint16(58801), + 44: uint16(58802), + 45: uint16(58803), + 46: uint16(58804), + 47: uint16(58805), + 48: uint16(58806), + 49: uint16(58807), + 50: uint16(58808), + 51: uint16(58809), + 52: uint16(58810), + 53: uint16(58811), + 54: uint16(58812), + 55: uint16(58813), + 56: uint16(58814), + 57: uint16(58815), + 58: uint16(58816), + 59: uint16(58817), + 60: uint16(58818), + 61: uint16(58819), + 62: uint16(58820), + 63: uint16(58821), + 64: uint16(58822), + 65: uint16(58823), + 66: uint16(58824), + 67: uint16(58825), + 68: uint16(58826), + 69: uint16(58827), + 70: uint16(58828), + 71: uint16(58829), + 72: uint16(58830), + 73: uint16(58831), + 74: uint16(58832), + 75: uint16(58833), + 76: uint16(58834), + 77: uint16(58835), + 78: uint16(58836), + 79: uint16(58837), + 80: uint16(58838), + 81: uint16(58839), + 82: uint16(58840), + 83: uint16(58841), + 84: uint16(58842), + 85: uint16(58843), + 86: uint16(58844), + 87: uint16(58845), + 88: uint16(58846), + 89: uint16(58847), + 90: uint16(58848), + 91: uint16(58849), + 92: uint16(58850), + 93: uint16(58851), + 94: uint16(58852), + 95: uint16(58853), + 96: uint16(65281), + 97: uint16(65282), + 98: uint16(65283), + 99: uint16(65509), + 100: uint16(65285), + 101: uint16(65286), + 102: uint16(65287), + 103: uint16(65288), + 104: uint16(65289), + 105: uint16(65290), + 106: uint16(65291), + 107: uint16(65292), + 108: uint16(65293), + 109: uint16(65294), + 110: uint16(65295), + 111: uint16(65296), + 112: uint16(65297), + 113: uint16(65298), + 114: uint16(65299), + 115: uint16(65300), + 116: uint16(65301), + 117: uint16(65302), + 118: uint16(65303), + 119: uint16(65304), + 120: uint16(65305), + 121: uint16(65306), + 122: uint16(65307), + 123: uint16(65308), + 124: uint16(65309), + 125: uint16(65310), + 126: uint16(65311), + 127: uint16(65312), + 128: uint16(65313), + 129: uint16(65314), + 130: uint16(65315), + 131: uint16(65316), + 132: uint16(65317), + 133: uint16(65318), + 134: uint16(65319), + 135: uint16(65320), + 136: uint16(65321), + 137: uint16(65322), + 138: uint16(65323), + 139: uint16(65324), + 140: uint16(65325), + 141: uint16(65326), + 142: uint16(65327), + 143: uint16(65328), + 144: uint16(65329), + 145: uint16(65330), + 146: uint16(65331), + 147: uint16(65332), + 148: uint16(65333), + 149: uint16(65334), + 150: uint16(65335), + 151: uint16(65336), + 152: uint16(65337), + 153: uint16(65338), + 154: uint16(65339), + 155: uint16(65340), + 156: uint16(65341), + 157: uint16(65342), + 158: uint16(65343), + 159: uint16(65344), + 160: uint16(65345), + 161: uint16(65346), + 162: uint16(65347), + 163: uint16(65348), + 164: uint16(65349), + 165: uint16(65350), + 166: uint16(65351), + 167: uint16(65352), + 168: uint16(65353), + 169: uint16(65354), + 170: uint16(65355), + 171: uint16(65356), + 172: uint16(65357), + 173: uint16(65358), + 174: uint16(65359), + 175: uint16(65360), + 176: uint16(65361), + 177: uint16(65362), + 178: uint16(65363), + 179: uint16(65364), + 180: uint16(65365), + 181: uint16(65366), + 182: uint16(65367), + 183: uint16(65368), + 184: uint16(65369), + 185: uint16(65370), + 186: uint16(65371), + 187: uint16(65372), + 188: uint16(65373), + 189: uint16(65507), + }, + 35: { + 0: uint16(58854), + 1: uint16(58855), + 2: uint16(58856), + 3: uint16(58857), + 4: uint16(58858), + 5: uint16(58859), + 6: uint16(58860), + 7: uint16(58861), + 8: uint16(58862), + 9: uint16(58863), + 10: uint16(58864), + 11: uint16(58865), + 12: uint16(58866), + 13: uint16(58867), + 14: uint16(58868), + 15: uint16(58869), + 16: uint16(58870), + 17: uint16(58871), + 18: uint16(58872), + 19: uint16(58873), + 20: uint16(58874), + 21: uint16(58875), + 22: uint16(58876), + 23: uint16(58877), + 24: uint16(58878), + 25: uint16(58879), + 26: uint16(58880), + 27: uint16(58881), + 28: uint16(58882), + 29: uint16(58883), + 30: uint16(58884), + 31: uint16(58885), + 32: uint16(58886), + 33: uint16(58887), + 34: uint16(58888), + 35: uint16(58889), + 36: uint16(58890), + 37: uint16(58891), + 38: uint16(58892), + 39: uint16(58893), + 40: uint16(58894), + 41: uint16(58895), + 42: uint16(58896), + 43: uint16(58897), + 44: uint16(58898), + 45: uint16(58899), + 46: uint16(58900), + 47: uint16(58901), + 48: uint16(58902), + 49: uint16(58903), + 50: uint16(58904), + 51: uint16(58905), + 52: uint16(58906), + 53: uint16(58907), + 54: uint16(58908), + 55: uint16(58909), + 56: uint16(58910), + 57: uint16(58911), + 58: uint16(58912), + 59: uint16(58913), + 60: uint16(58914), + 61: uint16(58915), + 62: uint16(58916), + 63: uint16(58917), + 64: uint16(58918), + 65: uint16(58919), + 66: uint16(58920), + 67: uint16(58921), + 68: uint16(58922), + 69: uint16(58923), + 70: uint16(58924), + 71: uint16(58925), + 72: uint16(58926), + 73: uint16(58927), + 74: uint16(58928), + 75: uint16(58929), + 76: uint16(58930), + 77: uint16(58931), + 78: uint16(58932), + 79: uint16(58933), + 80: uint16(58934), + 81: uint16(58935), + 82: uint16(58936), + 83: uint16(58937), + 84: uint16(58938), + 85: uint16(58939), + 86: uint16(58940), + 87: uint16(58941), + 88: uint16(58942), + 89: uint16(58943), + 90: uint16(58944), + 91: uint16(58945), + 92: uint16(58946), + 93: uint16(58947), + 94: uint16(58948), + 95: uint16(58949), + 96: uint16(12353), + 97: uint16(12354), + 98: uint16(12355), + 99: uint16(12356), + 100: uint16(12357), + 101: uint16(12358), + 102: uint16(12359), + 103: uint16(12360), + 104: uint16(12361), + 105: uint16(12362), + 106: uint16(12363), + 107: uint16(12364), + 108: uint16(12365), + 109: uint16(12366), + 110: uint16(12367), + 111: uint16(12368), + 112: uint16(12369), + 113: uint16(12370), + 114: uint16(12371), + 115: uint16(12372), + 116: uint16(12373), + 117: uint16(12374), + 118: uint16(12375), + 119: uint16(12376), + 120: uint16(12377), + 121: uint16(12378), + 122: uint16(12379), + 123: uint16(12380), + 124: uint16(12381), + 125: uint16(12382), + 126: uint16(12383), + 127: uint16(12384), + 128: uint16(12385), + 129: uint16(12386), + 130: uint16(12387), + 131: uint16(12388), + 132: uint16(12389), + 133: uint16(12390), + 134: uint16(12391), + 135: uint16(12392), + 136: uint16(12393), + 137: uint16(12394), + 138: uint16(12395), + 139: uint16(12396), + 140: uint16(12397), + 141: uint16(12398), + 142: uint16(12399), + 143: uint16(12400), + 144: uint16(12401), + 145: uint16(12402), + 146: uint16(12403), + 147: uint16(12404), + 148: uint16(12405), + 149: uint16(12406), + 150: uint16(12407), + 151: uint16(12408), + 152: uint16(12409), + 153: uint16(12410), + 154: uint16(12411), + 155: uint16(12412), + 156: uint16(12413), + 157: uint16(12414), + 158: uint16(12415), + 159: uint16(12416), + 160: uint16(12417), + 161: uint16(12418), + 162: uint16(12419), + 163: uint16(12420), + 164: uint16(12421), + 165: uint16(12422), + 166: uint16(12423), + 167: uint16(12424), + 168: uint16(12425), + 169: uint16(12426), + 170: uint16(12427), + 171: uint16(12428), + 172: uint16(12429), + 173: uint16(12430), + 174: uint16(12431), + 175: uint16(12432), + 176: uint16(12433), + 177: uint16(12434), + 178: uint16(12435), + 179: uint16(59250), + 180: uint16(59251), + 181: uint16(59252), + 182: uint16(59253), + 183: uint16(59254), + 184: uint16(59255), + 185: uint16(59256), + 186: uint16(59257), + 187: uint16(59258), + 188: uint16(59259), + 189: uint16(59260), + }, + 36: { + 0: uint16(58950), + 1: uint16(58951), + 2: uint16(58952), + 3: uint16(58953), + 4: uint16(58954), + 5: uint16(58955), + 6: uint16(58956), + 7: uint16(58957), + 8: uint16(58958), + 9: uint16(58959), + 10: uint16(58960), + 11: uint16(58961), + 12: uint16(58962), + 13: uint16(58963), + 14: uint16(58964), + 15: uint16(58965), + 16: uint16(58966), + 17: uint16(58967), + 18: uint16(58968), + 19: uint16(58969), + 20: uint16(58970), + 21: uint16(58971), + 22: uint16(58972), + 23: uint16(58973), + 24: uint16(58974), + 25: uint16(58975), + 26: uint16(58976), + 27: uint16(58977), + 28: uint16(58978), + 29: uint16(58979), + 30: uint16(58980), + 31: uint16(58981), + 32: uint16(58982), + 33: uint16(58983), + 34: uint16(58984), + 35: uint16(58985), + 36: uint16(58986), + 37: uint16(58987), + 38: uint16(58988), + 39: uint16(58989), + 40: uint16(58990), + 41: uint16(58991), + 42: uint16(58992), + 43: uint16(58993), + 44: uint16(58994), + 45: uint16(58995), + 46: uint16(58996), + 47: uint16(58997), + 48: uint16(58998), + 49: uint16(58999), + 50: uint16(59000), + 51: uint16(59001), + 52: uint16(59002), + 53: uint16(59003), + 54: uint16(59004), + 55: uint16(59005), + 56: uint16(59006), + 57: uint16(59007), + 58: uint16(59008), + 59: uint16(59009), + 60: uint16(59010), + 61: uint16(59011), + 62: uint16(59012), + 63: uint16(59013), + 64: uint16(59014), + 65: uint16(59015), + 66: uint16(59016), + 67: uint16(59017), + 68: uint16(59018), + 69: uint16(59019), + 70: uint16(59020), + 71: uint16(59021), + 72: uint16(59022), + 73: uint16(59023), + 74: uint16(59024), + 75: uint16(59025), + 76: uint16(59026), + 77: uint16(59027), + 78: uint16(59028), + 79: uint16(59029), + 80: uint16(59030), + 81: uint16(59031), + 82: uint16(59032), + 83: uint16(59033), + 84: uint16(59034), + 85: uint16(59035), + 86: uint16(59036), + 87: uint16(59037), + 88: uint16(59038), + 89: uint16(59039), + 90: uint16(59040), + 91: uint16(59041), + 92: uint16(59042), + 93: uint16(59043), + 94: uint16(59044), + 95: uint16(59045), + 96: uint16(12449), + 97: uint16(12450), + 98: uint16(12451), + 99: uint16(12452), + 100: uint16(12453), + 101: uint16(12454), + 102: uint16(12455), + 103: uint16(12456), + 104: uint16(12457), + 105: uint16(12458), + 106: uint16(12459), + 107: uint16(12460), + 108: uint16(12461), + 109: uint16(12462), + 110: uint16(12463), + 111: uint16(12464), + 112: uint16(12465), + 113: uint16(12466), + 114: uint16(12467), + 115: uint16(12468), + 116: uint16(12469), + 117: uint16(12470), + 118: uint16(12471), + 119: uint16(12472), + 120: uint16(12473), + 121: uint16(12474), + 122: uint16(12475), + 123: uint16(12476), + 124: uint16(12477), + 125: uint16(12478), + 126: uint16(12479), + 127: uint16(12480), + 128: uint16(12481), + 129: uint16(12482), + 130: uint16(12483), + 131: uint16(12484), + 132: uint16(12485), + 133: uint16(12486), + 134: uint16(12487), + 135: uint16(12488), + 136: uint16(12489), + 137: uint16(12490), + 138: uint16(12491), + 139: uint16(12492), + 140: uint16(12493), + 141: uint16(12494), + 142: uint16(12495), + 143: uint16(12496), + 144: uint16(12497), + 145: uint16(12498), + 146: uint16(12499), + 147: uint16(12500), + 148: uint16(12501), + 149: uint16(12502), + 150: uint16(12503), + 151: uint16(12504), + 152: uint16(12505), + 153: uint16(12506), + 154: uint16(12507), + 155: uint16(12508), + 156: uint16(12509), + 157: uint16(12510), + 158: uint16(12511), + 159: uint16(12512), + 160: uint16(12513), + 161: uint16(12514), + 162: uint16(12515), + 163: uint16(12516), + 164: uint16(12517), + 165: uint16(12518), + 166: uint16(12519), + 167: uint16(12520), + 168: uint16(12521), + 169: uint16(12522), + 170: uint16(12523), + 171: uint16(12524), + 172: uint16(12525), + 173: uint16(12526), + 174: uint16(12527), + 175: uint16(12528), + 176: uint16(12529), + 177: uint16(12530), + 178: uint16(12531), + 179: uint16(12532), + 180: uint16(12533), + 181: uint16(12534), + 182: uint16(59261), + 183: uint16(59262), + 184: uint16(59263), + 185: uint16(59264), + 186: uint16(59265), + 187: uint16(59266), + 188: uint16(59267), + 189: uint16(59268), + }, + 37: { + 0: uint16(59046), + 1: uint16(59047), + 2: uint16(59048), + 3: uint16(59049), + 4: uint16(59050), + 5: uint16(59051), + 6: uint16(59052), + 7: uint16(59053), + 8: uint16(59054), + 9: uint16(59055), + 10: uint16(59056), + 11: uint16(59057), + 12: uint16(59058), + 13: uint16(59059), + 14: uint16(59060), + 15: uint16(59061), + 16: uint16(59062), + 17: uint16(59063), + 18: uint16(59064), + 19: uint16(59065), + 20: uint16(59066), + 21: uint16(59067), + 22: uint16(59068), + 23: uint16(59069), + 24: uint16(59070), + 25: uint16(59071), + 26: uint16(59072), + 27: uint16(59073), + 28: uint16(59074), + 29: uint16(59075), + 30: uint16(59076), + 31: uint16(59077), + 32: uint16(59078), + 33: uint16(59079), + 34: uint16(59080), + 35: uint16(59081), + 36: uint16(59082), + 37: uint16(59083), + 38: uint16(59084), + 39: uint16(59085), + 40: uint16(59086), + 41: uint16(59087), + 42: uint16(59088), + 43: uint16(59089), + 44: uint16(59090), + 45: uint16(59091), + 46: uint16(59092), + 47: uint16(59093), + 48: uint16(59094), + 49: uint16(59095), + 50: uint16(59096), + 51: uint16(59097), + 52: uint16(59098), + 53: uint16(59099), + 54: uint16(59100), + 55: uint16(59101), + 56: uint16(59102), + 57: uint16(59103), + 58: uint16(59104), + 59: uint16(59105), + 60: uint16(59106), + 61: uint16(59107), + 62: uint16(59108), + 63: uint16(59109), + 64: uint16(59110), + 65: uint16(59111), + 66: uint16(59112), + 67: uint16(59113), + 68: uint16(59114), + 69: uint16(59115), + 70: uint16(59116), + 71: uint16(59117), + 72: uint16(59118), + 73: uint16(59119), + 74: uint16(59120), + 75: uint16(59121), + 76: uint16(59122), + 77: uint16(59123), + 78: uint16(59124), + 79: uint16(59125), + 80: uint16(59126), + 81: uint16(59127), + 82: uint16(59128), + 83: uint16(59129), + 84: uint16(59130), + 85: uint16(59131), + 86: uint16(59132), + 87: uint16(59133), + 88: uint16(59134), + 89: uint16(59135), + 90: uint16(59136), + 91: uint16(59137), + 92: uint16(59138), + 93: uint16(59139), + 94: uint16(59140), + 95: uint16(59141), + 96: uint16(913), + 97: uint16(914), + 98: uint16(915), + 99: uint16(916), + 100: uint16(917), + 101: uint16(918), + 102: uint16(919), + 103: uint16(920), + 104: uint16(921), + 105: uint16(922), + 106: uint16(923), + 107: uint16(924), + 108: uint16(925), + 109: uint16(926), + 110: uint16(927), + 111: uint16(928), + 112: uint16(929), + 113: uint16(931), + 114: uint16(932), + 115: uint16(933), + 116: uint16(934), + 117: uint16(935), + 118: uint16(936), + 119: uint16(937), + 120: uint16(59269), + 121: uint16(59270), + 122: uint16(59271), + 123: uint16(59272), + 124: uint16(59273), + 125: uint16(59274), + 126: uint16(59275), + 127: uint16(59276), + 128: uint16(945), + 129: uint16(946), + 130: uint16(947), + 131: uint16(948), + 132: uint16(949), + 133: uint16(950), + 134: uint16(951), + 135: uint16(952), + 136: uint16(953), + 137: uint16(954), + 138: uint16(955), + 139: uint16(956), + 140: uint16(957), + 141: uint16(958), + 142: uint16(959), + 143: uint16(960), + 144: uint16(961), + 145: uint16(963), + 146: uint16(964), + 147: uint16(965), + 148: uint16(966), + 149: uint16(967), + 150: uint16(968), + 151: uint16(969), + 152: uint16(59277), + 153: uint16(59278), + 154: uint16(59279), + 155: uint16(59280), + 156: uint16(59281), + 157: uint16(59282), + 158: uint16(59283), + 159: uint16(65077), + 160: uint16(65078), + 161: uint16(65081), + 162: uint16(65082), + 163: uint16(65087), + 164: uint16(65088), + 165: uint16(65085), + 166: uint16(65086), + 167: uint16(65089), + 168: uint16(65090), + 169: uint16(65091), + 170: uint16(65092), + 171: uint16(59284), + 172: uint16(59285), + 173: uint16(65083), + 174: uint16(65084), + 175: uint16(65079), + 176: uint16(65080), + 177: uint16(65073), + 178: uint16(59286), + 179: uint16(65075), + 180: uint16(65076), + 181: uint16(59287), + 182: uint16(59288), + 183: uint16(59289), + 184: uint16(59290), + 185: uint16(59291), + 186: uint16(59292), + 187: uint16(59293), + 188: uint16(59294), + 189: uint16(59295), + }, + 38: { + 0: uint16(59142), + 1: uint16(59143), + 2: uint16(59144), + 3: uint16(59145), + 4: uint16(59146), + 5: uint16(59147), + 6: uint16(59148), + 7: uint16(59149), + 8: uint16(59150), + 9: uint16(59151), + 10: uint16(59152), + 11: uint16(59153), + 12: uint16(59154), + 13: uint16(59155), + 14: uint16(59156), + 15: uint16(59157), + 16: uint16(59158), + 17: uint16(59159), + 18: uint16(59160), + 19: uint16(59161), + 20: uint16(59162), + 21: uint16(59163), + 22: uint16(59164), + 23: uint16(59165), + 24: uint16(59166), + 25: uint16(59167), + 26: uint16(59168), + 27: uint16(59169), + 28: uint16(59170), + 29: uint16(59171), + 30: uint16(59172), + 31: uint16(59173), + 32: uint16(59174), + 33: uint16(59175), + 34: uint16(59176), + 35: uint16(59177), + 36: uint16(59178), + 37: uint16(59179), + 38: uint16(59180), + 39: uint16(59181), + 40: uint16(59182), + 41: uint16(59183), + 42: uint16(59184), + 43: uint16(59185), + 44: uint16(59186), + 45: uint16(59187), + 46: uint16(59188), + 47: uint16(59189), + 48: uint16(59190), + 49: uint16(59191), + 50: uint16(59192), + 51: uint16(59193), + 52: uint16(59194), + 53: uint16(59195), + 54: uint16(59196), + 55: uint16(59197), + 56: uint16(59198), + 57: uint16(59199), + 58: uint16(59200), + 59: uint16(59201), + 60: uint16(59202), + 61: uint16(59203), + 62: uint16(59204), + 63: uint16(59205), + 64: uint16(59206), + 65: uint16(59207), + 66: uint16(59208), + 67: uint16(59209), + 68: uint16(59210), + 69: uint16(59211), + 70: uint16(59212), + 71: uint16(59213), + 72: uint16(59214), + 73: uint16(59215), + 74: uint16(59216), + 75: uint16(59217), + 76: uint16(59218), + 77: uint16(59219), + 78: uint16(59220), + 79: uint16(59221), + 80: uint16(59222), + 81: uint16(59223), + 82: uint16(59224), + 83: uint16(59225), + 84: uint16(59226), + 85: uint16(59227), + 86: uint16(59228), + 87: uint16(59229), + 88: uint16(59230), + 89: uint16(59231), + 90: uint16(59232), + 91: uint16(59233), + 92: uint16(59234), + 93: uint16(59235), + 94: uint16(59236), + 95: uint16(59237), + 96: uint16(1040), + 97: uint16(1041), + 98: uint16(1042), + 99: uint16(1043), + 100: uint16(1044), + 101: uint16(1045), + 102: uint16(1025), + 103: uint16(1046), + 104: uint16(1047), + 105: uint16(1048), + 106: uint16(1049), + 107: uint16(1050), + 108: uint16(1051), + 109: uint16(1052), + 110: uint16(1053), + 111: uint16(1054), + 112: uint16(1055), + 113: uint16(1056), + 114: uint16(1057), + 115: uint16(1058), + 116: uint16(1059), + 117: uint16(1060), + 118: uint16(1061), + 119: uint16(1062), + 120: uint16(1063), + 121: uint16(1064), + 122: uint16(1065), + 123: uint16(1066), + 124: uint16(1067), + 125: uint16(1068), + 126: uint16(1069), + 127: uint16(1070), + 128: uint16(1071), + 129: uint16(59296), + 130: uint16(59297), + 131: uint16(59298), + 132: uint16(59299), + 133: uint16(59300), + 134: uint16(59301), + 135: uint16(59302), + 136: uint16(59303), + 137: uint16(59304), + 138: uint16(59305), + 139: uint16(59306), + 140: uint16(59307), + 141: uint16(59308), + 142: uint16(59309), + 143: uint16(59310), + 144: uint16(1072), + 145: uint16(1073), + 146: uint16(1074), + 147: uint16(1075), + 148: uint16(1076), + 149: uint16(1077), + 150: uint16(1105), + 151: uint16(1078), + 152: uint16(1079), + 153: uint16(1080), + 154: uint16(1081), + 155: uint16(1082), + 156: uint16(1083), + 157: uint16(1084), + 158: uint16(1085), + 159: uint16(1086), + 160: uint16(1087), + 161: uint16(1088), + 162: uint16(1089), + 163: uint16(1090), + 164: uint16(1091), + 165: uint16(1092), + 166: uint16(1093), + 167: uint16(1094), + 168: uint16(1095), + 169: uint16(1096), + 170: uint16(1097), + 171: uint16(1098), + 172: uint16(1099), + 173: uint16(1100), + 174: uint16(1101), + 175: uint16(1102), + 176: uint16(1103), + 177: uint16(59311), + 178: uint16(59312), + 179: uint16(59313), + 180: uint16(59314), + 181: uint16(59315), + 182: uint16(59316), + 183: uint16(59317), + 184: uint16(59318), + 185: uint16(59319), + 186: uint16(59320), + 187: uint16(59321), + 188: uint16(59322), + 189: uint16(59323), + }, + 39: { + 0: uint16(714), + 1: uint16(715), + 2: uint16(729), + 3: uint16(8211), + 4: uint16(8213), + 5: uint16(8229), + 6: uint16(8245), + 7: uint16(8453), + 8: uint16(8457), + 9: uint16(8598), + 10: uint16(8599), + 11: uint16(8600), + 12: uint16(8601), + 13: uint16(8725), + 14: uint16(8735), + 15: uint16(8739), + 16: uint16(8786), + 17: uint16(8806), + 18: uint16(8807), + 19: uint16(8895), + 20: uint16(9552), + 21: uint16(9553), + 22: uint16(9554), + 23: uint16(9555), + 24: uint16(9556), + 25: uint16(9557), + 26: uint16(9558), + 27: uint16(9559), + 28: uint16(9560), + 29: uint16(9561), + 30: uint16(9562), + 31: uint16(9563), + 32: uint16(9564), + 33: uint16(9565), + 34: uint16(9566), + 35: uint16(9567), + 36: uint16(9568), + 37: uint16(9569), + 38: uint16(9570), + 39: uint16(9571), + 40: uint16(9572), + 41: uint16(9573), + 42: uint16(9574), + 43: uint16(9575), + 44: uint16(9576), + 45: uint16(9577), + 46: uint16(9578), + 47: uint16(9579), + 48: uint16(9580), + 49: uint16(9581), + 50: uint16(9582), + 51: uint16(9583), + 52: uint16(9584), + 53: uint16(9585), + 54: uint16(9586), + 55: uint16(9587), + 56: uint16(9601), + 57: uint16(9602), + 58: uint16(9603), + 59: uint16(9604), + 60: uint16(9605), + 61: uint16(9606), + 62: uint16(9607), + 63: uint16(9608), + 64: uint16(9609), + 65: uint16(9610), + 66: uint16(9611), + 67: uint16(9612), + 68: uint16(9613), + 69: uint16(9614), + 70: uint16(9615), + 71: uint16(9619), + 72: uint16(9620), + 73: uint16(9621), + 74: uint16(9660), + 75: uint16(9661), + 76: uint16(9698), + 77: uint16(9699), + 78: uint16(9700), + 79: uint16(9701), + 80: uint16(9737), + 81: uint16(8853), + 82: uint16(12306), + 83: uint16(12317), + 84: uint16(12318), + 85: uint16(59324), + 86: uint16(59325), + 87: uint16(59326), + 88: uint16(59327), + 89: uint16(59328), + 90: uint16(59329), + 91: uint16(59330), + 92: uint16(59331), + 93: uint16(59332), + 94: uint16(59333), + 95: uint16(59334), + 96: uint16(257), + 97: uint16(225), + 98: uint16(462), + 99: uint16(224), + 100: uint16(275), + 101: uint16(233), + 102: uint16(283), + 103: uint16(232), + 104: uint16(299), + 105: uint16(237), + 106: uint16(464), + 107: uint16(236), + 108: uint16(333), + 109: uint16(243), + 110: uint16(466), + 111: uint16(242), + 112: uint16(363), + 113: uint16(250), + 114: uint16(468), + 115: uint16(249), + 116: uint16(470), + 117: uint16(472), + 118: uint16(474), + 119: uint16(476), + 120: uint16(252), + 121: uint16(234), + 122: uint16(593), + 123: uint16(59335), + 124: uint16(324), + 125: uint16(328), + 126: uint16(505), + 127: uint16(609), + 128: uint16(59337), + 129: uint16(59338), + 130: uint16(59339), + 131: uint16(59340), + 132: uint16(12549), + 133: uint16(12550), + 134: uint16(12551), + 135: uint16(12552), + 136: uint16(12553), + 137: uint16(12554), + 138: uint16(12555), + 139: uint16(12556), + 140: uint16(12557), + 141: uint16(12558), + 142: uint16(12559), + 143: uint16(12560), + 144: uint16(12561), + 145: uint16(12562), + 146: uint16(12563), + 147: uint16(12564), + 148: uint16(12565), + 149: uint16(12566), + 150: uint16(12567), + 151: uint16(12568), + 152: uint16(12569), + 153: uint16(12570), + 154: uint16(12571), + 155: uint16(12572), + 156: uint16(12573), + 157: uint16(12574), + 158: uint16(12575), + 159: uint16(12576), + 160: uint16(12577), + 161: uint16(12578), + 162: uint16(12579), + 163: uint16(12580), + 164: uint16(12581), + 165: uint16(12582), + 166: uint16(12583), + 167: uint16(12584), + 168: uint16(12585), + 169: uint16(59341), + 170: uint16(59342), + 171: uint16(59343), + 172: uint16(59344), + 173: uint16(59345), + 174: uint16(59346), + 175: uint16(59347), + 176: uint16(59348), + 177: uint16(59349), + 178: uint16(59350), + 179: uint16(59351), + 180: uint16(59352), + 181: uint16(59353), + 182: uint16(59354), + 183: uint16(59355), + 184: uint16(59356), + 185: uint16(59357), + 186: uint16(59358), + 187: uint16(59359), + 188: uint16(59360), + 189: uint16(59361), + }, + 40: { + 0: uint16(12321), + 1: uint16(12322), + 2: uint16(12323), + 3: uint16(12324), + 4: uint16(12325), + 5: uint16(12326), + 6: uint16(12327), + 7: uint16(12328), + 8: uint16(12329), + 9: uint16(12963), + 10: uint16(13198), + 11: uint16(13199), + 12: uint16(13212), + 13: uint16(13213), + 14: uint16(13214), + 15: uint16(13217), + 16: uint16(13252), + 17: uint16(13262), + 18: uint16(13265), + 19: uint16(13266), + 20: uint16(13269), + 21: uint16(65072), + 22: uint16(65506), + 23: uint16(65508), + 24: uint16(59362), + 25: uint16(8481), + 26: uint16(12849), + 27: uint16(59363), + 28: uint16(8208), + 29: uint16(59364), + 30: uint16(59365), + 31: uint16(59366), + 32: uint16(12540), + 33: uint16(12443), + 34: uint16(12444), + 35: uint16(12541), + 36: uint16(12542), + 37: uint16(12294), + 38: uint16(12445), + 39: uint16(12446), + 40: uint16(65097), + 41: uint16(65098), + 42: uint16(65099), + 43: uint16(65100), + 44: uint16(65101), + 45: uint16(65102), + 46: uint16(65103), + 47: uint16(65104), + 48: uint16(65105), + 49: uint16(65106), + 50: uint16(65108), + 51: uint16(65109), + 52: uint16(65110), + 53: uint16(65111), + 54: uint16(65113), + 55: uint16(65114), + 56: uint16(65115), + 57: uint16(65116), + 58: uint16(65117), + 59: uint16(65118), + 60: uint16(65119), + 61: uint16(65120), + 62: uint16(65121), + 63: uint16(65122), + 64: uint16(65123), + 65: uint16(65124), + 66: uint16(65125), + 67: uint16(65126), + 68: uint16(65128), + 69: uint16(65129), + 70: uint16(65130), + 71: uint16(65131), + 72: uint16(12350), + 73: uint16(12272), + 74: uint16(12273), + 75: uint16(12274), + 76: uint16(12275), + 77: uint16(12276), + 78: uint16(12277), + 79: uint16(12278), + 80: uint16(12279), + 81: uint16(12280), + 82: uint16(12281), + 83: uint16(12282), + 84: uint16(12283), + 85: uint16(12295), + 86: uint16(59380), + 87: uint16(59381), + 88: uint16(59382), + 89: uint16(59383), + 90: uint16(59384), + 91: uint16(59385), + 92: uint16(59386), + 93: uint16(59387), + 94: uint16(59388), + 95: uint16(59389), + 96: uint16(59390), + 97: uint16(59391), + 98: uint16(59392), + 99: uint16(9472), + 100: uint16(9473), + 101: uint16(9474), + 102: uint16(9475), + 103: uint16(9476), + 104: uint16(9477), + 105: uint16(9478), + 106: uint16(9479), + 107: uint16(9480), + 108: uint16(9481), + 109: uint16(9482), + 110: uint16(9483), + 111: uint16(9484), + 112: uint16(9485), + 113: uint16(9486), + 114: uint16(9487), + 115: uint16(9488), + 116: uint16(9489), + 117: uint16(9490), + 118: uint16(9491), + 119: uint16(9492), + 120: uint16(9493), + 121: uint16(9494), + 122: uint16(9495), + 123: uint16(9496), + 124: uint16(9497), + 125: uint16(9498), + 126: uint16(9499), + 127: uint16(9500), + 128: uint16(9501), + 129: uint16(9502), + 130: uint16(9503), + 131: uint16(9504), + 132: uint16(9505), + 133: uint16(9506), + 134: uint16(9507), + 135: uint16(9508), + 136: uint16(9509), + 137: uint16(9510), + 138: uint16(9511), + 139: uint16(9512), + 140: uint16(9513), + 141: uint16(9514), + 142: uint16(9515), + 143: uint16(9516), + 144: uint16(9517), + 145: uint16(9518), + 146: uint16(9519), + 147: uint16(9520), + 148: uint16(9521), + 149: uint16(9522), + 150: uint16(9523), + 151: uint16(9524), + 152: uint16(9525), + 153: uint16(9526), + 154: uint16(9527), + 155: uint16(9528), + 156: uint16(9529), + 157: uint16(9530), + 158: uint16(9531), + 159: uint16(9532), + 160: uint16(9533), + 161: uint16(9534), + 162: uint16(9535), + 163: uint16(9536), + 164: uint16(9537), + 165: uint16(9538), + 166: uint16(9539), + 167: uint16(9540), + 168: uint16(9541), + 169: uint16(9542), + 170: uint16(9543), + 171: uint16(9544), + 172: uint16(9545), + 173: uint16(9546), + 174: uint16(9547), + 175: uint16(59393), + 176: uint16(59394), + 177: uint16(59395), + 178: uint16(59396), + 179: uint16(59397), + 180: uint16(59398), + 181: uint16(59399), + 182: uint16(59400), + 183: uint16(59401), + 184: uint16(59402), + 185: uint16(59403), + 186: uint16(59404), + 187: uint16(59405), + 188: uint16(59406), + 189: uint16(59407), + }, + 41: { + 0: uint16(29404), + 1: uint16(29405), + 2: uint16(29407), + 3: uint16(29410), + 4: uint16(29411), + 5: uint16(29412), + 6: uint16(29413), + 7: uint16(29414), + 8: uint16(29415), + 9: uint16(29418), + 10: uint16(29419), + 11: uint16(29429), + 12: uint16(29430), + 13: uint16(29433), + 14: uint16(29437), + 15: uint16(29438), + 16: uint16(29439), + 17: uint16(29440), + 18: uint16(29442), + 19: uint16(29444), + 20: uint16(29445), + 21: uint16(29446), + 22: uint16(29447), + 23: uint16(29448), + 24: uint16(29449), + 25: uint16(29451), + 26: uint16(29452), + 27: uint16(29453), + 28: uint16(29455), + 29: uint16(29456), + 30: uint16(29457), + 31: uint16(29458), + 32: uint16(29460), + 33: uint16(29464), + 34: uint16(29465), + 35: uint16(29466), + 36: uint16(29471), + 37: uint16(29472), + 38: uint16(29475), + 39: uint16(29476), + 40: uint16(29478), + 41: uint16(29479), + 42: uint16(29480), + 43: uint16(29485), + 44: uint16(29487), + 45: uint16(29488), + 46: uint16(29490), + 47: uint16(29491), + 48: uint16(29493), + 49: uint16(29494), + 50: uint16(29498), + 51: uint16(29499), + 52: uint16(29500), + 53: uint16(29501), + 54: uint16(29504), + 55: uint16(29505), + 56: uint16(29506), + 57: uint16(29507), + 58: uint16(29508), + 59: uint16(29509), + 60: uint16(29510), + 61: uint16(29511), + 62: uint16(29512), + 63: uint16(29513), + 64: uint16(29514), + 65: uint16(29515), + 66: uint16(29516), + 67: uint16(29518), + 68: uint16(29519), + 69: uint16(29521), + 70: uint16(29523), + 71: uint16(29524), + 72: uint16(29525), + 73: uint16(29526), + 74: uint16(29528), + 75: uint16(29529), + 76: uint16(29530), + 77: uint16(29531), + 78: uint16(29532), + 79: uint16(29533), + 80: uint16(29534), + 81: uint16(29535), + 82: uint16(29537), + 83: uint16(29538), + 84: uint16(29539), + 85: uint16(29540), + 86: uint16(29541), + 87: uint16(29542), + 88: uint16(29543), + 89: uint16(29544), + 90: uint16(29545), + 91: uint16(29546), + 92: uint16(29547), + 93: uint16(29550), + 94: uint16(29552), + 95: uint16(29553), + 96: uint16(57344), + 97: uint16(57345), + 98: uint16(57346), + 99: uint16(57347), + 100: uint16(57348), + 101: uint16(57349), + 102: uint16(57350), + 103: uint16(57351), + 104: uint16(57352), + 105: uint16(57353), + 106: uint16(57354), + 107: uint16(57355), + 108: uint16(57356), + 109: uint16(57357), + 110: uint16(57358), + 111: uint16(57359), + 112: uint16(57360), + 113: uint16(57361), + 114: uint16(57362), + 115: uint16(57363), + 116: uint16(57364), + 117: uint16(57365), + 118: uint16(57366), + 119: uint16(57367), + 120: uint16(57368), + 121: uint16(57369), + 122: uint16(57370), + 123: uint16(57371), + 124: uint16(57372), + 125: uint16(57373), + 126: uint16(57374), + 127: uint16(57375), + 128: uint16(57376), + 129: uint16(57377), + 130: uint16(57378), + 131: uint16(57379), + 132: uint16(57380), + 133: uint16(57381), + 134: uint16(57382), + 135: uint16(57383), + 136: uint16(57384), + 137: uint16(57385), + 138: uint16(57386), + 139: uint16(57387), + 140: uint16(57388), + 141: uint16(57389), + 142: uint16(57390), + 143: uint16(57391), + 144: uint16(57392), + 145: uint16(57393), + 146: uint16(57394), + 147: uint16(57395), + 148: uint16(57396), + 149: uint16(57397), + 150: uint16(57398), + 151: uint16(57399), + 152: uint16(57400), + 153: uint16(57401), + 154: uint16(57402), + 155: uint16(57403), + 156: uint16(57404), + 157: uint16(57405), + 158: uint16(57406), + 159: uint16(57407), + 160: uint16(57408), + 161: uint16(57409), + 162: uint16(57410), + 163: uint16(57411), + 164: uint16(57412), + 165: uint16(57413), + 166: uint16(57414), + 167: uint16(57415), + 168: uint16(57416), + 169: uint16(57417), + 170: uint16(57418), + 171: uint16(57419), + 172: uint16(57420), + 173: uint16(57421), + 174: uint16(57422), + 175: uint16(57423), + 176: uint16(57424), + 177: uint16(57425), + 178: uint16(57426), + 179: uint16(57427), + 180: uint16(57428), + 181: uint16(57429), + 182: uint16(57430), + 183: uint16(57431), + 184: uint16(57432), + 185: uint16(57433), + 186: uint16(57434), + 187: uint16(57435), + 188: uint16(57436), + 189: uint16(57437), + }, + 42: { + 0: uint16(29554), + 1: uint16(29555), + 2: uint16(29556), + 3: uint16(29557), + 4: uint16(29558), + 5: uint16(29559), + 6: uint16(29560), + 7: uint16(29561), + 8: uint16(29562), + 9: uint16(29563), + 10: uint16(29564), + 11: uint16(29565), + 12: uint16(29567), + 13: uint16(29568), + 14: uint16(29569), + 15: uint16(29570), + 16: uint16(29571), + 17: uint16(29573), + 18: uint16(29574), + 19: uint16(29576), + 20: uint16(29578), + 21: uint16(29580), + 22: uint16(29581), + 23: uint16(29583), + 24: uint16(29584), + 25: uint16(29586), + 26: uint16(29587), + 27: uint16(29588), + 28: uint16(29589), + 29: uint16(29591), + 30: uint16(29592), + 31: uint16(29593), + 32: uint16(29594), + 33: uint16(29596), + 34: uint16(29597), + 35: uint16(29598), + 36: uint16(29600), + 37: uint16(29601), + 38: uint16(29603), + 39: uint16(29604), + 40: uint16(29605), + 41: uint16(29606), + 42: uint16(29607), + 43: uint16(29608), + 44: uint16(29610), + 45: uint16(29612), + 46: uint16(29613), + 47: uint16(29617), + 48: uint16(29620), + 49: uint16(29621), + 50: uint16(29622), + 51: uint16(29624), + 52: uint16(29625), + 53: uint16(29628), + 54: uint16(29629), + 55: uint16(29630), + 56: uint16(29631), + 57: uint16(29633), + 58: uint16(29635), + 59: uint16(29636), + 60: uint16(29637), + 61: uint16(29638), + 62: uint16(29639), + 63: uint16(29643), + 64: uint16(29644), + 65: uint16(29646), + 66: uint16(29650), + 67: uint16(29651), + 68: uint16(29652), + 69: uint16(29653), + 70: uint16(29654), + 71: uint16(29655), + 72: uint16(29656), + 73: uint16(29658), + 74: uint16(29659), + 75: uint16(29660), + 76: uint16(29661), + 77: uint16(29663), + 78: uint16(29665), + 79: uint16(29666), + 80: uint16(29667), + 81: uint16(29668), + 82: uint16(29670), + 83: uint16(29672), + 84: uint16(29674), + 85: uint16(29675), + 86: uint16(29676), + 87: uint16(29678), + 88: uint16(29679), + 89: uint16(29680), + 90: uint16(29681), + 91: uint16(29683), + 92: uint16(29684), + 93: uint16(29685), + 94: uint16(29686), + 95: uint16(29687), + 96: uint16(57438), + 97: uint16(57439), + 98: uint16(57440), + 99: uint16(57441), + 100: uint16(57442), + 101: uint16(57443), + 102: uint16(57444), + 103: uint16(57445), + 104: uint16(57446), + 105: uint16(57447), + 106: uint16(57448), + 107: uint16(57449), + 108: uint16(57450), + 109: uint16(57451), + 110: uint16(57452), + 111: uint16(57453), + 112: uint16(57454), + 113: uint16(57455), + 114: uint16(57456), + 115: uint16(57457), + 116: uint16(57458), + 117: uint16(57459), + 118: uint16(57460), + 119: uint16(57461), + 120: uint16(57462), + 121: uint16(57463), + 122: uint16(57464), + 123: uint16(57465), + 124: uint16(57466), + 125: uint16(57467), + 126: uint16(57468), + 127: uint16(57469), + 128: uint16(57470), + 129: uint16(57471), + 130: uint16(57472), + 131: uint16(57473), + 132: uint16(57474), + 133: uint16(57475), + 134: uint16(57476), + 135: uint16(57477), + 136: uint16(57478), + 137: uint16(57479), + 138: uint16(57480), + 139: uint16(57481), + 140: uint16(57482), + 141: uint16(57483), + 142: uint16(57484), + 143: uint16(57485), + 144: uint16(57486), + 145: uint16(57487), + 146: uint16(57488), + 147: uint16(57489), + 148: uint16(57490), + 149: uint16(57491), + 150: uint16(57492), + 151: uint16(57493), + 152: uint16(57494), + 153: uint16(57495), + 154: uint16(57496), + 155: uint16(57497), + 156: uint16(57498), + 157: uint16(57499), + 158: uint16(57500), + 159: uint16(57501), + 160: uint16(57502), + 161: uint16(57503), + 162: uint16(57504), + 163: uint16(57505), + 164: uint16(57506), + 165: uint16(57507), + 166: uint16(57508), + 167: uint16(57509), + 168: uint16(57510), + 169: uint16(57511), + 170: uint16(57512), + 171: uint16(57513), + 172: uint16(57514), + 173: uint16(57515), + 174: uint16(57516), + 175: uint16(57517), + 176: uint16(57518), + 177: uint16(57519), + 178: uint16(57520), + 179: uint16(57521), + 180: uint16(57522), + 181: uint16(57523), + 182: uint16(57524), + 183: uint16(57525), + 184: uint16(57526), + 185: uint16(57527), + 186: uint16(57528), + 187: uint16(57529), + 188: uint16(57530), + 189: uint16(57531), + }, + 43: { + 0: uint16(29688), + 1: uint16(29689), + 2: uint16(29690), + 3: uint16(29691), + 4: uint16(29692), + 5: uint16(29693), + 6: uint16(29694), + 7: uint16(29695), + 8: uint16(29696), + 9: uint16(29697), + 10: uint16(29698), + 11: uint16(29700), + 12: uint16(29703), + 13: uint16(29704), + 14: uint16(29707), + 15: uint16(29708), + 16: uint16(29709), + 17: uint16(29710), + 18: uint16(29713), + 19: uint16(29714), + 20: uint16(29715), + 21: uint16(29716), + 22: uint16(29717), + 23: uint16(29718), + 24: uint16(29719), + 25: uint16(29720), + 26: uint16(29721), + 27: uint16(29724), + 28: uint16(29725), + 29: uint16(29726), + 30: uint16(29727), + 31: uint16(29728), + 32: uint16(29729), + 33: uint16(29731), + 34: uint16(29732), + 35: uint16(29735), + 36: uint16(29737), + 37: uint16(29739), + 38: uint16(29741), + 39: uint16(29743), + 40: uint16(29745), + 41: uint16(29746), + 42: uint16(29751), + 43: uint16(29752), + 44: uint16(29753), + 45: uint16(29754), + 46: uint16(29755), + 47: uint16(29757), + 48: uint16(29758), + 49: uint16(29759), + 50: uint16(29760), + 51: uint16(29762), + 52: uint16(29763), + 53: uint16(29764), + 54: uint16(29765), + 55: uint16(29766), + 56: uint16(29767), + 57: uint16(29768), + 58: uint16(29769), + 59: uint16(29770), + 60: uint16(29771), + 61: uint16(29772), + 62: uint16(29773), + 63: uint16(29774), + 64: uint16(29775), + 65: uint16(29776), + 66: uint16(29777), + 67: uint16(29778), + 68: uint16(29779), + 69: uint16(29780), + 70: uint16(29782), + 71: uint16(29784), + 72: uint16(29789), + 73: uint16(29792), + 74: uint16(29793), + 75: uint16(29794), + 76: uint16(29795), + 77: uint16(29796), + 78: uint16(29797), + 79: uint16(29798), + 80: uint16(29799), + 81: uint16(29800), + 82: uint16(29801), + 83: uint16(29802), + 84: uint16(29803), + 85: uint16(29804), + 86: uint16(29806), + 87: uint16(29807), + 88: uint16(29809), + 89: uint16(29810), + 90: uint16(29811), + 91: uint16(29812), + 92: uint16(29813), + 93: uint16(29816), + 94: uint16(29817), + 95: uint16(29818), + 96: uint16(57532), + 97: uint16(57533), + 98: uint16(57534), + 99: uint16(57535), + 100: uint16(57536), + 101: uint16(57537), + 102: uint16(57538), + 103: uint16(57539), + 104: uint16(57540), + 105: uint16(57541), + 106: uint16(57542), + 107: uint16(57543), + 108: uint16(57544), + 109: uint16(57545), + 110: uint16(57546), + 111: uint16(57547), + 112: uint16(57548), + 113: uint16(57549), + 114: uint16(57550), + 115: uint16(57551), + 116: uint16(57552), + 117: uint16(57553), + 118: uint16(57554), + 119: uint16(57555), + 120: uint16(57556), + 121: uint16(57557), + 122: uint16(57558), + 123: uint16(57559), + 124: uint16(57560), + 125: uint16(57561), + 126: uint16(57562), + 127: uint16(57563), + 128: uint16(57564), + 129: uint16(57565), + 130: uint16(57566), + 131: uint16(57567), + 132: uint16(57568), + 133: uint16(57569), + 134: uint16(57570), + 135: uint16(57571), + 136: uint16(57572), + 137: uint16(57573), + 138: uint16(57574), + 139: uint16(57575), + 140: uint16(57576), + 141: uint16(57577), + 142: uint16(57578), + 143: uint16(57579), + 144: uint16(57580), + 145: uint16(57581), + 146: uint16(57582), + 147: uint16(57583), + 148: uint16(57584), + 149: uint16(57585), + 150: uint16(57586), + 151: uint16(57587), + 152: uint16(57588), + 153: uint16(57589), + 154: uint16(57590), + 155: uint16(57591), + 156: uint16(57592), + 157: uint16(57593), + 158: uint16(57594), + 159: uint16(57595), + 160: uint16(57596), + 161: uint16(57597), + 162: uint16(57598), + 163: uint16(57599), + 164: uint16(57600), + 165: uint16(57601), + 166: uint16(57602), + 167: uint16(57603), + 168: uint16(57604), + 169: uint16(57605), + 170: uint16(57606), + 171: uint16(57607), + 172: uint16(57608), + 173: uint16(57609), + 174: uint16(57610), + 175: uint16(57611), + 176: uint16(57612), + 177: uint16(57613), + 178: uint16(57614), + 179: uint16(57615), + 180: uint16(57616), + 181: uint16(57617), + 182: uint16(57618), + 183: uint16(57619), + 184: uint16(57620), + 185: uint16(57621), + 186: uint16(57622), + 187: uint16(57623), + 188: uint16(57624), + 189: uint16(57625), + }, + 44: { + 0: uint16(29819), + 1: uint16(29820), + 2: uint16(29821), + 3: uint16(29823), + 4: uint16(29826), + 5: uint16(29828), + 6: uint16(29829), + 7: uint16(29830), + 8: uint16(29832), + 9: uint16(29833), + 10: uint16(29834), + 11: uint16(29836), + 12: uint16(29837), + 13: uint16(29839), + 14: uint16(29841), + 15: uint16(29842), + 16: uint16(29843), + 17: uint16(29844), + 18: uint16(29845), + 19: uint16(29846), + 20: uint16(29847), + 21: uint16(29848), + 22: uint16(29849), + 23: uint16(29850), + 24: uint16(29851), + 25: uint16(29853), + 26: uint16(29855), + 27: uint16(29856), + 28: uint16(29857), + 29: uint16(29858), + 30: uint16(29859), + 31: uint16(29860), + 32: uint16(29861), + 33: uint16(29862), + 34: uint16(29866), + 35: uint16(29867), + 36: uint16(29868), + 37: uint16(29869), + 38: uint16(29870), + 39: uint16(29871), + 40: uint16(29872), + 41: uint16(29873), + 42: uint16(29874), + 43: uint16(29875), + 44: uint16(29876), + 45: uint16(29877), + 46: uint16(29878), + 47: uint16(29879), + 48: uint16(29880), + 49: uint16(29881), + 50: uint16(29883), + 51: uint16(29884), + 52: uint16(29885), + 53: uint16(29886), + 54: uint16(29887), + 55: uint16(29888), + 56: uint16(29889), + 57: uint16(29890), + 58: uint16(29891), + 59: uint16(29892), + 60: uint16(29893), + 61: uint16(29894), + 62: uint16(29895), + 63: uint16(29896), + 64: uint16(29897), + 65: uint16(29898), + 66: uint16(29899), + 67: uint16(29900), + 68: uint16(29901), + 69: uint16(29902), + 70: uint16(29903), + 71: uint16(29904), + 72: uint16(29905), + 73: uint16(29907), + 74: uint16(29908), + 75: uint16(29909), + 76: uint16(29910), + 77: uint16(29911), + 78: uint16(29912), + 79: uint16(29913), + 80: uint16(29914), + 81: uint16(29915), + 82: uint16(29917), + 83: uint16(29919), + 84: uint16(29921), + 85: uint16(29925), + 86: uint16(29927), + 87: uint16(29928), + 88: uint16(29929), + 89: uint16(29930), + 90: uint16(29931), + 91: uint16(29932), + 92: uint16(29933), + 93: uint16(29936), + 94: uint16(29937), + 95: uint16(29938), + 96: uint16(57626), + 97: uint16(57627), + 98: uint16(57628), + 99: uint16(57629), + 100: uint16(57630), + 101: uint16(57631), + 102: uint16(57632), + 103: uint16(57633), + 104: uint16(57634), + 105: uint16(57635), + 106: uint16(57636), + 107: uint16(57637), + 108: uint16(57638), + 109: uint16(57639), + 110: uint16(57640), + 111: uint16(57641), + 112: uint16(57642), + 113: uint16(57643), + 114: uint16(57644), + 115: uint16(57645), + 116: uint16(57646), + 117: uint16(57647), + 118: uint16(57648), + 119: uint16(57649), + 120: uint16(57650), + 121: uint16(57651), + 122: uint16(57652), + 123: uint16(57653), + 124: uint16(57654), + 125: uint16(57655), + 126: uint16(57656), + 127: uint16(57657), + 128: uint16(57658), + 129: uint16(57659), + 130: uint16(57660), + 131: uint16(57661), + 132: uint16(57662), + 133: uint16(57663), + 134: uint16(57664), + 135: uint16(57665), + 136: uint16(57666), + 137: uint16(57667), + 138: uint16(57668), + 139: uint16(57669), + 140: uint16(57670), + 141: uint16(57671), + 142: uint16(57672), + 143: uint16(57673), + 144: uint16(57674), + 145: uint16(57675), + 146: uint16(57676), + 147: uint16(57677), + 148: uint16(57678), + 149: uint16(57679), + 150: uint16(57680), + 151: uint16(57681), + 152: uint16(57682), + 153: uint16(57683), + 154: uint16(57684), + 155: uint16(57685), + 156: uint16(57686), + 157: uint16(57687), + 158: uint16(57688), + 159: uint16(57689), + 160: uint16(57690), + 161: uint16(57691), + 162: uint16(57692), + 163: uint16(57693), + 164: uint16(57694), + 165: uint16(57695), + 166: uint16(57696), + 167: uint16(57697), + 168: uint16(57698), + 169: uint16(57699), + 170: uint16(57700), + 171: uint16(57701), + 172: uint16(57702), + 173: uint16(57703), + 174: uint16(57704), + 175: uint16(57705), + 176: uint16(57706), + 177: uint16(57707), + 178: uint16(57708), + 179: uint16(57709), + 180: uint16(57710), + 181: uint16(57711), + 182: uint16(57712), + 183: uint16(57713), + 184: uint16(57714), + 185: uint16(57715), + 186: uint16(57716), + 187: uint16(57717), + 188: uint16(57718), + 189: uint16(57719), + }, + 45: { + 0: uint16(29939), + 1: uint16(29941), + 2: uint16(29944), + 3: uint16(29945), + 4: uint16(29946), + 5: uint16(29947), + 6: uint16(29948), + 7: uint16(29949), + 8: uint16(29950), + 9: uint16(29952), + 10: uint16(29953), + 11: uint16(29954), + 12: uint16(29955), + 13: uint16(29957), + 14: uint16(29958), + 15: uint16(29959), + 16: uint16(29960), + 17: uint16(29961), + 18: uint16(29962), + 19: uint16(29963), + 20: uint16(29964), + 21: uint16(29966), + 22: uint16(29968), + 23: uint16(29970), + 24: uint16(29972), + 25: uint16(29973), + 26: uint16(29974), + 27: uint16(29975), + 28: uint16(29979), + 29: uint16(29981), + 30: uint16(29982), + 31: uint16(29984), + 32: uint16(29985), + 33: uint16(29986), + 34: uint16(29987), + 35: uint16(29988), + 36: uint16(29990), + 37: uint16(29991), + 38: uint16(29994), + 39: uint16(29998), + 40: uint16(30004), + 41: uint16(30006), + 42: uint16(30009), + 43: uint16(30012), + 44: uint16(30013), + 45: uint16(30015), + 46: uint16(30017), + 47: uint16(30018), + 48: uint16(30019), + 49: uint16(30020), + 50: uint16(30022), + 51: uint16(30023), + 52: uint16(30025), + 53: uint16(30026), + 54: uint16(30029), + 55: uint16(30032), + 56: uint16(30033), + 57: uint16(30034), + 58: uint16(30035), + 59: uint16(30037), + 60: uint16(30038), + 61: uint16(30039), + 62: uint16(30040), + 63: uint16(30045), + 64: uint16(30046), + 65: uint16(30047), + 66: uint16(30048), + 67: uint16(30049), + 68: uint16(30050), + 69: uint16(30051), + 70: uint16(30052), + 71: uint16(30055), + 72: uint16(30056), + 73: uint16(30057), + 74: uint16(30059), + 75: uint16(30060), + 76: uint16(30061), + 77: uint16(30062), + 78: uint16(30063), + 79: uint16(30064), + 80: uint16(30065), + 81: uint16(30067), + 82: uint16(30069), + 83: uint16(30070), + 84: uint16(30071), + 85: uint16(30074), + 86: uint16(30075), + 87: uint16(30076), + 88: uint16(30077), + 89: uint16(30078), + 90: uint16(30080), + 91: uint16(30081), + 92: uint16(30082), + 93: uint16(30084), + 94: uint16(30085), + 95: uint16(30087), + 96: uint16(57720), + 97: uint16(57721), + 98: uint16(57722), + 99: uint16(57723), + 100: uint16(57724), + 101: uint16(57725), + 102: uint16(57726), + 103: uint16(57727), + 104: uint16(57728), + 105: uint16(57729), + 106: uint16(57730), + 107: uint16(57731), + 108: uint16(57732), + 109: uint16(57733), + 110: uint16(57734), + 111: uint16(57735), + 112: uint16(57736), + 113: uint16(57737), + 114: uint16(57738), + 115: uint16(57739), + 116: uint16(57740), + 117: uint16(57741), + 118: uint16(57742), + 119: uint16(57743), + 120: uint16(57744), + 121: uint16(57745), + 122: uint16(57746), + 123: uint16(57747), + 124: uint16(57748), + 125: uint16(57749), + 126: uint16(57750), + 127: uint16(57751), + 128: uint16(57752), + 129: uint16(57753), + 130: uint16(57754), + 131: uint16(57755), + 132: uint16(57756), + 133: uint16(57757), + 134: uint16(57758), + 135: uint16(57759), + 136: uint16(57760), + 137: uint16(57761), + 138: uint16(57762), + 139: uint16(57763), + 140: uint16(57764), + 141: uint16(57765), + 142: uint16(57766), + 143: uint16(57767), + 144: uint16(57768), + 145: uint16(57769), + 146: uint16(57770), + 147: uint16(57771), + 148: uint16(57772), + 149: uint16(57773), + 150: uint16(57774), + 151: uint16(57775), + 152: uint16(57776), + 153: uint16(57777), + 154: uint16(57778), + 155: uint16(57779), + 156: uint16(57780), + 157: uint16(57781), + 158: uint16(57782), + 159: uint16(57783), + 160: uint16(57784), + 161: uint16(57785), + 162: uint16(57786), + 163: uint16(57787), + 164: uint16(57788), + 165: uint16(57789), + 166: uint16(57790), + 167: uint16(57791), + 168: uint16(57792), + 169: uint16(57793), + 170: uint16(57794), + 171: uint16(57795), + 172: uint16(57796), + 173: uint16(57797), + 174: uint16(57798), + 175: uint16(57799), + 176: uint16(57800), + 177: uint16(57801), + 178: uint16(57802), + 179: uint16(57803), + 180: uint16(57804), + 181: uint16(57805), + 182: uint16(57806), + 183: uint16(57807), + 184: uint16(57808), + 185: uint16(57809), + 186: uint16(57810), + 187: uint16(57811), + 188: uint16(57812), + 189: uint16(57813), + }, + 46: { + 0: uint16(30088), + 1: uint16(30089), + 2: uint16(30090), + 3: uint16(30092), + 4: uint16(30093), + 5: uint16(30094), + 6: uint16(30096), + 7: uint16(30099), + 8: uint16(30101), + 9: uint16(30104), + 10: uint16(30107), + 11: uint16(30108), + 12: uint16(30110), + 13: uint16(30114), + 14: uint16(30118), + 15: uint16(30119), + 16: uint16(30120), + 17: uint16(30121), + 18: uint16(30122), + 19: uint16(30125), + 20: uint16(30134), + 21: uint16(30135), + 22: uint16(30138), + 23: uint16(30139), + 24: uint16(30143), + 25: uint16(30144), + 26: uint16(30145), + 27: uint16(30150), + 28: uint16(30155), + 29: uint16(30156), + 30: uint16(30158), + 31: uint16(30159), + 32: uint16(30160), + 33: uint16(30161), + 34: uint16(30163), + 35: uint16(30167), + 36: uint16(30169), + 37: uint16(30170), + 38: uint16(30172), + 39: uint16(30173), + 40: uint16(30175), + 41: uint16(30176), + 42: uint16(30177), + 43: uint16(30181), + 44: uint16(30185), + 45: uint16(30188), + 46: uint16(30189), + 47: uint16(30190), + 48: uint16(30191), + 49: uint16(30194), + 50: uint16(30195), + 51: uint16(30197), + 52: uint16(30198), + 53: uint16(30199), + 54: uint16(30200), + 55: uint16(30202), + 56: uint16(30203), + 57: uint16(30205), + 58: uint16(30206), + 59: uint16(30210), + 60: uint16(30212), + 61: uint16(30214), + 62: uint16(30215), + 63: uint16(30216), + 64: uint16(30217), + 65: uint16(30219), + 66: uint16(30221), + 67: uint16(30222), + 68: uint16(30223), + 69: uint16(30225), + 70: uint16(30226), + 71: uint16(30227), + 72: uint16(30228), + 73: uint16(30230), + 74: uint16(30234), + 75: uint16(30236), + 76: uint16(30237), + 77: uint16(30238), + 78: uint16(30241), + 79: uint16(30243), + 80: uint16(30247), + 81: uint16(30248), + 82: uint16(30252), + 83: uint16(30254), + 84: uint16(30255), + 85: uint16(30257), + 86: uint16(30258), + 87: uint16(30262), + 88: uint16(30263), + 89: uint16(30265), + 90: uint16(30266), + 91: uint16(30267), + 92: uint16(30269), + 93: uint16(30273), + 94: uint16(30274), + 95: uint16(30276), + 96: uint16(57814), + 97: uint16(57815), + 98: uint16(57816), + 99: uint16(57817), + 100: uint16(57818), + 101: uint16(57819), + 102: uint16(57820), + 103: uint16(57821), + 104: uint16(57822), + 105: uint16(57823), + 106: uint16(57824), + 107: uint16(57825), + 108: uint16(57826), + 109: uint16(57827), + 110: uint16(57828), + 111: uint16(57829), + 112: uint16(57830), + 113: uint16(57831), + 114: uint16(57832), + 115: uint16(57833), + 116: uint16(57834), + 117: uint16(57835), + 118: uint16(57836), + 119: uint16(57837), + 120: uint16(57838), + 121: uint16(57839), + 122: uint16(57840), + 123: uint16(57841), + 124: uint16(57842), + 125: uint16(57843), + 126: uint16(57844), + 127: uint16(57845), + 128: uint16(57846), + 129: uint16(57847), + 130: uint16(57848), + 131: uint16(57849), + 132: uint16(57850), + 133: uint16(57851), + 134: uint16(57852), + 135: uint16(57853), + 136: uint16(57854), + 137: uint16(57855), + 138: uint16(57856), + 139: uint16(57857), + 140: uint16(57858), + 141: uint16(57859), + 142: uint16(57860), + 143: uint16(57861), + 144: uint16(57862), + 145: uint16(57863), + 146: uint16(57864), + 147: uint16(57865), + 148: uint16(57866), + 149: uint16(57867), + 150: uint16(57868), + 151: uint16(57869), + 152: uint16(57870), + 153: uint16(57871), + 154: uint16(57872), + 155: uint16(57873), + 156: uint16(57874), + 157: uint16(57875), + 158: uint16(57876), + 159: uint16(57877), + 160: uint16(57878), + 161: uint16(57879), + 162: uint16(57880), + 163: uint16(57881), + 164: uint16(57882), + 165: uint16(57883), + 166: uint16(57884), + 167: uint16(57885), + 168: uint16(57886), + 169: uint16(57887), + 170: uint16(57888), + 171: uint16(57889), + 172: uint16(57890), + 173: uint16(57891), + 174: uint16(57892), + 175: uint16(57893), + 176: uint16(57894), + 177: uint16(57895), + 178: uint16(57896), + 179: uint16(57897), + 180: uint16(57898), + 181: uint16(57899), + 182: uint16(57900), + 183: uint16(57901), + 184: uint16(57902), + 185: uint16(57903), + 186: uint16(57904), + 187: uint16(57905), + 188: uint16(57906), + 189: uint16(57907), + }, + 47: { + 0: uint16(30277), + 1: uint16(30278), + 2: uint16(30279), + 3: uint16(30280), + 4: uint16(30281), + 5: uint16(30282), + 6: uint16(30283), + 7: uint16(30286), + 8: uint16(30287), + 9: uint16(30288), + 10: uint16(30289), + 11: uint16(30290), + 12: uint16(30291), + 13: uint16(30293), + 14: uint16(30295), + 15: uint16(30296), + 16: uint16(30297), + 17: uint16(30298), + 18: uint16(30299), + 19: uint16(30301), + 20: uint16(30303), + 21: uint16(30304), + 22: uint16(30305), + 23: uint16(30306), + 24: uint16(30308), + 25: uint16(30309), + 26: uint16(30310), + 27: uint16(30311), + 28: uint16(30312), + 29: uint16(30313), + 30: uint16(30314), + 31: uint16(30316), + 32: uint16(30317), + 33: uint16(30318), + 34: uint16(30320), + 35: uint16(30321), + 36: uint16(30322), + 37: uint16(30323), + 38: uint16(30324), + 39: uint16(30325), + 40: uint16(30326), + 41: uint16(30327), + 42: uint16(30329), + 43: uint16(30330), + 44: uint16(30332), + 45: uint16(30335), + 46: uint16(30336), + 47: uint16(30337), + 48: uint16(30339), + 49: uint16(30341), + 50: uint16(30345), + 51: uint16(30346), + 52: uint16(30348), + 53: uint16(30349), + 54: uint16(30351), + 55: uint16(30352), + 56: uint16(30354), + 57: uint16(30356), + 58: uint16(30357), + 59: uint16(30359), + 60: uint16(30360), + 61: uint16(30362), + 62: uint16(30363), + 63: uint16(30364), + 64: uint16(30365), + 65: uint16(30366), + 66: uint16(30367), + 67: uint16(30368), + 68: uint16(30369), + 69: uint16(30370), + 70: uint16(30371), + 71: uint16(30373), + 72: uint16(30374), + 73: uint16(30375), + 74: uint16(30376), + 75: uint16(30377), + 76: uint16(30378), + 77: uint16(30379), + 78: uint16(30380), + 79: uint16(30381), + 80: uint16(30383), + 81: uint16(30384), + 82: uint16(30387), + 83: uint16(30389), + 84: uint16(30390), + 85: uint16(30391), + 86: uint16(30392), + 87: uint16(30393), + 88: uint16(30394), + 89: uint16(30395), + 90: uint16(30396), + 91: uint16(30397), + 92: uint16(30398), + 93: uint16(30400), + 94: uint16(30401), + 95: uint16(30403), + 96: uint16(21834), + 97: uint16(38463), + 98: uint16(22467), + 99: uint16(25384), + 100: uint16(21710), + 101: uint16(21769), + 102: uint16(21696), + 103: uint16(30353), + 104: uint16(30284), + 105: uint16(34108), + 106: uint16(30702), + 107: uint16(33406), + 108: uint16(30861), + 109: uint16(29233), + 110: uint16(38552), + 111: uint16(38797), + 112: uint16(27688), + 113: uint16(23433), + 114: uint16(20474), + 115: uint16(25353), + 116: uint16(26263), + 117: uint16(23736), + 118: uint16(33018), + 119: uint16(26696), + 120: uint16(32942), + 121: uint16(26114), + 122: uint16(30414), + 123: uint16(20985), + 124: uint16(25942), + 125: uint16(29100), + 126: uint16(32753), + 127: uint16(34948), + 128: uint16(20658), + 129: uint16(22885), + 130: uint16(25034), + 131: uint16(28595), + 132: uint16(33453), + 133: uint16(25420), + 134: uint16(25170), + 135: uint16(21485), + 136: uint16(21543), + 137: uint16(31494), + 138: uint16(20843), + 139: uint16(30116), + 140: uint16(24052), + 141: uint16(25300), + 142: uint16(36299), + 143: uint16(38774), + 144: uint16(25226), + 145: uint16(32793), + 146: uint16(22365), + 147: uint16(38712), + 148: uint16(32610), + 149: uint16(29240), + 150: uint16(30333), + 151: uint16(26575), + 152: uint16(30334), + 153: uint16(25670), + 154: uint16(20336), + 155: uint16(36133), + 156: uint16(25308), + 157: uint16(31255), + 158: uint16(26001), + 159: uint16(29677), + 160: uint16(25644), + 161: uint16(25203), + 162: uint16(33324), + 163: uint16(39041), + 164: uint16(26495), + 165: uint16(29256), + 166: uint16(25198), + 167: uint16(25292), + 168: uint16(20276), + 169: uint16(29923), + 170: uint16(21322), + 171: uint16(21150), + 172: uint16(32458), + 173: uint16(37030), + 174: uint16(24110), + 175: uint16(26758), + 176: uint16(27036), + 177: uint16(33152), + 178: uint16(32465), + 179: uint16(26834), + 180: uint16(30917), + 181: uint16(34444), + 182: uint16(38225), + 183: uint16(20621), + 184: uint16(35876), + 185: uint16(33502), + 186: uint16(32990), + 187: uint16(21253), + 188: uint16(35090), + 189: uint16(21093), + }, + 48: { + 0: uint16(30404), + 1: uint16(30407), + 2: uint16(30409), + 3: uint16(30411), + 4: uint16(30412), + 5: uint16(30419), + 6: uint16(30421), + 7: uint16(30425), + 8: uint16(30426), + 9: uint16(30428), + 10: uint16(30429), + 11: uint16(30430), + 12: uint16(30432), + 13: uint16(30433), + 14: uint16(30434), + 15: uint16(30435), + 16: uint16(30436), + 17: uint16(30438), + 18: uint16(30439), + 19: uint16(30440), + 20: uint16(30441), + 21: uint16(30442), + 22: uint16(30443), + 23: uint16(30444), + 24: uint16(30445), + 25: uint16(30448), + 26: uint16(30451), + 27: uint16(30453), + 28: uint16(30454), + 29: uint16(30455), + 30: uint16(30458), + 31: uint16(30459), + 32: uint16(30461), + 33: uint16(30463), + 34: uint16(30464), + 35: uint16(30466), + 36: uint16(30467), + 37: uint16(30469), + 38: uint16(30470), + 39: uint16(30474), + 40: uint16(30476), + 41: uint16(30478), + 42: uint16(30479), + 43: uint16(30480), + 44: uint16(30481), + 45: uint16(30482), + 46: uint16(30483), + 47: uint16(30484), + 48: uint16(30485), + 49: uint16(30486), + 50: uint16(30487), + 51: uint16(30488), + 52: uint16(30491), + 53: uint16(30492), + 54: uint16(30493), + 55: uint16(30494), + 56: uint16(30497), + 57: uint16(30499), + 58: uint16(30500), + 59: uint16(30501), + 60: uint16(30503), + 61: uint16(30506), + 62: uint16(30507), + 63: uint16(30508), + 64: uint16(30510), + 65: uint16(30512), + 66: uint16(30513), + 67: uint16(30514), + 68: uint16(30515), + 69: uint16(30516), + 70: uint16(30521), + 71: uint16(30523), + 72: uint16(30525), + 73: uint16(30526), + 74: uint16(30527), + 75: uint16(30530), + 76: uint16(30532), + 77: uint16(30533), + 78: uint16(30534), + 79: uint16(30536), + 80: uint16(30537), + 81: uint16(30538), + 82: uint16(30539), + 83: uint16(30540), + 84: uint16(30541), + 85: uint16(30542), + 86: uint16(30543), + 87: uint16(30546), + 88: uint16(30547), + 89: uint16(30548), + 90: uint16(30549), + 91: uint16(30550), + 92: uint16(30551), + 93: uint16(30552), + 94: uint16(30553), + 95: uint16(30556), + 96: uint16(34180), + 97: uint16(38649), + 98: uint16(20445), + 99: uint16(22561), + 100: uint16(39281), + 101: uint16(23453), + 102: uint16(25265), + 103: uint16(25253), + 104: uint16(26292), + 105: uint16(35961), + 106: uint16(40077), + 107: uint16(29190), + 108: uint16(26479), + 109: uint16(30865), + 110: uint16(24754), + 111: uint16(21329), + 112: uint16(21271), + 113: uint16(36744), + 114: uint16(32972), + 115: uint16(36125), + 116: uint16(38049), + 117: uint16(20493), + 118: uint16(29384), + 119: uint16(22791), + 120: uint16(24811), + 121: uint16(28953), + 122: uint16(34987), + 123: uint16(22868), + 124: uint16(33519), + 125: uint16(26412), + 126: uint16(31528), + 127: uint16(23849), + 128: uint16(32503), + 129: uint16(29997), + 130: uint16(27893), + 131: uint16(36454), + 132: uint16(36856), + 133: uint16(36924), + 134: uint16(40763), + 135: uint16(27604), + 136: uint16(37145), + 137: uint16(31508), + 138: uint16(24444), + 139: uint16(30887), + 140: uint16(34006), + 141: uint16(34109), + 142: uint16(27605), + 143: uint16(27609), + 144: uint16(27606), + 145: uint16(24065), + 146: uint16(24199), + 147: uint16(30201), + 148: uint16(38381), + 149: uint16(25949), + 150: uint16(24330), + 151: uint16(24517), + 152: uint16(36767), + 153: uint16(22721), + 154: uint16(33218), + 155: uint16(36991), + 156: uint16(38491), + 157: uint16(38829), + 158: uint16(36793), + 159: uint16(32534), + 160: uint16(36140), + 161: uint16(25153), + 162: uint16(20415), + 163: uint16(21464), + 164: uint16(21342), + 165: uint16(36776), + 166: uint16(36777), + 167: uint16(36779), + 168: uint16(36941), + 169: uint16(26631), + 170: uint16(24426), + 171: uint16(33176), + 172: uint16(34920), + 173: uint16(40150), + 174: uint16(24971), + 175: uint16(21035), + 176: uint16(30250), + 177: uint16(24428), + 178: uint16(25996), + 179: uint16(28626), + 180: uint16(28392), + 181: uint16(23486), + 182: uint16(25672), + 183: uint16(20853), + 184: uint16(20912), + 185: uint16(26564), + 186: uint16(19993), + 187: uint16(31177), + 188: uint16(39292), + 189: uint16(28851), + }, + 49: { + 0: uint16(30557), + 1: uint16(30558), + 2: uint16(30559), + 3: uint16(30560), + 4: uint16(30564), + 5: uint16(30567), + 6: uint16(30569), + 7: uint16(30570), + 8: uint16(30573), + 9: uint16(30574), + 10: uint16(30575), + 11: uint16(30576), + 12: uint16(30577), + 13: uint16(30578), + 14: uint16(30579), + 15: uint16(30580), + 16: uint16(30581), + 17: uint16(30582), + 18: uint16(30583), + 19: uint16(30584), + 20: uint16(30586), + 21: uint16(30587), + 22: uint16(30588), + 23: uint16(30593), + 24: uint16(30594), + 25: uint16(30595), + 26: uint16(30598), + 27: uint16(30599), + 28: uint16(30600), + 29: uint16(30601), + 30: uint16(30602), + 31: uint16(30603), + 32: uint16(30607), + 33: uint16(30608), + 34: uint16(30611), + 35: uint16(30612), + 36: uint16(30613), + 37: uint16(30614), + 38: uint16(30615), + 39: uint16(30616), + 40: uint16(30617), + 41: uint16(30618), + 42: uint16(30619), + 43: uint16(30620), + 44: uint16(30621), + 45: uint16(30622), + 46: uint16(30625), + 47: uint16(30627), + 48: uint16(30628), + 49: uint16(30630), + 50: uint16(30632), + 51: uint16(30635), + 52: uint16(30637), + 53: uint16(30638), + 54: uint16(30639), + 55: uint16(30641), + 56: uint16(30642), + 57: uint16(30644), + 58: uint16(30646), + 59: uint16(30647), + 60: uint16(30648), + 61: uint16(30649), + 62: uint16(30650), + 63: uint16(30652), + 64: uint16(30654), + 65: uint16(30656), + 66: uint16(30657), + 67: uint16(30658), + 68: uint16(30659), + 69: uint16(30660), + 70: uint16(30661), + 71: uint16(30662), + 72: uint16(30663), + 73: uint16(30664), + 74: uint16(30665), + 75: uint16(30666), + 76: uint16(30667), + 77: uint16(30668), + 78: uint16(30670), + 79: uint16(30671), + 80: uint16(30672), + 81: uint16(30673), + 82: uint16(30674), + 83: uint16(30675), + 84: uint16(30676), + 85: uint16(30677), + 86: uint16(30678), + 87: uint16(30680), + 88: uint16(30681), + 89: uint16(30682), + 90: uint16(30685), + 91: uint16(30686), + 92: uint16(30687), + 93: uint16(30688), + 94: uint16(30689), + 95: uint16(30692), + 96: uint16(30149), + 97: uint16(24182), + 98: uint16(29627), + 99: uint16(33760), + 100: uint16(25773), + 101: uint16(25320), + 102: uint16(38069), + 103: uint16(27874), + 104: uint16(21338), + 105: uint16(21187), + 106: uint16(25615), + 107: uint16(38082), + 108: uint16(31636), + 109: uint16(20271), + 110: uint16(24091), + 111: uint16(33334), + 112: uint16(33046), + 113: uint16(33162), + 114: uint16(28196), + 115: uint16(27850), + 116: uint16(39539), + 117: uint16(25429), + 118: uint16(21340), + 119: uint16(21754), + 120: uint16(34917), + 121: uint16(22496), + 122: uint16(19981), + 123: uint16(24067), + 124: uint16(27493), + 125: uint16(31807), + 126: uint16(37096), + 127: uint16(24598), + 128: uint16(25830), + 129: uint16(29468), + 130: uint16(35009), + 131: uint16(26448), + 132: uint16(25165), + 133: uint16(36130), + 134: uint16(30572), + 135: uint16(36393), + 136: uint16(37319), + 137: uint16(24425), + 138: uint16(33756), + 139: uint16(34081), + 140: uint16(39184), + 141: uint16(21442), + 142: uint16(34453), + 143: uint16(27531), + 144: uint16(24813), + 145: uint16(24808), + 146: uint16(28799), + 147: uint16(33485), + 148: uint16(33329), + 149: uint16(20179), + 150: uint16(27815), + 151: uint16(34255), + 152: uint16(25805), + 153: uint16(31961), + 154: uint16(27133), + 155: uint16(26361), + 156: uint16(33609), + 157: uint16(21397), + 158: uint16(31574), + 159: uint16(20391), + 160: uint16(20876), + 161: uint16(27979), + 162: uint16(23618), + 163: uint16(36461), + 164: uint16(25554), + 165: uint16(21449), + 166: uint16(33580), + 167: uint16(33590), + 168: uint16(26597), + 169: uint16(30900), + 170: uint16(25661), + 171: uint16(23519), + 172: uint16(23700), + 173: uint16(24046), + 174: uint16(35815), + 175: uint16(25286), + 176: uint16(26612), + 177: uint16(35962), + 178: uint16(25600), + 179: uint16(25530), + 180: uint16(34633), + 181: uint16(39307), + 182: uint16(35863), + 183: uint16(32544), + 184: uint16(38130), + 185: uint16(20135), + 186: uint16(38416), + 187: uint16(39076), + 188: uint16(26124), + 189: uint16(29462), + }, + 50: { + 0: uint16(30694), + 1: uint16(30696), + 2: uint16(30698), + 3: uint16(30703), + 4: uint16(30704), + 5: uint16(30705), + 6: uint16(30706), + 7: uint16(30708), + 8: uint16(30709), + 9: uint16(30711), + 10: uint16(30713), + 11: uint16(30714), + 12: uint16(30715), + 13: uint16(30716), + 14: uint16(30723), + 15: uint16(30724), + 16: uint16(30725), + 17: uint16(30726), + 18: uint16(30727), + 19: uint16(30728), + 20: uint16(30730), + 21: uint16(30731), + 22: uint16(30734), + 23: uint16(30735), + 24: uint16(30736), + 25: uint16(30739), + 26: uint16(30741), + 27: uint16(30745), + 28: uint16(30747), + 29: uint16(30750), + 30: uint16(30752), + 31: uint16(30753), + 32: uint16(30754), + 33: uint16(30756), + 34: uint16(30760), + 35: uint16(30762), + 36: uint16(30763), + 37: uint16(30766), + 38: uint16(30767), + 39: uint16(30769), + 40: uint16(30770), + 41: uint16(30771), + 42: uint16(30773), + 43: uint16(30774), + 44: uint16(30781), + 45: uint16(30783), + 46: uint16(30785), + 47: uint16(30786), + 48: uint16(30787), + 49: uint16(30788), + 50: uint16(30790), + 51: uint16(30792), + 52: uint16(30793), + 53: uint16(30794), + 54: uint16(30795), + 55: uint16(30797), + 56: uint16(30799), + 57: uint16(30801), + 58: uint16(30803), + 59: uint16(30804), + 60: uint16(30808), + 61: uint16(30809), + 62: uint16(30810), + 63: uint16(30811), + 64: uint16(30812), + 65: uint16(30814), + 66: uint16(30815), + 67: uint16(30816), + 68: uint16(30817), + 69: uint16(30818), + 70: uint16(30819), + 71: uint16(30820), + 72: uint16(30821), + 73: uint16(30822), + 74: uint16(30823), + 75: uint16(30824), + 76: uint16(30825), + 77: uint16(30831), + 78: uint16(30832), + 79: uint16(30833), + 80: uint16(30834), + 81: uint16(30835), + 82: uint16(30836), + 83: uint16(30837), + 84: uint16(30838), + 85: uint16(30840), + 86: uint16(30841), + 87: uint16(30842), + 88: uint16(30843), + 89: uint16(30845), + 90: uint16(30846), + 91: uint16(30847), + 92: uint16(30848), + 93: uint16(30849), + 94: uint16(30850), + 95: uint16(30851), + 96: uint16(22330), + 97: uint16(23581), + 98: uint16(24120), + 99: uint16(38271), + 100: uint16(20607), + 101: uint16(32928), + 102: uint16(21378), + 103: uint16(25950), + 104: uint16(30021), + 105: uint16(21809), + 106: uint16(20513), + 107: uint16(36229), + 108: uint16(25220), + 109: uint16(38046), + 110: uint16(26397), + 111: uint16(22066), + 112: uint16(28526), + 113: uint16(24034), + 114: uint16(21557), + 115: uint16(28818), + 116: uint16(36710), + 117: uint16(25199), + 118: uint16(25764), + 119: uint16(25507), + 120: uint16(24443), + 121: uint16(28552), + 122: uint16(37108), + 123: uint16(33251), + 124: uint16(36784), + 125: uint16(23576), + 126: uint16(26216), + 127: uint16(24561), + 128: uint16(27785), + 129: uint16(38472), + 130: uint16(36225), + 131: uint16(34924), + 132: uint16(25745), + 133: uint16(31216), + 134: uint16(22478), + 135: uint16(27225), + 136: uint16(25104), + 137: uint16(21576), + 138: uint16(20056), + 139: uint16(31243), + 140: uint16(24809), + 141: uint16(28548), + 142: uint16(35802), + 143: uint16(25215), + 144: uint16(36894), + 145: uint16(39563), + 146: uint16(31204), + 147: uint16(21507), + 148: uint16(30196), + 149: uint16(25345), + 150: uint16(21273), + 151: uint16(27744), + 152: uint16(36831), + 153: uint16(24347), + 154: uint16(39536), + 155: uint16(32827), + 156: uint16(40831), + 157: uint16(20360), + 158: uint16(23610), + 159: uint16(36196), + 160: uint16(32709), + 161: uint16(26021), + 162: uint16(28861), + 163: uint16(20805), + 164: uint16(20914), + 165: uint16(34411), + 166: uint16(23815), + 167: uint16(23456), + 168: uint16(25277), + 169: uint16(37228), + 170: uint16(30068), + 171: uint16(36364), + 172: uint16(31264), + 173: uint16(24833), + 174: uint16(31609), + 175: uint16(20167), + 176: uint16(32504), + 177: uint16(30597), + 178: uint16(19985), + 179: uint16(33261), + 180: uint16(21021), + 181: uint16(20986), + 182: uint16(27249), + 183: uint16(21416), + 184: uint16(36487), + 185: uint16(38148), + 186: uint16(38607), + 187: uint16(28353), + 188: uint16(38500), + 189: uint16(26970), + }, + 51: { + 0: uint16(30852), + 1: uint16(30853), + 2: uint16(30854), + 3: uint16(30856), + 4: uint16(30858), + 5: uint16(30859), + 6: uint16(30863), + 7: uint16(30864), + 8: uint16(30866), + 9: uint16(30868), + 10: uint16(30869), + 11: uint16(30870), + 12: uint16(30873), + 13: uint16(30877), + 14: uint16(30878), + 15: uint16(30880), + 16: uint16(30882), + 17: uint16(30884), + 18: uint16(30886), + 19: uint16(30888), + 20: uint16(30889), + 21: uint16(30890), + 22: uint16(30891), + 23: uint16(30892), + 24: uint16(30893), + 25: uint16(30894), + 26: uint16(30895), + 27: uint16(30901), + 28: uint16(30902), + 29: uint16(30903), + 30: uint16(30904), + 31: uint16(30906), + 32: uint16(30907), + 33: uint16(30908), + 34: uint16(30909), + 35: uint16(30911), + 36: uint16(30912), + 37: uint16(30914), + 38: uint16(30915), + 39: uint16(30916), + 40: uint16(30918), + 41: uint16(30919), + 42: uint16(30920), + 43: uint16(30924), + 44: uint16(30925), + 45: uint16(30926), + 46: uint16(30927), + 47: uint16(30929), + 48: uint16(30930), + 49: uint16(30931), + 50: uint16(30934), + 51: uint16(30935), + 52: uint16(30936), + 53: uint16(30938), + 54: uint16(30939), + 55: uint16(30940), + 56: uint16(30941), + 57: uint16(30942), + 58: uint16(30943), + 59: uint16(30944), + 60: uint16(30945), + 61: uint16(30946), + 62: uint16(30947), + 63: uint16(30948), + 64: uint16(30949), + 65: uint16(30950), + 66: uint16(30951), + 67: uint16(30953), + 68: uint16(30954), + 69: uint16(30955), + 70: uint16(30957), + 71: uint16(30958), + 72: uint16(30959), + 73: uint16(30960), + 74: uint16(30961), + 75: uint16(30963), + 76: uint16(30965), + 77: uint16(30966), + 78: uint16(30968), + 79: uint16(30969), + 80: uint16(30971), + 81: uint16(30972), + 82: uint16(30973), + 83: uint16(30974), + 84: uint16(30975), + 85: uint16(30976), + 86: uint16(30978), + 87: uint16(30979), + 88: uint16(30980), + 89: uint16(30982), + 90: uint16(30983), + 91: uint16(30984), + 92: uint16(30985), + 93: uint16(30986), + 94: uint16(30987), + 95: uint16(30988), + 96: uint16(30784), + 97: uint16(20648), + 98: uint16(30679), + 99: uint16(25616), + 100: uint16(35302), + 101: uint16(22788), + 102: uint16(25571), + 103: uint16(24029), + 104: uint16(31359), + 105: uint16(26941), + 106: uint16(20256), + 107: uint16(33337), + 108: uint16(21912), + 109: uint16(20018), + 110: uint16(30126), + 111: uint16(31383), + 112: uint16(24162), + 113: uint16(24202), + 114: uint16(38383), + 115: uint16(21019), + 116: uint16(21561), + 117: uint16(28810), + 118: uint16(25462), + 119: uint16(38180), + 120: uint16(22402), + 121: uint16(26149), + 122: uint16(26943), + 123: uint16(37255), + 124: uint16(21767), + 125: uint16(28147), + 126: uint16(32431), + 127: uint16(34850), + 128: uint16(25139), + 129: uint16(32496), + 130: uint16(30133), + 131: uint16(33576), + 132: uint16(30913), + 133: uint16(38604), + 134: uint16(36766), + 135: uint16(24904), + 136: uint16(29943), + 137: uint16(35789), + 138: uint16(27492), + 139: uint16(21050), + 140: uint16(36176), + 141: uint16(27425), + 142: uint16(32874), + 143: uint16(33905), + 144: uint16(22257), + 145: uint16(21254), + 146: uint16(20174), + 147: uint16(19995), + 148: uint16(20945), + 149: uint16(31895), + 150: uint16(37259), + 151: uint16(31751), + 152: uint16(20419), + 153: uint16(36479), + 154: uint16(31713), + 155: uint16(31388), + 156: uint16(25703), + 157: uint16(23828), + 158: uint16(20652), + 159: uint16(33030), + 160: uint16(30209), + 161: uint16(31929), + 162: uint16(28140), + 163: uint16(32736), + 164: uint16(26449), + 165: uint16(23384), + 166: uint16(23544), + 167: uint16(30923), + 168: uint16(25774), + 169: uint16(25619), + 170: uint16(25514), + 171: uint16(25387), + 172: uint16(38169), + 173: uint16(25645), + 174: uint16(36798), + 175: uint16(31572), + 176: uint16(30249), + 177: uint16(25171), + 178: uint16(22823), + 179: uint16(21574), + 180: uint16(27513), + 181: uint16(20643), + 182: uint16(25140), + 183: uint16(24102), + 184: uint16(27526), + 185: uint16(20195), + 186: uint16(36151), + 187: uint16(34955), + 188: uint16(24453), + 189: uint16(36910), + }, + 52: { + 0: uint16(30989), + 1: uint16(30990), + 2: uint16(30991), + 3: uint16(30992), + 4: uint16(30993), + 5: uint16(30994), + 6: uint16(30996), + 7: uint16(30997), + 8: uint16(30998), + 9: uint16(30999), + 10: uint16(31000), + 11: uint16(31001), + 12: uint16(31002), + 13: uint16(31003), + 14: uint16(31004), + 15: uint16(31005), + 16: uint16(31007), + 17: uint16(31008), + 18: uint16(31009), + 19: uint16(31010), + 20: uint16(31011), + 21: uint16(31013), + 22: uint16(31014), + 23: uint16(31015), + 24: uint16(31016), + 25: uint16(31017), + 26: uint16(31018), + 27: uint16(31019), + 28: uint16(31020), + 29: uint16(31021), + 30: uint16(31022), + 31: uint16(31023), + 32: uint16(31024), + 33: uint16(31025), + 34: uint16(31026), + 35: uint16(31027), + 36: uint16(31029), + 37: uint16(31030), + 38: uint16(31031), + 39: uint16(31032), + 40: uint16(31033), + 41: uint16(31037), + 42: uint16(31039), + 43: uint16(31042), + 44: uint16(31043), + 45: uint16(31044), + 46: uint16(31045), + 47: uint16(31047), + 48: uint16(31050), + 49: uint16(31051), + 50: uint16(31052), + 51: uint16(31053), + 52: uint16(31054), + 53: uint16(31055), + 54: uint16(31056), + 55: uint16(31057), + 56: uint16(31058), + 57: uint16(31060), + 58: uint16(31061), + 59: uint16(31064), + 60: uint16(31065), + 61: uint16(31073), + 62: uint16(31075), + 63: uint16(31076), + 64: uint16(31078), + 65: uint16(31081), + 66: uint16(31082), + 67: uint16(31083), + 68: uint16(31084), + 69: uint16(31086), + 70: uint16(31088), + 71: uint16(31089), + 72: uint16(31090), + 73: uint16(31091), + 74: uint16(31092), + 75: uint16(31093), + 76: uint16(31094), + 77: uint16(31097), + 78: uint16(31099), + 79: uint16(31100), + 80: uint16(31101), + 81: uint16(31102), + 82: uint16(31103), + 83: uint16(31106), + 84: uint16(31107), + 85: uint16(31110), + 86: uint16(31111), + 87: uint16(31112), + 88: uint16(31113), + 89: uint16(31115), + 90: uint16(31116), + 91: uint16(31117), + 92: uint16(31118), + 93: uint16(31120), + 94: uint16(31121), + 95: uint16(31122), + 96: uint16(24608), + 97: uint16(32829), + 98: uint16(25285), + 99: uint16(20025), + 100: uint16(21333), + 101: uint16(37112), + 102: uint16(25528), + 103: uint16(32966), + 104: uint16(26086), + 105: uint16(27694), + 106: uint16(20294), + 107: uint16(24814), + 108: uint16(28129), + 109: uint16(35806), + 110: uint16(24377), + 111: uint16(34507), + 112: uint16(24403), + 113: uint16(25377), + 114: uint16(20826), + 115: uint16(33633), + 116: uint16(26723), + 117: uint16(20992), + 118: uint16(25443), + 119: uint16(36424), + 120: uint16(20498), + 121: uint16(23707), + 122: uint16(31095), + 123: uint16(23548), + 124: uint16(21040), + 125: uint16(31291), + 126: uint16(24764), + 127: uint16(36947), + 128: uint16(30423), + 129: uint16(24503), + 130: uint16(24471), + 131: uint16(30340), + 132: uint16(36460), + 133: uint16(28783), + 134: uint16(30331), + 135: uint16(31561), + 136: uint16(30634), + 137: uint16(20979), + 138: uint16(37011), + 139: uint16(22564), + 140: uint16(20302), + 141: uint16(28404), + 142: uint16(36842), + 143: uint16(25932), + 144: uint16(31515), + 145: uint16(29380), + 146: uint16(28068), + 147: uint16(32735), + 148: uint16(23265), + 149: uint16(25269), + 150: uint16(24213), + 151: uint16(22320), + 152: uint16(33922), + 153: uint16(31532), + 154: uint16(24093), + 155: uint16(24351), + 156: uint16(36882), + 157: uint16(32532), + 158: uint16(39072), + 159: uint16(25474), + 160: uint16(28359), + 161: uint16(30872), + 162: uint16(28857), + 163: uint16(20856), + 164: uint16(38747), + 165: uint16(22443), + 166: uint16(30005), + 167: uint16(20291), + 168: uint16(30008), + 169: uint16(24215), + 170: uint16(24806), + 171: uint16(22880), + 172: uint16(28096), + 173: uint16(27583), + 174: uint16(30857), + 175: uint16(21500), + 176: uint16(38613), + 177: uint16(20939), + 178: uint16(20993), + 179: uint16(25481), + 180: uint16(21514), + 181: uint16(38035), + 182: uint16(35843), + 183: uint16(36300), + 184: uint16(29241), + 185: uint16(30879), + 186: uint16(34678), + 187: uint16(36845), + 188: uint16(35853), + 189: uint16(21472), + }, + 53: { + 0: uint16(31123), + 1: uint16(31124), + 2: uint16(31125), + 3: uint16(31126), + 4: uint16(31127), + 5: uint16(31128), + 6: uint16(31129), + 7: uint16(31131), + 8: uint16(31132), + 9: uint16(31133), + 10: uint16(31134), + 11: uint16(31135), + 12: uint16(31136), + 13: uint16(31137), + 14: uint16(31138), + 15: uint16(31139), + 16: uint16(31140), + 17: uint16(31141), + 18: uint16(31142), + 19: uint16(31144), + 20: uint16(31145), + 21: uint16(31146), + 22: uint16(31147), + 23: uint16(31148), + 24: uint16(31149), + 25: uint16(31150), + 26: uint16(31151), + 27: uint16(31152), + 28: uint16(31153), + 29: uint16(31154), + 30: uint16(31156), + 31: uint16(31157), + 32: uint16(31158), + 33: uint16(31159), + 34: uint16(31160), + 35: uint16(31164), + 36: uint16(31167), + 37: uint16(31170), + 38: uint16(31172), + 39: uint16(31173), + 40: uint16(31175), + 41: uint16(31176), + 42: uint16(31178), + 43: uint16(31180), + 44: uint16(31182), + 45: uint16(31183), + 46: uint16(31184), + 47: uint16(31187), + 48: uint16(31188), + 49: uint16(31190), + 50: uint16(31191), + 51: uint16(31193), + 52: uint16(31194), + 53: uint16(31195), + 54: uint16(31196), + 55: uint16(31197), + 56: uint16(31198), + 57: uint16(31200), + 58: uint16(31201), + 59: uint16(31202), + 60: uint16(31205), + 61: uint16(31208), + 62: uint16(31210), + 63: uint16(31212), + 64: uint16(31214), + 65: uint16(31217), + 66: uint16(31218), + 67: uint16(31219), + 68: uint16(31220), + 69: uint16(31221), + 70: uint16(31222), + 71: uint16(31223), + 72: uint16(31225), + 73: uint16(31226), + 74: uint16(31228), + 75: uint16(31230), + 76: uint16(31231), + 77: uint16(31233), + 78: uint16(31236), + 79: uint16(31237), + 80: uint16(31239), + 81: uint16(31240), + 82: uint16(31241), + 83: uint16(31242), + 84: uint16(31244), + 85: uint16(31247), + 86: uint16(31248), + 87: uint16(31249), + 88: uint16(31250), + 89: uint16(31251), + 90: uint16(31253), + 91: uint16(31254), + 92: uint16(31256), + 93: uint16(31257), + 94: uint16(31259), + 95: uint16(31260), + 96: uint16(19969), + 97: uint16(30447), + 98: uint16(21486), + 99: uint16(38025), + 100: uint16(39030), + 101: uint16(40718), + 102: uint16(38189), + 103: uint16(23450), + 104: uint16(35746), + 105: uint16(20002), + 106: uint16(19996), + 107: uint16(20908), + 108: uint16(33891), + 109: uint16(25026), + 110: uint16(21160), + 111: uint16(26635), + 112: uint16(20375), + 113: uint16(24683), + 114: uint16(20923), + 115: uint16(27934), + 116: uint16(20828), + 117: uint16(25238), + 118: uint16(26007), + 119: uint16(38497), + 120: uint16(35910), + 121: uint16(36887), + 122: uint16(30168), + 123: uint16(37117), + 124: uint16(30563), + 125: uint16(27602), + 126: uint16(29322), + 127: uint16(29420), + 128: uint16(35835), + 129: uint16(22581), + 130: uint16(30585), + 131: uint16(36172), + 132: uint16(26460), + 133: uint16(38208), + 134: uint16(32922), + 135: uint16(24230), + 136: uint16(28193), + 137: uint16(22930), + 138: uint16(31471), + 139: uint16(30701), + 140: uint16(38203), + 141: uint16(27573), + 142: uint16(26029), + 143: uint16(32526), + 144: uint16(22534), + 145: uint16(20817), + 146: uint16(38431), + 147: uint16(23545), + 148: uint16(22697), + 149: uint16(21544), + 150: uint16(36466), + 151: uint16(25958), + 152: uint16(39039), + 153: uint16(22244), + 154: uint16(38045), + 155: uint16(30462), + 156: uint16(36929), + 157: uint16(25479), + 158: uint16(21702), + 159: uint16(22810), + 160: uint16(22842), + 161: uint16(22427), + 162: uint16(36530), + 163: uint16(26421), + 164: uint16(36346), + 165: uint16(33333), + 166: uint16(21057), + 167: uint16(24816), + 168: uint16(22549), + 169: uint16(34558), + 170: uint16(23784), + 171: uint16(40517), + 172: uint16(20420), + 173: uint16(39069), + 174: uint16(35769), + 175: uint16(23077), + 176: uint16(24694), + 177: uint16(21380), + 178: uint16(25212), + 179: uint16(36943), + 180: uint16(37122), + 181: uint16(39295), + 182: uint16(24681), + 183: uint16(32780), + 184: uint16(20799), + 185: uint16(32819), + 186: uint16(23572), + 187: uint16(39285), + 188: uint16(27953), + 189: uint16(20108), + }, + 54: { + 0: uint16(31261), + 1: uint16(31263), + 2: uint16(31265), + 3: uint16(31266), + 4: uint16(31268), + 5: uint16(31269), + 6: uint16(31270), + 7: uint16(31271), + 8: uint16(31272), + 9: uint16(31273), + 10: uint16(31274), + 11: uint16(31275), + 12: uint16(31276), + 13: uint16(31277), + 14: uint16(31278), + 15: uint16(31279), + 16: uint16(31280), + 17: uint16(31281), + 18: uint16(31282), + 19: uint16(31284), + 20: uint16(31285), + 21: uint16(31286), + 22: uint16(31288), + 23: uint16(31290), + 24: uint16(31294), + 25: uint16(31296), + 26: uint16(31297), + 27: uint16(31298), + 28: uint16(31299), + 29: uint16(31300), + 30: uint16(31301), + 31: uint16(31303), + 32: uint16(31304), + 33: uint16(31305), + 34: uint16(31306), + 35: uint16(31307), + 36: uint16(31308), + 37: uint16(31309), + 38: uint16(31310), + 39: uint16(31311), + 40: uint16(31312), + 41: uint16(31314), + 42: uint16(31315), + 43: uint16(31316), + 44: uint16(31317), + 45: uint16(31318), + 46: uint16(31320), + 47: uint16(31321), + 48: uint16(31322), + 49: uint16(31323), + 50: uint16(31324), + 51: uint16(31325), + 52: uint16(31326), + 53: uint16(31327), + 54: uint16(31328), + 55: uint16(31329), + 56: uint16(31330), + 57: uint16(31331), + 58: uint16(31332), + 59: uint16(31333), + 60: uint16(31334), + 61: uint16(31335), + 62: uint16(31336), + 63: uint16(31337), + 64: uint16(31338), + 65: uint16(31339), + 66: uint16(31340), + 67: uint16(31341), + 68: uint16(31342), + 69: uint16(31343), + 70: uint16(31345), + 71: uint16(31346), + 72: uint16(31347), + 73: uint16(31349), + 74: uint16(31355), + 75: uint16(31356), + 76: uint16(31357), + 77: uint16(31358), + 78: uint16(31362), + 79: uint16(31365), + 80: uint16(31367), + 81: uint16(31369), + 82: uint16(31370), + 83: uint16(31371), + 84: uint16(31372), + 85: uint16(31374), + 86: uint16(31375), + 87: uint16(31376), + 88: uint16(31379), + 89: uint16(31380), + 90: uint16(31385), + 91: uint16(31386), + 92: uint16(31387), + 93: uint16(31390), + 94: uint16(31393), + 95: uint16(31394), + 96: uint16(36144), + 97: uint16(21457), + 98: uint16(32602), + 99: uint16(31567), + 100: uint16(20240), + 101: uint16(20047), + 102: uint16(38400), + 103: uint16(27861), + 104: uint16(29648), + 105: uint16(34281), + 106: uint16(24070), + 107: uint16(30058), + 108: uint16(32763), + 109: uint16(27146), + 110: uint16(30718), + 111: uint16(38034), + 112: uint16(32321), + 113: uint16(20961), + 114: uint16(28902), + 115: uint16(21453), + 116: uint16(36820), + 117: uint16(33539), + 118: uint16(36137), + 119: uint16(29359), + 120: uint16(39277), + 121: uint16(27867), + 122: uint16(22346), + 123: uint16(33459), + 124: uint16(26041), + 125: uint16(32938), + 126: uint16(25151), + 127: uint16(38450), + 128: uint16(22952), + 129: uint16(20223), + 130: uint16(35775), + 131: uint16(32442), + 132: uint16(25918), + 133: uint16(33778), + 134: uint16(38750), + 135: uint16(21857), + 136: uint16(39134), + 137: uint16(32933), + 138: uint16(21290), + 139: uint16(35837), + 140: uint16(21536), + 141: uint16(32954), + 142: uint16(24223), + 143: uint16(27832), + 144: uint16(36153), + 145: uint16(33452), + 146: uint16(37210), + 147: uint16(21545), + 148: uint16(27675), + 149: uint16(20998), + 150: uint16(32439), + 151: uint16(22367), + 152: uint16(28954), + 153: uint16(27774), + 154: uint16(31881), + 155: uint16(22859), + 156: uint16(20221), + 157: uint16(24575), + 158: uint16(24868), + 159: uint16(31914), + 160: uint16(20016), + 161: uint16(23553), + 162: uint16(26539), + 163: uint16(34562), + 164: uint16(23792), + 165: uint16(38155), + 166: uint16(39118), + 167: uint16(30127), + 168: uint16(28925), + 169: uint16(36898), + 170: uint16(20911), + 171: uint16(32541), + 172: uint16(35773), + 173: uint16(22857), + 174: uint16(20964), + 175: uint16(20315), + 176: uint16(21542), + 177: uint16(22827), + 178: uint16(25975), + 179: uint16(32932), + 180: uint16(23413), + 181: uint16(25206), + 182: uint16(25282), + 183: uint16(36752), + 184: uint16(24133), + 185: uint16(27679), + 186: uint16(31526), + 187: uint16(20239), + 188: uint16(20440), + 189: uint16(26381), + }, + 55: { + 0: uint16(31395), + 1: uint16(31396), + 2: uint16(31399), + 3: uint16(31401), + 4: uint16(31402), + 5: uint16(31403), + 6: uint16(31406), + 7: uint16(31407), + 8: uint16(31408), + 9: uint16(31409), + 10: uint16(31410), + 11: uint16(31412), + 12: uint16(31413), + 13: uint16(31414), + 14: uint16(31415), + 15: uint16(31416), + 16: uint16(31417), + 17: uint16(31418), + 18: uint16(31419), + 19: uint16(31420), + 20: uint16(31421), + 21: uint16(31422), + 22: uint16(31424), + 23: uint16(31425), + 24: uint16(31426), + 25: uint16(31427), + 26: uint16(31428), + 27: uint16(31429), + 28: uint16(31430), + 29: uint16(31431), + 30: uint16(31432), + 31: uint16(31433), + 32: uint16(31434), + 33: uint16(31436), + 34: uint16(31437), + 35: uint16(31438), + 36: uint16(31439), + 37: uint16(31440), + 38: uint16(31441), + 39: uint16(31442), + 40: uint16(31443), + 41: uint16(31444), + 42: uint16(31445), + 43: uint16(31447), + 44: uint16(31448), + 45: uint16(31450), + 46: uint16(31451), + 47: uint16(31452), + 48: uint16(31453), + 49: uint16(31457), + 50: uint16(31458), + 51: uint16(31460), + 52: uint16(31463), + 53: uint16(31464), + 54: uint16(31465), + 55: uint16(31466), + 56: uint16(31467), + 57: uint16(31468), + 58: uint16(31470), + 59: uint16(31472), + 60: uint16(31473), + 61: uint16(31474), + 62: uint16(31475), + 63: uint16(31476), + 64: uint16(31477), + 65: uint16(31478), + 66: uint16(31479), + 67: uint16(31480), + 68: uint16(31483), + 69: uint16(31484), + 70: uint16(31486), + 71: uint16(31488), + 72: uint16(31489), + 73: uint16(31490), + 74: uint16(31493), + 75: uint16(31495), + 76: uint16(31497), + 77: uint16(31500), + 78: uint16(31501), + 79: uint16(31502), + 80: uint16(31504), + 81: uint16(31506), + 82: uint16(31507), + 83: uint16(31510), + 84: uint16(31511), + 85: uint16(31512), + 86: uint16(31514), + 87: uint16(31516), + 88: uint16(31517), + 89: uint16(31519), + 90: uint16(31521), + 91: uint16(31522), + 92: uint16(31523), + 93: uint16(31527), + 94: uint16(31529), + 95: uint16(31533), + 96: uint16(28014), + 97: uint16(28074), + 98: uint16(31119), + 99: uint16(34993), + 100: uint16(24343), + 101: uint16(29995), + 102: uint16(25242), + 103: uint16(36741), + 104: uint16(20463), + 105: uint16(37340), + 106: uint16(26023), + 107: uint16(33071), + 108: uint16(33105), + 109: uint16(24220), + 110: uint16(33104), + 111: uint16(36212), + 112: uint16(21103), + 113: uint16(35206), + 114: uint16(36171), + 115: uint16(22797), + 116: uint16(20613), + 117: uint16(20184), + 118: uint16(38428), + 119: uint16(29238), + 120: uint16(33145), + 121: uint16(36127), + 122: uint16(23500), + 123: uint16(35747), + 124: uint16(38468), + 125: uint16(22919), + 126: uint16(32538), + 127: uint16(21648), + 128: uint16(22134), + 129: uint16(22030), + 130: uint16(35813), + 131: uint16(25913), + 132: uint16(27010), + 133: uint16(38041), + 134: uint16(30422), + 135: uint16(28297), + 136: uint16(24178), + 137: uint16(29976), + 138: uint16(26438), + 139: uint16(26577), + 140: uint16(31487), + 141: uint16(32925), + 142: uint16(36214), + 143: uint16(24863), + 144: uint16(31174), + 145: uint16(25954), + 146: uint16(36195), + 147: uint16(20872), + 148: uint16(21018), + 149: uint16(38050), + 150: uint16(32568), + 151: uint16(32923), + 152: uint16(32434), + 153: uint16(23703), + 154: uint16(28207), + 155: uint16(26464), + 156: uint16(31705), + 157: uint16(30347), + 158: uint16(39640), + 159: uint16(33167), + 160: uint16(32660), + 161: uint16(31957), + 162: uint16(25630), + 163: uint16(38224), + 164: uint16(31295), + 165: uint16(21578), + 166: uint16(21733), + 167: uint16(27468), + 168: uint16(25601), + 169: uint16(25096), + 170: uint16(40509), + 171: uint16(33011), + 172: uint16(30105), + 173: uint16(21106), + 174: uint16(38761), + 175: uint16(33883), + 176: uint16(26684), + 177: uint16(34532), + 178: uint16(38401), + 179: uint16(38548), + 180: uint16(38124), + 181: uint16(20010), + 182: uint16(21508), + 183: uint16(32473), + 184: uint16(26681), + 185: uint16(36319), + 186: uint16(32789), + 187: uint16(26356), + 188: uint16(24218), + 189: uint16(32697), + }, + 56: { + 0: uint16(31535), + 1: uint16(31536), + 2: uint16(31538), + 3: uint16(31540), + 4: uint16(31541), + 5: uint16(31542), + 6: uint16(31543), + 7: uint16(31545), + 8: uint16(31547), + 9: uint16(31549), + 10: uint16(31551), + 11: uint16(31552), + 12: uint16(31553), + 13: uint16(31554), + 14: uint16(31555), + 15: uint16(31556), + 16: uint16(31558), + 17: uint16(31560), + 18: uint16(31562), + 19: uint16(31565), + 20: uint16(31566), + 21: uint16(31571), + 22: uint16(31573), + 23: uint16(31575), + 24: uint16(31577), + 25: uint16(31580), + 26: uint16(31582), + 27: uint16(31583), + 28: uint16(31585), + 29: uint16(31587), + 30: uint16(31588), + 31: uint16(31589), + 32: uint16(31590), + 33: uint16(31591), + 34: uint16(31592), + 35: uint16(31593), + 36: uint16(31594), + 37: uint16(31595), + 38: uint16(31596), + 39: uint16(31597), + 40: uint16(31599), + 41: uint16(31600), + 42: uint16(31603), + 43: uint16(31604), + 44: uint16(31606), + 45: uint16(31608), + 46: uint16(31610), + 47: uint16(31612), + 48: uint16(31613), + 49: uint16(31615), + 50: uint16(31617), + 51: uint16(31618), + 52: uint16(31619), + 53: uint16(31620), + 54: uint16(31622), + 55: uint16(31623), + 56: uint16(31624), + 57: uint16(31625), + 58: uint16(31626), + 59: uint16(31627), + 60: uint16(31628), + 61: uint16(31630), + 62: uint16(31631), + 63: uint16(31633), + 64: uint16(31634), + 65: uint16(31635), + 66: uint16(31638), + 67: uint16(31640), + 68: uint16(31641), + 69: uint16(31642), + 70: uint16(31643), + 71: uint16(31646), + 72: uint16(31647), + 73: uint16(31648), + 74: uint16(31651), + 75: uint16(31652), + 76: uint16(31653), + 77: uint16(31662), + 78: uint16(31663), + 79: uint16(31664), + 80: uint16(31666), + 81: uint16(31667), + 82: uint16(31669), + 83: uint16(31670), + 84: uint16(31671), + 85: uint16(31673), + 86: uint16(31674), + 87: uint16(31675), + 88: uint16(31676), + 89: uint16(31677), + 90: uint16(31678), + 91: uint16(31679), + 92: uint16(31680), + 93: uint16(31682), + 94: uint16(31683), + 95: uint16(31684), + 96: uint16(22466), + 97: uint16(32831), + 98: uint16(26775), + 99: uint16(24037), + 100: uint16(25915), + 101: uint16(21151), + 102: uint16(24685), + 103: uint16(40858), + 104: uint16(20379), + 105: uint16(36524), + 106: uint16(20844), + 107: uint16(23467), + 108: uint16(24339), + 109: uint16(24041), + 110: uint16(27742), + 111: uint16(25329), + 112: uint16(36129), + 113: uint16(20849), + 114: uint16(38057), + 115: uint16(21246), + 116: uint16(27807), + 117: uint16(33503), + 118: uint16(29399), + 119: uint16(22434), + 120: uint16(26500), + 121: uint16(36141), + 122: uint16(22815), + 123: uint16(36764), + 124: uint16(33735), + 125: uint16(21653), + 126: uint16(31629), + 127: uint16(20272), + 128: uint16(27837), + 129: uint16(23396), + 130: uint16(22993), + 131: uint16(40723), + 132: uint16(21476), + 133: uint16(34506), + 134: uint16(39592), + 135: uint16(35895), + 136: uint16(32929), + 137: uint16(25925), + 138: uint16(39038), + 139: uint16(22266), + 140: uint16(38599), + 141: uint16(21038), + 142: uint16(29916), + 143: uint16(21072), + 144: uint16(23521), + 145: uint16(25346), + 146: uint16(35074), + 147: uint16(20054), + 148: uint16(25296), + 149: uint16(24618), + 150: uint16(26874), + 151: uint16(20851), + 152: uint16(23448), + 153: uint16(20896), + 154: uint16(35266), + 155: uint16(31649), + 156: uint16(39302), + 157: uint16(32592), + 158: uint16(24815), + 159: uint16(28748), + 160: uint16(36143), + 161: uint16(20809), + 162: uint16(24191), + 163: uint16(36891), + 164: uint16(29808), + 165: uint16(35268), + 166: uint16(22317), + 167: uint16(30789), + 168: uint16(24402), + 169: uint16(40863), + 170: uint16(38394), + 171: uint16(36712), + 172: uint16(39740), + 173: uint16(35809), + 174: uint16(30328), + 175: uint16(26690), + 176: uint16(26588), + 177: uint16(36330), + 178: uint16(36149), + 179: uint16(21053), + 180: uint16(36746), + 181: uint16(28378), + 182: uint16(26829), + 183: uint16(38149), + 184: uint16(37101), + 185: uint16(22269), + 186: uint16(26524), + 187: uint16(35065), + 188: uint16(36807), + 189: uint16(21704), + }, + 57: { + 0: uint16(31685), + 1: uint16(31688), + 2: uint16(31689), + 3: uint16(31690), + 4: uint16(31691), + 5: uint16(31693), + 6: uint16(31694), + 7: uint16(31695), + 8: uint16(31696), + 9: uint16(31698), + 10: uint16(31700), + 11: uint16(31701), + 12: uint16(31702), + 13: uint16(31703), + 14: uint16(31704), + 15: uint16(31707), + 16: uint16(31708), + 17: uint16(31710), + 18: uint16(31711), + 19: uint16(31712), + 20: uint16(31714), + 21: uint16(31715), + 22: uint16(31716), + 23: uint16(31719), + 24: uint16(31720), + 25: uint16(31721), + 26: uint16(31723), + 27: uint16(31724), + 28: uint16(31725), + 29: uint16(31727), + 30: uint16(31728), + 31: uint16(31730), + 32: uint16(31731), + 33: uint16(31732), + 34: uint16(31733), + 35: uint16(31734), + 36: uint16(31736), + 37: uint16(31737), + 38: uint16(31738), + 39: uint16(31739), + 40: uint16(31741), + 41: uint16(31743), + 42: uint16(31744), + 43: uint16(31745), + 44: uint16(31746), + 45: uint16(31747), + 46: uint16(31748), + 47: uint16(31749), + 48: uint16(31750), + 49: uint16(31752), + 50: uint16(31753), + 51: uint16(31754), + 52: uint16(31757), + 53: uint16(31758), + 54: uint16(31760), + 55: uint16(31761), + 56: uint16(31762), + 57: uint16(31763), + 58: uint16(31764), + 59: uint16(31765), + 60: uint16(31767), + 61: uint16(31768), + 62: uint16(31769), + 63: uint16(31770), + 64: uint16(31771), + 65: uint16(31772), + 66: uint16(31773), + 67: uint16(31774), + 68: uint16(31776), + 69: uint16(31777), + 70: uint16(31778), + 71: uint16(31779), + 72: uint16(31780), + 73: uint16(31781), + 74: uint16(31784), + 75: uint16(31785), + 76: uint16(31787), + 77: uint16(31788), + 78: uint16(31789), + 79: uint16(31790), + 80: uint16(31791), + 81: uint16(31792), + 82: uint16(31793), + 83: uint16(31794), + 84: uint16(31795), + 85: uint16(31796), + 86: uint16(31797), + 87: uint16(31798), + 88: uint16(31799), + 89: uint16(31801), + 90: uint16(31802), + 91: uint16(31803), + 92: uint16(31804), + 93: uint16(31805), + 94: uint16(31806), + 95: uint16(31810), + 96: uint16(39608), + 97: uint16(23401), + 98: uint16(28023), + 99: uint16(27686), + 100: uint16(20133), + 101: uint16(23475), + 102: uint16(39559), + 103: uint16(37219), + 104: uint16(25000), + 105: uint16(37039), + 106: uint16(38889), + 107: uint16(21547), + 108: uint16(28085), + 109: uint16(23506), + 110: uint16(20989), + 111: uint16(21898), + 112: uint16(32597), + 113: uint16(32752), + 114: uint16(25788), + 115: uint16(25421), + 116: uint16(26097), + 117: uint16(25022), + 118: uint16(24717), + 119: uint16(28938), + 120: uint16(27735), + 121: uint16(27721), + 122: uint16(22831), + 123: uint16(26477), + 124: uint16(33322), + 125: uint16(22741), + 126: uint16(22158), + 127: uint16(35946), + 128: uint16(27627), + 129: uint16(37085), + 130: uint16(22909), + 131: uint16(32791), + 132: uint16(21495), + 133: uint16(28009), + 134: uint16(21621), + 135: uint16(21917), + 136: uint16(33655), + 137: uint16(33743), + 138: uint16(26680), + 139: uint16(31166), + 140: uint16(21644), + 141: uint16(20309), + 142: uint16(21512), + 143: uint16(30418), + 144: uint16(35977), + 145: uint16(38402), + 146: uint16(27827), + 147: uint16(28088), + 148: uint16(36203), + 149: uint16(35088), + 150: uint16(40548), + 151: uint16(36154), + 152: uint16(22079), + 153: uint16(40657), + 154: uint16(30165), + 155: uint16(24456), + 156: uint16(29408), + 157: uint16(24680), + 158: uint16(21756), + 159: uint16(20136), + 160: uint16(27178), + 161: uint16(34913), + 162: uint16(24658), + 163: uint16(36720), + 164: uint16(21700), + 165: uint16(28888), + 166: uint16(34425), + 167: uint16(40511), + 168: uint16(27946), + 169: uint16(23439), + 170: uint16(24344), + 171: uint16(32418), + 172: uint16(21897), + 173: uint16(20399), + 174: uint16(29492), + 175: uint16(21564), + 176: uint16(21402), + 177: uint16(20505), + 178: uint16(21518), + 179: uint16(21628), + 180: uint16(20046), + 181: uint16(24573), + 182: uint16(29786), + 183: uint16(22774), + 184: uint16(33899), + 185: uint16(32993), + 186: uint16(34676), + 187: uint16(29392), + 188: uint16(31946), + 189: uint16(28246), + }, + 58: { + 0: uint16(31811), + 1: uint16(31812), + 2: uint16(31813), + 3: uint16(31814), + 4: uint16(31815), + 5: uint16(31816), + 6: uint16(31817), + 7: uint16(31818), + 8: uint16(31819), + 9: uint16(31820), + 10: uint16(31822), + 11: uint16(31823), + 12: uint16(31824), + 13: uint16(31825), + 14: uint16(31826), + 15: uint16(31827), + 16: uint16(31828), + 17: uint16(31829), + 18: uint16(31830), + 19: uint16(31831), + 20: uint16(31832), + 21: uint16(31833), + 22: uint16(31834), + 23: uint16(31835), + 24: uint16(31836), + 25: uint16(31837), + 26: uint16(31838), + 27: uint16(31839), + 28: uint16(31840), + 29: uint16(31841), + 30: uint16(31842), + 31: uint16(31843), + 32: uint16(31844), + 33: uint16(31845), + 34: uint16(31846), + 35: uint16(31847), + 36: uint16(31848), + 37: uint16(31849), + 38: uint16(31850), + 39: uint16(31851), + 40: uint16(31852), + 41: uint16(31853), + 42: uint16(31854), + 43: uint16(31855), + 44: uint16(31856), + 45: uint16(31857), + 46: uint16(31858), + 47: uint16(31861), + 48: uint16(31862), + 49: uint16(31863), + 50: uint16(31864), + 51: uint16(31865), + 52: uint16(31866), + 53: uint16(31870), + 54: uint16(31871), + 55: uint16(31872), + 56: uint16(31873), + 57: uint16(31874), + 58: uint16(31875), + 59: uint16(31876), + 60: uint16(31877), + 61: uint16(31878), + 62: uint16(31879), + 63: uint16(31880), + 64: uint16(31882), + 65: uint16(31883), + 66: uint16(31884), + 67: uint16(31885), + 68: uint16(31886), + 69: uint16(31887), + 70: uint16(31888), + 71: uint16(31891), + 72: uint16(31892), + 73: uint16(31894), + 74: uint16(31897), + 75: uint16(31898), + 76: uint16(31899), + 77: uint16(31904), + 78: uint16(31905), + 79: uint16(31907), + 80: uint16(31910), + 81: uint16(31911), + 82: uint16(31912), + 83: uint16(31913), + 84: uint16(31915), + 85: uint16(31916), + 86: uint16(31917), + 87: uint16(31919), + 88: uint16(31920), + 89: uint16(31924), + 90: uint16(31925), + 91: uint16(31926), + 92: uint16(31927), + 93: uint16(31928), + 94: uint16(31930), + 95: uint16(31931), + 96: uint16(24359), + 97: uint16(34382), + 98: uint16(21804), + 99: uint16(25252), + 100: uint16(20114), + 101: uint16(27818), + 102: uint16(25143), + 103: uint16(33457), + 104: uint16(21719), + 105: uint16(21326), + 106: uint16(29502), + 107: uint16(28369), + 108: uint16(30011), + 109: uint16(21010), + 110: uint16(21270), + 111: uint16(35805), + 112: uint16(27088), + 113: uint16(24458), + 114: uint16(24576), + 115: uint16(28142), + 116: uint16(22351), + 117: uint16(27426), + 118: uint16(29615), + 119: uint16(26707), + 120: uint16(36824), + 121: uint16(32531), + 122: uint16(25442), + 123: uint16(24739), + 124: uint16(21796), + 125: uint16(30186), + 126: uint16(35938), + 127: uint16(28949), + 128: uint16(28067), + 129: uint16(23462), + 130: uint16(24187), + 131: uint16(33618), + 132: uint16(24908), + 133: uint16(40644), + 134: uint16(30970), + 135: uint16(34647), + 136: uint16(31783), + 137: uint16(30343), + 138: uint16(20976), + 139: uint16(24822), + 140: uint16(29004), + 141: uint16(26179), + 142: uint16(24140), + 143: uint16(24653), + 144: uint16(35854), + 145: uint16(28784), + 146: uint16(25381), + 147: uint16(36745), + 148: uint16(24509), + 149: uint16(24674), + 150: uint16(34516), + 151: uint16(22238), + 152: uint16(27585), + 153: uint16(24724), + 154: uint16(24935), + 155: uint16(21321), + 156: uint16(24800), + 157: uint16(26214), + 158: uint16(36159), + 159: uint16(31229), + 160: uint16(20250), + 161: uint16(28905), + 162: uint16(27719), + 163: uint16(35763), + 164: uint16(35826), + 165: uint16(32472), + 166: uint16(33636), + 167: uint16(26127), + 168: uint16(23130), + 169: uint16(39746), + 170: uint16(27985), + 171: uint16(28151), + 172: uint16(35905), + 173: uint16(27963), + 174: uint16(20249), + 175: uint16(28779), + 176: uint16(33719), + 177: uint16(25110), + 178: uint16(24785), + 179: uint16(38669), + 180: uint16(36135), + 181: uint16(31096), + 182: uint16(20987), + 183: uint16(22334), + 184: uint16(22522), + 185: uint16(26426), + 186: uint16(30072), + 187: uint16(31293), + 188: uint16(31215), + 189: uint16(31637), + }, + 59: { + 0: uint16(31935), + 1: uint16(31936), + 2: uint16(31938), + 3: uint16(31939), + 4: uint16(31940), + 5: uint16(31942), + 6: uint16(31945), + 7: uint16(31947), + 8: uint16(31950), + 9: uint16(31951), + 10: uint16(31952), + 11: uint16(31953), + 12: uint16(31954), + 13: uint16(31955), + 14: uint16(31956), + 15: uint16(31960), + 16: uint16(31962), + 17: uint16(31963), + 18: uint16(31965), + 19: uint16(31966), + 20: uint16(31969), + 21: uint16(31970), + 22: uint16(31971), + 23: uint16(31972), + 24: uint16(31973), + 25: uint16(31974), + 26: uint16(31975), + 27: uint16(31977), + 28: uint16(31978), + 29: uint16(31979), + 30: uint16(31980), + 31: uint16(31981), + 32: uint16(31982), + 33: uint16(31984), + 34: uint16(31985), + 35: uint16(31986), + 36: uint16(31987), + 37: uint16(31988), + 38: uint16(31989), + 39: uint16(31990), + 40: uint16(31991), + 41: uint16(31993), + 42: uint16(31994), + 43: uint16(31996), + 44: uint16(31997), + 45: uint16(31998), + 46: uint16(31999), + 47: uint16(32000), + 48: uint16(32001), + 49: uint16(32002), + 50: uint16(32003), + 51: uint16(32004), + 52: uint16(32005), + 53: uint16(32006), + 54: uint16(32007), + 55: uint16(32008), + 56: uint16(32009), + 57: uint16(32011), + 58: uint16(32012), + 59: uint16(32013), + 60: uint16(32014), + 61: uint16(32015), + 62: uint16(32016), + 63: uint16(32017), + 64: uint16(32018), + 65: uint16(32019), + 66: uint16(32020), + 67: uint16(32021), + 68: uint16(32022), + 69: uint16(32023), + 70: uint16(32024), + 71: uint16(32025), + 72: uint16(32026), + 73: uint16(32027), + 74: uint16(32028), + 75: uint16(32029), + 76: uint16(32030), + 77: uint16(32031), + 78: uint16(32033), + 79: uint16(32035), + 80: uint16(32036), + 81: uint16(32037), + 82: uint16(32038), + 83: uint16(32040), + 84: uint16(32041), + 85: uint16(32042), + 86: uint16(32044), + 87: uint16(32045), + 88: uint16(32046), + 89: uint16(32048), + 90: uint16(32049), + 91: uint16(32050), + 92: uint16(32051), + 93: uint16(32052), + 94: uint16(32053), + 95: uint16(32054), + 96: uint16(32908), + 97: uint16(39269), + 98: uint16(36857), + 99: uint16(28608), + 100: uint16(35749), + 101: uint16(40481), + 102: uint16(23020), + 103: uint16(32489), + 104: uint16(32521), + 105: uint16(21513), + 106: uint16(26497), + 107: uint16(26840), + 108: uint16(36753), + 109: uint16(31821), + 110: uint16(38598), + 111: uint16(21450), + 112: uint16(24613), + 113: uint16(30142), + 114: uint16(27762), + 115: uint16(21363), + 116: uint16(23241), + 117: uint16(32423), + 118: uint16(25380), + 119: uint16(20960), + 120: uint16(33034), + 121: uint16(24049), + 122: uint16(34015), + 123: uint16(25216), + 124: uint16(20864), + 125: uint16(23395), + 126: uint16(20238), + 127: uint16(31085), + 128: uint16(21058), + 129: uint16(24760), + 130: uint16(27982), + 131: uint16(23492), + 132: uint16(23490), + 133: uint16(35745), + 134: uint16(35760), + 135: uint16(26082), + 136: uint16(24524), + 137: uint16(38469), + 138: uint16(22931), + 139: uint16(32487), + 140: uint16(32426), + 141: uint16(22025), + 142: uint16(26551), + 143: uint16(22841), + 144: uint16(20339), + 145: uint16(23478), + 146: uint16(21152), + 147: uint16(33626), + 148: uint16(39050), + 149: uint16(36158), + 150: uint16(30002), + 151: uint16(38078), + 152: uint16(20551), + 153: uint16(31292), + 154: uint16(20215), + 155: uint16(26550), + 156: uint16(39550), + 157: uint16(23233), + 158: uint16(27516), + 159: uint16(30417), + 160: uint16(22362), + 161: uint16(23574), + 162: uint16(31546), + 163: uint16(38388), + 164: uint16(29006), + 165: uint16(20860), + 166: uint16(32937), + 167: uint16(33392), + 168: uint16(22904), + 169: uint16(32516), + 170: uint16(33575), + 171: uint16(26816), + 172: uint16(26604), + 173: uint16(30897), + 174: uint16(30839), + 175: uint16(25315), + 176: uint16(25441), + 177: uint16(31616), + 178: uint16(20461), + 179: uint16(21098), + 180: uint16(20943), + 181: uint16(33616), + 182: uint16(27099), + 183: uint16(37492), + 184: uint16(36341), + 185: uint16(36145), + 186: uint16(35265), + 187: uint16(38190), + 188: uint16(31661), + 189: uint16(20214), + }, + 60: { + 0: uint16(32055), + 1: uint16(32056), + 2: uint16(32057), + 3: uint16(32058), + 4: uint16(32059), + 5: uint16(32060), + 6: uint16(32061), + 7: uint16(32062), + 8: uint16(32063), + 9: uint16(32064), + 10: uint16(32065), + 11: uint16(32066), + 12: uint16(32067), + 13: uint16(32068), + 14: uint16(32069), + 15: uint16(32070), + 16: uint16(32071), + 17: uint16(32072), + 18: uint16(32073), + 19: uint16(32074), + 20: uint16(32075), + 21: uint16(32076), + 22: uint16(32077), + 23: uint16(32078), + 24: uint16(32079), + 25: uint16(32080), + 26: uint16(32081), + 27: uint16(32082), + 28: uint16(32083), + 29: uint16(32084), + 30: uint16(32085), + 31: uint16(32086), + 32: uint16(32087), + 33: uint16(32088), + 34: uint16(32089), + 35: uint16(32090), + 36: uint16(32091), + 37: uint16(32092), + 38: uint16(32093), + 39: uint16(32094), + 40: uint16(32095), + 41: uint16(32096), + 42: uint16(32097), + 43: uint16(32098), + 44: uint16(32099), + 45: uint16(32100), + 46: uint16(32101), + 47: uint16(32102), + 48: uint16(32103), + 49: uint16(32104), + 50: uint16(32105), + 51: uint16(32106), + 52: uint16(32107), + 53: uint16(32108), + 54: uint16(32109), + 55: uint16(32111), + 56: uint16(32112), + 57: uint16(32113), + 58: uint16(32114), + 59: uint16(32115), + 60: uint16(32116), + 61: uint16(32117), + 62: uint16(32118), + 63: uint16(32120), + 64: uint16(32121), + 65: uint16(32122), + 66: uint16(32123), + 67: uint16(32124), + 68: uint16(32125), + 69: uint16(32126), + 70: uint16(32127), + 71: uint16(32128), + 72: uint16(32129), + 73: uint16(32130), + 74: uint16(32131), + 75: uint16(32132), + 76: uint16(32133), + 77: uint16(32134), + 78: uint16(32135), + 79: uint16(32136), + 80: uint16(32137), + 81: uint16(32138), + 82: uint16(32139), + 83: uint16(32140), + 84: uint16(32141), + 85: uint16(32142), + 86: uint16(32143), + 87: uint16(32144), + 88: uint16(32145), + 89: uint16(32146), + 90: uint16(32147), + 91: uint16(32148), + 92: uint16(32149), + 93: uint16(32150), + 94: uint16(32151), + 95: uint16(32152), + 96: uint16(20581), + 97: uint16(33328), + 98: uint16(21073), + 99: uint16(39279), + 100: uint16(28176), + 101: uint16(28293), + 102: uint16(28071), + 103: uint16(24314), + 104: uint16(20725), + 105: uint16(23004), + 106: uint16(23558), + 107: uint16(27974), + 108: uint16(27743), + 109: uint16(30086), + 110: uint16(33931), + 111: uint16(26728), + 112: uint16(22870), + 113: uint16(35762), + 114: uint16(21280), + 115: uint16(37233), + 116: uint16(38477), + 117: uint16(34121), + 118: uint16(26898), + 119: uint16(30977), + 120: uint16(28966), + 121: uint16(33014), + 122: uint16(20132), + 123: uint16(37066), + 124: uint16(27975), + 125: uint16(39556), + 126: uint16(23047), + 127: uint16(22204), + 128: uint16(25605), + 129: uint16(38128), + 130: uint16(30699), + 131: uint16(20389), + 132: uint16(33050), + 133: uint16(29409), + 134: uint16(35282), + 135: uint16(39290), + 136: uint16(32564), + 137: uint16(32478), + 138: uint16(21119), + 139: uint16(25945), + 140: uint16(37237), + 141: uint16(36735), + 142: uint16(36739), + 143: uint16(21483), + 144: uint16(31382), + 145: uint16(25581), + 146: uint16(25509), + 147: uint16(30342), + 148: uint16(31224), + 149: uint16(34903), + 150: uint16(38454), + 151: uint16(25130), + 152: uint16(21163), + 153: uint16(33410), + 154: uint16(26708), + 155: uint16(26480), + 156: uint16(25463), + 157: uint16(30571), + 158: uint16(31469), + 159: uint16(27905), + 160: uint16(32467), + 161: uint16(35299), + 162: uint16(22992), + 163: uint16(25106), + 164: uint16(34249), + 165: uint16(33445), + 166: uint16(30028), + 167: uint16(20511), + 168: uint16(20171), + 169: uint16(30117), + 170: uint16(35819), + 171: uint16(23626), + 172: uint16(24062), + 173: uint16(31563), + 174: uint16(26020), + 175: uint16(37329), + 176: uint16(20170), + 177: uint16(27941), + 178: uint16(35167), + 179: uint16(32039), + 180: uint16(38182), + 181: uint16(20165), + 182: uint16(35880), + 183: uint16(36827), + 184: uint16(38771), + 185: uint16(26187), + 186: uint16(31105), + 187: uint16(36817), + 188: uint16(28908), + 189: uint16(28024), + }, + 61: { + 0: uint16(32153), + 1: uint16(32154), + 2: uint16(32155), + 3: uint16(32156), + 4: uint16(32157), + 5: uint16(32158), + 6: uint16(32159), + 7: uint16(32160), + 8: uint16(32161), + 9: uint16(32162), + 10: uint16(32163), + 11: uint16(32164), + 12: uint16(32165), + 13: uint16(32167), + 14: uint16(32168), + 15: uint16(32169), + 16: uint16(32170), + 17: uint16(32171), + 18: uint16(32172), + 19: uint16(32173), + 20: uint16(32175), + 21: uint16(32176), + 22: uint16(32177), + 23: uint16(32178), + 24: uint16(32179), + 25: uint16(32180), + 26: uint16(32181), + 27: uint16(32182), + 28: uint16(32183), + 29: uint16(32184), + 30: uint16(32185), + 31: uint16(32186), + 32: uint16(32187), + 33: uint16(32188), + 34: uint16(32189), + 35: uint16(32190), + 36: uint16(32191), + 37: uint16(32192), + 38: uint16(32193), + 39: uint16(32194), + 40: uint16(32195), + 41: uint16(32196), + 42: uint16(32197), + 43: uint16(32198), + 44: uint16(32199), + 45: uint16(32200), + 46: uint16(32201), + 47: uint16(32202), + 48: uint16(32203), + 49: uint16(32204), + 50: uint16(32205), + 51: uint16(32206), + 52: uint16(32207), + 53: uint16(32208), + 54: uint16(32209), + 55: uint16(32210), + 56: uint16(32211), + 57: uint16(32212), + 58: uint16(32213), + 59: uint16(32214), + 60: uint16(32215), + 61: uint16(32216), + 62: uint16(32217), + 63: uint16(32218), + 64: uint16(32219), + 65: uint16(32220), + 66: uint16(32221), + 67: uint16(32222), + 68: uint16(32223), + 69: uint16(32224), + 70: uint16(32225), + 71: uint16(32226), + 72: uint16(32227), + 73: uint16(32228), + 74: uint16(32229), + 75: uint16(32230), + 76: uint16(32231), + 77: uint16(32232), + 78: uint16(32233), + 79: uint16(32234), + 80: uint16(32235), + 81: uint16(32236), + 82: uint16(32237), + 83: uint16(32238), + 84: uint16(32239), + 85: uint16(32240), + 86: uint16(32241), + 87: uint16(32242), + 88: uint16(32243), + 89: uint16(32244), + 90: uint16(32245), + 91: uint16(32246), + 92: uint16(32247), + 93: uint16(32248), + 94: uint16(32249), + 95: uint16(32250), + 96: uint16(23613), + 97: uint16(21170), + 98: uint16(33606), + 99: uint16(20834), + 100: uint16(33550), + 101: uint16(30555), + 102: uint16(26230), + 103: uint16(40120), + 104: uint16(20140), + 105: uint16(24778), + 106: uint16(31934), + 107: uint16(31923), + 108: uint16(32463), + 109: uint16(20117), + 110: uint16(35686), + 111: uint16(26223), + 112: uint16(39048), + 113: uint16(38745), + 114: uint16(22659), + 115: uint16(25964), + 116: uint16(38236), + 117: uint16(24452), + 118: uint16(30153), + 119: uint16(38742), + 120: uint16(31455), + 121: uint16(31454), + 122: uint16(20928), + 123: uint16(28847), + 124: uint16(31384), + 125: uint16(25578), + 126: uint16(31350), + 127: uint16(32416), + 128: uint16(29590), + 129: uint16(38893), + 130: uint16(20037), + 131: uint16(28792), + 132: uint16(20061), + 133: uint16(37202), + 134: uint16(21417), + 135: uint16(25937), + 136: uint16(26087), + 137: uint16(33276), + 138: uint16(33285), + 139: uint16(21646), + 140: uint16(23601), + 141: uint16(30106), + 142: uint16(38816), + 143: uint16(25304), + 144: uint16(29401), + 145: uint16(30141), + 146: uint16(23621), + 147: uint16(39545), + 148: uint16(33738), + 149: uint16(23616), + 150: uint16(21632), + 151: uint16(30697), + 152: uint16(20030), + 153: uint16(27822), + 154: uint16(32858), + 155: uint16(25298), + 156: uint16(25454), + 157: uint16(24040), + 158: uint16(20855), + 159: uint16(36317), + 160: uint16(36382), + 161: uint16(38191), + 162: uint16(20465), + 163: uint16(21477), + 164: uint16(24807), + 165: uint16(28844), + 166: uint16(21095), + 167: uint16(25424), + 168: uint16(40515), + 169: uint16(23071), + 170: uint16(20518), + 171: uint16(30519), + 172: uint16(21367), + 173: uint16(32482), + 174: uint16(25733), + 175: uint16(25899), + 176: uint16(25225), + 177: uint16(25496), + 178: uint16(20500), + 179: uint16(29237), + 180: uint16(35273), + 181: uint16(20915), + 182: uint16(35776), + 183: uint16(32477), + 184: uint16(22343), + 185: uint16(33740), + 186: uint16(38055), + 187: uint16(20891), + 188: uint16(21531), + 189: uint16(23803), + }, + 62: { + 0: uint16(32251), + 1: uint16(32252), + 2: uint16(32253), + 3: uint16(32254), + 4: uint16(32255), + 5: uint16(32256), + 6: uint16(32257), + 7: uint16(32258), + 8: uint16(32259), + 9: uint16(32260), + 10: uint16(32261), + 11: uint16(32262), + 12: uint16(32263), + 13: uint16(32264), + 14: uint16(32265), + 15: uint16(32266), + 16: uint16(32267), + 17: uint16(32268), + 18: uint16(32269), + 19: uint16(32270), + 20: uint16(32271), + 21: uint16(32272), + 22: uint16(32273), + 23: uint16(32274), + 24: uint16(32275), + 25: uint16(32276), + 26: uint16(32277), + 27: uint16(32278), + 28: uint16(32279), + 29: uint16(32280), + 30: uint16(32281), + 31: uint16(32282), + 32: uint16(32283), + 33: uint16(32284), + 34: uint16(32285), + 35: uint16(32286), + 36: uint16(32287), + 37: uint16(32288), + 38: uint16(32289), + 39: uint16(32290), + 40: uint16(32291), + 41: uint16(32292), + 42: uint16(32293), + 43: uint16(32294), + 44: uint16(32295), + 45: uint16(32296), + 46: uint16(32297), + 47: uint16(32298), + 48: uint16(32299), + 49: uint16(32300), + 50: uint16(32301), + 51: uint16(32302), + 52: uint16(32303), + 53: uint16(32304), + 54: uint16(32305), + 55: uint16(32306), + 56: uint16(32307), + 57: uint16(32308), + 58: uint16(32309), + 59: uint16(32310), + 60: uint16(32311), + 61: uint16(32312), + 62: uint16(32313), + 63: uint16(32314), + 64: uint16(32316), + 65: uint16(32317), + 66: uint16(32318), + 67: uint16(32319), + 68: uint16(32320), + 69: uint16(32322), + 70: uint16(32323), + 71: uint16(32324), + 72: uint16(32325), + 73: uint16(32326), + 74: uint16(32328), + 75: uint16(32329), + 76: uint16(32330), + 77: uint16(32331), + 78: uint16(32332), + 79: uint16(32333), + 80: uint16(32334), + 81: uint16(32335), + 82: uint16(32336), + 83: uint16(32337), + 84: uint16(32338), + 85: uint16(32339), + 86: uint16(32340), + 87: uint16(32341), + 88: uint16(32342), + 89: uint16(32343), + 90: uint16(32344), + 91: uint16(32345), + 92: uint16(32346), + 93: uint16(32347), + 94: uint16(32348), + 95: uint16(32349), + 96: uint16(20426), + 97: uint16(31459), + 98: uint16(27994), + 99: uint16(37089), + 100: uint16(39567), + 101: uint16(21888), + 102: uint16(21654), + 103: uint16(21345), + 104: uint16(21679), + 105: uint16(24320), + 106: uint16(25577), + 107: uint16(26999), + 108: uint16(20975), + 109: uint16(24936), + 110: uint16(21002), + 111: uint16(22570), + 112: uint16(21208), + 113: uint16(22350), + 114: uint16(30733), + 115: uint16(30475), + 116: uint16(24247), + 117: uint16(24951), + 118: uint16(31968), + 119: uint16(25179), + 120: uint16(25239), + 121: uint16(20130), + 122: uint16(28821), + 123: uint16(32771), + 124: uint16(25335), + 125: uint16(28900), + 126: uint16(38752), + 127: uint16(22391), + 128: uint16(33499), + 129: uint16(26607), + 130: uint16(26869), + 131: uint16(30933), + 132: uint16(39063), + 133: uint16(31185), + 134: uint16(22771), + 135: uint16(21683), + 136: uint16(21487), + 137: uint16(28212), + 138: uint16(20811), + 139: uint16(21051), + 140: uint16(23458), + 141: uint16(35838), + 142: uint16(32943), + 143: uint16(21827), + 144: uint16(22438), + 145: uint16(24691), + 146: uint16(22353), + 147: uint16(21549), + 148: uint16(31354), + 149: uint16(24656), + 150: uint16(23380), + 151: uint16(25511), + 152: uint16(25248), + 153: uint16(21475), + 154: uint16(25187), + 155: uint16(23495), + 156: uint16(26543), + 157: uint16(21741), + 158: uint16(31391), + 159: uint16(33510), + 160: uint16(37239), + 161: uint16(24211), + 162: uint16(35044), + 163: uint16(22840), + 164: uint16(22446), + 165: uint16(25358), + 166: uint16(36328), + 167: uint16(33007), + 168: uint16(22359), + 169: uint16(31607), + 170: uint16(20393), + 171: uint16(24555), + 172: uint16(23485), + 173: uint16(27454), + 174: uint16(21281), + 175: uint16(31568), + 176: uint16(29378), + 177: uint16(26694), + 178: uint16(30719), + 179: uint16(30518), + 180: uint16(26103), + 181: uint16(20917), + 182: uint16(20111), + 183: uint16(30420), + 184: uint16(23743), + 185: uint16(31397), + 186: uint16(33909), + 187: uint16(22862), + 188: uint16(39745), + 189: uint16(20608), + }, + 63: { + 0: uint16(32350), + 1: uint16(32351), + 2: uint16(32352), + 3: uint16(32353), + 4: uint16(32354), + 5: uint16(32355), + 6: uint16(32356), + 7: uint16(32357), + 8: uint16(32358), + 9: uint16(32359), + 10: uint16(32360), + 11: uint16(32361), + 12: uint16(32362), + 13: uint16(32363), + 14: uint16(32364), + 15: uint16(32365), + 16: uint16(32366), + 17: uint16(32367), + 18: uint16(32368), + 19: uint16(32369), + 20: uint16(32370), + 21: uint16(32371), + 22: uint16(32372), + 23: uint16(32373), + 24: uint16(32374), + 25: uint16(32375), + 26: uint16(32376), + 27: uint16(32377), + 28: uint16(32378), + 29: uint16(32379), + 30: uint16(32380), + 31: uint16(32381), + 32: uint16(32382), + 33: uint16(32383), + 34: uint16(32384), + 35: uint16(32385), + 36: uint16(32387), + 37: uint16(32388), + 38: uint16(32389), + 39: uint16(32390), + 40: uint16(32391), + 41: uint16(32392), + 42: uint16(32393), + 43: uint16(32394), + 44: uint16(32395), + 45: uint16(32396), + 46: uint16(32397), + 47: uint16(32398), + 48: uint16(32399), + 49: uint16(32400), + 50: uint16(32401), + 51: uint16(32402), + 52: uint16(32403), + 53: uint16(32404), + 54: uint16(32405), + 55: uint16(32406), + 56: uint16(32407), + 57: uint16(32408), + 58: uint16(32409), + 59: uint16(32410), + 60: uint16(32412), + 61: uint16(32413), + 62: uint16(32414), + 63: uint16(32430), + 64: uint16(32436), + 65: uint16(32443), + 66: uint16(32444), + 67: uint16(32470), + 68: uint16(32484), + 69: uint16(32492), + 70: uint16(32505), + 71: uint16(32522), + 72: uint16(32528), + 73: uint16(32542), + 74: uint16(32567), + 75: uint16(32569), + 76: uint16(32571), + 77: uint16(32572), + 78: uint16(32573), + 79: uint16(32574), + 80: uint16(32575), + 81: uint16(32576), + 82: uint16(32577), + 83: uint16(32579), + 84: uint16(32582), + 85: uint16(32583), + 86: uint16(32584), + 87: uint16(32585), + 88: uint16(32586), + 89: uint16(32587), + 90: uint16(32588), + 91: uint16(32589), + 92: uint16(32590), + 93: uint16(32591), + 94: uint16(32594), + 95: uint16(32595), + 96: uint16(39304), + 97: uint16(24871), + 98: uint16(28291), + 99: uint16(22372), + 100: uint16(26118), + 101: uint16(25414), + 102: uint16(22256), + 103: uint16(25324), + 104: uint16(25193), + 105: uint16(24275), + 106: uint16(38420), + 107: uint16(22403), + 108: uint16(25289), + 109: uint16(21895), + 110: uint16(34593), + 111: uint16(33098), + 112: uint16(36771), + 113: uint16(21862), + 114: uint16(33713), + 115: uint16(26469), + 116: uint16(36182), + 117: uint16(34013), + 118: uint16(23146), + 119: uint16(26639), + 120: uint16(25318), + 121: uint16(31726), + 122: uint16(38417), + 123: uint16(20848), + 124: uint16(28572), + 125: uint16(35888), + 126: uint16(25597), + 127: uint16(35272), + 128: uint16(25042), + 129: uint16(32518), + 130: uint16(28866), + 131: uint16(28389), + 132: uint16(29701), + 133: uint16(27028), + 134: uint16(29436), + 135: uint16(24266), + 136: uint16(37070), + 137: uint16(26391), + 138: uint16(28010), + 139: uint16(25438), + 140: uint16(21171), + 141: uint16(29282), + 142: uint16(32769), + 143: uint16(20332), + 144: uint16(23013), + 145: uint16(37226), + 146: uint16(28889), + 147: uint16(28061), + 148: uint16(21202), + 149: uint16(20048), + 150: uint16(38647), + 151: uint16(38253), + 152: uint16(34174), + 153: uint16(30922), + 154: uint16(32047), + 155: uint16(20769), + 156: uint16(22418), + 157: uint16(25794), + 158: uint16(32907), + 159: uint16(31867), + 160: uint16(27882), + 161: uint16(26865), + 162: uint16(26974), + 163: uint16(20919), + 164: uint16(21400), + 165: uint16(26792), + 166: uint16(29313), + 167: uint16(40654), + 168: uint16(31729), + 169: uint16(29432), + 170: uint16(31163), + 171: uint16(28435), + 172: uint16(29702), + 173: uint16(26446), + 174: uint16(37324), + 175: uint16(40100), + 176: uint16(31036), + 177: uint16(33673), + 178: uint16(33620), + 179: uint16(21519), + 180: uint16(26647), + 181: uint16(20029), + 182: uint16(21385), + 183: uint16(21169), + 184: uint16(30782), + 185: uint16(21382), + 186: uint16(21033), + 187: uint16(20616), + 188: uint16(20363), + 189: uint16(20432), + }, + 64: { + 0: uint16(32598), + 1: uint16(32601), + 2: uint16(32603), + 3: uint16(32604), + 4: uint16(32605), + 5: uint16(32606), + 6: uint16(32608), + 7: uint16(32611), + 8: uint16(32612), + 9: uint16(32613), + 10: uint16(32614), + 11: uint16(32615), + 12: uint16(32619), + 13: uint16(32620), + 14: uint16(32621), + 15: uint16(32623), + 16: uint16(32624), + 17: uint16(32627), + 18: uint16(32629), + 19: uint16(32630), + 20: uint16(32631), + 21: uint16(32632), + 22: uint16(32634), + 23: uint16(32635), + 24: uint16(32636), + 25: uint16(32637), + 26: uint16(32639), + 27: uint16(32640), + 28: uint16(32642), + 29: uint16(32643), + 30: uint16(32644), + 31: uint16(32645), + 32: uint16(32646), + 33: uint16(32647), + 34: uint16(32648), + 35: uint16(32649), + 36: uint16(32651), + 37: uint16(32653), + 38: uint16(32655), + 39: uint16(32656), + 40: uint16(32657), + 41: uint16(32658), + 42: uint16(32659), + 43: uint16(32661), + 44: uint16(32662), + 45: uint16(32663), + 46: uint16(32664), + 47: uint16(32665), + 48: uint16(32667), + 49: uint16(32668), + 50: uint16(32672), + 51: uint16(32674), + 52: uint16(32675), + 53: uint16(32677), + 54: uint16(32678), + 55: uint16(32680), + 56: uint16(32681), + 57: uint16(32682), + 58: uint16(32683), + 59: uint16(32684), + 60: uint16(32685), + 61: uint16(32686), + 62: uint16(32689), + 63: uint16(32691), + 64: uint16(32692), + 65: uint16(32693), + 66: uint16(32694), + 67: uint16(32695), + 68: uint16(32698), + 69: uint16(32699), + 70: uint16(32702), + 71: uint16(32704), + 72: uint16(32706), + 73: uint16(32707), + 74: uint16(32708), + 75: uint16(32710), + 76: uint16(32711), + 77: uint16(32712), + 78: uint16(32713), + 79: uint16(32715), + 80: uint16(32717), + 81: uint16(32719), + 82: uint16(32720), + 83: uint16(32721), + 84: uint16(32722), + 85: uint16(32723), + 86: uint16(32726), + 87: uint16(32727), + 88: uint16(32729), + 89: uint16(32730), + 90: uint16(32731), + 91: uint16(32732), + 92: uint16(32733), + 93: uint16(32734), + 94: uint16(32738), + 95: uint16(32739), + 96: uint16(30178), + 97: uint16(31435), + 98: uint16(31890), + 99: uint16(27813), + 100: uint16(38582), + 101: uint16(21147), + 102: uint16(29827), + 103: uint16(21737), + 104: uint16(20457), + 105: uint16(32852), + 106: uint16(33714), + 107: uint16(36830), + 108: uint16(38256), + 109: uint16(24265), + 110: uint16(24604), + 111: uint16(28063), + 112: uint16(24088), + 113: uint16(25947), + 114: uint16(33080), + 115: uint16(38142), + 116: uint16(24651), + 117: uint16(28860), + 118: uint16(32451), + 119: uint16(31918), + 120: uint16(20937), + 121: uint16(26753), + 122: uint16(31921), + 123: uint16(33391), + 124: uint16(20004), + 125: uint16(36742), + 126: uint16(37327), + 127: uint16(26238), + 128: uint16(20142), + 129: uint16(35845), + 130: uint16(25769), + 131: uint16(32842), + 132: uint16(20698), + 133: uint16(30103), + 134: uint16(29134), + 135: uint16(23525), + 136: uint16(36797), + 137: uint16(28518), + 138: uint16(20102), + 139: uint16(25730), + 140: uint16(38243), + 141: uint16(24278), + 142: uint16(26009), + 143: uint16(21015), + 144: uint16(35010), + 145: uint16(28872), + 146: uint16(21155), + 147: uint16(29454), + 148: uint16(29747), + 149: uint16(26519), + 150: uint16(30967), + 151: uint16(38678), + 152: uint16(20020), + 153: uint16(37051), + 154: uint16(40158), + 155: uint16(28107), + 156: uint16(20955), + 157: uint16(36161), + 158: uint16(21533), + 159: uint16(25294), + 160: uint16(29618), + 161: uint16(33777), + 162: uint16(38646), + 163: uint16(40836), + 164: uint16(38083), + 165: uint16(20278), + 166: uint16(32666), + 167: uint16(20940), + 168: uint16(28789), + 169: uint16(38517), + 170: uint16(23725), + 171: uint16(39046), + 172: uint16(21478), + 173: uint16(20196), + 174: uint16(28316), + 175: uint16(29705), + 176: uint16(27060), + 177: uint16(30827), + 178: uint16(39311), + 179: uint16(30041), + 180: uint16(21016), + 181: uint16(30244), + 182: uint16(27969), + 183: uint16(26611), + 184: uint16(20845), + 185: uint16(40857), + 186: uint16(32843), + 187: uint16(21657), + 188: uint16(31548), + 189: uint16(31423), + }, + 65: { + 0: uint16(32740), + 1: uint16(32743), + 2: uint16(32744), + 3: uint16(32746), + 4: uint16(32747), + 5: uint16(32748), + 6: uint16(32749), + 7: uint16(32751), + 8: uint16(32754), + 9: uint16(32756), + 10: uint16(32757), + 11: uint16(32758), + 12: uint16(32759), + 13: uint16(32760), + 14: uint16(32761), + 15: uint16(32762), + 16: uint16(32765), + 17: uint16(32766), + 18: uint16(32767), + 19: uint16(32770), + 20: uint16(32775), + 21: uint16(32776), + 22: uint16(32777), + 23: uint16(32778), + 24: uint16(32782), + 25: uint16(32783), + 26: uint16(32785), + 27: uint16(32787), + 28: uint16(32794), + 29: uint16(32795), + 30: uint16(32797), + 31: uint16(32798), + 32: uint16(32799), + 33: uint16(32801), + 34: uint16(32803), + 35: uint16(32804), + 36: uint16(32811), + 37: uint16(32812), + 38: uint16(32813), + 39: uint16(32814), + 40: uint16(32815), + 41: uint16(32816), + 42: uint16(32818), + 43: uint16(32820), + 44: uint16(32825), + 45: uint16(32826), + 46: uint16(32828), + 47: uint16(32830), + 48: uint16(32832), + 49: uint16(32833), + 50: uint16(32836), + 51: uint16(32837), + 52: uint16(32839), + 53: uint16(32840), + 54: uint16(32841), + 55: uint16(32846), + 56: uint16(32847), + 57: uint16(32848), + 58: uint16(32849), + 59: uint16(32851), + 60: uint16(32853), + 61: uint16(32854), + 62: uint16(32855), + 63: uint16(32857), + 64: uint16(32859), + 65: uint16(32860), + 66: uint16(32861), + 67: uint16(32862), + 68: uint16(32863), + 69: uint16(32864), + 70: uint16(32865), + 71: uint16(32866), + 72: uint16(32867), + 73: uint16(32868), + 74: uint16(32869), + 75: uint16(32870), + 76: uint16(32871), + 77: uint16(32872), + 78: uint16(32875), + 79: uint16(32876), + 80: uint16(32877), + 81: uint16(32878), + 82: uint16(32879), + 83: uint16(32880), + 84: uint16(32882), + 85: uint16(32883), + 86: uint16(32884), + 87: uint16(32885), + 88: uint16(32886), + 89: uint16(32887), + 90: uint16(32888), + 91: uint16(32889), + 92: uint16(32890), + 93: uint16(32891), + 94: uint16(32892), + 95: uint16(32893), + 96: uint16(38534), + 97: uint16(22404), + 98: uint16(25314), + 99: uint16(38471), + 100: uint16(27004), + 101: uint16(23044), + 102: uint16(25602), + 103: uint16(31699), + 104: uint16(28431), + 105: uint16(38475), + 106: uint16(33446), + 107: uint16(21346), + 108: uint16(39045), + 109: uint16(24208), + 110: uint16(28809), + 111: uint16(25523), + 112: uint16(21348), + 113: uint16(34383), + 114: uint16(40065), + 115: uint16(40595), + 116: uint16(30860), + 117: uint16(38706), + 118: uint16(36335), + 119: uint16(36162), + 120: uint16(40575), + 121: uint16(28510), + 122: uint16(31108), + 123: uint16(24405), + 124: uint16(38470), + 125: uint16(25134), + 126: uint16(39540), + 127: uint16(21525), + 128: uint16(38109), + 129: uint16(20387), + 130: uint16(26053), + 131: uint16(23653), + 132: uint16(23649), + 133: uint16(32533), + 134: uint16(34385), + 135: uint16(27695), + 136: uint16(24459), + 137: uint16(29575), + 138: uint16(28388), + 139: uint16(32511), + 140: uint16(23782), + 141: uint16(25371), + 142: uint16(23402), + 143: uint16(28390), + 144: uint16(21365), + 145: uint16(20081), + 146: uint16(25504), + 147: uint16(30053), + 148: uint16(25249), + 149: uint16(36718), + 150: uint16(20262), + 151: uint16(20177), + 152: uint16(27814), + 153: uint16(32438), + 154: uint16(35770), + 155: uint16(33821), + 156: uint16(34746), + 157: uint16(32599), + 158: uint16(36923), + 159: uint16(38179), + 160: uint16(31657), + 161: uint16(39585), + 162: uint16(35064), + 163: uint16(33853), + 164: uint16(27931), + 165: uint16(39558), + 166: uint16(32476), + 167: uint16(22920), + 168: uint16(40635), + 169: uint16(29595), + 170: uint16(30721), + 171: uint16(34434), + 172: uint16(39532), + 173: uint16(39554), + 174: uint16(22043), + 175: uint16(21527), + 176: uint16(22475), + 177: uint16(20080), + 178: uint16(40614), + 179: uint16(21334), + 180: uint16(36808), + 181: uint16(33033), + 182: uint16(30610), + 183: uint16(39314), + 184: uint16(34542), + 185: uint16(28385), + 186: uint16(34067), + 187: uint16(26364), + 188: uint16(24930), + 189: uint16(28459), + }, + 66: { + 0: uint16(32894), + 1: uint16(32897), + 2: uint16(32898), + 3: uint16(32901), + 4: uint16(32904), + 5: uint16(32906), + 6: uint16(32909), + 7: uint16(32910), + 8: uint16(32911), + 9: uint16(32912), + 10: uint16(32913), + 11: uint16(32914), + 12: uint16(32916), + 13: uint16(32917), + 14: uint16(32919), + 15: uint16(32921), + 16: uint16(32926), + 17: uint16(32931), + 18: uint16(32934), + 19: uint16(32935), + 20: uint16(32936), + 21: uint16(32940), + 22: uint16(32944), + 23: uint16(32947), + 24: uint16(32949), + 25: uint16(32950), + 26: uint16(32952), + 27: uint16(32953), + 28: uint16(32955), + 29: uint16(32965), + 30: uint16(32967), + 31: uint16(32968), + 32: uint16(32969), + 33: uint16(32970), + 34: uint16(32971), + 35: uint16(32975), + 36: uint16(32976), + 37: uint16(32977), + 38: uint16(32978), + 39: uint16(32979), + 40: uint16(32980), + 41: uint16(32981), + 42: uint16(32984), + 43: uint16(32991), + 44: uint16(32992), + 45: uint16(32994), + 46: uint16(32995), + 47: uint16(32998), + 48: uint16(33006), + 49: uint16(33013), + 50: uint16(33015), + 51: uint16(33017), + 52: uint16(33019), + 53: uint16(33022), + 54: uint16(33023), + 55: uint16(33024), + 56: uint16(33025), + 57: uint16(33027), + 58: uint16(33028), + 59: uint16(33029), + 60: uint16(33031), + 61: uint16(33032), + 62: uint16(33035), + 63: uint16(33036), + 64: uint16(33045), + 65: uint16(33047), + 66: uint16(33049), + 67: uint16(33051), + 68: uint16(33052), + 69: uint16(33053), + 70: uint16(33055), + 71: uint16(33056), + 72: uint16(33057), + 73: uint16(33058), + 74: uint16(33059), + 75: uint16(33060), + 76: uint16(33061), + 77: uint16(33062), + 78: uint16(33063), + 79: uint16(33064), + 80: uint16(33065), + 81: uint16(33066), + 82: uint16(33067), + 83: uint16(33069), + 84: uint16(33070), + 85: uint16(33072), + 86: uint16(33075), + 87: uint16(33076), + 88: uint16(33077), + 89: uint16(33079), + 90: uint16(33081), + 91: uint16(33082), + 92: uint16(33083), + 93: uint16(33084), + 94: uint16(33085), + 95: uint16(33087), + 96: uint16(35881), + 97: uint16(33426), + 98: uint16(33579), + 99: uint16(30450), + 100: uint16(27667), + 101: uint16(24537), + 102: uint16(33725), + 103: uint16(29483), + 104: uint16(33541), + 105: uint16(38170), + 106: uint16(27611), + 107: uint16(30683), + 108: uint16(38086), + 109: uint16(21359), + 110: uint16(33538), + 111: uint16(20882), + 112: uint16(24125), + 113: uint16(35980), + 114: uint16(36152), + 115: uint16(20040), + 116: uint16(29611), + 117: uint16(26522), + 118: uint16(26757), + 119: uint16(37238), + 120: uint16(38665), + 121: uint16(29028), + 122: uint16(27809), + 123: uint16(30473), + 124: uint16(23186), + 125: uint16(38209), + 126: uint16(27599), + 127: uint16(32654), + 128: uint16(26151), + 129: uint16(23504), + 130: uint16(22969), + 131: uint16(23194), + 132: uint16(38376), + 133: uint16(38391), + 134: uint16(20204), + 135: uint16(33804), + 136: uint16(33945), + 137: uint16(27308), + 138: uint16(30431), + 139: uint16(38192), + 140: uint16(29467), + 141: uint16(26790), + 142: uint16(23391), + 143: uint16(30511), + 144: uint16(37274), + 145: uint16(38753), + 146: uint16(31964), + 147: uint16(36855), + 148: uint16(35868), + 149: uint16(24357), + 150: uint16(31859), + 151: uint16(31192), + 152: uint16(35269), + 153: uint16(27852), + 154: uint16(34588), + 155: uint16(23494), + 156: uint16(24130), + 157: uint16(26825), + 158: uint16(30496), + 159: uint16(32501), + 160: uint16(20885), + 161: uint16(20813), + 162: uint16(21193), + 163: uint16(23081), + 164: uint16(32517), + 165: uint16(38754), + 166: uint16(33495), + 167: uint16(25551), + 168: uint16(30596), + 169: uint16(34256), + 170: uint16(31186), + 171: uint16(28218), + 172: uint16(24217), + 173: uint16(22937), + 174: uint16(34065), + 175: uint16(28781), + 176: uint16(27665), + 177: uint16(25279), + 178: uint16(30399), + 179: uint16(25935), + 180: uint16(24751), + 181: uint16(38397), + 182: uint16(26126), + 183: uint16(34719), + 184: uint16(40483), + 185: uint16(38125), + 186: uint16(21517), + 187: uint16(21629), + 188: uint16(35884), + 189: uint16(25720), + }, + 67: { + 0: uint16(33088), + 1: uint16(33089), + 2: uint16(33090), + 3: uint16(33091), + 4: uint16(33092), + 5: uint16(33093), + 6: uint16(33095), + 7: uint16(33097), + 8: uint16(33101), + 9: uint16(33102), + 10: uint16(33103), + 11: uint16(33106), + 12: uint16(33110), + 13: uint16(33111), + 14: uint16(33112), + 15: uint16(33115), + 16: uint16(33116), + 17: uint16(33117), + 18: uint16(33118), + 19: uint16(33119), + 20: uint16(33121), + 21: uint16(33122), + 22: uint16(33123), + 23: uint16(33124), + 24: uint16(33126), + 25: uint16(33128), + 26: uint16(33130), + 27: uint16(33131), + 28: uint16(33132), + 29: uint16(33135), + 30: uint16(33138), + 31: uint16(33139), + 32: uint16(33141), + 33: uint16(33142), + 34: uint16(33143), + 35: uint16(33144), + 36: uint16(33153), + 37: uint16(33155), + 38: uint16(33156), + 39: uint16(33157), + 40: uint16(33158), + 41: uint16(33159), + 42: uint16(33161), + 43: uint16(33163), + 44: uint16(33164), + 45: uint16(33165), + 46: uint16(33166), + 47: uint16(33168), + 48: uint16(33170), + 49: uint16(33171), + 50: uint16(33172), + 51: uint16(33173), + 52: uint16(33174), + 53: uint16(33175), + 54: uint16(33177), + 55: uint16(33178), + 56: uint16(33182), + 57: uint16(33183), + 58: uint16(33184), + 59: uint16(33185), + 60: uint16(33186), + 61: uint16(33188), + 62: uint16(33189), + 63: uint16(33191), + 64: uint16(33193), + 65: uint16(33195), + 66: uint16(33196), + 67: uint16(33197), + 68: uint16(33198), + 69: uint16(33199), + 70: uint16(33200), + 71: uint16(33201), + 72: uint16(33202), + 73: uint16(33204), + 74: uint16(33205), + 75: uint16(33206), + 76: uint16(33207), + 77: uint16(33208), + 78: uint16(33209), + 79: uint16(33212), + 80: uint16(33213), + 81: uint16(33214), + 82: uint16(33215), + 83: uint16(33220), + 84: uint16(33221), + 85: uint16(33223), + 86: uint16(33224), + 87: uint16(33225), + 88: uint16(33227), + 89: uint16(33229), + 90: uint16(33230), + 91: uint16(33231), + 92: uint16(33232), + 93: uint16(33233), + 94: uint16(33234), + 95: uint16(33235), + 96: uint16(25721), + 97: uint16(34321), + 98: uint16(27169), + 99: uint16(33180), + 100: uint16(30952), + 101: uint16(25705), + 102: uint16(39764), + 103: uint16(25273), + 104: uint16(26411), + 105: uint16(33707), + 106: uint16(22696), + 107: uint16(40664), + 108: uint16(27819), + 109: uint16(28448), + 110: uint16(23518), + 111: uint16(38476), + 112: uint16(35851), + 113: uint16(29279), + 114: uint16(26576), + 115: uint16(25287), + 116: uint16(29281), + 117: uint16(20137), + 118: uint16(22982), + 119: uint16(27597), + 120: uint16(22675), + 121: uint16(26286), + 122: uint16(24149), + 123: uint16(21215), + 124: uint16(24917), + 125: uint16(26408), + 126: uint16(30446), + 127: uint16(30566), + 128: uint16(29287), + 129: uint16(31302), + 130: uint16(25343), + 131: uint16(21738), + 132: uint16(21584), + 133: uint16(38048), + 134: uint16(37027), + 135: uint16(23068), + 136: uint16(32435), + 137: uint16(27670), + 138: uint16(20035), + 139: uint16(22902), + 140: uint16(32784), + 141: uint16(22856), + 142: uint16(21335), + 143: uint16(30007), + 144: uint16(38590), + 145: uint16(22218), + 146: uint16(25376), + 147: uint16(33041), + 148: uint16(24700), + 149: uint16(38393), + 150: uint16(28118), + 151: uint16(21602), + 152: uint16(39297), + 153: uint16(20869), + 154: uint16(23273), + 155: uint16(33021), + 156: uint16(22958), + 157: uint16(38675), + 158: uint16(20522), + 159: uint16(27877), + 160: uint16(23612), + 161: uint16(25311), + 162: uint16(20320), + 163: uint16(21311), + 164: uint16(33147), + 165: uint16(36870), + 166: uint16(28346), + 167: uint16(34091), + 168: uint16(25288), + 169: uint16(24180), + 170: uint16(30910), + 171: uint16(25781), + 172: uint16(25467), + 173: uint16(24565), + 174: uint16(23064), + 175: uint16(37247), + 176: uint16(40479), + 177: uint16(23615), + 178: uint16(25423), + 179: uint16(32834), + 180: uint16(23421), + 181: uint16(21870), + 182: uint16(38218), + 183: uint16(38221), + 184: uint16(28037), + 185: uint16(24744), + 186: uint16(26592), + 187: uint16(29406), + 188: uint16(20957), + 189: uint16(23425), + }, + 68: { + 0: uint16(33236), + 1: uint16(33237), + 2: uint16(33238), + 3: uint16(33239), + 4: uint16(33240), + 5: uint16(33241), + 6: uint16(33242), + 7: uint16(33243), + 8: uint16(33244), + 9: uint16(33245), + 10: uint16(33246), + 11: uint16(33247), + 12: uint16(33248), + 13: uint16(33249), + 14: uint16(33250), + 15: uint16(33252), + 16: uint16(33253), + 17: uint16(33254), + 18: uint16(33256), + 19: uint16(33257), + 20: uint16(33259), + 21: uint16(33262), + 22: uint16(33263), + 23: uint16(33264), + 24: uint16(33265), + 25: uint16(33266), + 26: uint16(33269), + 27: uint16(33270), + 28: uint16(33271), + 29: uint16(33272), + 30: uint16(33273), + 31: uint16(33274), + 32: uint16(33277), + 33: uint16(33279), + 34: uint16(33283), + 35: uint16(33287), + 36: uint16(33288), + 37: uint16(33289), + 38: uint16(33290), + 39: uint16(33291), + 40: uint16(33294), + 41: uint16(33295), + 42: uint16(33297), + 43: uint16(33299), + 44: uint16(33301), + 45: uint16(33302), + 46: uint16(33303), + 47: uint16(33304), + 48: uint16(33305), + 49: uint16(33306), + 50: uint16(33309), + 51: uint16(33312), + 52: uint16(33316), + 53: uint16(33317), + 54: uint16(33318), + 55: uint16(33319), + 56: uint16(33321), + 57: uint16(33326), + 58: uint16(33330), + 59: uint16(33338), + 60: uint16(33340), + 61: uint16(33341), + 62: uint16(33343), + 63: uint16(33344), + 64: uint16(33345), + 65: uint16(33346), + 66: uint16(33347), + 67: uint16(33349), + 68: uint16(33350), + 69: uint16(33352), + 70: uint16(33354), + 71: uint16(33356), + 72: uint16(33357), + 73: uint16(33358), + 74: uint16(33360), + 75: uint16(33361), + 76: uint16(33362), + 77: uint16(33363), + 78: uint16(33364), + 79: uint16(33365), + 80: uint16(33366), + 81: uint16(33367), + 82: uint16(33369), + 83: uint16(33371), + 84: uint16(33372), + 85: uint16(33373), + 86: uint16(33374), + 87: uint16(33376), + 88: uint16(33377), + 89: uint16(33378), + 90: uint16(33379), + 91: uint16(33380), + 92: uint16(33381), + 93: uint16(33382), + 94: uint16(33383), + 95: uint16(33385), + 96: uint16(25319), + 97: uint16(27870), + 98: uint16(29275), + 99: uint16(25197), + 100: uint16(38062), + 101: uint16(32445), + 102: uint16(33043), + 103: uint16(27987), + 104: uint16(20892), + 105: uint16(24324), + 106: uint16(22900), + 107: uint16(21162), + 108: uint16(24594), + 109: uint16(22899), + 110: uint16(26262), + 111: uint16(34384), + 112: uint16(30111), + 113: uint16(25386), + 114: uint16(25062), + 115: uint16(31983), + 116: uint16(35834), + 117: uint16(21734), + 118: uint16(27431), + 119: uint16(40485), + 120: uint16(27572), + 121: uint16(34261), + 122: uint16(21589), + 123: uint16(20598), + 124: uint16(27812), + 125: uint16(21866), + 126: uint16(36276), + 127: uint16(29228), + 128: uint16(24085), + 129: uint16(24597), + 130: uint16(29750), + 131: uint16(25293), + 132: uint16(25490), + 133: uint16(29260), + 134: uint16(24472), + 135: uint16(28227), + 136: uint16(27966), + 137: uint16(25856), + 138: uint16(28504), + 139: uint16(30424), + 140: uint16(30928), + 141: uint16(30460), + 142: uint16(30036), + 143: uint16(21028), + 144: uint16(21467), + 145: uint16(20051), + 146: uint16(24222), + 147: uint16(26049), + 148: uint16(32810), + 149: uint16(32982), + 150: uint16(25243), + 151: uint16(21638), + 152: uint16(21032), + 153: uint16(28846), + 154: uint16(34957), + 155: uint16(36305), + 156: uint16(27873), + 157: uint16(21624), + 158: uint16(32986), + 159: uint16(22521), + 160: uint16(35060), + 161: uint16(36180), + 162: uint16(38506), + 163: uint16(37197), + 164: uint16(20329), + 165: uint16(27803), + 166: uint16(21943), + 167: uint16(30406), + 168: uint16(30768), + 169: uint16(25256), + 170: uint16(28921), + 171: uint16(28558), + 172: uint16(24429), + 173: uint16(34028), + 174: uint16(26842), + 175: uint16(30844), + 176: uint16(31735), + 177: uint16(33192), + 178: uint16(26379), + 179: uint16(40527), + 180: uint16(25447), + 181: uint16(30896), + 182: uint16(22383), + 183: uint16(30738), + 184: uint16(38713), + 185: uint16(25209), + 186: uint16(25259), + 187: uint16(21128), + 188: uint16(29749), + 189: uint16(27607), + }, + 69: { + 0: uint16(33386), + 1: uint16(33387), + 2: uint16(33388), + 3: uint16(33389), + 4: uint16(33393), + 5: uint16(33397), + 6: uint16(33398), + 7: uint16(33399), + 8: uint16(33400), + 9: uint16(33403), + 10: uint16(33404), + 11: uint16(33408), + 12: uint16(33409), + 13: uint16(33411), + 14: uint16(33413), + 15: uint16(33414), + 16: uint16(33415), + 17: uint16(33417), + 18: uint16(33420), + 19: uint16(33424), + 20: uint16(33427), + 21: uint16(33428), + 22: uint16(33429), + 23: uint16(33430), + 24: uint16(33434), + 25: uint16(33435), + 26: uint16(33438), + 27: uint16(33440), + 28: uint16(33442), + 29: uint16(33443), + 30: uint16(33447), + 31: uint16(33458), + 32: uint16(33461), + 33: uint16(33462), + 34: uint16(33466), + 35: uint16(33467), + 36: uint16(33468), + 37: uint16(33471), + 38: uint16(33472), + 39: uint16(33474), + 40: uint16(33475), + 41: uint16(33477), + 42: uint16(33478), + 43: uint16(33481), + 44: uint16(33488), + 45: uint16(33494), + 46: uint16(33497), + 47: uint16(33498), + 48: uint16(33501), + 49: uint16(33506), + 50: uint16(33511), + 51: uint16(33512), + 52: uint16(33513), + 53: uint16(33514), + 54: uint16(33516), + 55: uint16(33517), + 56: uint16(33518), + 57: uint16(33520), + 58: uint16(33522), + 59: uint16(33523), + 60: uint16(33525), + 61: uint16(33526), + 62: uint16(33528), + 63: uint16(33530), + 64: uint16(33532), + 65: uint16(33533), + 66: uint16(33534), + 67: uint16(33535), + 68: uint16(33536), + 69: uint16(33546), + 70: uint16(33547), + 71: uint16(33549), + 72: uint16(33552), + 73: uint16(33554), + 74: uint16(33555), + 75: uint16(33558), + 76: uint16(33560), + 77: uint16(33561), + 78: uint16(33565), + 79: uint16(33566), + 80: uint16(33567), + 81: uint16(33568), + 82: uint16(33569), + 83: uint16(33570), + 84: uint16(33571), + 85: uint16(33572), + 86: uint16(33573), + 87: uint16(33574), + 88: uint16(33577), + 89: uint16(33578), + 90: uint16(33582), + 91: uint16(33584), + 92: uint16(33586), + 93: uint16(33591), + 94: uint16(33595), + 95: uint16(33597), + 96: uint16(21860), + 97: uint16(33086), + 98: uint16(30130), + 99: uint16(30382), + 100: uint16(21305), + 101: uint16(30174), + 102: uint16(20731), + 103: uint16(23617), + 104: uint16(35692), + 105: uint16(31687), + 106: uint16(20559), + 107: uint16(29255), + 108: uint16(39575), + 109: uint16(39128), + 110: uint16(28418), + 111: uint16(29922), + 112: uint16(31080), + 113: uint16(25735), + 114: uint16(30629), + 115: uint16(25340), + 116: uint16(39057), + 117: uint16(36139), + 118: uint16(21697), + 119: uint16(32856), + 120: uint16(20050), + 121: uint16(22378), + 122: uint16(33529), + 123: uint16(33805), + 124: uint16(24179), + 125: uint16(20973), + 126: uint16(29942), + 127: uint16(35780), + 128: uint16(23631), + 129: uint16(22369), + 130: uint16(27900), + 131: uint16(39047), + 132: uint16(23110), + 133: uint16(30772), + 134: uint16(39748), + 135: uint16(36843), + 136: uint16(31893), + 137: uint16(21078), + 138: uint16(25169), + 139: uint16(38138), + 140: uint16(20166), + 141: uint16(33670), + 142: uint16(33889), + 143: uint16(33769), + 144: uint16(33970), + 145: uint16(22484), + 146: uint16(26420), + 147: uint16(22275), + 148: uint16(26222), + 149: uint16(28006), + 150: uint16(35889), + 151: uint16(26333), + 152: uint16(28689), + 153: uint16(26399), + 154: uint16(27450), + 155: uint16(26646), + 156: uint16(25114), + 157: uint16(22971), + 158: uint16(19971), + 159: uint16(20932), + 160: uint16(28422), + 161: uint16(26578), + 162: uint16(27791), + 163: uint16(20854), + 164: uint16(26827), + 165: uint16(22855), + 166: uint16(27495), + 167: uint16(30054), + 168: uint16(23822), + 169: uint16(33040), + 170: uint16(40784), + 171: uint16(26071), + 172: uint16(31048), + 173: uint16(31041), + 174: uint16(39569), + 175: uint16(36215), + 176: uint16(23682), + 177: uint16(20062), + 178: uint16(20225), + 179: uint16(21551), + 180: uint16(22865), + 181: uint16(30732), + 182: uint16(22120), + 183: uint16(27668), + 184: uint16(36804), + 185: uint16(24323), + 186: uint16(27773), + 187: uint16(27875), + 188: uint16(35755), + 189: uint16(25488), + }, + 70: { + 0: uint16(33598), + 1: uint16(33599), + 2: uint16(33601), + 3: uint16(33602), + 4: uint16(33604), + 5: uint16(33605), + 6: uint16(33608), + 7: uint16(33610), + 8: uint16(33611), + 9: uint16(33612), + 10: uint16(33613), + 11: uint16(33614), + 12: uint16(33619), + 13: uint16(33621), + 14: uint16(33622), + 15: uint16(33623), + 16: uint16(33624), + 17: uint16(33625), + 18: uint16(33629), + 19: uint16(33634), + 20: uint16(33648), + 21: uint16(33649), + 22: uint16(33650), + 23: uint16(33651), + 24: uint16(33652), + 25: uint16(33653), + 26: uint16(33654), + 27: uint16(33657), + 28: uint16(33658), + 29: uint16(33662), + 30: uint16(33663), + 31: uint16(33664), + 32: uint16(33665), + 33: uint16(33666), + 34: uint16(33667), + 35: uint16(33668), + 36: uint16(33671), + 37: uint16(33672), + 38: uint16(33674), + 39: uint16(33675), + 40: uint16(33676), + 41: uint16(33677), + 42: uint16(33679), + 43: uint16(33680), + 44: uint16(33681), + 45: uint16(33684), + 46: uint16(33685), + 47: uint16(33686), + 48: uint16(33687), + 49: uint16(33689), + 50: uint16(33690), + 51: uint16(33693), + 52: uint16(33695), + 53: uint16(33697), + 54: uint16(33698), + 55: uint16(33699), + 56: uint16(33700), + 57: uint16(33701), + 58: uint16(33702), + 59: uint16(33703), + 60: uint16(33708), + 61: uint16(33709), + 62: uint16(33710), + 63: uint16(33711), + 64: uint16(33717), + 65: uint16(33723), + 66: uint16(33726), + 67: uint16(33727), + 68: uint16(33730), + 69: uint16(33731), + 70: uint16(33732), + 71: uint16(33734), + 72: uint16(33736), + 73: uint16(33737), + 74: uint16(33739), + 75: uint16(33741), + 76: uint16(33742), + 77: uint16(33744), + 78: uint16(33745), + 79: uint16(33746), + 80: uint16(33747), + 81: uint16(33749), + 82: uint16(33751), + 83: uint16(33753), + 84: uint16(33754), + 85: uint16(33755), + 86: uint16(33758), + 87: uint16(33762), + 88: uint16(33763), + 89: uint16(33764), + 90: uint16(33766), + 91: uint16(33767), + 92: uint16(33768), + 93: uint16(33771), + 94: uint16(33772), + 95: uint16(33773), + 96: uint16(24688), + 97: uint16(27965), + 98: uint16(29301), + 99: uint16(25190), + 100: uint16(38030), + 101: uint16(38085), + 102: uint16(21315), + 103: uint16(36801), + 104: uint16(31614), + 105: uint16(20191), + 106: uint16(35878), + 107: uint16(20094), + 108: uint16(40660), + 109: uint16(38065), + 110: uint16(38067), + 111: uint16(21069), + 112: uint16(28508), + 113: uint16(36963), + 114: uint16(27973), + 115: uint16(35892), + 116: uint16(22545), + 117: uint16(23884), + 118: uint16(27424), + 119: uint16(27465), + 120: uint16(26538), + 121: uint16(21595), + 122: uint16(33108), + 123: uint16(32652), + 124: uint16(22681), + 125: uint16(34103), + 126: uint16(24378), + 127: uint16(25250), + 128: uint16(27207), + 129: uint16(38201), + 130: uint16(25970), + 131: uint16(24708), + 132: uint16(26725), + 133: uint16(30631), + 134: uint16(20052), + 135: uint16(20392), + 136: uint16(24039), + 137: uint16(38808), + 138: uint16(25772), + 139: uint16(32728), + 140: uint16(23789), + 141: uint16(20431), + 142: uint16(31373), + 143: uint16(20999), + 144: uint16(33540), + 145: uint16(19988), + 146: uint16(24623), + 147: uint16(31363), + 148: uint16(38054), + 149: uint16(20405), + 150: uint16(20146), + 151: uint16(31206), + 152: uint16(29748), + 153: uint16(21220), + 154: uint16(33465), + 155: uint16(25810), + 156: uint16(31165), + 157: uint16(23517), + 158: uint16(27777), + 159: uint16(38738), + 160: uint16(36731), + 161: uint16(27682), + 162: uint16(20542), + 163: uint16(21375), + 164: uint16(28165), + 165: uint16(25806), + 166: uint16(26228), + 167: uint16(27696), + 168: uint16(24773), + 169: uint16(39031), + 170: uint16(35831), + 171: uint16(24198), + 172: uint16(29756), + 173: uint16(31351), + 174: uint16(31179), + 175: uint16(19992), + 176: uint16(37041), + 177: uint16(29699), + 178: uint16(27714), + 179: uint16(22234), + 180: uint16(37195), + 181: uint16(27845), + 182: uint16(36235), + 183: uint16(21306), + 184: uint16(34502), + 185: uint16(26354), + 186: uint16(36527), + 187: uint16(23624), + 188: uint16(39537), + 189: uint16(28192), + }, + 71: { + 0: uint16(33774), + 1: uint16(33775), + 2: uint16(33779), + 3: uint16(33780), + 4: uint16(33781), + 5: uint16(33782), + 6: uint16(33783), + 7: uint16(33786), + 8: uint16(33787), + 9: uint16(33788), + 10: uint16(33790), + 11: uint16(33791), + 12: uint16(33792), + 13: uint16(33794), + 14: uint16(33797), + 15: uint16(33799), + 16: uint16(33800), + 17: uint16(33801), + 18: uint16(33802), + 19: uint16(33808), + 20: uint16(33810), + 21: uint16(33811), + 22: uint16(33812), + 23: uint16(33813), + 24: uint16(33814), + 25: uint16(33815), + 26: uint16(33817), + 27: uint16(33818), + 28: uint16(33819), + 29: uint16(33822), + 30: uint16(33823), + 31: uint16(33824), + 32: uint16(33825), + 33: uint16(33826), + 34: uint16(33827), + 35: uint16(33833), + 36: uint16(33834), + 37: uint16(33835), + 38: uint16(33836), + 39: uint16(33837), + 40: uint16(33838), + 41: uint16(33839), + 42: uint16(33840), + 43: uint16(33842), + 44: uint16(33843), + 45: uint16(33844), + 46: uint16(33845), + 47: uint16(33846), + 48: uint16(33847), + 49: uint16(33849), + 50: uint16(33850), + 51: uint16(33851), + 52: uint16(33854), + 53: uint16(33855), + 54: uint16(33856), + 55: uint16(33857), + 56: uint16(33858), + 57: uint16(33859), + 58: uint16(33860), + 59: uint16(33861), + 60: uint16(33863), + 61: uint16(33864), + 62: uint16(33865), + 63: uint16(33866), + 64: uint16(33867), + 65: uint16(33868), + 66: uint16(33869), + 67: uint16(33870), + 68: uint16(33871), + 69: uint16(33872), + 70: uint16(33874), + 71: uint16(33875), + 72: uint16(33876), + 73: uint16(33877), + 74: uint16(33878), + 75: uint16(33880), + 76: uint16(33885), + 77: uint16(33886), + 78: uint16(33887), + 79: uint16(33888), + 80: uint16(33890), + 81: uint16(33892), + 82: uint16(33893), + 83: uint16(33894), + 84: uint16(33895), + 85: uint16(33896), + 86: uint16(33898), + 87: uint16(33902), + 88: uint16(33903), + 89: uint16(33904), + 90: uint16(33906), + 91: uint16(33908), + 92: uint16(33911), + 93: uint16(33913), + 94: uint16(33915), + 95: uint16(33916), + 96: uint16(21462), + 97: uint16(23094), + 98: uint16(40843), + 99: uint16(36259), + 100: uint16(21435), + 101: uint16(22280), + 102: uint16(39079), + 103: uint16(26435), + 104: uint16(37275), + 105: uint16(27849), + 106: uint16(20840), + 107: uint16(30154), + 108: uint16(25331), + 109: uint16(29356), + 110: uint16(21048), + 111: uint16(21149), + 112: uint16(32570), + 113: uint16(28820), + 114: uint16(30264), + 115: uint16(21364), + 116: uint16(40522), + 117: uint16(27063), + 118: uint16(30830), + 119: uint16(38592), + 120: uint16(35033), + 121: uint16(32676), + 122: uint16(28982), + 123: uint16(29123), + 124: uint16(20873), + 125: uint16(26579), + 126: uint16(29924), + 127: uint16(22756), + 128: uint16(25880), + 129: uint16(22199), + 130: uint16(35753), + 131: uint16(39286), + 132: uint16(25200), + 133: uint16(32469), + 134: uint16(24825), + 135: uint16(28909), + 136: uint16(22764), + 137: uint16(20161), + 138: uint16(20154), + 139: uint16(24525), + 140: uint16(38887), + 141: uint16(20219), + 142: uint16(35748), + 143: uint16(20995), + 144: uint16(22922), + 145: uint16(32427), + 146: uint16(25172), + 147: uint16(20173), + 148: uint16(26085), + 149: uint16(25102), + 150: uint16(33592), + 151: uint16(33993), + 152: uint16(33635), + 153: uint16(34701), + 154: uint16(29076), + 155: uint16(28342), + 156: uint16(23481), + 157: uint16(32466), + 158: uint16(20887), + 159: uint16(25545), + 160: uint16(26580), + 161: uint16(32905), + 162: uint16(33593), + 163: uint16(34837), + 164: uint16(20754), + 165: uint16(23418), + 166: uint16(22914), + 167: uint16(36785), + 168: uint16(20083), + 169: uint16(27741), + 170: uint16(20837), + 171: uint16(35109), + 172: uint16(36719), + 173: uint16(38446), + 174: uint16(34122), + 175: uint16(29790), + 176: uint16(38160), + 177: uint16(38384), + 178: uint16(28070), + 179: uint16(33509), + 180: uint16(24369), + 181: uint16(25746), + 182: uint16(27922), + 183: uint16(33832), + 184: uint16(33134), + 185: uint16(40131), + 186: uint16(22622), + 187: uint16(36187), + 188: uint16(19977), + 189: uint16(21441), + }, + 72: { + 0: uint16(33917), + 1: uint16(33918), + 2: uint16(33919), + 3: uint16(33920), + 4: uint16(33921), + 5: uint16(33923), + 6: uint16(33924), + 7: uint16(33925), + 8: uint16(33926), + 9: uint16(33930), + 10: uint16(33933), + 11: uint16(33935), + 12: uint16(33936), + 13: uint16(33937), + 14: uint16(33938), + 15: uint16(33939), + 16: uint16(33940), + 17: uint16(33941), + 18: uint16(33942), + 19: uint16(33944), + 20: uint16(33946), + 21: uint16(33947), + 22: uint16(33949), + 23: uint16(33950), + 24: uint16(33951), + 25: uint16(33952), + 26: uint16(33954), + 27: uint16(33955), + 28: uint16(33956), + 29: uint16(33957), + 30: uint16(33958), + 31: uint16(33959), + 32: uint16(33960), + 33: uint16(33961), + 34: uint16(33962), + 35: uint16(33963), + 36: uint16(33964), + 37: uint16(33965), + 38: uint16(33966), + 39: uint16(33968), + 40: uint16(33969), + 41: uint16(33971), + 42: uint16(33973), + 43: uint16(33974), + 44: uint16(33975), + 45: uint16(33979), + 46: uint16(33980), + 47: uint16(33982), + 48: uint16(33984), + 49: uint16(33986), + 50: uint16(33987), + 51: uint16(33989), + 52: uint16(33990), + 53: uint16(33991), + 54: uint16(33992), + 55: uint16(33995), + 56: uint16(33996), + 57: uint16(33998), + 58: uint16(33999), + 59: uint16(34002), + 60: uint16(34004), + 61: uint16(34005), + 62: uint16(34007), + 63: uint16(34008), + 64: uint16(34009), + 65: uint16(34010), + 66: uint16(34011), + 67: uint16(34012), + 68: uint16(34014), + 69: uint16(34017), + 70: uint16(34018), + 71: uint16(34020), + 72: uint16(34023), + 73: uint16(34024), + 74: uint16(34025), + 75: uint16(34026), + 76: uint16(34027), + 77: uint16(34029), + 78: uint16(34030), + 79: uint16(34031), + 80: uint16(34033), + 81: uint16(34034), + 82: uint16(34035), + 83: uint16(34036), + 84: uint16(34037), + 85: uint16(34038), + 86: uint16(34039), + 87: uint16(34040), + 88: uint16(34041), + 89: uint16(34042), + 90: uint16(34043), + 91: uint16(34045), + 92: uint16(34046), + 93: uint16(34048), + 94: uint16(34049), + 95: uint16(34050), + 96: uint16(20254), + 97: uint16(25955), + 98: uint16(26705), + 99: uint16(21971), + 100: uint16(20007), + 101: uint16(25620), + 102: uint16(39578), + 103: uint16(25195), + 104: uint16(23234), + 105: uint16(29791), + 106: uint16(33394), + 107: uint16(28073), + 108: uint16(26862), + 109: uint16(20711), + 110: uint16(33678), + 111: uint16(30722), + 112: uint16(26432), + 113: uint16(21049), + 114: uint16(27801), + 115: uint16(32433), + 116: uint16(20667), + 117: uint16(21861), + 118: uint16(29022), + 119: uint16(31579), + 120: uint16(26194), + 121: uint16(29642), + 122: uint16(33515), + 123: uint16(26441), + 124: uint16(23665), + 125: uint16(21024), + 126: uint16(29053), + 127: uint16(34923), + 128: uint16(38378), + 129: uint16(38485), + 130: uint16(25797), + 131: uint16(36193), + 132: uint16(33203), + 133: uint16(21892), + 134: uint16(27733), + 135: uint16(25159), + 136: uint16(32558), + 137: uint16(22674), + 138: uint16(20260), + 139: uint16(21830), + 140: uint16(36175), + 141: uint16(26188), + 142: uint16(19978), + 143: uint16(23578), + 144: uint16(35059), + 145: uint16(26786), + 146: uint16(25422), + 147: uint16(31245), + 148: uint16(28903), + 149: uint16(33421), + 150: uint16(21242), + 151: uint16(38902), + 152: uint16(23569), + 153: uint16(21736), + 154: uint16(37045), + 155: uint16(32461), + 156: uint16(22882), + 157: uint16(36170), + 158: uint16(34503), + 159: uint16(33292), + 160: uint16(33293), + 161: uint16(36198), + 162: uint16(25668), + 163: uint16(23556), + 164: uint16(24913), + 165: uint16(28041), + 166: uint16(31038), + 167: uint16(35774), + 168: uint16(30775), + 169: uint16(30003), + 170: uint16(21627), + 171: uint16(20280), + 172: uint16(36523), + 173: uint16(28145), + 174: uint16(23072), + 175: uint16(32453), + 176: uint16(31070), + 177: uint16(27784), + 178: uint16(23457), + 179: uint16(23158), + 180: uint16(29978), + 181: uint16(32958), + 182: uint16(24910), + 183: uint16(28183), + 184: uint16(22768), + 185: uint16(29983), + 186: uint16(29989), + 187: uint16(29298), + 188: uint16(21319), + 189: uint16(32499), + }, + 73: { + 0: uint16(34051), + 1: uint16(34052), + 2: uint16(34053), + 3: uint16(34054), + 4: uint16(34055), + 5: uint16(34056), + 6: uint16(34057), + 7: uint16(34058), + 8: uint16(34059), + 9: uint16(34061), + 10: uint16(34062), + 11: uint16(34063), + 12: uint16(34064), + 13: uint16(34066), + 14: uint16(34068), + 15: uint16(34069), + 16: uint16(34070), + 17: uint16(34072), + 18: uint16(34073), + 19: uint16(34075), + 20: uint16(34076), + 21: uint16(34077), + 22: uint16(34078), + 23: uint16(34080), + 24: uint16(34082), + 25: uint16(34083), + 26: uint16(34084), + 27: uint16(34085), + 28: uint16(34086), + 29: uint16(34087), + 30: uint16(34088), + 31: uint16(34089), + 32: uint16(34090), + 33: uint16(34093), + 34: uint16(34094), + 35: uint16(34095), + 36: uint16(34096), + 37: uint16(34097), + 38: uint16(34098), + 39: uint16(34099), + 40: uint16(34100), + 41: uint16(34101), + 42: uint16(34102), + 43: uint16(34110), + 44: uint16(34111), + 45: uint16(34112), + 46: uint16(34113), + 47: uint16(34114), + 48: uint16(34116), + 49: uint16(34117), + 50: uint16(34118), + 51: uint16(34119), + 52: uint16(34123), + 53: uint16(34124), + 54: uint16(34125), + 55: uint16(34126), + 56: uint16(34127), + 57: uint16(34128), + 58: uint16(34129), + 59: uint16(34130), + 60: uint16(34131), + 61: uint16(34132), + 62: uint16(34133), + 63: uint16(34135), + 64: uint16(34136), + 65: uint16(34138), + 66: uint16(34139), + 67: uint16(34140), + 68: uint16(34141), + 69: uint16(34143), + 70: uint16(34144), + 71: uint16(34145), + 72: uint16(34146), + 73: uint16(34147), + 74: uint16(34149), + 75: uint16(34150), + 76: uint16(34151), + 77: uint16(34153), + 78: uint16(34154), + 79: uint16(34155), + 80: uint16(34156), + 81: uint16(34157), + 82: uint16(34158), + 83: uint16(34159), + 84: uint16(34160), + 85: uint16(34161), + 86: uint16(34163), + 87: uint16(34165), + 88: uint16(34166), + 89: uint16(34167), + 90: uint16(34168), + 91: uint16(34172), + 92: uint16(34173), + 93: uint16(34175), + 94: uint16(34176), + 95: uint16(34177), + 96: uint16(30465), + 97: uint16(30427), + 98: uint16(21097), + 99: uint16(32988), + 100: uint16(22307), + 101: uint16(24072), + 102: uint16(22833), + 103: uint16(29422), + 104: uint16(26045), + 105: uint16(28287), + 106: uint16(35799), + 107: uint16(23608), + 108: uint16(34417), + 109: uint16(21313), + 110: uint16(30707), + 111: uint16(25342), + 112: uint16(26102), + 113: uint16(20160), + 114: uint16(39135), + 115: uint16(34432), + 116: uint16(23454), + 117: uint16(35782), + 118: uint16(21490), + 119: uint16(30690), + 120: uint16(20351), + 121: uint16(23630), + 122: uint16(39542), + 123: uint16(22987), + 124: uint16(24335), + 125: uint16(31034), + 126: uint16(22763), + 127: uint16(19990), + 128: uint16(26623), + 129: uint16(20107), + 130: uint16(25325), + 131: uint16(35475), + 132: uint16(36893), + 133: uint16(21183), + 134: uint16(26159), + 135: uint16(21980), + 136: uint16(22124), + 137: uint16(36866), + 138: uint16(20181), + 139: uint16(20365), + 140: uint16(37322), + 141: uint16(39280), + 142: uint16(27663), + 143: uint16(24066), + 144: uint16(24643), + 145: uint16(23460), + 146: uint16(35270), + 147: uint16(35797), + 148: uint16(25910), + 149: uint16(25163), + 150: uint16(39318), + 151: uint16(23432), + 152: uint16(23551), + 153: uint16(25480), + 154: uint16(21806), + 155: uint16(21463), + 156: uint16(30246), + 157: uint16(20861), + 158: uint16(34092), + 159: uint16(26530), + 160: uint16(26803), + 161: uint16(27530), + 162: uint16(25234), + 163: uint16(36755), + 164: uint16(21460), + 165: uint16(33298), + 166: uint16(28113), + 167: uint16(30095), + 168: uint16(20070), + 169: uint16(36174), + 170: uint16(23408), + 171: uint16(29087), + 172: uint16(34223), + 173: uint16(26257), + 174: uint16(26329), + 175: uint16(32626), + 176: uint16(34560), + 177: uint16(40653), + 178: uint16(40736), + 179: uint16(23646), + 180: uint16(26415), + 181: uint16(36848), + 182: uint16(26641), + 183: uint16(26463), + 184: uint16(25101), + 185: uint16(31446), + 186: uint16(22661), + 187: uint16(24246), + 188: uint16(25968), + 189: uint16(28465), + }, + 74: { + 0: uint16(34178), + 1: uint16(34179), + 2: uint16(34182), + 3: uint16(34184), + 4: uint16(34185), + 5: uint16(34186), + 6: uint16(34187), + 7: uint16(34188), + 8: uint16(34189), + 9: uint16(34190), + 10: uint16(34192), + 11: uint16(34193), + 12: uint16(34194), + 13: uint16(34195), + 14: uint16(34196), + 15: uint16(34197), + 16: uint16(34198), + 17: uint16(34199), + 18: uint16(34200), + 19: uint16(34201), + 20: uint16(34202), + 21: uint16(34205), + 22: uint16(34206), + 23: uint16(34207), + 24: uint16(34208), + 25: uint16(34209), + 26: uint16(34210), + 27: uint16(34211), + 28: uint16(34213), + 29: uint16(34214), + 30: uint16(34215), + 31: uint16(34217), + 32: uint16(34219), + 33: uint16(34220), + 34: uint16(34221), + 35: uint16(34225), + 36: uint16(34226), + 37: uint16(34227), + 38: uint16(34228), + 39: uint16(34229), + 40: uint16(34230), + 41: uint16(34232), + 42: uint16(34234), + 43: uint16(34235), + 44: uint16(34236), + 45: uint16(34237), + 46: uint16(34238), + 47: uint16(34239), + 48: uint16(34240), + 49: uint16(34242), + 50: uint16(34243), + 51: uint16(34244), + 52: uint16(34245), + 53: uint16(34246), + 54: uint16(34247), + 55: uint16(34248), + 56: uint16(34250), + 57: uint16(34251), + 58: uint16(34252), + 59: uint16(34253), + 60: uint16(34254), + 61: uint16(34257), + 62: uint16(34258), + 63: uint16(34260), + 64: uint16(34262), + 65: uint16(34263), + 66: uint16(34264), + 67: uint16(34265), + 68: uint16(34266), + 69: uint16(34267), + 70: uint16(34269), + 71: uint16(34270), + 72: uint16(34271), + 73: uint16(34272), + 74: uint16(34273), + 75: uint16(34274), + 76: uint16(34275), + 77: uint16(34277), + 78: uint16(34278), + 79: uint16(34279), + 80: uint16(34280), + 81: uint16(34282), + 82: uint16(34283), + 83: uint16(34284), + 84: uint16(34285), + 85: uint16(34286), + 86: uint16(34287), + 87: uint16(34288), + 88: uint16(34289), + 89: uint16(34290), + 90: uint16(34291), + 91: uint16(34292), + 92: uint16(34293), + 93: uint16(34294), + 94: uint16(34295), + 95: uint16(34296), + 96: uint16(24661), + 97: uint16(21047), + 98: uint16(32781), + 99: uint16(25684), + 100: uint16(34928), + 101: uint16(29993), + 102: uint16(24069), + 103: uint16(26643), + 104: uint16(25332), + 105: uint16(38684), + 106: uint16(21452), + 107: uint16(29245), + 108: uint16(35841), + 109: uint16(27700), + 110: uint16(30561), + 111: uint16(31246), + 112: uint16(21550), + 113: uint16(30636), + 114: uint16(39034), + 115: uint16(33308), + 116: uint16(35828), + 117: uint16(30805), + 118: uint16(26388), + 119: uint16(28865), + 120: uint16(26031), + 121: uint16(25749), + 122: uint16(22070), + 123: uint16(24605), + 124: uint16(31169), + 125: uint16(21496), + 126: uint16(19997), + 127: uint16(27515), + 128: uint16(32902), + 129: uint16(23546), + 130: uint16(21987), + 131: uint16(22235), + 132: uint16(20282), + 133: uint16(20284), + 134: uint16(39282), + 135: uint16(24051), + 136: uint16(26494), + 137: uint16(32824), + 138: uint16(24578), + 139: uint16(39042), + 140: uint16(36865), + 141: uint16(23435), + 142: uint16(35772), + 143: uint16(35829), + 144: uint16(25628), + 145: uint16(33368), + 146: uint16(25822), + 147: uint16(22013), + 148: uint16(33487), + 149: uint16(37221), + 150: uint16(20439), + 151: uint16(32032), + 152: uint16(36895), + 153: uint16(31903), + 154: uint16(20723), + 155: uint16(22609), + 156: uint16(28335), + 157: uint16(23487), + 158: uint16(35785), + 159: uint16(32899), + 160: uint16(37240), + 161: uint16(33948), + 162: uint16(31639), + 163: uint16(34429), + 164: uint16(38539), + 165: uint16(38543), + 166: uint16(32485), + 167: uint16(39635), + 168: uint16(30862), + 169: uint16(23681), + 170: uint16(31319), + 171: uint16(36930), + 172: uint16(38567), + 173: uint16(31071), + 174: uint16(23385), + 175: uint16(25439), + 176: uint16(31499), + 177: uint16(34001), + 178: uint16(26797), + 179: uint16(21766), + 180: uint16(32553), + 181: uint16(29712), + 182: uint16(32034), + 183: uint16(38145), + 184: uint16(25152), + 185: uint16(22604), + 186: uint16(20182), + 187: uint16(23427), + 188: uint16(22905), + 189: uint16(22612), + }, + 75: { + 0: uint16(34297), + 1: uint16(34298), + 2: uint16(34300), + 3: uint16(34301), + 4: uint16(34302), + 5: uint16(34304), + 6: uint16(34305), + 7: uint16(34306), + 8: uint16(34307), + 9: uint16(34308), + 10: uint16(34310), + 11: uint16(34311), + 12: uint16(34312), + 13: uint16(34313), + 14: uint16(34314), + 15: uint16(34315), + 16: uint16(34316), + 17: uint16(34317), + 18: uint16(34318), + 19: uint16(34319), + 20: uint16(34320), + 21: uint16(34322), + 22: uint16(34323), + 23: uint16(34324), + 24: uint16(34325), + 25: uint16(34327), + 26: uint16(34328), + 27: uint16(34329), + 28: uint16(34330), + 29: uint16(34331), + 30: uint16(34332), + 31: uint16(34333), + 32: uint16(34334), + 33: uint16(34335), + 34: uint16(34336), + 35: uint16(34337), + 36: uint16(34338), + 37: uint16(34339), + 38: uint16(34340), + 39: uint16(34341), + 40: uint16(34342), + 41: uint16(34344), + 42: uint16(34346), + 43: uint16(34347), + 44: uint16(34348), + 45: uint16(34349), + 46: uint16(34350), + 47: uint16(34351), + 48: uint16(34352), + 49: uint16(34353), + 50: uint16(34354), + 51: uint16(34355), + 52: uint16(34356), + 53: uint16(34357), + 54: uint16(34358), + 55: uint16(34359), + 56: uint16(34361), + 57: uint16(34362), + 58: uint16(34363), + 59: uint16(34365), + 60: uint16(34366), + 61: uint16(34367), + 62: uint16(34368), + 63: uint16(34369), + 64: uint16(34370), + 65: uint16(34371), + 66: uint16(34372), + 67: uint16(34373), + 68: uint16(34374), + 69: uint16(34375), + 70: uint16(34376), + 71: uint16(34377), + 72: uint16(34378), + 73: uint16(34379), + 74: uint16(34380), + 75: uint16(34386), + 76: uint16(34387), + 77: uint16(34389), + 78: uint16(34390), + 79: uint16(34391), + 80: uint16(34392), + 81: uint16(34393), + 82: uint16(34395), + 83: uint16(34396), + 84: uint16(34397), + 85: uint16(34399), + 86: uint16(34400), + 87: uint16(34401), + 88: uint16(34403), + 89: uint16(34404), + 90: uint16(34405), + 91: uint16(34406), + 92: uint16(34407), + 93: uint16(34408), + 94: uint16(34409), + 95: uint16(34410), + 96: uint16(29549), + 97: uint16(25374), + 98: uint16(36427), + 99: uint16(36367), + 100: uint16(32974), + 101: uint16(33492), + 102: uint16(25260), + 103: uint16(21488), + 104: uint16(27888), + 105: uint16(37214), + 106: uint16(22826), + 107: uint16(24577), + 108: uint16(27760), + 109: uint16(22349), + 110: uint16(25674), + 111: uint16(36138), + 112: uint16(30251), + 113: uint16(28393), + 114: uint16(22363), + 115: uint16(27264), + 116: uint16(30192), + 117: uint16(28525), + 118: uint16(35885), + 119: uint16(35848), + 120: uint16(22374), + 121: uint16(27631), + 122: uint16(34962), + 123: uint16(30899), + 124: uint16(25506), + 125: uint16(21497), + 126: uint16(28845), + 127: uint16(27748), + 128: uint16(22616), + 129: uint16(25642), + 130: uint16(22530), + 131: uint16(26848), + 132: uint16(33179), + 133: uint16(21776), + 134: uint16(31958), + 135: uint16(20504), + 136: uint16(36538), + 137: uint16(28108), + 138: uint16(36255), + 139: uint16(28907), + 140: uint16(25487), + 141: uint16(28059), + 142: uint16(28372), + 143: uint16(32486), + 144: uint16(33796), + 145: uint16(26691), + 146: uint16(36867), + 147: uint16(28120), + 148: uint16(38518), + 149: uint16(35752), + 150: uint16(22871), + 151: uint16(29305), + 152: uint16(34276), + 153: uint16(33150), + 154: uint16(30140), + 155: uint16(35466), + 156: uint16(26799), + 157: uint16(21076), + 158: uint16(36386), + 159: uint16(38161), + 160: uint16(25552), + 161: uint16(39064), + 162: uint16(36420), + 163: uint16(21884), + 164: uint16(20307), + 165: uint16(26367), + 166: uint16(22159), + 167: uint16(24789), + 168: uint16(28053), + 169: uint16(21059), + 170: uint16(23625), + 171: uint16(22825), + 172: uint16(28155), + 173: uint16(22635), + 174: uint16(30000), + 175: uint16(29980), + 176: uint16(24684), + 177: uint16(33300), + 178: uint16(33094), + 179: uint16(25361), + 180: uint16(26465), + 181: uint16(36834), + 182: uint16(30522), + 183: uint16(36339), + 184: uint16(36148), + 185: uint16(38081), + 186: uint16(24086), + 187: uint16(21381), + 188: uint16(21548), + 189: uint16(28867), + }, + 76: { + 0: uint16(34413), + 1: uint16(34415), + 2: uint16(34416), + 3: uint16(34418), + 4: uint16(34419), + 5: uint16(34420), + 6: uint16(34421), + 7: uint16(34422), + 8: uint16(34423), + 9: uint16(34424), + 10: uint16(34435), + 11: uint16(34436), + 12: uint16(34437), + 13: uint16(34438), + 14: uint16(34439), + 15: uint16(34440), + 16: uint16(34441), + 17: uint16(34446), + 18: uint16(34447), + 19: uint16(34448), + 20: uint16(34449), + 21: uint16(34450), + 22: uint16(34452), + 23: uint16(34454), + 24: uint16(34455), + 25: uint16(34456), + 26: uint16(34457), + 27: uint16(34458), + 28: uint16(34459), + 29: uint16(34462), + 30: uint16(34463), + 31: uint16(34464), + 32: uint16(34465), + 33: uint16(34466), + 34: uint16(34469), + 35: uint16(34470), + 36: uint16(34475), + 37: uint16(34477), + 38: uint16(34478), + 39: uint16(34482), + 40: uint16(34483), + 41: uint16(34487), + 42: uint16(34488), + 43: uint16(34489), + 44: uint16(34491), + 45: uint16(34492), + 46: uint16(34493), + 47: uint16(34494), + 48: uint16(34495), + 49: uint16(34497), + 50: uint16(34498), + 51: uint16(34499), + 52: uint16(34501), + 53: uint16(34504), + 54: uint16(34508), + 55: uint16(34509), + 56: uint16(34514), + 57: uint16(34515), + 58: uint16(34517), + 59: uint16(34518), + 60: uint16(34519), + 61: uint16(34522), + 62: uint16(34524), + 63: uint16(34525), + 64: uint16(34528), + 65: uint16(34529), + 66: uint16(34530), + 67: uint16(34531), + 68: uint16(34533), + 69: uint16(34534), + 70: uint16(34535), + 71: uint16(34536), + 72: uint16(34538), + 73: uint16(34539), + 74: uint16(34540), + 75: uint16(34543), + 76: uint16(34549), + 77: uint16(34550), + 78: uint16(34551), + 79: uint16(34554), + 80: uint16(34555), + 81: uint16(34556), + 82: uint16(34557), + 83: uint16(34559), + 84: uint16(34561), + 85: uint16(34564), + 86: uint16(34565), + 87: uint16(34566), + 88: uint16(34571), + 89: uint16(34572), + 90: uint16(34574), + 91: uint16(34575), + 92: uint16(34576), + 93: uint16(34577), + 94: uint16(34580), + 95: uint16(34582), + 96: uint16(27712), + 97: uint16(24311), + 98: uint16(20572), + 99: uint16(20141), + 100: uint16(24237), + 101: uint16(25402), + 102: uint16(33351), + 103: uint16(36890), + 104: uint16(26704), + 105: uint16(37230), + 106: uint16(30643), + 107: uint16(21516), + 108: uint16(38108), + 109: uint16(24420), + 110: uint16(31461), + 111: uint16(26742), + 112: uint16(25413), + 113: uint16(31570), + 114: uint16(32479), + 115: uint16(30171), + 116: uint16(20599), + 117: uint16(25237), + 118: uint16(22836), + 119: uint16(36879), + 120: uint16(20984), + 121: uint16(31171), + 122: uint16(31361), + 123: uint16(22270), + 124: uint16(24466), + 125: uint16(36884), + 126: uint16(28034), + 127: uint16(23648), + 128: uint16(22303), + 129: uint16(21520), + 130: uint16(20820), + 131: uint16(28237), + 132: uint16(22242), + 133: uint16(25512), + 134: uint16(39059), + 135: uint16(33151), + 136: uint16(34581), + 137: uint16(35114), + 138: uint16(36864), + 139: uint16(21534), + 140: uint16(23663), + 141: uint16(33216), + 142: uint16(25302), + 143: uint16(25176), + 144: uint16(33073), + 145: uint16(40501), + 146: uint16(38464), + 147: uint16(39534), + 148: uint16(39548), + 149: uint16(26925), + 150: uint16(22949), + 151: uint16(25299), + 152: uint16(21822), + 153: uint16(25366), + 154: uint16(21703), + 155: uint16(34521), + 156: uint16(27964), + 157: uint16(23043), + 158: uint16(29926), + 159: uint16(34972), + 160: uint16(27498), + 161: uint16(22806), + 162: uint16(35916), + 163: uint16(24367), + 164: uint16(28286), + 165: uint16(29609), + 166: uint16(39037), + 167: uint16(20024), + 168: uint16(28919), + 169: uint16(23436), + 170: uint16(30871), + 171: uint16(25405), + 172: uint16(26202), + 173: uint16(30358), + 174: uint16(24779), + 175: uint16(23451), + 176: uint16(23113), + 177: uint16(19975), + 178: uint16(33109), + 179: uint16(27754), + 180: uint16(29579), + 181: uint16(20129), + 182: uint16(26505), + 183: uint16(32593), + 184: uint16(24448), + 185: uint16(26106), + 186: uint16(26395), + 187: uint16(24536), + 188: uint16(22916), + 189: uint16(23041), + }, + 77: { + 0: uint16(34585), + 1: uint16(34587), + 2: uint16(34589), + 3: uint16(34591), + 4: uint16(34592), + 5: uint16(34596), + 6: uint16(34598), + 7: uint16(34599), + 8: uint16(34600), + 9: uint16(34602), + 10: uint16(34603), + 11: uint16(34604), + 12: uint16(34605), + 13: uint16(34607), + 14: uint16(34608), + 15: uint16(34610), + 16: uint16(34611), + 17: uint16(34613), + 18: uint16(34614), + 19: uint16(34616), + 20: uint16(34617), + 21: uint16(34618), + 22: uint16(34620), + 23: uint16(34621), + 24: uint16(34624), + 25: uint16(34625), + 26: uint16(34626), + 27: uint16(34627), + 28: uint16(34628), + 29: uint16(34629), + 30: uint16(34630), + 31: uint16(34634), + 32: uint16(34635), + 33: uint16(34637), + 34: uint16(34639), + 35: uint16(34640), + 36: uint16(34641), + 37: uint16(34642), + 38: uint16(34644), + 39: uint16(34645), + 40: uint16(34646), + 41: uint16(34648), + 42: uint16(34650), + 43: uint16(34651), + 44: uint16(34652), + 45: uint16(34653), + 46: uint16(34654), + 47: uint16(34655), + 48: uint16(34657), + 49: uint16(34658), + 50: uint16(34662), + 51: uint16(34663), + 52: uint16(34664), + 53: uint16(34665), + 54: uint16(34666), + 55: uint16(34667), + 56: uint16(34668), + 57: uint16(34669), + 58: uint16(34671), + 59: uint16(34673), + 60: uint16(34674), + 61: uint16(34675), + 62: uint16(34677), + 63: uint16(34679), + 64: uint16(34680), + 65: uint16(34681), + 66: uint16(34682), + 67: uint16(34687), + 68: uint16(34688), + 69: uint16(34689), + 70: uint16(34692), + 71: uint16(34694), + 72: uint16(34695), + 73: uint16(34697), + 74: uint16(34698), + 75: uint16(34700), + 76: uint16(34702), + 77: uint16(34703), + 78: uint16(34704), + 79: uint16(34705), + 80: uint16(34706), + 81: uint16(34708), + 82: uint16(34709), + 83: uint16(34710), + 84: uint16(34712), + 85: uint16(34713), + 86: uint16(34714), + 87: uint16(34715), + 88: uint16(34716), + 89: uint16(34717), + 90: uint16(34718), + 91: uint16(34720), + 92: uint16(34721), + 93: uint16(34722), + 94: uint16(34723), + 95: uint16(34724), + 96: uint16(24013), + 97: uint16(24494), + 98: uint16(21361), + 99: uint16(38886), + 100: uint16(36829), + 101: uint16(26693), + 102: uint16(22260), + 103: uint16(21807), + 104: uint16(24799), + 105: uint16(20026), + 106: uint16(28493), + 107: uint16(32500), + 108: uint16(33479), + 109: uint16(33806), + 110: uint16(22996), + 111: uint16(20255), + 112: uint16(20266), + 113: uint16(23614), + 114: uint16(32428), + 115: uint16(26410), + 116: uint16(34074), + 117: uint16(21619), + 118: uint16(30031), + 119: uint16(32963), + 120: uint16(21890), + 121: uint16(39759), + 122: uint16(20301), + 123: uint16(28205), + 124: uint16(35859), + 125: uint16(23561), + 126: uint16(24944), + 127: uint16(21355), + 128: uint16(30239), + 129: uint16(28201), + 130: uint16(34442), + 131: uint16(25991), + 132: uint16(38395), + 133: uint16(32441), + 134: uint16(21563), + 135: uint16(31283), + 136: uint16(32010), + 137: uint16(38382), + 138: uint16(21985), + 139: uint16(32705), + 140: uint16(29934), + 141: uint16(25373), + 142: uint16(34583), + 143: uint16(28065), + 144: uint16(31389), + 145: uint16(25105), + 146: uint16(26017), + 147: uint16(21351), + 148: uint16(25569), + 149: uint16(27779), + 150: uint16(24043), + 151: uint16(21596), + 152: uint16(38056), + 153: uint16(20044), + 154: uint16(27745), + 155: uint16(35820), + 156: uint16(23627), + 157: uint16(26080), + 158: uint16(33436), + 159: uint16(26791), + 160: uint16(21566), + 161: uint16(21556), + 162: uint16(27595), + 163: uint16(27494), + 164: uint16(20116), + 165: uint16(25410), + 166: uint16(21320), + 167: uint16(33310), + 168: uint16(20237), + 169: uint16(20398), + 170: uint16(22366), + 171: uint16(25098), + 172: uint16(38654), + 173: uint16(26212), + 174: uint16(29289), + 175: uint16(21247), + 176: uint16(21153), + 177: uint16(24735), + 178: uint16(35823), + 179: uint16(26132), + 180: uint16(29081), + 181: uint16(26512), + 182: uint16(35199), + 183: uint16(30802), + 184: uint16(30717), + 185: uint16(26224), + 186: uint16(22075), + 187: uint16(21560), + 188: uint16(38177), + 189: uint16(29306), + }, + 78: { + 0: uint16(34725), + 1: uint16(34726), + 2: uint16(34727), + 3: uint16(34729), + 4: uint16(34730), + 5: uint16(34734), + 6: uint16(34736), + 7: uint16(34737), + 8: uint16(34738), + 9: uint16(34740), + 10: uint16(34742), + 11: uint16(34743), + 12: uint16(34744), + 13: uint16(34745), + 14: uint16(34747), + 15: uint16(34748), + 16: uint16(34750), + 17: uint16(34751), + 18: uint16(34753), + 19: uint16(34754), + 20: uint16(34755), + 21: uint16(34756), + 22: uint16(34757), + 23: uint16(34759), + 24: uint16(34760), + 25: uint16(34761), + 26: uint16(34764), + 27: uint16(34765), + 28: uint16(34766), + 29: uint16(34767), + 30: uint16(34768), + 31: uint16(34772), + 32: uint16(34773), + 33: uint16(34774), + 34: uint16(34775), + 35: uint16(34776), + 36: uint16(34777), + 37: uint16(34778), + 38: uint16(34780), + 39: uint16(34781), + 40: uint16(34782), + 41: uint16(34783), + 42: uint16(34785), + 43: uint16(34786), + 44: uint16(34787), + 45: uint16(34788), + 46: uint16(34790), + 47: uint16(34791), + 48: uint16(34792), + 49: uint16(34793), + 50: uint16(34795), + 51: uint16(34796), + 52: uint16(34797), + 53: uint16(34799), + 54: uint16(34800), + 55: uint16(34801), + 56: uint16(34802), + 57: uint16(34803), + 58: uint16(34804), + 59: uint16(34805), + 60: uint16(34806), + 61: uint16(34807), + 62: uint16(34808), + 63: uint16(34810), + 64: uint16(34811), + 65: uint16(34812), + 66: uint16(34813), + 67: uint16(34815), + 68: uint16(34816), + 69: uint16(34817), + 70: uint16(34818), + 71: uint16(34820), + 72: uint16(34821), + 73: uint16(34822), + 74: uint16(34823), + 75: uint16(34824), + 76: uint16(34825), + 77: uint16(34827), + 78: uint16(34828), + 79: uint16(34829), + 80: uint16(34830), + 81: uint16(34831), + 82: uint16(34832), + 83: uint16(34833), + 84: uint16(34834), + 85: uint16(34836), + 86: uint16(34839), + 87: uint16(34840), + 88: uint16(34841), + 89: uint16(34842), + 90: uint16(34844), + 91: uint16(34845), + 92: uint16(34846), + 93: uint16(34847), + 94: uint16(34848), + 95: uint16(34851), + 96: uint16(31232), + 97: uint16(24687), + 98: uint16(24076), + 99: uint16(24713), + 100: uint16(33181), + 101: uint16(22805), + 102: uint16(24796), + 103: uint16(29060), + 104: uint16(28911), + 105: uint16(28330), + 106: uint16(27728), + 107: uint16(29312), + 108: uint16(27268), + 109: uint16(34989), + 110: uint16(24109), + 111: uint16(20064), + 112: uint16(23219), + 113: uint16(21916), + 114: uint16(38115), + 115: uint16(27927), + 116: uint16(31995), + 117: uint16(38553), + 118: uint16(25103), + 119: uint16(32454), + 120: uint16(30606), + 121: uint16(34430), + 122: uint16(21283), + 123: uint16(38686), + 124: uint16(36758), + 125: uint16(26247), + 126: uint16(23777), + 127: uint16(20384), + 128: uint16(29421), + 129: uint16(19979), + 130: uint16(21414), + 131: uint16(22799), + 132: uint16(21523), + 133: uint16(25472), + 134: uint16(38184), + 135: uint16(20808), + 136: uint16(20185), + 137: uint16(40092), + 138: uint16(32420), + 139: uint16(21688), + 140: uint16(36132), + 141: uint16(34900), + 142: uint16(33335), + 143: uint16(38386), + 144: uint16(28046), + 145: uint16(24358), + 146: uint16(23244), + 147: uint16(26174), + 148: uint16(38505), + 149: uint16(29616), + 150: uint16(29486), + 151: uint16(21439), + 152: uint16(33146), + 153: uint16(39301), + 154: uint16(32673), + 155: uint16(23466), + 156: uint16(38519), + 157: uint16(38480), + 158: uint16(32447), + 159: uint16(30456), + 160: uint16(21410), + 161: uint16(38262), + 162: uint16(39321), + 163: uint16(31665), + 164: uint16(35140), + 165: uint16(28248), + 166: uint16(20065), + 167: uint16(32724), + 168: uint16(31077), + 169: uint16(35814), + 170: uint16(24819), + 171: uint16(21709), + 172: uint16(20139), + 173: uint16(39033), + 174: uint16(24055), + 175: uint16(27233), + 176: uint16(20687), + 177: uint16(21521), + 178: uint16(35937), + 179: uint16(33831), + 180: uint16(30813), + 181: uint16(38660), + 182: uint16(21066), + 183: uint16(21742), + 184: uint16(22179), + 185: uint16(38144), + 186: uint16(28040), + 187: uint16(23477), + 188: uint16(28102), + 189: uint16(26195), + }, + 79: { + 0: uint16(34852), + 1: uint16(34853), + 2: uint16(34854), + 3: uint16(34855), + 4: uint16(34856), + 5: uint16(34857), + 6: uint16(34858), + 7: uint16(34859), + 8: uint16(34860), + 9: uint16(34861), + 10: uint16(34862), + 11: uint16(34863), + 12: uint16(34864), + 13: uint16(34865), + 14: uint16(34867), + 15: uint16(34868), + 16: uint16(34869), + 17: uint16(34870), + 18: uint16(34871), + 19: uint16(34872), + 20: uint16(34874), + 21: uint16(34875), + 22: uint16(34877), + 23: uint16(34878), + 24: uint16(34879), + 25: uint16(34881), + 26: uint16(34882), + 27: uint16(34883), + 28: uint16(34886), + 29: uint16(34887), + 30: uint16(34888), + 31: uint16(34889), + 32: uint16(34890), + 33: uint16(34891), + 34: uint16(34894), + 35: uint16(34895), + 36: uint16(34896), + 37: uint16(34897), + 38: uint16(34898), + 39: uint16(34899), + 40: uint16(34901), + 41: uint16(34902), + 42: uint16(34904), + 43: uint16(34906), + 44: uint16(34907), + 45: uint16(34908), + 46: uint16(34909), + 47: uint16(34910), + 48: uint16(34911), + 49: uint16(34912), + 50: uint16(34918), + 51: uint16(34919), + 52: uint16(34922), + 53: uint16(34925), + 54: uint16(34927), + 55: uint16(34929), + 56: uint16(34931), + 57: uint16(34932), + 58: uint16(34933), + 59: uint16(34934), + 60: uint16(34936), + 61: uint16(34937), + 62: uint16(34938), + 63: uint16(34939), + 64: uint16(34940), + 65: uint16(34944), + 66: uint16(34947), + 67: uint16(34950), + 68: uint16(34951), + 69: uint16(34953), + 70: uint16(34954), + 71: uint16(34956), + 72: uint16(34958), + 73: uint16(34959), + 74: uint16(34960), + 75: uint16(34961), + 76: uint16(34963), + 77: uint16(34964), + 78: uint16(34965), + 79: uint16(34967), + 80: uint16(34968), + 81: uint16(34969), + 82: uint16(34970), + 83: uint16(34971), + 84: uint16(34973), + 85: uint16(34974), + 86: uint16(34975), + 87: uint16(34976), + 88: uint16(34977), + 89: uint16(34979), + 90: uint16(34981), + 91: uint16(34982), + 92: uint16(34983), + 93: uint16(34984), + 94: uint16(34985), + 95: uint16(34986), + 96: uint16(23567), + 97: uint16(23389), + 98: uint16(26657), + 99: uint16(32918), + 100: uint16(21880), + 101: uint16(31505), + 102: uint16(25928), + 103: uint16(26964), + 104: uint16(20123), + 105: uint16(27463), + 106: uint16(34638), + 107: uint16(38795), + 108: uint16(21327), + 109: uint16(25375), + 110: uint16(25658), + 111: uint16(37034), + 112: uint16(26012), + 113: uint16(32961), + 114: uint16(35856), + 115: uint16(20889), + 116: uint16(26800), + 117: uint16(21368), + 118: uint16(34809), + 119: uint16(25032), + 120: uint16(27844), + 121: uint16(27899), + 122: uint16(35874), + 123: uint16(23633), + 124: uint16(34218), + 125: uint16(33455), + 126: uint16(38156), + 127: uint16(27427), + 128: uint16(36763), + 129: uint16(26032), + 130: uint16(24571), + 131: uint16(24515), + 132: uint16(20449), + 133: uint16(34885), + 134: uint16(26143), + 135: uint16(33125), + 136: uint16(29481), + 137: uint16(24826), + 138: uint16(20852), + 139: uint16(21009), + 140: uint16(22411), + 141: uint16(24418), + 142: uint16(37026), + 143: uint16(34892), + 144: uint16(37266), + 145: uint16(24184), + 146: uint16(26447), + 147: uint16(24615), + 148: uint16(22995), + 149: uint16(20804), + 150: uint16(20982), + 151: uint16(33016), + 152: uint16(21256), + 153: uint16(27769), + 154: uint16(38596), + 155: uint16(29066), + 156: uint16(20241), + 157: uint16(20462), + 158: uint16(32670), + 159: uint16(26429), + 160: uint16(21957), + 161: uint16(38152), + 162: uint16(31168), + 163: uint16(34966), + 164: uint16(32483), + 165: uint16(22687), + 166: uint16(25100), + 167: uint16(38656), + 168: uint16(34394), + 169: uint16(22040), + 170: uint16(39035), + 171: uint16(24464), + 172: uint16(35768), + 173: uint16(33988), + 174: uint16(37207), + 175: uint16(21465), + 176: uint16(26093), + 177: uint16(24207), + 178: uint16(30044), + 179: uint16(24676), + 180: uint16(32110), + 181: uint16(23167), + 182: uint16(32490), + 183: uint16(32493), + 184: uint16(36713), + 185: uint16(21927), + 186: uint16(23459), + 187: uint16(24748), + 188: uint16(26059), + 189: uint16(29572), + }, + 80: { + 0: uint16(34988), + 1: uint16(34990), + 2: uint16(34991), + 3: uint16(34992), + 4: uint16(34994), + 5: uint16(34995), + 6: uint16(34996), + 7: uint16(34997), + 8: uint16(34998), + 9: uint16(35000), + 10: uint16(35001), + 11: uint16(35002), + 12: uint16(35003), + 13: uint16(35005), + 14: uint16(35006), + 15: uint16(35007), + 16: uint16(35008), + 17: uint16(35011), + 18: uint16(35012), + 19: uint16(35015), + 20: uint16(35016), + 21: uint16(35018), + 22: uint16(35019), + 23: uint16(35020), + 24: uint16(35021), + 25: uint16(35023), + 26: uint16(35024), + 27: uint16(35025), + 28: uint16(35027), + 29: uint16(35030), + 30: uint16(35031), + 31: uint16(35034), + 32: uint16(35035), + 33: uint16(35036), + 34: uint16(35037), + 35: uint16(35038), + 36: uint16(35040), + 37: uint16(35041), + 38: uint16(35046), + 39: uint16(35047), + 40: uint16(35049), + 41: uint16(35050), + 42: uint16(35051), + 43: uint16(35052), + 44: uint16(35053), + 45: uint16(35054), + 46: uint16(35055), + 47: uint16(35058), + 48: uint16(35061), + 49: uint16(35062), + 50: uint16(35063), + 51: uint16(35066), + 52: uint16(35067), + 53: uint16(35069), + 54: uint16(35071), + 55: uint16(35072), + 56: uint16(35073), + 57: uint16(35075), + 58: uint16(35076), + 59: uint16(35077), + 60: uint16(35078), + 61: uint16(35079), + 62: uint16(35080), + 63: uint16(35081), + 64: uint16(35083), + 65: uint16(35084), + 66: uint16(35085), + 67: uint16(35086), + 68: uint16(35087), + 69: uint16(35089), + 70: uint16(35092), + 71: uint16(35093), + 72: uint16(35094), + 73: uint16(35095), + 74: uint16(35096), + 75: uint16(35100), + 76: uint16(35101), + 77: uint16(35102), + 78: uint16(35103), + 79: uint16(35104), + 80: uint16(35106), + 81: uint16(35107), + 82: uint16(35108), + 83: uint16(35110), + 84: uint16(35111), + 85: uint16(35112), + 86: uint16(35113), + 87: uint16(35116), + 88: uint16(35117), + 89: uint16(35118), + 90: uint16(35119), + 91: uint16(35121), + 92: uint16(35122), + 93: uint16(35123), + 94: uint16(35125), + 95: uint16(35127), + 96: uint16(36873), + 97: uint16(30307), + 98: uint16(30505), + 99: uint16(32474), + 100: uint16(38772), + 101: uint16(34203), + 102: uint16(23398), + 103: uint16(31348), + 104: uint16(38634), + 105: uint16(34880), + 106: uint16(21195), + 107: uint16(29071), + 108: uint16(24490), + 109: uint16(26092), + 110: uint16(35810), + 111: uint16(23547), + 112: uint16(39535), + 113: uint16(24033), + 114: uint16(27529), + 115: uint16(27739), + 116: uint16(35757), + 117: uint16(35759), + 118: uint16(36874), + 119: uint16(36805), + 120: uint16(21387), + 121: uint16(25276), + 122: uint16(40486), + 123: uint16(40493), + 124: uint16(21568), + 125: uint16(20011), + 126: uint16(33469), + 127: uint16(29273), + 128: uint16(34460), + 129: uint16(23830), + 130: uint16(34905), + 131: uint16(28079), + 132: uint16(38597), + 133: uint16(21713), + 134: uint16(20122), + 135: uint16(35766), + 136: uint16(28937), + 137: uint16(21693), + 138: uint16(38409), + 139: uint16(28895), + 140: uint16(28153), + 141: uint16(30416), + 142: uint16(20005), + 143: uint16(30740), + 144: uint16(34578), + 145: uint16(23721), + 146: uint16(24310), + 147: uint16(35328), + 148: uint16(39068), + 149: uint16(38414), + 150: uint16(28814), + 151: uint16(27839), + 152: uint16(22852), + 153: uint16(25513), + 154: uint16(30524), + 155: uint16(34893), + 156: uint16(28436), + 157: uint16(33395), + 158: uint16(22576), + 159: uint16(29141), + 160: uint16(21388), + 161: uint16(30746), + 162: uint16(38593), + 163: uint16(21761), + 164: uint16(24422), + 165: uint16(28976), + 166: uint16(23476), + 167: uint16(35866), + 168: uint16(39564), + 169: uint16(27523), + 170: uint16(22830), + 171: uint16(40495), + 172: uint16(31207), + 173: uint16(26472), + 174: uint16(25196), + 175: uint16(20335), + 176: uint16(30113), + 177: uint16(32650), + 178: uint16(27915), + 179: uint16(38451), + 180: uint16(27687), + 181: uint16(20208), + 182: uint16(30162), + 183: uint16(20859), + 184: uint16(26679), + 185: uint16(28478), + 186: uint16(36992), + 187: uint16(33136), + 188: uint16(22934), + 189: uint16(29814), + }, + 81: { + 0: uint16(35128), + 1: uint16(35129), + 2: uint16(35130), + 3: uint16(35131), + 4: uint16(35132), + 5: uint16(35133), + 6: uint16(35134), + 7: uint16(35135), + 8: uint16(35136), + 9: uint16(35138), + 10: uint16(35139), + 11: uint16(35141), + 12: uint16(35142), + 13: uint16(35143), + 14: uint16(35144), + 15: uint16(35145), + 16: uint16(35146), + 17: uint16(35147), + 18: uint16(35148), + 19: uint16(35149), + 20: uint16(35150), + 21: uint16(35151), + 22: uint16(35152), + 23: uint16(35153), + 24: uint16(35154), + 25: uint16(35155), + 26: uint16(35156), + 27: uint16(35157), + 28: uint16(35158), + 29: uint16(35159), + 30: uint16(35160), + 31: uint16(35161), + 32: uint16(35162), + 33: uint16(35163), + 34: uint16(35164), + 35: uint16(35165), + 36: uint16(35168), + 37: uint16(35169), + 38: uint16(35170), + 39: uint16(35171), + 40: uint16(35172), + 41: uint16(35173), + 42: uint16(35175), + 43: uint16(35176), + 44: uint16(35177), + 45: uint16(35178), + 46: uint16(35179), + 47: uint16(35180), + 48: uint16(35181), + 49: uint16(35182), + 50: uint16(35183), + 51: uint16(35184), + 52: uint16(35185), + 53: uint16(35186), + 54: uint16(35187), + 55: uint16(35188), + 56: uint16(35189), + 57: uint16(35190), + 58: uint16(35191), + 59: uint16(35192), + 60: uint16(35193), + 61: uint16(35194), + 62: uint16(35196), + 63: uint16(35197), + 64: uint16(35198), + 65: uint16(35200), + 66: uint16(35202), + 67: uint16(35204), + 68: uint16(35205), + 69: uint16(35207), + 70: uint16(35208), + 71: uint16(35209), + 72: uint16(35210), + 73: uint16(35211), + 74: uint16(35212), + 75: uint16(35213), + 76: uint16(35214), + 77: uint16(35215), + 78: uint16(35216), + 79: uint16(35217), + 80: uint16(35218), + 81: uint16(35219), + 82: uint16(35220), + 83: uint16(35221), + 84: uint16(35222), + 85: uint16(35223), + 86: uint16(35224), + 87: uint16(35225), + 88: uint16(35226), + 89: uint16(35227), + 90: uint16(35228), + 91: uint16(35229), + 92: uint16(35230), + 93: uint16(35231), + 94: uint16(35232), + 95: uint16(35233), + 96: uint16(25671), + 97: uint16(23591), + 98: uint16(36965), + 99: uint16(31377), + 100: uint16(35875), + 101: uint16(23002), + 102: uint16(21676), + 103: uint16(33280), + 104: uint16(33647), + 105: uint16(35201), + 106: uint16(32768), + 107: uint16(26928), + 108: uint16(22094), + 109: uint16(32822), + 110: uint16(29239), + 111: uint16(37326), + 112: uint16(20918), + 113: uint16(20063), + 114: uint16(39029), + 115: uint16(25494), + 116: uint16(19994), + 117: uint16(21494), + 118: uint16(26355), + 119: uint16(33099), + 120: uint16(22812), + 121: uint16(28082), + 122: uint16(19968), + 123: uint16(22777), + 124: uint16(21307), + 125: uint16(25558), + 126: uint16(38129), + 127: uint16(20381), + 128: uint16(20234), + 129: uint16(34915), + 130: uint16(39056), + 131: uint16(22839), + 132: uint16(36951), + 133: uint16(31227), + 134: uint16(20202), + 135: uint16(33008), + 136: uint16(30097), + 137: uint16(27778), + 138: uint16(23452), + 139: uint16(23016), + 140: uint16(24413), + 141: uint16(26885), + 142: uint16(34433), + 143: uint16(20506), + 144: uint16(24050), + 145: uint16(20057), + 146: uint16(30691), + 147: uint16(20197), + 148: uint16(33402), + 149: uint16(25233), + 150: uint16(26131), + 151: uint16(37009), + 152: uint16(23673), + 153: uint16(20159), + 154: uint16(24441), + 155: uint16(33222), + 156: uint16(36920), + 157: uint16(32900), + 158: uint16(30123), + 159: uint16(20134), + 160: uint16(35028), + 161: uint16(24847), + 162: uint16(27589), + 163: uint16(24518), + 164: uint16(20041), + 165: uint16(30410), + 166: uint16(28322), + 167: uint16(35811), + 168: uint16(35758), + 169: uint16(35850), + 170: uint16(35793), + 171: uint16(24322), + 172: uint16(32764), + 173: uint16(32716), + 174: uint16(32462), + 175: uint16(33589), + 176: uint16(33643), + 177: uint16(22240), + 178: uint16(27575), + 179: uint16(38899), + 180: uint16(38452), + 181: uint16(23035), + 182: uint16(21535), + 183: uint16(38134), + 184: uint16(28139), + 185: uint16(23493), + 186: uint16(39278), + 187: uint16(23609), + 188: uint16(24341), + 189: uint16(38544), + }, + 82: { + 0: uint16(35234), + 1: uint16(35235), + 2: uint16(35236), + 3: uint16(35237), + 4: uint16(35238), + 5: uint16(35239), + 6: uint16(35240), + 7: uint16(35241), + 8: uint16(35242), + 9: uint16(35243), + 10: uint16(35244), + 11: uint16(35245), + 12: uint16(35246), + 13: uint16(35247), + 14: uint16(35248), + 15: uint16(35249), + 16: uint16(35250), + 17: uint16(35251), + 18: uint16(35252), + 19: uint16(35253), + 20: uint16(35254), + 21: uint16(35255), + 22: uint16(35256), + 23: uint16(35257), + 24: uint16(35258), + 25: uint16(35259), + 26: uint16(35260), + 27: uint16(35261), + 28: uint16(35262), + 29: uint16(35263), + 30: uint16(35264), + 31: uint16(35267), + 32: uint16(35277), + 33: uint16(35283), + 34: uint16(35284), + 35: uint16(35285), + 36: uint16(35287), + 37: uint16(35288), + 38: uint16(35289), + 39: uint16(35291), + 40: uint16(35293), + 41: uint16(35295), + 42: uint16(35296), + 43: uint16(35297), + 44: uint16(35298), + 45: uint16(35300), + 46: uint16(35303), + 47: uint16(35304), + 48: uint16(35305), + 49: uint16(35306), + 50: uint16(35308), + 51: uint16(35309), + 52: uint16(35310), + 53: uint16(35312), + 54: uint16(35313), + 55: uint16(35314), + 56: uint16(35316), + 57: uint16(35317), + 58: uint16(35318), + 59: uint16(35319), + 60: uint16(35320), + 61: uint16(35321), + 62: uint16(35322), + 63: uint16(35323), + 64: uint16(35324), + 65: uint16(35325), + 66: uint16(35326), + 67: uint16(35327), + 68: uint16(35329), + 69: uint16(35330), + 70: uint16(35331), + 71: uint16(35332), + 72: uint16(35333), + 73: uint16(35334), + 74: uint16(35336), + 75: uint16(35337), + 76: uint16(35338), + 77: uint16(35339), + 78: uint16(35340), + 79: uint16(35341), + 80: uint16(35342), + 81: uint16(35343), + 82: uint16(35344), + 83: uint16(35345), + 84: uint16(35346), + 85: uint16(35347), + 86: uint16(35348), + 87: uint16(35349), + 88: uint16(35350), + 89: uint16(35351), + 90: uint16(35352), + 91: uint16(35353), + 92: uint16(35354), + 93: uint16(35355), + 94: uint16(35356), + 95: uint16(35357), + 96: uint16(21360), + 97: uint16(33521), + 98: uint16(27185), + 99: uint16(23156), + 100: uint16(40560), + 101: uint16(24212), + 102: uint16(32552), + 103: uint16(33721), + 104: uint16(33828), + 105: uint16(33829), + 106: uint16(33639), + 107: uint16(34631), + 108: uint16(36814), + 109: uint16(36194), + 110: uint16(30408), + 111: uint16(24433), + 112: uint16(39062), + 113: uint16(30828), + 114: uint16(26144), + 115: uint16(21727), + 116: uint16(25317), + 117: uint16(20323), + 118: uint16(33219), + 119: uint16(30152), + 120: uint16(24248), + 121: uint16(38605), + 122: uint16(36362), + 123: uint16(34553), + 124: uint16(21647), + 125: uint16(27891), + 126: uint16(28044), + 127: uint16(27704), + 128: uint16(24703), + 129: uint16(21191), + 130: uint16(29992), + 131: uint16(24189), + 132: uint16(20248), + 133: uint16(24736), + 134: uint16(24551), + 135: uint16(23588), + 136: uint16(30001), + 137: uint16(37038), + 138: uint16(38080), + 139: uint16(29369), + 140: uint16(27833), + 141: uint16(28216), + 142: uint16(37193), + 143: uint16(26377), + 144: uint16(21451), + 145: uint16(21491), + 146: uint16(20305), + 147: uint16(37321), + 148: uint16(35825), + 149: uint16(21448), + 150: uint16(24188), + 151: uint16(36802), + 152: uint16(28132), + 153: uint16(20110), + 154: uint16(30402), + 155: uint16(27014), + 156: uint16(34398), + 157: uint16(24858), + 158: uint16(33286), + 159: uint16(20313), + 160: uint16(20446), + 161: uint16(36926), + 162: uint16(40060), + 163: uint16(24841), + 164: uint16(28189), + 165: uint16(28180), + 166: uint16(38533), + 167: uint16(20104), + 168: uint16(23089), + 169: uint16(38632), + 170: uint16(19982), + 171: uint16(23679), + 172: uint16(31161), + 173: uint16(23431), + 174: uint16(35821), + 175: uint16(32701), + 176: uint16(29577), + 177: uint16(22495), + 178: uint16(33419), + 179: uint16(37057), + 180: uint16(21505), + 181: uint16(36935), + 182: uint16(21947), + 183: uint16(23786), + 184: uint16(24481), + 185: uint16(24840), + 186: uint16(27442), + 187: uint16(29425), + 188: uint16(32946), + 189: uint16(35465), + }, + 83: { + 0: uint16(35358), + 1: uint16(35359), + 2: uint16(35360), + 3: uint16(35361), + 4: uint16(35362), + 5: uint16(35363), + 6: uint16(35364), + 7: uint16(35365), + 8: uint16(35366), + 9: uint16(35367), + 10: uint16(35368), + 11: uint16(35369), + 12: uint16(35370), + 13: uint16(35371), + 14: uint16(35372), + 15: uint16(35373), + 16: uint16(35374), + 17: uint16(35375), + 18: uint16(35376), + 19: uint16(35377), + 20: uint16(35378), + 21: uint16(35379), + 22: uint16(35380), + 23: uint16(35381), + 24: uint16(35382), + 25: uint16(35383), + 26: uint16(35384), + 27: uint16(35385), + 28: uint16(35386), + 29: uint16(35387), + 30: uint16(35388), + 31: uint16(35389), + 32: uint16(35391), + 33: uint16(35392), + 34: uint16(35393), + 35: uint16(35394), + 36: uint16(35395), + 37: uint16(35396), + 38: uint16(35397), + 39: uint16(35398), + 40: uint16(35399), + 41: uint16(35401), + 42: uint16(35402), + 43: uint16(35403), + 44: uint16(35404), + 45: uint16(35405), + 46: uint16(35406), + 47: uint16(35407), + 48: uint16(35408), + 49: uint16(35409), + 50: uint16(35410), + 51: uint16(35411), + 52: uint16(35412), + 53: uint16(35413), + 54: uint16(35414), + 55: uint16(35415), + 56: uint16(35416), + 57: uint16(35417), + 58: uint16(35418), + 59: uint16(35419), + 60: uint16(35420), + 61: uint16(35421), + 62: uint16(35422), + 63: uint16(35423), + 64: uint16(35424), + 65: uint16(35425), + 66: uint16(35426), + 67: uint16(35427), + 68: uint16(35428), + 69: uint16(35429), + 70: uint16(35430), + 71: uint16(35431), + 72: uint16(35432), + 73: uint16(35433), + 74: uint16(35434), + 75: uint16(35435), + 76: uint16(35436), + 77: uint16(35437), + 78: uint16(35438), + 79: uint16(35439), + 80: uint16(35440), + 81: uint16(35441), + 82: uint16(35442), + 83: uint16(35443), + 84: uint16(35444), + 85: uint16(35445), + 86: uint16(35446), + 87: uint16(35447), + 88: uint16(35448), + 89: uint16(35450), + 90: uint16(35451), + 91: uint16(35452), + 92: uint16(35453), + 93: uint16(35454), + 94: uint16(35455), + 95: uint16(35456), + 96: uint16(28020), + 97: uint16(23507), + 98: uint16(35029), + 99: uint16(39044), + 100: uint16(35947), + 101: uint16(39533), + 102: uint16(40499), + 103: uint16(28170), + 104: uint16(20900), + 105: uint16(20803), + 106: uint16(22435), + 107: uint16(34945), + 108: uint16(21407), + 109: uint16(25588), + 110: uint16(36757), + 111: uint16(22253), + 112: uint16(21592), + 113: uint16(22278), + 114: uint16(29503), + 115: uint16(28304), + 116: uint16(32536), + 117: uint16(36828), + 118: uint16(33489), + 119: uint16(24895), + 120: uint16(24616), + 121: uint16(38498), + 122: uint16(26352), + 123: uint16(32422), + 124: uint16(36234), + 125: uint16(36291), + 126: uint16(38053), + 127: uint16(23731), + 128: uint16(31908), + 129: uint16(26376), + 130: uint16(24742), + 131: uint16(38405), + 132: uint16(32792), + 133: uint16(20113), + 134: uint16(37095), + 135: uint16(21248), + 136: uint16(38504), + 137: uint16(20801), + 138: uint16(36816), + 139: uint16(34164), + 140: uint16(37213), + 141: uint16(26197), + 142: uint16(38901), + 143: uint16(23381), + 144: uint16(21277), + 145: uint16(30776), + 146: uint16(26434), + 147: uint16(26685), + 148: uint16(21705), + 149: uint16(28798), + 150: uint16(23472), + 151: uint16(36733), + 152: uint16(20877), + 153: uint16(22312), + 154: uint16(21681), + 155: uint16(25874), + 156: uint16(26242), + 157: uint16(36190), + 158: uint16(36163), + 159: uint16(33039), + 160: uint16(33900), + 161: uint16(36973), + 162: uint16(31967), + 163: uint16(20991), + 164: uint16(34299), + 165: uint16(26531), + 166: uint16(26089), + 167: uint16(28577), + 168: uint16(34468), + 169: uint16(36481), + 170: uint16(22122), + 171: uint16(36896), + 172: uint16(30338), + 173: uint16(28790), + 174: uint16(29157), + 175: uint16(36131), + 176: uint16(25321), + 177: uint16(21017), + 178: uint16(27901), + 179: uint16(36156), + 180: uint16(24590), + 181: uint16(22686), + 182: uint16(24974), + 183: uint16(26366), + 184: uint16(36192), + 185: uint16(25166), + 186: uint16(21939), + 187: uint16(28195), + 188: uint16(26413), + 189: uint16(36711), + }, + 84: { + 0: uint16(35457), + 1: uint16(35458), + 2: uint16(35459), + 3: uint16(35460), + 4: uint16(35461), + 5: uint16(35462), + 6: uint16(35463), + 7: uint16(35464), + 8: uint16(35467), + 9: uint16(35468), + 10: uint16(35469), + 11: uint16(35470), + 12: uint16(35471), + 13: uint16(35472), + 14: uint16(35473), + 15: uint16(35474), + 16: uint16(35476), + 17: uint16(35477), + 18: uint16(35478), + 19: uint16(35479), + 20: uint16(35480), + 21: uint16(35481), + 22: uint16(35482), + 23: uint16(35483), + 24: uint16(35484), + 25: uint16(35485), + 26: uint16(35486), + 27: uint16(35487), + 28: uint16(35488), + 29: uint16(35489), + 30: uint16(35490), + 31: uint16(35491), + 32: uint16(35492), + 33: uint16(35493), + 34: uint16(35494), + 35: uint16(35495), + 36: uint16(35496), + 37: uint16(35497), + 38: uint16(35498), + 39: uint16(35499), + 40: uint16(35500), + 41: uint16(35501), + 42: uint16(35502), + 43: uint16(35503), + 44: uint16(35504), + 45: uint16(35505), + 46: uint16(35506), + 47: uint16(35507), + 48: uint16(35508), + 49: uint16(35509), + 50: uint16(35510), + 51: uint16(35511), + 52: uint16(35512), + 53: uint16(35513), + 54: uint16(35514), + 55: uint16(35515), + 56: uint16(35516), + 57: uint16(35517), + 58: uint16(35518), + 59: uint16(35519), + 60: uint16(35520), + 61: uint16(35521), + 62: uint16(35522), + 63: uint16(35523), + 64: uint16(35524), + 65: uint16(35525), + 66: uint16(35526), + 67: uint16(35527), + 68: uint16(35528), + 69: uint16(35529), + 70: uint16(35530), + 71: uint16(35531), + 72: uint16(35532), + 73: uint16(35533), + 74: uint16(35534), + 75: uint16(35535), + 76: uint16(35536), + 77: uint16(35537), + 78: uint16(35538), + 79: uint16(35539), + 80: uint16(35540), + 81: uint16(35541), + 82: uint16(35542), + 83: uint16(35543), + 84: uint16(35544), + 85: uint16(35545), + 86: uint16(35546), + 87: uint16(35547), + 88: uint16(35548), + 89: uint16(35549), + 90: uint16(35550), + 91: uint16(35551), + 92: uint16(35552), + 93: uint16(35553), + 94: uint16(35554), + 95: uint16(35555), + 96: uint16(38113), + 97: uint16(38392), + 98: uint16(30504), + 99: uint16(26629), + 100: uint16(27048), + 101: uint16(21643), + 102: uint16(20045), + 103: uint16(28856), + 104: uint16(35784), + 105: uint16(25688), + 106: uint16(25995), + 107: uint16(23429), + 108: uint16(31364), + 109: uint16(20538), + 110: uint16(23528), + 111: uint16(30651), + 112: uint16(27617), + 113: uint16(35449), + 114: uint16(31896), + 115: uint16(27838), + 116: uint16(30415), + 117: uint16(26025), + 118: uint16(36759), + 119: uint16(23853), + 120: uint16(23637), + 121: uint16(34360), + 122: uint16(26632), + 123: uint16(21344), + 124: uint16(25112), + 125: uint16(31449), + 126: uint16(28251), + 127: uint16(32509), + 128: uint16(27167), + 129: uint16(31456), + 130: uint16(24432), + 131: uint16(28467), + 132: uint16(24352), + 133: uint16(25484), + 134: uint16(28072), + 135: uint16(26454), + 136: uint16(19976), + 137: uint16(24080), + 138: uint16(36134), + 139: uint16(20183), + 140: uint16(32960), + 141: uint16(30260), + 142: uint16(38556), + 143: uint16(25307), + 144: uint16(26157), + 145: uint16(25214), + 146: uint16(27836), + 147: uint16(36213), + 148: uint16(29031), + 149: uint16(32617), + 150: uint16(20806), + 151: uint16(32903), + 152: uint16(21484), + 153: uint16(36974), + 154: uint16(25240), + 155: uint16(21746), + 156: uint16(34544), + 157: uint16(36761), + 158: uint16(32773), + 159: uint16(38167), + 160: uint16(34071), + 161: uint16(36825), + 162: uint16(27993), + 163: uint16(29645), + 164: uint16(26015), + 165: uint16(30495), + 166: uint16(29956), + 167: uint16(30759), + 168: uint16(33275), + 169: uint16(36126), + 170: uint16(38024), + 171: uint16(20390), + 172: uint16(26517), + 173: uint16(30137), + 174: uint16(35786), + 175: uint16(38663), + 176: uint16(25391), + 177: uint16(38215), + 178: uint16(38453), + 179: uint16(33976), + 180: uint16(25379), + 181: uint16(30529), + 182: uint16(24449), + 183: uint16(29424), + 184: uint16(20105), + 185: uint16(24596), + 186: uint16(25972), + 187: uint16(25327), + 188: uint16(27491), + 189: uint16(25919), + }, + 85: { + 0: uint16(35556), + 1: uint16(35557), + 2: uint16(35558), + 3: uint16(35559), + 4: uint16(35560), + 5: uint16(35561), + 6: uint16(35562), + 7: uint16(35563), + 8: uint16(35564), + 9: uint16(35565), + 10: uint16(35566), + 11: uint16(35567), + 12: uint16(35568), + 13: uint16(35569), + 14: uint16(35570), + 15: uint16(35571), + 16: uint16(35572), + 17: uint16(35573), + 18: uint16(35574), + 19: uint16(35575), + 20: uint16(35576), + 21: uint16(35577), + 22: uint16(35578), + 23: uint16(35579), + 24: uint16(35580), + 25: uint16(35581), + 26: uint16(35582), + 27: uint16(35583), + 28: uint16(35584), + 29: uint16(35585), + 30: uint16(35586), + 31: uint16(35587), + 32: uint16(35588), + 33: uint16(35589), + 34: uint16(35590), + 35: uint16(35592), + 36: uint16(35593), + 37: uint16(35594), + 38: uint16(35595), + 39: uint16(35596), + 40: uint16(35597), + 41: uint16(35598), + 42: uint16(35599), + 43: uint16(35600), + 44: uint16(35601), + 45: uint16(35602), + 46: uint16(35603), + 47: uint16(35604), + 48: uint16(35605), + 49: uint16(35606), + 50: uint16(35607), + 51: uint16(35608), + 52: uint16(35609), + 53: uint16(35610), + 54: uint16(35611), + 55: uint16(35612), + 56: uint16(35613), + 57: uint16(35614), + 58: uint16(35615), + 59: uint16(35616), + 60: uint16(35617), + 61: uint16(35618), + 62: uint16(35619), + 63: uint16(35620), + 64: uint16(35621), + 65: uint16(35623), + 66: uint16(35624), + 67: uint16(35625), + 68: uint16(35626), + 69: uint16(35627), + 70: uint16(35628), + 71: uint16(35629), + 72: uint16(35630), + 73: uint16(35631), + 74: uint16(35632), + 75: uint16(35633), + 76: uint16(35634), + 77: uint16(35635), + 78: uint16(35636), + 79: uint16(35637), + 80: uint16(35638), + 81: uint16(35639), + 82: uint16(35640), + 83: uint16(35641), + 84: uint16(35642), + 85: uint16(35643), + 86: uint16(35644), + 87: uint16(35645), + 88: uint16(35646), + 89: uint16(35647), + 90: uint16(35648), + 91: uint16(35649), + 92: uint16(35650), + 93: uint16(35651), + 94: uint16(35652), + 95: uint16(35653), + 96: uint16(24103), + 97: uint16(30151), + 98: uint16(37073), + 99: uint16(35777), + 100: uint16(33437), + 101: uint16(26525), + 102: uint16(25903), + 103: uint16(21553), + 104: uint16(34584), + 105: uint16(30693), + 106: uint16(32930), + 107: uint16(33026), + 108: uint16(27713), + 109: uint16(20043), + 110: uint16(32455), + 111: uint16(32844), + 112: uint16(30452), + 113: uint16(26893), + 114: uint16(27542), + 115: uint16(25191), + 116: uint16(20540), + 117: uint16(20356), + 118: uint16(22336), + 119: uint16(25351), + 120: uint16(27490), + 121: uint16(36286), + 122: uint16(21482), + 123: uint16(26088), + 124: uint16(32440), + 125: uint16(24535), + 126: uint16(25370), + 127: uint16(25527), + 128: uint16(33267), + 129: uint16(33268), + 130: uint16(32622), + 131: uint16(24092), + 132: uint16(23769), + 133: uint16(21046), + 134: uint16(26234), + 135: uint16(31209), + 136: uint16(31258), + 137: uint16(36136), + 138: uint16(28825), + 139: uint16(30164), + 140: uint16(28382), + 141: uint16(27835), + 142: uint16(31378), + 143: uint16(20013), + 144: uint16(30405), + 145: uint16(24544), + 146: uint16(38047), + 147: uint16(34935), + 148: uint16(32456), + 149: uint16(31181), + 150: uint16(32959), + 151: uint16(37325), + 152: uint16(20210), + 153: uint16(20247), + 154: uint16(33311), + 155: uint16(21608), + 156: uint16(24030), + 157: uint16(27954), + 158: uint16(35788), + 159: uint16(31909), + 160: uint16(36724), + 161: uint16(32920), + 162: uint16(24090), + 163: uint16(21650), + 164: uint16(30385), + 165: uint16(23449), + 166: uint16(26172), + 167: uint16(39588), + 168: uint16(29664), + 169: uint16(26666), + 170: uint16(34523), + 171: uint16(26417), + 172: uint16(29482), + 173: uint16(35832), + 174: uint16(35803), + 175: uint16(36880), + 176: uint16(31481), + 177: uint16(28891), + 178: uint16(29038), + 179: uint16(25284), + 180: uint16(30633), + 181: uint16(22065), + 182: uint16(20027), + 183: uint16(33879), + 184: uint16(26609), + 185: uint16(21161), + 186: uint16(34496), + 187: uint16(36142), + 188: uint16(38136), + 189: uint16(31569), + }, + 86: { + 0: uint16(35654), + 1: uint16(35655), + 2: uint16(35656), + 3: uint16(35657), + 4: uint16(35658), + 5: uint16(35659), + 6: uint16(35660), + 7: uint16(35661), + 8: uint16(35662), + 9: uint16(35663), + 10: uint16(35664), + 11: uint16(35665), + 12: uint16(35666), + 13: uint16(35667), + 14: uint16(35668), + 15: uint16(35669), + 16: uint16(35670), + 17: uint16(35671), + 18: uint16(35672), + 19: uint16(35673), + 20: uint16(35674), + 21: uint16(35675), + 22: uint16(35676), + 23: uint16(35677), + 24: uint16(35678), + 25: uint16(35679), + 26: uint16(35680), + 27: uint16(35681), + 28: uint16(35682), + 29: uint16(35683), + 30: uint16(35684), + 31: uint16(35685), + 32: uint16(35687), + 33: uint16(35688), + 34: uint16(35689), + 35: uint16(35690), + 36: uint16(35691), + 37: uint16(35693), + 38: uint16(35694), + 39: uint16(35695), + 40: uint16(35696), + 41: uint16(35697), + 42: uint16(35698), + 43: uint16(35699), + 44: uint16(35700), + 45: uint16(35701), + 46: uint16(35702), + 47: uint16(35703), + 48: uint16(35704), + 49: uint16(35705), + 50: uint16(35706), + 51: uint16(35707), + 52: uint16(35708), + 53: uint16(35709), + 54: uint16(35710), + 55: uint16(35711), + 56: uint16(35712), + 57: uint16(35713), + 58: uint16(35714), + 59: uint16(35715), + 60: uint16(35716), + 61: uint16(35717), + 62: uint16(35718), + 63: uint16(35719), + 64: uint16(35720), + 65: uint16(35721), + 66: uint16(35722), + 67: uint16(35723), + 68: uint16(35724), + 69: uint16(35725), + 70: uint16(35726), + 71: uint16(35727), + 72: uint16(35728), + 73: uint16(35729), + 74: uint16(35730), + 75: uint16(35731), + 76: uint16(35732), + 77: uint16(35733), + 78: uint16(35734), + 79: uint16(35735), + 80: uint16(35736), + 81: uint16(35737), + 82: uint16(35738), + 83: uint16(35739), + 84: uint16(35740), + 85: uint16(35741), + 86: uint16(35742), + 87: uint16(35743), + 88: uint16(35756), + 89: uint16(35761), + 90: uint16(35771), + 91: uint16(35783), + 92: uint16(35792), + 93: uint16(35818), + 94: uint16(35849), + 95: uint16(35870), + 96: uint16(20303), + 97: uint16(27880), + 98: uint16(31069), + 99: uint16(39547), + 100: uint16(25235), + 101: uint16(29226), + 102: uint16(25341), + 103: uint16(19987), + 104: uint16(30742), + 105: uint16(36716), + 106: uint16(25776), + 107: uint16(36186), + 108: uint16(31686), + 109: uint16(26729), + 110: uint16(24196), + 111: uint16(35013), + 112: uint16(22918), + 113: uint16(25758), + 114: uint16(22766), + 115: uint16(29366), + 116: uint16(26894), + 117: uint16(38181), + 118: uint16(36861), + 119: uint16(36184), + 120: uint16(22368), + 121: uint16(32512), + 122: uint16(35846), + 123: uint16(20934), + 124: uint16(25417), + 125: uint16(25305), + 126: uint16(21331), + 127: uint16(26700), + 128: uint16(29730), + 129: uint16(33537), + 130: uint16(37196), + 131: uint16(21828), + 132: uint16(30528), + 133: uint16(28796), + 134: uint16(27978), + 135: uint16(20857), + 136: uint16(21672), + 137: uint16(36164), + 138: uint16(23039), + 139: uint16(28363), + 140: uint16(28100), + 141: uint16(23388), + 142: uint16(32043), + 143: uint16(20180), + 144: uint16(31869), + 145: uint16(28371), + 146: uint16(23376), + 147: uint16(33258), + 148: uint16(28173), + 149: uint16(23383), + 150: uint16(39683), + 151: uint16(26837), + 152: uint16(36394), + 153: uint16(23447), + 154: uint16(32508), + 155: uint16(24635), + 156: uint16(32437), + 157: uint16(37049), + 158: uint16(36208), + 159: uint16(22863), + 160: uint16(25549), + 161: uint16(31199), + 162: uint16(36275), + 163: uint16(21330), + 164: uint16(26063), + 165: uint16(31062), + 166: uint16(35781), + 167: uint16(38459), + 168: uint16(32452), + 169: uint16(38075), + 170: uint16(32386), + 171: uint16(22068), + 172: uint16(37257), + 173: uint16(26368), + 174: uint16(32618), + 175: uint16(23562), + 176: uint16(36981), + 177: uint16(26152), + 178: uint16(24038), + 179: uint16(20304), + 180: uint16(26590), + 181: uint16(20570), + 182: uint16(20316), + 183: uint16(22352), + 184: uint16(24231), + 185: uint16(59408), + 186: uint16(59409), + 187: uint16(59410), + 188: uint16(59411), + 189: uint16(59412), + }, + 87: { + 0: uint16(35896), + 1: uint16(35897), + 2: uint16(35898), + 3: uint16(35899), + 4: uint16(35900), + 5: uint16(35901), + 6: uint16(35902), + 7: uint16(35903), + 8: uint16(35904), + 9: uint16(35906), + 10: uint16(35907), + 11: uint16(35908), + 12: uint16(35909), + 13: uint16(35912), + 14: uint16(35914), + 15: uint16(35915), + 16: uint16(35917), + 17: uint16(35918), + 18: uint16(35919), + 19: uint16(35920), + 20: uint16(35921), + 21: uint16(35922), + 22: uint16(35923), + 23: uint16(35924), + 24: uint16(35926), + 25: uint16(35927), + 26: uint16(35928), + 27: uint16(35929), + 28: uint16(35931), + 29: uint16(35932), + 30: uint16(35933), + 31: uint16(35934), + 32: uint16(35935), + 33: uint16(35936), + 34: uint16(35939), + 35: uint16(35940), + 36: uint16(35941), + 37: uint16(35942), + 38: uint16(35943), + 39: uint16(35944), + 40: uint16(35945), + 41: uint16(35948), + 42: uint16(35949), + 43: uint16(35950), + 44: uint16(35951), + 45: uint16(35952), + 46: uint16(35953), + 47: uint16(35954), + 48: uint16(35956), + 49: uint16(35957), + 50: uint16(35958), + 51: uint16(35959), + 52: uint16(35963), + 53: uint16(35964), + 54: uint16(35965), + 55: uint16(35966), + 56: uint16(35967), + 57: uint16(35968), + 58: uint16(35969), + 59: uint16(35971), + 60: uint16(35972), + 61: uint16(35974), + 62: uint16(35975), + 63: uint16(35976), + 64: uint16(35979), + 65: uint16(35981), + 66: uint16(35982), + 67: uint16(35983), + 68: uint16(35984), + 69: uint16(35985), + 70: uint16(35986), + 71: uint16(35987), + 72: uint16(35989), + 73: uint16(35990), + 74: uint16(35991), + 75: uint16(35993), + 76: uint16(35994), + 77: uint16(35995), + 78: uint16(35996), + 79: uint16(35997), + 80: uint16(35998), + 81: uint16(35999), + 82: uint16(36000), + 83: uint16(36001), + 84: uint16(36002), + 85: uint16(36003), + 86: uint16(36004), + 87: uint16(36005), + 88: uint16(36006), + 89: uint16(36007), + 90: uint16(36008), + 91: uint16(36009), + 92: uint16(36010), + 93: uint16(36011), + 94: uint16(36012), + 95: uint16(36013), + 96: uint16(20109), + 97: uint16(19980), + 98: uint16(20800), + 99: uint16(19984), + 100: uint16(24319), + 101: uint16(21317), + 102: uint16(19989), + 103: uint16(20120), + 104: uint16(19998), + 105: uint16(39730), + 106: uint16(23404), + 107: uint16(22121), + 108: uint16(20008), + 109: uint16(31162), + 110: uint16(20031), + 111: uint16(21269), + 112: uint16(20039), + 113: uint16(22829), + 114: uint16(29243), + 115: uint16(21358), + 116: uint16(27664), + 117: uint16(22239), + 118: uint16(32996), + 119: uint16(39319), + 120: uint16(27603), + 121: uint16(30590), + 122: uint16(40727), + 123: uint16(20022), + 124: uint16(20127), + 125: uint16(40720), + 126: uint16(20060), + 127: uint16(20073), + 128: uint16(20115), + 129: uint16(33416), + 130: uint16(23387), + 131: uint16(21868), + 132: uint16(22031), + 133: uint16(20164), + 134: uint16(21389), + 135: uint16(21405), + 136: uint16(21411), + 137: uint16(21413), + 138: uint16(21422), + 139: uint16(38757), + 140: uint16(36189), + 141: uint16(21274), + 142: uint16(21493), + 143: uint16(21286), + 144: uint16(21294), + 145: uint16(21310), + 146: uint16(36188), + 147: uint16(21350), + 148: uint16(21347), + 149: uint16(20994), + 150: uint16(21000), + 151: uint16(21006), + 152: uint16(21037), + 153: uint16(21043), + 154: uint16(21055), + 155: uint16(21056), + 156: uint16(21068), + 157: uint16(21086), + 158: uint16(21089), + 159: uint16(21084), + 160: uint16(33967), + 161: uint16(21117), + 162: uint16(21122), + 163: uint16(21121), + 164: uint16(21136), + 165: uint16(21139), + 166: uint16(20866), + 167: uint16(32596), + 168: uint16(20155), + 169: uint16(20163), + 170: uint16(20169), + 171: uint16(20162), + 172: uint16(20200), + 173: uint16(20193), + 174: uint16(20203), + 175: uint16(20190), + 176: uint16(20251), + 177: uint16(20211), + 178: uint16(20258), + 179: uint16(20324), + 180: uint16(20213), + 181: uint16(20261), + 182: uint16(20263), + 183: uint16(20233), + 184: uint16(20267), + 185: uint16(20318), + 186: uint16(20327), + 187: uint16(25912), + 188: uint16(20314), + 189: uint16(20317), + }, + 88: { + 0: uint16(36014), + 1: uint16(36015), + 2: uint16(36016), + 3: uint16(36017), + 4: uint16(36018), + 5: uint16(36019), + 6: uint16(36020), + 7: uint16(36021), + 8: uint16(36022), + 9: uint16(36023), + 10: uint16(36024), + 11: uint16(36025), + 12: uint16(36026), + 13: uint16(36027), + 14: uint16(36028), + 15: uint16(36029), + 16: uint16(36030), + 17: uint16(36031), + 18: uint16(36032), + 19: uint16(36033), + 20: uint16(36034), + 21: uint16(36035), + 22: uint16(36036), + 23: uint16(36037), + 24: uint16(36038), + 25: uint16(36039), + 26: uint16(36040), + 27: uint16(36041), + 28: uint16(36042), + 29: uint16(36043), + 30: uint16(36044), + 31: uint16(36045), + 32: uint16(36046), + 33: uint16(36047), + 34: uint16(36048), + 35: uint16(36049), + 36: uint16(36050), + 37: uint16(36051), + 38: uint16(36052), + 39: uint16(36053), + 40: uint16(36054), + 41: uint16(36055), + 42: uint16(36056), + 43: uint16(36057), + 44: uint16(36058), + 45: uint16(36059), + 46: uint16(36060), + 47: uint16(36061), + 48: uint16(36062), + 49: uint16(36063), + 50: uint16(36064), + 51: uint16(36065), + 52: uint16(36066), + 53: uint16(36067), + 54: uint16(36068), + 55: uint16(36069), + 56: uint16(36070), + 57: uint16(36071), + 58: uint16(36072), + 59: uint16(36073), + 60: uint16(36074), + 61: uint16(36075), + 62: uint16(36076), + 63: uint16(36077), + 64: uint16(36078), + 65: uint16(36079), + 66: uint16(36080), + 67: uint16(36081), + 68: uint16(36082), + 69: uint16(36083), + 70: uint16(36084), + 71: uint16(36085), + 72: uint16(36086), + 73: uint16(36087), + 74: uint16(36088), + 75: uint16(36089), + 76: uint16(36090), + 77: uint16(36091), + 78: uint16(36092), + 79: uint16(36093), + 80: uint16(36094), + 81: uint16(36095), + 82: uint16(36096), + 83: uint16(36097), + 84: uint16(36098), + 85: uint16(36099), + 86: uint16(36100), + 87: uint16(36101), + 88: uint16(36102), + 89: uint16(36103), + 90: uint16(36104), + 91: uint16(36105), + 92: uint16(36106), + 93: uint16(36107), + 94: uint16(36108), + 95: uint16(36109), + 96: uint16(20319), + 97: uint16(20311), + 98: uint16(20274), + 99: uint16(20285), + 100: uint16(20342), + 101: uint16(20340), + 102: uint16(20369), + 103: uint16(20361), + 104: uint16(20355), + 105: uint16(20367), + 106: uint16(20350), + 107: uint16(20347), + 108: uint16(20394), + 109: uint16(20348), + 110: uint16(20396), + 111: uint16(20372), + 112: uint16(20454), + 113: uint16(20456), + 114: uint16(20458), + 115: uint16(20421), + 116: uint16(20442), + 117: uint16(20451), + 118: uint16(20444), + 119: uint16(20433), + 120: uint16(20447), + 121: uint16(20472), + 122: uint16(20521), + 123: uint16(20556), + 124: uint16(20467), + 125: uint16(20524), + 126: uint16(20495), + 127: uint16(20526), + 128: uint16(20525), + 129: uint16(20478), + 130: uint16(20508), + 131: uint16(20492), + 132: uint16(20517), + 133: uint16(20520), + 134: uint16(20606), + 135: uint16(20547), + 136: uint16(20565), + 137: uint16(20552), + 138: uint16(20558), + 139: uint16(20588), + 140: uint16(20603), + 141: uint16(20645), + 142: uint16(20647), + 143: uint16(20649), + 144: uint16(20666), + 145: uint16(20694), + 146: uint16(20742), + 147: uint16(20717), + 148: uint16(20716), + 149: uint16(20710), + 150: uint16(20718), + 151: uint16(20743), + 152: uint16(20747), + 153: uint16(20189), + 154: uint16(27709), + 155: uint16(20312), + 156: uint16(20325), + 157: uint16(20430), + 158: uint16(40864), + 159: uint16(27718), + 160: uint16(31860), + 161: uint16(20846), + 162: uint16(24061), + 163: uint16(40649), + 164: uint16(39320), + 165: uint16(20865), + 166: uint16(22804), + 167: uint16(21241), + 168: uint16(21261), + 169: uint16(35335), + 170: uint16(21264), + 171: uint16(20971), + 172: uint16(22809), + 173: uint16(20821), + 174: uint16(20128), + 175: uint16(20822), + 176: uint16(20147), + 177: uint16(34926), + 178: uint16(34980), + 179: uint16(20149), + 180: uint16(33044), + 181: uint16(35026), + 182: uint16(31104), + 183: uint16(23348), + 184: uint16(34819), + 185: uint16(32696), + 186: uint16(20907), + 187: uint16(20913), + 188: uint16(20925), + 189: uint16(20924), + }, + 89: { + 0: uint16(36110), + 1: uint16(36111), + 2: uint16(36112), + 3: uint16(36113), + 4: uint16(36114), + 5: uint16(36115), + 6: uint16(36116), + 7: uint16(36117), + 8: uint16(36118), + 9: uint16(36119), + 10: uint16(36120), + 11: uint16(36121), + 12: uint16(36122), + 13: uint16(36123), + 14: uint16(36124), + 15: uint16(36128), + 16: uint16(36177), + 17: uint16(36178), + 18: uint16(36183), + 19: uint16(36191), + 20: uint16(36197), + 21: uint16(36200), + 22: uint16(36201), + 23: uint16(36202), + 24: uint16(36204), + 25: uint16(36206), + 26: uint16(36207), + 27: uint16(36209), + 28: uint16(36210), + 29: uint16(36216), + 30: uint16(36217), + 31: uint16(36218), + 32: uint16(36219), + 33: uint16(36220), + 34: uint16(36221), + 35: uint16(36222), + 36: uint16(36223), + 37: uint16(36224), + 38: uint16(36226), + 39: uint16(36227), + 40: uint16(36230), + 41: uint16(36231), + 42: uint16(36232), + 43: uint16(36233), + 44: uint16(36236), + 45: uint16(36237), + 46: uint16(36238), + 47: uint16(36239), + 48: uint16(36240), + 49: uint16(36242), + 50: uint16(36243), + 51: uint16(36245), + 52: uint16(36246), + 53: uint16(36247), + 54: uint16(36248), + 55: uint16(36249), + 56: uint16(36250), + 57: uint16(36251), + 58: uint16(36252), + 59: uint16(36253), + 60: uint16(36254), + 61: uint16(36256), + 62: uint16(36257), + 63: uint16(36258), + 64: uint16(36260), + 65: uint16(36261), + 66: uint16(36262), + 67: uint16(36263), + 68: uint16(36264), + 69: uint16(36265), + 70: uint16(36266), + 71: uint16(36267), + 72: uint16(36268), + 73: uint16(36269), + 74: uint16(36270), + 75: uint16(36271), + 76: uint16(36272), + 77: uint16(36274), + 78: uint16(36278), + 79: uint16(36279), + 80: uint16(36281), + 81: uint16(36283), + 82: uint16(36285), + 83: uint16(36288), + 84: uint16(36289), + 85: uint16(36290), + 86: uint16(36293), + 87: uint16(36295), + 88: uint16(36296), + 89: uint16(36297), + 90: uint16(36298), + 91: uint16(36301), + 92: uint16(36304), + 93: uint16(36306), + 94: uint16(36307), + 95: uint16(36308), + 96: uint16(20935), + 97: uint16(20886), + 98: uint16(20898), + 99: uint16(20901), + 100: uint16(35744), + 101: uint16(35750), + 102: uint16(35751), + 103: uint16(35754), + 104: uint16(35764), + 105: uint16(35765), + 106: uint16(35767), + 107: uint16(35778), + 108: uint16(35779), + 109: uint16(35787), + 110: uint16(35791), + 111: uint16(35790), + 112: uint16(35794), + 113: uint16(35795), + 114: uint16(35796), + 115: uint16(35798), + 116: uint16(35800), + 117: uint16(35801), + 118: uint16(35804), + 119: uint16(35807), + 120: uint16(35808), + 121: uint16(35812), + 122: uint16(35816), + 123: uint16(35817), + 124: uint16(35822), + 125: uint16(35824), + 126: uint16(35827), + 127: uint16(35830), + 128: uint16(35833), + 129: uint16(35836), + 130: uint16(35839), + 131: uint16(35840), + 132: uint16(35842), + 133: uint16(35844), + 134: uint16(35847), + 135: uint16(35852), + 136: uint16(35855), + 137: uint16(35857), + 138: uint16(35858), + 139: uint16(35860), + 140: uint16(35861), + 141: uint16(35862), + 142: uint16(35865), + 143: uint16(35867), + 144: uint16(35864), + 145: uint16(35869), + 146: uint16(35871), + 147: uint16(35872), + 148: uint16(35873), + 149: uint16(35877), + 150: uint16(35879), + 151: uint16(35882), + 152: uint16(35883), + 153: uint16(35886), + 154: uint16(35887), + 155: uint16(35890), + 156: uint16(35891), + 157: uint16(35893), + 158: uint16(35894), + 159: uint16(21353), + 160: uint16(21370), + 161: uint16(38429), + 162: uint16(38434), + 163: uint16(38433), + 164: uint16(38449), + 165: uint16(38442), + 166: uint16(38461), + 167: uint16(38460), + 168: uint16(38466), + 169: uint16(38473), + 170: uint16(38484), + 171: uint16(38495), + 172: uint16(38503), + 173: uint16(38508), + 174: uint16(38514), + 175: uint16(38516), + 176: uint16(38536), + 177: uint16(38541), + 178: uint16(38551), + 179: uint16(38576), + 180: uint16(37015), + 181: uint16(37019), + 182: uint16(37021), + 183: uint16(37017), + 184: uint16(37036), + 185: uint16(37025), + 186: uint16(37044), + 187: uint16(37043), + 188: uint16(37046), + 189: uint16(37050), + }, + 90: { + 0: uint16(36309), + 1: uint16(36312), + 2: uint16(36313), + 3: uint16(36316), + 4: uint16(36320), + 5: uint16(36321), + 6: uint16(36322), + 7: uint16(36325), + 8: uint16(36326), + 9: uint16(36327), + 10: uint16(36329), + 11: uint16(36333), + 12: uint16(36334), + 13: uint16(36336), + 14: uint16(36337), + 15: uint16(36338), + 16: uint16(36340), + 17: uint16(36342), + 18: uint16(36348), + 19: uint16(36350), + 20: uint16(36351), + 21: uint16(36352), + 22: uint16(36353), + 23: uint16(36354), + 24: uint16(36355), + 25: uint16(36356), + 26: uint16(36358), + 27: uint16(36359), + 28: uint16(36360), + 29: uint16(36363), + 30: uint16(36365), + 31: uint16(36366), + 32: uint16(36368), + 33: uint16(36369), + 34: uint16(36370), + 35: uint16(36371), + 36: uint16(36373), + 37: uint16(36374), + 38: uint16(36375), + 39: uint16(36376), + 40: uint16(36377), + 41: uint16(36378), + 42: uint16(36379), + 43: uint16(36380), + 44: uint16(36384), + 45: uint16(36385), + 46: uint16(36388), + 47: uint16(36389), + 48: uint16(36390), + 49: uint16(36391), + 50: uint16(36392), + 51: uint16(36395), + 52: uint16(36397), + 53: uint16(36400), + 54: uint16(36402), + 55: uint16(36403), + 56: uint16(36404), + 57: uint16(36406), + 58: uint16(36407), + 59: uint16(36408), + 60: uint16(36411), + 61: uint16(36412), + 62: uint16(36414), + 63: uint16(36415), + 64: uint16(36419), + 65: uint16(36421), + 66: uint16(36422), + 67: uint16(36428), + 68: uint16(36429), + 69: uint16(36430), + 70: uint16(36431), + 71: uint16(36432), + 72: uint16(36435), + 73: uint16(36436), + 74: uint16(36437), + 75: uint16(36438), + 76: uint16(36439), + 77: uint16(36440), + 78: uint16(36442), + 79: uint16(36443), + 80: uint16(36444), + 81: uint16(36445), + 82: uint16(36446), + 83: uint16(36447), + 84: uint16(36448), + 85: uint16(36449), + 86: uint16(36450), + 87: uint16(36451), + 88: uint16(36452), + 89: uint16(36453), + 90: uint16(36455), + 91: uint16(36456), + 92: uint16(36458), + 93: uint16(36459), + 94: uint16(36462), + 95: uint16(36465), + 96: uint16(37048), + 97: uint16(37040), + 98: uint16(37071), + 99: uint16(37061), + 100: uint16(37054), + 101: uint16(37072), + 102: uint16(37060), + 103: uint16(37063), + 104: uint16(37075), + 105: uint16(37094), + 106: uint16(37090), + 107: uint16(37084), + 108: uint16(37079), + 109: uint16(37083), + 110: uint16(37099), + 111: uint16(37103), + 112: uint16(37118), + 113: uint16(37124), + 114: uint16(37154), + 115: uint16(37150), + 116: uint16(37155), + 117: uint16(37169), + 118: uint16(37167), + 119: uint16(37177), + 120: uint16(37187), + 121: uint16(37190), + 122: uint16(21005), + 123: uint16(22850), + 124: uint16(21154), + 125: uint16(21164), + 126: uint16(21165), + 127: uint16(21182), + 128: uint16(21759), + 129: uint16(21200), + 130: uint16(21206), + 131: uint16(21232), + 132: uint16(21471), + 133: uint16(29166), + 134: uint16(30669), + 135: uint16(24308), + 136: uint16(20981), + 137: uint16(20988), + 138: uint16(39727), + 139: uint16(21430), + 140: uint16(24321), + 141: uint16(30042), + 142: uint16(24047), + 143: uint16(22348), + 144: uint16(22441), + 145: uint16(22433), + 146: uint16(22654), + 147: uint16(22716), + 148: uint16(22725), + 149: uint16(22737), + 150: uint16(22313), + 151: uint16(22316), + 152: uint16(22314), + 153: uint16(22323), + 154: uint16(22329), + 155: uint16(22318), + 156: uint16(22319), + 157: uint16(22364), + 158: uint16(22331), + 159: uint16(22338), + 160: uint16(22377), + 161: uint16(22405), + 162: uint16(22379), + 163: uint16(22406), + 164: uint16(22396), + 165: uint16(22395), + 166: uint16(22376), + 167: uint16(22381), + 168: uint16(22390), + 169: uint16(22387), + 170: uint16(22445), + 171: uint16(22436), + 172: uint16(22412), + 173: uint16(22450), + 174: uint16(22479), + 175: uint16(22439), + 176: uint16(22452), + 177: uint16(22419), + 178: uint16(22432), + 179: uint16(22485), + 180: uint16(22488), + 181: uint16(22490), + 182: uint16(22489), + 183: uint16(22482), + 184: uint16(22456), + 185: uint16(22516), + 186: uint16(22511), + 187: uint16(22520), + 188: uint16(22500), + 189: uint16(22493), + }, + 91: { + 0: uint16(36467), + 1: uint16(36469), + 2: uint16(36471), + 3: uint16(36472), + 4: uint16(36473), + 5: uint16(36474), + 6: uint16(36475), + 7: uint16(36477), + 8: uint16(36478), + 9: uint16(36480), + 10: uint16(36482), + 11: uint16(36483), + 12: uint16(36484), + 13: uint16(36486), + 14: uint16(36488), + 15: uint16(36489), + 16: uint16(36490), + 17: uint16(36491), + 18: uint16(36492), + 19: uint16(36493), + 20: uint16(36494), + 21: uint16(36497), + 22: uint16(36498), + 23: uint16(36499), + 24: uint16(36501), + 25: uint16(36502), + 26: uint16(36503), + 27: uint16(36504), + 28: uint16(36505), + 29: uint16(36506), + 30: uint16(36507), + 31: uint16(36509), + 32: uint16(36511), + 33: uint16(36512), + 34: uint16(36513), + 35: uint16(36514), + 36: uint16(36515), + 37: uint16(36516), + 38: uint16(36517), + 39: uint16(36518), + 40: uint16(36519), + 41: uint16(36520), + 42: uint16(36521), + 43: uint16(36522), + 44: uint16(36525), + 45: uint16(36526), + 46: uint16(36528), + 47: uint16(36529), + 48: uint16(36531), + 49: uint16(36532), + 50: uint16(36533), + 51: uint16(36534), + 52: uint16(36535), + 53: uint16(36536), + 54: uint16(36537), + 55: uint16(36539), + 56: uint16(36540), + 57: uint16(36541), + 58: uint16(36542), + 59: uint16(36543), + 60: uint16(36544), + 61: uint16(36545), + 62: uint16(36546), + 63: uint16(36547), + 64: uint16(36548), + 65: uint16(36549), + 66: uint16(36550), + 67: uint16(36551), + 68: uint16(36552), + 69: uint16(36553), + 70: uint16(36554), + 71: uint16(36555), + 72: uint16(36556), + 73: uint16(36557), + 74: uint16(36559), + 75: uint16(36560), + 76: uint16(36561), + 77: uint16(36562), + 78: uint16(36563), + 79: uint16(36564), + 80: uint16(36565), + 81: uint16(36566), + 82: uint16(36567), + 83: uint16(36568), + 84: uint16(36569), + 85: uint16(36570), + 86: uint16(36571), + 87: uint16(36572), + 88: uint16(36573), + 89: uint16(36574), + 90: uint16(36575), + 91: uint16(36576), + 92: uint16(36577), + 93: uint16(36578), + 94: uint16(36579), + 95: uint16(36580), + 96: uint16(22539), + 97: uint16(22541), + 98: uint16(22525), + 99: uint16(22509), + 100: uint16(22528), + 101: uint16(22558), + 102: uint16(22553), + 103: uint16(22596), + 104: uint16(22560), + 105: uint16(22629), + 106: uint16(22636), + 107: uint16(22657), + 108: uint16(22665), + 109: uint16(22682), + 110: uint16(22656), + 111: uint16(39336), + 112: uint16(40729), + 113: uint16(25087), + 114: uint16(33401), + 115: uint16(33405), + 116: uint16(33407), + 117: uint16(33423), + 118: uint16(33418), + 119: uint16(33448), + 120: uint16(33412), + 121: uint16(33422), + 122: uint16(33425), + 123: uint16(33431), + 124: uint16(33433), + 125: uint16(33451), + 126: uint16(33464), + 127: uint16(33470), + 128: uint16(33456), + 129: uint16(33480), + 130: uint16(33482), + 131: uint16(33507), + 132: uint16(33432), + 133: uint16(33463), + 134: uint16(33454), + 135: uint16(33483), + 136: uint16(33484), + 137: uint16(33473), + 138: uint16(33449), + 139: uint16(33460), + 140: uint16(33441), + 141: uint16(33450), + 142: uint16(33439), + 143: uint16(33476), + 144: uint16(33486), + 145: uint16(33444), + 146: uint16(33505), + 147: uint16(33545), + 148: uint16(33527), + 149: uint16(33508), + 150: uint16(33551), + 151: uint16(33543), + 152: uint16(33500), + 153: uint16(33524), + 154: uint16(33490), + 155: uint16(33496), + 156: uint16(33548), + 157: uint16(33531), + 158: uint16(33491), + 159: uint16(33553), + 160: uint16(33562), + 161: uint16(33542), + 162: uint16(33556), + 163: uint16(33557), + 164: uint16(33504), + 165: uint16(33493), + 166: uint16(33564), + 167: uint16(33617), + 168: uint16(33627), + 169: uint16(33628), + 170: uint16(33544), + 171: uint16(33682), + 172: uint16(33596), + 173: uint16(33588), + 174: uint16(33585), + 175: uint16(33691), + 176: uint16(33630), + 177: uint16(33583), + 178: uint16(33615), + 179: uint16(33607), + 180: uint16(33603), + 181: uint16(33631), + 182: uint16(33600), + 183: uint16(33559), + 184: uint16(33632), + 185: uint16(33581), + 186: uint16(33594), + 187: uint16(33587), + 188: uint16(33638), + 189: uint16(33637), + }, + 92: { + 0: uint16(36581), + 1: uint16(36582), + 2: uint16(36583), + 3: uint16(36584), + 4: uint16(36585), + 5: uint16(36586), + 6: uint16(36587), + 7: uint16(36588), + 8: uint16(36589), + 9: uint16(36590), + 10: uint16(36591), + 11: uint16(36592), + 12: uint16(36593), + 13: uint16(36594), + 14: uint16(36595), + 15: uint16(36596), + 16: uint16(36597), + 17: uint16(36598), + 18: uint16(36599), + 19: uint16(36600), + 20: uint16(36601), + 21: uint16(36602), + 22: uint16(36603), + 23: uint16(36604), + 24: uint16(36605), + 25: uint16(36606), + 26: uint16(36607), + 27: uint16(36608), + 28: uint16(36609), + 29: uint16(36610), + 30: uint16(36611), + 31: uint16(36612), + 32: uint16(36613), + 33: uint16(36614), + 34: uint16(36615), + 35: uint16(36616), + 36: uint16(36617), + 37: uint16(36618), + 38: uint16(36619), + 39: uint16(36620), + 40: uint16(36621), + 41: uint16(36622), + 42: uint16(36623), + 43: uint16(36624), + 44: uint16(36625), + 45: uint16(36626), + 46: uint16(36627), + 47: uint16(36628), + 48: uint16(36629), + 49: uint16(36630), + 50: uint16(36631), + 51: uint16(36632), + 52: uint16(36633), + 53: uint16(36634), + 54: uint16(36635), + 55: uint16(36636), + 56: uint16(36637), + 57: uint16(36638), + 58: uint16(36639), + 59: uint16(36640), + 60: uint16(36641), + 61: uint16(36642), + 62: uint16(36643), + 63: uint16(36644), + 64: uint16(36645), + 65: uint16(36646), + 66: uint16(36647), + 67: uint16(36648), + 68: uint16(36649), + 69: uint16(36650), + 70: uint16(36651), + 71: uint16(36652), + 72: uint16(36653), + 73: uint16(36654), + 74: uint16(36655), + 75: uint16(36656), + 76: uint16(36657), + 77: uint16(36658), + 78: uint16(36659), + 79: uint16(36660), + 80: uint16(36661), + 81: uint16(36662), + 82: uint16(36663), + 83: uint16(36664), + 84: uint16(36665), + 85: uint16(36666), + 86: uint16(36667), + 87: uint16(36668), + 88: uint16(36669), + 89: uint16(36670), + 90: uint16(36671), + 91: uint16(36672), + 92: uint16(36673), + 93: uint16(36674), + 94: uint16(36675), + 95: uint16(36676), + 96: uint16(33640), + 97: uint16(33563), + 98: uint16(33641), + 99: uint16(33644), + 100: uint16(33642), + 101: uint16(33645), + 102: uint16(33646), + 103: uint16(33712), + 104: uint16(33656), + 105: uint16(33715), + 106: uint16(33716), + 107: uint16(33696), + 108: uint16(33706), + 109: uint16(33683), + 110: uint16(33692), + 111: uint16(33669), + 112: uint16(33660), + 113: uint16(33718), + 114: uint16(33705), + 115: uint16(33661), + 116: uint16(33720), + 117: uint16(33659), + 118: uint16(33688), + 119: uint16(33694), + 120: uint16(33704), + 121: uint16(33722), + 122: uint16(33724), + 123: uint16(33729), + 124: uint16(33793), + 125: uint16(33765), + 126: uint16(33752), + 127: uint16(22535), + 128: uint16(33816), + 129: uint16(33803), + 130: uint16(33757), + 131: uint16(33789), + 132: uint16(33750), + 133: uint16(33820), + 134: uint16(33848), + 135: uint16(33809), + 136: uint16(33798), + 137: uint16(33748), + 138: uint16(33759), + 139: uint16(33807), + 140: uint16(33795), + 141: uint16(33784), + 142: uint16(33785), + 143: uint16(33770), + 144: uint16(33733), + 145: uint16(33728), + 146: uint16(33830), + 147: uint16(33776), + 148: uint16(33761), + 149: uint16(33884), + 150: uint16(33873), + 151: uint16(33882), + 152: uint16(33881), + 153: uint16(33907), + 154: uint16(33927), + 155: uint16(33928), + 156: uint16(33914), + 157: uint16(33929), + 158: uint16(33912), + 159: uint16(33852), + 160: uint16(33862), + 161: uint16(33897), + 162: uint16(33910), + 163: uint16(33932), + 164: uint16(33934), + 165: uint16(33841), + 166: uint16(33901), + 167: uint16(33985), + 168: uint16(33997), + 169: uint16(34000), + 170: uint16(34022), + 171: uint16(33981), + 172: uint16(34003), + 173: uint16(33994), + 174: uint16(33983), + 175: uint16(33978), + 176: uint16(34016), + 177: uint16(33953), + 178: uint16(33977), + 179: uint16(33972), + 180: uint16(33943), + 181: uint16(34021), + 182: uint16(34019), + 183: uint16(34060), + 184: uint16(29965), + 185: uint16(34104), + 186: uint16(34032), + 187: uint16(34105), + 188: uint16(34079), + 189: uint16(34106), + }, + 93: { + 0: uint16(36677), + 1: uint16(36678), + 2: uint16(36679), + 3: uint16(36680), + 4: uint16(36681), + 5: uint16(36682), + 6: uint16(36683), + 7: uint16(36684), + 8: uint16(36685), + 9: uint16(36686), + 10: uint16(36687), + 11: uint16(36688), + 12: uint16(36689), + 13: uint16(36690), + 14: uint16(36691), + 15: uint16(36692), + 16: uint16(36693), + 17: uint16(36694), + 18: uint16(36695), + 19: uint16(36696), + 20: uint16(36697), + 21: uint16(36698), + 22: uint16(36699), + 23: uint16(36700), + 24: uint16(36701), + 25: uint16(36702), + 26: uint16(36703), + 27: uint16(36704), + 28: uint16(36705), + 29: uint16(36706), + 30: uint16(36707), + 31: uint16(36708), + 32: uint16(36709), + 33: uint16(36714), + 34: uint16(36736), + 35: uint16(36748), + 36: uint16(36754), + 37: uint16(36765), + 38: uint16(36768), + 39: uint16(36769), + 40: uint16(36770), + 41: uint16(36772), + 42: uint16(36773), + 43: uint16(36774), + 44: uint16(36775), + 45: uint16(36778), + 46: uint16(36780), + 47: uint16(36781), + 48: uint16(36782), + 49: uint16(36783), + 50: uint16(36786), + 51: uint16(36787), + 52: uint16(36788), + 53: uint16(36789), + 54: uint16(36791), + 55: uint16(36792), + 56: uint16(36794), + 57: uint16(36795), + 58: uint16(36796), + 59: uint16(36799), + 60: uint16(36800), + 61: uint16(36803), + 62: uint16(36806), + 63: uint16(36809), + 64: uint16(36810), + 65: uint16(36811), + 66: uint16(36812), + 67: uint16(36813), + 68: uint16(36815), + 69: uint16(36818), + 70: uint16(36822), + 71: uint16(36823), + 72: uint16(36826), + 73: uint16(36832), + 74: uint16(36833), + 75: uint16(36835), + 76: uint16(36839), + 77: uint16(36844), + 78: uint16(36847), + 79: uint16(36849), + 80: uint16(36850), + 81: uint16(36852), + 82: uint16(36853), + 83: uint16(36854), + 84: uint16(36858), + 85: uint16(36859), + 86: uint16(36860), + 87: uint16(36862), + 88: uint16(36863), + 89: uint16(36871), + 90: uint16(36872), + 91: uint16(36876), + 92: uint16(36878), + 93: uint16(36883), + 94: uint16(36885), + 95: uint16(36888), + 96: uint16(34134), + 97: uint16(34107), + 98: uint16(34047), + 99: uint16(34044), + 100: uint16(34137), + 101: uint16(34120), + 102: uint16(34152), + 103: uint16(34148), + 104: uint16(34142), + 105: uint16(34170), + 106: uint16(30626), + 107: uint16(34115), + 108: uint16(34162), + 109: uint16(34171), + 110: uint16(34212), + 111: uint16(34216), + 112: uint16(34183), + 113: uint16(34191), + 114: uint16(34169), + 115: uint16(34222), + 116: uint16(34204), + 117: uint16(34181), + 118: uint16(34233), + 119: uint16(34231), + 120: uint16(34224), + 121: uint16(34259), + 122: uint16(34241), + 123: uint16(34268), + 124: uint16(34303), + 125: uint16(34343), + 126: uint16(34309), + 127: uint16(34345), + 128: uint16(34326), + 129: uint16(34364), + 130: uint16(24318), + 131: uint16(24328), + 132: uint16(22844), + 133: uint16(22849), + 134: uint16(32823), + 135: uint16(22869), + 136: uint16(22874), + 137: uint16(22872), + 138: uint16(21263), + 139: uint16(23586), + 140: uint16(23589), + 141: uint16(23596), + 142: uint16(23604), + 143: uint16(25164), + 144: uint16(25194), + 145: uint16(25247), + 146: uint16(25275), + 147: uint16(25290), + 148: uint16(25306), + 149: uint16(25303), + 150: uint16(25326), + 151: uint16(25378), + 152: uint16(25334), + 153: uint16(25401), + 154: uint16(25419), + 155: uint16(25411), + 156: uint16(25517), + 157: uint16(25590), + 158: uint16(25457), + 159: uint16(25466), + 160: uint16(25486), + 161: uint16(25524), + 162: uint16(25453), + 163: uint16(25516), + 164: uint16(25482), + 165: uint16(25449), + 166: uint16(25518), + 167: uint16(25532), + 168: uint16(25586), + 169: uint16(25592), + 170: uint16(25568), + 171: uint16(25599), + 172: uint16(25540), + 173: uint16(25566), + 174: uint16(25550), + 175: uint16(25682), + 176: uint16(25542), + 177: uint16(25534), + 178: uint16(25669), + 179: uint16(25665), + 180: uint16(25611), + 181: uint16(25627), + 182: uint16(25632), + 183: uint16(25612), + 184: uint16(25638), + 185: uint16(25633), + 186: uint16(25694), + 187: uint16(25732), + 188: uint16(25709), + 189: uint16(25750), + }, + 94: { + 0: uint16(36889), + 1: uint16(36892), + 2: uint16(36899), + 3: uint16(36900), + 4: uint16(36901), + 5: uint16(36903), + 6: uint16(36904), + 7: uint16(36905), + 8: uint16(36906), + 9: uint16(36907), + 10: uint16(36908), + 11: uint16(36912), + 12: uint16(36913), + 13: uint16(36914), + 14: uint16(36915), + 15: uint16(36916), + 16: uint16(36919), + 17: uint16(36921), + 18: uint16(36922), + 19: uint16(36925), + 20: uint16(36927), + 21: uint16(36928), + 22: uint16(36931), + 23: uint16(36933), + 24: uint16(36934), + 25: uint16(36936), + 26: uint16(36937), + 27: uint16(36938), + 28: uint16(36939), + 29: uint16(36940), + 30: uint16(36942), + 31: uint16(36948), + 32: uint16(36949), + 33: uint16(36950), + 34: uint16(36953), + 35: uint16(36954), + 36: uint16(36956), + 37: uint16(36957), + 38: uint16(36958), + 39: uint16(36959), + 40: uint16(36960), + 41: uint16(36961), + 42: uint16(36964), + 43: uint16(36966), + 44: uint16(36967), + 45: uint16(36969), + 46: uint16(36970), + 47: uint16(36971), + 48: uint16(36972), + 49: uint16(36975), + 50: uint16(36976), + 51: uint16(36977), + 52: uint16(36978), + 53: uint16(36979), + 54: uint16(36982), + 55: uint16(36983), + 56: uint16(36984), + 57: uint16(36985), + 58: uint16(36986), + 59: uint16(36987), + 60: uint16(36988), + 61: uint16(36990), + 62: uint16(36993), + 63: uint16(36996), + 64: uint16(36997), + 65: uint16(36998), + 66: uint16(36999), + 67: uint16(37001), + 68: uint16(37002), + 69: uint16(37004), + 70: uint16(37005), + 71: uint16(37006), + 72: uint16(37007), + 73: uint16(37008), + 74: uint16(37010), + 75: uint16(37012), + 76: uint16(37014), + 77: uint16(37016), + 78: uint16(37018), + 79: uint16(37020), + 80: uint16(37022), + 81: uint16(37023), + 82: uint16(37024), + 83: uint16(37028), + 84: uint16(37029), + 85: uint16(37031), + 86: uint16(37032), + 87: uint16(37033), + 88: uint16(37035), + 89: uint16(37037), + 90: uint16(37042), + 91: uint16(37047), + 92: uint16(37052), + 93: uint16(37053), + 94: uint16(37055), + 95: uint16(37056), + 96: uint16(25722), + 97: uint16(25783), + 98: uint16(25784), + 99: uint16(25753), + 100: uint16(25786), + 101: uint16(25792), + 102: uint16(25808), + 103: uint16(25815), + 104: uint16(25828), + 105: uint16(25826), + 106: uint16(25865), + 107: uint16(25893), + 108: uint16(25902), + 109: uint16(24331), + 110: uint16(24530), + 111: uint16(29977), + 112: uint16(24337), + 113: uint16(21343), + 114: uint16(21489), + 115: uint16(21501), + 116: uint16(21481), + 117: uint16(21480), + 118: uint16(21499), + 119: uint16(21522), + 120: uint16(21526), + 121: uint16(21510), + 122: uint16(21579), + 123: uint16(21586), + 124: uint16(21587), + 125: uint16(21588), + 126: uint16(21590), + 127: uint16(21571), + 128: uint16(21537), + 129: uint16(21591), + 130: uint16(21593), + 131: uint16(21539), + 132: uint16(21554), + 133: uint16(21634), + 134: uint16(21652), + 135: uint16(21623), + 136: uint16(21617), + 137: uint16(21604), + 138: uint16(21658), + 139: uint16(21659), + 140: uint16(21636), + 141: uint16(21622), + 142: uint16(21606), + 143: uint16(21661), + 144: uint16(21712), + 145: uint16(21677), + 146: uint16(21698), + 147: uint16(21684), + 148: uint16(21714), + 149: uint16(21671), + 150: uint16(21670), + 151: uint16(21715), + 152: uint16(21716), + 153: uint16(21618), + 154: uint16(21667), + 155: uint16(21717), + 156: uint16(21691), + 157: uint16(21695), + 158: uint16(21708), + 159: uint16(21721), + 160: uint16(21722), + 161: uint16(21724), + 162: uint16(21673), + 163: uint16(21674), + 164: uint16(21668), + 165: uint16(21725), + 166: uint16(21711), + 167: uint16(21726), + 168: uint16(21787), + 169: uint16(21735), + 170: uint16(21792), + 171: uint16(21757), + 172: uint16(21780), + 173: uint16(21747), + 174: uint16(21794), + 175: uint16(21795), + 176: uint16(21775), + 177: uint16(21777), + 178: uint16(21799), + 179: uint16(21802), + 180: uint16(21863), + 181: uint16(21903), + 182: uint16(21941), + 183: uint16(21833), + 184: uint16(21869), + 185: uint16(21825), + 186: uint16(21845), + 187: uint16(21823), + 188: uint16(21840), + 189: uint16(21820), + }, + 95: { + 0: uint16(37058), + 1: uint16(37059), + 2: uint16(37062), + 3: uint16(37064), + 4: uint16(37065), + 5: uint16(37067), + 6: uint16(37068), + 7: uint16(37069), + 8: uint16(37074), + 9: uint16(37076), + 10: uint16(37077), + 11: uint16(37078), + 12: uint16(37080), + 13: uint16(37081), + 14: uint16(37082), + 15: uint16(37086), + 16: uint16(37087), + 17: uint16(37088), + 18: uint16(37091), + 19: uint16(37092), + 20: uint16(37093), + 21: uint16(37097), + 22: uint16(37098), + 23: uint16(37100), + 24: uint16(37102), + 25: uint16(37104), + 26: uint16(37105), + 27: uint16(37106), + 28: uint16(37107), + 29: uint16(37109), + 30: uint16(37110), + 31: uint16(37111), + 32: uint16(37113), + 33: uint16(37114), + 34: uint16(37115), + 35: uint16(37116), + 36: uint16(37119), + 37: uint16(37120), + 38: uint16(37121), + 39: uint16(37123), + 40: uint16(37125), + 41: uint16(37126), + 42: uint16(37127), + 43: uint16(37128), + 44: uint16(37129), + 45: uint16(37130), + 46: uint16(37131), + 47: uint16(37132), + 48: uint16(37133), + 49: uint16(37134), + 50: uint16(37135), + 51: uint16(37136), + 52: uint16(37137), + 53: uint16(37138), + 54: uint16(37139), + 55: uint16(37140), + 56: uint16(37141), + 57: uint16(37142), + 58: uint16(37143), + 59: uint16(37144), + 60: uint16(37146), + 61: uint16(37147), + 62: uint16(37148), + 63: uint16(37149), + 64: uint16(37151), + 65: uint16(37152), + 66: uint16(37153), + 67: uint16(37156), + 68: uint16(37157), + 69: uint16(37158), + 70: uint16(37159), + 71: uint16(37160), + 72: uint16(37161), + 73: uint16(37162), + 74: uint16(37163), + 75: uint16(37164), + 76: uint16(37165), + 77: uint16(37166), + 78: uint16(37168), + 79: uint16(37170), + 80: uint16(37171), + 81: uint16(37172), + 82: uint16(37173), + 83: uint16(37174), + 84: uint16(37175), + 85: uint16(37176), + 86: uint16(37178), + 87: uint16(37179), + 88: uint16(37180), + 89: uint16(37181), + 90: uint16(37182), + 91: uint16(37183), + 92: uint16(37184), + 93: uint16(37185), + 94: uint16(37186), + 95: uint16(37188), + 96: uint16(21815), + 97: uint16(21846), + 98: uint16(21877), + 99: uint16(21878), + 100: uint16(21879), + 101: uint16(21811), + 102: uint16(21808), + 103: uint16(21852), + 104: uint16(21899), + 105: uint16(21970), + 106: uint16(21891), + 107: uint16(21937), + 108: uint16(21945), + 109: uint16(21896), + 110: uint16(21889), + 111: uint16(21919), + 112: uint16(21886), + 113: uint16(21974), + 114: uint16(21905), + 115: uint16(21883), + 116: uint16(21983), + 117: uint16(21949), + 118: uint16(21950), + 119: uint16(21908), + 120: uint16(21913), + 121: uint16(21994), + 122: uint16(22007), + 123: uint16(21961), + 124: uint16(22047), + 125: uint16(21969), + 126: uint16(21995), + 127: uint16(21996), + 128: uint16(21972), + 129: uint16(21990), + 130: uint16(21981), + 131: uint16(21956), + 132: uint16(21999), + 133: uint16(21989), + 134: uint16(22002), + 135: uint16(22003), + 136: uint16(21964), + 137: uint16(21965), + 138: uint16(21992), + 139: uint16(22005), + 140: uint16(21988), + 141: uint16(36756), + 142: uint16(22046), + 143: uint16(22024), + 144: uint16(22028), + 145: uint16(22017), + 146: uint16(22052), + 147: uint16(22051), + 148: uint16(22014), + 149: uint16(22016), + 150: uint16(22055), + 151: uint16(22061), + 152: uint16(22104), + 153: uint16(22073), + 154: uint16(22103), + 155: uint16(22060), + 156: uint16(22093), + 157: uint16(22114), + 158: uint16(22105), + 159: uint16(22108), + 160: uint16(22092), + 161: uint16(22100), + 162: uint16(22150), + 163: uint16(22116), + 164: uint16(22129), + 165: uint16(22123), + 166: uint16(22139), + 167: uint16(22140), + 168: uint16(22149), + 169: uint16(22163), + 170: uint16(22191), + 171: uint16(22228), + 172: uint16(22231), + 173: uint16(22237), + 174: uint16(22241), + 175: uint16(22261), + 176: uint16(22251), + 177: uint16(22265), + 178: uint16(22271), + 179: uint16(22276), + 180: uint16(22282), + 181: uint16(22281), + 182: uint16(22300), + 183: uint16(24079), + 184: uint16(24089), + 185: uint16(24084), + 186: uint16(24081), + 187: uint16(24113), + 188: uint16(24123), + 189: uint16(24124), + }, + 96: { + 0: uint16(37189), + 1: uint16(37191), + 2: uint16(37192), + 3: uint16(37201), + 4: uint16(37203), + 5: uint16(37204), + 6: uint16(37205), + 7: uint16(37206), + 8: uint16(37208), + 9: uint16(37209), + 10: uint16(37211), + 11: uint16(37212), + 12: uint16(37215), + 13: uint16(37216), + 14: uint16(37222), + 15: uint16(37223), + 16: uint16(37224), + 17: uint16(37227), + 18: uint16(37229), + 19: uint16(37235), + 20: uint16(37242), + 21: uint16(37243), + 22: uint16(37244), + 23: uint16(37248), + 24: uint16(37249), + 25: uint16(37250), + 26: uint16(37251), + 27: uint16(37252), + 28: uint16(37254), + 29: uint16(37256), + 30: uint16(37258), + 31: uint16(37262), + 32: uint16(37263), + 33: uint16(37267), + 34: uint16(37268), + 35: uint16(37269), + 36: uint16(37270), + 37: uint16(37271), + 38: uint16(37272), + 39: uint16(37273), + 40: uint16(37276), + 41: uint16(37277), + 42: uint16(37278), + 43: uint16(37279), + 44: uint16(37280), + 45: uint16(37281), + 46: uint16(37284), + 47: uint16(37285), + 48: uint16(37286), + 49: uint16(37287), + 50: uint16(37288), + 51: uint16(37289), + 52: uint16(37291), + 53: uint16(37292), + 54: uint16(37296), + 55: uint16(37297), + 56: uint16(37298), + 57: uint16(37299), + 58: uint16(37302), + 59: uint16(37303), + 60: uint16(37304), + 61: uint16(37305), + 62: uint16(37307), + 63: uint16(37308), + 64: uint16(37309), + 65: uint16(37310), + 66: uint16(37311), + 67: uint16(37312), + 68: uint16(37313), + 69: uint16(37314), + 70: uint16(37315), + 71: uint16(37316), + 72: uint16(37317), + 73: uint16(37318), + 74: uint16(37320), + 75: uint16(37323), + 76: uint16(37328), + 77: uint16(37330), + 78: uint16(37331), + 79: uint16(37332), + 80: uint16(37333), + 81: uint16(37334), + 82: uint16(37335), + 83: uint16(37336), + 84: uint16(37337), + 85: uint16(37338), + 86: uint16(37339), + 87: uint16(37341), + 88: uint16(37342), + 89: uint16(37343), + 90: uint16(37344), + 91: uint16(37345), + 92: uint16(37346), + 93: uint16(37347), + 94: uint16(37348), + 95: uint16(37349), + 96: uint16(24119), + 97: uint16(24132), + 98: uint16(24148), + 99: uint16(24155), + 100: uint16(24158), + 101: uint16(24161), + 102: uint16(23692), + 103: uint16(23674), + 104: uint16(23693), + 105: uint16(23696), + 106: uint16(23702), + 107: uint16(23688), + 108: uint16(23704), + 109: uint16(23705), + 110: uint16(23697), + 111: uint16(23706), + 112: uint16(23708), + 113: uint16(23733), + 114: uint16(23714), + 115: uint16(23741), + 116: uint16(23724), + 117: uint16(23723), + 118: uint16(23729), + 119: uint16(23715), + 120: uint16(23745), + 121: uint16(23735), + 122: uint16(23748), + 123: uint16(23762), + 124: uint16(23780), + 125: uint16(23755), + 126: uint16(23781), + 127: uint16(23810), + 128: uint16(23811), + 129: uint16(23847), + 130: uint16(23846), + 131: uint16(23854), + 132: uint16(23844), + 133: uint16(23838), + 134: uint16(23814), + 135: uint16(23835), + 136: uint16(23896), + 137: uint16(23870), + 138: uint16(23860), + 139: uint16(23869), + 140: uint16(23916), + 141: uint16(23899), + 142: uint16(23919), + 143: uint16(23901), + 144: uint16(23915), + 145: uint16(23883), + 146: uint16(23882), + 147: uint16(23913), + 148: uint16(23924), + 149: uint16(23938), + 150: uint16(23961), + 151: uint16(23965), + 152: uint16(35955), + 153: uint16(23991), + 154: uint16(24005), + 155: uint16(24435), + 156: uint16(24439), + 157: uint16(24450), + 158: uint16(24455), + 159: uint16(24457), + 160: uint16(24460), + 161: uint16(24469), + 162: uint16(24473), + 163: uint16(24476), + 164: uint16(24488), + 165: uint16(24493), + 166: uint16(24501), + 167: uint16(24508), + 168: uint16(34914), + 169: uint16(24417), + 170: uint16(29357), + 171: uint16(29360), + 172: uint16(29364), + 173: uint16(29367), + 174: uint16(29368), + 175: uint16(29379), + 176: uint16(29377), + 177: uint16(29390), + 178: uint16(29389), + 179: uint16(29394), + 180: uint16(29416), + 181: uint16(29423), + 182: uint16(29417), + 183: uint16(29426), + 184: uint16(29428), + 185: uint16(29431), + 186: uint16(29441), + 187: uint16(29427), + 188: uint16(29443), + 189: uint16(29434), + }, + 97: { + 0: uint16(37350), + 1: uint16(37351), + 2: uint16(37352), + 3: uint16(37353), + 4: uint16(37354), + 5: uint16(37355), + 6: uint16(37356), + 7: uint16(37357), + 8: uint16(37358), + 9: uint16(37359), + 10: uint16(37360), + 11: uint16(37361), + 12: uint16(37362), + 13: uint16(37363), + 14: uint16(37364), + 15: uint16(37365), + 16: uint16(37366), + 17: uint16(37367), + 18: uint16(37368), + 19: uint16(37369), + 20: uint16(37370), + 21: uint16(37371), + 22: uint16(37372), + 23: uint16(37373), + 24: uint16(37374), + 25: uint16(37375), + 26: uint16(37376), + 27: uint16(37377), + 28: uint16(37378), + 29: uint16(37379), + 30: uint16(37380), + 31: uint16(37381), + 32: uint16(37382), + 33: uint16(37383), + 34: uint16(37384), + 35: uint16(37385), + 36: uint16(37386), + 37: uint16(37387), + 38: uint16(37388), + 39: uint16(37389), + 40: uint16(37390), + 41: uint16(37391), + 42: uint16(37392), + 43: uint16(37393), + 44: uint16(37394), + 45: uint16(37395), + 46: uint16(37396), + 47: uint16(37397), + 48: uint16(37398), + 49: uint16(37399), + 50: uint16(37400), + 51: uint16(37401), + 52: uint16(37402), + 53: uint16(37403), + 54: uint16(37404), + 55: uint16(37405), + 56: uint16(37406), + 57: uint16(37407), + 58: uint16(37408), + 59: uint16(37409), + 60: uint16(37410), + 61: uint16(37411), + 62: uint16(37412), + 63: uint16(37413), + 64: uint16(37414), + 65: uint16(37415), + 66: uint16(37416), + 67: uint16(37417), + 68: uint16(37418), + 69: uint16(37419), + 70: uint16(37420), + 71: uint16(37421), + 72: uint16(37422), + 73: uint16(37423), + 74: uint16(37424), + 75: uint16(37425), + 76: uint16(37426), + 77: uint16(37427), + 78: uint16(37428), + 79: uint16(37429), + 80: uint16(37430), + 81: uint16(37431), + 82: uint16(37432), + 83: uint16(37433), + 84: uint16(37434), + 85: uint16(37435), + 86: uint16(37436), + 87: uint16(37437), + 88: uint16(37438), + 89: uint16(37439), + 90: uint16(37440), + 91: uint16(37441), + 92: uint16(37442), + 93: uint16(37443), + 94: uint16(37444), + 95: uint16(37445), + 96: uint16(29435), + 97: uint16(29463), + 98: uint16(29459), + 99: uint16(29473), + 100: uint16(29450), + 101: uint16(29470), + 102: uint16(29469), + 103: uint16(29461), + 104: uint16(29474), + 105: uint16(29497), + 106: uint16(29477), + 107: uint16(29484), + 108: uint16(29496), + 109: uint16(29489), + 110: uint16(29520), + 111: uint16(29517), + 112: uint16(29527), + 113: uint16(29536), + 114: uint16(29548), + 115: uint16(29551), + 116: uint16(29566), + 117: uint16(33307), + 118: uint16(22821), + 119: uint16(39143), + 120: uint16(22820), + 121: uint16(22786), + 122: uint16(39267), + 123: uint16(39271), + 124: uint16(39272), + 125: uint16(39273), + 126: uint16(39274), + 127: uint16(39275), + 128: uint16(39276), + 129: uint16(39284), + 130: uint16(39287), + 131: uint16(39293), + 132: uint16(39296), + 133: uint16(39300), + 134: uint16(39303), + 135: uint16(39306), + 136: uint16(39309), + 137: uint16(39312), + 138: uint16(39313), + 139: uint16(39315), + 140: uint16(39316), + 141: uint16(39317), + 142: uint16(24192), + 143: uint16(24209), + 144: uint16(24203), + 145: uint16(24214), + 146: uint16(24229), + 147: uint16(24224), + 148: uint16(24249), + 149: uint16(24245), + 150: uint16(24254), + 151: uint16(24243), + 152: uint16(36179), + 153: uint16(24274), + 154: uint16(24273), + 155: uint16(24283), + 156: uint16(24296), + 157: uint16(24298), + 158: uint16(33210), + 159: uint16(24516), + 160: uint16(24521), + 161: uint16(24534), + 162: uint16(24527), + 163: uint16(24579), + 164: uint16(24558), + 165: uint16(24580), + 166: uint16(24545), + 167: uint16(24548), + 168: uint16(24574), + 169: uint16(24581), + 170: uint16(24582), + 171: uint16(24554), + 172: uint16(24557), + 173: uint16(24568), + 174: uint16(24601), + 175: uint16(24629), + 176: uint16(24614), + 177: uint16(24603), + 178: uint16(24591), + 179: uint16(24589), + 180: uint16(24617), + 181: uint16(24619), + 182: uint16(24586), + 183: uint16(24639), + 184: uint16(24609), + 185: uint16(24696), + 186: uint16(24697), + 187: uint16(24699), + 188: uint16(24698), + 189: uint16(24642), + }, + 98: { + 0: uint16(37446), + 1: uint16(37447), + 2: uint16(37448), + 3: uint16(37449), + 4: uint16(37450), + 5: uint16(37451), + 6: uint16(37452), + 7: uint16(37453), + 8: uint16(37454), + 9: uint16(37455), + 10: uint16(37456), + 11: uint16(37457), + 12: uint16(37458), + 13: uint16(37459), + 14: uint16(37460), + 15: uint16(37461), + 16: uint16(37462), + 17: uint16(37463), + 18: uint16(37464), + 19: uint16(37465), + 20: uint16(37466), + 21: uint16(37467), + 22: uint16(37468), + 23: uint16(37469), + 24: uint16(37470), + 25: uint16(37471), + 26: uint16(37472), + 27: uint16(37473), + 28: uint16(37474), + 29: uint16(37475), + 30: uint16(37476), + 31: uint16(37477), + 32: uint16(37478), + 33: uint16(37479), + 34: uint16(37480), + 35: uint16(37481), + 36: uint16(37482), + 37: uint16(37483), + 38: uint16(37484), + 39: uint16(37485), + 40: uint16(37486), + 41: uint16(37487), + 42: uint16(37488), + 43: uint16(37489), + 44: uint16(37490), + 45: uint16(37491), + 46: uint16(37493), + 47: uint16(37494), + 48: uint16(37495), + 49: uint16(37496), + 50: uint16(37497), + 51: uint16(37498), + 52: uint16(37499), + 53: uint16(37500), + 54: uint16(37501), + 55: uint16(37502), + 56: uint16(37503), + 57: uint16(37504), + 58: uint16(37505), + 59: uint16(37506), + 60: uint16(37507), + 61: uint16(37508), + 62: uint16(37509), + 63: uint16(37510), + 64: uint16(37511), + 65: uint16(37512), + 66: uint16(37513), + 67: uint16(37514), + 68: uint16(37515), + 69: uint16(37516), + 70: uint16(37517), + 71: uint16(37519), + 72: uint16(37520), + 73: uint16(37521), + 74: uint16(37522), + 75: uint16(37523), + 76: uint16(37524), + 77: uint16(37525), + 78: uint16(37526), + 79: uint16(37527), + 80: uint16(37528), + 81: uint16(37529), + 82: uint16(37530), + 83: uint16(37531), + 84: uint16(37532), + 85: uint16(37533), + 86: uint16(37534), + 87: uint16(37535), + 88: uint16(37536), + 89: uint16(37537), + 90: uint16(37538), + 91: uint16(37539), + 92: uint16(37540), + 93: uint16(37541), + 94: uint16(37542), + 95: uint16(37543), + 96: uint16(24682), + 97: uint16(24701), + 98: uint16(24726), + 99: uint16(24730), + 100: uint16(24749), + 101: uint16(24733), + 102: uint16(24707), + 103: uint16(24722), + 104: uint16(24716), + 105: uint16(24731), + 106: uint16(24812), + 107: uint16(24763), + 108: uint16(24753), + 109: uint16(24797), + 110: uint16(24792), + 111: uint16(24774), + 112: uint16(24794), + 113: uint16(24756), + 114: uint16(24864), + 115: uint16(24870), + 116: uint16(24853), + 117: uint16(24867), + 118: uint16(24820), + 119: uint16(24832), + 120: uint16(24846), + 121: uint16(24875), + 122: uint16(24906), + 123: uint16(24949), + 124: uint16(25004), + 125: uint16(24980), + 126: uint16(24999), + 127: uint16(25015), + 128: uint16(25044), + 129: uint16(25077), + 130: uint16(24541), + 131: uint16(38579), + 132: uint16(38377), + 133: uint16(38379), + 134: uint16(38385), + 135: uint16(38387), + 136: uint16(38389), + 137: uint16(38390), + 138: uint16(38396), + 139: uint16(38398), + 140: uint16(38403), + 141: uint16(38404), + 142: uint16(38406), + 143: uint16(38408), + 144: uint16(38410), + 145: uint16(38411), + 146: uint16(38412), + 147: uint16(38413), + 148: uint16(38415), + 149: uint16(38418), + 150: uint16(38421), + 151: uint16(38422), + 152: uint16(38423), + 153: uint16(38425), + 154: uint16(38426), + 155: uint16(20012), + 156: uint16(29247), + 157: uint16(25109), + 158: uint16(27701), + 159: uint16(27732), + 160: uint16(27740), + 161: uint16(27722), + 162: uint16(27811), + 163: uint16(27781), + 164: uint16(27792), + 165: uint16(27796), + 166: uint16(27788), + 167: uint16(27752), + 168: uint16(27753), + 169: uint16(27764), + 170: uint16(27766), + 171: uint16(27782), + 172: uint16(27817), + 173: uint16(27856), + 174: uint16(27860), + 175: uint16(27821), + 176: uint16(27895), + 177: uint16(27896), + 178: uint16(27889), + 179: uint16(27863), + 180: uint16(27826), + 181: uint16(27872), + 182: uint16(27862), + 183: uint16(27898), + 184: uint16(27883), + 185: uint16(27886), + 186: uint16(27825), + 187: uint16(27859), + 188: uint16(27887), + 189: uint16(27902), + }, + 99: { + 0: uint16(37544), + 1: uint16(37545), + 2: uint16(37546), + 3: uint16(37547), + 4: uint16(37548), + 5: uint16(37549), + 6: uint16(37551), + 7: uint16(37552), + 8: uint16(37553), + 9: uint16(37554), + 10: uint16(37555), + 11: uint16(37556), + 12: uint16(37557), + 13: uint16(37558), + 14: uint16(37559), + 15: uint16(37560), + 16: uint16(37561), + 17: uint16(37562), + 18: uint16(37563), + 19: uint16(37564), + 20: uint16(37565), + 21: uint16(37566), + 22: uint16(37567), + 23: uint16(37568), + 24: uint16(37569), + 25: uint16(37570), + 26: uint16(37571), + 27: uint16(37572), + 28: uint16(37573), + 29: uint16(37574), + 30: uint16(37575), + 31: uint16(37577), + 32: uint16(37578), + 33: uint16(37579), + 34: uint16(37580), + 35: uint16(37581), + 36: uint16(37582), + 37: uint16(37583), + 38: uint16(37584), + 39: uint16(37585), + 40: uint16(37586), + 41: uint16(37587), + 42: uint16(37588), + 43: uint16(37589), + 44: uint16(37590), + 45: uint16(37591), + 46: uint16(37592), + 47: uint16(37593), + 48: uint16(37594), + 49: uint16(37595), + 50: uint16(37596), + 51: uint16(37597), + 52: uint16(37598), + 53: uint16(37599), + 54: uint16(37600), + 55: uint16(37601), + 56: uint16(37602), + 57: uint16(37603), + 58: uint16(37604), + 59: uint16(37605), + 60: uint16(37606), + 61: uint16(37607), + 62: uint16(37608), + 63: uint16(37609), + 64: uint16(37610), + 65: uint16(37611), + 66: uint16(37612), + 67: uint16(37613), + 68: uint16(37614), + 69: uint16(37615), + 70: uint16(37616), + 71: uint16(37617), + 72: uint16(37618), + 73: uint16(37619), + 74: uint16(37620), + 75: uint16(37621), + 76: uint16(37622), + 77: uint16(37623), + 78: uint16(37624), + 79: uint16(37625), + 80: uint16(37626), + 81: uint16(37627), + 82: uint16(37628), + 83: uint16(37629), + 84: uint16(37630), + 85: uint16(37631), + 86: uint16(37632), + 87: uint16(37633), + 88: uint16(37634), + 89: uint16(37635), + 90: uint16(37636), + 91: uint16(37637), + 92: uint16(37638), + 93: uint16(37639), + 94: uint16(37640), + 95: uint16(37641), + 96: uint16(27961), + 97: uint16(27943), + 98: uint16(27916), + 99: uint16(27971), + 100: uint16(27976), + 101: uint16(27911), + 102: uint16(27908), + 103: uint16(27929), + 104: uint16(27918), + 105: uint16(27947), + 106: uint16(27981), + 107: uint16(27950), + 108: uint16(27957), + 109: uint16(27930), + 110: uint16(27983), + 111: uint16(27986), + 112: uint16(27988), + 113: uint16(27955), + 114: uint16(28049), + 115: uint16(28015), + 116: uint16(28062), + 117: uint16(28064), + 118: uint16(27998), + 119: uint16(28051), + 120: uint16(28052), + 121: uint16(27996), + 122: uint16(28000), + 123: uint16(28028), + 124: uint16(28003), + 125: uint16(28186), + 126: uint16(28103), + 127: uint16(28101), + 128: uint16(28126), + 129: uint16(28174), + 130: uint16(28095), + 131: uint16(28128), + 132: uint16(28177), + 133: uint16(28134), + 134: uint16(28125), + 135: uint16(28121), + 136: uint16(28182), + 137: uint16(28075), + 138: uint16(28172), + 139: uint16(28078), + 140: uint16(28203), + 141: uint16(28270), + 142: uint16(28238), + 143: uint16(28267), + 144: uint16(28338), + 145: uint16(28255), + 146: uint16(28294), + 147: uint16(28243), + 148: uint16(28244), + 149: uint16(28210), + 150: uint16(28197), + 151: uint16(28228), + 152: uint16(28383), + 153: uint16(28337), + 154: uint16(28312), + 155: uint16(28384), + 156: uint16(28461), + 157: uint16(28386), + 158: uint16(28325), + 159: uint16(28327), + 160: uint16(28349), + 161: uint16(28347), + 162: uint16(28343), + 163: uint16(28375), + 164: uint16(28340), + 165: uint16(28367), + 166: uint16(28303), + 167: uint16(28354), + 168: uint16(28319), + 169: uint16(28514), + 170: uint16(28486), + 171: uint16(28487), + 172: uint16(28452), + 173: uint16(28437), + 174: uint16(28409), + 175: uint16(28463), + 176: uint16(28470), + 177: uint16(28491), + 178: uint16(28532), + 179: uint16(28458), + 180: uint16(28425), + 181: uint16(28457), + 182: uint16(28553), + 183: uint16(28557), + 184: uint16(28556), + 185: uint16(28536), + 186: uint16(28530), + 187: uint16(28540), + 188: uint16(28538), + 189: uint16(28625), + }, + 100: { + 0: uint16(37642), + 1: uint16(37643), + 2: uint16(37644), + 3: uint16(37645), + 4: uint16(37646), + 5: uint16(37647), + 6: uint16(37648), + 7: uint16(37649), + 8: uint16(37650), + 9: uint16(37651), + 10: uint16(37652), + 11: uint16(37653), + 12: uint16(37654), + 13: uint16(37655), + 14: uint16(37656), + 15: uint16(37657), + 16: uint16(37658), + 17: uint16(37659), + 18: uint16(37660), + 19: uint16(37661), + 20: uint16(37662), + 21: uint16(37663), + 22: uint16(37664), + 23: uint16(37665), + 24: uint16(37666), + 25: uint16(37667), + 26: uint16(37668), + 27: uint16(37669), + 28: uint16(37670), + 29: uint16(37671), + 30: uint16(37672), + 31: uint16(37673), + 32: uint16(37674), + 33: uint16(37675), + 34: uint16(37676), + 35: uint16(37677), + 36: uint16(37678), + 37: uint16(37679), + 38: uint16(37680), + 39: uint16(37681), + 40: uint16(37682), + 41: uint16(37683), + 42: uint16(37684), + 43: uint16(37685), + 44: uint16(37686), + 45: uint16(37687), + 46: uint16(37688), + 47: uint16(37689), + 48: uint16(37690), + 49: uint16(37691), + 50: uint16(37692), + 51: uint16(37693), + 52: uint16(37695), + 53: uint16(37696), + 54: uint16(37697), + 55: uint16(37698), + 56: uint16(37699), + 57: uint16(37700), + 58: uint16(37701), + 59: uint16(37702), + 60: uint16(37703), + 61: uint16(37704), + 62: uint16(37705), + 63: uint16(37706), + 64: uint16(37707), + 65: uint16(37708), + 66: uint16(37709), + 67: uint16(37710), + 68: uint16(37711), + 69: uint16(37712), + 70: uint16(37713), + 71: uint16(37714), + 72: uint16(37715), + 73: uint16(37716), + 74: uint16(37717), + 75: uint16(37718), + 76: uint16(37719), + 77: uint16(37720), + 78: uint16(37721), + 79: uint16(37722), + 80: uint16(37723), + 81: uint16(37724), + 82: uint16(37725), + 83: uint16(37726), + 84: uint16(37727), + 85: uint16(37728), + 86: uint16(37729), + 87: uint16(37730), + 88: uint16(37731), + 89: uint16(37732), + 90: uint16(37733), + 91: uint16(37734), + 92: uint16(37735), + 93: uint16(37736), + 94: uint16(37737), + 95: uint16(37739), + 96: uint16(28617), + 97: uint16(28583), + 98: uint16(28601), + 99: uint16(28598), + 100: uint16(28610), + 101: uint16(28641), + 102: uint16(28654), + 103: uint16(28638), + 104: uint16(28640), + 105: uint16(28655), + 106: uint16(28698), + 107: uint16(28707), + 108: uint16(28699), + 109: uint16(28729), + 110: uint16(28725), + 111: uint16(28751), + 112: uint16(28766), + 113: uint16(23424), + 114: uint16(23428), + 115: uint16(23445), + 116: uint16(23443), + 117: uint16(23461), + 118: uint16(23480), + 119: uint16(29999), + 120: uint16(39582), + 121: uint16(25652), + 122: uint16(23524), + 123: uint16(23534), + 124: uint16(35120), + 125: uint16(23536), + 126: uint16(36423), + 127: uint16(35591), + 128: uint16(36790), + 129: uint16(36819), + 130: uint16(36821), + 131: uint16(36837), + 132: uint16(36846), + 133: uint16(36836), + 134: uint16(36841), + 135: uint16(36838), + 136: uint16(36851), + 137: uint16(36840), + 138: uint16(36869), + 139: uint16(36868), + 140: uint16(36875), + 141: uint16(36902), + 142: uint16(36881), + 143: uint16(36877), + 144: uint16(36886), + 145: uint16(36897), + 146: uint16(36917), + 147: uint16(36918), + 148: uint16(36909), + 149: uint16(36911), + 150: uint16(36932), + 151: uint16(36945), + 152: uint16(36946), + 153: uint16(36944), + 154: uint16(36968), + 155: uint16(36952), + 156: uint16(36962), + 157: uint16(36955), + 158: uint16(26297), + 159: uint16(36980), + 160: uint16(36989), + 161: uint16(36994), + 162: uint16(37000), + 163: uint16(36995), + 164: uint16(37003), + 165: uint16(24400), + 166: uint16(24407), + 167: uint16(24406), + 168: uint16(24408), + 169: uint16(23611), + 170: uint16(21675), + 171: uint16(23632), + 172: uint16(23641), + 173: uint16(23409), + 174: uint16(23651), + 175: uint16(23654), + 176: uint16(32700), + 177: uint16(24362), + 178: uint16(24361), + 179: uint16(24365), + 180: uint16(33396), + 181: uint16(24380), + 182: uint16(39739), + 183: uint16(23662), + 184: uint16(22913), + 185: uint16(22915), + 186: uint16(22925), + 187: uint16(22953), + 188: uint16(22954), + 189: uint16(22947), + }, + 101: { + 0: uint16(37740), + 1: uint16(37741), + 2: uint16(37742), + 3: uint16(37743), + 4: uint16(37744), + 5: uint16(37745), + 6: uint16(37746), + 7: uint16(37747), + 8: uint16(37748), + 9: uint16(37749), + 10: uint16(37750), + 11: uint16(37751), + 12: uint16(37752), + 13: uint16(37753), + 14: uint16(37754), + 15: uint16(37755), + 16: uint16(37756), + 17: uint16(37757), + 18: uint16(37758), + 19: uint16(37759), + 20: uint16(37760), + 21: uint16(37761), + 22: uint16(37762), + 23: uint16(37763), + 24: uint16(37764), + 25: uint16(37765), + 26: uint16(37766), + 27: uint16(37767), + 28: uint16(37768), + 29: uint16(37769), + 30: uint16(37770), + 31: uint16(37771), + 32: uint16(37772), + 33: uint16(37773), + 34: uint16(37774), + 35: uint16(37776), + 36: uint16(37777), + 37: uint16(37778), + 38: uint16(37779), + 39: uint16(37780), + 40: uint16(37781), + 41: uint16(37782), + 42: uint16(37783), + 43: uint16(37784), + 44: uint16(37785), + 45: uint16(37786), + 46: uint16(37787), + 47: uint16(37788), + 48: uint16(37789), + 49: uint16(37790), + 50: uint16(37791), + 51: uint16(37792), + 52: uint16(37793), + 53: uint16(37794), + 54: uint16(37795), + 55: uint16(37796), + 56: uint16(37797), + 57: uint16(37798), + 58: uint16(37799), + 59: uint16(37800), + 60: uint16(37801), + 61: uint16(37802), + 62: uint16(37803), + 63: uint16(37804), + 64: uint16(37805), + 65: uint16(37806), + 66: uint16(37807), + 67: uint16(37808), + 68: uint16(37809), + 69: uint16(37810), + 70: uint16(37811), + 71: uint16(37812), + 72: uint16(37813), + 73: uint16(37814), + 74: uint16(37815), + 75: uint16(37816), + 76: uint16(37817), + 77: uint16(37818), + 78: uint16(37819), + 79: uint16(37820), + 80: uint16(37821), + 81: uint16(37822), + 82: uint16(37823), + 83: uint16(37824), + 84: uint16(37825), + 85: uint16(37826), + 86: uint16(37827), + 87: uint16(37828), + 88: uint16(37829), + 89: uint16(37830), + 90: uint16(37831), + 91: uint16(37832), + 92: uint16(37833), + 93: uint16(37835), + 94: uint16(37836), + 95: uint16(37837), + 96: uint16(22935), + 97: uint16(22986), + 98: uint16(22955), + 99: uint16(22942), + 100: uint16(22948), + 101: uint16(22994), + 102: uint16(22962), + 103: uint16(22959), + 104: uint16(22999), + 105: uint16(22974), + 106: uint16(23045), + 107: uint16(23046), + 108: uint16(23005), + 109: uint16(23048), + 110: uint16(23011), + 111: uint16(23000), + 112: uint16(23033), + 113: uint16(23052), + 114: uint16(23049), + 115: uint16(23090), + 116: uint16(23092), + 117: uint16(23057), + 118: uint16(23075), + 119: uint16(23059), + 120: uint16(23104), + 121: uint16(23143), + 122: uint16(23114), + 123: uint16(23125), + 124: uint16(23100), + 125: uint16(23138), + 126: uint16(23157), + 127: uint16(33004), + 128: uint16(23210), + 129: uint16(23195), + 130: uint16(23159), + 131: uint16(23162), + 132: uint16(23230), + 133: uint16(23275), + 134: uint16(23218), + 135: uint16(23250), + 136: uint16(23252), + 137: uint16(23224), + 138: uint16(23264), + 139: uint16(23267), + 140: uint16(23281), + 141: uint16(23254), + 142: uint16(23270), + 143: uint16(23256), + 144: uint16(23260), + 145: uint16(23305), + 146: uint16(23319), + 147: uint16(23318), + 148: uint16(23346), + 149: uint16(23351), + 150: uint16(23360), + 151: uint16(23573), + 152: uint16(23580), + 153: uint16(23386), + 154: uint16(23397), + 155: uint16(23411), + 156: uint16(23377), + 157: uint16(23379), + 158: uint16(23394), + 159: uint16(39541), + 160: uint16(39543), + 161: uint16(39544), + 162: uint16(39546), + 163: uint16(39551), + 164: uint16(39549), + 165: uint16(39552), + 166: uint16(39553), + 167: uint16(39557), + 168: uint16(39560), + 169: uint16(39562), + 170: uint16(39568), + 171: uint16(39570), + 172: uint16(39571), + 173: uint16(39574), + 174: uint16(39576), + 175: uint16(39579), + 176: uint16(39580), + 177: uint16(39581), + 178: uint16(39583), + 179: uint16(39584), + 180: uint16(39586), + 181: uint16(39587), + 182: uint16(39589), + 183: uint16(39591), + 184: uint16(32415), + 185: uint16(32417), + 186: uint16(32419), + 187: uint16(32421), + 188: uint16(32424), + 189: uint16(32425), + }, + 102: { + 0: uint16(37838), + 1: uint16(37839), + 2: uint16(37840), + 3: uint16(37841), + 4: uint16(37842), + 5: uint16(37843), + 6: uint16(37844), + 7: uint16(37845), + 8: uint16(37847), + 9: uint16(37848), + 10: uint16(37849), + 11: uint16(37850), + 12: uint16(37851), + 13: uint16(37852), + 14: uint16(37853), + 15: uint16(37854), + 16: uint16(37855), + 17: uint16(37856), + 18: uint16(37857), + 19: uint16(37858), + 20: uint16(37859), + 21: uint16(37860), + 22: uint16(37861), + 23: uint16(37862), + 24: uint16(37863), + 25: uint16(37864), + 26: uint16(37865), + 27: uint16(37866), + 28: uint16(37867), + 29: uint16(37868), + 30: uint16(37869), + 31: uint16(37870), + 32: uint16(37871), + 33: uint16(37872), + 34: uint16(37873), + 35: uint16(37874), + 36: uint16(37875), + 37: uint16(37876), + 38: uint16(37877), + 39: uint16(37878), + 40: uint16(37879), + 41: uint16(37880), + 42: uint16(37881), + 43: uint16(37882), + 44: uint16(37883), + 45: uint16(37884), + 46: uint16(37885), + 47: uint16(37886), + 48: uint16(37887), + 49: uint16(37888), + 50: uint16(37889), + 51: uint16(37890), + 52: uint16(37891), + 53: uint16(37892), + 54: uint16(37893), + 55: uint16(37894), + 56: uint16(37895), + 57: uint16(37896), + 58: uint16(37897), + 59: uint16(37898), + 60: uint16(37899), + 61: uint16(37900), + 62: uint16(37901), + 63: uint16(37902), + 64: uint16(37903), + 65: uint16(37904), + 66: uint16(37905), + 67: uint16(37906), + 68: uint16(37907), + 69: uint16(37908), + 70: uint16(37909), + 71: uint16(37910), + 72: uint16(37911), + 73: uint16(37912), + 74: uint16(37913), + 75: uint16(37914), + 76: uint16(37915), + 77: uint16(37916), + 78: uint16(37917), + 79: uint16(37918), + 80: uint16(37919), + 81: uint16(37920), + 82: uint16(37921), + 83: uint16(37922), + 84: uint16(37923), + 85: uint16(37924), + 86: uint16(37925), + 87: uint16(37926), + 88: uint16(37927), + 89: uint16(37928), + 90: uint16(37929), + 91: uint16(37930), + 92: uint16(37931), + 93: uint16(37932), + 94: uint16(37933), + 95: uint16(37934), + 96: uint16(32429), + 97: uint16(32432), + 98: uint16(32446), + 99: uint16(32448), + 100: uint16(32449), + 101: uint16(32450), + 102: uint16(32457), + 103: uint16(32459), + 104: uint16(32460), + 105: uint16(32464), + 106: uint16(32468), + 107: uint16(32471), + 108: uint16(32475), + 109: uint16(32480), + 110: uint16(32481), + 111: uint16(32488), + 112: uint16(32491), + 113: uint16(32494), + 114: uint16(32495), + 115: uint16(32497), + 116: uint16(32498), + 117: uint16(32525), + 118: uint16(32502), + 119: uint16(32506), + 120: uint16(32507), + 121: uint16(32510), + 122: uint16(32513), + 123: uint16(32514), + 124: uint16(32515), + 125: uint16(32519), + 126: uint16(32520), + 127: uint16(32523), + 128: uint16(32524), + 129: uint16(32527), + 130: uint16(32529), + 131: uint16(32530), + 132: uint16(32535), + 133: uint16(32537), + 134: uint16(32540), + 135: uint16(32539), + 136: uint16(32543), + 137: uint16(32545), + 138: uint16(32546), + 139: uint16(32547), + 140: uint16(32548), + 141: uint16(32549), + 142: uint16(32550), + 143: uint16(32551), + 144: uint16(32554), + 145: uint16(32555), + 146: uint16(32556), + 147: uint16(32557), + 148: uint16(32559), + 149: uint16(32560), + 150: uint16(32561), + 151: uint16(32562), + 152: uint16(32563), + 153: uint16(32565), + 154: uint16(24186), + 155: uint16(30079), + 156: uint16(24027), + 157: uint16(30014), + 158: uint16(37013), + 159: uint16(29582), + 160: uint16(29585), + 161: uint16(29614), + 162: uint16(29602), + 163: uint16(29599), + 164: uint16(29647), + 165: uint16(29634), + 166: uint16(29649), + 167: uint16(29623), + 168: uint16(29619), + 169: uint16(29632), + 170: uint16(29641), + 171: uint16(29640), + 172: uint16(29669), + 173: uint16(29657), + 174: uint16(39036), + 175: uint16(29706), + 176: uint16(29673), + 177: uint16(29671), + 178: uint16(29662), + 179: uint16(29626), + 180: uint16(29682), + 181: uint16(29711), + 182: uint16(29738), + 183: uint16(29787), + 184: uint16(29734), + 185: uint16(29733), + 186: uint16(29736), + 187: uint16(29744), + 188: uint16(29742), + 189: uint16(29740), + }, + 103: { + 0: uint16(37935), + 1: uint16(37936), + 2: uint16(37937), + 3: uint16(37938), + 4: uint16(37939), + 5: uint16(37940), + 6: uint16(37941), + 7: uint16(37942), + 8: uint16(37943), + 9: uint16(37944), + 10: uint16(37945), + 11: uint16(37946), + 12: uint16(37947), + 13: uint16(37948), + 14: uint16(37949), + 15: uint16(37951), + 16: uint16(37952), + 17: uint16(37953), + 18: uint16(37954), + 19: uint16(37955), + 20: uint16(37956), + 21: uint16(37957), + 22: uint16(37958), + 23: uint16(37959), + 24: uint16(37960), + 25: uint16(37961), + 26: uint16(37962), + 27: uint16(37963), + 28: uint16(37964), + 29: uint16(37965), + 30: uint16(37966), + 31: uint16(37967), + 32: uint16(37968), + 33: uint16(37969), + 34: uint16(37970), + 35: uint16(37971), + 36: uint16(37972), + 37: uint16(37973), + 38: uint16(37974), + 39: uint16(37975), + 40: uint16(37976), + 41: uint16(37977), + 42: uint16(37978), + 43: uint16(37979), + 44: uint16(37980), + 45: uint16(37981), + 46: uint16(37982), + 47: uint16(37983), + 48: uint16(37984), + 49: uint16(37985), + 50: uint16(37986), + 51: uint16(37987), + 52: uint16(37988), + 53: uint16(37989), + 54: uint16(37990), + 55: uint16(37991), + 56: uint16(37992), + 57: uint16(37993), + 58: uint16(37994), + 59: uint16(37996), + 60: uint16(37997), + 61: uint16(37998), + 62: uint16(37999), + 63: uint16(38000), + 64: uint16(38001), + 65: uint16(38002), + 66: uint16(38003), + 67: uint16(38004), + 68: uint16(38005), + 69: uint16(38006), + 70: uint16(38007), + 71: uint16(38008), + 72: uint16(38009), + 73: uint16(38010), + 74: uint16(38011), + 75: uint16(38012), + 76: uint16(38013), + 77: uint16(38014), + 78: uint16(38015), + 79: uint16(38016), + 80: uint16(38017), + 81: uint16(38018), + 82: uint16(38019), + 83: uint16(38020), + 84: uint16(38033), + 85: uint16(38038), + 86: uint16(38040), + 87: uint16(38087), + 88: uint16(38095), + 89: uint16(38099), + 90: uint16(38100), + 91: uint16(38106), + 92: uint16(38118), + 93: uint16(38139), + 94: uint16(38172), + 95: uint16(38176), + 96: uint16(29723), + 97: uint16(29722), + 98: uint16(29761), + 99: uint16(29788), + 100: uint16(29783), + 101: uint16(29781), + 102: uint16(29785), + 103: uint16(29815), + 104: uint16(29805), + 105: uint16(29822), + 106: uint16(29852), + 107: uint16(29838), + 108: uint16(29824), + 109: uint16(29825), + 110: uint16(29831), + 111: uint16(29835), + 112: uint16(29854), + 113: uint16(29864), + 114: uint16(29865), + 115: uint16(29840), + 116: uint16(29863), + 117: uint16(29906), + 118: uint16(29882), + 119: uint16(38890), + 120: uint16(38891), + 121: uint16(38892), + 122: uint16(26444), + 123: uint16(26451), + 124: uint16(26462), + 125: uint16(26440), + 126: uint16(26473), + 127: uint16(26533), + 128: uint16(26503), + 129: uint16(26474), + 130: uint16(26483), + 131: uint16(26520), + 132: uint16(26535), + 133: uint16(26485), + 134: uint16(26536), + 135: uint16(26526), + 136: uint16(26541), + 137: uint16(26507), + 138: uint16(26487), + 139: uint16(26492), + 140: uint16(26608), + 141: uint16(26633), + 142: uint16(26584), + 143: uint16(26634), + 144: uint16(26601), + 145: uint16(26544), + 146: uint16(26636), + 147: uint16(26585), + 148: uint16(26549), + 149: uint16(26586), + 150: uint16(26547), + 151: uint16(26589), + 152: uint16(26624), + 153: uint16(26563), + 154: uint16(26552), + 155: uint16(26594), + 156: uint16(26638), + 157: uint16(26561), + 158: uint16(26621), + 159: uint16(26674), + 160: uint16(26675), + 161: uint16(26720), + 162: uint16(26721), + 163: uint16(26702), + 164: uint16(26722), + 165: uint16(26692), + 166: uint16(26724), + 167: uint16(26755), + 168: uint16(26653), + 169: uint16(26709), + 170: uint16(26726), + 171: uint16(26689), + 172: uint16(26727), + 173: uint16(26688), + 174: uint16(26686), + 175: uint16(26698), + 176: uint16(26697), + 177: uint16(26665), + 178: uint16(26805), + 179: uint16(26767), + 180: uint16(26740), + 181: uint16(26743), + 182: uint16(26771), + 183: uint16(26731), + 184: uint16(26818), + 185: uint16(26990), + 186: uint16(26876), + 187: uint16(26911), + 188: uint16(26912), + 189: uint16(26873), + }, + 104: { + 0: uint16(38183), + 1: uint16(38195), + 2: uint16(38205), + 3: uint16(38211), + 4: uint16(38216), + 5: uint16(38219), + 6: uint16(38229), + 7: uint16(38234), + 8: uint16(38240), + 9: uint16(38254), + 10: uint16(38260), + 11: uint16(38261), + 12: uint16(38263), + 13: uint16(38264), + 14: uint16(38265), + 15: uint16(38266), + 16: uint16(38267), + 17: uint16(38268), + 18: uint16(38269), + 19: uint16(38270), + 20: uint16(38272), + 21: uint16(38273), + 22: uint16(38274), + 23: uint16(38275), + 24: uint16(38276), + 25: uint16(38277), + 26: uint16(38278), + 27: uint16(38279), + 28: uint16(38280), + 29: uint16(38281), + 30: uint16(38282), + 31: uint16(38283), + 32: uint16(38284), + 33: uint16(38285), + 34: uint16(38286), + 35: uint16(38287), + 36: uint16(38288), + 37: uint16(38289), + 38: uint16(38290), + 39: uint16(38291), + 40: uint16(38292), + 41: uint16(38293), + 42: uint16(38294), + 43: uint16(38295), + 44: uint16(38296), + 45: uint16(38297), + 46: uint16(38298), + 47: uint16(38299), + 48: uint16(38300), + 49: uint16(38301), + 50: uint16(38302), + 51: uint16(38303), + 52: uint16(38304), + 53: uint16(38305), + 54: uint16(38306), + 55: uint16(38307), + 56: uint16(38308), + 57: uint16(38309), + 58: uint16(38310), + 59: uint16(38311), + 60: uint16(38312), + 61: uint16(38313), + 62: uint16(38314), + 63: uint16(38315), + 64: uint16(38316), + 65: uint16(38317), + 66: uint16(38318), + 67: uint16(38319), + 68: uint16(38320), + 69: uint16(38321), + 70: uint16(38322), + 71: uint16(38323), + 72: uint16(38324), + 73: uint16(38325), + 74: uint16(38326), + 75: uint16(38327), + 76: uint16(38328), + 77: uint16(38329), + 78: uint16(38330), + 79: uint16(38331), + 80: uint16(38332), + 81: uint16(38333), + 82: uint16(38334), + 83: uint16(38335), + 84: uint16(38336), + 85: uint16(38337), + 86: uint16(38338), + 87: uint16(38339), + 88: uint16(38340), + 89: uint16(38341), + 90: uint16(38342), + 91: uint16(38343), + 92: uint16(38344), + 93: uint16(38345), + 94: uint16(38346), + 95: uint16(38347), + 96: uint16(26916), + 97: uint16(26864), + 98: uint16(26891), + 99: uint16(26881), + 100: uint16(26967), + 101: uint16(26851), + 102: uint16(26896), + 103: uint16(26993), + 104: uint16(26937), + 105: uint16(26976), + 106: uint16(26946), + 107: uint16(26973), + 108: uint16(27012), + 109: uint16(26987), + 110: uint16(27008), + 111: uint16(27032), + 112: uint16(27000), + 113: uint16(26932), + 114: uint16(27084), + 115: uint16(27015), + 116: uint16(27016), + 117: uint16(27086), + 118: uint16(27017), + 119: uint16(26982), + 120: uint16(26979), + 121: uint16(27001), + 122: uint16(27035), + 123: uint16(27047), + 124: uint16(27067), + 125: uint16(27051), + 126: uint16(27053), + 127: uint16(27092), + 128: uint16(27057), + 129: uint16(27073), + 130: uint16(27082), + 131: uint16(27103), + 132: uint16(27029), + 133: uint16(27104), + 134: uint16(27021), + 135: uint16(27135), + 136: uint16(27183), + 137: uint16(27117), + 138: uint16(27159), + 139: uint16(27160), + 140: uint16(27237), + 141: uint16(27122), + 142: uint16(27204), + 143: uint16(27198), + 144: uint16(27296), + 145: uint16(27216), + 146: uint16(27227), + 147: uint16(27189), + 148: uint16(27278), + 149: uint16(27257), + 150: uint16(27197), + 151: uint16(27176), + 152: uint16(27224), + 153: uint16(27260), + 154: uint16(27281), + 155: uint16(27280), + 156: uint16(27305), + 157: uint16(27287), + 158: uint16(27307), + 159: uint16(29495), + 160: uint16(29522), + 161: uint16(27521), + 162: uint16(27522), + 163: uint16(27527), + 164: uint16(27524), + 165: uint16(27538), + 166: uint16(27539), + 167: uint16(27533), + 168: uint16(27546), + 169: uint16(27547), + 170: uint16(27553), + 171: uint16(27562), + 172: uint16(36715), + 173: uint16(36717), + 174: uint16(36721), + 175: uint16(36722), + 176: uint16(36723), + 177: uint16(36725), + 178: uint16(36726), + 179: uint16(36728), + 180: uint16(36727), + 181: uint16(36729), + 182: uint16(36730), + 183: uint16(36732), + 184: uint16(36734), + 185: uint16(36737), + 186: uint16(36738), + 187: uint16(36740), + 188: uint16(36743), + 189: uint16(36747), + }, + 105: { + 0: uint16(38348), + 1: uint16(38349), + 2: uint16(38350), + 3: uint16(38351), + 4: uint16(38352), + 5: uint16(38353), + 6: uint16(38354), + 7: uint16(38355), + 8: uint16(38356), + 9: uint16(38357), + 10: uint16(38358), + 11: uint16(38359), + 12: uint16(38360), + 13: uint16(38361), + 14: uint16(38362), + 15: uint16(38363), + 16: uint16(38364), + 17: uint16(38365), + 18: uint16(38366), + 19: uint16(38367), + 20: uint16(38368), + 21: uint16(38369), + 22: uint16(38370), + 23: uint16(38371), + 24: uint16(38372), + 25: uint16(38373), + 26: uint16(38374), + 27: uint16(38375), + 28: uint16(38380), + 29: uint16(38399), + 30: uint16(38407), + 31: uint16(38419), + 32: uint16(38424), + 33: uint16(38427), + 34: uint16(38430), + 35: uint16(38432), + 36: uint16(38435), + 37: uint16(38436), + 38: uint16(38437), + 39: uint16(38438), + 40: uint16(38439), + 41: uint16(38440), + 42: uint16(38441), + 43: uint16(38443), + 44: uint16(38444), + 45: uint16(38445), + 46: uint16(38447), + 47: uint16(38448), + 48: uint16(38455), + 49: uint16(38456), + 50: uint16(38457), + 51: uint16(38458), + 52: uint16(38462), + 53: uint16(38465), + 54: uint16(38467), + 55: uint16(38474), + 56: uint16(38478), + 57: uint16(38479), + 58: uint16(38481), + 59: uint16(38482), + 60: uint16(38483), + 61: uint16(38486), + 62: uint16(38487), + 63: uint16(38488), + 64: uint16(38489), + 65: uint16(38490), + 66: uint16(38492), + 67: uint16(38493), + 68: uint16(38494), + 69: uint16(38496), + 70: uint16(38499), + 71: uint16(38501), + 72: uint16(38502), + 73: uint16(38507), + 74: uint16(38509), + 75: uint16(38510), + 76: uint16(38511), + 77: uint16(38512), + 78: uint16(38513), + 79: uint16(38515), + 80: uint16(38520), + 81: uint16(38521), + 82: uint16(38522), + 83: uint16(38523), + 84: uint16(38524), + 85: uint16(38525), + 86: uint16(38526), + 87: uint16(38527), + 88: uint16(38528), + 89: uint16(38529), + 90: uint16(38530), + 91: uint16(38531), + 92: uint16(38532), + 93: uint16(38535), + 94: uint16(38537), + 95: uint16(38538), + 96: uint16(36749), + 97: uint16(36750), + 98: uint16(36751), + 99: uint16(36760), + 100: uint16(36762), + 101: uint16(36558), + 102: uint16(25099), + 103: uint16(25111), + 104: uint16(25115), + 105: uint16(25119), + 106: uint16(25122), + 107: uint16(25121), + 108: uint16(25125), + 109: uint16(25124), + 110: uint16(25132), + 111: uint16(33255), + 112: uint16(29935), + 113: uint16(29940), + 114: uint16(29951), + 115: uint16(29967), + 116: uint16(29969), + 117: uint16(29971), + 118: uint16(25908), + 119: uint16(26094), + 120: uint16(26095), + 121: uint16(26096), + 122: uint16(26122), + 123: uint16(26137), + 124: uint16(26482), + 125: uint16(26115), + 126: uint16(26133), + 127: uint16(26112), + 128: uint16(28805), + 129: uint16(26359), + 130: uint16(26141), + 131: uint16(26164), + 132: uint16(26161), + 133: uint16(26166), + 134: uint16(26165), + 135: uint16(32774), + 136: uint16(26207), + 137: uint16(26196), + 138: uint16(26177), + 139: uint16(26191), + 140: uint16(26198), + 141: uint16(26209), + 142: uint16(26199), + 143: uint16(26231), + 144: uint16(26244), + 145: uint16(26252), + 146: uint16(26279), + 147: uint16(26269), + 148: uint16(26302), + 149: uint16(26331), + 150: uint16(26332), + 151: uint16(26342), + 152: uint16(26345), + 153: uint16(36146), + 154: uint16(36147), + 155: uint16(36150), + 156: uint16(36155), + 157: uint16(36157), + 158: uint16(36160), + 159: uint16(36165), + 160: uint16(36166), + 161: uint16(36168), + 162: uint16(36169), + 163: uint16(36167), + 164: uint16(36173), + 165: uint16(36181), + 166: uint16(36185), + 167: uint16(35271), + 168: uint16(35274), + 169: uint16(35275), + 170: uint16(35276), + 171: uint16(35278), + 172: uint16(35279), + 173: uint16(35280), + 174: uint16(35281), + 175: uint16(29294), + 176: uint16(29343), + 177: uint16(29277), + 178: uint16(29286), + 179: uint16(29295), + 180: uint16(29310), + 181: uint16(29311), + 182: uint16(29316), + 183: uint16(29323), + 184: uint16(29325), + 185: uint16(29327), + 186: uint16(29330), + 187: uint16(25352), + 188: uint16(25394), + 189: uint16(25520), + }, + 106: { + 0: uint16(38540), + 1: uint16(38542), + 2: uint16(38545), + 3: uint16(38546), + 4: uint16(38547), + 5: uint16(38549), + 6: uint16(38550), + 7: uint16(38554), + 8: uint16(38555), + 9: uint16(38557), + 10: uint16(38558), + 11: uint16(38559), + 12: uint16(38560), + 13: uint16(38561), + 14: uint16(38562), + 15: uint16(38563), + 16: uint16(38564), + 17: uint16(38565), + 18: uint16(38566), + 19: uint16(38568), + 20: uint16(38569), + 21: uint16(38570), + 22: uint16(38571), + 23: uint16(38572), + 24: uint16(38573), + 25: uint16(38574), + 26: uint16(38575), + 27: uint16(38577), + 28: uint16(38578), + 29: uint16(38580), + 30: uint16(38581), + 31: uint16(38583), + 32: uint16(38584), + 33: uint16(38586), + 34: uint16(38587), + 35: uint16(38591), + 36: uint16(38594), + 37: uint16(38595), + 38: uint16(38600), + 39: uint16(38602), + 40: uint16(38603), + 41: uint16(38608), + 42: uint16(38609), + 43: uint16(38611), + 44: uint16(38612), + 45: uint16(38614), + 46: uint16(38615), + 47: uint16(38616), + 48: uint16(38617), + 49: uint16(38618), + 50: uint16(38619), + 51: uint16(38620), + 52: uint16(38621), + 53: uint16(38622), + 54: uint16(38623), + 55: uint16(38625), + 56: uint16(38626), + 57: uint16(38627), + 58: uint16(38628), + 59: uint16(38629), + 60: uint16(38630), + 61: uint16(38631), + 62: uint16(38635), + 63: uint16(38636), + 64: uint16(38637), + 65: uint16(38638), + 66: uint16(38640), + 67: uint16(38641), + 68: uint16(38642), + 69: uint16(38644), + 70: uint16(38645), + 71: uint16(38648), + 72: uint16(38650), + 73: uint16(38651), + 74: uint16(38652), + 75: uint16(38653), + 76: uint16(38655), + 77: uint16(38658), + 78: uint16(38659), + 79: uint16(38661), + 80: uint16(38666), + 81: uint16(38667), + 82: uint16(38668), + 83: uint16(38672), + 84: uint16(38673), + 85: uint16(38674), + 86: uint16(38676), + 87: uint16(38677), + 88: uint16(38679), + 89: uint16(38680), + 90: uint16(38681), + 91: uint16(38682), + 92: uint16(38683), + 93: uint16(38685), + 94: uint16(38687), + 95: uint16(38688), + 96: uint16(25663), + 97: uint16(25816), + 98: uint16(32772), + 99: uint16(27626), + 100: uint16(27635), + 101: uint16(27645), + 102: uint16(27637), + 103: uint16(27641), + 104: uint16(27653), + 105: uint16(27655), + 106: uint16(27654), + 107: uint16(27661), + 108: uint16(27669), + 109: uint16(27672), + 110: uint16(27673), + 111: uint16(27674), + 112: uint16(27681), + 113: uint16(27689), + 114: uint16(27684), + 115: uint16(27690), + 116: uint16(27698), + 117: uint16(25909), + 118: uint16(25941), + 119: uint16(25963), + 120: uint16(29261), + 121: uint16(29266), + 122: uint16(29270), + 123: uint16(29232), + 124: uint16(34402), + 125: uint16(21014), + 126: uint16(32927), + 127: uint16(32924), + 128: uint16(32915), + 129: uint16(32956), + 130: uint16(26378), + 131: uint16(32957), + 132: uint16(32945), + 133: uint16(32939), + 134: uint16(32941), + 135: uint16(32948), + 136: uint16(32951), + 137: uint16(32999), + 138: uint16(33000), + 139: uint16(33001), + 140: uint16(33002), + 141: uint16(32987), + 142: uint16(32962), + 143: uint16(32964), + 144: uint16(32985), + 145: uint16(32973), + 146: uint16(32983), + 147: uint16(26384), + 148: uint16(32989), + 149: uint16(33003), + 150: uint16(33009), + 151: uint16(33012), + 152: uint16(33005), + 153: uint16(33037), + 154: uint16(33038), + 155: uint16(33010), + 156: uint16(33020), + 157: uint16(26389), + 158: uint16(33042), + 159: uint16(35930), + 160: uint16(33078), + 161: uint16(33054), + 162: uint16(33068), + 163: uint16(33048), + 164: uint16(33074), + 165: uint16(33096), + 166: uint16(33100), + 167: uint16(33107), + 168: uint16(33140), + 169: uint16(33113), + 170: uint16(33114), + 171: uint16(33137), + 172: uint16(33120), + 173: uint16(33129), + 174: uint16(33148), + 175: uint16(33149), + 176: uint16(33133), + 177: uint16(33127), + 178: uint16(22605), + 179: uint16(23221), + 180: uint16(33160), + 181: uint16(33154), + 182: uint16(33169), + 183: uint16(28373), + 184: uint16(33187), + 185: uint16(33194), + 186: uint16(33228), + 187: uint16(26406), + 188: uint16(33226), + 189: uint16(33211), + }, + 107: { + 0: uint16(38689), + 1: uint16(38690), + 2: uint16(38691), + 3: uint16(38692), + 4: uint16(38693), + 5: uint16(38694), + 6: uint16(38695), + 7: uint16(38696), + 8: uint16(38697), + 9: uint16(38699), + 10: uint16(38700), + 11: uint16(38702), + 12: uint16(38703), + 13: uint16(38705), + 14: uint16(38707), + 15: uint16(38708), + 16: uint16(38709), + 17: uint16(38710), + 18: uint16(38711), + 19: uint16(38714), + 20: uint16(38715), + 21: uint16(38716), + 22: uint16(38717), + 23: uint16(38719), + 24: uint16(38720), + 25: uint16(38721), + 26: uint16(38722), + 27: uint16(38723), + 28: uint16(38724), + 29: uint16(38725), + 30: uint16(38726), + 31: uint16(38727), + 32: uint16(38728), + 33: uint16(38729), + 34: uint16(38730), + 35: uint16(38731), + 36: uint16(38732), + 37: uint16(38733), + 38: uint16(38734), + 39: uint16(38735), + 40: uint16(38736), + 41: uint16(38737), + 42: uint16(38740), + 43: uint16(38741), + 44: uint16(38743), + 45: uint16(38744), + 46: uint16(38746), + 47: uint16(38748), + 48: uint16(38749), + 49: uint16(38751), + 50: uint16(38755), + 51: uint16(38756), + 52: uint16(38758), + 53: uint16(38759), + 54: uint16(38760), + 55: uint16(38762), + 56: uint16(38763), + 57: uint16(38764), + 58: uint16(38765), + 59: uint16(38766), + 60: uint16(38767), + 61: uint16(38768), + 62: uint16(38769), + 63: uint16(38770), + 64: uint16(38773), + 65: uint16(38775), + 66: uint16(38776), + 67: uint16(38777), + 68: uint16(38778), + 69: uint16(38779), + 70: uint16(38781), + 71: uint16(38782), + 72: uint16(38783), + 73: uint16(38784), + 74: uint16(38785), + 75: uint16(38786), + 76: uint16(38787), + 77: uint16(38788), + 78: uint16(38790), + 79: uint16(38791), + 80: uint16(38792), + 81: uint16(38793), + 82: uint16(38794), + 83: uint16(38796), + 84: uint16(38798), + 85: uint16(38799), + 86: uint16(38800), + 87: uint16(38803), + 88: uint16(38805), + 89: uint16(38806), + 90: uint16(38807), + 91: uint16(38809), + 92: uint16(38810), + 93: uint16(38811), + 94: uint16(38812), + 95: uint16(38813), + 96: uint16(33217), + 97: uint16(33190), + 98: uint16(27428), + 99: uint16(27447), + 100: uint16(27449), + 101: uint16(27459), + 102: uint16(27462), + 103: uint16(27481), + 104: uint16(39121), + 105: uint16(39122), + 106: uint16(39123), + 107: uint16(39125), + 108: uint16(39129), + 109: uint16(39130), + 110: uint16(27571), + 111: uint16(24384), + 112: uint16(27586), + 113: uint16(35315), + 114: uint16(26000), + 115: uint16(40785), + 116: uint16(26003), + 117: uint16(26044), + 118: uint16(26054), + 119: uint16(26052), + 120: uint16(26051), + 121: uint16(26060), + 122: uint16(26062), + 123: uint16(26066), + 124: uint16(26070), + 125: uint16(28800), + 126: uint16(28828), + 127: uint16(28822), + 128: uint16(28829), + 129: uint16(28859), + 130: uint16(28864), + 131: uint16(28855), + 132: uint16(28843), + 133: uint16(28849), + 134: uint16(28904), + 135: uint16(28874), + 136: uint16(28944), + 137: uint16(28947), + 138: uint16(28950), + 139: uint16(28975), + 140: uint16(28977), + 141: uint16(29043), + 142: uint16(29020), + 143: uint16(29032), + 144: uint16(28997), + 145: uint16(29042), + 146: uint16(29002), + 147: uint16(29048), + 148: uint16(29050), + 149: uint16(29080), + 150: uint16(29107), + 151: uint16(29109), + 152: uint16(29096), + 153: uint16(29088), + 154: uint16(29152), + 155: uint16(29140), + 156: uint16(29159), + 157: uint16(29177), + 158: uint16(29213), + 159: uint16(29224), + 160: uint16(28780), + 161: uint16(28952), + 162: uint16(29030), + 163: uint16(29113), + 164: uint16(25150), + 165: uint16(25149), + 166: uint16(25155), + 167: uint16(25160), + 168: uint16(25161), + 169: uint16(31035), + 170: uint16(31040), + 171: uint16(31046), + 172: uint16(31049), + 173: uint16(31067), + 174: uint16(31068), + 175: uint16(31059), + 176: uint16(31066), + 177: uint16(31074), + 178: uint16(31063), + 179: uint16(31072), + 180: uint16(31087), + 181: uint16(31079), + 182: uint16(31098), + 183: uint16(31109), + 184: uint16(31114), + 185: uint16(31130), + 186: uint16(31143), + 187: uint16(31155), + 188: uint16(24529), + 189: uint16(24528), + }, + 108: { + 0: uint16(38814), + 1: uint16(38815), + 2: uint16(38817), + 3: uint16(38818), + 4: uint16(38820), + 5: uint16(38821), + 6: uint16(38822), + 7: uint16(38823), + 8: uint16(38824), + 9: uint16(38825), + 10: uint16(38826), + 11: uint16(38828), + 12: uint16(38830), + 13: uint16(38832), + 14: uint16(38833), + 15: uint16(38835), + 16: uint16(38837), + 17: uint16(38838), + 18: uint16(38839), + 19: uint16(38840), + 20: uint16(38841), + 21: uint16(38842), + 22: uint16(38843), + 23: uint16(38844), + 24: uint16(38845), + 25: uint16(38846), + 26: uint16(38847), + 27: uint16(38848), + 28: uint16(38849), + 29: uint16(38850), + 30: uint16(38851), + 31: uint16(38852), + 32: uint16(38853), + 33: uint16(38854), + 34: uint16(38855), + 35: uint16(38856), + 36: uint16(38857), + 37: uint16(38858), + 38: uint16(38859), + 39: uint16(38860), + 40: uint16(38861), + 41: uint16(38862), + 42: uint16(38863), + 43: uint16(38864), + 44: uint16(38865), + 45: uint16(38866), + 46: uint16(38867), + 47: uint16(38868), + 48: uint16(38869), + 49: uint16(38870), + 50: uint16(38871), + 51: uint16(38872), + 52: uint16(38873), + 53: uint16(38874), + 54: uint16(38875), + 55: uint16(38876), + 56: uint16(38877), + 57: uint16(38878), + 58: uint16(38879), + 59: uint16(38880), + 60: uint16(38881), + 61: uint16(38882), + 62: uint16(38883), + 63: uint16(38884), + 64: uint16(38885), + 65: uint16(38888), + 66: uint16(38894), + 67: uint16(38895), + 68: uint16(38896), + 69: uint16(38897), + 70: uint16(38898), + 71: uint16(38900), + 72: uint16(38903), + 73: uint16(38904), + 74: uint16(38905), + 75: uint16(38906), + 76: uint16(38907), + 77: uint16(38908), + 78: uint16(38909), + 79: uint16(38910), + 80: uint16(38911), + 81: uint16(38912), + 82: uint16(38913), + 83: uint16(38914), + 84: uint16(38915), + 85: uint16(38916), + 86: uint16(38917), + 87: uint16(38918), + 88: uint16(38919), + 89: uint16(38920), + 90: uint16(38921), + 91: uint16(38922), + 92: uint16(38923), + 93: uint16(38924), + 94: uint16(38925), + 95: uint16(38926), + 96: uint16(24636), + 97: uint16(24669), + 98: uint16(24666), + 99: uint16(24679), + 100: uint16(24641), + 101: uint16(24665), + 102: uint16(24675), + 103: uint16(24747), + 104: uint16(24838), + 105: uint16(24845), + 106: uint16(24925), + 107: uint16(25001), + 108: uint16(24989), + 109: uint16(25035), + 110: uint16(25041), + 111: uint16(25094), + 112: uint16(32896), + 113: uint16(32895), + 114: uint16(27795), + 115: uint16(27894), + 116: uint16(28156), + 117: uint16(30710), + 118: uint16(30712), + 119: uint16(30720), + 120: uint16(30729), + 121: uint16(30743), + 122: uint16(30744), + 123: uint16(30737), + 124: uint16(26027), + 125: uint16(30765), + 126: uint16(30748), + 127: uint16(30749), + 128: uint16(30777), + 129: uint16(30778), + 130: uint16(30779), + 131: uint16(30751), + 132: uint16(30780), + 133: uint16(30757), + 134: uint16(30764), + 135: uint16(30755), + 136: uint16(30761), + 137: uint16(30798), + 138: uint16(30829), + 139: uint16(30806), + 140: uint16(30807), + 141: uint16(30758), + 142: uint16(30800), + 143: uint16(30791), + 144: uint16(30796), + 145: uint16(30826), + 146: uint16(30875), + 147: uint16(30867), + 148: uint16(30874), + 149: uint16(30855), + 150: uint16(30876), + 151: uint16(30881), + 152: uint16(30883), + 153: uint16(30898), + 154: uint16(30905), + 155: uint16(30885), + 156: uint16(30932), + 157: uint16(30937), + 158: uint16(30921), + 159: uint16(30956), + 160: uint16(30962), + 161: uint16(30981), + 162: uint16(30964), + 163: uint16(30995), + 164: uint16(31012), + 165: uint16(31006), + 166: uint16(31028), + 167: uint16(40859), + 168: uint16(40697), + 169: uint16(40699), + 170: uint16(40700), + 171: uint16(30449), + 172: uint16(30468), + 173: uint16(30477), + 174: uint16(30457), + 175: uint16(30471), + 176: uint16(30472), + 177: uint16(30490), + 178: uint16(30498), + 179: uint16(30489), + 180: uint16(30509), + 181: uint16(30502), + 182: uint16(30517), + 183: uint16(30520), + 184: uint16(30544), + 185: uint16(30545), + 186: uint16(30535), + 187: uint16(30531), + 188: uint16(30554), + 189: uint16(30568), + }, + 109: { + 0: uint16(38927), + 1: uint16(38928), + 2: uint16(38929), + 3: uint16(38930), + 4: uint16(38931), + 5: uint16(38932), + 6: uint16(38933), + 7: uint16(38934), + 8: uint16(38935), + 9: uint16(38936), + 10: uint16(38937), + 11: uint16(38938), + 12: uint16(38939), + 13: uint16(38940), + 14: uint16(38941), + 15: uint16(38942), + 16: uint16(38943), + 17: uint16(38944), + 18: uint16(38945), + 19: uint16(38946), + 20: uint16(38947), + 21: uint16(38948), + 22: uint16(38949), + 23: uint16(38950), + 24: uint16(38951), + 25: uint16(38952), + 26: uint16(38953), + 27: uint16(38954), + 28: uint16(38955), + 29: uint16(38956), + 30: uint16(38957), + 31: uint16(38958), + 32: uint16(38959), + 33: uint16(38960), + 34: uint16(38961), + 35: uint16(38962), + 36: uint16(38963), + 37: uint16(38964), + 38: uint16(38965), + 39: uint16(38966), + 40: uint16(38967), + 41: uint16(38968), + 42: uint16(38969), + 43: uint16(38970), + 44: uint16(38971), + 45: uint16(38972), + 46: uint16(38973), + 47: uint16(38974), + 48: uint16(38975), + 49: uint16(38976), + 50: uint16(38977), + 51: uint16(38978), + 52: uint16(38979), + 53: uint16(38980), + 54: uint16(38981), + 55: uint16(38982), + 56: uint16(38983), + 57: uint16(38984), + 58: uint16(38985), + 59: uint16(38986), + 60: uint16(38987), + 61: uint16(38988), + 62: uint16(38989), + 63: uint16(38990), + 64: uint16(38991), + 65: uint16(38992), + 66: uint16(38993), + 67: uint16(38994), + 68: uint16(38995), + 69: uint16(38996), + 70: uint16(38997), + 71: uint16(38998), + 72: uint16(38999), + 73: uint16(39000), + 74: uint16(39001), + 75: uint16(39002), + 76: uint16(39003), + 77: uint16(39004), + 78: uint16(39005), + 79: uint16(39006), + 80: uint16(39007), + 81: uint16(39008), + 82: uint16(39009), + 83: uint16(39010), + 84: uint16(39011), + 85: uint16(39012), + 86: uint16(39013), + 87: uint16(39014), + 88: uint16(39015), + 89: uint16(39016), + 90: uint16(39017), + 91: uint16(39018), + 92: uint16(39019), + 93: uint16(39020), + 94: uint16(39021), + 95: uint16(39022), + 96: uint16(30562), + 97: uint16(30565), + 98: uint16(30591), + 99: uint16(30605), + 100: uint16(30589), + 101: uint16(30592), + 102: uint16(30604), + 103: uint16(30609), + 104: uint16(30623), + 105: uint16(30624), + 106: uint16(30640), + 107: uint16(30645), + 108: uint16(30653), + 109: uint16(30010), + 110: uint16(30016), + 111: uint16(30030), + 112: uint16(30027), + 113: uint16(30024), + 114: uint16(30043), + 115: uint16(30066), + 116: uint16(30073), + 117: uint16(30083), + 118: uint16(32600), + 119: uint16(32609), + 120: uint16(32607), + 121: uint16(35400), + 122: uint16(32616), + 123: uint16(32628), + 124: uint16(32625), + 125: uint16(32633), + 126: uint16(32641), + 127: uint16(32638), + 128: uint16(30413), + 129: uint16(30437), + 130: uint16(34866), + 131: uint16(38021), + 132: uint16(38022), + 133: uint16(38023), + 134: uint16(38027), + 135: uint16(38026), + 136: uint16(38028), + 137: uint16(38029), + 138: uint16(38031), + 139: uint16(38032), + 140: uint16(38036), + 141: uint16(38039), + 142: uint16(38037), + 143: uint16(38042), + 144: uint16(38043), + 145: uint16(38044), + 146: uint16(38051), + 147: uint16(38052), + 148: uint16(38059), + 149: uint16(38058), + 150: uint16(38061), + 151: uint16(38060), + 152: uint16(38063), + 153: uint16(38064), + 154: uint16(38066), + 155: uint16(38068), + 156: uint16(38070), + 157: uint16(38071), + 158: uint16(38072), + 159: uint16(38073), + 160: uint16(38074), + 161: uint16(38076), + 162: uint16(38077), + 163: uint16(38079), + 164: uint16(38084), + 165: uint16(38088), + 166: uint16(38089), + 167: uint16(38090), + 168: uint16(38091), + 169: uint16(38092), + 170: uint16(38093), + 171: uint16(38094), + 172: uint16(38096), + 173: uint16(38097), + 174: uint16(38098), + 175: uint16(38101), + 176: uint16(38102), + 177: uint16(38103), + 178: uint16(38105), + 179: uint16(38104), + 180: uint16(38107), + 181: uint16(38110), + 182: uint16(38111), + 183: uint16(38112), + 184: uint16(38114), + 185: uint16(38116), + 186: uint16(38117), + 187: uint16(38119), + 188: uint16(38120), + 189: uint16(38122), + }, + 110: { + 0: uint16(39023), + 1: uint16(39024), + 2: uint16(39025), + 3: uint16(39026), + 4: uint16(39027), + 5: uint16(39028), + 6: uint16(39051), + 7: uint16(39054), + 8: uint16(39058), + 9: uint16(39061), + 10: uint16(39065), + 11: uint16(39075), + 12: uint16(39080), + 13: uint16(39081), + 14: uint16(39082), + 15: uint16(39083), + 16: uint16(39084), + 17: uint16(39085), + 18: uint16(39086), + 19: uint16(39087), + 20: uint16(39088), + 21: uint16(39089), + 22: uint16(39090), + 23: uint16(39091), + 24: uint16(39092), + 25: uint16(39093), + 26: uint16(39094), + 27: uint16(39095), + 28: uint16(39096), + 29: uint16(39097), + 30: uint16(39098), + 31: uint16(39099), + 32: uint16(39100), + 33: uint16(39101), + 34: uint16(39102), + 35: uint16(39103), + 36: uint16(39104), + 37: uint16(39105), + 38: uint16(39106), + 39: uint16(39107), + 40: uint16(39108), + 41: uint16(39109), + 42: uint16(39110), + 43: uint16(39111), + 44: uint16(39112), + 45: uint16(39113), + 46: uint16(39114), + 47: uint16(39115), + 48: uint16(39116), + 49: uint16(39117), + 50: uint16(39119), + 51: uint16(39120), + 52: uint16(39124), + 53: uint16(39126), + 54: uint16(39127), + 55: uint16(39131), + 56: uint16(39132), + 57: uint16(39133), + 58: uint16(39136), + 59: uint16(39137), + 60: uint16(39138), + 61: uint16(39139), + 62: uint16(39140), + 63: uint16(39141), + 64: uint16(39142), + 65: uint16(39145), + 66: uint16(39146), + 67: uint16(39147), + 68: uint16(39148), + 69: uint16(39149), + 70: uint16(39150), + 71: uint16(39151), + 72: uint16(39152), + 73: uint16(39153), + 74: uint16(39154), + 75: uint16(39155), + 76: uint16(39156), + 77: uint16(39157), + 78: uint16(39158), + 79: uint16(39159), + 80: uint16(39160), + 81: uint16(39161), + 82: uint16(39162), + 83: uint16(39163), + 84: uint16(39164), + 85: uint16(39165), + 86: uint16(39166), + 87: uint16(39167), + 88: uint16(39168), + 89: uint16(39169), + 90: uint16(39170), + 91: uint16(39171), + 92: uint16(39172), + 93: uint16(39173), + 94: uint16(39174), + 95: uint16(39175), + 96: uint16(38121), + 97: uint16(38123), + 98: uint16(38126), + 99: uint16(38127), + 100: uint16(38131), + 101: uint16(38132), + 102: uint16(38133), + 103: uint16(38135), + 104: uint16(38137), + 105: uint16(38140), + 106: uint16(38141), + 107: uint16(38143), + 108: uint16(38147), + 109: uint16(38146), + 110: uint16(38150), + 111: uint16(38151), + 112: uint16(38153), + 113: uint16(38154), + 114: uint16(38157), + 115: uint16(38158), + 116: uint16(38159), + 117: uint16(38162), + 118: uint16(38163), + 119: uint16(38164), + 120: uint16(38165), + 121: uint16(38166), + 122: uint16(38168), + 123: uint16(38171), + 124: uint16(38173), + 125: uint16(38174), + 126: uint16(38175), + 127: uint16(38178), + 128: uint16(38186), + 129: uint16(38187), + 130: uint16(38185), + 131: uint16(38188), + 132: uint16(38193), + 133: uint16(38194), + 134: uint16(38196), + 135: uint16(38198), + 136: uint16(38199), + 137: uint16(38200), + 138: uint16(38204), + 139: uint16(38206), + 140: uint16(38207), + 141: uint16(38210), + 142: uint16(38197), + 143: uint16(38212), + 144: uint16(38213), + 145: uint16(38214), + 146: uint16(38217), + 147: uint16(38220), + 148: uint16(38222), + 149: uint16(38223), + 150: uint16(38226), + 151: uint16(38227), + 152: uint16(38228), + 153: uint16(38230), + 154: uint16(38231), + 155: uint16(38232), + 156: uint16(38233), + 157: uint16(38235), + 158: uint16(38238), + 159: uint16(38239), + 160: uint16(38237), + 161: uint16(38241), + 162: uint16(38242), + 163: uint16(38244), + 164: uint16(38245), + 165: uint16(38246), + 166: uint16(38247), + 167: uint16(38248), + 168: uint16(38249), + 169: uint16(38250), + 170: uint16(38251), + 171: uint16(38252), + 172: uint16(38255), + 173: uint16(38257), + 174: uint16(38258), + 175: uint16(38259), + 176: uint16(38202), + 177: uint16(30695), + 178: uint16(30700), + 179: uint16(38601), + 180: uint16(31189), + 181: uint16(31213), + 182: uint16(31203), + 183: uint16(31211), + 184: uint16(31238), + 185: uint16(23879), + 186: uint16(31235), + 187: uint16(31234), + 188: uint16(31262), + 189: uint16(31252), + }, + 111: { + 0: uint16(39176), + 1: uint16(39177), + 2: uint16(39178), + 3: uint16(39179), + 4: uint16(39180), + 5: uint16(39182), + 6: uint16(39183), + 7: uint16(39185), + 8: uint16(39186), + 9: uint16(39187), + 10: uint16(39188), + 11: uint16(39189), + 12: uint16(39190), + 13: uint16(39191), + 14: uint16(39192), + 15: uint16(39193), + 16: uint16(39194), + 17: uint16(39195), + 18: uint16(39196), + 19: uint16(39197), + 20: uint16(39198), + 21: uint16(39199), + 22: uint16(39200), + 23: uint16(39201), + 24: uint16(39202), + 25: uint16(39203), + 26: uint16(39204), + 27: uint16(39205), + 28: uint16(39206), + 29: uint16(39207), + 30: uint16(39208), + 31: uint16(39209), + 32: uint16(39210), + 33: uint16(39211), + 34: uint16(39212), + 35: uint16(39213), + 36: uint16(39215), + 37: uint16(39216), + 38: uint16(39217), + 39: uint16(39218), + 40: uint16(39219), + 41: uint16(39220), + 42: uint16(39221), + 43: uint16(39222), + 44: uint16(39223), + 45: uint16(39224), + 46: uint16(39225), + 47: uint16(39226), + 48: uint16(39227), + 49: uint16(39228), + 50: uint16(39229), + 51: uint16(39230), + 52: uint16(39231), + 53: uint16(39232), + 54: uint16(39233), + 55: uint16(39234), + 56: uint16(39235), + 57: uint16(39236), + 58: uint16(39237), + 59: uint16(39238), + 60: uint16(39239), + 61: uint16(39240), + 62: uint16(39241), + 63: uint16(39242), + 64: uint16(39243), + 65: uint16(39244), + 66: uint16(39245), + 67: uint16(39246), + 68: uint16(39247), + 69: uint16(39248), + 70: uint16(39249), + 71: uint16(39250), + 72: uint16(39251), + 73: uint16(39254), + 74: uint16(39255), + 75: uint16(39256), + 76: uint16(39257), + 77: uint16(39258), + 78: uint16(39259), + 79: uint16(39260), + 80: uint16(39261), + 81: uint16(39262), + 82: uint16(39263), + 83: uint16(39264), + 84: uint16(39265), + 85: uint16(39266), + 86: uint16(39268), + 87: uint16(39270), + 88: uint16(39283), + 89: uint16(39288), + 90: uint16(39289), + 91: uint16(39291), + 92: uint16(39294), + 93: uint16(39298), + 94: uint16(39299), + 95: uint16(39305), + 96: uint16(31289), + 97: uint16(31287), + 98: uint16(31313), + 99: uint16(40655), + 100: uint16(39333), + 101: uint16(31344), + 102: uint16(30344), + 103: uint16(30350), + 104: uint16(30355), + 105: uint16(30361), + 106: uint16(30372), + 107: uint16(29918), + 108: uint16(29920), + 109: uint16(29996), + 110: uint16(40480), + 111: uint16(40482), + 112: uint16(40488), + 113: uint16(40489), + 114: uint16(40490), + 115: uint16(40491), + 116: uint16(40492), + 117: uint16(40498), + 118: uint16(40497), + 119: uint16(40502), + 120: uint16(40504), + 121: uint16(40503), + 122: uint16(40505), + 123: uint16(40506), + 124: uint16(40510), + 125: uint16(40513), + 126: uint16(40514), + 127: uint16(40516), + 128: uint16(40518), + 129: uint16(40519), + 130: uint16(40520), + 131: uint16(40521), + 132: uint16(40523), + 133: uint16(40524), + 134: uint16(40526), + 135: uint16(40529), + 136: uint16(40533), + 137: uint16(40535), + 138: uint16(40538), + 139: uint16(40539), + 140: uint16(40540), + 141: uint16(40542), + 142: uint16(40547), + 143: uint16(40550), + 144: uint16(40551), + 145: uint16(40552), + 146: uint16(40553), + 147: uint16(40554), + 148: uint16(40555), + 149: uint16(40556), + 150: uint16(40561), + 151: uint16(40557), + 152: uint16(40563), + 153: uint16(30098), + 154: uint16(30100), + 155: uint16(30102), + 156: uint16(30112), + 157: uint16(30109), + 158: uint16(30124), + 159: uint16(30115), + 160: uint16(30131), + 161: uint16(30132), + 162: uint16(30136), + 163: uint16(30148), + 164: uint16(30129), + 165: uint16(30128), + 166: uint16(30147), + 167: uint16(30146), + 168: uint16(30166), + 169: uint16(30157), + 170: uint16(30179), + 171: uint16(30184), + 172: uint16(30182), + 173: uint16(30180), + 174: uint16(30187), + 175: uint16(30183), + 176: uint16(30211), + 177: uint16(30193), + 178: uint16(30204), + 179: uint16(30207), + 180: uint16(30224), + 181: uint16(30208), + 182: uint16(30213), + 183: uint16(30220), + 184: uint16(30231), + 185: uint16(30218), + 186: uint16(30245), + 187: uint16(30232), + 188: uint16(30229), + 189: uint16(30233), + }, + 112: { + 0: uint16(39308), + 1: uint16(39310), + 2: uint16(39322), + 3: uint16(39323), + 4: uint16(39324), + 5: uint16(39325), + 6: uint16(39326), + 7: uint16(39327), + 8: uint16(39328), + 9: uint16(39329), + 10: uint16(39330), + 11: uint16(39331), + 12: uint16(39332), + 13: uint16(39334), + 14: uint16(39335), + 15: uint16(39337), + 16: uint16(39338), + 17: uint16(39339), + 18: uint16(39340), + 19: uint16(39341), + 20: uint16(39342), + 21: uint16(39343), + 22: uint16(39344), + 23: uint16(39345), + 24: uint16(39346), + 25: uint16(39347), + 26: uint16(39348), + 27: uint16(39349), + 28: uint16(39350), + 29: uint16(39351), + 30: uint16(39352), + 31: uint16(39353), + 32: uint16(39354), + 33: uint16(39355), + 34: uint16(39356), + 35: uint16(39357), + 36: uint16(39358), + 37: uint16(39359), + 38: uint16(39360), + 39: uint16(39361), + 40: uint16(39362), + 41: uint16(39363), + 42: uint16(39364), + 43: uint16(39365), + 44: uint16(39366), + 45: uint16(39367), + 46: uint16(39368), + 47: uint16(39369), + 48: uint16(39370), + 49: uint16(39371), + 50: uint16(39372), + 51: uint16(39373), + 52: uint16(39374), + 53: uint16(39375), + 54: uint16(39376), + 55: uint16(39377), + 56: uint16(39378), + 57: uint16(39379), + 58: uint16(39380), + 59: uint16(39381), + 60: uint16(39382), + 61: uint16(39383), + 62: uint16(39384), + 63: uint16(39385), + 64: uint16(39386), + 65: uint16(39387), + 66: uint16(39388), + 67: uint16(39389), + 68: uint16(39390), + 69: uint16(39391), + 70: uint16(39392), + 71: uint16(39393), + 72: uint16(39394), + 73: uint16(39395), + 74: uint16(39396), + 75: uint16(39397), + 76: uint16(39398), + 77: uint16(39399), + 78: uint16(39400), + 79: uint16(39401), + 80: uint16(39402), + 81: uint16(39403), + 82: uint16(39404), + 83: uint16(39405), + 84: uint16(39406), + 85: uint16(39407), + 86: uint16(39408), + 87: uint16(39409), + 88: uint16(39410), + 89: uint16(39411), + 90: uint16(39412), + 91: uint16(39413), + 92: uint16(39414), + 93: uint16(39415), + 94: uint16(39416), + 95: uint16(39417), + 96: uint16(30235), + 97: uint16(30268), + 98: uint16(30242), + 99: uint16(30240), + 100: uint16(30272), + 101: uint16(30253), + 102: uint16(30256), + 103: uint16(30271), + 104: uint16(30261), + 105: uint16(30275), + 106: uint16(30270), + 107: uint16(30259), + 108: uint16(30285), + 109: uint16(30302), + 110: uint16(30292), + 111: uint16(30300), + 112: uint16(30294), + 113: uint16(30315), + 114: uint16(30319), + 115: uint16(32714), + 116: uint16(31462), + 117: uint16(31352), + 118: uint16(31353), + 119: uint16(31360), + 120: uint16(31366), + 121: uint16(31368), + 122: uint16(31381), + 123: uint16(31398), + 124: uint16(31392), + 125: uint16(31404), + 126: uint16(31400), + 127: uint16(31405), + 128: uint16(31411), + 129: uint16(34916), + 130: uint16(34921), + 131: uint16(34930), + 132: uint16(34941), + 133: uint16(34943), + 134: uint16(34946), + 135: uint16(34978), + 136: uint16(35014), + 137: uint16(34999), + 138: uint16(35004), + 139: uint16(35017), + 140: uint16(35042), + 141: uint16(35022), + 142: uint16(35043), + 143: uint16(35045), + 144: uint16(35057), + 145: uint16(35098), + 146: uint16(35068), + 147: uint16(35048), + 148: uint16(35070), + 149: uint16(35056), + 150: uint16(35105), + 151: uint16(35097), + 152: uint16(35091), + 153: uint16(35099), + 154: uint16(35082), + 155: uint16(35124), + 156: uint16(35115), + 157: uint16(35126), + 158: uint16(35137), + 159: uint16(35174), + 160: uint16(35195), + 161: uint16(30091), + 162: uint16(32997), + 163: uint16(30386), + 164: uint16(30388), + 165: uint16(30684), + 166: uint16(32786), + 167: uint16(32788), + 168: uint16(32790), + 169: uint16(32796), + 170: uint16(32800), + 171: uint16(32802), + 172: uint16(32805), + 173: uint16(32806), + 174: uint16(32807), + 175: uint16(32809), + 176: uint16(32808), + 177: uint16(32817), + 178: uint16(32779), + 179: uint16(32821), + 180: uint16(32835), + 181: uint16(32838), + 182: uint16(32845), + 183: uint16(32850), + 184: uint16(32873), + 185: uint16(32881), + 186: uint16(35203), + 187: uint16(39032), + 188: uint16(39040), + 189: uint16(39043), + }, + 113: { + 0: uint16(39418), + 1: uint16(39419), + 2: uint16(39420), + 3: uint16(39421), + 4: uint16(39422), + 5: uint16(39423), + 6: uint16(39424), + 7: uint16(39425), + 8: uint16(39426), + 9: uint16(39427), + 10: uint16(39428), + 11: uint16(39429), + 12: uint16(39430), + 13: uint16(39431), + 14: uint16(39432), + 15: uint16(39433), + 16: uint16(39434), + 17: uint16(39435), + 18: uint16(39436), + 19: uint16(39437), + 20: uint16(39438), + 21: uint16(39439), + 22: uint16(39440), + 23: uint16(39441), + 24: uint16(39442), + 25: uint16(39443), + 26: uint16(39444), + 27: uint16(39445), + 28: uint16(39446), + 29: uint16(39447), + 30: uint16(39448), + 31: uint16(39449), + 32: uint16(39450), + 33: uint16(39451), + 34: uint16(39452), + 35: uint16(39453), + 36: uint16(39454), + 37: uint16(39455), + 38: uint16(39456), + 39: uint16(39457), + 40: uint16(39458), + 41: uint16(39459), + 42: uint16(39460), + 43: uint16(39461), + 44: uint16(39462), + 45: uint16(39463), + 46: uint16(39464), + 47: uint16(39465), + 48: uint16(39466), + 49: uint16(39467), + 50: uint16(39468), + 51: uint16(39469), + 52: uint16(39470), + 53: uint16(39471), + 54: uint16(39472), + 55: uint16(39473), + 56: uint16(39474), + 57: uint16(39475), + 58: uint16(39476), + 59: uint16(39477), + 60: uint16(39478), + 61: uint16(39479), + 62: uint16(39480), + 63: uint16(39481), + 64: uint16(39482), + 65: uint16(39483), + 66: uint16(39484), + 67: uint16(39485), + 68: uint16(39486), + 69: uint16(39487), + 70: uint16(39488), + 71: uint16(39489), + 72: uint16(39490), + 73: uint16(39491), + 74: uint16(39492), + 75: uint16(39493), + 76: uint16(39494), + 77: uint16(39495), + 78: uint16(39496), + 79: uint16(39497), + 80: uint16(39498), + 81: uint16(39499), + 82: uint16(39500), + 83: uint16(39501), + 84: uint16(39502), + 85: uint16(39503), + 86: uint16(39504), + 87: uint16(39505), + 88: uint16(39506), + 89: uint16(39507), + 90: uint16(39508), + 91: uint16(39509), + 92: uint16(39510), + 93: uint16(39511), + 94: uint16(39512), + 95: uint16(39513), + 96: uint16(39049), + 97: uint16(39052), + 98: uint16(39053), + 99: uint16(39055), + 100: uint16(39060), + 101: uint16(39066), + 102: uint16(39067), + 103: uint16(39070), + 104: uint16(39071), + 105: uint16(39073), + 106: uint16(39074), + 107: uint16(39077), + 108: uint16(39078), + 109: uint16(34381), + 110: uint16(34388), + 111: uint16(34412), + 112: uint16(34414), + 113: uint16(34431), + 114: uint16(34426), + 115: uint16(34428), + 116: uint16(34427), + 117: uint16(34472), + 118: uint16(34445), + 119: uint16(34443), + 120: uint16(34476), + 121: uint16(34461), + 122: uint16(34471), + 123: uint16(34467), + 124: uint16(34474), + 125: uint16(34451), + 126: uint16(34473), + 127: uint16(34486), + 128: uint16(34500), + 129: uint16(34485), + 130: uint16(34510), + 131: uint16(34480), + 132: uint16(34490), + 133: uint16(34481), + 134: uint16(34479), + 135: uint16(34505), + 136: uint16(34511), + 137: uint16(34484), + 138: uint16(34537), + 139: uint16(34545), + 140: uint16(34546), + 141: uint16(34541), + 142: uint16(34547), + 143: uint16(34512), + 144: uint16(34579), + 145: uint16(34526), + 146: uint16(34548), + 147: uint16(34527), + 148: uint16(34520), + 149: uint16(34513), + 150: uint16(34563), + 151: uint16(34567), + 152: uint16(34552), + 153: uint16(34568), + 154: uint16(34570), + 155: uint16(34573), + 156: uint16(34569), + 157: uint16(34595), + 158: uint16(34619), + 159: uint16(34590), + 160: uint16(34597), + 161: uint16(34606), + 162: uint16(34586), + 163: uint16(34622), + 164: uint16(34632), + 165: uint16(34612), + 166: uint16(34609), + 167: uint16(34601), + 168: uint16(34615), + 169: uint16(34623), + 170: uint16(34690), + 171: uint16(34594), + 172: uint16(34685), + 173: uint16(34686), + 174: uint16(34683), + 175: uint16(34656), + 176: uint16(34672), + 177: uint16(34636), + 178: uint16(34670), + 179: uint16(34699), + 180: uint16(34643), + 181: uint16(34659), + 182: uint16(34684), + 183: uint16(34660), + 184: uint16(34649), + 185: uint16(34661), + 186: uint16(34707), + 187: uint16(34735), + 188: uint16(34728), + 189: uint16(34770), + }, + 114: { + 0: uint16(39514), + 1: uint16(39515), + 2: uint16(39516), + 3: uint16(39517), + 4: uint16(39518), + 5: uint16(39519), + 6: uint16(39520), + 7: uint16(39521), + 8: uint16(39522), + 9: uint16(39523), + 10: uint16(39524), + 11: uint16(39525), + 12: uint16(39526), + 13: uint16(39527), + 14: uint16(39528), + 15: uint16(39529), + 16: uint16(39530), + 17: uint16(39531), + 18: uint16(39538), + 19: uint16(39555), + 20: uint16(39561), + 21: uint16(39565), + 22: uint16(39566), + 23: uint16(39572), + 24: uint16(39573), + 25: uint16(39577), + 26: uint16(39590), + 27: uint16(39593), + 28: uint16(39594), + 29: uint16(39595), + 30: uint16(39596), + 31: uint16(39597), + 32: uint16(39598), + 33: uint16(39599), + 34: uint16(39602), + 35: uint16(39603), + 36: uint16(39604), + 37: uint16(39605), + 38: uint16(39609), + 39: uint16(39611), + 40: uint16(39613), + 41: uint16(39614), + 42: uint16(39615), + 43: uint16(39619), + 44: uint16(39620), + 45: uint16(39622), + 46: uint16(39623), + 47: uint16(39624), + 48: uint16(39625), + 49: uint16(39626), + 50: uint16(39629), + 51: uint16(39630), + 52: uint16(39631), + 53: uint16(39632), + 54: uint16(39634), + 55: uint16(39636), + 56: uint16(39637), + 57: uint16(39638), + 58: uint16(39639), + 59: uint16(39641), + 60: uint16(39642), + 61: uint16(39643), + 62: uint16(39644), + 63: uint16(39645), + 64: uint16(39646), + 65: uint16(39648), + 66: uint16(39650), + 67: uint16(39651), + 68: uint16(39652), + 69: uint16(39653), + 70: uint16(39655), + 71: uint16(39656), + 72: uint16(39657), + 73: uint16(39658), + 74: uint16(39660), + 75: uint16(39662), + 76: uint16(39664), + 77: uint16(39665), + 78: uint16(39666), + 79: uint16(39667), + 80: uint16(39668), + 81: uint16(39669), + 82: uint16(39670), + 83: uint16(39671), + 84: uint16(39672), + 85: uint16(39674), + 86: uint16(39676), + 87: uint16(39677), + 88: uint16(39678), + 89: uint16(39679), + 90: uint16(39680), + 91: uint16(39681), + 92: uint16(39682), + 93: uint16(39684), + 94: uint16(39685), + 95: uint16(39686), + 96: uint16(34758), + 97: uint16(34696), + 98: uint16(34693), + 99: uint16(34733), + 100: uint16(34711), + 101: uint16(34691), + 102: uint16(34731), + 103: uint16(34789), + 104: uint16(34732), + 105: uint16(34741), + 106: uint16(34739), + 107: uint16(34763), + 108: uint16(34771), + 109: uint16(34749), + 110: uint16(34769), + 111: uint16(34752), + 112: uint16(34762), + 113: uint16(34779), + 114: uint16(34794), + 115: uint16(34784), + 116: uint16(34798), + 117: uint16(34838), + 118: uint16(34835), + 119: uint16(34814), + 120: uint16(34826), + 121: uint16(34843), + 122: uint16(34849), + 123: uint16(34873), + 124: uint16(34876), + 125: uint16(32566), + 126: uint16(32578), + 127: uint16(32580), + 128: uint16(32581), + 129: uint16(33296), + 130: uint16(31482), + 131: uint16(31485), + 132: uint16(31496), + 133: uint16(31491), + 134: uint16(31492), + 135: uint16(31509), + 136: uint16(31498), + 137: uint16(31531), + 138: uint16(31503), + 139: uint16(31559), + 140: uint16(31544), + 141: uint16(31530), + 142: uint16(31513), + 143: uint16(31534), + 144: uint16(31537), + 145: uint16(31520), + 146: uint16(31525), + 147: uint16(31524), + 148: uint16(31539), + 149: uint16(31550), + 150: uint16(31518), + 151: uint16(31576), + 152: uint16(31578), + 153: uint16(31557), + 154: uint16(31605), + 155: uint16(31564), + 156: uint16(31581), + 157: uint16(31584), + 158: uint16(31598), + 159: uint16(31611), + 160: uint16(31586), + 161: uint16(31602), + 162: uint16(31601), + 163: uint16(31632), + 164: uint16(31654), + 165: uint16(31655), + 166: uint16(31672), + 167: uint16(31660), + 168: uint16(31645), + 169: uint16(31656), + 170: uint16(31621), + 171: uint16(31658), + 172: uint16(31644), + 173: uint16(31650), + 174: uint16(31659), + 175: uint16(31668), + 176: uint16(31697), + 177: uint16(31681), + 178: uint16(31692), + 179: uint16(31709), + 180: uint16(31706), + 181: uint16(31717), + 182: uint16(31718), + 183: uint16(31722), + 184: uint16(31756), + 185: uint16(31742), + 186: uint16(31740), + 187: uint16(31759), + 188: uint16(31766), + 189: uint16(31755), + }, + 115: { + 0: uint16(39687), + 1: uint16(39689), + 2: uint16(39690), + 3: uint16(39691), + 4: uint16(39692), + 5: uint16(39693), + 6: uint16(39694), + 7: uint16(39696), + 8: uint16(39697), + 9: uint16(39698), + 10: uint16(39700), + 11: uint16(39701), + 12: uint16(39702), + 13: uint16(39703), + 14: uint16(39704), + 15: uint16(39705), + 16: uint16(39706), + 17: uint16(39707), + 18: uint16(39708), + 19: uint16(39709), + 20: uint16(39710), + 21: uint16(39712), + 22: uint16(39713), + 23: uint16(39714), + 24: uint16(39716), + 25: uint16(39717), + 26: uint16(39718), + 27: uint16(39719), + 28: uint16(39720), + 29: uint16(39721), + 30: uint16(39722), + 31: uint16(39723), + 32: uint16(39724), + 33: uint16(39725), + 34: uint16(39726), + 35: uint16(39728), + 36: uint16(39729), + 37: uint16(39731), + 38: uint16(39732), + 39: uint16(39733), + 40: uint16(39734), + 41: uint16(39735), + 42: uint16(39736), + 43: uint16(39737), + 44: uint16(39738), + 45: uint16(39741), + 46: uint16(39742), + 47: uint16(39743), + 48: uint16(39744), + 49: uint16(39750), + 50: uint16(39754), + 51: uint16(39755), + 52: uint16(39756), + 53: uint16(39758), + 54: uint16(39760), + 55: uint16(39762), + 56: uint16(39763), + 57: uint16(39765), + 58: uint16(39766), + 59: uint16(39767), + 60: uint16(39768), + 61: uint16(39769), + 62: uint16(39770), + 63: uint16(39771), + 64: uint16(39772), + 65: uint16(39773), + 66: uint16(39774), + 67: uint16(39775), + 68: uint16(39776), + 69: uint16(39777), + 70: uint16(39778), + 71: uint16(39779), + 72: uint16(39780), + 73: uint16(39781), + 74: uint16(39782), + 75: uint16(39783), + 76: uint16(39784), + 77: uint16(39785), + 78: uint16(39786), + 79: uint16(39787), + 80: uint16(39788), + 81: uint16(39789), + 82: uint16(39790), + 83: uint16(39791), + 84: uint16(39792), + 85: uint16(39793), + 86: uint16(39794), + 87: uint16(39795), + 88: uint16(39796), + 89: uint16(39797), + 90: uint16(39798), + 91: uint16(39799), + 92: uint16(39800), + 93: uint16(39801), + 94: uint16(39802), + 95: uint16(39803), + 96: uint16(31775), + 97: uint16(31786), + 98: uint16(31782), + 99: uint16(31800), + 100: uint16(31809), + 101: uint16(31808), + 102: uint16(33278), + 103: uint16(33281), + 104: uint16(33282), + 105: uint16(33284), + 106: uint16(33260), + 107: uint16(34884), + 108: uint16(33313), + 109: uint16(33314), + 110: uint16(33315), + 111: uint16(33325), + 112: uint16(33327), + 113: uint16(33320), + 114: uint16(33323), + 115: uint16(33336), + 116: uint16(33339), + 117: uint16(33331), + 118: uint16(33332), + 119: uint16(33342), + 120: uint16(33348), + 121: uint16(33353), + 122: uint16(33355), + 123: uint16(33359), + 124: uint16(33370), + 125: uint16(33375), + 126: uint16(33384), + 127: uint16(34942), + 128: uint16(34949), + 129: uint16(34952), + 130: uint16(35032), + 131: uint16(35039), + 132: uint16(35166), + 133: uint16(32669), + 134: uint16(32671), + 135: uint16(32679), + 136: uint16(32687), + 137: uint16(32688), + 138: uint16(32690), + 139: uint16(31868), + 140: uint16(25929), + 141: uint16(31889), + 142: uint16(31901), + 143: uint16(31900), + 144: uint16(31902), + 145: uint16(31906), + 146: uint16(31922), + 147: uint16(31932), + 148: uint16(31933), + 149: uint16(31937), + 150: uint16(31943), + 151: uint16(31948), + 152: uint16(31949), + 153: uint16(31944), + 154: uint16(31941), + 155: uint16(31959), + 156: uint16(31976), + 157: uint16(33390), + 158: uint16(26280), + 159: uint16(32703), + 160: uint16(32718), + 161: uint16(32725), + 162: uint16(32741), + 163: uint16(32737), + 164: uint16(32742), + 165: uint16(32745), + 166: uint16(32750), + 167: uint16(32755), + 168: uint16(31992), + 169: uint16(32119), + 170: uint16(32166), + 171: uint16(32174), + 172: uint16(32327), + 173: uint16(32411), + 174: uint16(40632), + 175: uint16(40628), + 176: uint16(36211), + 177: uint16(36228), + 178: uint16(36244), + 179: uint16(36241), + 180: uint16(36273), + 181: uint16(36199), + 182: uint16(36205), + 183: uint16(35911), + 184: uint16(35913), + 185: uint16(37194), + 186: uint16(37200), + 187: uint16(37198), + 188: uint16(37199), + 189: uint16(37220), + }, + 116: { + 0: uint16(39804), + 1: uint16(39805), + 2: uint16(39806), + 3: uint16(39807), + 4: uint16(39808), + 5: uint16(39809), + 6: uint16(39810), + 7: uint16(39811), + 8: uint16(39812), + 9: uint16(39813), + 10: uint16(39814), + 11: uint16(39815), + 12: uint16(39816), + 13: uint16(39817), + 14: uint16(39818), + 15: uint16(39819), + 16: uint16(39820), + 17: uint16(39821), + 18: uint16(39822), + 19: uint16(39823), + 20: uint16(39824), + 21: uint16(39825), + 22: uint16(39826), + 23: uint16(39827), + 24: uint16(39828), + 25: uint16(39829), + 26: uint16(39830), + 27: uint16(39831), + 28: uint16(39832), + 29: uint16(39833), + 30: uint16(39834), + 31: uint16(39835), + 32: uint16(39836), + 33: uint16(39837), + 34: uint16(39838), + 35: uint16(39839), + 36: uint16(39840), + 37: uint16(39841), + 38: uint16(39842), + 39: uint16(39843), + 40: uint16(39844), + 41: uint16(39845), + 42: uint16(39846), + 43: uint16(39847), + 44: uint16(39848), + 45: uint16(39849), + 46: uint16(39850), + 47: uint16(39851), + 48: uint16(39852), + 49: uint16(39853), + 50: uint16(39854), + 51: uint16(39855), + 52: uint16(39856), + 53: uint16(39857), + 54: uint16(39858), + 55: uint16(39859), + 56: uint16(39860), + 57: uint16(39861), + 58: uint16(39862), + 59: uint16(39863), + 60: uint16(39864), + 61: uint16(39865), + 62: uint16(39866), + 63: uint16(39867), + 64: uint16(39868), + 65: uint16(39869), + 66: uint16(39870), + 67: uint16(39871), + 68: uint16(39872), + 69: uint16(39873), + 70: uint16(39874), + 71: uint16(39875), + 72: uint16(39876), + 73: uint16(39877), + 74: uint16(39878), + 75: uint16(39879), + 76: uint16(39880), + 77: uint16(39881), + 78: uint16(39882), + 79: uint16(39883), + 80: uint16(39884), + 81: uint16(39885), + 82: uint16(39886), + 83: uint16(39887), + 84: uint16(39888), + 85: uint16(39889), + 86: uint16(39890), + 87: uint16(39891), + 88: uint16(39892), + 89: uint16(39893), + 90: uint16(39894), + 91: uint16(39895), + 92: uint16(39896), + 93: uint16(39897), + 94: uint16(39898), + 95: uint16(39899), + 96: uint16(37218), + 97: uint16(37217), + 98: uint16(37232), + 99: uint16(37225), + 100: uint16(37231), + 101: uint16(37245), + 102: uint16(37246), + 103: uint16(37234), + 104: uint16(37236), + 105: uint16(37241), + 106: uint16(37260), + 107: uint16(37253), + 108: uint16(37264), + 109: uint16(37261), + 110: uint16(37265), + 111: uint16(37282), + 112: uint16(37283), + 113: uint16(37290), + 114: uint16(37293), + 115: uint16(37294), + 116: uint16(37295), + 117: uint16(37301), + 118: uint16(37300), + 119: uint16(37306), + 120: uint16(35925), + 121: uint16(40574), + 122: uint16(36280), + 123: uint16(36331), + 124: uint16(36357), + 125: uint16(36441), + 126: uint16(36457), + 127: uint16(36277), + 128: uint16(36287), + 129: uint16(36284), + 130: uint16(36282), + 131: uint16(36292), + 132: uint16(36310), + 133: uint16(36311), + 134: uint16(36314), + 135: uint16(36318), + 136: uint16(36302), + 137: uint16(36303), + 138: uint16(36315), + 139: uint16(36294), + 140: uint16(36332), + 141: uint16(36343), + 142: uint16(36344), + 143: uint16(36323), + 144: uint16(36345), + 145: uint16(36347), + 146: uint16(36324), + 147: uint16(36361), + 148: uint16(36349), + 149: uint16(36372), + 150: uint16(36381), + 151: uint16(36383), + 152: uint16(36396), + 153: uint16(36398), + 154: uint16(36387), + 155: uint16(36399), + 156: uint16(36410), + 157: uint16(36416), + 158: uint16(36409), + 159: uint16(36405), + 160: uint16(36413), + 161: uint16(36401), + 162: uint16(36425), + 163: uint16(36417), + 164: uint16(36418), + 165: uint16(36433), + 166: uint16(36434), + 167: uint16(36426), + 168: uint16(36464), + 169: uint16(36470), + 170: uint16(36476), + 171: uint16(36463), + 172: uint16(36468), + 173: uint16(36485), + 174: uint16(36495), + 175: uint16(36500), + 176: uint16(36496), + 177: uint16(36508), + 178: uint16(36510), + 179: uint16(35960), + 180: uint16(35970), + 181: uint16(35978), + 182: uint16(35973), + 183: uint16(35992), + 184: uint16(35988), + 185: uint16(26011), + 186: uint16(35286), + 187: uint16(35294), + 188: uint16(35290), + 189: uint16(35292), + }, + 117: { + 0: uint16(39900), + 1: uint16(39901), + 2: uint16(39902), + 3: uint16(39903), + 4: uint16(39904), + 5: uint16(39905), + 6: uint16(39906), + 7: uint16(39907), + 8: uint16(39908), + 9: uint16(39909), + 10: uint16(39910), + 11: uint16(39911), + 12: uint16(39912), + 13: uint16(39913), + 14: uint16(39914), + 15: uint16(39915), + 16: uint16(39916), + 17: uint16(39917), + 18: uint16(39918), + 19: uint16(39919), + 20: uint16(39920), + 21: uint16(39921), + 22: uint16(39922), + 23: uint16(39923), + 24: uint16(39924), + 25: uint16(39925), + 26: uint16(39926), + 27: uint16(39927), + 28: uint16(39928), + 29: uint16(39929), + 30: uint16(39930), + 31: uint16(39931), + 32: uint16(39932), + 33: uint16(39933), + 34: uint16(39934), + 35: uint16(39935), + 36: uint16(39936), + 37: uint16(39937), + 38: uint16(39938), + 39: uint16(39939), + 40: uint16(39940), + 41: uint16(39941), + 42: uint16(39942), + 43: uint16(39943), + 44: uint16(39944), + 45: uint16(39945), + 46: uint16(39946), + 47: uint16(39947), + 48: uint16(39948), + 49: uint16(39949), + 50: uint16(39950), + 51: uint16(39951), + 52: uint16(39952), + 53: uint16(39953), + 54: uint16(39954), + 55: uint16(39955), + 56: uint16(39956), + 57: uint16(39957), + 58: uint16(39958), + 59: uint16(39959), + 60: uint16(39960), + 61: uint16(39961), + 62: uint16(39962), + 63: uint16(39963), + 64: uint16(39964), + 65: uint16(39965), + 66: uint16(39966), + 67: uint16(39967), + 68: uint16(39968), + 69: uint16(39969), + 70: uint16(39970), + 71: uint16(39971), + 72: uint16(39972), + 73: uint16(39973), + 74: uint16(39974), + 75: uint16(39975), + 76: uint16(39976), + 77: uint16(39977), + 78: uint16(39978), + 79: uint16(39979), + 80: uint16(39980), + 81: uint16(39981), + 82: uint16(39982), + 83: uint16(39983), + 84: uint16(39984), + 85: uint16(39985), + 86: uint16(39986), + 87: uint16(39987), + 88: uint16(39988), + 89: uint16(39989), + 90: uint16(39990), + 91: uint16(39991), + 92: uint16(39992), + 93: uint16(39993), + 94: uint16(39994), + 95: uint16(39995), + 96: uint16(35301), + 97: uint16(35307), + 98: uint16(35311), + 99: uint16(35390), + 100: uint16(35622), + 101: uint16(38739), + 102: uint16(38633), + 103: uint16(38643), + 104: uint16(38639), + 105: uint16(38662), + 106: uint16(38657), + 107: uint16(38664), + 108: uint16(38671), + 109: uint16(38670), + 110: uint16(38698), + 111: uint16(38701), + 112: uint16(38704), + 113: uint16(38718), + 114: uint16(40832), + 115: uint16(40835), + 116: uint16(40837), + 117: uint16(40838), + 118: uint16(40839), + 119: uint16(40840), + 120: uint16(40841), + 121: uint16(40842), + 122: uint16(40844), + 123: uint16(40702), + 124: uint16(40715), + 125: uint16(40717), + 126: uint16(38585), + 127: uint16(38588), + 128: uint16(38589), + 129: uint16(38606), + 130: uint16(38610), + 131: uint16(30655), + 132: uint16(38624), + 133: uint16(37518), + 134: uint16(37550), + 135: uint16(37576), + 136: uint16(37694), + 137: uint16(37738), + 138: uint16(37834), + 139: uint16(37775), + 140: uint16(37950), + 141: uint16(37995), + 142: uint16(40063), + 143: uint16(40066), + 144: uint16(40069), + 145: uint16(40070), + 146: uint16(40071), + 147: uint16(40072), + 148: uint16(31267), + 149: uint16(40075), + 150: uint16(40078), + 151: uint16(40080), + 152: uint16(40081), + 153: uint16(40082), + 154: uint16(40084), + 155: uint16(40085), + 156: uint16(40090), + 157: uint16(40091), + 158: uint16(40094), + 159: uint16(40095), + 160: uint16(40096), + 161: uint16(40097), + 162: uint16(40098), + 163: uint16(40099), + 164: uint16(40101), + 165: uint16(40102), + 166: uint16(40103), + 167: uint16(40104), + 168: uint16(40105), + 169: uint16(40107), + 170: uint16(40109), + 171: uint16(40110), + 172: uint16(40112), + 173: uint16(40113), + 174: uint16(40114), + 175: uint16(40115), + 176: uint16(40116), + 177: uint16(40117), + 178: uint16(40118), + 179: uint16(40119), + 180: uint16(40122), + 181: uint16(40123), + 182: uint16(40124), + 183: uint16(40125), + 184: uint16(40132), + 185: uint16(40133), + 186: uint16(40134), + 187: uint16(40135), + 188: uint16(40138), + 189: uint16(40139), + }, + 118: { + 0: uint16(39996), + 1: uint16(39997), + 2: uint16(39998), + 3: uint16(39999), + 4: uint16(40000), + 5: uint16(40001), + 6: uint16(40002), + 7: uint16(40003), + 8: uint16(40004), + 9: uint16(40005), + 10: uint16(40006), + 11: uint16(40007), + 12: uint16(40008), + 13: uint16(40009), + 14: uint16(40010), + 15: uint16(40011), + 16: uint16(40012), + 17: uint16(40013), + 18: uint16(40014), + 19: uint16(40015), + 20: uint16(40016), + 21: uint16(40017), + 22: uint16(40018), + 23: uint16(40019), + 24: uint16(40020), + 25: uint16(40021), + 26: uint16(40022), + 27: uint16(40023), + 28: uint16(40024), + 29: uint16(40025), + 30: uint16(40026), + 31: uint16(40027), + 32: uint16(40028), + 33: uint16(40029), + 34: uint16(40030), + 35: uint16(40031), + 36: uint16(40032), + 37: uint16(40033), + 38: uint16(40034), + 39: uint16(40035), + 40: uint16(40036), + 41: uint16(40037), + 42: uint16(40038), + 43: uint16(40039), + 44: uint16(40040), + 45: uint16(40041), + 46: uint16(40042), + 47: uint16(40043), + 48: uint16(40044), + 49: uint16(40045), + 50: uint16(40046), + 51: uint16(40047), + 52: uint16(40048), + 53: uint16(40049), + 54: uint16(40050), + 55: uint16(40051), + 56: uint16(40052), + 57: uint16(40053), + 58: uint16(40054), + 59: uint16(40055), + 60: uint16(40056), + 61: uint16(40057), + 62: uint16(40058), + 63: uint16(40059), + 64: uint16(40061), + 65: uint16(40062), + 66: uint16(40064), + 67: uint16(40067), + 68: uint16(40068), + 69: uint16(40073), + 70: uint16(40074), + 71: uint16(40076), + 72: uint16(40079), + 73: uint16(40083), + 74: uint16(40086), + 75: uint16(40087), + 76: uint16(40088), + 77: uint16(40089), + 78: uint16(40093), + 79: uint16(40106), + 80: uint16(40108), + 81: uint16(40111), + 82: uint16(40121), + 83: uint16(40126), + 84: uint16(40127), + 85: uint16(40128), + 86: uint16(40129), + 87: uint16(40130), + 88: uint16(40136), + 89: uint16(40137), + 90: uint16(40145), + 91: uint16(40146), + 92: uint16(40154), + 93: uint16(40155), + 94: uint16(40160), + 95: uint16(40161), + 96: uint16(40140), + 97: uint16(40141), + 98: uint16(40142), + 99: uint16(40143), + 100: uint16(40144), + 101: uint16(40147), + 102: uint16(40148), + 103: uint16(40149), + 104: uint16(40151), + 105: uint16(40152), + 106: uint16(40153), + 107: uint16(40156), + 108: uint16(40157), + 109: uint16(40159), + 110: uint16(40162), + 111: uint16(38780), + 112: uint16(38789), + 113: uint16(38801), + 114: uint16(38802), + 115: uint16(38804), + 116: uint16(38831), + 117: uint16(38827), + 118: uint16(38819), + 119: uint16(38834), + 120: uint16(38836), + 121: uint16(39601), + 122: uint16(39600), + 123: uint16(39607), + 124: uint16(40536), + 125: uint16(39606), + 126: uint16(39610), + 127: uint16(39612), + 128: uint16(39617), + 129: uint16(39616), + 130: uint16(39621), + 131: uint16(39618), + 132: uint16(39627), + 133: uint16(39628), + 134: uint16(39633), + 135: uint16(39749), + 136: uint16(39747), + 137: uint16(39751), + 138: uint16(39753), + 139: uint16(39752), + 140: uint16(39757), + 141: uint16(39761), + 142: uint16(39144), + 143: uint16(39181), + 144: uint16(39214), + 145: uint16(39253), + 146: uint16(39252), + 147: uint16(39647), + 148: uint16(39649), + 149: uint16(39654), + 150: uint16(39663), + 151: uint16(39659), + 152: uint16(39675), + 153: uint16(39661), + 154: uint16(39673), + 155: uint16(39688), + 156: uint16(39695), + 157: uint16(39699), + 158: uint16(39711), + 159: uint16(39715), + 160: uint16(40637), + 161: uint16(40638), + 162: uint16(32315), + 163: uint16(40578), + 164: uint16(40583), + 165: uint16(40584), + 166: uint16(40587), + 167: uint16(40594), + 168: uint16(37846), + 169: uint16(40605), + 170: uint16(40607), + 171: uint16(40667), + 172: uint16(40668), + 173: uint16(40669), + 174: uint16(40672), + 175: uint16(40671), + 176: uint16(40674), + 177: uint16(40681), + 178: uint16(40679), + 179: uint16(40677), + 180: uint16(40682), + 181: uint16(40687), + 182: uint16(40738), + 183: uint16(40748), + 184: uint16(40751), + 185: uint16(40761), + 186: uint16(40759), + 187: uint16(40765), + 188: uint16(40766), + 189: uint16(40772), + }, + 119: { + 0: uint16(40163), + 1: uint16(40164), + 2: uint16(40165), + 3: uint16(40166), + 4: uint16(40167), + 5: uint16(40168), + 6: uint16(40169), + 7: uint16(40170), + 8: uint16(40171), + 9: uint16(40172), + 10: uint16(40173), + 11: uint16(40174), + 12: uint16(40175), + 13: uint16(40176), + 14: uint16(40177), + 15: uint16(40178), + 16: uint16(40179), + 17: uint16(40180), + 18: uint16(40181), + 19: uint16(40182), + 20: uint16(40183), + 21: uint16(40184), + 22: uint16(40185), + 23: uint16(40186), + 24: uint16(40187), + 25: uint16(40188), + 26: uint16(40189), + 27: uint16(40190), + 28: uint16(40191), + 29: uint16(40192), + 30: uint16(40193), + 31: uint16(40194), + 32: uint16(40195), + 33: uint16(40196), + 34: uint16(40197), + 35: uint16(40198), + 36: uint16(40199), + 37: uint16(40200), + 38: uint16(40201), + 39: uint16(40202), + 40: uint16(40203), + 41: uint16(40204), + 42: uint16(40205), + 43: uint16(40206), + 44: uint16(40207), + 45: uint16(40208), + 46: uint16(40209), + 47: uint16(40210), + 48: uint16(40211), + 49: uint16(40212), + 50: uint16(40213), + 51: uint16(40214), + 52: uint16(40215), + 53: uint16(40216), + 54: uint16(40217), + 55: uint16(40218), + 56: uint16(40219), + 57: uint16(40220), + 58: uint16(40221), + 59: uint16(40222), + 60: uint16(40223), + 61: uint16(40224), + 62: uint16(40225), + 63: uint16(40226), + 64: uint16(40227), + 65: uint16(40228), + 66: uint16(40229), + 67: uint16(40230), + 68: uint16(40231), + 69: uint16(40232), + 70: uint16(40233), + 71: uint16(40234), + 72: uint16(40235), + 73: uint16(40236), + 74: uint16(40237), + 75: uint16(40238), + 76: uint16(40239), + 77: uint16(40240), + 78: uint16(40241), + 79: uint16(40242), + 80: uint16(40243), + 81: uint16(40244), + 82: uint16(40245), + 83: uint16(40246), + 84: uint16(40247), + 85: uint16(40248), + 86: uint16(40249), + 87: uint16(40250), + 88: uint16(40251), + 89: uint16(40252), + 90: uint16(40253), + 91: uint16(40254), + 92: uint16(40255), + 93: uint16(40256), + 94: uint16(40257), + 95: uint16(40258), + 96: uint16(57908), + 97: uint16(57909), + 98: uint16(57910), + 99: uint16(57911), + 100: uint16(57912), + 101: uint16(57913), + 102: uint16(57914), + 103: uint16(57915), + 104: uint16(57916), + 105: uint16(57917), + 106: uint16(57918), + 107: uint16(57919), + 108: uint16(57920), + 109: uint16(57921), + 110: uint16(57922), + 111: uint16(57923), + 112: uint16(57924), + 113: uint16(57925), + 114: uint16(57926), + 115: uint16(57927), + 116: uint16(57928), + 117: uint16(57929), + 118: uint16(57930), + 119: uint16(57931), + 120: uint16(57932), + 121: uint16(57933), + 122: uint16(57934), + 123: uint16(57935), + 124: uint16(57936), + 125: uint16(57937), + 126: uint16(57938), + 127: uint16(57939), + 128: uint16(57940), + 129: uint16(57941), + 130: uint16(57942), + 131: uint16(57943), + 132: uint16(57944), + 133: uint16(57945), + 134: uint16(57946), + 135: uint16(57947), + 136: uint16(57948), + 137: uint16(57949), + 138: uint16(57950), + 139: uint16(57951), + 140: uint16(57952), + 141: uint16(57953), + 142: uint16(57954), + 143: uint16(57955), + 144: uint16(57956), + 145: uint16(57957), + 146: uint16(57958), + 147: uint16(57959), + 148: uint16(57960), + 149: uint16(57961), + 150: uint16(57962), + 151: uint16(57963), + 152: uint16(57964), + 153: uint16(57965), + 154: uint16(57966), + 155: uint16(57967), + 156: uint16(57968), + 157: uint16(57969), + 158: uint16(57970), + 159: uint16(57971), + 160: uint16(57972), + 161: uint16(57973), + 162: uint16(57974), + 163: uint16(57975), + 164: uint16(57976), + 165: uint16(57977), + 166: uint16(57978), + 167: uint16(57979), + 168: uint16(57980), + 169: uint16(57981), + 170: uint16(57982), + 171: uint16(57983), + 172: uint16(57984), + 173: uint16(57985), + 174: uint16(57986), + 175: uint16(57987), + 176: uint16(57988), + 177: uint16(57989), + 178: uint16(57990), + 179: uint16(57991), + 180: uint16(57992), + 181: uint16(57993), + 182: uint16(57994), + 183: uint16(57995), + 184: uint16(57996), + 185: uint16(57997), + 186: uint16(57998), + 187: uint16(57999), + 188: uint16(58000), + 189: uint16(58001), + }, + 120: { + 0: uint16(40259), + 1: uint16(40260), + 2: uint16(40261), + 3: uint16(40262), + 4: uint16(40263), + 5: uint16(40264), + 6: uint16(40265), + 7: uint16(40266), + 8: uint16(40267), + 9: uint16(40268), + 10: uint16(40269), + 11: uint16(40270), + 12: uint16(40271), + 13: uint16(40272), + 14: uint16(40273), + 15: uint16(40274), + 16: uint16(40275), + 17: uint16(40276), + 18: uint16(40277), + 19: uint16(40278), + 20: uint16(40279), + 21: uint16(40280), + 22: uint16(40281), + 23: uint16(40282), + 24: uint16(40283), + 25: uint16(40284), + 26: uint16(40285), + 27: uint16(40286), + 28: uint16(40287), + 29: uint16(40288), + 30: uint16(40289), + 31: uint16(40290), + 32: uint16(40291), + 33: uint16(40292), + 34: uint16(40293), + 35: uint16(40294), + 36: uint16(40295), + 37: uint16(40296), + 38: uint16(40297), + 39: uint16(40298), + 40: uint16(40299), + 41: uint16(40300), + 42: uint16(40301), + 43: uint16(40302), + 44: uint16(40303), + 45: uint16(40304), + 46: uint16(40305), + 47: uint16(40306), + 48: uint16(40307), + 49: uint16(40308), + 50: uint16(40309), + 51: uint16(40310), + 52: uint16(40311), + 53: uint16(40312), + 54: uint16(40313), + 55: uint16(40314), + 56: uint16(40315), + 57: uint16(40316), + 58: uint16(40317), + 59: uint16(40318), + 60: uint16(40319), + 61: uint16(40320), + 62: uint16(40321), + 63: uint16(40322), + 64: uint16(40323), + 65: uint16(40324), + 66: uint16(40325), + 67: uint16(40326), + 68: uint16(40327), + 69: uint16(40328), + 70: uint16(40329), + 71: uint16(40330), + 72: uint16(40331), + 73: uint16(40332), + 74: uint16(40333), + 75: uint16(40334), + 76: uint16(40335), + 77: uint16(40336), + 78: uint16(40337), + 79: uint16(40338), + 80: uint16(40339), + 81: uint16(40340), + 82: uint16(40341), + 83: uint16(40342), + 84: uint16(40343), + 85: uint16(40344), + 86: uint16(40345), + 87: uint16(40346), + 88: uint16(40347), + 89: uint16(40348), + 90: uint16(40349), + 91: uint16(40350), + 92: uint16(40351), + 93: uint16(40352), + 94: uint16(40353), + 95: uint16(40354), + 96: uint16(58002), + 97: uint16(58003), + 98: uint16(58004), + 99: uint16(58005), + 100: uint16(58006), + 101: uint16(58007), + 102: uint16(58008), + 103: uint16(58009), + 104: uint16(58010), + 105: uint16(58011), + 106: uint16(58012), + 107: uint16(58013), + 108: uint16(58014), + 109: uint16(58015), + 110: uint16(58016), + 111: uint16(58017), + 112: uint16(58018), + 113: uint16(58019), + 114: uint16(58020), + 115: uint16(58021), + 116: uint16(58022), + 117: uint16(58023), + 118: uint16(58024), + 119: uint16(58025), + 120: uint16(58026), + 121: uint16(58027), + 122: uint16(58028), + 123: uint16(58029), + 124: uint16(58030), + 125: uint16(58031), + 126: uint16(58032), + 127: uint16(58033), + 128: uint16(58034), + 129: uint16(58035), + 130: uint16(58036), + 131: uint16(58037), + 132: uint16(58038), + 133: uint16(58039), + 134: uint16(58040), + 135: uint16(58041), + 136: uint16(58042), + 137: uint16(58043), + 138: uint16(58044), + 139: uint16(58045), + 140: uint16(58046), + 141: uint16(58047), + 142: uint16(58048), + 143: uint16(58049), + 144: uint16(58050), + 145: uint16(58051), + 146: uint16(58052), + 147: uint16(58053), + 148: uint16(58054), + 149: uint16(58055), + 150: uint16(58056), + 151: uint16(58057), + 152: uint16(58058), + 153: uint16(58059), + 154: uint16(58060), + 155: uint16(58061), + 156: uint16(58062), + 157: uint16(58063), + 158: uint16(58064), + 159: uint16(58065), + 160: uint16(58066), + 161: uint16(58067), + 162: uint16(58068), + 163: uint16(58069), + 164: uint16(58070), + 165: uint16(58071), + 166: uint16(58072), + 167: uint16(58073), + 168: uint16(58074), + 169: uint16(58075), + 170: uint16(58076), + 171: uint16(58077), + 172: uint16(58078), + 173: uint16(58079), + 174: uint16(58080), + 175: uint16(58081), + 176: uint16(58082), + 177: uint16(58083), + 178: uint16(58084), + 179: uint16(58085), + 180: uint16(58086), + 181: uint16(58087), + 182: uint16(58088), + 183: uint16(58089), + 184: uint16(58090), + 185: uint16(58091), + 186: uint16(58092), + 187: uint16(58093), + 188: uint16(58094), + 189: uint16(58095), + }, + 121: { + 0: uint16(40355), + 1: uint16(40356), + 2: uint16(40357), + 3: uint16(40358), + 4: uint16(40359), + 5: uint16(40360), + 6: uint16(40361), + 7: uint16(40362), + 8: uint16(40363), + 9: uint16(40364), + 10: uint16(40365), + 11: uint16(40366), + 12: uint16(40367), + 13: uint16(40368), + 14: uint16(40369), + 15: uint16(40370), + 16: uint16(40371), + 17: uint16(40372), + 18: uint16(40373), + 19: uint16(40374), + 20: uint16(40375), + 21: uint16(40376), + 22: uint16(40377), + 23: uint16(40378), + 24: uint16(40379), + 25: uint16(40380), + 26: uint16(40381), + 27: uint16(40382), + 28: uint16(40383), + 29: uint16(40384), + 30: uint16(40385), + 31: uint16(40386), + 32: uint16(40387), + 33: uint16(40388), + 34: uint16(40389), + 35: uint16(40390), + 36: uint16(40391), + 37: uint16(40392), + 38: uint16(40393), + 39: uint16(40394), + 40: uint16(40395), + 41: uint16(40396), + 42: uint16(40397), + 43: uint16(40398), + 44: uint16(40399), + 45: uint16(40400), + 46: uint16(40401), + 47: uint16(40402), + 48: uint16(40403), + 49: uint16(40404), + 50: uint16(40405), + 51: uint16(40406), + 52: uint16(40407), + 53: uint16(40408), + 54: uint16(40409), + 55: uint16(40410), + 56: uint16(40411), + 57: uint16(40412), + 58: uint16(40413), + 59: uint16(40414), + 60: uint16(40415), + 61: uint16(40416), + 62: uint16(40417), + 63: uint16(40418), + 64: uint16(40419), + 65: uint16(40420), + 66: uint16(40421), + 67: uint16(40422), + 68: uint16(40423), + 69: uint16(40424), + 70: uint16(40425), + 71: uint16(40426), + 72: uint16(40427), + 73: uint16(40428), + 74: uint16(40429), + 75: uint16(40430), + 76: uint16(40431), + 77: uint16(40432), + 78: uint16(40433), + 79: uint16(40434), + 80: uint16(40435), + 81: uint16(40436), + 82: uint16(40437), + 83: uint16(40438), + 84: uint16(40439), + 85: uint16(40440), + 86: uint16(40441), + 87: uint16(40442), + 88: uint16(40443), + 89: uint16(40444), + 90: uint16(40445), + 91: uint16(40446), + 92: uint16(40447), + 93: uint16(40448), + 94: uint16(40449), + 95: uint16(40450), + 96: uint16(58096), + 97: uint16(58097), + 98: uint16(58098), + 99: uint16(58099), + 100: uint16(58100), + 101: uint16(58101), + 102: uint16(58102), + 103: uint16(58103), + 104: uint16(58104), + 105: uint16(58105), + 106: uint16(58106), + 107: uint16(58107), + 108: uint16(58108), + 109: uint16(58109), + 110: uint16(58110), + 111: uint16(58111), + 112: uint16(58112), + 113: uint16(58113), + 114: uint16(58114), + 115: uint16(58115), + 116: uint16(58116), + 117: uint16(58117), + 118: uint16(58118), + 119: uint16(58119), + 120: uint16(58120), + 121: uint16(58121), + 122: uint16(58122), + 123: uint16(58123), + 124: uint16(58124), + 125: uint16(58125), + 126: uint16(58126), + 127: uint16(58127), + 128: uint16(58128), + 129: uint16(58129), + 130: uint16(58130), + 131: uint16(58131), + 132: uint16(58132), + 133: uint16(58133), + 134: uint16(58134), + 135: uint16(58135), + 136: uint16(58136), + 137: uint16(58137), + 138: uint16(58138), + 139: uint16(58139), + 140: uint16(58140), + 141: uint16(58141), + 142: uint16(58142), + 143: uint16(58143), + 144: uint16(58144), + 145: uint16(58145), + 146: uint16(58146), + 147: uint16(58147), + 148: uint16(58148), + 149: uint16(58149), + 150: uint16(58150), + 151: uint16(58151), + 152: uint16(58152), + 153: uint16(58153), + 154: uint16(58154), + 155: uint16(58155), + 156: uint16(58156), + 157: uint16(58157), + 158: uint16(58158), + 159: uint16(58159), + 160: uint16(58160), + 161: uint16(58161), + 162: uint16(58162), + 163: uint16(58163), + 164: uint16(58164), + 165: uint16(58165), + 166: uint16(58166), + 167: uint16(58167), + 168: uint16(58168), + 169: uint16(58169), + 170: uint16(58170), + 171: uint16(58171), + 172: uint16(58172), + 173: uint16(58173), + 174: uint16(58174), + 175: uint16(58175), + 176: uint16(58176), + 177: uint16(58177), + 178: uint16(58178), + 179: uint16(58179), + 180: uint16(58180), + 181: uint16(58181), + 182: uint16(58182), + 183: uint16(58183), + 184: uint16(58184), + 185: uint16(58185), + 186: uint16(58186), + 187: uint16(58187), + 188: uint16(58188), + 189: uint16(58189), + }, + 122: { + 0: uint16(40451), + 1: uint16(40452), + 2: uint16(40453), + 3: uint16(40454), + 4: uint16(40455), + 5: uint16(40456), + 6: uint16(40457), + 7: uint16(40458), + 8: uint16(40459), + 9: uint16(40460), + 10: uint16(40461), + 11: uint16(40462), + 12: uint16(40463), + 13: uint16(40464), + 14: uint16(40465), + 15: uint16(40466), + 16: uint16(40467), + 17: uint16(40468), + 18: uint16(40469), + 19: uint16(40470), + 20: uint16(40471), + 21: uint16(40472), + 22: uint16(40473), + 23: uint16(40474), + 24: uint16(40475), + 25: uint16(40476), + 26: uint16(40477), + 27: uint16(40478), + 28: uint16(40484), + 29: uint16(40487), + 30: uint16(40494), + 31: uint16(40496), + 32: uint16(40500), + 33: uint16(40507), + 34: uint16(40508), + 35: uint16(40512), + 36: uint16(40525), + 37: uint16(40528), + 38: uint16(40530), + 39: uint16(40531), + 40: uint16(40532), + 41: uint16(40534), + 42: uint16(40537), + 43: uint16(40541), + 44: uint16(40543), + 45: uint16(40544), + 46: uint16(40545), + 47: uint16(40546), + 48: uint16(40549), + 49: uint16(40558), + 50: uint16(40559), + 51: uint16(40562), + 52: uint16(40564), + 53: uint16(40565), + 54: uint16(40566), + 55: uint16(40567), + 56: uint16(40568), + 57: uint16(40569), + 58: uint16(40570), + 59: uint16(40571), + 60: uint16(40572), + 61: uint16(40573), + 62: uint16(40576), + 63: uint16(40577), + 64: uint16(40579), + 65: uint16(40580), + 66: uint16(40581), + 67: uint16(40582), + 68: uint16(40585), + 69: uint16(40586), + 70: uint16(40588), + 71: uint16(40589), + 72: uint16(40590), + 73: uint16(40591), + 74: uint16(40592), + 75: uint16(40593), + 76: uint16(40596), + 77: uint16(40597), + 78: uint16(40598), + 79: uint16(40599), + 80: uint16(40600), + 81: uint16(40601), + 82: uint16(40602), + 83: uint16(40603), + 84: uint16(40604), + 85: uint16(40606), + 86: uint16(40608), + 87: uint16(40609), + 88: uint16(40610), + 89: uint16(40611), + 90: uint16(40612), + 91: uint16(40613), + 92: uint16(40615), + 93: uint16(40616), + 94: uint16(40617), + 95: uint16(40618), + 96: uint16(58190), + 97: uint16(58191), + 98: uint16(58192), + 99: uint16(58193), + 100: uint16(58194), + 101: uint16(58195), + 102: uint16(58196), + 103: uint16(58197), + 104: uint16(58198), + 105: uint16(58199), + 106: uint16(58200), + 107: uint16(58201), + 108: uint16(58202), + 109: uint16(58203), + 110: uint16(58204), + 111: uint16(58205), + 112: uint16(58206), + 113: uint16(58207), + 114: uint16(58208), + 115: uint16(58209), + 116: uint16(58210), + 117: uint16(58211), + 118: uint16(58212), + 119: uint16(58213), + 120: uint16(58214), + 121: uint16(58215), + 122: uint16(58216), + 123: uint16(58217), + 124: uint16(58218), + 125: uint16(58219), + 126: uint16(58220), + 127: uint16(58221), + 128: uint16(58222), + 129: uint16(58223), + 130: uint16(58224), + 131: uint16(58225), + 132: uint16(58226), + 133: uint16(58227), + 134: uint16(58228), + 135: uint16(58229), + 136: uint16(58230), + 137: uint16(58231), + 138: uint16(58232), + 139: uint16(58233), + 140: uint16(58234), + 141: uint16(58235), + 142: uint16(58236), + 143: uint16(58237), + 144: uint16(58238), + 145: uint16(58239), + 146: uint16(58240), + 147: uint16(58241), + 148: uint16(58242), + 149: uint16(58243), + 150: uint16(58244), + 151: uint16(58245), + 152: uint16(58246), + 153: uint16(58247), + 154: uint16(58248), + 155: uint16(58249), + 156: uint16(58250), + 157: uint16(58251), + 158: uint16(58252), + 159: uint16(58253), + 160: uint16(58254), + 161: uint16(58255), + 162: uint16(58256), + 163: uint16(58257), + 164: uint16(58258), + 165: uint16(58259), + 166: uint16(58260), + 167: uint16(58261), + 168: uint16(58262), + 169: uint16(58263), + 170: uint16(58264), + 171: uint16(58265), + 172: uint16(58266), + 173: uint16(58267), + 174: uint16(58268), + 175: uint16(58269), + 176: uint16(58270), + 177: uint16(58271), + 178: uint16(58272), + 179: uint16(58273), + 180: uint16(58274), + 181: uint16(58275), + 182: uint16(58276), + 183: uint16(58277), + 184: uint16(58278), + 185: uint16(58279), + 186: uint16(58280), + 187: uint16(58281), + 188: uint16(58282), + 189: uint16(58283), + }, + 123: { + 0: uint16(40619), + 1: uint16(40620), + 2: uint16(40621), + 3: uint16(40622), + 4: uint16(40623), + 5: uint16(40624), + 6: uint16(40625), + 7: uint16(40626), + 8: uint16(40627), + 9: uint16(40629), + 10: uint16(40630), + 11: uint16(40631), + 12: uint16(40633), + 13: uint16(40634), + 14: uint16(40636), + 15: uint16(40639), + 16: uint16(40640), + 17: uint16(40641), + 18: uint16(40642), + 19: uint16(40643), + 20: uint16(40645), + 21: uint16(40646), + 22: uint16(40647), + 23: uint16(40648), + 24: uint16(40650), + 25: uint16(40651), + 26: uint16(40652), + 27: uint16(40656), + 28: uint16(40658), + 29: uint16(40659), + 30: uint16(40661), + 31: uint16(40662), + 32: uint16(40663), + 33: uint16(40665), + 34: uint16(40666), + 35: uint16(40670), + 36: uint16(40673), + 37: uint16(40675), + 38: uint16(40676), + 39: uint16(40678), + 40: uint16(40680), + 41: uint16(40683), + 42: uint16(40684), + 43: uint16(40685), + 44: uint16(40686), + 45: uint16(40688), + 46: uint16(40689), + 47: uint16(40690), + 48: uint16(40691), + 49: uint16(40692), + 50: uint16(40693), + 51: uint16(40694), + 52: uint16(40695), + 53: uint16(40696), + 54: uint16(40698), + 55: uint16(40701), + 56: uint16(40703), + 57: uint16(40704), + 58: uint16(40705), + 59: uint16(40706), + 60: uint16(40707), + 61: uint16(40708), + 62: uint16(40709), + 63: uint16(40710), + 64: uint16(40711), + 65: uint16(40712), + 66: uint16(40713), + 67: uint16(40714), + 68: uint16(40716), + 69: uint16(40719), + 70: uint16(40721), + 71: uint16(40722), + 72: uint16(40724), + 73: uint16(40725), + 74: uint16(40726), + 75: uint16(40728), + 76: uint16(40730), + 77: uint16(40731), + 78: uint16(40732), + 79: uint16(40733), + 80: uint16(40734), + 81: uint16(40735), + 82: uint16(40737), + 83: uint16(40739), + 84: uint16(40740), + 85: uint16(40741), + 86: uint16(40742), + 87: uint16(40743), + 88: uint16(40744), + 89: uint16(40745), + 90: uint16(40746), + 91: uint16(40747), + 92: uint16(40749), + 93: uint16(40750), + 94: uint16(40752), + 95: uint16(40753), + 96: uint16(58284), + 97: uint16(58285), + 98: uint16(58286), + 99: uint16(58287), + 100: uint16(58288), + 101: uint16(58289), + 102: uint16(58290), + 103: uint16(58291), + 104: uint16(58292), + 105: uint16(58293), + 106: uint16(58294), + 107: uint16(58295), + 108: uint16(58296), + 109: uint16(58297), + 110: uint16(58298), + 111: uint16(58299), + 112: uint16(58300), + 113: uint16(58301), + 114: uint16(58302), + 115: uint16(58303), + 116: uint16(58304), + 117: uint16(58305), + 118: uint16(58306), + 119: uint16(58307), + 120: uint16(58308), + 121: uint16(58309), + 122: uint16(58310), + 123: uint16(58311), + 124: uint16(58312), + 125: uint16(58313), + 126: uint16(58314), + 127: uint16(58315), + 128: uint16(58316), + 129: uint16(58317), + 130: uint16(58318), + 131: uint16(58319), + 132: uint16(58320), + 133: uint16(58321), + 134: uint16(58322), + 135: uint16(58323), + 136: uint16(58324), + 137: uint16(58325), + 138: uint16(58326), + 139: uint16(58327), + 140: uint16(58328), + 141: uint16(58329), + 142: uint16(58330), + 143: uint16(58331), + 144: uint16(58332), + 145: uint16(58333), + 146: uint16(58334), + 147: uint16(58335), + 148: uint16(58336), + 149: uint16(58337), + 150: uint16(58338), + 151: uint16(58339), + 152: uint16(58340), + 153: uint16(58341), + 154: uint16(58342), + 155: uint16(58343), + 156: uint16(58344), + 157: uint16(58345), + 158: uint16(58346), + 159: uint16(58347), + 160: uint16(58348), + 161: uint16(58349), + 162: uint16(58350), + 163: uint16(58351), + 164: uint16(58352), + 165: uint16(58353), + 166: uint16(58354), + 167: uint16(58355), + 168: uint16(58356), + 169: uint16(58357), + 170: uint16(58358), + 171: uint16(58359), + 172: uint16(58360), + 173: uint16(58361), + 174: uint16(58362), + 175: uint16(58363), + 176: uint16(58364), + 177: uint16(58365), + 178: uint16(58366), + 179: uint16(58367), + 180: uint16(58368), + 181: uint16(58369), + 182: uint16(58370), + 183: uint16(58371), + 184: uint16(58372), + 185: uint16(58373), + 186: uint16(58374), + 187: uint16(58375), + 188: uint16(58376), + 189: uint16(58377), + }, + 124: { + 0: uint16(40754), + 1: uint16(40755), + 2: uint16(40756), + 3: uint16(40757), + 4: uint16(40758), + 5: uint16(40760), + 6: uint16(40762), + 7: uint16(40764), + 8: uint16(40767), + 9: uint16(40768), + 10: uint16(40769), + 11: uint16(40770), + 12: uint16(40771), + 13: uint16(40773), + 14: uint16(40774), + 15: uint16(40775), + 16: uint16(40776), + 17: uint16(40777), + 18: uint16(40778), + 19: uint16(40779), + 20: uint16(40780), + 21: uint16(40781), + 22: uint16(40782), + 23: uint16(40783), + 24: uint16(40786), + 25: uint16(40787), + 26: uint16(40788), + 27: uint16(40789), + 28: uint16(40790), + 29: uint16(40791), + 30: uint16(40792), + 31: uint16(40793), + 32: uint16(40794), + 33: uint16(40795), + 34: uint16(40796), + 35: uint16(40797), + 36: uint16(40798), + 37: uint16(40799), + 38: uint16(40800), + 39: uint16(40801), + 40: uint16(40802), + 41: uint16(40803), + 42: uint16(40804), + 43: uint16(40805), + 44: uint16(40806), + 45: uint16(40807), + 46: uint16(40808), + 47: uint16(40809), + 48: uint16(40810), + 49: uint16(40811), + 50: uint16(40812), + 51: uint16(40813), + 52: uint16(40814), + 53: uint16(40815), + 54: uint16(40816), + 55: uint16(40817), + 56: uint16(40818), + 57: uint16(40819), + 58: uint16(40820), + 59: uint16(40821), + 60: uint16(40822), + 61: uint16(40823), + 62: uint16(40824), + 63: uint16(40825), + 64: uint16(40826), + 65: uint16(40827), + 66: uint16(40828), + 67: uint16(40829), + 68: uint16(40830), + 69: uint16(40833), + 70: uint16(40834), + 71: uint16(40845), + 72: uint16(40846), + 73: uint16(40847), + 74: uint16(40848), + 75: uint16(40849), + 76: uint16(40850), + 77: uint16(40851), + 78: uint16(40852), + 79: uint16(40853), + 80: uint16(40854), + 81: uint16(40855), + 82: uint16(40856), + 83: uint16(40860), + 84: uint16(40861), + 85: uint16(40862), + 86: uint16(40865), + 87: uint16(40866), + 88: uint16(40867), + 89: uint16(40868), + 90: uint16(40869), + 91: uint16(63788), + 92: uint16(63865), + 93: uint16(63893), + 94: uint16(63975), + 95: uint16(63985), + 96: uint16(58378), + 97: uint16(58379), + 98: uint16(58380), + 99: uint16(58381), + 100: uint16(58382), + 101: uint16(58383), + 102: uint16(58384), + 103: uint16(58385), + 104: uint16(58386), + 105: uint16(58387), + 106: uint16(58388), + 107: uint16(58389), + 108: uint16(58390), + 109: uint16(58391), + 110: uint16(58392), + 111: uint16(58393), + 112: uint16(58394), + 113: uint16(58395), + 114: uint16(58396), + 115: uint16(58397), + 116: uint16(58398), + 117: uint16(58399), + 118: uint16(58400), + 119: uint16(58401), + 120: uint16(58402), + 121: uint16(58403), + 122: uint16(58404), + 123: uint16(58405), + 124: uint16(58406), + 125: uint16(58407), + 126: uint16(58408), + 127: uint16(58409), + 128: uint16(58410), + 129: uint16(58411), + 130: uint16(58412), + 131: uint16(58413), + 132: uint16(58414), + 133: uint16(58415), + 134: uint16(58416), + 135: uint16(58417), + 136: uint16(58418), + 137: uint16(58419), + 138: uint16(58420), + 139: uint16(58421), + 140: uint16(58422), + 141: uint16(58423), + 142: uint16(58424), + 143: uint16(58425), + 144: uint16(58426), + 145: uint16(58427), + 146: uint16(58428), + 147: uint16(58429), + 148: uint16(58430), + 149: uint16(58431), + 150: uint16(58432), + 151: uint16(58433), + 152: uint16(58434), + 153: uint16(58435), + 154: uint16(58436), + 155: uint16(58437), + 156: uint16(58438), + 157: uint16(58439), + 158: uint16(58440), + 159: uint16(58441), + 160: uint16(58442), + 161: uint16(58443), + 162: uint16(58444), + 163: uint16(58445), + 164: uint16(58446), + 165: uint16(58447), + 166: uint16(58448), + 167: uint16(58449), + 168: uint16(58450), + 169: uint16(58451), + 170: uint16(58452), + 171: uint16(58453), + 172: uint16(58454), + 173: uint16(58455), + 174: uint16(58456), + 175: uint16(58457), + 176: uint16(58458), + 177: uint16(58459), + 178: uint16(58460), + 179: uint16(58461), + 180: uint16(58462), + 181: uint16(58463), + 182: uint16(58464), + 183: uint16(58465), + 184: uint16(58466), + 185: uint16(58467), + 186: uint16(58468), + 187: uint16(58469), + 188: uint16(58470), + 189: uint16(58471), + }, + 125: { + 0: uint16(64012), + 1: uint16(64013), + 2: uint16(64014), + 3: uint16(64015), + 4: uint16(64017), + 5: uint16(64019), + 6: uint16(64020), + 7: uint16(64024), + 8: uint16(64031), + 9: uint16(64032), + 10: uint16(64033), + 11: uint16(64035), + 12: uint16(64036), + 13: uint16(64039), + 14: uint16(64040), + 15: uint16(64041), + 16: uint16(11905), + 17: uint16(59414), + 18: uint16(59415), + 19: uint16(59416), + 20: uint16(11908), + 21: uint16(13427), + 22: uint16(13383), + 23: uint16(11912), + 24: uint16(11915), + 25: uint16(59422), + 26: uint16(13726), + 27: uint16(13850), + 28: uint16(13838), + 29: uint16(11916), + 30: uint16(11927), + 31: uint16(14702), + 32: uint16(14616), + 33: uint16(59430), + 34: uint16(14799), + 35: uint16(14815), + 36: uint16(14963), + 37: uint16(14800), + 38: uint16(59435), + 39: uint16(59436), + 40: uint16(15182), + 41: uint16(15470), + 42: uint16(15584), + 43: uint16(11943), + 44: uint16(59441), + 45: uint16(59442), + 46: uint16(11946), + 47: uint16(16470), + 48: uint16(16735), + 49: uint16(11950), + 50: uint16(17207), + 51: uint16(11955), + 52: uint16(11958), + 53: uint16(11959), + 54: uint16(59451), + 55: uint16(17329), + 56: uint16(17324), + 57: uint16(11963), + 58: uint16(17373), + 59: uint16(17622), + 60: uint16(18017), + 61: uint16(17996), + 62: uint16(59459), + 63: uint16(18211), + 64: uint16(18217), + 65: uint16(18300), + 66: uint16(18317), + 67: uint16(11978), + 68: uint16(18759), + 69: uint16(18810), + 70: uint16(18813), + 71: uint16(18818), + 72: uint16(18819), + 73: uint16(18821), + 74: uint16(18822), + 75: uint16(18847), + 76: uint16(18843), + 77: uint16(18871), + 78: uint16(18870), + 79: uint16(59476), + 80: uint16(59477), + 81: uint16(19619), + 82: uint16(19615), + 83: uint16(19616), + 84: uint16(19617), + 85: uint16(19575), + 86: uint16(19618), + 87: uint16(19731), + 88: uint16(19732), + 89: uint16(19733), + 90: uint16(19734), + 91: uint16(19735), + 92: uint16(19736), + 93: uint16(19737), + 94: uint16(19886), + 95: uint16(59492), + 96: uint16(58472), + 97: uint16(58473), + 98: uint16(58474), + 99: uint16(58475), + 100: uint16(58476), + 101: uint16(58477), + 102: uint16(58478), + 103: uint16(58479), + 104: uint16(58480), + 105: uint16(58481), + 106: uint16(58482), + 107: uint16(58483), + 108: uint16(58484), + 109: uint16(58485), + 110: uint16(58486), + 111: uint16(58487), + 112: uint16(58488), + 113: uint16(58489), + 114: uint16(58490), + 115: uint16(58491), + 116: uint16(58492), + 117: uint16(58493), + 118: uint16(58494), + 119: uint16(58495), + 120: uint16(58496), + 121: uint16(58497), + 122: uint16(58498), + 123: uint16(58499), + 124: uint16(58500), + 125: uint16(58501), + 126: uint16(58502), + 127: uint16(58503), + 128: uint16(58504), + 129: uint16(58505), + 130: uint16(58506), + 131: uint16(58507), + 132: uint16(58508), + 133: uint16(58509), + 134: uint16(58510), + 135: uint16(58511), + 136: uint16(58512), + 137: uint16(58513), + 138: uint16(58514), + 139: uint16(58515), + 140: uint16(58516), + 141: uint16(58517), + 142: uint16(58518), + 143: uint16(58519), + 144: uint16(58520), + 145: uint16(58521), + 146: uint16(58522), + 147: uint16(58523), + 148: uint16(58524), + 149: uint16(58525), + 150: uint16(58526), + 151: uint16(58527), + 152: uint16(58528), + 153: uint16(58529), + 154: uint16(58530), + 155: uint16(58531), + 156: uint16(58532), + 157: uint16(58533), + 158: uint16(58534), + 159: uint16(58535), + 160: uint16(58536), + 161: uint16(58537), + 162: uint16(58538), + 163: uint16(58539), + 164: uint16(58540), + 165: uint16(58541), + 166: uint16(58542), + 167: uint16(58543), + 168: uint16(58544), + 169: uint16(58545), + 170: uint16(58546), + 171: uint16(58547), + 172: uint16(58548), + 173: uint16(58549), + 174: uint16(58550), + 175: uint16(58551), + 176: uint16(58552), + 177: uint16(58553), + 178: uint16(58554), + 179: uint16(58555), + 180: uint16(58556), + 181: uint16(58557), + 182: uint16(58558), + 183: uint16(58559), + 184: uint16(58560), + 185: uint16(58561), + 186: uint16(58562), + 187: uint16(58563), + 188: uint16(58564), + 189: uint16(58565), + }, +} + +var _big5 = [89][157]uint16{ + 0: { + 0: uint16(12288), + 1: uint16(65292), + 2: uint16(12289), + 3: uint16(12290), + 4: uint16(65294), + 5: uint16(8231), + 6: uint16(65307), + 7: uint16(65306), + 8: uint16(65311), + 9: uint16(65281), + 10: uint16(65072), + 11: uint16(8230), + 12: uint16(8229), + 13: uint16(65104), + 14: uint16(65105), + 15: uint16(65106), + 16: uint16(183), + 17: uint16(65108), + 18: uint16(65109), + 19: uint16(65110), + 20: uint16(65111), + 21: uint16(65372), + 22: uint16(8211), + 23: uint16(65073), + 24: uint16(8212), + 25: uint16(65075), + 26: uint16(9588), + 27: uint16(65076), + 28: uint16(65103), + 29: uint16(65288), + 30: uint16(65289), + 31: uint16(65077), + 32: uint16(65078), + 33: uint16(65371), + 34: uint16(65373), + 35: uint16(65079), + 36: uint16(65080), + 37: uint16(12308), + 38: uint16(12309), + 39: uint16(65081), + 40: uint16(65082), + 41: uint16(12304), + 42: uint16(12305), + 43: uint16(65083), + 44: uint16(65084), + 45: uint16(12298), + 46: uint16(12299), + 47: uint16(65085), + 48: uint16(65086), + 49: uint16(12296), + 50: uint16(12297), + 51: uint16(65087), + 52: uint16(65088), + 53: uint16(12300), + 54: uint16(12301), + 55: uint16(65089), + 56: uint16(65090), + 57: uint16(12302), + 58: uint16(12303), + 59: uint16(65091), + 60: uint16(65092), + 61: uint16(65113), + 62: uint16(65114), + 63: uint16(65115), + 64: uint16(65116), + 65: uint16(65117), + 66: uint16(65118), + 67: uint16(8216), + 68: uint16(8217), + 69: uint16(8220), + 70: uint16(8221), + 71: uint16(12317), + 72: uint16(12318), + 73: uint16(8245), + 74: uint16(8242), + 75: uint16(65283), + 76: uint16(65286), + 77: uint16(65290), + 78: uint16(8251), + 79: uint16(167), + 80: uint16(12291), + 81: uint16(9675), + 82: uint16(9679), + 83: uint16(9651), + 84: uint16(9650), + 85: uint16(9678), + 86: uint16(9734), + 87: uint16(9733), + 88: uint16(9671), + 89: uint16(9670), + 90: uint16(9633), + 91: uint16(9632), + 92: uint16(9661), + 93: uint16(9660), + 94: uint16(12963), + 95: uint16(8453), + 96: uint16(175), + 97: uint16(65507), + 98: uint16(65343), + 99: uint16(717), + 100: uint16(65097), + 101: uint16(65098), + 102: uint16(65101), + 103: uint16(65102), + 104: uint16(65099), + 105: uint16(65100), + 106: uint16(65119), + 107: uint16(65120), + 108: uint16(65121), + 109: uint16(65291), + 110: uint16(65293), + 111: uint16(215), + 112: uint16(247), + 113: uint16(177), + 114: uint16(8730), + 115: uint16(65308), + 116: uint16(65310), + 117: uint16(65309), + 118: uint16(8806), + 119: uint16(8807), + 120: uint16(8800), + 121: uint16(8734), + 122: uint16(8786), + 123: uint16(8801), + 124: uint16(65122), + 125: uint16(65123), + 126: uint16(65124), + 127: uint16(65125), + 128: uint16(65126), + 129: uint16(65374), + 130: uint16(8745), + 131: uint16(8746), + 132: uint16(8869), + 133: uint16(8736), + 134: uint16(8735), + 135: uint16(8895), + 136: uint16(13266), + 137: uint16(13265), + 138: uint16(8747), + 139: uint16(8750), + 140: uint16(8757), + 141: uint16(8756), + 142: uint16(9792), + 143: uint16(9794), + 144: uint16(8853), + 145: uint16(8857), + 146: uint16(8593), + 147: uint16(8595), + 148: uint16(8592), + 149: uint16(8594), + 150: uint16(8598), + 151: uint16(8599), + 152: uint16(8601), + 153: uint16(8600), + 154: uint16(8741), + 155: uint16(8739), + 156: uint16(65295), + }, + 1: { + 0: uint16(65340), + 1: uint16(8725), + 2: uint16(65128), + 3: uint16(65284), + 4: uint16(65509), + 5: uint16(12306), + 6: uint16(65504), + 7: uint16(65505), + 8: uint16(65285), + 9: uint16(65312), + 10: uint16(8451), + 11: uint16(8457), + 12: uint16(65129), + 13: uint16(65130), + 14: uint16(65131), + 15: uint16(13269), + 16: uint16(13212), + 17: uint16(13213), + 18: uint16(13214), + 19: uint16(13262), + 20: uint16(13217), + 21: uint16(13198), + 22: uint16(13199), + 23: uint16(13252), + 24: uint16(176), + 25: uint16(20825), + 26: uint16(20827), + 27: uint16(20830), + 28: uint16(20829), + 29: uint16(20833), + 30: uint16(20835), + 31: uint16(21991), + 32: uint16(29929), + 33: uint16(31950), + 34: uint16(9601), + 35: uint16(9602), + 36: uint16(9603), + 37: uint16(9604), + 38: uint16(9605), + 39: uint16(9606), + 40: uint16(9607), + 41: uint16(9608), + 42: uint16(9615), + 43: uint16(9614), + 44: uint16(9613), + 45: uint16(9612), + 46: uint16(9611), + 47: uint16(9610), + 48: uint16(9609), + 49: uint16(9532), + 50: uint16(9524), + 51: uint16(9516), + 52: uint16(9508), + 53: uint16(9500), + 54: uint16(9620), + 55: uint16(9472), + 56: uint16(9474), + 57: uint16(9621), + 58: uint16(9484), + 59: uint16(9488), + 60: uint16(9492), + 61: uint16(9496), + 62: uint16(9581), + 63: uint16(9582), + 64: uint16(9584), + 65: uint16(9583), + 66: uint16(9552), + 67: uint16(9566), + 68: uint16(9578), + 69: uint16(9569), + 70: uint16(9698), + 71: uint16(9699), + 72: uint16(9701), + 73: uint16(9700), + 74: uint16(9585), + 75: uint16(9586), + 76: uint16(9587), + 77: uint16(65296), + 78: uint16(65297), + 79: uint16(65298), + 80: uint16(65299), + 81: uint16(65300), + 82: uint16(65301), + 83: uint16(65302), + 84: uint16(65303), + 85: uint16(65304), + 86: uint16(65305), + 87: uint16(8544), + 88: uint16(8545), + 89: uint16(8546), + 90: uint16(8547), + 91: uint16(8548), + 92: uint16(8549), + 93: uint16(8550), + 94: uint16(8551), + 95: uint16(8552), + 96: uint16(8553), + 97: uint16(12321), + 98: uint16(12322), + 99: uint16(12323), + 100: uint16(12324), + 101: uint16(12325), + 102: uint16(12326), + 103: uint16(12327), + 104: uint16(12328), + 105: uint16(12329), + 106: uint16(21313), + 107: uint16(21316), + 108: uint16(21317), + 109: uint16(65313), + 110: uint16(65314), + 111: uint16(65315), + 112: uint16(65316), + 113: uint16(65317), + 114: uint16(65318), + 115: uint16(65319), + 116: uint16(65320), + 117: uint16(65321), + 118: uint16(65322), + 119: uint16(65323), + 120: uint16(65324), + 121: uint16(65325), + 122: uint16(65326), + 123: uint16(65327), + 124: uint16(65328), + 125: uint16(65329), + 126: uint16(65330), + 127: uint16(65331), + 128: uint16(65332), + 129: uint16(65333), + 130: uint16(65334), + 131: uint16(65335), + 132: uint16(65336), + 133: uint16(65337), + 134: uint16(65338), + 135: uint16(65345), + 136: uint16(65346), + 137: uint16(65347), + 138: uint16(65348), + 139: uint16(65349), + 140: uint16(65350), + 141: uint16(65351), + 142: uint16(65352), + 143: uint16(65353), + 144: uint16(65354), + 145: uint16(65355), + 146: uint16(65356), + 147: uint16(65357), + 148: uint16(65358), + 149: uint16(65359), + 150: uint16(65360), + 151: uint16(65361), + 152: uint16(65362), + 153: uint16(65363), + 154: uint16(65364), + 155: uint16(65365), + 156: uint16(65366), + }, + 2: { + 0: uint16(65367), + 1: uint16(65368), + 2: uint16(65369), + 3: uint16(65370), + 4: uint16(913), + 5: uint16(914), + 6: uint16(915), + 7: uint16(916), + 8: uint16(917), + 9: uint16(918), + 10: uint16(919), + 11: uint16(920), + 12: uint16(921), + 13: uint16(922), + 14: uint16(923), + 15: uint16(924), + 16: uint16(925), + 17: uint16(926), + 18: uint16(927), + 19: uint16(928), + 20: uint16(929), + 21: uint16(931), + 22: uint16(932), + 23: uint16(933), + 24: uint16(934), + 25: uint16(935), + 26: uint16(936), + 27: uint16(937), + 28: uint16(945), + 29: uint16(946), + 30: uint16(947), + 31: uint16(948), + 32: uint16(949), + 33: uint16(950), + 34: uint16(951), + 35: uint16(952), + 36: uint16(953), + 37: uint16(954), + 38: uint16(955), + 39: uint16(956), + 40: uint16(957), + 41: uint16(958), + 42: uint16(959), + 43: uint16(960), + 44: uint16(961), + 45: uint16(963), + 46: uint16(964), + 47: uint16(965), + 48: uint16(966), + 49: uint16(967), + 50: uint16(968), + 51: uint16(969), + 52: uint16(12549), + 53: uint16(12550), + 54: uint16(12551), + 55: uint16(12552), + 56: uint16(12553), + 57: uint16(12554), + 58: uint16(12555), + 59: uint16(12556), + 60: uint16(12557), + 61: uint16(12558), + 62: uint16(12559), + 63: uint16(12560), + 64: uint16(12561), + 65: uint16(12562), + 66: uint16(12563), + 67: uint16(12564), + 68: uint16(12565), + 69: uint16(12566), + 70: uint16(12567), + 71: uint16(12568), + 72: uint16(12569), + 73: uint16(12570), + 74: uint16(12571), + 75: uint16(12572), + 76: uint16(12573), + 77: uint16(12574), + 78: uint16(12575), + 79: uint16(12576), + 80: uint16(12577), + 81: uint16(12578), + 82: uint16(12579), + 83: uint16(12580), + 84: uint16(12581), + 85: uint16(12582), + 86: uint16(12583), + 87: uint16(12584), + 88: uint16(12585), + 89: uint16(729), + 90: uint16(713), + 91: uint16(714), + 92: uint16(711), + 93: uint16(715), + 94: uint16(9216), + 95: uint16(9217), + 96: uint16(9218), + 97: uint16(9219), + 98: uint16(9220), + 99: uint16(9221), + 100: uint16(9222), + 101: uint16(9223), + 102: uint16(9224), + 103: uint16(9225), + 104: uint16(9226), + 105: uint16(9227), + 106: uint16(9228), + 107: uint16(9229), + 108: uint16(9230), + 109: uint16(9231), + 110: uint16(9232), + 111: uint16(9233), + 112: uint16(9234), + 113: uint16(9235), + 114: uint16(9236), + 115: uint16(9237), + 116: uint16(9238), + 117: uint16(9239), + 118: uint16(9240), + 119: uint16(9241), + 120: uint16(9242), + 121: uint16(9243), + 122: uint16(9244), + 123: uint16(9245), + 124: uint16(9246), + 125: uint16(9247), + 126: uint16(9249), + 127: uint16(8364), + }, + 3: { + 0: uint16(19968), + 1: uint16(20057), + 2: uint16(19969), + 3: uint16(19971), + 4: uint16(20035), + 5: uint16(20061), + 6: uint16(20102), + 7: uint16(20108), + 8: uint16(20154), + 9: uint16(20799), + 10: uint16(20837), + 11: uint16(20843), + 12: uint16(20960), + 13: uint16(20992), + 14: uint16(20993), + 15: uint16(21147), + 16: uint16(21269), + 17: uint16(21313), + 18: uint16(21340), + 19: uint16(21448), + 20: uint16(19977), + 21: uint16(19979), + 22: uint16(19976), + 23: uint16(19978), + 24: uint16(20011), + 25: uint16(20024), + 26: uint16(20961), + 27: uint16(20037), + 28: uint16(20040), + 29: uint16(20063), + 30: uint16(20062), + 31: uint16(20110), + 32: uint16(20129), + 33: uint16(20800), + 34: uint16(20995), + 35: uint16(21242), + 36: uint16(21315), + 37: uint16(21449), + 38: uint16(21475), + 39: uint16(22303), + 40: uint16(22763), + 41: uint16(22805), + 42: uint16(22823), + 43: uint16(22899), + 44: uint16(23376), + 45: uint16(23377), + 46: uint16(23379), + 47: uint16(23544), + 48: uint16(23567), + 49: uint16(23586), + 50: uint16(23608), + 51: uint16(23665), + 52: uint16(24029), + 53: uint16(24037), + 54: uint16(24049), + 55: uint16(24050), + 56: uint16(24051), + 57: uint16(24062), + 58: uint16(24178), + 59: uint16(24318), + 60: uint16(24331), + 61: uint16(24339), + 62: uint16(25165), + 63: uint16(19985), + 64: uint16(19984), + 65: uint16(19981), + 66: uint16(20013), + 67: uint16(20016), + 68: uint16(20025), + 69: uint16(20043), + 70: uint16(23609), + 71: uint16(20104), + 72: uint16(20113), + 73: uint16(20117), + 74: uint16(20114), + 75: uint16(20116), + 76: uint16(20130), + 77: uint16(20161), + 78: uint16(20160), + 79: uint16(20163), + 80: uint16(20166), + 81: uint16(20167), + 82: uint16(20173), + 83: uint16(20170), + 84: uint16(20171), + 85: uint16(20164), + 86: uint16(20803), + 87: uint16(20801), + 88: uint16(20839), + 89: uint16(20845), + 90: uint16(20846), + 91: uint16(20844), + 92: uint16(20887), + 93: uint16(20982), + 94: uint16(20998), + 95: uint16(20999), + 96: uint16(21000), + 97: uint16(21243), + 98: uint16(21246), + 99: uint16(21247), + 100: uint16(21270), + 101: uint16(21305), + 102: uint16(21320), + 103: uint16(21319), + 104: uint16(21317), + 105: uint16(21342), + 106: uint16(21380), + 107: uint16(21451), + 108: uint16(21450), + 109: uint16(21453), + 110: uint16(22764), + 111: uint16(22825), + 112: uint16(22827), + 113: uint16(22826), + 114: uint16(22829), + 115: uint16(23380), + 116: uint16(23569), + 117: uint16(23588), + 118: uint16(23610), + 119: uint16(23663), + 120: uint16(24052), + 121: uint16(24187), + 122: uint16(24319), + 123: uint16(24340), + 124: uint16(24341), + 125: uint16(24515), + 126: uint16(25096), + 127: uint16(25142), + 128: uint16(25163), + 129: uint16(25166), + 130: uint16(25903), + 131: uint16(25991), + 132: uint16(26007), + 133: uint16(26020), + 134: uint16(26041), + 135: uint16(26085), + 136: uint16(26352), + 137: uint16(26376), + 138: uint16(26408), + 139: uint16(27424), + 140: uint16(27490), + 141: uint16(27513), + 142: uint16(27595), + 143: uint16(27604), + 144: uint16(27611), + 145: uint16(27663), + 146: uint16(27700), + 147: uint16(28779), + 148: uint16(29226), + 149: uint16(29238), + 150: uint16(29243), + 151: uint16(29255), + 152: uint16(29273), + 153: uint16(29275), + 154: uint16(29356), + 155: uint16(29579), + 156: uint16(19993), + }, + 4: { + 0: uint16(19990), + 1: uint16(19989), + 2: uint16(19988), + 3: uint16(19992), + 4: uint16(20027), + 5: uint16(20045), + 6: uint16(20047), + 7: uint16(20046), + 8: uint16(20197), + 9: uint16(20184), + 10: uint16(20180), + 11: uint16(20181), + 12: uint16(20182), + 13: uint16(20183), + 14: uint16(20195), + 15: uint16(20196), + 16: uint16(20185), + 17: uint16(20190), + 18: uint16(20805), + 19: uint16(20804), + 20: uint16(20873), + 21: uint16(20874), + 22: uint16(20908), + 23: uint16(20985), + 24: uint16(20986), + 25: uint16(20984), + 26: uint16(21002), + 27: uint16(21152), + 28: uint16(21151), + 29: uint16(21253), + 30: uint16(21254), + 31: uint16(21271), + 32: uint16(21277), + 33: uint16(20191), + 34: uint16(21322), + 35: uint16(21321), + 36: uint16(21345), + 37: uint16(21344), + 38: uint16(21359), + 39: uint16(21358), + 40: uint16(21435), + 41: uint16(21487), + 42: uint16(21476), + 43: uint16(21491), + 44: uint16(21484), + 45: uint16(21486), + 46: uint16(21481), + 47: uint16(21480), + 48: uint16(21500), + 49: uint16(21496), + 50: uint16(21493), + 51: uint16(21483), + 52: uint16(21478), + 53: uint16(21482), + 54: uint16(21490), + 55: uint16(21489), + 56: uint16(21488), + 57: uint16(21477), + 58: uint16(21485), + 59: uint16(21499), + 60: uint16(22235), + 61: uint16(22234), + 62: uint16(22806), + 63: uint16(22830), + 64: uint16(22833), + 65: uint16(22900), + 66: uint16(22902), + 67: uint16(23381), + 68: uint16(23427), + 69: uint16(23612), + 70: uint16(24040), + 71: uint16(24039), + 72: uint16(24038), + 73: uint16(24066), + 74: uint16(24067), + 75: uint16(24179), + 76: uint16(24188), + 77: uint16(24321), + 78: uint16(24344), + 79: uint16(24343), + 80: uint16(24517), + 81: uint16(25098), + 82: uint16(25171), + 83: uint16(25172), + 84: uint16(25170), + 85: uint16(25169), + 86: uint16(26021), + 87: uint16(26086), + 88: uint16(26414), + 89: uint16(26412), + 90: uint16(26410), + 91: uint16(26411), + 92: uint16(26413), + 93: uint16(27491), + 94: uint16(27597), + 95: uint16(27665), + 96: uint16(27664), + 97: uint16(27704), + 98: uint16(27713), + 99: uint16(27712), + 100: uint16(27710), + 101: uint16(29359), + 102: uint16(29572), + 103: uint16(29577), + 104: uint16(29916), + 105: uint16(29926), + 106: uint16(29976), + 107: uint16(29983), + 108: uint16(29992), + 109: uint16(29993), + 110: uint16(30000), + 111: uint16(30001), + 112: uint16(30002), + 113: uint16(30003), + 114: uint16(30091), + 115: uint16(30333), + 116: uint16(30382), + 117: uint16(30399), + 118: uint16(30446), + 119: uint16(30683), + 120: uint16(30690), + 121: uint16(30707), + 122: uint16(31034), + 123: uint16(31166), + 124: uint16(31348), + 125: uint16(31435), + 126: uint16(19998), + 127: uint16(19999), + 128: uint16(20050), + 129: uint16(20051), + 130: uint16(20073), + 131: uint16(20121), + 132: uint16(20132), + 133: uint16(20134), + 134: uint16(20133), + 135: uint16(20223), + 136: uint16(20233), + 137: uint16(20249), + 138: uint16(20234), + 139: uint16(20245), + 140: uint16(20237), + 141: uint16(20240), + 142: uint16(20241), + 143: uint16(20239), + 144: uint16(20210), + 145: uint16(20214), + 146: uint16(20219), + 147: uint16(20208), + 148: uint16(20211), + 149: uint16(20221), + 150: uint16(20225), + 151: uint16(20235), + 152: uint16(20809), + 153: uint16(20807), + 154: uint16(20806), + 155: uint16(20808), + 156: uint16(20840), + }, + 5: { + 0: uint16(20849), + 1: uint16(20877), + 2: uint16(20912), + 3: uint16(21015), + 4: uint16(21009), + 5: uint16(21010), + 6: uint16(21006), + 7: uint16(21014), + 8: uint16(21155), + 9: uint16(21256), + 10: uint16(21281), + 11: uint16(21280), + 12: uint16(21360), + 13: uint16(21361), + 14: uint16(21513), + 15: uint16(21519), + 16: uint16(21516), + 17: uint16(21514), + 18: uint16(21520), + 19: uint16(21505), + 20: uint16(21515), + 21: uint16(21508), + 22: uint16(21521), + 23: uint16(21517), + 24: uint16(21512), + 25: uint16(21507), + 26: uint16(21518), + 27: uint16(21510), + 28: uint16(21522), + 29: uint16(22240), + 30: uint16(22238), + 31: uint16(22237), + 32: uint16(22323), + 33: uint16(22320), + 34: uint16(22312), + 35: uint16(22317), + 36: uint16(22316), + 37: uint16(22319), + 38: uint16(22313), + 39: uint16(22809), + 40: uint16(22810), + 41: uint16(22839), + 42: uint16(22840), + 43: uint16(22916), + 44: uint16(22904), + 45: uint16(22915), + 46: uint16(22909), + 47: uint16(22905), + 48: uint16(22914), + 49: uint16(22913), + 50: uint16(23383), + 51: uint16(23384), + 52: uint16(23431), + 53: uint16(23432), + 54: uint16(23429), + 55: uint16(23433), + 56: uint16(23546), + 57: uint16(23574), + 58: uint16(23673), + 59: uint16(24030), + 60: uint16(24070), + 61: uint16(24182), + 62: uint16(24180), + 63: uint16(24335), + 64: uint16(24347), + 65: uint16(24537), + 66: uint16(24534), + 67: uint16(25102), + 68: uint16(25100), + 69: uint16(25101), + 70: uint16(25104), + 71: uint16(25187), + 72: uint16(25179), + 73: uint16(25176), + 74: uint16(25910), + 75: uint16(26089), + 76: uint16(26088), + 77: uint16(26092), + 78: uint16(26093), + 79: uint16(26354), + 80: uint16(26355), + 81: uint16(26377), + 82: uint16(26429), + 83: uint16(26420), + 84: uint16(26417), + 85: uint16(26421), + 86: uint16(27425), + 87: uint16(27492), + 88: uint16(27515), + 89: uint16(27670), + 90: uint16(27741), + 91: uint16(27735), + 92: uint16(27737), + 93: uint16(27743), + 94: uint16(27744), + 95: uint16(27728), + 96: uint16(27733), + 97: uint16(27745), + 98: uint16(27739), + 99: uint16(27725), + 100: uint16(27726), + 101: uint16(28784), + 102: uint16(29279), + 103: uint16(29277), + 104: uint16(30334), + 105: uint16(31481), + 106: uint16(31859), + 107: uint16(31992), + 108: uint16(32566), + 109: uint16(32650), + 110: uint16(32701), + 111: uint16(32769), + 112: uint16(32771), + 113: uint16(32780), + 114: uint16(32786), + 115: uint16(32819), + 116: uint16(32895), + 117: uint16(32905), + 118: uint16(32907), + 119: uint16(32908), + 120: uint16(33251), + 121: uint16(33258), + 122: uint16(33267), + 123: uint16(33276), + 124: uint16(33292), + 125: uint16(33307), + 126: uint16(33311), + 127: uint16(33390), + 128: uint16(33394), + 129: uint16(33406), + 130: uint16(34411), + 131: uint16(34880), + 132: uint16(34892), + 133: uint16(34915), + 134: uint16(35199), + 135: uint16(38433), + 136: uint16(20018), + 137: uint16(20136), + 138: uint16(20301), + 139: uint16(20303), + 140: uint16(20295), + 141: uint16(20311), + 142: uint16(20318), + 143: uint16(20276), + 144: uint16(20315), + 145: uint16(20309), + 146: uint16(20272), + 147: uint16(20304), + 148: uint16(20305), + 149: uint16(20285), + 150: uint16(20282), + 151: uint16(20280), + 152: uint16(20291), + 153: uint16(20308), + 154: uint16(20284), + 155: uint16(20294), + 156: uint16(20323), + }, + 6: { + 0: uint16(20316), + 1: uint16(20320), + 2: uint16(20271), + 3: uint16(20302), + 4: uint16(20278), + 5: uint16(20313), + 6: uint16(20317), + 7: uint16(20296), + 8: uint16(20314), + 9: uint16(20812), + 10: uint16(20811), + 11: uint16(20813), + 12: uint16(20853), + 13: uint16(20918), + 14: uint16(20919), + 15: uint16(21029), + 16: uint16(21028), + 17: uint16(21033), + 18: uint16(21034), + 19: uint16(21032), + 20: uint16(21163), + 21: uint16(21161), + 22: uint16(21162), + 23: uint16(21164), + 24: uint16(21283), + 25: uint16(21363), + 26: uint16(21365), + 27: uint16(21533), + 28: uint16(21549), + 29: uint16(21534), + 30: uint16(21566), + 31: uint16(21542), + 32: uint16(21582), + 33: uint16(21543), + 34: uint16(21574), + 35: uint16(21571), + 36: uint16(21555), + 37: uint16(21576), + 38: uint16(21570), + 39: uint16(21531), + 40: uint16(21545), + 41: uint16(21578), + 42: uint16(21561), + 43: uint16(21563), + 44: uint16(21560), + 45: uint16(21550), + 46: uint16(21557), + 47: uint16(21558), + 48: uint16(21536), + 49: uint16(21564), + 50: uint16(21568), + 51: uint16(21553), + 52: uint16(21547), + 53: uint16(21535), + 54: uint16(21548), + 55: uint16(22250), + 56: uint16(22256), + 57: uint16(22244), + 58: uint16(22251), + 59: uint16(22346), + 60: uint16(22353), + 61: uint16(22336), + 62: uint16(22349), + 63: uint16(22343), + 64: uint16(22350), + 65: uint16(22334), + 66: uint16(22352), + 67: uint16(22351), + 68: uint16(22331), + 69: uint16(22767), + 70: uint16(22846), + 71: uint16(22941), + 72: uint16(22930), + 73: uint16(22952), + 74: uint16(22942), + 75: uint16(22947), + 76: uint16(22937), + 77: uint16(22934), + 78: uint16(22925), + 79: uint16(22948), + 80: uint16(22931), + 81: uint16(22922), + 82: uint16(22949), + 83: uint16(23389), + 84: uint16(23388), + 85: uint16(23386), + 86: uint16(23387), + 87: uint16(23436), + 88: uint16(23435), + 89: uint16(23439), + 90: uint16(23596), + 91: uint16(23616), + 92: uint16(23617), + 93: uint16(23615), + 94: uint16(23614), + 95: uint16(23696), + 96: uint16(23697), + 97: uint16(23700), + 98: uint16(23692), + 99: uint16(24043), + 100: uint16(24076), + 101: uint16(24207), + 102: uint16(24199), + 103: uint16(24202), + 104: uint16(24311), + 105: uint16(24324), + 106: uint16(24351), + 107: uint16(24420), + 108: uint16(24418), + 109: uint16(24439), + 110: uint16(24441), + 111: uint16(24536), + 112: uint16(24524), + 113: uint16(24535), + 114: uint16(24525), + 115: uint16(24561), + 116: uint16(24555), + 117: uint16(24568), + 118: uint16(24554), + 119: uint16(25106), + 120: uint16(25105), + 121: uint16(25220), + 122: uint16(25239), + 123: uint16(25238), + 124: uint16(25216), + 125: uint16(25206), + 126: uint16(25225), + 127: uint16(25197), + 128: uint16(25226), + 129: uint16(25212), + 130: uint16(25214), + 131: uint16(25209), + 132: uint16(25203), + 133: uint16(25234), + 134: uint16(25199), + 135: uint16(25240), + 136: uint16(25198), + 137: uint16(25237), + 138: uint16(25235), + 139: uint16(25233), + 140: uint16(25222), + 141: uint16(25913), + 142: uint16(25915), + 143: uint16(25912), + 144: uint16(26097), + 145: uint16(26356), + 146: uint16(26463), + 147: uint16(26446), + 148: uint16(26447), + 149: uint16(26448), + 150: uint16(26449), + 151: uint16(26460), + 152: uint16(26454), + 153: uint16(26462), + 154: uint16(26441), + 155: uint16(26438), + 156: uint16(26464), + }, + 7: { + 0: uint16(26451), + 1: uint16(26455), + 2: uint16(27493), + 3: uint16(27599), + 4: uint16(27714), + 5: uint16(27742), + 6: uint16(27801), + 7: uint16(27777), + 8: uint16(27784), + 9: uint16(27785), + 10: uint16(27781), + 11: uint16(27803), + 12: uint16(27754), + 13: uint16(27770), + 14: uint16(27792), + 15: uint16(27760), + 16: uint16(27788), + 17: uint16(27752), + 18: uint16(27798), + 19: uint16(27794), + 20: uint16(27773), + 21: uint16(27779), + 22: uint16(27762), + 23: uint16(27774), + 24: uint16(27764), + 25: uint16(27782), + 26: uint16(27766), + 27: uint16(27789), + 28: uint16(27796), + 29: uint16(27800), + 30: uint16(27778), + 31: uint16(28790), + 32: uint16(28796), + 33: uint16(28797), + 34: uint16(28792), + 35: uint16(29282), + 36: uint16(29281), + 37: uint16(29280), + 38: uint16(29380), + 39: uint16(29378), + 40: uint16(29590), + 41: uint16(29996), + 42: uint16(29995), + 43: uint16(30007), + 44: uint16(30008), + 45: uint16(30338), + 46: uint16(30447), + 47: uint16(30691), + 48: uint16(31169), + 49: uint16(31168), + 50: uint16(31167), + 51: uint16(31350), + 52: uint16(31995), + 53: uint16(32597), + 54: uint16(32918), + 55: uint16(32915), + 56: uint16(32925), + 57: uint16(32920), + 58: uint16(32923), + 59: uint16(32922), + 60: uint16(32946), + 61: uint16(33391), + 62: uint16(33426), + 63: uint16(33419), + 64: uint16(33421), + 65: uint16(35211), + 66: uint16(35282), + 67: uint16(35328), + 68: uint16(35895), + 69: uint16(35910), + 70: uint16(35925), + 71: uint16(35997), + 72: uint16(36196), + 73: uint16(36208), + 74: uint16(36275), + 75: uint16(36523), + 76: uint16(36554), + 77: uint16(36763), + 78: uint16(36784), + 79: uint16(36802), + 80: uint16(36806), + 81: uint16(36805), + 82: uint16(36804), + 83: uint16(24033), + 84: uint16(37009), + 85: uint16(37026), + 86: uint16(37034), + 87: uint16(37030), + 88: uint16(37027), + 89: uint16(37193), + 90: uint16(37318), + 91: uint16(37324), + 92: uint16(38450), + 93: uint16(38446), + 94: uint16(38449), + 95: uint16(38442), + 96: uint16(38444), + 97: uint16(20006), + 98: uint16(20054), + 99: uint16(20083), + 100: uint16(20107), + 101: uint16(20123), + 102: uint16(20126), + 103: uint16(20139), + 104: uint16(20140), + 105: uint16(20335), + 106: uint16(20381), + 107: uint16(20365), + 108: uint16(20339), + 109: uint16(20351), + 110: uint16(20332), + 111: uint16(20379), + 112: uint16(20363), + 113: uint16(20358), + 114: uint16(20355), + 115: uint16(20336), + 116: uint16(20341), + 117: uint16(20360), + 118: uint16(20329), + 119: uint16(20347), + 120: uint16(20374), + 121: uint16(20350), + 122: uint16(20367), + 123: uint16(20369), + 124: uint16(20346), + 125: uint16(20820), + 126: uint16(20818), + 127: uint16(20821), + 128: uint16(20841), + 129: uint16(20855), + 130: uint16(20854), + 131: uint16(20856), + 132: uint16(20925), + 133: uint16(20989), + 134: uint16(21051), + 135: uint16(21048), + 136: uint16(21047), + 137: uint16(21050), + 138: uint16(21040), + 139: uint16(21038), + 140: uint16(21046), + 141: uint16(21057), + 142: uint16(21182), + 143: uint16(21179), + 144: uint16(21330), + 145: uint16(21332), + 146: uint16(21331), + 147: uint16(21329), + 148: uint16(21350), + 149: uint16(21367), + 150: uint16(21368), + 151: uint16(21369), + 152: uint16(21462), + 153: uint16(21460), + 154: uint16(21463), + 155: uint16(21619), + 156: uint16(21621), + }, + 8: { + 0: uint16(21654), + 1: uint16(21624), + 2: uint16(21653), + 3: uint16(21632), + 4: uint16(21627), + 5: uint16(21623), + 6: uint16(21636), + 7: uint16(21650), + 8: uint16(21638), + 9: uint16(21628), + 10: uint16(21648), + 11: uint16(21617), + 12: uint16(21622), + 13: uint16(21644), + 14: uint16(21658), + 15: uint16(21602), + 16: uint16(21608), + 17: uint16(21643), + 18: uint16(21629), + 19: uint16(21646), + 20: uint16(22266), + 21: uint16(22403), + 22: uint16(22391), + 23: uint16(22378), + 24: uint16(22377), + 25: uint16(22369), + 26: uint16(22374), + 27: uint16(22372), + 28: uint16(22396), + 29: uint16(22812), + 30: uint16(22857), + 31: uint16(22855), + 32: uint16(22856), + 33: uint16(22852), + 34: uint16(22868), + 35: uint16(22974), + 36: uint16(22971), + 37: uint16(22996), + 38: uint16(22969), + 39: uint16(22958), + 40: uint16(22993), + 41: uint16(22982), + 42: uint16(22992), + 43: uint16(22989), + 44: uint16(22987), + 45: uint16(22995), + 46: uint16(22986), + 47: uint16(22959), + 48: uint16(22963), + 49: uint16(22994), + 50: uint16(22981), + 51: uint16(23391), + 52: uint16(23396), + 53: uint16(23395), + 54: uint16(23447), + 55: uint16(23450), + 56: uint16(23448), + 57: uint16(23452), + 58: uint16(23449), + 59: uint16(23451), + 60: uint16(23578), + 61: uint16(23624), + 62: uint16(23621), + 63: uint16(23622), + 64: uint16(23735), + 65: uint16(23713), + 66: uint16(23736), + 67: uint16(23721), + 68: uint16(23723), + 69: uint16(23729), + 70: uint16(23731), + 71: uint16(24088), + 72: uint16(24090), + 73: uint16(24086), + 74: uint16(24085), + 75: uint16(24091), + 76: uint16(24081), + 77: uint16(24184), + 78: uint16(24218), + 79: uint16(24215), + 80: uint16(24220), + 81: uint16(24213), + 82: uint16(24214), + 83: uint16(24310), + 84: uint16(24358), + 85: uint16(24359), + 86: uint16(24361), + 87: uint16(24448), + 88: uint16(24449), + 89: uint16(24447), + 90: uint16(24444), + 91: uint16(24541), + 92: uint16(24544), + 93: uint16(24573), + 94: uint16(24565), + 95: uint16(24575), + 96: uint16(24591), + 97: uint16(24596), + 98: uint16(24623), + 99: uint16(24629), + 100: uint16(24598), + 101: uint16(24618), + 102: uint16(24597), + 103: uint16(24609), + 104: uint16(24615), + 105: uint16(24617), + 106: uint16(24619), + 107: uint16(24603), + 108: uint16(25110), + 109: uint16(25109), + 110: uint16(25151), + 111: uint16(25150), + 112: uint16(25152), + 113: uint16(25215), + 114: uint16(25289), + 115: uint16(25292), + 116: uint16(25284), + 117: uint16(25279), + 118: uint16(25282), + 119: uint16(25273), + 120: uint16(25298), + 121: uint16(25307), + 122: uint16(25259), + 123: uint16(25299), + 124: uint16(25300), + 125: uint16(25291), + 126: uint16(25288), + 127: uint16(25256), + 128: uint16(25277), + 129: uint16(25276), + 130: uint16(25296), + 131: uint16(25305), + 132: uint16(25287), + 133: uint16(25293), + 134: uint16(25269), + 135: uint16(25306), + 136: uint16(25265), + 137: uint16(25304), + 138: uint16(25302), + 139: uint16(25303), + 140: uint16(25286), + 141: uint16(25260), + 142: uint16(25294), + 143: uint16(25918), + 144: uint16(26023), + 145: uint16(26044), + 146: uint16(26106), + 147: uint16(26132), + 148: uint16(26131), + 149: uint16(26124), + 150: uint16(26118), + 151: uint16(26114), + 152: uint16(26126), + 153: uint16(26112), + 154: uint16(26127), + 155: uint16(26133), + 156: uint16(26122), + }, + 9: { + 0: uint16(26119), + 1: uint16(26381), + 2: uint16(26379), + 3: uint16(26477), + 4: uint16(26507), + 5: uint16(26517), + 6: uint16(26481), + 7: uint16(26524), + 8: uint16(26483), + 9: uint16(26487), + 10: uint16(26503), + 11: uint16(26525), + 12: uint16(26519), + 13: uint16(26479), + 14: uint16(26480), + 15: uint16(26495), + 16: uint16(26505), + 17: uint16(26494), + 18: uint16(26512), + 19: uint16(26485), + 20: uint16(26522), + 21: uint16(26515), + 22: uint16(26492), + 23: uint16(26474), + 24: uint16(26482), + 25: uint16(27427), + 26: uint16(27494), + 27: uint16(27495), + 28: uint16(27519), + 29: uint16(27667), + 30: uint16(27675), + 31: uint16(27875), + 32: uint16(27880), + 33: uint16(27891), + 34: uint16(27825), + 35: uint16(27852), + 36: uint16(27877), + 37: uint16(27827), + 38: uint16(27837), + 39: uint16(27838), + 40: uint16(27836), + 41: uint16(27874), + 42: uint16(27819), + 43: uint16(27861), + 44: uint16(27859), + 45: uint16(27832), + 46: uint16(27844), + 47: uint16(27833), + 48: uint16(27841), + 49: uint16(27822), + 50: uint16(27863), + 51: uint16(27845), + 52: uint16(27889), + 53: uint16(27839), + 54: uint16(27835), + 55: uint16(27873), + 56: uint16(27867), + 57: uint16(27850), + 58: uint16(27820), + 59: uint16(27887), + 60: uint16(27868), + 61: uint16(27862), + 62: uint16(27872), + 63: uint16(28821), + 64: uint16(28814), + 65: uint16(28818), + 66: uint16(28810), + 67: uint16(28825), + 68: uint16(29228), + 69: uint16(29229), + 70: uint16(29240), + 71: uint16(29256), + 72: uint16(29287), + 73: uint16(29289), + 74: uint16(29376), + 75: uint16(29390), + 76: uint16(29401), + 77: uint16(29399), + 78: uint16(29392), + 79: uint16(29609), + 80: uint16(29608), + 81: uint16(29599), + 82: uint16(29611), + 83: uint16(29605), + 84: uint16(30013), + 85: uint16(30109), + 86: uint16(30105), + 87: uint16(30106), + 88: uint16(30340), + 89: uint16(30402), + 90: uint16(30450), + 91: uint16(30452), + 92: uint16(30693), + 93: uint16(30717), + 94: uint16(31038), + 95: uint16(31040), + 96: uint16(31041), + 97: uint16(31177), + 98: uint16(31176), + 99: uint16(31354), + 100: uint16(31353), + 101: uint16(31482), + 102: uint16(31998), + 103: uint16(32596), + 104: uint16(32652), + 105: uint16(32651), + 106: uint16(32773), + 107: uint16(32954), + 108: uint16(32933), + 109: uint16(32930), + 110: uint16(32945), + 111: uint16(32929), + 112: uint16(32939), + 113: uint16(32937), + 114: uint16(32948), + 115: uint16(32938), + 116: uint16(32943), + 117: uint16(33253), + 118: uint16(33278), + 119: uint16(33293), + 120: uint16(33459), + 121: uint16(33437), + 122: uint16(33433), + 123: uint16(33453), + 124: uint16(33469), + 125: uint16(33439), + 126: uint16(33465), + 127: uint16(33457), + 128: uint16(33452), + 129: uint16(33445), + 130: uint16(33455), + 131: uint16(33464), + 132: uint16(33443), + 133: uint16(33456), + 134: uint16(33470), + 135: uint16(33463), + 136: uint16(34382), + 137: uint16(34417), + 138: uint16(21021), + 139: uint16(34920), + 140: uint16(36555), + 141: uint16(36814), + 142: uint16(36820), + 143: uint16(36817), + 144: uint16(37045), + 145: uint16(37048), + 146: uint16(37041), + 147: uint16(37046), + 148: uint16(37319), + 149: uint16(37329), + 150: uint16(38263), + 151: uint16(38272), + 152: uint16(38428), + 153: uint16(38464), + 154: uint16(38463), + 155: uint16(38459), + 156: uint16(38468), + }, + 10: { + 0: uint16(38466), + 1: uint16(38585), + 2: uint16(38632), + 3: uint16(38738), + 4: uint16(38750), + 5: uint16(20127), + 6: uint16(20141), + 7: uint16(20142), + 8: uint16(20449), + 9: uint16(20405), + 10: uint16(20399), + 11: uint16(20415), + 12: uint16(20448), + 13: uint16(20433), + 14: uint16(20431), + 15: uint16(20445), + 16: uint16(20419), + 17: uint16(20406), + 18: uint16(20440), + 19: uint16(20447), + 20: uint16(20426), + 21: uint16(20439), + 22: uint16(20398), + 23: uint16(20432), + 24: uint16(20420), + 25: uint16(20418), + 26: uint16(20442), + 27: uint16(20430), + 28: uint16(20446), + 29: uint16(20407), + 30: uint16(20823), + 31: uint16(20882), + 32: uint16(20881), + 33: uint16(20896), + 34: uint16(21070), + 35: uint16(21059), + 36: uint16(21066), + 37: uint16(21069), + 38: uint16(21068), + 39: uint16(21067), + 40: uint16(21063), + 41: uint16(21191), + 42: uint16(21193), + 43: uint16(21187), + 44: uint16(21185), + 45: uint16(21261), + 46: uint16(21335), + 47: uint16(21371), + 48: uint16(21402), + 49: uint16(21467), + 50: uint16(21676), + 51: uint16(21696), + 52: uint16(21672), + 53: uint16(21710), + 54: uint16(21705), + 55: uint16(21688), + 56: uint16(21670), + 57: uint16(21683), + 58: uint16(21703), + 59: uint16(21698), + 60: uint16(21693), + 61: uint16(21674), + 62: uint16(21697), + 63: uint16(21700), + 64: uint16(21704), + 65: uint16(21679), + 66: uint16(21675), + 67: uint16(21681), + 68: uint16(21691), + 69: uint16(21673), + 70: uint16(21671), + 71: uint16(21695), + 72: uint16(22271), + 73: uint16(22402), + 74: uint16(22411), + 75: uint16(22432), + 76: uint16(22435), + 77: uint16(22434), + 78: uint16(22478), + 79: uint16(22446), + 80: uint16(22419), + 81: uint16(22869), + 82: uint16(22865), + 83: uint16(22863), + 84: uint16(22862), + 85: uint16(22864), + 86: uint16(23004), + 87: uint16(23000), + 88: uint16(23039), + 89: uint16(23011), + 90: uint16(23016), + 91: uint16(23043), + 92: uint16(23013), + 93: uint16(23018), + 94: uint16(23002), + 95: uint16(23014), + 96: uint16(23041), + 97: uint16(23035), + 98: uint16(23401), + 99: uint16(23459), + 100: uint16(23462), + 101: uint16(23460), + 102: uint16(23458), + 103: uint16(23461), + 104: uint16(23553), + 105: uint16(23630), + 106: uint16(23631), + 107: uint16(23629), + 108: uint16(23627), + 109: uint16(23769), + 110: uint16(23762), + 111: uint16(24055), + 112: uint16(24093), + 113: uint16(24101), + 114: uint16(24095), + 115: uint16(24189), + 116: uint16(24224), + 117: uint16(24230), + 118: uint16(24314), + 119: uint16(24328), + 120: uint16(24365), + 121: uint16(24421), + 122: uint16(24456), + 123: uint16(24453), + 124: uint16(24458), + 125: uint16(24459), + 126: uint16(24455), + 127: uint16(24460), + 128: uint16(24457), + 129: uint16(24594), + 130: uint16(24605), + 131: uint16(24608), + 132: uint16(24613), + 133: uint16(24590), + 134: uint16(24616), + 135: uint16(24653), + 136: uint16(24688), + 137: uint16(24680), + 138: uint16(24674), + 139: uint16(24646), + 140: uint16(24643), + 141: uint16(24684), + 142: uint16(24683), + 143: uint16(24682), + 144: uint16(24676), + 145: uint16(25153), + 146: uint16(25308), + 147: uint16(25366), + 148: uint16(25353), + 149: uint16(25340), + 150: uint16(25325), + 151: uint16(25345), + 152: uint16(25326), + 153: uint16(25341), + 154: uint16(25351), + 155: uint16(25329), + 156: uint16(25335), + }, + 11: { + 0: uint16(25327), + 1: uint16(25324), + 2: uint16(25342), + 3: uint16(25332), + 4: uint16(25361), + 5: uint16(25346), + 6: uint16(25919), + 7: uint16(25925), + 8: uint16(26027), + 9: uint16(26045), + 10: uint16(26082), + 11: uint16(26149), + 12: uint16(26157), + 13: uint16(26144), + 14: uint16(26151), + 15: uint16(26159), + 16: uint16(26143), + 17: uint16(26152), + 18: uint16(26161), + 19: uint16(26148), + 20: uint16(26359), + 21: uint16(26623), + 22: uint16(26579), + 23: uint16(26609), + 24: uint16(26580), + 25: uint16(26576), + 26: uint16(26604), + 27: uint16(26550), + 28: uint16(26543), + 29: uint16(26613), + 30: uint16(26601), + 31: uint16(26607), + 32: uint16(26564), + 33: uint16(26577), + 34: uint16(26548), + 35: uint16(26586), + 36: uint16(26597), + 37: uint16(26552), + 38: uint16(26575), + 39: uint16(26590), + 40: uint16(26611), + 41: uint16(26544), + 42: uint16(26585), + 43: uint16(26594), + 44: uint16(26589), + 45: uint16(26578), + 46: uint16(27498), + 47: uint16(27523), + 48: uint16(27526), + 49: uint16(27573), + 50: uint16(27602), + 51: uint16(27607), + 52: uint16(27679), + 53: uint16(27849), + 54: uint16(27915), + 55: uint16(27954), + 56: uint16(27946), + 57: uint16(27969), + 58: uint16(27941), + 59: uint16(27916), + 60: uint16(27953), + 61: uint16(27934), + 62: uint16(27927), + 63: uint16(27963), + 64: uint16(27965), + 65: uint16(27966), + 66: uint16(27958), + 67: uint16(27931), + 68: uint16(27893), + 69: uint16(27961), + 70: uint16(27943), + 71: uint16(27960), + 72: uint16(27945), + 73: uint16(27950), + 74: uint16(27957), + 75: uint16(27918), + 76: uint16(27947), + 77: uint16(28843), + 78: uint16(28858), + 79: uint16(28851), + 80: uint16(28844), + 81: uint16(28847), + 82: uint16(28845), + 83: uint16(28856), + 84: uint16(28846), + 85: uint16(28836), + 86: uint16(29232), + 87: uint16(29298), + 88: uint16(29295), + 89: uint16(29300), + 90: uint16(29417), + 91: uint16(29408), + 92: uint16(29409), + 93: uint16(29623), + 94: uint16(29642), + 95: uint16(29627), + 96: uint16(29618), + 97: uint16(29645), + 98: uint16(29632), + 99: uint16(29619), + 100: uint16(29978), + 101: uint16(29997), + 102: uint16(30031), + 103: uint16(30028), + 104: uint16(30030), + 105: uint16(30027), + 106: uint16(30123), + 107: uint16(30116), + 108: uint16(30117), + 109: uint16(30114), + 110: uint16(30115), + 111: uint16(30328), + 112: uint16(30342), + 113: uint16(30343), + 114: uint16(30344), + 115: uint16(30408), + 116: uint16(30406), + 117: uint16(30403), + 118: uint16(30405), + 119: uint16(30465), + 120: uint16(30457), + 121: uint16(30456), + 122: uint16(30473), + 123: uint16(30475), + 124: uint16(30462), + 125: uint16(30460), + 126: uint16(30471), + 127: uint16(30684), + 128: uint16(30722), + 129: uint16(30740), + 130: uint16(30732), + 131: uint16(30733), + 132: uint16(31046), + 133: uint16(31049), + 134: uint16(31048), + 135: uint16(31047), + 136: uint16(31161), + 137: uint16(31162), + 138: uint16(31185), + 139: uint16(31186), + 140: uint16(31179), + 141: uint16(31359), + 142: uint16(31361), + 143: uint16(31487), + 144: uint16(31485), + 145: uint16(31869), + 146: uint16(32002), + 147: uint16(32005), + 148: uint16(32000), + 149: uint16(32009), + 150: uint16(32007), + 151: uint16(32004), + 152: uint16(32006), + 153: uint16(32568), + 154: uint16(32654), + 155: uint16(32703), + 156: uint16(32772), + }, + 12: { + 0: uint16(32784), + 1: uint16(32781), + 2: uint16(32785), + 3: uint16(32822), + 4: uint16(32982), + 5: uint16(32997), + 6: uint16(32986), + 7: uint16(32963), + 8: uint16(32964), + 9: uint16(32972), + 10: uint16(32993), + 11: uint16(32987), + 12: uint16(32974), + 13: uint16(32990), + 14: uint16(32996), + 15: uint16(32989), + 16: uint16(33268), + 17: uint16(33314), + 18: uint16(33511), + 19: uint16(33539), + 20: uint16(33541), + 21: uint16(33507), + 22: uint16(33499), + 23: uint16(33510), + 24: uint16(33540), + 25: uint16(33509), + 26: uint16(33538), + 27: uint16(33545), + 28: uint16(33490), + 29: uint16(33495), + 30: uint16(33521), + 31: uint16(33537), + 32: uint16(33500), + 33: uint16(33492), + 34: uint16(33489), + 35: uint16(33502), + 36: uint16(33491), + 37: uint16(33503), + 38: uint16(33519), + 39: uint16(33542), + 40: uint16(34384), + 41: uint16(34425), + 42: uint16(34427), + 43: uint16(34426), + 44: uint16(34893), + 45: uint16(34923), + 46: uint16(35201), + 47: uint16(35284), + 48: uint16(35336), + 49: uint16(35330), + 50: uint16(35331), + 51: uint16(35998), + 52: uint16(36000), + 53: uint16(36212), + 54: uint16(36211), + 55: uint16(36276), + 56: uint16(36557), + 57: uint16(36556), + 58: uint16(36848), + 59: uint16(36838), + 60: uint16(36834), + 61: uint16(36842), + 62: uint16(36837), + 63: uint16(36845), + 64: uint16(36843), + 65: uint16(36836), + 66: uint16(36840), + 67: uint16(37066), + 68: uint16(37070), + 69: uint16(37057), + 70: uint16(37059), + 71: uint16(37195), + 72: uint16(37194), + 73: uint16(37325), + 74: uint16(38274), + 75: uint16(38480), + 76: uint16(38475), + 77: uint16(38476), + 78: uint16(38477), + 79: uint16(38754), + 80: uint16(38761), + 81: uint16(38859), + 82: uint16(38893), + 83: uint16(38899), + 84: uint16(38913), + 85: uint16(39080), + 86: uint16(39131), + 87: uint16(39135), + 88: uint16(39318), + 89: uint16(39321), + 90: uint16(20056), + 91: uint16(20147), + 92: uint16(20492), + 93: uint16(20493), + 94: uint16(20515), + 95: uint16(20463), + 96: uint16(20518), + 97: uint16(20517), + 98: uint16(20472), + 99: uint16(20521), + 100: uint16(20502), + 101: uint16(20486), + 102: uint16(20540), + 103: uint16(20511), + 104: uint16(20506), + 105: uint16(20498), + 106: uint16(20497), + 107: uint16(20474), + 108: uint16(20480), + 109: uint16(20500), + 110: uint16(20520), + 111: uint16(20465), + 112: uint16(20513), + 113: uint16(20491), + 114: uint16(20505), + 115: uint16(20504), + 116: uint16(20467), + 117: uint16(20462), + 118: uint16(20525), + 119: uint16(20522), + 120: uint16(20478), + 121: uint16(20523), + 122: uint16(20489), + 123: uint16(20860), + 124: uint16(20900), + 125: uint16(20901), + 126: uint16(20898), + 127: uint16(20941), + 128: uint16(20940), + 129: uint16(20934), + 130: uint16(20939), + 131: uint16(21078), + 132: uint16(21084), + 133: uint16(21076), + 134: uint16(21083), + 135: uint16(21085), + 136: uint16(21290), + 137: uint16(21375), + 138: uint16(21407), + 139: uint16(21405), + 140: uint16(21471), + 141: uint16(21736), + 142: uint16(21776), + 143: uint16(21761), + 144: uint16(21815), + 145: uint16(21756), + 146: uint16(21733), + 147: uint16(21746), + 148: uint16(21766), + 149: uint16(21754), + 150: uint16(21780), + 151: uint16(21737), + 152: uint16(21741), + 153: uint16(21729), + 154: uint16(21769), + 155: uint16(21742), + 156: uint16(21738), + }, + 13: { + 0: uint16(21734), + 1: uint16(21799), + 2: uint16(21767), + 3: uint16(21757), + 4: uint16(21775), + 5: uint16(22275), + 6: uint16(22276), + 7: uint16(22466), + 8: uint16(22484), + 9: uint16(22475), + 10: uint16(22467), + 11: uint16(22537), + 12: uint16(22799), + 13: uint16(22871), + 14: uint16(22872), + 15: uint16(22874), + 16: uint16(23057), + 17: uint16(23064), + 18: uint16(23068), + 19: uint16(23071), + 20: uint16(23067), + 21: uint16(23059), + 22: uint16(23020), + 23: uint16(23072), + 24: uint16(23075), + 25: uint16(23081), + 26: uint16(23077), + 27: uint16(23052), + 28: uint16(23049), + 29: uint16(23403), + 30: uint16(23640), + 31: uint16(23472), + 32: uint16(23475), + 33: uint16(23478), + 34: uint16(23476), + 35: uint16(23470), + 36: uint16(23477), + 37: uint16(23481), + 38: uint16(23480), + 39: uint16(23556), + 40: uint16(23633), + 41: uint16(23637), + 42: uint16(23632), + 43: uint16(23789), + 44: uint16(23805), + 45: uint16(23803), + 46: uint16(23786), + 47: uint16(23784), + 48: uint16(23792), + 49: uint16(23798), + 50: uint16(23809), + 51: uint16(23796), + 52: uint16(24046), + 53: uint16(24109), + 54: uint16(24107), + 55: uint16(24235), + 56: uint16(24237), + 57: uint16(24231), + 58: uint16(24369), + 59: uint16(24466), + 60: uint16(24465), + 61: uint16(24464), + 62: uint16(24665), + 63: uint16(24675), + 64: uint16(24677), + 65: uint16(24656), + 66: uint16(24661), + 67: uint16(24685), + 68: uint16(24681), + 69: uint16(24687), + 70: uint16(24708), + 71: uint16(24735), + 72: uint16(24730), + 73: uint16(24717), + 74: uint16(24724), + 75: uint16(24716), + 76: uint16(24709), + 77: uint16(24726), + 78: uint16(25159), + 79: uint16(25331), + 80: uint16(25352), + 81: uint16(25343), + 82: uint16(25422), + 83: uint16(25406), + 84: uint16(25391), + 85: uint16(25429), + 86: uint16(25410), + 87: uint16(25414), + 88: uint16(25423), + 89: uint16(25417), + 90: uint16(25402), + 91: uint16(25424), + 92: uint16(25405), + 93: uint16(25386), + 94: uint16(25387), + 95: uint16(25384), + 96: uint16(25421), + 97: uint16(25420), + 98: uint16(25928), + 99: uint16(25929), + 100: uint16(26009), + 101: uint16(26049), + 102: uint16(26053), + 103: uint16(26178), + 104: uint16(26185), + 105: uint16(26191), + 106: uint16(26179), + 107: uint16(26194), + 108: uint16(26188), + 109: uint16(26181), + 110: uint16(26177), + 111: uint16(26360), + 112: uint16(26388), + 113: uint16(26389), + 114: uint16(26391), + 115: uint16(26657), + 116: uint16(26680), + 117: uint16(26696), + 118: uint16(26694), + 119: uint16(26707), + 120: uint16(26681), + 121: uint16(26690), + 122: uint16(26708), + 123: uint16(26665), + 124: uint16(26803), + 125: uint16(26647), + 126: uint16(26700), + 127: uint16(26705), + 128: uint16(26685), + 129: uint16(26612), + 130: uint16(26704), + 131: uint16(26688), + 132: uint16(26684), + 133: uint16(26691), + 134: uint16(26666), + 135: uint16(26693), + 136: uint16(26643), + 137: uint16(26648), + 138: uint16(26689), + 139: uint16(27530), + 140: uint16(27529), + 141: uint16(27575), + 142: uint16(27683), + 143: uint16(27687), + 144: uint16(27688), + 145: uint16(27686), + 146: uint16(27684), + 147: uint16(27888), + 148: uint16(28010), + 149: uint16(28053), + 150: uint16(28040), + 151: uint16(28039), + 152: uint16(28006), + 153: uint16(28024), + 154: uint16(28023), + 155: uint16(27993), + 156: uint16(28051), + }, + 14: { + 0: uint16(28012), + 1: uint16(28041), + 2: uint16(28014), + 3: uint16(27994), + 4: uint16(28020), + 5: uint16(28009), + 6: uint16(28044), + 7: uint16(28042), + 8: uint16(28025), + 9: uint16(28037), + 10: uint16(28005), + 11: uint16(28052), + 12: uint16(28874), + 13: uint16(28888), + 14: uint16(28900), + 15: uint16(28889), + 16: uint16(28872), + 17: uint16(28879), + 18: uint16(29241), + 19: uint16(29305), + 20: uint16(29436), + 21: uint16(29433), + 22: uint16(29437), + 23: uint16(29432), + 24: uint16(29431), + 25: uint16(29574), + 26: uint16(29677), + 27: uint16(29705), + 28: uint16(29678), + 29: uint16(29664), + 30: uint16(29674), + 31: uint16(29662), + 32: uint16(30036), + 33: uint16(30045), + 34: uint16(30044), + 35: uint16(30042), + 36: uint16(30041), + 37: uint16(30142), + 38: uint16(30149), + 39: uint16(30151), + 40: uint16(30130), + 41: uint16(30131), + 42: uint16(30141), + 43: uint16(30140), + 44: uint16(30137), + 45: uint16(30146), + 46: uint16(30136), + 47: uint16(30347), + 48: uint16(30384), + 49: uint16(30410), + 50: uint16(30413), + 51: uint16(30414), + 52: uint16(30505), + 53: uint16(30495), + 54: uint16(30496), + 55: uint16(30504), + 56: uint16(30697), + 57: uint16(30768), + 58: uint16(30759), + 59: uint16(30776), + 60: uint16(30749), + 61: uint16(30772), + 62: uint16(30775), + 63: uint16(30757), + 64: uint16(30765), + 65: uint16(30752), + 66: uint16(30751), + 67: uint16(30770), + 68: uint16(31061), + 69: uint16(31056), + 70: uint16(31072), + 71: uint16(31071), + 72: uint16(31062), + 73: uint16(31070), + 74: uint16(31069), + 75: uint16(31063), + 76: uint16(31066), + 77: uint16(31204), + 78: uint16(31203), + 79: uint16(31207), + 80: uint16(31199), + 81: uint16(31206), + 82: uint16(31209), + 83: uint16(31192), + 84: uint16(31364), + 85: uint16(31368), + 86: uint16(31449), + 87: uint16(31494), + 88: uint16(31505), + 89: uint16(31881), + 90: uint16(32033), + 91: uint16(32023), + 92: uint16(32011), + 93: uint16(32010), + 94: uint16(32032), + 95: uint16(32034), + 96: uint16(32020), + 97: uint16(32016), + 98: uint16(32021), + 99: uint16(32026), + 100: uint16(32028), + 101: uint16(32013), + 102: uint16(32025), + 103: uint16(32027), + 104: uint16(32570), + 105: uint16(32607), + 106: uint16(32660), + 107: uint16(32709), + 108: uint16(32705), + 109: uint16(32774), + 110: uint16(32792), + 111: uint16(32789), + 112: uint16(32793), + 113: uint16(32791), + 114: uint16(32829), + 115: uint16(32831), + 116: uint16(33009), + 117: uint16(33026), + 118: uint16(33008), + 119: uint16(33029), + 120: uint16(33005), + 121: uint16(33012), + 122: uint16(33030), + 123: uint16(33016), + 124: uint16(33011), + 125: uint16(33032), + 126: uint16(33021), + 127: uint16(33034), + 128: uint16(33020), + 129: uint16(33007), + 130: uint16(33261), + 131: uint16(33260), + 132: uint16(33280), + 133: uint16(33296), + 134: uint16(33322), + 135: uint16(33323), + 136: uint16(33320), + 137: uint16(33324), + 138: uint16(33467), + 139: uint16(33579), + 140: uint16(33618), + 141: uint16(33620), + 142: uint16(33610), + 143: uint16(33592), + 144: uint16(33616), + 145: uint16(33609), + 146: uint16(33589), + 147: uint16(33588), + 148: uint16(33615), + 149: uint16(33586), + 150: uint16(33593), + 151: uint16(33590), + 152: uint16(33559), + 153: uint16(33600), + 154: uint16(33585), + 155: uint16(33576), + 156: uint16(33603), + }, + 15: { + 0: uint16(34388), + 1: uint16(34442), + 2: uint16(34474), + 3: uint16(34451), + 4: uint16(34468), + 5: uint16(34473), + 6: uint16(34444), + 7: uint16(34467), + 8: uint16(34460), + 9: uint16(34928), + 10: uint16(34935), + 11: uint16(34945), + 12: uint16(34946), + 13: uint16(34941), + 14: uint16(34937), + 15: uint16(35352), + 16: uint16(35344), + 17: uint16(35342), + 18: uint16(35340), + 19: uint16(35349), + 20: uint16(35338), + 21: uint16(35351), + 22: uint16(35347), + 23: uint16(35350), + 24: uint16(35343), + 25: uint16(35345), + 26: uint16(35912), + 27: uint16(35962), + 28: uint16(35961), + 29: uint16(36001), + 30: uint16(36002), + 31: uint16(36215), + 32: uint16(36524), + 33: uint16(36562), + 34: uint16(36564), + 35: uint16(36559), + 36: uint16(36785), + 37: uint16(36865), + 38: uint16(36870), + 39: uint16(36855), + 40: uint16(36864), + 41: uint16(36858), + 42: uint16(36852), + 43: uint16(36867), + 44: uint16(36861), + 45: uint16(36869), + 46: uint16(36856), + 47: uint16(37013), + 48: uint16(37089), + 49: uint16(37085), + 50: uint16(37090), + 51: uint16(37202), + 52: uint16(37197), + 53: uint16(37196), + 54: uint16(37336), + 55: uint16(37341), + 56: uint16(37335), + 57: uint16(37340), + 58: uint16(37337), + 59: uint16(38275), + 60: uint16(38498), + 61: uint16(38499), + 62: uint16(38497), + 63: uint16(38491), + 64: uint16(38493), + 65: uint16(38500), + 66: uint16(38488), + 67: uint16(38494), + 68: uint16(38587), + 69: uint16(39138), + 70: uint16(39340), + 71: uint16(39592), + 72: uint16(39640), + 73: uint16(39717), + 74: uint16(39730), + 75: uint16(39740), + 76: uint16(20094), + 77: uint16(20602), + 78: uint16(20605), + 79: uint16(20572), + 80: uint16(20551), + 81: uint16(20547), + 82: uint16(20556), + 83: uint16(20570), + 84: uint16(20553), + 85: uint16(20581), + 86: uint16(20598), + 87: uint16(20558), + 88: uint16(20565), + 89: uint16(20597), + 90: uint16(20596), + 91: uint16(20599), + 92: uint16(20559), + 93: uint16(20495), + 94: uint16(20591), + 95: uint16(20589), + 96: uint16(20828), + 97: uint16(20885), + 98: uint16(20976), + 99: uint16(21098), + 100: uint16(21103), + 101: uint16(21202), + 102: uint16(21209), + 103: uint16(21208), + 104: uint16(21205), + 105: uint16(21264), + 106: uint16(21263), + 107: uint16(21273), + 108: uint16(21311), + 109: uint16(21312), + 110: uint16(21310), + 111: uint16(21443), + 112: uint16(26364), + 113: uint16(21830), + 114: uint16(21866), + 115: uint16(21862), + 116: uint16(21828), + 117: uint16(21854), + 118: uint16(21857), + 119: uint16(21827), + 120: uint16(21834), + 121: uint16(21809), + 122: uint16(21846), + 123: uint16(21839), + 124: uint16(21845), + 125: uint16(21807), + 126: uint16(21860), + 127: uint16(21816), + 128: uint16(21806), + 129: uint16(21852), + 130: uint16(21804), + 131: uint16(21859), + 132: uint16(21811), + 133: uint16(21825), + 134: uint16(21847), + 135: uint16(22280), + 136: uint16(22283), + 137: uint16(22281), + 138: uint16(22495), + 139: uint16(22533), + 140: uint16(22538), + 141: uint16(22534), + 142: uint16(22496), + 143: uint16(22500), + 144: uint16(22522), + 145: uint16(22530), + 146: uint16(22581), + 147: uint16(22519), + 148: uint16(22521), + 149: uint16(22816), + 150: uint16(22882), + 151: uint16(23094), + 152: uint16(23105), + 153: uint16(23113), + 154: uint16(23142), + 155: uint16(23146), + 156: uint16(23104), + }, + 16: { + 0: uint16(23100), + 1: uint16(23138), + 2: uint16(23130), + 3: uint16(23110), + 4: uint16(23114), + 5: uint16(23408), + 6: uint16(23495), + 7: uint16(23493), + 8: uint16(23492), + 9: uint16(23490), + 10: uint16(23487), + 11: uint16(23494), + 12: uint16(23561), + 13: uint16(23560), + 14: uint16(23559), + 15: uint16(23648), + 16: uint16(23644), + 17: uint16(23645), + 18: uint16(23815), + 19: uint16(23814), + 20: uint16(23822), + 21: uint16(23835), + 22: uint16(23830), + 23: uint16(23842), + 24: uint16(23825), + 25: uint16(23849), + 26: uint16(23828), + 27: uint16(23833), + 28: uint16(23844), + 29: uint16(23847), + 30: uint16(23831), + 31: uint16(24034), + 32: uint16(24120), + 33: uint16(24118), + 34: uint16(24115), + 35: uint16(24119), + 36: uint16(24247), + 37: uint16(24248), + 38: uint16(24246), + 39: uint16(24245), + 40: uint16(24254), + 41: uint16(24373), + 42: uint16(24375), + 43: uint16(24407), + 44: uint16(24428), + 45: uint16(24425), + 46: uint16(24427), + 47: uint16(24471), + 48: uint16(24473), + 49: uint16(24478), + 50: uint16(24472), + 51: uint16(24481), + 52: uint16(24480), + 53: uint16(24476), + 54: uint16(24703), + 55: uint16(24739), + 56: uint16(24713), + 57: uint16(24736), + 58: uint16(24744), + 59: uint16(24779), + 60: uint16(24756), + 61: uint16(24806), + 62: uint16(24765), + 63: uint16(24773), + 64: uint16(24763), + 65: uint16(24757), + 66: uint16(24796), + 67: uint16(24764), + 68: uint16(24792), + 69: uint16(24789), + 70: uint16(24774), + 71: uint16(24799), + 72: uint16(24760), + 73: uint16(24794), + 74: uint16(24775), + 75: uint16(25114), + 76: uint16(25115), + 77: uint16(25160), + 78: uint16(25504), + 79: uint16(25511), + 80: uint16(25458), + 81: uint16(25494), + 82: uint16(25506), + 83: uint16(25509), + 84: uint16(25463), + 85: uint16(25447), + 86: uint16(25496), + 87: uint16(25514), + 88: uint16(25457), + 89: uint16(25513), + 90: uint16(25481), + 91: uint16(25475), + 92: uint16(25499), + 93: uint16(25451), + 94: uint16(25512), + 95: uint16(25476), + 96: uint16(25480), + 97: uint16(25497), + 98: uint16(25505), + 99: uint16(25516), + 100: uint16(25490), + 101: uint16(25487), + 102: uint16(25472), + 103: uint16(25467), + 104: uint16(25449), + 105: uint16(25448), + 106: uint16(25466), + 107: uint16(25949), + 108: uint16(25942), + 109: uint16(25937), + 110: uint16(25945), + 111: uint16(25943), + 112: uint16(21855), + 113: uint16(25935), + 114: uint16(25944), + 115: uint16(25941), + 116: uint16(25940), + 117: uint16(26012), + 118: uint16(26011), + 119: uint16(26028), + 120: uint16(26063), + 121: uint16(26059), + 122: uint16(26060), + 123: uint16(26062), + 124: uint16(26205), + 125: uint16(26202), + 126: uint16(26212), + 127: uint16(26216), + 128: uint16(26214), + 129: uint16(26206), + 130: uint16(26361), + 131: uint16(21207), + 132: uint16(26395), + 133: uint16(26753), + 134: uint16(26799), + 135: uint16(26786), + 136: uint16(26771), + 137: uint16(26805), + 138: uint16(26751), + 139: uint16(26742), + 140: uint16(26801), + 141: uint16(26791), + 142: uint16(26775), + 143: uint16(26800), + 144: uint16(26755), + 145: uint16(26820), + 146: uint16(26797), + 147: uint16(26758), + 148: uint16(26757), + 149: uint16(26772), + 150: uint16(26781), + 151: uint16(26792), + 152: uint16(26783), + 153: uint16(26785), + 154: uint16(26754), + 155: uint16(27442), + 156: uint16(27578), + }, + 17: { + 0: uint16(27627), + 1: uint16(27628), + 2: uint16(27691), + 3: uint16(28046), + 4: uint16(28092), + 5: uint16(28147), + 6: uint16(28121), + 7: uint16(28082), + 8: uint16(28129), + 9: uint16(28108), + 10: uint16(28132), + 11: uint16(28155), + 12: uint16(28154), + 13: uint16(28165), + 14: uint16(28103), + 15: uint16(28107), + 16: uint16(28079), + 17: uint16(28113), + 18: uint16(28078), + 19: uint16(28126), + 20: uint16(28153), + 21: uint16(28088), + 22: uint16(28151), + 23: uint16(28149), + 24: uint16(28101), + 25: uint16(28114), + 26: uint16(28186), + 27: uint16(28085), + 28: uint16(28122), + 29: uint16(28139), + 30: uint16(28120), + 31: uint16(28138), + 32: uint16(28145), + 33: uint16(28142), + 34: uint16(28136), + 35: uint16(28102), + 36: uint16(28100), + 37: uint16(28074), + 38: uint16(28140), + 39: uint16(28095), + 40: uint16(28134), + 41: uint16(28921), + 42: uint16(28937), + 43: uint16(28938), + 44: uint16(28925), + 45: uint16(28911), + 46: uint16(29245), + 47: uint16(29309), + 48: uint16(29313), + 49: uint16(29468), + 50: uint16(29467), + 51: uint16(29462), + 52: uint16(29459), + 53: uint16(29465), + 54: uint16(29575), + 55: uint16(29701), + 56: uint16(29706), + 57: uint16(29699), + 58: uint16(29702), + 59: uint16(29694), + 60: uint16(29709), + 61: uint16(29920), + 62: uint16(29942), + 63: uint16(29943), + 64: uint16(29980), + 65: uint16(29986), + 66: uint16(30053), + 67: uint16(30054), + 68: uint16(30050), + 69: uint16(30064), + 70: uint16(30095), + 71: uint16(30164), + 72: uint16(30165), + 73: uint16(30133), + 74: uint16(30154), + 75: uint16(30157), + 76: uint16(30350), + 77: uint16(30420), + 78: uint16(30418), + 79: uint16(30427), + 80: uint16(30519), + 81: uint16(30526), + 82: uint16(30524), + 83: uint16(30518), + 84: uint16(30520), + 85: uint16(30522), + 86: uint16(30827), + 87: uint16(30787), + 88: uint16(30798), + 89: uint16(31077), + 90: uint16(31080), + 91: uint16(31085), + 92: uint16(31227), + 93: uint16(31378), + 94: uint16(31381), + 95: uint16(31520), + 96: uint16(31528), + 97: uint16(31515), + 98: uint16(31532), + 99: uint16(31526), + 100: uint16(31513), + 101: uint16(31518), + 102: uint16(31534), + 103: uint16(31890), + 104: uint16(31895), + 105: uint16(31893), + 106: uint16(32070), + 107: uint16(32067), + 108: uint16(32113), + 109: uint16(32046), + 110: uint16(32057), + 111: uint16(32060), + 112: uint16(32064), + 113: uint16(32048), + 114: uint16(32051), + 115: uint16(32068), + 116: uint16(32047), + 117: uint16(32066), + 118: uint16(32050), + 119: uint16(32049), + 120: uint16(32573), + 121: uint16(32670), + 122: uint16(32666), + 123: uint16(32716), + 124: uint16(32718), + 125: uint16(32722), + 126: uint16(32796), + 127: uint16(32842), + 128: uint16(32838), + 129: uint16(33071), + 130: uint16(33046), + 131: uint16(33059), + 132: uint16(33067), + 133: uint16(33065), + 134: uint16(33072), + 135: uint16(33060), + 136: uint16(33282), + 137: uint16(33333), + 138: uint16(33335), + 139: uint16(33334), + 140: uint16(33337), + 141: uint16(33678), + 142: uint16(33694), + 143: uint16(33688), + 144: uint16(33656), + 145: uint16(33698), + 146: uint16(33686), + 147: uint16(33725), + 148: uint16(33707), + 149: uint16(33682), + 150: uint16(33674), + 151: uint16(33683), + 152: uint16(33673), + 153: uint16(33696), + 154: uint16(33655), + 155: uint16(33659), + 156: uint16(33660), + }, + 18: { + 0: uint16(33670), + 1: uint16(33703), + 2: uint16(34389), + 3: uint16(24426), + 4: uint16(34503), + 5: uint16(34496), + 6: uint16(34486), + 7: uint16(34500), + 8: uint16(34485), + 9: uint16(34502), + 10: uint16(34507), + 11: uint16(34481), + 12: uint16(34479), + 13: uint16(34505), + 14: uint16(34899), + 15: uint16(34974), + 16: uint16(34952), + 17: uint16(34987), + 18: uint16(34962), + 19: uint16(34966), + 20: uint16(34957), + 21: uint16(34955), + 22: uint16(35219), + 23: uint16(35215), + 24: uint16(35370), + 25: uint16(35357), + 26: uint16(35363), + 27: uint16(35365), + 28: uint16(35377), + 29: uint16(35373), + 30: uint16(35359), + 31: uint16(35355), + 32: uint16(35362), + 33: uint16(35913), + 34: uint16(35930), + 35: uint16(36009), + 36: uint16(36012), + 37: uint16(36011), + 38: uint16(36008), + 39: uint16(36010), + 40: uint16(36007), + 41: uint16(36199), + 42: uint16(36198), + 43: uint16(36286), + 44: uint16(36282), + 45: uint16(36571), + 46: uint16(36575), + 47: uint16(36889), + 48: uint16(36877), + 49: uint16(36890), + 50: uint16(36887), + 51: uint16(36899), + 52: uint16(36895), + 53: uint16(36893), + 54: uint16(36880), + 55: uint16(36885), + 56: uint16(36894), + 57: uint16(36896), + 58: uint16(36879), + 59: uint16(36898), + 60: uint16(36886), + 61: uint16(36891), + 62: uint16(36884), + 63: uint16(37096), + 64: uint16(37101), + 65: uint16(37117), + 66: uint16(37207), + 67: uint16(37326), + 68: uint16(37365), + 69: uint16(37350), + 70: uint16(37347), + 71: uint16(37351), + 72: uint16(37357), + 73: uint16(37353), + 74: uint16(38281), + 75: uint16(38506), + 76: uint16(38517), + 77: uint16(38515), + 78: uint16(38520), + 79: uint16(38512), + 80: uint16(38516), + 81: uint16(38518), + 82: uint16(38519), + 83: uint16(38508), + 84: uint16(38592), + 85: uint16(38634), + 86: uint16(38633), + 87: uint16(31456), + 88: uint16(31455), + 89: uint16(38914), + 90: uint16(38915), + 91: uint16(39770), + 92: uint16(40165), + 93: uint16(40565), + 94: uint16(40575), + 95: uint16(40613), + 96: uint16(40635), + 97: uint16(20642), + 98: uint16(20621), + 99: uint16(20613), + 100: uint16(20633), + 101: uint16(20625), + 102: uint16(20608), + 103: uint16(20630), + 104: uint16(20632), + 105: uint16(20634), + 106: uint16(26368), + 107: uint16(20977), + 108: uint16(21106), + 109: uint16(21108), + 110: uint16(21109), + 111: uint16(21097), + 112: uint16(21214), + 113: uint16(21213), + 114: uint16(21211), + 115: uint16(21338), + 116: uint16(21413), + 117: uint16(21883), + 118: uint16(21888), + 119: uint16(21927), + 120: uint16(21884), + 121: uint16(21898), + 122: uint16(21917), + 123: uint16(21912), + 124: uint16(21890), + 125: uint16(21916), + 126: uint16(21930), + 127: uint16(21908), + 128: uint16(21895), + 129: uint16(21899), + 130: uint16(21891), + 131: uint16(21939), + 132: uint16(21934), + 133: uint16(21919), + 134: uint16(21822), + 135: uint16(21938), + 136: uint16(21914), + 137: uint16(21947), + 138: uint16(21932), + 139: uint16(21937), + 140: uint16(21886), + 141: uint16(21897), + 142: uint16(21931), + 143: uint16(21913), + 144: uint16(22285), + 145: uint16(22575), + 146: uint16(22570), + 147: uint16(22580), + 148: uint16(22564), + 149: uint16(22576), + 150: uint16(22577), + 151: uint16(22561), + 152: uint16(22557), + 153: uint16(22560), + 154: uint16(22777), + 155: uint16(22778), + 156: uint16(22880), + }, + 19: { + 0: uint16(23159), + 1: uint16(23194), + 2: uint16(23167), + 3: uint16(23186), + 4: uint16(23195), + 5: uint16(23207), + 6: uint16(23411), + 7: uint16(23409), + 8: uint16(23506), + 9: uint16(23500), + 10: uint16(23507), + 11: uint16(23504), + 12: uint16(23562), + 13: uint16(23563), + 14: uint16(23601), + 15: uint16(23884), + 16: uint16(23888), + 17: uint16(23860), + 18: uint16(23879), + 19: uint16(24061), + 20: uint16(24133), + 21: uint16(24125), + 22: uint16(24128), + 23: uint16(24131), + 24: uint16(24190), + 25: uint16(24266), + 26: uint16(24257), + 27: uint16(24258), + 28: uint16(24260), + 29: uint16(24380), + 30: uint16(24429), + 31: uint16(24489), + 32: uint16(24490), + 33: uint16(24488), + 34: uint16(24785), + 35: uint16(24801), + 36: uint16(24754), + 37: uint16(24758), + 38: uint16(24800), + 39: uint16(24860), + 40: uint16(24867), + 41: uint16(24826), + 42: uint16(24853), + 43: uint16(24816), + 44: uint16(24827), + 45: uint16(24820), + 46: uint16(24936), + 47: uint16(24817), + 48: uint16(24846), + 49: uint16(24822), + 50: uint16(24841), + 51: uint16(24832), + 52: uint16(24850), + 53: uint16(25119), + 54: uint16(25161), + 55: uint16(25507), + 56: uint16(25484), + 57: uint16(25551), + 58: uint16(25536), + 59: uint16(25577), + 60: uint16(25545), + 61: uint16(25542), + 62: uint16(25549), + 63: uint16(25554), + 64: uint16(25571), + 65: uint16(25552), + 66: uint16(25569), + 67: uint16(25558), + 68: uint16(25581), + 69: uint16(25582), + 70: uint16(25462), + 71: uint16(25588), + 72: uint16(25578), + 73: uint16(25563), + 74: uint16(25682), + 75: uint16(25562), + 76: uint16(25593), + 77: uint16(25950), + 78: uint16(25958), + 79: uint16(25954), + 80: uint16(25955), + 81: uint16(26001), + 82: uint16(26000), + 83: uint16(26031), + 84: uint16(26222), + 85: uint16(26224), + 86: uint16(26228), + 87: uint16(26230), + 88: uint16(26223), + 89: uint16(26257), + 90: uint16(26234), + 91: uint16(26238), + 92: uint16(26231), + 93: uint16(26366), + 94: uint16(26367), + 95: uint16(26399), + 96: uint16(26397), + 97: uint16(26874), + 98: uint16(26837), + 99: uint16(26848), + 100: uint16(26840), + 101: uint16(26839), + 102: uint16(26885), + 103: uint16(26847), + 104: uint16(26869), + 105: uint16(26862), + 106: uint16(26855), + 107: uint16(26873), + 108: uint16(26834), + 109: uint16(26866), + 110: uint16(26851), + 111: uint16(26827), + 112: uint16(26829), + 113: uint16(26893), + 114: uint16(26898), + 115: uint16(26894), + 116: uint16(26825), + 117: uint16(26842), + 118: uint16(26990), + 119: uint16(26875), + 120: uint16(27454), + 121: uint16(27450), + 122: uint16(27453), + 123: uint16(27544), + 124: uint16(27542), + 125: uint16(27580), + 126: uint16(27631), + 127: uint16(27694), + 128: uint16(27695), + 129: uint16(27692), + 130: uint16(28207), + 131: uint16(28216), + 132: uint16(28244), + 133: uint16(28193), + 134: uint16(28210), + 135: uint16(28263), + 136: uint16(28234), + 137: uint16(28192), + 138: uint16(28197), + 139: uint16(28195), + 140: uint16(28187), + 141: uint16(28251), + 142: uint16(28248), + 143: uint16(28196), + 144: uint16(28246), + 145: uint16(28270), + 146: uint16(28205), + 147: uint16(28198), + 148: uint16(28271), + 149: uint16(28212), + 150: uint16(28237), + 151: uint16(28218), + 152: uint16(28204), + 153: uint16(28227), + 154: uint16(28189), + 155: uint16(28222), + 156: uint16(28363), + }, + 20: { + 0: uint16(28297), + 1: uint16(28185), + 2: uint16(28238), + 3: uint16(28259), + 4: uint16(28228), + 5: uint16(28274), + 6: uint16(28265), + 7: uint16(28255), + 8: uint16(28953), + 9: uint16(28954), + 10: uint16(28966), + 11: uint16(28976), + 12: uint16(28961), + 13: uint16(28982), + 14: uint16(29038), + 15: uint16(28956), + 16: uint16(29260), + 17: uint16(29316), + 18: uint16(29312), + 19: uint16(29494), + 20: uint16(29477), + 21: uint16(29492), + 22: uint16(29481), + 23: uint16(29754), + 24: uint16(29738), + 25: uint16(29747), + 26: uint16(29730), + 27: uint16(29733), + 28: uint16(29749), + 29: uint16(29750), + 30: uint16(29748), + 31: uint16(29743), + 32: uint16(29723), + 33: uint16(29734), + 34: uint16(29736), + 35: uint16(29989), + 36: uint16(29990), + 37: uint16(30059), + 38: uint16(30058), + 39: uint16(30178), + 40: uint16(30171), + 41: uint16(30179), + 42: uint16(30169), + 43: uint16(30168), + 44: uint16(30174), + 45: uint16(30176), + 46: uint16(30331), + 47: uint16(30332), + 48: uint16(30358), + 49: uint16(30355), + 50: uint16(30388), + 51: uint16(30428), + 52: uint16(30543), + 53: uint16(30701), + 54: uint16(30813), + 55: uint16(30828), + 56: uint16(30831), + 57: uint16(31245), + 58: uint16(31240), + 59: uint16(31243), + 60: uint16(31237), + 61: uint16(31232), + 62: uint16(31384), + 63: uint16(31383), + 64: uint16(31382), + 65: uint16(31461), + 66: uint16(31459), + 67: uint16(31561), + 68: uint16(31574), + 69: uint16(31558), + 70: uint16(31568), + 71: uint16(31570), + 72: uint16(31572), + 73: uint16(31565), + 74: uint16(31563), + 75: uint16(31567), + 76: uint16(31569), + 77: uint16(31903), + 78: uint16(31909), + 79: uint16(32094), + 80: uint16(32080), + 81: uint16(32104), + 82: uint16(32085), + 83: uint16(32043), + 84: uint16(32110), + 85: uint16(32114), + 86: uint16(32097), + 87: uint16(32102), + 88: uint16(32098), + 89: uint16(32112), + 90: uint16(32115), + 91: uint16(21892), + 92: uint16(32724), + 93: uint16(32725), + 94: uint16(32779), + 95: uint16(32850), + 96: uint16(32901), + 97: uint16(33109), + 98: uint16(33108), + 99: uint16(33099), + 100: uint16(33105), + 101: uint16(33102), + 102: uint16(33081), + 103: uint16(33094), + 104: uint16(33086), + 105: uint16(33100), + 106: uint16(33107), + 107: uint16(33140), + 108: uint16(33298), + 109: uint16(33308), + 110: uint16(33769), + 111: uint16(33795), + 112: uint16(33784), + 113: uint16(33805), + 114: uint16(33760), + 115: uint16(33733), + 116: uint16(33803), + 117: uint16(33729), + 118: uint16(33775), + 119: uint16(33777), + 120: uint16(33780), + 121: uint16(33879), + 122: uint16(33802), + 123: uint16(33776), + 124: uint16(33804), + 125: uint16(33740), + 126: uint16(33789), + 127: uint16(33778), + 128: uint16(33738), + 129: uint16(33848), + 130: uint16(33806), + 131: uint16(33796), + 132: uint16(33756), + 133: uint16(33799), + 134: uint16(33748), + 135: uint16(33759), + 136: uint16(34395), + 137: uint16(34527), + 138: uint16(34521), + 139: uint16(34541), + 140: uint16(34516), + 141: uint16(34523), + 142: uint16(34532), + 143: uint16(34512), + 144: uint16(34526), + 145: uint16(34903), + 146: uint16(35009), + 147: uint16(35010), + 148: uint16(34993), + 149: uint16(35203), + 150: uint16(35222), + 151: uint16(35387), + 152: uint16(35424), + 153: uint16(35413), + 154: uint16(35422), + 155: uint16(35388), + 156: uint16(35393), + }, + 21: { + 0: uint16(35412), + 1: uint16(35419), + 2: uint16(35408), + 3: uint16(35398), + 4: uint16(35380), + 5: uint16(35386), + 6: uint16(35382), + 7: uint16(35414), + 8: uint16(35937), + 9: uint16(35970), + 10: uint16(36015), + 11: uint16(36028), + 12: uint16(36019), + 13: uint16(36029), + 14: uint16(36033), + 15: uint16(36027), + 16: uint16(36032), + 17: uint16(36020), + 18: uint16(36023), + 19: uint16(36022), + 20: uint16(36031), + 21: uint16(36024), + 22: uint16(36234), + 23: uint16(36229), + 24: uint16(36225), + 25: uint16(36302), + 26: uint16(36317), + 27: uint16(36299), + 28: uint16(36314), + 29: uint16(36305), + 30: uint16(36300), + 31: uint16(36315), + 32: uint16(36294), + 33: uint16(36603), + 34: uint16(36600), + 35: uint16(36604), + 36: uint16(36764), + 37: uint16(36910), + 38: uint16(36917), + 39: uint16(36913), + 40: uint16(36920), + 41: uint16(36914), + 42: uint16(36918), + 43: uint16(37122), + 44: uint16(37109), + 45: uint16(37129), + 46: uint16(37118), + 47: uint16(37219), + 48: uint16(37221), + 49: uint16(37327), + 50: uint16(37396), + 51: uint16(37397), + 52: uint16(37411), + 53: uint16(37385), + 54: uint16(37406), + 55: uint16(37389), + 56: uint16(37392), + 57: uint16(37383), + 58: uint16(37393), + 59: uint16(38292), + 60: uint16(38287), + 61: uint16(38283), + 62: uint16(38289), + 63: uint16(38291), + 64: uint16(38290), + 65: uint16(38286), + 66: uint16(38538), + 67: uint16(38542), + 68: uint16(38539), + 69: uint16(38525), + 70: uint16(38533), + 71: uint16(38534), + 72: uint16(38541), + 73: uint16(38514), + 74: uint16(38532), + 75: uint16(38593), + 76: uint16(38597), + 77: uint16(38596), + 78: uint16(38598), + 79: uint16(38599), + 80: uint16(38639), + 81: uint16(38642), + 82: uint16(38860), + 83: uint16(38917), + 84: uint16(38918), + 85: uint16(38920), + 86: uint16(39143), + 87: uint16(39146), + 88: uint16(39151), + 89: uint16(39145), + 90: uint16(39154), + 91: uint16(39149), + 92: uint16(39342), + 93: uint16(39341), + 94: uint16(40643), + 95: uint16(40653), + 96: uint16(40657), + 97: uint16(20098), + 98: uint16(20653), + 99: uint16(20661), + 100: uint16(20658), + 101: uint16(20659), + 102: uint16(20677), + 103: uint16(20670), + 104: uint16(20652), + 105: uint16(20663), + 106: uint16(20667), + 107: uint16(20655), + 108: uint16(20679), + 109: uint16(21119), + 110: uint16(21111), + 111: uint16(21117), + 112: uint16(21215), + 113: uint16(21222), + 114: uint16(21220), + 115: uint16(21218), + 116: uint16(21219), + 117: uint16(21295), + 118: uint16(21983), + 119: uint16(21992), + 120: uint16(21971), + 121: uint16(21990), + 122: uint16(21966), + 123: uint16(21980), + 124: uint16(21959), + 125: uint16(21969), + 126: uint16(21987), + 127: uint16(21988), + 128: uint16(21999), + 129: uint16(21978), + 130: uint16(21985), + 131: uint16(21957), + 132: uint16(21958), + 133: uint16(21989), + 134: uint16(21961), + 135: uint16(22290), + 136: uint16(22291), + 137: uint16(22622), + 138: uint16(22609), + 139: uint16(22616), + 140: uint16(22615), + 141: uint16(22618), + 142: uint16(22612), + 143: uint16(22635), + 144: uint16(22604), + 145: uint16(22637), + 146: uint16(22602), + 147: uint16(22626), + 148: uint16(22610), + 149: uint16(22603), + 150: uint16(22887), + 151: uint16(23233), + 152: uint16(23241), + 153: uint16(23244), + 154: uint16(23230), + 155: uint16(23229), + 156: uint16(23228), + }, + 22: { + 0: uint16(23219), + 1: uint16(23234), + 2: uint16(23218), + 3: uint16(23913), + 4: uint16(23919), + 5: uint16(24140), + 6: uint16(24185), + 7: uint16(24265), + 8: uint16(24264), + 9: uint16(24338), + 10: uint16(24409), + 11: uint16(24492), + 12: uint16(24494), + 13: uint16(24858), + 14: uint16(24847), + 15: uint16(24904), + 16: uint16(24863), + 17: uint16(24819), + 18: uint16(24859), + 19: uint16(24825), + 20: uint16(24833), + 21: uint16(24840), + 22: uint16(24910), + 23: uint16(24908), + 24: uint16(24900), + 25: uint16(24909), + 26: uint16(24894), + 27: uint16(24884), + 28: uint16(24871), + 29: uint16(24845), + 30: uint16(24838), + 31: uint16(24887), + 32: uint16(25121), + 33: uint16(25122), + 34: uint16(25619), + 35: uint16(25662), + 36: uint16(25630), + 37: uint16(25642), + 38: uint16(25645), + 39: uint16(25661), + 40: uint16(25644), + 41: uint16(25615), + 42: uint16(25628), + 43: uint16(25620), + 44: uint16(25613), + 45: uint16(25654), + 46: uint16(25622), + 47: uint16(25623), + 48: uint16(25606), + 49: uint16(25964), + 50: uint16(26015), + 51: uint16(26032), + 52: uint16(26263), + 53: uint16(26249), + 54: uint16(26247), + 55: uint16(26248), + 56: uint16(26262), + 57: uint16(26244), + 58: uint16(26264), + 59: uint16(26253), + 60: uint16(26371), + 61: uint16(27028), + 62: uint16(26989), + 63: uint16(26970), + 64: uint16(26999), + 65: uint16(26976), + 66: uint16(26964), + 67: uint16(26997), + 68: uint16(26928), + 69: uint16(27010), + 70: uint16(26954), + 71: uint16(26984), + 72: uint16(26987), + 73: uint16(26974), + 74: uint16(26963), + 75: uint16(27001), + 76: uint16(27014), + 77: uint16(26973), + 78: uint16(26979), + 79: uint16(26971), + 80: uint16(27463), + 81: uint16(27506), + 82: uint16(27584), + 83: uint16(27583), + 84: uint16(27603), + 85: uint16(27645), + 86: uint16(28322), + 87: uint16(28335), + 88: uint16(28371), + 89: uint16(28342), + 90: uint16(28354), + 91: uint16(28304), + 92: uint16(28317), + 93: uint16(28359), + 94: uint16(28357), + 95: uint16(28325), + 96: uint16(28312), + 97: uint16(28348), + 98: uint16(28346), + 99: uint16(28331), + 100: uint16(28369), + 101: uint16(28310), + 102: uint16(28316), + 103: uint16(28356), + 104: uint16(28372), + 105: uint16(28330), + 106: uint16(28327), + 107: uint16(28340), + 108: uint16(29006), + 109: uint16(29017), + 110: uint16(29033), + 111: uint16(29028), + 112: uint16(29001), + 113: uint16(29031), + 114: uint16(29020), + 115: uint16(29036), + 116: uint16(29030), + 117: uint16(29004), + 118: uint16(29029), + 119: uint16(29022), + 120: uint16(28998), + 121: uint16(29032), + 122: uint16(29014), + 123: uint16(29242), + 124: uint16(29266), + 125: uint16(29495), + 126: uint16(29509), + 127: uint16(29503), + 128: uint16(29502), + 129: uint16(29807), + 130: uint16(29786), + 131: uint16(29781), + 132: uint16(29791), + 133: uint16(29790), + 134: uint16(29761), + 135: uint16(29759), + 136: uint16(29785), + 137: uint16(29787), + 138: uint16(29788), + 139: uint16(30070), + 140: uint16(30072), + 141: uint16(30208), + 142: uint16(30192), + 143: uint16(30209), + 144: uint16(30194), + 145: uint16(30193), + 146: uint16(30202), + 147: uint16(30207), + 148: uint16(30196), + 149: uint16(30195), + 150: uint16(30430), + 151: uint16(30431), + 152: uint16(30555), + 153: uint16(30571), + 154: uint16(30566), + 155: uint16(30558), + 156: uint16(30563), + }, + 23: { + 0: uint16(30585), + 1: uint16(30570), + 2: uint16(30572), + 3: uint16(30556), + 4: uint16(30565), + 5: uint16(30568), + 6: uint16(30562), + 7: uint16(30702), + 8: uint16(30862), + 9: uint16(30896), + 10: uint16(30871), + 11: uint16(30872), + 12: uint16(30860), + 13: uint16(30857), + 14: uint16(30844), + 15: uint16(30865), + 16: uint16(30867), + 17: uint16(30847), + 18: uint16(31098), + 19: uint16(31103), + 20: uint16(31105), + 21: uint16(33836), + 22: uint16(31165), + 23: uint16(31260), + 24: uint16(31258), + 25: uint16(31264), + 26: uint16(31252), + 27: uint16(31263), + 28: uint16(31262), + 29: uint16(31391), + 30: uint16(31392), + 31: uint16(31607), + 32: uint16(31680), + 33: uint16(31584), + 34: uint16(31598), + 35: uint16(31591), + 36: uint16(31921), + 37: uint16(31923), + 38: uint16(31925), + 39: uint16(32147), + 40: uint16(32121), + 41: uint16(32145), + 42: uint16(32129), + 43: uint16(32143), + 44: uint16(32091), + 45: uint16(32622), + 46: uint16(32617), + 47: uint16(32618), + 48: uint16(32626), + 49: uint16(32681), + 50: uint16(32680), + 51: uint16(32676), + 52: uint16(32854), + 53: uint16(32856), + 54: uint16(32902), + 55: uint16(32900), + 56: uint16(33137), + 57: uint16(33136), + 58: uint16(33144), + 59: uint16(33125), + 60: uint16(33134), + 61: uint16(33139), + 62: uint16(33131), + 63: uint16(33145), + 64: uint16(33146), + 65: uint16(33126), + 66: uint16(33285), + 67: uint16(33351), + 68: uint16(33922), + 69: uint16(33911), + 70: uint16(33853), + 71: uint16(33841), + 72: uint16(33909), + 73: uint16(33894), + 74: uint16(33899), + 75: uint16(33865), + 76: uint16(33900), + 77: uint16(33883), + 78: uint16(33852), + 79: uint16(33845), + 80: uint16(33889), + 81: uint16(33891), + 82: uint16(33897), + 83: uint16(33901), + 84: uint16(33862), + 85: uint16(34398), + 86: uint16(34396), + 87: uint16(34399), + 88: uint16(34553), + 89: uint16(34579), + 90: uint16(34568), + 91: uint16(34567), + 92: uint16(34560), + 93: uint16(34558), + 94: uint16(34555), + 95: uint16(34562), + 96: uint16(34563), + 97: uint16(34566), + 98: uint16(34570), + 99: uint16(34905), + 100: uint16(35039), + 101: uint16(35028), + 102: uint16(35033), + 103: uint16(35036), + 104: uint16(35032), + 105: uint16(35037), + 106: uint16(35041), + 107: uint16(35018), + 108: uint16(35029), + 109: uint16(35026), + 110: uint16(35228), + 111: uint16(35299), + 112: uint16(35435), + 113: uint16(35442), + 114: uint16(35443), + 115: uint16(35430), + 116: uint16(35433), + 117: uint16(35440), + 118: uint16(35463), + 119: uint16(35452), + 120: uint16(35427), + 121: uint16(35488), + 122: uint16(35441), + 123: uint16(35461), + 124: uint16(35437), + 125: uint16(35426), + 126: uint16(35438), + 127: uint16(35436), + 128: uint16(35449), + 129: uint16(35451), + 130: uint16(35390), + 131: uint16(35432), + 132: uint16(35938), + 133: uint16(35978), + 134: uint16(35977), + 135: uint16(36042), + 136: uint16(36039), + 137: uint16(36040), + 138: uint16(36036), + 139: uint16(36018), + 140: uint16(36035), + 141: uint16(36034), + 142: uint16(36037), + 143: uint16(36321), + 144: uint16(36319), + 145: uint16(36328), + 146: uint16(36335), + 147: uint16(36339), + 148: uint16(36346), + 149: uint16(36330), + 150: uint16(36324), + 151: uint16(36326), + 152: uint16(36530), + 153: uint16(36611), + 154: uint16(36617), + 155: uint16(36606), + 156: uint16(36618), + }, + 24: { + 0: uint16(36767), + 1: uint16(36786), + 2: uint16(36939), + 3: uint16(36938), + 4: uint16(36947), + 5: uint16(36930), + 6: uint16(36948), + 7: uint16(36924), + 8: uint16(36949), + 9: uint16(36944), + 10: uint16(36935), + 11: uint16(36943), + 12: uint16(36942), + 13: uint16(36941), + 14: uint16(36945), + 15: uint16(36926), + 16: uint16(36929), + 17: uint16(37138), + 18: uint16(37143), + 19: uint16(37228), + 20: uint16(37226), + 21: uint16(37225), + 22: uint16(37321), + 23: uint16(37431), + 24: uint16(37463), + 25: uint16(37432), + 26: uint16(37437), + 27: uint16(37440), + 28: uint16(37438), + 29: uint16(37467), + 30: uint16(37451), + 31: uint16(37476), + 32: uint16(37457), + 33: uint16(37428), + 34: uint16(37449), + 35: uint16(37453), + 36: uint16(37445), + 37: uint16(37433), + 38: uint16(37439), + 39: uint16(37466), + 40: uint16(38296), + 41: uint16(38552), + 42: uint16(38548), + 43: uint16(38549), + 44: uint16(38605), + 45: uint16(38603), + 46: uint16(38601), + 47: uint16(38602), + 48: uint16(38647), + 49: uint16(38651), + 50: uint16(38649), + 51: uint16(38646), + 52: uint16(38742), + 53: uint16(38772), + 54: uint16(38774), + 55: uint16(38928), + 56: uint16(38929), + 57: uint16(38931), + 58: uint16(38922), + 59: uint16(38930), + 60: uint16(38924), + 61: uint16(39164), + 62: uint16(39156), + 63: uint16(39165), + 64: uint16(39166), + 65: uint16(39347), + 66: uint16(39345), + 67: uint16(39348), + 68: uint16(39649), + 69: uint16(40169), + 70: uint16(40578), + 71: uint16(40718), + 72: uint16(40723), + 73: uint16(40736), + 74: uint16(20711), + 75: uint16(20718), + 76: uint16(20709), + 77: uint16(20694), + 78: uint16(20717), + 79: uint16(20698), + 80: uint16(20693), + 81: uint16(20687), + 82: uint16(20689), + 83: uint16(20721), + 84: uint16(20686), + 85: uint16(20713), + 86: uint16(20834), + 87: uint16(20979), + 88: uint16(21123), + 89: uint16(21122), + 90: uint16(21297), + 91: uint16(21421), + 92: uint16(22014), + 93: uint16(22016), + 94: uint16(22043), + 95: uint16(22039), + 96: uint16(22013), + 97: uint16(22036), + 98: uint16(22022), + 99: uint16(22025), + 100: uint16(22029), + 101: uint16(22030), + 102: uint16(22007), + 103: uint16(22038), + 104: uint16(22047), + 105: uint16(22024), + 106: uint16(22032), + 107: uint16(22006), + 108: uint16(22296), + 109: uint16(22294), + 110: uint16(22645), + 111: uint16(22654), + 112: uint16(22659), + 113: uint16(22675), + 114: uint16(22666), + 115: uint16(22649), + 116: uint16(22661), + 117: uint16(22653), + 118: uint16(22781), + 119: uint16(22821), + 120: uint16(22818), + 121: uint16(22820), + 122: uint16(22890), + 123: uint16(22889), + 124: uint16(23265), + 125: uint16(23270), + 126: uint16(23273), + 127: uint16(23255), + 128: uint16(23254), + 129: uint16(23256), + 130: uint16(23267), + 131: uint16(23413), + 132: uint16(23518), + 133: uint16(23527), + 134: uint16(23521), + 135: uint16(23525), + 136: uint16(23526), + 137: uint16(23528), + 138: uint16(23522), + 139: uint16(23524), + 140: uint16(23519), + 141: uint16(23565), + 142: uint16(23650), + 143: uint16(23940), + 144: uint16(23943), + 145: uint16(24155), + 146: uint16(24163), + 147: uint16(24149), + 148: uint16(24151), + 149: uint16(24148), + 150: uint16(24275), + 151: uint16(24278), + 152: uint16(24330), + 153: uint16(24390), + 154: uint16(24432), + 155: uint16(24505), + 156: uint16(24903), + }, + 25: { + 0: uint16(24895), + 1: uint16(24907), + 2: uint16(24951), + 3: uint16(24930), + 4: uint16(24931), + 5: uint16(24927), + 6: uint16(24922), + 7: uint16(24920), + 8: uint16(24949), + 9: uint16(25130), + 10: uint16(25735), + 11: uint16(25688), + 12: uint16(25684), + 13: uint16(25764), + 14: uint16(25720), + 15: uint16(25695), + 16: uint16(25722), + 17: uint16(25681), + 18: uint16(25703), + 19: uint16(25652), + 20: uint16(25709), + 21: uint16(25723), + 22: uint16(25970), + 23: uint16(26017), + 24: uint16(26071), + 25: uint16(26070), + 26: uint16(26274), + 27: uint16(26280), + 28: uint16(26269), + 29: uint16(27036), + 30: uint16(27048), + 31: uint16(27029), + 32: uint16(27073), + 33: uint16(27054), + 34: uint16(27091), + 35: uint16(27083), + 36: uint16(27035), + 37: uint16(27063), + 38: uint16(27067), + 39: uint16(27051), + 40: uint16(27060), + 41: uint16(27088), + 42: uint16(27085), + 43: uint16(27053), + 44: uint16(27084), + 45: uint16(27046), + 46: uint16(27075), + 47: uint16(27043), + 48: uint16(27465), + 49: uint16(27468), + 50: uint16(27699), + 51: uint16(28467), + 52: uint16(28436), + 53: uint16(28414), + 54: uint16(28435), + 55: uint16(28404), + 56: uint16(28457), + 57: uint16(28478), + 58: uint16(28448), + 59: uint16(28460), + 60: uint16(28431), + 61: uint16(28418), + 62: uint16(28450), + 63: uint16(28415), + 64: uint16(28399), + 65: uint16(28422), + 66: uint16(28465), + 67: uint16(28472), + 68: uint16(28466), + 69: uint16(28451), + 70: uint16(28437), + 71: uint16(28459), + 72: uint16(28463), + 73: uint16(28552), + 74: uint16(28458), + 75: uint16(28396), + 76: uint16(28417), + 77: uint16(28402), + 78: uint16(28364), + 79: uint16(28407), + 80: uint16(29076), + 81: uint16(29081), + 82: uint16(29053), + 83: uint16(29066), + 84: uint16(29060), + 85: uint16(29074), + 86: uint16(29246), + 87: uint16(29330), + 88: uint16(29334), + 89: uint16(29508), + 90: uint16(29520), + 91: uint16(29796), + 92: uint16(29795), + 93: uint16(29802), + 94: uint16(29808), + 95: uint16(29805), + 96: uint16(29956), + 97: uint16(30097), + 98: uint16(30247), + 99: uint16(30221), + 100: uint16(30219), + 101: uint16(30217), + 102: uint16(30227), + 103: uint16(30433), + 104: uint16(30435), + 105: uint16(30596), + 106: uint16(30589), + 107: uint16(30591), + 108: uint16(30561), + 109: uint16(30913), + 110: uint16(30879), + 111: uint16(30887), + 112: uint16(30899), + 113: uint16(30889), + 114: uint16(30883), + 115: uint16(31118), + 116: uint16(31119), + 117: uint16(31117), + 118: uint16(31278), + 119: uint16(31281), + 120: uint16(31402), + 121: uint16(31401), + 122: uint16(31469), + 123: uint16(31471), + 124: uint16(31649), + 125: uint16(31637), + 126: uint16(31627), + 127: uint16(31605), + 128: uint16(31639), + 129: uint16(31645), + 130: uint16(31636), + 131: uint16(31631), + 132: uint16(31672), + 133: uint16(31623), + 134: uint16(31620), + 135: uint16(31929), + 136: uint16(31933), + 137: uint16(31934), + 138: uint16(32187), + 139: uint16(32176), + 140: uint16(32156), + 141: uint16(32189), + 142: uint16(32190), + 143: uint16(32160), + 144: uint16(32202), + 145: uint16(32180), + 146: uint16(32178), + 147: uint16(32177), + 148: uint16(32186), + 149: uint16(32162), + 150: uint16(32191), + 151: uint16(32181), + 152: uint16(32184), + 153: uint16(32173), + 154: uint16(32210), + 155: uint16(32199), + 156: uint16(32172), + }, + 26: { + 0: uint16(32624), + 1: uint16(32736), + 2: uint16(32737), + 3: uint16(32735), + 4: uint16(32862), + 5: uint16(32858), + 6: uint16(32903), + 7: uint16(33104), + 8: uint16(33152), + 9: uint16(33167), + 10: uint16(33160), + 11: uint16(33162), + 12: uint16(33151), + 13: uint16(33154), + 14: uint16(33255), + 15: uint16(33274), + 16: uint16(33287), + 17: uint16(33300), + 18: uint16(33310), + 19: uint16(33355), + 20: uint16(33993), + 21: uint16(33983), + 22: uint16(33990), + 23: uint16(33988), + 24: uint16(33945), + 25: uint16(33950), + 26: uint16(33970), + 27: uint16(33948), + 28: uint16(33995), + 29: uint16(33976), + 30: uint16(33984), + 31: uint16(34003), + 32: uint16(33936), + 33: uint16(33980), + 34: uint16(34001), + 35: uint16(33994), + 36: uint16(34623), + 37: uint16(34588), + 38: uint16(34619), + 39: uint16(34594), + 40: uint16(34597), + 41: uint16(34612), + 42: uint16(34584), + 43: uint16(34645), + 44: uint16(34615), + 45: uint16(34601), + 46: uint16(35059), + 47: uint16(35074), + 48: uint16(35060), + 49: uint16(35065), + 50: uint16(35064), + 51: uint16(35069), + 52: uint16(35048), + 53: uint16(35098), + 54: uint16(35055), + 55: uint16(35494), + 56: uint16(35468), + 57: uint16(35486), + 58: uint16(35491), + 59: uint16(35469), + 60: uint16(35489), + 61: uint16(35475), + 62: uint16(35492), + 63: uint16(35498), + 64: uint16(35493), + 65: uint16(35496), + 66: uint16(35480), + 67: uint16(35473), + 68: uint16(35482), + 69: uint16(35495), + 70: uint16(35946), + 71: uint16(35981), + 72: uint16(35980), + 73: uint16(36051), + 74: uint16(36049), + 75: uint16(36050), + 76: uint16(36203), + 77: uint16(36249), + 78: uint16(36245), + 79: uint16(36348), + 80: uint16(36628), + 81: uint16(36626), + 82: uint16(36629), + 83: uint16(36627), + 84: uint16(36771), + 85: uint16(36960), + 86: uint16(36952), + 87: uint16(36956), + 88: uint16(36963), + 89: uint16(36953), + 90: uint16(36958), + 91: uint16(36962), + 92: uint16(36957), + 93: uint16(36955), + 94: uint16(37145), + 95: uint16(37144), + 96: uint16(37150), + 97: uint16(37237), + 98: uint16(37240), + 99: uint16(37239), + 100: uint16(37236), + 101: uint16(37496), + 102: uint16(37504), + 103: uint16(37509), + 104: uint16(37528), + 105: uint16(37526), + 106: uint16(37499), + 107: uint16(37523), + 108: uint16(37532), + 109: uint16(37544), + 110: uint16(37500), + 111: uint16(37521), + 112: uint16(38305), + 113: uint16(38312), + 114: uint16(38313), + 115: uint16(38307), + 116: uint16(38309), + 117: uint16(38308), + 118: uint16(38553), + 119: uint16(38556), + 120: uint16(38555), + 121: uint16(38604), + 122: uint16(38610), + 123: uint16(38656), + 124: uint16(38780), + 125: uint16(38789), + 126: uint16(38902), + 127: uint16(38935), + 128: uint16(38936), + 129: uint16(39087), + 130: uint16(39089), + 131: uint16(39171), + 132: uint16(39173), + 133: uint16(39180), + 134: uint16(39177), + 135: uint16(39361), + 136: uint16(39599), + 137: uint16(39600), + 138: uint16(39654), + 139: uint16(39745), + 140: uint16(39746), + 141: uint16(40180), + 142: uint16(40182), + 143: uint16(40179), + 144: uint16(40636), + 145: uint16(40763), + 146: uint16(40778), + 147: uint16(20740), + 148: uint16(20736), + 149: uint16(20731), + 150: uint16(20725), + 151: uint16(20729), + 152: uint16(20738), + 153: uint16(20744), + 154: uint16(20745), + 155: uint16(20741), + 156: uint16(20956), + }, + 27: { + 0: uint16(21127), + 1: uint16(21128), + 2: uint16(21129), + 3: uint16(21133), + 4: uint16(21130), + 5: uint16(21232), + 6: uint16(21426), + 7: uint16(22062), + 8: uint16(22075), + 9: uint16(22073), + 10: uint16(22066), + 11: uint16(22079), + 12: uint16(22068), + 13: uint16(22057), + 14: uint16(22099), + 15: uint16(22094), + 16: uint16(22103), + 17: uint16(22132), + 18: uint16(22070), + 19: uint16(22063), + 20: uint16(22064), + 21: uint16(22656), + 22: uint16(22687), + 23: uint16(22686), + 24: uint16(22707), + 25: uint16(22684), + 26: uint16(22702), + 27: uint16(22697), + 28: uint16(22694), + 29: uint16(22893), + 30: uint16(23305), + 31: uint16(23291), + 32: uint16(23307), + 33: uint16(23285), + 34: uint16(23308), + 35: uint16(23304), + 36: uint16(23534), + 37: uint16(23532), + 38: uint16(23529), + 39: uint16(23531), + 40: uint16(23652), + 41: uint16(23653), + 42: uint16(23965), + 43: uint16(23956), + 44: uint16(24162), + 45: uint16(24159), + 46: uint16(24161), + 47: uint16(24290), + 48: uint16(24282), + 49: uint16(24287), + 50: uint16(24285), + 51: uint16(24291), + 52: uint16(24288), + 53: uint16(24392), + 54: uint16(24433), + 55: uint16(24503), + 56: uint16(24501), + 57: uint16(24950), + 58: uint16(24935), + 59: uint16(24942), + 60: uint16(24925), + 61: uint16(24917), + 62: uint16(24962), + 63: uint16(24956), + 64: uint16(24944), + 65: uint16(24939), + 66: uint16(24958), + 67: uint16(24999), + 68: uint16(24976), + 69: uint16(25003), + 70: uint16(24974), + 71: uint16(25004), + 72: uint16(24986), + 73: uint16(24996), + 74: uint16(24980), + 75: uint16(25006), + 76: uint16(25134), + 77: uint16(25705), + 78: uint16(25711), + 79: uint16(25721), + 80: uint16(25758), + 81: uint16(25778), + 82: uint16(25736), + 83: uint16(25744), + 84: uint16(25776), + 85: uint16(25765), + 86: uint16(25747), + 87: uint16(25749), + 88: uint16(25769), + 89: uint16(25746), + 90: uint16(25774), + 91: uint16(25773), + 92: uint16(25771), + 93: uint16(25754), + 94: uint16(25772), + 95: uint16(25753), + 96: uint16(25762), + 97: uint16(25779), + 98: uint16(25973), + 99: uint16(25975), + 100: uint16(25976), + 101: uint16(26286), + 102: uint16(26283), + 103: uint16(26292), + 104: uint16(26289), + 105: uint16(27171), + 106: uint16(27167), + 107: uint16(27112), + 108: uint16(27137), + 109: uint16(27166), + 110: uint16(27161), + 111: uint16(27133), + 112: uint16(27169), + 113: uint16(27155), + 114: uint16(27146), + 115: uint16(27123), + 116: uint16(27138), + 117: uint16(27141), + 118: uint16(27117), + 119: uint16(27153), + 120: uint16(27472), + 121: uint16(27470), + 122: uint16(27556), + 123: uint16(27589), + 124: uint16(27590), + 125: uint16(28479), + 126: uint16(28540), + 127: uint16(28548), + 128: uint16(28497), + 129: uint16(28518), + 130: uint16(28500), + 131: uint16(28550), + 132: uint16(28525), + 133: uint16(28507), + 134: uint16(28536), + 135: uint16(28526), + 136: uint16(28558), + 137: uint16(28538), + 138: uint16(28528), + 139: uint16(28516), + 140: uint16(28567), + 141: uint16(28504), + 142: uint16(28373), + 143: uint16(28527), + 144: uint16(28512), + 145: uint16(28511), + 146: uint16(29087), + 147: uint16(29100), + 148: uint16(29105), + 149: uint16(29096), + 150: uint16(29270), + 151: uint16(29339), + 152: uint16(29518), + 153: uint16(29527), + 154: uint16(29801), + 155: uint16(29835), + 156: uint16(29827), + }, + 28: { + 0: uint16(29822), + 1: uint16(29824), + 2: uint16(30079), + 3: uint16(30240), + 4: uint16(30249), + 5: uint16(30239), + 6: uint16(30244), + 7: uint16(30246), + 8: uint16(30241), + 9: uint16(30242), + 10: uint16(30362), + 11: uint16(30394), + 12: uint16(30436), + 13: uint16(30606), + 14: uint16(30599), + 15: uint16(30604), + 16: uint16(30609), + 17: uint16(30603), + 18: uint16(30923), + 19: uint16(30917), + 20: uint16(30906), + 21: uint16(30922), + 22: uint16(30910), + 23: uint16(30933), + 24: uint16(30908), + 25: uint16(30928), + 26: uint16(31295), + 27: uint16(31292), + 28: uint16(31296), + 29: uint16(31293), + 30: uint16(31287), + 31: uint16(31291), + 32: uint16(31407), + 33: uint16(31406), + 34: uint16(31661), + 35: uint16(31665), + 36: uint16(31684), + 37: uint16(31668), + 38: uint16(31686), + 39: uint16(31687), + 40: uint16(31681), + 41: uint16(31648), + 42: uint16(31692), + 43: uint16(31946), + 44: uint16(32224), + 45: uint16(32244), + 46: uint16(32239), + 47: uint16(32251), + 48: uint16(32216), + 49: uint16(32236), + 50: uint16(32221), + 51: uint16(32232), + 52: uint16(32227), + 53: uint16(32218), + 54: uint16(32222), + 55: uint16(32233), + 56: uint16(32158), + 57: uint16(32217), + 58: uint16(32242), + 59: uint16(32249), + 60: uint16(32629), + 61: uint16(32631), + 62: uint16(32687), + 63: uint16(32745), + 64: uint16(32806), + 65: uint16(33179), + 66: uint16(33180), + 67: uint16(33181), + 68: uint16(33184), + 69: uint16(33178), + 70: uint16(33176), + 71: uint16(34071), + 72: uint16(34109), + 73: uint16(34074), + 74: uint16(34030), + 75: uint16(34092), + 76: uint16(34093), + 77: uint16(34067), + 78: uint16(34065), + 79: uint16(34083), + 80: uint16(34081), + 81: uint16(34068), + 82: uint16(34028), + 83: uint16(34085), + 84: uint16(34047), + 85: uint16(34054), + 86: uint16(34690), + 87: uint16(34676), + 88: uint16(34678), + 89: uint16(34656), + 90: uint16(34662), + 91: uint16(34680), + 92: uint16(34664), + 93: uint16(34649), + 94: uint16(34647), + 95: uint16(34636), + 96: uint16(34643), + 97: uint16(34907), + 98: uint16(34909), + 99: uint16(35088), + 100: uint16(35079), + 101: uint16(35090), + 102: uint16(35091), + 103: uint16(35093), + 104: uint16(35082), + 105: uint16(35516), + 106: uint16(35538), + 107: uint16(35527), + 108: uint16(35524), + 109: uint16(35477), + 110: uint16(35531), + 111: uint16(35576), + 112: uint16(35506), + 113: uint16(35529), + 114: uint16(35522), + 115: uint16(35519), + 116: uint16(35504), + 117: uint16(35542), + 118: uint16(35533), + 119: uint16(35510), + 120: uint16(35513), + 121: uint16(35547), + 122: uint16(35916), + 123: uint16(35918), + 124: uint16(35948), + 125: uint16(36064), + 126: uint16(36062), + 127: uint16(36070), + 128: uint16(36068), + 129: uint16(36076), + 130: uint16(36077), + 131: uint16(36066), + 132: uint16(36067), + 133: uint16(36060), + 134: uint16(36074), + 135: uint16(36065), + 136: uint16(36205), + 137: uint16(36255), + 138: uint16(36259), + 139: uint16(36395), + 140: uint16(36368), + 141: uint16(36381), + 142: uint16(36386), + 143: uint16(36367), + 144: uint16(36393), + 145: uint16(36383), + 146: uint16(36385), + 147: uint16(36382), + 148: uint16(36538), + 149: uint16(36637), + 150: uint16(36635), + 151: uint16(36639), + 152: uint16(36649), + 153: uint16(36646), + 154: uint16(36650), + 155: uint16(36636), + 156: uint16(36638), + }, + 29: { + 0: uint16(36645), + 1: uint16(36969), + 2: uint16(36974), + 3: uint16(36968), + 4: uint16(36973), + 5: uint16(36983), + 6: uint16(37168), + 7: uint16(37165), + 8: uint16(37159), + 9: uint16(37169), + 10: uint16(37255), + 11: uint16(37257), + 12: uint16(37259), + 13: uint16(37251), + 14: uint16(37573), + 15: uint16(37563), + 16: uint16(37559), + 17: uint16(37610), + 18: uint16(37548), + 19: uint16(37604), + 20: uint16(37569), + 21: uint16(37555), + 22: uint16(37564), + 23: uint16(37586), + 24: uint16(37575), + 25: uint16(37616), + 26: uint16(37554), + 27: uint16(38317), + 28: uint16(38321), + 29: uint16(38660), + 30: uint16(38662), + 31: uint16(38663), + 32: uint16(38665), + 33: uint16(38752), + 34: uint16(38797), + 35: uint16(38795), + 36: uint16(38799), + 37: uint16(38945), + 38: uint16(38955), + 39: uint16(38940), + 40: uint16(39091), + 41: uint16(39178), + 42: uint16(39187), + 43: uint16(39186), + 44: uint16(39192), + 45: uint16(39389), + 46: uint16(39376), + 47: uint16(39391), + 48: uint16(39387), + 49: uint16(39377), + 50: uint16(39381), + 51: uint16(39378), + 52: uint16(39385), + 53: uint16(39607), + 54: uint16(39662), + 55: uint16(39663), + 56: uint16(39719), + 57: uint16(39749), + 58: uint16(39748), + 59: uint16(39799), + 60: uint16(39791), + 61: uint16(40198), + 62: uint16(40201), + 63: uint16(40195), + 64: uint16(40617), + 65: uint16(40638), + 66: uint16(40654), + 67: uint16(22696), + 68: uint16(40786), + 69: uint16(20754), + 70: uint16(20760), + 71: uint16(20756), + 72: uint16(20752), + 73: uint16(20757), + 74: uint16(20864), + 75: uint16(20906), + 76: uint16(20957), + 77: uint16(21137), + 78: uint16(21139), + 79: uint16(21235), + 80: uint16(22105), + 81: uint16(22123), + 82: uint16(22137), + 83: uint16(22121), + 84: uint16(22116), + 85: uint16(22136), + 86: uint16(22122), + 87: uint16(22120), + 88: uint16(22117), + 89: uint16(22129), + 90: uint16(22127), + 91: uint16(22124), + 92: uint16(22114), + 93: uint16(22134), + 94: uint16(22721), + 95: uint16(22718), + 96: uint16(22727), + 97: uint16(22725), + 98: uint16(22894), + 99: uint16(23325), + 100: uint16(23348), + 101: uint16(23416), + 102: uint16(23536), + 103: uint16(23566), + 104: uint16(24394), + 105: uint16(25010), + 106: uint16(24977), + 107: uint16(25001), + 108: uint16(24970), + 109: uint16(25037), + 110: uint16(25014), + 111: uint16(25022), + 112: uint16(25034), + 113: uint16(25032), + 114: uint16(25136), + 115: uint16(25797), + 116: uint16(25793), + 117: uint16(25803), + 118: uint16(25787), + 119: uint16(25788), + 120: uint16(25818), + 121: uint16(25796), + 122: uint16(25799), + 123: uint16(25794), + 124: uint16(25805), + 125: uint16(25791), + 126: uint16(25810), + 127: uint16(25812), + 128: uint16(25790), + 129: uint16(25972), + 130: uint16(26310), + 131: uint16(26313), + 132: uint16(26297), + 133: uint16(26308), + 134: uint16(26311), + 135: uint16(26296), + 136: uint16(27197), + 137: uint16(27192), + 138: uint16(27194), + 139: uint16(27225), + 140: uint16(27243), + 141: uint16(27224), + 142: uint16(27193), + 143: uint16(27204), + 144: uint16(27234), + 145: uint16(27233), + 146: uint16(27211), + 147: uint16(27207), + 148: uint16(27189), + 149: uint16(27231), + 150: uint16(27208), + 151: uint16(27481), + 152: uint16(27511), + 153: uint16(27653), + 154: uint16(28610), + 155: uint16(28593), + 156: uint16(28577), + }, + 30: { + 0: uint16(28611), + 1: uint16(28580), + 2: uint16(28609), + 3: uint16(28583), + 4: uint16(28595), + 5: uint16(28608), + 6: uint16(28601), + 7: uint16(28598), + 8: uint16(28582), + 9: uint16(28576), + 10: uint16(28596), + 11: uint16(29118), + 12: uint16(29129), + 13: uint16(29136), + 14: uint16(29138), + 15: uint16(29128), + 16: uint16(29141), + 17: uint16(29113), + 18: uint16(29134), + 19: uint16(29145), + 20: uint16(29148), + 21: uint16(29123), + 22: uint16(29124), + 23: uint16(29544), + 24: uint16(29852), + 25: uint16(29859), + 26: uint16(29848), + 27: uint16(29855), + 28: uint16(29854), + 29: uint16(29922), + 30: uint16(29964), + 31: uint16(29965), + 32: uint16(30260), + 33: uint16(30264), + 34: uint16(30266), + 35: uint16(30439), + 36: uint16(30437), + 37: uint16(30624), + 38: uint16(30622), + 39: uint16(30623), + 40: uint16(30629), + 41: uint16(30952), + 42: uint16(30938), + 43: uint16(30956), + 44: uint16(30951), + 45: uint16(31142), + 46: uint16(31309), + 47: uint16(31310), + 48: uint16(31302), + 49: uint16(31308), + 50: uint16(31307), + 51: uint16(31418), + 52: uint16(31705), + 53: uint16(31761), + 54: uint16(31689), + 55: uint16(31716), + 56: uint16(31707), + 57: uint16(31713), + 58: uint16(31721), + 59: uint16(31718), + 60: uint16(31957), + 61: uint16(31958), + 62: uint16(32266), + 63: uint16(32273), + 64: uint16(32264), + 65: uint16(32283), + 66: uint16(32291), + 67: uint16(32286), + 68: uint16(32285), + 69: uint16(32265), + 70: uint16(32272), + 71: uint16(32633), + 72: uint16(32690), + 73: uint16(32752), + 74: uint16(32753), + 75: uint16(32750), + 76: uint16(32808), + 77: uint16(33203), + 78: uint16(33193), + 79: uint16(33192), + 80: uint16(33275), + 81: uint16(33288), + 82: uint16(33368), + 83: uint16(33369), + 84: uint16(34122), + 85: uint16(34137), + 86: uint16(34120), + 87: uint16(34152), + 88: uint16(34153), + 89: uint16(34115), + 90: uint16(34121), + 91: uint16(34157), + 92: uint16(34154), + 93: uint16(34142), + 94: uint16(34691), + 95: uint16(34719), + 96: uint16(34718), + 97: uint16(34722), + 98: uint16(34701), + 99: uint16(34913), + 100: uint16(35114), + 101: uint16(35122), + 102: uint16(35109), + 103: uint16(35115), + 104: uint16(35105), + 105: uint16(35242), + 106: uint16(35238), + 107: uint16(35558), + 108: uint16(35578), + 109: uint16(35563), + 110: uint16(35569), + 111: uint16(35584), + 112: uint16(35548), + 113: uint16(35559), + 114: uint16(35566), + 115: uint16(35582), + 116: uint16(35585), + 117: uint16(35586), + 118: uint16(35575), + 119: uint16(35565), + 120: uint16(35571), + 121: uint16(35574), + 122: uint16(35580), + 123: uint16(35947), + 124: uint16(35949), + 125: uint16(35987), + 126: uint16(36084), + 127: uint16(36420), + 128: uint16(36401), + 129: uint16(36404), + 130: uint16(36418), + 131: uint16(36409), + 132: uint16(36405), + 133: uint16(36667), + 134: uint16(36655), + 135: uint16(36664), + 136: uint16(36659), + 137: uint16(36776), + 138: uint16(36774), + 139: uint16(36981), + 140: uint16(36980), + 141: uint16(36984), + 142: uint16(36978), + 143: uint16(36988), + 144: uint16(36986), + 145: uint16(37172), + 146: uint16(37266), + 147: uint16(37664), + 148: uint16(37686), + 149: uint16(37624), + 150: uint16(37683), + 151: uint16(37679), + 152: uint16(37666), + 153: uint16(37628), + 154: uint16(37675), + 155: uint16(37636), + 156: uint16(37658), + }, + 31: { + 0: uint16(37648), + 1: uint16(37670), + 2: uint16(37665), + 3: uint16(37653), + 4: uint16(37678), + 5: uint16(37657), + 6: uint16(38331), + 7: uint16(38567), + 8: uint16(38568), + 9: uint16(38570), + 10: uint16(38613), + 11: uint16(38670), + 12: uint16(38673), + 13: uint16(38678), + 14: uint16(38669), + 15: uint16(38675), + 16: uint16(38671), + 17: uint16(38747), + 18: uint16(38748), + 19: uint16(38758), + 20: uint16(38808), + 21: uint16(38960), + 22: uint16(38968), + 23: uint16(38971), + 24: uint16(38967), + 25: uint16(38957), + 26: uint16(38969), + 27: uint16(38948), + 28: uint16(39184), + 29: uint16(39208), + 30: uint16(39198), + 31: uint16(39195), + 32: uint16(39201), + 33: uint16(39194), + 34: uint16(39405), + 35: uint16(39394), + 36: uint16(39409), + 37: uint16(39608), + 38: uint16(39612), + 39: uint16(39675), + 40: uint16(39661), + 41: uint16(39720), + 42: uint16(39825), + 43: uint16(40213), + 44: uint16(40227), + 45: uint16(40230), + 46: uint16(40232), + 47: uint16(40210), + 48: uint16(40219), + 49: uint16(40664), + 50: uint16(40660), + 51: uint16(40845), + 52: uint16(40860), + 53: uint16(20778), + 54: uint16(20767), + 55: uint16(20769), + 56: uint16(20786), + 57: uint16(21237), + 58: uint16(22158), + 59: uint16(22144), + 60: uint16(22160), + 61: uint16(22149), + 62: uint16(22151), + 63: uint16(22159), + 64: uint16(22741), + 65: uint16(22739), + 66: uint16(22737), + 67: uint16(22734), + 68: uint16(23344), + 69: uint16(23338), + 70: uint16(23332), + 71: uint16(23418), + 72: uint16(23607), + 73: uint16(23656), + 74: uint16(23996), + 75: uint16(23994), + 76: uint16(23997), + 77: uint16(23992), + 78: uint16(24171), + 79: uint16(24396), + 80: uint16(24509), + 81: uint16(25033), + 82: uint16(25026), + 83: uint16(25031), + 84: uint16(25062), + 85: uint16(25035), + 86: uint16(25138), + 87: uint16(25140), + 88: uint16(25806), + 89: uint16(25802), + 90: uint16(25816), + 91: uint16(25824), + 92: uint16(25840), + 93: uint16(25830), + 94: uint16(25836), + 95: uint16(25841), + 96: uint16(25826), + 97: uint16(25837), + 98: uint16(25986), + 99: uint16(25987), + 100: uint16(26329), + 101: uint16(26326), + 102: uint16(27264), + 103: uint16(27284), + 104: uint16(27268), + 105: uint16(27298), + 106: uint16(27292), + 107: uint16(27355), + 108: uint16(27299), + 109: uint16(27262), + 110: uint16(27287), + 111: uint16(27280), + 112: uint16(27296), + 113: uint16(27484), + 114: uint16(27566), + 115: uint16(27610), + 116: uint16(27656), + 117: uint16(28632), + 118: uint16(28657), + 119: uint16(28639), + 120: uint16(28640), + 121: uint16(28635), + 122: uint16(28644), + 123: uint16(28651), + 124: uint16(28655), + 125: uint16(28544), + 126: uint16(28652), + 127: uint16(28641), + 128: uint16(28649), + 129: uint16(28629), + 130: uint16(28654), + 131: uint16(28656), + 132: uint16(29159), + 133: uint16(29151), + 134: uint16(29166), + 135: uint16(29158), + 136: uint16(29157), + 137: uint16(29165), + 138: uint16(29164), + 139: uint16(29172), + 140: uint16(29152), + 141: uint16(29237), + 142: uint16(29254), + 143: uint16(29552), + 144: uint16(29554), + 145: uint16(29865), + 146: uint16(29872), + 147: uint16(29862), + 148: uint16(29864), + 149: uint16(30278), + 150: uint16(30274), + 151: uint16(30284), + 152: uint16(30442), + 153: uint16(30643), + 154: uint16(30634), + 155: uint16(30640), + 156: uint16(30636), + }, + 32: { + 0: uint16(30631), + 1: uint16(30637), + 2: uint16(30703), + 3: uint16(30967), + 4: uint16(30970), + 5: uint16(30964), + 6: uint16(30959), + 7: uint16(30977), + 8: uint16(31143), + 9: uint16(31146), + 10: uint16(31319), + 11: uint16(31423), + 12: uint16(31751), + 13: uint16(31757), + 14: uint16(31742), + 15: uint16(31735), + 16: uint16(31756), + 17: uint16(31712), + 18: uint16(31968), + 19: uint16(31964), + 20: uint16(31966), + 21: uint16(31970), + 22: uint16(31967), + 23: uint16(31961), + 24: uint16(31965), + 25: uint16(32302), + 26: uint16(32318), + 27: uint16(32326), + 28: uint16(32311), + 29: uint16(32306), + 30: uint16(32323), + 31: uint16(32299), + 32: uint16(32317), + 33: uint16(32305), + 34: uint16(32325), + 35: uint16(32321), + 36: uint16(32308), + 37: uint16(32313), + 38: uint16(32328), + 39: uint16(32309), + 40: uint16(32319), + 41: uint16(32303), + 42: uint16(32580), + 43: uint16(32755), + 44: uint16(32764), + 45: uint16(32881), + 46: uint16(32882), + 47: uint16(32880), + 48: uint16(32879), + 49: uint16(32883), + 50: uint16(33222), + 51: uint16(33219), + 52: uint16(33210), + 53: uint16(33218), + 54: uint16(33216), + 55: uint16(33215), + 56: uint16(33213), + 57: uint16(33225), + 58: uint16(33214), + 59: uint16(33256), + 60: uint16(33289), + 61: uint16(33393), + 62: uint16(34218), + 63: uint16(34180), + 64: uint16(34174), + 65: uint16(34204), + 66: uint16(34193), + 67: uint16(34196), + 68: uint16(34223), + 69: uint16(34203), + 70: uint16(34183), + 71: uint16(34216), + 72: uint16(34186), + 73: uint16(34407), + 74: uint16(34752), + 75: uint16(34769), + 76: uint16(34739), + 77: uint16(34770), + 78: uint16(34758), + 79: uint16(34731), + 80: uint16(34747), + 81: uint16(34746), + 82: uint16(34760), + 83: uint16(34763), + 84: uint16(35131), + 85: uint16(35126), + 86: uint16(35140), + 87: uint16(35128), + 88: uint16(35133), + 89: uint16(35244), + 90: uint16(35598), + 91: uint16(35607), + 92: uint16(35609), + 93: uint16(35611), + 94: uint16(35594), + 95: uint16(35616), + 96: uint16(35613), + 97: uint16(35588), + 98: uint16(35600), + 99: uint16(35905), + 100: uint16(35903), + 101: uint16(35955), + 102: uint16(36090), + 103: uint16(36093), + 104: uint16(36092), + 105: uint16(36088), + 106: uint16(36091), + 107: uint16(36264), + 108: uint16(36425), + 109: uint16(36427), + 110: uint16(36424), + 111: uint16(36426), + 112: uint16(36676), + 113: uint16(36670), + 114: uint16(36674), + 115: uint16(36677), + 116: uint16(36671), + 117: uint16(36991), + 118: uint16(36989), + 119: uint16(36996), + 120: uint16(36993), + 121: uint16(36994), + 122: uint16(36992), + 123: uint16(37177), + 124: uint16(37283), + 125: uint16(37278), + 126: uint16(37276), + 127: uint16(37709), + 128: uint16(37762), + 129: uint16(37672), + 130: uint16(37749), + 131: uint16(37706), + 132: uint16(37733), + 133: uint16(37707), + 134: uint16(37656), + 135: uint16(37758), + 136: uint16(37740), + 137: uint16(37723), + 138: uint16(37744), + 139: uint16(37722), + 140: uint16(37716), + 141: uint16(38346), + 142: uint16(38347), + 143: uint16(38348), + 144: uint16(38344), + 145: uint16(38342), + 146: uint16(38577), + 147: uint16(38584), + 148: uint16(38614), + 149: uint16(38684), + 150: uint16(38686), + 151: uint16(38816), + 152: uint16(38867), + 153: uint16(38982), + 154: uint16(39094), + 155: uint16(39221), + 156: uint16(39425), + }, + 33: { + 0: uint16(39423), + 1: uint16(39854), + 2: uint16(39851), + 3: uint16(39850), + 4: uint16(39853), + 5: uint16(40251), + 6: uint16(40255), + 7: uint16(40587), + 8: uint16(40655), + 9: uint16(40670), + 10: uint16(40668), + 11: uint16(40669), + 12: uint16(40667), + 13: uint16(40766), + 14: uint16(40779), + 15: uint16(21474), + 16: uint16(22165), + 17: uint16(22190), + 18: uint16(22745), + 19: uint16(22744), + 20: uint16(23352), + 21: uint16(24413), + 22: uint16(25059), + 23: uint16(25139), + 24: uint16(25844), + 25: uint16(25842), + 26: uint16(25854), + 27: uint16(25862), + 28: uint16(25850), + 29: uint16(25851), + 30: uint16(25847), + 31: uint16(26039), + 32: uint16(26332), + 33: uint16(26406), + 34: uint16(27315), + 35: uint16(27308), + 36: uint16(27331), + 37: uint16(27323), + 38: uint16(27320), + 39: uint16(27330), + 40: uint16(27310), + 41: uint16(27311), + 42: uint16(27487), + 43: uint16(27512), + 44: uint16(27567), + 45: uint16(28681), + 46: uint16(28683), + 47: uint16(28670), + 48: uint16(28678), + 49: uint16(28666), + 50: uint16(28689), + 51: uint16(28687), + 52: uint16(29179), + 53: uint16(29180), + 54: uint16(29182), + 55: uint16(29176), + 56: uint16(29559), + 57: uint16(29557), + 58: uint16(29863), + 59: uint16(29887), + 60: uint16(29973), + 61: uint16(30294), + 62: uint16(30296), + 63: uint16(30290), + 64: uint16(30653), + 65: uint16(30655), + 66: uint16(30651), + 67: uint16(30652), + 68: uint16(30990), + 69: uint16(31150), + 70: uint16(31329), + 71: uint16(31330), + 72: uint16(31328), + 73: uint16(31428), + 74: uint16(31429), + 75: uint16(31787), + 76: uint16(31783), + 77: uint16(31786), + 78: uint16(31774), + 79: uint16(31779), + 80: uint16(31777), + 81: uint16(31975), + 82: uint16(32340), + 83: uint16(32341), + 84: uint16(32350), + 85: uint16(32346), + 86: uint16(32353), + 87: uint16(32338), + 88: uint16(32345), + 89: uint16(32584), + 90: uint16(32761), + 91: uint16(32763), + 92: uint16(32887), + 93: uint16(32886), + 94: uint16(33229), + 95: uint16(33231), + 96: uint16(33290), + 97: uint16(34255), + 98: uint16(34217), + 99: uint16(34253), + 100: uint16(34256), + 101: uint16(34249), + 102: uint16(34224), + 103: uint16(34234), + 104: uint16(34233), + 105: uint16(34214), + 106: uint16(34799), + 107: uint16(34796), + 108: uint16(34802), + 109: uint16(34784), + 110: uint16(35206), + 111: uint16(35250), + 112: uint16(35316), + 113: uint16(35624), + 114: uint16(35641), + 115: uint16(35628), + 116: uint16(35627), + 117: uint16(35920), + 118: uint16(36101), + 119: uint16(36441), + 120: uint16(36451), + 121: uint16(36454), + 122: uint16(36452), + 123: uint16(36447), + 124: uint16(36437), + 125: uint16(36544), + 126: uint16(36681), + 127: uint16(36685), + 128: uint16(36999), + 129: uint16(36995), + 130: uint16(37000), + 131: uint16(37291), + 132: uint16(37292), + 133: uint16(37328), + 134: uint16(37780), + 135: uint16(37770), + 136: uint16(37782), + 137: uint16(37794), + 138: uint16(37811), + 139: uint16(37806), + 140: uint16(37804), + 141: uint16(37808), + 142: uint16(37784), + 143: uint16(37786), + 144: uint16(37783), + 145: uint16(38356), + 146: uint16(38358), + 147: uint16(38352), + 148: uint16(38357), + 149: uint16(38626), + 150: uint16(38620), + 151: uint16(38617), + 152: uint16(38619), + 153: uint16(38622), + 154: uint16(38692), + 155: uint16(38819), + 156: uint16(38822), + }, + 34: { + 0: uint16(38829), + 1: uint16(38905), + 2: uint16(38989), + 3: uint16(38991), + 4: uint16(38988), + 5: uint16(38990), + 6: uint16(38995), + 7: uint16(39098), + 8: uint16(39230), + 9: uint16(39231), + 10: uint16(39229), + 11: uint16(39214), + 12: uint16(39333), + 13: uint16(39438), + 14: uint16(39617), + 15: uint16(39683), + 16: uint16(39686), + 17: uint16(39759), + 18: uint16(39758), + 19: uint16(39757), + 20: uint16(39882), + 21: uint16(39881), + 22: uint16(39933), + 23: uint16(39880), + 24: uint16(39872), + 25: uint16(40273), + 26: uint16(40285), + 27: uint16(40288), + 28: uint16(40672), + 29: uint16(40725), + 30: uint16(40748), + 31: uint16(20787), + 32: uint16(22181), + 33: uint16(22750), + 34: uint16(22751), + 35: uint16(22754), + 36: uint16(23541), + 37: uint16(40848), + 38: uint16(24300), + 39: uint16(25074), + 40: uint16(25079), + 41: uint16(25078), + 42: uint16(25077), + 43: uint16(25856), + 44: uint16(25871), + 45: uint16(26336), + 46: uint16(26333), + 47: uint16(27365), + 48: uint16(27357), + 49: uint16(27354), + 50: uint16(27347), + 51: uint16(28699), + 52: uint16(28703), + 53: uint16(28712), + 54: uint16(28698), + 55: uint16(28701), + 56: uint16(28693), + 57: uint16(28696), + 58: uint16(29190), + 59: uint16(29197), + 60: uint16(29272), + 61: uint16(29346), + 62: uint16(29560), + 63: uint16(29562), + 64: uint16(29885), + 65: uint16(29898), + 66: uint16(29923), + 67: uint16(30087), + 68: uint16(30086), + 69: uint16(30303), + 70: uint16(30305), + 71: uint16(30663), + 72: uint16(31001), + 73: uint16(31153), + 74: uint16(31339), + 75: uint16(31337), + 76: uint16(31806), + 77: uint16(31807), + 78: uint16(31800), + 79: uint16(31805), + 80: uint16(31799), + 81: uint16(31808), + 82: uint16(32363), + 83: uint16(32365), + 84: uint16(32377), + 85: uint16(32361), + 86: uint16(32362), + 87: uint16(32645), + 88: uint16(32371), + 89: uint16(32694), + 90: uint16(32697), + 91: uint16(32696), + 92: uint16(33240), + 93: uint16(34281), + 94: uint16(34269), + 95: uint16(34282), + 96: uint16(34261), + 97: uint16(34276), + 98: uint16(34277), + 99: uint16(34295), + 100: uint16(34811), + 101: uint16(34821), + 102: uint16(34829), + 103: uint16(34809), + 104: uint16(34814), + 105: uint16(35168), + 106: uint16(35167), + 107: uint16(35158), + 108: uint16(35166), + 109: uint16(35649), + 110: uint16(35676), + 111: uint16(35672), + 112: uint16(35657), + 113: uint16(35674), + 114: uint16(35662), + 115: uint16(35663), + 116: uint16(35654), + 117: uint16(35673), + 118: uint16(36104), + 119: uint16(36106), + 120: uint16(36476), + 121: uint16(36466), + 122: uint16(36487), + 123: uint16(36470), + 124: uint16(36460), + 125: uint16(36474), + 126: uint16(36468), + 127: uint16(36692), + 128: uint16(36686), + 129: uint16(36781), + 130: uint16(37002), + 131: uint16(37003), + 132: uint16(37297), + 133: uint16(37294), + 134: uint16(37857), + 135: uint16(37841), + 136: uint16(37855), + 137: uint16(37827), + 138: uint16(37832), + 139: uint16(37852), + 140: uint16(37853), + 141: uint16(37846), + 142: uint16(37858), + 143: uint16(37837), + 144: uint16(37848), + 145: uint16(37860), + 146: uint16(37847), + 147: uint16(37864), + 148: uint16(38364), + 149: uint16(38580), + 150: uint16(38627), + 151: uint16(38698), + 152: uint16(38695), + 153: uint16(38753), + 154: uint16(38876), + 155: uint16(38907), + 156: uint16(39006), + }, + 35: { + 0: uint16(39000), + 1: uint16(39003), + 2: uint16(39100), + 3: uint16(39237), + 4: uint16(39241), + 5: uint16(39446), + 6: uint16(39449), + 7: uint16(39693), + 8: uint16(39912), + 9: uint16(39911), + 10: uint16(39894), + 11: uint16(39899), + 12: uint16(40329), + 13: uint16(40289), + 14: uint16(40306), + 15: uint16(40298), + 16: uint16(40300), + 17: uint16(40594), + 18: uint16(40599), + 19: uint16(40595), + 20: uint16(40628), + 21: uint16(21240), + 22: uint16(22184), + 23: uint16(22199), + 24: uint16(22198), + 25: uint16(22196), + 26: uint16(22204), + 27: uint16(22756), + 28: uint16(23360), + 29: uint16(23363), + 30: uint16(23421), + 31: uint16(23542), + 32: uint16(24009), + 33: uint16(25080), + 34: uint16(25082), + 35: uint16(25880), + 36: uint16(25876), + 37: uint16(25881), + 38: uint16(26342), + 39: uint16(26407), + 40: uint16(27372), + 41: uint16(28734), + 42: uint16(28720), + 43: uint16(28722), + 44: uint16(29200), + 45: uint16(29563), + 46: uint16(29903), + 47: uint16(30306), + 48: uint16(30309), + 49: uint16(31014), + 50: uint16(31018), + 51: uint16(31020), + 52: uint16(31019), + 53: uint16(31431), + 54: uint16(31478), + 55: uint16(31820), + 56: uint16(31811), + 57: uint16(31821), + 58: uint16(31983), + 59: uint16(31984), + 60: uint16(36782), + 61: uint16(32381), + 62: uint16(32380), + 63: uint16(32386), + 64: uint16(32588), + 65: uint16(32768), + 66: uint16(33242), + 67: uint16(33382), + 68: uint16(34299), + 69: uint16(34297), + 70: uint16(34321), + 71: uint16(34298), + 72: uint16(34310), + 73: uint16(34315), + 74: uint16(34311), + 75: uint16(34314), + 76: uint16(34836), + 77: uint16(34837), + 78: uint16(35172), + 79: uint16(35258), + 80: uint16(35320), + 81: uint16(35696), + 82: uint16(35692), + 83: uint16(35686), + 84: uint16(35695), + 85: uint16(35679), + 86: uint16(35691), + 87: uint16(36111), + 88: uint16(36109), + 89: uint16(36489), + 90: uint16(36481), + 91: uint16(36485), + 92: uint16(36482), + 93: uint16(37300), + 94: uint16(37323), + 95: uint16(37912), + 96: uint16(37891), + 97: uint16(37885), + 98: uint16(38369), + 99: uint16(38704), + 100: uint16(39108), + 101: uint16(39250), + 102: uint16(39249), + 103: uint16(39336), + 104: uint16(39467), + 105: uint16(39472), + 106: uint16(39479), + 107: uint16(39477), + 108: uint16(39955), + 109: uint16(39949), + 110: uint16(40569), + 111: uint16(40629), + 112: uint16(40680), + 113: uint16(40751), + 114: uint16(40799), + 115: uint16(40803), + 116: uint16(40801), + 117: uint16(20791), + 118: uint16(20792), + 119: uint16(22209), + 120: uint16(22208), + 121: uint16(22210), + 122: uint16(22804), + 123: uint16(23660), + 124: uint16(24013), + 125: uint16(25084), + 126: uint16(25086), + 127: uint16(25885), + 128: uint16(25884), + 129: uint16(26005), + 130: uint16(26345), + 131: uint16(27387), + 132: uint16(27396), + 133: uint16(27386), + 134: uint16(27570), + 135: uint16(28748), + 136: uint16(29211), + 137: uint16(29351), + 138: uint16(29910), + 139: uint16(29908), + 140: uint16(30313), + 141: uint16(30675), + 142: uint16(31824), + 143: uint16(32399), + 144: uint16(32396), + 145: uint16(32700), + 146: uint16(34327), + 147: uint16(34349), + 148: uint16(34330), + 149: uint16(34851), + 150: uint16(34850), + 151: uint16(34849), + 152: uint16(34847), + 153: uint16(35178), + 154: uint16(35180), + 155: uint16(35261), + 156: uint16(35700), + }, + 36: { + 0: uint16(35703), + 1: uint16(35709), + 2: uint16(36115), + 3: uint16(36490), + 4: uint16(36493), + 5: uint16(36491), + 6: uint16(36703), + 7: uint16(36783), + 8: uint16(37306), + 9: uint16(37934), + 10: uint16(37939), + 11: uint16(37941), + 12: uint16(37946), + 13: uint16(37944), + 14: uint16(37938), + 15: uint16(37931), + 16: uint16(38370), + 17: uint16(38712), + 18: uint16(38713), + 19: uint16(38706), + 20: uint16(38911), + 21: uint16(39015), + 22: uint16(39013), + 23: uint16(39255), + 24: uint16(39493), + 25: uint16(39491), + 26: uint16(39488), + 27: uint16(39486), + 28: uint16(39631), + 29: uint16(39764), + 30: uint16(39761), + 31: uint16(39981), + 32: uint16(39973), + 33: uint16(40367), + 34: uint16(40372), + 35: uint16(40386), + 36: uint16(40376), + 37: uint16(40605), + 38: uint16(40687), + 39: uint16(40729), + 40: uint16(40796), + 41: uint16(40806), + 42: uint16(40807), + 43: uint16(20796), + 44: uint16(20795), + 45: uint16(22216), + 46: uint16(22218), + 47: uint16(22217), + 48: uint16(23423), + 49: uint16(24020), + 50: uint16(24018), + 51: uint16(24398), + 52: uint16(25087), + 53: uint16(25892), + 54: uint16(27402), + 55: uint16(27489), + 56: uint16(28753), + 57: uint16(28760), + 58: uint16(29568), + 59: uint16(29924), + 60: uint16(30090), + 61: uint16(30318), + 62: uint16(30316), + 63: uint16(31155), + 64: uint16(31840), + 65: uint16(31839), + 66: uint16(32894), + 67: uint16(32893), + 68: uint16(33247), + 69: uint16(35186), + 70: uint16(35183), + 71: uint16(35324), + 72: uint16(35712), + 73: uint16(36118), + 74: uint16(36119), + 75: uint16(36497), + 76: uint16(36499), + 77: uint16(36705), + 78: uint16(37192), + 79: uint16(37956), + 80: uint16(37969), + 81: uint16(37970), + 82: uint16(38717), + 83: uint16(38718), + 84: uint16(38851), + 85: uint16(38849), + 86: uint16(39019), + 87: uint16(39253), + 88: uint16(39509), + 89: uint16(39501), + 90: uint16(39634), + 91: uint16(39706), + 92: uint16(40009), + 93: uint16(39985), + 94: uint16(39998), + 95: uint16(39995), + 96: uint16(40403), + 97: uint16(40407), + 98: uint16(40756), + 99: uint16(40812), + 100: uint16(40810), + 101: uint16(40852), + 102: uint16(22220), + 103: uint16(24022), + 104: uint16(25088), + 105: uint16(25891), + 106: uint16(25899), + 107: uint16(25898), + 108: uint16(26348), + 109: uint16(27408), + 110: uint16(29914), + 111: uint16(31434), + 112: uint16(31844), + 113: uint16(31843), + 114: uint16(31845), + 115: uint16(32403), + 116: uint16(32406), + 117: uint16(32404), + 118: uint16(33250), + 119: uint16(34360), + 120: uint16(34367), + 121: uint16(34865), + 122: uint16(35722), + 123: uint16(37008), + 124: uint16(37007), + 125: uint16(37987), + 126: uint16(37984), + 127: uint16(37988), + 128: uint16(38760), + 129: uint16(39023), + 130: uint16(39260), + 131: uint16(39514), + 132: uint16(39515), + 133: uint16(39511), + 134: uint16(39635), + 135: uint16(39636), + 136: uint16(39633), + 137: uint16(40020), + 138: uint16(40023), + 139: uint16(40022), + 140: uint16(40421), + 141: uint16(40607), + 142: uint16(40692), + 143: uint16(22225), + 144: uint16(22761), + 145: uint16(25900), + 146: uint16(28766), + 147: uint16(30321), + 148: uint16(30322), + 149: uint16(30679), + 150: uint16(32592), + 151: uint16(32648), + 152: uint16(34870), + 153: uint16(34873), + 154: uint16(34914), + 155: uint16(35731), + 156: uint16(35730), + }, + 37: { + 0: uint16(35734), + 1: uint16(33399), + 2: uint16(36123), + 3: uint16(37312), + 4: uint16(37994), + 5: uint16(38722), + 6: uint16(38728), + 7: uint16(38724), + 8: uint16(38854), + 9: uint16(39024), + 10: uint16(39519), + 11: uint16(39714), + 12: uint16(39768), + 13: uint16(40031), + 14: uint16(40441), + 15: uint16(40442), + 16: uint16(40572), + 17: uint16(40573), + 18: uint16(40711), + 19: uint16(40823), + 20: uint16(40818), + 21: uint16(24307), + 22: uint16(27414), + 23: uint16(28771), + 24: uint16(31852), + 25: uint16(31854), + 26: uint16(34875), + 27: uint16(35264), + 28: uint16(36513), + 29: uint16(37313), + 30: uint16(38002), + 31: uint16(38000), + 32: uint16(39025), + 33: uint16(39262), + 34: uint16(39638), + 35: uint16(39715), + 36: uint16(40652), + 37: uint16(28772), + 38: uint16(30682), + 39: uint16(35738), + 40: uint16(38007), + 41: uint16(38857), + 42: uint16(39522), + 43: uint16(39525), + 44: uint16(32412), + 45: uint16(35740), + 46: uint16(36522), + 47: uint16(37317), + 48: uint16(38013), + 49: uint16(38014), + 50: uint16(38012), + 51: uint16(40055), + 52: uint16(40056), + 53: uint16(40695), + 54: uint16(35924), + 55: uint16(38015), + 56: uint16(40474), + 57: uint16(29224), + 58: uint16(39530), + 59: uint16(39729), + 60: uint16(40475), + 61: uint16(40478), + 62: uint16(31858), + 63: uint16(9312), + 64: uint16(9313), + 65: uint16(9314), + 66: uint16(9315), + 67: uint16(9316), + 68: uint16(9317), + 69: uint16(9318), + 70: uint16(9319), + 71: uint16(9320), + 72: uint16(9321), + 73: uint16(9332), + 74: uint16(9333), + 75: uint16(9334), + 76: uint16(9335), + 77: uint16(9336), + 78: uint16(9337), + 79: uint16(9338), + 80: uint16(9339), + 81: uint16(9340), + 82: uint16(9341), + 83: uint16(8560), + 84: uint16(8561), + 85: uint16(8562), + 86: uint16(8563), + 87: uint16(8564), + 88: uint16(8565), + 89: uint16(8566), + 90: uint16(8567), + 91: uint16(8568), + 92: uint16(8569), + 93: uint16(20022), + 94: uint16(20031), + 95: uint16(20101), + 96: uint16(20128), + 97: uint16(20866), + 98: uint16(20886), + 99: uint16(20907), + 100: uint16(21241), + 101: uint16(21304), + 102: uint16(21353), + 103: uint16(21430), + 104: uint16(22794), + 105: uint16(23424), + 106: uint16(24027), + 107: uint16(24186), + 108: uint16(24191), + 109: uint16(24308), + 110: uint16(24400), + 111: uint16(24417), + 112: uint16(25908), + 113: uint16(26080), + 114: uint16(30098), + 115: uint16(30326), + 116: uint16(36789), + 117: uint16(38582), + 118: uint16(168), + 119: uint16(710), + 120: uint16(12541), + 121: uint16(12542), + 122: uint16(12445), + 123: uint16(12446), + 126: uint16(12293), + 127: uint16(12294), + 128: uint16(12295), + 129: uint16(12540), + 130: uint16(65339), + 131: uint16(65341), + 132: uint16(10045), + 133: uint16(12353), + 134: uint16(12354), + 135: uint16(12355), + 136: uint16(12356), + 137: uint16(12357), + 138: uint16(12358), + 139: uint16(12359), + 140: uint16(12360), + 141: uint16(12361), + 142: uint16(12362), + 143: uint16(12363), + 144: uint16(12364), + 145: uint16(12365), + 146: uint16(12366), + 147: uint16(12367), + 148: uint16(12368), + 149: uint16(12369), + 150: uint16(12370), + 151: uint16(12371), + 152: uint16(12372), + 153: uint16(12373), + 154: uint16(12374), + 155: uint16(12375), + 156: uint16(12376), + }, + 38: { + 0: uint16(12377), + 1: uint16(12378), + 2: uint16(12379), + 3: uint16(12380), + 4: uint16(12381), + 5: uint16(12382), + 6: uint16(12383), + 7: uint16(12384), + 8: uint16(12385), + 9: uint16(12386), + 10: uint16(12387), + 11: uint16(12388), + 12: uint16(12389), + 13: uint16(12390), + 14: uint16(12391), + 15: uint16(12392), + 16: uint16(12393), + 17: uint16(12394), + 18: uint16(12395), + 19: uint16(12396), + 20: uint16(12397), + 21: uint16(12398), + 22: uint16(12399), + 23: uint16(12400), + 24: uint16(12401), + 25: uint16(12402), + 26: uint16(12403), + 27: uint16(12404), + 28: uint16(12405), + 29: uint16(12406), + 30: uint16(12407), + 31: uint16(12408), + 32: uint16(12409), + 33: uint16(12410), + 34: uint16(12411), + 35: uint16(12412), + 36: uint16(12413), + 37: uint16(12414), + 38: uint16(12415), + 39: uint16(12416), + 40: uint16(12417), + 41: uint16(12418), + 42: uint16(12419), + 43: uint16(12420), + 44: uint16(12421), + 45: uint16(12422), + 46: uint16(12423), + 47: uint16(12424), + 48: uint16(12425), + 49: uint16(12426), + 50: uint16(12427), + 51: uint16(12428), + 52: uint16(12429), + 53: uint16(12430), + 54: uint16(12431), + 55: uint16(12432), + 56: uint16(12433), + 57: uint16(12434), + 58: uint16(12435), + 59: uint16(12449), + 60: uint16(12450), + 61: uint16(12451), + 62: uint16(12452), + 63: uint16(12453), + 64: uint16(12454), + 65: uint16(12455), + 66: uint16(12456), + 67: uint16(12457), + 68: uint16(12458), + 69: uint16(12459), + 70: uint16(12460), + 71: uint16(12461), + 72: uint16(12462), + 73: uint16(12463), + 74: uint16(12464), + 75: uint16(12465), + 76: uint16(12466), + 77: uint16(12467), + 78: uint16(12468), + 79: uint16(12469), + 80: uint16(12470), + 81: uint16(12471), + 82: uint16(12472), + 83: uint16(12473), + 84: uint16(12474), + 85: uint16(12475), + 86: uint16(12476), + 87: uint16(12477), + 88: uint16(12478), + 89: uint16(12479), + 90: uint16(12480), + 91: uint16(12481), + 92: uint16(12482), + 93: uint16(12483), + 94: uint16(12484), + 95: uint16(12485), + 96: uint16(12486), + 97: uint16(12487), + 98: uint16(12488), + 99: uint16(12489), + 100: uint16(12490), + 101: uint16(12491), + 102: uint16(12492), + 103: uint16(12493), + 104: uint16(12494), + 105: uint16(12495), + 106: uint16(12496), + 107: uint16(12497), + 108: uint16(12498), + 109: uint16(12499), + 110: uint16(12500), + 111: uint16(12501), + 112: uint16(12502), + 113: uint16(12503), + 114: uint16(12504), + 115: uint16(12505), + 116: uint16(12506), + 117: uint16(12507), + 118: uint16(12508), + 119: uint16(12509), + 120: uint16(12510), + 121: uint16(12511), + 122: uint16(12512), + 123: uint16(12513), + 124: uint16(12514), + 125: uint16(12515), + 126: uint16(12516), + 127: uint16(12517), + 128: uint16(12518), + 129: uint16(12519), + 130: uint16(12520), + 131: uint16(12521), + 132: uint16(12522), + 133: uint16(12523), + 134: uint16(12524), + 135: uint16(12525), + 136: uint16(12526), + 137: uint16(12527), + 138: uint16(12528), + 139: uint16(12529), + 140: uint16(12530), + 141: uint16(12531), + 142: uint16(12532), + 143: uint16(12533), + 144: uint16(12534), + 145: uint16(1040), + 146: uint16(1041), + 147: uint16(1042), + 148: uint16(1043), + 149: uint16(1044), + 150: uint16(1045), + 151: uint16(1025), + 152: uint16(1046), + 153: uint16(1047), + 154: uint16(1048), + 155: uint16(1049), + 156: uint16(1050), + }, + 39: { + 0: uint16(1051), + 1: uint16(1052), + 2: uint16(1053), + 3: uint16(1054), + 4: uint16(1055), + 5: uint16(1056), + 6: uint16(1057), + 7: uint16(1058), + 8: uint16(1059), + 9: uint16(1060), + 10: uint16(1061), + 11: uint16(1062), + 12: uint16(1063), + 13: uint16(1064), + 14: uint16(1065), + 15: uint16(1066), + 16: uint16(1067), + 17: uint16(1068), + 18: uint16(1069), + 19: uint16(1070), + 20: uint16(1071), + 21: uint16(1072), + 22: uint16(1073), + 23: uint16(1074), + 24: uint16(1075), + 25: uint16(1076), + 26: uint16(1077), + 27: uint16(1105), + 28: uint16(1078), + 29: uint16(1079), + 30: uint16(1080), + 31: uint16(1081), + 32: uint16(1082), + 33: uint16(1083), + 34: uint16(1084), + 35: uint16(1085), + 36: uint16(1086), + 37: uint16(1087), + 38: uint16(1088), + 39: uint16(1089), + 40: uint16(1090), + 41: uint16(1091), + 42: uint16(1092), + 43: uint16(1093), + 44: uint16(1094), + 45: uint16(1095), + 46: uint16(1096), + 47: uint16(1097), + 48: uint16(1098), + 49: uint16(1099), + 50: uint16(1100), + 51: uint16(1101), + 52: uint16(1102), + 53: uint16(1103), + 54: uint16(8679), + 55: uint16(8632), + 56: uint16(8633), + 57: uint16(12751), + 58: uint16(204), + 59: uint16(20058), + 60: uint16(138), + 61: uint16(20994), + 62: uint16(17553), + 63: uint16(40880), + 64: uint16(20872), + 65: uint16(40881), + 66: uint16(30215), + 107: uint16(65506), + 108: uint16(65508), + 109: uint16(65287), + 110: uint16(65282), + 111: uint16(12849), + 112: uint16(8470), + 113: uint16(8481), + 114: uint16(12443), + 115: uint16(12444), + 116: uint16(11904), + 117: uint16(11908), + 118: uint16(11910), + 119: uint16(11911), + 120: uint16(11912), + 121: uint16(11914), + 122: uint16(11916), + 123: uint16(11917), + 124: uint16(11925), + 125: uint16(11932), + 126: uint16(11933), + 127: uint16(11941), + 128: uint16(11943), + 129: uint16(11946), + 130: uint16(11948), + 131: uint16(11950), + 132: uint16(11958), + 133: uint16(11964), + 134: uint16(11966), + 135: uint16(11974), + 136: uint16(11978), + 137: uint16(11980), + 138: uint16(11981), + 139: uint16(11983), + 140: uint16(11990), + 141: uint16(11991), + 142: uint16(11998), + 143: uint16(12003), + 147: uint16(643), + 148: uint16(592), + 149: uint16(603), + 150: uint16(596), + 151: uint16(629), + 152: uint16(339), + 153: uint16(248), + 154: uint16(331), + 155: uint16(650), + 156: uint16(618), + }, + 40: { + 0: uint16(20034), + 1: uint16(20060), + 2: uint16(20981), + 3: uint16(21274), + 4: uint16(21378), + 5: uint16(19975), + 6: uint16(19980), + 7: uint16(20039), + 8: uint16(20109), + 9: uint16(22231), + 10: uint16(64012), + 11: uint16(23662), + 12: uint16(24435), + 13: uint16(19983), + 14: uint16(20871), + 15: uint16(19982), + 16: uint16(20014), + 17: uint16(20115), + 18: uint16(20162), + 19: uint16(20169), + 20: uint16(20168), + 21: uint16(20888), + 22: uint16(21244), + 23: uint16(21356), + 24: uint16(21433), + 25: uint16(22304), + 26: uint16(22787), + 27: uint16(22828), + 28: uint16(23568), + 29: uint16(24063), + 30: uint16(26081), + 31: uint16(27571), + 32: uint16(27596), + 33: uint16(27668), + 34: uint16(29247), + 35: uint16(20017), + 36: uint16(20028), + 37: uint16(20200), + 38: uint16(20188), + 39: uint16(20201), + 40: uint16(20193), + 41: uint16(20189), + 42: uint16(20186), + 43: uint16(21004), + 44: uint16(21276), + 45: uint16(21324), + 46: uint16(22306), + 47: uint16(22307), + 48: uint16(22807), + 49: uint16(22831), + 50: uint16(23425), + 51: uint16(23428), + 52: uint16(23570), + 53: uint16(23611), + 54: uint16(23668), + 55: uint16(23667), + 56: uint16(24068), + 57: uint16(24192), + 58: uint16(24194), + 59: uint16(24521), + 60: uint16(25097), + 61: uint16(25168), + 62: uint16(27669), + 63: uint16(27702), + 64: uint16(27715), + 65: uint16(27711), + 66: uint16(27707), + 67: uint16(29358), + 68: uint16(29360), + 69: uint16(29578), + 70: uint16(31160), + 71: uint16(32906), + 72: uint16(38430), + 73: uint16(20238), + 74: uint16(20248), + 75: uint16(20268), + 76: uint16(20213), + 77: uint16(20244), + 78: uint16(20209), + 79: uint16(20224), + 80: uint16(20215), + 81: uint16(20232), + 82: uint16(20253), + 83: uint16(20226), + 84: uint16(20229), + 85: uint16(20258), + 86: uint16(20243), + 87: uint16(20228), + 88: uint16(20212), + 89: uint16(20242), + 90: uint16(20913), + 91: uint16(21011), + 92: uint16(21001), + 93: uint16(21008), + 94: uint16(21158), + 95: uint16(21282), + 96: uint16(21279), + 97: uint16(21325), + 98: uint16(21386), + 99: uint16(21511), + 100: uint16(22241), + 101: uint16(22239), + 102: uint16(22318), + 103: uint16(22314), + 104: uint16(22324), + 105: uint16(22844), + 106: uint16(22912), + 107: uint16(22908), + 108: uint16(22917), + 109: uint16(22907), + 110: uint16(22910), + 111: uint16(22903), + 112: uint16(22911), + 113: uint16(23382), + 114: uint16(23573), + 115: uint16(23589), + 116: uint16(23676), + 117: uint16(23674), + 118: uint16(23675), + 119: uint16(23678), + 120: uint16(24031), + 121: uint16(24181), + 122: uint16(24196), + 123: uint16(24322), + 124: uint16(24346), + 125: uint16(24436), + 126: uint16(24533), + 127: uint16(24532), + 128: uint16(24527), + 129: uint16(25180), + 130: uint16(25182), + 131: uint16(25188), + 132: uint16(25185), + 133: uint16(25190), + 134: uint16(25186), + 135: uint16(25177), + 136: uint16(25184), + 137: uint16(25178), + 138: uint16(25189), + 139: uint16(26095), + 140: uint16(26094), + 141: uint16(26430), + 142: uint16(26425), + 143: uint16(26424), + 144: uint16(26427), + 145: uint16(26426), + 146: uint16(26431), + 147: uint16(26428), + 148: uint16(26419), + 149: uint16(27672), + 150: uint16(27718), + 151: uint16(27730), + 152: uint16(27740), + 153: uint16(27727), + 154: uint16(27722), + 155: uint16(27732), + 156: uint16(27723), + }, + 41: { + 0: uint16(27724), + 1: uint16(28785), + 2: uint16(29278), + 3: uint16(29364), + 4: uint16(29365), + 5: uint16(29582), + 6: uint16(29994), + 7: uint16(30335), + 8: uint16(31349), + 9: uint16(32593), + 10: uint16(33400), + 11: uint16(33404), + 12: uint16(33408), + 13: uint16(33405), + 14: uint16(33407), + 15: uint16(34381), + 16: uint16(35198), + 17: uint16(37017), + 18: uint16(37015), + 19: uint16(37016), + 20: uint16(37019), + 21: uint16(37012), + 22: uint16(38434), + 23: uint16(38436), + 24: uint16(38432), + 25: uint16(38435), + 26: uint16(20310), + 27: uint16(20283), + 28: uint16(20322), + 29: uint16(20297), + 30: uint16(20307), + 31: uint16(20324), + 32: uint16(20286), + 33: uint16(20327), + 34: uint16(20306), + 35: uint16(20319), + 36: uint16(20289), + 37: uint16(20312), + 38: uint16(20269), + 39: uint16(20275), + 40: uint16(20287), + 41: uint16(20321), + 42: uint16(20879), + 43: uint16(20921), + 44: uint16(21020), + 45: uint16(21022), + 46: uint16(21025), + 47: uint16(21165), + 48: uint16(21166), + 49: uint16(21257), + 50: uint16(21347), + 51: uint16(21362), + 52: uint16(21390), + 53: uint16(21391), + 54: uint16(21552), + 55: uint16(21559), + 56: uint16(21546), + 57: uint16(21588), + 58: uint16(21573), + 59: uint16(21529), + 60: uint16(21532), + 61: uint16(21541), + 62: uint16(21528), + 63: uint16(21565), + 64: uint16(21583), + 65: uint16(21569), + 66: uint16(21544), + 67: uint16(21540), + 68: uint16(21575), + 69: uint16(22254), + 70: uint16(22247), + 71: uint16(22245), + 72: uint16(22337), + 73: uint16(22341), + 74: uint16(22348), + 75: uint16(22345), + 76: uint16(22347), + 77: uint16(22354), + 78: uint16(22790), + 79: uint16(22848), + 80: uint16(22950), + 81: uint16(22936), + 82: uint16(22944), + 83: uint16(22935), + 84: uint16(22926), + 85: uint16(22946), + 86: uint16(22928), + 87: uint16(22927), + 88: uint16(22951), + 89: uint16(22945), + 90: uint16(23438), + 91: uint16(23442), + 92: uint16(23592), + 93: uint16(23594), + 94: uint16(23693), + 95: uint16(23695), + 96: uint16(23688), + 97: uint16(23691), + 98: uint16(23689), + 99: uint16(23698), + 100: uint16(23690), + 101: uint16(23686), + 102: uint16(23699), + 103: uint16(23701), + 104: uint16(24032), + 105: uint16(24074), + 106: uint16(24078), + 107: uint16(24203), + 108: uint16(24201), + 109: uint16(24204), + 110: uint16(24200), + 111: uint16(24205), + 112: uint16(24325), + 113: uint16(24349), + 114: uint16(24440), + 115: uint16(24438), + 116: uint16(24530), + 117: uint16(24529), + 118: uint16(24528), + 119: uint16(24557), + 120: uint16(24552), + 121: uint16(24558), + 122: uint16(24563), + 123: uint16(24545), + 124: uint16(24548), + 125: uint16(24547), + 126: uint16(24570), + 127: uint16(24559), + 128: uint16(24567), + 129: uint16(24571), + 130: uint16(24576), + 131: uint16(24564), + 132: uint16(25146), + 133: uint16(25219), + 134: uint16(25228), + 135: uint16(25230), + 136: uint16(25231), + 137: uint16(25236), + 138: uint16(25223), + 139: uint16(25201), + 140: uint16(25211), + 141: uint16(25210), + 142: uint16(25200), + 143: uint16(25217), + 144: uint16(25224), + 145: uint16(25207), + 146: uint16(25213), + 147: uint16(25202), + 148: uint16(25204), + 149: uint16(25911), + 150: uint16(26096), + 151: uint16(26100), + 152: uint16(26099), + 153: uint16(26098), + 154: uint16(26101), + 155: uint16(26437), + 156: uint16(26439), + }, + 42: { + 0: uint16(26457), + 1: uint16(26453), + 2: uint16(26444), + 3: uint16(26440), + 4: uint16(26461), + 5: uint16(26445), + 6: uint16(26458), + 7: uint16(26443), + 8: uint16(27600), + 9: uint16(27673), + 10: uint16(27674), + 11: uint16(27768), + 12: uint16(27751), + 13: uint16(27755), + 14: uint16(27780), + 15: uint16(27787), + 16: uint16(27791), + 17: uint16(27761), + 18: uint16(27759), + 19: uint16(27753), + 20: uint16(27802), + 21: uint16(27757), + 22: uint16(27783), + 23: uint16(27797), + 24: uint16(27804), + 25: uint16(27750), + 26: uint16(27763), + 27: uint16(27749), + 28: uint16(27771), + 29: uint16(27790), + 30: uint16(28788), + 31: uint16(28794), + 32: uint16(29283), + 33: uint16(29375), + 34: uint16(29373), + 35: uint16(29379), + 36: uint16(29382), + 37: uint16(29377), + 38: uint16(29370), + 39: uint16(29381), + 40: uint16(29589), + 41: uint16(29591), + 42: uint16(29587), + 43: uint16(29588), + 44: uint16(29586), + 45: uint16(30010), + 46: uint16(30009), + 47: uint16(30100), + 48: uint16(30101), + 49: uint16(30337), + 50: uint16(31037), + 51: uint16(32820), + 52: uint16(32917), + 53: uint16(32921), + 54: uint16(32912), + 55: uint16(32914), + 56: uint16(32924), + 57: uint16(33424), + 58: uint16(33423), + 59: uint16(33413), + 60: uint16(33422), + 61: uint16(33425), + 62: uint16(33427), + 63: uint16(33418), + 64: uint16(33411), + 65: uint16(33412), + 66: uint16(35960), + 67: uint16(36809), + 68: uint16(36799), + 69: uint16(37023), + 70: uint16(37025), + 71: uint16(37029), + 72: uint16(37022), + 73: uint16(37031), + 74: uint16(37024), + 75: uint16(38448), + 76: uint16(38440), + 77: uint16(38447), + 78: uint16(38445), + 79: uint16(20019), + 80: uint16(20376), + 81: uint16(20348), + 82: uint16(20357), + 83: uint16(20349), + 84: uint16(20352), + 85: uint16(20359), + 86: uint16(20342), + 87: uint16(20340), + 88: uint16(20361), + 89: uint16(20356), + 90: uint16(20343), + 91: uint16(20300), + 92: uint16(20375), + 93: uint16(20330), + 94: uint16(20378), + 95: uint16(20345), + 96: uint16(20353), + 97: uint16(20344), + 98: uint16(20368), + 99: uint16(20380), + 100: uint16(20372), + 101: uint16(20382), + 102: uint16(20370), + 103: uint16(20354), + 104: uint16(20373), + 105: uint16(20331), + 106: uint16(20334), + 107: uint16(20894), + 108: uint16(20924), + 109: uint16(20926), + 110: uint16(21045), + 111: uint16(21042), + 112: uint16(21043), + 113: uint16(21062), + 114: uint16(21041), + 115: uint16(21180), + 116: uint16(21258), + 117: uint16(21259), + 118: uint16(21308), + 119: uint16(21394), + 120: uint16(21396), + 121: uint16(21639), + 122: uint16(21631), + 123: uint16(21633), + 124: uint16(21649), + 125: uint16(21634), + 126: uint16(21640), + 127: uint16(21611), + 128: uint16(21626), + 129: uint16(21630), + 130: uint16(21605), + 131: uint16(21612), + 132: uint16(21620), + 133: uint16(21606), + 134: uint16(21645), + 135: uint16(21615), + 136: uint16(21601), + 137: uint16(21600), + 138: uint16(21656), + 139: uint16(21603), + 140: uint16(21607), + 141: uint16(21604), + 142: uint16(22263), + 143: uint16(22265), + 144: uint16(22383), + 145: uint16(22386), + 146: uint16(22381), + 147: uint16(22379), + 148: uint16(22385), + 149: uint16(22384), + 150: uint16(22390), + 151: uint16(22400), + 152: uint16(22389), + 153: uint16(22395), + 154: uint16(22387), + 155: uint16(22388), + 156: uint16(22370), + }, + 43: { + 0: uint16(22376), + 1: uint16(22397), + 2: uint16(22796), + 3: uint16(22853), + 4: uint16(22965), + 5: uint16(22970), + 6: uint16(22991), + 7: uint16(22990), + 8: uint16(22962), + 9: uint16(22988), + 10: uint16(22977), + 11: uint16(22966), + 12: uint16(22972), + 13: uint16(22979), + 14: uint16(22998), + 15: uint16(22961), + 16: uint16(22973), + 17: uint16(22976), + 18: uint16(22984), + 19: uint16(22964), + 20: uint16(22983), + 21: uint16(23394), + 22: uint16(23397), + 23: uint16(23443), + 24: uint16(23445), + 25: uint16(23620), + 26: uint16(23623), + 27: uint16(23726), + 28: uint16(23716), + 29: uint16(23712), + 30: uint16(23733), + 31: uint16(23727), + 32: uint16(23720), + 33: uint16(23724), + 34: uint16(23711), + 35: uint16(23715), + 36: uint16(23725), + 37: uint16(23714), + 38: uint16(23722), + 39: uint16(23719), + 40: uint16(23709), + 41: uint16(23717), + 42: uint16(23734), + 43: uint16(23728), + 44: uint16(23718), + 45: uint16(24087), + 46: uint16(24084), + 47: uint16(24089), + 48: uint16(24360), + 49: uint16(24354), + 50: uint16(24355), + 51: uint16(24356), + 52: uint16(24404), + 53: uint16(24450), + 54: uint16(24446), + 55: uint16(24445), + 56: uint16(24542), + 57: uint16(24549), + 58: uint16(24621), + 59: uint16(24614), + 60: uint16(24601), + 61: uint16(24626), + 62: uint16(24587), + 63: uint16(24628), + 64: uint16(24586), + 65: uint16(24599), + 66: uint16(24627), + 67: uint16(24602), + 68: uint16(24606), + 69: uint16(24620), + 70: uint16(24610), + 71: uint16(24589), + 72: uint16(24592), + 73: uint16(24622), + 74: uint16(24595), + 75: uint16(24593), + 76: uint16(24588), + 77: uint16(24585), + 78: uint16(24604), + 79: uint16(25108), + 80: uint16(25149), + 81: uint16(25261), + 82: uint16(25268), + 83: uint16(25297), + 84: uint16(25278), + 85: uint16(25258), + 86: uint16(25270), + 87: uint16(25290), + 88: uint16(25262), + 89: uint16(25267), + 90: uint16(25263), + 91: uint16(25275), + 92: uint16(25257), + 93: uint16(25264), + 94: uint16(25272), + 95: uint16(25917), + 96: uint16(26024), + 97: uint16(26043), + 98: uint16(26121), + 99: uint16(26108), + 100: uint16(26116), + 101: uint16(26130), + 102: uint16(26120), + 103: uint16(26107), + 104: uint16(26115), + 105: uint16(26123), + 106: uint16(26125), + 107: uint16(26117), + 108: uint16(26109), + 109: uint16(26129), + 110: uint16(26128), + 111: uint16(26358), + 112: uint16(26378), + 113: uint16(26501), + 114: uint16(26476), + 115: uint16(26510), + 116: uint16(26514), + 117: uint16(26486), + 118: uint16(26491), + 119: uint16(26520), + 120: uint16(26502), + 121: uint16(26500), + 122: uint16(26484), + 123: uint16(26509), + 124: uint16(26508), + 125: uint16(26490), + 126: uint16(26527), + 127: uint16(26513), + 128: uint16(26521), + 129: uint16(26499), + 130: uint16(26493), + 131: uint16(26497), + 132: uint16(26488), + 133: uint16(26489), + 134: uint16(26516), + 135: uint16(27429), + 136: uint16(27520), + 137: uint16(27518), + 138: uint16(27614), + 139: uint16(27677), + 140: uint16(27795), + 141: uint16(27884), + 142: uint16(27883), + 143: uint16(27886), + 144: uint16(27865), + 145: uint16(27830), + 146: uint16(27860), + 147: uint16(27821), + 148: uint16(27879), + 149: uint16(27831), + 150: uint16(27856), + 151: uint16(27842), + 152: uint16(27834), + 153: uint16(27843), + 154: uint16(27846), + 155: uint16(27885), + 156: uint16(27890), + }, + 44: { + 0: uint16(27858), + 1: uint16(27869), + 2: uint16(27828), + 3: uint16(27786), + 4: uint16(27805), + 5: uint16(27776), + 6: uint16(27870), + 7: uint16(27840), + 8: uint16(27952), + 9: uint16(27853), + 10: uint16(27847), + 11: uint16(27824), + 12: uint16(27897), + 13: uint16(27855), + 14: uint16(27881), + 15: uint16(27857), + 16: uint16(28820), + 17: uint16(28824), + 18: uint16(28805), + 19: uint16(28819), + 20: uint16(28806), + 21: uint16(28804), + 22: uint16(28817), + 23: uint16(28822), + 24: uint16(28802), + 25: uint16(28826), + 26: uint16(28803), + 27: uint16(29290), + 28: uint16(29398), + 29: uint16(29387), + 30: uint16(29400), + 31: uint16(29385), + 32: uint16(29404), + 33: uint16(29394), + 34: uint16(29396), + 35: uint16(29402), + 36: uint16(29388), + 37: uint16(29393), + 38: uint16(29604), + 39: uint16(29601), + 40: uint16(29613), + 41: uint16(29606), + 42: uint16(29602), + 43: uint16(29600), + 44: uint16(29612), + 45: uint16(29597), + 46: uint16(29917), + 47: uint16(29928), + 48: uint16(30015), + 49: uint16(30016), + 50: uint16(30014), + 51: uint16(30092), + 52: uint16(30104), + 53: uint16(30383), + 54: uint16(30451), + 55: uint16(30449), + 56: uint16(30448), + 57: uint16(30453), + 58: uint16(30712), + 59: uint16(30716), + 60: uint16(30713), + 61: uint16(30715), + 62: uint16(30714), + 63: uint16(30711), + 64: uint16(31042), + 65: uint16(31039), + 66: uint16(31173), + 67: uint16(31352), + 68: uint16(31355), + 69: uint16(31483), + 70: uint16(31861), + 71: uint16(31997), + 72: uint16(32821), + 73: uint16(32911), + 74: uint16(32942), + 75: uint16(32931), + 76: uint16(32952), + 77: uint16(32949), + 78: uint16(32941), + 79: uint16(33312), + 80: uint16(33440), + 81: uint16(33472), + 82: uint16(33451), + 83: uint16(33434), + 84: uint16(33432), + 85: uint16(33435), + 86: uint16(33461), + 87: uint16(33447), + 88: uint16(33454), + 89: uint16(33468), + 90: uint16(33438), + 91: uint16(33466), + 92: uint16(33460), + 93: uint16(33448), + 94: uint16(33441), + 95: uint16(33449), + 96: uint16(33474), + 97: uint16(33444), + 98: uint16(33475), + 99: uint16(33462), + 100: uint16(33442), + 101: uint16(34416), + 102: uint16(34415), + 103: uint16(34413), + 104: uint16(34414), + 105: uint16(35926), + 106: uint16(36818), + 107: uint16(36811), + 108: uint16(36819), + 109: uint16(36813), + 110: uint16(36822), + 111: uint16(36821), + 112: uint16(36823), + 113: uint16(37042), + 114: uint16(37044), + 115: uint16(37039), + 116: uint16(37043), + 117: uint16(37040), + 118: uint16(38457), + 119: uint16(38461), + 120: uint16(38460), + 121: uint16(38458), + 122: uint16(38467), + 123: uint16(20429), + 124: uint16(20421), + 125: uint16(20435), + 126: uint16(20402), + 127: uint16(20425), + 128: uint16(20427), + 129: uint16(20417), + 130: uint16(20436), + 131: uint16(20444), + 132: uint16(20441), + 133: uint16(20411), + 134: uint16(20403), + 135: uint16(20443), + 136: uint16(20423), + 137: uint16(20438), + 138: uint16(20410), + 139: uint16(20416), + 140: uint16(20409), + 141: uint16(20460), + 142: uint16(21060), + 143: uint16(21065), + 144: uint16(21184), + 145: uint16(21186), + 146: uint16(21309), + 147: uint16(21372), + 148: uint16(21399), + 149: uint16(21398), + 150: uint16(21401), + 151: uint16(21400), + 152: uint16(21690), + 153: uint16(21665), + 154: uint16(21677), + 155: uint16(21669), + 156: uint16(21711), + }, + 45: { + 0: uint16(21699), + 1: uint16(33549), + 2: uint16(21687), + 3: uint16(21678), + 4: uint16(21718), + 5: uint16(21686), + 6: uint16(21701), + 7: uint16(21702), + 8: uint16(21664), + 9: uint16(21616), + 10: uint16(21692), + 11: uint16(21666), + 12: uint16(21694), + 13: uint16(21618), + 14: uint16(21726), + 15: uint16(21680), + 16: uint16(22453), + 17: uint16(22430), + 18: uint16(22431), + 19: uint16(22436), + 20: uint16(22412), + 21: uint16(22423), + 22: uint16(22429), + 23: uint16(22427), + 24: uint16(22420), + 25: uint16(22424), + 26: uint16(22415), + 27: uint16(22425), + 28: uint16(22437), + 29: uint16(22426), + 30: uint16(22421), + 31: uint16(22772), + 32: uint16(22797), + 33: uint16(22867), + 34: uint16(23009), + 35: uint16(23006), + 36: uint16(23022), + 37: uint16(23040), + 38: uint16(23025), + 39: uint16(23005), + 40: uint16(23034), + 41: uint16(23037), + 42: uint16(23036), + 43: uint16(23030), + 44: uint16(23012), + 45: uint16(23026), + 46: uint16(23031), + 47: uint16(23003), + 48: uint16(23017), + 49: uint16(23027), + 50: uint16(23029), + 51: uint16(23008), + 52: uint16(23038), + 53: uint16(23028), + 54: uint16(23021), + 55: uint16(23464), + 56: uint16(23628), + 57: uint16(23760), + 58: uint16(23768), + 59: uint16(23756), + 60: uint16(23767), + 61: uint16(23755), + 62: uint16(23771), + 63: uint16(23774), + 64: uint16(23770), + 65: uint16(23753), + 66: uint16(23751), + 67: uint16(23754), + 68: uint16(23766), + 69: uint16(23763), + 70: uint16(23764), + 71: uint16(23759), + 72: uint16(23752), + 73: uint16(23750), + 74: uint16(23758), + 75: uint16(23775), + 76: uint16(23800), + 77: uint16(24057), + 78: uint16(24097), + 79: uint16(24098), + 80: uint16(24099), + 81: uint16(24096), + 82: uint16(24100), + 83: uint16(24240), + 84: uint16(24228), + 85: uint16(24226), + 86: uint16(24219), + 87: uint16(24227), + 88: uint16(24229), + 89: uint16(24327), + 90: uint16(24366), + 91: uint16(24406), + 92: uint16(24454), + 93: uint16(24631), + 94: uint16(24633), + 95: uint16(24660), + 96: uint16(24690), + 97: uint16(24670), + 98: uint16(24645), + 99: uint16(24659), + 100: uint16(24647), + 101: uint16(24649), + 102: uint16(24667), + 103: uint16(24652), + 104: uint16(24640), + 105: uint16(24642), + 106: uint16(24671), + 107: uint16(24612), + 108: uint16(24644), + 109: uint16(24664), + 110: uint16(24678), + 111: uint16(24686), + 112: uint16(25154), + 113: uint16(25155), + 114: uint16(25295), + 115: uint16(25357), + 116: uint16(25355), + 117: uint16(25333), + 118: uint16(25358), + 119: uint16(25347), + 120: uint16(25323), + 121: uint16(25337), + 122: uint16(25359), + 123: uint16(25356), + 124: uint16(25336), + 125: uint16(25334), + 126: uint16(25344), + 127: uint16(25363), + 128: uint16(25364), + 129: uint16(25338), + 130: uint16(25365), + 131: uint16(25339), + 132: uint16(25328), + 133: uint16(25921), + 134: uint16(25923), + 135: uint16(26026), + 136: uint16(26047), + 137: uint16(26166), + 138: uint16(26145), + 139: uint16(26162), + 140: uint16(26165), + 141: uint16(26140), + 142: uint16(26150), + 143: uint16(26146), + 144: uint16(26163), + 145: uint16(26155), + 146: uint16(26170), + 147: uint16(26141), + 148: uint16(26164), + 149: uint16(26169), + 150: uint16(26158), + 151: uint16(26383), + 152: uint16(26384), + 153: uint16(26561), + 154: uint16(26610), + 155: uint16(26568), + 156: uint16(26554), + }, + 46: { + 0: uint16(26588), + 1: uint16(26555), + 2: uint16(26616), + 3: uint16(26584), + 4: uint16(26560), + 5: uint16(26551), + 6: uint16(26565), + 7: uint16(26603), + 8: uint16(26596), + 9: uint16(26591), + 10: uint16(26549), + 11: uint16(26573), + 12: uint16(26547), + 13: uint16(26615), + 14: uint16(26614), + 15: uint16(26606), + 16: uint16(26595), + 17: uint16(26562), + 18: uint16(26553), + 19: uint16(26574), + 20: uint16(26599), + 21: uint16(26608), + 22: uint16(26546), + 23: uint16(26620), + 24: uint16(26566), + 25: uint16(26605), + 26: uint16(26572), + 27: uint16(26542), + 28: uint16(26598), + 29: uint16(26587), + 30: uint16(26618), + 31: uint16(26569), + 32: uint16(26570), + 33: uint16(26563), + 34: uint16(26602), + 35: uint16(26571), + 36: uint16(27432), + 37: uint16(27522), + 38: uint16(27524), + 39: uint16(27574), + 40: uint16(27606), + 41: uint16(27608), + 42: uint16(27616), + 43: uint16(27680), + 44: uint16(27681), + 45: uint16(27944), + 46: uint16(27956), + 47: uint16(27949), + 48: uint16(27935), + 49: uint16(27964), + 50: uint16(27967), + 51: uint16(27922), + 52: uint16(27914), + 53: uint16(27866), + 54: uint16(27955), + 55: uint16(27908), + 56: uint16(27929), + 57: uint16(27962), + 58: uint16(27930), + 59: uint16(27921), + 60: uint16(27904), + 61: uint16(27933), + 62: uint16(27970), + 63: uint16(27905), + 64: uint16(27928), + 65: uint16(27959), + 66: uint16(27907), + 67: uint16(27919), + 68: uint16(27968), + 69: uint16(27911), + 70: uint16(27936), + 71: uint16(27948), + 72: uint16(27912), + 73: uint16(27938), + 74: uint16(27913), + 75: uint16(27920), + 76: uint16(28855), + 77: uint16(28831), + 78: uint16(28862), + 79: uint16(28849), + 80: uint16(28848), + 81: uint16(28833), + 82: uint16(28852), + 83: uint16(28853), + 84: uint16(28841), + 85: uint16(29249), + 86: uint16(29257), + 87: uint16(29258), + 88: uint16(29292), + 89: uint16(29296), + 90: uint16(29299), + 91: uint16(29294), + 92: uint16(29386), + 93: uint16(29412), + 94: uint16(29416), + 95: uint16(29419), + 96: uint16(29407), + 97: uint16(29418), + 98: uint16(29414), + 99: uint16(29411), + 100: uint16(29573), + 101: uint16(29644), + 102: uint16(29634), + 103: uint16(29640), + 104: uint16(29637), + 105: uint16(29625), + 106: uint16(29622), + 107: uint16(29621), + 108: uint16(29620), + 109: uint16(29675), + 110: uint16(29631), + 111: uint16(29639), + 112: uint16(29630), + 113: uint16(29635), + 114: uint16(29638), + 115: uint16(29624), + 116: uint16(29643), + 117: uint16(29932), + 118: uint16(29934), + 119: uint16(29998), + 120: uint16(30023), + 121: uint16(30024), + 122: uint16(30119), + 123: uint16(30122), + 124: uint16(30329), + 125: uint16(30404), + 126: uint16(30472), + 127: uint16(30467), + 128: uint16(30468), + 129: uint16(30469), + 130: uint16(30474), + 131: uint16(30455), + 132: uint16(30459), + 133: uint16(30458), + 134: uint16(30695), + 135: uint16(30696), + 136: uint16(30726), + 137: uint16(30737), + 138: uint16(30738), + 139: uint16(30725), + 140: uint16(30736), + 141: uint16(30735), + 142: uint16(30734), + 143: uint16(30729), + 144: uint16(30723), + 145: uint16(30739), + 146: uint16(31050), + 147: uint16(31052), + 148: uint16(31051), + 149: uint16(31045), + 150: uint16(31044), + 151: uint16(31189), + 152: uint16(31181), + 153: uint16(31183), + 154: uint16(31190), + 155: uint16(31182), + 156: uint16(31360), + }, + 47: { + 0: uint16(31358), + 1: uint16(31441), + 2: uint16(31488), + 3: uint16(31489), + 4: uint16(31866), + 5: uint16(31864), + 6: uint16(31865), + 7: uint16(31871), + 8: uint16(31872), + 9: uint16(31873), + 10: uint16(32003), + 11: uint16(32008), + 12: uint16(32001), + 13: uint16(32600), + 14: uint16(32657), + 15: uint16(32653), + 16: uint16(32702), + 17: uint16(32775), + 18: uint16(32782), + 19: uint16(32783), + 20: uint16(32788), + 21: uint16(32823), + 22: uint16(32984), + 23: uint16(32967), + 24: uint16(32992), + 25: uint16(32977), + 26: uint16(32968), + 27: uint16(32962), + 28: uint16(32976), + 29: uint16(32965), + 30: uint16(32995), + 31: uint16(32985), + 32: uint16(32988), + 33: uint16(32970), + 34: uint16(32981), + 35: uint16(32969), + 36: uint16(32975), + 37: uint16(32983), + 38: uint16(32998), + 39: uint16(32973), + 40: uint16(33279), + 41: uint16(33313), + 42: uint16(33428), + 43: uint16(33497), + 44: uint16(33534), + 45: uint16(33529), + 46: uint16(33543), + 47: uint16(33512), + 48: uint16(33536), + 49: uint16(33493), + 50: uint16(33594), + 51: uint16(33515), + 52: uint16(33494), + 53: uint16(33524), + 54: uint16(33516), + 55: uint16(33505), + 56: uint16(33522), + 57: uint16(33525), + 58: uint16(33548), + 59: uint16(33531), + 60: uint16(33526), + 61: uint16(33520), + 62: uint16(33514), + 63: uint16(33508), + 64: uint16(33504), + 65: uint16(33530), + 66: uint16(33523), + 67: uint16(33517), + 68: uint16(34423), + 69: uint16(34420), + 70: uint16(34428), + 71: uint16(34419), + 72: uint16(34881), + 73: uint16(34894), + 74: uint16(34919), + 75: uint16(34922), + 76: uint16(34921), + 77: uint16(35283), + 78: uint16(35332), + 79: uint16(35335), + 80: uint16(36210), + 81: uint16(36835), + 82: uint16(36833), + 83: uint16(36846), + 84: uint16(36832), + 85: uint16(37105), + 86: uint16(37053), + 87: uint16(37055), + 88: uint16(37077), + 89: uint16(37061), + 90: uint16(37054), + 91: uint16(37063), + 92: uint16(37067), + 93: uint16(37064), + 94: uint16(37332), + 95: uint16(37331), + 96: uint16(38484), + 97: uint16(38479), + 98: uint16(38481), + 99: uint16(38483), + 100: uint16(38474), + 101: uint16(38478), + 102: uint16(20510), + 103: uint16(20485), + 104: uint16(20487), + 105: uint16(20499), + 106: uint16(20514), + 107: uint16(20528), + 108: uint16(20507), + 109: uint16(20469), + 110: uint16(20468), + 111: uint16(20531), + 112: uint16(20535), + 113: uint16(20524), + 114: uint16(20470), + 115: uint16(20471), + 116: uint16(20503), + 117: uint16(20508), + 118: uint16(20512), + 119: uint16(20519), + 120: uint16(20533), + 121: uint16(20527), + 122: uint16(20529), + 123: uint16(20494), + 124: uint16(20826), + 125: uint16(20884), + 126: uint16(20883), + 127: uint16(20938), + 128: uint16(20932), + 129: uint16(20933), + 130: uint16(20936), + 131: uint16(20942), + 132: uint16(21089), + 133: uint16(21082), + 134: uint16(21074), + 135: uint16(21086), + 136: uint16(21087), + 137: uint16(21077), + 138: uint16(21090), + 139: uint16(21197), + 140: uint16(21262), + 141: uint16(21406), + 142: uint16(21798), + 143: uint16(21730), + 144: uint16(21783), + 145: uint16(21778), + 146: uint16(21735), + 147: uint16(21747), + 148: uint16(21732), + 149: uint16(21786), + 150: uint16(21759), + 151: uint16(21764), + 152: uint16(21768), + 153: uint16(21739), + 154: uint16(21777), + 155: uint16(21765), + 156: uint16(21745), + }, + 48: { + 0: uint16(21770), + 1: uint16(21755), + 2: uint16(21751), + 3: uint16(21752), + 4: uint16(21728), + 5: uint16(21774), + 6: uint16(21763), + 7: uint16(21771), + 8: uint16(22273), + 9: uint16(22274), + 10: uint16(22476), + 11: uint16(22578), + 12: uint16(22485), + 13: uint16(22482), + 14: uint16(22458), + 15: uint16(22470), + 16: uint16(22461), + 17: uint16(22460), + 18: uint16(22456), + 19: uint16(22454), + 20: uint16(22463), + 21: uint16(22471), + 22: uint16(22480), + 23: uint16(22457), + 24: uint16(22465), + 25: uint16(22798), + 26: uint16(22858), + 27: uint16(23065), + 28: uint16(23062), + 29: uint16(23085), + 30: uint16(23086), + 31: uint16(23061), + 32: uint16(23055), + 33: uint16(23063), + 34: uint16(23050), + 35: uint16(23070), + 36: uint16(23091), + 37: uint16(23404), + 38: uint16(23463), + 39: uint16(23469), + 40: uint16(23468), + 41: uint16(23555), + 42: uint16(23638), + 43: uint16(23636), + 44: uint16(23788), + 45: uint16(23807), + 46: uint16(23790), + 47: uint16(23793), + 48: uint16(23799), + 49: uint16(23808), + 50: uint16(23801), + 51: uint16(24105), + 52: uint16(24104), + 53: uint16(24232), + 54: uint16(24238), + 55: uint16(24234), + 56: uint16(24236), + 57: uint16(24371), + 58: uint16(24368), + 59: uint16(24423), + 60: uint16(24669), + 61: uint16(24666), + 62: uint16(24679), + 63: uint16(24641), + 64: uint16(24738), + 65: uint16(24712), + 66: uint16(24704), + 67: uint16(24722), + 68: uint16(24705), + 69: uint16(24733), + 70: uint16(24707), + 71: uint16(24725), + 72: uint16(24731), + 73: uint16(24727), + 74: uint16(24711), + 75: uint16(24732), + 76: uint16(24718), + 77: uint16(25113), + 78: uint16(25158), + 79: uint16(25330), + 80: uint16(25360), + 81: uint16(25430), + 82: uint16(25388), + 83: uint16(25412), + 84: uint16(25413), + 85: uint16(25398), + 86: uint16(25411), + 87: uint16(25572), + 88: uint16(25401), + 89: uint16(25419), + 90: uint16(25418), + 91: uint16(25404), + 92: uint16(25385), + 93: uint16(25409), + 94: uint16(25396), + 95: uint16(25432), + 96: uint16(25428), + 97: uint16(25433), + 98: uint16(25389), + 99: uint16(25415), + 100: uint16(25395), + 101: uint16(25434), + 102: uint16(25425), + 103: uint16(25400), + 104: uint16(25431), + 105: uint16(25408), + 106: uint16(25416), + 107: uint16(25930), + 108: uint16(25926), + 109: uint16(26054), + 110: uint16(26051), + 111: uint16(26052), + 112: uint16(26050), + 113: uint16(26186), + 114: uint16(26207), + 115: uint16(26183), + 116: uint16(26193), + 117: uint16(26386), + 118: uint16(26387), + 119: uint16(26655), + 120: uint16(26650), + 121: uint16(26697), + 122: uint16(26674), + 123: uint16(26675), + 124: uint16(26683), + 125: uint16(26699), + 126: uint16(26703), + 127: uint16(26646), + 128: uint16(26673), + 129: uint16(26652), + 130: uint16(26677), + 131: uint16(26667), + 132: uint16(26669), + 133: uint16(26671), + 134: uint16(26702), + 135: uint16(26692), + 136: uint16(26676), + 137: uint16(26653), + 138: uint16(26642), + 139: uint16(26644), + 140: uint16(26662), + 141: uint16(26664), + 142: uint16(26670), + 143: uint16(26701), + 144: uint16(26682), + 145: uint16(26661), + 146: uint16(26656), + 147: uint16(27436), + 148: uint16(27439), + 149: uint16(27437), + 150: uint16(27441), + 151: uint16(27444), + 152: uint16(27501), + 153: uint16(32898), + 154: uint16(27528), + 155: uint16(27622), + 156: uint16(27620), + }, + 49: { + 0: uint16(27624), + 1: uint16(27619), + 2: uint16(27618), + 3: uint16(27623), + 4: uint16(27685), + 5: uint16(28026), + 6: uint16(28003), + 7: uint16(28004), + 8: uint16(28022), + 9: uint16(27917), + 10: uint16(28001), + 11: uint16(28050), + 12: uint16(27992), + 13: uint16(28002), + 14: uint16(28013), + 15: uint16(28015), + 16: uint16(28049), + 17: uint16(28045), + 18: uint16(28143), + 19: uint16(28031), + 20: uint16(28038), + 21: uint16(27998), + 22: uint16(28007), + 23: uint16(28000), + 24: uint16(28055), + 25: uint16(28016), + 26: uint16(28028), + 27: uint16(27999), + 28: uint16(28034), + 29: uint16(28056), + 30: uint16(27951), + 31: uint16(28008), + 32: uint16(28043), + 33: uint16(28030), + 34: uint16(28032), + 35: uint16(28036), + 36: uint16(27926), + 37: uint16(28035), + 38: uint16(28027), + 39: uint16(28029), + 40: uint16(28021), + 41: uint16(28048), + 42: uint16(28892), + 43: uint16(28883), + 44: uint16(28881), + 45: uint16(28893), + 46: uint16(28875), + 47: uint16(32569), + 48: uint16(28898), + 49: uint16(28887), + 50: uint16(28882), + 51: uint16(28894), + 52: uint16(28896), + 53: uint16(28884), + 54: uint16(28877), + 55: uint16(28869), + 56: uint16(28870), + 57: uint16(28871), + 58: uint16(28890), + 59: uint16(28878), + 60: uint16(28897), + 61: uint16(29250), + 62: uint16(29304), + 63: uint16(29303), + 64: uint16(29302), + 65: uint16(29440), + 66: uint16(29434), + 67: uint16(29428), + 68: uint16(29438), + 69: uint16(29430), + 70: uint16(29427), + 71: uint16(29435), + 72: uint16(29441), + 73: uint16(29651), + 74: uint16(29657), + 75: uint16(29669), + 76: uint16(29654), + 77: uint16(29628), + 78: uint16(29671), + 79: uint16(29667), + 80: uint16(29673), + 81: uint16(29660), + 82: uint16(29650), + 83: uint16(29659), + 84: uint16(29652), + 85: uint16(29661), + 86: uint16(29658), + 87: uint16(29655), + 88: uint16(29656), + 89: uint16(29672), + 90: uint16(29918), + 91: uint16(29919), + 92: uint16(29940), + 93: uint16(29941), + 94: uint16(29985), + 95: uint16(30043), + 96: uint16(30047), + 97: uint16(30128), + 98: uint16(30145), + 99: uint16(30139), + 100: uint16(30148), + 101: uint16(30144), + 102: uint16(30143), + 103: uint16(30134), + 104: uint16(30138), + 105: uint16(30346), + 106: uint16(30409), + 107: uint16(30493), + 108: uint16(30491), + 109: uint16(30480), + 110: uint16(30483), + 111: uint16(30482), + 112: uint16(30499), + 113: uint16(30481), + 114: uint16(30485), + 115: uint16(30489), + 116: uint16(30490), + 117: uint16(30498), + 118: uint16(30503), + 119: uint16(30755), + 120: uint16(30764), + 121: uint16(30754), + 122: uint16(30773), + 123: uint16(30767), + 124: uint16(30760), + 125: uint16(30766), + 126: uint16(30763), + 127: uint16(30753), + 128: uint16(30761), + 129: uint16(30771), + 130: uint16(30762), + 131: uint16(30769), + 132: uint16(31060), + 133: uint16(31067), + 134: uint16(31055), + 135: uint16(31068), + 136: uint16(31059), + 137: uint16(31058), + 138: uint16(31057), + 139: uint16(31211), + 140: uint16(31212), + 141: uint16(31200), + 142: uint16(31214), + 143: uint16(31213), + 144: uint16(31210), + 145: uint16(31196), + 146: uint16(31198), + 147: uint16(31197), + 148: uint16(31366), + 149: uint16(31369), + 150: uint16(31365), + 151: uint16(31371), + 152: uint16(31372), + 153: uint16(31370), + 154: uint16(31367), + 155: uint16(31448), + 156: uint16(31504), + }, + 50: { + 0: uint16(31492), + 1: uint16(31507), + 2: uint16(31493), + 3: uint16(31503), + 4: uint16(31496), + 5: uint16(31498), + 6: uint16(31502), + 7: uint16(31497), + 8: uint16(31506), + 9: uint16(31876), + 10: uint16(31889), + 11: uint16(31882), + 12: uint16(31884), + 13: uint16(31880), + 14: uint16(31885), + 15: uint16(31877), + 16: uint16(32030), + 17: uint16(32029), + 18: uint16(32017), + 19: uint16(32014), + 20: uint16(32024), + 21: uint16(32022), + 22: uint16(32019), + 23: uint16(32031), + 24: uint16(32018), + 25: uint16(32015), + 26: uint16(32012), + 27: uint16(32604), + 28: uint16(32609), + 29: uint16(32606), + 30: uint16(32608), + 31: uint16(32605), + 32: uint16(32603), + 33: uint16(32662), + 34: uint16(32658), + 35: uint16(32707), + 36: uint16(32706), + 37: uint16(32704), + 38: uint16(32790), + 39: uint16(32830), + 40: uint16(32825), + 41: uint16(33018), + 42: uint16(33010), + 43: uint16(33017), + 44: uint16(33013), + 45: uint16(33025), + 46: uint16(33019), + 47: uint16(33024), + 48: uint16(33281), + 49: uint16(33327), + 50: uint16(33317), + 51: uint16(33587), + 52: uint16(33581), + 53: uint16(33604), + 54: uint16(33561), + 55: uint16(33617), + 56: uint16(33573), + 57: uint16(33622), + 58: uint16(33599), + 59: uint16(33601), + 60: uint16(33574), + 61: uint16(33564), + 62: uint16(33570), + 63: uint16(33602), + 64: uint16(33614), + 65: uint16(33563), + 66: uint16(33578), + 67: uint16(33544), + 68: uint16(33596), + 69: uint16(33613), + 70: uint16(33558), + 71: uint16(33572), + 72: uint16(33568), + 73: uint16(33591), + 74: uint16(33583), + 75: uint16(33577), + 76: uint16(33607), + 77: uint16(33605), + 78: uint16(33612), + 79: uint16(33619), + 80: uint16(33566), + 81: uint16(33580), + 82: uint16(33611), + 83: uint16(33575), + 84: uint16(33608), + 85: uint16(34387), + 86: uint16(34386), + 87: uint16(34466), + 88: uint16(34472), + 89: uint16(34454), + 90: uint16(34445), + 91: uint16(34449), + 92: uint16(34462), + 93: uint16(34439), + 94: uint16(34455), + 95: uint16(34438), + 96: uint16(34443), + 97: uint16(34458), + 98: uint16(34437), + 99: uint16(34469), + 100: uint16(34457), + 101: uint16(34465), + 102: uint16(34471), + 103: uint16(34453), + 104: uint16(34456), + 105: uint16(34446), + 106: uint16(34461), + 107: uint16(34448), + 108: uint16(34452), + 109: uint16(34883), + 110: uint16(34884), + 111: uint16(34925), + 112: uint16(34933), + 113: uint16(34934), + 114: uint16(34930), + 115: uint16(34944), + 116: uint16(34929), + 117: uint16(34943), + 118: uint16(34927), + 119: uint16(34947), + 120: uint16(34942), + 121: uint16(34932), + 122: uint16(34940), + 123: uint16(35346), + 124: uint16(35911), + 125: uint16(35927), + 126: uint16(35963), + 127: uint16(36004), + 128: uint16(36003), + 129: uint16(36214), + 130: uint16(36216), + 131: uint16(36277), + 132: uint16(36279), + 133: uint16(36278), + 134: uint16(36561), + 135: uint16(36563), + 136: uint16(36862), + 137: uint16(36853), + 138: uint16(36866), + 139: uint16(36863), + 140: uint16(36859), + 141: uint16(36868), + 142: uint16(36860), + 143: uint16(36854), + 144: uint16(37078), + 145: uint16(37088), + 146: uint16(37081), + 147: uint16(37082), + 148: uint16(37091), + 149: uint16(37087), + 150: uint16(37093), + 151: uint16(37080), + 152: uint16(37083), + 153: uint16(37079), + 154: uint16(37084), + 155: uint16(37092), + 156: uint16(37200), + }, + 51: { + 0: uint16(37198), + 1: uint16(37199), + 2: uint16(37333), + 3: uint16(37346), + 4: uint16(37338), + 5: uint16(38492), + 6: uint16(38495), + 7: uint16(38588), + 8: uint16(39139), + 9: uint16(39647), + 10: uint16(39727), + 11: uint16(20095), + 12: uint16(20592), + 13: uint16(20586), + 14: uint16(20577), + 15: uint16(20574), + 16: uint16(20576), + 17: uint16(20563), + 18: uint16(20555), + 19: uint16(20573), + 20: uint16(20594), + 21: uint16(20552), + 22: uint16(20557), + 23: uint16(20545), + 24: uint16(20571), + 25: uint16(20554), + 26: uint16(20578), + 27: uint16(20501), + 28: uint16(20549), + 29: uint16(20575), + 30: uint16(20585), + 31: uint16(20587), + 32: uint16(20579), + 33: uint16(20580), + 34: uint16(20550), + 35: uint16(20544), + 36: uint16(20590), + 37: uint16(20595), + 38: uint16(20567), + 39: uint16(20561), + 40: uint16(20944), + 41: uint16(21099), + 42: uint16(21101), + 43: uint16(21100), + 44: uint16(21102), + 45: uint16(21206), + 46: uint16(21203), + 47: uint16(21293), + 48: uint16(21404), + 49: uint16(21877), + 50: uint16(21878), + 51: uint16(21820), + 52: uint16(21837), + 53: uint16(21840), + 54: uint16(21812), + 55: uint16(21802), + 56: uint16(21841), + 57: uint16(21858), + 58: uint16(21814), + 59: uint16(21813), + 60: uint16(21808), + 61: uint16(21842), + 62: uint16(21829), + 63: uint16(21772), + 64: uint16(21810), + 65: uint16(21861), + 66: uint16(21838), + 67: uint16(21817), + 68: uint16(21832), + 69: uint16(21805), + 70: uint16(21819), + 71: uint16(21824), + 72: uint16(21835), + 73: uint16(22282), + 74: uint16(22279), + 75: uint16(22523), + 76: uint16(22548), + 77: uint16(22498), + 78: uint16(22518), + 79: uint16(22492), + 80: uint16(22516), + 81: uint16(22528), + 82: uint16(22509), + 83: uint16(22525), + 84: uint16(22536), + 85: uint16(22520), + 86: uint16(22539), + 87: uint16(22515), + 88: uint16(22479), + 89: uint16(22535), + 90: uint16(22510), + 91: uint16(22499), + 92: uint16(22514), + 93: uint16(22501), + 94: uint16(22508), + 95: uint16(22497), + 96: uint16(22542), + 97: uint16(22524), + 98: uint16(22544), + 99: uint16(22503), + 100: uint16(22529), + 101: uint16(22540), + 102: uint16(22513), + 103: uint16(22505), + 104: uint16(22512), + 105: uint16(22541), + 106: uint16(22532), + 107: uint16(22876), + 108: uint16(23136), + 109: uint16(23128), + 110: uint16(23125), + 111: uint16(23143), + 112: uint16(23134), + 113: uint16(23096), + 114: uint16(23093), + 115: uint16(23149), + 116: uint16(23120), + 117: uint16(23135), + 118: uint16(23141), + 119: uint16(23148), + 120: uint16(23123), + 121: uint16(23140), + 122: uint16(23127), + 123: uint16(23107), + 124: uint16(23133), + 125: uint16(23122), + 126: uint16(23108), + 127: uint16(23131), + 128: uint16(23112), + 129: uint16(23182), + 130: uint16(23102), + 131: uint16(23117), + 132: uint16(23097), + 133: uint16(23116), + 134: uint16(23152), + 135: uint16(23145), + 136: uint16(23111), + 137: uint16(23121), + 138: uint16(23126), + 139: uint16(23106), + 140: uint16(23132), + 141: uint16(23410), + 142: uint16(23406), + 143: uint16(23489), + 144: uint16(23488), + 145: uint16(23641), + 146: uint16(23838), + 147: uint16(23819), + 148: uint16(23837), + 149: uint16(23834), + 150: uint16(23840), + 151: uint16(23820), + 152: uint16(23848), + 153: uint16(23821), + 154: uint16(23846), + 155: uint16(23845), + 156: uint16(23823), + }, + 52: { + 0: uint16(23856), + 1: uint16(23826), + 2: uint16(23843), + 3: uint16(23839), + 4: uint16(23854), + 5: uint16(24126), + 6: uint16(24116), + 7: uint16(24241), + 8: uint16(24244), + 9: uint16(24249), + 10: uint16(24242), + 11: uint16(24243), + 12: uint16(24374), + 13: uint16(24376), + 14: uint16(24475), + 15: uint16(24470), + 16: uint16(24479), + 17: uint16(24714), + 18: uint16(24720), + 19: uint16(24710), + 20: uint16(24766), + 21: uint16(24752), + 22: uint16(24762), + 23: uint16(24787), + 24: uint16(24788), + 25: uint16(24783), + 26: uint16(24804), + 27: uint16(24793), + 28: uint16(24797), + 29: uint16(24776), + 30: uint16(24753), + 31: uint16(24795), + 32: uint16(24759), + 33: uint16(24778), + 34: uint16(24767), + 35: uint16(24771), + 36: uint16(24781), + 37: uint16(24768), + 38: uint16(25394), + 39: uint16(25445), + 40: uint16(25482), + 41: uint16(25474), + 42: uint16(25469), + 43: uint16(25533), + 44: uint16(25502), + 45: uint16(25517), + 46: uint16(25501), + 47: uint16(25495), + 48: uint16(25515), + 49: uint16(25486), + 50: uint16(25455), + 51: uint16(25479), + 52: uint16(25488), + 53: uint16(25454), + 54: uint16(25519), + 55: uint16(25461), + 56: uint16(25500), + 57: uint16(25453), + 58: uint16(25518), + 59: uint16(25468), + 60: uint16(25508), + 61: uint16(25403), + 62: uint16(25503), + 63: uint16(25464), + 64: uint16(25477), + 65: uint16(25473), + 66: uint16(25489), + 67: uint16(25485), + 68: uint16(25456), + 69: uint16(25939), + 70: uint16(26061), + 71: uint16(26213), + 72: uint16(26209), + 73: uint16(26203), + 74: uint16(26201), + 75: uint16(26204), + 76: uint16(26210), + 77: uint16(26392), + 78: uint16(26745), + 79: uint16(26759), + 80: uint16(26768), + 81: uint16(26780), + 82: uint16(26733), + 83: uint16(26734), + 84: uint16(26798), + 85: uint16(26795), + 86: uint16(26966), + 87: uint16(26735), + 88: uint16(26787), + 89: uint16(26796), + 90: uint16(26793), + 91: uint16(26741), + 92: uint16(26740), + 93: uint16(26802), + 94: uint16(26767), + 95: uint16(26743), + 96: uint16(26770), + 97: uint16(26748), + 98: uint16(26731), + 99: uint16(26738), + 100: uint16(26794), + 101: uint16(26752), + 102: uint16(26737), + 103: uint16(26750), + 104: uint16(26779), + 105: uint16(26774), + 106: uint16(26763), + 107: uint16(26784), + 108: uint16(26761), + 109: uint16(26788), + 110: uint16(26744), + 111: uint16(26747), + 112: uint16(26769), + 113: uint16(26764), + 114: uint16(26762), + 115: uint16(26749), + 116: uint16(27446), + 117: uint16(27443), + 118: uint16(27447), + 119: uint16(27448), + 120: uint16(27537), + 121: uint16(27535), + 122: uint16(27533), + 123: uint16(27534), + 124: uint16(27532), + 125: uint16(27690), + 126: uint16(28096), + 127: uint16(28075), + 128: uint16(28084), + 129: uint16(28083), + 130: uint16(28276), + 131: uint16(28076), + 132: uint16(28137), + 133: uint16(28130), + 134: uint16(28087), + 135: uint16(28150), + 136: uint16(28116), + 137: uint16(28160), + 138: uint16(28104), + 139: uint16(28128), + 140: uint16(28127), + 141: uint16(28118), + 142: uint16(28094), + 143: uint16(28133), + 144: uint16(28124), + 145: uint16(28125), + 146: uint16(28123), + 147: uint16(28148), + 148: uint16(28106), + 149: uint16(28093), + 150: uint16(28141), + 151: uint16(28144), + 152: uint16(28090), + 153: uint16(28117), + 154: uint16(28098), + 155: uint16(28111), + 156: uint16(28105), + }, + 53: { + 0: uint16(28112), + 1: uint16(28146), + 2: uint16(28115), + 3: uint16(28157), + 4: uint16(28119), + 5: uint16(28109), + 6: uint16(28131), + 7: uint16(28091), + 8: uint16(28922), + 9: uint16(28941), + 10: uint16(28919), + 11: uint16(28951), + 12: uint16(28916), + 13: uint16(28940), + 14: uint16(28912), + 15: uint16(28932), + 16: uint16(28915), + 17: uint16(28944), + 18: uint16(28924), + 19: uint16(28927), + 20: uint16(28934), + 21: uint16(28947), + 22: uint16(28928), + 23: uint16(28920), + 24: uint16(28918), + 25: uint16(28939), + 26: uint16(28930), + 27: uint16(28942), + 28: uint16(29310), + 29: uint16(29307), + 30: uint16(29308), + 31: uint16(29311), + 32: uint16(29469), + 33: uint16(29463), + 34: uint16(29447), + 35: uint16(29457), + 36: uint16(29464), + 37: uint16(29450), + 38: uint16(29448), + 39: uint16(29439), + 40: uint16(29455), + 41: uint16(29470), + 42: uint16(29576), + 43: uint16(29686), + 44: uint16(29688), + 45: uint16(29685), + 46: uint16(29700), + 47: uint16(29697), + 48: uint16(29693), + 49: uint16(29703), + 50: uint16(29696), + 51: uint16(29690), + 52: uint16(29692), + 53: uint16(29695), + 54: uint16(29708), + 55: uint16(29707), + 56: uint16(29684), + 57: uint16(29704), + 58: uint16(30052), + 59: uint16(30051), + 60: uint16(30158), + 61: uint16(30162), + 62: uint16(30159), + 63: uint16(30155), + 64: uint16(30156), + 65: uint16(30161), + 66: uint16(30160), + 67: uint16(30351), + 68: uint16(30345), + 69: uint16(30419), + 70: uint16(30521), + 71: uint16(30511), + 72: uint16(30509), + 73: uint16(30513), + 74: uint16(30514), + 75: uint16(30516), + 76: uint16(30515), + 77: uint16(30525), + 78: uint16(30501), + 79: uint16(30523), + 80: uint16(30517), + 81: uint16(30792), + 82: uint16(30802), + 83: uint16(30793), + 84: uint16(30797), + 85: uint16(30794), + 86: uint16(30796), + 87: uint16(30758), + 88: uint16(30789), + 89: uint16(30800), + 90: uint16(31076), + 91: uint16(31079), + 92: uint16(31081), + 93: uint16(31082), + 94: uint16(31075), + 95: uint16(31083), + 96: uint16(31073), + 97: uint16(31163), + 98: uint16(31226), + 99: uint16(31224), + 100: uint16(31222), + 101: uint16(31223), + 102: uint16(31375), + 103: uint16(31380), + 104: uint16(31376), + 105: uint16(31541), + 106: uint16(31559), + 107: uint16(31540), + 108: uint16(31525), + 109: uint16(31536), + 110: uint16(31522), + 111: uint16(31524), + 112: uint16(31539), + 113: uint16(31512), + 114: uint16(31530), + 115: uint16(31517), + 116: uint16(31537), + 117: uint16(31531), + 118: uint16(31533), + 119: uint16(31535), + 120: uint16(31538), + 121: uint16(31544), + 122: uint16(31514), + 123: uint16(31523), + 124: uint16(31892), + 125: uint16(31896), + 126: uint16(31894), + 127: uint16(31907), + 128: uint16(32053), + 129: uint16(32061), + 130: uint16(32056), + 131: uint16(32054), + 132: uint16(32058), + 133: uint16(32069), + 134: uint16(32044), + 135: uint16(32041), + 136: uint16(32065), + 137: uint16(32071), + 138: uint16(32062), + 139: uint16(32063), + 140: uint16(32074), + 141: uint16(32059), + 142: uint16(32040), + 143: uint16(32611), + 144: uint16(32661), + 145: uint16(32668), + 146: uint16(32669), + 147: uint16(32667), + 148: uint16(32714), + 149: uint16(32715), + 150: uint16(32717), + 151: uint16(32720), + 152: uint16(32721), + 153: uint16(32711), + 154: uint16(32719), + 155: uint16(32713), + 156: uint16(32799), + }, + 54: { + 0: uint16(32798), + 1: uint16(32795), + 2: uint16(32839), + 3: uint16(32835), + 4: uint16(32840), + 5: uint16(33048), + 6: uint16(33061), + 7: uint16(33049), + 8: uint16(33051), + 9: uint16(33069), + 10: uint16(33055), + 11: uint16(33068), + 12: uint16(33054), + 13: uint16(33057), + 14: uint16(33045), + 15: uint16(33063), + 16: uint16(33053), + 17: uint16(33058), + 18: uint16(33297), + 19: uint16(33336), + 20: uint16(33331), + 21: uint16(33338), + 22: uint16(33332), + 23: uint16(33330), + 24: uint16(33396), + 25: uint16(33680), + 26: uint16(33699), + 27: uint16(33704), + 28: uint16(33677), + 29: uint16(33658), + 30: uint16(33651), + 31: uint16(33700), + 32: uint16(33652), + 33: uint16(33679), + 34: uint16(33665), + 35: uint16(33685), + 36: uint16(33689), + 37: uint16(33653), + 38: uint16(33684), + 39: uint16(33705), + 40: uint16(33661), + 41: uint16(33667), + 42: uint16(33676), + 43: uint16(33693), + 44: uint16(33691), + 45: uint16(33706), + 46: uint16(33675), + 47: uint16(33662), + 48: uint16(33701), + 49: uint16(33711), + 50: uint16(33672), + 51: uint16(33687), + 52: uint16(33712), + 53: uint16(33663), + 54: uint16(33702), + 55: uint16(33671), + 56: uint16(33710), + 57: uint16(33654), + 58: uint16(33690), + 59: uint16(34393), + 60: uint16(34390), + 61: uint16(34495), + 62: uint16(34487), + 63: uint16(34498), + 64: uint16(34497), + 65: uint16(34501), + 66: uint16(34490), + 67: uint16(34480), + 68: uint16(34504), + 69: uint16(34489), + 70: uint16(34483), + 71: uint16(34488), + 72: uint16(34508), + 73: uint16(34484), + 74: uint16(34491), + 75: uint16(34492), + 76: uint16(34499), + 77: uint16(34493), + 78: uint16(34494), + 79: uint16(34898), + 80: uint16(34953), + 81: uint16(34965), + 82: uint16(34984), + 83: uint16(34978), + 84: uint16(34986), + 85: uint16(34970), + 86: uint16(34961), + 87: uint16(34977), + 88: uint16(34975), + 89: uint16(34968), + 90: uint16(34983), + 91: uint16(34969), + 92: uint16(34971), + 93: uint16(34967), + 94: uint16(34980), + 95: uint16(34988), + 96: uint16(34956), + 97: uint16(34963), + 98: uint16(34958), + 99: uint16(35202), + 100: uint16(35286), + 101: uint16(35289), + 102: uint16(35285), + 103: uint16(35376), + 104: uint16(35367), + 105: uint16(35372), + 106: uint16(35358), + 107: uint16(35897), + 108: uint16(35899), + 109: uint16(35932), + 110: uint16(35933), + 111: uint16(35965), + 112: uint16(36005), + 113: uint16(36221), + 114: uint16(36219), + 115: uint16(36217), + 116: uint16(36284), + 117: uint16(36290), + 118: uint16(36281), + 119: uint16(36287), + 120: uint16(36289), + 121: uint16(36568), + 122: uint16(36574), + 123: uint16(36573), + 124: uint16(36572), + 125: uint16(36567), + 126: uint16(36576), + 127: uint16(36577), + 128: uint16(36900), + 129: uint16(36875), + 130: uint16(36881), + 131: uint16(36892), + 132: uint16(36876), + 133: uint16(36897), + 134: uint16(37103), + 135: uint16(37098), + 136: uint16(37104), + 137: uint16(37108), + 138: uint16(37106), + 139: uint16(37107), + 140: uint16(37076), + 141: uint16(37099), + 142: uint16(37100), + 143: uint16(37097), + 144: uint16(37206), + 145: uint16(37208), + 146: uint16(37210), + 147: uint16(37203), + 148: uint16(37205), + 149: uint16(37356), + 150: uint16(37364), + 151: uint16(37361), + 152: uint16(37363), + 153: uint16(37368), + 154: uint16(37348), + 155: uint16(37369), + 156: uint16(37354), + }, + 55: { + 0: uint16(37355), + 1: uint16(37367), + 2: uint16(37352), + 3: uint16(37358), + 4: uint16(38266), + 5: uint16(38278), + 6: uint16(38280), + 7: uint16(38524), + 8: uint16(38509), + 9: uint16(38507), + 10: uint16(38513), + 11: uint16(38511), + 12: uint16(38591), + 13: uint16(38762), + 14: uint16(38916), + 15: uint16(39141), + 16: uint16(39319), + 17: uint16(20635), + 18: uint16(20629), + 19: uint16(20628), + 20: uint16(20638), + 21: uint16(20619), + 22: uint16(20643), + 23: uint16(20611), + 24: uint16(20620), + 25: uint16(20622), + 26: uint16(20637), + 27: uint16(20584), + 28: uint16(20636), + 29: uint16(20626), + 30: uint16(20610), + 31: uint16(20615), + 32: uint16(20831), + 33: uint16(20948), + 34: uint16(21266), + 35: uint16(21265), + 36: uint16(21412), + 37: uint16(21415), + 38: uint16(21905), + 39: uint16(21928), + 40: uint16(21925), + 41: uint16(21933), + 42: uint16(21879), + 43: uint16(22085), + 44: uint16(21922), + 45: uint16(21907), + 46: uint16(21896), + 47: uint16(21903), + 48: uint16(21941), + 49: uint16(21889), + 50: uint16(21923), + 51: uint16(21906), + 52: uint16(21924), + 53: uint16(21885), + 54: uint16(21900), + 55: uint16(21926), + 56: uint16(21887), + 57: uint16(21909), + 58: uint16(21921), + 59: uint16(21902), + 60: uint16(22284), + 61: uint16(22569), + 62: uint16(22583), + 63: uint16(22553), + 64: uint16(22558), + 65: uint16(22567), + 66: uint16(22563), + 67: uint16(22568), + 68: uint16(22517), + 69: uint16(22600), + 70: uint16(22565), + 71: uint16(22556), + 72: uint16(22555), + 73: uint16(22579), + 74: uint16(22591), + 75: uint16(22582), + 76: uint16(22574), + 77: uint16(22585), + 78: uint16(22584), + 79: uint16(22573), + 80: uint16(22572), + 81: uint16(22587), + 82: uint16(22881), + 83: uint16(23215), + 84: uint16(23188), + 85: uint16(23199), + 86: uint16(23162), + 87: uint16(23202), + 88: uint16(23198), + 89: uint16(23160), + 90: uint16(23206), + 91: uint16(23164), + 92: uint16(23205), + 93: uint16(23212), + 94: uint16(23189), + 95: uint16(23214), + 96: uint16(23095), + 97: uint16(23172), + 98: uint16(23178), + 99: uint16(23191), + 100: uint16(23171), + 101: uint16(23179), + 102: uint16(23209), + 103: uint16(23163), + 104: uint16(23165), + 105: uint16(23180), + 106: uint16(23196), + 107: uint16(23183), + 108: uint16(23187), + 109: uint16(23197), + 110: uint16(23530), + 111: uint16(23501), + 112: uint16(23499), + 113: uint16(23508), + 114: uint16(23505), + 115: uint16(23498), + 116: uint16(23502), + 117: uint16(23564), + 118: uint16(23600), + 119: uint16(23863), + 120: uint16(23875), + 121: uint16(23915), + 122: uint16(23873), + 123: uint16(23883), + 124: uint16(23871), + 125: uint16(23861), + 126: uint16(23889), + 127: uint16(23886), + 128: uint16(23893), + 129: uint16(23859), + 130: uint16(23866), + 131: uint16(23890), + 132: uint16(23869), + 133: uint16(23857), + 134: uint16(23897), + 135: uint16(23874), + 136: uint16(23865), + 137: uint16(23881), + 138: uint16(23864), + 139: uint16(23868), + 140: uint16(23858), + 141: uint16(23862), + 142: uint16(23872), + 143: uint16(23877), + 144: uint16(24132), + 145: uint16(24129), + 146: uint16(24408), + 147: uint16(24486), + 148: uint16(24485), + 149: uint16(24491), + 150: uint16(24777), + 151: uint16(24761), + 152: uint16(24780), + 153: uint16(24802), + 154: uint16(24782), + 155: uint16(24772), + 156: uint16(24852), + }, + 56: { + 0: uint16(24818), + 1: uint16(24842), + 2: uint16(24854), + 3: uint16(24837), + 4: uint16(24821), + 5: uint16(24851), + 6: uint16(24824), + 7: uint16(24828), + 8: uint16(24830), + 9: uint16(24769), + 10: uint16(24835), + 11: uint16(24856), + 12: uint16(24861), + 13: uint16(24848), + 14: uint16(24831), + 15: uint16(24836), + 16: uint16(24843), + 17: uint16(25162), + 18: uint16(25492), + 19: uint16(25521), + 20: uint16(25520), + 21: uint16(25550), + 22: uint16(25573), + 23: uint16(25576), + 24: uint16(25583), + 25: uint16(25539), + 26: uint16(25757), + 27: uint16(25587), + 28: uint16(25546), + 29: uint16(25568), + 30: uint16(25590), + 31: uint16(25557), + 32: uint16(25586), + 33: uint16(25589), + 34: uint16(25697), + 35: uint16(25567), + 36: uint16(25534), + 37: uint16(25565), + 38: uint16(25564), + 39: uint16(25540), + 40: uint16(25560), + 41: uint16(25555), + 42: uint16(25538), + 43: uint16(25543), + 44: uint16(25548), + 45: uint16(25547), + 46: uint16(25544), + 47: uint16(25584), + 48: uint16(25559), + 49: uint16(25561), + 50: uint16(25906), + 51: uint16(25959), + 52: uint16(25962), + 53: uint16(25956), + 54: uint16(25948), + 55: uint16(25960), + 56: uint16(25957), + 57: uint16(25996), + 58: uint16(26013), + 59: uint16(26014), + 60: uint16(26030), + 61: uint16(26064), + 62: uint16(26066), + 63: uint16(26236), + 64: uint16(26220), + 65: uint16(26235), + 66: uint16(26240), + 67: uint16(26225), + 68: uint16(26233), + 69: uint16(26218), + 70: uint16(26226), + 71: uint16(26369), + 72: uint16(26892), + 73: uint16(26835), + 74: uint16(26884), + 75: uint16(26844), + 76: uint16(26922), + 77: uint16(26860), + 78: uint16(26858), + 79: uint16(26865), + 80: uint16(26895), + 81: uint16(26838), + 82: uint16(26871), + 83: uint16(26859), + 84: uint16(26852), + 85: uint16(26870), + 86: uint16(26899), + 87: uint16(26896), + 88: uint16(26867), + 89: uint16(26849), + 90: uint16(26887), + 91: uint16(26828), + 92: uint16(26888), + 93: uint16(26992), + 94: uint16(26804), + 95: uint16(26897), + 96: uint16(26863), + 97: uint16(26822), + 98: uint16(26900), + 99: uint16(26872), + 100: uint16(26832), + 101: uint16(26877), + 102: uint16(26876), + 103: uint16(26856), + 104: uint16(26891), + 105: uint16(26890), + 106: uint16(26903), + 107: uint16(26830), + 108: uint16(26824), + 109: uint16(26845), + 110: uint16(26846), + 111: uint16(26854), + 112: uint16(26868), + 113: uint16(26833), + 114: uint16(26886), + 115: uint16(26836), + 116: uint16(26857), + 117: uint16(26901), + 118: uint16(26917), + 119: uint16(26823), + 120: uint16(27449), + 121: uint16(27451), + 122: uint16(27455), + 123: uint16(27452), + 124: uint16(27540), + 125: uint16(27543), + 126: uint16(27545), + 127: uint16(27541), + 128: uint16(27581), + 129: uint16(27632), + 130: uint16(27634), + 131: uint16(27635), + 132: uint16(27696), + 133: uint16(28156), + 134: uint16(28230), + 135: uint16(28231), + 136: uint16(28191), + 137: uint16(28233), + 138: uint16(28296), + 139: uint16(28220), + 140: uint16(28221), + 141: uint16(28229), + 142: uint16(28258), + 143: uint16(28203), + 144: uint16(28223), + 145: uint16(28225), + 146: uint16(28253), + 147: uint16(28275), + 148: uint16(28188), + 149: uint16(28211), + 150: uint16(28235), + 151: uint16(28224), + 152: uint16(28241), + 153: uint16(28219), + 154: uint16(28163), + 155: uint16(28206), + 156: uint16(28254), + }, + 57: { + 0: uint16(28264), + 1: uint16(28252), + 2: uint16(28257), + 3: uint16(28209), + 4: uint16(28200), + 5: uint16(28256), + 6: uint16(28273), + 7: uint16(28267), + 8: uint16(28217), + 9: uint16(28194), + 10: uint16(28208), + 11: uint16(28243), + 12: uint16(28261), + 13: uint16(28199), + 14: uint16(28280), + 15: uint16(28260), + 16: uint16(28279), + 17: uint16(28245), + 18: uint16(28281), + 19: uint16(28242), + 20: uint16(28262), + 21: uint16(28213), + 22: uint16(28214), + 23: uint16(28250), + 24: uint16(28960), + 25: uint16(28958), + 26: uint16(28975), + 27: uint16(28923), + 28: uint16(28974), + 29: uint16(28977), + 30: uint16(28963), + 31: uint16(28965), + 32: uint16(28962), + 33: uint16(28978), + 34: uint16(28959), + 35: uint16(28968), + 36: uint16(28986), + 37: uint16(28955), + 38: uint16(29259), + 39: uint16(29274), + 40: uint16(29320), + 41: uint16(29321), + 42: uint16(29318), + 43: uint16(29317), + 44: uint16(29323), + 45: uint16(29458), + 46: uint16(29451), + 47: uint16(29488), + 48: uint16(29474), + 49: uint16(29489), + 50: uint16(29491), + 51: uint16(29479), + 52: uint16(29490), + 53: uint16(29485), + 54: uint16(29478), + 55: uint16(29475), + 56: uint16(29493), + 57: uint16(29452), + 58: uint16(29742), + 59: uint16(29740), + 60: uint16(29744), + 61: uint16(29739), + 62: uint16(29718), + 63: uint16(29722), + 64: uint16(29729), + 65: uint16(29741), + 66: uint16(29745), + 67: uint16(29732), + 68: uint16(29731), + 69: uint16(29725), + 70: uint16(29737), + 71: uint16(29728), + 72: uint16(29746), + 73: uint16(29947), + 74: uint16(29999), + 75: uint16(30063), + 76: uint16(30060), + 77: uint16(30183), + 78: uint16(30170), + 79: uint16(30177), + 80: uint16(30182), + 81: uint16(30173), + 82: uint16(30175), + 83: uint16(30180), + 84: uint16(30167), + 85: uint16(30357), + 86: uint16(30354), + 87: uint16(30426), + 88: uint16(30534), + 89: uint16(30535), + 90: uint16(30532), + 91: uint16(30541), + 92: uint16(30533), + 93: uint16(30538), + 94: uint16(30542), + 95: uint16(30539), + 96: uint16(30540), + 97: uint16(30686), + 98: uint16(30700), + 99: uint16(30816), + 100: uint16(30820), + 101: uint16(30821), + 102: uint16(30812), + 103: uint16(30829), + 104: uint16(30833), + 105: uint16(30826), + 106: uint16(30830), + 107: uint16(30832), + 108: uint16(30825), + 109: uint16(30824), + 110: uint16(30814), + 111: uint16(30818), + 112: uint16(31092), + 113: uint16(31091), + 114: uint16(31090), + 115: uint16(31088), + 116: uint16(31234), + 117: uint16(31242), + 118: uint16(31235), + 119: uint16(31244), + 120: uint16(31236), + 121: uint16(31385), + 122: uint16(31462), + 123: uint16(31460), + 124: uint16(31562), + 125: uint16(31547), + 126: uint16(31556), + 127: uint16(31560), + 128: uint16(31564), + 129: uint16(31566), + 130: uint16(31552), + 131: uint16(31576), + 132: uint16(31557), + 133: uint16(31906), + 134: uint16(31902), + 135: uint16(31912), + 136: uint16(31905), + 137: uint16(32088), + 138: uint16(32111), + 139: uint16(32099), + 140: uint16(32083), + 141: uint16(32086), + 142: uint16(32103), + 143: uint16(32106), + 144: uint16(32079), + 145: uint16(32109), + 146: uint16(32092), + 147: uint16(32107), + 148: uint16(32082), + 149: uint16(32084), + 150: uint16(32105), + 151: uint16(32081), + 152: uint16(32095), + 153: uint16(32078), + 154: uint16(32574), + 155: uint16(32575), + 156: uint16(32613), + }, + 58: { + 0: uint16(32614), + 1: uint16(32674), + 2: uint16(32672), + 3: uint16(32673), + 4: uint16(32727), + 5: uint16(32849), + 6: uint16(32847), + 7: uint16(32848), + 8: uint16(33022), + 9: uint16(32980), + 10: uint16(33091), + 11: uint16(33098), + 12: uint16(33106), + 13: uint16(33103), + 14: uint16(33095), + 15: uint16(33085), + 16: uint16(33101), + 17: uint16(33082), + 18: uint16(33254), + 19: uint16(33262), + 20: uint16(33271), + 21: uint16(33272), + 22: uint16(33273), + 23: uint16(33284), + 24: uint16(33340), + 25: uint16(33341), + 26: uint16(33343), + 27: uint16(33397), + 28: uint16(33595), + 29: uint16(33743), + 30: uint16(33785), + 31: uint16(33827), + 32: uint16(33728), + 33: uint16(33768), + 34: uint16(33810), + 35: uint16(33767), + 36: uint16(33764), + 37: uint16(33788), + 38: uint16(33782), + 39: uint16(33808), + 40: uint16(33734), + 41: uint16(33736), + 42: uint16(33771), + 43: uint16(33763), + 44: uint16(33727), + 45: uint16(33793), + 46: uint16(33757), + 47: uint16(33765), + 48: uint16(33752), + 49: uint16(33791), + 50: uint16(33761), + 51: uint16(33739), + 52: uint16(33742), + 53: uint16(33750), + 54: uint16(33781), + 55: uint16(33737), + 56: uint16(33801), + 57: uint16(33807), + 58: uint16(33758), + 59: uint16(33809), + 60: uint16(33798), + 61: uint16(33730), + 62: uint16(33779), + 63: uint16(33749), + 64: uint16(33786), + 65: uint16(33735), + 66: uint16(33745), + 67: uint16(33770), + 68: uint16(33811), + 69: uint16(33731), + 70: uint16(33772), + 71: uint16(33774), + 72: uint16(33732), + 73: uint16(33787), + 74: uint16(33751), + 75: uint16(33762), + 76: uint16(33819), + 77: uint16(33755), + 78: uint16(33790), + 79: uint16(34520), + 80: uint16(34530), + 81: uint16(34534), + 82: uint16(34515), + 83: uint16(34531), + 84: uint16(34522), + 85: uint16(34538), + 86: uint16(34525), + 87: uint16(34539), + 88: uint16(34524), + 89: uint16(34540), + 90: uint16(34537), + 91: uint16(34519), + 92: uint16(34536), + 93: uint16(34513), + 94: uint16(34888), + 95: uint16(34902), + 96: uint16(34901), + 97: uint16(35002), + 98: uint16(35031), + 99: uint16(35001), + 100: uint16(35000), + 101: uint16(35008), + 102: uint16(35006), + 103: uint16(34998), + 104: uint16(35004), + 105: uint16(34999), + 106: uint16(35005), + 107: uint16(34994), + 108: uint16(35073), + 109: uint16(35017), + 110: uint16(35221), + 111: uint16(35224), + 112: uint16(35223), + 113: uint16(35293), + 114: uint16(35290), + 115: uint16(35291), + 116: uint16(35406), + 117: uint16(35405), + 118: uint16(35385), + 119: uint16(35417), + 120: uint16(35392), + 121: uint16(35415), + 122: uint16(35416), + 123: uint16(35396), + 124: uint16(35397), + 125: uint16(35410), + 126: uint16(35400), + 127: uint16(35409), + 128: uint16(35402), + 129: uint16(35404), + 130: uint16(35407), + 131: uint16(35935), + 132: uint16(35969), + 133: uint16(35968), + 134: uint16(36026), + 135: uint16(36030), + 136: uint16(36016), + 137: uint16(36025), + 138: uint16(36021), + 139: uint16(36228), + 140: uint16(36224), + 141: uint16(36233), + 142: uint16(36312), + 143: uint16(36307), + 144: uint16(36301), + 145: uint16(36295), + 146: uint16(36310), + 147: uint16(36316), + 148: uint16(36303), + 149: uint16(36309), + 150: uint16(36313), + 151: uint16(36296), + 152: uint16(36311), + 153: uint16(36293), + 154: uint16(36591), + 155: uint16(36599), + 156: uint16(36602), + }, + 59: { + 0: uint16(36601), + 1: uint16(36582), + 2: uint16(36590), + 3: uint16(36581), + 4: uint16(36597), + 5: uint16(36583), + 6: uint16(36584), + 7: uint16(36598), + 8: uint16(36587), + 9: uint16(36593), + 10: uint16(36588), + 11: uint16(36596), + 12: uint16(36585), + 13: uint16(36909), + 14: uint16(36916), + 15: uint16(36911), + 16: uint16(37126), + 17: uint16(37164), + 18: uint16(37124), + 19: uint16(37119), + 20: uint16(37116), + 21: uint16(37128), + 22: uint16(37113), + 23: uint16(37115), + 24: uint16(37121), + 25: uint16(37120), + 26: uint16(37127), + 27: uint16(37125), + 28: uint16(37123), + 29: uint16(37217), + 30: uint16(37220), + 31: uint16(37215), + 32: uint16(37218), + 33: uint16(37216), + 34: uint16(37377), + 35: uint16(37386), + 36: uint16(37413), + 37: uint16(37379), + 38: uint16(37402), + 39: uint16(37414), + 40: uint16(37391), + 41: uint16(37388), + 42: uint16(37376), + 43: uint16(37394), + 44: uint16(37375), + 45: uint16(37373), + 46: uint16(37382), + 47: uint16(37380), + 48: uint16(37415), + 49: uint16(37378), + 50: uint16(37404), + 51: uint16(37412), + 52: uint16(37401), + 53: uint16(37399), + 54: uint16(37381), + 55: uint16(37398), + 56: uint16(38267), + 57: uint16(38285), + 58: uint16(38284), + 59: uint16(38288), + 60: uint16(38535), + 61: uint16(38526), + 62: uint16(38536), + 63: uint16(38537), + 64: uint16(38531), + 65: uint16(38528), + 66: uint16(38594), + 67: uint16(38600), + 68: uint16(38595), + 69: uint16(38641), + 70: uint16(38640), + 71: uint16(38764), + 72: uint16(38768), + 73: uint16(38766), + 74: uint16(38919), + 75: uint16(39081), + 76: uint16(39147), + 77: uint16(40166), + 78: uint16(40697), + 79: uint16(20099), + 80: uint16(20100), + 81: uint16(20150), + 82: uint16(20669), + 83: uint16(20671), + 84: uint16(20678), + 85: uint16(20654), + 86: uint16(20676), + 87: uint16(20682), + 88: uint16(20660), + 89: uint16(20680), + 90: uint16(20674), + 91: uint16(20656), + 92: uint16(20673), + 93: uint16(20666), + 94: uint16(20657), + 95: uint16(20683), + 96: uint16(20681), + 97: uint16(20662), + 98: uint16(20664), + 99: uint16(20951), + 100: uint16(21114), + 101: uint16(21112), + 102: uint16(21115), + 103: uint16(21116), + 104: uint16(21955), + 105: uint16(21979), + 106: uint16(21964), + 107: uint16(21968), + 108: uint16(21963), + 109: uint16(21962), + 110: uint16(21981), + 111: uint16(21952), + 112: uint16(21972), + 113: uint16(21956), + 114: uint16(21993), + 115: uint16(21951), + 116: uint16(21970), + 117: uint16(21901), + 118: uint16(21967), + 119: uint16(21973), + 120: uint16(21986), + 121: uint16(21974), + 122: uint16(21960), + 123: uint16(22002), + 124: uint16(21965), + 125: uint16(21977), + 126: uint16(21954), + 127: uint16(22292), + 128: uint16(22611), + 129: uint16(22632), + 130: uint16(22628), + 131: uint16(22607), + 132: uint16(22605), + 133: uint16(22601), + 134: uint16(22639), + 135: uint16(22613), + 136: uint16(22606), + 137: uint16(22621), + 138: uint16(22617), + 139: uint16(22629), + 140: uint16(22619), + 141: uint16(22589), + 142: uint16(22627), + 143: uint16(22641), + 144: uint16(22780), + 145: uint16(23239), + 146: uint16(23236), + 147: uint16(23243), + 148: uint16(23226), + 149: uint16(23224), + 150: uint16(23217), + 151: uint16(23221), + 152: uint16(23216), + 153: uint16(23231), + 154: uint16(23240), + 155: uint16(23227), + 156: uint16(23238), + }, + 60: { + 0: uint16(23223), + 1: uint16(23232), + 2: uint16(23242), + 3: uint16(23220), + 4: uint16(23222), + 5: uint16(23245), + 6: uint16(23225), + 7: uint16(23184), + 8: uint16(23510), + 9: uint16(23512), + 10: uint16(23513), + 11: uint16(23583), + 12: uint16(23603), + 13: uint16(23921), + 14: uint16(23907), + 15: uint16(23882), + 16: uint16(23909), + 17: uint16(23922), + 18: uint16(23916), + 19: uint16(23902), + 20: uint16(23912), + 21: uint16(23911), + 22: uint16(23906), + 23: uint16(24048), + 24: uint16(24143), + 25: uint16(24142), + 26: uint16(24138), + 27: uint16(24141), + 28: uint16(24139), + 29: uint16(24261), + 30: uint16(24268), + 31: uint16(24262), + 32: uint16(24267), + 33: uint16(24263), + 34: uint16(24384), + 35: uint16(24495), + 36: uint16(24493), + 37: uint16(24823), + 38: uint16(24905), + 39: uint16(24906), + 40: uint16(24875), + 41: uint16(24901), + 42: uint16(24886), + 43: uint16(24882), + 44: uint16(24878), + 45: uint16(24902), + 46: uint16(24879), + 47: uint16(24911), + 48: uint16(24873), + 49: uint16(24896), + 50: uint16(25120), + 51: uint16(37224), + 52: uint16(25123), + 53: uint16(25125), + 54: uint16(25124), + 55: uint16(25541), + 56: uint16(25585), + 57: uint16(25579), + 58: uint16(25616), + 59: uint16(25618), + 60: uint16(25609), + 61: uint16(25632), + 62: uint16(25636), + 63: uint16(25651), + 64: uint16(25667), + 65: uint16(25631), + 66: uint16(25621), + 67: uint16(25624), + 68: uint16(25657), + 69: uint16(25655), + 70: uint16(25634), + 71: uint16(25635), + 72: uint16(25612), + 73: uint16(25638), + 74: uint16(25648), + 75: uint16(25640), + 76: uint16(25665), + 77: uint16(25653), + 78: uint16(25647), + 79: uint16(25610), + 80: uint16(25626), + 81: uint16(25664), + 82: uint16(25637), + 83: uint16(25639), + 84: uint16(25611), + 85: uint16(25575), + 86: uint16(25627), + 87: uint16(25646), + 88: uint16(25633), + 89: uint16(25614), + 90: uint16(25967), + 91: uint16(26002), + 92: uint16(26067), + 93: uint16(26246), + 94: uint16(26252), + 95: uint16(26261), + 96: uint16(26256), + 97: uint16(26251), + 98: uint16(26250), + 99: uint16(26265), + 100: uint16(26260), + 101: uint16(26232), + 102: uint16(26400), + 103: uint16(26982), + 104: uint16(26975), + 105: uint16(26936), + 106: uint16(26958), + 107: uint16(26978), + 108: uint16(26993), + 109: uint16(26943), + 110: uint16(26949), + 111: uint16(26986), + 112: uint16(26937), + 113: uint16(26946), + 114: uint16(26967), + 115: uint16(26969), + 116: uint16(27002), + 117: uint16(26952), + 118: uint16(26953), + 119: uint16(26933), + 120: uint16(26988), + 121: uint16(26931), + 122: uint16(26941), + 123: uint16(26981), + 124: uint16(26864), + 125: uint16(27000), + 126: uint16(26932), + 127: uint16(26985), + 128: uint16(26944), + 129: uint16(26991), + 130: uint16(26948), + 131: uint16(26998), + 132: uint16(26968), + 133: uint16(26945), + 134: uint16(26996), + 135: uint16(26956), + 136: uint16(26939), + 137: uint16(26955), + 138: uint16(26935), + 139: uint16(26972), + 140: uint16(26959), + 141: uint16(26961), + 142: uint16(26930), + 143: uint16(26962), + 144: uint16(26927), + 145: uint16(27003), + 146: uint16(26940), + 147: uint16(27462), + 148: uint16(27461), + 149: uint16(27459), + 150: uint16(27458), + 151: uint16(27464), + 152: uint16(27457), + 153: uint16(27547), + 154: uint16(64013), + 155: uint16(27643), + 156: uint16(27644), + }, + 61: { + 0: uint16(27641), + 1: uint16(27639), + 2: uint16(27640), + 3: uint16(28315), + 4: uint16(28374), + 5: uint16(28360), + 6: uint16(28303), + 7: uint16(28352), + 8: uint16(28319), + 9: uint16(28307), + 10: uint16(28308), + 11: uint16(28320), + 12: uint16(28337), + 13: uint16(28345), + 14: uint16(28358), + 15: uint16(28370), + 16: uint16(28349), + 17: uint16(28353), + 18: uint16(28318), + 19: uint16(28361), + 20: uint16(28343), + 21: uint16(28336), + 22: uint16(28365), + 23: uint16(28326), + 24: uint16(28367), + 25: uint16(28338), + 26: uint16(28350), + 27: uint16(28355), + 28: uint16(28380), + 29: uint16(28376), + 30: uint16(28313), + 31: uint16(28306), + 32: uint16(28302), + 33: uint16(28301), + 34: uint16(28324), + 35: uint16(28321), + 36: uint16(28351), + 37: uint16(28339), + 38: uint16(28368), + 39: uint16(28362), + 40: uint16(28311), + 41: uint16(28334), + 42: uint16(28323), + 43: uint16(28999), + 44: uint16(29012), + 45: uint16(29010), + 46: uint16(29027), + 47: uint16(29024), + 48: uint16(28993), + 49: uint16(29021), + 50: uint16(29026), + 51: uint16(29042), + 52: uint16(29048), + 53: uint16(29034), + 54: uint16(29025), + 55: uint16(28994), + 56: uint16(29016), + 57: uint16(28995), + 58: uint16(29003), + 59: uint16(29040), + 60: uint16(29023), + 61: uint16(29008), + 62: uint16(29011), + 63: uint16(28996), + 64: uint16(29005), + 65: uint16(29018), + 66: uint16(29263), + 67: uint16(29325), + 68: uint16(29324), + 69: uint16(29329), + 70: uint16(29328), + 71: uint16(29326), + 72: uint16(29500), + 73: uint16(29506), + 74: uint16(29499), + 75: uint16(29498), + 76: uint16(29504), + 77: uint16(29514), + 78: uint16(29513), + 79: uint16(29764), + 80: uint16(29770), + 81: uint16(29771), + 82: uint16(29778), + 83: uint16(29777), + 84: uint16(29783), + 85: uint16(29760), + 86: uint16(29775), + 87: uint16(29776), + 88: uint16(29774), + 89: uint16(29762), + 90: uint16(29766), + 91: uint16(29773), + 92: uint16(29780), + 93: uint16(29921), + 94: uint16(29951), + 95: uint16(29950), + 96: uint16(29949), + 97: uint16(29981), + 98: uint16(30073), + 99: uint16(30071), + 100: uint16(27011), + 101: uint16(30191), + 102: uint16(30223), + 103: uint16(30211), + 104: uint16(30199), + 105: uint16(30206), + 106: uint16(30204), + 107: uint16(30201), + 108: uint16(30200), + 109: uint16(30224), + 110: uint16(30203), + 111: uint16(30198), + 112: uint16(30189), + 113: uint16(30197), + 114: uint16(30205), + 115: uint16(30361), + 116: uint16(30389), + 117: uint16(30429), + 118: uint16(30549), + 119: uint16(30559), + 120: uint16(30560), + 121: uint16(30546), + 122: uint16(30550), + 123: uint16(30554), + 124: uint16(30569), + 125: uint16(30567), + 126: uint16(30548), + 127: uint16(30553), + 128: uint16(30573), + 129: uint16(30688), + 130: uint16(30855), + 131: uint16(30874), + 132: uint16(30868), + 133: uint16(30863), + 134: uint16(30852), + 135: uint16(30869), + 136: uint16(30853), + 137: uint16(30854), + 138: uint16(30881), + 139: uint16(30851), + 140: uint16(30841), + 141: uint16(30873), + 142: uint16(30848), + 143: uint16(30870), + 144: uint16(30843), + 145: uint16(31100), + 146: uint16(31106), + 147: uint16(31101), + 148: uint16(31097), + 149: uint16(31249), + 150: uint16(31256), + 151: uint16(31257), + 152: uint16(31250), + 153: uint16(31255), + 154: uint16(31253), + 155: uint16(31266), + 156: uint16(31251), + }, + 62: { + 0: uint16(31259), + 1: uint16(31248), + 2: uint16(31395), + 3: uint16(31394), + 4: uint16(31390), + 5: uint16(31467), + 6: uint16(31590), + 7: uint16(31588), + 8: uint16(31597), + 9: uint16(31604), + 10: uint16(31593), + 11: uint16(31602), + 12: uint16(31589), + 13: uint16(31603), + 14: uint16(31601), + 15: uint16(31600), + 16: uint16(31585), + 17: uint16(31608), + 18: uint16(31606), + 19: uint16(31587), + 20: uint16(31922), + 21: uint16(31924), + 22: uint16(31919), + 23: uint16(32136), + 24: uint16(32134), + 25: uint16(32128), + 26: uint16(32141), + 27: uint16(32127), + 28: uint16(32133), + 29: uint16(32122), + 30: uint16(32142), + 31: uint16(32123), + 32: uint16(32131), + 33: uint16(32124), + 34: uint16(32140), + 35: uint16(32148), + 36: uint16(32132), + 37: uint16(32125), + 38: uint16(32146), + 39: uint16(32621), + 40: uint16(32619), + 41: uint16(32615), + 42: uint16(32616), + 43: uint16(32620), + 44: uint16(32678), + 45: uint16(32677), + 46: uint16(32679), + 47: uint16(32731), + 48: uint16(32732), + 49: uint16(32801), + 50: uint16(33124), + 51: uint16(33120), + 52: uint16(33143), + 53: uint16(33116), + 54: uint16(33129), + 55: uint16(33115), + 56: uint16(33122), + 57: uint16(33138), + 58: uint16(26401), + 59: uint16(33118), + 60: uint16(33142), + 61: uint16(33127), + 62: uint16(33135), + 63: uint16(33092), + 64: uint16(33121), + 65: uint16(33309), + 66: uint16(33353), + 67: uint16(33348), + 68: uint16(33344), + 69: uint16(33346), + 70: uint16(33349), + 71: uint16(34033), + 72: uint16(33855), + 73: uint16(33878), + 74: uint16(33910), + 75: uint16(33913), + 76: uint16(33935), + 77: uint16(33933), + 78: uint16(33893), + 79: uint16(33873), + 80: uint16(33856), + 81: uint16(33926), + 82: uint16(33895), + 83: uint16(33840), + 84: uint16(33869), + 85: uint16(33917), + 86: uint16(33882), + 87: uint16(33881), + 88: uint16(33908), + 89: uint16(33907), + 90: uint16(33885), + 91: uint16(34055), + 92: uint16(33886), + 93: uint16(33847), + 94: uint16(33850), + 95: uint16(33844), + 96: uint16(33914), + 97: uint16(33859), + 98: uint16(33912), + 99: uint16(33842), + 100: uint16(33861), + 101: uint16(33833), + 102: uint16(33753), + 103: uint16(33867), + 104: uint16(33839), + 105: uint16(33858), + 106: uint16(33837), + 107: uint16(33887), + 108: uint16(33904), + 109: uint16(33849), + 110: uint16(33870), + 111: uint16(33868), + 112: uint16(33874), + 113: uint16(33903), + 114: uint16(33989), + 115: uint16(33934), + 116: uint16(33851), + 117: uint16(33863), + 118: uint16(33846), + 119: uint16(33843), + 120: uint16(33896), + 121: uint16(33918), + 122: uint16(33860), + 123: uint16(33835), + 124: uint16(33888), + 125: uint16(33876), + 126: uint16(33902), + 127: uint16(33872), + 128: uint16(34571), + 129: uint16(34564), + 130: uint16(34551), + 131: uint16(34572), + 132: uint16(34554), + 133: uint16(34518), + 134: uint16(34549), + 135: uint16(34637), + 136: uint16(34552), + 137: uint16(34574), + 138: uint16(34569), + 139: uint16(34561), + 140: uint16(34550), + 141: uint16(34573), + 142: uint16(34565), + 143: uint16(35030), + 144: uint16(35019), + 145: uint16(35021), + 146: uint16(35022), + 147: uint16(35038), + 148: uint16(35035), + 149: uint16(35034), + 150: uint16(35020), + 151: uint16(35024), + 152: uint16(35205), + 153: uint16(35227), + 154: uint16(35295), + 155: uint16(35301), + 156: uint16(35300), + }, + 63: { + 0: uint16(35297), + 1: uint16(35296), + 2: uint16(35298), + 3: uint16(35292), + 4: uint16(35302), + 5: uint16(35446), + 6: uint16(35462), + 7: uint16(35455), + 8: uint16(35425), + 9: uint16(35391), + 10: uint16(35447), + 11: uint16(35458), + 12: uint16(35460), + 13: uint16(35445), + 14: uint16(35459), + 15: uint16(35457), + 16: uint16(35444), + 17: uint16(35450), + 18: uint16(35900), + 19: uint16(35915), + 20: uint16(35914), + 21: uint16(35941), + 22: uint16(35940), + 23: uint16(35942), + 24: uint16(35974), + 25: uint16(35972), + 26: uint16(35973), + 27: uint16(36044), + 28: uint16(36200), + 29: uint16(36201), + 30: uint16(36241), + 31: uint16(36236), + 32: uint16(36238), + 33: uint16(36239), + 34: uint16(36237), + 35: uint16(36243), + 36: uint16(36244), + 37: uint16(36240), + 38: uint16(36242), + 39: uint16(36336), + 40: uint16(36320), + 41: uint16(36332), + 42: uint16(36337), + 43: uint16(36334), + 44: uint16(36304), + 45: uint16(36329), + 46: uint16(36323), + 47: uint16(36322), + 48: uint16(36327), + 49: uint16(36338), + 50: uint16(36331), + 51: uint16(36340), + 52: uint16(36614), + 53: uint16(36607), + 54: uint16(36609), + 55: uint16(36608), + 56: uint16(36613), + 57: uint16(36615), + 58: uint16(36616), + 59: uint16(36610), + 60: uint16(36619), + 61: uint16(36946), + 62: uint16(36927), + 63: uint16(36932), + 64: uint16(36937), + 65: uint16(36925), + 66: uint16(37136), + 67: uint16(37133), + 68: uint16(37135), + 69: uint16(37137), + 70: uint16(37142), + 71: uint16(37140), + 72: uint16(37131), + 73: uint16(37134), + 74: uint16(37230), + 75: uint16(37231), + 76: uint16(37448), + 77: uint16(37458), + 78: uint16(37424), + 79: uint16(37434), + 80: uint16(37478), + 81: uint16(37427), + 82: uint16(37477), + 83: uint16(37470), + 84: uint16(37507), + 85: uint16(37422), + 86: uint16(37450), + 87: uint16(37446), + 88: uint16(37485), + 89: uint16(37484), + 90: uint16(37455), + 91: uint16(37472), + 92: uint16(37479), + 93: uint16(37487), + 94: uint16(37430), + 95: uint16(37473), + 96: uint16(37488), + 97: uint16(37425), + 98: uint16(37460), + 99: uint16(37475), + 100: uint16(37456), + 101: uint16(37490), + 102: uint16(37454), + 103: uint16(37459), + 104: uint16(37452), + 105: uint16(37462), + 106: uint16(37426), + 107: uint16(38303), + 108: uint16(38300), + 109: uint16(38302), + 110: uint16(38299), + 111: uint16(38546), + 112: uint16(38547), + 113: uint16(38545), + 114: uint16(38551), + 115: uint16(38606), + 116: uint16(38650), + 117: uint16(38653), + 118: uint16(38648), + 119: uint16(38645), + 120: uint16(38771), + 121: uint16(38775), + 122: uint16(38776), + 123: uint16(38770), + 124: uint16(38927), + 125: uint16(38925), + 126: uint16(38926), + 127: uint16(39084), + 128: uint16(39158), + 129: uint16(39161), + 130: uint16(39343), + 131: uint16(39346), + 132: uint16(39344), + 133: uint16(39349), + 134: uint16(39597), + 135: uint16(39595), + 136: uint16(39771), + 137: uint16(40170), + 138: uint16(40173), + 139: uint16(40167), + 140: uint16(40576), + 141: uint16(40701), + 142: uint16(20710), + 143: uint16(20692), + 144: uint16(20695), + 145: uint16(20712), + 146: uint16(20723), + 147: uint16(20699), + 148: uint16(20714), + 149: uint16(20701), + 150: uint16(20708), + 151: uint16(20691), + 152: uint16(20716), + 153: uint16(20720), + 154: uint16(20719), + 155: uint16(20707), + 156: uint16(20704), + }, + 64: { + 0: uint16(20952), + 1: uint16(21120), + 2: uint16(21121), + 3: uint16(21225), + 4: uint16(21227), + 5: uint16(21296), + 6: uint16(21420), + 7: uint16(22055), + 8: uint16(22037), + 9: uint16(22028), + 10: uint16(22034), + 11: uint16(22012), + 12: uint16(22031), + 13: uint16(22044), + 14: uint16(22017), + 15: uint16(22035), + 16: uint16(22018), + 17: uint16(22010), + 18: uint16(22045), + 19: uint16(22020), + 20: uint16(22015), + 21: uint16(22009), + 22: uint16(22665), + 23: uint16(22652), + 24: uint16(22672), + 25: uint16(22680), + 26: uint16(22662), + 27: uint16(22657), + 28: uint16(22655), + 29: uint16(22644), + 30: uint16(22667), + 31: uint16(22650), + 32: uint16(22663), + 33: uint16(22673), + 34: uint16(22670), + 35: uint16(22646), + 36: uint16(22658), + 37: uint16(22664), + 38: uint16(22651), + 39: uint16(22676), + 40: uint16(22671), + 41: uint16(22782), + 42: uint16(22891), + 43: uint16(23260), + 44: uint16(23278), + 45: uint16(23269), + 46: uint16(23253), + 47: uint16(23274), + 48: uint16(23258), + 49: uint16(23277), + 50: uint16(23275), + 51: uint16(23283), + 52: uint16(23266), + 53: uint16(23264), + 54: uint16(23259), + 55: uint16(23276), + 56: uint16(23262), + 57: uint16(23261), + 58: uint16(23257), + 59: uint16(23272), + 60: uint16(23263), + 61: uint16(23415), + 62: uint16(23520), + 63: uint16(23523), + 64: uint16(23651), + 65: uint16(23938), + 66: uint16(23936), + 67: uint16(23933), + 68: uint16(23942), + 69: uint16(23930), + 70: uint16(23937), + 71: uint16(23927), + 72: uint16(23946), + 73: uint16(23945), + 74: uint16(23944), + 75: uint16(23934), + 76: uint16(23932), + 77: uint16(23949), + 78: uint16(23929), + 79: uint16(23935), + 80: uint16(24152), + 81: uint16(24153), + 82: uint16(24147), + 83: uint16(24280), + 84: uint16(24273), + 85: uint16(24279), + 86: uint16(24270), + 87: uint16(24284), + 88: uint16(24277), + 89: uint16(24281), + 90: uint16(24274), + 91: uint16(24276), + 92: uint16(24388), + 93: uint16(24387), + 94: uint16(24431), + 95: uint16(24502), + 96: uint16(24876), + 97: uint16(24872), + 98: uint16(24897), + 99: uint16(24926), + 100: uint16(24945), + 101: uint16(24947), + 102: uint16(24914), + 103: uint16(24915), + 104: uint16(24946), + 105: uint16(24940), + 106: uint16(24960), + 107: uint16(24948), + 108: uint16(24916), + 109: uint16(24954), + 110: uint16(24923), + 111: uint16(24933), + 112: uint16(24891), + 113: uint16(24938), + 114: uint16(24929), + 115: uint16(24918), + 116: uint16(25129), + 117: uint16(25127), + 118: uint16(25131), + 119: uint16(25643), + 120: uint16(25677), + 121: uint16(25691), + 122: uint16(25693), + 123: uint16(25716), + 124: uint16(25718), + 125: uint16(25714), + 126: uint16(25715), + 127: uint16(25725), + 128: uint16(25717), + 129: uint16(25702), + 130: uint16(25766), + 131: uint16(25678), + 132: uint16(25730), + 133: uint16(25694), + 134: uint16(25692), + 135: uint16(25675), + 136: uint16(25683), + 137: uint16(25696), + 138: uint16(25680), + 139: uint16(25727), + 140: uint16(25663), + 141: uint16(25708), + 142: uint16(25707), + 143: uint16(25689), + 144: uint16(25701), + 145: uint16(25719), + 146: uint16(25971), + 147: uint16(26016), + 148: uint16(26273), + 149: uint16(26272), + 150: uint16(26271), + 151: uint16(26373), + 152: uint16(26372), + 153: uint16(26402), + 154: uint16(27057), + 155: uint16(27062), + 156: uint16(27081), + }, + 65: { + 0: uint16(27040), + 1: uint16(27086), + 2: uint16(27030), + 3: uint16(27056), + 4: uint16(27052), + 5: uint16(27068), + 6: uint16(27025), + 7: uint16(27033), + 8: uint16(27022), + 9: uint16(27047), + 10: uint16(27021), + 11: uint16(27049), + 12: uint16(27070), + 13: uint16(27055), + 14: uint16(27071), + 15: uint16(27076), + 16: uint16(27069), + 17: uint16(27044), + 18: uint16(27092), + 19: uint16(27065), + 20: uint16(27082), + 21: uint16(27034), + 22: uint16(27087), + 23: uint16(27059), + 24: uint16(27027), + 25: uint16(27050), + 26: uint16(27041), + 27: uint16(27038), + 28: uint16(27097), + 29: uint16(27031), + 30: uint16(27024), + 31: uint16(27074), + 32: uint16(27061), + 33: uint16(27045), + 34: uint16(27078), + 35: uint16(27466), + 36: uint16(27469), + 37: uint16(27467), + 38: uint16(27550), + 39: uint16(27551), + 40: uint16(27552), + 41: uint16(27587), + 42: uint16(27588), + 43: uint16(27646), + 44: uint16(28366), + 45: uint16(28405), + 46: uint16(28401), + 47: uint16(28419), + 48: uint16(28453), + 49: uint16(28408), + 50: uint16(28471), + 51: uint16(28411), + 52: uint16(28462), + 53: uint16(28425), + 54: uint16(28494), + 55: uint16(28441), + 56: uint16(28442), + 57: uint16(28455), + 58: uint16(28440), + 59: uint16(28475), + 60: uint16(28434), + 61: uint16(28397), + 62: uint16(28426), + 63: uint16(28470), + 64: uint16(28531), + 65: uint16(28409), + 66: uint16(28398), + 67: uint16(28461), + 68: uint16(28480), + 69: uint16(28464), + 70: uint16(28476), + 71: uint16(28469), + 72: uint16(28395), + 73: uint16(28423), + 74: uint16(28430), + 75: uint16(28483), + 76: uint16(28421), + 77: uint16(28413), + 78: uint16(28406), + 79: uint16(28473), + 80: uint16(28444), + 81: uint16(28412), + 82: uint16(28474), + 83: uint16(28447), + 84: uint16(28429), + 85: uint16(28446), + 86: uint16(28424), + 87: uint16(28449), + 88: uint16(29063), + 89: uint16(29072), + 90: uint16(29065), + 91: uint16(29056), + 92: uint16(29061), + 93: uint16(29058), + 94: uint16(29071), + 95: uint16(29051), + 96: uint16(29062), + 97: uint16(29057), + 98: uint16(29079), + 99: uint16(29252), + 100: uint16(29267), + 101: uint16(29335), + 102: uint16(29333), + 103: uint16(29331), + 104: uint16(29507), + 105: uint16(29517), + 106: uint16(29521), + 107: uint16(29516), + 108: uint16(29794), + 109: uint16(29811), + 110: uint16(29809), + 111: uint16(29813), + 112: uint16(29810), + 113: uint16(29799), + 114: uint16(29806), + 115: uint16(29952), + 116: uint16(29954), + 117: uint16(29955), + 118: uint16(30077), + 119: uint16(30096), + 120: uint16(30230), + 121: uint16(30216), + 122: uint16(30220), + 123: uint16(30229), + 124: uint16(30225), + 125: uint16(30218), + 126: uint16(30228), + 127: uint16(30392), + 128: uint16(30593), + 129: uint16(30588), + 130: uint16(30597), + 131: uint16(30594), + 132: uint16(30574), + 133: uint16(30592), + 134: uint16(30575), + 135: uint16(30590), + 136: uint16(30595), + 137: uint16(30898), + 138: uint16(30890), + 139: uint16(30900), + 140: uint16(30893), + 141: uint16(30888), + 142: uint16(30846), + 143: uint16(30891), + 144: uint16(30878), + 145: uint16(30885), + 146: uint16(30880), + 147: uint16(30892), + 148: uint16(30882), + 149: uint16(30884), + 150: uint16(31128), + 151: uint16(31114), + 152: uint16(31115), + 153: uint16(31126), + 154: uint16(31125), + 155: uint16(31124), + 156: uint16(31123), + }, + 66: { + 0: uint16(31127), + 1: uint16(31112), + 2: uint16(31122), + 3: uint16(31120), + 4: uint16(31275), + 5: uint16(31306), + 6: uint16(31280), + 7: uint16(31279), + 8: uint16(31272), + 9: uint16(31270), + 10: uint16(31400), + 11: uint16(31403), + 12: uint16(31404), + 13: uint16(31470), + 14: uint16(31624), + 15: uint16(31644), + 16: uint16(31626), + 17: uint16(31633), + 18: uint16(31632), + 19: uint16(31638), + 20: uint16(31629), + 21: uint16(31628), + 22: uint16(31643), + 23: uint16(31630), + 24: uint16(31621), + 25: uint16(31640), + 26: uint16(21124), + 27: uint16(31641), + 28: uint16(31652), + 29: uint16(31618), + 30: uint16(31931), + 31: uint16(31935), + 32: uint16(31932), + 33: uint16(31930), + 34: uint16(32167), + 35: uint16(32183), + 36: uint16(32194), + 37: uint16(32163), + 38: uint16(32170), + 39: uint16(32193), + 40: uint16(32192), + 41: uint16(32197), + 42: uint16(32157), + 43: uint16(32206), + 44: uint16(32196), + 45: uint16(32198), + 46: uint16(32203), + 47: uint16(32204), + 48: uint16(32175), + 49: uint16(32185), + 50: uint16(32150), + 51: uint16(32188), + 52: uint16(32159), + 53: uint16(32166), + 54: uint16(32174), + 55: uint16(32169), + 56: uint16(32161), + 57: uint16(32201), + 58: uint16(32627), + 59: uint16(32738), + 60: uint16(32739), + 61: uint16(32741), + 62: uint16(32734), + 63: uint16(32804), + 64: uint16(32861), + 65: uint16(32860), + 66: uint16(33161), + 67: uint16(33158), + 68: uint16(33155), + 69: uint16(33159), + 70: uint16(33165), + 71: uint16(33164), + 72: uint16(33163), + 73: uint16(33301), + 74: uint16(33943), + 75: uint16(33956), + 76: uint16(33953), + 77: uint16(33951), + 78: uint16(33978), + 79: uint16(33998), + 80: uint16(33986), + 81: uint16(33964), + 82: uint16(33966), + 83: uint16(33963), + 84: uint16(33977), + 85: uint16(33972), + 86: uint16(33985), + 87: uint16(33997), + 88: uint16(33962), + 89: uint16(33946), + 90: uint16(33969), + 91: uint16(34000), + 92: uint16(33949), + 93: uint16(33959), + 94: uint16(33979), + 95: uint16(33954), + 96: uint16(33940), + 97: uint16(33991), + 98: uint16(33996), + 99: uint16(33947), + 100: uint16(33961), + 101: uint16(33967), + 102: uint16(33960), + 103: uint16(34006), + 104: uint16(33944), + 105: uint16(33974), + 106: uint16(33999), + 107: uint16(33952), + 108: uint16(34007), + 109: uint16(34004), + 110: uint16(34002), + 111: uint16(34011), + 112: uint16(33968), + 113: uint16(33937), + 114: uint16(34401), + 115: uint16(34611), + 116: uint16(34595), + 117: uint16(34600), + 118: uint16(34667), + 119: uint16(34624), + 120: uint16(34606), + 121: uint16(34590), + 122: uint16(34593), + 123: uint16(34585), + 124: uint16(34587), + 125: uint16(34627), + 126: uint16(34604), + 127: uint16(34625), + 128: uint16(34622), + 129: uint16(34630), + 130: uint16(34592), + 131: uint16(34610), + 132: uint16(34602), + 133: uint16(34605), + 134: uint16(34620), + 135: uint16(34578), + 136: uint16(34618), + 137: uint16(34609), + 138: uint16(34613), + 139: uint16(34626), + 140: uint16(34598), + 141: uint16(34599), + 142: uint16(34616), + 143: uint16(34596), + 144: uint16(34586), + 145: uint16(34608), + 146: uint16(34577), + 147: uint16(35063), + 148: uint16(35047), + 149: uint16(35057), + 150: uint16(35058), + 151: uint16(35066), + 152: uint16(35070), + 153: uint16(35054), + 154: uint16(35068), + 155: uint16(35062), + 156: uint16(35067), + }, + 67: { + 0: uint16(35056), + 1: uint16(35052), + 2: uint16(35051), + 3: uint16(35229), + 4: uint16(35233), + 5: uint16(35231), + 6: uint16(35230), + 7: uint16(35305), + 8: uint16(35307), + 9: uint16(35304), + 10: uint16(35499), + 11: uint16(35481), + 12: uint16(35467), + 13: uint16(35474), + 14: uint16(35471), + 15: uint16(35478), + 16: uint16(35901), + 17: uint16(35944), + 18: uint16(35945), + 19: uint16(36053), + 20: uint16(36047), + 21: uint16(36055), + 22: uint16(36246), + 23: uint16(36361), + 24: uint16(36354), + 25: uint16(36351), + 26: uint16(36365), + 27: uint16(36349), + 28: uint16(36362), + 29: uint16(36355), + 30: uint16(36359), + 31: uint16(36358), + 32: uint16(36357), + 33: uint16(36350), + 34: uint16(36352), + 35: uint16(36356), + 36: uint16(36624), + 37: uint16(36625), + 38: uint16(36622), + 39: uint16(36621), + 40: uint16(37155), + 41: uint16(37148), + 42: uint16(37152), + 43: uint16(37154), + 44: uint16(37151), + 45: uint16(37149), + 46: uint16(37146), + 47: uint16(37156), + 48: uint16(37153), + 49: uint16(37147), + 50: uint16(37242), + 51: uint16(37234), + 52: uint16(37241), + 53: uint16(37235), + 54: uint16(37541), + 55: uint16(37540), + 56: uint16(37494), + 57: uint16(37531), + 58: uint16(37498), + 59: uint16(37536), + 60: uint16(37524), + 61: uint16(37546), + 62: uint16(37517), + 63: uint16(37542), + 64: uint16(37530), + 65: uint16(37547), + 66: uint16(37497), + 67: uint16(37527), + 68: uint16(37503), + 69: uint16(37539), + 70: uint16(37614), + 71: uint16(37518), + 72: uint16(37506), + 73: uint16(37525), + 74: uint16(37538), + 75: uint16(37501), + 76: uint16(37512), + 77: uint16(37537), + 78: uint16(37514), + 79: uint16(37510), + 80: uint16(37516), + 81: uint16(37529), + 82: uint16(37543), + 83: uint16(37502), + 84: uint16(37511), + 85: uint16(37545), + 86: uint16(37533), + 87: uint16(37515), + 88: uint16(37421), + 89: uint16(38558), + 90: uint16(38561), + 91: uint16(38655), + 92: uint16(38744), + 93: uint16(38781), + 94: uint16(38778), + 95: uint16(38782), + 96: uint16(38787), + 97: uint16(38784), + 98: uint16(38786), + 99: uint16(38779), + 100: uint16(38788), + 101: uint16(38785), + 102: uint16(38783), + 103: uint16(38862), + 104: uint16(38861), + 105: uint16(38934), + 106: uint16(39085), + 107: uint16(39086), + 108: uint16(39170), + 109: uint16(39168), + 110: uint16(39175), + 111: uint16(39325), + 112: uint16(39324), + 113: uint16(39363), + 114: uint16(39353), + 115: uint16(39355), + 116: uint16(39354), + 117: uint16(39362), + 118: uint16(39357), + 119: uint16(39367), + 120: uint16(39601), + 121: uint16(39651), + 122: uint16(39655), + 123: uint16(39742), + 124: uint16(39743), + 125: uint16(39776), + 126: uint16(39777), + 127: uint16(39775), + 128: uint16(40177), + 129: uint16(40178), + 130: uint16(40181), + 131: uint16(40615), + 132: uint16(20735), + 133: uint16(20739), + 134: uint16(20784), + 135: uint16(20728), + 136: uint16(20742), + 137: uint16(20743), + 138: uint16(20726), + 139: uint16(20734), + 140: uint16(20747), + 141: uint16(20748), + 142: uint16(20733), + 143: uint16(20746), + 144: uint16(21131), + 145: uint16(21132), + 146: uint16(21233), + 147: uint16(21231), + 148: uint16(22088), + 149: uint16(22082), + 150: uint16(22092), + 151: uint16(22069), + 152: uint16(22081), + 153: uint16(22090), + 154: uint16(22089), + 155: uint16(22086), + 156: uint16(22104), + }, + 68: { + 0: uint16(22106), + 1: uint16(22080), + 2: uint16(22067), + 3: uint16(22077), + 4: uint16(22060), + 5: uint16(22078), + 6: uint16(22072), + 7: uint16(22058), + 8: uint16(22074), + 9: uint16(22298), + 10: uint16(22699), + 11: uint16(22685), + 12: uint16(22705), + 13: uint16(22688), + 14: uint16(22691), + 15: uint16(22703), + 16: uint16(22700), + 17: uint16(22693), + 18: uint16(22689), + 19: uint16(22783), + 20: uint16(23295), + 21: uint16(23284), + 22: uint16(23293), + 23: uint16(23287), + 24: uint16(23286), + 25: uint16(23299), + 26: uint16(23288), + 27: uint16(23298), + 28: uint16(23289), + 29: uint16(23297), + 30: uint16(23303), + 31: uint16(23301), + 32: uint16(23311), + 33: uint16(23655), + 34: uint16(23961), + 35: uint16(23959), + 36: uint16(23967), + 37: uint16(23954), + 38: uint16(23970), + 39: uint16(23955), + 40: uint16(23957), + 41: uint16(23968), + 42: uint16(23964), + 43: uint16(23969), + 44: uint16(23962), + 45: uint16(23966), + 46: uint16(24169), + 47: uint16(24157), + 48: uint16(24160), + 49: uint16(24156), + 50: uint16(32243), + 51: uint16(24283), + 52: uint16(24286), + 53: uint16(24289), + 54: uint16(24393), + 55: uint16(24498), + 56: uint16(24971), + 57: uint16(24963), + 58: uint16(24953), + 59: uint16(25009), + 60: uint16(25008), + 61: uint16(24994), + 62: uint16(24969), + 63: uint16(24987), + 64: uint16(24979), + 65: uint16(25007), + 66: uint16(25005), + 67: uint16(24991), + 68: uint16(24978), + 69: uint16(25002), + 70: uint16(24993), + 71: uint16(24973), + 72: uint16(24934), + 73: uint16(25011), + 74: uint16(25133), + 75: uint16(25710), + 76: uint16(25712), + 77: uint16(25750), + 78: uint16(25760), + 79: uint16(25733), + 80: uint16(25751), + 81: uint16(25756), + 82: uint16(25743), + 83: uint16(25739), + 84: uint16(25738), + 85: uint16(25740), + 86: uint16(25763), + 87: uint16(25759), + 88: uint16(25704), + 89: uint16(25777), + 90: uint16(25752), + 91: uint16(25974), + 92: uint16(25978), + 93: uint16(25977), + 94: uint16(25979), + 95: uint16(26034), + 96: uint16(26035), + 97: uint16(26293), + 98: uint16(26288), + 99: uint16(26281), + 100: uint16(26290), + 101: uint16(26295), + 102: uint16(26282), + 103: uint16(26287), + 104: uint16(27136), + 105: uint16(27142), + 106: uint16(27159), + 107: uint16(27109), + 108: uint16(27128), + 109: uint16(27157), + 110: uint16(27121), + 111: uint16(27108), + 112: uint16(27168), + 113: uint16(27135), + 114: uint16(27116), + 115: uint16(27106), + 116: uint16(27163), + 117: uint16(27165), + 118: uint16(27134), + 119: uint16(27175), + 120: uint16(27122), + 121: uint16(27118), + 122: uint16(27156), + 123: uint16(27127), + 124: uint16(27111), + 125: uint16(27200), + 126: uint16(27144), + 127: uint16(27110), + 128: uint16(27131), + 129: uint16(27149), + 130: uint16(27132), + 131: uint16(27115), + 132: uint16(27145), + 133: uint16(27140), + 134: uint16(27160), + 135: uint16(27173), + 136: uint16(27151), + 137: uint16(27126), + 138: uint16(27174), + 139: uint16(27143), + 140: uint16(27124), + 141: uint16(27158), + 142: uint16(27473), + 143: uint16(27557), + 144: uint16(27555), + 145: uint16(27554), + 146: uint16(27558), + 147: uint16(27649), + 148: uint16(27648), + 149: uint16(27647), + 150: uint16(27650), + 151: uint16(28481), + 152: uint16(28454), + 153: uint16(28542), + 154: uint16(28551), + 155: uint16(28614), + 156: uint16(28562), + }, + 69: { + 0: uint16(28557), + 1: uint16(28553), + 2: uint16(28556), + 3: uint16(28514), + 4: uint16(28495), + 5: uint16(28549), + 6: uint16(28506), + 7: uint16(28566), + 8: uint16(28534), + 9: uint16(28524), + 10: uint16(28546), + 11: uint16(28501), + 12: uint16(28530), + 13: uint16(28498), + 14: uint16(28496), + 15: uint16(28503), + 16: uint16(28564), + 17: uint16(28563), + 18: uint16(28509), + 19: uint16(28416), + 20: uint16(28513), + 21: uint16(28523), + 22: uint16(28541), + 23: uint16(28519), + 24: uint16(28560), + 25: uint16(28499), + 26: uint16(28555), + 27: uint16(28521), + 28: uint16(28543), + 29: uint16(28565), + 30: uint16(28515), + 31: uint16(28535), + 32: uint16(28522), + 33: uint16(28539), + 34: uint16(29106), + 35: uint16(29103), + 36: uint16(29083), + 37: uint16(29104), + 38: uint16(29088), + 39: uint16(29082), + 40: uint16(29097), + 41: uint16(29109), + 42: uint16(29085), + 43: uint16(29093), + 44: uint16(29086), + 45: uint16(29092), + 46: uint16(29089), + 47: uint16(29098), + 48: uint16(29084), + 49: uint16(29095), + 50: uint16(29107), + 51: uint16(29336), + 52: uint16(29338), + 53: uint16(29528), + 54: uint16(29522), + 55: uint16(29534), + 56: uint16(29535), + 57: uint16(29536), + 58: uint16(29533), + 59: uint16(29531), + 60: uint16(29537), + 61: uint16(29530), + 62: uint16(29529), + 63: uint16(29538), + 64: uint16(29831), + 65: uint16(29833), + 66: uint16(29834), + 67: uint16(29830), + 68: uint16(29825), + 69: uint16(29821), + 70: uint16(29829), + 71: uint16(29832), + 72: uint16(29820), + 73: uint16(29817), + 74: uint16(29960), + 75: uint16(29959), + 76: uint16(30078), + 77: uint16(30245), + 78: uint16(30238), + 79: uint16(30233), + 80: uint16(30237), + 81: uint16(30236), + 82: uint16(30243), + 83: uint16(30234), + 84: uint16(30248), + 85: uint16(30235), + 86: uint16(30364), + 87: uint16(30365), + 88: uint16(30366), + 89: uint16(30363), + 90: uint16(30605), + 91: uint16(30607), + 92: uint16(30601), + 93: uint16(30600), + 94: uint16(30925), + 95: uint16(30907), + 96: uint16(30927), + 97: uint16(30924), + 98: uint16(30929), + 99: uint16(30926), + 100: uint16(30932), + 101: uint16(30920), + 102: uint16(30915), + 103: uint16(30916), + 104: uint16(30921), + 105: uint16(31130), + 106: uint16(31137), + 107: uint16(31136), + 108: uint16(31132), + 109: uint16(31138), + 110: uint16(31131), + 111: uint16(27510), + 112: uint16(31289), + 113: uint16(31410), + 114: uint16(31412), + 115: uint16(31411), + 116: uint16(31671), + 117: uint16(31691), + 118: uint16(31678), + 119: uint16(31660), + 120: uint16(31694), + 121: uint16(31663), + 122: uint16(31673), + 123: uint16(31690), + 124: uint16(31669), + 125: uint16(31941), + 126: uint16(31944), + 127: uint16(31948), + 128: uint16(31947), + 129: uint16(32247), + 130: uint16(32219), + 131: uint16(32234), + 132: uint16(32231), + 133: uint16(32215), + 134: uint16(32225), + 135: uint16(32259), + 136: uint16(32250), + 137: uint16(32230), + 138: uint16(32246), + 139: uint16(32241), + 140: uint16(32240), + 141: uint16(32238), + 142: uint16(32223), + 143: uint16(32630), + 144: uint16(32684), + 145: uint16(32688), + 146: uint16(32685), + 147: uint16(32749), + 148: uint16(32747), + 149: uint16(32746), + 150: uint16(32748), + 151: uint16(32742), + 152: uint16(32744), + 153: uint16(32868), + 154: uint16(32871), + 155: uint16(33187), + 156: uint16(33183), + }, + 70: { + 0: uint16(33182), + 1: uint16(33173), + 2: uint16(33186), + 3: uint16(33177), + 4: uint16(33175), + 5: uint16(33302), + 6: uint16(33359), + 7: uint16(33363), + 8: uint16(33362), + 9: uint16(33360), + 10: uint16(33358), + 11: uint16(33361), + 12: uint16(34084), + 13: uint16(34107), + 14: uint16(34063), + 15: uint16(34048), + 16: uint16(34089), + 17: uint16(34062), + 18: uint16(34057), + 19: uint16(34061), + 20: uint16(34079), + 21: uint16(34058), + 22: uint16(34087), + 23: uint16(34076), + 24: uint16(34043), + 25: uint16(34091), + 26: uint16(34042), + 27: uint16(34056), + 28: uint16(34060), + 29: uint16(34036), + 30: uint16(34090), + 31: uint16(34034), + 32: uint16(34069), + 33: uint16(34039), + 34: uint16(34027), + 35: uint16(34035), + 36: uint16(34044), + 37: uint16(34066), + 38: uint16(34026), + 39: uint16(34025), + 40: uint16(34070), + 41: uint16(34046), + 42: uint16(34088), + 43: uint16(34077), + 44: uint16(34094), + 45: uint16(34050), + 46: uint16(34045), + 47: uint16(34078), + 48: uint16(34038), + 49: uint16(34097), + 50: uint16(34086), + 51: uint16(34023), + 52: uint16(34024), + 53: uint16(34032), + 54: uint16(34031), + 55: uint16(34041), + 56: uint16(34072), + 57: uint16(34080), + 58: uint16(34096), + 59: uint16(34059), + 60: uint16(34073), + 61: uint16(34095), + 62: uint16(34402), + 63: uint16(34646), + 64: uint16(34659), + 65: uint16(34660), + 66: uint16(34679), + 67: uint16(34785), + 68: uint16(34675), + 69: uint16(34648), + 70: uint16(34644), + 71: uint16(34651), + 72: uint16(34642), + 73: uint16(34657), + 74: uint16(34650), + 75: uint16(34641), + 76: uint16(34654), + 77: uint16(34669), + 78: uint16(34666), + 79: uint16(34640), + 80: uint16(34638), + 81: uint16(34655), + 82: uint16(34653), + 83: uint16(34671), + 84: uint16(34668), + 85: uint16(34682), + 86: uint16(34670), + 87: uint16(34652), + 88: uint16(34661), + 89: uint16(34639), + 90: uint16(34683), + 91: uint16(34677), + 92: uint16(34658), + 93: uint16(34663), + 94: uint16(34665), + 95: uint16(34906), + 96: uint16(35077), + 97: uint16(35084), + 98: uint16(35092), + 99: uint16(35083), + 100: uint16(35095), + 101: uint16(35096), + 102: uint16(35097), + 103: uint16(35078), + 104: uint16(35094), + 105: uint16(35089), + 106: uint16(35086), + 107: uint16(35081), + 108: uint16(35234), + 109: uint16(35236), + 110: uint16(35235), + 111: uint16(35309), + 112: uint16(35312), + 113: uint16(35308), + 114: uint16(35535), + 115: uint16(35526), + 116: uint16(35512), + 117: uint16(35539), + 118: uint16(35537), + 119: uint16(35540), + 120: uint16(35541), + 121: uint16(35515), + 122: uint16(35543), + 123: uint16(35518), + 124: uint16(35520), + 125: uint16(35525), + 126: uint16(35544), + 127: uint16(35523), + 128: uint16(35514), + 129: uint16(35517), + 130: uint16(35545), + 131: uint16(35902), + 132: uint16(35917), + 133: uint16(35983), + 134: uint16(36069), + 135: uint16(36063), + 136: uint16(36057), + 137: uint16(36072), + 138: uint16(36058), + 139: uint16(36061), + 140: uint16(36071), + 141: uint16(36256), + 142: uint16(36252), + 143: uint16(36257), + 144: uint16(36251), + 145: uint16(36384), + 146: uint16(36387), + 147: uint16(36389), + 148: uint16(36388), + 149: uint16(36398), + 150: uint16(36373), + 151: uint16(36379), + 152: uint16(36374), + 153: uint16(36369), + 154: uint16(36377), + 155: uint16(36390), + 156: uint16(36391), + }, + 71: { + 0: uint16(36372), + 1: uint16(36370), + 2: uint16(36376), + 3: uint16(36371), + 4: uint16(36380), + 5: uint16(36375), + 6: uint16(36378), + 7: uint16(36652), + 8: uint16(36644), + 9: uint16(36632), + 10: uint16(36634), + 11: uint16(36640), + 12: uint16(36643), + 13: uint16(36630), + 14: uint16(36631), + 15: uint16(36979), + 16: uint16(36976), + 17: uint16(36975), + 18: uint16(36967), + 19: uint16(36971), + 20: uint16(37167), + 21: uint16(37163), + 22: uint16(37161), + 23: uint16(37162), + 24: uint16(37170), + 25: uint16(37158), + 26: uint16(37166), + 27: uint16(37253), + 28: uint16(37254), + 29: uint16(37258), + 30: uint16(37249), + 31: uint16(37250), + 32: uint16(37252), + 33: uint16(37248), + 34: uint16(37584), + 35: uint16(37571), + 36: uint16(37572), + 37: uint16(37568), + 38: uint16(37593), + 39: uint16(37558), + 40: uint16(37583), + 41: uint16(37617), + 42: uint16(37599), + 43: uint16(37592), + 44: uint16(37609), + 45: uint16(37591), + 46: uint16(37597), + 47: uint16(37580), + 48: uint16(37615), + 49: uint16(37570), + 50: uint16(37608), + 51: uint16(37578), + 52: uint16(37576), + 53: uint16(37582), + 54: uint16(37606), + 55: uint16(37581), + 56: uint16(37589), + 57: uint16(37577), + 58: uint16(37600), + 59: uint16(37598), + 60: uint16(37607), + 61: uint16(37585), + 62: uint16(37587), + 63: uint16(37557), + 64: uint16(37601), + 65: uint16(37574), + 66: uint16(37556), + 67: uint16(38268), + 68: uint16(38316), + 69: uint16(38315), + 70: uint16(38318), + 71: uint16(38320), + 72: uint16(38564), + 73: uint16(38562), + 74: uint16(38611), + 75: uint16(38661), + 76: uint16(38664), + 77: uint16(38658), + 78: uint16(38746), + 79: uint16(38794), + 80: uint16(38798), + 81: uint16(38792), + 82: uint16(38864), + 83: uint16(38863), + 84: uint16(38942), + 85: uint16(38941), + 86: uint16(38950), + 87: uint16(38953), + 88: uint16(38952), + 89: uint16(38944), + 90: uint16(38939), + 91: uint16(38951), + 92: uint16(39090), + 93: uint16(39176), + 94: uint16(39162), + 95: uint16(39185), + 96: uint16(39188), + 97: uint16(39190), + 98: uint16(39191), + 99: uint16(39189), + 100: uint16(39388), + 101: uint16(39373), + 102: uint16(39375), + 103: uint16(39379), + 104: uint16(39380), + 105: uint16(39374), + 106: uint16(39369), + 107: uint16(39382), + 108: uint16(39384), + 109: uint16(39371), + 110: uint16(39383), + 111: uint16(39372), + 112: uint16(39603), + 113: uint16(39660), + 114: uint16(39659), + 115: uint16(39667), + 116: uint16(39666), + 117: uint16(39665), + 118: uint16(39750), + 119: uint16(39747), + 120: uint16(39783), + 121: uint16(39796), + 122: uint16(39793), + 123: uint16(39782), + 124: uint16(39798), + 125: uint16(39797), + 126: uint16(39792), + 127: uint16(39784), + 128: uint16(39780), + 129: uint16(39788), + 130: uint16(40188), + 131: uint16(40186), + 132: uint16(40189), + 133: uint16(40191), + 134: uint16(40183), + 135: uint16(40199), + 136: uint16(40192), + 137: uint16(40185), + 138: uint16(40187), + 139: uint16(40200), + 140: uint16(40197), + 141: uint16(40196), + 142: uint16(40579), + 143: uint16(40659), + 144: uint16(40719), + 145: uint16(40720), + 146: uint16(20764), + 147: uint16(20755), + 148: uint16(20759), + 149: uint16(20762), + 150: uint16(20753), + 151: uint16(20958), + 152: uint16(21300), + 153: uint16(21473), + 154: uint16(22128), + 155: uint16(22112), + 156: uint16(22126), + }, + 72: { + 0: uint16(22131), + 1: uint16(22118), + 2: uint16(22115), + 3: uint16(22125), + 4: uint16(22130), + 5: uint16(22110), + 6: uint16(22135), + 7: uint16(22300), + 8: uint16(22299), + 9: uint16(22728), + 10: uint16(22717), + 11: uint16(22729), + 12: uint16(22719), + 13: uint16(22714), + 14: uint16(22722), + 15: uint16(22716), + 16: uint16(22726), + 17: uint16(23319), + 18: uint16(23321), + 19: uint16(23323), + 20: uint16(23329), + 21: uint16(23316), + 22: uint16(23315), + 23: uint16(23312), + 24: uint16(23318), + 25: uint16(23336), + 26: uint16(23322), + 27: uint16(23328), + 28: uint16(23326), + 29: uint16(23535), + 30: uint16(23980), + 31: uint16(23985), + 32: uint16(23977), + 33: uint16(23975), + 34: uint16(23989), + 35: uint16(23984), + 36: uint16(23982), + 37: uint16(23978), + 38: uint16(23976), + 39: uint16(23986), + 40: uint16(23981), + 41: uint16(23983), + 42: uint16(23988), + 43: uint16(24167), + 44: uint16(24168), + 45: uint16(24166), + 46: uint16(24175), + 47: uint16(24297), + 48: uint16(24295), + 49: uint16(24294), + 50: uint16(24296), + 51: uint16(24293), + 52: uint16(24395), + 53: uint16(24508), + 54: uint16(24989), + 55: uint16(25000), + 56: uint16(24982), + 57: uint16(25029), + 58: uint16(25012), + 59: uint16(25030), + 60: uint16(25025), + 61: uint16(25036), + 62: uint16(25018), + 63: uint16(25023), + 64: uint16(25016), + 65: uint16(24972), + 66: uint16(25815), + 67: uint16(25814), + 68: uint16(25808), + 69: uint16(25807), + 70: uint16(25801), + 71: uint16(25789), + 72: uint16(25737), + 73: uint16(25795), + 74: uint16(25819), + 75: uint16(25843), + 76: uint16(25817), + 77: uint16(25907), + 78: uint16(25983), + 79: uint16(25980), + 80: uint16(26018), + 81: uint16(26312), + 82: uint16(26302), + 83: uint16(26304), + 84: uint16(26314), + 85: uint16(26315), + 86: uint16(26319), + 87: uint16(26301), + 88: uint16(26299), + 89: uint16(26298), + 90: uint16(26316), + 91: uint16(26403), + 92: uint16(27188), + 93: uint16(27238), + 94: uint16(27209), + 95: uint16(27239), + 96: uint16(27186), + 97: uint16(27240), + 98: uint16(27198), + 99: uint16(27229), + 100: uint16(27245), + 101: uint16(27254), + 102: uint16(27227), + 103: uint16(27217), + 104: uint16(27176), + 105: uint16(27226), + 106: uint16(27195), + 107: uint16(27199), + 108: uint16(27201), + 109: uint16(27242), + 110: uint16(27236), + 111: uint16(27216), + 112: uint16(27215), + 113: uint16(27220), + 114: uint16(27247), + 115: uint16(27241), + 116: uint16(27232), + 117: uint16(27196), + 118: uint16(27230), + 119: uint16(27222), + 120: uint16(27221), + 121: uint16(27213), + 122: uint16(27214), + 123: uint16(27206), + 124: uint16(27477), + 125: uint16(27476), + 126: uint16(27478), + 127: uint16(27559), + 128: uint16(27562), + 129: uint16(27563), + 130: uint16(27592), + 131: uint16(27591), + 132: uint16(27652), + 133: uint16(27651), + 134: uint16(27654), + 135: uint16(28589), + 136: uint16(28619), + 137: uint16(28579), + 138: uint16(28615), + 139: uint16(28604), + 140: uint16(28622), + 141: uint16(28616), + 142: uint16(28510), + 143: uint16(28612), + 144: uint16(28605), + 145: uint16(28574), + 146: uint16(28618), + 147: uint16(28584), + 148: uint16(28676), + 149: uint16(28581), + 150: uint16(28590), + 151: uint16(28602), + 152: uint16(28588), + 153: uint16(28586), + 154: uint16(28623), + 155: uint16(28607), + 156: uint16(28600), + }, + 73: { + 0: uint16(28578), + 1: uint16(28617), + 2: uint16(28587), + 3: uint16(28621), + 4: uint16(28591), + 5: uint16(28594), + 6: uint16(28592), + 7: uint16(29125), + 8: uint16(29122), + 9: uint16(29119), + 10: uint16(29112), + 11: uint16(29142), + 12: uint16(29120), + 13: uint16(29121), + 14: uint16(29131), + 15: uint16(29140), + 16: uint16(29130), + 17: uint16(29127), + 18: uint16(29135), + 19: uint16(29117), + 20: uint16(29144), + 21: uint16(29116), + 22: uint16(29126), + 23: uint16(29146), + 24: uint16(29147), + 25: uint16(29341), + 26: uint16(29342), + 27: uint16(29545), + 28: uint16(29542), + 29: uint16(29543), + 30: uint16(29548), + 31: uint16(29541), + 32: uint16(29547), + 33: uint16(29546), + 34: uint16(29823), + 35: uint16(29850), + 36: uint16(29856), + 37: uint16(29844), + 38: uint16(29842), + 39: uint16(29845), + 40: uint16(29857), + 41: uint16(29963), + 42: uint16(30080), + 43: uint16(30255), + 44: uint16(30253), + 45: uint16(30257), + 46: uint16(30269), + 47: uint16(30259), + 48: uint16(30268), + 49: uint16(30261), + 50: uint16(30258), + 51: uint16(30256), + 52: uint16(30395), + 53: uint16(30438), + 54: uint16(30618), + 55: uint16(30621), + 56: uint16(30625), + 57: uint16(30620), + 58: uint16(30619), + 59: uint16(30626), + 60: uint16(30627), + 61: uint16(30613), + 62: uint16(30617), + 63: uint16(30615), + 64: uint16(30941), + 65: uint16(30953), + 66: uint16(30949), + 67: uint16(30954), + 68: uint16(30942), + 69: uint16(30947), + 70: uint16(30939), + 71: uint16(30945), + 72: uint16(30946), + 73: uint16(30957), + 74: uint16(30943), + 75: uint16(30944), + 76: uint16(31140), + 77: uint16(31300), + 78: uint16(31304), + 79: uint16(31303), + 80: uint16(31414), + 81: uint16(31416), + 82: uint16(31413), + 83: uint16(31409), + 84: uint16(31415), + 85: uint16(31710), + 86: uint16(31715), + 87: uint16(31719), + 88: uint16(31709), + 89: uint16(31701), + 90: uint16(31717), + 91: uint16(31706), + 92: uint16(31720), + 93: uint16(31737), + 94: uint16(31700), + 95: uint16(31722), + 96: uint16(31714), + 97: uint16(31708), + 98: uint16(31723), + 99: uint16(31704), + 100: uint16(31711), + 101: uint16(31954), + 102: uint16(31956), + 103: uint16(31959), + 104: uint16(31952), + 105: uint16(31953), + 106: uint16(32274), + 107: uint16(32289), + 108: uint16(32279), + 109: uint16(32268), + 110: uint16(32287), + 111: uint16(32288), + 112: uint16(32275), + 113: uint16(32270), + 114: uint16(32284), + 115: uint16(32277), + 116: uint16(32282), + 117: uint16(32290), + 118: uint16(32267), + 119: uint16(32271), + 120: uint16(32278), + 121: uint16(32269), + 122: uint16(32276), + 123: uint16(32293), + 124: uint16(32292), + 125: uint16(32579), + 126: uint16(32635), + 127: uint16(32636), + 128: uint16(32634), + 129: uint16(32689), + 130: uint16(32751), + 131: uint16(32810), + 132: uint16(32809), + 133: uint16(32876), + 134: uint16(33201), + 135: uint16(33190), + 136: uint16(33198), + 137: uint16(33209), + 138: uint16(33205), + 139: uint16(33195), + 140: uint16(33200), + 141: uint16(33196), + 142: uint16(33204), + 143: uint16(33202), + 144: uint16(33207), + 145: uint16(33191), + 146: uint16(33266), + 147: uint16(33365), + 148: uint16(33366), + 149: uint16(33367), + 150: uint16(34134), + 151: uint16(34117), + 152: uint16(34155), + 153: uint16(34125), + 154: uint16(34131), + 155: uint16(34145), + 156: uint16(34136), + }, + 74: { + 0: uint16(34112), + 1: uint16(34118), + 2: uint16(34148), + 3: uint16(34113), + 4: uint16(34146), + 5: uint16(34116), + 6: uint16(34129), + 7: uint16(34119), + 8: uint16(34147), + 9: uint16(34110), + 10: uint16(34139), + 11: uint16(34161), + 12: uint16(34126), + 13: uint16(34158), + 14: uint16(34165), + 15: uint16(34133), + 16: uint16(34151), + 17: uint16(34144), + 18: uint16(34188), + 19: uint16(34150), + 20: uint16(34141), + 21: uint16(34132), + 22: uint16(34149), + 23: uint16(34156), + 24: uint16(34403), + 25: uint16(34405), + 26: uint16(34404), + 27: uint16(34715), + 28: uint16(34703), + 29: uint16(34711), + 30: uint16(34707), + 31: uint16(34706), + 32: uint16(34696), + 33: uint16(34689), + 34: uint16(34710), + 35: uint16(34712), + 36: uint16(34681), + 37: uint16(34695), + 38: uint16(34723), + 39: uint16(34693), + 40: uint16(34704), + 41: uint16(34705), + 42: uint16(34717), + 43: uint16(34692), + 44: uint16(34708), + 45: uint16(34716), + 46: uint16(34714), + 47: uint16(34697), + 48: uint16(35102), + 49: uint16(35110), + 50: uint16(35120), + 51: uint16(35117), + 52: uint16(35118), + 53: uint16(35111), + 54: uint16(35121), + 55: uint16(35106), + 56: uint16(35113), + 57: uint16(35107), + 58: uint16(35119), + 59: uint16(35116), + 60: uint16(35103), + 61: uint16(35313), + 62: uint16(35552), + 63: uint16(35554), + 64: uint16(35570), + 65: uint16(35572), + 66: uint16(35573), + 67: uint16(35549), + 68: uint16(35604), + 69: uint16(35556), + 70: uint16(35551), + 71: uint16(35568), + 72: uint16(35528), + 73: uint16(35550), + 74: uint16(35553), + 75: uint16(35560), + 76: uint16(35583), + 77: uint16(35567), + 78: uint16(35579), + 79: uint16(35985), + 80: uint16(35986), + 81: uint16(35984), + 82: uint16(36085), + 83: uint16(36078), + 84: uint16(36081), + 85: uint16(36080), + 86: uint16(36083), + 87: uint16(36204), + 88: uint16(36206), + 89: uint16(36261), + 90: uint16(36263), + 91: uint16(36403), + 92: uint16(36414), + 93: uint16(36408), + 94: uint16(36416), + 95: uint16(36421), + 96: uint16(36406), + 97: uint16(36412), + 98: uint16(36413), + 99: uint16(36417), + 100: uint16(36400), + 101: uint16(36415), + 102: uint16(36541), + 103: uint16(36662), + 104: uint16(36654), + 105: uint16(36661), + 106: uint16(36658), + 107: uint16(36665), + 108: uint16(36663), + 109: uint16(36660), + 110: uint16(36982), + 111: uint16(36985), + 112: uint16(36987), + 113: uint16(36998), + 114: uint16(37114), + 115: uint16(37171), + 116: uint16(37173), + 117: uint16(37174), + 118: uint16(37267), + 119: uint16(37264), + 120: uint16(37265), + 121: uint16(37261), + 122: uint16(37263), + 123: uint16(37671), + 124: uint16(37662), + 125: uint16(37640), + 126: uint16(37663), + 127: uint16(37638), + 128: uint16(37647), + 129: uint16(37754), + 130: uint16(37688), + 131: uint16(37692), + 132: uint16(37659), + 133: uint16(37667), + 134: uint16(37650), + 135: uint16(37633), + 136: uint16(37702), + 137: uint16(37677), + 138: uint16(37646), + 139: uint16(37645), + 140: uint16(37579), + 141: uint16(37661), + 142: uint16(37626), + 143: uint16(37669), + 144: uint16(37651), + 145: uint16(37625), + 146: uint16(37623), + 147: uint16(37684), + 148: uint16(37634), + 149: uint16(37668), + 150: uint16(37631), + 151: uint16(37673), + 152: uint16(37689), + 153: uint16(37685), + 154: uint16(37674), + 155: uint16(37652), + 156: uint16(37644), + }, + 75: { + 0: uint16(37643), + 1: uint16(37630), + 2: uint16(37641), + 3: uint16(37632), + 4: uint16(37627), + 5: uint16(37654), + 6: uint16(38332), + 7: uint16(38349), + 8: uint16(38334), + 9: uint16(38329), + 10: uint16(38330), + 11: uint16(38326), + 12: uint16(38335), + 13: uint16(38325), + 14: uint16(38333), + 15: uint16(38569), + 16: uint16(38612), + 17: uint16(38667), + 18: uint16(38674), + 19: uint16(38672), + 20: uint16(38809), + 21: uint16(38807), + 22: uint16(38804), + 23: uint16(38896), + 24: uint16(38904), + 25: uint16(38965), + 26: uint16(38959), + 27: uint16(38962), + 28: uint16(39204), + 29: uint16(39199), + 30: uint16(39207), + 31: uint16(39209), + 32: uint16(39326), + 33: uint16(39406), + 34: uint16(39404), + 35: uint16(39397), + 36: uint16(39396), + 37: uint16(39408), + 38: uint16(39395), + 39: uint16(39402), + 40: uint16(39401), + 41: uint16(39399), + 42: uint16(39609), + 43: uint16(39615), + 44: uint16(39604), + 45: uint16(39611), + 46: uint16(39670), + 47: uint16(39674), + 48: uint16(39673), + 49: uint16(39671), + 50: uint16(39731), + 51: uint16(39808), + 52: uint16(39813), + 53: uint16(39815), + 54: uint16(39804), + 55: uint16(39806), + 56: uint16(39803), + 57: uint16(39810), + 58: uint16(39827), + 59: uint16(39826), + 60: uint16(39824), + 61: uint16(39802), + 62: uint16(39829), + 63: uint16(39805), + 64: uint16(39816), + 65: uint16(40229), + 66: uint16(40215), + 67: uint16(40224), + 68: uint16(40222), + 69: uint16(40212), + 70: uint16(40233), + 71: uint16(40221), + 72: uint16(40216), + 73: uint16(40226), + 74: uint16(40208), + 75: uint16(40217), + 76: uint16(40223), + 77: uint16(40584), + 78: uint16(40582), + 79: uint16(40583), + 80: uint16(40622), + 81: uint16(40621), + 82: uint16(40661), + 83: uint16(40662), + 84: uint16(40698), + 85: uint16(40722), + 86: uint16(40765), + 87: uint16(20774), + 88: uint16(20773), + 89: uint16(20770), + 90: uint16(20772), + 91: uint16(20768), + 92: uint16(20777), + 93: uint16(21236), + 94: uint16(22163), + 95: uint16(22156), + 96: uint16(22157), + 97: uint16(22150), + 98: uint16(22148), + 99: uint16(22147), + 100: uint16(22142), + 101: uint16(22146), + 102: uint16(22143), + 103: uint16(22145), + 104: uint16(22742), + 105: uint16(22740), + 106: uint16(22735), + 107: uint16(22738), + 108: uint16(23341), + 109: uint16(23333), + 110: uint16(23346), + 111: uint16(23331), + 112: uint16(23340), + 113: uint16(23335), + 114: uint16(23334), + 115: uint16(23343), + 116: uint16(23342), + 117: uint16(23419), + 118: uint16(23537), + 119: uint16(23538), + 120: uint16(23991), + 121: uint16(24172), + 122: uint16(24170), + 123: uint16(24510), + 124: uint16(24507), + 125: uint16(25027), + 126: uint16(25013), + 127: uint16(25020), + 128: uint16(25063), + 129: uint16(25056), + 130: uint16(25061), + 131: uint16(25060), + 132: uint16(25064), + 133: uint16(25054), + 134: uint16(25839), + 135: uint16(25833), + 136: uint16(25827), + 137: uint16(25835), + 138: uint16(25828), + 139: uint16(25832), + 140: uint16(25985), + 141: uint16(25984), + 142: uint16(26038), + 143: uint16(26074), + 144: uint16(26322), + 145: uint16(27277), + 146: uint16(27286), + 147: uint16(27265), + 148: uint16(27301), + 149: uint16(27273), + 150: uint16(27295), + 151: uint16(27291), + 152: uint16(27297), + 153: uint16(27294), + 154: uint16(27271), + 155: uint16(27283), + 156: uint16(27278), + }, + 76: { + 0: uint16(27285), + 1: uint16(27267), + 2: uint16(27304), + 3: uint16(27300), + 4: uint16(27281), + 5: uint16(27263), + 6: uint16(27302), + 7: uint16(27290), + 8: uint16(27269), + 9: uint16(27276), + 10: uint16(27282), + 11: uint16(27483), + 12: uint16(27565), + 13: uint16(27657), + 14: uint16(28620), + 15: uint16(28585), + 16: uint16(28660), + 17: uint16(28628), + 18: uint16(28643), + 19: uint16(28636), + 20: uint16(28653), + 21: uint16(28647), + 22: uint16(28646), + 23: uint16(28638), + 24: uint16(28658), + 25: uint16(28637), + 26: uint16(28642), + 27: uint16(28648), + 28: uint16(29153), + 29: uint16(29169), + 30: uint16(29160), + 31: uint16(29170), + 32: uint16(29156), + 33: uint16(29168), + 34: uint16(29154), + 35: uint16(29555), + 36: uint16(29550), + 37: uint16(29551), + 38: uint16(29847), + 39: uint16(29874), + 40: uint16(29867), + 41: uint16(29840), + 42: uint16(29866), + 43: uint16(29869), + 44: uint16(29873), + 45: uint16(29861), + 46: uint16(29871), + 47: uint16(29968), + 48: uint16(29969), + 49: uint16(29970), + 50: uint16(29967), + 51: uint16(30084), + 52: uint16(30275), + 53: uint16(30280), + 54: uint16(30281), + 55: uint16(30279), + 56: uint16(30372), + 57: uint16(30441), + 58: uint16(30645), + 59: uint16(30635), + 60: uint16(30642), + 61: uint16(30647), + 62: uint16(30646), + 63: uint16(30644), + 64: uint16(30641), + 65: uint16(30632), + 66: uint16(30704), + 67: uint16(30963), + 68: uint16(30973), + 69: uint16(30978), + 70: uint16(30971), + 71: uint16(30972), + 72: uint16(30962), + 73: uint16(30981), + 74: uint16(30969), + 75: uint16(30974), + 76: uint16(30980), + 77: uint16(31147), + 78: uint16(31144), + 79: uint16(31324), + 80: uint16(31323), + 81: uint16(31318), + 82: uint16(31320), + 83: uint16(31316), + 84: uint16(31322), + 85: uint16(31422), + 86: uint16(31424), + 87: uint16(31425), + 88: uint16(31749), + 89: uint16(31759), + 90: uint16(31730), + 91: uint16(31744), + 92: uint16(31743), + 93: uint16(31739), + 94: uint16(31758), + 95: uint16(31732), + 96: uint16(31755), + 97: uint16(31731), + 98: uint16(31746), + 99: uint16(31753), + 100: uint16(31747), + 101: uint16(31745), + 102: uint16(31736), + 103: uint16(31741), + 104: uint16(31750), + 105: uint16(31728), + 106: uint16(31729), + 107: uint16(31760), + 108: uint16(31754), + 109: uint16(31976), + 110: uint16(32301), + 111: uint16(32316), + 112: uint16(32322), + 113: uint16(32307), + 114: uint16(38984), + 115: uint16(32312), + 116: uint16(32298), + 117: uint16(32329), + 118: uint16(32320), + 119: uint16(32327), + 120: uint16(32297), + 121: uint16(32332), + 122: uint16(32304), + 123: uint16(32315), + 124: uint16(32310), + 125: uint16(32324), + 126: uint16(32314), + 127: uint16(32581), + 128: uint16(32639), + 129: uint16(32638), + 130: uint16(32637), + 131: uint16(32756), + 132: uint16(32754), + 133: uint16(32812), + 134: uint16(33211), + 135: uint16(33220), + 136: uint16(33228), + 137: uint16(33226), + 138: uint16(33221), + 139: uint16(33223), + 140: uint16(33212), + 141: uint16(33257), + 142: uint16(33371), + 143: uint16(33370), + 144: uint16(33372), + 145: uint16(34179), + 146: uint16(34176), + 147: uint16(34191), + 148: uint16(34215), + 149: uint16(34197), + 150: uint16(34208), + 151: uint16(34187), + 152: uint16(34211), + 153: uint16(34171), + 154: uint16(34212), + 155: uint16(34202), + 156: uint16(34206), + }, + 77: { + 0: uint16(34167), + 1: uint16(34172), + 2: uint16(34185), + 3: uint16(34209), + 4: uint16(34170), + 5: uint16(34168), + 6: uint16(34135), + 7: uint16(34190), + 8: uint16(34198), + 9: uint16(34182), + 10: uint16(34189), + 11: uint16(34201), + 12: uint16(34205), + 13: uint16(34177), + 14: uint16(34210), + 15: uint16(34178), + 16: uint16(34184), + 17: uint16(34181), + 18: uint16(34169), + 19: uint16(34166), + 20: uint16(34200), + 21: uint16(34192), + 22: uint16(34207), + 23: uint16(34408), + 24: uint16(34750), + 25: uint16(34730), + 26: uint16(34733), + 27: uint16(34757), + 28: uint16(34736), + 29: uint16(34732), + 30: uint16(34745), + 31: uint16(34741), + 32: uint16(34748), + 33: uint16(34734), + 34: uint16(34761), + 35: uint16(34755), + 36: uint16(34754), + 37: uint16(34764), + 38: uint16(34743), + 39: uint16(34735), + 40: uint16(34756), + 41: uint16(34762), + 42: uint16(34740), + 43: uint16(34742), + 44: uint16(34751), + 45: uint16(34744), + 46: uint16(34749), + 47: uint16(34782), + 48: uint16(34738), + 49: uint16(35125), + 50: uint16(35123), + 51: uint16(35132), + 52: uint16(35134), + 53: uint16(35137), + 54: uint16(35154), + 55: uint16(35127), + 56: uint16(35138), + 57: uint16(35245), + 58: uint16(35247), + 59: uint16(35246), + 60: uint16(35314), + 61: uint16(35315), + 62: uint16(35614), + 63: uint16(35608), + 64: uint16(35606), + 65: uint16(35601), + 66: uint16(35589), + 67: uint16(35595), + 68: uint16(35618), + 69: uint16(35599), + 70: uint16(35602), + 71: uint16(35605), + 72: uint16(35591), + 73: uint16(35597), + 74: uint16(35592), + 75: uint16(35590), + 76: uint16(35612), + 77: uint16(35603), + 78: uint16(35610), + 79: uint16(35919), + 80: uint16(35952), + 81: uint16(35954), + 82: uint16(35953), + 83: uint16(35951), + 84: uint16(35989), + 85: uint16(35988), + 86: uint16(36089), + 87: uint16(36207), + 88: uint16(36430), + 89: uint16(36429), + 90: uint16(36435), + 91: uint16(36432), + 92: uint16(36428), + 93: uint16(36423), + 94: uint16(36675), + 95: uint16(36672), + 96: uint16(36997), + 97: uint16(36990), + 98: uint16(37176), + 99: uint16(37274), + 100: uint16(37282), + 101: uint16(37275), + 102: uint16(37273), + 103: uint16(37279), + 104: uint16(37281), + 105: uint16(37277), + 106: uint16(37280), + 107: uint16(37793), + 108: uint16(37763), + 109: uint16(37807), + 110: uint16(37732), + 111: uint16(37718), + 112: uint16(37703), + 113: uint16(37756), + 114: uint16(37720), + 115: uint16(37724), + 116: uint16(37750), + 117: uint16(37705), + 118: uint16(37712), + 119: uint16(37713), + 120: uint16(37728), + 121: uint16(37741), + 122: uint16(37775), + 123: uint16(37708), + 124: uint16(37738), + 125: uint16(37753), + 126: uint16(37719), + 127: uint16(37717), + 128: uint16(37714), + 129: uint16(37711), + 130: uint16(37745), + 131: uint16(37751), + 132: uint16(37755), + 133: uint16(37729), + 134: uint16(37726), + 135: uint16(37731), + 136: uint16(37735), + 137: uint16(37760), + 138: uint16(37710), + 139: uint16(37721), + 140: uint16(38343), + 141: uint16(38336), + 142: uint16(38345), + 143: uint16(38339), + 144: uint16(38341), + 145: uint16(38327), + 146: uint16(38574), + 147: uint16(38576), + 148: uint16(38572), + 149: uint16(38688), + 150: uint16(38687), + 151: uint16(38680), + 152: uint16(38685), + 153: uint16(38681), + 154: uint16(38810), + 155: uint16(38817), + 156: uint16(38812), + }, + 78: { + 0: uint16(38814), + 1: uint16(38813), + 2: uint16(38869), + 3: uint16(38868), + 4: uint16(38897), + 5: uint16(38977), + 6: uint16(38980), + 7: uint16(38986), + 8: uint16(38985), + 9: uint16(38981), + 10: uint16(38979), + 11: uint16(39205), + 12: uint16(39211), + 13: uint16(39212), + 14: uint16(39210), + 15: uint16(39219), + 16: uint16(39218), + 17: uint16(39215), + 18: uint16(39213), + 19: uint16(39217), + 20: uint16(39216), + 21: uint16(39320), + 22: uint16(39331), + 23: uint16(39329), + 24: uint16(39426), + 25: uint16(39418), + 26: uint16(39412), + 27: uint16(39415), + 28: uint16(39417), + 29: uint16(39416), + 30: uint16(39414), + 31: uint16(39419), + 32: uint16(39421), + 33: uint16(39422), + 34: uint16(39420), + 35: uint16(39427), + 36: uint16(39614), + 37: uint16(39678), + 38: uint16(39677), + 39: uint16(39681), + 40: uint16(39676), + 41: uint16(39752), + 42: uint16(39834), + 43: uint16(39848), + 44: uint16(39838), + 45: uint16(39835), + 46: uint16(39846), + 47: uint16(39841), + 48: uint16(39845), + 49: uint16(39844), + 50: uint16(39814), + 51: uint16(39842), + 52: uint16(39840), + 53: uint16(39855), + 54: uint16(40243), + 55: uint16(40257), + 56: uint16(40295), + 57: uint16(40246), + 58: uint16(40238), + 59: uint16(40239), + 60: uint16(40241), + 61: uint16(40248), + 62: uint16(40240), + 63: uint16(40261), + 64: uint16(40258), + 65: uint16(40259), + 66: uint16(40254), + 67: uint16(40247), + 68: uint16(40256), + 69: uint16(40253), + 70: uint16(32757), + 71: uint16(40237), + 72: uint16(40586), + 73: uint16(40585), + 74: uint16(40589), + 75: uint16(40624), + 76: uint16(40648), + 77: uint16(40666), + 78: uint16(40699), + 79: uint16(40703), + 80: uint16(40740), + 81: uint16(40739), + 82: uint16(40738), + 83: uint16(40788), + 84: uint16(40864), + 85: uint16(20785), + 86: uint16(20781), + 87: uint16(20782), + 88: uint16(22168), + 89: uint16(22172), + 90: uint16(22167), + 91: uint16(22170), + 92: uint16(22173), + 93: uint16(22169), + 94: uint16(22896), + 95: uint16(23356), + 96: uint16(23657), + 97: uint16(23658), + 98: uint16(24000), + 99: uint16(24173), + 100: uint16(24174), + 101: uint16(25048), + 102: uint16(25055), + 103: uint16(25069), + 104: uint16(25070), + 105: uint16(25073), + 106: uint16(25066), + 107: uint16(25072), + 108: uint16(25067), + 109: uint16(25046), + 110: uint16(25065), + 111: uint16(25855), + 112: uint16(25860), + 113: uint16(25853), + 114: uint16(25848), + 115: uint16(25857), + 116: uint16(25859), + 117: uint16(25852), + 118: uint16(26004), + 119: uint16(26075), + 120: uint16(26330), + 121: uint16(26331), + 122: uint16(26328), + 123: uint16(27333), + 124: uint16(27321), + 125: uint16(27325), + 126: uint16(27361), + 127: uint16(27334), + 128: uint16(27322), + 129: uint16(27318), + 130: uint16(27319), + 131: uint16(27335), + 132: uint16(27316), + 133: uint16(27309), + 134: uint16(27486), + 135: uint16(27593), + 136: uint16(27659), + 137: uint16(28679), + 138: uint16(28684), + 139: uint16(28685), + 140: uint16(28673), + 141: uint16(28677), + 142: uint16(28692), + 143: uint16(28686), + 144: uint16(28671), + 145: uint16(28672), + 146: uint16(28667), + 147: uint16(28710), + 148: uint16(28668), + 149: uint16(28663), + 150: uint16(28682), + 151: uint16(29185), + 152: uint16(29183), + 153: uint16(29177), + 154: uint16(29187), + 155: uint16(29181), + 156: uint16(29558), + }, + 79: { + 0: uint16(29880), + 1: uint16(29888), + 2: uint16(29877), + 3: uint16(29889), + 4: uint16(29886), + 5: uint16(29878), + 6: uint16(29883), + 7: uint16(29890), + 8: uint16(29972), + 9: uint16(29971), + 10: uint16(30300), + 11: uint16(30308), + 12: uint16(30297), + 13: uint16(30288), + 14: uint16(30291), + 15: uint16(30295), + 16: uint16(30298), + 17: uint16(30374), + 18: uint16(30397), + 19: uint16(30444), + 20: uint16(30658), + 21: uint16(30650), + 22: uint16(30975), + 23: uint16(30988), + 24: uint16(30995), + 25: uint16(30996), + 26: uint16(30985), + 27: uint16(30992), + 28: uint16(30994), + 29: uint16(30993), + 30: uint16(31149), + 31: uint16(31148), + 32: uint16(31327), + 33: uint16(31772), + 34: uint16(31785), + 35: uint16(31769), + 36: uint16(31776), + 37: uint16(31775), + 38: uint16(31789), + 39: uint16(31773), + 40: uint16(31782), + 41: uint16(31784), + 42: uint16(31778), + 43: uint16(31781), + 44: uint16(31792), + 45: uint16(32348), + 46: uint16(32336), + 47: uint16(32342), + 48: uint16(32355), + 49: uint16(32344), + 50: uint16(32354), + 51: uint16(32351), + 52: uint16(32337), + 53: uint16(32352), + 54: uint16(32343), + 55: uint16(32339), + 56: uint16(32693), + 57: uint16(32691), + 58: uint16(32759), + 59: uint16(32760), + 60: uint16(32885), + 61: uint16(33233), + 62: uint16(33234), + 63: uint16(33232), + 64: uint16(33375), + 65: uint16(33374), + 66: uint16(34228), + 67: uint16(34246), + 68: uint16(34240), + 69: uint16(34243), + 70: uint16(34242), + 71: uint16(34227), + 72: uint16(34229), + 73: uint16(34237), + 74: uint16(34247), + 75: uint16(34244), + 76: uint16(34239), + 77: uint16(34251), + 78: uint16(34254), + 79: uint16(34248), + 80: uint16(34245), + 81: uint16(34225), + 82: uint16(34230), + 83: uint16(34258), + 84: uint16(34340), + 85: uint16(34232), + 86: uint16(34231), + 87: uint16(34238), + 88: uint16(34409), + 89: uint16(34791), + 90: uint16(34790), + 91: uint16(34786), + 92: uint16(34779), + 93: uint16(34795), + 94: uint16(34794), + 95: uint16(34789), + 96: uint16(34783), + 97: uint16(34803), + 98: uint16(34788), + 99: uint16(34772), + 100: uint16(34780), + 101: uint16(34771), + 102: uint16(34797), + 103: uint16(34776), + 104: uint16(34787), + 105: uint16(34724), + 106: uint16(34775), + 107: uint16(34777), + 108: uint16(34817), + 109: uint16(34804), + 110: uint16(34792), + 111: uint16(34781), + 112: uint16(35155), + 113: uint16(35147), + 114: uint16(35151), + 115: uint16(35148), + 116: uint16(35142), + 117: uint16(35152), + 118: uint16(35153), + 119: uint16(35145), + 120: uint16(35626), + 121: uint16(35623), + 122: uint16(35619), + 123: uint16(35635), + 124: uint16(35632), + 125: uint16(35637), + 126: uint16(35655), + 127: uint16(35631), + 128: uint16(35644), + 129: uint16(35646), + 130: uint16(35633), + 131: uint16(35621), + 132: uint16(35639), + 133: uint16(35622), + 134: uint16(35638), + 135: uint16(35630), + 136: uint16(35620), + 137: uint16(35643), + 138: uint16(35645), + 139: uint16(35642), + 140: uint16(35906), + 141: uint16(35957), + 142: uint16(35993), + 143: uint16(35992), + 144: uint16(35991), + 145: uint16(36094), + 146: uint16(36100), + 147: uint16(36098), + 148: uint16(36096), + 149: uint16(36444), + 150: uint16(36450), + 151: uint16(36448), + 152: uint16(36439), + 153: uint16(36438), + 154: uint16(36446), + 155: uint16(36453), + 156: uint16(36455), + }, + 80: { + 0: uint16(36443), + 1: uint16(36442), + 2: uint16(36449), + 3: uint16(36445), + 4: uint16(36457), + 5: uint16(36436), + 6: uint16(36678), + 7: uint16(36679), + 8: uint16(36680), + 9: uint16(36683), + 10: uint16(37160), + 11: uint16(37178), + 12: uint16(37179), + 13: uint16(37182), + 14: uint16(37288), + 15: uint16(37285), + 16: uint16(37287), + 17: uint16(37295), + 18: uint16(37290), + 19: uint16(37813), + 20: uint16(37772), + 21: uint16(37778), + 22: uint16(37815), + 23: uint16(37787), + 24: uint16(37789), + 25: uint16(37769), + 26: uint16(37799), + 27: uint16(37774), + 28: uint16(37802), + 29: uint16(37790), + 30: uint16(37798), + 31: uint16(37781), + 32: uint16(37768), + 33: uint16(37785), + 34: uint16(37791), + 35: uint16(37773), + 36: uint16(37809), + 37: uint16(37777), + 38: uint16(37810), + 39: uint16(37796), + 40: uint16(37800), + 41: uint16(37812), + 42: uint16(37795), + 43: uint16(37797), + 44: uint16(38354), + 45: uint16(38355), + 46: uint16(38353), + 47: uint16(38579), + 48: uint16(38615), + 49: uint16(38618), + 50: uint16(24002), + 51: uint16(38623), + 52: uint16(38616), + 53: uint16(38621), + 54: uint16(38691), + 55: uint16(38690), + 56: uint16(38693), + 57: uint16(38828), + 58: uint16(38830), + 59: uint16(38824), + 60: uint16(38827), + 61: uint16(38820), + 62: uint16(38826), + 63: uint16(38818), + 64: uint16(38821), + 65: uint16(38871), + 66: uint16(38873), + 67: uint16(38870), + 68: uint16(38872), + 69: uint16(38906), + 70: uint16(38992), + 71: uint16(38993), + 72: uint16(38994), + 73: uint16(39096), + 74: uint16(39233), + 75: uint16(39228), + 76: uint16(39226), + 77: uint16(39439), + 78: uint16(39435), + 79: uint16(39433), + 80: uint16(39437), + 81: uint16(39428), + 82: uint16(39441), + 83: uint16(39434), + 84: uint16(39429), + 85: uint16(39431), + 86: uint16(39430), + 87: uint16(39616), + 88: uint16(39644), + 89: uint16(39688), + 90: uint16(39684), + 91: uint16(39685), + 92: uint16(39721), + 93: uint16(39733), + 94: uint16(39754), + 95: uint16(39756), + 96: uint16(39755), + 97: uint16(39879), + 98: uint16(39878), + 99: uint16(39875), + 100: uint16(39871), + 101: uint16(39873), + 102: uint16(39861), + 103: uint16(39864), + 104: uint16(39891), + 105: uint16(39862), + 106: uint16(39876), + 107: uint16(39865), + 108: uint16(39869), + 109: uint16(40284), + 110: uint16(40275), + 111: uint16(40271), + 112: uint16(40266), + 113: uint16(40283), + 114: uint16(40267), + 115: uint16(40281), + 116: uint16(40278), + 117: uint16(40268), + 118: uint16(40279), + 119: uint16(40274), + 120: uint16(40276), + 121: uint16(40287), + 122: uint16(40280), + 123: uint16(40282), + 124: uint16(40590), + 125: uint16(40588), + 126: uint16(40671), + 127: uint16(40705), + 128: uint16(40704), + 129: uint16(40726), + 130: uint16(40741), + 131: uint16(40747), + 132: uint16(40746), + 133: uint16(40745), + 134: uint16(40744), + 135: uint16(40780), + 136: uint16(40789), + 137: uint16(20788), + 138: uint16(20789), + 139: uint16(21142), + 140: uint16(21239), + 141: uint16(21428), + 142: uint16(22187), + 143: uint16(22189), + 144: uint16(22182), + 145: uint16(22183), + 146: uint16(22186), + 147: uint16(22188), + 148: uint16(22746), + 149: uint16(22749), + 150: uint16(22747), + 151: uint16(22802), + 152: uint16(23357), + 153: uint16(23358), + 154: uint16(23359), + 155: uint16(24003), + 156: uint16(24176), + }, + 81: { + 0: uint16(24511), + 1: uint16(25083), + 2: uint16(25863), + 3: uint16(25872), + 4: uint16(25869), + 5: uint16(25865), + 6: uint16(25868), + 7: uint16(25870), + 8: uint16(25988), + 9: uint16(26078), + 10: uint16(26077), + 11: uint16(26334), + 12: uint16(27367), + 13: uint16(27360), + 14: uint16(27340), + 15: uint16(27345), + 16: uint16(27353), + 17: uint16(27339), + 18: uint16(27359), + 19: uint16(27356), + 20: uint16(27344), + 21: uint16(27371), + 22: uint16(27343), + 23: uint16(27341), + 24: uint16(27358), + 25: uint16(27488), + 26: uint16(27568), + 27: uint16(27660), + 28: uint16(28697), + 29: uint16(28711), + 30: uint16(28704), + 31: uint16(28694), + 32: uint16(28715), + 33: uint16(28705), + 34: uint16(28706), + 35: uint16(28707), + 36: uint16(28713), + 37: uint16(28695), + 38: uint16(28708), + 39: uint16(28700), + 40: uint16(28714), + 41: uint16(29196), + 42: uint16(29194), + 43: uint16(29191), + 44: uint16(29186), + 45: uint16(29189), + 46: uint16(29349), + 47: uint16(29350), + 48: uint16(29348), + 49: uint16(29347), + 50: uint16(29345), + 51: uint16(29899), + 52: uint16(29893), + 53: uint16(29879), + 54: uint16(29891), + 55: uint16(29974), + 56: uint16(30304), + 57: uint16(30665), + 58: uint16(30666), + 59: uint16(30660), + 60: uint16(30705), + 61: uint16(31005), + 62: uint16(31003), + 63: uint16(31009), + 64: uint16(31004), + 65: uint16(30999), + 66: uint16(31006), + 67: uint16(31152), + 68: uint16(31335), + 69: uint16(31336), + 70: uint16(31795), + 71: uint16(31804), + 72: uint16(31801), + 73: uint16(31788), + 74: uint16(31803), + 75: uint16(31980), + 76: uint16(31978), + 77: uint16(32374), + 78: uint16(32373), + 79: uint16(32376), + 80: uint16(32368), + 81: uint16(32375), + 82: uint16(32367), + 83: uint16(32378), + 84: uint16(32370), + 85: uint16(32372), + 86: uint16(32360), + 87: uint16(32587), + 88: uint16(32586), + 89: uint16(32643), + 90: uint16(32646), + 91: uint16(32695), + 92: uint16(32765), + 93: uint16(32766), + 94: uint16(32888), + 95: uint16(33239), + 96: uint16(33237), + 97: uint16(33380), + 98: uint16(33377), + 99: uint16(33379), + 100: uint16(34283), + 101: uint16(34289), + 102: uint16(34285), + 103: uint16(34265), + 104: uint16(34273), + 105: uint16(34280), + 106: uint16(34266), + 107: uint16(34263), + 108: uint16(34284), + 109: uint16(34290), + 110: uint16(34296), + 111: uint16(34264), + 112: uint16(34271), + 113: uint16(34275), + 114: uint16(34268), + 115: uint16(34257), + 116: uint16(34288), + 117: uint16(34278), + 118: uint16(34287), + 119: uint16(34270), + 120: uint16(34274), + 121: uint16(34816), + 122: uint16(34810), + 123: uint16(34819), + 124: uint16(34806), + 125: uint16(34807), + 126: uint16(34825), + 127: uint16(34828), + 128: uint16(34827), + 129: uint16(34822), + 130: uint16(34812), + 131: uint16(34824), + 132: uint16(34815), + 133: uint16(34826), + 134: uint16(34818), + 135: uint16(35170), + 136: uint16(35162), + 137: uint16(35163), + 138: uint16(35159), + 139: uint16(35169), + 140: uint16(35164), + 141: uint16(35160), + 142: uint16(35165), + 143: uint16(35161), + 144: uint16(35208), + 145: uint16(35255), + 146: uint16(35254), + 147: uint16(35318), + 148: uint16(35664), + 149: uint16(35656), + 150: uint16(35658), + 151: uint16(35648), + 152: uint16(35667), + 153: uint16(35670), + 154: uint16(35668), + 155: uint16(35659), + 156: uint16(35669), + }, + 82: { + 0: uint16(35665), + 1: uint16(35650), + 2: uint16(35666), + 3: uint16(35671), + 4: uint16(35907), + 5: uint16(35959), + 6: uint16(35958), + 7: uint16(35994), + 8: uint16(36102), + 9: uint16(36103), + 10: uint16(36105), + 11: uint16(36268), + 12: uint16(36266), + 13: uint16(36269), + 14: uint16(36267), + 15: uint16(36461), + 16: uint16(36472), + 17: uint16(36467), + 18: uint16(36458), + 19: uint16(36463), + 20: uint16(36475), + 21: uint16(36546), + 22: uint16(36690), + 23: uint16(36689), + 24: uint16(36687), + 25: uint16(36688), + 26: uint16(36691), + 27: uint16(36788), + 28: uint16(37184), + 29: uint16(37183), + 30: uint16(37296), + 31: uint16(37293), + 32: uint16(37854), + 33: uint16(37831), + 34: uint16(37839), + 35: uint16(37826), + 36: uint16(37850), + 37: uint16(37840), + 38: uint16(37881), + 39: uint16(37868), + 40: uint16(37836), + 41: uint16(37849), + 42: uint16(37801), + 43: uint16(37862), + 44: uint16(37834), + 45: uint16(37844), + 46: uint16(37870), + 47: uint16(37859), + 48: uint16(37845), + 49: uint16(37828), + 50: uint16(37838), + 51: uint16(37824), + 52: uint16(37842), + 53: uint16(37863), + 54: uint16(38269), + 55: uint16(38362), + 56: uint16(38363), + 57: uint16(38625), + 58: uint16(38697), + 59: uint16(38699), + 60: uint16(38700), + 61: uint16(38696), + 62: uint16(38694), + 63: uint16(38835), + 64: uint16(38839), + 65: uint16(38838), + 66: uint16(38877), + 67: uint16(38878), + 68: uint16(38879), + 69: uint16(39004), + 70: uint16(39001), + 71: uint16(39005), + 72: uint16(38999), + 73: uint16(39103), + 74: uint16(39101), + 75: uint16(39099), + 76: uint16(39102), + 77: uint16(39240), + 78: uint16(39239), + 79: uint16(39235), + 80: uint16(39334), + 81: uint16(39335), + 82: uint16(39450), + 83: uint16(39445), + 84: uint16(39461), + 85: uint16(39453), + 86: uint16(39460), + 87: uint16(39451), + 88: uint16(39458), + 89: uint16(39456), + 90: uint16(39463), + 91: uint16(39459), + 92: uint16(39454), + 93: uint16(39452), + 94: uint16(39444), + 95: uint16(39618), + 96: uint16(39691), + 97: uint16(39690), + 98: uint16(39694), + 99: uint16(39692), + 100: uint16(39735), + 101: uint16(39914), + 102: uint16(39915), + 103: uint16(39904), + 104: uint16(39902), + 105: uint16(39908), + 106: uint16(39910), + 107: uint16(39906), + 108: uint16(39920), + 109: uint16(39892), + 110: uint16(39895), + 111: uint16(39916), + 112: uint16(39900), + 113: uint16(39897), + 114: uint16(39909), + 115: uint16(39893), + 116: uint16(39905), + 117: uint16(39898), + 118: uint16(40311), + 119: uint16(40321), + 120: uint16(40330), + 121: uint16(40324), + 122: uint16(40328), + 123: uint16(40305), + 124: uint16(40320), + 125: uint16(40312), + 126: uint16(40326), + 127: uint16(40331), + 128: uint16(40332), + 129: uint16(40317), + 130: uint16(40299), + 131: uint16(40308), + 132: uint16(40309), + 133: uint16(40304), + 134: uint16(40297), + 135: uint16(40325), + 136: uint16(40307), + 137: uint16(40315), + 138: uint16(40322), + 139: uint16(40303), + 140: uint16(40313), + 141: uint16(40319), + 142: uint16(40327), + 143: uint16(40296), + 144: uint16(40596), + 145: uint16(40593), + 146: uint16(40640), + 147: uint16(40700), + 148: uint16(40749), + 149: uint16(40768), + 150: uint16(40769), + 151: uint16(40781), + 152: uint16(40790), + 153: uint16(40791), + 154: uint16(40792), + 155: uint16(21303), + 156: uint16(22194), + }, + 83: { + 0: uint16(22197), + 1: uint16(22195), + 2: uint16(22755), + 3: uint16(23365), + 4: uint16(24006), + 5: uint16(24007), + 6: uint16(24302), + 7: uint16(24303), + 8: uint16(24512), + 9: uint16(24513), + 10: uint16(25081), + 11: uint16(25879), + 12: uint16(25878), + 13: uint16(25877), + 14: uint16(25875), + 15: uint16(26079), + 16: uint16(26344), + 17: uint16(26339), + 18: uint16(26340), + 19: uint16(27379), + 20: uint16(27376), + 21: uint16(27370), + 22: uint16(27368), + 23: uint16(27385), + 24: uint16(27377), + 25: uint16(27374), + 26: uint16(27375), + 27: uint16(28732), + 28: uint16(28725), + 29: uint16(28719), + 30: uint16(28727), + 31: uint16(28724), + 32: uint16(28721), + 33: uint16(28738), + 34: uint16(28728), + 35: uint16(28735), + 36: uint16(28730), + 37: uint16(28729), + 38: uint16(28736), + 39: uint16(28731), + 40: uint16(28723), + 41: uint16(28737), + 42: uint16(29203), + 43: uint16(29204), + 44: uint16(29352), + 45: uint16(29565), + 46: uint16(29564), + 47: uint16(29882), + 48: uint16(30379), + 49: uint16(30378), + 50: uint16(30398), + 51: uint16(30445), + 52: uint16(30668), + 53: uint16(30670), + 54: uint16(30671), + 55: uint16(30669), + 56: uint16(30706), + 57: uint16(31013), + 58: uint16(31011), + 59: uint16(31015), + 60: uint16(31016), + 61: uint16(31012), + 62: uint16(31017), + 63: uint16(31154), + 64: uint16(31342), + 65: uint16(31340), + 66: uint16(31341), + 67: uint16(31479), + 68: uint16(31817), + 69: uint16(31816), + 70: uint16(31818), + 71: uint16(31815), + 72: uint16(31813), + 73: uint16(31982), + 74: uint16(32379), + 75: uint16(32382), + 76: uint16(32385), + 77: uint16(32384), + 78: uint16(32698), + 79: uint16(32767), + 80: uint16(32889), + 81: uint16(33243), + 82: uint16(33241), + 83: uint16(33291), + 84: uint16(33384), + 85: uint16(33385), + 86: uint16(34338), + 87: uint16(34303), + 88: uint16(34305), + 89: uint16(34302), + 90: uint16(34331), + 91: uint16(34304), + 92: uint16(34294), + 93: uint16(34308), + 94: uint16(34313), + 95: uint16(34309), + 96: uint16(34316), + 97: uint16(34301), + 98: uint16(34841), + 99: uint16(34832), + 100: uint16(34833), + 101: uint16(34839), + 102: uint16(34835), + 103: uint16(34838), + 104: uint16(35171), + 105: uint16(35174), + 106: uint16(35257), + 107: uint16(35319), + 108: uint16(35680), + 109: uint16(35690), + 110: uint16(35677), + 111: uint16(35688), + 112: uint16(35683), + 113: uint16(35685), + 114: uint16(35687), + 115: uint16(35693), + 116: uint16(36270), + 117: uint16(36486), + 118: uint16(36488), + 119: uint16(36484), + 120: uint16(36697), + 121: uint16(36694), + 122: uint16(36695), + 123: uint16(36693), + 124: uint16(36696), + 125: uint16(36698), + 126: uint16(37005), + 127: uint16(37187), + 128: uint16(37185), + 129: uint16(37303), + 130: uint16(37301), + 131: uint16(37298), + 132: uint16(37299), + 133: uint16(37899), + 134: uint16(37907), + 135: uint16(37883), + 136: uint16(37920), + 137: uint16(37903), + 138: uint16(37908), + 139: uint16(37886), + 140: uint16(37909), + 141: uint16(37904), + 142: uint16(37928), + 143: uint16(37913), + 144: uint16(37901), + 145: uint16(37877), + 146: uint16(37888), + 147: uint16(37879), + 148: uint16(37895), + 149: uint16(37902), + 150: uint16(37910), + 151: uint16(37906), + 152: uint16(37882), + 153: uint16(37897), + 154: uint16(37880), + 155: uint16(37898), + 156: uint16(37887), + }, + 84: { + 0: uint16(37884), + 1: uint16(37900), + 2: uint16(37878), + 3: uint16(37905), + 4: uint16(37894), + 5: uint16(38366), + 6: uint16(38368), + 7: uint16(38367), + 8: uint16(38702), + 9: uint16(38703), + 10: uint16(38841), + 11: uint16(38843), + 12: uint16(38909), + 13: uint16(38910), + 14: uint16(39008), + 15: uint16(39010), + 16: uint16(39011), + 17: uint16(39007), + 18: uint16(39105), + 19: uint16(39106), + 20: uint16(39248), + 21: uint16(39246), + 22: uint16(39257), + 23: uint16(39244), + 24: uint16(39243), + 25: uint16(39251), + 26: uint16(39474), + 27: uint16(39476), + 28: uint16(39473), + 29: uint16(39468), + 30: uint16(39466), + 31: uint16(39478), + 32: uint16(39465), + 33: uint16(39470), + 34: uint16(39480), + 35: uint16(39469), + 36: uint16(39623), + 37: uint16(39626), + 38: uint16(39622), + 39: uint16(39696), + 40: uint16(39698), + 41: uint16(39697), + 42: uint16(39947), + 43: uint16(39944), + 44: uint16(39927), + 45: uint16(39941), + 46: uint16(39954), + 47: uint16(39928), + 48: uint16(40000), + 49: uint16(39943), + 50: uint16(39950), + 51: uint16(39942), + 52: uint16(39959), + 53: uint16(39956), + 54: uint16(39945), + 55: uint16(40351), + 56: uint16(40345), + 57: uint16(40356), + 58: uint16(40349), + 59: uint16(40338), + 60: uint16(40344), + 61: uint16(40336), + 62: uint16(40347), + 63: uint16(40352), + 64: uint16(40340), + 65: uint16(40348), + 66: uint16(40362), + 67: uint16(40343), + 68: uint16(40353), + 69: uint16(40346), + 70: uint16(40354), + 71: uint16(40360), + 72: uint16(40350), + 73: uint16(40355), + 74: uint16(40383), + 75: uint16(40361), + 76: uint16(40342), + 77: uint16(40358), + 78: uint16(40359), + 79: uint16(40601), + 80: uint16(40603), + 81: uint16(40602), + 82: uint16(40677), + 83: uint16(40676), + 84: uint16(40679), + 85: uint16(40678), + 86: uint16(40752), + 87: uint16(40750), + 88: uint16(40795), + 89: uint16(40800), + 90: uint16(40798), + 91: uint16(40797), + 92: uint16(40793), + 93: uint16(40849), + 94: uint16(20794), + 95: uint16(20793), + 96: uint16(21144), + 97: uint16(21143), + 98: uint16(22211), + 99: uint16(22205), + 100: uint16(22206), + 101: uint16(23368), + 102: uint16(23367), + 103: uint16(24011), + 104: uint16(24015), + 105: uint16(24305), + 106: uint16(25085), + 107: uint16(25883), + 108: uint16(27394), + 109: uint16(27388), + 110: uint16(27395), + 111: uint16(27384), + 112: uint16(27392), + 113: uint16(28739), + 114: uint16(28740), + 115: uint16(28746), + 116: uint16(28744), + 117: uint16(28745), + 118: uint16(28741), + 119: uint16(28742), + 120: uint16(29213), + 121: uint16(29210), + 122: uint16(29209), + 123: uint16(29566), + 124: uint16(29975), + 125: uint16(30314), + 126: uint16(30672), + 127: uint16(31021), + 128: uint16(31025), + 129: uint16(31023), + 130: uint16(31828), + 131: uint16(31827), + 132: uint16(31986), + 133: uint16(32394), + 134: uint16(32391), + 135: uint16(32392), + 136: uint16(32395), + 137: uint16(32390), + 138: uint16(32397), + 139: uint16(32589), + 140: uint16(32699), + 141: uint16(32816), + 142: uint16(33245), + 143: uint16(34328), + 144: uint16(34346), + 145: uint16(34342), + 146: uint16(34335), + 147: uint16(34339), + 148: uint16(34332), + 149: uint16(34329), + 150: uint16(34343), + 151: uint16(34350), + 152: uint16(34337), + 153: uint16(34336), + 154: uint16(34345), + 155: uint16(34334), + 156: uint16(34341), + }, + 85: { + 0: uint16(34857), + 1: uint16(34845), + 2: uint16(34843), + 3: uint16(34848), + 4: uint16(34852), + 5: uint16(34844), + 6: uint16(34859), + 7: uint16(34890), + 8: uint16(35181), + 9: uint16(35177), + 10: uint16(35182), + 11: uint16(35179), + 12: uint16(35322), + 13: uint16(35705), + 14: uint16(35704), + 15: uint16(35653), + 16: uint16(35706), + 17: uint16(35707), + 18: uint16(36112), + 19: uint16(36116), + 20: uint16(36271), + 21: uint16(36494), + 22: uint16(36492), + 23: uint16(36702), + 24: uint16(36699), + 25: uint16(36701), + 26: uint16(37190), + 27: uint16(37188), + 28: uint16(37189), + 29: uint16(37305), + 30: uint16(37951), + 31: uint16(37947), + 32: uint16(37942), + 33: uint16(37929), + 34: uint16(37949), + 35: uint16(37948), + 36: uint16(37936), + 37: uint16(37945), + 38: uint16(37930), + 39: uint16(37943), + 40: uint16(37932), + 41: uint16(37952), + 42: uint16(37937), + 43: uint16(38373), + 44: uint16(38372), + 45: uint16(38371), + 46: uint16(38709), + 47: uint16(38714), + 48: uint16(38847), + 49: uint16(38881), + 50: uint16(39012), + 51: uint16(39113), + 52: uint16(39110), + 53: uint16(39104), + 54: uint16(39256), + 55: uint16(39254), + 56: uint16(39481), + 57: uint16(39485), + 58: uint16(39494), + 59: uint16(39492), + 60: uint16(39490), + 61: uint16(39489), + 62: uint16(39482), + 63: uint16(39487), + 64: uint16(39629), + 65: uint16(39701), + 66: uint16(39703), + 67: uint16(39704), + 68: uint16(39702), + 69: uint16(39738), + 70: uint16(39762), + 71: uint16(39979), + 72: uint16(39965), + 73: uint16(39964), + 74: uint16(39980), + 75: uint16(39971), + 76: uint16(39976), + 77: uint16(39977), + 78: uint16(39972), + 79: uint16(39969), + 80: uint16(40375), + 81: uint16(40374), + 82: uint16(40380), + 83: uint16(40385), + 84: uint16(40391), + 85: uint16(40394), + 86: uint16(40399), + 87: uint16(40382), + 88: uint16(40389), + 89: uint16(40387), + 90: uint16(40379), + 91: uint16(40373), + 92: uint16(40398), + 93: uint16(40377), + 94: uint16(40378), + 95: uint16(40364), + 96: uint16(40392), + 97: uint16(40369), + 98: uint16(40365), + 99: uint16(40396), + 100: uint16(40371), + 101: uint16(40397), + 102: uint16(40370), + 103: uint16(40570), + 104: uint16(40604), + 105: uint16(40683), + 106: uint16(40686), + 107: uint16(40685), + 108: uint16(40731), + 109: uint16(40728), + 110: uint16(40730), + 111: uint16(40753), + 112: uint16(40782), + 113: uint16(40805), + 114: uint16(40804), + 115: uint16(40850), + 116: uint16(20153), + 117: uint16(22214), + 118: uint16(22213), + 119: uint16(22219), + 120: uint16(22897), + 121: uint16(23371), + 122: uint16(23372), + 123: uint16(24021), + 124: uint16(24017), + 125: uint16(24306), + 126: uint16(25889), + 127: uint16(25888), + 128: uint16(25894), + 129: uint16(25890), + 130: uint16(27403), + 131: uint16(27400), + 132: uint16(27401), + 133: uint16(27661), + 134: uint16(28757), + 135: uint16(28758), + 136: uint16(28759), + 137: uint16(28754), + 138: uint16(29214), + 139: uint16(29215), + 140: uint16(29353), + 141: uint16(29567), + 142: uint16(29912), + 143: uint16(29909), + 144: uint16(29913), + 145: uint16(29911), + 146: uint16(30317), + 147: uint16(30381), + 148: uint16(31029), + 149: uint16(31156), + 150: uint16(31344), + 151: uint16(31345), + 152: uint16(31831), + 153: uint16(31836), + 154: uint16(31833), + 155: uint16(31835), + 156: uint16(31834), + }, + 86: { + 0: uint16(31988), + 1: uint16(31985), + 2: uint16(32401), + 3: uint16(32591), + 4: uint16(32647), + 5: uint16(33246), + 6: uint16(33387), + 7: uint16(34356), + 8: uint16(34357), + 9: uint16(34355), + 10: uint16(34348), + 11: uint16(34354), + 12: uint16(34358), + 13: uint16(34860), + 14: uint16(34856), + 15: uint16(34854), + 16: uint16(34858), + 17: uint16(34853), + 18: uint16(35185), + 19: uint16(35263), + 20: uint16(35262), + 21: uint16(35323), + 22: uint16(35710), + 23: uint16(35716), + 24: uint16(35714), + 25: uint16(35718), + 26: uint16(35717), + 27: uint16(35711), + 28: uint16(36117), + 29: uint16(36501), + 30: uint16(36500), + 31: uint16(36506), + 32: uint16(36498), + 33: uint16(36496), + 34: uint16(36502), + 35: uint16(36503), + 36: uint16(36704), + 37: uint16(36706), + 38: uint16(37191), + 39: uint16(37964), + 40: uint16(37968), + 41: uint16(37962), + 42: uint16(37963), + 43: uint16(37967), + 44: uint16(37959), + 45: uint16(37957), + 46: uint16(37960), + 47: uint16(37961), + 48: uint16(37958), + 49: uint16(38719), + 50: uint16(38883), + 51: uint16(39018), + 52: uint16(39017), + 53: uint16(39115), + 54: uint16(39252), + 55: uint16(39259), + 56: uint16(39502), + 57: uint16(39507), + 58: uint16(39508), + 59: uint16(39500), + 60: uint16(39503), + 61: uint16(39496), + 62: uint16(39498), + 63: uint16(39497), + 64: uint16(39506), + 65: uint16(39504), + 66: uint16(39632), + 67: uint16(39705), + 68: uint16(39723), + 69: uint16(39739), + 70: uint16(39766), + 71: uint16(39765), + 72: uint16(40006), + 73: uint16(40008), + 74: uint16(39999), + 75: uint16(40004), + 76: uint16(39993), + 77: uint16(39987), + 78: uint16(40001), + 79: uint16(39996), + 80: uint16(39991), + 81: uint16(39988), + 82: uint16(39986), + 83: uint16(39997), + 84: uint16(39990), + 85: uint16(40411), + 86: uint16(40402), + 87: uint16(40414), + 88: uint16(40410), + 89: uint16(40395), + 90: uint16(40400), + 91: uint16(40412), + 92: uint16(40401), + 93: uint16(40415), + 94: uint16(40425), + 95: uint16(40409), + 96: uint16(40408), + 97: uint16(40406), + 98: uint16(40437), + 99: uint16(40405), + 100: uint16(40413), + 101: uint16(40630), + 102: uint16(40688), + 103: uint16(40757), + 104: uint16(40755), + 105: uint16(40754), + 106: uint16(40770), + 107: uint16(40811), + 108: uint16(40853), + 109: uint16(40866), + 110: uint16(20797), + 111: uint16(21145), + 112: uint16(22760), + 113: uint16(22759), + 114: uint16(22898), + 115: uint16(23373), + 116: uint16(24024), + 117: uint16(34863), + 118: uint16(24399), + 119: uint16(25089), + 120: uint16(25091), + 121: uint16(25092), + 122: uint16(25897), + 123: uint16(25893), + 124: uint16(26006), + 125: uint16(26347), + 126: uint16(27409), + 127: uint16(27410), + 128: uint16(27407), + 129: uint16(27594), + 130: uint16(28763), + 131: uint16(28762), + 132: uint16(29218), + 133: uint16(29570), + 134: uint16(29569), + 135: uint16(29571), + 136: uint16(30320), + 137: uint16(30676), + 138: uint16(31847), + 139: uint16(31846), + 140: uint16(32405), + 141: uint16(33388), + 142: uint16(34362), + 143: uint16(34368), + 144: uint16(34361), + 145: uint16(34364), + 146: uint16(34353), + 147: uint16(34363), + 148: uint16(34366), + 149: uint16(34864), + 150: uint16(34866), + 151: uint16(34862), + 152: uint16(34867), + 153: uint16(35190), + 154: uint16(35188), + 155: uint16(35187), + 156: uint16(35326), + }, + 87: { + 0: uint16(35724), + 1: uint16(35726), + 2: uint16(35723), + 3: uint16(35720), + 4: uint16(35909), + 5: uint16(36121), + 6: uint16(36504), + 7: uint16(36708), + 8: uint16(36707), + 9: uint16(37308), + 10: uint16(37986), + 11: uint16(37973), + 12: uint16(37981), + 13: uint16(37975), + 14: uint16(37982), + 15: uint16(38852), + 16: uint16(38853), + 17: uint16(38912), + 18: uint16(39510), + 19: uint16(39513), + 20: uint16(39710), + 21: uint16(39711), + 22: uint16(39712), + 23: uint16(40018), + 24: uint16(40024), + 25: uint16(40016), + 26: uint16(40010), + 27: uint16(40013), + 28: uint16(40011), + 29: uint16(40021), + 30: uint16(40025), + 31: uint16(40012), + 32: uint16(40014), + 33: uint16(40443), + 34: uint16(40439), + 35: uint16(40431), + 36: uint16(40419), + 37: uint16(40427), + 38: uint16(40440), + 39: uint16(40420), + 40: uint16(40438), + 41: uint16(40417), + 42: uint16(40430), + 43: uint16(40422), + 44: uint16(40434), + 45: uint16(40432), + 46: uint16(40418), + 47: uint16(40428), + 48: uint16(40436), + 49: uint16(40435), + 50: uint16(40424), + 51: uint16(40429), + 52: uint16(40642), + 53: uint16(40656), + 54: uint16(40690), + 55: uint16(40691), + 56: uint16(40710), + 57: uint16(40732), + 58: uint16(40760), + 59: uint16(40759), + 60: uint16(40758), + 61: uint16(40771), + 62: uint16(40783), + 63: uint16(40817), + 64: uint16(40816), + 65: uint16(40814), + 66: uint16(40815), + 67: uint16(22227), + 68: uint16(22221), + 69: uint16(23374), + 70: uint16(23661), + 71: uint16(25901), + 72: uint16(26349), + 73: uint16(26350), + 74: uint16(27411), + 75: uint16(28767), + 76: uint16(28769), + 77: uint16(28765), + 78: uint16(28768), + 79: uint16(29219), + 80: uint16(29915), + 81: uint16(29925), + 82: uint16(30677), + 83: uint16(31032), + 84: uint16(31159), + 85: uint16(31158), + 86: uint16(31850), + 87: uint16(32407), + 88: uint16(32649), + 89: uint16(33389), + 90: uint16(34371), + 91: uint16(34872), + 92: uint16(34871), + 93: uint16(34869), + 94: uint16(34891), + 95: uint16(35732), + 96: uint16(35733), + 97: uint16(36510), + 98: uint16(36511), + 99: uint16(36512), + 100: uint16(36509), + 101: uint16(37310), + 102: uint16(37309), + 103: uint16(37314), + 104: uint16(37995), + 105: uint16(37992), + 106: uint16(37993), + 107: uint16(38629), + 108: uint16(38726), + 109: uint16(38723), + 110: uint16(38727), + 111: uint16(38855), + 112: uint16(38885), + 113: uint16(39518), + 114: uint16(39637), + 115: uint16(39769), + 116: uint16(40035), + 117: uint16(40039), + 118: uint16(40038), + 119: uint16(40034), + 120: uint16(40030), + 121: uint16(40032), + 122: uint16(40450), + 123: uint16(40446), + 124: uint16(40455), + 125: uint16(40451), + 126: uint16(40454), + 127: uint16(40453), + 128: uint16(40448), + 129: uint16(40449), + 130: uint16(40457), + 131: uint16(40447), + 132: uint16(40445), + 133: uint16(40452), + 134: uint16(40608), + 135: uint16(40734), + 136: uint16(40774), + 137: uint16(40820), + 138: uint16(40821), + 139: uint16(40822), + 140: uint16(22228), + 141: uint16(25902), + 142: uint16(26040), + 143: uint16(27416), + 144: uint16(27417), + 145: uint16(27415), + 146: uint16(27418), + 147: uint16(28770), + 148: uint16(29222), + 149: uint16(29354), + 150: uint16(30680), + 151: uint16(30681), + 152: uint16(31033), + 153: uint16(31849), + 154: uint16(31851), + 155: uint16(31990), + 156: uint16(32410), + }, + 88: { + 0: uint16(32408), + 1: uint16(32411), + 2: uint16(32409), + 3: uint16(33248), + 4: uint16(33249), + 5: uint16(34374), + 6: uint16(34375), + 7: uint16(34376), + 8: uint16(35193), + 9: uint16(35194), + 10: uint16(35196), + 11: uint16(35195), + 12: uint16(35327), + 13: uint16(35736), + 14: uint16(35737), + 15: uint16(36517), + 16: uint16(36516), + 17: uint16(36515), + 18: uint16(37998), + 19: uint16(37997), + 20: uint16(37999), + 21: uint16(38001), + 22: uint16(38003), + 23: uint16(38729), + 24: uint16(39026), + 25: uint16(39263), + 26: uint16(40040), + 27: uint16(40046), + 28: uint16(40045), + 29: uint16(40459), + 30: uint16(40461), + 31: uint16(40464), + 32: uint16(40463), + 33: uint16(40466), + 34: uint16(40465), + 35: uint16(40609), + 36: uint16(40693), + 37: uint16(40713), + 38: uint16(40775), + 39: uint16(40824), + 40: uint16(40827), + 41: uint16(40826), + 42: uint16(40825), + 43: uint16(22302), + 44: uint16(28774), + 45: uint16(31855), + 46: uint16(34876), + 47: uint16(36274), + 48: uint16(36518), + 49: uint16(37315), + 50: uint16(38004), + 51: uint16(38008), + 52: uint16(38006), + 53: uint16(38005), + 54: uint16(39520), + 55: uint16(40052), + 56: uint16(40051), + 57: uint16(40049), + 58: uint16(40053), + 59: uint16(40468), + 60: uint16(40467), + 61: uint16(40694), + 62: uint16(40714), + 63: uint16(40868), + 64: uint16(28776), + 65: uint16(28773), + 66: uint16(31991), + 67: uint16(34410), + 68: uint16(34878), + 69: uint16(34877), + 70: uint16(34879), + 71: uint16(35742), + 72: uint16(35996), + 73: uint16(36521), + 74: uint16(36553), + 75: uint16(38731), + 76: uint16(39027), + 77: uint16(39028), + 78: uint16(39116), + 79: uint16(39265), + 80: uint16(39339), + 81: uint16(39524), + 82: uint16(39526), + 83: uint16(39527), + 84: uint16(39716), + 85: uint16(40469), + 86: uint16(40471), + 87: uint16(40776), + 88: uint16(25095), + 89: uint16(27422), + 90: uint16(29223), + 91: uint16(34380), + 92: uint16(36520), + 93: uint16(38018), + 94: uint16(38016), + 95: uint16(38017), + 96: uint16(39529), + 97: uint16(39528), + 98: uint16(39726), + 99: uint16(40473), + 100: uint16(29225), + 101: uint16(34379), + 102: uint16(35743), + 103: uint16(38019), + 104: uint16(40057), + 105: uint16(40631), + 106: uint16(30325), + 107: uint16(39531), + 108: uint16(40058), + 109: uint16(40477), + 110: uint16(28777), + 111: uint16(28778), + 112: uint16(40612), + 113: uint16(40830), + 114: uint16(40777), + 115: uint16(40856), + 116: uint16(30849), + 117: uint16(37561), + 118: uint16(35023), + 119: uint16(22715), + 120: uint16(24658), + 121: uint16(31911), + 122: uint16(23290), + 123: uint16(9556), + 124: uint16(9574), + 125: uint16(9559), + 126: uint16(9568), + 127: uint16(9580), + 128: uint16(9571), + 129: uint16(9562), + 130: uint16(9577), + 131: uint16(9565), + 132: uint16(9554), + 133: uint16(9572), + 134: uint16(9557), + 135: uint16(9566), + 136: uint16(9578), + 137: uint16(9569), + 138: uint16(9560), + 139: uint16(9575), + 140: uint16(9563), + 141: uint16(9555), + 142: uint16(9573), + 143: uint16(9558), + 144: uint16(9567), + 145: uint16(9579), + 146: uint16(9570), + 147: uint16(9561), + 148: uint16(9576), + 149: uint16(9564), + 150: uint16(9553), + 151: uint16(9552), + 152: uint16(9581), + 153: uint16(9582), + 154: uint16(9584), + 155: uint16(9583), + 156: uint16(9619), + }, +} + +var _hkscs = [5172]uint16{ + 0: uint16(17392), + 1: uint16(19506), + 2: uint16(17923), + 3: uint16(17830), + 4: uint16(17784), + 5: uint16(29287), + 6: uint16(19831), + 7: uint16(17843), + 8: uint16(31921), + 9: uint16(19682), + 10: uint16(31941), + 11: uint16(15253), + 12: uint16(18230), + 13: uint16(18244), + 14: uint16(19527), + 15: uint16(19520), + 16: uint16(17087), + 17: uint16(13847), + 18: uint16(29522), + 19: uint16(28299), + 20: uint16(28882), + 21: uint16(19543), + 22: uint16(41809), + 23: uint16(18255), + 24: uint16(17882), + 25: uint16(19589), + 26: uint16(31852), + 27: uint16(19719), + 28: uint16(19108), + 29: uint16(18081), + 30: uint16(27427), + 31: uint16(29221), + 32: uint16(23124), + 33: uint16(6755), + 34: uint16(15878), + 35: uint16(16225), + 36: uint16(26189), + 37: uint16(22267), + 39: uint16(32149), + 40: uint16(22813), + 41: uint16(35769), + 42: uint16(15860), + 43: uint16(38708), + 44: uint16(31727), + 45: uint16(23515), + 46: uint16(7518), + 47: uint16(23204), + 48: uint16(13861), + 49: uint16(40624), + 50: uint16(23249), + 51: uint16(23479), + 52: uint16(23804), + 53: uint16(26478), + 54: uint16(34195), + 55: uint16(39237), + 56: uint16(29793), + 57: uint16(29853), + 58: uint16(14453), + 59: uint16(7507), + 60: uint16(13982), + 61: uint16(24609), + 62: uint16(16108), + 63: uint16(22750), + 64: uint16(15093), + 65: uint16(31484), + 66: uint16(40855), + 67: uint16(16737), + 68: uint16(35085), + 69: uint16(12778), + 70: uint16(2698), + 71: uint16(12894), + 72: uint16(17162), + 73: uint16(33924), + 74: uint16(40854), + 75: uint16(37935), + 76: uint16(18736), + 77: uint16(34323), + 78: uint16(22678), + 79: uint16(38730), + 80: uint16(37400), + 81: uint16(31184), + 82: uint16(31282), + 83: uint16(26208), + 84: uint16(27177), + 85: uint16(34973), + 86: uint16(29772), + 87: uint16(31685), + 88: uint16(26498), + 89: uint16(31276), + 90: uint16(21071), + 91: uint16(36934), + 92: uint16(13542), + 93: uint16(29636), + 94: uint16(23993), + 95: uint16(29894), + 96: uint16(40903), + 97: uint16(22451), + 98: uint16(18735), + 99: uint16(21580), + 100: uint16(16689), + 101: uint16(13966), + 102: uint16(22552), + 103: uint16(31346), + 104: uint16(31589), + 105: uint16(35727), + 106: uint16(18094), + 107: uint16(28296), + 108: uint16(16769), + 109: uint16(23961), + 110: uint16(31662), + 111: uint16(9404), + 112: uint16(40904), + 113: uint16(9409), + 114: uint16(9417), + 115: uint16(9420), + 116: uint16(40905), + 117: uint16(34052), + 118: uint16(13755), + 119: uint16(16564), + 120: uint16(40906), + 121: uint16(17633), + 122: uint16(44543), + 123: uint16(25281), + 124: uint16(28782), + 125: uint16(40907), + 157: uint16(12736), + 158: uint16(12737), + 159: uint16(12738), + 160: uint16(12739), + 161: uint16(12740), + 162: uint16(268), + 163: uint16(12741), + 164: uint16(209), + 165: uint16(205), + 166: uint16(12742), + 167: uint16(12743), + 168: uint16(203), + 169: uint16(8168), + 170: uint16(12744), + 171: uint16(202), + 172: uint16(12745), + 173: uint16(12746), + 174: uint16(12747), + 175: uint16(12748), + 176: uint16(270), + 177: uint16(12749), + 178: uint16(12750), + 179: uint16(256), + 180: uint16(193), + 181: uint16(461), + 182: uint16(192), + 183: uint16(274), + 184: uint16(201), + 185: uint16(282), + 186: uint16(200), + 187: uint16(332), + 188: uint16(211), + 189: uint16(465), + 190: uint16(210), + 191: uint16(56320), + 192: uint16(7870), + 193: uint16(56324), + 194: uint16(7872), + 195: uint16(202), + 196: uint16(257), + 197: uint16(225), + 198: uint16(462), + 199: uint16(224), + 200: uint16(593), + 201: uint16(275), + 202: uint16(233), + 203: uint16(283), + 204: uint16(232), + 205: uint16(299), + 206: uint16(237), + 207: uint16(464), + 208: uint16(236), + 209: uint16(333), + 210: uint16(243), + 211: uint16(466), + 212: uint16(242), + 213: uint16(363), + 214: uint16(250), + 215: uint16(468), + 216: uint16(249), + 217: uint16(470), + 218: uint16(472), + 219: uint16(474), + 220: uint16(476), + 221: uint16(252), + 222: uint16(56328), + 223: uint16(7871), + 224: uint16(56332), + 225: uint16(7873), + 226: uint16(234), + 227: uint16(609), + 228: uint16(9178), + 229: uint16(9179), + 314: uint16(41897), + 315: uint16(4421), + 317: uint16(25866), + 320: uint16(20029), + 321: uint16(28381), + 322: uint16(40270), + 323: uint16(37343), + 326: uint16(30517), + 327: uint16(25745), + 328: uint16(20250), + 329: uint16(20264), + 330: uint16(20392), + 331: uint16(20822), + 332: uint16(20852), + 333: uint16(20892), + 334: uint16(20964), + 335: uint16(21153), + 336: uint16(21160), + 337: uint16(21307), + 338: uint16(21326), + 339: uint16(21457), + 340: uint16(21464), + 341: uint16(22242), + 342: uint16(22768), + 343: uint16(22788), + 344: uint16(22791), + 345: uint16(22834), + 346: uint16(22836), + 347: uint16(23398), + 348: uint16(23454), + 349: uint16(23455), + 350: uint16(23706), + 351: uint16(24198), + 352: uint16(24635), + 353: uint16(25993), + 354: uint16(26622), + 355: uint16(26628), + 356: uint16(26725), + 357: uint16(27982), + 358: uint16(28860), + 359: uint16(30005), + 360: uint16(32420), + 361: uint16(32428), + 362: uint16(32442), + 363: uint16(32455), + 364: uint16(32463), + 365: uint16(32479), + 366: uint16(32518), + 367: uint16(32567), + 368: uint16(33402), + 369: uint16(33487), + 370: uint16(33647), + 371: uint16(35270), + 372: uint16(35774), + 373: uint16(35810), + 374: uint16(36710), + 375: uint16(36711), + 376: uint16(36718), + 377: uint16(29713), + 378: uint16(31996), + 379: uint16(32205), + 380: uint16(26950), + 381: uint16(31433), + 382: uint16(21031), + 387: uint16(37260), + 388: uint16(30904), + 389: uint16(37214), + 390: uint16(32956), + 392: uint16(36107), + 393: uint16(33014), + 394: uint16(2535), + 397: uint16(32927), + 398: uint16(40647), + 399: uint16(19661), + 400: uint16(40393), + 401: uint16(40460), + 402: uint16(19518), + 403: uint16(40438), + 404: uint16(28686), + 405: uint16(40458), + 406: uint16(41267), + 407: uint16(13761), + 409: uint16(28314), + 410: uint16(33342), + 411: uint16(29977), + 413: uint16(18705), + 414: uint16(39532), + 415: uint16(39567), + 416: uint16(40857), + 417: uint16(31111), + 418: uint16(33900), + 419: uint16(7626), + 420: uint16(1488), + 421: uint16(10982), + 422: uint16(20004), + 423: uint16(20097), + 424: uint16(20096), + 425: uint16(20103), + 426: uint16(20159), + 427: uint16(20203), + 428: uint16(20279), + 429: uint16(13388), + 430: uint16(20413), + 431: uint16(15944), + 432: uint16(20483), + 433: uint16(20616), + 434: uint16(13437), + 435: uint16(13459), + 436: uint16(13477), + 437: uint16(20870), + 438: uint16(22789), + 439: uint16(20955), + 440: uint16(20988), + 441: uint16(20997), + 442: uint16(20105), + 443: uint16(21113), + 444: uint16(21136), + 445: uint16(21287), + 446: uint16(13767), + 447: uint16(21417), + 448: uint16(13649), + 449: uint16(21424), + 450: uint16(13651), + 451: uint16(21442), + 452: uint16(21539), + 453: uint16(13677), + 454: uint16(13682), + 455: uint16(13953), + 456: uint16(21651), + 457: uint16(21667), + 458: uint16(21684), + 459: uint16(21689), + 460: uint16(21712), + 461: uint16(21743), + 462: uint16(21784), + 463: uint16(21795), + 464: uint16(21800), + 465: uint16(13720), + 466: uint16(21823), + 467: uint16(13733), + 468: uint16(13759), + 469: uint16(21975), + 470: uint16(13765), + 471: uint16(32132), + 472: uint16(21797), + 474: uint16(3138), + 475: uint16(3349), + 476: uint16(20779), + 477: uint16(21904), + 478: uint16(11462), + 479: uint16(14828), + 480: uint16(833), + 481: uint16(36422), + 482: uint16(19896), + 483: uint16(38117), + 484: uint16(16467), + 485: uint16(32958), + 486: uint16(30586), + 487: uint16(11320), + 488: uint16(14900), + 489: uint16(18389), + 490: uint16(33117), + 491: uint16(27122), + 492: uint16(19946), + 493: uint16(25821), + 494: uint16(3452), + 495: uint16(4020), + 496: uint16(3285), + 497: uint16(4340), + 498: uint16(25741), + 499: uint16(36478), + 500: uint16(3734), + 501: uint16(3083), + 502: uint16(3940), + 503: uint16(11433), + 504: uint16(33366), + 505: uint16(17619), + 507: uint16(3398), + 508: uint16(39501), + 509: uint16(33001), + 510: uint16(18420), + 511: uint16(20135), + 512: uint16(11458), + 513: uint16(39602), + 514: uint16(14951), + 515: uint16(38388), + 516: uint16(16365), + 517: uint16(13574), + 518: uint16(21191), + 519: uint16(38868), + 520: uint16(30920), + 521: uint16(11588), + 522: uint16(40302), + 523: uint16(38933), + 525: uint16(17369), + 526: uint16(24741), + 527: uint16(25780), + 528: uint16(21731), + 529: uint16(11596), + 530: uint16(11210), + 531: uint16(4215), + 532: uint16(14843), + 533: uint16(4207), + 534: uint16(26330), + 535: uint16(26390), + 536: uint16(31136), + 537: uint16(25834), + 538: uint16(20562), + 539: uint16(3139), + 540: uint16(36456), + 541: uint16(8609), + 542: uint16(35660), + 543: uint16(1841), + 545: uint16(18443), + 546: uint16(425), + 547: uint16(16378), + 548: uint16(22643), + 549: uint16(11661), + 551: uint16(17864), + 552: uint16(1276), + 553: uint16(24727), + 554: uint16(3916), + 555: uint16(3478), + 556: uint16(21881), + 557: uint16(16571), + 558: uint16(17338), + 560: uint16(19124), + 561: uint16(10854), + 562: uint16(4253), + 563: uint16(33194), + 564: uint16(39157), + 565: uint16(3484), + 566: uint16(25465), + 567: uint16(14846), + 568: uint16(10101), + 569: uint16(36288), + 570: uint16(22177), + 571: uint16(25724), + 572: uint16(15939), + 574: uint16(42497), + 575: uint16(3593), + 576: uint16(10959), + 577: uint16(11465), + 579: uint16(4296), + 580: uint16(14786), + 581: uint16(14738), + 582: uint16(14854), + 583: uint16(33435), + 584: uint16(13688), + 585: uint16(24137), + 586: uint16(8391), + 587: uint16(22098), + 588: uint16(3889), + 589: uint16(11442), + 590: uint16(38688), + 591: uint16(13500), + 592: uint16(27709), + 593: uint16(20027), + 596: uint16(30068), + 597: uint16(11915), + 598: uint16(8712), + 599: uint16(42587), + 600: uint16(36045), + 601: uint16(3706), + 602: uint16(3124), + 603: uint16(26652), + 604: uint16(32659), + 605: uint16(4303), + 606: uint16(10243), + 607: uint16(10553), + 608: uint16(13819), + 609: uint16(20963), + 610: uint16(3724), + 611: uint16(3981), + 612: uint16(3754), + 613: uint16(16275), + 614: uint16(3888), + 615: uint16(3399), + 616: uint16(4431), + 617: uint16(3660), + 619: uint16(3755), + 620: uint16(2985), + 621: uint16(3400), + 622: uint16(4288), + 623: uint16(4413), + 624: uint16(16377), + 625: uint16(9878), + 626: uint16(25650), + 627: uint16(4013), + 628: uint16(13300), + 629: uint16(30265), + 630: uint16(11214), + 631: uint16(3454), + 632: uint16(3455), + 633: uint16(11345), + 634: uint16(11349), + 635: uint16(14872), + 636: uint16(3736), + 637: uint16(4295), + 638: uint16(3886), + 639: uint16(42546), + 640: uint16(27472), + 641: uint16(36050), + 642: uint16(36249), + 643: uint16(36042), + 644: uint16(38314), + 645: uint16(21708), + 646: uint16(33476), + 647: uint16(21945), + 649: uint16(40643), + 650: uint16(39974), + 651: uint16(39606), + 652: uint16(30558), + 653: uint16(11758), + 654: uint16(28992), + 655: uint16(33133), + 656: uint16(33004), + 657: uint16(23580), + 658: uint16(25970), + 659: uint16(33076), + 660: uint16(14231), + 661: uint16(21343), + 662: uint16(32957), + 663: uint16(37302), + 664: uint16(3834), + 665: uint16(3599), + 666: uint16(3703), + 667: uint16(3835), + 668: uint16(13789), + 669: uint16(19947), + 670: uint16(13833), + 671: uint16(3286), + 672: uint16(22191), + 673: uint16(10165), + 674: uint16(4297), + 675: uint16(3600), + 676: uint16(3704), + 677: uint16(4216), + 678: uint16(4424), + 679: uint16(33287), + 680: uint16(5205), + 681: uint16(3705), + 682: uint16(20048), + 683: uint16(11684), + 684: uint16(23124), + 685: uint16(4125), + 686: uint16(4126), + 687: uint16(4341), + 688: uint16(4342), + 689: uint16(22428), + 690: uint16(3601), + 691: uint16(30356), + 692: uint16(33485), + 693: uint16(4021), + 694: uint16(3707), + 695: uint16(20862), + 696: uint16(14083), + 697: uint16(4022), + 698: uint16(4480), + 699: uint16(21208), + 700: uint16(41661), + 701: uint16(18906), + 702: uint16(6202), + 703: uint16(16759), + 704: uint16(33404), + 705: uint16(22681), + 706: uint16(21096), + 707: uint16(13850), + 708: uint16(22333), + 709: uint16(31666), + 710: uint16(23400), + 711: uint16(18432), + 712: uint16(19244), + 713: uint16(40743), + 714: uint16(18919), + 715: uint16(39967), + 716: uint16(39821), + 717: uint16(23412), + 718: uint16(12605), + 719: uint16(22011), + 720: uint16(13810), + 721: uint16(22153), + 722: uint16(20008), + 723: uint16(22786), + 724: uint16(7105), + 725: uint16(63608), + 726: uint16(38737), + 727: uint16(134), + 728: uint16(20059), + 729: uint16(20155), + 730: uint16(13630), + 731: uint16(23587), + 732: uint16(24401), + 733: uint16(24516), + 734: uint16(14586), + 735: uint16(25164), + 736: uint16(25909), + 737: uint16(27514), + 738: uint16(27701), + 739: uint16(27706), + 740: uint16(28780), + 741: uint16(29227), + 742: uint16(20012), + 743: uint16(29357), + 744: uint16(18665), + 745: uint16(32594), + 746: uint16(31035), + 747: uint16(31993), + 748: uint16(32595), + 749: uint16(25194), + 750: uint16(13505), + 752: uint16(25419), + 753: uint16(32770), + 754: uint16(32896), + 755: uint16(26130), + 756: uint16(26961), + 757: uint16(21341), + 758: uint16(34916), + 759: uint16(35265), + 760: uint16(30898), + 761: uint16(35744), + 762: uint16(36125), + 763: uint16(38021), + 764: uint16(38264), + 765: uint16(38271), + 766: uint16(38376), + 767: uint16(36367), + 768: uint16(38886), + 769: uint16(39029), + 770: uint16(39118), + 771: uint16(39134), + 772: uint16(39267), + 773: uint16(38928), + 774: uint16(40060), + 775: uint16(40479), + 776: uint16(40644), + 777: uint16(27503), + 778: uint16(63751), + 779: uint16(20023), + 780: uint16(135), + 781: uint16(38429), + 782: uint16(25143), + 783: uint16(38050), + 785: uint16(20539), + 786: uint16(28158), + 787: uint16(40051), + 788: uint16(40870), + 789: uint16(15817), + 790: uint16(34959), + 791: uint16(16718), + 792: uint16(28791), + 793: uint16(23797), + 794: uint16(19232), + 795: uint16(20941), + 796: uint16(13657), + 797: uint16(23856), + 798: uint16(24866), + 799: uint16(35378), + 800: uint16(36775), + 801: uint16(37366), + 802: uint16(29073), + 803: uint16(26393), + 804: uint16(29626), + 805: uint16(12929), + 806: uint16(41223), + 807: uint16(15499), + 808: uint16(6528), + 809: uint16(19216), + 810: uint16(30948), + 811: uint16(29698), + 812: uint16(20910), + 813: uint16(34575), + 814: uint16(16393), + 815: uint16(27235), + 816: uint16(41658), + 817: uint16(16931), + 818: uint16(34319), + 819: uint16(2671), + 820: uint16(31274), + 821: uint16(39239), + 822: uint16(35562), + 823: uint16(38741), + 824: uint16(28749), + 825: uint16(21284), + 826: uint16(8318), + 827: uint16(37876), + 828: uint16(30425), + 829: uint16(35299), + 830: uint16(40871), + 831: uint16(30685), + 832: uint16(20131), + 833: uint16(20464), + 834: uint16(20668), + 835: uint16(20015), + 836: uint16(20247), + 837: uint16(40872), + 838: uint16(21556), + 839: uint16(32139), + 840: uint16(22674), + 841: uint16(22736), + 842: uint16(7606), + 843: uint16(24210), + 844: uint16(24217), + 845: uint16(24514), + 846: uint16(10002), + 847: uint16(25995), + 848: uint16(13305), + 849: uint16(26905), + 850: uint16(27203), + 851: uint16(15459), + 852: uint16(27903), + 854: uint16(29184), + 855: uint16(17669), + 856: uint16(29580), + 857: uint16(16091), + 858: uint16(18963), + 859: uint16(23317), + 860: uint16(29881), + 861: uint16(35715), + 862: uint16(23716), + 863: uint16(22165), + 864: uint16(31379), + 865: uint16(31724), + 866: uint16(31939), + 867: uint16(32364), + 868: uint16(33528), + 869: uint16(34199), + 870: uint16(40873), + 871: uint16(34960), + 872: uint16(40874), + 873: uint16(36537), + 874: uint16(40875), + 875: uint16(36815), + 876: uint16(34143), + 877: uint16(39392), + 878: uint16(37409), + 879: uint16(40876), + 880: uint16(36281), + 881: uint16(5183), + 882: uint16(16497), + 883: uint16(17058), + 884: uint16(23066), + 888: uint16(39016), + 889: uint16(26475), + 890: uint16(17014), + 891: uint16(22333), + 893: uint16(34262), + 894: uint16(18811), + 895: uint16(33471), + 896: uint16(28941), + 897: uint16(19585), + 898: uint16(28020), + 899: uint16(23931), + 900: uint16(27413), + 901: uint16(28606), + 902: uint16(40877), + 903: uint16(40878), + 904: uint16(23446), + 905: uint16(40879), + 906: uint16(26343), + 907: uint16(32347), + 908: uint16(28247), + 909: uint16(31178), + 910: uint16(15752), + 911: uint16(17603), + 912: uint16(12886), + 913: uint16(10134), + 914: uint16(17306), + 915: uint16(17718), + 917: uint16(23765), + 918: uint16(15130), + 919: uint16(35577), + 920: uint16(23672), + 921: uint16(15634), + 922: uint16(13649), + 923: uint16(23928), + 924: uint16(40882), + 925: uint16(29015), + 926: uint16(17752), + 927: uint16(16620), + 928: uint16(7715), + 929: uint16(19575), + 930: uint16(14712), + 931: uint16(13386), + 932: uint16(420), + 933: uint16(27713), + 934: uint16(35532), + 935: uint16(20404), + 936: uint16(569), + 937: uint16(22975), + 938: uint16(33132), + 939: uint16(38998), + 940: uint16(39162), + 941: uint16(24379), + 942: uint16(2975), + 944: uint16(8641), + 945: uint16(35181), + 946: uint16(16642), + 947: uint16(18107), + 948: uint16(36985), + 949: uint16(16135), + 950: uint16(40883), + 951: uint16(41397), + 952: uint16(16632), + 953: uint16(14294), + 954: uint16(18167), + 955: uint16(27718), + 956: uint16(16764), + 957: uint16(34482), + 958: uint16(29695), + 959: uint16(17773), + 960: uint16(14548), + 961: uint16(21658), + 962: uint16(17761), + 963: uint16(17691), + 964: uint16(19849), + 965: uint16(19579), + 966: uint16(19830), + 967: uint16(17898), + 968: uint16(16328), + 969: uint16(19215), + 970: uint16(13921), + 971: uint16(17630), + 972: uint16(17597), + 973: uint16(16877), + 974: uint16(23870), + 975: uint16(23880), + 976: uint16(23894), + 977: uint16(15868), + 978: uint16(14351), + 979: uint16(23972), + 980: uint16(23993), + 981: uint16(14368), + 982: uint16(14392), + 983: uint16(24130), + 984: uint16(24253), + 985: uint16(24357), + 986: uint16(24451), + 987: uint16(14600), + 988: uint16(14612), + 989: uint16(14655), + 990: uint16(14669), + 991: uint16(24791), + 992: uint16(24893), + 993: uint16(23781), + 994: uint16(14729), + 995: uint16(25015), + 996: uint16(25017), + 997: uint16(25039), + 998: uint16(14776), + 999: uint16(25132), + 1000: uint16(25232), + 1001: uint16(25317), + 1002: uint16(25368), + 1003: uint16(14840), + 1004: uint16(22193), + 1005: uint16(14851), + 1006: uint16(25570), + 1007: uint16(25595), + 1008: uint16(25607), + 1009: uint16(25690), + 1010: uint16(14923), + 1011: uint16(25792), + 1012: uint16(23829), + 1013: uint16(22049), + 1014: uint16(40863), + 1015: uint16(14999), + 1016: uint16(25990), + 1017: uint16(15037), + 1018: uint16(26111), + 1019: uint16(26195), + 1020: uint16(15090), + 1021: uint16(26258), + 1022: uint16(15138), + 1023: uint16(26390), + 1024: uint16(15170), + 1025: uint16(26532), + 1026: uint16(26624), + 1027: uint16(15192), + 1028: uint16(26698), + 1029: uint16(26756), + 1030: uint16(15218), + 1031: uint16(15217), + 1032: uint16(15227), + 1033: uint16(26889), + 1034: uint16(26947), + 1035: uint16(29276), + 1036: uint16(26980), + 1037: uint16(27039), + 1038: uint16(27013), + 1039: uint16(15292), + 1040: uint16(27094), + 1041: uint16(15325), + 1042: uint16(27237), + 1043: uint16(27252), + 1044: uint16(27249), + 1045: uint16(27266), + 1046: uint16(15340), + 1047: uint16(27289), + 1048: uint16(15346), + 1049: uint16(27307), + 1050: uint16(27317), + 1051: uint16(27348), + 1052: uint16(27382), + 1053: uint16(27521), + 1054: uint16(27585), + 1055: uint16(27626), + 1056: uint16(27765), + 1057: uint16(27818), + 1058: uint16(15563), + 1059: uint16(27906), + 1060: uint16(27910), + 1061: uint16(27942), + 1062: uint16(28033), + 1063: uint16(15599), + 1064: uint16(28068), + 1065: uint16(28081), + 1066: uint16(28181), + 1067: uint16(28184), + 1068: uint16(28201), + 1069: uint16(28294), + 1070: uint16(35264), + 1071: uint16(28347), + 1072: uint16(28386), + 1073: uint16(28378), + 1074: uint16(40831), + 1075: uint16(28392), + 1076: uint16(28393), + 1077: uint16(28452), + 1078: uint16(28468), + 1079: uint16(15686), + 1080: uint16(16193), + 1081: uint16(28545), + 1082: uint16(28606), + 1083: uint16(15722), + 1084: uint16(15733), + 1085: uint16(29111), + 1086: uint16(23705), + 1087: uint16(15754), + 1088: uint16(28716), + 1089: uint16(15761), + 1090: uint16(28752), + 1091: uint16(28756), + 1092: uint16(28783), + 1093: uint16(28799), + 1094: uint16(28809), + 1095: uint16(805), + 1096: uint16(17345), + 1097: uint16(13809), + 1098: uint16(3800), + 1099: uint16(16087), + 1100: uint16(22462), + 1101: uint16(28371), + 1102: uint16(28990), + 1103: uint16(22496), + 1104: uint16(13902), + 1105: uint16(27042), + 1106: uint16(35817), + 1107: uint16(23412), + 1108: uint16(31305), + 1109: uint16(22753), + 1110: uint16(38105), + 1111: uint16(31333), + 1112: uint16(31357), + 1113: uint16(22956), + 1114: uint16(31419), + 1115: uint16(31408), + 1116: uint16(31426), + 1117: uint16(31427), + 1118: uint16(29137), + 1119: uint16(25741), + 1120: uint16(16842), + 1121: uint16(31450), + 1122: uint16(31453), + 1123: uint16(31466), + 1124: uint16(16879), + 1125: uint16(21682), + 1126: uint16(23553), + 1127: uint16(31499), + 1128: uint16(31573), + 1129: uint16(31529), + 1130: uint16(21262), + 1131: uint16(23806), + 1132: uint16(31650), + 1133: uint16(31599), + 1134: uint16(33692), + 1135: uint16(23476), + 1136: uint16(27775), + 1137: uint16(31696), + 1138: uint16(33825), + 1139: uint16(31634), + 1141: uint16(23840), + 1142: uint16(15789), + 1143: uint16(23653), + 1144: uint16(33938), + 1145: uint16(31738), + 1147: uint16(31797), + 1148: uint16(23745), + 1149: uint16(31812), + 1150: uint16(31875), + 1151: uint16(18562), + 1152: uint16(31910), + 1153: uint16(26237), + 1154: uint16(17784), + 1155: uint16(31945), + 1156: uint16(31943), + 1157: uint16(31974), + 1158: uint16(31860), + 1159: uint16(31987), + 1160: uint16(31989), + 1162: uint16(32359), + 1163: uint16(17693), + 1164: uint16(28228), + 1165: uint16(32093), + 1166: uint16(28374), + 1167: uint16(29837), + 1168: uint16(32137), + 1169: uint16(32171), + 1170: uint16(28981), + 1171: uint16(32179), + 1173: uint16(16471), + 1174: uint16(24617), + 1175: uint16(32228), + 1176: uint16(15635), + 1177: uint16(32245), + 1178: uint16(6137), + 1179: uint16(32229), + 1180: uint16(33645), + 1182: uint16(24865), + 1183: uint16(24922), + 1184: uint16(32366), + 1185: uint16(32402), + 1186: uint16(17195), + 1187: uint16(37996), + 1188: uint16(32295), + 1189: uint16(32576), + 1190: uint16(32577), + 1191: uint16(32583), + 1192: uint16(31030), + 1193: uint16(25296), + 1194: uint16(39393), + 1195: uint16(32663), + 1196: uint16(25425), + 1197: uint16(32675), + 1198: uint16(5729), + 1199: uint16(104), + 1200: uint16(17756), + 1201: uint16(14182), + 1202: uint16(17667), + 1203: uint16(33594), + 1204: uint16(32762), + 1205: uint16(25737), + 1207: uint16(32776), + 1208: uint16(32797), + 1210: uint16(32815), + 1211: uint16(41095), + 1212: uint16(27843), + 1213: uint16(32827), + 1214: uint16(32828), + 1215: uint16(32865), + 1216: uint16(10004), + 1217: uint16(18825), + 1218: uint16(26150), + 1219: uint16(15843), + 1220: uint16(26344), + 1221: uint16(26405), + 1222: uint16(32935), + 1223: uint16(35400), + 1224: uint16(33031), + 1225: uint16(33050), + 1226: uint16(22704), + 1227: uint16(9974), + 1228: uint16(27775), + 1229: uint16(25752), + 1230: uint16(20408), + 1231: uint16(25831), + 1232: uint16(5258), + 1233: uint16(33304), + 1234: uint16(6238), + 1235: uint16(27219), + 1236: uint16(19045), + 1237: uint16(19093), + 1238: uint16(17530), + 1239: uint16(33321), + 1240: uint16(2829), + 1241: uint16(27218), + 1242: uint16(15742), + 1243: uint16(20473), + 1244: uint16(5373), + 1245: uint16(34018), + 1246: uint16(33634), + 1247: uint16(27402), + 1248: uint16(18855), + 1249: uint16(13616), + 1250: uint16(6003), + 1251: uint16(15864), + 1252: uint16(33450), + 1253: uint16(26907), + 1254: uint16(63892), + 1255: uint16(16859), + 1256: uint16(34123), + 1257: uint16(33488), + 1258: uint16(33562), + 1259: uint16(3606), + 1260: uint16(6068), + 1261: uint16(14017), + 1262: uint16(12669), + 1263: uint16(13658), + 1264: uint16(33403), + 1265: uint16(33506), + 1266: uint16(33560), + 1267: uint16(16011), + 1268: uint16(28067), + 1269: uint16(27397), + 1270: uint16(27543), + 1271: uint16(13774), + 1272: uint16(15807), + 1273: uint16(33565), + 1274: uint16(21996), + 1275: uint16(33669), + 1276: uint16(17675), + 1277: uint16(28069), + 1278: uint16(33708), + 1280: uint16(33747), + 1281: uint16(13438), + 1282: uint16(28372), + 1283: uint16(27223), + 1284: uint16(34138), + 1285: uint16(13462), + 1286: uint16(28226), + 1287: uint16(12015), + 1288: uint16(33880), + 1289: uint16(23524), + 1290: uint16(33905), + 1291: uint16(15827), + 1292: uint16(17636), + 1293: uint16(27303), + 1294: uint16(33866), + 1295: uint16(15541), + 1296: uint16(31064), + 1298: uint16(27542), + 1299: uint16(28279), + 1300: uint16(28227), + 1301: uint16(34014), + 1303: uint16(33681), + 1304: uint16(17568), + 1305: uint16(33939), + 1306: uint16(34020), + 1307: uint16(23697), + 1308: uint16(16960), + 1309: uint16(23744), + 1310: uint16(17731), + 1311: uint16(34100), + 1312: uint16(23282), + 1313: uint16(28313), + 1314: uint16(17703), + 1315: uint16(34163), + 1316: uint16(17686), + 1317: uint16(26559), + 1318: uint16(34326), + 1319: uint16(34341), + 1320: uint16(34363), + 1321: uint16(34241), + 1322: uint16(28808), + 1323: uint16(34306), + 1324: uint16(5506), + 1325: uint16(28877), + 1326: uint16(63922), + 1327: uint16(17770), + 1328: uint16(34344), + 1329: uint16(13896), + 1330: uint16(6306), + 1331: uint16(21495), + 1332: uint16(29594), + 1333: uint16(34430), + 1334: uint16(34673), + 1335: uint16(41208), + 1336: uint16(34798), + 1337: uint16(11303), + 1338: uint16(34737), + 1339: uint16(34778), + 1340: uint16(34831), + 1341: uint16(22113), + 1342: uint16(34412), + 1343: uint16(26710), + 1344: uint16(17935), + 1345: uint16(34885), + 1346: uint16(34886), + 1347: uint16(30176), + 1348: uint16(15801), + 1349: uint16(30180), + 1350: uint16(34910), + 1351: uint16(34972), + 1352: uint16(18011), + 1353: uint16(34996), + 1354: uint16(34997), + 1355: uint16(25537), + 1356: uint16(35013), + 1357: uint16(30583), + 1358: uint16(30479), + 1359: uint16(35207), + 1360: uint16(35210), + 1363: uint16(35239), + 1364: uint16(35260), + 1365: uint16(35365), + 1366: uint16(35303), + 1367: uint16(31012), + 1368: uint16(31421), + 1369: uint16(35484), + 1370: uint16(30611), + 1371: uint16(37374), + 1372: uint16(35472), + 1373: uint16(31321), + 1374: uint16(31465), + 1375: uint16(31546), + 1376: uint16(16271), + 1377: uint16(18195), + 1378: uint16(31544), + 1379: uint16(29052), + 1380: uint16(35596), + 1381: uint16(35615), + 1382: uint16(21552), + 1383: uint16(21861), + 1384: uint16(35647), + 1385: uint16(35660), + 1386: uint16(35661), + 1387: uint16(35497), + 1388: uint16(19066), + 1389: uint16(35728), + 1390: uint16(35739), + 1391: uint16(35503), + 1392: uint16(5855), + 1393: uint16(17941), + 1394: uint16(34895), + 1395: uint16(35995), + 1396: uint16(32084), + 1397: uint16(32143), + 1398: uint16(63956), + 1399: uint16(14117), + 1400: uint16(32083), + 1401: uint16(36054), + 1402: uint16(32152), + 1403: uint16(32189), + 1404: uint16(36114), + 1405: uint16(36099), + 1406: uint16(6416), + 1407: uint16(36059), + 1408: uint16(28764), + 1409: uint16(36113), + 1410: uint16(19657), + 1411: uint16(16080), + 1413: uint16(36265), + 1414: uint16(32770), + 1415: uint16(4116), + 1416: uint16(18826), + 1417: uint16(15228), + 1418: uint16(33212), + 1419: uint16(28940), + 1420: uint16(31463), + 1421: uint16(36525), + 1422: uint16(36534), + 1423: uint16(36547), + 1424: uint16(37588), + 1425: uint16(36633), + 1426: uint16(36653), + 1427: uint16(33637), + 1428: uint16(33810), + 1429: uint16(36773), + 1430: uint16(37635), + 1431: uint16(41631), + 1432: uint16(2640), + 1433: uint16(36787), + 1434: uint16(18730), + 1435: uint16(35294), + 1436: uint16(34109), + 1437: uint16(15803), + 1438: uint16(24312), + 1439: uint16(12898), + 1440: uint16(36857), + 1441: uint16(40980), + 1442: uint16(34492), + 1443: uint16(34049), + 1444: uint16(8997), + 1445: uint16(14720), + 1446: uint16(28375), + 1447: uint16(36919), + 1448: uint16(34108), + 1449: uint16(31422), + 1450: uint16(36961), + 1451: uint16(34156), + 1452: uint16(34315), + 1453: uint16(37032), + 1454: uint16(34579), + 1455: uint16(37060), + 1456: uint16(34534), + 1457: uint16(37038), + 1459: uint16(37223), + 1460: uint16(15088), + 1461: uint16(37289), + 1462: uint16(37316), + 1463: uint16(31916), + 1464: uint16(35123), + 1465: uint16(7817), + 1466: uint16(37390), + 1467: uint16(27807), + 1468: uint16(37441), + 1469: uint16(37474), + 1470: uint16(21945), + 1472: uint16(35526), + 1473: uint16(15515), + 1474: uint16(35596), + 1475: uint16(21979), + 1476: uint16(3377), + 1477: uint16(37676), + 1478: uint16(37739), + 1479: uint16(35553), + 1480: uint16(35819), + 1481: uint16(28815), + 1482: uint16(23235), + 1483: uint16(35554), + 1484: uint16(35557), + 1485: uint16(18789), + 1486: uint16(37444), + 1487: uint16(35820), + 1488: uint16(35897), + 1489: uint16(35839), + 1490: uint16(37747), + 1491: uint16(37979), + 1492: uint16(36540), + 1493: uint16(38277), + 1494: uint16(38310), + 1495: uint16(37926), + 1496: uint16(38304), + 1497: uint16(28662), + 1498: uint16(17081), + 1499: uint16(9850), + 1500: uint16(34520), + 1501: uint16(4732), + 1502: uint16(15918), + 1503: uint16(18911), + 1504: uint16(27676), + 1505: uint16(38523), + 1506: uint16(38550), + 1507: uint16(16748), + 1508: uint16(38563), + 1509: uint16(28373), + 1510: uint16(25050), + 1511: uint16(38582), + 1512: uint16(30965), + 1513: uint16(35552), + 1514: uint16(38589), + 1515: uint16(21452), + 1516: uint16(18849), + 1517: uint16(27832), + 1518: uint16(628), + 1519: uint16(25616), + 1520: uint16(37039), + 1521: uint16(37093), + 1522: uint16(19153), + 1523: uint16(6421), + 1524: uint16(13066), + 1525: uint16(38705), + 1526: uint16(34370), + 1527: uint16(38710), + 1528: uint16(18959), + 1529: uint16(17725), + 1530: uint16(17797), + 1531: uint16(19177), + 1532: uint16(28789), + 1533: uint16(23361), + 1534: uint16(38683), + 1536: uint16(37333), + 1537: uint16(38743), + 1538: uint16(23370), + 1539: uint16(37355), + 1540: uint16(38751), + 1541: uint16(37925), + 1542: uint16(20688), + 1543: uint16(12471), + 1544: uint16(12476), + 1545: uint16(38793), + 1546: uint16(38815), + 1547: uint16(38833), + 1548: uint16(38846), + 1549: uint16(38848), + 1550: uint16(38866), + 1551: uint16(38880), + 1552: uint16(21612), + 1553: uint16(38894), + 1554: uint16(29724), + 1555: uint16(37939), + 1557: uint16(38901), + 1558: uint16(37917), + 1559: uint16(31098), + 1560: uint16(19153), + 1561: uint16(38964), + 1562: uint16(38963), + 1563: uint16(38987), + 1564: uint16(39014), + 1565: uint16(15118), + 1566: uint16(29045), + 1567: uint16(15697), + 1568: uint16(1584), + 1569: uint16(16732), + 1570: uint16(22278), + 1571: uint16(39114), + 1572: uint16(39095), + 1573: uint16(39112), + 1574: uint16(39111), + 1575: uint16(19199), + 1576: uint16(27943), + 1577: uint16(5843), + 1578: uint16(21936), + 1579: uint16(39137), + 1580: uint16(39142), + 1581: uint16(39148), + 1582: uint16(37752), + 1583: uint16(39225), + 1584: uint16(18985), + 1585: uint16(19314), + 1586: uint16(38999), + 1587: uint16(39173), + 1588: uint16(39413), + 1589: uint16(39436), + 1590: uint16(39483), + 1591: uint16(39440), + 1592: uint16(39512), + 1593: uint16(22309), + 1594: uint16(14020), + 1595: uint16(37041), + 1596: uint16(39893), + 1597: uint16(39648), + 1598: uint16(39650), + 1599: uint16(39685), + 1600: uint16(39668), + 1601: uint16(19470), + 1602: uint16(39700), + 1603: uint16(39725), + 1604: uint16(34304), + 1605: uint16(20532), + 1606: uint16(39732), + 1607: uint16(27048), + 1608: uint16(14531), + 1609: uint16(12413), + 1610: uint16(39760), + 1611: uint16(39744), + 1612: uint16(40254), + 1613: uint16(23109), + 1614: uint16(6243), + 1615: uint16(39822), + 1616: uint16(16971), + 1617: uint16(39938), + 1618: uint16(39935), + 1619: uint16(39948), + 1620: uint16(40552), + 1621: uint16(40404), + 1622: uint16(40887), + 1623: uint16(41362), + 1624: uint16(41387), + 1625: uint16(41185), + 1626: uint16(41251), + 1627: uint16(41439), + 1628: uint16(40318), + 1629: uint16(40323), + 1630: uint16(41268), + 1631: uint16(40462), + 1632: uint16(26760), + 1633: uint16(40388), + 1634: uint16(8539), + 1635: uint16(41363), + 1636: uint16(41504), + 1637: uint16(6459), + 1638: uint16(41523), + 1639: uint16(40249), + 1640: uint16(41145), + 1641: uint16(41652), + 1642: uint16(40592), + 1643: uint16(40597), + 1644: uint16(40606), + 1645: uint16(40610), + 1646: uint16(19764), + 1647: uint16(40618), + 1648: uint16(40623), + 1649: uint16(17252), + 1650: uint16(40641), + 1651: uint16(15200), + 1652: uint16(14821), + 1653: uint16(15645), + 1654: uint16(20274), + 1655: uint16(14270), + 1656: uint16(35883), + 1657: uint16(40706), + 1658: uint16(40712), + 1659: uint16(19350), + 1660: uint16(37924), + 1661: uint16(28066), + 1662: uint16(40727), + 1664: uint16(40761), + 1665: uint16(22175), + 1666: uint16(22154), + 1667: uint16(40773), + 1668: uint16(39352), + 1669: uint16(37003), + 1670: uint16(38898), + 1671: uint16(33919), + 1672: uint16(40802), + 1673: uint16(40809), + 1674: uint16(31452), + 1675: uint16(40846), + 1676: uint16(29206), + 1677: uint16(19390), + 1678: uint16(18805), + 1679: uint16(18875), + 1680: uint16(29047), + 1681: uint16(18936), + 1682: uint16(17224), + 1683: uint16(19025), + 1684: uint16(29598), + 1685: uint16(35802), + 1686: uint16(6394), + 1687: uint16(31135), + 1688: uint16(35198), + 1689: uint16(36406), + 1690: uint16(37737), + 1691: uint16(37875), + 1692: uint16(35396), + 1693: uint16(37612), + 1694: uint16(37761), + 1695: uint16(37835), + 1696: uint16(35180), + 1697: uint16(17593), + 1698: uint16(29207), + 1699: uint16(16107), + 1700: uint16(30578), + 1701: uint16(31299), + 1702: uint16(28880), + 1703: uint16(17523), + 1704: uint16(17400), + 1705: uint16(29054), + 1706: uint16(6127), + 1707: uint16(28835), + 1708: uint16(6334), + 1709: uint16(13721), + 1710: uint16(16071), + 1711: uint16(6277), + 1712: uint16(21551), + 1713: uint16(6136), + 1714: uint16(14114), + 1715: uint16(5883), + 1716: uint16(6201), + 1717: uint16(14049), + 1718: uint16(6004), + 1719: uint16(6353), + 1720: uint16(24395), + 1721: uint16(14115), + 1722: uint16(5824), + 1723: uint16(22363), + 1724: uint16(18981), + 1725: uint16(5118), + 1726: uint16(4776), + 1727: uint16(5062), + 1728: uint16(5302), + 1729: uint16(34051), + 1730: uint16(13990), + 1732: uint16(33877), + 1733: uint16(18836), + 1734: uint16(29029), + 1735: uint16(15921), + 1736: uint16(21852), + 1737: uint16(16123), + 1738: uint16(28754), + 1739: uint16(17652), + 1740: uint16(14062), + 1741: uint16(39325), + 1742: uint16(28454), + 1743: uint16(26617), + 1744: uint16(14131), + 1745: uint16(15381), + 1746: uint16(15847), + 1747: uint16(22636), + 1748: uint16(6434), + 1749: uint16(26640), + 1750: uint16(16471), + 1751: uint16(14143), + 1752: uint16(16609), + 1753: uint16(16523), + 1754: uint16(16655), + 1755: uint16(27681), + 1756: uint16(21707), + 1757: uint16(22174), + 1758: uint16(26289), + 1759: uint16(22162), + 1760: uint16(4063), + 1761: uint16(2984), + 1762: uint16(3597), + 1763: uint16(37830), + 1764: uint16(35603), + 1765: uint16(37788), + 1766: uint16(20216), + 1767: uint16(20779), + 1768: uint16(14361), + 1769: uint16(17462), + 1770: uint16(20156), + 1771: uint16(1125), + 1772: uint16(895), + 1773: uint16(20299), + 1774: uint16(20362), + 1775: uint16(22097), + 1776: uint16(23144), + 1777: uint16(427), + 1778: uint16(971), + 1779: uint16(14745), + 1780: uint16(778), + 1781: uint16(1044), + 1782: uint16(13365), + 1783: uint16(20265), + 1784: uint16(704), + 1785: uint16(36531), + 1786: uint16(629), + 1787: uint16(35546), + 1788: uint16(524), + 1789: uint16(20120), + 1790: uint16(20685), + 1791: uint16(20749), + 1792: uint16(20386), + 1793: uint16(20227), + 1794: uint16(18958), + 1795: uint16(16010), + 1796: uint16(20290), + 1797: uint16(20526), + 1798: uint16(20588), + 1799: uint16(20609), + 1800: uint16(20428), + 1801: uint16(20453), + 1802: uint16(20568), + 1803: uint16(20732), + 1808: uint16(28278), + 1809: uint16(13717), + 1810: uint16(15929), + 1811: uint16(16063), + 1812: uint16(28018), + 1813: uint16(6276), + 1814: uint16(16009), + 1815: uint16(20904), + 1816: uint16(20931), + 1817: uint16(1504), + 1818: uint16(17629), + 1819: uint16(1187), + 1820: uint16(1170), + 1821: uint16(1169), + 1822: uint16(36218), + 1823: uint16(35484), + 1824: uint16(1806), + 1825: uint16(21081), + 1826: uint16(21156), + 1827: uint16(2163), + 1828: uint16(21217), + 1830: uint16(18042), + 1831: uint16(29068), + 1832: uint16(17292), + 1833: uint16(3104), + 1834: uint16(18860), + 1835: uint16(4324), + 1836: uint16(27089), + 1837: uint16(3613), + 1839: uint16(16094), + 1840: uint16(29849), + 1841: uint16(29716), + 1842: uint16(29782), + 1843: uint16(29592), + 1844: uint16(19342), + 1845: uint16(19132), + 1846: uint16(16525), + 1847: uint16(21456), + 1848: uint16(13700), + 1849: uint16(29199), + 1850: uint16(16585), + 1851: uint16(21940), + 1852: uint16(837), + 1853: uint16(21709), + 1854: uint16(3014), + 1855: uint16(22301), + 1856: uint16(37469), + 1857: uint16(38644), + 1858: uint16(37734), + 1859: uint16(22493), + 1860: uint16(22413), + 1861: uint16(22399), + 1862: uint16(13886), + 1863: uint16(22731), + 1864: uint16(23193), + 1865: uint16(35398), + 1866: uint16(5882), + 1867: uint16(5999), + 1868: uint16(5904), + 1869: uint16(23084), + 1870: uint16(22968), + 1871: uint16(37519), + 1872: uint16(23166), + 1873: uint16(23247), + 1874: uint16(23058), + 1875: uint16(22854), + 1876: uint16(6643), + 1877: uint16(6241), + 1878: uint16(17045), + 1879: uint16(14069), + 1880: uint16(27909), + 1881: uint16(29763), + 1882: uint16(23073), + 1883: uint16(24195), + 1884: uint16(23169), + 1885: uint16(35799), + 1886: uint16(1043), + 1887: uint16(37856), + 1888: uint16(29836), + 1889: uint16(4867), + 1890: uint16(28933), + 1891: uint16(18802), + 1892: uint16(37896), + 1893: uint16(35323), + 1894: uint16(37821), + 1895: uint16(14240), + 1896: uint16(23582), + 1897: uint16(23710), + 1898: uint16(24158), + 1899: uint16(24136), + 1900: uint16(6550), + 1901: uint16(6524), + 1902: uint16(15086), + 1903: uint16(24269), + 1904: uint16(23375), + 1905: uint16(6403), + 1906: uint16(6404), + 1907: uint16(14081), + 1908: uint16(6304), + 1909: uint16(14045), + 1910: uint16(5886), + 1911: uint16(14035), + 1912: uint16(33066), + 1913: uint16(35399), + 1914: uint16(7610), + 1915: uint16(13426), + 1916: uint16(35240), + 1917: uint16(24332), + 1918: uint16(24334), + 1919: uint16(6439), + 1920: uint16(6059), + 1921: uint16(23147), + 1922: uint16(5947), + 1923: uint16(23364), + 1924: uint16(34324), + 1925: uint16(30205), + 1926: uint16(34912), + 1927: uint16(24702), + 1928: uint16(10336), + 1929: uint16(9771), + 1930: uint16(24539), + 1931: uint16(16056), + 1932: uint16(9647), + 1933: uint16(9662), + 1934: uint16(37000), + 1935: uint16(28531), + 1936: uint16(25024), + 1937: uint16(62), + 1938: uint16(70), + 1939: uint16(9755), + 1940: uint16(24985), + 1941: uint16(24984), + 1942: uint16(24693), + 1943: uint16(11419), + 1944: uint16(11527), + 1945: uint16(18132), + 1946: uint16(37197), + 1947: uint16(25713), + 1948: uint16(18021), + 1949: uint16(11114), + 1950: uint16(14889), + 1951: uint16(11042), + 1952: uint16(13392), + 1953: uint16(39146), + 1954: uint16(11896), + 1955: uint16(25399), + 1956: uint16(42075), + 1957: uint16(25782), + 1958: uint16(25393), + 1959: uint16(25553), + 1960: uint16(18915), + 1961: uint16(11623), + 1962: uint16(25252), + 1963: uint16(11425), + 1964: uint16(25659), + 1965: uint16(25963), + 1966: uint16(26994), + 1967: uint16(15348), + 1968: uint16(12430), + 1969: uint16(12973), + 1970: uint16(18825), + 1971: uint16(12971), + 1972: uint16(21773), + 1973: uint16(13024), + 1974: uint16(6361), + 1975: uint16(37951), + 1976: uint16(26318), + 1977: uint16(12937), + 1978: uint16(12723), + 1979: uint16(15072), + 1980: uint16(16784), + 1981: uint16(21892), + 1982: uint16(35618), + 1983: uint16(21903), + 1984: uint16(5884), + 1985: uint16(21851), + 1986: uint16(21541), + 1987: uint16(30958), + 1988: uint16(12547), + 1989: uint16(6186), + 1990: uint16(12852), + 1991: uint16(13412), + 1992: uint16(12815), + 1993: uint16(12674), + 1994: uint16(17097), + 1995: uint16(26254), + 1996: uint16(27940), + 1997: uint16(26219), + 1998: uint16(19347), + 1999: uint16(26160), + 2000: uint16(30832), + 2001: uint16(7659), + 2002: uint16(26211), + 2003: uint16(13010), + 2004: uint16(13025), + 2005: uint16(26142), + 2006: uint16(22642), + 2007: uint16(14545), + 2008: uint16(14394), + 2009: uint16(14268), + 2010: uint16(15257), + 2011: uint16(14242), + 2012: uint16(13310), + 2013: uint16(29904), + 2014: uint16(15254), + 2015: uint16(26511), + 2016: uint16(17962), + 2017: uint16(26806), + 2018: uint16(26654), + 2019: uint16(15300), + 2020: uint16(27326), + 2021: uint16(14435), + 2022: uint16(14293), + 2023: uint16(17543), + 2024: uint16(27187), + 2025: uint16(27218), + 2026: uint16(27337), + 2027: uint16(27397), + 2028: uint16(6418), + 2029: uint16(25873), + 2030: uint16(26776), + 2031: uint16(27212), + 2032: uint16(15319), + 2033: uint16(27258), + 2034: uint16(27479), + 2035: uint16(16320), + 2036: uint16(15514), + 2037: uint16(37792), + 2038: uint16(37618), + 2039: uint16(35818), + 2040: uint16(35531), + 2041: uint16(37513), + 2042: uint16(32798), + 2043: uint16(35292), + 2044: uint16(37991), + 2045: uint16(28069), + 2046: uint16(28427), + 2047: uint16(18924), + 2049: uint16(16255), + 2050: uint16(15759), + 2051: uint16(28164), + 2052: uint16(16444), + 2053: uint16(23101), + 2054: uint16(28170), + 2055: uint16(22599), + 2056: uint16(27940), + 2057: uint16(30786), + 2058: uint16(28987), + 2059: uint16(17178), + 2060: uint16(17014), + 2061: uint16(28913), + 2062: uint16(29264), + 2063: uint16(29319), + 2064: uint16(29332), + 2065: uint16(18319), + 2066: uint16(18213), + 2067: uint16(20857), + 2068: uint16(19108), + 2069: uint16(1515), + 2070: uint16(29818), + 2071: uint16(16120), + 2072: uint16(13919), + 2073: uint16(19018), + 2074: uint16(18711), + 2075: uint16(24545), + 2076: uint16(16134), + 2077: uint16(16049), + 2078: uint16(19167), + 2079: uint16(35875), + 2080: uint16(16181), + 2081: uint16(24743), + 2082: uint16(16115), + 2083: uint16(29900), + 2084: uint16(29756), + 2085: uint16(37767), + 2086: uint16(29751), + 2087: uint16(17567), + 2088: uint16(28138), + 2089: uint16(17745), + 2090: uint16(30083), + 2091: uint16(16227), + 2092: uint16(19673), + 2093: uint16(19718), + 2094: uint16(16216), + 2095: uint16(30037), + 2096: uint16(30323), + 2097: uint16(42438), + 2098: uint16(15129), + 2099: uint16(29800), + 2100: uint16(35532), + 2101: uint16(18859), + 2102: uint16(18830), + 2103: uint16(15099), + 2104: uint16(15821), + 2105: uint16(19022), + 2106: uint16(16127), + 2107: uint16(18885), + 2108: uint16(18675), + 2109: uint16(37370), + 2110: uint16(22322), + 2111: uint16(37698), + 2112: uint16(35555), + 2113: uint16(6244), + 2114: uint16(20703), + 2115: uint16(21025), + 2116: uint16(20967), + 2117: uint16(30584), + 2118: uint16(12850), + 2119: uint16(30478), + 2120: uint16(30479), + 2121: uint16(30587), + 2122: uint16(18071), + 2123: uint16(14209), + 2124: uint16(14942), + 2125: uint16(18672), + 2126: uint16(29752), + 2127: uint16(29851), + 2128: uint16(16063), + 2129: uint16(19130), + 2130: uint16(19143), + 2131: uint16(16584), + 2132: uint16(19094), + 2133: uint16(25006), + 2134: uint16(37639), + 2135: uint16(21889), + 2136: uint16(30750), + 2137: uint16(30861), + 2138: uint16(30856), + 2139: uint16(30930), + 2140: uint16(29648), + 2141: uint16(31065), + 2142: uint16(30529), + 2143: uint16(22243), + 2144: uint16(16654), + 2146: uint16(33942), + 2147: uint16(31141), + 2148: uint16(27181), + 2149: uint16(16122), + 2150: uint16(31290), + 2151: uint16(31220), + 2152: uint16(16750), + 2153: uint16(5862), + 2154: uint16(16690), + 2155: uint16(37429), + 2156: uint16(31217), + 2157: uint16(3404), + 2158: uint16(18828), + 2159: uint16(665), + 2160: uint16(15802), + 2161: uint16(5998), + 2162: uint16(13719), + 2163: uint16(21867), + 2164: uint16(13680), + 2165: uint16(13994), + 2166: uint16(468), + 2167: uint16(3085), + 2168: uint16(31458), + 2169: uint16(23129), + 2170: uint16(9973), + 2171: uint16(23215), + 2172: uint16(23196), + 2173: uint16(23053), + 2174: uint16(603), + 2175: uint16(30960), + 2176: uint16(23082), + 2177: uint16(23494), + 2178: uint16(31486), + 2179: uint16(16889), + 2180: uint16(31837), + 2181: uint16(31853), + 2182: uint16(16913), + 2183: uint16(23475), + 2184: uint16(24252), + 2185: uint16(24230), + 2186: uint16(31949), + 2187: uint16(18937), + 2188: uint16(6064), + 2189: uint16(31886), + 2190: uint16(31868), + 2191: uint16(31918), + 2192: uint16(27314), + 2193: uint16(32220), + 2194: uint16(32263), + 2195: uint16(32211), + 2196: uint16(32590), + 2197: uint16(25185), + 2198: uint16(24924), + 2199: uint16(31560), + 2200: uint16(32151), + 2201: uint16(24194), + 2202: uint16(17002), + 2203: uint16(27509), + 2204: uint16(2326), + 2205: uint16(26582), + 2206: uint16(78), + 2207: uint16(13775), + 2208: uint16(22468), + 2209: uint16(25618), + 2210: uint16(25592), + 2211: uint16(18786), + 2212: uint16(32733), + 2213: uint16(31527), + 2214: uint16(2092), + 2215: uint16(23273), + 2216: uint16(23875), + 2217: uint16(31500), + 2218: uint16(24078), + 2219: uint16(39398), + 2220: uint16(34373), + 2221: uint16(39523), + 2222: uint16(27164), + 2223: uint16(13375), + 2224: uint16(14818), + 2225: uint16(18935), + 2226: uint16(26029), + 2227: uint16(39455), + 2228: uint16(26016), + 2229: uint16(33920), + 2230: uint16(28967), + 2231: uint16(27857), + 2232: uint16(17642), + 2233: uint16(33079), + 2234: uint16(17410), + 2235: uint16(32966), + 2236: uint16(33033), + 2237: uint16(33090), + 2238: uint16(26548), + 2239: uint16(39107), + 2240: uint16(27202), + 2241: uint16(33378), + 2242: uint16(33381), + 2243: uint16(27217), + 2244: uint16(33875), + 2245: uint16(28071), + 2246: uint16(34320), + 2247: uint16(29211), + 2248: uint16(23174), + 2249: uint16(16767), + 2250: uint16(6208), + 2251: uint16(23339), + 2252: uint16(6305), + 2253: uint16(23268), + 2254: uint16(6360), + 2255: uint16(34464), + 2256: uint16(63932), + 2257: uint16(15759), + 2258: uint16(34861), + 2259: uint16(29730), + 2260: uint16(23042), + 2261: uint16(34926), + 2262: uint16(20293), + 2263: uint16(34951), + 2264: uint16(35007), + 2265: uint16(35046), + 2266: uint16(35173), + 2267: uint16(35149), + 2268: uint16(22147), + 2269: uint16(35156), + 2270: uint16(30597), + 2271: uint16(30596), + 2272: uint16(35829), + 2273: uint16(35801), + 2274: uint16(35740), + 2275: uint16(35321), + 2276: uint16(16045), + 2277: uint16(33955), + 2278: uint16(18165), + 2279: uint16(18127), + 2280: uint16(14322), + 2281: uint16(35389), + 2282: uint16(35356), + 2283: uint16(37960), + 2284: uint16(24397), + 2285: uint16(37419), + 2286: uint16(17028), + 2287: uint16(26068), + 2288: uint16(28969), + 2289: uint16(28868), + 2290: uint16(6213), + 2291: uint16(40301), + 2292: uint16(35999), + 2293: uint16(36073), + 2294: uint16(32220), + 2295: uint16(22938), + 2296: uint16(30659), + 2297: uint16(23024), + 2298: uint16(17262), + 2299: uint16(14036), + 2300: uint16(36394), + 2301: uint16(36519), + 2302: uint16(19465), + 2303: uint16(36656), + 2304: uint16(36682), + 2305: uint16(17140), + 2306: uint16(27736), + 2307: uint16(28603), + 2308: uint16(8993), + 2309: uint16(18587), + 2310: uint16(28537), + 2311: uint16(28299), + 2312: uint16(6106), + 2313: uint16(39913), + 2314: uint16(14005), + 2315: uint16(18735), + 2316: uint16(37051), + 2318: uint16(21873), + 2319: uint16(18694), + 2320: uint16(37307), + 2321: uint16(37892), + 2322: uint16(35403), + 2323: uint16(16482), + 2324: uint16(35580), + 2325: uint16(37927), + 2326: uint16(35869), + 2327: uint16(35899), + 2328: uint16(34021), + 2329: uint16(35371), + 2330: uint16(38297), + 2331: uint16(38311), + 2332: uint16(38295), + 2333: uint16(38294), + 2334: uint16(36148), + 2335: uint16(29765), + 2336: uint16(16066), + 2337: uint16(18687), + 2338: uint16(19010), + 2339: uint16(17386), + 2340: uint16(16103), + 2341: uint16(12837), + 2342: uint16(38543), + 2343: uint16(36583), + 2344: uint16(36454), + 2345: uint16(36453), + 2346: uint16(16076), + 2347: uint16(18925), + 2348: uint16(19064), + 2349: uint16(16366), + 2350: uint16(29714), + 2351: uint16(29803), + 2352: uint16(16124), + 2353: uint16(38721), + 2354: uint16(37040), + 2355: uint16(26695), + 2356: uint16(18973), + 2357: uint16(37011), + 2358: uint16(22495), + 2360: uint16(37736), + 2361: uint16(35209), + 2362: uint16(35878), + 2363: uint16(35631), + 2364: uint16(25534), + 2365: uint16(37562), + 2366: uint16(23313), + 2367: uint16(35689), + 2368: uint16(18748), + 2369: uint16(29689), + 2370: uint16(16923), + 2371: uint16(38811), + 2372: uint16(38769), + 2373: uint16(39224), + 2374: uint16(3878), + 2375: uint16(24001), + 2376: uint16(35781), + 2377: uint16(19122), + 2378: uint16(38943), + 2379: uint16(38106), + 2380: uint16(37622), + 2381: uint16(38359), + 2382: uint16(37349), + 2383: uint16(17600), + 2384: uint16(35664), + 2385: uint16(19047), + 2386: uint16(35684), + 2387: uint16(39132), + 2388: uint16(35397), + 2389: uint16(16128), + 2390: uint16(37418), + 2391: uint16(18725), + 2392: uint16(33812), + 2393: uint16(39227), + 2394: uint16(39245), + 2395: uint16(31494), + 2396: uint16(15869), + 2397: uint16(39323), + 2398: uint16(19311), + 2399: uint16(39338), + 2400: uint16(39516), + 2401: uint16(35685), + 2402: uint16(22728), + 2403: uint16(27279), + 2404: uint16(39457), + 2405: uint16(23294), + 2406: uint16(39471), + 2407: uint16(39153), + 2408: uint16(19344), + 2409: uint16(39240), + 2410: uint16(39356), + 2411: uint16(19389), + 2412: uint16(19351), + 2413: uint16(37757), + 2414: uint16(22642), + 2415: uint16(4866), + 2416: uint16(22562), + 2417: uint16(18872), + 2418: uint16(5352), + 2419: uint16(30788), + 2420: uint16(10015), + 2421: uint16(15800), + 2422: uint16(26821), + 2423: uint16(15741), + 2424: uint16(37976), + 2425: uint16(14631), + 2426: uint16(24912), + 2427: uint16(10113), + 2428: uint16(10603), + 2429: uint16(24839), + 2430: uint16(40015), + 2431: uint16(40019), + 2432: uint16(40059), + 2433: uint16(39989), + 2434: uint16(39952), + 2435: uint16(39807), + 2436: uint16(39887), + 2437: uint16(40493), + 2438: uint16(39839), + 2439: uint16(41461), + 2440: uint16(41214), + 2441: uint16(40225), + 2442: uint16(19630), + 2443: uint16(16644), + 2444: uint16(40472), + 2445: uint16(19632), + 2446: uint16(40204), + 2447: uint16(41396), + 2448: uint16(41197), + 2449: uint16(41203), + 2450: uint16(39215), + 2451: uint16(40357), + 2452: uint16(33981), + 2453: uint16(28178), + 2454: uint16(28639), + 2455: uint16(27522), + 2456: uint16(34300), + 2457: uint16(17715), + 2458: uint16(28068), + 2459: uint16(28292), + 2460: uint16(28144), + 2461: uint16(33824), + 2462: uint16(34286), + 2463: uint16(28160), + 2464: uint16(14295), + 2465: uint16(24676), + 2466: uint16(31202), + 2467: uint16(13724), + 2468: uint16(13888), + 2469: uint16(18733), + 2470: uint16(18910), + 2471: uint16(15714), + 2472: uint16(37851), + 2473: uint16(37566), + 2474: uint16(37704), + 2475: uint16(703), + 2476: uint16(30905), + 2477: uint16(37495), + 2478: uint16(37965), + 2479: uint16(20452), + 2480: uint16(13376), + 2481: uint16(36964), + 2482: uint16(21853), + 2483: uint16(30781), + 2484: uint16(30804), + 2485: uint16(30902), + 2486: uint16(30795), + 2487: uint16(5975), + 2488: uint16(12745), + 2489: uint16(18753), + 2490: uint16(13978), + 2491: uint16(20338), + 2492: uint16(28634), + 2493: uint16(28633), + 2495: uint16(28702), + 2496: uint16(21524), + 2497: uint16(16821), + 2498: uint16(22459), + 2499: uint16(22771), + 2500: uint16(22410), + 2501: uint16(40214), + 2502: uint16(22487), + 2503: uint16(28980), + 2504: uint16(13487), + 2505: uint16(16812), + 2506: uint16(29163), + 2507: uint16(27712), + 2508: uint16(20375), + 2510: uint16(6069), + 2511: uint16(35401), + 2512: uint16(24844), + 2513: uint16(23246), + 2514: uint16(23051), + 2515: uint16(17084), + 2516: uint16(17544), + 2517: uint16(14124), + 2518: uint16(19323), + 2519: uint16(35324), + 2520: uint16(37819), + 2521: uint16(37816), + 2522: uint16(6358), + 2523: uint16(3869), + 2524: uint16(33906), + 2525: uint16(27840), + 2526: uint16(5139), + 2527: uint16(17146), + 2528: uint16(11302), + 2529: uint16(17345), + 2530: uint16(22932), + 2531: uint16(15799), + 2532: uint16(26433), + 2533: uint16(32168), + 2534: uint16(24923), + 2535: uint16(24740), + 2536: uint16(18873), + 2537: uint16(18827), + 2538: uint16(35322), + 2539: uint16(37605), + 2540: uint16(29666), + 2541: uint16(16105), + 2542: uint16(29876), + 2543: uint16(35683), + 2544: uint16(6303), + 2545: uint16(16097), + 2546: uint16(19123), + 2547: uint16(27352), + 2548: uint16(29683), + 2549: uint16(29691), + 2550: uint16(16086), + 2551: uint16(19006), + 2552: uint16(19092), + 2553: uint16(6105), + 2554: uint16(19046), + 2555: uint16(935), + 2556: uint16(5156), + 2557: uint16(18917), + 2558: uint16(29768), + 2559: uint16(18710), + 2560: uint16(28837), + 2561: uint16(18806), + 2562: uint16(37508), + 2563: uint16(29670), + 2564: uint16(37727), + 2565: uint16(1278), + 2566: uint16(37681), + 2567: uint16(35534), + 2568: uint16(35350), + 2569: uint16(37766), + 2570: uint16(35815), + 2571: uint16(21973), + 2572: uint16(18741), + 2573: uint16(35458), + 2574: uint16(29035), + 2575: uint16(18755), + 2576: uint16(3327), + 2577: uint16(22180), + 2578: uint16(1562), + 2579: uint16(3051), + 2580: uint16(3256), + 2581: uint16(21762), + 2582: uint16(31172), + 2583: uint16(6138), + 2584: uint16(32254), + 2585: uint16(5826), + 2586: uint16(19024), + 2587: uint16(6226), + 2588: uint16(17710), + 2589: uint16(37889), + 2590: uint16(14090), + 2591: uint16(35520), + 2592: uint16(18861), + 2593: uint16(22960), + 2594: uint16(6335), + 2595: uint16(6275), + 2596: uint16(29828), + 2597: uint16(23201), + 2598: uint16(14050), + 2599: uint16(15707), + 2600: uint16(14000), + 2601: uint16(37471), + 2602: uint16(23161), + 2603: uint16(35457), + 2604: uint16(6242), + 2605: uint16(37748), + 2606: uint16(15565), + 2607: uint16(2740), + 2608: uint16(19094), + 2609: uint16(14730), + 2610: uint16(20724), + 2611: uint16(15721), + 2612: uint16(15692), + 2613: uint16(5020), + 2614: uint16(29045), + 2615: uint16(17147), + 2616: uint16(33304), + 2617: uint16(28175), + 2618: uint16(37092), + 2619: uint16(17643), + 2620: uint16(27991), + 2621: uint16(32335), + 2622: uint16(28775), + 2623: uint16(27823), + 2624: uint16(15574), + 2625: uint16(16365), + 2626: uint16(15917), + 2627: uint16(28162), + 2628: uint16(28428), + 2629: uint16(15727), + 2630: uint16(1013), + 2631: uint16(30033), + 2632: uint16(14012), + 2633: uint16(13512), + 2634: uint16(18048), + 2635: uint16(16090), + 2636: uint16(18545), + 2637: uint16(22980), + 2638: uint16(37486), + 2639: uint16(18750), + 2640: uint16(36673), + 2641: uint16(35868), + 2642: uint16(27584), + 2643: uint16(22546), + 2644: uint16(22472), + 2645: uint16(14038), + 2646: uint16(5202), + 2647: uint16(28926), + 2648: uint16(17250), + 2649: uint16(19057), + 2650: uint16(12259), + 2651: uint16(4784), + 2652: uint16(9149), + 2653: uint16(26809), + 2654: uint16(26983), + 2655: uint16(5016), + 2656: uint16(13541), + 2657: uint16(31732), + 2658: uint16(14047), + 2659: uint16(35459), + 2660: uint16(14294), + 2661: uint16(13306), + 2662: uint16(19615), + 2663: uint16(27162), + 2664: uint16(13997), + 2665: uint16(27831), + 2666: uint16(33854), + 2667: uint16(17631), + 2668: uint16(17614), + 2669: uint16(27942), + 2670: uint16(27985), + 2671: uint16(27778), + 2672: uint16(28638), + 2673: uint16(28439), + 2674: uint16(28937), + 2675: uint16(33597), + 2676: uint16(5946), + 2677: uint16(33773), + 2678: uint16(27776), + 2679: uint16(28755), + 2680: uint16(6107), + 2681: uint16(22921), + 2682: uint16(23170), + 2683: uint16(6067), + 2684: uint16(23137), + 2685: uint16(23153), + 2686: uint16(6405), + 2687: uint16(16892), + 2688: uint16(14125), + 2689: uint16(23023), + 2690: uint16(5948), + 2691: uint16(14023), + 2692: uint16(29070), + 2693: uint16(37776), + 2694: uint16(26266), + 2695: uint16(17061), + 2696: uint16(23150), + 2697: uint16(23083), + 2698: uint16(17043), + 2699: uint16(27179), + 2700: uint16(16121), + 2701: uint16(30518), + 2702: uint16(17499), + 2703: uint16(17098), + 2704: uint16(28957), + 2705: uint16(16985), + 2706: uint16(35297), + 2707: uint16(20400), + 2708: uint16(27944), + 2709: uint16(23746), + 2710: uint16(17614), + 2711: uint16(32333), + 2712: uint16(17341), + 2713: uint16(27148), + 2714: uint16(16982), + 2715: uint16(4868), + 2716: uint16(28838), + 2717: uint16(28979), + 2718: uint16(17385), + 2719: uint16(15781), + 2720: uint16(27871), + 2721: uint16(63525), + 2722: uint16(19023), + 2723: uint16(32357), + 2724: uint16(23019), + 2725: uint16(23855), + 2726: uint16(15859), + 2727: uint16(24412), + 2728: uint16(19037), + 2729: uint16(6111), + 2730: uint16(32164), + 2731: uint16(33830), + 2732: uint16(21637), + 2733: uint16(15098), + 2734: uint16(13056), + 2735: uint16(532), + 2736: uint16(22398), + 2737: uint16(2261), + 2738: uint16(1561), + 2739: uint16(16357), + 2740: uint16(8094), + 2741: uint16(41654), + 2742: uint16(28675), + 2743: uint16(37211), + 2744: uint16(23920), + 2745: uint16(29583), + 2746: uint16(31955), + 2747: uint16(35417), + 2748: uint16(37920), + 2749: uint16(20424), + 2750: uint16(32743), + 2751: uint16(29389), + 2752: uint16(29456), + 2753: uint16(31476), + 2754: uint16(29496), + 2755: uint16(29497), + 2756: uint16(22262), + 2757: uint16(29505), + 2758: uint16(29512), + 2759: uint16(16041), + 2760: uint16(31512), + 2761: uint16(36972), + 2762: uint16(29173), + 2763: uint16(18674), + 2764: uint16(29665), + 2765: uint16(33270), + 2766: uint16(16074), + 2767: uint16(30476), + 2768: uint16(16081), + 2769: uint16(27810), + 2770: uint16(22269), + 2771: uint16(29721), + 2772: uint16(29726), + 2773: uint16(29727), + 2774: uint16(16098), + 2775: uint16(16112), + 2776: uint16(16116), + 2777: uint16(16122), + 2778: uint16(29907), + 2779: uint16(16142), + 2780: uint16(16211), + 2781: uint16(30018), + 2782: uint16(30061), + 2783: uint16(30066), + 2784: uint16(30093), + 2785: uint16(16252), + 2786: uint16(30152), + 2787: uint16(30172), + 2788: uint16(16320), + 2789: uint16(30285), + 2790: uint16(16343), + 2791: uint16(30324), + 2792: uint16(16348), + 2793: uint16(30330), + 2794: uint16(20316), + 2795: uint16(29064), + 2796: uint16(22051), + 2797: uint16(35200), + 2798: uint16(22633), + 2799: uint16(16413), + 2800: uint16(30531), + 2801: uint16(16441), + 2802: uint16(26465), + 2803: uint16(16453), + 2804: uint16(13787), + 2805: uint16(30616), + 2806: uint16(16490), + 2807: uint16(16495), + 2808: uint16(23646), + 2809: uint16(30654), + 2810: uint16(30667), + 2811: uint16(22770), + 2812: uint16(30744), + 2813: uint16(28857), + 2814: uint16(30748), + 2815: uint16(16552), + 2816: uint16(30777), + 2817: uint16(30791), + 2818: uint16(30801), + 2819: uint16(30822), + 2820: uint16(33864), + 2821: uint16(21813), + 2822: uint16(31027), + 2823: uint16(26627), + 2824: uint16(31026), + 2825: uint16(16643), + 2826: uint16(16649), + 2827: uint16(31121), + 2828: uint16(31129), + 2829: uint16(36795), + 2830: uint16(31238), + 2831: uint16(36796), + 2832: uint16(16743), + 2833: uint16(31377), + 2834: uint16(16818), + 2835: uint16(31420), + 2836: uint16(33401), + 2837: uint16(16836), + 2838: uint16(31439), + 2839: uint16(31451), + 2840: uint16(16847), + 2841: uint16(20001), + 2842: uint16(31586), + 2843: uint16(31596), + 2844: uint16(31611), + 2845: uint16(31762), + 2846: uint16(31771), + 2847: uint16(16992), + 2848: uint16(17018), + 2849: uint16(31867), + 2850: uint16(31900), + 2851: uint16(17036), + 2852: uint16(31928), + 2853: uint16(17044), + 2854: uint16(31981), + 2855: uint16(36755), + 2856: uint16(28864), + 2857: uint16(3279), + 2858: uint16(32207), + 2859: uint16(32212), + 2860: uint16(32208), + 2861: uint16(32253), + 2862: uint16(32686), + 2863: uint16(32692), + 2864: uint16(29343), + 2865: uint16(17303), + 2866: uint16(32800), + 2867: uint16(32805), + 2868: uint16(31545), + 2869: uint16(32814), + 2870: uint16(32817), + 2871: uint16(32852), + 2872: uint16(15820), + 2873: uint16(22452), + 2874: uint16(28832), + 2875: uint16(32951), + 2876: uint16(33001), + 2877: uint16(17389), + 2878: uint16(33036), + 2879: uint16(29482), + 2880: uint16(33038), + 2881: uint16(33042), + 2882: uint16(30048), + 2883: uint16(33044), + 2884: uint16(17409), + 2885: uint16(15161), + 2886: uint16(33110), + 2887: uint16(33113), + 2888: uint16(33114), + 2889: uint16(17427), + 2890: uint16(22586), + 2891: uint16(33148), + 2892: uint16(33156), + 2893: uint16(17445), + 2894: uint16(33171), + 2895: uint16(17453), + 2896: uint16(33189), + 2897: uint16(22511), + 2898: uint16(33217), + 2899: uint16(33252), + 2900: uint16(33364), + 2901: uint16(17551), + 2902: uint16(33446), + 2903: uint16(33398), + 2904: uint16(33482), + 2905: uint16(33496), + 2906: uint16(33535), + 2907: uint16(17584), + 2908: uint16(33623), + 2909: uint16(38505), + 2910: uint16(27018), + 2911: uint16(33797), + 2912: uint16(28917), + 2913: uint16(33892), + 2914: uint16(24803), + 2915: uint16(33928), + 2916: uint16(17668), + 2917: uint16(33982), + 2918: uint16(34017), + 2919: uint16(34040), + 2920: uint16(34064), + 2921: uint16(34104), + 2922: uint16(34130), + 2923: uint16(17723), + 2924: uint16(34159), + 2925: uint16(34160), + 2926: uint16(34272), + 2927: uint16(17783), + 2928: uint16(34418), + 2929: uint16(34450), + 2930: uint16(34482), + 2931: uint16(34543), + 2932: uint16(38469), + 2933: uint16(34699), + 2934: uint16(17926), + 2935: uint16(17943), + 2936: uint16(34990), + 2937: uint16(35071), + 2938: uint16(35108), + 2939: uint16(35143), + 2940: uint16(35217), + 2941: uint16(31079), + 2942: uint16(35369), + 2943: uint16(35384), + 2944: uint16(35476), + 2945: uint16(35508), + 2946: uint16(35921), + 2947: uint16(36052), + 2948: uint16(36082), + 2949: uint16(36124), + 2950: uint16(18328), + 2951: uint16(22623), + 2952: uint16(36291), + 2953: uint16(18413), + 2954: uint16(20206), + 2955: uint16(36410), + 2956: uint16(21976), + 2957: uint16(22356), + 2958: uint16(36465), + 2959: uint16(22005), + 2960: uint16(36528), + 2961: uint16(18487), + 2962: uint16(36558), + 2963: uint16(36578), + 2964: uint16(36580), + 2965: uint16(36589), + 2966: uint16(36594), + 2967: uint16(36791), + 2968: uint16(36801), + 2969: uint16(36810), + 2970: uint16(36812), + 2971: uint16(36915), + 2972: uint16(39364), + 2973: uint16(18605), + 2974: uint16(39136), + 2975: uint16(37395), + 2976: uint16(18718), + 2977: uint16(37416), + 2978: uint16(37464), + 2979: uint16(37483), + 2980: uint16(37553), + 2981: uint16(37550), + 2982: uint16(37567), + 2983: uint16(37603), + 2984: uint16(37611), + 2985: uint16(37619), + 2986: uint16(37620), + 2987: uint16(37629), + 2988: uint16(37699), + 2989: uint16(37764), + 2990: uint16(37805), + 2991: uint16(18757), + 2992: uint16(18769), + 2993: uint16(40639), + 2994: uint16(37911), + 2995: uint16(21249), + 2996: uint16(37917), + 2997: uint16(37933), + 2998: uint16(37950), + 2999: uint16(18794), + 3000: uint16(37972), + 3001: uint16(38009), + 3002: uint16(38189), + 3003: uint16(38306), + 3004: uint16(18855), + 3005: uint16(38388), + 3006: uint16(38451), + 3007: uint16(18917), + 3008: uint16(26528), + 3009: uint16(18980), + 3010: uint16(38720), + 3011: uint16(18997), + 3012: uint16(38834), + 3013: uint16(38850), + 3014: uint16(22100), + 3015: uint16(19172), + 3016: uint16(24808), + 3017: uint16(39097), + 3018: uint16(19225), + 3019: uint16(39153), + 3020: uint16(22596), + 3021: uint16(39182), + 3022: uint16(39193), + 3023: uint16(20916), + 3024: uint16(39196), + 3025: uint16(39223), + 3026: uint16(39234), + 3027: uint16(39261), + 3028: uint16(39266), + 3029: uint16(19312), + 3030: uint16(39365), + 3031: uint16(19357), + 3032: uint16(39484), + 3033: uint16(39695), + 3034: uint16(31363), + 3035: uint16(39785), + 3036: uint16(39809), + 3037: uint16(39901), + 3038: uint16(39921), + 3039: uint16(39924), + 3040: uint16(19565), + 3041: uint16(39968), + 3042: uint16(14191), + 3043: uint16(7106), + 3044: uint16(40265), + 3045: uint16(39994), + 3046: uint16(40702), + 3047: uint16(22096), + 3048: uint16(40339), + 3049: uint16(40381), + 3050: uint16(40384), + 3051: uint16(40444), + 3052: uint16(38134), + 3053: uint16(36790), + 3054: uint16(40571), + 3055: uint16(40620), + 3056: uint16(40625), + 3057: uint16(40637), + 3058: uint16(40646), + 3059: uint16(38108), + 3060: uint16(40674), + 3061: uint16(40689), + 3062: uint16(40696), + 3063: uint16(31432), + 3064: uint16(40772), + 3065: uint16(148), + 3066: uint16(695), + 3067: uint16(928), + 3068: uint16(26906), + 3069: uint16(38083), + 3070: uint16(22956), + 3071: uint16(1239), + 3072: uint16(22592), + 3073: uint16(38081), + 3074: uint16(14265), + 3075: uint16(1493), + 3076: uint16(1557), + 3077: uint16(1654), + 3078: uint16(5818), + 3079: uint16(22359), + 3080: uint16(29043), + 3081: uint16(2754), + 3082: uint16(2765), + 3083: uint16(3007), + 3084: uint16(21610), + 3085: uint16(63547), + 3086: uint16(3019), + 3087: uint16(21662), + 3088: uint16(3067), + 3089: uint16(3131), + 3090: uint16(3155), + 3091: uint16(3173), + 3092: uint16(3196), + 3093: uint16(24807), + 3094: uint16(3213), + 3095: uint16(22138), + 3096: uint16(3253), + 3097: uint16(3293), + 3098: uint16(3309), + 3099: uint16(3439), + 3100: uint16(3506), + 3101: uint16(3528), + 3102: uint16(26965), + 3103: uint16(39983), + 3104: uint16(34725), + 3105: uint16(3588), + 3106: uint16(3598), + 3107: uint16(3799), + 3108: uint16(3984), + 3109: uint16(3885), + 3110: uint16(3699), + 3111: uint16(23584), + 3112: uint16(4028), + 3113: uint16(24075), + 3114: uint16(4188), + 3115: uint16(4175), + 3116: uint16(4214), + 3117: uint16(26398), + 3118: uint16(4219), + 3119: uint16(4232), + 3120: uint16(4246), + 3121: uint16(13895), + 3122: uint16(4287), + 3123: uint16(4307), + 3124: uint16(4399), + 3125: uint16(4411), + 3126: uint16(21348), + 3127: uint16(33965), + 3128: uint16(4835), + 3129: uint16(4981), + 3130: uint16(4918), + 3131: uint16(35713), + 3132: uint16(5495), + 3133: uint16(5657), + 3134: uint16(6083), + 3135: uint16(6087), + 3136: uint16(20088), + 3137: uint16(28859), + 3138: uint16(6189), + 3139: uint16(6506), + 3140: uint16(6701), + 3141: uint16(6725), + 3142: uint16(7210), + 3143: uint16(7280), + 3144: uint16(7340), + 3145: uint16(7880), + 3146: uint16(25283), + 3147: uint16(7893), + 3148: uint16(7957), + 3149: uint16(29080), + 3150: uint16(26709), + 3151: uint16(8261), + 3152: uint16(27113), + 3153: uint16(14024), + 3154: uint16(8828), + 3155: uint16(9175), + 3156: uint16(9210), + 3157: uint16(10026), + 3158: uint16(10353), + 3159: uint16(10575), + 3160: uint16(33533), + 3161: uint16(10599), + 3162: uint16(10643), + 3163: uint16(10965), + 3164: uint16(35237), + 3165: uint16(10984), + 3166: uint16(36768), + 3167: uint16(11022), + 3168: uint16(38840), + 3169: uint16(11071), + 3170: uint16(38983), + 3171: uint16(39613), + 3172: uint16(11340), + 3174: uint16(11400), + 3175: uint16(11447), + 3176: uint16(23528), + 3177: uint16(11528), + 3178: uint16(11538), + 3179: uint16(11703), + 3180: uint16(11669), + 3181: uint16(11842), + 3182: uint16(12148), + 3183: uint16(12236), + 3184: uint16(12339), + 3185: uint16(12390), + 3186: uint16(13087), + 3187: uint16(13278), + 3188: uint16(24497), + 3189: uint16(26184), + 3190: uint16(26303), + 3191: uint16(31353), + 3192: uint16(13671), + 3193: uint16(13811), + 3195: uint16(18874), + 3197: uint16(13850), + 3198: uint16(14102), + 3200: uint16(838), + 3201: uint16(22709), + 3202: uint16(26382), + 3203: uint16(26904), + 3204: uint16(15015), + 3205: uint16(30295), + 3206: uint16(24546), + 3207: uint16(15889), + 3208: uint16(16057), + 3209: uint16(30206), + 3210: uint16(8346), + 3211: uint16(18640), + 3212: uint16(19128), + 3213: uint16(16665), + 3214: uint16(35482), + 3215: uint16(17134), + 3216: uint16(17165), + 3217: uint16(16443), + 3218: uint16(17204), + 3219: uint16(17302), + 3220: uint16(19013), + 3221: uint16(1482), + 3222: uint16(20946), + 3223: uint16(1553), + 3224: uint16(22943), + 3225: uint16(7848), + 3226: uint16(15294), + 3227: uint16(15615), + 3228: uint16(17412), + 3229: uint16(17622), + 3230: uint16(22408), + 3231: uint16(18036), + 3232: uint16(14747), + 3233: uint16(18223), + 3234: uint16(34280), + 3235: uint16(39369), + 3236: uint16(14178), + 3237: uint16(8643), + 3238: uint16(35678), + 3239: uint16(35662), + 3241: uint16(18450), + 3242: uint16(18683), + 3243: uint16(18965), + 3244: uint16(29193), + 3245: uint16(19136), + 3246: uint16(3192), + 3247: uint16(22885), + 3248: uint16(20133), + 3249: uint16(20358), + 3250: uint16(1913), + 3251: uint16(36570), + 3252: uint16(20524), + 3253: uint16(21135), + 3254: uint16(22335), + 3255: uint16(29041), + 3256: uint16(21145), + 3257: uint16(21529), + 3258: uint16(16202), + 3259: uint16(19111), + 3260: uint16(21948), + 3261: uint16(21574), + 3262: uint16(21614), + 3263: uint16(27474), + 3265: uint16(13427), + 3266: uint16(21823), + 3267: uint16(30258), + 3268: uint16(21854), + 3269: uint16(18200), + 3270: uint16(21858), + 3271: uint16(21862), + 3272: uint16(22471), + 3273: uint16(18751), + 3274: uint16(22621), + 3275: uint16(20582), + 3276: uint16(13563), + 3277: uint16(13260), + 3279: uint16(22787), + 3280: uint16(18300), + 3281: uint16(35144), + 3282: uint16(23214), + 3283: uint16(23433), + 3284: uint16(23558), + 3285: uint16(7568), + 3286: uint16(22433), + 3287: uint16(29009), + 3289: uint16(24834), + 3290: uint16(31762), + 3291: uint16(36950), + 3292: uint16(25010), + 3293: uint16(20378), + 3294: uint16(35682), + 3295: uint16(25602), + 3296: uint16(25674), + 3297: uint16(23899), + 3298: uint16(27639), + 3300: uint16(25732), + 3301: uint16(6428), + 3302: uint16(35562), + 3303: uint16(18934), + 3304: uint16(25736), + 3305: uint16(16367), + 3306: uint16(25874), + 3307: uint16(19392), + 3308: uint16(26047), + 3309: uint16(26293), + 3310: uint16(10011), + 3311: uint16(37989), + 3312: uint16(22497), + 3313: uint16(24981), + 3314: uint16(23079), + 3315: uint16(63693), + 3317: uint16(22201), + 3318: uint16(17697), + 3319: uint16(26364), + 3320: uint16(20074), + 3321: uint16(18740), + 3322: uint16(38486), + 3323: uint16(28047), + 3324: uint16(27837), + 3325: uint16(13848), + 3326: uint16(35191), + 3327: uint16(26521), + 3328: uint16(26734), + 3329: uint16(25617), + 3330: uint16(26718), + 3332: uint16(26823), + 3333: uint16(31554), + 3334: uint16(37056), + 3335: uint16(2577), + 3336: uint16(26918), + 3338: uint16(26937), + 3339: uint16(31301), + 3341: uint16(27130), + 3342: uint16(39462), + 3343: uint16(27181), + 3344: uint16(13919), + 3345: uint16(25705), + 3346: uint16(33), + 3347: uint16(31107), + 3348: uint16(27188), + 3349: uint16(27483), + 3350: uint16(23852), + 3351: uint16(13593), + 3353: uint16(27549), + 3354: uint16(18128), + 3355: uint16(27812), + 3356: uint16(30011), + 3357: uint16(34917), + 3358: uint16(28078), + 3359: uint16(22710), + 3360: uint16(14108), + 3361: uint16(9613), + 3362: uint16(28747), + 3363: uint16(29133), + 3364: uint16(15444), + 3365: uint16(29312), + 3366: uint16(29317), + 3367: uint16(37505), + 3368: uint16(8570), + 3369: uint16(29323), + 3370: uint16(37680), + 3371: uint16(29414), + 3372: uint16(18896), + 3373: uint16(27705), + 3374: uint16(38047), + 3375: uint16(29776), + 3376: uint16(3832), + 3377: uint16(34855), + 3378: uint16(35061), + 3379: uint16(10534), + 3380: uint16(33907), + 3381: uint16(6065), + 3382: uint16(28344), + 3383: uint16(18986), + 3384: uint16(6176), + 3385: uint16(14756), + 3386: uint16(14009), + 3389: uint16(17727), + 3390: uint16(26294), + 3391: uint16(40109), + 3392: uint16(39076), + 3393: uint16(35139), + 3394: uint16(30668), + 3395: uint16(30808), + 3396: uint16(22230), + 3397: uint16(16607), + 3398: uint16(5642), + 3399: uint16(14753), + 3400: uint16(14127), + 3401: uint16(33000), + 3402: uint16(5061), + 3403: uint16(29101), + 3404: uint16(33638), + 3405: uint16(31197), + 3406: uint16(37288), + 3408: uint16(19639), + 3409: uint16(28847), + 3410: uint16(35243), + 3411: uint16(31229), + 3412: uint16(31242), + 3413: uint16(31499), + 3414: uint16(32102), + 3415: uint16(16762), + 3416: uint16(31555), + 3417: uint16(31102), + 3418: uint16(32777), + 3419: uint16(28597), + 3420: uint16(41695), + 3421: uint16(27139), + 3422: uint16(33560), + 3423: uint16(21410), + 3424: uint16(28167), + 3425: uint16(37823), + 3426: uint16(26678), + 3427: uint16(38749), + 3428: uint16(33135), + 3429: uint16(32803), + 3430: uint16(27061), + 3431: uint16(5101), + 3432: uint16(12847), + 3433: uint16(32840), + 3434: uint16(23941), + 3435: uint16(35888), + 3436: uint16(32899), + 3437: uint16(22293), + 3438: uint16(38947), + 3439: uint16(35145), + 3440: uint16(23979), + 3441: uint16(18824), + 3442: uint16(26046), + 3443: uint16(27093), + 3444: uint16(21458), + 3445: uint16(19109), + 3446: uint16(16257), + 3447: uint16(15377), + 3448: uint16(26422), + 3449: uint16(32912), + 3450: uint16(33012), + 3451: uint16(33070), + 3452: uint16(8097), + 3453: uint16(33103), + 3454: uint16(33161), + 3455: uint16(33199), + 3456: uint16(33306), + 3457: uint16(33542), + 3458: uint16(33583), + 3459: uint16(33674), + 3460: uint16(13770), + 3461: uint16(33896), + 3462: uint16(34474), + 3463: uint16(18682), + 3464: uint16(25574), + 3465: uint16(35158), + 3466: uint16(30728), + 3467: uint16(37461), + 3468: uint16(35256), + 3469: uint16(17394), + 3470: uint16(35303), + 3471: uint16(17375), + 3472: uint16(35304), + 3473: uint16(35654), + 3474: uint16(35796), + 3475: uint16(23032), + 3476: uint16(35849), + 3478: uint16(36805), + 3479: uint16(37100), + 3481: uint16(37136), + 3482: uint16(37180), + 3483: uint16(15863), + 3484: uint16(37214), + 3485: uint16(19146), + 3486: uint16(36816), + 3487: uint16(29327), + 3488: uint16(22155), + 3489: uint16(38119), + 3490: uint16(38377), + 3491: uint16(38320), + 3492: uint16(38328), + 3493: uint16(38706), + 3494: uint16(39121), + 3495: uint16(39241), + 3496: uint16(39274), + 3497: uint16(39363), + 3498: uint16(39464), + 3499: uint16(39694), + 3500: uint16(40282), + 3501: uint16(40347), + 3502: uint16(32415), + 3503: uint16(40696), + 3504: uint16(40739), + 3505: uint16(19620), + 3506: uint16(38215), + 3507: uint16(41619), + 3508: uint16(29090), + 3509: uint16(41727), + 3510: uint16(19857), + 3511: uint16(36882), + 3512: uint16(42443), + 3513: uint16(19868), + 3514: uint16(3228), + 3515: uint16(36798), + 3516: uint16(21953), + 3517: uint16(36794), + 3518: uint16(9392), + 3519: uint16(36793), + 3520: uint16(19091), + 3521: uint16(17673), + 3522: uint16(32383), + 3523: uint16(28502), + 3524: uint16(27313), + 3525: uint16(20202), + 3526: uint16(13540), + 3527: uint16(35628), + 3528: uint16(30877), + 3529: uint16(14138), + 3530: uint16(36480), + 3531: uint16(6133), + 3532: uint16(32804), + 3533: uint16(35692), + 3534: uint16(35737), + 3535: uint16(31294), + 3536: uint16(26287), + 3537: uint16(15851), + 3538: uint16(30293), + 3539: uint16(15543), + 3540: uint16(22069), + 3541: uint16(22870), + 3542: uint16(20122), + 3543: uint16(24193), + 3544: uint16(25176), + 3545: uint16(22207), + 3546: uint16(3693), + 3547: uint16(36366), + 3548: uint16(23405), + 3549: uint16(16008), + 3550: uint16(19614), + 3551: uint16(25566), + 3553: uint16(6134), + 3554: uint16(6267), + 3555: uint16(25904), + 3556: uint16(22061), + 3557: uint16(23626), + 3558: uint16(21530), + 3559: uint16(21265), + 3560: uint16(15814), + 3561: uint16(40344), + 3562: uint16(19581), + 3563: uint16(22050), + 3564: uint16(22046), + 3565: uint16(32585), + 3566: uint16(24280), + 3567: uint16(22901), + 3568: uint16(15680), + 3569: uint16(34672), + 3570: uint16(19996), + 3571: uint16(4074), + 3572: uint16(3401), + 3573: uint16(14010), + 3574: uint16(33047), + 3575: uint16(40286), + 3576: uint16(36120), + 3577: uint16(30267), + 3578: uint16(40005), + 3579: uint16(30286), + 3580: uint16(30649), + 3581: uint16(37701), + 3582: uint16(21554), + 3583: uint16(33096), + 3584: uint16(33527), + 3585: uint16(22053), + 3586: uint16(33074), + 3587: uint16(33816), + 3588: uint16(32957), + 3589: uint16(21994), + 3590: uint16(31074), + 3591: uint16(22083), + 3592: uint16(21526), + 3593: uint16(3741), + 3594: uint16(13774), + 3595: uint16(22021), + 3596: uint16(22001), + 3597: uint16(26353), + 3598: uint16(33506), + 3599: uint16(13869), + 3600: uint16(30004), + 3601: uint16(22000), + 3602: uint16(21946), + 3603: uint16(21655), + 3604: uint16(21874), + 3605: uint16(3137), + 3606: uint16(3222), + 3607: uint16(24272), + 3608: uint16(20808), + 3609: uint16(3702), + 3610: uint16(11362), + 3611: uint16(3746), + 3612: uint16(40619), + 3613: uint16(32090), + 3614: uint16(21982), + 3615: uint16(4213), + 3616: uint16(25245), + 3617: uint16(38765), + 3618: uint16(21652), + 3619: uint16(36045), + 3620: uint16(29174), + 3621: uint16(37238), + 3622: uint16(25596), + 3623: uint16(25529), + 3624: uint16(25598), + 3625: uint16(21865), + 3626: uint16(11075), + 3627: uint16(40050), + 3628: uint16(11955), + 3629: uint16(20890), + 3630: uint16(13535), + 3631: uint16(3495), + 3632: uint16(20903), + 3633: uint16(21581), + 3634: uint16(21790), + 3635: uint16(21779), + 3636: uint16(30310), + 3637: uint16(36397), + 3638: uint16(26762), + 3639: uint16(30129), + 3640: uint16(32950), + 3641: uint16(34820), + 3642: uint16(34694), + 3643: uint16(35015), + 3644: uint16(33206), + 3645: uint16(33820), + 3646: uint16(4289), + 3647: uint16(17644), + 3648: uint16(29444), + 3649: uint16(18182), + 3650: uint16(23440), + 3651: uint16(33547), + 3652: uint16(26771), + 3653: uint16(22139), + 3654: uint16(9972), + 3655: uint16(32047), + 3656: uint16(16803), + 3657: uint16(32115), + 3658: uint16(28368), + 3659: uint16(29366), + 3660: uint16(37232), + 3661: uint16(4569), + 3662: uint16(37384), + 3663: uint16(15612), + 3664: uint16(42665), + 3665: uint16(3756), + 3666: uint16(3833), + 3667: uint16(29286), + 3668: uint16(7330), + 3669: uint16(18254), + 3670: uint16(20418), + 3671: uint16(32761), + 3672: uint16(4075), + 3673: uint16(16634), + 3674: uint16(40029), + 3675: uint16(25887), + 3676: uint16(11680), + 3677: uint16(18675), + 3678: uint16(18400), + 3679: uint16(40316), + 3680: uint16(4076), + 3681: uint16(3594), + 3683: uint16(30115), + 3684: uint16(4077), + 3686: uint16(24648), + 3687: uint16(4487), + 3688: uint16(29091), + 3689: uint16(32398), + 3690: uint16(40272), + 3691: uint16(19994), + 3692: uint16(19972), + 3693: uint16(13687), + 3694: uint16(23309), + 3695: uint16(27826), + 3696: uint16(21351), + 3697: uint16(13996), + 3698: uint16(14812), + 3699: uint16(21373), + 3700: uint16(13989), + 3701: uint16(17944), + 3702: uint16(22682), + 3703: uint16(19310), + 3704: uint16(33325), + 3705: uint16(21579), + 3706: uint16(22442), + 3707: uint16(23189), + 3708: uint16(2425), + 3710: uint16(14930), + 3711: uint16(9317), + 3712: uint16(29556), + 3713: uint16(40620), + 3714: uint16(19721), + 3715: uint16(39917), + 3716: uint16(15614), + 3717: uint16(40752), + 3718: uint16(19547), + 3719: uint16(20393), + 3720: uint16(38302), + 3721: uint16(40926), + 3722: uint16(33884), + 3723: uint16(15798), + 3724: uint16(29362), + 3725: uint16(26547), + 3726: uint16(14112), + 3727: uint16(25390), + 3728: uint16(32037), + 3729: uint16(16119), + 3730: uint16(15916), + 3731: uint16(14890), + 3732: uint16(36872), + 3733: uint16(21196), + 3734: uint16(15988), + 3735: uint16(13946), + 3736: uint16(17897), + 3737: uint16(1166), + 3738: uint16(30272), + 3739: uint16(23280), + 3740: uint16(3766), + 3741: uint16(30842), + 3742: uint16(32558), + 3743: uint16(22695), + 3744: uint16(16575), + 3745: uint16(22140), + 3746: uint16(39819), + 3747: uint16(23924), + 3748: uint16(30292), + 3749: uint16(42036), + 3750: uint16(40581), + 3751: uint16(19681), + 3753: uint16(14331), + 3754: uint16(24857), + 3755: uint16(12506), + 3756: uint16(17394), + 3758: uint16(22109), + 3759: uint16(4777), + 3760: uint16(22439), + 3761: uint16(18787), + 3762: uint16(40454), + 3763: uint16(21044), + 3764: uint16(28846), + 3765: uint16(13741), + 3767: uint16(40316), + 3768: uint16(31830), + 3769: uint16(39737), + 3770: uint16(22494), + 3771: uint16(5996), + 3772: uint16(23635), + 3773: uint16(25811), + 3774: uint16(38096), + 3775: uint16(25397), + 3776: uint16(29028), + 3777: uint16(34477), + 3778: uint16(3368), + 3779: uint16(27938), + 3780: uint16(19170), + 3781: uint16(3441), + 3783: uint16(20990), + 3784: uint16(7951), + 3785: uint16(23950), + 3786: uint16(38659), + 3787: uint16(7633), + 3788: uint16(40577), + 3789: uint16(36940), + 3790: uint16(31519), + 3791: uint16(39682), + 3792: uint16(23761), + 3793: uint16(31651), + 3794: uint16(25192), + 3795: uint16(25397), + 3796: uint16(39679), + 3797: uint16(31695), + 3798: uint16(39722), + 3799: uint16(31870), + 3801: uint16(31810), + 3802: uint16(31878), + 3803: uint16(39957), + 3804: uint16(31740), + 3805: uint16(39689), + 3807: uint16(39963), + 3808: uint16(18750), + 3809: uint16(40794), + 3810: uint16(21875), + 3811: uint16(23491), + 3812: uint16(20477), + 3813: uint16(40600), + 3814: uint16(20466), + 3815: uint16(21088), + 3816: uint16(15878), + 3817: uint16(21201), + 3818: uint16(22375), + 3819: uint16(20566), + 3820: uint16(22967), + 3821: uint16(24082), + 3822: uint16(38856), + 3823: uint16(40363), + 3824: uint16(36700), + 3825: uint16(21609), + 3826: uint16(38836), + 3827: uint16(39232), + 3828: uint16(38842), + 3829: uint16(21292), + 3830: uint16(24880), + 3831: uint16(26924), + 3832: uint16(21466), + 3833: uint16(39946), + 3834: uint16(40194), + 3835: uint16(19515), + 3836: uint16(38465), + 3837: uint16(27008), + 3838: uint16(20646), + 3839: uint16(30022), + 3840: uint16(5997), + 3841: uint16(39386), + 3842: uint16(21107), + 3844: uint16(37209), + 3845: uint16(38529), + 3846: uint16(37212), + 3848: uint16(37201), + 3849: uint16(36503), + 3850: uint16(25471), + 3851: uint16(27939), + 3852: uint16(27338), + 3853: uint16(22033), + 3854: uint16(37262), + 3855: uint16(30074), + 3856: uint16(25221), + 3857: uint16(1020), + 3858: uint16(29519), + 3859: uint16(31856), + 3860: uint16(23585), + 3861: uint16(15613), + 3863: uint16(18713), + 3864: uint16(30422), + 3865: uint16(39837), + 3866: uint16(20010), + 3867: uint16(3284), + 3868: uint16(33726), + 3869: uint16(34882), + 3871: uint16(23626), + 3872: uint16(27072), + 3874: uint16(22394), + 3875: uint16(21023), + 3876: uint16(24053), + 3877: uint16(20174), + 3878: uint16(27697), + 3879: uint16(498), + 3880: uint16(20281), + 3881: uint16(21660), + 3882: uint16(21722), + 3883: uint16(21146), + 3884: uint16(36226), + 3885: uint16(13822), + 3887: uint16(13811), + 3889: uint16(27474), + 3890: uint16(37244), + 3891: uint16(40869), + 3892: uint16(39831), + 3893: uint16(38958), + 3894: uint16(39092), + 3895: uint16(39610), + 3896: uint16(40616), + 3897: uint16(40580), + 3898: uint16(29050), + 3899: uint16(31508), + 3901: uint16(27642), + 3902: uint16(34840), + 3903: uint16(32632), + 3905: uint16(22048), + 3906: uint16(42570), + 3907: uint16(36471), + 3908: uint16(40787), + 3910: uint16(36308), + 3911: uint16(36431), + 3912: uint16(40476), + 3913: uint16(36353), + 3914: uint16(25218), + 3915: uint16(33661), + 3916: uint16(36392), + 3917: uint16(36469), + 3918: uint16(31443), + 3919: uint16(19063), + 3920: uint16(31294), + 3921: uint16(30936), + 3922: uint16(27882), + 3923: uint16(35431), + 3924: uint16(30215), + 3925: uint16(35418), + 3926: uint16(40742), + 3927: uint16(27854), + 3928: uint16(34774), + 3929: uint16(30147), + 3930: uint16(41650), + 3931: uint16(30803), + 3932: uint16(63552), + 3933: uint16(36108), + 3934: uint16(29410), + 3935: uint16(29553), + 3936: uint16(35629), + 3937: uint16(29442), + 3938: uint16(29937), + 3939: uint16(36075), + 3940: uint16(19131), + 3941: uint16(34351), + 3942: uint16(24506), + 3943: uint16(34976), + 3944: uint16(17591), + 3946: uint16(6203), + 3947: uint16(28165), + 3949: uint16(35454), + 3950: uint16(9499), + 3952: uint16(24829), + 3953: uint16(30311), + 3954: uint16(39639), + 3955: uint16(40260), + 3956: uint16(37742), + 3957: uint16(39823), + 3958: uint16(34805), + 3961: uint16(36087), + 3962: uint16(29484), + 3963: uint16(38689), + 3964: uint16(39856), + 3965: uint16(13782), + 3966: uint16(29362), + 3967: uint16(19463), + 3968: uint16(31825), + 3969: uint16(39242), + 3970: uint16(24921), + 3971: uint16(24921), + 3972: uint16(19460), + 3973: uint16(40598), + 3974: uint16(24957), + 3976: uint16(22367), + 3977: uint16(24943), + 3978: uint16(25254), + 3979: uint16(25145), + 3981: uint16(14940), + 3982: uint16(25058), + 3983: uint16(21418), + 3984: uint16(13301), + 3985: uint16(25444), + 3986: uint16(26626), + 3987: uint16(13778), + 3988: uint16(23895), + 3989: uint16(35778), + 3990: uint16(36826), + 3991: uint16(36409), + 3993: uint16(20697), + 3994: uint16(7494), + 3995: uint16(30982), + 3996: uint16(21298), + 3997: uint16(38456), + 3998: uint16(3899), + 3999: uint16(16485), + 4001: uint16(30718), + 4003: uint16(31938), + 4004: uint16(24346), + 4005: uint16(31962), + 4006: uint16(31277), + 4007: uint16(32870), + 4008: uint16(32867), + 4009: uint16(32077), + 4010: uint16(29957), + 4011: uint16(29938), + 4012: uint16(35220), + 4013: uint16(33306), + 4014: uint16(26380), + 4015: uint16(32866), + 4016: uint16(29830), + 4017: uint16(32859), + 4018: uint16(29936), + 4019: uint16(33027), + 4020: uint16(30500), + 4021: uint16(35209), + 4022: uint16(26572), + 4023: uint16(30035), + 4024: uint16(28369), + 4025: uint16(34729), + 4026: uint16(34766), + 4027: uint16(33224), + 4028: uint16(34700), + 4029: uint16(35401), + 4030: uint16(36013), + 4031: uint16(35651), + 4032: uint16(30507), + 4033: uint16(29944), + 4034: uint16(34010), + 4035: uint16(13877), + 4036: uint16(27058), + 4037: uint16(36262), + 4039: uint16(35241), + 4041: uint16(28089), + 4042: uint16(34753), + 4043: uint16(16401), + 4044: uint16(29927), + 4045: uint16(15835), + 4046: uint16(29046), + 4047: uint16(24740), + 4048: uint16(24988), + 4049: uint16(15569), + 4051: uint16(24695), + 4053: uint16(32625), + 4054: uint16(35629), + 4056: uint16(24809), + 4057: uint16(19326), + 4058: uint16(21024), + 4059: uint16(15384), + 4060: uint16(15559), + 4061: uint16(24279), + 4062: uint16(30294), + 4063: uint16(21809), + 4064: uint16(6468), + 4065: uint16(4862), + 4066: uint16(39171), + 4067: uint16(28124), + 4068: uint16(28845), + 4069: uint16(23745), + 4070: uint16(25005), + 4071: uint16(35343), + 4072: uint16(13943), + 4073: uint16(238), + 4074: uint16(26694), + 4075: uint16(20238), + 4076: uint16(17762), + 4077: uint16(23327), + 4078: uint16(25420), + 4079: uint16(40784), + 4080: uint16(40614), + 4081: uint16(25195), + 4082: uint16(1351), + 4083: uint16(37595), + 4084: uint16(1503), + 4085: uint16(16325), + 4086: uint16(34124), + 4087: uint16(17077), + 4088: uint16(29679), + 4089: uint16(20917), + 4090: uint16(13897), + 4091: uint16(18754), + 4092: uint16(35300), + 4093: uint16(37700), + 4094: uint16(6619), + 4095: uint16(33518), + 4096: uint16(15560), + 4097: uint16(30780), + 4098: uint16(26436), + 4099: uint16(25311), + 4100: uint16(18739), + 4101: uint16(35242), + 4102: uint16(672), + 4103: uint16(27571), + 4104: uint16(4869), + 4105: uint16(20395), + 4106: uint16(9453), + 4107: uint16(20488), + 4108: uint16(27945), + 4109: uint16(31364), + 4110: uint16(13824), + 4111: uint16(19121), + 4112: uint16(9491), + 4114: uint16(894), + 4115: uint16(24484), + 4116: uint16(896), + 4117: uint16(839), + 4118: uint16(28379), + 4119: uint16(1055), + 4121: uint16(20737), + 4122: uint16(13434), + 4123: uint16(20750), + 4124: uint16(39020), + 4125: uint16(14147), + 4126: uint16(33814), + 4127: uint16(18852), + 4128: uint16(1159), + 4129: uint16(20832), + 4130: uint16(13236), + 4131: uint16(20842), + 4132: uint16(3071), + 4133: uint16(8444), + 4134: uint16(741), + 4135: uint16(9520), + 4136: uint16(1422), + 4137: uint16(12851), + 4138: uint16(6531), + 4139: uint16(23426), + 4140: uint16(34685), + 4141: uint16(1459), + 4142: uint16(15513), + 4143: uint16(20914), + 4144: uint16(20920), + 4145: uint16(40244), + 4146: uint16(20937), + 4147: uint16(20943), + 4148: uint16(20945), + 4149: uint16(15580), + 4150: uint16(20947), + 4151: uint16(19110), + 4152: uint16(20915), + 4153: uint16(20962), + 4154: uint16(21314), + 4155: uint16(20973), + 4156: uint16(33741), + 4157: uint16(26942), + 4158: uint16(14125), + 4159: uint16(24443), + 4160: uint16(21003), + 4161: uint16(21030), + 4162: uint16(21052), + 4163: uint16(21173), + 4164: uint16(21079), + 4165: uint16(21140), + 4166: uint16(21177), + 4167: uint16(21189), + 4168: uint16(31765), + 4169: uint16(34114), + 4170: uint16(21216), + 4171: uint16(34317), + 4172: uint16(27411), + 4174: uint16(35550), + 4175: uint16(21833), + 4176: uint16(28377), + 4177: uint16(16256), + 4178: uint16(2388), + 4179: uint16(16364), + 4180: uint16(21299), + 4182: uint16(3042), + 4183: uint16(27851), + 4184: uint16(5926), + 4185: uint16(26651), + 4186: uint16(29653), + 4187: uint16(24650), + 4188: uint16(16042), + 4189: uint16(14540), + 4190: uint16(5864), + 4191: uint16(29149), + 4192: uint16(17570), + 4193: uint16(21357), + 4194: uint16(21364), + 4195: uint16(34475), + 4196: uint16(21374), + 4198: uint16(5526), + 4199: uint16(5651), + 4200: uint16(30694), + 4201: uint16(21395), + 4202: uint16(35483), + 4203: uint16(21408), + 4204: uint16(21419), + 4205: uint16(21422), + 4206: uint16(29607), + 4207: uint16(22386), + 4208: uint16(16217), + 4209: uint16(29596), + 4210: uint16(21441), + 4211: uint16(21445), + 4212: uint16(27721), + 4213: uint16(20041), + 4214: uint16(22526), + 4215: uint16(21465), + 4216: uint16(15019), + 4217: uint16(2959), + 4218: uint16(21472), + 4219: uint16(16363), + 4220: uint16(11683), + 4221: uint16(21494), + 4222: uint16(3191), + 4223: uint16(21523), + 4224: uint16(28793), + 4225: uint16(21803), + 4226: uint16(26199), + 4227: uint16(27995), + 4228: uint16(21613), + 4229: uint16(27475), + 4230: uint16(3444), + 4231: uint16(21853), + 4232: uint16(21647), + 4233: uint16(21668), + 4234: uint16(18342), + 4235: uint16(5901), + 4236: uint16(3805), + 4237: uint16(15796), + 4238: uint16(3405), + 4239: uint16(35260), + 4240: uint16(9880), + 4241: uint16(21831), + 4242: uint16(19693), + 4243: uint16(21551), + 4244: uint16(29719), + 4245: uint16(21894), + 4246: uint16(21929), + 4248: uint16(6359), + 4249: uint16(16442), + 4250: uint16(17746), + 4251: uint16(17461), + 4252: uint16(26291), + 4253: uint16(4276), + 4254: uint16(22071), + 4255: uint16(26317), + 4256: uint16(12938), + 4257: uint16(26276), + 4258: uint16(26285), + 4259: uint16(22093), + 4260: uint16(22095), + 4261: uint16(30961), + 4262: uint16(22257), + 4263: uint16(38791), + 4264: uint16(21502), + 4265: uint16(22272), + 4266: uint16(22255), + 4267: uint16(22253), + 4268: uint16(35686), + 4269: uint16(13859), + 4270: uint16(4687), + 4271: uint16(22342), + 4272: uint16(16805), + 4273: uint16(27758), + 4274: uint16(28811), + 4275: uint16(22338), + 4276: uint16(14001), + 4277: uint16(27774), + 4278: uint16(22502), + 4279: uint16(5142), + 4280: uint16(22531), + 4281: uint16(5204), + 4282: uint16(17251), + 4283: uint16(22566), + 4284: uint16(19445), + 4285: uint16(22620), + 4286: uint16(22698), + 4287: uint16(13665), + 4288: uint16(22752), + 4289: uint16(22748), + 4290: uint16(4668), + 4291: uint16(22779), + 4292: uint16(23551), + 4293: uint16(22339), + 4294: uint16(41296), + 4295: uint16(17016), + 4296: uint16(37843), + 4297: uint16(13729), + 4298: uint16(22815), + 4299: uint16(26790), + 4300: uint16(14019), + 4301: uint16(28249), + 4302: uint16(5694), + 4303: uint16(23076), + 4304: uint16(21843), + 4305: uint16(5778), + 4306: uint16(34053), + 4307: uint16(22985), + 4308: uint16(3406), + 4309: uint16(27777), + 4310: uint16(27946), + 4311: uint16(6108), + 4312: uint16(23001), + 4313: uint16(6139), + 4314: uint16(6066), + 4315: uint16(28070), + 4316: uint16(28017), + 4317: uint16(6184), + 4318: uint16(5845), + 4319: uint16(23033), + 4320: uint16(28229), + 4321: uint16(23211), + 4322: uint16(23139), + 4323: uint16(14054), + 4324: uint16(18857), + 4326: uint16(14088), + 4327: uint16(23190), + 4328: uint16(29797), + 4329: uint16(23251), + 4330: uint16(28577), + 4331: uint16(9556), + 4332: uint16(15749), + 4333: uint16(6417), + 4334: uint16(14130), + 4335: uint16(5816), + 4336: uint16(24195), + 4337: uint16(21200), + 4338: uint16(23414), + 4339: uint16(25992), + 4340: uint16(23420), + 4341: uint16(31246), + 4342: uint16(16388), + 4343: uint16(18525), + 4344: uint16(516), + 4345: uint16(23509), + 4346: uint16(24928), + 4347: uint16(6708), + 4348: uint16(22988), + 4349: uint16(1445), + 4350: uint16(23539), + 4351: uint16(23453), + 4352: uint16(19728), + 4353: uint16(23557), + 4354: uint16(6980), + 4355: uint16(23571), + 4356: uint16(29646), + 4357: uint16(23572), + 4358: uint16(7333), + 4359: uint16(27432), + 4360: uint16(23625), + 4361: uint16(18653), + 4362: uint16(23685), + 4363: uint16(23785), + 4364: uint16(23791), + 4365: uint16(23947), + 4366: uint16(7673), + 4367: uint16(7735), + 4368: uint16(23824), + 4369: uint16(23832), + 4370: uint16(23878), + 4371: uint16(7844), + 4372: uint16(23738), + 4373: uint16(24023), + 4374: uint16(33532), + 4375: uint16(14381), + 4376: uint16(18689), + 4377: uint16(8265), + 4378: uint16(8563), + 4379: uint16(33415), + 4380: uint16(14390), + 4381: uint16(15298), + 4382: uint16(24110), + 4383: uint16(27274), + 4385: uint16(24186), + 4386: uint16(17596), + 4387: uint16(3283), + 4388: uint16(21414), + 4389: uint16(20151), + 4391: uint16(21416), + 4392: uint16(6001), + 4393: uint16(24073), + 4394: uint16(24308), + 4395: uint16(33922), + 4396: uint16(24313), + 4397: uint16(24315), + 4398: uint16(14496), + 4399: uint16(24316), + 4400: uint16(26686), + 4401: uint16(37915), + 4402: uint16(24333), + 4403: uint16(449), + 4404: uint16(63636), + 4405: uint16(15070), + 4406: uint16(18606), + 4407: uint16(4922), + 4408: uint16(24378), + 4409: uint16(26760), + 4410: uint16(9168), + 4412: uint16(9329), + 4413: uint16(24419), + 4414: uint16(38845), + 4415: uint16(28270), + 4416: uint16(24434), + 4417: uint16(37696), + 4418: uint16(35382), + 4419: uint16(24487), + 4420: uint16(23990), + 4421: uint16(15711), + 4422: uint16(21072), + 4423: uint16(8042), + 4424: uint16(28920), + 4425: uint16(9832), + 4426: uint16(37334), + 4427: uint16(670), + 4428: uint16(35369), + 4429: uint16(24625), + 4430: uint16(26245), + 4431: uint16(6263), + 4432: uint16(14691), + 4433: uint16(15815), + 4434: uint16(13881), + 4435: uint16(22416), + 4436: uint16(10164), + 4437: uint16(31089), + 4438: uint16(15936), + 4439: uint16(24734), + 4441: uint16(24755), + 4442: uint16(18818), + 4443: uint16(18831), + 4444: uint16(31315), + 4445: uint16(29860), + 4446: uint16(20705), + 4447: uint16(23200), + 4448: uint16(24932), + 4449: uint16(33828), + 4450: uint16(24898), + 4451: uint16(63654), + 4452: uint16(28370), + 4453: uint16(24961), + 4454: uint16(20980), + 4455: uint16(1622), + 4456: uint16(24967), + 4457: uint16(23466), + 4458: uint16(16311), + 4459: uint16(10335), + 4460: uint16(25043), + 4461: uint16(35741), + 4462: uint16(39261), + 4463: uint16(25040), + 4464: uint16(14642), + 4465: uint16(10624), + 4466: uint16(10433), + 4467: uint16(24611), + 4468: uint16(24924), + 4469: uint16(25886), + 4470: uint16(25483), + 4471: uint16(280), + 4472: uint16(25285), + 4473: uint16(6000), + 4474: uint16(25301), + 4475: uint16(11789), + 4476: uint16(25452), + 4477: uint16(18911), + 4478: uint16(14871), + 4479: uint16(25656), + 4480: uint16(25592), + 4481: uint16(5006), + 4482: uint16(6140), + 4484: uint16(28554), + 4485: uint16(11830), + 4486: uint16(38932), + 4487: uint16(16524), + 4488: uint16(22301), + 4489: uint16(25825), + 4490: uint16(25829), + 4491: uint16(38011), + 4492: uint16(14950), + 4493: uint16(25658), + 4494: uint16(14935), + 4495: uint16(25933), + 4496: uint16(28438), + 4497: uint16(18984), + 4498: uint16(18979), + 4499: uint16(25989), + 4500: uint16(25965), + 4501: uint16(25951), + 4502: uint16(12414), + 4503: uint16(26037), + 4504: uint16(18752), + 4505: uint16(19255), + 4506: uint16(26065), + 4507: uint16(16600), + 4508: uint16(6185), + 4509: uint16(26080), + 4510: uint16(26083), + 4511: uint16(24543), + 4512: uint16(13312), + 4513: uint16(26136), + 4514: uint16(12791), + 4515: uint16(12792), + 4516: uint16(26180), + 4517: uint16(12708), + 4518: uint16(12709), + 4519: uint16(26187), + 4520: uint16(3701), + 4521: uint16(26215), + 4522: uint16(20966), + 4523: uint16(26227), + 4525: uint16(7741), + 4526: uint16(12849), + 4527: uint16(34292), + 4528: uint16(12744), + 4529: uint16(21267), + 4530: uint16(30661), + 4531: uint16(10487), + 4532: uint16(39332), + 4533: uint16(26370), + 4534: uint16(17308), + 4535: uint16(18977), + 4536: uint16(15147), + 4537: uint16(27130), + 4538: uint16(14274), + 4540: uint16(26471), + 4541: uint16(26466), + 4542: uint16(16845), + 4543: uint16(37101), + 4544: uint16(26583), + 4545: uint16(17641), + 4546: uint16(26658), + 4547: uint16(28240), + 4548: uint16(37436), + 4549: uint16(26625), + 4550: uint16(13286), + 4551: uint16(28064), + 4552: uint16(26717), + 4553: uint16(13423), + 4554: uint16(27105), + 4555: uint16(27147), + 4556: uint16(35551), + 4557: uint16(26995), + 4558: uint16(26819), + 4559: uint16(13773), + 4560: uint16(26881), + 4561: uint16(26880), + 4562: uint16(15666), + 4563: uint16(14849), + 4564: uint16(13884), + 4565: uint16(15232), + 4566: uint16(26540), + 4567: uint16(26977), + 4568: uint16(35402), + 4569: uint16(17148), + 4570: uint16(26934), + 4571: uint16(27032), + 4572: uint16(15265), + 4573: uint16(969), + 4574: uint16(33635), + 4575: uint16(20624), + 4576: uint16(27129), + 4577: uint16(13913), + 4578: uint16(8490), + 4579: uint16(27205), + 4580: uint16(14083), + 4581: uint16(27293), + 4582: uint16(15347), + 4583: uint16(26545), + 4584: uint16(27336), + 4585: uint16(37276), + 4586: uint16(15373), + 4587: uint16(27421), + 4588: uint16(2339), + 4589: uint16(24798), + 4590: uint16(27445), + 4591: uint16(27508), + 4592: uint16(10189), + 4593: uint16(28341), + 4594: uint16(15067), + 4595: uint16(949), + 4596: uint16(6488), + 4597: uint16(14144), + 4598: uint16(21537), + 4599: uint16(15194), + 4600: uint16(27617), + 4601: uint16(16124), + 4602: uint16(27612), + 4603: uint16(27703), + 4604: uint16(9355), + 4605: uint16(18673), + 4606: uint16(27473), + 4607: uint16(27738), + 4608: uint16(33318), + 4609: uint16(27769), + 4610: uint16(15804), + 4611: uint16(17605), + 4612: uint16(15805), + 4613: uint16(16804), + 4614: uint16(18700), + 4615: uint16(18688), + 4616: uint16(15561), + 4617: uint16(14053), + 4618: uint16(15595), + 4619: uint16(3378), + 4620: uint16(39811), + 4621: uint16(12793), + 4622: uint16(9361), + 4623: uint16(32655), + 4624: uint16(26679), + 4625: uint16(27941), + 4626: uint16(28065), + 4627: uint16(28139), + 4628: uint16(28054), + 4629: uint16(27996), + 4630: uint16(28284), + 4631: uint16(28420), + 4632: uint16(18815), + 4633: uint16(16517), + 4634: uint16(28274), + 4635: uint16(34099), + 4636: uint16(28532), + 4637: uint16(20935), + 4640: uint16(33838), + 4641: uint16(35617), + 4643: uint16(15919), + 4644: uint16(29779), + 4645: uint16(16258), + 4646: uint16(31180), + 4647: uint16(28239), + 4648: uint16(23185), + 4649: uint16(12363), + 4650: uint16(28664), + 4651: uint16(14093), + 4652: uint16(28573), + 4653: uint16(15920), + 4654: uint16(28410), + 4655: uint16(5271), + 4656: uint16(16445), + 4657: uint16(17749), + 4658: uint16(37872), + 4659: uint16(28484), + 4660: uint16(28508), + 4661: uint16(15694), + 4662: uint16(28532), + 4663: uint16(37232), + 4664: uint16(15675), + 4665: uint16(28575), + 4666: uint16(16708), + 4667: uint16(28627), + 4668: uint16(16529), + 4669: uint16(16725), + 4670: uint16(16441), + 4671: uint16(16368), + 4672: uint16(16308), + 4673: uint16(16703), + 4674: uint16(20959), + 4675: uint16(16726), + 4676: uint16(16727), + 4677: uint16(16704), + 4678: uint16(25053), + 4679: uint16(28747), + 4680: uint16(28798), + 4681: uint16(28839), + 4682: uint16(28801), + 4683: uint16(28876), + 4684: uint16(28885), + 4685: uint16(28886), + 4686: uint16(28895), + 4687: uint16(16644), + 4688: uint16(15848), + 4689: uint16(29108), + 4690: uint16(29078), + 4691: uint16(17015), + 4692: uint16(28971), + 4693: uint16(28997), + 4694: uint16(23176), + 4695: uint16(29002), + 4697: uint16(23708), + 4698: uint16(17253), + 4699: uint16(29007), + 4700: uint16(37730), + 4701: uint16(17089), + 4702: uint16(28972), + 4703: uint16(17498), + 4704: uint16(18983), + 4705: uint16(18978), + 4706: uint16(29114), + 4707: uint16(35816), + 4708: uint16(28861), + 4709: uint16(29198), + 4710: uint16(37954), + 4711: uint16(29205), + 4712: uint16(22801), + 4713: uint16(37955), + 4714: uint16(29220), + 4715: uint16(37697), + 4716: uint16(22021), + 4717: uint16(29230), + 4718: uint16(29248), + 4719: uint16(18804), + 4720: uint16(26813), + 4721: uint16(29269), + 4722: uint16(29271), + 4723: uint16(15957), + 4724: uint16(12356), + 4725: uint16(26637), + 4726: uint16(28477), + 4727: uint16(29314), + 4729: uint16(29483), + 4730: uint16(18467), + 4731: uint16(34859), + 4732: uint16(18669), + 4733: uint16(34820), + 4734: uint16(29480), + 4735: uint16(29486), + 4736: uint16(29647), + 4737: uint16(29610), + 4738: uint16(3130), + 4739: uint16(27182), + 4740: uint16(29641), + 4741: uint16(29769), + 4742: uint16(16866), + 4743: uint16(5863), + 4744: uint16(18980), + 4745: uint16(26147), + 4746: uint16(14021), + 4747: uint16(18871), + 4748: uint16(18829), + 4749: uint16(18939), + 4750: uint16(29687), + 4751: uint16(29717), + 4752: uint16(26883), + 4753: uint16(18982), + 4754: uint16(29753), + 4755: uint16(1475), + 4756: uint16(16087), + 4758: uint16(10413), + 4759: uint16(29792), + 4760: uint16(36530), + 4761: uint16(29767), + 4762: uint16(29668), + 4763: uint16(29814), + 4764: uint16(33721), + 4765: uint16(29804), + 4766: uint16(14128), + 4767: uint16(29812), + 4768: uint16(37873), + 4769: uint16(27180), + 4770: uint16(29826), + 4771: uint16(18771), + 4772: uint16(19084), + 4773: uint16(16735), + 4774: uint16(19065), + 4775: uint16(35727), + 4776: uint16(23366), + 4777: uint16(35843), + 4778: uint16(6302), + 4779: uint16(29896), + 4780: uint16(6536), + 4781: uint16(29966), + 4783: uint16(29982), + 4784: uint16(36569), + 4785: uint16(6731), + 4786: uint16(23511), + 4787: uint16(36524), + 4788: uint16(37765), + 4789: uint16(30029), + 4790: uint16(30026), + 4791: uint16(30055), + 4792: uint16(30062), + 4793: uint16(20354), + 4794: uint16(16132), + 4795: uint16(19731), + 4796: uint16(30094), + 4797: uint16(29789), + 4798: uint16(30110), + 4799: uint16(30132), + 4800: uint16(30210), + 4801: uint16(30252), + 4802: uint16(30289), + 4803: uint16(30287), + 4804: uint16(30319), + 4805: uint16(30326), + 4806: uint16(25589), + 4807: uint16(30352), + 4808: uint16(33263), + 4809: uint16(14328), + 4810: uint16(26897), + 4811: uint16(26894), + 4812: uint16(30369), + 4813: uint16(30373), + 4814: uint16(30391), + 4815: uint16(30412), + 4816: uint16(28575), + 4817: uint16(33890), + 4818: uint16(20637), + 4819: uint16(20861), + 4820: uint16(7708), + 4821: uint16(30494), + 4822: uint16(30502), + 4823: uint16(30528), + 4824: uint16(25775), + 4825: uint16(21024), + 4826: uint16(30552), + 4827: uint16(12972), + 4828: uint16(30639), + 4829: uint16(35172), + 4830: uint16(35176), + 4831: uint16(5825), + 4832: uint16(30708), + 4834: uint16(4982), + 4835: uint16(18962), + 4836: uint16(26826), + 4837: uint16(30895), + 4838: uint16(30919), + 4839: uint16(30931), + 4840: uint16(38565), + 4841: uint16(31022), + 4842: uint16(21984), + 4843: uint16(30935), + 4844: uint16(31028), + 4845: uint16(30897), + 4846: uint16(30220), + 4847: uint16(36792), + 4848: uint16(34948), + 4849: uint16(35627), + 4850: uint16(24707), + 4851: uint16(9756), + 4852: uint16(31110), + 4853: uint16(35072), + 4854: uint16(26882), + 4855: uint16(31104), + 4856: uint16(22615), + 4857: uint16(31133), + 4858: uint16(31545), + 4859: uint16(31036), + 4860: uint16(31145), + 4861: uint16(28202), + 4862: uint16(28966), + 4863: uint16(16040), + 4864: uint16(31174), + 4865: uint16(37133), + 4866: uint16(31188), + 4867: uint16(1312), + 4868: uint16(17503), + 4869: uint16(21007), + 4870: uint16(47234), + 4871: uint16(248), + 4872: uint16(16384), + 4873: uint16(43296), + 4874: uint16(1102), + 4877: uint16(2868), + 4878: uint16(1), + 4886: uint16(3072), + 4887: uint16(64), + 4891: uint16(1024), + 4892: uint16(88), + 4893: uint16(60), + 4896: uint16(23680), + 4897: uint16(56493), + 4898: uint16(48115), + 4899: uint16(17353), + 4900: uint16(60910), + 4901: uint16(4004), + 4902: uint16(49446), + 4903: uint16(30363), + 4904: uint16(61426), + 4905: uint16(64478), + 4906: uint16(63482), + 4907: uint16(12815), + 4908: uint16(44868), + 4909: uint16(61438), + 4910: uint16(65277), + 4911: uint16(24593), + 4912: uint16(176), + 4913: uint16(8448), + 4914: uint16(33049), + 4915: uint16(4128), + 4916: uint16(43144), + 4917: uint16(8544), + 4918: uint16(9321), + 4919: uint16(17408), + 4920: uint16(50313), + 4922: uint16(16387), + 4923: uint16(53), + 4924: uint16(33859), + 4925: uint16(20785), + 4926: uint16(26771), + 4927: uint16(514), + 4933: uint16(16384), + 4934: uint16(256), + 4935: uint16(44160), + 4936: uint16(33380), + 4937: uint16(35904), + 4938: uint16(37025), + 4939: uint16(20484), + 4940: uint16(54368), + 4941: uint16(53760), + 4942: uint16(6186), + 4943: uint16(26781), + 4944: uint16(38709), + 4945: uint16(55375), + 4946: uint16(8440), + 4947: uint16(33476), + 4948: uint16(10268), + 4949: uint16(30082), + 4950: uint16(660), + 4951: uint16(16440), + 4952: uint16(41376), + 4953: uint16(4293), + 4954: uint16(19825), + 4955: uint16(3524), + 4956: uint16(47512), + 4957: uint16(23390), + 4958: uint16(17153), + 4959: uint16(39327), + 4960: uint16(30723), + 4961: uint16(57888), + 4962: uint16(2079), + 4963: uint16(393), + 4964: uint16(16585), + 4965: uint16(775), + 4966: uint16(39437), + 4967: uint16(21136), + 4968: uint16(20433), + 4969: uint16(892), + 4970: uint16(8450), + 4971: uint16(49184), + 4972: uint16(4974), + 4973: uint16(46467), + 4974: uint16(62939), + 4975: uint16(30693), + 4976: uint16(20368), + 4977: uint16(39447), + 4978: uint16(5942), + 4979: uint16(12), + 4980: uint16(47726), + 4981: uint16(12041), + 4982: uint16(21600), + 4983: uint16(7680), + 4984: uint16(26744), + 4985: uint16(28706), + 4986: uint16(40534), + 4987: uint16(62245), + 4988: uint16(46990), + 4989: uint16(2839), + 4990: uint16(59119), + 4991: uint16(6007), + 4992: uint16(7003), + 4993: uint16(4289), + 4994: uint16(36248), + 4995: uint16(6162), + 4996: uint16(53174), + 4997: uint16(12545), + 4998: uint16(6770), + 4999: uint16(11355), + 5000: uint16(49334), + 5001: uint16(57888), + 5002: uint16(23747), + 5003: uint16(7042), + 5004: uint16(56032), + 5005: uint16(34254), + 5006: uint16(16598), + 5007: uint16(21673), + 5008: uint16(53259), + 5009: uint16(18447), + 5010: uint16(16452), + 5011: uint16(2320), + 5012: uint16(16596), + 5013: uint16(15278), + 5014: uint16(7780), + 5015: uint16(11076), + 5016: uint16(2071), + 5017: uint16(33414), + 5018: uint16(6198), + 5019: uint16(35232), + 5020: uint16(40167), + 5021: uint16(2139), + 5022: uint16(900), + 5023: uint16(55810), + 5024: uint16(60560), + 5025: uint16(34779), + 5026: uint16(49029), + 5027: uint16(44450), + 5028: uint16(36509), + 5029: uint16(39069), + 5030: uint16(9504), + 5031: uint16(70), + 5032: uint16(40774), + 5033: uint16(58239), + 5034: uint16(51669), + 5035: uint16(62596), + 5036: uint16(19926), + 5037: uint16(58118), + 5038: uint16(6326), + 5039: uint16(2322), + 5041: uint16(1024), + 5043: uint16(32), + 5045: uint16(512), + 5050: uint16(8192), + 5057: uint16(8), + 5058: uint16(36352), + 5059: uint16(28280), + 5060: uint16(16223), + 5061: uint16(56702), + 5062: uint16(63293), + 5063: uint16(39932), + 5064: uint16(44796), + 5065: uint16(65490), + 5066: uint16(27535), + 5067: uint16(59377), + 5068: uint16(47807), + 5069: uint16(28334), + 5070: uint16(61207), + 5071: uint16(42972), + 5072: uint16(46654), + 5073: uint16(30645), + 5074: uint16(37577), + 5075: uint16(42455), + 5076: uint16(19126), + 5077: uint16(39790), + 5078: uint16(33209), + 5079: uint16(26445), + 5080: uint16(21758), + 5081: uint16(39921), + 5082: uint16(65122), + 5083: uint16(21103), + 5084: uint16(14039), + 5085: uint16(49150), + 5086: uint16(17705), + 5087: uint16(63873), + 5088: uint16(26045), + 5089: uint16(17062), + 5090: uint16(57), + 5091: uint16(16896), + 5092: uint16(36704), + 5093: uint16(37888), + 5094: uint16(16448), + 5095: uint16(45010), + 5096: uint16(53719), + 5097: uint16(219), + 5098: uint16(39072), + 5099: uint16(31666), + 5100: uint16(20998), + 5101: uint16(38944), + 5102: uint16(51222), + 5103: uint16(2365), + 5105: uint16(1), + 5107: uint16(2561), + 5108: uint16(2226), + 5109: uint16(128), + 5111: uint16(34820), + 5112: uint16(5152), + 5113: uint16(19472), + 5115: uint16(4), + 5116: uint16(17569), + 5117: uint16(16), + 5118: uint16(321), + 5119: uint16(2048), + 5120: uint16(61504), + 5121: uint16(20447), + 5122: uint16(22582), + 5123: uint16(62961), + 5124: uint16(32949), + 5125: uint16(26613), + 5126: uint16(16512), + 5127: uint16(20480), + 5128: uint16(16718), + 5129: uint16(33992), + 5130: uint16(23040), + 5131: uint16(55392), + 5132: uint16(11009), + 5133: uint16(20481), + 5134: uint16(5793), + 5135: uint16(16580), + 5136: uint16(28402), + 5137: uint16(44049), + 5138: uint16(14624), + 5139: uint16(49348), + 5140: uint16(1800), + 5141: uint16(2316), + 5142: uint16(38552), + 5143: uint16(39876), + 5144: uint16(7184), + 5145: uint16(27800), + 5146: uint16(10886), + 5147: uint16(422), + 5148: uint16(4422), + 5149: uint16(58733), + 5150: uint16(50379), + 5151: uint16(37568), + 5152: uint16(8464), + 5153: uint16(4630), + 5154: uint16(29341), + 5155: uint16(27124), + 5156: uint16(5902), + 5157: uint16(41514), + 5158: uint16(62593), + 5159: uint16(123), + 5160: uint16(41992), + 5161: uint16(36875), + 5162: uint16(11280), + 5163: uint16(14796), + 5164: uint16(330), + 5165: uint16(5872), + 5166: uint16(2571), + 5167: uint16(3136), + 5168: uint16(59933), + 5169: uint16(17420), + 5170: uint16(17678), + 5171: uint16(2), +} + +var _ksc = [93][94]uint16{ + 0: { + 0: uint16(12288), + 1: uint16(12289), + 2: uint16(12290), + 3: uint16(183), + 4: uint16(8229), + 5: uint16(8230), + 6: uint16(168), + 7: uint16(12291), + 8: uint16(173), + 9: uint16(8213), + 10: uint16(8741), + 11: uint16(65340), + 12: uint16(8764), + 13: uint16(8216), + 14: uint16(8217), + 15: uint16(8220), + 16: uint16(8221), + 17: uint16(12308), + 18: uint16(12309), + 19: uint16(12296), + 20: uint16(12297), + 21: uint16(12298), + 22: uint16(12299), + 23: uint16(12300), + 24: uint16(12301), + 25: uint16(12302), + 26: uint16(12303), + 27: uint16(12304), + 28: uint16(12305), + 29: uint16(177), + 30: uint16(215), + 31: uint16(247), + 32: uint16(8800), + 33: uint16(8804), + 34: uint16(8805), + 35: uint16(8734), + 36: uint16(8756), + 37: uint16(176), + 38: uint16(8242), + 39: uint16(8243), + 40: uint16(8451), + 41: uint16(8491), + 42: uint16(65504), + 43: uint16(65505), + 44: uint16(65509), + 45: uint16(9794), + 46: uint16(9792), + 47: uint16(8736), + 48: uint16(8869), + 49: uint16(8978), + 50: uint16(8706), + 51: uint16(8711), + 52: uint16(8801), + 53: uint16(8786), + 54: uint16(167), + 55: uint16(8251), + 56: uint16(9734), + 57: uint16(9733), + 58: uint16(9675), + 59: uint16(9679), + 60: uint16(9678), + 61: uint16(9671), + 62: uint16(9670), + 63: uint16(9633), + 64: uint16(9632), + 65: uint16(9651), + 66: uint16(9650), + 67: uint16(9661), + 68: uint16(9660), + 69: uint16(8594), + 70: uint16(8592), + 71: uint16(8593), + 72: uint16(8595), + 73: uint16(8596), + 74: uint16(12307), + 75: uint16(8810), + 76: uint16(8811), + 77: uint16(8730), + 78: uint16(8765), + 79: uint16(8733), + 80: uint16(8757), + 81: uint16(8747), + 82: uint16(8748), + 83: uint16(8712), + 84: uint16(8715), + 85: uint16(8838), + 86: uint16(8839), + 87: uint16(8834), + 88: uint16(8835), + 89: uint16(8746), + 90: uint16(8745), + 91: uint16(8743), + 92: uint16(8744), + 93: uint16(65506), + }, + 1: { + 0: uint16(8658), + 1: uint16(8660), + 2: uint16(8704), + 3: uint16(8707), + 4: uint16(180), + 5: uint16(65374), + 6: uint16(711), + 7: uint16(728), + 8: uint16(733), + 9: uint16(730), + 10: uint16(729), + 11: uint16(184), + 12: uint16(731), + 13: uint16(161), + 14: uint16(191), + 15: uint16(720), + 16: uint16(8750), + 17: uint16(8721), + 18: uint16(8719), + 19: uint16(164), + 20: uint16(8457), + 21: uint16(8240), + 22: uint16(9665), + 23: uint16(9664), + 24: uint16(9655), + 25: uint16(9654), + 26: uint16(9828), + 27: uint16(9824), + 28: uint16(9825), + 29: uint16(9829), + 30: uint16(9831), + 31: uint16(9827), + 32: uint16(8857), + 33: uint16(9672), + 34: uint16(9635), + 35: uint16(9680), + 36: uint16(9681), + 37: uint16(9618), + 38: uint16(9636), + 39: uint16(9637), + 40: uint16(9640), + 41: uint16(9639), + 42: uint16(9638), + 43: uint16(9641), + 44: uint16(9832), + 45: uint16(9743), + 46: uint16(9742), + 47: uint16(9756), + 48: uint16(9758), + 49: uint16(182), + 50: uint16(8224), + 51: uint16(8225), + 52: uint16(8597), + 53: uint16(8599), + 54: uint16(8601), + 55: uint16(8598), + 56: uint16(8600), + 57: uint16(9837), + 58: uint16(9833), + 59: uint16(9834), + 60: uint16(9836), + 61: uint16(12927), + 62: uint16(12828), + 63: uint16(8470), + 64: uint16(13255), + 65: uint16(8482), + 66: uint16(13250), + 67: uint16(13272), + 68: uint16(8481), + 69: uint16(8364), + 70: uint16(174), + }, + 2: { + 0: uint16(65281), + 1: uint16(65282), + 2: uint16(65283), + 3: uint16(65284), + 4: uint16(65285), + 5: uint16(65286), + 6: uint16(65287), + 7: uint16(65288), + 8: uint16(65289), + 9: uint16(65290), + 10: uint16(65291), + 11: uint16(65292), + 12: uint16(65293), + 13: uint16(65294), + 14: uint16(65295), + 15: uint16(65296), + 16: uint16(65297), + 17: uint16(65298), + 18: uint16(65299), + 19: uint16(65300), + 20: uint16(65301), + 21: uint16(65302), + 22: uint16(65303), + 23: uint16(65304), + 24: uint16(65305), + 25: uint16(65306), + 26: uint16(65307), + 27: uint16(65308), + 28: uint16(65309), + 29: uint16(65310), + 30: uint16(65311), + 31: uint16(65312), + 32: uint16(65313), + 33: uint16(65314), + 34: uint16(65315), + 35: uint16(65316), + 36: uint16(65317), + 37: uint16(65318), + 38: uint16(65319), + 39: uint16(65320), + 40: uint16(65321), + 41: uint16(65322), + 42: uint16(65323), + 43: uint16(65324), + 44: uint16(65325), + 45: uint16(65326), + 46: uint16(65327), + 47: uint16(65328), + 48: uint16(65329), + 49: uint16(65330), + 50: uint16(65331), + 51: uint16(65332), + 52: uint16(65333), + 53: uint16(65334), + 54: uint16(65335), + 55: uint16(65336), + 56: uint16(65337), + 57: uint16(65338), + 58: uint16(65339), + 59: uint16(65510), + 60: uint16(65341), + 61: uint16(65342), + 62: uint16(65343), + 63: uint16(65344), + 64: uint16(65345), + 65: uint16(65346), + 66: uint16(65347), + 67: uint16(65348), + 68: uint16(65349), + 69: uint16(65350), + 70: uint16(65351), + 71: uint16(65352), + 72: uint16(65353), + 73: uint16(65354), + 74: uint16(65355), + 75: uint16(65356), + 76: uint16(65357), + 77: uint16(65358), + 78: uint16(65359), + 79: uint16(65360), + 80: uint16(65361), + 81: uint16(65362), + 82: uint16(65363), + 83: uint16(65364), + 84: uint16(65365), + 85: uint16(65366), + 86: uint16(65367), + 87: uint16(65368), + 88: uint16(65369), + 89: uint16(65370), + 90: uint16(65371), + 91: uint16(65372), + 92: uint16(65373), + 93: uint16(65507), + }, + 3: { + 0: uint16(12593), + 1: uint16(12594), + 2: uint16(12595), + 3: uint16(12596), + 4: uint16(12597), + 5: uint16(12598), + 6: uint16(12599), + 7: uint16(12600), + 8: uint16(12601), + 9: uint16(12602), + 10: uint16(12603), + 11: uint16(12604), + 12: uint16(12605), + 13: uint16(12606), + 14: uint16(12607), + 15: uint16(12608), + 16: uint16(12609), + 17: uint16(12610), + 18: uint16(12611), + 19: uint16(12612), + 20: uint16(12613), + 21: uint16(12614), + 22: uint16(12615), + 23: uint16(12616), + 24: uint16(12617), + 25: uint16(12618), + 26: uint16(12619), + 27: uint16(12620), + 28: uint16(12621), + 29: uint16(12622), + 30: uint16(12623), + 31: uint16(12624), + 32: uint16(12625), + 33: uint16(12626), + 34: uint16(12627), + 35: uint16(12628), + 36: uint16(12629), + 37: uint16(12630), + 38: uint16(12631), + 39: uint16(12632), + 40: uint16(12633), + 41: uint16(12634), + 42: uint16(12635), + 43: uint16(12636), + 44: uint16(12637), + 45: uint16(12638), + 46: uint16(12639), + 47: uint16(12640), + 48: uint16(12641), + 49: uint16(12642), + 50: uint16(12643), + 51: uint16(12644), + 52: uint16(12645), + 53: uint16(12646), + 54: uint16(12647), + 55: uint16(12648), + 56: uint16(12649), + 57: uint16(12650), + 58: uint16(12651), + 59: uint16(12652), + 60: uint16(12653), + 61: uint16(12654), + 62: uint16(12655), + 63: uint16(12656), + 64: uint16(12657), + 65: uint16(12658), + 66: uint16(12659), + 67: uint16(12660), + 68: uint16(12661), + 69: uint16(12662), + 70: uint16(12663), + 71: uint16(12664), + 72: uint16(12665), + 73: uint16(12666), + 74: uint16(12667), + 75: uint16(12668), + 76: uint16(12669), + 77: uint16(12670), + 78: uint16(12671), + 79: uint16(12672), + 80: uint16(12673), + 81: uint16(12674), + 82: uint16(12675), + 83: uint16(12676), + 84: uint16(12677), + 85: uint16(12678), + 86: uint16(12679), + 87: uint16(12680), + 88: uint16(12681), + 89: uint16(12682), + 90: uint16(12683), + 91: uint16(12684), + 92: uint16(12685), + 93: uint16(12686), + }, + 4: { + 0: uint16(8560), + 1: uint16(8561), + 2: uint16(8562), + 3: uint16(8563), + 4: uint16(8564), + 5: uint16(8565), + 6: uint16(8566), + 7: uint16(8567), + 8: uint16(8568), + 9: uint16(8569), + 15: uint16(8544), + 16: uint16(8545), + 17: uint16(8546), + 18: uint16(8547), + 19: uint16(8548), + 20: uint16(8549), + 21: uint16(8550), + 22: uint16(8551), + 23: uint16(8552), + 24: uint16(8553), + 32: uint16(913), + 33: uint16(914), + 34: uint16(915), + 35: uint16(916), + 36: uint16(917), + 37: uint16(918), + 38: uint16(919), + 39: uint16(920), + 40: uint16(921), + 41: uint16(922), + 42: uint16(923), + 43: uint16(924), + 44: uint16(925), + 45: uint16(926), + 46: uint16(927), + 47: uint16(928), + 48: uint16(929), + 49: uint16(931), + 50: uint16(932), + 51: uint16(933), + 52: uint16(934), + 53: uint16(935), + 54: uint16(936), + 55: uint16(937), + 64: uint16(945), + 65: uint16(946), + 66: uint16(947), + 67: uint16(948), + 68: uint16(949), + 69: uint16(950), + 70: uint16(951), + 71: uint16(952), + 72: uint16(953), + 73: uint16(954), + 74: uint16(955), + 75: uint16(956), + 76: uint16(957), + 77: uint16(958), + 78: uint16(959), + 79: uint16(960), + 80: uint16(961), + 81: uint16(963), + 82: uint16(964), + 83: uint16(965), + 84: uint16(966), + 85: uint16(967), + 86: uint16(968), + 87: uint16(969), + }, + 5: { + 0: uint16(9472), + 1: uint16(9474), + 2: uint16(9484), + 3: uint16(9488), + 4: uint16(9496), + 5: uint16(9492), + 6: uint16(9500), + 7: uint16(9516), + 8: uint16(9508), + 9: uint16(9524), + 10: uint16(9532), + 11: uint16(9473), + 12: uint16(9475), + 13: uint16(9487), + 14: uint16(9491), + 15: uint16(9499), + 16: uint16(9495), + 17: uint16(9507), + 18: uint16(9523), + 19: uint16(9515), + 20: uint16(9531), + 21: uint16(9547), + 22: uint16(9504), + 23: uint16(9519), + 24: uint16(9512), + 25: uint16(9527), + 26: uint16(9535), + 27: uint16(9501), + 28: uint16(9520), + 29: uint16(9509), + 30: uint16(9528), + 31: uint16(9538), + 32: uint16(9490), + 33: uint16(9489), + 34: uint16(9498), + 35: uint16(9497), + 36: uint16(9494), + 37: uint16(9493), + 38: uint16(9486), + 39: uint16(9485), + 40: uint16(9502), + 41: uint16(9503), + 42: uint16(9505), + 43: uint16(9506), + 44: uint16(9510), + 45: uint16(9511), + 46: uint16(9513), + 47: uint16(9514), + 48: uint16(9517), + 49: uint16(9518), + 50: uint16(9521), + 51: uint16(9522), + 52: uint16(9525), + 53: uint16(9526), + 54: uint16(9529), + 55: uint16(9530), + 56: uint16(9533), + 57: uint16(9534), + 58: uint16(9536), + 59: uint16(9537), + 60: uint16(9539), + 61: uint16(9540), + 62: uint16(9541), + 63: uint16(9542), + 64: uint16(9543), + 65: uint16(9544), + 66: uint16(9545), + 67: uint16(9546), + }, + 6: { + 0: uint16(13205), + 1: uint16(13206), + 2: uint16(13207), + 3: uint16(8467), + 4: uint16(13208), + 5: uint16(13252), + 6: uint16(13219), + 7: uint16(13220), + 8: uint16(13221), + 9: uint16(13222), + 10: uint16(13209), + 11: uint16(13210), + 12: uint16(13211), + 13: uint16(13212), + 14: uint16(13213), + 15: uint16(13214), + 16: uint16(13215), + 17: uint16(13216), + 18: uint16(13217), + 19: uint16(13218), + 20: uint16(13258), + 21: uint16(13197), + 22: uint16(13198), + 23: uint16(13199), + 24: uint16(13263), + 25: uint16(13192), + 26: uint16(13193), + 27: uint16(13256), + 28: uint16(13223), + 29: uint16(13224), + 30: uint16(13232), + 31: uint16(13233), + 32: uint16(13234), + 33: uint16(13235), + 34: uint16(13236), + 35: uint16(13237), + 36: uint16(13238), + 37: uint16(13239), + 38: uint16(13240), + 39: uint16(13241), + 40: uint16(13184), + 41: uint16(13185), + 42: uint16(13186), + 43: uint16(13187), + 44: uint16(13188), + 45: uint16(13242), + 46: uint16(13243), + 47: uint16(13244), + 48: uint16(13245), + 49: uint16(13246), + 50: uint16(13247), + 51: uint16(13200), + 52: uint16(13201), + 53: uint16(13202), + 54: uint16(13203), + 55: uint16(13204), + 56: uint16(8486), + 57: uint16(13248), + 58: uint16(13249), + 59: uint16(13194), + 60: uint16(13195), + 61: uint16(13196), + 62: uint16(13270), + 63: uint16(13253), + 64: uint16(13229), + 65: uint16(13230), + 66: uint16(13231), + 67: uint16(13275), + 68: uint16(13225), + 69: uint16(13226), + 70: uint16(13227), + 71: uint16(13228), + 72: uint16(13277), + 73: uint16(13264), + 74: uint16(13267), + 75: uint16(13251), + 76: uint16(13257), + 77: uint16(13276), + 78: uint16(13254), + }, + 7: { + 0: uint16(198), + 1: uint16(208), + 2: uint16(170), + 3: uint16(294), + 5: uint16(306), + 7: uint16(319), + 8: uint16(321), + 9: uint16(216), + 10: uint16(338), + 11: uint16(186), + 12: uint16(222), + 13: uint16(358), + 14: uint16(330), + 16: uint16(12896), + 17: uint16(12897), + 18: uint16(12898), + 19: uint16(12899), + 20: uint16(12900), + 21: uint16(12901), + 22: uint16(12902), + 23: uint16(12903), + 24: uint16(12904), + 25: uint16(12905), + 26: uint16(12906), + 27: uint16(12907), + 28: uint16(12908), + 29: uint16(12909), + 30: uint16(12910), + 31: uint16(12911), + 32: uint16(12912), + 33: uint16(12913), + 34: uint16(12914), + 35: uint16(12915), + 36: uint16(12916), + 37: uint16(12917), + 38: uint16(12918), + 39: uint16(12919), + 40: uint16(12920), + 41: uint16(12921), + 42: uint16(12922), + 43: uint16(12923), + 44: uint16(9424), + 45: uint16(9425), + 46: uint16(9426), + 47: uint16(9427), + 48: uint16(9428), + 49: uint16(9429), + 50: uint16(9430), + 51: uint16(9431), + 52: uint16(9432), + 53: uint16(9433), + 54: uint16(9434), + 55: uint16(9435), + 56: uint16(9436), + 57: uint16(9437), + 58: uint16(9438), + 59: uint16(9439), + 60: uint16(9440), + 61: uint16(9441), + 62: uint16(9442), + 63: uint16(9443), + 64: uint16(9444), + 65: uint16(9445), + 66: uint16(9446), + 67: uint16(9447), + 68: uint16(9448), + 69: uint16(9449), + 70: uint16(9312), + 71: uint16(9313), + 72: uint16(9314), + 73: uint16(9315), + 74: uint16(9316), + 75: uint16(9317), + 76: uint16(9318), + 77: uint16(9319), + 78: uint16(9320), + 79: uint16(9321), + 80: uint16(9322), + 81: uint16(9323), + 82: uint16(9324), + 83: uint16(9325), + 84: uint16(9326), + 85: uint16(189), + 86: uint16(8531), + 87: uint16(8532), + 88: uint16(188), + 89: uint16(190), + 90: uint16(8539), + 91: uint16(8540), + 92: uint16(8541), + 93: uint16(8542), + }, + 8: { + 0: uint16(230), + 1: uint16(273), + 2: uint16(240), + 3: uint16(295), + 4: uint16(305), + 5: uint16(307), + 6: uint16(312), + 7: uint16(320), + 8: uint16(322), + 9: uint16(248), + 10: uint16(339), + 11: uint16(223), + 12: uint16(254), + 13: uint16(359), + 14: uint16(331), + 15: uint16(329), + 16: uint16(12800), + 17: uint16(12801), + 18: uint16(12802), + 19: uint16(12803), + 20: uint16(12804), + 21: uint16(12805), + 22: uint16(12806), + 23: uint16(12807), + 24: uint16(12808), + 25: uint16(12809), + 26: uint16(12810), + 27: uint16(12811), + 28: uint16(12812), + 29: uint16(12813), + 30: uint16(12814), + 31: uint16(12815), + 32: uint16(12816), + 33: uint16(12817), + 34: uint16(12818), + 35: uint16(12819), + 36: uint16(12820), + 37: uint16(12821), + 38: uint16(12822), + 39: uint16(12823), + 40: uint16(12824), + 41: uint16(12825), + 42: uint16(12826), + 43: uint16(12827), + 44: uint16(9372), + 45: uint16(9373), + 46: uint16(9374), + 47: uint16(9375), + 48: uint16(9376), + 49: uint16(9377), + 50: uint16(9378), + 51: uint16(9379), + 52: uint16(9380), + 53: uint16(9381), + 54: uint16(9382), + 55: uint16(9383), + 56: uint16(9384), + 57: uint16(9385), + 58: uint16(9386), + 59: uint16(9387), + 60: uint16(9388), + 61: uint16(9389), + 62: uint16(9390), + 63: uint16(9391), + 64: uint16(9392), + 65: uint16(9393), + 66: uint16(9394), + 67: uint16(9395), + 68: uint16(9396), + 69: uint16(9397), + 70: uint16(9332), + 71: uint16(9333), + 72: uint16(9334), + 73: uint16(9335), + 74: uint16(9336), + 75: uint16(9337), + 76: uint16(9338), + 77: uint16(9339), + 78: uint16(9340), + 79: uint16(9341), + 80: uint16(9342), + 81: uint16(9343), + 82: uint16(9344), + 83: uint16(9345), + 84: uint16(9346), + 85: uint16(185), + 86: uint16(178), + 87: uint16(179), + 88: uint16(8308), + 89: uint16(8319), + 90: uint16(8321), + 91: uint16(8322), + 92: uint16(8323), + 93: uint16(8324), + }, + 9: { + 0: uint16(12353), + 1: uint16(12354), + 2: uint16(12355), + 3: uint16(12356), + 4: uint16(12357), + 5: uint16(12358), + 6: uint16(12359), + 7: uint16(12360), + 8: uint16(12361), + 9: uint16(12362), + 10: uint16(12363), + 11: uint16(12364), + 12: uint16(12365), + 13: uint16(12366), + 14: uint16(12367), + 15: uint16(12368), + 16: uint16(12369), + 17: uint16(12370), + 18: uint16(12371), + 19: uint16(12372), + 20: uint16(12373), + 21: uint16(12374), + 22: uint16(12375), + 23: uint16(12376), + 24: uint16(12377), + 25: uint16(12378), + 26: uint16(12379), + 27: uint16(12380), + 28: uint16(12381), + 29: uint16(12382), + 30: uint16(12383), + 31: uint16(12384), + 32: uint16(12385), + 33: uint16(12386), + 34: uint16(12387), + 35: uint16(12388), + 36: uint16(12389), + 37: uint16(12390), + 38: uint16(12391), + 39: uint16(12392), + 40: uint16(12393), + 41: uint16(12394), + 42: uint16(12395), + 43: uint16(12396), + 44: uint16(12397), + 45: uint16(12398), + 46: uint16(12399), + 47: uint16(12400), + 48: uint16(12401), + 49: uint16(12402), + 50: uint16(12403), + 51: uint16(12404), + 52: uint16(12405), + 53: uint16(12406), + 54: uint16(12407), + 55: uint16(12408), + 56: uint16(12409), + 57: uint16(12410), + 58: uint16(12411), + 59: uint16(12412), + 60: uint16(12413), + 61: uint16(12414), + 62: uint16(12415), + 63: uint16(12416), + 64: uint16(12417), + 65: uint16(12418), + 66: uint16(12419), + 67: uint16(12420), + 68: uint16(12421), + 69: uint16(12422), + 70: uint16(12423), + 71: uint16(12424), + 72: uint16(12425), + 73: uint16(12426), + 74: uint16(12427), + 75: uint16(12428), + 76: uint16(12429), + 77: uint16(12430), + 78: uint16(12431), + 79: uint16(12432), + 80: uint16(12433), + 81: uint16(12434), + 82: uint16(12435), + }, + 10: { + 0: uint16(12449), + 1: uint16(12450), + 2: uint16(12451), + 3: uint16(12452), + 4: uint16(12453), + 5: uint16(12454), + 6: uint16(12455), + 7: uint16(12456), + 8: uint16(12457), + 9: uint16(12458), + 10: uint16(12459), + 11: uint16(12460), + 12: uint16(12461), + 13: uint16(12462), + 14: uint16(12463), + 15: uint16(12464), + 16: uint16(12465), + 17: uint16(12466), + 18: uint16(12467), + 19: uint16(12468), + 20: uint16(12469), + 21: uint16(12470), + 22: uint16(12471), + 23: uint16(12472), + 24: uint16(12473), + 25: uint16(12474), + 26: uint16(12475), + 27: uint16(12476), + 28: uint16(12477), + 29: uint16(12478), + 30: uint16(12479), + 31: uint16(12480), + 32: uint16(12481), + 33: uint16(12482), + 34: uint16(12483), + 35: uint16(12484), + 36: uint16(12485), + 37: uint16(12486), + 38: uint16(12487), + 39: uint16(12488), + 40: uint16(12489), + 41: uint16(12490), + 42: uint16(12491), + 43: uint16(12492), + 44: uint16(12493), + 45: uint16(12494), + 46: uint16(12495), + 47: uint16(12496), + 48: uint16(12497), + 49: uint16(12498), + 50: uint16(12499), + 51: uint16(12500), + 52: uint16(12501), + 53: uint16(12502), + 54: uint16(12503), + 55: uint16(12504), + 56: uint16(12505), + 57: uint16(12506), + 58: uint16(12507), + 59: uint16(12508), + 60: uint16(12509), + 61: uint16(12510), + 62: uint16(12511), + 63: uint16(12512), + 64: uint16(12513), + 65: uint16(12514), + 66: uint16(12515), + 67: uint16(12516), + 68: uint16(12517), + 69: uint16(12518), + 70: uint16(12519), + 71: uint16(12520), + 72: uint16(12521), + 73: uint16(12522), + 74: uint16(12523), + 75: uint16(12524), + 76: uint16(12525), + 77: uint16(12526), + 78: uint16(12527), + 79: uint16(12528), + 80: uint16(12529), + 81: uint16(12530), + 82: uint16(12531), + 83: uint16(12532), + 84: uint16(12533), + 85: uint16(12534), + }, + 11: { + 0: uint16(1040), + 1: uint16(1041), + 2: uint16(1042), + 3: uint16(1043), + 4: uint16(1044), + 5: uint16(1045), + 6: uint16(1025), + 7: uint16(1046), + 8: uint16(1047), + 9: uint16(1048), + 10: uint16(1049), + 11: uint16(1050), + 12: uint16(1051), + 13: uint16(1052), + 14: uint16(1053), + 15: uint16(1054), + 16: uint16(1055), + 17: uint16(1056), + 18: uint16(1057), + 19: uint16(1058), + 20: uint16(1059), + 21: uint16(1060), + 22: uint16(1061), + 23: uint16(1062), + 24: uint16(1063), + 25: uint16(1064), + 26: uint16(1065), + 27: uint16(1066), + 28: uint16(1067), + 29: uint16(1068), + 30: uint16(1069), + 31: uint16(1070), + 32: uint16(1071), + 48: uint16(1072), + 49: uint16(1073), + 50: uint16(1074), + 51: uint16(1075), + 52: uint16(1076), + 53: uint16(1077), + 54: uint16(1105), + 55: uint16(1078), + 56: uint16(1079), + 57: uint16(1080), + 58: uint16(1081), + 59: uint16(1082), + 60: uint16(1083), + 61: uint16(1084), + 62: uint16(1085), + 63: uint16(1086), + 64: uint16(1087), + 65: uint16(1088), + 66: uint16(1089), + 67: uint16(1090), + 68: uint16(1091), + 69: uint16(1092), + 70: uint16(1093), + 71: uint16(1094), + 72: uint16(1095), + 73: uint16(1096), + 74: uint16(1097), + 75: uint16(1098), + 76: uint16(1099), + 77: uint16(1100), + 78: uint16(1101), + 79: uint16(1102), + 80: uint16(1103), + }, + 12: {}, + 13: {}, + 14: {}, + 15: { + 0: uint16(44032), + 1: uint16(44033), + 2: uint16(44036), + 3: uint16(44039), + 4: uint16(44040), + 5: uint16(44041), + 6: uint16(44042), + 7: uint16(44048), + 8: uint16(44049), + 9: uint16(44050), + 10: uint16(44051), + 11: uint16(44052), + 12: uint16(44053), + 13: uint16(44054), + 14: uint16(44055), + 15: uint16(44057), + 16: uint16(44058), + 17: uint16(44059), + 18: uint16(44060), + 19: uint16(44061), + 20: uint16(44064), + 21: uint16(44068), + 22: uint16(44076), + 23: uint16(44077), + 24: uint16(44079), + 25: uint16(44080), + 26: uint16(44081), + 27: uint16(44088), + 28: uint16(44089), + 29: uint16(44092), + 30: uint16(44096), + 31: uint16(44107), + 32: uint16(44109), + 33: uint16(44116), + 34: uint16(44120), + 35: uint16(44124), + 36: uint16(44144), + 37: uint16(44145), + 38: uint16(44148), + 39: uint16(44151), + 40: uint16(44152), + 41: uint16(44154), + 42: uint16(44160), + 43: uint16(44161), + 44: uint16(44163), + 45: uint16(44164), + 46: uint16(44165), + 47: uint16(44166), + 48: uint16(44169), + 49: uint16(44170), + 50: uint16(44171), + 51: uint16(44172), + 52: uint16(44176), + 53: uint16(44180), + 54: uint16(44188), + 55: uint16(44189), + 56: uint16(44191), + 57: uint16(44192), + 58: uint16(44193), + 59: uint16(44200), + 60: uint16(44201), + 61: uint16(44202), + 62: uint16(44204), + 63: uint16(44207), + 64: uint16(44208), + 65: uint16(44216), + 66: uint16(44217), + 67: uint16(44219), + 68: uint16(44220), + 69: uint16(44221), + 70: uint16(44225), + 71: uint16(44228), + 72: uint16(44232), + 73: uint16(44236), + 74: uint16(44245), + 75: uint16(44247), + 76: uint16(44256), + 77: uint16(44257), + 78: uint16(44260), + 79: uint16(44263), + 80: uint16(44264), + 81: uint16(44266), + 82: uint16(44268), + 83: uint16(44271), + 84: uint16(44272), + 85: uint16(44273), + 86: uint16(44275), + 87: uint16(44277), + 88: uint16(44278), + 89: uint16(44284), + 90: uint16(44285), + 91: uint16(44288), + 92: uint16(44292), + 93: uint16(44294), + }, + 16: { + 0: uint16(44300), + 1: uint16(44301), + 2: uint16(44303), + 3: uint16(44305), + 4: uint16(44312), + 5: uint16(44316), + 6: uint16(44320), + 7: uint16(44329), + 8: uint16(44332), + 9: uint16(44333), + 10: uint16(44340), + 11: uint16(44341), + 12: uint16(44344), + 13: uint16(44348), + 14: uint16(44356), + 15: uint16(44357), + 16: uint16(44359), + 17: uint16(44361), + 18: uint16(44368), + 19: uint16(44372), + 20: uint16(44376), + 21: uint16(44385), + 22: uint16(44387), + 23: uint16(44396), + 24: uint16(44397), + 25: uint16(44400), + 26: uint16(44403), + 27: uint16(44404), + 28: uint16(44405), + 29: uint16(44406), + 30: uint16(44411), + 31: uint16(44412), + 32: uint16(44413), + 33: uint16(44415), + 34: uint16(44417), + 35: uint16(44418), + 36: uint16(44424), + 37: uint16(44425), + 38: uint16(44428), + 39: uint16(44432), + 40: uint16(44444), + 41: uint16(44445), + 42: uint16(44452), + 43: uint16(44471), + 44: uint16(44480), + 45: uint16(44481), + 46: uint16(44484), + 47: uint16(44488), + 48: uint16(44496), + 49: uint16(44497), + 50: uint16(44499), + 51: uint16(44508), + 52: uint16(44512), + 53: uint16(44516), + 54: uint16(44536), + 55: uint16(44537), + 56: uint16(44540), + 57: uint16(44543), + 58: uint16(44544), + 59: uint16(44545), + 60: uint16(44552), + 61: uint16(44553), + 62: uint16(44555), + 63: uint16(44557), + 64: uint16(44564), + 65: uint16(44592), + 66: uint16(44593), + 67: uint16(44596), + 68: uint16(44599), + 69: uint16(44600), + 70: uint16(44602), + 71: uint16(44608), + 72: uint16(44609), + 73: uint16(44611), + 74: uint16(44613), + 75: uint16(44614), + 76: uint16(44618), + 77: uint16(44620), + 78: uint16(44621), + 79: uint16(44622), + 80: uint16(44624), + 81: uint16(44628), + 82: uint16(44630), + 83: uint16(44636), + 84: uint16(44637), + 85: uint16(44639), + 86: uint16(44640), + 87: uint16(44641), + 88: uint16(44645), + 89: uint16(44648), + 90: uint16(44649), + 91: uint16(44652), + 92: uint16(44656), + 93: uint16(44664), + }, + 17: { + 0: uint16(44665), + 1: uint16(44667), + 2: uint16(44668), + 3: uint16(44669), + 4: uint16(44676), + 5: uint16(44677), + 6: uint16(44684), + 7: uint16(44732), + 8: uint16(44733), + 9: uint16(44734), + 10: uint16(44736), + 11: uint16(44740), + 12: uint16(44748), + 13: uint16(44749), + 14: uint16(44751), + 15: uint16(44752), + 16: uint16(44753), + 17: uint16(44760), + 18: uint16(44761), + 19: uint16(44764), + 20: uint16(44776), + 21: uint16(44779), + 22: uint16(44781), + 23: uint16(44788), + 24: uint16(44792), + 25: uint16(44796), + 26: uint16(44807), + 27: uint16(44808), + 28: uint16(44813), + 29: uint16(44816), + 30: uint16(44844), + 31: uint16(44845), + 32: uint16(44848), + 33: uint16(44850), + 34: uint16(44852), + 35: uint16(44860), + 36: uint16(44861), + 37: uint16(44863), + 38: uint16(44865), + 39: uint16(44866), + 40: uint16(44867), + 41: uint16(44872), + 42: uint16(44873), + 43: uint16(44880), + 44: uint16(44892), + 45: uint16(44893), + 46: uint16(44900), + 47: uint16(44901), + 48: uint16(44921), + 49: uint16(44928), + 50: uint16(44932), + 51: uint16(44936), + 52: uint16(44944), + 53: uint16(44945), + 54: uint16(44949), + 55: uint16(44956), + 56: uint16(44984), + 57: uint16(44985), + 58: uint16(44988), + 59: uint16(44992), + 60: uint16(44999), + 61: uint16(45000), + 62: uint16(45001), + 63: uint16(45003), + 64: uint16(45005), + 65: uint16(45006), + 66: uint16(45012), + 67: uint16(45020), + 68: uint16(45032), + 69: uint16(45033), + 70: uint16(45040), + 71: uint16(45041), + 72: uint16(45044), + 73: uint16(45048), + 74: uint16(45056), + 75: uint16(45057), + 76: uint16(45060), + 77: uint16(45068), + 78: uint16(45072), + 79: uint16(45076), + 80: uint16(45084), + 81: uint16(45085), + 82: uint16(45096), + 83: uint16(45124), + 84: uint16(45125), + 85: uint16(45128), + 86: uint16(45130), + 87: uint16(45132), + 88: uint16(45134), + 89: uint16(45139), + 90: uint16(45140), + 91: uint16(45141), + 92: uint16(45143), + 93: uint16(45145), + }, + 18: { + 0: uint16(45149), + 1: uint16(45180), + 2: uint16(45181), + 3: uint16(45184), + 4: uint16(45188), + 5: uint16(45196), + 6: uint16(45197), + 7: uint16(45199), + 8: uint16(45201), + 9: uint16(45208), + 10: uint16(45209), + 11: uint16(45210), + 12: uint16(45212), + 13: uint16(45215), + 14: uint16(45216), + 15: uint16(45217), + 16: uint16(45218), + 17: uint16(45224), + 18: uint16(45225), + 19: uint16(45227), + 20: uint16(45228), + 21: uint16(45229), + 22: uint16(45230), + 23: uint16(45231), + 24: uint16(45233), + 25: uint16(45235), + 26: uint16(45236), + 27: uint16(45237), + 28: uint16(45240), + 29: uint16(45244), + 30: uint16(45252), + 31: uint16(45253), + 32: uint16(45255), + 33: uint16(45256), + 34: uint16(45257), + 35: uint16(45264), + 36: uint16(45265), + 37: uint16(45268), + 38: uint16(45272), + 39: uint16(45280), + 40: uint16(45285), + 41: uint16(45320), + 42: uint16(45321), + 43: uint16(45323), + 44: uint16(45324), + 45: uint16(45328), + 46: uint16(45330), + 47: uint16(45331), + 48: uint16(45336), + 49: uint16(45337), + 50: uint16(45339), + 51: uint16(45340), + 52: uint16(45341), + 53: uint16(45347), + 54: uint16(45348), + 55: uint16(45349), + 56: uint16(45352), + 57: uint16(45356), + 58: uint16(45364), + 59: uint16(45365), + 60: uint16(45367), + 61: uint16(45368), + 62: uint16(45369), + 63: uint16(45376), + 64: uint16(45377), + 65: uint16(45380), + 66: uint16(45384), + 67: uint16(45392), + 68: uint16(45393), + 69: uint16(45396), + 70: uint16(45397), + 71: uint16(45400), + 72: uint16(45404), + 73: uint16(45408), + 74: uint16(45432), + 75: uint16(45433), + 76: uint16(45436), + 77: uint16(45440), + 78: uint16(45442), + 79: uint16(45448), + 80: uint16(45449), + 81: uint16(45451), + 82: uint16(45453), + 83: uint16(45458), + 84: uint16(45459), + 85: uint16(45460), + 86: uint16(45464), + 87: uint16(45468), + 88: uint16(45480), + 89: uint16(45516), + 90: uint16(45520), + 91: uint16(45524), + 92: uint16(45532), + 93: uint16(45533), + }, + 19: { + 0: uint16(45535), + 1: uint16(45544), + 2: uint16(45545), + 3: uint16(45548), + 4: uint16(45552), + 5: uint16(45561), + 6: uint16(45563), + 7: uint16(45565), + 8: uint16(45572), + 9: uint16(45573), + 10: uint16(45576), + 11: uint16(45579), + 12: uint16(45580), + 13: uint16(45588), + 14: uint16(45589), + 15: uint16(45591), + 16: uint16(45593), + 17: uint16(45600), + 18: uint16(45620), + 19: uint16(45628), + 20: uint16(45656), + 21: uint16(45660), + 22: uint16(45664), + 23: uint16(45672), + 24: uint16(45673), + 25: uint16(45684), + 26: uint16(45685), + 27: uint16(45692), + 28: uint16(45700), + 29: uint16(45701), + 30: uint16(45705), + 31: uint16(45712), + 32: uint16(45713), + 33: uint16(45716), + 34: uint16(45720), + 35: uint16(45721), + 36: uint16(45722), + 37: uint16(45728), + 38: uint16(45729), + 39: uint16(45731), + 40: uint16(45733), + 41: uint16(45734), + 42: uint16(45738), + 43: uint16(45740), + 44: uint16(45744), + 45: uint16(45748), + 46: uint16(45768), + 47: uint16(45769), + 48: uint16(45772), + 49: uint16(45776), + 50: uint16(45778), + 51: uint16(45784), + 52: uint16(45785), + 53: uint16(45787), + 54: uint16(45789), + 55: uint16(45794), + 56: uint16(45796), + 57: uint16(45797), + 58: uint16(45798), + 59: uint16(45800), + 60: uint16(45803), + 61: uint16(45804), + 62: uint16(45805), + 63: uint16(45806), + 64: uint16(45807), + 65: uint16(45811), + 66: uint16(45812), + 67: uint16(45813), + 68: uint16(45815), + 69: uint16(45816), + 70: uint16(45817), + 71: uint16(45818), + 72: uint16(45819), + 73: uint16(45823), + 74: uint16(45824), + 75: uint16(45825), + 76: uint16(45828), + 77: uint16(45832), + 78: uint16(45840), + 79: uint16(45841), + 80: uint16(45843), + 81: uint16(45844), + 82: uint16(45845), + 83: uint16(45852), + 84: uint16(45908), + 85: uint16(45909), + 86: uint16(45910), + 87: uint16(45912), + 88: uint16(45915), + 89: uint16(45916), + 90: uint16(45918), + 91: uint16(45919), + 92: uint16(45924), + 93: uint16(45925), + }, + 20: { + 0: uint16(45927), + 1: uint16(45929), + 2: uint16(45931), + 3: uint16(45934), + 4: uint16(45936), + 5: uint16(45937), + 6: uint16(45940), + 7: uint16(45944), + 8: uint16(45952), + 9: uint16(45953), + 10: uint16(45955), + 11: uint16(45956), + 12: uint16(45957), + 13: uint16(45964), + 14: uint16(45968), + 15: uint16(45972), + 16: uint16(45984), + 17: uint16(45985), + 18: uint16(45992), + 19: uint16(45996), + 20: uint16(46020), + 21: uint16(46021), + 22: uint16(46024), + 23: uint16(46027), + 24: uint16(46028), + 25: uint16(46030), + 26: uint16(46032), + 27: uint16(46036), + 28: uint16(46037), + 29: uint16(46039), + 30: uint16(46041), + 31: uint16(46043), + 32: uint16(46045), + 33: uint16(46048), + 34: uint16(46052), + 35: uint16(46056), + 36: uint16(46076), + 37: uint16(46096), + 38: uint16(46104), + 39: uint16(46108), + 40: uint16(46112), + 41: uint16(46120), + 42: uint16(46121), + 43: uint16(46123), + 44: uint16(46132), + 45: uint16(46160), + 46: uint16(46161), + 47: uint16(46164), + 48: uint16(46168), + 49: uint16(46176), + 50: uint16(46177), + 51: uint16(46179), + 52: uint16(46181), + 53: uint16(46188), + 54: uint16(46208), + 55: uint16(46216), + 56: uint16(46237), + 57: uint16(46244), + 58: uint16(46248), + 59: uint16(46252), + 60: uint16(46261), + 61: uint16(46263), + 62: uint16(46265), + 63: uint16(46272), + 64: uint16(46276), + 65: uint16(46280), + 66: uint16(46288), + 67: uint16(46293), + 68: uint16(46300), + 69: uint16(46301), + 70: uint16(46304), + 71: uint16(46307), + 72: uint16(46308), + 73: uint16(46310), + 74: uint16(46316), + 75: uint16(46317), + 76: uint16(46319), + 77: uint16(46321), + 78: uint16(46328), + 79: uint16(46356), + 80: uint16(46357), + 81: uint16(46360), + 82: uint16(46363), + 83: uint16(46364), + 84: uint16(46372), + 85: uint16(46373), + 86: uint16(46375), + 87: uint16(46376), + 88: uint16(46377), + 89: uint16(46378), + 90: uint16(46384), + 91: uint16(46385), + 92: uint16(46388), + 93: uint16(46392), + }, + 21: { + 0: uint16(46400), + 1: uint16(46401), + 2: uint16(46403), + 3: uint16(46404), + 4: uint16(46405), + 5: uint16(46411), + 6: uint16(46412), + 7: uint16(46413), + 8: uint16(46416), + 9: uint16(46420), + 10: uint16(46428), + 11: uint16(46429), + 12: uint16(46431), + 13: uint16(46432), + 14: uint16(46433), + 15: uint16(46496), + 16: uint16(46497), + 17: uint16(46500), + 18: uint16(46504), + 19: uint16(46506), + 20: uint16(46507), + 21: uint16(46512), + 22: uint16(46513), + 23: uint16(46515), + 24: uint16(46516), + 25: uint16(46517), + 26: uint16(46523), + 27: uint16(46524), + 28: uint16(46525), + 29: uint16(46528), + 30: uint16(46532), + 31: uint16(46540), + 32: uint16(46541), + 33: uint16(46543), + 34: uint16(46544), + 35: uint16(46545), + 36: uint16(46552), + 37: uint16(46572), + 38: uint16(46608), + 39: uint16(46609), + 40: uint16(46612), + 41: uint16(46616), + 42: uint16(46629), + 43: uint16(46636), + 44: uint16(46644), + 45: uint16(46664), + 46: uint16(46692), + 47: uint16(46696), + 48: uint16(46748), + 49: uint16(46749), + 50: uint16(46752), + 51: uint16(46756), + 52: uint16(46763), + 53: uint16(46764), + 54: uint16(46769), + 55: uint16(46804), + 56: uint16(46832), + 57: uint16(46836), + 58: uint16(46840), + 59: uint16(46848), + 60: uint16(46849), + 61: uint16(46853), + 62: uint16(46888), + 63: uint16(46889), + 64: uint16(46892), + 65: uint16(46895), + 66: uint16(46896), + 67: uint16(46904), + 68: uint16(46905), + 69: uint16(46907), + 70: uint16(46916), + 71: uint16(46920), + 72: uint16(46924), + 73: uint16(46932), + 74: uint16(46933), + 75: uint16(46944), + 76: uint16(46948), + 77: uint16(46952), + 78: uint16(46960), + 79: uint16(46961), + 80: uint16(46963), + 81: uint16(46965), + 82: uint16(46972), + 83: uint16(46973), + 84: uint16(46976), + 85: uint16(46980), + 86: uint16(46988), + 87: uint16(46989), + 88: uint16(46991), + 89: uint16(46992), + 90: uint16(46993), + 91: uint16(46994), + 92: uint16(46998), + 93: uint16(46999), + }, + 22: { + 0: uint16(47000), + 1: uint16(47001), + 2: uint16(47004), + 3: uint16(47008), + 4: uint16(47016), + 5: uint16(47017), + 6: uint16(47019), + 7: uint16(47020), + 8: uint16(47021), + 9: uint16(47028), + 10: uint16(47029), + 11: uint16(47032), + 12: uint16(47047), + 13: uint16(47049), + 14: uint16(47084), + 15: uint16(47085), + 16: uint16(47088), + 17: uint16(47092), + 18: uint16(47100), + 19: uint16(47101), + 20: uint16(47103), + 21: uint16(47104), + 22: uint16(47105), + 23: uint16(47111), + 24: uint16(47112), + 25: uint16(47113), + 26: uint16(47116), + 27: uint16(47120), + 28: uint16(47128), + 29: uint16(47129), + 30: uint16(47131), + 31: uint16(47133), + 32: uint16(47140), + 33: uint16(47141), + 34: uint16(47144), + 35: uint16(47148), + 36: uint16(47156), + 37: uint16(47157), + 38: uint16(47159), + 39: uint16(47160), + 40: uint16(47161), + 41: uint16(47168), + 42: uint16(47172), + 43: uint16(47185), + 44: uint16(47187), + 45: uint16(47196), + 46: uint16(47197), + 47: uint16(47200), + 48: uint16(47204), + 49: uint16(47212), + 50: uint16(47213), + 51: uint16(47215), + 52: uint16(47217), + 53: uint16(47224), + 54: uint16(47228), + 55: uint16(47245), + 56: uint16(47272), + 57: uint16(47280), + 58: uint16(47284), + 59: uint16(47288), + 60: uint16(47296), + 61: uint16(47297), + 62: uint16(47299), + 63: uint16(47301), + 64: uint16(47308), + 65: uint16(47312), + 66: uint16(47316), + 67: uint16(47325), + 68: uint16(47327), + 69: uint16(47329), + 70: uint16(47336), + 71: uint16(47337), + 72: uint16(47340), + 73: uint16(47344), + 74: uint16(47352), + 75: uint16(47353), + 76: uint16(47355), + 77: uint16(47357), + 78: uint16(47364), + 79: uint16(47384), + 80: uint16(47392), + 81: uint16(47420), + 82: uint16(47421), + 83: uint16(47424), + 84: uint16(47428), + 85: uint16(47436), + 86: uint16(47439), + 87: uint16(47441), + 88: uint16(47448), + 89: uint16(47449), + 90: uint16(47452), + 91: uint16(47456), + 92: uint16(47464), + 93: uint16(47465), + }, + 23: { + 0: uint16(47467), + 1: uint16(47469), + 2: uint16(47476), + 3: uint16(47477), + 4: uint16(47480), + 5: uint16(47484), + 6: uint16(47492), + 7: uint16(47493), + 8: uint16(47495), + 9: uint16(47497), + 10: uint16(47498), + 11: uint16(47501), + 12: uint16(47502), + 13: uint16(47532), + 14: uint16(47533), + 15: uint16(47536), + 16: uint16(47540), + 17: uint16(47548), + 18: uint16(47549), + 19: uint16(47551), + 20: uint16(47553), + 21: uint16(47560), + 22: uint16(47561), + 23: uint16(47564), + 24: uint16(47566), + 25: uint16(47567), + 26: uint16(47568), + 27: uint16(47569), + 28: uint16(47570), + 29: uint16(47576), + 30: uint16(47577), + 31: uint16(47579), + 32: uint16(47581), + 33: uint16(47582), + 34: uint16(47585), + 35: uint16(47587), + 36: uint16(47588), + 37: uint16(47589), + 38: uint16(47592), + 39: uint16(47596), + 40: uint16(47604), + 41: uint16(47605), + 42: uint16(47607), + 43: uint16(47608), + 44: uint16(47609), + 45: uint16(47610), + 46: uint16(47616), + 47: uint16(47617), + 48: uint16(47624), + 49: uint16(47637), + 50: uint16(47672), + 51: uint16(47673), + 52: uint16(47676), + 53: uint16(47680), + 54: uint16(47682), + 55: uint16(47688), + 56: uint16(47689), + 57: uint16(47691), + 58: uint16(47693), + 59: uint16(47694), + 60: uint16(47699), + 61: uint16(47700), + 62: uint16(47701), + 63: uint16(47704), + 64: uint16(47708), + 65: uint16(47716), + 66: uint16(47717), + 67: uint16(47719), + 68: uint16(47720), + 69: uint16(47721), + 70: uint16(47728), + 71: uint16(47729), + 72: uint16(47732), + 73: uint16(47736), + 74: uint16(47747), + 75: uint16(47748), + 76: uint16(47749), + 77: uint16(47751), + 78: uint16(47756), + 79: uint16(47784), + 80: uint16(47785), + 81: uint16(47787), + 82: uint16(47788), + 83: uint16(47792), + 84: uint16(47794), + 85: uint16(47800), + 86: uint16(47801), + 87: uint16(47803), + 88: uint16(47805), + 89: uint16(47812), + 90: uint16(47816), + 91: uint16(47832), + 92: uint16(47833), + 93: uint16(47868), + }, + 24: { + 0: uint16(47872), + 1: uint16(47876), + 2: uint16(47885), + 3: uint16(47887), + 4: uint16(47889), + 5: uint16(47896), + 6: uint16(47900), + 7: uint16(47904), + 8: uint16(47913), + 9: uint16(47915), + 10: uint16(47924), + 11: uint16(47925), + 12: uint16(47926), + 13: uint16(47928), + 14: uint16(47931), + 15: uint16(47932), + 16: uint16(47933), + 17: uint16(47934), + 18: uint16(47940), + 19: uint16(47941), + 20: uint16(47943), + 21: uint16(47945), + 22: uint16(47949), + 23: uint16(47951), + 24: uint16(47952), + 25: uint16(47956), + 26: uint16(47960), + 27: uint16(47969), + 28: uint16(47971), + 29: uint16(47980), + 30: uint16(48008), + 31: uint16(48012), + 32: uint16(48016), + 33: uint16(48036), + 34: uint16(48040), + 35: uint16(48044), + 36: uint16(48052), + 37: uint16(48055), + 38: uint16(48064), + 39: uint16(48068), + 40: uint16(48072), + 41: uint16(48080), + 42: uint16(48083), + 43: uint16(48120), + 44: uint16(48121), + 45: uint16(48124), + 46: uint16(48127), + 47: uint16(48128), + 48: uint16(48130), + 49: uint16(48136), + 50: uint16(48137), + 51: uint16(48139), + 52: uint16(48140), + 53: uint16(48141), + 54: uint16(48143), + 55: uint16(48145), + 56: uint16(48148), + 57: uint16(48149), + 58: uint16(48150), + 59: uint16(48151), + 60: uint16(48152), + 61: uint16(48155), + 62: uint16(48156), + 63: uint16(48157), + 64: uint16(48158), + 65: uint16(48159), + 66: uint16(48164), + 67: uint16(48165), + 68: uint16(48167), + 69: uint16(48169), + 70: uint16(48173), + 71: uint16(48176), + 72: uint16(48177), + 73: uint16(48180), + 74: uint16(48184), + 75: uint16(48192), + 76: uint16(48193), + 77: uint16(48195), + 78: uint16(48196), + 79: uint16(48197), + 80: uint16(48201), + 81: uint16(48204), + 82: uint16(48205), + 83: uint16(48208), + 84: uint16(48221), + 85: uint16(48260), + 86: uint16(48261), + 87: uint16(48264), + 88: uint16(48267), + 89: uint16(48268), + 90: uint16(48270), + 91: uint16(48276), + 92: uint16(48277), + 93: uint16(48279), + }, + 25: { + 0: uint16(48281), + 1: uint16(48282), + 2: uint16(48288), + 3: uint16(48289), + 4: uint16(48292), + 5: uint16(48295), + 6: uint16(48296), + 7: uint16(48304), + 8: uint16(48305), + 9: uint16(48307), + 10: uint16(48308), + 11: uint16(48309), + 12: uint16(48316), + 13: uint16(48317), + 14: uint16(48320), + 15: uint16(48324), + 16: uint16(48333), + 17: uint16(48335), + 18: uint16(48336), + 19: uint16(48337), + 20: uint16(48341), + 21: uint16(48344), + 22: uint16(48348), + 23: uint16(48372), + 24: uint16(48373), + 25: uint16(48374), + 26: uint16(48376), + 27: uint16(48380), + 28: uint16(48388), + 29: uint16(48389), + 30: uint16(48391), + 31: uint16(48393), + 32: uint16(48400), + 33: uint16(48404), + 34: uint16(48420), + 35: uint16(48428), + 36: uint16(48448), + 37: uint16(48456), + 38: uint16(48457), + 39: uint16(48460), + 40: uint16(48464), + 41: uint16(48472), + 42: uint16(48473), + 43: uint16(48484), + 44: uint16(48488), + 45: uint16(48512), + 46: uint16(48513), + 47: uint16(48516), + 48: uint16(48519), + 49: uint16(48520), + 50: uint16(48521), + 51: uint16(48522), + 52: uint16(48528), + 53: uint16(48529), + 54: uint16(48531), + 55: uint16(48533), + 56: uint16(48537), + 57: uint16(48538), + 58: uint16(48540), + 59: uint16(48548), + 60: uint16(48560), + 61: uint16(48568), + 62: uint16(48596), + 63: uint16(48597), + 64: uint16(48600), + 65: uint16(48604), + 66: uint16(48617), + 67: uint16(48624), + 68: uint16(48628), + 69: uint16(48632), + 70: uint16(48640), + 71: uint16(48643), + 72: uint16(48645), + 73: uint16(48652), + 74: uint16(48653), + 75: uint16(48656), + 76: uint16(48660), + 77: uint16(48668), + 78: uint16(48669), + 79: uint16(48671), + 80: uint16(48708), + 81: uint16(48709), + 82: uint16(48712), + 83: uint16(48716), + 84: uint16(48718), + 85: uint16(48724), + 86: uint16(48725), + 87: uint16(48727), + 88: uint16(48729), + 89: uint16(48730), + 90: uint16(48731), + 91: uint16(48736), + 92: uint16(48737), + 93: uint16(48740), + }, + 26: { + 0: uint16(48744), + 1: uint16(48746), + 2: uint16(48752), + 3: uint16(48753), + 4: uint16(48755), + 5: uint16(48756), + 6: uint16(48757), + 7: uint16(48763), + 8: uint16(48764), + 9: uint16(48765), + 10: uint16(48768), + 11: uint16(48772), + 12: uint16(48780), + 13: uint16(48781), + 14: uint16(48783), + 15: uint16(48784), + 16: uint16(48785), + 17: uint16(48792), + 18: uint16(48793), + 19: uint16(48808), + 20: uint16(48848), + 21: uint16(48849), + 22: uint16(48852), + 23: uint16(48855), + 24: uint16(48856), + 25: uint16(48864), + 26: uint16(48867), + 27: uint16(48868), + 28: uint16(48869), + 29: uint16(48876), + 30: uint16(48897), + 31: uint16(48904), + 32: uint16(48905), + 33: uint16(48920), + 34: uint16(48921), + 35: uint16(48923), + 36: uint16(48924), + 37: uint16(48925), + 38: uint16(48960), + 39: uint16(48961), + 40: uint16(48964), + 41: uint16(48968), + 42: uint16(48976), + 43: uint16(48977), + 44: uint16(48981), + 45: uint16(49044), + 46: uint16(49072), + 47: uint16(49093), + 48: uint16(49100), + 49: uint16(49101), + 50: uint16(49104), + 51: uint16(49108), + 52: uint16(49116), + 53: uint16(49119), + 54: uint16(49121), + 55: uint16(49212), + 56: uint16(49233), + 57: uint16(49240), + 58: uint16(49244), + 59: uint16(49248), + 60: uint16(49256), + 61: uint16(49257), + 62: uint16(49296), + 63: uint16(49297), + 64: uint16(49300), + 65: uint16(49304), + 66: uint16(49312), + 67: uint16(49313), + 68: uint16(49315), + 69: uint16(49317), + 70: uint16(49324), + 71: uint16(49325), + 72: uint16(49327), + 73: uint16(49328), + 74: uint16(49331), + 75: uint16(49332), + 76: uint16(49333), + 77: uint16(49334), + 78: uint16(49340), + 79: uint16(49341), + 80: uint16(49343), + 81: uint16(49344), + 82: uint16(49345), + 83: uint16(49349), + 84: uint16(49352), + 85: uint16(49353), + 86: uint16(49356), + 87: uint16(49360), + 88: uint16(49368), + 89: uint16(49369), + 90: uint16(49371), + 91: uint16(49372), + 92: uint16(49373), + 93: uint16(49380), + }, + 27: { + 0: uint16(49381), + 1: uint16(49384), + 2: uint16(49388), + 3: uint16(49396), + 4: uint16(49397), + 5: uint16(49399), + 6: uint16(49401), + 7: uint16(49408), + 8: uint16(49412), + 9: uint16(49416), + 10: uint16(49424), + 11: uint16(49429), + 12: uint16(49436), + 13: uint16(49437), + 14: uint16(49438), + 15: uint16(49439), + 16: uint16(49440), + 17: uint16(49443), + 18: uint16(49444), + 19: uint16(49446), + 20: uint16(49447), + 21: uint16(49452), + 22: uint16(49453), + 23: uint16(49455), + 24: uint16(49456), + 25: uint16(49457), + 26: uint16(49462), + 27: uint16(49464), + 28: uint16(49465), + 29: uint16(49468), + 30: uint16(49472), + 31: uint16(49480), + 32: uint16(49481), + 33: uint16(49483), + 34: uint16(49484), + 35: uint16(49485), + 36: uint16(49492), + 37: uint16(49493), + 38: uint16(49496), + 39: uint16(49500), + 40: uint16(49508), + 41: uint16(49509), + 42: uint16(49511), + 43: uint16(49512), + 44: uint16(49513), + 45: uint16(49520), + 46: uint16(49524), + 47: uint16(49528), + 48: uint16(49541), + 49: uint16(49548), + 50: uint16(49549), + 51: uint16(49550), + 52: uint16(49552), + 53: uint16(49556), + 54: uint16(49558), + 55: uint16(49564), + 56: uint16(49565), + 57: uint16(49567), + 58: uint16(49569), + 59: uint16(49573), + 60: uint16(49576), + 61: uint16(49577), + 62: uint16(49580), + 63: uint16(49584), + 64: uint16(49597), + 65: uint16(49604), + 66: uint16(49608), + 67: uint16(49612), + 68: uint16(49620), + 69: uint16(49623), + 70: uint16(49624), + 71: uint16(49632), + 72: uint16(49636), + 73: uint16(49640), + 74: uint16(49648), + 75: uint16(49649), + 76: uint16(49651), + 77: uint16(49660), + 78: uint16(49661), + 79: uint16(49664), + 80: uint16(49668), + 81: uint16(49676), + 82: uint16(49677), + 83: uint16(49679), + 84: uint16(49681), + 85: uint16(49688), + 86: uint16(49689), + 87: uint16(49692), + 88: uint16(49695), + 89: uint16(49696), + 90: uint16(49704), + 91: uint16(49705), + 92: uint16(49707), + 93: uint16(49709), + }, + 28: { + 0: uint16(49711), + 1: uint16(49713), + 2: uint16(49714), + 3: uint16(49716), + 4: uint16(49736), + 5: uint16(49744), + 6: uint16(49745), + 7: uint16(49748), + 8: uint16(49752), + 9: uint16(49760), + 10: uint16(49765), + 11: uint16(49772), + 12: uint16(49773), + 13: uint16(49776), + 14: uint16(49780), + 15: uint16(49788), + 16: uint16(49789), + 17: uint16(49791), + 18: uint16(49793), + 19: uint16(49800), + 20: uint16(49801), + 21: uint16(49808), + 22: uint16(49816), + 23: uint16(49819), + 24: uint16(49821), + 25: uint16(49828), + 26: uint16(49829), + 27: uint16(49832), + 28: uint16(49836), + 29: uint16(49837), + 30: uint16(49844), + 31: uint16(49845), + 32: uint16(49847), + 33: uint16(49849), + 34: uint16(49884), + 35: uint16(49885), + 36: uint16(49888), + 37: uint16(49891), + 38: uint16(49892), + 39: uint16(49899), + 40: uint16(49900), + 41: uint16(49901), + 42: uint16(49903), + 43: uint16(49905), + 44: uint16(49910), + 45: uint16(49912), + 46: uint16(49913), + 47: uint16(49915), + 48: uint16(49916), + 49: uint16(49920), + 50: uint16(49928), + 51: uint16(49929), + 52: uint16(49932), + 53: uint16(49933), + 54: uint16(49939), + 55: uint16(49940), + 56: uint16(49941), + 57: uint16(49944), + 58: uint16(49948), + 59: uint16(49956), + 60: uint16(49957), + 61: uint16(49960), + 62: uint16(49961), + 63: uint16(49989), + 64: uint16(50024), + 65: uint16(50025), + 66: uint16(50028), + 67: uint16(50032), + 68: uint16(50034), + 69: uint16(50040), + 70: uint16(50041), + 71: uint16(50044), + 72: uint16(50045), + 73: uint16(50052), + 74: uint16(50056), + 75: uint16(50060), + 76: uint16(50112), + 77: uint16(50136), + 78: uint16(50137), + 79: uint16(50140), + 80: uint16(50143), + 81: uint16(50144), + 82: uint16(50146), + 83: uint16(50152), + 84: uint16(50153), + 85: uint16(50157), + 86: uint16(50164), + 87: uint16(50165), + 88: uint16(50168), + 89: uint16(50184), + 90: uint16(50192), + 91: uint16(50212), + 92: uint16(50220), + 93: uint16(50224), + }, + 29: { + 0: uint16(50228), + 1: uint16(50236), + 2: uint16(50237), + 3: uint16(50248), + 4: uint16(50276), + 5: uint16(50277), + 6: uint16(50280), + 7: uint16(50284), + 8: uint16(50292), + 9: uint16(50293), + 10: uint16(50297), + 11: uint16(50304), + 12: uint16(50324), + 13: uint16(50332), + 14: uint16(50360), + 15: uint16(50364), + 16: uint16(50409), + 17: uint16(50416), + 18: uint16(50417), + 19: uint16(50420), + 20: uint16(50424), + 21: uint16(50426), + 22: uint16(50431), + 23: uint16(50432), + 24: uint16(50433), + 25: uint16(50444), + 26: uint16(50448), + 27: uint16(50452), + 28: uint16(50460), + 29: uint16(50472), + 30: uint16(50473), + 31: uint16(50476), + 32: uint16(50480), + 33: uint16(50488), + 34: uint16(50489), + 35: uint16(50491), + 36: uint16(50493), + 37: uint16(50500), + 38: uint16(50501), + 39: uint16(50504), + 40: uint16(50505), + 41: uint16(50506), + 42: uint16(50508), + 43: uint16(50509), + 44: uint16(50510), + 45: uint16(50515), + 46: uint16(50516), + 47: uint16(50517), + 48: uint16(50519), + 49: uint16(50520), + 50: uint16(50521), + 51: uint16(50525), + 52: uint16(50526), + 53: uint16(50528), + 54: uint16(50529), + 55: uint16(50532), + 56: uint16(50536), + 57: uint16(50544), + 58: uint16(50545), + 59: uint16(50547), + 60: uint16(50548), + 61: uint16(50549), + 62: uint16(50556), + 63: uint16(50557), + 64: uint16(50560), + 65: uint16(50564), + 66: uint16(50567), + 67: uint16(50572), + 68: uint16(50573), + 69: uint16(50575), + 70: uint16(50577), + 71: uint16(50581), + 72: uint16(50583), + 73: uint16(50584), + 74: uint16(50588), + 75: uint16(50592), + 76: uint16(50601), + 77: uint16(50612), + 78: uint16(50613), + 79: uint16(50616), + 80: uint16(50617), + 81: uint16(50619), + 82: uint16(50620), + 83: uint16(50621), + 84: uint16(50622), + 85: uint16(50628), + 86: uint16(50629), + 87: uint16(50630), + 88: uint16(50631), + 89: uint16(50632), + 90: uint16(50633), + 91: uint16(50634), + 92: uint16(50636), + 93: uint16(50638), + }, + 30: { + 0: uint16(50640), + 1: uint16(50641), + 2: uint16(50644), + 3: uint16(50648), + 4: uint16(50656), + 5: uint16(50657), + 6: uint16(50659), + 7: uint16(50661), + 8: uint16(50668), + 9: uint16(50669), + 10: uint16(50670), + 11: uint16(50672), + 12: uint16(50676), + 13: uint16(50678), + 14: uint16(50679), + 15: uint16(50684), + 16: uint16(50685), + 17: uint16(50686), + 18: uint16(50687), + 19: uint16(50688), + 20: uint16(50689), + 21: uint16(50693), + 22: uint16(50694), + 23: uint16(50695), + 24: uint16(50696), + 25: uint16(50700), + 26: uint16(50704), + 27: uint16(50712), + 28: uint16(50713), + 29: uint16(50715), + 30: uint16(50716), + 31: uint16(50724), + 32: uint16(50725), + 33: uint16(50728), + 34: uint16(50732), + 35: uint16(50733), + 36: uint16(50734), + 37: uint16(50736), + 38: uint16(50739), + 39: uint16(50740), + 40: uint16(50741), + 41: uint16(50743), + 42: uint16(50745), + 43: uint16(50747), + 44: uint16(50752), + 45: uint16(50753), + 46: uint16(50756), + 47: uint16(50760), + 48: uint16(50768), + 49: uint16(50769), + 50: uint16(50771), + 51: uint16(50772), + 52: uint16(50773), + 53: uint16(50780), + 54: uint16(50781), + 55: uint16(50784), + 56: uint16(50796), + 57: uint16(50799), + 58: uint16(50801), + 59: uint16(50808), + 60: uint16(50809), + 61: uint16(50812), + 62: uint16(50816), + 63: uint16(50824), + 64: uint16(50825), + 65: uint16(50827), + 66: uint16(50829), + 67: uint16(50836), + 68: uint16(50837), + 69: uint16(50840), + 70: uint16(50844), + 71: uint16(50852), + 72: uint16(50853), + 73: uint16(50855), + 74: uint16(50857), + 75: uint16(50864), + 76: uint16(50865), + 77: uint16(50868), + 78: uint16(50872), + 79: uint16(50873), + 80: uint16(50874), + 81: uint16(50880), + 82: uint16(50881), + 83: uint16(50883), + 84: uint16(50885), + 85: uint16(50892), + 86: uint16(50893), + 87: uint16(50896), + 88: uint16(50900), + 89: uint16(50908), + 90: uint16(50909), + 91: uint16(50912), + 92: uint16(50913), + 93: uint16(50920), + }, + 31: { + 0: uint16(50921), + 1: uint16(50924), + 2: uint16(50928), + 3: uint16(50936), + 4: uint16(50937), + 5: uint16(50941), + 6: uint16(50948), + 7: uint16(50949), + 8: uint16(50952), + 9: uint16(50956), + 10: uint16(50964), + 11: uint16(50965), + 12: uint16(50967), + 13: uint16(50969), + 14: uint16(50976), + 15: uint16(50977), + 16: uint16(50980), + 17: uint16(50984), + 18: uint16(50992), + 19: uint16(50993), + 20: uint16(50995), + 21: uint16(50997), + 22: uint16(50999), + 23: uint16(51004), + 24: uint16(51005), + 25: uint16(51008), + 26: uint16(51012), + 27: uint16(51018), + 28: uint16(51020), + 29: uint16(51021), + 30: uint16(51023), + 31: uint16(51025), + 32: uint16(51026), + 33: uint16(51027), + 34: uint16(51028), + 35: uint16(51029), + 36: uint16(51030), + 37: uint16(51031), + 38: uint16(51032), + 39: uint16(51036), + 40: uint16(51040), + 41: uint16(51048), + 42: uint16(51051), + 43: uint16(51060), + 44: uint16(51061), + 45: uint16(51064), + 46: uint16(51068), + 47: uint16(51069), + 48: uint16(51070), + 49: uint16(51075), + 50: uint16(51076), + 51: uint16(51077), + 52: uint16(51079), + 53: uint16(51080), + 54: uint16(51081), + 55: uint16(51082), + 56: uint16(51086), + 57: uint16(51088), + 58: uint16(51089), + 59: uint16(51092), + 60: uint16(51094), + 61: uint16(51095), + 62: uint16(51096), + 63: uint16(51098), + 64: uint16(51104), + 65: uint16(51105), + 66: uint16(51107), + 67: uint16(51108), + 68: uint16(51109), + 69: uint16(51110), + 70: uint16(51116), + 71: uint16(51117), + 72: uint16(51120), + 73: uint16(51124), + 74: uint16(51132), + 75: uint16(51133), + 76: uint16(51135), + 77: uint16(51136), + 78: uint16(51137), + 79: uint16(51144), + 80: uint16(51145), + 81: uint16(51148), + 82: uint16(51150), + 83: uint16(51152), + 84: uint16(51160), + 85: uint16(51165), + 86: uint16(51172), + 87: uint16(51176), + 88: uint16(51180), + 89: uint16(51200), + 90: uint16(51201), + 91: uint16(51204), + 92: uint16(51208), + 93: uint16(51210), + }, + 32: { + 0: uint16(51216), + 1: uint16(51217), + 2: uint16(51219), + 3: uint16(51221), + 4: uint16(51222), + 5: uint16(51228), + 6: uint16(51229), + 7: uint16(51232), + 8: uint16(51236), + 9: uint16(51244), + 10: uint16(51245), + 11: uint16(51247), + 12: uint16(51249), + 13: uint16(51256), + 14: uint16(51260), + 15: uint16(51264), + 16: uint16(51272), + 17: uint16(51273), + 18: uint16(51276), + 19: uint16(51277), + 20: uint16(51284), + 21: uint16(51312), + 22: uint16(51313), + 23: uint16(51316), + 24: uint16(51320), + 25: uint16(51322), + 26: uint16(51328), + 27: uint16(51329), + 28: uint16(51331), + 29: uint16(51333), + 30: uint16(51334), + 31: uint16(51335), + 32: uint16(51339), + 33: uint16(51340), + 34: uint16(51341), + 35: uint16(51348), + 36: uint16(51357), + 37: uint16(51359), + 38: uint16(51361), + 39: uint16(51368), + 40: uint16(51388), + 41: uint16(51389), + 42: uint16(51396), + 43: uint16(51400), + 44: uint16(51404), + 45: uint16(51412), + 46: uint16(51413), + 47: uint16(51415), + 48: uint16(51417), + 49: uint16(51424), + 50: uint16(51425), + 51: uint16(51428), + 52: uint16(51445), + 53: uint16(51452), + 54: uint16(51453), + 55: uint16(51456), + 56: uint16(51460), + 57: uint16(51461), + 58: uint16(51462), + 59: uint16(51468), + 60: uint16(51469), + 61: uint16(51471), + 62: uint16(51473), + 63: uint16(51480), + 64: uint16(51500), + 65: uint16(51508), + 66: uint16(51536), + 67: uint16(51537), + 68: uint16(51540), + 69: uint16(51544), + 70: uint16(51552), + 71: uint16(51553), + 72: uint16(51555), + 73: uint16(51564), + 74: uint16(51568), + 75: uint16(51572), + 76: uint16(51580), + 77: uint16(51592), + 78: uint16(51593), + 79: uint16(51596), + 80: uint16(51600), + 81: uint16(51608), + 82: uint16(51609), + 83: uint16(51611), + 84: uint16(51613), + 85: uint16(51648), + 86: uint16(51649), + 87: uint16(51652), + 88: uint16(51655), + 89: uint16(51656), + 90: uint16(51658), + 91: uint16(51664), + 92: uint16(51665), + 93: uint16(51667), + }, + 33: { + 0: uint16(51669), + 1: uint16(51670), + 2: uint16(51673), + 3: uint16(51674), + 4: uint16(51676), + 5: uint16(51677), + 6: uint16(51680), + 7: uint16(51682), + 8: uint16(51684), + 9: uint16(51687), + 10: uint16(51692), + 11: uint16(51693), + 12: uint16(51695), + 13: uint16(51696), + 14: uint16(51697), + 15: uint16(51704), + 16: uint16(51705), + 17: uint16(51708), + 18: uint16(51712), + 19: uint16(51720), + 20: uint16(51721), + 21: uint16(51723), + 22: uint16(51724), + 23: uint16(51725), + 24: uint16(51732), + 25: uint16(51736), + 26: uint16(51753), + 27: uint16(51788), + 28: uint16(51789), + 29: uint16(51792), + 30: uint16(51796), + 31: uint16(51804), + 32: uint16(51805), + 33: uint16(51807), + 34: uint16(51808), + 35: uint16(51809), + 36: uint16(51816), + 37: uint16(51837), + 38: uint16(51844), + 39: uint16(51864), + 40: uint16(51900), + 41: uint16(51901), + 42: uint16(51904), + 43: uint16(51908), + 44: uint16(51916), + 45: uint16(51917), + 46: uint16(51919), + 47: uint16(51921), + 48: uint16(51923), + 49: uint16(51928), + 50: uint16(51929), + 51: uint16(51936), + 52: uint16(51948), + 53: uint16(51956), + 54: uint16(51976), + 55: uint16(51984), + 56: uint16(51988), + 57: uint16(51992), + 58: uint16(52000), + 59: uint16(52001), + 60: uint16(52033), + 61: uint16(52040), + 62: uint16(52041), + 63: uint16(52044), + 64: uint16(52048), + 65: uint16(52056), + 66: uint16(52057), + 67: uint16(52061), + 68: uint16(52068), + 69: uint16(52088), + 70: uint16(52089), + 71: uint16(52124), + 72: uint16(52152), + 73: uint16(52180), + 74: uint16(52196), + 75: uint16(52199), + 76: uint16(52201), + 77: uint16(52236), + 78: uint16(52237), + 79: uint16(52240), + 80: uint16(52244), + 81: uint16(52252), + 82: uint16(52253), + 83: uint16(52257), + 84: uint16(52258), + 85: uint16(52263), + 86: uint16(52264), + 87: uint16(52265), + 88: uint16(52268), + 89: uint16(52270), + 90: uint16(52272), + 91: uint16(52280), + 92: uint16(52281), + 93: uint16(52283), + }, + 34: { + 0: uint16(52284), + 1: uint16(52285), + 2: uint16(52286), + 3: uint16(52292), + 4: uint16(52293), + 5: uint16(52296), + 6: uint16(52300), + 7: uint16(52308), + 8: uint16(52309), + 9: uint16(52311), + 10: uint16(52312), + 11: uint16(52313), + 12: uint16(52320), + 13: uint16(52324), + 14: uint16(52326), + 15: uint16(52328), + 16: uint16(52336), + 17: uint16(52341), + 18: uint16(52376), + 19: uint16(52377), + 20: uint16(52380), + 21: uint16(52384), + 22: uint16(52392), + 23: uint16(52393), + 24: uint16(52395), + 25: uint16(52396), + 26: uint16(52397), + 27: uint16(52404), + 28: uint16(52405), + 29: uint16(52408), + 30: uint16(52412), + 31: uint16(52420), + 32: uint16(52421), + 33: uint16(52423), + 34: uint16(52425), + 35: uint16(52432), + 36: uint16(52436), + 37: uint16(52452), + 38: uint16(52460), + 39: uint16(52464), + 40: uint16(52481), + 41: uint16(52488), + 42: uint16(52489), + 43: uint16(52492), + 44: uint16(52496), + 45: uint16(52504), + 46: uint16(52505), + 47: uint16(52507), + 48: uint16(52509), + 49: uint16(52516), + 50: uint16(52520), + 51: uint16(52524), + 52: uint16(52537), + 53: uint16(52572), + 54: uint16(52576), + 55: uint16(52580), + 56: uint16(52588), + 57: uint16(52589), + 58: uint16(52591), + 59: uint16(52593), + 60: uint16(52600), + 61: uint16(52616), + 62: uint16(52628), + 63: uint16(52629), + 64: uint16(52632), + 65: uint16(52636), + 66: uint16(52644), + 67: uint16(52645), + 68: uint16(52647), + 69: uint16(52649), + 70: uint16(52656), + 71: uint16(52676), + 72: uint16(52684), + 73: uint16(52688), + 74: uint16(52712), + 75: uint16(52716), + 76: uint16(52720), + 77: uint16(52728), + 78: uint16(52729), + 79: uint16(52731), + 80: uint16(52733), + 81: uint16(52740), + 82: uint16(52744), + 83: uint16(52748), + 84: uint16(52756), + 85: uint16(52761), + 86: uint16(52768), + 87: uint16(52769), + 88: uint16(52772), + 89: uint16(52776), + 90: uint16(52784), + 91: uint16(52785), + 92: uint16(52787), + 93: uint16(52789), + }, + 35: { + 0: uint16(52824), + 1: uint16(52825), + 2: uint16(52828), + 3: uint16(52831), + 4: uint16(52832), + 5: uint16(52833), + 6: uint16(52840), + 7: uint16(52841), + 8: uint16(52843), + 9: uint16(52845), + 10: uint16(52852), + 11: uint16(52853), + 12: uint16(52856), + 13: uint16(52860), + 14: uint16(52868), + 15: uint16(52869), + 16: uint16(52871), + 17: uint16(52873), + 18: uint16(52880), + 19: uint16(52881), + 20: uint16(52884), + 21: uint16(52888), + 22: uint16(52896), + 23: uint16(52897), + 24: uint16(52899), + 25: uint16(52900), + 26: uint16(52901), + 27: uint16(52908), + 28: uint16(52909), + 29: uint16(52929), + 30: uint16(52964), + 31: uint16(52965), + 32: uint16(52968), + 33: uint16(52971), + 34: uint16(52972), + 35: uint16(52980), + 36: uint16(52981), + 37: uint16(52983), + 38: uint16(52984), + 39: uint16(52985), + 40: uint16(52992), + 41: uint16(52993), + 42: uint16(52996), + 43: uint16(53000), + 44: uint16(53008), + 45: uint16(53009), + 46: uint16(53011), + 47: uint16(53013), + 48: uint16(53020), + 49: uint16(53024), + 50: uint16(53028), + 51: uint16(53036), + 52: uint16(53037), + 53: uint16(53039), + 54: uint16(53040), + 55: uint16(53041), + 56: uint16(53048), + 57: uint16(53076), + 58: uint16(53077), + 59: uint16(53080), + 60: uint16(53084), + 61: uint16(53092), + 62: uint16(53093), + 63: uint16(53095), + 64: uint16(53097), + 65: uint16(53104), + 66: uint16(53105), + 67: uint16(53108), + 68: uint16(53112), + 69: uint16(53120), + 70: uint16(53125), + 71: uint16(53132), + 72: uint16(53153), + 73: uint16(53160), + 74: uint16(53168), + 75: uint16(53188), + 76: uint16(53216), + 77: uint16(53217), + 78: uint16(53220), + 79: uint16(53224), + 80: uint16(53232), + 81: uint16(53233), + 82: uint16(53235), + 83: uint16(53237), + 84: uint16(53244), + 85: uint16(53248), + 86: uint16(53252), + 87: uint16(53265), + 88: uint16(53272), + 89: uint16(53293), + 90: uint16(53300), + 91: uint16(53301), + 92: uint16(53304), + 93: uint16(53308), + }, + 36: { + 0: uint16(53316), + 1: uint16(53317), + 2: uint16(53319), + 3: uint16(53321), + 4: uint16(53328), + 5: uint16(53332), + 6: uint16(53336), + 7: uint16(53344), + 8: uint16(53356), + 9: uint16(53357), + 10: uint16(53360), + 11: uint16(53364), + 12: uint16(53372), + 13: uint16(53373), + 14: uint16(53377), + 15: uint16(53412), + 16: uint16(53413), + 17: uint16(53416), + 18: uint16(53420), + 19: uint16(53428), + 20: uint16(53429), + 21: uint16(53431), + 22: uint16(53433), + 23: uint16(53440), + 24: uint16(53441), + 25: uint16(53444), + 26: uint16(53448), + 27: uint16(53449), + 28: uint16(53456), + 29: uint16(53457), + 30: uint16(53459), + 31: uint16(53460), + 32: uint16(53461), + 33: uint16(53468), + 34: uint16(53469), + 35: uint16(53472), + 36: uint16(53476), + 37: uint16(53484), + 38: uint16(53485), + 39: uint16(53487), + 40: uint16(53488), + 41: uint16(53489), + 42: uint16(53496), + 43: uint16(53517), + 44: uint16(53552), + 45: uint16(53553), + 46: uint16(53556), + 47: uint16(53560), + 48: uint16(53562), + 49: uint16(53568), + 50: uint16(53569), + 51: uint16(53571), + 52: uint16(53572), + 53: uint16(53573), + 54: uint16(53580), + 55: uint16(53581), + 56: uint16(53584), + 57: uint16(53588), + 58: uint16(53596), + 59: uint16(53597), + 60: uint16(53599), + 61: uint16(53601), + 62: uint16(53608), + 63: uint16(53612), + 64: uint16(53628), + 65: uint16(53636), + 66: uint16(53640), + 67: uint16(53664), + 68: uint16(53665), + 69: uint16(53668), + 70: uint16(53672), + 71: uint16(53680), + 72: uint16(53681), + 73: uint16(53683), + 74: uint16(53685), + 75: uint16(53690), + 76: uint16(53692), + 77: uint16(53696), + 78: uint16(53720), + 79: uint16(53748), + 80: uint16(53752), + 81: uint16(53767), + 82: uint16(53769), + 83: uint16(53776), + 84: uint16(53804), + 85: uint16(53805), + 86: uint16(53808), + 87: uint16(53812), + 88: uint16(53820), + 89: uint16(53821), + 90: uint16(53823), + 91: uint16(53825), + 92: uint16(53832), + 93: uint16(53852), + }, + 37: { + 0: uint16(53860), + 1: uint16(53888), + 2: uint16(53889), + 3: uint16(53892), + 4: uint16(53896), + 5: uint16(53904), + 6: uint16(53905), + 7: uint16(53909), + 8: uint16(53916), + 9: uint16(53920), + 10: uint16(53924), + 11: uint16(53932), + 12: uint16(53937), + 13: uint16(53944), + 14: uint16(53945), + 15: uint16(53948), + 16: uint16(53951), + 17: uint16(53952), + 18: uint16(53954), + 19: uint16(53960), + 20: uint16(53961), + 21: uint16(53963), + 22: uint16(53972), + 23: uint16(53976), + 24: uint16(53980), + 25: uint16(53988), + 26: uint16(53989), + 27: uint16(54000), + 28: uint16(54001), + 29: uint16(54004), + 30: uint16(54008), + 31: uint16(54016), + 32: uint16(54017), + 33: uint16(54019), + 34: uint16(54021), + 35: uint16(54028), + 36: uint16(54029), + 37: uint16(54030), + 38: uint16(54032), + 39: uint16(54036), + 40: uint16(54038), + 41: uint16(54044), + 42: uint16(54045), + 43: uint16(54047), + 44: uint16(54048), + 45: uint16(54049), + 46: uint16(54053), + 47: uint16(54056), + 48: uint16(54057), + 49: uint16(54060), + 50: uint16(54064), + 51: uint16(54072), + 52: uint16(54073), + 53: uint16(54075), + 54: uint16(54076), + 55: uint16(54077), + 56: uint16(54084), + 57: uint16(54085), + 58: uint16(54140), + 59: uint16(54141), + 60: uint16(54144), + 61: uint16(54148), + 62: uint16(54156), + 63: uint16(54157), + 64: uint16(54159), + 65: uint16(54160), + 66: uint16(54161), + 67: uint16(54168), + 68: uint16(54169), + 69: uint16(54172), + 70: uint16(54176), + 71: uint16(54184), + 72: uint16(54185), + 73: uint16(54187), + 74: uint16(54189), + 75: uint16(54196), + 76: uint16(54200), + 77: uint16(54204), + 78: uint16(54212), + 79: uint16(54213), + 80: uint16(54216), + 81: uint16(54217), + 82: uint16(54224), + 83: uint16(54232), + 84: uint16(54241), + 85: uint16(54243), + 86: uint16(54252), + 87: uint16(54253), + 88: uint16(54256), + 89: uint16(54260), + 90: uint16(54268), + 91: uint16(54269), + 92: uint16(54271), + 93: uint16(54273), + }, + 38: { + 0: uint16(54280), + 1: uint16(54301), + 2: uint16(54336), + 3: uint16(54340), + 4: uint16(54364), + 5: uint16(54368), + 6: uint16(54372), + 7: uint16(54381), + 8: uint16(54383), + 9: uint16(54392), + 10: uint16(54393), + 11: uint16(54396), + 12: uint16(54399), + 13: uint16(54400), + 14: uint16(54402), + 15: uint16(54408), + 16: uint16(54409), + 17: uint16(54411), + 18: uint16(54413), + 19: uint16(54420), + 20: uint16(54441), + 21: uint16(54476), + 22: uint16(54480), + 23: uint16(54484), + 24: uint16(54492), + 25: uint16(54495), + 26: uint16(54504), + 27: uint16(54508), + 28: uint16(54512), + 29: uint16(54520), + 30: uint16(54523), + 31: uint16(54525), + 32: uint16(54532), + 33: uint16(54536), + 34: uint16(54540), + 35: uint16(54548), + 36: uint16(54549), + 37: uint16(54551), + 38: uint16(54588), + 39: uint16(54589), + 40: uint16(54592), + 41: uint16(54596), + 42: uint16(54604), + 43: uint16(54605), + 44: uint16(54607), + 45: uint16(54609), + 46: uint16(54616), + 47: uint16(54617), + 48: uint16(54620), + 49: uint16(54624), + 50: uint16(54629), + 51: uint16(54632), + 52: uint16(54633), + 53: uint16(54635), + 54: uint16(54637), + 55: uint16(54644), + 56: uint16(54645), + 57: uint16(54648), + 58: uint16(54652), + 59: uint16(54660), + 60: uint16(54661), + 61: uint16(54663), + 62: uint16(54664), + 63: uint16(54665), + 64: uint16(54672), + 65: uint16(54693), + 66: uint16(54728), + 67: uint16(54729), + 68: uint16(54732), + 69: uint16(54736), + 70: uint16(54738), + 71: uint16(54744), + 72: uint16(54745), + 73: uint16(54747), + 74: uint16(54749), + 75: uint16(54756), + 76: uint16(54757), + 77: uint16(54760), + 78: uint16(54764), + 79: uint16(54772), + 80: uint16(54773), + 81: uint16(54775), + 82: uint16(54777), + 83: uint16(54784), + 84: uint16(54785), + 85: uint16(54788), + 86: uint16(54792), + 87: uint16(54800), + 88: uint16(54801), + 89: uint16(54803), + 90: uint16(54804), + 91: uint16(54805), + 92: uint16(54812), + 93: uint16(54816), + }, + 39: { + 0: uint16(54820), + 1: uint16(54829), + 2: uint16(54840), + 3: uint16(54841), + 4: uint16(54844), + 5: uint16(54848), + 6: uint16(54853), + 7: uint16(54856), + 8: uint16(54857), + 9: uint16(54859), + 10: uint16(54861), + 11: uint16(54865), + 12: uint16(54868), + 13: uint16(54869), + 14: uint16(54872), + 15: uint16(54876), + 16: uint16(54887), + 17: uint16(54889), + 18: uint16(54896), + 19: uint16(54897), + 20: uint16(54900), + 21: uint16(54915), + 22: uint16(54917), + 23: uint16(54924), + 24: uint16(54925), + 25: uint16(54928), + 26: uint16(54932), + 27: uint16(54941), + 28: uint16(54943), + 29: uint16(54945), + 30: uint16(54952), + 31: uint16(54956), + 32: uint16(54960), + 33: uint16(54969), + 34: uint16(54971), + 35: uint16(54980), + 36: uint16(54981), + 37: uint16(54984), + 38: uint16(54988), + 39: uint16(54993), + 40: uint16(54996), + 41: uint16(54999), + 42: uint16(55001), + 43: uint16(55008), + 44: uint16(55012), + 45: uint16(55016), + 46: uint16(55024), + 47: uint16(55029), + 48: uint16(55036), + 49: uint16(55037), + 50: uint16(55040), + 51: uint16(55044), + 52: uint16(55057), + 53: uint16(55064), + 54: uint16(55065), + 55: uint16(55068), + 56: uint16(55072), + 57: uint16(55080), + 58: uint16(55081), + 59: uint16(55083), + 60: uint16(55085), + 61: uint16(55092), + 62: uint16(55093), + 63: uint16(55096), + 64: uint16(55100), + 65: uint16(55108), + 66: uint16(55111), + 67: uint16(55113), + 68: uint16(55120), + 69: uint16(55121), + 70: uint16(55124), + 71: uint16(55126), + 72: uint16(55127), + 73: uint16(55128), + 74: uint16(55129), + 75: uint16(55136), + 76: uint16(55137), + 77: uint16(55139), + 78: uint16(55141), + 79: uint16(55145), + 80: uint16(55148), + 81: uint16(55152), + 82: uint16(55156), + 83: uint16(55164), + 84: uint16(55165), + 85: uint16(55169), + 86: uint16(55176), + 87: uint16(55177), + 88: uint16(55180), + 89: uint16(55184), + 90: uint16(55192), + 91: uint16(55193), + 92: uint16(55195), + 93: uint16(55197), + }, + 40: {}, + 41: { + 0: uint16(20285), + 1: uint16(20339), + 2: uint16(20551), + 3: uint16(20729), + 4: uint16(21152), + 5: uint16(21487), + 6: uint16(21621), + 7: uint16(21733), + 8: uint16(22025), + 9: uint16(23233), + 10: uint16(23478), + 11: uint16(26247), + 12: uint16(26550), + 13: uint16(26551), + 14: uint16(26607), + 15: uint16(27468), + 16: uint16(29634), + 17: uint16(30146), + 18: uint16(31292), + 19: uint16(33499), + 20: uint16(33540), + 21: uint16(34903), + 22: uint16(34952), + 23: uint16(35382), + 24: uint16(36040), + 25: uint16(36303), + 26: uint16(36603), + 27: uint16(36838), + 28: uint16(39381), + 29: uint16(21051), + 30: uint16(21364), + 31: uint16(21508), + 32: uint16(24682), + 33: uint16(24932), + 34: uint16(27580), + 35: uint16(29647), + 36: uint16(33050), + 37: uint16(35258), + 38: uint16(35282), + 39: uint16(38307), + 40: uint16(20355), + 41: uint16(21002), + 42: uint16(22718), + 43: uint16(22904), + 44: uint16(23014), + 45: uint16(24178), + 46: uint16(24185), + 47: uint16(25031), + 48: uint16(25536), + 49: uint16(26438), + 50: uint16(26604), + 51: uint16(26751), + 52: uint16(28567), + 53: uint16(30286), + 54: uint16(30475), + 55: uint16(30965), + 56: uint16(31240), + 57: uint16(31487), + 58: uint16(31777), + 59: uint16(32925), + 60: uint16(33390), + 61: uint16(33393), + 62: uint16(35563), + 63: uint16(38291), + 64: uint16(20075), + 65: uint16(21917), + 66: uint16(26359), + 67: uint16(28212), + 68: uint16(30883), + 69: uint16(31469), + 70: uint16(33883), + 71: uint16(35088), + 72: uint16(34638), + 73: uint16(38824), + 74: uint16(21208), + 75: uint16(22350), + 76: uint16(22570), + 77: uint16(23884), + 78: uint16(24863), + 79: uint16(25022), + 80: uint16(25121), + 81: uint16(25954), + 82: uint16(26577), + 83: uint16(27204), + 84: uint16(28187), + 85: uint16(29976), + 86: uint16(30131), + 87: uint16(30435), + 88: uint16(30640), + 89: uint16(32058), + 90: uint16(37039), + 91: uint16(37969), + 92: uint16(37970), + 93: uint16(40853), + }, + 42: { + 0: uint16(21283), + 1: uint16(23724), + 2: uint16(30002), + 3: uint16(32987), + 4: uint16(37440), + 5: uint16(38296), + 6: uint16(21083), + 7: uint16(22536), + 8: uint16(23004), + 9: uint16(23713), + 10: uint16(23831), + 11: uint16(24247), + 12: uint16(24378), + 13: uint16(24394), + 14: uint16(24951), + 15: uint16(27743), + 16: uint16(30074), + 17: uint16(30086), + 18: uint16(31968), + 19: uint16(32115), + 20: uint16(32177), + 21: uint16(32652), + 22: uint16(33108), + 23: uint16(33313), + 24: uint16(34193), + 25: uint16(35137), + 26: uint16(35611), + 27: uint16(37628), + 28: uint16(38477), + 29: uint16(40007), + 30: uint16(20171), + 31: uint16(20215), + 32: uint16(20491), + 33: uint16(20977), + 34: uint16(22607), + 35: uint16(24887), + 36: uint16(24894), + 37: uint16(24936), + 38: uint16(25913), + 39: uint16(27114), + 40: uint16(28433), + 41: uint16(30117), + 42: uint16(30342), + 43: uint16(30422), + 44: uint16(31623), + 45: uint16(33445), + 46: uint16(33995), + 47: uint16(63744), + 48: uint16(37799), + 49: uint16(38283), + 50: uint16(21888), + 51: uint16(23458), + 52: uint16(22353), + 53: uint16(63745), + 54: uint16(31923), + 55: uint16(32697), + 56: uint16(37301), + 57: uint16(20520), + 58: uint16(21435), + 59: uint16(23621), + 60: uint16(24040), + 61: uint16(25298), + 62: uint16(25454), + 63: uint16(25818), + 64: uint16(25831), + 65: uint16(28192), + 66: uint16(28844), + 67: uint16(31067), + 68: uint16(36317), + 69: uint16(36382), + 70: uint16(63746), + 71: uint16(36989), + 72: uint16(37445), + 73: uint16(37624), + 74: uint16(20094), + 75: uint16(20214), + 76: uint16(20581), + 77: uint16(24062), + 78: uint16(24314), + 79: uint16(24838), + 80: uint16(26967), + 81: uint16(33137), + 82: uint16(34388), + 83: uint16(36423), + 84: uint16(37749), + 85: uint16(39467), + 86: uint16(20062), + 87: uint16(20625), + 88: uint16(26480), + 89: uint16(26688), + 90: uint16(20745), + 91: uint16(21133), + 92: uint16(21138), + 93: uint16(27298), + }, + 43: { + 0: uint16(30652), + 1: uint16(37392), + 2: uint16(40660), + 3: uint16(21163), + 4: uint16(24623), + 5: uint16(36850), + 6: uint16(20552), + 7: uint16(25001), + 8: uint16(25581), + 9: uint16(25802), + 10: uint16(26684), + 11: uint16(27268), + 12: uint16(28608), + 13: uint16(33160), + 14: uint16(35233), + 15: uint16(38548), + 16: uint16(22533), + 17: uint16(29309), + 18: uint16(29356), + 19: uint16(29956), + 20: uint16(32121), + 21: uint16(32365), + 22: uint16(32937), + 23: uint16(35211), + 24: uint16(35700), + 25: uint16(36963), + 26: uint16(40273), + 27: uint16(25225), + 28: uint16(27770), + 29: uint16(28500), + 30: uint16(32080), + 31: uint16(32570), + 32: uint16(35363), + 33: uint16(20860), + 34: uint16(24906), + 35: uint16(31645), + 36: uint16(35609), + 37: uint16(37463), + 38: uint16(37772), + 39: uint16(20140), + 40: uint16(20435), + 41: uint16(20510), + 42: uint16(20670), + 43: uint16(20742), + 44: uint16(21185), + 45: uint16(21197), + 46: uint16(21375), + 47: uint16(22384), + 48: uint16(22659), + 49: uint16(24218), + 50: uint16(24465), + 51: uint16(24950), + 52: uint16(25004), + 53: uint16(25806), + 54: uint16(25964), + 55: uint16(26223), + 56: uint16(26299), + 57: uint16(26356), + 58: uint16(26775), + 59: uint16(28039), + 60: uint16(28805), + 61: uint16(28913), + 62: uint16(29855), + 63: uint16(29861), + 64: uint16(29898), + 65: uint16(30169), + 66: uint16(30828), + 67: uint16(30956), + 68: uint16(31455), + 69: uint16(31478), + 70: uint16(32069), + 71: uint16(32147), + 72: uint16(32789), + 73: uint16(32831), + 74: uint16(33051), + 75: uint16(33686), + 76: uint16(35686), + 77: uint16(36629), + 78: uint16(36885), + 79: uint16(37857), + 80: uint16(38915), + 81: uint16(38968), + 82: uint16(39514), + 83: uint16(39912), + 84: uint16(20418), + 85: uint16(21843), + 86: uint16(22586), + 87: uint16(22865), + 88: uint16(23395), + 89: uint16(23622), + 90: uint16(24760), + 91: uint16(25106), + 92: uint16(26690), + 93: uint16(26800), + }, + 44: { + 0: uint16(26856), + 1: uint16(28330), + 2: uint16(30028), + 3: uint16(30328), + 4: uint16(30926), + 5: uint16(31293), + 6: uint16(31995), + 7: uint16(32363), + 8: uint16(32380), + 9: uint16(35336), + 10: uint16(35489), + 11: uint16(35903), + 12: uint16(38542), + 13: uint16(40388), + 14: uint16(21476), + 15: uint16(21481), + 16: uint16(21578), + 17: uint16(21617), + 18: uint16(22266), + 19: uint16(22993), + 20: uint16(23396), + 21: uint16(23611), + 22: uint16(24235), + 23: uint16(25335), + 24: uint16(25911), + 25: uint16(25925), + 26: uint16(25970), + 27: uint16(26272), + 28: uint16(26543), + 29: uint16(27073), + 30: uint16(27837), + 31: uint16(30204), + 32: uint16(30352), + 33: uint16(30590), + 34: uint16(31295), + 35: uint16(32660), + 36: uint16(32771), + 37: uint16(32929), + 38: uint16(33167), + 39: uint16(33510), + 40: uint16(33533), + 41: uint16(33776), + 42: uint16(34241), + 43: uint16(34865), + 44: uint16(34996), + 45: uint16(35493), + 46: uint16(63747), + 47: uint16(36764), + 48: uint16(37678), + 49: uint16(38599), + 50: uint16(39015), + 51: uint16(39640), + 52: uint16(40723), + 53: uint16(21741), + 54: uint16(26011), + 55: uint16(26354), + 56: uint16(26767), + 57: uint16(31296), + 58: uint16(35895), + 59: uint16(40288), + 60: uint16(22256), + 61: uint16(22372), + 62: uint16(23825), + 63: uint16(26118), + 64: uint16(26801), + 65: uint16(26829), + 66: uint16(28414), + 67: uint16(29736), + 68: uint16(34974), + 69: uint16(39908), + 70: uint16(27752), + 71: uint16(63748), + 72: uint16(39592), + 73: uint16(20379), + 74: uint16(20844), + 75: uint16(20849), + 76: uint16(21151), + 77: uint16(23380), + 78: uint16(24037), + 79: uint16(24656), + 80: uint16(24685), + 81: uint16(25329), + 82: uint16(25511), + 83: uint16(25915), + 84: uint16(29657), + 85: uint16(31354), + 86: uint16(34467), + 87: uint16(36002), + 88: uint16(38799), + 89: uint16(20018), + 90: uint16(23521), + 91: uint16(25096), + 92: uint16(26524), + 93: uint16(29916), + }, + 45: { + 0: uint16(31185), + 1: uint16(33747), + 2: uint16(35463), + 3: uint16(35506), + 4: uint16(36328), + 5: uint16(36942), + 6: uint16(37707), + 7: uint16(38982), + 8: uint16(24275), + 9: uint16(27112), + 10: uint16(34303), + 11: uint16(37101), + 12: uint16(63749), + 13: uint16(20896), + 14: uint16(23448), + 15: uint16(23532), + 16: uint16(24931), + 17: uint16(26874), + 18: uint16(27454), + 19: uint16(28748), + 20: uint16(29743), + 21: uint16(29912), + 22: uint16(31649), + 23: uint16(32592), + 24: uint16(33733), + 25: uint16(35264), + 26: uint16(36011), + 27: uint16(38364), + 28: uint16(39208), + 29: uint16(21038), + 30: uint16(24669), + 31: uint16(25324), + 32: uint16(36866), + 33: uint16(20362), + 34: uint16(20809), + 35: uint16(21281), + 36: uint16(22745), + 37: uint16(24291), + 38: uint16(26336), + 39: uint16(27960), + 40: uint16(28826), + 41: uint16(29378), + 42: uint16(29654), + 43: uint16(31568), + 44: uint16(33009), + 45: uint16(37979), + 46: uint16(21350), + 47: uint16(25499), + 48: uint16(32619), + 49: uint16(20054), + 50: uint16(20608), + 51: uint16(22602), + 52: uint16(22750), + 53: uint16(24618), + 54: uint16(24871), + 55: uint16(25296), + 56: uint16(27088), + 57: uint16(39745), + 58: uint16(23439), + 59: uint16(32024), + 60: uint16(32945), + 61: uint16(36703), + 62: uint16(20132), + 63: uint16(20689), + 64: uint16(21676), + 65: uint16(21932), + 66: uint16(23308), + 67: uint16(23968), + 68: uint16(24039), + 69: uint16(25898), + 70: uint16(25934), + 71: uint16(26657), + 72: uint16(27211), + 73: uint16(29409), + 74: uint16(30350), + 75: uint16(30703), + 76: uint16(32094), + 77: uint16(32761), + 78: uint16(33184), + 79: uint16(34126), + 80: uint16(34527), + 81: uint16(36611), + 82: uint16(36686), + 83: uint16(37066), + 84: uint16(39171), + 85: uint16(39509), + 86: uint16(39851), + 87: uint16(19992), + 88: uint16(20037), + 89: uint16(20061), + 90: uint16(20167), + 91: uint16(20465), + 92: uint16(20855), + 93: uint16(21246), + }, + 46: { + 0: uint16(21312), + 1: uint16(21475), + 2: uint16(21477), + 3: uint16(21646), + 4: uint16(22036), + 5: uint16(22389), + 6: uint16(22434), + 7: uint16(23495), + 8: uint16(23943), + 9: uint16(24272), + 10: uint16(25084), + 11: uint16(25304), + 12: uint16(25937), + 13: uint16(26552), + 14: uint16(26601), + 15: uint16(27083), + 16: uint16(27472), + 17: uint16(27590), + 18: uint16(27628), + 19: uint16(27714), + 20: uint16(28317), + 21: uint16(28792), + 22: uint16(29399), + 23: uint16(29590), + 24: uint16(29699), + 25: uint16(30655), + 26: uint16(30697), + 27: uint16(31350), + 28: uint16(32127), + 29: uint16(32777), + 30: uint16(33276), + 31: uint16(33285), + 32: uint16(33290), + 33: uint16(33503), + 34: uint16(34914), + 35: uint16(35635), + 36: uint16(36092), + 37: uint16(36544), + 38: uint16(36881), + 39: uint16(37041), + 40: uint16(37476), + 41: uint16(37558), + 42: uint16(39378), + 43: uint16(39493), + 44: uint16(40169), + 45: uint16(40407), + 46: uint16(40860), + 47: uint16(22283), + 48: uint16(23616), + 49: uint16(33738), + 50: uint16(38816), + 51: uint16(38827), + 52: uint16(40628), + 53: uint16(21531), + 54: uint16(31384), + 55: uint16(32676), + 56: uint16(35033), + 57: uint16(36557), + 58: uint16(37089), + 59: uint16(22528), + 60: uint16(23624), + 61: uint16(25496), + 62: uint16(31391), + 63: uint16(23470), + 64: uint16(24339), + 65: uint16(31353), + 66: uint16(31406), + 67: uint16(33422), + 68: uint16(36524), + 69: uint16(20518), + 70: uint16(21048), + 71: uint16(21240), + 72: uint16(21367), + 73: uint16(22280), + 74: uint16(25331), + 75: uint16(25458), + 76: uint16(27402), + 77: uint16(28099), + 78: uint16(30519), + 79: uint16(21413), + 80: uint16(29527), + 81: uint16(34152), + 82: uint16(36470), + 83: uint16(38357), + 84: uint16(26426), + 85: uint16(27331), + 86: uint16(28528), + 87: uint16(35437), + 88: uint16(36556), + 89: uint16(39243), + 90: uint16(63750), + 91: uint16(26231), + 92: uint16(27512), + 93: uint16(36020), + }, + 47: { + 0: uint16(39740), + 1: uint16(63751), + 2: uint16(21483), + 3: uint16(22317), + 4: uint16(22862), + 5: uint16(25542), + 6: uint16(27131), + 7: uint16(29674), + 8: uint16(30789), + 9: uint16(31418), + 10: uint16(31429), + 11: uint16(31998), + 12: uint16(33909), + 13: uint16(35215), + 14: uint16(36211), + 15: uint16(36917), + 16: uint16(38312), + 17: uint16(21243), + 18: uint16(22343), + 19: uint16(30023), + 20: uint16(31584), + 21: uint16(33740), + 22: uint16(37406), + 23: uint16(63752), + 24: uint16(27224), + 25: uint16(20811), + 26: uint16(21067), + 27: uint16(21127), + 28: uint16(25119), + 29: uint16(26840), + 30: uint16(26997), + 31: uint16(38553), + 32: uint16(20677), + 33: uint16(21156), + 34: uint16(21220), + 35: uint16(25027), + 36: uint16(26020), + 37: uint16(26681), + 38: uint16(27135), + 39: uint16(29822), + 40: uint16(31563), + 41: uint16(33465), + 42: uint16(33771), + 43: uint16(35250), + 44: uint16(35641), + 45: uint16(36817), + 46: uint16(39241), + 47: uint16(63753), + 48: uint16(20170), + 49: uint16(22935), + 50: uint16(25810), + 51: uint16(26129), + 52: uint16(27278), + 53: uint16(29748), + 54: uint16(31105), + 55: uint16(31165), + 56: uint16(33449), + 57: uint16(34942), + 58: uint16(34943), + 59: uint16(35167), + 60: uint16(63754), + 61: uint16(37670), + 62: uint16(20235), + 63: uint16(21450), + 64: uint16(24613), + 65: uint16(25201), + 66: uint16(27762), + 67: uint16(32026), + 68: uint16(32102), + 69: uint16(20120), + 70: uint16(20834), + 71: uint16(30684), + 72: uint16(32943), + 73: uint16(20225), + 74: uint16(20238), + 75: uint16(20854), + 76: uint16(20864), + 77: uint16(21980), + 78: uint16(22120), + 79: uint16(22331), + 80: uint16(22522), + 81: uint16(22524), + 82: uint16(22804), + 83: uint16(22855), + 84: uint16(22931), + 85: uint16(23492), + 86: uint16(23696), + 87: uint16(23822), + 88: uint16(24049), + 89: uint16(24190), + 90: uint16(24524), + 91: uint16(25216), + 92: uint16(26071), + 93: uint16(26083), + }, + 48: { + 0: uint16(26398), + 1: uint16(26399), + 2: uint16(26462), + 3: uint16(26827), + 4: uint16(26820), + 5: uint16(27231), + 6: uint16(27450), + 7: uint16(27683), + 8: uint16(27773), + 9: uint16(27778), + 10: uint16(28103), + 11: uint16(29592), + 12: uint16(29734), + 13: uint16(29738), + 14: uint16(29826), + 15: uint16(29859), + 16: uint16(30072), + 17: uint16(30079), + 18: uint16(30849), + 19: uint16(30959), + 20: uint16(31041), + 21: uint16(31047), + 22: uint16(31048), + 23: uint16(31098), + 24: uint16(31637), + 25: uint16(32000), + 26: uint16(32186), + 27: uint16(32648), + 28: uint16(32774), + 29: uint16(32813), + 30: uint16(32908), + 31: uint16(35352), + 32: uint16(35663), + 33: uint16(35912), + 34: uint16(36215), + 35: uint16(37665), + 36: uint16(37668), + 37: uint16(39138), + 38: uint16(39249), + 39: uint16(39438), + 40: uint16(39439), + 41: uint16(39525), + 42: uint16(40594), + 43: uint16(32202), + 44: uint16(20342), + 45: uint16(21513), + 46: uint16(25326), + 47: uint16(26708), + 48: uint16(37329), + 49: uint16(21931), + 50: uint16(20794), + 51: uint16(63755), + 52: uint16(63756), + 53: uint16(23068), + 54: uint16(25062), + 55: uint16(63757), + 56: uint16(25295), + 57: uint16(25343), + 58: uint16(63758), + 59: uint16(63759), + 60: uint16(63760), + 61: uint16(63761), + 62: uint16(63762), + 63: uint16(63763), + 64: uint16(37027), + 65: uint16(63764), + 66: uint16(63765), + 67: uint16(63766), + 68: uint16(63767), + 69: uint16(63768), + 70: uint16(35582), + 71: uint16(63769), + 72: uint16(63770), + 73: uint16(63771), + 74: uint16(63772), + 75: uint16(26262), + 76: uint16(63773), + 77: uint16(29014), + 78: uint16(63774), + 79: uint16(63775), + 80: uint16(38627), + 81: uint16(63776), + 82: uint16(25423), + 83: uint16(25466), + 84: uint16(21335), + 85: uint16(63777), + 86: uint16(26511), + 87: uint16(26976), + 88: uint16(28275), + 89: uint16(63778), + 90: uint16(30007), + 91: uint16(63779), + 92: uint16(63780), + 93: uint16(63781), + }, + 49: { + 0: uint16(32013), + 1: uint16(63782), + 2: uint16(63783), + 3: uint16(34930), + 4: uint16(22218), + 5: uint16(23064), + 6: uint16(63784), + 7: uint16(63785), + 8: uint16(63786), + 9: uint16(63787), + 10: uint16(63788), + 11: uint16(20035), + 12: uint16(63789), + 13: uint16(20839), + 14: uint16(22856), + 15: uint16(26608), + 16: uint16(32784), + 17: uint16(63790), + 18: uint16(22899), + 19: uint16(24180), + 20: uint16(25754), + 21: uint16(31178), + 22: uint16(24565), + 23: uint16(24684), + 24: uint16(25288), + 25: uint16(25467), + 26: uint16(23527), + 27: uint16(23511), + 28: uint16(21162), + 29: uint16(63791), + 30: uint16(22900), + 31: uint16(24361), + 32: uint16(24594), + 33: uint16(63792), + 34: uint16(63793), + 35: uint16(63794), + 36: uint16(29785), + 37: uint16(63795), + 38: uint16(63796), + 39: uint16(63797), + 40: uint16(63798), + 41: uint16(63799), + 42: uint16(63800), + 43: uint16(39377), + 44: uint16(63801), + 45: uint16(63802), + 46: uint16(63803), + 47: uint16(63804), + 48: uint16(63805), + 49: uint16(63806), + 50: uint16(63807), + 51: uint16(63808), + 52: uint16(63809), + 53: uint16(63810), + 54: uint16(63811), + 55: uint16(28611), + 56: uint16(63812), + 57: uint16(63813), + 58: uint16(33215), + 59: uint16(36786), + 60: uint16(24817), + 61: uint16(63814), + 62: uint16(63815), + 63: uint16(33126), + 64: uint16(63816), + 65: uint16(63817), + 66: uint16(23615), + 67: uint16(63818), + 68: uint16(63819), + 69: uint16(63820), + 70: uint16(63821), + 71: uint16(63822), + 72: uint16(63823), + 73: uint16(63824), + 74: uint16(63825), + 75: uint16(23273), + 76: uint16(35365), + 77: uint16(26491), + 78: uint16(32016), + 79: uint16(63826), + 80: uint16(63827), + 81: uint16(63828), + 82: uint16(63829), + 83: uint16(63830), + 84: uint16(63831), + 85: uint16(33021), + 86: uint16(63832), + 87: uint16(63833), + 88: uint16(23612), + 89: uint16(27877), + 90: uint16(21311), + 91: uint16(28346), + 92: uint16(22810), + 93: uint16(33590), + }, + 50: { + 0: uint16(20025), + 1: uint16(20150), + 2: uint16(20294), + 3: uint16(21934), + 4: uint16(22296), + 5: uint16(22727), + 6: uint16(24406), + 7: uint16(26039), + 8: uint16(26086), + 9: uint16(27264), + 10: uint16(27573), + 11: uint16(28237), + 12: uint16(30701), + 13: uint16(31471), + 14: uint16(31774), + 15: uint16(32222), + 16: uint16(34507), + 17: uint16(34962), + 18: uint16(37170), + 19: uint16(37723), + 20: uint16(25787), + 21: uint16(28606), + 22: uint16(29562), + 23: uint16(30136), + 24: uint16(36948), + 25: uint16(21846), + 26: uint16(22349), + 27: uint16(25018), + 28: uint16(25812), + 29: uint16(26311), + 30: uint16(28129), + 31: uint16(28251), + 32: uint16(28525), + 33: uint16(28601), + 34: uint16(30192), + 35: uint16(32835), + 36: uint16(33213), + 37: uint16(34113), + 38: uint16(35203), + 39: uint16(35527), + 40: uint16(35674), + 41: uint16(37663), + 42: uint16(27795), + 43: uint16(30035), + 44: uint16(31572), + 45: uint16(36367), + 46: uint16(36957), + 47: uint16(21776), + 48: uint16(22530), + 49: uint16(22616), + 50: uint16(24162), + 51: uint16(25095), + 52: uint16(25758), + 53: uint16(26848), + 54: uint16(30070), + 55: uint16(31958), + 56: uint16(34739), + 57: uint16(40680), + 58: uint16(20195), + 59: uint16(22408), + 60: uint16(22382), + 61: uint16(22823), + 62: uint16(23565), + 63: uint16(23729), + 64: uint16(24118), + 65: uint16(24453), + 66: uint16(25140), + 67: uint16(25825), + 68: uint16(29619), + 69: uint16(33274), + 70: uint16(34955), + 71: uint16(36024), + 72: uint16(38538), + 73: uint16(40667), + 74: uint16(23429), + 75: uint16(24503), + 76: uint16(24755), + 77: uint16(20498), + 78: uint16(20992), + 79: uint16(21040), + 80: uint16(22294), + 81: uint16(22581), + 82: uint16(22615), + 83: uint16(23566), + 84: uint16(23648), + 85: uint16(23798), + 86: uint16(23947), + 87: uint16(24230), + 88: uint16(24466), + 89: uint16(24764), + 90: uint16(25361), + 91: uint16(25481), + 92: uint16(25623), + 93: uint16(26691), + }, + 51: { + 0: uint16(26873), + 1: uint16(27330), + 2: uint16(28120), + 3: uint16(28193), + 4: uint16(28372), + 5: uint16(28644), + 6: uint16(29182), + 7: uint16(30428), + 8: uint16(30585), + 9: uint16(31153), + 10: uint16(31291), + 11: uint16(33796), + 12: uint16(35241), + 13: uint16(36077), + 14: uint16(36339), + 15: uint16(36424), + 16: uint16(36867), + 17: uint16(36884), + 18: uint16(36947), + 19: uint16(37117), + 20: uint16(37709), + 21: uint16(38518), + 22: uint16(38876), + 23: uint16(27602), + 24: uint16(28678), + 25: uint16(29272), + 26: uint16(29346), + 27: uint16(29544), + 28: uint16(30563), + 29: uint16(31167), + 30: uint16(31716), + 31: uint16(32411), + 32: uint16(35712), + 33: uint16(22697), + 34: uint16(24775), + 35: uint16(25958), + 36: uint16(26109), + 37: uint16(26302), + 38: uint16(27788), + 39: uint16(28958), + 40: uint16(29129), + 41: uint16(35930), + 42: uint16(38931), + 43: uint16(20077), + 44: uint16(31361), + 45: uint16(20189), + 46: uint16(20908), + 47: uint16(20941), + 48: uint16(21205), + 49: uint16(21516), + 50: uint16(24999), + 51: uint16(26481), + 52: uint16(26704), + 53: uint16(26847), + 54: uint16(27934), + 55: uint16(28540), + 56: uint16(30140), + 57: uint16(30643), + 58: uint16(31461), + 59: uint16(33012), + 60: uint16(33891), + 61: uint16(37509), + 62: uint16(20828), + 63: uint16(26007), + 64: uint16(26460), + 65: uint16(26515), + 66: uint16(30168), + 67: uint16(31431), + 68: uint16(33651), + 69: uint16(63834), + 70: uint16(35910), + 71: uint16(36887), + 72: uint16(38957), + 73: uint16(23663), + 74: uint16(33216), + 75: uint16(33434), + 76: uint16(36929), + 77: uint16(36975), + 78: uint16(37389), + 79: uint16(24471), + 80: uint16(23965), + 81: uint16(27225), + 82: uint16(29128), + 83: uint16(30331), + 84: uint16(31561), + 85: uint16(34276), + 86: uint16(35588), + 87: uint16(37159), + 88: uint16(39472), + 89: uint16(21895), + 90: uint16(25078), + 91: uint16(63835), + 92: uint16(30313), + 93: uint16(32645), + }, + 52: { + 0: uint16(34367), + 1: uint16(34746), + 2: uint16(35064), + 3: uint16(37007), + 4: uint16(63836), + 5: uint16(27931), + 6: uint16(28889), + 7: uint16(29662), + 8: uint16(32097), + 9: uint16(33853), + 10: uint16(63837), + 11: uint16(37226), + 12: uint16(39409), + 13: uint16(63838), + 14: uint16(20098), + 15: uint16(21365), + 16: uint16(27396), + 17: uint16(27410), + 18: uint16(28734), + 19: uint16(29211), + 20: uint16(34349), + 21: uint16(40478), + 22: uint16(21068), + 23: uint16(36771), + 24: uint16(23888), + 25: uint16(25829), + 26: uint16(25900), + 27: uint16(27414), + 28: uint16(28651), + 29: uint16(31811), + 30: uint16(32412), + 31: uint16(34253), + 32: uint16(35172), + 33: uint16(35261), + 34: uint16(25289), + 35: uint16(33240), + 36: uint16(34847), + 37: uint16(24266), + 38: uint16(26391), + 39: uint16(28010), + 40: uint16(29436), + 41: uint16(29701), + 42: uint16(29807), + 43: uint16(34690), + 44: uint16(37086), + 45: uint16(20358), + 46: uint16(23821), + 47: uint16(24480), + 48: uint16(33802), + 49: uint16(20919), + 50: uint16(25504), + 51: uint16(30053), + 52: uint16(20142), + 53: uint16(20486), + 54: uint16(20841), + 55: uint16(20937), + 56: uint16(26753), + 57: uint16(27153), + 58: uint16(31918), + 59: uint16(31921), + 60: uint16(31975), + 61: uint16(33391), + 62: uint16(35538), + 63: uint16(36635), + 64: uint16(37327), + 65: uint16(20406), + 66: uint16(20791), + 67: uint16(21237), + 68: uint16(21570), + 69: uint16(24300), + 70: uint16(24942), + 71: uint16(25150), + 72: uint16(26053), + 73: uint16(27354), + 74: uint16(28670), + 75: uint16(31018), + 76: uint16(34268), + 77: uint16(34851), + 78: uint16(38317), + 79: uint16(39522), + 80: uint16(39530), + 81: uint16(40599), + 82: uint16(40654), + 83: uint16(21147), + 84: uint16(26310), + 85: uint16(27511), + 86: uint16(28701), + 87: uint16(31019), + 88: uint16(36706), + 89: uint16(38722), + 90: uint16(24976), + 91: uint16(25088), + 92: uint16(25891), + 93: uint16(28451), + }, + 53: { + 0: uint16(29001), + 1: uint16(29833), + 2: uint16(32244), + 3: uint16(32879), + 4: uint16(34030), + 5: uint16(36646), + 6: uint16(36899), + 7: uint16(37706), + 8: uint16(20925), + 9: uint16(21015), + 10: uint16(21155), + 11: uint16(27916), + 12: uint16(28872), + 13: uint16(35010), + 14: uint16(24265), + 15: uint16(25986), + 16: uint16(27566), + 17: uint16(28610), + 18: uint16(31806), + 19: uint16(29557), + 20: uint16(20196), + 21: uint16(20278), + 22: uint16(22265), + 23: uint16(63839), + 24: uint16(23738), + 25: uint16(23994), + 26: uint16(24604), + 27: uint16(29618), + 28: uint16(31533), + 29: uint16(32666), + 30: uint16(32718), + 31: uint16(32838), + 32: uint16(36894), + 33: uint16(37428), + 34: uint16(38646), + 35: uint16(38728), + 36: uint16(38936), + 37: uint16(40801), + 38: uint16(20363), + 39: uint16(28583), + 40: uint16(31150), + 41: uint16(37300), + 42: uint16(38583), + 43: uint16(21214), + 44: uint16(63840), + 45: uint16(25736), + 46: uint16(25796), + 47: uint16(27347), + 48: uint16(28510), + 49: uint16(28696), + 50: uint16(29200), + 51: uint16(30439), + 52: uint16(32769), + 53: uint16(34310), + 54: uint16(34396), + 55: uint16(36335), + 56: uint16(36613), + 57: uint16(38706), + 58: uint16(39791), + 59: uint16(40442), + 60: uint16(40565), + 61: uint16(30860), + 62: uint16(31103), + 63: uint16(32160), + 64: uint16(33737), + 65: uint16(37636), + 66: uint16(40575), + 67: uint16(40595), + 68: uint16(35542), + 69: uint16(22751), + 70: uint16(24324), + 71: uint16(26407), + 72: uint16(28711), + 73: uint16(29903), + 74: uint16(31840), + 75: uint16(32894), + 76: uint16(20769), + 77: uint16(28712), + 78: uint16(29282), + 79: uint16(30922), + 80: uint16(36034), + 81: uint16(36058), + 82: uint16(36084), + 83: uint16(38647), + 84: uint16(20102), + 85: uint16(20698), + 86: uint16(23534), + 87: uint16(24278), + 88: uint16(26009), + 89: uint16(29134), + 90: uint16(30274), + 91: uint16(30637), + 92: uint16(32842), + 93: uint16(34044), + }, + 54: { + 0: uint16(36988), + 1: uint16(39719), + 2: uint16(40845), + 3: uint16(22744), + 4: uint16(23105), + 5: uint16(23650), + 6: uint16(27155), + 7: uint16(28122), + 8: uint16(28431), + 9: uint16(30267), + 10: uint16(32047), + 11: uint16(32311), + 12: uint16(34078), + 13: uint16(35128), + 14: uint16(37860), + 15: uint16(38475), + 16: uint16(21129), + 17: uint16(26066), + 18: uint16(26611), + 19: uint16(27060), + 20: uint16(27969), + 21: uint16(28316), + 22: uint16(28687), + 23: uint16(29705), + 24: uint16(29792), + 25: uint16(30041), + 26: uint16(30244), + 27: uint16(30827), + 28: uint16(35628), + 29: uint16(39006), + 30: uint16(20845), + 31: uint16(25134), + 32: uint16(38520), + 33: uint16(20374), + 34: uint16(20523), + 35: uint16(23833), + 36: uint16(28138), + 37: uint16(32184), + 38: uint16(36650), + 39: uint16(24459), + 40: uint16(24900), + 41: uint16(26647), + 42: uint16(63841), + 43: uint16(38534), + 44: uint16(21202), + 45: uint16(32907), + 46: uint16(20956), + 47: uint16(20940), + 48: uint16(26974), + 49: uint16(31260), + 50: uint16(32190), + 51: uint16(33777), + 52: uint16(38517), + 53: uint16(20442), + 54: uint16(21033), + 55: uint16(21400), + 56: uint16(21519), + 57: uint16(21774), + 58: uint16(23653), + 59: uint16(24743), + 60: uint16(26446), + 61: uint16(26792), + 62: uint16(28012), + 63: uint16(29313), + 64: uint16(29432), + 65: uint16(29702), + 66: uint16(29827), + 67: uint16(63842), + 68: uint16(30178), + 69: uint16(31852), + 70: uint16(32633), + 71: uint16(32696), + 72: uint16(33673), + 73: uint16(35023), + 74: uint16(35041), + 75: uint16(37324), + 76: uint16(37328), + 77: uint16(38626), + 78: uint16(39881), + 79: uint16(21533), + 80: uint16(28542), + 81: uint16(29136), + 82: uint16(29848), + 83: uint16(34298), + 84: uint16(36522), + 85: uint16(38563), + 86: uint16(40023), + 87: uint16(40607), + 88: uint16(26519), + 89: uint16(28107), + 90: uint16(29747), + 91: uint16(33256), + 92: uint16(38678), + 93: uint16(30764), + }, + 55: { + 0: uint16(31435), + 1: uint16(31520), + 2: uint16(31890), + 3: uint16(25705), + 4: uint16(29802), + 5: uint16(30194), + 6: uint16(30908), + 7: uint16(30952), + 8: uint16(39340), + 9: uint16(39764), + 10: uint16(40635), + 11: uint16(23518), + 12: uint16(24149), + 13: uint16(28448), + 14: uint16(33180), + 15: uint16(33707), + 16: uint16(37000), + 17: uint16(19975), + 18: uint16(21325), + 19: uint16(23081), + 20: uint16(24018), + 21: uint16(24398), + 22: uint16(24930), + 23: uint16(25405), + 24: uint16(26217), + 25: uint16(26364), + 26: uint16(28415), + 27: uint16(28459), + 28: uint16(28771), + 29: uint16(30622), + 30: uint16(33836), + 31: uint16(34067), + 32: uint16(34875), + 33: uint16(36627), + 34: uint16(39237), + 35: uint16(39995), + 36: uint16(21788), + 37: uint16(25273), + 38: uint16(26411), + 39: uint16(27819), + 40: uint16(33545), + 41: uint16(35178), + 42: uint16(38778), + 43: uint16(20129), + 44: uint16(22916), + 45: uint16(24536), + 46: uint16(24537), + 47: uint16(26395), + 48: uint16(32178), + 49: uint16(32596), + 50: uint16(33426), + 51: uint16(33579), + 52: uint16(33725), + 53: uint16(36638), + 54: uint16(37017), + 55: uint16(22475), + 56: uint16(22969), + 57: uint16(23186), + 58: uint16(23504), + 59: uint16(26151), + 60: uint16(26522), + 61: uint16(26757), + 62: uint16(27599), + 63: uint16(29028), + 64: uint16(32629), + 65: uint16(36023), + 66: uint16(36067), + 67: uint16(36993), + 68: uint16(39749), + 69: uint16(33032), + 70: uint16(35978), + 71: uint16(38476), + 72: uint16(39488), + 73: uint16(40613), + 74: uint16(23391), + 75: uint16(27667), + 76: uint16(29467), + 77: uint16(30450), + 78: uint16(30431), + 79: uint16(33804), + 80: uint16(20906), + 81: uint16(35219), + 82: uint16(20813), + 83: uint16(20885), + 84: uint16(21193), + 85: uint16(26825), + 86: uint16(27796), + 87: uint16(30468), + 88: uint16(30496), + 89: uint16(32191), + 90: uint16(32236), + 91: uint16(38754), + 92: uint16(40629), + 93: uint16(28357), + }, + 56: { + 0: uint16(34065), + 1: uint16(20901), + 2: uint16(21517), + 3: uint16(21629), + 4: uint16(26126), + 5: uint16(26269), + 6: uint16(26919), + 7: uint16(28319), + 8: uint16(30399), + 9: uint16(30609), + 10: uint16(33559), + 11: uint16(33986), + 12: uint16(34719), + 13: uint16(37225), + 14: uint16(37528), + 15: uint16(40180), + 16: uint16(34946), + 17: uint16(20398), + 18: uint16(20882), + 19: uint16(21215), + 20: uint16(22982), + 21: uint16(24125), + 22: uint16(24917), + 23: uint16(25720), + 24: uint16(25721), + 25: uint16(26286), + 26: uint16(26576), + 27: uint16(27169), + 28: uint16(27597), + 29: uint16(27611), + 30: uint16(29279), + 31: uint16(29281), + 32: uint16(29761), + 33: uint16(30520), + 34: uint16(30683), + 35: uint16(32791), + 36: uint16(33468), + 37: uint16(33541), + 38: uint16(35584), + 39: uint16(35624), + 40: uint16(35980), + 41: uint16(26408), + 42: uint16(27792), + 43: uint16(29287), + 44: uint16(30446), + 45: uint16(30566), + 46: uint16(31302), + 47: uint16(40361), + 48: uint16(27519), + 49: uint16(27794), + 50: uint16(22818), + 51: uint16(26406), + 52: uint16(33945), + 53: uint16(21359), + 54: uint16(22675), + 55: uint16(22937), + 56: uint16(24287), + 57: uint16(25551), + 58: uint16(26164), + 59: uint16(26483), + 60: uint16(28218), + 61: uint16(29483), + 62: uint16(31447), + 63: uint16(33495), + 64: uint16(37672), + 65: uint16(21209), + 66: uint16(24043), + 67: uint16(25006), + 68: uint16(25035), + 69: uint16(25098), + 70: uint16(25287), + 71: uint16(25771), + 72: uint16(26080), + 73: uint16(26969), + 74: uint16(27494), + 75: uint16(27595), + 76: uint16(28961), + 77: uint16(29687), + 78: uint16(30045), + 79: uint16(32326), + 80: uint16(33310), + 81: uint16(33538), + 82: uint16(34154), + 83: uint16(35491), + 84: uint16(36031), + 85: uint16(38695), + 86: uint16(40289), + 87: uint16(22696), + 88: uint16(40664), + 89: uint16(20497), + 90: uint16(21006), + 91: uint16(21563), + 92: uint16(21839), + 93: uint16(25991), + }, + 57: { + 0: uint16(27766), + 1: uint16(32010), + 2: uint16(32011), + 3: uint16(32862), + 4: uint16(34442), + 5: uint16(38272), + 6: uint16(38639), + 7: uint16(21247), + 8: uint16(27797), + 9: uint16(29289), + 10: uint16(21619), + 11: uint16(23194), + 12: uint16(23614), + 13: uint16(23883), + 14: uint16(24396), + 15: uint16(24494), + 16: uint16(26410), + 17: uint16(26806), + 18: uint16(26979), + 19: uint16(28220), + 20: uint16(28228), + 21: uint16(30473), + 22: uint16(31859), + 23: uint16(32654), + 24: uint16(34183), + 25: uint16(35598), + 26: uint16(36855), + 27: uint16(38753), + 28: uint16(40692), + 29: uint16(23735), + 30: uint16(24758), + 31: uint16(24845), + 32: uint16(25003), + 33: uint16(25935), + 34: uint16(26107), + 35: uint16(26108), + 36: uint16(27665), + 37: uint16(27887), + 38: uint16(29599), + 39: uint16(29641), + 40: uint16(32225), + 41: uint16(38292), + 42: uint16(23494), + 43: uint16(34588), + 44: uint16(35600), + 45: uint16(21085), + 46: uint16(21338), + 47: uint16(25293), + 48: uint16(25615), + 49: uint16(25778), + 50: uint16(26420), + 51: uint16(27192), + 52: uint16(27850), + 53: uint16(29632), + 54: uint16(29854), + 55: uint16(31636), + 56: uint16(31893), + 57: uint16(32283), + 58: uint16(33162), + 59: uint16(33334), + 60: uint16(34180), + 61: uint16(36843), + 62: uint16(38649), + 63: uint16(39361), + 64: uint16(20276), + 65: uint16(21322), + 66: uint16(21453), + 67: uint16(21467), + 68: uint16(25292), + 69: uint16(25644), + 70: uint16(25856), + 71: uint16(26001), + 72: uint16(27075), + 73: uint16(27886), + 74: uint16(28504), + 75: uint16(29677), + 76: uint16(30036), + 77: uint16(30242), + 78: uint16(30436), + 79: uint16(30460), + 80: uint16(30928), + 81: uint16(30971), + 82: uint16(31020), + 83: uint16(32070), + 84: uint16(33324), + 85: uint16(34784), + 86: uint16(36820), + 87: uint16(38930), + 88: uint16(39151), + 89: uint16(21187), + 90: uint16(25300), + 91: uint16(25765), + 92: uint16(28196), + 93: uint16(28497), + }, + 58: { + 0: uint16(30332), + 1: uint16(36299), + 2: uint16(37297), + 3: uint16(37474), + 4: uint16(39662), + 5: uint16(39747), + 6: uint16(20515), + 7: uint16(20621), + 8: uint16(22346), + 9: uint16(22952), + 10: uint16(23592), + 11: uint16(24135), + 12: uint16(24439), + 13: uint16(25151), + 14: uint16(25918), + 15: uint16(26041), + 16: uint16(26049), + 17: uint16(26121), + 18: uint16(26507), + 19: uint16(27036), + 20: uint16(28354), + 21: uint16(30917), + 22: uint16(32033), + 23: uint16(32938), + 24: uint16(33152), + 25: uint16(33323), + 26: uint16(33459), + 27: uint16(33953), + 28: uint16(34444), + 29: uint16(35370), + 30: uint16(35607), + 31: uint16(37030), + 32: uint16(38450), + 33: uint16(40848), + 34: uint16(20493), + 35: uint16(20467), + 36: uint16(63843), + 37: uint16(22521), + 38: uint16(24472), + 39: uint16(25308), + 40: uint16(25490), + 41: uint16(26479), + 42: uint16(28227), + 43: uint16(28953), + 44: uint16(30403), + 45: uint16(32972), + 46: uint16(32986), + 47: uint16(35060), + 48: uint16(35061), + 49: uint16(35097), + 50: uint16(36064), + 51: uint16(36649), + 52: uint16(37197), + 53: uint16(38506), + 54: uint16(20271), + 55: uint16(20336), + 56: uint16(24091), + 57: uint16(26575), + 58: uint16(26658), + 59: uint16(30333), + 60: uint16(30334), + 61: uint16(39748), + 62: uint16(24161), + 63: uint16(27146), + 64: uint16(29033), + 65: uint16(29140), + 66: uint16(30058), + 67: uint16(63844), + 68: uint16(32321), + 69: uint16(34115), + 70: uint16(34281), + 71: uint16(39132), + 72: uint16(20240), + 73: uint16(31567), + 74: uint16(32624), + 75: uint16(38309), + 76: uint16(20961), + 77: uint16(24070), + 78: uint16(26805), + 79: uint16(27710), + 80: uint16(27726), + 81: uint16(27867), + 82: uint16(29359), + 83: uint16(31684), + 84: uint16(33539), + 85: uint16(27861), + 86: uint16(29754), + 87: uint16(20731), + 88: uint16(21128), + 89: uint16(22721), + 90: uint16(25816), + 91: uint16(27287), + 92: uint16(29863), + 93: uint16(30294), + }, + 59: { + 0: uint16(30887), + 1: uint16(34327), + 2: uint16(38370), + 3: uint16(38713), + 4: uint16(63845), + 5: uint16(21342), + 6: uint16(24321), + 7: uint16(35722), + 8: uint16(36776), + 9: uint16(36783), + 10: uint16(37002), + 11: uint16(21029), + 12: uint16(30629), + 13: uint16(40009), + 14: uint16(40712), + 15: uint16(19993), + 16: uint16(20482), + 17: uint16(20853), + 18: uint16(23643), + 19: uint16(24183), + 20: uint16(26142), + 21: uint16(26170), + 22: uint16(26564), + 23: uint16(26821), + 24: uint16(28851), + 25: uint16(29953), + 26: uint16(30149), + 27: uint16(31177), + 28: uint16(31453), + 29: uint16(36647), + 30: uint16(39200), + 31: uint16(39432), + 32: uint16(20445), + 33: uint16(22561), + 34: uint16(22577), + 35: uint16(23542), + 36: uint16(26222), + 37: uint16(27493), + 38: uint16(27921), + 39: uint16(28282), + 40: uint16(28541), + 41: uint16(29668), + 42: uint16(29995), + 43: uint16(33769), + 44: uint16(35036), + 45: uint16(35091), + 46: uint16(35676), + 47: uint16(36628), + 48: uint16(20239), + 49: uint16(20693), + 50: uint16(21264), + 51: uint16(21340), + 52: uint16(23443), + 53: uint16(24489), + 54: uint16(26381), + 55: uint16(31119), + 56: uint16(33145), + 57: uint16(33583), + 58: uint16(34068), + 59: uint16(35079), + 60: uint16(35206), + 61: uint16(36665), + 62: uint16(36667), + 63: uint16(39333), + 64: uint16(39954), + 65: uint16(26412), + 66: uint16(20086), + 67: uint16(20472), + 68: uint16(22857), + 69: uint16(23553), + 70: uint16(23791), + 71: uint16(23792), + 72: uint16(25447), + 73: uint16(26834), + 74: uint16(28925), + 75: uint16(29090), + 76: uint16(29739), + 77: uint16(32299), + 78: uint16(34028), + 79: uint16(34562), + 80: uint16(36898), + 81: uint16(37586), + 82: uint16(40179), + 83: uint16(19981), + 84: uint16(20184), + 85: uint16(20463), + 86: uint16(20613), + 87: uint16(21078), + 88: uint16(21103), + 89: uint16(21542), + 90: uint16(21648), + 91: uint16(22496), + 92: uint16(22827), + 93: uint16(23142), + }, + 60: { + 0: uint16(23386), + 1: uint16(23413), + 2: uint16(23500), + 3: uint16(24220), + 4: uint16(63846), + 5: uint16(25206), + 6: uint16(25975), + 7: uint16(26023), + 8: uint16(28014), + 9: uint16(28325), + 10: uint16(29238), + 11: uint16(31526), + 12: uint16(31807), + 13: uint16(32566), + 14: uint16(33104), + 15: uint16(33105), + 16: uint16(33178), + 17: uint16(33344), + 18: uint16(33433), + 19: uint16(33705), + 20: uint16(35331), + 21: uint16(36000), + 22: uint16(36070), + 23: uint16(36091), + 24: uint16(36212), + 25: uint16(36282), + 26: uint16(37096), + 27: uint16(37340), + 28: uint16(38428), + 29: uint16(38468), + 30: uint16(39385), + 31: uint16(40167), + 32: uint16(21271), + 33: uint16(20998), + 34: uint16(21545), + 35: uint16(22132), + 36: uint16(22707), + 37: uint16(22868), + 38: uint16(22894), + 39: uint16(24575), + 40: uint16(24996), + 41: uint16(25198), + 42: uint16(26128), + 43: uint16(27774), + 44: uint16(28954), + 45: uint16(30406), + 46: uint16(31881), + 47: uint16(31966), + 48: uint16(32027), + 49: uint16(33452), + 50: uint16(36033), + 51: uint16(38640), + 52: uint16(63847), + 53: uint16(20315), + 54: uint16(24343), + 55: uint16(24447), + 56: uint16(25282), + 57: uint16(23849), + 58: uint16(26379), + 59: uint16(26842), + 60: uint16(30844), + 61: uint16(32323), + 62: uint16(40300), + 63: uint16(19989), + 64: uint16(20633), + 65: uint16(21269), + 66: uint16(21290), + 67: uint16(21329), + 68: uint16(22915), + 69: uint16(23138), + 70: uint16(24199), + 71: uint16(24754), + 72: uint16(24970), + 73: uint16(25161), + 74: uint16(25209), + 75: uint16(26000), + 76: uint16(26503), + 77: uint16(27047), + 78: uint16(27604), + 79: uint16(27606), + 80: uint16(27607), + 81: uint16(27608), + 82: uint16(27832), + 83: uint16(63848), + 84: uint16(29749), + 85: uint16(30202), + 86: uint16(30738), + 87: uint16(30865), + 88: uint16(31189), + 89: uint16(31192), + 90: uint16(31875), + 91: uint16(32203), + 92: uint16(32737), + 93: uint16(32933), + }, + 61: { + 0: uint16(33086), + 1: uint16(33218), + 2: uint16(33778), + 3: uint16(34586), + 4: uint16(35048), + 5: uint16(35513), + 6: uint16(35692), + 7: uint16(36027), + 8: uint16(37145), + 9: uint16(38750), + 10: uint16(39131), + 11: uint16(40763), + 12: uint16(22188), + 13: uint16(23338), + 14: uint16(24428), + 15: uint16(25996), + 16: uint16(27315), + 17: uint16(27567), + 18: uint16(27996), + 19: uint16(28657), + 20: uint16(28693), + 21: uint16(29277), + 22: uint16(29613), + 23: uint16(36007), + 24: uint16(36051), + 25: uint16(38971), + 26: uint16(24977), + 27: uint16(27703), + 28: uint16(32856), + 29: uint16(39425), + 30: uint16(20045), + 31: uint16(20107), + 32: uint16(20123), + 33: uint16(20181), + 34: uint16(20282), + 35: uint16(20284), + 36: uint16(20351), + 37: uint16(20447), + 38: uint16(20735), + 39: uint16(21490), + 40: uint16(21496), + 41: uint16(21766), + 42: uint16(21987), + 43: uint16(22235), + 44: uint16(22763), + 45: uint16(22882), + 46: uint16(23057), + 47: uint16(23531), + 48: uint16(23546), + 49: uint16(23556), + 50: uint16(24051), + 51: uint16(24107), + 52: uint16(24473), + 53: uint16(24605), + 54: uint16(25448), + 55: uint16(26012), + 56: uint16(26031), + 57: uint16(26614), + 58: uint16(26619), + 59: uint16(26797), + 60: uint16(27515), + 61: uint16(27801), + 62: uint16(27863), + 63: uint16(28195), + 64: uint16(28681), + 65: uint16(29509), + 66: uint16(30722), + 67: uint16(31038), + 68: uint16(31040), + 69: uint16(31072), + 70: uint16(31169), + 71: uint16(31721), + 72: uint16(32023), + 73: uint16(32114), + 74: uint16(32902), + 75: uint16(33293), + 76: uint16(33678), + 77: uint16(34001), + 78: uint16(34503), + 79: uint16(35039), + 80: uint16(35408), + 81: uint16(35422), + 82: uint16(35613), + 83: uint16(36060), + 84: uint16(36198), + 85: uint16(36781), + 86: uint16(37034), + 87: uint16(39164), + 88: uint16(39391), + 89: uint16(40605), + 90: uint16(21066), + 91: uint16(63849), + 92: uint16(26388), + 93: uint16(63850), + }, + 62: { + 0: uint16(20632), + 1: uint16(21034), + 2: uint16(23665), + 3: uint16(25955), + 4: uint16(27733), + 5: uint16(29642), + 6: uint16(29987), + 7: uint16(30109), + 8: uint16(31639), + 9: uint16(33948), + 10: uint16(37240), + 11: uint16(38704), + 12: uint16(20087), + 13: uint16(25746), + 14: uint16(27578), + 15: uint16(29022), + 16: uint16(34217), + 17: uint16(19977), + 18: uint16(63851), + 19: uint16(26441), + 20: uint16(26862), + 21: uint16(28183), + 22: uint16(33439), + 23: uint16(34072), + 24: uint16(34923), + 25: uint16(25591), + 26: uint16(28545), + 27: uint16(37394), + 28: uint16(39087), + 29: uint16(19978), + 30: uint16(20663), + 31: uint16(20687), + 32: uint16(20767), + 33: uint16(21830), + 34: uint16(21930), + 35: uint16(22039), + 36: uint16(23360), + 37: uint16(23577), + 38: uint16(23776), + 39: uint16(24120), + 40: uint16(24202), + 41: uint16(24224), + 42: uint16(24258), + 43: uint16(24819), + 44: uint16(26705), + 45: uint16(27233), + 46: uint16(28248), + 47: uint16(29245), + 48: uint16(29248), + 49: uint16(29376), + 50: uint16(30456), + 51: uint16(31077), + 52: uint16(31665), + 53: uint16(32724), + 54: uint16(35059), + 55: uint16(35316), + 56: uint16(35443), + 57: uint16(35937), + 58: uint16(36062), + 59: uint16(38684), + 60: uint16(22622), + 61: uint16(29885), + 62: uint16(36093), + 63: uint16(21959), + 64: uint16(63852), + 65: uint16(31329), + 66: uint16(32034), + 67: uint16(33394), + 68: uint16(29298), + 69: uint16(29983), + 70: uint16(29989), + 71: uint16(63853), + 72: uint16(31513), + 73: uint16(22661), + 74: uint16(22779), + 75: uint16(23996), + 76: uint16(24207), + 77: uint16(24246), + 78: uint16(24464), + 79: uint16(24661), + 80: uint16(25234), + 81: uint16(25471), + 82: uint16(25933), + 83: uint16(26257), + 84: uint16(26329), + 85: uint16(26360), + 86: uint16(26646), + 87: uint16(26866), + 88: uint16(29312), + 89: uint16(29790), + 90: uint16(31598), + 91: uint16(32110), + 92: uint16(32214), + 93: uint16(32626), + }, + 63: { + 0: uint16(32997), + 1: uint16(33298), + 2: uint16(34223), + 3: uint16(35199), + 4: uint16(35475), + 5: uint16(36893), + 6: uint16(37604), + 7: uint16(40653), + 8: uint16(40736), + 9: uint16(22805), + 10: uint16(22893), + 11: uint16(24109), + 12: uint16(24796), + 13: uint16(26132), + 14: uint16(26227), + 15: uint16(26512), + 16: uint16(27728), + 17: uint16(28101), + 18: uint16(28511), + 19: uint16(30707), + 20: uint16(30889), + 21: uint16(33990), + 22: uint16(37323), + 23: uint16(37675), + 24: uint16(20185), + 25: uint16(20682), + 26: uint16(20808), + 27: uint16(21892), + 28: uint16(23307), + 29: uint16(23459), + 30: uint16(25159), + 31: uint16(25982), + 32: uint16(26059), + 33: uint16(28210), + 34: uint16(29053), + 35: uint16(29697), + 36: uint16(29764), + 37: uint16(29831), + 38: uint16(29887), + 39: uint16(30316), + 40: uint16(31146), + 41: uint16(32218), + 42: uint16(32341), + 43: uint16(32680), + 44: uint16(33146), + 45: uint16(33203), + 46: uint16(33337), + 47: uint16(34330), + 48: uint16(34796), + 49: uint16(35445), + 50: uint16(36323), + 51: uint16(36984), + 52: uint16(37521), + 53: uint16(37925), + 54: uint16(39245), + 55: uint16(39854), + 56: uint16(21352), + 57: uint16(23633), + 58: uint16(26964), + 59: uint16(27844), + 60: uint16(27945), + 61: uint16(28203), + 62: uint16(33292), + 63: uint16(34203), + 64: uint16(35131), + 65: uint16(35373), + 66: uint16(35498), + 67: uint16(38634), + 68: uint16(40807), + 69: uint16(21089), + 70: uint16(26297), + 71: uint16(27570), + 72: uint16(32406), + 73: uint16(34814), + 74: uint16(36109), + 75: uint16(38275), + 76: uint16(38493), + 77: uint16(25885), + 78: uint16(28041), + 79: uint16(29166), + 80: uint16(63854), + 81: uint16(22478), + 82: uint16(22995), + 83: uint16(23468), + 84: uint16(24615), + 85: uint16(24826), + 86: uint16(25104), + 87: uint16(26143), + 88: uint16(26207), + 89: uint16(29481), + 90: uint16(29689), + 91: uint16(30427), + 92: uint16(30465), + 93: uint16(31596), + }, + 64: { + 0: uint16(32854), + 1: uint16(32882), + 2: uint16(33125), + 3: uint16(35488), + 4: uint16(37266), + 5: uint16(19990), + 6: uint16(21218), + 7: uint16(27506), + 8: uint16(27927), + 9: uint16(31237), + 10: uint16(31545), + 11: uint16(32048), + 12: uint16(63855), + 13: uint16(36016), + 14: uint16(21484), + 15: uint16(22063), + 16: uint16(22609), + 17: uint16(23477), + 18: uint16(23567), + 19: uint16(23569), + 20: uint16(24034), + 21: uint16(25152), + 22: uint16(25475), + 23: uint16(25620), + 24: uint16(26157), + 25: uint16(26803), + 26: uint16(27836), + 27: uint16(28040), + 28: uint16(28335), + 29: uint16(28703), + 30: uint16(28836), + 31: uint16(29138), + 32: uint16(29990), + 33: uint16(30095), + 34: uint16(30094), + 35: uint16(30233), + 36: uint16(31505), + 37: uint16(31712), + 38: uint16(31787), + 39: uint16(32032), + 40: uint16(32057), + 41: uint16(34092), + 42: uint16(34157), + 43: uint16(34311), + 44: uint16(35380), + 45: uint16(36877), + 46: uint16(36961), + 47: uint16(37045), + 48: uint16(37559), + 49: uint16(38902), + 50: uint16(39479), + 51: uint16(20439), + 52: uint16(23660), + 53: uint16(26463), + 54: uint16(28049), + 55: uint16(31903), + 56: uint16(32396), + 57: uint16(35606), + 58: uint16(36118), + 59: uint16(36895), + 60: uint16(23403), + 61: uint16(24061), + 62: uint16(25613), + 63: uint16(33984), + 64: uint16(36956), + 65: uint16(39137), + 66: uint16(29575), + 67: uint16(23435), + 68: uint16(24730), + 69: uint16(26494), + 70: uint16(28126), + 71: uint16(35359), + 72: uint16(35494), + 73: uint16(36865), + 74: uint16(38924), + 75: uint16(21047), + 76: uint16(63856), + 77: uint16(28753), + 78: uint16(30862), + 79: uint16(37782), + 80: uint16(34928), + 81: uint16(37335), + 82: uint16(20462), + 83: uint16(21463), + 84: uint16(22013), + 85: uint16(22234), + 86: uint16(22402), + 87: uint16(22781), + 88: uint16(23234), + 89: uint16(23432), + 90: uint16(23723), + 91: uint16(23744), + 92: uint16(24101), + 93: uint16(24833), + }, + 65: { + 0: uint16(25101), + 1: uint16(25163), + 2: uint16(25480), + 3: uint16(25628), + 4: uint16(25910), + 5: uint16(25976), + 6: uint16(27193), + 7: uint16(27530), + 8: uint16(27700), + 9: uint16(27929), + 10: uint16(28465), + 11: uint16(29159), + 12: uint16(29417), + 13: uint16(29560), + 14: uint16(29703), + 15: uint16(29874), + 16: uint16(30246), + 17: uint16(30561), + 18: uint16(31168), + 19: uint16(31319), + 20: uint16(31466), + 21: uint16(31929), + 22: uint16(32143), + 23: uint16(32172), + 24: uint16(32353), + 25: uint16(32670), + 26: uint16(33065), + 27: uint16(33585), + 28: uint16(33936), + 29: uint16(34010), + 30: uint16(34282), + 31: uint16(34966), + 32: uint16(35504), + 33: uint16(35728), + 34: uint16(36664), + 35: uint16(36930), + 36: uint16(36995), + 37: uint16(37228), + 38: uint16(37526), + 39: uint16(37561), + 40: uint16(38539), + 41: uint16(38567), + 42: uint16(38568), + 43: uint16(38614), + 44: uint16(38656), + 45: uint16(38920), + 46: uint16(39318), + 47: uint16(39635), + 48: uint16(39706), + 49: uint16(21460), + 50: uint16(22654), + 51: uint16(22809), + 52: uint16(23408), + 53: uint16(23487), + 54: uint16(28113), + 55: uint16(28506), + 56: uint16(29087), + 57: uint16(29729), + 58: uint16(29881), + 59: uint16(32901), + 60: uint16(33789), + 61: uint16(24033), + 62: uint16(24455), + 63: uint16(24490), + 64: uint16(24642), + 65: uint16(26092), + 66: uint16(26642), + 67: uint16(26991), + 68: uint16(27219), + 69: uint16(27529), + 70: uint16(27957), + 71: uint16(28147), + 72: uint16(29667), + 73: uint16(30462), + 74: uint16(30636), + 75: uint16(31565), + 76: uint16(32020), + 77: uint16(33059), + 78: uint16(33308), + 79: uint16(33600), + 80: uint16(34036), + 81: uint16(34147), + 82: uint16(35426), + 83: uint16(35524), + 84: uint16(37255), + 85: uint16(37662), + 86: uint16(38918), + 87: uint16(39348), + 88: uint16(25100), + 89: uint16(34899), + 90: uint16(36848), + 91: uint16(37477), + 92: uint16(23815), + 93: uint16(23847), + }, + 66: { + 0: uint16(23913), + 1: uint16(29791), + 2: uint16(33181), + 3: uint16(34664), + 4: uint16(28629), + 5: uint16(25342), + 6: uint16(32722), + 7: uint16(35126), + 8: uint16(35186), + 9: uint16(19998), + 10: uint16(20056), + 11: uint16(20711), + 12: uint16(21213), + 13: uint16(21319), + 14: uint16(25215), + 15: uint16(26119), + 16: uint16(32361), + 17: uint16(34821), + 18: uint16(38494), + 19: uint16(20365), + 20: uint16(21273), + 21: uint16(22070), + 22: uint16(22987), + 23: uint16(23204), + 24: uint16(23608), + 25: uint16(23630), + 26: uint16(23629), + 27: uint16(24066), + 28: uint16(24337), + 29: uint16(24643), + 30: uint16(26045), + 31: uint16(26159), + 32: uint16(26178), + 33: uint16(26558), + 34: uint16(26612), + 35: uint16(29468), + 36: uint16(30690), + 37: uint16(31034), + 38: uint16(32709), + 39: uint16(33940), + 40: uint16(33997), + 41: uint16(35222), + 42: uint16(35430), + 43: uint16(35433), + 44: uint16(35553), + 45: uint16(35925), + 46: uint16(35962), + 47: uint16(22516), + 48: uint16(23508), + 49: uint16(24335), + 50: uint16(24687), + 51: uint16(25325), + 52: uint16(26893), + 53: uint16(27542), + 54: uint16(28252), + 55: uint16(29060), + 56: uint16(31698), + 57: uint16(34645), + 58: uint16(35672), + 59: uint16(36606), + 60: uint16(39135), + 61: uint16(39166), + 62: uint16(20280), + 63: uint16(20353), + 64: uint16(20449), + 65: uint16(21627), + 66: uint16(23072), + 67: uint16(23480), + 68: uint16(24892), + 69: uint16(26032), + 70: uint16(26216), + 71: uint16(29180), + 72: uint16(30003), + 73: uint16(31070), + 74: uint16(32051), + 75: uint16(33102), + 76: uint16(33251), + 77: uint16(33688), + 78: uint16(34218), + 79: uint16(34254), + 80: uint16(34563), + 81: uint16(35338), + 82: uint16(36523), + 83: uint16(36763), + 84: uint16(63857), + 85: uint16(36805), + 86: uint16(22833), + 87: uint16(23460), + 88: uint16(23526), + 89: uint16(24713), + 90: uint16(23529), + 91: uint16(23563), + 92: uint16(24515), + 93: uint16(27777), + }, + 67: { + 0: uint16(63858), + 1: uint16(28145), + 2: uint16(28683), + 3: uint16(29978), + 4: uint16(33455), + 5: uint16(35574), + 6: uint16(20160), + 7: uint16(21313), + 8: uint16(63859), + 9: uint16(38617), + 10: uint16(27663), + 11: uint16(20126), + 12: uint16(20420), + 13: uint16(20818), + 14: uint16(21854), + 15: uint16(23077), + 16: uint16(23784), + 17: uint16(25105), + 18: uint16(29273), + 19: uint16(33469), + 20: uint16(33706), + 21: uint16(34558), + 22: uint16(34905), + 23: uint16(35357), + 24: uint16(38463), + 25: uint16(38597), + 26: uint16(39187), + 27: uint16(40201), + 28: uint16(40285), + 29: uint16(22538), + 30: uint16(23731), + 31: uint16(23997), + 32: uint16(24132), + 33: uint16(24801), + 34: uint16(24853), + 35: uint16(25569), + 36: uint16(27138), + 37: uint16(28197), + 38: uint16(37122), + 39: uint16(37716), + 40: uint16(38990), + 41: uint16(39952), + 42: uint16(40823), + 43: uint16(23433), + 44: uint16(23736), + 45: uint16(25353), + 46: uint16(26191), + 47: uint16(26696), + 48: uint16(30524), + 49: uint16(38593), + 50: uint16(38797), + 51: uint16(38996), + 52: uint16(39839), + 53: uint16(26017), + 54: uint16(35585), + 55: uint16(36555), + 56: uint16(38332), + 57: uint16(21813), + 58: uint16(23721), + 59: uint16(24022), + 60: uint16(24245), + 61: uint16(26263), + 62: uint16(30284), + 63: uint16(33780), + 64: uint16(38343), + 65: uint16(22739), + 66: uint16(25276), + 67: uint16(29390), + 68: uint16(40232), + 69: uint16(20208), + 70: uint16(22830), + 71: uint16(24591), + 72: uint16(26171), + 73: uint16(27523), + 74: uint16(31207), + 75: uint16(40230), + 76: uint16(21395), + 77: uint16(21696), + 78: uint16(22467), + 79: uint16(23830), + 80: uint16(24859), + 81: uint16(26326), + 82: uint16(28079), + 83: uint16(30861), + 84: uint16(33406), + 85: uint16(38552), + 86: uint16(38724), + 87: uint16(21380), + 88: uint16(25212), + 89: uint16(25494), + 90: uint16(28082), + 91: uint16(32266), + 92: uint16(33099), + 93: uint16(38989), + }, + 68: { + 0: uint16(27387), + 1: uint16(32588), + 2: uint16(40367), + 3: uint16(40474), + 4: uint16(20063), + 5: uint16(20539), + 6: uint16(20918), + 7: uint16(22812), + 8: uint16(24825), + 9: uint16(25590), + 10: uint16(26928), + 11: uint16(29242), + 12: uint16(32822), + 13: uint16(63860), + 14: uint16(37326), + 15: uint16(24369), + 16: uint16(63861), + 17: uint16(63862), + 18: uint16(32004), + 19: uint16(33509), + 20: uint16(33903), + 21: uint16(33979), + 22: uint16(34277), + 23: uint16(36493), + 24: uint16(63863), + 25: uint16(20335), + 26: uint16(63864), + 27: uint16(63865), + 28: uint16(22756), + 29: uint16(23363), + 30: uint16(24665), + 31: uint16(25562), + 32: uint16(25880), + 33: uint16(25965), + 34: uint16(26264), + 35: uint16(63866), + 36: uint16(26954), + 37: uint16(27171), + 38: uint16(27915), + 39: uint16(28673), + 40: uint16(29036), + 41: uint16(30162), + 42: uint16(30221), + 43: uint16(31155), + 44: uint16(31344), + 45: uint16(63867), + 46: uint16(32650), + 47: uint16(63868), + 48: uint16(35140), + 49: uint16(63869), + 50: uint16(35731), + 51: uint16(37312), + 52: uint16(38525), + 53: uint16(63870), + 54: uint16(39178), + 55: uint16(22276), + 56: uint16(24481), + 57: uint16(26044), + 58: uint16(28417), + 59: uint16(30208), + 60: uint16(31142), + 61: uint16(35486), + 62: uint16(39341), + 63: uint16(39770), + 64: uint16(40812), + 65: uint16(20740), + 66: uint16(25014), + 67: uint16(25233), + 68: uint16(27277), + 69: uint16(33222), + 70: uint16(20547), + 71: uint16(22576), + 72: uint16(24422), + 73: uint16(28937), + 74: uint16(35328), + 75: uint16(35578), + 76: uint16(23420), + 77: uint16(34326), + 78: uint16(20474), + 79: uint16(20796), + 80: uint16(22196), + 81: uint16(22852), + 82: uint16(25513), + 83: uint16(28153), + 84: uint16(23978), + 85: uint16(26989), + 86: uint16(20870), + 87: uint16(20104), + 88: uint16(20313), + 89: uint16(63871), + 90: uint16(63872), + 91: uint16(63873), + 92: uint16(22914), + 93: uint16(63874), + }, + 69: { + 0: uint16(63875), + 1: uint16(27487), + 2: uint16(27741), + 3: uint16(63876), + 4: uint16(29877), + 5: uint16(30998), + 6: uint16(63877), + 7: uint16(33287), + 8: uint16(33349), + 9: uint16(33593), + 10: uint16(36671), + 11: uint16(36701), + 12: uint16(63878), + 13: uint16(39192), + 14: uint16(63879), + 15: uint16(63880), + 16: uint16(63881), + 17: uint16(20134), + 18: uint16(63882), + 19: uint16(22495), + 20: uint16(24441), + 21: uint16(26131), + 22: uint16(63883), + 23: uint16(63884), + 24: uint16(30123), + 25: uint16(32377), + 26: uint16(35695), + 27: uint16(63885), + 28: uint16(36870), + 29: uint16(39515), + 30: uint16(22181), + 31: uint16(22567), + 32: uint16(23032), + 33: uint16(23071), + 34: uint16(23476), + 35: uint16(63886), + 36: uint16(24310), + 37: uint16(63887), + 38: uint16(63888), + 39: uint16(25424), + 40: uint16(25403), + 41: uint16(63889), + 42: uint16(26941), + 43: uint16(27783), + 44: uint16(27839), + 45: uint16(28046), + 46: uint16(28051), + 47: uint16(28149), + 48: uint16(28436), + 49: uint16(63890), + 50: uint16(28895), + 51: uint16(28982), + 52: uint16(29017), + 53: uint16(63891), + 54: uint16(29123), + 55: uint16(29141), + 56: uint16(63892), + 57: uint16(30799), + 58: uint16(30831), + 59: uint16(63893), + 60: uint16(31605), + 61: uint16(32227), + 62: uint16(63894), + 63: uint16(32303), + 64: uint16(63895), + 65: uint16(34893), + 66: uint16(36575), + 67: uint16(63896), + 68: uint16(63897), + 69: uint16(63898), + 70: uint16(37467), + 71: uint16(63899), + 72: uint16(40182), + 73: uint16(63900), + 74: uint16(63901), + 75: uint16(63902), + 76: uint16(24709), + 77: uint16(28037), + 78: uint16(63903), + 79: uint16(29105), + 80: uint16(63904), + 81: uint16(63905), + 82: uint16(38321), + 83: uint16(21421), + 84: uint16(63906), + 85: uint16(63907), + 86: uint16(63908), + 87: uint16(26579), + 88: uint16(63909), + 89: uint16(28814), + 90: uint16(28976), + 91: uint16(29744), + 92: uint16(33398), + 93: uint16(33490), + }, + 70: { + 0: uint16(63910), + 1: uint16(38331), + 2: uint16(39653), + 3: uint16(40573), + 4: uint16(26308), + 5: uint16(63911), + 6: uint16(29121), + 7: uint16(33865), + 8: uint16(63912), + 9: uint16(63913), + 10: uint16(22603), + 11: uint16(63914), + 12: uint16(63915), + 13: uint16(23992), + 14: uint16(24433), + 15: uint16(63916), + 16: uint16(26144), + 17: uint16(26254), + 18: uint16(27001), + 19: uint16(27054), + 20: uint16(27704), + 21: uint16(27891), + 22: uint16(28214), + 23: uint16(28481), + 24: uint16(28634), + 25: uint16(28699), + 26: uint16(28719), + 27: uint16(29008), + 28: uint16(29151), + 29: uint16(29552), + 30: uint16(63917), + 31: uint16(29787), + 32: uint16(63918), + 33: uint16(29908), + 34: uint16(30408), + 35: uint16(31310), + 36: uint16(32403), + 37: uint16(63919), + 38: uint16(63920), + 39: uint16(33521), + 40: uint16(35424), + 41: uint16(36814), + 42: uint16(63921), + 43: uint16(37704), + 44: uint16(63922), + 45: uint16(38681), + 46: uint16(63923), + 47: uint16(63924), + 48: uint16(20034), + 49: uint16(20522), + 50: uint16(63925), + 51: uint16(21000), + 52: uint16(21473), + 53: uint16(26355), + 54: uint16(27757), + 55: uint16(28618), + 56: uint16(29450), + 57: uint16(30591), + 58: uint16(31330), + 59: uint16(33454), + 60: uint16(34269), + 61: uint16(34306), + 62: uint16(63926), + 63: uint16(35028), + 64: uint16(35427), + 65: uint16(35709), + 66: uint16(35947), + 67: uint16(63927), + 68: uint16(37555), + 69: uint16(63928), + 70: uint16(38675), + 71: uint16(38928), + 72: uint16(20116), + 73: uint16(20237), + 74: uint16(20425), + 75: uint16(20658), + 76: uint16(21320), + 77: uint16(21566), + 78: uint16(21555), + 79: uint16(21978), + 80: uint16(22626), + 81: uint16(22714), + 82: uint16(22887), + 83: uint16(23067), + 84: uint16(23524), + 85: uint16(24735), + 86: uint16(63929), + 87: uint16(25034), + 88: uint16(25942), + 89: uint16(26111), + 90: uint16(26212), + 91: uint16(26791), + 92: uint16(27738), + 93: uint16(28595), + }, + 71: { + 0: uint16(28879), + 1: uint16(29100), + 2: uint16(29522), + 3: uint16(31613), + 4: uint16(34568), + 5: uint16(35492), + 6: uint16(39986), + 7: uint16(40711), + 8: uint16(23627), + 9: uint16(27779), + 10: uint16(29508), + 11: uint16(29577), + 12: uint16(37434), + 13: uint16(28331), + 14: uint16(29797), + 15: uint16(30239), + 16: uint16(31337), + 17: uint16(32277), + 18: uint16(34314), + 19: uint16(20800), + 20: uint16(22725), + 21: uint16(25793), + 22: uint16(29934), + 23: uint16(29973), + 24: uint16(30320), + 25: uint16(32705), + 26: uint16(37013), + 27: uint16(38605), + 28: uint16(39252), + 29: uint16(28198), + 30: uint16(29926), + 31: uint16(31401), + 32: uint16(31402), + 33: uint16(33253), + 34: uint16(34521), + 35: uint16(34680), + 36: uint16(35355), + 37: uint16(23113), + 38: uint16(23436), + 39: uint16(23451), + 40: uint16(26785), + 41: uint16(26880), + 42: uint16(28003), + 43: uint16(29609), + 44: uint16(29715), + 45: uint16(29740), + 46: uint16(30871), + 47: uint16(32233), + 48: uint16(32747), + 49: uint16(33048), + 50: uint16(33109), + 51: uint16(33694), + 52: uint16(35916), + 53: uint16(38446), + 54: uint16(38929), + 55: uint16(26352), + 56: uint16(24448), + 57: uint16(26106), + 58: uint16(26505), + 59: uint16(27754), + 60: uint16(29579), + 61: uint16(20525), + 62: uint16(23043), + 63: uint16(27498), + 64: uint16(30702), + 65: uint16(22806), + 66: uint16(23916), + 67: uint16(24013), + 68: uint16(29477), + 69: uint16(30031), + 70: uint16(63930), + 71: uint16(63931), + 72: uint16(20709), + 73: uint16(20985), + 74: uint16(22575), + 75: uint16(22829), + 76: uint16(22934), + 77: uint16(23002), + 78: uint16(23525), + 79: uint16(63932), + 80: uint16(63933), + 81: uint16(23970), + 82: uint16(25303), + 83: uint16(25622), + 84: uint16(25747), + 85: uint16(25854), + 86: uint16(63934), + 87: uint16(26332), + 88: uint16(63935), + 89: uint16(27208), + 90: uint16(63936), + 91: uint16(29183), + 92: uint16(29796), + 93: uint16(63937), + }, + 72: { + 0: uint16(31368), + 1: uint16(31407), + 2: uint16(32327), + 3: uint16(32350), + 4: uint16(32768), + 5: uint16(33136), + 6: uint16(63938), + 7: uint16(34799), + 8: uint16(35201), + 9: uint16(35616), + 10: uint16(36953), + 11: uint16(63939), + 12: uint16(36992), + 13: uint16(39250), + 14: uint16(24958), + 15: uint16(27442), + 16: uint16(28020), + 17: uint16(32287), + 18: uint16(35109), + 19: uint16(36785), + 20: uint16(20433), + 21: uint16(20653), + 22: uint16(20887), + 23: uint16(21191), + 24: uint16(22471), + 25: uint16(22665), + 26: uint16(23481), + 27: uint16(24248), + 28: uint16(24898), + 29: uint16(27029), + 30: uint16(28044), + 31: uint16(28263), + 32: uint16(28342), + 33: uint16(29076), + 34: uint16(29794), + 35: uint16(29992), + 36: uint16(29996), + 37: uint16(32883), + 38: uint16(33592), + 39: uint16(33993), + 40: uint16(36362), + 41: uint16(37780), + 42: uint16(37854), + 43: uint16(63940), + 44: uint16(20110), + 45: uint16(20305), + 46: uint16(20598), + 47: uint16(20778), + 48: uint16(21448), + 49: uint16(21451), + 50: uint16(21491), + 51: uint16(23431), + 52: uint16(23507), + 53: uint16(23588), + 54: uint16(24858), + 55: uint16(24962), + 56: uint16(26100), + 57: uint16(29275), + 58: uint16(29591), + 59: uint16(29760), + 60: uint16(30402), + 61: uint16(31056), + 62: uint16(31121), + 63: uint16(31161), + 64: uint16(32006), + 65: uint16(32701), + 66: uint16(33419), + 67: uint16(34261), + 68: uint16(34398), + 69: uint16(36802), + 70: uint16(36935), + 71: uint16(37109), + 72: uint16(37354), + 73: uint16(38533), + 74: uint16(38632), + 75: uint16(38633), + 76: uint16(21206), + 77: uint16(24423), + 78: uint16(26093), + 79: uint16(26161), + 80: uint16(26671), + 81: uint16(29020), + 82: uint16(31286), + 83: uint16(37057), + 84: uint16(38922), + 85: uint16(20113), + 86: uint16(63941), + 87: uint16(27218), + 88: uint16(27550), + 89: uint16(28560), + 90: uint16(29065), + 91: uint16(32792), + 92: uint16(33464), + 93: uint16(34131), + }, + 73: { + 0: uint16(36939), + 1: uint16(38549), + 2: uint16(38642), + 3: uint16(38907), + 4: uint16(34074), + 5: uint16(39729), + 6: uint16(20112), + 7: uint16(29066), + 8: uint16(38596), + 9: uint16(20803), + 10: uint16(21407), + 11: uint16(21729), + 12: uint16(22291), + 13: uint16(22290), + 14: uint16(22435), + 15: uint16(23195), + 16: uint16(23236), + 17: uint16(23491), + 18: uint16(24616), + 19: uint16(24895), + 20: uint16(25588), + 21: uint16(27781), + 22: uint16(27961), + 23: uint16(28274), + 24: uint16(28304), + 25: uint16(29232), + 26: uint16(29503), + 27: uint16(29783), + 28: uint16(33489), + 29: uint16(34945), + 30: uint16(36677), + 31: uint16(36960), + 32: uint16(63942), + 33: uint16(38498), + 34: uint16(39000), + 35: uint16(40219), + 36: uint16(26376), + 37: uint16(36234), + 38: uint16(37470), + 39: uint16(20301), + 40: uint16(20553), + 41: uint16(20702), + 42: uint16(21361), + 43: uint16(22285), + 44: uint16(22996), + 45: uint16(23041), + 46: uint16(23561), + 47: uint16(24944), + 48: uint16(26256), + 49: uint16(28205), + 50: uint16(29234), + 51: uint16(29771), + 52: uint16(32239), + 53: uint16(32963), + 54: uint16(33806), + 55: uint16(33894), + 56: uint16(34111), + 57: uint16(34655), + 58: uint16(34907), + 59: uint16(35096), + 60: uint16(35586), + 61: uint16(36949), + 62: uint16(38859), + 63: uint16(39759), + 64: uint16(20083), + 65: uint16(20369), + 66: uint16(20754), + 67: uint16(20842), + 68: uint16(63943), + 69: uint16(21807), + 70: uint16(21929), + 71: uint16(23418), + 72: uint16(23461), + 73: uint16(24188), + 74: uint16(24189), + 75: uint16(24254), + 76: uint16(24736), + 77: uint16(24799), + 78: uint16(24840), + 79: uint16(24841), + 80: uint16(25540), + 81: uint16(25912), + 82: uint16(26377), + 83: uint16(63944), + 84: uint16(26580), + 85: uint16(26586), + 86: uint16(63945), + 87: uint16(26977), + 88: uint16(26978), + 89: uint16(27833), + 90: uint16(27943), + 91: uint16(63946), + 92: uint16(28216), + 93: uint16(63947), + }, + 74: { + 0: uint16(28641), + 1: uint16(29494), + 2: uint16(29495), + 3: uint16(63948), + 4: uint16(29788), + 5: uint16(30001), + 6: uint16(63949), + 7: uint16(30290), + 8: uint16(63950), + 9: uint16(63951), + 10: uint16(32173), + 11: uint16(33278), + 12: uint16(33848), + 13: uint16(35029), + 14: uint16(35480), + 15: uint16(35547), + 16: uint16(35565), + 17: uint16(36400), + 18: uint16(36418), + 19: uint16(36938), + 20: uint16(36926), + 21: uint16(36986), + 22: uint16(37193), + 23: uint16(37321), + 24: uint16(37742), + 25: uint16(63952), + 26: uint16(63953), + 27: uint16(22537), + 28: uint16(63954), + 29: uint16(27603), + 30: uint16(32905), + 31: uint16(32946), + 32: uint16(63955), + 33: uint16(63956), + 34: uint16(20801), + 35: uint16(22891), + 36: uint16(23609), + 37: uint16(63957), + 38: uint16(63958), + 39: uint16(28516), + 40: uint16(29607), + 41: uint16(32996), + 42: uint16(36103), + 43: uint16(63959), + 44: uint16(37399), + 45: uint16(38287), + 46: uint16(63960), + 47: uint16(63961), + 48: uint16(63962), + 49: uint16(63963), + 50: uint16(32895), + 51: uint16(25102), + 52: uint16(28700), + 53: uint16(32104), + 54: uint16(34701), + 55: uint16(63964), + 56: uint16(22432), + 57: uint16(24681), + 58: uint16(24903), + 59: uint16(27575), + 60: uint16(35518), + 61: uint16(37504), + 62: uint16(38577), + 63: uint16(20057), + 64: uint16(21535), + 65: uint16(28139), + 66: uint16(34093), + 67: uint16(38512), + 68: uint16(38899), + 69: uint16(39150), + 70: uint16(25558), + 71: uint16(27875), + 72: uint16(37009), + 73: uint16(20957), + 74: uint16(25033), + 75: uint16(33210), + 76: uint16(40441), + 77: uint16(20381), + 78: uint16(20506), + 79: uint16(20736), + 80: uint16(23452), + 81: uint16(24847), + 82: uint16(25087), + 83: uint16(25836), + 84: uint16(26885), + 85: uint16(27589), + 86: uint16(30097), + 87: uint16(30691), + 88: uint16(32681), + 89: uint16(33380), + 90: uint16(34191), + 91: uint16(34811), + 92: uint16(34915), + 93: uint16(35516), + }, + 75: { + 0: uint16(35696), + 1: uint16(37291), + 2: uint16(20108), + 3: uint16(20197), + 4: uint16(20234), + 5: uint16(63965), + 6: uint16(63966), + 7: uint16(22839), + 8: uint16(23016), + 9: uint16(63967), + 10: uint16(24050), + 11: uint16(24347), + 12: uint16(24411), + 13: uint16(24609), + 14: uint16(63968), + 15: uint16(63969), + 16: uint16(63970), + 17: uint16(63971), + 18: uint16(29246), + 19: uint16(29669), + 20: uint16(63972), + 21: uint16(30064), + 22: uint16(30157), + 23: uint16(63973), + 24: uint16(31227), + 25: uint16(63974), + 26: uint16(32780), + 27: uint16(32819), + 28: uint16(32900), + 29: uint16(33505), + 30: uint16(33617), + 31: uint16(63975), + 32: uint16(63976), + 33: uint16(36029), + 34: uint16(36019), + 35: uint16(36999), + 36: uint16(63977), + 37: uint16(63978), + 38: uint16(39156), + 39: uint16(39180), + 40: uint16(63979), + 41: uint16(63980), + 42: uint16(28727), + 43: uint16(30410), + 44: uint16(32714), + 45: uint16(32716), + 46: uint16(32764), + 47: uint16(35610), + 48: uint16(20154), + 49: uint16(20161), + 50: uint16(20995), + 51: uint16(21360), + 52: uint16(63981), + 53: uint16(21693), + 54: uint16(22240), + 55: uint16(23035), + 56: uint16(23493), + 57: uint16(24341), + 58: uint16(24525), + 59: uint16(28270), + 60: uint16(63982), + 61: uint16(63983), + 62: uint16(32106), + 63: uint16(33589), + 64: uint16(63984), + 65: uint16(34451), + 66: uint16(35469), + 67: uint16(63985), + 68: uint16(38765), + 69: uint16(38775), + 70: uint16(63986), + 71: uint16(63987), + 72: uint16(19968), + 73: uint16(20314), + 74: uint16(20350), + 75: uint16(22777), + 76: uint16(26085), + 77: uint16(28322), + 78: uint16(36920), + 79: uint16(37808), + 80: uint16(39353), + 81: uint16(20219), + 82: uint16(22764), + 83: uint16(22922), + 84: uint16(23001), + 85: uint16(24641), + 86: uint16(63988), + 87: uint16(63989), + 88: uint16(31252), + 89: uint16(63990), + 90: uint16(33615), + 91: uint16(36035), + 92: uint16(20837), + 93: uint16(21316), + }, + 76: { + 0: uint16(63991), + 1: uint16(63992), + 2: uint16(63993), + 3: uint16(20173), + 4: uint16(21097), + 5: uint16(23381), + 6: uint16(33471), + 7: uint16(20180), + 8: uint16(21050), + 9: uint16(21672), + 10: uint16(22985), + 11: uint16(23039), + 12: uint16(23376), + 13: uint16(23383), + 14: uint16(23388), + 15: uint16(24675), + 16: uint16(24904), + 17: uint16(28363), + 18: uint16(28825), + 19: uint16(29038), + 20: uint16(29574), + 21: uint16(29943), + 22: uint16(30133), + 23: uint16(30913), + 24: uint16(32043), + 25: uint16(32773), + 26: uint16(33258), + 27: uint16(33576), + 28: uint16(34071), + 29: uint16(34249), + 30: uint16(35566), + 31: uint16(36039), + 32: uint16(38604), + 33: uint16(20316), + 34: uint16(21242), + 35: uint16(22204), + 36: uint16(26027), + 37: uint16(26152), + 38: uint16(28796), + 39: uint16(28856), + 40: uint16(29237), + 41: uint16(32189), + 42: uint16(33421), + 43: uint16(37196), + 44: uint16(38592), + 45: uint16(40306), + 46: uint16(23409), + 47: uint16(26855), + 48: uint16(27544), + 49: uint16(28538), + 50: uint16(30430), + 51: uint16(23697), + 52: uint16(26283), + 53: uint16(28507), + 54: uint16(31668), + 55: uint16(31786), + 56: uint16(34870), + 57: uint16(38620), + 58: uint16(19976), + 59: uint16(20183), + 60: uint16(21280), + 61: uint16(22580), + 62: uint16(22715), + 63: uint16(22767), + 64: uint16(22892), + 65: uint16(23559), + 66: uint16(24115), + 67: uint16(24196), + 68: uint16(24373), + 69: uint16(25484), + 70: uint16(26290), + 71: uint16(26454), + 72: uint16(27167), + 73: uint16(27299), + 74: uint16(27404), + 75: uint16(28479), + 76: uint16(29254), + 77: uint16(63994), + 78: uint16(29520), + 79: uint16(29835), + 80: uint16(31456), + 81: uint16(31911), + 82: uint16(33144), + 83: uint16(33247), + 84: uint16(33255), + 85: uint16(33674), + 86: uint16(33900), + 87: uint16(34083), + 88: uint16(34196), + 89: uint16(34255), + 90: uint16(35037), + 91: uint16(36115), + 92: uint16(37292), + 93: uint16(38263), + }, + 77: { + 0: uint16(38556), + 1: uint16(20877), + 2: uint16(21705), + 3: uint16(22312), + 4: uint16(23472), + 5: uint16(25165), + 6: uint16(26448), + 7: uint16(26685), + 8: uint16(26771), + 9: uint16(28221), + 10: uint16(28371), + 11: uint16(28797), + 12: uint16(32289), + 13: uint16(35009), + 14: uint16(36001), + 15: uint16(36617), + 16: uint16(40779), + 17: uint16(40782), + 18: uint16(29229), + 19: uint16(31631), + 20: uint16(35533), + 21: uint16(37658), + 22: uint16(20295), + 23: uint16(20302), + 24: uint16(20786), + 25: uint16(21632), + 26: uint16(22992), + 27: uint16(24213), + 28: uint16(25269), + 29: uint16(26485), + 30: uint16(26990), + 31: uint16(27159), + 32: uint16(27822), + 33: uint16(28186), + 34: uint16(29401), + 35: uint16(29482), + 36: uint16(30141), + 37: uint16(31672), + 38: uint16(32053), + 39: uint16(33511), + 40: uint16(33785), + 41: uint16(33879), + 42: uint16(34295), + 43: uint16(35419), + 44: uint16(36015), + 45: uint16(36487), + 46: uint16(36889), + 47: uint16(37048), + 48: uint16(38606), + 49: uint16(40799), + 50: uint16(21219), + 51: uint16(21514), + 52: uint16(23265), + 53: uint16(23490), + 54: uint16(25688), + 55: uint16(25973), + 56: uint16(28404), + 57: uint16(29380), + 58: uint16(63995), + 59: uint16(30340), + 60: uint16(31309), + 61: uint16(31515), + 62: uint16(31821), + 63: uint16(32318), + 64: uint16(32735), + 65: uint16(33659), + 66: uint16(35627), + 67: uint16(36042), + 68: uint16(36196), + 69: uint16(36321), + 70: uint16(36447), + 71: uint16(36842), + 72: uint16(36857), + 73: uint16(36969), + 74: uint16(37841), + 75: uint16(20291), + 76: uint16(20346), + 77: uint16(20659), + 78: uint16(20840), + 79: uint16(20856), + 80: uint16(21069), + 81: uint16(21098), + 82: uint16(22625), + 83: uint16(22652), + 84: uint16(22880), + 85: uint16(23560), + 86: uint16(23637), + 87: uint16(24283), + 88: uint16(24731), + 89: uint16(25136), + 90: uint16(26643), + 91: uint16(27583), + 92: uint16(27656), + 93: uint16(28593), + }, + 78: { + 0: uint16(29006), + 1: uint16(29728), + 2: uint16(30000), + 3: uint16(30008), + 4: uint16(30033), + 5: uint16(30322), + 6: uint16(31564), + 7: uint16(31627), + 8: uint16(31661), + 9: uint16(31686), + 10: uint16(32399), + 11: uint16(35438), + 12: uint16(36670), + 13: uint16(36681), + 14: uint16(37439), + 15: uint16(37523), + 16: uint16(37666), + 17: uint16(37931), + 18: uint16(38651), + 19: uint16(39002), + 20: uint16(39019), + 21: uint16(39198), + 22: uint16(20999), + 23: uint16(25130), + 24: uint16(25240), + 25: uint16(27993), + 26: uint16(30308), + 27: uint16(31434), + 28: uint16(31680), + 29: uint16(32118), + 30: uint16(21344), + 31: uint16(23742), + 32: uint16(24215), + 33: uint16(28472), + 34: uint16(28857), + 35: uint16(31896), + 36: uint16(38673), + 37: uint16(39822), + 38: uint16(40670), + 39: uint16(25509), + 40: uint16(25722), + 41: uint16(34678), + 42: uint16(19969), + 43: uint16(20117), + 44: uint16(20141), + 45: uint16(20572), + 46: uint16(20597), + 47: uint16(21576), + 48: uint16(22979), + 49: uint16(23450), + 50: uint16(24128), + 51: uint16(24237), + 52: uint16(24311), + 53: uint16(24449), + 54: uint16(24773), + 55: uint16(25402), + 56: uint16(25919), + 57: uint16(25972), + 58: uint16(26060), + 59: uint16(26230), + 60: uint16(26232), + 61: uint16(26622), + 62: uint16(26984), + 63: uint16(27273), + 64: uint16(27491), + 65: uint16(27712), + 66: uint16(28096), + 67: uint16(28136), + 68: uint16(28191), + 69: uint16(28254), + 70: uint16(28702), + 71: uint16(28833), + 72: uint16(29582), + 73: uint16(29693), + 74: uint16(30010), + 75: uint16(30555), + 76: uint16(30855), + 77: uint16(31118), + 78: uint16(31243), + 79: uint16(31357), + 80: uint16(31934), + 81: uint16(32142), + 82: uint16(33351), + 83: uint16(35330), + 84: uint16(35562), + 85: uint16(35998), + 86: uint16(37165), + 87: uint16(37194), + 88: uint16(37336), + 89: uint16(37478), + 90: uint16(37580), + 91: uint16(37664), + 92: uint16(38662), + 93: uint16(38742), + }, + 79: { + 0: uint16(38748), + 1: uint16(38914), + 2: uint16(40718), + 3: uint16(21046), + 4: uint16(21137), + 5: uint16(21884), + 6: uint16(22564), + 7: uint16(24093), + 8: uint16(24351), + 9: uint16(24716), + 10: uint16(25552), + 11: uint16(26799), + 12: uint16(28639), + 13: uint16(31085), + 14: uint16(31532), + 15: uint16(33229), + 16: uint16(34234), + 17: uint16(35069), + 18: uint16(35576), + 19: uint16(36420), + 20: uint16(37261), + 21: uint16(38500), + 22: uint16(38555), + 23: uint16(38717), + 24: uint16(38988), + 25: uint16(40778), + 26: uint16(20430), + 27: uint16(20806), + 28: uint16(20939), + 29: uint16(21161), + 30: uint16(22066), + 31: uint16(24340), + 32: uint16(24427), + 33: uint16(25514), + 34: uint16(25805), + 35: uint16(26089), + 36: uint16(26177), + 37: uint16(26362), + 38: uint16(26361), + 39: uint16(26397), + 40: uint16(26781), + 41: uint16(26839), + 42: uint16(27133), + 43: uint16(28437), + 44: uint16(28526), + 45: uint16(29031), + 46: uint16(29157), + 47: uint16(29226), + 48: uint16(29866), + 49: uint16(30522), + 50: uint16(31062), + 51: uint16(31066), + 52: uint16(31199), + 53: uint16(31264), + 54: uint16(31381), + 55: uint16(31895), + 56: uint16(31967), + 57: uint16(32068), + 58: uint16(32368), + 59: uint16(32903), + 60: uint16(34299), + 61: uint16(34468), + 62: uint16(35412), + 63: uint16(35519), + 64: uint16(36249), + 65: uint16(36481), + 66: uint16(36896), + 67: uint16(36973), + 68: uint16(37347), + 69: uint16(38459), + 70: uint16(38613), + 71: uint16(40165), + 72: uint16(26063), + 73: uint16(31751), + 74: uint16(36275), + 75: uint16(37827), + 76: uint16(23384), + 77: uint16(23562), + 78: uint16(21330), + 79: uint16(25305), + 80: uint16(29469), + 81: uint16(20519), + 82: uint16(23447), + 83: uint16(24478), + 84: uint16(24752), + 85: uint16(24939), + 86: uint16(26837), + 87: uint16(28121), + 88: uint16(29742), + 89: uint16(31278), + 90: uint16(32066), + 91: uint16(32156), + 92: uint16(32305), + 93: uint16(33131), + }, + 80: { + 0: uint16(36394), + 1: uint16(36405), + 2: uint16(37758), + 3: uint16(37912), + 4: uint16(20304), + 5: uint16(22352), + 6: uint16(24038), + 7: uint16(24231), + 8: uint16(25387), + 9: uint16(32618), + 10: uint16(20027), + 11: uint16(20303), + 12: uint16(20367), + 13: uint16(20570), + 14: uint16(23005), + 15: uint16(32964), + 16: uint16(21610), + 17: uint16(21608), + 18: uint16(22014), + 19: uint16(22863), + 20: uint16(23449), + 21: uint16(24030), + 22: uint16(24282), + 23: uint16(26205), + 24: uint16(26417), + 25: uint16(26609), + 26: uint16(26666), + 27: uint16(27880), + 28: uint16(27954), + 29: uint16(28234), + 30: uint16(28557), + 31: uint16(28855), + 32: uint16(29664), + 33: uint16(30087), + 34: uint16(31820), + 35: uint16(32002), + 36: uint16(32044), + 37: uint16(32162), + 38: uint16(33311), + 39: uint16(34523), + 40: uint16(35387), + 41: uint16(35461), + 42: uint16(36208), + 43: uint16(36490), + 44: uint16(36659), + 45: uint16(36913), + 46: uint16(37198), + 47: uint16(37202), + 48: uint16(37956), + 49: uint16(39376), + 50: uint16(31481), + 51: uint16(31909), + 52: uint16(20426), + 53: uint16(20737), + 54: uint16(20934), + 55: uint16(22472), + 56: uint16(23535), + 57: uint16(23803), + 58: uint16(26201), + 59: uint16(27197), + 60: uint16(27994), + 61: uint16(28310), + 62: uint16(28652), + 63: uint16(28940), + 64: uint16(30063), + 65: uint16(31459), + 66: uint16(34850), + 67: uint16(36897), + 68: uint16(36981), + 69: uint16(38603), + 70: uint16(39423), + 71: uint16(33537), + 72: uint16(20013), + 73: uint16(20210), + 74: uint16(34886), + 75: uint16(37325), + 76: uint16(21373), + 77: uint16(27355), + 78: uint16(26987), + 79: uint16(27713), + 80: uint16(33914), + 81: uint16(22686), + 82: uint16(24974), + 83: uint16(26366), + 84: uint16(25327), + 85: uint16(28893), + 86: uint16(29969), + 87: uint16(30151), + 88: uint16(32338), + 89: uint16(33976), + 90: uint16(35657), + 91: uint16(36104), + 92: uint16(20043), + 93: uint16(21482), + }, + 81: { + 0: uint16(21675), + 1: uint16(22320), + 2: uint16(22336), + 3: uint16(24535), + 4: uint16(25345), + 5: uint16(25351), + 6: uint16(25711), + 7: uint16(25903), + 8: uint16(26088), + 9: uint16(26234), + 10: uint16(26525), + 11: uint16(26547), + 12: uint16(27490), + 13: uint16(27744), + 14: uint16(27802), + 15: uint16(28460), + 16: uint16(30693), + 17: uint16(30757), + 18: uint16(31049), + 19: uint16(31063), + 20: uint16(32025), + 21: uint16(32930), + 22: uint16(33026), + 23: uint16(33267), + 24: uint16(33437), + 25: uint16(33463), + 26: uint16(34584), + 27: uint16(35468), + 28: uint16(63996), + 29: uint16(36100), + 30: uint16(36286), + 31: uint16(36978), + 32: uint16(30452), + 33: uint16(31257), + 34: uint16(31287), + 35: uint16(32340), + 36: uint16(32887), + 37: uint16(21767), + 38: uint16(21972), + 39: uint16(22645), + 40: uint16(25391), + 41: uint16(25634), + 42: uint16(26185), + 43: uint16(26187), + 44: uint16(26733), + 45: uint16(27035), + 46: uint16(27524), + 47: uint16(27941), + 48: uint16(28337), + 49: uint16(29645), + 50: uint16(29800), + 51: uint16(29857), + 52: uint16(30043), + 53: uint16(30137), + 54: uint16(30433), + 55: uint16(30494), + 56: uint16(30603), + 57: uint16(31206), + 58: uint16(32265), + 59: uint16(32285), + 60: uint16(33275), + 61: uint16(34095), + 62: uint16(34967), + 63: uint16(35386), + 64: uint16(36049), + 65: uint16(36587), + 66: uint16(36784), + 67: uint16(36914), + 68: uint16(37805), + 69: uint16(38499), + 70: uint16(38515), + 71: uint16(38663), + 72: uint16(20356), + 73: uint16(21489), + 74: uint16(23018), + 75: uint16(23241), + 76: uint16(24089), + 77: uint16(26702), + 78: uint16(29894), + 79: uint16(30142), + 80: uint16(31209), + 81: uint16(31378), + 82: uint16(33187), + 83: uint16(34541), + 84: uint16(36074), + 85: uint16(36300), + 86: uint16(36845), + 87: uint16(26015), + 88: uint16(26389), + 89: uint16(63997), + 90: uint16(22519), + 91: uint16(28503), + 92: uint16(32221), + 93: uint16(36655), + }, + 82: { + 0: uint16(37878), + 1: uint16(38598), + 2: uint16(24501), + 3: uint16(25074), + 4: uint16(28548), + 5: uint16(19988), + 6: uint16(20376), + 7: uint16(20511), + 8: uint16(21449), + 9: uint16(21983), + 10: uint16(23919), + 11: uint16(24046), + 12: uint16(27425), + 13: uint16(27492), + 14: uint16(30923), + 15: uint16(31642), + 16: uint16(63998), + 17: uint16(36425), + 18: uint16(36554), + 19: uint16(36974), + 20: uint16(25417), + 21: uint16(25662), + 22: uint16(30528), + 23: uint16(31364), + 24: uint16(37679), + 25: uint16(38015), + 26: uint16(40810), + 27: uint16(25776), + 28: uint16(28591), + 29: uint16(29158), + 30: uint16(29864), + 31: uint16(29914), + 32: uint16(31428), + 33: uint16(31762), + 34: uint16(32386), + 35: uint16(31922), + 36: uint16(32408), + 37: uint16(35738), + 38: uint16(36106), + 39: uint16(38013), + 40: uint16(39184), + 41: uint16(39244), + 42: uint16(21049), + 43: uint16(23519), + 44: uint16(25830), + 45: uint16(26413), + 46: uint16(32046), + 47: uint16(20717), + 48: uint16(21443), + 49: uint16(22649), + 50: uint16(24920), + 51: uint16(24921), + 52: uint16(25082), + 53: uint16(26028), + 54: uint16(31449), + 55: uint16(35730), + 56: uint16(35734), + 57: uint16(20489), + 58: uint16(20513), + 59: uint16(21109), + 60: uint16(21809), + 61: uint16(23100), + 62: uint16(24288), + 63: uint16(24432), + 64: uint16(24884), + 65: uint16(25950), + 66: uint16(26124), + 67: uint16(26166), + 68: uint16(26274), + 69: uint16(27085), + 70: uint16(28356), + 71: uint16(28466), + 72: uint16(29462), + 73: uint16(30241), + 74: uint16(31379), + 75: uint16(33081), + 76: uint16(33369), + 77: uint16(33750), + 78: uint16(33980), + 79: uint16(20661), + 80: uint16(22512), + 81: uint16(23488), + 82: uint16(23528), + 83: uint16(24425), + 84: uint16(25505), + 85: uint16(30758), + 86: uint16(32181), + 87: uint16(33756), + 88: uint16(34081), + 89: uint16(37319), + 90: uint16(37365), + 91: uint16(20874), + 92: uint16(26613), + 93: uint16(31574), + }, + 83: { + 0: uint16(36012), + 1: uint16(20932), + 2: uint16(22971), + 3: uint16(24765), + 4: uint16(34389), + 5: uint16(20508), + 6: uint16(63999), + 7: uint16(21076), + 8: uint16(23610), + 9: uint16(24957), + 10: uint16(25114), + 11: uint16(25299), + 12: uint16(25842), + 13: uint16(26021), + 14: uint16(28364), + 15: uint16(30240), + 16: uint16(33034), + 17: uint16(36448), + 18: uint16(38495), + 19: uint16(38587), + 20: uint16(20191), + 21: uint16(21315), + 22: uint16(21912), + 23: uint16(22825), + 24: uint16(24029), + 25: uint16(25797), + 26: uint16(27849), + 27: uint16(28154), + 28: uint16(29588), + 29: uint16(31359), + 30: uint16(33307), + 31: uint16(34214), + 32: uint16(36068), + 33: uint16(36368), + 34: uint16(36983), + 35: uint16(37351), + 36: uint16(38369), + 37: uint16(38433), + 38: uint16(38854), + 39: uint16(20984), + 40: uint16(21746), + 41: uint16(21894), + 42: uint16(24505), + 43: uint16(25764), + 44: uint16(28552), + 45: uint16(32180), + 46: uint16(36639), + 47: uint16(36685), + 48: uint16(37941), + 49: uint16(20681), + 50: uint16(23574), + 51: uint16(27838), + 52: uint16(28155), + 53: uint16(29979), + 54: uint16(30651), + 55: uint16(31805), + 56: uint16(31844), + 57: uint16(35449), + 58: uint16(35522), + 59: uint16(22558), + 60: uint16(22974), + 61: uint16(24086), + 62: uint16(25463), + 63: uint16(29266), + 64: uint16(30090), + 65: uint16(30571), + 66: uint16(35548), + 67: uint16(36028), + 68: uint16(36626), + 69: uint16(24307), + 70: uint16(26228), + 71: uint16(28152), + 72: uint16(32893), + 73: uint16(33729), + 74: uint16(35531), + 75: uint16(38737), + 76: uint16(39894), + 77: uint16(64000), + 78: uint16(21059), + 79: uint16(26367), + 80: uint16(28053), + 81: uint16(28399), + 82: uint16(32224), + 83: uint16(35558), + 84: uint16(36910), + 85: uint16(36958), + 86: uint16(39636), + 87: uint16(21021), + 88: uint16(21119), + 89: uint16(21736), + 90: uint16(24980), + 91: uint16(25220), + 92: uint16(25307), + 93: uint16(26786), + }, + 84: { + 0: uint16(26898), + 1: uint16(26970), + 2: uint16(27189), + 3: uint16(28818), + 4: uint16(28966), + 5: uint16(30813), + 6: uint16(30977), + 7: uint16(30990), + 8: uint16(31186), + 9: uint16(31245), + 10: uint16(32918), + 11: uint16(33400), + 12: uint16(33493), + 13: uint16(33609), + 14: uint16(34121), + 15: uint16(35970), + 16: uint16(36229), + 17: uint16(37218), + 18: uint16(37259), + 19: uint16(37294), + 20: uint16(20419), + 21: uint16(22225), + 22: uint16(29165), + 23: uint16(30679), + 24: uint16(34560), + 25: uint16(35320), + 26: uint16(23544), + 27: uint16(24534), + 28: uint16(26449), + 29: uint16(37032), + 30: uint16(21474), + 31: uint16(22618), + 32: uint16(23541), + 33: uint16(24740), + 34: uint16(24961), + 35: uint16(25696), + 36: uint16(32317), + 37: uint16(32880), + 38: uint16(34085), + 39: uint16(37507), + 40: uint16(25774), + 41: uint16(20652), + 42: uint16(23828), + 43: uint16(26368), + 44: uint16(22684), + 45: uint16(25277), + 46: uint16(25512), + 47: uint16(26894), + 48: uint16(27000), + 49: uint16(27166), + 50: uint16(28267), + 51: uint16(30394), + 52: uint16(31179), + 53: uint16(33467), + 54: uint16(33833), + 55: uint16(35535), + 56: uint16(36264), + 57: uint16(36861), + 58: uint16(37138), + 59: uint16(37195), + 60: uint16(37276), + 61: uint16(37648), + 62: uint16(37656), + 63: uint16(37786), + 64: uint16(38619), + 65: uint16(39478), + 66: uint16(39949), + 67: uint16(19985), + 68: uint16(30044), + 69: uint16(31069), + 70: uint16(31482), + 71: uint16(31569), + 72: uint16(31689), + 73: uint16(32302), + 74: uint16(33988), + 75: uint16(36441), + 76: uint16(36468), + 77: uint16(36600), + 78: uint16(36880), + 79: uint16(26149), + 80: uint16(26943), + 81: uint16(29763), + 82: uint16(20986), + 83: uint16(26414), + 84: uint16(40668), + 85: uint16(20805), + 86: uint16(24544), + 87: uint16(27798), + 88: uint16(34802), + 89: uint16(34909), + 90: uint16(34935), + 91: uint16(24756), + 92: uint16(33205), + 93: uint16(33795), + }, + 85: { + 0: uint16(36101), + 1: uint16(21462), + 2: uint16(21561), + 3: uint16(22068), + 4: uint16(23094), + 5: uint16(23601), + 6: uint16(28810), + 7: uint16(32736), + 8: uint16(32858), + 9: uint16(33030), + 10: uint16(33261), + 11: uint16(36259), + 12: uint16(37257), + 13: uint16(39519), + 14: uint16(40434), + 15: uint16(20596), + 16: uint16(20164), + 17: uint16(21408), + 18: uint16(24827), + 19: uint16(28204), + 20: uint16(23652), + 21: uint16(20360), + 22: uint16(20516), + 23: uint16(21988), + 24: uint16(23769), + 25: uint16(24159), + 26: uint16(24677), + 27: uint16(26772), + 28: uint16(27835), + 29: uint16(28100), + 30: uint16(29118), + 31: uint16(30164), + 32: uint16(30196), + 33: uint16(30305), + 34: uint16(31258), + 35: uint16(31305), + 36: uint16(32199), + 37: uint16(32251), + 38: uint16(32622), + 39: uint16(33268), + 40: uint16(34473), + 41: uint16(36636), + 42: uint16(38601), + 43: uint16(39347), + 44: uint16(40786), + 45: uint16(21063), + 46: uint16(21189), + 47: uint16(39149), + 48: uint16(35242), + 49: uint16(19971), + 50: uint16(26578), + 51: uint16(28422), + 52: uint16(20405), + 53: uint16(23522), + 54: uint16(26517), + 55: uint16(27784), + 56: uint16(28024), + 57: uint16(29723), + 58: uint16(30759), + 59: uint16(37341), + 60: uint16(37756), + 61: uint16(34756), + 62: uint16(31204), + 63: uint16(31281), + 64: uint16(24555), + 65: uint16(20182), + 66: uint16(21668), + 67: uint16(21822), + 68: uint16(22702), + 69: uint16(22949), + 70: uint16(24816), + 71: uint16(25171), + 72: uint16(25302), + 73: uint16(26422), + 74: uint16(26965), + 75: uint16(33333), + 76: uint16(38464), + 77: uint16(39345), + 78: uint16(39389), + 79: uint16(20524), + 80: uint16(21331), + 81: uint16(21828), + 82: uint16(22396), + 83: uint16(64001), + 84: uint16(25176), + 85: uint16(64002), + 86: uint16(25826), + 87: uint16(26219), + 88: uint16(26589), + 89: uint16(28609), + 90: uint16(28655), + 91: uint16(29730), + 92: uint16(29752), + 93: uint16(35351), + }, + 86: { + 0: uint16(37944), + 1: uint16(21585), + 2: uint16(22022), + 3: uint16(22374), + 4: uint16(24392), + 5: uint16(24986), + 6: uint16(27470), + 7: uint16(28760), + 8: uint16(28845), + 9: uint16(32187), + 10: uint16(35477), + 11: uint16(22890), + 12: uint16(33067), + 13: uint16(25506), + 14: uint16(30472), + 15: uint16(32829), + 16: uint16(36010), + 17: uint16(22612), + 18: uint16(25645), + 19: uint16(27067), + 20: uint16(23445), + 21: uint16(24081), + 22: uint16(28271), + 23: uint16(64003), + 24: uint16(34153), + 25: uint16(20812), + 26: uint16(21488), + 27: uint16(22826), + 28: uint16(24608), + 29: uint16(24907), + 30: uint16(27526), + 31: uint16(27760), + 32: uint16(27888), + 33: uint16(31518), + 34: uint16(32974), + 35: uint16(33492), + 36: uint16(36294), + 37: uint16(37040), + 38: uint16(39089), + 39: uint16(64004), + 40: uint16(25799), + 41: uint16(28580), + 42: uint16(25745), + 43: uint16(25860), + 44: uint16(20814), + 45: uint16(21520), + 46: uint16(22303), + 47: uint16(35342), + 48: uint16(24927), + 49: uint16(26742), + 50: uint16(64005), + 51: uint16(30171), + 52: uint16(31570), + 53: uint16(32113), + 54: uint16(36890), + 55: uint16(22534), + 56: uint16(27084), + 57: uint16(33151), + 58: uint16(35114), + 59: uint16(36864), + 60: uint16(38969), + 61: uint16(20600), + 62: uint16(22871), + 63: uint16(22956), + 64: uint16(25237), + 65: uint16(36879), + 66: uint16(39722), + 67: uint16(24925), + 68: uint16(29305), + 69: uint16(38358), + 70: uint16(22369), + 71: uint16(23110), + 72: uint16(24052), + 73: uint16(25226), + 74: uint16(25773), + 75: uint16(25850), + 76: uint16(26487), + 77: uint16(27874), + 78: uint16(27966), + 79: uint16(29228), + 80: uint16(29750), + 81: uint16(30772), + 82: uint16(32631), + 83: uint16(33453), + 84: uint16(36315), + 85: uint16(38935), + 86: uint16(21028), + 87: uint16(22338), + 88: uint16(26495), + 89: uint16(29256), + 90: uint16(29923), + 91: uint16(36009), + 92: uint16(36774), + 93: uint16(37393), + }, + 87: { + 0: uint16(38442), + 1: uint16(20843), + 2: uint16(21485), + 3: uint16(25420), + 4: uint16(20329), + 5: uint16(21764), + 6: uint16(24726), + 7: uint16(25943), + 8: uint16(27803), + 9: uint16(28031), + 10: uint16(29260), + 11: uint16(29437), + 12: uint16(31255), + 13: uint16(35207), + 14: uint16(35997), + 15: uint16(24429), + 16: uint16(28558), + 17: uint16(28921), + 18: uint16(33192), + 19: uint16(24846), + 20: uint16(20415), + 21: uint16(20559), + 22: uint16(25153), + 23: uint16(29255), + 24: uint16(31687), + 25: uint16(32232), + 26: uint16(32745), + 27: uint16(36941), + 28: uint16(38829), + 29: uint16(39449), + 30: uint16(36022), + 31: uint16(22378), + 32: uint16(24179), + 33: uint16(26544), + 34: uint16(33805), + 35: uint16(35413), + 36: uint16(21536), + 37: uint16(23318), + 38: uint16(24163), + 39: uint16(24290), + 40: uint16(24330), + 41: uint16(25987), + 42: uint16(32954), + 43: uint16(34109), + 44: uint16(38281), + 45: uint16(38491), + 46: uint16(20296), + 47: uint16(21253), + 48: uint16(21261), + 49: uint16(21263), + 50: uint16(21638), + 51: uint16(21754), + 52: uint16(22275), + 53: uint16(24067), + 54: uint16(24598), + 55: uint16(25243), + 56: uint16(25265), + 57: uint16(25429), + 58: uint16(64006), + 59: uint16(27873), + 60: uint16(28006), + 61: uint16(30129), + 62: uint16(30770), + 63: uint16(32990), + 64: uint16(33071), + 65: uint16(33502), + 66: uint16(33889), + 67: uint16(33970), + 68: uint16(34957), + 69: uint16(35090), + 70: uint16(36875), + 71: uint16(37610), + 72: uint16(39165), + 73: uint16(39825), + 74: uint16(24133), + 75: uint16(26292), + 76: uint16(26333), + 77: uint16(28689), + 78: uint16(29190), + 79: uint16(64007), + 80: uint16(20469), + 81: uint16(21117), + 82: uint16(24426), + 83: uint16(24915), + 84: uint16(26451), + 85: uint16(27161), + 86: uint16(28418), + 87: uint16(29922), + 88: uint16(31080), + 89: uint16(34920), + 90: uint16(35961), + 91: uint16(39111), + 92: uint16(39108), + 93: uint16(39491), + }, + 88: { + 0: uint16(21697), + 1: uint16(31263), + 2: uint16(26963), + 3: uint16(35575), + 4: uint16(35914), + 5: uint16(39080), + 6: uint16(39342), + 7: uint16(24444), + 8: uint16(25259), + 9: uint16(30130), + 10: uint16(30382), + 11: uint16(34987), + 12: uint16(36991), + 13: uint16(38466), + 14: uint16(21305), + 15: uint16(24380), + 16: uint16(24517), + 17: uint16(27852), + 18: uint16(29644), + 19: uint16(30050), + 20: uint16(30091), + 21: uint16(31558), + 22: uint16(33534), + 23: uint16(39325), + 24: uint16(20047), + 25: uint16(36924), + 26: uint16(19979), + 27: uint16(20309), + 28: uint16(21414), + 29: uint16(22799), + 30: uint16(24264), + 31: uint16(26160), + 32: uint16(27827), + 33: uint16(29781), + 34: uint16(33655), + 35: uint16(34662), + 36: uint16(36032), + 37: uint16(36944), + 38: uint16(38686), + 39: uint16(39957), + 40: uint16(22737), + 41: uint16(23416), + 42: uint16(34384), + 43: uint16(35604), + 44: uint16(40372), + 45: uint16(23506), + 46: uint16(24680), + 47: uint16(24717), + 48: uint16(26097), + 49: uint16(27735), + 50: uint16(28450), + 51: uint16(28579), + 52: uint16(28698), + 53: uint16(32597), + 54: uint16(32752), + 55: uint16(38289), + 56: uint16(38290), + 57: uint16(38480), + 58: uint16(38867), + 59: uint16(21106), + 60: uint16(36676), + 61: uint16(20989), + 62: uint16(21547), + 63: uint16(21688), + 64: uint16(21859), + 65: uint16(21898), + 66: uint16(27323), + 67: uint16(28085), + 68: uint16(32216), + 69: uint16(33382), + 70: uint16(37532), + 71: uint16(38519), + 72: uint16(40569), + 73: uint16(21512), + 74: uint16(21704), + 75: uint16(30418), + 76: uint16(34532), + 77: uint16(38308), + 78: uint16(38356), + 79: uint16(38492), + 80: uint16(20130), + 81: uint16(20233), + 82: uint16(23022), + 83: uint16(23270), + 84: uint16(24055), + 85: uint16(24658), + 86: uint16(25239), + 87: uint16(26477), + 88: uint16(26689), + 89: uint16(27782), + 90: uint16(28207), + 91: uint16(32568), + 92: uint16(32923), + 93: uint16(33322), + }, + 89: { + 0: uint16(64008), + 1: uint16(64009), + 2: uint16(38917), + 3: uint16(20133), + 4: uint16(20565), + 5: uint16(21683), + 6: uint16(22419), + 7: uint16(22874), + 8: uint16(23401), + 9: uint16(23475), + 10: uint16(25032), + 11: uint16(26999), + 12: uint16(28023), + 13: uint16(28707), + 14: uint16(34809), + 15: uint16(35299), + 16: uint16(35442), + 17: uint16(35559), + 18: uint16(36994), + 19: uint16(39405), + 20: uint16(39608), + 21: uint16(21182), + 22: uint16(26680), + 23: uint16(20502), + 24: uint16(24184), + 25: uint16(26447), + 26: uint16(33607), + 27: uint16(34892), + 28: uint16(20139), + 29: uint16(21521), + 30: uint16(22190), + 31: uint16(29670), + 32: uint16(37141), + 33: uint16(38911), + 34: uint16(39177), + 35: uint16(39255), + 36: uint16(39321), + 37: uint16(22099), + 38: uint16(22687), + 39: uint16(34395), + 40: uint16(35377), + 41: uint16(25010), + 42: uint16(27382), + 43: uint16(29563), + 44: uint16(36562), + 45: uint16(27463), + 46: uint16(38570), + 47: uint16(39511), + 48: uint16(22869), + 49: uint16(29184), + 50: uint16(36203), + 51: uint16(38761), + 52: uint16(20436), + 53: uint16(23796), + 54: uint16(24358), + 55: uint16(25080), + 56: uint16(26203), + 57: uint16(27883), + 58: uint16(28843), + 59: uint16(29572), + 60: uint16(29625), + 61: uint16(29694), + 62: uint16(30505), + 63: uint16(30541), + 64: uint16(32067), + 65: uint16(32098), + 66: uint16(32291), + 67: uint16(33335), + 68: uint16(34898), + 69: uint16(64010), + 70: uint16(36066), + 71: uint16(37449), + 72: uint16(39023), + 73: uint16(23377), + 74: uint16(31348), + 75: uint16(34880), + 76: uint16(38913), + 77: uint16(23244), + 78: uint16(20448), + 79: uint16(21332), + 80: uint16(22846), + 81: uint16(23805), + 82: uint16(25406), + 83: uint16(28025), + 84: uint16(29433), + 85: uint16(33029), + 86: uint16(33031), + 87: uint16(33698), + 88: uint16(37583), + 89: uint16(38960), + 90: uint16(20136), + 91: uint16(20804), + 92: uint16(21009), + 93: uint16(22411), + }, + 90: { + 0: uint16(24418), + 1: uint16(27842), + 2: uint16(28366), + 3: uint16(28677), + 4: uint16(28752), + 5: uint16(28847), + 6: uint16(29074), + 7: uint16(29673), + 8: uint16(29801), + 9: uint16(33610), + 10: uint16(34722), + 11: uint16(34913), + 12: uint16(36872), + 13: uint16(37026), + 14: uint16(37795), + 15: uint16(39336), + 16: uint16(20846), + 17: uint16(24407), + 18: uint16(24800), + 19: uint16(24935), + 20: uint16(26291), + 21: uint16(34137), + 22: uint16(36426), + 23: uint16(37295), + 24: uint16(38795), + 25: uint16(20046), + 26: uint16(20114), + 27: uint16(21628), + 28: uint16(22741), + 29: uint16(22778), + 30: uint16(22909), + 31: uint16(23733), + 32: uint16(24359), + 33: uint16(25142), + 34: uint16(25160), + 35: uint16(26122), + 36: uint16(26215), + 37: uint16(27627), + 38: uint16(28009), + 39: uint16(28111), + 40: uint16(28246), + 41: uint16(28408), + 42: uint16(28564), + 43: uint16(28640), + 44: uint16(28649), + 45: uint16(28765), + 46: uint16(29392), + 47: uint16(29733), + 48: uint16(29786), + 49: uint16(29920), + 50: uint16(30355), + 51: uint16(31068), + 52: uint16(31946), + 53: uint16(32286), + 54: uint16(32993), + 55: uint16(33446), + 56: uint16(33899), + 57: uint16(33983), + 58: uint16(34382), + 59: uint16(34399), + 60: uint16(34676), + 61: uint16(35703), + 62: uint16(35946), + 63: uint16(37804), + 64: uint16(38912), + 65: uint16(39013), + 66: uint16(24785), + 67: uint16(25110), + 68: uint16(37239), + 69: uint16(23130), + 70: uint16(26127), + 71: uint16(28151), + 72: uint16(28222), + 73: uint16(29759), + 74: uint16(39746), + 75: uint16(24573), + 76: uint16(24794), + 77: uint16(31503), + 78: uint16(21700), + 79: uint16(24344), + 80: uint16(27742), + 81: uint16(27859), + 82: uint16(27946), + 83: uint16(28888), + 84: uint16(32005), + 85: uint16(34425), + 86: uint16(35340), + 87: uint16(40251), + 88: uint16(21270), + 89: uint16(21644), + 90: uint16(23301), + 91: uint16(27194), + 92: uint16(28779), + 93: uint16(30069), + }, + 91: { + 0: uint16(31117), + 1: uint16(31166), + 2: uint16(33457), + 3: uint16(33775), + 4: uint16(35441), + 5: uint16(35649), + 6: uint16(36008), + 7: uint16(38772), + 8: uint16(64011), + 9: uint16(25844), + 10: uint16(25899), + 11: uint16(30906), + 12: uint16(30907), + 13: uint16(31339), + 14: uint16(20024), + 15: uint16(21914), + 16: uint16(22864), + 17: uint16(23462), + 18: uint16(24187), + 19: uint16(24739), + 20: uint16(25563), + 21: uint16(27489), + 22: uint16(26213), + 23: uint16(26707), + 24: uint16(28185), + 25: uint16(29029), + 26: uint16(29872), + 27: uint16(32008), + 28: uint16(36996), + 29: uint16(39529), + 30: uint16(39973), + 31: uint16(27963), + 32: uint16(28369), + 33: uint16(29502), + 34: uint16(35905), + 35: uint16(38346), + 36: uint16(20976), + 37: uint16(24140), + 38: uint16(24488), + 39: uint16(24653), + 40: uint16(24822), + 41: uint16(24880), + 42: uint16(24908), + 43: uint16(26179), + 44: uint16(26180), + 45: uint16(27045), + 46: uint16(27841), + 47: uint16(28255), + 48: uint16(28361), + 49: uint16(28514), + 50: uint16(29004), + 51: uint16(29852), + 52: uint16(30343), + 53: uint16(31681), + 54: uint16(31783), + 55: uint16(33618), + 56: uint16(34647), + 57: uint16(36945), + 58: uint16(38541), + 59: uint16(40643), + 60: uint16(21295), + 61: uint16(22238), + 62: uint16(24315), + 63: uint16(24458), + 64: uint16(24674), + 65: uint16(24724), + 66: uint16(25079), + 67: uint16(26214), + 68: uint16(26371), + 69: uint16(27292), + 70: uint16(28142), + 71: uint16(28590), + 72: uint16(28784), + 73: uint16(29546), + 74: uint16(32362), + 75: uint16(33214), + 76: uint16(33588), + 77: uint16(34516), + 78: uint16(35496), + 79: uint16(36036), + 80: uint16(21123), + 81: uint16(29554), + 82: uint16(23446), + 83: uint16(27243), + 84: uint16(37892), + 85: uint16(21742), + 86: uint16(22150), + 87: uint16(23389), + 88: uint16(25928), + 89: uint16(25989), + 90: uint16(26313), + 91: uint16(26783), + 92: uint16(28045), + 93: uint16(28102), + }, + 92: { + 0: uint16(29243), + 1: uint16(32948), + 2: uint16(37237), + 3: uint16(39501), + 4: uint16(20399), + 5: uint16(20505), + 6: uint16(21402), + 7: uint16(21518), + 8: uint16(21564), + 9: uint16(21897), + 10: uint16(21957), + 11: uint16(24127), + 12: uint16(24460), + 13: uint16(26429), + 14: uint16(29030), + 15: uint16(29661), + 16: uint16(36869), + 17: uint16(21211), + 18: uint16(21235), + 19: uint16(22628), + 20: uint16(22734), + 21: uint16(28932), + 22: uint16(29071), + 23: uint16(29179), + 24: uint16(34224), + 25: uint16(35347), + 26: uint16(26248), + 27: uint16(34216), + 28: uint16(21927), + 29: uint16(26244), + 30: uint16(29002), + 31: uint16(33841), + 32: uint16(21321), + 33: uint16(21913), + 34: uint16(27585), + 35: uint16(24409), + 36: uint16(24509), + 37: uint16(25582), + 38: uint16(26249), + 39: uint16(28999), + 40: uint16(35569), + 41: uint16(36637), + 42: uint16(40638), + 43: uint16(20241), + 44: uint16(25658), + 45: uint16(28875), + 46: uint16(30054), + 47: uint16(34407), + 48: uint16(24676), + 49: uint16(35662), + 50: uint16(40440), + 51: uint16(20807), + 52: uint16(20982), + 53: uint16(21256), + 54: uint16(27958), + 55: uint16(33016), + 56: uint16(40657), + 57: uint16(26133), + 58: uint16(27427), + 59: uint16(28824), + 60: uint16(30165), + 61: uint16(21507), + 62: uint16(23673), + 63: uint16(32007), + 64: uint16(35350), + 65: uint16(27424), + 66: uint16(27453), + 67: uint16(27462), + 68: uint16(21560), + 69: uint16(24688), + 70: uint16(27965), + 71: uint16(32725), + 72: uint16(33288), + 73: uint16(20694), + 74: uint16(20958), + 75: uint16(21916), + 76: uint16(22123), + 77: uint16(22221), + 78: uint16(23020), + 79: uint16(23305), + 80: uint16(24076), + 81: uint16(24985), + 82: uint16(24984), + 83: uint16(25137), + 84: uint16(26206), + 85: uint16(26342), + 86: uint16(29081), + 87: uint16(29113), + 88: uint16(29114), + 89: uint16(29351), + 90: uint16(31143), + 91: uint16(31232), + 92: uint16(32690), + 93: uint16(35440), + }, +} + +var _rev_jis = [6879]uint16{ + 0: uint16(31), + 1: uint16(80), + 2: uint16(81), + 3: uint16(87), + 4: uint16(14), + 5: uint16(299), + 6: uint16(74), + 7: uint16(61), + 8: uint16(12), + 9: uint16(344), + 10: uint16(62), + 11: uint16(63), + 12: uint16(1280), + 13: uint16(1281), + 14: uint16(1282), + 15: uint16(1283), + 16: uint16(1284), + 17: uint16(1285), + 18: uint16(1286), + 19: uint16(1287), + 20: uint16(1288), + 21: uint16(1289), + 22: uint16(1290), + 23: uint16(1291), + 24: uint16(1292), + 25: uint16(1293), + 26: uint16(1294), + 27: uint16(1295), + 28: uint16(1296), + 29: uint16(1297), + 30: uint16(1298), + 31: uint16(1299), + 32: uint16(1300), + 33: uint16(1301), + 34: uint16(1302), + 35: uint16(1303), + 36: uint16(1312), + 37: uint16(1313), + 38: uint16(1314), + 39: uint16(1315), + 40: uint16(1316), + 41: uint16(1317), + 42: uint16(1318), + 43: uint16(1319), + 44: uint16(1320), + 45: uint16(1321), + 46: uint16(1322), + 47: uint16(1323), + 48: uint16(1324), + 49: uint16(1325), + 50: uint16(1326), + 51: uint16(1327), + 52: uint16(1328), + 53: uint16(1329), + 54: uint16(1330), + 55: uint16(1331), + 56: uint16(1332), + 57: uint16(1333), + 58: uint16(1334), + 59: uint16(1335), + 60: uint16(1542), + 61: uint16(1536), + 62: uint16(1537), + 63: uint16(1538), + 64: uint16(1539), + 65: uint16(1540), + 66: uint16(1541), + 67: uint16(1543), + 68: uint16(1544), + 69: uint16(1545), + 70: uint16(1546), + 71: uint16(1547), + 72: uint16(1548), + 73: uint16(1549), + 74: uint16(1550), + 75: uint16(1551), + 76: uint16(1552), + 77: uint16(1553), + 78: uint16(1554), + 79: uint16(1555), + 80: uint16(1556), + 81: uint16(1557), + 82: uint16(1558), + 83: uint16(1559), + 84: uint16(1560), + 85: uint16(1561), + 86: uint16(1562), + 87: uint16(1563), + 88: uint16(1564), + 89: uint16(1565), + 90: uint16(1566), + 91: uint16(1567), + 92: uint16(1568), + 93: uint16(1584), + 94: uint16(1585), + 95: uint16(1586), + 96: uint16(1587), + 97: uint16(1588), + 98: uint16(1589), + 99: uint16(1591), + 100: uint16(1592), + 101: uint16(1593), + 102: uint16(1594), + 103: uint16(1595), + 104: uint16(1596), + 105: uint16(1597), + 106: uint16(1598), + 107: uint16(1599), + 108: uint16(1600), + 109: uint16(1601), + 110: uint16(1602), + 111: uint16(1603), + 112: uint16(1604), + 113: uint16(1605), + 114: uint16(1606), + 115: uint16(1607), + 116: uint16(1608), + 117: uint16(1609), + 118: uint16(1610), + 119: uint16(1611), + 120: uint16(1612), + 121: uint16(1613), + 122: uint16(1614), + 123: uint16(1615), + 124: uint16(1616), + 125: uint16(1590), + 126: uint16(29), + 127: uint16(28), + 128: uint16(33), + 129: uint16(37), + 130: uint16(38), + 131: uint16(39), + 132: uint16(40), + 133: uint16(342), + 134: uint16(343), + 135: uint16(36), + 136: uint16(35), + 137: uint16(338), + 138: uint16(75), + 139: uint16(76), + 140: uint16(263), + 141: uint16(77), + 142: uint16(337), + 143: uint16(266), + 144: uint16(267), + 145: uint16(265), + 146: uint16(268), + 147: uint16(300), + 148: uint16(301), + 149: uint16(302), + 150: uint16(318), + 151: uint16(303), + 152: uint16(319), + 153: uint16(281), + 154: uint16(282), + 155: uint16(60), + 156: uint16(324), + 157: uint16(326), + 158: uint16(70), + 159: uint16(315), + 160: uint16(297), + 161: uint16(298), + 162: uint16(288), + 163: uint16(287), + 164: uint16(328), + 165: uint16(329), + 166: uint16(71), + 167: uint16(327), + 168: uint16(325), + 169: uint16(321), + 170: uint16(65), + 171: uint16(320), + 172: uint16(68), + 173: uint16(69), + 174: uint16(322), + 175: uint16(323), + 176: uint16(285), + 177: uint16(286), + 178: uint16(283), + 179: uint16(284), + 180: uint16(316), + 181: uint16(317), + 182: uint16(1792), + 183: uint16(1803), + 184: uint16(1793), + 185: uint16(1804), + 186: uint16(1794), + 187: uint16(1805), + 188: uint16(1795), + 189: uint16(1806), + 190: uint16(1797), + 191: uint16(1808), + 192: uint16(1796), + 193: uint16(1807), + 194: uint16(1798), + 195: uint16(1819), + 196: uint16(1814), + 197: uint16(1809), + 198: uint16(1800), + 199: uint16(1821), + 200: uint16(1816), + 201: uint16(1811), + 202: uint16(1799), + 203: uint16(1815), + 204: uint16(1820), + 205: uint16(1810), + 206: uint16(1801), + 207: uint16(1817), + 208: uint16(1822), + 209: uint16(1812), + 210: uint16(1802), + 211: uint16(1818), + 212: uint16(1823), + 213: uint16(1813), + 214: uint16(258), + 215: uint16(257), + 216: uint16(260), + 217: uint16(259), + 218: uint16(262), + 219: uint16(261), + 220: uint16(256), + 221: uint16(93), + 222: uint16(90), + 223: uint16(92), + 224: uint16(91), + 225: uint16(349), + 226: uint16(89), + 227: uint16(88), + 228: uint16(73), + 229: uint16(72), + 230: uint16(341), + 231: uint16(340), + 232: uint16(339), + 234: uint16(1), + 235: uint16(2), + 236: uint16(22), + 237: uint16(24), + 238: uint16(25), + 239: uint16(26), + 240: uint16(49), + 241: uint16(50), + 242: uint16(51), + 243: uint16(52), + 244: uint16(53), + 245: uint16(54), + 246: uint16(55), + 247: uint16(56), + 248: uint16(57), + 249: uint16(58), + 250: uint16(264), + 251: uint16(269), + 252: uint16(43), + 253: uint16(44), + 254: uint16(32), + 255: uint16(768), + 256: uint16(769), + 257: uint16(770), + 258: uint16(771), + 259: uint16(772), + 260: uint16(773), + 261: uint16(774), + 262: uint16(775), + 263: uint16(776), + 264: uint16(777), + 265: uint16(778), + 266: uint16(779), + 267: uint16(780), + 268: uint16(781), + 269: uint16(782), + 270: uint16(783), + 271: uint16(784), + 272: uint16(785), + 273: uint16(786), + 274: uint16(787), + 275: uint16(788), + 276: uint16(789), + 277: uint16(790), + 278: uint16(791), + 279: uint16(792), + 280: uint16(793), + 281: uint16(794), + 282: uint16(795), + 283: uint16(796), + 284: uint16(797), + 285: uint16(798), + 286: uint16(799), + 287: uint16(800), + 288: uint16(801), + 289: uint16(802), + 290: uint16(803), + 291: uint16(804), + 292: uint16(805), + 293: uint16(806), + 294: uint16(807), + 295: uint16(808), + 296: uint16(809), + 297: uint16(810), + 298: uint16(811), + 299: uint16(812), + 300: uint16(813), + 301: uint16(814), + 302: uint16(815), + 303: uint16(816), + 304: uint16(817), + 305: uint16(818), + 306: uint16(819), + 307: uint16(820), + 308: uint16(821), + 309: uint16(822), + 310: uint16(823), + 311: uint16(824), + 312: uint16(825), + 313: uint16(826), + 314: uint16(827), + 315: uint16(828), + 316: uint16(829), + 317: uint16(830), + 318: uint16(831), + 319: uint16(832), + 320: uint16(833), + 321: uint16(834), + 322: uint16(835), + 323: uint16(836), + 324: uint16(837), + 325: uint16(838), + 326: uint16(839), + 327: uint16(840), + 328: uint16(841), + 329: uint16(842), + 330: uint16(843), + 331: uint16(844), + 332: uint16(845), + 333: uint16(846), + 334: uint16(847), + 335: uint16(848), + 336: uint16(849), + 337: uint16(850), + 338: uint16(10), + 339: uint16(11), + 340: uint16(20), + 341: uint16(21), + 342: uint16(1024), + 343: uint16(1025), + 344: uint16(1026), + 345: uint16(1027), + 346: uint16(1028), + 347: uint16(1029), + 348: uint16(1030), + 349: uint16(1031), + 350: uint16(1032), + 351: uint16(1033), + 352: uint16(1034), + 353: uint16(1035), + 354: uint16(1036), + 355: uint16(1037), + 356: uint16(1038), + 357: uint16(1039), + 358: uint16(1040), + 359: uint16(1041), + 360: uint16(1042), + 361: uint16(1043), + 362: uint16(1044), + 363: uint16(1045), + 364: uint16(1046), + 365: uint16(1047), + 366: uint16(1048), + 367: uint16(1049), + 368: uint16(1050), + 369: uint16(1051), + 370: uint16(1052), + 371: uint16(1053), + 372: uint16(1054), + 373: uint16(1055), + 374: uint16(1056), + 375: uint16(1057), + 376: uint16(1058), + 377: uint16(1059), + 378: uint16(1060), + 379: uint16(1061), + 380: uint16(1062), + 381: uint16(1063), + 382: uint16(1064), + 383: uint16(1065), + 384: uint16(1066), + 385: uint16(1067), + 386: uint16(1068), + 387: uint16(1069), + 388: uint16(1070), + 389: uint16(1071), + 390: uint16(1072), + 391: uint16(1073), + 392: uint16(1074), + 393: uint16(1075), + 394: uint16(1076), + 395: uint16(1077), + 396: uint16(1078), + 397: uint16(1079), + 398: uint16(1080), + 399: uint16(1081), + 400: uint16(1082), + 401: uint16(1083), + 402: uint16(1084), + 403: uint16(1085), + 404: uint16(1086), + 405: uint16(1087), + 406: uint16(1088), + 407: uint16(1089), + 408: uint16(1090), + 409: uint16(1091), + 410: uint16(1092), + 411: uint16(1093), + 412: uint16(1094), + 413: uint16(1095), + 414: uint16(1096), + 415: uint16(1097), + 416: uint16(1098), + 417: uint16(1099), + 418: uint16(1100), + 419: uint16(1101), + 420: uint16(1102), + 421: uint16(1103), + 422: uint16(1104), + 423: uint16(1105), + 424: uint16(1106), + 425: uint16(1107), + 426: uint16(1108), + 427: uint16(1109), + 428: uint16(5), + 429: uint16(27), + 430: uint16(18), + 431: uint16(19), + 432: uint16(3915), + 433: uint16(8793), + 434: uint16(6934), + 435: uint16(10843), + 436: uint16(7493), + 437: uint16(6671), + 438: uint16(7492), + 439: uint16(4379), + 440: uint16(10291), + 441: uint16(11294), + 442: uint16(12033), + 443: uint16(4110), + 444: uint16(4685), + 445: uint16(12034), + 446: uint16(7939), + 447: uint16(12577), + 448: uint16(5173), + 449: uint16(10521), + 450: uint16(7494), + 451: uint16(11549), + 452: uint16(10529), + 453: uint16(12035), + 454: uint16(8773), + 455: uint16(12036), + 456: uint16(5465), + 457: uint16(12037), + 458: uint16(4924), + 459: uint16(8719), + 460: uint16(6982), + 461: uint16(12038), + 462: uint16(12039), + 463: uint16(12040), + 464: uint16(9748), + 465: uint16(5174), + 466: uint16(9750), + 467: uint16(9538), + 468: uint16(5922), + 469: uint16(10770), + 470: uint16(18472), + 471: uint16(12041), + 472: uint16(7495), + 473: uint16(12042), + 474: uint16(4372), + 475: uint16(5444), + 476: uint16(5967), + 477: uint16(11080), + 478: uint16(13573), + 479: uint16(11343), + 480: uint16(9564), + 481: uint16(4868), + 482: uint16(5140), + 483: uint16(12043), + 484: uint16(12044), + 485: uint16(11546), + 486: uint16(11292), + 487: uint16(8263), + 488: uint16(12046), + 489: uint16(6741), + 490: uint16(9554), + 491: uint16(12049), + 492: uint16(4125), + 493: uint16(5950), + 494: uint16(5949), + 495: uint16(3909), + 496: uint16(11818), + 497: uint16(11817), + 498: uint16(6418), + 499: uint16(3840), + 500: uint16(12050), + 501: uint16(12051), + 502: uint16(12052), + 503: uint16(10771), + 504: uint16(12053), + 505: uint16(5969), + 506: uint16(3910), + 507: uint16(10833), + 508: uint16(5211), + 509: uint16(5212), + 510: uint16(5213), + 511: uint16(9025), + 512: uint16(11547), + 513: uint16(12054), + 514: uint16(12055), + 515: uint16(12056), + 516: uint16(7724), + 517: uint16(7193), + 518: uint16(7725), + 519: uint16(12061), + 520: uint16(12059), + 521: uint16(12060), + 522: uint16(5175), + 523: uint16(6402), + 524: uint16(4431), + 525: uint16(12058), + 526: uint16(12057), + 527: uint16(10504), + 528: uint16(6693), + 529: uint16(6692), + 530: uint16(8477), + 531: uint16(12062), + 532: uint16(10292), + 533: uint16(8006), + 534: uint16(23), + 535: uint16(12063), + 536: uint16(12065), + 537: uint16(8516), + 538: uint16(11584), + 539: uint16(3881), + 540: uint16(12064), + 541: uint16(4381), + 542: uint16(5411), + 543: uint16(8774), + 544: uint16(5710), + 545: uint16(12066), + 546: uint16(9731), + 547: uint16(4938), + 548: uint16(12067), + 549: uint16(3882), + 550: uint16(5951), + 551: uint16(4939), + 552: uint16(10329), + 553: uint16(10001), + 554: uint16(5176), + 555: uint16(4432), + 556: uint16(12102), + 557: uint16(9248), + 558: uint16(9803), + 559: uint16(12069), + 560: uint16(10011), + 561: uint16(11585), + 562: uint16(7692), + 563: uint16(6694), + 564: uint16(6742), + 565: uint16(4383), + 566: uint16(9008), + 567: uint16(8705), + 568: uint16(12073), + 569: uint16(3883), + 570: uint16(9026), + 571: uint16(7194), + 572: uint16(6419), + 573: uint16(11267), + 574: uint16(8493), + 575: uint16(4382), + 576: uint16(12072), + 577: uint16(11293), + 578: uint16(12068), + 579: uint16(12070), + 580: uint16(6477), + 581: uint16(12071), + 582: uint16(13315), + 583: uint16(12079), + 584: uint16(12082), + 585: uint16(12080), + 586: uint16(4385), + 587: uint16(10522), + 588: uint16(12074), + 589: uint16(12078), + 590: uint16(5970), + 591: uint16(6695), + 592: uint16(4869), + 593: uint16(12083), + 594: uint16(12075), + 595: uint16(11586), + 596: uint16(6743), + 597: uint16(12076), + 598: uint16(12081), + 599: uint16(12084), + 600: uint16(12077), + 601: uint16(5376), + 602: uint16(3884), + 603: uint16(5377), + 604: uint16(4384), + 605: uint16(13316), + 606: uint16(10840), + 607: uint16(10317), + 608: uint16(5971), + 609: uint16(7694), + 610: uint16(11542), + 611: uint16(10551), + 612: uint16(5655), + 613: uint16(8452), + 614: uint16(4419), + 615: uint16(7218), + 616: uint16(12088), + 617: uint16(12093), + 618: uint16(12091), + 619: uint16(12086), + 620: uint16(8462), + 621: uint16(12089), + 622: uint16(12092), + 623: uint16(12090), + 624: uint16(10556), + 625: uint16(12087), + 626: uint16(7693), + 627: uint16(10834), + 628: uint16(12094), + 629: uint16(12095), + 630: uint16(7171), + 631: uint16(12108), + 632: uint16(9775), + 633: uint16(10261), + 634: uint16(12103), + 635: uint16(10575), + 636: uint16(4373), + 637: uint16(12107), + 638: uint16(12101), + 639: uint16(12110), + 640: uint16(8241), + 641: uint16(5923), + 642: uint16(9787), + 643: uint16(16166), + 644: uint16(12109), + 645: uint16(9276), + 646: uint16(12098), + 647: uint16(5973), + 648: uint16(5972), + 649: uint16(12096), + 650: uint16(6969), + 651: uint16(12104), + 652: uint16(10574), + 653: uint16(8748), + 654: uint16(12100), + 655: uint16(5712), + 656: uint16(12097), + 657: uint16(12105), + 658: uint16(12099), + 659: uint16(11568), + 660: uint16(12106), + 661: uint16(11808), + 662: uint16(5445), + 663: uint16(5711), + 664: uint16(12111), + 665: uint16(12112), + 666: uint16(12116), + 667: uint16(3885), + 668: uint16(10543), + 669: uint16(12115), + 670: uint16(12114), + 671: uint16(12118), + 672: uint16(12117), + 673: uint16(9027), + 674: uint16(5713), + 675: uint16(12119), + 676: uint16(6948), + 677: uint16(8453), + 678: uint16(9028), + 679: uint16(5461), + 680: uint16(12120), + 681: uint16(5141), + 682: uint16(12121), + 683: uint16(12123), + 684: uint16(10772), + 685: uint16(5701), + 686: uint16(6672), + 687: uint16(10070), + 688: uint16(12122), + 689: uint16(6436), + 690: uint16(11298), + 691: uint16(12125), + 692: uint16(12290), + 693: uint16(12124), + 694: uint16(6435), + 695: uint16(7260), + 696: uint16(5656), + 697: uint16(12291), + 698: uint16(5422), + 699: uint16(12288), + 700: uint16(12289), + 701: uint16(9486), + 702: uint16(8283), + 703: uint16(5378), + 704: uint16(10796), + 705: uint16(12292), + 706: uint16(11548), + 707: uint16(12293), + 708: uint16(12296), + 709: uint16(12294), + 710: uint16(8237), + 711: uint16(12295), + 712: uint16(12297), + 713: uint16(12299), + 714: uint16(12298), + 715: uint16(10535), + 716: uint16(5142), + 717: uint16(12301), + 718: uint16(12302), + 719: uint16(4366), + 720: uint16(12300), + 721: uint16(6995), + 722: uint16(12305), + 723: uint16(12304), + 724: uint16(12303), + 725: uint16(12085), + 726: uint16(12306), + 727: uint16(7261), + 728: uint16(12307), + 729: uint16(11268), + 730: uint16(11064), + 731: uint16(12309), + 732: uint16(12308), + 733: uint16(12311), + 734: uint16(12310), + 735: uint16(12312), + 736: uint16(12313), + 737: uint16(3923), + 738: uint16(5908), + 739: uint16(5658), + 740: uint16(7195), + 741: uint16(8794), + 742: uint16(5379), + 743: uint16(8007), + 744: uint16(5974), + 745: uint16(6221), + 746: uint16(12315), + 747: uint16(11047), + 748: uint16(9253), + 749: uint16(6744), + 750: uint16(12314), + 751: uint16(12316), + 752: uint16(9277), + 753: uint16(4692), + 754: uint16(12317), + 755: uint16(9565), + 756: uint16(8211), + 757: uint16(12319), + 758: uint16(12320), + 759: uint16(9995), + 760: uint16(5975), + 761: uint16(11802), + 762: uint16(12321), + 763: uint16(5381), + 764: uint16(10523), + 765: uint16(8469), + 766: uint16(5456), + 767: uint16(9236), + 768: uint16(5714), + 769: uint16(12322), + 770: uint16(12323), + 771: uint16(9537), + 772: uint16(4158), + 773: uint16(12326), + 774: uint16(6492), + 775: uint16(12325), + 776: uint16(6437), + 777: uint16(12327), + 778: uint16(17741), + 779: uint16(12328), + 780: uint16(10784), + 781: uint16(12329), + 782: uint16(12330), + 783: uint16(12331), + 784: uint16(7496), + 785: uint16(6955), + 786: uint16(4870), + 787: uint16(12334), + 788: uint16(12332), + 789: uint16(11036), + 790: uint16(12333), + 791: uint16(10297), + 792: uint16(12335), + 793: uint16(12336), + 794: uint16(12337), + 795: uint16(9278), + 796: uint16(12341), + 797: uint16(12339), + 798: uint16(12340), + 799: uint16(12338), + 800: uint16(6466), + 801: uint16(12342), + 802: uint16(11081), + 803: uint16(11587), + 804: uint16(12343), + 805: uint16(7943), + 806: uint16(12344), + 807: uint16(7225), + 808: uint16(12345), + 809: uint16(8795), + 810: uint16(11550), + 811: uint16(9279), + 812: uint16(12580), + 813: uint16(12346), + 814: uint16(21252), + 815: uint16(5412), + 816: uint16(12347), + 817: uint16(10813), + 818: uint16(7239), + 819: uint16(8539), + 820: uint16(12349), + 821: uint16(9539), + 822: uint16(12350), + 823: uint16(12351), + 824: uint16(4621), + 825: uint16(12352), + 826: uint16(5382), + 827: uint16(9515), + 828: uint16(4185), + 829: uint16(7215), + 830: uint16(9984), + 831: uint16(12353), + 832: uint16(9280), + 833: uint16(7726), + 834: uint16(12354), + 835: uint16(10507), + 836: uint16(7993), + 837: uint16(4865), + 838: uint16(4872), + 839: uint16(12355), + 840: uint16(12357), + 841: uint16(5657), + 842: uint16(12356), + 843: uint16(11602), + 844: uint16(7240), + 845: uint16(10012), + 846: uint16(10539), + 847: uint16(12358), + 848: uint16(11351), + 849: uint16(12359), + 850: uint16(12360), + 851: uint16(9309), + 852: uint16(12361), + 853: uint16(7944), + 854: uint16(6493), + 855: uint16(5715), + 856: uint16(12362), + 857: uint16(6696), + 858: uint16(6222), + 859: uint16(9029), + 860: uint16(12364), + 861: uint16(8454), + 862: uint16(6478), + 863: uint16(12365), + 864: uint16(12366), + 865: uint16(8207), + 866: uint16(12363), + 867: uint16(12368), + 868: uint16(10773), + 869: uint16(6211), + 870: uint16(12367), + 871: uint16(5716), + 872: uint16(6461), + 873: uint16(9804), + 874: uint16(12371), + 875: uint16(12369), + 876: uint16(10330), + 877: uint16(7497), + 878: uint16(12378), + 879: uint16(4675), + 880: uint16(12372), + 881: uint16(12370), + 882: uint16(8238), + 883: uint16(12374), + 884: uint16(12373), + 885: uint16(4643), + 886: uint16(5695), + 887: uint16(12379), + 888: uint16(11532), + 889: uint16(12375), + 890: uint16(12380), + 891: uint16(12377), + 892: uint16(12376), + 893: uint16(11566), + 894: uint16(5976), + 895: uint16(4386), + 896: uint16(11603), + 897: uint16(7252), + 898: uint16(9271), + 899: uint16(6212), + 900: uint16(12545), + 901: uint16(12546), + 902: uint16(11588), + 903: uint16(11786), + 904: uint16(12548), + 905: uint16(5977), + 906: uint16(12547), + 907: uint16(4622), + 908: uint16(12549), + 909: uint16(10805), + 910: uint16(8987), + 911: uint16(11269), + 912: uint16(10552), + 913: uint16(12550), + 914: uint16(20276), + 915: uint16(9487), + 916: uint16(12551), + 917: uint16(4873), + 918: uint16(11026), + 919: uint16(7424), + 920: uint16(12552), + 921: uint16(10566), + 922: uint16(12556), + 923: uint16(7945), + 924: uint16(12553), + 925: uint16(5423), + 926: uint16(12554), + 927: uint16(4874), + 928: uint16(5645), + 929: uint16(12557), + 930: uint16(12558), + 931: uint16(12559), + 932: uint16(12560), + 933: uint16(6970), + 934: uint16(5978), + 935: uint16(11069), + 936: uint16(11079), + 937: uint16(9558), + 938: uint16(10576), + 939: uint16(12561), + 940: uint16(12562), + 941: uint16(12564), + 942: uint16(12566), + 943: uint16(12565), + 944: uint16(12567), + 945: uint16(4380), + 946: uint16(10795), + 947: uint16(6491), + 948: uint16(12568), + 949: uint16(8248), + 950: uint16(7425), + 951: uint16(5384), + 952: uint16(12569), + 953: uint16(10042), + 954: uint16(12570), + 955: uint16(12571), + 956: uint16(12572), + 957: uint16(12573), + 958: uint16(10243), + 959: uint16(5447), + 960: uint16(3908), + 961: uint16(9502), + 962: uint16(12574), + 963: uint16(7196), + 964: uint16(8008), + 965: uint16(12576), + 966: uint16(12575), + 967: uint16(7426), + 968: uint16(5952), + 969: uint16(12578), + 970: uint16(10013), + 971: uint16(12579), + 972: uint16(10043), + 973: uint16(8467), + 974: uint16(8525), + 975: uint16(5383), + 976: uint16(9549), + 977: uint16(8720), + 978: uint16(9805), + 979: uint16(10797), + 980: uint16(12581), + 981: uint16(8009), + 982: uint16(5652), + 983: uint16(12582), + 984: uint16(12583), + 985: uint16(4107), + 986: uint16(3924), + 987: uint16(4940), + 988: uint16(8455), + 989: uint16(5168), + 990: uint16(11344), + 991: uint16(12586), + 992: uint16(4374), + 993: uint16(12585), + 994: uint16(5385), + 995: uint16(12587), + 996: uint16(11088), + 997: uint16(12588), + 998: uint16(11569), + 999: uint16(5979), + 1000: uint16(5909), + 1001: uint16(12589), + 1002: uint16(12591), + 1003: uint16(12590), + 1004: uint16(7742), + 1005: uint16(4120), + 1006: uint16(4157), + 1007: uint16(12592), + 1008: uint16(12593), + 1009: uint16(5910), + 1010: uint16(12594), + 1011: uint16(5197), + 1012: uint16(6673), + 1013: uint16(12595), + 1014: uint16(10835), + 1015: uint16(6420), + 1016: uint16(5177), + 1017: uint16(11270), + 1018: uint16(8239), + 1019: uint16(10014), + 1020: uint16(7004), + 1021: uint16(7206), + 1022: uint16(6983), + 1023: uint16(6996), + 1024: uint16(7253), + 1025: uint16(10015), + 1026: uint16(12598), + 1027: uint16(4130), + 1028: uint16(8240), + 1029: uint16(5980), + 1030: uint16(5924), + 1031: uint16(5446), + 1032: uint16(12602), + 1033: uint16(8704), + 1034: uint16(8541), + 1035: uint16(5386), + 1036: uint16(7427), + 1037: uint16(12603), + 1038: uint16(12601), + 1039: uint16(4387), + 1040: uint16(8517), + 1041: uint16(6935), + 1042: uint16(6698), + 1043: uint16(4101), + 1044: uint16(4687), + 1045: uint16(6213), + 1046: uint16(6697), + 1047: uint16(12604), + 1048: uint16(12605), + 1049: uint16(5160), + 1050: uint16(4645), + 1051: uint16(6214), + 1052: uint16(5159), + 1053: uint16(9022), + 1054: uint16(4100), + 1055: uint16(9488), + 1056: uint16(11037), + 1057: uint16(6144), + 1058: uint16(11352), + 1059: uint16(9254), + 1060: uint16(5981), + 1061: uint16(5646), + 1062: uint16(12614), + 1063: uint16(5442), + 1064: uint16(10793), + 1065: uint16(10044), + 1066: uint16(12613), + 1067: uint16(4925), + 1068: uint16(12608), + 1069: uint16(12609), + 1070: uint16(12611), + 1071: uint16(12612), + 1072: uint16(5178), + 1073: uint16(7744), + 1074: uint16(10508), + 1075: uint16(12610), + 1076: uint16(12606), + 1077: uint16(5954), + 1078: uint16(12607), + 1079: uint16(11779), + 1080: uint16(10577), + 1081: uint16(9031), + 1082: uint16(5953), + 1083: uint16(6223), + 1084: uint16(12615), + 1085: uint16(9532), + 1086: uint16(12619), + 1087: uint16(7005), + 1088: uint16(6997), + 1089: uint16(12622), + 1090: uint16(12620), + 1091: uint16(11010), + 1092: uint16(12617), + 1093: uint16(12626), + 1094: uint16(12621), + 1095: uint16(12624), + 1096: uint16(5925), + 1097: uint16(11038), + 1098: uint16(12625), + 1099: uint16(12627), + 1100: uint16(12629), + 1101: uint16(6479), + 1102: uint16(11809), + 1103: uint16(12618), + 1104: uint16(12616), + 1105: uint16(12628), + 1106: uint16(12623), + 1107: uint16(12631), + 1108: uint16(12802), + 1109: uint16(12633), + 1110: uint16(12637), + 1111: uint16(12800), + 1112: uint16(12634), + 1113: uint16(12829), + 1114: uint16(6472), + 1115: uint16(4624), + 1116: uint16(12632), + 1117: uint16(12804), + 1118: uint16(3925), + 1119: uint16(12803), + 1120: uint16(3844), + 1121: uint16(10281), + 1122: uint16(12801), + 1123: uint16(12635), + 1124: uint16(12630), + 1125: uint16(12636), + 1126: uint16(6439), + 1127: uint16(12805), + 1128: uint16(3926), + 1129: uint16(12814), + 1130: uint16(12806), + 1131: uint16(12807), + 1132: uint16(7428), + 1133: uint16(10824), + 1134: uint16(12812), + 1135: uint16(12811), + 1136: uint16(9230), + 1137: uint16(12813), + 1138: uint16(12810), + 1139: uint16(4115), + 1140: uint16(6421), + 1141: uint16(7695), + 1142: uint16(12808), + 1143: uint16(9281), + 1144: uint16(12809), + 1145: uint16(3841), + 1146: uint16(12819), + 1147: uint16(11266), + 1148: uint16(7430), + 1149: uint16(12825), + 1150: uint16(12824), + 1151: uint16(12815), + 1152: uint16(8482), + 1153: uint16(12816), + 1154: uint16(8526), + 1155: uint16(12821), + 1156: uint16(7429), + 1157: uint16(12818), + 1158: uint16(11075), + 1159: uint16(5659), + 1160: uint16(12822), + 1161: uint16(12823), + 1162: uint16(12820), + 1163: uint16(12826), + 1164: uint16(12817), + 1165: uint16(12832), + 1166: uint16(12837), + 1167: uint16(12833), + 1168: uint16(12828), + 1169: uint16(12838), + 1170: uint16(8208), + 1171: uint16(12840), + 1172: uint16(6145), + 1173: uint16(12830), + 1174: uint16(8796), + 1175: uint16(12834), + 1176: uint16(12827), + 1177: uint16(4876), + 1178: uint16(4941), + 1179: uint16(4676), + 1180: uint16(12835), + 1181: uint16(12831), + 1182: uint16(5717), + 1183: uint16(12841), + 1184: uint16(12839), + 1185: uint16(8242), + 1186: uint16(5161), + 1187: uint16(5387), + 1188: uint16(12836), + 1189: uint16(5459), + 1190: uint16(4131), + 1191: uint16(12845), + 1192: uint16(12843), + 1193: uint16(13062), + 1194: uint16(12848), + 1195: uint16(12842), + 1196: uint16(12846), + 1197: uint16(12844), + 1198: uint16(6699), + 1199: uint16(12847), + 1200: uint16(12850), + 1201: uint16(12855), + 1202: uint16(12853), + 1203: uint16(12852), + 1204: uint16(8721), + 1205: uint16(4388), + 1206: uint16(12849), + 1207: uint16(12851), + 1208: uint16(7431), + 1209: uint16(4114), + 1210: uint16(12854), + 1211: uint16(4413), + 1212: uint16(12865), + 1213: uint16(7515), + 1214: uint16(12861), + 1215: uint16(12859), + 1216: uint16(12860), + 1217: uint16(12862), + 1218: uint16(4124), + 1219: uint16(8216), + 1220: uint16(12856), + 1221: uint16(12857), + 1222: uint16(4697), + 1223: uint16(12864), + 1224: uint16(4942), + 1225: uint16(12867), + 1226: uint16(12863), + 1227: uint16(12866), + 1228: uint16(10509), + 1229: uint16(9524), + 1230: uint16(10007), + 1231: uint16(12869), + 1232: uint16(12868), + 1233: uint16(4644), + 1234: uint16(12870), + 1235: uint16(12873), + 1236: uint16(12872), + 1237: uint16(12871), + 1238: uint16(9752), + 1239: uint16(12874), + 1240: uint16(12875), + 1241: uint16(12877), + 1242: uint16(12876), + 1243: uint16(12879), + 1244: uint16(12882), + 1245: uint16(12880), + 1246: uint16(12878), + 1247: uint16(12881), + 1248: uint16(12883), + 1249: uint16(12884), + 1250: uint16(12885), + 1251: uint16(12886), + 1252: uint16(12887), + 1253: uint16(12324), + 1254: uint16(7003), + 1255: uint16(6700), + 1256: uint16(4434), + 1257: uint16(3927), + 1258: uint16(8739), + 1259: uint16(12888), + 1260: uint16(6403), + 1261: uint16(3886), + 1262: uint16(7741), + 1263: uint16(12889), + 1264: uint16(5926), + 1265: uint16(6224), + 1266: uint16(12891), + 1267: uint16(12890), + 1268: uint16(10559), + 1269: uint16(12892), + 1270: uint16(13056), + 1271: uint16(12893), + 1272: uint16(13057), + 1273: uint16(13058), + 1274: uint16(5718), + 1275: uint16(4159), + 1276: uint16(13059), + 1277: uint16(13061), + 1278: uint16(13060), + 1279: uint16(13063), + 1280: uint16(9273), + 1281: uint16(13064), + 1282: uint16(3860), + 1283: uint16(6462), + 1284: uint16(5660), + 1285: uint16(8750), + 1286: uint16(13065), + 1287: uint16(13066), + 1288: uint16(13068), + 1289: uint16(13069), + 1290: uint16(6467), + 1291: uint16(5424), + 1292: uint16(10774), + 1293: uint16(13067), + 1294: uint16(13070), + 1295: uint16(6432), + 1296: uint16(6146), + 1297: uint16(13074), + 1298: uint16(6404), + 1299: uint16(8722), + 1300: uint16(13071), + 1301: uint16(9017), + 1302: uint16(13075), + 1303: uint16(7745), + 1304: uint16(13073), + 1305: uint16(13076), + 1306: uint16(5662), + 1307: uint16(13077), + 1308: uint16(13078), + 1309: uint16(6147), + 1310: uint16(4639), + 1311: uint16(13080), + 1312: uint16(13081), + 1313: uint16(13082), + 1314: uint16(13079), + 1315: uint16(13072), + 1316: uint16(13083), + 1317: uint16(13084), + 1318: uint16(10819), + 1319: uint16(7498), + 1320: uint16(13086), + 1321: uint16(13087), + 1322: uint16(13085), + 1323: uint16(13089), + 1324: uint16(9751), + 1325: uint16(3911), + 1326: uint16(10293), + 1327: uint16(13090), + 1328: uint16(7516), + 1329: uint16(6936), + 1330: uint16(9788), + 1331: uint16(4943), + 1332: uint16(6474), + 1333: uint16(10808), + 1334: uint16(9489), + 1335: uint16(5719), + 1336: uint16(8494), + 1337: uint16(13088), + 1338: uint16(13091), + 1339: uint16(8483), + 1340: uint16(13092), + 1341: uint16(13093), + 1342: uint16(13095), + 1343: uint16(9032), + 1344: uint16(4877), + 1345: uint16(21248), + 1346: uint16(4160), + 1347: uint16(10578), + 1348: uint16(7499), + 1349: uint16(9255), + 1350: uint16(6469), + 1351: uint16(13101), + 1352: uint16(10524), + 1353: uint16(11580), + 1354: uint16(4435), + 1355: uint16(13097), + 1356: uint16(8217), + 1357: uint16(13100), + 1358: uint16(9282), + 1359: uint16(9256), + 1360: uint16(9283), + 1361: uint16(10008), + 1362: uint16(9004), + 1363: uint16(6440), + 1364: uint16(13096), + 1365: uint16(4181), + 1366: uint16(9237), + 1367: uint16(13098), + 1368: uint16(13094), + 1369: uint16(7727), + 1370: uint16(13102), + 1371: uint16(7213), + 1372: uint16(5388), + 1373: uint16(13103), + 1374: uint16(10567), + 1375: uint16(8284), + 1376: uint16(8997), + 1377: uint16(13105), + 1378: uint16(10798), + 1379: uint16(13106), + 1380: uint16(13111), + 1381: uint16(10510), + 1382: uint16(13110), + 1383: uint16(13104), + 1384: uint16(13107), + 1385: uint16(13109), + 1386: uint16(6405), + 1387: uint16(10536), + 1388: uint16(13112), + 1389: uint16(8740), + 1390: uint16(4436), + 1391: uint16(7500), + 1392: uint16(13114), + 1393: uint16(13113), + 1394: uint16(6215), + 1395: uint16(13115), + 1396: uint16(13117), + 1397: uint16(13116), + 1398: uint16(13119), + 1399: uint16(13108), + 1400: uint16(13121), + 1401: uint16(13120), + 1402: uint16(13118), + 1403: uint16(6701), + 1404: uint16(7728), + 1405: uint16(8243), + 1406: uint16(13122), + 1407: uint16(7963), + 1408: uint16(3916), + 1409: uint16(9795), + 1410: uint16(9018), + 1411: uint16(13124), + 1412: uint16(13123), + 1413: uint16(13125), + 1414: uint16(13126), + 1415: uint16(13127), + 1416: uint16(13128), + 1417: uint16(10544), + 1418: uint16(13129), + 1419: uint16(4389), + 1420: uint16(13130), + 1421: uint16(11291), + 1422: uint16(4623), + 1423: uint16(12584), + 1424: uint16(7207), + 1425: uint16(8478), + 1426: uint16(13131), + 1427: uint16(11082), + 1428: uint16(11027), + 1429: uint16(13133), + 1430: uint16(8518), + 1431: uint16(9238), + 1432: uint16(8479), + 1433: uint16(10294), + 1434: uint16(13134), + 1435: uint16(13135), + 1436: uint16(4186), + 1437: uint16(6937), + 1438: uint16(13136), + 1439: uint16(3887), + 1440: uint16(13137), + 1441: uint16(13138), + 1442: uint16(4161), + 1443: uint16(4944), + 1444: uint16(9535), + 1445: uint16(10579), + 1446: uint16(13142), + 1447: uint16(8244), + 1448: uint16(13141), + 1449: uint16(5663), + 1450: uint16(10810), + 1451: uint16(13140), + 1452: uint16(9284), + 1453: uint16(13144), + 1454: uint16(13143), + 1455: uint16(13146), + 1456: uint16(13145), + 1457: uint16(4187), + 1458: uint16(13147), + 1459: uint16(7432), + 1460: uint16(13149), + 1461: uint16(8708), + 1462: uint16(13148), + 1463: uint16(10514), + 1464: uint16(7254), + 1465: uint16(9274), + 1466: uint16(13312), + 1467: uint16(6148), + 1468: uint16(13313), + 1469: uint16(9728), + 1470: uint16(10045), + 1471: uint16(11056), + 1472: uint16(9732), + 1473: uint16(13322), + 1474: uint16(5143), + 1475: uint16(11300), + 1476: uint16(11022), + 1477: uint16(13579), + 1478: uint16(13314), + 1479: uint16(13317), + 1480: uint16(8484), + 1481: uint16(10775), + 1482: uint16(9257), + 1483: uint16(13318), + 1484: uint16(10820), + 1485: uint16(6441), + 1486: uint16(7433), + 1487: uint16(13319), + 1488: uint16(6703), + 1489: uint16(6702), + 1490: uint16(3864), + 1491: uint16(5927), + 1492: uint16(7946), + 1493: uint16(3888), + 1494: uint16(13323), + 1495: uint16(13324), + 1496: uint16(13321), + 1497: uint16(4119), + 1498: uint16(4878), + 1499: uint16(13320), + 1500: uint16(11044), + 1501: uint16(10256), + 1502: uint16(3847), + 1503: uint16(3928), + 1504: uint16(6704), + 1505: uint16(3889), + 1506: uint16(3842), + 1507: uint16(13329), + 1508: uint16(13327), + 1509: uint16(11035), + 1510: uint16(13330), + 1511: uint16(13328), + 1512: uint16(13326), + 1513: uint16(7696), + 1514: uint16(13325), + 1515: uint16(10553), + 1516: uint16(5955), + 1517: uint16(13334), + 1518: uint16(13335), + 1519: uint16(7434), + 1520: uint16(13331), + 1521: uint16(11787), + 1522: uint16(9771), + 1523: uint16(13333), + 1524: uint16(6406), + 1525: uint16(13336), + 1526: uint16(10295), + 1527: uint16(13337), + 1528: uint16(13332), + 1529: uint16(11034), + 1530: uint16(9789), + 1531: uint16(13338), + 1532: uint16(10257), + 1533: uint16(13339), + 1534: uint16(13343), + 1535: uint16(13340), + 1536: uint16(4390), + 1537: uint16(13342), + 1538: uint16(6938), + 1539: uint16(13341), + 1540: uint16(5720), + 1541: uint16(13355), + 1542: uint16(13348), + 1543: uint16(13345), + 1544: uint16(8771), + 1545: uint16(13344), + 1546: uint16(13346), + 1547: uint16(13347), + 1548: uint16(13349), + 1549: uint16(13350), + 1550: uint16(4945), + 1551: uint16(13352), + 1552: uint16(13351), + 1553: uint16(13353), + 1554: uint16(7501), + 1555: uint16(13356), + 1556: uint16(9019), + 1557: uint16(4132), + 1558: uint16(13354), + 1559: uint16(13357), + 1560: uint16(13358), + 1561: uint16(13361), + 1562: uint16(13359), + 1563: uint16(13360), + 1564: uint16(6705), + 1565: uint16(13362), + 1566: uint16(6149), + 1567: uint16(13363), + 1568: uint16(6745), + 1569: uint16(8471), + 1570: uint16(13364), + 1571: uint16(13365), + 1572: uint16(6713), + 1573: uint16(6150), + 1574: uint16(11057), + 1575: uint16(5127), + 1576: uint16(5928), + 1577: uint16(13366), + 1578: uint16(4663), + 1579: uint16(13367), + 1580: uint16(8472), + 1581: uint16(13368), + 1582: uint16(13570), + 1583: uint16(13369), + 1584: uint16(13370), + 1585: uint16(13371), + 1586: uint16(13373), + 1587: uint16(13374), + 1588: uint16(13375), + 1589: uint16(8527), + 1590: uint16(4102), + 1591: uint16(6984), + 1592: uint16(3873), + 1593: uint16(8246), + 1594: uint16(4879), + 1595: uint16(6932), + 1596: uint16(6151), + 1597: uint16(9285), + 1598: uint16(7168), + 1599: uint16(4880), + 1600: uint16(8775), + 1601: uint16(9033), + 1602: uint16(3863), + 1603: uint16(5144), + 1604: uint16(10580), + 1605: uint16(6945), + 1606: uint16(5169), + 1607: uint16(8010), + 1608: uint16(6939), + 1609: uint16(11271), + 1610: uint16(13376), + 1611: uint16(5179), + 1612: uint16(6442), + 1613: uint16(4625), + 1614: uint16(4162), + 1615: uint16(7435), + 1616: uint16(4391), + 1617: uint16(13377), + 1618: uint16(11301), + 1619: uint16(7208), + 1620: uint16(6979), + 1621: uint16(13378), + 1622: uint16(4946), + 1623: uint16(9521), + 1624: uint16(11016), + 1625: uint16(13379), + 1626: uint16(13380), + 1627: uint16(10296), + 1628: uint16(13382), + 1629: uint16(4871), + 1630: uint16(5462), + 1631: uint16(13381), + 1632: uint16(4881), + 1633: uint16(7697), + 1634: uint16(13386), + 1635: uint16(6656), + 1636: uint16(4392), + 1637: uint16(13385), + 1638: uint16(13383), + 1639: uint16(13387), + 1640: uint16(13384), + 1641: uint16(9738), + 1642: uint16(15148), + 1643: uint16(7698), + 1644: uint16(13388), + 1645: uint16(11551), + 1646: uint16(13389), + 1647: uint16(13391), + 1648: uint16(8797), + 1649: uint16(13390), + 1650: uint16(7938), + 1651: uint16(6746), + 1652: uint16(8495), + 1653: uint16(6998), + 1654: uint16(10324), + 1655: uint16(8011), + 1656: uint16(6956), + 1657: uint16(13392), + 1658: uint16(7436), + 1659: uint16(13393), + 1660: uint16(13394), + 1661: uint16(3890), + 1662: uint16(8473), + 1663: uint16(7729), + 1664: uint16(13395), + 1665: uint16(9490), + 1666: uint16(7437), + 1667: uint16(7438), + 1668: uint16(13396), + 1669: uint16(8012), + 1670: uint16(7439), + 1671: uint16(13397), + 1672: uint16(13398), + 1673: uint16(11071), + 1674: uint16(13399), + 1675: uint16(5413), + 1676: uint16(7169), + 1677: uint16(13400), + 1678: uint16(13401), + 1679: uint16(6971), + 1680: uint16(7691), + 1681: uint16(9555), + 1682: uint16(7731), + 1683: uint16(10071), + 1684: uint16(9729), + 1685: uint16(5416), + 1686: uint16(13402), + 1687: uint16(5198), + 1688: uint16(13403), + 1689: uint16(5469), + 1690: uint16(9518), + 1691: uint16(4367), + 1692: uint16(6706), + 1693: uint16(13404), + 1694: uint16(13569), + 1695: uint16(13568), + 1696: uint16(5468), + 1697: uint16(13405), + 1698: uint16(9239), + 1699: uint16(8463), + 1700: uint16(9258), + 1701: uint16(6951), + 1702: uint16(8247), + 1703: uint16(11353), + 1704: uint16(13571), + 1705: uint16(13572), + 1706: uint16(9525), + 1707: uint16(6674), + 1708: uint16(13574), + 1709: uint16(13575), + 1710: uint16(13576), + 1711: uint16(4947), + 1712: uint16(13577), + 1713: uint16(13578), + 1714: uint16(4363), + 1715: uint16(8218), + 1716: uint16(4931), + 1717: uint16(13580), + 1718: uint16(11015), + 1719: uint16(8497), + 1720: uint16(4664), + 1721: uint16(13582), + 1722: uint16(13584), + 1723: uint16(4926), + 1724: uint16(13581), + 1725: uint16(13583), + 1726: uint16(13586), + 1727: uint16(13585), + 1728: uint16(13587), + 1729: uint16(13588), + 1730: uint16(9500), + 1731: uint16(5389), + 1732: uint16(4420), + 1733: uint16(13589), + 1734: uint16(13594), + 1735: uint16(13592), + 1736: uint16(10582), + 1737: uint16(10581), + 1738: uint16(9286), + 1739: uint16(13591), + 1740: uint16(7219), + 1741: uint16(13590), + 1742: uint16(7761), + 1743: uint16(13595), + 1744: uint16(6473), + 1745: uint16(13601), + 1746: uint16(13602), + 1747: uint16(13596), + 1748: uint16(4626), + 1749: uint16(13597), + 1750: uint16(13606), + 1751: uint16(13605), + 1752: uint16(13604), + 1753: uint16(13600), + 1754: uint16(13599), + 1755: uint16(13603), + 1756: uint16(10583), + 1757: uint16(13610), + 1758: uint16(13607), + 1759: uint16(13609), + 1760: uint16(11345), + 1761: uint16(13608), + 1762: uint16(13598), + 1763: uint16(7762), + 1764: uint16(13611), + 1765: uint16(6422), + 1766: uint16(13612), + 1767: uint16(13613), + 1768: uint16(13616), + 1769: uint16(13615), + 1770: uint16(13614), + 1771: uint16(9287), + 1772: uint16(13593), + 1773: uint16(13622), + 1774: uint16(13618), + 1775: uint16(13617), + 1776: uint16(13619), + 1777: uint16(13620), + 1778: uint16(13623), + 1779: uint16(11589), + 1780: uint16(13624), + 1781: uint16(13621), + 1782: uint16(13625), + 1783: uint16(4927), + 1784: uint16(13626), + 1785: uint16(13628), + 1786: uint16(13627), + 1787: uint16(13629), + 1788: uint16(13630), + 1789: uint16(8013), + 1790: uint16(7170), + 1791: uint16(7235), + 1792: uint16(8258), + 1793: uint16(6152), + 1794: uint16(6423), + 1795: uint16(6153), + 1796: uint16(5199), + 1797: uint16(13631), + 1798: uint16(6424), + 1799: uint16(5929), + 1800: uint16(13632), + 1801: uint16(11013), + 1802: uint16(9762), + 1803: uint16(13633), + 1804: uint16(6154), + 1805: uint16(4875), + 1806: uint16(8710), + 1807: uint16(5425), + 1808: uint16(6707), + 1809: uint16(10298), + 1810: uint16(10016), + 1811: uint16(13634), + 1812: uint16(4948), + 1813: uint16(13637), + 1814: uint16(8960), + 1815: uint16(13636), + 1816: uint16(13635), + 1817: uint16(13638), + 1818: uint16(9034), + 1819: uint16(7746), + 1820: uint16(6708), + 1821: uint16(7977), + 1822: uint16(8498), + 1823: uint16(5121), + 1824: uint16(8961), + 1825: uint16(13639), + 1826: uint16(13640), + 1827: uint16(7502), + 1828: uint16(10776), + 1829: uint16(13643), + 1830: uint16(13642), + 1831: uint16(13641), + 1832: uint16(10332), + 1833: uint16(13650), + 1834: uint16(10809), + 1835: uint16(13644), + 1836: uint16(13646), + 1837: uint16(10826), + 1838: uint16(13645), + 1839: uint16(13647), + 1840: uint16(9991), + 1841: uint16(13648), + 1842: uint16(10525), + 1843: uint16(13649), + 1844: uint16(4882), + 1845: uint16(10526), + 1846: uint16(9742), + 1847: uint16(13651), + 1848: uint16(13652), + 1849: uint16(6155), + 1850: uint16(4883), + 1851: uint16(13653), + 1852: uint16(5911), + 1853: uint16(11299), + 1854: uint16(11272), + 1855: uint16(4949), + 1856: uint16(13655), + 1857: uint16(8962), + 1858: uint16(6156), + 1859: uint16(7440), + 1860: uint16(10046), + 1861: uint16(7441), + 1862: uint16(7255), + 1863: uint16(9035), + 1864: uint16(10584), + 1865: uint16(9240), + 1866: uint16(6157), + 1867: uint16(10299), + 1868: uint16(13656), + 1869: uint16(9272), + 1870: uint16(6433), + 1871: uint16(5930), + 1872: uint16(9036), + 1873: uint16(3874), + 1874: uint16(7245), + 1875: uint16(6158), + 1876: uint16(11302), + 1877: uint16(13657), + 1878: uint16(13658), + 1879: uint16(9776), + 1880: uint16(13659), + 1881: uint16(11606), + 1882: uint16(11788), + 1883: uint16(13661), + 1884: uint16(13660), + 1885: uint16(4646), + 1886: uint16(13824), + 1887: uint16(13827), + 1888: uint16(13828), + 1889: uint16(13826), + 1890: uint16(10271), + 1891: uint16(7442), + 1892: uint16(13830), + 1893: uint16(13829), + 1894: uint16(13825), + 1895: uint16(13831), + 1896: uint16(13832), + 1897: uint16(13833), + 1898: uint16(13836), + 1899: uint16(13834), + 1900: uint16(13835), + 1901: uint16(13837), + 1902: uint16(4163), + 1903: uint16(9037), + 1904: uint16(13838), + 1905: uint16(5721), + 1906: uint16(4437), + 1907: uint16(9749), + 1908: uint16(13839), + 1909: uint16(9562), + 1910: uint16(10554), + 1911: uint16(13840), + 1912: uint16(11789), + 1913: uint16(13841), + 1914: uint16(10527), + 1915: uint16(13844), + 1916: uint16(12032), + 1917: uint16(12048), + 1918: uint16(6927), + 1919: uint16(9556), + 1920: uint16(13845), + 1921: uint16(5180), + 1922: uint16(8963), + 1923: uint16(3929), + 1924: uint16(13846), + 1925: uint16(10501), + 1926: uint16(6159), + 1927: uint16(8751), + 1928: uint16(9038), + 1929: uint16(11086), + 1930: uint16(5912), + 1931: uint16(5931), + 1932: uint16(13847), + 1933: uint16(13848), + 1934: uint16(13854), + 1935: uint16(6980), + 1936: uint16(8964), + 1937: uint16(5390), + 1938: uint16(13849), + 1939: uint16(10250), + 1940: uint16(8741), + 1941: uint16(13850), + 1942: uint16(13851), + 1943: uint16(5391), + 1944: uint16(13852), + 1945: uint16(13853), + 1946: uint16(13855), + 1947: uint16(9301), + 1948: uint16(13856), + 1949: uint16(13857), + 1950: uint16(13858), + 1951: uint16(13843), + 1952: uint16(13842), + 1953: uint16(13859), + 1954: uint16(5664), + 1955: uint16(10246), + 1956: uint16(6443), + 1957: uint16(10262), + 1958: uint16(8965), + 1959: uint16(10282), + 1960: uint16(13860), + 1961: uint16(7443), + 1962: uint16(4133), + 1963: uint16(13861), + 1964: uint16(13862), + 1965: uint16(11089), + 1966: uint16(10047), + 1967: uint16(13865), + 1968: uint16(4188), + 1969: uint16(7947), + 1970: uint16(13864), + 1971: uint16(13863), + 1972: uint16(5665), + 1973: uint16(8499), + 1974: uint16(13869), + 1975: uint16(13867), + 1976: uint16(13866), + 1977: uint16(11526), + 1978: uint16(5956), + 1979: uint16(7256), + 1980: uint16(13868), + 1981: uint16(9259), + 1982: uint16(7197), + 1983: uint16(9503), + 1984: uint16(13872), + 1985: uint16(13871), + 1986: uint16(13870), + 1987: uint16(13873), + 1988: uint16(5957), + 1989: uint16(13874), + 1990: uint16(10331), + 1991: uint16(7226), + 1992: uint16(13875), + 1993: uint16(10072), + 1994: uint16(9504), + 1995: uint16(8966), + 1996: uint16(9231), + 1997: uint16(13876), + 1998: uint16(5130), + 1999: uint16(7699), + 2000: uint16(10251), + 2001: uint16(4950), + 2002: uint16(9733), + 2003: uint16(13877), + 2004: uint16(6709), + 2005: uint16(10777), + 2006: uint16(10778), + 2007: uint16(4189), + 2008: uint16(13882), + 2009: uint16(8776), + 2010: uint16(13879), + 2011: uint16(4438), + 2012: uint16(14092), + 2013: uint16(13881), + 2014: uint16(9743), + 2015: uint16(13880), + 2016: uint16(13878), + 2017: uint16(6233), + 2018: uint16(13884), + 2019: uint16(13890), + 2020: uint16(13896), + 2021: uint16(13888), + 2022: uint16(9275), + 2023: uint16(13893), + 2024: uint16(10300), + 2025: uint16(13887), + 2026: uint16(13892), + 2027: uint16(11590), + 2028: uint16(6710), + 2029: uint16(8500), + 2030: uint16(13885), + 2031: uint16(5181), + 2032: uint16(13895), + 2033: uint16(7948), + 2034: uint16(4164), + 2035: uint16(13889), + 2036: uint16(4439), + 2037: uint16(13894), + 2038: uint16(5392), + 2039: uint16(13891), + 2040: uint16(13897), + 2041: uint16(13899), + 2042: uint16(13909), + 2043: uint16(13907), + 2044: uint16(13904), + 2045: uint16(13903), + 2046: uint16(11607), + 2047: uint16(13905), + 2048: uint16(5393), + 2049: uint16(6160), + 2050: uint16(7257), + 2051: uint16(13912), + 2052: uint16(13898), + 2053: uint16(13902), + 2054: uint16(13886), + 2055: uint16(4441), + 2056: uint16(13906), + 2057: uint16(13908), + 2058: uint16(8752), + 2059: uint16(6407), + 2060: uint16(4375), + 2061: uint16(13900), + 2062: uint16(13911), + 2063: uint16(13910), + 2064: uint16(5394), + 2065: uint16(8456), + 2066: uint16(4677), + 2067: uint16(5666), + 2068: uint16(13901), + 2069: uint16(13913), + 2070: uint16(13916), + 2071: uint16(14080), + 2072: uint16(6940), + 2073: uint16(14086), + 2074: uint16(9039), + 2075: uint16(13914), + 2076: uint16(14084), + 2077: uint16(4440), + 2078: uint16(14082), + 2079: uint16(14083), + 2080: uint16(13917), + 2081: uint16(14081), + 2082: uint16(5958), + 2083: uint16(11273), + 2084: uint16(4884), + 2085: uint16(4152), + 2086: uint16(14085), + 2087: uint16(9753), + 2088: uint16(3852), + 2089: uint16(10048), + 2090: uint16(13883), + 2091: uint16(14091), + 2092: uint16(14095), + 2093: uint16(11076), + 2094: uint16(14088), + 2095: uint16(9288), + 2096: uint16(14093), + 2097: uint16(7503), + 2098: uint16(14094), + 2099: uint16(9526), + 2100: uint16(11814), + 2101: uint16(14090), + 2102: uint16(14096), + 2103: uint16(6234), + 2104: uint16(7978), + 2105: uint16(3891), + 2106: uint16(14089), + 2107: uint16(14087), + 2108: uint16(8249), + 2109: uint16(13915), + 2110: uint16(6675), + 2111: uint16(8485), + 2112: uint16(14108), + 2113: uint16(8250), + 2114: uint16(14103), + 2115: uint16(14100), + 2116: uint16(14101), + 2117: uint16(6981), + 2118: uint16(14104), + 2119: uint16(14107), + 2120: uint16(14102), + 2121: uint16(7172), + 2122: uint16(14105), + 2123: uint16(14099), + 2124: uint16(11099), + 2125: uint16(11098), + 2126: uint16(14109), + 2127: uint16(14110), + 2128: uint16(3892), + 2129: uint16(14098), + 2130: uint16(5457), + 2131: uint16(3845), + 2132: uint16(4885), + 2133: uint16(14106), + 2134: uint16(14114), + 2135: uint16(14113), + 2136: uint16(14118), + 2137: uint16(14119), + 2138: uint16(14117), + 2139: uint16(14120), + 2140: uint16(14112), + 2141: uint16(14116), + 2142: uint16(14121), + 2143: uint16(14122), + 2144: uint16(14111), + 2145: uint16(6747), + 2146: uint16(14115), + 2147: uint16(8501), + 2148: uint16(6161), + 2149: uint16(14097), + 2150: uint16(7700), + 2151: uint16(14135), + 2152: uint16(10568), + 2153: uint16(14125), + 2154: uint16(14126), + 2155: uint16(14127), + 2156: uint16(14134), + 2157: uint16(14133), + 2158: uint16(10844), + 2159: uint16(4886), + 2160: uint16(14131), + 2161: uint16(5668), + 2162: uint16(4627), + 2163: uint16(14128), + 2164: uint16(11543), + 2165: uint16(14130), + 2166: uint16(3893), + 2167: uint16(14132), + 2168: uint16(14123), + 2169: uint16(14129), + 2170: uint16(14136), + 2171: uint16(5667), + 2172: uint16(14124), + 2173: uint16(11324), + 2174: uint16(11274), + 2175: uint16(14139), + 2176: uint16(14143), + 2177: uint16(8285), + 2178: uint16(11608), + 2179: uint16(14144), + 2180: uint16(14141), + 2181: uint16(14138), + 2182: uint16(14137), + 2183: uint16(14142), + 2184: uint16(10511), + 2185: uint16(9491), + 2186: uint16(5669), + 2187: uint16(14145), + 2188: uint16(14140), + 2189: uint16(14146), + 2190: uint16(5722), + 2191: uint16(4368), + 2192: uint16(14154), + 2193: uint16(4887), + 2194: uint16(14152), + 2195: uint16(14153), + 2196: uint16(6408), + 2197: uint16(14151), + 2198: uint16(14149), + 2199: uint16(14148), + 2200: uint16(14155), + 2201: uint16(14147), + 2202: uint16(14157), + 2203: uint16(4442), + 2204: uint16(14159), + 2205: uint16(14158), + 2206: uint16(8967), + 2207: uint16(14162), + 2208: uint16(14160), + 2209: uint16(14150), + 2210: uint16(5723), + 2211: uint16(14161), + 2212: uint16(14165), + 2213: uint16(14164), + 2214: uint16(14166), + 2215: uint16(14163), + 2216: uint16(14167), + 2217: uint16(14168), + 2218: uint16(14169), + 2219: uint16(10569), + 2220: uint16(14171), + 2221: uint16(14170), + 2222: uint16(7198), + 2223: uint16(7949), + 2224: uint16(4421), + 2225: uint16(4443), + 2226: uint16(14172), + 2227: uint16(3870), + 2228: uint16(7979), + 2229: uint16(14173), + 2230: uint16(19234), + 2231: uint16(14336), + 2232: uint16(5696), + 2233: uint16(14337), + 2234: uint16(8014), + 2235: uint16(14338), + 2236: uint16(14339), + 2237: uint16(5145), + 2238: uint16(14340), + 2239: uint16(14341), + 2240: uint16(14342), + 2241: uint16(8502), + 2242: uint16(5932), + 2243: uint16(11072), + 2244: uint16(10779), + 2245: uint16(7241), + 2246: uint16(14343), + 2247: uint16(8015), + 2248: uint16(19740), + 2249: uint16(10049), + 2250: uint16(6985), + 2251: uint16(6444), + 2252: uint16(14344), + 2253: uint16(8486), + 2254: uint16(10502), + 2255: uint16(8528), + 2256: uint16(14347), + 2257: uint16(14345), + 2258: uint16(14348), + 2259: uint16(14346), + 2260: uint16(14349), + 2261: uint16(10512), + 2262: uint16(3862), + 2263: uint16(10301), + 2264: uint16(10050), + 2265: uint16(14350), + 2266: uint16(14353), + 2267: uint16(7444), + 2268: uint16(5146), + 2269: uint16(14351), + 2270: uint16(14358), + 2271: uint16(7445), + 2272: uint16(14352), + 2273: uint16(9763), + 2274: uint16(11325), + 2275: uint16(14354), + 2276: uint16(14355), + 2277: uint16(14359), + 2278: uint16(9289), + 2279: uint16(14356), + 2280: uint16(6162), + 2281: uint16(7997), + 2282: uint16(14373), + 2283: uint16(10003), + 2284: uint16(8529), + 2285: uint16(10051), + 2286: uint16(14604), + 2287: uint16(10585), + 2288: uint16(9040), + 2289: uint16(10836), + 2290: uint16(14362), + 2291: uint16(4352), + 2292: uint16(8777), + 2293: uint16(14371), + 2294: uint16(8723), + 2295: uint16(14365), + 2296: uint16(14372), + 2297: uint16(14367), + 2298: uint16(14374), + 2299: uint16(14370), + 2300: uint16(14369), + 2301: uint16(9806), + 2302: uint16(14363), + 2303: uint16(4444), + 2304: uint16(14361), + 2305: uint16(5200), + 2306: uint16(8530), + 2307: uint16(14357), + 2308: uint16(14360), + 2309: uint16(6163), + 2310: uint16(7994), + 2311: uint16(7446), + 2312: uint16(14368), + 2313: uint16(9777), + 2314: uint16(5201), + 2315: uint16(4647), + 2316: uint16(4678), + 2317: uint16(7680), + 2318: uint16(14376), + 2319: uint16(14381), + 2320: uint16(14377), + 2321: uint16(5724), + 2322: uint16(14382), + 2323: uint16(6657), + 2324: uint16(6216), + 2325: uint16(7173), + 2326: uint16(14364), + 2327: uint16(6748), + 2328: uint16(14379), + 2329: uint16(6711), + 2330: uint16(14380), + 2331: uint16(3875), + 2332: uint16(14375), + 2333: uint16(8968), + 2334: uint16(5202), + 2335: uint16(5395), + 2336: uint16(14378), + 2337: uint16(3846), + 2338: uint16(6434), + 2339: uint16(7701), + 2340: uint16(9041), + 2341: uint16(10035), + 2342: uint16(14384), + 2343: uint16(8253), + 2344: uint16(8457), + 2345: uint16(6666), + 2346: uint16(14385), + 2347: uint16(14387), + 2348: uint16(14383), + 2349: uint16(10560), + 2350: uint16(8988), + 2351: uint16(8251), + 2352: uint16(10586), + 2353: uint16(6957), + 2354: uint16(14399), + 2355: uint16(14398), + 2356: uint16(7767), + 2357: uint16(5725), + 2358: uint16(14392), + 2359: uint16(7448), + 2360: uint16(9543), + 2361: uint16(9744), + 2362: uint16(14390), + 2363: uint16(8252), + 2364: uint16(6999), + 2365: uint16(14395), + 2366: uint16(7447), + 2367: uint16(14389), + 2368: uint16(14394), + 2369: uint16(9778), + 2370: uint16(14388), + 2371: uint16(5632), + 2372: uint16(4668), + 2373: uint16(14396), + 2374: uint16(11530), + 2375: uint16(6445), + 2376: uint16(8724), + 2377: uint16(14393), + 2378: uint16(7995), + 2379: uint16(6164), + 2380: uint16(7747), + 2381: uint16(4165), + 2382: uint16(8219), + 2383: uint16(14391), + 2384: uint16(5156), + 2385: uint16(5670), + 2386: uint16(9006), + 2387: uint16(14397), + 2388: uint16(8254), + 2389: uint16(14400), + 2390: uint16(14402), + 2391: uint16(8470), + 2392: uint16(14408), + 2393: uint16(14403), + 2394: uint16(14405), + 2395: uint16(10272), + 2396: uint16(9042), + 2397: uint16(14406), + 2398: uint16(11275), + 2399: uint16(11303), + 2400: uint16(4888), + 2401: uint16(3853), + 2402: uint16(14404), + 2403: uint16(14401), + 2404: uint16(4951), + 2405: uint16(4166), + 2406: uint16(14407), + 2407: uint16(11304), + 2408: uint16(14411), + 2409: uint16(8474), + 2410: uint16(14418), + 2411: uint16(14412), + 2412: uint16(14409), + 2413: uint16(14416), + 2414: uint16(14386), + 2415: uint16(14413), + 2416: uint16(14417), + 2417: uint16(10017), + 2418: uint16(9290), + 2419: uint16(14410), + 2420: uint16(14414), + 2421: uint16(5671), + 2422: uint16(6480), + 2423: uint16(7996), + 2424: uint16(14422), + 2425: uint16(9221), + 2426: uint16(14419), + 2427: uint16(10815), + 2428: uint16(14420), + 2429: uint16(14421), + 2430: uint16(11053), + 2431: uint16(7937), + 2432: uint16(5697), + 2433: uint16(14428), + 2434: uint16(6676), + 2435: uint16(14425), + 2436: uint16(14424), + 2437: uint16(9745), + 2438: uint16(9492), + 2439: uint16(9232), + 2440: uint16(14426), + 2441: uint16(14427), + 2442: uint16(10318), + 2443: uint16(9764), + 2444: uint16(6658), + 2445: uint16(8016), + 2446: uint16(10799), + 2447: uint16(4648), + 2448: uint16(14596), + 2449: uint16(14429), + 2450: uint16(11305), + 2451: uint16(14598), + 2452: uint16(14594), + 2453: uint16(14595), + 2454: uint16(8255), + 2455: uint16(14593), + 2456: uint16(14366), + 2457: uint16(14597), + 2458: uint16(14592), + 2459: uint16(14602), + 2460: uint16(14603), + 2461: uint16(9222), + 2462: uint16(14605), + 2463: uint16(6659), + 2464: uint16(14600), + 2465: uint16(5147), + 2466: uint16(14606), + 2467: uint16(14599), + 2468: uint16(14610), + 2469: uint16(14609), + 2470: uint16(14608), + 2471: uint16(14611), + 2472: uint16(14613), + 2473: uint16(7504), + 2474: uint16(14612), + 2475: uint16(14616), + 2476: uint16(14614), + 2477: uint16(14615), + 2478: uint16(14415), + 2479: uint16(14618), + 2480: uint16(14617), + 2481: uint16(14423), + 2482: uint16(14619), + 2483: uint16(14607), + 2484: uint16(6712), + 2485: uint16(14620), + 2486: uint16(14621), + 2487: uint16(14623), + 2488: uint16(14622), + 2489: uint16(14624), + 2490: uint16(4445), + 2491: uint16(6165), + 2492: uint16(10587), + 2493: uint16(7950), + 2494: uint16(5933), + 2495: uint16(14626), + 2496: uint16(14629), + 2497: uint16(10289), + 2498: uint16(5182), + 2499: uint16(14628), + 2500: uint16(14627), + 2501: uint16(9779), + 2502: uint16(14630), + 2503: uint16(5396), + 2504: uint16(14632), + 2505: uint16(14631), + 2506: uint16(4889), + 2507: uint16(6677), + 2508: uint16(9527), + 2509: uint16(5672), + 2510: uint16(7763), + 2511: uint16(14633), + 2512: uint16(7951), + 2513: uint16(9223), + 2514: uint16(10302), + 2515: uint16(14634), + 2516: uint16(14635), + 2517: uint16(14636), + 2518: uint16(10519), + 2519: uint16(13372), + 2520: uint16(7973), + 2521: uint16(10283), + 2522: uint16(6455), + 2523: uint16(10052), + 2524: uint16(10018), + 2525: uint16(9260), + 2526: uint16(11552), + 2527: uint16(14638), + 2528: uint16(6959), + 2529: uint16(14639), + 2530: uint16(3861), + 2531: uint16(5427), + 2532: uint16(7980), + 2533: uint16(10303), + 2534: uint16(14640), + 2535: uint16(6689), + 2536: uint16(8742), + 2537: uint16(6714), + 2538: uint16(7702), + 2539: uint16(14641), + 2540: uint16(10588), + 2541: uint16(4182), + 2542: uint16(6715), + 2543: uint16(14644), + 2544: uint16(14642), + 2545: uint16(14645), + 2546: uint16(11544), + 2547: uint16(14643), + 2548: uint16(8026), + 2549: uint16(14646), + 2550: uint16(8465), + 2551: uint16(14647), + 2552: uint16(4953), + 2553: uint16(14649), + 2554: uint16(14648), + 2555: uint16(14650), + 2556: uint16(14651), + 2557: uint16(4954), + 2558: uint16(9563), + 2559: uint16(8725), + 2560: uint16(5195), + 2561: uint16(6716), + 2562: uint16(8256), + 2563: uint16(7227), + 2564: uint16(3855), + 2565: uint16(14652), + 2566: uint16(4353), + 2567: uint16(14656), + 2568: uint16(6166), + 2569: uint16(14655), + 2570: uint16(6410), + 2571: uint16(7449), + 2572: uint16(14654), + 2573: uint16(7450), + 2574: uint16(11039), + 2575: uint16(6409), + 2576: uint16(3894), + 2577: uint16(7981), + 2578: uint16(14661), + 2579: uint16(7952), + 2580: uint16(4134), + 2581: uint16(7220), + 2582: uint16(10821), + 2583: uint16(6481), + 2584: uint16(7451), + 2585: uint16(7942), + 2586: uint16(14660), + 2587: uint16(14658), + 2588: uint16(14659), + 2589: uint16(8778), + 2590: uint16(14853), + 2591: uint16(14665), + 2592: uint16(6749), + 2593: uint16(6167), + 2594: uint16(14663), + 2595: uint16(14664), + 2596: uint16(7703), + 2597: uint16(14662), + 2598: uint16(6670), + 2599: uint16(14667), + 2600: uint16(14666), + 2601: uint16(14671), + 2602: uint16(14672), + 2603: uint16(14668), + 2604: uint16(4609), + 2605: uint16(14669), + 2606: uint16(14670), + 2607: uint16(10036), + 2608: uint16(10304), + 2609: uint16(5673), + 2610: uint16(14673), + 2611: uint16(7953), + 2612: uint16(7452), + 2613: uint16(8753), + 2614: uint16(5414), + 2615: uint16(14674), + 2616: uint16(14678), + 2617: uint16(4394), + 2618: uint16(14675), + 2619: uint16(14677), + 2620: uint16(14676), + 2621: uint16(7242), + 2622: uint16(8743), + 2623: uint16(3876), + 2624: uint16(14679), + 2625: uint16(14680), + 2626: uint16(8969), + 2627: uint16(11600), + 2628: uint16(6690), + 2629: uint16(10570), + 2630: uint16(10780), + 2631: uint16(14849), + 2632: uint16(14682), + 2633: uint16(14685), + 2634: uint16(14684), + 2635: uint16(14681), + 2636: uint16(14848), + 2637: uint16(9533), + 2638: uint16(14683), + 2639: uint16(14850), + 2640: uint16(7243), + 2641: uint16(14851), + 2642: uint16(11306), + 2643: uint16(9815), + 2644: uint16(14852), + 2645: uint16(14854), + 2646: uint16(14855), + 2647: uint16(14856), + 2648: uint16(5417), + 2649: uint16(4135), + 2650: uint16(6168), + 2651: uint16(14857), + 2652: uint16(14858), + 2653: uint16(7248), + 2654: uint16(8257), + 2655: uint16(12599), + 2656: uint16(8221), + 2657: uint16(8220), + 2658: uint16(8503), + 2659: uint16(6438), + 2660: uint16(12113), + 2661: uint16(5709), + 2662: uint16(11276), + 2663: uint16(10589), + 2664: uint16(10333), + 2665: uint16(14859), + 2666: uint16(6482), + 2667: uint16(8990), + 2668: uint16(14860), + 2669: uint16(11790), + 2670: uint16(10781), + 2671: uint16(8970), + 2672: uint16(14861), + 2673: uint16(4955), + 2674: uint16(14862), + 2675: uint16(14863), + 2676: uint16(11065), + 2677: uint16(11011), + 2678: uint16(10837), + 2679: uint16(10811), + 2680: uint16(6660), + 2681: uint16(14865), + 2682: uint16(6986), + 2683: uint16(10800), + 2684: uint16(14867), + 2685: uint16(14870), + 2686: uint16(14869), + 2687: uint16(4952), + 2688: uint16(5183), + 2689: uint16(14866), + 2690: uint16(14868), + 2691: uint16(14871), + 2692: uint16(7768), + 2693: uint16(11354), + 2694: uint16(3880), + 2695: uint16(6463), + 2696: uint16(8475), + 2697: uint16(6972), + 2698: uint16(7506), + 2699: uint16(14874), + 2700: uint16(9261), + 2701: uint16(14872), + 2702: uint16(8458), + 2703: uint16(14873), + 2704: uint16(7505), + 2705: uint16(11068), + 2706: uint16(14875), + 2707: uint16(14876), + 2708: uint16(11335), + 2709: uint16(14881), + 2710: uint16(6169), + 2711: uint16(9780), + 2712: uint16(14878), + 2713: uint16(9291), + 2714: uint16(14653), + 2715: uint16(14657), + 2716: uint16(5166), + 2717: uint16(9766), + 2718: uint16(14880), + 2719: uint16(7453), + 2720: uint16(10019), + 2721: uint16(14886), + 2722: uint16(10073), + 2723: uint16(14877), + 2724: uint16(14883), + 2725: uint16(14882), + 2726: uint16(7982), + 2727: uint16(10828), + 2728: uint16(11570), + 2729: uint16(10822), + 2730: uint16(4395), + 2731: uint16(6717), + 2732: uint16(11815), + 2733: uint16(14885), + 2734: uint16(7764), + 2735: uint16(14884), + 2736: uint16(14879), + 2737: uint16(5934), + 2738: uint16(14891), + 2739: uint16(14889), + 2740: uint16(4396), + 2741: uint16(14887), + 2742: uint16(14893), + 2743: uint16(14899), + 2744: uint16(8487), + 2745: uint16(10528), + 2746: uint16(14901), + 2747: uint16(10241), + 2748: uint16(14900), + 2749: uint16(9807), + 2750: uint16(10782), + 2751: uint16(4890), + 2752: uint16(8022), + 2753: uint16(7199), + 2754: uint16(9010), + 2755: uint16(11277), + 2756: uint16(14896), + 2757: uint16(14895), + 2758: uint16(14897), + 2759: uint16(14894), + 2760: uint16(14902), + 2761: uint16(14892), + 2762: uint16(14890), + 2763: uint16(14898), + 2764: uint16(14888), + 2765: uint16(8779), + 2766: uint16(11095), + 2767: uint16(6949), + 2768: uint16(6483), + 2769: uint16(6425), + 2770: uint16(10830), + 2771: uint16(4640), + 2772: uint16(9005), + 2773: uint16(9513), + 2774: uint16(4136), + 2775: uint16(8017), + 2776: uint16(7955), + 2777: uint16(5641), + 2778: uint16(14904), + 2779: uint16(6170), + 2780: uint16(4699), + 2781: uint16(14906), + 2782: uint16(4691), + 2783: uint16(14912), + 2784: uint16(14909), + 2785: uint16(8018), + 2786: uint16(4650), + 2787: uint16(6411), + 2788: uint16(4649), + 2789: uint16(6446), + 2790: uint16(14907), + 2791: uint16(5700), + 2792: uint16(5674), + 2793: uint16(9292), + 2794: uint16(14905), + 2795: uint16(3877), + 2796: uint16(14908), + 2797: uint16(14910), + 2798: uint16(5420), + 2799: uint16(5643), + 2800: uint16(4891), + 2801: uint16(5162), + 2802: uint16(14913), + 2803: uint16(6488), + 2804: uint16(10832), + 2805: uint16(6678), + 2806: uint16(14914), + 2807: uint16(10255), + 2808: uint16(14926), + 2809: uint16(4370), + 2810: uint16(14915), + 2811: uint16(14932), + 2812: uint16(14916), + 2813: uint16(11553), + 2814: uint16(14923), + 2815: uint16(9790), + 2816: uint16(14931), + 2817: uint16(14918), + 2818: uint16(3859), + 2819: uint16(14920), + 2820: uint16(6171), + 2821: uint16(14922), + 2822: uint16(14921), + 2823: uint16(14917), + 2824: uint16(14928), + 2825: uint16(7454), + 2826: uint16(13132), + 2827: uint16(5959), + 2828: uint16(11355), + 2829: uint16(14919), + 2830: uint16(9043), + 2831: uint16(4610), + 2832: uint16(6412), + 2833: uint16(14911), + 2834: uint16(14927), + 2835: uint16(4672), + 2836: uint16(14925), + 2837: uint16(14929), + 2838: uint16(9293), + 2839: uint16(4957), + 2840: uint16(15121), + 2841: uint16(11048), + 2842: uint16(14934), + 2843: uint16(4956), + 2844: uint16(14941), + 2845: uint16(10783), + 2846: uint16(15104), + 2847: uint16(15106), + 2848: uint16(15110), + 2849: uint16(14936), + 2850: uint16(8713), + 2851: uint16(9294), + 2852: uint16(15114), + 2853: uint16(14939), + 2854: uint16(15111), + 2855: uint16(15105), + 2856: uint16(7704), + 2857: uint16(15115), + 2858: uint16(7954), + 2859: uint16(15113), + 2860: uint16(4892), + 2861: uint16(11823), + 2862: uint16(14933), + 2863: uint16(15109), + 2864: uint16(3895), + 2865: uint16(14935), + 2866: uint16(11033), + 2867: uint16(14940), + 2868: uint16(7681), + 2869: uint16(8998), + 2870: uint16(14930), + 2871: uint16(15108), + 2872: uint16(7769), + 2873: uint16(15118), + 2874: uint16(4688), + 2875: uint16(5888), + 2876: uint16(15120), + 2877: uint16(14937), + 2878: uint16(15119), + 2879: uint16(15112), + 2880: uint16(14938), + 2881: uint16(15116), + 2882: uint16(15117), + 2883: uint16(15134), + 2884: uint16(9517), + 2885: uint16(15107), + 2886: uint16(15130), + 2887: uint16(15132), + 2888: uint16(9015), + 2889: uint16(11307), + 2890: uint16(10325), + 2891: uint16(15127), + 2892: uint16(8489), + 2893: uint16(15133), + 2894: uint16(8222), + 2895: uint16(15124), + 2896: uint16(15137), + 2897: uint16(15136), + 2898: uint16(9550), + 2899: uint16(15135), + 2900: uint16(9545), + 2901: uint16(15139), + 2902: uint16(15126), + 2903: uint16(5415), + 2904: uint16(15129), + 2905: uint16(7228), + 2906: uint16(9791), + 2907: uint16(15131), + 2908: uint16(5418), + 2909: uint16(15123), + 2910: uint16(15125), + 2911: uint16(15122), + 2912: uint16(11791), + 2913: uint16(4665), + 2914: uint16(15128), + 2915: uint16(15138), + 2916: uint16(4628), + 2917: uint16(6470), + 2918: uint16(4156), + 2919: uint16(15155), + 2920: uint16(11792), + 2921: uint16(15158), + 2922: uint16(7705), + 2923: uint16(15157), + 2924: uint16(15156), + 2925: uint16(15153), + 2926: uint16(15141), + 2927: uint16(15170), + 2928: uint16(15140), + 2929: uint16(15159), + 2930: uint16(15151), + 2931: uint16(15146), + 2932: uint16(15143), + 2933: uint16(15144), + 2934: uint16(15152), + 2935: uint16(21249), + 2936: uint16(15149), + 2937: uint16(6172), + 2938: uint16(8999), + 2939: uint16(8259), + 2940: uint16(15147), + 2941: uint16(15142), + 2942: uint16(15145), + 2943: uint16(11308), + 2944: uint16(10825), + 2945: uint16(15150), + 2946: uint16(15160), + 2947: uint16(15168), + 2948: uint16(15161), + 2949: uint16(15174), + 2950: uint16(15172), + 2951: uint16(15167), + 2952: uint16(15166), + 2953: uint16(9007), + 2954: uint16(8260), + 2955: uint16(15164), + 2956: uint16(15162), + 2957: uint16(15169), + 2958: uint16(15175), + 2959: uint16(10068), + 2960: uint16(15181), + 2961: uint16(15176), + 2962: uint16(15179), + 2963: uint16(15173), + 2964: uint16(8787), + 2965: uint16(10263), + 2966: uint16(15163), + 2967: uint16(15171), + 2968: uint16(7455), + 2969: uint16(11054), + 2970: uint16(15191), + 2971: uint16(15178), + 2972: uint16(5889), + 2973: uint16(4354), + 2974: uint16(4670), + 2975: uint16(15154), + 2976: uint16(7456), + 2977: uint16(15183), + 2978: uint16(15190), + 2979: uint16(7000), + 2980: uint16(4689), + 2981: uint16(8717), + 2982: uint16(15180), + 2983: uint16(15185), + 2984: uint16(15189), + 2985: uint16(5397), + 2986: uint16(5163), + 2987: uint16(15187), + 2988: uint16(5120), + 2989: uint16(9514), + 2990: uint16(15186), + 2991: uint16(15188), + 2992: uint16(15182), + 2993: uint16(15184), + 2994: uint16(4671), + 2995: uint16(8744), + 2996: uint16(15195), + 2997: uint16(15193), + 2998: uint16(5960), + 2999: uint16(15192), + 3000: uint16(15360), + 3001: uint16(14903), + 3002: uint16(15194), + 3003: uint16(15196), + 3004: uint16(15197), + 3005: uint16(15371), + 3006: uint16(15367), + 3007: uint16(14924), + 3008: uint16(15366), + 3009: uint16(15365), + 3010: uint16(15362), + 3011: uint16(15177), + 3012: uint16(15364), + 3013: uint16(15363), + 3014: uint16(15369), + 3015: uint16(11781), + 3016: uint16(15372), + 3017: uint16(5466), + 3018: uint16(15368), + 3019: uint16(15370), + 3020: uint16(9990), + 3021: uint16(15373), + 3022: uint16(15377), + 3023: uint16(15374), + 3024: uint16(11346), + 3025: uint16(15375), + 3026: uint16(15165), + 3027: uint16(15378), + 3028: uint16(15379), + 3029: uint16(4116), + 3030: uint16(15381), + 3031: uint16(5702), + 3032: uint16(6912), + 3033: uint16(5428), + 3034: uint16(4355), + 3035: uint16(11326), + 3036: uint16(15383), + 3037: uint16(15382), + 3038: uint16(15385), + 3039: uint16(5148), + 3040: uint16(5429), + 3041: uint16(4893), + 3042: uint16(15388), + 3043: uint16(15387), + 3044: uint16(15389), + 3045: uint16(4397), + 3046: uint16(8726), + 3047: uint16(15390), + 3048: uint16(4894), + 3049: uint16(15392), + 3050: uint16(15391), + 3051: uint16(15393), + 3052: uint16(15394), + 3053: uint16(15395), + 3054: uint16(6718), + 3055: uint16(7956), + 3056: uint16(6400), + 3057: uint16(10319), + 3058: uint16(10561), + 3059: uint16(11811), + 3060: uint16(6740), + 3061: uint16(6447), + 3062: uint16(11601), + 3063: uint16(15396), + 3064: uint16(15397), + 3065: uint16(6719), + 3066: uint16(15398), + 3067: uint16(15399), + 3068: uint16(15401), + 3069: uint16(15400), + 3070: uint16(10807), + 3071: uint16(7229), + 3072: uint16(6987), + 3073: uint16(6691), + 3074: uint16(15402), + 3075: uint16(15404), + 3076: uint16(7682), + 3077: uint16(15403), + 3078: uint16(15405), + 3079: uint16(15406), + 3080: uint16(15407), + 3081: uint16(15408), + 3082: uint16(15409), + 3083: uint16(15411), + 3084: uint16(15410), + 3085: uint16(15412), + 3086: uint16(4356), + 3087: uint16(8745), + 3088: uint16(15413), + 3089: uint16(6661), + 3090: uint16(4651), + 3091: uint16(15414), + 3092: uint16(9249), + 3093: uint16(13099), + 3094: uint16(5122), + 3095: uint16(15415), + 3096: uint16(15416), + 3097: uint16(10571), + 3098: uint16(10823), + 3099: uint16(9510), + 3100: uint16(15417), + 3101: uint16(10053), + 3102: uint16(10074), + 3103: uint16(11058), + 3104: uint16(15418), + 3105: uint16(15420), + 3106: uint16(15419), + 3107: uint16(15422), + 3108: uint16(15421), + 3109: uint16(15424), + 3110: uint16(6720), + 3111: uint16(11024), + 3112: uint16(15425), + 3113: uint16(15426), + 3114: uint16(5123), + 3115: uint16(15427), + 3116: uint16(15429), + 3117: uint16(15428), + 3118: uint16(7748), + 3119: uint16(10264), + 3120: uint16(4137), + 3121: uint16(10020), + 3122: uint16(9044), + 3123: uint16(7200), + 3124: uint16(5184), + 3125: uint16(10021), + 3126: uint16(6925), + 3127: uint16(15431), + 3128: uint16(4895), + 3129: uint16(4183), + 3130: uint16(9553), + 3131: uint16(15430), + 3132: uint16(6173), + 3133: uint16(8754), + 3134: uint16(15432), + 3135: uint16(15440), + 3136: uint16(15433), + 3137: uint16(8480), + 3138: uint16(5185), + 3139: uint16(15441), + 3140: uint16(5703), + 3141: uint16(5124), + 3142: uint16(15439), + 3143: uint16(15437), + 3144: uint16(15434), + 3145: uint16(11327), + 3146: uint16(8991), + 3147: uint16(9528), + 3148: uint16(15435), + 3149: uint16(15443), + 3150: uint16(15442), + 3151: uint16(5634), + 3152: uint16(4364), + 3153: uint16(6426), + 3154: uint16(15436), + 3155: uint16(15438), + 3156: uint16(10806), + 3157: uint16(8531), + 3158: uint16(10838), + 3159: uint16(15451), + 3160: uint16(15452), + 3161: uint16(4398), + 3162: uint16(10503), + 3163: uint16(11100), + 3164: uint16(15616), + 3165: uint16(6914), + 3166: uint16(7457), + 3167: uint16(15447), + 3168: uint16(15453), + 3169: uint16(4167), + 3170: uint16(5398), + 3171: uint16(15444), + 3172: uint16(15449), + 3173: uint16(8019), + 3174: uint16(9808), + 3175: uint16(10054), + 3176: uint16(15446), + 3177: uint16(10752), + 3178: uint16(15448), + 3179: uint16(15619), + 3180: uint16(15617), + 3181: uint16(15450), + 3182: uint16(10753), + 3183: uint16(9767), + 3184: uint16(5186), + 3185: uint16(9220), + 3186: uint16(8780), + 3187: uint16(15620), + 3188: uint16(15618), + 3189: uint16(8504), + 3190: uint16(15445), + 3191: uint16(4138), + 3192: uint16(11309), + 3193: uint16(15631), + 3194: uint16(15630), + 3195: uint16(8021), + 3196: uint16(15627), + 3197: uint16(11339), + 3198: uint16(9493), + 3199: uint16(15621), + 3200: uint16(8996), + 3201: uint16(4139), + 3202: uint16(6174), + 3203: uint16(15624), + 3204: uint16(7174), + 3205: uint16(15629), + 3206: uint16(15628), + 3207: uint16(15623), + 3208: uint16(15626), + 3209: uint16(4679), + 3210: uint16(15625), + 3211: uint16(9768), + 3212: uint16(11533), + 3213: uint16(7507), + 3214: uint16(8020), + 3215: uint16(15637), + 3216: uint16(15635), + 3217: uint16(10284), + 3218: uint16(15632), + 3219: uint16(15634), + 3220: uint16(4121), + 3221: uint16(6175), + 3222: uint16(11793), + 3223: uint16(4636), + 3224: uint16(10305), + 3225: uint16(11328), + 3226: uint16(4611), + 3227: uint16(7706), + 3228: uint16(15636), + 3229: uint16(15641), + 3230: uint16(7458), + 3231: uint16(11279), + 3232: uint16(15638), + 3233: uint16(15633), + 3234: uint16(15639), + 3235: uint16(11581), + 3236: uint16(9298), + 3237: uint16(9505), + 3238: uint16(4629), + 3239: uint16(4148), + 3240: uint16(15645), + 3241: uint16(15648), + 3242: uint16(11554), + 3243: uint16(11331), + 3244: uint16(15655), + 3245: uint16(15649), + 3246: uint16(15646), + 3247: uint16(11571), + 3248: uint16(15652), + 3249: uint16(7209), + 3250: uint16(15654), + 3251: uint16(15659), + 3252: uint16(9296), + 3253: uint16(15657), + 3254: uint16(15651), + 3255: uint16(8727), + 3256: uint16(15658), + 3257: uint16(15647), + 3258: uint16(15653), + 3259: uint16(15660), + 3260: uint16(3931), + 3261: uint16(15650), + 3262: uint16(15661), + 3263: uint16(7707), + 3264: uint16(7230), + 3265: uint16(10500), + 3266: uint16(6413), + 3267: uint16(15642), + 3268: uint16(15656), + 3269: uint16(9241), + 3270: uint16(7957), + 3271: uint16(4680), + 3272: uint16(6448), + 3273: uint16(7459), + 3274: uint16(15644), + 3275: uint16(7201), + 3276: uint16(5675), + 3277: uint16(15643), + 3278: uint16(15665), + 3279: uint16(7244), + 3280: uint16(5913), + 3281: uint16(15680), + 3282: uint16(15674), + 3283: uint16(5203), + 3284: uint16(9262), + 3285: uint16(15669), + 3286: uint16(15678), + 3287: uint16(3854), + 3288: uint16(4113), + 3289: uint16(4376), + 3290: uint16(15671), + 3291: uint16(8459), + 3292: uint16(15662), + 3293: uint16(15664), + 3294: uint16(6176), + 3295: uint16(15681), + 3296: uint16(15676), + 3297: uint16(15668), + 3298: uint16(15675), + 3299: uint16(11018), + 3300: uint16(15673), + 3301: uint16(15677), + 3302: uint16(5935), + 3303: uint16(7460), + 3304: uint16(8728), + 3305: uint16(15667), + 3306: uint16(11278), + 3307: uint16(15670), + 3308: uint16(15663), + 3309: uint16(9297), + 3310: uint16(15666), + 3311: uint16(15672), + 3312: uint16(11824), + 3313: uint16(6941), + 3314: uint16(10845), + 3315: uint16(15682), + 3316: uint16(9997), + 3317: uint16(15694), + 3318: uint16(5914), + 3319: uint16(7231), + 3320: uint16(15684), + 3321: uint16(11534), + 3322: uint16(6177), + 3323: uint16(15697), + 3324: uint16(3917), + 3325: uint16(15695), + 3326: uint16(15683), + 3327: uint16(15689), + 3328: uint16(15691), + 3329: uint16(11310), + 3330: uint16(15686), + 3331: uint16(9229), + 3332: uint16(15688), + 3333: uint16(15696), + 3334: uint16(15690), + 3335: uint16(11046), + 3336: uint16(15685), + 3337: uint16(6913), + 3338: uint16(15709), + 3339: uint16(4681), + 3340: uint16(15687), + 3341: uint16(15692), + 3342: uint16(15693), + 3343: uint16(8523), + 3344: uint16(8505), + 3345: uint16(15701), + 3346: uint16(15707), + 3347: uint16(15705), + 3348: uint16(9224), + 3349: uint16(15874), + 3350: uint16(15702), + 3351: uint16(15703), + 3352: uint16(15679), + 3353: uint16(5208), + 3354: uint16(10265), + 3355: uint16(6942), + 3356: uint16(6230), + 3357: uint16(11794), + 3358: uint16(15699), + 3359: uint16(15873), + 3360: uint16(4168), + 3361: uint16(8261), + 3362: uint16(9816), + 3363: uint16(4896), + 3364: uint16(11609), + 3365: uint16(11008), + 3366: uint16(9009), + 3367: uint16(15706), + 3368: uint16(15708), + 3369: uint16(8209), + 3370: uint16(15872), + 3371: uint16(15704), + 3372: uint16(15698), + 3373: uint16(4898), + 3374: uint16(5704), + 3375: uint16(15886), + 3376: uint16(15881), + 3377: uint16(8023), + 3378: uint16(4674), + 3379: uint16(7232), + 3380: uint16(15890), + 3381: uint16(15883), + 3382: uint16(8971), + 3383: uint16(15880), + 3384: uint16(9016), + 3385: uint16(15915), + 3386: uint16(15877), + 3387: uint16(15876), + 3388: uint16(15885), + 3389: uint16(15879), + 3390: uint16(15878), + 3391: uint16(15884), + 3392: uint16(7936), + 3393: uint16(15875), + 3394: uint16(15887), + 3395: uint16(15888), + 3396: uint16(4897), + 3397: uint16(15893), + 3398: uint16(15892), + 3399: uint16(15894), + 3400: uint16(15897), + 3401: uint16(9250), + 3402: uint16(15891), + 3403: uint16(15895), + 3404: uint16(5698), + 3405: uint16(8536), + 3406: uint16(15889), + 3407: uint16(9754), + 3408: uint16(15896), + 3409: uint16(15901), + 3410: uint16(15899), + 3411: uint16(15902), + 3412: uint16(15905), + 3413: uint16(15898), + 3414: uint16(6217), + 3415: uint16(9735), + 3416: uint16(15640), + 3417: uint16(11347), + 3418: uint16(15900), + 3419: uint16(15904), + 3420: uint16(8532), + 3421: uint16(15903), + 3422: uint16(15882), + 3423: uint16(20040), + 3424: uint16(15908), + 3425: uint16(15912), + 3426: uint16(15910), + 3427: uint16(15906), + 3428: uint16(15907), + 3429: uint16(15911), + 3430: uint16(15909), + 3431: uint16(10285), + 3432: uint16(15917), + 3433: uint16(15914), + 3434: uint16(15913), + 3435: uint16(15916), + 3436: uint16(9523), + 3437: uint16(15918), + 3438: uint16(8788), + 3439: uint16(8524), + 3440: uint16(7940), + 3441: uint16(15919), + 3442: uint16(15921), + 3443: uint16(15920), + 3444: uint16(15700), + 3445: uint16(15922), + 3446: uint16(9542), + 3447: uint16(15923), + 3448: uint16(4399), + 3449: uint16(9299), + 3450: uint16(4612), + 3451: uint16(5187), + 3452: uint16(6973), + 3453: uint16(6449), + 3454: uint16(11782), + 3455: uint16(7749), + 3456: uint16(4169), + 3457: uint16(15925), + 3458: uint16(15924), + 3459: uint16(15928), + 3460: uint16(8729), + 3461: uint16(15931), + 3462: uint16(15926), + 3463: uint16(15930), + 3464: uint16(15929), + 3465: uint16(9247), + 3466: uint16(3896), + 3467: uint16(11604), + 3468: uint16(15933), + 3469: uint16(4103), + 3470: uint16(15935), + 3471: uint16(15934), + 3472: uint16(15932), + 3473: uint16(15927), + 3474: uint16(10754), + 3475: uint16(15937), + 3476: uint16(15936), + 3477: uint16(4170), + 3478: uint16(15939), + 3479: uint16(10513), + 3480: uint16(15938), + 3481: uint16(11028), + 3482: uint16(7462), + 3483: uint16(8210), + 3484: uint16(7461), + 3485: uint16(11610), + 3486: uint16(15945), + 3487: uint16(8024), + 3488: uint16(15941), + 3489: uint16(15946), + 3490: uint16(4171), + 3491: uint16(15944), + 3492: uint16(9792), + 3493: uint16(15940), + 3494: uint16(15943), + 3495: uint16(7463), + 3496: uint16(10032), + 3497: uint16(15947), + 3498: uint16(6960), + 3499: uint16(8025), + 3500: uint16(15950), + 3501: uint16(15942), + 3502: uint16(5638), + 3503: uint16(15948), + 3504: uint16(11311), + 3505: uint16(15951), + 3506: uint16(21253), + 3507: uint16(7214), + 3508: uint16(15952), + 3509: uint16(15953), + 3510: uint16(9741), + 3511: uint16(15955), + 3512: uint16(15956), + 3513: uint16(9746), + 3514: uint16(9300), + 3515: uint16(15958), + 3516: uint16(15960), + 3517: uint16(11572), + 3518: uint16(15957), + 3519: uint16(15959), + 3520: uint16(4172), + 3521: uint16(15954), + 3522: uint16(12858), + 3523: uint16(15961), + 3524: uint16(8262), + 3525: uint16(6679), + 3526: uint16(15963), + 3527: uint16(15962), + 3528: uint16(7683), + 3529: uint16(12600), + 3530: uint16(15964), + 3531: uint16(16128), + 3532: uint16(15949), + 3533: uint16(15965), + 3534: uint16(16129), + 3535: uint16(9817), + 3536: uint16(16130), + 3537: uint16(16131), + 3538: uint16(16132), + 3539: uint16(16133), + 3540: uint16(9021), + 3541: uint16(16135), + 3542: uint16(16134), + 3543: uint16(16136), + 3544: uint16(16137), + 3545: uint16(6974), + 3546: uint16(10306), + 3547: uint16(11083), + 3548: uint16(16138), + 3549: uint16(16139), + 3550: uint16(8245), + 3551: uint16(6915), + 3552: uint16(16140), + 3553: uint16(16141), + 3554: uint16(16142), + 3555: uint16(10545), + 3556: uint16(10022), + 3557: uint16(16143), + 3558: uint16(9782), + 3559: uint16(8972), + 3560: uint16(16144), + 3561: uint16(4422), + 3562: uint16(5196), + 3563: uint16(11045), + 3564: uint16(11029), + 3565: uint16(4371), + 3566: uint16(11795), + 3567: uint16(10801), + 3568: uint16(10505), + 3569: uint16(7958), + 3570: uint16(16145), + 3571: uint16(9506), + 3572: uint16(5890), + 3573: uint16(16146), + 3574: uint16(6451), + 3575: uint16(16148), + 3576: uint16(16147), + 3577: uint16(16149), + 3578: uint16(16150), + 3579: uint16(16151), + 3580: uint16(5149), + 3581: uint16(16152), + 3582: uint16(16153), + 3583: uint16(5891), + 3584: uint16(10023), + 3585: uint16(16155), + 3586: uint16(7508), + 3587: uint16(16154), + 3588: uint16(5399), + 3589: uint16(16156), + 3590: uint16(16158), + 3591: uint16(16157), + 3592: uint16(16159), + 3593: uint16(5936), + 3594: uint16(16160), + 3595: uint16(5448), + 3596: uint16(8223), + 3597: uint16(6236), + 3598: uint16(16162), + 3599: uint16(16163), + 3600: uint16(16161), + 3601: uint16(6988), + 3602: uint16(9511), + 3603: uint16(5400), + 3604: uint16(16165), + 3605: uint16(8715), + 3606: uint16(16164), + 3607: uint16(11796), + 3608: uint16(9793), + 3609: uint16(16168), + 3610: uint16(16170), + 3611: uint16(16167), + 3612: uint16(11059), + 3613: uint16(16169), + 3614: uint16(16171), + 3615: uint16(11555), + 3616: uint16(16175), + 3617: uint16(16174), + 3618: uint16(8789), + 3619: uint16(9740), + 3620: uint16(5892), + 3621: uint16(16173), + 3622: uint16(16172), + 3623: uint16(11280), + 3624: uint16(11281), + 3625: uint16(16176), + 3626: uint16(4173), + 3627: uint16(6229), + 3628: uint16(6721), + 3629: uint16(16177), + 3630: uint16(16178), + 3631: uint16(16180), + 3632: uint16(7202), + 3633: uint16(16182), + 3634: uint16(16181), + 3635: uint16(16183), + 3636: uint16(4652), + 3637: uint16(16185), + 3638: uint16(16184), + 3639: uint16(16187), + 3640: uint16(16186), + 3641: uint16(5915), + 3642: uint16(11527), + 3643: uint16(5419), + 3644: uint16(4357), + 3645: uint16(5449), + 3646: uint16(4928), + 3647: uint16(11591), + 3648: uint16(16189), + 3649: uint16(16191), + 3650: uint16(16192), + 3651: uint16(4400), + 3652: uint16(16188), + 3653: uint16(6680), + 3654: uint16(8992), + 3655: uint16(16190), + 3656: uint16(16195), + 3657: uint16(6989), + 3658: uint16(16193), + 3659: uint16(5661), + 3660: uint16(10024), + 3661: uint16(16194), + 3662: uint16(16221), + 3663: uint16(16200), + 3664: uint16(5916), + 3665: uint16(5188), + 3666: uint16(16197), + 3667: uint16(11356), + 3668: uint16(11535), + 3669: uint16(8533), + 3670: uint16(16199), + 3671: uint16(16201), + 3672: uint16(11573), + 3673: uint16(5430), + 3674: uint16(10075), + 3675: uint16(9769), + 3676: uint16(16202), + 3677: uint16(16204), + 3678: uint16(16207), + 3679: uint16(16203), + 3680: uint16(16206), + 3681: uint16(5961), + 3682: uint16(4140), + 3683: uint16(16208), + 3684: uint16(7759), + 3685: uint16(16205), + 3686: uint16(11579), + 3687: uint16(16211), + 3688: uint16(21251), + 3689: uint16(16209), + 3690: uint16(16212), + 3691: uint16(16198), + 3692: uint16(16210), + 3693: uint16(6427), + 3694: uint16(16213), + 3695: uint16(16214), + 3696: uint16(11357), + 3697: uint16(16215), + 3698: uint16(16216), + 3699: uint16(16196), + 3700: uint16(16217), + 3701: uint16(4899), + 3702: uint16(6916), + 3703: uint16(16218), + 3704: uint16(16219), + 3705: uint16(16220), + 3706: uint16(4122), + 3707: uint16(16384), + 3708: uint16(10266), + 3709: uint16(16385), + 3710: uint16(4867), + 3711: uint16(16386), + 3712: uint16(16387), + 3713: uint16(16388), + 3714: uint16(16390), + 3715: uint16(16391), + 3716: uint16(16389), + 3717: uint16(10290), + 3718: uint16(16393), + 3719: uint16(16392), + 3720: uint16(16395), + 3721: uint16(16394), + 3722: uint16(16396), + 3723: uint16(16397), + 3724: uint16(16399), + 3725: uint16(16398), + 3726: uint16(6232), + 3727: uint16(16401), + 3728: uint16(16400), + 3729: uint16(4900), + 3730: uint16(7730), + 3731: uint16(9243), + 3732: uint16(16402), + 3733: uint16(7959), + 3734: uint16(6681), + 3735: uint16(4184), + 3736: uint16(16403), + 3737: uint16(11312), + 3738: uint16(10562), + 3739: uint16(16404), + 3740: uint16(9251), + 3741: uint16(11282), + 3742: uint16(6178), + 3743: uint16(7708), + 3744: uint16(8746), + 3745: uint16(12563), + 3746: uint16(8973), + 3747: uint16(4423), + 3748: uint16(16405), + 3749: uint16(16406), + 3750: uint16(16411), + 3751: uint16(16409), + 3752: uint16(16408), + 3753: uint16(14625), + 3754: uint16(4613), + 3755: uint16(16407), + 3756: uint16(3897), + 3757: uint16(9993), + 3758: uint16(10025), + 3759: uint16(11536), + 3760: uint16(16412), + 3761: uint16(16410), + 3762: uint16(8763), + 3763: uint16(7941), + 3764: uint16(9994), + 3765: uint16(10252), + 3766: uint16(16414), + 3767: uint16(11531), + 3768: uint16(5676), + 3769: uint16(16415), + 3770: uint16(16413), + 3771: uint16(10037), + 3772: uint16(16416), + 3773: uint16(16417), + 3774: uint16(3898), + 3775: uint16(7509), + 3776: uint16(16422), + 3777: uint16(16419), + 3778: uint16(9548), + 3779: uint16(16418), + 3780: uint16(5125), + 3781: uint16(16425), + 3782: uint16(16420), + 3783: uint16(16421), + 3784: uint16(16424), + 3785: uint16(16423), + 3786: uint16(10244), + 3787: uint16(8225), + 3788: uint16(8224), + 3789: uint16(5150), + 3790: uint16(16426), + 3791: uint16(16427), + 3792: uint16(16428), + 3793: uint16(16430), + 3794: uint16(16429), + 3795: uint16(4149), + 3796: uint16(16438), + 3797: uint16(10055), + 3798: uint16(16432), + 3799: uint16(16434), + 3800: uint16(16436), + 3801: uint16(7709), + 3802: uint16(16437), + 3803: uint16(16435), + 3804: uint16(6943), + 3805: uint16(16431), + 3806: uint16(16433), + 3807: uint16(10273), + 3808: uint16(7464), + 3809: uint16(16440), + 3810: uint16(16439), + 3811: uint16(16441), + 3812: uint16(6917), + 3813: uint16(6414), + 3814: uint16(9302), + 3815: uint16(16442), + 3816: uint16(9002), + 3817: uint16(16444), + 3818: uint16(11520), + 3819: uint16(16443), + 3820: uint16(8264), + 3821: uint16(16449), + 3822: uint16(16451), + 3823: uint16(16452), + 3824: uint16(8755), + 3825: uint16(16450), + 3826: uint16(16447), + 3827: uint16(16445), + 3828: uint16(16446), + 3829: uint16(16448), + 3830: uint16(16455), + 3831: uint16(16453), + 3832: uint16(16454), + 3833: uint16(16456), + 3834: uint16(16458), + 3835: uint16(16459), + 3836: uint16(16460), + 3837: uint16(16461), + 3838: uint16(16457), + 3839: uint16(16463), + 3840: uint16(16462), + 3841: uint16(16464), + 3842: uint16(11556), + 3843: uint16(16467), + 3844: uint16(16465), + 3845: uint16(16466), + 3846: uint16(4929), + 3847: uint16(11101), + 3848: uint16(10537), + 3849: uint16(16469), + 3850: uint16(16468), + 3851: uint16(16470), + 3852: uint16(16471), + 3853: uint16(16475), + 3854: uint16(16472), + 3855: uint16(16473), + 3856: uint16(16474), + 3857: uint16(16476), + 3858: uint16(16477), + 3859: uint16(16640), + 3860: uint16(16641), + 3861: uint16(16642), + 3862: uint16(9998), + 3863: uint16(9263), + 3864: uint16(16643), + 3865: uint16(9809), + 3866: uint16(10259), + 3867: uint16(16644), + 3868: uint16(16645), + 3869: uint16(9225), + 3870: uint16(4614), + 3871: uint16(6179), + 3872: uint16(16646), + 3873: uint16(16647), + 3874: uint16(16648), + 3875: uint16(6664), + 3876: uint16(16650), + 3877: uint16(16649), + 3878: uint16(16651), + 3879: uint16(16652), + 3880: uint16(10056), + 3881: uint16(16653), + 3882: uint16(16654), + 3883: uint16(21064), + 3884: uint16(16655), + 3885: uint16(16656), + 3886: uint16(16657), + 3887: uint16(6669), + 3888: uint16(16658), + 3889: uint16(9781), + 3890: uint16(10814), + 3891: uint16(4141), + 3892: uint16(4150), + 3893: uint16(16659), + 3894: uint16(16661), + 3895: uint16(16660), + 3896: uint16(9295), + 3897: uint16(7960), + 3898: uint16(15384), + 3899: uint16(16662), + 3900: uint16(11040), + 3901: uint16(16663), + 3902: uint16(4901), + 3903: uint16(10038), + 3904: uint16(16664), + 3905: uint16(16665), + 3906: uint16(16666), + 3907: uint16(11067), + 3908: uint16(11060), + 3909: uint16(8989), + 3910: uint16(8265), + 3911: uint16(16668), + 3912: uint16(7233), + 3913: uint16(7465), + 3914: uint16(16671), + 3915: uint16(16670), + 3916: uint16(16669), + 3917: uint16(10076), + 3918: uint16(4902), + 3919: uint16(5896), + 3920: uint16(16677), + 3921: uint16(16674), + 3922: uint16(7710), + 3923: uint16(11025), + 3924: uint16(16673), + 3925: uint16(16675), + 3926: uint16(16676), + 3927: uint16(16672), + 3928: uint16(16678), + 3929: uint16(16679), + 3930: uint16(8974), + 3931: uint16(4930), + 3932: uint16(8772), + 3933: uint16(16680), + 3934: uint16(16681), + 3935: uint16(16684), + 3936: uint16(7750), + 3937: uint16(9507), + 3938: uint16(16685), + 3939: uint16(10802), + 3940: uint16(16682), + 3941: uint16(16683), + 3942: uint16(16688), + 3943: uint16(16687), + 3944: uint16(16686), + 3945: uint16(16690), + 3946: uint16(16689), + 3947: uint16(16691), + 3948: uint16(16693), + 3949: uint16(16692), + 3950: uint16(10540), + 3951: uint16(7221), + 3952: uint16(11557), + 3953: uint16(16694), + 3954: uint16(9494), + 3955: uint16(16695), + 3956: uint16(16696), + 3957: uint16(16700), + 3958: uint16(16698), + 3959: uint16(16699), + 3960: uint16(16697), + 3961: uint16(16701), + 3962: uint16(16702), + 3963: uint16(16703), + 3964: uint16(16704), + 3965: uint16(11030), + 3966: uint16(16705), + 3967: uint16(11087), + 3968: uint16(16706), + 3969: uint16(8749), + 3970: uint16(9801), + 3971: uint16(5450), + 3972: uint16(8730), + 3973: uint16(16707), + 3974: uint16(5401), + 3975: uint16(7983), + 3976: uint16(16708), + 3977: uint16(6428), + 3978: uint16(16709), + 3979: uint16(16710), + 3980: uint16(5893), + 3981: uint16(6452), + 3982: uint16(16712), + 3983: uint16(9269), + 3984: uint16(6453), + 3985: uint16(5165), + 3986: uint16(10755), + 3987: uint16(9770), + 3988: uint16(9270), + 3989: uint16(6203), + 3990: uint16(16714), + 3991: uint16(7466), + 3992: uint16(11537), + 3993: uint16(6180), + 3994: uint16(5894), + 3995: uint16(9986), + 3996: uint16(16716), + 3997: uint16(16718), + 3998: uint16(5962), + 3999: uint16(16717), + 4000: uint16(9045), + 4001: uint16(16720), + 4002: uint16(4630), + 4003: uint16(16715), + 4004: uint16(10057), + 4005: uint16(4111), + 4006: uint16(6475), + 4007: uint16(11825), + 4008: uint16(16719), + 4009: uint16(16721), + 4010: uint16(10538), + 4011: uint16(7992), + 4012: uint16(16723), + 4013: uint16(16724), + 4014: uint16(16722), + 4015: uint16(4653), + 4016: uint16(16730), + 4017: uint16(16729), + 4018: uint16(6918), + 4019: uint16(16731), + 4020: uint16(16726), + 4021: uint16(16732), + 4022: uint16(16727), + 4023: uint16(10039), + 4024: uint16(16725), + 4025: uint16(16728), + 4026: uint16(16897), + 4027: uint16(16896), + 4028: uint16(10816), + 4029: uint16(16733), + 4030: uint16(3914), + 4031: uint16(16899), + 4032: uint16(16898), + 4033: uint16(7467), + 4034: uint16(16900), + 4035: uint16(8226), + 4036: uint16(16902), + 4037: uint16(16901), + 4038: uint16(16903), + 4039: uint16(16711), + 4040: uint16(16713), + 4041: uint16(16905), + 4042: uint16(16904), + 4043: uint16(6919), + 4044: uint16(11592), + 4045: uint16(6961), + 4046: uint16(16906), + 4047: uint16(5654), + 4048: uint16(5151), + 4049: uint16(5126), + 4050: uint16(6722), + 4051: uint16(11283), + 4052: uint16(16912), + 4053: uint16(16911), + 4054: uint16(8227), + 4055: uint16(16908), + 4056: uint16(16910), + 4057: uint16(7210), + 4058: uint16(7711), + 4059: uint16(16909), + 4060: uint16(16907), + 4061: uint16(9737), + 4062: uint16(7468), + 4063: uint16(10267), + 4064: uint16(6454), + 4065: uint16(9303), + 4066: uint16(16913), + 4067: uint16(16914), + 4068: uint16(16936), + 4069: uint16(5431), + 4070: uint16(11804), + 4071: uint16(8212), + 4072: uint16(16915), + 4073: uint16(4401), + 4074: uint16(9046), + 4075: uint16(10496), + 4076: uint16(16916), + 4077: uint16(5209), + 4078: uint16(16917), + 4079: uint16(16919), + 4080: uint16(16920), + 4081: uint16(9736), + 4082: uint16(16921), + 4083: uint16(16922), + 4084: uint16(16923), + 4085: uint16(5432), + 4086: uint16(4402), + 4087: uint16(9508), + 4088: uint16(7175), + 4089: uint16(6723), + 4090: uint16(16924), + 4091: uint16(7176), + 4092: uint16(4393), + 4093: uint16(10274), + 4094: uint16(16925), + 4095: uint16(10058), + 4096: uint16(8228), + 4097: uint16(16928), + 4098: uint16(16929), + 4099: uint16(9800), + 4100: uint16(7712), + 4101: uint16(16926), + 4102: uint16(8768), + 4103: uint16(16927), + 4104: uint16(7469), + 4105: uint16(3899), + 4106: uint16(5128), + 4107: uint16(16930), + 4108: uint16(9047), + 4109: uint16(16931), + 4110: uint16(7974), + 4111: uint16(11020), + 4112: uint16(10242), + 4113: uint16(16932), + 4114: uint16(16933), + 4115: uint16(8756), + 4116: uint16(11558), + 4117: uint16(16935), + 4118: uint16(16934), + 4119: uint16(6990), + 4120: uint16(16937), + 4121: uint16(3919), + 4122: uint16(16940), + 4123: uint16(16938), + 4124: uint16(4403), + 4125: uint16(5677), + 4126: uint16(16939), + 4127: uint16(6181), + 4128: uint16(6225), + 4129: uint16(10565), + 4130: uint16(16941), + 4131: uint16(10803), + 4132: uint16(16943), + 4133: uint16(7984), + 4134: uint16(4142), + 4135: uint16(4377), + 4136: uint16(3851), + 4137: uint16(16942), + 4138: uint16(16944), + 4139: uint16(16945), + 4140: uint16(7510), + 4141: uint16(16946), + 4142: uint16(4654), + 4143: uint16(16948), + 4144: uint16(5705), + 4145: uint16(5189), + 4146: uint16(16949), + 4147: uint16(5460), + 4148: uint16(16950), + 4149: uint16(8027), + 4150: uint16(9516), + 4151: uint16(7999), + 4152: uint16(6484), + 4153: uint16(16951), + 4154: uint16(8769), + 4155: uint16(8266), + 4156: uint16(16953), + 4157: uint16(16955), + 4158: uint16(16952), + 4159: uint16(16954), + 4160: uint16(5633), + 4161: uint16(16956), + 4162: uint16(5637), + 4163: uint16(5190), + 4164: uint16(11313), + 4165: uint16(16958), + 4166: uint16(16959), + 4167: uint16(4109), + 4168: uint16(16962), + 4169: uint16(4693), + 4170: uint16(16961), + 4171: uint16(16960), + 4172: uint16(16964), + 4173: uint16(16957), + 4174: uint16(16965), + 4175: uint16(11528), + 4176: uint16(16966), + 4177: uint16(16967), + 4178: uint16(13139), + 4179: uint16(16969), + 4180: uint16(16968), + 4181: uint16(16970), + 4182: uint16(16971), + 4183: uint16(11540), + 4184: uint16(16972), + 4185: uint16(20302), + 4186: uint16(7470), + 4187: uint16(16973), + 4188: uint16(16974), + 4189: uint16(7222), + 4190: uint16(9495), + 4191: uint16(16975), + 4192: uint16(8711), + 4193: uint16(16976), + 4194: uint16(8731), + 4195: uint16(16977), + 4196: uint16(5380), + 4197: uint16(12318), + 4198: uint16(8764), + 4199: uint16(6930), + 4200: uint16(4903), + 4201: uint16(16978), + 4202: uint16(17153), + 4203: uint16(16981), + 4204: uint16(5191), + 4205: uint16(16980), + 4206: uint16(17155), + 4207: uint16(16979), + 4208: uint16(7471), + 4209: uint16(16983), + 4210: uint16(16984), + 4211: uint16(9226), + 4212: uint16(16985), + 4213: uint16(4669), + 4214: uint16(7737), + 4215: uint16(10307), + 4216: uint16(16987), + 4217: uint16(8519), + 4218: uint16(16982), + 4219: uint16(16986), + 4220: uint16(16988), + 4221: uint16(6490), + 4222: uint16(17157), + 4223: uint16(10253), + 4224: uint16(9989), + 4225: uint16(9304), + 4226: uint16(5433), + 4227: uint16(17156), + 4228: uint16(17154), + 4229: uint16(10004), + 4230: uint16(16989), + 4231: uint16(8765), + 4232: uint16(9306), + 4233: uint16(9305), + 4234: uint16(6485), + 4235: uint16(17175), + 4236: uint16(17159), + 4237: uint16(17161), + 4238: uint16(17164), + 4239: uint16(17165), + 4240: uint16(17162), + 4241: uint16(17163), + 4242: uint16(17160), + 4243: uint16(17158), + 4244: uint16(17152), + 4245: uint16(10542), + 4246: uint16(4404), + 4247: uint16(17172), + 4248: uint16(17169), + 4249: uint16(17174), + 4250: uint16(17173), + 4251: uint16(9810), + 4252: uint16(11014), + 4253: uint16(6682), + 4254: uint16(17167), + 4255: uint16(17176), + 4256: uint16(17171), + 4257: uint16(17170), + 4258: uint16(17166), + 4259: uint16(17168), + 4260: uint16(4904), + 4261: uint16(8732), + 4262: uint16(8028), + 4263: uint16(9985), + 4264: uint16(17181), + 4265: uint16(9987), + 4266: uint16(8000), + 4267: uint16(17178), + 4268: uint16(10030), + 4269: uint16(17182), + 4270: uint16(10546), + 4271: uint16(8762), + 4272: uint16(17177), + 4273: uint16(17179), + 4274: uint16(17180), + 4275: uint16(17183), + 4276: uint16(6947), + 4277: uint16(9509), + 4278: uint16(17188), + 4279: uint16(17187), + 4280: uint16(17184), + 4281: uint16(11797), + 4282: uint16(17193), + 4283: uint16(17197), + 4284: uint16(17194), + 4285: uint16(17190), + 4286: uint16(17191), + 4287: uint16(17196), + 4288: uint16(17185), + 4289: uint16(12596), + 4290: uint16(17192), + 4291: uint16(17186), + 4292: uint16(17195), + 4293: uint16(17201), + 4294: uint16(4905), + 4295: uint16(17198), + 4296: uint16(17199), + 4297: uint16(17200), + 4298: uint16(17203), + 4299: uint16(17202), + 4300: uint16(10069), + 4301: uint16(17204), + 4302: uint16(11611), + 4303: uint16(10572), + 4304: uint16(17209), + 4305: uint16(17206), + 4306: uint16(17205), + 4307: uint16(7985), + 4308: uint16(17208), + 4309: uint16(17210), + 4310: uint16(17207), + 4311: uint16(17214), + 4312: uint16(17211), + 4313: uint16(17212), + 4314: uint16(17189), + 4315: uint16(17213), + 4316: uint16(17215), + 4317: uint16(17216), + 4318: uint16(10533), + 4319: uint16(17217), + 4320: uint16(11073), + 4321: uint16(5421), + 4322: uint16(5640), + 4323: uint16(17218), + 4324: uint16(10515), + 4325: uint16(7751), + 4326: uint16(11023), + 4327: uint16(17219), + 4328: uint16(11538), + 4329: uint16(9811), + 4330: uint16(8229), + 4331: uint16(9747), + 4332: uint16(7212), + 4333: uint16(3871), + 4334: uint16(17224), + 4335: uint16(17222), + 4336: uint16(17220), + 4337: uint16(4864), + 4338: uint16(7472), + 4339: uint16(17225), + 4340: uint16(17223), + 4341: uint16(17221), + 4342: uint16(17229), + 4343: uint16(17228), + 4344: uint16(17227), + 4345: uint16(17226), + 4346: uint16(17230), + 4347: uint16(17231), + 4348: uint16(7961), + 4349: uint16(17232), + 4350: uint16(17234), + 4351: uint16(17233), + 4352: uint16(5937), + 4353: uint16(8215), + 4354: uint16(17236), + 4355: uint16(9307), + 4356: uint16(17235), + 4357: uint16(17237), + 4358: uint16(10516), + 4359: uint16(8267), + 4360: uint16(6182), + 4361: uint16(17238), + 4362: uint16(11559), + 4363: uint16(17240), + 4364: uint16(17241), + 4365: uint16(17242), + 4366: uint16(17243), + 4367: uint16(6724), + 4368: uint16(17244), + 4369: uint16(5678), + 4370: uint16(5193), + 4371: uint16(5129), + 4372: uint16(17408), + 4373: uint16(11090), + 4374: uint16(6183), + 4375: uint16(17245), + 4376: uint16(17411), + 4377: uint16(11077), + 4378: uint16(9755), + 4379: uint16(10258), + 4380: uint16(7234), + 4381: uint16(17410), + 4382: uint16(6962), + 4383: uint16(6184), + 4384: uint16(6725), + 4385: uint16(5192), + 4386: uint16(10517), + 4387: uint16(17409), + 4388: uint16(8230), + 4389: uint16(10785), + 4390: uint16(6486), + 4391: uint16(6726), + 4392: uint16(9020), + 4393: uint16(17414), + 4394: uint16(11582), + 4395: uint16(6456), + 4396: uint16(17415), + 4397: uint16(7713), + 4398: uint16(17417), + 4399: uint16(7473), + 4400: uint16(6415), + 4401: uint16(17416), + 4402: uint16(7177), + 4403: uint16(5917), + 4404: uint16(8231), + 4405: uint16(17412), + 4406: uint16(17418), + 4407: uint16(17413), + 4408: uint16(5679), + 4409: uint16(17421), + 4410: uint16(17425), + 4411: uint16(5706), + 4412: uint16(17420), + 4413: uint16(17429), + 4414: uint16(6185), + 4415: uint16(11340), + 4416: uint16(3867), + 4417: uint16(17426), + 4418: uint16(5194), + 4419: uint16(17423), + 4420: uint16(17424), + 4421: uint16(9308), + 4422: uint16(17422), + 4423: uint16(17419), + 4424: uint16(4615), + 4425: uint16(8003), + 4426: uint16(5895), + 4427: uint16(17431), + 4428: uint16(17428), + 4429: uint16(17430), + 4430: uint16(17427), + 4431: uint16(5680), + 4432: uint16(8466), + 4433: uint16(17432), + 4434: uint16(8269), + 4435: uint16(17445), + 4436: uint16(17441), + 4437: uint16(17435), + 4438: uint16(17439), + 4439: uint16(7001), + 4440: uint16(3900), + 4441: uint16(17434), + 4442: uint16(17442), + 4443: uint16(17446), + 4444: uint16(6186), + 4445: uint16(11061), + 4446: uint16(9013), + 4447: uint16(17436), + 4448: uint16(17444), + 4449: uint16(17433), + 4450: uint16(8733), + 4451: uint16(17438), + 4452: uint16(3868), + 4453: uint16(11049), + 4454: uint16(17437), + 4455: uint16(5434), + 4456: uint16(10059), + 4457: uint16(8268), + 4458: uint16(11567), + 4459: uint16(7246), + 4460: uint16(17485), + 4461: uint16(17447), + 4462: uint16(8029), + 4463: uint16(17443), + 4464: uint16(17448), + 4465: uint16(17450), + 4466: uint16(9048), + 4467: uint16(17453), + 4468: uint16(17449), + 4469: uint16(10547), + 4470: uint16(4906), + 4471: uint16(11050), + 4472: uint16(3901), + 4473: uint16(17452), + 4474: uint16(11612), + 4475: uint16(17451), + 4476: uint16(4174), + 4477: uint16(9547), + 4478: uint16(17454), + 4479: uint16(17461), + 4480: uint16(17455), + 4481: uint16(17462), + 4482: uint16(17458), + 4483: uint16(9818), + 4484: uint16(6953), + 4485: uint16(17460), + 4486: uint16(17457), + 4487: uint16(17463), + 4488: uint16(17456), + 4489: uint16(7203), + 4490: uint16(10756), + 4491: uint16(7211), + 4492: uint16(17459), + 4493: uint16(17471), + 4494: uint16(17467), + 4495: uint16(17470), + 4496: uint16(17468), + 4497: uint16(17472), + 4498: uint16(17466), + 4499: uint16(17440), + 4500: uint16(7986), + 4501: uint16(10026), + 4502: uint16(17469), + 4503: uint16(17464), + 4504: uint16(8192), + 4505: uint16(5681), + 4506: uint16(7178), + 4507: uint16(7684), + 4508: uint16(8213), + 4509: uint16(17475), + 4510: uint16(17477), + 4511: uint16(17478), + 4512: uint16(17474), + 4513: uint16(17476), + 4514: uint16(17465), + 4515: uint16(17473), + 4516: uint16(17481), + 4517: uint16(17480), + 4518: uint16(10841), + 4519: uint16(5642), + 4520: uint16(17479), + 4521: uint16(17483), + 4522: uint16(17482), + 4523: uint16(17486), + 4524: uint16(17488), + 4525: uint16(6683), + 4526: uint16(17484), + 4527: uint16(17489), + 4528: uint16(17490), + 4529: uint16(17491), + 4530: uint16(17497), + 4531: uint16(9242), + 4532: uint16(17493), + 4533: uint16(17492), + 4534: uint16(17494), + 4535: uint16(17495), + 4536: uint16(17496), + 4537: uint16(17498), + 4538: uint16(17499), + 4539: uint16(4907), + 4540: uint16(17500), + 4541: uint16(17501), + 4542: uint16(17664), + 4543: uint16(17665), + 4544: uint16(17666), + 4545: uint16(17667), + 4546: uint16(17668), + 4547: uint16(17669), + 4548: uint16(17671), + 4549: uint16(17670), + 4550: uint16(17672), + 4551: uint16(17673), + 4552: uint16(17674), + 4553: uint16(17677), + 4554: uint16(17675), + 4555: uint16(17676), + 4556: uint16(6464), + 4557: uint16(5682), + 4558: uint16(8757), + 4559: uint16(10002), + 4560: uint16(7247), + 4561: uint16(9772), + 4562: uint16(10060), + 4563: uint16(17678), + 4564: uint16(14156), + 4565: uint16(17679), + 4566: uint16(17681), + 4567: uint16(11332), + 4568: uint16(17680), + 4569: uint16(17683), + 4570: uint16(17682), + 4571: uint16(11314), + 4572: uint16(17684), + 4573: uint16(10077), + 4574: uint16(17685), + 4575: uint16(17688), + 4576: uint16(17687), + 4577: uint16(17686), + 4578: uint16(17689), + 4579: uint16(5649), + 4580: uint16(8193), + 4581: uint16(5152), + 4582: uint16(17693), + 4583: uint16(17690), + 4584: uint16(17691), + 4585: uint16(17694), + 4586: uint16(17695), + 4587: uint16(17692), + 4588: uint16(4104), + 4589: uint16(4358), + 4590: uint16(17697), + 4591: uint16(17698), + 4592: uint16(17699), + 4593: uint16(11329), + 4594: uint16(7179), + 4595: uint16(17701), + 4596: uint16(17700), + 4597: uint16(7752), + 4598: uint16(17702), + 4599: uint16(17703), + 4600: uint16(17704), + 4601: uint16(4932), + 4602: uint16(4908), + 4603: uint16(17705), + 4604: uint16(17706), + 4605: uint16(10812), + 4606: uint16(11330), + 4607: uint16(11315), + 4608: uint16(11798), + 4609: uint16(6188), + 4610: uint16(17709), + 4611: uint16(6963), + 4612: uint16(17708), + 4613: uint16(17710), + 4614: uint16(6920), + 4615: uint16(8496), + 4616: uint16(17711), + 4617: uint16(6187), + 4618: uint16(11062), + 4619: uint16(17712), + 4620: uint16(17713), + 4621: uint16(17714), + 4622: uint16(17715), + 4623: uint16(17716), + 4624: uint16(6921), + 4625: uint16(11084), + 4626: uint16(17718), + 4627: uint16(8734), + 4628: uint16(17717), + 4629: uint16(17720), + 4630: uint16(17719), + 4631: uint16(17721), + 4632: uint16(7962), + 4633: uint16(17722), + 4634: uint16(17723), + 4635: uint16(10520), + 4636: uint16(17724), + 4637: uint16(8270), + 4638: uint16(17725), + 4639: uint16(17726), + 4640: uint16(11613), + 4641: uint16(17729), + 4642: uint16(17728), + 4643: uint16(17727), + 4644: uint16(8975), + 4645: uint16(17730), + 4646: uint16(7685), + 4647: uint16(17731), + 4648: uint16(17732), + 4649: uint16(11799), + 4650: uint16(17733), + 4651: uint16(17734), + 4652: uint16(17736), + 4653: uint16(17735), + 4654: uint16(9988), + 4655: uint16(9560), + 4656: uint16(11805), + 4657: uint16(9992), + 4658: uint16(17738), + 4659: uint16(7474), + 4660: uint16(10249), + 4661: uint16(17739), + 4662: uint16(17737), + 4663: uint16(4909), + 4664: uint16(5939), + 4665: uint16(6727), + 4666: uint16(10061), + 4667: uint16(5897), + 4668: uint16(10786), + 4669: uint16(17742), + 4670: uint16(17740), + 4671: uint16(6189), + 4672: uint16(6190), + 4673: uint16(3912), + 4674: uint16(6471), + 4675: uint16(9784), + 4676: uint16(3902), + 4677: uint16(17747), + 4678: uint16(8735), + 4679: uint16(9783), + 4680: uint16(8506), + 4681: uint16(17749), + 4682: uint16(17745), + 4683: uint16(17748), + 4684: uint16(17743), + 4685: uint16(17746), + 4686: uint16(10757), + 4687: uint16(5940), + 4688: uint16(3932), + 4689: uint16(17744), + 4690: uint16(17751), + 4691: uint16(17752), + 4692: uint16(9496), + 4693: uint16(5402), + 4694: uint16(17925), + 4695: uint16(9756), + 4696: uint16(6728), + 4697: uint16(5403), + 4698: uint16(7975), + 4699: uint16(11813), + 4700: uint16(11021), + 4701: uint16(17750), + 4702: uint16(7987), + 4703: uint16(5170), + 4704: uint16(17753), + 4705: uint16(17755), + 4706: uint16(17754), + 4707: uint16(17756), + 4708: uint16(8709), + 4709: uint16(9757), + 4710: uint16(8976), + 4711: uint16(17922), + 4712: uint16(17921), + 4713: uint16(17757), + 4714: uint16(7732), + 4715: uint16(10308), + 4716: uint16(17924), + 4717: uint16(17923), + 4718: uint16(6191), + 4719: uint16(11826), + 4720: uint16(17940), + 4721: uint16(17928), + 4722: uint16(17929), + 4723: uint16(6991), + 4724: uint16(17927), + 4725: uint16(6231), + 4726: uint16(17926), + 4727: uint16(17930), + 4728: uint16(8977), + 4729: uint16(10497), + 4730: uint16(8194), + 4731: uint16(8507), + 4732: uint16(17934), + 4733: uint16(17935), + 4734: uint16(17931), + 4735: uint16(17932), + 4736: uint16(17933), + 4737: uint16(6192), + 4738: uint16(17941), + 4739: uint16(17937), + 4740: uint16(10309), + 4741: uint16(10827), + 4742: uint16(10247), + 4743: uint16(17936), + 4744: uint16(17939), + 4745: uint16(17938), + 4746: uint16(10787), + 4747: uint16(17942), + 4748: uint16(17943), + 4749: uint16(8214), + 4750: uint16(17944), + 4751: uint16(17946), + 4752: uint16(17950), + 4753: uint16(17947), + 4754: uint16(17945), + 4755: uint16(9758), + 4756: uint16(17948), + 4757: uint16(17949), + 4758: uint16(4369), + 4759: uint16(17956), + 4760: uint16(17951), + 4761: uint16(17952), + 4762: uint16(17953), + 4763: uint16(8448), + 4764: uint16(17955), + 4765: uint16(17954), + 4766: uint16(17957), + 4767: uint16(17958), + 4768: uint16(17959), + 4769: uint16(7714), + 4770: uint16(4424), + 4771: uint16(17960), + 4772: uint16(11574), + 4773: uint16(6922), + 4774: uint16(7180), + 4775: uint16(6729), + 4776: uint16(8758), + 4777: uint16(17961), + 4778: uint16(17962), + 4779: uint16(4112), + 4780: uint16(17963), + 4781: uint16(17964), + 4782: uint16(17965), + 4783: uint16(17966), + 4784: uint16(17967), + 4785: uint16(5404), + 4786: uint16(14601), + 4787: uint16(17968), + 4788: uint16(8004), + 4789: uint16(17969), + 4790: uint16(6954), + 4791: uint16(17970), + 4792: uint16(12047), + 4793: uint16(17971), + 4794: uint16(10557), + 4795: uint16(4923), + 4796: uint16(8195), + 4797: uint16(7223), + 4798: uint16(10320), + 4799: uint16(7181), + 4800: uint16(17972), + 4801: uint16(6193), + 4802: uint16(17973), + 4803: uint16(10027), + 4804: uint16(17987), + 4805: uint16(17975), + 4806: uint16(8488), + 4807: uint16(9812), + 4808: uint16(5918), + 4809: uint16(17974), + 4810: uint16(8196), + 4811: uint16(17976), + 4812: uint16(9049), + 4813: uint16(17978), + 4814: uint16(17977), + 4815: uint16(17980), + 4816: uint16(17979), + 4817: uint16(17981), + 4818: uint16(17983), + 4819: uint16(17982), + 4820: uint16(4910), + 4821: uint16(17984), + 4822: uint16(17985), + 4823: uint16(17986), + 4824: uint16(6416), + 4825: uint16(11560), + 4826: uint16(17988), + 4827: uint16(7686), + 4828: uint16(4175), + 4829: uint16(17989), + 4830: uint16(17990), + 4831: uint16(17991), + 4832: uint16(3921), + 4833: uint16(17992), + 4834: uint16(17993), + 4835: uint16(10310), + 4836: uint16(6950), + 4837: uint16(17995), + 4838: uint16(4616), + 4839: uint16(3857), + 4840: uint16(17994), + 4841: uint16(17997), + 4842: uint16(9773), + 4843: uint16(7715), + 4844: uint16(4405), + 4845: uint16(10758), + 4846: uint16(5692), + 4847: uint16(5435), + 4848: uint16(17996), + 4849: uint16(4425), + 4850: uint16(4866), + 4851: uint16(4176), + 4852: uint16(18001), + 4853: uint16(11593), + 4854: uint16(8508), + 4855: uint16(10275), + 4856: uint16(18013), + 4857: uint16(4406), + 4858: uint16(18011), + 4859: uint16(18009), + 4860: uint16(18000), + 4861: uint16(17998), + 4862: uint16(17999), + 4863: uint16(6978), + 4864: uint16(5451), + 4865: uint16(8790), + 4866: uint16(9520), + 4867: uint16(4144), + 4868: uint16(18003), + 4869: uint16(18002), + 4870: uint16(18008), + 4871: uint16(18004), + 4872: uint16(18007), + 4873: uint16(11055), + 4874: uint16(18006), + 4875: uint16(4407), + 4876: uint16(4700), + 4877: uint16(18010), + 4878: uint16(18012), + 4879: uint16(5683), + 4880: uint16(18178), + 4881: uint16(18187), + 4882: uint16(18188), + 4883: uint16(3850), + 4884: uint16(18195), + 4885: uint16(3920), + 4886: uint16(18186), + 4887: uint16(18185), + 4888: uint16(18180), + 4889: uint16(18179), + 4890: uint16(18177), + 4891: uint16(18176), + 4892: uint16(8770), + 4893: uint16(8538), + 4894: uint16(18182), + 4895: uint16(18181), + 4896: uint16(18184), + 4897: uint16(8271), + 4898: uint16(5684), + 4899: uint16(4128), + 4900: uint16(18183), + 4901: uint16(6194), + 4902: uint16(8272), + 4903: uint16(18201), + 4904: uint16(18202), + 4905: uint16(4408), + 4906: uint16(4365), + 4907: uint16(18199), + 4908: uint16(18189), + 4909: uint16(18197), + 4910: uint16(18204), + 4911: uint16(18198), + 4912: uint16(18196), + 4913: uint16(18005), + 4914: uint16(18194), + 4915: uint16(18190), + 4916: uint16(4911), + 4917: uint16(18192), + 4918: uint16(18203), + 4919: uint16(18193), + 4920: uint16(18205), + 4921: uint16(18191), + 4922: uint16(9819), + 4923: uint16(11336), + 4924: uint16(18200), + 4925: uint16(18222), + 4926: uint16(18214), + 4927: uint16(7770), + 4928: uint16(5157), + 4929: uint16(5436), + 4930: uint16(18209), + 4931: uint16(4410), + 4932: uint16(7475), + 4933: uint16(18212), + 4934: uint16(6457), + 4935: uint16(9264), + 4936: uint16(18217), + 4937: uint16(10573), + 4938: uint16(18208), + 4939: uint16(4409), + 4940: uint16(5941), + 4941: uint16(10248), + 4942: uint16(18218), + 4943: uint16(18206), + 4944: uint16(18215), + 4945: uint16(18225), + 4946: uint16(18210), + 4947: uint16(18211), + 4948: uint16(9497), + 4949: uint16(18216), + 4950: uint16(18213), + 4951: uint16(10759), + 4952: uint16(18219), + 4953: uint16(3903), + 4954: uint16(18207), + 4955: uint16(18221), + 4956: uint16(18220), + 4957: uint16(9802), + 4958: uint16(18227), + 4959: uint16(18238), + 4960: uint16(4701), + 4961: uint16(18241), + 4962: uint16(18223), + 4963: uint16(18228), + 4964: uint16(11341), + 4965: uint16(18237), + 4966: uint16(11316), + 4967: uint16(11529), + 4968: uint16(8791), + 4969: uint16(4682), + 4970: uint16(10321), + 4971: uint16(18243), + 4972: uint16(9472), + 4973: uint16(3856), + 4974: uint16(18236), + 4975: uint16(18232), + 4976: uint16(8273), + 4977: uint16(18226), + 4978: uint16(18234), + 4979: uint16(18239), + 4980: uint16(9739), + 4981: uint16(3849), + 4982: uint16(18231), + 4983: uint16(18240), + 4984: uint16(10327), + 4985: uint16(18235), + 4986: uint16(18230), + 4987: uint16(7476), + 4988: uint16(7182), + 4989: uint16(6923), + 4990: uint16(11063), + 4991: uint16(10278), + 4992: uint16(18246), + 4993: uint16(18255), + 4994: uint16(18233), + 4995: uint16(4694), + 4996: uint16(7511), + 4997: uint16(18244), + 4998: uint16(18249), + 4999: uint16(8274), + 5000: uint16(18245), + 5001: uint16(18252), + 5002: uint16(8766), + 5003: uint16(18253), + 5004: uint16(11317), + 5005: uint16(18242), + 5006: uint16(4631), + 5007: uint16(18248), + 5008: uint16(18251), + 5009: uint16(11019), + 5010: uint16(18254), + 5011: uint16(18247), + 5012: uint16(18250), + 5013: uint16(10760), + 5014: uint16(11776), + 5015: uint16(18258), + 5016: uint16(18265), + 5017: uint16(18257), + 5018: uint16(6946), + 5019: uint16(18224), + 5020: uint16(10541), + 5021: uint16(11009), + 5022: uint16(18264), + 5023: uint16(18263), + 5024: uint16(18259), + 5025: uint16(18260), + 5026: uint16(4117), + 5027: uint16(18262), + 5028: uint16(18256), + 5029: uint16(9012), + 5030: uint16(18261), + 5031: uint16(3933), + 5032: uint16(8449), + 5033: uint16(10530), + 5034: uint16(18266), + 5035: uint16(18432), + 5036: uint16(10040), + 5037: uint16(18269), + 5038: uint16(7477), + 5039: uint16(6952), + 5040: uint16(18434), + 5041: uint16(5405), + 5042: uint16(18435), + 5043: uint16(10328), + 5044: uint16(18268), + 5045: uint16(18229), + 5046: uint16(18267), + 5047: uint16(11822), + 5048: uint16(9473), + 5049: uint16(10322), + 5050: uint16(18442), + 5051: uint16(18448), + 5052: uint16(18449), + 5053: uint16(18436), + 5054: uint16(9813), + 5055: uint16(18446), + 5056: uint16(18438), + 5057: uint16(18440), + 5058: uint16(18450), + 5059: uint16(18439), + 5060: uint16(18443), + 5061: uint16(4177), + 5062: uint16(9540), + 5063: uint16(18444), + 5064: uint16(18447), + 5065: uint16(18437), + 5066: uint16(8197), + 5067: uint16(18441), + 5068: uint16(6662), + 5069: uint16(7716), + 5070: uint16(5647), + 5071: uint16(11091), + 5072: uint16(11096), + 5073: uint16(7249), + 5074: uint16(18454), + 5075: uint16(18452), + 5076: uint16(11821), + 5077: uint16(18451), + 5078: uint16(11348), + 5079: uint16(18453), + 5080: uint16(18455), + 5081: uint16(18456), + 5082: uint16(18459), + 5083: uint16(18457), + 5084: uint16(9474), + 5085: uint16(18458), + 5086: uint16(10028), + 5087: uint16(18445), + 5088: uint16(7250), + 5089: uint16(18460), + 5090: uint16(18465), + 5091: uint16(8275), + 5092: uint16(18464), + 5093: uint16(18433), + 5094: uint16(18466), + 5095: uint16(8232), + 5096: uint16(18461), + 5097: uint16(18463), + 5098: uint16(18462), + 5099: uint16(15376), + 5100: uint16(15361), + 5101: uint16(18468), + 5102: uint16(18467), + 5103: uint16(11349), + 5104: uint16(16667), + 5105: uint16(18469), + 5106: uint16(18470), + 5107: uint16(18471), + 5108: uint16(5942), + 5109: uint16(5171), + 5110: uint16(18473), + 5111: uint16(12348), + 5112: uint16(5204), + 5113: uint16(11545), + 5114: uint16(5458), + 5115: uint16(18474), + 5116: uint16(18475), + 5117: uint16(8781), + 5118: uint16(18476), + 5119: uint16(9561), + 5120: uint16(3865), + 5121: uint16(4418), + 5122: uint16(18481), + 5123: uint16(18482), + 5124: uint16(18477), + 5125: uint16(6684), + 5126: uint16(18478), + 5127: uint16(9761), + 5128: uint16(18479), + 5129: uint16(18480), + 5130: uint16(18490), + 5131: uint16(18484), + 5132: uint16(18487), + 5133: uint16(18483), + 5134: uint16(18485), + 5135: uint16(18486), + 5136: uint16(6967), + 5137: uint16(18488), + 5138: uint16(8736), + 5139: uint16(5685), + 5140: uint16(4641), + 5141: uint16(18491), + 5142: uint16(4638), + 5143: uint16(18496), + 5144: uint16(18492), + 5145: uint16(18495), + 5146: uint16(10009), + 5147: uint16(18493), + 5148: uint16(18494), + 5149: uint16(10279), + 5150: uint16(10041), + 5151: uint16(18497), + 5152: uint16(8540), + 5153: uint16(18507), + 5154: uint16(18503), + 5155: uint16(4426), + 5156: uint16(18501), + 5157: uint16(10761), + 5158: uint16(18502), + 5159: uint16(18499), + 5160: uint16(18500), + 5161: uint16(18505), + 5162: uint16(18508), + 5163: uint16(18506), + 5164: uint16(18504), + 5165: uint16(18498), + 5166: uint16(8759), + 5167: uint16(18515), + 5168: uint16(11017), + 5169: uint16(18513), + 5170: uint16(18514), + 5171: uint16(18509), + 5172: uint16(18511), + 5173: uint16(18512), + 5174: uint16(18510), + 5175: uint16(8005), + 5176: uint16(11800), + 5177: uint16(18519), + 5178: uint16(18520), + 5179: uint16(18688), + 5180: uint16(7689), + 5181: uint16(18522), + 5182: uint16(18525), + 5183: uint16(18517), + 5184: uint16(18516), + 5185: uint16(18689), + 5186: uint16(4411), + 5187: uint16(18523), + 5188: uint16(18690), + 5189: uint16(18524), + 5190: uint16(18521), + 5191: uint16(8978), + 5192: uint16(18518), + 5193: uint16(9799), + 5194: uint16(18694), + 5195: uint16(11290), + 5196: uint16(18693), + 5197: uint16(18692), + 5198: uint16(18701), + 5199: uint16(18695), + 5200: uint16(18703), + 5201: uint16(11333), + 5202: uint16(18706), + 5203: uint16(18697), + 5204: uint16(18698), + 5205: uint16(18702), + 5206: uint16(18705), + 5207: uint16(18704), + 5208: uint16(18696), + 5209: uint16(18699), + 5210: uint16(18716), + 5211: uint16(18709), + 5212: uint16(18707), + 5213: uint16(18708), + 5214: uint16(18713), + 5215: uint16(18714), + 5216: uint16(4617), + 5217: uint16(5153), + 5218: uint16(18712), + 5219: uint16(18691), + 5220: uint16(18711), + 5221: uint16(18715), + 5222: uint16(18710), + 5223: uint16(18717), + 5224: uint16(18719), + 5225: uint16(18718), + 5226: uint16(18721), + 5227: uint16(18720), + 5228: uint16(18489), + 5229: uint16(18725), + 5230: uint16(18722), + 5231: uint16(18723), + 5232: uint16(18724), + 5233: uint16(18726), + 5234: uint16(5707), + 5235: uint16(18728), + 5236: uint16(18727), + 5237: uint16(7183), + 5238: uint16(6195), + 5239: uint16(15622), + 5240: uint16(18729), + 5241: uint16(7216), + 5242: uint16(4632), + 5243: uint16(18730), + 5244: uint16(4145), + 5245: uint16(7478), + 5246: uint16(18731), + 5247: uint16(6196), + 5248: uint16(18732), + 5249: uint16(3904), + 5250: uint16(10268), + 5251: uint16(18733), + 5252: uint16(7753), + 5253: uint16(18740), + 5254: uint16(18737), + 5255: uint16(8782), + 5256: uint16(18738), + 5257: uint16(18735), + 5258: uint16(5437), + 5259: uint16(18734), + 5260: uint16(18741), + 5261: uint16(5653), + 5262: uint16(8509), + 5263: uint16(18747), + 5264: uint16(18743), + 5265: uint16(8468), + 5266: uint16(18742), + 5267: uint16(18745), + 5268: uint16(18736), + 5269: uint16(18746), + 5270: uint16(18748), + 5271: uint16(10062), + 5272: uint16(18744), + 5273: uint16(18749), + 5274: uint16(18751), + 5275: uint16(5938), + 5276: uint16(18739), + 5277: uint16(3872), + 5278: uint16(18750), + 5279: uint16(6458), + 5280: uint16(11605), + 5281: uint16(18752), + 5282: uint16(18753), + 5283: uint16(8276), + 5284: uint16(11521), + 5285: uint16(18754), + 5286: uint16(11284), + 5287: uint16(18755), + 5288: uint16(18756), + 5289: uint16(10563), + 5290: uint16(18757), + 5291: uint16(6431), + 5292: uint16(11522), + 5293: uint16(18762), + 5294: uint16(18763), + 5295: uint16(7479), + 5296: uint16(18761), + 5297: uint16(11334), + 5298: uint16(18758), + 5299: uint16(18760), + 5300: uint16(7964), + 5301: uint16(7773), + 5302: uint16(18759), + 5303: uint16(18764), + 5304: uint16(10498), + 5305: uint16(18766), + 5306: uint16(18765), + 5307: uint16(4683), + 5308: uint16(10762), + 5309: uint16(18767), + 5310: uint16(18779), + 5311: uint16(18769), + 5312: uint16(18770), + 5313: uint16(18771), + 5314: uint16(18772), + 5315: uint16(18776), + 5316: uint16(18777), + 5317: uint16(18775), + 5318: uint16(18773), + 5319: uint16(18768), + 5320: uint16(18774), + 5321: uint16(18778), + 5322: uint16(20246), + 5323: uint16(4359), + 5324: uint16(18781), + 5325: uint16(5438), + 5326: uint16(18780), + 5327: uint16(18945), + 5328: uint16(18944), + 5329: uint16(18947), + 5330: uint16(18946), + 5331: uint16(18948), + 5332: uint16(7184), + 5333: uint16(18949), + 5334: uint16(18950), + 5335: uint16(18951), + 5336: uint16(7965), + 5337: uint16(11318), + 5338: uint16(18952), + 5339: uint16(10499), + 5340: uint16(9765), + 5341: uint16(18953), + 5342: uint16(18954), + 5343: uint16(5898), + 5344: uint16(5131), + 5345: uint16(18955), + 5346: uint16(6730), + 5347: uint16(9760), + 5348: uint16(18956), + 5349: uint16(4655), + 5350: uint16(18957), + 5351: uint16(18959), + 5352: uint16(11350), + 5353: uint16(18958), + 5354: uint16(7717), + 5355: uint16(18960), + 5356: uint16(18961), + 5357: uint16(18962), + 5358: uint16(4912), + 5359: uint16(18963), + 5360: uint16(18964), + 5361: uint16(18965), + 5362: uint16(18966), + 5363: uint16(4656), + 5364: uint16(18967), + 5365: uint16(18968), + 5366: uint16(18969), + 5367: uint16(4433), + 5368: uint16(7687), + 5369: uint16(18970), + 5370: uint16(18971), + 5371: uint16(18972), + 5372: uint16(5919), + 5373: uint16(9050), + 5374: uint16(18973), + 5375: uint16(5686), + 5376: uint16(7733), + 5377: uint16(18976), + 5378: uint16(9475), + 5379: uint16(18975), + 5380: uint16(5648), + 5381: uint16(18974), + 5382: uint16(8534), + 5383: uint16(5132), + 5384: uint16(18977), + 5385: uint16(18978), + 5386: uint16(7480), + 5387: uint16(5708), + 5388: uint16(18979), + 5389: uint16(10763), + 5390: uint16(7998), + 5391: uint16(5205), + 5392: uint16(11092), + 5393: uint16(8233), + 5394: uint16(18980), + 5395: uint16(7718), + 5396: uint16(8783), + 5397: uint16(7481), + 5398: uint16(18981), + 5399: uint16(18984), + 5400: uint16(18985), + 5401: uint16(6429), + 5402: uint16(8481), + 5403: uint16(18983), + 5404: uint16(7482), + 5405: uint16(10269), + 5406: uint16(18982), + 5407: uint16(6731), + 5408: uint16(4146), + 5409: uint16(18989), + 5410: uint16(5687), + 5411: uint16(6733), + 5412: uint16(6732), + 5413: uint16(11820), + 5414: uint16(18988), + 5415: uint16(18987), + 5416: uint16(8198), + 5417: uint16(5164), + 5418: uint16(11810), + 5419: uint16(4633), + 5420: uint16(7483), + 5421: uint16(18986), + 5422: uint16(18991), + 5423: uint16(18992), + 5424: uint16(18990), + 5425: uint16(5943), + 5426: uint16(11295), + 5427: uint16(6734), + 5428: uint16(9734), + 5429: uint16(18995), + 5430: uint16(7967), + 5431: uint16(8737), + 5432: uint16(11285), + 5433: uint16(18998), + 5434: uint16(5963), + 5435: uint16(7966), + 5436: uint16(18994), + 5437: uint16(18999), + 5438: uint16(5964), + 5439: uint16(18996), + 5440: uint16(18997), + 5441: uint16(18993), + 5442: uint16(8001), + 5443: uint16(9512), + 5444: uint16(8718), + 5445: uint16(4412), + 5446: uint16(10063), + 5447: uint16(5154), + 5448: uint16(8979), + 5449: uint16(19002), + 5450: uint16(19000), + 5451: uint16(8747), + 5452: uint16(7968), + 5453: uint16(4913), + 5454: uint16(19001), + 5455: uint16(7738), + 5456: uint16(11561), + 5457: uint16(11807), + 5458: uint16(19003), + 5459: uint16(19014), + 5460: uint16(8980), + 5461: uint16(19013), + 5462: uint16(19010), + 5463: uint16(19018), + 5464: uint16(19011), + 5465: uint16(19007), + 5466: uint16(9051), + 5467: uint16(19006), + 5468: uint16(19004), + 5469: uint16(11264), + 5470: uint16(6735), + 5471: uint16(19008), + 5472: uint16(19005), + 5473: uint16(19012), + 5474: uint16(7251), + 5475: uint16(5920), + 5476: uint16(8537), + 5477: uint16(10788), + 5478: uint16(4153), + 5479: uint16(3905), + 5480: uint16(9476), + 5481: uint16(19016), + 5482: uint16(19015), + 5483: uint16(9541), + 5484: uint16(19020), + 5485: uint16(19009), + 5486: uint16(19019), + 5487: uint16(19021), + 5488: uint16(5899), + 5489: uint16(19017), + 5490: uint16(6197), + 5491: uint16(6964), + 5492: uint16(19022), + 5493: uint16(11319), + 5494: uint16(19025), + 5495: uint16(19028), + 5496: uint16(19026), + 5497: uint16(10260), + 5498: uint16(19023), + 5499: uint16(5439), + 5500: uint16(19027), + 5501: uint16(19029), + 5502: uint16(19033), + 5503: uint16(19030), + 5504: uint16(19032), + 5505: uint16(19031), + 5506: uint16(19034), + 5507: uint16(6928), + 5508: uint16(19036), + 5509: uint16(19035), + 5510: uint16(10311), + 5511: uint16(19200), + 5512: uint16(5688), + 5513: uint16(19037), + 5514: uint16(19201), + 5515: uint16(19202), + 5516: uint16(5155), + 5517: uint16(17696), + 5518: uint16(7512), + 5519: uint16(19203), + 5520: uint16(5965), + 5521: uint16(19204), + 5522: uint16(19205), + 5523: uint16(6685), + 5524: uint16(14637), + 5525: uint16(19206), + 5526: uint16(19207), + 5527: uint16(7185), + 5528: uint16(19208), + 5529: uint16(19209), + 5530: uint16(19210), + 5531: uint16(19211), + 5532: uint16(19212), + 5533: uint16(8714), + 5534: uint16(19213), + 5535: uint16(19215), + 5536: uint16(19214), + 5537: uint16(9477), + 5538: uint16(19216), + 5539: uint16(10764), + 5540: uint16(19217), + 5541: uint16(19218), + 5542: uint16(19219), + 5543: uint16(19220), + 5544: uint16(9529), + 5545: uint16(7484), + 5546: uint16(19221), + 5547: uint16(6218), + 5548: uint16(12045), + 5549: uint16(19222), + 5550: uint16(19223), + 5551: uint16(10270), + 5552: uint16(19224), + 5553: uint16(19232), + 5554: uint16(19225), + 5555: uint16(19227), + 5556: uint16(19226), + 5557: uint16(19228), + 5558: uint16(10789), + 5559: uint16(19229), + 5560: uint16(19230), + 5561: uint16(19231), + 5562: uint16(19233), + 5563: uint16(4620), + 5564: uint16(9030), + 5565: uint16(10312), + 5566: uint16(6465), + 5567: uint16(6198), + 5568: uint16(10286), + 5569: uint16(4414), + 5570: uint16(10029), + 5571: uint16(19236), + 5572: uint16(4914), + 5573: uint16(7988), + 5574: uint16(19235), + 5575: uint16(19240), + 5576: uint16(8792), + 5577: uint16(11074), + 5578: uint16(19238), + 5579: uint16(19239), + 5580: uint16(5133), + 5581: uint16(19241), + 5582: uint16(9794), + 5583: uint16(8510), + 5584: uint16(10064), + 5585: uint16(9244), + 5586: uint16(19237), + 5587: uint16(10790), + 5588: uint16(4427), + 5589: uint16(19243), + 5590: uint16(11783), + 5591: uint16(8993), + 5592: uint16(11812), + 5593: uint16(6736), + 5594: uint16(19242), + 5595: uint16(8464), + 5596: uint16(19259), + 5597: uint16(8199), + 5598: uint16(9559), + 5599: uint16(10287), + 5600: uint16(19246), + 5601: uint16(6686), + 5602: uint16(6737), + 5603: uint16(7485), + 5604: uint16(9796), + 5605: uint16(5900), + 5606: uint16(19245), + 5607: uint16(19244), + 5608: uint16(10313), + 5609: uint16(6944), + 5610: uint16(9265), + 5611: uint16(19248), + 5612: uint16(19249), + 5613: uint16(6199), + 5614: uint16(19247), + 5615: uint16(19250), + 5616: uint16(19251), + 5617: uint16(19253), + 5618: uint16(8450), + 5619: uint16(19252), + 5620: uint16(4933), + 5621: uint16(19255), + 5622: uint16(19254), + 5623: uint16(19256), + 5624: uint16(19258), + 5625: uint16(19260), + 5626: uint16(19261), + 5627: uint16(7989), + 5628: uint16(6958), + 5629: uint16(19262), + 5630: uint16(4657), + 5631: uint16(19263), + 5632: uint16(8277), + 5633: uint16(19264), + 5634: uint16(19265), + 5635: uint16(10314), + 5636: uint16(5134), + 5637: uint16(19266), + 5638: uint16(8981), + 5639: uint16(4154), + 5640: uint16(19267), + 5641: uint16(6992), + 5642: uint16(7765), + 5643: uint16(8460), + 5644: uint16(19270), + 5645: uint16(19269), + 5646: uint16(19268), + 5647: uint16(19276), + 5648: uint16(19274), + 5649: uint16(19271), + 5650: uint16(19273), + 5651: uint16(19272), + 5652: uint16(19275), + 5653: uint16(5206), + 5654: uint16(19279), + 5655: uint16(7990), + 5656: uint16(19280), + 5657: uint16(5944), + 5658: uint16(19277), + 5659: uint16(19278), + 5660: uint16(11784), + 5661: uint16(8982), + 5662: uint16(8200), + 5663: uint16(19281), + 5664: uint16(19284), + 5665: uint16(19282), + 5666: uint16(19283), + 5667: uint16(11320), + 5668: uint16(9478), + 5669: uint16(19287), + 5670: uint16(19285), + 5671: uint16(19286), + 5672: uint16(19288), + 5673: uint16(19464), + 5674: uint16(19291), + 5675: uint16(19292), + 5676: uint16(19290), + 5677: uint16(19289), + 5678: uint16(9052), + 5679: uint16(19456), + 5680: uint16(19460), + 5681: uint16(19457), + 5682: uint16(19293), + 5683: uint16(19458), + 5684: uint16(19459), + 5685: uint16(19466), + 5686: uint16(19461), + 5687: uint16(7991), + 5688: uint16(19463), + 5689: uint16(19465), + 5690: uint16(19462), + 5691: uint16(19468), + 5692: uint16(7186), + 5693: uint16(19467), + 5694: uint16(19469), + 5695: uint16(19470), + 5696: uint16(19473), + 5697: uint16(19472), + 5698: uint16(19471), + 5699: uint16(19475), + 5700: uint16(19474), + 5701: uint16(11093), + 5702: uint16(19477), + 5703: uint16(19476), + 5704: uint16(19478), + 5705: uint16(19479), + 5706: uint16(19481), + 5707: uint16(19480), + 5708: uint16(7719), + 5709: uint16(19482), + 5710: uint16(5452), + 5711: uint16(19483), + 5712: uint16(19485), + 5713: uint16(19486), + 5714: uint16(19487), + 5715: uint16(19484), + 5716: uint16(19488), + 5717: uint16(6965), + 5718: uint16(19489), + 5719: uint16(5135), + 5720: uint16(5650), + 5721: uint16(5901), + 5722: uint16(19490), + 5723: uint16(9551), + 5724: uint16(9245), + 5725: uint16(19491), + 5726: uint16(19494), + 5727: uint16(6931), + 5728: uint16(19493), + 5729: uint16(19492), + 5730: uint16(5689), + 5731: uint16(19495), + 5732: uint16(4658), + 5733: uint16(19497), + 5734: uint16(6459), + 5735: uint16(19496), + 5736: uint16(19505), + 5737: uint16(19499), + 5738: uint16(19501), + 5739: uint16(10564), + 5740: uint16(19498), + 5741: uint16(19500), + 5742: uint16(19504), + 5743: uint16(19502), + 5744: uint16(5136), + 5745: uint16(19503), + 5746: uint16(19506), + 5747: uint16(9785), + 5748: uint16(11575), + 5749: uint16(7187), + 5750: uint16(19507), + 5751: uint16(11265), + 5752: uint16(19509), + 5753: uint16(19508), + 5754: uint16(19512), + 5755: uint16(11296), + 5756: uint16(19511), + 5757: uint16(4684), + 5758: uint16(19510), + 5759: uint16(19515), + 5760: uint16(19514), + 5761: uint16(19513), + 5762: uint16(9233), + 5763: uint16(19516), + 5764: uint16(19517), + 5765: uint16(19518), + 5766: uint16(6219), + 5767: uint16(5636), + 5768: uint16(19519), + 5769: uint16(19520), + 5770: uint16(19521), + 5771: uint16(7720), + 5772: uint16(19522), + 5773: uint16(6924), + 5774: uint16(19523), + 5775: uint16(19524), + 5776: uint16(12544), + 5777: uint16(12381), + 5778: uint16(19525), + 5779: uint16(17487), + 5780: uint16(19526), + 5781: uint16(8707), + 5782: uint16(7690), + 5783: uint16(9759), + 5784: uint16(19527), + 5785: uint16(10548), + 5786: uint16(9011), + 5787: uint16(6237), + 5788: uint16(8712), + 5789: uint16(4105), + 5790: uint16(10839), + 5791: uint16(7734), + 5792: uint16(5693), + 5793: uint16(5440), + 5794: uint16(10549), + 5795: uint16(19528), + 5796: uint16(19530), + 5797: uint16(19529), + 5798: uint16(4415), + 5799: uint16(9557), + 5800: uint16(19531), + 5801: uint16(9814), + 5802: uint16(9234), + 5803: uint16(19532), + 5804: uint16(7217), + 5805: uint16(19534), + 5806: uint16(11041), + 5807: uint16(19549), + 5808: uint16(19536), + 5809: uint16(19537), + 5810: uint16(9000), + 5811: uint16(8511), + 5812: uint16(8278), + 5813: uint16(9479), + 5814: uint16(19535), + 5815: uint16(5172), + 5816: uint16(19544), + 5817: uint16(19541), + 5818: uint16(19716), + 5819: uint16(9480), + 5820: uint16(8767), + 5821: uint16(19538), + 5822: uint16(9053), + 5823: uint16(9266), + 5824: uint16(19539), + 5825: uint16(19543), + 5826: uint16(7743), + 5827: uint16(9798), + 5828: uint16(9003), + 5829: uint16(7969), + 5830: uint16(19542), + 5831: uint16(8461), + 5832: uint16(8451), + 5833: uint16(19540), + 5834: uint16(3848), + 5835: uint16(11777), + 5836: uint16(19545), + 5837: uint16(8512), + 5838: uint16(7188), + 5839: uint16(7721), + 5840: uint16(19547), + 5841: uint16(19546), + 5842: uint16(3918), + 5843: uint16(19548), + 5844: uint16(10254), + 5845: uint16(19718), + 5846: uint16(9530), + 5847: uint16(7754), + 5848: uint16(8760), + 5849: uint16(5463), + 5850: uint16(19717), + 5851: uint16(11286), + 5852: uint16(4126), + 5853: uint16(10550), + 5854: uint16(4416), + 5855: uint16(19712), + 5856: uint16(19713), + 5857: uint16(19714), + 5858: uint16(19715), + 5859: uint16(9498), + 5860: uint16(8706), + 5861: uint16(3906), + 5862: uint16(19719), + 5863: uint16(19720), + 5864: uint16(21250), + 5865: uint16(8476), + 5866: uint16(19721), + 5867: uint16(4178), + 5868: uint16(8235), + 5869: uint16(5902), + 5870: uint16(11321), + 5871: uint16(19722), + 5872: uint16(9227), + 5873: uint16(8279), + 5874: uint16(6966), + 5875: uint16(19723), + 5876: uint16(19726), + 5877: uint16(7236), + 5878: uint16(19724), + 5879: uint16(8202), + 5880: uint16(8201), + 5881: uint16(3907), + 5882: uint16(11562), + 5883: uint16(19728), + 5884: uint16(10065), + 5885: uint16(19730), + 5886: uint16(19729), + 5887: uint16(19727), + 5888: uint16(16963), + 5889: uint16(4915), + 5890: uint16(19533), + 5891: uint16(19732), + 5892: uint16(19731), + 5893: uint16(19733), + 5894: uint16(11287), + 5895: uint16(9536), + 5896: uint16(10765), + 5897: uint16(19734), + 5898: uint16(6968), + 5899: uint16(19735), + 5900: uint16(19736), + 5901: uint16(19737), + 5902: uint16(9216), + 5903: uint16(3913), + 5904: uint16(6200), + 5905: uint16(11801), + 5906: uint16(19741), + 5907: uint16(5651), + 5908: uint16(19738), + 5909: uint16(19739), + 5910: uint16(10323), + 5911: uint16(4659), + 5912: uint16(11288), + 5913: uint16(5406), + 5914: uint16(9267), + 5915: uint16(19742), + 5916: uint16(19743), + 5917: uint16(19744), + 5918: uint16(9217), + 5919: uint16(19746), + 5920: uint16(19745), + 5921: uint16(9522), + 5922: uint16(19747), + 5923: uint16(7189), + 5924: uint16(6975), + 5925: uint16(9786), + 5926: uint16(8784), + 5927: uint16(6993), + 5928: uint16(7755), + 5929: uint16(19748), + 5930: uint16(19749), + 5931: uint16(7740), + 5932: uint16(19750), + 5933: uint16(19751), + 5934: uint16(19752), + 5935: uint16(11342), + 5936: uint16(7190), + 5937: uint16(19754), + 5938: uint16(19753), + 5939: uint16(6201), + 5940: uint16(6226), + 5941: uint16(6687), + 5942: uint16(19757), + 5943: uint16(7237), + 5944: uint16(19756), + 5945: uint16(19755), + 5946: uint16(8520), + 5947: uint16(5966), + 5948: uint16(7970), + 5949: uint16(9999), + 5950: uint16(7192), + 5951: uint16(19758), + 5952: uint16(7486), + 5953: uint16(19761), + 5954: uint16(19759), + 5955: uint16(19760), + 5956: uint16(19763), + 5957: uint16(19762), + 5958: uint16(7513), + 5959: uint16(19764), + 5960: uint16(19765), + 5961: uint16(19766), + 5962: uint16(10031), + 5963: uint16(6450), + 5964: uint16(6976), + 5965: uint16(19767), + 5966: uint16(19768), + 5967: uint16(11523), + 5968: uint16(7204), + 5969: uint16(11085), + 5970: uint16(11563), + 5971: uint16(19769), + 5972: uint16(5441), + 5973: uint16(19770), + 5974: uint16(9218), + 5975: uint16(19773), + 5976: uint16(4695), + 5977: uint16(7722), + 5978: uint16(19771), + 5979: uint16(19772), + 5980: uint16(9023), + 5981: uint16(10804), + 5982: uint16(5467), + 5983: uint16(19775), + 5984: uint16(19776), + 5985: uint16(19774), + 5986: uint16(19778), + 5987: uint16(9534), + 5988: uint16(4642), + 5989: uint16(19782), + 5990: uint16(19779), + 5991: uint16(19781), + 5992: uint16(19777), + 5993: uint16(20014), + 5994: uint16(19780), + 5995: uint16(11594), + 5996: uint16(5945), + 5997: uint16(19790), + 5998: uint16(9235), + 5999: uint16(19785), + 6000: uint16(19788), + 6001: uint16(19786), + 6002: uint16(19791), + 6003: uint16(19792), + 6004: uint16(19784), + 6005: uint16(19797), + 6006: uint16(4179), + 6007: uint16(19783), + 6008: uint16(9996), + 6009: uint16(19787), + 6010: uint16(7487), + 6011: uint16(6202), + 6012: uint16(10791), + 6013: uint16(5443), + 6014: uint16(7205), + 6015: uint16(9499), + 6016: uint16(8204), + 6017: uint16(19795), + 6018: uint16(19789), + 6019: uint16(19794), + 6020: uint16(11042), + 6021: uint16(8983), + 6022: uint16(19796), + 6023: uint16(19793), + 6024: uint16(8203), + 6025: uint16(19800), + 6026: uint16(19799), + 6027: uint16(19798), + 6028: uint16(10766), + 6029: uint16(7258), + 6030: uint16(19801), + 6031: uint16(10558), + 6032: uint16(4147), + 6033: uint16(10277), + 6034: uint16(8785), + 6035: uint16(5207), + 6036: uint16(19803), + 6037: uint16(6204), + 6038: uint16(6667), + 6039: uint16(19802), + 6040: uint16(7756), + 6041: uint16(7757), + 6042: uint16(19968), + 6043: uint16(19970), + 6044: uint16(7514), + 6045: uint16(19969), + 6046: uint16(19971), + 6047: uint16(5426), + 6048: uint16(10276), + 6049: uint16(6977), + 6050: uint16(11778), + 6051: uint16(19805), + 6052: uint16(6487), + 6053: uint16(11806), + 6054: uint16(19973), + 6055: uint16(19972), + 6056: uint16(19974), + 6057: uint16(19804), + 6058: uint16(9544), + 6059: uint16(9268), + 6060: uint16(9014), + 6061: uint16(19979), + 6062: uint16(8738), + 6063: uint16(19975), + 6064: uint16(19976), + 6065: uint16(5644), + 6066: uint16(19978), + 6067: uint16(5903), + 6068: uint16(19977), + 6069: uint16(7488), + 6070: uint16(4696), + 6071: uint16(19983), + 6072: uint16(6430), + 6073: uint16(8280), + 6074: uint16(9001), + 6075: uint16(4634), + 6076: uint16(19981), + 6077: uint16(19982), + 6078: uint16(8994), + 6079: uint16(19980), + 6080: uint16(19984), + 6081: uint16(19990), + 6082: uint16(19993), + 6083: uint16(19992), + 6084: uint16(9228), + 6085: uint16(19985), + 6086: uint16(19986), + 6087: uint16(19989), + 6088: uint16(19991), + 6089: uint16(5407), + 6090: uint16(19994), + 6091: uint16(19988), + 6092: uint16(19987), + 6093: uint16(19998), + 6094: uint16(19999), + 6095: uint16(20000), + 6096: uint16(19997), + 6097: uint16(19996), + 6098: uint16(7489), + 6099: uint16(9481), + 6100: uint16(19995), + 6101: uint16(20004), + 6102: uint16(20002), + 6103: uint16(20003), + 6104: uint16(20001), + 6105: uint16(8535), + 6106: uint16(20005), + 6107: uint16(20006), + 6108: uint16(20008), + 6109: uint16(4916), + 6110: uint16(20007), + 6111: uint16(11097), + 6112: uint16(20019), + 6113: uint16(20009), + 6114: uint16(20012), + 6115: uint16(20010), + 6116: uint16(20011), + 6117: uint16(20013), + 6118: uint16(20015), + 6119: uint16(20016), + 6120: uint16(20017), + 6121: uint16(20020), + 6122: uint16(20018), + 6123: uint16(20021), + 6124: uint16(20023), + 6125: uint16(20022), + 6126: uint16(8984), + 6127: uint16(11078), + 6128: uint16(20024), + 6129: uint16(8205), + 6130: uint16(20025), + 6131: uint16(10531), + 6132: uint16(20026), + 6133: uint16(4618), + 6134: uint16(4123), + 6135: uint16(4918), + 6136: uint16(4917), + 6137: uint16(20027), + 6138: uint16(20028), + 6139: uint16(20029), + 6140: uint16(20030), + 6141: uint16(20031), + 6142: uint16(4919), + 6143: uint16(4660), + 6144: uint16(6205), + 6145: uint16(10005), + 6146: uint16(20033), + 6147: uint16(20032), + 6148: uint16(20034), + 6149: uint16(4155), + 6150: uint16(20037), + 6151: uint16(20036), + 6152: uint16(20035), + 6153: uint16(20038), + 6154: uint16(20041), + 6155: uint16(3878), + 6156: uint16(20039), + 6157: uint16(20043), + 6158: uint16(20042), + 6159: uint16(20045), + 6160: uint16(20044), + 6161: uint16(20046), + 6162: uint16(9485), + 6163: uint16(20047), + 6164: uint16(20048), + 6165: uint16(20050), + 6166: uint16(20049), + 6167: uint16(10315), + 6168: uint16(20051), + 6169: uint16(20052), + 6170: uint16(6468), + 6171: uint16(20053), + 6172: uint16(20054), + 6173: uint16(10792), + 6174: uint16(8234), + 6175: uint16(3843), + 6176: uint16(8490), + 6177: uint16(20055), + 6178: uint16(10316), + 6179: uint16(20058), + 6180: uint16(20056), + 6181: uint16(6206), + 6182: uint16(20057), + 6183: uint16(5921), + 6184: uint16(10532), + 6185: uint16(20060), + 6186: uint16(20224), + 6187: uint16(20061), + 6188: uint16(20225), + 6189: uint16(4096), + 6190: uint16(7735), + 6191: uint16(7259), + 6192: uint16(4920), + 6193: uint16(20226), + 6194: uint16(9797), + 6195: uint16(20228), + 6196: uint16(4097), + 6197: uint16(20227), + 6198: uint16(8995), + 6199: uint16(11564), + 6200: uint16(9482), + 6201: uint16(20059), + 6202: uint16(11525), + 6203: uint16(5904), + 6204: uint16(11322), + 6205: uint16(5464), + 6206: uint16(11539), + 6207: uint16(5639), + 6208: uint16(8513), + 6209: uint16(17920), + 6210: uint16(20229), + 6211: uint16(4619), + 6212: uint16(7758), + 6213: uint16(4661), + 6214: uint16(20231), + 6215: uint16(20232), + 6216: uint16(20230), + 6217: uint16(5699), + 6218: uint16(6460), + 6219: uint16(7490), + 6220: uint16(4098), + 6221: uint16(11576), + 6222: uint16(20234), + 6223: uint16(19725), + 6224: uint16(20233), + 6225: uint16(20237), + 6226: uint16(20235), + 6227: uint16(20236), + 6228: uint16(20238), + 6229: uint16(20239), + 6230: uint16(11595), + 6231: uint16(20240), + 6232: uint16(20241), + 6233: uint16(7976), + 6234: uint16(10010), + 6235: uint16(7772), + 6236: uint16(4934), + 6237: uint16(11289), + 6238: uint16(4428), + 6239: uint16(7191), + 6240: uint16(5946), + 6241: uint16(20244), + 6242: uint16(20243), + 6243: uint16(6738), + 6244: uint16(20245), + 6245: uint16(20242), + 6246: uint16(6663), + 6247: uint16(20249), + 6248: uint16(18700), + 6249: uint16(12597), + 6250: uint16(7766), + 6251: uint16(20247), + 6252: uint16(11524), + 6253: uint16(9552), + 6254: uint16(4106), + 6255: uint16(8002), + 6256: uint16(6933), + 6257: uint16(10518), + 6258: uint16(4127), + 6259: uint16(11596), + 6260: uint16(11338), + 6261: uint16(20250), + 6262: uint16(9252), + 6263: uint16(7002), + 6264: uint16(20251), + 6265: uint16(20252), + 6266: uint16(7723), + 6267: uint16(20253), + 6268: uint16(11597), + 6269: uint16(20248), + 6270: uint16(20255), + 6271: uint16(20257), + 6272: uint16(20256), + 6273: uint16(20254), + 6274: uint16(20258), + 6275: uint16(20259), + 6276: uint16(8281), + 6277: uint16(4417), + 6278: uint16(20260), + 6279: uint16(11031), + 6280: uint16(20261), + 6281: uint16(20262), + 6282: uint16(11785), + 6283: uint16(14864), + 6284: uint16(20263), + 6285: uint16(20264), + 6286: uint16(20265), + 6287: uint16(20269), + 6288: uint16(20266), + 6289: uint16(20267), + 6290: uint16(20268), + 6291: uint16(20270), + 6292: uint16(7971), + 6293: uint16(11094), + 6294: uint16(7972), + 6295: uint16(20271), + 6296: uint16(10066), + 6297: uint16(20272), + 6298: uint16(21042), + 6299: uint16(11051), + 6300: uint16(20273), + 6301: uint16(20274), + 6302: uint16(20275), + 6303: uint16(4662), + 6304: uint16(20277), + 6305: uint16(7736), + 6306: uint16(20278), + 6307: uint16(5635), + 6308: uint16(20279), + 6309: uint16(20283), + 6310: uint16(20281), + 6311: uint16(20282), + 6312: uint16(4690), + 6313: uint16(20280), + 6314: uint16(20284), + 6315: uint16(20285), + 6316: uint16(3879), + 6317: uint16(20286), + 6318: uint16(20287), + 6319: uint16(7491), + 6320: uint16(20288), + 6321: uint16(5158), + 6322: uint16(20291), + 6323: uint16(20290), + 6324: uint16(20289), + 6325: uint16(19024), + 6326: uint16(10555), + 6327: uint16(20292), + 6328: uint16(20293), + 6329: uint16(20294), + 6330: uint16(20295), + 6331: uint16(20296), + 6332: uint16(20297), + 6333: uint16(4921), + 6334: uint16(20298), + 6335: uint16(20299), + 6336: uint16(9730), + 6337: uint16(20301), + 6338: uint16(4378), + 6339: uint16(20304), + 6340: uint16(20303), + 6341: uint16(4099), + 6342: uint16(5408), + 6343: uint16(10534), + 6344: uint16(8985), + 6345: uint16(6401), + 6346: uint16(6207), + 6347: uint16(7238), + 6348: uint16(7739), + 6349: uint16(20306), + 6350: uint16(20305), + 6351: uint16(11297), + 6352: uint16(4935), + 6353: uint16(10033), + 6354: uint16(9531), + 6355: uint16(7771), + 6356: uint16(11565), + 6357: uint16(5690), + 6358: uint16(20309), + 6359: uint16(20308), + 6360: uint16(10794), + 6361: uint16(9483), + 6362: uint16(4143), + 6363: uint16(20310), + 6364: uint16(20307), + 6365: uint16(10288), + 6366: uint16(11337), + 6367: uint16(20311), + 6368: uint16(20312), + 6369: uint16(20314), + 6370: uint16(8521), + 6371: uint16(4666), + 6372: uint16(4667), + 6373: uint16(20313), + 6374: uint16(4936), + 6375: uint16(5905), + 6376: uint16(4937), + 6377: uint16(9246), + 6378: uint16(11583), + 6379: uint16(5947), + 6380: uint16(20315), + 6381: uint16(20316), + 6382: uint16(20317), + 6383: uint16(20480), + 6384: uint16(20482), + 6385: uint16(20481), + 6386: uint16(10326), + 6387: uint16(20483), + 6388: uint16(20484), + 6389: uint16(20485), + 6390: uint16(20486), + 6391: uint16(20488), + 6392: uint16(20487), + 6393: uint16(20489), + 6394: uint16(10067), + 6395: uint16(17707), + 6396: uint16(7688), + 6397: uint16(5137), + 6398: uint16(20490), + 6399: uint16(20491), + 6400: uint16(12555), + 6401: uint16(15386), + 6402: uint16(10034), + 6403: uint16(3930), + 6404: uint16(3866), + 6405: uint16(6739), + 6406: uint16(10767), + 6407: uint16(7517), + 6408: uint16(20492), + 6409: uint16(11070), + 6410: uint16(20493), + 6411: uint16(11323), + 6412: uint16(4129), + 6413: uint16(6688), + 6414: uint16(20494), + 6415: uint16(4429), + 6416: uint16(20495), + 6417: uint16(20496), + 6418: uint16(20498), + 6419: uint16(20499), + 6420: uint16(20501), + 6421: uint16(20497), + 6422: uint16(20500), + 6423: uint16(4922), + 6424: uint16(20502), + 6425: uint16(20503), + 6426: uint16(20504), + 6427: uint16(20505), + 6428: uint16(20506), + 6429: uint16(20508), + 6430: uint16(20507), + 6431: uint16(20510), + 6432: uint16(20513), + 6433: uint16(20509), + 6434: uint16(20511), + 6435: uint16(20512), + 6436: uint16(20514), + 6437: uint16(5409), + 6438: uint16(6994), + 6439: uint16(20515), + 6440: uint16(20516), + 6441: uint16(6208), + 6442: uint16(20517), + 6443: uint16(4637), + 6444: uint16(9774), + 6445: uint16(20518), + 6446: uint16(20519), + 6447: uint16(8761), + 6448: uint16(9546), + 6449: uint16(20520), + 6450: uint16(9820), + 6451: uint16(8491), + 6452: uint16(4151), + 6453: uint16(5453), + 6454: uint16(5454), + 6455: uint16(8786), + 6456: uint16(20525), + 6457: uint16(5455), + 6458: uint16(4430), + 6459: uint16(20524), + 6460: uint16(20522), + 6461: uint16(20523), + 6462: uint16(20521), + 6463: uint16(20535), + 6464: uint16(20526), + 6465: uint16(20527), + 6466: uint16(20528), + 6467: uint16(20529), + 6468: uint16(20531), + 6469: uint16(20530), + 6470: uint16(7224), + 6471: uint16(20532), + 6472: uint16(20534), + 6473: uint16(5138), + 6474: uint16(20533), + 6475: uint16(8282), + 6476: uint16(5906), + 6477: uint16(20536), + 6478: uint16(8492), + 6479: uint16(20537), + 6480: uint16(9484), + 6481: uint16(20538), + 6482: uint16(20543), + 6483: uint16(20541), + 6484: uint16(20540), + 6485: uint16(20542), + 6486: uint16(20539), + 6487: uint16(20545), + 6488: uint16(20544), + 6489: uint16(20547), + 6490: uint16(5410), + 6491: uint16(20546), + 6492: uint16(20548), + 6493: uint16(20549), + 6494: uint16(20551), + 6495: uint16(20550), + 6496: uint16(20552), + 6497: uint16(20554), + 6498: uint16(20553), + 6499: uint16(6235), + 6500: uint16(20555), + 6501: uint16(20556), + 6502: uint16(4635), + 6503: uint16(20557), + 6504: uint16(20558), + 6505: uint16(7760), + 6506: uint16(20559), + 6507: uint16(20560), + 6508: uint16(20561), + 6509: uint16(20562), + 6510: uint16(6209), + 6511: uint16(20563), + 6512: uint16(20564), + 6513: uint16(20565), + 6514: uint16(20566), + 6515: uint16(20567), + 6516: uint16(10000), + 6517: uint16(20569), + 6518: uint16(10245), + 6519: uint16(20570), + 6520: uint16(20568), + 6521: uint16(20572), + 6522: uint16(20571), + 6523: uint16(20573), + 6524: uint16(20736), + 6525: uint16(20737), + 6526: uint16(20738), + 6527: uint16(20739), + 6528: uint16(20740), + 6529: uint16(20741), + 6530: uint16(20742), + 6531: uint16(20743), + 6532: uint16(20744), + 6533: uint16(20745), + 6534: uint16(20746), + 6535: uint16(20747), + 6536: uint16(20748), + 6537: uint16(20749), + 6538: uint16(15380), + 6539: uint16(20750), + 6540: uint16(17239), + 6541: uint16(5139), + 6542: uint16(4608), + 6543: uint16(6417), + 6544: uint16(20752), + 6545: uint16(20751), + 6546: uint16(11012), + 6547: uint16(20754), + 6548: uint16(20755), + 6549: uint16(20753), + 6550: uint16(20756), + 6551: uint16(10817), + 6552: uint16(20757), + 6553: uint16(5210), + 6554: uint16(11780), + 6555: uint16(20758), + 6556: uint16(20760), + 6557: uint16(3869), + 6558: uint16(20761), + 6559: uint16(10506), + 6560: uint16(20759), + 6561: uint16(20762), + 6562: uint16(20763), + 6563: uint16(20764), + 6564: uint16(20765), + 6565: uint16(20766), + 6566: uint16(10829), + 6567: uint16(6668), + 6568: uint16(6489), + 6569: uint16(8206), + 6570: uint16(20767), + 6571: uint16(20770), + 6572: uint16(20768), + 6573: uint16(20771), + 6574: uint16(5968), + 6575: uint16(20769), + 6576: uint16(20772), + 6577: uint16(20773), + 6578: uint16(20774), + 6579: uint16(20778), + 6580: uint16(6665), + 6581: uint16(8515), + 6582: uint16(20779), + 6583: uint16(20776), + 6584: uint16(20775), + 6585: uint16(20777), + 6586: uint16(5694), + 6587: uint16(20783), + 6588: uint16(20782), + 6589: uint16(20781), + 6590: uint16(3858), + 6591: uint16(20793), + 6592: uint16(20789), + 6593: uint16(20790), + 6594: uint16(20786), + 6595: uint16(20792), + 6596: uint16(20788), + 6597: uint16(4673), + 6598: uint16(11819), + 6599: uint16(20791), + 6600: uint16(20787), + 6601: uint16(20785), + 6602: uint16(20784), + 6603: uint16(20795), + 6604: uint16(20798), + 6605: uint16(20797), + 6606: uint16(20796), + 6607: uint16(10280), + 6608: uint16(20794), + 6609: uint16(3922), + 6610: uint16(20799), + 6611: uint16(20801), + 6612: uint16(4686), + 6613: uint16(20780), + 6614: uint16(4118), + 6615: uint16(20803), + 6616: uint16(20802), + 6617: uint16(20800), + 6618: uint16(8716), + 6619: uint16(10831), + 6620: uint16(11577), + 6621: uint16(20804), + 6622: uint16(20805), + 6623: uint16(20806), + 6624: uint16(20807), + 6625: uint16(20808), + 6626: uint16(8986), + 6627: uint16(20809), + 6628: uint16(10006), + 6629: uint16(20814), + 6630: uint16(20810), + 6631: uint16(20811), + 6632: uint16(10768), + 6633: uint16(11043), + 6634: uint16(9519), + 6635: uint16(20815), + 6636: uint16(20816), + 6637: uint16(9501), + 6638: uint16(20813), + 6639: uint16(20812), + 6640: uint16(4361), + 6641: uint16(20824), + 6642: uint16(20823), + 6643: uint16(4180), + 6644: uint16(20821), + 6645: uint16(20820), + 6646: uint16(20818), + 6647: uint16(4698), + 6648: uint16(20817), + 6649: uint16(6929), + 6650: uint16(4360), + 6651: uint16(6210), + 6652: uint16(20827), + 6653: uint16(20826), + 6654: uint16(20825), + 6655: uint16(20822), + 6656: uint16(20828), + 6657: uint16(20829), + 6658: uint16(20996), + 6659: uint16(20995), + 6660: uint16(20997), + 6661: uint16(4108), + 6662: uint16(20992), + 6663: uint16(20993), + 6664: uint16(6227), + 6665: uint16(11032), + 6666: uint16(20994), + 6667: uint16(10769), + 6668: uint16(21002), + 6669: uint16(20998), + 6670: uint16(21003), + 6671: uint16(21000), + 6672: uint16(20999), + 6673: uint16(5691), + 6674: uint16(21004), + 6675: uint16(21005), + 6676: uint16(21006), + 6677: uint16(21001), + 6678: uint16(20819), + 6679: uint16(21007), + 6680: uint16(9024), + 6681: uint16(21011), + 6682: uint16(21012), + 6683: uint16(21010), + 6684: uint16(21009), + 6685: uint16(21015), + 6686: uint16(21008), + 6687: uint16(21013), + 6688: uint16(21014), + 6689: uint16(21017), + 6690: uint16(21016), + 6691: uint16(21019), + 6692: uint16(21020), + 6693: uint16(21021), + 6694: uint16(11816), + 6695: uint16(21018), + 6696: uint16(8522), + 6697: uint16(6476), + 6698: uint16(21022), + 6699: uint16(21023), + 6700: uint16(21024), + 6701: uint16(21025), + 6702: uint16(21026), + 6703: uint16(5907), + 6704: uint16(21027), + 6705: uint16(21028), + 6706: uint16(6926), + 6707: uint16(21029), + 6708: uint16(21030), + 6709: uint16(21031), + 6710: uint16(21032), + 6711: uint16(21035), + 6712: uint16(21033), + 6713: uint16(11803), + 6714: uint16(21034), + 6715: uint16(11598), + 6716: uint16(21036), + 6717: uint16(11578), + 6718: uint16(21037), + 6719: uint16(9821), + 6720: uint16(21038), + 6721: uint16(21040), + 6722: uint16(21041), + 6723: uint16(21039), + 6724: uint16(6220), + 6725: uint16(11052), + 6726: uint16(10818), + 6727: uint16(13654), + 6728: uint16(15423), + 6729: uint16(10842), + 6730: uint16(4362), + 6731: uint16(21043), + 6732: uint16(5167), + 6733: uint16(21044), + 6734: uint16(21045), + 6735: uint16(21046), + 6736: uint16(6228), + 6737: uint16(21047), + 6738: uint16(16179), + 6739: uint16(11066), + 6740: uint16(8514), + 6741: uint16(21048), + 6742: uint16(21050), + 6743: uint16(21049), + 6744: uint16(21051), + 6745: uint16(21052), + 6746: uint16(21053), + 6747: uint16(21054), + 6748: uint16(21055), + 6749: uint16(21056), + 6750: uint16(21057), + 6751: uint16(21058), + 6752: uint16(21059), + 6753: uint16(21060), + 6754: uint16(21061), + 6755: uint16(21062), + 6756: uint16(21063), + 6757: uint16(9219), + 6758: uint16(5948), + 6759: uint16(21065), + 6760: uint16(8236), + 6761: uint16(21066), + 6762: uint16(21067), + 6763: uint16(10240), + 6764: uint16(21068), + 6765: uint16(21069), + 6766: uint16(16918), + 6767: uint16(19257), + 6768: uint16(20300), + 6769: uint16(21070), + 6770: uint16(21071), + 6771: uint16(21073), + 6772: uint16(21074), + 6773: uint16(21075), + 6774: uint16(11599), + 6775: uint16(21072), + 6776: uint16(21076), + 6777: uint16(21077), + 6778: uint16(21079), + 6779: uint16(21078), + 6780: uint16(21081), + 6781: uint16(21082), + 6782: uint16(21080), + 6783: uint16(11541), + 6784: uint16(21083), + 6785: uint16(21084), + 6786: uint16(16947), + 6787: uint16(21085), + 6788: uint16(9), + 6789: uint16(83), + 6790: uint16(79), + 6791: uint16(82), + 6792: uint16(84), + 6793: uint16(41), + 6794: uint16(42), + 6795: uint16(85), + 6796: uint16(59), + 6797: uint16(3), + 6798: uint16(4), + 6799: uint16(30), + 6800: uint16(527), + 6801: uint16(528), + 6802: uint16(529), + 6803: uint16(530), + 6804: uint16(531), + 6805: uint16(532), + 6806: uint16(533), + 6807: uint16(534), + 6808: uint16(535), + 6809: uint16(536), + 6810: uint16(6), + 6811: uint16(7), + 6812: uint16(66), + 6813: uint16(64), + 6814: uint16(67), + 6815: uint16(8), + 6816: uint16(86), + 6817: uint16(544), + 6818: uint16(545), + 6819: uint16(546), + 6820: uint16(547), + 6821: uint16(548), + 6822: uint16(549), + 6823: uint16(550), + 6824: uint16(551), + 6825: uint16(552), + 6826: uint16(553), + 6827: uint16(554), + 6828: uint16(555), + 6829: uint16(556), + 6830: uint16(557), + 6831: uint16(558), + 6832: uint16(559), + 6833: uint16(560), + 6834: uint16(561), + 6835: uint16(562), + 6836: uint16(563), + 6837: uint16(564), + 6838: uint16(565), + 6839: uint16(566), + 6840: uint16(567), + 6841: uint16(568), + 6842: uint16(569), + 6843: uint16(45), + 6844: uint16(46), + 6845: uint16(15), + 6846: uint16(17), + 6847: uint16(13), + 6848: uint16(576), + 6849: uint16(577), + 6850: uint16(578), + 6851: uint16(579), + 6852: uint16(580), + 6853: uint16(581), + 6854: uint16(582), + 6855: uint16(583), + 6856: uint16(584), + 6857: uint16(585), + 6858: uint16(586), + 6859: uint16(587), + 6860: uint16(588), + 6861: uint16(589), + 6862: uint16(590), + 6863: uint16(591), + 6864: uint16(592), + 6865: uint16(593), + 6866: uint16(594), + 6867: uint16(595), + 6868: uint16(596), + 6869: uint16(597), + 6870: uint16(598), + 6871: uint16(599), + 6872: uint16(600), + 6873: uint16(601), + 6874: uint16(47), + 6875: uint16(34), + 6876: uint16(48), + 6877: uint16(16), + 6878: uint16(78), +} + +func _fuzzycmp(tls *TLS, a uintptr, b uintptr) (r int32) { + for { + if !(*(*uint8)(unsafe.Pointer(a)) != 0 && *(*uint8)(unsafe.Pointer(b)) != 0) { + break + } + for *(*uint8)(unsafe.Pointer(a)) != 0 && uint32(*(*uint8)(unsafe.Pointer(a)))|uint32(32)-uint32('a') > uint32(26) && uint32(int32(*(*uint8)(unsafe.Pointer(a)))-int32('0')) > uint32(10) { + a++ + } + if uint32(*(*uint8)(unsafe.Pointer(a)))|uint32(32) != uint32(*(*uint8)(unsafe.Pointer(b))) { + return int32(1) + } + goto _1 + _1: + ; + a++ + b++ + } + return BoolInt32(int32(*(*uint8)(unsafe.Pointer(a))) != int32(*(*uint8)(unsafe.Pointer(b)))) +} + +func _find_charmap(tls *TLS, name uintptr) (r Tsize_t) { + var s uintptr + _ = s + if !(*(*uint8)(unsafe.Pointer(name)) != 0) { + name = uintptr(unsafe.Pointer(&_charmaps)) + } /* "utf8" */ + s = uintptr(unsafe.Pointer(&_charmaps)) + for { + if !(*(*uint8)(unsafe.Pointer(s)) != 0) { + break + } + if !(_fuzzycmp(tls, name, s) != 0) { + for { + if !(*(*uint8)(unsafe.Pointer(s)) != 0) { + break + } + goto _2 + _2: + ; + s += uintptr(Xstrlen(tls, s) + uint64(1)) + } + return uint64(int64(s+uintptr(1)) - t__predefined_ptrdiff_t(uintptr(unsafe.Pointer(&_charmaps)))) + } + s += uintptr(Xstrlen(tls, s) + uint64(1)) + if !(*(*uint8)(unsafe.Pointer(s)) != 0) { + if int32(*(*uint8)(unsafe.Pointer(s + 1))) > int32(0200) { + s += uintptr(2) + } else { + s += uintptr(uint32(2) + (uint32(64)-uint32(*(*uint8)(unsafe.Pointer(s + 1))))*uint32(5)) + } + } + goto _1 + _1: + } + return uint64(-Int32FromInt32(1)) +} + +type Tstateful_cd = struct { + Fbase_cd Ticonv_t + Fstate uint32 +} + +func _combine_to_from(tls *TLS, t Tsize_t, f Tsize_t) (r Ticonv_t) { + return uintptr(f<> int32(16) +} + +func _extract_to(tls *TLS, cd Ticonv_t) (r Tsize_t) { + return uint64(cd) >> int32(1) & uint64(0x7fff) +} + +func Xiconv_open(tls *TLS, to uintptr, from uintptr) (r Ticonv_t) { + if __ccgo_strace { + trc("tls=%v to=%v from=%v, (%v:)", tls, to, from, origin(2)) + defer func() { trc("-> %v", r) }() + } + var cd Ticonv_t + var f, t, v1, v2 Tsize_t + var scd uintptr + var v3 bool + _, _, _, _, _, _, _ = cd, f, scd, t, v1, v2, v3 + v1 = _find_charmap(tls, to) + t = v1 + if v3 = v1 == uint64(-Int32FromInt32(1)); !v3 { + v2 = _find_charmap(tls, from) + f = v2 + } + if v3 || v2 == uint64(-Int32FromInt32(1)) || int32(_charmaps[t]) >= int32(0330) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return uintptr(-Int32FromInt32(1)) + } + cd = _combine_to_from(tls, t, f) + switch int32(_charmaps[f]) { + case int32(UTF_16): + fallthrough + case int32(UTF_32): + fallthrough + case int32(UCS2): + fallthrough + case int32(ISO2022_JP): + scd = Xmalloc(tls, uint64(16)) + if !(scd != 0) { + return uintptr(-Int32FromInt32(1)) + } + (*Tstateful_cd)(unsafe.Pointer(scd)).Fbase_cd = cd + (*Tstateful_cd)(unsafe.Pointer(scd)).Fstate = uint32(0) + cd = scd + } + return cd +} + +func _get_16(tls *TLS, s uintptr, e int32) (r uint32) { + e &= int32(1) + return uint32(int32(*(*uint8)(unsafe.Pointer(s + uintptr(e))))<> int32(8)) + *(*uint8)(unsafe.Pointer(s + uintptr(int32(1)-e))) = uint8(c) +} + +func _get_32(tls *TLS, s uintptr, e int32) (r uint32) { + e &= int32(3) + return (uint32(*(*uint8)(unsafe.Pointer(s + uintptr(e))))+0)<> int32(24)) + *(*uint8)(unsafe.Pointer(s + uintptr(e^int32(1)))) = uint8(c >> int32(16)) + *(*uint8)(unsafe.Pointer(s + uintptr(e^int32(2)))) = uint8(c >> int32(8)) + *(*uint8)(unsafe.Pointer(s + uintptr(e^int32(3)))) = uint8(c) +} + +/* Adapt as needed */ + +func _legacy_map(tls *TLS, map1 uintptr, c uint32) (r uint32) { + var x, v1 uint32 + _, _ = x, v1 + if c < uint32(int32(4)*int32(*(*uint8)(unsafe.Pointer(map1 + uintptr(-Int32FromInt32(1)))))) { + return c + } + x = c - uint32(int32(4)*int32(*(*uint8)(unsafe.Pointer(map1 + uintptr(-Int32FromInt32(1)))))) + x = uint32(int32(*(*uint8)(unsafe.Pointer(map1 + uintptr(x*uint32(5)/uint32(4)))))>>(uint32(2)*x%uint32(8)) | int32(*(*uint8)(unsafe.Pointer(map1 + uintptr(x*uint32(5)/uint32(4)+uint32(1)))))<<(uint32(8)-uint32(2)*x%uint32(8))&int32(1023)) + if x < uint32(256) { + v1 = x + } else { + v1 = uint32(_legacy_chars[x-uint32(256)]) + } + return v1 +} + +func _uni_to_jis(tls *TLS, c uint32) (r uint32) { + var b, d, i, j, nel uint32 + _, _, _, _, _ = b, d, i, j, nel + nel = uint32(Uint64FromInt64(13758) / Uint64FromInt64(2)) + b = uint32(0) + for { + i = nel / uint32(2) + j = uint32(_rev_jis[b+i]) + d = uint32(*(*uint16)(unsafe.Pointer(uintptr(unsafe.Pointer(&_jis0208)) + uintptr(j/uint32(256))*188 + uintptr(j%uint32(256))*2))) + if d == c { + return j + uint32(0x2121) + } else { + if nel == uint32(1) { + return uint32(0) + } else { + if c < d { + nel /= uint32(2) + } else { + b += i + nel -= nel / uint32(2) + } + } + } + goto _1 + _1: + } + return r +} + +func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v cd=%v in=%v inb=%v out=%v outb=%v, (%v:)", tls, cd, in, inb, out, outb, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(64) + defer tls.Free(64) + var c, d, from, to, v62 uint32 + var err, i, i1, j, j1, v25, v26, v27, v28, v59 int32 + var k, l, tmplen, tmpx, x Tsize_t + var loc Tlocale_t + var map1, ploc, scd, tomap, v100, v101, v102, v103, v104, v54, v55, v57, v58, v60, v61, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94, v95, v96, v97, v98, v99 uintptr + var totype, type1 uint8 + var _ /* ptmp at bp+48 */ uintptr + var _ /* st at bp+24 */ Tmbstate_t + var _ /* tmp at bp+40 */ struct { + Fwc [0][2]Twchar_t + Fc [8]uint8 + } + var _ /* tmp at bp+56 */ [4]uint8 + var _ /* wc at bp+32 */ Twchar_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, d, err, from, i, i1, j, j1, k, l, loc, map1, ploc, scd, tmplen, tmpx, to, tomap, totype, type1, x, v100, v101, v102, v103, v104, v25, v26, v27, v28, v54, v55, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94, v95, v96, v97, v98, v99 + x = uint64(0) + scd = uintptr(0) + if !(uint64(cd)&Uint64FromInt32(1) != 0) { + scd = cd + cd = (*Tstateful_cd)(unsafe.Pointer(scd)).Fbase_cd + } + to = uint32(_extract_to(tls, cd)) + from = uint32(_extract_from(tls, cd)) + map1 = uintptr(unsafe.Pointer(&_charmaps)) + uintptr(from) + uintptr(1) + tomap = uintptr(unsafe.Pointer(&_charmaps)) + uintptr(to) + uintptr(1) + *(*Tmbstate_t)(unsafe.Pointer(bp + 24)) = Tmbstate_t{} + type1 = *(*uint8)(unsafe.Pointer(map1 + uintptr(-Int32FromInt32(1)))) + totype = *(*uint8)(unsafe.Pointer(tomap + uintptr(-Int32FromInt32(1)))) + ploc = ___get_tp(tls) + 152 + loc = *(*Tlocale_t)(unsafe.Pointer(ploc)) + if !(in != 0) || !(*(*uintptr)(unsafe.Pointer(in)) != 0) || !(*(*Tsize_t)(unsafe.Pointer(inb)) != 0) { + return uint64(0) + } + *(*Tlocale_t)(unsafe.Pointer(ploc)) = uintptr(unsafe.Pointer(&X__c_dot_utf8_locale)) + for { + if !(*(*Tsize_t)(unsafe.Pointer(inb)) != 0) { + break + } + c = uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(in))))) + l = uint64(1) + switch int32(type1) { + case int32(UTF_8): + goto _2 + case int32(US_ASCII): + goto _3 + case int32(WCHAR_T): + goto _4 + case int32(UTF_32LE): + goto _5 + case int32(UTF_32BE): + goto _6 + case int32(UTF_16LE): + goto _7 + case int32(UTF_16BE): + goto _8 + case int32(UCS2LE): + goto _9 + case int32(UCS2BE): + goto _10 + case int32(UTF_16): + goto _11 + case int32(UCS2): + goto _12 + case int32(UTF_32): + goto _13 + case int32(SHIFT_JIS): + goto _14 + case int32(EUC_JP): + goto _15 + case int32(ISO2022_JP): + goto _16 + case int32(GB2312): + goto _17 + case int32(GBK): + goto _18 + case int32(GB18030): + goto _19 + case int32(BIG5): + goto _20 + case int32(EUC_KR): + goto _21 + default: + goto _22 + } + goto _23 + _2: + ; + if c < uint32(128) { + goto _23 + } + l = Xmbrtowc(tls, bp+32, *(*uintptr)(unsafe.Pointer(in)), *(*Tsize_t)(unsafe.Pointer(inb)), bp+24) + if l == uint64(-Int32FromInt32(1)) { + goto ilseq + } + if l == uint64(-Int32FromInt32(2)) { + goto starved + } + c = *(*Twchar_t)(unsafe.Pointer(bp + 32)) + goto _23 + _3: + ; + if c >= uint32(128) { + goto ilseq + } + goto _23 + _4: + ; + l = uint64(4) + if *(*Tsize_t)(unsafe.Pointer(inb)) < l { + goto starved + } + c = *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(in)))) + if !(0 != 0) { + goto _24 + } + _6: + ; + _5: + ; + l = uint64(4) + if *(*Tsize_t)(unsafe.Pointer(inb)) < uint64(4) { + goto starved + } + c = _get_32(tls, *(*uintptr)(unsafe.Pointer(in)), int32(type1)) + _24: + ; + if c-uint32(0xd800) < uint32(0x800) || c >= uint32(0x110000) { + goto ilseq + } + goto _23 + _10: + ; + _9: + ; + _8: + ; + _7: + ; + l = uint64(2) + if *(*Tsize_t)(unsafe.Pointer(inb)) < uint64(2) { + goto starved + } + c = _get_16(tls, *(*uintptr)(unsafe.Pointer(in)), int32(type1)) + if c-Uint32FromInt32(0xdc00) < uint32(0x400) { + goto ilseq + } + if c-Uint32FromInt32(0xd800) < uint32(0x400) { + if uint32(int32(type1)-int32(UCS2BE)) < uint32(2) { + goto ilseq + } + l = uint64(4) + if *(*Tsize_t)(unsafe.Pointer(inb)) < uint64(4) { + goto starved + } + d = _get_16(tls, *(*uintptr)(unsafe.Pointer(in))+UintptrFromInt32(2), int32(type1)) + if d-Uint32FromInt32(0xdc00) >= uint32(0x400) { + goto ilseq + } + c = (c-uint32(0xd7c0))< uint32(127) { + d-- + } + d -= uint32(64) + } else { + if d-uint32(159) <= uint32(Int32FromInt32(252)-Int32FromInt32(159)) { + c++ + d -= uint32(159) + } + } + if c >= uint32(84) { + goto ilseq + } + c = uint32(*(*uint16)(unsafe.Pointer(uintptr(unsafe.Pointer(&_jis0208)) + uintptr(c)*188 + uintptr(d)*2))) + if !(c != 0) { + goto ilseq + } + goto _23 + _15: + ; + if c < uint32(128) { + goto _23 + } + l = uint64(2) + if *(*Tsize_t)(unsafe.Pointer(inb)) < uint64(2) { + goto starved + } + d = uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(in)) + UintptrFromInt32(1)))) + if c == uint32(0x8e) { + c = d + if c-uint32(0xa1) > uint32(Int32FromInt32(0xdf)-Int32FromInt32(0xa1)) { + goto ilseq + } + c += uint32(Int32FromInt32(0xff61) - Int32FromInt32(0xa1)) + goto _23 + } + c -= uint32(0xa1) + d -= uint32(0xa1) + if c >= uint32(84) || d >= uint32(94) { + goto ilseq + } + c = uint32(*(*uint16)(unsafe.Pointer(uintptr(unsafe.Pointer(&_jis0208)) + uintptr(c)*188 + uintptr(d)*2))) + if !(c != 0) { + goto ilseq + } + goto _23 + _16: + ; + if c >= uint32(128) { + goto ilseq + } + if c == uint32('\033') { + l = uint64(3) + if *(*Tsize_t)(unsafe.Pointer(inb)) < uint64(3) { + goto starved + } + c = uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(in)) + UintptrFromInt32(1)))) + d = uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(in)) + UintptrFromInt32(2)))) + if c != uint32('(') && c != uint32('$') { + goto ilseq + } + switch uint32(Int32FromInt32(128)*BoolInt32(c == Uint32FromUint8('$'))) + d { + case uint32('B'): + (*Tstateful_cd)(unsafe.Pointer(scd)).Fstate = uint32(0) + goto _1 + case uint32('J'): + (*Tstateful_cd)(unsafe.Pointer(scd)).Fstate = uint32(1) + goto _1 + case uint32('I'): + (*Tstateful_cd)(unsafe.Pointer(scd)).Fstate = uint32(4) + goto _1 + case uint32(Int32FromInt32(128) + Int32FromUint8('@')): + (*Tstateful_cd)(unsafe.Pointer(scd)).Fstate = uint32(2) + goto _1 + case uint32(Int32FromInt32(128) + Int32FromUint8('B')): + (*Tstateful_cd)(unsafe.Pointer(scd)).Fstate = uint32(3) + goto _1 + } + goto ilseq + } + switch (*Tstateful_cd)(unsafe.Pointer(scd)).Fstate { + case uint32(1): + if c == uint32('\\') { + c = uint32(0xa5) + } + if c == uint32('~') { + c = uint32(0x203e) + } + case uint32(2): + fallthrough + case uint32(3): + l = uint64(2) + if *(*Tsize_t)(unsafe.Pointer(inb)) < uint64(2) { + goto starved + } + d = uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(in)) + UintptrFromInt32(1)))) + c -= uint32(0x21) + d -= uint32(0x21) + if c >= uint32(84) || d >= uint32(94) { + goto ilseq + } + c = uint32(*(*uint16)(unsafe.Pointer(uintptr(unsafe.Pointer(&_jis0208)) + uintptr(c)*188 + uintptr(d)*2))) + if !(c != 0) { + goto ilseq + } + case uint32(4): + if c-uint32(0x60) < uint32(0x1f) { + goto ilseq + } + if c-uint32(0x21) < uint32(0x5e) { + c += uint32(Int32FromInt32(0xff61) - Int32FromInt32(0x21)) + } + break + } + goto _23 + _17: + ; + if c < uint32(128) { + goto _23 + } + if c < uint32(0xa1) { + goto ilseq + } + _18: + ; + if c == uint32(128) { + c = uint32(0x20ac) + goto _23 + } + _19: + ; + if c < uint32(128) { + goto _23 + } + c -= uint32(0x81) + if c >= uint32(126) { + goto ilseq + } + l = uint64(2) + if *(*Tsize_t)(unsafe.Pointer(inb)) < uint64(2) { + goto starved + } + d = uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(in)) + UintptrFromInt32(1)))) + if d < uint32(0xa1) && int32(type1) == int32(GB2312) { + goto ilseq + } + if d-uint32(0x40) >= uint32(191) || d == uint32(127) { + if d-uint32('0') > uint32(9) || int32(type1) != int32(GB18030) { + goto ilseq + } + l = uint64(4) + if *(*Tsize_t)(unsafe.Pointer(inb)) < uint64(4) { + goto starved + } + c = (uint32(10)*c + d - uint32('0')) * uint32(1260) + d = uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(in)) + UintptrFromInt32(2)))) + if d-uint32(0x81) > uint32(126) { + goto ilseq + } + c += uint32(10) * (d - uint32(0x81)) + d = uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(in)) + UintptrFromInt32(3)))) + if d-uint32('0') > uint32(9) { + goto ilseq + } + c += d - uint32('0') + c += uint32(128) + d = uint32(0) + for { + if !(d <= c) { + break + } + k = uint64(0) + i = 0 + for { + if !(i < int32(126)) { + break + } + j = 0 + for { + if !(j < int32(190)) { + break + } + if uint32(*(*uint16)(unsafe.Pointer(uintptr(unsafe.Pointer(&_gb18030)) + uintptr(i)*380 + uintptr(j)*2)))-d <= c-d { + k++ + } + goto _31 + _31: + ; + j++ + } + goto _30 + _30: + ; + i++ + } + d = c + uint32(1) + c = uint32(uint64(c) + k) + goto _29 + _29: + } + goto _23 + } + d -= uint32(0x40) + if d > uint32(63) { + d-- + } + c = uint32(*(*uint16)(unsafe.Pointer(uintptr(unsafe.Pointer(&_gb18030)) + uintptr(c)*380 + uintptr(d)*2))) + goto _23 + _20: + ; + if c < uint32(128) { + goto _23 + } + l = uint64(2) + if *(*Tsize_t)(unsafe.Pointer(inb)) < uint64(2) { + goto starved + } + d = uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(in)) + UintptrFromInt32(1)))) + if d-uint32(0x40) >= uint32(Int32FromInt32(0xff)-Int32FromInt32(0x40)) || d-uint32(0x7f) < uint32(Int32FromInt32(0xa1)-Int32FromInt32(0x7f)) { + goto ilseq + } + d -= uint32(0x40) + if d > uint32(0x3e) { + d -= uint32(0x22) + } + if c-uint32(0xa1) >= uint32(Int32FromInt32(0xfa)-Int32FromInt32(0xa1)) { + if c-uint32(0x87) >= uint32(Int32FromInt32(0xff)-Int32FromInt32(0x87)) { + goto ilseq + } + if c < uint32(0xa1) { + c -= uint32(0x87) + } else { + c -= uint32(Int32FromInt32(0x87) + (Int32FromInt32(0xfa) - Int32FromInt32(0xa1))) + } + c = uint32(int32(_hkscs[uint32(4867)+(c*uint32(157)+d)/uint32(16)])>>((c*uint32(157)+d)%uint32(16))%int32(2)< *(*Tsize_t)(unsafe.Pointer(outb)) { + goto toobig + } + if tmpx != 0 { + x++ + } + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(out)), bp+40, tmplen) + *(*uintptr)(unsafe.Pointer(out)) += uintptr(tmplen) + *(*Tsize_t)(unsafe.Pointer(outb)) -= tmplen + goto _1 + } + if !(c != 0) { + goto ilseq + } + goto _23 + } + c -= uint32(0xa1) + c = uint32(int32(*(*uint16)(unsafe.Pointer(uintptr(unsafe.Pointer(&_big5)) + uintptr(c)*314 + uintptr(d)*2))) | BoolInt32(c == uint32(0x27) && (d == uint32(0x3a) || d == uint32(0x3c) || d == uint32(0x42)))<= uint32(93) || d >= uint32(94) { + c += uint32(Int32FromInt32(0xa1) - Int32FromInt32(0x81)) + d += uint32(0xa1) + if c >= uint32(93) || c >= uint32(Int32FromInt32(0xc6)-Int32FromInt32(0x81)) && d > uint32(0x52) { + goto ilseq + } + if d-uint32('A') < uint32(26) { + d = d - uint32('A') + } else { + if d-uint32('a') < uint32(26) { + d = d - uint32('a') + uint32(26) + } else { + if d-uint32(0x81) < uint32(Int32FromInt32(0xff)-Int32FromInt32(0x81)) { + d = d - uint32(0x81) + uint32(52) + } else { + goto ilseq + } + } + } + if c < uint32(0x20) { + c = uint32(178)*c + d + } else { + c = uint32(Int32FromInt32(178)*Int32FromInt32(0x20)) + uint32(84)*(c-uint32(0x20)) + d + } + c += uint32(0xac00) + d = uint32(0xac00) + for { + if !(d <= c) { + break + } + k = uint64(0) + i1 = 0 + for { + if !(i1 < int32(93)) { + break + } + j1 = 0 + for { + if !(j1 < int32(94)) { + break + } + if uint32(*(*uint16)(unsafe.Pointer(uintptr(unsafe.Pointer(&_ksc)) + uintptr(i1)*188 + uintptr(j1)*2)))-d <= c-d { + k++ + } + goto _34 + _34: + ; + j1++ + } + goto _33 + _33: + ; + i1++ + } + d = c + uint32(1) + c = uint32(uint64(c) + k) + goto _32 + _32: + } + goto _23 + } + c = uint32(*(*uint16)(unsafe.Pointer(uintptr(unsafe.Pointer(&_ksc)) + uintptr(c)*188 + uintptr(d)*2))) + if !(c != 0) { + goto ilseq + } + goto _23 + _22: + ; + if !(c != 0) { + goto _23 + } + c = _legacy_map(tls, map1, c) + if !(c != 0) { + goto ilseq + } + _23: + ; + switch int32(totype) { + case int32(WCHAR_T): + goto _35 + case int32(UTF_8): + goto _36 + case int32(US_ASCII): + goto _37 + default: + goto _38 + case int32(SHIFT_JIS): + goto _39 + case int32(EUC_JP): + goto _40 + case int32(ISO2022_JP): + goto _41 + case int32(UCS2): + goto _42 + case int32(UTF_16LE): + goto _43 + case int32(UTF_16BE): + goto _44 + case int32(UTF_16): + goto _45 + case int32(UCS2LE): + goto _46 + case int32(UCS2BE): + goto _47 + case int32(UTF_32): + goto _48 + case int32(UTF_32LE): + goto _49 + case int32(UTF_32BE): + goto _50 + } + goto _51 + _35: + ; + if *(*Tsize_t)(unsafe.Pointer(outb)) < uint64(4) { + goto toobig + } + *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(out)))) = c + *(*uintptr)(unsafe.Pointer(out)) += uintptr(4) + *(*Tsize_t)(unsafe.Pointer(outb)) -= uint64(4) + goto _51 + _36: + ; + if *(*Tsize_t)(unsafe.Pointer(outb)) < uint64(4) { + k = uint64(Xwctomb(tls, bp+56, c)) + if *(*Tsize_t)(unsafe.Pointer(outb)) < k { + goto toobig + } + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(out)), bp+56, k) + } else { + k = uint64(Xwctomb(tls, *(*uintptr)(unsafe.Pointer(out)), c)) + } + *(*uintptr)(unsafe.Pointer(out)) += uintptr(k) + *(*Tsize_t)(unsafe.Pointer(outb)) -= k + goto _51 + _37: + ; + if !(c > uint32(0x7f)) { + goto _52 + } + goto subst + subst: + ; + x++ + c = Uint32FromUint8('*') + _52: + ; + _38: + ; + if *(*Tsize_t)(unsafe.Pointer(outb)) < uint64(1) { + goto toobig + } + if !(c < uint32(256) && c == _legacy_map(tls, tomap, c)) { + goto _53 + } + goto revout + revout: + ; + if *(*Tsize_t)(unsafe.Pointer(outb)) < uint64(1) { + goto toobig + } + v55 = out + v54 = *(*uintptr)(unsafe.Pointer(v55)) + *(*uintptr)(unsafe.Pointer(v55))++ + *(*uint8)(unsafe.Pointer(v54)) = uint8(c) + *(*Tsize_t)(unsafe.Pointer(outb)) -= uint64(1) + goto _51 + _53: + ; + d = c + c = uint32(int32(4) * int32(totype)) + for { + if !(c < uint32(256)) { + break + } + if d == _legacy_map(tls, tomap, c) { + goto revout + } + goto _56 + _56: + ; + c++ + } + goto subst + _39: + ; + if c < uint32(128) { + goto revout + } + if c == uint32(0xa5) { + x++ + c = uint32('\\') + goto revout + } + if c == uint32(0x203e) { + x++ + c = uint32('~') + goto revout + } + if c-uint32(0xff61) <= uint32(Int32FromInt32(0xdf)-Int32FromInt32(0xa1)) { + c += uint32(Int32FromInt32(0xa1) - Int32FromInt32(0xff61)) + goto revout + } + c = _uni_to_jis(tls, c) + if !(c != 0) { + goto subst + } + if *(*Tsize_t)(unsafe.Pointer(outb)) < uint64(2) { + goto toobig + } + d = c % uint32(256) + c = c / uint32(256) + v58 = out + v57 = *(*uintptr)(unsafe.Pointer(v58)) + *(*uintptr)(unsafe.Pointer(v58))++ + if c < uint32(95) { + v59 = int32(112) + } else { + v59 = int32(176) + } + *(*uint8)(unsafe.Pointer(v57)) = uint8((c+uint32(1))/uint32(2) + uint32(v59)) + v61 = out + v60 = *(*uintptr)(unsafe.Pointer(v61)) + *(*uintptr)(unsafe.Pointer(v61))++ + if c%uint32(2) != 0 { + v62 = d + uint32(31) + d/uint32(96) + } else { + v62 = d + uint32(126) + } + *(*uint8)(unsafe.Pointer(v60)) = uint8(v62) + *(*Tsize_t)(unsafe.Pointer(outb)) -= uint64(2) + goto _51 + _40: + ; + if c < uint32(128) { + goto revout + } + if c-uint32(0xff61) <= uint32(Int32FromInt32(0xdf)-Int32FromInt32(0xa1)) { + c += uint32(Int32FromInt32(0x0e00) + Int32FromInt32(0x21) - Int32FromInt32(0xff61)) + } else { + c = _uni_to_jis(tls, c) + } + if !(c != 0) { + goto subst + } + if *(*Tsize_t)(unsafe.Pointer(outb)) < uint64(2) { + goto toobig + } + v64 = out + v63 = *(*uintptr)(unsafe.Pointer(v64)) + *(*uintptr)(unsafe.Pointer(v64))++ + *(*uint8)(unsafe.Pointer(v63)) = uint8(c/uint32(256) + uint32(0x80)) + v66 = out + v65 = *(*uintptr)(unsafe.Pointer(v66)) + *(*uintptr)(unsafe.Pointer(v66))++ + *(*uint8)(unsafe.Pointer(v65)) = uint8(c%uint32(256) + uint32(0x80)) + *(*Tsize_t)(unsafe.Pointer(outb)) -= uint64(2) + goto _51 + _41: + ; + if c < uint32(128) { + goto revout + } + if c-uint32(0xff61) <= uint32(Int32FromInt32(0xdf)-Int32FromInt32(0xa1)) || c == uint32(0xa5) || c == uint32(0x203e) { + if *(*Tsize_t)(unsafe.Pointer(outb)) < uint64(7) { + goto toobig + } + v68 = out + v67 = *(*uintptr)(unsafe.Pointer(v68)) + *(*uintptr)(unsafe.Pointer(v68))++ + *(*uint8)(unsafe.Pointer(v67)) = uint8('\033') + v70 = out + v69 = *(*uintptr)(unsafe.Pointer(v70)) + *(*uintptr)(unsafe.Pointer(v70))++ + *(*uint8)(unsafe.Pointer(v69)) = uint8('(') + if c == uint32(0xa5) { + v72 = out + v71 = *(*uintptr)(unsafe.Pointer(v72)) + *(*uintptr)(unsafe.Pointer(v72))++ + *(*uint8)(unsafe.Pointer(v71)) = uint8('J') + v74 = out + v73 = *(*uintptr)(unsafe.Pointer(v74)) + *(*uintptr)(unsafe.Pointer(v74))++ + *(*uint8)(unsafe.Pointer(v73)) = uint8('\\') + } else { + if c == uint32(0x203e) { + v76 = out + v75 = *(*uintptr)(unsafe.Pointer(v76)) + *(*uintptr)(unsafe.Pointer(v76))++ + *(*uint8)(unsafe.Pointer(v75)) = uint8('J') + v78 = out + v77 = *(*uintptr)(unsafe.Pointer(v78)) + *(*uintptr)(unsafe.Pointer(v78))++ + *(*uint8)(unsafe.Pointer(v77)) = uint8('~') + } else { + v80 = out + v79 = *(*uintptr)(unsafe.Pointer(v80)) + *(*uintptr)(unsafe.Pointer(v80))++ + *(*uint8)(unsafe.Pointer(v79)) = uint8('I') + v82 = out + v81 = *(*uintptr)(unsafe.Pointer(v82)) + *(*uintptr)(unsafe.Pointer(v82))++ + *(*uint8)(unsafe.Pointer(v81)) = uint8(c - uint32(0xff61) + uint32(0x21)) + } + } + v84 = out + v83 = *(*uintptr)(unsafe.Pointer(v84)) + *(*uintptr)(unsafe.Pointer(v84))++ + *(*uint8)(unsafe.Pointer(v83)) = uint8('\033') + v86 = out + v85 = *(*uintptr)(unsafe.Pointer(v86)) + *(*uintptr)(unsafe.Pointer(v86))++ + *(*uint8)(unsafe.Pointer(v85)) = uint8('(') + v88 = out + v87 = *(*uintptr)(unsafe.Pointer(v88)) + *(*uintptr)(unsafe.Pointer(v88))++ + *(*uint8)(unsafe.Pointer(v87)) = uint8('B') + *(*Tsize_t)(unsafe.Pointer(outb)) -= uint64(7) + goto _51 + } + c = _uni_to_jis(tls, c) + if !(c != 0) { + goto subst + } + if *(*Tsize_t)(unsafe.Pointer(outb)) < uint64(8) { + goto toobig + } + v90 = out + v89 = *(*uintptr)(unsafe.Pointer(v90)) + *(*uintptr)(unsafe.Pointer(v90))++ + *(*uint8)(unsafe.Pointer(v89)) = uint8('\033') + v92 = out + v91 = *(*uintptr)(unsafe.Pointer(v92)) + *(*uintptr)(unsafe.Pointer(v92))++ + *(*uint8)(unsafe.Pointer(v91)) = uint8('$') + v94 = out + v93 = *(*uintptr)(unsafe.Pointer(v94)) + *(*uintptr)(unsafe.Pointer(v94))++ + *(*uint8)(unsafe.Pointer(v93)) = uint8('B') + v96 = out + v95 = *(*uintptr)(unsafe.Pointer(v96)) + *(*uintptr)(unsafe.Pointer(v96))++ + *(*uint8)(unsafe.Pointer(v95)) = uint8(c / uint32(256)) + v98 = out + v97 = *(*uintptr)(unsafe.Pointer(v98)) + *(*uintptr)(unsafe.Pointer(v98))++ + *(*uint8)(unsafe.Pointer(v97)) = uint8(c % uint32(256)) + v100 = out + v99 = *(*uintptr)(unsafe.Pointer(v100)) + *(*uintptr)(unsafe.Pointer(v100))++ + *(*uint8)(unsafe.Pointer(v99)) = uint8('\033') + v102 = out + v101 = *(*uintptr)(unsafe.Pointer(v102)) + *(*uintptr)(unsafe.Pointer(v102))++ + *(*uint8)(unsafe.Pointer(v101)) = uint8('(') + v104 = out + v103 = *(*uintptr)(unsafe.Pointer(v104)) + *(*uintptr)(unsafe.Pointer(v104))++ + *(*uint8)(unsafe.Pointer(v103)) = uint8('B') + *(*Tsize_t)(unsafe.Pointer(outb)) -= uint64(8) + goto _51 + _42: + ; + totype = uint8(UCS2BE) + _47: + ; + _46: + ; + _45: + ; + _44: + ; + _43: + ; + if c < uint32(0x10000) || uint32(int32(totype)-int32(UCS2BE)) < uint32(2) { + if c >= uint32(0x10000) { + c = uint32(0xFFFD) + } + if *(*Tsize_t)(unsafe.Pointer(outb)) < uint64(2) { + goto toobig + } + _put_16(tls, *(*uintptr)(unsafe.Pointer(out)), c, int32(totype)) + *(*uintptr)(unsafe.Pointer(out)) += uintptr(2) + *(*Tsize_t)(unsafe.Pointer(outb)) -= uint64(2) + goto _51 + } + if *(*Tsize_t)(unsafe.Pointer(outb)) < uint64(4) { + goto toobig + } + c -= uint32(0x10000) + _put_16(tls, *(*uintptr)(unsafe.Pointer(out)), c>>int32(10)|uint32(0xd800), int32(totype)) + _put_16(tls, *(*uintptr)(unsafe.Pointer(out))+UintptrFromInt32(2), c&uint32(0x3ff)|uint32(0xdc00), int32(totype)) + *(*uintptr)(unsafe.Pointer(out)) += uintptr(4) + *(*Tsize_t)(unsafe.Pointer(outb)) -= uint64(4) + goto _51 + _48: + ; + totype = uint8(UTF_32BE) + _50: + ; + _49: + ; + if *(*Tsize_t)(unsafe.Pointer(outb)) < uint64(4) { + goto toobig + } + _put_32(tls, *(*uintptr)(unsafe.Pointer(out)), c, int32(totype)) + *(*uintptr)(unsafe.Pointer(out)) += uintptr(4) + *(*Tsize_t)(unsafe.Pointer(outb)) -= uint64(4) + goto _51 + _51: + ; + goto _1 + _1: + ; + *(*uintptr)(unsafe.Pointer(in)) += uintptr(l) + *(*Tsize_t)(unsafe.Pointer(inb)) -= l + } + *(*Tlocale_t)(unsafe.Pointer(ploc)) = loc + return x + goto ilseq +ilseq: + ; + err = int32(EILSEQ) + x = uint64(-Int32FromInt32(1)) + goto end + goto toobig +toobig: + ; + err = int32(E2BIG) + x = uint64(-Int32FromInt32(1)) + goto end + goto starved +starved: + ; + err = int32(EINVAL) + x = uint64(-Int32FromInt32(1)) + goto end +end: + ; + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = err + *(*Tlocale_t)(unsafe.Pointer(ploc)) = loc + return x +} + +func Xiconv_close(tls *TLS, cd Ticonv_t) (r int32) { + if __ccgo_strace { + trc("tls=%v cd=%v, (%v:)", tls, cd, origin(2)) + defer func() { trc("-> %v", r) }() + } + if !(uint64(cd)&Uint64FromInt32(1) != 0) { + Xfree(tls, cd) + } + return 0 +} + +var _c_time = [316]uint8{'S', 'u', 'n', 0, 'M', 'o', 'n', 0, 'T', 'u', 'e', 0, 'W', 'e', 'd', 0, 'T', 'h', 'u', 0, 'F', 'r', 'i', 0, 'S', 'a', 't', 0, 'S', 'u', 'n', 'd', 'a', 'y', 0, 'M', 'o', 'n', 'd', 'a', 'y', 0, 'T', 'u', 'e', 's', 'd', 'a', 'y', 0, 'W', 'e', 'd', 'n', 'e', 's', 'd', 'a', 'y', 0, 'T', 'h', 'u', 'r', 's', 'd', 'a', 'y', 0, 'F', 'r', 'i', 'd', 'a', 'y', 0, 'S', 'a', 't', 'u', 'r', 'd', 'a', 'y', 0, 'J', 'a', 'n', 0, 'F', 'e', 'b', 0, 'M', 'a', 'r', 0, 'A', 'p', 'r', 0, 'M', 'a', 'y', 0, 'J', 'u', 'n', 0, 'J', 'u', 'l', 0, 'A', 'u', 'g', 0, 'S', 'e', 'p', 0, 'O', 'c', 't', 0, 'N', 'o', 'v', 0, 'D', 'e', 'c', 0, 'J', 'a', 'n', 'u', 'a', 'r', 'y', 0, 'F', 'e', 'b', 'r', 'u', 'a', 'r', 'y', 0, 'M', 'a', 'r', 'c', 'h', 0, 'A', 'p', 'r', 'i', 'l', 0, 'M', 'a', 'y', 0, 'J', 'u', 'n', 'e', 0, 'J', 'u', 'l', 'y', 0, 'A', 'u', 'g', 'u', 's', 't', 0, 'S', 'e', 'p', 't', 'e', 'm', 'b', 'e', 'r', 0, 'O', 'c', 't', 'o', 'b', 'e', 'r', 0, 'N', 'o', 'v', 'e', 'm', 'b', 'e', 'r', 0, 'D', 'e', 'c', 'e', 'm', 'b', 'e', 'r', 0, 'A', 'M', 0, 'P', 'M', 0, '%', 'a', ' ', '%', 'b', ' ', '%', 'e', ' ', '%', 'T', ' ', '%', 'Y', 0, '%', 'm', '/', '%', 'd', '/', '%', 'y', 0, '%', 'H', ':', '%', 'M', ':', '%', 'S', 0, '%', 'I', ':', '%', 'M', ':', '%', 'S', ' ', '%', 'p', 0, 0, 0, '%', 'm', '/', '%', 'd', '/', '%', 'y', 0, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 0, '%', 'a', ' ', '%', 'b', ' ', '%', 'e', ' ', '%', 'T', ' ', '%', 'Y', 0, '%', 'H', ':', '%', 'M', ':', '%', 'S'} + +var _c_messages = [19]uint8{'^', '[', 'y', 'Y', ']', 0, '^', '[', 'n', 'N', ']', 0, 'y', 'e', 's', 0, 'n', 'o'} +var _c_numeric = [3]uint8{'.'} + +func X__nl_langinfo_l(tls *TLS, item Tnl_item, loc Tlocale_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v item=%v loc=%v, (%v:)", tls, item, loc, origin(2)) + defer func() { trc("-> %v", r) }() + } + var cat, idx int32 + var str, v1, v2 uintptr + _, _, _, _, _ = cat, idx, str, v1, v2 + cat = item >> int32(16) + idx = item & int32(65535) + if item == int32(CODESET) { + if *(*uintptr)(unsafe.Pointer(loc)) != 0 { + v1 = __ccgo_ts + 322 + } else { + v1 = __ccgo_ts + 516 + } + return v1 + } + /* _NL_LOCALE_NAME extension */ + if idx == int32(65535) && cat < int32(LC_ALL) { + if *(*uintptr)(unsafe.Pointer(loc + uintptr(cat)*8)) != 0 { + v2 = *(*uintptr)(unsafe.Pointer(loc + uintptr(cat)*8)) + 16 + } else { + v2 = __ccgo_ts + 522 + } + return v2 + } + switch cat { + case int32(LC_NUMERIC): + if idx > int32(1) { + return __ccgo_ts + } + str = uintptr(unsafe.Pointer(&_c_numeric)) + case int32(LC_TIME): + if idx > int32(0x31) { + return __ccgo_ts + } + str = uintptr(unsafe.Pointer(&_c_time)) + case int32(LC_MONETARY): + if idx > 0 { + return __ccgo_ts + } + str = __ccgo_ts + case int32(LC_MESSAGES): + if idx > int32(3) { + return __ccgo_ts + } + str = uintptr(unsafe.Pointer(&_c_messages)) + default: + return __ccgo_ts + } + for { + if !(idx != 0) { + break + } + for { + if !(*(*uint8)(unsafe.Pointer(str)) != 0) { + break + } + goto _4 + _4: + ; + str++ + } + goto _3 + _3: + ; + idx-- + str++ + } + if cat != int32(LC_NUMERIC) && *(*uint8)(unsafe.Pointer(str)) != 0 { + str = X__lctrans(tls, str, *(*uintptr)(unsafe.Pointer(loc + uintptr(cat)*8))) + } + return str +} + +func X__nl_langinfo(tls *TLS, item Tnl_item) (r uintptr) { + if __ccgo_strace { + trc("tls=%v item=%v, (%v:)", tls, item, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__nl_langinfo_l(tls, item, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale) +} + +func Xnl_langinfo(tls *TLS, item Tnl_item) (r uintptr) { + if __ccgo_strace { + trc("tls=%v item=%v, (%v:)", tls, item, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__nl_langinfo(tls, item) +} + +func Xnl_langinfo_l(tls *TLS, item Tnl_item, loc Tlocale_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v item=%v loc=%v, (%v:)", tls, item, loc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__nl_langinfo_l(tls, item, loc) +} + +func X__lctrans_impl(tls *TLS, msg uintptr, lm uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v msg=%v lm=%v, (%v:)", tls, msg, lm, origin(2)) + defer func() { trc("-> %v", r) }() + } + var trans, v1 uintptr + _, _ = trans, v1 + trans = uintptr(0) + if lm != 0 { + trans = X__mo_lookup(tls, (*t__locale_map)(unsafe.Pointer(lm)).Fmap1, (*t__locale_map)(unsafe.Pointer(lm)).Fmap_size, msg) + } + if trans != 0 { + v1 = trans + } else { + v1 = msg + } + return v1 +} + +var _envvars = [6][12]uint8{ + 0: {'L', 'C', '_', 'C', 'T', 'Y', 'P', 'E'}, + 1: {'L', 'C', '_', 'N', 'U', 'M', 'E', 'R', 'I', 'C'}, + 2: {'L', 'C', '_', 'T', 'I', 'M', 'E'}, + 3: {'L', 'C', '_', 'C', 'O', 'L', 'L', 'A', 'T', 'E'}, + 4: {'L', 'C', '_', 'M', 'O', 'N', 'E', 'T', 'A', 'R', 'Y'}, + 5: {'L', 'C', '_', 'M', 'E', 'S', 'S', 'A', 'G', 'E', 'S'}, +} + +func X__get_locale(tls *TLS, cat int32, val uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v cat=%v val=%v, (%v:)", tls, cat, val, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(272) + defer tls.Free(272) + var builtin int32 + var l, n Tsize_t + var map1, new1, p, path, z, v1, v11, v2, v4, v6 uintptr + var v12, v3, v5, v7 bool + var _ /* buf at bp+0 */ [256]uint8 + var _ /* map_size at bp+256 */ Tsize_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = builtin, l, map1, n, new1, p, path, z, v1, v11, v12, v2, v3, v4, v5, v6, v7 + new1 = uintptr(0) + path = uintptr(0) + if !(*(*uint8)(unsafe.Pointer(val)) != 0) { + v1 = Xgetenv(tls, __ccgo_ts+524) + val = v1 + if v3 = v1 != 0 && *(*uint8)(unsafe.Pointer(val)) != 0; !v3 { + v2 = Xgetenv(tls, uintptr(unsafe.Pointer(&_envvars))+uintptr(cat)*12) + val = v2 + } + if v5 = v3 || v2 != 0 && *(*uint8)(unsafe.Pointer(val)) != 0; !v5 { + v4 = Xgetenv(tls, __ccgo_ts+336) + val = v4 + } + if v7 = v5 || v4 != 0 && *(*uint8)(unsafe.Pointer(val)) != 0; !v7 { + v6 = __ccgo_ts + 531 + val = v6 + } + _ = v7 || v6 != 0 + } + /* Limit name length and forbid leading dot or any slashes. */ + n = uint64(0) + for { + if !(n < uint64(LOCALE_NAME_MAX) && *(*uint8)(unsafe.Pointer(val + uintptr(n))) != 0 && int32(*(*uint8)(unsafe.Pointer(val + uintptr(n)))) != int32('/')) { + break + } + goto _8 + _8: + ; + n++ + } + if int32(*(*uint8)(unsafe.Pointer(val))) == int32('.') || *(*uint8)(unsafe.Pointer(val + uintptr(n))) != 0 { + val = __ccgo_ts + 531 + } + builtin = BoolInt32(int32(*(*uint8)(unsafe.Pointer(val))) == int32('C') && !(*(*uint8)(unsafe.Pointer(val + 1)) != 0) || !(Xstrcmp(tls, val, __ccgo_ts+531) != 0) || !(Xstrcmp(tls, val, __ccgo_ts+539) != 0)) + if builtin != 0 { + if cat == LC_CTYPE && int32(*(*uint8)(unsafe.Pointer(val + 1))) == int32('.') { + return uintptr(unsafe.Pointer(&X__c_dot_utf8)) + } + return uintptr(0) + } + p = AtomicLoadPUintptr(uintptr(unsafe.Pointer(&_loc_head))) + for { + if !(p != 0) { + break + } + if !(Xstrcmp(tls, val, p+16) != 0) { + return p + } + goto _9 + _9: + ; + p = (*t__locale_map)(unsafe.Pointer(p)).Fnext + } + if !(X__libc.Fsecure != 0) { + path = Xgetenv(tls, __ccgo_ts+545) + } + /* FIXME: add a default path? */ + if path != 0 { + for { + if !(*(*uint8)(unsafe.Pointer(path)) != 0) { + break + } + z = X__strchrnul(tls, path, int32(':')) + l = uint64(int64(z) - int64(path)) + if l >= uint64(256)-n-uint64(2) { + goto _10 + } + Xmemcpy(tls, bp, path, l) + (*(*[256]uint8)(unsafe.Pointer(bp)))[l] = uint8('/') + Xmemcpy(tls, bp+uintptr(l)+uintptr(1), val, n) + (*(*[256]uint8)(unsafe.Pointer(bp)))[l+uint64(1)+n] = uint8(0) + map1 = X__map_file(tls, bp, bp+256) + if map1 != 0 { + new1 = Xmalloc(tls, uint64(48)) + if !(new1 != 0) { + X__munmap(tls, map1, *(*Tsize_t)(unsafe.Pointer(bp + 256))) + break + } + (*t__locale_map)(unsafe.Pointer(new1)).Fmap1 = map1 + (*t__locale_map)(unsafe.Pointer(new1)).Fmap_size = *(*Tsize_t)(unsafe.Pointer(bp + 256)) + Xmemcpy(tls, new1+16, val, n) + *(*uint8)(unsafe.Pointer(new1 + 16 + uintptr(n))) = uint8(0) + (*t__locale_map)(unsafe.Pointer(new1)).Fnext = AtomicLoadPUintptr(uintptr(unsafe.Pointer(&_loc_head))) + AtomicStorePUintptr(uintptr(unsafe.Pointer(&_loc_head)), new1) + break + } + goto _10 + _10: + ; + path = z + BoolUintptr(!!(*(*uint8)(unsafe.Pointer(z)) != 0)) + } + } + /* If no locale definition was found, make a locale map + * object anyway to store the name, which is kept for the + * sake of being able to do message translations at the + * application level. */ + if v12 = !(new1 != 0); v12 { + v11 = Xmalloc(tls, uint64(48)) + new1 = v11 + } + if v12 && v11 != 0 { + (*t__locale_map)(unsafe.Pointer(new1)).Fmap1 = X__c_dot_utf8.Fmap1 + (*t__locale_map)(unsafe.Pointer(new1)).Fmap_size = X__c_dot_utf8.Fmap_size + Xmemcpy(tls, new1+16, val, n) + *(*uint8)(unsafe.Pointer(new1 + 16 + uintptr(n))) = uint8(0) + (*t__locale_map)(unsafe.Pointer(new1)).Fnext = AtomicLoadPUintptr(uintptr(unsafe.Pointer(&_loc_head))) + AtomicStorePUintptr(uintptr(unsafe.Pointer(&_loc_head)), new1) + } + /* For LC_CTYPE, never return a null pointer unless the + * requested name was "C" or "POSIX". */ + if !(new1 != 0) && cat == LC_CTYPE { + new1 = uintptr(unsafe.Pointer(&X__c_dot_utf8)) + } + return new1 +} + +var _loc_head uintptr + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +var _posix_lconv = Tlconv{ + Fdecimal_point: __ccgo_ts + 558, + Fthousands_sep: __ccgo_ts, + Fgrouping: __ccgo_ts, + Fint_curr_symbol: __ccgo_ts, + Fcurrency_symbol: __ccgo_ts, + Fmon_decimal_point: __ccgo_ts, + Fmon_thousands_sep: __ccgo_ts, + Fmon_grouping: __ccgo_ts, + Fpositive_sign: __ccgo_ts, + Fnegative_sign: __ccgo_ts, + Fint_frac_digits: uint8(CHAR_MAX), + Ffrac_digits: uint8(CHAR_MAX), + Fp_cs_precedes: uint8(CHAR_MAX), + Fp_sep_by_space: uint8(CHAR_MAX), + Fn_cs_precedes: uint8(CHAR_MAX), + Fn_sep_by_space: uint8(CHAR_MAX), + Fp_sign_posn: uint8(CHAR_MAX), + Fn_sign_posn: uint8(CHAR_MAX), + Fint_p_cs_precedes: uint8(CHAR_MAX), + Fint_p_sep_by_space: uint8(CHAR_MAX), + Fint_n_cs_precedes: uint8(CHAR_MAX), + Fint_n_sep_by_space: uint8(CHAR_MAX), + Fint_p_sign_posn: uint8(CHAR_MAX), + Fint_n_sign_posn: uint8(CHAR_MAX), +} + +func Xlocaleconv(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uintptr(unsafe.Pointer(&_posix_lconv)) +} + +var _default_locale_init_done int32 +var _default_locale t__locale_struct +var _default_ctype_locale t__locale_struct + +func X__loc_is_allocated(tls *TLS, loc Tlocale_t) (r int32) { + if __ccgo_strace { + trc("tls=%v loc=%v, (%v:)", tls, loc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(loc != 0 && loc != uintptr(unsafe.Pointer(&X__c_locale)) && loc != uintptr(unsafe.Pointer(&X__c_dot_utf8_locale)) && loc != uintptr(unsafe.Pointer(&_default_locale)) && loc != uintptr(unsafe.Pointer(&_default_ctype_locale))) +} + +func _do_newlocale(tls *TLS, mask int32, name uintptr, loc Tlocale_t) (r Tlocale_t) { + bp := tls.Alloc(48) + defer tls.Free(48) + var i, i1 int32 + var v2, v3 uintptr + var v5 Tlocale_t + var _ /* tmp at bp+0 */ t__locale_struct + _, _, _, _, _ = i, i1, v2, v3, v5 + i = 0 + for { + if !(i < int32(LC_ALL)) { + break + } + if !(mask&(Int32FromInt32(1)< %v", r) }() + } + ___lock(tls, uintptr(unsafe.Pointer(&X__locale_lock))) + loc = _do_newlocale(tls, mask, name, loc) + ___unlock(tls, uintptr(unsafe.Pointer(&X__locale_lock))) + return loc +} + +func Xnewlocale(tls *TLS, mask int32, name uintptr, loc Tlocale_t) (r Tlocale_t) { + if __ccgo_strace { + trc("tls=%v mask=%v name=%v loc=%v, (%v:)", tls, mask, name, loc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__newlocale(tls, mask, name, loc) +} + +/* +grammar: + +Start = Expr ';' +Expr = Or | Or '?' Expr ':' Expr +Or = And | Or '||' And +And = Eq | And '&&' Eq +Eq = Rel | Eq '==' Rel | Eq '!=' Rel +Rel = Add | Rel '<=' Add | Rel '>=' Add | Rel '<' Add | Rel '>' Add +Add = Mul | Add '+' Mul | Add '-' Mul +Mul = Prim | Mul '*' Prim | Mul '/' Prim | Mul '%' Prim +Prim = '(' Expr ')' | '!' Prim | decimal | 'n' + +internals: + +recursive descent expression evaluator with stack depth limit. +for binary operators an operator-precedence parser is used. +eval* functions store the result of the parsed subexpression +and return a pointer to the next non-space character. +*/ + +type Tst = struct { + Fr uint64 + Fn uint64 + Fop int32 +} + +func _skipspace(tls *TLS, s uintptr) (r uintptr) { + var v1, v2 int32 + _, _ = v1, v2 + for { + v1 = int32(*(*uint8)(unsafe.Pointer(s))) + v2 = BoolInt32(v1 == int32(' ') || uint32(v1)-uint32('\t') < uint32(5)) + goto _3 + _3: + if !(v2 != 0) { + break + } + s++ + } + return s +} + +func _evalprim(tls *TLS, st uintptr, s uintptr, d int32) (r uintptr) { + bp := tls.Alloc(16) + defer tls.Free(16) + var v1 int32 + var _ /* e at bp+0 */ uintptr + _ = v1 + d-- + v1 = d + if v1 < 0 { + return __ccgo_ts + } + s = _skipspace(tls, s) + if BoolInt32(uint32(*(*uint8)(unsafe.Pointer(s)))-uint32('0') < uint32(10)) != 0 { + (*Tst)(unsafe.Pointer(st)).Fr = Xstrtoul(tls, s, bp, int32(10)) + if *(*uintptr)(unsafe.Pointer(bp)) == s || (*Tst)(unsafe.Pointer(st)).Fr == uint64(-Int32FromInt32(1)) { + return __ccgo_ts + } + return _skipspace(tls, *(*uintptr)(unsafe.Pointer(bp))) + } + if int32(*(*uint8)(unsafe.Pointer(s))) == int32('n') { + (*Tst)(unsafe.Pointer(st)).Fr = (*Tst)(unsafe.Pointer(st)).Fn + return _skipspace(tls, s+uintptr(1)) + } + if int32(*(*uint8)(unsafe.Pointer(s))) == int32('(') { + s = _evalexpr(tls, st, s+uintptr(1), d) + if int32(*(*uint8)(unsafe.Pointer(s))) != int32(')') { + return __ccgo_ts + } + return _skipspace(tls, s+uintptr(1)) + } + if int32(*(*uint8)(unsafe.Pointer(s))) == int32('!') { + s = _evalprim(tls, st, s+uintptr(1), d) + (*Tst)(unsafe.Pointer(st)).Fr = BoolUint64(!((*Tst)(unsafe.Pointer(st)).Fr != 0)) + return s + } + return __ccgo_ts +} + +func _binop(tls *TLS, st uintptr, op int32, left uint64) (r int32) { + var a, b uint64 + _, _ = a, b + a = left + b = (*Tst)(unsafe.Pointer(st)).Fr + switch op { + case 0: + (*Tst)(unsafe.Pointer(st)).Fr = BoolUint64(a != 0 || b != 0) + return 0 + case int32(1): + (*Tst)(unsafe.Pointer(st)).Fr = BoolUint64(a != 0 && b != 0) + return 0 + case int32(2): + (*Tst)(unsafe.Pointer(st)).Fr = BoolUint64(a == b) + return 0 + case int32(3): + (*Tst)(unsafe.Pointer(st)).Fr = BoolUint64(a != b) + return 0 + case int32(4): + (*Tst)(unsafe.Pointer(st)).Fr = BoolUint64(a >= b) + return 0 + case int32(5): + (*Tst)(unsafe.Pointer(st)).Fr = BoolUint64(a <= b) + return 0 + case int32(6): + (*Tst)(unsafe.Pointer(st)).Fr = BoolUint64(a > b) + return 0 + case int32(7): + (*Tst)(unsafe.Pointer(st)).Fr = BoolUint64(a < b) + return 0 + case int32(8): + (*Tst)(unsafe.Pointer(st)).Fr = a + b + return 0 + case int32(9): + (*Tst)(unsafe.Pointer(st)).Fr = a - b + return 0 + case int32(10): + (*Tst)(unsafe.Pointer(st)).Fr = a * b + return 0 + case int32(11): + if b != 0 { + (*Tst)(unsafe.Pointer(st)).Fr = a % b + return 0 + } + return int32(1) + case int32(12): + if b != 0 { + (*Tst)(unsafe.Pointer(st)).Fr = a / b + return 0 + } + return int32(1) + } + return int32(1) +} + +func _parseop(tls *TLS, st uintptr, s uintptr) (r uintptr) { + var i int32 + _ = i + i = 0 + for { + if !(i < int32(11)) { + break + } + if int32(*(*uint8)(unsafe.Pointer(s))) == int32(_opch[i]) { + /* note: >,< are accepted with or without = */ + if i < int32(6) && int32(*(*uint8)(unsafe.Pointer(s + 1))) == int32(_opch2[i]) { + (*Tst)(unsafe.Pointer(st)).Fop = i + return s + uintptr(2) + } + if i >= int32(4) { + (*Tst)(unsafe.Pointer(st)).Fop = i + int32(2) + return s + uintptr(1) + } + break + } + goto _1 + _1: + ; + i++ + } + (*Tst)(unsafe.Pointer(st)).Fop = int32(13) + return s +} + +var _opch = [11]uint8{'|', '&', '=', '!', '>', '<', '+', '-', '*', '%', '/'} + +var _opch2 = [6]uint8{'|', '&', '=', '=', '=', '='} + +func _evalbinop(tls *TLS, st uintptr, s uintptr, minprec int32, d int32) (r uintptr) { + var left uint64 + var op int32 + _, _ = left, op + d-- + s = _evalprim(tls, st, s, d) + s = _parseop(tls, st, s) + for { + /* + st->r (left hand side value) and st->op are now set, + get the right hand side or back out if op has low prec, + if op was missing then prec[op]==0 + */ + op = (*Tst)(unsafe.Pointer(st)).Fop + if int32(_prec[op]) <= minprec { + return s + } + left = (*Tst)(unsafe.Pointer(st)).Fr + s = _evalbinop(tls, st, s, int32(_prec[op]), d) + if _binop(tls, st, op, left) != 0 { + return __ccgo_ts + } + goto _1 + _1: + } + return r +} + +var _prec = [14]uint8{ + 0: uint8(1), + 1: uint8(2), + 2: uint8(3), + 3: uint8(3), + 4: uint8(4), + 5: uint8(4), + 6: uint8(4), + 7: uint8(4), + 8: uint8(5), + 9: uint8(5), + 10: uint8(6), + 11: uint8(6), + 12: uint8(6), +} + +func _evalexpr(tls *TLS, st uintptr, s uintptr, d int32) (r uintptr) { + var a, b, v2 uint64 + var v1 int32 + _, _, _, _ = a, b, v1, v2 + d-- + v1 = d + if v1 < 0 { + return __ccgo_ts + } + s = _evalbinop(tls, st, s, 0, d) + if int32(*(*uint8)(unsafe.Pointer(s))) != int32('?') { + return s + } + a = (*Tst)(unsafe.Pointer(st)).Fr + s = _evalexpr(tls, st, s+uintptr(1), d) + if int32(*(*uint8)(unsafe.Pointer(s))) != int32(':') { + return __ccgo_ts + } + b = (*Tst)(unsafe.Pointer(st)).Fr + s = _evalexpr(tls, st, s+uintptr(1), d) + if a != 0 { + v2 = b + } else { + v2 = (*Tst)(unsafe.Pointer(st)).Fr + } + (*Tst)(unsafe.Pointer(st)).Fr = v2 + return s +} + +func X__pleval(tls *TLS, s uintptr, n uint64) (r uint64) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v, (%v:)", tls, s, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var v1 uint64 + var _ /* st at bp+0 */ Tst + _ = v1 + (*(*Tst)(unsafe.Pointer(bp))).Fn = n + s = _evalexpr(tls, bp, s, int32(100)) + if int32(*(*uint8)(unsafe.Pointer(s))) == int32(';') { + v1 = (*(*Tst)(unsafe.Pointer(bp))).Fr + } else { + v1 = uint64(-Int32FromInt32(1)) + } + return v1 +} + +var _buf1 [144]uint8 + +func Xsetlocale(tls *TLS, cat int32, name uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v cat=%v name=%v, (%v:)", tls, cat, name, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(80) + defer tls.Free(80) + var i, same int32 + var l Tsize_t + var lm, lm1, p, part1, ret, s, z, v3, v4, v5, v6 uintptr + var _ /* part at bp+48 */ [24]uint8 + var _ /* tmp_locale at bp+0 */ t__locale_struct + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = i, l, lm, lm1, p, part1, ret, s, same, z, v3, v4, v5, v6 + if uint32(cat) > uint32(LC_ALL) { + return uintptr(0) + } + ___lock(tls, uintptr(unsafe.Pointer(&X__locale_lock))) + /* For LC_ALL, setlocale is required to return a string which + * encodes the current setting for all categories. The format of + * this string is unspecified, and only the following code, which + * performs both the serialization and deserialization, depends + * on the format, so it can easily be changed if needed. */ + if cat == int32(LC_ALL) { + if name != 0 { + *(*[24]uint8)(unsafe.Pointer(bp + 48)) = [24]uint8{'C', '.', 'U', 'T', 'F', '-', '8'} + p = name + i = 0 + for { + if !(i < int32(LC_ALL)) { + break + } + z = X__strchrnul(tls, p, int32(';')) + if int64(z)-int64(p) <= int64(LOCALE_NAME_MAX) { + Xmemcpy(tls, bp+48, p, uint64(int64(z)-int64(p))) + (*(*[24]uint8)(unsafe.Pointer(bp + 48)))[int64(z)-int64(p)] = uint8(0) + if *(*uint8)(unsafe.Pointer(z)) != 0 { + p = z + uintptr(1) + } + } + lm = X__get_locale(tls, i, bp+48) + if lm == uintptr(-Int32FromInt32(1)) { + ___unlock(tls, uintptr(unsafe.Pointer(&X__locale_lock))) + return uintptr(0) + } + *(*uintptr)(unsafe.Pointer(bp + uintptr(i)*8)) = lm + goto _1 + _1: + ; + i++ + } + X__libc.Fglobal_locale = *(*t__locale_struct)(unsafe.Pointer(bp)) + } + s = uintptr(unsafe.Pointer(&_buf1)) + same = 0 + i = 0 + for { + if !(i < int32(LC_ALL)) { + break + } + lm1 = *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__libc)) + 56 + uintptr(i)*8)) + if lm1 == *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__libc)) + 56)) { + same++ + } + if lm1 != 0 { + v3 = lm1 + 16 + } else { + v3 = __ccgo_ts + 522 + } + part1 = v3 + l = Xstrlen(tls, part1) + Xmemcpy(tls, s, part1, l) + *(*uint8)(unsafe.Pointer(s + uintptr(l))) = uint8(';') + s += uintptr(l + uint64(1)) + goto _2 + _2: + ; + i++ + } + s-- + v4 = s + *(*uint8)(unsafe.Pointer(v4)) = uint8(0) + ___unlock(tls, uintptr(unsafe.Pointer(&X__locale_lock))) + if same == int32(LC_ALL) { + v5 = part1 + } else { + v5 = uintptr(unsafe.Pointer(&_buf1)) + } + return v5 + } + if name != 0 { + lm = X__get_locale(tls, cat, name) + if lm == uintptr(-Int32FromInt32(1)) { + ___unlock(tls, uintptr(unsafe.Pointer(&X__locale_lock))) + return uintptr(0) + } + *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__libc)) + 56 + uintptr(cat)*8)) = lm + } else { + lm = *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__libc)) + 56 + uintptr(cat)*8)) + } + if lm != 0 { + v6 = lm + 16 + } else { + v6 = __ccgo_ts + 522 + } + ret = v6 + ___unlock(tls, uintptr(unsafe.Pointer(&X__locale_lock))) + return ret +} + +func X__strcoll_l(tls *TLS, l uintptr, r uintptr, loc Tlocale_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v loc=%v, (%v:)", tls, l, r, loc, origin(2)) + defer func() { trc("-> %v", r1) }() + } + return Xstrcmp(tls, l, r) +} + +func Xstrcoll(tls *TLS, l uintptr, r uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v, (%v:)", tls, l, r, origin(2)) + defer func() { trc("-> %v", r1) }() + } + return X__strcoll_l(tls, l, r, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale) +} + +func Xstrcoll_l(tls *TLS, l uintptr, r uintptr, loc Tlocale_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v loc=%v, (%v:)", tls, l, r, loc, origin(2)) + defer func() { trc("-> %v", r1) }() + } + return X__strcoll_l(tls, l, r, loc) +} + +func _vstrfmon_l(tls *TLS, s uintptr, n Tsize_t, loc Tlocale_t, fmt uintptr, ap Tva_list) (r Tssize_t) { + bp := tls.Alloc(32) + defer tls.Free(32) + var fill, fw, intl, left, lp, negpar, nogrp, nosym, rp, w int32 + var l Tsize_t + var s0, v12, v5, v6, v8 uintptr + var x float64 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = fill, fw, intl, l, left, lp, negpar, nogrp, nosym, rp, s0, w, x, v12, v5, v6, v8 + s0 = s +_3: + ; + if !(n != 0 && *(*uint8)(unsafe.Pointer(fmt)) != 0) { + goto _1 + } + if !(int32(*(*uint8)(unsafe.Pointer(fmt))) != int32('%')) { + goto _4 + } + goto literal +literal: + ; + v5 = s + s++ + v6 = fmt + fmt++ + *(*uint8)(unsafe.Pointer(v5)) = *(*uint8)(unsafe.Pointer(v6)) + n-- + goto _2 +_4: + ; + fmt++ + if int32(*(*uint8)(unsafe.Pointer(fmt))) == int32('%') { + goto literal + } + fill = int32(' ') + nogrp = 0 + negpar = 0 + nosym = 0 + left = 0 + for { + switch int32(*(*uint8)(unsafe.Pointer(fmt))) { + case int32('='): + fmt++ + v8 = fmt + fill = int32(*(*uint8)(unsafe.Pointer(v8))) + goto _7 + case int32('^'): + nogrp = int32(1) + goto _7 + case int32('('): + negpar = int32(1) + fallthrough + case int32('+'): + goto _7 + case int32('!'): + nosym = int32(1) + goto _7 + case int32('-'): + left = int32(1) + goto _7 + } + break + goto _7 + _7: + ; + fmt++ + } + fw = 0 + for { + if !(BoolInt32(uint32(*(*uint8)(unsafe.Pointer(fmt)))-uint32('0') < uint32(10)) != 0) { + break + } + fw = int32(10)*fw + (int32(*(*uint8)(unsafe.Pointer(fmt))) - int32('0')) + goto _9 + _9: + ; + fmt++ + } + lp = 0 + rp = int32(2) + if int32(*(*uint8)(unsafe.Pointer(fmt))) == int32('#') { + lp = 0 + fmt++ + for { + if !(BoolInt32(uint32(*(*uint8)(unsafe.Pointer(fmt)))-uint32('0') < uint32(10)) != 0) { + break + } + lp = int32(10)*lp + (int32(*(*uint8)(unsafe.Pointer(fmt))) - int32('0')) + goto _10 + _10: + ; + fmt++ + } + } + if int32(*(*uint8)(unsafe.Pointer(fmt))) == int32('.') { + rp = 0 + fmt++ + for { + if !(BoolInt32(uint32(*(*uint8)(unsafe.Pointer(fmt)))-uint32('0') < uint32(10)) != 0) { + break + } + rp = int32(10)*rp + (int32(*(*uint8)(unsafe.Pointer(fmt))) - int32('0')) + goto _11 + _11: + ; + fmt++ + } + } + v12 = fmt + fmt++ + intl = BoolInt32(int32(*(*uint8)(unsafe.Pointer(v12))) == int32('i')) + w = lp + int32(1) + rp + if !(left != 0) && fw > w { + w = fw + } + x = VaFloat64(&ap) + l = uint64(Xsnprintf(tls, s, n, __ccgo_ts+560, VaList(bp+8, w, rp, x))) + if l >= n { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(E2BIG) + return int64(-int32(1)) + } + s += uintptr(l) + n -= l + goto _2 +_2: + ; + goto _3 + goto _1 +_1: + ; + return int64(s) - int64(s0) +} + +func Xstrfmon_l(tls *TLS, s uintptr, n Tsize_t, loc Tlocale_t, fmt uintptr, va uintptr) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v loc=%v fmt=%v va=%v, (%v:)", tls, s, n, loc, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var ret Tssize_t + _, _ = ap, ret + ap = va + ret = _vstrfmon_l(tls, s, n, loc, fmt, ap) + _ = ap + return ret +} + +func Xstrfmon(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, va uintptr) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v fmt=%v va=%v, (%v:)", tls, s, n, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var ret Tssize_t + _, _ = ap, ret + ap = va + ret = _vstrfmon_l(tls, s, n, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale, fmt, ap) + _ = ap + return ret +} + +func Xstrtof_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float32) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v l=%v, (%v:)", tls, s, p, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrtof(tls, s, p) +} + +func Xstrtod_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v l=%v, (%v:)", tls, s, p, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrtod(tls, s, p) +} + +func Xstrtold_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v l=%v, (%v:)", tls, s, p, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrtold(tls, s, p) +} + +func X__strtod_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v l=%v, (%v:)", tls, s, p, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrtod_l(tls, s, p, l) +} + +func X__strtof_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float32) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v l=%v, (%v:)", tls, s, p, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrtof_l(tls, s, p, l) +} + +func X__strtold_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v l=%v, (%v:)", tls, s, p, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrtold_l(tls, s, p, l) +} + +// C documentation +// +// /* collate only by code points */ +func X__strxfrm_l(tls *TLS, dest uintptr, src uintptr, n Tsize_t, loc Tlocale_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v dest=%v src=%v n=%v loc=%v, (%v:)", tls, dest, src, n, loc, origin(2)) + defer func() { trc("-> %v", r) }() + } + var l Tsize_t + _ = l + l = Xstrlen(tls, src) + if n > l { + Xstrcpy(tls, dest, src) + } + return l +} + +func Xstrxfrm(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v dest=%v src=%v n=%v, (%v:)", tls, dest, src, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__strxfrm_l(tls, dest, src, n, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale) +} + +// C documentation +// +// /* collate only by code points */ +func Xstrxfrm_l(tls *TLS, dest uintptr, src uintptr, n Tsize_t, loc Tlocale_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v dest=%v src=%v n=%v loc=%v, (%v:)", tls, dest, src, n, loc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__strxfrm_l(tls, dest, src, n, loc) +} + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +var _current_domain uintptr + +func X__gettextdomain(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 uintptr + _ = v1 + if _current_domain != 0 { + v1 = _current_domain + } else { + v1 = __ccgo_ts + 414 + } + return v1 +} + +func Xtextdomain(tls *TLS, domainname uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v domainname=%v, (%v:)", tls, domainname, origin(2)) + defer func() { trc("-> %v", r) }() + } + var domlen Tsize_t + _ = domlen + if !(domainname != 0) { + return X__gettextdomain(tls) + } + domlen = Xstrlen(tls, domainname) + if domlen > uint64(NAME_MAX) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return uintptr(0) + } + if !(_current_domain != 0) { + _current_domain = Xmalloc(tls, uint64(Int32FromInt32(NAME_MAX)+Int32FromInt32(1))) + if !(_current_domain != 0) { + return uintptr(0) + } + } + Xmemcpy(tls, _current_domain, domainname, domlen+uint64(1)) + return _current_domain +} + +func Xgettext(tls *TLS, msgid uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v msgid=%v, (%v:)", tls, msgid, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xdgettext(tls, uintptr(0), msgid) +} + +func Xngettext(tls *TLS, msgid1 uintptr, msgid2 uintptr, n uint64) (r uintptr) { + if __ccgo_strace { + trc("tls=%v msgid1=%v msgid2=%v n=%v, (%v:)", tls, msgid1, msgid2, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xdngettext(tls, uintptr(0), msgid1, msgid2, n) +} + +func X__uselocale(tls *TLS, new1 Tlocale_t) (r Tlocale_t) { + if __ccgo_strace { + trc("tls=%v new1=%v, (%v:)", tls, new1, origin(2)) + defer func() { trc("-> %v", r) }() + } + var global, old, v1, v2 Tlocale_t + var self Tpthread_t + _, _, _, _, _ = global, old, self, v1, v2 + self = ___get_tp(tls) + old = (*t__pthread)(unsafe.Pointer(self)).Flocale + global = uintptr(unsafe.Pointer(&X__libc)) + 56 + if new1 != 0 { + if new1 == uintptr(-Int32FromInt32(1)) { + v1 = global + } else { + v1 = new1 + } + (*t__pthread)(unsafe.Pointer(self)).Flocale = v1 + } + if old == global { + v2 = uintptr(-Int32FromInt32(1)) + } else { + v2 = old + } + return v2 +} + +func Xuselocale(tls *TLS, new1 Tlocale_t) (r Tlocale_t) { + if __ccgo_strace { + trc("tls=%v new1=%v, (%v:)", tls, new1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__uselocale(tls, new1) +} + +// C documentation +// +// /* FIXME: stub */ +func X__wcscoll_l(tls *TLS, l uintptr, r uintptr, locale Tlocale_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v locale=%v, (%v:)", tls, l, r, locale, origin(2)) + defer func() { trc("-> %v", r1) }() + } + return Xwcscmp(tls, l, r) +} + +func Xwcscoll(tls *TLS, l uintptr, r uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v, (%v:)", tls, l, r, origin(2)) + defer func() { trc("-> %v", r1) }() + } + return X__wcscoll_l(tls, l, r, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale) +} + +// C documentation +// +// /* FIXME: stub */ +func Xwcscoll_l(tls *TLS, l uintptr, r uintptr, locale Tlocale_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v locale=%v, (%v:)", tls, l, r, locale, origin(2)) + defer func() { trc("-> %v", r1) }() + } + return X__wcscoll_l(tls, l, r, locale) +} + +// C documentation +// +// /* collate only by code points */ +func X__wcsxfrm_l(tls *TLS, dest uintptr, src uintptr, n Tsize_t, loc Tlocale_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v dest=%v src=%v n=%v loc=%v, (%v:)", tls, dest, src, n, loc, origin(2)) + defer func() { trc("-> %v", r) }() + } + var l Tsize_t + _ = l + l = Xwcslen(tls, src) + if l < n { + Xwmemcpy(tls, dest, src, l+uint64(1)) + } else { + if n != 0 { + Xwmemcpy(tls, dest, src, n-uint64(1)) + *(*Twchar_t)(unsafe.Pointer(dest + uintptr(n-uint64(1))*4)) = uint32(0) + } + } + return l +} + +func Xwcsxfrm(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v dest=%v src=%v n=%v, (%v:)", tls, dest, src, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__wcsxfrm_l(tls, dest, src, n, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale) +} + +// C documentation +// +// /* collate only by code points */ +func Xwcsxfrm_l(tls *TLS, dest uintptr, src uintptr, n Tsize_t, loc Tlocale_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v dest=%v src=%v n=%v loc=%v, (%v:)", tls, dest, src, n, loc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__wcsxfrm_l(tls, dest, src, n, loc) +} + +func Xreallocarray(tls *TLS, ptr uintptr, m Tsize_t, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v ptr=%v m=%v n=%v, (%v:)", tls, ptr, m, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + if n != 0 && m > uint64(-Int32FromInt32(1))/n { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOMEM) + return uintptr(0) + } + return Xrealloc(tls, ptr, m*n) +} + +const LDBL_EPSILON2 = 0 +const LDBL_MAX2 = 0 +const LDBL_MIN2 = 0 + +var _C1 = float64(0.0416666666666666) /* 0x3FA55555, 0x5555554C */ +var _C2 = -Float64FromFloat64(0.001388888888887411) /* 0xBF56C16C, 0x16C15177 */ +var _C3 = float64(2.480158728947673e-05) /* 0x3EFA01A0, 0x19CB1590 */ +var _C4 = -Float64FromFloat64(2.7557314351390663e-07) /* 0xBE927E4F, 0x809C52AD */ +var _C5 = float64(2.087572321298175e-09) /* 0x3E21EE9E, 0xBDB4B1C4 */ +var _C6 = -Float64FromFloat64(1.1359647557788195e-11) /* 0xBDA8FAE9, 0xBE8838D4 */ + +func X__cos(tls *TLS, x float64, y float64) (r1 float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var hz, r, w, z Tdouble_t + _, _, _, _ = hz, r, w, z + z = x * x + w = z * z + r = z*(_C1+z*(_C2+z*_C3)) + w*w*(_C4+z*(_C5+z*_C6)) + hz = float64(0.5) * z + w = float64(1) - hz + return w + (Float64FromFloat64(1) - w - hz + (z*r - x*y)) +} + +// C documentation +// +// /* |cos(x) - c(x)| < 2**-34.1 (~[-5.37e-11, 5.295e-11]). */ + +var _C0 = -Float64FromFloat64(0.499999997251031) /* -0.499999997251031003120 */ +var _C11 = float64(0.04166662332373906) /* 0.0416666233237390631894 */ +var _C21 = -Float64FromFloat64(0.001388676377460993) /* -0.00138867637746099294692 */ +var _C31 = float64(2.439044879627741e-05) /* 0.0000243904487962774090654 */ + +func X__cosdf(tls *TLS, x float64) (r1 float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, w, z Tdouble_t + _, _, _ = r, w, z + /* Try to optimize for parallel evaluation as in __tandf.c. */ + z = x * x + w = z * z + r = _C21 + z*_C31 + return float32(float64(1) + z*_C0 + w*_C11 + w*z*r) +} + +// C documentation +// +// /* k is such that k*ln2 has minimal relative error and x - kln2 > log(DBL_MIN) */ +var _k2 = int32(2043) +var _kln22 = float64(1416.0996898839683) + +// C documentation +// +// /* exp(x)/2 for x >= log(DBL_MAX), slightly better than 0.5*exp(x/2)*exp(x/2) */ +func X__expo2(tls *TLS, x float64, sign float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v sign=%v, (%v:)", tls, x, sign, origin(2)) + defer func() { trc("-> %v", r) }() + } + var scale float64 + var v1 Tuint64_t + _, _ = scale, v1 + /* note that k is odd and scale*scale overflows */ + v1 = uint64(uint32(Int32FromInt32(0x3ff)+_k2/Int32FromInt32(2))< log(FLT_MIN) */ +var _k3 = int32(235) +var _kln23 = Float32FromFloat32(162.88958740234375) + +// C documentation +// +// /* expf(x)/2 for x >= log(FLT_MAX), slightly better than 0.5f*expf(x/2)*expf(x/2) */ +func X__expo2f(tls *TLS, x float32, sign float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v sign=%v, (%v:)", tls, x, sign, origin(2)) + defer func() { trc("-> %v", r) }() + } + var scale float32 + var v1 Tuint32_t + _, _ = scale, v1 + /* note that k is odd and scale*scale overflows */ + v1 = uint32(Int32FromInt32(0x7f)+_k3/Int32FromInt32(2)) << int32(23) + scale = *(*float32)(unsafe.Pointer(&v1)) + /* exp(x - k ln2) * 2**(k-1) */ + /* in directed rounding correct sign before rounding or overflow is important */ + return Xexpf(tls, x-_kln23) * (sign * scale) * scale +} + +func X__fpclassify(tls *TLS, x float64) (r int32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e, v1, v2 int32 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _ = e, v1, v2 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x + e = int32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(52) & uint64(0x7ff)) + if !(e != 0) { + if *(*Tuint64_t)(unsafe.Pointer(bp))< %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e, v1, v2 int32 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _ = e, v1, v2 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x + e = int32(*(*Tuint32_t)(unsafe.Pointer(bp)) >> int32(23) & uint32(0xff)) + if !(e != 0) { + if *(*Tuint32_t)(unsafe.Pointer(bp))< %v", r) }() + } + return X__fpclassify(tls, x) +} + +const pio2_hi = 0 +const pio2_lo = 0 + +func X__math_divzero(tls *TLS, sign Tuint32_t) (r float64) { + if __ccgo_strace { + trc("tls=%v sign=%v, (%v:)", tls, sign, origin(2)) + defer func() { trc("-> %v", r) }() + } + var y, v1, v2 float64 + _, _, _ = y, v1, v2 + if sign != 0 { + v1 = -Float64FromFloat64(1) + } else { + v1 = float64(1) + } + y = v1 + v2 = y + goto _3 +_3: + return v2 / float64(0) +} + +func X__math_divzerof(tls *TLS, sign Tuint32_t) (r float32) { + if __ccgo_strace { + trc("tls=%v sign=%v, (%v:)", tls, sign, origin(2)) + defer func() { trc("-> %v", r) }() + } + var y, v1, v2 float32 + _, _, _ = y, v1, v2 + if sign != 0 { + v1 = -Float32FromFloat32(1) + } else { + v1 = Float32FromFloat32(1) + } + y = v1 + v2 = y + goto _3 +_3: + return v2 / Float32FromFloat32(0) +} + +func X__math_invalid(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return (x - x) / (x - x) +} + +func X__math_invalidf(tls *TLS, x float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return (x - x) / (x - x) +} + +func X__math_oflow(tls *TLS, sign Tuint32_t) (r float64) { + if __ccgo_strace { + trc("tls=%v sign=%v, (%v:)", tls, sign, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__math_xflow(tls, sign, float64(3.105036184601418e+231)) +} + +func X__math_oflowf(tls *TLS, sign Tuint32_t) (r float32) { + if __ccgo_strace { + trc("tls=%v sign=%v, (%v:)", tls, sign, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__math_xflowf(tls, sign, Float32FromFloat32(1.5845632502852868e+29)) +} + +func X__math_uflow(tls *TLS, sign Tuint32_t) (r float64) { + if __ccgo_strace { + trc("tls=%v sign=%v, (%v:)", tls, sign, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__math_xflow(tls, sign, float64(1.2882297539194267e-231)) +} + +func X__math_uflowf(tls *TLS, sign Tuint32_t) (r float32) { + if __ccgo_strace { + trc("tls=%v sign=%v, (%v:)", tls, sign, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__math_xflowf(tls, sign, Float32FromFloat32(2.524354896707238e-29)) +} + +func X__math_xflow(tls *TLS, sign Tuint32_t, y2 float64) (r float64) { + if __ccgo_strace { + trc("tls=%v sign=%v y2=%v, (%v:)", tls, sign, y2, origin(2)) + defer func() { trc("-> %v", r) }() + } + var y, y1, v1, v2, v4 float64 + _, _, _, _, _ = y, y1, v1, v2, v4 + if sign != 0 { + v1 = -y2 + } else { + v1 = y2 + } + y1 = v1 + v2 = y1 + goto _3 +_3: + y = v2 * y2 + v4 = y + goto _5 +_5: + return v4 +} + +func X__math_xflowf(tls *TLS, sign Tuint32_t, y2 float32) (r float32) { + if __ccgo_strace { + trc("tls=%v sign=%v y2=%v, (%v:)", tls, sign, y2, origin(2)) + defer func() { trc("-> %v", r) }() + } + var y, y1, v1, v2, v4 float32 + _, _, _, _, _ = y, y1, v1, v2, v4 + if sign != 0 { + v1 = -y2 + } else { + v1 = y2 + } + y1 = v1 + v2 = y1 + goto _3 +_3: + y = v2 * y2 + v4 = y + goto _5 +_5: + return v4 +} + +const DBL_EPSILON1 = 2.220446049250313e-16 +const EPS = 0 + +// C documentation +// +// /* +// * invpio2: 53 bits of 2/pi +// * pio2_1: first 33 bit of pi/2 +// * pio2_1t: pi/2 - pio2_1 +// * pio2_2: second 33 bit of pi/2 +// * pio2_2t: pi/2 - (pio2_1+pio2_2) +// * pio2_3: third 33 bit of pi/2 +// * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3) +// */ + +var _toint = Float64FromFloat64(1.5) / Float64FromFloat64(2.220446049250313e-16) +var _pio4 = float64(0.7853981633974483) +var _invpio2 = float64(0.6366197723675814) /* 0x3FE45F30, 0x6DC9C883 */ +var _pio2_1 = float64(1.5707963267341256) /* 0x3FF921FB, 0x54400000 */ +var _pio2_1t = float64(6.077100506506192e-11) /* 0x3DD0B461, 0x1A626331 */ +var _pio2_2 = float64(6.077100506303966e-11) /* 0x3DD0B461, 0x1A600000 */ +var _pio2_2t = float64(2.0222662487959506e-21) /* 0x3BA3198A, 0x2E037073 */ +var _pio2_3 = float64(2.0222662487111665e-21) /* 0x3BA3198A, 0x2E000000 */ +var _pio2_3t = float64(8.4784276603689e-32) /* 0x397B839A, 0x252049C1 */ + +// C documentation +// +// /* caller must handle the case when reduction is not needed: |x| ~<= pi/4 */ +func X__rem_pio2(tls *TLS, x float64, y uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(48) + defer tls.Free(48) + var ex, ey, i, n, sign int32 + var fn, r, t, w, z Tdouble_t + var ix Tuint32_t + var v2 float64 + var _ /* tx at bp+8 */ [3]float64 + var _ /* ty at bp+32 */ [2]float64 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _, _, _, _, _, _, _, _ = ex, ey, fn, i, ix, n, r, sign, t, w, z, v2 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x + sign = int32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(63)) + ix = uint32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(32) & uint64(0x7fffffff)) + if ix <= uint32(0x400f6a7a) { /* |x| ~<= 5pi/4 */ + if ix&uint32(0xfffff) == uint32(0x921fb) { /* |x| ~= pi/2 or 2pi/2 */ + goto medium + } /* cancellation -- use medium case */ + if ix <= uint32(0x4002d97c) { /* |x| ~<= 3pi/4 */ + if !(sign != 0) { + z = x - _pio2_1 /* one round good to 85 bits */ + *(*float64)(unsafe.Pointer(y)) = z - _pio2_1t + *(*float64)(unsafe.Pointer(y + 1*8)) = z - *(*float64)(unsafe.Pointer(y)) - _pio2_1t + return int32(1) + } else { + z = x + _pio2_1 + *(*float64)(unsafe.Pointer(y)) = z + _pio2_1t + *(*float64)(unsafe.Pointer(y + 1*8)) = z - *(*float64)(unsafe.Pointer(y)) + _pio2_1t + return -int32(1) + } + } else { + if !(sign != 0) { + z = x - Float64FromInt32(2)*_pio2_1 + *(*float64)(unsafe.Pointer(y)) = z - Float64FromInt32(2)*_pio2_1t + *(*float64)(unsafe.Pointer(y + 1*8)) = z - *(*float64)(unsafe.Pointer(y)) - Float64FromInt32(2)*_pio2_1t + return int32(2) + } else { + z = x + Float64FromInt32(2)*_pio2_1 + *(*float64)(unsafe.Pointer(y)) = z + Float64FromInt32(2)*_pio2_1t + *(*float64)(unsafe.Pointer(y + 1*8)) = z - *(*float64)(unsafe.Pointer(y)) + Float64FromInt32(2)*_pio2_1t + return -int32(2) + } + } + } + if ix <= uint32(0x401c463b) { /* |x| ~<= 9pi/4 */ + if ix <= uint32(0x4015fdbc) { /* |x| ~<= 7pi/4 */ + if ix == uint32(0x4012d97c) { /* |x| ~= 3pi/2 */ + goto medium + } + if !(sign != 0) { + z = x - Float64FromInt32(3)*_pio2_1 + *(*float64)(unsafe.Pointer(y)) = z - Float64FromInt32(3)*_pio2_1t + *(*float64)(unsafe.Pointer(y + 1*8)) = z - *(*float64)(unsafe.Pointer(y)) - Float64FromInt32(3)*_pio2_1t + return int32(3) + } else { + z = x + Float64FromInt32(3)*_pio2_1 + *(*float64)(unsafe.Pointer(y)) = z + Float64FromInt32(3)*_pio2_1t + *(*float64)(unsafe.Pointer(y + 1*8)) = z - *(*float64)(unsafe.Pointer(y)) + Float64FromInt32(3)*_pio2_1t + return -int32(3) + } + } else { + if ix == uint32(0x401921fb) { /* |x| ~= 4pi/2 */ + goto medium + } + if !(sign != 0) { + z = x - Float64FromInt32(4)*_pio2_1 + *(*float64)(unsafe.Pointer(y)) = z - Float64FromInt32(4)*_pio2_1t + *(*float64)(unsafe.Pointer(y + 1*8)) = z - *(*float64)(unsafe.Pointer(y)) - Float64FromInt32(4)*_pio2_1t + return int32(4) + } else { + z = x + Float64FromInt32(4)*_pio2_1 + *(*float64)(unsafe.Pointer(y)) = z + Float64FromInt32(4)*_pio2_1t + *(*float64)(unsafe.Pointer(y + 1*8)) = z - *(*float64)(unsafe.Pointer(y)) + Float64FromInt32(4)*_pio2_1t + return -int32(4) + } + } + } + if !(ix < uint32(0x413921fb)) { + goto _1 + } /* |x| ~< 2^20*(pi/2), medium size */ + goto medium +medium: + ; + /* rint(x/(pi/2)) */ + fn = x*_invpio2 + _toint - _toint + n = int32(fn) + r = x - fn*_pio2_1 + w = fn * _pio2_1t /* 1st round, good to 85 bits */ + /* Matters with directed rounding. */ + if r-w < -_pio4 { + n-- + fn-- + r = x - fn*_pio2_1 + w = fn * _pio2_1t + } else { + if r-w > _pio4 { + n++ + fn++ + r = x - fn*_pio2_1 + w = fn * _pio2_1t + } + } + *(*float64)(unsafe.Pointer(y)) = r - w + *(*float64)(unsafe.Pointer(bp)) = *(*float64)(unsafe.Pointer(y)) + ey = int32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(52) & uint64(0x7ff)) + ex = int32(ix >> int32(20)) + if ex-ey > int32(16) { /* 2nd round, good to 118 bits */ + t = r + w = fn * _pio2_2 + r = t - w + w = fn*_pio2_2t - (t - r - w) + *(*float64)(unsafe.Pointer(y)) = r - w + *(*float64)(unsafe.Pointer(bp)) = *(*float64)(unsafe.Pointer(y)) + ey = int32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(52) & uint64(0x7ff)) + if ex-ey > int32(49) { /* 3rd round, good to 151 bits, covers all cases */ + t = r + w = fn * _pio2_3 + r = t - w + w = fn*_pio2_3t - (t - r - w) + *(*float64)(unsafe.Pointer(y)) = r - w + } + } + *(*float64)(unsafe.Pointer(y + 1*8)) = r - *(*float64)(unsafe.Pointer(y)) - w + return n +_1: + ; + /* + * all other (large) arguments + */ + if ix >= uint32(0x7ff00000) { /* x is inf or NaN */ + v2 = x - x + *(*float64)(unsafe.Pointer(y + 1*8)) = v2 + *(*float64)(unsafe.Pointer(y)) = v2 + return 0 + } + /* set z = scalbn(|x|,-ilogb(x)+23) */ + *(*float64)(unsafe.Pointer(bp)) = x + *(*Tuint64_t)(unsafe.Pointer(bp)) &= uint64(-Int32FromInt32(1)) >> Int32FromInt32(12) + *(*Tuint64_t)(unsafe.Pointer(bp)) |= uint64(Int32FromInt32(0x3ff)+Int32FromInt32(23)) << Int32FromInt32(52) + z = *(*float64)(unsafe.Pointer(bp)) + i = 0 + for { + if !(i < int32(2)) { + break + } + (*(*[3]float64)(unsafe.Pointer(bp + 8)))[i] = float64(int32(z)) + z = (z - (*(*[3]float64)(unsafe.Pointer(bp + 8)))[i]) * float64(1.6777216e+07) + goto _3 + _3: + ; + i++ + } + (*(*[3]float64)(unsafe.Pointer(bp + 8)))[i] = z + /* skip zero terms, first term is non-zero */ + for (*(*[3]float64)(unsafe.Pointer(bp + 8)))[i] == float64(0) { + i-- + } + n = X__rem_pio2_large(tls, bp+8, bp+32, int32(ix>>Int32FromInt32(20))-(Int32FromInt32(0x3ff)+Int32FromInt32(23)), i+int32(1), int32(1)) + if sign != 0 { + *(*float64)(unsafe.Pointer(y)) = -(*(*[2]float64)(unsafe.Pointer(bp + 32)))[0] + *(*float64)(unsafe.Pointer(y + 1*8)) = -(*(*[2]float64)(unsafe.Pointer(bp + 32)))[int32(1)] + return -n + } + *(*float64)(unsafe.Pointer(y)) = (*(*[2]float64)(unsafe.Pointer(bp + 32)))[0] + *(*float64)(unsafe.Pointer(y + 1*8)) = (*(*[2]float64)(unsafe.Pointer(bp + 32)))[int32(1)] + return n +} + +const DBL_EPSILON2 = 0 + +var _init_jk = [4]int32{ + 0: int32(3), + 1: int32(4), + 2: int32(4), + 3: int32(6), +} /* initial value for jk */ + +// C documentation +// +// /* +// * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi +// * +// * integer array, contains the (24*i)-th to (24*i+23)-th +// * bit of 2/pi after binary point. The corresponding +// * floating value is +// * +// * ipio2[i] * 2^(-24(i+1)). +// * +// * NB: This table must have at least (e0-3)/24 + jk terms. +// * For quad precision (e0 <= 16360, jk = 6), this is 686. +// */ +var _ipio2 = [66]Tint32_t{ + 0: int32(0xA2F983), + 1: int32(0x6E4E44), + 2: int32(0x1529FC), + 3: int32(0x2757D1), + 4: int32(0xF534DD), + 5: int32(0xC0DB62), + 6: int32(0x95993C), + 7: int32(0x439041), + 8: int32(0xFE5163), + 9: int32(0xABDEBB), + 10: int32(0xC561B7), + 11: int32(0x246E3A), + 12: int32(0x424DD2), + 13: int32(0xE00649), + 14: int32(0x2EEA09), + 15: int32(0xD1921C), + 16: int32(0xFE1DEB), + 17: int32(0x1CB129), + 18: int32(0xA73EE8), + 19: int32(0x8235F5), + 20: int32(0x2EBB44), + 21: int32(0x84E99C), + 22: int32(0x7026B4), + 23: int32(0x5F7E41), + 24: int32(0x3991D6), + 25: int32(0x398353), + 26: int32(0x39F49C), + 27: int32(0x845F8B), + 28: int32(0xBDF928), + 29: int32(0x3B1FF8), + 30: int32(0x97FFDE), + 31: int32(0x05980F), + 32: int32(0xEF2F11), + 33: int32(0x8B5A0A), + 34: int32(0x6D1F6D), + 35: int32(0x367ECF), + 36: int32(0x27CB09), + 37: int32(0xB74F46), + 38: int32(0x3F669E), + 39: int32(0x5FEA2D), + 40: int32(0x7527BA), + 41: int32(0xC7EBE5), + 42: int32(0xF17B3D), + 43: int32(0x0739F7), + 44: int32(0x8A5292), + 45: int32(0xEA6BFB), + 46: int32(0x5FB11F), + 47: int32(0x8D5D08), + 48: int32(0x560330), + 49: int32(0x46FC7B), + 50: int32(0x6BABF0), + 51: int32(0xCFBC20), + 52: int32(0x9AF436), + 53: int32(0x1DA9E3), + 54: int32(0x91615E), + 55: int32(0xE61B08), + 56: int32(0x659985), + 57: int32(0x5F14A0), + 58: int32(0x68408D), + 59: int32(0xFFD880), + 60: int32(0x4D7327), + 61: int32(0x310606), + 62: int32(0x1556CA), + 63: int32(0x73A8C9), + 64: int32(0x60E27B), + 65: int32(0xC08C6B), +} + +var _PIo2 = [8]float64{ + 0: float64(1.570796251296997), + 1: float64(7.549789415861596e-08), + 2: float64(5.390302529957765e-15), + 3: float64(3.282003415807913e-22), + 4: float64(1.270655753080676e-29), + 5: float64(1.2293330898111133e-36), + 6: float64(2.7337005381646456e-44), + 7: float64(2.1674168387780482e-51), +} + +func X__rem_pio2_large(tls *TLS, x uintptr, y uintptr, e0 int32, nx int32, prec int32) (r int32) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v e0=%v nx=%v prec=%v, (%v:)", tls, x, y, e0, nx, prec, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(240) + defer tls.Free(240) + var carry, i, ih, j, jk, jp, jv, jx, jz, k, m, n, q0 Tint32_t + var f, q [20]float64 + var fw, z, v2, v20, v22, v24 float64 + var _ /* fq at bp+80 */ [20]float64 + var _ /* iq at bp+0 */ [20]Tint32_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = carry, f, fw, i, ih, j, jk, jp, jv, jx, jz, k, m, n, q, q0, z, v2, v20, v22, v24 + /* initialize jk*/ + jk = _init_jk[prec] + jp = jk + /* determine jx,jv,q0, note that 3>q0 */ + jx = nx - int32(1) + jv = (e0 - int32(3)) / int32(24) + if jv < 0 { + jv = 0 + } + q0 = e0 - int32(24)*(jv+int32(1)) + /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */ + j = jv - jx + m = jx + jk + i = 0 + for { + if !(i <= m) { + break + } + if j < 0 { + v2 = float64(0) + } else { + v2 = float64(_ipio2[j]) + } + f[i] = v2 + goto _1 + _1: + ; + i++ + j++ + } + /* compute q[0],q[1],...q[jk] */ + i = 0 + for { + if !(i <= jk) { + break + } + j = 0 + fw = Float64FromFloat64(0) + for { + if !(j <= jx) { + break + } + fw += *(*float64)(unsafe.Pointer(x + uintptr(j)*8)) * f[jx+i-j] + goto _4 + _4: + ; + j++ + } + q[i] = fw + goto _3 + _3: + ; + i++ + } + jz = jk + goto recompute +recompute: + ; + /* distill q[] into iq[] reversingly */ + i = 0 + j = jz + z = q[jz] + for { + if !(j > 0) { + break + } + fw = float64(int32(Float64FromFloat64(5.960464477539063e-08) * z)) + (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[i] = int32(z - Float64FromFloat64(1.6777216e+07)*fw) + z = q[j-int32(1)] + fw + goto _5 + _5: + ; + i++ + j-- + } + /* compute n */ + z = Xscalbn(tls, z, q0) /* actual value of z */ + z -= float64(8) * Xfloor(tls, z*float64(0.125)) /* trim off integer >= 8 */ + n = int32(z) + z -= float64(n) + ih = 0 + if q0 > 0 { /* need iq[jz-1] to determine n */ + i = (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[jz-int32(1)] >> (int32(24) - q0) + n += i + *(*Tint32_t)(unsafe.Pointer(bp + uintptr(jz-int32(1))*4)) -= i << (int32(24) - q0) + ih = (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[jz-int32(1)] >> (int32(23) - q0) + } else { + if q0 == 0 { + ih = (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[jz-int32(1)] >> int32(23) + } else { + if z >= float64(0.5) { + ih = int32(2) + } + } + } + if ih > 0 { /* q > 0.5 */ + n += int32(1) + carry = 0 + i = 0 + for { + if !(i < jz) { + break + } /* compute 1-q */ + j = (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[i] + if carry == 0 { + if j != 0 { + carry = int32(1) + (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[i] = int32(0x1000000) - j + } + } else { + (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[i] = int32(0xffffff) - j + } + goto _6 + _6: + ; + i++ + } + if q0 > 0 { /* rare case: chance is 1 in 12 */ + switch q0 { + case int32(1): + *(*Tint32_t)(unsafe.Pointer(bp + uintptr(jz-int32(1))*4)) &= int32(0x7fffff) + case int32(2): + *(*Tint32_t)(unsafe.Pointer(bp + uintptr(jz-int32(1))*4)) &= int32(0x3fffff) + break + } + } + if ih == int32(2) { + z = float64(1) - z + if carry != 0 { + z -= Xscalbn(tls, float64(1), q0) + } + } + } + /* check if recomputation is needed */ + if z == float64(0) { + j = 0 + i = jz - int32(1) + for { + if !(i >= jk) { + break + } + j |= (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[i] + goto _7 + _7: + ; + i-- + } + if j == 0 { /* need recomputation */ + k = int32(1) + for { + if !((*(*[20]Tint32_t)(unsafe.Pointer(bp)))[jk-k] == 0) { + break + } + goto _8 + _8: + ; + k++ + } /* k = no. of terms needed */ + i = jz + int32(1) + for { + if !(i <= jz+k) { + break + } /* add q[jz+1] to q[jz+k] */ + f[jx+i] = float64(_ipio2[jv+i]) + j = 0 + fw = Float64FromFloat64(0) + for { + if !(j <= jx) { + break + } + fw += *(*float64)(unsafe.Pointer(x + uintptr(j)*8)) * f[jx+i-j] + goto _10 + _10: + ; + j++ + } + q[i] = fw + goto _9 + _9: + ; + i++ + } + jz += k + goto recompute + } + } + /* chop off zero terms */ + if z == float64(0) { + jz -= int32(1) + q0 -= int32(24) + for (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[jz] == 0 { + jz-- + q0 -= int32(24) + } + } else { /* break z into 24-bit if necessary */ + z = Xscalbn(tls, z, -q0) + if z >= float64(1.6777216e+07) { + fw = float64(int32(Float64FromFloat64(5.960464477539063e-08) * z)) + (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[jz] = int32(z - Float64FromFloat64(1.6777216e+07)*fw) + jz += int32(1) + q0 += int32(24) + (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[jz] = int32(fw) + } else { + (*(*[20]Tint32_t)(unsafe.Pointer(bp)))[jz] = int32(z) + } + } + /* convert integer "bit" chunk to floating-point value */ + fw = Xscalbn(tls, float64(1), q0) + i = jz + for { + if !(i >= 0) { + break + } + q[i] = fw * float64((*(*[20]Tint32_t)(unsafe.Pointer(bp)))[i]) + fw *= float64(5.960464477539063e-08) + goto _11 + _11: + ; + i-- + } + /* compute PIo2[0,...,jp]*q[jz,...,0] */ + i = jz + for { + if !(i >= 0) { + break + } + fw = float64(0) + k = Int32FromInt32(0) + for { + if !(k <= jp && k <= jz-i) { + break + } + fw += _PIo2[k] * q[i+k] + goto _13 + _13: + ; + k++ + } + (*(*[20]float64)(unsafe.Pointer(bp + 80)))[jz-i] = fw + goto _12 + _12: + ; + i-- + } + /* compress fq[] into y[] */ + switch prec { + case 0: + goto _14 + case int32(2): + goto _15 + case int32(1): + goto _16 + case int32(3): + goto _17 + } + goto _18 +_14: + ; + fw = float64(0) + i = jz + for { + if !(i >= 0) { + break + } + fw += (*(*[20]float64)(unsafe.Pointer(bp + 80)))[i] + goto _19 + _19: + ; + i-- + } + if ih == 0 { + v20 = fw + } else { + v20 = -fw + } + *(*float64)(unsafe.Pointer(y)) = v20 + goto _18 +_16: + ; +_15: + ; + fw = float64(0) + i = jz + for { + if !(i >= 0) { + break + } + fw += (*(*[20]float64)(unsafe.Pointer(bp + 80)))[i] + goto _21 + _21: + ; + i-- + } + // TODO: drop excess precision here once double_t is used + fw = fw + if ih == 0 { + v22 = fw + } else { + v22 = -fw + } + *(*float64)(unsafe.Pointer(y)) = v22 + fw = (*(*[20]float64)(unsafe.Pointer(bp + 80)))[0] - fw + i = int32(1) + for { + if !(i <= jz) { + break + } + fw += (*(*[20]float64)(unsafe.Pointer(bp + 80)))[i] + goto _23 + _23: + ; + i++ + } + if ih == 0 { + v24 = fw + } else { + v24 = -fw + } + *(*float64)(unsafe.Pointer(y + 1*8)) = v24 + goto _18 +_17: + ; /* painful */ + i = jz +_27: + ; + if !(i > 0) { + goto _25 + } + fw = (*(*[20]float64)(unsafe.Pointer(bp + 80)))[i-int32(1)] + (*(*[20]float64)(unsafe.Pointer(bp + 80)))[i] + *(*float64)(unsafe.Pointer(bp + 80 + uintptr(i)*8)) += (*(*[20]float64)(unsafe.Pointer(bp + 80)))[i-int32(1)] - fw + (*(*[20]float64)(unsafe.Pointer(bp + 80)))[i-int32(1)] = fw + goto _26 +_26: + ; + i-- + goto _27 + goto _25 +_25: + ; + i = jz + for { + if !(i > int32(1)) { + break + } + fw = (*(*[20]float64)(unsafe.Pointer(bp + 80)))[i-int32(1)] + (*(*[20]float64)(unsafe.Pointer(bp + 80)))[i] + *(*float64)(unsafe.Pointer(bp + 80 + uintptr(i)*8)) += (*(*[20]float64)(unsafe.Pointer(bp + 80)))[i-int32(1)] - fw + (*(*[20]float64)(unsafe.Pointer(bp + 80)))[i-int32(1)] = fw + goto _28 + _28: + ; + i-- + } + fw = float64(0) + i = jz + for { + if !(i >= int32(2)) { + break + } + fw += (*(*[20]float64)(unsafe.Pointer(bp + 80)))[i] + goto _29 + _29: + ; + i-- + } + if ih == 0 { + *(*float64)(unsafe.Pointer(y)) = (*(*[20]float64)(unsafe.Pointer(bp + 80)))[0] + *(*float64)(unsafe.Pointer(y + 1*8)) = (*(*[20]float64)(unsafe.Pointer(bp + 80)))[int32(1)] + *(*float64)(unsafe.Pointer(y + 2*8)) = fw + } else { + *(*float64)(unsafe.Pointer(y)) = -(*(*[20]float64)(unsafe.Pointer(bp + 80)))[0] + *(*float64)(unsafe.Pointer(y + 1*8)) = -(*(*[20]float64)(unsafe.Pointer(bp + 80)))[int32(1)] + *(*float64)(unsafe.Pointer(y + 2*8)) = -fw + } +_18: + ; + return n & int32(7) +} + +const DBL_EPSILON3 = 2.220446049250313e-16 + +// C documentation +// +// /* +// * invpio2: 53 bits of 2/pi +// * pio2_1: first 25 bits of pi/2 +// * pio2_1t: pi/2 - pio2_1 +// */ + +var _toint1 = Float64FromFloat64(1.5) / Float64FromFloat64(2.220446049250313e-16) +var _pio41 = float64(0.7853981852531433) +var _invpio21 = float64(0.6366197723675814) /* 0x3FE45F30, 0x6DC9C883 */ +var _pio2_11 = float64(1.5707963109016418) /* 0x3FF921FB, 0x50000000 */ +var _pio2_1t1 = float64(1.5893254773528196e-08) /* 0x3E5110b4, 0x611A6263 */ + +func X__rem_pio2f(tls *TLS, x float32, y uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var e0, n, sign int32 + var fn Tdouble_t + var ix Tuint32_t + var _ /* tx at bp+8 */ [1]float64 + var _ /* ty at bp+16 */ [1]float64 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _ = e0, fn, ix, n, sign + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x + ix = *(*Tuint32_t)(unsafe.Pointer(bp)) & uint32(0x7fffffff) + /* 25+53 bit pi is good enough for medium size */ + if ix < uint32(0x4dc90fdb) { /* |x| ~< 2^28*(pi/2), medium size */ + /* Use a specialized rint() to get fn. */ + fn = float64(x)*_invpio21 + _toint1 - _toint1 + n = int32(fn) + *(*float64)(unsafe.Pointer(y)) = float64(x) - fn*_pio2_11 - fn*_pio2_1t1 + /* Matters with directed rounding. */ + if *(*float64)(unsafe.Pointer(y)) < -_pio41 { + n-- + fn-- + *(*float64)(unsafe.Pointer(y)) = float64(x) - fn*_pio2_11 - fn*_pio2_1t1 + } else { + if *(*float64)(unsafe.Pointer(y)) > _pio41 { + n++ + fn++ + *(*float64)(unsafe.Pointer(y)) = float64(x) - fn*_pio2_11 - fn*_pio2_1t1 + } + } + return n + } + if ix >= uint32(0x7f800000) { /* x is inf or NaN */ + *(*float64)(unsafe.Pointer(y)) = float64(x - x) + return 0 + } + /* scale x into [2^23, 2^24-1] */ + sign = int32(*(*Tuint32_t)(unsafe.Pointer(bp)) >> int32(31)) + e0 = int32(ix>>Int32FromInt32(23) - uint32(Int32FromInt32(0x7f)+Int32FromInt32(23))) /* e0 = ilogb(|x|)-23, positive */ + *(*Tuint32_t)(unsafe.Pointer(bp)) = ix - uint32(e0< %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* y at bp+0 */ struct { + Fi [0]Tuint64_t + Fd float64 + } + *(*struct { + Fi [0]Tuint64_t + Fd float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Fd float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x + return int32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(63)) +} + +// C documentation +// +// // FIXME: macro in math.h +func X__signbitf(tls *TLS, x float32) (r int32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* y at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x + return int32(*(*Tuint32_t)(unsafe.Pointer(bp)) >> int32(31)) +} + +func X__signbitl(tls *TLS, x float64) (r int32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__signbit(tls, x) +} + +var _S1 = -Float64FromFloat64(0.16666666666666632) /* 0xBFC55555, 0x55555549 */ +var _S2 = float64(0.00833333333332249) /* 0x3F811111, 0x1110F8A6 */ +var _S3 = -Float64FromFloat64(0.0001984126982985795) /* 0xBF2A01A0, 0x19C161D5 */ +var _S4 = float64(2.7557313707070068e-06) /* 0x3EC71DE3, 0x57B1FE7D */ +var _S5 = -Float64FromFloat64(2.5050760253406863e-08) /* 0xBE5AE5E6, 0x8A2B9CEB */ +var _S6 = float64(1.58969099521155e-10) /* 0x3DE5D93A, 0x5ACFD57C */ + +func X__sin(tls *TLS, x float64, y float64, iy int32) (r1 float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v iy=%v, (%v:)", tls, x, y, iy, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, v, w, z Tdouble_t + _, _, _, _ = r, v, w, z + z = x * x + w = z * z + r = _S2 + z*(_S3+z*_S4) + z*w*(_S5+z*_S6) + v = z * x + if iy == 0 { + return x + v*(_S1+z*r) + } else { + return x - (z*(Float64FromFloat64(0.5)*y-v*r) - y - v*_S1) + } + return r1 +} + +// C documentation +// +// /* |sin(x)/x - s(x)| < 2**-37.5 (~[-4.89e-12, 4.824e-12]). */ + +var _S11 = -Float64FromFloat64(0.16666666641626524) /* -0.166666666416265235595 */ +var _S21 = float64(0.008333329385889463) /* 0.0083333293858894631756 */ +var _S31 = -Float64FromFloat64(0.00019839334836096632) /* -0.000198393348360966317347 */ +var _S41 = float64(2.718311493989822e-06) /* 0.0000027183114939898219064 */ + +func X__sindf(tls *TLS, x float64) (r1 float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, s, w, z Tdouble_t + _, _, _, _ = r, s, w, z + /* Try to optimize for parallel evaluation as in __tandf.c. */ + z = x * x + w = z * z + r = _S31 + z*_S41 + s = z * x + return float32(x + s*(_S11+z*_S21) + s*w*r) +} + +var _T = [13]float64{ + 0: float64(0.3333333333333341), + 1: float64(0.13333333333320124), + 2: float64(0.05396825397622605), + 3: float64(0.021869488294859542), + 4: float64(0.0088632398235993), + 5: float64(0.0035920791075913124), + 6: float64(0.0014562094543252903), + 7: float64(0.0005880412408202641), + 8: float64(0.0002464631348184699), + 9: float64(7.817944429395571e-05), + 10: float64(7.140724913826082e-05), + 11: -Float64FromFloat64(1.8558637485527546e-05), + 12: float64(2.590730518636337e-05), +} +var _pio42 = float64(0.7853981633974483) /* 3FE921FB, 54442D18 */ +var _pio4lo = float64(3.061616997868383e-17) /* 3C81A626, 33145C07 */ + +func X__tan(tls *TLS, x float64, y float64, odd int32) (r1 float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v odd=%v, (%v:)", tls, x, y, odd, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var a, r, s, v, w, z, v1, v3 Tdouble_t + var a0, w0 float64 + var big, sign int32 + var hx Tuint32_t + var v2, v4 Tuint64_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, a0, big, hx, r, s, sign, v, w, w0, z, v1, v2, v3, v4 + hx = uint32(*(*Tuint64_t)(unsafe.Pointer(&x)) >> int32(32)) + big = BoolInt32(hx&uint32(0x7fffffff) >= uint32(0x3FE59428)) /* |x| >= 0.6744 */ + if big != 0 { + sign = int32(hx >> int32(31)) + if sign != 0 { + x = -x + y = -y + } + x = _pio42 - x + (_pio4lo - y) + y = float64(0) + } + z = x * x + w = z * z + /* + * Break x^5*(T[1]+x^2*T[2]+...) into + * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) + + * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12])) + */ + r = _T[int32(1)] + w*(_T[int32(3)]+w*(_T[int32(5)]+w*(_T[int32(7)]+w*(_T[int32(9)]+w*_T[int32(11)])))) + v = z * (_T[int32(2)] + w*(_T[int32(4)]+w*(_T[int32(6)]+w*(_T[int32(8)]+w*(_T[int32(10)]+w*_T[int32(12)]))))) + s = z * x + r = y + z*(s*(r+v)+y) + s*_T[0] + w = x + r + if big != 0 { + s = float64(int32(1) - int32(2)*odd) + v = s - float64(2)*(x+(r-w*w/(w+s))) + if sign != 0 { + v1 = -v + } else { + v1 = v + } + return v1 + } + if !(odd != 0) { + return w + } + /* -1.0/(x+r) has up to 2ulp error, so compute it accurately */ + w0 = w + v2 = *(*Tuint64_t)(unsafe.Pointer(&w0))>>Int32FromInt32(32)<>Int32FromInt32(32)< %v", r1) }() + } + var r, s, t, u, w, z Tdouble_t + var v1 float64 + _, _, _, _, _, _, _ = r, s, t, u, w, z, v1 + z = x * x + /* + * Split up the polynomial into small independent terms to give + * opportunities for parallel evaluation. The chosen splitting is + * micro-optimized for Athlons (XP, X64). It costs 2 multiplications + * relative to Horner's method on sequential machines. + * + * We add the small terms from lowest degree up for efficiency on + * non-sequential machines (the lowest degree terms tend to be ready + * earlier). Apart from this, we don't care about order of + * operations, and don't need to to care since we have precision to + * spare. However, the chosen splitting is good for accuracy too, + * and would give results as accurate as Horner's method if the + * small terms were added from highest degree down. + */ + r = _T1[int32(4)] + z*_T1[int32(5)] + t = _T1[int32(2)] + z*_T1[int32(3)] + w = z * z + s = z * x + u = _T1[0] + z*_T1[int32(1)] + r = x + s*u + s*w*(t+w*r) + if odd != 0 { + v1 = -Float64FromFloat64(1) / r + } else { + v1 = r + } + return float32(v1) +} + +var _pio2_hi = float64(1.5707963267948966) /* 0x3FF921FB, 0x54442D18 */ +var _pio2_lo = float64(6.123233995736766e-17) /* 0x3C91A626, 0x33145C07 */ +var _pS0 = float64(0.16666666666666666) /* 0x3FC55555, 0x55555555 */ +var _pS1 = -Float64FromFloat64(0.3255658186224009) /* 0xBFD4D612, 0x03EB6F7D */ +var _pS2 = float64(0.20121253213486293) /* 0x3FC9C155, 0x0E884455 */ +var _pS3 = -Float64FromFloat64(0.04005553450067941) /* 0xBFA48228, 0xB5688F3B */ +var _pS4 = float64(0.0007915349942898145) /* 0x3F49EFE0, 0x7501B288 */ +var _pS5 = float64(3.479331075960212e-05) /* 0x3F023DE1, 0x0DFDF709 */ +var _qS1 = -Float64FromFloat64(2.403394911734414) /* 0xC0033A27, 0x1C8A2D4B */ +var _qS2 = float64(2.0209457602335057) /* 0x40002AE5, 0x9C598AC8 */ +var _qS3 = -Float64FromFloat64(0.6882839716054533) /* 0xBFE6066C, 0x1B8D0159 */ +var _qS4 = float64(0.07703815055590194) /* 0x3FB3B8C5, 0xB12E9282 */ + +func _R(tls *TLS, z float64) (r float64) { + var p, q Tdouble_t + _, _ = p, q + p = z * (_pS0 + z*(_pS1+z*(_pS2+z*(_pS3+z*(_pS4+z*_pS5))))) + q = float64(1) + z*(_qS1+z*(_qS2+z*(_qS3+z*_qS4))) + return p / q +} + +func Xacos(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + var c, df, s, w, z float64 + var hx, ix, lx Tuint32_t + var v1 Tuint64_t + _, _, _, _, _, _, _, _, _ = c, df, hx, ix, lx, s, w, z, v1 + hx = uint32(*(*Tuint64_t)(unsafe.Pointer(&x)) >> int32(32)) + ix = hx & uint32(0x7fffffff) + /* |x| >= 1 or nan */ + if ix >= uint32(0x3ff00000) { + lx = uint32(*(*Tuint64_t)(unsafe.Pointer(&x))) + if ix-uint32(0x3ff00000)|lx == uint32(0) { + /* acos(1)=0, acos(-1)=pi */ + if hx>>int32(31) != 0 { + return Float64FromInt32(2)*_pio2_hi + Float64FromFloat32(7.52316384526264e-37) + } + return Float64FromInt32(0) + } + return Float64FromInt32(0) / (x - x) + } + /* |x| < 0.5 */ + if ix < uint32(0x3fe00000) { + if ix <= uint32(0x3c600000) { /* |x| < 2**-57 */ + return _pio2_hi + Float64FromFloat32(7.52316384526264e-37) + } + return _pio2_hi - (x - (_pio2_lo - x*_R(tls, x*x))) + } + /* x < -0.5 */ + if hx>>int32(31) != 0 { + z = (float64(1) + x) * float64(0.5) + s = Xsqrt(tls, z) + w = _R(tls, z)*s - _pio2_lo + return Float64FromInt32(2) * (_pio2_hi - (s + w)) + } + /* x > 0.5 */ + z = (float64(1) - x) * float64(0.5) + s = Xsqrt(tls, z) + df = s + v1 = *(*Tuint64_t)(unsafe.Pointer(&df))>>Int32FromInt32(32)< %v", r) }() + } + var c, df, s, w, z float32 + var hx, ix, v1 Tuint32_t + _, _, _, _, _, _, _, _ = c, df, hx, ix, s, w, z, v1 + hx = *(*Tuint32_t)(unsafe.Pointer(&x)) + ix = hx & uint32(0x7fffffff) + /* |x| >= 1 or nan */ + if ix >= uint32(0x3f800000) { + if ix == uint32(0x3f800000) { + if hx>>int32(31) != 0 { + return Float32FromInt32(2)*_pio2_hi1 + Float32FromFloat32(7.52316384526264e-37) + } + return Float32FromInt32(0) + } + return Float32FromInt32(0) / (x - x) + } + /* |x| < 0.5 */ + if ix < uint32(0x3f000000) { + if ix <= uint32(0x32800000) { /* |x| < 2**-26 */ + return _pio2_hi1 + Float32FromFloat32(7.52316384526264e-37) + } + return _pio2_hi1 - (x - (_pio2_lo1 - x*_R1(tls, x*x))) + } + /* x < -0.5 */ + if hx>>int32(31) != 0 { + z = (Float32FromInt32(1) + x) * Float32FromFloat32(0.5) + s = Xsqrtf(tls, z) + w = _R1(tls, z)*s - _pio2_lo1 + return Float32FromInt32(2) * (_pio2_hi1 - (s + w)) + } + /* x > 0.5 */ + z = (Float32FromInt32(1) - x) * Float32FromFloat32(0.5) + s = Xsqrtf(tls, z) + hx = *(*Tuint32_t)(unsafe.Pointer(&s)) + v1 = hx & uint32(0xfffff000) + df = *(*float32)(unsafe.Pointer(&v1)) + c = (z - df*df) / (s + df) + w = _R1(tls, z)*s + c + return Float32FromInt32(2) * (df + w) +} + +// C documentation +// +// /* acosh(x) = log(x + sqrt(x*x-1)) */ +func Xacosh(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e uint32 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _ = e + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x + e = uint32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(52) & uint64(0x7ff)) + /* x < 1 domain error is handled in the called functions */ + if e < uint32(Int32FromInt32(0x3ff)+Int32FromInt32(1)) { + /* |x| < 2, up to 2ulp error in [1,1.125] */ + return Xlog1p(tls, x-Float64FromInt32(1)+Xsqrt(tls, (x-Float64FromInt32(1))*(x-Float64FromInt32(1))+Float64FromInt32(2)*(x-Float64FromInt32(1)))) + } + if e < uint32(Int32FromInt32(0x3ff)+Int32FromInt32(26)) { + /* |x| < 0x1p26 */ + return Xlog(tls, Float64FromInt32(2)*x-Float64FromInt32(1)/(x+Xsqrt(tls, x*x-Float64FromInt32(1)))) + } + /* |x| >= 0x1p26 or nan */ + return Xlog(tls, x) + float64(0.6931471805599453) +} + +// C documentation +// +// /* acosh(x) = log(x + sqrt(x*x-1)) */ +func Xacoshf(tls *TLS, x float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var a Tuint32_t + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _ = a + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x + a = *(*Tuint32_t)(unsafe.Pointer(bp)) & uint32(0x7fffffff) + if a < uint32(Int32FromInt32(0x3f800000)+Int32FromInt32(1)<= 0x1p12 or x <= -2 or nan */ + return Xlogf(tls, x) + Float32FromFloat32(0.6931471805599453) +} + +func Xacoshl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xacosh(tls, x) +} + +func Xacosl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xacos(tls, x) +} + +var _pio2_hi2 = float64(1.5707963267948966) /* 0x3FF921FB, 0x54442D18 */ +var _pio2_lo2 = float64(6.123233995736766e-17) /* 0x3C91A626, 0x33145C07 */ +/* coefficients for R(x^2) */ +var _pS02 = float64(0.16666666666666666) /* 0x3FC55555, 0x55555555 */ +var _pS12 = -Float64FromFloat64(0.3255658186224009) /* 0xBFD4D612, 0x03EB6F7D */ +var _pS22 = float64(0.20121253213486293) /* 0x3FC9C155, 0x0E884455 */ +var _pS31 = -Float64FromFloat64(0.04005553450067941) /* 0xBFA48228, 0xB5688F3B */ +var _pS41 = float64(0.0007915349942898145) /* 0x3F49EFE0, 0x7501B288 */ +var _pS51 = float64(3.479331075960212e-05) /* 0x3F023DE1, 0x0DFDF709 */ +var _qS12 = -Float64FromFloat64(2.403394911734414) /* 0xC0033A27, 0x1C8A2D4B */ +var _qS21 = float64(2.0209457602335057) /* 0x40002AE5, 0x9C598AC8 */ +var _qS31 = -Float64FromFloat64(0.6882839716054533) /* 0xBFE6066C, 0x1B8D0159 */ +var _qS41 = float64(0.07703815055590194) /* 0x3FB3B8C5, 0xB12E9282 */ + +func _R2(tls *TLS, z float64) (r float64) { + var p, q Tdouble_t + _, _ = p, q + p = z * (_pS02 + z*(_pS12+z*(_pS22+z*(_pS31+z*(_pS41+z*_pS51))))) + q = float64(1) + z*(_qS12+z*(_qS21+z*(_qS31+z*_qS41))) + return p / q +} + +func Xasin(tls *TLS, x float64) (r1 float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var c, f, r, s, z float64 + var hx, ix, lx Tuint32_t + var v1 Tuint64_t + _, _, _, _, _, _, _, _, _ = c, f, hx, ix, lx, r, s, z, v1 + hx = uint32(*(*Tuint64_t)(unsafe.Pointer(&x)) >> int32(32)) + ix = hx & uint32(0x7fffffff) + /* |x| >= 1 or nan */ + if ix >= uint32(0x3ff00000) { + lx = uint32(*(*Tuint64_t)(unsafe.Pointer(&x))) + if ix-uint32(0x3ff00000)|lx == uint32(0) { + /* asin(1) = +-pi/2 with inexact */ + return x*_pio2_hi2 + Float64FromFloat32(7.52316384526264e-37) + } + return Float64FromInt32(0) / (x - x) + } + /* |x| < 0.5 */ + if ix < uint32(0x3fe00000) { + /* if 0x1p-1022 <= |x| < 0x1p-26, avoid raising underflow */ + if ix < uint32(0x3e500000) && ix >= uint32(0x00100000) { + return x + } + return x + x*_R2(tls, x*x) + } + /* 1 > |x| >= 0.5 */ + z = (Float64FromInt32(1) - Xfabs(tls, x)) * float64(0.5) + s = Xsqrt(tls, z) + r = _R2(tls, z) + if ix >= uint32(0x3fef3333) { /* if |x| > 0.975 */ + x = _pio2_hi2 - (Float64FromInt32(2)*(s+s*r) - _pio2_lo2) + } else { + /* f+c = sqrt(z) */ + f = s + v1 = *(*Tuint64_t)(unsafe.Pointer(&f))>>Int32FromInt32(32)<>int32(31) != 0 { + return -x + } + return x +} + +var _pio2 = float64(1.5707963267948966) + +/* coefficients for R(x^2) */ +var _pS03 = float32(0.16666586697) +var _pS13 = float32(-Float64FromFloat64(0.042743422091)) +var _pS23 = float32(-Float64FromFloat64(0.008656363003)) +var _qS13 = float32(-Float64FromFloat64(0.7066296339)) + +func _R3(tls *TLS, z float32) (r float32) { + var p, q Tfloat_t + _, _ = p, q + p = z * (_pS03 + z*(_pS13+z*_pS23)) + q = Float32FromFloat32(1) + z*_qS13 + return p / q +} + +func Xasinf(tls *TLS, x float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + var hx, ix Tuint32_t + var s float64 + var z float32 + _, _, _, _ = hx, ix, s, z + hx = *(*Tuint32_t)(unsafe.Pointer(&x)) + ix = hx & uint32(0x7fffffff) + if ix >= uint32(0x3f800000) { /* |x| >= 1 */ + if ix == uint32(0x3f800000) { /* |x| == 1 */ + return float32(float64(x)*_pio2 + Float64FromFloat32(7.52316384526264e-37)) + } /* asin(+-1) = +-pi/2 with inexact */ + return Float32FromInt32(0) / (x - x) /* asin(|x|>1) is NaN */ + } + if ix < uint32(0x3f000000) { /* |x| < 0.5 */ + /* if 0x1p-126 <= |x| < 0x1p-12, avoid raising underflow */ + if ix < uint32(0x39800000) && ix >= uint32(0x00800000) { + return x + } + return x + x*_R3(tls, x*x) + } + /* 1 > |x| >= 0.5 */ + z = (Float32FromInt32(1) - Xfabsf(tls, x)) * Float32FromFloat32(0.5) + s = Xsqrt(tls, float64(z)) + x = float32(_pio2 - Float64FromInt32(2)*(s+s*float64(_R3(tls, z)))) + if hx>>int32(31) != 0 { + return -x + } + return x +} + +// C documentation +// +// /* asinh(x) = sign(x)*log(|x|+sqrt(x*x+1)) ~= x - x^3/6 + o(x^5) */ +func Xasinh(tls *TLS, x3 float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e, s uint32 + var y float32 + var y1, y2, v1 float64 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _, _ = e, s, y, y1, y2, v1 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x3 + e = uint32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(52) & uint64(0x7ff)) + s = uint32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(63)) + /* |x| */ + *(*Tuint64_t)(unsafe.Pointer(bp)) &= uint64(-Int32FromInt32(1)) / Uint64FromInt32(2) + x3 = *(*float64)(unsafe.Pointer(bp)) + if e >= uint32(Int32FromInt32(0x3ff)+Int32FromInt32(26)) { + /* |x| >= 0x1p26 or inf or nan */ + x3 = Xlog(tls, x3) + float64(0.6931471805599453) + } else { + if e >= uint32(Int32FromInt32(0x3ff)+Int32FromInt32(1)) { + /* |x| >= 2 */ + x3 = Xlog(tls, Float64FromInt32(2)*x3+Float64FromInt32(1)/(Xsqrt(tls, x3*x3+Float64FromInt32(1))+x3)) + } else { + if e >= uint32(Int32FromInt32(0x3ff)-Int32FromInt32(26)) { + /* |x| >= 0x1p-26, up to 1.6ulp error in [0.125,0.5] */ + x3 = Xlog1p(tls, x3+x3*x3/(Xsqrt(tls, x3*x3+Float64FromInt32(1))+Float64FromInt32(1))) + } else { + /* |x| < 0x1p-26, raise inexact if x != 0 */ + if uint64(8) == uint64(4) { + y = float32(x3 + Float64FromFloat32(1.329227995784916e+36)) + } else { + if uint64(8) == uint64(8) { + y1 = x3 + Float64FromFloat32(1.329227995784916e+36) + } else { + y2 = x3 + Float64FromFloat32(1.329227995784916e+36) + } + } + } + } + } + if s != 0 { + v1 = -x3 + } else { + v1 = x3 + } + return v1 +} + +// C documentation +// +// /* asinh(x) = sign(x)*log(|x|+sqrt(x*x+1)) ~= x - x^3/6 + o(x^5) */ +func Xasinhf(tls *TLS, x3 float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var i Tuint32_t + var s uint32 + var y, v1 float32 + var y1, y2 float64 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _, _ = i, s, y, y1, y2, v1 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x3 + i = *(*Tuint32_t)(unsafe.Pointer(bp)) & uint32(0x7fffffff) + s = *(*Tuint32_t)(unsafe.Pointer(bp)) >> int32(31) + /* |x| */ + *(*Tuint32_t)(unsafe.Pointer(bp)) = i + x3 = *(*float32)(unsafe.Pointer(bp)) + if i >= uint32(Int32FromInt32(0x3f800000)+Int32FromInt32(12)<= 0x1p12 or inf or nan */ + x3 = Xlogf(tls, x3) + Float32FromFloat32(0.6931471805599453) + } else { + if i >= uint32(Int32FromInt32(0x3f800000)+Int32FromInt32(1)<= 2 */ + x3 = Xlogf(tls, Float32FromInt32(2)*x3+Float32FromInt32(1)/(Xsqrtf(tls, x3*x3+Float32FromInt32(1))+x3)) + } else { + if i >= uint32(Int32FromInt32(0x3f800000)-Int32FromInt32(12)<= 0x1p-12, up to 1.6ulp error in [0.125,0.5] */ + x3 = Xlog1pf(tls, x3+x3*x3/(Xsqrtf(tls, x3*x3+Float32FromInt32(1))+Float32FromInt32(1))) + } else { + /* |x| < 0x1p-12, raise inexact if x!=0 */ + if uint64(4) == uint64(4) { + y = x3 + Float32FromFloat32(1.329227995784916e+36) + } else { + if uint64(4) == uint64(8) { + y1 = float64(x3 + Float32FromFloat32(1.329227995784916e+36)) + } else { + y2 = float64(x3 + Float32FromFloat32(1.329227995784916e+36)) + } + } + } + } + } + if s != 0 { + v1 = -x3 + } else { + v1 = x3 + } + return v1 +} + +func Xasinhl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xasinh(tls, x) +} + +func Xasinl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xasin(tls, x) +} + +var _atanhi = [4]float64{ + 0: float64(0.4636476090008061), + 1: float64(0.7853981633974483), + 2: float64(0.982793723247329), + 3: float64(1.5707963267948966), +} + +var _atanlo = [4]float64{ + 0: float64(2.2698777452961687e-17), + 1: float64(3.061616997868383e-17), + 2: float64(1.3903311031230998e-17), + 3: float64(6.123233995736766e-17), +} + +var _aT = [11]float64{ + 0: float64(0.3333333333333293), + 1: -Float64FromFloat64(0.19999999999876483), + 2: float64(0.14285714272503466), + 3: -Float64FromFloat64(0.11111110405462356), + 4: float64(0.09090887133436507), + 5: -Float64FromFloat64(0.0769187620504483), + 6: float64(0.06661073137387531), + 7: -Float64FromFloat64(0.058335701337905735), + 8: float64(0.049768779946159324), + 9: -Float64FromFloat64(0.036531572744216916), + 10: float64(0.016285820115365782), +} + +func Xatan(tls *TLS, x3 float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var id int32 + var ix, sign Tuint32_t + var s1, s2, w, z, v3, v4 Tdouble_t + var y float32 + var y1, y2 float64 + var v1 uint64 + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + _, _, _, _, _, _, _, _, _, _, _, _, _ = id, ix, s1, s2, sign, w, y, y1, y2, z, v1, v3, v4 + ix = uint32(*(*Tuint64_t)(unsafe.Pointer(&x3)) >> int32(32)) + sign = ix >> int32(31) + ix &= uint32(0x7fffffff) + if ix >= uint32(0x44100000) { /* if |x| >= 2^66 */ + *(*float64)(unsafe.Pointer(bp)) = x3 + v1 = *(*uint64)(unsafe.Pointer(bp)) + goto _2 + _2: + if BoolInt32(v1&(-Uint64FromUint64(1)>>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)< %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var __u1, __u2 Tuint64_t + var ix, iy, lx, ly, m Tuint32_t + var z, v6, v7 float64 + var v1, v3 uint64 + var v5 bool + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + _, _, _, _, _, _, _, _, _, _, _, _, _ = __u1, __u2, ix, iy, lx, ly, m, z, v1, v3, v5, v6, v7 + *(*float64)(unsafe.Pointer(bp)) = x + v1 = *(*uint64)(unsafe.Pointer(bp)) + goto _2 +_2: + ; + if v5 = BoolInt32(v1&(-Uint64FromUint64(1)>>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)<>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)<> int32(32)) + lx = uint32(__u1) + __u2 = *(*Tuint64_t)(unsafe.Pointer(&y)) + iy = uint32(__u2 >> int32(32)) + ly = uint32(__u2) + if ix-uint32(0x3ff00000)|lx == uint32(0) { /* x = 1.0 */ + return Xatan(tls, y) + } + m = iy>>Int32FromInt32(31)&uint32(1) | ix>>Int32FromInt32(30)&uint32(2) /* 2*sign(x)+sign(y) */ + ix = ix & uint32(0x7fffffff) + iy = iy & uint32(0x7fffffff) + /* when y = 0 */ + if iy|ly == uint32(0) { + switch m { + case uint32(0): + fallthrough + case uint32(1): + return y /* atan(+-0,+anything)=+-0 */ + case uint32(2): + return _pi /* atan(+0,-anything) = pi */ + case uint32(3): + return -_pi /* atan(-0,-anything) =-pi */ + } + } + /* when x = 0 */ + if ix|lx == uint32(0) { + if m&uint32(1) != 0 { + v6 = -_pi / Float64FromInt32(2) + } else { + v6 = _pi / Float64FromInt32(2) + } + return v6 + } + /* when x is INF */ + if ix == uint32(0x7ff00000) { + if iy == uint32(0x7ff00000) { + switch m { + case uint32(0): + return _pi / Float64FromInt32(4) /* atan(+INF,+INF) */ + case uint32(1): + return -_pi / Float64FromInt32(4) /* atan(-INF,+INF) */ + case uint32(2): + return Float64FromInt32(3) * _pi / Float64FromInt32(4) /* atan(+INF,-INF) */ + case uint32(3): + return float64(-Int32FromInt32(3)) * _pi / Float64FromInt32(4) /* atan(-INF,-INF) */ + } + } else { + switch m { + case uint32(0): + return float64(0) /* atan(+...,+INF) */ + case uint32(1): + return -Float64FromFloat64(0) /* atan(-...,+INF) */ + case uint32(2): + return _pi /* atan(+...,-INF) */ + case uint32(3): + return -_pi /* atan(-...,-INF) */ + } + } + } + /* |y/x| > 0x1p64 */ + if ix+uint32(Int32FromInt32(64)< %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ix, iy, m Tuint32_t + var z, v6, v7 float32 + var v1, v3 uint32 + var v5 bool + var _ /* __u at bp+0 */ struct { + F__i [0]uint32 + F__f float32 + } + _, _, _, _, _, _, _, _, _ = ix, iy, m, z, v1, v3, v5, v6, v7 + *(*float32)(unsafe.Pointer(bp)) = x + v1 = *(*uint32)(unsafe.Pointer(bp)) + goto _2 +_2: + ; + if v5 = BoolInt32(v1&uint32(0x7fffffff) > uint32(0x7f800000)) != 0; !v5 { + *(*float32)(unsafe.Pointer(bp)) = y + v3 = *(*uint32)(unsafe.Pointer(bp)) + goto _4 + _4: + } + if v5 || BoolInt32(v3&uint32(0x7fffffff) > uint32(0x7f800000)) != 0 { + return x + y + } + ix = *(*Tuint32_t)(unsafe.Pointer(&x)) + iy = *(*Tuint32_t)(unsafe.Pointer(&y)) + if ix == uint32(0x3f800000) { /* x=1.0 */ + return Xatanf(tls, y) + } + m = iy>>Int32FromInt32(31)&uint32(1) | ix>>Int32FromInt32(30)&uint32(2) /* 2*sign(x)+sign(y) */ + ix &= uint32(0x7fffffff) + iy &= uint32(0x7fffffff) + /* when y = 0 */ + if iy == uint32(0) { + switch m { + case uint32(0): + fallthrough + case uint32(1): + return y /* atan(+-0,+anything)=+-0 */ + case uint32(2): + return _pi1 /* atan(+0,-anything) = pi */ + case uint32(3): + return -_pi1 /* atan(-0,-anything) =-pi */ + } + } + /* when x = 0 */ + if ix == uint32(0) { + if m&uint32(1) != 0 { + v6 = -_pi1 / Float32FromInt32(2) + } else { + v6 = _pi1 / Float32FromInt32(2) + } + return v6 + } + /* when x is INF */ + if ix == uint32(0x7f800000) { + if iy == uint32(0x7f800000) { + switch m { + case uint32(0): + return _pi1 / Float32FromInt32(4) /* atan(+INF,+INF) */ + case uint32(1): + return -_pi1 / Float32FromInt32(4) /* atan(-INF,+INF) */ + case uint32(2): + return Float32FromInt32(3) * _pi1 / Float32FromInt32(4) /*atan(+INF,-INF)*/ + case uint32(3): + return float32(-Int32FromInt32(3)) * _pi1 / Float32FromInt32(4) /*atan(-INF,-INF)*/ + } + } else { + switch m { + case uint32(0): + return Float32FromFloat32(0) /* atan(+...,+INF) */ + case uint32(1): + return -Float32FromFloat32(0) /* atan(-...,+INF) */ + case uint32(2): + return _pi1 /* atan(+...,-INF) */ + case uint32(3): + return -_pi1 /* atan(-...,-INF) */ + } + } + } + /* |y/x| > 0x1p26 */ + if ix+uint32(Int32FromInt32(26)< %v", r) }() + } + return Xatan2(tls, y, x) +} + +var _atanhi1 = [4]float32{ + 0: float32(0.46364760399), + 1: float32(0.78539812565), + 2: float32(0.98279368877), + 3: float32(1.5707962513), +} + +var _atanlo1 = [4]float32{ + 0: float32(5.012158244e-09), + 1: float32(3.7748947079e-08), + 2: float32(3.447321717e-08), + 3: float32(7.5497894159e-08), +} + +var _aT1 = [5]float32{ + 0: float32(0.33333328366), + 1: float32(-Float64FromFloat64(0.19999158382)), + 2: float32(0.14253635705), + 3: float32(-Float64FromFloat64(0.10648017377)), + 4: float32(0.061687607318), +} + +func Xatanf(tls *TLS, x3 float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var id int32 + var ix, sign Tuint32_t + var s1, s2, w, z, v3, v4 Tfloat_t + var y float32 + var y1, y2 float64 + var v1 uint32 + var _ /* __u at bp+0 */ struct { + F__i [0]uint32 + F__f float32 + } + _, _, _, _, _, _, _, _, _, _, _, _, _ = id, ix, s1, s2, sign, w, y, y1, y2, z, v1, v3, v4 + ix = *(*Tuint32_t)(unsafe.Pointer(&x3)) + sign = ix >> int32(31) + ix &= uint32(0x7fffffff) + if ix >= uint32(0x4c800000) { /* if |x| >= 2**26 */ + *(*float32)(unsafe.Pointer(bp)) = x3 + v1 = *(*uint32)(unsafe.Pointer(bp)) + goto _2 + _2: + if BoolInt32(v1&uint32(0x7fffffff) > uint32(0x7f800000)) != 0 { + return x3 + } + z = _atanhi1[int32(3)] + Float32FromFloat32(7.52316384526264e-37) + if sign != 0 { + v3 = -z + } else { + v3 = z + } + return v3 + } + if ix < uint32(0x3ee00000) { /* |x| < 0.4375 */ + if ix < uint32(0x39800000) { /* |x| < 2**-12 */ + if ix < uint32(0x00800000) { + /* raise underflow for subnormal x */ + if uint64(4) == uint64(4) { + y = x3 * x3 + } else { + if uint64(4) == uint64(8) { + y1 = float64(x3 * x3) + } else { + y2 = float64(x3 * x3) + } + } + } + return x3 + } + id = -int32(1) + } else { + x3 = Xfabsf(tls, x3) + if ix < uint32(0x3f980000) { /* |x| < 1.1875 */ + if ix < uint32(0x3f300000) { /* 7/16 <= |x| < 11/16 */ + id = 0 + x3 = (Float32FromFloat32(2)*x3 - Float32FromFloat32(1)) / (Float32FromFloat32(2) + x3) + } else { /* 11/16 <= |x| < 19/16 */ + id = int32(1) + x3 = (x3 - Float32FromFloat32(1)) / (x3 + Float32FromFloat32(1)) + } + } else { + if ix < uint32(0x401c0000) { /* |x| < 2.4375 */ + id = int32(2) + x3 = (x3 - Float32FromFloat32(1.5)) / (Float32FromFloat32(1) + Float32FromFloat32(1.5)*x3) + } else { /* 2.4375 <= |x| < 2**26 */ + id = int32(3) + x3 = -Float32FromFloat32(1) / x3 + } + } + } + /* end of argument reduction */ + z = x3 * x3 + w = z * z + /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */ + s1 = z * (_aT1[0] + w*(_aT1[int32(2)]+w*_aT1[int32(4)])) + s2 = w * (_aT1[int32(1)] + w*_aT1[int32(3)]) + if id < 0 { + return x3 - x3*(s1+s2) + } + z = _atanhi1[id] - (x3*(s1+s2) - _atanlo1[id] - x3) + if sign != 0 { + v4 = -z + } else { + v4 = z + } + return v4 +} + +// C documentation +// +// /* atanh(x) = log((1+x)/(1-x))/2 = log1p(2x/(1-x))/2 ~= x + x^3/3 + o(x^5) */ +func Xatanh(tls *TLS, x3 float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e, s uint32 + var y float32 + var y1, y2 float64 + var y3, v1 Tdouble_t + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _, _, _ = e, s, y, y1, y2, y3, v1 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x3 + e = uint32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(52) & uint64(0x7ff)) + s = uint32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(63)) + /* |x| */ + *(*Tuint64_t)(unsafe.Pointer(bp)) &= uint64(-Int32FromInt32(1)) / Uint64FromInt32(2) + y3 = *(*float64)(unsafe.Pointer(bp)) + if e < uint32(Int32FromInt32(0x3ff)-Int32FromInt32(1)) { + if e < uint32(Int32FromInt32(0x3ff)-Int32FromInt32(32)) { + /* handle underflow */ + if e == uint32(0) { + if uint64(4) == uint64(4) { + y = float32(y3) + } else { + if uint64(4) == uint64(8) { + y1 = float64(float32(y3)) + } else { + y2 = float64(float32(y3)) + } + } + } + } else { + /* |x| < 0.5, up to 1.7ulp error */ + y3 = float64(0.5) * Xlog1p(tls, Float64FromInt32(2)*y3+Float64FromInt32(2)*y3*y3/(Float64FromInt32(1)-y3)) + } + } else { + /* avoid overflow */ + y3 = float64(0.5) * Xlog1p(tls, Float64FromInt32(2)*(y3/(Float64FromInt32(1)-y3))) + } + if s != 0 { + v1 = -y3 + } else { + v1 = y3 + } + return v1 +} + +// C documentation +// +// /* atanh(x) = log((1+x)/(1-x))/2 = log1p(2x/(1-x))/2 ~= x + x^3/3 + o(x^5) */ +func Xatanhf(tls *TLS, x3 float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var s uint32 + var y float32 + var y1, y2 float64 + var y3, v1 Tfloat_t + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _, _ = s, y, y1, y2, y3, v1 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x3 + s = *(*Tuint32_t)(unsafe.Pointer(bp)) >> int32(31) + /* |x| */ + *(*Tuint32_t)(unsafe.Pointer(bp)) &= uint32(0x7fffffff) + y3 = *(*float32)(unsafe.Pointer(bp)) + if *(*Tuint32_t)(unsafe.Pointer(bp)) < uint32(Int32FromInt32(0x3f800000)-Int32FromInt32(1)< %v", r) }() + } + return Xatanh(tls, x) +} + +func Xatanl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xatan(tls, x) +} + +var _B1 = uint32(715094163) /* B1 = (1023-1023/3-0.03306235651)*2**20 */ +var _B2 = uint32(696219795) /* B2 = (1023-1023/3-54/3-0.03306235651)*2**20 */ + +// C documentation +// +// /* |1/cbrt(x) - p(x)| < 2**-23.5 (~[-7.93e-8, 7.929e-8]). */ + +var _P0 = float64(1.87595182427177) /* 0x3ffe03e6, 0x0f61e692 */ +var _P1 = -Float64FromFloat64(1.8849797954337717) /* 0xbffe28e0, 0x92f02420 */ +var _P2 = float64(1.6214297201053545) /* 0x3ff9f160, 0x4a49d6c2 */ +var _P3 = -Float64FromFloat64(0.758397934778766) /* 0xbfe844cb, 0xbee751d9 */ +var _P4 = float64(0.14599619288661245) /* 0x3fc2b000, 0xd4e4edd7 */ + +func Xcbrt(tls *TLS, x float64) (r1 float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var hx Tuint32_t + var r, s, t, w Tdouble_t + var p1 uintptr + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _, _ = hx, r, s, t, w, p1 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x + hx = uint32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(32) & uint64(0x7fffffff)) + if hx >= uint32(0x7ff00000) { /* cbrt(NaN,INF) is itself */ + return x + x + } + /* + * Rough cbrt to 5 bits: + * cbrt(2**e*(1+m) ~= 2**(e/3)*(1+(e%3+m)/3) + * where e is integral and >= 0, m is real and in [0, 1), and "/" and + * "%" are integer division and modulus with rounding towards minus + * infinity. The RHS is always >= the LHS and has a maximum relative + * error of about 1 in 16. Adding a bias of -0.03306235651 to the + * (e%3+m)/3 term reduces the error to about 1 in 32. With the IEEE + * floating point representation, for finite positive normal values, + * ordinary integer divison of the value in bits magically gives + * almost exactly the RHS of the above provided we first subtract the + * exponent bias (1023 for doubles) and later add it back. We do the + * subtraction virtually to keep e >= 0 so that ordinary integer + * division rounds towards minus infinity; this is also efficient. + */ + if hx < uint32(0x00100000) { /* zero or subnormal? */ + *(*float64)(unsafe.Pointer(bp)) = x * float64(1.8014398509481984e+16) + hx = uint32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(32) & uint64(0x7fffffff)) + if hx == uint32(0) { + return x + } /* cbrt(0) is itself */ + hx = hx/uint32(3) + _B2 + } else { + hx = hx/uint32(3) + _B1 + } + p1 = bp + *(*Tuint64_t)(unsafe.Pointer(p1)) = *(*Tuint64_t)(unsafe.Pointer(p1)) & (Uint64FromUint64(1) << Int32FromInt32(63)) + *(*Tuint64_t)(unsafe.Pointer(bp)) |= uint64(hx) << int32(32) + t = *(*float64)(unsafe.Pointer(bp)) + /* + * New cbrt to 23 bits: + * cbrt(x) = t*cbrt(x/t**3) ~= t*P(t**3/x) + * where P(r) is a polynomial of degree 4 that approximates 1/cbrt(r) + * to within 2**-23.5 when |r - 1| < 1/10. The rough approximation + * has produced t such than |t/cbrt(x) - 1| ~< 1/32, and cubing this + * gives us bounds for r = t**3/x. + * + * Try to optimize for parallel evaluation as in __tanf.c. + */ + r = t * t * (t / x) + t = t * (_P0 + r*(_P1+r*_P2) + r*r*r*(_P3+r*_P4)) + /* + * Round t away from zero to 23 bits (sloppily except for ensuring that + * the result is larger in magnitude than cbrt(x) but not much more than + * 2 23-bit ulps larger). With rounding towards zero, the error bound + * would be ~5/6 instead of ~4/6. With a maximum error of 2 23-bit ulps + * in the rounded t, the infinite-precision error in the Newton + * approximation barely affects third digit in the final error + * 0.667; the error in the rounded t can be up to about 3 23-bit ulps + * before the final error is larger than 0.667 ulps. + */ + *(*float64)(unsafe.Pointer(bp)) = t + *(*Tuint64_t)(unsafe.Pointer(bp)) = (*(*Tuint64_t)(unsafe.Pointer(bp)) + Uint64FromUint32(0x80000000)) & uint64(0xffffffffc0000000) + t = *(*float64)(unsafe.Pointer(bp)) + /* one step Newton iteration to 53 bits with error < 0.667 ulps */ + s = t * t /* t*t is exact */ + r = x / s /* error <= 0.5 ulps; |r| < |t| */ + w = t + t /* t+t is exact */ + r = (r - t) / (w + r) /* r-t is exact; w+r ~= 3*t */ + t = t + t*r /* error <= 0.5 + 0.5/3 + epsilon */ + return t +} + +var _B11 = uint32(709958130) /* B1 = (127-127.0/3-0.03306235651)*2**23 */ +var _B21 = uint32(642849266) /* B2 = (127-127.0/3-24/3-0.03306235651)*2**23 */ + +func Xcbrtf(tls *TLS, x float32) (r1 float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var T, r Tdouble_t + var hx Tuint32_t + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _ = T, hx, r + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x + hx = *(*Tuint32_t)(unsafe.Pointer(bp)) & uint32(0x7fffffff) + if hx >= uint32(0x7f800000) { /* cbrt(NaN,INF) is itself */ + return x + x + } + /* rough cbrt to 5 bits */ + if hx < uint32(0x00800000) { /* zero or subnormal? */ + if hx == uint32(0) { + return x + } /* cbrt(+-0) is itself */ + *(*float32)(unsafe.Pointer(bp)) = x * Float32FromFloat32(1.6777216e+07) + hx = *(*Tuint32_t)(unsafe.Pointer(bp)) & uint32(0x7fffffff) + hx = hx/uint32(3) + _B21 + } else { + hx = hx/uint32(3) + _B11 + } + *(*Tuint32_t)(unsafe.Pointer(bp)) &= uint32(0x80000000) + *(*Tuint32_t)(unsafe.Pointer(bp)) |= hx + /* + * First step Newton iteration (solving t*t-x/t == 0) to 16 bits. In + * double precision so that its terms can be arranged for efficiency + * without causing overflow or underflow. + */ + T = float64(*(*float32)(unsafe.Pointer(bp))) + r = T * T * T + T = T * (float64(x) + float64(x) + r) / (float64(x) + r + r) + /* + * Second step Newton iteration to 47 bits. In double precision for + * efficiency and accuracy. + */ + r = T * T * T + T = T * (float64(x) + float64(x) + r) / (float64(x) + r + r) + /* rounding to 24 bits is perfect in round-to-nearest mode */ + return float32(T) +} + +func Xcbrtl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xcbrt(tls, x) +} + +const DBL_EPSILON5 = 2.220446049250313e-16 + +var _toint2 = Float64FromInt32(1) / Float64FromFloat64(2.220446049250313e-16) + +func Xceil(tls *TLS, x3 float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e int32 + var y float32 + var y1, y2, v1 float64 + var y3 Tdouble_t + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _, _ = e, y, y1, y2, y3, v1 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x3 + e = int32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(52) & uint64(0x7ff)) + if e >= Int32FromInt32(0x3ff)+Int32FromInt32(52) || x3 == Float64FromInt32(0) { + return x3 + } + /* y = int(x) - x, where int(x) is an integer neighbor of x */ + if *(*Tuint64_t)(unsafe.Pointer(bp))>>int32(63) != 0 { + y3 = x3 - _toint2 + _toint2 - x3 + } else { + y3 = x3 + _toint2 - _toint2 - x3 + } + /* special case because of non-nearest rounding modes */ + if e <= Int32FromInt32(0x3ff)-Int32FromInt32(1) { + if uint64(8) == uint64(4) { + y = float32(y3) + } else { + if uint64(8) == uint64(8) { + y1 = y3 + } else { + y2 = y3 + } + } + if *(*Tuint64_t)(unsafe.Pointer(bp))>>int32(63) != 0 { + v1 = -Float64FromFloat64(0) + } else { + v1 = Float64FromInt32(1) + } + return v1 + } + if y3 < Float64FromInt32(0) { + return x3 + y3 + Float64FromInt32(1) + } + return x3 + y3 +} + +const DBL_EPSILON6 = 0 + +func Xceilf(tls *TLS, x3 float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e int32 + var m Tuint32_t + var y float32 + var y1, y2 float64 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _ = e, m, y, y1, y2 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x3 + e = int32(*(*Tuint32_t)(unsafe.Pointer(bp))>>Int32FromInt32(23)&Uint32FromInt32(0xff)) - int32(0x7f) + if e >= int32(23) { + return x3 + } + if e >= 0 { + m = uint32(int32(0x007fffff) >> e) + if *(*Tuint32_t)(unsafe.Pointer(bp))&m == uint32(0) { + return x3 + } + if uint64(4) == uint64(4) { + y = x3 + Float32FromFloat32(1.329227995784916e+36) + } else { + if uint64(4) == uint64(8) { + y1 = float64(x3 + Float32FromFloat32(1.329227995784916e+36)) + } else { + y2 = float64(x3 + Float32FromFloat32(1.329227995784916e+36)) + } + } + if *(*Tuint32_t)(unsafe.Pointer(bp))>>int32(31) == uint32(0) { + *(*Tuint32_t)(unsafe.Pointer(bp)) += m + } + *(*Tuint32_t)(unsafe.Pointer(bp)) &= ^m + } else { + if uint64(4) == uint64(4) { + y = x3 + Float32FromFloat32(1.329227995784916e+36) + } else { + if uint64(4) == uint64(8) { + y1 = float64(x3 + Float32FromFloat32(1.329227995784916e+36)) + } else { + y2 = float64(x3 + Float32FromFloat32(1.329227995784916e+36)) + } + } + if *(*Tuint32_t)(unsafe.Pointer(bp))>>int32(31) != 0 { + *(*float32)(unsafe.Pointer(bp)) = float32(-Float64FromFloat64(0)) + } else { + if *(*Tuint32_t)(unsafe.Pointer(bp))< %v", r) }() + } + return Xceil(tls, x) +} + +func Xcopysign(tls *TLS, x float64, y float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var p1, p2 uintptr + var _ /* ux at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + var _ /* uy at bp+8 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _ = p1, p2 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp + 8)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp + 8)) = y + p1 = bp + *(*Tuint64_t)(unsafe.Pointer(p1)) = *(*Tuint64_t)(unsafe.Pointer(p1)) & (-Uint64FromUint64(1) / Uint64FromInt32(2)) + p2 = bp + *(*Tuint64_t)(unsafe.Pointer(p2)) = *(*Tuint64_t)(unsafe.Pointer(p2)) | *(*Tuint64_t)(unsafe.Pointer(bp + 8))&(Uint64FromUint64(1)< %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* ux at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + var _ /* uy at bp+4 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp + 4)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp + 4)) = y + *(*Tuint32_t)(unsafe.Pointer(bp)) &= uint32(0x7fffffff) + *(*Tuint32_t)(unsafe.Pointer(bp)) |= *(*Tuint32_t)(unsafe.Pointer(bp + 4)) & uint32(0x80000000) + return *(*float32)(unsafe.Pointer(bp)) +} + +func Xcopysignl(tls *TLS, x float64, y float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xcopysign(tls, x, y) +} + +func Xcos(tls *TLS, x3 float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ix Tuint32_t + var n uint32 + var y float32 + var y1, y2 float64 + var _ /* y at bp+0 */ [2]float64 + _, _, _, _, _ = ix, n, y, y1, y2 + ix = uint32(*(*Tuint64_t)(unsafe.Pointer(&x3)) >> int32(32)) + ix &= uint32(0x7fffffff) + /* |x| ~< pi/4 */ + if ix <= uint32(0x3fe921fb) { + if ix < uint32(0x3e46a09e) { /* |x| < 2**-27 * sqrt(2) */ + /* raise inexact if x!=0 */ + if uint64(8) == uint64(4) { + y = float32(x3 + Float64FromFloat32(1.329227995784916e+36)) + } else { + if uint64(8) == uint64(8) { + y1 = x3 + Float64FromFloat32(1.329227995784916e+36) + } else { + y2 = x3 + Float64FromFloat32(1.329227995784916e+36) + } + } + return float64(1) + } + return X__cos(tls, x3, Float64FromInt32(0)) + } + /* cos(Inf or NaN) is NaN */ + if ix >= uint32(0x7ff00000) { + return x3 - x3 + } + /* argument reduction */ + n = uint32(X__rem_pio2(tls, x3, bp)) + switch n & Uint32FromInt32(3) { + case uint32(0): + return X__cos(tls, (*(*[2]float64)(unsafe.Pointer(bp)))[0], (*(*[2]float64)(unsafe.Pointer(bp)))[int32(1)]) + case uint32(1): + return -X__sin(tls, (*(*[2]float64)(unsafe.Pointer(bp)))[0], (*(*[2]float64)(unsafe.Pointer(bp)))[int32(1)], int32(1)) + case uint32(2): + return -X__cos(tls, (*(*[2]float64)(unsafe.Pointer(bp)))[0], (*(*[2]float64)(unsafe.Pointer(bp)))[int32(1)]) + default: + return X__sin(tls, (*(*[2]float64)(unsafe.Pointer(bp)))[0], (*(*[2]float64)(unsafe.Pointer(bp)))[int32(1)], int32(1)) + } + return r +} + +const M_PI_23 = 1.5707963267948966 + +// C documentation +// +// /* Small multiples of pi/2 rounded to double precision. */ + +var _c1pio2 = Float64FromInt32(1) * Float64FromFloat64(1.5707963267948966) /* 0x3FF921FB, 0x54442D18 */ +var _c2pio2 = Float64FromInt32(2) * Float64FromFloat64(1.5707963267948966) /* 0x400921FB, 0x54442D18 */ +var _c3pio2 = Float64FromInt32(3) * Float64FromFloat64(1.5707963267948966) /* 0x4012D97C, 0x7F3321D2 */ +var _c4pio2 = Float64FromInt32(4) * Float64FromFloat64(1.5707963267948966) /* 0x401921FB, 0x54442D18 */ + +func Xcosf(tls *TLS, x3 float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ix Tuint32_t + var n, sign uint32 + var y float32 + var y1, y2, v1, v2 float64 + var _ /* y at bp+0 */ float64 + _, _, _, _, _, _, _, _ = ix, n, sign, y, y1, y2, v1, v2 + ix = *(*Tuint32_t)(unsafe.Pointer(&x3)) + sign = ix >> int32(31) + ix &= uint32(0x7fffffff) + if ix <= uint32(0x3f490fda) { /* |x| ~<= pi/4 */ + if ix < uint32(0x39800000) { /* |x| < 2**-12 */ + /* raise inexact if x != 0 */ + if uint64(4) == uint64(4) { + y = x3 + Float32FromFloat32(1.329227995784916e+36) + } else { + if uint64(4) == uint64(8) { + y1 = float64(x3 + Float32FromFloat32(1.329227995784916e+36)) + } else { + y2 = float64(x3 + Float32FromFloat32(1.329227995784916e+36)) + } + } + return Float32FromFloat32(1) + } + return X__cosdf(tls, float64(x3)) + } + if ix <= uint32(0x407b53d1) { /* |x| ~<= 5*pi/4 */ + if ix > uint32(0x4016cbe3) { /* |x| ~> 3*pi/4 */ + if sign != 0 { + v1 = float64(x3) + _c2pio2 + } else { + v1 = float64(x3) - _c2pio2 + } + return -X__cosdf(tls, v1) + } else { + if sign != 0 { + return X__sindf(tls, float64(x3)+_c1pio2) + } else { + return X__sindf(tls, _c1pio2-float64(x3)) + } + } + } + if ix <= uint32(0x40e231d5) { /* |x| ~<= 9*pi/4 */ + if ix > uint32(0x40afeddf) { /* |x| ~> 7*pi/4 */ + if sign != 0 { + v2 = float64(x3) + _c4pio2 + } else { + v2 = float64(x3) - _c4pio2 + } + return X__cosdf(tls, v2) + } else { + if sign != 0 { + return X__sindf(tls, float64(-x3)-_c3pio2) + } else { + return X__sindf(tls, float64(x3)-_c3pio2) + } + } + } + /* cos(Inf or NaN) is NaN */ + if ix >= uint32(0x7f800000) { + return x3 - x3 + } + /* general argument reduction needed */ + n = uint32(X__rem_pio2f(tls, x3, bp)) + switch n & Uint32FromInt32(3) { + case uint32(0): + return X__cosdf(tls, *(*float64)(unsafe.Pointer(bp))) + case uint32(1): + return X__sindf(tls, -*(*float64)(unsafe.Pointer(bp))) + case uint32(2): + return -X__cosdf(tls, *(*float64)(unsafe.Pointer(bp))) + default: + return X__sindf(tls, *(*float64)(unsafe.Pointer(bp))) + } + return r +} + +const M_PI_24 = 0 + +// C documentation +// +// /* cosh(x) = (exp(x) + 1/exp(x))/2 +// * = 1 + 0.5*(exp(x)-1)*(exp(x)-1)/exp(x) +// * = 1 + x*x/2 + o(x^4) +// */ +func Xcosh(tls *TLS, x3 float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var t, y1, y2 float64 + var w Tuint32_t + var y float32 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _ = t, w, y, y1, y2 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x3 + /* |x| */ + *(*Tuint64_t)(unsafe.Pointer(bp)) &= uint64(-Int32FromInt32(1)) / Uint64FromInt32(2) + x3 = *(*float64)(unsafe.Pointer(bp)) + w = uint32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(32)) + /* |x| < log(2) */ + if w < uint32(0x3fe62e42) { + if w < uint32(Int32FromInt32(0x3ff00000)-Int32FromInt32(26)<log(0x1p26) then the 1/t is not needed */ + return float64(0.5) * (t + Float64FromInt32(1)/t) + } + /* |x| > log(DBL_MAX) or nan */ + /* note: the result is stored to handle overflow */ + t = X__expo2(tls, x3, float64(1)) + return t +} + +func Xcoshf(tls *TLS, x3 float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var t, y float32 + var w Tuint32_t + var y1, y2 float64 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _ = t, w, y, y1, y2 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x3 + /* |x| */ + *(*Tuint32_t)(unsafe.Pointer(bp)) &= uint32(0x7fffffff) + x3 = *(*float32)(unsafe.Pointer(bp)) + w = *(*Tuint32_t)(unsafe.Pointer(bp)) + /* |x| < log(2) */ + if w < uint32(0x3f317217) { + if w < uint32(Int32FromInt32(0x3f800000)-Int32FromInt32(12)< log(FLT_MAX) or nan */ + t = X__expo2f(tls, x3, Float32FromFloat32(1)) + return t +} + +func Xcoshl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xcosh(tls, x) +} + +func Xcosl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xcos(tls, x) +} + +var _erx = float64(0.8450629115104675) /* 0x3FEB0AC1, 0x60000000 */ +/* + * Coefficients for approximation to erf on [0,0.84375] + */ +var _efx8 = float64(1.0270333367641007) /* 0x3FF06EBA, 0x8214DB69 */ +var _pp0 = float64(0.12837916709551256) /* 0x3FC06EBA, 0x8214DB68 */ +var _pp1 = -Float64FromFloat64(0.3250421072470015) /* 0xBFD4CD7D, 0x691CB913 */ +var _pp2 = -Float64FromFloat64(0.02848174957559851) /* 0xBF9D2A51, 0xDBD7194F */ +var _pp3 = -Float64FromFloat64(0.005770270296489442) /* 0xBF77A291, 0x236668E4 */ +var _pp4 = -Float64FromFloat64(2.3763016656650163e-05) /* 0xBEF8EAD6, 0x120016AC */ +var _qq1 = float64(0.39791722395915535) /* 0x3FD97779, 0xCDDADC09 */ +var _qq2 = float64(0.0650222499887673) /* 0x3FB0A54C, 0x5536CEBA */ +var _qq3 = float64(0.005081306281875766) /* 0x3F74D022, 0xC4D36B0F */ +var _qq4 = float64(0.00013249473800432164) /* 0x3F215DC9, 0x221C1A10 */ +var _qq5 = -Float64FromFloat64(3.960228278775368e-06) /* 0xBED09C43, 0x42A26120 */ +/* + * Coefficients for approximation to erf in [0.84375,1.25] + */ +var _pa0 = -Float64FromFloat64(0.0023621185607526594) /* 0xBF6359B8, 0xBEF77538 */ +var _pa1 = float64(0.41485611868374833) /* 0x3FDA8D00, 0xAD92B34D */ +var _pa2 = -Float64FromFloat64(0.3722078760357013) /* 0xBFD7D240, 0xFBB8C3F1 */ +var _pa3 = float64(0.31834661990116175) /* 0x3FD45FCA, 0x805120E4 */ +var _pa4 = -Float64FromFloat64(0.11089469428239668) /* 0xBFBC6398, 0x3D3E28EC */ +var _pa5 = float64(0.035478304325618236) /* 0x3FA22A36, 0x599795EB */ +var _pa6 = -Float64FromFloat64(0.002166375594868791) /* 0xBF61BF38, 0x0A96073F */ +var _qa1 = float64(0.10642088040084423) /* 0x3FBB3E66, 0x18EEE323 */ +var _qa2 = float64(0.540397917702171) /* 0x3FE14AF0, 0x92EB6F33 */ +var _qa3 = float64(0.07182865441419627) /* 0x3FB2635C, 0xD99FE9A7 */ +var _qa4 = float64(0.12617121980876164) /* 0x3FC02660, 0xE763351F */ +var _qa5 = float64(0.01363708391202905) /* 0x3F8BEDC2, 0x6B51DD1C */ +var _qa6 = float64(0.011984499846799107) /* 0x3F888B54, 0x5735151D */ +/* + * Coefficients for approximation to erfc in [1.25,1/0.35] + */ +var _ra0 = -Float64FromFloat64(0.009864944034847148) /* 0xBF843412, 0x600D6435 */ +var _ra1 = -Float64FromFloat64(0.6938585727071818) /* 0xBFE63416, 0xE4BA7360 */ +var _ra2 = -Float64FromFloat64(10.558626225323291) /* 0xC0251E04, 0x41B0E726 */ +var _ra3 = -Float64FromFloat64(62.375332450326006) /* 0xC04F300A, 0xE4CBA38D */ +var _ra4 = -Float64FromFloat64(162.39666946257347) /* 0xC0644CB1, 0x84282266 */ +var _ra5 = -Float64FromFloat64(184.60509290671104) /* 0xC067135C, 0xEBCCABB2 */ +var _ra6 = -Float64FromFloat64(81.2874355063066) /* 0xC0545265, 0x57E4D2F2 */ +var _ra7 = -Float64FromFloat64(9.814329344169145) /* 0xC023A0EF, 0xC69AC25C */ +var _sa1 = float64(19.651271667439257) /* 0x4033A6B9, 0xBD707687 */ +var _sa2 = float64(137.65775414351904) /* 0x4061350C, 0x526AE721 */ +var _sa3 = float64(434.56587747522923) /* 0x407B290D, 0xD58A1A71 */ +var _sa4 = float64(645.3872717332679) /* 0x40842B19, 0x21EC2868 */ +var _sa5 = float64(429.00814002756783) /* 0x407AD021, 0x57700314 */ +var _sa6 = float64(108.63500554177944) /* 0x405B28A3, 0xEE48AE2C */ +var _sa7 = float64(6.570249770319282) /* 0x401A47EF, 0x8E484A93 */ +var _sa8 = -Float64FromFloat64(0.0604244152148581) /* 0xBFAEEFF2, 0xEE749A62 */ +/* + * Coefficients for approximation to erfc in [1/.35,28] + */ +var _rb0 = -Float64FromFloat64(0.0098649429247001) /* 0xBF843412, 0x39E86F4A */ +var _rb1 = -Float64FromFloat64(0.799283237680523) /* 0xBFE993BA, 0x70C285DE */ +var _rb2 = -Float64FromFloat64(17.757954917754752) /* 0xC031C209, 0x555F995A */ +var _rb3 = -Float64FromFloat64(160.63638485582192) /* 0xC064145D, 0x43C5ED98 */ +var _rb4 = -Float64FromFloat64(637.5664433683896) /* 0xC083EC88, 0x1375F228 */ +var _rb5 = -Float64FromFloat64(1025.0951316110772) /* 0xC0900461, 0x6A2E5992 */ +var _rb6 = -Float64FromFloat64(483.5191916086514) /* 0xC07E384E, 0x9BDC383F */ +var _sb1 = float64(30.33806074348246) /* 0x403E568B, 0x261D5190 */ +var _sb2 = float64(325.7925129965739) /* 0x40745CAE, 0x221B9F0A */ +var _sb3 = float64(1536.729586084437) /* 0x409802EB, 0x189D5118 */ +var _sb4 = float64(3199.8582195085955) /* 0x40A8FFB7, 0x688C246A */ +var _sb5 = float64(2553.0504064331644) /* 0x40A3F219, 0xCEDF3BE6 */ +var _sb6 = float64(474.52854120695537) /* 0x407DA874, 0xE79FE763 */ +var _sb7 = -Float64FromFloat64(22.44095244658582) /* 0xC03670E2, 0x42712D62 */ + +func _erfc1(tls *TLS, x float64) (r float64) { + var P, Q, s Tdouble_t + _, _, _ = P, Q, s + s = Xfabs(tls, x) - Float64FromInt32(1) + P = _pa0 + s*(_pa1+s*(_pa2+s*(_pa3+s*(_pa4+s*(_pa5+s*_pa6))))) + Q = Float64FromInt32(1) + s*(_qa1+s*(_qa2+s*(_qa3+s*(_qa4+s*(_qa5+s*_qa6))))) + return Float64FromInt32(1) - _erx - P/Q +} + +func _erfc2(tls *TLS, ix Tuint32_t, x float64) (r float64) { + var R, S, s Tdouble_t + var z float64 + var v1 Tuint64_t + _, _, _, _, _ = R, S, s, z, v1 + if ix < uint32(0x3ff40000) { /* |x| < 1.25 */ + return _erfc1(tls, x) + } + x = Xfabs(tls, x) + s = Float64FromInt32(1) / (x * x) + if ix < uint32(0x4006db6d) { /* |x| < 1/.35 ~ 2.85714 */ + R = _ra0 + s*(_ra1+s*(_ra2+s*(_ra3+s*(_ra4+s*(_ra5+s*(_ra6+s*_ra7)))))) + S = float64(1) + s*(_sa1+s*(_sa2+s*(_sa3+s*(_sa4+s*(_sa5+s*(_sa6+s*(_sa7+s*_sa8))))))) + } else { /* |x| > 1/.35 */ + R = _rb0 + s*(_rb1+s*(_rb2+s*(_rb3+s*(_rb4+s*(_rb5+s*_rb6))))) + S = float64(1) + s*(_sb1+s*(_sb2+s*(_sb3+s*(_sb4+s*(_sb5+s*(_sb6+s*_sb7)))))) + } + z = x + v1 = *(*Tuint64_t)(unsafe.Pointer(&z))>>Int32FromInt32(32)< %v", r1) }() + } + var ix Tuint32_t + var r, s, y, z, v1 float64 + var sign int32 + _, _, _, _, _, _, _ = ix, r, s, sign, y, z, v1 + ix = uint32(*(*Tuint64_t)(unsafe.Pointer(&x)) >> int32(32)) + sign = int32(ix >> int32(31)) + ix &= uint32(0x7fffffff) + if ix >= uint32(0x7ff00000) { + /* erf(nan)=nan, erf(+-inf)=+-1 */ + return float64(int32(1)-int32(2)*sign) + Float64FromInt32(1)/x + } + if ix < uint32(0x3feb0000) { /* |x| < 0.84375 */ + if ix < uint32(0x3e300000) { /* |x| < 2**-28 */ + /* avoid underflow */ + return float64(0.125) * (Float64FromInt32(8)*x + _efx8*x) + } + z = x * x + r = _pp0 + z*(_pp1+z*(_pp2+z*(_pp3+z*_pp4))) + s = float64(1) + z*(_qq1+z*(_qq2+z*(_qq3+z*(_qq4+z*_qq5)))) + y = r / s + return x + x*y + } + if ix < uint32(0x40180000) { /* 0.84375 <= |x| < 6 */ + y = Float64FromInt32(1) - _erfc2(tls, ix, x) + } else { + y = Float64FromInt32(1) - Float64FromFloat64(2.2250738585072014e-308) + } + if sign != 0 { + v1 = -y + } else { + v1 = y + } + return v1 +} + +func Xerfc(tls *TLS, x float64) (r1 float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var ix Tuint32_t + var r, s, y, z, v1, v2 float64 + var sign int32 + _, _, _, _, _, _, _, _ = ix, r, s, sign, y, z, v1, v2 + ix = uint32(*(*Tuint64_t)(unsafe.Pointer(&x)) >> int32(32)) + sign = int32(ix >> int32(31)) + ix &= uint32(0x7fffffff) + if ix >= uint32(0x7ff00000) { + /* erfc(nan)=nan, erfc(+-inf)=0,2 */ + return float64(int32(2)*sign) + Float64FromInt32(1)/x + } + if ix < uint32(0x3feb0000) { /* |x| < 0.84375 */ + if ix < uint32(0x3c700000) { /* |x| < 2**-56 */ + return float64(1) - x + } + z = x * x + r = _pp0 + z*(_pp1+z*(_pp2+z*(_pp3+z*_pp4))) + s = float64(1) + z*(_qq1+z*(_qq2+z*(_qq3+z*(_qq4+z*_qq5)))) + y = r / s + if sign != 0 || ix < uint32(0x3fd00000) { /* x < 1/4 */ + return float64(1) - (x + x*y) + } + return float64(0.5) - (x - float64(0.5) + x*y) + } + if ix < uint32(0x403c0000) { /* 0.84375 <= |x| < 28 */ + if sign != 0 { + v1 = Float64FromInt32(2) - _erfc2(tls, ix, x) + } else { + v1 = _erfc2(tls, ix, x) + } + return v1 + } + if sign != 0 { + v2 = Float64FromInt32(2) - Float64FromFloat64(2.2250738585072014e-308) + } else { + v2 = Float64FromFloat64(2.2250738585072014e-308) * Float64FromFloat64(2.2250738585072014e-308) + } + return v2 +} + +var _erx1 = float32(0.84506291151) /* 0x3f58560b */ +/* + * Coefficients for approximation to erf on [0,0.84375] + */ +var _efx81 = float32(1.027033329) /* 0x3f8375d4 */ +var _pp01 = float32(0.12837916613) /* 0x3e0375d4 */ +var _pp11 = float32(-Float64FromFloat64(0.32504209876)) /* 0xbea66beb */ +var _pp21 = float32(-Float64FromFloat64(0.028481749818)) /* 0xbce9528f */ +var _pp31 = float32(-Float64FromFloat64(0.005770270247)) /* 0xbbbd1489 */ +var _pp41 = float32(-Float64FromFloat64(2.3763017452e-05)) /* 0xb7c756b1 */ +var _qq11 = float32(0.39791721106) /* 0x3ecbbbce */ +var _qq21 = float32(0.0650222525) /* 0x3d852a63 */ +var _qq31 = float32(0.0050813062117) /* 0x3ba68116 */ +var _qq41 = float32(0.00013249473704) /* 0x390aee49 */ +var _qq51 = float32(-Float64FromFloat64(3.9602282413e-06)) /* 0xb684e21a */ +/* + * Coefficients for approximation to erf in [0.84375,1.25] + */ +var _pa01 = float32(-Float64FromFloat64(0.0023621185683)) /* 0xbb1acdc6 */ +var _pa11 = float32(0.41485610604) /* 0x3ed46805 */ +var _pa21 = float32(-Float64FromFloat64(0.37220788002)) /* 0xbebe9208 */ +var _pa31 = float32(0.31834661961) /* 0x3ea2fe54 */ +var _pa41 = float32(-Float64FromFloat64(0.11089469492)) /* 0xbde31cc2 */ +var _pa51 = float32(0.035478305072) /* 0x3d1151b3 */ +var _pa61 = float32(-Float64FromFloat64(0.0021663755178)) /* 0xbb0df9c0 */ +var _qa11 = float32(0.10642088205) /* 0x3dd9f331 */ +var _qa21 = float32(0.54039794207) /* 0x3f0a5785 */ +var _qa31 = float32(0.071828655899) /* 0x3d931ae7 */ +var _qa41 = float32(0.12617121637) /* 0x3e013307 */ +var _qa51 = float32(0.013637083583) /* 0x3c5f6e13 */ +var _qa61 = float32(0.011984500103) /* 0x3c445aa3 */ +/* + * Coefficients for approximation to erfc in [1.25,1/0.35] + */ +var _ra01 = float32(-Float64FromFloat64(0.0098649440333)) /* 0xbc21a093 */ +var _ra11 = float32(-Float64FromFloat64(0.6938585639)) /* 0xbf31a0b7 */ +var _ra21 = float32(-Float64FromFloat64(10.558626175)) /* 0xc128f022 */ +var _ra31 = float32(-Float64FromFloat64(62.375331879)) /* 0xc2798057 */ +var _ra41 = float32(-Float64FromFloat64(162.39666748)) /* 0xc322658c */ +var _ra51 = float32(-Float64FromFloat64(184.60508728)) /* 0xc3389ae7 */ +var _ra61 = float32(-Float64FromFloat64(81.287437439)) /* 0xc2a2932b */ +var _ra71 = float32(-Float64FromFloat64(9.8143291473)) /* 0xc11d077e */ +var _sa11 = float32(19.65127182) /* 0x419d35ce */ +var _sa21 = float32(137.65776062) /* 0x4309a863 */ +var _sa31 = float32(434.56588745) /* 0x43d9486f */ +var _sa41 = float32(645.38726807) /* 0x442158c9 */ +var _sa51 = float32(429.00814819) /* 0x43d6810b */ +var _sa61 = float32(108.63500214) /* 0x42d9451f */ +var _sa71 = float32(6.5702495575) /* 0x40d23f7c */ +var _sa81 = float32(-Float64FromFloat64(0.060424413532)) /* 0xbd777f97 */ +/* + * Coefficients for approximation to erfc in [1/.35,28] + */ +var _rb01 = float32(-Float64FromFloat64(0.009864943102)) /* 0xbc21a092 */ +var _rb11 = float32(-Float64FromFloat64(0.79928326607)) /* 0xbf4c9dd4 */ +var _rb21 = float32(-Float64FromFloat64(17.757955551)) /* 0xc18e104b */ +var _rb31 = float32(-Float64FromFloat64(160.63638306)) /* 0xc320a2ea */ +var _rb41 = float32(-Float64FromFloat64(637.56646729)) /* 0xc41f6441 */ +var _rb51 = float32(-Float64FromFloat64(1025.0950928)) /* 0xc480230b */ +var _rb61 = float32(-Float64FromFloat64(483.51919556)) /* 0xc3f1c275 */ +var _sb11 = float32(30.338060379) /* 0x41f2b459 */ +var _sb21 = float32(325.79251099) /* 0x43a2e571 */ +var _sb31 = float32(1536.7296143) /* 0x44c01759 */ +var _sb41 = float32(3199.8581543) /* 0x4547fdbb */ +var _sb51 = float32(2553.050293) /* 0x451f90ce */ +var _sb61 = float32(474.52853394) /* 0x43ed43a7 */ +var _sb71 = float32(-Float64FromFloat64(22.440952301)) /* 0xc1b38712 */ + +func _erfc11(tls *TLS, x float32) (r float32) { + var P, Q, s Tfloat_t + _, _, _ = P, Q, s + s = Xfabsf(tls, x) - Float32FromInt32(1) + P = _pa01 + s*(_pa11+s*(_pa21+s*(_pa31+s*(_pa41+s*(_pa51+s*_pa61))))) + Q = Float32FromInt32(1) + s*(_qa11+s*(_qa21+s*(_qa31+s*(_qa41+s*(_qa51+s*_qa61))))) + return Float32FromInt32(1) - _erx1 - P/Q +} + +func _erfc21(tls *TLS, ix Tuint32_t, x float32) (r float32) { + var R, S, s Tfloat_t + var z float32 + var v1 Tuint32_t + _, _, _, _, _ = R, S, s, z, v1 + if ix < uint32(0x3fa00000) { /* |x| < 1.25 */ + return _erfc11(tls, x) + } + x = Xfabsf(tls, x) + s = Float32FromInt32(1) / (x * x) + if ix < uint32(0x4036db6d) { /* |x| < 1/0.35 */ + R = _ra01 + s*(_ra11+s*(_ra21+s*(_ra31+s*(_ra41+s*(_ra51+s*(_ra61+s*_ra71)))))) + S = Float32FromFloat32(1) + s*(_sa11+s*(_sa21+s*(_sa31+s*(_sa41+s*(_sa51+s*(_sa61+s*(_sa71+s*_sa81))))))) + } else { /* |x| >= 1/0.35 */ + R = _rb01 + s*(_rb11+s*(_rb21+s*(_rb31+s*(_rb41+s*(_rb51+s*_rb61))))) + S = Float32FromFloat32(1) + s*(_sb11+s*(_sb21+s*(_sb31+s*(_sb41+s*(_sb51+s*(_sb61+s*_sb71)))))) + } + ix = *(*Tuint32_t)(unsafe.Pointer(&x)) + v1 = ix & uint32(0xffffe000) + z = *(*float32)(unsafe.Pointer(&v1)) + return Xexpf(tls, -z*z-Float32FromFloat32(0.5625)) * Xexpf(tls, (z-x)*(z+x)+R/S) / x +} + +func Xerff(tls *TLS, x float32) (r1 float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var ix Tuint32_t + var r, s, y, z, v1 float32 + var sign int32 + _, _, _, _, _, _, _ = ix, r, s, sign, y, z, v1 + ix = *(*Tuint32_t)(unsafe.Pointer(&x)) + sign = int32(ix >> int32(31)) + ix &= uint32(0x7fffffff) + if ix >= uint32(0x7f800000) { + /* erf(nan)=nan, erf(+-inf)=+-1 */ + return float32(int32(1)-int32(2)*sign) + Float32FromInt32(1)/x + } + if ix < uint32(0x3f580000) { /* |x| < 0.84375 */ + if ix < uint32(0x31800000) { /* |x| < 2**-28 */ + /*avoid underflow */ + return Float32FromFloat32(0.125) * (Float32FromInt32(8)*x + _efx81*x) + } + z = x * x + r = _pp01 + z*(_pp11+z*(_pp21+z*(_pp31+z*_pp41))) + s = Float32FromInt32(1) + z*(_qq11+z*(_qq21+z*(_qq31+z*(_qq41+z*_qq51)))) + y = r / s + return x + x*y + } + if ix < uint32(0x40c00000) { /* |x| < 6 */ + y = Float32FromInt32(1) - _erfc21(tls, ix, x) + } else { + y = Float32FromInt32(1) - Float32FromFloat32(7.52316384526264e-37) + } + if sign != 0 { + v1 = -y + } else { + v1 = y + } + return v1 +} + +func Xerfcf(tls *TLS, x float32) (r1 float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var ix Tuint32_t + var r, s, y, z, v1, v2 float32 + var sign int32 + _, _, _, _, _, _, _, _ = ix, r, s, sign, y, z, v1, v2 + ix = *(*Tuint32_t)(unsafe.Pointer(&x)) + sign = int32(ix >> int32(31)) + ix &= uint32(0x7fffffff) + if ix >= uint32(0x7f800000) { + /* erfc(nan)=nan, erfc(+-inf)=0,2 */ + return float32(int32(2)*sign) + Float32FromInt32(1)/x + } + if ix < uint32(0x3f580000) { /* |x| < 0.84375 */ + if ix < uint32(0x23800000) { /* |x| < 2**-56 */ + return Float32FromFloat32(1) - x + } + z = x * x + r = _pp01 + z*(_pp11+z*(_pp21+z*(_pp31+z*_pp41))) + s = Float32FromFloat32(1) + z*(_qq11+z*(_qq21+z*(_qq31+z*(_qq41+z*_qq51)))) + y = r / s + if sign != 0 || ix < uint32(0x3e800000) { /* x < 1/4 */ + return Float32FromFloat32(1) - (x + x*y) + } + return Float32FromFloat32(0.5) - (x - Float32FromFloat32(0.5) + x*y) + } + if ix < uint32(0x41e00000) { /* |x| < 28 */ + if sign != 0 { + v1 = Float32FromInt32(2) - _erfc21(tls, ix, x) + } else { + v1 = _erfc21(tls, ix, x) + } + return v1 + } + if sign != 0 { + v2 = Float32FromInt32(2) - Float32FromFloat32(7.52316384526264e-37) + } else { + v2 = Float32FromFloat32(7.52316384526264e-37) * Float32FromFloat32(7.52316384526264e-37) + } + return v2 +} + +func Xerfl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xerf(tls, x) +} + +func Xerfcl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xerfc(tls, x) +} + +const EXP2_POLY_ORDER = 5 +const EXP_POLY_ORDER = 5 +const EXP_TABLE_BITS = 7 +const EXP_USE_TOINT_NARROW = 0 +const N = 128 + +// C documentation +// +// /* Handle cases that may overflow or underflow when computing the result that +// is scale*(1+TMP) without intermediate rounding. The bit representation of +// scale is in SBITS, however it has a computed exponent that may have +// overflown into the sign bit so that needs to be adjusted before using it as +// a double. (int32_t)KI is the k used in the argument reduction and exponent +// adjustment of scale, positive k here means the result may overflow and +// negative k means the result may underflow. */ +func _specialcase(tls *TLS, tmp Tdouble_t, sbits Tuint64_t, ki Tuint64_t) (r float64) { + var hi, lo, scale, y3 Tdouble_t + var y, y1, y2, v1, v3, v5, v7 float64 + _, _, _, _, _, _, _, _, _, _, _ = hi, lo, scale, y, y1, y2, y3, v1, v3, v5, v7 + if ki&uint64(0x80000000) == uint64(0) { + /* k > 0, the exponent of scale might have overflowed by <= 460. */ + sbits = sbits - Uint64FromUint64(1009)<> int32(52)) +} + +func Xexp(tls *TLS, x1 float64) (r1 float64) { + if __ccgo_strace { + trc("tls=%v x1=%v, (%v:)", tls, x1, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var abstop Tuint32_t + var idx, ki, sbits, top, v5 Tuint64_t + var kd, r, r2, scale, tail, tmp, z Tdouble_t + var y, v1, v2, v4, v6 float64 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = abstop, idx, kd, ki, r, r2, sbits, scale, tail, tmp, top, y, z, v1, v2, v4, v5, v6 + abstop = _top12(tls, x1) & uint32(0x7ff) + if abstop-_top12(tls, float64(5.551115123125783e-17)) >= _top12(tls, float64(512))-_top12(tls, float64(5.551115123125783e-17)) { + if abstop-_top12(tls, float64(5.551115123125783e-17)) >= uint32(0x80000000) { + /* Avoid spurious underflow for tiny x. */ + /* Note: 0 is common input. */ + return float64(1) + x1 + } + if abstop >= _top12(tls, float64(1024)) { + v1 = float64(-X__builtin_inff(tls)) + if *(*Tuint64_t)(unsafe.Pointer(&x1)) == *(*Tuint64_t)(unsafe.Pointer(&v1)) { + return float64(0) + } + if abstop >= _top12(tls, float64(X__builtin_inff(tls))) { + return float64(1) + x1 + } + if *(*Tuint64_t)(unsafe.Pointer(&x1))>>int32(63) != 0 { + return X__math_uflow(tls, uint32(0)) + } else { + return X__math_oflow(tls, uint32(0)) + } + } + /* Large x is special cased below. */ + abstop = uint32(0) + } + /* exp(x) = 2^(k/N) * exp(r), with exp(r) in [2^(-1/2N),2^(1/2N)]. */ + /* x = ln2/N*k + r, with int k and r in [-ln2/2N, ln2/2N]. */ + z = X__exp_data.Finvln2N * x1 + /* z - kd is in [-1, 1] in non-nearest rounding modes. */ + y = z + X__exp_data.Fshift + v2 = y + goto _3 +_3: + kd = v2 + v4 = kd + ki = *(*Tuint64_t)(unsafe.Pointer(&v4)) + kd -= X__exp_data.Fshift + r = x1 + kd*X__exp_data.Fnegln2hiN + kd*X__exp_data.Fnegln2loN + /* 2^(k/N) ~= scale * (1 + tail). */ + idx = uint64(2) * (ki % uint64(Int32FromInt32(1)< 2^-200 and scale > 2^-739, so there + is no spurious underflow here even without fma. */ + y = scale + scale*tmp + v6 = y + goto _7 +_7: + return v6 +} + +const HUGE = 0 + +func Xexp10(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var y float64 + var _ /* n at bp+0 */ float64 + var _ /* u at bp+8 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _ = y + y = Xmodf(tls, x, bp) + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp + 8)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp + 8)) = *(*float64)(unsafe.Pointer(bp)) + /* fabs(n) < 16 without raising invalid on nan */ + if *(*Tuint64_t)(unsafe.Pointer(bp + 8))>>int32(52)&uint64(0x7ff) < uint64(Int32FromInt32(0x3ff)+Int32FromInt32(4)) { + if !(y != 0) { + return _p10[int32(*(*float64)(unsafe.Pointer(bp)))+int32(15)] + } + y = Xexp2(tls, float64(3.321928094887362)*y) + return y * _p10[int32(*(*float64)(unsafe.Pointer(bp)))+int32(15)] + } + return Xpow(tls, float64(10), x) +} + +var _p10 = [31]float64{ + 0: float64(1e-15), + 1: float64(1e-14), + 2: float64(1e-13), + 3: float64(1e-12), + 4: float64(1e-11), + 5: float64(1e-10), + 6: float64(1e-09), + 7: float64(1e-08), + 8: float64(1e-07), + 9: float64(1e-06), + 10: float64(1e-05), + 11: float64(0.0001), + 12: float64(0.001), + 13: float64(0.01), + 14: float64(0.1), + 15: Float64FromInt32(1), + 16: float64(10), + 17: float64(100), + 18: float64(1000), + 19: float64(10000), + 20: float64(100000), + 21: float64(1e+06), + 22: float64(1e+07), + 23: float64(1e+08), + 24: float64(1e+09), + 25: float64(1e+10), + 26: float64(1e+11), + 27: float64(1e+12), + 28: float64(1e+13), + 29: float64(1e+14), + 30: float64(1e+15), +} + +func Xpow10(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xexp10(tls, x) +} + +func Xexp10f(tls *TLS, x float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var y float32 + var _ /* n at bp+0 */ float32 + var _ /* u at bp+4 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _ = y + y = Xmodff(tls, x, bp) + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp + 4)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp + 4)) = *(*float32)(unsafe.Pointer(bp)) + /* fabsf(n) < 8 without raising invalid on nan */ + if *(*Tuint32_t)(unsafe.Pointer(bp + 4))>>int32(23)&uint32(0xff) < uint32(Int32FromInt32(0x7f)+Int32FromInt32(3)) { + if !(y != 0) { + return _p101[int32(*(*float32)(unsafe.Pointer(bp)))+int32(7)] + } + y = Xexp2f(tls, Float32FromFloat32(3.321928094887362)*y) + return y * _p101[int32(*(*float32)(unsafe.Pointer(bp)))+int32(7)] + } + return float32(Xexp2(tls, float64(3.321928094887362)*float64(x))) +} + +var _p101 = [15]float32{ + 0: Float32FromFloat32(1e-07), + 1: Float32FromFloat32(1e-06), + 2: Float32FromFloat32(1e-05), + 3: Float32FromFloat32(0.0001), + 4: Float32FromFloat32(0.001), + 5: Float32FromFloat32(0.01), + 6: Float32FromFloat32(0.1), + 7: Float32FromInt32(1), + 8: float32(10), + 9: float32(100), + 10: float32(1000), + 11: float32(10000), + 12: float32(100000), + 13: float32(1e+06), + 14: float32(1e+07), +} + +func Xpow10f(tls *TLS, x float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xexp10f(tls, x) +} + +func Xexp10l(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xexp10(tls, x) +} + +func Xpow10l(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xexp10l(tls, x) +} + +// C documentation +// +// /* Handle cases that may overflow or underflow when computing the result that +// is scale*(1+TMP) without intermediate rounding. The bit representation of +// scale is in SBITS, however it has a computed exponent that may have +// overflown into the sign bit so that needs to be adjusted before using it as +// a double. (int32_t)KI is the k used in the argument reduction and exponent +// adjustment of scale, positive k here means the result may overflow and +// negative k means the result may underflow. */ +func _specialcase1(tls *TLS, tmp Tdouble_t, sbits Tuint64_t, ki Tuint64_t) (r float64) { + var hi, lo, scale, y3 Tdouble_t + var y, y1, y2, v1, v3, v5, v7 float64 + _, _, _, _, _, _, _, _, _, _, _ = hi, lo, scale, y, y1, y2, y3, v1, v3, v5, v7 + if ki&uint64(0x80000000) == uint64(0) { + /* k > 0, the exponent of scale might have overflowed by 1. */ + sbits = sbits - Uint64FromUint64(1)<> int32(52)) +} + +func Xexp2(tls *TLS, x1 float64) (r1 float64) { + if __ccgo_strace { + trc("tls=%v x1=%v, (%v:)", tls, x1, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var abstop Tuint32_t + var idx, ki, sbits, top, v7 Tuint64_t + var kd, r, r2, scale, tail, tmp Tdouble_t + var y, v1, v2, v3, v4, v6, v8 float64 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = abstop, idx, kd, ki, r, r2, sbits, scale, tail, tmp, top, y, v1, v2, v3, v4, v6, v7, v8 + abstop = _top121(tls, x1) & uint32(0x7ff) + if abstop-_top121(tls, float64(5.551115123125783e-17)) >= _top121(tls, float64(512))-_top121(tls, float64(5.551115123125783e-17)) { + if abstop-_top121(tls, float64(5.551115123125783e-17)) >= uint32(0x80000000) { + /* Avoid spurious underflow for tiny x. */ + /* Note: 0 is common input. */ + return float64(1) + x1 + } + if abstop >= _top121(tls, float64(1024)) { + v1 = float64(-X__builtin_inff(tls)) + if *(*Tuint64_t)(unsafe.Pointer(&x1)) == *(*Tuint64_t)(unsafe.Pointer(&v1)) { + return float64(0) + } + if abstop >= _top121(tls, float64(X__builtin_inff(tls))) { + return float64(1) + x1 + } + if !(*(*Tuint64_t)(unsafe.Pointer(&x1))>>Int32FromInt32(63) != 0) { + return X__math_oflow(tls, uint32(0)) + } else { + v2 = -Float64FromFloat64(1075) + if *(*Tuint64_t)(unsafe.Pointer(&x1)) >= *(*Tuint64_t)(unsafe.Pointer(&v2)) { + return X__math_uflow(tls, uint32(0)) + } + } + } + v3 = float64(928) + if uint64(2)**(*Tuint64_t)(unsafe.Pointer(&x1)) > uint64(2)**(*Tuint64_t)(unsafe.Pointer(&v3)) { + /* Large x is special cased below. */ + abstop = uint32(0) + } + } + /* exp2(x) = 2^(k/N) * 2^r, with 2^r in [2^(-1/2N),2^(1/2N)]. */ + /* x = k/N + r, with int k and r in [-1/2N, 1/2N]. */ + y = x1 + X__exp_data.Fexp2_shift + v4 = y + goto _5 +_5: + kd = v4 + v6 = kd + ki = *(*Tuint64_t)(unsafe.Pointer(&v6)) /* k. */ + kd -= X__exp_data.Fexp2_shift /* k/N for int k. */ + r = x1 - kd + /* 2^(k/N) ~= scale * (1 + tail). */ + idx = uint64(2) * (ki % uint64(Int32FromInt32(1)< 2^-65 and scale > 2^-928, so there + is no spurious underflow here even without fma. */ + y = scale + scale*tmp + v8 = y + goto _9 +_9: + return v8 +} + +const EXP2F_POLY_ORDER = 3 +const EXP2F_TABLE_BITS = 5 +const N1 = 32 + +/* +EXP2F_TABLE_BITS = 5 +EXP2F_POLY_ORDER = 3 + +ULP error: 0.502 (nearest rounding.) +Relative error: 1.69 * 2^-34 in [-1/64, 1/64] (before rounding.) +Wrong count: 168353 (all nearest rounding wrong results with fma.) +Non-nearest ULP error: 1 (rounded ULP error) +*/ + +func _top122(tls *TLS, x float32) (r Tuint32_t) { + return *(*Tuint32_t)(unsafe.Pointer(&x)) >> int32(20) +} + +func Xexp2f(tls *TLS, x2 float32) (r1 float32) { + if __ccgo_strace { + trc("tls=%v x2=%v, (%v:)", tls, x2, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var abstop Tuint32_t + var kd, r, r2, s, xd, y2, z Tdouble_t + var ki, t Tuint64_t + var y, v1, v5 float32 + var y1, v2, v4 float64 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = abstop, kd, ki, r, r2, s, t, xd, y, y1, y2, z, v1, v2, v4, v5 + xd = float64(x2) + abstop = _top122(tls, x2) & uint32(0x7ff) + if abstop >= _top122(tls, Float32FromFloat32(128)) { + /* |x| >= 128 or x is nan. */ + v1 = -X__builtin_inff(tls) + if *(*Tuint32_t)(unsafe.Pointer(&x2)) == *(*Tuint32_t)(unsafe.Pointer(&v1)) { + return Float32FromFloat32(0) + } + if abstop >= _top122(tls, X__builtin_inff(tls)) { + return x2 + x2 + } + if x2 > Float32FromFloat32(0) { + return X__math_oflowf(tls, uint32(0)) + } + if x2 <= -Float32FromFloat32(150) { + return X__math_uflowf(tls, uint32(0)) + } + } + /* x = k/N + r with r in [-1/(2N), 1/(2N)] and int k. */ + y1 = xd + X__exp2f_data.Fshift_scaled + v2 = y1 + goto _3 +_3: + kd = v2 + v4 = kd + ki = *(*Tuint64_t)(unsafe.Pointer(&v4)) + kd -= X__exp2f_data.Fshift_scaled /* k/N for int k. */ + r = xd - kd + /* exp2(x) = 2^(k/N) * 2^r ~= s * (C0*r^3 + C1*r^2 + C2*r + 1) */ + t = *(*Tuint64_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__exp2f_data)) + uintptr(ki%uint64(Int32FromInt32(1)< %v", r) }() + } + return Xexp2(tls, x) +} + +const N2 = 128 + +type Texp_data = struct { + Finvln2N float64 + Fshift float64 + Fnegln2hiN float64 + Fnegln2loN float64 + Fpoly [4]float64 + Fexp2_shift float64 + Fexp2_poly [5]float64 + Ftab [256]Tuint64_t +} + +const N3 = 32 + +/* +EXP2F_TABLE_BITS = 5 +EXP2F_POLY_ORDER = 3 + +ULP error: 0.502 (nearest rounding.) +Relative error: 1.69 * 2^-34 in [-ln2/64, ln2/64] (before rounding.) +Wrong count: 170635 (all nearest rounding wrong results with fma.) +Non-nearest ULP error: 1 (rounded ULP error) +*/ + +func _top123(tls *TLS, x float32) (r Tuint32_t) { + return *(*Tuint32_t)(unsafe.Pointer(&x)) >> int32(20) +} + +func Xexpf(tls *TLS, x2 float32) (r1 float32) { + if __ccgo_strace { + trc("tls=%v x2=%v, (%v:)", tls, x2, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var abstop Tuint32_t + var kd, r, r2, s, xd, y2, z Tdouble_t + var ki, t Tuint64_t + var y, v1, v5 float32 + var y1, v2, v4 float64 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = abstop, kd, ki, r, r2, s, t, xd, y, y1, y2, z, v1, v2, v4, v5 + xd = float64(x2) + abstop = _top123(tls, x2) & uint32(0x7ff) + if abstop >= _top123(tls, Float32FromFloat32(88)) { + /* |x| >= 88 or x is nan. */ + v1 = -X__builtin_inff(tls) + if *(*Tuint32_t)(unsafe.Pointer(&x2)) == *(*Tuint32_t)(unsafe.Pointer(&v1)) { + return Float32FromFloat32(0) + } + if abstop >= _top123(tls, X__builtin_inff(tls)) { + return x2 + x2 + } + if x2 > Float32FromFloat32(88.72283172607422) { /* x > log(0x1p128) ~= 88.72 */ + return X__math_oflowf(tls, uint32(0)) + } + if x2 < -Float32FromFloat32(103.97207641601562) { /* x < log(0x1p-150) ~= -103.97 */ + return X__math_uflowf(tls, uint32(0)) + } + } + /* x*N/Ln2 = k + r with r in [-1/2, 1/2] and int k. */ + z = X__exp2f_data.Finvln2_scaled * xd + /* Round and convert z to int, the result is in [-150*N, 128*N] and + ideally ties-to-even rule is used, otherwise the magnitude of r + can be bigger which gives larger approximation error. */ + y1 = z + X__exp2f_data.Fshift + v2 = y1 + goto _3 +_3: + kd = v2 + v4 = kd + ki = *(*Tuint64_t)(unsafe.Pointer(&v4)) + kd -= X__exp2f_data.Fshift + r = z - kd + /* exp(x) = 2^(k/N) * 2^(r/N) ~= s * (C0*r^3 + C1*r^2 + C2*r + 1) */ + t = *(*Tuint64_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__exp2f_data)) + uintptr(ki%uint64(Int32FromInt32(1)< %v", r) }() + } + return Xexp(tls, x) +} + +var _o_threshold = float64(709.782712893384) /* 0x40862E42, 0xFEFA39EF */ +var _ln2_hi = float64(0.6931471803691238) /* 0x3fe62e42, 0xfee00000 */ +var _ln2_lo = float64(1.9082149292705877e-10) /* 0x3dea39ef, 0x35793c76 */ +var _invln2 = float64(1.4426950408889634) /* 0x3ff71547, 0x652b82fe */ +/* Scaled Q's: Qn_here = 2**n * Qn_above, for R(2*z) where z = hxs = x*x/2: */ +var _Q1 = -Float64FromFloat64(0.03333333333333313) /* BFA11111 111110F4 */ +var _Q2 = float64(0.0015873015872548146) /* 3F5A01A0 19FE5585 */ +var _Q3 = -Float64FromFloat64(7.93650757867488e-05) /* BF14CE19 9EAADBB7 */ +var _Q4 = float64(4.008217827329362e-06) /* 3ED0CFCA 86E65239 */ +var _Q5 = -Float64FromFloat64(2.0109921818362437e-07) /* BE8AFDB7 6E09C32D */ + +func Xexpm1(tls *TLS, x3 float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var c, e, hfx, hi, hxs, lo, r1, t, twopk, y3 Tdouble_t + var hx Tuint32_t + var k, sign int32 + var y float32 + var y1, y2, v3 float64 + var v1 uint64 + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + var _ /* u at bp+8 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, e, hfx, hi, hx, hxs, k, lo, r1, sign, t, twopk, y, y1, y2, y3, v1, v3 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp + 8)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp + 8)) = x3 + hx = uint32(*(*Tuint64_t)(unsafe.Pointer(bp + 8)) >> int32(32) & uint64(0x7fffffff)) + sign = int32(*(*Tuint64_t)(unsafe.Pointer(bp + 8)) >> int32(63)) + /* filter out huge and non-finite argument */ + if hx >= uint32(0x4043687A) { /* if |x|>=56*ln2 */ + *(*float64)(unsafe.Pointer(bp)) = x3 + v1 = *(*uint64)(unsafe.Pointer(bp)) + goto _2 + _2: + if BoolInt32(v1&(-Uint64FromUint64(1)>>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)< _o_threshold { + x3 *= float64(8.98846567431158e+307) + return x3 + } + } + /* argument reduction */ + if hx > uint32(0x3fd62e42) { /* if |x| > 0.5 ln2 */ + if hx < uint32(0x3FF0A2B2) { /* and |x| < 1.5 ln2 */ + if !(sign != 0) { + hi = x3 - _ln2_hi + lo = _ln2_lo + k = int32(1) + } else { + hi = x3 + _ln2_hi + lo = -_ln2_lo + k = -int32(1) + } + } else { + if sign != 0 { + v3 = -Float64FromFloat64(0.5) + } else { + v3 = float64(0.5) + } + k = int32(_invln2*x3 + v3) + t = float64(k) + hi = x3 - t*_ln2_hi /* t*ln2_hi is exact here */ + lo = t * _ln2_lo + } + x3 = hi - lo + c = hi - x3 - lo + } else { + if hx < uint32(0x3c900000) { /* |x| < 2**-54, return x */ + if hx < uint32(0x00100000) { + if uint64(4) == uint64(4) { + y = float32(x3) + } else { + if uint64(4) == uint64(8) { + y1 = float64(float32(x3)) + } else { + y2 = float64(float32(x3)) + } + } + } + return x3 + } else { + k = 0 + } + } + /* x is now in primary range */ + hfx = float64(0.5) * x3 + hxs = x3 * hfx + r1 = float64(1) + hxs*(_Q1+hxs*(_Q2+hxs*(_Q3+hxs*(_Q4+hxs*_Q5)))) + t = float64(3) - r1*hfx + e = hxs * ((r1 - t) / (Float64FromFloat64(6) - x3*t)) + if k == 0 { /* c is 0 */ + return x3 - (x3*e - hxs) + } + e = x3*(e-c) - c + e -= hxs + /* exp(x) ~ 2^k (Xreduced - e + 1) */ + if k == -int32(1) { + return float64(0.5)*(x3-e) - float64(0.5) + } + if k == int32(1) { + if x3 < -Float64FromFloat64(0.25) { + return -Float64FromFloat64(2) * (e - (x3 + Float64FromFloat64(0.5))) + } + return float64(1) + float64(2)*(x3-e) + } + *(*Tuint64_t)(unsafe.Pointer(bp + 8)) = uint64(Int32FromInt32(0x3ff)+k) << int32(52) /* 2^k */ + twopk = *(*float64)(unsafe.Pointer(bp + 8)) + if k < 0 || k > int32(56) { /* suffice to return exp(x)-1 */ + y3 = x3 - e + float64(1) + if k == int32(1024) { + y3 = y3 * float64(2) * float64(8.98846567431158e+307) + } else { + y3 = y3 * twopk + } + return y3 - float64(1) + } + *(*Tuint64_t)(unsafe.Pointer(bp + 8)) = uint64(Int32FromInt32(0x3ff)-k) << int32(52) /* 2^-k */ + if k < int32(20) { + y3 = (x3 - e + (Float64FromInt32(1) - *(*float64)(unsafe.Pointer(bp + 8)))) * twopk + } else { + y3 = (x3 - (e + *(*float64)(unsafe.Pointer(bp + 8))) + Float64FromInt32(1)) * twopk + } + return y3 +} + +var _ln2_hi1 = float32(0.69313812256) /* 0x3f317180 */ +var _ln2_lo1 = float32(9.0580006145e-06) /* 0x3717f7d1 */ +var _invln21 = float32(1.4426950216) /* 0x3fb8aa3b */ +/* + * Domain [-0.34568, 0.34568], range ~[-6.694e-10, 6.696e-10]: + * |6 / x * (1 + 2 * (1 / (exp(x) - 1) - 1 / x)) - q(x)| < 2**-30.04 + * Scaled coefficients: Qn_here = 2**n * Qn_for_q (see s_expm1.c): + */ +var _Q11 = float32(-Float64FromFloat64(0.033333212137)) /* -0x888868.0p-28 */ +var _Q21 = float32(0.0015807170421) /* 0xcf3010.0p-33 */ + +func Xexpm1f(tls *TLS, x3 float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var c, e, hfx, hi, hxs, lo, r1, t, twopk, y3 Tfloat_t + var hx Tuint32_t + var k, sign int32 + var y, v1 float32 + var y1, y2 float64 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, e, hfx, hi, hx, hxs, k, lo, r1, sign, t, twopk, y, y1, y2, y3, v1 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x3 + hx = *(*Tuint32_t)(unsafe.Pointer(bp)) & uint32(0x7fffffff) + sign = int32(*(*Tuint32_t)(unsafe.Pointer(bp)) >> int32(31)) + /* filter out huge and non-finite argument */ + if hx >= uint32(0x4195b844) { /* if |x|>=27*ln2 */ + if hx > uint32(0x7f800000) { /* NaN */ + return x3 + } + if sign != 0 { + return float32(-Int32FromInt32(1)) + } + if hx > uint32(0x42b17217) { /* x > log(FLT_MAX) */ + x3 *= Float32FromFloat32(1.7014118346046923e+38) + return x3 + } + } + /* argument reduction */ + if hx > uint32(0x3eb17218) { /* if |x| > 0.5 ln2 */ + if hx < uint32(0x3F851592) { /* and |x| < 1.5 ln2 */ + if !(sign != 0) { + hi = x3 - _ln2_hi1 + lo = _ln2_lo1 + k = int32(1) + } else { + hi = x3 + _ln2_hi1 + lo = -_ln2_lo1 + k = -int32(1) + } + } else { + if sign != 0 { + v1 = -Float32FromFloat32(0.5) + } else { + v1 = Float32FromFloat32(0.5) + } + k = int32(_invln21*x3 + v1) + t = float32(k) + hi = x3 - t*_ln2_hi1 /* t*ln2_hi is exact here */ + lo = t * _ln2_lo1 + } + x3 = hi - lo + c = hi - x3 - lo + } else { + if hx < uint32(0x33000000) { /* when |x|<2**-25, return x */ + if hx < uint32(0x00800000) { + if uint64(4) == uint64(4) { + y = x3 * x3 + } else { + if uint64(4) == uint64(8) { + y1 = float64(x3 * x3) + } else { + y2 = float64(x3 * x3) + } + } + } + return x3 + } else { + k = 0 + } + } + /* x is now in primary range */ + hfx = Float32FromFloat32(0.5) * x3 + hxs = x3 * hfx + r1 = Float32FromFloat32(1) + hxs*(_Q11+hxs*_Q21) + t = Float32FromFloat32(3) - r1*hfx + e = hxs * ((r1 - t) / (Float32FromFloat32(6) - x3*t)) + if k == 0 { /* c is 0 */ + return x3 - (x3*e - hxs) + } + e = x3*(e-c) - c + e -= hxs + /* exp(x) ~ 2^k (Xreduced - e + 1) */ + if k == -int32(1) { + return Float32FromFloat32(0.5)*(x3-e) - Float32FromFloat32(0.5) + } + if k == int32(1) { + if x3 < -Float32FromFloat32(0.25) { + return -Float32FromFloat32(2) * (e - (x3 + Float32FromFloat32(0.5))) + } + return Float32FromFloat32(1) + Float32FromFloat32(2)*(x3-e) + } + *(*Tuint32_t)(unsafe.Pointer(bp)) = uint32((int32(0x7f) + k) << int32(23)) /* 2^k */ + twopk = *(*float32)(unsafe.Pointer(bp)) + if k < 0 || k > int32(56) { /* suffice to return exp(x)-1 */ + y3 = x3 - e + Float32FromFloat32(1) + if k == int32(128) { + y3 = y3 * Float32FromFloat32(2) * Float32FromFloat32(1.7014118346046923e+38) + } else { + y3 = y3 * twopk + } + return y3 - Float32FromFloat32(1) + } + *(*Tuint32_t)(unsafe.Pointer(bp)) = uint32((int32(0x7f) - k) << int32(23)) /* 2^-k */ + if k < int32(23) { + y3 = (x3 - e + (Float32FromInt32(1) - *(*float32)(unsafe.Pointer(bp)))) * twopk + } else { + y3 = (x3 - (e + *(*float32)(unsafe.Pointer(bp))) + Float32FromInt32(1)) * twopk + } + return y3 +} + +func Xexpm1l(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xexpm1(tls, x) +} + +func Xfabs(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var p1 uintptr + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _ = p1 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x + p1 = bp + *(*Tuint64_t)(unsafe.Pointer(p1)) = *(*Tuint64_t)(unsafe.Pointer(p1)) & (-Uint64FromUint64(1) / Uint64FromInt32(2)) + return *(*float64)(unsafe.Pointer(bp)) +} + +func Xfabsf(tls *TLS, x float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x + *(*Tuint32_t)(unsafe.Pointer(bp)) &= uint32(0x7fffffff) + return *(*float32)(unsafe.Pointer(bp)) +} + +func Xfabsl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfabs(tls, x) +} + +func Xfdim(tls *TLS, x float64, y float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1, v3 uint64 + var v5 float64 + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + _, _, _ = v1, v3, v5 + *(*float64)(unsafe.Pointer(bp)) = x + v1 = *(*uint64)(unsafe.Pointer(bp)) + goto _2 +_2: + if BoolInt32(v1&(-Uint64FromUint64(1)>>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)<>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)< y { + v5 = x - y + } else { + v5 = Float64FromInt32(0) + } + return v5 +} + +func Xfdimf(tls *TLS, x float32, y float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1, v3 uint32 + var v5 float32 + var _ /* __u at bp+0 */ struct { + F__i [0]uint32 + F__f float32 + } + _, _, _ = v1, v3, v5 + *(*float32)(unsafe.Pointer(bp)) = x + v1 = *(*uint32)(unsafe.Pointer(bp)) + goto _2 +_2: + if BoolInt32(v1&uint32(0x7fffffff) > uint32(0x7f800000)) != 0 { + return x + } + *(*float32)(unsafe.Pointer(bp)) = y + v3 = *(*uint32)(unsafe.Pointer(bp)) + goto _4 +_4: + if BoolInt32(v3&uint32(0x7fffffff) > uint32(0x7f800000)) != 0 { + return y + } + if x > y { + v5 = x - y + } else { + v5 = Float32FromInt32(0) + } + return v5 +} + +func Xfdiml(tls *TLS, x float64, y float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfdim(tls, x, y) +} + +func Xfinite(tls *TLS, x float64) (r int32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1 uint64 + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + _ = v1 + *(*float64)(unsafe.Pointer(bp)) = x + v1 = *(*uint64)(unsafe.Pointer(bp)) + goto _2 +_2: + return BoolInt32(v1&(-Uint64FromUint64(1)>>Int32FromInt32(1)) < Uint64FromUint64(0x7ff)< %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1 uint32 + var _ /* __u at bp+0 */ struct { + F__i [0]uint32 + F__f float32 + } + _ = v1 + *(*float32)(unsafe.Pointer(bp)) = x + v1 = *(*uint32)(unsafe.Pointer(bp)) + goto _2 +_2: + return BoolInt32(v1&uint32(0x7fffffff) < uint32(0x7f800000)) +} + +const DBL_EPSILON7 = 2.220446049250313e-16 + +var _toint3 = Float64FromInt32(1) / Float64FromFloat64(2.220446049250313e-16) + +func Xfloor(tls *TLS, x3 float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e, v1 int32 + var y float32 + var y1, y2 float64 + var y3 Tdouble_t + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _, _ = e, y, y1, y2, y3, v1 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x3 + e = int32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(52) & uint64(0x7ff)) + if e >= Int32FromInt32(0x3ff)+Int32FromInt32(52) || x3 == Float64FromInt32(0) { + return x3 + } + /* y = int(x) - x, where int(x) is an integer neighbor of x */ + if *(*Tuint64_t)(unsafe.Pointer(bp))>>int32(63) != 0 { + y3 = x3 - _toint3 + _toint3 - x3 + } else { + y3 = x3 + _toint3 - _toint3 - x3 + } + /* special case because of non-nearest rounding modes */ + if e <= Int32FromInt32(0x3ff)-Int32FromInt32(1) { + if uint64(8) == uint64(4) { + y = float32(y3) + } else { + if uint64(8) == uint64(8) { + y1 = y3 + } else { + y2 = y3 + } + } + if *(*Tuint64_t)(unsafe.Pointer(bp))>>int32(63) != 0 { + v1 = -int32(1) + } else { + v1 = 0 + } + return float64(v1) + } + if y3 > Float64FromInt32(0) { + return x3 + y3 - Float64FromInt32(1) + } + return x3 + y3 +} + +const DBL_EPSILON8 = 0 + +func Xfloorf(tls *TLS, x3 float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e int32 + var m Tuint32_t + var y float32 + var y1, y2 float64 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _ = e, m, y, y1, y2 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x3 + e = int32(*(*Tuint32_t)(unsafe.Pointer(bp))>>Int32FromInt32(23)&Uint32FromInt32(0xff)) - int32(0x7f) + if e >= int32(23) { + return x3 + } + if e >= 0 { + m = uint32(int32(0x007fffff) >> e) + if *(*Tuint32_t)(unsafe.Pointer(bp))&m == uint32(0) { + return x3 + } + if uint64(4) == uint64(4) { + y = x3 + Float32FromFloat32(1.329227995784916e+36) + } else { + if uint64(4) == uint64(8) { + y1 = float64(x3 + Float32FromFloat32(1.329227995784916e+36)) + } else { + y2 = float64(x3 + Float32FromFloat32(1.329227995784916e+36)) + } + } + if *(*Tuint32_t)(unsafe.Pointer(bp))>>int32(31) != 0 { + *(*Tuint32_t)(unsafe.Pointer(bp)) += m + } + *(*Tuint32_t)(unsafe.Pointer(bp)) &= ^m + } else { + if uint64(4) == uint64(4) { + y = x3 + Float32FromFloat32(1.329227995784916e+36) + } else { + if uint64(4) == uint64(8) { + y1 = float64(x3 + Float32FromFloat32(1.329227995784916e+36)) + } else { + y2 = float64(x3 + Float32FromFloat32(1.329227995784916e+36)) + } + } + if *(*Tuint32_t)(unsafe.Pointer(bp))>>int32(31) == uint32(0) { + *(*Tuint32_t)(unsafe.Pointer(bp)) = uint32(0) + } else { + if *(*Tuint32_t)(unsafe.Pointer(bp))< %v", r) }() + } + return Xfloor(tls, x) +} + +const DBL_MIN1 = 2.2250738585072014e-308 +const FLT_MIN1 = 1.1754943508222875e-38 +const ZEROINFNAN = 971 + +type Tnum = struct { + Fm Tuint64_t + Fe int32 + Fsign int32 +} + +func _normalize(tls *TLS, x float64) (r Tnum) { + var e, sign, v2 int32 + var ix Tuint64_t + var v1 float64 + _, _, _, _, _ = e, ix, sign, v1, v2 + ix = *(*Tuint64_t)(unsafe.Pointer(&x)) + e = int32(ix >> int32(52)) + sign = e & int32(0x800) + e &= int32(0x7ff) + if !(e != 0) { + v1 = x * float64(9.223372036854776e+18) + ix = *(*Tuint64_t)(unsafe.Pointer(&v1)) + e = int32(ix >> int32(52) & uint64(0x7ff)) + if e != 0 { + v2 = e - int32(63) + } else { + v2 = int32(0x800) + } + e = v2 + } + ix = ix & (Uint64FromUint64(1)<> int32(32) + ylo = uint64(uint32(y)) + yhi = y >> int32(32) + t1 = xlo * ylo + t2 = xlo*yhi + xhi*ylo + t3 = xhi * yhi + *(*Tuint64_t)(unsafe.Pointer(lo)) = t1 + t2<>Int32FromInt32(32) + BoolUint64(t1 > *(*Tuint64_t)(unsafe.Pointer(lo))) +} + +func Xfma(tls *TLS, x1 float64, y float64, z float64) (r1 float64) { + if __ccgo_strace { + trc("tls=%v x1=%v y=%v z=%v, (%v:)", tls, x1, y, z, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var c, r float64 + var d, e, nonzero, samesign, sign, v2, v5 int32 + var fltmin float32 + var i Tint64_t + var nx, ny, nz Tnum + var t, zhi, zlo, v1, v4 Tuint64_t + var tiny Tdouble_t + var _ /* rhi at bp+0 */ Tuint64_t + var _ /* rlo at bp+8 */ Tuint64_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, d, e, fltmin, i, nonzero, nx, ny, nz, r, samesign, sign, t, tiny, zhi, zlo, v1, v2, v4, v5 + nx = _normalize(tls, x1) + ny = _normalize(tls, y) + nz = _normalize(tls, z) + if nx.Fe >= Int32FromInt32(0x7ff)-Int32FromInt32(0x3ff)-Int32FromInt32(52)-Int32FromInt32(1) || ny.Fe >= Int32FromInt32(0x7ff)-Int32FromInt32(0x3ff)-Int32FromInt32(52)-Int32FromInt32(1) { + return x1*y + z + } + if nz.Fe >= Int32FromInt32(0x7ff)-Int32FromInt32(0x3ff)-Int32FromInt32(52)-Int32FromInt32(1) { + if nz.Fe > Int32FromInt32(0x7ff)-Int32FromInt32(0x3ff)-Int32FromInt32(52)-Int32FromInt32(1) { /* z==0 */ + return x1*y + z + } + return z + } + _mul(tls, bp, bp+8, nx.Fm, ny.Fm) + /* either top 20 or 21 bits of rhi and last 2 bits of rlo are 0 */ + /* align exponents */ + e = nx.Fe + ny.Fe + d = nz.Fe - e + /* shift bits z<<=kz, r>>=kr, so kz+kr == d, set e = e+kr (== ez-kz) */ + if d > 0 { + if d < int32(64) { + zlo = nz.Fm << d + zhi = nz.Fm >> (int32(64) - d) + } else { + zlo = uint64(0) + zhi = nz.Fm + e = nz.Fe - int32(64) + d -= int32(64) + if d == 0 { + } else { + if d < int32(64) { + *(*Tuint64_t)(unsafe.Pointer(bp + 8)) = *(*Tuint64_t)(unsafe.Pointer(bp))<<(int32(64)-d) | *(*Tuint64_t)(unsafe.Pointer(bp + 8))>>d | BoolUint64(!!(*(*Tuint64_t)(unsafe.Pointer(bp + 8))<<(Int32FromInt32(64)-d) != 0)) + *(*Tuint64_t)(unsafe.Pointer(bp)) = *(*Tuint64_t)(unsafe.Pointer(bp)) >> d + } else { + *(*Tuint64_t)(unsafe.Pointer(bp + 8)) = uint64(1) + *(*Tuint64_t)(unsafe.Pointer(bp)) = uint64(0) + } + } + } + } else { + zhi = uint64(0) + d = -d + if d == 0 { + zlo = nz.Fm + } else { + if d < int32(64) { + zlo = nz.Fm>>d | BoolUint64(!!(nz.Fm<<(Int32FromInt32(64)-d) != 0)) + } else { + zlo = uint64(1) + } + } + } + /* add */ + sign = nx.Fsign ^ ny.Fsign + samesign = BoolInt32(!(sign^nz.Fsign != 0)) + nonzero = int32(1) + if samesign != 0 { + /* r += z */ + *(*Tuint64_t)(unsafe.Pointer(bp + 8)) += zlo + *(*Tuint64_t)(unsafe.Pointer(bp)) += zhi + BoolUint64(*(*Tuint64_t)(unsafe.Pointer(bp + 8)) < zlo) + } else { + /* r -= z */ + t = *(*Tuint64_t)(unsafe.Pointer(bp + 8)) + *(*Tuint64_t)(unsafe.Pointer(bp + 8)) -= zlo + *(*Tuint64_t)(unsafe.Pointer(bp)) = *(*Tuint64_t)(unsafe.Pointer(bp)) - zhi - BoolUint64(t < *(*Tuint64_t)(unsafe.Pointer(bp + 8))) + if *(*Tuint64_t)(unsafe.Pointer(bp))>>int32(63) != 0 { + *(*Tuint64_t)(unsafe.Pointer(bp + 8)) = -*(*Tuint64_t)(unsafe.Pointer(bp + 8)) + *(*Tuint64_t)(unsafe.Pointer(bp)) = -*(*Tuint64_t)(unsafe.Pointer(bp)) - BoolUint64(!!(*(*Tuint64_t)(unsafe.Pointer(bp + 8)) != 0)) + sign = BoolInt32(!(sign != 0)) + } + nonzero = BoolInt32(!!(*(*Tuint64_t)(unsafe.Pointer(bp)) != 0)) + } + /* set rhi to top 63bit of the result (last bit is sticky) */ + if nonzero != 0 { + e += int32(64) + v1 = *(*Tuint64_t)(unsafe.Pointer(bp)) + // __asm__("clz %0, %1" : "=r"(x) : "r"(x)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 80, __ccgo_ts+566) + v2 = int32(v1) + goto _3 + _3: + d = v2 - int32(1) + /* note: d > 0 */ + *(*Tuint64_t)(unsafe.Pointer(bp)) = *(*Tuint64_t)(unsafe.Pointer(bp))<>(int32(64)-d) | BoolUint64(!!(*(*Tuint64_t)(unsafe.Pointer(bp + 8))<>int32(1) | *(*Tuint64_t)(unsafe.Pointer(bp + 8))&uint64(1) + } else { + *(*Tuint64_t)(unsafe.Pointer(bp)) = *(*Tuint64_t)(unsafe.Pointer(bp + 8)) << d + } + } else { + /* exact +-0 */ + return x1*y + z + } + } + e -= d + /* convert to double */ + i = int64(*(*Tuint64_t)(unsafe.Pointer(bp))) /* i is in [1<<62,(1<<63)-1] */ + if sign != 0 { + i = -i + } + r = float64(i) /* |r| is in [0x1p62,0x1p63] */ + if e < -Int32FromInt32(1022)-Int32FromInt32(62) { + /* result is subnormal before rounding */ + if e == -Int32FromInt32(1022)-Int32FromInt32(63) { + c = float64(9.223372036854776e+18) + if sign != 0 { + c = -c + } + if r == c { + /* min normal after rounding, underflow depends + on arch behaviour which can be imitated by + a double to float conversion */ + fltmin = float32(Float64FromFloat64(1.0842021401737618e-19) * Float64FromFloat32(1.1754943508222875e-38) * r) + return Float64FromFloat64(2.2250738585072014e-308) / Float64FromFloat32(1.1754943508222875e-38) * float64(fltmin) + } + /* one bit is lost when scaled, add another top bit to + only round once at conversion if it is inexact */ + if *(*Tuint64_t)(unsafe.Pointer(bp))<>int32(1) | *(*Tuint64_t)(unsafe.Pointer(bp))&uint64(1) | Uint64FromUint64(1)<>d | BoolUint64(!!(*(*Tuint64_t)(unsafe.Pointer(bp))<<(Int32FromInt32(64)-d) != 0))) << d) + if sign != 0 { + i = -i + } + r = float64(i) + } + } + return Xscalbn(tls, r, e) +} + +const DBL_MIN2 = 0 +const FLT_MIN2 = 0 + +func Xfmal(tls *TLS, x float64, y float64, z float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v z=%v, (%v:)", tls, x, y, z, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfma(tls, x, y, z) +} + +func Xfmax(tls *TLS, x float64, y float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1, v10, v3, v5, v7 uint64 + var v12, v9 float64 + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + _, _, _, _, _, _, _ = v1, v10, v12, v3, v5, v7, v9 + *(*float64)(unsafe.Pointer(bp)) = x + v1 = *(*uint64)(unsafe.Pointer(bp)) + goto _2 +_2: + if BoolInt32(v1&(-Uint64FromUint64(1)>>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)<>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)<>Int32FromInt32(63)) != int32(v7>>Int32FromInt32(63)) { + *(*float64)(unsafe.Pointer(bp)) = x + v10 = *(*uint64)(unsafe.Pointer(bp)) + goto _11 + _11: + if int32(v10>>Int32FromInt32(63)) != 0 { + v9 = y + } else { + v9 = x + } + return v9 + } + if x < y { + v12 = y + } else { + v12 = x + } + return v12 +} + +func Xfmaxf(tls *TLS, x float32, y float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1, v10, v3, v5, v7 uint32 + var v12, v9 float32 + var _ /* __u at bp+0 */ struct { + F__i [0]uint32 + F__f float32 + } + _, _, _, _, _, _, _ = v1, v10, v12, v3, v5, v7, v9 + *(*float32)(unsafe.Pointer(bp)) = x + v1 = *(*uint32)(unsafe.Pointer(bp)) + goto _2 +_2: + if BoolInt32(v1&uint32(0x7fffffff) > uint32(0x7f800000)) != 0 { + return y + } + *(*float32)(unsafe.Pointer(bp)) = y + v3 = *(*uint32)(unsafe.Pointer(bp)) + goto _4 +_4: + if BoolInt32(v3&uint32(0x7fffffff) > uint32(0x7f800000)) != 0 { + return x + } + /* handle signed zeroes, see C99 Annex F.9.9.2 */ + *(*float32)(unsafe.Pointer(bp)) = x + v5 = *(*uint32)(unsafe.Pointer(bp)) + goto _6 +_6: + *(*float32)(unsafe.Pointer(bp)) = y + v7 = *(*uint32)(unsafe.Pointer(bp)) + goto _8 +_8: + if int32(v5>>Int32FromInt32(31)) != int32(v7>>Int32FromInt32(31)) { + *(*float32)(unsafe.Pointer(bp)) = x + v10 = *(*uint32)(unsafe.Pointer(bp)) + goto _11 + _11: + if int32(v10>>Int32FromInt32(31)) != 0 { + v9 = y + } else { + v9 = x + } + return v9 + } + if x < y { + v12 = y + } else { + v12 = x + } + return v12 +} + +func Xfmaxl(tls *TLS, x float64, y float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfmax(tls, x, y) +} + +func Xfmin(tls *TLS, x float64, y float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1, v10, v3, v5, v7 uint64 + var v12, v9 float64 + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + _, _, _, _, _, _, _ = v1, v10, v12, v3, v5, v7, v9 + *(*float64)(unsafe.Pointer(bp)) = x + v1 = *(*uint64)(unsafe.Pointer(bp)) + goto _2 +_2: + if BoolInt32(v1&(-Uint64FromUint64(1)>>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)<>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)<>Int32FromInt32(63)) != int32(v7>>Int32FromInt32(63)) { + *(*float64)(unsafe.Pointer(bp)) = x + v10 = *(*uint64)(unsafe.Pointer(bp)) + goto _11 + _11: + if int32(v10>>Int32FromInt32(63)) != 0 { + v9 = x + } else { + v9 = y + } + return v9 + } + if x < y { + v12 = x + } else { + v12 = y + } + return v12 +} + +func Xfminf(tls *TLS, x float32, y float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1, v10, v3, v5, v7 uint32 + var v12, v9 float32 + var _ /* __u at bp+0 */ struct { + F__i [0]uint32 + F__f float32 + } + _, _, _, _, _, _, _ = v1, v10, v12, v3, v5, v7, v9 + *(*float32)(unsafe.Pointer(bp)) = x + v1 = *(*uint32)(unsafe.Pointer(bp)) + goto _2 +_2: + if BoolInt32(v1&uint32(0x7fffffff) > uint32(0x7f800000)) != 0 { + return y + } + *(*float32)(unsafe.Pointer(bp)) = y + v3 = *(*uint32)(unsafe.Pointer(bp)) + goto _4 +_4: + if BoolInt32(v3&uint32(0x7fffffff) > uint32(0x7f800000)) != 0 { + return x + } + /* handle signed zeros, see C99 Annex F.9.9.2 */ + *(*float32)(unsafe.Pointer(bp)) = x + v5 = *(*uint32)(unsafe.Pointer(bp)) + goto _6 +_6: + *(*float32)(unsafe.Pointer(bp)) = y + v7 = *(*uint32)(unsafe.Pointer(bp)) + goto _8 +_8: + if int32(v5>>Int32FromInt32(31)) != int32(v7>>Int32FromInt32(31)) { + *(*float32)(unsafe.Pointer(bp)) = x + v10 = *(*uint32)(unsafe.Pointer(bp)) + goto _11 + _11: + if int32(v10>>Int32FromInt32(31)) != 0 { + v9 = x + } else { + v9 = y + } + return v9 + } + if x < y { + v12 = x + } else { + v12 = y + } + return v12 +} + +func Xfminl(tls *TLS, x float64, y float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfmin(tls, x, y) +} + +func Xfmod(tls *TLS, x float64, y float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var ex, ey, sx int32 + var i, uxi Tuint64_t + var v1 uint64 + var v3 bool + var p6, p7 uintptr + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + var _ /* ux at bp+8 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + var _ /* uy at bp+16 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _, _, _, _, _ = ex, ey, i, sx, uxi, v1, v3, p6, p7 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp + 8)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp + 8)) = x + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp + 16)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp + 16)) = y + ex = int32(*(*Tuint64_t)(unsafe.Pointer(bp + 8)) >> int32(52) & uint64(0x7ff)) + ey = int32(*(*Tuint64_t)(unsafe.Pointer(bp + 16)) >> int32(52) & uint64(0x7ff)) + sx = int32(*(*Tuint64_t)(unsafe.Pointer(bp + 8)) >> int32(63)) + /* in the followings uxi should be ux.i, but then gcc wrongly adds */ + /* float load/store to inner loops ruining performance and code size */ + uxi = *(*Tuint64_t)(unsafe.Pointer(bp + 8)) + if v3 = *(*Tuint64_t)(unsafe.Pointer(bp + 16))<>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)<>int32(63) == uint64(0)) { + break + } + goto _4 + _4: + ; + ex-- + i <<= uint64(1) + } + uxi <<= uint64(-ex + int32(1)) + } else { + uxi = uxi & (-Uint64FromUint64(1) >> Int32FromInt32(12)) + uxi = uxi | Uint64FromUint64(1)<>int32(63) == uint64(0)) { + break + } + goto _5 + _5: + ; + ey-- + i <<= uint64(1) + } + *(*Tuint64_t)(unsafe.Pointer(bp + 16)) <<= uint64(-ey + int32(1)) + } else { + p6 = bp + 16 + *(*Tuint64_t)(unsafe.Pointer(p6)) = *(*Tuint64_t)(unsafe.Pointer(p6)) & (-Uint64FromUint64(1) >> Int32FromInt32(12)) + p7 = bp + 16 + *(*Tuint64_t)(unsafe.Pointer(p7)) = *(*Tuint64_t)(unsafe.Pointer(p7)) | Uint64FromUint64(1)< ey) { + break + } + i = uxi - *(*Tuint64_t)(unsafe.Pointer(bp + 16)) + if i>>int32(63) == uint64(0) { + if i == uint64(0) { + return Float64FromInt32(0) * x + } + uxi = i + } + uxi <<= uint64(1) + goto _8 + _8: + ; + ex-- + } + i = uxi - *(*Tuint64_t)(unsafe.Pointer(bp + 16)) + if i>>int32(63) == uint64(0) { + if i == uint64(0) { + return Float64FromInt32(0) * x + } + uxi = i + } + for { + if !(uxi>>int32(52) == uint64(0)) { + break + } + goto _9 + _9: + ; + uxi <<= uint64(1) + ex-- + } + /* scale result */ + if ex > 0 { + uxi = uxi - Uint64FromUint64(1)<>= uint64(-ex + int32(1)) + } + uxi |= uint64(sx) << int32(63) + *(*Tuint64_t)(unsafe.Pointer(bp + 8)) = uxi + return *(*float64)(unsafe.Pointer(bp + 8)) +} + +func Xfmodf(tls *TLS, x float32, y float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ex, ey int32 + var i, sx, uxi Tuint32_t + var v1 uint32 + var v3 bool + var _ /* __u at bp+0 */ struct { + F__i [0]uint32 + F__f float32 + } + var _ /* ux at bp+4 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + var _ /* uy at bp+8 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _, _, _ = ex, ey, i, sx, uxi, v1, v3 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp + 4)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp + 4)) = x + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp + 8)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp + 8)) = y + ex = int32(*(*Tuint32_t)(unsafe.Pointer(bp + 4)) >> int32(23) & uint32(0xff)) + ey = int32(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) >> int32(23) & uint32(0xff)) + sx = *(*Tuint32_t)(unsafe.Pointer(bp + 4)) & uint32(0x80000000) + uxi = *(*Tuint32_t)(unsafe.Pointer(bp + 4)) + if v3 = *(*Tuint32_t)(unsafe.Pointer(bp + 8))< uint32(0x7f800000)) != 0 || ex == int32(0xff) { + return x * y / (x * y) + } + if uxi<>int32(31) == uint32(0)) { + break + } + goto _4 + _4: + ; + ex-- + i <<= uint32(1) + } + uxi <<= uint32(-ex + int32(1)) + } else { + uxi &= -Uint32FromUint32(1) >> Int32FromInt32(9) + uxi |= Uint32FromUint32(1) << Int32FromInt32(23) + } + if !(ey != 0) { + i = *(*Tuint32_t)(unsafe.Pointer(bp + 8)) << int32(9) + for { + if !(i>>int32(31) == uint32(0)) { + break + } + goto _5 + _5: + ; + ey-- + i <<= uint32(1) + } + *(*Tuint32_t)(unsafe.Pointer(bp + 8)) <<= uint32(-ey + int32(1)) + } else { + *(*Tuint32_t)(unsafe.Pointer(bp + 8)) &= -Uint32FromUint32(1) >> Int32FromInt32(9) + *(*Tuint32_t)(unsafe.Pointer(bp + 8)) |= Uint32FromUint32(1) << Int32FromInt32(23) + } + /* x mod y */ + for { + if !(ex > ey) { + break + } + i = uxi - *(*Tuint32_t)(unsafe.Pointer(bp + 8)) + if i>>int32(31) == uint32(0) { + if i == uint32(0) { + return Float32FromInt32(0) * x + } + uxi = i + } + uxi <<= uint32(1) + goto _6 + _6: + ; + ex-- + } + i = uxi - *(*Tuint32_t)(unsafe.Pointer(bp + 8)) + if i>>int32(31) == uint32(0) { + if i == uint32(0) { + return Float32FromInt32(0) * x + } + uxi = i + } + for { + if !(uxi>>int32(23) == uint32(0)) { + break + } + goto _7 + _7: + ; + uxi <<= uint32(1) + ex-- + } + /* scale result up */ + if ex > 0 { + uxi -= Uint32FromUint32(1) << Int32FromInt32(23) + uxi |= uint32(ex) << int32(23) + } else { + uxi >>= uint32(-ex + int32(1)) + } + uxi |= sx + *(*Tuint32_t)(unsafe.Pointer(bp + 4)) = uxi + return *(*float32)(unsafe.Pointer(bp + 4)) +} + +func Xfmodl(tls *TLS, x float64, y float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfmod(tls, x, y) +} + +func Xfrexp(tls *TLS, x float64, e uintptr) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v e=%v, (%v:)", tls, x, e, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ee int32 + var p1, p2 uintptr + var _ /* y at bp+0 */ struct { + Fi [0]Tuint64_t + Fd float64 + } + _, _, _ = ee, p1, p2 + *(*struct { + Fi [0]Tuint64_t + Fd float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Fd float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x + ee = int32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(52) & uint64(0x7ff)) + if !(ee != 0) { + if x != 0 { + x = Xfrexp(tls, x*float64(1.8446744073709552e+19), e) + *(*int32)(unsafe.Pointer(e)) -= int32(64) + } else { + *(*int32)(unsafe.Pointer(e)) = 0 + } + return x + } else { + if ee == int32(0x7ff) { + return x + } + } + *(*int32)(unsafe.Pointer(e)) = ee - int32(0x3fe) + p1 = bp + *(*Tuint64_t)(unsafe.Pointer(p1)) = *(*Tuint64_t)(unsafe.Pointer(p1)) & Uint64FromUint64(0x800fffffffffffff) + p2 = bp + *(*Tuint64_t)(unsafe.Pointer(p2)) = *(*Tuint64_t)(unsafe.Pointer(p2)) | Uint64FromUint64(0x3fe0000000000000) + return *(*float64)(unsafe.Pointer(bp)) +} + +func Xfrexpf(tls *TLS, x float32, e uintptr) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v e=%v, (%v:)", tls, x, e, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ee int32 + var p1, p2 uintptr + var _ /* y at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _ = ee, p1, p2 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x + ee = int32(*(*Tuint32_t)(unsafe.Pointer(bp)) >> int32(23) & uint32(0xff)) + if !(ee != 0) { + if x != 0 { + x = Xfrexpf(tls, float32(float64(x)*float64(1.8446744073709552e+19)), e) + *(*int32)(unsafe.Pointer(e)) -= int32(64) + } else { + *(*int32)(unsafe.Pointer(e)) = 0 + } + return x + } else { + if ee == int32(0xff) { + return x + } + } + *(*int32)(unsafe.Pointer(e)) = ee - int32(0x7e) + p1 = bp + *(*Tuint32_t)(unsafe.Pointer(p1)) = Tuint32_t(uint64(*(*Tuint32_t)(unsafe.Pointer(p1))) & Uint64FromUint64(0x807fffff)) + p2 = bp + *(*Tuint32_t)(unsafe.Pointer(p2)) = Tuint32_t(uint64(*(*Tuint32_t)(unsafe.Pointer(p2))) | Uint64FromUint64(0x3f000000)) + return *(*float32)(unsafe.Pointer(bp)) +} + +func Xfrexpl(tls *TLS, x float64, e uintptr) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v e=%v, (%v:)", tls, x, e, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfrexp(tls, x, e) +} + +const SPLIT = 1 + +func _sq(tls *TLS, hi uintptr, lo uintptr, x float64) { + var xc, xh, xl Tdouble_t + _, _, _ = xc, xh, xl + xc = x * (Float64FromFloat64(1.34217728e+08) + Float64FromInt32(1)) + xh = x - xc + xc + xl = x - xh + *(*Tdouble_t)(unsafe.Pointer(hi)) = x * x + *(*Tdouble_t)(unsafe.Pointer(lo)) = xh*xh - *(*Tdouble_t)(unsafe.Pointer(hi)) + Float64FromInt32(2)*xh*xl + xl*xl +} + +func Xhypot(tls *TLS, x float64, y float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(48) + defer tls.Free(48) + var ex, ey int32 + var ut struct { + Fi [0]Tuint64_t + Ff float64 + } + var z Tdouble_t + var p1, p2 uintptr + var _ /* hx at bp+16 */ Tdouble_t + var _ /* hy at bp+32 */ Tdouble_t + var _ /* lx at bp+24 */ Tdouble_t + var _ /* ly at bp+40 */ Tdouble_t + var _ /* ux at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + var _ /* uy at bp+8 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _, _ = ex, ey, ut, z, p1, p2 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp + 8)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp + 8)) = y + /* arrange |x| >= |y| */ + p1 = bp + *(*Tuint64_t)(unsafe.Pointer(p1)) = *(*Tuint64_t)(unsafe.Pointer(p1)) & (-Uint64FromUint64(1) >> Int32FromInt32(1)) + p2 = bp + 8 + *(*Tuint64_t)(unsafe.Pointer(p2)) = *(*Tuint64_t)(unsafe.Pointer(p2)) & (-Uint64FromUint64(1) >> Int32FromInt32(1)) + if *(*Tuint64_t)(unsafe.Pointer(bp)) < *(*Tuint64_t)(unsafe.Pointer(bp + 8)) { + ut = *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp + 8)) + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp + 8)) = ut + } + /* special cases */ + ex = int32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(52)) + ey = int32(*(*Tuint64_t)(unsafe.Pointer(bp + 8)) >> int32(52)) + x = *(*float64)(unsafe.Pointer(bp)) + y = *(*float64)(unsafe.Pointer(bp + 8)) + /* note: hypot(inf,nan) == inf */ + if ey == int32(0x7ff) { + return y + } + if ex == int32(0x7ff) || *(*Tuint64_t)(unsafe.Pointer(bp + 8)) == uint64(0) { + return x + } + /* note: hypot(x,y) ~= x + y*y/x/2 with inexact for small y/x */ + /* 64 difference is enough for ld80 double_t */ + if ex-ey > int32(64) { + return x + y + } + /* precise sqrt argument in nearest rounding mode without overflow */ + /* xh*xh must not overflow and xl*xl must not underflow in sq */ + z = Float64FromInt32(1) + if ex > Int32FromInt32(0x3ff)+Int32FromInt32(510) { + z = float64(5.260135901548374e+210) + x *= float64(1.90109156629516e-211) + y *= float64(1.90109156629516e-211) + } else { + if ey < Int32FromInt32(0x3ff)-Int32FromInt32(450) { + z = float64(1.90109156629516e-211) + x *= float64(5.260135901548374e+210) + y *= float64(5.260135901548374e+210) + } + } + _sq(tls, bp+16, bp+24, x) + _sq(tls, bp+32, bp+40, y) + return z * Xsqrt(tls, *(*Tdouble_t)(unsafe.Pointer(bp + 40))+*(*Tdouble_t)(unsafe.Pointer(bp + 24))+*(*Tdouble_t)(unsafe.Pointer(bp + 32))+*(*Tdouble_t)(unsafe.Pointer(bp + 16))) +} + +func Xhypotf(tls *TLS, x float32, y float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ut struct { + Fi [0]Tuint32_t + Ff float32 + } + var z Tfloat_t + var _ /* ux at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + var _ /* uy at bp+4 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _ = ut, z + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp + 4)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp + 4)) = y + *(*Tuint32_t)(unsafe.Pointer(bp)) &= -Uint32FromUint32(1) >> Int32FromInt32(1) + *(*Tuint32_t)(unsafe.Pointer(bp + 4)) &= -Uint32FromUint32(1) >> Int32FromInt32(1) + if *(*Tuint32_t)(unsafe.Pointer(bp)) < *(*Tuint32_t)(unsafe.Pointer(bp + 4)) { + ut = *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp + 4)) + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp + 4)) = ut + } + x = *(*float32)(unsafe.Pointer(bp)) + y = *(*float32)(unsafe.Pointer(bp + 4)) + if *(*Tuint32_t)(unsafe.Pointer(bp + 4)) == uint32(Int32FromInt32(0xff)<= uint32(Int32FromInt32(0xff)<= uint32(Int32FromInt32(25)<= uint32((Int32FromInt32(0x7f)+Int32FromInt32(60))< %v", r) }() + } + return Xhypot(tls, x, y) +} + +func Xilogb(tls *TLS, x3 float64) (r int32) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e, v2 int32 + var i Tuint64_t + var y float32 + var y1, y2 float64 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _, _ = e, i, y, y1, y2, v2 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x3 + i = *(*Tuint64_t)(unsafe.Pointer(bp)) + e = int32(i >> int32(52) & uint64(0x7ff)) + if !(e != 0) { + i <<= uint64(12) + if i == uint64(0) { + if uint64(4) == uint64(4) { + y = Float32FromInt32(0) / Float32FromFloat32(0) + } else { + if uint64(4) == uint64(8) { + y1 = float64(Float32FromInt32(0) / Float32FromFloat32(0)) + } else { + y2 = float64(Float32FromInt32(0) / Float32FromFloat32(0)) + } + } + return -Int32FromInt32(1) - Int32FromInt32(0x7fffffff) + } + /* subnormal x */ + e = -int32(0x3ff) + for { + if !(i>>int32(63) == uint64(0)) { + break + } + goto _1 + _1: + ; + e-- + i <<= uint64(1) + } + return e + } + if e == int32(0x7ff) { + if uint64(4) == uint64(4) { + y = Float32FromInt32(0) / Float32FromFloat32(0) + } else { + if uint64(4) == uint64(8) { + y1 = float64(Float32FromInt32(0) / Float32FromFloat32(0)) + } else { + y2 = float64(Float32FromInt32(0) / Float32FromFloat32(0)) + } + } + if i< %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e, v2 int32 + var i Tuint32_t + var y float32 + var y1, y2 float64 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _, _ = e, i, y, y1, y2, v2 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x3 + i = *(*Tuint32_t)(unsafe.Pointer(bp)) + e = int32(i >> int32(23) & uint32(0xff)) + if !(e != 0) { + i <<= uint32(9) + if i == uint32(0) { + if uint64(4) == uint64(4) { + y = Float32FromInt32(0) / Float32FromFloat32(0) + } else { + if uint64(4) == uint64(8) { + y1 = float64(Float32FromInt32(0) / Float32FromFloat32(0)) + } else { + y2 = float64(Float32FromInt32(0) / Float32FromFloat32(0)) + } + } + return -Int32FromInt32(1) - Int32FromInt32(0x7fffffff) + } + /* subnormal x */ + e = -int32(0x7f) + for { + if !(i>>int32(31) == uint32(0)) { + break + } + goto _1 + _1: + ; + e-- + i <<= uint32(1) + } + return e + } + if e == int32(0xff) { + if uint64(4) == uint64(4) { + y = Float32FromInt32(0) / Float32FromFloat32(0) + } else { + if uint64(4) == uint64(8) { + y1 = float64(Float32FromInt32(0) / Float32FromFloat32(0)) + } else { + y2 = float64(Float32FromInt32(0) / Float32FromFloat32(0)) + } + } + if i< %v", r) }() + } + return Xilogb(tls, x) +} + +var _invsqrtpi = float64(0.5641895835477563) /* 0x3FE20DD7, 0x50429B6D */ +var _tpi = float64(0.6366197723675814) /* 0x3FE45F30, 0x6DC9C883 */ + +// C documentation +// +// /* common method when |x|>=2 */ +func _common(tls *TLS, ix Tuint32_t, x float64, y0 int32) (r float64) { + var c, cc, s, ss, z float64 + _, _, _, _, _ = c, cc, s, ss, z + /* + * j0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x-pi/4)-q0(x)*sin(x-pi/4)) + * y0(x) = sqrt(2/(pi*x))*(p0(x)*sin(x-pi/4)+q0(x)*cos(x-pi/4)) + * + * sin(x-pi/4) = (sin(x) - cos(x))/sqrt(2) + * cos(x-pi/4) = (sin(x) + cos(x))/sqrt(2) + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + */ + s = Xsin(tls, x) + c = Xcos(tls, x) + if y0 != 0 { + c = -c + } + cc = s + c + /* avoid overflow in 2*x, big ulp error when x>=0x1p1023 */ + if ix < uint32(0x7fe00000) { + ss = s - c + z = -Xcos(tls, Float64FromInt32(2)*x) + if s*c < Float64FromInt32(0) { + cc = z / ss + } else { + ss = z / cc + } + if ix < uint32(0x48000000) { + if y0 != 0 { + ss = -ss + } + cc = _pzero(tls, x)*cc - _qzero(tls, x)*ss + } + } + return _invsqrtpi * cc / Xsqrt(tls, x) +} + +// C documentation +// +// /* R0/S0 on [0, 2.00] */ + +var _R02 = float64(0.015624999999999995) /* 0x3F8FFFFF, 0xFFFFFFFD */ +var _R03 = -Float64FromFloat64(0.00018997929423885472) /* 0xBF28E6A5, 0xB61AC6E9 */ +var _R04 = float64(1.8295404953270067e-06) /* 0x3EBEB1D1, 0x0C503919 */ +var _R05 = -Float64FromFloat64(4.618326885321032e-09) /* 0xBE33D5E7, 0x73D63FCE */ +var _S01 = float64(0.015619102946489001) /* 0x3F8FFCE8, 0x82C8C2A4 */ +var _S02 = float64(0.00011692678466333745) /* 0x3F1EA6D2, 0xDD57DBF4 */ +var _S03 = float64(5.135465502073181e-07) /* 0x3EA13B54, 0xCE84D5A9 */ +var _S04 = float64(1.1661400333379e-09) /* 0x3E1408BC, 0xF4745D8F */ + +func Xj0(tls *TLS, x float64) (r1 float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var ix Tuint32_t + var r, s, z float64 + _, _, _, _ = ix, r, s, z + ix = uint32(*(*Tuint64_t)(unsafe.Pointer(&x)) >> int32(32)) + ix &= uint32(0x7fffffff) + /* j0(+-inf)=0, j0(nan)=nan */ + if ix >= uint32(0x7ff00000) { + return Float64FromInt32(1) / (x * x) + } + x = Xfabs(tls, x) + if ix >= uint32(0x40000000) { /* |x| >= 2 */ + /* large ulp error near zeros: 2.4, 5.52, 8.6537,.. */ + return _common(tls, ix, x, 0) + } + /* 1 - x*x/4 + x*x*R(x^2)/S(x^2) */ + if ix >= uint32(0x3f200000) { /* |x| >= 2**-13 */ + /* up to 4ulp error close to 2 */ + z = x * x + r = z * (_R02 + z*(_R03+z*(_R04+z*_R05))) + s = Float64FromInt32(1) + z*(_S01+z*(_S02+z*(_S03+z*_S04))) + return (Float64FromInt32(1)+x/Float64FromInt32(2))*(Float64FromInt32(1)-x/Float64FromInt32(2)) + z*(r/s) + } + /* 1 - x*x/4 */ + /* prevent underflow */ + /* inexact should be raised when x!=0, this is not done correctly */ + if ix >= uint32(0x38000000) { /* |x| >= 2**-127 */ + x = float64(0.25) * x * x + } + return Float64FromInt32(1) - x +} + +var _u00 = -Float64FromFloat64(0.07380429510868723) /* 0xBFB2E4D6, 0x99CBD01F */ +var _u01 = float64(0.17666645250918112) /* 0x3FC69D01, 0x9DE9E3FC */ +var _u02 = -Float64FromFloat64(0.01381856719455969) /* 0xBF8C4CE8, 0xB16CFA97 */ +var _u03 = float64(0.00034745343209368365) /* 0x3F36C54D, 0x20B29B6B */ +var _u04 = -Float64FromFloat64(3.8140705372436416e-06) /* 0xBECFFEA7, 0x73D25CAD */ +var _u05 = float64(1.9559013703502292e-08) /* 0x3E550057, 0x3B4EABD4 */ +var _u06 = -Float64FromFloat64(3.982051941321034e-11) /* 0xBDC5E43D, 0x693FB3C8 */ +var _v01 = float64(0.01273048348341237) /* 0x3F8A1270, 0x91C9C71A */ +var _v02 = float64(7.600686273503533e-05) /* 0x3F13ECBB, 0xF578C6C1 */ +var _v03 = float64(2.591508518404578e-07) /* 0x3E91642D, 0x7FF202FD */ +var _v04 = float64(4.4111031133267547e-10) /* 0x3DFE5018, 0x3BD6D9EF */ + +func Xy0(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __u Tuint64_t + var ix, lx Tuint32_t + var u, v, z float64 + _, _, _, _, _, _ = __u, ix, lx, u, v, z + __u = *(*Tuint64_t)(unsafe.Pointer(&x)) + ix = uint32(__u >> int32(32)) + lx = uint32(__u) + /* y0(nan)=nan, y0(<0)=nan, y0(0)=-inf, y0(inf)=0 */ + if ix<>int32(31) != 0 { + return Float64FromInt32(0) / Float64FromFloat64(0) + } + if ix >= uint32(0x7ff00000) { + return Float64FromInt32(1) / x + } + if ix >= uint32(0x40000000) { /* x >= 2 */ + /* large ulp errors near zeros: 3.958, 7.086,.. */ + return _common(tls, ix, x, int32(1)) + } + /* U(x^2)/V(x^2) + (2/pi)*j0(x)*log(x) */ + if ix >= uint32(0x3e400000) { /* x >= 2**-27 */ + /* large ulp error near the first zero, x ~= 0.89 */ + z = x * x + u = _u00 + z*(_u01+z*(_u02+z*(_u03+z*(_u04+z*(_u05+z*_u06))))) + v = float64(1) + z*(_v01+z*(_v02+z*(_v03+z*_v04))) + return u/v + _tpi*(Xj0(tls, x)*Xlog(tls, x)) + } + return _u00 + _tpi*Xlog(tls, x) +} + +// C documentation +// +// /* The asymptotic expansions of pzero is +// * 1 - 9/128 s^2 + 11025/98304 s^4 - ..., where s = 1/x. +// * For x >= 2, We approximate pzero by +// * pzero(x) = 1 + (R/S) +// * where R = pR0 + pR1*s^2 + pR2*s^4 + ... + pR5*s^10 +// * S = 1 + pS0*s^2 + ... + pS4*s^10 +// * and +// * | pzero(x)-1-R/S | <= 2 ** ( -60.26) +// */ +var _pR8 = [6]float64{ + 1: -Float64FromFloat64(0.07031249999999004), + 2: -Float64FromFloat64(8.081670412753498), + 3: -Float64FromFloat64(257.06310567970485), + 4: -Float64FromFloat64(2485.216410094288), + 5: -Float64FromFloat64(5253.043804907295), +} +var _pS8 = [5]float64{ + 0: float64(116.53436461966818), + 1: float64(3833.7447536412183), + 2: float64(40597.857264847255), + 3: float64(116752.97256437592), + 4: float64(47627.728414673096), +} + +var _pR5 = [6]float64{ + 0: -Float64FromFloat64(1.141254646918945e-11), + 1: -Float64FromFloat64(0.07031249408735993), + 2: -Float64FromFloat64(4.159610644705878), + 3: -Float64FromFloat64(67.67476522651673), + 4: -Float64FromFloat64(331.23129964917297), + 5: -Float64FromFloat64(346.4333883656049), +} +var _pS52 = [5]float64{ + 0: float64(60.753938269230034), + 1: float64(1051.2523059570458), + 2: float64(5978.970943338558), + 3: float64(9625.445143577745), + 4: float64(2406.058159229391), +} + +var _pR3 = [6]float64{ + 0: -Float64FromFloat64(2.547046017719519e-09), + 1: -Float64FromFloat64(0.07031196163814817), + 2: -Float64FromFloat64(2.409032215495296), + 3: -Float64FromFloat64(21.96597747348831), + 4: -Float64FromFloat64(58.07917047017376), + 5: -Float64FromFloat64(31.44794705948885), +} +var _pS32 = [5]float64{ + 0: float64(35.85603380552097), + 1: float64(361.51398305030386), + 2: float64(1193.6078379211153), + 3: float64(1127.9967985690741), + 4: float64(173.58093081333575), +} + +var _pR2 = [6]float64{ + 0: -Float64FromFloat64(8.875343330325264e-08), + 1: -Float64FromFloat64(0.07030309954836247), + 2: -Float64FromFloat64(1.4507384678095299), + 3: -Float64FromFloat64(7.635696138235278), + 4: -Float64FromFloat64(11.193166886035675), + 5: -Float64FromFloat64(3.2336457935133534), +} +var _pS24 = [5]float64{ + 0: float64(22.22029975320888), + 1: float64(136.2067942182152), + 2: float64(270.4702786580835), + 3: float64(153.87539420832033), + 4: float64(14.65761769482562), +} + +func _pzero(tls *TLS, x float64) (r1 float64) { + var ix Tuint32_t + var p, q uintptr + var r, s, z Tdouble_t + _, _, _, _, _, _ = ix, p, q, r, s, z + ix = uint32(*(*Tuint64_t)(unsafe.Pointer(&x)) >> int32(32)) + ix &= uint32(0x7fffffff) + if ix >= uint32(0x40200000) { + p = uintptr(unsafe.Pointer(&_pR8)) + q = uintptr(unsafe.Pointer(&_pS8)) + } else { + if ix >= uint32(0x40122E8B) { + p = uintptr(unsafe.Pointer(&_pR5)) + q = uintptr(unsafe.Pointer(&_pS52)) + } else { + if ix >= uint32(0x4006DB6D) { + p = uintptr(unsafe.Pointer(&_pR3)) + q = uintptr(unsafe.Pointer(&_pS32)) + } else { /*ix >= 0x40000000*/ + p = uintptr(unsafe.Pointer(&_pR2)) + q = uintptr(unsafe.Pointer(&_pS24)) + } + } + } + z = float64(1) / (x * x) + r = *(*float64)(unsafe.Pointer(p)) + z*(*(*float64)(unsafe.Pointer(p + 1*8))+z*(*(*float64)(unsafe.Pointer(p + 2*8))+z*(*(*float64)(unsafe.Pointer(p + 3*8))+z*(*(*float64)(unsafe.Pointer(p + 4*8))+z**(*float64)(unsafe.Pointer(p + 5*8)))))) + s = float64(1) + z*(*(*float64)(unsafe.Pointer(q))+z*(*(*float64)(unsafe.Pointer(q + 1*8))+z*(*(*float64)(unsafe.Pointer(q + 2*8))+z*(*(*float64)(unsafe.Pointer(q + 3*8))+z**(*float64)(unsafe.Pointer(q + 4*8)))))) + return float64(1) + r/s +} + +// C documentation +// +// /* For x >= 8, the asymptotic expansions of qzero is +// * -1/8 s + 75/1024 s^3 - ..., where s = 1/x. +// * We approximate pzero by +// * qzero(x) = s*(-1.25 + (R/S)) +// * where R = qR0 + qR1*s^2 + qR2*s^4 + ... + qR5*s^10 +// * S = 1 + qS0*s^2 + ... + qS5*s^12 +// * and +// * | qzero(x)/s +1.25-R/S | <= 2 ** ( -61.22) +// */ +var _qR8 = [6]float64{ + 1: float64(0.0732421874999935), + 2: float64(11.76820646822527), + 3: float64(557.6733802564019), + 4: float64(8859.197207564686), + 5: float64(37014.62677768878), +} +var _qS8 = [6]float64{ + 0: float64(163.77602689568982), + 1: float64(8098.344946564498), + 2: float64(142538.29141912048), + 3: float64(803309.2571195144), + 4: float64(840501.5798190605), + 5: -Float64FromFloat64(343899.2935378666), +} + +var _qR5 = [6]float64{ + 0: float64(1.8408596359451553e-11), + 1: float64(0.07324217666126848), + 2: float64(5.8356350896205695), + 3: float64(135.11157728644983), + 4: float64(1027.243765961641), + 5: float64(1989.9778586460538), +} +var _qS5 = [6]float64{ + 0: float64(82.77661022365378), + 1: float64(2077.81416421393), + 2: float64(18847.28877857181), + 3: float64(56751.11228949473), + 4: float64(35976.75384251145), + 5: -Float64FromFloat64(5354.342756019448), +} + +var _qR3 = [6]float64{ + 0: float64(4.377410140897386e-09), + 1: float64(0.07324111800429114), + 2: float64(3.344231375161707), + 3: float64(42.621844074541265), + 4: float64(170.8080913405656), + 5: float64(166.73394869665117), +} +var _qS32 = [6]float64{ + 0: float64(48.75887297245872), + 1: float64(709.689221056606), + 2: float64(3704.1482262011136), + 3: float64(6460.425167525689), + 4: float64(2516.3336892036896), + 5: -Float64FromFloat64(149.2474518361564), +} + +var _qR2 = [6]float64{ + 0: float64(1.5044444488698327e-07), + 1: float64(0.07322342659630793), + 2: float64(1.99819174093816), + 3: float64(14.495602934788574), + 4: float64(31.666231750478154), + 5: float64(16.252707571092927), +} +var _qS22 = [6]float64{ + 0: float64(30.36558483552192), + 1: float64(269.34811860804984), + 2: float64(844.7837575953201), + 3: float64(882.9358451124886), + 4: float64(212.66638851179883), + 5: -Float64FromFloat64(5.3109549388266695), +} + +func _qzero(tls *TLS, x float64) (r1 float64) { + var ix Tuint32_t + var p, q uintptr + var r, s, z Tdouble_t + _, _, _, _, _, _ = ix, p, q, r, s, z + ix = uint32(*(*Tuint64_t)(unsafe.Pointer(&x)) >> int32(32)) + ix &= uint32(0x7fffffff) + if ix >= uint32(0x40200000) { + p = uintptr(unsafe.Pointer(&_qR8)) + q = uintptr(unsafe.Pointer(&_qS8)) + } else { + if ix >= uint32(0x40122E8B) { + p = uintptr(unsafe.Pointer(&_qR5)) + q = uintptr(unsafe.Pointer(&_qS5)) + } else { + if ix >= uint32(0x4006DB6D) { + p = uintptr(unsafe.Pointer(&_qR3)) + q = uintptr(unsafe.Pointer(&_qS32)) + } else { /*ix >= 0x40000000*/ + p = uintptr(unsafe.Pointer(&_qR2)) + q = uintptr(unsafe.Pointer(&_qS22)) + } + } + } + z = float64(1) / (x * x) + r = *(*float64)(unsafe.Pointer(p)) + z*(*(*float64)(unsafe.Pointer(p + 1*8))+z*(*(*float64)(unsafe.Pointer(p + 2*8))+z*(*(*float64)(unsafe.Pointer(p + 3*8))+z*(*(*float64)(unsafe.Pointer(p + 4*8))+z**(*float64)(unsafe.Pointer(p + 5*8)))))) + s = float64(1) + z*(*(*float64)(unsafe.Pointer(q))+z*(*(*float64)(unsafe.Pointer(q + 1*8))+z*(*(*float64)(unsafe.Pointer(q + 2*8))+z*(*(*float64)(unsafe.Pointer(q + 3*8))+z*(*(*float64)(unsafe.Pointer(q + 4*8))+z**(*float64)(unsafe.Pointer(q + 5*8))))))) + return (-Float64FromFloat64(0.125) + r/s) / x +} + +var _invsqrtpi1 = float32(0.56418961287) /* 0x3f106ebb */ +var _tpi1 = float32(0.63661974669) /* 0x3f22f983 */ + +func _common1(tls *TLS, ix Tuint32_t, x float32, y0 int32) (r float32) { + var c, cc, s, ss, z float32 + _, _, _, _, _ = c, cc, s, ss, z + /* + * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x) + * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x) + */ + s = Xsinf(tls, x) + c = Xcosf(tls, x) + if y0 != 0 { + c = -c + } + cc = s + c + if ix < uint32(0x7f000000) { + ss = s - c + z = -Xcosf(tls, Float32FromInt32(2)*x) + if s*c < Float32FromInt32(0) { + cc = z / ss + } else { + ss = z / cc + } + if ix < uint32(0x58800000) { + if y0 != 0 { + ss = -ss + } + cc = _pzerof(tls, x)*cc - _qzerof(tls, x)*ss + } + } + return _invsqrtpi1 * cc / Xsqrtf(tls, x) +} + +// C documentation +// +// /* R0/S0 on [0, 2.00] */ + +var _R021 = float32(0.015625) /* 0x3c800000 */ +var _R031 = float32(-Float64FromFloat64(0.00018997929874)) /* 0xb947352e */ +var _R041 = float32(1.8295404516e-06) /* 0x35f58e88 */ +var _R051 = float32(-Float64FromFloat64(4.6183270541e-09)) /* 0xb19eaf3c */ +var _S011 = float32(0.015619102865) /* 0x3c7fe744 */ +var _S021 = float32(0.00011692678527) /* 0x38f53697 */ +var _S031 = float32(5.1354652442e-07) /* 0x3509daa6 */ +var _S041 = float32(1.1661400734e-09) /* 0x30a045e8 */ + +func Xj0f(tls *TLS, x float32) (r1 float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var ix Tuint32_t + var r, s, z float32 + _, _, _, _ = ix, r, s, z + ix = *(*Tuint32_t)(unsafe.Pointer(&x)) + ix &= uint32(0x7fffffff) + if ix >= uint32(0x7f800000) { + return Float32FromInt32(1) / (x * x) + } + x = Xfabsf(tls, x) + if ix >= uint32(0x40000000) { /* |x| >= 2 */ + /* large ulp error near zeros */ + return _common1(tls, ix, x, 0) + } + if ix >= uint32(0x3a000000) { /* |x| >= 2**-11 */ + /* up to 4ulp error near 2 */ + z = x * x + r = z * (_R021 + z*(_R031+z*(_R041+z*_R051))) + s = Float32FromInt32(1) + z*(_S011+z*(_S021+z*(_S031+z*_S041))) + return (Float32FromInt32(1)+x/Float32FromInt32(2))*(Float32FromInt32(1)-x/Float32FromInt32(2)) + z*(r/s) + } + if ix >= uint32(0x21800000) { /* |x| >= 2**-60 */ + x = Float32FromFloat32(0.25) * x * x + } + return Float32FromInt32(1) - x +} + +var _u001 = float32(-Float64FromFloat64(0.073804296553)) /* 0xbd9726b5 */ +var _u011 = float32(0.17666645348) /* 0x3e34e80d */ +var _u021 = float32(-Float64FromFloat64(0.013818567619)) /* 0xbc626746 */ +var _u031 = float32(0.00034745343146) /* 0x39b62a69 */ +var _u041 = float32(-Float64FromFloat64(3.8140706238e-06)) /* 0xb67ff53c */ +var _u051 = float32(1.9559013964e-08) /* 0x32a802ba */ +var _u061 = float32(-Float64FromFloat64(3.982051841e-11)) /* 0xae2f21eb */ +var _v011 = float32(0.012730483897) /* 0x3c509385 */ +var _v021 = float32(7.6006865129e-05) /* 0x389f65e0 */ +var _v031 = float32(2.5915085189e-07) /* 0x348b216c */ +var _v041 = float32(4.4111031494e-10) /* 0x2ff280c2 */ + +func Xy0f(tls *TLS, x float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ix Tuint32_t + var u, v, z float32 + _, _, _, _ = ix, u, v, z + ix = *(*Tuint32_t)(unsafe.Pointer(&x)) + if ix&uint32(0x7fffffff) == uint32(0) { + return float32(-Int32FromInt32(1)) / Float32FromFloat32(0) + } + if ix>>int32(31) != 0 { + return Float32FromInt32(0) / Float32FromFloat32(0) + } + if ix >= uint32(0x7f800000) { + return Float32FromInt32(1) / x + } + if ix >= uint32(0x40000000) { /* |x| >= 2.0 */ + /* large ulp error near zeros */ + return _common1(tls, ix, x, int32(1)) + } + if ix >= uint32(0x39000000) { /* x >= 2**-13 */ + /* large ulp error at x ~= 0.89 */ + z = x * x + u = _u001 + z*(_u011+z*(_u021+z*(_u031+z*(_u041+z*(_u051+z*_u061))))) + v = Float32FromInt32(1) + z*(_v011+z*(_v021+z*(_v031+z*_v041))) + return u/v + _tpi1*(Xj0f(tls, x)*Xlogf(tls, x)) + } + return _u001 + _tpi1*Xlogf(tls, x) +} + +// C documentation +// +// /* The asymptotic expansions of pzero is +// * 1 - 9/128 s^2 + 11025/98304 s^4 - ..., where s = 1/x. +// * For x >= 2, We approximate pzero by +// * pzero(x) = 1 + (R/S) +// * where R = pR0 + pR1*s^2 + pR2*s^4 + ... + pR5*s^10 +// * S = 1 + pS0*s^2 + ... + pS4*s^10 +// * and +// * | pzero(x)-1-R/S | <= 2 ** ( -60.26) +// */ +var _pR81 = [6]float32{ + 1: float32(-Float64FromFloat64(0.0703125)), + 2: float32(-Float64FromFloat64(8.0816707611)), + 3: float32(-Float64FromFloat64(257.06311035)), + 4: float32(-Float64FromFloat64(2485.2163086)), + 5: float32(-Float64FromFloat64(5253.0439453)), +} +var _pS81 = [5]float32{ + 0: float32(116.53436279), + 1: float32(3833.744873), + 2: float32(40597.855469), + 3: float32(116752.96875), + 4: float32(47627.726562), +} +var _pR51 = [6]float32{ + 0: float32(-Float64FromFloat64(1.1412546255e-11)), + 1: float32(-Float64FromFloat64(0.070312492549)), + 2: float32(-Float64FromFloat64(4.1596107483)), + 3: float32(-Float64FromFloat64(67.674766541)), + 4: float32(-Float64FromFloat64(331.23129272)), + 5: float32(-Float64FromFloat64(346.43338013)), +} +var _pS53 = [5]float32{ + 0: float32(60.753936768), + 1: float32(1051.2523193), + 2: float32(5978.9707031), + 3: float32(9625.4453125), + 4: float32(2406.0581055), +} + +var _pR31 = [6]float32{ + 0: float32(-Float64FromFloat64(2.5470459075e-09)), + 1: float32(-Float64FromFloat64(0.070311963558)), + 2: float32(-Float64FromFloat64(2.4090321064)), + 3: float32(-Float64FromFloat64(21.965976715)), + 4: float32(-Float64FromFloat64(58.079170227)), + 5: float32(-Float64FromFloat64(31.447946548)), +} +var _pS33 = [5]float32{ + 0: float32(35.856033325), + 1: float32(361.51397705), + 2: float32(1193.6077881), + 3: float32(1127.9968262), + 4: float32(173.58093262), +} + +var _pR21 = [6]float32{ + 0: float32(-Float64FromFloat64(8.8753431271e-08)), + 1: float32(-Float64FromFloat64(0.070303097367)), + 2: float32(-Float64FromFloat64(1.45073843)), + 3: float32(-Float64FromFloat64(7.6356959343)), + 4: float32(-Float64FromFloat64(11.193166733)), + 5: float32(-Float64FromFloat64(3.2336456776)), +} +var _pS25 = [5]float32{ + 0: float32(22.220300674), + 1: float32(136.20678711), + 2: float32(270.47027588), + 3: float32(153.87539673), + 4: float32(14.657617569), +} + +func _pzerof(tls *TLS, x float32) (r1 float32) { + var ix Tuint32_t + var p, q uintptr + var r, s, z Tfloat_t + _, _, _, _, _, _ = ix, p, q, r, s, z + ix = *(*Tuint32_t)(unsafe.Pointer(&x)) + ix &= uint32(0x7fffffff) + if ix >= uint32(0x41000000) { + p = uintptr(unsafe.Pointer(&_pR81)) + q = uintptr(unsafe.Pointer(&_pS81)) + } else { + if ix >= uint32(0x409173eb) { + p = uintptr(unsafe.Pointer(&_pR51)) + q = uintptr(unsafe.Pointer(&_pS53)) + } else { + if ix >= uint32(0x4036d917) { + p = uintptr(unsafe.Pointer(&_pR31)) + q = uintptr(unsafe.Pointer(&_pS33)) + } else { /*ix >= 0x40000000*/ + p = uintptr(unsafe.Pointer(&_pR21)) + q = uintptr(unsafe.Pointer(&_pS25)) + } + } + } + z = Float32FromFloat32(1) / (x * x) + r = *(*float32)(unsafe.Pointer(p)) + z*(*(*float32)(unsafe.Pointer(p + 1*4))+z*(*(*float32)(unsafe.Pointer(p + 2*4))+z*(*(*float32)(unsafe.Pointer(p + 3*4))+z*(*(*float32)(unsafe.Pointer(p + 4*4))+z**(*float32)(unsafe.Pointer(p + 5*4)))))) + s = Float32FromFloat32(1) + z*(*(*float32)(unsafe.Pointer(q))+z*(*(*float32)(unsafe.Pointer(q + 1*4))+z*(*(*float32)(unsafe.Pointer(q + 2*4))+z*(*(*float32)(unsafe.Pointer(q + 3*4))+z**(*float32)(unsafe.Pointer(q + 4*4)))))) + return Float32FromFloat32(1) + r/s +} + +// C documentation +// +// /* For x >= 8, the asymptotic expansions of qzero is +// * -1/8 s + 75/1024 s^3 - ..., where s = 1/x. +// * We approximate pzero by +// * qzero(x) = s*(-1.25 + (R/S)) +// * where R = qR0 + qR1*s^2 + qR2*s^4 + ... + qR5*s^10 +// * S = 1 + qS0*s^2 + ... + qS5*s^12 +// * and +// * | qzero(x)/s +1.25-R/S | <= 2 ** ( -61.22) +// */ +var _qR81 = [6]float32{ + 1: float32(0.0732421875), + 2: float32(11.768206596), + 3: float32(557.67340088), + 4: float32(8859.1972656), + 5: float32(37014.625), +} +var _qS81 = [6]float32{ + 0: float32(163.77603149), + 1: float32(8098.3447266), + 2: float32(142538.29688), + 3: float32(803309.25), + 4: float32(840501.5625), + 5: float32(-Float64FromFloat64(343899.28125)), +} + +var _qR51 = [6]float32{ + 0: float32(1.8408595828e-11), + 1: float32(0.073242180049), + 2: float32(5.8356351852), + 3: float32(135.11157227), + 4: float32(1027.2437744), + 5: float32(1989.9779053), +} +var _qS51 = [6]float32{ + 0: float32(82.776611328), + 1: float32(2077.814209), + 2: float32(18847.289062), + 3: float32(56751.113281), + 4: float32(35976.753906), + 5: float32(-Float64FromFloat64(5354.3427734)), +} + +var _qR31 = [6]float32{ + 0: float32(4.37740999e-09), + 1: float32(0.073241114616), + 2: float32(3.3442313671), + 3: float32(42.621845245), + 4: float32(170.80809021), + 5: float32(166.73394775), +} +var _qS33 = [6]float32{ + 0: float32(48.758872986), + 1: float32(709.68920898), + 2: float32(3704.1481934), + 3: float32(6460.425293), + 4: float32(2516.3337402), + 5: float32(-Float64FromFloat64(149.24745178)), +} + +var _qR21 = [6]float32{ + 0: float32(1.5044444979e-07), + 1: float32(0.073223426938), + 2: float32(1.9981917143), + 3: float32(14.495602608), + 4: float32(31.666231155), + 5: float32(16.252708435), +} +var _qS23 = [6]float32{ + 0: float32(30.365585327), + 1: float32(269.34811401), + 2: float32(844.78375244), + 3: float32(882.93585205), + 4: float32(212.66638184), + 5: float32(-Float64FromFloat64(5.3109550476)), +} + +func _qzerof(tls *TLS, x float32) (r1 float32) { + var ix Tuint32_t + var p, q uintptr + var r, s, z Tfloat_t + _, _, _, _, _, _ = ix, p, q, r, s, z + ix = *(*Tuint32_t)(unsafe.Pointer(&x)) + ix &= uint32(0x7fffffff) + if ix >= uint32(0x41000000) { + p = uintptr(unsafe.Pointer(&_qR81)) + q = uintptr(unsafe.Pointer(&_qS81)) + } else { + if ix >= uint32(0x409173eb) { + p = uintptr(unsafe.Pointer(&_qR51)) + q = uintptr(unsafe.Pointer(&_qS51)) + } else { + if ix >= uint32(0x4036d917) { + p = uintptr(unsafe.Pointer(&_qR31)) + q = uintptr(unsafe.Pointer(&_qS33)) + } else { /*ix >= 0x40000000*/ + p = uintptr(unsafe.Pointer(&_qR21)) + q = uintptr(unsafe.Pointer(&_qS23)) + } + } + } + z = Float32FromFloat32(1) / (x * x) + r = *(*float32)(unsafe.Pointer(p)) + z*(*(*float32)(unsafe.Pointer(p + 1*4))+z*(*(*float32)(unsafe.Pointer(p + 2*4))+z*(*(*float32)(unsafe.Pointer(p + 3*4))+z*(*(*float32)(unsafe.Pointer(p + 4*4))+z**(*float32)(unsafe.Pointer(p + 5*4)))))) + s = Float32FromFloat32(1) + z*(*(*float32)(unsafe.Pointer(q))+z*(*(*float32)(unsafe.Pointer(q + 1*4))+z*(*(*float32)(unsafe.Pointer(q + 2*4))+z*(*(*float32)(unsafe.Pointer(q + 3*4))+z*(*(*float32)(unsafe.Pointer(q + 4*4))+z**(*float32)(unsafe.Pointer(q + 5*4))))))) + return (-Float32FromFloat32(0.125) + r/s) / x +} + +var _invsqrtpi2 = float64(0.5641895835477563) /* 0x3FE20DD7, 0x50429B6D */ +var _tpi2 = float64(0.6366197723675814) /* 0x3FE45F30, 0x6DC9C883 */ + +func _common2(tls *TLS, ix Tuint32_t, x float64, y1 int32, sign int32) (r float64) { + var c, cc, s, ss, z float64 + _, _, _, _, _ = c, cc, s, ss, z + /* + * j1(x) = sqrt(2/(pi*x))*(p1(x)*cos(x-3pi/4)-q1(x)*sin(x-3pi/4)) + * y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x-3pi/4)+q1(x)*cos(x-3pi/4)) + * + * sin(x-3pi/4) = -(sin(x) + cos(x))/sqrt(2) + * cos(x-3pi/4) = (sin(x) - cos(x))/sqrt(2) + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + */ + s = Xsin(tls, x) + if y1 != 0 { + s = -s + } + c = Xcos(tls, x) + cc = s - c + if ix < uint32(0x7fe00000) { + /* avoid overflow in 2*x */ + ss = -s - c + z = Xcos(tls, Float64FromInt32(2)*x) + if s*c > Float64FromInt32(0) { + cc = z / ss + } else { + ss = z / cc + } + if ix < uint32(0x48000000) { + if y1 != 0 { + ss = -ss + } + cc = _pone(tls, x)*cc - _qone(tls, x)*ss + } + } + if sign != 0 { + cc = -cc + } + return _invsqrtpi2 * cc / Xsqrt(tls, x) +} + +// C documentation +// +// /* R0/S0 on [0,2] */ + +var _r00 = -Float64FromFloat64(0.0625) /* 0xBFB00000, 0x00000000 */ +var _r01 = float64(0.001407056669551897) /* 0x3F570D9F, 0x98472C61 */ +var _r02 = -Float64FromFloat64(1.599556310840356e-05) /* 0xBEF0C5C6, 0xBA169668 */ +var _r03 = float64(4.9672799960958445e-08) /* 0x3E6AAAFA, 0x46CA0BD9 */ +var _s01 = float64(0.019153759953836346) /* 0x3F939D0B, 0x12637E53 */ +var _s02 = float64(0.00018594678558863092) /* 0x3F285F56, 0xB9CDF664 */ +var _s03 = float64(1.1771846404262368e-06) /* 0x3EB3BFF8, 0x333F8498 */ +var _s04 = float64(5.0463625707621704e-09) /* 0x3E35AC88, 0xC97DFF2C */ +var _s05 = float64(1.2354227442613791e-11) /* 0x3DAB2ACF, 0xCFB97ED8 */ + +func Xj1(tls *TLS, x float64) (r1 float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var ix Tuint32_t + var r, s, z float64 + var sign int32 + _, _, _, _, _ = ix, r, s, sign, z + ix = uint32(*(*Tuint64_t)(unsafe.Pointer(&x)) >> int32(32)) + sign = int32(ix >> int32(31)) + ix &= uint32(0x7fffffff) + if ix >= uint32(0x7ff00000) { + return Float64FromInt32(1) / (x * x) + } + if ix >= uint32(0x40000000) { /* |x| >= 2 */ + return _common2(tls, ix, Xfabs(tls, x), 0, sign) + } + if ix >= uint32(0x38000000) { /* |x| >= 2**-127 */ + z = x * x + r = z * (_r00 + z*(_r01+z*(_r02+z*_r03))) + s = Float64FromInt32(1) + z*(_s01+z*(_s02+z*(_s03+z*(_s04+z*_s05)))) + z = r / s + } else { + /* avoid underflow, raise inexact if x!=0 */ + z = x + } + return (float64(0.5) + z) * x +} + +var _U0 = [5]float64{ + 0: -Float64FromFloat64(0.19605709064623894), + 1: float64(0.05044387166398113), + 2: -Float64FromFloat64(0.0019125689587576355), + 3: float64(2.352526005616105e-05), + 4: -Float64FromFloat64(9.190991580398789e-08), +} +var _V0 = [5]float64{ + 0: float64(0.01991673182366499), + 1: float64(0.00020255258102513517), + 2: float64(1.3560880109751623e-06), + 3: float64(6.227414523646215e-09), + 4: float64(1.6655924620799208e-11), +} + +func Xy1(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __u Tuint64_t + var ix, lx Tuint32_t + var u, v, z float64 + _, _, _, _, _, _ = __u, ix, lx, u, v, z + __u = *(*Tuint64_t)(unsafe.Pointer(&x)) + ix = uint32(__u >> int32(32)) + lx = uint32(__u) + /* y1(nan)=nan, y1(<0)=nan, y1(0)=-inf, y1(inf)=0 */ + if ix<>int32(31) != 0 { + return Float64FromInt32(0) / Float64FromFloat64(0) + } + if ix >= uint32(0x7ff00000) { + return Float64FromInt32(1) / x + } + if ix >= uint32(0x40000000) { /* x >= 2 */ + return _common2(tls, ix, x, int32(1), 0) + } + if ix < uint32(0x3c900000) { /* x < 2**-54 */ + return -_tpi2 / x + } + z = x * x + u = _U0[0] + z*(_U0[int32(1)]+z*(_U0[int32(2)]+z*(_U0[int32(3)]+z*_U0[int32(4)]))) + v = Float64FromInt32(1) + z*(_V0[0]+z*(_V0[int32(1)]+z*(_V0[int32(2)]+z*(_V0[int32(3)]+z*_V0[int32(4)])))) + return x*(u/v) + _tpi2*(Xj1(tls, x)*Xlog(tls, x)-Float64FromInt32(1)/x) +} + +/* For x >= 8, the asymptotic expansions of pone is + * 1 + 15/128 s^2 - 4725/2^15 s^4 - ..., where s = 1/x. + * We approximate pone by + * pone(x) = 1 + (R/S) + * where R = pr0 + pr1*s^2 + pr2*s^4 + ... + pr5*s^10 + * S = 1 + ps0*s^2 + ... + ps4*s^10 + * and + * | pone(x)-1-R/S | <= 2 ** ( -60.06) + */ + +var _pr8 = [6]float64{ + 1: float64(0.11718749999998865), + 2: float64(13.239480659307358), + 3: float64(412.05185430737856), + 4: float64(3874.7453891396053), + 5: float64(7914.479540318917), +} +var _ps8 = [5]float64{ + 0: float64(114.20737037567841), + 1: float64(3650.9308342085346), + 2: float64(36956.206026903346), + 3: float64(97602.79359349508), + 4: float64(30804.27206278888), +} + +var _pr5 = [6]float64{ + 0: float64(1.3199051955624352e-11), + 1: float64(0.1171874931906141), + 2: float64(6.802751278684329), + 3: float64(108.30818299018911), + 4: float64(517.6361395331998), + 5: float64(528.7152013633375), +} +var _ps5 = [5]float64{ + 0: float64(59.28059872211313), + 1: float64(991.4014187336144), + 2: float64(5353.26695291488), + 3: float64(7844.690317495512), + 4: float64(1504.0468881036106), +} + +var _pr3 = [6]float64{ + 0: float64(3.025039161373736e-09), + 1: float64(0.11718686556725359), + 2: float64(3.9329775003331564), + 3: float64(35.11940355916369), + 4: float64(91.05501107507813), + 5: float64(48.55906851973649), +} +var _ps3 = [5]float64{ + 0: float64(34.79130950012515), + 1: float64(336.76245874782575), + 2: float64(1046.8713997577513), + 3: float64(890.8113463982564), + 4: float64(103.78793243963928), +} + +var _pr2 = [6]float64{ + 0: float64(1.0771083010687374e-07), + 1: float64(0.11717621946268335), + 2: float64(2.368514966676088), + 3: float64(12.242610914826123), + 4: float64(17.693971127168773), + 5: float64(5.073523125888185), +} +var _ps2 = [5]float64{ + 0: float64(21.43648593638214), + 1: float64(125.29022716840275), + 2: float64(232.2764690571628), + 3: float64(117.6793732871471), + 4: float64(8.364638933716183), +} + +func _pone(tls *TLS, x float64) (r1 float64) { + var ix Tuint32_t + var p, q uintptr + var r, s, z Tdouble_t + _, _, _, _, _, _ = ix, p, q, r, s, z + ix = uint32(*(*Tuint64_t)(unsafe.Pointer(&x)) >> int32(32)) + ix &= uint32(0x7fffffff) + if ix >= uint32(0x40200000) { + p = uintptr(unsafe.Pointer(&_pr8)) + q = uintptr(unsafe.Pointer(&_ps8)) + } else { + if ix >= uint32(0x40122E8B) { + p = uintptr(unsafe.Pointer(&_pr5)) + q = uintptr(unsafe.Pointer(&_ps5)) + } else { + if ix >= uint32(0x4006DB6D) { + p = uintptr(unsafe.Pointer(&_pr3)) + q = uintptr(unsafe.Pointer(&_ps3)) + } else { /*ix >= 0x40000000*/ + p = uintptr(unsafe.Pointer(&_pr2)) + q = uintptr(unsafe.Pointer(&_ps2)) + } + } + } + z = float64(1) / (x * x) + r = *(*float64)(unsafe.Pointer(p)) + z*(*(*float64)(unsafe.Pointer(p + 1*8))+z*(*(*float64)(unsafe.Pointer(p + 2*8))+z*(*(*float64)(unsafe.Pointer(p + 3*8))+z*(*(*float64)(unsafe.Pointer(p + 4*8))+z**(*float64)(unsafe.Pointer(p + 5*8)))))) + s = float64(1) + z*(*(*float64)(unsafe.Pointer(q))+z*(*(*float64)(unsafe.Pointer(q + 1*8))+z*(*(*float64)(unsafe.Pointer(q + 2*8))+z*(*(*float64)(unsafe.Pointer(q + 3*8))+z**(*float64)(unsafe.Pointer(q + 4*8)))))) + return float64(1) + r/s +} + +/* For x >= 8, the asymptotic expansions of qone is + * 3/8 s - 105/1024 s^3 - ..., where s = 1/x. + * We approximate pone by + * qone(x) = s*(0.375 + (R/S)) + * where R = qr1*s^2 + qr2*s^4 + ... + qr5*s^10 + * S = 1 + qs1*s^2 + ... + qs6*s^12 + * and + * | qone(x)/s -0.375-R/S | <= 2 ** ( -61.13) + */ + +var _qr8 = [6]float64{ + 1: -Float64FromFloat64(0.10253906249999271), + 2: -Float64FromFloat64(16.271753454459), + 3: -Float64FromFloat64(759.6017225139501), + 4: -Float64FromFloat64(11849.806670242959), + 5: -Float64FromFloat64(48438.512428575035), +} +var _qs8 = [6]float64{ + 0: float64(161.3953697007229), + 1: float64(7825.385999233485), + 2: float64(133875.33628724958), + 3: float64(719657.7236832409), + 4: float64(666601.2326177764), + 5: -Float64FromFloat64(294490.26430383464), +} + +var _qr5 = [6]float64{ + 0: -Float64FromFloat64(2.089799311417641e-11), + 1: -Float64FromFloat64(0.10253905024137543), + 2: -Float64FromFloat64(8.05644828123936), + 3: -Float64FromFloat64(183.66960747488838), + 4: -Float64FromFloat64(1373.1937606550816), + 5: -Float64FromFloat64(2612.4444045321566), +} +var _qs5 = [6]float64{ + 0: float64(81.27655013843358), + 1: float64(1991.7987346048596), + 2: float64(17468.48519249089), + 3: float64(49851.42709103523), + 4: float64(27948.075163891812), + 5: -Float64FromFloat64(4719.183547951285), +} + +var _qr3 = [6]float64{ + 0: -Float64FromFloat64(5.078312264617666e-09), + 1: -Float64FromFloat64(0.10253782982083709), + 2: -Float64FromFloat64(4.610115811394734), + 3: -Float64FromFloat64(57.847221656278364), + 4: -Float64FromFloat64(228.2445407376317), + 5: -Float64FromFloat64(219.21012847890933), +} +var _qs3 = [6]float64{ + 0: float64(47.66515503237295), + 1: float64(673.8651126766997), + 2: float64(3380.1528667952634), + 3: float64(5547.729097207228), + 4: float64(1903.119193388108), + 5: -Float64FromFloat64(135.20119144430734), +} + +var _qr2 = [6]float64{ + 0: -Float64FromFloat64(1.7838172751095887e-07), + 1: -Float64FromFloat64(0.10251704260798555), + 2: -Float64FromFloat64(2.7522056827818746), + 3: -Float64FromFloat64(19.663616264370372), + 4: -Float64FromFloat64(42.32531333728305), + 5: -Float64FromFloat64(21.371921170370406), +} +var _qs2 = [6]float64{ + 0: float64(29.533362906052385), + 1: float64(252.98154998219053), + 2: float64(757.5028348686454), + 3: float64(739.3932053204672), + 4: float64(155.94900333666612), + 5: -Float64FromFloat64(4.959498988226282), +} + +func _qone(tls *TLS, x float64) (r1 float64) { + var ix Tuint32_t + var p, q uintptr + var r, s, z Tdouble_t + _, _, _, _, _, _ = ix, p, q, r, s, z + ix = uint32(*(*Tuint64_t)(unsafe.Pointer(&x)) >> int32(32)) + ix &= uint32(0x7fffffff) + if ix >= uint32(0x40200000) { + p = uintptr(unsafe.Pointer(&_qr8)) + q = uintptr(unsafe.Pointer(&_qs8)) + } else { + if ix >= uint32(0x40122E8B) { + p = uintptr(unsafe.Pointer(&_qr5)) + q = uintptr(unsafe.Pointer(&_qs5)) + } else { + if ix >= uint32(0x4006DB6D) { + p = uintptr(unsafe.Pointer(&_qr3)) + q = uintptr(unsafe.Pointer(&_qs3)) + } else { /*ix >= 0x40000000*/ + p = uintptr(unsafe.Pointer(&_qr2)) + q = uintptr(unsafe.Pointer(&_qs2)) + } + } + } + z = float64(1) / (x * x) + r = *(*float64)(unsafe.Pointer(p)) + z*(*(*float64)(unsafe.Pointer(p + 1*8))+z*(*(*float64)(unsafe.Pointer(p + 2*8))+z*(*(*float64)(unsafe.Pointer(p + 3*8))+z*(*(*float64)(unsafe.Pointer(p + 4*8))+z**(*float64)(unsafe.Pointer(p + 5*8)))))) + s = float64(1) + z*(*(*float64)(unsafe.Pointer(q))+z*(*(*float64)(unsafe.Pointer(q + 1*8))+z*(*(*float64)(unsafe.Pointer(q + 2*8))+z*(*(*float64)(unsafe.Pointer(q + 3*8))+z*(*(*float64)(unsafe.Pointer(q + 4*8))+z**(*float64)(unsafe.Pointer(q + 5*8))))))) + return (float64(0.375) + r/s) / x +} + +var _invsqrtpi3 = float32(0.56418961287) /* 0x3f106ebb */ +var _tpi3 = float32(0.63661974669) /* 0x3f22f983 */ + +func _common3(tls *TLS, ix Tuint32_t, x float32, y1 int32, sign int32) (r float32) { + var c, cc, s, ss, z float64 + _, _, _, _, _ = c, cc, s, ss, z + s = float64(Xsinf(tls, x)) + if y1 != 0 { + s = -s + } + c = float64(Xcosf(tls, x)) + cc = s - c + if ix < uint32(0x7f000000) { + ss = -s - c + z = float64(Xcosf(tls, Float32FromInt32(2)*x)) + if s*c > Float64FromInt32(0) { + cc = z / ss + } else { + ss = z / cc + } + if ix < uint32(0x58800000) { + if y1 != 0 { + ss = -ss + } + cc = float64(_ponef(tls, x))*cc - float64(_qonef(tls, x))*ss + } + } + if sign != 0 { + cc = -cc + } + return float32(float64(_invsqrtpi3) * cc / float64(Xsqrtf(tls, x))) +} + +// C documentation +// +// /* R0/S0 on [0,2] */ + +var _r001 = float32(-Float64FromFloat64(0.0625)) /* 0xbd800000 */ +var _r011 = float32(0.0014070566976) /* 0x3ab86cfd */ +var _r021 = float32(-Float64FromFloat64(1.5995563444e-05)) /* 0xb7862e36 */ +var _r031 = float32(4.9672799207e-08) /* 0x335557d2 */ +var _s011 = float32(0.019153760746) /* 0x3c9ce859 */ +var _s021 = float32(0.00018594678841) /* 0x3942fab6 */ +var _s031 = float32(1.1771846857e-06) /* 0x359dffc2 */ +var _s041 = float32(5.046362439e-09) /* 0x31ad6446 */ +var _s051 = float32(1.2354227016e-11) /* 0x2d59567e */ + +func Xj1f(tls *TLS, x float32) (r1 float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var ix Tuint32_t + var r, s, z float32 + var sign int32 + _, _, _, _, _ = ix, r, s, sign, z + ix = *(*Tuint32_t)(unsafe.Pointer(&x)) + sign = int32(ix >> int32(31)) + ix &= uint32(0x7fffffff) + if ix >= uint32(0x7f800000) { + return Float32FromInt32(1) / (x * x) + } + if ix >= uint32(0x40000000) { /* |x| >= 2 */ + return _common3(tls, ix, Xfabsf(tls, x), 0, sign) + } + if ix >= uint32(0x39000000) { /* |x| >= 2**-13 */ + z = x * x + r = z * (_r001 + z*(_r011+z*(_r021+z*_r031))) + s = Float32FromInt32(1) + z*(_s011+z*(_s021+z*(_s031+z*(_s041+z*_s051)))) + z = Float32FromFloat32(0.5) + r/s + } else { + z = Float32FromFloat32(0.5) + } + return z * x +} + +var _U01 = [5]float32{ + 0: float32(-Float64FromFloat64(0.19605709612)), + 1: float32(0.050443872809), + 2: float32(-Float64FromFloat64(0.0019125689287)), + 3: float32(2.3525259166e-05), + 4: float32(-Float64FromFloat64(9.1909917899e-08)), +} +var _V01 = [5]float32{ + 0: float32(0.019916731864), + 1: float32(0.0002025525755), + 2: float32(1.3560879779e-06), + 3: float32(6.227414584e-09), + 4: float32(1.6655924903e-11), +} + +func Xy1f(tls *TLS, x float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ix Tuint32_t + var u, v, z float32 + _, _, _, _ = ix, u, v, z + ix = *(*Tuint32_t)(unsafe.Pointer(&x)) + if ix&uint32(0x7fffffff) == uint32(0) { + return float32(-Int32FromInt32(1)) / Float32FromFloat32(0) + } + if ix>>int32(31) != 0 { + return Float32FromInt32(0) / Float32FromFloat32(0) + } + if ix >= uint32(0x7f800000) { + return Float32FromInt32(1) / x + } + if ix >= uint32(0x40000000) { /* |x| >= 2.0 */ + return _common3(tls, ix, x, int32(1), 0) + } + if ix < uint32(0x33000000) { /* x < 2**-25 */ + return -_tpi3 / x + } + z = x * x + u = _U01[0] + z*(_U01[int32(1)]+z*(_U01[int32(2)]+z*(_U01[int32(3)]+z*_U01[int32(4)]))) + v = Float32FromFloat32(1) + z*(_V01[0]+z*(_V01[int32(1)]+z*(_V01[int32(2)]+z*(_V01[int32(3)]+z*_V01[int32(4)])))) + return x*(u/v) + _tpi3*(Xj1f(tls, x)*Xlogf(tls, x)-Float32FromFloat32(1)/x) +} + +/* For x >= 8, the asymptotic expansions of pone is + * 1 + 15/128 s^2 - 4725/2^15 s^4 - ..., where s = 1/x. + * We approximate pone by + * pone(x) = 1 + (R/S) + * where R = pr0 + pr1*s^2 + pr2*s^4 + ... + pr5*s^10 + * S = 1 + ps0*s^2 + ... + ps4*s^10 + * and + * | pone(x)-1-R/S | <= 2 ** ( -60.06) + */ + +var _pr81 = [6]float32{ + 1: float32(0.1171875), + 2: float32(13.239480972), + 3: float32(412.05184937), + 4: float32(3874.7453613), + 5: float32(7914.4794922), +} +var _ps81 = [5]float32{ + 0: float32(114.20736694), + 1: float32(3650.9309082), + 2: float32(36956.207031), + 3: float32(97602.796875), + 4: float32(30804.271484), +} + +var _pr51 = [6]float32{ + 0: float32(1.3199052094e-11), + 1: float32(0.11718749255), + 2: float32(6.8027510643), + 3: float32(108.30818176), + 4: float32(517.63616943), + 5: float32(528.71520996), +} +var _ps51 = [5]float32{ + 0: float32(59.280597687), + 1: float32(991.40142822), + 2: float32(5353.2670898), + 3: float32(7844.6904297), + 4: float32(1504.046875), +} + +var _pr31 = [6]float32{ + 0: float32(3.0250391081e-09), + 1: float32(0.1171868667), + 2: float32(3.932977438), + 3: float32(35.119403839), + 4: float32(91.055007935), + 5: float32(48.559066772), +} +var _ps31 = [5]float32{ + 0: float32(34.791309357), + 1: float32(336.76245117), + 2: float32(1046.87146), + 3: float32(890.81134033), + 4: float32(103.78793335), +} + +var _pr21 = [6]float32{ + 0: float32(1.0771083225e-07), + 1: float32(0.11717621982), + 2: float32(2.3685150146), + 3: float32(12.242610931), + 4: float32(17.693971634), + 5: float32(5.0735230446), +} +var _ps21 = [5]float32{ + 0: float32(21.436485291), + 1: float32(125.2902298), + 2: float32(232.276474), + 3: float32(117.67937469), + 4: float32(8.3646392822), +} + +func _ponef(tls *TLS, x float32) (r1 float32) { + var ix Tuint32_t + var p, q uintptr + var r, s, z Tfloat_t + _, _, _, _, _, _ = ix, p, q, r, s, z + ix = *(*Tuint32_t)(unsafe.Pointer(&x)) + ix &= uint32(0x7fffffff) + if ix >= uint32(0x41000000) { + p = uintptr(unsafe.Pointer(&_pr81)) + q = uintptr(unsafe.Pointer(&_ps81)) + } else { + if ix >= uint32(0x409173eb) { + p = uintptr(unsafe.Pointer(&_pr51)) + q = uintptr(unsafe.Pointer(&_ps51)) + } else { + if ix >= uint32(0x4036d917) { + p = uintptr(unsafe.Pointer(&_pr31)) + q = uintptr(unsafe.Pointer(&_ps31)) + } else { /*ix >= 0x40000000*/ + p = uintptr(unsafe.Pointer(&_pr21)) + q = uintptr(unsafe.Pointer(&_ps21)) + } + } + } + z = Float32FromFloat32(1) / (x * x) + r = *(*float32)(unsafe.Pointer(p)) + z*(*(*float32)(unsafe.Pointer(p + 1*4))+z*(*(*float32)(unsafe.Pointer(p + 2*4))+z*(*(*float32)(unsafe.Pointer(p + 3*4))+z*(*(*float32)(unsafe.Pointer(p + 4*4))+z**(*float32)(unsafe.Pointer(p + 5*4)))))) + s = Float32FromFloat32(1) + z*(*(*float32)(unsafe.Pointer(q))+z*(*(*float32)(unsafe.Pointer(q + 1*4))+z*(*(*float32)(unsafe.Pointer(q + 2*4))+z*(*(*float32)(unsafe.Pointer(q + 3*4))+z**(*float32)(unsafe.Pointer(q + 4*4)))))) + return Float32FromFloat32(1) + r/s +} + +/* For x >= 8, the asymptotic expansions of qone is + * 3/8 s - 105/1024 s^3 - ..., where s = 1/x. + * We approximate pone by + * qone(x) = s*(0.375 + (R/S)) + * where R = qr1*s^2 + qr2*s^4 + ... + qr5*s^10 + * S = 1 + qs1*s^2 + ... + qs6*s^12 + * and + * | qone(x)/s -0.375-R/S | <= 2 ** ( -61.13) + */ + +var _qr81 = [6]float32{ + 1: float32(-Float64FromFloat64(0.1025390625)), + 2: float32(-Float64FromFloat64(16.271753311)), + 3: float32(-Float64FromFloat64(759.60174561)), + 4: float32(-Float64FromFloat64(11849.806641)), + 5: float32(-Float64FromFloat64(48438.511719)), +} +var _qs81 = [6]float32{ + 0: float32(161.39537048), + 1: float32(7825.3862305), + 2: float32(133875.34375), + 3: float32(719657.75), + 4: float32(666601.25), + 5: float32(-Float64FromFloat64(294490.25)), +} + +var _qr51 = [6]float32{ + 0: float32(-Float64FromFloat64(2.0897993405e-11)), + 1: float32(-Float64FromFloat64(0.1025390476)), + 2: float32(-Float64FromFloat64(8.0564479828)), + 3: float32(-Float64FromFloat64(183.66960144)), + 4: float32(-Float64FromFloat64(1373.1937256)), + 5: float32(-Float64FromFloat64(2612.4443359)), +} +var _qs51 = [6]float32{ + 0: float32(81.276550293), + 1: float32(1991.7987061), + 2: float32(17468.484375), + 3: float32(49851.425781), + 4: float32(27948.074219), + 5: float32(-Float64FromFloat64(4719.1835938)), +} + +var _qr31 = [6]float32{ + 0: float32(-Float64FromFloat64(5.0783124372e-09)), + 1: float32(-Float64FromFloat64(0.10253783315)), + 2: float32(-Float64FromFloat64(4.6101160049)), + 3: float32(-Float64FromFloat64(57.847221375)), + 4: float32(-Float64FromFloat64(228.24453735)), + 5: float32(-Float64FromFloat64(219.21012878)), +} +var _qs31 = [6]float32{ + 0: float32(47.665153503), + 1: float32(673.8651123), + 2: float32(3380.152832), + 3: float32(5547.7290039), + 4: float32(1903.1191406), + 5: float32(-Float64FromFloat64(135.20118713)), +} + +var _qr21 = [6]float32{ + 0: float32(-Float64FromFloat64(1.7838172539e-07)), + 1: float32(-Float64FromFloat64(0.10251704603)), + 2: float32(-Float64FromFloat64(2.7522056103)), + 3: float32(-Float64FromFloat64(19.66361618)), + 4: float32(-Float64FromFloat64(42.325313568)), + 5: float32(-Float64FromFloat64(21.371921539)), +} +var _qs21 = [6]float32{ + 0: float32(29.533363342), + 1: float32(252.98155212), + 2: float32(757.50280762), + 3: float32(739.39318848), + 4: float32(155.94900513), + 5: float32(-Float64FromFloat64(4.9594988823)), +} + +func _qonef(tls *TLS, x float32) (r1 float32) { + var ix Tuint32_t + var p, q uintptr + var r, s, z Tfloat_t + _, _, _, _, _, _ = ix, p, q, r, s, z + ix = *(*Tuint32_t)(unsafe.Pointer(&x)) + ix &= uint32(0x7fffffff) + if ix >= uint32(0x41000000) { + p = uintptr(unsafe.Pointer(&_qr81)) + q = uintptr(unsafe.Pointer(&_qs81)) + } else { + if ix >= uint32(0x409173eb) { + p = uintptr(unsafe.Pointer(&_qr51)) + q = uintptr(unsafe.Pointer(&_qs51)) + } else { + if ix >= uint32(0x4036d917) { + p = uintptr(unsafe.Pointer(&_qr31)) + q = uintptr(unsafe.Pointer(&_qs31)) + } else { /*ix >= 0x40000000*/ + p = uintptr(unsafe.Pointer(&_qr21)) + q = uintptr(unsafe.Pointer(&_qs21)) + } + } + } + z = Float32FromFloat32(1) / (x * x) + r = *(*float32)(unsafe.Pointer(p)) + z*(*(*float32)(unsafe.Pointer(p + 1*4))+z*(*(*float32)(unsafe.Pointer(p + 2*4))+z*(*(*float32)(unsafe.Pointer(p + 3*4))+z*(*(*float32)(unsafe.Pointer(p + 4*4))+z**(*float32)(unsafe.Pointer(p + 5*4)))))) + s = Float32FromFloat32(1) + z*(*(*float32)(unsafe.Pointer(q))+z*(*(*float32)(unsafe.Pointer(q + 1*4))+z*(*(*float32)(unsafe.Pointer(q + 2*4))+z*(*(*float32)(unsafe.Pointer(q + 3*4))+z*(*(*float32)(unsafe.Pointer(q + 4*4))+z**(*float32)(unsafe.Pointer(q + 5*4))))))) + return (Float32FromFloat32(0.375) + r/s) / x +} + +var _invsqrtpi4 = float64(0.5641895835477563) /* 0x3FE20DD7, 0x50429B6D */ + +func Xjn(tls *TLS, n int32, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v n=%v x=%v, (%v:)", tls, n, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __u Tuint64_t + var a, b, h, nf, q0, q1, t, temp, tmp, w, z, v6 float64 + var i, k, nm1, sign int32 + var ix, lx Tuint32_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = __u, a, b, h, i, ix, k, lx, nf, nm1, q0, q1, sign, t, temp, tmp, w, z, v6 + __u = *(*Tuint64_t)(unsafe.Pointer(&x)) + ix = uint32(__u >> int32(32)) + lx = uint32(__u) + sign = int32(ix >> int32(31)) + ix &= uint32(0x7fffffff) + if ix|(lx|-lx)>>int32(31) > uint32(0x7ff00000) { /* nan */ + return x + } + /* J(-n,x) = (-1)^n * J(n, x), J(n, -x) = (-1)^n * J(n, x) + * Thus, J(-n,x) = J(n,-x) + */ + /* nm1 = |n|-1 is used instead of |n| to handle n==INT_MIN */ + if n == 0 { + return Xj0(tls, x) + } + if n < 0 { + nm1 = -(n + int32(1)) + x = -x + sign ^= int32(1) + } else { + nm1 = n - int32(1) + } + if nm1 == 0 { + return Xj1(tls, x) + } + sign &= n /* even n: 0, odd n: signbit(x) */ + x = Xfabs(tls, x) + if ix|lx == uint32(0) || ix == uint32(0x7ff00000) { /* if x is 0 or inf */ + b = float64(0) + } else { + if float64(nm1) < x { + /* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */ + if ix >= uint32(0x52d00000) { /* x > 2**302 */ + /* (x >> n**2) + * Jn(x) = cos(x-(2n+1)*pi/4)*sqrt(2/x*pi) + * Yn(x) = sin(x-(2n+1)*pi/4)*sqrt(2/x*pi) + * Let s=sin(x), c=cos(x), + * xn=x-(2n+1)*pi/4, sqt2 = sqrt(2),then + * + * n sin(xn)*sqt2 cos(xn)*sqt2 + * ---------------------------------- + * 0 s-c c+s + * 1 -s-c -c+s + * 2 -s+c -c-s + * 3 s+c c-s + */ + switch nm1 & Int32FromInt32(3) { + case 0: + temp = -Xcos(tls, x) + Xsin(tls, x) + case int32(1): + temp = -Xcos(tls, x) - Xsin(tls, x) + case int32(2): + temp = Xcos(tls, x) - Xsin(tls, x) + default: + fallthrough + case int32(3): + temp = Xcos(tls, x) + Xsin(tls, x) + break + } + b = _invsqrtpi4 * temp / Xsqrt(tls, x) + } else { + a = Xj0(tls, x) + b = Xj1(tls, x) + i = 0 + for { + if !(i < nm1) { + break + } + i++ + temp = b + b = b*(float64(2)*float64(i)/x) - a /* avoid underflow */ + a = temp + goto _1 + _1: + } + } + } else { + if ix < uint32(0x3e100000) { /* x < 2**-29 */ + /* x is tiny, return the first Taylor expansion of J(n,x) + * J(n,x) = 1/n!*(x/2)^n - ... + */ + if nm1 > int32(32) { /* underflow */ + b = float64(0) + } else { + temp = x * float64(0.5) + b = temp + a = float64(1) + i = int32(2) + for { + if !(i <= nm1+int32(1)) { + break + } + a *= float64(i) /* a = n! */ + b *= temp /* b = (x/2)^n */ + goto _2 + _2: + ; + i++ + } + b = b / a + } + } else { + nf = float64(nm1) + float64(1) + w = Float64FromInt32(2) * nf / x + h = Float64FromInt32(2) / x + z = w + h + q0 = w + q1 = w*z - float64(1) + k = int32(1) + for q1 < float64(1e+09) { + k += int32(1) + z += h + tmp = z*q1 - q0 + q0 = q1 + q1 = tmp + } + t = float64(0) + i = k + for { + if !(i >= 0) { + break + } + t = Float64FromInt32(1) / (Float64FromInt32(2)*(float64(i)+nf)/x - t) + goto _3 + _3: + ; + i-- + } + a = t + b = float64(1) + /* estimate log((2/x)^n*n!) = n*log(2/x)+n*ln(n) + * Hence, if n*(log(2n/x)) > ... + * single 8.8722839355e+01 + * double 7.09782712893383973096e+02 + * long double 1.1356523406294143949491931077970765006170e+04 + * then recurrent value may overflow and the result is + * likely underflow to zero + */ + tmp = nf * Xlog(tls, Xfabs(tls, w)) + if tmp < float64(709.782712893384) { + i = nm1 + for { + if !(i > 0) { + break + } + temp = b + b = b*(float64(2)*float64(i))/x - a + a = temp + goto _4 + _4: + ; + i-- + } + } else { + i = nm1 + for { + if !(i > 0) { + break + } + temp = b + b = b*(float64(2)*float64(i))/x - a + a = temp + /* scale b to avoid spurious overflow */ + if b > float64(3.273390607896142e+150) { + a /= b + t /= b + b = float64(1) + } + goto _5 + _5: + ; + i-- + } + } + z = Xj0(tls, x) + w = Xj1(tls, x) + if Xfabs(tls, z) >= Xfabs(tls, w) { + b = t * z / b + } else { + b = t * w / a + } + } + } + } + if sign != 0 { + v6 = -b + } else { + v6 = b + } + return v6 +} + +func Xyn(tls *TLS, n int32, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v n=%v x=%v, (%v:)", tls, n, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __u Tuint64_t + var a, b, temp, v1, v3 float64 + var i, nm1, sign int32 + var ib, ix, lx Tuint32_t + _, _, _, _, _, _, _, _, _, _, _, _ = __u, a, b, i, ib, ix, lx, nm1, sign, temp, v1, v3 + __u = *(*Tuint64_t)(unsafe.Pointer(&x)) + ix = uint32(__u >> int32(32)) + lx = uint32(__u) + sign = int32(ix >> int32(31)) + ix &= uint32(0x7fffffff) + if ix|(lx|-lx)>>int32(31) > uint32(0x7ff00000) { /* nan */ + return x + } + if sign != 0 && ix|lx != uint32(0) { /* x < 0 */ + return Float64FromInt32(0) / Float64FromFloat64(0) + } + if ix == uint32(0x7ff00000) { + return float64(0) + } + if n == 0 { + return Xy0(tls, x) + } + if n < 0 { + nm1 = -(n + int32(1)) + sign = n & int32(1) + } else { + nm1 = n - int32(1) + sign = 0 + } + if nm1 == 0 { + if sign != 0 { + v1 = -Xy1(tls, x) + } else { + v1 = Xy1(tls, x) + } + return v1 + } + if ix >= uint32(0x52d00000) { /* x > 2**302 */ + /* (x >> n**2) + * Jn(x) = cos(x-(2n+1)*pi/4)*sqrt(2/x*pi) + * Yn(x) = sin(x-(2n+1)*pi/4)*sqrt(2/x*pi) + * Let s=sin(x), c=cos(x), + * xn=x-(2n+1)*pi/4, sqt2 = sqrt(2),then + * + * n sin(xn)*sqt2 cos(xn)*sqt2 + * ---------------------------------- + * 0 s-c c+s + * 1 -s-c -c+s + * 2 -s+c -c-s + * 3 s+c c-s + */ + switch nm1 & Int32FromInt32(3) { + case 0: + temp = -Xsin(tls, x) - Xcos(tls, x) + case int32(1): + temp = -Xsin(tls, x) + Xcos(tls, x) + case int32(2): + temp = Xsin(tls, x) + Xcos(tls, x) + default: + fallthrough + case int32(3): + temp = Xsin(tls, x) - Xcos(tls, x) + break + } + b = _invsqrtpi4 * temp / Xsqrt(tls, x) + } else { + a = Xy0(tls, x) + b = Xy1(tls, x) + /* quit if b is -inf */ + ib = uint32(*(*Tuint64_t)(unsafe.Pointer(&b)) >> int32(32)) + i = 0 + for { + if !(i < nm1 && ib != uint32(0xfff00000)) { + break + } + i++ + temp = b + b = float64(2)*float64(i)/x*b - a + ib = uint32(*(*Tuint64_t)(unsafe.Pointer(&b)) >> int32(32)) + a = temp + goto _2 + _2: + } + } + if sign != 0 { + v3 = -b + } else { + v3 = b + } + return v3 +} + +func Xjnf(tls *TLS, n int32, x float32) (r float32) { + if __ccgo_strace { + trc("tls=%v n=%v x=%v, (%v:)", tls, n, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + var a, b, h, nf, q0, q1, t, temp, tmp, w, z, v6 float32 + var i, k, nm1, sign int32 + var ix Tuint32_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, b, h, i, ix, k, nf, nm1, q0, q1, sign, t, temp, tmp, w, z, v6 + ix = *(*Tuint32_t)(unsafe.Pointer(&x)) + sign = int32(ix >> int32(31)) + ix &= uint32(0x7fffffff) + if ix > uint32(0x7f800000) { /* nan */ + return x + } + /* J(-n,x) = J(n,-x), use |n|-1 to avoid overflow in -n */ + if n == 0 { + return Xj0f(tls, x) + } + if n < 0 { + nm1 = -(n + int32(1)) + x = -x + sign ^= int32(1) + } else { + nm1 = n - int32(1) + } + if nm1 == 0 { + return Xj1f(tls, x) + } + sign &= n /* even n: 0, odd n: signbit(x) */ + x = Xfabsf(tls, x) + if ix == uint32(0) || ix == uint32(0x7f800000) { /* if x is 0 or inf */ + b = Float32FromFloat32(0) + } else { + if float32(nm1) < x { + /* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */ + a = Xj0f(tls, x) + b = Xj1f(tls, x) + i = 0 + for { + if !(i < nm1) { + break + } + i++ + temp = b + b = b*(Float32FromFloat32(2)*float32(i)/x) - a + a = temp + goto _1 + _1: + } + } else { + if ix < uint32(0x35800000) { /* x < 2**-20 */ + /* x is tiny, return the first Taylor expansion of J(n,x) + * J(n,x) = 1/n!*(x/2)^n - ... + */ + if nm1 > int32(8) { /* underflow */ + nm1 = int32(8) + } + temp = Float32FromFloat32(0.5) * x + b = temp + a = Float32FromFloat32(1) + i = int32(2) + for { + if !(i <= nm1+int32(1)) { + break + } + a *= float32(i) /* a = n! */ + b *= temp /* b = (x/2)^n */ + goto _2 + _2: + ; + i++ + } + b = b / a + } else { + nf = float32(nm1) + Float32FromFloat32(1) + w = Float32FromInt32(2) * nf / x + h = Float32FromInt32(2) / x + z = w + h + q0 = w + q1 = w*z - Float32FromFloat32(1) + k = int32(1) + for q1 < Float32FromFloat32(10000) { + k += int32(1) + z += h + tmp = z*q1 - q0 + q0 = q1 + q1 = tmp + } + t = Float32FromFloat32(0) + i = k + for { + if !(i >= 0) { + break + } + t = Float32FromFloat32(1) / (Float32FromInt32(2)*(float32(i)+nf)/x - t) + goto _3 + _3: + ; + i-- + } + a = t + b = Float32FromFloat32(1) + /* estimate log((2/x)^n*n!) = n*log(2/x)+n*ln(n) + * Hence, if n*(log(2n/x)) > ... + * single 8.8722839355e+01 + * double 7.09782712893383973096e+02 + * long double 1.1356523406294143949491931077970765006170e+04 + * then recurrent value may overflow and the result is + * likely underflow to zero + */ + tmp = nf * Xlogf(tls, Xfabsf(tls, w)) + if tmp < Float32FromFloat32(88.721679688) { + i = nm1 + for { + if !(i > 0) { + break + } + temp = b + b = Float32FromFloat32(2)*float32(i)*b/x - a + a = temp + goto _4 + _4: + ; + i-- + } + } else { + i = nm1 + for { + if !(i > 0) { + break + } + temp = b + b = Float32FromFloat32(2)*float32(i)*b/x - a + a = temp + /* scale b to avoid spurious overflow */ + if b > Float32FromFloat32(1.152921504606847e+18) { + a /= b + t /= b + b = Float32FromFloat32(1) + } + goto _5 + _5: + ; + i-- + } + } + z = Xj0f(tls, x) + w = Xj1f(tls, x) + if Xfabsf(tls, z) >= Xfabsf(tls, w) { + b = t * z / b + } else { + b = t * w / a + } + } + } + } + if sign != 0 { + v6 = -b + } else { + v6 = b + } + return v6 +} + +func Xynf(tls *TLS, n int32, x float32) (r float32) { + if __ccgo_strace { + trc("tls=%v n=%v x=%v, (%v:)", tls, n, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + var a, b, temp, v1, v3 float32 + var i, nm1, sign int32 + var ib, ix Tuint32_t + _, _, _, _, _, _, _, _, _, _ = a, b, i, ib, ix, nm1, sign, temp, v1, v3 + ix = *(*Tuint32_t)(unsafe.Pointer(&x)) + sign = int32(ix >> int32(31)) + ix &= uint32(0x7fffffff) + if ix > uint32(0x7f800000) { /* nan */ + return x + } + if sign != 0 && ix != uint32(0) { /* x < 0 */ + return Float32FromInt32(0) / Float32FromFloat32(0) + } + if ix == uint32(0x7f800000) { + return Float32FromFloat32(0) + } + if n == 0 { + return Xy0f(tls, x) + } + if n < 0 { + nm1 = -(n + int32(1)) + sign = n & int32(1) + } else { + nm1 = n - int32(1) + sign = 0 + } + if nm1 == 0 { + if sign != 0 { + v1 = -Xy1f(tls, x) + } else { + v1 = Xy1f(tls, x) + } + return v1 + } + a = Xy0f(tls, x) + b = Xy1f(tls, x) + /* quit if b is -inf */ + ib = *(*Tuint32_t)(unsafe.Pointer(&b)) + i = 0 + for { + if !(i < nm1 && ib != uint32(0xff800000)) { + break + } + i++ + temp = b + b = Float32FromFloat32(2)*float32(i)/x*b - a + ib = *(*Tuint32_t)(unsafe.Pointer(&b)) + a = temp + goto _2 + _2: + } + if sign != 0 { + v3 = -b + } else { + v3 = b + } + return v3 +} + +func Xldexp(tls *TLS, x float64, n int32) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v n=%v, (%v:)", tls, x, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xscalbn(tls, x, n) +} + +func Xldexpf(tls *TLS, x float32, n int32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v n=%v, (%v:)", tls, x, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xscalbnf(tls, x, n) +} + +func Xldexpl(tls *TLS, x float64, n int32) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v n=%v, (%v:)", tls, x, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xscalbnl(tls, x, n) +} + +func Xlgamma(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__lgamma_r(tls, x, uintptr(unsafe.Pointer(&Xsigngam))) +} + +var _pi2 = float64(3.141592653589793) /* 0x400921FB, 0x54442D18 */ +var _a0 = float64(0.07721566490153287) /* 0x3FB3C467, 0xE37DB0C8 */ +var _a1 = float64(0.3224670334241136) /* 0x3FD4A34C, 0xC4A60FAD */ +var _a2 = float64(0.06735230105312927) /* 0x3FB13E00, 0x1A5562A7 */ +var _a3 = float64(0.020580808432516733) /* 0x3F951322, 0xAC92547B */ +var _a4 = float64(0.007385550860814029) /* 0x3F7E404F, 0xB68FEFE8 */ +var _a5 = float64(0.0028905138367341563) /* 0x3F67ADD8, 0xCCB7926B */ +var _a6 = float64(0.0011927076318336207) /* 0x3F538A94, 0x116F3F5D */ +var _a7 = float64(0.0005100697921535113) /* 0x3F40B6C6, 0x89B99C00 */ +var _a8 = float64(0.00022086279071390839) /* 0x3F2CF2EC, 0xED10E54D */ +var _a9 = float64(0.00010801156724758394) /* 0x3F1C5088, 0x987DFB07 */ +var _a10 = float64(2.5214456545125733e-05) /* 0x3EFA7074, 0x428CFA52 */ +var _a11 = float64(4.4864094961891516e-05) /* 0x3F07858E, 0x90A45837 */ +var _tc = float64(1.4616321449683622) /* 0x3FF762D8, 0x6356BE3F */ +var _tf = -Float64FromFloat64(0.12148629053584961) /* 0xBFBF19B9, 0xBCC38A42 */ +/* tt = -(tail of tf) */ +var _tt = -Float64FromFloat64(3.638676997039505e-18) /* 0xBC50C7CA, 0xA48A971F */ +var _t0 = float64(0.48383612272381005) /* 0x3FDEF72B, 0xC8EE38A2 */ +var _t1 = -Float64FromFloat64(0.1475877229945939) /* 0xBFC2E427, 0x8DC6C509 */ +var _t2 = float64(0.06462494023913339) /* 0x3FB08B42, 0x94D5419B */ +var _t3 = -Float64FromFloat64(0.032788541075985965) /* 0xBFA0C9A8, 0xDF35B713 */ +var _t4 = float64(0.01797067508118204) /* 0x3F9266E7, 0x970AF9EC */ +var _t5 = -Float64FromFloat64(0.010314224129834144) /* 0xBF851F9F, 0xBA91EC6A */ +var _t6 = float64(0.006100538702462913) /* 0x3F78FCE0, 0xE370E344 */ +var _t7 = -Float64FromFloat64(0.0036845201678113826) /* 0xBF6E2EFF, 0xB3E914D7 */ +var _t8 = float64(0.0022596478090061247) /* 0x3F6282D3, 0x2E15C915 */ +var _t9 = -Float64FromFloat64(0.0014034646998923284) /* 0xBF56FE8E, 0xBF2D1AF1 */ +var _t10 = float64(0.000881081882437654) /* 0x3F4CDF0C, 0xEF61A8E9 */ +var _t11 = -Float64FromFloat64(0.0005385953053567405) /* 0xBF41A610, 0x9C73E0EC */ +var _t12 = float64(0.00031563207090362595) /* 0x3F34AF6D, 0x6C0EBBF7 */ +var _t13 = -Float64FromFloat64(0.00031275416837512086) /* 0xBF347F24, 0xECC38C38 */ +var _t14 = float64(0.0003355291926355191) /* 0x3F35FD3E, 0xE8C2D3F4 */ +var _u0 = -Float64FromFloat64(0.07721566490153287) /* 0xBFB3C467, 0xE37DB0C8 */ +var _u1 = float64(0.6328270640250934) /* 0x3FE4401E, 0x8B005DFF */ +var _u2 = float64(1.4549225013723477) /* 0x3FF7475C, 0xD119BD6F */ +var _u3 = float64(0.9777175279633727) /* 0x3FEF4976, 0x44EA8450 */ +var _u4 = float64(0.22896372806469245) /* 0x3FCD4EAE, 0xF6010924 */ +var _u5 = float64(0.013381091853678766) /* 0x3F8B678B, 0xBF2BAB09 */ +var _v1 = float64(2.4559779371304113) /* 0x4003A5D7, 0xC2BD619C */ +var _v2 = float64(2.128489763798934) /* 0x40010725, 0xA42B18F5 */ +var _v3 = float64(0.7692851504566728) /* 0x3FE89DFB, 0xE45050AF */ +var _v4 = float64(0.10422264559336913) /* 0x3FBAAE55, 0xD6537C88 */ +var _v5 = float64(0.003217092422824239) /* 0x3F6A5ABB, 0x57D0CF61 */ +var _s0 = -Float64FromFloat64(0.07721566490153287) /* 0xBFB3C467, 0xE37DB0C8 */ +var _s1 = float64(0.21498241596060885) /* 0x3FCB848B, 0x36E20878 */ +var _s2 = float64(0.325778796408931) /* 0x3FD4D98F, 0x4F139F59 */ +var _s3 = float64(0.14635047265246445) /* 0x3FC2BB9C, 0xBEE5F2F7 */ +var _s4 = float64(0.02664227030336386) /* 0x3F9B481C, 0x7E939961 */ +var _s5 = float64(0.0018402845140733772) /* 0x3F5E26B6, 0x7368F239 */ +var _s6 = float64(3.194753265841009e-05) /* 0x3F00BFEC, 0xDD17E945 */ +var _r1 = float64(1.3920053346762105) /* 0x3FF645A7, 0x62C4AB74 */ +var _r2 = float64(0.7219355475671381) /* 0x3FE71A18, 0x93D3DCDC */ +var _r3 = float64(0.17193386563280308) /* 0x3FC601ED, 0xCCFBDF27 */ +var _r4 = float64(0.01864591917156529) /* 0x3F9317EA, 0x742ED475 */ +var _r5 = float64(0.0007779424963818936) /* 0x3F497DDA, 0xCA41A95B */ +var _r6 = float64(7.326684307446256e-06) /* 0x3EDEBAF7, 0xA5B38140 */ +var _w0 = float64(0.4189385332046727) /* 0x3FDACFE3, 0x90C97D69 */ +var _w1 = float64(0.08333333333333297) /* 0x3FB55555, 0x5555553B */ +var _w2 = -Float64FromFloat64(0.0027777777772877554) /* 0xBF66C16C, 0x16B02E5C */ +var _w3 = float64(0.0007936505586430196) /* 0x3F4A019F, 0x98CF38B6 */ +var _w4 = -Float64FromFloat64(0.00059518755745034) /* 0xBF4380CB, 0x8C0FE741 */ +var _w5 = float64(0.0008363399189962821) /* 0x3F4B67BA, 0x4CDAD5D1 */ +var _w6 = -Float64FromFloat64(0.0016309293409657527) /* 0xBF5AB89D, 0x0B9E43E4 */ + +// C documentation +// +// /* sin(pi*x) assuming x > 2^-100, if sin(pi*x)==0 the sign is arbitrary */ +func _sin_pi(tls *TLS, x float64) (r float64) { + var n int32 + _ = n + /* spurious inexact if odd int */ + x = float64(2) * (x*float64(0.5) - Xfloor(tls, x*float64(0.5))) /* x mod 2.0 */ + n = int32(x * Float64FromFloat64(4)) + n = (n + int32(1)) / int32(2) + x -= float64(float32(n) * Float32FromFloat32(0.5)) + x *= _pi2 + switch n { + default: /* case 4: */ + fallthrough + case 0: + return X__sin(tls, x, float64(0), 0) + case int32(1): + return X__cos(tls, x, float64(0)) + case int32(2): + return X__sin(tls, -x, float64(0), 0) + case int32(3): + return -X__cos(tls, x, float64(0)) + } + return r +} + +func X__lgamma_r(tls *TLS, x float64, signgamp uintptr) (r1 float64) { + if __ccgo_strace { + trc("tls=%v x=%v signgamp=%v, (%v:)", tls, x, signgamp, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var i, sign int32 + var ix Tuint32_t + var nadj, p, p1, p2, p3, q, r, t, w, y, z Tdouble_t + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = i, ix, nadj, p, p1, p2, p3, q, r, sign, t, w, y, z + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x + /* purge off +-inf, NaN, +-0, tiny and negative arguments */ + *(*int32)(unsafe.Pointer(signgamp)) = int32(1) + sign = int32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(63)) + ix = uint32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(32) & uint64(0x7fffffff)) + if ix >= uint32(0x7ff00000) { + return x * x + } + if ix < uint32((Int32FromInt32(0x3ff)-Int32FromInt32(70))< float64(0) { + *(*int32)(unsafe.Pointer(signgamp)) = -int32(1) + } else { + t = -t + } + nadj = Xlog(tls, _pi2/(t*x)) + } + /* purge off 1 and 2 */ + if (ix == uint32(0x3ff00000) || ix == uint32(0x40000000)) && uint32(*(*Tuint64_t)(unsafe.Pointer(bp))) == uint32(0) { + r = Float64FromInt32(0) + } else { + if ix < uint32(0x40000000) { + if ix <= uint32(0x3feccccc) { /* lgamma(x) = lgamma(x+1)-log(x) */ + r = -Xlog(tls, x) + if ix >= uint32(0x3FE76944) { + y = float64(1) - x + i = 0 + } else { + if ix >= uint32(0x3FCDA661) { + y = x - (_tc - Float64FromFloat64(1)) + i = int32(1) + } else { + y = x + i = int32(2) + } + } + } else { + r = float64(0) + if ix >= uint32(0x3FFBB4C3) { /* [1.7316,2] */ + y = float64(2) - x + i = 0 + } else { + if ix >= uint32(0x3FF3B4C4) { /* [1.23,1.73] */ + y = x - _tc + i = int32(1) + } else { + y = x - float64(1) + i = int32(2) + } + } + } + switch i { + case 0: + z = y * y + p1 = _a0 + z*(_a2+z*(_a4+z*(_a6+z*(_a8+z*_a10)))) + p2 = z * (_a1 + z*(_a3+z*(_a5+z*(_a7+z*(_a9+z*_a11))))) + p = y*p1 + p2 + r += p - float64(0.5)*y + case int32(1): + z = y * y + w = z * y + p1 = _t0 + w*(_t3+w*(_t6+w*(_t9+w*_t12))) /* parallel comp */ + p2 = _t1 + w*(_t4+w*(_t7+w*(_t10+w*_t13))) + p3 = _t2 + w*(_t5+w*(_t8+w*(_t11+w*_t14))) + p = z*p1 - (_tt - w*(p2+y*p3)) + r += _tf + p + case int32(2): + p1 = y * (_u0 + y*(_u1+y*(_u2+y*(_u3+y*(_u4+y*_u5))))) + p2 = float64(1) + y*(_v1+y*(_v2+y*(_v3+y*(_v4+y*_v5)))) + r += -Float64FromFloat64(0.5)*y + p1/p2 + } + } else { + if ix < uint32(0x40200000) { /* x < 8.0 */ + i = int32(x) + y = x - float64(i) + p = y * (_s0 + y*(_s1+y*(_s2+y*(_s3+y*(_s4+y*(_s5+y*_s6)))))) + q = float64(1) + y*(_r1+y*(_r2+y*(_r3+y*(_r4+y*(_r5+y*_r6))))) + r = float64(0.5)*y + p/q + z = float64(1) /* lgamma(1+s) = log(s) + lgamma(s) */ + switch i { + case int32(7): + z *= y + float64(6) /* FALLTHRU */ + fallthrough + case int32(6): + z *= y + float64(5) /* FALLTHRU */ + fallthrough + case int32(5): + z *= y + float64(4) /* FALLTHRU */ + fallthrough + case int32(4): + z *= y + float64(3) /* FALLTHRU */ + fallthrough + case int32(3): + z *= y + float64(2) /* FALLTHRU */ + r += Xlog(tls, z) + break + } + } else { + if ix < uint32(0x43900000) { /* 8.0 <= x < 2**58 */ + t = Xlog(tls, x) + z = float64(1) / x + y = z * z + w = _w0 + z*(_w1+y*(_w2+y*(_w3+y*(_w4+y*(_w5+y*_w6))))) + r = (x-float64(0.5))*(t-Float64FromFloat64(1)) + w + } else { /* 2**58 <= x <= inf */ + r = x * (Xlog(tls, x) - float64(1)) + } + } + } + } + if sign != 0 { + r = nadj - r + } + return r +} + +func Xlgamma_r(tls *TLS, x float64, signgamp uintptr) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v signgamp=%v, (%v:)", tls, x, signgamp, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__lgamma_r(tls, x, signgamp) +} + +func Xlgammaf(tls *TLS, x float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__lgammaf_r(tls, x, uintptr(unsafe.Pointer(&Xsigngam))) +} + +var _pi3 = float32(3.141592741) /* 0x40490fdb */ +var _a01 = float32(0.077215664089) /* 0x3d9e233f */ +var _a12 = float32(0.32246702909) /* 0x3ea51a66 */ +var _a21 = float32(0.067352302372) /* 0x3d89f001 */ +var _a31 = float32(0.020580807701) /* 0x3ca89915 */ +var _a41 = float32(0.0073855509982) /* 0x3bf2027e */ +var _a51 = float32(0.0028905137442) /* 0x3b3d6ec6 */ +var _a61 = float32(0.0011927076848) /* 0x3a9c54a1 */ +var _a71 = float32(0.00051006977446) /* 0x3a05b634 */ +var _a81 = float32(0.00022086278477) /* 0x39679767 */ +var _a91 = float32(0.00010801156895) /* 0x38e28445 */ +var _a101 = float32(2.52144564e-05) /* 0x37d383a2 */ +var _a111 = float32(4.4864096708e-05) /* 0x383c2c75 */ +var _tc1 = float32(1.4616321325) /* 0x3fbb16c3 */ +var _tf1 = float32(-Float64FromFloat64(0.12148628384)) /* 0xbdf8cdcd */ +/* tt = -(tail of tf) */ +var _tt1 = float32(6.6971006518e-09) /* 0x31e61c52 */ +var _t01 = float32(0.48383611441) /* 0x3ef7b95e */ +var _t15 = float32(-Float64FromFloat64(0.14758771658)) /* 0xbe17213c */ +var _t21 = float32(0.064624942839) /* 0x3d845a15 */ +var _t31 = float32(-Float64FromFloat64(0.032788541168)) /* 0xbd064d47 */ +var _t41 = float32(0.017970675603) /* 0x3c93373d */ +var _t51 = float32(-Float64FromFloat64(0.010314224288)) /* 0xbc28fcfe */ +var _t61 = float32(0.0061005386524) /* 0x3bc7e707 */ +var _t71 = float32(-Float64FromFloat64(0.0036845202558)) /* 0xbb7177fe */ +var _t81 = float32(0.0022596477065) /* 0x3b141699 */ +var _t91 = float32(-Float64FromFloat64(0.0014034647029)) /* 0xbab7f476 */ +var _t101 = float32(0.00088108185446) /* 0x3a66f867 */ +var _t111 = float32(-Float64FromFloat64(0.00053859531181)) /* 0xba0d3085 */ +var _t121 = float32(0.00031563205994) /* 0x39a57b6b */ +var _t131 = float32(-Float64FromFloat64(0.00031275415677)) /* 0xb9a3f927 */ +var _t141 = float32(0.00033552918467) /* 0x39afe9f7 */ +var _u07 = float32(-Float64FromFloat64(0.077215664089)) /* 0xbd9e233f */ +var _u11 = float32(0.63282704353) /* 0x3f2200f4 */ +var _u21 = float32(1.4549225569) /* 0x3fba3ae7 */ +var _u31 = float32(0.97771751881) /* 0x3f7a4bb2 */ +var _u41 = float32(0.22896373272) /* 0x3e6a7578 */ +var _u51 = float32(0.013381091878) /* 0x3c5b3c5e */ +var _v11 = float32(2.4559779167) /* 0x401d2ebe */ +var _v21 = float32(2.1284897327) /* 0x4008392d */ +var _v31 = float32(0.76928514242) /* 0x3f44efdf */ +var _v41 = float32(0.10422264785) /* 0x3dd572af */ +var _v51 = float32(0.0032170924824) /* 0x3b52d5db */ +var _s06 = float32(-Float64FromFloat64(0.077215664089)) /* 0xbd9e233f */ +var _s11 = float32(0.21498242021) /* 0x3e5c245a */ +var _s21 = float32(0.32577878237) /* 0x3ea6cc7a */ +var _s31 = float32(0.14635047317) /* 0x3e15dce6 */ +var _s41 = float32(0.026642270386) /* 0x3cda40e4 */ +var _s51 = float32(0.0018402845599) /* 0x3af135b4 */ +var _s61 = float32(3.1947532989e-05) /* 0x3805ff67 */ +var _r11 = float32(1.3920053244) /* 0x3fb22d3b */ +var _r21 = float32(0.72193557024) /* 0x3f38d0c5 */ +var _r31 = float32(0.17193385959) /* 0x3e300f6e */ +var _r41 = float32(0.018645919859) /* 0x3c98bf54 */ +var _r51 = float32(0.00077794247773) /* 0x3a4beed6 */ +var _r61 = float32(7.3266842264e-06) /* 0x36f5d7bd */ +var _w01 = float32(0.41893854737) /* 0x3ed67f1d */ +var _w11 = float32(0.083333335817) /* 0x3daaaaab */ +var _w21 = float32(-Float64FromFloat64(0.002777777845)) /* 0xbb360b61 */ +var _w31 = float32(0.00079365057172) /* 0x3a500cfd */ +var _w41 = float32(-Float64FromFloat64(0.00059518753551)) /* 0xba1c065c */ +var _w51 = float32(0.00083633989561) /* 0x3a5b3dd2 */ +var _w61 = float32(-Float64FromFloat64(0.0016309292987)) /* 0xbad5c4e8 */ + +// C documentation +// +// /* sin(pi*x) assuming x > 2^-100, if sin(pi*x)==0 the sign is arbitrary */ +func _sin_pi1(tls *TLS, x float32) (r float32) { + var n int32 + var y Tdouble_t + _, _ = n, y + /* spurious inexact if odd int */ + x = Float32FromInt32(2) * (x*Float32FromFloat32(0.5) - Xfloorf(tls, x*Float32FromFloat32(0.5))) /* x mod 2.0 */ + n = int32(x * Float32FromInt32(4)) + n = (n + int32(1)) / int32(2) + y = float64(x - float32(n)*Float32FromFloat32(0.5)) + y *= float64(3.141592653589793) + switch n { + default: /* case 4: */ + fallthrough + case 0: + return X__sindf(tls, y) + case int32(1): + return X__cosdf(tls, y) + case int32(2): + return X__sindf(tls, -y) + case int32(3): + return -X__cosdf(tls, y) + } + return r +} + +func X__lgammaf_r(tls *TLS, x float32, signgamp uintptr) (r1 float32) { + if __ccgo_strace { + trc("tls=%v x=%v signgamp=%v, (%v:)", tls, x, signgamp, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var i, sign int32 + var ix Tuint32_t + var nadj, p, p1, p2, p3, q, r, t, w, y, z float32 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = i, ix, nadj, p, p1, p2, p3, q, r, sign, t, w, y, z + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x + /* purge off +-inf, NaN, +-0, tiny and negative arguments */ + *(*int32)(unsafe.Pointer(signgamp)) = int32(1) + sign = int32(*(*Tuint32_t)(unsafe.Pointer(bp)) >> int32(31)) + ix = *(*Tuint32_t)(unsafe.Pointer(bp)) & uint32(0x7fffffff) + if ix >= uint32(0x7f800000) { + return x * x + } + if ix < uint32(0x35000000) { /* |x| < 2**-21, return -log(|x|) */ + if sign != 0 { + *(*int32)(unsafe.Pointer(signgamp)) = -int32(1) + x = -x + } + return -Xlogf(tls, x) + } + if sign != 0 { + x = -x + t = _sin_pi1(tls, x) + if t == Float32FromFloat32(0) { /* -integer */ + return Float32FromFloat32(1) / (x - x) + } + if t > Float32FromFloat32(0) { + *(*int32)(unsafe.Pointer(signgamp)) = -int32(1) + } else { + t = -t + } + nadj = Xlogf(tls, _pi3/(t*x)) + } + /* purge off 1 and 2 */ + if ix == uint32(0x3f800000) || ix == uint32(0x40000000) { + r = Float32FromInt32(0) + } else { + if ix < uint32(0x40000000) { + if ix <= uint32(0x3f666666) { /* lgamma(x) = lgamma(x+1)-log(x) */ + r = -Xlogf(tls, x) + if ix >= uint32(0x3f3b4a20) { + y = Float32FromFloat32(1) - x + i = 0 + } else { + if ix >= uint32(0x3e6d3308) { + y = x - (_tc1 - Float32FromFloat32(1)) + i = int32(1) + } else { + y = x + i = int32(2) + } + } + } else { + r = Float32FromFloat32(0) + if ix >= uint32(0x3fdda618) { /* [1.7316,2] */ + y = Float32FromFloat32(2) - x + i = 0 + } else { + if ix >= uint32(0x3F9da620) { /* [1.23,1.73] */ + y = x - _tc1 + i = int32(1) + } else { + y = x - Float32FromFloat32(1) + i = int32(2) + } + } + } + switch i { + case 0: + z = y * y + p1 = _a01 + z*(_a21+z*(_a41+z*(_a61+z*(_a81+z*_a101)))) + p2 = z * (_a12 + z*(_a31+z*(_a51+z*(_a71+z*(_a91+z*_a111))))) + p = y*p1 + p2 + r += p - Float32FromFloat32(0.5)*y + case int32(1): + z = y * y + w = z * y + p1 = _t01 + w*(_t31+w*(_t61+w*(_t91+w*_t121))) /* parallel comp */ + p2 = _t15 + w*(_t41+w*(_t71+w*(_t101+w*_t131))) + p3 = _t21 + w*(_t51+w*(_t81+w*(_t111+w*_t141))) + p = z*p1 - (_tt1 - w*(p2+y*p3)) + r += _tf1 + p + case int32(2): + p1 = y * (_u07 + y*(_u11+y*(_u21+y*(_u31+y*(_u41+y*_u51))))) + p2 = Float32FromFloat32(1) + y*(_v11+y*(_v21+y*(_v31+y*(_v41+y*_v51)))) + r += -Float32FromFloat32(0.5)*y + p1/p2 + } + } else { + if ix < uint32(0x41000000) { /* x < 8.0 */ + i = int32(x) + y = x - float32(i) + p = y * (_s06 + y*(_s11+y*(_s21+y*(_s31+y*(_s41+y*(_s51+y*_s61)))))) + q = Float32FromFloat32(1) + y*(_r11+y*(_r21+y*(_r31+y*(_r41+y*(_r51+y*_r61))))) + r = Float32FromFloat32(0.5)*y + p/q + z = Float32FromFloat32(1) /* lgamma(1+s) = log(s) + lgamma(s) */ + switch i { + case int32(7): + z *= y + Float32FromFloat32(6) /* FALLTHRU */ + fallthrough + case int32(6): + z *= y + Float32FromFloat32(5) /* FALLTHRU */ + fallthrough + case int32(5): + z *= y + Float32FromFloat32(4) /* FALLTHRU */ + fallthrough + case int32(4): + z *= y + Float32FromFloat32(3) /* FALLTHRU */ + fallthrough + case int32(3): + z *= y + Float32FromFloat32(2) /* FALLTHRU */ + r += Xlogf(tls, z) + break + } + } else { + if ix < uint32(0x5c800000) { /* 8.0 <= x < 2**58 */ + t = Xlogf(tls, x) + z = Float32FromFloat32(1) / x + y = z * z + w = _w01 + z*(_w11+y*(_w21+y*(_w31+y*(_w41+y*(_w51+y*_w61))))) + r = (x-Float32FromFloat32(0.5))*(t-Float32FromFloat32(1)) + w + } else { /* 2**58 <= x <= inf */ + r = x * (Xlogf(tls, x) - Float32FromFloat32(1)) + } + } + } + } + if sign != 0 { + r = nadj - r + } + return r +} + +func Xlgammaf_r(tls *TLS, x float32, signgamp uintptr) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v signgamp=%v, (%v:)", tls, x, signgamp, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__lgammaf_r(tls, x, signgamp) +} + +func X__lgammal_r(tls *TLS, x float64, sg uintptr) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v sg=%v, (%v:)", tls, x, sg, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__lgamma_r(tls, x, sg) +} + +func Xlgammal(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__lgammal_r(tls, x, uintptr(unsafe.Pointer(&Xsigngam))) +} + +func Xlgammal_r(tls *TLS, x float64, sg uintptr) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v sg=%v, (%v:)", tls, x, sg, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__lgammal_r(tls, x, sg) +} + +/* uses LLONG_MAX > 2^53, see comments in lrint.c */ + +func Xllrint(tls *TLS, x float64) (r int64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int64(Xrint(tls, x)) +} + +/* uses LLONG_MAX > 2^24, see comments in lrint.c */ + +func Xllrintf(tls *TLS, x float32) (r int64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int64(Xrintf(tls, x)) +} + +func Xllrintl(tls *TLS, x float64) (r int64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xllrint(tls, x) +} + +func Xllround(tls *TLS, x float64) (r int64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int64(Xround(tls, x)) +} + +func Xllroundf(tls *TLS, x float32) (r int64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int64(Xroundf(tls, x)) +} + +func Xllroundl(tls *TLS, x float64) (r int64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int64(Xroundl(tls, x)) +} + +const LOG_POLY1_ORDER = 12 +const LOG_POLY_ORDER = 6 +const LOG_TABLE_BITS = 7 +const N4 = 128 +const OFF = 4604367669032910848 + +// C documentation +// +// /* Top 16 bits of a double. */ +func _top16(tls *TLS, x float64) (r Tuint32_t) { + return uint32(*(*Tuint64_t)(unsafe.Pointer(&x)) >> int32(48)) +} + +func Xlog(tls *TLS, x1 float64) (r1 float64) { + if __ccgo_strace { + trc("tls=%v x1=%v, (%v:)", tls, x1, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var hi, invc, kd, lo, logc, r, r2, r3, rhi, rlo, w, y1, z Tdouble_t + var i, k int32 + var ix, iz, tmp Tuint64_t + var top Tuint32_t + var y, v1, v10, v2, v3, v4, v6, v8, v9 float64 + var v5 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = hi, i, invc, ix, iz, k, kd, lo, logc, r, r2, r3, rhi, rlo, tmp, top, w, y, y1, z, v1, v10, v2, v3, v4, v5, v6, v8, v9 + ix = *(*Tuint64_t)(unsafe.Pointer(&x1)) + top = _top16(tls, x1) + v1 = Float64FromFloat64(1) - Float64FromFloat64(0.0625) + v2 = Float64FromFloat64(1) + Float64FromFloat64(0.064697265625) + v3 = Float64FromFloat64(1) - Float64FromFloat64(0.0625) + if ix-*(*Tuint64_t)(unsafe.Pointer(&v1)) < *(*Tuint64_t)(unsafe.Pointer(&v2))-*(*Tuint64_t)(unsafe.Pointer(&v3)) { + /* Handle close to 1.0 inputs separately. */ + /* Fix sign of zero with downward rounding when x==1. */ + if v5 = Bool(int32(WANT_ROUNDING) != 0); v5 { + v4 = float64(1) + } + if v5 && ix == *(*Tuint64_t)(unsafe.Pointer(&v4)) { + return Float64FromInt32(0) + } + r = x1 - float64(1) + r2 = r * r + r3 = r * r2 + y1 = r3 * (*(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log_data)) + 56 + 1*8)) + r**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log_data)) + 56 + 2*8)) + r2**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log_data)) + 56 + 3*8)) + r3*(*(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log_data)) + 56 + 4*8))+r**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log_data)) + 56 + 5*8))+r2**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log_data)) + 56 + 6*8))+r3*(*(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log_data)) + 56 + 7*8))+r**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log_data)) + 56 + 8*8))+r2**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log_data)) + 56 + 9*8))+r3**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log_data)) + 56 + 10*8))))) + /* Worst-case error is around 0.507 ULP. */ + w = r * float64(1.34217728e+08) + rhi = r + w - w + rlo = r - rhi + w = rhi * rhi * *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log_data)) + 56)) /* B[0] == -0.5. */ + hi = r + w + lo = r - hi + w + lo += *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log_data)) + 56)) * rlo * (rhi + r) + y1 += lo + y1 += hi + y = y1 + v6 = y + goto _7 + _7: + return v6 + } + if top-uint32(0x0010) >= uint32(Int32FromInt32(0x7ff0)-Int32FromInt32(0x0010)) { + /* x < 0x1p-1022 or inf or nan. */ + if ix*uint64(2) == uint64(0) { + return X__math_divzero(tls, uint32(1)) + } + v8 = float64(X__builtin_inff(tls)) + if ix == *(*Tuint64_t)(unsafe.Pointer(&v8)) { /* log(inf) == inf. */ + return x1 + } + if top&uint32(0x8000) != 0 || top&uint32(0x7ff0) == uint32(0x7ff0) { + return X__math_invalid(tls, x1) + } + /* x is subnormal, normalize it. */ + v9 = x1 * float64(4.503599627370496e+15) + ix = *(*Tuint64_t)(unsafe.Pointer(&v9)) + ix = ix - Uint64FromUint64(52)<> (Int32FromInt32(52) - Int32FromInt32(LOG_TABLE_BITS)) % uint64(Int32FromInt32(1)<> int32(52)) /* arithmetic shift */ + iz = ix - tmp&(Uint64FromUint64(0xfff)< 0x1p-5: + 0.5 + 4.13/N + abs-poly-error*2^57 ULP (+ 0.002 ULP without fma) + Worst case error if |y| > 0x1p-4: + 0.5 + 2.06/N + abs-poly-error*2^56 ULP (+ 0.001 ULP without fma). */ + y1 = lo + r2**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log_data)) + 16)) + r*r2*(*(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log_data)) + 16 + 1*8))+r**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log_data)) + 16 + 2*8))+r2*(*(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log_data)) + 16 + 3*8))+r**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log_data)) + 16 + 4*8)))) + hi + y = y1 + v10 = y + goto _11 +_11: + return v10 +} + +var _ivln10hi = float64(0.4342944818781689) /* 0x3fdbcb7b, 0x15200000 */ +var _ivln10lo = float64(2.5082946711645275e-11) /* 0x3dbb9438, 0xca9aadd5 */ +var _log10_2hi = float64(0.30102999566361177) /* 0x3FD34413, 0x509F6000 */ +var _log10_2lo = float64(3.694239077158931e-13) /* 0x3D59FEF3, 0x11F12B36 */ +var _Lg1 = float64(0.6666666666666735) /* 3FE55555 55555593 */ +var _Lg2 = float64(0.3999999999940942) /* 3FD99999 9997FA04 */ +var _Lg3 = float64(0.2857142874366239) /* 3FD24924 94229359 */ +var _Lg4 = float64(0.22222198432149784) /* 3FCC71C5 1D8E78AF */ +var _Lg5 = float64(0.1818357216161805) /* 3FC74664 96CB03DE */ +var _Lg6 = float64(0.15313837699209373) /* 3FC39A09 D078C69F */ +var _Lg7 = float64(0.14798198605116586) /* 3FC2F112 DF3E5244 */ + +func Xlog10(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var R, dk, f, hfsq, hi, lo, s, t1, t2, val_hi, val_lo, w, y, z Tdouble_t + var hx Tuint32_t + var k int32 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = R, dk, f, hfsq, hi, hx, k, lo, s, t1, t2, val_hi, val_lo, w, y, z + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x + hx = uint32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(32)) + k = 0 + if hx < uint32(0x00100000) || hx>>int32(31) != 0 { + if *(*Tuint64_t)(unsafe.Pointer(bp))<>int32(31) != 0 { + return (x - x) / float64(0) + } /* log(-#) = NaN */ + /* subnormal number, scale x up */ + k -= int32(54) + x *= float64(1.8014398509481984e+16) + *(*float64)(unsafe.Pointer(bp)) = x + hx = uint32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(32)) + } else { + if hx >= uint32(0x7ff00000) { + return x + } else { + if hx == uint32(0x3ff00000) && *(*Tuint64_t)(unsafe.Pointer(bp))<>Int32FromInt32(20)) - int32(0x3ff) + hx = hx&uint32(0x000fffff) + uint32(0x3fe6a09e) + *(*Tuint64_t)(unsafe.Pointer(bp)) = uint64(hx)< %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var R, dk, f, hfsq, hi, lo, s, t1, t2, w, z Tfloat_t + var ix Tuint32_t + var k int32 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _, _, _, _, _, _, _, _, _ = R, dk, f, hfsq, hi, ix, k, lo, s, t1, t2, w, z + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x + ix = *(*Tuint32_t)(unsafe.Pointer(bp)) + k = 0 + if ix < uint32(0x00800000) || ix>>int32(31) != 0 { /* x < 2**-126 */ + if ix<>int32(31) != 0 { + return (x - x) / Float32FromFloat32(0) + } /* log(-#) = NaN */ + /* subnormal number, scale up x */ + k -= int32(25) + x *= Float32FromFloat32(3.3554432e+07) + *(*float32)(unsafe.Pointer(bp)) = x + ix = *(*Tuint32_t)(unsafe.Pointer(bp)) + } else { + if ix >= uint32(0x7f800000) { + return x + } else { + if ix == uint32(0x3f800000) { + return Float32FromInt32(0) + } + } + } + /* reduce x into [sqrt(2)/2, sqrt(2)] */ + ix += uint32(Int32FromInt32(0x3f800000) - Int32FromInt32(0x3f3504f3)) + k += int32(ix>>Int32FromInt32(23)) - int32(0x7f) + ix = ix&uint32(0x007fffff) + uint32(0x3f3504f3) + *(*Tuint32_t)(unsafe.Pointer(bp)) = ix + x = *(*float32)(unsafe.Pointer(bp)) + f = x - Float32FromFloat32(1) + s = f / (Float32FromFloat32(2) + f) + z = s * s + w = z * z + t1 = w * (_Lg21 + w*_Lg41) + t2 = z * (_Lg11 + w*_Lg31) + R = t2 + t1 + hfsq = Float32FromFloat32(0.5) * f * f + hi = f - hfsq + *(*float32)(unsafe.Pointer(bp)) = hi + *(*Tuint32_t)(unsafe.Pointer(bp)) &= uint32(0xfffff000) + hi = *(*float32)(unsafe.Pointer(bp)) + lo = f - hi - hfsq + s*(hfsq+R) + dk = float32(k) + return dk*_log10_2lo1 + (lo+hi)*_ivln10lo1 + lo*_ivln10hi1 + hi*_ivln10hi1 + dk*_log10_2hi1 +} + +func Xlog10l(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xlog10(tls, x) +} + +var _ln2_hi2 = float64(0.6931471803691238) /* 3fe62e42 fee00000 */ +var _ln2_lo2 = float64(1.9082149292705877e-10) /* 3dea39ef 35793c76 */ +var _Lg12 = float64(0.6666666666666735) /* 3FE55555 55555593 */ +var _Lg22 = float64(0.3999999999940942) /* 3FD99999 9997FA04 */ +var _Lg32 = float64(0.2857142874366239) /* 3FD24924 94229359 */ +var _Lg42 = float64(0.22222198432149784) /* 3FCC71C5 1D8E78AF */ +var _Lg51 = float64(0.1818357216161805) /* 3FC74664 96CB03DE */ +var _Lg61 = float64(0.15313837699209373) /* 3FC39A09 D078C69F */ +var _Lg71 = float64(0.14798198605116586) /* 3FC2F112 DF3E5244 */ + +func Xlog1p(tls *TLS, x3 float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var R, c, dk, f, hfsq, s, t1, t2, w, z Tdouble_t + var hu, hx Tuint32_t + var k int32 + var y float32 + var y1, y2, v1 float64 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = R, c, dk, f, hfsq, hu, hx, k, s, t1, t2, w, y, y1, y2, z, v1 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x3 + hx = uint32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(32)) + k = int32(1) + if hx < uint32(0x3fda827a) || hx>>int32(31) != 0 { /* 1+x < sqrt(2)+ */ + if hx >= uint32(0xbff00000) { /* x <= -1.0 */ + if x3 == float64(-Int32FromInt32(1)) { + return x3 / float64(0) + } /* log1p(-1) = -inf */ + return (x3 - x3) / float64(0) /* log1p(x<-1) = NaN */ + } + if hx<= uint32(0x7ff00000) { + return x3 + } + } + if k != 0 { + *(*float64)(unsafe.Pointer(bp)) = Float64FromInt32(1) + x3 + hu = uint32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(32)) + hu += uint32(Int32FromInt32(0x3ff00000) - Int32FromInt32(0x3fe6a09e)) + k = int32(hu>>Int32FromInt32(20)) - int32(0x3ff) + /* correction term ~ log(1+x)-log(u), avoid underflow in c/u */ + if k < int32(54) { + if k >= int32(2) { + v1 = Float64FromInt32(1) - (*(*float64)(unsafe.Pointer(bp)) - x3) + } else { + v1 = x3 - (*(*float64)(unsafe.Pointer(bp)) - Float64FromInt32(1)) + } + c = v1 + c /= *(*float64)(unsafe.Pointer(bp)) + } else { + c = Float64FromInt32(0) + } + /* reduce u into [sqrt(2)/2, sqrt(2)] */ + hu = hu&uint32(0x000fffff) + uint32(0x3fe6a09e) + *(*Tuint64_t)(unsafe.Pointer(bp)) = uint64(hu)< %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var R, c, dk, f, hfsq, s, t1, t2, w, z Tfloat_t + var iu, ix Tuint32_t + var k int32 + var y, v1 float32 + var y1, y2 float64 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = R, c, dk, f, hfsq, iu, ix, k, s, t1, t2, w, y, y1, y2, z, v1 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x3 + ix = *(*Tuint32_t)(unsafe.Pointer(bp)) + k = int32(1) + if ix < uint32(0x3ed413d0) || ix>>int32(31) != 0 { /* 1+x < sqrt(2)+ */ + if ix >= uint32(0xbf800000) { /* x <= -1.0 */ + if x3 == float32(-Int32FromInt32(1)) { + return x3 / Float32FromFloat32(0) + } /* log1p(-1)=+inf */ + return (x3 - x3) / Float32FromFloat32(0) /* log1p(x<-1)=NaN */ + } + if ix<= uint32(0x7f800000) { + return x3 + } + } + if k != 0 { + *(*float32)(unsafe.Pointer(bp)) = Float32FromInt32(1) + x3 + iu = *(*Tuint32_t)(unsafe.Pointer(bp)) + iu += uint32(Int32FromInt32(0x3f800000) - Int32FromInt32(0x3f3504f3)) + k = int32(iu>>Int32FromInt32(23)) - int32(0x7f) + /* correction term ~ log(1+x)-log(u), avoid underflow in c/u */ + if k < int32(25) { + if k >= int32(2) { + v1 = Float32FromInt32(1) - (*(*float32)(unsafe.Pointer(bp)) - x3) + } else { + v1 = x3 - (*(*float32)(unsafe.Pointer(bp)) - Float32FromInt32(1)) + } + c = v1 + c /= *(*float32)(unsafe.Pointer(bp)) + } else { + c = Float32FromInt32(0) + } + /* reduce u into [sqrt(2)/2, sqrt(2)] */ + iu = iu&uint32(0x007fffff) + uint32(0x3f3504f3) + *(*Tuint32_t)(unsafe.Pointer(bp)) = iu + f = *(*float32)(unsafe.Pointer(bp)) - Float32FromInt32(1) + } + s = f / (Float32FromFloat32(2) + f) + z = s * s + w = z * z + t1 = w * (_Lg23 + w*_Lg43) + t2 = z * (_Lg13 + w*_Lg33) + R = t2 + t1 + hfsq = Float32FromFloat32(0.5) * f * f + dk = float32(k) + return s*(hfsq+R) + (dk*_ln2_lo3 + c) - hfsq + f + dk*_ln2_hi3 +} + +func Xlog1pl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xlog1p(tls, x) +} + +const LOG2_POLY1_ORDER = 11 +const LOG2_POLY_ORDER = 7 +const LOG2_TABLE_BITS = 6 +const N5 = 64 + +// C documentation +// +// /* Top 16 bits of a double. */ +func _top161(tls *TLS, x float64) (r Tuint32_t) { + return uint32(*(*Tuint64_t)(unsafe.Pointer(&x)) >> int32(48)) +} + +func Xlog2(tls *TLS, x1 float64) (r1 float64) { + if __ccgo_strace { + trc("tls=%v x1=%v, (%v:)", tls, x1, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var hi, invc, kd, lo, logc, p, r, r2, r4, t1, t2, t3, y1, z Tdouble_t + var i, k int32 + var ix, iz, tmp Tuint64_t + var top Tuint32_t + var y, v1, v10, v2, v3, v4, v6, v8, v9 float64 + var v5 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = hi, i, invc, ix, iz, k, kd, lo, logc, p, r, r2, r4, t1, t2, t3, tmp, top, y, y1, z, v1, v10, v2, v3, v4, v5, v6, v8, v9 + ix = *(*Tuint64_t)(unsafe.Pointer(&x1)) + top = _top161(tls, x1) + v1 = Float64FromFloat64(1) - Float64FromFloat64(0.04239702224731445) + v2 = Float64FromFloat64(1) + Float64FromFloat64(0.044274330139160156) + v3 = Float64FromFloat64(1) - Float64FromFloat64(0.04239702224731445) + if ix-*(*Tuint64_t)(unsafe.Pointer(&v1)) < *(*Tuint64_t)(unsafe.Pointer(&v2))-*(*Tuint64_t)(unsafe.Pointer(&v3)) { + /* Handle close to 1.0 inputs separately. */ + /* Fix sign of zero with downward rounding when x==1. */ + if v5 = Bool(int32(WANT_ROUNDING) != 0); v5 { + v4 = float64(1) + } + if v5 && ix == *(*Tuint64_t)(unsafe.Pointer(&v4)) { + return Float64FromInt32(0) + } + r = x1 - float64(1) + hi = r * X__log2_data.Finvln2hi + lo = r*X__log2_data.Finvln2lo + X__builtin_fma(tls, r, X__log2_data.Finvln2hi, -hi) + r2 = r * r /* rounding error: 0x1p-62. */ + r4 = r2 * r2 + /* Worst-case error is less than 0.54 ULP (0.55 ULP without fma). */ + p = r2 * (*(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2_data)) + 64)) + r**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2_data)) + 64 + 1*8))) + y1 = hi + p + lo += hi - y1 + p + lo += r4 * (*(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2_data)) + 64 + 2*8)) + r**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2_data)) + 64 + 3*8)) + r2*(*(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2_data)) + 64 + 4*8))+r**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2_data)) + 64 + 5*8))) + r4*(*(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2_data)) + 64 + 6*8))+r**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2_data)) + 64 + 7*8))+r2*(*(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2_data)) + 64 + 8*8))+r**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2_data)) + 64 + 9*8))))) + y1 += lo + y = y1 + v6 = y + goto _7 + _7: + return v6 + } + if top-uint32(0x0010) >= uint32(Int32FromInt32(0x7ff0)-Int32FromInt32(0x0010)) { + /* x < 0x1p-1022 or inf or nan. */ + if ix*uint64(2) == uint64(0) { + return X__math_divzero(tls, uint32(1)) + } + v8 = float64(X__builtin_inff(tls)) + if ix == *(*Tuint64_t)(unsafe.Pointer(&v8)) { /* log(inf) == inf. */ + return x1 + } + if top&uint32(0x8000) != 0 || top&uint32(0x7ff0) == uint32(0x7ff0) { + return X__math_invalid(tls, x1) + } + /* x is subnormal, normalize it. */ + v9 = x1 * float64(4.503599627370496e+15) + ix = *(*Tuint64_t)(unsafe.Pointer(&v9)) + ix = ix - Uint64FromUint64(52)<> (Int32FromInt32(52) - Int32FromInt32(LOG2_TABLE_BITS)) % uint64(Int32FromInt32(1)<> int32(52)) /* arithmetic shift */ + iz = ix - tmp&(Uint64FromUint64(0xfff)< 0x1p-4: 0.547 ULP (0.550 ULP without fma). + ~ 0.5 + 2/N/ln2 + abs-poly-error*0x1p56 ULP (+ 0.003 ULP without fma). */ + p = *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2_data)) + 16)) + r**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2_data)) + 16 + 1*8)) + r2*(*(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2_data)) + 16 + 2*8))+r**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2_data)) + 16 + 3*8))) + r4*(*(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2_data)) + 16 + 4*8))+r**(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2_data)) + 16 + 5*8))) + y1 = lo + r2*p + hi + y = y1 + v10 = y + goto _11 +_11: + return v10 +} + +type Tlog2_data = struct { + Finvln2hi float64 + Finvln2lo float64 + Fpoly [6]float64 + Fpoly1 [10]float64 + Ftab [64]struct { + Finvc float64 + Flogc float64 + } +} + +const LOG2F_POLY_ORDER = 4 +const LOG2F_TABLE_BITS = 4 +const N6 = 16 +const OFF1 = 1060306944 + +/* +LOG2F_TABLE_BITS = 4 +LOG2F_POLY_ORDER = 4 + +ULP error: 0.752 (nearest rounding.) +Relative error: 1.9 * 2^-26 (before rounding.) +*/ + +func Xlog2f(tls *TLS, x1 float32) (r1 float32) { + if __ccgo_strace { + trc("tls=%v x1=%v, (%v:)", tls, x1, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var i, k int32 + var invc, logc, p, r, r2, y0, y1, z Tdouble_t + var ix, iz, tmp, top Tuint32_t + var y, v1, v2 float32 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = i, invc, ix, iz, k, logc, p, r, r2, tmp, top, y, y0, y1, z, v1, v2 + ix = *(*Tuint32_t)(unsafe.Pointer(&x1)) + /* Fix sign of zero with downward rounding when x==1. */ + if Bool(int32(WANT_ROUNDING) != 0) && ix == uint32(0x3f800000) { + return Float32FromInt32(0) + } + if ix-uint32(0x00800000) >= uint32(Int32FromInt32(0x7f800000)-Int32FromInt32(0x00800000)) { + /* x < 0x1p-126 or inf or nan. */ + if ix*uint32(2) == uint32(0) { + return X__math_divzerof(tls, uint32(1)) + } + if ix == uint32(0x7f800000) { /* log2(inf) == inf. */ + return x1 + } + if ix&uint32(0x80000000) != 0 || ix*uint32(2) >= uint32(0xff000000) { + return X__math_invalidf(tls, x1) + } + /* x is subnormal, normalize it. */ + v1 = x1 * Float32FromFloat32(8.388608e+06) + ix = *(*Tuint32_t)(unsafe.Pointer(&v1)) + ix -= uint32(Int32FromInt32(23) << Int32FromInt32(23)) + } + /* x = 2^k z; where z is in range [OFF,2*OFF] and exact. + The range is split into N subintervals. + The ith subinterval contains z and c is near its center. */ + tmp = ix - uint32(OFF1) + i = int32(tmp >> (Int32FromInt32(23) - Int32FromInt32(LOG2F_TABLE_BITS)) % uint32(Int32FromInt32(1)<> int32(23) /* arithmetic shift */ + invc = (*(*struct { + Finvc float64 + Flogc float64 + })(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2f_data)) + uintptr(i)*16))).Finvc + logc = (*(*struct { + Finvc float64 + Flogc float64 + })(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2f_data)) + uintptr(i)*16))).Flogc + z = float64(*(*float32)(unsafe.Pointer(&iz))) + /* log2(x) = log1p(z/c-1)/ln2 + log2(c) + k */ + r = z*invc - Float64FromInt32(1) + y0 = logc + float64(k) + /* Pipelined polynomial evaluation to approximate log1p(r)/ln2. */ + r2 = r * r + y1 = *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2f_data)) + 256 + 1*8))*r + *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2f_data)) + 256 + 2*8)) + y1 = *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2f_data)) + 256))*r2 + y1 + p = *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__log2f_data)) + 256 + 3*8))*r + y0 + y1 = y1*r2 + p + y = float32(y1) + v2 = y + goto _3 +_3: + return v2 +} + +type Tlog2f_data = struct { + Ftab [16]struct { + Finvc float64 + Flogc float64 + } + Fpoly [4]float64 +} + +func Xlog2l(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xlog2(tls, x) +} + +const N7 = 128 + +type Tlog_data = struct { + Fln2hi float64 + Fln2lo float64 + Fpoly [5]float64 + Fpoly1 [11]float64 + Ftab [128]struct { + Finvc float64 + Flogc float64 + } +} + +/* +special cases: + logb(+-0) = -inf, and raise divbyzero + logb(+-inf) = +inf + logb(nan) = nan +*/ + +func Xlogb(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1 uint64 + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + _ = v1 + *(*float64)(unsafe.Pointer(bp)) = x + v1 = *(*uint64)(unsafe.Pointer(bp)) + goto _2 +_2: + if !(BoolInt32(v1&(-Uint64FromUint64(1)>>Int32FromInt32(1)) < Uint64FromUint64(0x7ff)< %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1 uint32 + var _ /* __u at bp+0 */ struct { + F__i [0]uint32 + F__f float32 + } + _ = v1 + *(*float32)(unsafe.Pointer(bp)) = x + v1 = *(*uint32)(unsafe.Pointer(bp)) + goto _2 +_2: + if !(BoolInt32(v1&Uint32FromInt32(0x7fffffff) < Uint32FromInt32(0x7f800000)) != 0) { + return x * x + } + if x == Float32FromInt32(0) { + return float32(-Int32FromInt32(1)) / (x * x) + } + return float32(Xilogbf(tls, x)) +} + +func Xlogbl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1 uint64 + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + _ = v1 + *(*float64)(unsafe.Pointer(bp)) = x + v1 = *(*uint64)(unsafe.Pointer(bp)) + goto _2 +_2: + if !(BoolInt32(v1&(-Uint64FromUint64(1)>>Int32FromInt32(1)) < Uint64FromUint64(0x7ff)< %v", r1) }() + } + var i, k int32 + var invc, logc, r, r2, y0, y1, z Tdouble_t + var ix, iz, tmp Tuint32_t + var y, v1, v2 float32 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = i, invc, ix, iz, k, logc, r, r2, tmp, y, y0, y1, z, v1, v2 + ix = *(*Tuint32_t)(unsafe.Pointer(&x1)) + /* Fix sign of zero with downward rounding when x==1. */ + if Bool(int32(WANT_ROUNDING) != 0) && ix == uint32(0x3f800000) { + return Float32FromInt32(0) + } + if ix-uint32(0x00800000) >= uint32(Int32FromInt32(0x7f800000)-Int32FromInt32(0x00800000)) { + /* x < 0x1p-126 or inf or nan. */ + if ix*uint32(2) == uint32(0) { + return X__math_divzerof(tls, uint32(1)) + } + if ix == uint32(0x7f800000) { /* log(inf) == inf. */ + return x1 + } + if ix&uint32(0x80000000) != 0 || ix*uint32(2) >= uint32(0xff000000) { + return X__math_invalidf(tls, x1) + } + /* x is subnormal, normalize it. */ + v1 = x1 * Float32FromFloat32(8.388608e+06) + ix = *(*Tuint32_t)(unsafe.Pointer(&v1)) + ix -= uint32(Int32FromInt32(23) << Int32FromInt32(23)) + } + /* x = 2^k z; where z is in range [OFF,2*OFF] and exact. + The range is split into N subintervals. + The ith subinterval contains z and c is near its center. */ + tmp = ix - uint32(OFF1) + i = int32(tmp >> (Int32FromInt32(23) - Int32FromInt32(LOGF_TABLE_BITS)) % uint32(Int32FromInt32(1)<> int32(23) /* arithmetic shift */ + iz = ix - tmp&uint32(0xff800000) + invc = (*(*struct { + Finvc float64 + Flogc float64 + })(unsafe.Pointer(uintptr(unsafe.Pointer(&X__logf_data)) + uintptr(i)*16))).Finvc + logc = (*(*struct { + Finvc float64 + Flogc float64 + })(unsafe.Pointer(uintptr(unsafe.Pointer(&X__logf_data)) + uintptr(i)*16))).Flogc + z = float64(*(*float32)(unsafe.Pointer(&iz))) + /* log(x) = log1p(z/c-1) + log(c) + k*Ln2 */ + r = z*invc - Float64FromInt32(1) + y0 = logc + float64(k)*X__logf_data.Fln2 + /* Pipelined polynomial evaluation to approximate log1p(r). */ + r2 = r * r + y1 = *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__logf_data)) + 264 + 1*8))*r + *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__logf_data)) + 264 + 2*8)) + y1 = *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__logf_data)) + 264))*r2 + y1 + y1 = y1*r2 + (y0 + r) + y = float32(y1) + v2 = y + goto _3 +_3: + return v2 +} + +type Tlogf_data = struct { + Ftab [16]struct { + Finvc float64 + Flogc float64 + } + Fln2 float64 + Fpoly [3]float64 +} + +func Xlogl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xlog(tls, x) +} + +/* +If the result cannot be represented (overflow, nan), then +lrint raises the invalid exception. + +Otherwise if the input was not an integer then the inexact +exception is raised. + +C99 is a bit vague about whether inexact exception is +allowed to be raised when invalid is raised. +(F.9 explicitly allows spurious inexact exceptions, F.9.6.5 +does not make it clear if that rule applies to lrint, but +IEEE 754r 7.8 seems to forbid spurious inexact exception in +the ineger conversion functions) + +So we try to make sure that no spurious inexact exception is +raised in case of an overflow. + +If the bit size of long > precision of double, then there +cannot be inexact rounding in case the result overflows, +otherwise LONG_MAX and LONG_MIN can be represented exactly +as a double. +*/ + +func Xlrint(tls *TLS, x float64) (r int64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int64(Xrint(tls, x)) +} + +/* uses LONG_MAX > 2^24, see comments in lrint.c */ + +func Xlrintf(tls *TLS, x float32) (r int64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int64(Xrintf(tls, x)) +} + +func Xlrintl(tls *TLS, x float64) (r int64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xlrint(tls, x) +} + +func Xlround(tls *TLS, x float64) (r int64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int64(Xround(tls, x)) +} + +func Xlroundf(tls *TLS, x float32) (r int64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int64(Xroundf(tls, x)) +} + +func Xlroundl(tls *TLS, x float64) (r int64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int64(Xroundl(tls, x)) +} + +func Xmodf(tls *TLS, x float64, iptr uintptr) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v iptr=%v, (%v:)", tls, x, iptr, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e int32 + var mask Tuint64_t + var p1, p2, p3 uintptr + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _ = e, mask, p1, p2, p3 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x + e = int32(*(*Tuint64_t)(unsafe.Pointer(bp))>>Int32FromInt32(52)&Uint64FromInt32(0x7ff)) - int32(0x3ff) + /* no fractional part */ + if e >= int32(52) { + *(*float64)(unsafe.Pointer(iptr)) = x + if e == int32(0x400) && *(*Tuint64_t)(unsafe.Pointer(bp))<> Int32FromInt32(12) >> e + if *(*Tuint64_t)(unsafe.Pointer(bp))&mask == uint64(0) { + *(*float64)(unsafe.Pointer(iptr)) = x + p3 = bp + *(*Tuint64_t)(unsafe.Pointer(p3)) = *(*Tuint64_t)(unsafe.Pointer(p3)) & (Uint64FromUint64(1) << Int32FromInt32(63)) + return *(*float64)(unsafe.Pointer(bp)) + } + *(*Tuint64_t)(unsafe.Pointer(bp)) &= ^mask + *(*float64)(unsafe.Pointer(iptr)) = *(*float64)(unsafe.Pointer(bp)) + return x - *(*float64)(unsafe.Pointer(bp)) +} + +func Xmodff(tls *TLS, x float32, iptr uintptr) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v iptr=%v, (%v:)", tls, x, iptr, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e int32 + var mask Tuint32_t + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _ = e, mask + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x + e = int32(*(*Tuint32_t)(unsafe.Pointer(bp))>>Int32FromInt32(23)&Uint32FromInt32(0xff)) - int32(0x7f) + /* no fractional part */ + if e >= int32(23) { + *(*float32)(unsafe.Pointer(iptr)) = x + if e == int32(0x80) && *(*Tuint32_t)(unsafe.Pointer(bp))<> e) + if *(*Tuint32_t)(unsafe.Pointer(bp))&mask == uint32(0) { + *(*float32)(unsafe.Pointer(iptr)) = x + *(*Tuint32_t)(unsafe.Pointer(bp)) &= uint32(0x80000000) + return *(*float32)(unsafe.Pointer(bp)) + } + *(*Tuint32_t)(unsafe.Pointer(bp)) &= ^mask + *(*float32)(unsafe.Pointer(iptr)) = *(*float32)(unsafe.Pointer(bp)) + return x - *(*float32)(unsafe.Pointer(bp)) +} + +func Xmodfl(tls *TLS, x float64, iptr uintptr) (r1 float64) { + if __ccgo_strace { + trc("tls=%v x=%v iptr=%v, (%v:)", tls, x, iptr, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var r float64 + var _ /* d at bp+0 */ float64 + _ = r + r = Xmodf(tls, x, bp) + *(*float64)(unsafe.Pointer(iptr)) = *(*float64)(unsafe.Pointer(bp)) + return r +} + +func Xnan(tls *TLS, s uintptr) (r float64) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + return float64(X__builtin_nanf(tls, __ccgo_ts)) +} + +func Xnanf(tls *TLS, s uintptr) (r float32) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__builtin_nanf(tls, __ccgo_ts) +} + +func Xnanl(tls *TLS, s uintptr) (r float64) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + return float64(X__builtin_nanf(tls, __ccgo_ts)) +} + +func Xnextafter(tls *TLS, x3 float64, y3 float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x3=%v y3=%v, (%v:)", tls, x3, y3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var ax, ay Tuint64_t + var e int32 + var y float32 + var y1, y2 float64 + var v1, v3 uint64 + var v5 bool + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + var _ /* ux at bp+8 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + var _ /* uy at bp+16 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _, _, _, _, _ = ax, ay, e, y, y1, y2, v1, v3, v5 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp + 8)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp + 8)) = x3 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp + 16)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp + 16)) = y3 + *(*float64)(unsafe.Pointer(bp)) = x3 + v1 = *(*uint64)(unsafe.Pointer(bp)) + goto _2 +_2: + ; + if v5 = BoolInt32(v1&(-Uint64FromUint64(1)>>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)<>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)< ay || (*(*Tuint64_t)(unsafe.Pointer(bp + 8))^*(*Tuint64_t)(unsafe.Pointer(bp + 16)))&(Uint64FromUint64(1)<> int32(52) & uint64(0x7ff)) + /* raise overflow if ux.f is infinite and x is finite */ + if e == int32(0x7ff) { + if uint64(8) == uint64(4) { + y = float32(x3 + x3) + } else { + if uint64(8) == uint64(8) { + y1 = x3 + x3 + } else { + y2 = x3 + x3 + } + } + } + /* raise underflow if ux.f is subnormal or zero */ + if e == 0 { + if uint64(8) == uint64(4) { + y = float32(x3*x3 + *(*float64)(unsafe.Pointer(bp + 8))**(*float64)(unsafe.Pointer(bp + 8))) + } else { + if uint64(8) == uint64(8) { + y1 = x3*x3 + *(*float64)(unsafe.Pointer(bp + 8))**(*float64)(unsafe.Pointer(bp + 8)) + } else { + y2 = x3*x3 + *(*float64)(unsafe.Pointer(bp + 8))**(*float64)(unsafe.Pointer(bp + 8)) + } + } + } + return *(*float64)(unsafe.Pointer(bp + 8)) +} + +func Xnextafterf(tls *TLS, x3 float32, y3 float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x3=%v y3=%v, (%v:)", tls, x3, y3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ax, ay, e Tuint32_t + var y float32 + var y1, y2 float64 + var v1, v3 uint32 + var v5 bool + var _ /* __u at bp+0 */ struct { + F__i [0]uint32 + F__f float32 + } + var _ /* ux at bp+4 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + var _ /* uy at bp+8 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _, _, _, _, _ = ax, ay, e, y, y1, y2, v1, v3, v5 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp + 4)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp + 4)) = x3 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp + 8)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp + 8)) = y3 + *(*float32)(unsafe.Pointer(bp)) = x3 + v1 = *(*uint32)(unsafe.Pointer(bp)) + goto _2 +_2: + ; + if v5 = BoolInt32(v1&uint32(0x7fffffff) > uint32(0x7f800000)) != 0; !v5 { + *(*float32)(unsafe.Pointer(bp)) = y3 + v3 = *(*uint32)(unsafe.Pointer(bp)) + goto _4 + _4: + } + if v5 || BoolInt32(v3&uint32(0x7fffffff) > uint32(0x7f800000)) != 0 { + return x3 + y3 + } + if *(*Tuint32_t)(unsafe.Pointer(bp + 4)) == *(*Tuint32_t)(unsafe.Pointer(bp + 8)) { + return y3 + } + ax = *(*Tuint32_t)(unsafe.Pointer(bp + 4)) & uint32(0x7fffffff) + ay = *(*Tuint32_t)(unsafe.Pointer(bp + 8)) & uint32(0x7fffffff) + if ax == uint32(0) { + if ay == uint32(0) { + return y3 + } + *(*Tuint32_t)(unsafe.Pointer(bp + 4)) = *(*Tuint32_t)(unsafe.Pointer(bp + 8))&uint32(0x80000000) | uint32(1) + } else { + if ax > ay || (*(*Tuint32_t)(unsafe.Pointer(bp + 4))^*(*Tuint32_t)(unsafe.Pointer(bp + 8)))&uint32(0x80000000) != 0 { + *(*Tuint32_t)(unsafe.Pointer(bp + 4))-- + } else { + *(*Tuint32_t)(unsafe.Pointer(bp + 4))++ + } + } + e = *(*Tuint32_t)(unsafe.Pointer(bp + 4)) & uint32(0x7f800000) + /* raise overflow if ux.f is infinite and x is finite */ + if e == uint32(0x7f800000) { + if uint64(4) == uint64(4) { + y = x3 + x3 + } else { + if uint64(4) == uint64(8) { + y1 = float64(x3 + x3) + } else { + y2 = float64(x3 + x3) + } + } + } + /* raise underflow if ux.f is subnormal or zero */ + if e == uint32(0) { + if uint64(4) == uint64(4) { + y = x3*x3 + *(*float32)(unsafe.Pointer(bp + 4))**(*float32)(unsafe.Pointer(bp + 4)) + } else { + if uint64(4) == uint64(8) { + y1 = float64(x3*x3 + *(*float32)(unsafe.Pointer(bp + 4))**(*float32)(unsafe.Pointer(bp + 4))) + } else { + y2 = float64(x3*x3 + *(*float32)(unsafe.Pointer(bp + 4))**(*float32)(unsafe.Pointer(bp + 4))) + } + } + } + return *(*float32)(unsafe.Pointer(bp + 4)) +} + +func Xnextafterl(tls *TLS, x float64, y float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xnextafter(tls, x, y) +} + +func Xnexttoward(tls *TLS, x float64, y float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xnextafter(tls, x, y) +} + +func Xnexttowardf(tls *TLS, x3 float32, y3 float64) (r float32) { + if __ccgo_strace { + trc("tls=%v x3=%v y3=%v, (%v:)", tls, x3, y3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var e Tuint32_t + var y float32 + var y1, y2 float64 + var v1, v10, v8 uint32 + var v3, v6 uint64 + var v5 bool + var _ /* __u at bp+0 */ struct { + F__i [0]uint32 + F__f float32 + } + var _ /* __u at bp+8 */ struct { + F__i [0]uint64 + F__f float64 + } + var _ /* ux at bp+16 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _, _, _, _, _, _ = e, y, y1, y2, v1, v10, v3, v5, v6, v8 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp + 16)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp + 16)) = x3 + *(*float32)(unsafe.Pointer(bp)) = x3 + v1 = *(*uint32)(unsafe.Pointer(bp)) + goto _2 +_2: + ; + if v5 = BoolInt32(v1&uint32(0x7fffffff) > uint32(0x7f800000)) != 0; !v5 { + *(*float64)(unsafe.Pointer(bp + 8)) = y3 + v3 = *(*uint64)(unsafe.Pointer(bp + 8)) + goto _4 + _4: + } + if v5 || BoolInt32(v3&(-Uint64FromUint64(1)>>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)<>Int32FromInt32(63)) != 0 { + *(*Tuint32_t)(unsafe.Pointer(bp + 16)) |= uint32(0x80000000) + } + } else { + if float64(x3) < y3 { + *(*float32)(unsafe.Pointer(bp)) = x3 + v8 = *(*uint32)(unsafe.Pointer(bp)) + goto _9 + _9: + if int32(v8>>Int32FromInt32(31)) != 0 { + *(*Tuint32_t)(unsafe.Pointer(bp + 16))-- + } else { + *(*Tuint32_t)(unsafe.Pointer(bp + 16))++ + } + } else { + *(*float32)(unsafe.Pointer(bp)) = x3 + v10 = *(*uint32)(unsafe.Pointer(bp)) + goto _11 + _11: + if int32(v10>>Int32FromInt32(31)) != 0 { + *(*Tuint32_t)(unsafe.Pointer(bp + 16))++ + } else { + *(*Tuint32_t)(unsafe.Pointer(bp + 16))-- + } + } + } + e = *(*Tuint32_t)(unsafe.Pointer(bp + 16)) & uint32(0x7f800000) + /* raise overflow if ux.f is infinite and x is finite */ + if e == uint32(0x7f800000) { + if uint64(4) == uint64(4) { + y = x3 + x3 + } else { + if uint64(4) == uint64(8) { + y1 = float64(x3 + x3) + } else { + y2 = float64(x3 + x3) + } + } + } + /* raise underflow if ux.f is subnormal or zero */ + if e == uint32(0) { + if uint64(4) == uint64(4) { + y = x3*x3 + *(*float32)(unsafe.Pointer(bp + 16))**(*float32)(unsafe.Pointer(bp + 16)) + } else { + if uint64(4) == uint64(8) { + y1 = float64(x3*x3 + *(*float32)(unsafe.Pointer(bp + 16))**(*float32)(unsafe.Pointer(bp + 16))) + } else { + y2 = float64(x3*x3 + *(*float32)(unsafe.Pointer(bp + 16))**(*float32)(unsafe.Pointer(bp + 16))) + } + } + } + return *(*float32)(unsafe.Pointer(bp + 16)) +} + +func Xnexttowardl(tls *TLS, x float64, y float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xnextafterl(tls, x, y) +} + +const OFF2 = 4604531861337669632 +const POW_LOG_POLY_ORDER = 8 +const POW_LOG_TABLE_BITS = 7 +const SIGN_BIAS = 262144 + +/* +Worst-case error: 0.54 ULP (~= ulperr_exp + 1024*Ln2*relerr_log*2^53) +relerr_log: 1.3 * 2^-68 (Relative error of log, 1.5 * 2^-68 without fma) +ulperr_exp: 0.509 ULP (ULP error of exp, 0.511 ULP without fma) +*/ + +// C documentation +// +// /* Top 12 bits of a double (sign and exponent bits). */ +func _top124(tls *TLS, x float64) (r Tuint32_t) { + return uint32(*(*Tuint64_t)(unsafe.Pointer(&x)) >> int32(52)) +} + +// C documentation +// +// /* Compute y+TAIL = log(x) where the rounded result is y and TAIL has about +// additional 15 bits precision. IX is the bit representation of x, but +// normalized in the subnormal range using the sign bit for the exponent. */ +func _log_inline(tls *TLS, ix Tuint64_t, tail uintptr) (r1 Tdouble_t) { + var ar, ar2, ar3, hi, invc, kd, lo, lo1, lo2, lo3, lo4, logc, logctail, p, r, t1, t2, y, z Tdouble_t + var i, k int32 + var iz, tmp Tuint64_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ar, ar2, ar3, hi, i, invc, iz, k, kd, lo, lo1, lo2, lo3, lo4, logc, logctail, p, r, t1, t2, tmp, y, z + /* x = 2^k z; where z is in range [OFF,2*OFF) and exact. + The range is split into N subintervals. + The ith subinterval contains z and c is near its center. */ + tmp = ix - uint64(OFF2) + i = int32(tmp >> (Int32FromInt32(52) - Int32FromInt32(POW_LOG_TABLE_BITS)) % uint64(Int32FromInt32(1)<> int32(52)) /* arithmetic shift */ + iz = ix - tmp&(Uint64FromUint64(0xfff)< 0, the exponent of scale might have overflowed by <= 460. */ + sbits = sbits - Uint64FromUint64(1009)<= _top124(tls, float64(512))-_top124(tls, float64(5.551115123125783e-17)) { + if abstop-_top124(tls, float64(5.551115123125783e-17)) >= uint32(0x80000000) { + /* Avoid spurious underflow for tiny x. */ + /* Note: 0 is common input. */ + one = float64(1) + x1 + if sign_bias != 0 { + v1 = -one + } else { + v1 = one + } + return v1 + } + if abstop >= _top124(tls, float64(1024)) { + /* Note: inf and nan are already handled. */ + v2 = x1 + if *(*Tuint64_t)(unsafe.Pointer(&v2))>>int32(63) != 0 { + return X__math_uflow(tls, sign_bias) + } else { + return X__math_oflow(tls, sign_bias) + } + } + /* Large x is special cased below. */ + abstop = uint32(0) + } + /* exp(x) = 2^(k/N) * exp(r), with exp(r) in [2^(-1/2N),2^(1/2N)]. */ + /* x = ln2/N*k + r, with int k and r in [-ln2/2N, ln2/2N]. */ + z = X__exp_data.Finvln2N * x1 + /* z - kd is in [-1, 1] in non-nearest rounding modes. */ + y = z + X__exp_data.Fshift + v3 = y + goto _4 +_4: + kd = v3 + v5 = kd + ki = *(*Tuint64_t)(unsafe.Pointer(&v5)) + kd -= X__exp_data.Fshift + r = x1 + kd*X__exp_data.Fnegln2hiN + kd*X__exp_data.Fnegln2loN + /* The code assumes 2^-200 < |xtail| < 2^-8/N. */ + r += xtail + /* 2^(k/N) ~= scale * (1 + tail). */ + idx = uint64(2) * (ki % uint64(Int32FromInt32(1)< 2^-200 and scale > 2^-739, so there + is no spurious underflow here even without fma. */ + y = scale + scale*tmp + v7 = y + goto _8 +_8: + return v7 +} + +// C documentation +// +// /* Returns 0 if not int, 1 if odd int, 2 if even int. The argument is +// the bit representation of a non-zero finite floating-point value. */ +func _checkint(tls *TLS, iy Tuint64_t) (r int32) { + var e int32 + _ = e + e = int32(iy >> int32(52) & uint64(0x7ff)) + if e < int32(0x3ff) { + return 0 + } + if e > Int32FromInt32(0x3ff)+Int32FromInt32(52) { + return int32(2) + } + if iy&(uint64(1)<<(Int32FromInt32(0x3ff)+Int32FromInt32(52)-e)-uint64(1)) != 0 { + return 0 + } + if iy&(uint64(1)<<(Int32FromInt32(0x3ff)+Int32FromInt32(52)-e)) != 0 { + return int32(1) + } + return int32(2) +} + +// C documentation +// +// /* Returns 1 if input is the bit representation of 0, infinity or nan. */ +func _zeroinfnan(tls *TLS, i Tuint64_t) (r int32) { + var v1 float64 + _ = v1 + v1 = float64(X__builtin_inff(tls)) + return BoolInt32(uint64(2)*i-uint64(1) >= uint64(2)**(*Tuint64_t)(unsafe.Pointer(&v1))-uint64(1)) +} + +func Xpow(tls *TLS, x1 float64, y1 float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x1=%v y1=%v, (%v:)", tls, x1, y1, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ehi, elo, hi, x2 Tdouble_t + var ix, iy Tuint64_t + var sign_bias, topx, topy Tuint32_t + var y, v1, v10, v11, v12, v13, v14, v15, v2, v3, v5, v6, v7, v8 float64 + var yint int32 + var v4 bool + var _ /* lo at bp+0 */ Tdouble_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ehi, elo, hi, ix, iy, sign_bias, topx, topy, x2, y, yint, v1, v10, v11, v12, v13, v14, v15, v2, v3, v4, v5, v6, v7, v8 + sign_bias = uint32(0) + ix = *(*Tuint64_t)(unsafe.Pointer(&x1)) + iy = *(*Tuint64_t)(unsafe.Pointer(&y1)) + topx = _top124(tls, x1) + topy = _top124(tls, y1) + if topx-uint32(0x001) >= uint32(Int32FromInt32(0x7ff)-Int32FromInt32(0x001)) || topy&uint32(0x7ff)-uint32(0x3be) >= uint32(Int32FromInt32(0x43e)-Int32FromInt32(0x3be)) { + /* Note: if |y| > 1075 * ln2 * 2^53 ~= 0x1.749p62 then pow(x,y) = inf/0 + and if |y| < 2^-54 / 1075 ~= 0x1.e7b6p-65 then pow(x,y) = +-1. */ + /* Special cases: (x < 0x1p-126 or inf or nan) or + (|y| < 0x1p-65 or |y| >= 0x1p63 or nan). */ + if _zeroinfnan(tls, iy) != 0 { + if uint64(2)*iy == uint64(0) { + return float64(1) + } + v1 = float64(1) + if ix == *(*Tuint64_t)(unsafe.Pointer(&v1)) { + return float64(1) + } + v2 = float64(X__builtin_inff(tls)) + if v4 = uint64(2)*ix > uint64(2)**(*Tuint64_t)(unsafe.Pointer(&v2)); !v4 { + v3 = float64(X__builtin_inff(tls)) + } + if v4 || uint64(2)*iy > uint64(2)**(*Tuint64_t)(unsafe.Pointer(&v3)) { + return x1 + y1 + } + v5 = float64(1) + if uint64(2)*ix == uint64(2)**(*Tuint64_t)(unsafe.Pointer(&v5)) { + return float64(1) + } + v6 = float64(1) + if BoolInt32(uint64(2)*ix < uint64(2)**(*Tuint64_t)(unsafe.Pointer(&v6))) == BoolInt32(!(iy>>Int32FromInt32(63) != 0)) { + return float64(0) + } /* |x|<1 && y==inf or |x|>1 && y==-inf. */ + return y1 * y1 + } + if _zeroinfnan(tls, ix) != 0 { + x2 = x1 * x1 + if ix>>int32(63) != 0 && _checkint(tls, iy) == int32(1) { + x2 = -x2 + } + /* Without the barrier some versions of clang hoist the 1/x2 and + thus division by zero exception can be signaled spuriously. */ + if iy>>int32(63) != 0 { + y = Float64FromInt32(1) / x2 + v8 = y + goto _9 + _9: + v7 = v8 + } else { + v7 = x2 + } + return v7 + } + /* Here x and y are non-zero finite. */ + if ix>>int32(63) != 0 { + /* Finite x < 0. */ + yint = _checkint(tls, iy) + if yint == 0 { + return X__math_invalid(tls, x1) + } + if yint == int32(1) { + sign_bias = uint32(Int32FromInt32(0x800) << Int32FromInt32(EXP_TABLE_BITS)) + } + ix &= uint64(0x7fffffffffffffff) + topx &= uint32(0x7ff) + } + if topy&uint32(0x7ff)-uint32(0x3be) >= uint32(Int32FromInt32(0x43e)-Int32FromInt32(0x3be)) { + /* Note: sign_bias == 0 here because y is not odd. */ + v10 = float64(1) + if ix == *(*Tuint64_t)(unsafe.Pointer(&v10)) { + return float64(1) + } + if topy&uint32(0x7ff) < uint32(0x3be) { + /* |y| < 2^-65, x^y ~= 1 + y*log(x). */ + if int32(WANT_ROUNDING) != 0 { + v12 = float64(1) + if ix > *(*Tuint64_t)(unsafe.Pointer(&v12)) { + v11 = float64(1) + y1 + } else { + v11 = float64(1) - y1 + } + return v11 + } else { + return float64(1) + } + } + v14 = float64(1) + if BoolInt32(ix > *(*Tuint64_t)(unsafe.Pointer(&v14))) == BoolInt32(topy < uint32(0x800)) { + v13 = X__math_oflow(tls, uint32(0)) + } else { + v13 = X__math_uflow(tls, uint32(0)) + } + return v13 + } + if topx == uint32(0) { + /* Normalize subnormal x so exponent becomes negative. */ + v15 = x1 * float64(4.503599627370496e+15) + ix = *(*Tuint64_t)(unsafe.Pointer(&v15)) + ix &= uint64(0x7fffffffffffffff) + ix = ix - Uint64FromUint64(52)<> (Int32FromInt32(23) - Int32FromInt32(POWF_LOG2_TABLE_BITS)) % uint32(Int32FromInt32(1)<> (Int32FromInt32(23) - Int32FromInt32(POWF_SCALE_BITS)) /* arithmetic shift */ + invc = (*(*struct { + Finvc float64 + Flogc float64 + })(unsafe.Pointer(uintptr(unsafe.Pointer(&X__powf_log2_data)) + uintptr(i)*16))).Finvc + logc = (*(*struct { + Finvc float64 + Flogc float64 + })(unsafe.Pointer(uintptr(unsafe.Pointer(&X__powf_log2_data)) + uintptr(i)*16))).Flogc + z = float64(*(*float32)(unsafe.Pointer(&iz))) + /* log2(x) = log1p(z/c-1)/ln2 + log2(c) + k */ + r = z*invc - Float64FromInt32(1) + y0 = logc + float64(k) + /* Pipelined polynomial evaluation to approximate log1p(r)/ln2. */ + r2 = r * r + y = *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__powf_log2_data)) + 256))*r + *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__powf_log2_data)) + 256 + 1*8)) + p = *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__powf_log2_data)) + 256 + 2*8))*r + *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__powf_log2_data)) + 256 + 3*8)) + r4 = r2 * r2 + q = *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__powf_log2_data)) + 256 + 4*8))*r + y0 + q = p*r2 + q + y = y*r4 + q + return y +} + +// C documentation +// +// /* The output of log2 and thus the input of exp2 is either scaled by N +// (in case of fast toint intrinsics) or not. The unscaled xd must be +// in [-1021,1023], sign_bias sets the sign of the result. */ +func _exp2_inline(tls *TLS, xd Tdouble_t, sign_bias Tuint32_t) (r1 float32) { + var kd, r, r2, s, y2, z Tdouble_t + var ki, ski, t Tuint64_t + var y, v4 float32 + var y1, v1, v3 float64 + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = kd, ki, r, r2, s, ski, t, y, y1, y2, z, v1, v3, v4 + /* x = k/N + r with r in [-1/(2N), 1/(2N)] */ + y1 = xd + X__exp2f_data.Fshift_scaled + v1 = y1 + goto _2 +_2: + kd = v1 + v3 = kd + ki = *(*Tuint64_t)(unsafe.Pointer(&v3)) + kd -= X__exp2f_data.Fshift_scaled /* k/N */ + r = xd - kd + /* exp2(x) = 2^(k/N) * 2^r ~= s * (C0*r^3 + C1*r^2 + C2*r + 1) */ + t = *(*Tuint64_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__exp2f_data)) + uintptr(ki%uint64(Int32FromInt32(1)<> int32(23) & uint32(0xff)) + if e < int32(0x7f) { + return 0 + } + if e > Int32FromInt32(0x7f)+Int32FromInt32(23) { + return int32(2) + } + if iy&uint32(Int32FromInt32(1)<<(Int32FromInt32(0x7f)+Int32FromInt32(23)-e)-Int32FromInt32(1)) != 0 { + return 0 + } + if iy&uint32(Int32FromInt32(1)<<(Int32FromInt32(0x7f)+Int32FromInt32(23)-e)) != 0 { + return int32(1) + } + return int32(2) +} + +func _zeroinfnan1(tls *TLS, ix Tuint32_t) (r int32) { + return BoolInt32(uint32(2)*ix-uint32(1) >= Uint32FromUint32(2)*Uint32FromInt32(0x7f800000)-Uint32FromInt32(1)) +} + +func Xpowf(tls *TLS, x1 float32, y1 float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x1=%v y1=%v, (%v:)", tls, x1, y1, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ix, iy, sign_bias Tuint32_t + var logx, ylogx Tdouble_t + var x2 Tfloat_t + var y, v1, v2, v4 float32 + var yint int32 + var v5, v6 float64 + _, _, _, _, _, _, _, _, _, _, _, _, _ = ix, iy, logx, sign_bias, x2, y, yint, ylogx, v1, v2, v4, v5, v6 + sign_bias = uint32(0) + ix = *(*Tuint32_t)(unsafe.Pointer(&x1)) + iy = *(*Tuint32_t)(unsafe.Pointer(&y1)) + if ix-uint32(0x00800000) >= uint32(Int32FromInt32(0x7f800000)-Int32FromInt32(0x00800000)) || _zeroinfnan1(tls, iy) != 0 { + /* Either (x < 0x1p-126 or inf or nan) or (y is 0 or inf or nan). */ + if _zeroinfnan1(tls, iy) != 0 { + if uint32(2)*iy == uint32(0) { + return Float32FromFloat32(1) + } + if ix == uint32(0x3f800000) { + return Float32FromFloat32(1) + } + if uint32(2)*ix > Uint32FromUint32(2)*Uint32FromInt32(0x7f800000) || uint32(2)*iy > Uint32FromUint32(2)*Uint32FromInt32(0x7f800000) { + return x1 + y1 + } + if uint32(2)*ix == uint32(Int32FromInt32(2)*Int32FromInt32(0x3f800000)) { + return Float32FromFloat32(1) + } + if BoolInt32(uint32(2)*ix < uint32(Int32FromInt32(2)*Int32FromInt32(0x3f800000))) == BoolInt32(!(iy&Uint32FromUint32(0x80000000) != 0)) { + return Float32FromFloat32(0) + } /* |x|<1 && y==inf or |x|>1 && y==-inf. */ + return y1 * y1 + } + if _zeroinfnan1(tls, ix) != 0 { + x2 = x1 * x1 + if ix&uint32(0x80000000) != 0 && _checkint1(tls, iy) == int32(1) { + x2 = -x2 + } + /* Without the barrier some versions of clang hoist the 1/x2 and + thus division by zero exception can be signaled spuriously. */ + if iy&uint32(0x80000000) != 0 { + y = Float32FromInt32(1) / x2 + v2 = y + goto _3 + _3: + v1 = v2 + } else { + v1 = x2 + } + return v1 + } + /* x and y are non-zero finite. */ + if ix&uint32(0x80000000) != 0 { + /* Finite x < 0. */ + yint = _checkint1(tls, iy) + if yint == 0 { + return X__math_invalidf(tls, x1) + } + if yint == int32(1) { + sign_bias = uint32(Int32FromInt32(1) << (Int32FromInt32(EXP2F_TABLE_BITS) + Int32FromInt32(11))) + } + ix &= uint32(0x7fffffff) + } + if ix < uint32(0x00800000) { + /* Normalize subnormal x so exponent becomes negative. */ + v4 = x1 * Float32FromFloat32(8.388608e+06) + ix = *(*Tuint32_t)(unsafe.Pointer(&v4)) + ix &= uint32(0x7fffffff) + ix -= uint32(Int32FromInt32(23) << Int32FromInt32(23)) + } + } + logx = _log2_inline(tls, ix) + ylogx = float64(y1) * logx /* cannot overflow, y is single prec. */ + v5 = ylogx + v6 = float64(126) * float64(Int32FromInt32(1)<>int32(47)&uint64(0xffff) >= *(*Tuint64_t)(unsafe.Pointer(&v6))>>int32(47) { + /* |y*log(x)| >= 126. */ + if ylogx > float64(127.99999995700433)*float64(Int32FromInt32(1)< %v", r) }() + } + return Xpow(tls, x, y) +} + +func Xremainder(tls *TLS, x float64, y float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* q at bp+0 */ int32 + return Xremquo(tls, x, y, bp) +} + +func Xdrem(tls *TLS, x float64, y float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xremainder(tls, x, y) +} + +func Xremainderf(tls *TLS, x float32, y float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* q at bp+0 */ int32 + return Xremquof(tls, x, y, bp) +} + +func Xdremf(tls *TLS, x float32, y float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xremainderf(tls, x, y) +} + +func Xremainderl(tls *TLS, x float64, y float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xremainder(tls, x, y) +} + +func Xremquo(tls *TLS, x float64, y float64, quo uintptr) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v quo=%v, (%v:)", tls, x, y, quo, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var ex, ey, sx, sy, v10 int32 + var i, uxi Tuint64_t + var q Tuint32_t + var v1 uint64 + var v11 float64 + var v3 bool + var p6, p7 uintptr + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + var _ /* ux at bp+8 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + var _ /* uy at bp+16 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _, _, _, _, _, _, _, _, _ = ex, ey, i, q, sx, sy, uxi, v1, v10, v11, v3, p6, p7 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp + 8)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp + 8)) = x + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp + 16)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp + 16)) = y + ex = int32(*(*Tuint64_t)(unsafe.Pointer(bp + 8)) >> int32(52) & uint64(0x7ff)) + ey = int32(*(*Tuint64_t)(unsafe.Pointer(bp + 16)) >> int32(52) & uint64(0x7ff)) + sx = int32(*(*Tuint64_t)(unsafe.Pointer(bp + 8)) >> int32(63)) + sy = int32(*(*Tuint64_t)(unsafe.Pointer(bp + 16)) >> int32(63)) + uxi = *(*Tuint64_t)(unsafe.Pointer(bp + 8)) + *(*int32)(unsafe.Pointer(quo)) = 0 + if v3 = *(*Tuint64_t)(unsafe.Pointer(bp + 16))<>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)<>int32(63) == uint64(0)) { + break + } + goto _4 + _4: + ; + ex-- + i <<= uint64(1) + } + uxi <<= uint64(-ex + int32(1)) + } else { + uxi = uxi & (-Uint64FromUint64(1) >> Int32FromInt32(12)) + uxi = uxi | Uint64FromUint64(1)<>int32(63) == uint64(0)) { + break + } + goto _5 + _5: + ; + ey-- + i <<= uint64(1) + } + *(*Tuint64_t)(unsafe.Pointer(bp + 16)) <<= uint64(-ey + int32(1)) + } else { + p6 = bp + 16 + *(*Tuint64_t)(unsafe.Pointer(p6)) = *(*Tuint64_t)(unsafe.Pointer(p6)) & (-Uint64FromUint64(1) >> Int32FromInt32(12)) + p7 = bp + 16 + *(*Tuint64_t)(unsafe.Pointer(p7)) = *(*Tuint64_t)(unsafe.Pointer(p7)) | Uint64FromUint64(1)< ey) { + break + } + i = uxi - *(*Tuint64_t)(unsafe.Pointer(bp + 16)) + if i>>int32(63) == uint64(0) { + uxi = i + q++ + } + uxi <<= uint64(1) + q <<= uint32(1) + goto _8 + _8: + ; + ex-- + } + i = uxi - *(*Tuint64_t)(unsafe.Pointer(bp + 16)) + if i>>int32(63) == uint64(0) { + uxi = i + q++ + } + if uxi == uint64(0) { + ex = -int32(60) + } else { + for { + if !(uxi>>int32(52) == uint64(0)) { + break + } + goto _9 + _9: + ; + uxi <<= uint64(1) + ex-- + } + } + goto end +end: + ; + /* scale result and decide between |x| and |x|-|y| */ + if ex > 0 { + uxi = uxi - Uint64FromUint64(1)<>= uint64(-ex + int32(1)) + } + *(*Tuint64_t)(unsafe.Pointer(bp + 8)) = uxi + x = *(*float64)(unsafe.Pointer(bp + 8)) + if sy != 0 { + y = -y + } + if ex == ey || ex+int32(1) == ey && (Float64FromInt32(2)*x > y || Float64FromInt32(2)*x == y && q%uint32(2) != 0) { + x -= y + q++ + } + q &= uint32(0x7fffffff) + if sx^sy != 0 { + v10 = -int32(q) + } else { + v10 = int32(q) + } + *(*int32)(unsafe.Pointer(quo)) = v10 + if sx != 0 { + v11 = -x + } else { + v11 = x + } + return v11 +} + +func Xremquof(tls *TLS, x float32, y float32, quo uintptr) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v quo=%v, (%v:)", tls, x, y, quo, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ex, ey, sx, sy, v8 int32 + var i, q, uxi Tuint32_t + var v1 uint32 + var v3 bool + var v9 float32 + var _ /* __u at bp+0 */ struct { + F__i [0]uint32 + F__f float32 + } + var _ /* ux at bp+4 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + var _ /* uy at bp+8 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _, _, _, _, _, _, _ = ex, ey, i, q, sx, sy, uxi, v1, v3, v8, v9 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp + 4)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp + 4)) = x + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp + 8)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp + 8)) = y + ex = int32(*(*Tuint32_t)(unsafe.Pointer(bp + 4)) >> int32(23) & uint32(0xff)) + ey = int32(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) >> int32(23) & uint32(0xff)) + sx = int32(*(*Tuint32_t)(unsafe.Pointer(bp + 4)) >> int32(31)) + sy = int32(*(*Tuint32_t)(unsafe.Pointer(bp + 8)) >> int32(31)) + uxi = *(*Tuint32_t)(unsafe.Pointer(bp + 4)) + *(*int32)(unsafe.Pointer(quo)) = 0 + if v3 = *(*Tuint32_t)(unsafe.Pointer(bp + 8))< uint32(0x7f800000)) != 0 || ex == int32(0xff) { + return x * y / (x * y) + } + if *(*Tuint32_t)(unsafe.Pointer(bp + 4))<>int32(31) == uint32(0)) { + break + } + goto _4 + _4: + ; + ex-- + i <<= uint32(1) + } + uxi <<= uint32(-ex + int32(1)) + } else { + uxi &= -Uint32FromUint32(1) >> Int32FromInt32(9) + uxi |= Uint32FromUint32(1) << Int32FromInt32(23) + } + if !(ey != 0) { + i = *(*Tuint32_t)(unsafe.Pointer(bp + 8)) << int32(9) + for { + if !(i>>int32(31) == uint32(0)) { + break + } + goto _5 + _5: + ; + ey-- + i <<= uint32(1) + } + *(*Tuint32_t)(unsafe.Pointer(bp + 8)) <<= uint32(-ey + int32(1)) + } else { + *(*Tuint32_t)(unsafe.Pointer(bp + 8)) &= -Uint32FromUint32(1) >> Int32FromInt32(9) + *(*Tuint32_t)(unsafe.Pointer(bp + 8)) |= Uint32FromUint32(1) << Int32FromInt32(23) + } + q = uint32(0) + if ex < ey { + if ex+int32(1) == ey { + goto end + } + return x + } + /* x mod y */ + for { + if !(ex > ey) { + break + } + i = uxi - *(*Tuint32_t)(unsafe.Pointer(bp + 8)) + if i>>int32(31) == uint32(0) { + uxi = i + q++ + } + uxi <<= uint32(1) + q <<= uint32(1) + goto _6 + _6: + ; + ex-- + } + i = uxi - *(*Tuint32_t)(unsafe.Pointer(bp + 8)) + if i>>int32(31) == uint32(0) { + uxi = i + q++ + } + if uxi == uint32(0) { + ex = -int32(30) + } else { + for { + if !(uxi>>int32(23) == uint32(0)) { + break + } + goto _7 + _7: + ; + uxi <<= uint32(1) + ex-- + } + } + goto end +end: + ; + /* scale result and decide between |x| and |x|-|y| */ + if ex > 0 { + uxi -= Uint32FromUint32(1) << Int32FromInt32(23) + uxi |= uint32(ex) << int32(23) + } else { + uxi >>= uint32(-ex + int32(1)) + } + *(*Tuint32_t)(unsafe.Pointer(bp + 4)) = uxi + x = *(*float32)(unsafe.Pointer(bp + 4)) + if sy != 0 { + y = -y + } + if ex == ey || ex+int32(1) == ey && (Float32FromInt32(2)*x > y || Float32FromInt32(2)*x == y && q%uint32(2) != 0) { + x -= y + q++ + } + q &= uint32(0x7fffffff) + if sx^sy != 0 { + v8 = -int32(q) + } else { + v8 = int32(q) + } + *(*int32)(unsafe.Pointer(quo)) = v8 + if sx != 0 { + v9 = -x + } else { + v9 = x + } + return v9 +} + +func Xremquol(tls *TLS, x float64, y float64, quo uintptr) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v y=%v quo=%v, (%v:)", tls, x, y, quo, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xremquo(tls, x, y, quo) +} + +const DBL_EPSILON9 = 2.220446049250313e-16 + +var _toint4 = Float64FromInt32(1) / Float64FromFloat64(2.220446049250313e-16) + +func Xrint(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e, s int32 + var y Tdouble_t + var v1 float64 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _ = e, s, y, v1 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x + e = int32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(52) & uint64(0x7ff)) + s = int32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(63)) + if e >= Int32FromInt32(0x3ff)+Int32FromInt32(52) { + return x + } + if s != 0 { + y = x - _toint4 + _toint4 + } else { + y = x + _toint4 - _toint4 + } + if y == Float64FromInt32(0) { + if s != 0 { + v1 = -Float64FromFloat64(0) + } else { + v1 = Float64FromInt32(0) + } + return v1 + } + return y +} + +const DBL_EPSILON10 = 0 +const FLT_EPSILON1 = 1.1920928955078125e-07 + +var _toint5 = Float32FromInt32(1) / Float32FromFloat32(1.1920928955078125e-07) + +func Xrintf(tls *TLS, x float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e, s int32 + var y Tfloat_t + var v1 float32 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _ = e, s, y, v1 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x + e = int32(*(*Tuint32_t)(unsafe.Pointer(bp)) >> int32(23) & uint32(0xff)) + s = int32(*(*Tuint32_t)(unsafe.Pointer(bp)) >> int32(31)) + if e >= Int32FromInt32(0x7f)+Int32FromInt32(23) { + return x + } + if s != 0 { + y = x - _toint5 + _toint5 + } else { + y = x + _toint5 - _toint5 + } + if y == Float32FromInt32(0) { + if s != 0 { + v1 = -Float32FromFloat32(0) + } else { + v1 = Float32FromFloat32(0) + } + return v1 + } + return y +} + +const FLT_EPSILON2 = 0 + +func Xrintl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xrint(tls, x) +} + +const DBL_EPSILON11 = 2.220446049250313e-16 + +var _toint6 = Float64FromInt32(1) / Float64FromFloat64(2.220446049250313e-16) + +func Xround(tls *TLS, x3 float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e int32 + var y float32 + var y1, y2 float64 + var y3 Tdouble_t + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _ = e, y, y1, y2, y3 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x3 + e = int32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(52) & uint64(0x7ff)) + if e >= Int32FromInt32(0x3ff)+Int32FromInt32(52) { + return x3 + } + if *(*Tuint64_t)(unsafe.Pointer(bp))>>int32(63) != 0 { + x3 = -x3 + } + if e < Int32FromInt32(0x3ff)-Int32FromInt32(1) { + /* raise inexact if x!=0 */ + if uint64(8) == uint64(4) { + y = float32(x3 + _toint6) + } else { + if uint64(8) == uint64(8) { + y1 = x3 + _toint6 + } else { + y2 = x3 + _toint6 + } + } + return Float64FromInt32(0) * *(*float64)(unsafe.Pointer(bp)) + } + y3 = x3 + _toint6 - _toint6 - x3 + if y3 > float64(0.5) { + y3 = y3 + x3 - Float64FromInt32(1) + } else { + if y3 <= -Float64FromFloat64(0.5) { + y3 = y3 + x3 + Float64FromInt32(1) + } else { + y3 = y3 + x3 + } + } + if *(*Tuint64_t)(unsafe.Pointer(bp))>>int32(63) != 0 { + y3 = -y3 + } + return y3 +} + +const DBL_EPSILON12 = 0 +const FLT_EPSILON3 = 1.1920928955078125e-07 + +var _toint7 = Float32FromInt32(1) / Float32FromFloat32(1.1920928955078125e-07) + +func Xroundf(tls *TLS, x3 float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e int32 + var y float32 + var y1, y2 float64 + var y3 Tfloat_t + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _ = e, y, y1, y2, y3 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x3 + e = int32(*(*Tuint32_t)(unsafe.Pointer(bp)) >> int32(23) & uint32(0xff)) + if e >= Int32FromInt32(0x7f)+Int32FromInt32(23) { + return x3 + } + if *(*Tuint32_t)(unsafe.Pointer(bp))>>int32(31) != 0 { + x3 = -x3 + } + if e < Int32FromInt32(0x7f)-Int32FromInt32(1) { + if uint64(4) == uint64(4) { + y = x3 + _toint7 + } else { + if uint64(4) == uint64(8) { + y1 = float64(x3 + _toint7) + } else { + y2 = float64(x3 + _toint7) + } + } + return Float32FromInt32(0) * *(*float32)(unsafe.Pointer(bp)) + } + y3 = x3 + _toint7 - _toint7 - x3 + if y3 > Float32FromFloat32(0.5) { + y3 = y3 + x3 - Float32FromInt32(1) + } else { + if y3 <= -Float32FromFloat32(0.5) { + y3 = y3 + x3 + Float32FromInt32(1) + } else { + y3 = y3 + x3 + } + } + if *(*Tuint32_t)(unsafe.Pointer(bp))>>int32(31) != 0 { + y3 = -y3 + } + return y3 +} + +const FLT_EPSILON4 = 0 + +func Xroundl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xround(tls, x) +} + +func Xscalb(tls *TLS, x float64, fn float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v fn=%v, (%v:)", tls, x, fn, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1, v3, v6 uint64 + var v5 bool + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + _, _, _, _ = v1, v3, v5, v6 + *(*float64)(unsafe.Pointer(bp)) = x + v1 = *(*uint64)(unsafe.Pointer(bp)) + goto _2 +_2: + ; + if v5 = BoolInt32(v1&(-Uint64FromUint64(1)>>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)<>Int32FromInt32(1)) > Uint64FromUint64(0x7ff)<>Int32FromInt32(1)) < Uint64FromUint64(0x7ff)< float64(0) { + return x * fn + } else { + return x / -fn + } + } + if Xrint(tls, fn) != fn { + return (fn - fn) / (fn - fn) + } + if fn > float64(65000) { + return Xscalbn(tls, x, int32(65000)) + } + if -fn > float64(65000) { + return Xscalbn(tls, x, -int32(65000)) + } + return Xscalbn(tls, x, int32(fn)) +} + +func Xscalbf(tls *TLS, x float32, fn float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v fn=%v, (%v:)", tls, x, fn, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1, v3, v6 uint32 + var v5 bool + var _ /* __u at bp+0 */ struct { + F__i [0]uint32 + F__f float32 + } + _, _, _, _ = v1, v3, v5, v6 + *(*float32)(unsafe.Pointer(bp)) = x + v1 = *(*uint32)(unsafe.Pointer(bp)) + goto _2 +_2: + ; + if v5 = BoolInt32(v1&uint32(0x7fffffff) > uint32(0x7f800000)) != 0; !v5 { + *(*float32)(unsafe.Pointer(bp)) = fn + v3 = *(*uint32)(unsafe.Pointer(bp)) + goto _4 + _4: + } + if v5 || BoolInt32(v3&uint32(0x7fffffff) > uint32(0x7f800000)) != 0 { + return x * fn + } + *(*float32)(unsafe.Pointer(bp)) = fn + v6 = *(*uint32)(unsafe.Pointer(bp)) + goto _7 +_7: + if !(BoolInt32(v6&Uint32FromInt32(0x7fffffff) < Uint32FromInt32(0x7f800000)) != 0) { + if fn > Float32FromFloat32(0) { + return x * fn + } else { + return x / -fn + } + } + if Xrintf(tls, fn) != fn { + return (fn - fn) / (fn - fn) + } + if fn > Float32FromFloat32(65000) { + return Xscalbnf(tls, x, int32(65000)) + } + if -fn > Float32FromFloat32(65000) { + return Xscalbnf(tls, x, -int32(65000)) + } + return Xscalbnf(tls, x, int32(fn)) +} + +func Xscalbln(tls *TLS, x float64, n int64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v n=%v, (%v:)", tls, x, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + if n > int64(INT_MAX) { + n = int64(INT_MAX) + } else { + if n < int64(-Int32FromInt32(1)-Int32FromInt32(0x7fffffff)) { + n = int64(-Int32FromInt32(1) - Int32FromInt32(0x7fffffff)) + } + } + return Xscalbn(tls, x, int32(n)) +} + +func Xscalblnf(tls *TLS, x float32, n int64) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v n=%v, (%v:)", tls, x, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + if n > int64(INT_MAX) { + n = int64(INT_MAX) + } else { + if n < int64(-Int32FromInt32(1)-Int32FromInt32(0x7fffffff)) { + n = int64(-Int32FromInt32(1) - Int32FromInt32(0x7fffffff)) + } + } + return Xscalbnf(tls, x, int32(n)) +} + +func Xscalblnl(tls *TLS, x float64, n int64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v n=%v, (%v:)", tls, x, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xscalbln(tls, x, n) +} + +func Xscalbn(tls *TLS, x float64, n int32) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v n=%v, (%v:)", tls, x, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var y Tdouble_t + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _ = y + y = x + if n > int32(1023) { + y *= float64(8.98846567431158e+307) + n -= int32(1023) + if n > int32(1023) { + y *= float64(8.98846567431158e+307) + n -= int32(1023) + if n > int32(1023) { + n = int32(1023) + } + } + } else { + if n < -int32(1022) { + /* make sure final n < -53 to avoid double + rounding in the subnormal range */ + y *= Float64FromFloat64(2.2250738585072014e-308) * Float64FromFloat64(9.007199254740992e+15) + n += Int32FromInt32(1022) - Int32FromInt32(53) + if n < -int32(1022) { + y *= Float64FromFloat64(2.2250738585072014e-308) * Float64FromFloat64(9.007199254740992e+15) + n += Int32FromInt32(1022) - Int32FromInt32(53) + if n < -int32(1022) { + n = -int32(1022) + } + } + } + } + *(*Tuint64_t)(unsafe.Pointer(bp)) = uint64(Int32FromInt32(0x3ff)+n) << int32(52) + x = y * *(*float64)(unsafe.Pointer(bp)) + return x +} + +func Xscalbnf(tls *TLS, x float32, n int32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v n=%v, (%v:)", tls, x, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var y Tfloat_t + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _ = y + y = x + if n > int32(127) { + y *= Float32FromFloat32(1.7014118346046923e+38) + n -= int32(127) + if n > int32(127) { + y *= Float32FromFloat32(1.7014118346046923e+38) + n -= int32(127) + if n > int32(127) { + n = int32(127) + } + } + } else { + if n < -int32(126) { + y *= Float32FromFloat32(1.1754943508222875e-38) * Float32FromFloat32(1.6777216e+07) + n += Int32FromInt32(126) - Int32FromInt32(24) + if n < -int32(126) { + y *= Float32FromFloat32(1.1754943508222875e-38) * Float32FromFloat32(1.6777216e+07) + n += Int32FromInt32(126) - Int32FromInt32(24) + if n < -int32(126) { + n = -int32(126) + } + } + } + } + *(*Tuint32_t)(unsafe.Pointer(bp)) = uint32(Int32FromInt32(0x7f)+n) << int32(23) + x = y * *(*float32)(unsafe.Pointer(bp)) + return x +} + +func Xscalbnl(tls *TLS, x float64, n int32) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v n=%v, (%v:)", tls, x, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xscalbn(tls, x, n) +} + +func Xsignificand(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xscalbn(tls, x, -Xilogb(tls, x)) +} + +func Xsignificandf(tls *TLS, x float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xscalbnf(tls, x, -Xilogbf(tls, x)) +} + +func Xsin(tls *TLS, x3 float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ix Tuint32_t + var n uint32 + var y float32 + var y1, y2, v1, v2, v3 float64 + var _ /* y at bp+0 */ [2]float64 + _, _, _, _, _, _, _, _ = ix, n, y, y1, y2, v1, v2, v3 + /* High word of x. */ + ix = uint32(*(*Tuint64_t)(unsafe.Pointer(&x3)) >> int32(32)) + ix &= uint32(0x7fffffff) + /* |x| ~< pi/4 */ + if ix <= uint32(0x3fe921fb) { + if ix < uint32(0x3e500000) { /* |x| < 2**-26 */ + /* raise inexact if x != 0 and underflow if subnormal*/ + if uint64(8) == uint64(4) { + if ix < uint32(0x00100000) { + v1 = x3 / Float64FromFloat32(1.329227995784916e+36) + } else { + v1 = x3 + Float64FromFloat32(1.329227995784916e+36) + } + y = float32(v1) + } else { + if uint64(8) == uint64(8) { + if ix < uint32(0x00100000) { + v2 = x3 / Float64FromFloat32(1.329227995784916e+36) + } else { + v2 = x3 + Float64FromFloat32(1.329227995784916e+36) + } + y1 = v2 + } else { + if ix < uint32(0x00100000) { + v3 = x3 / Float64FromFloat32(1.329227995784916e+36) + } else { + v3 = x3 + Float64FromFloat32(1.329227995784916e+36) + } + y2 = v3 + } + } + return x3 + } + return X__sin(tls, x3, float64(0), 0) + } + /* sin(Inf or NaN) is NaN */ + if ix >= uint32(0x7ff00000) { + return x3 - x3 + } + /* argument reduction needed */ + n = uint32(X__rem_pio2(tls, x3, bp)) + switch n & Uint32FromInt32(3) { + case uint32(0): + return X__sin(tls, (*(*[2]float64)(unsafe.Pointer(bp)))[0], (*(*[2]float64)(unsafe.Pointer(bp)))[int32(1)], int32(1)) + case uint32(1): + return X__cos(tls, (*(*[2]float64)(unsafe.Pointer(bp)))[0], (*(*[2]float64)(unsafe.Pointer(bp)))[int32(1)]) + case uint32(2): + return -X__sin(tls, (*(*[2]float64)(unsafe.Pointer(bp)))[0], (*(*[2]float64)(unsafe.Pointer(bp)))[int32(1)], int32(1)) + default: + return -X__cos(tls, (*(*[2]float64)(unsafe.Pointer(bp)))[0], (*(*[2]float64)(unsafe.Pointer(bp)))[int32(1)]) + } + return r +} + +func Xsincos(tls *TLS, x3 float64, sin uintptr, cos uintptr) { + if __ccgo_strace { + trc("tls=%v x3=%v sin=%v cos=%v, (%v:)", tls, x3, sin, cos, origin(2)) + } + bp := tls.Alloc(16) + defer tls.Free(16) + var c, s, y1, y2, v1, v2, v3, v4 float64 + var ix Tuint32_t + var n uint32 + var y float32 + var _ /* y at bp+0 */ [2]float64 + _, _, _, _, _, _, _, _, _, _, _ = c, ix, n, s, y, y1, y2, v1, v2, v3, v4 + ix = uint32(*(*Tuint64_t)(unsafe.Pointer(&x3)) >> int32(32)) + ix &= uint32(0x7fffffff) + /* |x| ~< pi/4 */ + if ix <= uint32(0x3fe921fb) { + /* if |x| < 2**-27 * sqrt(2) */ + if ix < uint32(0x3e46a09e) { + /* raise inexact if x!=0 and underflow if subnormal */ + if uint64(8) == uint64(4) { + if ix < uint32(0x00100000) { + v1 = x3 / Float64FromFloat32(1.329227995784916e+36) + } else { + v1 = x3 + Float64FromFloat32(1.329227995784916e+36) + } + y = float32(v1) + } else { + if uint64(8) == uint64(8) { + if ix < uint32(0x00100000) { + v2 = x3 / Float64FromFloat32(1.329227995784916e+36) + } else { + v2 = x3 + Float64FromFloat32(1.329227995784916e+36) + } + y1 = v2 + } else { + if ix < uint32(0x00100000) { + v3 = x3 / Float64FromFloat32(1.329227995784916e+36) + } else { + v3 = x3 + Float64FromFloat32(1.329227995784916e+36) + } + y2 = v3 + } + } + *(*float64)(unsafe.Pointer(sin)) = x3 + *(*float64)(unsafe.Pointer(cos)) = float64(1) + return + } + *(*float64)(unsafe.Pointer(sin)) = X__sin(tls, x3, float64(0), 0) + *(*float64)(unsafe.Pointer(cos)) = X__cos(tls, x3, float64(0)) + return + } + /* sincos(Inf or NaN) is NaN */ + if ix >= uint32(0x7ff00000) { + v4 = x3 - x3 + *(*float64)(unsafe.Pointer(cos)) = v4 + *(*float64)(unsafe.Pointer(sin)) = v4 + return + } + /* argument reduction needed */ + n = uint32(X__rem_pio2(tls, x3, bp)) + s = X__sin(tls, (*(*[2]float64)(unsafe.Pointer(bp)))[0], (*(*[2]float64)(unsafe.Pointer(bp)))[int32(1)], int32(1)) + c = X__cos(tls, (*(*[2]float64)(unsafe.Pointer(bp)))[0], (*(*[2]float64)(unsafe.Pointer(bp)))[int32(1)]) + switch n & Uint32FromInt32(3) { + case uint32(0): + *(*float64)(unsafe.Pointer(sin)) = s + *(*float64)(unsafe.Pointer(cos)) = c + case uint32(1): + *(*float64)(unsafe.Pointer(sin)) = c + *(*float64)(unsafe.Pointer(cos)) = -s + case uint32(2): + *(*float64)(unsafe.Pointer(sin)) = -s + *(*float64)(unsafe.Pointer(cos)) = -c + case uint32(3): + fallthrough + default: + *(*float64)(unsafe.Pointer(sin)) = -c + *(*float64)(unsafe.Pointer(cos)) = s + break + } +} + +const M_PI_25 = 1.5707963267948966 + +// C documentation +// +// /* Small multiples of pi/2 rounded to double precision. */ + +var _s1pio2 = Float64FromInt32(1) * Float64FromFloat64(1.5707963267948966) /* 0x3FF921FB, 0x54442D18 */ +var _s2pio2 = Float64FromInt32(2) * Float64FromFloat64(1.5707963267948966) /* 0x400921FB, 0x54442D18 */ +var _s3pio2 = Float64FromInt32(3) * Float64FromFloat64(1.5707963267948966) /* 0x4012D97C, 0x7F3321D2 */ +var _s4pio2 = Float64FromInt32(4) * Float64FromFloat64(1.5707963267948966) /* 0x401921FB, 0x54442D18 */ + +func Xsincosf(tls *TLS, x3 float32, sin uintptr, cos uintptr) { + if __ccgo_strace { + trc("tls=%v x3=%v sin=%v cos=%v, (%v:)", tls, x3, sin, cos, origin(2)) + } + bp := tls.Alloc(16) + defer tls.Free(16) + var c, s Tfloat_t + var ix Tuint32_t + var n, sign uint32 + var y, v1, v2, v3, v8 float32 + var y1, y2, v4, v5, v6, v7 float64 + var _ /* y at bp+0 */ float64 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, ix, n, s, sign, y, y1, y2, v1, v2, v3, v4, v5, v6, v7, v8 + ix = *(*Tuint32_t)(unsafe.Pointer(&x3)) + sign = ix >> int32(31) + ix &= uint32(0x7fffffff) + /* |x| ~<= pi/4 */ + if ix <= uint32(0x3f490fda) { + /* |x| < 2**-12 */ + if ix < uint32(0x39800000) { + /* raise inexact if x!=0 and underflow if subnormal */ + if uint64(4) == uint64(4) { + if ix < uint32(0x00100000) { + v1 = x3 / Float32FromFloat32(1.329227995784916e+36) + } else { + v1 = x3 + Float32FromFloat32(1.329227995784916e+36) + } + y = v1 + } else { + if uint64(4) == uint64(8) { + if ix < uint32(0x00100000) { + v2 = x3 / Float32FromFloat32(1.329227995784916e+36) + } else { + v2 = x3 + Float32FromFloat32(1.329227995784916e+36) + } + y1 = float64(v2) + } else { + if ix < uint32(0x00100000) { + v3 = x3 / Float32FromFloat32(1.329227995784916e+36) + } else { + v3 = x3 + Float32FromFloat32(1.329227995784916e+36) + } + y2 = float64(v3) + } + } + *(*float32)(unsafe.Pointer(sin)) = x3 + *(*float32)(unsafe.Pointer(cos)) = Float32FromFloat32(1) + return + } + *(*float32)(unsafe.Pointer(sin)) = X__sindf(tls, float64(x3)) + *(*float32)(unsafe.Pointer(cos)) = X__cosdf(tls, float64(x3)) + return + } + /* |x| ~<= 5*pi/4 */ + if ix <= uint32(0x407b53d1) { + if ix <= uint32(0x4016cbe3) { /* |x| ~<= 3pi/4 */ + if sign != 0 { + *(*float32)(unsafe.Pointer(sin)) = -X__cosdf(tls, float64(x3)+_s1pio2) + *(*float32)(unsafe.Pointer(cos)) = X__sindf(tls, float64(x3)+_s1pio2) + } else { + *(*float32)(unsafe.Pointer(sin)) = X__cosdf(tls, _s1pio2-float64(x3)) + *(*float32)(unsafe.Pointer(cos)) = X__sindf(tls, _s1pio2-float64(x3)) + } + return + } + /* -sin(x+c) is not correct if x+c could be 0: -0 vs +0 */ + if sign != 0 { + v4 = float64(x3) + _s2pio2 + } else { + v4 = float64(x3) - _s2pio2 + } + *(*float32)(unsafe.Pointer(sin)) = -X__sindf(tls, v4) + if sign != 0 { + v5 = float64(x3) + _s2pio2 + } else { + v5 = float64(x3) - _s2pio2 + } + *(*float32)(unsafe.Pointer(cos)) = -X__cosdf(tls, v5) + return + } + /* |x| ~<= 9*pi/4 */ + if ix <= uint32(0x40e231d5) { + if ix <= uint32(0x40afeddf) { /* |x| ~<= 7*pi/4 */ + if sign != 0 { + *(*float32)(unsafe.Pointer(sin)) = X__cosdf(tls, float64(x3)+_s3pio2) + *(*float32)(unsafe.Pointer(cos)) = -X__sindf(tls, float64(x3)+_s3pio2) + } else { + *(*float32)(unsafe.Pointer(sin)) = -X__cosdf(tls, float64(x3)-_s3pio2) + *(*float32)(unsafe.Pointer(cos)) = X__sindf(tls, float64(x3)-_s3pio2) + } + return + } + if sign != 0 { + v6 = float64(x3) + _s4pio2 + } else { + v6 = float64(x3) - _s4pio2 + } + *(*float32)(unsafe.Pointer(sin)) = X__sindf(tls, v6) + if sign != 0 { + v7 = float64(x3) + _s4pio2 + } else { + v7 = float64(x3) - _s4pio2 + } + *(*float32)(unsafe.Pointer(cos)) = X__cosdf(tls, v7) + return + } + /* sin(Inf or NaN) is NaN */ + if ix >= uint32(0x7f800000) { + v8 = x3 - x3 + *(*float32)(unsafe.Pointer(cos)) = v8 + *(*float32)(unsafe.Pointer(sin)) = v8 + return + } + /* general argument reduction needed */ + n = uint32(X__rem_pio2f(tls, x3, bp)) + s = X__sindf(tls, *(*float64)(unsafe.Pointer(bp))) + c = X__cosdf(tls, *(*float64)(unsafe.Pointer(bp))) + switch n & Uint32FromInt32(3) { + case uint32(0): + *(*float32)(unsafe.Pointer(sin)) = s + *(*float32)(unsafe.Pointer(cos)) = c + case uint32(1): + *(*float32)(unsafe.Pointer(sin)) = c + *(*float32)(unsafe.Pointer(cos)) = -s + case uint32(2): + *(*float32)(unsafe.Pointer(sin)) = -s + *(*float32)(unsafe.Pointer(cos)) = -c + case uint32(3): + fallthrough + default: + *(*float32)(unsafe.Pointer(sin)) = -c + *(*float32)(unsafe.Pointer(cos)) = s + break + } +} + +const M_PI_26 = 0 + +func Xsincosl(tls *TLS, x float64, sin uintptr, cos uintptr) { + if __ccgo_strace { + trc("tls=%v x=%v sin=%v cos=%v, (%v:)", tls, x, sin, cos, origin(2)) + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* cosd at bp+8 */ float64 + var _ /* sind at bp+0 */ float64 + Xsincos(tls, x, bp, bp+8) + *(*float64)(unsafe.Pointer(sin)) = *(*float64)(unsafe.Pointer(bp)) + *(*float64)(unsafe.Pointer(cos)) = *(*float64)(unsafe.Pointer(bp + 8)) +} + +const M_PI_27 = 1.5707963267948966 + +// C documentation +// +// /* Small multiples of pi/2 rounded to double precision. */ + +var _s1pio21 = Float64FromInt32(1) * Float64FromFloat64(1.5707963267948966) /* 0x3FF921FB, 0x54442D18 */ +var _s2pio21 = Float64FromInt32(2) * Float64FromFloat64(1.5707963267948966) /* 0x400921FB, 0x54442D18 */ +var _s3pio21 = Float64FromInt32(3) * Float64FromFloat64(1.5707963267948966) /* 0x4012D97C, 0x7F3321D2 */ +var _s4pio21 = Float64FromInt32(4) * Float64FromFloat64(1.5707963267948966) /* 0x401921FB, 0x54442D18 */ + +func Xsinf(tls *TLS, x3 float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ix Tuint32_t + var n, sign int32 + var y, v1, v2, v3 float32 + var y1, y2, v4, v5 float64 + var _ /* y at bp+0 */ float64 + _, _, _, _, _, _, _, _, _, _, _ = ix, n, sign, y, y1, y2, v1, v2, v3, v4, v5 + ix = *(*Tuint32_t)(unsafe.Pointer(&x3)) + sign = int32(ix >> int32(31)) + ix &= uint32(0x7fffffff) + if ix <= uint32(0x3f490fda) { /* |x| ~<= pi/4 */ + if ix < uint32(0x39800000) { /* |x| < 2**-12 */ + /* raise inexact if x!=0 and underflow if subnormal */ + if uint64(4) == uint64(4) { + if ix < uint32(0x00800000) { + v1 = x3 / Float32FromFloat32(1.329227995784916e+36) + } else { + v1 = x3 + Float32FromFloat32(1.329227995784916e+36) + } + y = v1 + } else { + if uint64(4) == uint64(8) { + if ix < uint32(0x00800000) { + v2 = x3 / Float32FromFloat32(1.329227995784916e+36) + } else { + v2 = x3 + Float32FromFloat32(1.329227995784916e+36) + } + y1 = float64(v2) + } else { + if ix < uint32(0x00800000) { + v3 = x3 / Float32FromFloat32(1.329227995784916e+36) + } else { + v3 = x3 + Float32FromFloat32(1.329227995784916e+36) + } + y2 = float64(v3) + } + } + return x3 + } + return X__sindf(tls, float64(x3)) + } + if ix <= uint32(0x407b53d1) { /* |x| ~<= 5*pi/4 */ + if ix <= uint32(0x4016cbe3) { /* |x| ~<= 3pi/4 */ + if sign != 0 { + return -X__cosdf(tls, float64(x3)+_s1pio21) + } else { + return X__cosdf(tls, float64(x3)-_s1pio21) + } + } + if sign != 0 { + v4 = -(float64(x3) + _s2pio21) + } else { + v4 = -(float64(x3) - _s2pio21) + } + return X__sindf(tls, v4) + } + if ix <= uint32(0x40e231d5) { /* |x| ~<= 9*pi/4 */ + if ix <= uint32(0x40afeddf) { /* |x| ~<= 7*pi/4 */ + if sign != 0 { + return X__cosdf(tls, float64(x3)+_s3pio21) + } else { + return -X__cosdf(tls, float64(x3)-_s3pio21) + } + } + if sign != 0 { + v5 = float64(x3) + _s4pio21 + } else { + v5 = float64(x3) - _s4pio21 + } + return X__sindf(tls, v5) + } + /* sin(Inf or NaN) is NaN */ + if ix >= uint32(0x7f800000) { + return x3 - x3 + } + /* general argument reduction needed */ + n = X__rem_pio2f(tls, x3, bp) + switch n & Int32FromInt32(3) { + case 0: + return X__sindf(tls, *(*float64)(unsafe.Pointer(bp))) + case int32(1): + return X__cosdf(tls, *(*float64)(unsafe.Pointer(bp))) + case int32(2): + return X__sindf(tls, -*(*float64)(unsafe.Pointer(bp))) + default: + return -X__cosdf(tls, *(*float64)(unsafe.Pointer(bp))) + } + return r +} + +const M_PI_28 = 0 + +// C documentation +// +// /* sinh(x) = (exp(x) - 1/exp(x))/2 +// * = (exp(x)-1 + (exp(x)-1)/exp(x))/2 +// * = x + x^3/6 + o(x^5) +// */ +func Xsinh(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var absx, h, t float64 + var w Tuint32_t + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _ = absx, h, t, w + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x + h = float64(0.5) + if *(*Tuint64_t)(unsafe.Pointer(bp))>>int32(63) != 0 { + h = -h + } + /* |x| */ + *(*Tuint64_t)(unsafe.Pointer(bp)) &= uint64(-Int32FromInt32(1)) / Uint64FromInt32(2) + absx = *(*float64)(unsafe.Pointer(bp)) + w = uint32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(32)) + /* |x| < log(DBL_MAX) */ + if w < uint32(0x40862e42) { + t = Xexpm1(tls, absx) + if w < uint32(0x3ff00000) { + if w < uint32(Int32FromInt32(0x3ff00000)-Int32FromInt32(26)<log(0x1p26)+eps could be just h*exp(x) */ + return h * (t + t/(t+Float64FromInt32(1))) + } + /* |x| > log(DBL_MAX) or nan */ + /* note: the result is stored to handle overflow */ + t = X__expo2(tls, absx, Float64FromInt32(2)*h) + return t +} + +func Xsinhf(tls *TLS, x float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var absx, h, t float32 + var w Tuint32_t + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _ = absx, h, t, w + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x + h = float32(0.5) + if *(*Tuint32_t)(unsafe.Pointer(bp))>>int32(31) != 0 { + h = -h + } + /* |x| */ + *(*Tuint32_t)(unsafe.Pointer(bp)) &= uint32(0x7fffffff) + absx = *(*float32)(unsafe.Pointer(bp)) + w = *(*Tuint32_t)(unsafe.Pointer(bp)) + /* |x| < log(FLT_MAX) */ + if w < uint32(0x42b17217) { + t = Xexpm1f(tls, absx) + if w < uint32(0x3f800000) { + if w < uint32(Int32FromInt32(0x3f800000)-Int32FromInt32(12)< logf(FLT_MAX) or nan */ + t = X__expo2f(tls, absx, Float32FromInt32(2)*h) + return t +} + +func Xsinhl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xsinh(tls, x) +} + +func Xsinl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xsin(tls, x) +} + +const FENV_SUPPORT = 1 + +// C documentation +// +// /* returns a*b*2^-32 - e, with error 0 <= e < 1. */ +func _mul32(tls *TLS, a Tuint32_t, b Tuint32_t) (r Tuint32_t) { + return uint32(uint64(a) * uint64(b) >> int32(32)) +} + +// C documentation +// +// /* returns a*b*2^-64 - e, with error 0 <= e < 3. */ +func _mul64(tls *TLS, a Tuint64_t, b Tuint64_t) (r Tuint64_t) { + var ahi, alo, bhi, blo Tuint64_t + _, _, _, _ = ahi, alo, bhi, blo + ahi = a >> int32(32) + alo = a & uint64(0xffffffff) + bhi = b >> int32(32) + blo = b & uint64(0xffffffff) + return ahi*bhi + ahi*blo>>int32(32) + alo*bhi>>int32(32) +} + +func Xsqrt(tls *TLS, x1 float64) (r1 float64) { + if __ccgo_strace { + trc("tls=%v x1=%v, (%v:)", tls, x1, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var d, d0, d1, d2, i, ix, m, r, s, tiny, top, u Tuint64_t + var even int32 + var t, y, y1, v1, v3 float64 + var v2 int64 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = d, d0, d1, d2, even, i, ix, m, r, s, t, tiny, top, u, y, y1, v1, v2, v3 + /* special case handling. */ + ix = *(*Tuint64_t)(unsafe.Pointer(&x1)) + top = ix >> int32(52) + if top-uint64(0x001) >= uint64(Int32FromInt32(0x7ff)-Int32FromInt32(0x001)) { + /* x < 0x1p-1022 or inf or nan. */ + if ix*uint64(2) == uint64(0) { + return x1 + } + if ix == uint64(0x7ff0000000000000) { + return x1 + } + if ix > uint64(0x7ff0000000000000) { + return X__math_invalid(tls, x1) + } + /* x is subnormal, normalize it. */ + v1 = x1 * float64(4.503599627370496e+15) + ix = *(*Tuint64_t)(unsafe.Pointer(&v1)) + top = ix >> int32(52) + top -= uint64(52) + } + /* argument reduction: + x = 4^e m; with integer e, and m in [1, 4) + m: fixed point representation [2.62] + 2^e is the exponent part of the result. */ + even = int32(top & uint64(1)) + m = ix<>= uint64(1) + } + top = (top + uint64(0x3ff)) >> int32(1) + i = ix >> Int32FromInt32(46) % uint64(128) + r = uint64(uint32(X__rsqrt_tab[i]) << int32(16)) + /* |r sqrt(m) - 1| < 0x1.fdp-9 */ + s = uint64(_mul32(tls, uint32(m>>int32(32)), uint32(r))) + /* |s/sqrt(m) - 1| < 0x1.fdp-9 */ + d = uint64(_mul32(tls, uint32(s), uint32(r))) + u = _three - d + r = uint64(_mul32(tls, uint32(r), uint32(u)) << int32(1)) + /* |r sqrt(m) - 1| < 0x1.7bp-16 */ + s = uint64(_mul32(tls, uint32(s), uint32(u)) << int32(1)) + /* |s/sqrt(m) - 1| < 0x1.7bp-16 */ + d = uint64(_mul32(tls, uint32(s), uint32(r))) + u = _three - d + r = uint64(_mul32(tls, uint32(r), uint32(u)) << int32(1)) + /* |r sqrt(m) - 1| < 0x1.3704p-29 (measured worst-case) */ + r = r << int32(32) + s = _mul64(tls, m, r) + d = _mul64(tls, s, r) + u = _three<> int32(9) + d0 = m<> int32(63) + s &= uint64(0x000fffffffffffff) + s |= top << int32(52) + y1 = *(*float64)(unsafe.Pointer(&s)) + if int32(FENV_SUPPORT) != 0 { + if d2 == uint64(0) { + v2 = 0 + } else { + v2 = int64(0x0010000000000000) + } + /* handle rounding modes and inexact exception: + only (s+1)^2 == 2^42 m case is exact otherwise + add a tiny value to cause the fenv effects. */ + tiny = uint64(v2) + tiny |= (d1 ^ d2) & uint64(0x8000000000000000) + t = *(*float64)(unsafe.Pointer(&tiny)) + y = y1 + t + v3 = y + goto _4 + _4: + y1 = v3 + } + return y1 +} + +/* approximate r ~ 1/sqrt(m) and s ~ sqrt(m) when m in [1,4) + + initial estimate: + 7bit table lookup (1bit exponent and 6bit significand). + + iterative approximation: + using 2 goldschmidt iterations with 32bit int arithmetics + and a final iteration with 64bit int arithmetics. + + details: + + the relative error (e = r0 sqrt(m)-1) of a linear estimate + (r0 = a m + b) is |e| < 0.085955 ~ 0x1.6p-4 at best, + a table lookup is faster and needs one less iteration + 6 bit lookup table (128b) gives |e| < 0x1.f9p-8 + 7 bit lookup table (256b) gives |e| < 0x1.fdp-9 + for single and double prec 6bit is enough but for quad + prec 7bit is needed (or modified iterations). to avoid + one more iteration >=13bit table would be needed (16k). + + a newton-raphson iteration for r is + w = r*r + u = 3 - m*w + r = r*u/2 + can use a goldschmidt iteration for s at the end or + s = m*r + + first goldschmidt iteration is + s = m*r + u = 3 - s*r + r = r*u/2 + s = s*u/2 + next goldschmidt iteration is + u = 3 - s*r + r = r*u/2 + s = s*u/2 + and at the end r is not computed only s. + + they use the same amount of operations and converge at the + same quadratic rate, i.e. if + r1 sqrt(m) - 1 = e, then + r2 sqrt(m) - 1 = -3/2 e^2 - 1/2 e^3 + the advantage of goldschmidt is that the mul for s and r + are independent (computed in parallel), however it is not + "self synchronizing": it only uses the input m in the + first iteration so rounding errors accumulate. at the end + or when switching to larger precision arithmetics rounding + errors dominate so the first iteration should be used. + + the fixed point representations are + m: 2.30 r: 0.32, s: 2.30, d: 2.30, u: 2.30, three: 2.30 + and after switching to 64 bit + m: 2.62 r: 0.64, s: 2.62, d: 2.62, u: 2.62, three: 2.62 */ + +var _three = uint64(0xc0000000) + +func _mul321(tls *TLS, a Tuint32_t, b Tuint32_t) (r Tuint32_t) { + return uint32(uint64(a) * uint64(b) >> int32(32)) +} + +/* see sqrt.c for more detailed comments. */ + +func Xsqrtf(tls *TLS, x1 float32) (r1 float32) { + if __ccgo_strace { + trc("tls=%v x1=%v, (%v:)", tls, x1, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var d, d0, d1, d2, even, ey, i, ix, m, m0, m1, r, s, tiny, u Tuint32_t + var t, y, y1, v1, v4 float32 + var v2 uint32 + var v3 int32 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = d, d0, d1, d2, even, ey, i, ix, m, m0, m1, r, s, t, tiny, u, y, y1, v1, v2, v3, v4 + ix = *(*Tuint32_t)(unsafe.Pointer(&x1)) + if ix-uint32(0x00800000) >= uint32(Int32FromInt32(0x7f800000)-Int32FromInt32(0x00800000)) { + /* x < 0x1p-126 or inf or nan. */ + if ix*uint32(2) == uint32(0) { + return x1 + } + if ix == uint32(0x7f800000) { + return x1 + } + if ix > uint32(0x7f800000) { + return X__math_invalidf(tls, x1) + } + /* x is subnormal, normalize it. */ + v1 = x1 * Float32FromFloat32(8.388608e+06) + ix = *(*Tuint32_t)(unsafe.Pointer(&v1)) + ix -= uint32(Int32FromInt32(23) << Int32FromInt32(23)) + } + /* x = 4^e m; with int e and m in [1, 4). */ + even = ix & uint32(0x00800000) + m1 = ix<> int32(1) + ey += uint32(Int32FromInt32(0x3f800000) >> Int32FromInt32(1)) + ey &= uint32(0x7f800000) + i = ix >> Int32FromInt32(17) % uint32(128) + r = uint32(X__rsqrt_tab[i]) << int32(16) + /* |r*sqrt(m) - 1| < 0x1p-8 */ + s = _mul321(tls, m, r) + /* |s/sqrt(m) - 1| < 0x1p-8 */ + d = _mul321(tls, s, r) + u = _three1 - d + r = _mul321(tls, r, u) << int32(1) + /* |r*sqrt(m) - 1| < 0x1.7bp-16 */ + s = _mul321(tls, s, u) << int32(1) + /* |s/sqrt(m) - 1| < 0x1.7bp-16 */ + d = _mul321(tls, s, r) + u = _three1 - d + s = _mul321(tls, s, u) + /* -0x1.03p-28 < s/sqrt(m) - 1 < 0x1.fp-31 */ + s = (s - uint32(1)) >> int32(6) + d0 = m<> int32(31) + s &= uint32(0x007fffff) + s |= ey + y1 = *(*float32)(unsafe.Pointer(&s)) + if int32(FENV_SUPPORT) != 0 { + if d2 == uint32(0) { + v3 = 0 + } else { + v3 = int32(0x01000000) + } + /* handle rounding and inexact exception. */ + tiny = uint32(v3) + tiny |= (d1 ^ d2) & uint32(0x80000000) + t = *(*float32)(unsafe.Pointer(&tiny)) + y = y1 + t + v4 = y + goto _5 + _5: + y1 = v4 + } + return y1 +} + +/* compute r ~ 1/sqrt(m), s ~ sqrt(m) with 2 goldschmidt iterations. */ +var _three1 = uint32(0xc0000000) + +func Xsqrtl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xsqrt(tls, x) +} + +func Xtan(tls *TLS, x3 float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ix Tuint32_t + var n uint32 + var y float32 + var y1, y2, v1, v2, v3 float64 + var _ /* y at bp+0 */ [2]float64 + _, _, _, _, _, _, _, _ = ix, n, y, y1, y2, v1, v2, v3 + ix = uint32(*(*Tuint64_t)(unsafe.Pointer(&x3)) >> int32(32)) + ix &= uint32(0x7fffffff) + /* |x| ~< pi/4 */ + if ix <= uint32(0x3fe921fb) { + if ix < uint32(0x3e400000) { /* |x| < 2**-27 */ + /* raise inexact if x!=0 and underflow if subnormal */ + if uint64(8) == uint64(4) { + if ix < uint32(0x00100000) { + v1 = x3 / Float64FromFloat32(1.329227995784916e+36) + } else { + v1 = x3 + Float64FromFloat32(1.329227995784916e+36) + } + y = float32(v1) + } else { + if uint64(8) == uint64(8) { + if ix < uint32(0x00100000) { + v2 = x3 / Float64FromFloat32(1.329227995784916e+36) + } else { + v2 = x3 + Float64FromFloat32(1.329227995784916e+36) + } + y1 = v2 + } else { + if ix < uint32(0x00100000) { + v3 = x3 / Float64FromFloat32(1.329227995784916e+36) + } else { + v3 = x3 + Float64FromFloat32(1.329227995784916e+36) + } + y2 = v3 + } + } + return x3 + } + return X__tan(tls, x3, float64(0), 0) + } + /* tan(Inf or NaN) is NaN */ + if ix >= uint32(0x7ff00000) { + return x3 - x3 + } + /* argument reduction */ + n = uint32(X__rem_pio2(tls, x3, bp)) + return X__tan(tls, (*(*[2]float64)(unsafe.Pointer(bp)))[0], (*(*[2]float64)(unsafe.Pointer(bp)))[int32(1)], int32(n&uint32(1))) +} + +const M_PI_29 = 1.5707963267948966 + +// C documentation +// +// /* Small multiples of pi/2 rounded to double precision. */ + +var _t1pio2 = Float64FromInt32(1) * Float64FromFloat64(1.5707963267948966) /* 0x3FF921FB, 0x54442D18 */ +var _t2pio2 = Float64FromInt32(2) * Float64FromFloat64(1.5707963267948966) /* 0x400921FB, 0x54442D18 */ +var _t3pio2 = Float64FromInt32(3) * Float64FromFloat64(1.5707963267948966) /* 0x4012D97C, 0x7F3321D2 */ +var _t4pio2 = Float64FromInt32(4) * Float64FromFloat64(1.5707963267948966) /* 0x401921FB, 0x54442D18 */ + +func Xtanf(tls *TLS, x3 float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ix Tuint32_t + var n, sign uint32 + var y, v1, v2, v3 float32 + var y1, y2, v4, v5, v6, v7 float64 + var _ /* y at bp+0 */ float64 + _, _, _, _, _, _, _, _, _, _, _, _, _ = ix, n, sign, y, y1, y2, v1, v2, v3, v4, v5, v6, v7 + ix = *(*Tuint32_t)(unsafe.Pointer(&x3)) + sign = ix >> int32(31) + ix &= uint32(0x7fffffff) + if ix <= uint32(0x3f490fda) { /* |x| ~<= pi/4 */ + if ix < uint32(0x39800000) { /* |x| < 2**-12 */ + /* raise inexact if x!=0 and underflow if subnormal */ + if uint64(4) == uint64(4) { + if ix < uint32(0x00800000) { + v1 = x3 / Float32FromFloat32(1.329227995784916e+36) + } else { + v1 = x3 + Float32FromFloat32(1.329227995784916e+36) + } + y = v1 + } else { + if uint64(4) == uint64(8) { + if ix < uint32(0x00800000) { + v2 = x3 / Float32FromFloat32(1.329227995784916e+36) + } else { + v2 = x3 + Float32FromFloat32(1.329227995784916e+36) + } + y1 = float64(v2) + } else { + if ix < uint32(0x00800000) { + v3 = x3 / Float32FromFloat32(1.329227995784916e+36) + } else { + v3 = x3 + Float32FromFloat32(1.329227995784916e+36) + } + y2 = float64(v3) + } + } + return x3 + } + return X__tandf(tls, float64(x3), 0) + } + if ix <= uint32(0x407b53d1) { /* |x| ~<= 5*pi/4 */ + if ix <= uint32(0x4016cbe3) { /* |x| ~<= 3pi/4 */ + if sign != 0 { + v4 = float64(x3) + _t1pio2 + } else { + v4 = float64(x3) - _t1pio2 + } + return X__tandf(tls, v4, int32(1)) + } else { + if sign != 0 { + v5 = float64(x3) + _t2pio2 + } else { + v5 = float64(x3) - _t2pio2 + } + return X__tandf(tls, v5, 0) + } + } + if ix <= uint32(0x40e231d5) { /* |x| ~<= 9*pi/4 */ + if ix <= uint32(0x40afeddf) { /* |x| ~<= 7*pi/4 */ + if sign != 0 { + v6 = float64(x3) + _t3pio2 + } else { + v6 = float64(x3) - _t3pio2 + } + return X__tandf(tls, v6, int32(1)) + } else { + if sign != 0 { + v7 = float64(x3) + _t4pio2 + } else { + v7 = float64(x3) - _t4pio2 + } + return X__tandf(tls, v7, 0) + } + } + /* tan(Inf or NaN) is NaN */ + if ix >= uint32(0x7f800000) { + return x3 - x3 + } + /* argument reduction */ + n = uint32(X__rem_pio2f(tls, x3, bp)) + return X__tandf(tls, *(*float64)(unsafe.Pointer(bp)), int32(n&uint32(1))) +} + +const M_PI_210 = 0 + +// C documentation +// +// /* tanh(x) = (exp(x) - exp(-x))/(exp(x) + exp(-x)) +// * = (exp(2*x) - 1)/(exp(2*x) - 1 + 2) +// * = (1 - exp(-2*x))/(exp(-2*x) - 1 + 2) +// */ +func Xtanh(tls *TLS, x3 float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var sign int32 + var t, v1 Tdouble_t + var w Tuint32_t + var y float32 + var y1, y2 float64 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _, _, _ = sign, t, w, y, y1, y2, v1 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x3 + /* x = |x| */ + sign = int32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(63)) + *(*Tuint64_t)(unsafe.Pointer(bp)) &= uint64(-Int32FromInt32(1)) / Uint64FromInt32(2) + x3 = *(*float64)(unsafe.Pointer(bp)) + w = uint32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(32)) + if w > uint32(0x3fe193ea) { + /* |x| > log(3)/2 ~= 0.5493 or nan */ + if w > uint32(0x40340000) { + /* |x| > 20 or nan */ + /* note: this branch avoids raising overflow */ + t = Float64FromInt32(1) - Float64FromInt32(0)/x3 + } else { + t = Xexpm1(tls, Float64FromInt32(2)*x3) + t = Float64FromInt32(1) - Float64FromInt32(2)/(t+Float64FromInt32(2)) + } + } else { + if w > uint32(0x3fd058ae) { + /* |x| > log(5/3)/2 ~= 0.2554 */ + t = Xexpm1(tls, Float64FromInt32(2)*x3) + t = t / (t + Float64FromInt32(2)) + } else { + if w >= uint32(0x00100000) { + /* |x| >= 0x1p-1022, up to 2ulp error in [0.1,0.2554] */ + t = Xexpm1(tls, float64(-Int32FromInt32(2))*x3) + t = -t / (t + Float64FromInt32(2)) + } else { + /* |x| is subnormal */ + /* note: the branch above would not raise underflow in [0x1p-1023,0x1p-1022) */ + if uint64(4) == uint64(4) { + y = float32(x3) + } else { + if uint64(4) == uint64(8) { + y1 = float64(float32(x3)) + } else { + y2 = float64(float32(x3)) + } + } + t = x3 + } + } + } + if sign != 0 { + v1 = -t + } else { + v1 = t + } + return v1 +} + +func Xtanhf(tls *TLS, x3 float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var sign int32 + var t, y, v1 float32 + var w Tuint32_t + var y1, y2 float64 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _, _, _ = sign, t, w, y, y1, y2, v1 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x3 + /* x = |x| */ + sign = int32(*(*Tuint32_t)(unsafe.Pointer(bp)) >> int32(31)) + *(*Tuint32_t)(unsafe.Pointer(bp)) &= uint32(0x7fffffff) + x3 = *(*float32)(unsafe.Pointer(bp)) + w = *(*Tuint32_t)(unsafe.Pointer(bp)) + if w > uint32(0x3f0c9f54) { + /* |x| > log(3)/2 ~= 0.5493 or nan */ + if w > uint32(0x41200000) { + /* |x| > 10 */ + t = Float32FromInt32(1) + Float32FromInt32(0)/x3 + } else { + t = Xexpm1f(tls, Float32FromInt32(2)*x3) + t = Float32FromInt32(1) - Float32FromInt32(2)/(t+Float32FromInt32(2)) + } + } else { + if w > uint32(0x3e82c578) { + /* |x| > log(5/3)/2 ~= 0.2554 */ + t = Xexpm1f(tls, Float32FromInt32(2)*x3) + t = t / (t + Float32FromInt32(2)) + } else { + if w >= uint32(0x00800000) { + /* |x| >= 0x1p-126 */ + t = Xexpm1f(tls, float32(-Int32FromInt32(2))*x3) + t = -t / (t + Float32FromInt32(2)) + } else { + /* |x| is subnormal */ + if uint64(4) == uint64(4) { + y = x3 * x3 + } else { + if uint64(4) == uint64(8) { + y1 = float64(x3 * x3) + } else { + y2 = float64(x3 * x3) + } + } + t = x3 + } + } + } + if sign != 0 { + v1 = -t + } else { + v1 = t + } + return v1 +} + +func Xtanhl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xtanh(tls, x) +} + +func Xtanl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xtan(tls, x) +} + +const N10 = 12 + +var _pi4 = float64(3.141592653589793) + +// C documentation +// +// /* sin(pi x) with x > 0x1p-100, if sin(pi*x)==0 the sign is arbitrary */ +func _sinpi(tls *TLS, x float64) (r float64) { + var n int32 + _ = n + /* argument reduction: x = |x| mod 2 */ + /* spurious inexact when x is odd int */ + x = x * float64(0.5) + x = Float64FromInt32(2) * (x - Xfloor(tls, x)) + /* reduce x into [-.25,.25] */ + n = int32(Float64FromInt32(4) * x) + n = (n + int32(1)) / int32(2) + x -= float64(n) * float64(0.5) + x *= _pi4 + switch n { + default: /* case 4 */ + fallthrough + case 0: + return X__sin(tls, x, Float64FromInt32(0), 0) + case int32(1): + return X__cos(tls, x, Float64FromInt32(0)) + case int32(2): + return X__sin(tls, -x, Float64FromInt32(0), 0) + case int32(3): + return -X__cos(tls, x, Float64FromInt32(0)) + } + return r +} + +// C documentation +// +// //static const double g = 6.024680040776729583740234375; +var _gmhalf = float64(5.52468004077673) +var _Snum = [13]float64{ + 0: float64(2.353137688041076e+10), + 1: float64(4.29198036426491e+10), + 2: float64(3.571195923735567e+10), + 3: float64(1.792103442603721e+10), + 4: float64(6.039542586352028e+09), + 5: float64(1.4397204073117216e+09), + 6: float64(2.4887455786205417e+08), + 7: float64(3.1426415585400194e+07), + 8: float64(2.8763706289353725e+06), + 9: float64(186056.26539522348), + 10: float64(8071.672002365816), + 11: float64(210.82427775157936), + 12: float64(2.5066282746310002), +} +var _Sden = [13]float64{ + 1: Float64FromInt32(39916800), + 2: Float64FromInt32(120543840), + 3: Float64FromInt32(150917976), + 4: Float64FromInt32(105258076), + 5: Float64FromInt32(45995730), + 6: Float64FromInt32(13339535), + 7: Float64FromInt32(2637558), + 8: Float64FromInt32(357423), + 9: Float64FromInt32(32670), + 10: Float64FromInt32(1925), + 11: Float64FromInt32(66), + 12: Float64FromInt32(1), +} + +// C documentation +// +// /* n! for small integer n */ +var _fact = [23]float64{ + 0: Float64FromInt32(1), + 1: Float64FromInt32(1), + 2: Float64FromInt32(2), + 3: Float64FromInt32(6), + 4: Float64FromInt32(24), + 5: Float64FromInt32(120), + 6: Float64FromInt32(720), + 7: float64(5040), + 8: float64(40320), + 9: float64(362880), + 10: float64(3.6288e+06), + 11: float64(3.99168e+07), + 12: float64(4.790016e+08), + 13: float64(6.2270208e+09), + 14: float64(8.71782912e+10), + 15: float64(1.307674368e+12), + 16: float64(2.0922789888e+13), + 17: float64(3.55687428096e+14), + 18: float64(6.402373705728e+15), + 19: float64(1.21645100408832e+17), + 20: float64(2.43290200817664e+18), + 21: float64(5.109094217170944e+19), + 22: float64(1.1240007277776077e+21), +} + +// C documentation +// +// /* S(x) rational function for positive x */ +func _S(tls *TLS, x float64) (r float64) { + var den, num Tdouble_t + var i int32 + _, _, _ = den, i, num + num = Float64FromInt32(0) + den = Float64FromInt32(0) + /* to avoid overflow handle large x differently */ + if x < Float64FromInt32(8) { + i = int32(N10) + for { + if !(i >= 0) { + break + } + num = num*x + _Snum[i] + den = den*x + _Sden[i] + goto _1 + _1: + ; + i-- + } + } else { + i = 0 + for { + if !(i <= int32(N10)) { + break + } + num = num/x + _Snum[i] + den = den/x + _Sden[i] + goto _2 + _2: + ; + i++ + } + } + return num / den +} + +func Xtgamma(tls *TLS, x3 float64) (r1 float64) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var absx, y1, y2, y3, v1 float64 + var dy, r, z Tdouble_t + var ix Tuint32_t + var sign int32 + var y float32 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _, _, _, _, _, _, _ = absx, dy, ix, r, sign, y, y1, y2, y3, z, v1 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x3 + ix = uint32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(32) & uint64(0x7fffffff)) + sign = int32(*(*Tuint64_t)(unsafe.Pointer(bp)) >> int32(63)) + /* special cases */ + if ix >= uint32(0x7ff00000) { + /* tgamma(nan)=nan, tgamma(inf)=inf, tgamma(-inf)=nan with invalid */ + return x3 + float64(X__builtin_inff(tls)) + } + if ix < uint32((Int32FromInt32(0x3ff)-Int32FromInt32(54))<= 172: tgamma(x)=inf with overflow */ + /* x =< -184: tgamma(x)=+-0 with underflow */ + if ix >= uint32(0x40670000) { /* |x| >= 184 */ + if sign != 0 { + if uint64(4) == uint64(4) { + y = float32(Float64FromFloat64(1.1754943508222875e-38) / x3) + } else { + if uint64(4) == uint64(8) { + y1 = float64(float32(Float64FromFloat64(1.1754943508222875e-38) / x3)) + } else { + y2 = float64(float32(Float64FromFloat64(1.1754943508222875e-38) / x3)) + } + } + if Xfloor(tls, x3)*float64(0.5) == Xfloor(tls, x3*float64(0.5)) { + return Float64FromInt32(0) + } + return -Float64FromFloat64(0) + } + x3 *= float64(8.98846567431158e+307) + return x3 + } + if sign != 0 { + v1 = -x3 + } else { + v1 = x3 + } + absx = v1 + /* handle the error of x + g - 0.5 */ + y3 = absx + _gmhalf + if absx > _gmhalf { + dy = y3 - absx + dy -= _gmhalf + } else { + dy = y3 - _gmhalf + dy -= absx + } + z = absx - float64(0.5) + r = _S(tls, absx) * Xexp(tls, -y3) + if x3 < Float64FromInt32(0) { + /* reflection formula for negative x */ + /* sinpi(absx) is not 0, integers are already handled */ + r = -_pi4 / (_sinpi(tls, absx) * absx * r) + dy = -dy + z = -z + } + r += dy * (_gmhalf + Float64FromFloat64(0.5)) * r / y3 + z = Xpow(tls, y3, float64(0.5)*z) + y3 = r * z * z + return y3 +} + +func Xtgammaf(tls *TLS, x float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return float32(Xtgamma(tls, float64(x))) +} + +func Xtgammal(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xtgamma(tls, x) +} + +func Xtrunc(tls *TLS, x3 float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e int32 + var m Tuint64_t + var y float32 + var y1, y2 float64 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint64_t + Ff float64 + } + _, _, _, _, _ = e, m, y, y1, y2 + *(*struct { + Fi [0]Tuint64_t + Ff float64 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint64_t + Ff float64 + }{} + *(*float64)(unsafe.Pointer(bp)) = x3 + e = int32(*(*Tuint64_t)(unsafe.Pointer(bp))>>Int32FromInt32(52)&Uint64FromInt32(0x7ff)) - int32(0x3ff) + int32(12) + if e >= Int32FromInt32(52)+Int32FromInt32(12) { + return x3 + } + if e < int32(12) { + e = int32(1) + } + m = -Uint64FromUint64(1) >> e + if *(*Tuint64_t)(unsafe.Pointer(bp))&m == uint64(0) { + return x3 + } + if uint64(8) == uint64(4) { + y = float32(x3 + Float64FromFloat32(1.329227995784916e+36)) + } else { + if uint64(8) == uint64(8) { + y1 = x3 + Float64FromFloat32(1.329227995784916e+36) + } else { + y2 = x3 + Float64FromFloat32(1.329227995784916e+36) + } + } + *(*Tuint64_t)(unsafe.Pointer(bp)) &= ^m + return *(*float64)(unsafe.Pointer(bp)) +} + +func Xtruncf(tls *TLS, x3 float32) (r float32) { + if __ccgo_strace { + trc("tls=%v x3=%v, (%v:)", tls, x3, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var e int32 + var m Tuint32_t + var y float32 + var y1, y2 float64 + var _ /* u at bp+0 */ struct { + Fi [0]Tuint32_t + Ff float32 + } + _, _, _, _, _ = e, m, y, y1, y2 + *(*struct { + Fi [0]Tuint32_t + Ff float32 + })(unsafe.Pointer(bp)) = struct { + Fi [0]Tuint32_t + Ff float32 + }{} + *(*float32)(unsafe.Pointer(bp)) = x3 + e = int32(*(*Tuint32_t)(unsafe.Pointer(bp))>>Int32FromInt32(23)&Uint32FromInt32(0xff)) - int32(0x7f) + int32(9) + if e >= Int32FromInt32(23)+Int32FromInt32(9) { + return x3 + } + if e < int32(9) { + e = int32(1) + } + m = -Uint32FromUint32(1) >> e + if *(*Tuint32_t)(unsafe.Pointer(bp))&m == uint32(0) { + return x3 + } + if uint64(4) == uint64(4) { + y = x3 + Float32FromFloat32(1.329227995784916e+36) + } else { + if uint64(4) == uint64(8) { + y1 = float64(x3 + Float32FromFloat32(1.329227995784916e+36)) + } else { + y2 = float64(x3 + Float32FromFloat32(1.329227995784916e+36)) + } + } + *(*Tuint32_t)(unsafe.Pointer(bp)) &= ^m + return *(*float32)(unsafe.Pointer(bp)) +} + +func Xtruncl(tls *TLS, x float64) (r float64) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xtrunc(tls, x) +} + +var _digits = [65]uint8{'.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'} + +func Xa64l(tls *TLS, s uintptr) (r int64) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + var d uintptr + var e int32 + var x Tuint32_t + _, _, _ = d, e, x + x = uint32(0) + e = 0 + for { + if !(e < int32(36) && *(*uint8)(unsafe.Pointer(s)) != 0) { + break + } + d = Xstrchr(tls, uintptr(unsafe.Pointer(&_digits)), int32(*(*uint8)(unsafe.Pointer(s)))) + if !(d != 0) { + break + } + x |= uint32(int64(d)-t__predefined_ptrdiff_t(uintptr(unsafe.Pointer(&_digits)))) << e + goto _1 + _1: + ; + e += int32(6) + s++ + } + return int64(int32(x)) +} + +func Xl64a(tls *TLS, x0 int64) (r uintptr) { + if __ccgo_strace { + trc("tls=%v x0=%v, (%v:)", tls, x0, origin(2)) + defer func() { trc("-> %v", r) }() + } + var p uintptr + var x Tuint32_t + _, _ = p, x + x = uint32(x0) + p = uintptr(unsafe.Pointer(&_s)) + for { + if !(x != 0) { + break + } + *(*uint8)(unsafe.Pointer(p)) = _digits[x&uint32(63)] + goto _1 + _1: + ; + p++ + x >>= uint32(6) + } + *(*uint8)(unsafe.Pointer(p)) = uint8(0) + return uintptr(unsafe.Pointer(&_s)) +} + +var _s [7]uint8 + +func Xbasename(tls *TLS, s uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + var i Tsize_t + _ = i + if !(s != 0) || !(*(*uint8)(unsafe.Pointer(s)) != 0) { + return __ccgo_ts + 558 + } + i = Xstrlen(tls, s) - uint64(1) + for { + if !(i != 0 && int32(*(*uint8)(unsafe.Pointer(s + uintptr(i)))) == int32('/')) { + break + } + *(*uint8)(unsafe.Pointer(s + uintptr(i))) = uint8(0) + goto _1 + _1: + ; + i-- + } + for { + if !(i != 0 && int32(*(*uint8)(unsafe.Pointer(s + uintptr(i-uint64(1))))) != int32('/')) { + break + } + goto _2 + _2: + ; + i-- + } + return s + uintptr(i) +} + +func X__xpg_basename(tls *TLS, s uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xbasename(tls, s) +} + +func Xdirname(tls *TLS, s uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + var i Tsize_t + _ = i + if !(s != 0) || !(*(*uint8)(unsafe.Pointer(s)) != 0) { + return __ccgo_ts + 558 + } + i = Xstrlen(tls, s) - uint64(1) + for { + if !(int32(*(*uint8)(unsafe.Pointer(s + uintptr(i)))) == int32('/')) { + break + } + if !(i != 0) { + return __ccgo_ts + 570 + } + goto _1 + _1: + ; + i-- + } + for { + if !(int32(*(*uint8)(unsafe.Pointer(s + uintptr(i)))) != int32('/')) { + break + } + if !(i != 0) { + return __ccgo_ts + 558 + } + goto _2 + _2: + ; + i-- + } + for { + if !(int32(*(*uint8)(unsafe.Pointer(s + uintptr(i)))) == int32('/')) { + break + } + if !(i != 0) { + return __ccgo_ts + 570 + } + goto _3 + _3: + ; + i-- + } + *(*uint8)(unsafe.Pointer(s + uintptr(i+uint64(1)))) = uint8(0) + return s +} + +func Xffs(tls *TLS, i int32) (r int32) { + if __ccgo_strace { + trc("tls=%v i=%v, (%v:)", tls, i, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 int32 + _ = v1 + if i != 0 { + v1 = _a_ctz_l(tls, uint64(i)) + int32(1) + } else { + v1 = 0 + } + return v1 +} + +func Xffsl(tls *TLS, i int64) (r int32) { + if __ccgo_strace { + trc("tls=%v i=%v, (%v:)", tls, i, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 int32 + _ = v1 + if i != 0 { + v1 = _a_ctz_l(tls, uint64(i)) + int32(1) + } else { + v1 = 0 + } + return v1 +} + +func Xffsll(tls *TLS, i int64) (r int32) { + if __ccgo_strace { + trc("tls=%v i=%v, (%v:)", tls, i, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1, v3 int32 + var v2 Tuint64_t + _, _, _ = v1, v2, v3 + if i != 0 { + v2 = uint64(i) + // __asm__( + // + // " rbit %0, %1\n clz %0, %0\n" + // : "=r"(x) : "r"(x)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 70, __ccgo_ts+572) + v3 = int32(v2) + goto _4 + _4: + v1 = v3 + int32(1) + } else { + v1 = 0 + } + return v1 +} + +const MM_APPL = 8 +const MM_CONSOLE = 512 +const MM_ERROR = 2 +const MM_FIRM = 4 +const MM_HALT = 1 +const MM_HARD = 1 +const MM_INFO = 4 +const MM_NOCON = 4 +const MM_NOMSG = 1 +const MM_NOSEV = 0 +const MM_NOTOK = -1 +const MM_NRECOV = 128 +const MM_NULLMC = 0 +const MM_NULLSEV = 0 +const MM_OK = 0 +const MM_OPSYS = 32 +const MM_PRINT = 256 +const MM_RECOVER = 64 +const MM_SOFT = 2 +const MM_UTIL = 16 +const MM_WARNING = 3 + +// C documentation +// +// /* +// * If lstr is the first part of bstr, check that the next char in bstr +// * is either \0 or : +// */ +func __strcolcmp(tls *TLS, lstr uintptr, bstr uintptr) (r int32) { + var i Tsize_t + _ = i + i = uint64(0) + for *(*uint8)(unsafe.Pointer(lstr + uintptr(i))) != 0 && *(*uint8)(unsafe.Pointer(bstr + uintptr(i))) != 0 && int32(*(*uint8)(unsafe.Pointer(bstr + uintptr(i)))) == int32(*(*uint8)(unsafe.Pointer(lstr + uintptr(i)))) { + i++ + } + if *(*uint8)(unsafe.Pointer(lstr + uintptr(i))) != 0 || *(*uint8)(unsafe.Pointer(bstr + uintptr(i))) != 0 && int32(*(*uint8)(unsafe.Pointer(bstr + uintptr(i)))) != int32(':') { + return int32(1) + } + return 0 +} + +func Xfmtmsg(tls *TLS, classification int64, label uintptr, severity int32, text uintptr, action uintptr, tag uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v classification=%v label=%v severity=%v text=%v action=%v tag=%v, (%v:)", tls, classification, label, severity, text, action, tag, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(80) + defer tls.Free(80) + var cmsg, errstring, v1, v10, v11, v12, v13, v14, v15, v16, v17, v2, v3, v4, v5, v6, v7, v8 uintptr + var consolefd, i, ret, verb int32 + var msgs [6]uintptr + var _ /* cs at bp+0 */ int32 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cmsg, consolefd, errstring, i, msgs, ret, verb, v1, v10, v11, v12, v13, v14, v15, v16, v17, v2, v3, v4, v5, v6, v7, v8 + ret = 0 + verb = 0 + errstring = uintptr(MM_NULLSEV) + cmsg = Xgetenv(tls, __ccgo_ts+578) + msgs = [6]uintptr{ + 0: __ccgo_ts + 586, + 1: __ccgo_ts + 592, + 2: __ccgo_ts + 601, + 3: __ccgo_ts + 606, + 4: __ccgo_ts + 613, + 5: UintptrFromInt32(0), + } + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp) + if severity == int32(MM_HALT) { + errstring = __ccgo_ts + 617 + } else { + if severity == int32(MM_ERROR) { + errstring = __ccgo_ts + 624 + } else { + if severity == int32(MM_WARNING) { + errstring = __ccgo_ts + 632 + } else { + if severity == int32(MM_INFO) { + errstring = __ccgo_ts + 642 + } + } + } + } + if classification&int64(MM_CONSOLE) != 0 { + consolefd = Xopen(tls, __ccgo_ts+649, int32(O_WRONLY), 0) + if consolefd < 0 { + ret = int32(MM_NOCON) + } else { + if label != 0 { + v1 = label + } else { + v1 = __ccgo_ts + } + if label != 0 { + v2 = __ccgo_ts + 289 + } else { + v2 = __ccgo_ts + } + if severity != 0 { + v3 = errstring + } else { + v3 = __ccgo_ts + } + if text != 0 { + v4 = text + } else { + v4 = __ccgo_ts + } + if action != 0 { + v5 = __ccgo_ts + 662 + } else { + v5 = __ccgo_ts + } + if action != 0 { + v6 = action + } else { + v6 = __ccgo_ts + } + if action != 0 { + v7 = __ccgo_ts + 672 + } else { + v7 = __ccgo_ts + } + if tag != 0 { + v8 = tag + } else { + v8 = __ccgo_ts + } + if Xdprintf(tls, consolefd, __ccgo_ts+674, VaList(bp+16, v1, v2, v3, v4, v5, v6, v7, v8)) < int32(1) { + ret = int32(MM_NOCON) + } + Xclose(tls, consolefd) + } + } + if classification&int64(MM_PRINT) != 0 { + for cmsg != 0 && *(*uint8)(unsafe.Pointer(cmsg)) != 0 { + i = 0 + for { + if !(msgs[i] != 0) { + break + } + if !(__strcolcmp(tls, msgs[i], cmsg) != 0) { + break + } + goto _9 + _9: + ; + i++ + } + if msgs[i] == UintptrFromInt32(0) { + //ignore MSGVERB-unrecognized component + verb = int32(0xFF) + break + } else { + verb |= int32(1) << i + cmsg = Xstrchr(tls, cmsg, int32(':')) + if cmsg != 0 { + cmsg++ + } + } + } + if !(verb != 0) { + verb = int32(0xFF) + } + if verb&int32(1) != 0 && label != 0 { + v10 = label + } else { + v10 = __ccgo_ts + } + if verb&int32(1) != 0 && label != 0 { + v11 = __ccgo_ts + 289 + } else { + v11 = __ccgo_ts + } + if verb&int32(2) != 0 && severity != 0 { + v12 = errstring + } else { + v12 = __ccgo_ts + } + if verb&int32(4) != 0 && text != 0 { + v13 = text + } else { + v13 = __ccgo_ts + } + if verb&int32(8) != 0 && action != 0 { + v14 = __ccgo_ts + 662 + } else { + v14 = __ccgo_ts + } + if verb&int32(8) != 0 && action != 0 { + v15 = action + } else { + v15 = __ccgo_ts + } + if verb&int32(8) != 0 && action != 0 { + v16 = __ccgo_ts + 672 + } else { + v16 = __ccgo_ts + } + if verb&int32(16) != 0 && tag != 0 { + v17 = tag + } else { + v17 = __ccgo_ts + } + if Xdprintf(tls, int32(2), __ccgo_ts+674, VaList(bp+16, v10, v11, v12, v13, v14, v15, v16, v17)) < int32(1) { + ret |= int32(MM_NOMSG) + } + } + if ret&(Int32FromInt32(MM_NOCON)|Int32FromInt32(MM_NOMSG)) == Int32FromInt32(MM_NOCON)|Int32FromInt32(MM_NOMSG) { + ret = -int32(1) + } + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) + return ret +} + +func Xget_current_dir_name(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(256) + defer tls.Free(256) + var res uintptr + var _ /* a at bp+0 */ Tstat + var _ /* b at bp+128 */ Tstat + _ = res + res = Xgetenv(tls, __ccgo_ts+692) + if res != 0 && *(*uint8)(unsafe.Pointer(res)) != 0 && !(Xstat(tls, res, bp) != 0) && !(Xstat(tls, __ccgo_ts+558, bp+128) != 0) && (*(*Tstat)(unsafe.Pointer(bp))).Fst_dev == (*(*Tstat)(unsafe.Pointer(bp + 128))).Fst_dev && (*(*Tstat)(unsafe.Pointer(bp))).Fst_ino == (*(*Tstat)(unsafe.Pointer(bp + 128))).Fst_ino { + return Xstrdup(tls, res) + } + return Xgetcwd(tls, uintptr(0), uint64(0)) +} + +func X__getauxval(tls *TLS, item uint64) (r uint64) { + if __ccgo_strace { + trc("tls=%v item=%v, (%v:)", tls, item, origin(2)) + defer func() { trc("-> %v", r) }() + } + var auxv uintptr + _ = auxv + auxv = X__libc.Fauxv + if item == uint64(AT_SECURE) { + return uint64(X__libc.Fsecure) + } + for { + if !(*(*Tsize_t)(unsafe.Pointer(auxv)) != 0) { + break + } + if *(*Tsize_t)(unsafe.Pointer(auxv)) == item { + return *(*Tsize_t)(unsafe.Pointer(auxv + 1*8)) + } + goto _1 + _1: + ; + auxv += uintptr(2) * 8 + } + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOENT) + return uint64(0) +} + +func Xgetauxval(tls *TLS, item uint64) (r uint64) { + if __ccgo_strace { + trc("tls=%v item=%v, (%v:)", tls, item, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__getauxval(tls, item) +} + +type Tutsname = struct { + Fsysname [65]uint8 + Fnodename [65]uint8 + Frelease [65]uint8 + Fversion [65]uint8 + Fmachine [65]uint8 + Fdomainname [65]uint8 +} + +func Xgetdomainname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v name=%v len1=%v, (%v:)", tls, name, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(400) + defer tls.Free(400) + var _ /* temp at bp+0 */ Tutsname + Xuname(tls, bp) + if !(len1 != 0) || Xstrlen(tls, bp+325) >= len1 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return -int32(1) + } + Xstrcpy(tls, name, bp+325) + return 0 +} + +func Xgetentropy(tls *TLS, buffer uintptr, len1 Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v buffer=%v len1=%v, (%v:)", tls, buffer, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var pos uintptr + var ret int32 + var _ /* cs at bp+0 */ int32 + _, _ = pos, ret + ret = 0 + pos = buffer + if len1 > uint64(256) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EIO) + return -int32(1) + } + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp) + for len1 != 0 { + ret = int32(Xgetrandom(tls, pos, len1, uint32(0))) + if ret < 0 { + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(EINTR) { + continue + } else { + break + } + } + pos += uintptr(ret) + len1 -= uint64(ret) + ret = 0 + } + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) + return ret +} + +func Xgethostid(tls *TLS) (r int64) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return 0 +} + +const optpos = 0 + +type Tucontext_t3 = struct { + Fuc_flags uint64 + Fuc_link uintptr + Fuc_stack Tstack_t + Fuc_sigmask Tsigset_t + Fuc_mcontext Tmcontext_t1 +} + +type t__ucontext1 = Tucontext_t3 + +func X__getopt_msg(tls *TLS, a uintptr, b uintptr, c uintptr, l Tsize_t) { + if __ccgo_strace { + trc("tls=%v a=%v b=%v c=%v l=%v, (%v:)", tls, a, b, c, l, origin(2)) + } + var __need_unlock, v1 int32 + var f uintptr + _, _, _ = __need_unlock, f, v1 + f = uintptr(unsafe.Pointer(&X__stderr_FILE)) + b = X__lctrans_cur(tls, b) + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + _ = Xfputs(tls, a, f) >= 0 && Xfwrite(tls, b, Xstrlen(tls, b), uint64(1), f) != 0 && Xfwrite(tls, c, uint64(1), l, f) == l && Xputc(tls, int32('\n'), f) != 0 + if __need_unlock != 0 { + ___unlockfile(tls, f) + } +} + +func Xgetopt(tls *TLS, argc int32, argv uintptr, optstring uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v argc=%v argv=%v optstring=%v, (%v:)", tls, argc, argv, optstring, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var i, k, l, v1, v2, v3 int32 + var optchar uintptr + var _ /* c at bp+0 */ Twchar_t + var _ /* d at bp+4 */ Twchar_t + _, _, _, _, _, _, _ = i, k, l, optchar, v1, v2, v3 + if !(Xoptind != 0) || Xoptreset != 0 { + Xoptreset = 0 + X__optpos = 0 + Xoptind = int32(1) + } + if Xoptind >= argc || !(*(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8)) != 0) { + return -int32(1) + } + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8))))) != int32('-') { + if int32(*(*uint8)(unsafe.Pointer(optstring))) == int32('-') { + v1 = Xoptind + Xoptind++ + Xoptarg = *(*uintptr)(unsafe.Pointer(argv + uintptr(v1)*8)) + return int32(1) + } + return -int32(1) + } + if !(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8)) + 1)) != 0) { + return -int32(1) + } + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8)) + 1))) == int32('-') && !(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8)) + 2)) != 0) { + Xoptind++ + return -Int32FromInt32(1) + } + if !(X__optpos != 0) { + X__optpos++ + } + v2 = Xmbtowc(tls, bp, *(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8))+uintptr(X__optpos), uint64(MB_LEN_MAX)) + k = v2 + if v2 < 0 { + k = int32(1) + *(*Twchar_t)(unsafe.Pointer(bp)) = uint32(0xfffd) /* replacement char */ + } + optchar = *(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8)) + uintptr(X__optpos) + X__optpos += k + if !(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8)) + uintptr(X__optpos))) != 0) { + Xoptind++ + X__optpos = 0 + } + if int32(*(*uint8)(unsafe.Pointer(optstring))) == int32('-') || int32(*(*uint8)(unsafe.Pointer(optstring))) == int32('+') { + optstring++ + } + i = 0 + *(*Twchar_t)(unsafe.Pointer(bp + 4)) = uint32(0) + for cond := true; cond; cond = l != 0 && *(*Twchar_t)(unsafe.Pointer(bp + 4)) != *(*Twchar_t)(unsafe.Pointer(bp)) { + l = Xmbtowc(tls, bp+4, optstring+uintptr(i), uint64(MB_LEN_MAX)) + if l > 0 { + i += l + } else { + i++ + } + } + if *(*Twchar_t)(unsafe.Pointer(bp + 4)) != *(*Twchar_t)(unsafe.Pointer(bp)) || *(*Twchar_t)(unsafe.Pointer(bp)) == uint32(':') { + Xoptopt = int32(*(*Twchar_t)(unsafe.Pointer(bp))) + if int32(*(*uint8)(unsafe.Pointer(optstring))) != int32(':') && Xopterr != 0 { + X__getopt_msg(tls, *(*uintptr)(unsafe.Pointer(argv)), __ccgo_ts+696, optchar, uint64(k)) + } + return int32('?') + } + if int32(*(*uint8)(unsafe.Pointer(optstring + uintptr(i)))) == int32(':') { + Xoptarg = uintptr(0) + if int32(*(*uint8)(unsafe.Pointer(optstring + uintptr(i+int32(1))))) != int32(':') || X__optpos != 0 { + v3 = Xoptind + Xoptind++ + Xoptarg = *(*uintptr)(unsafe.Pointer(argv + uintptr(v3)*8)) + if X__optpos != 0 { + Xoptarg += uintptr(X__optpos) + } + X__optpos = 0 + } + if Xoptind > argc { + Xoptopt = int32(*(*Twchar_t)(unsafe.Pointer(bp))) + if int32(*(*uint8)(unsafe.Pointer(optstring))) == int32(':') { + return int32(':') + } + if Xopterr != 0 { + X__getopt_msg(tls, *(*uintptr)(unsafe.Pointer(argv)), __ccgo_ts+720, optchar, uint64(k)) + } + return int32('?') + } + } + return int32(*(*Twchar_t)(unsafe.Pointer(bp))) +} + +func X__posix_getopt(tls *TLS, argc int32, argv uintptr, optstring uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v argc=%v argv=%v optstring=%v, (%v:)", tls, argc, argv, optstring, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xgetopt(tls, argc, argv, optstring) +} + +const no_argument = 0 +const optional_argument = 2 +const required_argument = 1 + +type Toption = struct { + Fname uintptr + Fhas_arg int32 + Fflag uintptr + Fval int32 +} + +func _permute(tls *TLS, argv uintptr, dest int32, src int32) { + var av, tmp uintptr + var i int32 + _, _, _ = av, i, tmp + av = argv + tmp = *(*uintptr)(unsafe.Pointer(av + uintptr(src)*8)) + i = src + for { + if !(i > dest) { + break + } + *(*uintptr)(unsafe.Pointer(av + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer(av + uintptr(i-int32(1))*8)) + goto _1 + _1: + ; + i-- + } + *(*uintptr)(unsafe.Pointer(av + uintptr(dest)*8)) = tmp +} + +func ___getopt_long(tls *TLS, argc int32, argv uintptr, optstring uintptr, longopts uintptr, idx uintptr, longonly int32) (r int32) { + var cnt, i, i1, resumed, ret, skipped int32 + _, _, _, _, _, _ = cnt, i, i1, resumed, ret, skipped + if !(Xoptind != 0) || Xoptreset != 0 { + Xoptreset = 0 + X__optpos = 0 + Xoptind = int32(1) + } + if Xoptind >= argc || !(*(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8)) != 0) { + return -int32(1) + } + skipped = Xoptind + if int32(*(*uint8)(unsafe.Pointer(optstring))) != int32('+') && int32(*(*uint8)(unsafe.Pointer(optstring))) != int32('-') { + i = Xoptind + for { + if i >= argc || !(*(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)) != 0) { + return -int32(1) + } + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))))) == int32('-') && *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)) + 1)) != 0 { + break + } + goto _1 + _1: + ; + i++ + } + Xoptind = i + } + resumed = Xoptind + ret = ___getopt_long_core(tls, argc, argv, optstring, longopts, idx, longonly) + if resumed > skipped { + cnt = Xoptind - resumed + i1 = 0 + for { + if !(i1 < cnt) { + break + } + _permute(tls, argv, skipped, Xoptind-int32(1)) + goto _2 + _2: + ; + i1++ + } + Xoptind = skipped + cnt + } + return ret +} + +func ___getopt_long_core(tls *TLS, argc int32, argv uintptr, optstring uintptr, longopts uintptr, idx uintptr, longonly int32) (r int32) { + var arg, name, opt, start, v5, v6 uintptr + var cnt, colon, i, j, l, match, v2 int32 + _, _, _, _, _, _, _, _, _, _, _, _, _ = arg, cnt, colon, i, j, l, match, name, opt, start, v2, v5, v6 + Xoptarg = uintptr(0) + if longopts != 0 && int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8))))) == int32('-') && (longonly != 0 && *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8)) + 1)) != 0 && int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8)) + 1))) != int32('-') || int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8)) + 1))) == int32('-') && *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8)) + 2)) != 0) { + colon = BoolInt32(int32(*(*uint8)(unsafe.Pointer(optstring + BoolUintptr(int32(*(*uint8)(unsafe.Pointer(optstring))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(optstring))) == int32('-'))))) == int32(':')) + start = *(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8)) + uintptr(1) + v2 = Int32FromInt32(0) + i = v2 + cnt = v2 + for { + if !((*(*Toption)(unsafe.Pointer(longopts + uintptr(i)*32))).Fname != 0) { + break + } + name = (*(*Toption)(unsafe.Pointer(longopts + uintptr(i)*32))).Fname + opt = start + if int32(*(*uint8)(unsafe.Pointer(opt))) == int32('-') { + opt++ + } + for *(*uint8)(unsafe.Pointer(opt)) != 0 && int32(*(*uint8)(unsafe.Pointer(opt))) != int32('=') && int32(*(*uint8)(unsafe.Pointer(opt))) == int32(*(*uint8)(unsafe.Pointer(name))) { + name++ + opt++ + } + if *(*uint8)(unsafe.Pointer(opt)) != 0 && int32(*(*uint8)(unsafe.Pointer(opt))) != int32('=') { + goto _1 + } + arg = opt + match = i + if !(*(*uint8)(unsafe.Pointer(name)) != 0) { + cnt = int32(1) + break + } + cnt++ + goto _1 + _1: + ; + i++ + } + if cnt == int32(1) && longonly != 0 && int64(arg)-int64(start) == int64(Xmblen(tls, start, uint64(MB_LEN_MAX))) { + l = int32(int64(arg) - int64(start)) + i = 0 + for { + if !(*(*uint8)(unsafe.Pointer(optstring + uintptr(i))) != 0) { + break + } + j = 0 + for { + if !(j < l && int32(*(*uint8)(unsafe.Pointer(start + uintptr(j)))) == int32(*(*uint8)(unsafe.Pointer(optstring + uintptr(i+j))))) { + break + } + goto _4 + _4: + ; + j++ + } + if j == l { + cnt++ + break + } + goto _3 + _3: + ; + i++ + } + } + if cnt == int32(1) { + i = match + opt = arg + Xoptind++ + if int32(*(*uint8)(unsafe.Pointer(opt))) == int32('=') { + if !((*(*Toption)(unsafe.Pointer(longopts + uintptr(i)*32))).Fhas_arg != 0) { + Xoptopt = (*(*Toption)(unsafe.Pointer(longopts + uintptr(i)*32))).Fval + if colon != 0 || !(Xopterr != 0) { + return int32('?') + } + X__getopt_msg(tls, *(*uintptr)(unsafe.Pointer(argv)), __ccgo_ts+752, (*(*Toption)(unsafe.Pointer(longopts + uintptr(i)*32))).Fname, Xstrlen(tls, (*(*Toption)(unsafe.Pointer(longopts + uintptr(i)*32))).Fname)) + return int32('?') + } + Xoptarg = opt + uintptr(1) + } else { + if (*(*Toption)(unsafe.Pointer(longopts + uintptr(i)*32))).Fhas_arg == int32(required_argument) { + v5 = *(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8)) + Xoptarg = v5 + if !(v5 != 0) { + Xoptopt = (*(*Toption)(unsafe.Pointer(longopts + uintptr(i)*32))).Fval + if colon != 0 { + return int32(':') + } + if !(Xopterr != 0) { + return int32('?') + } + X__getopt_msg(tls, *(*uintptr)(unsafe.Pointer(argv)), __ccgo_ts+720, (*(*Toption)(unsafe.Pointer(longopts + uintptr(i)*32))).Fname, Xstrlen(tls, (*(*Toption)(unsafe.Pointer(longopts + uintptr(i)*32))).Fname)) + return int32('?') + } + Xoptind++ + } + } + if idx != 0 { + *(*int32)(unsafe.Pointer(idx)) = i + } + if (*(*Toption)(unsafe.Pointer(longopts + uintptr(i)*32))).Fflag != 0 { + *(*int32)(unsafe.Pointer((*(*Toption)(unsafe.Pointer(longopts + uintptr(i)*32))).Fflag)) = (*(*Toption)(unsafe.Pointer(longopts + uintptr(i)*32))).Fval + return 0 + } + return (*(*Toption)(unsafe.Pointer(longopts + uintptr(i)*32))).Fval + } + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8)) + 1))) == int32('-') { + Xoptopt = 0 + if !(colon != 0) && Xopterr != 0 { + if cnt != 0 { + v6 = __ccgo_ts + 789 + } else { + v6 = __ccgo_ts + 696 + } + X__getopt_msg(tls, *(*uintptr)(unsafe.Pointer(argv)), v6, *(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8))+uintptr(2), Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(Xoptind)*8))+uintptr(2))) + } + Xoptind++ + return int32('?') + } + } + return Xgetopt(tls, argc, argv, optstring) +} + +func Xgetopt_long(tls *TLS, argc int32, argv uintptr, optstring uintptr, longopts uintptr, idx uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v argc=%v argv=%v optstring=%v longopts=%v idx=%v, (%v:)", tls, argc, argv, optstring, longopts, idx, origin(2)) + defer func() { trc("-> %v", r) }() + } + return ___getopt_long(tls, argc, argv, optstring, longopts, idx, 0) +} + +func Xgetopt_long_only(tls *TLS, argc int32, argv uintptr, optstring uintptr, longopts uintptr, idx uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v argc=%v argv=%v optstring=%v longopts=%v idx=%v, (%v:)", tls, argc, argv, optstring, longopts, idx, origin(2)) + defer func() { trc("-> %v", r) }() + } + return ___getopt_long(tls, argc, argv, optstring, longopts, idx, int32(1)) +} + +func Xgetpriority(tls *TLS, which int32, who Tid_t) (r int32) { + if __ccgo_strace { + trc("tls=%v which=%v who=%v, (%v:)", tls, which, who, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ret int32 + _ = ret + ret = int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_getpriority), int64(which), int64(who))))) + if ret < 0 { + return ret + } + return int32(20) - ret +} + +func Xgetresgid(tls *TLS, rgid uintptr, egid uintptr, sgid uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v rgid=%v egid=%v sgid=%v, (%v:)", tls, rgid, egid, sgid, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_getresgid), int64(rgid), int64(egid), int64(sgid))))) +} + +func Xgetresuid(tls *TLS, ruid uintptr, euid uintptr, suid uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v ruid=%v euid=%v suid=%v, (%v:)", tls, ruid, euid, suid, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_getresuid), int64(ruid), int64(euid), int64(suid))))) +} + +func Xgetrlimit(tls *TLS, resource int32, rlim uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v resource=%v rlim=%v, (%v:)", tls, resource, rlim, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ret int32 + var v1, v2 uint64 + var _ /* k_rlim at bp+0 */ [2]uint64 + _, _, _ = ret, v1, v2 + ret = int32(X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_prlimit64), int64(Int32FromInt32(0)), int64(resource), int64(Int32FromInt32(0)), int64(rlim))))) + if !(ret != 0) { + if (*Trlimit)(unsafe.Pointer(rlim)).Frlim_cur >= ^Uint64FromUint64(0) { + (*Trlimit)(unsafe.Pointer(rlim)).Frlim_cur = ^Uint64FromUint64(0) + } + if (*Trlimit)(unsafe.Pointer(rlim)).Frlim_max >= ^Uint64FromUint64(0) { + (*Trlimit)(unsafe.Pointer(rlim)).Frlim_max = ^Uint64FromUint64(0) + } + } + if !(ret != 0) || *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(ENOSYS) { + return ret + } + if X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_getrlimit), int64(resource), int64(bp)))) < 0 { + return -int32(1) + } + if (*(*[2]uint64)(unsafe.Pointer(bp)))[0] == -Uint64FromUint64(1) { + v1 = ^Uint64FromUint64(0) + } else { + v1 = (*(*[2]uint64)(unsafe.Pointer(bp)))[0] + } + (*Trlimit)(unsafe.Pointer(rlim)).Frlim_cur = v1 + if (*(*[2]uint64)(unsafe.Pointer(bp)))[int32(1)] == -Uint64FromUint64(1) { + v2 = ^Uint64FromUint64(0) + } else { + v2 = (*(*[2]uint64)(unsafe.Pointer(bp)))[int32(1)] + } + (*Trlimit)(unsafe.Pointer(rlim)).Frlim_max = v2 + if (*Trlimit)(unsafe.Pointer(rlim)).Frlim_cur >= ^Uint64FromUint64(0) { + (*Trlimit)(unsafe.Pointer(rlim)).Frlim_cur = ^Uint64FromUint64(0) + } + if (*Trlimit)(unsafe.Pointer(rlim)).Frlim_max >= ^Uint64FromUint64(0) { + (*Trlimit)(unsafe.Pointer(rlim)).Frlim_max = ^Uint64FromUint64(0) + } + return 0 +} + +func Xgetrusage(tls *TLS, who int32, ru uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v who=%v ru=%v, (%v:)", tls, who, ru, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var dest uintptr + var r int32 + var _ /* kru at bp+0 */ [4]int64 + _, _ = dest, r + dest = ru + 32 - uintptr(Uint64FromInt32(4)*Uint64FromInt64(8)) + r = int32(X__syscall2(tls, int64(SYS_getrusage), int64(who), int64(dest))) + if !(r != 0) && Bool(uint64(8) > uint64(8)) { + Xmemcpy(tls, bp, dest, Uint64FromInt32(4)*Uint64FromInt64(8)) + (*Trusage)(unsafe.Pointer(ru)).Fru_utime = Ttimeval{ + Ftv_sec: (*(*[4]int64)(unsafe.Pointer(bp)))[0], + Ftv_usec: (*(*[4]int64)(unsafe.Pointer(bp)))[int32(1)], + } + (*Trusage)(unsafe.Pointer(ru)).Fru_stime = Ttimeval{ + Ftv_sec: (*(*[4]int64)(unsafe.Pointer(bp)))[int32(2)], + Ftv_usec: (*(*[4]int64)(unsafe.Pointer(bp)))[int32(3)], + } + } + return int32(X__syscall_ret(tls, uint64(r))) +} + +func Xgetsubopt(tls *TLS, opt uintptr, keys uintptr, val uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v opt=%v keys=%v val=%v, (%v:)", tls, opt, keys, val, origin(2)) + defer func() { trc("-> %v", r) }() + } + var i int32 + var l Tsize_t + var s, v1, v2 uintptr + _, _, _, _, _ = i, l, s, v1, v2 + s = *(*uintptr)(unsafe.Pointer(opt)) + *(*uintptr)(unsafe.Pointer(val)) = UintptrFromInt32(0) + *(*uintptr)(unsafe.Pointer(opt)) = Xstrchr(tls, s, int32(',')) + if *(*uintptr)(unsafe.Pointer(opt)) != 0 { + v2 = opt + v1 = *(*uintptr)(unsafe.Pointer(v2)) + *(*uintptr)(unsafe.Pointer(v2))++ + *(*uint8)(unsafe.Pointer(v1)) = uint8(0) + } else { + *(*uintptr)(unsafe.Pointer(opt)) = s + uintptr(Xstrlen(tls, s)) + } + i = 0 + for { + if !(*(*uintptr)(unsafe.Pointer(keys + uintptr(i)*8)) != 0) { + break + } + l = Xstrlen(tls, *(*uintptr)(unsafe.Pointer(keys + uintptr(i)*8))) + if Xstrncmp(tls, *(*uintptr)(unsafe.Pointer(keys + uintptr(i)*8)), s, l) != 0 { + goto _3 + } + if int32(*(*uint8)(unsafe.Pointer(s + uintptr(l)))) == int32('=') { + *(*uintptr)(unsafe.Pointer(val)) = s + uintptr(l) + uintptr(1) + } else { + if *(*uint8)(unsafe.Pointer(s + uintptr(l))) != 0 { + goto _3 + } + } + return i + goto _3 + _3: + ; + i++ + } + return -int32(1) +} + +const R = 2 +const W = 1 +const WR = 3 + +type Tioctl_compat_map = struct { + Fnew_req int32 + Fold_req int32 + Fold_size uint8 + Fdir uint8 + Fforce_align uint8 + Fnoffs uint8 + Foffsets [8]uint8 +} + +/* yields a type for a struct with original size n, with a misaligned + * timeval/timespec expanded from 32- to 64-bit. for use with ioctl + * number producing macros; only size of result is meaningful. */ + +type Tv4l2_event = struct { + Fa Tuint32_t + Fb [8]Tuint64_t + Fc [2]Tuint32_t + Fts [2]Tuint32_t + Fd [9]Tuint32_t +} + +var _compat_map = [20]Tioctl_compat_map{ + 0: { + Fnew_req: int32(SIOCGSTAMP), + Fold_req: int32(SIOCGSTAMP_OLD), + Fold_size: uint8(8), + Fdir: uint8(R), + Fnoffs: uint8(2), + Foffsets: [8]uint8{ + 1: uint8(4), + }, + }, + 1: { + Fnew_req: int32(SIOCGSTAMPNS), + Fold_req: int32(SIOCGSTAMPNS_OLD), + Fold_size: uint8(8), + Fdir: uint8(R), + Fnoffs: uint8(2), + Foffsets: [8]uint8{ + 1: uint8(4), + }, + }, + 2: { + Fnew_req: int32(uint64(Uint32FromUint32(2)< %v", r1) }() + } + bp := tls.Alloc(256) + defer tls.Free(256) + var ap Tva_list + var arg uintptr + var i, r int32 + var _ /* u at bp+0 */ struct { + Fbuf [0][256]uint8 + Falign int64 + F__ccgo_pad2 [248]byte + } + _, _, _, _ = ap, arg, i, r + ap = va + arg = VaUintptr(&ap) + _ = ap + r = int32(X__syscall3(tls, int64(SYS_ioctl), int64(fd), int64(req), int64(arg))) + if Bool(Bool(int32(SIOCGSTAMP) != int32(SIOCGSTAMP_OLD)) && req != 0) && r == -int32(ENOTTY) { + i = 0 + for { + if !(uint64(i) < Uint64FromInt64(400)/Uint64FromInt64(20)) { + break + } + if _compat_map[i].Fnew_req != req { + goto _1 + } + _convert_ioctl_struct(tls, uintptr(unsafe.Pointer(&_compat_map))+uintptr(i)*20, bp, arg, int32(W)) + r = int32(X__syscall3(tls, int64(SYS_ioctl), int64(fd), int64(_compat_map[i].Fold_req), int64(bp))) + if r < 0 { + break + } + _convert_ioctl_struct(tls, uintptr(unsafe.Pointer(&_compat_map))+uintptr(i)*20, bp, arg, int32(R)) + break + goto _1 + _1: + ; + i++ + } + } + return int32(X__syscall_ret(tls, uint64(r))) +} + +func Xissetugid(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__libc.Fsecure) +} + +func Xlockf(tls *TLS, fd int32, op int32, size Toff_t) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v op=%v size=%v, (%v:)", tls, fd, op, size, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* l at bp+0 */ Tflock + *(*Tflock)(unsafe.Pointer(bp)) = Tflock{ + Fl_type: int16(F_WRLCK), + Fl_whence: int16(1), + Fl_len: size, + } + switch op { + case int32(F_TEST): + (*(*Tflock)(unsafe.Pointer(bp))).Fl_type = F_RDLCK + if Xfcntl(tls, fd, int32(F_GETLK), VaList(bp+40, bp)) < 0 { + return -int32(1) + } + if int32((*(*Tflock)(unsafe.Pointer(bp))).Fl_type) == int32(F_UNLCK) || (*(*Tflock)(unsafe.Pointer(bp))).Fl_pid == Xgetpid(tls) { + return 0 + } + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EACCES) + return -int32(1) + case F_ULOCK: + (*(*Tflock)(unsafe.Pointer(bp))).Fl_type = int16(F_UNLCK) + fallthrough + case int32(F_TLOCK): + return Xfcntl(tls, fd, int32(F_SETLK), VaList(bp+40, bp)) + case int32(F_LOCK): + return Xfcntl(tls, fd, int32(F_SETLKW), VaList(bp+40, bp)) + } + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return -int32(1) +} + +const ACCOUNTING = 9 +const UTMP_FILE = "_PATH_UTMP" +const UTMP_FILENAME = "_PATH_UTMP" +const UT_HOSTSIZE = 256 +const UT_LINESIZE = 32 +const UT_NAMESIZE = 32 +const WTMP_FILE = "_PATH_WTMP" +const WTMP_FILENAME = "_PATH_WTMP" +const _PATH_UTMP = "/dev/null/utmp" +const _PATH_WTMP = "/dev/null/wtmp" +const ut_name = 0 +const utmp = 0 + +type Tlastlog = struct { + Fll_time Ttime_t + Fll_line [32]uint8 + Fll_host [256]uint8 +} + +func Xlogin_tty(tls *TLS, fd int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + Xsetsid(tls) + if Xioctl(tls, fd, int32(TIOCSCTTY), VaList(bp+8, UintptrFromInt32(0))) != 0 { + return -int32(1) + } + Xdup2(tls, fd, 0) + Xdup2(tls, fd, int32(1)) + Xdup2(tls, fd, int32(2)) + if fd > int32(2) { + Xclose(tls, fd) + } + return 0 +} + +const MNTOPT_DEFAULTS = "defaults" +const MNTOPT_NOAUTO = "noauto" +const MNTOPT_NOSUID = "nosuid" +const MNTOPT_RO = "ro" +const MNTOPT_RW = "rw" +const MNTOPT_SUID = "suid" +const MNTTYPE_IGNORE = "ignore" +const MNTTYPE_NFS = "nfs" +const MNTTYPE_SWAP = "swap" +const MOUNTED = "/etc/mtab" +const SENTINEL = 0 + +type Tmntent = struct { + Fmnt_fsname uintptr + Fmnt_dir uintptr + Fmnt_type uintptr + Fmnt_opts uintptr + Fmnt_freq int32 + Fmnt_passno int32 +} + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +var _internal_buf uintptr +var _internal_bufsize Tsize_t + +func Xsetmntent(tls *TLS, name uintptr, mode uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v name=%v mode=%v, (%v:)", tls, name, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfopen(tls, name, mode) +} + +func Xendmntent(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + if f != 0 { + Xfclose(tls, f) + } + return int32(1) +} + +func _unescape_ent(tls *TLS, beg uintptr) (r uintptr) { + var cval uint8 + var dest, src, val, v1, v2, v3, v4, v6, v7, v8, v9 uintptr + var i int32 + _, _, _, _, _, _, _, _, _, _, _, _, _ = cval, dest, i, src, val, v1, v2, v3, v4, v6, v7, v8, v9 + dest = beg + src = beg + for *(*uint8)(unsafe.Pointer(src)) != 0 { + cval = uint8(0) + if int32(*(*uint8)(unsafe.Pointer(src))) != int32('\\') { + v1 = dest + dest++ + v2 = src + src++ + *(*uint8)(unsafe.Pointer(v1)) = *(*uint8)(unsafe.Pointer(v2)) + continue + } + if int32(*(*uint8)(unsafe.Pointer(src + 1))) == int32('\\') { + src++ + v3 = dest + dest++ + v4 = src + src++ + *(*uint8)(unsafe.Pointer(v3)) = *(*uint8)(unsafe.Pointer(v4)) + continue + } + val = src + uintptr(1) + i = 0 + for { + if !(i < int32(3)) { + break + } + if int32(*(*uint8)(unsafe.Pointer(val))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(val))) <= int32('7') { + cval = uint8(int32(cval) << Int32FromInt32(3)) + v6 = val + val++ + cval = uint8(int32(cval) + (int32(*(*uint8)(unsafe.Pointer(v6))) - Int32FromUint8('0'))) + } else { + break + } + goto _5 + _5: + ; + i++ + } + if cval != 0 { + v7 = dest + dest++ + *(*uint8)(unsafe.Pointer(v7)) = cval + src = val + } else { + v8 = dest + dest++ + v9 = src + src++ + *(*uint8)(unsafe.Pointer(v8)) = *(*uint8)(unsafe.Pointer(v9)) + } + } + *(*uint8)(unsafe.Pointer(dest)) = uint8(0) + return beg +} + +func Xgetmntent_r(tls *TLS, f uintptr, mnt uintptr, linebuf uintptr, buflen int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v mnt=%v linebuf=%v buflen=%v, (%v:)", tls, f, mnt, linebuf, buflen, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(128) + defer tls.Free(128) + var i, len1 Tsize_t + var use_internal int32 + var _ /* n at bp+0 */ [8]int32 + _, _, _ = i, len1, use_internal + use_internal = BoolInt32(linebuf == uintptr(unsafe.Pointer(&_internal_buf))) + (*Tmntent)(unsafe.Pointer(mnt)).Fmnt_freq = 0 + (*Tmntent)(unsafe.Pointer(mnt)).Fmnt_passno = 0 + for cond := true; cond; cond = int32(*(*uint8)(unsafe.Pointer(linebuf + uintptr((*(*[8]int32)(unsafe.Pointer(bp)))[0])))) == int32('#') || uint64((*(*[8]int32)(unsafe.Pointer(bp)))[int32(1)]) == len1 { + if use_internal != 0 { + Xgetline(tls, uintptr(unsafe.Pointer(&_internal_buf)), uintptr(unsafe.Pointer(&_internal_bufsize)), f) + linebuf = _internal_buf + } else { + Xfgets(tls, linebuf, buflen, f) + } + if Xfeof(tls, f) != 0 || Xferror(tls, f) != 0 { + return uintptr(0) + } + if !(Xstrchr(tls, linebuf, int32('\n')) != 0) { + Xfscanf(tls, f, __ccgo_ts+813, 0) + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ERANGE) + return uintptr(0) + } + len1 = Xstrlen(tls, linebuf) + if len1 > uint64(INT_MAX) { + continue + } + i = uint64(0) + for { + if !(i < Uint64FromInt64(32)/Uint64FromInt64(4)) { + break + } + (*(*[8]int32)(unsafe.Pointer(bp)))[i] = int32(len1) + goto _1 + _1: + ; + i++ + } + Xsscanf(tls, linebuf, __ccgo_ts+825, VaList(bp+40, bp, bp+uintptr(1)*4, bp+uintptr(2)*4, bp+uintptr(3)*4, bp+uintptr(4)*4, bp+uintptr(5)*4, bp+uintptr(6)*4, bp+uintptr(7)*4, mnt+32, mnt+36)) + } + *(*uint8)(unsafe.Pointer(linebuf + uintptr((*(*[8]int32)(unsafe.Pointer(bp)))[int32(1)]))) = uint8(0) + *(*uint8)(unsafe.Pointer(linebuf + uintptr((*(*[8]int32)(unsafe.Pointer(bp)))[int32(3)]))) = uint8(0) + *(*uint8)(unsafe.Pointer(linebuf + uintptr((*(*[8]int32)(unsafe.Pointer(bp)))[int32(5)]))) = uint8(0) + *(*uint8)(unsafe.Pointer(linebuf + uintptr((*(*[8]int32)(unsafe.Pointer(bp)))[int32(7)]))) = uint8(0) + (*Tmntent)(unsafe.Pointer(mnt)).Fmnt_fsname = _unescape_ent(tls, linebuf+uintptr((*(*[8]int32)(unsafe.Pointer(bp)))[0])) + (*Tmntent)(unsafe.Pointer(mnt)).Fmnt_dir = _unescape_ent(tls, linebuf+uintptr((*(*[8]int32)(unsafe.Pointer(bp)))[int32(2)])) + (*Tmntent)(unsafe.Pointer(mnt)).Fmnt_type = _unescape_ent(tls, linebuf+uintptr((*(*[8]int32)(unsafe.Pointer(bp)))[int32(4)])) + (*Tmntent)(unsafe.Pointer(mnt)).Fmnt_opts = _unescape_ent(tls, linebuf+uintptr((*(*[8]int32)(unsafe.Pointer(bp)))[int32(6)])) + return mnt +} + +func Xgetmntent(tls *TLS, f uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xgetmntent_r(tls, f, uintptr(unsafe.Pointer(&_mnt)), uintptr(unsafe.Pointer(&_internal_buf)), 0) +} + +var _mnt Tmntent + +func Xaddmntent(tls *TLS, f uintptr, mnt uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v mnt=%v, (%v:)", tls, f, mnt, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(64) + defer tls.Free(64) + if Xfseek(tls, f, 0, int32(2)) != 0 { + return int32(1) + } + return BoolInt32(Xfprintf(tls, f, __ccgo_ts+880, VaList(bp+8, (*Tmntent)(unsafe.Pointer(mnt)).Fmnt_fsname, (*Tmntent)(unsafe.Pointer(mnt)).Fmnt_dir, (*Tmntent)(unsafe.Pointer(mnt)).Fmnt_type, (*Tmntent)(unsafe.Pointer(mnt)).Fmnt_opts, (*Tmntent)(unsafe.Pointer(mnt)).Fmnt_freq, (*Tmntent)(unsafe.Pointer(mnt)).Fmnt_passno)) < 0) +} + +func Xhasmntopt(tls *TLS, mnt uintptr, opt uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v mnt=%v opt=%v, (%v:)", tls, mnt, opt, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrstr(tls, (*Tmntent)(unsafe.Pointer(mnt)).Fmnt_opts, opt) +} + +type Thistory = struct { + Fchain uintptr + Fdev Tdev_t + Fino Tino_t + Flevel int32 + Fbase int32 +} + +func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h uintptr) (r1 int32) { + bp := tls.Alloc(176) + defer tls.Free(176) + var d, de, v10 uintptr + var dfd, err, r, type1, v11, v12, v3, v4, v7 int32 + var j, k, l Tsize_t + var v1 uint64 + var v13, v8 bool + var v2 Tino_t + var _ /* lev at bp+160 */ TFTW + var _ /* new at bp+128 */ Thistory + var _ /* st at bp+0 */ Tstat + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = d, de, dfd, err, j, k, l, r, type1, v1, v10, v11, v12, v13, v2, v3, v4, v7, v8 + l = Xstrlen(tls, path) + if l != 0 && int32(*(*uint8)(unsafe.Pointer(path + uintptr(l-uint64(1))))) == int32('/') { + v1 = l - uint64(1) + } else { + v1 = l + } + j = v1 + v2 = Uint64FromInt32(0) + (*(*Tstat)(unsafe.Pointer(bp))).Fst_ino = v2 + (*(*Tstat)(unsafe.Pointer(bp))).Fst_dev = v2 + if flags&int32(FTW_PHYS) != 0 { + v3 = Xlstat(tls, path, bp) + } else { + v3 = BoolInt32(Xstat(tls, path, bp) < 0) + } + if v3 != 0 { + if !(flags&Int32FromInt32(FTW_PHYS) != 0) && *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(ENOENT) && !(Xlstat(tls, path, bp) != 0) { + type1 = int32(FTW_SLN) + } else { + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(EACCES) { + return -int32(1) + } else { + type1 = int32(FTW_NS) + } + } + } else { + if (*(*Tstat)(unsafe.Pointer(bp))).Fst_mode&uint32(S_IFMT) == uint32(S_IFDIR) { + if flags&int32(FTW_DEPTH) != 0 { + type1 = int32(FTW_DP) + } else { + type1 = int32(FTW_D) + } + } else { + if (*(*Tstat)(unsafe.Pointer(bp))).Fst_mode&uint32(S_IFMT) == uint32(S_IFLNK) { + if flags&int32(FTW_PHYS) != 0 { + type1 = int32(FTW_SL) + } else { + type1 = int32(FTW_SLN) + } + } else { + type1 = int32(FTW_F) + } + } + } + if flags&int32(FTW_MOUNT) != 0 && h != 0 && type1 != int32(FTW_NS) && (*(*Tstat)(unsafe.Pointer(bp))).Fst_dev != (*Thistory)(unsafe.Pointer(h)).Fdev { + return 0 + } + (*(*Thistory)(unsafe.Pointer(bp + 128))).Fchain = h + (*(*Thistory)(unsafe.Pointer(bp + 128))).Fdev = (*(*Tstat)(unsafe.Pointer(bp))).Fst_dev + (*(*Thistory)(unsafe.Pointer(bp + 128))).Fino = (*(*Tstat)(unsafe.Pointer(bp))).Fst_ino + if h != 0 { + v4 = (*Thistory)(unsafe.Pointer(h)).Flevel + int32(1) + } else { + v4 = 0 + } + (*(*Thistory)(unsafe.Pointer(bp + 128))).Flevel = v4 + (*(*Thistory)(unsafe.Pointer(bp + 128))).Fbase = int32(j + uint64(1)) + (*(*TFTW)(unsafe.Pointer(bp + 160))).Flevel = (*(*Thistory)(unsafe.Pointer(bp + 128))).Flevel + if h != 0 { + (*(*TFTW)(unsafe.Pointer(bp + 160))).Fbase = (*Thistory)(unsafe.Pointer(h)).Fbase + } else { + k = j + for { + if !(k != 0 && int32(*(*uint8)(unsafe.Pointer(path + uintptr(k)))) == int32('/')) { + break + } + goto _5 + _5: + ; + k-- + } + for { + if !(k != 0 && int32(*(*uint8)(unsafe.Pointer(path + uintptr(k-uint64(1))))) != int32('/')) { + break + } + goto _6 + _6: + ; + k-- + } + (*(*TFTW)(unsafe.Pointer(bp + 160))).Fbase = int32(k) + } + if type1 == int32(FTW_D) || type1 == int32(FTW_DP) { + dfd = Xopen(tls, path, O_RDONLY, 0) + err = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + if dfd < 0 && err == int32(EACCES) { + type1 = int32(FTW_DNR) + } + if !(fd_limit != 0) { + Xclose(tls, dfd) + } + } + if v8 = !(flags&Int32FromInt32(FTW_DEPTH) != 0); v8 { + v7 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{fn})))(tls, path, bp, type1, bp+160) + r = v7 + } + if v8 && v7 != 0 { + return r + } + for { + if !(h != 0) { + break + } + if (*Thistory)(unsafe.Pointer(h)).Fdev == (*(*Tstat)(unsafe.Pointer(bp))).Fst_dev && (*Thistory)(unsafe.Pointer(h)).Fino == (*(*Tstat)(unsafe.Pointer(bp))).Fst_ino { + return 0 + } + goto _9 + _9: + ; + h = (*Thistory)(unsafe.Pointer(h)).Fchain + } + if (type1 == int32(FTW_D) || type1 == int32(FTW_DP)) && fd_limit != 0 { + if dfd < 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = err + return -int32(1) + } + d = Xfdopendir(tls, dfd) + if d != 0 { + for { + v10 = Xreaddir(tls, d) + de = v10 + if !(v10 != 0) { + break + } + if int32(*(*uint8)(unsafe.Pointer(de + 19))) == int32('.') && (!(*(*uint8)(unsafe.Pointer(de + 19 + 1)) != 0) || int32(*(*uint8)(unsafe.Pointer(de + 19 + 1))) == int32('.') && !(*(*uint8)(unsafe.Pointer(de + 19 + 2)) != 0)) { + continue + } + if Xstrlen(tls, de+19) >= uint64(PATH_MAX)-l { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENAMETOOLONG) + Xclosedir(tls, d) + return -int32(1) + } + *(*uint8)(unsafe.Pointer(path + uintptr(j))) = uint8('/') + Xstrcpy(tls, path+uintptr(j)+uintptr(1), de+19) + v11 = _do_nftw(tls, path, fn, fd_limit-int32(1), flags, bp+128) + r = v11 + if v11 != 0 { + Xclosedir(tls, d) + return r + } + } + Xclosedir(tls, d) + } else { + Xclose(tls, dfd) + return -int32(1) + } + } + *(*uint8)(unsafe.Pointer(path + uintptr(l))) = uint8(0) + if v13 = flags&int32(FTW_DEPTH) != 0; v13 { + v12 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{fn})))(tls, path, bp, type1, bp+160) + r = v12 + } + if v13 && v12 != 0 { + return r + } + return 0 +} + +func Xnftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v path=%v fn=%v fd_limit=%v flags=%v, (%v:)", tls, path, fn, fd_limit, flags, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(4112) + defer tls.Free(4112) + var l Tsize_t + var r int32 + var _ /* cs at bp+0 */ int32 + var _ /* pathbuf at bp+4 */ [4097]uint8 + _, _ = l, r + if fd_limit <= 0 { + return 0 + } + l = Xstrlen(tls, path) + if l > uint64(PATH_MAX) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENAMETOOLONG) + return -int32(1) + } + Xmemcpy(tls, bp+4, path, l+uint64(1)) + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp) + r = _do_nftw(tls, bp+4, fn, fd_limit, flags, UintptrFromInt32(0)) + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) + return r +} + +/* Nonstandard, but vastly superior to the standard functions */ + +func Xopenpty(tls *TLS, pm uintptr, ps uintptr, name uintptr, tio uintptr, ws uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v pm=%v ps=%v name=%v tio=%v ws=%v, (%v:)", tls, pm, ps, name, tio, ws, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(48) + defer tls.Free(48) + var m, s, v1 int32 + var _ /* buf at bp+8 */ [20]uint8 + var _ /* cs at bp+4 */ int32 + var _ /* n at bp+0 */ int32 + _, _, _ = m, s, v1 + *(*int32)(unsafe.Pointer(bp)) = 0 + m = Xopen(tls, __ccgo_ts+899, Int32FromInt32(O_RDWR)|Int32FromInt32(O_NOCTTY), 0) + if m < 0 { + return -int32(1) + } + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp+4) + if Xioctl(tls, m, int32(TIOCSPTLCK), VaList(bp+40, bp)) != 0 || Xioctl(tls, m, Int32FromUint32(TIOCGPTN), VaList(bp+40, bp)) != 0 { + goto fail + } + if !(name != 0) { + name = bp + 8 + } + Xsnprintf(tls, name, uint64(20), __ccgo_ts+909, VaList(bp+40, *(*int32)(unsafe.Pointer(bp)))) + v1 = Xopen(tls, name, Int32FromInt32(O_RDWR)|Int32FromInt32(O_NOCTTY), 0) + s = v1 + if v1 < 0 { + goto fail + } + if tio != 0 { + Xtcsetattr(tls, s, TCSANOW, tio) + } + if ws != 0 { + Xioctl(tls, s, int32(TIOCSWINSZ), VaList(bp+40, ws)) + } + *(*int32)(unsafe.Pointer(pm)) = m + *(*int32)(unsafe.Pointer(ps)) = s + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 4)), uintptr(0)) + return 0 + goto fail +fail: + ; + Xclose(tls, m) + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 4)), uintptr(0)) + return -int32(1) +} + +func Xptsname(tls *TLS, fd int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + var err int32 + _ = err + err = X__ptsname_r(tls, fd, uintptr(unsafe.Pointer(&_buf2)), uint64(22)) + if err != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = err + return uintptr(0) + } + return uintptr(unsafe.Pointer(&_buf2)) +} + +var _buf2 [22]uint8 + +func Xposix_openpt(tls *TLS, flags int32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v flags=%v, (%v:)", tls, flags, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r int32 + _ = r + r = Xopen(tls, __ccgo_ts+899, flags, 0) + if r < 0 && *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(ENOSPC) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EAGAIN) + } + return r +} + +func Xgrantpt(tls *TLS, fd int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + return 0 +} + +func Xunlockpt(tls *TLS, fd int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var _ /* unlock at bp+0 */ int32 + *(*int32)(unsafe.Pointer(bp)) = 0 + return Xioctl(tls, fd, int32(TIOCSPTLCK), VaList(bp+16, bp)) +} + +func X__ptsname_r(tls *TLS, fd int32, buf uintptr, len1 Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v buf=%v len1=%v, (%v:)", tls, fd, buf, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var err, v1 int32 + var _ /* pty at bp+0 */ int32 + _, _ = err, v1 + if !(buf != 0) { + len1 = uint64(0) + } + v1 = int32(X__syscall3(tls, int64(SYS_ioctl), int64(fd), int64(Uint32FromUint32(TIOCGPTN)), int64(bp))) + err = v1 + if v1 != 0 { + return -err + } + if uint64(Xsnprintf(tls, buf, len1, __ccgo_ts+909, VaList(bp+16, *(*int32)(unsafe.Pointer(bp))))) >= len1 { + return int32(ERANGE) + } + return 0 +} + +func Xptsname_r(tls *TLS, fd int32, buf uintptr, len1 Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v buf=%v len1=%v, (%v:)", tls, fd, buf, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__ptsname_r(tls, fd, buf, len1) +} + +func _slash_len(tls *TLS, s uintptr) (r Tsize_t) { + var s0 uintptr + _ = s0 + s0 = s + for int32(*(*uint8)(unsafe.Pointer(s))) == int32('/') { + s++ + } + return uint64(int64(s) - int64(s0)) +} + +func Xrealpath(tls *TLS, filename uintptr, resolved uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v filename=%v resolved=%v, (%v:)", tls, filename, resolved, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(8208) + defer tls.Free(8208) + var check_dir, up int32 + var cnt, l, l0, nup, p, q, v10, v11, v4, v5, v6, v7, v9 Tsize_t + var k Tssize_t + var z uintptr + var _ /* output at bp+4097 */ [4096]uint8 + var _ /* stack at bp+0 */ [4097]uint8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = check_dir, cnt, k, l, l0, nup, p, q, up, z, v10, v11, v4, v5, v6, v7, v9 + cnt = uint64(0) + nup = uint64(0) + check_dir = 0 + if !(filename != 0) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return uintptr(0) + } + l = Xstrnlen(tls, filename, uint64(4097)) + if !(l != 0) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOENT) + return uintptr(0) + } + if l >= uint64(PATH_MAX) { + goto toolong + } + p = uint64(4097) - l - uint64(1) + q = uint64(0) + Xmemcpy(tls, bp+uintptr(p), filename, l+uint64(1)) + /* Main loop. Each iteration pops the next part from stack of + * remaining path components and consumes any slashes that follow. + * If not a link, it's moved to output; if a link, contents are + * pushed to the stack. */ + goto restart +restart: + ; +_3: + ; + /* If stack starts with /, the whole component is / or // + * and the output state must be reset. */ + if int32((*(*[4097]uint8)(unsafe.Pointer(bp)))[p]) == int32('/') { + check_dir = 0 + nup = uint64(0) + q = uint64(0) + v4 = q + q++ + (*(*[4096]uint8)(unsafe.Pointer(bp + 4097)))[v4] = uint8('/') + p++ + /* Initial // is special. */ + if int32((*(*[4097]uint8)(unsafe.Pointer(bp)))[p]) == int32('/') && int32((*(*[4097]uint8)(unsafe.Pointer(bp)))[p+uint64(1)]) != int32('/') { + v5 = q + q++ + (*(*[4096]uint8)(unsafe.Pointer(bp + 4097)))[v5] = uint8('/') + } + goto _2 + } + z = X__strchrnul(tls, bp+uintptr(p), int32('/')) + v6 = uint64(int64(z) - int64(bp+uintptr(p))) + l = v6 + l0 = v6 + if !(l != 0) && !(check_dir != 0) { + goto _1 + } + /* Skip any . component but preserve check_dir status. */ + if l == uint64(1) && int32((*(*[4097]uint8)(unsafe.Pointer(bp)))[p]) == int32('.') { + p += l + goto _2 + } + /* Copy next component onto output at least temporarily, to + * call readlink, but wait to advance output position until + * determining it's not a link. */ + if q != 0 && int32((*(*[4096]uint8)(unsafe.Pointer(bp + 4097)))[q-uint64(1)]) != int32('/') { + if !(p != 0) { + goto toolong + } + p-- + v7 = p + (*(*[4097]uint8)(unsafe.Pointer(bp)))[v7] = uint8('/') + l++ + } + if q+l >= uint64(PATH_MAX) { + goto toolong + } + Xmemcpy(tls, bp+4097+uintptr(q), bp+uintptr(p), l) + (*(*[4096]uint8)(unsafe.Pointer(bp + 4097)))[q+l] = uint8(0) + p += l + up = 0 + if l0 == uint64(2) && int32((*(*[4097]uint8)(unsafe.Pointer(bp)))[p-uint64(2)]) == int32('.') && int32((*(*[4097]uint8)(unsafe.Pointer(bp)))[p-uint64(1)]) == int32('.') { + up = int32(1) + /* Any non-.. path components we could cancel start + * after nup repetitions of the 3-byte string "../"; + * if there are none, accumulate .. components to + * later apply to cwd, if needed. */ + if q <= uint64(3)*nup { + nup++ + q += l + goto _2 + } + /* When previous components are already known to be + * directories, processing .. can skip readlink. */ + if !(check_dir != 0) { + goto skip_readlink + } + } + k = Xreadlink(tls, bp+4097, bp, p) + if uint64(k) == p { + goto toolong + } + if !(k != 0) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOENT) + return uintptr(0) + } + if !(k < 0) { + goto _8 + } + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(EINVAL) { + return uintptr(0) + } + goto skip_readlink +skip_readlink: + ; + check_dir = 0 + if up != 0 { + for q != 0 && int32((*(*[4096]uint8)(unsafe.Pointer(bp + 4097)))[q-uint64(1)]) != int32('/') { + q-- + } + if q > uint64(1) && (q > uint64(2) || int32((*(*[4096]uint8)(unsafe.Pointer(bp + 4097)))[0]) != int32('/')) { + q-- + } + goto _2 + } + if l0 != 0 { + q += l + } + check_dir = int32((*(*[4097]uint8)(unsafe.Pointer(bp)))[p]) + goto _2 +_8: + ; + cnt++ + v9 = cnt + if v9 == uint64(SYMLOOP_MAX) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ELOOP) + return uintptr(0) + } + /* If link contents end in /, strip any slashes already on + * stack to avoid /->// or //->/// or spurious toolong. */ + if int32((*(*[4097]uint8)(unsafe.Pointer(bp)))[k-int64(1)]) == int32('/') { + for int32((*(*[4097]uint8)(unsafe.Pointer(bp)))[p]) == int32('/') { + p++ + } + } + p -= uint64(k) + Xmemmove(tls, bp+uintptr(p), bp, uint64(k)) + /* Skip the stack advancement in case we have a new + * absolute base path. */ + goto restart + goto _2 +_2: + ; + p += _slash_len(tls, bp+uintptr(p)) + goto _3 + goto _1 +_1: + ; + (*(*[4096]uint8)(unsafe.Pointer(bp + 4097)))[q] = uint8(0) + if int32((*(*[4096]uint8)(unsafe.Pointer(bp + 4097)))[0]) != int32('/') { + if !(Xgetcwd(tls, bp, uint64(4097)) != 0) { + return uintptr(0) + } + l = Xstrlen(tls, bp) + /* Cancel any initial .. components. */ + p = uint64(0) + for { + v10 = nup + nup-- + if !(v10 != 0) { + break + } + for l > uint64(1) && int32((*(*[4097]uint8)(unsafe.Pointer(bp)))[l-uint64(1)]) != int32('/') { + l-- + } + if l > uint64(1) { + l-- + } + p += uint64(2) + if p < q { + p++ + } + } + if q-p != 0 && int32((*(*[4097]uint8)(unsafe.Pointer(bp)))[l-uint64(1)]) != int32('/') { + v11 = l + l++ + (*(*[4097]uint8)(unsafe.Pointer(bp)))[v11] = uint8('/') + } + if l+(q-p)+uint64(1) >= uint64(PATH_MAX) { + goto toolong + } + Xmemmove(tls, bp+4097+uintptr(l), bp+4097+uintptr(p), q-p+uint64(1)) + Xmemcpy(tls, bp+4097, bp, l) + q = l + q - p + } + if resolved != 0 { + return Xmemcpy(tls, resolved, bp+4097, q+uint64(1)) + } else { + return Xstrdup(tls, bp+4097) + } + goto toolong +toolong: + ; + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENAMETOOLONG) + return uintptr(0) +} + +func Xsetdomainname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v name=%v len1=%v, (%v:)", tls, name, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_setdomainname), int64(name), int64(len1))))) +} + +func Xsetpriority(tls *TLS, which int32, who Tid_t, prio int32) (r int32) { + if __ccgo_strace { + trc("tls=%v which=%v who=%v prio=%v, (%v:)", tls, which, who, prio, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_setpriority), int64(which), int64(who), int64(prio))))) +} + +type Tctx = struct { + Flim [2]uint64 + Fres int32 + Ferr int32 +} + +func _do_setrlimit(tls *TLS, p uintptr) { + var c uintptr + _ = c + c = p + if (*Tctx)(unsafe.Pointer(c)).Ferr > 0 { + return + } + (*Tctx)(unsafe.Pointer(c)).Ferr = int32(-X__syscall2(tls, int64(SYS_setrlimit), int64((*Tctx)(unsafe.Pointer(c)).Fres), int64(c))) +} + +func Xsetrlimit(tls *TLS, resource int32, rlim uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v resource=%v rlim=%v, (%v:)", tls, resource, rlim, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(48) + defer tls.Free(48) + var ret int32 + var v1, v2 uint64 + var _ /* c at bp+16 */ Tctx + var _ /* tmp at bp+0 */ Trlimit + _, _, _ = ret, v1, v2 + if ^Uint64FromUint64(0) != ^Uint64FromUint64(0) { + *(*Trlimit)(unsafe.Pointer(bp)) = *(*Trlimit)(unsafe.Pointer(rlim)) + if (*(*Trlimit)(unsafe.Pointer(bp))).Frlim_cur >= ^Uint64FromUint64(0) { + (*(*Trlimit)(unsafe.Pointer(bp))).Frlim_cur = ^Uint64FromUint64(0) + } + if (*(*Trlimit)(unsafe.Pointer(bp))).Frlim_max >= ^Uint64FromUint64(0) { + (*(*Trlimit)(unsafe.Pointer(bp))).Frlim_max = ^Uint64FromUint64(0) + } + rlim = bp + } + ret = int32(X__syscall4(tls, int64(SYS_prlimit64), int64(Int32FromInt32(0)), int64(resource), int64(rlim), int64(Int32FromInt32(0)))) + if ret != -int32(ENOSYS) { + return int32(X__syscall_ret(tls, uint64(ret))) + } + if (*Trlimit)(unsafe.Pointer(rlim)).Frlim_cur < ^Uint64FromUint64(0) { + v1 = (*Trlimit)(unsafe.Pointer(rlim)).Frlim_cur + } else { + v1 = ^Uint64FromUint64(0) + } + if (*Trlimit)(unsafe.Pointer(rlim)).Frlim_max < ^Uint64FromUint64(0) { + v2 = (*Trlimit)(unsafe.Pointer(rlim)).Frlim_max + } else { + v2 = ^Uint64FromUint64(0) + } + *(*Tctx)(unsafe.Pointer(bp + 16)) = Tctx{ + Flim: [2]uint64{ + 0: v1, + 1: v2, + }, + Fres: resource, + Ferr: -int32(1), + } + ___synccall(tls, __ccgo_fp(_do_setrlimit), bp+16) + if (*(*Tctx)(unsafe.Pointer(bp + 16))).Ferr != 0 { + if (*(*Tctx)(unsafe.Pointer(bp + 16))).Ferr > 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = (*(*Tctx)(unsafe.Pointer(bp + 16))).Ferr + } + return -int32(1) + } + return 0 +} + +func Xsyscall(tls *TLS, n int64, va uintptr) (r int64) { + if __ccgo_strace { + trc("tls=%v n=%v va=%v, (%v:)", tls, n, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var a, b, c, d, e, f Tsyscall_arg_t + var ap Tva_list + _, _, _, _, _, _, _ = a, ap, b, c, d, e, f + ap = va + a = VaInt64(&ap) + b = VaInt64(&ap) + c = VaInt64(&ap) + d = VaInt64(&ap) + e = VaInt64(&ap) + f = VaInt64(&ap) + _ = ap + return X__syscall_ret(tls, uint64(X__syscall6(tls, n, a, b, c, d, e, f))) +} + +const AF_ALG = 38 +const AF_APPLETALK = 5 +const AF_ASH = 18 +const AF_ATMPVC = 8 +const AF_ATMSVC = 20 +const AF_AX25 = 3 +const AF_BLUETOOTH = 31 +const AF_BRIDGE = 7 +const AF_CAIF = 37 +const AF_CAN = 29 +const AF_DECnet = 12 +const AF_ECONET = 19 +const AF_FILE = 1 +const AF_IB = 27 +const AF_IEEE802154 = 36 +const AF_INET = 2 +const AF_INET6 = 10 +const AF_IPX = 4 +const AF_IRDA = 23 +const AF_ISDN = 34 +const AF_IUCV = 32 +const AF_KCM = 41 +const AF_KEY = 15 +const AF_LLC = 26 +const AF_LOCAL = 1 +const AF_MAX = 45 +const AF_MPLS = 28 +const AF_NETBEUI = 13 +const AF_NETLINK = 16 +const AF_NETROM = 6 +const AF_NFC = 39 +const AF_PACKET = 17 +const AF_PHONET = 35 +const AF_PPPOX = 24 +const AF_QIPCRTR = 42 +const AF_RDS = 21 +const AF_ROSE = 11 +const AF_ROUTE = 16 +const AF_RXRPC = 33 +const AF_SECURITY = 14 +const AF_SMC = 43 +const AF_SNA = 22 +const AF_TIPC = 30 +const AF_UNIX = 1 +const AF_UNSPEC = 0 +const AF_VSOCK = 40 +const AF_WANPIPE = 25 +const AF_X25 = 9 +const AF_XDP = 44 +const LOG_ALERT = 1 +const LOG_AUTH = 32 +const LOG_AUTHPRIV = 80 +const LOG_CONS = 2 +const LOG_CRIT = 2 +const LOG_CRON = 72 +const LOG_DAEMON = 24 +const LOG_DEBUG = 7 +const LOG_EMERG = 0 +const LOG_ERR = 3 +const LOG_FACMASK = 1016 +const LOG_FTP = 88 +const LOG_INFO = 6 +const LOG_KERN = 0 +const LOG_LOCAL0 = 128 +const LOG_LOCAL1 = 136 +const LOG_LOCAL2 = 144 +const LOG_LOCAL3 = 152 +const LOG_LOCAL4 = 160 +const LOG_LOCAL5 = 168 +const LOG_LOCAL6 = 176 +const LOG_LOCAL7 = 184 +const LOG_LPR = 48 +const LOG_MAIL = 16 +const LOG_NDELAY = 8 +const LOG_NEWS = 56 +const LOG_NFACILITIES = 24 +const LOG_NOTICE = 5 +const LOG_NOWAIT = 16 +const LOG_ODELAY = 4 +const LOG_PERROR = 32 +const LOG_PID = 1 +const LOG_PRIMASK = 7 +const LOG_SYSLOG = 40 +const LOG_USER = 8 +const LOG_UUCP = 64 +const LOG_WARNING = 4 +const MSG_BATCH = 262144 +const MSG_CMSG_CLOEXEC = 1073741824 +const MSG_CONFIRM = 2048 +const MSG_CTRUNC = 8 +const MSG_DONTROUTE = 4 +const MSG_DONTWAIT = 64 +const MSG_EOR = 128 +const MSG_ERRQUEUE = 8192 +const MSG_FASTOPEN = 536870912 +const MSG_FIN = 512 +const MSG_MORE = 32768 +const MSG_NOSIGNAL = 16384 +const MSG_OOB = 1 +const MSG_PEEK = 2 +const MSG_PROXY = 16 +const MSG_RST = 4096 +const MSG_SYN = 1024 +const MSG_TRUNC = 32 +const MSG_WAITALL = 256 +const MSG_WAITFORONE = 65536 +const MSG_ZEROCOPY = 67108864 +const PF_ALG = 38 +const PF_APPLETALK = 5 +const PF_ASH = 18 +const PF_ATMPVC = 8 +const PF_ATMSVC = 20 +const PF_AX25 = 3 +const PF_BLUETOOTH = 31 +const PF_BRIDGE = 7 +const PF_CAIF = 37 +const PF_CAN = 29 +const PF_DECnet = 12 +const PF_ECONET = 19 +const PF_FILE = 1 +const PF_IB = 27 +const PF_IEEE802154 = 36 +const PF_INET = 2 +const PF_INET6 = 10 +const PF_IPX = 4 +const PF_IRDA = 23 +const PF_ISDN = 34 +const PF_IUCV = 32 +const PF_KCM = 41 +const PF_KEY = 15 +const PF_LLC = 26 +const PF_LOCAL = 1 +const PF_MAX = 45 +const PF_MPLS = 28 +const PF_NETBEUI = 13 +const PF_NETLINK = 16 +const PF_NETROM = 6 +const PF_NFC = 39 +const PF_PACKET = 17 +const PF_PHONET = 35 +const PF_PPPOX = 24 +const PF_QIPCRTR = 42 +const PF_RDS = 21 +const PF_ROSE = 11 +const PF_ROUTE = 16 +const PF_RXRPC = 33 +const PF_SECURITY = 14 +const PF_SMC = 43 +const PF_SNA = 22 +const PF_TIPC = 30 +const PF_UNIX = 1 +const PF_UNSPEC = 0 +const PF_VSOCK = 40 +const PF_WANPIPE = 25 +const PF_X25 = 9 +const PF_XDP = 44 +const SCM_CREDENTIALS = 2 +const SCM_RIGHTS = 1 +const SCM_TIMESTAMP = 29 +const SCM_TIMESTAMPING = 37 +const SCM_TIMESTAMPING_OPT_STATS = 54 +const SCM_TIMESTAMPING_PKTINFO = 58 +const SCM_TIMESTAMPNS = 35 +const SCM_TXTIME = 61 +const SCM_WIFI_STATUS = 41 +const SHUT_RD = 0 +const SHUT_RDWR = 2 +const SHUT_WR = 1 +const SOCK_CLOEXEC = 524288 +const SOCK_DCCP = 6 +const SOCK_DGRAM = 2 +const SOCK_NONBLOCK = 2048 +const SOCK_PACKET = 10 +const SOCK_RAW = 3 +const SOCK_RDM = 4 +const SOCK_SEQPACKET = 5 +const SOCK_STREAM = 1 +const SOL_AAL = 265 +const SOL_ALG = 279 +const SOL_ATM = 264 +const SOL_BLUETOOTH = 274 +const SOL_CAIF = 278 +const SOL_DCCP = 269 +const SOL_DECNET = 261 +const SOL_ICMPV6 = 58 +const SOL_IP = 0 +const SOL_IPV6 = 41 +const SOL_IRDA = 266 +const SOL_IUCV = 277 +const SOL_KCM = 281 +const SOL_LLC = 268 +const SOL_NETBEUI = 267 +const SOL_NETLINK = 270 +const SOL_NFC = 280 +const SOL_PACKET = 263 +const SOL_PNPIPE = 275 +const SOL_PPPOL2TP = 273 +const SOL_RAW = 255 +const SOL_RDS = 276 +const SOL_RXRPC = 272 +const SOL_SOCKET = 1 +const SOL_TIPC = 271 +const SOL_TLS = 282 +const SOL_X25 = 262 +const SOL_XDP = 283 +const SOMAXCONN = 128 +const SO_ACCEPTCONN = 30 +const SO_ATTACH_BPF = 50 +const SO_ATTACH_FILTER = 26 +const SO_ATTACH_REUSEPORT_CBPF = 51 +const SO_ATTACH_REUSEPORT_EBPF = 52 +const SO_BINDTODEVICE = 25 +const SO_BINDTOIFINDEX = 62 +const SO_BPF_EXTENSIONS = 48 +const SO_BROADCAST = 6 +const SO_BSDCOMPAT = 14 +const SO_BUSY_POLL = 46 +const SO_BUSY_POLL_BUDGET = 70 +const SO_CNX_ADVICE = 53 +const SO_COOKIE = 57 +const SO_DEBUG = 1 +const SO_DETACH_BPF = 27 +const SO_DETACH_FILTER = 27 +const SO_DETACH_REUSEPORT_BPF = 68 +const SO_DOMAIN = 39 +const SO_DONTROUTE = 5 +const SO_ERROR = 4 +const SO_GET_FILTER = 26 +const SO_INCOMING_CPU = 49 +const SO_INCOMING_NAPI_ID = 56 +const SO_KEEPALIVE = 9 +const SO_LINGER = 13 +const SO_LOCK_FILTER = 44 +const SO_MARK = 36 +const SO_MAX_PACING_RATE = 47 +const SO_MEMINFO = 55 +const SO_NOFCS = 43 +const SO_NO_CHECK = 11 +const SO_OOBINLINE = 10 +const SO_PASSCRED = 16 +const SO_PASSSEC = 34 +const SO_PEEK_OFF = 42 +const SO_PEERCRED = 17 +const SO_PEERGROUPS = 59 +const SO_PEERNAME = 28 +const SO_PEERSEC = 31 +const SO_PREFER_BUSY_POLL = 69 +const SO_PRIORITY = 12 +const SO_PROTOCOL = 38 +const SO_RCVBUF = 8 +const SO_RCVBUFFORCE = 33 +const SO_RCVLOWAT = 18 +const SO_RCVTIMEO = 20 +const SO_REUSEADDR = 2 +const SO_REUSEPORT = 15 +const SO_RXQ_OVFL = 40 +const SO_SECURITY_AUTHENTICATION = 22 +const SO_SECURITY_ENCRYPTION_NETWORK = 24 +const SO_SECURITY_ENCRYPTION_TRANSPORT = 23 +const SO_SELECT_ERR_QUEUE = 45 +const SO_SNDBUF = 7 +const SO_SNDBUFFORCE = 32 +const SO_SNDLOWAT = 19 +const SO_SNDTIMEO = 21 +const SO_TIMESTAMP = 29 +const SO_TIMESTAMPING = 37 +const SO_TIMESTAMPNS = 35 +const SO_TXTIME = 61 +const SO_TYPE = 3 +const SO_WIFI_STATUS = 41 +const SO_ZEROCOPY = 60 + +type Tsocklen_t = uint32 + +type Tsa_family_t = uint16 + +type Tmsghdr = struct { + Fmsg_name uintptr + Fmsg_namelen Tsocklen_t + Fmsg_iov uintptr + Fmsg_iovlen int32 + F__pad1 int32 + Fmsg_control uintptr + Fmsg_controllen Tsocklen_t + F__pad2 int32 + Fmsg_flags int32 +} + +type Tcmsghdr = struct { + Fcmsg_len Tsocklen_t + F__pad1 int32 + Fcmsg_level int32 + Fcmsg_type int32 +} + +type Tlinger = struct { + Fl_onoff int32 + Fl_linger int32 +} + +type Tsockaddr = struct { + Fsa_family Tsa_family_t + Fsa_data [14]uint8 +} + +type Tsockaddr_storage = struct { + Fss_family Tsa_family_t + F__ss_padding [118]uint8 + F__ss_align uint64 +} + +type t__ucontext2 = Tucontext_t2 + +var _lock2 [1]int32 +var _log_ident [32]uint8 +var _log_opt int32 +var _log_facility = Int32FromInt32(1) << Int32FromInt32(3) +var _log_mask = int32(0xff) +var _log_fd = -int32(1) + +func Xsetlogmask(tls *TLS, maskpri int32) (r int32) { + if __ccgo_strace { + trc("tls=%v maskpri=%v, (%v:)", tls, maskpri, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ret int32 + _ = ret + ___lock(tls, uintptr(unsafe.Pointer(&_lock2))) + ret = _log_mask + if maskpri != 0 { + _log_mask = maskpri + } + ___unlock(tls, uintptr(unsafe.Pointer(&_lock2))) + return ret +} + +var _log_addr = struct { + Fsun_family int16 + Fsun_path [9]uint8 +}{ + Fsun_family: int16(PF_LOCAL), + Fsun_path: [9]uint8{'/', 'd', 'e', 'v', '/', 'l', 'o', 'g'}, +} + +func Xcloselog(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* cs at bp+0 */ int32 + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp) + ___lock(tls, uintptr(unsafe.Pointer(&_lock2))) + Xclose(tls, _log_fd) + _log_fd = -int32(1) + ___unlock(tls, uintptr(unsafe.Pointer(&_lock2))) + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) +} + +func ___openlog(tls *TLS) { + _log_fd = Xsocket(tls, int32(PF_LOCAL), Int32FromInt32(SOCK_DGRAM)|Int32FromInt32(SOCK_CLOEXEC), 0) + if _log_fd >= 0 { + Xconnect(tls, _log_fd, uintptr(unsafe.Pointer(&_log_addr)), uint32(12)) + } +} + +func Xopenlog(tls *TLS, ident uintptr, opt int32, facility int32) { + if __ccgo_strace { + trc("tls=%v ident=%v opt=%v facility=%v, (%v:)", tls, ident, opt, facility, origin(2)) + } + bp := tls.Alloc(16) + defer tls.Free(16) + var n Tsize_t + var _ /* cs at bp+0 */ int32 + _ = n + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp) + ___lock(tls, uintptr(unsafe.Pointer(&_lock2))) + if ident != 0 { + n = Xstrnlen(tls, ident, Uint64FromInt64(32)-Uint64FromInt32(1)) + Xmemcpy(tls, uintptr(unsafe.Pointer(&_log_ident)), ident, n) + _log_ident[n] = uint8(0) + } else { + _log_ident[0] = uint8(0) + } + _log_opt = opt + _log_facility = facility + if opt&int32(LOG_NDELAY) != 0 && _log_fd < 0 { + ___openlog(tls) + } + ___unlock(tls, uintptr(unsafe.Pointer(&_lock2))) + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) +} + +func _is_lost_conn(tls *TLS, e int32) (r int32) { + return BoolInt32(e == int32(ECONNREFUSED) || e == int32(ECONNRESET) || e == int32(ENOTCONN) || e == int32(EPIPE)) +} + +func __vsyslog(tls *TLS, priority int32, message uintptr, ap Tva_list) { + bp := tls.Alloc(1184) + defer tls.Free(1184) + var errno_save, fd, l, l2, pid, v1, v2 int32 + var _ /* buf at bp+80 */ [1024]uint8 + var _ /* hlen at bp+1104 */ int32 + var _ /* now at bp+16 */ Ttime_t + var _ /* timebuf at bp+0 */ [16]uint8 + var _ /* tm at bp+24 */ Ttm + _, _, _, _, _, _, _ = errno_save, fd, l, l2, pid, v1, v2 + errno_save = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + if _log_fd < 0 { + ___openlog(tls) + } + if !(priority&Int32FromInt32(LOG_FACMASK) != 0) { + priority |= _log_facility + } + *(*Ttime_t)(unsafe.Pointer(bp + 16)) = Xtime(tls, UintptrFromInt32(0)) + Xgmtime_r(tls, bp+16, bp+24) + Xstrftime_l(tls, bp, uint64(16), __ccgo_ts+921, bp+24, uintptr(unsafe.Pointer(&X__c_locale))) + if _log_opt&int32(LOG_PID) != 0 { + v1 = Xgetpid(tls) + } else { + v1 = 0 + } + pid = v1 + l = Xsnprintf(tls, bp+80, uint64(1024), __ccgo_ts+930, VaList(bp+1120, priority, bp, bp+1104, uintptr(unsafe.Pointer(&_log_ident)), __ccgo_ts+952+BoolUintptr(!(pid != 0)), pid, __ccgo_ts+954+BoolUintptr(!(pid != 0)))) + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = errno_save + l2 = Xvsnprintf(tls, bp+80+uintptr(l), uint64(1024)-uint64(l), message, ap) + if l2 >= 0 { + if uint64(l2) >= uint64(1024)-uint64(l) { + l = int32(Uint64FromInt64(1024) - Uint64FromInt32(1)) + } else { + l += l2 + } + if int32((*(*[1024]uint8)(unsafe.Pointer(bp + 80)))[l-int32(1)]) != int32('\n') { + v2 = l + l++ + (*(*[1024]uint8)(unsafe.Pointer(bp + 80)))[v2] = uint8('\n') + } + if Xsend(tls, _log_fd, bp+80, uint64(l), 0) < 0 && (!(_is_lost_conn(tls, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0) || Xconnect(tls, _log_fd, uintptr(unsafe.Pointer(&_log_addr)), uint32(12)) < 0 || Xsend(tls, _log_fd, bp+80, uint64(l), 0) < 0) && _log_opt&int32(LOG_CONS) != 0 { + fd = Xopen(tls, __ccgo_ts+649, Int32FromInt32(O_WRONLY)|Int32FromInt32(O_NOCTTY)|Int32FromInt32(O_CLOEXEC), 0) + if fd >= 0 { + Xdprintf(tls, fd, __ccgo_ts+956, VaList(bp+1120, l-*(*int32)(unsafe.Pointer(bp + 1104)), bp+80+uintptr(*(*int32)(unsafe.Pointer(bp + 1104))))) + Xclose(tls, fd) + } + } + if _log_opt&int32(LOG_PERROR) != 0 { + Xdprintf(tls, int32(2), __ccgo_ts+956, VaList(bp+1120, l-*(*int32)(unsafe.Pointer(bp + 1104)), bp+80+uintptr(*(*int32)(unsafe.Pointer(bp + 1104))))) + } + } +} + +func ___vsyslog(tls *TLS, priority int32, message uintptr, ap Tva_list) { + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* cs at bp+0 */ int32 + if !(_log_mask&(Int32FromInt32(1)<<(priority&Int32FromInt32(7))) != 0) || priority & ^Int32FromInt32(0x3ff) != 0 { + return + } + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp) + ___lock(tls, uintptr(unsafe.Pointer(&_lock2))) + __vsyslog(tls, priority, message, ap) + ___unlock(tls, uintptr(unsafe.Pointer(&_lock2))) + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) +} + +func Xsyslog(tls *TLS, priority int32, message uintptr, va uintptr) { + if __ccgo_strace { + trc("tls=%v priority=%v message=%v va=%v, (%v:)", tls, priority, message, va, origin(2)) + } + var ap Tva_list + _ = ap + ap = va + ___vsyslog(tls, priority, message, ap) + _ = ap +} + +type Tutsname1 = struct { + Fsysname [65]uint8 + Fnodename [65]uint8 + Frelease [65]uint8 + Fversion [65]uint8 + Fmachine [65]uint8 + F__domainname [65]uint8 +} + +func Xuname(tls *TLS, uts uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v uts=%v, (%v:)", tls, uts, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_uname), int64(uts))))) +} + +func X__madvise(tls *TLS, addr uintptr, len1 Tsize_t, advice int32) (r int32) { + if __ccgo_strace { + trc("tls=%v addr=%v len1=%v advice=%v, (%v:)", tls, addr, len1, advice, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_madvise), int64(addr), int64(len1), int64(advice))))) +} + +func Xmadvise(tls *TLS, addr uintptr, len1 Tsize_t, advice int32) (r int32) { + if __ccgo_strace { + trc("tls=%v addr=%v len1=%v advice=%v, (%v:)", tls, addr, len1, advice, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__madvise(tls, addr, len1, advice) +} + +func Xmincore(tls *TLS, addr uintptr, len1 Tsize_t, vec uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v addr=%v len1=%v vec=%v, (%v:)", tls, addr, len1, vec, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_mincore), int64(addr), int64(len1), int64(vec))))) +} + +func Xmlock(tls *TLS, addr uintptr, len1 Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v addr=%v len1=%v, (%v:)", tls, addr, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_mlock), int64(addr), int64(len1))))) +} + +func Xmlockall(tls *TLS, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v flags=%v, (%v:)", tls, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_mlockall), int64(flags))))) +} + +const OFF_MASK = 4095 +const UNIT = 4096 + +func _dummy5(tls *TLS) { +} + +func X__mmap(tls *TLS, start uintptr, len1 Tsize_t, prot int32, flags int32, fd int32, off Toff_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v start=%v len1=%v prot=%v flags=%v fd=%v off=%v, (%v:)", tls, start, len1, prot, flags, fd, off, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ret int64 + _ = ret + if uint64(off)&(-Uint64FromUint64(0x2000)<<(Uint64FromInt32(8)*Uint64FromInt64(8)-Uint64FromInt32(1))|(Uint64FromUint64(4096)-Uint64FromInt32(1))) != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return uintptr(-Int32FromInt32(1)) + } + if len1 >= uint64(Int64FromInt64(INT64_MAX)) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOMEM) + return uintptr(-Int32FromInt32(1)) + } + if flags&int32(MAP_FIXED) != 0 { + _dummy5(tls) + } + ret = X__syscall6(tls, int64(SYS_mmap), int64(start), int64(len1), int64(prot), int64(flags), int64(fd), off) + /* Fixup incorrect EPERM from kernel. */ + if ret == int64(-int32(EPERM)) && !(start != 0) && flags&int32(MAP_ANON) != 0 && !(flags&Int32FromInt32(MAP_FIXED) != 0) { + ret = int64(-int32(ENOMEM)) + } + return uintptr(X__syscall_ret(tls, uint64(ret))) +} + +func Xmmap(tls *TLS, start uintptr, len1 Tsize_t, prot int32, flags int32, fd int32, off Toff_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v start=%v len1=%v prot=%v flags=%v fd=%v off=%v, (%v:)", tls, start, len1, prot, flags, fd, off, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__mmap(tls, start, len1, prot, flags, fd, off) +} + +func X__mprotect(tls *TLS, addr uintptr, len1 Tsize_t, prot int32) (r int32) { + if __ccgo_strace { + trc("tls=%v addr=%v len1=%v prot=%v, (%v:)", tls, addr, len1, prot, origin(2)) + defer func() { trc("-> %v", r) }() + } + var end, start Tsize_t + _, _ = end, start + start = uint64(addr) & -X__libc.Fpage_size + end = uint64(addr+uintptr(len1)+uintptr(X__libc.Fpage_size)-UintptrFromInt32(1)) & -X__libc.Fpage_size + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_mprotect), int64(start), int64(end-start), int64(prot))))) +} + +func Xmprotect(tls *TLS, addr uintptr, len1 Tsize_t, prot int32) (r int32) { + if __ccgo_strace { + trc("tls=%v addr=%v len1=%v prot=%v, (%v:)", tls, addr, len1, prot, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__mprotect(tls, addr, len1, prot) +} + +func _dummy6(tls *TLS) { +} + +func X__mremap(tls *TLS, old_addr uintptr, old_len Tsize_t, new_len Tsize_t, flags int32, va uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v old_addr=%v old_len=%v new_len=%v flags=%v va=%v, (%v:)", tls, old_addr, old_len, new_len, flags, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var new_addr uintptr + _, _ = ap, new_addr + new_addr = uintptr(0) + if new_len >= uint64(Int64FromInt64(INT64_MAX)) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOMEM) + return uintptr(-Int32FromInt32(1)) + } + if flags&int32(MREMAP_FIXED) != 0 { + _dummy6(tls) + ap = va + new_addr = VaUintptr(&ap) + _ = ap + } + return uintptr(X__syscall_ret(tls, uint64(X__syscall5(tls, int64(SYS_mremap), int64(old_addr), int64(old_len), int64(new_len), int64(flags), int64(new_addr))))) +} + +func Xmremap(tls *TLS, old_addr uintptr, old_len Tsize_t, new_len Tsize_t, flags int32, va uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v old_addr=%v old_len=%v new_len=%v flags=%v va=%v, (%v:)", tls, old_addr, old_len, new_len, flags, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__mremap(tls, old_addr, old_len, new_len, flags, va) +} + +func Xmsync(tls *TLS, start uintptr, len1 Tsize_t, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v start=%v len1=%v flags=%v, (%v:)", tls, start, len1, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_msync), int64(start), int64(len1), int64(flags), 0, 0, 0)))) +} + +func Xmunlock(tls *TLS, addr uintptr, len1 Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v addr=%v len1=%v, (%v:)", tls, addr, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_munlock), int64(addr), int64(len1))))) +} + +func Xmunlockall(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall0(tls, int64(SYS_munlockall))))) +} + +func _dummy7(tls *TLS) { +} + +func X__munmap(tls *TLS, start uintptr, len1 Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v start=%v len1=%v, (%v:)", tls, start, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + _dummy7(tls) + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_munmap), int64(start), int64(len1))))) +} + +func Xmunmap(tls *TLS, start uintptr, len1 Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v start=%v len1=%v, (%v:)", tls, start, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__munmap(tls, start, len1) +} + +func Xposix_madvise(tls *TLS, addr uintptr, len1 Tsize_t, advice int32) (r int32) { + if __ccgo_strace { + trc("tls=%v addr=%v len1=%v advice=%v, (%v:)", tls, addr, len1, advice, origin(2)) + defer func() { trc("-> %v", r) }() + } + if advice == int32(MADV_DONTNEED) { + return 0 + } + return int32(-X__syscall3(tls, int64(SYS_madvise), int64(addr), int64(len1), int64(advice))) +} + +func X__shm_mapname(tls *TLS, name uintptr, buf uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v name=%v buf=%v, (%v:)", tls, name, buf, origin(2)) + defer func() { trc("-> %v", r) }() + } + var p, v1 uintptr + _, _ = p, v1 + for int32(*(*uint8)(unsafe.Pointer(name))) == int32('/') { + name++ + } + v1 = X__strchrnul(tls, name, int32('/')) + p = v1 + if *(*uint8)(unsafe.Pointer(v1)) != 0 || p == name || int64(p)-int64(name) <= int64(2) && int32(*(*uint8)(unsafe.Pointer(name))) == int32('.') && int32(*(*uint8)(unsafe.Pointer(p + uintptr(-Int32FromInt32(1))))) == int32('.') { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return uintptr(0) + } + if int64(p)-int64(name) > int64(NAME_MAX) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENAMETOOLONG) + return uintptr(0) + } + Xmemcpy(tls, buf, __ccgo_ts+961, uint64(9)) + Xmemcpy(tls, buf+uintptr(9), name, uint64(int64(p)-int64(name)+int64(1))) + return buf +} + +func Xshm_open(tls *TLS, name uintptr, flag int32, mode Tmode_t) (r int32) { + if __ccgo_strace { + trc("tls=%v name=%v flag=%v mode=%v, (%v:)", tls, name, flag, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(288) + defer tls.Free(288) + var fd int32 + var v1 uintptr + var _ /* buf at bp+4 */ [265]uint8 + var _ /* cs at bp+0 */ int32 + _, _ = fd, v1 + v1 = X__shm_mapname(tls, name, bp+4) + name = v1 + if !(v1 != 0) { + return -int32(1) + } + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp) + fd = Xopen(tls, name, flag|int32(O_NOFOLLOW)|int32(O_CLOEXEC)|int32(O_NONBLOCK), VaList(bp+280, mode)) + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) + return fd +} + +func Xshm_unlink(tls *TLS, name uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v name=%v, (%v:)", tls, name, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(272) + defer tls.Free(272) + var v1 uintptr + var _ /* buf at bp+0 */ [265]uint8 + _ = v1 + v1 = X__shm_mapname(tls, name, bp) + name = v1 + if !(v1 != 0) { + return -int32(1) + } + return Xunlink(tls, name) +} + +const SA = 194 +const SB = 244 +const bittab = 0 + +type Tucontext_t4 = struct { + Fuc_flags uint64 + Fuc_link uintptr + Fuc_stack Tstack_t + Fuc_sigmask Tsigset_t + Fuc_mcontext Tmcontext_t +} + +func Xbtowc(tls *TLS, c int32) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + var b, v3 int32 + var v1, v2 uint32 + _, _, _, _ = b, v1, v2, v3 + b = int32(uint8(c)) + if uint32(b) < uint32(128) { + v1 = uint32(b) + } else { + if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale)) != 0) { + v3 = int32(4) + } else { + v3 = int32(1) + } + if v3 == int32(1) && c != -int32(1) { + v2 = uint32(Int32FromInt32(0xdfff) & int32(int8(c))) + } else { + v2 = uint32(0xffffffff) + } + v1 = v2 + } + return v1 +} + +type Tchar16_t = uint16 + +type Tchar32_t = uint32 + +func Xc16rtomb(tls *TLS, s uintptr, c16 Tchar16_t, ps uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v c16=%v ps=%v, (%v:)", tls, s, c16, ps, origin(2)) + defer func() { trc("-> %v", r) }() + } + var wc Twchar_t + var x uintptr + _, _ = wc, x + if !(ps != 0) { + ps = uintptr(unsafe.Pointer(&_internal_state)) + } + x = ps + if !(s != 0) { + if *(*uint32)(unsafe.Pointer(x)) != 0 { + goto ilseq + } + return uint64(1) + } + if !(*(*uint32)(unsafe.Pointer(x)) != 0) && uint32(c16)-uint32(0xd800) < uint32(0x400) { + *(*uint32)(unsafe.Pointer(x)) = uint32((int32(c16) - int32(0xd7c0)) << int32(10)) + return uint64(0) + } + if *(*uint32)(unsafe.Pointer(x)) != 0 { + if uint32(c16)-uint32(0xdc00) >= uint32(0x400) { + goto ilseq + } else { + wc = *(*uint32)(unsafe.Pointer(x)) + uint32(c16) - uint32(0xdc00) + } + *(*uint32)(unsafe.Pointer(x)) = uint32(0) + } else { + wc = uint32(c16) + } + return Xwcrtomb(tls, s, wc, uintptr(0)) + goto ilseq +ilseq: + ; + *(*uint32)(unsafe.Pointer(x)) = uint32(0) + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EILSEQ) + return uint64(-Int32FromInt32(1)) +} + +var _internal_state uint32 + +func Xc32rtomb(tls *TLS, s uintptr, c32 Tchar32_t, ps uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v c32=%v ps=%v, (%v:)", tls, s, c32, ps, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xwcrtomb(tls, s, c32, ps) +} + +func Xmblen(tls *TLS, s uintptr, n Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v, (%v:)", tls, s, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xmbtowc(tls, uintptr(0), s, n) +} + +func Xmbrlen(tls *TLS, s uintptr, n Tsize_t, st uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v st=%v, (%v:)", tls, s, n, st, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 uintptr + _ = v1 + if st != 0 { + v1 = st + } else { + v1 = uintptr(unsafe.Pointer(&_internal)) + } + return Xmbrtowc(tls, uintptr(0), s, n, v1) +} + +var _internal uint32 + +func Xmbrtoc16(tls *TLS, pc16 uintptr, s uintptr, n Tsize_t, ps uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v pc16=%v s=%v n=%v ps=%v, (%v:)", tls, pc16, s, n, ps, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var pending uintptr + var ret Tsize_t + var _ /* wc at bp+0 */ Twchar_t + _, _ = pending, ret + if !(ps != 0) { + ps = uintptr(unsafe.Pointer(&_internal_state1)) + } + pending = ps + if !(s != 0) { + return Xmbrtoc16(tls, uintptr(0), __ccgo_ts, uint64(1), ps) + } + /* mbrtowc states for partial UTF-8 characters have the high bit set; + * we use nonzero states without high bit for pending surrogates. */ + if int32(*(*uint32)(unsafe.Pointer(pending))) > 0 { + if pc16 != 0 { + *(*Tchar16_t)(unsafe.Pointer(pc16)) = uint16(*(*uint32)(unsafe.Pointer(pending))) + } + *(*uint32)(unsafe.Pointer(pending)) = uint32(0) + return uint64(-Int32FromInt32(3)) + } + ret = Xmbrtowc(tls, bp, s, n, ps) + if ret <= uint64(4) { + if *(*Twchar_t)(unsafe.Pointer(bp)) >= uint32(0x10000) { + *(*uint32)(unsafe.Pointer(pending)) = *(*Twchar_t)(unsafe.Pointer(bp))&uint32(0x3ff) + uint32(0xdc00) + *(*Twchar_t)(unsafe.Pointer(bp)) = uint32(0xd7c0) + *(*Twchar_t)(unsafe.Pointer(bp))>>Int32FromInt32(10) + } + if pc16 != 0 { + *(*Tchar16_t)(unsafe.Pointer(pc16)) = uint16(*(*Twchar_t)(unsafe.Pointer(bp))) + } + } + return ret +} + +var _internal_state1 uint32 + +func Xmbrtoc32(tls *TLS, pc32 uintptr, s uintptr, n Tsize_t, ps uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v pc32=%v s=%v n=%v ps=%v, (%v:)", tls, pc32, s, n, ps, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ret Tsize_t + var _ /* wc at bp+0 */ Twchar_t + _ = ret + if !(ps != 0) { + ps = uintptr(unsafe.Pointer(&_internal_state2)) + } + if !(s != 0) { + return Xmbrtoc32(tls, uintptr(0), __ccgo_ts, uint64(1), ps) + } + ret = Xmbrtowc(tls, bp, s, n, ps) + if ret <= uint64(4) && pc32 != 0 { + *(*Tchar32_t)(unsafe.Pointer(pc32)) = *(*Twchar_t)(unsafe.Pointer(bp)) + } + return ret +} + +var _internal_state2 uint32 + +func Xmbrtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t, st uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v wc=%v src=%v n=%v st=%v, (%v:)", tls, wc, src, n, st, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var N Tsize_t + var c uint32 + var s, v3, v4 uintptr + var v1 Twchar_t + var v2 int32 + var _ /* dummy at bp+0 */ Twchar_t + _, _, _, _, _, _, _ = N, c, s, v1, v2, v3, v4 + s = src + N = n + if !(st != 0) { + st = uintptr(unsafe.Pointer(&_internal_state3)) + } + c = *(*uint32)(unsafe.Pointer(st)) + if !(s != 0) { + if c != 0 { + goto ilseq + } + return uint64(0) + } else { + if !(wc != 0) { + wc = bp + } + } + if !(n != 0) { + return uint64(-Int32FromInt32(2)) + } + if !(c != 0) { + if int32(*(*uint8)(unsafe.Pointer(s))) < int32(0x80) { + v1 = uint32(*(*uint8)(unsafe.Pointer(s))) + *(*Twchar_t)(unsafe.Pointer(wc)) = v1 + return BoolUint64(!!(v1 != 0)) + } + if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale)) != 0) { + v2 = int32(4) + } else { + v2 = int32(1) + } + if v2 == int32(1) { + *(*Twchar_t)(unsafe.Pointer(wc)) = uint32(Int32FromInt32(0xdfff) & int32(int8(*(*uint8)(unsafe.Pointer(s))))) + return Uint64FromInt32(1) + } + if uint32(*(*uint8)(unsafe.Pointer(s)))-uint32(0xc2) > Uint32FromUint32(0xf4)-Uint32FromUint32(0xc2) { + goto ilseq + } + v3 = s + s++ + c = X__fsmu8[uint32(*(*uint8)(unsafe.Pointer(v3)))-uint32(0xc2)] + n-- + } + if n != 0 { + if (int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)-int32(0x10)|(int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)+int32(c)>>Int32FromInt32(26))) & ^Int32FromInt32(7) != 0 { + goto ilseq + } + goto loop + loop: + ; + v4 = s + s++ + c = c<= uint32(0x40) { + goto ilseq + } + goto loop + } + } + *(*uint32)(unsafe.Pointer(st)) = c + return uint64(-Int32FromInt32(2)) + goto ilseq +ilseq: + ; + *(*uint32)(unsafe.Pointer(st)) = uint32(0) + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EILSEQ) + return uint64(-Int32FromInt32(1)) +} + +var _internal_state3 uint32 + +func Xmbsinit(tls *TLS, st uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v st=%v, (%v:)", tls, st, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(!(st != 0) || !(*(*uint32)(unsafe.Pointer(st)) != 0)) +} + +func Xmbsnrtowcs(tls *TLS, wcs uintptr, src uintptr, n Tsize_t, wn Tsize_t, st uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v wcs=%v src=%v n=%v wn=%v st=%v, (%v:)", tls, wcs, src, n, wn, st, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(1040) + defer tls.Free(1040) + var cnt, l, n2, v1 Tsize_t + var tmp_s, ws uintptr + var v2 bool + var v3 uint64 + var _ /* s at bp+1024 */ uintptr + var _ /* wbuf at bp+0 */ [256]Twchar_t + _, _, _, _, _, _, _, _ = cnt, l, n2, tmp_s, ws, v1, v2, v3 + cnt = uint64(0) + *(*uintptr)(unsafe.Pointer(bp + 1024)) = *(*uintptr)(unsafe.Pointer(src)) + if !(wcs != 0) { + ws = bp + wn = Uint64FromInt64(1024) / Uint64FromInt64(4) + } else { + ws = wcs + } + /* making sure output buffer size is at most n/4 will ensure + * that mbsrtowcs never reads more than n input bytes. thus + * we can use mbsrtowcs as long as it's practical.. */ + for { + if v2 = *(*uintptr)(unsafe.Pointer(bp + 1024)) != 0 && wn != 0; v2 { + v1 = n / Uint64FromInt32(4) + n2 = v1 + } + if !(v2 && (v1 >= wn || n2 > uint64(32))) { + break + } + if n2 >= wn { + n2 = wn + } + tmp_s = *(*uintptr)(unsafe.Pointer(bp + 1024)) + l = Xmbsrtowcs(tls, ws, bp+1024, n2, st) + if !(l+Uint64FromInt32(1) != 0) { + cnt = l + wn = uint64(0) + break + } + if ws != bp { + ws += uintptr(l) * 4 + wn -= l + } + if *(*uintptr)(unsafe.Pointer(bp + 1024)) != 0 { + v3 = n - uint64(int64(*(*uintptr)(unsafe.Pointer(bp + 1024)))-int64(tmp_s)) + } else { + v3 = uint64(0) + } + n = v3 + cnt += l + } + if *(*uintptr)(unsafe.Pointer(bp + 1024)) != 0 { + for wn != 0 && n != 0 { + l = Xmbrtowc(tls, ws, *(*uintptr)(unsafe.Pointer(bp + 1024)), n, st) + if l+uint64(2) <= uint64(2) { + if !(l+Uint64FromInt32(1) != 0) { + cnt = l + break + } + if !(l != 0) { + *(*uintptr)(unsafe.Pointer(bp + 1024)) = uintptr(0) + break + } + /* have to roll back partial character */ + *(*uint32)(unsafe.Pointer(st)) = uint32(0) + break + } + *(*uintptr)(unsafe.Pointer(bp + 1024)) += uintptr(l) + n -= l + /* safe - this loop runs fewer than sizeof(wbuf)/8 times */ + ws += 4 + wn-- + cnt++ + } + } + if wcs != 0 { + *(*uintptr)(unsafe.Pointer(src)) = *(*uintptr)(unsafe.Pointer(bp + 1024)) + } + return cnt +} + +func Xmbsrtowcs(tls *TLS, ws uintptr, src uintptr, wn Tsize_t, st uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v ws=%v src=%v wn=%v st=%v, (%v:)", tls, ws, src, wn, st, origin(2)) + defer func() { trc("-> %v", r) }() + } + var c, v1 uint32 + var s, v12, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v5, v6 uintptr + var wn0 Tsize_t + var v2 bool + var v3 int32 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, s, wn0, v1, v12, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v3, v30, v5, v6 + s = *(*uintptr)(unsafe.Pointer(src)) + wn0 = wn + c = uint32(0) + if v2 = st != 0; v2 { + v1 = *(*uint32)(unsafe.Pointer(st)) + c = v1 + } + if v2 && v1 != 0 { + if ws != 0 { + *(*uint32)(unsafe.Pointer(st)) = uint32(0) + goto resume + } else { + goto resume0 + } + } + if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale)) != 0) { + v3 = int32(4) + } else { + v3 = int32(1) + } + if v3 == int32(1) { + if !(ws != 0) { + return Xstrlen(tls, s) + } + for { + if !(wn != 0) { + *(*uintptr)(unsafe.Pointer(src)) = s + return wn0 + } + if !(*(*uint8)(unsafe.Pointer(s)) != 0) { + break + } + v5 = s + s++ + c = uint32(*(*uint8)(unsafe.Pointer(v5))) + v6 = ws + ws += 4 + *(*Twchar_t)(unsafe.Pointer(v6)) = uint32(Int32FromInt32(0xdfff) & int32(int8(c))) + wn-- + goto _4 + _4: + } + *(*Twchar_t)(unsafe.Pointer(ws)) = uint32(0) + *(*uintptr)(unsafe.Pointer(src)) = uintptr(0) + return wn0 - wn + } + if !!(ws != 0) { + goto _7 + } +_11: + ; + if uint32(*(*uint8)(unsafe.Pointer(s)))-uint32(1) < uint32(0x7f) && uint64(s)%uint64(4) == uint64(0) { + for !((*(*uint32)(unsafe.Pointer(s))|(*(*uint32)(unsafe.Pointer(s))-Uint32FromInt32(0x01010101)))&Uint32FromUint32(0x80808080) != 0) { + s += uintptr(4) + wn -= uint64(4) + } + } + if uint32(*(*uint8)(unsafe.Pointer(s)))-uint32(1) < uint32(0x7f) { + s++ + wn-- + goto _10 + } + if uint32(*(*uint8)(unsafe.Pointer(s)))-uint32(0xc2) > Uint32FromUint32(0xf4)-Uint32FromUint32(0xc2) { + goto _9 + } + v12 = s + s++ + c = X__fsmu8[uint32(*(*uint8)(unsafe.Pointer(v12)))-uint32(0xc2)] + goto resume0 +resume0: + ; + if (int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)-int32(0x10)|(int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)+int32(c)>>Int32FromInt32(26))) & ^Int32FromInt32(7) != 0 { + s-- + goto _9 + } + s++ + if c&(Uint32FromUint32(1)<= uint32(0x40) { + s -= uintptr(2) + goto _9 + } + s++ + if c&(Uint32FromUint32(1)<= uint32(0x40) { + s -= uintptr(3) + goto _9 + } + s++ + } + } + wn-- + c = uint32(0) + goto _10 +_10: + ; + goto _11 + goto _9 +_9: + ; + goto _8 +_7: + ; +_15: + ; + if !(wn != 0) { + *(*uintptr)(unsafe.Pointer(src)) = s + return wn0 + } + if uint32(*(*uint8)(unsafe.Pointer(s)))-uint32(1) < uint32(0x7f) && uint64(s)%uint64(4) == uint64(0) { + for wn >= uint64(5) && !((*(*uint32)(unsafe.Pointer(s))|(*(*uint32)(unsafe.Pointer(s))-Uint32FromInt32(0x01010101)))&Uint32FromUint32(0x80808080) != 0) { + v16 = ws + ws += 4 + v17 = s + s++ + *(*Twchar_t)(unsafe.Pointer(v16)) = uint32(*(*uint8)(unsafe.Pointer(v17))) + v18 = ws + ws += 4 + v19 = s + s++ + *(*Twchar_t)(unsafe.Pointer(v18)) = uint32(*(*uint8)(unsafe.Pointer(v19))) + v20 = ws + ws += 4 + v21 = s + s++ + *(*Twchar_t)(unsafe.Pointer(v20)) = uint32(*(*uint8)(unsafe.Pointer(v21))) + v22 = ws + ws += 4 + v23 = s + s++ + *(*Twchar_t)(unsafe.Pointer(v22)) = uint32(*(*uint8)(unsafe.Pointer(v23))) + wn -= uint64(4) + } + } + if uint32(*(*uint8)(unsafe.Pointer(s)))-uint32(1) < uint32(0x7f) { + v24 = ws + ws += 4 + v25 = s + s++ + *(*Twchar_t)(unsafe.Pointer(v24)) = uint32(*(*uint8)(unsafe.Pointer(v25))) + wn-- + goto _14 + } + if uint32(*(*uint8)(unsafe.Pointer(s)))-uint32(0xc2) > Uint32FromUint32(0xf4)-Uint32FromUint32(0xc2) { + goto _13 + } + v26 = s + s++ + c = X__fsmu8[uint32(*(*uint8)(unsafe.Pointer(v26)))-uint32(0xc2)] + goto resume +resume: + ; + if (int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)-int32(0x10)|(int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)+int32(c)>>Int32FromInt32(26))) & ^Int32FromInt32(7) != 0 { + s-- + goto _13 + } + v27 = s + s++ + c = c<= uint32(0x40) { + s -= uintptr(2) + goto _13 + } + v28 = s + s++ + c = c<= uint32(0x40) { + s -= uintptr(3) + goto _13 + } + v29 = s + s++ + c = c< %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + *(*uintptr)(unsafe.Pointer(bp)) = _s + return Xmbsrtowcs(tls, ws, bp, wn, uintptr(0)) +} + +func Xmbtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v wc=%v src=%v n=%v, (%v:)", tls, wc, src, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var c uint32 + var s, v3, v4, v5, v6 uintptr + var v1 Twchar_t + var v2 int32 + var _ /* dummy at bp+0 */ Twchar_t + _, _, _, _, _, _, _, _ = c, s, v1, v2, v3, v4, v5, v6 + s = src + if !(s != 0) { + return 0 + } + if !(n != 0) { + goto ilseq + } + if !(wc != 0) { + wc = bp + } + if int32(*(*uint8)(unsafe.Pointer(s))) < int32(0x80) { + v1 = uint32(*(*uint8)(unsafe.Pointer(s))) + *(*Twchar_t)(unsafe.Pointer(wc)) = v1 + return BoolInt32(!!(v1 != 0)) + } + if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale)) != 0) { + v2 = int32(4) + } else { + v2 = int32(1) + } + if v2 == int32(1) { + *(*Twchar_t)(unsafe.Pointer(wc)) = uint32(Int32FromInt32(0xdfff) & int32(int8(*(*uint8)(unsafe.Pointer(s))))) + return Int32FromInt32(1) + } + if uint32(*(*uint8)(unsafe.Pointer(s)))-uint32(0xc2) > Uint32FromUint32(0xf4)-Uint32FromUint32(0xc2) { + goto ilseq + } + v3 = s + s++ + c = X__fsmu8[uint32(*(*uint8)(unsafe.Pointer(v3)))-uint32(0xc2)] + /* Avoid excessive checks against n: If shifting the state n-1 + * times does not clear the high bit, then the value of n is + * insufficient to read a character */ + if n < uint64(4) && c<<(uint64(6)*n-uint64(6))&(Uint32FromUint32(1)<>int32(3)-int32(0x10)|(int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)+int32(c)>>Int32FromInt32(26))) & ^Int32FromInt32(7) != 0 { + goto ilseq + } + v4 = s + s++ + c = c<= uint32(0x40) { + goto ilseq + } + v5 = s + s++ + c = c<= uint32(0x40) { + goto ilseq + } + v6 = s + s++ + *(*Twchar_t)(unsafe.Pointer(wc)) = c< %v", r) }() + } + var v1 int32 + var v2, v3, v4, v5, v6, v7 uintptr + _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, v7 + if !(s != 0) { + return uint64(1) + } + if wc < uint32(0x80) { + *(*uint8)(unsafe.Pointer(s)) = uint8(wc) + return uint64(1) + } else { + if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale)) != 0) { + v1 = int32(4) + } else { + v1 = int32(1) + } + if v1 == int32(1) { + if !(wc-Uint32FromInt32(0xdf80) < Uint32FromInt32(0x80)) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EILSEQ) + return uint64(-Int32FromInt32(1)) + } + *(*uint8)(unsafe.Pointer(s)) = uint8(wc) + return uint64(1) + } else { + if wc < uint32(0x800) { + v2 = s + s++ + *(*uint8)(unsafe.Pointer(v2)) = uint8(uint32(0xc0) | wc>>Int32FromInt32(6)) + *(*uint8)(unsafe.Pointer(s)) = uint8(uint32(0x80) | wc&uint32(0x3f)) + return uint64(2) + } else { + if wc < uint32(0xd800) || wc-uint32(0xe000) < uint32(0x2000) { + v3 = s + s++ + *(*uint8)(unsafe.Pointer(v3)) = uint8(uint32(0xe0) | wc>>Int32FromInt32(12)) + v4 = s + s++ + *(*uint8)(unsafe.Pointer(v4)) = uint8(uint32(0x80) | wc>>Int32FromInt32(6)&uint32(0x3f)) + *(*uint8)(unsafe.Pointer(s)) = uint8(uint32(0x80) | wc&uint32(0x3f)) + return uint64(3) + } else { + if wc-uint32(0x10000) < uint32(0x100000) { + v5 = s + s++ + *(*uint8)(unsafe.Pointer(v5)) = uint8(uint32(0xf0) | wc>>Int32FromInt32(18)) + v6 = s + s++ + *(*uint8)(unsafe.Pointer(v6)) = uint8(uint32(0x80) | wc>>Int32FromInt32(12)&uint32(0x3f)) + v7 = s + s++ + *(*uint8)(unsafe.Pointer(v7)) = uint8(uint32(0x80) | wc>>Int32FromInt32(6)&uint32(0x3f)) + *(*uint8)(unsafe.Pointer(s)) = uint8(uint32(0x80) | wc&uint32(0x3f)) + return uint64(4) + } + } + } + } + } + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EILSEQ) + return uint64(-Int32FromInt32(1)) +} + +func Xwcsnrtombs(tls *TLS, dst uintptr, wcs uintptr, wn Tsize_t, n Tsize_t, st uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v dst=%v wcs=%v wn=%v n=%v st=%v, (%v:)", tls, dst, wcs, wn, n, st, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var cnt, l Tsize_t + var ws, v1 uintptr + var _ /* tmp at bp+0 */ [4]uint8 + _, _, _, _ = cnt, l, ws, v1 + ws = *(*uintptr)(unsafe.Pointer(wcs)) + cnt = uint64(0) + if !(dst != 0) { + n = uint64(0) + } + for ws != 0 && wn != 0 { + if n < uint64(MB_LEN_MAX) { + v1 = bp + } else { + v1 = dst + } + l = Xwcrtomb(tls, v1, *(*Twchar_t)(unsafe.Pointer(ws)), uintptr(0)) + if l == uint64(-Int32FromInt32(1)) { + cnt = uint64(-Int32FromInt32(1)) + break + } + if dst != 0 { + if n < uint64(MB_LEN_MAX) { + if l > n { + break + } + Xmemcpy(tls, dst, bp, l) + } + dst += uintptr(l) + n -= l + } + if !(*(*Twchar_t)(unsafe.Pointer(ws)) != 0) { + ws = uintptr(0) + break + } + ws += 4 + wn-- + cnt += l + } + if dst != 0 { + *(*uintptr)(unsafe.Pointer(wcs)) = ws + } + return cnt +} + +func Xwcsrtombs(tls *TLS, s uintptr, ws uintptr, n Tsize_t, st uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v ws=%v n=%v st=%v, (%v:)", tls, s, ws, n, st, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var N, l Tsize_t + var ws2, v2, v3 uintptr + var _ /* buf at bp+0 */ [4]uint8 + _, _, _, _, _ = N, l, ws2, v2, v3 + N = n + if !(s != 0) { + n = uint64(0) + ws2 = *(*uintptr)(unsafe.Pointer(ws)) + for { + if !(*(*Twchar_t)(unsafe.Pointer(ws2)) != 0) { + break + } + if *(*Twchar_t)(unsafe.Pointer(ws2)) >= uint32(0x80) { + l = Xwcrtomb(tls, bp, *(*Twchar_t)(unsafe.Pointer(ws2)), uintptr(0)) + if !(l+Uint64FromInt32(1) != 0) { + return uint64(-Int32FromInt32(1)) + } + n += l + } else { + n++ + } + goto _1 + _1: + ; + ws2 += 4 + } + return n + } + for n >= uint64(4) { + if *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws))))-uint32(1) >= uint32(0x7f) { + if !(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))) != 0) { + *(*uint8)(unsafe.Pointer(s)) = uint8(0) + *(*uintptr)(unsafe.Pointer(ws)) = uintptr(0) + return N - n + } + l = Xwcrtomb(tls, s, *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))), uintptr(0)) + if !(l+Uint64FromInt32(1) != 0) { + return uint64(-Int32FromInt32(1)) + } + s += uintptr(l) + n -= l + } else { + v2 = s + s++ + *(*uint8)(unsafe.Pointer(v2)) = uint8(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws))))) + n-- + } + *(*uintptr)(unsafe.Pointer(ws)) += 4 + } + for n != 0 { + if *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws))))-uint32(1) >= uint32(0x7f) { + if !(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))) != 0) { + *(*uint8)(unsafe.Pointer(s)) = uint8(0) + *(*uintptr)(unsafe.Pointer(ws)) = uintptr(0) + return N - n + } + l = Xwcrtomb(tls, bp, *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))), uintptr(0)) + if !(l+Uint64FromInt32(1) != 0) { + return uint64(-Int32FromInt32(1)) + } + if l > n { + return N - n + } + Xwcrtomb(tls, s, *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws)))), uintptr(0)) + s += uintptr(l) + n -= l + } else { + v3 = s + s++ + *(*uint8)(unsafe.Pointer(v3)) = uint8(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ws))))) + n-- + } + *(*uintptr)(unsafe.Pointer(ws)) += 4 + } + return N +} + +func Xwcstombs(tls *TLS, s uintptr, ws uintptr, n Tsize_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v ws=%v n=%v, (%v:)", tls, s, ws, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + *(*uintptr)(unsafe.Pointer(bp)) = ws + return Xwcsrtombs(tls, s, bp, n, uintptr(0)) +} + +func Xwctob(tls *TLS, c Twint_t) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 int32 + _ = v1 + if c < uint32(128) { + return int32(c) + } + if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale)) != 0) { + v1 = int32(4) + } else { + v1 = int32(1) + } + if v1 == int32(1) && c-uint32(0xdf80) < uint32(0x80) { + return int32(uint8(c)) + } + return -int32(1) +} + +func Xwctomb(tls *TLS, s uintptr, wc Twchar_t) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v wc=%v, (%v:)", tls, s, wc, origin(2)) + defer func() { trc("-> %v", r) }() + } + if !(s != 0) { + return 0 + } + return int32(Xwcrtomb(tls, s, wc, uintptr(0))) +} + +func Xaccept(tls *TLS, fd int32, addr uintptr, len1 uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v fd=%v addr=%v len1=%v, (%v:)", tls, fd, addr, len1, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, v8 int64 + var v1 int32 + var v2, v3, v4, v5, v6, v7 Tsyscall_arg_t + _, _, _, _, _, _, _, _, _ = r, v1, v2, v3, v4, v5, v6, v7, v8 + v1 = int32(SYS_accept) + _ = int32(__SC_accept) + v2 = int64(fd) + v3 = int64(addr) + v4 = int64(len1) + v5 = int64(Int32FromInt32(0)) + v6 = int64(Int32FromInt32(0)) + v7 = int64(Int32FromInt32(0)) + if int32(1) != 0 { + r = ___syscall_cp(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } else { + r = X__syscall6(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v8 = r + goto _9 + } + v8 = r + goto _9 +_9: + return int32(X__syscall_ret(tls, uint64(v8))) +} + +type Tucred = struct { + Fpid Tpid_t + Fuid Tuid_t + Fgid Tgid_t +} + +type Tmmsghdr = struct { + Fmsg_hdr Tmsghdr + Fmsg_len uint32 +} + +func Xaccept4(tls *TLS, fd int32, addr uintptr, len1 uintptr, flg int32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v fd=%v addr=%v len1=%v flg=%v, (%v:)", tls, fd, addr, len1, flg, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, v8 int64 + var ret, v1 int32 + var v2, v3, v4, v5, v6, v7 Tsyscall_arg_t + _, _, _, _, _, _, _, _, _, _ = r, ret, v1, v2, v3, v4, v5, v6, v7, v8 + if !(flg != 0) { + return Xaccept(tls, fd, addr, len1) + } + v1 = int32(SYS_accept4) + _ = int32(__SC_accept4) + v2 = int64(fd) + v3 = int64(addr) + v4 = int64(len1) + v5 = int64(flg) + v6 = int64(Int32FromInt32(0)) + v7 = int64(Int32FromInt32(0)) + if int32(1) != 0 { + r = ___syscall_cp(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } else { + r = X__syscall6(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v8 = r + goto _9 + } + v8 = r + goto _9 +_9: + ret = int32(X__syscall_ret(tls, uint64(v8))) + if ret >= 0 || *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(ENOSYS) && *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(EINVAL) { + return ret + } + if flg & ^(Int32FromInt32(SOCK_CLOEXEC)|Int32FromInt32(SOCK_NONBLOCK)) != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return -int32(1) + } + ret = Xaccept(tls, fd, addr, len1) + if ret < 0 { + return ret + } + if flg&int32(SOCK_CLOEXEC) != 0 { + X__syscall3(tls, int64(SYS_fcntl), int64(ret), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) + } + if flg&int32(SOCK_NONBLOCK) != 0 { + X__syscall3(tls, int64(SYS_fcntl), int64(ret), int64(Int32FromInt32(F_SETFL)), int64(Int32FromInt32(O_NONBLOCK))) + } + return ret +} + +func Xbind(tls *TLS, fd int32, addr uintptr, len1 Tsocklen_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v fd=%v addr=%v len1=%v, (%v:)", tls, fd, addr, len1, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, v8 int64 + var v1 int32 + var v2, v3, v4, v5, v6, v7 Tsyscall_arg_t + _, _, _, _, _, _, _, _, _ = r, v1, v2, v3, v4, v5, v6, v7, v8 + v1 = int32(SYS_bind) + _ = int32(__SC_bind) + v2 = int64(fd) + v3 = int64(addr) + v4 = int64(len1) + v5 = int64(Int32FromInt32(0)) + v6 = int64(Int32FromInt32(0)) + v7 = int64(Int32FromInt32(0)) + if 0 != 0 { + r = ___syscall_cp(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } else { + r = X__syscall6(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v8 = r + goto _9 + } + v8 = r + goto _9 +_9: + return int32(X__syscall_ret(tls, uint64(v8))) +} + +func Xconnect(tls *TLS, fd int32, addr uintptr, len1 Tsocklen_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v fd=%v addr=%v len1=%v, (%v:)", tls, fd, addr, len1, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, v8 int64 + var v1 int32 + var v2, v3, v4, v5, v6, v7 Tsyscall_arg_t + _, _, _, _, _, _, _, _, _ = r, v1, v2, v3, v4, v5, v6, v7, v8 + v1 = int32(SYS_connect) + _ = int32(__SC_connect) + v2 = int64(fd) + v3 = int64(addr) + v4 = int64(len1) + v5 = int64(Int32FromInt32(0)) + v6 = int64(Int32FromInt32(0)) + v7 = int64(Int32FromInt32(0)) + if int32(1) != 0 { + r = ___syscall_cp(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } else { + r = X__syscall6(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v8 = r + goto _9 + } + v8 = r + goto _9 +_9: + return int32(X__syscall_ret(tls, uint64(v8))) +} + +const ADD = 0 +const C_ANY = 0 +const C_CHAOS = 0 +const C_HS = 0 +const C_IN = 0 +const C_NONE = 0 +const DELETE = 0 +const FORMERR = 0 +const GETLONG = 0 +const GETSHORT = 0 +const HFIXEDSZ = 12 +const IN6ADDRSZ = 16 +const INADDRSZ = 4 +const INDIR_MASK = 192 +const INET6_ADDRSTRLEN = 46 +const INET_ADDRSTRLEN = 16 +const INT16SZ = 2 +const INT32SZ = 4 +const INT8SZ = 1 +const IN_CLASSA_HOST = 16777215 +const IN_CLASSA_MAX = 128 +const IN_CLASSA_NET = 4278190080 +const IN_CLASSA_NSHIFT = 24 +const IN_CLASSB_HOST = 65535 +const IN_CLASSB_MAX = 65536 +const IN_CLASSB_NET = 4294901760 +const IN_CLASSB_NSHIFT = 16 +const IN_CLASSC_HOST = 255 +const IN_CLASSC_NET = 4294967040 +const IN_CLASSC_NSHIFT = 8 +const IN_LOOPBACKNET = 127 +const IPPORT_RESERVED = 1024 +const IPPROTO_AH = 51 +const IPPROTO_BEETPH = 94 +const IPPROTO_COMP = 108 +const IPPROTO_DCCP = 33 +const IPPROTO_DSTOPTS = 60 +const IPPROTO_EGP = 8 +const IPPROTO_ENCAP = 98 +const IPPROTO_ESP = 50 +const IPPROTO_ETHERNET = 143 +const IPPROTO_FRAGMENT = 44 +const IPPROTO_GRE = 47 +const IPPROTO_HOPOPTS = 0 +const IPPROTO_ICMP = 1 +const IPPROTO_ICMPV6 = 58 +const IPPROTO_IDP = 22 +const IPPROTO_IGMP = 2 +const IPPROTO_IP = 0 +const IPPROTO_IPIP = 4 +const IPPROTO_IPV6 = 41 +const IPPROTO_MAX = 263 +const IPPROTO_MH = 135 +const IPPROTO_MPLS = 137 +const IPPROTO_MPTCP = 262 +const IPPROTO_MTP = 92 +const IPPROTO_NONE = 59 +const IPPROTO_PIM = 103 +const IPPROTO_PUP = 12 +const IPPROTO_RAW = 255 +const IPPROTO_ROUTING = 43 +const IPPROTO_RSVP = 46 +const IPPROTO_SCTP = 132 +const IPPROTO_TCP = 6 +const IPPROTO_TP = 29 +const IPPROTO_UDP = 17 +const IPPROTO_UDPLITE = 136 +const IPV6_2292DSTOPTS = 4 +const IPV6_2292HOPLIMIT = 8 +const IPV6_2292HOPOPTS = 3 +const IPV6_2292PKTINFO = 2 +const IPV6_2292PKTOPTIONS = 6 +const IPV6_2292RTHDR = 5 +const IPV6_ADDRFORM = 1 +const IPV6_ADDR_PREFERENCES = 72 +const IPV6_ADD_MEMBERSHIP = 20 +const IPV6_AUTHHDR = 10 +const IPV6_AUTOFLOWLABEL = 70 +const IPV6_CHECKSUM = 7 +const IPV6_DONTFRAG = 62 +const IPV6_DROP_MEMBERSHIP = 21 +const IPV6_DSTOPTS = 59 +const IPV6_FREEBIND = 78 +const IPV6_HDRINCL = 36 +const IPV6_HOPLIMIT = 52 +const IPV6_HOPOPTS = 54 +const IPV6_IPSEC_POLICY = 34 +const IPV6_JOIN_ANYCAST = 27 +const IPV6_JOIN_GROUP = 20 +const IPV6_LEAVE_ANYCAST = 28 +const IPV6_LEAVE_GROUP = 21 +const IPV6_MINHOPCOUNT = 73 +const IPV6_MTU = 24 +const IPV6_MTU_DISCOVER = 23 +const IPV6_MULTICAST_ALL = 29 +const IPV6_MULTICAST_HOPS = 18 +const IPV6_MULTICAST_IF = 17 +const IPV6_MULTICAST_LOOP = 19 +const IPV6_NEXTHOP = 9 +const IPV6_ORIGDSTADDR = 74 +const IPV6_PATHMTU = 61 +const IPV6_PKTINFO = 50 +const IPV6_PMTUDISC_DO = 2 +const IPV6_PMTUDISC_DONT = 0 +const IPV6_PMTUDISC_INTERFACE = 4 +const IPV6_PMTUDISC_OMIT = 5 +const IPV6_PMTUDISC_PROBE = 3 +const IPV6_PMTUDISC_WANT = 1 +const IPV6_PREFER_SRC_CGA = 8 +const IPV6_PREFER_SRC_COA = 4 +const IPV6_PREFER_SRC_HOME = 1024 +const IPV6_PREFER_SRC_NONCGA = 2048 +const IPV6_PREFER_SRC_PUBLIC = 2 +const IPV6_PREFER_SRC_PUBTMP_DEFAULT = 256 +const IPV6_PREFER_SRC_TMP = 1 +const IPV6_RECVDSTOPTS = 58 +const IPV6_RECVERR = 25 +const IPV6_RECVFRAGSIZE = 77 +const IPV6_RECVHOPLIMIT = 51 +const IPV6_RECVHOPOPTS = 53 +const IPV6_RECVORIGDSTADDR = 74 +const IPV6_RECVPATHMTU = 60 +const IPV6_RECVPKTINFO = 49 +const IPV6_RECVRTHDR = 56 +const IPV6_RECVTCLASS = 66 +const IPV6_ROUTER_ALERT = 22 +const IPV6_ROUTER_ALERT_ISOLATE = 30 +const IPV6_RTHDR = 57 +const IPV6_RTHDRDSTOPTS = 55 +const IPV6_RTHDR_LOOSE = 0 +const IPV6_RTHDR_STRICT = 1 +const IPV6_RTHDR_TYPE_0 = 0 +const IPV6_RXDSTOPTS = 59 +const IPV6_RXHOPOPTS = 54 +const IPV6_TCLASS = 67 +const IPV6_TRANSPARENT = 75 +const IPV6_UNICAST_HOPS = 16 +const IPV6_UNICAST_IF = 76 +const IPV6_V6ONLY = 26 +const IPV6_XFRM_POLICY = 35 +const IP_ADD_MEMBERSHIP = 35 +const IP_ADD_SOURCE_MEMBERSHIP = 39 +const IP_BIND_ADDRESS_NO_PORT = 24 +const IP_BLOCK_SOURCE = 38 +const IP_CHECKSUM = 23 +const IP_DEFAULT_MULTICAST_LOOP = 1 +const IP_DEFAULT_MULTICAST_TTL = 1 +const IP_DROP_MEMBERSHIP = 36 +const IP_DROP_SOURCE_MEMBERSHIP = 40 +const IP_FREEBIND = 15 +const IP_HDRINCL = 3 +const IP_IPSEC_POLICY = 16 +const IP_MAX_MEMBERSHIPS = 20 +const IP_MINTTL = 21 +const IP_MSFILTER = 41 +const IP_MTU = 14 +const IP_MTU_DISCOVER = 10 +const IP_MULTICAST_ALL = 49 +const IP_MULTICAST_IF = 32 +const IP_MULTICAST_LOOP = 34 +const IP_MULTICAST_TTL = 33 +const IP_NODEFRAG = 22 +const IP_OPTIONS = 4 +const IP_ORIGDSTADDR = 20 +const IP_PASSSEC = 18 +const IP_PKTINFO = 8 +const IP_PKTOPTIONS = 9 +const IP_PMTUDISC = 10 +const IP_PMTUDISC_DO = 2 +const IP_PMTUDISC_DONT = 0 +const IP_PMTUDISC_INTERFACE = 4 +const IP_PMTUDISC_OMIT = 5 +const IP_PMTUDISC_PROBE = 3 +const IP_PMTUDISC_WANT = 1 +const IP_RECVERR = 11 +const IP_RECVERR_RFC4884 = 26 +const IP_RECVFRAGSIZE = 25 +const IP_RECVOPTS = 6 +const IP_RECVORIGDSTADDR = 20 +const IP_RECVRETOPTS = 7 +const IP_RECVTOS = 13 +const IP_RECVTTL = 12 +const IP_RETOPTS = 7 +const IP_ROUTER_ALERT = 5 +const IP_TOS = 1 +const IP_TRANSPARENT = 19 +const IP_TTL = 2 +const IP_UNBLOCK_SOURCE = 37 +const IP_UNICAST_IF = 50 +const IP_XFRM_POLICY = 17 +const IQUERY = 0 +const LOCALDOMAINPARTS = 2 +const MAXCDNAME = 255 +const MAXDFLSRCH = 3 +const MAXDNAME = 1025 +const MAXDNSRCH = 6 +const MAXLABEL = 63 +const MAXNS = 3 +const MAXRESOLVSORT = 10 +const NAMESERVER_PORT = 53 +const NOERROR = 0 +const NOTAUTH = 0 +const NOTIMP = 0 +const NOTZONE = 0 +const NS_ALG_DH = 2 +const NS_ALG_DSA = 3 +const NS_ALG_DSS = 3 +const NS_ALG_EXPIRE_ONLY = 253 +const NS_ALG_MD5RSA = 1 +const NS_ALG_PRIVATE_OID = 254 +const NS_CMPRSFLGS = 192 +const NS_DEFAULTPORT = 53 +const NS_DSA_MAX_BYTES = 405 +const NS_DSA_MIN_SIZE = 213 +const NS_DSA_SIG_SIZE = 41 +const NS_HFIXEDSZ = 12 +const NS_IN6ADDRSZ = 16 +const NS_INADDRSZ = 4 +const NS_INT16SZ = 2 +const NS_INT32SZ = 4 +const NS_INT8SZ = 1 +const NS_KEY_EXTENDED_FLAGS = 4096 +const NS_KEY_NAME_ENTITY = 512 +const NS_KEY_NAME_RESERVED = 768 +const NS_KEY_NAME_TYPE = 768 +const NS_KEY_NAME_USER = 0 +const NS_KEY_NAME_ZONE = 256 +const NS_KEY_NO_AUTH = 32768 +const NS_KEY_NO_CONF = 16384 +const NS_KEY_PROT_ANY = 255 +const NS_KEY_PROT_DNSSEC = 3 +const NS_KEY_PROT_EMAIL = 2 +const NS_KEY_PROT_IPSEC = 4 +const NS_KEY_PROT_TLS = 1 +const NS_KEY_RESERVED10 = 32 +const NS_KEY_RESERVED11 = 16 +const NS_KEY_RESERVED2 = 8192 +const NS_KEY_RESERVED4 = 2048 +const NS_KEY_RESERVED5 = 1024 +const NS_KEY_RESERVED8 = 128 +const NS_KEY_RESERVED9 = 64 +const NS_KEY_RESERVED_BITMASK = 11504 +const NS_KEY_RESERVED_BITMASK2 = 65535 +const NS_KEY_SIGNATORYMASK = 15 +const NS_KEY_TYPEMASK = 49152 +const NS_KEY_TYPE_AUTH_CONF = 0 +const NS_KEY_TYPE_AUTH_ONLY = 16384 +const NS_KEY_TYPE_CONF_ONLY = 32768 +const NS_KEY_TYPE_NO_KEY = 49152 +const NS_MAXCDNAME = 255 +const NS_MAXDNAME = 1025 +const NS_MAXLABEL = 63 +const NS_MAXMSG = 65535 +const NS_MD5RSA_MAX_BASE64 = 10928 +const NS_MD5RSA_MAX_BITS = 4096 +const NS_MD5RSA_MAX_BYTES = 8195 +const NS_MD5RSA_MAX_SIZE = 512 +const NS_MD5RSA_MIN_BITS = 512 +const NS_MD5RSA_MIN_SIZE = 64 +const NS_NOTIFY_OP = 0 +const NS_NXT_BITS = 8 +const NS_NXT_MAX = 127 +const NS_OPT_DNSSEC_OK = 32768 +const NS_OPT_NSID = 3 +const NS_PACKETSZ = 512 +const NS_QFIXEDSZ = 4 +const NS_RRFIXEDSZ = 10 +const NS_SIG_ALG = 2 +const NS_SIG_EXPIR = 8 +const NS_SIG_FOOT = 16 +const NS_SIG_LABELS = 3 +const NS_SIG_OTTL = 4 +const NS_SIG_SIGNED = 12 +const NS_SIG_SIGNER = 18 +const NS_SIG_TYPE = 0 +const NS_TSIG_ALG_HMAC_MD5 = "HMAC-MD5.SIG-ALG.REG.INT" +const NS_TSIG_ERROR_FORMERR = -12 +const NS_TSIG_ERROR_NO_SPACE = -11 +const NS_TSIG_ERROR_NO_TSIG = -10 +const NS_TSIG_FUDGE = 300 +const NS_TSIG_TCP_COUNT = 100 +const NS_UPDATE_OP = 0 +const NXDOMAIN = 0 +const NXRRSET = 0 +const PACKETSZ = 512 +const PRIX16 = "X" +const PRIX32 = "X" +const PRIX8 = "X" +const PRIXFAST16 = "X" +const PRIXFAST32 = "X" +const PRIXFAST8 = "X" +const PRIXLEAST16 = "X" +const PRIXLEAST32 = "X" +const PRIXLEAST8 = "X" +const PRId16 = "d" +const PRId32 = "d" +const PRId8 = "d" +const PRIdFAST16 = "d" +const PRIdFAST32 = "d" +const PRIdFAST8 = "d" +const PRIdLEAST16 = "d" +const PRIdLEAST32 = "d" +const PRIdLEAST8 = "d" +const PRIi16 = "i" +const PRIi32 = "i" +const PRIi8 = "i" +const PRIiFAST16 = "i" +const PRIiFAST32 = "i" +const PRIiFAST8 = "i" +const PRIiLEAST16 = "i" +const PRIiLEAST32 = "i" +const PRIiLEAST8 = "i" +const PRIo16 = "o" +const PRIo32 = "o" +const PRIo8 = "o" +const PRIoFAST16 = "o" +const PRIoFAST32 = "o" +const PRIoFAST8 = "o" +const PRIoLEAST16 = "o" +const PRIoLEAST32 = "o" +const PRIoLEAST8 = "o" +const PRIu16 = "u" +const PRIu32 = "u" +const PRIu8 = "u" +const PRIuFAST16 = "u" +const PRIuFAST32 = "u" +const PRIuFAST8 = "u" +const PRIuLEAST16 = "u" +const PRIuLEAST32 = "u" +const PRIuLEAST8 = "u" +const PRIx16 = "x" +const PRIx32 = "x" +const PRIx8 = "x" +const PRIxFAST16 = "x" +const PRIxFAST32 = "x" +const PRIxFAST8 = "x" +const PRIxLEAST16 = "x" +const PRIxLEAST32 = "x" +const PRIxLEAST8 = "x" +const PUTLONG = 0 +const PUTSHORT = 0 +const QFIXEDSZ = 4 +const QUERY = 0 +const REFUSED = 0 +const RES_AAONLY = 4 +const RES_BLAST = 131072 +const RES_DEBUG = 2 +const RES_DEFAULT = 524992 +const RES_DEFNAMES = 128 +const RES_DFLRETRY = 2 +const RES_DNSRCH = 512 +const RES_EXHAUSTIVE = 1 +const RES_F_CONN = 2 +const RES_F_EDNS0ERR = 4 +const RES_F_VC = 1 +const RES_IGNTC = 32 +const RES_INIT = 1 +const RES_INSECURE1 = 1024 +const RES_INSECURE2 = 2048 +const RES_KEEPTSIG = 65536 +const RES_MAXNDOTS = 15 +const RES_MAXRETRANS = 30 +const RES_MAXRETRY = 5 +const RES_MAXTIME = 65535 +const RES_NOALIASES = 4096 +const RES_NOCHECKNAME = 32768 +const RES_NOIP6DOTINT = 524288 +const RES_PRF_ADD = 128 +const RES_PRF_ANS = 32 +const RES_PRF_AUTH = 64 +const RES_PRF_CLASS = 4 +const RES_PRF_CMD = 8 +const RES_PRF_HEAD1 = 256 +const RES_PRF_HEAD2 = 512 +const RES_PRF_HEADX = 2048 +const RES_PRF_INIT = 16384 +const RES_PRF_QUERY = 4096 +const RES_PRF_QUES = 16 +const RES_PRF_REPLY = 8192 +const RES_PRF_STATS = 1 +const RES_PRF_TTLID = 1024 +const RES_PRF_UPDATE = 2 +const RES_PRIMARY = 16 +const RES_RECURSE = 64 +const RES_ROTATE = 16384 +const RES_SNGLKUP = 2097152 +const RES_SNGLKUPREOP = 4194304 +const RES_STAYOPEN = 256 +const RES_TIMEOUT = 5 +const RES_USEBSTRING = 262144 +const RES_USEVC = 8 +const RES_USE_DNSSEC = 8388608 +const RES_USE_EDNS0 = 1048576 +const RES_USE_INET6 = 8192 +const RRFIXEDSZ = 10 +const SCNd16 = "hd" +const SCNd32 = "d" +const SCNd8 = "hhd" +const SCNdFAST16 = "d" +const SCNdFAST32 = "d" +const SCNdFAST8 = "hhd" +const SCNdLEAST16 = "hd" +const SCNdLEAST32 = "d" +const SCNdLEAST8 = "hhd" +const SCNi16 = "hi" +const SCNi32 = "i" +const SCNi8 = "hhi" +const SCNiFAST16 = "i" +const SCNiFAST32 = "i" +const SCNiFAST8 = "hhi" +const SCNiLEAST16 = "hi" +const SCNiLEAST32 = "i" +const SCNiLEAST8 = "hhi" +const SCNo16 = "ho" +const SCNo32 = "o" +const SCNo8 = "hho" +const SCNoFAST16 = "o" +const SCNoFAST32 = "o" +const SCNoFAST8 = "hho" +const SCNoLEAST16 = "ho" +const SCNoLEAST32 = "o" +const SCNoLEAST8 = "hho" +const SCNu16 = "hu" +const SCNu32 = "u" +const SCNu8 = "hhu" +const SCNuFAST16 = "u" +const SCNuFAST32 = "u" +const SCNuFAST8 = "hhu" +const SCNuLEAST16 = "hu" +const SCNuLEAST32 = "u" +const SCNuLEAST8 = "hhu" +const SCNx16 = "hx" +const SCNx32 = "x" +const SCNx8 = "hhx" +const SCNxFAST16 = "x" +const SCNxFAST32 = "x" +const SCNxFAST8 = "hhx" +const SCNxLEAST16 = "hx" +const SCNxLEAST32 = "x" +const SCNxLEAST8 = "hhx" +const SERVFAIL = 0 +const STATUS = 0 +const S_ADDT = 0 +const S_PREREQ = 0 +const S_UPDATE = 0 +const S_ZONE = 0 +const T_A = 0 +const T_A6 = 0 +const T_AAAA = 0 +const T_AFSDB = 0 +const T_ANY = 0 +const T_ATMA = 0 +const T_AVC = 0 +const T_AXFR = 0 +const T_CAA = 0 +const T_CDNSKEY = 0 +const T_CDS = 0 +const T_CNAME = 0 +const T_CSYNC = 0 +const T_DHCID = 0 +const T_DLV = 0 +const T_DNAME = 0 +const T_DNSKEY = 0 +const T_DS = 0 +const T_EID = 0 +const T_EUI48 = 0 +const T_EUI64 = 0 +const T_GID = 0 +const T_GPOS = 0 +const T_HINFO = 0 +const T_HIP = 0 +const T_IPSECKEY = 0 +const T_ISDN = 0 +const T_IXFR = 0 +const T_KEY = 0 +const T_L32 = 0 +const T_L64 = 0 +const T_LOC = 0 +const T_LP = 0 +const T_MAILA = 0 +const T_MAILB = 0 +const T_MB = 0 +const T_MD = 0 +const T_MF = 0 +const T_MG = 0 +const T_MINFO = 0 +const T_MR = 0 +const T_MX = 0 +const T_NAPTR = 0 +const T_NID = 0 +const T_NIMLOC = 0 +const T_NINFO = 0 +const T_NS = 0 +const T_NSAP = 0 +const T_NSAP_PTR = 0 +const T_NSEC = 0 +const T_NSEC3 = 0 +const T_NSEC3PARAM = 0 +const T_NULL = 0 +const T_NXT = 0 +const T_OPENPGPKEY = 0 +const T_PTR = 0 +const T_PX = 0 +const T_RKEY = 0 +const T_RP = 0 +const T_RRSIG = 0 +const T_RT = 0 +const T_SIG = 0 +const T_SMIMEA = 0 +const T_SOA = 0 +const T_SPF = 0 +const T_SRV = 0 +const T_SSHFP = 0 +const T_TA = 0 +const T_TALINK = 0 +const T_TKEY = 0 +const T_TLSA = 0 +const T_TSIG = 0 +const T_TXT = 0 +const T_UID = 0 +const T_UINFO = 0 +const T_UNSPEC = 0 +const T_URI = 0 +const T_WKS = 0 +const T_X25 = 0 +const YXDOMAIN = 0 +const YXRRSET = 0 +const _PATH_RESCONF = "/etc/resolv.conf" +const __BIND = 19950621 +const __NAMESER = 19991006 +const __PRI64 = "l" +const __PRIPTR = "l" +const __RES = 19960801 +const __UAPI_DEF_IN6_ADDR = 0 +const __UAPI_DEF_IN6_ADDR_ALT = 0 +const __UAPI_DEF_IN6_PKTINFO = 0 +const __UAPI_DEF_IN_ADDR = 0 +const __UAPI_DEF_IN_CLASS = 0 +const __UAPI_DEF_IN_IPPROTO = 0 +const __UAPI_DEF_IN_PKTINFO = 0 +const __UAPI_DEF_IP6_MTUINFO = 0 +const __UAPI_DEF_IPPROTO_V6 = 0 +const __UAPI_DEF_IPV6_MREQ = 0 +const __UAPI_DEF_IPV6_OPTIONS = 0 +const __UAPI_DEF_IP_MREQ = 0 +const __UAPI_DEF_SOCKADDR_IN = 0 +const __UAPI_DEF_SOCKADDR_IN6 = 0 +const _res = 0 + +type Tns_sect = int32 + +type ___ns_sect = int32 + +const _ns_s_qd = 0 +const _ns_s_zn = 0 +const _ns_s_an = 1 +const _ns_s_pr = 1 +const _ns_s_ns = 2 +const _ns_s_ud = 2 +const _ns_s_ar = 3 +const _ns_s_max = 4 + +type Tns_msg = struct { + F_msg uintptr + F_eom uintptr + F_id Tuint16_t + F_flags Tuint16_t + F_counts [4]Tuint16_t + F_sections [4]uintptr + F_sect Tns_sect + F_rrnum int32 + F_msg_ptr uintptr +} + +type t__ns_msg = Tns_msg + +type T_ns_flagdata = struct { + Fmask int32 + Fshift int32 +} + +type Tns_rr = struct { + Fname [1025]uint8 + Ftype1 Tuint16_t + Frr_class Tuint16_t + Fttl Tuint32_t + Frdlength Tuint16_t + Frdata uintptr +} + +type t__ns_rr = Tns_rr + +type Tns_flag = int32 + +type ___ns_flag = int32 + +const _ns_f_qr = 0 +const _ns_f_opcode = 1 +const _ns_f_aa = 2 +const _ns_f_tc = 3 +const _ns_f_rd = 4 +const _ns_f_ra = 5 +const _ns_f_z = 6 +const _ns_f_ad = 7 +const _ns_f_cd = 8 +const _ns_f_rcode = 9 +const _ns_f_max = 10 + +type Tns_opcode = int32 + +type ___ns_opcode = int32 + +const _ns_o_query = 0 +const _ns_o_iquery = 1 +const _ns_o_status = 2 +const _ns_o_notify = 4 +const _ns_o_update = 5 +const _ns_o_max = 6 + +type Tns_rcode = int32 + +type ___ns_rcode = int32 + +const _ns_r_noerror = 0 +const _ns_r_formerr = 1 +const _ns_r_servfail = 2 +const _ns_r_nxdomain = 3 +const _ns_r_notimpl = 4 +const _ns_r_refused = 5 +const _ns_r_yxdomain = 6 +const _ns_r_yxrrset = 7 +const _ns_r_nxrrset = 8 +const _ns_r_notauth = 9 +const _ns_r_notzone = 10 +const _ns_r_max = 11 +const _ns_r_badvers = 16 +const _ns_r_badsig = 16 +const _ns_r_badkey = 17 +const _ns_r_badtime = 18 + +type Tns_update_operation = int32 + +type ___ns_update_operation = int32 + +const _ns_uop_delete = 0 +const _ns_uop_add = 1 +const _ns_uop_max = 2 + +type Tns_tsig_key1 = struct { + Fname [1025]uint8 + Falg [1025]uint8 + Fdata uintptr + Flen1 int32 +} + +type Tns_tsig_key = struct { + Fname [1025]uint8 + Falg [1025]uint8 + Fdata uintptr + Flen1 int32 +} + +type Tns_tcp_tsig_state1 = struct { + Fcounter int32 + Fkey uintptr + Fctx uintptr + Fsig [512]uint8 + Fsiglen int32 +} + +type Tns_tcp_tsig_state = struct { + Fcounter int32 + Fkey uintptr + Fctx uintptr + Fsig [512]uint8 + Fsiglen int32 +} + +type Tns_type = int32 + +type ___ns_type = int32 + +const _ns_t_invalid = 0 +const _ns_t_a = 1 +const _ns_t_ns = 2 +const _ns_t_md = 3 +const _ns_t_mf = 4 +const _ns_t_cname = 5 +const _ns_t_soa = 6 +const _ns_t_mb = 7 +const _ns_t_mg = 8 +const _ns_t_mr = 9 +const _ns_t_null = 10 +const _ns_t_wks = 11 +const _ns_t_ptr = 12 +const _ns_t_hinfo = 13 +const _ns_t_minfo = 14 +const _ns_t_mx = 15 +const _ns_t_txt = 16 +const _ns_t_rp = 17 +const _ns_t_afsdb = 18 +const _ns_t_x25 = 19 +const _ns_t_isdn = 20 +const _ns_t_rt = 21 +const _ns_t_nsap = 22 +const _ns_t_nsap_ptr = 23 +const _ns_t_sig = 24 +const _ns_t_key = 25 +const _ns_t_px = 26 +const _ns_t_gpos = 27 +const _ns_t_aaaa = 28 +const _ns_t_loc = 29 +const _ns_t_nxt = 30 +const _ns_t_eid = 31 +const _ns_t_nimloc = 32 +const _ns_t_srv = 33 +const _ns_t_atma = 34 +const _ns_t_naptr = 35 +const _ns_t_kx = 36 +const _ns_t_cert = 37 +const _ns_t_a6 = 38 +const _ns_t_dname = 39 +const _ns_t_sink = 40 +const _ns_t_opt = 41 +const _ns_t_apl = 42 +const _ns_t_ds = 43 +const _ns_t_sshfp = 44 +const _ns_t_ipseckey = 45 +const _ns_t_rrsig = 46 +const _ns_t_nsec = 47 +const _ns_t_dnskey = 48 +const _ns_t_dhcid = 49 +const _ns_t_nsec3 = 50 +const _ns_t_nsec3param = 51 +const _ns_t_tlsa = 52 +const _ns_t_smimea = 53 +const _ns_t_hip = 55 +const _ns_t_ninfo = 56 +const _ns_t_rkey = 57 +const _ns_t_talink = 58 +const _ns_t_cds = 59 +const _ns_t_cdnskey = 60 +const _ns_t_openpgpkey = 61 +const _ns_t_csync = 62 +const _ns_t_spf = 99 +const _ns_t_uinfo = 100 +const _ns_t_uid = 101 +const _ns_t_gid = 102 +const _ns_t_unspec = 103 +const _ns_t_nid = 104 +const _ns_t_l32 = 105 +const _ns_t_l64 = 106 +const _ns_t_lp = 107 +const _ns_t_eui48 = 108 +const _ns_t_eui64 = 109 +const _ns_t_tkey = 249 +const _ns_t_tsig = 250 +const _ns_t_ixfr = 251 +const _ns_t_axfr = 252 +const _ns_t_mailb = 253 +const _ns_t_maila = 254 +const _ns_t_any = 255 +const _ns_t_zxfr = 256 +const _ns_t_uri = 256 +const _ns_t_caa = 257 +const _ns_t_avc = 258 +const _ns_t_ta = 32768 +const _ns_t_dlv = 32769 +const _ns_t_max = 65536 + +type Tns_class = int32 + +type ___ns_class = int32 + +const _ns_c_invalid = 0 +const _ns_c_in = 1 +const _ns_c_2 = 2 +const _ns_c_chaos = 3 +const _ns_c_hs = 4 +const _ns_c_none = 254 +const _ns_c_any = 255 +const _ns_c_max = 65536 + +type Tns_key_types = int32 + +type ___ns_key_types = int32 + +const _ns_kt_rsa = 1 +const _ns_kt_dh = 2 +const _ns_kt_dsa = 3 +const _ns_kt_private = 254 + +type Tns_cert_types = int32 + +type ___ns_cert_types = int32 + +const _cert_t_pkix = 1 +const _cert_t_spki = 2 +const _cert_t_pgp = 3 +const _cert_t_url = 253 +const _cert_t_oid = 254 + +type THEADER = struct { + F__ccgo0 uint32 + F__ccgo4 uint32 + F__ccgo8 uint32 +} + +type Timaxdiv_t = struct { + Fquot Tintmax_t + Frem Tintmax_t +} + +type Tin_port_t = uint16 + +type Tin_addr_t = uint32 + +type Tin_addr = struct { + Fs_addr Tin_addr_t +} + +type Tsockaddr_in = struct { + Fsin_family Tsa_family_t + Fsin_port Tin_port_t + Fsin_addr Tin_addr + Fsin_zero [8]Tuint8_t +} + +type Tin6_addr = struct { + F__in6_union struct { + F__s6_addr16 [0][8]Tuint16_t + F__s6_addr32 [0][4]Tuint32_t + F__s6_addr [16]Tuint8_t + } +} + +type Tsockaddr_in6 = struct { + Fsin6_family Tsa_family_t + Fsin6_port Tin_port_t + Fsin6_flowinfo Tuint32_t + Fsin6_addr Tin6_addr + Fsin6_scope_id Tuint32_t +} + +type Tipv6_mreq = struct { + Fipv6mr_multiaddr Tin6_addr + Fipv6mr_interface uint32 +} + +type Tip_opts = struct { + Fip_dst Tin_addr + Fip_opts [40]uint8 +} + +type Tres_state = uintptr + +type t__res_state = struct { + Fretrans int32 + Fretry int32 + Foptions uint64 + Fnscount int32 + Fnsaddr_list [3]Tsockaddr_in + Fid uint16 + Fdnsrch [7]uintptr + Fdefdname [256]uint8 + Fpfcode uint64 + F__ccgo392 uint32 + Fsort_list [10]struct { + Faddr Tin_addr + Fmask Tuint32_t + } + Fqhook uintptr + Frhook uintptr + Fres_h_errno int32 + F_vcsock int32 + F_flags uint32 + F_u struct { + F_ext [0]struct { + Fnscount Tuint16_t + Fnsmap [3]Tuint16_t + Fnssocks [3]int32 + Fnscount6 Tuint16_t + Fnsinit Tuint16_t + Fnsaddrs [3]uintptr + F_initstamp [2]uint32 + } + Fpad [52]uint8 + F__ccgo_pad2 [4]byte + } +} + +type Tres_sym = struct { + Fnumber int32 + Fname uintptr + Fhumanname uintptr +} + +/* RFC 1035 message compression */ + +// C documentation +// +// /* label start offsets of a compressed domain name s */ +func _getoffs(tls *TLS, offs uintptr, base uintptr, s uintptr) (r int32) { + var i, v2 int32 + _, _ = i, v2 + i = 0 + for { + for int32(*(*uint8)(unsafe.Pointer(s)))&int32(0xc0) != 0 { + if int32(*(*uint8)(unsafe.Pointer(s)))&int32(0xc0) != int32(0xc0) { + return 0 + } + s = base + uintptr(int32(*(*uint8)(unsafe.Pointer(s)))&Int32FromInt32(0x3f)<= int64(0x4000) { + return 0 + } + v2 = i + i++ + *(*int16)(unsafe.Pointer(offs + uintptr(v2)*2)) = int16(int64(s) - int64(base)) + s += uintptr(int32(*(*uint8)(unsafe.Pointer(s))) + int32(1)) + goto _1 + _1: + } + return r +} + +// C documentation +// +// /* label lengths of an ascii domain name s */ +func _getlens(tls *TLS, lens uintptr, s uintptr, l int32) (r int32) { + var i, j, k, v3, v4 int32 + _, _, _, _, _ = i, j, k, v3, v4 + i = 0 + j = 0 + k = 0 + for { + for { + if !(j < l && int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != int32('.')) { + break + } + goto _2 + _2: + ; + j++ + } + if uint32(j-k)-uint32(1) > uint32(62) { + return 0 + } + v3 = i + i++ + *(*uint8)(unsafe.Pointer(lens + uintptr(v3))) = uint8(j - k) + if j == l { + return i + } + j++ + v4 = j + k = v4 + goto _1 + _1: + } + return r +} + +// C documentation +// +// /* longest suffix match of an ascii domain with a compressed domain name dn */ +func _match(tls *TLS, offset uintptr, base uintptr, dn uintptr, end uintptr, lens uintptr, nlen int32) (r int32) { + bp := tls.Alloc(256) + defer tls.Free(256) + var l, m, noff, o, v2, v3 int32 + var _ /* offs at bp+0 */ [128]int16 + _, _, _, _, _, _ = l, m, noff, o, v2, v3 + m = 0 + noff = _getoffs(tls, bp, base, dn) + if !(noff != 0) { + return 0 + } + for { + nlen-- + v2 = nlen + l = int32(*(*uint8)(unsafe.Pointer(lens + uintptr(v2)))) + noff-- + v3 = noff + o = int32((*(*[128]int16)(unsafe.Pointer(bp)))[v3]) + end -= uintptr(l) + if l != int32(*(*uint8)(unsafe.Pointer(base + uintptr(o)))) || Xmemcmp(tls, base+uintptr(o)+uintptr(1), end, uint64(l)) != 0 { + return m + } + *(*int32)(unsafe.Pointer(offset)) = o + m += l + if nlen != 0 { + m++ + } + if !(nlen != 0) || !(noff != 0) { + return m + } + end-- + goto _1 + _1: + } + return r +} + +func Xdn_comp(tls *TLS, src uintptr, dst uintptr, space int32, dnptrs uintptr, lastdnptr uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v src=%v dst=%v space=%v dnptrs=%v lastdnptr=%v, (%v:)", tls, src, dst, space, dnptrs, lastdnptr, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(144) + defer tls.Free(144) + var bestlen, bestoff, i, j, m, n, v3, v4, v5, v6, v7 int32 + var end, p, v8 uintptr + var l Tsize_t + var _ /* lens at bp+4 */ [127]uint8 + var _ /* offset at bp+0 */ int32 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bestlen, bestoff, end, i, j, l, m, n, p, v3, v4, v5, v6, v7, v8 + m = 0 + bestlen = 0 + l = Xstrnlen(tls, src, uint64(255)) + if l != 0 && int32(*(*uint8)(unsafe.Pointer(src + uintptr(l-uint64(1))))) == int32('.') { + l-- + } + if l > uint64(253) || space <= 0 { + return -int32(1) + } + if !(l != 0) { + *(*uint8)(unsafe.Pointer(dst)) = uint8(0) + return int32(1) + } + end = src + uintptr(l) + n = _getlens(tls, bp+4, src, int32(l)) + if !(n != 0) { + return -int32(1) + } + p = dnptrs + if p != 0 && *(*uintptr)(unsafe.Pointer(p)) != 0 { + p += 8 + for { + if !(*(*uintptr)(unsafe.Pointer(p)) != 0) { + break + } + m = _match(tls, bp, *(*uintptr)(unsafe.Pointer(dnptrs)), *(*uintptr)(unsafe.Pointer(p)), end, bp+4, n) + if m > bestlen { + bestlen = m + bestoff = *(*int32)(unsafe.Pointer(bp)) + if uint64(m) == l { + break + } + } + goto _1 + _1: + ; + p += 8 + } + } + /* encode unmatched part */ + if uint64(space) < l-uint64(bestlen)+uint64(2)+BoolUint64(uint64(bestlen-Int32FromInt32(1)) < l-Uint64FromInt32(1)) { + return -int32(1) + } + Xmemcpy(tls, dst+uintptr(1), src, l-uint64(bestlen)) + v3 = Int32FromInt32(0) + j = v3 + i = v3 + for { + if !(uint64(i) < l-uint64(bestlen)) { + break + } + *(*uint8)(unsafe.Pointer(dst + uintptr(i))) = (*(*[127]uint8)(unsafe.Pointer(bp + 4)))[j] + goto _2 + _2: + ; + v4 = j + j++ + i += int32((*(*[127]uint8)(unsafe.Pointer(bp + 4)))[v4]) + int32(1) + } + /* add tail */ + if bestlen != 0 { + v5 = i + i++ + *(*uint8)(unsafe.Pointer(dst + uintptr(v5))) = uint8(int32(0xc0) | bestoff>>int32(8)) + v6 = i + i++ + *(*uint8)(unsafe.Pointer(dst + uintptr(v6))) = uint8(bestoff) + } else { + v7 = i + i++ + *(*uint8)(unsafe.Pointer(dst + uintptr(v7))) = uint8(0) + } + /* save dst pointer */ + if i > int32(2) && lastdnptr != 0 && dnptrs != 0 && *(*uintptr)(unsafe.Pointer(dnptrs)) != 0 { + for *(*uintptr)(unsafe.Pointer(p)) != 0 { + p += 8 + } + if p+uintptr(1)*8 < lastdnptr { + v8 = p + p += 8 + *(*uintptr)(unsafe.Pointer(v8)) = dst + *(*uintptr)(unsafe.Pointer(p)) = uintptr(0) + } + } + return i +} + +func X__dn_expand(tls *TLS, base uintptr, end uintptr, src uintptr, dest uintptr, space int32) (r int32) { + if __ccgo_strace { + trc("tls=%v base=%v end=%v src=%v dest=%v space=%v, (%v:)", tls, base, end, src, dest, space, origin(2)) + defer func() { trc("-> %v", r) }() + } + var dbegin, dend, p, v3, v4, v6, v7 uintptr + var i, j, len1, v1, v5 int32 + _, _, _, _, _, _, _, _, _, _, _, _ = dbegin, dend, i, j, len1, p, v1, v3, v4, v5, v6, v7 + p = src + dbegin = dest + len1 = -int32(1) + if p == end || space <= 0 { + return -int32(1) + } + if space > int32(254) { + v1 = int32(254) + } else { + v1 = space + } + dend = dest + uintptr(v1) + /* detect reference loop using an iteration counter */ + i = 0 + for { + if !(int64(i) < int64(end)-int64(base)) { + break + } + /* loop invariants: p= int64(end)-int64(base) { + return -int32(1) + } + p = base + uintptr(j) + } else { + if *(*uint8)(unsafe.Pointer(p)) != 0 { + if dest != dbegin { + v3 = dest + dest++ + *(*uint8)(unsafe.Pointer(v3)) = uint8('.') + } + v4 = p + p++ + j = int32(*(*uint8)(unsafe.Pointer(v4))) + if int64(j) >= int64(end)-int64(p) || int64(j) >= int64(dend)-int64(dest) { + return -int32(1) + } + for { + v5 = j + j-- + if !(v5 != 0) { + break + } + v6 = dest + dest++ + v7 = p + p++ + *(*uint8)(unsafe.Pointer(v6)) = *(*uint8)(unsafe.Pointer(v7)) + } + } else { + *(*uint8)(unsafe.Pointer(dest)) = uint8(0) + if len1 < 0 { + len1 = int32(int64(p+uintptr(1)) - int64(src)) + } + return len1 + } + } + goto _2 + _2: + ; + i += int32(2) + } + return -int32(1) +} + +func Xdn_expand(tls *TLS, base uintptr, end uintptr, src uintptr, dest uintptr, space int32) (r int32) { + if __ccgo_strace { + trc("tls=%v base=%v end=%v src=%v dest=%v space=%v, (%v:)", tls, base, end, src, dest, space, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__dn_expand(tls, base, end, src, dest, space) +} + +func Xdn_skipname(tls *TLS, s uintptr, end uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v end=%v, (%v:)", tls, s, end, origin(2)) + defer func() { trc("-> %v", r) }() + } + var p uintptr + _ = p + p = s + for p < end { + if !(*(*uint8)(unsafe.Pointer(p)) != 0) { + return int32(int64(p) - int64(s) + int64(1)) + } else { + if int32(*(*uint8)(unsafe.Pointer(p))) >= int32(192) { + if p+uintptr(1) < end { + return int32(int64(p) - int64(s) + int64(2)) + } else { + break + } + } else { + if int64(end)-int64(p) < int64(int32(*(*uint8)(unsafe.Pointer(p)))+int32(1)) { + break + } else { + p += uintptr(int32(*(*uint8)(unsafe.Pointer(p))) + int32(1)) + } + } + } + } + return -int32(1) +} + +const AI_ADDRCONFIG = 32 +const AI_ALL = 16 +const AI_CANONNAME = 2 +const AI_NUMERICHOST = 4 +const AI_NUMERICSERV = 1024 +const AI_PASSIVE = 1 +const AI_V4MAPPED = 8 +const EAI_AGAIN = -3 +const EAI_BADFLAGS = -1 +const EAI_FAIL = -4 +const EAI_FAMILY = -6 +const EAI_MEMORY = -10 +const EAI_NODATA = -5 +const EAI_NONAME = -2 +const EAI_OVERFLOW = -12 +const EAI_SERVICE = -8 +const EAI_SOCKTYPE = -7 +const EAI_SYSTEM = -11 +const MAXADDRS = 48 +const MAXSERVS = 2 +const NI_DGRAM = 16 +const NI_NAMEREQD = 8 +const NI_NOFQDN = 4 +const NI_NUMERICHOST = 1 +const NI_NUMERICSCOPE = 256 +const NI_NUMERICSERV = 2 + +type Taddrinfo = struct { + Fai_flags int32 + Fai_family int32 + Fai_socktype int32 + Fai_protocol int32 + Fai_addrlen Tsocklen_t + Fai_addr uintptr + Fai_canonname uintptr + Fai_next uintptr +} + +type Tnetent = struct { + Fn_name uintptr + Fn_aliases uintptr + Fn_addrtype int32 + Fn_net Tuint32_t +} + +type Thostent = struct { + Fh_name uintptr + Fh_aliases uintptr + Fh_addrtype int32 + Fh_length int32 + Fh_addr_list uintptr +} + +type Tservent = struct { + Fs_name uintptr + Fs_aliases uintptr + Fs_port int32 + Fs_proto uintptr +} + +type Tprotoent = struct { + Fp_name uintptr + Fp_aliases uintptr + Fp_proto int32 +} + +type Taibuf = struct { + Fai Taddrinfo + Fsa Tsa + Flock [1]int32 + Fslot int16 + Fref int16 +} + +type Taddress = struct { + Ffamily int32 + Fscopeid uint32 + Faddr [16]Tuint8_t + Fsortkey int32 +} + +type Tservice = struct { + Fport Tuint16_t + Fproto uint8 + Fsocktype uint8 +} + +type Tresolvconf = struct { + Fns [3]Taddress + Fnns uint32 + Fattempts uint32 + Fndots uint32 + Ftimeout uint32 +} + +func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v r=%v rlen=%v callback=%v ctx=%v, (%v:)", tls, r, rlen, callback, ctx, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var ancount, len1, qdcount, v1, v2 int32 + var p uintptr + _, _, _, _, _, _ = ancount, len1, p, qdcount, v1, v2 + if rlen < int32(12) { + return -int32(1) + } + if int32(*(*uint8)(unsafe.Pointer(r + 3)))&int32(15) != 0 { + return 0 + } + p = r + uintptr(12) + qdcount = int32(*(*uint8)(unsafe.Pointer(r + 4)))*int32(256) + int32(*(*uint8)(unsafe.Pointer(r + 5))) + ancount = int32(*(*uint8)(unsafe.Pointer(r + 6)))*int32(256) + int32(*(*uint8)(unsafe.Pointer(r + 7))) + for { + v1 = qdcount + qdcount-- + if !(v1 != 0) { + break + } + for int64(p)-int64(r) < int64(rlen) && uint32(*(*uint8)(unsafe.Pointer(p)))-uint32(1) < uint32(127) { + p++ + } + if p > r+uintptr(rlen)-uintptr(6) { + return -int32(1) + } + p += uintptr(int32(5) + BoolInt32(!!(*(*uint8)(unsafe.Pointer(p)) != 0))) + } + for { + v2 = ancount + ancount-- + if !(v2 != 0) { + break + } + for int64(p)-int64(r) < int64(rlen) && uint32(*(*uint8)(unsafe.Pointer(p)))-uint32(1) < uint32(127) { + p++ + } + if p > r+uintptr(rlen)-uintptr(12) { + return -int32(1) + } + p += uintptr(int32(1) + BoolInt32(!!(*(*uint8)(unsafe.Pointer(p)) != 0))) + len1 = int32(*(*uint8)(unsafe.Pointer(p + 8)))*int32(256) + int32(*(*uint8)(unsafe.Pointer(p + 9))) + if int64(len1+int32(10)) > int64(r+uintptr(rlen))-int64(p) { + return -int32(1) + } + if (*(*func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{callback})))(tls, ctx, int32(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { + return -int32(1) + } + p += uintptr(int32(10) + len1) + } + return 0 +} + +type Tsa = struct { + Fsin6 [0]Tsockaddr_in6 + Fsin Tsockaddr_in + F__ccgo_pad2 [12]byte +} + +func Xsethostent(tls *TLS, x int32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + } +} + +func Xgethostent(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uintptr(0) +} + +func Xgetnetent(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uintptr(0) +} + +func Xendhostent(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } +} + +func Xendnetent(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + Xendhostent(tls) +} + +func Xsetnetent(tls *TLS, x int32) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + } + Xsethostent(tls, x) +} + +const ARPD_FLUSH = 3 +const ARPD_LOOKUP = 2 +const ARPD_UPDATE = 1 +const ARPHRD_6LOWPAN = 825 +const ARPHRD_ADAPT = 264 +const ARPHRD_APPLETLK = 8 +const ARPHRD_ARCNET = 7 +const ARPHRD_ASH = 781 +const ARPHRD_ATM = 19 +const ARPHRD_AX25 = 3 +const ARPHRD_BIF = 775 +const ARPHRD_CAIF = 822 +const ARPHRD_CAN = 280 +const ARPHRD_CHAOS = 5 +const ARPHRD_CISCO = 513 +const ARPHRD_CSLIP = 257 +const ARPHRD_CSLIP6 = 259 +const ARPHRD_DDCMP = 517 +const ARPHRD_DLCI = 15 +const ARPHRD_ECONET = 782 +const ARPHRD_EETHER = 2 +const ARPHRD_ETHER = 1 +const ARPHRD_EUI64 = 27 +const ARPHRD_FCAL = 785 +const ARPHRD_FCFABRIC = 787 +const ARPHRD_FCPL = 786 +const ARPHRD_FCPP = 784 +const ARPHRD_FDDI = 774 +const ARPHRD_FRAD = 770 +const ARPHRD_HDLC = 513 +const ARPHRD_HIPPI = 780 +const ARPHRD_HWX25 = 272 +const ARPHRD_IEEE1394 = 24 +const ARPHRD_IEEE802 = 6 +const ARPHRD_IEEE80211 = 801 +const ARPHRD_IEEE80211_PRISM = 802 +const ARPHRD_IEEE80211_RADIOTAP = 803 +const ARPHRD_IEEE802154 = 804 +const ARPHRD_IEEE802154_MONITOR = 805 +const ARPHRD_IEEE802_TR = 800 +const ARPHRD_INFINIBAND = 32 +const ARPHRD_IP6GRE = 823 +const ARPHRD_IPDDP = 777 +const ARPHRD_IPGRE = 778 +const ARPHRD_IRDA = 783 +const ARPHRD_LAPB = 516 +const ARPHRD_LOCALTLK = 773 +const ARPHRD_LOOPBACK = 772 +const ARPHRD_METRICOM = 23 +const ARPHRD_NETLINK = 824 +const ARPHRD_NETROM = 0 +const ARPHRD_NONE = 65534 +const ARPHRD_PHONET = 820 +const ARPHRD_PHONET_PIPE = 821 +const ARPHRD_PIMREG = 779 +const ARPHRD_PPP = 512 +const ARPHRD_PRONET = 4 +const ARPHRD_RAWHDLC = 518 +const ARPHRD_RAWIP = 519 +const ARPHRD_ROSE = 270 +const ARPHRD_RSRVD = 260 +const ARPHRD_SIT = 776 +const ARPHRD_SKIP = 771 +const ARPHRD_SLIP = 256 +const ARPHRD_SLIP6 = 258 +const ARPHRD_TUNNEL = 768 +const ARPHRD_TUNNEL6 = 769 +const ARPHRD_VOID = 65535 +const ARPHRD_VSOCKMON = 826 +const ARPHRD_X25 = 271 +const ARPOP_InREPLY = 9 +const ARPOP_InREQUEST = 8 +const ARPOP_NAK = 10 +const ARPOP_REPLY = 2 +const ARPOP_REQUEST = 1 +const ARPOP_RREPLY = 4 +const ARPOP_RREQUEST = 3 +const ATF_COM = 2 +const ATF_DONTPUB = 64 +const ATF_MAGIC = 128 +const ATF_NETMASK = 32 +const ATF_PERM = 4 +const ATF_PUBL = 8 +const ATF_USETRAILERS = 16 +const ETHERMIN = 46 +const ETHERMTU = 1500 +const ETHERTYPE_AARP = 33011 +const ETHERTYPE_ARP = 2054 +const ETHERTYPE_AT = 32923 +const ETHERTYPE_IP = 2048 +const ETHERTYPE_IPV6 = 34525 +const ETHERTYPE_IPX = 33079 +const ETHERTYPE_LOOPBACK = 36864 +const ETHERTYPE_NTRAILER = 16 +const ETHERTYPE_PUP = 512 +const ETHERTYPE_REVARP = 32821 +const ETHERTYPE_SPRITE = 1280 +const ETHERTYPE_TRAIL = 4096 +const ETHERTYPE_VLAN = 33024 +const ETHER_ADDR_LEN = 6 +const ETHER_CRC_LEN = 4 +const ETHER_HDR_LEN = 14 +const ETHER_MAX_LEN = 1518 +const ETHER_MIN_LEN = 64 +const ETHER_TYPE_LEN = 2 +const ETH_ALEN = 6 +const ETH_DATA_LEN = 1500 +const ETH_FCS_LEN = 4 +const ETH_FRAME_LEN = 1514 +const ETH_HLEN = 14 +const ETH_MAX_MTU = 65535 +const ETH_MIN_MTU = 68 +const ETH_P_1588 = 35063 +const ETH_P_8021AD = 34984 +const ETH_P_8021AH = 35047 +const ETH_P_8021Q = 33024 +const ETH_P_80221 = 35095 +const ETH_P_802_2 = 4 +const ETH_P_802_3 = 1 +const ETH_P_802_3_MIN = 1536 +const ETH_P_802_EX1 = 34997 +const ETH_P_AARP = 33011 +const ETH_P_AF_IUCV = 64507 +const ETH_P_ALL = 3 +const ETH_P_AOE = 34978 +const ETH_P_ARCNET = 26 +const ETH_P_ARP = 2054 +const ETH_P_ATALK = 32923 +const ETH_P_ATMFATE = 34948 +const ETH_P_ATMMPOA = 34892 +const ETH_P_AX25 = 2 +const ETH_P_BATMAN = 17157 +const ETH_P_BPQ = 2303 +const ETH_P_CAIF = 247 +const ETH_P_CAN = 12 +const ETH_P_CANFD = 13 +const ETH_P_CFM = 35074 +const ETH_P_CONTROL = 22 +const ETH_P_CUST = 24582 +const ETH_P_DDCMP = 6 +const ETH_P_DEC = 24576 +const ETH_P_DIAG = 24581 +const ETH_P_DNA_DL = 24577 +const ETH_P_DNA_RC = 24578 +const ETH_P_DNA_RT = 24579 +const ETH_P_DSA = 27 +const ETH_P_DSA_8021Q = 56027 +const ETH_P_ECONET = 24 +const ETH_P_EDSA = 56026 +const ETH_P_ERSPAN = 35006 +const ETH_P_ERSPAN2 = 8939 +const ETH_P_FCOE = 35078 +const ETH_P_FIP = 35092 +const ETH_P_HDLC = 25 +const ETH_P_HSR = 35119 +const ETH_P_IBOE = 35093 +const ETH_P_IEEE802154 = 246 +const ETH_P_IEEEPUP = 2560 +const ETH_P_IEEEPUPAT = 2561 +const ETH_P_IFE = 60734 +const ETH_P_IP = 2048 +const ETH_P_IPV6 = 34525 +const ETH_P_IPX = 33079 +const ETH_P_IRDA = 23 +const ETH_P_LAT = 24580 +const ETH_P_LINK_CTL = 34924 +const ETH_P_LLDP = 35020 +const ETH_P_LOCALTALK = 9 +const ETH_P_LOOP = 96 +const ETH_P_LOOPBACK = 36864 +const ETH_P_MACSEC = 35045 +const ETH_P_MAP = 249 +const ETH_P_MOBITEX = 21 +const ETH_P_MPLS_MC = 34888 +const ETH_P_MPLS_UC = 34887 +const ETH_P_MRP = 35043 +const ETH_P_MVRP = 35061 +const ETH_P_NCSI = 35064 +const ETH_P_NSH = 35151 +const ETH_P_PAE = 34958 +const ETH_P_PAUSE = 34824 +const ETH_P_PHONET = 245 +const ETH_P_PPPTALK = 16 +const ETH_P_PPP_DISC = 34915 +const ETH_P_PPP_MP = 8 +const ETH_P_PPP_SES = 34916 +const ETH_P_PREAUTH = 35015 +const ETH_P_PRP = 35067 +const ETH_P_PUP = 512 +const ETH_P_PUPAT = 513 +const ETH_P_QINQ1 = 37120 +const ETH_P_QINQ2 = 37376 +const ETH_P_QINQ3 = 37632 +const ETH_P_RARP = 32821 +const ETH_P_SCA = 24583 +const ETH_P_SLOW = 34825 +const ETH_P_SNAP = 5 +const ETH_P_TDLS = 35085 +const ETH_P_TEB = 25944 +const ETH_P_TIPC = 35018 +const ETH_P_TRAILER = 28 +const ETH_P_TR_802_2 = 17 +const ETH_P_TSN = 8944 +const ETH_P_WAN_PPP = 7 +const ETH_P_WCCP = 34878 +const ETH_P_X25 = 2053 +const ETH_P_XDSA = 248 +const ETH_TLEN = 2 +const ETH_ZLEN = 60 +const MAX_ADDR_LEN = 7 +const __UAPI_DEF_ETHHDR = 0 + +type Tethhdr = struct { + Fh_dest [6]Tuint8_t + Fh_source [6]Tuint8_t + Fh_proto Tuint16_t +} + +type Tether_addr = struct { + Fether_addr_octet [6]Tuint8_t +} + +type Tether_header = struct { + Fether_dhost [6]Tuint8_t + Fether_shost [6]Tuint8_t + Fether_type Tuint16_t +} + +type Tarphdr = struct { + Far_hrd Tuint16_t + Far_pro Tuint16_t + Far_hln Tuint8_t + Far_pln Tuint8_t + Far_op Tuint16_t +} + +type Tarpreq = struct { + Farp_pa Tsockaddr + Farp_ha Tsockaddr + Farp_flags int32 + Farp_netmask Tsockaddr + Farp_dev [16]uint8 +} + +type Tarpreq_old = struct { + Farp_pa Tsockaddr + Farp_ha Tsockaddr + Farp_flags int32 + Farp_netmask Tsockaddr +} + +type Tarpd_request = struct { + Freq uint16 + Fip Tuint32_t + Fdev uint64 + Fstamp uint64 + Fupdated uint64 + Fha [7]uint8 +} + +type Tether_arp = struct { + Fea_hdr Tarphdr + Farp_sha [6]Tuint8_t + Farp_spa [4]Tuint8_t + Farp_tha [6]Tuint8_t + Farp_tpa [4]Tuint8_t +} + +func Xether_aton_r(tls *TLS, x uintptr, p_a uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v x=%v p_a=%v, (%v:)", tls, x, p_a, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ii int32 + var n uint64 + var _ /* a at bp+0 */ Tether_addr + var _ /* y at bp+8 */ uintptr + _, _ = ii, n + ii = 0 + for { + if !(ii < int32(6)) { + break + } + if ii != 0 { + if int32(*(*uint8)(unsafe.Pointer(x))) != int32(':') { + return uintptr(0) + } else { + x++ + } + } + n = Xstrtoul(tls, x, bp+8, int32(16)) + x = *(*uintptr)(unsafe.Pointer(bp + 8)) + if n > uint64(0xFF) { + return uintptr(0) + } /* bad byte */ + *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(ii))) = uint8(n) + goto _1 + _1: + ; + ii++ + } + if int32(*(*uint8)(unsafe.Pointer(x))) != 0 { + return uintptr(0) + } /* bad format */ + *(*Tether_addr)(unsafe.Pointer(p_a)) = *(*Tether_addr)(unsafe.Pointer(bp)) + return p_a +} + +func Xether_aton(tls *TLS, x uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xether_aton_r(tls, x, uintptr(unsafe.Pointer(&_a))) +} + +var _a Tether_addr + +func Xether_ntoa_r(tls *TLS, p_a uintptr, x uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v p_a=%v x=%v, (%v:)", tls, p_a, x, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ii int32 + var y, v2 uintptr + _, _, _ = ii, y, v2 + y = x + ii = 0 + for { + if !(ii < int32(6)) { + break + } + if ii == 0 { + v2 = __ccgo_ts + 971 + } else { + v2 = __ccgo_ts + 976 + } + x += uintptr(Xsprintf(tls, x, v2, VaList(bp+8, int32(*(*Tuint8_t)(unsafe.Pointer(p_a + uintptr(ii))))))) + goto _1 + _1: + ; + ii++ + } + return y +} + +func Xether_ntoa(tls *TLS, p_a uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v p_a=%v, (%v:)", tls, p_a, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xether_ntoa_r(tls, p_a, uintptr(unsafe.Pointer(&_x))) +} + +var _x [18]uint8 + +func Xether_line(tls *TLS, l uintptr, e uintptr, hostname uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v l=%v e=%v hostname=%v, (%v:)", tls, l, e, hostname, origin(2)) + defer func() { trc("-> %v", r) }() + } + return -int32(1) +} + +func Xether_ntohost(tls *TLS, hostname uintptr, e uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v hostname=%v e=%v, (%v:)", tls, hostname, e, origin(2)) + defer func() { trc("-> %v", r) }() + } + return -int32(1) +} + +func Xether_hostton(tls *TLS, hostname uintptr, e uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v hostname=%v e=%v, (%v:)", tls, hostname, e, origin(2)) + defer func() { trc("-> %v", r) }() + } + return -int32(1) +} + +func Xfreeaddrinfo(tls *TLS, p uintptr) { + if __ccgo_strace { + trc("tls=%v p=%v, (%v:)", tls, p, origin(2)) + } + var b, p2 uintptr + var cnt Tsize_t + _, _, _ = b, cnt, p2 + cnt = uint64(1) + for { + if !((*Taddrinfo)(unsafe.Pointer(p)).Fai_next != 0) { + break + } + goto _1 + _1: + ; + cnt++ + p = (*Taddrinfo)(unsafe.Pointer(p)).Fai_next + } + b = p - uintptr(uint64(UintptrFromInt32(0))) + b -= uintptr((*Taibuf)(unsafe.Pointer(b)).Fslot) * 88 + ___lock(tls, b+76) + p2 = b + 82 + *(*int16)(unsafe.Pointer(p2)) = int16(uint64(*(*int16)(unsafe.Pointer(p2))) - cnt) + if !(*(*int16)(unsafe.Pointer(p2)) != 0) { + Xfree(tls, b) + } else { + ___unlock(tls, b+76) + } +} + +var _msgs = [252]uint8{'I', 'n', 'v', 'a', 'l', 'i', 'd', ' ', 'f', 'l', 'a', 'g', 's', 0, 'N', 'a', 'm', 'e', ' ', 'd', 'o', 'e', 's', ' ', 'n', 'o', 't', ' ', 'r', 'e', 's', 'o', 'l', 'v', 'e', 0, 'T', 'r', 'y', ' ', 'a', 'g', 'a', 'i', 'n', 0, 'N', 'o', 'n', '-', 'r', 'e', 'c', 'o', 'v', 'e', 'r', 'a', 'b', 'l', 'e', ' ', 'e', 'r', 'r', 'o', 'r', 0, 'N', 'a', 'm', 'e', ' ', 'h', 'a', 's', ' ', 'n', 'o', ' ', 'u', 's', 'a', 'b', 'l', 'e', ' ', 'a', 'd', 'd', 'r', 'e', 's', 's', 0, 'U', 'n', 'r', 'e', 'c', 'o', 'g', 'n', 'i', 'z', 'e', 'd', ' ', 'a', 'd', 'd', 'r', 'e', 's', 's', ' ', 'f', 'a', 'm', 'i', 'l', 'y', ' ', 'o', 'r', ' ', 'i', 'n', 'v', 'a', 'l', 'i', 'd', ' ', 'l', 'e', 'n', 'g', 't', 'h', 0, 'U', 'n', 'r', 'e', 'c', 'o', 'g', 'n', 'i', 'z', 'e', 'd', ' ', 's', 'o', 'c', 'k', 'e', 't', ' ', 't', 'y', 'p', 'e', 0, 'U', 'n', 'r', 'e', 'c', 'o', 'g', 'n', 'i', 'z', 'e', 'd', ' ', 's', 'e', 'r', 'v', 'i', 'c', 'e', 0, 'U', 'n', 'k', 'n', 'o', 'w', 'n', ' ', 'e', 'r', 'r', 'o', 'r', 0, 'O', 'u', 't', ' ', 'o', 'f', ' ', 'm', 'e', 'm', 'o', 'r', 'y', 0, 'S', 'y', 's', 't', 'e', 'm', ' ', 'e', 'r', 'r', 'o', 'r', 0, 'O', 'v', 'e', 'r', 'f', 'l', 'o', 'w', 0, 0, 'U', 'n', 'k', 'n', 'o', 'w', 'n', ' ', 'e', 'r', 'r', 'o', 'r'} + +func Xgai_strerror(tls *TLS, ecode int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v ecode=%v, (%v:)", tls, ecode, origin(2)) + defer func() { trc("-> %v", r) }() + } + var s uintptr + _ = s + s = uintptr(unsafe.Pointer(&_msgs)) + ecode++ + for { + if !(ecode != 0 && *(*uint8)(unsafe.Pointer(s)) != 0) { + break + } + for { + if !(*(*uint8)(unsafe.Pointer(s)) != 0) { + break + } + goto _2 + _2: + ; + s++ + } + goto _1 + _1: + ; + ecode++ + s++ + } + if !(*(*uint8)(unsafe.Pointer(s)) != 0) { + s++ + } + return X__lctrans_cur(tls, s) +} + +func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v host=%v serv=%v hint=%v res=%v, (%v:)", tls, host, serv, hint, res, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(1616) + defer tls.Free(1616) + var canon_len, family, flags, i, j, k, mask, naddrs, nais, no_family, nservs, proto, r, s, saved_errno, socktype, v3 int32 + var out, outcanon uintptr + var ta [2]uintptr + var tf [2]int32 + var tl [2]Tsocklen_t + var v5 uint64 + var _ /* addrs at bp+8 */ [48]Taddress + var _ /* canon at bp+1352 */ [256]uint8 + var _ /* cs at bp+1608 */ int32 + var _ /* ports at bp+0 */ [2]Tservice + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = canon_len, family, flags, i, j, k, mask, naddrs, nais, no_family, nservs, out, outcanon, proto, r, s, saved_errno, socktype, ta, tf, tl, v3, v5 + family = PF_UNSPEC + flags = 0 + proto = 0 + socktype = 0 + no_family = 0 + if !(host != 0) && !(serv != 0) { + return -int32(2) + } + if hint != 0 { + family = (*Taddrinfo)(unsafe.Pointer(hint)).Fai_family + flags = (*Taddrinfo)(unsafe.Pointer(hint)).Fai_flags + proto = (*Taddrinfo)(unsafe.Pointer(hint)).Fai_protocol + socktype = (*Taddrinfo)(unsafe.Pointer(hint)).Fai_socktype + mask = Int32FromInt32(AI_PASSIVE) | Int32FromInt32(AI_CANONNAME) | Int32FromInt32(AI_NUMERICHOST) | Int32FromInt32(AI_V4MAPPED) | Int32FromInt32(AI_ALL) | Int32FromInt32(AI_ADDRCONFIG) | Int32FromInt32(AI_NUMERICSERV) + if flags&mask != flags { + return -int32(1) + } + switch family { + case int32(PF_INET): + fallthrough + case int32(PF_INET6): + fallthrough + case PF_UNSPEC: + default: + return -int32(6) + } + } + if flags&int32(AI_ADDRCONFIG) != 0 { + tf = [2]int32{ + 0: int32(PF_INET), + 1: int32(PF_INET6), + } + ta = [2]uintptr{ + 0: uintptr(unsafe.Pointer(&_lo4)), + 1: uintptr(unsafe.Pointer(&_lo6)), + } + tl = [2]Tsocklen_t{ + 0: uint32(16), + 1: uint32(28), + } + i = 0 + for { + if !(i < int32(2)) { + break + } + if family == tf[int32(1)-i] { + goto _1 + } + s = Xsocket(tls, tf[i], Int32FromInt32(SOCK_CLOEXEC)|Int32FromInt32(SOCK_DGRAM), int32(IPPROTO_UDP)) + if s >= 0 { + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp+1608) + r = Xconnect(tls, s, ta[i], tl[i]) + saved_errno = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 1608)), uintptr(0)) + Xclose(tls, s) + if !(r != 0) { + goto _1 + } + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = saved_errno + } + switch *(*int32)(unsafe.Pointer(X__errno_location(tls))) { + case int32(EADDRNOTAVAIL): + fallthrough + case int32(EAFNOSUPPORT): + fallthrough + case int32(EHOSTUNREACH): + fallthrough + case int32(ENETDOWN): + fallthrough + case int32(ENETUNREACH): + default: + return -int32(11) + } + if family == tf[i] { + no_family = int32(1) + } + family = tf[int32(1)-i] + goto _1 + _1: + ; + i++ + } + } + nservs = X__lookup_serv(tls, bp, serv, proto, socktype, flags) + if nservs < 0 { + return nservs + } + naddrs = X__lookup_name(tls, bp+8, bp+1352, host, family, flags) + if naddrs < 0 { + return naddrs + } + if no_family != 0 { + return -int32(5) + } + nais = nservs * naddrs + canon_len = int32(Xstrlen(tls, bp+1352)) + out = Xcalloc(tls, uint64(1), uint64(nais)*uint64(88)+uint64(canon_len)+uint64(1)) + if !(out != 0) { + return -int32(10) + } + if canon_len != 0 { + outcanon = out + uintptr(nais)*88 + Xmemcpy(tls, outcanon, bp+1352, uint64(canon_len+int32(1))) + } else { + outcanon = uintptr(0) + } + v3 = Int32FromInt32(0) + i = v3 + k = v3 + for { + if !(i < naddrs) { + break + } + j = 0 + for { + if !(j < nservs) { + break + } + (*(*Taibuf)(unsafe.Pointer(out + uintptr(k)*88))).Fslot = int16(k) + if (*(*[48]Taddress)(unsafe.Pointer(bp + 8)))[i].Ffamily == int32(PF_INET) { + v5 = uint64(16) + } else { + v5 = uint64(28) + } + (*(*Taibuf)(unsafe.Pointer(out + uintptr(k)*88))).Fai = Taddrinfo{ + Fai_family: (*(*[48]Taddress)(unsafe.Pointer(bp + 8)))[i].Ffamily, + Fai_socktype: int32((*(*[2]Tservice)(unsafe.Pointer(bp)))[j].Fsocktype), + Fai_protocol: int32((*(*[2]Tservice)(unsafe.Pointer(bp)))[j].Fproto), + Fai_addrlen: uint32(v5), + Fai_addr: out + uintptr(k)*88 + 48, + Fai_canonname: outcanon, + } + if k != 0 { + (*(*Taibuf)(unsafe.Pointer(out + uintptr(k-int32(1))*88))).Fai.Fai_next = out + uintptr(k)*88 + } + switch (*(*[48]Taddress)(unsafe.Pointer(bp + 8)))[i].Ffamily { + case int32(PF_INET): + *(*Tsa_family_t)(unsafe.Pointer(out + uintptr(k)*88 + 48)) = uint16(PF_INET) + *(*Tin_port_t)(unsafe.Pointer(out + uintptr(k)*88 + 48 + 2)) = Xhtons(tls, (*(*[2]Tservice)(unsafe.Pointer(bp)))[j].Fport) + Xmemcpy(tls, out+uintptr(k)*88+48+4, bp+8+uintptr(i)*28+8, uint64(4)) + case int32(PF_INET6): + *(*Tsa_family_t)(unsafe.Pointer(out + uintptr(k)*88 + 48)) = uint16(PF_INET6) + *(*Tin_port_t)(unsafe.Pointer(out + uintptr(k)*88 + 48 + 2)) = Xhtons(tls, (*(*[2]Tservice)(unsafe.Pointer(bp)))[j].Fport) + *(*Tuint32_t)(unsafe.Pointer(out + uintptr(k)*88 + 48 + 24)) = (*(*[48]Taddress)(unsafe.Pointer(bp + 8)))[i].Fscopeid + Xmemcpy(tls, out+uintptr(k)*88+48+8, bp+8+uintptr(i)*28+8, uint64(16)) + break + } + goto _4 + _4: + ; + j++ + k++ + } + goto _2 + _2: + ; + i++ + } + (*(*Taibuf)(unsafe.Pointer(out))).Fref = int16(nais) + *(*uintptr)(unsafe.Pointer(res)) = out + return 0 +} + +/* Define the "an address is configured" condition for address + * families via ability to create a socket for the family plus + * routability of the loopback address for the family. */ +var _lo4 = Tsockaddr_in{ + Fsin_family: uint16(PF_INET), + Fsin_port: uint16(65535), + Fsin_addr: Tin_addr{ + Fs_addr: uint32(0x0100007f), + }, +} + +var _lo6 = Tsockaddr_in6{ + Fsin6_family: uint16(PF_INET6), + Fsin6_port: uint16(65535), + Fsin6_addr: Tin6_addr{ + F__in6_union: *(*struct { + F__s6_addr16 [0][8]Tuint16_t + F__s6_addr32 [0][4]Tuint32_t + F__s6_addr [16]Tuint8_t + })(unsafe.Pointer(&[16]Tuint8_t{ + 15: uint8(1), + })), + }, +} + +const EAI_ADDRFAMILY = -9 +const EAI_ALLDONE = -103 +const EAI_CANCELED = -101 +const EAI_IDN_ENCODE = -105 +const EAI_INPROGRESS = -100 +const EAI_INTR = -104 +const EAI_NOTCANCELED = -102 +const HOST_NOT_FOUND = 1 +const MCAST_BLOCK_SOURCE = 43 +const MCAST_EXCLUDE = 0 +const MCAST_INCLUDE = 1 +const MCAST_JOIN_GROUP = 42 +const MCAST_JOIN_SOURCE_GROUP = 46 +const MCAST_LEAVE_GROUP = 45 +const MCAST_LEAVE_SOURCE_GROUP = 47 +const MCAST_MSFILTER = 48 +const MCAST_UNBLOCK_SOURCE = 44 +const NI_MAXHOST = 255 +const NI_MAXSERV = 32 +const NO_ADDRESS = 4 +const NO_DATA = 4 +const NO_RECOVERY = 3 +const TRY_AGAIN = 2 +const h_errno = 0 + +type Tip_mreq = struct { + Fimr_multiaddr Tin_addr + Fimr_interface Tin_addr +} + +type Tip_mreqn = struct { + Fimr_multiaddr Tin_addr + Fimr_address Tin_addr + Fimr_ifindex int32 +} + +type Tip_mreq_source = struct { + Fimr_multiaddr Tin_addr + Fimr_interface Tin_addr + Fimr_sourceaddr Tin_addr +} + +type Tip_msfilter = struct { + Fimsf_multiaddr Tin_addr + Fimsf_interface Tin_addr + Fimsf_fmode Tuint32_t + Fimsf_numsrc Tuint32_t + Fimsf_slist [1]Tin_addr +} + +type Tgroup_req = struct { + Fgr_interface Tuint32_t + Fgr_group Tsockaddr_storage +} + +type Tgroup_source_req = struct { + Fgsr_interface Tuint32_t + Fgsr_group Tsockaddr_storage + Fgsr_source Tsockaddr_storage +} + +type Tgroup_filter = struct { + Fgf_interface Tuint32_t + Fgf_group Tsockaddr_storage + Fgf_fmode Tuint32_t + Fgf_numsrc Tuint32_t + Fgf_slist [1]Tsockaddr_storage +} + +type Tin_pktinfo = struct { + Fipi_ifindex int32 + Fipi_spec_dst Tin_addr + Fipi_addr Tin_addr +} + +type Tin6_pktinfo = struct { + Fipi6_addr Tin6_addr + Fipi6_ifindex uint32 +} + +type Tip6_mtuinfo = struct { + Fip6m_addr Tsockaddr_in6 + Fip6m_mtu Tuint32_t +} + +func Xgethostbyaddr(tls *TLS, a uintptr, l Tsocklen_t, af int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v a=%v l=%v af=%v, (%v:)", tls, a, l, af, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var err int32 + var size Tsize_t + var _ /* res at bp+0 */ uintptr + _, _ = err, size + size = uint64(63) + for cond := true; cond; cond = err == int32(ERANGE) { + Xfree(tls, _h) + size += size + uint64(1) + _h = Xmalloc(tls, size) + if !(_h != 0) { + *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = int32(NO_RECOVERY) + return uintptr(0) + } + err = Xgethostbyaddr_r(tls, a, l, af, _h, _h+UintptrFromInt32(1)*32, size-uint64(32), bp, X__h_errno_location(tls)) + } + return *(*uintptr)(unsafe.Pointer(bp)) +} + +var _h uintptr + +func Xgethostbyaddr_r(tls *TLS, a uintptr, l Tsocklen_t, af int32, h uintptr, buf uintptr, buflen Tsize_t, res uintptr, err uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v a=%v l=%v af=%v h=%v buf=%v buflen=%v res=%v err=%v, (%v:)", tls, a, l, af, h, buf, buflen, res, err, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var i int32 + var sl Tsocklen_t + var v1 uint64 + var _ /* sa at bp+0 */ struct { + Fsin6 [0]Tsockaddr_in6 + Fsin Tsockaddr_in + F__ccgo_pad2 [12]byte + } + _, _, _ = i, sl, v1 + *(*struct { + Fsin6 [0]Tsockaddr_in6 + Fsin Tsockaddr_in + F__ccgo_pad2 [12]byte + })(unsafe.Pointer(bp)) = struct { + Fsin6 [0]Tsockaddr_in6 + Fsin Tsockaddr_in + F__ccgo_pad2 [12]byte + }{} + *(*uint16)(unsafe.Pointer(bp)) = uint16(af) + if af == int32(PF_INET6) { + v1 = uint64(28) + } else { + v1 = uint64(16) + } + sl = uint32(v1) + *(*uintptr)(unsafe.Pointer(res)) = uintptr(0) + /* Load address argument into sockaddr structure */ + if af == int32(PF_INET6) && l == uint32(16) { + Xmemcpy(tls, bp+8, a, uint64(16)) + } else { + if af == int32(PF_INET) && l == uint32(4) { + Xmemcpy(tls, bp+4, a, uint64(4)) + } else { + *(*int32)(unsafe.Pointer(err)) = int32(NO_RECOVERY) + return int32(EINVAL) + } + } + /* Align buffer and check for space for pointers and ip address */ + i = int32(uint64(buf) & (Uint64FromInt64(8) - Uint64FromInt32(1))) + if !(i != 0) { + i = int32(8) + } + if buflen <= Uint64FromInt32(5)*Uint64FromInt64(8)-uint64(i)+uint64(l) { + return int32(ERANGE) + } + buf += uintptr(uint64(8) - uint64(i)) + buflen -= Uint64FromInt32(5)*Uint64FromInt64(8) - uint64(i) + uint64(l) + (*Thostent)(unsafe.Pointer(h)).Fh_addr_list = buf + buf += uintptr(Uint64FromInt32(2) * Uint64FromInt64(8)) + (*Thostent)(unsafe.Pointer(h)).Fh_aliases = buf + buf += uintptr(Uint64FromInt32(2) * Uint64FromInt64(8)) + *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_addr_list)) = buf + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_addr_list)), a, uint64(l)) + buf += uintptr(l) + *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_addr_list + 1*8)) = uintptr(0) + *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_aliases)) = buf + *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_aliases + 1*8)) = uintptr(0) + switch Xgetnameinfo(tls, bp, sl, buf, uint32(buflen), uintptr(0), uint32(0), 0) { + case -int32(3): + *(*int32)(unsafe.Pointer(err)) = int32(TRY_AGAIN) + return int32(EAGAIN) + case -int32(12): + return int32(ERANGE) + default: + fallthrough + case -int32(4): + *(*int32)(unsafe.Pointer(err)) = int32(NO_RECOVERY) + return int32(EBADMSG) + case -int32(11): + *(*int32)(unsafe.Pointer(err)) = int32(NO_RECOVERY) + return *(*int32)(unsafe.Pointer(X__errno_location(tls))) + case 0: + break + } + (*Thostent)(unsafe.Pointer(h)).Fh_addrtype = af + (*Thostent)(unsafe.Pointer(h)).Fh_length = int32(l) + (*Thostent)(unsafe.Pointer(h)).Fh_name = *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_aliases)) + *(*uintptr)(unsafe.Pointer(res)) = h + return 0 +} + +func Xgethostbyname(tls *TLS, name uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v name=%v, (%v:)", tls, name, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xgethostbyname2(tls, name, int32(PF_INET)) +} + +func Xgethostbyname2(tls *TLS, name uintptr, af int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v name=%v af=%v, (%v:)", tls, name, af, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var err int32 + var size Tsize_t + var _ /* res at bp+0 */ uintptr + _, _ = err, size + size = uint64(63) + for cond := true; cond; cond = err == int32(ERANGE) { + Xfree(tls, _h1) + size += size + uint64(1) + _h1 = Xmalloc(tls, size) + if !(_h1 != 0) { + *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = int32(NO_RECOVERY) + return uintptr(0) + } + err = Xgethostbyname2_r(tls, name, af, _h1, _h1+UintptrFromInt32(1)*32, size-uint64(32), bp, X__h_errno_location(tls)) + } + return *(*uintptr)(unsafe.Pointer(bp)) +} + +var _h1 uintptr + +func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen Tsize_t, res uintptr, err uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v name=%v af=%v h=%v buf=%v buflen=%v res=%v err=%v, (%v:)", tls, name, af, h, buf, buflen, res, err, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(1600) + defer tls.Free(1600) + var align, need Tsize_t + var cnt, i, v1 int32 + var v3 uintptr + var _ /* addrs at bp+0 */ [48]Taddress + var _ /* canon at bp+1344 */ [256]uint8 + _, _, _, _, _, _ = align, cnt, i, need, v1, v3 + *(*uintptr)(unsafe.Pointer(res)) = uintptr(0) + cnt = X__lookup_name(tls, bp, bp+1344, name, af, int32(AI_CANONNAME)) + if cnt < 0 { + switch cnt { + case -int32(2): + *(*int32)(unsafe.Pointer(err)) = int32(HOST_NOT_FOUND) + return 0 + case -int32(5): + *(*int32)(unsafe.Pointer(err)) = int32(NO_DATA) + return 0 + case -int32(3): + *(*int32)(unsafe.Pointer(err)) = int32(TRY_AGAIN) + return int32(EAGAIN) + default: + fallthrough + case -int32(4): + *(*int32)(unsafe.Pointer(err)) = int32(NO_RECOVERY) + return int32(EBADMSG) + case -int32(11): + *(*int32)(unsafe.Pointer(err)) = int32(NO_RECOVERY) + return *(*int32)(unsafe.Pointer(X__errno_location(tls))) + } + } + (*Thostent)(unsafe.Pointer(h)).Fh_addrtype = af + if af == int32(PF_INET6) { + v1 = int32(16) + } else { + v1 = int32(4) + } + (*Thostent)(unsafe.Pointer(h)).Fh_length = v1 + /* Align buffer */ + align = -uint64(buf) & (Uint64FromInt64(8) - Uint64FromInt32(1)) + need = Uint64FromInt32(4) * Uint64FromInt64(8) + need += uint64(cnt+Int32FromInt32(1)) * (uint64(8) + uint64((*Thostent)(unsafe.Pointer(h)).Fh_length)) + need += Xstrlen(tls, name) + uint64(1) + need += Xstrlen(tls, bp+1344) + uint64(1) + need += align + if need > buflen { + return int32(ERANGE) + } + buf += uintptr(align) + (*Thostent)(unsafe.Pointer(h)).Fh_aliases = buf + buf += uintptr(Uint64FromInt32(3) * Uint64FromInt64(8)) + (*Thostent)(unsafe.Pointer(h)).Fh_addr_list = buf + buf += uintptr(uint64(cnt+Int32FromInt32(1)) * uint64(8)) + i = 0 + for { + if !(i < cnt) { + break + } + *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_addr_list + uintptr(i)*8)) = buf + buf += uintptr((*Thostent)(unsafe.Pointer(h)).Fh_length) + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_addr_list + uintptr(i)*8)), bp+uintptr(i)*28+8, uint64((*Thostent)(unsafe.Pointer(h)).Fh_length)) + goto _2 + _2: + ; + i++ + } + *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_addr_list + uintptr(i)*8)) = uintptr(0) + v3 = buf + *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_aliases)) = v3 + (*Thostent)(unsafe.Pointer(h)).Fh_name = v3 + Xstrcpy(tls, (*Thostent)(unsafe.Pointer(h)).Fh_name, bp+1344) + buf += uintptr(Xstrlen(tls, (*Thostent)(unsafe.Pointer(h)).Fh_name) + uint64(1)) + if Xstrcmp(tls, (*Thostent)(unsafe.Pointer(h)).Fh_name, name) != 0 { + *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_aliases + 1*8)) = buf + Xstrcpy(tls, *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_aliases + 1*8)), name) + buf += uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_aliases + 1*8))) + uint64(1)) + } else { + *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_aliases + 1*8)) = uintptr(0) + } + *(*uintptr)(unsafe.Pointer((*Thostent)(unsafe.Pointer(h)).Fh_aliases + 2*8)) = uintptr(0) + *(*uintptr)(unsafe.Pointer(res)) = h + return 0 +} + +func Xgethostbyname_r(tls *TLS, name uintptr, h uintptr, buf uintptr, buflen Tsize_t, res uintptr, err uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v name=%v h=%v buf=%v buflen=%v res=%v err=%v, (%v:)", tls, name, h, buf, buflen, res, err, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xgethostbyname2_r(tls, name, int32(PF_INET), h, buf, buflen, res, err) +} + +const IFADDRS_HASH_SIZE = 64 +const IFA_ADDRESS = 1 +const IFA_BROADCAST = 4 +const IFA_LABEL = 3 +const IFA_LOCAL = 2 +const IFF_ALLMULTI = 512 +const IFF_AUTOMEDIA = 16384 +const IFF_BROADCAST = 2 +const IFF_DEBUG = 4 +const IFF_DORMANT = 131072 +const IFF_DYNAMIC = 32768 +const IFF_ECHO = 262144 +const IFF_LOOPBACK = 8 +const IFF_LOWER_UP = 65536 +const IFF_MASTER = 1024 +const IFF_MULTICAST = 4096 +const IFF_NOARP = 128 +const IFF_NOTRAILERS = 32 +const IFF_POINTOPOINT = 16 +const IFF_PORTSEL = 8192 +const IFF_PROMISC = 256 +const IFF_RUNNING = 64 +const IFF_SLAVE = 2048 +const IFF_UP = 1 +const IFF_VOLATILE = 461914 +const IFHWADDRLEN = 6 +const IFLA_ADDRESS = 1 +const IFLA_BROADCAST = 2 +const IFLA_IFNAME = 3 +const IFLA_STATS = 7 +const IFNAMSIZ = 16 +const IF_NAMESIZE = 16 +const NETLINK_ROUTE = 0 +const NLMSG_DONE = 3 +const NLMSG_ERROR = 2 +const NLMSG_NOOP = 1 +const NLMSG_OVERRUN = 4 +const NLM_F_ACK = 4 +const NLM_F_ATOMIC = 1024 +const NLM_F_DUMP = 768 +const NLM_F_MATCH = 512 +const NLM_F_MULTI = 2 +const NLM_F_REQUEST = 1 +const NLM_F_ROOT = 256 +const RTM_GETADDR = 22 +const RTM_GETLINK = 18 +const RTM_NEWADDR = 20 +const RTM_NEWLINK = 16 +const __UAPI_DEF_IF_IFCONF = 0 +const __UAPI_DEF_IF_IFMAP = 0 +const __UAPI_DEF_IF_IFNAMSIZ = 0 +const __UAPI_DEF_IF_IFREQ = 0 +const __UAPI_DEF_IF_NET_DEVICE_FLAGS = 0 +const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO = 0 + +type Tifaddrs = struct { + Fifa_next uintptr + Fifa_name uintptr + Fifa_flags uint32 + Fifa_addr uintptr + Fifa_netmask uintptr + Fifa_ifu struct { + Fifu_dstaddr [0]uintptr + Fifu_broadaddr uintptr + } + Fifa_data uintptr +} + +type Tif_nameindex = struct { + Fif_index uint32 + Fif_name uintptr +} + +type Tifaddr = struct { + Fifa_addr Tsockaddr + Fifa_ifu struct { + Fifu_dstaddr [0]Tsockaddr + Fifu_broadaddr Tsockaddr + } + Fifa_ifp uintptr + Fifa_next uintptr +} + +type Tifmap = struct { + Fmem_start uint64 + Fmem_end uint64 + Fbase_addr uint16 + Firq uint8 + Fdma uint8 + Fport uint8 +} + +type Tifreq = struct { + Fifr_ifrn struct { + Fifrn_name [16]uint8 + } + Fifr_ifru struct { + Fifru_dstaddr [0]Tsockaddr + Fifru_broadaddr [0]Tsockaddr + Fifru_netmask [0]Tsockaddr + Fifru_hwaddr [0]Tsockaddr + Fifru_flags [0]int16 + Fifru_ivalue [0]int32 + Fifru_mtu [0]int32 + Fifru_map [0]Tifmap + Fifru_slave [0][16]uint8 + Fifru_newname [0][16]uint8 + Fifru_data [0]uintptr + Fifru_addr Tsockaddr + F__ccgo_pad12 [8]byte + } +} + +type Tifconf = struct { + Fifc_len int32 + Fifc_ifcu struct { + Fifcu_req [0]uintptr + Fifcu_buf uintptr + } +} + +type Tnlmsghdr = struct { + Fnlmsg_len Tuint32_t + Fnlmsg_type Tuint16_t + Fnlmsg_flags Tuint16_t + Fnlmsg_seq Tuint32_t + Fnlmsg_pid Tuint32_t +} + +type Trtattr = struct { + Frta_len uint16 + Frta_type uint16 +} + +type Trtgenmsg = struct { + Frtgen_family uint8 +} + +type Tifinfomsg = struct { + Fifi_family uint8 + F__ifi_pad uint8 + Fifi_type uint16 + Fifi_index int32 + Fifi_flags uint32 + Fifi_change uint32 +} + +type Tifaddrmsg = struct { + Fifa_family Tuint8_t + Fifa_prefixlen Tuint8_t + Fifa_flags Tuint8_t + Fifa_scope Tuint8_t + Fifa_index Tuint32_t +} + +/* getifaddrs() reports hardware addresses with PF_PACKET that implies + * struct sockaddr_ll. But e.g. Infiniband socket address length is + * longer than sockaddr_ll.ssl_addr[8] can hold. Use this hack struct + * to extend ssl_addr - callers should be able to still use it. */ +type Tsockaddr_ll_hack = struct { + Fsll_family uint16 + Fsll_protocol uint16 + Fsll_ifindex int32 + Fsll_hatype uint16 + Fsll_pkttype uint8 + Fsll_halen uint8 + Fsll_addr [24]uint8 +} + +type Tsockany = struct { + Fll [0]Tsockaddr_ll_hack + Fv4 [0]Tsockaddr_in + Fv6 [0]Tsockaddr_in6 + Fsa Tsockaddr + F__ccgo_pad4 [20]byte +} + +type Tifaddrs_storage = struct { + Fifa Tifaddrs + Fhash_next uintptr + Faddr Tsockany + Fnetmask Tsockany + Fifu Tsockany + Findex uint32 + Fname [17]uint8 +} + +type Tifaddrs_ctx = struct { + Ffirst uintptr + Flast uintptr + Fhash [64]uintptr +} + +func Xfreeifaddrs(tls *TLS, ifp uintptr) { + if __ccgo_strace { + trc("tls=%v ifp=%v, (%v:)", tls, ifp, origin(2)) + } + var n uintptr + _ = n + for ifp != 0 { + n = (*Tifaddrs)(unsafe.Pointer(ifp)).Fifa_next + Xfree(tls, ifp) + ifp = n + } +} + +func _copy_addr(tls *TLS, r uintptr, af int32, sa uintptr, addr uintptr, addrlen Tsize_t, ifindex int32) { + var dst uintptr + var len1 int32 + _, _ = dst, len1 + switch af { + case int32(PF_INET): + dst = sa + 4 + len1 = int32(4) + case int32(PF_INET6): + dst = sa + 8 + len1 = int32(16) + if int32(*(*Tuint8_t)(unsafe.Pointer(addr))) == int32(0xfe) && int32(*(*Tuint8_t)(unsafe.Pointer(addr + 1)))&int32(0xc0) == int32(0x80) || int32(*(*Tuint8_t)(unsafe.Pointer(addr))) == int32(0xff) && int32(*(*Tuint8_t)(unsafe.Pointer(addr + 1)))&int32(0xf) == int32(0x2) { + (*(*Tsockaddr_in6)(unsafe.Pointer(sa))).Fsin6_scope_id = uint32(ifindex) + } + default: + return + } + if addrlen < uint64(len1) { + return + } + (*Tsockany)(unsafe.Pointer(sa)).Fsa.Fsa_family = uint16(af) + Xmemcpy(tls, dst, addr, uint64(len1)) + *(*uintptr)(unsafe.Pointer(r)) = sa +} + +func _gen_netmask(tls *TLS, r uintptr, af int32, sa uintptr, prefixlen int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var i, v1 int32 + var _ /* addr at bp+0 */ [16]Tuint8_t + _, _ = i, v1 + *(*[16]Tuint8_t)(unsafe.Pointer(bp)) = [16]Tuint8_t{} + if uint64(prefixlen) > Uint64FromInt32(8)*Uint64FromInt64(16) { + prefixlen = int32(Uint64FromInt32(8) * Uint64FromInt64(16)) + } + i = prefixlen / int32(8) + Xmemset(tls, bp, int32(0xff), uint64(i)) + if uint64(i) < uint64(16) { + v1 = i + i++ + (*(*[16]Tuint8_t)(unsafe.Pointer(bp)))[v1] = uint8(int32(0xff) << (int32(8) - prefixlen%int32(8))) + } + _copy_addr(tls, r, af, sa, bp, uint64(16), 0) +} + +func _copy_lladdr(tls *TLS, r uintptr, sa uintptr, addr uintptr, addrlen Tsize_t, ifindex int32, hatype uint16) { + if addrlen > uint64(24) { + return + } + (*(*Tsockaddr_ll_hack)(unsafe.Pointer(sa))).Fsll_family = uint16(PF_PACKET) + (*(*Tsockaddr_ll_hack)(unsafe.Pointer(sa))).Fsll_ifindex = ifindex + (*(*Tsockaddr_ll_hack)(unsafe.Pointer(sa))).Fsll_hatype = hatype + (*(*Tsockaddr_ll_hack)(unsafe.Pointer(sa))).Fsll_halen = uint8(addrlen) + Xmemcpy(tls, sa+12, addr, addrlen) + *(*uintptr)(unsafe.Pointer(r)) = sa +} + +func _netlink_msg_to_ifaddr(tls *TLS, pctx uintptr, h uintptr) (r int32) { + var bucket uint32 + var ctx, ifa, ifi, ifs, ifs0, rta uintptr + var stats_len int32 + _, _, _, _, _, _, _, _ = bucket, ctx, ifa, ifi, ifs, ifs0, rta, stats_len + ctx = pctx + ifi = h + UintptrFromInt64(16) + ifa = h + UintptrFromInt64(16) + stats_len = 0 + if int32((*Tnlmsghdr)(unsafe.Pointer(h)).Fnlmsg_type) == int32(RTM_NEWLINK) { + rta = h + UintptrFromInt64(16) + uintptr((Uint64FromInt64(16)+Uint64FromInt32(3))&uint64(^Int32FromInt32(3))) + for { + if !(uint64(int64(h+uintptr((*Tnlmsghdr)(unsafe.Pointer(h)).Fnlmsg_len))-int64(rta)) >= uint64(4)) { + break + } + if int32((*Trtattr)(unsafe.Pointer(rta)).Frta_type) != int32(IFLA_STATS) { + goto _1 + } + stats_len = int32(uint64((*Trtattr)(unsafe.Pointer(rta)).Frta_len) - Uint64FromInt64(4)) + break + goto _1 + _1: + ; + rta = rta + uintptr((int32((*Trtattr)(unsafe.Pointer(rta)).Frta_len)+Int32FromInt32(3)) & ^Int32FromInt32(3)) + } + } else { + ifs0 = *(*uintptr)(unsafe.Pointer(ctx + 16 + uintptr((*Tifaddrmsg)(unsafe.Pointer(ifa)).Fifa_index%uint32(IFADDRS_HASH_SIZE))*8)) + for { + if !(ifs0 != 0) { + break + } + if (*Tifaddrs_storage)(unsafe.Pointer(ifs0)).Findex == (*Tifaddrmsg)(unsafe.Pointer(ifa)).Fifa_index { + break + } + goto _2 + _2: + ; + ifs0 = (*Tifaddrs_storage)(unsafe.Pointer(ifs0)).Fhash_next + } + if !(ifs0 != 0) { + return 0 + } + } + ifs = Xcalloc(tls, uint64(1), uint64(200)+uint64(stats_len)) + if ifs == uintptr(0) { + return -int32(1) + } + if int32((*Tnlmsghdr)(unsafe.Pointer(h)).Fnlmsg_type) == int32(RTM_NEWLINK) { + (*Tifaddrs_storage)(unsafe.Pointer(ifs)).Findex = uint32((*Tifinfomsg)(unsafe.Pointer(ifi)).Fifi_index) + (*Tifaddrs_storage)(unsafe.Pointer(ifs)).Fifa.Fifa_flags = (*Tifinfomsg)(unsafe.Pointer(ifi)).Fifi_flags + rta = h + UintptrFromInt64(16) + uintptr((Uint64FromInt64(16)+Uint64FromInt32(3))&uint64(^Int32FromInt32(3))) + for { + if !(uint64(int64(h+uintptr((*Tnlmsghdr)(unsafe.Pointer(h)).Fnlmsg_len))-int64(rta)) >= uint64(4)) { + break + } + switch int32((*Trtattr)(unsafe.Pointer(rta)).Frta_type) { + case int32(IFLA_IFNAME): + if uint64((*Trtattr)(unsafe.Pointer(rta)).Frta_len)-uint64(4) < uint64(17) { + Xmemcpy(tls, ifs+176, rta+UintptrFromInt64(4), uint64((*Trtattr)(unsafe.Pointer(rta)).Frta_len)-Uint64FromInt64(4)) + (*Tifaddrs_storage)(unsafe.Pointer(ifs)).Fifa.Fifa_name = ifs + 176 + } + case int32(IFLA_ADDRESS): + _copy_lladdr(tls, ifs+24, ifs+64, rta+UintptrFromInt64(4), uint64((*Trtattr)(unsafe.Pointer(rta)).Frta_len)-Uint64FromInt64(4), (*Tifinfomsg)(unsafe.Pointer(ifi)).Fifi_index, (*Tifinfomsg)(unsafe.Pointer(ifi)).Fifi_type) + case int32(IFLA_BROADCAST): + _copy_lladdr(tls, ifs+40, ifs+136, rta+UintptrFromInt64(4), uint64((*Trtattr)(unsafe.Pointer(rta)).Frta_len)-Uint64FromInt64(4), (*Tifinfomsg)(unsafe.Pointer(ifi)).Fifi_index, (*Tifinfomsg)(unsafe.Pointer(ifi)).Fifi_type) + case int32(IFLA_STATS): + (*Tifaddrs_storage)(unsafe.Pointer(ifs)).Fifa.Fifa_data = ifs + UintptrFromInt32(1)*200 + Xmemcpy(tls, (*Tifaddrs_storage)(unsafe.Pointer(ifs)).Fifa.Fifa_data, rta+UintptrFromInt64(4), uint64((*Trtattr)(unsafe.Pointer(rta)).Frta_len)-Uint64FromInt64(4)) + break + } + goto _3 + _3: + ; + rta = rta + uintptr((int32((*Trtattr)(unsafe.Pointer(rta)).Frta_len)+Int32FromInt32(3)) & ^Int32FromInt32(3)) + } + if (*Tifaddrs_storage)(unsafe.Pointer(ifs)).Fifa.Fifa_name != 0 { + bucket = (*Tifaddrs_storage)(unsafe.Pointer(ifs)).Findex % uint32(IFADDRS_HASH_SIZE) + (*Tifaddrs_storage)(unsafe.Pointer(ifs)).Fhash_next = *(*uintptr)(unsafe.Pointer(ctx + 16 + uintptr(bucket)*8)) + *(*uintptr)(unsafe.Pointer(ctx + 16 + uintptr(bucket)*8)) = ifs + } + } else { + (*Tifaddrs_storage)(unsafe.Pointer(ifs)).Fifa.Fifa_name = (*Tifaddrs_storage)(unsafe.Pointer(ifs0)).Fifa.Fifa_name + (*Tifaddrs_storage)(unsafe.Pointer(ifs)).Fifa.Fifa_flags = (*Tifaddrs_storage)(unsafe.Pointer(ifs0)).Fifa.Fifa_flags + rta = h + UintptrFromInt64(16) + uintptr((Uint64FromInt64(8)+Uint64FromInt32(3))&uint64(^Int32FromInt32(3))) + for { + if !(uint64(int64(h+uintptr((*Tnlmsghdr)(unsafe.Pointer(h)).Fnlmsg_len))-int64(rta)) >= uint64(4)) { + break + } + switch int32((*Trtattr)(unsafe.Pointer(rta)).Frta_type) { + case int32(IFA_ADDRESS): + /* If ifa_addr is already set we, received an IFA_LOCAL before + * so treat this as destination address */ + if (*Tifaddrs_storage)(unsafe.Pointer(ifs)).Fifa.Fifa_addr != 0 { + _copy_addr(tls, ifs+40, int32((*Tifaddrmsg)(unsafe.Pointer(ifa)).Fifa_family), ifs+136, rta+UintptrFromInt64(4), uint64((*Trtattr)(unsafe.Pointer(rta)).Frta_len)-Uint64FromInt64(4), int32((*Tifaddrmsg)(unsafe.Pointer(ifa)).Fifa_index)) + } else { + _copy_addr(tls, ifs+24, int32((*Tifaddrmsg)(unsafe.Pointer(ifa)).Fifa_family), ifs+64, rta+UintptrFromInt64(4), uint64((*Trtattr)(unsafe.Pointer(rta)).Frta_len)-Uint64FromInt64(4), int32((*Tifaddrmsg)(unsafe.Pointer(ifa)).Fifa_index)) + } + case int32(IFA_BROADCAST): + _copy_addr(tls, ifs+40, int32((*Tifaddrmsg)(unsafe.Pointer(ifa)).Fifa_family), ifs+136, rta+UintptrFromInt64(4), uint64((*Trtattr)(unsafe.Pointer(rta)).Frta_len)-Uint64FromInt64(4), int32((*Tifaddrmsg)(unsafe.Pointer(ifa)).Fifa_index)) + case int32(IFA_LOCAL): + /* If ifa_addr is set and we get IFA_LOCAL, assume we have + * a point-to-point network. Move address to correct field. */ + if (*Tifaddrs_storage)(unsafe.Pointer(ifs)).Fifa.Fifa_addr != 0 { + (*Tifaddrs_storage)(unsafe.Pointer(ifs)).Fifu = (*Tifaddrs_storage)(unsafe.Pointer(ifs)).Faddr + *(*uintptr)(unsafe.Pointer(ifs + 40)) = ifs + 136 + Xmemset(tls, ifs+64, 0, uint64(36)) + } + _copy_addr(tls, ifs+24, int32((*Tifaddrmsg)(unsafe.Pointer(ifa)).Fifa_family), ifs+64, rta+UintptrFromInt64(4), uint64((*Trtattr)(unsafe.Pointer(rta)).Frta_len)-Uint64FromInt64(4), int32((*Tifaddrmsg)(unsafe.Pointer(ifa)).Fifa_index)) + case int32(IFA_LABEL): + if uint64((*Trtattr)(unsafe.Pointer(rta)).Frta_len)-uint64(4) < uint64(17) { + Xmemcpy(tls, ifs+176, rta+UintptrFromInt64(4), uint64((*Trtattr)(unsafe.Pointer(rta)).Frta_len)-Uint64FromInt64(4)) + (*Tifaddrs_storage)(unsafe.Pointer(ifs)).Fifa.Fifa_name = ifs + 176 + } + break + } + goto _4 + _4: + ; + rta = rta + uintptr((int32((*Trtattr)(unsafe.Pointer(rta)).Frta_len)+Int32FromInt32(3)) & ^Int32FromInt32(3)) + } + if (*Tifaddrs_storage)(unsafe.Pointer(ifs)).Fifa.Fifa_addr != 0 { + _gen_netmask(tls, ifs+32, int32((*Tifaddrmsg)(unsafe.Pointer(ifa)).Fifa_family), ifs+100, int32((*Tifaddrmsg)(unsafe.Pointer(ifa)).Fifa_prefixlen)) + } + } + if (*Tifaddrs_storage)(unsafe.Pointer(ifs)).Fifa.Fifa_name != 0 { + if !((*Tifaddrs_ctx)(unsafe.Pointer(ctx)).Ffirst != 0) { + (*Tifaddrs_ctx)(unsafe.Pointer(ctx)).Ffirst = ifs + } + if (*Tifaddrs_ctx)(unsafe.Pointer(ctx)).Flast != 0 { + (*Tifaddrs)(unsafe.Pointer((*Tifaddrs_ctx)(unsafe.Pointer(ctx)).Flast)).Fifa_next = ifs + } + (*Tifaddrs_ctx)(unsafe.Pointer(ctx)).Flast = ifs + } else { + Xfree(tls, ifs) + } + return 0 +} + +func Xgetifaddrs(tls *TLS, ifap uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v ifap=%v, (%v:)", tls, ifap, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(528) + defer tls.Free(528) + var ctx uintptr + var r int32 + var _ /* _ctx at bp+0 */ Tifaddrs_ctx + _, _ = ctx, r + ctx = bp + Xmemset(tls, ctx, 0, uint64(528)) + r = X__rtnetlink_enumerate(tls, PF_UNSPEC, PF_UNSPEC, __ccgo_fp(_netlink_msg_to_ifaddr), ctx) + if r == 0 { + *(*uintptr)(unsafe.Pointer(ifap)) = (*Tifaddrs_ctx)(unsafe.Pointer(ctx)).Ffirst + } else { + Xfreeifaddrs(tls, (*Tifaddrs_ctx)(unsafe.Pointer(ctx)).Ffirst) + } + return r +} + +const RR_PTR = 12 + +func _itoa(tls *TLS, p uintptr, x uint32) (r uintptr) { + var v1, v2 uintptr + _, _ = v1, v2 + p += uintptr(Uint64FromInt32(3) * Uint64FromInt64(4)) + p-- + v1 = p + *(*uint8)(unsafe.Pointer(v1)) = uint8(0) + for cond := true; cond; cond = x != 0 { + p-- + v2 = p + *(*uint8)(unsafe.Pointer(v2)) = uint8(uint32('0') + x%uint32(10)) + x /= uint32(10) + } + return p +} + +func _mkptr4(tls *TLS, s uintptr, ip uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + Xsprintf(tls, s, __ccgo_ts+982, VaList(bp+8, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip))))) +} + +func _mkptr6(tls *TLS, s uintptr, ip uintptr) { + var i int32 + var v2, v3, v4, v5 uintptr + _, _, _, _, _ = i, v2, v3, v4, v5 + i = int32(15) + for { + if !(i >= 0) { + break + } + v2 = s + s++ + *(*uint8)(unsafe.Pointer(v2)) = _xdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))&int32(15)] + v3 = s + s++ + *(*uint8)(unsafe.Pointer(v3)) = uint8('.') + v4 = s + s++ + *(*uint8)(unsafe.Pointer(v4)) = _xdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>int32(4)] + v5 = s + s++ + *(*uint8)(unsafe.Pointer(v5)) = uint8('.') + goto _1 + _1: + ; + i-- + } + Xstrcpy(tls, s, __ccgo_ts+1007) +} + +var _xdigits = [17]uint8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'} + +func _reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { + bp := tls.Alloc(1824) + defer tls.Free(1824) + var f, p, z, v1, v2, v8 uintptr + var v10, v11, v15, v16, v4, v5 int32 + var v13, v18, v7 bool + var _ /* _buf at bp+512 */ [1032]uint8 + var _ /* _f at bp+1592 */ TFILE + var _ /* atmp at bp+1544 */ [16]uint8 + var _ /* iplit at bp+1560 */ Taddress + var _ /* line at bp+0 */ [512]uint8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = f, p, z, v1, v10, v11, v13, v15, v16, v18, v2, v4, v5, v7, v8 + f = X__fopen_rb_ca(tls, __ccgo_ts+1016, bp+1592, bp+512, uint64(1032)) + if !(f != 0) { + return + } + if family == int32(PF_INET) { + Xmemcpy(tls, bp+1544+uintptr(12), a, uint64(4)) + Xmemcpy(tls, bp+1544, __ccgo_ts+1027, uint64(12)) + a = bp + 1544 + } + for Xfgets(tls, bp, int32(512), f) != 0 { + v1 = Xstrchr(tls, bp, int32('#')) + p = v1 + if v1 != 0 { + v2 = p + p++ + *(*uint8)(unsafe.Pointer(v2)) = uint8('\n') + *(*uint8)(unsafe.Pointer(p)) = Uint8FromInt32(0) + } + p = bp + for { + if v7 = *(*uint8)(unsafe.Pointer(p)) != 0; v7 { + v4 = int32(*(*uint8)(unsafe.Pointer(p))) + v5 = BoolInt32(v4 == int32(' ') || uint32(v4)-uint32('\t') < uint32(5)) + goto _6 + _6: + } + if !(v7 && !(v5 != 0)) { + break + } + goto _3 + _3: + ; + p++ + } + if !(*(*uint8)(unsafe.Pointer(p)) != 0) { + continue + } + v8 = p + p++ + *(*uint8)(unsafe.Pointer(v8)) = uint8(0) + if X__lookup_ipliteral(tls, bp+1560, bp, PF_UNSPEC) <= 0 { + continue + } + if (*(*Taddress)(unsafe.Pointer(bp + 1560))).Ffamily == int32(PF_INET) { + Xmemcpy(tls, bp+1560+8+uintptr(12), bp+1560+8, uint64(4)) + Xmemcpy(tls, bp+1560+8, __ccgo_ts+1027, uint64(12)) + (*(*Taddress)(unsafe.Pointer(bp + 1560))).Fscopeid = uint32(0) + } + if Xmemcmp(tls, a, bp+1560+8, uint64(16)) != 0 || (*(*Taddress)(unsafe.Pointer(bp + 1560))).Fscopeid != scopeid { + continue + } + for { + if v13 = *(*uint8)(unsafe.Pointer(p)) != 0; v13 { + v10 = int32(*(*uint8)(unsafe.Pointer(p))) + v11 = BoolInt32(v10 == int32(' ') || uint32(v10)-uint32('\t') < uint32(5)) + goto _12 + _12: + } + if !(v13 && v11 != 0) { + break + } + goto _9 + _9: + ; + p++ + } + z = p + for { + if v18 = *(*uint8)(unsafe.Pointer(z)) != 0; v18 { + v15 = int32(*(*uint8)(unsafe.Pointer(z))) + v16 = BoolInt32(v15 == int32(' ') || uint32(v15)-uint32('\t') < uint32(5)) + goto _17 + _17: + } + if !(v18 && !(v16 != 0)) { + break + } + goto _14 + _14: + ; + z++ + } + *(*uint8)(unsafe.Pointer(z)) = uint8(0) + if int64(z)-int64(p) < int64(256) { + Xmemcpy(tls, buf, p, uint64(int64(z)-int64(p)+int64(1))) + break + } + } + X__fclose_ca(tls, f) +} + +func _reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { + bp := tls.Alloc(1408) + defer tls.Free(1408) + var f, p, v1, v2, v8 uintptr + var svport uint64 + var v4, v5 int32 + var v7 bool + var _ /* _buf at bp+136 */ [1032]uint8 + var _ /* _f at bp+1168 */ TFILE + var _ /* line at bp+0 */ [128]uint8 + var _ /* z at bp+128 */ uintptr + _, _, _, _, _, _, _, _, _ = f, p, svport, v1, v2, v4, v5, v7, v8 + f = X__fopen_rb_ca(tls, __ccgo_ts+1040, bp+1168, bp+136, uint64(1032)) + if !(f != 0) { + return + } + for Xfgets(tls, bp, int32(128), f) != 0 { + v1 = Xstrchr(tls, bp, int32('#')) + p = v1 + if v1 != 0 { + v2 = p + p++ + *(*uint8)(unsafe.Pointer(v2)) = uint8('\n') + *(*uint8)(unsafe.Pointer(p)) = Uint8FromInt32(0) + } + p = bp + for { + if v7 = *(*uint8)(unsafe.Pointer(p)) != 0; v7 { + v4 = int32(*(*uint8)(unsafe.Pointer(p))) + v5 = BoolInt32(v4 == int32(' ') || uint32(v4)-uint32('\t') < uint32(5)) + goto _6 + _6: + } + if !(v7 && !(v5 != 0)) { + break + } + goto _3 + _3: + ; + p++ + } + if !(*(*uint8)(unsafe.Pointer(p)) != 0) { + continue + } + v8 = p + p++ + *(*uint8)(unsafe.Pointer(v8)) = uint8(0) + svport = Xstrtoul(tls, p, bp+128, int32(10)) + if svport != uint64(port) || *(*uintptr)(unsafe.Pointer(bp + 128)) == p { + continue + } + if dgram != 0 && Xstrncmp(tls, *(*uintptr)(unsafe.Pointer(bp + 128)), __ccgo_ts+1054, uint64(4)) != 0 { + continue + } + if !(dgram != 0) && Xstrncmp(tls, *(*uintptr)(unsafe.Pointer(bp + 128)), __ccgo_ts+1059, uint64(4)) != 0 { + continue + } + if int64(p)-t__predefined_ptrdiff_t(bp) > int64(32) { + continue + } + Xmemcpy(tls, buf, bp, uint64(int64(p)-t__predefined_ptrdiff_t(bp))) + break + } + X__fclose_ca(tls, f) +} + +func _dns_parse_callback(tls *TLS, c uintptr, rr int32, data uintptr, len1 int32, packet uintptr, plen int32) (r int32) { + if rr != int32(RR_PTR) { + return 0 + } + if X__dn_expand(tls, packet, packet+uintptr(plen), data, c, int32(256)) <= 0 { + *(*uint8)(unsafe.Pointer(c)) = uint8(0) + } + return 0 +} + +func Xgetnameinfo(tls *TLS, sa uintptr, sl Tsocklen_t, node uintptr, nodelen Tsocklen_t, serv uintptr, servlen Tsocklen_t, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v sa=%v sl=%v node=%v nodelen=%v serv=%v servlen=%v flags=%v, (%v:)", tls, sa, sl, node, nodelen, serv, servlen, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(976) + defer tls.Free(976) + var a, p, p1, v1 uintptr + var af, port, qlen, rlen int32 + var scopeid uint32 + var _ /* buf at bp+78 */ [256]uint8 + var _ /* num at bp+334 */ [13]uint8 + var _ /* ptr at bp+0 */ [78]uint8 + var _ /* query at bp+347 */ [96]uint8 + var _ /* reply at bp+443 */ [512]uint8 + var _ /* tmp at bp+955 */ [17]uint8 + _, _, _, _, _, _, _, _, _ = a, af, p, p1, port, qlen, rlen, scopeid, v1 + af = int32((*Tsockaddr)(unsafe.Pointer(sa)).Fsa_family) + switch af { + case int32(PF_INET): + a = sa + 4 + if uint64(sl) < uint64(16) { + return -int32(6) + } + _mkptr4(tls, bp, a) + scopeid = uint32(0) + case int32(PF_INET6): + a = sa + 8 + if uint64(sl) < uint64(28) { + return -int32(6) + } + if Xmemcmp(tls, a, __ccgo_ts+1027, uint64(12)) != 0 { + _mkptr6(tls, bp, a) + } else { + _mkptr4(tls, bp, a+uintptr(12)) + } + scopeid = (*Tsockaddr_in6)(unsafe.Pointer(sa)).Fsin6_scope_id + default: + return -int32(6) + } + if node != 0 && nodelen != 0 { + (*(*[256]uint8)(unsafe.Pointer(bp + 78)))[0] = uint8(0) + if !(flags&Int32FromInt32(NI_NUMERICHOST) != 0) { + _reverse_hosts(tls, bp+78, a, scopeid, af) + } + if !(*(*uint8)(unsafe.Pointer(bp + 78)) != 0) && !(flags&Int32FromInt32(NI_NUMERICHOST) != 0) { + qlen = X__res_mkquery(tls, 0, bp, int32(1), int32(RR_PTR), uintptr(0), 0, uintptr(0), bp+347, int32(96)) + (*(*[96]uint8)(unsafe.Pointer(bp + 347)))[int32(3)] = uint8(0) /* don't need AD flag */ + rlen = X__res_send(tls, bp+347, qlen, bp+443, int32(512)) + (*(*[256]uint8)(unsafe.Pointer(bp + 78)))[0] = uint8(0) + if rlen > 0 { + if uint64(rlen) > uint64(512) { + rlen = int32(512) + } + X__dns_parse(tls, bp+443, rlen, __ccgo_fp(_dns_parse_callback), bp+78) + } + } + if !(*(*uint8)(unsafe.Pointer(bp + 78)) != 0) { + if flags&int32(NI_NAMEREQD) != 0 { + return -int32(2) + } + Xinet_ntop(tls, af, a, bp+78, uint32(256)) + if scopeid != 0 { + p = uintptr(0) + if !(flags&Int32FromInt32(NI_NUMERICSCOPE) != 0) && (int32(*(*Tuint8_t)(unsafe.Pointer(a))) == int32(0xfe) && int32(*(*Tuint8_t)(unsafe.Pointer(a + 1)))&int32(0xc0) == int32(0x80) || int32(*(*Tuint8_t)(unsafe.Pointer(a))) == int32(0xff) && int32(*(*Tuint8_t)(unsafe.Pointer(a + 1)))&int32(0xf) == int32(0x2)) { + p = Xif_indextoname(tls, scopeid, bp+955+uintptr(1)) + } + if !(p != 0) { + p = _itoa(tls, bp+334, scopeid) + } + p-- + v1 = p + *(*uint8)(unsafe.Pointer(v1)) = uint8('%') + Xstrcat(tls, bp+78, p) + } + } + if Xstrlen(tls, bp+78) >= uint64(nodelen) { + return -int32(12) + } + Xstrcpy(tls, node, bp+78) + } + if serv != 0 && servlen != 0 { + p1 = bp + 78 + port = int32(Xntohs(tls, (*Tsockaddr_in)(unsafe.Pointer(sa)).Fsin_port)) + (*(*[256]uint8)(unsafe.Pointer(bp + 78)))[0] = uint8(0) + if !(flags&Int32FromInt32(NI_NUMERICSERV) != 0) { + _reverse_services(tls, bp+78, port, flags&int32(NI_DGRAM)) + } + if !(*(*uint8)(unsafe.Pointer(p1)) != 0) { + p1 = _itoa(tls, bp+334, uint32(port)) + } + if Xstrlen(tls, p1) >= uint64(servlen) { + return -int32(12) + } + Xstrcpy(tls, serv, p1) + } + return 0 +} + +func Xgetpeername(tls *TLS, fd int32, addr uintptr, len1 uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v fd=%v addr=%v len1=%v, (%v:)", tls, fd, addr, len1, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, v8 int64 + var v1 int32 + var v2, v3, v4, v5, v6, v7 Tsyscall_arg_t + _, _, _, _, _, _, _, _, _ = r, v1, v2, v3, v4, v5, v6, v7, v8 + v1 = int32(SYS_getpeername) + _ = int32(__SC_getpeername) + v2 = int64(fd) + v3 = int64(addr) + v4 = int64(len1) + v5 = int64(Int32FromInt32(0)) + v6 = int64(Int32FromInt32(0)) + v7 = int64(Int32FromInt32(0)) + if 0 != 0 { + r = ___syscall_cp(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } else { + r = X__syscall6(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v8 = r + goto _9 + } + v8 = r + goto _9 +_9: + return int32(X__syscall_ret(tls, uint64(v8))) +} + +func Xgetservbyname(tls *TLS, name uintptr, prots uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v name=%v prots=%v, (%v:)", tls, name, prots, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* res at bp+0 */ uintptr + if Xgetservbyname_r(tls, name, prots, uintptr(unsafe.Pointer(&_se)), uintptr(unsafe.Pointer(&_buf3)), uint64(16), bp) != 0 { + return uintptr(0) + } + return uintptr(unsafe.Pointer(&_se)) +} + +var _se Tservent + +var _buf3 [2]uintptr + +const ALIGN = 0 + +func Xgetservbyname_r(tls *TLS, name uintptr, prots uintptr, se uintptr, buf uintptr, buflen Tsize_t, res uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v name=%v prots=%v se=%v buf=%v buflen=%v res=%v, (%v:)", tls, name, prots, se, buf, buflen, res, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var align, cnt, proto int32 + var v1 uintptr + var _ /* end at bp+8 */ uintptr + var _ /* servs at bp+0 */ [2]Tservice + _, _, _, _ = align, cnt, proto, v1 + *(*uintptr)(unsafe.Pointer(res)) = uintptr(0) + /* Don't treat numeric port number strings as service records. */ + *(*uintptr)(unsafe.Pointer(bp + 8)) = __ccgo_ts + Xstrtoul(tls, name, bp+8, int32(10)) + if !(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) != 0) { + return int32(ENOENT) + } + /* Align buffer */ + align = int32(-uint64(buf) & (Uint64FromInt64(16) - Uint64FromInt64(8) - Uint64FromInt32(1))) + if buflen < Uint64FromInt32(2)*Uint64FromInt64(8)+uint64(align) { + return int32(ERANGE) + } + buf += uintptr(align) + if !(prots != 0) { + proto = 0 + } else { + if !(Xstrcmp(tls, prots, __ccgo_ts+1064) != 0) { + proto = int32(IPPROTO_TCP) + } else { + if !(Xstrcmp(tls, prots, __ccgo_ts+1068) != 0) { + proto = int32(IPPROTO_UDP) + } else { + return int32(EINVAL) + } + } + } + cnt = X__lookup_serv(tls, bp, name, proto, 0, 0) + if cnt < 0 { + switch cnt { + case -int32(10): + fallthrough + case -int32(11): + return int32(ENOMEM) + default: + return int32(ENOENT) + } + } + (*Tservent)(unsafe.Pointer(se)).Fs_name = name + (*Tservent)(unsafe.Pointer(se)).Fs_aliases = buf + *(*uintptr)(unsafe.Pointer((*Tservent)(unsafe.Pointer(se)).Fs_aliases)) = (*Tservent)(unsafe.Pointer(se)).Fs_name + *(*uintptr)(unsafe.Pointer((*Tservent)(unsafe.Pointer(se)).Fs_aliases + 1*8)) = uintptr(0) + (*Tservent)(unsafe.Pointer(se)).Fs_port = int32(Xhtons(tls, (*(*[2]Tservice)(unsafe.Pointer(bp)))[0].Fport)) + if int32((*(*[2]Tservice)(unsafe.Pointer(bp)))[0].Fproto) == int32(IPPROTO_TCP) { + v1 = __ccgo_ts + 1064 + } else { + v1 = __ccgo_ts + 1068 + } + (*Tservent)(unsafe.Pointer(se)).Fs_proto = v1 + *(*uintptr)(unsafe.Pointer(res)) = se + return 0 +} + +func Xgetsockname(tls *TLS, fd int32, addr uintptr, len1 uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v fd=%v addr=%v len1=%v, (%v:)", tls, fd, addr, len1, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, v8 int64 + var v1 int32 + var v2, v3, v4, v5, v6, v7 Tsyscall_arg_t + _, _, _, _, _, _, _, _, _ = r, v1, v2, v3, v4, v5, v6, v7, v8 + v1 = int32(SYS_getsockname) + _ = int32(__SC_getsockname) + v2 = int64(fd) + v3 = int64(addr) + v4 = int64(len1) + v5 = int64(Int32FromInt32(0)) + v6 = int64(Int32FromInt32(0)) + v7 = int64(Int32FromInt32(0)) + if 0 != 0 { + r = ___syscall_cp(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } else { + r = X__syscall6(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v8 = r + goto _9 + } + v8 = r + goto _9 +_9: + return int32(X__syscall_ret(tls, uint64(v8))) +} + +func Xgetsockopt(tls *TLS, fd int32, level int32, optname int32, optval uintptr, optlen uintptr) (r2 int32) { + if __ccgo_strace { + trc("tls=%v fd=%v level=%v optname=%v optval=%v optlen=%v, (%v:)", tls, fd, level, optname, optval, optlen, origin(2)) + defer func() { trc("-> %v", r2) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var r, v17, v26, v8 int64 + var r1, v1, v10, v19 int32 + var tv uintptr + var v11, v12, v13, v14, v15, v16, v2, v20, v21, v22, v23, v24, v25, v3, v4, v5, v6, v7 Tsyscall_arg_t + var _ /* tv32 at bp+8 */ [2]int64 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = r, r1, tv, v1, v10, v11, v12, v13, v14, v15, v16, v17, v19, v2, v20, v21, v22, v23, v24, v25, v26, v3, v4, v5, v6, v7, v8 + v1 = int32(SYS_getsockopt) + _ = int32(__SC_getsockopt) + v2 = int64(fd) + v3 = int64(level) + v4 = int64(optname) + v5 = int64(optval) + v6 = int64(optlen) + v7 = int64(Int32FromInt32(0)) + if 0 != 0 { + r = ___syscall_cp(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } else { + r = X__syscall6(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v8 = r + goto _9 + } + v8 = r + goto _9 +_9: + r1 = int32(v8) + if r1 == -int32(ENOPROTOOPT) { + switch level { + case int32(SOL_SOCKET): + switch optname { + case int32(SO_RCVTIMEO): + fallthrough + case int32(SO_SNDTIMEO): + if true { + break + } + if uint64(*(*Tsocklen_t)(unsafe.Pointer(optlen))) < uint64(16) { + return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EINVAL)))) + } + if optname == int32(SO_RCVTIMEO) { + optname = int32(SO_RCVTIMEO_OLD) + } + if optname == int32(SO_SNDTIMEO) { + optname = int32(SO_SNDTIMEO_OLD) + } + *(*[1]Tsocklen_t)(unsafe.Pointer(bp)) = [1]Tsocklen_t{ + 0: uint32(16), + } + v10 = int32(SYS_getsockopt) + _ = int32(__SC_getsockopt) + v11 = int64(fd) + v12 = int64(level) + v13 = int64(optname) + v14 = int64(bp + 8) + v15 = int64(bp) + v16 = int64(Int32FromInt32(0)) + if 0 != 0 { + r = ___syscall_cp(tls, int64(v10), v11, v12, v13, v14, v15, v16) + } else { + r = X__syscall6(tls, int64(v10), v11, v12, v13, v14, v15, v16) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v17 = r + goto _18 + } + v17 = r + goto _18 + _18: + r1 = int32(v17) + if r1 < 0 { + break + } + tv = optval + (*Ttimeval)(unsafe.Pointer(tv)).Ftv_sec = (*(*[2]int64)(unsafe.Pointer(bp + 8)))[0] + (*Ttimeval)(unsafe.Pointer(tv)).Ftv_usec = (*(*[2]int64)(unsafe.Pointer(bp + 8)))[int32(1)] + *(*Tsocklen_t)(unsafe.Pointer(optlen)) = uint32(16) + case int32(SO_TIMESTAMP): + fallthrough + case int32(SO_TIMESTAMPNS): + if true { + break + } + if optname == int32(SO_TIMESTAMP) { + optname = int32(SO_TIMESTAMP_OLD) + } + if optname == int32(SO_TIMESTAMPNS) { + optname = int32(SO_TIMESTAMPNS_OLD) + } + v19 = int32(SYS_getsockopt) + _ = int32(__SC_getsockopt) + v20 = int64(fd) + v21 = int64(level) + v22 = int64(optname) + v23 = int64(optval) + v24 = int64(optlen) + v25 = int64(Int32FromInt32(0)) + if 0 != 0 { + r = ___syscall_cp(tls, int64(v19), v20, v21, v22, v23, v24, v25) + } else { + r = X__syscall6(tls, int64(v19), v20, v21, v22, v23, v24, v25) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v26 = r + goto _27 + } + v26 = r + goto _27 + _27: + r1 = int32(v26) + break + } + } + } + return int32(X__syscall_ret(tls, uint64(r1))) +} + +func X__h_errno_location(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + if !((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Fstack != 0) { + return uintptr(unsafe.Pointer(&Xh_errno)) + } + return ___get_tp(tls) + 144 +} + +func Xherror(tls *TLS, msg uintptr) { + if __ccgo_strace { + trc("tls=%v msg=%v, (%v:)", tls, msg, origin(2)) + } + bp := tls.Alloc(32) + defer tls.Free(32) + var v1, v2 uintptr + _, _ = v1, v2 + if msg != 0 { + v1 = msg + } else { + v1 = __ccgo_ts + } + if msg != 0 { + v2 = __ccgo_ts + 289 + } else { + v2 = __ccgo_ts + } + Xfprintf(tls, uintptr(unsafe.Pointer(&X__stderr_FILE)), __ccgo_ts+1072, VaList(bp+8, v1, v2, Xhstrerror(tls, *(*int32)(unsafe.Pointer(X__h_errno_location(tls)))))) +} + +type Tcpu_set_t1 = struct { + F__bits [16]uint64 +} + +type Tucontext_t5 = struct { + Fuc_flags uint64 + Fuc_link uintptr + Fuc_stack Tstack_t + Fuc_sigmask Tsigset_t + Fuc_mcontext Tmcontext_t1 +} + +var _msgs1 = [84]uint8{'H', 'o', 's', 't', ' ', 'n', 'o', 't', ' ', 'f', 'o', 'u', 'n', 'd', 0, 'T', 'r', 'y', ' ', 'a', 'g', 'a', 'i', 'n', 0, 'N', 'o', 'n', '-', 'r', 'e', 'c', 'o', 'v', 'e', 'r', 'a', 'b', 'l', 'e', ' ', 'e', 'r', 'r', 'o', 'r', 0, 'A', 'd', 'd', 'r', 'e', 's', 's', ' ', 'n', 'o', 't', ' ', 'a', 'v', 'a', 'i', 'l', 'a', 'b', 'l', 'e', 0, 0, 'U', 'n', 'k', 'n', 'o', 'w', 'n', ' ', 'e', 'r', 'r', 'o', 'r'} + +func Xhstrerror(tls *TLS, ecode int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v ecode=%v, (%v:)", tls, ecode, origin(2)) + defer func() { trc("-> %v", r) }() + } + var s uintptr + _ = s + s = uintptr(unsafe.Pointer(&_msgs1)) + ecode-- + for { + if !(ecode != 0 && *(*uint8)(unsafe.Pointer(s)) != 0) { + break + } + for { + if !(*(*uint8)(unsafe.Pointer(s)) != 0) { + break + } + goto _2 + _2: + ; + s++ + } + goto _1 + _1: + ; + ecode-- + s++ + } + if !(*(*uint8)(unsafe.Pointer(s)) != 0) { + s++ + } + return X__lctrans_cur(tls, s) +} +func Xhtonl(tls *TLS, n Tuint32_t) (r Tuint32_t) { + if __ccgo_strace { + trc("tls=%v n=%v, (%v:)", tls, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var u struct { + Fc [0]uint8 + Fi int32 + } + var v1 uint32 + var v2, v3 Tuint32_t + _, _, _, _ = u, v1, v2, v3 + u = *(*struct { + Fc [0]uint8 + Fi int32 + })(unsafe.Pointer(&struct{ f int32 }{f: int32(1)})) + if *(*uint8)(unsafe.Pointer(&u)) != 0 { + v2 = n + v3 = v2>>int32(24) | v2>>int32(8)&uint32(0xff00) | v2< %v", r) }() + } + var u struct { + Fc [0]uint8 + Fi int32 + } + var v1 int32 + var v2, v3 Tuint16_t + _, _, _, _ = u, v1, v2, v3 + u = *(*struct { + Fc [0]uint8 + Fi int32 + })(unsafe.Pointer(&struct{ f int32 }{f: int32(1)})) + if *(*uint8)(unsafe.Pointer(&u)) != 0 { + v2 = n + v3 = uint16(int32(v2)<>int32(8)) + goto _4 + _4: + v1 = int32(v3) + } else { + v1 = int32(n) + } + return uint16(v1) +} + +func Xif_freenameindex(tls *TLS, idx uintptr) { + if __ccgo_strace { + trc("tls=%v idx=%v, (%v:)", tls, idx, origin(2)) + } + Xfree(tls, idx) +} + +func Xif_indextoname(tls *TLS, index uint32, name uintptr) (r1 uintptr) { + if __ccgo_strace { + trc("tls=%v index=%v name=%v, (%v:)", tls, index, name, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(64) + defer tls.Free(64) + var fd, r, v1 int32 + var _ /* ifr at bp+0 */ Tifreq + _, _, _ = fd, r, v1 + v1 = Xsocket(tls, int32(PF_LOCAL), Int32FromInt32(SOCK_DGRAM)|Int32FromInt32(SOCK_CLOEXEC), 0) + fd = v1 + if v1 < 0 { + return uintptr(0) + } + *(*int32)(unsafe.Pointer(bp + 16)) = int32(index) + r = Xioctl(tls, fd, int32(SIOCGIFNAME), VaList(bp+48, bp)) + X__syscall1(tls, int64(SYS_close), int64(fd)) + if r < 0 { + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(ENODEV) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENXIO) + } + return uintptr(0) + } + return Xstrncpy(tls, name, bp, uint64(IF_NAMESIZE)) +} + +type Tifnamemap = struct { + Fhash_next uint32 + Findex uint32 + Fnamelen uint8 + Fname [16]uint8 +} + +type Tifnameindexctx = struct { + Fnum uint32 + Fallocated uint32 + Fstr_bytes uint32 + Flist uintptr + Fhash [64]uint32 +} + +func _netlink_msg_to_nameindex(tls *TLS, pctx uintptr, h uintptr) (r int32) { + var a Tsize_t + var bucket, index, namelen, type1 int32 + var ctx, ifa, ifi, map1, rta uintptr + var i, v2 uint32 + _, _, _, _, _, _, _, _, _, _, _, _ = a, bucket, ctx, i, ifa, ifi, index, map1, namelen, rta, type1, v2 + ctx = pctx + if int32((*Tnlmsghdr)(unsafe.Pointer(h)).Fnlmsg_type) == int32(RTM_NEWLINK) { + ifi = h + UintptrFromInt64(16) + index = (*Tifinfomsg)(unsafe.Pointer(ifi)).Fifi_index + type1 = int32(IFLA_IFNAME) + rta = h + UintptrFromInt64(16) + uintptr((Uint64FromInt64(16)+Uint64FromInt32(3))&uint64(^Int32FromInt32(3))) + } else { + ifa = h + UintptrFromInt64(16) + index = int32((*Tifaddrmsg)(unsafe.Pointer(ifa)).Fifa_index) + type1 = int32(IFA_LABEL) + rta = h + UintptrFromInt64(16) + uintptr((Uint64FromInt64(8)+Uint64FromInt32(3))&uint64(^Int32FromInt32(3))) + } + for { + if !(uint64(int64(h+uintptr((*Tnlmsghdr)(unsafe.Pointer(h)).Fnlmsg_len))-int64(rta)) >= uint64(4)) { + break + } + if int32((*Trtattr)(unsafe.Pointer(rta)).Frta_type) != type1 { + goto _1 + } + namelen = int32(uint64((*Trtattr)(unsafe.Pointer(rta)).Frta_len) - uint64(4) - uint64(1)) + if namelen > int32(IF_NAMESIZE) { + return 0 + } + /* suppress duplicates */ + bucket = index % int32(IFADDRS_HASH_SIZE) + i = *(*uint32)(unsafe.Pointer(ctx + 24 + uintptr(bucket)*4)) + for i != 0 { + map1 = (*Tifnameindexctx)(unsafe.Pointer(ctx)).Flist + uintptr(i-uint32(1))*28 + if (*Tifnamemap)(unsafe.Pointer(map1)).Findex == uint32(index) && int32((*Tifnamemap)(unsafe.Pointer(map1)).Fnamelen) == namelen && Xmemcmp(tls, map1+9, rta+UintptrFromInt64(4), uint64(namelen)) == 0 { + return 0 + } + i = (*Tifnamemap)(unsafe.Pointer(map1)).Fhash_next + } + if (*Tifnameindexctx)(unsafe.Pointer(ctx)).Fnum >= (*Tifnameindexctx)(unsafe.Pointer(ctx)).Fallocated { + if (*Tifnameindexctx)(unsafe.Pointer(ctx)).Fallocated != 0 { + v2 = (*Tifnameindexctx)(unsafe.Pointer(ctx)).Fallocated*uint32(2) + uint32(1) + } else { + v2 = uint32(8) + } + a = uint64(v2) + if a > Uint64FromUint64(0xffffffffffffffff)/Uint64FromInt64(28) { + return -int32(1) + } + map1 = Xrealloc(tls, (*Tifnameindexctx)(unsafe.Pointer(ctx)).Flist, a*uint64(28)) + if !(map1 != 0) { + return -int32(1) + } + (*Tifnameindexctx)(unsafe.Pointer(ctx)).Flist = map1 + (*Tifnameindexctx)(unsafe.Pointer(ctx)).Fallocated = uint32(a) + } + map1 = (*Tifnameindexctx)(unsafe.Pointer(ctx)).Flist + uintptr((*Tifnameindexctx)(unsafe.Pointer(ctx)).Fnum)*28 + (*Tifnamemap)(unsafe.Pointer(map1)).Findex = uint32(index) + (*Tifnamemap)(unsafe.Pointer(map1)).Fnamelen = uint8(namelen) + Xmemcpy(tls, map1+9, rta+UintptrFromInt64(4), uint64(namelen)) + *(*uint32)(unsafe.Pointer(ctx + 8)) += uint32(namelen + int32(1)) + (*Tifnameindexctx)(unsafe.Pointer(ctx)).Fnum++ + (*Tifnamemap)(unsafe.Pointer(map1)).Fhash_next = *(*uint32)(unsafe.Pointer(ctx + 24 + uintptr(bucket)*4)) + *(*uint32)(unsafe.Pointer(ctx + 24 + uintptr(bucket)*4)) = (*Tifnameindexctx)(unsafe.Pointer(ctx)).Fnum + return 0 + goto _1 + _1: + ; + rta = rta + uintptr((int32((*Trtattr)(unsafe.Pointer(rta)).Frta_len)+Int32FromInt32(3)) & ^Int32FromInt32(3)) + } + return 0 +} + +func Xif_nameindex(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(288) + defer tls.Free(288) + var ctx, d, ifs, p, s, v2 uintptr + var i int32 + var _ /* _ctx at bp+0 */ Tifnameindexctx + var _ /* cs at bp+280 */ int32 + _, _, _, _, _, _, _ = ctx, d, i, ifs, p, s, v2 + ctx = bp + ifs = uintptr(0) + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp+280) + Xmemset(tls, ctx, 0, uint64(280)) + if X__rtnetlink_enumerate(tls, PF_UNSPEC, int32(PF_INET), __ccgo_fp(_netlink_msg_to_nameindex), ctx) < 0 { + goto err + } + ifs = Xmalloc(tls, uint64((*Tifnameindexctx)(unsafe.Pointer(ctx)).Fnum+Uint32FromInt32(1))*16+uint64((*Tifnameindexctx)(unsafe.Pointer(ctx)).Fstr_bytes)) + if !(ifs != 0) { + goto err + } + p = ifs + uintptr((*Tifnameindexctx)(unsafe.Pointer(ctx)).Fnum)*16 + UintptrFromInt32(1)*16 + i = int32((*Tifnameindexctx)(unsafe.Pointer(ctx)).Fnum) + d = ifs + s = (*Tifnameindexctx)(unsafe.Pointer(ctx)).Flist + for { + if !(i != 0) { + break + } + (*Tif_nameindex)(unsafe.Pointer(d)).Fif_index = (*Tifnamemap)(unsafe.Pointer(s)).Findex + (*Tif_nameindex)(unsafe.Pointer(d)).Fif_name = p + Xmemcpy(tls, p, s+9, uint64((*Tifnamemap)(unsafe.Pointer(s)).Fnamelen)) + p += uintptr((*Tifnamemap)(unsafe.Pointer(s)).Fnamelen) + v2 = p + p++ + *(*uint8)(unsafe.Pointer(v2)) = uint8(0) + goto _1 + _1: + ; + i-- + s += 28 + d += 16 + } + (*Tif_nameindex)(unsafe.Pointer(d)).Fif_index = uint32(0) + (*Tif_nameindex)(unsafe.Pointer(d)).Fif_name = uintptr(0) + goto err +err: + ; + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 280)), uintptr(0)) + Xfree(tls, (*Tifnameindexctx)(unsafe.Pointer(ctx)).Flist) + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOBUFS) + return ifs +} + +func Xif_nametoindex(tls *TLS, name uintptr) (r1 uint32) { + if __ccgo_strace { + trc("tls=%v name=%v, (%v:)", tls, name, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(64) + defer tls.Free(64) + var fd, r, v1, v2 int32 + var _ /* ifr at bp+0 */ Tifreq + _, _, _, _ = fd, r, v1, v2 + v1 = Xsocket(tls, int32(PF_LOCAL), Int32FromInt32(SOCK_DGRAM)|Int32FromInt32(SOCK_CLOEXEC), 0) + fd = v1 + if v1 < 0 { + return uint32(0) + } + Xstrncpy(tls, bp, name, uint64(16)) + r = Xioctl(tls, fd, int32(SIOCGIFINDEX), VaList(bp+48, bp)) + X__syscall1(tls, int64(SYS_close), int64(fd)) + if r < 0 { + v2 = 0 + } else { + v2 = *(*int32)(unsafe.Pointer(bp + 16)) + } + return uint32(v2) +} + +func Xinet_addr(tls *TLS, p uintptr) (r Tin_addr_t) { + if __ccgo_strace { + trc("tls=%v p=%v, (%v:)", tls, p, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* a at bp+0 */ Tin_addr + if !(X__inet_aton(tls, p, bp) != 0) { + return uint32(-Int32FromInt32(1)) + } + return (*(*Tin_addr)(unsafe.Pointer(bp))).Fs_addr +} + +func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v s0=%v dest=%v, (%v:)", tls, s0, dest, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(48) + defer tls.Free(48) + var d, s uintptr + var i int32 + var _ /* a at bp+0 */ [4]uint64 + var _ /* z at bp+32 */ uintptr + _, _, _ = d, i, s + s = s0 + d = dest + *(*[4]uint64)(unsafe.Pointer(bp)) = [4]uint64{} + i = 0 + for { + if !(i < int32(4)) { + break + } + (*(*[4]uint64)(unsafe.Pointer(bp)))[i] = Xstrtoul(tls, s, bp+32, 0) + if *(*uintptr)(unsafe.Pointer(bp + 32)) == s || *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))) != 0 && int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != int32('.') || !(BoolInt32(uint32(*(*uint8)(unsafe.Pointer(s)))-Uint32FromUint8('0') < Uint32FromInt32(10)) != 0) { + return 0 + } + if !(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))) != 0) { + break + } + s = *(*uintptr)(unsafe.Pointer(bp + 32)) + uintptr(1) + goto _1 + _1: + ; + i++ + } + if i == int32(4) { + return 0 + } + switch i { + case 0: + (*(*[4]uint64)(unsafe.Pointer(bp)))[int32(1)] = (*(*[4]uint64)(unsafe.Pointer(bp)))[0] & uint64(0xffffff) + *(*uint64)(unsafe.Pointer(bp)) >>= uint64(24) + fallthrough + case int32(1): + (*(*[4]uint64)(unsafe.Pointer(bp)))[int32(2)] = (*(*[4]uint64)(unsafe.Pointer(bp)))[int32(1)] & uint64(0xffff) + *(*uint64)(unsafe.Pointer(bp + 1*8)) >>= uint64(16) + fallthrough + case int32(2): + (*(*[4]uint64)(unsafe.Pointer(bp)))[int32(3)] = (*(*[4]uint64)(unsafe.Pointer(bp)))[int32(2)] & uint64(0xff) + *(*uint64)(unsafe.Pointer(bp + 2*8)) >>= uint64(8) + } + i = 0 + for { + if !(i < int32(4)) { + break + } + if (*(*[4]uint64)(unsafe.Pointer(bp)))[i] > uint64(255) { + return 0 + } + *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8((*(*[4]uint64)(unsafe.Pointer(bp)))[i]) + goto _2 + _2: + ; + i++ + } + return int32(1) +} + +func Xinet_aton(tls *TLS, s0 uintptr, dest uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v s0=%v dest=%v, (%v:)", tls, s0, dest, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__inet_aton(tls, s0, dest) +} + +func Xinet_network(tls *TLS, p uintptr) (r Tin_addr_t) { + if __ccgo_strace { + trc("tls=%v p=%v, (%v:)", tls, p, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xntohl(tls, Xinet_addr(tls, p)) +} + +func Xinet_makeaddr(tls *TLS, n Tin_addr_t, h Tin_addr_t) (r Tin_addr) { + if __ccgo_strace { + trc("tls=%v n=%v h=%v, (%v:)", tls, n, h, origin(2)) + defer func() { trc("-> %v", r) }() + } + if n < uint32(256) { + h |= n << int32(24) + } else { + if n < uint32(65536) { + h |= n << int32(16) + } else { + h |= n << int32(8) + } + } + return Tin_addr{ + Fs_addr: h, + } +} + +func Xinet_lnaof(tls *TLS, in Tin_addr) (r Tin_addr_t) { + if __ccgo_strace { + trc("tls=%v in=%v, (%v:)", tls, in, origin(2)) + defer func() { trc("-> %v", r) }() + } + var h Tuint32_t + _ = h + h = in.Fs_addr + if h>>int32(24) < uint32(128) { + return h & uint32(0xffffff) + } + if h>>int32(24) < uint32(192) { + return h & uint32(0xffff) + } + return h & uint32(0xff) +} + +func Xinet_netof(tls *TLS, in Tin_addr) (r Tin_addr_t) { + if __ccgo_strace { + trc("tls=%v in=%v, (%v:)", tls, in, origin(2)) + defer func() { trc("-> %v", r) }() + } + var h Tuint32_t + _ = h + h = in.Fs_addr + if h>>int32(24) < uint32(128) { + return h >> int32(24) + } + if h>>int32(24) < uint32(192) { + return h >> int32(16) + } + return h >> int32(8) +} + +func Xinet_ntoa(tls *TLS, _in Tin_addr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v _in=%v, (%v:)", tls, _in, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(48) + defer tls.Free(48) + *(*Tin_addr)(unsafe.Pointer(bp)) = _in + var a uintptr + _ = a + a = bp + Xsnprintf(tls, uintptr(unsafe.Pointer(&_buf4)), uint64(16), __ccgo_ts+1080, VaList(bp+16, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3))))) + return uintptr(unsafe.Pointer(&_buf4)) +} + +var _buf4 [16]uint8 + +func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l Tsocklen_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v af=%v a0=%v s=%v l=%v, (%v:)", tls, af, a0, s, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(192) + defer tls.Free(192) + var a uintptr + var best, i, j, max, v2 int32 + var v3 uint8 + var _ /* buf at bp+0 */ [100]uint8 + _, _, _, _, _, _, _ = a, best, i, j, max, v2, v3 + a = a0 + switch af { + case int32(PF_INET): + if uint32(Xsnprintf(tls, s, uint64(l), __ccgo_ts+1080, VaList(bp+112, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l { + return s + } + case int32(PF_INET6): + if Xmemcmp(tls, a, __ccgo_ts+1027, uint64(12)) != 0 { + Xsnprintf(tls, bp, uint64(100), __ccgo_ts+1092, VaList(bp+112, int32(256)*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(256)*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))), int32(256)*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), int32(256)*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))), int32(256)*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), int32(256)*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))), int32(256)*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(256)*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15))))) + } else { + Xsnprintf(tls, bp, uint64(100), __ccgo_ts+1116, VaList(bp+112, int32(256)*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(256)*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))), int32(256)*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), int32(256)*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))), int32(256)*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), int32(256)*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))), int32(*(*uint8)(unsafe.Pointer(a + 12))), int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(*(*uint8)(unsafe.Pointer(a + 14))), int32(*(*uint8)(unsafe.Pointer(a + 15))))) + } + /* Replace longest /(^0|:)[:0]{2,}/ with "::" */ + v2 = Int32FromInt32(0) + best = v2 + i = v2 + max = Int32FromInt32(2) + for { + if !((*(*[100]uint8)(unsafe.Pointer(bp)))[i] != 0) { + break + } + if i != 0 && int32((*(*[100]uint8)(unsafe.Pointer(bp)))[i]) != int32(':') { + goto _1 + } + j = int32(Xstrspn(tls, bp+uintptr(i), __ccgo_ts+1146)) + if j > max { + best = i + max = j + } + goto _1 + _1: + ; + i++ + } + if max > int32(3) { + v3 = Uint8FromUint8(':') + (*(*[100]uint8)(unsafe.Pointer(bp)))[best+int32(1)] = v3 + (*(*[100]uint8)(unsafe.Pointer(bp)))[best] = v3 + Xmemmove(tls, bp+uintptr(best)+uintptr(2), bp+uintptr(best)+uintptr(max), uint64(i-best-max+int32(1))) + } + if Xstrlen(tls, bp) < uint64(l) { + Xstrcpy(tls, s, bp) + return s + } + default: + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EAFNOSUPPORT) + return uintptr(0) + } + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOSPC) + return uintptr(0) +} + +func _hexval(tls *TLS, c uint32) (r int32) { + if c-uint32('0') < uint32(10) { + return int32(c - uint32('0')) + } + c |= uint32(32) + if c-uint32('a') < uint32(6) { + return int32(c - uint32('a') + uint32(10)) + } + return -int32(1) +} + +func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v af=%v s=%v a0=%v, (%v:)", tls, af, s, a0, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var a, v14, v15, v4, v7 uintptr + var brk, d, i, j, need_v4, v, v10, v3, v9 int32 + var v11, v5 bool + var _ /* ip at bp+0 */ [8]Tuint16_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, brk, d, i, j, need_v4, v, v10, v11, v14, v15, v3, v4, v5, v7, v9 + a = a0 + brk = -int32(1) + need_v4 = 0 + if af == int32(PF_INET) { + i = 0 + for { + if !(i < int32(4)) { + break + } + v3 = Int32FromInt32(0) + j = v3 + v = v3 + for { + if !(j < int32(3) && BoolInt32(uint32(*(*uint8)(unsafe.Pointer(s + uintptr(j))))-uint32('0') < uint32(10)) != 0) { + break + } + v = int32(10)*v + int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) - int32('0') + goto _2 + _2: + ; + j++ + } + if j == 0 || j > int32(1) && int32(*(*uint8)(unsafe.Pointer(s))) == int32('0') || v > int32(255) { + return 0 + } + *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v) + if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) == 0 && i == int32(3) { + return int32(1) + } + if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != int32('.') { + return 0 + } + s += uintptr(j + int32(1)) + goto _1 + _1: + ; + i++ + } + return 0 + } else { + if af != int32(PF_INET6) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EAFNOSUPPORT) + return -int32(1) + } + } + if v5 = int32(*(*uint8)(unsafe.Pointer(s))) == int32(':'); v5 { + s++ + v4 = s + } + if v5 && int32(*(*uint8)(unsafe.Pointer(v4))) != int32(':') { + return 0 + } + i = 0 + for { + if int32(*(*uint8)(unsafe.Pointer(s))) == int32(':') && brk < 0 { + brk = i + (*(*[8]Tuint16_t)(unsafe.Pointer(bp)))[i&int32(7)] = uint16(0) + s++ + v7 = s + if !(*(*uint8)(unsafe.Pointer(v7)) != 0) { + break + } + if i == int32(7) { + return 0 + } + goto _6 + } + v9 = Int32FromInt32(0) + j = v9 + v = v9 + for { + if v11 = j < int32(4); v11 { + v10 = _hexval(tls, uint32(*(*uint8)(unsafe.Pointer(s + uintptr(j))))) + d = v10 + } + if !(v11 && v10 >= 0) { + break + } + v = int32(16)*v + d + goto _8 + _8: + ; + j++ + } + if j == 0 { + return 0 + } + (*(*[8]Tuint16_t)(unsafe.Pointer(bp)))[i&int32(7)] = uint16(v) + if !(*(*uint8)(unsafe.Pointer(s + uintptr(j))) != 0) && (brk >= 0 || i == int32(7)) { + break + } + if i == int32(7) { + return 0 + } + if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != int32(':') { + if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != int32('.') || i < int32(6) && brk < 0 { + return 0 + } + need_v4 = int32(1) + i++ + (*(*[8]Tuint16_t)(unsafe.Pointer(bp)))[i&int32(7)] = uint16(0) + break + } + s += uintptr(j + int32(1)) + goto _6 + _6: + ; + i++ + } + if brk >= 0 { + Xmemmove(tls, bp+uintptr(brk)*2+uintptr(7)*2-uintptr(i)*2, bp+uintptr(brk)*2, uint64(int32(2)*(i+int32(1)-brk))) + j = 0 + for { + if !(j < int32(7)-i) { + break + } + (*(*[8]Tuint16_t)(unsafe.Pointer(bp)))[brk+j] = uint16(0) + goto _12 + _12: + ; + j++ + } + } + j = 0 + for { + if !(j < int32(8)) { + break + } + v14 = a + a++ + *(*uint8)(unsafe.Pointer(v14)) = uint8(int32((*(*[8]Tuint16_t)(unsafe.Pointer(bp)))[j]) >> int32(8)) + v15 = a + a++ + *(*uint8)(unsafe.Pointer(v15)) = uint8((*(*[8]Tuint16_t)(unsafe.Pointer(bp)))[j]) + goto _13 + _13: + ; + j++ + } + if need_v4 != 0 && Xinet_pton(tls, int32(PF_INET), s, a-uintptr(4)) <= 0 { + return 0 + } + return int32(1) +} + +func Xlisten(tls *TLS, fd int32, backlog int32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v fd=%v backlog=%v, (%v:)", tls, fd, backlog, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, v8 int64 + var v1 int32 + var v2, v3, v4, v5, v6, v7 Tsyscall_arg_t + _, _, _, _, _, _, _, _, _ = r, v1, v2, v3, v4, v5, v6, v7, v8 + v1 = int32(SYS_listen) + _ = int32(__SC_listen) + v2 = int64(fd) + v3 = int64(backlog) + v4 = int64(Int32FromInt32(0)) + v5 = int64(Int32FromInt32(0)) + v6 = int64(Int32FromInt32(0)) + v7 = int64(Int32FromInt32(0)) + if 0 != 0 { + r = ___syscall_cp(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } else { + r = X__syscall6(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v8 = r + goto _9 + } + v8 = r + goto _9 +_9: + return int32(X__syscall_ret(tls, uint64(v8))) +} + +func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) (r int32) { + if __ccgo_strace { + trc("tls=%v buf=%v name=%v family=%v, (%v:)", tls, buf, name, family, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(96) + defer tls.Free(96) + var p, v1 uintptr + var scopeid uint64 + var _ /* a4 at bp+0 */ Tin_addr + var _ /* a6 at bp+4 */ Tin6_addr + var _ /* tmp at bp+20 */ [64]uint8 + var _ /* z at bp+88 */ uintptr + _, _, _ = p, scopeid, v1 + if X__inet_aton(tls, name, bp) > 0 { + if family == int32(PF_INET6) { /* wrong family */ + return -int32(5) + } + Xmemcpy(tls, buf+8, bp, uint64(4)) + (*(*Taddress)(unsafe.Pointer(buf))).Ffamily = int32(PF_INET) + (*(*Taddress)(unsafe.Pointer(buf))).Fscopeid = uint32(0) + return int32(1) + } + p = Xstrchr(tls, name, int32('%')) + scopeid = uint64(0) + if p != 0 && int64(p)-int64(name) < int64(64) { + Xmemcpy(tls, bp+20, name, uint64(int64(p)-int64(name))) + (*(*[64]uint8)(unsafe.Pointer(bp + 20)))[int64(p)-int64(name)] = uint8(0) + name = bp + 20 + } + if Xinet_pton(tls, int32(PF_INET6), name, bp+4) <= 0 { + return 0 + } + if family == int32(PF_INET) { /* wrong family */ + return -int32(5) + } + Xmemcpy(tls, buf+8, bp+4, uint64(16)) + (*(*Taddress)(unsafe.Pointer(buf))).Ffamily = int32(PF_INET6) + if p != 0 { + p++ + v1 = p + if BoolInt32(uint32(*(*uint8)(unsafe.Pointer(v1)))-uint32('0') < uint32(10)) != 0 { + scopeid = Xstrtoull(tls, p, bp+88, int32(10)) + } else { + *(*uintptr)(unsafe.Pointer(bp + 88)) = p - uintptr(1) + } + if *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)))) != 0 { + if !(int32(*(*Tuint8_t)(unsafe.Pointer(bp + 4))) == int32(0xfe) && int32(*(*Tuint8_t)(unsafe.Pointer(bp + 4 + 1)))&int32(0xc0) == int32(0x80)) && !(int32(*(*Tuint8_t)(unsafe.Pointer(bp + 4))) == int32(0xff) && int32(*(*Tuint8_t)(unsafe.Pointer(bp + 4 + 1)))&int32(0xf) == int32(0x2)) { + return -int32(2) + } + scopeid = uint64(Xif_nametoindex(tls, p)) + if !(scopeid != 0) { + return -int32(2) + } + } + if scopeid > uint64(0xffffffff) { + return -int32(2) + } + } + (*(*Taddress)(unsafe.Pointer(buf))).Fscopeid = uint32(scopeid) + return int32(1) +} + +const ABUF_SIZE = 4800 +const DAS_MATCHINGLABEL = 268435456 +const DAS_MATCHINGSCOPE = 536870912 +const DAS_ORDER_SHIFT = 0 +const DAS_PREC_SHIFT = 20 +const DAS_PREFIX_SHIFT = 8 +const DAS_SCOPE_SHIFT = 16 +const DAS_USABLE = 1073741824 +const RR_A = 1 +const RR_AAAA = 28 +const RR_CNAME = 5 + +func _is_valid_hostname(tls *TLS, host uintptr) (r int32) { + var s uintptr + _ = s + if Xstrnlen(tls, host, uint64(255))-uint64(1) >= uint64(254) || Xmbstowcs(tls, uintptr(0), host, uint64(0)) == uint64(-Int32FromInt32(1)) { + return 0 + } + s = host + for { + if !(int32(*(*uint8)(unsafe.Pointer(s))) >= int32(0x80) || int32(*(*uint8)(unsafe.Pointer(s))) == int32('.') || int32(*(*uint8)(unsafe.Pointer(s))) == int32('-') || Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0) { + break + } + goto _1 + _1: + ; + s++ + } + return BoolInt32(!(*(*uint8)(unsafe.Pointer(s)) != 0)) +} + +func _name_from_null(tls *TLS, buf uintptr, name uintptr, family int32, flags int32) (r int32) { + var cnt, v1, v2, v3, v4 int32 + _, _, _, _, _ = cnt, v1, v2, v3, v4 + cnt = 0 + if name != 0 { + return 0 + } + if flags&int32(AI_PASSIVE) != 0 { + if family != int32(PF_INET6) { + v1 = cnt + cnt++ + *(*Taddress)(unsafe.Pointer(buf + uintptr(v1)*28)) = Taddress{ + Ffamily: int32(PF_INET), + } + } + if family != int32(PF_INET) { + v2 = cnt + cnt++ + *(*Taddress)(unsafe.Pointer(buf + uintptr(v2)*28)) = Taddress{ + Ffamily: int32(PF_INET6), + } + } + } else { + if family != int32(PF_INET6) { + v3 = cnt + cnt++ + *(*Taddress)(unsafe.Pointer(buf + uintptr(v3)*28)) = Taddress{ + Ffamily: int32(PF_INET), + Faddr: [16]Tuint8_t{ + 0: uint8(127), + 3: uint8(1), + }, + } + } + if family != int32(PF_INET) { + v4 = cnt + cnt++ + *(*Taddress)(unsafe.Pointer(buf + uintptr(v4)*28)) = Taddress{ + Ffamily: int32(PF_INET6), + Faddr: [16]Tuint8_t{ + 15: uint8(1), + }, + } + } + } + return cnt +} + +func _name_from_numeric(tls *TLS, buf uintptr, name uintptr, family int32) (r int32) { + return X__lookup_ipliteral(tls, buf, name, family) +} + +func _name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) (r int32) { + bp := tls.Alloc(1776) + defer tls.Free(1776) + var badfam, cnt, have_canon, v14, v15, v20, v21, v25, v26, v29, v5, v6, v8, v9 int32 + var f, p, z, v1, v18, v2, v4 uintptr + var l Tsize_t + var v11, v12, v17, v23, v28 bool + var _ /* _buf at bp+512 */ [1032]uint8 + var _ /* _f at bp+1544 */ TFILE + var _ /* line at bp+0 */ [512]uint8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = badfam, cnt, f, have_canon, l, p, z, v1, v11, v12, v14, v15, v17, v18, v2, v20, v21, v23, v25, v26, v28, v29, v4, v5, v6, v8, v9 + l = Xstrlen(tls, name) + cnt = 0 + badfam = 0 + have_canon = 0 + f = X__fopen_rb_ca(tls, __ccgo_ts+1016, bp+1544, bp+512, uint64(1032)) + if !(f != 0) { + switch *(*int32)(unsafe.Pointer(X__errno_location(tls))) { + case int32(ENOENT): + fallthrough + case int32(ENOTDIR): + fallthrough + case int32(EACCES): + return 0 + default: + return -int32(11) + } + } + for Xfgets(tls, bp, int32(512), f) != 0 && cnt < int32(MAXADDRS) { + v1 = Xstrchr(tls, bp, int32('#')) + p = v1 + if v1 != 0 { + v2 = p + p++ + *(*uint8)(unsafe.Pointer(v2)) = uint8('\n') + *(*uint8)(unsafe.Pointer(p)) = Uint8FromInt32(0) + } + p = bp + uintptr(1) + for { + v4 = Xstrstr(tls, p, name) + p = v4 + if v12 = v4 != 0; v12 { + v5 = int32(*(*uint8)(unsafe.Pointer(p + uintptr(-Int32FromInt32(1))))) + v6 = BoolInt32(v5 == int32(' ') || uint32(v5)-uint32('\t') < uint32(5)) + goto _7 + _7: + ; + if v11 = !(v6 != 0); !v11 { + v8 = int32(*(*uint8)(unsafe.Pointer(p + uintptr(l)))) + v9 = BoolInt32(v8 == int32(' ') || uint32(v8)-uint32('\t') < uint32(5)) + goto _10 + _10: + } + } + if !(v12 && (v11 || !(v9 != 0))) { + break + } + goto _3 + _3: + ; + p++ + } + if !(p != 0) { + continue + } + /* Isolate IP address to parse */ + p = bp + for { + if v17 = *(*uint8)(unsafe.Pointer(p)) != 0; v17 { + v14 = int32(*(*uint8)(unsafe.Pointer(p))) + v15 = BoolInt32(v14 == int32(' ') || uint32(v14)-uint32('\t') < uint32(5)) + goto _16 + _16: + } + if !(v17 && !(v15 != 0)) { + break + } + goto _13 + _13: + ; + p++ + } + v18 = p + p++ + *(*uint8)(unsafe.Pointer(v18)) = uint8(0) + switch _name_from_numeric(tls, buf+uintptr(cnt)*28, bp, family) { + case int32(1): + cnt++ + case 0: + continue + default: + badfam = -int32(5) + break + } + if have_canon != 0 { + continue + } + /* Extract first name as canonical name */ + for { + if v23 = *(*uint8)(unsafe.Pointer(p)) != 0; v23 { + v20 = int32(*(*uint8)(unsafe.Pointer(p))) + v21 = BoolInt32(v20 == int32(' ') || uint32(v20)-uint32('\t') < uint32(5)) + goto _22 + _22: + } + if !(v23 && v21 != 0) { + break + } + goto _19 + _19: + ; + p++ + } + z = p + for { + if v28 = *(*uint8)(unsafe.Pointer(z)) != 0; v28 { + v25 = int32(*(*uint8)(unsafe.Pointer(z))) + v26 = BoolInt32(v25 == int32(' ') || uint32(v25)-uint32('\t') < uint32(5)) + goto _27 + _27: + } + if !(v28 && !(v26 != 0)) { + break + } + goto _24 + _24: + ; + z++ + } + *(*uint8)(unsafe.Pointer(z)) = uint8(0) + if _is_valid_hostname(tls, p) != 0 { + have_canon = int32(1) + Xmemcpy(tls, canon, p, uint64(int64(z)-int64(p)+int64(1))) + } + } + X__fclose_ca(tls, f) + if cnt != 0 { + v29 = cnt + } else { + v29 = badfam + } + return v29 +} + +type Tdpc_ctx = struct { + Faddrs uintptr + Fcanon uintptr + Fcnt int32 + Frrtype int32 +} + +func _dns_parse_callback1(tls *TLS, c uintptr, rr int32, data uintptr, len1 int32, packet uintptr, plen int32) (r int32) { + bp := tls.Alloc(256) + defer tls.Free(256) + var ctx, v2 uintptr + var family, v1 int32 + var _ /* tmp at bp+0 */ [256]uint8 + _, _, _, _ = ctx, family, v1, v2 + ctx = c + if rr == int32(RR_CNAME) { + if X__dn_expand(tls, packet, packet+uintptr(plen), data, bp, int32(256)) > 0 && _is_valid_hostname(tls, bp) != 0 { + Xstrcpy(tls, (*Tdpc_ctx)(unsafe.Pointer(ctx)).Fcanon, bp) + } + return 0 + } + if (*Tdpc_ctx)(unsafe.Pointer(ctx)).Fcnt >= int32(MAXADDRS) { + return 0 + } + if rr != (*Tdpc_ctx)(unsafe.Pointer(ctx)).Frrtype { + return 0 + } + switch rr { + case int32(RR_A): + if len1 != int32(4) { + return -int32(1) + } + family = int32(PF_INET) + case int32(RR_AAAA): + if len1 != int32(16) { + return -int32(1) + } + family = int32(PF_INET6) + break + } + (*(*Taddress)(unsafe.Pointer((*Tdpc_ctx)(unsafe.Pointer(ctx)).Faddrs + uintptr((*Tdpc_ctx)(unsafe.Pointer(ctx)).Fcnt)*28))).Ffamily = family + (*(*Taddress)(unsafe.Pointer((*Tdpc_ctx)(unsafe.Pointer(ctx)).Faddrs + uintptr((*Tdpc_ctx)(unsafe.Pointer(ctx)).Fcnt)*28))).Fscopeid = uint32(0) + v2 = ctx + 16 + v1 = *(*int32)(unsafe.Pointer(v2)) + *(*int32)(unsafe.Pointer(v2))++ + Xmemcpy(tls, (*Tdpc_ctx)(unsafe.Pointer(ctx)).Faddrs+uintptr(v1)*28+8, data, uint64(len1)) + return 0 +} + +func _name_from_dns(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, conf uintptr) (r int32) { + bp := tls.Alloc(10240) + defer tls.Free(10240) + var i, nq int32 + var qtypes [2]int32 + var _ /* abuf at bp+560 */ [2][4800]uint8 + var _ /* alens at bp+10200 */ [2]int32 + var _ /* ap at bp+10176 */ [2]uintptr + var _ /* ctx at bp+10208 */ Tdpc_ctx + var _ /* qbuf at bp+0 */ [2][280]uint8 + var _ /* qlens at bp+10192 */ [2]int32 + var _ /* qp at bp+10160 */ [2]uintptr + _, _, _ = i, nq, qtypes + *(*[2]uintptr)(unsafe.Pointer(bp + 10160)) = [2]uintptr{ + 0: bp, + 1: bp + 1*280, + } + *(*[2]uintptr)(unsafe.Pointer(bp + 10176)) = [2]uintptr{ + 0: bp + 560, + 1: bp + 560 + 1*4800, + } + nq = 0 + *(*Tdpc_ctx)(unsafe.Pointer(bp + 10208)) = Tdpc_ctx{ + Faddrs: buf, + Fcanon: canon, + } + i = 0 + for { + if !(i < int32(2)) { + break + } + if family != _afrr[i].Faf { + (*(*[2]int32)(unsafe.Pointer(bp + 10192)))[nq] = X__res_mkquery(tls, 0, name, int32(1), _afrr[i].Frr, uintptr(0), 0, uintptr(0), bp+uintptr(nq)*280, int32(280)) + if (*(*[2]int32)(unsafe.Pointer(bp + 10192)))[nq] == -int32(1) { + return 0 + } + qtypes[nq] = _afrr[i].Frr + *(*uint8)(unsafe.Pointer(bp + uintptr(nq)*280 + 3)) = uint8(0) /* don't need AD flag */ + /* Ensure query IDs are distinct. */ + if nq != 0 && int32(*(*uint8)(unsafe.Pointer(bp + uintptr(nq)*280))) == int32(*(*uint8)(unsafe.Pointer(bp))) { + *(*uint8)(unsafe.Pointer(bp + uintptr(nq)*280))++ + } + nq++ + } + goto _1 + _1: + ; + i++ + } + if X__res_msend_rc(tls, nq, bp+10160, bp+10192, bp+10176, bp+10200, int32(4800), conf) < 0 { + return -int32(11) + } + i = 0 + for { + if !(i < nq) { + break + } + if (*(*[2]int32)(unsafe.Pointer(bp + 10200)))[i] < int32(4) || int32(*(*uint8)(unsafe.Pointer(bp + 560 + uintptr(i)*4800 + 3)))&int32(15) == int32(2) { + return -int32(3) + } + if int32(*(*uint8)(unsafe.Pointer(bp + 560 + uintptr(i)*4800 + 3)))&int32(15) == int32(3) { + return 0 + } + if int32(*(*uint8)(unsafe.Pointer(bp + 560 + uintptr(i)*4800 + 3)))&int32(15) != 0 { + return -int32(4) + } + goto _2 + _2: + ; + i++ + } + i = nq - int32(1) + for { + if !(i >= 0) { + break + } + (*(*Tdpc_ctx)(unsafe.Pointer(bp + 10208))).Frrtype = qtypes[i] + if uint64((*(*[2]int32)(unsafe.Pointer(bp + 10200)))[i]) > uint64(4800) { + (*(*[2]int32)(unsafe.Pointer(bp + 10200)))[i] = int32(4800) + } + X__dns_parse(tls, bp+560+uintptr(i)*4800, (*(*[2]int32)(unsafe.Pointer(bp + 10200)))[i], __ccgo_fp(_dns_parse_callback1), bp+10208) + goto _3 + _3: + ; + i-- + } + if (*(*Tdpc_ctx)(unsafe.Pointer(bp + 10208))).Fcnt != 0 { + return (*(*Tdpc_ctx)(unsafe.Pointer(bp + 10208))).Fcnt + } + return -int32(5) +} + +var _afrr = [2]struct { + Faf int32 + Frr int32 +}{ + 0: { + Faf: int32(PF_INET6), + Frr: int32(RR_A), + }, + 1: { + Faf: int32(PF_INET), + Frr: int32(RR_AAAA), + }, +} + +func _name_from_dns_search(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) (r int32) { + bp := tls.Alloc(368) + defer tls.Free(368) + var cnt, v10, v5, v6, v9 int32 + var dots, l, v2 Tsize_t + var p, z uintptr + var v12 bool + var _ /* conf at bp+256 */ Tresolvconf + var _ /* search at bp+0 */ [256]uint8 + _, _, _, _, _, _, _, _, _, _, _ = cnt, dots, l, p, z, v10, v12, v2, v5, v6, v9 + if X__get_resolv_conf(tls, bp+256, bp, uint64(256)) < 0 { + return -int32(1) + } + /* Count dots, suppress search when >=ndots or name ends in + * a dot, which is an explicit request for global scope. */ + v2 = Uint64FromInt32(0) + l = v2 + dots = v2 + for { + if !(*(*uint8)(unsafe.Pointer(name + uintptr(l))) != 0) { + break + } + if int32(*(*uint8)(unsafe.Pointer(name + uintptr(l)))) == int32('.') { + dots++ + } + goto _1 + _1: + ; + l++ + } + if dots >= uint64((*(*Tresolvconf)(unsafe.Pointer(bp + 256))).Fndots) || int32(*(*uint8)(unsafe.Pointer(name + uintptr(l-uint64(1))))) == int32('.') { + *(*uint8)(unsafe.Pointer(bp)) = uint8(0) + } + /* Strip final dot for canon, fail if multiple trailing dots. */ + if int32(*(*uint8)(unsafe.Pointer(name + uintptr(l-uint64(1))))) == int32('.') { + l-- + } + if !(l != 0) || int32(*(*uint8)(unsafe.Pointer(name + uintptr(l-uint64(1))))) == int32('.') { + return -int32(2) + } + /* This can never happen; the caller already checked length. */ + if l >= uint64(256) { + return -int32(2) + } + /* Name with search domain appended is setup in canon[]. This both + * provides the desired default canonical name (if the requested + * name is not a CNAME record) and serves as a buffer for passing + * the full requested name to name_from_dns. */ + Xmemcpy(tls, canon, name, l) + *(*uint8)(unsafe.Pointer(canon + uintptr(l))) = uint8('.') + p = bp + for { + if !(*(*uint8)(unsafe.Pointer(p)) != 0) { + break + } + for { + v5 = int32(*(*uint8)(unsafe.Pointer(p))) + v6 = BoolInt32(v5 == int32(' ') || uint32(v5)-uint32('\t') < uint32(5)) + goto _7 + _7: + if !(v6 != 0) { + break + } + goto _4 + _4: + ; + p++ + } + z = p + for { + if v12 = *(*uint8)(unsafe.Pointer(z)) != 0; v12 { + v9 = int32(*(*uint8)(unsafe.Pointer(z))) + v10 = BoolInt32(v9 == int32(' ') || uint32(v9)-uint32('\t') < uint32(5)) + goto _11 + _11: + } + if !(v12 && !(v10 != 0)) { + break + } + goto _8 + _8: + ; + z++ + } + if z == p { + break + } + if uint64(int64(z)-int64(p)) < uint64(256)-l-uint64(1) { + Xmemcpy(tls, canon+uintptr(l)+uintptr(1), p, uint64(int64(z)-int64(p))) + *(*uint8)(unsafe.Pointer(canon + uintptr(uint64(int64(z)-int64(p)+int64(1))+l))) = uint8(0) + cnt = _name_from_dns(tls, buf, canon, canon, family, bp+256) + if cnt != 0 { + return cnt + } + } + goto _3 + _3: + ; + p = z + } + *(*uint8)(unsafe.Pointer(canon + uintptr(l))) = uint8(0) + return _name_from_dns(tls, buf, canon, name, family, bp+256) +} + +type Tpolicy = struct { + Faddr [16]uint8 + Flen1 uint8 + Fmask uint8 + Fprec uint8 + Flabel uint8 +} + +var _defpolicy = [6]Tpolicy{ + 0: { + Faddr: [16]uint8{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + Flen1: uint8(15), + Fmask: uint8(0xff), + Fprec: uint8(50), + }, + 1: { + Faddr: [16]uint8{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255}, + Flen1: uint8(11), + Fmask: uint8(0xff), + Fprec: uint8(35), + Flabel: uint8(4), + }, + 2: { + Faddr: [16]uint8{' ', 2}, + Flen1: uint8(1), + Fmask: uint8(0xff), + Fprec: uint8(30), + Flabel: uint8(2), + }, + 3: { + Faddr: [16]uint8{' ', 1}, + Flen1: uint8(3), + Fmask: uint8(0xff), + Fprec: uint8(5), + Flabel: uint8(5), + }, + 4: { + Faddr: [16]uint8{252}, + Fmask: uint8(0xfe), + Fprec: uint8(3), + Flabel: uint8(13), + }, + 5: { + Faddr: [16]uint8{}, + Fprec: uint8(40), + Flabel: uint8(1), + }, +} + +func _policyof(tls *TLS, a uintptr) (r uintptr) { + var i int32 + _ = i + i = 0 + for { + if Xmemcmp(tls, a, uintptr(unsafe.Pointer(&_defpolicy))+uintptr(i)*20, uint64(_defpolicy[i].Flen1)) != 0 { + goto _1 + } + if int32(*(*Tuint8_t)(unsafe.Pointer(a + uintptr(_defpolicy[i].Flen1))))&int32(_defpolicy[i].Fmask) != int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_defpolicy)) + uintptr(i)*20 + uintptr(_defpolicy[i].Flen1)))) { + goto _1 + } + return uintptr(unsafe.Pointer(&_defpolicy)) + uintptr(i)*20 + goto _1 + _1: + ; + i++ + } + return r +} + +func _labelof(tls *TLS, a uintptr) (r int32) { + return int32((*Tpolicy)(unsafe.Pointer(_policyof(tls, a))).Flabel) +} + +func _scopeof(tls *TLS, a uintptr) (r int32) { + if int32(*(*Tuint8_t)(unsafe.Pointer(a))) == int32(0xff) { + return int32(*(*Tuint8_t)(unsafe.Pointer(a + 1))) & int32(15) + } + if int32(*(*Tuint8_t)(unsafe.Pointer(a))) == int32(0xfe) && int32(*(*Tuint8_t)(unsafe.Pointer(a + 1)))&int32(0xc0) == int32(0x80) { + return int32(2) + } + if *(*Tuint32_t)(unsafe.Pointer(a)) == uint32(0) && *(*Tuint32_t)(unsafe.Pointer(a + 1*4)) == uint32(0) && *(*Tuint32_t)(unsafe.Pointer(a + 2*4)) == uint32(0) && int32(*(*Tuint8_t)(unsafe.Pointer(a + 12))) == 0 && int32(*(*Tuint8_t)(unsafe.Pointer(a + 13))) == 0 && int32(*(*Tuint8_t)(unsafe.Pointer(a + 14))) == 0 && int32(*(*Tuint8_t)(unsafe.Pointer(a + 15))) == int32(1) { + return int32(2) + } + if int32(*(*Tuint8_t)(unsafe.Pointer(a))) == int32(0xfe) && int32(*(*Tuint8_t)(unsafe.Pointer(a + 1)))&int32(0xc0) == int32(0xc0) { + return int32(5) + } + return int32(14) +} + +func _prefixmatch(tls *TLS, s uintptr, d uintptr) (r int32) { + var i uint32 + _ = i + i = uint32(0) + for { + if !(i < uint32(128) && !((int32(*(*Tuint8_t)(unsafe.Pointer(s + uintptr(i/uint32(8)))))^int32(*(*Tuint8_t)(unsafe.Pointer(d + uintptr(i/uint32(8))))))&(Int32FromInt32(128)>>(i%Uint32FromInt32(8))) != 0)) { + break + } + goto _1 + _1: + ; + i++ + } + return int32(i) +} + +func _addrcmp(tls *TLS, _a uintptr, _b uintptr) (r int32) { + var a, b uintptr + _, _ = a, b + a = _a + b = _b + return (*Taddress)(unsafe.Pointer(b)).Fsortkey - (*Taddress)(unsafe.Pointer(a)).Fsortkey +} + +func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v buf=%v canon=%v name=%v family=%v flags=%v, (%v:)", tls, buf, canon, name, family, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(96) + defer tls.Free(96) + var cnt, dlabel, dprec, dscope, family1, fd, i, j, key, prefixlen, v1, v4, v5 int32 + var da, dpolicy, sa uintptr + var dalen Tsocklen_t + var l Tsize_t + var _ /* cs at bp+0 */ int32 + var _ /* da4 at bp+76 */ Tsockaddr_in + var _ /* da6 at bp+32 */ Tsockaddr_in6 + var _ /* sa4 at bp+60 */ Tsockaddr_in + var _ /* sa6 at bp+4 */ Tsockaddr_in6 + var _ /* salen at bp+92 */ Tsocklen_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, da, dalen, dlabel, dpolicy, dprec, dscope, family1, fd, i, j, key, l, prefixlen, sa, v1, v4, v5 + cnt = 0 + *(*uint8)(unsafe.Pointer(canon)) = uint8(0) + if name != 0 { + /* reject empty name and check len so it fits into temp bufs */ + l = Xstrnlen(tls, name, uint64(255)) + if l-uint64(1) >= uint64(254) { + return -int32(2) + } + Xmemcpy(tls, canon, name, l+uint64(1)) + } + /* Procedurally, a request for v6 addresses with the v4-mapped + * flag set is like a request for unspecified family, followed + * by filtering of the results. */ + if flags&int32(AI_V4MAPPED) != 0 { + if family == int32(PF_INET6) { + family = PF_UNSPEC + } else { + flags -= int32(AI_V4MAPPED) + } + } + /* Try each backend until there's at least one result. */ + cnt = _name_from_null(tls, buf, name, family, flags) + if !(cnt != 0) { + cnt = _name_from_numeric(tls, buf, name, family) + } + if !(cnt != 0) && !(flags&Int32FromInt32(AI_NUMERICHOST) != 0) { + cnt = _name_from_hosts(tls, buf, canon, name, family) + if !(cnt != 0) { + cnt = _name_from_dns_search(tls, buf, canon, name, family) + } + } + if cnt <= 0 { + if cnt != 0 { + v1 = cnt + } else { + v1 = -int32(2) + } + return v1 + } + /* Filter/transform results for v4-mapped lookup, if requested. */ + if flags&int32(AI_V4MAPPED) != 0 { + if !(flags&Int32FromInt32(AI_ALL) != 0) { + /* If any v6 results exist, remove v4 results. */ + i = 0 + for { + if !(i < cnt && (*(*Taddress)(unsafe.Pointer(buf + uintptr(i)*28))).Ffamily != int32(PF_INET6)) { + break + } + goto _2 + _2: + ; + i++ + } + if i < cnt { + j = 0 + for { + if !(i < cnt) { + break + } + if (*(*Taddress)(unsafe.Pointer(buf + uintptr(i)*28))).Ffamily == int32(PF_INET6) { + v4 = j + j++ + *(*Taddress)(unsafe.Pointer(buf + uintptr(v4)*28)) = *(*Taddress)(unsafe.Pointer(buf + uintptr(i)*28)) + } + goto _3 + _3: + ; + i++ + } + v5 = j + i = v5 + cnt = v5 + } + } + /* Translate any remaining v4 results to v6 */ + i = 0 + for { + if !(i < cnt) { + break + } + if (*(*Taddress)(unsafe.Pointer(buf + uintptr(i)*28))).Ffamily != int32(PF_INET) { + goto _6 + } + Xmemcpy(tls, buf+uintptr(i)*28+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4)) + Xmemcpy(tls, buf+uintptr(i)*28+8, __ccgo_ts+1027, uint64(12)) + (*(*Taddress)(unsafe.Pointer(buf + uintptr(i)*28))).Ffamily = int32(PF_INET6) + goto _6 + _6: + ; + i++ + } + } + /* No further processing is needed if there are fewer than 2 + * results or if there are only IPv4 results. */ + if cnt < int32(2) || family == int32(PF_INET) { + return cnt + } + i = 0 + for { + if !(i < cnt) { + break + } + if (*(*Taddress)(unsafe.Pointer(buf + uintptr(i)*28))).Ffamily != int32(PF_INET) { + break + } + goto _7 + _7: + ; + i++ + } + if i == cnt { + return cnt + } + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp) + /* The following implements a subset of RFC 3484/6724 destination + * address selection by generating a single 31-bit sort key for + * each address. Rules 3, 4, and 7 are omitted for having + * excessive runtime and code size cost and dubious benefit. + * So far the label/precedence table cannot be customized. */ + i = 0 + for { + if !(i < cnt) { + break + } + family1 = (*(*Taddress)(unsafe.Pointer(buf + uintptr(i)*28))).Ffamily + key = 0 + *(*Tsockaddr_in6)(unsafe.Pointer(bp + 4)) = Tsockaddr_in6{} + *(*Tsockaddr_in6)(unsafe.Pointer(bp + 32)) = Tsockaddr_in6{ + Fsin6_family: uint16(PF_INET6), + Fsin6_port: uint16(65535), + Fsin6_scope_id: (*(*Taddress)(unsafe.Pointer(buf + uintptr(i)*28))).Fscopeid, + } + *(*Tsockaddr_in)(unsafe.Pointer(bp + 60)) = Tsockaddr_in{} + *(*Tsockaddr_in)(unsafe.Pointer(bp + 76)) = Tsockaddr_in{ + Fsin_family: uint16(PF_INET), + Fsin_port: uint16(65535), + } + if family1 == int32(PF_INET6) { + Xmemcpy(tls, bp+32+8, buf+uintptr(i)*28+8, uint64(16)) + da = bp + 32 + dalen = uint32(28) + sa = bp + 4 + *(*Tsocklen_t)(unsafe.Pointer(bp + 92)) = uint32(28) + } else { + Xmemcpy(tls, bp+4+8, __ccgo_ts+1027, uint64(12)) + Xmemcpy(tls, bp+32+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4)) + Xmemcpy(tls, bp+32+8, __ccgo_ts+1027, uint64(12)) + Xmemcpy(tls, bp+32+8+uintptr(12), buf+uintptr(i)*28+8, uint64(4)) + Xmemcpy(tls, bp+76+4, buf+uintptr(i)*28+8, uint64(4)) + da = bp + 76 + dalen = uint32(16) + sa = bp + 60 + *(*Tsocklen_t)(unsafe.Pointer(bp + 92)) = uint32(16) + } + dpolicy = _policyof(tls, bp+32+8) + dscope = _scopeof(tls, bp+32+8) + dlabel = int32((*Tpolicy)(unsafe.Pointer(dpolicy)).Flabel) + dprec = int32((*Tpolicy)(unsafe.Pointer(dpolicy)).Fprec) + prefixlen = 0 + fd = Xsocket(tls, family1, Int32FromInt32(SOCK_DGRAM)|Int32FromInt32(SOCK_CLOEXEC), int32(IPPROTO_UDP)) + if fd >= 0 { + if !(Xconnect(tls, fd, da, dalen) != 0) { + key |= int32(DAS_USABLE) + if !(Xgetsockname(tls, fd, sa, bp+92) != 0) { + if family1 == int32(PF_INET) { + Xmemcpy(tls, bp+4+8+uintptr(12), bp+60+4, uint64(4)) + } + if dscope == _scopeof(tls, bp+4+8) { + key |= int32(DAS_MATCHINGSCOPE) + } + if dlabel == _labelof(tls, bp+4+8) { + key |= int32(DAS_MATCHINGLABEL) + } + prefixlen = _prefixmatch(tls, bp+4+8, bp+32+8) + } + } + Xclose(tls, fd) + } + key |= dprec << int32(DAS_PREC_SHIFT) + key |= (int32(15) - dscope) << int32(DAS_SCOPE_SHIFT) + key |= prefixlen << int32(DAS_PREFIX_SHIFT) + key |= (int32(MAXADDRS) - i) << DAS_ORDER_SHIFT + (*(*Taddress)(unsafe.Pointer(buf + uintptr(i)*28))).Fsortkey = key + goto _8 + _8: + ; + i++ + } + Xqsort(tls, buf, uint64(cnt), uint64(28), __ccgo_fp(_addrcmp)) + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) + return cnt +} + +func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v buf=%v name=%v proto=%v socktype=%v flags=%v, (%v:)", tls, buf, name, proto, socktype, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(1408) + defer tls.Free(1408) + var cnt, v1, v11, v12, v16, v17, v2, v20, v21, v22, v7, v8 int32 + var f, p, v3, v4, v6 uintptr + var l Tsize_t + var port uint64 + var v10, v14, v19 bool + var _ /* _buf at bp+136 */ [1032]uint8 + var _ /* _f at bp+1168 */ TFILE + var _ /* line at bp+0 */ [128]uint8 + var _ /* z at bp+128 */ uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, f, l, p, port, v1, v10, v11, v12, v14, v16, v17, v19, v2, v20, v21, v22, v3, v4, v6, v7, v8 + cnt = 0 + *(*uintptr)(unsafe.Pointer(bp + 128)) = __ccgo_ts + port = uint64(0) + switch socktype { + case int32(SOCK_STREAM): + switch proto { + case 0: + proto = int32(IPPROTO_TCP) + fallthrough + case int32(IPPROTO_TCP): + default: + return -int32(8) + } + case int32(SOCK_DGRAM): + switch proto { + case 0: + proto = int32(IPPROTO_UDP) + fallthrough + case int32(IPPROTO_UDP): + default: + return -int32(8) + } + fallthrough + case 0: + default: + if name != 0 { + return -int32(8) + } + (*(*Tservice)(unsafe.Pointer(buf))).Fport = uint16(0) + (*(*Tservice)(unsafe.Pointer(buf))).Fproto = uint8(proto) + (*(*Tservice)(unsafe.Pointer(buf))).Fsocktype = uint8(socktype) + return int32(1) + } + if name != 0 { + if !(*(*uint8)(unsafe.Pointer(name)) != 0) { + return -int32(8) + } + port = Xstrtoul(tls, name, bp+128, int32(10)) + } + if !(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 128)))) != 0) { + if port > uint64(65535) { + return -int32(8) + } + if proto != int32(IPPROTO_UDP) { + (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fport = uint16(port) + (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fsocktype = uint8(SOCK_STREAM) + v1 = cnt + cnt++ + (*(*Tservice)(unsafe.Pointer(buf + uintptr(v1)*4))).Fproto = uint8(IPPROTO_TCP) + } + if proto != int32(IPPROTO_TCP) { + (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fport = uint16(port) + (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fsocktype = uint8(SOCK_DGRAM) + v2 = cnt + cnt++ + (*(*Tservice)(unsafe.Pointer(buf + uintptr(v2)*4))).Fproto = uint8(IPPROTO_UDP) + } + return cnt + } + if flags&int32(AI_NUMERICSERV) != 0 { + return -int32(2) + } + l = Xstrlen(tls, name) + f = X__fopen_rb_ca(tls, __ccgo_ts+1040, bp+1168, bp+136, uint64(1032)) + if !(f != 0) { + switch *(*int32)(unsafe.Pointer(X__errno_location(tls))) { + case int32(ENOENT): + fallthrough + case int32(ENOTDIR): + fallthrough + case int32(EACCES): + return -int32(8) + default: + return -int32(11) + } + } + for Xfgets(tls, bp, int32(128), f) != 0 && cnt < int32(MAXSERVS) { + v3 = Xstrchr(tls, bp, int32('#')) + p = v3 + if v3 != 0 { + v4 = p + p++ + *(*uint8)(unsafe.Pointer(v4)) = uint8('\n') + *(*uint8)(unsafe.Pointer(p)) = Uint8FromInt32(0) + } + /* Find service name */ + p = bp + for { + v6 = Xstrstr(tls, p, name) + p = v6 + if !(v6 != 0) { + break + } + if v10 = p > bp; v10 { + v7 = int32(*(*uint8)(unsafe.Pointer(p + uintptr(-Int32FromInt32(1))))) + v8 = BoolInt32(v7 == int32(' ') || uint32(v7)-uint32('\t') < uint32(5)) + goto _9 + _9: + } + if v10 && !(v8 != 0) { + goto _5 + } + if v14 = *(*uint8)(unsafe.Pointer(p + uintptr(l))) != 0; v14 { + v11 = int32(*(*uint8)(unsafe.Pointer(p + uintptr(l)))) + v12 = BoolInt32(v11 == int32(' ') || uint32(v11)-uint32('\t') < uint32(5)) + goto _13 + _13: + } + if v14 && !(v12 != 0) { + goto _5 + } + break + goto _5 + _5: + ; + p++ + } + if !(p != 0) { + continue + } + /* Skip past canonical name at beginning of line */ + p = bp + for { + if v19 = *(*uint8)(unsafe.Pointer(p)) != 0; v19 { + v16 = int32(*(*uint8)(unsafe.Pointer(p))) + v17 = BoolInt32(v16 == int32(' ') || uint32(v16)-uint32('\t') < uint32(5)) + goto _18 + _18: + } + if !(v19 && !(v17 != 0)) { + break + } + goto _15 + _15: + ; + p++ + } + port = Xstrtoul(tls, p, bp+128, int32(10)) + if port > uint64(65535) || *(*uintptr)(unsafe.Pointer(bp + 128)) == p { + continue + } + if !(Xstrncmp(tls, *(*uintptr)(unsafe.Pointer(bp + 128)), __ccgo_ts+1054, uint64(4)) != 0) { + if proto == int32(IPPROTO_TCP) { + continue + } + (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fport = uint16(port) + (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fsocktype = uint8(SOCK_DGRAM) + v20 = cnt + cnt++ + (*(*Tservice)(unsafe.Pointer(buf + uintptr(v20)*4))).Fproto = uint8(IPPROTO_UDP) + } + if !(Xstrncmp(tls, *(*uintptr)(unsafe.Pointer(bp + 128)), __ccgo_ts+1059, uint64(4)) != 0) { + if proto == int32(IPPROTO_UDP) { + continue + } + (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fport = uint16(port) + (*(*Tservice)(unsafe.Pointer(buf + uintptr(cnt)*4))).Fsocktype = uint8(SOCK_STREAM) + v21 = cnt + cnt++ + (*(*Tservice)(unsafe.Pointer(buf + uintptr(v21)*4))).Fproto = uint8(IPPROTO_TCP) + } + } + X__fclose_ca(tls, f) + if cnt > 0 { + v22 = cnt + } else { + v22 = -int32(8) + } + return v22 +} + +func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, cb uintptr, ctx uintptr) (r1 int32) { + bp := tls.Alloc(8192) + defer tls.Free(8192) + var h uintptr + var r, ret int32 + var _ /* u at bp+0 */ struct { + Freq [0]struct { + Fnlh Tnlmsghdr + Fg Trtgenmsg + } + Freply [0]Tnlmsghdr + Fbuf [8192]Tuint8_t + } + _, _, _ = h, r, ret + Xmemset(tls, bp, 0, uint64(20)) + (*(*struct { + Fnlh Tnlmsghdr + Fg Trtgenmsg + })(unsafe.Pointer(&*(*struct { + Freq [0]struct { + Fnlh Tnlmsghdr + Fg Trtgenmsg + } + Freply [0]Tnlmsghdr + Fbuf [8192]Tuint8_t + })(unsafe.Pointer(bp))))).Fnlh.Fnlmsg_len = uint32(20) + (*(*struct { + Fnlh Tnlmsghdr + Fg Trtgenmsg + })(unsafe.Pointer(&*(*struct { + Freq [0]struct { + Fnlh Tnlmsghdr + Fg Trtgenmsg + } + Freply [0]Tnlmsghdr + Fbuf [8192]Tuint8_t + })(unsafe.Pointer(bp))))).Fnlh.Fnlmsg_type = uint16(type1) + (*(*struct { + Fnlh Tnlmsghdr + Fg Trtgenmsg + })(unsafe.Pointer(&*(*struct { + Freq [0]struct { + Fnlh Tnlmsghdr + Fg Trtgenmsg + } + Freply [0]Tnlmsghdr + Fbuf [8192]Tuint8_t + })(unsafe.Pointer(bp))))).Fnlh.Fnlmsg_flags = uint16(Int32FromInt32(NLM_F_ROOT) | Int32FromInt32(NLM_F_MATCH) | Int32FromInt32(NLM_F_REQUEST)) + (*(*struct { + Fnlh Tnlmsghdr + Fg Trtgenmsg + })(unsafe.Pointer(&*(*struct { + Freq [0]struct { + Fnlh Tnlmsghdr + Fg Trtgenmsg + } + Freply [0]Tnlmsghdr + Fbuf [8192]Tuint8_t + })(unsafe.Pointer(bp))))).Fnlh.Fnlmsg_seq = seq + (*(*struct { + Fnlh Tnlmsghdr + Fg Trtgenmsg + })(unsafe.Pointer(&*(*struct { + Freq [0]struct { + Fnlh Tnlmsghdr + Fg Trtgenmsg + } + Freply [0]Tnlmsghdr + Fbuf [8192]Tuint8_t + })(unsafe.Pointer(bp))))).Fg.Frtgen_family = uint8(af) + r = int32(Xsend(tls, fd, bp, uint64(20), 0)) + if r < 0 { + return r + } + for int32(1) != 0 { + r = int32(Xrecv(tls, fd, bp, uint64(8192), int32(MSG_DONTWAIT))) + if r <= 0 { + return -int32(1) + } + h = bp + for { + if !(uint64(int64(bp+uintptr(r))-int64(h)) >= uint64(16)) { + break + } + if int32((*Tnlmsghdr)(unsafe.Pointer(h)).Fnlmsg_type) == int32(NLMSG_DONE) { + return 0 + } + if int32((*Tnlmsghdr)(unsafe.Pointer(h)).Fnlmsg_type) == int32(NLMSG_ERROR) { + return -int32(1) + } + ret = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cb})))(tls, ctx, h) + if ret != 0 { + return ret + } + goto _1 + _1: + ; + h = h + uintptr(((*Tnlmsghdr)(unsafe.Pointer(h)).Fnlmsg_len+Uint32FromInt32(3))&uint32(^Int32FromInt32(3))) + } + } + return r1 +} + +func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, cb uintptr, ctx uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v link_af=%v addr_af=%v cb=%v ctx=%v, (%v:)", tls, link_af, addr_af, cb, ctx, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var fd, r int32 + _, _ = fd, r + fd = Xsocket(tls, int32(PF_NETLINK), Int32FromInt32(SOCK_RAW)|Int32FromInt32(SOCK_CLOEXEC), NETLINK_ROUTE) + if fd < 0 { + return -int32(1) + } + r = ___netlink_enumerate(tls, fd, uint32(1), int32(RTM_GETLINK), link_af, cb, ctx) + if !(r != 0) { + r = ___netlink_enumerate(tls, fd, uint32(2), int32(RTM_GETADDR), addr_af, cb, ctx) + } + X__syscall1(tls, int64(SYS_close), int64(fd)) + return r +} + +func Xgetnetbyaddr(tls *TLS, net Tuint32_t, type1 int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v net=%v type1=%v, (%v:)", tls, net, type1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uintptr(0) +} + +func Xgetnetbyname(tls *TLS, name uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v name=%v, (%v:)", tls, name, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uintptr(0) +} + +func Xns_get16(tls *TLS, cp uintptr) (r uint32) { + if __ccgo_strace { + trc("tls=%v cp=%v, (%v:)", tls, cp, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uint32(int32(*(*uint8)(unsafe.Pointer(cp)))< %v", r) }() + } + return uint64(uint32(*(*uint8)(unsafe.Pointer(cp)))<> int32(8)) + v2 = cp + cp++ + *(*uint8)(unsafe.Pointer(v2)) = uint8(s) +} + +func Xns_put32(tls *TLS, l uint64, cp uintptr) { + if __ccgo_strace { + trc("tls=%v l=%v cp=%v, (%v:)", tls, l, cp, origin(2)) + } + var v1, v2, v3, v4 uintptr + _, _, _, _ = v1, v2, v3, v4 + v1 = cp + cp++ + *(*uint8)(unsafe.Pointer(v1)) = uint8(l >> int32(24)) + v2 = cp + cp++ + *(*uint8)(unsafe.Pointer(v2)) = uint8(l >> int32(16)) + v3 = cp + cp++ + *(*uint8)(unsafe.Pointer(v3)) = uint8(l >> int32(8)) + v4 = cp + cp++ + *(*uint8)(unsafe.Pointer(v4)) = uint8(l) +} + +func Xns_initparse(tls *TLS, msg uintptr, msglen int32, handle uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v msg=%v msglen=%v handle=%v, (%v:)", tls, msg, msglen, handle, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var i, r int32 + _, _ = i, r + (*Tns_msg)(unsafe.Pointer(handle)).F_msg = msg + (*Tns_msg)(unsafe.Pointer(handle)).F_eom = msg + uintptr(msglen) + if msglen < (Int32FromInt32(2)+int32(_ns_s_max))*Int32FromInt32(NS_INT16SZ) { + goto bad + } + msg += uintptr(2) + (*Tns_msg)(unsafe.Pointer(handle)).F_id = uint16(Xns_get16(tls, msg-uintptr(2))) + msg += uintptr(2) + (*Tns_msg)(unsafe.Pointer(handle)).F_flags = uint16(Xns_get16(tls, msg-uintptr(2))) + i = 0 + for { + if !(i < int32(_ns_s_max)) { + break + } + msg += uintptr(2) + *(*Tuint16_t)(unsafe.Pointer(handle + 20 + uintptr(i)*2)) = uint16(Xns_get16(tls, msg-uintptr(2))) + goto _1 + _1: + ; + i++ + } + i = 0 + for { + if !(i < int32(_ns_s_max)) { + break + } + if *(*Tuint16_t)(unsafe.Pointer(handle + 20 + uintptr(i)*2)) != 0 { + *(*uintptr)(unsafe.Pointer(handle + 32 + uintptr(i)*8)) = msg + r = Xns_skiprr(tls, msg, (*Tns_msg)(unsafe.Pointer(handle)).F_eom, i, int32(*(*Tuint16_t)(unsafe.Pointer(handle + 20 + uintptr(i)*2)))) + if r < 0 { + return -int32(1) + } + msg += uintptr(r) + } else { + *(*uintptr)(unsafe.Pointer(handle + 32 + uintptr(i)*8)) = UintptrFromInt32(0) + } + goto _2 + _2: + ; + i++ + } + if msg != (*Tns_msg)(unsafe.Pointer(handle)).F_eom { + goto bad + } + (*Tns_msg)(unsafe.Pointer(handle)).F_sect = int32(_ns_s_max) + (*Tns_msg)(unsafe.Pointer(handle)).F_rrnum = -int32(1) + (*Tns_msg)(unsafe.Pointer(handle)).F_msg_ptr = UintptrFromInt32(0) + return 0 + goto bad +bad: + ; + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EMSGSIZE) + return -int32(1) +} + +func Xns_skiprr(tls *TLS, ptr uintptr, eom uintptr, section Tns_sect, count int32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v ptr=%v eom=%v section=%v count=%v, (%v:)", tls, ptr, eom, section, count, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var p uintptr + var r, v1 int32 + _, _, _ = p, r, v1 + p = ptr + for { + v1 = count + count-- + if !(v1 != 0) { + break + } + r = Xdn_skipname(tls, p, eom) + if r < 0 { + goto bad + } + if int64(r+Int32FromInt32(2)*Int32FromInt32(NS_INT16SZ)) > int64(eom)-int64(p) { + goto bad + } + p += uintptr(r + Int32FromInt32(2)*Int32FromInt32(NS_INT16SZ)) + if section != int32(_ns_s_qd) { + if int64(Int32FromInt32(NS_INT32SZ)+Int32FromInt32(NS_INT16SZ)) > int64(eom)-int64(p) { + goto bad + } + p += uintptr(NS_INT32SZ) + p += uintptr(2) + r = int32(Xns_get16(tls, p-uintptr(2))) + if int64(r) > int64(eom)-int64(p) { + goto bad + } + p += uintptr(r) + } + } + return int32(int64(p) - int64(ptr)) + goto bad +bad: + ; + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EMSGSIZE) + return -int32(1) +} + +func Xns_parserr(tls *TLS, handle uintptr, section Tns_sect, rrnum int32, rr uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v handle=%v section=%v rrnum=%v rr=%v, (%v:)", tls, handle, section, rrnum, rr, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r int32 + var p1, p2, p3, p4 uintptr + _, _, _, _, _ = r, p1, p2, p3, p4 + if section < 0 || section >= int32(_ns_s_max) { + goto bad + } + if section != (*Tns_msg)(unsafe.Pointer(handle)).F_sect { + (*Tns_msg)(unsafe.Pointer(handle)).F_sect = section + (*Tns_msg)(unsafe.Pointer(handle)).F_rrnum = 0 + (*Tns_msg)(unsafe.Pointer(handle)).F_msg_ptr = *(*uintptr)(unsafe.Pointer(handle + 32 + uintptr(section)*8)) + } + if rrnum == -int32(1) { + rrnum = (*Tns_msg)(unsafe.Pointer(handle)).F_rrnum + } + if rrnum < 0 || rrnum >= int32(*(*Tuint16_t)(unsafe.Pointer(handle + 20 + uintptr(section)*2))) { + goto bad + } + if rrnum < (*Tns_msg)(unsafe.Pointer(handle)).F_rrnum { + (*Tns_msg)(unsafe.Pointer(handle)).F_rrnum = 0 + (*Tns_msg)(unsafe.Pointer(handle)).F_msg_ptr = *(*uintptr)(unsafe.Pointer(handle + 32 + uintptr(section)*8)) + } + if rrnum > (*Tns_msg)(unsafe.Pointer(handle)).F_rrnum { + r = Xns_skiprr(tls, (*Tns_msg)(unsafe.Pointer(handle)).F_msg_ptr, (*Tns_msg)(unsafe.Pointer(handle)).F_eom, section, rrnum-(*Tns_msg)(unsafe.Pointer(handle)).F_rrnum) + if r < 0 { + return -int32(1) + } + *(*uintptr)(unsafe.Pointer(handle + 72)) += uintptr(r) + (*Tns_msg)(unsafe.Pointer(handle)).F_rrnum = rrnum + } + r = Xns_name_uncompress(tls, (*Tns_msg)(unsafe.Pointer(handle)).F_msg, (*Tns_msg)(unsafe.Pointer(handle)).F_eom, (*Tns_msg)(unsafe.Pointer(handle)).F_msg_ptr, rr, uint64(NS_MAXDNAME)) + if r < 0 { + return -int32(1) + } + *(*uintptr)(unsafe.Pointer(handle + 72)) += uintptr(r) + if int64(Int32FromInt32(2)*Int32FromInt32(NS_INT16SZ)) > int64((*Tns_msg)(unsafe.Pointer(handle)).F_eom)-int64((*Tns_msg)(unsafe.Pointer(handle)).F_msg_ptr) { + goto size + } + p1 = handle + 72 + *(*uintptr)(unsafe.Pointer(p1)) += uintptr(2) + (*Tns_rr)(unsafe.Pointer(rr)).Ftype1 = uint16(Xns_get16(tls, *(*uintptr)(unsafe.Pointer(p1))-uintptr(2))) + p2 = handle + 72 + *(*uintptr)(unsafe.Pointer(p2)) += uintptr(2) + (*Tns_rr)(unsafe.Pointer(rr)).Frr_class = uint16(Xns_get16(tls, *(*uintptr)(unsafe.Pointer(p2))-uintptr(2))) + if section != int32(_ns_s_qd) { + if int64(Int32FromInt32(NS_INT32SZ)+Int32FromInt32(NS_INT16SZ)) > int64((*Tns_msg)(unsafe.Pointer(handle)).F_eom)-int64((*Tns_msg)(unsafe.Pointer(handle)).F_msg_ptr) { + goto size + } + p3 = handle + 72 + *(*uintptr)(unsafe.Pointer(p3)) += uintptr(4) + (*Tns_rr)(unsafe.Pointer(rr)).Fttl = uint32(Xns_get32(tls, *(*uintptr)(unsafe.Pointer(p3))-uintptr(4))) + p4 = handle + 72 + *(*uintptr)(unsafe.Pointer(p4)) += uintptr(2) + (*Tns_rr)(unsafe.Pointer(rr)).Frdlength = uint16(Xns_get16(tls, *(*uintptr)(unsafe.Pointer(p4))-uintptr(2))) + if int64((*Tns_rr)(unsafe.Pointer(rr)).Frdlength) > int64((*Tns_msg)(unsafe.Pointer(handle)).F_eom)-int64((*Tns_msg)(unsafe.Pointer(handle)).F_msg_ptr) { + goto size + } + (*Tns_rr)(unsafe.Pointer(rr)).Frdata = (*Tns_msg)(unsafe.Pointer(handle)).F_msg_ptr + *(*uintptr)(unsafe.Pointer(handle + 72)) += uintptr((*Tns_rr)(unsafe.Pointer(rr)).Frdlength) + } else { + (*Tns_rr)(unsafe.Pointer(rr)).Fttl = uint32(0) + (*Tns_rr)(unsafe.Pointer(rr)).Frdlength = uint16(0) + (*Tns_rr)(unsafe.Pointer(rr)).Frdata = UintptrFromInt32(0) + } + (*Tns_msg)(unsafe.Pointer(handle)).F_rrnum++ + if (*Tns_msg)(unsafe.Pointer(handle)).F_rrnum > int32(*(*Tuint16_t)(unsafe.Pointer(handle + 20 + uintptr(section)*2))) { + (*Tns_msg)(unsafe.Pointer(handle)).F_sect = section + int32(1) + if (*Tns_msg)(unsafe.Pointer(handle)).F_sect == int32(_ns_s_max) { + (*Tns_msg)(unsafe.Pointer(handle)).F_rrnum = -int32(1) + (*Tns_msg)(unsafe.Pointer(handle)).F_msg_ptr = UintptrFromInt32(0) + } else { + (*Tns_msg)(unsafe.Pointer(handle)).F_rrnum = 0 + } + } + return 0 + goto bad +bad: + ; + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENODEV) + return -int32(1) + goto size +size: + ; + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EMSGSIZE) + return -int32(1) +} + +func Xns_name_uncompress(tls *TLS, msg uintptr, eom uintptr, src uintptr, dst uintptr, dstsiz Tsize_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v msg=%v eom=%v src=%v dst=%v dstsiz=%v, (%v:)", tls, msg, eom, src, dst, dstsiz, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r int32 + _ = r + r = Xdn_expand(tls, msg, eom, src, dst, int32(dstsiz)) + if r < 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EMSGSIZE) + } + return r +} + +func Xntohl(tls *TLS, n Tuint32_t) (r Tuint32_t) { + if __ccgo_strace { + trc("tls=%v n=%v, (%v:)", tls, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var u struct { + Fc [0]uint8 + Fi int32 + } + var v1 uint32 + var v2, v3 Tuint32_t + _, _, _, _ = u, v1, v2, v3 + u = *(*struct { + Fc [0]uint8 + Fi int32 + })(unsafe.Pointer(&struct{ f int32 }{f: int32(1)})) + if *(*uint8)(unsafe.Pointer(&u)) != 0 { + v2 = n + v3 = v2>>int32(24) | v2>>int32(8)&uint32(0xff00) | v2< %v", r) }() + } + var u struct { + Fc [0]uint8 + Fi int32 + } + var v1 int32 + var v2, v3 Tuint16_t + _, _, _, _ = u, v1, v2, v3 + u = *(*struct { + Fc [0]uint8 + Fi int32 + })(unsafe.Pointer(&struct{ f int32 }{f: int32(1)})) + if *(*uint8)(unsafe.Pointer(&u)) != 0 { + v2 = n + v3 = uint16(int32(v2)<>int32(8)) + goto _4 + _4: + v1 = int32(v3) + } else { + v1 = int32(n) + } + return uint16(v1) +} + +/* do we really need all these?? */ + +var _idx int32 +var _protos = [239]uint8{0, 'i', 'p', 0, 1, 'i', 'c', 'm', 'p', 0, 2, 'i', 'g', 'm', 'p', 0, 3, 'g', 'g', 'p', 0, 4, 'i', 'p', 'e', 'n', 'c', 'a', 'p', 0, 5, 's', 't', 0, 6, 't', 'c', 'p', 0, 8, 'e', 'g', 'p', 0, 12, 'p', 'u', 'p', 0, 17, 'u', 'd', 'p', 0, 20, 'h', 'm', 'p', 0, 22, 'x', 'n', 's', '-', 'i', 'd', 'p', 0, 27, 'r', 'd', 'p', 0, 29, 'i', 's', 'o', '-', 't', 'p', '4', 0, '$', 'x', 't', 'p', 0, '%', 'd', 'd', 'p', 0, '&', 'i', 'd', 'p', 'r', '-', 'c', 'm', 't', 'p', 0, ')', 'i', 'p', 'v', '6', 0, '+', 'i', 'p', 'v', '6', '-', 'r', 'o', 'u', 't', 'e', 0, ',', 'i', 'p', 'v', '6', '-', 'f', 'r', 'a', 'g', 0, '-', 'i', 'd', 'r', 'p', 0, '.', 'r', 's', 'v', 'p', 0, '/', 'g', 'r', 'e', 0, '2', 'e', 's', 'p', 0, '3', 'a', 'h', 0, '9', 's', 'k', 'i', 'p', 0, ':', 'i', 'p', 'v', '6', '-', 'i', 'c', 'm', 'p', 0, ';', 'i', 'p', 'v', '6', '-', 'n', 'o', 'n', 'x', 't', 0, '<', 'i', 'p', 'v', '6', '-', 'o', 'p', 't', 's', 0, 'I', 'r', 's', 'p', 'f', 0, 'Q', 'v', 'm', 't', 'p', 0, 'Y', 'o', 's', 'p', 'f', 0, '^', 'i', 'p', 'i', 'p', 0, 'b', 'e', 'n', 'c', 'a', 'p', 0, 'g', 'p', 'i', 'm', 0, 255, 'r', 'a', 'w'} + +func Xendprotoent(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + _idx = 0 +} + +func Xsetprotoent(tls *TLS, stayopen int32) { + if __ccgo_strace { + trc("tls=%v stayopen=%v, (%v:)", tls, stayopen, origin(2)) + } + _idx = 0 +} + +func Xgetprotoent(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + if uint64(_idx) >= uint64(239) { + return UintptrFromInt32(0) + } + _p.Fp_proto = int32(_protos[_idx]) + _p.Fp_name = uintptr(unsafe.Pointer(&_protos)) + uintptr(_idx+int32(1)) + _p.Fp_aliases = uintptr(unsafe.Pointer(&_aliases)) + _idx = int32(uint64(_idx) + (Xstrlen(tls, _p.Fp_name) + Uint64FromInt32(2))) + return uintptr(unsafe.Pointer(&_p)) +} + +var _p Tprotoent + +var _aliases uintptr + +func Xgetprotobyname(tls *TLS, name uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v name=%v, (%v:)", tls, name, origin(2)) + defer func() { trc("-> %v", r) }() + } + var p uintptr + _ = p + Xendprotoent(tls) + for cond := true; cond; cond = p != 0 && Xstrcmp(tls, name, (*Tprotoent)(unsafe.Pointer(p)).Fp_name) != 0 { + p = Xgetprotoent(tls) + } + return p +} + +func Xgetprotobynumber(tls *TLS, num int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v num=%v, (%v:)", tls, num, origin(2)) + defer func() { trc("-> %v", r) }() + } + var p uintptr + _ = p + Xendprotoent(tls) + for cond := true; cond; cond = p != 0 && (*Tprotoent)(unsafe.Pointer(p)).Fp_proto != num { + p = Xgetprotoent(tls) + } + return p +} + +func Xrecv(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v buf=%v len1=%v flags=%v, (%v:)", tls, fd, buf, len1, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xrecvfrom(tls, fd, buf, len1, flags, uintptr(0), uintptr(0)) +} + +func Xrecvfrom(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32, addr uintptr, alen uintptr) (r1 Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v buf=%v len1=%v flags=%v addr=%v alen=%v, (%v:)", tls, fd, buf, len1, flags, addr, alen, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, v8 int64 + var v1 int32 + var v2, v3, v4, v5, v6, v7 Tsyscall_arg_t + _, _, _, _, _, _, _, _, _ = r, v1, v2, v3, v4, v5, v6, v7, v8 + v1 = int32(SYS_recvfrom) + _ = int32(__SC_recvfrom) + v2 = int64(fd) + v3 = int64(buf) + v4 = int64(len1) + v5 = int64(flags) + v6 = int64(addr) + v7 = int64(alen) + if int32(1) != 0 { + r = ___syscall_cp(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } else { + r = X__syscall6(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v8 = r + goto _9 + } + v8 = r + goto _9 +_9: + return X__syscall_ret(tls, uint64(v8)) +} + +func Xrecvmmsg(tls *TLS, fd int32, msgvec uintptr, vlen uint32, flags uint32, timeout uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v msgvec=%v vlen=%v flags=%v timeout=%v, (%v:)", tls, fd, msgvec, vlen, flags, timeout, origin(2)) + defer func() { trc("-> %v", r) }() + } + var i uint32 + var mh uintptr + var v2 int32 + _, _, _ = i, mh, v2 + mh = msgvec + i = vlen + for { + if !(i != 0) { + break + } + v2 = Int32FromInt32(0) + (*Tmmsghdr)(unsafe.Pointer(mh)).Fmsg_hdr.F__pad2 = v2 + (*Tmmsghdr)(unsafe.Pointer(mh)).Fmsg_hdr.F__pad1 = v2 + goto _1 + _1: + ; + i-- + mh += 64 + } + return int32(X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_recvmmsg), int64(fd), int64(msgvec), int64(vlen), int64(flags), int64(timeout), 0)))) +} + +func X__convert_scm_timestamps(tls *TLS, msg uintptr, csize Tsocklen_t) { + if __ccgo_strace { + trc("tls=%v msg=%v csize=%v, (%v:)", tls, msg, csize, origin(2)) + } + bp := tls.Alloc(32) + defer tls.Free(32) + var cmsg, last, v2, v6, v8, p7 uintptr + var type1 int32 + var _ /* tmp at bp+0 */ int64 + var _ /* tvts at bp+8 */ [2]int64 + _, _, _, _, _, _, _ = cmsg, last, type1, v2, v6, v8, p7 + if true { + return + } + if !((*Tmsghdr)(unsafe.Pointer(msg)).Fmsg_control != 0) || !((*Tmsghdr)(unsafe.Pointer(msg)).Fmsg_controllen != 0) { + return + } + last = uintptr(0) + type1 = 0 + if uint64((*Tmsghdr)(unsafe.Pointer(msg)).Fmsg_controllen) >= uint64(16) { + v2 = (*Tmsghdr)(unsafe.Pointer(msg)).Fmsg_control + } else { + v2 = UintptrFromInt32(0) + } + cmsg = v2 + for { + if !(cmsg != 0) { + break + } + if (*Tcmsghdr)(unsafe.Pointer(cmsg)).Fcmsg_level == int32(SOL_SOCKET) { + switch (*Tcmsghdr)(unsafe.Pointer(cmsg)).Fcmsg_type { + case int32(SO_TIMESTAMP_OLD): + goto _3 + case int32(SO_TIMESTAMPNS_OLD): + goto _4 + } + goto _5 + _3: + ; + if type1 != 0 { + goto _5 + } + type1 = int32(SO_TIMESTAMP) + goto common + _4: + ; + type1 = int32(SO_TIMESTAMPNS) + goto common + common: + ; + Xmemcpy(tls, bp, cmsg+UintptrFromInt32(1)*16, uint64(8)) + (*(*[2]int64)(unsafe.Pointer(bp + 8)))[0] = *(*int64)(unsafe.Pointer(bp)) + Xmemcpy(tls, bp, cmsg+UintptrFromInt32(1)*16+uintptr(8), uint64(8)) + (*(*[2]int64)(unsafe.Pointer(bp + 8)))[int32(1)] = *(*int64)(unsafe.Pointer(bp)) + goto _5 + _5: + } + last = cmsg + goto _1 + _1: + ; + if uint64((*Tcmsghdr)(unsafe.Pointer(cmsg)).Fcmsg_len) < uint64(16) || (uint64((*Tcmsghdr)(unsafe.Pointer(cmsg)).Fcmsg_len)+uint64(8)-uint64(1))&uint64(^int64(Uint64FromInt64(8)-Uint64FromInt32(1)))+uint64(16) >= uint64(int64((*Tmsghdr)(unsafe.Pointer(msg)).Fmsg_control+uintptr((*Tmsghdr)(unsafe.Pointer(msg)).Fmsg_controllen))-int64(cmsg)) { + v6 = uintptr(0) + } else { + v6 = cmsg + uintptr((uint64((*Tcmsghdr)(unsafe.Pointer(cmsg)).Fcmsg_len)+Uint64FromInt64(8)-Uint64FromInt32(1))&uint64(^int64(Uint64FromInt64(8)-Uint64FromInt32(1)))) + } + cmsg = v6 + } + if !(last != 0) || !(type1 != 0) { + return + } + if (Uint64FromInt64(16)+Uint64FromInt64(8)-Uint64FromInt32(1)) & ^(Uint64FromInt64(8)-Uint64FromInt32(1)) + (Uint64FromInt64(16)+Uint64FromInt64(8)-Uint64FromInt32(1)) & ^(Uint64FromInt64(8)-Uint64FromInt32(1)) > uint64(csize-(*Tmsghdr)(unsafe.Pointer(msg)).Fmsg_controllen) { + *(*int32)(unsafe.Pointer(msg + 48)) |= int32(MSG_CTRUNC) + return + } + p7 = msg + 40 + *(*Tsocklen_t)(unsafe.Pointer(p7)) = Tsocklen_t(uint64(*(*Tsocklen_t)(unsafe.Pointer(p7))) + ((Uint64FromInt64(16)+Uint64FromInt64(8)-Uint64FromInt32(1)) & ^(Uint64FromInt64(8)-Uint64FromInt32(1)) + (Uint64FromInt64(16)+Uint64FromInt64(8)-Uint64FromInt32(1)) & ^(Uint64FromInt64(8)-Uint64FromInt32(1)))) + if uint64((*Tcmsghdr)(unsafe.Pointer(last)).Fcmsg_len) < uint64(16) || (uint64((*Tcmsghdr)(unsafe.Pointer(last)).Fcmsg_len)+uint64(8)-uint64(1))&uint64(^int64(Uint64FromInt64(8)-Uint64FromInt32(1)))+uint64(16) >= uint64(int64((*Tmsghdr)(unsafe.Pointer(msg)).Fmsg_control+uintptr((*Tmsghdr)(unsafe.Pointer(msg)).Fmsg_controllen))-int64(last)) { + v8 = uintptr(0) + } else { + v8 = last + uintptr((uint64((*Tcmsghdr)(unsafe.Pointer(last)).Fcmsg_len)+Uint64FromInt64(8)-Uint64FromInt32(1))&uint64(^int64(Uint64FromInt64(8)-Uint64FromInt32(1)))) + } + cmsg = v8 + (*Tcmsghdr)(unsafe.Pointer(cmsg)).Fcmsg_level = int32(SOL_SOCKET) + (*Tcmsghdr)(unsafe.Pointer(cmsg)).Fcmsg_type = type1 + (*Tcmsghdr)(unsafe.Pointer(cmsg)).Fcmsg_len = uint32((Uint64FromInt64(16)+Uint64FromInt64(8)-Uint64FromInt32(1)) & ^(Uint64FromInt64(8)-Uint64FromInt32(1)) + Uint64FromInt64(16)) + Xmemcpy(tls, cmsg+UintptrFromInt32(1)*16, bp+8, uint64(16)) +} + +func Xrecvmsg(tls *TLS, fd int32, msg uintptr, flags int32) (r2 Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v msg=%v flags=%v, (%v:)", tls, fd, msg, flags, origin(2)) + defer func() { trc("-> %v", r2) }() + } + bp := tls.Alloc(64) + defer tls.Free(64) + var orig uintptr + var orig_controllen Tsocklen_t + var r, v9 int64 + var r1 Tssize_t + var v1, v2 int32 + var v3, v4, v5, v6, v7, v8 Tsyscall_arg_t + var _ /* h at bp+0 */ Tmsghdr + _, _, _, _, _, _, _, _, _, _, _, _, _ = orig, orig_controllen, r, r1, v1, v2, v3, v4, v5, v6, v7, v8, v9 + orig_controllen = (*Tmsghdr)(unsafe.Pointer(msg)).Fmsg_controllen + orig = msg + if msg != 0 { + *(*Tmsghdr)(unsafe.Pointer(bp)) = *(*Tmsghdr)(unsafe.Pointer(msg)) + v1 = Int32FromInt32(0) + (*(*Tmsghdr)(unsafe.Pointer(bp))).F__pad2 = v1 + (*(*Tmsghdr)(unsafe.Pointer(bp))).F__pad1 = v1 + msg = bp + } + v2 = int32(SYS_recvmsg) + _ = int32(__SC_recvmsg) + v3 = int64(fd) + v4 = int64(msg) + v5 = int64(flags) + v6 = int64(Int32FromInt32(0)) + v7 = int64(Int32FromInt32(0)) + v8 = int64(Int32FromInt32(0)) + if int32(1) != 0 { + r = ___syscall_cp(tls, int64(v2), v3, v4, v5, v6, v7, v8) + } else { + r = X__syscall6(tls, int64(v2), v3, v4, v5, v6, v7, v8) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v9 = r + goto _10 + } + v9 = r + goto _10 +_10: + r1 = X__syscall_ret(tls, uint64(v9)) + if r1 >= 0 { + X__convert_scm_timestamps(tls, msg, orig_controllen) + } + if orig != 0 { + *(*Tmsghdr)(unsafe.Pointer(orig)) = *(*Tmsghdr)(unsafe.Pointer(bp)) + } + return r1 +} + +func Xres_init(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return 0 +} + +func X__res_mkquery(tls *TLS, op int32, dname uintptr, class int32, type1 int32, data uintptr, datalen int32, newrr uintptr, buf uintptr, buflen int32) (r int32) { + if __ccgo_strace { + trc("tls=%v op=%v dname=%v class=%v type1=%v data=%v datalen=%v newrr=%v buf=%v buflen=%v, (%v:)", tls, op, dname, class, type1, data, datalen, newrr, buf, buflen, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(304) + defer tls.Free(304) + var i, id, j, n int32 + var l Tsize_t + var _ /* q at bp+0 */ [280]uint8 + var _ /* ts at bp+280 */ Ttimespec + _, _, _, _, _ = i, id, j, l, n + l = Xstrnlen(tls, dname, uint64(255)) + if l != 0 && int32(*(*uint8)(unsafe.Pointer(dname + uintptr(l-uint64(1))))) == int32('.') { + l-- + } + if l != 0 && int32(*(*uint8)(unsafe.Pointer(dname + uintptr(l-uint64(1))))) == int32('.') { + return -int32(1) + } + n = int32(uint64(17) + l + BoolUint64(!!(l != 0))) + if l > uint64(253) || buflen < n || uint32(op) > uint32(15) || uint32(class) > uint32(255) || uint32(type1) > uint32(255) { + return -int32(1) + } + /* Construct query template - ID will be filled later */ + Xmemset(tls, bp, 0, uint64(n)) + (*(*[280]uint8)(unsafe.Pointer(bp)))[int32(2)] = uint8(op*int32(8) + int32(1)) + (*(*[280]uint8)(unsafe.Pointer(bp)))[int32(3)] = uint8(32) /* AD */ + (*(*[280]uint8)(unsafe.Pointer(bp)))[int32(5)] = uint8(1) + Xmemcpy(tls, bp+uintptr(13), dname, l) + i = int32(13) + for { + if !((*(*[280]uint8)(unsafe.Pointer(bp)))[i] != 0) { + break + } + j = i + for { + if !((*(*[280]uint8)(unsafe.Pointer(bp)))[j] != 0 && int32((*(*[280]uint8)(unsafe.Pointer(bp)))[j]) != int32('.')) { + break + } + goto _2 + _2: + ; + j++ + } + if uint32(j-i)-uint32(1) > uint32(62) { + return -int32(1) + } + (*(*[280]uint8)(unsafe.Pointer(bp)))[i-int32(1)] = uint8(j - i) + goto _1 + _1: + ; + i = j + int32(1) + } + (*(*[280]uint8)(unsafe.Pointer(bp)))[i+int32(1)] = uint8(type1) + (*(*[280]uint8)(unsafe.Pointer(bp)))[i+int32(3)] = uint8(class) + /* Make a reasonably unpredictable id */ + Xclock_gettime(tls, CLOCK_REALTIME, bp+280) + id = int32((uint64((*(*Ttimespec)(unsafe.Pointer(bp + 280))).Ftv_nsec) + uint64((*(*Ttimespec)(unsafe.Pointer(bp + 280))).Ftv_nsec)/uint64(65536)) & uint64(0xffff)) + (*(*[280]uint8)(unsafe.Pointer(bp)))[0] = uint8(id / int32(256)) + (*(*[280]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(id) + Xmemcpy(tls, buf, bp, uint64(n)) + return n +} + +func Xres_mkquery(tls *TLS, op int32, dname uintptr, class int32, type1 int32, data uintptr, datalen int32, newrr uintptr, buf uintptr, buflen int32) (r int32) { + if __ccgo_strace { + trc("tls=%v op=%v dname=%v class=%v type1=%v data=%v datalen=%v newrr=%v buf=%v buflen=%v, (%v:)", tls, op, dname, class, type1, data, datalen, newrr, buf, buflen, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__res_mkquery(tls, op, dname, class, type1, data, datalen, newrr, buf, buflen) +} + +const POLLERR = 8 +const POLLHUP = 16 +const POLLIN = 1 +const POLLMSG = 1024 +const POLLNVAL = 32 +const POLLOUT = 4 +const POLLPRI = 2 +const POLLRDBAND = 128 +const POLLRDHUP = 8192 +const POLLRDNORM = 64 +const POLLWRBAND = 512 +const POLLWRNORM = 256 +const TCP_CC_INFO = 26 +const TCP_CLOSE = 7 +const TCP_CLOSE_WAIT = 8 +const TCP_CLOSING = 11 +const TCP_CM_INQ = 36 +const TCP_CONGESTION = 13 +const TCP_CORK = 3 +const TCP_DEFER_ACCEPT = 9 +const TCP_ESTABLISHED = 1 +const TCP_FASTOPEN = 23 +const TCP_FASTOPEN_CONNECT = 30 +const TCP_FASTOPEN_KEY = 33 +const TCP_FASTOPEN_NO_COOKIE = 34 +const TCP_FIN_WAIT1 = 4 +const TCP_FIN_WAIT2 = 5 +const TCP_INFO = 11 +const TCP_INQ = 36 +const TCP_KEEPCNT = 6 +const TCP_KEEPIDLE = 4 +const TCP_KEEPINTVL = 5 +const TCP_LAST_ACK = 9 +const TCP_LINGER2 = 8 +const TCP_LISTEN = 10 +const TCP_MAXSEG = 2 +const TCP_MD5SIG = 14 +const TCP_MD5SIG_EXT = 32 +const TCP_NODELAY = 1 +const TCP_NOTSENT_LOWAT = 25 +const TCP_QUEUE_SEQ = 21 +const TCP_QUICKACK = 12 +const TCP_REPAIR = 19 +const TCP_REPAIR_OPTIONS = 22 +const TCP_REPAIR_QUEUE = 20 +const TCP_REPAIR_WINDOW = 29 +const TCP_SAVED_SYN = 28 +const TCP_SAVE_SYN = 27 +const TCP_SYNCNT = 7 +const TCP_SYN_RECV = 3 +const TCP_SYN_SENT = 2 +const TCP_THIN_DUPACK = 17 +const TCP_THIN_LINEAR_TIMEOUTS = 16 +const TCP_TIMESTAMP = 24 +const TCP_TIME_WAIT = 6 +const TCP_TX_DELAY = 37 +const TCP_ULP = 31 +const TCP_USER_TIMEOUT = 18 +const TCP_WINDOW_CLAMP = 10 +const TCP_ZEROCOPY_RECEIVE = 35 + +const _TCP_NLA_PAD = 0 +const _TCP_NLA_BUSY = 1 +const _TCP_NLA_RWND_LIMITED = 2 +const _TCP_NLA_SNDBUF_LIMITED = 3 +const _TCP_NLA_DATA_SEGS_OUT = 4 +const _TCP_NLA_TOTAL_RETRANS = 5 +const _TCP_NLA_PACING_RATE = 6 +const _TCP_NLA_DELIVERY_RATE = 7 +const _TCP_NLA_SND_CWND = 8 +const _TCP_NLA_REORDERING = 9 +const _TCP_NLA_MIN_RTT = 10 +const _TCP_NLA_RECUR_RETRANS = 11 +const _TCP_NLA_DELIVERY_RATE_APP_LMT = 12 +const _TCP_NLA_SNDQ_SIZE = 13 +const _TCP_NLA_CA_STATE = 14 +const _TCP_NLA_SND_SSTHRESH = 15 +const _TCP_NLA_DELIVERED = 16 +const _TCP_NLA_DELIVERED_CE = 17 +const _TCP_NLA_BYTES_SENT = 18 +const _TCP_NLA_BYTES_RETRANS = 19 +const _TCP_NLA_DSACK_DUPS = 20 +const _TCP_NLA_REORD_SEEN = 21 +const _TCP_NLA_SRTT = 22 +const _TCP_NLA_TIMEOUT_REHASH = 23 +const _TCP_NLA_BYTES_NOTSENT = 24 +const _TCP_NLA_EDT = 25 +const _TCP_NLA_TTL = 26 + +type Tnfds_t = uint64 + +type Tpollfd = struct { + Ffd int32 + Fevents int16 + Frevents int16 +} + +func _cleanup(tls *TLS, p uintptr) { + var i int32 + var pfd uintptr + _, _ = i, pfd + pfd = p + i = 0 + for { + if !((*(*Tpollfd)(unsafe.Pointer(pfd + uintptr(i)*8))).Ffd >= -int32(1)) { + break + } + if (*(*Tpollfd)(unsafe.Pointer(pfd + uintptr(i)*8))).Ffd >= 0 { + X__syscall1(tls, int64(SYS_close), int64((*(*Tpollfd)(unsafe.Pointer(pfd + uintptr(i)*8))).Ffd)) + } + goto _1 + _1: + ; + i++ + } +} + +func _mtime(tls *TLS) (r uint64) { + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* ts at bp+0 */ Ttimespec + if Xclock_gettime(tls, int32(CLOCK_MONOTONIC), bp) < 0 && *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(ENOSYS) { + Xclock_gettime(tls, CLOCK_REALTIME, bp) + } + return uint64((*(*Ttimespec)(unsafe.Pointer(bp))).Ftv_sec)*uint64(1000) + uint64((*(*Ttimespec)(unsafe.Pointer(bp))).Ftv_nsec/int64(1000000)) +} + +func _start_tcp(tls *TLS, pfd uintptr, family int32, sa uintptr, sl Tsocklen_t, q uintptr, ql int32) (r1 int32) { + bp := tls.Alloc(96) + defer tls.Free(96) + var fd, r int32 + var _ /* mh at bp+40 */ Tmsghdr + _, _ = fd, r + *(*[2]Tuint8_t)(unsafe.Pointer(bp + 32)) = [2]Tuint8_t{ + 0: uint8(ql >> int32(8)), + 1: uint8(ql), + } + *(*[2]Tiovec)(unsafe.Pointer(bp)) = [2]Tiovec{ + 0: { + Fiov_base: bp + 32, + Fiov_len: uint64(2), + }, + 1: { + Fiov_base: q, + Fiov_len: uint64(ql), + }, + } + *(*Tmsghdr)(unsafe.Pointer(bp + 40)) = Tmsghdr{ + Fmsg_name: sa, + Fmsg_namelen: sl, + Fmsg_iov: bp, + Fmsg_iovlen: int32(2), + } + fd = Xsocket(tls, family, Int32FromInt32(SOCK_STREAM)|Int32FromInt32(SOCK_CLOEXEC)|Int32FromInt32(SOCK_NONBLOCK), 0) + (*Tpollfd)(unsafe.Pointer(pfd)).Ffd = fd + (*Tpollfd)(unsafe.Pointer(pfd)).Fevents = int16(POLLOUT) + *(*int32)(unsafe.Pointer(bp + 36)) = int32(1) + if !(Xsetsockopt(tls, fd, int32(IPPROTO_TCP), int32(TCP_FASTOPEN_CONNECT), bp+36, uint32(4)) != 0) { + r = int32(Xsendmsg(tls, fd, bp+40, Int32FromInt32(MSG_FASTOPEN)|Int32FromInt32(MSG_NOSIGNAL))) + if r == ql+int32(2) { + (*Tpollfd)(unsafe.Pointer(pfd)).Fevents = int16(POLLIN) + } + if r >= 0 { + return r + } + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(EINPROGRESS) { + return 0 + } + } + r = Xconnect(tls, fd, sa, sl) + if !(r != 0) || *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(EINPROGRESS) { + return 0 + } + Xclose(tls, fd) + (*Tpollfd)(unsafe.Pointer(pfd)).Ffd = -int32(1) + return -int32(1) +} + +func _step_mh(tls *TLS, mh uintptr, n Tsize_t) { + /* Adjust iovec in msghdr to skip first n bytes. */ + for (*Tmsghdr)(unsafe.Pointer(mh)).Fmsg_iovlen != 0 && n >= (*Tiovec)(unsafe.Pointer((*Tmsghdr)(unsafe.Pointer(mh)).Fmsg_iov)).Fiov_len { + n -= (*Tiovec)(unsafe.Pointer((*Tmsghdr)(unsafe.Pointer(mh)).Fmsg_iov)).Fiov_len + (*Tmsghdr)(unsafe.Pointer(mh)).Fmsg_iov += 16 + (*Tmsghdr)(unsafe.Pointer(mh)).Fmsg_iovlen-- + } + if !((*Tmsghdr)(unsafe.Pointer(mh)).Fmsg_iovlen != 0) { + return + } + (*Tiovec)(unsafe.Pointer((*Tmsghdr)(unsafe.Pointer(mh)).Fmsg_iov)).Fiov_base = (*Tiovec)(unsafe.Pointer((*Tmsghdr)(unsafe.Pointer(mh)).Fmsg_iov)).Fiov_base + uintptr(n) + *(*Tsize_t)(unsafe.Pointer((*Tmsghdr)(unsafe.Pointer(mh)).Fmsg_iov + 8)) -= n +} + +/* Internal contract for __res_msend[_rc]: asize must be >=512, nqueries + * must be sufficiently small to be safe as VLA size. In practice it's + * either 1 or 2, anyway. */ + +func X__res_msend_rc(tls *TLS, nqueries int32, queries uintptr, qlens uintptr, answers uintptr, alens uintptr, asize int32, conf uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v nqueries=%v queries=%v qlens=%v answers=%v alens=%v asize=%v conf=%v, (%v:)", tls, nqueries, queries, qlens, answers, alens, asize, conf, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(400) + defer tls.Free(400) + var alen, attempts, family, fd, i, j, next, nns, r, rcode, retry_interval, rlen, servfail_retry, timeout, v17, v6 int32 + var alen_buf, apos, iplit, pfd, qpos uintptr + var sl Tsocklen_t + var t0, t1, t2, v10 uint64 + var v1, v2, v3, v4 t__predefined_size_t + var v18 bool + var _ /* __cb at bp+208 */ t__ptcb + var _ /* cs at bp+200 */ int32 + var _ /* mh at bp+232 */ Tmsghdr + var _ /* mh at bp+288 */ Tmsghdr + var _ /* mh at bp+344 */ Tmsghdr + var _ /* ns at bp+116 */ [3]struct { + Fsin6 [0]Tsockaddr_in6 + Fsin Tsockaddr_in + F__ccgo_pad2 [12]byte + } + var _ /* sa at bp+88 */ struct { + Fsin6 [0]Tsockaddr_in6 + Fsin Tsockaddr_in + F__ccgo_pad2 [12]byte + } + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = alen, alen_buf, apos, attempts, family, fd, i, iplit, j, next, nns, pfd, qpos, r, rcode, retry_interval, rlen, servfail_retry, sl, t0, t1, t2, timeout, v1, v10, v17, v18, v2, v3, v4, v6 + defer func() { + Xrealloc(tls, alen_buf, 0) + Xrealloc(tls, apos, 0) + Xrealloc(tls, pfd, 0) + Xrealloc(tls, qpos, 0) + }() + *(*struct { + Fsin6 [0]Tsockaddr_in6 + Fsin Tsockaddr_in + F__ccgo_pad2 [12]byte + })(unsafe.Pointer(bp + 88)) = struct { + Fsin6 [0]Tsockaddr_in6 + Fsin Tsockaddr_in + F__ccgo_pad2 [12]byte + }{} + *(*uint16)(unsafe.Pointer(bp + 88)) = uint16(0) + *(*[3]struct { + Fsin6 [0]Tsockaddr_in6 + Fsin Tsockaddr_in + F__ccgo_pad2 [12]byte + })(unsafe.Pointer(bp + 116)) = [3]struct { + Fsin6 [0]Tsockaddr_in6 + Fsin Tsockaddr_in + F__ccgo_pad2 [12]byte + }{} + sl = uint32(16) + nns = 0 + family = int32(PF_INET) + v1 = uint64(nqueries+int32(2)) * 8 + pfd = Xrealloc(tls, pfd, v1) + v2 = uint64(nqueries) * 4 + qpos = Xrealloc(tls, qpos, v2) + v3 = uint64(nqueries) * 4 + apos = Xrealloc(tls, apos, v3) + v4 = uint64(nqueries) * 2 + alen_buf = Xrealloc(tls, alen_buf, v4) + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp+200) + timeout = int32(uint32(1000) * (*Tresolvconf)(unsafe.Pointer(conf)).Ftimeout) + attempts = int32((*Tresolvconf)(unsafe.Pointer(conf)).Fattempts) + nns = 0 + for { + if !(uint32(nns) < (*Tresolvconf)(unsafe.Pointer(conf)).Fnns) { + break + } + iplit = conf + uintptr(nns)*28 + if (*Taddress)(unsafe.Pointer(iplit)).Ffamily == int32(PF_INET) { + Xmemcpy(tls, bp+116+uintptr(nns)*28+4, iplit+8, uint64(4)) + (*(*[3]struct { + Fsin6 [0]Tsockaddr_in6 + Fsin Tsockaddr_in + F__ccgo_pad2 [12]byte + })(unsafe.Pointer(bp + 116)))[nns].Fsin.Fsin_port = Xhtons(tls, uint16(53)) + (*(*[3]struct { + Fsin6 [0]Tsockaddr_in6 + Fsin Tsockaddr_in + F__ccgo_pad2 [12]byte + })(unsafe.Pointer(bp + 116)))[nns].Fsin.Fsin_family = uint16(PF_INET) + } else { + sl = uint32(28) + Xmemcpy(tls, bp+116+uintptr(nns)*28+8, iplit+8, uint64(16)) + (*(*Tsockaddr_in6)(unsafe.Pointer(bp + 116 + uintptr(nns)*28))).Fsin6_port = Xhtons(tls, uint16(53)) + (*(*Tsockaddr_in6)(unsafe.Pointer(bp + 116 + uintptr(nns)*28))).Fsin6_scope_id = (*Taddress)(unsafe.Pointer(iplit)).Fscopeid + v6 = Int32FromInt32(PF_INET6) + family = v6 + (*(*Tsockaddr_in6)(unsafe.Pointer(bp + 116 + uintptr(nns)*28))).Fsin6_family = uint16(v6) + } + goto _5 + _5: + ; + nns++ + } + /* Get local address and open/bind a socket */ + fd = Xsocket(tls, family, Int32FromInt32(SOCK_DGRAM)|Int32FromInt32(SOCK_CLOEXEC)|Int32FromInt32(SOCK_NONBLOCK), 0) + /* Handle case where system lacks IPv6 support */ + if fd < 0 && family == int32(PF_INET6) && *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(EAFNOSUPPORT) { + i = 0 + for { + if !(i < nns && (*(*Taddress)(unsafe.Pointer(conf + uintptr(nns)*28))).Ffamily == int32(PF_INET6)) { + break + } + goto _7 + _7: + ; + i++ + } + if i == nns { + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 200)), uintptr(0)) + return -int32(1) + } + fd = Xsocket(tls, int32(PF_INET), Int32FromInt32(SOCK_DGRAM)|Int32FromInt32(SOCK_CLOEXEC)|Int32FromInt32(SOCK_NONBLOCK), 0) + family = int32(PF_INET) + sl = uint32(16) + } + /* Convert any IPv4 addresses in a mixed environment to v4-mapped */ + if fd >= 0 && family == int32(PF_INET6) { + *(*int32)(unsafe.Pointer(bp)) = 0 + Xsetsockopt(tls, fd, int32(IPPROTO_IPV6), int32(IPV6_V6ONLY), bp, uint32(4)) + i = 0 + for { + if !(i < nns) { + break + } + if int32((*(*[3]struct { + Fsin6 [0]Tsockaddr_in6 + Fsin Tsockaddr_in + F__ccgo_pad2 [12]byte + })(unsafe.Pointer(bp + 116)))[i].Fsin.Fsin_family) != int32(PF_INET) { + goto _8 + } + Xmemcpy(tls, bp+116+uintptr(i)*28+8+uintptr(12), bp+116+uintptr(i)*28+4, uint64(4)) + Xmemcpy(tls, bp+116+uintptr(i)*28+8, __ccgo_ts+1027, uint64(12)) + (*(*Tsockaddr_in6)(unsafe.Pointer(bp + 116 + uintptr(i)*28))).Fsin6_family = uint16(PF_INET6) + (*(*Tsockaddr_in6)(unsafe.Pointer(bp + 116 + uintptr(i)*28))).Fsin6_flowinfo = uint32(0) + (*(*Tsockaddr_in6)(unsafe.Pointer(bp + 116 + uintptr(i)*28))).Fsin6_scope_id = uint32(0) + goto _8 + _8: + ; + i++ + } + } + (*(*struct { + Fsin6 [0]Tsockaddr_in6 + Fsin Tsockaddr_in + F__ccgo_pad2 [12]byte + })(unsafe.Pointer(bp + 88))).Fsin.Fsin_family = uint16(family) + if fd < 0 || Xbind(tls, fd, bp+88, sl) < 0 { + if fd >= 0 { + Xclose(tls, fd) + } + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 200)), uintptr(0)) + return -int32(1) + } + /* Past this point, there are no errors. Each individual query will + * yield either no reply (indicated by zero length) or an answer + * packet which is up to the caller to interpret. */ + i = 0 + for { + if !(i < nqueries) { + break + } + (*(*Tpollfd)(unsafe.Add(unsafe.Pointer(pfd), i*8))).Ffd = -int32(1) + goto _9 + _9: + ; + i++ + } + (*(*Tpollfd)(unsafe.Add(unsafe.Pointer(pfd), nqueries*8))).Ffd = fd + (*(*Tpollfd)(unsafe.Add(unsafe.Pointer(pfd), nqueries*8))).Fevents = int16(POLLIN) + (*(*Tpollfd)(unsafe.Add(unsafe.Pointer(pfd), (nqueries+int32(1))*8))).Ffd = -int32(2) + __pthread_cleanup_push(tls, bp+208, __ccgo_fp(_cleanup), pfd) + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 200)), uintptr(0)) + Xmemset(tls, alens, 0, uint64(4)*uint64(nqueries)) + retry_interval = timeout / attempts + next = 0 + v10 = _mtime(tls) + t2 = v10 + t0 = v10 + t1 = t2 - uint64(retry_interval) + for { + if !(t2-t0 < uint64(timeout)) { + break + } + /* This is the loop exit condition: that all queries + * have an accepted answer. */ + i = 0 + for { + if !(i < nqueries && *(*int32)(unsafe.Pointer(alens + uintptr(i)*4)) > 0) { + break + } + goto _12 + _12: + ; + i++ + } + if i == nqueries { + break + } + if t2-t1 >= uint64(retry_interval) { + /* Query all configured namservers in parallel */ + i = 0 + for { + if !(i < nqueries) { + break + } + if !(*(*int32)(unsafe.Pointer(alens + uintptr(i)*4)) != 0) { + j = 0 + for { + if !(j < nns) { + break + } + Xsendto(tls, fd, *(*uintptr)(unsafe.Pointer(queries + uintptr(i)*8)), uint64(*(*int32)(unsafe.Pointer(qlens + uintptr(i)*4))), int32(MSG_NOSIGNAL), bp+116+uintptr(j)*28, sl) + goto _14 + _14: + ; + j++ + } + } + goto _13 + _13: + ; + i++ + } + t1 = t2 + servfail_retry = int32(2) * nqueries + } + /* Wait for a response, or until time to retry */ + if Xpoll(tls, pfd, uint64(nqueries+int32(1)), int32(t1+uint64(retry_interval)-t2)) <= 0 { + goto _11 + } + for next < nqueries { + *(*[1]Tiovec)(unsafe.Pointer(bp + 8)) = [1]Tiovec{ + 0: { + Fiov_base: *(*uintptr)(unsafe.Pointer(answers + uintptr(next)*8)), + Fiov_len: uint64(asize), + }, + } + *(*Tmsghdr)(unsafe.Pointer(bp + 232)) = Tmsghdr{ + Fmsg_name: bp + 88, + Fmsg_namelen: sl, + Fmsg_iov: bp + 8, + Fmsg_iovlen: int32(1), + } + rlen = int32(Xrecvmsg(tls, fd, bp+232, 0)) + if rlen < 0 { + break + } + /* Ignore non-identifiable packets */ + if rlen < int32(4) { + continue + } + /* Ignore replies from addresses we didn't send to */ + j = 0 + for { + if !(j < nns && Xmemcmp(tls, bp+116+uintptr(j)*28, bp+88, uint64(sl)) != 0) { + break + } + goto _15 + _15: + ; + j++ + } + if j == nns { + continue + } + /* Find which query this answer goes with, if any */ + i = next + for { + if !(i < nqueries && (int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(answers + uintptr(next)*8))))) != int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(queries + uintptr(i)*8))))) || int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(answers + uintptr(next)*8)) + 1))) != int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(queries + uintptr(i)*8)) + 1))))) { + break + } + goto _16 + _16: + ; + i++ + } + if i == nqueries { + continue + } + if *(*int32)(unsafe.Pointer(alens + uintptr(i)*4)) != 0 { + continue + } + /* Only accept positive or negative responses; + * retry immediately on server failure, and ignore + * all other codes such as refusal. */ + switch int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(answers + uintptr(next)*8)) + 3))) & Int32FromInt32(15) { + case 0: + fallthrough + case int32(3): + case int32(2): + if v18 = servfail_retry != 0; v18 { + v17 = servfail_retry + servfail_retry-- + } + if v18 && v17 != 0 { + Xsendto(tls, fd, *(*uintptr)(unsafe.Pointer(queries + uintptr(i)*8)), uint64(*(*int32)(unsafe.Pointer(qlens + uintptr(i)*4))), int32(MSG_NOSIGNAL), bp+116+uintptr(j)*28, sl) + } + fallthrough + default: + continue + } + /* Store answer in the right slot, or update next + * available temp slot if it's already in place. */ + *(*int32)(unsafe.Pointer(alens + uintptr(i)*4)) = rlen + if i == next { + for { + if !(next < nqueries && *(*int32)(unsafe.Pointer(alens + uintptr(next)*4)) != 0) { + break + } + goto _19 + _19: + ; + next++ + } + } else { + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(answers + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer(answers + uintptr(next)*8)), uint64(rlen)) + } + /* Ignore further UDP if all slots full or TCP-mode */ + if next == nqueries { + (*(*Tpollfd)(unsafe.Add(unsafe.Pointer(pfd), nqueries*8))).Fevents = 0 + } + /* If answer is truncated (TC bit), fallback to TCP */ + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(answers + uintptr(i)*8)) + 2)))&int32(2) != 0 || (*(*Tmsghdr)(unsafe.Pointer(bp + 232))).Fmsg_flags&int32(MSG_TRUNC) != 0 { + *(*int32)(unsafe.Pointer(alens + uintptr(i)*4)) = -int32(1) + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), uintptr(0)) + r = _start_tcp(tls, pfd+uintptr(i)*8, family, bp+116+uintptr(j)*28, sl, *(*uintptr)(unsafe.Pointer(queries + uintptr(i)*8)), *(*int32)(unsafe.Pointer(qlens + uintptr(i)*4))) + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 200)), uintptr(0)) + if r >= 0 { + *(*int32)(unsafe.Add(unsafe.Pointer(qpos), i*4)) = r + *(*int32)(unsafe.Add(unsafe.Pointer(apos), i*4)) = 0 + } + continue + } + } + i = 0 + for { + if !(i < nqueries) { + break + } + if int32((*(*Tpollfd)(unsafe.Add(unsafe.Pointer(pfd), i*8))).Frevents)&int32(POLLOUT) != 0 { + *(*[2]Tuint8_t)(unsafe.Pointer(bp + 52)) = [2]Tuint8_t{ + 0: uint8(*(*int32)(unsafe.Pointer(qlens + uintptr(i)*4)) >> int32(8)), + 1: uint8(*(*int32)(unsafe.Pointer(qlens + uintptr(i)*4))), + } + *(*[2]Tiovec)(unsafe.Pointer(bp + 24)) = [2]Tiovec{ + 0: { + Fiov_base: bp + 52, + Fiov_len: uint64(2), + }, + 1: { + Fiov_base: *(*uintptr)(unsafe.Pointer(queries + uintptr(i)*8)), + Fiov_len: uint64(*(*int32)(unsafe.Pointer(qlens + uintptr(i)*4))), + }, + } + *(*Tmsghdr)(unsafe.Pointer(bp + 288)) = Tmsghdr{ + Fmsg_iov: bp + 24, + Fmsg_iovlen: int32(2), + } + _step_mh(tls, bp+288, uint64(*(*int32)(unsafe.Add(unsafe.Pointer(qpos), i*4)))) + r = int32(Xsendmsg(tls, (*(*Tpollfd)(unsafe.Add(unsafe.Pointer(pfd), i*8))).Ffd, bp+288, int32(MSG_NOSIGNAL))) + if r < 0 { + goto out + } + *(*int32)(unsafe.Pointer(qpos + uintptr(i)*4)) += r + if *(*int32)(unsafe.Add(unsafe.Pointer(qpos), i*4)) == *(*int32)(unsafe.Pointer(qlens + uintptr(i)*4))+int32(2) { + (*(*Tpollfd)(unsafe.Add(unsafe.Pointer(pfd), i*8))).Fevents = int16(POLLIN) + } + } + goto _20 + _20: + ; + i++ + } + i = 0 + for { + if !(i < nqueries) { + break + } + if int32((*(*Tpollfd)(unsafe.Add(unsafe.Pointer(pfd), i*8))).Frevents)&int32(POLLIN) != 0 { + *(*[2]Tiovec)(unsafe.Pointer(bp + 56)) = [2]Tiovec{ + 0: { + Fiov_base: alen_buf + uintptr(i)*2, + Fiov_len: uint64(2), + }, + 1: { + Fiov_base: *(*uintptr)(unsafe.Pointer(answers + uintptr(i)*8)), + Fiov_len: uint64(asize), + }, + } + *(*Tmsghdr)(unsafe.Pointer(bp + 344)) = Tmsghdr{ + Fmsg_iov: bp + 56, + Fmsg_iovlen: int32(2), + } + _step_mh(tls, bp+344, uint64(*(*int32)(unsafe.Add(unsafe.Pointer(apos), i*4)))) + r = int32(Xrecvmsg(tls, (*(*Tpollfd)(unsafe.Add(unsafe.Pointer(pfd), i*8))).Ffd, bp+344, 0)) + if r <= 0 { + goto out + } + *(*int32)(unsafe.Pointer(apos + uintptr(i)*4)) += r + if *(*int32)(unsafe.Add(unsafe.Pointer(apos), i*4)) < int32(2) { + goto _21 + } + alen = int32(*(*uint8)(unsafe.Pointer(alen_buf + uintptr(i)*2)))*int32(256) + int32(*(*uint8)(unsafe.Pointer(alen_buf + uintptr(i)*2 + 1))) + if alen < int32(13) { + goto out + } + if *(*int32)(unsafe.Add(unsafe.Pointer(apos), i*4)) < alen+int32(2) && *(*int32)(unsafe.Add(unsafe.Pointer(apos), i*4)) < asize+int32(2) { + goto _21 + } + rcode = int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(answers + uintptr(i)*8)) + 3))) & int32(15) + if rcode != 0 && rcode != int32(3) { + goto out + } + /* Storing the length here commits the accepted answer. + * Immediately close TCP socket so as not to consume + * resources we no longer need. */ + *(*int32)(unsafe.Pointer(alens + uintptr(i)*4)) = alen + X__syscall1(tls, int64(SYS_close), int64((*(*Tpollfd)(unsafe.Add(unsafe.Pointer(pfd), i*8))).Ffd)) + (*(*Tpollfd)(unsafe.Add(unsafe.Pointer(pfd), i*8))).Ffd = -int32(1) + } + goto _21 + _21: + ; + i++ + } + goto _11 + _11: + ; + t2 = _mtime(tls) + } + goto out +out: + ; + __pthread_cleanup_pop(tls, bp+208, int32(1)) + /* Disregard any incomplete TCP results */ + i = 0 + for { + if !(i < nqueries) { + break + } + if *(*int32)(unsafe.Pointer(alens + uintptr(i)*4)) < 0 { + *(*int32)(unsafe.Pointer(alens + uintptr(i)*4)) = 0 + } + goto _22 + _22: + ; + i++ + } + return 0 +} + +func X__res_msend(tls *TLS, nqueries int32, queries uintptr, qlens uintptr, answers uintptr, alens uintptr, asize int32) (r int32) { + if __ccgo_strace { + trc("tls=%v nqueries=%v queries=%v qlens=%v answers=%v alens=%v asize=%v, (%v:)", tls, nqueries, queries, qlens, answers, alens, asize, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(112) + defer tls.Free(112) + var _ /* conf at bp+0 */ Tresolvconf + if X__get_resolv_conf(tls, bp, uintptr(0), uint64(0)) < 0 { + return -int32(1) + } + return X__res_msend_rc(tls, nqueries, queries, qlens, answers, alens, asize, bp) +} + +func X__res_send(tls *TLS, _msg uintptr, _msglen int32, _answer uintptr, _anslen int32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v _msg=%v _msglen=%v _answer=%v _anslen=%v, (%v:)", tls, _msg, _msglen, _answer, _anslen, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(544) + defer tls.Free(544) + *(*uintptr)(unsafe.Pointer(bp)) = _msg + *(*int32)(unsafe.Pointer(bp + 8)) = _msglen + *(*uintptr)(unsafe.Pointer(bp + 16)) = _answer + *(*int32)(unsafe.Pointer(bp + 24)) = _anslen + var r, v1, v2 int32 + var _ /* buf at bp+28 */ [512]uint8 + _, _, _ = r, v1, v2 + if *(*int32)(unsafe.Pointer(bp + 24)) < int32(512) { + r = X__res_send(tls, *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+28, int32(512)) + if r >= 0 { + if r < *(*int32)(unsafe.Pointer(bp + 24)) { + v1 = r + } else { + v1 = *(*int32)(unsafe.Pointer(bp + 24)) + } + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), bp+28, uint64(v1)) + } + return r + } + r = X__res_msend(tls, int32(1), bp, bp+8, bp+16, bp+24, *(*int32)(unsafe.Pointer(bp + 24))) + if r < 0 || !(*(*int32)(unsafe.Pointer(bp + 24)) != 0) { + v2 = -int32(1) + } else { + v2 = *(*int32)(unsafe.Pointer(bp + 24)) + } + return v2 +} + +func Xres_send(tls *TLS, _msg uintptr, _msglen int32, _answer uintptr, _anslen int32) (r int32) { + if __ccgo_strace { + trc("tls=%v _msg=%v _msglen=%v _answer=%v _anslen=%v, (%v:)", tls, _msg, _msglen, _answer, _anslen, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__res_send(tls, _msg, _msglen, _answer, _anslen) +} + +/* This is completely unused, and exists purely to satisfy broken apps. */ + +func X__res_state(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uintptr(unsafe.Pointer(&_res1)) +} + +var _res1 t__res_state + +func X__get_resolv_conf(tls *TLS, conf uintptr, search uintptr, search_sz Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v conf=%v search=%v search_sz=%v, (%v:)", tls, conf, search, search_sz, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(752) + defer tls.Free(752) + var c, nns, v1, v13, v14, v17, v18, v2, v21, v22, v26, v27, v8, v9 int32 + var f, p uintptr + var l Tsize_t + var x, x1, x2, v5, v6, v7 uint64 + var v11, v20, v24, v4 bool + var _ /* _buf at bp+256 */ [256]uint8 + var _ /* _f at bp+512 */ TFILE + var _ /* line at bp+0 */ [256]uint8 + var _ /* z at bp+744 */ uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, f, l, nns, p, x, x1, x2, v1, v11, v13, v14, v17, v18, v2, v20, v21, v22, v24, v26, v27, v4, v5, v6, v7, v8, v9 + nns = 0 + (*Tresolvconf)(unsafe.Pointer(conf)).Fndots = uint32(1) + (*Tresolvconf)(unsafe.Pointer(conf)).Ftimeout = uint32(5) + (*Tresolvconf)(unsafe.Pointer(conf)).Fattempts = uint32(2) + if search != 0 { + *(*uint8)(unsafe.Pointer(search)) = uint8(0) + } + f = X__fopen_rb_ca(tls, __ccgo_ts+1149, bp+512, bp+256, uint64(256)) + if !(f != 0) { + switch *(*int32)(unsafe.Pointer(X__errno_location(tls))) { + case int32(ENOENT): + fallthrough + case int32(ENOTDIR): + fallthrough + case int32(EACCES): + goto no_resolv_conf + default: + return -int32(1) + } + } + for Xfgets(tls, bp, int32(256), f) != 0 { + if !(Xstrchr(tls, bp, int32('\n')) != 0) && !((*TFILE)(unsafe.Pointer(f)).Fflags&Uint32FromInt32(F_EOF) != 0) { + for cond := true; cond; cond = c != int32('\n') && c != -int32(1) { + c = Xgetc(tls, f) + } + continue + } + if v4 = !(Xstrncmp(tls, bp, __ccgo_ts+1166, uint64(7)) != 0); v4 { + v1 = int32((*(*[256]uint8)(unsafe.Pointer(bp)))[int32(7)]) + v2 = BoolInt32(v1 == int32(' ') || uint32(v1)-uint32('\t') < uint32(5)) + goto _3 + _3: + } + if v4 && v2 != 0 { + p = Xstrstr(tls, bp, __ccgo_ts+1174) + if p != 0 && BoolInt32(uint32(*(*uint8)(unsafe.Pointer(p + 6)))-uint32('0') < uint32(10)) != 0 { + p += uintptr(6) + x = Xstrtoul(tls, p, bp+744, int32(10)) + if *(*uintptr)(unsafe.Pointer(bp + 744)) != p { + if x > uint64(15) { + v5 = uint64(15) + } else { + v5 = x + } + (*Tresolvconf)(unsafe.Pointer(conf)).Fndots = uint32(v5) + } + } + p = Xstrstr(tls, bp, __ccgo_ts+1181) + if p != 0 && BoolInt32(uint32(*(*uint8)(unsafe.Pointer(p + 9)))-uint32('0') < uint32(10)) != 0 { + p += uintptr(9) + x1 = Xstrtoul(tls, p, bp+744, int32(10)) + if *(*uintptr)(unsafe.Pointer(bp + 744)) != p { + if x1 > uint64(10) { + v6 = uint64(10) + } else { + v6 = x1 + } + (*Tresolvconf)(unsafe.Pointer(conf)).Fattempts = uint32(v6) + } + } + p = Xstrstr(tls, bp, __ccgo_ts+1191) + if p != 0 && (BoolInt32(uint32(*(*uint8)(unsafe.Pointer(p + 8)))-uint32('0') < uint32(10)) != 0 || int32(*(*uint8)(unsafe.Pointer(p + 8))) == int32('.')) { + p += uintptr(8) + x2 = Xstrtoul(tls, p, bp+744, int32(10)) + if *(*uintptr)(unsafe.Pointer(bp + 744)) != p { + if x2 > uint64(60) { + v7 = uint64(60) + } else { + v7 = x2 + } + (*Tresolvconf)(unsafe.Pointer(conf)).Ftimeout = uint32(v7) + } + } + continue + } + if v11 = !(Xstrncmp(tls, bp, __ccgo_ts+1200, uint64(10)) != 0); v11 { + v8 = int32((*(*[256]uint8)(unsafe.Pointer(bp)))[int32(10)]) + v9 = BoolInt32(v8 == int32(' ') || uint32(v8)-uint32('\t') < uint32(5)) + goto _10 + _10: + } + if v11 && v9 != 0 { + if nns >= int32(MAXNS) { + continue + } + p = bp + uintptr(11) + for { + v13 = int32(*(*uint8)(unsafe.Pointer(p))) + v14 = BoolInt32(v13 == int32(' ') || uint32(v13)-uint32('\t') < uint32(5)) + goto _15 + _15: + if !(v14 != 0) { + break + } + goto _12 + _12: + ; + p++ + } + *(*uintptr)(unsafe.Pointer(bp + 744)) = p + for { + if v20 = *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 744)))) != 0; v20 { + v17 = int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 744))))) + v18 = BoolInt32(v17 == int32(' ') || uint32(v17)-uint32('\t') < uint32(5)) + goto _19 + _19: + } + if !(v20 && !(v18 != 0)) { + break + } + goto _16 + _16: + ; + *(*uintptr)(unsafe.Pointer(bp + 744))++ + } + *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 744)))) = uint8(0) + if X__lookup_ipliteral(tls, conf+uintptr(nns)*28, p, PF_UNSPEC) > 0 { + nns++ + } + continue + } + if !(search != 0) { + continue + } + if v24 = Xstrncmp(tls, bp, __ccgo_ts+1211, uint64(6)) != 0 && Xstrncmp(tls, bp, __ccgo_ts+1218, uint64(6)) != 0; !v24 { + v21 = int32((*(*[256]uint8)(unsafe.Pointer(bp)))[int32(6)]) + v22 = BoolInt32(v21 == int32(' ') || uint32(v21)-uint32('\t') < uint32(5)) + goto _23 + _23: + } + if v24 || !(v22 != 0) { + continue + } + p = bp + uintptr(7) + for { + v26 = int32(*(*uint8)(unsafe.Pointer(p))) + v27 = BoolInt32(v26 == int32(' ') || uint32(v26)-uint32('\t') < uint32(5)) + goto _28 + _28: + if !(v27 != 0) { + break + } + goto _25 + _25: + ; + p++ + } + l = Xstrlen(tls, p) + /* This can never happen anyway with chosen buffer sizes. */ + if l >= search_sz { + continue + } + Xmemcpy(tls, search, p, l+uint64(1)) + } + X__fclose_ca(tls, f) + goto no_resolv_conf +no_resolv_conf: + ; + if !(nns != 0) { + X__lookup_ipliteral(tls, conf, __ccgo_ts+1225, PF_UNSPEC) + nns = int32(1) + } + (*Tresolvconf)(unsafe.Pointer(conf)).Fnns = uint32(nns) + return 0 +} + +func Xsend(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v buf=%v len1=%v flags=%v, (%v:)", tls, fd, buf, len1, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xsendto(tls, fd, buf, len1, flags, uintptr(0), uint32(0)) +} + +func Xsendmmsg(tls *TLS, fd int32, msgvec uintptr, vlen uint32, flags uint32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v fd=%v msgvec=%v vlen=%v flags=%v, (%v:)", tls, fd, msgvec, vlen, flags, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var i, v2 int32 + var r Tssize_t + _, _, _ = i, r, v2 + if vlen > uint32(IOV_MAX) { + vlen = uint32(IOV_MAX) + } /* This matches the kernel. */ + if !(vlen != 0) { + return 0 + } + i = 0 + for { + if !(uint32(i) < vlen) { + break + } + /* As an unfortunate inconsistency, the sendmmsg API uses + * unsigned int for the resulting msg_len, despite sendmsg + * returning ssize_t. However Linux limits the total bytes + * sent by sendmsg to INT_MAX, so the assignment is safe. */ + r = Xsendmsg(tls, fd, msgvec+uintptr(i)*64, int32(flags)) + if r < 0 { + goto error + } + (*(*Tmmsghdr)(unsafe.Pointer(msgvec + uintptr(i)*64))).Fmsg_len = uint32(r) + goto _1 + _1: + ; + i++ + } + goto error +error: + ; + if i != 0 { + v2 = i + } else { + v2 = -int32(1) + } + return v2 + return r1 +} + +func Xsendmsg(tls *TLS, fd int32, msg uintptr, flags int32) (r1 Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v msg=%v flags=%v, (%v:)", tls, fd, msg, flags, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(1120) + defer tls.Free(1120) + var c1, v3, v4 uintptr + var r, v12 int64 + var v1, v5 int32 + var v10, v11, v6, v7, v8, v9 Tsyscall_arg_t + var _ /* chbuf at bp+56 */ [66]Tcmsghdr + var _ /* h at bp+0 */ Tmsghdr + _, _, _, _, _, _, _, _, _, _, _, _, _ = c1, r, v1, v10, v11, v12, v3, v4, v5, v6, v7, v8, v9 + if msg != 0 { + *(*Tmsghdr)(unsafe.Pointer(bp)) = *(*Tmsghdr)(unsafe.Pointer(msg)) + v1 = Int32FromInt32(0) + (*(*Tmsghdr)(unsafe.Pointer(bp))).F__pad2 = v1 + (*(*Tmsghdr)(unsafe.Pointer(bp))).F__pad1 = v1 + msg = bp + if (*(*Tmsghdr)(unsafe.Pointer(bp))).Fmsg_controllen != 0 { + if uint64((*(*Tmsghdr)(unsafe.Pointer(bp))).Fmsg_controllen) > uint64(1056) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOMEM) + return int64(-int32(1)) + } + Xmemcpy(tls, bp+56, (*(*Tmsghdr)(unsafe.Pointer(bp))).Fmsg_control, uint64((*(*Tmsghdr)(unsafe.Pointer(bp))).Fmsg_controllen)) + (*(*Tmsghdr)(unsafe.Pointer(bp))).Fmsg_control = bp + 56 + if uint64((*Tmsghdr)(unsafe.Pointer(bp)).Fmsg_controllen) >= uint64(16) { + v3 = (*Tmsghdr)(unsafe.Pointer(bp)).Fmsg_control + } else { + v3 = UintptrFromInt32(0) + } + c1 = v3 + for { + if !(c1 != 0) { + break + } + (*Tcmsghdr)(unsafe.Pointer(c1)).F__pad1 = 0 + goto _2 + _2: + ; + if uint64((*Tcmsghdr)(unsafe.Pointer(c1)).Fcmsg_len) < uint64(16) || (uint64((*Tcmsghdr)(unsafe.Pointer(c1)).Fcmsg_len)+uint64(8)-uint64(1))&uint64(^int64(Uint64FromInt64(8)-Uint64FromInt32(1)))+uint64(16) >= uint64(int64((*Tmsghdr)(unsafe.Pointer(bp)).Fmsg_control+uintptr((*Tmsghdr)(unsafe.Pointer(bp)).Fmsg_controllen))-int64(c1)) { + v4 = uintptr(0) + } else { + v4 = c1 + uintptr((uint64((*Tcmsghdr)(unsafe.Pointer(c1)).Fcmsg_len)+Uint64FromInt64(8)-Uint64FromInt32(1))&uint64(^int64(Uint64FromInt64(8)-Uint64FromInt32(1)))) + } + c1 = v4 + } + } + } + v5 = int32(SYS_sendmsg) + _ = int32(__SC_sendmsg) + v6 = int64(fd) + v7 = int64(msg) + v8 = int64(flags) + v9 = int64(Int32FromInt32(0)) + v10 = int64(Int32FromInt32(0)) + v11 = int64(Int32FromInt32(0)) + if int32(1) != 0 { + r = ___syscall_cp(tls, int64(v5), v6, v7, v8, v9, v10, v11) + } else { + r = X__syscall6(tls, int64(v5), v6, v7, v8, v9, v10, v11) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v12 = r + goto _13 + } + v12 = r + goto _13 +_13: + return X__syscall_ret(tls, uint64(v12)) +} + +func Xsendto(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32, addr uintptr, alen Tsocklen_t) (r1 Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v buf=%v len1=%v flags=%v addr=%v alen=%v, (%v:)", tls, fd, buf, len1, flags, addr, alen, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, v8 int64 + var v1 int32 + var v2, v3, v4, v5, v6, v7 Tsyscall_arg_t + _, _, _, _, _, _, _, _, _ = r, v1, v2, v3, v4, v5, v6, v7, v8 + v1 = int32(SYS_sendto) + _ = int32(__SC_sendto) + v2 = int64(fd) + v3 = int64(buf) + v4 = int64(len1) + v5 = int64(flags) + v6 = int64(addr) + v7 = int64(alen) + if int32(1) != 0 { + r = ___syscall_cp(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } else { + r = X__syscall6(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v8 = r + goto _9 + } + v8 = r + goto _9 +_9: + return X__syscall_ret(tls, uint64(v8)) +} + +func Xendservent(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } +} + +func Xsetservent(tls *TLS, stayopen int32) { + if __ccgo_strace { + trc("tls=%v stayopen=%v, (%v:)", tls, stayopen, origin(2)) + } +} + +func Xgetservent(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uintptr(0) +} + +func Xsetsockopt(tls *TLS, fd int32, level int32, optname int32, optval uintptr, optlen Tsocklen_t) (r2 int32) { + if __ccgo_strace { + trc("tls=%v fd=%v level=%v optname=%v optval=%v optlen=%v, (%v:)", tls, fd, level, optname, optval, optlen, origin(2)) + defer func() { trc("-> %v", r2) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var r, v18, v27, v8 int64 + var r1, v1, v11, v20 int32 + var s Ttime_t + var tv uintptr + var us Tsuseconds_t + var v10 uint64 + var v12, v13, v14, v15, v16, v17, v2, v21, v22, v23, v24, v25, v26, v3, v4, v5, v6, v7 Tsyscall_arg_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = r, r1, s, tv, us, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v2, v20, v21, v22, v23, v24, v25, v26, v27, v3, v4, v5, v6, v7, v8 + v1 = int32(SYS_setsockopt) + _ = int32(__SC_setsockopt) + v2 = int64(fd) + v3 = int64(level) + v4 = int64(optname) + v5 = int64(optval) + v6 = int64(optlen) + v7 = int64(Int32FromInt32(0)) + if 0 != 0 { + r = ___syscall_cp(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } else { + r = X__syscall6(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v8 = r + goto _9 + } + v8 = r + goto _9 +_9: + r1 = int32(v8) + if r1 == -int32(ENOPROTOOPT) { + switch level { + case int32(SOL_SOCKET): + switch optname { + case int32(SO_RCVTIMEO): + fallthrough + case int32(SO_SNDTIMEO): + if true { + break + } + if uint64(optlen) < uint64(16) { + return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EINVAL)))) + } + tv = optval + s = (*Ttimeval)(unsafe.Pointer(tv)).Ftv_sec + us = (*Ttimeval)(unsafe.Pointer(tv)).Ftv_usec + if !!((uint64(s)+Uint64FromUint64(0x80000000))>>Int32FromInt32(32) != 0) { + return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EOPNOTSUPP)))) + } + if optname == int32(SO_RCVTIMEO) { + optname = int32(SO_RCVTIMEO_OLD) + } + if optname == int32(SO_SNDTIMEO) { + optname = int32(SO_SNDTIMEO_OLD) + } + if !((uint64(us)+Uint64FromUint64(0x80000000))>>Int32FromInt32(32) != 0) { + v10 = uint64(us) + } else { + v10 = uint64(0x7fffffff) + (0+uint64(us))>>int32(63) + } + *(*[2]int64)(unsafe.Pointer(bp)) = [2]int64{ + 0: s, + 1: int64(int32(v10)), + } + v11 = int32(SYS_setsockopt) + _ = int32(__SC_setsockopt) + v12 = int64(fd) + v13 = int64(level) + v14 = int64(optname) + v15 = int64(bp) + v16 = int64(Uint64FromInt32(2) * Uint64FromInt64(8)) + v17 = int64(Int32FromInt32(0)) + if 0 != 0 { + r = ___syscall_cp(tls, int64(v11), v12, v13, v14, v15, v16, v17) + } else { + r = X__syscall6(tls, int64(v11), v12, v13, v14, v15, v16, v17) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v18 = r + goto _19 + } + v18 = r + goto _19 + _19: + r1 = int32(v18) + case int32(SO_TIMESTAMP): + fallthrough + case int32(SO_TIMESTAMPNS): + if true { + break + } + if optname == int32(SO_TIMESTAMP) { + optname = int32(SO_TIMESTAMP_OLD) + } + if optname == int32(SO_TIMESTAMPNS) { + optname = int32(SO_TIMESTAMPNS_OLD) + } + v20 = int32(SYS_setsockopt) + _ = int32(__SC_setsockopt) + v21 = int64(fd) + v22 = int64(level) + v23 = int64(optname) + v24 = int64(optval) + v25 = int64(optlen) + v26 = int64(Int32FromInt32(0)) + if 0 != 0 { + r = ___syscall_cp(tls, int64(v20), v21, v22, v23, v24, v25, v26) + } else { + r = X__syscall6(tls, int64(v20), v21, v22, v23, v24, v25, v26) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v27 = r + goto _28 + } + v27 = r + goto _28 + _28: + r1 = int32(v27) + break + } + } + } + return int32(X__syscall_ret(tls, uint64(r1))) +} + +func Xshutdown(tls *TLS, fd int32, how int32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v fd=%v how=%v, (%v:)", tls, fd, how, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, v8 int64 + var v1 int32 + var v2, v3, v4, v5, v6, v7 Tsyscall_arg_t + _, _, _, _, _, _, _, _, _ = r, v1, v2, v3, v4, v5, v6, v7, v8 + v1 = int32(SYS_shutdown) + _ = int32(__SC_shutdown) + v2 = int64(fd) + v3 = int64(how) + v4 = int64(Int32FromInt32(0)) + v5 = int64(Int32FromInt32(0)) + v6 = int64(Int32FromInt32(0)) + v7 = int64(Int32FromInt32(0)) + if 0 != 0 { + r = ___syscall_cp(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } else { + r = X__syscall6(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v8 = r + goto _9 + } + v8 = r + goto _9 +_9: + return int32(X__syscall_ret(tls, uint64(v8))) +} + +func Xsockatmark(tls *TLS, s int32) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var _ /* ret at bp+0 */ int32 + if Xioctl(tls, s, int32(SIOCATMARK), VaList(bp+16, bp)) < 0 { + return -int32(1) + } + return *(*int32)(unsafe.Pointer(bp)) +} + +func Xsocket(tls *TLS, domain int32, type1 int32, protocol int32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v domain=%v type1=%v protocol=%v, (%v:)", tls, domain, type1, protocol, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, v17, v8 int64 + var s, v1, v10 int32 + var v11, v12, v13, v14, v15, v16, v2, v3, v4, v5, v6, v7 Tsyscall_arg_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = r, s, v1, v10, v11, v12, v13, v14, v15, v16, v17, v2, v3, v4, v5, v6, v7, v8 + v1 = int32(SYS_socket) + _ = int32(__SC_socket) + v2 = int64(domain) + v3 = int64(type1) + v4 = int64(protocol) + v5 = int64(Int32FromInt32(0)) + v6 = int64(Int32FromInt32(0)) + v7 = int64(Int32FromInt32(0)) + if 0 != 0 { + r = ___syscall_cp(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } else { + r = X__syscall6(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v8 = r + goto _9 + } + v8 = r + goto _9 +_9: + s = int32(v8) + if (s == -int32(EINVAL) || s == -int32(EPROTONOSUPPORT)) && type1&(Int32FromInt32(SOCK_CLOEXEC)|Int32FromInt32(SOCK_NONBLOCK)) != 0 { + v10 = int32(SYS_socket) + _ = int32(__SC_socket) + v11 = int64(domain) + v12 = int64(type1 & ^(Int32FromInt32(SOCK_CLOEXEC) | Int32FromInt32(SOCK_NONBLOCK))) + v13 = int64(protocol) + v14 = int64(Int32FromInt32(0)) + v15 = int64(Int32FromInt32(0)) + v16 = int64(Int32FromInt32(0)) + if 0 != 0 { + r = ___syscall_cp(tls, int64(v10), v11, v12, v13, v14, v15, v16) + } else { + r = X__syscall6(tls, int64(v10), v11, v12, v13, v14, v15, v16) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v17 = r + goto _18 + } + v17 = r + goto _18 + _18: + s = int32(v17) + if s < 0 { + return int32(X__syscall_ret(tls, uint64(s))) + } + if type1&int32(SOCK_CLOEXEC) != 0 { + X__syscall3(tls, int64(SYS_fcntl), int64(s), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) + } + if type1&int32(SOCK_NONBLOCK) != 0 { + X__syscall3(tls, int64(SYS_fcntl), int64(s), int64(Int32FromInt32(F_SETFL)), int64(Int32FromInt32(O_NONBLOCK))) + } + } + return int32(X__syscall_ret(tls, uint64(s))) +} + +func Xsocketpair(tls *TLS, domain int32, type1 int32, protocol int32, fd uintptr) (r2 int32) { + if __ccgo_strace { + trc("tls=%v domain=%v type1=%v protocol=%v fd=%v, (%v:)", tls, domain, type1, protocol, fd, origin(2)) + defer func() { trc("-> %v", r2) }() + } + var r, v17, v8 int64 + var r1, v1, v10 int32 + var v11, v12, v13, v14, v15, v16, v2, v3, v4, v5, v6, v7 Tsyscall_arg_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = r, r1, v1, v10, v11, v12, v13, v14, v15, v16, v17, v2, v3, v4, v5, v6, v7, v8 + v1 = int32(SYS_socketpair) + _ = int32(__SC_socketpair) + v2 = int64(domain) + v3 = int64(type1) + v4 = int64(protocol) + v5 = int64(fd) + v6 = int64(Int32FromInt32(0)) + v7 = int64(Int32FromInt32(0)) + if 0 != 0 { + r = ___syscall_cp(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } else { + r = X__syscall6(tls, int64(v1), v2, v3, v4, v5, v6, v7) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v8 = r + goto _9 + } + v8 = r + goto _9 +_9: + r1 = int32(X__syscall_ret(tls, uint64(v8))) + if r1 < 0 && (*(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(EINVAL) || *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(EPROTONOSUPPORT)) && type1&(Int32FromInt32(SOCK_CLOEXEC)|Int32FromInt32(SOCK_NONBLOCK)) != 0 { + v10 = int32(SYS_socketpair) + _ = int32(__SC_socketpair) + v11 = int64(domain) + v12 = int64(type1 & ^(Int32FromInt32(SOCK_CLOEXEC) | Int32FromInt32(SOCK_NONBLOCK))) + v13 = int64(protocol) + v14 = int64(fd) + v15 = int64(Int32FromInt32(0)) + v16 = int64(Int32FromInt32(0)) + if 0 != 0 { + r = ___syscall_cp(tls, int64(v10), v11, v12, v13, v14, v15, v16) + } else { + r = X__syscall6(tls, int64(v10), v11, v12, v13, v14, v15, v16) + } + if r != int64(-Int32FromInt32(ENOSYS)) { + v17 = r + goto _18 + } + v17 = r + goto _18 + _18: + r1 = int32(X__syscall_ret(tls, uint64(v17))) + if r1 < 0 { + return r1 + } + if type1&int32(SOCK_CLOEXEC) != 0 { + X__syscall3(tls, int64(SYS_fcntl), int64(*(*int32)(unsafe.Pointer(fd))), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) + X__syscall3(tls, int64(SYS_fcntl), int64(*(*int32)(unsafe.Pointer(fd + 1*4))), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) + } + if type1&int32(SOCK_NONBLOCK) != 0 { + X__syscall3(tls, int64(SYS_fcntl), int64(*(*int32)(unsafe.Pointer(fd))), int64(Int32FromInt32(F_SETFL)), int64(Int32FromInt32(O_NONBLOCK))) + X__syscall3(tls, int64(SYS_fcntl), int64(*(*int32)(unsafe.Pointer(fd + 1*4))), int64(Int32FromInt32(F_SETFL)), int64(Int32FromInt32(O_NONBLOCK))) + } + } + return r1 +} + +const SHADOW = "/etc/shadow" + +type Tgroup = struct { + Fgr_name uintptr + Fgr_passwd uintptr + Fgr_gid Tgid_t + Fgr_mem uintptr +} + +type Tspwd = struct { + Fsp_namp uintptr + Fsp_pwdp uintptr + Fsp_lstchg int64 + Fsp_min int64 + Fsp_max int64 + Fsp_warn int64 + Fsp_inact int64 + Fsp_expire int64 + Fsp_flag uint64 +} + +func Xfgetgrent(tls *TLS, f uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var _ /* nmem at bp+16 */ Tsize_t + var _ /* res at bp+0 */ uintptr + var _ /* size at bp+8 */ Tsize_t + *(*Tsize_t)(unsafe.Pointer(bp + 8)) = uint64(0) + *(*Tsize_t)(unsafe.Pointer(bp + 16)) = uint64(0) + X__getgrent_a(tls, f, uintptr(unsafe.Pointer(&_gr)), uintptr(unsafe.Pointer(&_line1)), bp+8, uintptr(unsafe.Pointer(&_mem)), bp+16, bp) + return *(*uintptr)(unsafe.Pointer(bp)) +} + +var _line1 uintptr + +var _mem uintptr + +var _gr Tgroup + +func Xfgetpwent(tls *TLS, f uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* res at bp+8 */ uintptr + var _ /* size at bp+0 */ Tsize_t + *(*Tsize_t)(unsafe.Pointer(bp)) = uint64(0) + X__getpwent_a(tls, f, uintptr(unsafe.Pointer(&_pw)), uintptr(unsafe.Pointer(&_line2)), bp, bp+8) + return *(*uintptr)(unsafe.Pointer(bp + 8)) +} + +var _line2 uintptr + +var _pw Tpasswd + +const GETGRBYGID = 3 +const GETGRBYNAME = 2 +const GETINITGR = 15 +const GETPWBYNAME = 0 +const GETPWBYUID = 1 +const GRFOUND = 1 +const GRGID = 4 +const GRMEMCNT = 5 +const GRNAMELEN = 2 +const GRPASSWDLEN = 3 +const GRVERSION = 0 +const GR_LEN = 6 +const INITGRFOUND = 1 +const INITGRNGRPS = 2 +const INITGRVERSION = 0 +const INITGR_LEN = 3 +const NSCDVERSION = 2 +const PWDIRLEN = 7 +const PWFOUND = 1 +const PWGECOSLEN = 6 +const PWGID = 5 +const PWNAMELEN = 2 +const PWPASSWDLEN = 3 +const PWSHELLLEN = 8 +const PWUID = 4 +const PWVERSION = 0 +const PW_LEN = 9 +const REQKEYLEN = 2 +const REQTYPE = 1 +const REQVERSION = 0 +const REQ_LEN = 3 + +func _itoa1(tls *TLS, p uintptr, x Tuint32_t) (r uintptr) { + var v1, v2 uintptr + _, _ = v1, v2 + // number of digits in a uint32_t + NUL + p += uintptr(11) + p-- + v1 = p + *(*uint8)(unsafe.Pointer(v1)) = uint8(0) + for cond := true; cond; cond = x != 0 { + p-- + v2 = p + *(*uint8)(unsafe.Pointer(v2)) = uint8(uint32('0') + x%uint32(10)) + x /= uint32(10) + } + return p +} + +func X__getgr_a(tls *TLS, name uintptr, gid Tgid_t, gr uintptr, buf uintptr, size uintptr, mem uintptr, nmem uintptr, res uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v name=%v gid=%v gr=%v buf=%v size=%v mem=%v nmem=%v res=%v, (%v:)", tls, name, gid, gr, buf, size, mem, nmem, res, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(48) + defer tls.Free(48) + var f, key, ptr, tmp, tmp1 uintptr + var grlist_len, len1 Tsize_t + var i, req, v10 Tint32_t + var rv, v1, v2, v4, v8 int32 + var v5, v6 Tuint32_t + var _ /* cs at bp+0 */ int32 + var _ /* gidbuf at bp+28 */ [11]uint8 + var _ /* groupbuf at bp+4 */ [6]Tint32_t + var _ /* name_len at bp+44 */ Tuint32_t + var _ /* swap at bp+40 */ int32 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = f, grlist_len, i, key, len1, ptr, req, rv, tmp, tmp1, v1, v10, v2, v4, v5, v6, v8 + rv = 0 + *(*uintptr)(unsafe.Pointer(res)) = uintptr(0) + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp) + f = Xfopen(tls, __ccgo_ts+1235, __ccgo_ts+315) + if !(f != 0) { + rv = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + goto done + } + for { + v1 = X__getgrent_a(tls, f, gr, buf, size, mem, nmem, res) + rv = v1 + if !(!(v1 != 0) && *(*uintptr)(unsafe.Pointer(res)) != 0) { + break + } + if name != 0 && !(Xstrcmp(tls, name, (*Tgroup)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(res)))).Fgr_name) != 0) || !(name != 0) && (*Tgroup)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(res)))).Fgr_gid == gid { + break + } + } + Xfclose(tls, f) + if !(*(*uintptr)(unsafe.Pointer(res)) != 0) && (rv == 0 || rv == int32(ENOENT) || rv == int32(ENOTDIR)) { + if name != 0 { + v2 = int32(GETGRBYNAME) + } else { + v2 = int32(GETGRBYGID) + } + req = v2 + *(*[6]Tint32_t)(unsafe.Pointer(bp + 4)) = [6]Tint32_t{} + len1 = uint64(0) + grlist_len = uint64(0) + *(*[11]uint8)(unsafe.Pointer(bp + 28)) = [11]uint8{} + *(*int32)(unsafe.Pointer(bp + 40)) = 0 + if name != 0 { + key = name + } else { + if gid < uint32(0) || gid > uint32(0xffffffff) { + rv = 0 + goto done + } + key = _itoa1(tls, bp+28, gid) + } + f = X__nscd_query(tls, req, key, bp+4, uint64(24), bp+40) + if !(f != 0) { + rv = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + goto done + } + if !((*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRFOUND)] != 0) { + rv = 0 + goto cleanup_f + } + if !((*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRNAMELEN)] != 0) || !((*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRPASSWDLEN)] != 0) { + rv = int32(EIO) + goto cleanup_f + } + if uint64((*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRNAMELEN)]) > uint64(0xffffffffffffffff)-uint64((*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRPASSWDLEN)]) { + rv = int32(ENOMEM) + goto cleanup_f + } + len1 = uint64((*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRNAMELEN)] + (*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRPASSWDLEN)]) + i = 0 + for { + if !(i < (*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRMEMCNT)]) { + break + } + if Xfread(tls, bp+44, uint64(4), uint64(1), f) < uint64(1) { + if Xferror(tls, f) != 0 { + v4 = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + } else { + v4 = int32(EIO) + } + rv = v4 + goto cleanup_f + } + if *(*int32)(unsafe.Pointer(bp + 40)) != 0 { + v5 = *(*Tuint32_t)(unsafe.Pointer(bp + 44)) + v6 = v5>>int32(24) | v5>>int32(8)&uint32(0xff00) | v5< uint64(0xffffffffffffffff)-grlist_len || uint64(*(*Tuint32_t)(unsafe.Pointer(bp + 44))) > uint64(0xffffffffffffffff)-len1 { + rv = int32(ENOMEM) + goto cleanup_f + } + len1 += uint64(*(*Tuint32_t)(unsafe.Pointer(bp + 44))) + grlist_len += uint64(*(*Tuint32_t)(unsafe.Pointer(bp + 44))) + goto _3 + _3: + ; + i++ + } + if len1 > *(*Tsize_t)(unsafe.Pointer(size)) || !(*(*uintptr)(unsafe.Pointer(buf)) != 0) { + tmp = Xrealloc(tls, *(*uintptr)(unsafe.Pointer(buf)), len1) + if !(tmp != 0) { + rv = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + goto cleanup_f + } + *(*uintptr)(unsafe.Pointer(buf)) = tmp + *(*Tsize_t)(unsafe.Pointer(size)) = len1 + } + if !(Xfread(tls, *(*uintptr)(unsafe.Pointer(buf)), len1, uint64(1), f) != 0) { + if Xferror(tls, f) != 0 { + v8 = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + } else { + v8 = int32(EIO) + } + rv = v8 + goto cleanup_f + } + if uint64((*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRMEMCNT)]+int32(1)) > *(*Tsize_t)(unsafe.Pointer(nmem)) { + if uint64((*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRMEMCNT)]+int32(1)) > Uint64FromUint64(0xffffffffffffffff)/Uint64FromInt64(8) { + rv = int32(ENOMEM) + goto cleanup_f + } + tmp1 = Xrealloc(tls, *(*uintptr)(unsafe.Pointer(mem)), uint64((*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRMEMCNT)]+Int32FromInt32(1))*uint64(8)) + if !(tmp1 != 0) { + rv = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + goto cleanup_f + } + *(*uintptr)(unsafe.Pointer(mem)) = tmp1 + *(*Tsize_t)(unsafe.Pointer(nmem)) = uint64((*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRMEMCNT)] + int32(1)) + } + if (*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRMEMCNT)] != 0 { + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(mem)))) = *(*uintptr)(unsafe.Pointer(buf)) + uintptr((*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRNAMELEN)]) + uintptr((*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRPASSWDLEN)]) + ptr = *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(mem)))) + i = Int32FromInt32(0) + for { + if !(ptr != *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(mem))))+uintptr(grlist_len)) { + break + } + if !(*(*uint8)(unsafe.Pointer(ptr)) != 0) { + i++ + v10 = i + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(mem)) + uintptr(v10)*8)) = ptr + uintptr(1) + } + goto _9 + _9: + ; + ptr++ + } + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(mem)) + uintptr(i)*8)) = uintptr(0) + if i != (*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRMEMCNT)] { + rv = int32(EIO) + goto cleanup_f + } + } else { + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(mem)))) = uintptr(0) + } + (*Tgroup)(unsafe.Pointer(gr)).Fgr_name = *(*uintptr)(unsafe.Pointer(buf)) + (*Tgroup)(unsafe.Pointer(gr)).Fgr_passwd = (*Tgroup)(unsafe.Pointer(gr)).Fgr_name + uintptr((*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRNAMELEN)]) + (*Tgroup)(unsafe.Pointer(gr)).Fgr_gid = uint32((*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRGID)]) + (*Tgroup)(unsafe.Pointer(gr)).Fgr_mem = *(*uintptr)(unsafe.Pointer(mem)) + if *(*uint8)(unsafe.Pointer((*Tgroup)(unsafe.Pointer(gr)).Fgr_passwd + uintptr(-Int32FromInt32(1)))) != 0 || *(*uint8)(unsafe.Pointer((*Tgroup)(unsafe.Pointer(gr)).Fgr_passwd + uintptr((*(*[6]Tint32_t)(unsafe.Pointer(bp + 4)))[int32(GRPASSWDLEN)]-int32(1)))) != 0 { + rv = int32(EIO) + goto cleanup_f + } + if name != 0 && Xstrcmp(tls, name, (*Tgroup)(unsafe.Pointer(gr)).Fgr_name) != 0 || !(name != 0) && gid != (*Tgroup)(unsafe.Pointer(gr)).Fgr_gid { + rv = int32(EIO) + goto cleanup_f + } + *(*uintptr)(unsafe.Pointer(res)) = gr + goto cleanup_f + cleanup_f: + ; + Xfclose(tls, f) + goto done + } + goto done +done: + ; + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) + if rv != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = rv + } + return rv +} + +func _getgr_r(tls *TLS, name uintptr, gid Tgid_t, gr uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var i Tsize_t + var rv int32 + var _ /* cs at bp+32 */ int32 + var _ /* len at bp+8 */ Tsize_t + var _ /* line at bp+0 */ uintptr + var _ /* mem at bp+16 */ uintptr + var _ /* nmem at bp+24 */ Tsize_t + _, _ = i, rv + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) + *(*Tsize_t)(unsafe.Pointer(bp + 8)) = uint64(0) + *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0) + *(*Tsize_t)(unsafe.Pointer(bp + 24)) = uint64(0) + rv = 0 + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp+32) + rv = X__getgr_a(tls, name, gid, gr, bp, bp+8, bp+16, bp+24, res) + if *(*uintptr)(unsafe.Pointer(res)) != 0 && size < *(*Tsize_t)(unsafe.Pointer(bp + 8))+(*(*Tsize_t)(unsafe.Pointer(bp + 24))+uint64(1))*uint64(8)+uint64(32) { + *(*uintptr)(unsafe.Pointer(res)) = uintptr(0) + rv = int32(ERANGE) + } + if *(*uintptr)(unsafe.Pointer(res)) != 0 { + buf += uintptr((uint64(16) - uint64(buf)) % uint64(16)) + (*Tgroup)(unsafe.Pointer(gr)).Fgr_mem = buf + buf += uintptr((*(*Tsize_t)(unsafe.Pointer(bp + 24)) + uint64(1)) * uint64(8)) + Xmemcpy(tls, buf, *(*uintptr)(unsafe.Pointer(bp)), *(*Tsize_t)(unsafe.Pointer(bp + 8))) + (*Tgroup)(unsafe.Pointer(gr)).Fgr_name = uintptr(int64((*Tgroup)(unsafe.Pointer(gr)).Fgr_name)-int64(*(*uintptr)(unsafe.Pointer(bp)))) + buf + (*Tgroup)(unsafe.Pointer(gr)).Fgr_passwd = uintptr(int64((*Tgroup)(unsafe.Pointer(gr)).Fgr_passwd)-int64(*(*uintptr)(unsafe.Pointer(bp)))) + buf + i = uint64(0) + for { + if !(*(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)) + uintptr(i)*8)) != 0) { + break + } + *(*uintptr)(unsafe.Pointer((*Tgroup)(unsafe.Pointer(gr)).Fgr_mem + uintptr(i)*8)) = uintptr(int64(*(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)) + uintptr(i)*8)))-int64(*(*uintptr)(unsafe.Pointer(bp)))) + buf + goto _1 + _1: + ; + i++ + } + *(*uintptr)(unsafe.Pointer((*Tgroup)(unsafe.Pointer(gr)).Fgr_mem + uintptr(i)*8)) = uintptr(0) + } + Xfree(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) + Xfree(tls, *(*uintptr)(unsafe.Pointer(bp))) + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 32)), uintptr(0)) + if rv != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = rv + } + return rv +} + +func Xgetgrnam_r(tls *TLS, name uintptr, gr uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v name=%v gr=%v buf=%v size=%v res=%v, (%v:)", tls, name, gr, buf, size, res, origin(2)) + defer func() { trc("-> %v", r) }() + } + return _getgr_r(tls, name, uint32(0), gr, buf, size, res) +} + +func Xgetgrgid_r(tls *TLS, gid Tgid_t, gr uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v gid=%v gr=%v buf=%v size=%v res=%v, (%v:)", tls, gid, gr, buf, size, res, origin(2)) + defer func() { trc("-> %v", r) }() + } + return _getgr_r(tls, uintptr(0), gid, gr, buf, size, res) +} + +var _f1 uintptr +var _line3 uintptr +var _mem1 uintptr +var _gr1 Tgroup + +func Xsetgrent(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + if _f1 != 0 { + Xfclose(tls, _f1) + } + _f1 = uintptr(0) +} + +func Xgetgrent(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var _ /* nmem at bp+16 */ Tsize_t + var _ /* res at bp+0 */ uintptr + var _ /* size at bp+8 */ Tsize_t + *(*Tsize_t)(unsafe.Pointer(bp + 8)) = uint64(0) + *(*Tsize_t)(unsafe.Pointer(bp + 16)) = uint64(0) + if !(_f1 != 0) { + _f1 = Xfopen(tls, __ccgo_ts+1235, __ccgo_ts+315) + } + if !(_f1 != 0) { + return uintptr(0) + } + X__getgrent_a(tls, _f1, uintptr(unsafe.Pointer(&_gr1)), uintptr(unsafe.Pointer(&_line3)), bp+8, uintptr(unsafe.Pointer(&_mem1)), bp+16, bp) + return *(*uintptr)(unsafe.Pointer(bp)) +} + +func Xgetgrgid(tls *TLS, gid Tgid_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v gid=%v, (%v:)", tls, gid, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var _ /* nmem at bp+16 */ Tsize_t + var _ /* res at bp+0 */ uintptr + var _ /* size at bp+8 */ Tsize_t + *(*Tsize_t)(unsafe.Pointer(bp + 8)) = uint64(0) + *(*Tsize_t)(unsafe.Pointer(bp + 16)) = uint64(0) + X__getgr_a(tls, uintptr(0), gid, uintptr(unsafe.Pointer(&_gr1)), uintptr(unsafe.Pointer(&_line3)), bp+8, uintptr(unsafe.Pointer(&_mem1)), bp+16, bp) + return *(*uintptr)(unsafe.Pointer(bp)) +} + +func Xgetgrnam(tls *TLS, name uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v name=%v, (%v:)", tls, name, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var _ /* nmem at bp+16 */ Tsize_t + var _ /* res at bp+0 */ uintptr + var _ /* size at bp+8 */ Tsize_t + *(*Tsize_t)(unsafe.Pointer(bp + 8)) = uint64(0) + *(*Tsize_t)(unsafe.Pointer(bp + 16)) = uint64(0) + X__getgr_a(tls, name, uint32(0), uintptr(unsafe.Pointer(&_gr1)), uintptr(unsafe.Pointer(&_line3)), bp+8, uintptr(unsafe.Pointer(&_mem1)), bp+16, bp) + return *(*uintptr)(unsafe.Pointer(bp)) +} + +func Xendgrent(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + Xsetgrent(tls) +} + +func _atou(tls *TLS, s uintptr) (r uint32) { + var x uint32 + _ = x + x = uint32(0) + for { + if !(uint32(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s)))))-int32('0')) < uint32(10)) { + break + } + x = uint32(10)*x + uint32(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s)))))-Int32FromUint8('0')) + goto _1 + _1: + ; + *(*uintptr)(unsafe.Pointer(s))++ + } + return x +} + +func X__getgrent_a(tls *TLS, f uintptr, gr uintptr, line uintptr, size uintptr, mem uintptr, nmem uintptr, res uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v gr=%v line=%v size=%v mem=%v nmem=%v res=%v, (%v:)", tls, f, gr, line, size, mem, nmem, res, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var i, v13, v14 Tsize_t + var l, v2 Tssize_t + var mems, v12, v4, v5, v6, v7, v8, v9 uintptr + var rv, v3 int32 + var _ /* cs at bp+8 */ int32 + var _ /* s at bp+0 */ uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = i, l, mems, rv, v12, v13, v14, v2, v3, v4, v5, v6, v7, v8, v9 + rv = 0 + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp+8) + for { + v2 = Xgetline(tls, line, size, f) + l = v2 + if v2 < 0 { + if Xferror(tls, f) != 0 { + v3 = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + } else { + v3 = 0 + } + rv = v3 + Xfree(tls, *(*uintptr)(unsafe.Pointer(line))) + *(*uintptr)(unsafe.Pointer(line)) = uintptr(0) + gr = uintptr(0) + goto end + } + *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(line)) + uintptr(l-int64(1)))) = uint8(0) + *(*uintptr)(unsafe.Pointer(bp)) = *(*uintptr)(unsafe.Pointer(line)) + v4 = *(*uintptr)(unsafe.Pointer(bp)) + *(*uintptr)(unsafe.Pointer(bp))++ + (*Tgroup)(unsafe.Pointer(gr)).Fgr_name = v4 + v5 = Xstrchr(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(':')) + *(*uintptr)(unsafe.Pointer(bp)) = v5 + if !(v5 != 0) { + goto _1 + } + v6 = *(*uintptr)(unsafe.Pointer(bp)) + *(*uintptr)(unsafe.Pointer(bp))++ + *(*uint8)(unsafe.Pointer(v6)) = uint8(0) + (*Tgroup)(unsafe.Pointer(gr)).Fgr_passwd = *(*uintptr)(unsafe.Pointer(bp)) + v7 = Xstrchr(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(':')) + *(*uintptr)(unsafe.Pointer(bp)) = v7 + if !(v7 != 0) { + goto _1 + } + v8 = *(*uintptr)(unsafe.Pointer(bp)) + *(*uintptr)(unsafe.Pointer(bp))++ + *(*uint8)(unsafe.Pointer(v8)) = uint8(0) + (*Tgroup)(unsafe.Pointer(gr)).Fgr_gid = _atou(tls, bp) + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != int32(':') { + goto _1 + } + v9 = *(*uintptr)(unsafe.Pointer(bp)) + *(*uintptr)(unsafe.Pointer(bp))++ + *(*uint8)(unsafe.Pointer(v9)) = uint8(0) + mems = *(*uintptr)(unsafe.Pointer(bp)) + break + goto _1 + _1: + } + *(*Tsize_t)(unsafe.Pointer(nmem)) = BoolUint64(!!(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) != 0)) + for { + if !(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) != 0) { + break + } + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) == int32(',') { + *(*Tsize_t)(unsafe.Pointer(nmem))++ + } + goto _10 + _10: + ; + *(*uintptr)(unsafe.Pointer(bp))++ + } + Xfree(tls, *(*uintptr)(unsafe.Pointer(mem))) + *(*uintptr)(unsafe.Pointer(mem)) = Xcalloc(tls, uint64(8), *(*Tsize_t)(unsafe.Pointer(nmem))+uint64(1)) + if !(*(*uintptr)(unsafe.Pointer(mem)) != 0) { + rv = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + Xfree(tls, *(*uintptr)(unsafe.Pointer(line))) + *(*uintptr)(unsafe.Pointer(line)) = uintptr(0) + gr = uintptr(0) + goto end + } + if *(*uint8)(unsafe.Pointer(mems)) != 0 { + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(mem)))) = mems + *(*uintptr)(unsafe.Pointer(bp)) = mems + i = Uint64FromInt32(0) + for { + if !(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) != 0) { + break + } + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) == int32(',') { + v12 = *(*uintptr)(unsafe.Pointer(bp)) + *(*uintptr)(unsafe.Pointer(bp))++ + *(*uint8)(unsafe.Pointer(v12)) = uint8(0) + i++ + v13 = i + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(mem)) + uintptr(v13)*8)) = *(*uintptr)(unsafe.Pointer(bp)) + } + goto _11 + _11: + ; + *(*uintptr)(unsafe.Pointer(bp))++ + } + i++ + v14 = i + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(mem)) + uintptr(v14)*8)) = uintptr(0) + } else { + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(mem)))) = uintptr(0) + } + (*Tgroup)(unsafe.Pointer(gr)).Fgr_mem = *(*uintptr)(unsafe.Pointer(mem)) + goto end +end: + ; + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 8)), uintptr(0)) + *(*uintptr)(unsafe.Pointer(res)) = gr + if rv != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = rv + } + return rv +} + +func Xgetgrouplist(tls *TLS, user uintptr, gid Tgid_t, groups uintptr, ngroups uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v user=%v gid=%v groups=%v ngroups=%v, (%v:)", tls, user, gid, groups, ngroups, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(96) + defer tls.Free(96) + var f, nscdbuf, v1, v10, v13 uintptr + var i, n, v12, v9 Tssize_t + var nbytes Tsize_t + var nlim, ret, rv, v6 int32 + var v14 int64 + var v3, v4 Tuint32_t + var _ /* buf at bp+56 */ uintptr + var _ /* gr at bp+0 */ Tgroup + var _ /* mem at bp+64 */ uintptr + var _ /* nmem at bp+72 */ Tsize_t + var _ /* res at bp+32 */ uintptr + var _ /* resp at bp+44 */ [3]Tint32_t + var _ /* size at bp+80 */ Tsize_t + var _ /* swap at bp+40 */ int32 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = f, i, n, nbytes, nlim, nscdbuf, ret, rv, v1, v10, v12, v13, v14, v3, v4, v6, v9 + ret = -int32(1) + n = int64(1) + *(*int32)(unsafe.Pointer(bp + 40)) = 0 + nscdbuf = uintptr(0) + *(*uintptr)(unsafe.Pointer(bp + 56)) = uintptr(0) + *(*uintptr)(unsafe.Pointer(bp + 64)) = uintptr(0) + *(*Tsize_t)(unsafe.Pointer(bp + 72)) = uint64(0) + nlim = *(*int32)(unsafe.Pointer(ngroups)) + if nlim >= int32(1) { + v1 = groups + groups += 4 + *(*Tgid_t)(unsafe.Pointer(v1)) = gid + } + f = X__nscd_query(tls, int32(GETINITGR), user, bp+44, uint64(12), bp+40) + if !(f != 0) { + goto cleanup + } + if (*(*[3]Tint32_t)(unsafe.Pointer(bp + 44)))[int32(INITGRFOUND)] != 0 { + nscdbuf = Xcalloc(tls, uint64((*(*[3]Tint32_t)(unsafe.Pointer(bp + 44)))[int32(INITGRNGRPS)]), uint64(4)) + if !(nscdbuf != 0) { + goto cleanup + } + nbytes = uint64(4) * uint64((*(*[3]Tint32_t)(unsafe.Pointer(bp + 44)))[int32(INITGRNGRPS)]) + if nbytes != 0 && !(Xfread(tls, nscdbuf, nbytes, uint64(1), f) != 0) { + if !(Xferror(tls, f) != 0) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EIO) + } + goto cleanup + } + if *(*int32)(unsafe.Pointer(bp + 40)) != 0 { + i = 0 + for { + if !(i < int64((*(*[3]Tint32_t)(unsafe.Pointer(bp + 44)))[int32(INITGRNGRPS)])) { + break + } + v3 = *(*Tuint32_t)(unsafe.Pointer(nscdbuf + uintptr(i)*4)) + v4 = v3>>int32(24) | v3>>int32(8)&uint32(0xff00) | v3< int64(nlim) { + v14 = int64(-int32(1)) + } else { + v14 = n + } + ret = int32(v14) + *(*int32)(unsafe.Pointer(ngroups)) = int32(n) + goto cleanup +cleanup: + ; + if f != 0 { + Xfclose(tls, f) + } + Xfree(tls, nscdbuf) + Xfree(tls, *(*uintptr)(unsafe.Pointer(bp + 56))) + Xfree(tls, *(*uintptr)(unsafe.Pointer(bp + 64))) + return ret +} + +func _itoa2(tls *TLS, p uintptr, x Tuint32_t) (r uintptr) { + var v1, v2 uintptr + _, _ = v1, v2 + // number of digits in a uint32_t + NUL + p += uintptr(11) + p-- + v1 = p + *(*uint8)(unsafe.Pointer(v1)) = uint8(0) + for cond := true; cond; cond = x != 0 { + p-- + v2 = p + *(*uint8)(unsafe.Pointer(v2)) = uint8(uint32('0') + x%uint32(10)) + x /= uint32(10) + } + return p +} + +func X__getpw_a(tls *TLS, name uintptr, uid Tuid_t, pw uintptr, buf uintptr, size uintptr, res uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v name=%v uid=%v pw=%v buf=%v size=%v res=%v, (%v:)", tls, name, uid, pw, buf, size, res, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(64) + defer tls.Free(64) + var f, key, tmp uintptr + var len1 Tsize_t + var req Tint32_t + var rv, v1, v2, v3 int32 + var _ /* cs at bp+4 */ int32 + var _ /* passwdbuf at bp+8 */ [9]Tint32_t + var _ /* uidbuf at bp+44 */ [11]uint8 + _, _, _, _, _, _, _, _, _ = f, key, len1, req, rv, tmp, v1, v2, v3 + rv = 0 + *(*uintptr)(unsafe.Pointer(res)) = uintptr(0) + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp+4) + f = Xfopen(tls, __ccgo_ts+1246, __ccgo_ts+315) + if !(f != 0) { + rv = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + goto done + } + for { + v1 = X__getpwent_a(tls, f, pw, buf, size, res) + rv = v1 + if !(!(v1 != 0) && *(*uintptr)(unsafe.Pointer(res)) != 0) { + break + } + if name != 0 && !(Xstrcmp(tls, name, (*Tpasswd)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(res)))).Fpw_name) != 0) || !(name != 0) && (*Tpasswd)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(res)))).Fpw_uid == uid { + break + } + } + Xfclose(tls, f) + if !(*(*uintptr)(unsafe.Pointer(res)) != 0) && (rv == 0 || rv == int32(ENOENT) || rv == int32(ENOTDIR)) { + if name != 0 { + v2 = GETPWBYNAME + } else { + v2 = int32(GETPWBYUID) + } + req = v2 + *(*[9]Tint32_t)(unsafe.Pointer(bp + 8)) = [9]Tint32_t{} + len1 = uint64(0) + *(*[11]uint8)(unsafe.Pointer(bp + 44)) = [11]uint8{} + if name != 0 { + key = name + } else { + /* uid outside of this range can't be queried with the + * nscd interface, but might happen if uid_t ever + * happens to be a larger type (this is not true as of + * now) + */ + if uid < uint32(0) || uid > uint32(0xffffffff) { + rv = 0 + goto done + } + key = _itoa2(tls, bp+44, uid) + } + *(*[1]int32)(unsafe.Pointer(bp)) = [1]int32{} + f = X__nscd_query(tls, req, key, bp+8, uint64(36), bp) + if !(f != 0) { + rv = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + goto done + } + if !((*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWFOUND)] != 0) { + rv = 0 + goto cleanup_f + } + /* A zero length response from nscd is invalid. We ignore + * invalid responses and just report an error, rather than + * trying to do something with them. + */ + if !((*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWNAMELEN)] != 0) || !((*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWPASSWDLEN)] != 0) || !((*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWGECOSLEN)] != 0) || !((*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWDIRLEN)] != 0) || !((*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWSHELLLEN)] != 0) { + rv = int32(EIO) + goto cleanup_f + } + if uint64((*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWNAMELEN)]|(*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWPASSWDLEN)]|(*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWGECOSLEN)]|(*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWDIRLEN)]|(*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWSHELLLEN)]) >= Uint64FromUint64(0xffffffffffffffff)/Uint64FromInt32(8) { + rv = int32(ENOMEM) + goto cleanup_f + } + len1 = uint64((*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWNAMELEN)] + (*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWPASSWDLEN)] + (*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWGECOSLEN)] + (*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWDIRLEN)] + (*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWSHELLLEN)]) + if len1 > *(*Tsize_t)(unsafe.Pointer(size)) || !(*(*uintptr)(unsafe.Pointer(buf)) != 0) { + tmp = Xrealloc(tls, *(*uintptr)(unsafe.Pointer(buf)), len1) + if !(tmp != 0) { + rv = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + goto cleanup_f + } + *(*uintptr)(unsafe.Pointer(buf)) = tmp + *(*Tsize_t)(unsafe.Pointer(size)) = len1 + } + if !(Xfread(tls, *(*uintptr)(unsafe.Pointer(buf)), len1, uint64(1), f) != 0) { + if Xferror(tls, f) != 0 { + v3 = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + } else { + v3 = int32(EIO) + } + rv = v3 + goto cleanup_f + } + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_name = *(*uintptr)(unsafe.Pointer(buf)) + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_passwd = (*Tpasswd)(unsafe.Pointer(pw)).Fpw_name + uintptr((*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWNAMELEN)]) + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_gecos = (*Tpasswd)(unsafe.Pointer(pw)).Fpw_passwd + uintptr((*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWPASSWDLEN)]) + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_dir = (*Tpasswd)(unsafe.Pointer(pw)).Fpw_gecos + uintptr((*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWGECOSLEN)]) + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_shell = (*Tpasswd)(unsafe.Pointer(pw)).Fpw_dir + uintptr((*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWDIRLEN)]) + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_uid = uint32((*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWUID)]) + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_gid = uint32((*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWGID)]) + /* Don't assume that nscd made sure to null terminate strings. + * It's supposed to, but malicious nscd should be ignored + * rather than causing a crash. + */ + if *(*uint8)(unsafe.Pointer((*Tpasswd)(unsafe.Pointer(pw)).Fpw_passwd + uintptr(-Int32FromInt32(1)))) != 0 || *(*uint8)(unsafe.Pointer((*Tpasswd)(unsafe.Pointer(pw)).Fpw_gecos + uintptr(-Int32FromInt32(1)))) != 0 || *(*uint8)(unsafe.Pointer((*Tpasswd)(unsafe.Pointer(pw)).Fpw_dir + uintptr(-Int32FromInt32(1)))) != 0 || *(*uint8)(unsafe.Pointer((*Tpasswd)(unsafe.Pointer(pw)).Fpw_shell + uintptr((*(*[9]Tint32_t)(unsafe.Pointer(bp + 8)))[int32(PWSHELLLEN)]-int32(1)))) != 0 { + rv = int32(EIO) + goto cleanup_f + } + if name != 0 && Xstrcmp(tls, name, (*Tpasswd)(unsafe.Pointer(pw)).Fpw_name) != 0 || !(name != 0) && uid != (*Tpasswd)(unsafe.Pointer(pw)).Fpw_uid { + rv = int32(EIO) + goto cleanup_f + } + *(*uintptr)(unsafe.Pointer(res)) = pw + goto cleanup_f + cleanup_f: + ; + Xfclose(tls, f) + goto done + } + goto done +done: + ; + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 4)), uintptr(0)) + if rv != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = rv + } + return rv +} + +func _getpw_r(tls *TLS, name uintptr, uid Tuid_t, pw uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) { + bp := tls.Alloc(32) + defer tls.Free(32) + var rv int32 + var _ /* cs at bp+16 */ int32 + var _ /* len at bp+8 */ Tsize_t + var _ /* line at bp+0 */ uintptr + _ = rv + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) + *(*Tsize_t)(unsafe.Pointer(bp + 8)) = uint64(0) + rv = 0 + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp+16) + rv = X__getpw_a(tls, name, uid, pw, bp, bp+8, res) + if *(*uintptr)(unsafe.Pointer(res)) != 0 && size < *(*Tsize_t)(unsafe.Pointer(bp + 8)) { + *(*uintptr)(unsafe.Pointer(res)) = uintptr(0) + rv = int32(ERANGE) + } + if *(*uintptr)(unsafe.Pointer(res)) != 0 { + Xmemcpy(tls, buf, *(*uintptr)(unsafe.Pointer(bp)), *(*Tsize_t)(unsafe.Pointer(bp + 8))) + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_name = uintptr(int64((*Tpasswd)(unsafe.Pointer(pw)).Fpw_name)-int64(*(*uintptr)(unsafe.Pointer(bp)))) + buf + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_passwd = uintptr(int64((*Tpasswd)(unsafe.Pointer(pw)).Fpw_passwd)-int64(*(*uintptr)(unsafe.Pointer(bp)))) + buf + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_gecos = uintptr(int64((*Tpasswd)(unsafe.Pointer(pw)).Fpw_gecos)-int64(*(*uintptr)(unsafe.Pointer(bp)))) + buf + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_dir = uintptr(int64((*Tpasswd)(unsafe.Pointer(pw)).Fpw_dir)-int64(*(*uintptr)(unsafe.Pointer(bp)))) + buf + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_shell = uintptr(int64((*Tpasswd)(unsafe.Pointer(pw)).Fpw_shell)-int64(*(*uintptr)(unsafe.Pointer(bp)))) + buf + } + Xfree(tls, *(*uintptr)(unsafe.Pointer(bp))) + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 16)), uintptr(0)) + if rv != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = rv + } + return rv +} + +func Xgetpwnam_r(tls *TLS, name uintptr, pw uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v name=%v pw=%v buf=%v size=%v res=%v, (%v:)", tls, name, pw, buf, size, res, origin(2)) + defer func() { trc("-> %v", r) }() + } + return _getpw_r(tls, name, uint32(0), pw, buf, size, res) +} + +func Xgetpwuid_r(tls *TLS, uid Tuid_t, pw uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v uid=%v pw=%v buf=%v size=%v res=%v, (%v:)", tls, uid, pw, buf, size, res, origin(2)) + defer func() { trc("-> %v", r) }() + } + return _getpw_r(tls, uintptr(0), uid, pw, buf, size, res) +} + +var _f2 uintptr +var _line4 uintptr +var _pw1 Tpasswd +var _size Tsize_t + +func Xsetpwent(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + if _f2 != 0 { + Xfclose(tls, _f2) + } + _f2 = uintptr(0) +} + +func Xgetpwent(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* res at bp+0 */ uintptr + if !(_f2 != 0) { + _f2 = Xfopen(tls, __ccgo_ts+1246, __ccgo_ts+315) + } + if !(_f2 != 0) { + return uintptr(0) + } + X__getpwent_a(tls, _f2, uintptr(unsafe.Pointer(&_pw1)), uintptr(unsafe.Pointer(&_line4)), uintptr(unsafe.Pointer(&_size)), bp) + return *(*uintptr)(unsafe.Pointer(bp)) +} + +func Xgetpwuid(tls *TLS, uid Tuid_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v uid=%v, (%v:)", tls, uid, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* res at bp+0 */ uintptr + X__getpw_a(tls, uintptr(0), uid, uintptr(unsafe.Pointer(&_pw1)), uintptr(unsafe.Pointer(&_line4)), uintptr(unsafe.Pointer(&_size)), bp) + return *(*uintptr)(unsafe.Pointer(bp)) +} + +func Xgetpwnam(tls *TLS, name uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v name=%v, (%v:)", tls, name, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* res at bp+0 */ uintptr + X__getpw_a(tls, name, uint32(0), uintptr(unsafe.Pointer(&_pw1)), uintptr(unsafe.Pointer(&_line4)), uintptr(unsafe.Pointer(&_size)), bp) + return *(*uintptr)(unsafe.Pointer(bp)) +} + +func Xendpwent(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + Xsetpwent(tls) +} + +func _atou1(tls *TLS, s uintptr) (r uint32) { + var x uint32 + _ = x + x = uint32(0) + for { + if !(uint32(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s)))))-int32('0')) < uint32(10)) { + break + } + x = uint32(10)*x + uint32(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s)))))-Int32FromUint8('0')) + goto _1 + _1: + ; + *(*uintptr)(unsafe.Pointer(s))++ + } + return x +} + +func X__getpwent_a(tls *TLS, f uintptr, pw uintptr, line uintptr, size uintptr, res uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v pw=%v line=%v size=%v res=%v, (%v:)", tls, f, pw, line, size, res, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var l, v2 Tssize_t + var rv, v3 int32 + var v10, v11, v12, v13, v14, v4, v5, v6, v7, v8, v9 uintptr + var _ /* cs at bp+8 */ int32 + var _ /* s at bp+0 */ uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = l, rv, v10, v11, v12, v13, v14, v2, v3, v4, v5, v6, v7, v8, v9 + rv = 0 + _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp+8) + for { + v2 = Xgetline(tls, line, size, f) + l = v2 + if v2 < 0 { + if Xferror(tls, f) != 0 { + v3 = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + } else { + v3 = 0 + } + rv = v3 + Xfree(tls, *(*uintptr)(unsafe.Pointer(line))) + *(*uintptr)(unsafe.Pointer(line)) = uintptr(0) + pw = uintptr(0) + break + } + *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(line)) + uintptr(l-int64(1)))) = uint8(0) + *(*uintptr)(unsafe.Pointer(bp)) = *(*uintptr)(unsafe.Pointer(line)) + v4 = *(*uintptr)(unsafe.Pointer(bp)) + *(*uintptr)(unsafe.Pointer(bp))++ + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_name = v4 + v5 = Xstrchr(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(':')) + *(*uintptr)(unsafe.Pointer(bp)) = v5 + if !(v5 != 0) { + goto _1 + } + v6 = *(*uintptr)(unsafe.Pointer(bp)) + *(*uintptr)(unsafe.Pointer(bp))++ + *(*uint8)(unsafe.Pointer(v6)) = uint8(0) + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_passwd = *(*uintptr)(unsafe.Pointer(bp)) + v7 = Xstrchr(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(':')) + *(*uintptr)(unsafe.Pointer(bp)) = v7 + if !(v7 != 0) { + goto _1 + } + v8 = *(*uintptr)(unsafe.Pointer(bp)) + *(*uintptr)(unsafe.Pointer(bp))++ + *(*uint8)(unsafe.Pointer(v8)) = uint8(0) + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_uid = _atou1(tls, bp) + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != int32(':') { + goto _1 + } + v9 = *(*uintptr)(unsafe.Pointer(bp)) + *(*uintptr)(unsafe.Pointer(bp))++ + *(*uint8)(unsafe.Pointer(v9)) = uint8(0) + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_gid = _atou1(tls, bp) + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != int32(':') { + goto _1 + } + v10 = *(*uintptr)(unsafe.Pointer(bp)) + *(*uintptr)(unsafe.Pointer(bp))++ + *(*uint8)(unsafe.Pointer(v10)) = uint8(0) + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_gecos = *(*uintptr)(unsafe.Pointer(bp)) + v11 = Xstrchr(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(':')) + *(*uintptr)(unsafe.Pointer(bp)) = v11 + if !(v11 != 0) { + goto _1 + } + v12 = *(*uintptr)(unsafe.Pointer(bp)) + *(*uintptr)(unsafe.Pointer(bp))++ + *(*uint8)(unsafe.Pointer(v12)) = uint8(0) + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_dir = *(*uintptr)(unsafe.Pointer(bp)) + v13 = Xstrchr(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(':')) + *(*uintptr)(unsafe.Pointer(bp)) = v13 + if !(v13 != 0) { + goto _1 + } + v14 = *(*uintptr)(unsafe.Pointer(bp)) + *(*uintptr)(unsafe.Pointer(bp))++ + *(*uint8)(unsafe.Pointer(v14)) = uint8(0) + (*Tpasswd)(unsafe.Pointer(pw)).Fpw_shell = *(*uintptr)(unsafe.Pointer(bp)) + break + goto _1 + _1: + } + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 8)), uintptr(0)) + *(*uintptr)(unsafe.Pointer(res)) = pw + if rv != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = rv + } + return rv +} + +func Xsetspent(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } +} + +func Xendspent(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } +} + +func Xgetspent(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uintptr(0) +} + +func Xlckpwdf(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return 0 +} + +func Xulckpwdf(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return 0 +} + +var _addr = struct { + Fsun_family int16 + Fsun_path [21]uint8 +}{ + Fsun_family: int16(PF_LOCAL), + Fsun_path: [21]uint8{'/', 'v', 'a', 'r', '/', 'r', 'u', 'n', '/', 'n', 's', 'c', 'd', '/', 's', 'o', 'c', 'k', 'e', 't'}, +} + +func X__nscd_query(tls *TLS, req Tint32_t, key uintptr, buf uintptr, len1 Tsize_t, swap uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v req=%v key=%v buf=%v len1=%v swap=%v, (%v:)", tls, req, key, buf, len1, swap, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(112) + defer tls.Free(112) + var errno_save, fd int32 + var f, v1 uintptr + var i Tsize_t + var v3, v4, v7, v8 Tuint32_t + var _ /* msg at bp+48 */ Tmsghdr + var _ /* req_buf at bp+32 */ [3]Tint32_t + _, _, _, _, _, _, _, _, _ = errno_save, f, fd, i, v1, v3, v4, v7, v8 + f = uintptr(0) + *(*[3]Tint32_t)(unsafe.Pointer(bp + 32)) = [3]Tint32_t{ + 0: int32(NSCDVERSION), + 1: req, + 2: int32(Xstrnlen(tls, key, uint64(LOGIN_NAME_MAX)) + uint64(1)), + } + *(*[2]Tiovec)(unsafe.Pointer(bp)) = [2]Tiovec{ + 0: { + Fiov_base: bp + 32, + Fiov_len: uint64(12), + }, + 1: { + Fiov_base: key, + Fiov_len: Xstrlen(tls, key) + uint64(1), + }, + } + *(*Tmsghdr)(unsafe.Pointer(bp + 48)) = Tmsghdr{ + Fmsg_iov: bp, + Fmsg_iovlen: int32(2), + } + errno_save = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + *(*int32)(unsafe.Pointer(swap)) = 0 + goto retry +retry: + ; + Xmemset(tls, buf, 0, len1) + *(*Tint32_t)(unsafe.Pointer(buf)) = int32(NSCDVERSION) + fd = Xsocket(tls, int32(PF_LOCAL), Int32FromInt32(SOCK_STREAM)|Int32FromInt32(SOCK_CLOEXEC), 0) + if fd < 0 { + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(EAFNOSUPPORT) { + f = Xfopen(tls, __ccgo_ts+1258, __ccgo_ts+1268) + if f != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = errno_save + } + return f + } + return uintptr(0) + } + v1 = Xfdopen(tls, fd, __ccgo_ts+1271) + f = v1 + if !(v1 != 0) { + Xclose(tls, fd) + return uintptr(0) + } + if (*(*[3]Tint32_t)(unsafe.Pointer(bp + 32)))[int32(2)] > int32(LOGIN_NAME_MAX) { + return f + } + if Xconnect(tls, fd, uintptr(unsafe.Pointer(&_addr)), uint32(24)) < 0 { + /* If there isn't a running nscd we simulate a "not found" + * result and the caller is responsible for calling + * fclose on the (unconnected) socket. The value of + * errno must be left unchanged in this case. */ + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(EACCES) || *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(ECONNREFUSED) || *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(ENOENT) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = errno_save + return f + } + goto error + } + if Xsendmsg(tls, fd, bp+48, int32(MSG_NOSIGNAL)) < 0 { + goto error + } + if !(Xfread(tls, buf, len1, uint64(1), f) != 0) { + /* If the VERSION entry mismatches nscd will disconnect. The + * most likely cause is that the endianness mismatched. So, we + * byteswap and try once more. (if we already swapped, just + * fail out) + */ + if Xferror(tls, f) != 0 { + goto error + } + if !(*(*int32)(unsafe.Pointer(swap)) != 0) { + Xfclose(tls, f) + i = uint64(0) + for { + if !(i < Uint64FromInt64(12)/Uint64FromInt64(4)) { + break + } + v3 = uint32((*(*[3]Tint32_t)(unsafe.Pointer(bp + 32)))[i]) + v4 = v3>>int32(24) | v3>>int32(8)&uint32(0xff00) | v3<>int32(24) | v7>>int32(8)&uint32(0xff00) | v7< %v", r1) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var i Tsize_t + var r, v1, v3, v5 int32 + var v4 uintptr + _, _, _, _, _, _ = i, r, v1, v3, v4, v5 + Xflockfile(tls, f) + v1 = Xfprintf(tls, f, __ccgo_ts+1273, VaList(bp+8, (*Tgroup)(unsafe.Pointer(gr)).Fgr_name, (*Tgroup)(unsafe.Pointer(gr)).Fgr_passwd, (*Tgroup)(unsafe.Pointer(gr)).Fgr_gid)) + r = v1 + if v1 < 0 { + goto done + } + if (*Tgroup)(unsafe.Pointer(gr)).Fgr_mem != 0 { + i = uint64(0) + for { + if !(*(*uintptr)(unsafe.Pointer((*Tgroup)(unsafe.Pointer(gr)).Fgr_mem + uintptr(i)*8)) != 0) { + break + } + if i != 0 { + v4 = __ccgo_ts + 1283 + } else { + v4 = __ccgo_ts + } + v3 = Xfprintf(tls, f, __ccgo_ts+1285, VaList(bp+8, v4, *(*uintptr)(unsafe.Pointer((*Tgroup)(unsafe.Pointer(gr)).Fgr_mem + uintptr(i)*8)))) + r = v3 + if v3 < 0 { + goto done + } + goto _2 + _2: + ; + i++ + } + } + r = Xfputc(tls, int32('\n'), f) + goto done +done: + ; + Xfunlockfile(tls, f) + if r < 0 { + v5 = -int32(1) + } else { + v5 = 0 + } + return v5 +} + +func Xputpwent(tls *TLS, pw uintptr, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v pw=%v f=%v, (%v:)", tls, pw, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(64) + defer tls.Free(64) + var v1 int32 + _ = v1 + if Xfprintf(tls, f, __ccgo_ts+1290, VaList(bp+8, (*Tpasswd)(unsafe.Pointer(pw)).Fpw_name, (*Tpasswd)(unsafe.Pointer(pw)).Fpw_passwd, (*Tpasswd)(unsafe.Pointer(pw)).Fpw_uid, (*Tpasswd)(unsafe.Pointer(pw)).Fpw_gid, (*Tpasswd)(unsafe.Pointer(pw)).Fpw_gecos, (*Tpasswd)(unsafe.Pointer(pw)).Fpw_dir, (*Tpasswd)(unsafe.Pointer(pw)).Fpw_shell)) < 0 { + v1 = -int32(1) + } else { + v1 = 0 + } + return v1 +} + +func Xputspent(tls *TLS, sp uintptr, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v sp=%v f=%v, (%v:)", tls, sp, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(144) + defer tls.Free(144) + var v1, v10, v12, v14, v16, v4, v6, v8 int32 + var v11, v13, v15, v5, v7, v9 int64 + var v17 uint64 + var v2, v3 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = v1, v10, v11, v12, v13, v14, v15, v16, v17, v2, v3, v4, v5, v6, v7, v8, v9 + if (*Tspwd)(unsafe.Pointer(sp)).Fsp_namp != 0 { + v2 = (*Tspwd)(unsafe.Pointer(sp)).Fsp_namp + } else { + v2 = __ccgo_ts + } + if (*Tspwd)(unsafe.Pointer(sp)).Fsp_pwdp != 0 { + v3 = (*Tspwd)(unsafe.Pointer(sp)).Fsp_pwdp + } else { + v3 = __ccgo_ts + } + if (*Tspwd)(unsafe.Pointer(sp)).Fsp_lstchg == int64(-int32(1)) { + v4 = 0 + } else { + v4 = -int32(1) + } + if (*Tspwd)(unsafe.Pointer(sp)).Fsp_lstchg == int64(-int32(1)) { + v5 = 0 + } else { + v5 = (*Tspwd)(unsafe.Pointer(sp)).Fsp_lstchg + } + if (*Tspwd)(unsafe.Pointer(sp)).Fsp_min == int64(-int32(1)) { + v6 = 0 + } else { + v6 = -int32(1) + } + if (*Tspwd)(unsafe.Pointer(sp)).Fsp_min == int64(-int32(1)) { + v7 = 0 + } else { + v7 = (*Tspwd)(unsafe.Pointer(sp)).Fsp_min + } + if (*Tspwd)(unsafe.Pointer(sp)).Fsp_max == int64(-int32(1)) { + v8 = 0 + } else { + v8 = -int32(1) + } + if (*Tspwd)(unsafe.Pointer(sp)).Fsp_max == int64(-int32(1)) { + v9 = 0 + } else { + v9 = (*Tspwd)(unsafe.Pointer(sp)).Fsp_max + } + if (*Tspwd)(unsafe.Pointer(sp)).Fsp_warn == int64(-int32(1)) { + v10 = 0 + } else { + v10 = -int32(1) + } + if (*Tspwd)(unsafe.Pointer(sp)).Fsp_warn == int64(-int32(1)) { + v11 = 0 + } else { + v11 = (*Tspwd)(unsafe.Pointer(sp)).Fsp_warn + } + if (*Tspwd)(unsafe.Pointer(sp)).Fsp_inact == int64(-int32(1)) { + v12 = 0 + } else { + v12 = -int32(1) + } + if (*Tspwd)(unsafe.Pointer(sp)).Fsp_inact == int64(-int32(1)) { + v13 = 0 + } else { + v13 = (*Tspwd)(unsafe.Pointer(sp)).Fsp_inact + } + if (*Tspwd)(unsafe.Pointer(sp)).Fsp_expire == int64(-int32(1)) { + v14 = 0 + } else { + v14 = -int32(1) + } + if (*Tspwd)(unsafe.Pointer(sp)).Fsp_expire == int64(-int32(1)) { + v15 = 0 + } else { + v15 = (*Tspwd)(unsafe.Pointer(sp)).Fsp_expire + } + if (*Tspwd)(unsafe.Pointer(sp)).Fsp_flag == uint64(-Int32FromInt32(1)) { + v16 = 0 + } else { + v16 = -int32(1) + } + if (*Tspwd)(unsafe.Pointer(sp)).Fsp_flag == uint64(-Int32FromInt32(1)) { + v17 = uint64(0) + } else { + v17 = (*Tspwd)(unsafe.Pointer(sp)).Fsp_flag + } + if Xfprintf(tls, f, __ccgo_ts+1312, VaList(bp+8, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17)) < 0 { + v1 = -int32(1) + } else { + v1 = 0 + } + return v1 +} + +func X__rand48_step(tls *TLS, xi uintptr, lc uintptr) (r Tuint64_t) { + if __ccgo_strace { + trc("tls=%v xi=%v lc=%v, (%v:)", tls, xi, lc, origin(2)) + defer func() { trc("-> %v", r) }() + } + var a, x Tuint64_t + _, _ = a, x + x = uint64(uint32(*(*uint16)(unsafe.Pointer(xi)))|(uint32(*(*uint16)(unsafe.Pointer(xi + 1*2)))+0)<> int32(16)) + *(*uint16)(unsafe.Pointer(xi + 2*2)) = uint16(x >> int32(32)) + return x & uint64(0xffffffffffff) +} + +func Xerand48(tls *TLS, s uintptr) (r float64) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* x at bp+0 */ struct { + Ff [0]float64 + Fu Tuint64_t + } + *(*struct { + Ff [0]float64 + Fu Tuint64_t + })(unsafe.Pointer(bp)) = struct { + Ff [0]float64 + Fu Tuint64_t + }{} + *(*uint64)(unsafe.Pointer(bp)) = uint64(0x3ff0000000000000) | X__rand48_step(tls, s, uintptr(unsafe.Pointer(&X__seed48))+uintptr(3)*2)< %v", r) }() + } + return Xerand48(tls, uintptr(unsafe.Pointer(&X__seed48))) +} + +func Xlcong48(tls *TLS, p uintptr) { + if __ccgo_strace { + trc("tls=%v p=%v, (%v:)", tls, p, origin(2)) + } + Xmemcpy(tls, uintptr(unsafe.Pointer(&X__seed48)), p, uint64(14)) +} + +func Xnrand48(tls *TLS, s uintptr) (r int64) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int64(X__rand48_step(tls, s, uintptr(unsafe.Pointer(&X__seed48))+uintptr(3)*2) >> int32(17)) +} + +func Xlrand48(tls *TLS) (r int64) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xnrand48(tls, uintptr(unsafe.Pointer(&X__seed48))) +} + +func Xjrand48(tls *TLS, s uintptr) (r int64) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int64(int32(X__rand48_step(tls, s, uintptr(unsafe.Pointer(&X__seed48))+uintptr(3)*2) >> Int32FromInt32(16))) +} + +func Xmrand48(tls *TLS) (r int64) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xjrand48(tls, uintptr(unsafe.Pointer(&X__seed48))) +} + +var _seed Tuint64_t + +func Xsrand(tls *TLS, s uint32) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + } + _seed = uint64(s - uint32(1)) +} + +func Xrand(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + _seed = uint64(6364136223846793005)*_seed + uint64(1) + return int32(_seed >> int32(33)) +} + +func _temper(tls *TLS, x uint32) (r uint32) { + x ^= x >> int32(11) + x ^= x << int32(7) & uint32(0x9D2C5680) + x ^= x << int32(15) & uint32(0xEFC60000) + x ^= x >> int32(18) + return x +} + +func Xrand_r(tls *TLS, seed uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v seed=%v, (%v:)", tls, seed, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 uint32 + _ = v1 + v1 = *(*uint32)(unsafe.Pointer(seed))*Uint32FromInt32(1103515245) + Uint32FromInt32(12345) + *(*uint32)(unsafe.Pointer(seed)) = v1 + return int32(_temper(tls, v1) / uint32(2)) +} + +/* +this code uses the same lagged fibonacci generator as the +original bsd random implementation except for the seeding +which was broken in the original +*/ + +var _init = [32]Tuint32_t{ + 1: uint32(0x5851f42d), + 2: uint32(0xc0b18ccf), + 3: uint32(0xcbb5f646), + 4: uint32(0xc7033129), + 5: uint32(0x30705b04), + 6: uint32(0x20fd5db4), + 7: uint32(0x9a8b7f78), + 8: uint32(0x502959d8), + 9: uint32(0xab894868), + 10: uint32(0x6c0356a7), + 11: uint32(0x88cdb7ff), + 12: uint32(0xb477d43f), + 13: uint32(0x70a3a52b), + 14: uint32(0xa8e4baf1), + 15: uint32(0xfd8341fc), + 16: uint32(0x8ae16fd9), + 17: uint32(0x742d2f7a), + 18: uint32(0x0d1f0796), + 19: uint32(0x76035e09), + 20: uint32(0x40f7702c), + 21: uint32(0x6fa72ca5), + 22: uint32(0xaaa84157), + 23: uint32(0x58a0df74), + 24: uint32(0xc74a0364), + 25: uint32(0xae533cc4), + 26: uint32(0x04185faf), + 27: uint32(0x6de3b115), + 28: uint32(0x0cab8628), + 29: uint32(0xf043bfa4), + 30: uint32(0x398150e9), + 31: uint32(0x37521657), +} + +var _n = int32(31) +var _i = int32(3) +var _j = int32(0) +var _x1 = uintptr(unsafe.Pointer(&_init)) + uintptr(1)*4 +var _lock3 [1]int32 + +func _lcg31(tls *TLS, x Tuint32_t) (r Tuint32_t) { + return (uint32(1103515245)*x + uint32(12345)) & uint32(0x7fffffff) +} + +func _lcg64(tls *TLS, x Tuint64_t) (r Tuint64_t) { + return uint64(6364136223846793005)*x + uint64(1) +} + +func _savestate(tls *TLS) (r uintptr) { + *(*Tuint32_t)(unsafe.Pointer(_x1 + uintptr(-Int32FromInt32(1))*4)) = uint32(_n<> int32(16)) + _i = int32(*(*Tuint32_t)(unsafe.Pointer(_x1 + uintptr(-Int32FromInt32(1))*4)) >> Int32FromInt32(8) & uint32(0xff)) + _j = int32(*(*Tuint32_t)(unsafe.Pointer(_x1 + uintptr(-Int32FromInt32(1))*4)) & uint32(0xff)) +} + +func ___srandom(tls *TLS, seed uint32) { + var k, v1 int32 + var s Tuint64_t + _, _, _ = k, s, v1 + s = uint64(seed) + if _n == 0 { + *(*Tuint32_t)(unsafe.Pointer(_x1)) = uint32(s) + return + } + if _n == int32(31) || _n == int32(7) { + v1 = int32(3) + } else { + v1 = int32(1) + } + _i = v1 + _j = 0 + k = 0 + for { + if !(k < _n) { + break + } + s = _lcg64(tls, s) + *(*Tuint32_t)(unsafe.Pointer(_x1 + uintptr(k)*4)) = uint32(s >> int32(32)) + goto _2 + _2: + ; + k++ + } + /* make sure x contains at least one odd number */ + *(*Tuint32_t)(unsafe.Pointer(_x1)) |= uint32(1) +} + +func Xsrandom(tls *TLS, seed uint32) { + if __ccgo_strace { + trc("tls=%v seed=%v, (%v:)", tls, seed, origin(2)) + } + ___lock(tls, uintptr(unsafe.Pointer(&_lock3))) + ___srandom(tls, seed) + ___unlock(tls, uintptr(unsafe.Pointer(&_lock3))) +} + +func Xinitstate(tls *TLS, seed uint32, state uintptr, size Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v seed=%v state=%v size=%v, (%v:)", tls, seed, state, size, origin(2)) + defer func() { trc("-> %v", r) }() + } + var old uintptr + _ = old + if size < uint64(8) { + return uintptr(0) + } + ___lock(tls, uintptr(unsafe.Pointer(&_lock3))) + old = _savestate(tls) + if size < uint64(32) { + _n = 0 + } else { + if size < uint64(64) { + _n = int32(7) + } else { + if size < uint64(128) { + _n = int32(15) + } else { + if size < uint64(256) { + _n = int32(31) + } else { + _n = int32(63) + } + } + } + } + _x1 = state + uintptr(1)*4 + ___srandom(tls, seed) + _savestate(tls) + ___unlock(tls, uintptr(unsafe.Pointer(&_lock3))) + return old +} + +func Xsetstate(tls *TLS, state uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v state=%v, (%v:)", tls, state, origin(2)) + defer func() { trc("-> %v", r) }() + } + var old uintptr + _ = old + ___lock(tls, uintptr(unsafe.Pointer(&_lock3))) + old = _savestate(tls) + _loadstate(tls, state) + ___unlock(tls, uintptr(unsafe.Pointer(&_lock3))) + return old +} + +func Xrandom(tls *TLS) (r int64) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + var k int64 + var v1 Tuint32_t + var v2, v3 int32 + _, _, _, _ = k, v1, v2, v3 + ___lock(tls, uintptr(unsafe.Pointer(&_lock3))) + if _n == 0 { + v1 = _lcg31(tls, *(*Tuint32_t)(unsafe.Pointer(_x1))) + *(*Tuint32_t)(unsafe.Pointer(_x1)) = v1 + k = int64(v1) + goto end + } + *(*Tuint32_t)(unsafe.Pointer(_x1 + uintptr(_i)*4)) += *(*Tuint32_t)(unsafe.Pointer(_x1 + uintptr(_j)*4)) + k = int64(*(*Tuint32_t)(unsafe.Pointer(_x1 + uintptr(_i)*4)) >> int32(1)) + _i++ + v2 = _i + if v2 == _n { + _i = 0 + } + _j++ + v3 = _j + if v3 == _n { + _j = 0 + } + goto end +end: + ; + ___unlock(tls, uintptr(unsafe.Pointer(&_lock3))) + return k +} + +func Xseed48(tls *TLS, s uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + Xmemcpy(tls, uintptr(unsafe.Pointer(&_p1)), uintptr(unsafe.Pointer(&X__seed48)), uint64(6)) + Xmemcpy(tls, uintptr(unsafe.Pointer(&X__seed48)), s, uint64(6)) + return uintptr(unsafe.Pointer(&_p1)) +} + +var _p1 [3]uint16 + +func Xsrand48(tls *TLS, seed int64) { + if __ccgo_strace { + trc("tls=%v seed=%v, (%v:)", tls, seed, origin(2)) + } + bp := tls.Alloc(16) + defer tls.Free(16) + *(*[3]uint16)(unsafe.Pointer(bp)) = [3]uint16{ + 0: uint16(0x330e), + 1: uint16(seed), + 2: uint16(seed >> int32(16)), + } + Xseed48(tls, bp) +} + +func Xexecl(tls *TLS, path uintptr, argv0 uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v argv0=%v va=%v, (%v:)", tls, path, argv0, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var argc, i int32 + var argv uintptr + var v2 t__predefined_size_t + _, _, _, _, _ = ap, argc, argv, i, v2 + defer func() { Xrealloc(tls, argv, 0) }() + ap = va + argc = int32(1) + for { + if !(VaUintptr(&ap) != 0) { + break + } + goto _1 + _1: + ; + argc++ + } + _ = ap + v2 = uint64(argc+int32(1)) * 8 + argv = Xrealloc(tls, argv, v2) + ap = va + *(*uintptr)(unsafe.Add(unsafe.Pointer(argv), 0*8)) = argv0 + i = int32(1) + for { + if !(i < argc) { + break + } + *(*uintptr)(unsafe.Add(unsafe.Pointer(argv), i*8)) = VaUintptr(&ap) + goto _3 + _3: + ; + i++ + } + *(*uintptr)(unsafe.Add(unsafe.Pointer(argv), i*8)) = UintptrFromInt32(0) + _ = ap + return Xexecv(tls, path, argv) + return r +} + +func Xexecle(tls *TLS, path uintptr, argv0 uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v argv0=%v va=%v, (%v:)", tls, path, argv0, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var argc, i int32 + var argv, envp uintptr + var v2 t__predefined_size_t + _, _, _, _, _, _ = ap, argc, argv, envp, i, v2 + defer func() { Xrealloc(tls, argv, 0) }() + ap = va + argc = int32(1) + for { + if !(VaUintptr(&ap) != 0) { + break + } + goto _1 + _1: + ; + argc++ + } + _ = ap + v2 = uint64(argc+int32(1)) * 8 + argv = Xrealloc(tls, argv, v2) + ap = va + *(*uintptr)(unsafe.Add(unsafe.Pointer(argv), 0*8)) = argv0 + i = int32(1) + for { + if !(i <= argc) { + break + } + *(*uintptr)(unsafe.Add(unsafe.Pointer(argv), i*8)) = VaUintptr(&ap) + goto _3 + _3: + ; + i++ + } + envp = VaUintptr(&ap) + _ = ap + return Xexecve(tls, path, argv, envp) + return r +} + +func Xexeclp(tls *TLS, file uintptr, argv0 uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v file=%v argv0=%v va=%v, (%v:)", tls, file, argv0, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var argc, i int32 + var argv uintptr + var v2 t__predefined_size_t + _, _, _, _, _ = ap, argc, argv, i, v2 + defer func() { Xrealloc(tls, argv, 0) }() + ap = va + argc = int32(1) + for { + if !(VaUintptr(&ap) != 0) { + break + } + goto _1 + _1: + ; + argc++ + } + _ = ap + v2 = uint64(argc+int32(1)) * 8 + argv = Xrealloc(tls, argv, v2) + ap = va + *(*uintptr)(unsafe.Add(unsafe.Pointer(argv), 0*8)) = argv0 + i = int32(1) + for { + if !(i < argc) { + break + } + *(*uintptr)(unsafe.Add(unsafe.Pointer(argv), i*8)) = VaUintptr(&ap) + goto _3 + _3: + ; + i++ + } + *(*uintptr)(unsafe.Add(unsafe.Pointer(argv), i*8)) = UintptrFromInt32(0) + _ = ap + return Xexecvp(tls, file, argv) + return r +} + +func Xexecv(tls *TLS, path uintptr, argv uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v argv=%v, (%v:)", tls, path, argv, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xexecve(tls, path, argv, Xenviron) +} + +func Xexecve(tls *TLS, path uintptr, argv uintptr, envp uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v argv=%v envp=%v, (%v:)", tls, path, argv, envp, origin(2)) + defer func() { trc("-> %v", r) }() + } + /* do we need to use environ if envp is null? */ + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_execve), int64(path), int64(argv), int64(envp))))) +} + +func X__execvpe(tls *TLS, file uintptr, argv uintptr, envp uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v file=%v argv=%v envp=%v, (%v:)", tls, file, argv, envp, origin(2)) + defer func() { trc("-> %v", r) }() + } + var b, p, path, z, v3, v4 uintptr + var k, l Tsize_t + var seen_eacces int32 + var v2 t__predefined_size_t + _, _, _, _, _, _, _, _, _, _ = b, k, l, p, path, seen_eacces, z, v2, v3, v4 + defer func() { Xrealloc(tls, b, 0) }() + path = Xgetenv(tls, __ccgo_ts+1361) + seen_eacces = 0 + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOENT) + if !(*(*uint8)(unsafe.Pointer(file)) != 0) { + return -int32(1) + } + if Xstrchr(tls, file, int32('/')) != 0 { + return Xexecve(tls, file, argv, envp) + } + if !(path != 0) { + path = __ccgo_ts + 1366 + } + k = Xstrnlen(tls, file, uint64(Int32FromInt32(NAME_MAX)+Int32FromInt32(1))) + if k > uint64(NAME_MAX) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENAMETOOLONG) + return -int32(1) + } + l = Xstrnlen(tls, path, uint64(Int32FromInt32(PATH_MAX)-Int32FromInt32(1))) + uint64(1) + p = path + for { + v2 = l + k + uint64(1) + b = Xrealloc(tls, b, v2) + z = X__strchrnul(tls, p, int32(':')) + if uint64(int64(z)-int64(p)) >= l { + v3 = z + z++ + if !(*(*uint8)(unsafe.Pointer(v3)) != 0) { + break + } + goto _1 + } + Xmemcpy(tls, b, p, uint64(int64(z)-int64(p))) + *(*uint8)(unsafe.Add(unsafe.Pointer(b), int64(z)-int64(p))) = uint8('/') + Xmemcpy(tls, b+uintptr(int64(z)-int64(p))+BoolUintptr(z > p), file, k+uint64(1)) + Xexecve(tls, b, argv, envp) + switch *(*int32)(unsafe.Pointer(X__errno_location(tls))) { + case int32(EACCES): + seen_eacces = int32(1) + fallthrough + case int32(ENOENT): + fallthrough + case int32(ENOTDIR): + default: + return -int32(1) + } + v4 = z + z++ + if !(*(*uint8)(unsafe.Pointer(v4)) != 0) { + break + } + goto _1 + _1: + ; + p = z + } + if seen_eacces != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EACCES) + } + return -int32(1) +} + +func Xexecvp(tls *TLS, file uintptr, argv uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v file=%v argv=%v, (%v:)", tls, file, argv, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__execvpe(tls, file, argv, Xenviron) +} + +func Xexecvpe(tls *TLS, file uintptr, argv uintptr, envp uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v file=%v argv=%v envp=%v, (%v:)", tls, file, argv, envp, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__execvpe(tls, file, argv, envp) +} + +func Xfexecve(tls *TLS, fd int32, argv uintptr, envp uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v fd=%v argv=%v envp=%v, (%v:)", tls, fd, argv, envp, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var r int32 + var _ /* buf at bp+0 */ [27]uint8 + _ = r + r = int32(X__syscall5(tls, int64(SYS_execveat), int64(fd), int64(__ccgo_ts), int64(argv), int64(envp), int64(Int32FromInt32(AT_EMPTY_PATH)))) + if r != -int32(ENOSYS) { + return int32(X__syscall_ret(tls, uint64(r))) + } + X__procfdname(tls, bp, uint32(fd)) + Xexecve(tls, bp, argv, envp) + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(ENOENT) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EBADF) + } + return -int32(1) +} + +var _dummy_lockptr = uintptr(0) + +var _atfork_locks = [10]uintptr{ + 0: uintptr(unsafe.Pointer(&X__at_quick_exit_lockptr)), + 1: uintptr(unsafe.Pointer(&_dummy_lockptr)), + 2: uintptr(unsafe.Pointer(&X__gettext_lockptr)), + 3: uintptr(unsafe.Pointer(&X__locale_lockptr)), + 4: uintptr(unsafe.Pointer(&X__random_lockptr)), + 5: uintptr(unsafe.Pointer(&_dummy_lockptr)), + 6: uintptr(unsafe.Pointer(&X__stdio_ofl_lockptr)), + 7: uintptr(unsafe.Pointer(&X__syslog_lockptr)), + 8: uintptr(unsafe.Pointer(&X__timezone_lockptr)), + 9: uintptr(unsafe.Pointer(&_dummy_lockptr)), +} + +func _dummy8(tls *TLS, x int32) { +} + +func _dummy_0(tls *TLS) { +} + +const FDOP_CHDIR = 4 +const FDOP_CLOSE = 1 +const FDOP_DUP2 = 2 +const FDOP_FCHDIR = 5 +const FDOP_OPEN = 3 +const POSIX_SPAWN_RESETIDS = 1 +const POSIX_SPAWN_SETPGROUP = 2 +const POSIX_SPAWN_SETSCHEDPARAM = 16 +const POSIX_SPAWN_SETSCHEDULER = 32 +const POSIX_SPAWN_SETSID = 128 +const POSIX_SPAWN_SETSIGDEF = 4 +const POSIX_SPAWN_SETSIGMASK = 8 +const POSIX_SPAWN_USEVFORK = 64 + +type Tposix_spawnattr_t = struct { + F__flags int32 + F__pgrp Tpid_t + F__def Tsigset_t + F__mask Tsigset_t + F__prio int32 + F__pol int32 + F__fn uintptr + F__pad [56]uint8 +} + +type Tposix_spawn_file_actions_t = struct { + F__pad0 [2]int32 + F__actions uintptr + F__pad [16]int32 +} + +type Tfdop = struct { + Fnext uintptr + Fprev uintptr + Fcmd int32 + Ffd int32 + Fsrcfd int32 + Foflag int32 + Fmode Tmode_t +} + +func Xposix_spawn_file_actions_addchdir_np(tls *TLS, fa uintptr, path uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fa=%v path=%v, (%v:)", tls, fa, path, origin(2)) + defer func() { trc("-> %v", r) }() + } + var op, v1 uintptr + _, _ = op, v1 + op = Xmalloc(tls, uint64(40)+Xstrlen(tls, path)+uint64(1)) + if !(op != 0) { + return int32(ENOMEM) + } + (*Tfdop)(unsafe.Pointer(op)).Fcmd = int32(FDOP_CHDIR) + (*Tfdop)(unsafe.Pointer(op)).Ffd = -int32(1) + Xstrcpy(tls, op+36, path) + v1 = (*Tposix_spawn_file_actions_t)(unsafe.Pointer(fa)).F__actions + (*Tfdop)(unsafe.Pointer(op)).Fnext = v1 + if v1 != 0 { + (*Tfdop)(unsafe.Pointer((*Tfdop)(unsafe.Pointer(op)).Fnext)).Fprev = op + } + (*Tfdop)(unsafe.Pointer(op)).Fprev = uintptr(0) + (*Tposix_spawn_file_actions_t)(unsafe.Pointer(fa)).F__actions = op + return 0 +} + +func Xposix_spawn_file_actions_addclose(tls *TLS, fa uintptr, fd int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fa=%v fd=%v, (%v:)", tls, fa, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + var op, v1 uintptr + _, _ = op, v1 + if fd < 0 { + return int32(EBADF) + } + op = Xmalloc(tls, uint64(40)) + if !(op != 0) { + return int32(ENOMEM) + } + (*Tfdop)(unsafe.Pointer(op)).Fcmd = int32(FDOP_CLOSE) + (*Tfdop)(unsafe.Pointer(op)).Ffd = fd + v1 = (*Tposix_spawn_file_actions_t)(unsafe.Pointer(fa)).F__actions + (*Tfdop)(unsafe.Pointer(op)).Fnext = v1 + if v1 != 0 { + (*Tfdop)(unsafe.Pointer((*Tfdop)(unsafe.Pointer(op)).Fnext)).Fprev = op + } + (*Tfdop)(unsafe.Pointer(op)).Fprev = uintptr(0) + (*Tposix_spawn_file_actions_t)(unsafe.Pointer(fa)).F__actions = op + return 0 +} + +func Xposix_spawn_file_actions_adddup2(tls *TLS, fa uintptr, srcfd int32, fd int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fa=%v srcfd=%v fd=%v, (%v:)", tls, fa, srcfd, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + var op, v1 uintptr + _, _ = op, v1 + if srcfd < 0 || fd < 0 { + return int32(EBADF) + } + op = Xmalloc(tls, uint64(40)) + if !(op != 0) { + return int32(ENOMEM) + } + (*Tfdop)(unsafe.Pointer(op)).Fcmd = int32(FDOP_DUP2) + (*Tfdop)(unsafe.Pointer(op)).Fsrcfd = srcfd + (*Tfdop)(unsafe.Pointer(op)).Ffd = fd + v1 = (*Tposix_spawn_file_actions_t)(unsafe.Pointer(fa)).F__actions + (*Tfdop)(unsafe.Pointer(op)).Fnext = v1 + if v1 != 0 { + (*Tfdop)(unsafe.Pointer((*Tfdop)(unsafe.Pointer(op)).Fnext)).Fprev = op + } + (*Tfdop)(unsafe.Pointer(op)).Fprev = uintptr(0) + (*Tposix_spawn_file_actions_t)(unsafe.Pointer(fa)).F__actions = op + return 0 +} + +func Xposix_spawn_file_actions_addfchdir_np(tls *TLS, fa uintptr, fd int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fa=%v fd=%v, (%v:)", tls, fa, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + var op, v1 uintptr + _, _ = op, v1 + if fd < 0 { + return int32(EBADF) + } + op = Xmalloc(tls, uint64(40)) + if !(op != 0) { + return int32(ENOMEM) + } + (*Tfdop)(unsafe.Pointer(op)).Fcmd = int32(FDOP_FCHDIR) + (*Tfdop)(unsafe.Pointer(op)).Ffd = fd + v1 = (*Tposix_spawn_file_actions_t)(unsafe.Pointer(fa)).F__actions + (*Tfdop)(unsafe.Pointer(op)).Fnext = v1 + if v1 != 0 { + (*Tfdop)(unsafe.Pointer((*Tfdop)(unsafe.Pointer(op)).Fnext)).Fprev = op + } + (*Tfdop)(unsafe.Pointer(op)).Fprev = uintptr(0) + (*Tposix_spawn_file_actions_t)(unsafe.Pointer(fa)).F__actions = op + return 0 +} + +func Xposix_spawn_file_actions_addopen(tls *TLS, fa uintptr, fd int32, path uintptr, flags int32, mode Tmode_t) (r int32) { + if __ccgo_strace { + trc("tls=%v fa=%v fd=%v path=%v flags=%v mode=%v, (%v:)", tls, fa, fd, path, flags, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + var op, v1 uintptr + _, _ = op, v1 + if fd < 0 { + return int32(EBADF) + } + op = Xmalloc(tls, uint64(40)+Xstrlen(tls, path)+uint64(1)) + if !(op != 0) { + return int32(ENOMEM) + } + (*Tfdop)(unsafe.Pointer(op)).Fcmd = int32(FDOP_OPEN) + (*Tfdop)(unsafe.Pointer(op)).Ffd = fd + (*Tfdop)(unsafe.Pointer(op)).Foflag = flags + (*Tfdop)(unsafe.Pointer(op)).Fmode = mode + Xstrcpy(tls, op+36, path) + v1 = (*Tposix_spawn_file_actions_t)(unsafe.Pointer(fa)).F__actions + (*Tfdop)(unsafe.Pointer(op)).Fnext = v1 + if v1 != 0 { + (*Tfdop)(unsafe.Pointer((*Tfdop)(unsafe.Pointer(op)).Fnext)).Fprev = op + } + (*Tfdop)(unsafe.Pointer(op)).Fprev = uintptr(0) + (*Tposix_spawn_file_actions_t)(unsafe.Pointer(fa)).F__actions = op + return 0 +} + +func Xposix_spawn_file_actions_destroy(tls *TLS, fa uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fa=%v, (%v:)", tls, fa, origin(2)) + defer func() { trc("-> %v", r) }() + } + var next, op uintptr + _, _ = next, op + op = (*Tposix_spawn_file_actions_t)(unsafe.Pointer(fa)).F__actions + for op != 0 { + next = (*Tfdop)(unsafe.Pointer(op)).Fnext + Xfree(tls, op) + op = next + } + return 0 +} + +func Xposix_spawn_file_actions_init(tls *TLS, fa uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fa=%v, (%v:)", tls, fa, origin(2)) + defer func() { trc("-> %v", r) }() + } + (*Tposix_spawn_file_actions_t)(unsafe.Pointer(fa)).F__actions = uintptr(0) + return 0 +} + +func Xposix_spawnattr_destroy(tls *TLS, attr uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v attr=%v, (%v:)", tls, attr, origin(2)) + defer func() { trc("-> %v", r) }() + } + return 0 +} + +func Xposix_spawnattr_getflags(tls *TLS, attr uintptr, flags uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v attr=%v flags=%v, (%v:)", tls, attr, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + *(*int16)(unsafe.Pointer(flags)) = int16((*Tposix_spawnattr_t)(unsafe.Pointer(attr)).F__flags) + return 0 +} + +func Xposix_spawnattr_getpgroup(tls *TLS, attr uintptr, pgrp uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v attr=%v pgrp=%v, (%v:)", tls, attr, pgrp, origin(2)) + defer func() { trc("-> %v", r) }() + } + *(*Tpid_t)(unsafe.Pointer(pgrp)) = (*Tposix_spawnattr_t)(unsafe.Pointer(attr)).F__pgrp + return 0 +} + +func Xposix_spawnattr_getsigdefault(tls *TLS, attr uintptr, def uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v attr=%v def=%v, (%v:)", tls, attr, def, origin(2)) + defer func() { trc("-> %v", r) }() + } + *(*Tsigset_t)(unsafe.Pointer(def)) = (*Tposix_spawnattr_t)(unsafe.Pointer(attr)).F__def + return 0 +} + +func Xposix_spawnattr_getsigmask(tls *TLS, attr uintptr, mask uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v attr=%v mask=%v, (%v:)", tls, attr, mask, origin(2)) + defer func() { trc("-> %v", r) }() + } + *(*Tsigset_t)(unsafe.Pointer(mask)) = (*Tposix_spawnattr_t)(unsafe.Pointer(attr)).F__mask + return 0 +} + +func Xposix_spawnattr_init(tls *TLS, attr uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v attr=%v, (%v:)", tls, attr, origin(2)) + defer func() { trc("-> %v", r) }() + } + *(*Tposix_spawnattr_t)(unsafe.Pointer(attr)) = Tposix_spawnattr_t{} + return 0 +} + +func Xposix_spawnattr_getschedparam(tls *TLS, attr uintptr, schedparam uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v attr=%v schedparam=%v, (%v:)", tls, attr, schedparam, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(ENOSYS) +} + +func Xposix_spawnattr_setschedparam(tls *TLS, attr uintptr, schedparam uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v attr=%v schedparam=%v, (%v:)", tls, attr, schedparam, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(ENOSYS) +} + +func Xposix_spawnattr_getschedpolicy(tls *TLS, attr uintptr, policy uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v attr=%v policy=%v, (%v:)", tls, attr, policy, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(ENOSYS) +} + +func Xposix_spawnattr_setschedpolicy(tls *TLS, attr uintptr, policy int32) (r int32) { + if __ccgo_strace { + trc("tls=%v attr=%v policy=%v, (%v:)", tls, attr, policy, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(ENOSYS) +} + +func Xposix_spawnattr_setflags(tls *TLS, attr uintptr, flags int16) (r int32) { + if __ccgo_strace { + trc("tls=%v attr=%v flags=%v, (%v:)", tls, attr, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + var all_flags uint32 + _ = all_flags + all_flags = uint32(Int32FromInt32(POSIX_SPAWN_RESETIDS) | Int32FromInt32(POSIX_SPAWN_SETPGROUP) | Int32FromInt32(POSIX_SPAWN_SETSIGDEF) | Int32FromInt32(POSIX_SPAWN_SETSIGMASK) | Int32FromInt32(POSIX_SPAWN_SETSCHEDPARAM) | Int32FromInt32(POSIX_SPAWN_SETSCHEDULER) | Int32FromInt32(POSIX_SPAWN_USEVFORK) | Int32FromInt32(POSIX_SPAWN_SETSID)) + if uint32(flags) & ^all_flags != 0 { + return int32(EINVAL) + } + (*Tposix_spawnattr_t)(unsafe.Pointer(attr)).F__flags = int32(flags) + return 0 +} + +func Xposix_spawnattr_setpgroup(tls *TLS, attr uintptr, pgrp Tpid_t) (r int32) { + if __ccgo_strace { + trc("tls=%v attr=%v pgrp=%v, (%v:)", tls, attr, pgrp, origin(2)) + defer func() { trc("-> %v", r) }() + } + (*Tposix_spawnattr_t)(unsafe.Pointer(attr)).F__pgrp = pgrp + return 0 +} + +func Xposix_spawnattr_setsigdefault(tls *TLS, attr uintptr, def uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v attr=%v def=%v, (%v:)", tls, attr, def, origin(2)) + defer func() { trc("-> %v", r) }() + } + (*Tposix_spawnattr_t)(unsafe.Pointer(attr)).F__def = *(*Tsigset_t)(unsafe.Pointer(def)) + return 0 +} + +func Xposix_spawnattr_setsigmask(tls *TLS, attr uintptr, mask uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v attr=%v mask=%v, (%v:)", tls, attr, mask, origin(2)) + defer func() { trc("-> %v", r) }() + } + (*Tposix_spawnattr_t)(unsafe.Pointer(attr)).F__mask = *(*Tsigset_t)(unsafe.Pointer(mask)) + return 0 +} + +func Xvfork(tls *TLS) (r Tpid_t) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + /* vfork syscall cannot be made from C code */ + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_clone), int64(Int32FromInt32(SIGCHLD)), int64(Int32FromInt32(0)))))) +} +func Xwait(tls *TLS, status uintptr) (r Tpid_t) { + if __ccgo_strace { + trc("tls=%v status=%v, (%v:)", tls, status, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xwaitpid(tls, -Int32FromInt32(1), status, 0) +} + +func Xwaitid(tls *TLS, type1 Tidtype_t, id Tid_t, info uintptr, options int32) (r int32) { + if __ccgo_strace { + trc("tls=%v type1=%v id=%v info=%v options=%v, (%v:)", tls, type1, id, info, options, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_waitid), int64(type1), int64(id), int64(info), int64(options), int64(Int32FromInt32(0)), 0)))) +} + +func Xwaitpid(tls *TLS, pid Tpid_t, status uintptr, options int32) (r Tpid_t) { + if __ccgo_strace { + trc("tls=%v pid=%v status=%v options=%v, (%v:)", tls, pid, status, options, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_wait4), int64(pid), int64(status), int64(options), int64(Int32FromInt32(0)), 0, 0)))) +} + +const BRACKET = -3 +const END = 0 +const FNM_CASEFOLD = 16 +const FNM_FILE_NAME = 1 +const FNM_LEADING_DIR = 8 +const FNM_NOESCAPE = 2 +const FNM_NOMATCH = 1 +const FNM_NOSYS = -1 +const FNM_PATHNAME = 1 +const FNM_PERIOD = 4 +const QUESTION = -4 +const STAR = -5 +const UNMATCHABLE = -2 + +func _str_next(tls *TLS, str uintptr, n Tsize_t, step uintptr) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var k int32 + var _ /* wc at bp+0 */ Twchar_t + _ = k + if !(n != 0) { + *(*Tsize_t)(unsafe.Pointer(step)) = uint64(0) + return 0 + } + if uint32(*(*uint8)(unsafe.Pointer(str))) >= uint32(128) { + k = Xmbtowc(tls, bp, str, n) + if k < 0 { + *(*Tsize_t)(unsafe.Pointer(step)) = uint64(1) + return -int32(1) + } + *(*Tsize_t)(unsafe.Pointer(step)) = uint64(k) + return int32(*(*Twchar_t)(unsafe.Pointer(bp))) + } + *(*Tsize_t)(unsafe.Pointer(step)) = uint64(1) + return int32(*(*uint8)(unsafe.Pointer(str))) +} + +func _pat_next(tls *TLS, pat uintptr, m Tsize_t, step uintptr, flags int32) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var esc, k1, z int32 + var k Tsize_t + var _ /* wc at bp+0 */ Twchar_t + _, _, _, _ = esc, k, k1, z + esc = 0 + if !(m != 0) || !(*(*uint8)(unsafe.Pointer(pat)) != 0) { + *(*Tsize_t)(unsafe.Pointer(step)) = uint64(0) + return END + } + *(*Tsize_t)(unsafe.Pointer(step)) = uint64(1) + if int32(*(*uint8)(unsafe.Pointer(pat))) == int32('\\') && *(*uint8)(unsafe.Pointer(pat + 1)) != 0 && !(flags&Int32FromInt32(FNM_NOESCAPE) != 0) { + *(*Tsize_t)(unsafe.Pointer(step)) = uint64(2) + pat++ + esc = int32(1) + goto escaped + } + if int32(*(*uint8)(unsafe.Pointer(pat))) == int32('[') { + k = uint64(1) + if k < m { + if int32(*(*uint8)(unsafe.Pointer(pat + uintptr(k)))) == int32('^') || int32(*(*uint8)(unsafe.Pointer(pat + uintptr(k)))) == int32('!') { + k++ + } + } + if k < m { + if int32(*(*uint8)(unsafe.Pointer(pat + uintptr(k)))) == int32(']') { + k++ + } + } + for { + if !(k < m && *(*uint8)(unsafe.Pointer(pat + uintptr(k))) != 0 && int32(*(*uint8)(unsafe.Pointer(pat + uintptr(k)))) != int32(']')) { + break + } + if k+uint64(1) < m && *(*uint8)(unsafe.Pointer(pat + uintptr(k+uint64(1)))) != 0 && int32(*(*uint8)(unsafe.Pointer(pat + uintptr(k)))) == int32('[') && (int32(*(*uint8)(unsafe.Pointer(pat + uintptr(k+uint64(1))))) == int32(':') || int32(*(*uint8)(unsafe.Pointer(pat + uintptr(k+uint64(1))))) == int32('.') || int32(*(*uint8)(unsafe.Pointer(pat + uintptr(k+uint64(1))))) == int32('=')) { + z = int32(*(*uint8)(unsafe.Pointer(pat + uintptr(k+uint64(1))))) + k += uint64(2) + if k < m && *(*uint8)(unsafe.Pointer(pat + uintptr(k))) != 0 { + k++ + } + for k < m && *(*uint8)(unsafe.Pointer(pat + uintptr(k))) != 0 && (int32(*(*uint8)(unsafe.Pointer(pat + uintptr(k-uint64(1))))) != z || int32(*(*uint8)(unsafe.Pointer(pat + uintptr(k)))) != int32(']')) { + k++ + } + if k == m || !(*(*uint8)(unsafe.Pointer(pat + uintptr(k))) != 0) { + break + } + } + goto _1 + _1: + ; + k++ + } + if k == m || !(*(*uint8)(unsafe.Pointer(pat + uintptr(k))) != 0) { + *(*Tsize_t)(unsafe.Pointer(step)) = uint64(1) + return int32('[') + } + *(*Tsize_t)(unsafe.Pointer(step)) = k + uint64(1) + return -int32(3) + } + if int32(*(*uint8)(unsafe.Pointer(pat))) == int32('*') { + return -int32(5) + } + if int32(*(*uint8)(unsafe.Pointer(pat))) == int32('?') { + return -int32(4) + } + goto escaped +escaped: + ; + if uint32(*(*uint8)(unsafe.Pointer(pat))) >= uint32(128) { + k1 = Xmbtowc(tls, bp, pat, m) + if k1 < 0 { + *(*Tsize_t)(unsafe.Pointer(step)) = uint64(0) + return -int32(2) + } + *(*Tsize_t)(unsafe.Pointer(step)) = uint64(k1 + esc) + return int32(*(*Twchar_t)(unsafe.Pointer(bp))) + } + return int32(*(*uint8)(unsafe.Pointer(pat))) +} + +func _casefold(tls *TLS, k int32) (r int32) { + var c int32 + var v1 uint32 + _, _ = c, v1 + c = int32(Xtowupper(tls, uint32(k))) + if c == k { + v1 = Xtowlower(tls, uint32(k)) + } else { + v1 = uint32(c) + } + return int32(v1) +} + +func _match_bracket(tls *TLS, p uintptr, k int32, kfold int32) (r int32) { + bp := tls.Alloc(32) + defer tls.Free(32) + var inv, l, l1, z int32 + var p0 uintptr + var _ /* buf at bp+8 */ [16]uint8 + var _ /* wc at bp+0 */ Twchar_t + var _ /* wc2 at bp+4 */ Twchar_t + _, _, _, _, _ = inv, l, l1, p0, z + inv = 0 + p++ + if int32(*(*uint8)(unsafe.Pointer(p))) == int32('^') || int32(*(*uint8)(unsafe.Pointer(p))) == int32('!') { + inv = int32(1) + p++ + } + if int32(*(*uint8)(unsafe.Pointer(p))) == int32(']') { + if k == int32(']') { + return BoolInt32(!(inv != 0)) + } + p++ + } else { + if int32(*(*uint8)(unsafe.Pointer(p))) == int32('-') { + if k == int32('-') { + return BoolInt32(!(inv != 0)) + } + p++ + } + } + *(*Twchar_t)(unsafe.Pointer(bp)) = uint32(*(*uint8)(unsafe.Pointer(p + uintptr(-Int32FromInt32(1))))) + for { + if !(int32(*(*uint8)(unsafe.Pointer(p))) != int32(']')) { + break + } + if int32(*(*uint8)(unsafe.Pointer(p))) == int32('-') && int32(*(*uint8)(unsafe.Pointer(p + 1))) != int32(']') { + l = Xmbtowc(tls, bp+4, p+uintptr(1), uint64(4)) + if l < 0 { + return 0 + } + if *(*Twchar_t)(unsafe.Pointer(bp)) <= *(*Twchar_t)(unsafe.Pointer(bp + 4)) { + if uint32(k)-*(*Twchar_t)(unsafe.Pointer(bp)) <= *(*Twchar_t)(unsafe.Pointer(bp + 4))-*(*Twchar_t)(unsafe.Pointer(bp)) || uint32(kfold)-*(*Twchar_t)(unsafe.Pointer(bp)) <= *(*Twchar_t)(unsafe.Pointer(bp + 4))-*(*Twchar_t)(unsafe.Pointer(bp)) { + return BoolInt32(!(inv != 0)) + } + } + p += uintptr(l - int32(1)) + goto _1 + } + if int32(*(*uint8)(unsafe.Pointer(p))) == int32('[') && (int32(*(*uint8)(unsafe.Pointer(p + 1))) == int32(':') || int32(*(*uint8)(unsafe.Pointer(p + 1))) == int32('.') || int32(*(*uint8)(unsafe.Pointer(p + 1))) == int32('=')) { + p0 = p + uintptr(2) + z = int32(*(*uint8)(unsafe.Pointer(p + 1))) + p += uintptr(3) + for int32(*(*uint8)(unsafe.Pointer(p + uintptr(-Int32FromInt32(1))))) != z || int32(*(*uint8)(unsafe.Pointer(p))) != int32(']') { + p++ + } + if z == int32(':') && int64(p-uintptr(1))-int64(p0) < int64(16) { + Xmemcpy(tls, bp+8, p0, uint64(int64(p-uintptr(1))-int64(p0))) + (*(*[16]uint8)(unsafe.Pointer(bp + 8)))[int64(p-uintptr(1))-int64(p0)] = uint8(0) + if Xiswctype(tls, uint32(k), Xwctype(tls, bp+8)) != 0 || Xiswctype(tls, uint32(kfold), Xwctype(tls, bp+8)) != 0 { + return BoolInt32(!(inv != 0)) + } + } + goto _1 + } + if uint32(*(*uint8)(unsafe.Pointer(p))) < uint32(128) { + *(*Twchar_t)(unsafe.Pointer(bp)) = uint32(*(*uint8)(unsafe.Pointer(p))) + } else { + l1 = Xmbtowc(tls, bp, p, uint64(4)) + if l1 < 0 { + return 0 + } + p += uintptr(l1 - int32(1)) + } + if *(*Twchar_t)(unsafe.Pointer(bp)) == uint32(k) || *(*Twchar_t)(unsafe.Pointer(bp)) == uint32(kfold) { + return BoolInt32(!(inv != 0)) + } + goto _1 + _1: + ; + p++ + } + return inv +} + +func _fnmatch_internal(tls *TLS, pat uintptr, m Tsize_t, str uintptr, n Tsize_t, flags int32) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var c, k, kfold, v12, v13, v15, v2, v3, v4, v8 int32 + var endpat, endstr, p, ptail, s, stail, v10, v6 uintptr + var tailcnt Tsize_t + var v9 bool + var _ /* pinc at bp+0 */ Tsize_t + var _ /* sinc at bp+8 */ Tsize_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, endpat, endstr, k, kfold, p, ptail, s, stail, tailcnt, v10, v12, v13, v15, v2, v3, v4, v6, v8, v9 + tailcnt = uint64(0) + if flags&int32(FNM_PERIOD) != 0 { + if int32(*(*uint8)(unsafe.Pointer(str))) == int32('.') && int32(*(*uint8)(unsafe.Pointer(pat))) != int32('.') { + return int32(FNM_NOMATCH) + } + } + for { + v2 = _pat_next(tls, pat, m, bp, flags) + c = v2 + switch v2 { + case -int32(2): + return int32(FNM_NOMATCH) + case -int32(5): + pat++ + m-- + default: + k = _str_next(tls, str, n, bp+8) + if k <= 0 { + if c == END { + v3 = 0 + } else { + v3 = int32(FNM_NOMATCH) + } + return v3 + } + str += uintptr(*(*Tsize_t)(unsafe.Pointer(bp + 8))) + n -= *(*Tsize_t)(unsafe.Pointer(bp + 8)) + if flags&int32(FNM_CASEFOLD) != 0 { + v4 = _casefold(tls, k) + } else { + v4 = k + } + kfold = v4 + if c == -int32(3) { + if !(_match_bracket(tls, pat, k, kfold) != 0) { + return int32(FNM_NOMATCH) + } + } else { + if c != -int32(4) && k != c && kfold != c { + return int32(FNM_NOMATCH) + } + } + pat += uintptr(*(*Tsize_t)(unsafe.Pointer(bp))) + m -= *(*Tsize_t)(unsafe.Pointer(bp)) + goto _1 + } + break + goto _1 + _1: + } + /* Compute real pat length if it was initially unknown/-1 */ + m = Xstrnlen(tls, pat, m) + endpat = pat + uintptr(m) + /* Find the last * in pat and count chars needed after it */ + v6 = pat + ptail = v6 + p = v6 + for { + if !(p < endpat) { + break + } + switch _pat_next(tls, p, uint64(int64(endpat)-int64(p)), bp, flags) { + case -int32(2): + return int32(FNM_NOMATCH) + case -int32(5): + tailcnt = uint64(0) + ptail = p + uintptr(1) + default: + tailcnt++ + break + } + goto _5 + _5: + ; + p += uintptr(*(*Tsize_t)(unsafe.Pointer(bp))) + } + /* Past this point we need not check for UNMATCHABLE in pat, + * because all of pat has already been parsed once. */ + /* Compute real str length if it was initially unknown/-1 */ + n = Xstrnlen(tls, str, n) + endstr = str + uintptr(n) + if n < tailcnt { + return int32(FNM_NOMATCH) + } + /* Find the final tailcnt chars of str, accounting for UTF-8. + * On illegal sequences we may get it wrong, but in that case + * we necessarily have a matching failure anyway. */ + s = endstr + for { + if !(s > str && tailcnt != 0) { + break + } + if v9 = uint32(*(*uint8)(unsafe.Pointer(s + uintptr(-Int32FromInt32(1))))) < uint32(128); !v9 { + if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale)) != 0) { + v8 = int32(4) + } else { + v8 = int32(1) + } + } + if v9 || v8 == int32(1) { + s-- + } else { + for { + s-- + v10 = s + if !(uint32(*(*uint8)(unsafe.Pointer(v10)))-uint32(0x80) < uint32(0x40) && s > str) { + break + } + } + } + goto _7 + _7: + ; + tailcnt-- + } + if tailcnt != 0 { + return int32(FNM_NOMATCH) + } + stail = s + /* Check that the pat and str tails match */ + p = ptail + for { + c = _pat_next(tls, p, uint64(int64(endpat)-int64(p)), bp, flags) + p += uintptr(*(*Tsize_t)(unsafe.Pointer(bp))) + v12 = _str_next(tls, s, uint64(int64(endstr)-int64(s)), bp+8) + k = v12 + if v12 <= 0 { + if c != END { + return int32(FNM_NOMATCH) + } + break + } + s += uintptr(*(*Tsize_t)(unsafe.Pointer(bp + 8))) + if flags&int32(FNM_CASEFOLD) != 0 { + v13 = _casefold(tls, k) + } else { + v13 = k + } + kfold = v13 + if c == -int32(3) { + if !(_match_bracket(tls, p-uintptr(*(*Tsize_t)(unsafe.Pointer(bp))), k, kfold) != 0) { + return int32(FNM_NOMATCH) + } + } else { + if c != -int32(4) && k != c && kfold != c { + return int32(FNM_NOMATCH) + } + } + goto _11 + _11: + } + /* We're all done with the tails now, so throw them out */ + endstr = stail + endpat = ptail + /* Match pattern components until there are none left */ + for pat < endpat { + p = pat + s = str + for { + c = _pat_next(tls, p, uint64(int64(endpat)-int64(p)), bp, flags) + p += uintptr(*(*Tsize_t)(unsafe.Pointer(bp))) + /* Encountering * completes/commits a component */ + if c == -int32(5) { + pat = p + str = s + break + } + k = _str_next(tls, s, uint64(int64(endstr)-int64(s)), bp+8) + if !(k != 0) { + return int32(FNM_NOMATCH) + } + if flags&int32(FNM_CASEFOLD) != 0 { + v15 = _casefold(tls, k) + } else { + v15 = k + } + kfold = v15 + if c == -int32(3) { + if !(_match_bracket(tls, p-uintptr(*(*Tsize_t)(unsafe.Pointer(bp))), k, kfold) != 0) { + break + } + } else { + if c != -int32(4) && k != c && kfold != c { + break + } + } + s += uintptr(*(*Tsize_t)(unsafe.Pointer(bp + 8))) + goto _14 + _14: + } + if c == -int32(5) { + continue + } + /* If we failed, advance str, by 1 char if it's a valid + * char, or past all invalid bytes otherwise. */ + k = _str_next(tls, str, uint64(int64(endstr)-int64(str)), bp+8) + if k > 0 { + str += uintptr(*(*Tsize_t)(unsafe.Pointer(bp + 8))) + } else { + str++ + for { + if !(_str_next(tls, str, uint64(int64(endstr)-int64(str)), bp+8) < 0) { + break + } + goto _16 + _16: + ; + str++ + } + } + } + return 0 +} + +func Xfnmatch(tls *TLS, pat uintptr, str uintptr, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v pat=%v str=%v flags=%v, (%v:)", tls, pat, str, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var c, v4 int32 + var p, s uintptr + var _ /* inc at bp+0 */ Tsize_t + _, _, _, _ = c, p, s, v4 + if flags&int32(FNM_PATHNAME) != 0 { + for { + s = str + for { + if !(*(*uint8)(unsafe.Pointer(s)) != 0 && int32(*(*uint8)(unsafe.Pointer(s))) != int32('/')) { + break + } + goto _2 + _2: + ; + s++ + } + p = pat + for { + v4 = _pat_next(tls, p, uint64(-Int32FromInt32(1)), bp, flags) + c = v4 + if !(v4 != END && c != int32('/')) { + break + } + goto _3 + _3: + ; + p += uintptr(*(*Tsize_t)(unsafe.Pointer(bp))) + } + if c != int32(*(*uint8)(unsafe.Pointer(s))) && (!(*(*uint8)(unsafe.Pointer(s)) != 0) || !(flags&Int32FromInt32(FNM_LEADING_DIR) != 0)) { + return int32(FNM_NOMATCH) + } + if _fnmatch_internal(tls, pat, uint64(int64(p)-int64(pat)), str, uint64(int64(s)-int64(str)), flags) != 0 { + return int32(FNM_NOMATCH) + } + if !(c != 0) { + return 0 + } + str = s + uintptr(1) + pat = p + uintptr(*(*Tsize_t)(unsafe.Pointer(bp))) + goto _1 + _1: + } + } else { + if flags&int32(FNM_LEADING_DIR) != 0 { + s = str + for { + if !(*(*uint8)(unsafe.Pointer(s)) != 0) { + break + } + if int32(*(*uint8)(unsafe.Pointer(s))) != int32('/') { + goto _5 + } + if !(_fnmatch_internal(tls, pat, uint64(-Int32FromInt32(1)), str, uint64(int64(s)-int64(str)), flags) != 0) { + return 0 + } + goto _5 + _5: + ; + s++ + } + } + } + return _fnmatch_internal(tls, pat, uint64(-Int32FromInt32(1)), str, uint64(-Int32FromInt32(1)), flags) +} + +const GLOB_ABORTED = 2 +const GLOB_APPEND = 32 +const GLOB_DOOFFS = 8 +const GLOB_ERR = 1 +const GLOB_MARK = 2 +const GLOB_NOCHECK = 16 +const GLOB_NOESCAPE = 64 +const GLOB_NOMATCH = 3 +const GLOB_NOSORT = 4 +const GLOB_NOSPACE = 1 +const GLOB_NOSYS = 4 +const GLOB_PERIOD = 128 +const GLOB_TILDE = 4096 +const GLOB_TILDE_CHECK = 16384 + +type Tglob_t = struct { + Fgl_pathc Tsize_t + Fgl_pathv uintptr + Fgl_offs Tsize_t + F__dummy1 int32 + F__dummy2 [5]uintptr +} + +type Tmatch = struct { + Fnext uintptr +} + +func _append(tls *TLS, tail uintptr, name uintptr, len1 Tsize_t, mark int32) (r int32) { + var new1 uintptr + _ = new1 + new1 = Xmalloc(tls, uint64(8)+len1+uint64(2)) + if !(new1 != 0) { + return -int32(1) + } + (*Tmatch)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(tail)))).Fnext = new1 + (*Tmatch)(unsafe.Pointer(new1)).Fnext = UintptrFromInt32(0) + Xmemcpy(tls, new1+8, name, len1+uint64(1)) + if mark != 0 && len1 != 0 && int32(*(*uint8)(unsafe.Pointer(name + uintptr(len1-uint64(1))))) != int32('/') { + *(*uint8)(unsafe.Pointer(new1 + 8 + uintptr(len1))) = uint8('/') + *(*uint8)(unsafe.Pointer(new1 + 8 + uintptr(len1+uint64(1)))) = uint8(0) + } + *(*uintptr)(unsafe.Pointer(tail)) = new1 + return 0 +} + +func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flags int32, errfunc uintptr, tail uintptr) (r1 int32) { + bp := tls.Alloc(128) + defer tls.Free(128) + var de, dir, p, p2, v11, v2, v7, v8 uintptr + var fnm_flags, in_bracket, old_errno, overflow, r, readerr, v10, v9 int32 + var i, j, v4, v5 Tptrdiff_t + var l, v1 Tsize_t + var saved_sep uint8 + var _ /* st at bp+0 */ Tstat + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = de, dir, fnm_flags, i, in_bracket, j, l, old_errno, overflow, p, p2, r, readerr, saved_sep, v1, v10, v11, v2, v4, v5, v7, v8, v9 + /* If GLOB_MARK is unused, we don't care about type. */ + if !(type1 != 0) && !(flags&Int32FromInt32(GLOB_MARK) != 0) { + type1 = int32(DT_REG) + } + /* Special-case the remaining pattern being all slashes, in + * which case we can use caller-passed type if it's a dir. */ + if *(*uint8)(unsafe.Pointer(pat)) != 0 && type1 != int32(DT_DIR) { + type1 = 0 + } + for pos+uint64(1) < uint64(PATH_MAX) && int32(*(*uint8)(unsafe.Pointer(pat))) == int32('/') { + v1 = pos + pos++ + v2 = pat + pat++ + *(*uint8)(unsafe.Pointer(buf + uintptr(v1))) = *(*uint8)(unsafe.Pointer(v2)) + } + /* Consume maximal [escaped-]literal prefix of pattern, copying + * and un-escaping it to the running buffer as we go. */ + i = 0 + j = 0 + in_bracket = 0 + overflow = 0 + for { + if !(int32(*(*uint8)(unsafe.Pointer(pat + uintptr(i)))) != int32('*') && int32(*(*uint8)(unsafe.Pointer(pat + uintptr(i)))) != int32('?') && (!(in_bracket != 0) || int32(*(*uint8)(unsafe.Pointer(pat + uintptr(i)))) != int32(']'))) { + break + } + if !(*(*uint8)(unsafe.Pointer(pat + uintptr(i))) != 0) { + if overflow != 0 { + return 0 + } + pat += uintptr(i) + pos += uint64(j) + v4 = Int64FromInt32(0) + j = v4 + i = v4 + break + } else { + if int32(*(*uint8)(unsafe.Pointer(pat + uintptr(i)))) == int32('[') { + in_bracket = int32(1) + } else { + if int32(*(*uint8)(unsafe.Pointer(pat + uintptr(i)))) == int32('\\') && !(flags&Int32FromInt32(GLOB_NOESCAPE) != 0) { + /* Backslashes inside a bracket are (at least by + * our interpretation) non-special, so if next + * char is ']' we have a complete expression. */ + if in_bracket != 0 && int32(*(*uint8)(unsafe.Pointer(pat + uintptr(i+int64(1))))) == int32(']') { + break + } + /* Unpaired final backslash never matches. */ + if !(*(*uint8)(unsafe.Pointer(pat + uintptr(i+int64(1)))) != 0) { + return 0 + } + i++ + } + } + } + if int32(*(*uint8)(unsafe.Pointer(pat + uintptr(i)))) == int32('/') { + if overflow != 0 { + return 0 + } + in_bracket = 0 + pat += uintptr(i + int64(1)) + i = int64(-int32(1)) + pos += uint64(j + int64(1)) + j = int64(-int32(1)) + } + /* Only store a character if it fits in the buffer, but if + * a potential bracket expression is open, the overflow + * must be remembered and handled later only if the bracket + * is unterminated (and thereby a literal), so as not to + * disallow long bracket expressions with short matches. */ + if pos+uint64(j+Int64FromInt32(1)) < uint64(PATH_MAX) { + v5 = j + j++ + *(*uint8)(unsafe.Pointer(buf + uintptr(pos+uint64(v5)))) = *(*uint8)(unsafe.Pointer(pat + uintptr(i))) + } else { + if in_bracket != 0 { + overflow = int32(1) + } else { + return 0 + } + } + /* If we consume any new components, the caller-passed type + * or dummy type from above is no longer valid. */ + type1 = 0 + goto _3 + _3: + ; + i++ + } + *(*uint8)(unsafe.Pointer(buf + uintptr(pos))) = uint8(0) + if !(*(*uint8)(unsafe.Pointer(pat)) != 0) { + if flags&int32(GLOB_MARK) != 0 && (!(type1 != 0) || type1 == int32(DT_LNK)) && !(Xstat(tls, buf, bp) != 0) { + if (*(*Tstat)(unsafe.Pointer(bp))).Fst_mode&uint32(S_IFMT) == uint32(S_IFDIR) { + type1 = int32(DT_DIR) + } else { + type1 = int32(DT_REG) + } + } + if !(type1 != 0) && Xlstat(tls, buf, bp) != 0 { + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(ENOENT) && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0) { + return int32(GLOB_ABORTED) + } + return 0 + } + if _append(tls, tail, buf, pos, BoolInt32(flags&int32(GLOB_MARK) != 0 && type1 == int32(DT_DIR))) != 0 { + return int32(GLOB_NOSPACE) + } + return 0 + } + p2 = Xstrchr(tls, pat, int32('/')) + saved_sep = uint8('/') + /* Check if the '/' was escaped and, if so, remove the escape char + * so that it will not be unpaired when passed to fnmatch. */ + if p2 != 0 && !(flags&Int32FromInt32(GLOB_NOESCAPE) != 0) { + p = p2 + for { + if !(p > pat && int32(*(*uint8)(unsafe.Pointer(p + uintptr(-Int32FromInt32(1))))) == int32('\\')) { + break + } + goto _6 + _6: + ; + p-- + } + if (int64(p2)-int64(p))%int64(2) != 0 { + p2-- + saved_sep = uint8('\\') + } + } + if pos != 0 { + v7 = buf + } else { + v7 = __ccgo_ts + 558 + } + dir = Xopendir(tls, v7) + if !(dir != 0) { + if (*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0 { + return int32(GLOB_ABORTED) + } + return 0 + } + old_errno = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + for { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = 0 + v8 = Xreaddir(tls, dir) + de = v8 + if !(v8 != 0) { + break + } + /* Quickly skip non-directories when there's pattern left. */ + if p2 != 0 && (*Tdirent)(unsafe.Pointer(de)).Fd_type != 0 && int32((*Tdirent)(unsafe.Pointer(de)).Fd_type) != int32(DT_DIR) && int32((*Tdirent)(unsafe.Pointer(de)).Fd_type) != int32(DT_LNK) { + continue + } + l = Xstrlen(tls, de+19) + if l >= uint64(PATH_MAX)-pos { + continue + } + if p2 != 0 { + *(*uint8)(unsafe.Pointer(p2)) = uint8(0) + } + if flags&int32(GLOB_NOESCAPE) != 0 { + v9 = int32(FNM_NOESCAPE) + } else { + v9 = 0 + } + if !(flags&Int32FromInt32(GLOB_PERIOD) != 0) { + v10 = int32(FNM_PERIOD) + } else { + v10 = 0 + } + fnm_flags = v9 | v10 + if Xfnmatch(tls, pat, de+19, fnm_flags) != 0 { + continue + } + /* With GLOB_PERIOD, don't allow matching . or .. unless + * fnmatch would match them with FNM_PERIOD rules in effect. */ + if p2 != 0 && flags&int32(GLOB_PERIOD) != 0 && int32(*(*uint8)(unsafe.Pointer(de + 19))) == int32('.') && (!(*(*uint8)(unsafe.Pointer(de + 19 + 1)) != 0) || int32(*(*uint8)(unsafe.Pointer(de + 19 + 1))) == int32('.') && !(*(*uint8)(unsafe.Pointer(de + 19 + 2)) != 0)) && Xfnmatch(tls, pat, de+19, fnm_flags|int32(FNM_PERIOD)) != 0 { + continue + } + Xmemcpy(tls, buf+uintptr(pos), de+19, l+uint64(1)) + if p2 != 0 { + *(*uint8)(unsafe.Pointer(p2)) = saved_sep + } + if p2 != 0 { + v11 = p2 + } else { + v11 = __ccgo_ts + } + r = _do_glob(tls, buf, pos+l, int32((*Tdirent)(unsafe.Pointer(de)).Fd_type), v11, flags, errfunc, tail) + if r != 0 { + Xclosedir(tls, dir) + return r + } + } + readerr = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + if p2 != 0 { + *(*uint8)(unsafe.Pointer(p2)) = saved_sep + } + Xclosedir(tls, dir) + if readerr != 0 && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0) { + return int32(GLOB_ABORTED) + } + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = old_errno + return 0 +} + +func _ignore_err(tls *TLS, path uintptr, err int32) (r int32) { + return 0 +} + +func _freelist(tls *TLS, head uintptr) { + var match, next uintptr + _, _ = match, next + match = (*Tmatch)(unsafe.Pointer(head)).Fnext + for { + if !(match != 0) { + break + } + next = (*Tmatch)(unsafe.Pointer(match)).Fnext + Xfree(tls, match) + goto _1 + _1: + ; + match = next + } +} + +func _sort(tls *TLS, a uintptr, b uintptr) (r int32) { + return Xstrcmp(tls, *(*uintptr)(unsafe.Pointer(a)), *(*uintptr)(unsafe.Pointer(b))) +} + +func _expand_tilde(tls *TLS, pat uintptr, buf uintptr, pos uintptr) (r int32) { + bp := tls.Alloc(64) + defer tls.Free(64) + var delim, v1, v12 uint8 + var home, name_end, p, v11, v2, v3 uintptr + var i, v10, v13 Tsize_t + var v4 int32 + var _ /* pw at bp+0 */ Tpasswd + var _ /* res at bp+48 */ uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _ = delim, home, i, name_end, p, v1, v10, v11, v12, v13, v2, v3, v4 + p = *(*uintptr)(unsafe.Pointer(pat)) + uintptr(1) + i = uint64(0) + name_end = X__strchrnul(tls, p, int32('/')) + v1 = *(*uint8)(unsafe.Pointer(name_end)) + delim = v1 + if v1 != 0 { + v2 = name_end + name_end++ + *(*uint8)(unsafe.Pointer(v2)) = uint8(0) + } + *(*uintptr)(unsafe.Pointer(pat)) = name_end + if *(*uint8)(unsafe.Pointer(p)) != 0 { + v3 = UintptrFromInt32(0) + } else { + v3 = Xgetenv(tls, __ccgo_ts+1395) + } + home = v3 + if !(home != 0) { + if *(*uint8)(unsafe.Pointer(p)) != 0 { + v4 = Xgetpwnam_r(tls, p, bp, buf, uint64(PATH_MAX), bp+48) + } else { + v4 = Xgetpwuid_r(tls, Xgetuid(tls), bp, buf, uint64(PATH_MAX), bp+48) + } + switch v4 { + case int32(ENOMEM): + goto _5 + default: + goto _6 + case 0: + goto _7 + } + goto _8 + _5: + ; + return int32(GLOB_NOSPACE) + _7: + ; + if !!(*(*uintptr)(unsafe.Pointer(bp + 48)) != 0) { + goto _9 + } + _6: + ; + return int32(GLOB_NOMATCH) + _9: + ; + _8: + ; + home = (*(*Tpasswd)(unsafe.Pointer(bp))).Fpw_dir + } + for i < uint64(Int32FromInt32(PATH_MAX)-Int32FromInt32(2)) && *(*uint8)(unsafe.Pointer(home)) != 0 { + v10 = i + i++ + v11 = home + home++ + *(*uint8)(unsafe.Pointer(buf + uintptr(v10))) = *(*uint8)(unsafe.Pointer(v11)) + } + if *(*uint8)(unsafe.Pointer(home)) != 0 { + return int32(GLOB_NOMATCH) + } + v12 = delim + *(*uint8)(unsafe.Pointer(buf + uintptr(i))) = v12 + if v12 != 0 { + i++ + v13 = i + *(*uint8)(unsafe.Pointer(buf + uintptr(v13))) = uint8(0) + } + *(*Tsize_t)(unsafe.Pointer(pos)) = i + return 0 +} + +func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v pat=%v flags=%v errfunc=%v g=%v, (%v:)", tls, pat, flags, errfunc, g, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(4128) + defer tls.Free(4128) + var cnt, i, offs Tsize_t + var error1 int32 + var p, pathv uintptr + var v1 uint64 + var _ /* buf at bp+16 */ [4096]uint8 + var _ /* head at bp+0 */ Tmatch + var _ /* pos at bp+4112 */ Tsize_t + var _ /* s at bp+4120 */ uintptr + var _ /* tail at bp+8 */ uintptr + _, _, _, _, _, _, _ = cnt, error1, i, offs, p, pathv, v1 + *(*Tmatch)(unsafe.Pointer(bp)) = struct { + Fnext uintptr + }{} + *(*uintptr)(unsafe.Pointer(bp + 8)) = bp + if flags&int32(GLOB_DOOFFS) != 0 { + v1 = (*Tglob_t)(unsafe.Pointer(g)).Fgl_offs + } else { + v1 = uint64(0) + } + offs = v1 + error1 = 0 + if !(errfunc != 0) { + errfunc = __ccgo_fp(_ignore_err) + } + if !(flags&Int32FromInt32(GLOB_APPEND) != 0) { + (*Tglob_t)(unsafe.Pointer(g)).Fgl_offs = offs + (*Tglob_t)(unsafe.Pointer(g)).Fgl_pathc = uint64(0) + (*Tglob_t)(unsafe.Pointer(g)).Fgl_pathv = UintptrFromInt32(0) + } + if *(*uint8)(unsafe.Pointer(pat)) != 0 { + p = Xstrdup(tls, pat) + if !(p != 0) { + return int32(GLOB_NOSPACE) + } + (*(*[4096]uint8)(unsafe.Pointer(bp + 16)))[0] = uint8(0) + *(*Tsize_t)(unsafe.Pointer(bp + 4112)) = uint64(0) + *(*uintptr)(unsafe.Pointer(bp + 4120)) = p + if flags&(Int32FromInt32(GLOB_TILDE)|Int32FromInt32(GLOB_TILDE_CHECK)) != 0 && int32(*(*uint8)(unsafe.Pointer(p))) == int32('~') { + error1 = _expand_tilde(tls, bp+4120, bp+16, bp+4112) + } + if !(error1 != 0) { + error1 = _do_glob(tls, bp+16, *(*Tsize_t)(unsafe.Pointer(bp + 4112)), 0, *(*uintptr)(unsafe.Pointer(bp + 4120)), flags, errfunc, bp+8) + } + Xfree(tls, p) + } + if error1 == int32(GLOB_NOSPACE) { + _freelist(tls, bp) + return error1 + } + cnt = uint64(0) + *(*uintptr)(unsafe.Pointer(bp + 8)) = (*(*Tmatch)(unsafe.Pointer(bp))).Fnext + for { + if !(*(*uintptr)(unsafe.Pointer(bp + 8)) != 0) { + break + } + goto _2 + _2: + ; + *(*uintptr)(unsafe.Pointer(bp + 8)) = (*Tmatch)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).Fnext + cnt++ + } + if !(cnt != 0) { + if flags&int32(GLOB_NOCHECK) != 0 { + *(*uintptr)(unsafe.Pointer(bp + 8)) = bp + if _append(tls, bp+8, pat, Xstrlen(tls, pat), 0) != 0 { + return int32(GLOB_NOSPACE) + } + cnt++ + } else { + if !(error1 != 0) { + return int32(GLOB_NOMATCH) + } + } + } + if flags&int32(GLOB_APPEND) != 0 { + pathv = Xrealloc(tls, (*Tglob_t)(unsafe.Pointer(g)).Fgl_pathv, (offs+(*Tglob_t)(unsafe.Pointer(g)).Fgl_pathc+cnt+uint64(1))*uint64(8)) + if !(pathv != 0) { + _freelist(tls, bp) + return int32(GLOB_NOSPACE) + } + (*Tglob_t)(unsafe.Pointer(g)).Fgl_pathv = pathv + offs += (*Tglob_t)(unsafe.Pointer(g)).Fgl_pathc + } else { + (*Tglob_t)(unsafe.Pointer(g)).Fgl_pathv = Xmalloc(tls, (offs+cnt+uint64(1))*uint64(8)) + if !((*Tglob_t)(unsafe.Pointer(g)).Fgl_pathv != 0) { + _freelist(tls, bp) + return int32(GLOB_NOSPACE) + } + i = uint64(0) + for { + if !(i < offs) { + break + } + *(*uintptr)(unsafe.Pointer((*Tglob_t)(unsafe.Pointer(g)).Fgl_pathv + uintptr(i)*8)) = UintptrFromInt32(0) + goto _3 + _3: + ; + i++ + } + } + i = uint64(0) + *(*uintptr)(unsafe.Pointer(bp + 8)) = (*(*Tmatch)(unsafe.Pointer(bp))).Fnext + for { + if !(i < cnt) { + break + } + *(*uintptr)(unsafe.Pointer((*Tglob_t)(unsafe.Pointer(g)).Fgl_pathv + uintptr(offs+i)*8)) = *(*uintptr)(unsafe.Pointer(bp + 8)) + 8 + goto _4 + _4: + ; + *(*uintptr)(unsafe.Pointer(bp + 8)) = (*Tmatch)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).Fnext + i++ + } + *(*uintptr)(unsafe.Pointer((*Tglob_t)(unsafe.Pointer(g)).Fgl_pathv + uintptr(offs+i)*8)) = UintptrFromInt32(0) + *(*Tsize_t)(unsafe.Pointer(g)) += cnt + if !(flags&Int32FromInt32(GLOB_NOSORT) != 0) { + Xqsort(tls, (*Tglob_t)(unsafe.Pointer(g)).Fgl_pathv+uintptr(offs)*8, cnt, uint64(8), __ccgo_fp(_sort)) + } + return error1 +} + +func Xglobfree(tls *TLS, g uintptr) { + if __ccgo_strace { + trc("tls=%v g=%v, (%v:)", tls, g, origin(2)) + } + var i Tsize_t + _ = i + i = uint64(0) + for { + if !(i < (*Tglob_t)(unsafe.Pointer(g)).Fgl_pathc) { + break + } + Xfree(tls, *(*uintptr)(unsafe.Pointer((*Tglob_t)(unsafe.Pointer(g)).Fgl_pathv + uintptr((*Tglob_t)(unsafe.Pointer(g)).Fgl_offs+i)*8))-uintptr(uint64(UintptrFromInt32(0)+8))) + goto _1 + _1: + ; + i++ + } + Xfree(tls, (*Tglob_t)(unsafe.Pointer(g)).Fgl_pathv) + (*Tglob_t)(unsafe.Pointer(g)).Fgl_pathc = uint64(0) + (*Tglob_t)(unsafe.Pointer(g)).Fgl_pathv = UintptrFromInt32(0) +} + +const ASSERTION = -2 +const ASSERT_AT_BOL = 1 +const ASSERT_AT_BOW = 16 +const ASSERT_AT_EOL = 2 +const ASSERT_AT_EOW = 32 +const ASSERT_AT_WB = 64 +const ASSERT_AT_WB_NEG = 128 +const ASSERT_BACKREF = 256 +const ASSERT_CHAR_CLASS = 4 +const ASSERT_CHAR_CLASS_NEG = 8 +const ASSERT_LAST = 256 +const BACKREF = -4 +const COPY_MAXIMIZE_FIRST_TAG = 2 +const COPY_REMOVE_TAGS = 1 +const EMPTY1 = -1 +const MAX_NEG_CLASSES = 64 +const REG_BADBR = 10 +const REG_BADPAT = 2 +const REG_BADRPT = 13 +const REG_EBRACE = 9 +const REG_EBRACK = 7 +const REG_ECOLLATE = 3 +const REG_ECTYPE = 4 +const REG_EESCAPE = 5 +const REG_ENOSYS = -1 +const REG_EPAREN = 8 +const REG_ERANGE = 11 +const REG_ESPACE = 12 +const REG_ESUBREG = 6 +const REG_EXTENDED = 1 +const REG_ICASE = 2 +const REG_NEWLINE = 4 +const REG_NOMATCH = 1 +const REG_NOSUB = 8 +const REG_NOTBOL = 1 +const REG_NOTEOL = 2 +const REG_OK = 0 +const TAG = -3 +const TRE_CHAR_MAX = 1114111 +const TRE_MEM_BLOCK_SIZE = 1024 +const TRE_REGEX_T_FIELD = 0 +const tre_ctype = 0 +const tre_isalnum = 0 +const tre_isalpha = 0 +const tre_isblank = 0 +const tre_iscntrl = 0 +const tre_isctype = 0 +const tre_isdigit = 0 +const tre_isgraph = 0 +const tre_islower = 0 +const tre_isprint = 0 +const tre_ispunct = 0 +const tre_isspace = 0 +const tre_isupper = 0 +const tre_isxdigit = 0 +const tre_mem_alloc_impl = 0 +const tre_mem_destroy = 0 +const tre_mem_new_impl = 0 +const tre_strlen = 0 +const tre_tolower = 0 +const tre_toupper = 0 +const xcalloc = 0 +const xfree = 0 +const xmalloc = 0 +const xrealloc = 0 + +type Tregoff_t = int64 + +type Tregex_t = struct { + Fre_nsub Tsize_t + F__opaque uintptr + F__padding [4]uintptr + F__nsub2 Tsize_t + F__padding2 uint8 +} + +type Tre_pattern_buffer = Tregex_t + +type Tregmatch_t = struct { + Frm_so Tregoff_t + Frm_eo Tregoff_t +} + +type Treg_errcode_t = int32 + +type Ttre_char_t = uint32 + +type Ttre_cint_t = uint32 + +type Ttre_ctype_t = uint64 + +type Ttre_tnfa_transition_t = struct { + Fcode_min Ttre_cint_t + Fcode_max Ttre_cint_t + Fstate uintptr + Fstate_id int32 + Ftags uintptr + Fassertions int32 + Fu struct { + Fbackref [0]int32 + Fclass Ttre_ctype_t + } + Fneg_classes uintptr +} + +type Ttnfa_transition = Ttre_tnfa_transition_t + +type Ttre_tag_direction_t = int32 + +const _TRE_TAG_MINIMIZE = 0 +const _TRE_TAG_MAXIMIZE = 1 + +type Ttre_submatch_data = struct { + Fso_tag int32 + Feo_tag int32 + Fparents uintptr +} + +type Ttre_submatch_data_t = struct { + Fso_tag int32 + Feo_tag int32 + Fparents uintptr +} + +type Ttre_tnfa_t = struct { + Ftransitions uintptr + Fnum_transitions uint32 + Finitial uintptr + Ffinal uintptr + Fsubmatch_data uintptr + Ffirstpos_chars uintptr + Ffirst_char int32 + Fnum_submatches uint32 + Ftag_directions uintptr + Fminimal_tags uintptr + Fnum_tags int32 + Fnum_minimals int32 + Fend_tag int32 + Fnum_states int32 + Fcflags int32 + Fhave_backrefs int32 + Fhave_approx int32 +} + +type Ttnfa = Ttre_tnfa_t + +type Ttre_list_t = struct { + Fdata uintptr + Fnext uintptr +} + +type Ttre_list = Ttre_list_t + +type Ttre_mem_t = uintptr + +type Ttre_mem_struct = struct { + Fblocks uintptr + Fcurrent uintptr + Fptr uintptr + Fn Tsize_t + Ffailed int32 + Fprovided uintptr +} + +/*********************************************************************** + from tre-compile.h +***********************************************************************/ + +type Ttre_pos_and_tags_t = struct { + Fposition int32 + Fcode_min int32 + Fcode_max int32 + Ftags uintptr + Fassertions int32 + Fclass Ttre_ctype_t + Fneg_classes uintptr + Fbackref int32 +} + +/*********************************************************************** + from tre-ast.c and tre-ast.h +***********************************************************************/ + +// C documentation +// +// /* The different AST node types. */ +type Ttre_ast_type_t = int32 + +const _LITERAL = 0 +const _CATENATION = 1 +const _ITERATION = 2 +const _UNION = 3 + +/* Special subtypes of TRE_LITERAL. */ + +// C documentation +// +// /* A generic AST node. All AST nodes consist of this node on the top +// level with `obj' pointing to the actual content. */ +type Ttre_ast_node_t = struct { + Ftype1 Ttre_ast_type_t + Fobj uintptr + Fnullable int32 + Fsubmatch_id int32 + Fnum_submatches int32 + Fnum_tags int32 + Ffirstpos uintptr + Flastpos uintptr +} + +// C documentation +// +// /* A "literal" node. These are created for assertions, back references, +// tags, matching parameter settings, and all expressions that match one +// character. */ +type Ttre_literal_t = struct { + Fcode_min int64 + Fcode_max int64 + Fposition int32 + Fclass Ttre_ctype_t + Fneg_classes uintptr +} + +// C documentation +// +// /* A "catenation" node. These are created when two regexps are concatenated. +// If there are more than one subexpressions in sequence, the `left' part +// holds all but the last, and `right' part holds the last subexpression +// (catenation is left associative). */ +type Ttre_catenation_t = struct { + Fleft uintptr + Fright uintptr +} + +// C documentation +// +// /* An "iteration" node. These are created for the "*", "+", "?", and "{m,n}" +// operators. */ +type Ttre_iteration_t = struct { + Farg uintptr + Fmin int32 + Fmax int32 + F__ccgo16 uint8 +} + +// C documentation +// +// /* An "union" node. These are created for the "|" operator. */ +type Ttre_union_t = struct { + Fleft uintptr + Fright uintptr +} + +func _tre_ast_new_node(tls *TLS, mem Ttre_mem_t, type1 int32, obj uintptr) (r uintptr) { + var node uintptr + _ = node + node = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), int32(1), uint64(48)) + if !(node != 0) || !(obj != 0) { + return uintptr(0) + } + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj = obj + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ftype1 = type1 + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnullable = -int32(1) + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fsubmatch_id = -int32(1) + return node +} + +func _tre_ast_new_literal(tls *TLS, mem Ttre_mem_t, code_min int32, code_max int32, position int32) (r uintptr) { + var lit, node uintptr + _, _ = lit, node + lit = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), int32(1), uint64(40)) + node = _tre_ast_new_node(tls, mem, int32(_LITERAL), lit) + if !(node != 0) { + return uintptr(0) + } + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min = int64(code_min) + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max = int64(code_max) + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fposition = position + return node +} + +func _tre_ast_new_iter(tls *TLS, mem Ttre_mem_t, arg uintptr, min int32, max int32, minimal int32) (r uintptr) { + var iter, node uintptr + _, _ = iter, node + iter = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), int32(1), uint64(24)) + node = _tre_ast_new_node(tls, mem, int32(_ITERATION), iter) + if !(node != 0) { + return uintptr(0) + } + (*Ttre_iteration_t)(unsafe.Pointer(iter)).Farg = arg + (*Ttre_iteration_t)(unsafe.Pointer(iter)).Fmin = min + (*Ttre_iteration_t)(unsafe.Pointer(iter)).Fmax = max + SetBitFieldPtr8Uint32(iter+16, uint32(minimal), 0, 0x1) + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnum_submatches = (*Ttre_ast_node_t)(unsafe.Pointer(arg)).Fnum_submatches + return node +} + +func _tre_ast_new_union(tls *TLS, mem Ttre_mem_t, left uintptr, right uintptr) (r uintptr) { + var node, un uintptr + _, _ = node, un + if !(left != 0) { + return right + } + un = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), int32(1), uint64(16)) + node = _tre_ast_new_node(tls, mem, int32(_UNION), un) + if !(node != 0) || !(right != 0) { + return uintptr(0) + } + (*Ttre_union_t)(unsafe.Pointer(un)).Fleft = left + (*Ttre_union_t)(unsafe.Pointer(un)).Fright = right + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnum_submatches = (*Ttre_ast_node_t)(unsafe.Pointer(left)).Fnum_submatches + (*Ttre_ast_node_t)(unsafe.Pointer(right)).Fnum_submatches + return node +} + +func _tre_ast_new_catenation(tls *TLS, mem Ttre_mem_t, left uintptr, right uintptr) (r uintptr) { + var cat, node uintptr + _, _ = cat, node + if !(left != 0) { + return right + } + cat = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), int32(1), uint64(16)) + node = _tre_ast_new_node(tls, mem, int32(_CATENATION), cat) + if !(node != 0) { + return uintptr(0) + } + (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fleft = left + (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fright = right + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnum_submatches = (*Ttre_ast_node_t)(unsafe.Pointer(left)).Fnum_submatches + (*Ttre_ast_node_t)(unsafe.Pointer(right)).Fnum_submatches + return node +} + +/*********************************************************************** + from tre-stack.c and tre-stack.h +***********************************************************************/ + +type Ttre_stack_t = struct { + Fsize int32 + Fmax_size int32 + Fincrement int32 + Fptr int32 + Fstack uintptr +} + +/*********************************************************************** + from tre-stack.c and tre-stack.h +***********************************************************************/ + +type Ttre_stack_rec = Ttre_stack_t + +/* Just to save some typing. */ + +type Ttre_stack_item = struct { + Fint_value [0]int32 + Fvoidptr_value uintptr +} + +func _tre_stack_new(tls *TLS, size int32, max_size int32, increment int32) (r uintptr) { + var s uintptr + _ = s + s = Xmalloc(tls, uint64(24)) + if s != UintptrFromInt32(0) { + (*Ttre_stack_t)(unsafe.Pointer(s)).Fstack = Xmalloc(tls, uint64(8)*uint64(size)) + if (*Ttre_stack_t)(unsafe.Pointer(s)).Fstack == UintptrFromInt32(0) { + Xfree(tls, s) + return UintptrFromInt32(0) + } + (*Ttre_stack_t)(unsafe.Pointer(s)).Fsize = size + (*Ttre_stack_t)(unsafe.Pointer(s)).Fmax_size = max_size + (*Ttre_stack_t)(unsafe.Pointer(s)).Fincrement = increment + (*Ttre_stack_t)(unsafe.Pointer(s)).Fptr = 0 + } + return s +} + +func _tre_stack_destroy(tls *TLS, s uintptr) { + Xfree(tls, (*Ttre_stack_t)(unsafe.Pointer(s)).Fstack) + Xfree(tls, s) +} + +func _tre_stack_num_objects(tls *TLS, s uintptr) (r int32) { + return (*Ttre_stack_t)(unsafe.Pointer(s)).Fptr +} + +func _tre_stack_push(tls *TLS, s uintptr, value Ttre_stack_item) (r Treg_errcode_t) { + var new_buffer uintptr + var new_size int32 + _, _ = new_buffer, new_size + if (*Ttre_stack_t)(unsafe.Pointer(s)).Fptr < (*Ttre_stack_t)(unsafe.Pointer(s)).Fsize { + *(*Ttre_stack_item)(unsafe.Pointer((*Ttre_stack_t)(unsafe.Pointer(s)).Fstack + uintptr((*Ttre_stack_t)(unsafe.Pointer(s)).Fptr)*8)) = value + (*Ttre_stack_t)(unsafe.Pointer(s)).Fptr++ + } else { + if (*Ttre_stack_t)(unsafe.Pointer(s)).Fsize >= (*Ttre_stack_t)(unsafe.Pointer(s)).Fmax_size { + return int32(REG_ESPACE) + } else { + new_size = (*Ttre_stack_t)(unsafe.Pointer(s)).Fsize + (*Ttre_stack_t)(unsafe.Pointer(s)).Fincrement + if new_size > (*Ttre_stack_t)(unsafe.Pointer(s)).Fmax_size { + new_size = (*Ttre_stack_t)(unsafe.Pointer(s)).Fmax_size + } + new_buffer = Xrealloc(tls, (*Ttre_stack_t)(unsafe.Pointer(s)).Fstack, uint64(8)*uint64(new_size)) + if new_buffer == UintptrFromInt32(0) { + return int32(REG_ESPACE) + } + (*Ttre_stack_t)(unsafe.Pointer(s)).Fsize = new_size + (*Ttre_stack_t)(unsafe.Pointer(s)).Fstack = new_buffer + _tre_stack_push(tls, s, value) + } + } + return REG_OK +} + +func _tre_stack_push_int(tls *TLS, s uintptr, value int32) (r Treg_errcode_t) { + var item Ttre_stack_item + _ = item + *(*int32)(unsafe.Pointer(&item)) = value + return _tre_stack_push(tls, s, item) +} + +func _tre_stack_push_voidptr(tls *TLS, s uintptr, value uintptr) (r Treg_errcode_t) { + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* item at bp+0 */ Ttre_stack_item + *(*uintptr)(unsafe.Pointer(bp)) = value + return _tre_stack_push(tls, s, *(*Ttre_stack_item)(unsafe.Pointer(bp))) +} + +func _tre_stack_pop_int(tls *TLS, s uintptr) (r int32) { + var v1 int32 + var v2 uintptr + _, _ = v1, v2 + v2 = s + 12 + *(*int32)(unsafe.Pointer(v2))-- + v1 = *(*int32)(unsafe.Pointer(v2)) + return *(*int32)(unsafe.Pointer(&*(*Ttre_stack_item)(unsafe.Pointer((*Ttre_stack_t)(unsafe.Pointer(s)).Fstack + uintptr(v1)*8)))) +} + +func _tre_stack_pop_voidptr(tls *TLS, s uintptr) (r uintptr) { + var v1 int32 + var v2 uintptr + _, _ = v1, v2 + v2 = s + 12 + *(*int32)(unsafe.Pointer(v2))-- + v1 = *(*int32)(unsafe.Pointer(v2)) + return *(*uintptr)(unsafe.Pointer((*Ttre_stack_t)(unsafe.Pointer(s)).Fstack + uintptr(v1)*8)) +} + +/*********************************************************************** + from tre-parse.c and tre-parse.h +***********************************************************************/ + +// C documentation +// +// /* Parse context. */ +type Ttre_parse_ctx_t = struct { + Fmem Ttre_mem_t + Fstack uintptr + Fn uintptr + Fs uintptr + Fstart uintptr + Fsubmatch_id int32 + Fposition int32 + Fmax_backref int32 + Fcflags int32 +} + +// C documentation +// +// /* Some macros for expanding \w, \s, etc. */ +var _tre_macros = [13]struct { + Fc uint8 + Fexpansion uintptr +}{ + 0: { + Fc: uint8('t'), + Fexpansion: __ccgo_ts + 1400, + }, + 1: { + Fc: uint8('n'), + Fexpansion: __ccgo_ts + 301, + }, + 2: { + Fc: uint8('r'), + Fexpansion: __ccgo_ts + 1402, + }, + 3: { + Fc: uint8('f'), + Fexpansion: __ccgo_ts + 1404, + }, + 4: { + Fc: uint8('a'), + Fexpansion: __ccgo_ts + 1406, + }, + 5: { + Fc: uint8('e'), + Fexpansion: __ccgo_ts + 1408, + }, + 6: { + Fc: uint8('w'), + Fexpansion: __ccgo_ts + 1410, + }, + 7: { + Fc: uint8('W'), + Fexpansion: __ccgo_ts + 1423, + }, + 8: { + Fc: uint8('s'), + Fexpansion: __ccgo_ts + 1437, + }, + 9: { + Fc: uint8('S'), + Fexpansion: __ccgo_ts + 1449, + }, + 10: { + Fc: uint8('d'), + Fexpansion: __ccgo_ts + 1462, + }, + 11: { + Fc: uint8('D'), + Fexpansion: __ccgo_ts + 1474, + }, + 12: {}, +} + +// C documentation +// +// /* Expands a macro delimited by `regex' and `regex_end' to `buf', which +// must have at least `len' items. Sets buf[0] to zero if the there +// is no match in `tre_macros'. */ +func _tre_expand_macro(tls *TLS, s uintptr) (r uintptr) { + var i int32 + _ = i + i = 0 + for { + if !(_tre_macros[i].Fc != 0 && int32(_tre_macros[i].Fc) != int32(*(*uint8)(unsafe.Pointer(s)))) { + break + } + goto _1 + _1: + ; + i++ + } + return _tre_macros[i].Fexpansion +} + +func _tre_compare_lit(tls *TLS, a uintptr, b uintptr) (r int32) { + var la, lb uintptr + _, _ = la, lb + la = a + lb = b + /* assumes the range of valid code_min is < INT_MAX */ + return int32((*Ttre_literal_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(la)))).Fcode_min - (*Ttre_literal_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(lb)))).Fcode_min) +} + +type Tliterals = struct { + Fmem Ttre_mem_t + Fa uintptr + Flen1 int32 + Fcap1 int32 +} + +func _tre_new_lit(tls *TLS, p uintptr) (r uintptr) { + var a, v2 uintptr + var v1 int32 + _, _, _ = a, v1, v2 + if (*Tliterals)(unsafe.Pointer(p)).Flen1 >= (*Tliterals)(unsafe.Pointer(p)).Fcap1 { + if (*Tliterals)(unsafe.Pointer(p)).Fcap1 >= Int32FromInt32(1)< max { + return int32(REG_ERANGE) + } + s += uintptr(len1) + } + } + if class != 0 && (*Tneg)(unsafe.Pointer(neg)).Fnegate != 0 { + if (*Tneg)(unsafe.Pointer(neg)).Flen1 >= int32(MAX_NEG_CLASSES) { + return int32(REG_ESPACE) + } + v6 = neg + 4 + v5 = *(*int32)(unsafe.Pointer(v6)) + *(*int32)(unsafe.Pointer(v6))++ + *(*Ttre_ctype_t)(unsafe.Pointer(neg + 8 + uintptr(v5)*8)) = class + } else { + lit = _tre_new_lit(tls, ls) + if !(lit != 0) { + return int32(REG_ESPACE) + } + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min = int64(min) + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max = int64(max) + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fclass = class + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fposition = -int32(1) + /* Add opposite-case codepoints if REG_ICASE is present. + It seems that POSIX requires that bracket negation + should happen before case-folding, but most practical + implementations do it the other way around. Changing + the order would need efficient representation of + case-fold ranges and bracket range sets even with + simple patterns so this is ok for now. */ + if (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fcflags&int32(REG_ICASE) != 0 && !(class != 0) { + if _add_icase_literals(tls, ls, min, max) != 0 { + return int32(REG_ESPACE) + } + } + } + goto _1 + _1: + } + return r +} + +func _parse_bracket(tls *TLS, ctx uintptr, s uintptr) (r Treg_errcode_t) { + bp := tls.Alloc(544) + defer tls.Free(544) + var err Treg_errcode_t + var i, max, min, negmax, negmin, v1, v3 int32 + var lit, n, nc, node uintptr + var _ /* ls at bp+0 */ Tliterals + var _ /* neg at bp+24 */ Tneg + _, _, _, _, _, _, _, _, _, _, _, _ = err, i, lit, max, min, n, nc, negmax, negmin, node, v1, v3 + node = uintptr(0) + nc = uintptr(0) + (*(*Tliterals)(unsafe.Pointer(bp))).Fmem = (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem + (*(*Tliterals)(unsafe.Pointer(bp))).Flen1 = 0 + (*(*Tliterals)(unsafe.Pointer(bp))).Fcap1 = int32(32) + (*(*Tliterals)(unsafe.Pointer(bp))).Fa = Xmalloc(tls, uint64((*(*Tliterals)(unsafe.Pointer(bp))).Fcap1)*uint64(8)) + if !((*(*Tliterals)(unsafe.Pointer(bp))).Fa != 0) { + return int32(REG_ESPACE) + } + (*(*Tneg)(unsafe.Pointer(bp + 24))).Flen1 = 0 + (*(*Tneg)(unsafe.Pointer(bp + 24))).Fnegate = BoolInt32(int32(*(*uint8)(unsafe.Pointer(s))) == int32('^')) + if (*(*Tneg)(unsafe.Pointer(bp + 24))).Fnegate != 0 { + s++ + } + err = _parse_bracket_terms(tls, ctx, s, bp, bp+24) + if err != REG_OK { + goto parse_bracket_done + } + if (*(*Tneg)(unsafe.Pointer(bp + 24))).Fnegate != 0 { + /* + * With REG_NEWLINE, POSIX requires that newlines are not matched by + * any form of a non-matching list. + */ + if (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fcflags&int32(REG_NEWLINE) != 0 { + lit = _tre_new_lit(tls, bp) + if !(lit != 0) { + err = int32(REG_ESPACE) + goto parse_bracket_done + } + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min = int64('\n') + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max = int64('\n') + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fposition = -int32(1) + } + /* Sort the array if we need to negate it. */ + Xqsort(tls, (*(*Tliterals)(unsafe.Pointer(bp))).Fa, uint64((*(*Tliterals)(unsafe.Pointer(bp))).Flen1), uint64(8), __ccgo_fp(_tre_compare_lit)) + /* extra lit for the last negated range */ + lit = _tre_new_lit(tls, bp) + if !(lit != 0) { + err = int32(REG_ESPACE) + goto parse_bracket_done + } + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min = int64(Int32FromInt32(TRE_CHAR_MAX) + Int32FromInt32(1)) + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max = int64(Int32FromInt32(TRE_CHAR_MAX) + Int32FromInt32(1)) + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fposition = -int32(1) + /* negated classes */ + if (*(*Tneg)(unsafe.Pointer(bp + 24))).Flen1 != 0 { + nc = X__tre_mem_alloc_impl(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, 0, UintptrFromInt32(0), 0, uint64((*(*Tneg)(unsafe.Pointer(bp + 24))).Flen1+Int32FromInt32(1))*uint64(8)) + if !(nc != 0) { + err = int32(REG_ESPACE) + goto parse_bracket_done + } + Xmemcpy(tls, nc, bp+24+8, uint64((*(*Tneg)(unsafe.Pointer(bp + 24))).Flen1)*uint64(8)) + *(*Ttre_ctype_t)(unsafe.Pointer(nc + uintptr((*(*Tneg)(unsafe.Pointer(bp + 24))).Flen1)*8)) = uint64(0) + } + } + /* Build a union of the items in the array, negated if necessary. */ + v1 = Int32FromInt32(0) + negmin = v1 + negmax = v1 + i = 0 + for { + if !(i < (*(*Tliterals)(unsafe.Pointer(bp))).Flen1) { + break + } + lit = *(*uintptr)(unsafe.Pointer((*(*Tliterals)(unsafe.Pointer(bp))).Fa + uintptr(i)*8)) + min = int32((*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min) + max = int32((*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max) + if (*(*Tneg)(unsafe.Pointer(bp + 24))).Fnegate != 0 { + if min <= negmin { + /* Overlap. */ + if max+int32(1) >= negmin { + v3 = max + int32(1) + } else { + v3 = negmin + } + negmin = v3 + goto _2 + } + negmax = min - int32(1) + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min = int64(negmin) + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max = int64(negmax) + negmin = max + int32(1) + } + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fposition = (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fposition + (*Ttre_literal_t)(unsafe.Pointer(lit)).Fneg_classes = nc + n = _tre_ast_new_node(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, int32(_LITERAL), lit) + node = _tre_ast_new_union(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, node, n) + if !(node != 0) { + err = int32(REG_ESPACE) + break + } + goto _2 + _2: + ; + i++ + } + goto parse_bracket_done +parse_bracket_done: + ; + Xfree(tls, (*(*Tliterals)(unsafe.Pointer(bp))).Fa) + (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fposition++ + (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fn = node + return err +} + +func _parse_dup_count(tls *TLS, s uintptr, n uintptr) (r uintptr) { + *(*int32)(unsafe.Pointer(n)) = -int32(1) + if !(BoolInt32(uint32(*(*uint8)(unsafe.Pointer(s)))-Uint32FromUint8('0') < Uint32FromInt32(10)) != 0) { + return s + } + *(*int32)(unsafe.Pointer(n)) = 0 + for { + *(*int32)(unsafe.Pointer(n)) = int32(10)**(*int32)(unsafe.Pointer(n)) + (int32(*(*uint8)(unsafe.Pointer(s))) - int32('0')) + s++ + if !(BoolInt32(uint32(*(*uint8)(unsafe.Pointer(s)))-Uint32FromUint8('0') < Uint32FromInt32(10)) != 0) || *(*int32)(unsafe.Pointer(n)) > int32(RE_DUP_MAX) { + break + } + goto _1 + _1: + } + return s +} + +func _parse_dup(tls *TLS, s uintptr, ere int32, pmin uintptr, pmax uintptr) (r uintptr) { + bp := tls.Alloc(16) + defer tls.Free(16) + var v1, v4 uintptr + var v2, v3, v5 bool + var _ /* max at bp+4 */ int32 + var _ /* min at bp+0 */ int32 + _, _, _, _, _ = v1, v2, v3, v4, v5 + s = _parse_dup_count(tls, s, bp) + if int32(*(*uint8)(unsafe.Pointer(s))) == int32(',') { + s = _parse_dup_count(tls, s+uintptr(1), bp+4) + } else { + *(*int32)(unsafe.Pointer(bp + 4)) = *(*int32)(unsafe.Pointer(bp)) + } + if v3 = *(*int32)(unsafe.Pointer(bp + 4)) < *(*int32)(unsafe.Pointer(bp)) && *(*int32)(unsafe.Pointer(bp + 4)) >= 0 || *(*int32)(unsafe.Pointer(bp + 4)) > int32(RE_DUP_MAX) || *(*int32)(unsafe.Pointer(bp)) > int32(RE_DUP_MAX) || *(*int32)(unsafe.Pointer(bp)) < 0; !v3 { + if v2 = !(ere != 0); v2 { + v1 = s + s++ + } + } + if v5 = v3 || v2 && int32(*(*uint8)(unsafe.Pointer(v1))) != int32('\\'); !v5 { + v4 = s + s++ + } + if v5 || int32(*(*uint8)(unsafe.Pointer(v4))) != int32('}') { + return uintptr(0) + } + *(*int32)(unsafe.Pointer(pmin)) = *(*int32)(unsafe.Pointer(bp)) + *(*int32)(unsafe.Pointer(pmax)) = *(*int32)(unsafe.Pointer(bp + 4)) + return s +} + +func _hexval1(tls *TLS, c uint32) (r int32) { + if c-uint32('0') < uint32(10) { + return int32(c - uint32('0')) + } + c |= uint32(32) + if c-uint32('a') < uint32(6) { + return int32(c - uint32('a') + uint32(10)) + } + return -int32(1) +} + +func _marksub(tls *TLS, ctx uintptr, node uintptr, subid int32) (r Treg_errcode_t) { + var n uintptr + _ = n + if (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fsubmatch_id >= 0 { + n = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, -int32(1), -int32(1), -int32(1)) + if !(n != 0) { + return int32(REG_ESPACE) + } + n = _tre_ast_new_catenation(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, n, node) + if !(n != 0) { + return int32(REG_ESPACE) + } + (*Ttre_ast_node_t)(unsafe.Pointer(n)).Fnum_submatches = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnum_submatches + node = n + } + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fsubmatch_id = subid + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnum_submatches++ + (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fn = node + return REG_OK +} + +/* +BRE grammar: +Regex = Branch | '^' | '$' | '^$' | '^' Branch | Branch '$' | '^' Branch '$' +Branch = Atom | Branch Atom +Atom = char | quoted_char | '.' | Bracket | Atom Dup | '\(' Branch '\)' | back_ref +Dup = '*' | '\{' Count '\}' | '\{' Count ',\}' | '\{' Count ',' Count '\}' + +(leading ^ and trailing $ in a sub expr may be an anchor or literal as well) + +ERE grammar: +Regex = Branch | Regex '|' Branch +Branch = Atom | Branch Atom +Atom = char | quoted_char | '.' | Bracket | Atom Dup | '(' Regex ')' | '^' | '$' +Dup = '*' | '+' | '?' | '{' Count '}' | '{' Count ',}' | '{' Count ',' Count '}' + +(a*+?, ^*, $+, \X, {, (|a) are unspecified) +*/ + +func _parse_atom(tls *TLS, ctx uintptr, s uintptr) (r Treg_errcode_t) { + bp := tls.Alloc(16) + defer tls.Free(16) + var c, ere, i, len1, v, val, v16, v18, v20, v21, v23, v25 int32 + var err Treg_errcode_t + var node, p, tmp1, tmp11, tmp2, tmp21, v14, v17, v19, v22, v24, v26 uintptr + var _ /* wc at bp+0 */ Twchar_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, ere, err, i, len1, node, p, tmp1, tmp11, tmp2, tmp21, v, val, v14, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26 + ere = (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fcflags & int32(REG_EXTENDED) + switch int32(*(*uint8)(unsafe.Pointer(s))) { + case int32('['): + goto _1 + case int32('\\'): + goto _2 + case int32('.'): + goto _3 + case int32('^'): + goto _4 + case int32('$'): + goto _5 + case int32('?'): + goto _6 + case int32('+'): + goto _7 + case int32('{'): + goto _8 + case int32('*'): + goto _9 + case int32('|'): + goto _10 + case 0: + goto _11 + default: + goto _12 + } + goto _13 +_1: + ; + return _parse_bracket(tls, ctx, s+uintptr(1)) +_2: + ; + p = _tre_expand_macro(tls, s+uintptr(1)) + if p != 0 { + /* assume \X expansion is a single atom */ + err = _parse_atom(tls, ctx, p) + (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fs = s + uintptr(2) + return err + } + /* extensions: \b, \B, \<, \>, \xHH \x{HHHH} */ + s++ + v14 = s + switch int32(*(*uint8)(unsafe.Pointer(v14))) { + case 0: + return int32(REG_EESCAPE) + case int32('b'): + node = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, -int32(2), int32(ASSERT_AT_WB), -int32(1)) + case int32('B'): + node = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, -int32(2), int32(ASSERT_AT_WB_NEG), -int32(1)) + case int32('<'): + node = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, -int32(2), int32(ASSERT_AT_BOW), -int32(1)) + case int32('>'): + node = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, -int32(2), int32(ASSERT_AT_EOW), -int32(1)) + case int32('x'): + s++ + v = 0 + len1 = int32(2) + if int32(*(*uint8)(unsafe.Pointer(s))) == int32('{') { + len1 = int32(8) + s++ + } + i = 0 + for { + if !(i < len1 && v < int32(0x110000)) { + break + } + c = _hexval1(tls, uint32(*(*uint8)(unsafe.Pointer(s + uintptr(i))))) + if c < 0 { + break + } + v = int32(16)*v + c + goto _15 + _15: + ; + i++ + } + s += uintptr(i) + if len1 == int32(8) { + if int32(*(*uint8)(unsafe.Pointer(s))) != int32('}') { + return int32(REG_EBRACE) + } + s++ + } + v17 = ctx + 44 + v16 = *(*int32)(unsafe.Pointer(v17)) + *(*int32)(unsafe.Pointer(v17))++ + node = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, v, v, v16) + s-- + case int32('{'): + fallthrough + case int32('+'): + fallthrough + case int32('?'): + /* extension: treat \+, \? as repetitions in BRE */ + /* reject repetitions after empty expression in BRE */ + if !(ere != 0) { + return int32(REG_BADRPT) + } + fallthrough + case int32('|'): + /* extension: treat \| as alternation in BRE */ + if !(ere != 0) { + node = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, -int32(1), -int32(1), -int32(1)) + s-- + goto end + } + /* fallthrough */ + fallthrough + default: + if !(ere != 0) && uint32(*(*uint8)(unsafe.Pointer(s)))-uint32('1') < uint32(9) { + /* back reference */ + val = int32(*(*uint8)(unsafe.Pointer(s))) - int32('0') + v19 = ctx + 44 + v18 = *(*int32)(unsafe.Pointer(v19)) + *(*int32)(unsafe.Pointer(v19))++ + node = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, -int32(4), val, v18) + if val >= (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmax_backref { + v20 = val + } else { + v20 = (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmax_backref + } + (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmax_backref = v20 + } else { + /* extension: accept unknown escaped char + as a literal */ + goto parse_literal + } + } + s++ + goto _13 +_3: + ; + if (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fcflags&int32(REG_NEWLINE) != 0 { + v22 = ctx + 44 + v21 = *(*int32)(unsafe.Pointer(v22)) + *(*int32)(unsafe.Pointer(v22))++ + tmp1 = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, 0, Int32FromUint8('\n')-Int32FromInt32(1), v21) + v24 = ctx + 44 + v23 = *(*int32)(unsafe.Pointer(v24)) + *(*int32)(unsafe.Pointer(v24))++ + tmp2 = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, Int32FromUint8('\n')+Int32FromInt32(1), int32(TRE_CHAR_MAX), v23) + if tmp1 != 0 && tmp2 != 0 { + node = _tre_ast_new_union(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, tmp1, tmp2) + } else { + node = uintptr(0) + } + } else { + v26 = ctx + 44 + v25 = *(*int32)(unsafe.Pointer(v26)) + *(*int32)(unsafe.Pointer(v26))++ + node = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, 0, int32(TRE_CHAR_MAX), v25) + } + s++ + goto _13 +_4: + ; + /* '^' has a special meaning everywhere in EREs, and at beginning of BRE. */ + if !(ere != 0) && s != (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fstart { + goto parse_literal + } + node = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, -int32(2), int32(ASSERT_AT_BOL), -int32(1)) + s++ + goto _13 +_5: + ; + /* '$' is special everywhere in EREs, and at the end of a BRE subexpression. */ + if !(ere != 0) && *(*uint8)(unsafe.Pointer(s + 1)) != 0 && (int32(*(*uint8)(unsafe.Pointer(s + 1))) != int32('\\') || int32(*(*uint8)(unsafe.Pointer(s + 2))) != int32(')') && int32(*(*uint8)(unsafe.Pointer(s + 2))) != int32('|')) { + goto parse_literal + } + node = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, -int32(2), int32(ASSERT_AT_EOL), -int32(1)) + s++ + goto _13 +_9: + ; +_8: + ; +_7: + ; +_6: + ; + /* reject repetitions after empty expression in ERE */ + if ere != 0 { + return int32(REG_BADRPT) + } +_10: + ; + if !(ere != 0) { + goto parse_literal + } +_11: + ; + node = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, -int32(1), -int32(1), -int32(1)) + goto _13 +_12: + ; + goto parse_literal +parse_literal: + ; + len1 = Xmbtowc(tls, bp, s, uint64(-Int32FromInt32(1))) + if len1 < 0 { + return int32(REG_BADPAT) + } + if (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fcflags&int32(REG_ICASE) != 0 && (Xiswupper(tls, *(*Twchar_t)(unsafe.Pointer(bp))) != 0 || Xiswlower(tls, *(*Twchar_t)(unsafe.Pointer(bp))) != 0) { + /* multiple opposite case characters are not supported */ + tmp11 = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, int32(Xtowupper(tls, *(*Twchar_t)(unsafe.Pointer(bp)))), int32(Xtowupper(tls, *(*Twchar_t)(unsafe.Pointer(bp)))), (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fposition) + tmp21 = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, int32(Xtowlower(tls, *(*Twchar_t)(unsafe.Pointer(bp)))), int32(Xtowlower(tls, *(*Twchar_t)(unsafe.Pointer(bp)))), (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fposition) + if tmp11 != 0 && tmp21 != 0 { + node = _tre_ast_new_union(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, tmp11, tmp21) + } else { + node = uintptr(0) + } + } else { + node = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, int32(*(*Twchar_t)(unsafe.Pointer(bp))), int32(*(*Twchar_t)(unsafe.Pointer(bp))), (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fposition) + } + (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fposition++ + s += uintptr(len1) + goto _13 +_13: + ; + goto end +end: + ; + if !(node != 0) { + return int32(REG_ESPACE) + } + (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fn = node + (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fs = s + return REG_OK +} + +func _tre_parse(tls *TLS, ctx uintptr) (r Treg_errcode_t) { + bp := tls.Alloc(16) + defer tls.Free(16) + var c, depth, ere, subid, v2, v7 int32 + var err, v1, v4, v5, v6 Treg_errcode_t + var nbranch, nunion, s, stack, v8 uintptr + var _ /* max at bp+4 */ int32 + var _ /* min at bp+0 */ int32 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, depth, ere, err, nbranch, nunion, s, stack, subid, v1, v2, v4, v5, v6, v7, v8 + nbranch = uintptr(0) + nunion = uintptr(0) + ere = (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fcflags & int32(REG_EXTENDED) + s = (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fstart + subid = 0 + depth = 0 + stack = (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fstack + v2 = subid + subid++ + v1 = _tre_stack_push_int(tls, stack, v2) + err = v1 + if v1 != REG_OK { + return err + } + for { + if !(ere != 0) && int32(*(*uint8)(unsafe.Pointer(s))) == int32('\\') && int32(*(*uint8)(unsafe.Pointer(s + 1))) == int32('(') || ere != 0 && int32(*(*uint8)(unsafe.Pointer(s))) == int32('(') { + v4 = _tre_stack_push_voidptr(tls, stack, nunion) + err = v4 + if v4 != REG_OK { + return err + } + v5 = _tre_stack_push_voidptr(tls, stack, nbranch) + err = v5 + if v5 != REG_OK { + return err + } + v7 = subid + subid++ + v6 = _tre_stack_push_int(tls, stack, v7) + err = v6 + if v6 != REG_OK { + return err + } + s++ + if !(ere != 0) { + s++ + } + depth++ + v8 = UintptrFromInt32(0) + nunion = v8 + nbranch = v8 + (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fstart = s + goto _3 + } + if !(ere != 0) && int32(*(*uint8)(unsafe.Pointer(s))) == int32('\\') && int32(*(*uint8)(unsafe.Pointer(s + 1))) == int32(')') || ere != 0 && int32(*(*uint8)(unsafe.Pointer(s))) == int32(')') && depth != 0 { + (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fn = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, -int32(1), -int32(1), -int32(1)) + if !((*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fn != 0) { + return int32(REG_ESPACE) + } + } else { + err = _parse_atom(tls, ctx, s) + if err != REG_OK { + return err + } + s = (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fs + } + goto parse_iter + parse_iter: + ; + for { + if int32(*(*uint8)(unsafe.Pointer(s))) != int32('\\') && int32(*(*uint8)(unsafe.Pointer(s))) != int32('*') { + if !(ere != 0) { + break + } + if int32(*(*uint8)(unsafe.Pointer(s))) != int32('+') && int32(*(*uint8)(unsafe.Pointer(s))) != int32('?') && int32(*(*uint8)(unsafe.Pointer(s))) != int32('{') { + break + } + } + if int32(*(*uint8)(unsafe.Pointer(s))) == int32('\\') && ere != 0 { + break + } + /* extension: treat \+, \? as repetitions in BRE */ + if int32(*(*uint8)(unsafe.Pointer(s))) == int32('\\') && int32(*(*uint8)(unsafe.Pointer(s + 1))) != int32('+') && int32(*(*uint8)(unsafe.Pointer(s + 1))) != int32('?') && int32(*(*uint8)(unsafe.Pointer(s + 1))) != int32('{') { + break + } + if int32(*(*uint8)(unsafe.Pointer(s))) == int32('\\') { + s++ + } + /* handle ^* at the start of a BRE. */ + if !(ere != 0) && s == (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fstart+uintptr(1) && int32(*(*uint8)(unsafe.Pointer(s + uintptr(-Int32FromInt32(1))))) == int32('^') { + break + } + /* extension: multiple consecutive *+?{,} is unspecified, + but (a+)+ has to be supported so accepting a++ makes + sense, note however that the RE_DUP_MAX limit can be + circumvented: (a{255}){255} uses a lot of memory.. */ + if int32(*(*uint8)(unsafe.Pointer(s))) == int32('{') { + s = _parse_dup(tls, s+uintptr(1), ere, bp, bp+4) + if !(s != 0) { + return int32(REG_BADBR) + } + } else { + *(*int32)(unsafe.Pointer(bp)) = 0 + *(*int32)(unsafe.Pointer(bp + 4)) = -int32(1) + if int32(*(*uint8)(unsafe.Pointer(s))) == int32('+') { + *(*int32)(unsafe.Pointer(bp)) = int32(1) + } + if int32(*(*uint8)(unsafe.Pointer(s))) == int32('?') { + *(*int32)(unsafe.Pointer(bp + 4)) = int32(1) + } + s++ + } + if *(*int32)(unsafe.Pointer(bp + 4)) == 0 { + (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fn = _tre_ast_new_literal(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, -int32(1), -int32(1), -int32(1)) + } else { + (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fn = _tre_ast_new_iter(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fn, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), 0) + } + if !((*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fn != 0) { + return int32(REG_ESPACE) + } + goto _9 + _9: + } + nbranch = _tre_ast_new_catenation(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, nbranch, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fn) + if ere != 0 && int32(*(*uint8)(unsafe.Pointer(s))) == int32('|') || ere != 0 && int32(*(*uint8)(unsafe.Pointer(s))) == int32(')') && depth != 0 || !(ere != 0) && int32(*(*uint8)(unsafe.Pointer(s))) == int32('\\') && int32(*(*uint8)(unsafe.Pointer(s + 1))) == int32(')') || !(ere != 0) && int32(*(*uint8)(unsafe.Pointer(s))) == int32('\\') && int32(*(*uint8)(unsafe.Pointer(s + 1))) == int32('|') || !(*(*uint8)(unsafe.Pointer(s)) != 0) { + /* extension: empty branch is unspecified (), (|a), (a|) + here they are not rejected but match on empty string */ + c = int32(*(*uint8)(unsafe.Pointer(s))) + nunion = _tre_ast_new_union(tls, (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fmem, nunion, nbranch) + nbranch = uintptr(0) + if c == int32('\\') && int32(*(*uint8)(unsafe.Pointer(s + 1))) == int32('|') { + s += uintptr(2) + (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fstart = s + } else { + if c == int32('|') { + s++ + (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fstart = s + } else { + if c == int32('\\') { + if !(depth != 0) { + return int32(REG_EPAREN) + } + s += uintptr(2) + } else { + if c == int32(')') { + s++ + } + } + depth-- + err = _marksub(tls, ctx, nunion, _tre_stack_pop_int(tls, stack)) + if err != REG_OK { + return err + } + if !(c != 0) && depth < 0 { + (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fsubmatch_id = subid + return REG_OK + } + if !(c != 0) || depth < 0 { + return int32(REG_EPAREN) + } + nbranch = _tre_stack_pop_voidptr(tls, stack) + nunion = _tre_stack_pop_voidptr(tls, stack) + goto parse_iter + } + } + } + goto _3 + _3: + } + return r +} + +/*********************************************************************** + from tre-compile.c +***********************************************************************/ + +/* + TODO: + - Fix tre_ast_to_tnfa() to recurse using a stack instead of recursive + function calls. +*/ + +/* + Algorithms to setup tags so that submatch addressing can be done. +*/ + +// C documentation +// +// /* Inserts a catenation node to the root of the tree given in `node'. +// As the left child a new tag with number `tag_id' to `node' is added, +// and the right child is the old root. */ +func _tre_add_tag_left(tls *TLS, mem Ttre_mem_t, node uintptr, tag_id int32) (r Treg_errcode_t) { + var c uintptr + _ = c + c = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), 0, uint64(16)) + if c == UintptrFromInt32(0) { + return int32(REG_ESPACE) + } + (*Ttre_catenation_t)(unsafe.Pointer(c)).Fleft = _tre_ast_new_literal(tls, mem, -int32(3), tag_id, -int32(1)) + if (*Ttre_catenation_t)(unsafe.Pointer(c)).Fleft == UintptrFromInt32(0) { + return int32(REG_ESPACE) + } + (*Ttre_catenation_t)(unsafe.Pointer(c)).Fright = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), 0, uint64(48)) + if (*Ttre_catenation_t)(unsafe.Pointer(c)).Fright == UintptrFromInt32(0) { + return int32(REG_ESPACE) + } + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(c)).Fright)).Fobj = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(c)).Fright)).Ftype1 = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ftype1 + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(c)).Fright)).Fnullable = -int32(1) + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(c)).Fright)).Fsubmatch_id = -int32(1) + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(c)).Fright)).Ffirstpos = UintptrFromInt32(0) + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(c)).Fright)).Flastpos = UintptrFromInt32(0) + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(c)).Fright)).Fnum_tags = 0 + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(c)).Fright)).Fnum_submatches = 0 + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj = c + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ftype1 = int32(_CATENATION) + return REG_OK +} + +// C documentation +// +// /* Inserts a catenation node to the root of the tree given in `node'. +// As the right child a new tag with number `tag_id' to `node' is added, +// and the left child is the old root. */ +func _tre_add_tag_right(tls *TLS, mem Ttre_mem_t, node uintptr, tag_id int32) (r Treg_errcode_t) { + var c uintptr + _ = c + c = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), 0, uint64(16)) + if c == UintptrFromInt32(0) { + return int32(REG_ESPACE) + } + (*Ttre_catenation_t)(unsafe.Pointer(c)).Fright = _tre_ast_new_literal(tls, mem, -int32(3), tag_id, -int32(1)) + if (*Ttre_catenation_t)(unsafe.Pointer(c)).Fright == UintptrFromInt32(0) { + return int32(REG_ESPACE) + } + (*Ttre_catenation_t)(unsafe.Pointer(c)).Fleft = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), 0, uint64(48)) + if (*Ttre_catenation_t)(unsafe.Pointer(c)).Fleft == UintptrFromInt32(0) { + return int32(REG_ESPACE) + } + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(c)).Fleft)).Fobj = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(c)).Fleft)).Ftype1 = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ftype1 + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(c)).Fleft)).Fnullable = -int32(1) + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(c)).Fleft)).Fsubmatch_id = -int32(1) + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(c)).Fleft)).Ffirstpos = UintptrFromInt32(0) + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(c)).Fleft)).Flastpos = UintptrFromInt32(0) + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(c)).Fleft)).Fnum_tags = 0 + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(c)).Fleft)).Fnum_submatches = 0 + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj = c + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ftype1 = int32(_CATENATION) + return REG_OK +} + +type Ttre_addtags_symbol_t = int32 + +const _ADDTAGS_RECURSE = 0 +const _ADDTAGS_AFTER_ITERATION = 1 +const _ADDTAGS_AFTER_UNION_LEFT = 2 +const _ADDTAGS_AFTER_UNION_RIGHT = 3 +const _ADDTAGS_AFTER_CAT_LEFT = 4 +const _ADDTAGS_AFTER_CAT_RIGHT = 5 +const _ADDTAGS_SET_SUBMATCH_END = 6 + +type Ttre_tag_states_t = struct { + Ftag int32 + Fnext_tag int32 +} + +// C documentation +// +// /* Go through `regset' and set submatch data for submatches that are +// using this tag. */ +func _tre_purge_regset(tls *TLS, regset uintptr, tnfa uintptr, tag int32) { + var i, id, start int32 + _, _, _ = i, id, start + i = 0 + for { + if !(*(*int32)(unsafe.Pointer(regset + uintptr(i)*4)) >= 0) { + break + } + id = *(*int32)(unsafe.Pointer(regset + uintptr(i)*4)) / int32(2) + start = BoolInt32(!(*(*int32)(unsafe.Pointer(regset + uintptr(i)*4))%Int32FromInt32(2) != 0)) + if start != 0 { + (*(*Ttre_submatch_data_t)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fsubmatch_data + uintptr(id)*16))).Fso_tag = tag + } else { + (*(*Ttre_submatch_data_t)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fsubmatch_data + uintptr(id)*16))).Feo_tag = tag + } + goto _1 + _1: + ; + i++ + } + *(*int32)(unsafe.Pointer(regset)) = -int32(1) +} + +// C documentation +// +// /* Adds tags to appropriate locations in the parse tree in `tree', so that +// subexpressions marked for submatch addressing can be traced. */ +func _tre_add_tags(tls *TLS, mem Ttre_mem_t, stack uintptr, tree uintptr, tnfa uintptr) (r Treg_errcode_t) { + var added_tags, bottom, enter_tag, first_pass, i1, i2, i3, i4, i5, i6, i7, id, id1, left_tag, minimal, minimal_tag, new_tag, next_tag, num_minimals, num_tags, reserved_tag, right_tag, tag, tag_left, tag_right, v22 int32 + var cat, iter, left, left1, left2, lit, node, orig_regset, p, parents, regset, right, right1, right2, saved_states, uni uintptr + var direction Ttre_tag_direction_t + var i uint32 + var status Treg_errcode_t + var symbol Ttre_addtags_symbol_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = added_tags, bottom, cat, direction, enter_tag, first_pass, i, i1, i2, i3, i4, i5, i6, i7, id, id1, iter, left, left1, left2, left_tag, lit, minimal, minimal_tag, new_tag, next_tag, node, num_minimals, num_tags, orig_regset, p, parents, regset, reserved_tag, right, right1, right2, right_tag, saved_states, status, symbol, tag, tag_left, tag_right, uni, v22 + status = REG_OK + node = tree /* Tree node we are currently looking at. */ + bottom = _tre_stack_num_objects(tls, stack) + /* True for first pass (counting number of needed tags) */ + first_pass = BoolInt32(mem == UintptrFromInt32(0) || tnfa == UintptrFromInt32(0)) + num_tags = 0 /* Total number of tags. */ + num_minimals = 0 /* Number of special minimal tags. */ + tag = 0 /* The tag that is to be added next. */ + next_tag = int32(1) /* Stack of submatches the current submatch is + contained in. */ + minimal_tag = -int32(1) + direction = int32(_TRE_TAG_MINIMIZE) + if !(first_pass != 0) { + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fend_tag = 0 + *(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags)) = -int32(1) + } + regset = Xmalloc(tls, uint64(4)*uint64(((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_submatches+Uint32FromInt32(1))*Uint32FromInt32(2))) + if regset == UintptrFromInt32(0) { + return int32(REG_ESPACE) + } + *(*int32)(unsafe.Pointer(regset)) = -int32(1) + orig_regset = regset + parents = Xmalloc(tls, uint64(4)*uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_submatches+Uint32FromInt32(1))) + if parents == UintptrFromInt32(0) { + Xfree(tls, regset) + return int32(REG_ESPACE) + } + *(*int32)(unsafe.Pointer(parents)) = -int32(1) + saved_states = Xmalloc(tls, uint64(8)*uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_submatches+Uint32FromInt32(1))) + if saved_states == UintptrFromInt32(0) { + Xfree(tls, regset) + Xfree(tls, parents) + return int32(REG_ESPACE) + } else { + i = uint32(0) + for { + if !(i <= (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_submatches) { + break + } + (*(*Ttre_tag_states_t)(unsafe.Pointer(saved_states + uintptr(i)*8))).Ftag = -int32(1) + goto _1 + _1: + ; + i++ + } + } + status = _tre_stack_push_voidptr(tls, stack, node) + status = _tre_stack_push_int(tls, stack, int32(_ADDTAGS_RECURSE)) + for _tre_stack_num_objects(tls, stack) > bottom { + if status != REG_OK { + break + } + symbol = _tre_stack_pop_int(tls, stack) + switch symbol { + case int32(_ADDTAGS_SET_SUBMATCH_END): + goto _2 + case int32(_ADDTAGS_RECURSE): + goto _3 + case int32(_ADDTAGS_AFTER_ITERATION): + goto _4 + case int32(_ADDTAGS_AFTER_CAT_LEFT): + goto _5 + case int32(_ADDTAGS_AFTER_CAT_RIGHT): + goto _6 + case int32(_ADDTAGS_AFTER_UNION_LEFT): + goto _7 + case int32(_ADDTAGS_AFTER_UNION_RIGHT): + goto _8 + default: + goto _9 + } + goto _10 + _2: + ; + id = _tre_stack_pop_int(tls, stack) + /* Add end of this submatch to regset. */ + i1 = 0 + for { + if !(*(*int32)(unsafe.Pointer(regset + uintptr(i1)*4)) >= 0) { + break + } + goto _11 + _11: + ; + i1++ + } + *(*int32)(unsafe.Pointer(regset + uintptr(i1)*4)) = id*int32(2) + int32(1) + *(*int32)(unsafe.Pointer(regset + uintptr(i1+int32(1))*4)) = -int32(1) + /* Pop this submatch from the parents stack. */ + i1 = 0 + for { + if !(*(*int32)(unsafe.Pointer(parents + uintptr(i1)*4)) >= 0) { + break + } + goto _12 + _12: + ; + i1++ + } + *(*int32)(unsafe.Pointer(parents + uintptr(i1-int32(1))*4)) = -int32(1) + goto _10 + _3: + ; + node = _tre_stack_pop_voidptr(tls, stack) + if (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fsubmatch_id >= 0 { + id1 = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fsubmatch_id + /* Add start of this submatch to regset. */ + i2 = 0 + for { + if !(*(*int32)(unsafe.Pointer(regset + uintptr(i2)*4)) >= 0) { + break + } + goto _13 + _13: + ; + i2++ + } + *(*int32)(unsafe.Pointer(regset + uintptr(i2)*4)) = id1 * int32(2) + *(*int32)(unsafe.Pointer(regset + uintptr(i2+int32(1))*4)) = -int32(1) + if !(first_pass != 0) { + i2 = 0 + for { + if !(*(*int32)(unsafe.Pointer(parents + uintptr(i2)*4)) >= 0) { + break + } + goto _14 + _14: + ; + i2++ + } + (*(*Ttre_submatch_data_t)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fsubmatch_data + uintptr(id1)*16))).Fparents = UintptrFromInt32(0) + if i2 > 0 { + p = Xmalloc(tls, uint64(4)*uint64(i2+Int32FromInt32(1))) + if p == UintptrFromInt32(0) { + status = int32(REG_ESPACE) + goto _10 + } + (*(*Ttre_submatch_data_t)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fsubmatch_data + uintptr(id1)*16))).Fparents = p + i2 = 0 + for { + if !(*(*int32)(unsafe.Pointer(parents + uintptr(i2)*4)) >= 0) { + break + } + *(*int32)(unsafe.Pointer(p + uintptr(i2)*4)) = *(*int32)(unsafe.Pointer(parents + uintptr(i2)*4)) + goto _15 + _15: + ; + i2++ + } + *(*int32)(unsafe.Pointer(p + uintptr(i2)*4)) = -int32(1) + } + } + /* Add end of this submatch to regset after processing this + node. */ + status = _tre_stack_push_int(tls, stack, (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fsubmatch_id) + if status != REG_OK { + goto _10 + } + status = _tre_stack_push_int(tls, stack, int32(_ADDTAGS_SET_SUBMATCH_END)) + if status != REG_OK { + goto _10 + } + } + switch (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ftype1 { + case int32(_LITERAL): + lit = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + if !((*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min < Int64FromInt32(0)) || (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min == int64(-int32(4)) { + if *(*int32)(unsafe.Pointer(regset)) >= 0 { + /* Regset is not empty, so add a tag before the + literal or backref. */ + if !(first_pass != 0) { + status = _tre_add_tag_left(tls, mem, node, tag) + *(*Ttre_tag_direction_t)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftag_directions + uintptr(tag)*4)) = direction + if minimal_tag >= 0 { + i3 = 0 + for { + if !(*(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i3)*4)) >= 0) { + break + } + goto _16 + _16: + ; + i3++ + } + *(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i3)*4)) = tag + *(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i3+int32(1))*4)) = minimal_tag + *(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i3+int32(2))*4)) = -int32(1) + minimal_tag = -int32(1) + num_minimals++ + } + _tre_purge_regset(tls, regset, tnfa, tag) + } else { + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnum_tags = int32(1) + } + *(*int32)(unsafe.Pointer(regset)) = -int32(1) + tag = next_tag + num_tags++ + next_tag++ + } + } else { + } + case int32(_CATENATION): + cat = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + left = (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fleft + right = (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fright + reserved_tag = -int32(1) + /* After processing right child. */ + status = _tre_stack_push_voidptr(tls, stack, node) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_ADDTAGS_AFTER_CAT_RIGHT)) + if status != REG_OK { + break + } + /* Process right child. */ + status = _tre_stack_push_voidptr(tls, stack, right) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_ADDTAGS_RECURSE)) + if status != REG_OK { + break + } + /* After processing left child. */ + status = _tre_stack_push_int(tls, stack, next_tag+(*Ttre_ast_node_t)(unsafe.Pointer(left)).Fnum_tags) + if status != REG_OK { + break + } + if (*Ttre_ast_node_t)(unsafe.Pointer(left)).Fnum_tags > 0 && (*Ttre_ast_node_t)(unsafe.Pointer(right)).Fnum_tags > 0 { + /* Reserve the next tag to the right child. */ + reserved_tag = next_tag + next_tag++ + } + status = _tre_stack_push_int(tls, stack, reserved_tag) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_ADDTAGS_AFTER_CAT_LEFT)) + if status != REG_OK { + break + } + /* Process left child. */ + status = _tre_stack_push_voidptr(tls, stack, left) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_ADDTAGS_RECURSE)) + if status != REG_OK { + break + } + case int32(_ITERATION): + iter = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + if first_pass != 0 { + status = _tre_stack_push_int(tls, stack, BoolInt32(*(*int32)(unsafe.Pointer(regset)) >= 0 || int32(uint32(*(*uint8)(unsafe.Pointer(iter + 16))&0x1>>0)) != 0)) + if status != REG_OK { + break + } + } else { + status = _tre_stack_push_int(tls, stack, tag) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(uint32(*(*uint8)(unsafe.Pointer(iter + 16))&0x1>>0))) + if status != REG_OK { + break + } + } + status = _tre_stack_push_voidptr(tls, stack, node) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_ADDTAGS_AFTER_ITERATION)) + if status != REG_OK { + break + } + status = _tre_stack_push_voidptr(tls, stack, (*Ttre_iteration_t)(unsafe.Pointer(iter)).Farg) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_ADDTAGS_RECURSE)) + if status != REG_OK { + break + } + /* Regset is not empty, so add a tag here. */ + if *(*int32)(unsafe.Pointer(regset)) >= 0 || int32(uint32(*(*uint8)(unsafe.Pointer(iter + 16))&0x1>>0)) != 0 { + if !(first_pass != 0) { + status = _tre_add_tag_left(tls, mem, node, tag) + if int32(uint32(*(*uint8)(unsafe.Pointer(iter + 16))&0x1>>0)) != 0 { + *(*Ttre_tag_direction_t)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftag_directions + uintptr(tag)*4)) = int32(_TRE_TAG_MAXIMIZE) + } else { + *(*Ttre_tag_direction_t)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftag_directions + uintptr(tag)*4)) = direction + } + if minimal_tag >= 0 { + i4 = 0 + for { + if !(*(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i4)*4)) >= 0) { + break + } + goto _17 + _17: + ; + i4++ + } + *(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i4)*4)) = tag + *(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i4+int32(1))*4)) = minimal_tag + *(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i4+int32(2))*4)) = -int32(1) + minimal_tag = -int32(1) + num_minimals++ + } + _tre_purge_regset(tls, regset, tnfa, tag) + } + *(*int32)(unsafe.Pointer(regset)) = -int32(1) + tag = next_tag + num_tags++ + next_tag++ + } + direction = int32(_TRE_TAG_MINIMIZE) + case int32(_UNION): + uni = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + left1 = (*Ttre_union_t)(unsafe.Pointer(uni)).Fleft + right1 = (*Ttre_union_t)(unsafe.Pointer(uni)).Fright + if *(*int32)(unsafe.Pointer(regset)) >= 0 { + left_tag = next_tag + right_tag = next_tag + int32(1) + } else { + left_tag = tag + right_tag = next_tag + } + /* After processing right child. */ + status = _tre_stack_push_int(tls, stack, right_tag) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, left_tag) + if status != REG_OK { + break + } + status = _tre_stack_push_voidptr(tls, stack, regset) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, BoolInt32(*(*int32)(unsafe.Pointer(regset)) >= 0)) + if status != REG_OK { + break + } + status = _tre_stack_push_voidptr(tls, stack, node) + if status != REG_OK { + break + } + status = _tre_stack_push_voidptr(tls, stack, right1) + if status != REG_OK { + break + } + status = _tre_stack_push_voidptr(tls, stack, left1) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_ADDTAGS_AFTER_UNION_RIGHT)) + if status != REG_OK { + break + } + /* Process right child. */ + status = _tre_stack_push_voidptr(tls, stack, right1) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_ADDTAGS_RECURSE)) + if status != REG_OK { + break + } + /* After processing left child. */ + status = _tre_stack_push_int(tls, stack, int32(_ADDTAGS_AFTER_UNION_LEFT)) + if status != REG_OK { + break + } + /* Process left child. */ + status = _tre_stack_push_voidptr(tls, stack, left1) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_ADDTAGS_RECURSE)) + if status != REG_OK { + break + } + /* Regset is not empty, so add a tag here. */ + if *(*int32)(unsafe.Pointer(regset)) >= 0 { + if !(first_pass != 0) { + status = _tre_add_tag_left(tls, mem, node, tag) + *(*Ttre_tag_direction_t)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftag_directions + uintptr(tag)*4)) = direction + if minimal_tag >= 0 { + i5 = 0 + for { + if !(*(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i5)*4)) >= 0) { + break + } + goto _18 + _18: + ; + i5++ + } + *(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i5)*4)) = tag + *(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i5+int32(1))*4)) = minimal_tag + *(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i5+int32(2))*4)) = -int32(1) + minimal_tag = -int32(1) + num_minimals++ + } + _tre_purge_regset(tls, regset, tnfa, tag) + } + *(*int32)(unsafe.Pointer(regset)) = -int32(1) + tag = next_tag + num_tags++ + next_tag++ + } + if (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnum_submatches > 0 { + /* The next two tags are reserved for markers. */ + next_tag++ + tag = next_tag + next_tag++ + } + break + } + if (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fsubmatch_id >= 0 { + /* Push this submatch on the parents stack. */ + i6 = 0 + for { + if !(*(*int32)(unsafe.Pointer(parents + uintptr(i6)*4)) >= 0) { + break + } + goto _19 + _19: + ; + i6++ + } + *(*int32)(unsafe.Pointer(parents + uintptr(i6)*4)) = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fsubmatch_id + *(*int32)(unsafe.Pointer(parents + uintptr(i6+int32(1))*4)) = -int32(1) + } + goto _10 /* end case: ADDTAGS_RECURSE */ + _4: + ; + minimal = 0 + node = _tre_stack_pop_voidptr(tls, stack) + if first_pass != 0 { + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnum_tags = (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_iteration_t)(unsafe.Pointer((*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj)).Farg)).Fnum_tags + _tre_stack_pop_int(tls, stack) + minimal_tag = -int32(1) + } else { + minimal = _tre_stack_pop_int(tls, stack) + enter_tag = _tre_stack_pop_int(tls, stack) + if minimal != 0 { + minimal_tag = enter_tag + } + } + if !(first_pass != 0) { + if minimal != 0 { + direction = int32(_TRE_TAG_MINIMIZE) + } else { + direction = int32(_TRE_TAG_MAXIMIZE) + } + } + goto _10 + _5: + ; + new_tag = _tre_stack_pop_int(tls, stack) + next_tag = _tre_stack_pop_int(tls, stack) + if new_tag >= 0 { + tag = new_tag + } + goto _10 + _6: + ; + node = _tre_stack_pop_voidptr(tls, stack) + if first_pass != 0 { + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnum_tags = (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer((*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj)).Fleft)).Fnum_tags + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer((*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj)).Fright)).Fnum_tags + } + goto _10 + _7: + ; + /* Lift the bottom of the `regset' array so that when processing + the right operand the items currently in the array are + invisible. The original bottom was saved at ADDTAGS_UNION and + will be restored at ADDTAGS_AFTER_UNION_RIGHT below. */ + _21: + ; + if !(*(*int32)(unsafe.Pointer(regset)) >= 0) { + goto _20 + } + regset += 4 + goto _21 + _20: + ; + goto _10 + _8: + ; + left2 = _tre_stack_pop_voidptr(tls, stack) + right2 = _tre_stack_pop_voidptr(tls, stack) + node = _tre_stack_pop_voidptr(tls, stack) + added_tags = _tre_stack_pop_int(tls, stack) + if first_pass != 0 { + if (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnum_submatches > 0 { + v22 = int32(2) + } else { + v22 = 0 + } + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnum_tags = (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_union_t)(unsafe.Pointer((*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj)).Fleft)).Fnum_tags + (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_union_t)(unsafe.Pointer((*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj)).Fright)).Fnum_tags + added_tags + v22 + } + regset = _tre_stack_pop_voidptr(tls, stack) + tag_left = _tre_stack_pop_int(tls, stack) + tag_right = _tre_stack_pop_int(tls, stack) + /* Add tags after both children, the left child gets a smaller + tag than the right child. This guarantees that we prefer + the left child over the right child. */ + /* XXX - This is not always necessary (if the children have + tags which must be seen for every match of that child). */ + /* XXX - Check if this is the only place where tre_add_tag_right + is used. If so, use tre_add_tag_left (putting the tag before + the child as opposed after the child) and throw away + tre_add_tag_right. */ + if (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnum_submatches > 0 { + if !(first_pass != 0) { + status = _tre_add_tag_right(tls, mem, left2, tag_left) + *(*Ttre_tag_direction_t)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftag_directions + uintptr(tag_left)*4)) = int32(_TRE_TAG_MAXIMIZE) + if status == REG_OK { + status = _tre_add_tag_right(tls, mem, right2, tag_right) + } + *(*Ttre_tag_direction_t)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftag_directions + uintptr(tag_right)*4)) = int32(_TRE_TAG_MAXIMIZE) + } + num_tags += int32(2) + } + direction = int32(_TRE_TAG_MAXIMIZE) + goto _10 + _9: + ; + goto _10 + _10: + /* end switch(symbol) */ + } /* end while(tre_stack_num_objects(stack) > bottom) */ + if !(first_pass != 0) { + _tre_purge_regset(tls, regset, tnfa, tag) + } + if !(first_pass != 0) && minimal_tag >= 0 { + i7 = 0 + for { + if !(*(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i7)*4)) >= 0) { + break + } + goto _23 + _23: + ; + i7++ + } + *(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i7)*4)) = tag + *(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i7+int32(1))*4)) = minimal_tag + *(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i7+int32(2))*4)) = -int32(1) + minimal_tag = -int32(1) + num_minimals++ + } + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fend_tag = num_tags + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags = num_tags + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_minimals = num_minimals + Xfree(tls, orig_regset) + Xfree(tls, parents) + Xfree(tls, saved_states) + return status +} + +/* + AST to TNFA compilation routines. +*/ + +type Ttre_copyast_symbol_t = int32 + +const _COPY_RECURSE = 0 +const _COPY_SET_RESULT_PTR = 1 + +/* Flags for tre_copy_ast(). */ + +func _tre_copy_ast(tls *TLS, mem Ttre_mem_t, stack uintptr, ast uintptr, flags int32, pos_add uintptr, tag_directions uintptr, copy1 uintptr, max_pos uintptr) (r Treg_errcode_t) { + var bottom, first_tag, max, min, num_copied, pos, v1 int32 + var cat, iter, lit, node, p, result, tmp, tmp1, uni uintptr + var status Treg_errcode_t + var symbol Ttre_copyast_symbol_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bottom, cat, first_tag, iter, lit, max, min, node, num_copied, p, pos, result, status, symbol, tmp, tmp1, uni, v1 + status = REG_OK + bottom = _tre_stack_num_objects(tls, stack) + num_copied = 0 + first_tag = int32(1) + result = copy1 + status = _tre_stack_push_voidptr(tls, stack, ast) + status = _tre_stack_push_int(tls, stack, int32(_COPY_RECURSE)) + for status == REG_OK && _tre_stack_num_objects(tls, stack) > bottom { + if status != REG_OK { + break + } + symbol = _tre_stack_pop_int(tls, stack) + switch symbol { + case int32(_COPY_SET_RESULT_PTR): + result = _tre_stack_pop_voidptr(tls, stack) + case int32(_COPY_RECURSE): + node = _tre_stack_pop_voidptr(tls, stack) + switch (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ftype1 { + case int32(_LITERAL): + lit = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + pos = (*Ttre_literal_t)(unsafe.Pointer(lit)).Fposition + min = int32((*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min) + max = int32((*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max) + if !((*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min < Int64FromInt32(0)) || (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min == int64(-int32(4)) { + /* XXX - e.g. [ab] has only one position but two + nodes, so we are creating holes in the state space + here. Not fatal, just wastes memory. */ + pos += *(*int32)(unsafe.Pointer(pos_add)) + num_copied++ + } else { + if (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min == int64(-int32(3)) && flags&int32(COPY_REMOVE_TAGS) != 0 { + /* Change this tag to empty. */ + min = -int32(1) + v1 = -Int32FromInt32(1) + pos = v1 + max = v1 + } else { + if (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min == int64(-int32(3)) && flags&int32(COPY_MAXIMIZE_FIRST_TAG) != 0 && first_tag != 0 { + /* Maximize the first tag. */ + *(*Ttre_tag_direction_t)(unsafe.Pointer(tag_directions + uintptr(max)*4)) = int32(_TRE_TAG_MAXIMIZE) + first_tag = 0 + } + } + } + *(*uintptr)(unsafe.Pointer(result)) = _tre_ast_new_literal(tls, mem, min, max, pos) + if *(*uintptr)(unsafe.Pointer(result)) == UintptrFromInt32(0) { + status = int32(REG_ESPACE) + } else { + p = (*Ttre_ast_node_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(result)))).Fobj + (*Ttre_literal_t)(unsafe.Pointer(p)).Fclass = (*Ttre_literal_t)(unsafe.Pointer(lit)).Fclass + (*Ttre_literal_t)(unsafe.Pointer(p)).Fneg_classes = (*Ttre_literal_t)(unsafe.Pointer(lit)).Fneg_classes + } + if pos > *(*int32)(unsafe.Pointer(max_pos)) { + *(*int32)(unsafe.Pointer(max_pos)) = pos + } + case int32(_UNION): + uni = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + *(*uintptr)(unsafe.Pointer(result)) = _tre_ast_new_union(tls, mem, (*Ttre_union_t)(unsafe.Pointer(uni)).Fleft, (*Ttre_union_t)(unsafe.Pointer(uni)).Fright) + if *(*uintptr)(unsafe.Pointer(result)) == UintptrFromInt32(0) { + status = int32(REG_ESPACE) + break + } + tmp = (*Ttre_ast_node_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(result)))).Fobj + result = tmp + status = _tre_stack_push_voidptr(tls, stack, (*Ttre_union_t)(unsafe.Pointer(uni)).Fright) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_COPY_RECURSE)) + if status != REG_OK { + break + } + status = _tre_stack_push_voidptr(tls, stack, tmp+8) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_COPY_SET_RESULT_PTR)) + if status != REG_OK { + break + } + status = _tre_stack_push_voidptr(tls, stack, (*Ttre_union_t)(unsafe.Pointer(uni)).Fleft) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_COPY_RECURSE)) + if status != REG_OK { + break + } + case int32(_CATENATION): + cat = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + *(*uintptr)(unsafe.Pointer(result)) = _tre_ast_new_catenation(tls, mem, (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fleft, (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fright) + if *(*uintptr)(unsafe.Pointer(result)) == UintptrFromInt32(0) { + status = int32(REG_ESPACE) + break + } + tmp1 = (*Ttre_ast_node_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(result)))).Fobj + (*Ttre_catenation_t)(unsafe.Pointer(tmp1)).Fleft = UintptrFromInt32(0) + (*Ttre_catenation_t)(unsafe.Pointer(tmp1)).Fright = UintptrFromInt32(0) + result = tmp1 + status = _tre_stack_push_voidptr(tls, stack, (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fright) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_COPY_RECURSE)) + if status != REG_OK { + break + } + status = _tre_stack_push_voidptr(tls, stack, tmp1+8) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_COPY_SET_RESULT_PTR)) + if status != REG_OK { + break + } + status = _tre_stack_push_voidptr(tls, stack, (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fleft) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_COPY_RECURSE)) + if status != REG_OK { + break + } + case int32(_ITERATION): + iter = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + status = _tre_stack_push_voidptr(tls, stack, (*Ttre_iteration_t)(unsafe.Pointer(iter)).Farg) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_COPY_RECURSE)) + if status != REG_OK { + break + } + *(*uintptr)(unsafe.Pointer(result)) = _tre_ast_new_iter(tls, mem, (*Ttre_iteration_t)(unsafe.Pointer(iter)).Farg, (*Ttre_iteration_t)(unsafe.Pointer(iter)).Fmin, (*Ttre_iteration_t)(unsafe.Pointer(iter)).Fmax, int32(uint32(*(*uint8)(unsafe.Pointer(iter + 16))&0x1>>0))) + if *(*uintptr)(unsafe.Pointer(result)) == UintptrFromInt32(0) { + status = int32(REG_ESPACE) + break + } + iter = (*Ttre_ast_node_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(result)))).Fobj + result = iter + default: + break + } + break + } + } + *(*int32)(unsafe.Pointer(pos_add)) += num_copied + return status +} + +type Ttre_expand_ast_symbol_t = int32 + +const _EXPAND_RECURSE = 0 +const _EXPAND_AFTER_ITER = 1 + +// C documentation +// +// /* Expands each iteration node that has a finite nonzero minimum or maximum +// iteration count to a catenated sequence of copies of the node. */ +func _tre_expand_ast(tls *TLS, mem Ttre_mem_t, stack uintptr, ast uintptr, position uintptr, tag_directions uintptr) (r Treg_errcode_t) { + bp := tls.Alloc(32) + defer tls.Free(32) + var _status, _status1, status Treg_errcode_t + var bottom, flags, iter_depth, j, pos_add_last, pos_add_save, pos_add_total, v2 int32 + var cat, iter, iter1, lit, node, seq1, tmp, uni uintptr + var symbol Ttre_expand_ast_symbol_t + var _ /* copy at bp+16 */ uintptr + var _ /* copy at bp+24 */ uintptr + var _ /* max_pos at bp+4 */ int32 + var _ /* pos_add at bp+0 */ int32 + var _ /* seq2 at bp+8 */ uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = _status, _status1, bottom, cat, flags, iter, iter1, iter_depth, j, lit, node, pos_add_last, pos_add_save, pos_add_total, seq1, status, symbol, tmp, uni, v2 + status = REG_OK + bottom = _tre_stack_num_objects(tls, stack) + *(*int32)(unsafe.Pointer(bp)) = 0 + pos_add_total = 0 + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + iter_depth = 0 + _status = _tre_stack_push_voidptr(tls, stack, ast) + if _status != REG_OK { + return _status + } + _status1 = _tre_stack_push_int(tls, stack, int32(_EXPAND_RECURSE)) + if _status1 != REG_OK { + return _status1 + } + for status == REG_OK && _tre_stack_num_objects(tls, stack) > bottom { + if status != REG_OK { + break + } + symbol = _tre_stack_pop_int(tls, stack) + node = _tre_stack_pop_voidptr(tls, stack) + switch symbol { + case int32(_EXPAND_RECURSE): + switch (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ftype1 { + case int32(_LITERAL): + lit = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + if !((*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min < Int64FromInt32(0)) || (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min == int64(-int32(4)) { + *(*int32)(unsafe.Pointer(lit + 16)) += *(*int32)(unsafe.Pointer(bp)) + if (*Ttre_literal_t)(unsafe.Pointer(lit)).Fposition > *(*int32)(unsafe.Pointer(bp + 4)) { + *(*int32)(unsafe.Pointer(bp + 4)) = (*Ttre_literal_t)(unsafe.Pointer(lit)).Fposition + } + } + case int32(_UNION): + uni = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + status = _tre_stack_push_voidptr(tls, stack, (*Ttre_union_t)(unsafe.Pointer(uni)).Fright) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_EXPAND_RECURSE)) + if status != REG_OK { + break + } + status = _tre_stack_push_voidptr(tls, stack, (*Ttre_union_t)(unsafe.Pointer(uni)).Fleft) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_EXPAND_RECURSE)) + if status != REG_OK { + break + } + case int32(_CATENATION): + cat = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + status = _tre_stack_push_voidptr(tls, stack, (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fright) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_EXPAND_RECURSE)) + if status != REG_OK { + break + } + status = _tre_stack_push_voidptr(tls, stack, (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fleft) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_EXPAND_RECURSE)) + if status != REG_OK { + break + } + case int32(_ITERATION): + iter = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + status = _tre_stack_push_int(tls, stack, *(*int32)(unsafe.Pointer(bp))) + if status != REG_OK { + break + } + status = _tre_stack_push_voidptr(tls, stack, node) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_EXPAND_AFTER_ITER)) + if status != REG_OK { + break + } + status = _tre_stack_push_voidptr(tls, stack, (*Ttre_iteration_t)(unsafe.Pointer(iter)).Farg) + if status != REG_OK { + break + } + status = _tre_stack_push_int(tls, stack, int32(_EXPAND_RECURSE)) + if status != REG_OK { + break + } + /* If we are going to expand this node at EXPAND_AFTER_ITER + then don't increase the `pos' fields of the nodes now, it + will get done when expanding. */ + if (*Ttre_iteration_t)(unsafe.Pointer(iter)).Fmin > int32(1) || (*Ttre_iteration_t)(unsafe.Pointer(iter)).Fmax > int32(1) { + *(*int32)(unsafe.Pointer(bp)) = 0 + } + iter_depth++ + default: + break + } + case int32(_EXPAND_AFTER_ITER): + iter1 = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + *(*int32)(unsafe.Pointer(bp)) = _tre_stack_pop_int(tls, stack) + pos_add_last = *(*int32)(unsafe.Pointer(bp)) + if (*Ttre_iteration_t)(unsafe.Pointer(iter1)).Fmin > int32(1) || (*Ttre_iteration_t)(unsafe.Pointer(iter1)).Fmax > int32(1) { + seq1 = UintptrFromInt32(0) + *(*uintptr)(unsafe.Pointer(bp + 8)) = UintptrFromInt32(0) + pos_add_save = *(*int32)(unsafe.Pointer(bp)) + /* Create a catenated sequence of copies of the node. */ + j = 0 + for { + if !(j < (*Ttre_iteration_t)(unsafe.Pointer(iter1)).Fmin) { + break + } + if j+int32(1) < (*Ttre_iteration_t)(unsafe.Pointer(iter1)).Fmin { + v2 = int32(COPY_REMOVE_TAGS) + } else { + v2 = int32(COPY_MAXIMIZE_FIRST_TAG) + } + /* Remove tags from all but the last copy. */ + flags = v2 + pos_add_save = *(*int32)(unsafe.Pointer(bp)) + status = _tre_copy_ast(tls, mem, stack, (*Ttre_iteration_t)(unsafe.Pointer(iter1)).Farg, flags, bp, tag_directions, bp+16, bp+4) + if status != REG_OK { + return status + } + if seq1 != UintptrFromInt32(0) { + seq1 = _tre_ast_new_catenation(tls, mem, seq1, *(*uintptr)(unsafe.Pointer(bp + 16))) + } else { + seq1 = *(*uintptr)(unsafe.Pointer(bp + 16)) + } + if seq1 == UintptrFromInt32(0) { + return int32(REG_ESPACE) + } + goto _1 + _1: + ; + j++ + } + if (*Ttre_iteration_t)(unsafe.Pointer(iter1)).Fmax == -int32(1) { + /* No upper limit. */ + pos_add_save = *(*int32)(unsafe.Pointer(bp)) + status = _tre_copy_ast(tls, mem, stack, (*Ttre_iteration_t)(unsafe.Pointer(iter1)).Farg, 0, bp, UintptrFromInt32(0), bp+8, bp+4) + if status != REG_OK { + return status + } + *(*uintptr)(unsafe.Pointer(bp + 8)) = _tre_ast_new_iter(tls, mem, *(*uintptr)(unsafe.Pointer(bp + 8)), 0, -int32(1), 0) + if *(*uintptr)(unsafe.Pointer(bp + 8)) == UintptrFromInt32(0) { + return int32(REG_ESPACE) + } + } else { + j = (*Ttre_iteration_t)(unsafe.Pointer(iter1)).Fmin + for { + if !(j < (*Ttre_iteration_t)(unsafe.Pointer(iter1)).Fmax) { + break + } + pos_add_save = *(*int32)(unsafe.Pointer(bp)) + status = _tre_copy_ast(tls, mem, stack, (*Ttre_iteration_t)(unsafe.Pointer(iter1)).Farg, 0, bp, UintptrFromInt32(0), bp+24, bp+4) + if status != REG_OK { + return status + } + if *(*uintptr)(unsafe.Pointer(bp + 8)) != UintptrFromInt32(0) { + *(*uintptr)(unsafe.Pointer(bp + 8)) = _tre_ast_new_catenation(tls, mem, *(*uintptr)(unsafe.Pointer(bp + 24)), *(*uintptr)(unsafe.Pointer(bp + 8))) + } else { + *(*uintptr)(unsafe.Pointer(bp + 8)) = *(*uintptr)(unsafe.Pointer(bp + 24)) + } + if *(*uintptr)(unsafe.Pointer(bp + 8)) == UintptrFromInt32(0) { + return int32(REG_ESPACE) + } + tmp = _tre_ast_new_literal(tls, mem, -int32(1), -int32(1), -int32(1)) + if tmp == UintptrFromInt32(0) { + return int32(REG_ESPACE) + } + *(*uintptr)(unsafe.Pointer(bp + 8)) = _tre_ast_new_union(tls, mem, tmp, *(*uintptr)(unsafe.Pointer(bp + 8))) + if *(*uintptr)(unsafe.Pointer(bp + 8)) == UintptrFromInt32(0) { + return int32(REG_ESPACE) + } + goto _3 + _3: + ; + j++ + } + } + *(*int32)(unsafe.Pointer(bp)) = pos_add_save + if seq1 == UintptrFromInt32(0) { + seq1 = *(*uintptr)(unsafe.Pointer(bp + 8)) + } else { + if *(*uintptr)(unsafe.Pointer(bp + 8)) != UintptrFromInt32(0) { + seq1 = _tre_ast_new_catenation(tls, mem, seq1, *(*uintptr)(unsafe.Pointer(bp + 8))) + } + } + if seq1 == UintptrFromInt32(0) { + return int32(REG_ESPACE) + } + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj = (*Ttre_ast_node_t)(unsafe.Pointer(seq1)).Fobj + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ftype1 = (*Ttre_ast_node_t)(unsafe.Pointer(seq1)).Ftype1 + } + iter_depth-- + pos_add_total += *(*int32)(unsafe.Pointer(bp)) - pos_add_last + if iter_depth == 0 { + *(*int32)(unsafe.Pointer(bp)) = pos_add_total + } + default: + break + } + } + *(*int32)(unsafe.Pointer(position)) += pos_add_total + /* `max_pos' should never be larger than `*position' if the above + code works, but just an extra safeguard let's make sure + `*position' is set large enough so enough memory will be + allocated for the transition table. */ + if *(*int32)(unsafe.Pointer(bp + 4)) > *(*int32)(unsafe.Pointer(position)) { + *(*int32)(unsafe.Pointer(position)) = *(*int32)(unsafe.Pointer(bp + 4)) + } + return status +} + +func _tre_set_empty(tls *TLS, mem Ttre_mem_t) (r uintptr) { + var new_set uintptr + _ = new_set + new_set = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), int32(1), uint64(56)) + if new_set == UintptrFromInt32(0) { + return UintptrFromInt32(0) + } + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set))).Fposition = -int32(1) + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set))).Fcode_min = -int32(1) + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set))).Fcode_max = -int32(1) + return new_set +} + +func _tre_set_one(tls *TLS, mem Ttre_mem_t, position int32, code_min int32, code_max int32, class Ttre_ctype_t, neg_classes uintptr, backref int32) (r uintptr) { + var new_set uintptr + _ = new_set + new_set = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), int32(1), Uint64FromInt64(56)*Uint64FromInt32(2)) + if new_set == UintptrFromInt32(0) { + return UintptrFromInt32(0) + } + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set))).Fposition = position + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set))).Fcode_min = code_min + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set))).Fcode_max = code_max + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set))).Fclass = class + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set))).Fneg_classes = neg_classes + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set))).Fbackref = backref + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + 1*56))).Fposition = -int32(1) + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + 1*56))).Fcode_min = -int32(1) + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + 1*56))).Fcode_max = -int32(1) + return new_set +} + +func _tre_set_union(tls *TLS, mem Ttre_mem_t, set1 uintptr, set2 uintptr, tags uintptr, assertions int32) (r uintptr) { + var i, j, num_tags, s1, s2 int32 + var new_set, new_tags uintptr + _, _, _, _, _, _, _ = i, j, new_set, new_tags, num_tags, s1, s2 + num_tags = 0 + for { + if !(tags != UintptrFromInt32(0) && *(*int32)(unsafe.Pointer(tags + uintptr(num_tags)*4)) >= 0) { + break + } + goto _1 + _1: + ; + num_tags++ + } + s1 = 0 + for { + if !((*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set1 + uintptr(s1)*56))).Fposition >= 0) { + break + } + goto _2 + _2: + ; + s1++ + } + s2 = 0 + for { + if !((*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set2 + uintptr(s2)*56))).Fposition >= 0) { + break + } + goto _3 + _3: + ; + s2++ + } + new_set = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), int32(1), uint64(56)*uint64(s1+s2+Int32FromInt32(1))) + if !(new_set != 0) { + return UintptrFromInt32(0) + } + s1 = 0 + for { + if !((*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set1 + uintptr(s1)*56))).Fposition >= 0) { + break + } + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1)*56))).Fposition = (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set1 + uintptr(s1)*56))).Fposition + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1)*56))).Fcode_min = (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set1 + uintptr(s1)*56))).Fcode_min + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1)*56))).Fcode_max = (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set1 + uintptr(s1)*56))).Fcode_max + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1)*56))).Fassertions = (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set1 + uintptr(s1)*56))).Fassertions | assertions + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1)*56))).Fclass = (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set1 + uintptr(s1)*56))).Fclass + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1)*56))).Fneg_classes = (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set1 + uintptr(s1)*56))).Fneg_classes + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1)*56))).Fbackref = (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set1 + uintptr(s1)*56))).Fbackref + if (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set1 + uintptr(s1)*56))).Ftags == UintptrFromInt32(0) && tags == UintptrFromInt32(0) { + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1)*56))).Ftags = UintptrFromInt32(0) + } else { + i = 0 + for { + if !((*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set1 + uintptr(s1)*56))).Ftags != UintptrFromInt32(0) && *(*int32)(unsafe.Pointer((*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set1 + uintptr(s1)*56))).Ftags + uintptr(i)*4)) >= 0) { + break + } + goto _5 + _5: + ; + i++ + } + new_tags = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), 0, Uint64FromInt64(4)*uint64(i+num_tags+Int32FromInt32(1))) + if new_tags == UintptrFromInt32(0) { + return UintptrFromInt32(0) + } + j = 0 + for { + if !(j < i) { + break + } + *(*int32)(unsafe.Pointer(new_tags + uintptr(j)*4)) = *(*int32)(unsafe.Pointer((*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set1 + uintptr(s1)*56))).Ftags + uintptr(j)*4)) + goto _6 + _6: + ; + j++ + } + i = 0 + for { + if !(i < num_tags) { + break + } + *(*int32)(unsafe.Pointer(new_tags + uintptr(j+i)*4)) = *(*int32)(unsafe.Pointer(tags + uintptr(i)*4)) + goto _7 + _7: + ; + i++ + } + *(*int32)(unsafe.Pointer(new_tags + uintptr(j+i)*4)) = -int32(1) + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1)*56))).Ftags = new_tags + } + goto _4 + _4: + ; + s1++ + } + s2 = 0 + for { + if !((*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set2 + uintptr(s2)*56))).Fposition >= 0) { + break + } + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1+s2)*56))).Fposition = (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set2 + uintptr(s2)*56))).Fposition + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1+s2)*56))).Fcode_min = (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set2 + uintptr(s2)*56))).Fcode_min + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1+s2)*56))).Fcode_max = (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set2 + uintptr(s2)*56))).Fcode_max + /* XXX - why not | assertions here as well? */ + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1+s2)*56))).Fassertions = (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set2 + uintptr(s2)*56))).Fassertions + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1+s2)*56))).Fclass = (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set2 + uintptr(s2)*56))).Fclass + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1+s2)*56))).Fneg_classes = (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set2 + uintptr(s2)*56))).Fneg_classes + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1+s2)*56))).Fbackref = (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set2 + uintptr(s2)*56))).Fbackref + if (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set2 + uintptr(s2)*56))).Ftags == UintptrFromInt32(0) { + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1+s2)*56))).Ftags = UintptrFromInt32(0) + } else { + i = 0 + for { + if !(*(*int32)(unsafe.Pointer((*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set2 + uintptr(s2)*56))).Ftags + uintptr(i)*4)) >= 0) { + break + } + goto _9 + _9: + ; + i++ + } + new_tags = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), 0, uint64(4)*uint64(i+Int32FromInt32(1))) + if new_tags == UintptrFromInt32(0) { + return UintptrFromInt32(0) + } + j = 0 + for { + if !(j < i) { + break + } + *(*int32)(unsafe.Pointer(new_tags + uintptr(j)*4)) = *(*int32)(unsafe.Pointer((*(*Ttre_pos_and_tags_t)(unsafe.Pointer(set2 + uintptr(s2)*56))).Ftags + uintptr(j)*4)) + goto _10 + _10: + ; + j++ + } + *(*int32)(unsafe.Pointer(new_tags + uintptr(j)*4)) = -int32(1) + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1+s2)*56))).Ftags = new_tags + } + goto _8 + _8: + ; + s2++ + } + (*(*Ttre_pos_and_tags_t)(unsafe.Pointer(new_set + uintptr(s1+s2)*56))).Fposition = -int32(1) + return new_set +} + +// C documentation +// +// /* Finds the empty path through `node' which is the one that should be +// taken according to POSIX.2 rules, and adds the tags on that path to +// `tags'. `tags' may be NULL. If `num_tags_seen' is not NULL, it is +// set to the number of tags seen on the path. */ +func _tre_match_empty(tls *TLS, stack uintptr, node uintptr, tags uintptr, assertions uintptr, num_tags_seen uintptr) (r Treg_errcode_t) { + var bottom, i int32 + var cat, iter, lit, uni, p2 uintptr + var status Treg_errcode_t + _, _, _, _, _, _, _, _ = bottom, cat, i, iter, lit, status, uni, p2 + bottom = _tre_stack_num_objects(tls, stack) + status = REG_OK + if num_tags_seen != 0 { + *(*int32)(unsafe.Pointer(num_tags_seen)) = 0 + } + status = _tre_stack_push_voidptr(tls, stack, node) + /* Walk through the tree recursively. */ + for status == REG_OK && _tre_stack_num_objects(tls, stack) > bottom { + node = _tre_stack_pop_voidptr(tls, stack) + switch (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ftype1 { + case int32(_LITERAL): + lit = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + switch (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min { + case int64(-int32(3)): + if (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max >= 0 { + if tags != UintptrFromInt32(0) { + /* Add the tag to `tags'. */ + i = 0 + for { + if !(*(*int32)(unsafe.Pointer(tags + uintptr(i)*4)) >= 0) { + break + } + if int64(*(*int32)(unsafe.Pointer(tags + uintptr(i)*4))) == (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max { + break + } + goto _1 + _1: + ; + i++ + } + if *(*int32)(unsafe.Pointer(tags + uintptr(i)*4)) < 0 { + *(*int32)(unsafe.Pointer(tags + uintptr(i)*4)) = int32((*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max) + *(*int32)(unsafe.Pointer(tags + uintptr(i+int32(1))*4)) = -int32(1) + } + } + if num_tags_seen != 0 { + *(*int32)(unsafe.Pointer(num_tags_seen))++ + } + } + case int64(-int32(2)): + if assertions != UintptrFromInt32(0) { + p2 = assertions + *(*int32)(unsafe.Pointer(p2)) = int32(int64(*(*int32)(unsafe.Pointer(p2))) | (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max) + } + case int64(-int32(1)): + default: + break + } + case int32(_UNION): + /* Subexpressions starting earlier take priority over ones + starting later, so we prefer the left subexpression over the + right subexpression. */ + uni = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + if (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_union_t)(unsafe.Pointer(uni)).Fleft)).Fnullable != 0 { + status = _tre_stack_push_voidptr(tls, stack, (*Ttre_union_t)(unsafe.Pointer(uni)).Fleft) + if status != REG_OK { + break + } + } else { + if (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_union_t)(unsafe.Pointer(uni)).Fright)).Fnullable != 0 { + status = _tre_stack_push_voidptr(tls, stack, (*Ttre_union_t)(unsafe.Pointer(uni)).Fright) + if status != REG_OK { + break + } + } else { + } + } + case int32(_CATENATION): + /* The path must go through both children. */ + cat = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + status = _tre_stack_push_voidptr(tls, stack, (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fleft) + if status != REG_OK { + break + } + status = _tre_stack_push_voidptr(tls, stack, (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fright) + if status != REG_OK { + break + } + case int32(_ITERATION): + /* A match with an empty string is preferred over no match at + all, so we go through the argument if possible. */ + iter = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + if (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_iteration_t)(unsafe.Pointer(iter)).Farg)).Fnullable != 0 { + status = _tre_stack_push_voidptr(tls, stack, (*Ttre_iteration_t)(unsafe.Pointer(iter)).Farg) + if status != REG_OK { + break + } + } + default: + break + } + } + return status +} + +type Ttre_nfl_stack_symbol_t = int32 + +const _NFL_RECURSE = 0 +const _NFL_POST_UNION = 1 +const _NFL_POST_CATENATION = 2 +const _NFL_POST_ITERATION = 3 + +// C documentation +// +// /* Computes and fills in the fields `nullable', `firstpos', and `lastpos' for +// the nodes of the AST `tree'. */ +func _tre_compute_nfl(tls *TLS, mem Ttre_mem_t, stack uintptr, tree uintptr) (r Treg_errcode_t) { + bp := tls.Alloc(16) + defer tls.Free(16) + var _status, _status1, _status10, _status11, _status12, _status13, _status14, _status15, _status16, _status17, _status2, _status3, _status4, _status5, _status6, _status7, _status8, _status9, status Treg_errcode_t + var bottom int32 + var cat, iter, lit, node, tags, uni uintptr + var symbol Ttre_nfl_stack_symbol_t + var _ /* assertions at bp+4 */ int32 + var _ /* num_tags at bp+0 */ int32 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = _status, _status1, _status10, _status11, _status12, _status13, _status14, _status15, _status16, _status17, _status2, _status3, _status4, _status5, _status6, _status7, _status8, _status9, bottom, cat, iter, lit, node, status, symbol, tags, uni + bottom = _tre_stack_num_objects(tls, stack) + _status = _tre_stack_push_voidptr(tls, stack, tree) + if _status != REG_OK { + return _status + } + _status1 = _tre_stack_push_int(tls, stack, int32(_NFL_RECURSE)) + if _status1 != REG_OK { + return _status1 + } + for _tre_stack_num_objects(tls, stack) > bottom { + symbol = _tre_stack_pop_int(tls, stack) + node = _tre_stack_pop_voidptr(tls, stack) + switch symbol { + case int32(_NFL_RECURSE): + switch (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ftype1 { + case int32(_LITERAL): + lit = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + if (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min == int64(-int32(4)) { + /* Back references: nullable = false, firstpos = {i}, + lastpos = {i}. */ + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnullable = 0 + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ffirstpos = _tre_set_one(tls, mem, (*Ttre_literal_t)(unsafe.Pointer(lit)).Fposition, 0, int32(TRE_CHAR_MAX), uint64(0), UintptrFromInt32(0), -int32(1)) + if !((*Ttre_ast_node_t)(unsafe.Pointer(node)).Ffirstpos != 0) { + return int32(REG_ESPACE) + } + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Flastpos = _tre_set_one(tls, mem, (*Ttre_literal_t)(unsafe.Pointer(lit)).Fposition, 0, int32(TRE_CHAR_MAX), uint64(0), UintptrFromInt32(0), int32((*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max)) + if !((*Ttre_ast_node_t)(unsafe.Pointer(node)).Flastpos != 0) { + return int32(REG_ESPACE) + } + } else { + if (*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min < 0 { + /* Tags, empty strings, params, and zero width assertions: + nullable = true, firstpos = {}, and lastpos = {}. */ + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnullable = int32(1) + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ffirstpos = _tre_set_empty(tls, mem) + if !((*Ttre_ast_node_t)(unsafe.Pointer(node)).Ffirstpos != 0) { + return int32(REG_ESPACE) + } + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Flastpos = _tre_set_empty(tls, mem) + if !((*Ttre_ast_node_t)(unsafe.Pointer(node)).Flastpos != 0) { + return int32(REG_ESPACE) + } + } else { + /* Literal at position i: nullable = false, firstpos = {i}, + lastpos = {i}. */ + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnullable = 0 + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ffirstpos = _tre_set_one(tls, mem, (*Ttre_literal_t)(unsafe.Pointer(lit)).Fposition, int32((*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min), int32((*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max), uint64(0), UintptrFromInt32(0), -int32(1)) + if !((*Ttre_ast_node_t)(unsafe.Pointer(node)).Ffirstpos != 0) { + return int32(REG_ESPACE) + } + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Flastpos = _tre_set_one(tls, mem, (*Ttre_literal_t)(unsafe.Pointer(lit)).Fposition, int32((*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_min), int32((*Ttre_literal_t)(unsafe.Pointer(lit)).Fcode_max), (*Ttre_literal_t)(unsafe.Pointer(lit)).Fclass, (*Ttre_literal_t)(unsafe.Pointer(lit)).Fneg_classes, -int32(1)) + if !((*Ttre_ast_node_t)(unsafe.Pointer(node)).Flastpos != 0) { + return int32(REG_ESPACE) + } + } + } + case int32(_UNION): + /* Compute the attributes for the two subtrees, and after that + for this node. */ + _status2 = _tre_stack_push_voidptr(tls, stack, node) + if _status2 != REG_OK { + return _status2 + } + _status3 = _tre_stack_push_int(tls, stack, int32(_NFL_POST_UNION)) + if _status3 != REG_OK { + return _status3 + } + _status4 = _tre_stack_push_voidptr(tls, stack, (*Ttre_union_t)(unsafe.Pointer((*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj)).Fright) + if _status4 != REG_OK { + return _status4 + } + _status5 = _tre_stack_push_int(tls, stack, int32(_NFL_RECURSE)) + if _status5 != REG_OK { + return _status5 + } + _status6 = _tre_stack_push_voidptr(tls, stack, (*Ttre_union_t)(unsafe.Pointer((*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj)).Fleft) + if _status6 != REG_OK { + return _status6 + } + _status7 = _tre_stack_push_int(tls, stack, int32(_NFL_RECURSE)) + if _status7 != REG_OK { + return _status7 + } + case int32(_CATENATION): + /* Compute the attributes for the two subtrees, and after that + for this node. */ + _status8 = _tre_stack_push_voidptr(tls, stack, node) + if _status8 != REG_OK { + return _status8 + } + _status9 = _tre_stack_push_int(tls, stack, int32(_NFL_POST_CATENATION)) + if _status9 != REG_OK { + return _status9 + } + _status10 = _tre_stack_push_voidptr(tls, stack, (*Ttre_catenation_t)(unsafe.Pointer((*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj)).Fright) + if _status10 != REG_OK { + return _status10 + } + _status11 = _tre_stack_push_int(tls, stack, int32(_NFL_RECURSE)) + if _status11 != REG_OK { + return _status11 + } + _status12 = _tre_stack_push_voidptr(tls, stack, (*Ttre_catenation_t)(unsafe.Pointer((*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj)).Fleft) + if _status12 != REG_OK { + return _status12 + } + _status13 = _tre_stack_push_int(tls, stack, int32(_NFL_RECURSE)) + if _status13 != REG_OK { + return _status13 + } + case int32(_ITERATION): + /* Compute the attributes for the subtree, and after that for + this node. */ + _status14 = _tre_stack_push_voidptr(tls, stack, node) + if _status14 != REG_OK { + return _status14 + } + _status15 = _tre_stack_push_int(tls, stack, int32(_NFL_POST_ITERATION)) + if _status15 != REG_OK { + return _status15 + } + _status16 = _tre_stack_push_voidptr(tls, stack, (*Ttre_iteration_t)(unsafe.Pointer((*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj)).Farg) + if _status16 != REG_OK { + return _status16 + } + _status17 = _tre_stack_push_int(tls, stack, int32(_NFL_RECURSE)) + if _status17 != REG_OK { + return _status17 + } + break + } + case int32(_NFL_POST_UNION): + uni = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnullable = BoolInt32((*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_union_t)(unsafe.Pointer(uni)).Fleft)).Fnullable != 0 || (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_union_t)(unsafe.Pointer(uni)).Fright)).Fnullable != 0) + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ffirstpos = _tre_set_union(tls, mem, (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_union_t)(unsafe.Pointer(uni)).Fleft)).Ffirstpos, (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_union_t)(unsafe.Pointer(uni)).Fright)).Ffirstpos, UintptrFromInt32(0), 0) + if !((*Ttre_ast_node_t)(unsafe.Pointer(node)).Ffirstpos != 0) { + return int32(REG_ESPACE) + } + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Flastpos = _tre_set_union(tls, mem, (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_union_t)(unsafe.Pointer(uni)).Fleft)).Flastpos, (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_union_t)(unsafe.Pointer(uni)).Fright)).Flastpos, UintptrFromInt32(0), 0) + if !((*Ttre_ast_node_t)(unsafe.Pointer(node)).Flastpos != 0) { + return int32(REG_ESPACE) + } + case int32(_NFL_POST_ITERATION): + iter = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + if (*Ttre_iteration_t)(unsafe.Pointer(iter)).Fmin == 0 || (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_iteration_t)(unsafe.Pointer(iter)).Farg)).Fnullable != 0 { + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnullable = int32(1) + } else { + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnullable = 0 + } + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ffirstpos = (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_iteration_t)(unsafe.Pointer(iter)).Farg)).Ffirstpos + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Flastpos = (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_iteration_t)(unsafe.Pointer(iter)).Farg)).Flastpos + case int32(_NFL_POST_CATENATION): + cat = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fnullable = BoolInt32((*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(cat)).Fleft)).Fnullable != 0 && (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(cat)).Fright)).Fnullable != 0) + /* Compute firstpos. */ + if (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(cat)).Fleft)).Fnullable != 0 { + /* The left side matches the empty string. Make a first pass + with tre_match_empty() to get the number of tags and + parameters. */ + status = _tre_match_empty(tls, stack, (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fleft, UintptrFromInt32(0), UintptrFromInt32(0), bp) + if status != REG_OK { + return status + } + /* Allocate arrays for the tags and parameters. */ + tags = Xmalloc(tls, uint64(4)*uint64(*(*int32)(unsafe.Pointer(bp))+Int32FromInt32(1))) + if !(tags != 0) { + return int32(REG_ESPACE) + } + *(*int32)(unsafe.Pointer(tags)) = -int32(1) + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + /* Second pass with tre_mach_empty() to get the list of + tags and parameters. */ + status = _tre_match_empty(tls, stack, (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fleft, tags, bp+4, UintptrFromInt32(0)) + if status != REG_OK { + Xfree(tls, tags) + return status + } + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ffirstpos = _tre_set_union(tls, mem, (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(cat)).Fright)).Ffirstpos, (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(cat)).Fleft)).Ffirstpos, tags, *(*int32)(unsafe.Pointer(bp + 4))) + Xfree(tls, tags) + if !((*Ttre_ast_node_t)(unsafe.Pointer(node)).Ffirstpos != 0) { + return int32(REG_ESPACE) + } + } else { + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ffirstpos = (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(cat)).Fleft)).Ffirstpos + } + /* Compute lastpos. */ + if (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(cat)).Fright)).Fnullable != 0 { + /* The right side matches the empty string. Make a first pass + with tre_match_empty() to get the number of tags and + parameters. */ + status = _tre_match_empty(tls, stack, (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fright, UintptrFromInt32(0), UintptrFromInt32(0), bp) + if status != REG_OK { + return status + } + /* Allocate arrays for the tags and parameters. */ + tags = Xmalloc(tls, uint64(4)*uint64(*(*int32)(unsafe.Pointer(bp))+Int32FromInt32(1))) + if !(tags != 0) { + return int32(REG_ESPACE) + } + *(*int32)(unsafe.Pointer(tags)) = -int32(1) + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + /* Second pass with tre_mach_empty() to get the list of + tags and parameters. */ + status = _tre_match_empty(tls, stack, (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fright, tags, bp+4, UintptrFromInt32(0)) + if status != REG_OK { + Xfree(tls, tags) + return status + } + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Flastpos = _tre_set_union(tls, mem, (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(cat)).Fleft)).Flastpos, (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(cat)).Fright)).Flastpos, tags, *(*int32)(unsafe.Pointer(bp + 4))) + Xfree(tls, tags) + if !((*Ttre_ast_node_t)(unsafe.Pointer(node)).Flastpos != 0) { + return int32(REG_ESPACE) + } + } else { + (*Ttre_ast_node_t)(unsafe.Pointer(node)).Flastpos = (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(cat)).Fright)).Flastpos + } + default: + break + } + } + return REG_OK +} + +// C documentation +// +// /* Adds a transition from each position in `p1' to each position in `p2'. */ +func _tre_make_trans(tls *TLS, p1 uintptr, p2 uintptr, transitions uintptr, counts uintptr, offs uintptr) (r Treg_errcode_t) { + var dup, i, j, k, l, prev_p2_pos, v1, v2, v6 int32 + var orig_p2, trans uintptr + _, _, _, _, _, _, _, _, _, _, _ = dup, i, j, k, l, orig_p2, prev_p2_pos, trans, v1, v2, v6 + orig_p2 = p2 + if transitions != UintptrFromInt32(0) { + for (*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Fposition >= 0 { + p2 = orig_p2 + prev_p2_pos = -int32(1) + for (*Ttre_pos_and_tags_t)(unsafe.Pointer(p2)).Fposition >= 0 { + /* Optimization: if this position was already handled, skip it. */ + if (*Ttre_pos_and_tags_t)(unsafe.Pointer(p2)).Fposition == prev_p2_pos { + p2 += 56 + continue + } + prev_p2_pos = (*Ttre_pos_and_tags_t)(unsafe.Pointer(p2)).Fposition + /* Set `trans' to point to the next unused transition from + position `p1->position'. */ + trans = transitions + uintptr(*(*int32)(unsafe.Pointer(offs + uintptr((*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Fposition)*4)))*56 + for (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Fstate != UintptrFromInt32(0) { + trans += 56 + } + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Fstate == UintptrFromInt32(0) { + (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans + UintptrFromInt32(1)*56)).Fstate = UintptrFromInt32(0) + } + /* Use the character ranges, assertions, etc. from `p1' for + the transition from `p1' to `p2'. */ + (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Fcode_min = uint32((*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Fcode_min) + (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Fcode_max = uint32((*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Fcode_max) + (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Fstate = transitions + uintptr(*(*int32)(unsafe.Pointer(offs + uintptr((*Ttre_pos_and_tags_t)(unsafe.Pointer(p2)).Fposition)*4)))*56 + (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Fstate_id = (*Ttre_pos_and_tags_t)(unsafe.Pointer(p2)).Fposition + if (*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Fclass != 0 { + v1 = int32(ASSERT_CHAR_CLASS) + } else { + v1 = 0 + } + if (*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Fneg_classes != UintptrFromInt32(0) { + v2 = int32(ASSERT_CHAR_CLASS_NEG) + } else { + v2 = 0 + } + (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Fassertions = (*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Fassertions | (*Ttre_pos_and_tags_t)(unsafe.Pointer(p2)).Fassertions | v1 | v2 + if (*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Fbackref >= 0 { + *(*int32)(unsafe.Pointer(&(*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Fu)) = (*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Fbackref + *(*int32)(unsafe.Pointer(trans + 32)) |= int32(ASSERT_BACKREF) + } else { + *(*Ttre_ctype_t)(unsafe.Pointer(trans + 40)) = (*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Fclass + } + if (*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Fneg_classes != UintptrFromInt32(0) { + i = 0 + for { + if !(*(*Ttre_ctype_t)(unsafe.Pointer((*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Fneg_classes + uintptr(i)*8)) != Uint64FromInt32(0)) { + break + } + goto _3 + _3: + ; + i++ + } + (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Fneg_classes = Xmalloc(tls, uint64(8)*uint64(i+Int32FromInt32(1))) + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Fneg_classes == UintptrFromInt32(0) { + return int32(REG_ESPACE) + } + i = 0 + for { + if !(*(*Ttre_ctype_t)(unsafe.Pointer((*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Fneg_classes + uintptr(i)*8)) != Uint64FromInt32(0)) { + break + } + *(*Ttre_ctype_t)(unsafe.Pointer((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Fneg_classes + uintptr(i)*8)) = *(*Ttre_ctype_t)(unsafe.Pointer((*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Fneg_classes + uintptr(i)*8)) + goto _4 + _4: + ; + i++ + } + *(*Ttre_ctype_t)(unsafe.Pointer((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Fneg_classes + uintptr(i)*8)) = Uint64FromInt32(0) + } else { + (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Fneg_classes = UintptrFromInt32(0) + } + /* Find out how many tags this transition has. */ + i = 0 + if (*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Ftags != UintptrFromInt32(0) { + for *(*int32)(unsafe.Pointer((*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Ftags + uintptr(i)*4)) >= 0 { + i++ + } + } + j = 0 + if (*Ttre_pos_and_tags_t)(unsafe.Pointer(p2)).Ftags != UintptrFromInt32(0) { + for *(*int32)(unsafe.Pointer((*Ttre_pos_and_tags_t)(unsafe.Pointer(p2)).Ftags + uintptr(j)*4)) >= 0 { + j++ + } + } + /* If we are overwriting a transition, free the old tag array. */ + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Ftags != UintptrFromInt32(0) { + Xfree(tls, (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Ftags) + } + (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Ftags = UintptrFromInt32(0) + /* If there were any tags, allocate an array and fill it. */ + if i+j > 0 { + (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Ftags = Xmalloc(tls, uint64(4)*uint64(i+j+Int32FromInt32(1))) + if !((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Ftags != 0) { + return int32(REG_ESPACE) + } + i = 0 + if (*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Ftags != UintptrFromInt32(0) { + for *(*int32)(unsafe.Pointer((*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Ftags + uintptr(i)*4)) >= 0 { + *(*int32)(unsafe.Pointer((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Ftags + uintptr(i)*4)) = *(*int32)(unsafe.Pointer((*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Ftags + uintptr(i)*4)) + i++ + } + } + l = i + j = 0 + if (*Ttre_pos_and_tags_t)(unsafe.Pointer(p2)).Ftags != UintptrFromInt32(0) { + for *(*int32)(unsafe.Pointer((*Ttre_pos_and_tags_t)(unsafe.Pointer(p2)).Ftags + uintptr(j)*4)) >= 0 { + /* Don't add duplicates. */ + dup = 0 + k = 0 + for { + if !(k < i) { + break + } + if *(*int32)(unsafe.Pointer((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Ftags + uintptr(k)*4)) == *(*int32)(unsafe.Pointer((*Ttre_pos_and_tags_t)(unsafe.Pointer(p2)).Ftags + uintptr(j)*4)) { + dup = int32(1) + break + } + goto _5 + _5: + ; + k++ + } + if !(dup != 0) { + v6 = l + l++ + *(*int32)(unsafe.Pointer((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Ftags + uintptr(v6)*4)) = *(*int32)(unsafe.Pointer((*Ttre_pos_and_tags_t)(unsafe.Pointer(p2)).Ftags + uintptr(j)*4)) + } + j++ + } + } + *(*int32)(unsafe.Pointer((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Ftags + uintptr(l)*4)) = -int32(1) + } + p2 += 56 + } + p1 += 56 + } + } else { + /* Compute a maximum limit for the number of transitions leaving + from each state. */ + for (*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Fposition >= 0 { + p2 = orig_p2 + for (*Ttre_pos_and_tags_t)(unsafe.Pointer(p2)).Fposition >= 0 { + *(*int32)(unsafe.Pointer(counts + uintptr((*Ttre_pos_and_tags_t)(unsafe.Pointer(p1)).Fposition)*4))++ + p2 += 56 + } + p1 += 56 + } + } + return REG_OK +} + +// C documentation +// +// /* Converts the syntax tree to a TNFA. All the transitions in the TNFA are +// labelled with one character range (there are no transitions on empty +// strings). The TNFA takes O(n^2) space in the worst case, `n' is size of +// the regexp. */ +func _tre_ast_to_tnfa(tls *TLS, node uintptr, transitions uintptr, counts uintptr, offs uintptr) (r Treg_errcode_t) { + var cat, iter, uni uintptr + var errcode Treg_errcode_t + _, _, _, _ = cat, errcode, iter, uni + errcode = REG_OK + /* XXX - recurse using a stack!. */ + switch (*Ttre_ast_node_t)(unsafe.Pointer(node)).Ftype1 { + case int32(_LITERAL): + case int32(_UNION): + uni = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + errcode = _tre_ast_to_tnfa(tls, (*Ttre_union_t)(unsafe.Pointer(uni)).Fleft, transitions, counts, offs) + if errcode != REG_OK { + return errcode + } + errcode = _tre_ast_to_tnfa(tls, (*Ttre_union_t)(unsafe.Pointer(uni)).Fright, transitions, counts, offs) + case int32(_CATENATION): + cat = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + /* Add a transition from each position in cat->left->lastpos + to each position in cat->right->firstpos. */ + errcode = _tre_make_trans(tls, (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(cat)).Fleft)).Flastpos, (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_catenation_t)(unsafe.Pointer(cat)).Fright)).Ffirstpos, transitions, counts, offs) + if errcode != REG_OK { + return errcode + } + errcode = _tre_ast_to_tnfa(tls, (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fleft, transitions, counts, offs) + if errcode != REG_OK { + return errcode + } + errcode = _tre_ast_to_tnfa(tls, (*Ttre_catenation_t)(unsafe.Pointer(cat)).Fright, transitions, counts, offs) + case int32(_ITERATION): + iter = (*Ttre_ast_node_t)(unsafe.Pointer(node)).Fobj + if (*Ttre_iteration_t)(unsafe.Pointer(iter)).Fmax == -int32(1) { + /* Add a transition from each last position in the iterated + expression to each first position. */ + errcode = _tre_make_trans(tls, (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_iteration_t)(unsafe.Pointer(iter)).Farg)).Flastpos, (*Ttre_ast_node_t)(unsafe.Pointer((*Ttre_iteration_t)(unsafe.Pointer(iter)).Farg)).Ffirstpos, transitions, counts, offs) + if errcode != REG_OK { + return errcode + } + } + errcode = _tre_ast_to_tnfa(tls, (*Ttre_iteration_t)(unsafe.Pointer(iter)).Farg, transitions, counts, offs) + break + } + return errcode +} + +func Xregcomp(tls *TLS, preg uintptr, regex uintptr, cflags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v preg=%v regex=%v cflags=%v, (%v:)", tls, preg, regex, cflags, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(64) + defer tls.Free(64) + var add, i, j, v1 int32 + var counts, initial, offs, p, stack, submatch_data, tag_directions, tmp_ast_l, tmp_ast_r, tnfa, transitions, tree, v2 uintptr + var errcode Treg_errcode_t + var mem Ttre_mem_t + var _ /* parse_ctx at bp+0 */ Ttre_parse_ctx_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = add, counts, errcode, i, initial, j, mem, offs, p, stack, submatch_data, tag_directions, tmp_ast_l, tmp_ast_r, tnfa, transitions, tree, v1, v2 + counts = UintptrFromInt32(0) + offs = UintptrFromInt32(0) + add = 0 + tnfa = UintptrFromInt32(0) + tag_directions = UintptrFromInt32(0) + /* Allocate a stack used throughout the compilation process for various + purposes. */ + stack = _tre_stack_new(tls, int32(512), int32(1024000), int32(128)) + if !(stack != 0) { + return int32(REG_ESPACE) + } + /* Allocate a fast memory allocator. */ + mem = X__tre_mem_new_impl(tls, 0, UintptrFromInt32(0)) + if !(mem != 0) { + _tre_stack_destroy(tls, stack) + return int32(REG_ESPACE) + } + /* Parse the regexp. */ + Xmemset(tls, bp, 0, uint64(56)) + (*(*Ttre_parse_ctx_t)(unsafe.Pointer(bp))).Fmem = mem + (*(*Ttre_parse_ctx_t)(unsafe.Pointer(bp))).Fstack = stack + (*(*Ttre_parse_ctx_t)(unsafe.Pointer(bp))).Fstart = regex + (*(*Ttre_parse_ctx_t)(unsafe.Pointer(bp))).Fcflags = cflags + (*(*Ttre_parse_ctx_t)(unsafe.Pointer(bp))).Fmax_backref = -int32(1) + errcode = _tre_parse(tls, bp) + if errcode != REG_OK { + errcode = errcode + if int32(1) != 0 { + goto error_exit + } + } + (*Tregex_t)(unsafe.Pointer(preg)).Fre_nsub = uint64((*(*Ttre_parse_ctx_t)(unsafe.Pointer(bp))).Fsubmatch_id - int32(1)) + tree = (*(*Ttre_parse_ctx_t)(unsafe.Pointer(bp))).Fn + /* Referring to nonexistent subexpressions is illegal. */ + if (*(*Ttre_parse_ctx_t)(unsafe.Pointer(bp))).Fmax_backref > int32((*Tregex_t)(unsafe.Pointer(preg)).Fre_nsub) { + errcode = int32(REG_ESUBREG) + if int32(1) != 0 { + goto error_exit + } + } + /* Allocate the TNFA struct. */ + tnfa = Xcalloc(tls, uint64(1), uint64(104)) + if tnfa == UintptrFromInt32(0) { + errcode = int32(REG_ESPACE) + if int32(1) != 0 { + goto error_exit + } + } + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fhave_backrefs = BoolInt32((*(*Ttre_parse_ctx_t)(unsafe.Pointer(bp))).Fmax_backref >= 0) + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fhave_approx = 0 + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_submatches = uint32((*(*Ttre_parse_ctx_t)(unsafe.Pointer(bp))).Fsubmatch_id) + /* Set up tags for submatch addressing. If REG_NOSUB is set and the + regexp does not have back references, this can be skipped. */ + if (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fhave_backrefs != 0 || !(cflags&Int32FromInt32(REG_NOSUB) != 0) { + /* Figure out how many tags we will need. */ + errcode = _tre_add_tags(tls, UintptrFromInt32(0), stack, tree, tnfa) + if errcode != REG_OK { + errcode = errcode + if int32(1) != 0 { + goto error_exit + } + } + if (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags > 0 { + tag_directions = Xmalloc(tls, uint64(4)*uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags+Int32FromInt32(1))) + if tag_directions == UintptrFromInt32(0) { + errcode = int32(REG_ESPACE) + if int32(1) != 0 { + goto error_exit + } + } + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftag_directions = tag_directions + Xmemset(tls, tag_directions, -int32(1), uint64(4)*uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags+Int32FromInt32(1))) + } + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags = Xcalloc(tls, uint64(uint32((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags)*uint32(2)+uint32(1)), uint64(4)) + if (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags == UintptrFromInt32(0) { + errcode = int32(REG_ESPACE) + if int32(1) != 0 { + goto error_exit + } + } + submatch_data = Xcalloc(tls, uint64(uint32((*(*Ttre_parse_ctx_t)(unsafe.Pointer(bp))).Fsubmatch_id)), uint64(16)) + if submatch_data == UintptrFromInt32(0) { + errcode = int32(REG_ESPACE) + if int32(1) != 0 { + goto error_exit + } + } + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fsubmatch_data = submatch_data + errcode = _tre_add_tags(tls, mem, stack, tree, tnfa) + if errcode != REG_OK { + errcode = errcode + if int32(1) != 0 { + goto error_exit + } + } + } + /* Expand iteration nodes. */ + errcode = _tre_expand_ast(tls, mem, stack, tree, bp+44, tag_directions) + if errcode != REG_OK { + errcode = errcode + if int32(1) != 0 { + goto error_exit + } + } + /* Add a dummy node for the final state. + XXX - For certain patterns this dummy node can be optimized away, + for example "a*" or "ab*". Figure out a simple way to detect + this possibility. */ + tmp_ast_l = tree + v2 = bp + 44 + v1 = *(*int32)(unsafe.Pointer(v2)) + *(*int32)(unsafe.Pointer(v2))++ + tmp_ast_r = _tre_ast_new_literal(tls, mem, 0, 0, v1) + if tmp_ast_r == UintptrFromInt32(0) { + errcode = int32(REG_ESPACE) + if int32(1) != 0 { + goto error_exit + } + } + tree = _tre_ast_new_catenation(tls, mem, tmp_ast_l, tmp_ast_r) + if tree == UintptrFromInt32(0) { + errcode = int32(REG_ESPACE) + if int32(1) != 0 { + goto error_exit + } + } + errcode = _tre_compute_nfl(tls, mem, stack, tree) + if errcode != REG_OK { + errcode = errcode + if int32(1) != 0 { + goto error_exit + } + } + counts = Xmalloc(tls, uint64(4)*uint64((*(*Ttre_parse_ctx_t)(unsafe.Pointer(bp))).Fposition)) + if counts == UintptrFromInt32(0) { + errcode = int32(REG_ESPACE) + if int32(1) != 0 { + goto error_exit + } + } + offs = Xmalloc(tls, uint64(4)*uint64((*(*Ttre_parse_ctx_t)(unsafe.Pointer(bp))).Fposition)) + if offs == UintptrFromInt32(0) { + errcode = int32(REG_ESPACE) + if int32(1) != 0 { + goto error_exit + } + } + i = 0 + for { + if !(i < (*(*Ttre_parse_ctx_t)(unsafe.Pointer(bp))).Fposition) { + break + } + *(*int32)(unsafe.Pointer(counts + uintptr(i)*4)) = 0 + goto _3 + _3: + ; + i++ + } + _tre_ast_to_tnfa(tls, tree, UintptrFromInt32(0), counts, UintptrFromInt32(0)) + add = 0 + i = 0 + for { + if !(i < (*(*Ttre_parse_ctx_t)(unsafe.Pointer(bp))).Fposition) { + break + } + *(*int32)(unsafe.Pointer(offs + uintptr(i)*4)) = add + add += *(*int32)(unsafe.Pointer(counts + uintptr(i)*4)) + int32(1) + *(*int32)(unsafe.Pointer(counts + uintptr(i)*4)) = 0 + goto _4 + _4: + ; + i++ + } + transitions = Xcalloc(tls, uint64(uint32(add)+uint32(1)), uint64(56)) + if transitions == UintptrFromInt32(0) { + errcode = int32(REG_ESPACE) + if int32(1) != 0 { + goto error_exit + } + } + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftransitions = transitions + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_transitions = uint32(add) + errcode = _tre_ast_to_tnfa(tls, tree, transitions, counts, offs) + if errcode != REG_OK { + errcode = errcode + if int32(1) != 0 { + goto error_exit + } + } + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ffirstpos_chars = UintptrFromInt32(0) + p = (*Ttre_ast_node_t)(unsafe.Pointer(tree)).Ffirstpos + i = 0 + for (*Ttre_pos_and_tags_t)(unsafe.Pointer(p)).Fposition >= 0 { + i++ + p += 56 + } + initial = Xcalloc(tls, uint64(uint32(i)+uint32(1)), uint64(56)) + if initial == UintptrFromInt32(0) { + errcode = int32(REG_ESPACE) + if int32(1) != 0 { + goto error_exit + } + } + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Finitial = initial + i = 0 + p = (*Ttre_ast_node_t)(unsafe.Pointer(tree)).Ffirstpos + for { + if !((*Ttre_pos_and_tags_t)(unsafe.Pointer(p)).Fposition >= 0) { + break + } + (*(*Ttre_tnfa_transition_t)(unsafe.Pointer(initial + uintptr(i)*56))).Fstate = transitions + uintptr(*(*int32)(unsafe.Pointer(offs + uintptr((*Ttre_pos_and_tags_t)(unsafe.Pointer(p)).Fposition)*4)))*56 + (*(*Ttre_tnfa_transition_t)(unsafe.Pointer(initial + uintptr(i)*56))).Fstate_id = (*Ttre_pos_and_tags_t)(unsafe.Pointer(p)).Fposition + (*(*Ttre_tnfa_transition_t)(unsafe.Pointer(initial + uintptr(i)*56))).Ftags = UintptrFromInt32(0) + /* Copy the arrays p->tags, and p->params, they are allocated + from a tre_mem object. */ + if (*Ttre_pos_and_tags_t)(unsafe.Pointer(p)).Ftags != 0 { + j = 0 + for { + if !(*(*int32)(unsafe.Pointer((*Ttre_pos_and_tags_t)(unsafe.Pointer(p)).Ftags + uintptr(j)*4)) >= 0) { + break + } + goto _6 + _6: + ; + j++ + } + (*(*Ttre_tnfa_transition_t)(unsafe.Pointer(initial + uintptr(i)*56))).Ftags = Xmalloc(tls, uint64(4)*uint64(j+Int32FromInt32(1))) + if !((*(*Ttre_tnfa_transition_t)(unsafe.Pointer(initial + uintptr(i)*56))).Ftags != 0) { + errcode = int32(REG_ESPACE) + if int32(1) != 0 { + goto error_exit + } + } + Xmemcpy(tls, (*(*Ttre_tnfa_transition_t)(unsafe.Pointer(initial + uintptr(i)*56))).Ftags, (*Ttre_pos_and_tags_t)(unsafe.Pointer(p)).Ftags, uint64(4)*uint64(j+Int32FromInt32(1))) + } + (*(*Ttre_tnfa_transition_t)(unsafe.Pointer(initial + uintptr(i)*56))).Fassertions = (*Ttre_pos_and_tags_t)(unsafe.Pointer(p)).Fassertions + i++ + goto _5 + _5: + ; + p += 56 + } + (*(*Ttre_tnfa_transition_t)(unsafe.Pointer(initial + uintptr(i)*56))).Fstate = UintptrFromInt32(0) + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_transitions = uint32(add) + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ffinal = transitions + uintptr(*(*int32)(unsafe.Pointer(offs + uintptr((*(*Ttre_pos_and_tags_t)(unsafe.Pointer((*Ttre_ast_node_t)(unsafe.Pointer(tree)).Flastpos))).Fposition)*4)))*56 + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states = (*(*Ttre_parse_ctx_t)(unsafe.Pointer(bp))).Fposition + (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags = cflags + X__tre_mem_destroy(tls, mem) + _tre_stack_destroy(tls, stack) + Xfree(tls, counts) + Xfree(tls, offs) + (*Tregex_t)(unsafe.Pointer(preg)).F__opaque = tnfa + return REG_OK + goto error_exit +error_exit: + ; + /* Free everything that was allocated and return the error code. */ + X__tre_mem_destroy(tls, mem) + if stack != UintptrFromInt32(0) { + _tre_stack_destroy(tls, stack) + } + if counts != UintptrFromInt32(0) { + Xfree(tls, counts) + } + if offs != UintptrFromInt32(0) { + Xfree(tls, offs) + } + (*Tregex_t)(unsafe.Pointer(preg)).F__opaque = tnfa + Xregfree(tls, preg) + return errcode +} + +func Xregfree(tls *TLS, preg uintptr) { + if __ccgo_strace { + trc("tls=%v preg=%v, (%v:)", tls, preg, origin(2)) + } + var i uint32 + var tnfa, trans uintptr + _, _, _ = i, tnfa, trans + tnfa = (*Tregex_t)(unsafe.Pointer(preg)).F__opaque + if !(tnfa != 0) { + return + } + i = uint32(0) + for { + if !(i < (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_transitions) { + break + } + if (*(*Ttre_tnfa_transition_t)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftransitions + uintptr(i)*56))).Fstate != 0 { + if (*(*Ttre_tnfa_transition_t)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftransitions + uintptr(i)*56))).Ftags != 0 { + Xfree(tls, (*(*Ttre_tnfa_transition_t)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftransitions + uintptr(i)*56))).Ftags) + } + if (*(*Ttre_tnfa_transition_t)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftransitions + uintptr(i)*56))).Fneg_classes != 0 { + Xfree(tls, (*(*Ttre_tnfa_transition_t)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftransitions + uintptr(i)*56))).Fneg_classes) + } + } + goto _1 + _1: + ; + i++ + } + if (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftransitions != 0 { + Xfree(tls, (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftransitions) + } + if (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Finitial != 0 { + trans = (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Finitial + for { + if !((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Fstate != 0) { + break + } + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Ftags != 0 { + Xfree(tls, (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans)).Ftags) + } + goto _2 + _2: + ; + trans += 56 + } + Xfree(tls, (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Finitial) + } + if (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fsubmatch_data != 0 { + i = uint32(0) + for { + if !(i < (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_submatches) { + break + } + if (*(*Ttre_submatch_data_t)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fsubmatch_data + uintptr(i)*16))).Fparents != 0 { + Xfree(tls, (*(*Ttre_submatch_data_t)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fsubmatch_data + uintptr(i)*16))).Fparents) + } + goto _3 + _3: + ; + i++ + } + Xfree(tls, (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fsubmatch_data) + } + if (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftag_directions != 0 { + Xfree(tls, (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftag_directions) + } + if (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ffirstpos_chars != 0 { + Xfree(tls, (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ffirstpos_chars) + } + if (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags != 0 { + Xfree(tls, (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags) + } + Xfree(tls, tnfa) +} + +/* Error message strings for error codes listed in `regex.h'. This list + needs to be in sync with the codes listed there, naturally. */ + +/* Converted to single string by Rich Felker to remove the need for + * data relocations at runtime, 27 Feb 2006. */ + +var _messages = [286]uint8{'N', 'o', ' ', 'e', 'r', 'r', 'o', 'r', 0, 'N', 'o', ' ', 'm', 'a', 't', 'c', 'h', 0, 'I', 'n', 'v', 'a', 'l', 'i', 'd', ' ', 'r', 'e', 'g', 'e', 'x', 'p', 0, 'U', 'n', 'k', 'n', 'o', 'w', 'n', ' ', 'c', 'o', 'l', 'l', 'a', 't', 'i', 'n', 'g', ' ', 'e', 'l', 'e', 'm', 'e', 'n', 't', 0, 'U', 'n', 'k', 'n', 'o', 'w', 'n', ' ', 'c', 'h', 'a', 'r', 'a', 'c', 't', 'e', 'r', ' ', 'c', 'l', 'a', 's', 's', ' ', 'n', 'a', 'm', 'e', 0, 'T', 'r', 'a', 'i', 'l', 'i', 'n', 'g', ' ', 'b', 'a', 'c', 'k', 's', 'l', 'a', 's', 'h', 0, 'I', 'n', 'v', 'a', 'l', 'i', 'd', ' ', 'b', 'a', 'c', 'k', ' ', 'r', 'e', 'f', 'e', 'r', 'e', 'n', 'c', 'e', 0, 'M', 'i', 's', 's', 'i', 'n', 'g', ' ', '\'', ']', '\'', 0, 'M', 'i', 's', 's', 'i', 'n', 'g', ' ', '\'', ')', '\'', 0, 'M', 'i', 's', 's', 'i', 'n', 'g', ' ', '\'', '}', '\'', 0, 'I', 'n', 'v', 'a', 'l', 'i', 'd', ' ', 'c', 'o', 'n', 't', 'e', 'n', 't', 's', ' ', 'o', 'f', ' ', '{', '}', 0, 'I', 'n', 'v', 'a', 'l', 'i', 'd', ' ', 'c', 'h', 'a', 'r', 'a', 'c', 't', 'e', 'r', ' ', 'r', 'a', 'n', 'g', 'e', 0, 'O', 'u', 't', ' ', 'o', 'f', ' ', 'm', 'e', 'm', 'o', 'r', 'y', 0, 'R', 'e', 'p', 'e', 't', 'i', 't', 'i', 'o', 'n', ' ', 'n', 'o', 't', ' ', 'p', 'r', 'e', 'c', 'e', 'd', 'e', 'd', ' ', 'b', 'y', ' ', 'v', 'a', 'l', 'i', 'd', ' ', 'e', 'x', 'p', 'r', 'e', 's', 's', 'i', 'o', 'n', 0, 0, 'U', 'n', 'k', 'n', 'o', 'w', 'n', ' ', 'e', 'r', 'r', 'o', 'r'} + +func Xregerror(tls *TLS, e int32, preg uintptr, buf uintptr, size Tsize_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v e=%v preg=%v buf=%v size=%v, (%v:)", tls, e, preg, buf, size, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var s uintptr + _ = s + s = uintptr(unsafe.Pointer(&_messages)) + for { + if !(e != 0 && *(*uint8)(unsafe.Pointer(s)) != 0) { + break + } + goto _1 + _1: + ; + e-- + s += uintptr(Xstrlen(tls, s) + uint64(1)) + } + if !(*(*uint8)(unsafe.Pointer(s)) != 0) { + s++ + } + s = X__lctrans_cur(tls, s) + return uint64(int32(1) + Xsnprintf(tls, buf, size, __ccgo_ts+15, VaList(bp+8, s))) +} + +const tre_bt_mem_alloc = 0 +const tre_bt_mem_destroy = 0 +const tre_bt_mem_new = 0 + +/*********************************************************************** + from tre-match-utils.h +***********************************************************************/ + +// C documentation +// +// /* Returns 1 if `t1' wins `t2', 0 otherwise. */ +func _tre_tag_order(tls *TLS, num_tags int32, tag_directions uintptr, t1 uintptr, t2 uintptr) (r int32) { + var i int32 + _ = i + i = 0 + for { + if !(i < num_tags) { + break + } + if *(*Ttre_tag_direction_t)(unsafe.Pointer(tag_directions + uintptr(i)*4)) == int32(_TRE_TAG_MINIMIZE) { + if *(*Tregoff_t)(unsafe.Pointer(t1 + uintptr(i)*8)) < *(*Tregoff_t)(unsafe.Pointer(t2 + uintptr(i)*8)) { + return int32(1) + } + if *(*Tregoff_t)(unsafe.Pointer(t1 + uintptr(i)*8)) > *(*Tregoff_t)(unsafe.Pointer(t2 + uintptr(i)*8)) { + return 0 + } + } else { + if *(*Tregoff_t)(unsafe.Pointer(t1 + uintptr(i)*8)) > *(*Tregoff_t)(unsafe.Pointer(t2 + uintptr(i)*8)) { + return int32(1) + } + if *(*Tregoff_t)(unsafe.Pointer(t1 + uintptr(i)*8)) < *(*Tregoff_t)(unsafe.Pointer(t2 + uintptr(i)*8)) { + return 0 + } + } + goto _1 + _1: + ; + i++ + } + /* assert(0);*/ + return 0 +} + +func _tre_neg_char_classes_match(tls *TLS, classes uintptr, wc Ttre_cint_t, icase int32) (r int32) { + for *(*Ttre_ctype_t)(unsafe.Pointer(classes)) != Uint64FromInt32(0) { + if !(icase != 0) && Xiswctype(tls, wc, *(*Ttre_ctype_t)(unsafe.Pointer(classes))) != 0 || icase != 0 && (Xiswctype(tls, Xtowupper(tls, wc), *(*Ttre_ctype_t)(unsafe.Pointer(classes))) != 0 || Xiswctype(tls, Xtowlower(tls, wc), *(*Ttre_ctype_t)(unsafe.Pointer(classes))) != 0) { + return int32(1) + } else { + classes += 8 + } + } + return 0 /* No match. */ +} + +/*********************************************************************** + from tre-match-parallel.c +***********************************************************************/ + +/* + This algorithm searches for matches basically by reading characters + in the searched string one by one, starting at the beginning. All + matching paths in the TNFA are traversed in parallel. When two or + more paths reach the same state, exactly one is chosen according to + tag ordering rules; if returning submatches is not required it does + not matter which path is chosen. + + The worst case time required for finding the leftmost and longest + match, or determining that there is no match, is always linearly + dependent on the length of the text being searched. + + This algorithm cannot handle TNFAs with back referencing nodes. + See `tre-match-backtrack.c'. +*/ + +type Ttre_tnfa_reach_t = struct { + Fstate uintptr + Ftags uintptr +} + +type Ttre_reach_pos_t = struct { + Fpos Tregoff_t + Ftags uintptr +} + +func _tre_tnfa_run_parallel(tls *TLS, tnfa uintptr, string1 uintptr, match_tags uintptr, eflags int32, match_end_ofs uintptr) (r Treg_errcode_t) { + bp := tls.Alloc(16) + defer tls.Free(16) + var buf, reach, reach_i, reach_next, reach_next_i, reach_pos, str_byte, tag_i, tmp_buf, tmp_iptr, tmp_tags, trans_i uintptr + var end, i, new_match, num_tags, reg_newline, reg_notbol, reg_noteol, skip, start, v18 int32 + var match_eo, pos, pos_add_next, v10, v7 Tregoff_t + var pbytes, rbytes, tbytes, total_bytes, xbytes Tsize_t + var prev_c Ttre_char_t + var ret Treg_errcode_t + var v1, v2, v3, v4 uint64 + var _ /* next_c at bp+0 */ Ttre_char_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = buf, end, i, match_eo, new_match, num_tags, pbytes, pos, pos_add_next, prev_c, rbytes, reach, reach_i, reach_next, reach_next_i, reach_pos, reg_newline, reg_notbol, reg_noteol, ret, skip, start, str_byte, tag_i, tbytes, tmp_buf, tmp_iptr, tmp_tags, total_bytes, trans_i, xbytes, v1, v10, v18, v2, v3, v4, v7 + /* State variables required by GET_NEXT_WCHAR. */ + prev_c = uint32(0) + *(*Ttre_char_t)(unsafe.Pointer(bp)) = uint32(0) + str_byte = string1 + pos = int64(-int32(1)) + pos_add_next = int64(1) + reg_notbol = eflags & int32(REG_NOTBOL) + reg_noteol = eflags & int32(REG_NOTEOL) + reg_newline = (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags & int32(REG_NEWLINE) + match_eo = int64(-int32(1)) /* end offset of match (-1 if no match found yet) */ + new_match = 0 + tmp_tags = UintptrFromInt32(0) + if !(match_tags != 0) { + num_tags = 0 + } else { + num_tags = (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags + } + /* Allocate memory for temporary data required for matching. This needs to + be done for every matching operation to be thread safe. This allocates + everything in a single large block with calloc(). */ + /* Ensure that tbytes and xbytes*num_states cannot overflow, and that + * they don't contribute more than 1/8 of SIZE_MAX to total_bytes. */ + if uint64(num_tags) > uint64(0xffffffffffffffff)/(Uint64FromInt32(8)*Uint64FromInt64(8)*uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states)) { + return int32(REG_ESPACE) + } + /* Likewise check rbytes. */ + if uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states+int32(1)) > Uint64FromUint64(0xffffffffffffffff)/(Uint64FromInt32(8)*Uint64FromInt64(16)) { + return int32(REG_ESPACE) + } + /* Likewise check pbytes. */ + if uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states) > Uint64FromUint64(0xffffffffffffffff)/(Uint64FromInt32(8)*Uint64FromInt64(16)) { + return int32(REG_ESPACE) + } + /* Compute the length of the block we need. */ + tbytes = uint64(8) * uint64(num_tags) + rbytes = uint64(16) * uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states+Int32FromInt32(1)) + pbytes = uint64(16) * uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states) + xbytes = uint64(8) * uint64(num_tags) + total_bytes = (Uint64FromInt64(8)-Uint64FromInt32(1))*Uint64FromInt32(4) + (rbytes+xbytes*uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states))*uint64(2) + tbytes + pbytes + /* Allocate the memory. */ + buf = Xcalloc(tls, total_bytes, uint64(1)) + if buf == UintptrFromInt32(0) { + return int32(REG_ESPACE) + } + /* Get the various pointers within tmp_buf (properly aligned). */ + tmp_tags = buf + tmp_buf = buf + uintptr(tbytes) + if uint64(int64(tmp_buf))%uint64(8) != 0 { + v1 = uint64(8) - uint64(int64(tmp_buf))%uint64(8) + } else { + v1 = uint64(0) + } + tmp_buf += uintptr(v1) + reach_next = tmp_buf + tmp_buf += uintptr(rbytes) + if uint64(int64(tmp_buf))%uint64(8) != 0 { + v2 = uint64(8) - uint64(int64(tmp_buf))%uint64(8) + } else { + v2 = uint64(0) + } + tmp_buf += uintptr(v2) + reach = tmp_buf + tmp_buf += uintptr(rbytes) + if uint64(int64(tmp_buf))%uint64(8) != 0 { + v3 = uint64(8) - uint64(int64(tmp_buf))%uint64(8) + } else { + v3 = uint64(0) + } + tmp_buf += uintptr(v3) + reach_pos = tmp_buf + tmp_buf += uintptr(pbytes) + if uint64(int64(tmp_buf))%uint64(8) != 0 { + v4 = uint64(8) - uint64(int64(tmp_buf))%uint64(8) + } else { + v4 = uint64(0) + } + tmp_buf += uintptr(v4) + i = 0 + for { + if !(i < (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states) { + break + } + (*(*Ttre_tnfa_reach_t)(unsafe.Pointer(reach + uintptr(i)*16))).Ftags = tmp_buf + tmp_buf += uintptr(xbytes) + (*(*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next + uintptr(i)*16))).Ftags = tmp_buf + tmp_buf += uintptr(xbytes) + goto _5 + _5: + ; + i++ + } + i = 0 + for { + if !(i < (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states) { + break + } + (*(*Ttre_reach_pos_t)(unsafe.Pointer(reach_pos + uintptr(i)*16))).Fpos = int64(-int32(1)) + goto _6 + _6: + ; + i++ + } + prev_c = *(*Ttre_char_t)(unsafe.Pointer(bp)) + pos += pos_add_next + v7 = int64(Xmbtowc(tls, bp, str_byte, uint64(MB_LEN_MAX))) + pos_add_next = v7 + if v7 <= 0 { + if pos_add_next < 0 { + ret = int32(REG_NOMATCH) + goto error_exit + } else { + pos_add_next++ + } + } + str_byte += uintptr(pos_add_next) + pos = 0 + reach_next_i = reach_next + for int32(1) != 0 { + /* If no match found yet, add the initial states to `reach_next'. */ + if match_eo < 0 { + trans_i = (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Finitial + for (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate != UintptrFromInt32(0) { + if (*(*Ttre_reach_pos_t)(unsafe.Pointer(reach_pos + uintptr((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate_id)*16))).Fpos < pos { + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions != 0 && ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOL) != 0 && (pos > 0 || reg_notbol != 0) && (prev_c != uint32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOL) != 0 && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != uint32('\000') || reg_noteol != 0) && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != uint32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOW) != 0 && (prev_c == uint32('_') || Xiswalnum(tls, prev_c) != 0 || !(*(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('_') || Xiswalnum(tls, *(*Ttre_char_t)(unsafe.Pointer(bp))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOW) != 0 && (!(prev_c == uint32('_') || Xiswalnum(tls, prev_c) != 0) || (*(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('_') || Xiswalnum(tls, *(*Ttre_char_t)(unsafe.Pointer(bp))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB) != 0 && (pos != 0 && *(*Ttre_char_t)(unsafe.Pointer(bp)) != uint32('\000') && BoolInt32(prev_c == uint32('_') || Xiswalnum(tls, prev_c) != 0) == BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('_') || Xiswalnum(tls, *(*Ttre_char_t)(unsafe.Pointer(bp))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB_NEG) != 0 && (pos == 0 || *(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('\000') || BoolInt32(prev_c == uint32('_') || Xiswalnum(tls, prev_c) != 0) != BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('_') || Xiswalnum(tls, *(*Ttre_char_t)(unsafe.Pointer(bp))) != 0))) { + trans_i += 56 + continue + } + (*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next_i)).Fstate = (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate + i = 0 + for { + if !(i < num_tags) { + break + } + *(*Tregoff_t)(unsafe.Pointer((*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next_i)).Ftags + uintptr(i)*8)) = int64(-int32(1)) + goto _8 + _8: + ; + i++ + } + tag_i = (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Ftags + if tag_i != 0 { + for *(*int32)(unsafe.Pointer(tag_i)) >= 0 { + if *(*int32)(unsafe.Pointer(tag_i)) < num_tags { + *(*Tregoff_t)(unsafe.Pointer((*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next_i)).Ftags + uintptr(*(*int32)(unsafe.Pointer(tag_i)))*8)) = pos + } + tag_i += 4 + } + } + if (*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next_i)).Fstate == (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ffinal { + match_eo = pos + new_match = int32(1) + i = 0 + for { + if !(i < num_tags) { + break + } + *(*Tregoff_t)(unsafe.Pointer(match_tags + uintptr(i)*8)) = *(*Tregoff_t)(unsafe.Pointer((*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next_i)).Ftags + uintptr(i)*8)) + goto _9 + _9: + ; + i++ + } + } + (*(*Ttre_reach_pos_t)(unsafe.Pointer(reach_pos + uintptr((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate_id)*16))).Fpos = pos + (*(*Ttre_reach_pos_t)(unsafe.Pointer(reach_pos + uintptr((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate_id)*16))).Ftags = reach_next_i + 8 + reach_next_i += 16 + } + trans_i += 56 + } + (*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next_i)).Fstate = UintptrFromInt32(0) + } else { + if num_tags == 0 || reach_next_i == reach_next { + /* We have found a match. */ + break + } + } + /* Check for end of string. */ + if !(*(*Ttre_char_t)(unsafe.Pointer(bp)) != 0) { + break + } + prev_c = *(*Ttre_char_t)(unsafe.Pointer(bp)) + pos += pos_add_next + v10 = int64(Xmbtowc(tls, bp, str_byte, uint64(MB_LEN_MAX))) + pos_add_next = v10 + if v10 <= 0 { + if pos_add_next < 0 { + ret = int32(REG_NOMATCH) + goto error_exit + } else { + pos_add_next++ + } + } + str_byte += uintptr(pos_add_next) + /* Swap `reach' and `reach_next'. */ + reach_i = reach + reach = reach_next + reach_next = reach_i + /* For each state in `reach', weed out states that don't fulfill the + minimal matching conditions. */ + if (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_minimals != 0 && new_match != 0 { + new_match = 0 + reach_next_i = reach_next + reach_i = reach + for { + if !((*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_i)).Fstate != 0) { + break + } + skip = 0 + i = 0 + for { + if !(*(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i)*4)) >= 0) { + break + } + end = *(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i)*4)) + start = *(*int32)(unsafe.Pointer((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fminimal_tags + uintptr(i+int32(1))*4)) + if end >= num_tags { + skip = int32(1) + break + } else { + if *(*Tregoff_t)(unsafe.Pointer((*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_i)).Ftags + uintptr(start)*8)) == *(*Tregoff_t)(unsafe.Pointer(match_tags + uintptr(start)*8)) && *(*Tregoff_t)(unsafe.Pointer((*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_i)).Ftags + uintptr(end)*8)) < *(*Tregoff_t)(unsafe.Pointer(match_tags + uintptr(end)*8)) { + skip = int32(1) + break + } + } + goto _12 + _12: + ; + i += int32(2) + } + if !(skip != 0) { + (*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next_i)).Fstate = (*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_i)).Fstate + tmp_iptr = (*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next_i)).Ftags + (*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next_i)).Ftags = (*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_i)).Ftags + (*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_i)).Ftags = tmp_iptr + reach_next_i += 16 + } + goto _11 + _11: + ; + reach_i += 16 + } + (*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next_i)).Fstate = UintptrFromInt32(0) + /* Swap `reach' and `reach_next'. */ + reach_i = reach + reach = reach_next + reach_next = reach_i + } + /* For each state in `reach' see if there is a transition leaving with + the current input symbol to a state not yet in `reach_next', and + add the destination states to `reach_next'. */ + reach_next_i = reach_next + reach_i = reach + for { + if !((*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_i)).Fstate != 0) { + break + } + trans_i = (*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_i)).Fstate + for { + if !((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate != 0) { + break + } + /* Does this transition match the input symbol? */ + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fcode_min <= prev_c && (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fcode_max >= prev_c { + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions != 0 && ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOL) != 0 && (pos > 0 || reg_notbol != 0) && (prev_c != uint32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOL) != 0 && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != uint32('\000') || reg_noteol != 0) && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != uint32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOW) != 0 && (prev_c == uint32('_') || Xiswalnum(tls, prev_c) != 0 || !(*(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('_') || Xiswalnum(tls, *(*Ttre_char_t)(unsafe.Pointer(bp))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOW) != 0 && (!(prev_c == uint32('_') || Xiswalnum(tls, prev_c) != 0) || (*(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('_') || Xiswalnum(tls, *(*Ttre_char_t)(unsafe.Pointer(bp))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB) != 0 && (pos != 0 && *(*Ttre_char_t)(unsafe.Pointer(bp)) != uint32('\000') && BoolInt32(prev_c == uint32('_') || Xiswalnum(tls, prev_c) != 0) == BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('_') || Xiswalnum(tls, *(*Ttre_char_t)(unsafe.Pointer(bp))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB_NEG) != 0 && (pos == 0 || *(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('\000') || BoolInt32(prev_c == uint32('_') || Xiswalnum(tls, prev_c) != 0) != BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('_') || Xiswalnum(tls, *(*Ttre_char_t)(unsafe.Pointer(bp))) != 0)) || ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS) != 0 && !((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&Int32FromInt32(REG_ICASE) != 0) && !(Xiswctype(tls, prev_c, *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS) != 0 && (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&int32(REG_ICASE) != 0 && !(Xiswctype(tls, Xtowlower(tls, prev_c), *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) && !(Xiswctype(tls, Xtowupper(tls, prev_c), *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS_NEG) != 0 && _tre_neg_char_classes_match(tls, (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fneg_classes, prev_c, (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&int32(REG_ICASE)) != 0)) { + goto _14 + } + /* Compute the tags after this transition. */ + i = 0 + for { + if !(i < num_tags) { + break + } + *(*Tregoff_t)(unsafe.Pointer(tmp_tags + uintptr(i)*8)) = *(*Tregoff_t)(unsafe.Pointer((*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_i)).Ftags + uintptr(i)*8)) + goto _15 + _15: + ; + i++ + } + tag_i = (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Ftags + if tag_i != UintptrFromInt32(0) { + for *(*int32)(unsafe.Pointer(tag_i)) >= 0 { + if *(*int32)(unsafe.Pointer(tag_i)) < num_tags { + *(*Tregoff_t)(unsafe.Pointer(tmp_tags + uintptr(*(*int32)(unsafe.Pointer(tag_i)))*8)) = pos + } + tag_i += 4 + } + } + if (*(*Ttre_reach_pos_t)(unsafe.Pointer(reach_pos + uintptr((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate_id)*16))).Fpos < pos { + /* Found an unvisited node. */ + (*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next_i)).Fstate = (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate + tmp_iptr = (*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next_i)).Ftags + (*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next_i)).Ftags = tmp_tags + tmp_tags = tmp_iptr + (*(*Ttre_reach_pos_t)(unsafe.Pointer(reach_pos + uintptr((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate_id)*16))).Fpos = pos + (*(*Ttre_reach_pos_t)(unsafe.Pointer(reach_pos + uintptr((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate_id)*16))).Ftags = reach_next_i + 8 + if (*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next_i)).Fstate == (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ffinal && (match_eo == int64(-int32(1)) || num_tags > 0 && *(*Tregoff_t)(unsafe.Pointer((*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next_i)).Ftags)) <= *(*Tregoff_t)(unsafe.Pointer(match_tags))) { + match_eo = pos + new_match = int32(1) + i = 0 + for { + if !(i < num_tags) { + break + } + *(*Tregoff_t)(unsafe.Pointer(match_tags + uintptr(i)*8)) = *(*Tregoff_t)(unsafe.Pointer((*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next_i)).Ftags + uintptr(i)*8)) + goto _16 + _16: + ; + i++ + } + } + reach_next_i += 16 + } else { + /* Another path has also reached this state. We choose + the winner by examining the tag values for both + paths. */ + if _tre_tag_order(tls, num_tags, (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftag_directions, tmp_tags, *(*uintptr)(unsafe.Pointer((*(*Ttre_reach_pos_t)(unsafe.Pointer(reach_pos + uintptr((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate_id)*16))).Ftags))) != 0 { + /* The new path wins. */ + tmp_iptr = *(*uintptr)(unsafe.Pointer((*(*Ttre_reach_pos_t)(unsafe.Pointer(reach_pos + uintptr((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate_id)*16))).Ftags)) + *(*uintptr)(unsafe.Pointer((*(*Ttre_reach_pos_t)(unsafe.Pointer(reach_pos + uintptr((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate_id)*16))).Ftags)) = tmp_tags + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate == (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ffinal { + match_eo = pos + new_match = int32(1) + i = 0 + for { + if !(i < num_tags) { + break + } + *(*Tregoff_t)(unsafe.Pointer(match_tags + uintptr(i)*8)) = *(*Tregoff_t)(unsafe.Pointer(tmp_tags + uintptr(i)*8)) + goto _17 + _17: + ; + i++ + } + } + tmp_tags = tmp_iptr + } + } + } + goto _14 + _14: + ; + trans_i += 56 + } + goto _13 + _13: + ; + reach_i += 16 + } + (*Ttre_tnfa_reach_t)(unsafe.Pointer(reach_next_i)).Fstate = UintptrFromInt32(0) + } + *(*Tregoff_t)(unsafe.Pointer(match_end_ofs)) = match_eo + if match_eo >= 0 { + v18 = REG_OK + } else { + v18 = int32(REG_NOMATCH) + } + ret = v18 + goto error_exit +error_exit: + ; + Xfree(tls, buf) + return ret +} + +/*********************************************************************** + from tre-match-backtrack.c +***********************************************************************/ + +/* + This matcher is for regexps that use back referencing. Regexp matching + with back referencing is an NP-complete problem on the number of back + references. The easiest way to match them is to use a backtracking + routine which basically goes through all possible paths in the TNFA + and chooses the one which results in the best (leftmost and longest) + match. This can be spectacularly expensive and may run out of stack + space, but there really is no better known generic algorithm. Quoting + Henry Spencer from comp.compilers: + + + POSIX.2 REs require longest match, which is really exciting to + implement since the obsolete ("basic") variant also includes + \. I haven't found a better way of tackling this than doing + a preliminary match using a DFA (or simulation) on a modified RE + that just replicates subREs for \, and then doing a + backtracking match to determine whether the subRE matches were + right. This can be rather slow, but I console myself with the + thought that people who use \ deserve very slow execution. + (Pun unintentional but very appropriate.) + +*/ + +type Ttre_backtrack_item_t = struct { + Fpos Tregoff_t + Fstr_byte uintptr + Fstate uintptr + Fstate_id int32 + Fnext_c int32 + Ftags uintptr +} + +type Ttre_backtrack_t = uintptr + +type Ttre_backtrack_struct = struct { + Fitem Ttre_backtrack_item_t + Fprev uintptr + Fnext uintptr +} + +func _tre_tnfa_run_backtrack(tls *TLS, tnfa uintptr, string1 uintptr, match_tags uintptr, eflags int32, match_end_ofs uintptr) (r Treg_errcode_t) { + bp := tls.Alloc(16) + defer tls.Free(16) + var bt, empty_br_match, i, i1, i2, i3, i4, next_c_start, reg_newline, reg_notbol, reg_noteol, result, ret, v20 int32 + var bt_len, eo, match_eo, pos, pos_add_next, pos_start, so, v11, v12, v3 Tregoff_t + var mem Ttre_mem_t + var next_state, next_tags, pmatch, state, states_seen, str_byte, str_byte_start, tags, tmp, tmp1, trans_i, v18, v6 uintptr + var prev_c Ttre_char_t + var s, s1, stack Ttre_backtrack_t + var _ /* next_c at bp+0 */ Ttre_char_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bt, bt_len, empty_br_match, eo, i, i1, i2, i3, i4, match_eo, mem, next_c_start, next_state, next_tags, pmatch, pos, pos_add_next, pos_start, prev_c, reg_newline, reg_notbol, reg_noteol, result, ret, s, s1, so, stack, state, states_seen, str_byte, str_byte_start, tags, tmp, tmp1, trans_i, v11, v12, v18, v20, v3, v6 + /* State variables required by GET_NEXT_WCHAR. */ + prev_c = uint32(0) + *(*Ttre_char_t)(unsafe.Pointer(bp)) = uint32(0) + str_byte = string1 + pos = 0 + pos_add_next = int64(1) + reg_notbol = eflags & int32(REG_NOTBOL) + reg_noteol = eflags & int32(REG_NOTEOL) + reg_newline = (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags & int32(REG_NEWLINE) + pos_start = int64(-int32(1)) + /* End offset of best match so far, or -1 if no match found yet. */ + match_eo = int64(-int32(1)) + tags = UintptrFromInt32(0) + states_seen = UintptrFromInt32(0) + /* Memory allocator to for allocating the backtracking stack. */ + mem = X__tre_mem_new_impl(tls, 0, UintptrFromInt32(0)) + pmatch = UintptrFromInt32(0) + if !(mem != 0) { + return int32(REG_ESPACE) + } + stack = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), 0, uint64(56)) + if !(stack != 0) { + ret = int32(REG_ESPACE) + goto error_exit + } + (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fprev = UintptrFromInt32(0) + (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fnext = UintptrFromInt32(0) + if (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags != 0 { + tags = Xmalloc(tls, uint64(8)*uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags)) + if !(tags != 0) { + ret = int32(REG_ESPACE) + goto error_exit + } + } + if (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_submatches != 0 { + pmatch = Xmalloc(tls, uint64(16)*uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_submatches)) + if !(pmatch != 0) { + ret = int32(REG_ESPACE) + goto error_exit + } + } + if (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states != 0 { + states_seen = Xmalloc(tls, uint64(4)*uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states)) + if !(states_seen != 0) { + ret = int32(REG_ESPACE) + goto error_exit + } + } + goto retry +retry: + ; + i = 0 + for { + if !(i < (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags) { + break + } + *(*Tregoff_t)(unsafe.Pointer(tags + uintptr(i)*8)) = int64(-int32(1)) + if match_tags != 0 { + *(*Tregoff_t)(unsafe.Pointer(match_tags + uintptr(i)*8)) = int64(-int32(1)) + } + goto _1 + _1: + ; + i++ + } + i = 0 + for { + if !(i < (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_states) { + break + } + *(*int32)(unsafe.Pointer(states_seen + uintptr(i)*4)) = 0 + goto _2 + _2: + ; + i++ + } + state = UintptrFromInt32(0) + pos = pos_start + prev_c = *(*Ttre_char_t)(unsafe.Pointer(bp)) + pos += pos_add_next + v3 = int64(Xmbtowc(tls, bp, str_byte, uint64(MB_LEN_MAX))) + pos_add_next = v3 + if v3 <= 0 { + if pos_add_next < 0 { + ret = int32(REG_NOMATCH) + goto error_exit + } else { + pos_add_next++ + } + } + str_byte += uintptr(pos_add_next) + pos_start = pos + next_c_start = int32(*(*Ttre_char_t)(unsafe.Pointer(bp))) + str_byte_start = str_byte + /* Handle initial states. */ + next_tags = UintptrFromInt32(0) + trans_i = (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Finitial + for { + if !((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate != 0) { + break + } + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions != 0 && ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOL) != 0 && (pos > 0 || reg_notbol != 0) && (prev_c != uint32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOL) != 0 && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != uint32('\000') || reg_noteol != 0) && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != uint32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOW) != 0 && (prev_c == uint32('_') || Xiswalnum(tls, prev_c) != 0 || !(*(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('_') || Xiswalnum(tls, *(*Ttre_char_t)(unsafe.Pointer(bp))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOW) != 0 && (!(prev_c == uint32('_') || Xiswalnum(tls, prev_c) != 0) || (*(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('_') || Xiswalnum(tls, *(*Ttre_char_t)(unsafe.Pointer(bp))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB) != 0 && (pos != 0 && *(*Ttre_char_t)(unsafe.Pointer(bp)) != uint32('\000') && BoolInt32(prev_c == uint32('_') || Xiswalnum(tls, prev_c) != 0) == BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('_') || Xiswalnum(tls, *(*Ttre_char_t)(unsafe.Pointer(bp))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB_NEG) != 0 && (pos == 0 || *(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('\000') || BoolInt32(prev_c == uint32('_') || Xiswalnum(tls, prev_c) != 0) != BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('_') || Xiswalnum(tls, *(*Ttre_char_t)(unsafe.Pointer(bp))) != 0))) { + goto _4 + } + if state == UintptrFromInt32(0) { + /* Start from this state. */ + state = (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate + next_tags = (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Ftags + } else { + /* Backtrack to this state. */ + if !((*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fnext != 0) { + s = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), 0, uint64(56)) + if !(s != 0) { + X__tre_mem_destroy(tls, mem) + if tags != 0 { + Xfree(tls, tags) + } + if pmatch != 0 { + Xfree(tls, pmatch) + } + if states_seen != 0 { + Xfree(tls, states_seen) + } + return int32(REG_ESPACE) + } + (*Ttre_backtrack_struct)(unsafe.Pointer(s)).Fprev = stack + (*Ttre_backtrack_struct)(unsafe.Pointer(s)).Fnext = UintptrFromInt32(0) + (*Ttre_backtrack_struct)(unsafe.Pointer(s)).Fitem.Ftags = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), 0, uint64(8)*uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags)) + if !((*Ttre_backtrack_struct)(unsafe.Pointer(s)).Fitem.Ftags != 0) { + X__tre_mem_destroy(tls, mem) + if tags != 0 { + Xfree(tls, tags) + } + if pmatch != 0 { + Xfree(tls, pmatch) + } + if states_seen != 0 { + Xfree(tls, states_seen) + } + return int32(REG_ESPACE) + } + (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fnext = s + stack = s + } else { + stack = (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fnext + } + (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Fpos = pos + (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Fstr_byte = str_byte + (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Fstate = (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate + (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Fstate_id = (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate_id + (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Fnext_c = int32(*(*Ttre_char_t)(unsafe.Pointer(bp))) + i1 = 0 + for { + if !(i1 < (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags) { + break + } + *(*Tregoff_t)(unsafe.Pointer((*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Ftags + uintptr(i1)*8)) = *(*Tregoff_t)(unsafe.Pointer(tags + uintptr(i1)*8)) + goto _5 + _5: + ; + i1++ + } + tmp = (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Ftags + if tmp != 0 { + for *(*int32)(unsafe.Pointer(tmp)) >= 0 { + v6 = tmp + tmp += 4 + *(*Tregoff_t)(unsafe.Pointer((*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Ftags + uintptr(*(*int32)(unsafe.Pointer(v6)))*8)) = pos + } + } + } + goto _4 + _4: + ; + trans_i += 56 + } + if next_tags != 0 { + for { + if !(*(*int32)(unsafe.Pointer(next_tags)) >= 0) { + break + } + *(*Tregoff_t)(unsafe.Pointer(tags + uintptr(*(*int32)(unsafe.Pointer(next_tags)))*8)) = pos + goto _7 + _7: + ; + next_tags += 4 + } + } + if state == UintptrFromInt32(0) { + goto backtrack + } +_9: + ; + if !(int32(1) != 0) { + goto _8 + } + if state == (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ffinal { + if match_eo < pos || match_eo == pos && match_tags != 0 && _tre_tag_order(tls, (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags, (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Ftag_directions, tags, match_tags) != 0 { + /* This match wins the previous match. */ + match_eo = pos + if match_tags != 0 { + i2 = 0 + for { + if !(i2 < (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags) { + break + } + *(*Tregoff_t)(unsafe.Pointer(match_tags + uintptr(i2)*8)) = *(*Tregoff_t)(unsafe.Pointer(tags + uintptr(i2)*8)) + goto _10 + _10: + ; + i2++ + } + } + } + /* Our TNFAs never have transitions leaving from the final state, + so we jump right to backtracking. */ + goto backtrack + } + /* Go to the next character in the input string. */ + empty_br_match = 0 + trans_i = state + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate != 0 && (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_BACKREF) != 0 { + bt = *(*int32)(unsafe.Pointer(&(*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fu)) + /* Get the substring we need to match against. Remember to + turn off REG_NOSUB temporarily. */ + _tre_fill_pmatch(tls, uint64(bt+int32(1)), pmatch, (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags & ^Int32FromInt32(REG_NOSUB), tnfa, tags, pos) + so = (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(bt)*16))).Frm_so + eo = (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(bt)*16))).Frm_eo + bt_len = eo - so + result = Xstrncmp(tls, string1+uintptr(so), str_byte-uintptr(1), uint64(bt_len)) + if result == 0 { + /* Back reference matched. Check for infinite loop. */ + if bt_len == 0 { + empty_br_match = int32(1) + } + if empty_br_match != 0 && *(*int32)(unsafe.Pointer(states_seen + uintptr((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate_id)*4)) != 0 { + goto backtrack + } + *(*int32)(unsafe.Pointer(states_seen + uintptr((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate_id)*4)) = empty_br_match + /* Advance in input string and resync `prev_c', `next_c' + and pos. */ + str_byte += uintptr(bt_len - int64(1)) + pos += bt_len - int64(1) + prev_c = *(*Ttre_char_t)(unsafe.Pointer(bp)) + pos += pos_add_next + v11 = int64(Xmbtowc(tls, bp, str_byte, uint64(MB_LEN_MAX))) + pos_add_next = v11 + if v11 <= 0 { + if pos_add_next < 0 { + ret = int32(REG_NOMATCH) + goto error_exit + } else { + pos_add_next++ + } + } + str_byte += uintptr(pos_add_next) + } else { + goto backtrack + } + } else { + /* Check for end of string. */ + if *(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('\000') { + goto backtrack + } + /* Read the next character. */ + prev_c = *(*Ttre_char_t)(unsafe.Pointer(bp)) + pos += pos_add_next + v12 = int64(Xmbtowc(tls, bp, str_byte, uint64(MB_LEN_MAX))) + pos_add_next = v12 + if v12 <= 0 { + if pos_add_next < 0 { + ret = int32(REG_NOMATCH) + goto error_exit + } else { + pos_add_next++ + } + } + str_byte += uintptr(pos_add_next) + } + next_state = UintptrFromInt32(0) + trans_i = state + for { + if !((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate != 0) { + break + } + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fcode_min <= prev_c && (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fcode_max >= prev_c { + if (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions != 0 && ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOL) != 0 && (pos > 0 || reg_notbol != 0) && (prev_c != uint32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOL) != 0 && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != uint32('\000') || reg_noteol != 0) && (*(*Ttre_char_t)(unsafe.Pointer(bp)) != uint32('\n') || !(reg_newline != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_BOW) != 0 && (prev_c == uint32('_') || Xiswalnum(tls, prev_c) != 0 || !(*(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('_') || Xiswalnum(tls, *(*Ttre_char_t)(unsafe.Pointer(bp))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_EOW) != 0 && (!(prev_c == uint32('_') || Xiswalnum(tls, prev_c) != 0) || (*(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('_') || Xiswalnum(tls, *(*Ttre_char_t)(unsafe.Pointer(bp))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB) != 0 && (pos != 0 && *(*Ttre_char_t)(unsafe.Pointer(bp)) != uint32('\000') && BoolInt32(prev_c == uint32('_') || Xiswalnum(tls, prev_c) != 0) == BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('_') || Xiswalnum(tls, *(*Ttre_char_t)(unsafe.Pointer(bp))) != 0)) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_AT_WB_NEG) != 0 && (pos == 0 || *(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('\000') || BoolInt32(prev_c == uint32('_') || Xiswalnum(tls, prev_c) != 0) != BoolInt32(*(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('_') || Xiswalnum(tls, *(*Ttre_char_t)(unsafe.Pointer(bp))) != 0)) || ((*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS) != 0 && !((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&Int32FromInt32(REG_ICASE) != 0) && !(Xiswctype(tls, prev_c, *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS) != 0 && (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&int32(REG_ICASE) != 0 && !(Xiswctype(tls, Xtowlower(tls, prev_c), *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) && !(Xiswctype(tls, Xtowupper(tls, prev_c), *(*Ttre_ctype_t)(unsafe.Pointer(trans_i + 40))) != 0) || (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fassertions&int32(ASSERT_CHAR_CLASS_NEG) != 0 && _tre_neg_char_classes_match(tls, (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fneg_classes, prev_c, (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&int32(REG_ICASE)) != 0)) { + goto _13 + } + if next_state == UintptrFromInt32(0) { + /* First matching transition. */ + next_state = (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate + next_tags = (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Ftags + } else { + /* Second matching transition. We may need to backtrack here + to take this transition instead of the first one, so we + push this transition in the backtracking stack so we can + jump back here if needed. */ + if !((*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fnext != 0) { + s1 = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), 0, uint64(56)) + if !(s1 != 0) { + X__tre_mem_destroy(tls, mem) + if tags != 0 { + Xfree(tls, tags) + } + if pmatch != 0 { + Xfree(tls, pmatch) + } + if states_seen != 0 { + Xfree(tls, states_seen) + } + return int32(REG_ESPACE) + } + (*Ttre_backtrack_struct)(unsafe.Pointer(s1)).Fprev = stack + (*Ttre_backtrack_struct)(unsafe.Pointer(s1)).Fnext = UintptrFromInt32(0) + (*Ttre_backtrack_struct)(unsafe.Pointer(s1)).Fitem.Ftags = X__tre_mem_alloc_impl(tls, mem, 0, UintptrFromInt32(0), 0, uint64(8)*uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags)) + if !((*Ttre_backtrack_struct)(unsafe.Pointer(s1)).Fitem.Ftags != 0) { + X__tre_mem_destroy(tls, mem) + if tags != 0 { + Xfree(tls, tags) + } + if pmatch != 0 { + Xfree(tls, pmatch) + } + if states_seen != 0 { + Xfree(tls, states_seen) + } + return int32(REG_ESPACE) + } + (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fnext = s1 + stack = s1 + } else { + stack = (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fnext + } + (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Fpos = pos + (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Fstr_byte = str_byte + (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Fstate = (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate + (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Fstate_id = (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Fstate_id + (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Fnext_c = int32(*(*Ttre_char_t)(unsafe.Pointer(bp))) + i3 = 0 + for { + if !(i3 < (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags) { + break + } + *(*Tregoff_t)(unsafe.Pointer((*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Ftags + uintptr(i3)*8)) = *(*Tregoff_t)(unsafe.Pointer(tags + uintptr(i3)*8)) + goto _14 + _14: + ; + i3++ + } + tmp1 = (*Ttre_tnfa_transition_t)(unsafe.Pointer(trans_i)).Ftags + for { + if !(tmp1 != 0 && *(*int32)(unsafe.Pointer(tmp1)) >= 0) { + break + } + *(*Tregoff_t)(unsafe.Pointer((*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Ftags + uintptr(*(*int32)(unsafe.Pointer(tmp1)))*8)) = pos + goto _15 + _15: + ; + tmp1 += 4 + } + } + } + goto _13 + _13: + ; + trans_i += 56 + } + if !(next_state != UintptrFromInt32(0)) { + goto _16 + } + /* Matching transitions were found. Take the first one. */ + state = next_state + /* Update the tag values. */ + if next_tags != 0 { + for *(*int32)(unsafe.Pointer(next_tags)) >= 0 { + v18 = next_tags + next_tags += 4 + *(*Tregoff_t)(unsafe.Pointer(tags + uintptr(*(*int32)(unsafe.Pointer(v18)))*8)) = pos + } + } + goto _17 +_16: + ; + goto backtrack +backtrack: + ; + /* A matching transition was not found. Try to backtrack. */ + if (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fprev != 0 { + if (*Ttre_tnfa_transition_t)(unsafe.Pointer((*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Fstate)).Fassertions&int32(ASSERT_BACKREF) != 0 { + *(*int32)(unsafe.Pointer(states_seen + uintptr((*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Fstate_id)*4)) = 0 + } + pos = (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Fpos + str_byte = (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Fstr_byte + state = (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Fstate + *(*Ttre_char_t)(unsafe.Pointer(bp)) = uint32((*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Fnext_c) + i4 = 0 + for { + if !(i4 < (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags) { + break + } + *(*Tregoff_t)(unsafe.Pointer(tags + uintptr(i4)*8)) = *(*Tregoff_t)(unsafe.Pointer((*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fitem.Ftags + uintptr(i4)*8)) + goto _19 + _19: + ; + i4++ + } + stack = (*Ttre_backtrack_struct)(unsafe.Pointer(stack)).Fprev + } else { + if match_eo < 0 { + /* Try starting from a later position in the input string. */ + /* Check for end of string. */ + if *(*Ttre_char_t)(unsafe.Pointer(bp)) == uint32('\000') { + goto _8 + } + *(*Ttre_char_t)(unsafe.Pointer(bp)) = uint32(next_c_start) + str_byte = str_byte_start + goto retry + } else { + goto _8 + } + } +_17: + ; + goto _9 +_8: + ; + if match_eo >= 0 { + v20 = REG_OK + } else { + v20 = int32(REG_NOMATCH) + } + ret = v20 + *(*Tregoff_t)(unsafe.Pointer(match_end_ofs)) = match_eo + goto error_exit +error_exit: + ; + X__tre_mem_destroy(tls, mem) + if tags != 0 { + Xfree(tls, tags) + } + if pmatch != 0 { + Xfree(tls, pmatch) + } + if states_seen != 0 { + Xfree(tls, states_seen) + } + return ret +} + +/*********************************************************************** + from regexec.c +***********************************************************************/ + +// C documentation +// +// /* Fills the POSIX.2 regmatch_t array according to the TNFA tag and match +// endpoint values. */ +func _tre_fill_pmatch(tls *TLS, nmatch Tsize_t, pmatch uintptr, cflags int32, tnfa uintptr, tags uintptr, match_eo Tregoff_t) { + var i, j uint32 + var parents, submatch_data uintptr + var v1, v3 Tregoff_t + _, _, _, _, _, _ = i, j, parents, submatch_data, v1, v3 + i = uint32(0) + if match_eo >= 0 && !(cflags&Int32FromInt32(REG_NOSUB) != 0) { + /* Construct submatch offsets from the tags. */ + submatch_data = (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fsubmatch_data + for i < (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_submatches && uint64(i) < nmatch { + if (*(*Ttre_submatch_data_t)(unsafe.Pointer(submatch_data + uintptr(i)*16))).Fso_tag == (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fend_tag { + (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_so = match_eo + } else { + (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_so = *(*Tregoff_t)(unsafe.Pointer(tags + uintptr((*(*Ttre_submatch_data_t)(unsafe.Pointer(submatch_data + uintptr(i)*16))).Fso_tag)*8)) + } + if (*(*Ttre_submatch_data_t)(unsafe.Pointer(submatch_data + uintptr(i)*16))).Feo_tag == (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fend_tag { + (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_eo = match_eo + } else { + (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_eo = *(*Tregoff_t)(unsafe.Pointer(tags + uintptr((*(*Ttre_submatch_data_t)(unsafe.Pointer(submatch_data + uintptr(i)*16))).Feo_tag)*8)) + } + /* If either of the endpoints were not used, this submatch + was not part of the match. */ + if (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_so == int64(-int32(1)) || (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_eo == int64(-int32(1)) { + v1 = int64(-Int32FromInt32(1)) + (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_eo = v1 + (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_so = v1 + } + i++ + } + /* Reset all submatches that are not within all of their parent + submatches. */ + i = uint32(0) + for i < (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_submatches && uint64(i) < nmatch { + if (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_eo == int64(-int32(1)) { + } + parents = (*(*Ttre_submatch_data_t)(unsafe.Pointer(submatch_data + uintptr(i)*16))).Fparents + if parents != UintptrFromInt32(0) { + j = uint32(0) + for { + if !(*(*int32)(unsafe.Pointer(parents + uintptr(j)*4)) >= 0) { + break + } + if (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_so < (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(*(*int32)(unsafe.Pointer(parents + uintptr(j)*4)))*16))).Frm_so || (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_eo > (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(*(*int32)(unsafe.Pointer(parents + uintptr(j)*4)))*16))).Frm_eo { + v3 = int64(-Int32FromInt32(1)) + (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_eo = v3 + (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_so = v3 + } + goto _2 + _2: + ; + j++ + } + } + i++ + } + } + for uint64(i) < nmatch { + (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_so = int64(-int32(1)) + (*(*Tregmatch_t)(unsafe.Pointer(pmatch + uintptr(i)*16))).Frm_eo = int64(-int32(1)) + i++ + } +} + +/* + Wrapper functions for POSIX compatible regexp matching. +*/ + +func Xregexec(tls *TLS, preg uintptr, string1 uintptr, nmatch Tsize_t, pmatch uintptr, eflags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v preg=%v string1=%v nmatch=%v pmatch=%v eflags=%v, (%v:)", tls, preg, string1, nmatch, pmatch, eflags, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var status Treg_errcode_t + var tags, tnfa uintptr + var _ /* eo at bp+0 */ Tregoff_t + _, _, _ = status, tags, tnfa + tnfa = (*Tregex_t)(unsafe.Pointer(preg)).F__opaque + tags = UintptrFromInt32(0) + if (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags&int32(REG_NOSUB) != 0 { + nmatch = uint64(0) + } + if (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags > 0 && nmatch > uint64(0) { + tags = Xmalloc(tls, uint64(8)*uint64((*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fnum_tags)) + if tags == UintptrFromInt32(0) { + return int32(REG_ESPACE) + } + } + /* Dispatch to the appropriate matcher. */ + if (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fhave_backrefs != 0 { + /* The regex has back references, use the backtracking matcher. */ + status = _tre_tnfa_run_backtrack(tls, tnfa, string1, tags, eflags, bp) + } else { + /* Exact matching, no back references, use the parallel matcher. */ + status = _tre_tnfa_run_parallel(tls, tnfa, string1, tags, eflags, bp) + } + if status == REG_OK { + /* A match was found, so fill the submatch registers. */ + _tre_fill_pmatch(tls, nmatch, pmatch, (*Ttre_tnfa_t)(unsafe.Pointer(tnfa)).Fcflags, tnfa, tags, *(*Tregoff_t)(unsafe.Pointer(bp))) + } + if tags != 0 { + Xfree(tls, tags) + } + return status +} + +/* + This memory allocator is for allocating small memory blocks efficiently + in terms of memory overhead and execution speed. The allocated blocks + cannot be freed individually, only all at once. There can be multiple + allocators, though. +*/ + +// C documentation +// +// /* Returns a new memory allocator or NULL if out of memory. */ +func X__tre_mem_new_impl(tls *TLS, provided int32, provided_block uintptr) (r Ttre_mem_t) { + if __ccgo_strace { + trc("tls=%v provided=%v provided_block=%v, (%v:)", tls, provided, provided_block, origin(2)) + defer func() { trc("-> %v", r) }() + } + var mem Ttre_mem_t + _ = mem + if provided != 0 { + mem = provided_block + Xmemset(tls, mem, 0, uint64(48)) + } else { + mem = Xcalloc(tls, uint64(1), uint64(48)) + } + if mem == UintptrFromInt32(0) { + return UintptrFromInt32(0) + } + return mem +} + +// C documentation +// +// /* Frees the memory allocator and all memory allocated with it. */ +func X__tre_mem_destroy(tls *TLS, mem Ttre_mem_t) { + if __ccgo_strace { + trc("tls=%v mem=%v, (%v:)", tls, mem, origin(2)) + } + var l, tmp uintptr + _, _ = l, tmp + l = (*Ttre_mem_struct)(unsafe.Pointer(mem)).Fblocks + for l != UintptrFromInt32(0) { + Xfree(tls, (*Ttre_list_t)(unsafe.Pointer(l)).Fdata) + tmp = (*Ttre_list_t)(unsafe.Pointer(l)).Fnext + Xfree(tls, l) + l = tmp + } + Xfree(tls, mem) +} + +// C documentation +// +// /* Allocates a block of `size' bytes from `mem'. Returns a pointer to the +// allocated block or NULL if an underlying malloc() failed. */ +func X__tre_mem_alloc_impl(tls *TLS, mem Ttre_mem_t, provided int32, provided_block uintptr, zero int32, size Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v mem=%v provided=%v provided_block=%v zero=%v size=%v, (%v:)", tls, mem, provided, provided_block, zero, size, origin(2)) + defer func() { trc("-> %v", r) }() + } + var block_size int32 + var l, ptr uintptr + var v1 uint64 + _, _, _, _ = block_size, l, ptr, v1 + if (*Ttre_mem_struct)(unsafe.Pointer(mem)).Ffailed != 0 { + return UintptrFromInt32(0) + } + if (*Ttre_mem_struct)(unsafe.Pointer(mem)).Fn < size { + if provided != 0 { + if provided_block == UintptrFromInt32(0) { + (*Ttre_mem_struct)(unsafe.Pointer(mem)).Ffailed = int32(1) + return UintptrFromInt32(0) + } + (*Ttre_mem_struct)(unsafe.Pointer(mem)).Fptr = provided_block + (*Ttre_mem_struct)(unsafe.Pointer(mem)).Fn = uint64(TRE_MEM_BLOCK_SIZE) + } else { + if size*uint64(8) > uint64(TRE_MEM_BLOCK_SIZE) { + block_size = int32(size * uint64(8)) + } else { + block_size = int32(TRE_MEM_BLOCK_SIZE) + } + l = Xmalloc(tls, uint64(16)) + if l == UintptrFromInt32(0) { + (*Ttre_mem_struct)(unsafe.Pointer(mem)).Ffailed = int32(1) + return UintptrFromInt32(0) + } + (*Ttre_list_t)(unsafe.Pointer(l)).Fdata = Xmalloc(tls, uint64(block_size)) + if (*Ttre_list_t)(unsafe.Pointer(l)).Fdata == UintptrFromInt32(0) { + Xfree(tls, l) + (*Ttre_mem_struct)(unsafe.Pointer(mem)).Ffailed = int32(1) + return UintptrFromInt32(0) + } + (*Ttre_list_t)(unsafe.Pointer(l)).Fnext = UintptrFromInt32(0) + if (*Ttre_mem_struct)(unsafe.Pointer(mem)).Fcurrent != UintptrFromInt32(0) { + (*Ttre_list_t)(unsafe.Pointer((*Ttre_mem_struct)(unsafe.Pointer(mem)).Fcurrent)).Fnext = l + } + if (*Ttre_mem_struct)(unsafe.Pointer(mem)).Fblocks == UintptrFromInt32(0) { + (*Ttre_mem_struct)(unsafe.Pointer(mem)).Fblocks = l + } + (*Ttre_mem_struct)(unsafe.Pointer(mem)).Fcurrent = l + (*Ttre_mem_struct)(unsafe.Pointer(mem)).Fptr = (*Ttre_list_t)(unsafe.Pointer(l)).Fdata + (*Ttre_mem_struct)(unsafe.Pointer(mem)).Fn = uint64(block_size) + } + } + /* Make sure the next pointer will be aligned. */ + if (uint64(int64((*Ttre_mem_struct)(unsafe.Pointer(mem)).Fptr))+size)%uint64(8) != 0 { + v1 = uint64(8) - (uint64(int64((*Ttre_mem_struct)(unsafe.Pointer(mem)).Fptr))+size)%uint64(8) + } else { + v1 = uint64(0) + } + size += v1 + /* Allocate from current block. */ + ptr = (*Ttre_mem_struct)(unsafe.Pointer(mem)).Fptr + *(*uintptr)(unsafe.Pointer(mem + 16)) += uintptr(size) + *(*Tsize_t)(unsafe.Pointer(mem + 24)) -= size + /* Set to zero if needed. */ + if zero != 0 { + Xmemset(tls, ptr, 0, size) + } + return ptr +} + +const MAXSIZE = 1 +const MINSIZE = 8 + +type TACTION = int32 + +const _FIND = 0 +const _ENTER = 1 + +type TVISIT = int32 + +const _preorder = 0 +const _postorder = 1 +const _endorder = 2 +const _leaf = 3 + +type TENTRY = struct { + Fkey uintptr + Fdata uintptr +} + +type Tentry = TENTRY + +type Thsearch_data = struct { + F__tab uintptr + F__unused1 uint32 + F__unused2 uint32 +} + +type Tqelem = struct { + Fq_forw uintptr + Fq_back uintptr + Fq_data [1]uint8 +} + +/* +open addressing hash table with 2^n table size +quadratic probing is used in case of hash collision +tab indices and hash are size_t +after resize fails with ENOMEM the state of tab is still usable + +with the posix api items cannot be iterated and length cannot be queried +*/ + +type t__tab = struct { + Fentries uintptr + Fmask Tsize_t + Fused Tsize_t +} + +var _htab Thsearch_data + +func _keyhash(tls *TLS, k uintptr) (r Tsize_t) { + var h Tsize_t + var p, v1 uintptr + _, _, _ = h, p, v1 + p = k + h = uint64(0) + for *(*uint8)(unsafe.Pointer(p)) != 0 { + v1 = p + p++ + h = uint64(31)*h + uint64(*(*uint8)(unsafe.Pointer(v1))) + } + return h +} + +func _resize(tls *TLS, nel Tsize_t, htab uintptr) (r int32) { + var e, newe, oldtab uintptr + var i, j, newsize, oldsize, v4 Tsize_t + _, _, _, _, _, _, _, _ = e, i, j, newe, newsize, oldsize, oldtab, v4 + oldsize = (*t__tab)(unsafe.Pointer((*Thsearch_data)(unsafe.Pointer(htab)).F__tab)).Fmask + uint64(1) + oldtab = (*t__tab)(unsafe.Pointer((*Thsearch_data)(unsafe.Pointer(htab)).F__tab)).Fentries + if nel > uint64(-Int32FromInt32(1))/Uint64FromInt32(2)+Uint64FromInt32(1) { + nel = uint64(-Int32FromInt32(1))/Uint64FromInt32(2) + Uint64FromInt32(1) + } + newsize = uint64(MINSIZE) + for { + if !(newsize < nel) { + break + } + goto _1 + _1: + ; + newsize *= uint64(2) + } + (*t__tab)(unsafe.Pointer((*Thsearch_data)(unsafe.Pointer(htab)).F__tab)).Fentries = Xcalloc(tls, newsize, uint64(16)) + if !((*t__tab)(unsafe.Pointer((*Thsearch_data)(unsafe.Pointer(htab)).F__tab)).Fentries != 0) { + (*t__tab)(unsafe.Pointer((*Thsearch_data)(unsafe.Pointer(htab)).F__tab)).Fentries = oldtab + return 0 + } + (*t__tab)(unsafe.Pointer((*Thsearch_data)(unsafe.Pointer(htab)).F__tab)).Fmask = newsize - uint64(1) + if !(oldtab != 0) { + return int32(1) + } + e = oldtab + for { + if !(e < oldtab+uintptr(oldsize)*16) { + break + } + if (*TENTRY)(unsafe.Pointer(e)).Fkey != 0 { + i = _keyhash(tls, (*TENTRY)(unsafe.Pointer(e)).Fkey) + j = Uint64FromInt32(1) + for { + newe = (*t__tab)(unsafe.Pointer((*Thsearch_data)(unsafe.Pointer(htab)).F__tab)).Fentries + uintptr(i&(*t__tab)(unsafe.Pointer((*Thsearch_data)(unsafe.Pointer(htab)).F__tab)).Fmask)*16 + if !((*TENTRY)(unsafe.Pointer(newe)).Fkey != 0) { + break + } + goto _3 + _3: + ; + v4 = j + j++ + i += v4 + } + *(*TENTRY)(unsafe.Pointer(newe)) = *(*TENTRY)(unsafe.Pointer(e)) + } + goto _2 + _2: + ; + e += 16 + } + Xfree(tls, oldtab) + return int32(1) +} + +func Xhcreate(tls *TLS, nel Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v nel=%v, (%v:)", tls, nel, origin(2)) + defer func() { trc("-> %v", r) }() + } + return ___hcreate_r(tls, nel, uintptr(unsafe.Pointer(&_htab))) +} + +func Xhdestroy(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + ___hdestroy_r(tls, uintptr(unsafe.Pointer(&_htab))) +} + +func _lookup(tls *TLS, key uintptr, hash Tsize_t, htab uintptr) (r uintptr) { + var e uintptr + var i, j, v2 Tsize_t + _, _, _, _ = e, i, j, v2 + i = hash + j = Uint64FromInt32(1) + for { + e = (*t__tab)(unsafe.Pointer((*Thsearch_data)(unsafe.Pointer(htab)).F__tab)).Fentries + uintptr(i&(*t__tab)(unsafe.Pointer((*Thsearch_data)(unsafe.Pointer(htab)).F__tab)).Fmask)*16 + if !((*TENTRY)(unsafe.Pointer(e)).Fkey != 0) || Xstrcmp(tls, (*TENTRY)(unsafe.Pointer(e)).Fkey, key) == 0 { + break + } + goto _1 + _1: + ; + v2 = j + j++ + i += v2 + } + return e +} + +func Xhsearch(tls *TLS, item TENTRY, action TACTION) (r uintptr) { + if __ccgo_strace { + trc("tls=%v item=%v action=%v, (%v:)", tls, item, action, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* e at bp+0 */ uintptr + ___hsearch_r(tls, item, action, bp, uintptr(unsafe.Pointer(&_htab))) + return *(*uintptr)(unsafe.Pointer(bp)) +} + +func ___hcreate_r(tls *TLS, nel Tsize_t, htab uintptr) (r1 int32) { + var r int32 + _ = r + (*Thsearch_data)(unsafe.Pointer(htab)).F__tab = Xcalloc(tls, uint64(1), uint64(24)) + if !((*Thsearch_data)(unsafe.Pointer(htab)).F__tab != 0) { + return 0 + } + r = _resize(tls, nel, htab) + if r == 0 { + Xfree(tls, (*Thsearch_data)(unsafe.Pointer(htab)).F__tab) + (*Thsearch_data)(unsafe.Pointer(htab)).F__tab = uintptr(0) + } + return r +} + +func ___hdestroy_r(tls *TLS, htab uintptr) { + if (*Thsearch_data)(unsafe.Pointer(htab)).F__tab != 0 { + Xfree(tls, (*t__tab)(unsafe.Pointer((*Thsearch_data)(unsafe.Pointer(htab)).F__tab)).Fentries) + } + Xfree(tls, (*Thsearch_data)(unsafe.Pointer(htab)).F__tab) + (*Thsearch_data)(unsafe.Pointer(htab)).F__tab = uintptr(0) +} + +func ___hsearch_r(tls *TLS, item TENTRY, action TACTION, retval uintptr, htab uintptr) (r int32) { + var e, v2 uintptr + var hash, v1 Tsize_t + _, _, _, _ = e, hash, v1, v2 + hash = _keyhash(tls, item.Fkey) + e = _lookup(tls, item.Fkey, hash, htab) + if (*TENTRY)(unsafe.Pointer(e)).Fkey != 0 { + *(*uintptr)(unsafe.Pointer(retval)) = e + return int32(1) + } + if action == int32(_FIND) { + *(*uintptr)(unsafe.Pointer(retval)) = uintptr(0) + return 0 + } + *(*TENTRY)(unsafe.Pointer(e)) = item + v2 = (*Thsearch_data)(unsafe.Pointer(htab)).F__tab + 16 + *(*Tsize_t)(unsafe.Pointer(v2))++ + v1 = *(*Tsize_t)(unsafe.Pointer(v2)) + if v1 > (*t__tab)(unsafe.Pointer((*Thsearch_data)(unsafe.Pointer(htab)).F__tab)).Fmask-(*t__tab)(unsafe.Pointer((*Thsearch_data)(unsafe.Pointer(htab)).F__tab)).Fmask/uint64(4) { + if !(_resize(tls, uint64(2)*(*t__tab)(unsafe.Pointer((*Thsearch_data)(unsafe.Pointer(htab)).F__tab)).Fused, htab) != 0) { + (*t__tab)(unsafe.Pointer((*Thsearch_data)(unsafe.Pointer(htab)).F__tab)).Fused-- + (*TENTRY)(unsafe.Pointer(e)).Fkey = uintptr(0) + *(*uintptr)(unsafe.Pointer(retval)) = uintptr(0) + return 0 + } + e = _lookup(tls, item.Fkey, hash, htab) + } + *(*uintptr)(unsafe.Pointer(retval)) = e + return int32(1) +} + +type Tnode = struct { + Fnext uintptr + Fprev uintptr +} + +func Xinsque(tls *TLS, element uintptr, pred uintptr) { + if __ccgo_strace { + trc("tls=%v element=%v pred=%v, (%v:)", tls, element, pred, origin(2)) + } + var e, p, v1 uintptr + _, _, _ = e, p, v1 + e = element + p = pred + if !(p != 0) { + v1 = UintptrFromInt32(0) + (*Tnode)(unsafe.Pointer(e)).Fprev = v1 + (*Tnode)(unsafe.Pointer(e)).Fnext = v1 + return + } + (*Tnode)(unsafe.Pointer(e)).Fnext = (*Tnode)(unsafe.Pointer(p)).Fnext + (*Tnode)(unsafe.Pointer(e)).Fprev = p + (*Tnode)(unsafe.Pointer(p)).Fnext = e + if (*Tnode)(unsafe.Pointer(e)).Fnext != 0 { + (*Tnode)(unsafe.Pointer((*Tnode)(unsafe.Pointer(e)).Fnext)).Fprev = e + } +} + +func Xremque(tls *TLS, element uintptr) { + if __ccgo_strace { + trc("tls=%v element=%v, (%v:)", tls, element, origin(2)) + } + var e uintptr + _ = e + e = element + if (*Tnode)(unsafe.Pointer(e)).Fnext != 0 { + (*Tnode)(unsafe.Pointer((*Tnode)(unsafe.Pointer(e)).Fnext)).Fprev = (*Tnode)(unsafe.Pointer(e)).Fprev + } + if (*Tnode)(unsafe.Pointer(e)).Fprev != 0 { + (*Tnode)(unsafe.Pointer((*Tnode)(unsafe.Pointer(e)).Fprev)).Fnext = (*Tnode)(unsafe.Pointer(e)).Fnext + } +} + +func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, compar uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v key=%v base=%v nelp=%v width=%v compar=%v, (%v:)", tls, key, base, nelp, width, compar, origin(2)) + defer func() { trc("-> %v", r) }() + } + var i, n Tsize_t + var p uintptr + var v1 t__predefined_size_t + _, _, _, _ = i, n, p, v1 + defer func() {}() + v1 = width + p = base + n = *(*Tsize_t)(unsafe.Pointer(nelp)) + i = uint64(0) + for { + if !(i < n) { + break + } + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + return p + uintptr(i)*uintptr(v1) + } + goto _2 + _2: + ; + i++ + } + *(*Tsize_t)(unsafe.Pointer(nelp)) = n + uint64(1) + return Xmemcpy(tls, p+uintptr(n)*uintptr(v1), key, width) +} + +func Xlfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, compar uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v key=%v base=%v nelp=%v width=%v compar=%v, (%v:)", tls, key, base, nelp, width, compar, origin(2)) + defer func() { trc("-> %v", r) }() + } + var i, n Tsize_t + var p uintptr + var v1 t__predefined_size_t + _, _, _, _ = i, n, p, v1 + defer func() {}() + v1 = width + p = base + n = *(*Tsize_t)(unsafe.Pointer(nelp)) + i = uint64(0) + for { + if !(i < n) { + break + } + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + return p + uintptr(i)*uintptr(v1) + } + goto _2 + _2: + ; + i++ + } + return uintptr(0) +} + +const MAXH = 0 + +type Tnode1 = struct { + Fkey uintptr + Fa [2]uintptr + Fh int32 +} + +func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + defer func() { trc("-> %v", r) }() + } + var a [97]uintptr + var c, i, v1, v2, v4, v5, v6, v7, v8 int32 + var child, deleted, n, parent uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, c, child, deleted, i, n, parent, v1, v2, v4, v5, v6, v7, v8 + if !(rootp != 0) { + return uintptr(0) + } + n = *(*uintptr)(unsafe.Pointer(rootp)) + i = 0 + /* *a[0] is an arbitrary non-null pointer that is returned when + the root node is deleted. */ + v1 = i + i++ + a[v1] = rootp + v2 = i + i++ + a[v2] = rootp + for { + if !(n != 0) { + return uintptr(0) + } + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + if !(c != 0) { + break + } + v4 = i + i++ + a[v4] = n + 8 + BoolUintptr(c > 0)*8 + n = *(*uintptr)(unsafe.Pointer(n + 8 + BoolUintptr(c > 0)*8)) + goto _3 + _3: + } + parent = *(*uintptr)(unsafe.Pointer(a[i-int32(2)])) + if *(*uintptr)(unsafe.Pointer(n + 8)) != 0 { + /* free the preceding node instead of the deleted one. */ + deleted = n + v5 = i + i++ + a[v5] = n + 8 + n = *(*uintptr)(unsafe.Pointer(n + 8)) + for *(*uintptr)(unsafe.Pointer(n + 8 + 1*8)) != 0 { + v6 = i + i++ + a[v6] = n + 8 + 1*8 + n = *(*uintptr)(unsafe.Pointer(n + 8 + 1*8)) + } + (*Tnode1)(unsafe.Pointer(deleted)).Fkey = (*Tnode1)(unsafe.Pointer(n)).Fkey + child = *(*uintptr)(unsafe.Pointer(n + 8)) + } else { + child = *(*uintptr)(unsafe.Pointer(n + 8 + 1*8)) + } + /* freed node has at most one child, move it up and rebalance. */ + Xfree(tls, n) + i-- + v7 = i + *(*uintptr)(unsafe.Pointer(a[v7])) = child + for { + i-- + v8 = i + if !(v8 != 0 && X__tsearch_balance(tls, a[i]) != 0) { + break + } + } + return parent +} + +func Xtdestroy(tls *TLS, root uintptr, freekey uintptr) { + if __ccgo_strace { + trc("tls=%v root=%v freekey=%v, (%v:)", tls, root, freekey, origin(2)) + } + var r uintptr + _ = r + r = root + if r == uintptr(0) { + return + } + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 8)), freekey) + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 8 + 1*8)), freekey) + if freekey != 0 { + (*(*func(*TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{freekey})))(tls, (*Tnode1)(unsafe.Pointer(r)).Fkey) + } + Xfree(tls, r) +} + +func Xtfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + defer func() { trc("-> %v", r) }() + } + var c int32 + var n uintptr + _, _ = c, n + if !(rootp != 0) { + return uintptr(0) + } + n = *(*uintptr)(unsafe.Pointer(rootp)) + for { + if !(n != 0) { + break + } + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + if !(c != 0) { + break + } + n = *(*uintptr)(unsafe.Pointer(n + 8 + BoolUintptr(c > 0)*8)) + goto _1 + _1: + } + return n +} + +func _height(tls *TLS, n uintptr) (r int32) { + var v1 int32 + _ = v1 + if n != 0 { + v1 = (*Tnode1)(unsafe.Pointer(n)).Fh + } else { + v1 = 0 + } + return v1 +} + +func _rot(tls *TLS, p uintptr, x uintptr, dir int32) (r int32) { + var hx, hz int32 + var y, z uintptr + _, _, _, _ = hx, hz, y, z + y = *(*uintptr)(unsafe.Pointer(x + 8 + uintptr(dir)*8)) + z = *(*uintptr)(unsafe.Pointer(y + 8 + BoolUintptr(!(dir != 0))*8)) + hx = (*Tnode1)(unsafe.Pointer(x)).Fh + hz = _height(tls, z) + if hz > _height(tls, *(*uintptr)(unsafe.Pointer(y + 8 + uintptr(dir)*8))) { + /* + * x + * / \ dir z + * A y / * / \ --> x y + * z D /| | * / \ A B C D + * B C + */ + *(*uintptr)(unsafe.Pointer(x + 8 + uintptr(dir)*8)) = *(*uintptr)(unsafe.Pointer(z + 8 + BoolUintptr(!(dir != 0))*8)) + *(*uintptr)(unsafe.Pointer(y + 8 + BoolUintptr(!(dir != 0))*8)) = *(*uintptr)(unsafe.Pointer(z + 8 + uintptr(dir)*8)) + *(*uintptr)(unsafe.Pointer(z + 8 + BoolUintptr(!(dir != 0))*8)) = x + *(*uintptr)(unsafe.Pointer(z + 8 + uintptr(dir)*8)) = y + (*Tnode1)(unsafe.Pointer(x)).Fh = hz + (*Tnode1)(unsafe.Pointer(y)).Fh = hz + (*Tnode1)(unsafe.Pointer(z)).Fh = hz + int32(1) + } else { + /* + * x y + * / \ / * A y --> x D + * / \ / * z D A z + */ + *(*uintptr)(unsafe.Pointer(x + 8 + uintptr(dir)*8)) = z + *(*uintptr)(unsafe.Pointer(y + 8 + BoolUintptr(!(dir != 0))*8)) = x + (*Tnode1)(unsafe.Pointer(x)).Fh = hz + int32(1) + (*Tnode1)(unsafe.Pointer(y)).Fh = hz + int32(2) + z = y + } + *(*uintptr)(unsafe.Pointer(p)) = z + return (*Tnode1)(unsafe.Pointer(z)).Fh - hx +} + +// C documentation +// +// /* balance *p, return 0 if height is unchanged. */ +func X__tsearch_balance(tls *TLS, p uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v p=%v, (%v:)", tls, p, origin(2)) + defer func() { trc("-> %v", r) }() + } + var h0, h1, old, v1 int32 + var n uintptr + _, _, _, _, _ = h0, h1, n, old, v1 + n = *(*uintptr)(unsafe.Pointer(p)) + h0 = _height(tls, *(*uintptr)(unsafe.Pointer(n + 8))) + h1 = _height(tls, *(*uintptr)(unsafe.Pointer(n + 8 + 1*8))) + if uint32(h0-h1)+uint32(1) < uint32(3) { + old = (*Tnode1)(unsafe.Pointer(n)).Fh + if h0 < h1 { + v1 = h1 + int32(1) + } else { + v1 = h0 + int32(1) + } + (*Tnode1)(unsafe.Pointer(n)).Fh = v1 + return (*Tnode1)(unsafe.Pointer(n)).Fh - old + } + return _rot(tls, p, n, BoolInt32(h0 < h1)) +} + +func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { + if __ccgo_strace { + trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var a [96]uintptr + var c, i, v1, v3, v5, v6 int32 + var n, r, v4 uintptr + var v7 bool + _, _, _, _, _, _, _, _, _, _, _ = a, c, i, n, r, v1, v3, v4, v5, v6, v7 + if !(rootp != 0) { + return uintptr(0) + } + n = *(*uintptr)(unsafe.Pointer(rootp)) + i = 0 + v1 = i + i++ + a[v1] = rootp + for { + if !(n != 0) { + break + } + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + if !(c != 0) { + return n + } + v3 = i + i++ + a[v3] = n + 8 + BoolUintptr(c > 0)*8 + n = *(*uintptr)(unsafe.Pointer(n + 8 + BoolUintptr(c > 0)*8)) + goto _2 + _2: + } + r = Xmalloc(tls, uint64(32)) + if !(r != 0) { + return uintptr(0) + } + (*Tnode1)(unsafe.Pointer(r)).Fkey = key + v4 = UintptrFromInt32(0) + *(*uintptr)(unsafe.Pointer(r + 8 + 1*8)) = v4 + *(*uintptr)(unsafe.Pointer(r + 8)) = v4 + (*Tnode1)(unsafe.Pointer(r)).Fh = int32(1) + /* insert new node, rebalance ancestors. */ + i-- + v5 = i + *(*uintptr)(unsafe.Pointer(a[v5])) = r + for { + if v7 = i != 0; v7 { + i-- + v6 = i + } + if !(v7 && X__tsearch_balance(tls, a[v6]) != 0) { + break + } + } + return r +} + +func _walk(tls *TLS, r uintptr, action uintptr, d int32) { + if !(r != 0) { + return + } + if (*Tnode1)(unsafe.Pointer(r)).Fh == int32(1) { + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{action})))(tls, r, _leaf, d) + } else { + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{action})))(tls, r, _preorder, d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 8)), action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{action})))(tls, r, _postorder, d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 8 + 1*8)), action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{action})))(tls, r, _endorder, d) + } +} + +func Xtwalk(tls *TLS, root uintptr, action uintptr) { + if __ccgo_strace { + trc("tls=%v root=%v action=%v, (%v:)", tls, root, action, origin(2)) + } + _walk(tls, root, action, 0) +} + +func Xpoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fds=%v n=%v timeout=%v, (%v:)", tls, fds, n, timeout, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1 uintptr + _ = v1 + if timeout >= 0 { + *(*[2]int64)(unsafe.Pointer(bp)) = [2]int64{ + 0: int64(timeout / int32(1000)), + 1: int64(timeout % int32(1000) * int32(1000000)), + } + v1 = bp + } else { + v1 = uintptr(0) + } + return int32(X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_ppoll), int64(fds), int64(n), int64(v1), int64(Int32FromInt32(0)), int64(Int32FromInt32(_NSIG)/Int32FromInt32(8)), 0)))) +} + +type t__ucontext3 = Tucontext_t5 + +func Xppoll(tls *TLS, fds uintptr, n Tnfds_t, to uintptr, mask uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fds=%v n=%v to=%v mask=%v, (%v:)", tls, fds, n, to, mask, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var ns, v1, v2 int64 + var s Ttime_t + var v3 uintptr + _, _, _, _, _ = ns, s, v1, v2, v3 + if to != 0 { + v1 = (*Ttimespec)(unsafe.Pointer(to)).Ftv_sec + } else { + v1 = 0 + } + s = v1 + if to != 0 { + v2 = (*Ttimespec)(unsafe.Pointer(to)).Ftv_nsec + } else { + v2 = 0 + } + ns = v2 + if to != 0 { + *(*[2]int64)(unsafe.Pointer(bp)) = [2]int64{ + 0: s, + 1: ns, + } + v3 = bp + } else { + v3 = uintptr(0) + } + return int32(X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_ppoll), int64(fds), int64(n), int64(v3), int64(mask), int64(Int32FromInt32(_NSIG)/Int32FromInt32(8)), 0)))) +} + +type t__ucontext4 = Tucontext_t4 + +func Xpselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, ts uintptr, mask uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v n=%v rfds=%v wfds=%v efds=%v ts=%v mask=%v, (%v:)", tls, n, rfds, wfds, efds, ts, mask, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var ns, v1, v2 int64 + var s Ttime_t + var v3 uintptr + var _ /* data at bp+16 */ [2]Tsyscall_arg_t + _, _, _, _, _ = ns, s, v1, v2, v3 + *(*[2]Tsyscall_arg_t)(unsafe.Pointer(bp + 16)) = [2]Tsyscall_arg_t{ + 0: int64(uint64(mask)), + 1: int64(Int32FromInt32(_NSIG) / Int32FromInt32(8)), + } + if ts != 0 { + v1 = (*Ttimespec)(unsafe.Pointer(ts)).Ftv_sec + } else { + v1 = 0 + } + s = v1 + if ts != 0 { + v2 = (*Ttimespec)(unsafe.Pointer(ts)).Ftv_nsec + } else { + v2 = 0 + } + ns = v2 + if ts != 0 { + *(*[2]int64)(unsafe.Pointer(bp)) = [2]int64{ + 0: s, + 1: ns, + } + v3 = bp + } else { + v3 = uintptr(0) + } + return int32(X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_pselect6), int64(n), int64(rfds), int64(wfds), int64(efds), int64(v3), int64(bp+16))))) +} + +type Tucontext_t6 = struct { + Fuc_flags uint64 + Fuc_link uintptr + Fuc_stack Tstack_t + Fuc_sigmask Tsigset_t + Fuc_mcontext Tmcontext_t +} + +func Xselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, tv uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v n=%v rfds=%v wfds=%v efds=%v tv=%v, (%v:)", tls, n, rfds, wfds, efds, tv, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var max_time, s Ttime_t + var ns, v1, v2 int64 + var us Tsuseconds_t + var v3 uintptr + _, _, _, _, _, _, _ = max_time, ns, s, us, v1, v2, v3 + if tv != 0 { + v1 = (*Ttimeval)(unsafe.Pointer(tv)).Ftv_sec + } else { + v1 = 0 + } + s = v1 + if tv != 0 { + v2 = (*Ttimeval)(unsafe.Pointer(tv)).Ftv_usec + } else { + v2 = 0 + } + us = v2 + max_time = int64(Uint64FromUint64(1)<<(Uint64FromInt32(8)*Uint64FromInt64(8)-Uint64FromInt32(1)) - Uint64FromInt32(1)) + if s < 0 || us < 0 { + return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EINVAL)))) + } + if us/int64(1000000) > max_time-s { + s = max_time + us = int64(999999) + ns = int64(999999999) + } else { + s += us / int64(1000000) + us %= int64(1000000) + ns = us * int64(1000) + } + if tv != 0 { + *(*[2]int64)(unsafe.Pointer(bp)) = [2]int64{ + 0: s, + 1: ns, + } + v3 = bp + } else { + v3 = uintptr(0) + } + *(*[2]Tsyscall_arg_t)(unsafe.Pointer(bp + 16)) = [2]Tsyscall_arg_t{ + 1: int64(Int32FromInt32(_NSIG) / Int32FromInt32(8)), + } + return int32(X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_pselect6), int64(n), int64(rfds), int64(wfds), int64(efds), int64(v3), int64(bp+16))))) +} + +var _all_mask = [1]uint64{ + 0: -Uint64FromUint64(1), +} + +var _app_mask = [1]uint64{ + 0: uint64(0xfffffffc7fffffff), +} + +func X__block_all_sigs(tls *TLS, set uintptr) { + if __ccgo_strace { + trc("tls=%v set=%v, (%v:)", tls, set, origin(2)) + } + X__syscall4(tls, int64(SYS_rt_sigprocmask), int64(Int32FromInt32(SIG_BLOCK)), int64(uintptr(unsafe.Pointer(&_all_mask))), int64(set), int64(Int32FromInt32(_NSIG)/Int32FromInt32(8))) +} + +func X__block_app_sigs(tls *TLS, set uintptr) { + if __ccgo_strace { + trc("tls=%v set=%v, (%v:)", tls, set, origin(2)) + } + X__syscall4(tls, int64(SYS_rt_sigprocmask), int64(Int32FromInt32(SIG_BLOCK)), int64(uintptr(unsafe.Pointer(&_app_mask))), int64(set), int64(Int32FromInt32(_NSIG)/Int32FromInt32(8))) +} + +func X__restore_sigs(tls *TLS, set uintptr) { + if __ccgo_strace { + trc("tls=%v set=%v, (%v:)", tls, set, origin(2)) + } + X__syscall4(tls, int64(SYS_rt_sigprocmask), int64(Int32FromInt32(SIG_SETMASK)), int64(set), int64(Int32FromInt32(0)), int64(Int32FromInt32(_NSIG)/Int32FromInt32(8))) +} + +func Xgetitimer(tls *TLS, which int32, old uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v which=%v old=%v, (%v:)", tls, which, old, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var r int32 + var _ /* old32 at bp+0 */ [4]int64 + _ = r + if uint64(8) > uint64(8) { + r = int32(X__syscall2(tls, int64(SYS_getitimer), int64(which), int64(bp))) + if !(r != 0) { + (*Titimerval)(unsafe.Pointer(old)).Fit_interval.Ftv_sec = (*(*[4]int64)(unsafe.Pointer(bp)))[0] + (*Titimerval)(unsafe.Pointer(old)).Fit_interval.Ftv_usec = (*(*[4]int64)(unsafe.Pointer(bp)))[int32(1)] + (*Titimerval)(unsafe.Pointer(old)).Fit_value.Ftv_sec = (*(*[4]int64)(unsafe.Pointer(bp)))[int32(2)] + (*Titimerval)(unsafe.Pointer(old)).Fit_value.Ftv_usec = (*(*[4]int64)(unsafe.Pointer(bp)))[int32(3)] + } + return int32(X__syscall_ret(tls, uint64(r))) + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_getitimer), int64(which), int64(old))))) +} + +func Xkill(tls *TLS, pid Tpid_t, sig int32) (r int32) { + if __ccgo_strace { + trc("tls=%v pid=%v sig=%v, (%v:)", tls, pid, sig, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_kill), int64(pid), int64(sig))))) +} + +func Xkillpg(tls *TLS, pgid Tpid_t, sig int32) (r int32) { + if __ccgo_strace { + trc("tls=%v pgid=%v sig=%v, (%v:)", tls, pgid, sig, origin(2)) + defer func() { trc("-> %v", r) }() + } + if pgid < 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return -int32(1) + } + return Xkill(tls, -pgid, sig) +} + +func Xpsiginfo(tls *TLS, si uintptr, msg uintptr) { + if __ccgo_strace { + trc("tls=%v si=%v msg=%v, (%v:)", tls, si, msg, origin(2)) + } + Xpsignal(tls, (*Tsiginfo_t)(unsafe.Pointer(si)).Fsi_signo, msg) +} + +func Xpsignal(tls *TLS, sig int32, msg uintptr) { + if __ccgo_strace { + trc("tls=%v sig=%v msg=%v, (%v:)", tls, sig, msg, origin(2)) + } + bp := tls.Alloc(32) + defer tls.Free(32) + var __need_unlock, old_errno, old_mode, v1 int32 + var f, old_locale, s, v2, v3 uintptr + _, _, _, _, _, _, _, _, _ = __need_unlock, f, old_errno, old_locale, old_mode, s, v1, v2, v3 + f = uintptr(unsafe.Pointer(&X__stderr_FILE)) + s = Xstrsignal(tls, sig) + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + /* Save stderr's orientation and encoding rule, since psignal is not + * permitted to change them. Save errno and restore it if there is no + * error since fprintf might change it even on success but psignal is + * not permitted to do so. */ + old_locale = (*TFILE)(unsafe.Pointer(f)).Flocale + old_mode = (*TFILE)(unsafe.Pointer(f)).Fmode + old_errno = *(*int32)(unsafe.Pointer(X__errno_location(tls))) + if msg != 0 { + v2 = msg + } else { + v2 = __ccgo_ts + } + if msg != 0 { + v3 = __ccgo_ts + 289 + } else { + v3 = __ccgo_ts + } + if Xfprintf(tls, f, __ccgo_ts+1072, VaList(bp+8, v2, v3, s)) >= 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = old_errno + } + (*TFILE)(unsafe.Pointer(f)).Fmode = old_mode + (*TFILE)(unsafe.Pointer(f)).Flocale = old_locale + if __need_unlock != 0 { + ___unlockfile(tls, f) + } +} + +func Xraise(tls *TLS, sig int32) (r int32) { + if __ccgo_strace { + trc("tls=%v sig=%v, (%v:)", tls, sig, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(128) + defer tls.Free(128) + var ret int32 + var _ /* set at bp+0 */ Tsigset_t + _ = ret + X__block_app_sigs(tls, bp) + ret = int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_tkill), int64((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Ftid), int64(sig))))) + X__restore_sigs(tls, bp) + return ret +} + +/* These functions will not work, but suffice for targets where the + * kernel sigaction structure does not actually use sa_restorer. */ +func X__restore(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } +} + +func X__restore_rt(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } +} + +func Xsetitimer(tls *TLS, which int32, new1 uintptr, old uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v which=%v new1=%v old=%v, (%v:)", tls, which, new1, old, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(64) + defer tls.Free(64) + var is, vs Ttime_t + var ius, vus int64 + var r int32 + var _ /* old32 at bp+32 */ [4]int64 + _, _, _, _, _ = is, ius, r, vs, vus + if uint64(8) > uint64(8) { + is = (*Titimerval)(unsafe.Pointer(new1)).Fit_interval.Ftv_sec + vs = (*Titimerval)(unsafe.Pointer(new1)).Fit_value.Ftv_sec + ius = (*Titimerval)(unsafe.Pointer(new1)).Fit_interval.Ftv_usec + vus = (*Titimerval)(unsafe.Pointer(new1)).Fit_value.Ftv_usec + if !!((uint64(is)+Uint64FromUint64(0x80000000))>>Int32FromInt32(32) != 0) || !!((uint64(vs)+Uint64FromUint64(0x80000000))>>Int32FromInt32(32) != 0) { + return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EOPNOTSUPP)))) + } + *(*[4]int64)(unsafe.Pointer(bp)) = [4]int64{ + 0: is, + 1: ius, + 2: vs, + 3: vus, + } + r = int32(X__syscall3(tls, int64(SYS_setitimer), int64(which), int64(bp), int64(bp+32))) + if !(r != 0) && old != 0 { + (*Titimerval)(unsafe.Pointer(old)).Fit_interval.Ftv_sec = (*(*[4]int64)(unsafe.Pointer(bp + 32)))[0] + (*Titimerval)(unsafe.Pointer(old)).Fit_interval.Ftv_usec = (*(*[4]int64)(unsafe.Pointer(bp + 32)))[int32(1)] + (*Titimerval)(unsafe.Pointer(old)).Fit_value.Ftv_sec = (*(*[4]int64)(unsafe.Pointer(bp + 32)))[int32(2)] + (*Titimerval)(unsafe.Pointer(old)).Fit_value.Ftv_usec = (*(*[4]int64)(unsafe.Pointer(bp + 32)))[int32(3)] + } + return int32(X__syscall_ret(tls, uint64(r))) + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_setitimer), int64(which), int64(new1), int64(old))))) +} + +type Tk_sigaction = struct { + Fhandler uintptr + Fflags uint64 + Frestorer uintptr + Fmask [2]uint32 +} + +var _unmask_done int32 +var _handler_set [1]uint64 + +func X__get_handler_set(tls *TLS, set uintptr) { + if __ccgo_strace { + trc("tls=%v set=%v, (%v:)", tls, set, origin(2)) + } + Xmemcpy(tls, set, uintptr(unsafe.Pointer(&_handler_set)), uint64(8)) +} + +func X__libc_sigaction(tls *TLS, sig int32, sa uintptr, old1 uintptr) (r2 int32) { + if __ccgo_strace { + trc("tls=%v sig=%v sa=%v old1=%v, (%v:)", tls, sig, sa, old1, origin(2)) + defer func() { trc("-> %v", r2) }() + } + bp := tls.Alloc(80) + defer tls.Free(80) + var old, r, r1, v, v12, v15, v19, v22, v4, v7 int32 + var v1, v10, v11, v18, v25, v26, v27, v3 uintptr + var v2 int64 + var _ /* ksa at bp+16 */ Tk_sigaction + var _ /* ksa_old at bp+48 */ Tk_sigaction + var _ /* u at bp+8 */ struct { + Fr [0][2]Tuint32_t + Fv Tuint64_t + } + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = old, r, r1, v, v1, v10, v11, v12, v15, v18, v19, v2, v22, v25, v26, v27, v3, v4, v7 + if sa != 0 { + if uint64(*(*uintptr)(unsafe.Pointer(sa))) > uint64(1) { + v1 = uintptr(unsafe.Pointer(&_handler_set)) + uintptr(uint64(sig-Int32FromInt32(1))/(Uint64FromInt32(8)*Uint64FromInt64(8)))*8 + v2 = int64(uint64(1) << (uint64(sig-Int32FromInt32(1)) % (Uint64FromInt32(8) * Uint64FromInt64(8)))) + if Uint64FromInt64(8) == Uint64FromInt64(4) { + v3 = v1 + for { + // __asm__ __volatile__ ("ldaxr %w0,%1" : "=r"(v) : "Q"(*p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 5, __ccgo_ts+1487) + v7 = v + goto _8 + _8: + old = v7 + goto _6 + _6: + ; + // __asm__ __volatile__ ("stlxr %w0,%w2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 13, __ccgo_ts+1487) + v4 = BoolInt32(!(r != 0)) + goto _5 + _5: + ; + if !!(v4 != 0) { + break + } + } + _ = old + goto _9 + _9: + } else { + v10 = v1 + *(*struct { + Fr [0][2]Tuint32_t + Fv Tuint64_t + })(unsafe.Pointer(bp + 8)) = struct { + Fr [0][2]Tuint32_t + Fv Tuint64_t + }{} + *(*uint64)(unsafe.Pointer(bp + 8)) = uint64(v2) + if *(*Tuint32_t)(unsafe.Pointer(bp + 8)) != 0 { + v11 = v10 + for { + // __asm__ __volatile__ ("ldaxr %w0,%1" : "=r"(v) : "Q"(*p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 5, __ccgo_ts+1487) + v15 = v + goto _16 + _16: + old = v15 + goto _14 + _14: + ; + // __asm__ __volatile__ ("stlxr %w0,%w2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 13, __ccgo_ts+1487) + v12 = BoolInt32(!(r != 0)) + goto _13 + _13: + ; + if !!(v12 != 0) { + break + } + } + _ = old + goto _17 + _17: + } + if *(*Tuint32_t)(unsafe.Pointer(bp + 8 + 1*4)) != 0 { + v18 = v10 + uintptr(1)*4 + for { + // __asm__ __volatile__ ("ldaxr %w0,%1" : "=r"(v) : "Q"(*p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 5, __ccgo_ts+1487) + v22 = v + goto _23 + _23: + old = v22 + goto _21 + _21: + ; + // __asm__ __volatile__ ("stlxr %w0,%w2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 13, __ccgo_ts+1487) + v19 = BoolInt32(!(r != 0)) + goto _20 + _20: + ; + if !!(v19 != 0) { + break + } + } + _ = old + goto _24 + _24: + } + } + /* If pthread_create has not yet been called, + * implementation-internal signals might not + * yet have been unblocked. They must be + * unblocked before any signal handler is + * installed, so that an application cannot + * receive an illegal sigset_t (with them + * blocked) as part of the ucontext_t passed + * to the signal handler. */ + if !(X__libc.Fthreaded != 0) && !(_unmask_done != 0) { + *(*[1]uint64)(unsafe.Pointer(bp)) = [1]uint64{ + 0: Uint64FromUint64(3) << (Int32FromInt32(32) * BoolInt32(Uint64FromInt64(8) > Uint64FromInt32(4))), + } + X__syscall4(tls, int64(SYS_rt_sigprocmask), int64(Int32FromInt32(SIG_UNBLOCK)), int64(bp), int64(Int32FromInt32(0)), int64(Int32FromInt32(_NSIG)/Int32FromInt32(8))) + _unmask_done = int32(1) + } + if !((*Tsigaction)(unsafe.Pointer(sa)).Fsa_flags&Int32FromInt32(SA_RESTART) != 0) { + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+1487) + AtomicStorePInt32(uintptr(unsafe.Pointer(&X__eintr_valid_flag)), int32(1)) + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+1487) + } + } + (*(*Tk_sigaction)(unsafe.Pointer(bp + 16))).Fhandler = *(*uintptr)(unsafe.Pointer(sa)) + (*(*Tk_sigaction)(unsafe.Pointer(bp + 16))).Fflags = uint64((*Tsigaction)(unsafe.Pointer(sa)).Fsa_flags) + (*(*Tk_sigaction)(unsafe.Pointer(bp + 16))).Fflags |= uint64(SA_RESTORER) + if (*Tsigaction)(unsafe.Pointer(sa)).Fsa_flags&int32(SA_SIGINFO) != 0 { + v25 = __ccgo_fp(X__restore_rt) + } else { + v25 = __ccgo_fp(X__restore) + } + (*(*Tk_sigaction)(unsafe.Pointer(bp + 16))).Frestorer = v25 + Xmemcpy(tls, bp+16+24, sa+8, uint64(Int32FromInt32(_NSIG)/Int32FromInt32(8))) + } + if sa != 0 { + v26 = bp + 16 + } else { + v26 = uintptr(0) + } + if old1 != 0 { + v27 = bp + 48 + } else { + v27 = uintptr(0) + } + r1 = int32(X__syscall4(tls, int64(SYS_rt_sigaction), int64(sig), int64(v26), int64(v27), int64(Int32FromInt32(_NSIG)/Int32FromInt32(8)))) + if old1 != 0 && !(r1 != 0) { + *(*uintptr)(unsafe.Pointer(old1)) = (*(*Tk_sigaction)(unsafe.Pointer(bp + 48))).Fhandler + (*Tsigaction)(unsafe.Pointer(old1)).Fsa_flags = int32((*(*Tk_sigaction)(unsafe.Pointer(bp + 48))).Fflags) + Xmemcpy(tls, old1+8, bp+48+24, uint64(Int32FromInt32(_NSIG)/Int32FromInt32(8))) + } + return int32(X__syscall_ret(tls, uint64(r1))) +} + +func X__sigaction(tls *TLS, sig int32, sa uintptr, old uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v sig=%v sa=%v old=%v, (%v:)", tls, sig, sa, old, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var r int32 + var _ /* set at bp+0 */ [1]uint64 + _ = r + if uint32(sig)-uint32(32) < uint32(3) || uint32(sig)-uint32(1) >= uint32(Int32FromInt32(_NSIG)-Int32FromInt32(1)) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return -int32(1) + } + /* Doing anything with the disposition of SIGABRT requires a lock, + * so that it cannot be changed while abort is terminating the + * process and so any change made by abort can't be observed. */ + if sig == int32(SIGABRT) { + X__block_all_sigs(tls, bp) + ___lock(tls, uintptr(unsafe.Pointer(&X__abort_lock))) + } + r = X__libc_sigaction(tls, sig, sa, old) + if sig == int32(SIGABRT) { + ___unlock(tls, uintptr(unsafe.Pointer(&X__abort_lock))) + X__restore_sigs(tls, bp) + } + return r +} + +func Xsigaction(tls *TLS, sig int32, sa uintptr, old uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v sig=%v sa=%v old=%v, (%v:)", tls, sig, sa, old, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__sigaction(tls, sig, sa, old) +} + +func Xsigaddset(tls *TLS, set uintptr, sig int32) (r int32) { + if __ccgo_strace { + trc("tls=%v set=%v sig=%v, (%v:)", tls, set, sig, origin(2)) + defer func() { trc("-> %v", r) }() + } + var s uint32 + _ = s + s = uint32(sig - int32(1)) + if s >= uint32(Int32FromInt32(_NSIG)-Int32FromInt32(1)) || uint32(sig)-uint32(32) < uint32(3) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return -int32(1) + } + *(*uint64)(unsafe.Pointer(set + uintptr(uint64(s/uint32(8))/uint64(8))*8)) |= uint64(1) << (uint64(s) & (Uint64FromInt32(8)*Uint64FromInt64(8) - Uint64FromInt32(1))) + return 0 +} + +func Xsigaltstack(tls *TLS, ss uintptr, old uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v ss=%v old=%v, (%v:)", tls, ss, old, origin(2)) + defer func() { trc("-> %v", r) }() + } + if ss != 0 { + if !((*Tstack_t)(unsafe.Pointer(ss)).Fss_flags&Int32FromInt32(SS_DISABLE) != 0) && (*Tstack_t)(unsafe.Pointer(ss)).Fss_size < uint64(MINSIGSTKSZ) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOMEM) + return -int32(1) + } + if (*Tstack_t)(unsafe.Pointer(ss)).Fss_flags&int32(SS_ONSTACK) != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return -int32(1) + } + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_sigaltstack), int64(ss), int64(old))))) +} + +const SST_SIZE = 8 + +type Tucontext_t7 = struct { + Fuc_flags uint64 + Fuc_link uintptr + Fuc_stack Tstack_t + Fuc_sigmask Tsigset_t + Fuc_mcontext Tmcontext_t1 +} + +func Xsigandset(tls *TLS, dest uintptr, left uintptr, right uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v dest=%v left=%v right=%v, (%v:)", tls, dest, left, right, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var d, l, r uintptr + var i uint64 + _, _, _, _ = d, i, l, r + i = uint64(0) + d = dest + l = left + r = right + for { + if !(i < uint64(Int32FromInt32(_NSIG)/Int32FromInt32(8))/Uint64FromInt64(8)) { + break + } + *(*uint64)(unsafe.Pointer(d + uintptr(i)*8)) = *(*uint64)(unsafe.Pointer(l + uintptr(i)*8)) & *(*uint64)(unsafe.Pointer(r + uintptr(i)*8)) + goto _1 + _1: + ; + i++ + } + return 0 +} +func Xsigdelset(tls *TLS, set uintptr, sig int32) (r int32) { + if __ccgo_strace { + trc("tls=%v set=%v sig=%v, (%v:)", tls, set, sig, origin(2)) + defer func() { trc("-> %v", r) }() + } + var s uint32 + _ = s + s = uint32(sig - int32(1)) + if s >= uint32(Int32FromInt32(_NSIG)-Int32FromInt32(1)) || uint32(sig)-uint32(32) < uint32(3) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return -int32(1) + } + *(*uint64)(unsafe.Pointer(set + uintptr(uint64(s/uint32(8))/uint64(8))*8)) &= ^(Uint64FromUint64(1) << (uint64(s) & (Uint64FromInt32(8)*Uint64FromInt64(8) - Uint64FromInt32(1)))) + return 0 +} + +func Xsigemptyset(tls *TLS, set uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v set=%v, (%v:)", tls, set, origin(2)) + defer func() { trc("-> %v", r) }() + } + *(*uint64)(unsafe.Pointer(set)) = uint64(0) + if Bool(uint64(8) == uint64(4)) || Bool(int32(_NSIG) > int32(65)) { + *(*uint64)(unsafe.Pointer(set + 1*8)) = uint64(0) + } + if Bool(uint64(8) == uint64(4)) && Bool(int32(_NSIG) > int32(65)) { + *(*uint64)(unsafe.Pointer(set + 2*8)) = uint64(0) + *(*uint64)(unsafe.Pointer(set + 3*8)) = uint64(0) + } + return 0 +} + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +func Xsigfillset(tls *TLS, set uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v set=%v, (%v:)", tls, set, origin(2)) + defer func() { trc("-> %v", r) }() + } + *(*uint64)(unsafe.Pointer(set)) = uint64(0xfffffffc7fffffff) + if int32(_NSIG) > int32(65) { + *(*uint64)(unsafe.Pointer(set + 1*8)) = uint64(0xffffffffffffffff) + } + return 0 +} + +func Xsigisemptyset(tls *TLS, set uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v set=%v, (%v:)", tls, set, origin(2)) + defer func() { trc("-> %v", r) }() + } + var i Tsize_t + _ = i + i = uint64(0) + for { + if !(i < uint64(Int32FromInt32(_NSIG)/Int32FromInt32(8))/Uint64FromInt64(8)) { + break + } + if *(*uint64)(unsafe.Pointer(set + uintptr(i)*8)) != 0 { + return 0 + } + goto _1 + _1: + ; + i++ + } + return int32(1) +} +func Xsigismember(tls *TLS, set uintptr, sig int32) (r int32) { + if __ccgo_strace { + trc("tls=%v set=%v sig=%v, (%v:)", tls, set, sig, origin(2)) + defer func() { trc("-> %v", r) }() + } + var s uint32 + _ = s + s = uint32(sig - int32(1)) + if s >= uint32(Int32FromInt32(_NSIG)-Int32FromInt32(1)) { + return 0 + } + return BoolInt32(!!(*(*uint64)(unsafe.Pointer(set + uintptr(uint64(s/uint32(8))/uint64(8))*8))&(Uint64FromUint64(1)<<(uint64(s)&(Uint64FromInt32(8)*Uint64FromInt64(8)-Uint64FromInt32(1)))) != 0)) +} + +func Xsigorset(tls *TLS, dest uintptr, left uintptr, right uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v dest=%v left=%v right=%v, (%v:)", tls, dest, left, right, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var d, l, r uintptr + var i uint64 + _, _, _, _ = d, i, l, r + i = uint64(0) + d = dest + l = left + r = right + for { + if !(i < uint64(Int32FromInt32(_NSIG)/Int32FromInt32(8))/Uint64FromInt64(8)) { + break + } + *(*uint64)(unsafe.Pointer(d + uintptr(i)*8)) = *(*uint64)(unsafe.Pointer(l + uintptr(i)*8)) | *(*uint64)(unsafe.Pointer(r + uintptr(i)*8)) + goto _1 + _1: + ; + i++ + } + return 0 +} +func Xsigpending(tls *TLS, set uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v set=%v, (%v:)", tls, set, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_rt_sigpending), int64(set), int64(Int32FromInt32(_NSIG)/Int32FromInt32(8)))))) +} + +func Xsigprocmask(tls *TLS, how int32, set uintptr, old uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v how=%v set=%v old=%v, (%v:)", tls, how, set, old, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r int32 + _ = r + r = _pthread_sigmask(tls, how, set, old) + if !(r != 0) { + return r + } + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = r + return -int32(1) +} + +func Xsigqueue(tls *TLS, pid Tpid_t, sig int32, value Tsigval) (r1 int32) { + if __ccgo_strace { + trc("tls=%v pid=%v sig=%v value=%v, (%v:)", tls, pid, sig, value, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(256) + defer tls.Free(256) + var r int32 + var _ /* set at bp+128 */ Tsigset_t + var _ /* si at bp+0 */ Tsiginfo_t + _ = r + Xmemset(tls, bp, 0, uint64(128)) + (*(*Tsiginfo_t)(unsafe.Pointer(bp))).Fsi_signo = sig + (*(*Tsiginfo_t)(unsafe.Pointer(bp))).Fsi_code = -int32(1) + *(*Tsigval)(unsafe.Pointer(bp + 16 + 8)) = value + *(*Tuid_t)(unsafe.Pointer(bp + 16 + 4)) = Xgetuid(tls) + X__block_app_sigs(tls, bp+128) + *(*Tpid_t)(unsafe.Pointer(bp + 16)) = Xgetpid(tls) + r = int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_rt_sigqueueinfo), int64(pid), int64(sig), int64(bp))))) + X__restore_sigs(tls, bp+128) + return r +} + +func X__libc_current_sigrtmax(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Int32FromInt32(_NSIG) - Int32FromInt32(1) +} + +func X__libc_current_sigrtmin(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(35) +} + +type t__jmp_buf = [22]uint64 + +type Tjmp_buf = [1]t__jmp_buf_tag + +type t__jmp_buf_tag = struct { + F__jb t__jmp_buf + F__fl uint64 + F__ss [16]uint64 +} + +type Tsigjmp_buf = [1]t__jmp_buf_tag + +func X__sigsetjmp_tail(tls *TLS, jb uintptr, ret int32) (r int32) { + if __ccgo_strace { + trc("tls=%v jb=%v ret=%v, (%v:)", tls, jb, ret, origin(2)) + defer func() { trc("-> %v", r) }() + } + var p, v1, v2 uintptr + _, _, _ = p, v1, v2 + p = jb + 184 + if ret != 0 { + v1 = p + } else { + v1 = uintptr(0) + } + if ret != 0 { + v2 = uintptr(0) + } else { + v2 = p + } + X__syscall4(tls, int64(SYS_rt_sigprocmask), int64(Int32FromInt32(SIG_SETMASK)), int64(v1), int64(v2), int64(Int32FromInt32(_NSIG)/Int32FromInt32(8))) + return ret +} + +func Xsigsuspend(tls *TLS, mask uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v mask=%v, (%v:)", tls, mask, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_rt_sigsuspend), int64(mask), int64(Int32FromInt32(_NSIG)/Int32FromInt32(8)), 0, 0, 0, 0)))) +} + +func _do_sigtimedwait(tls *TLS, mask uintptr, si uintptr, ts uintptr) (r int32) { + return int32(___syscall_cp(tls, int64(SYS_rt_sigtimedwait), int64(mask), int64(si), int64(ts), int64(Int32FromInt32(_NSIG)/Int32FromInt32(8)), 0, 0)) +} + +func Xsigtimedwait(tls *TLS, mask uintptr, si uintptr, timeout uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v mask=%v si=%v timeout=%v, (%v:)", tls, mask, si, timeout, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ret int32 + _ = ret + for cond := true; cond; cond = ret == -int32(EINTR) { + ret = _do_sigtimedwait(tls, mask, si, timeout) + } + return int32(X__syscall_ret(tls, uint64(ret))) +} + +func Xsigwait(tls *TLS, mask uintptr, sig uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v mask=%v sig=%v, (%v:)", tls, mask, sig, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(128) + defer tls.Free(128) + var _ /* si at bp+0 */ Tsiginfo_t + if Xsigtimedwait(tls, mask, bp, uintptr(0)) < 0 { + return -int32(1) + } + *(*int32)(unsafe.Pointer(sig)) = (*(*Tsiginfo_t)(unsafe.Pointer(bp))).Fsi_signo + return 0 +} + +func Xsigwaitinfo(tls *TLS, mask uintptr, si uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v mask=%v si=%v, (%v:)", tls, mask, si, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xsigtimedwait(tls, mask, si, uintptr(0)) +} + +func X__fxstat(tls *TLS, ver int32, fd int32, buf uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v ver=%v fd=%v buf=%v, (%v:)", tls, ver, fd, buf, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfstat(tls, fd, buf) +} + +func X__fxstatat(tls *TLS, ver int32, fd int32, path uintptr, buf uintptr, flag int32) (r int32) { + if __ccgo_strace { + trc("tls=%v ver=%v fd=%v path=%v buf=%v flag=%v, (%v:)", tls, ver, fd, path, buf, flag, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfstatat(tls, fd, path, buf, flag) +} + +func X__lxstat(tls *TLS, ver int32, path uintptr, buf uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v ver=%v path=%v buf=%v, (%v:)", tls, ver, path, buf, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xlstat(tls, path, buf) +} + +func X__xstat(tls *TLS, ver int32, path uintptr, buf uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v ver=%v path=%v buf=%v, (%v:)", tls, ver, path, buf, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstat(tls, path, buf) +} + +func X__xmknod(tls *TLS, ver int32, path uintptr, mode Tmode_t, dev uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v ver=%v path=%v mode=%v dev=%v, (%v:)", tls, ver, path, mode, dev, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xmknod(tls, path, mode, *(*Tdev_t)(unsafe.Pointer(dev))) +} + +func X__xmknodat(tls *TLS, ver int32, fd int32, path uintptr, mode Tmode_t, dev uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v ver=%v fd=%v path=%v mode=%v dev=%v, (%v:)", tls, ver, fd, path, mode, dev, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xmknodat(tls, fd, path, mode, *(*Tdev_t)(unsafe.Pointer(dev))) +} + +func Xchmod(tls *TLS, path uintptr, mode Tmode_t) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v mode=%v, (%v:)", tls, path, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_fchmodat), int64(-Int32FromInt32(100)), int64(path), int64(mode))))) +} + +func Xfchmod(tls *TLS, fd int32, mode Tmode_t) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v mode=%v, (%v:)", tls, fd, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var ret int32 + var _ /* buf at bp+0 */ [27]uint8 + _ = ret + ret = int32(X__syscall2(tls, int64(SYS_fchmod), int64(fd), int64(mode))) + if ret != -int32(EBADF) || X__syscall2(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_GETFD))) < 0 { + return int32(X__syscall_ret(tls, uint64(ret))) + } + X__procfdname(tls, bp, uint32(fd)) + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_fchmodat), int64(-Int32FromInt32(100)), int64(bp), int64(mode))))) +} + +func Xfchmodat(tls *TLS, fd int32, path uintptr, mode Tmode_t, flag int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v path=%v mode=%v flag=%v, (%v:)", tls, fd, path, mode, flag, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(160) + defer tls.Free(160) + var fd2, ret, v1 int32 + var _ /* proc at bp+128 */ [27]uint8 + var _ /* st at bp+0 */ Tstat + _, _, _ = fd2, ret, v1 + if !(flag != 0) { + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_fchmodat), int64(fd), int64(path), int64(mode))))) + } + ret = int32(X__syscall4(tls, int64(SYS_fchmodat2), int64(fd), int64(path), int64(mode), int64(flag))) + if ret != -int32(ENOSYS) { + return int32(X__syscall_ret(tls, uint64(ret))) + } + if flag != int32(AT_SYMLINK_NOFOLLOW) { + return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EINVAL)))) + } + if Xfstatat(tls, fd, path, bp, flag) != 0 { + return -int32(1) + } + if (*(*Tstat)(unsafe.Pointer(bp))).Fst_mode&uint32(S_IFMT) == uint32(S_IFLNK) { + return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EOPNOTSUPP)))) + } + v1 = int32(X__syscall3(tls, int64(SYS_openat), int64(fd), int64(path), int64(Int32FromInt32(O_RDONLY)|Int32FromInt32(O_PATH)|Int32FromInt32(O_NOFOLLOW)|Int32FromInt32(O_NOCTTY)|Int32FromInt32(O_CLOEXEC)))) + fd2 = v1 + if v1 < 0 { + if fd2 == -int32(ELOOP) { + return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EOPNOTSUPP)))) + } + return int32(X__syscall_ret(tls, uint64(fd2))) + } + X__procfdname(tls, bp+128, uint32(fd2)) + ret = Xstat(tls, bp+128, bp) + if !(ret != 0) { + if (*(*Tstat)(unsafe.Pointer(bp))).Fst_mode&uint32(S_IFMT) == uint32(S_IFLNK) { + ret = int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EOPNOTSUPP)))) + } else { + ret = int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_fchmodat), int64(-Int32FromInt32(100)), int64(bp+128), int64(mode))))) + } + } + X__syscall1(tls, int64(SYS_close), int64(fd2)) + return ret +} + +func X__fstat(tls *TLS, fd int32, st uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v st=%v, (%v:)", tls, fd, st, origin(2)) + defer func() { trc("-> %v", r) }() + } + if fd < 0 { + return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EBADF)))) + } + return X__fstatat(tls, fd, __ccgo_ts, st, int32(AT_EMPTY_PATH)) +} + +func Xfstat(tls *TLS, fd int32, st uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v st=%v, (%v:)", tls, fd, st, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__fstat(tls, fd, st) +} + +type Tstatx1 = struct { + Fstx_mask Tuint32_t + Fstx_blksize Tuint32_t + Fstx_attributes Tuint64_t + Fstx_nlink Tuint32_t + Fstx_uid Tuint32_t + Fstx_gid Tuint32_t + Fstx_mode Tuint16_t + Fpad1 Tuint16_t + Fstx_ino Tuint64_t + Fstx_size Tuint64_t + Fstx_blocks Tuint64_t + Fstx_attributes_mask Tuint64_t + Fstx_atime struct { + Ftv_sec Tint64_t + Ftv_nsec Tuint32_t + Fpad Tint32_t + } + Fstx_btime struct { + Ftv_sec Tint64_t + Ftv_nsec Tuint32_t + Fpad Tint32_t + } + Fstx_ctime struct { + Ftv_sec Tint64_t + Ftv_nsec Tuint32_t + Fpad Tint32_t + } + Fstx_mtime struct { + Ftv_sec Tint64_t + Ftv_nsec Tuint32_t + Fpad Tint32_t + } + Fstx_rdev_major Tuint32_t + Fstx_rdev_minor Tuint32_t + Fstx_dev_major Tuint32_t + Fstx_dev_minor Tuint32_t + Fspare [14]Tuint64_t +} + +func _fstatat_statx(tls *TLS, fd int32, path uintptr, st uintptr, flag int32) (r int32) { + bp := tls.Alloc(256) + defer tls.Free(256) + var ret int32 + var _ /* stx at bp+0 */ Tstatx1 + _ = ret + flag |= int32(AT_NO_AUTOMOUNT) + ret = int32(X__syscall5(tls, int64(SYS_statx), int64(fd), int64(path), int64(flag), int64(Int32FromInt32(0x7ff)), int64(bp))) + if ret != 0 { + return ret + } + *(*Tstat)(unsafe.Pointer(st)) = Tstat{ + Fst_dev: uint64((*(*Tstatx1)(unsafe.Pointer(bp))).Fstx_dev_major)&Uint64FromUint64(0xfffff000)<= 0 && !(*(*uint8)(unsafe.Pointer(path)) != 0) { + ret = int32(X__syscall2(tls, int64(SYS_fstat), int64(fd), int64(bp))) + if ret == -int32(EBADF) && X__syscall2(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_GETFD))) >= 0 { + ret = int32(X__syscall4(tls, int64(SYS_newfstatat), int64(fd), int64(path), int64(bp), int64(flag))) + if ret == -int32(EINVAL) { + X__procfdname(tls, bp+128, uint32(fd)) + ret = int32(X__syscall4(tls, int64(SYS_newfstatat), int64(-Int32FromInt32(100)), int64(bp+128), int64(bp), int64(Int32FromInt32(0)))) + } + } + } else { + ret = int32(X__syscall4(tls, int64(SYS_newfstatat), int64(fd), int64(path), int64(bp), int64(flag))) + } + if ret != 0 { + return ret + } + *(*Tstat)(unsafe.Pointer(st)) = Tstat{ + Fst_dev: (*(*Tkstat)(unsafe.Pointer(bp))).Fst_dev, + Fst_ino: (*(*Tkstat)(unsafe.Pointer(bp))).Fst_ino, + Fst_mode: (*(*Tkstat)(unsafe.Pointer(bp))).Fst_mode, + Fst_nlink: (*(*Tkstat)(unsafe.Pointer(bp))).Fst_nlink, + Fst_uid: (*(*Tkstat)(unsafe.Pointer(bp))).Fst_uid, + Fst_gid: (*(*Tkstat)(unsafe.Pointer(bp))).Fst_gid, + Fst_rdev: (*(*Tkstat)(unsafe.Pointer(bp))).Fst_rdev, + Fst_size: (*(*Tkstat)(unsafe.Pointer(bp))).Fst_size, + Fst_blksize: (*(*Tkstat)(unsafe.Pointer(bp))).Fst_blksize, + Fst_blocks: (*(*Tkstat)(unsafe.Pointer(bp))).Fst_blocks, + Fst_atim: Ttimespec{ + Ftv_sec: (*(*Tkstat)(unsafe.Pointer(bp))).Fst_atime_sec, + Ftv_nsec: (*(*Tkstat)(unsafe.Pointer(bp))).Fst_atime_nsec, + }, + Fst_mtim: Ttimespec{ + Ftv_sec: (*(*Tkstat)(unsafe.Pointer(bp))).Fst_mtime_sec, + Ftv_nsec: (*(*Tkstat)(unsafe.Pointer(bp))).Fst_mtime_nsec, + }, + Fst_ctim: Ttimespec{ + Ftv_sec: (*(*Tkstat)(unsafe.Pointer(bp))).Fst_ctime_sec, + Ftv_nsec: (*(*Tkstat)(unsafe.Pointer(bp))).Fst_ctime_nsec, + }, + } + return 0 +} + +func X__fstatat(tls *TLS, fd int32, path uintptr, st uintptr, flag int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v path=%v st=%v flag=%v, (%v:)", tls, fd, path, st, flag, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ret int32 + _ = ret + if uint64(8) < uint64(8) { + ret = _fstatat_statx(tls, fd, path, st, flag) + if ret != -int32(ENOSYS) { + return int32(X__syscall_ret(tls, uint64(ret))) + } + } + ret = _fstatat_kstat(tls, fd, path, st, flag) + return int32(X__syscall_ret(tls, uint64(ret))) +} + +func Xfstatat(tls *TLS, fd int32, path uintptr, st uintptr, flag int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v path=%v st=%v flag=%v, (%v:)", tls, fd, path, st, flag, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__fstatat(tls, fd, path, st, flag) +} + +func Xfutimens(tls *TLS, fd int32, times uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v times=%v, (%v:)", tls, fd, times, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xutimensat(tls, fd, uintptr(0), times, 0) +} + +func X__futimesat(tls *TLS, dirfd int32, pathname uintptr, times uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v dirfd=%v pathname=%v times=%v, (%v:)", tls, dirfd, pathname, times, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var i int32 + var v2 uintptr + var _ /* ts at bp+0 */ [2]Ttimespec + _, _ = i, v2 + if times != 0 { + i = 0 + for { + if !(i < int32(2)) { + break + } + if uint64((*(*Ttimeval)(unsafe.Pointer(times + uintptr(i)*16))).Ftv_usec) >= uint64(1000000) { + return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EINVAL)))) + } + (*(*[2]Ttimespec)(unsafe.Pointer(bp)))[i].Ftv_sec = (*(*Ttimeval)(unsafe.Pointer(times + uintptr(i)*16))).Ftv_sec + (*(*[2]Ttimespec)(unsafe.Pointer(bp)))[i].Ftv_nsec = (*(*Ttimeval)(unsafe.Pointer(times + uintptr(i)*16))).Ftv_usec * int64(1000) + goto _1 + _1: + ; + i++ + } + } + if times != 0 { + v2 = bp + } else { + v2 = uintptr(0) + } + return Xutimensat(tls, dirfd, pathname, v2, 0) +} + +func Xfutimesat(tls *TLS, dirfd int32, pathname uintptr, times uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v dirfd=%v pathname=%v times=%v, (%v:)", tls, dirfd, pathname, times, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__futimesat(tls, dirfd, pathname, times) +} + +func Xlchmod(tls *TLS, path uintptr, mode Tmode_t) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v mode=%v, (%v:)", tls, path, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfchmodat(tls, -int32(100), path, mode, int32(AT_SYMLINK_NOFOLLOW)) +} + +func Xlstat(tls *TLS, path uintptr, buf uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v buf=%v, (%v:)", tls, path, buf, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfstatat(tls, -int32(100), path, buf, int32(AT_SYMLINK_NOFOLLOW)) +} + +func Xmkdir(tls *TLS, path uintptr, mode Tmode_t) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v mode=%v, (%v:)", tls, path, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_mkdirat), int64(-Int32FromInt32(100)), int64(path), int64(mode))))) +} + +func Xmkdirat(tls *TLS, fd int32, path uintptr, mode Tmode_t) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v path=%v mode=%v, (%v:)", tls, fd, path, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_mkdirat), int64(fd), int64(path), int64(mode))))) +} + +func Xmkfifo(tls *TLS, path uintptr, mode Tmode_t) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v mode=%v, (%v:)", tls, path, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xmknod(tls, path, mode|uint32(S_IFIFO), uint64(0)) +} + +func Xmkfifoat(tls *TLS, fd int32, path uintptr, mode Tmode_t) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v path=%v mode=%v, (%v:)", tls, fd, path, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xmknodat(tls, fd, path, mode|uint32(S_IFIFO), uint64(0)) +} + +func Xmknod(tls *TLS, path uintptr, mode Tmode_t, dev Tdev_t) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v mode=%v dev=%v, (%v:)", tls, path, mode, dev, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_mknodat), int64(-Int32FromInt32(100)), int64(path), int64(mode), int64(dev))))) +} + +func Xmknodat(tls *TLS, fd int32, path uintptr, mode Tmode_t, dev Tdev_t) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v path=%v mode=%v dev=%v, (%v:)", tls, fd, path, mode, dev, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_mknodat), int64(fd), int64(path), int64(mode), int64(dev))))) +} + +func Xstat(tls *TLS, path uintptr, buf uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v buf=%v, (%v:)", tls, path, buf, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfstatat(tls, -int32(100), path, buf, 0) +} + +func ___statfs(tls *TLS, path uintptr, buf uintptr) (r int32) { + *(*Tstatfs)(unsafe.Pointer(buf)) = Tstatfs{} + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_statfs), int64(path), int64(buf))))) +} + +func Xfstatfs(tls *TLS, fd int32, buf uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v buf=%v, (%v:)", tls, fd, buf, origin(2)) + defer func() { trc("-> %v", r) }() + } + *(*Tstatfs)(unsafe.Pointer(buf)) = Tstatfs{} + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_fstatfs), int64(fd), int64(buf))))) +} + +func _fixup(tls *TLS, out uintptr, in uintptr) { + var v1 uint64 + _ = v1 + *(*Tstatvfs)(unsafe.Pointer(out)) = Tstatvfs{} + (*Tstatvfs)(unsafe.Pointer(out)).Ff_bsize = (*Tstatfs)(unsafe.Pointer(in)).Ff_bsize + if (*Tstatfs)(unsafe.Pointer(in)).Ff_frsize != 0 { + v1 = (*Tstatfs)(unsafe.Pointer(in)).Ff_frsize + } else { + v1 = (*Tstatfs)(unsafe.Pointer(in)).Ff_bsize + } + (*Tstatvfs)(unsafe.Pointer(out)).Ff_frsize = v1 + (*Tstatvfs)(unsafe.Pointer(out)).Ff_blocks = (*Tstatfs)(unsafe.Pointer(in)).Ff_blocks + (*Tstatvfs)(unsafe.Pointer(out)).Ff_bfree = (*Tstatfs)(unsafe.Pointer(in)).Ff_bfree + (*Tstatvfs)(unsafe.Pointer(out)).Ff_bavail = (*Tstatfs)(unsafe.Pointer(in)).Ff_bavail + (*Tstatvfs)(unsafe.Pointer(out)).Ff_files = (*Tstatfs)(unsafe.Pointer(in)).Ff_files + (*Tstatvfs)(unsafe.Pointer(out)).Ff_ffree = (*Tstatfs)(unsafe.Pointer(in)).Ff_ffree + (*Tstatvfs)(unsafe.Pointer(out)).Ff_favail = (*Tstatfs)(unsafe.Pointer(in)).Ff_ffree + (*Tstatvfs)(unsafe.Pointer(out)).Ff_fsid = uint64(*(*int32)(unsafe.Pointer(in + 56))) + (*Tstatvfs)(unsafe.Pointer(out)).Ff_flag = (*Tstatfs)(unsafe.Pointer(in)).Ff_flags + (*Tstatvfs)(unsafe.Pointer(out)).Ff_namemax = (*Tstatfs)(unsafe.Pointer(in)).Ff_namelen + (*Tstatvfs)(unsafe.Pointer(out)).Ff_type = uint32((*Tstatfs)(unsafe.Pointer(in)).Ff_type) +} + +func Xstatvfs(tls *TLS, path uintptr, buf uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v buf=%v, (%v:)", tls, path, buf, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(128) + defer tls.Free(128) + var _ /* kbuf at bp+0 */ Tstatfs + if ___statfs(tls, path, bp) < 0 { + return -int32(1) + } + _fixup(tls, buf, bp) + return 0 +} + +func Xfstatvfs(tls *TLS, fd int32, buf uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v buf=%v, (%v:)", tls, fd, buf, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(128) + defer tls.Free(128) + var _ /* kbuf at bp+0 */ Tstatfs + if Xfstatfs(tls, fd, bp) < 0 { + return -int32(1) + } + _fixup(tls, buf, bp) + return 0 +} + +func Xumask(tls *TLS, mode Tmode_t) (r Tmode_t) { + if __ccgo_strace { + trc("tls=%v mode=%v, (%v:)", tls, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uint32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_umask), int64(mode))))) +} + +func Xutimensat(tls *TLS, fd int32, path uintptr, times uintptr, flags int32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v fd=%v path=%v times=%v flags=%v, (%v:)", tls, fd, path, times, flags, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r int32 + _ = r + if times != 0 && (*(*Ttimespec)(unsafe.Pointer(times))).Ftv_nsec == int64(UTIME_NOW) && (*(*Ttimespec)(unsafe.Pointer(times + 1*16))).Ftv_nsec == int64(UTIME_NOW) { + times = uintptr(0) + } + r = int32(X__syscall4(tls, int64(SYS_utimensat), int64(fd), int64(path), int64(times), int64(flags))) + return int32(X__syscall_ret(tls, uint64(r))) +} + +func X__fclose_ca(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return (*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFILE)(unsafe.Pointer(f)).Fclose1})))(tls, f) +} + +func X__fdopen(tls *TLS, fd int32, mode uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v fd=%v mode=%v, (%v:)", tls, fd, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var f, v1 uintptr + var flags, v2 int32 + var _ /* wsz at bp+0 */ Twinsize + _, _, _, _ = f, flags, v1, v2 + /* Check for valid initial mode character */ + if !(Xstrchr(tls, __ccgo_ts+1504, int32(*(*uint8)(unsafe.Pointer(mode)))) != 0) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return uintptr(0) + } + /* Allocate FILE+buffer or fail */ + v1 = Xmalloc(tls, Uint64FromInt64(232)+Uint64FromInt32(UNGET)+Uint64FromInt32(BUFSIZ)) + f = v1 + if !(v1 != 0) { + return uintptr(0) + } + /* Zero-fill only the struct, not the buffer */ + Xmemset(tls, f, 0, uint64(232)) + /* Impose mode restrictions */ + if !(Xstrchr(tls, mode, int32('+')) != 0) { + if int32(*(*uint8)(unsafe.Pointer(mode))) == int32('r') { + v2 = int32(F_NOWR) + } else { + v2 = int32(F_NORD) + } + (*TFILE)(unsafe.Pointer(f)).Fflags = uint32(v2) + } + /* Apply close-on-exec flag */ + if Xstrchr(tls, mode, int32('e')) != 0 { + X__syscall3(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) + } + /* Set append mode on fd if opened for append */ + if int32(*(*uint8)(unsafe.Pointer(mode))) == int32('a') { + flags = int32(X__syscall2(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_GETFL)))) + if !(flags&Int32FromInt32(O_APPEND) != 0) { + X__syscall3(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_SETFL)), int64(flags|Int32FromInt32(O_APPEND))) + } + *(*uint32)(unsafe.Pointer(f)) |= uint32(F_APP) + } + (*TFILE)(unsafe.Pointer(f)).Ffd = fd + (*TFILE)(unsafe.Pointer(f)).Fbuf = f + uintptr(232) + uintptr(UNGET) + (*TFILE)(unsafe.Pointer(f)).Fbuf_size = uint64(BUFSIZ) + /* Activate line buffered mode for terminals */ + (*TFILE)(unsafe.Pointer(f)).Flbf = -int32(1) + if !((*TFILE)(unsafe.Pointer(f)).Fflags&Uint32FromInt32(F_NOWR) != 0) && !(X__syscall3(tls, int64(SYS_ioctl), int64(fd), int64(Int32FromInt32(TIOCGWINSZ)), int64(bp)) != 0) { + (*TFILE)(unsafe.Pointer(f)).Flbf = int32('\n') + } + /* Initialize op ptrs. No problem if some are unneeded. */ + (*TFILE)(unsafe.Pointer(f)).Fread = __ccgo_fp(X__stdio_read) + (*TFILE)(unsafe.Pointer(f)).Fwrite = __ccgo_fp(X__stdio_write) + (*TFILE)(unsafe.Pointer(f)).Fseek = __ccgo_fp(X__stdio_seek) + (*TFILE)(unsafe.Pointer(f)).Fclose1 = __ccgo_fp(X__stdio_close) + if !(X__libc.Fthreaded != 0) { + AtomicStorePInt32(f+140, -int32(1)) + } + /* Add new FILE to open file list */ + return X__ofl_add(tls, f) +} + +func Xfdopen(tls *TLS, fd int32, mode uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v fd=%v mode=%v, (%v:)", tls, fd, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__fdopen(tls, fd, mode) +} + +func X__fmodeflags(tls *TLS, mode uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v mode=%v, (%v:)", tls, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + var flags int32 + _ = flags + if Xstrchr(tls, mode, int32('+')) != 0 { + flags = int32(O_RDWR) + } else { + if int32(*(*uint8)(unsafe.Pointer(mode))) == int32('r') { + flags = O_RDONLY + } else { + flags = int32(O_WRONLY) + } + } + if Xstrchr(tls, mode, int32('x')) != 0 { + flags |= int32(O_EXCL) + } + if Xstrchr(tls, mode, int32('e')) != 0 { + flags |= int32(O_CLOEXEC) + } + if int32(*(*uint8)(unsafe.Pointer(mode))) != int32('r') { + flags |= int32(O_CREAT) + } + if int32(*(*uint8)(unsafe.Pointer(mode))) == int32('w') { + flags |= int32(O_TRUNC) + } + if int32(*(*uint8)(unsafe.Pointer(mode))) == int32('a') { + flags |= int32(O_APPEND) + } + return flags +} + +func X__fopen_rb_ca(tls *TLS, filename uintptr, f uintptr, buf uintptr, len1 Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v filename=%v f=%v buf=%v len1=%v, (%v:)", tls, filename, f, buf, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + Xmemset(tls, f, 0, uint64(232)) + (*TFILE)(unsafe.Pointer(f)).Ffd = int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_openat), int64(-Int32FromInt32(100)), int64(filename), int64(Int32FromInt32(O_RDONLY)|Int32FromInt32(O_CLOEXEC)|Int32FromInt32(O_LARGEFILE)))))) + if (*TFILE)(unsafe.Pointer(f)).Ffd < 0 { + return uintptr(0) + } + X__syscall3(tls, int64(SYS_fcntl), int64((*TFILE)(unsafe.Pointer(f)).Ffd), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) + (*TFILE)(unsafe.Pointer(f)).Fflags = uint32(Int32FromInt32(F_NOWR) | Int32FromInt32(F_PERM)) + (*TFILE)(unsafe.Pointer(f)).Fbuf = buf + uintptr(UNGET) + (*TFILE)(unsafe.Pointer(f)).Fbuf_size = len1 - uint64(UNGET) + (*TFILE)(unsafe.Pointer(f)).Fread = __ccgo_fp(X__stdio_read) + (*TFILE)(unsafe.Pointer(f)).Fseek = __ccgo_fp(X__stdio_seek) + (*TFILE)(unsafe.Pointer(f)).Fclose1 = __ccgo_fp(X__stdio_close) + AtomicStorePInt32(f+140, -int32(1)) + return f +} + +func X__overflow(tls *TLS, f uintptr, _c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v _c=%v, (%v:)", tls, f, _c, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1 uint8 + var v2, v3 uintptr + var _ /* c at bp+0 */ uint8 + _, _, _ = v1, v2, v3 + *(*uint8)(unsafe.Pointer(bp)) = uint8(_c) + if !((*TFILE)(unsafe.Pointer(f)).Fwend != 0) && X__towrite(tls, f) != 0 { + return -int32(1) + } + if (*TFILE)(unsafe.Pointer(f)).Fwpos != (*TFILE)(unsafe.Pointer(f)).Fwend && int32(*(*uint8)(unsafe.Pointer(bp))) != (*TFILE)(unsafe.Pointer(f)).Flbf { + v1 = *(*uint8)(unsafe.Pointer(bp)) + v3 = f + 40 + v2 = *(*uintptr)(unsafe.Pointer(v3)) + *(*uintptr)(unsafe.Pointer(v3))++ + *(*uint8)(unsafe.Pointer(v2)) = v1 + return int32(v1) + } + if (*(*func(*TLS, uintptr, uintptr, Tsize_t) Tsize_t)(unsafe.Pointer(&struct{ uintptr }{(*TFILE)(unsafe.Pointer(f)).Fwrite})))(tls, f, bp, uint64(1)) != uint64(1) { + return -int32(1) + } + return int32(*(*uint8)(unsafe.Pointer(bp))) +} + +func _dummy9(tls *TLS, fd int32) (r int32) { + return fd +} + +func X__stdio_close(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_close), int64(_dummy9(tls, (*TFILE)(unsafe.Pointer(f)).Ffd)))))) +} + +var _dummy_file = uintptr(0) + +func _close_file(tls *TLS, f uintptr) { + if !(f != 0) { + return + } + if AtomicLoadPInt32(f+140) >= 0 { + ___lockfile(tls, f) + } + if (*TFILE)(unsafe.Pointer(f)).Fwpos != (*TFILE)(unsafe.Pointer(f)).Fwbase { + (*(*func(*TLS, uintptr, uintptr, Tsize_t) Tsize_t)(unsafe.Pointer(&struct{ uintptr }{(*TFILE)(unsafe.Pointer(f)).Fwrite})))(tls, f, uintptr(0), uint64(0)) + } + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend { + (*(*func(*TLS, uintptr, Toff_t, int32) Toff_t)(unsafe.Pointer(&struct{ uintptr }{(*TFILE)(unsafe.Pointer(f)).Fseek})))(tls, f, int64((*TFILE)(unsafe.Pointer(f)).Frpos)-int64((*TFILE)(unsafe.Pointer(f)).Frend), int32(1)) + } +} + +func X__stdio_exit(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + var f uintptr + _ = f + f = *(*uintptr)(unsafe.Pointer(X__ofl_lock(tls))) + for { + if !(f != 0) { + break + } + _close_file(tls, f) + goto _1 + _1: + ; + f = (*TFILE)(unsafe.Pointer(f)).Fnext + } + _close_file(tls, AtomicLoadPUintptr(uintptr(unsafe.Pointer(&X__stdin_used)))) + _close_file(tls, AtomicLoadPUintptr(uintptr(unsafe.Pointer(&X__stdout_used)))) + _close_file(tls, AtomicLoadPUintptr(uintptr(unsafe.Pointer(&X__stderr_used)))) +} + +func X__stdio_exit_needed(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + X__stdio_exit(tls) +} + +func X__stdio_read(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v f=%v buf=%v len1=%v, (%v:)", tls, f, buf, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var cnt Tssize_t + var v1 int64 + var v2 int32 + var v3, v4 uintptr + var _ /* iov at bp+0 */ [2]Tiovec + _, _, _, _, _ = cnt, v1, v2, v3, v4 + *(*[2]Tiovec)(unsafe.Pointer(bp)) = [2]Tiovec{ + 0: { + Fiov_base: buf, + Fiov_len: len1 - BoolUint64(!!((*TFILE)(unsafe.Pointer(f)).Fbuf_size != 0)), + }, + 1: { + Fiov_base: (*TFILE)(unsafe.Pointer(f)).Fbuf, + Fiov_len: (*TFILE)(unsafe.Pointer(f)).Fbuf_size, + }, + } + if (*(*[2]Tiovec)(unsafe.Pointer(bp)))[0].Fiov_len != 0 { + v1 = X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_readv), int64((*TFILE)(unsafe.Pointer(f)).Ffd), int64(bp), int64(Int32FromInt32(2))))) + } else { + v1 = X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_read), int64((*TFILE)(unsafe.Pointer(f)).Ffd), int64((*(*[2]Tiovec)(unsafe.Pointer(bp)))[int32(1)].Fiov_base), int64((*(*[2]Tiovec)(unsafe.Pointer(bp)))[int32(1)].Fiov_len)))) + } + cnt = v1 + if cnt <= 0 { + if cnt != 0 { + v2 = int32(F_ERR) + } else { + v2 = int32(F_EOF) + } + *(*uint32)(unsafe.Pointer(f)) |= uint32(v2) + return uint64(0) + } + if uint64(cnt) <= (*(*[2]Tiovec)(unsafe.Pointer(bp)))[0].Fiov_len { + return uint64(cnt) + } + cnt = Tssize_t(uint64(cnt) - (*(*[2]Tiovec)(unsafe.Pointer(bp)))[0].Fiov_len) + (*TFILE)(unsafe.Pointer(f)).Frpos = (*TFILE)(unsafe.Pointer(f)).Fbuf + (*TFILE)(unsafe.Pointer(f)).Frend = (*TFILE)(unsafe.Pointer(f)).Fbuf + uintptr(cnt) + if (*TFILE)(unsafe.Pointer(f)).Fbuf_size != 0 { + v4 = f + 8 + v3 = *(*uintptr)(unsafe.Pointer(v4)) + *(*uintptr)(unsafe.Pointer(v4))++ + *(*uint8)(unsafe.Pointer(buf + uintptr(len1-uint64(1)))) = *(*uint8)(unsafe.Pointer(v3)) + } + return len1 +} + +func X__stdio_seek(tls *TLS, f uintptr, off Toff_t, whence int32) (r Toff_t) { + if __ccgo_strace { + trc("tls=%v f=%v off=%v whence=%v, (%v:)", tls, f, off, whence, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__lseek(tls, (*TFILE)(unsafe.Pointer(f)).Ffd, off, whence) +} + +func X__stdio_write(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v f=%v buf=%v len1=%v, (%v:)", tls, f, buf, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var cnt Tssize_t + var iov, v2, v3, v4 uintptr + var iovcnt int32 + var rem Tsize_t + var v5 uint64 + var _ /* iovs at bp+0 */ [2]Tiovec + _, _, _, _, _, _, _, _ = cnt, iov, iovcnt, rem, v2, v3, v4, v5 + *(*[2]Tiovec)(unsafe.Pointer(bp)) = [2]Tiovec{ + 0: { + Fiov_base: (*TFILE)(unsafe.Pointer(f)).Fwbase, + Fiov_len: uint64(int64((*TFILE)(unsafe.Pointer(f)).Fwpos) - int64((*TFILE)(unsafe.Pointer(f)).Fwbase)), + }, + 1: { + Fiov_base: buf, + Fiov_len: len1, + }, + } + iov = bp + rem = (*(*Tiovec)(unsafe.Pointer(iov))).Fiov_len + (*(*Tiovec)(unsafe.Pointer(iov + 1*16))).Fiov_len + iovcnt = int32(2) + for { + cnt = X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_writev), int64((*TFILE)(unsafe.Pointer(f)).Ffd), int64(iov), int64(iovcnt)))) + if uint64(cnt) == rem { + (*TFILE)(unsafe.Pointer(f)).Fwend = (*TFILE)(unsafe.Pointer(f)).Fbuf + uintptr((*TFILE)(unsafe.Pointer(f)).Fbuf_size) + v2 = (*TFILE)(unsafe.Pointer(f)).Fbuf + (*TFILE)(unsafe.Pointer(f)).Fwbase = v2 + (*TFILE)(unsafe.Pointer(f)).Fwpos = v2 + return len1 + } + if cnt < 0 { + v4 = UintptrFromInt32(0) + (*TFILE)(unsafe.Pointer(f)).Fwend = v4 + v3 = v4 + (*TFILE)(unsafe.Pointer(f)).Fwbase = v3 + (*TFILE)(unsafe.Pointer(f)).Fwpos = v3 + *(*uint32)(unsafe.Pointer(f)) |= uint32(F_ERR) + if iovcnt == int32(2) { + v5 = uint64(0) + } else { + v5 = len1 - (*(*Tiovec)(unsafe.Pointer(iov))).Fiov_len + } + return v5 + } + rem -= uint64(cnt) + if uint64(cnt) > (*(*Tiovec)(unsafe.Pointer(iov))).Fiov_len { + cnt = Tssize_t(uint64(cnt) - (*(*Tiovec)(unsafe.Pointer(iov))).Fiov_len) + iov += 16 + iovcnt-- + } + (*(*Tiovec)(unsafe.Pointer(iov))).Fiov_base = (*(*Tiovec)(unsafe.Pointer(iov))).Fiov_base + uintptr(cnt) + (*(*Tiovec)(unsafe.Pointer(iov))).Fiov_len -= uint64(cnt) + goto _1 + _1: + } + return r +} + +func X__stdout_write(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v f=%v buf=%v len1=%v, (%v:)", tls, f, buf, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* wsz at bp+0 */ Twinsize + (*TFILE)(unsafe.Pointer(f)).Fwrite = __ccgo_fp(X__stdio_write) + if !((*TFILE)(unsafe.Pointer(f)).Fflags&Uint32FromInt32(F_SVB) != 0) && X__syscall3(tls, int64(SYS_ioctl), int64((*TFILE)(unsafe.Pointer(f)).Ffd), int64(Int32FromInt32(TIOCGWINSZ)), int64(bp)) != 0 { + (*TFILE)(unsafe.Pointer(f)).Flbf = -int32(1) + } + return X__stdio_write(tls, f, buf, len1) +} + +func X__toread(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1, v2, v3 uintptr + var v4 int32 + _, _, _, _ = v1, v2, v3, v4 + *(*int32)(unsafe.Pointer(f + 136)) |= (*TFILE)(unsafe.Pointer(f)).Fmode - int32(1) + if (*TFILE)(unsafe.Pointer(f)).Fwpos != (*TFILE)(unsafe.Pointer(f)).Fwbase { + (*(*func(*TLS, uintptr, uintptr, Tsize_t) Tsize_t)(unsafe.Pointer(&struct{ uintptr }{(*TFILE)(unsafe.Pointer(f)).Fwrite})))(tls, f, uintptr(0), uint64(0)) + } + v2 = UintptrFromInt32(0) + (*TFILE)(unsafe.Pointer(f)).Fwend = v2 + v1 = v2 + (*TFILE)(unsafe.Pointer(f)).Fwbase = v1 + (*TFILE)(unsafe.Pointer(f)).Fwpos = v1 + if (*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_NORD) != 0 { + *(*uint32)(unsafe.Pointer(f)) |= uint32(F_ERR) + return -int32(1) + } + v3 = (*TFILE)(unsafe.Pointer(f)).Fbuf + uintptr((*TFILE)(unsafe.Pointer(f)).Fbuf_size) + (*TFILE)(unsafe.Pointer(f)).Frend = v3 + (*TFILE)(unsafe.Pointer(f)).Frpos = v3 + if (*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_EOF) != 0 { + v4 = -int32(1) + } else { + v4 = 0 + } + return v4 +} + +func X__toread_needs_stdio_exit(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + X__stdio_exit_needed(tls) +} + +func X__towrite(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1, v2 uintptr + _, _ = v1, v2 + *(*int32)(unsafe.Pointer(f + 136)) |= (*TFILE)(unsafe.Pointer(f)).Fmode - int32(1) + if (*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_NOWR) != 0 { + *(*uint32)(unsafe.Pointer(f)) |= uint32(F_ERR) + return -int32(1) + } + /* Clear read buffer (easier than summoning nasal demons) */ + v1 = UintptrFromInt32(0) + (*TFILE)(unsafe.Pointer(f)).Frend = v1 + (*TFILE)(unsafe.Pointer(f)).Frpos = v1 + /* Activate write through the buffer. */ + v2 = (*TFILE)(unsafe.Pointer(f)).Fbuf + (*TFILE)(unsafe.Pointer(f)).Fwbase = v2 + (*TFILE)(unsafe.Pointer(f)).Fwpos = v2 + (*TFILE)(unsafe.Pointer(f)).Fwend = (*TFILE)(unsafe.Pointer(f)).Fbuf + uintptr((*TFILE)(unsafe.Pointer(f)).Fbuf_size) + return 0 +} + +func X__towrite_needs_stdio_exit(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + X__stdio_exit_needed(tls) +} + +/* This function assumes it will never be called if there is already + * data buffered for reading. */ + +func X__uflow(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* c at bp+0 */ uint8 + if !(X__toread(tls, f) != 0) && (*(*func(*TLS, uintptr, uintptr, Tsize_t) Tsize_t)(unsafe.Pointer(&struct{ uintptr }{(*TFILE)(unsafe.Pointer(f)).Fread})))(tls, f, bp, uint64(1)) == uint64(1) { + return int32(*(*uint8)(unsafe.Pointer(bp))) + } + return -int32(1) +} + +func Xasprintf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v fmt=%v va=%v, (%v:)", tls, s, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var ret int32 + _, _ = ap, ret + ap = va + ret = Xvasprintf(tls, s, fmt, ap) + _ = ap + return ret +} + +func Xclearerr(tls *TLS, f uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + } + var __need_unlock, v1 int32 + _, _ = __need_unlock, v1 + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + *(*uint32)(unsafe.Pointer(f)) &= uint32(^(Int32FromInt32(F_EOF) | Int32FromInt32(F_ERR))) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } +} + +func Xclearerr_unlocked(tls *TLS, f uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + } + Xclearerr(tls, f) +} + +func Xdprintf(tls *TLS, fd int32, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v fmt=%v va=%v, (%v:)", tls, fd, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var ret int32 + _, _ = ap, ret + ap = va + ret = Xvdprintf(tls, fd, fmt, ap) + _ = ap + return ret +} + +const FSETLOCKING_BYCALLER = 2 +const FSETLOCKING_INTERNAL = 1 +const FSETLOCKING_QUERY = 0 + +func X_flushlbf(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + Xfflush(tls, uintptr(0)) +} + +func X__fsetlocking(tls *TLS, f uintptr, type1 int32) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v type1=%v, (%v:)", tls, f, type1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return 0 +} + +func X__fwriting(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32((*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_NORD) != 0 || (*TFILE)(unsafe.Pointer(f)).Fwend != 0) +} + +func X__freading(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32((*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_NOWR) != 0 || (*TFILE)(unsafe.Pointer(f)).Frend != 0) +} + +func X__freadable(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(!((*TFILE)(unsafe.Pointer(f)).Fflags&Uint32FromInt32(F_NORD) != 0)) +} + +func X__fwritable(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32(!((*TFILE)(unsafe.Pointer(f)).Fflags&Uint32FromInt32(F_NOWR) != 0)) +} + +func X__flbf(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return BoolInt32((*TFILE)(unsafe.Pointer(f)).Flbf >= 0) +} + +func X__fbufsize(tls *TLS, f uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return (*TFILE)(unsafe.Pointer(f)).Fbuf_size +} + +func X__fpending(tls *TLS, f uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 int64 + _ = v1 + if (*TFILE)(unsafe.Pointer(f)).Fwend != 0 { + v1 = int64((*TFILE)(unsafe.Pointer(f)).Fwpos) - int64((*TFILE)(unsafe.Pointer(f)).Fwbase) + } else { + v1 = 0 + } + return uint64(v1) +} + +func X__fpurge(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1, v2, v3 uintptr + _, _, _ = v1, v2, v3 + if !(f != 0) { // libbsd fpurge test fails w/o this. + return int32(1) + } + v2 = UintptrFromInt32(0) + (*TFILE)(unsafe.Pointer(f)).Fwend = v2 + v1 = v2 + (*TFILE)(unsafe.Pointer(f)).Fwbase = v1 + (*TFILE)(unsafe.Pointer(f)).Fwpos = v1 + v3 = UintptrFromInt32(0) + (*TFILE)(unsafe.Pointer(f)).Frend = v3 + (*TFILE)(unsafe.Pointer(f)).Frpos = v3 + return 0 +} + +func Xfpurge(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__fpurge(tls, f) +} + +func X__freadahead(tls *TLS, f uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 int64 + _ = v1 + if (*TFILE)(unsafe.Pointer(f)).Frend != 0 { + v1 = int64((*TFILE)(unsafe.Pointer(f)).Frend) - int64((*TFILE)(unsafe.Pointer(f)).Frpos) + } else { + v1 = 0 + } + return uint64(v1) +} + +func X__freadptr(tls *TLS, f uintptr, sizep uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v sizep=%v, (%v:)", tls, f, sizep, origin(2)) + defer func() { trc("-> %v", r) }() + } + if (*TFILE)(unsafe.Pointer(f)).Frpos == (*TFILE)(unsafe.Pointer(f)).Frend { + return uintptr(0) + } + *(*Tsize_t)(unsafe.Pointer(sizep)) = uint64(int64((*TFILE)(unsafe.Pointer(f)).Frend) - int64((*TFILE)(unsafe.Pointer(f)).Frpos)) + return (*TFILE)(unsafe.Pointer(f)).Frpos +} + +func X__freadptrinc(tls *TLS, f uintptr, inc Tsize_t) { + if __ccgo_strace { + trc("tls=%v f=%v inc=%v, (%v:)", tls, f, inc, origin(2)) + } + *(*uintptr)(unsafe.Pointer(f + 8)) += uintptr(inc) +} + +func X__fseterr(tls *TLS, f uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + } + *(*uint32)(unsafe.Pointer(f)) |= uint32(F_ERR) +} + +func _dummy10(tls *TLS, f uintptr) { +} + +func Xfclose(tls *TLS, f uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var __need_unlock, r, v1 int32 + var head uintptr + _, _, _, _ = __need_unlock, head, r, v1 + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + r = Xfflush(tls, f) + r |= (*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFILE)(unsafe.Pointer(f)).Fclose1})))(tls, f) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + /* Past this point, f is closed and any further explict access + * to it is undefined. However, it still exists as an entry in + * the open file list and possibly in the thread's locked files + * list, if it was closed while explicitly locked. Functions + * which process these lists must tolerate dead FILE objects + * (which necessarily have inactive buffer pointers) without + * producing any side effects. */ + if (*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_PERM) != 0 { + return r + } + X__unlist_locked_file(tls, f) + head = X__ofl_lock(tls) + if (*TFILE)(unsafe.Pointer(f)).Fprev != 0 { + (*TFILE)(unsafe.Pointer((*TFILE)(unsafe.Pointer(f)).Fprev)).Fnext = (*TFILE)(unsafe.Pointer(f)).Fnext + } + if (*TFILE)(unsafe.Pointer(f)).Fnext != 0 { + (*TFILE)(unsafe.Pointer((*TFILE)(unsafe.Pointer(f)).Fnext)).Fprev = (*TFILE)(unsafe.Pointer(f)).Fprev + } + if *(*uintptr)(unsafe.Pointer(head)) == f { + *(*uintptr)(unsafe.Pointer(head)) = (*TFILE)(unsafe.Pointer(f)).Fnext + } + X__ofl_unlock(tls) + Xfree(tls, (*TFILE)(unsafe.Pointer(f)).Fgetln_buf) + Xfree(tls, f) + return r +} + +func Xfeof(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __need_unlock, ret, v1 int32 + _, _, _ = __need_unlock, ret, v1 + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + ret = BoolInt32(!!((*TFILE)(unsafe.Pointer(f)).Fflags&Uint32FromInt32(F_EOF) != 0)) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return ret +} + +func X_IO_feof_unlocked(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfeof(tls, f) +} + +func Xfeof_unlocked(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfeof(tls, f) +} + +func Xferror(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __need_unlock, ret, v1 int32 + _, _, _ = __need_unlock, ret, v1 + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + ret = BoolInt32(!!((*TFILE)(unsafe.Pointer(f)).Fflags&Uint32FromInt32(F_ERR) != 0)) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return ret +} + +func X_IO_ferror_unlocked(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xferror(tls, f) +} + +func Xferror_unlocked(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xferror(tls, f) +} + +// C documentation +// +// /* stdout.c will override this if linked */ +var _dummy11 = uintptr(0) + +func Xfflush(tls *TLS, f uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var __need_unlock, __need_unlock1, r, v2, v3 int32 + var v4, v5, v6 uintptr + _, _, _, _, _, _, _, _ = __need_unlock, __need_unlock1, r, v2, v3, v4, v5, v6 + if !(f != 0) { + r = 0 + if AtomicLoadPUintptr(uintptr(unsafe.Pointer(&X__stdout_used))) != 0 { + r |= Xfflush(tls, AtomicLoadPUintptr(uintptr(unsafe.Pointer(&X__stdout_used)))) + } + if AtomicLoadPUintptr(uintptr(unsafe.Pointer(&X__stderr_used))) != 0 { + r |= Xfflush(tls, AtomicLoadPUintptr(uintptr(unsafe.Pointer(&X__stderr_used)))) + } + f = *(*uintptr)(unsafe.Pointer(X__ofl_lock(tls))) + for { + if !(f != 0) { + break + } + if AtomicLoadPInt32(f+140) >= 0 { + v2 = ___lockfile(tls, f) + } else { + v2 = 0 + } + __need_unlock = v2 + if (*TFILE)(unsafe.Pointer(f)).Fwpos != (*TFILE)(unsafe.Pointer(f)).Fwbase { + r |= Xfflush(tls, f) + } + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + goto _1 + _1: + ; + f = (*TFILE)(unsafe.Pointer(f)).Fnext + } + X__ofl_unlock(tls) + return r + } + if AtomicLoadPInt32(f+140) >= 0 { + v3 = ___lockfile(tls, f) + } else { + v3 = 0 + } + __need_unlock1 = v3 + /* If writing, flush output */ + if (*TFILE)(unsafe.Pointer(f)).Fwpos != (*TFILE)(unsafe.Pointer(f)).Fwbase { + (*(*func(*TLS, uintptr, uintptr, Tsize_t) Tsize_t)(unsafe.Pointer(&struct{ uintptr }{(*TFILE)(unsafe.Pointer(f)).Fwrite})))(tls, f, uintptr(0), uint64(0)) + if !((*TFILE)(unsafe.Pointer(f)).Fwpos != 0) { + if __need_unlock1 != 0 { + ___unlockfile(tls, f) + } + return -int32(1) + } + } + /* If reading, sync position, per POSIX */ + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend { + (*(*func(*TLS, uintptr, Toff_t, int32) Toff_t)(unsafe.Pointer(&struct{ uintptr }{(*TFILE)(unsafe.Pointer(f)).Fseek})))(tls, f, int64((*TFILE)(unsafe.Pointer(f)).Frpos)-int64((*TFILE)(unsafe.Pointer(f)).Frend), int32(1)) + } + /* Clear read and write modes */ + v5 = UintptrFromInt32(0) + (*TFILE)(unsafe.Pointer(f)).Fwend = v5 + v4 = v5 + (*TFILE)(unsafe.Pointer(f)).Fwbase = v4 + (*TFILE)(unsafe.Pointer(f)).Fwpos = v4 + v6 = UintptrFromInt32(0) + (*TFILE)(unsafe.Pointer(f)).Frend = v6 + (*TFILE)(unsafe.Pointer(f)).Frpos = v6 + if __need_unlock1 != 0 { + ___unlockfile(tls, f) + } + return 0 +} + +func Xfflush_unlocked(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfflush(tls, f) +} + +func _locking_getc(tls *TLS, f uintptr) (r1 int32) { + var c, old, old1, r, v, v13, v16, v18, v2, v21, v22, v5, v7, v9 int32 + var v1, v10, v11, v12, v20 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, old, old1, r, v, v1, v10, v11, v12, v13, v16, v18, v2, v20, v21, v22, v5, v7, v9 + v1 = f + 140 + for { + // __asm__ __volatile__ ("ldaxr %w0,%1" : "=r"(v) : "Q"(*p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 5, __ccgo_ts+1508) + v5 = v + goto _6 + _6: + old = v5 + if old != 0 { + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+1508) + break + } + goto _4 + _4: + ; + // __asm__ __volatile__ ("stlxr %w0,%w2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 13, __ccgo_ts+1508) + v2 = BoolInt32(!(r != 0)) + goto _3 + _3: + ; + if !!(v2 != 0) { + break + } + } + v7 = old + goto _8 +_8: + if v7 != 0 { + ___lockfile(tls, f) + } + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend { + v11 = f + 8 + v10 = *(*uintptr)(unsafe.Pointer(v11)) + *(*uintptr)(unsafe.Pointer(v11))++ + v9 = int32(*(*uint8)(unsafe.Pointer(v10))) + } else { + v9 = X__uflow(tls, f) + } + c = v9 + v12 = f + 140 + for { + // __asm__ __volatile__ ("ldaxr %w0,%1" : "=r"(v) : "Q"(*p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 5, __ccgo_ts+1508) + v16 = v + goto _17 + _17: + old1 = v16 + goto _15 + _15: + ; + // __asm__ __volatile__ ("stlxr %w0,%w2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 13, __ccgo_ts+1508) + v13 = BoolInt32(!(r != 0)) + goto _14 + _14: + ; + if !!(v13 != 0) { + break + } + } + v18 = old1 + goto _19 +_19: + if v18&int32(MAYBE_WAITERS) != 0 { + v20 = f + 140 + v21 = int32(1) + v22 = int32(1) + if v22 != 0 { + v22 = int32(FUTEX_PRIVATE) + } + if v21 < Int32FromInt32(0) { + v21 = int32(INT_MAX) + } + _ = X__syscall3(tls, int64(SYS_futex), int64(v20), int64(Int32FromInt32(FUTEX_WAKE)|v22), int64(v21)) != int64(-int32(ENOSYS)) || X__syscall3(tls, int64(SYS_futex), int64(v20), int64(Int32FromInt32(FUTEX_WAKE)), int64(v21)) != 0 + } + return c +} + +func Xfgetc(tls *TLS, f1 uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f1=%v, (%v:)", tls, f1, origin(2)) + defer func() { trc("-> %v", r) }() + } + var l, v2, v4 int32 + var v1, v5, v6 uintptr + _, _, _, _, _, _ = l, v1, v2, v4, v5, v6 + v1 = f1 + l = AtomicLoadPInt32(v1 + 140) + if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Ftid { + if (*TFILE)(unsafe.Pointer(v1)).Frpos != (*TFILE)(unsafe.Pointer(v1)).Frend { + v6 = v1 + 8 + v5 = *(*uintptr)(unsafe.Pointer(v6)) + *(*uintptr)(unsafe.Pointer(v6))++ + v4 = int32(*(*uint8)(unsafe.Pointer(v5))) + } else { + v4 = X__uflow(tls, v1) + } + v2 = v4 + goto _3 + } + v2 = _locking_getc(tls, v1) + goto _3 +_3: + return v2 +} + +func Xfgetln(tls *TLS, f uintptr, plen uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v plen=%v, (%v:)", tls, f, plen, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var __need_unlock, v1, v2 int32 + var l, v8 Tssize_t + var ret, z, v3, v4, v5, v7 uintptr + var v6 bool + _, _, _, _, _, _, _, _, _, _, _, _ = __need_unlock, l, ret, z, v1, v2, v3, v4, v5, v6, v7, v8 + ret = uintptr(0) + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend { + v4 = f + 8 + v3 = *(*uintptr)(unsafe.Pointer(v4)) + *(*uintptr)(unsafe.Pointer(v4))++ + v2 = int32(*(*uint8)(unsafe.Pointer(v3))) + } else { + v2 = X__uflow(tls, f) + } + Xungetc(tls, v2, f) + if v6 = (*TFILE)(unsafe.Pointer(f)).Frend != 0; v6 { + v5 = Xmemchr(tls, (*TFILE)(unsafe.Pointer(f)).Frpos, int32('\n'), uint64(int64((*TFILE)(unsafe.Pointer(f)).Frend)-int64((*TFILE)(unsafe.Pointer(f)).Frpos))) + z = v5 + } + if v6 && v5 != 0 { + ret = (*TFILE)(unsafe.Pointer(f)).Frpos + z++ + v7 = z + *(*Tsize_t)(unsafe.Pointer(plen)) = uint64(int64(v7) - int64(ret)) + (*TFILE)(unsafe.Pointer(f)).Frpos = z + } else { + *(*[1]Tsize_t)(unsafe.Pointer(bp)) = [1]Tsize_t{} + v8 = Xgetline(tls, f+168, bp, f) + l = v8 + if v8 > 0 { + *(*Tsize_t)(unsafe.Pointer(plen)) = uint64(l) + ret = (*TFILE)(unsafe.Pointer(f)).Fgetln_buf + } + } + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return ret +} + +func Xfgetpos(tls *TLS, f uintptr, pos uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v pos=%v, (%v:)", tls, f, pos, origin(2)) + defer func() { trc("-> %v", r) }() + } + var off Toff_t + _ = off + off = X__ftello(tls, f) + if off < 0 { + return -int32(1) + } + *(*int64)(unsafe.Pointer(pos)) = off + return 0 +} + +func Xfgets(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v f=%v, (%v:)", tls, s, n, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __need_unlock, c, v1, v4, v5 int32 + var k Tsize_t + var p, z, v6, v7, v9 uintptr + var v2 int64 + var v3 uint64 + var v8 uint8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = __need_unlock, c, k, p, z, v1, v2, v3, v4, v5, v6, v7, v8, v9 + p = s + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + if n <= int32(1) { + *(*int32)(unsafe.Pointer(f + 136)) |= (*TFILE)(unsafe.Pointer(f)).Fmode - int32(1) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + if n < int32(1) { + return uintptr(0) + } + *(*uint8)(unsafe.Pointer(s)) = uint8(0) + return s + } + n-- + for n != 0 { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend { + z = Xmemchr(tls, (*TFILE)(unsafe.Pointer(f)).Frpos, int32('\n'), uint64(int64((*TFILE)(unsafe.Pointer(f)).Frend)-int64((*TFILE)(unsafe.Pointer(f)).Frpos))) + if z != 0 { + v2 = int64(z) - int64((*TFILE)(unsafe.Pointer(f)).Frpos) + int64(1) + } else { + v2 = int64((*TFILE)(unsafe.Pointer(f)).Frend) - int64((*TFILE)(unsafe.Pointer(f)).Frpos) + } + k = uint64(v2) + if k < uint64(n) { + v3 = k + } else { + v3 = uint64(n) + } + k = v3 + Xmemcpy(tls, p, (*TFILE)(unsafe.Pointer(f)).Frpos, k) + *(*uintptr)(unsafe.Pointer(f + 8)) += uintptr(k) + p += uintptr(k) + n = int32(uint64(n) - k) + if z != 0 || !(n != 0) { + break + } + } + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend { + v7 = f + 8 + v6 = *(*uintptr)(unsafe.Pointer(v7)) + *(*uintptr)(unsafe.Pointer(v7))++ + v5 = int32(*(*uint8)(unsafe.Pointer(v6))) + } else { + v5 = X__uflow(tls, f) + } + v4 = v5 + c = v4 + if v4 < 0 { + if p == s || !((*TFILE)(unsafe.Pointer(f)).Fflags&Uint32FromInt32(F_EOF) != 0) { + s = uintptr(0) + } + break + } + n-- + v8 = uint8(c) + v9 = p + p++ + *(*uint8)(unsafe.Pointer(v9)) = v8 + if int32(v8) == int32('\n') { + break + } + } + if s != 0 { + *(*uint8)(unsafe.Pointer(p)) = uint8(0) + } + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return s +} + +func Xfgets_unlocked(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v f=%v, (%v:)", tls, s, n, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfgets(tls, s, n, f) +} + +func ___fgetwc_unlocked_internal(tls *TLS, f uintptr) (r Twint_t) { + bp := tls.Alloc(32) + defer tls.Free(32) + var c, first, v1, v2 int32 + var l Tsize_t + var v3, v4 uintptr + var _ /* b at bp+16 */ uint8 + var _ /* st at bp+8 */ Tmbstate_t + var _ /* wc at bp+0 */ Twchar_t + _, _, _, _, _, _, _ = c, first, l, v1, v2, v3, v4 + /* Convert character from buffer if possible */ + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend { + l = uint64(Xmbtowc(tls, bp, (*TFILE)(unsafe.Pointer(f)).Frpos, uint64(int64((*TFILE)(unsafe.Pointer(f)).Frend)-int64((*TFILE)(unsafe.Pointer(f)).Frpos)))) + if l+uint64(1) >= uint64(1) { + *(*uintptr)(unsafe.Pointer(f + 8)) += uintptr(l + BoolUint64(!(l != 0))) /* l==0 means 1 byte, null */ + return *(*Twchar_t)(unsafe.Pointer(bp)) + } + } + /* Convert character byte-by-byte */ + *(*Tmbstate_t)(unsafe.Pointer(bp + 8)) = Tmbstate_t{} + first = int32(1) + for cond := true; cond; cond = l == uint64(-Int32FromInt32(2)) { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend { + v4 = f + 8 + v3 = *(*uintptr)(unsafe.Pointer(v4)) + *(*uintptr)(unsafe.Pointer(v4))++ + v2 = int32(*(*uint8)(unsafe.Pointer(v3))) + } else { + v2 = X__uflow(tls, f) + } + v1 = v2 + c = v1 + *(*uint8)(unsafe.Pointer(bp + 16)) = uint8(v1) + if c < 0 { + if !(first != 0) { + *(*uint32)(unsafe.Pointer(f)) |= uint32(F_ERR) + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EILSEQ) + } + return uint32(0xffffffff) + } + l = Xmbrtowc(tls, bp, bp+16, uint64(1), bp+8) + if l == uint64(-Int32FromInt32(1)) { + if !(first != 0) { + *(*uint32)(unsafe.Pointer(f)) |= uint32(F_ERR) + Xungetc(tls, int32(*(*uint8)(unsafe.Pointer(bp + 16))), f) + } + return uint32(0xffffffff) + } + first = 0 + } + return *(*Twchar_t)(unsafe.Pointer(bp)) +} + +func X__fgetwc_unlocked(tls *TLS, f uintptr) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var loc Tlocale_t + var ploc uintptr + var wc Twchar_t + _, _, _ = loc, ploc, wc + ploc = ___get_tp(tls) + 152 + loc = *(*Tlocale_t)(unsafe.Pointer(ploc)) + if (*TFILE)(unsafe.Pointer(f)).Fmode <= 0 { + Xfwide(tls, f, int32(1)) + } + *(*Tlocale_t)(unsafe.Pointer(ploc)) = (*TFILE)(unsafe.Pointer(f)).Flocale + wc = ___fgetwc_unlocked_internal(tls, f) + *(*Tlocale_t)(unsafe.Pointer(ploc)) = loc + return wc +} + +func Xfgetwc(tls *TLS, f uintptr) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __need_unlock, v1 int32 + var c Twint_t + _, _, _ = __need_unlock, c, v1 + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + c = X__fgetwc_unlocked(tls, f) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return c +} + +func Xfgetwc_unlocked(tls *TLS, f uintptr) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__fgetwc_unlocked(tls, f) +} + +func Xgetwc_unlocked(tls *TLS, f uintptr) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__fgetwc_unlocked(tls, f) +} + +func Xfgetws(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v f=%v, (%v:)", tls, s, n, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __need_unlock, v1, v2 int32 + var c Twint_t + var p, v4, v5 uintptr + _, _, _, _, _, _, _ = __need_unlock, c, p, v1, v2, v4, v5 + p = s + v1 = n + n-- + if !(v1 != 0) { + return s + } + if AtomicLoadPInt32(f+140) >= 0 { + v2 = ___lockfile(tls, f) + } else { + v2 = 0 + } + __need_unlock = v2 + for { + if !(n != 0) { + break + } + c = X__fgetwc_unlocked(tls, f) + if c == uint32(0xffffffff) { + break + } + v4 = p + p += 4 + *(*Twchar_t)(unsafe.Pointer(v4)) = c + if c == uint32('\n') { + break + } + goto _3 + _3: + ; + n-- + } + *(*Twchar_t)(unsafe.Pointer(p)) = uint32(0) + if (*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_ERR) != 0 { + p = s + } + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + if p == s { + v5 = UintptrFromInt32(0) + } else { + v5 = s + } + return v5 +} + +func Xfgetws_unlocked(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v f=%v, (%v:)", tls, s, n, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfgetws(tls, s, n, f) +} + +func Xfileno(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __need_unlock, fd, v1 int32 + _, _, _ = __need_unlock, fd, v1 + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + fd = (*TFILE)(unsafe.Pointer(f)).Ffd + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + if fd < 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EBADF) + return -int32(1) + } + return fd +} + +func Xfileno_unlocked(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfileno(tls, f) +} + +func Xflockfile(tls *TLS, f uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + } + if !(Xftrylockfile(tls, f) != 0) { + return + } + ___lockfile(tls, f) + X__register_locked_file(tls, f, ___get_tp(tls)) +} + +type Tcookie = struct { + Fpos Tsize_t + Flen1 Tsize_t + Fsize Tsize_t + Fbuf uintptr + Fmode int32 +} + +type Tmem_FILE = struct { + Ff TFILE + Fc Tcookie + Fbuf [1032]uint8 +} + +func _mseek(tls *TLS, f uintptr, off Toff_t, whence int32) (r Toff_t) { + bp := tls.Alloc(32) + defer tls.Free(32) + var base Tssize_t + var c uintptr + var v2 Tsize_t + _, _, _ = base, c, v2 + c = (*TFILE)(unsafe.Pointer(f)).Fcookie + if !(uint32(whence) > uint32(2)) { + goto _1 + } + goto fail +fail: + ; + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return int64(-int32(1)) +_1: + ; + *(*[3]Tsize_t)(unsafe.Pointer(bp)) = [3]Tsize_t{ + 1: (*Tcookie)(unsafe.Pointer(c)).Fpos, + 2: (*Tcookie)(unsafe.Pointer(c)).Flen1, + } + base = int64(*(*Tsize_t)(unsafe.Pointer(bp + uintptr(whence)*8))) + if off < -base || off > int64((*Tcookie)(unsafe.Pointer(c)).Fsize)-base { + goto fail + } + v2 = uint64(base + off) + (*Tcookie)(unsafe.Pointer(c)).Fpos = v2 + return int64(v2) +} + +func _mread(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { + var c uintptr + var rem Tsize_t + _, _ = c, rem + c = (*TFILE)(unsafe.Pointer(f)).Fcookie + rem = (*Tcookie)(unsafe.Pointer(c)).Flen1 - (*Tcookie)(unsafe.Pointer(c)).Fpos + if (*Tcookie)(unsafe.Pointer(c)).Fpos > (*Tcookie)(unsafe.Pointer(c)).Flen1 { + rem = uint64(0) + } + if len1 > rem { + len1 = rem + *(*uint32)(unsafe.Pointer(f)) |= uint32(F_EOF) + } + Xmemcpy(tls, buf, (*Tcookie)(unsafe.Pointer(c)).Fbuf+uintptr((*Tcookie)(unsafe.Pointer(c)).Fpos), len1) + *(*Tsize_t)(unsafe.Pointer(c)) += len1 + rem -= len1 + if rem > (*TFILE)(unsafe.Pointer(f)).Fbuf_size { + rem = (*TFILE)(unsafe.Pointer(f)).Fbuf_size + } + (*TFILE)(unsafe.Pointer(f)).Frpos = (*TFILE)(unsafe.Pointer(f)).Fbuf + (*TFILE)(unsafe.Pointer(f)).Frend = (*TFILE)(unsafe.Pointer(f)).Fbuf + uintptr(rem) + Xmemcpy(tls, (*TFILE)(unsafe.Pointer(f)).Frpos, (*Tcookie)(unsafe.Pointer(c)).Fbuf+uintptr((*Tcookie)(unsafe.Pointer(c)).Fpos), rem) + *(*Tsize_t)(unsafe.Pointer(c)) += rem + return len1 +} + +func _mwrite(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { + var c uintptr + var len2, rem Tsize_t + _, _, _ = c, len2, rem + c = (*TFILE)(unsafe.Pointer(f)).Fcookie + len2 = uint64(int64((*TFILE)(unsafe.Pointer(f)).Fwpos) - int64((*TFILE)(unsafe.Pointer(f)).Fwbase)) + if len2 != 0 { + (*TFILE)(unsafe.Pointer(f)).Fwpos = (*TFILE)(unsafe.Pointer(f)).Fwbase + if _mwrite(tls, f, (*TFILE)(unsafe.Pointer(f)).Fwpos, len2) < len2 { + return uint64(0) + } + } + if (*Tcookie)(unsafe.Pointer(c)).Fmode == int32('a') { + (*Tcookie)(unsafe.Pointer(c)).Fpos = (*Tcookie)(unsafe.Pointer(c)).Flen1 + } + rem = (*Tcookie)(unsafe.Pointer(c)).Fsize - (*Tcookie)(unsafe.Pointer(c)).Fpos + if len1 > rem { + len1 = rem + } + Xmemcpy(tls, (*Tcookie)(unsafe.Pointer(c)).Fbuf+uintptr((*Tcookie)(unsafe.Pointer(c)).Fpos), buf, len1) + *(*Tsize_t)(unsafe.Pointer(c)) += len1 + if (*Tcookie)(unsafe.Pointer(c)).Fpos > (*Tcookie)(unsafe.Pointer(c)).Flen1 { + (*Tcookie)(unsafe.Pointer(c)).Flen1 = (*Tcookie)(unsafe.Pointer(c)).Fpos + if (*Tcookie)(unsafe.Pointer(c)).Flen1 < (*Tcookie)(unsafe.Pointer(c)).Fsize { + *(*uint8)(unsafe.Pointer((*Tcookie)(unsafe.Pointer(c)).Fbuf + uintptr((*Tcookie)(unsafe.Pointer(c)).Flen1))) = uint8(0) + } else { + if (*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_NORD) != 0 && (*Tcookie)(unsafe.Pointer(c)).Fsize != 0 { + *(*uint8)(unsafe.Pointer((*Tcookie)(unsafe.Pointer(c)).Fbuf + uintptr((*Tcookie)(unsafe.Pointer(c)).Fsize-uint64(1)))) = uint8(0) + } + } + } + return len1 +} + +func _mclose(tls *TLS, m uintptr) (r int32) { + return 0 +} + +func Xfmemopen(tls *TLS, buf uintptr, size Tsize_t, mode uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v buf=%v size=%v mode=%v, (%v:)", tls, buf, size, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + var f uintptr + var plus, v2 int32 + var v1 uint64 + var v3 Tsize_t + _, _, _, _, _ = f, plus, v1, v2, v3 + plus = BoolInt32(!!(Xstrchr(tls, mode, int32('+')) != 0)) + if !(Xstrchr(tls, __ccgo_ts+1504, int32(*(*uint8)(unsafe.Pointer(mode)))) != 0) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return uintptr(0) + } + if !(buf != 0) && size > uint64(Int64FromInt64(INT64_MAX)) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOMEM) + return uintptr(0) + } + if buf != 0 { + v1 = uint64(0) + } else { + v1 = size + } + f = Xmalloc(tls, uint64(1304)+v1) + if !(f != 0) { + return uintptr(0) + } + Xmemset(tls, f, 0, uint64(UintptrFromInt32(0)+272)) + (*Tmem_FILE)(unsafe.Pointer(f)).Ff.Fcookie = f + 232 + (*Tmem_FILE)(unsafe.Pointer(f)).Ff.Ffd = -int32(1) + (*Tmem_FILE)(unsafe.Pointer(f)).Ff.Flbf = -int32(1) + (*Tmem_FILE)(unsafe.Pointer(f)).Ff.Fbuf = f + 272 + uintptr(UNGET) + (*Tmem_FILE)(unsafe.Pointer(f)).Ff.Fbuf_size = Uint64FromInt64(1032) - Uint64FromInt32(UNGET) + if !(buf != 0) { + buf = f + 1304 + Xmemset(tls, buf, 0, size) + } + (*Tmem_FILE)(unsafe.Pointer(f)).Fc.Fbuf = buf + (*Tmem_FILE)(unsafe.Pointer(f)).Fc.Fsize = size + (*Tmem_FILE)(unsafe.Pointer(f)).Fc.Fmode = int32(*(*uint8)(unsafe.Pointer(mode))) + if !(plus != 0) { + if int32(*(*uint8)(unsafe.Pointer(mode))) == int32('r') { + v2 = int32(F_NOWR) + } else { + v2 = int32(F_NORD) + } + (*Tmem_FILE)(unsafe.Pointer(f)).Ff.Fflags = uint32(v2) + } + if int32(*(*uint8)(unsafe.Pointer(mode))) == int32('r') { + (*Tmem_FILE)(unsafe.Pointer(f)).Fc.Flen1 = size + } else { + if int32(*(*uint8)(unsafe.Pointer(mode))) == int32('a') { + v3 = Xstrnlen(tls, buf, size) + (*Tmem_FILE)(unsafe.Pointer(f)).Fc.Fpos = v3 + (*Tmem_FILE)(unsafe.Pointer(f)).Fc.Flen1 = v3 + } else { + if plus != 0 { + *(*uint8)(unsafe.Pointer((*Tmem_FILE)(unsafe.Pointer(f)).Fc.Fbuf)) = uint8(0) + } + } + } + (*Tmem_FILE)(unsafe.Pointer(f)).Ff.Fread = __ccgo_fp(_mread) + (*Tmem_FILE)(unsafe.Pointer(f)).Ff.Fwrite = __ccgo_fp(_mwrite) + (*Tmem_FILE)(unsafe.Pointer(f)).Ff.Fseek = __ccgo_fp(_mseek) + (*Tmem_FILE)(unsafe.Pointer(f)).Ff.Fclose1 = __ccgo_fp(_mclose) + if !(X__libc.Fthreaded != 0) { + AtomicStorePInt32(f+140, -int32(1)) + } + return X__ofl_add(tls, f) +} + +func Xfopen(tls *TLS, filename uintptr, mode uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v filename=%v mode=%v, (%v:)", tls, filename, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + var f uintptr + var fd, flags int32 + _, _, _ = f, fd, flags + /* Check for valid initial mode character */ + if !(Xstrchr(tls, __ccgo_ts+1504, int32(*(*uint8)(unsafe.Pointer(mode)))) != 0) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return uintptr(0) + } + /* Compute the flags to pass to open() */ + flags = X__fmodeflags(tls, mode) + fd = int32(X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_openat), int64(-Int32FromInt32(100)), int64(filename), int64(flags|Int32FromInt32(O_LARGEFILE)), int64(Int32FromInt32(0666)))))) + if fd < 0 { + return uintptr(0) + } + if flags&int32(O_CLOEXEC) != 0 { + X__syscall3(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) + } + f = X__fdopen(tls, fd, mode) + if f != 0 { + return f + } + X__syscall1(tls, int64(SYS_close), int64(fd)) + return uintptr(0) +} + +type Tfcookie = struct { + Fcookie uintptr + Fiofuncs Tcookie_io_functions_t +} + +type Tcookie_FILE = struct { + Ff TFILE + Ffc Tfcookie + Fbuf [1032]uint8 +} + +func _cookieread(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { + var fc, v2, v3, v5 uintptr + var len2, readlen, remain, v1 Tsize_t + var ret Tssize_t + var v4 int32 + _, _, _, _, _, _, _, _, _, _ = fc, len2, readlen, remain, ret, v1, v2, v3, v4, v5 + fc = (*TFILE)(unsafe.Pointer(f)).Fcookie + ret = int64(-int32(1)) + remain = len1 + readlen = uint64(0) + len2 = len1 - BoolUint64(!!((*TFILE)(unsafe.Pointer(f)).Fbuf_size != 0)) + if !((*Tfcookie)(unsafe.Pointer(fc)).Fiofuncs.Fread != 0) { + goto bail + } + if len2 != 0 { + ret = (*(*func(*TLS, uintptr, uintptr, Tsize_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{(*Tfcookie)(unsafe.Pointer(fc)).Fiofuncs.Fread})))(tls, (*Tfcookie)(unsafe.Pointer(fc)).Fcookie, buf, len2) + if ret <= 0 { + goto bail + } + readlen += uint64(ret) + remain -= uint64(ret) + } + if !((*TFILE)(unsafe.Pointer(f)).Fbuf_size != 0) || remain > BoolUint64(!!((*TFILE)(unsafe.Pointer(f)).Fbuf_size != 0)) { + return readlen + } + (*TFILE)(unsafe.Pointer(f)).Frpos = (*TFILE)(unsafe.Pointer(f)).Fbuf + ret = (*(*func(*TLS, uintptr, uintptr, Tsize_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{(*Tfcookie)(unsafe.Pointer(fc)).Fiofuncs.Fread})))(tls, (*Tfcookie)(unsafe.Pointer(fc)).Fcookie, (*TFILE)(unsafe.Pointer(f)).Frpos, (*TFILE)(unsafe.Pointer(f)).Fbuf_size) + if ret <= 0 { + goto bail + } + (*TFILE)(unsafe.Pointer(f)).Frend = (*TFILE)(unsafe.Pointer(f)).Frpos + uintptr(ret) + v1 = readlen + readlen++ + v3 = f + 8 + v2 = *(*uintptr)(unsafe.Pointer(v3)) + *(*uintptr)(unsafe.Pointer(v3))++ + *(*uint8)(unsafe.Pointer(buf + uintptr(v1))) = *(*uint8)(unsafe.Pointer(v2)) + return readlen + goto bail +bail: + ; + if ret == 0 { + v4 = int32(F_EOF) + } else { + v4 = int32(F_ERR) + } + *(*uint32)(unsafe.Pointer(f)) |= uint32(v4) + v5 = (*TFILE)(unsafe.Pointer(f)).Fbuf + (*TFILE)(unsafe.Pointer(f)).Frend = v5 + (*TFILE)(unsafe.Pointer(f)).Frpos = v5 + return readlen +} + +func _cookiewrite(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { + var fc, v1, v2 uintptr + var len2 Tsize_t + var ret Tssize_t + _, _, _, _, _ = fc, len2, ret, v1, v2 + fc = (*TFILE)(unsafe.Pointer(f)).Fcookie + len2 = uint64(int64((*TFILE)(unsafe.Pointer(f)).Fwpos) - int64((*TFILE)(unsafe.Pointer(f)).Fwbase)) + if !((*Tfcookie)(unsafe.Pointer(fc)).Fiofuncs.Fwrite != 0) { + return len1 + } + if len2 != 0 { + (*TFILE)(unsafe.Pointer(f)).Fwpos = (*TFILE)(unsafe.Pointer(f)).Fwbase + if _cookiewrite(tls, f, (*TFILE)(unsafe.Pointer(f)).Fwpos, len2) < len2 { + return uint64(0) + } + } + ret = (*(*func(*TLS, uintptr, uintptr, Tsize_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{(*Tfcookie)(unsafe.Pointer(fc)).Fiofuncs.Fwrite})))(tls, (*Tfcookie)(unsafe.Pointer(fc)).Fcookie, buf, len1) + if ret < 0 { + v2 = UintptrFromInt32(0) + (*TFILE)(unsafe.Pointer(f)).Fwend = v2 + v1 = v2 + (*TFILE)(unsafe.Pointer(f)).Fwbase = v1 + (*TFILE)(unsafe.Pointer(f)).Fwpos = v1 + *(*uint32)(unsafe.Pointer(f)) |= uint32(F_ERR) + return uint64(0) + } + return uint64(ret) +} + +func _cookieseek(tls *TLS, f uintptr, _off Toff_t, whence int32) (r Toff_t) { + bp := tls.Alloc(16) + defer tls.Free(16) + *(*Toff_t)(unsafe.Pointer(bp)) = _off + var fc uintptr + var res int32 + _, _ = fc, res + fc = (*TFILE)(unsafe.Pointer(f)).Fcookie + if uint32(whence) > uint32(2) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return int64(-int32(1)) + } + if !((*Tfcookie)(unsafe.Pointer(fc)).Fiofuncs.Fseek != 0) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOPNOTSUPP) + return int64(-int32(1)) + } + res = (*(*func(*TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfcookie)(unsafe.Pointer(fc)).Fiofuncs.Fseek})))(tls, (*Tfcookie)(unsafe.Pointer(fc)).Fcookie, bp, whence) + if res < 0 { + return int64(res) + } + return *(*Toff_t)(unsafe.Pointer(bp)) +} + +func _cookieclose(tls *TLS, f uintptr) (r int32) { + var fc uintptr + _ = fc + fc = (*TFILE)(unsafe.Pointer(f)).Fcookie + if (*Tfcookie)(unsafe.Pointer(fc)).Fiofuncs.Fclose1 != 0 { + return (*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfcookie)(unsafe.Pointer(fc)).Fiofuncs.Fclose1})))(tls, (*Tfcookie)(unsafe.Pointer(fc)).Fcookie) + } + return 0 +} + +func Xfopencookie(tls *TLS, cookie uintptr, mode uintptr, iofuncs Tcookie_io_functions_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v cookie=%v mode=%v iofuncs=%v, (%v:)", tls, cookie, mode, iofuncs, origin(2)) + defer func() { trc("-> %v", r) }() + } + var f, v1 uintptr + var v2 int32 + _, _, _ = f, v1, v2 + /* Check for valid initial mode character */ + if !(Xstrchr(tls, __ccgo_ts+1504, int32(*(*uint8)(unsafe.Pointer(mode)))) != 0) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return uintptr(0) + } + /* Allocate FILE+fcookie+buffer or fail */ + v1 = Xmalloc(tls, uint64(1304)) + f = v1 + if !(v1 != 0) { + return uintptr(0) + } + /* Zero-fill only the struct, not the buffer */ + Xmemset(tls, f, 0, uint64(232)) + /* Impose mode restrictions */ + if !(Xstrchr(tls, mode, int32('+')) != 0) { + if int32(*(*uint8)(unsafe.Pointer(mode))) == int32('r') { + v2 = int32(F_NOWR) + } else { + v2 = int32(F_NORD) + } + (*Tcookie_FILE)(unsafe.Pointer(f)).Ff.Fflags = uint32(v2) + } + /* Set up our fcookie */ + (*Tcookie_FILE)(unsafe.Pointer(f)).Ffc.Fcookie = cookie + (*Tcookie_FILE)(unsafe.Pointer(f)).Ffc.Fiofuncs = iofuncs + (*Tcookie_FILE)(unsafe.Pointer(f)).Ff.Ffd = -int32(1) + (*Tcookie_FILE)(unsafe.Pointer(f)).Ff.Fcookie = f + 232 + (*Tcookie_FILE)(unsafe.Pointer(f)).Ff.Fbuf = f + 272 + uintptr(UNGET) + (*Tcookie_FILE)(unsafe.Pointer(f)).Ff.Fbuf_size = Uint64FromInt64(1032) - Uint64FromInt32(UNGET) + (*Tcookie_FILE)(unsafe.Pointer(f)).Ff.Flbf = -int32(1) + /* Initialize op ptrs. No problem if some are unneeded. */ + (*Tcookie_FILE)(unsafe.Pointer(f)).Ff.Fread = __ccgo_fp(_cookieread) + (*Tcookie_FILE)(unsafe.Pointer(f)).Ff.Fwrite = __ccgo_fp(_cookiewrite) + (*Tcookie_FILE)(unsafe.Pointer(f)).Ff.Fseek = __ccgo_fp(_cookieseek) + (*Tcookie_FILE)(unsafe.Pointer(f)).Ff.Fclose1 = __ccgo_fp(_cookieclose) + /* Add new FILE to open file list */ + return X__ofl_add(tls, f) +} + +func Xfprintf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v fmt=%v va=%v, (%v:)", tls, f, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var ret int32 + _, _ = ap, ret + ap = va + ret = Xvfprintf(tls, f, fmt, ap) + _ = ap + return ret +} + +func _locking_putc(tls *TLS, c int32, f uintptr) (r1 int32) { + var old, old1, r, v, v14, v17, v19, v2, v22, v23, v5, v7, v9 int32 + var v1, v11, v12, v13, v21 uintptr + var v10 uint8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = old, old1, r, v, v1, v10, v11, v12, v13, v14, v17, v19, v2, v21, v22, v23, v5, v7, v9 + v1 = f + 140 + for { + // __asm__ __volatile__ ("ldaxr %w0,%1" : "=r"(v) : "Q"(*p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 5, __ccgo_ts+1521) + v5 = v + goto _6 + _6: + old = v5 + if old != 0 { + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+1521) + break + } + goto _4 + _4: + ; + // __asm__ __volatile__ ("stlxr %w0,%w2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 13, __ccgo_ts+1521) + v2 = BoolInt32(!(r != 0)) + goto _3 + _3: + ; + if !!(v2 != 0) { + break + } + } + v7 = old + goto _8 +_8: + if v7 != 0 { + ___lockfile(tls, f) + } + if int32(uint8(c)) != (*TFILE)(unsafe.Pointer(f)).Flbf && (*TFILE)(unsafe.Pointer(f)).Fwpos != (*TFILE)(unsafe.Pointer(f)).Fwend { + v10 = uint8(c) + v12 = f + 40 + v11 = *(*uintptr)(unsafe.Pointer(v12)) + *(*uintptr)(unsafe.Pointer(v12))++ + *(*uint8)(unsafe.Pointer(v11)) = v10 + v9 = int32(v10) + } else { + v9 = X__overflow(tls, f, int32(uint8(c))) + } + c = v9 + v13 = f + 140 + for { + // __asm__ __volatile__ ("ldaxr %w0,%1" : "=r"(v) : "Q"(*p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 5, __ccgo_ts+1521) + v17 = v + goto _18 + _18: + old1 = v17 + goto _16 + _16: + ; + // __asm__ __volatile__ ("stlxr %w0,%w2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 13, __ccgo_ts+1521) + v14 = BoolInt32(!(r != 0)) + goto _15 + _15: + ; + if !!(v14 != 0) { + break + } + } + v19 = old1 + goto _20 +_20: + if v19&int32(MAYBE_WAITERS) != 0 { + v21 = f + 140 + v22 = int32(1) + v23 = int32(1) + if v23 != 0 { + v23 = int32(FUTEX_PRIVATE) + } + if v22 < Int32FromInt32(0) { + v22 = int32(INT_MAX) + } + _ = X__syscall3(tls, int64(SYS_futex), int64(v21), int64(Int32FromInt32(FUTEX_WAKE)|v23), int64(v22)) != int64(-int32(ENOSYS)) || X__syscall3(tls, int64(SYS_futex), int64(v21), int64(Int32FromInt32(FUTEX_WAKE)), int64(v22)) != 0 + } + return c +} + +func Xfputc(tls *TLS, c1 int32, f1 uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v c1=%v f1=%v, (%v:)", tls, c1, f1, origin(2)) + defer func() { trc("-> %v", r) }() + } + var l, v1, v3, v5 int32 + var v2, v7, v8 uintptr + var v6 uint8 + _, _, _, _, _, _, _, _ = l, v1, v2, v3, v5, v6, v7, v8 + v1 = c1 + v2 = f1 + l = AtomicLoadPInt32(v2 + 140) + if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Ftid { + if int32(uint8(v1)) != (*TFILE)(unsafe.Pointer(v2)).Flbf && (*TFILE)(unsafe.Pointer(v2)).Fwpos != (*TFILE)(unsafe.Pointer(v2)).Fwend { + v6 = uint8(v1) + v8 = v2 + 40 + v7 = *(*uintptr)(unsafe.Pointer(v8)) + *(*uintptr)(unsafe.Pointer(v8))++ + *(*uint8)(unsafe.Pointer(v7)) = v6 + v5 = int32(v6) + } else { + v5 = X__overflow(tls, v2, int32(uint8(v1))) + } + v3 = v5 + goto _4 + } + v3 = _locking_putc(tls, v1, v2) + goto _4 +_4: + return v3 +} + +func Xfputs(tls *TLS, s uintptr, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v f=%v, (%v:)", tls, s, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var l Tsize_t + _ = l + l = Xstrlen(tls, s) + return BoolInt32(Xfwrite(tls, s, uint64(1), l, f) == l) - int32(1) +} + +func Xfputs_unlocked(tls *TLS, s uintptr, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v f=%v, (%v:)", tls, s, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfputs(tls, s, f) +} + +func X__fputwc_unlocked(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v c=%v f=%v, (%v:)", tls, c, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var l, v1 int32 + var loc Tlocale_t + var ploc, v3, v4 uintptr + var v2 uint8 + var _ /* mbc at bp+0 */ [4]uint8 + _, _, _, _, _, _, _ = l, loc, ploc, v1, v2, v3, v4 + ploc = ___get_tp(tls) + 152 + loc = *(*Tlocale_t)(unsafe.Pointer(ploc)) + if (*TFILE)(unsafe.Pointer(f)).Fmode <= 0 { + Xfwide(tls, f, int32(1)) + } + *(*Tlocale_t)(unsafe.Pointer(ploc)) = (*TFILE)(unsafe.Pointer(f)).Flocale + if BoolInt32(c < uint32(128)) != 0 { + if int32(uint8(c)) != (*TFILE)(unsafe.Pointer(f)).Flbf && (*TFILE)(unsafe.Pointer(f)).Fwpos != (*TFILE)(unsafe.Pointer(f)).Fwend { + v2 = uint8(c) + v4 = f + 40 + v3 = *(*uintptr)(unsafe.Pointer(v4)) + *(*uintptr)(unsafe.Pointer(v4))++ + *(*uint8)(unsafe.Pointer(v3)) = v2 + v1 = int32(v2) + } else { + v1 = X__overflow(tls, f, int32(uint8(c))) + } + c = uint32(v1) + } else { + if (*TFILE)(unsafe.Pointer(f)).Fwpos+uintptr(MB_LEN_MAX) < (*TFILE)(unsafe.Pointer(f)).Fwend { + l = Xwctomb(tls, (*TFILE)(unsafe.Pointer(f)).Fwpos, c) + if l < 0 { + c = uint32(0xffffffff) + } else { + *(*uintptr)(unsafe.Pointer(f + 40)) += uintptr(l) + } + } else { + l = Xwctomb(tls, bp, c) + if l < 0 || X__fwritex(tls, bp, uint64(l), f) < uint64(l) { + c = uint32(0xffffffff) + } + } + } + if c == uint32(0xffffffff) { + *(*uint32)(unsafe.Pointer(f)) |= uint32(F_ERR) + } + *(*Tlocale_t)(unsafe.Pointer(ploc)) = loc + return c +} + +func Xfputwc(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v c=%v f=%v, (%v:)", tls, c, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __need_unlock, v1 int32 + _, _ = __need_unlock, v1 + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + c = X__fputwc_unlocked(tls, c, f) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return c +} + +func Xfputwc_unlocked(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v c=%v f=%v, (%v:)", tls, c, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__fputwc_unlocked(tls, c, f) +} + +func Xputwc_unlocked(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v c=%v f=%v, (%v:)", tls, c, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__fputwc_unlocked(tls, c, f) +} + +func Xfputws(tls *TLS, _ws uintptr, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v _ws=%v f=%v, (%v:)", tls, _ws, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(1040) + defer tls.Free(1040) + *(*uintptr)(unsafe.Pointer(bp)) = _ws + var __need_unlock, v1 int32 + var l, v2 Tsize_t + var loc Tlocale_t + var ploc uintptr + var v3 bool + var _ /* buf at bp+8 */ [1024]uint8 + _, _, _, _, _, _, _ = __need_unlock, l, loc, ploc, v1, v2, v3 + l = uint64(0) + ploc = ___get_tp(tls) + 152 + loc = *(*Tlocale_t)(unsafe.Pointer(ploc)) + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + Xfwide(tls, f, int32(1)) + *(*Tlocale_t)(unsafe.Pointer(ploc)) = (*TFILE)(unsafe.Pointer(f)).Flocale + for { + if v3 = *(*uintptr)(unsafe.Pointer(bp)) != 0; v3 { + v2 = Xwcsrtombs(tls, bp+8, bp, uint64(1024), uintptr(0)) + l = v2 + } + if !(v3 && v2+uint64(1) > uint64(1)) { + break + } + if X__fwritex(tls, bp+8, l, f) < l { + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + *(*Tlocale_t)(unsafe.Pointer(ploc)) = loc + return -int32(1) + } + } + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + *(*Tlocale_t)(unsafe.Pointer(ploc)) = loc + return int32(l) /* 0 or -1 */ +} + +func Xfputws_unlocked(tls *TLS, _ws uintptr, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v _ws=%v f=%v, (%v:)", tls, _ws, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfputws(tls, _ws, f) +} + +func Xfread(tls *TLS, destv uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v destv=%v size=%v nmemb=%v f=%v, (%v:)", tls, destv, size, nmemb, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __need_unlock, v1 int32 + var dest uintptr + var k, l, len1 Tsize_t + var v2, v4 uint64 + _, _, _, _, _, _, _, _ = __need_unlock, dest, k, l, len1, v1, v2, v4 + dest = destv + len1 = size * nmemb + l = len1 + if !(size != 0) { + nmemb = uint64(0) + } + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + *(*int32)(unsafe.Pointer(f + 136)) |= (*TFILE)(unsafe.Pointer(f)).Fmode - int32(1) + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend { + /* First exhaust the buffer. */ + if uint64(int64((*TFILE)(unsafe.Pointer(f)).Frend)-int64((*TFILE)(unsafe.Pointer(f)).Frpos)) < l { + v2 = uint64(int64((*TFILE)(unsafe.Pointer(f)).Frend) - int64((*TFILE)(unsafe.Pointer(f)).Frpos)) + } else { + v2 = l + } + k = v2 + Xmemcpy(tls, dest, (*TFILE)(unsafe.Pointer(f)).Frpos, k) + *(*uintptr)(unsafe.Pointer(f + 8)) += uintptr(k) + dest += uintptr(k) + l -= k + } + /* Read the remainder directly */ + for { + if !(l != 0) { + break + } + if X__toread(tls, f) != 0 { + v4 = uint64(0) + } else { + v4 = (*(*func(*TLS, uintptr, uintptr, Tsize_t) Tsize_t)(unsafe.Pointer(&struct{ uintptr }{(*TFILE)(unsafe.Pointer(f)).Fread})))(tls, f, dest, l) + } + k = v4 + if !(k != 0) { + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return (len1 - l) / size + } + goto _3 + _3: + ; + l -= k + dest += uintptr(k) + } + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return nmemb +} + +func Xfread_unlocked(tls *TLS, destv uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v destv=%v size=%v nmemb=%v f=%v, (%v:)", tls, destv, size, nmemb, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfread(tls, destv, size, nmemb, f) +} + +/* The basic idea of this implementation is to open a new FILE, + * hack the necessary parts of the new FILE into the old one, then + * close the new FILE. */ + +/* Locking IS necessary because another thread may provably hold the + * lock, via flockfile or otherwise, when freopen is called, and in that + * case, freopen cannot act until the lock is released. */ + +func Xfreopen(tls *TLS, filename uintptr, mode uintptr, f uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v filename=%v mode=%v f=%v, (%v:)", tls, filename, mode, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __need_unlock, fl, v1 int32 + var f2 uintptr + _, _, _, _ = __need_unlock, f2, fl, v1 + fl = X__fmodeflags(tls, mode) + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + Xfflush(tls, f) + if !(filename != 0) { + if fl&int32(O_CLOEXEC) != 0 { + X__syscall3(tls, int64(SYS_fcntl), int64((*TFILE)(unsafe.Pointer(f)).Ffd), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) + } + fl &= ^(Int32FromInt32(O_CREAT) | Int32FromInt32(O_EXCL) | Int32FromInt32(O_CLOEXEC)) + if X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_fcntl), int64((*TFILE)(unsafe.Pointer(f)).Ffd), int64(Int32FromInt32(F_SETFL)), int64(fl)))) < 0 { + goto fail + } + } else { + f2 = Xfopen(tls, filename, mode) + if !(f2 != 0) { + goto fail + } + if (*TFILE)(unsafe.Pointer(f2)).Ffd == (*TFILE)(unsafe.Pointer(f)).Ffd { + (*TFILE)(unsafe.Pointer(f2)).Ffd = -int32(1) + } else { + if X__dup3(tls, (*TFILE)(unsafe.Pointer(f2)).Ffd, (*TFILE)(unsafe.Pointer(f)).Ffd, fl&int32(O_CLOEXEC)) < 0 { + goto fail2 + } + } + (*TFILE)(unsafe.Pointer(f)).Fflags = (*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_PERM) | (*TFILE)(unsafe.Pointer(f2)).Fflags + (*TFILE)(unsafe.Pointer(f)).Fread = (*TFILE)(unsafe.Pointer(f2)).Fread + (*TFILE)(unsafe.Pointer(f)).Fwrite = (*TFILE)(unsafe.Pointer(f2)).Fwrite + (*TFILE)(unsafe.Pointer(f)).Fseek = (*TFILE)(unsafe.Pointer(f2)).Fseek + (*TFILE)(unsafe.Pointer(f)).Fclose1 = (*TFILE)(unsafe.Pointer(f2)).Fclose1 + Xfclose(tls, f2) + } + (*TFILE)(unsafe.Pointer(f)).Fmode = 0 + (*TFILE)(unsafe.Pointer(f)).Flocale = uintptr(0) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return f + goto fail2 +fail2: + ; + Xfclose(tls, f2) + goto fail +fail: + ; + Xfclose(tls, f) + return UintptrFromInt32(0) +} + +func Xfscanf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v fmt=%v va=%v, (%v:)", tls, f, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var ret int32 + _, _ = ap, ret + ap = va + ret = Xvfscanf(tls, f, fmt, ap) + _ = ap + return ret +} + +func X__isoc99_fscanf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v fmt=%v va=%v, (%v:)", tls, f, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfscanf(tls, f, fmt, va) +} + +func X__fseeko_unlocked(tls *TLS, f uintptr, off Toff_t, whence int32) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v off=%v whence=%v, (%v:)", tls, f, off, whence, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1, v2, v3 uintptr + _, _, _ = v1, v2, v3 + /* Fail immediately for invalid whence argument. */ + if whence != int32(1) && whence != 0 && whence != int32(2) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return -int32(1) + } + /* Adjust relative offset for unread data in buffer, if any. */ + if whence == int32(1) && (*TFILE)(unsafe.Pointer(f)).Frend != 0 { + off -= int64((*TFILE)(unsafe.Pointer(f)).Frend) - int64((*TFILE)(unsafe.Pointer(f)).Frpos) + } + /* Flush write buffer, and report error on failure. */ + if (*TFILE)(unsafe.Pointer(f)).Fwpos != (*TFILE)(unsafe.Pointer(f)).Fwbase { + (*(*func(*TLS, uintptr, uintptr, Tsize_t) Tsize_t)(unsafe.Pointer(&struct{ uintptr }{(*TFILE)(unsafe.Pointer(f)).Fwrite})))(tls, f, uintptr(0), uint64(0)) + if !((*TFILE)(unsafe.Pointer(f)).Fwpos != 0) { + return -int32(1) + } + } + /* Leave writing mode */ + v2 = UintptrFromInt32(0) + (*TFILE)(unsafe.Pointer(f)).Fwend = v2 + v1 = v2 + (*TFILE)(unsafe.Pointer(f)).Fwbase = v1 + (*TFILE)(unsafe.Pointer(f)).Fwpos = v1 + /* Perform the underlying seek. */ + if (*(*func(*TLS, uintptr, Toff_t, int32) Toff_t)(unsafe.Pointer(&struct{ uintptr }{(*TFILE)(unsafe.Pointer(f)).Fseek})))(tls, f, off, whence) < 0 { + return -int32(1) + } + /* If seek succeeded, file is seekable and we discard read buffer. */ + v3 = UintptrFromInt32(0) + (*TFILE)(unsafe.Pointer(f)).Frend = v3 + (*TFILE)(unsafe.Pointer(f)).Frpos = v3 + *(*uint32)(unsafe.Pointer(f)) &= uint32(^Int32FromInt32(F_EOF)) + return 0 +} + +func X__fseeko(tls *TLS, f uintptr, off Toff_t, whence int32) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v off=%v whence=%v, (%v:)", tls, f, off, whence, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __need_unlock, result, v1 int32 + _, _, _ = __need_unlock, result, v1 + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + result = X__fseeko_unlocked(tls, f, off, whence) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return result +} + +func Xfseek(tls *TLS, f uintptr, off int64, whence int32) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v off=%v whence=%v, (%v:)", tls, f, off, whence, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__fseeko(tls, f, off, whence) +} + +func Xfseeko(tls *TLS, f uintptr, off Toff_t, whence int32) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v off=%v whence=%v, (%v:)", tls, f, off, whence, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__fseeko(tls, f, off, whence) +} + +func Xfsetpos(tls *TLS, f uintptr, pos uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v pos=%v, (%v:)", tls, f, pos, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__fseeko(tls, f, *(*int64)(unsafe.Pointer(pos)), 0) +} + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +func X__ftello_unlocked(tls *TLS, f uintptr) (r Toff_t) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var pos Toff_t + var v1 int32 + _, _ = pos, v1 + if (*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_APP) != 0 && (*TFILE)(unsafe.Pointer(f)).Fwpos != (*TFILE)(unsafe.Pointer(f)).Fwbase { + v1 = int32(2) + } else { + v1 = int32(1) + } + pos = (*(*func(*TLS, uintptr, Toff_t, int32) Toff_t)(unsafe.Pointer(&struct{ uintptr }{(*TFILE)(unsafe.Pointer(f)).Fseek})))(tls, f, 0, v1) + if pos < 0 { + return pos + } + /* Adjust for data in buffer. */ + if (*TFILE)(unsafe.Pointer(f)).Frend != 0 { + pos += int64((*TFILE)(unsafe.Pointer(f)).Frpos) - int64((*TFILE)(unsafe.Pointer(f)).Frend) + } else { + if (*TFILE)(unsafe.Pointer(f)).Fwbase != 0 { + pos += int64((*TFILE)(unsafe.Pointer(f)).Fwpos) - int64((*TFILE)(unsafe.Pointer(f)).Fwbase) + } + } + return pos +} + +func X__ftello(tls *TLS, f uintptr) (r Toff_t) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __need_unlock, v1 int32 + var pos Toff_t + _, _, _ = __need_unlock, pos, v1 + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + pos = X__ftello_unlocked(tls, f) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return pos +} + +func Xftell(tls *TLS, f uintptr) (r int64) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var pos Toff_t + _ = pos + pos = X__ftello(tls, f) + if pos > int64(0x7fffffffffffffff) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOVERFLOW) + return int64(-int32(1)) + } + return pos +} + +func Xftello(tls *TLS, f uintptr) (r Toff_t) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__ftello(tls, f) +} + +func X__do_orphaned_stdio_locks(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + var f uintptr + _ = f + f = (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Fstdio_locks + for { + if !(f != 0) { + break + } + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+1534) + AtomicStorePInt32(f+140, int32(0x40000000)) + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+1534) + goto _1 + _1: + ; + f = (*TFILE)(unsafe.Pointer(f)).Fnext_locked + } +} + +func X__unlist_locked_file(tls *TLS, f uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + } + if (*TFILE)(unsafe.Pointer(f)).Flockcount != 0 { + if (*TFILE)(unsafe.Pointer(f)).Fnext_locked != 0 { + (*TFILE)(unsafe.Pointer((*TFILE)(unsafe.Pointer(f)).Fnext_locked)).Fprev_locked = (*TFILE)(unsafe.Pointer(f)).Fprev_locked + } + if (*TFILE)(unsafe.Pointer(f)).Fprev_locked != 0 { + (*TFILE)(unsafe.Pointer((*TFILE)(unsafe.Pointer(f)).Fprev_locked)).Fnext_locked = (*TFILE)(unsafe.Pointer(f)).Fnext_locked + } else { + (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Fstdio_locks = (*TFILE)(unsafe.Pointer(f)).Fnext_locked + } + } +} + +func X__register_locked_file(tls *TLS, f uintptr, self Tpthread_t) { + if __ccgo_strace { + trc("tls=%v f=%v self=%v, (%v:)", tls, f, self, origin(2)) + } + (*TFILE)(unsafe.Pointer(f)).Flockcount = int64(1) + (*TFILE)(unsafe.Pointer(f)).Fprev_locked = uintptr(0) + (*TFILE)(unsafe.Pointer(f)).Fnext_locked = (*t__pthread)(unsafe.Pointer(self)).Fstdio_locks + if (*TFILE)(unsafe.Pointer(f)).Fnext_locked != 0 { + (*TFILE)(unsafe.Pointer((*TFILE)(unsafe.Pointer(f)).Fnext_locked)).Fprev_locked = f + } + (*t__pthread)(unsafe.Pointer(self)).Fstdio_locks = f +} + +func Xftrylockfile(tls *TLS, f uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var old, owner, r, tid, v, v1, v3, v6, v8 int32 + var self Tpthread_t + var v10 bool + var v2 uintptr + _, _, _, _, _, _, _, _, _, _, _, _ = old, owner, r, self, tid, v, v1, v10, v2, v3, v6, v8 + self = ___get_tp(tls) + tid = (*t__pthread)(unsafe.Pointer(self)).Ftid + owner = AtomicLoadPInt32(f + 140) + if owner & ^Int32FromInt32(MAYBE_WAITERS) == tid { + if (*TFILE)(unsafe.Pointer(f)).Flockcount == int64(0x7fffffffffffffff) { + return -int32(1) + } + (*TFILE)(unsafe.Pointer(f)).Flockcount++ + return 0 + } + if owner < 0 { + v1 = Int32FromInt32(0) + owner = v1 + AtomicStorePInt32(f+140, v1) + } + if v10 = owner != 0; !v10 { + v2 = f + 140 + for { + // __asm__ __volatile__ ("ldaxr %w0,%1" : "=r"(v) : "Q"(*p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 5, __ccgo_ts+1560) + v6 = v + goto _7 + _7: + old = v6 + if old != 0 { + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+1560) + break + } + goto _5 + _5: + ; + // __asm__ __volatile__ ("stlxr %w0,%w2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 13, __ccgo_ts+1560) + v3 = BoolInt32(!(r != 0)) + goto _4 + _4: + ; + if !!(v3 != 0) { + break + } + } + v8 = old + goto _9 + _9: + } + if v10 || v8 != 0 { + return -int32(1) + } + X__register_locked_file(tls, f, self) + return 0 +} + +func Xfunlockfile(tls *TLS, f uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + } + if (*TFILE)(unsafe.Pointer(f)).Flockcount == int64(1) { + X__unlist_locked_file(tls, f) + (*TFILE)(unsafe.Pointer(f)).Flockcount = 0 + ___unlockfile(tls, f) + } else { + (*TFILE)(unsafe.Pointer(f)).Flockcount-- + } +} + +func Xfwide(tls *TLS, f uintptr, mode int32) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v mode=%v, (%v:)", tls, f, mode, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __need_unlock, v1, v3, v4 int32 + var v2 Tlocale_t + _, _, _, _, _ = __need_unlock, v1, v2, v3, v4 + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + if mode != 0 { + if !((*TFILE)(unsafe.Pointer(f)).Flocale != 0) { + if !!(*(*uintptr)(unsafe.Pointer((*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale)) != 0) { + v3 = int32(4) + } else { + v3 = int32(1) + } + if v3 == int32(1) { + v2 = uintptr(unsafe.Pointer(&X__c_locale)) + } else { + v2 = uintptr(unsafe.Pointer(&X__c_dot_utf8_locale)) + } + (*TFILE)(unsafe.Pointer(f)).Flocale = v2 + } + if !((*TFILE)(unsafe.Pointer(f)).Fmode != 0) { + if mode > 0 { + v4 = int32(1) + } else { + v4 = -int32(1) + } + (*TFILE)(unsafe.Pointer(f)).Fmode = v4 + } + } + mode = (*TFILE)(unsafe.Pointer(f)).Fmode + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return mode +} + +func Xfwprintf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v fmt=%v va=%v, (%v:)", tls, f, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var ret int32 + _, _ = ap, ret + ap = va + ret = Xvfwprintf(tls, f, fmt, ap) + _ = ap + return ret +} + +func X__fwritex(tls *TLS, s uintptr, l Tsize_t, f uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v l=%v f=%v, (%v:)", tls, s, l, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var i, n Tsize_t + _, _ = i, n + i = uint64(0) + if !((*TFILE)(unsafe.Pointer(f)).Fwend != 0) && X__towrite(tls, f) != 0 { + return uint64(0) + } + if l > uint64(int64((*TFILE)(unsafe.Pointer(f)).Fwend)-int64((*TFILE)(unsafe.Pointer(f)).Fwpos)) { + return (*(*func(*TLS, uintptr, uintptr, Tsize_t) Tsize_t)(unsafe.Pointer(&struct{ uintptr }{(*TFILE)(unsafe.Pointer(f)).Fwrite})))(tls, f, s, l) + } + if (*TFILE)(unsafe.Pointer(f)).Flbf >= 0 { + /* Match /^(.*\n|)/ */ + i = l + for { + if !(i != 0 && int32(*(*uint8)(unsafe.Pointer(s + uintptr(i-uint64(1))))) != int32('\n')) { + break + } + goto _1 + _1: + ; + i-- + } + if i != 0 { + n = (*(*func(*TLS, uintptr, uintptr, Tsize_t) Tsize_t)(unsafe.Pointer(&struct{ uintptr }{(*TFILE)(unsafe.Pointer(f)).Fwrite})))(tls, f, s, i) + if n < i { + return n + } + s += uintptr(i) + l -= i + } + } + Xmemcpy(tls, (*TFILE)(unsafe.Pointer(f)).Fwpos, s, l) + *(*uintptr)(unsafe.Pointer(f + 40)) += uintptr(l) + return l + i +} + +func Xfwrite(tls *TLS, src uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v src=%v size=%v nmemb=%v f=%v, (%v:)", tls, src, size, nmemb, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __need_unlock, v1 int32 + var k, l Tsize_t + var v2 uint64 + _, _, _, _, _ = __need_unlock, k, l, v1, v2 + l = size * nmemb + if !(size != 0) { + nmemb = uint64(0) + } + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + k = X__fwritex(tls, src, l, f) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + if k == l { + v2 = nmemb + } else { + v2 = k / size + } + return v2 +} + +func Xfwrite_unlocked(tls *TLS, src uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v src=%v size=%v nmemb=%v f=%v, (%v:)", tls, src, size, nmemb, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfwrite(tls, src, size, nmemb, f) +} + +func Xfwscanf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v fmt=%v va=%v, (%v:)", tls, f, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var ret int32 + _, _ = ap, ret + ap = va + ret = Xvfwscanf(tls, f, fmt, ap) + _ = ap + return ret +} + +func X__isoc99_fwscanf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v fmt=%v va=%v, (%v:)", tls, f, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfwscanf(tls, f, fmt, va) +} + +func _locking_getc1(tls *TLS, f uintptr) (r1 int32) { + var c, old, old1, r, v, v13, v16, v18, v2, v21, v22, v5, v7, v9 int32 + var v1, v10, v11, v12, v20 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, old, old1, r, v, v1, v10, v11, v12, v13, v16, v18, v2, v20, v21, v22, v5, v7, v9 + v1 = f + 140 + for { + // __asm__ __volatile__ ("ldaxr %w0,%1" : "=r"(v) : "Q"(*p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 5, __ccgo_ts+1508) + v5 = v + goto _6 + _6: + old = v5 + if old != 0 { + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+1508) + break + } + goto _4 + _4: + ; + // __asm__ __volatile__ ("stlxr %w0,%w2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 13, __ccgo_ts+1508) + v2 = BoolInt32(!(r != 0)) + goto _3 + _3: + ; + if !!(v2 != 0) { + break + } + } + v7 = old + goto _8 +_8: + if v7 != 0 { + ___lockfile(tls, f) + } + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend { + v11 = f + 8 + v10 = *(*uintptr)(unsafe.Pointer(v11)) + *(*uintptr)(unsafe.Pointer(v11))++ + v9 = int32(*(*uint8)(unsafe.Pointer(v10))) + } else { + v9 = X__uflow(tls, f) + } + c = v9 + v12 = f + 140 + for { + // __asm__ __volatile__ ("ldaxr %w0,%1" : "=r"(v) : "Q"(*p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 5, __ccgo_ts+1508) + v16 = v + goto _17 + _17: + old1 = v16 + goto _15 + _15: + ; + // __asm__ __volatile__ ("stlxr %w0,%w2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 13, __ccgo_ts+1508) + v13 = BoolInt32(!(r != 0)) + goto _14 + _14: + ; + if !!(v13 != 0) { + break + } + } + v18 = old1 + goto _19 +_19: + if v18&int32(MAYBE_WAITERS) != 0 { + v20 = f + 140 + v21 = int32(1) + v22 = int32(1) + if v22 != 0 { + v22 = int32(FUTEX_PRIVATE) + } + if v21 < Int32FromInt32(0) { + v21 = int32(INT_MAX) + } + _ = X__syscall3(tls, int64(SYS_futex), int64(v20), int64(Int32FromInt32(FUTEX_WAKE)|v22), int64(v21)) != int64(-int32(ENOSYS)) || X__syscall3(tls, int64(SYS_futex), int64(v20), int64(Int32FromInt32(FUTEX_WAKE)), int64(v21)) != 0 + } + return c +} + +func Xgetc(tls *TLS, f1 uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f1=%v, (%v:)", tls, f1, origin(2)) + defer func() { trc("-> %v", r) }() + } + var l, v2, v4 int32 + var v1, v5, v6 uintptr + _, _, _, _, _, _ = l, v1, v2, v4, v5, v6 + v1 = f1 + l = AtomicLoadPInt32(v1 + 140) + if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Ftid { + if (*TFILE)(unsafe.Pointer(v1)).Frpos != (*TFILE)(unsafe.Pointer(v1)).Frend { + v6 = v1 + 8 + v5 = *(*uintptr)(unsafe.Pointer(v6)) + *(*uintptr)(unsafe.Pointer(v6))++ + v4 = int32(*(*uint8)(unsafe.Pointer(v5))) + } else { + v4 = X__uflow(tls, v1) + } + v2 = v4 + goto _3 + } + v2 = _locking_getc1(tls, v1) + goto _3 +_3: + return v2 +} + +func X_IO_getc(tls *TLS, f1 uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f1=%v, (%v:)", tls, f1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xgetc(tls, f1) +} + +func Xgetc_unlocked(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 int32 + var v2, v3 uintptr + _, _, _ = v1, v2, v3 + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend { + v3 = f + 8 + v2 = *(*uintptr)(unsafe.Pointer(v3)) + *(*uintptr)(unsafe.Pointer(v3))++ + v1 = int32(*(*uint8)(unsafe.Pointer(v2))) + } else { + v1 = X__uflow(tls, f) + } + return v1 +} + +func X_IO_getc_unlocked(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xgetc_unlocked(tls, f) +} + +func Xfgetc_unlocked(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xgetc_unlocked(tls, f) +} + +func _locking_getc2(tls *TLS, f uintptr) (r1 int32) { + var c, old, old1, r, v, v13, v16, v18, v2, v21, v22, v5, v7, v9 int32 + var v1, v10, v11, v12, v20 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, old, old1, r, v, v1, v10, v11, v12, v13, v16, v18, v2, v20, v21, v22, v5, v7, v9 + v1 = f + 140 + for { + // __asm__ __volatile__ ("ldaxr %w0,%1" : "=r"(v) : "Q"(*p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 5, __ccgo_ts+1508) + v5 = v + goto _6 + _6: + old = v5 + if old != 0 { + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+1508) + break + } + goto _4 + _4: + ; + // __asm__ __volatile__ ("stlxr %w0,%w2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 13, __ccgo_ts+1508) + v2 = BoolInt32(!(r != 0)) + goto _3 + _3: + ; + if !!(v2 != 0) { + break + } + } + v7 = old + goto _8 +_8: + if v7 != 0 { + ___lockfile(tls, f) + } + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend { + v11 = f + 8 + v10 = *(*uintptr)(unsafe.Pointer(v11)) + *(*uintptr)(unsafe.Pointer(v11))++ + v9 = int32(*(*uint8)(unsafe.Pointer(v10))) + } else { + v9 = X__uflow(tls, f) + } + c = v9 + v12 = f + 140 + for { + // __asm__ __volatile__ ("ldaxr %w0,%1" : "=r"(v) : "Q"(*p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 5, __ccgo_ts+1508) + v16 = v + goto _17 + _17: + old1 = v16 + goto _15 + _15: + ; + // __asm__ __volatile__ ("stlxr %w0,%w2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 13, __ccgo_ts+1508) + v13 = BoolInt32(!(r != 0)) + goto _14 + _14: + ; + if !!(v13 != 0) { + break + } + } + v18 = old1 + goto _19 +_19: + if v18&int32(MAYBE_WAITERS) != 0 { + v20 = f + 140 + v21 = int32(1) + v22 = int32(1) + if v22 != 0 { + v22 = int32(FUTEX_PRIVATE) + } + if v21 < Int32FromInt32(0) { + v21 = int32(INT_MAX) + } + _ = X__syscall3(tls, int64(SYS_futex), int64(v20), int64(Int32FromInt32(FUTEX_WAKE)|v22), int64(v21)) != int64(-int32(ENOSYS)) || X__syscall3(tls, int64(SYS_futex), int64(v20), int64(Int32FromInt32(FUTEX_WAKE)), int64(v21)) != 0 + } + return c +} + +func Xgetchar(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + var l, v2, v4 int32 + var v1, v5, v6 uintptr + _, _, _, _, _, _ = l, v1, v2, v4, v5, v6 + v1 = uintptr(unsafe.Pointer(&X__stdin_FILE)) + l = AtomicLoadPInt32(v1 + 140) + if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Ftid { + if (*TFILE)(unsafe.Pointer(v1)).Frpos != (*TFILE)(unsafe.Pointer(v1)).Frend { + v6 = v1 + 8 + v5 = *(*uintptr)(unsafe.Pointer(v6)) + *(*uintptr)(unsafe.Pointer(v6))++ + v4 = int32(*(*uint8)(unsafe.Pointer(v5))) + } else { + v4 = X__uflow(tls, v1) + } + v2 = v4 + goto _3 + } + v2 = _locking_getc2(tls, v1) + goto _3 +_3: + return v2 +} + +func Xgetchar_unlocked(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 int32 + var v2, v3 uintptr + _, _, _ = v1, v2, v3 + if (*TFILE)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__stdin_FILE)))).Frpos != (*TFILE)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__stdin_FILE)))).Frend { + v3 = uintptr(unsafe.Pointer(&X__stdin_FILE)) + 8 + v2 = *(*uintptr)(unsafe.Pointer(v3)) + *(*uintptr)(unsafe.Pointer(v3))++ + v1 = int32(*(*uint8)(unsafe.Pointer(v2))) + } else { + v1 = X__uflow(tls, uintptr(unsafe.Pointer(&X__stdin_FILE))) + } + return v1 +} + +func Xgetdelim(tls *TLS, s uintptr, n uintptr, delim int32, f uintptr) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v delim=%v f=%v, (%v:)", tls, s, n, delim, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __need_unlock, c, v1, v4, v5 int32 + var i, k, m, v11 Tsize_t + var tmp, z, v6, v7, v8, v9 uintptr + var v10 uint8 + var v3 int64 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = __need_unlock, c, i, k, m, tmp, z, v1, v10, v11, v3, v4, v5, v6, v7, v8, v9 + i = uint64(0) + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + if !(n != 0) || !(s != 0) { + *(*int32)(unsafe.Pointer(f + 136)) |= (*TFILE)(unsafe.Pointer(f)).Fmode - int32(1) + *(*uint32)(unsafe.Pointer(f)) |= uint32(F_ERR) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return int64(-int32(1)) + } + if !(*(*uintptr)(unsafe.Pointer(s)) != 0) { + *(*Tsize_t)(unsafe.Pointer(n)) = uint64(0) + } + for { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend { + z = Xmemchr(tls, (*TFILE)(unsafe.Pointer(f)).Frpos, delim, uint64(int64((*TFILE)(unsafe.Pointer(f)).Frend)-int64((*TFILE)(unsafe.Pointer(f)).Frpos))) + if z != 0 { + v3 = int64(z) - int64((*TFILE)(unsafe.Pointer(f)).Frpos) + int64(1) + } else { + v3 = int64((*TFILE)(unsafe.Pointer(f)).Frend) - int64((*TFILE)(unsafe.Pointer(f)).Frpos) + } + k = uint64(v3) + } else { + z = uintptr(0) + k = uint64(0) + } + if i+k >= *(*Tsize_t)(unsafe.Pointer(n)) { + m = i + k + uint64(2) + if !(z != 0) && m < Uint64FromUint64(0xffffffffffffffff)/Uint64FromInt32(4) { + m += m / uint64(2) + } + tmp = Xrealloc(tls, *(*uintptr)(unsafe.Pointer(s)), m) + if !(tmp != 0) { + m = i + k + uint64(2) + tmp = Xrealloc(tls, *(*uintptr)(unsafe.Pointer(s)), m) + if !(tmp != 0) { + /* Copy as much as fits and ensure no + * pushback remains in the FILE buf. */ + k = *(*Tsize_t)(unsafe.Pointer(n)) - i + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(s))+uintptr(i), (*TFILE)(unsafe.Pointer(f)).Frpos, k) + *(*uintptr)(unsafe.Pointer(f + 8)) += uintptr(k) + *(*int32)(unsafe.Pointer(f + 136)) |= (*TFILE)(unsafe.Pointer(f)).Fmode - int32(1) + *(*uint32)(unsafe.Pointer(f)) |= uint32(F_ERR) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOMEM) + return int64(-int32(1)) + } + } + *(*uintptr)(unsafe.Pointer(s)) = tmp + *(*Tsize_t)(unsafe.Pointer(n)) = m + } + if k != 0 { + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(s))+uintptr(i), (*TFILE)(unsafe.Pointer(f)).Frpos, k) + *(*uintptr)(unsafe.Pointer(f + 8)) += uintptr(k) + i += k + } + if z != 0 { + break + } + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend { + v7 = f + 8 + v6 = *(*uintptr)(unsafe.Pointer(v7)) + *(*uintptr)(unsafe.Pointer(v7))++ + v5 = int32(*(*uint8)(unsafe.Pointer(v6))) + } else { + v5 = X__uflow(tls, f) + } + v4 = v5 + c = v4 + if v4 == -int32(1) { + if !(i != 0) || !((*TFILE)(unsafe.Pointer(f)).Fflags&Uint32FromInt32(F_EOF) != 0) { + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return int64(-int32(1)) + } + break + } + /* If the byte read by getc won't fit without growing the + * output buffer, push it back for next iteration. */ + if i+uint64(1) >= *(*Tsize_t)(unsafe.Pointer(n)) { + v9 = f + 8 + *(*uintptr)(unsafe.Pointer(v9))-- + v8 = *(*uintptr)(unsafe.Pointer(v9)) + *(*uint8)(unsafe.Pointer(v8)) = uint8(c) + } else { + v10 = uint8(c) + v11 = i + i++ + *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s)) + uintptr(v11))) = v10 + if int32(v10) == delim { + break + } + } + goto _2 + _2: + } + *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s)) + uintptr(i))) = uint8(0) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return int64(i) +} + +func X__getdelim(tls *TLS, s uintptr, n uintptr, delim int32, f uintptr) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v delim=%v f=%v, (%v:)", tls, s, n, delim, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xgetdelim(tls, s, n, delim, f) +} + +func Xgetline(tls *TLS, s uintptr, n uintptr, f uintptr) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v f=%v, (%v:)", tls, s, n, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xgetdelim(tls, s, n, int32('\n'), f) +} + +func Xgets(tls *TLS, s uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __need_unlock, c, v1, v2, v3 int32 + var i, v6 Tsize_t + var v4, v5 uintptr + _, _, _, _, _, _, _, _, _ = __need_unlock, c, i, v1, v2, v3, v4, v5, v6 + i = uint64(0) + if AtomicLoadPInt32(uintptr(unsafe.Pointer(&X__stdin_FILE))+140) >= 0 { + v1 = ___lockfile(tls, uintptr(unsafe.Pointer(&X__stdin_FILE))) + } else { + v1 = 0 + } + __need_unlock = v1 + for { + if (*TFILE)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__stdin_FILE)))).Frpos != (*TFILE)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__stdin_FILE)))).Frend { + v5 = uintptr(unsafe.Pointer(&X__stdin_FILE)) + 8 + v4 = *(*uintptr)(unsafe.Pointer(v5)) + *(*uintptr)(unsafe.Pointer(v5))++ + v3 = int32(*(*uint8)(unsafe.Pointer(v4))) + } else { + v3 = X__uflow(tls, uintptr(unsafe.Pointer(&X__stdin_FILE))) + } + v2 = v3 + c = v2 + if !(v2 != -int32(1) && c != int32('\n')) { + break + } + v6 = i + i++ + *(*uint8)(unsafe.Pointer(s + uintptr(v6))) = uint8(c) + } + *(*uint8)(unsafe.Pointer(s + uintptr(i))) = uint8(0) + if c != int32('\n') && (!((*TFILE)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__stdin_FILE)))).Fflags&Uint32FromInt32(F_EOF) != 0) || !(i != 0)) { + s = uintptr(0) + } + if __need_unlock != 0 { + ___unlockfile(tls, uintptr(unsafe.Pointer(&X__stdin_FILE))) + } + return s +} + +func Xgetw(tls *TLS, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1 int32 + var _ /* x at bp+0 */ int32 + _ = v1 + if Xfread(tls, bp, uint64(4), uint64(1), f) != 0 { + v1 = *(*int32)(unsafe.Pointer(bp)) + } else { + v1 = -int32(1) + } + return v1 +} + +func Xgetwc(tls *TLS, f uintptr) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfgetwc(tls, f) +} + +func Xgetwchar(tls *TLS) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfgetwc(tls, uintptr(unsafe.Pointer(&X__stdin_FILE))) +} + +func Xgetwchar_unlocked(tls *TLS) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xgetwchar(tls) +} + +var _ofl_head uintptr +var _ofl_lock [1]int32 + +func X__ofl_lock(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + ___lock(tls, uintptr(unsafe.Pointer(&_ofl_lock))) + return uintptr(unsafe.Pointer(&_ofl_head)) +} + +func X__ofl_unlock(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + ___unlock(tls, uintptr(unsafe.Pointer(&_ofl_lock))) +} + +func X__ofl_add(tls *TLS, f uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var head uintptr + _ = head + head = X__ofl_lock(tls) + (*TFILE)(unsafe.Pointer(f)).Fnext = *(*uintptr)(unsafe.Pointer(head)) + if *(*uintptr)(unsafe.Pointer(head)) != 0 { + (*TFILE)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(head)))).Fprev = f + } + *(*uintptr)(unsafe.Pointer(head)) = f + X__ofl_unlock(tls) + return f +} + +type Tcookie1 = struct { + Fbufp uintptr + Fsizep uintptr + Fpos Tsize_t + Fbuf uintptr + Flen1 Tsize_t + Fspace Tsize_t +} + +type Tms_FILE = struct { + Ff TFILE + Fc Tcookie1 + Fbuf [1024]uint8 +} + +func _ms_seek(tls *TLS, f uintptr, off Toff_t, whence int32) (r Toff_t) { + bp := tls.Alloc(32) + defer tls.Free(32) + var base Tssize_t + var c uintptr + var v2 Tsize_t + _, _, _ = base, c, v2 + c = (*TFILE)(unsafe.Pointer(f)).Fcookie + if !(uint32(whence) > uint32(2)) { + goto _1 + } + goto fail +fail: + ; + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return int64(-int32(1)) +_1: + ; + *(*[3]Tsize_t)(unsafe.Pointer(bp)) = [3]Tsize_t{ + 1: (*Tcookie1)(unsafe.Pointer(c)).Fpos, + 2: (*Tcookie1)(unsafe.Pointer(c)).Flen1, + } + base = int64(*(*Tsize_t)(unsafe.Pointer(bp + uintptr(whence)*8))) + if off < -base || off > int64(0x7fffffffffffffff)-base { + goto fail + } + v2 = uint64(base + off) + (*Tcookie1)(unsafe.Pointer(c)).Fpos = v2 + return int64(v2) +} + +func _ms_write(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { + var c, newbuf, v1 uintptr + var len2 Tsize_t + _, _, _, _ = c, len2, newbuf, v1 + c = (*TFILE)(unsafe.Pointer(f)).Fcookie + len2 = uint64(int64((*TFILE)(unsafe.Pointer(f)).Fwpos) - int64((*TFILE)(unsafe.Pointer(f)).Fwbase)) + if len2 != 0 { + (*TFILE)(unsafe.Pointer(f)).Fwpos = (*TFILE)(unsafe.Pointer(f)).Fwbase + if _ms_write(tls, f, (*TFILE)(unsafe.Pointer(f)).Fwbase, len2) < len2 { + return uint64(0) + } + } + if len1+(*Tcookie1)(unsafe.Pointer(c)).Fpos >= (*Tcookie1)(unsafe.Pointer(c)).Fspace { + len2 = uint64(2)*(*Tcookie1)(unsafe.Pointer(c)).Fspace + uint64(1) | ((*Tcookie1)(unsafe.Pointer(c)).Fpos + len1 + uint64(1)) + newbuf = Xrealloc(tls, (*Tcookie1)(unsafe.Pointer(c)).Fbuf, len2) + if !(newbuf != 0) { + return uint64(0) + } + v1 = newbuf + (*Tcookie1)(unsafe.Pointer(c)).Fbuf = v1 + *(*uintptr)(unsafe.Pointer((*Tcookie1)(unsafe.Pointer(c)).Fbufp)) = v1 + Xmemset(tls, (*Tcookie1)(unsafe.Pointer(c)).Fbuf+uintptr((*Tcookie1)(unsafe.Pointer(c)).Fspace), 0, len2-(*Tcookie1)(unsafe.Pointer(c)).Fspace) + (*Tcookie1)(unsafe.Pointer(c)).Fspace = len2 + } + Xmemcpy(tls, (*Tcookie1)(unsafe.Pointer(c)).Fbuf+uintptr((*Tcookie1)(unsafe.Pointer(c)).Fpos), buf, len1) + *(*Tsize_t)(unsafe.Pointer(c + 16)) += len1 + if (*Tcookie1)(unsafe.Pointer(c)).Fpos >= (*Tcookie1)(unsafe.Pointer(c)).Flen1 { + (*Tcookie1)(unsafe.Pointer(c)).Flen1 = (*Tcookie1)(unsafe.Pointer(c)).Fpos + } + *(*Tsize_t)(unsafe.Pointer((*Tcookie1)(unsafe.Pointer(c)).Fsizep)) = (*Tcookie1)(unsafe.Pointer(c)).Fpos + return len1 +} + +func _ms_close(tls *TLS, f uintptr) (r int32) { + return 0 +} + +func Xopen_memstream(tls *TLS, bufp uintptr, sizep uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v bufp=%v sizep=%v, (%v:)", tls, bufp, sizep, origin(2)) + defer func() { trc("-> %v", r) }() + } + var buf, f, v1, v2, v6 uintptr + var v3, v4, v5 Tsize_t + _, _, _, _, _, _, _, _ = buf, f, v1, v2, v3, v4, v5, v6 + v1 = Xmalloc(tls, uint64(1304)) + f = v1 + if !(v1 != 0) { + return uintptr(0) + } + v2 = Xmalloc(tls, uint64(1)) + buf = v2 + if !(v2 != 0) { + Xfree(tls, f) + return uintptr(0) + } + Xmemset(tls, f, 0, uint64(232)) + Xmemset(tls, f+232, 0, uint64(48)) + (*Tms_FILE)(unsafe.Pointer(f)).Ff.Fcookie = f + 232 + (*Tms_FILE)(unsafe.Pointer(f)).Fc.Fbufp = bufp + (*Tms_FILE)(unsafe.Pointer(f)).Fc.Fsizep = sizep + v5 = Uint64FromInt32(0) + *(*Tsize_t)(unsafe.Pointer(sizep)) = v5 + v4 = v5 + (*Tms_FILE)(unsafe.Pointer(f)).Fc.Fspace = v4 + v3 = v4 + (*Tms_FILE)(unsafe.Pointer(f)).Fc.Flen1 = v3 + (*Tms_FILE)(unsafe.Pointer(f)).Fc.Fpos = v3 + v6 = buf + *(*uintptr)(unsafe.Pointer(bufp)) = v6 + (*Tms_FILE)(unsafe.Pointer(f)).Fc.Fbuf = v6 + *(*uint8)(unsafe.Pointer(buf)) = uint8(0) + (*Tms_FILE)(unsafe.Pointer(f)).Ff.Fflags = uint32(F_NORD) + (*Tms_FILE)(unsafe.Pointer(f)).Ff.Ffd = -int32(1) + (*Tms_FILE)(unsafe.Pointer(f)).Ff.Fbuf = f + 280 + (*Tms_FILE)(unsafe.Pointer(f)).Ff.Fbuf_size = uint64(1024) + (*Tms_FILE)(unsafe.Pointer(f)).Ff.Flbf = -int32(1) + (*Tms_FILE)(unsafe.Pointer(f)).Ff.Fwrite = __ccgo_fp(_ms_write) + (*Tms_FILE)(unsafe.Pointer(f)).Ff.Fseek = __ccgo_fp(_ms_seek) + (*Tms_FILE)(unsafe.Pointer(f)).Ff.Fclose1 = __ccgo_fp(_ms_close) + (*Tms_FILE)(unsafe.Pointer(f)).Ff.Fmode = -int32(1) + if !(X__libc.Fthreaded != 0) { + AtomicStorePInt32(f+140, -int32(1)) + } + return X__ofl_add(tls, f) +} + +type Tcookie2 = struct { + Fbufp uintptr + Fsizep uintptr + Fpos Tsize_t + Fbuf uintptr + Flen1 Tsize_t + Fspace Tsize_t + Fmbs Tmbstate_t +} + +type Twms_FILE = struct { + Ff TFILE + Fc Tcookie2 + Fbuf [1]uint8 +} + +func _wms_seek(tls *TLS, f uintptr, off Toff_t, whence int32) (r Toff_t) { + bp := tls.Alloc(32) + defer tls.Free(32) + var base Tssize_t + var c uintptr + var v2 Tsize_t + _, _, _ = base, c, v2 + c = (*TFILE)(unsafe.Pointer(f)).Fcookie + if !(uint32(whence) > uint32(2)) { + goto _1 + } + goto fail +fail: + ; + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return int64(-int32(1)) +_1: + ; + *(*[3]Tsize_t)(unsafe.Pointer(bp)) = [3]Tsize_t{ + 1: (*Tcookie2)(unsafe.Pointer(c)).Fpos, + 2: (*Tcookie2)(unsafe.Pointer(c)).Flen1, + } + base = int64(*(*Tsize_t)(unsafe.Pointer(bp + uintptr(whence)*8))) + if off < -base || off > Int64FromInt64(0x7fffffffffffffff)/Int64FromInt32(4)-base { + goto fail + } + Xmemset(tls, c+48, 0, uint64(8)) + v2 = uint64(base + off) + (*Tcookie2)(unsafe.Pointer(c)).Fpos = v2 + return int64(v2) +} + +func _wms_write(tls *TLS, f uintptr, _buf uintptr, len1 Tsize_t) (r Tsize_t) { + bp := tls.Alloc(16) + defer tls.Free(16) + *(*uintptr)(unsafe.Pointer(bp)) = _buf + var c, newbuf, v1 uintptr + var len2 Tsize_t + _, _, _, _ = c, len2, newbuf, v1 + c = (*TFILE)(unsafe.Pointer(f)).Fcookie + len2 = uint64(int64((*TFILE)(unsafe.Pointer(f)).Fwpos) - int64((*TFILE)(unsafe.Pointer(f)).Fwbase)) + if len2 != 0 { + (*TFILE)(unsafe.Pointer(f)).Fwpos = (*TFILE)(unsafe.Pointer(f)).Fwbase + if _wms_write(tls, f, (*TFILE)(unsafe.Pointer(f)).Fwbase, len2) < len2 { + return uint64(0) + } + } + if len1+(*Tcookie2)(unsafe.Pointer(c)).Fpos >= (*Tcookie2)(unsafe.Pointer(c)).Fspace { + len2 = uint64(2)*(*Tcookie2)(unsafe.Pointer(c)).Fspace + uint64(1) | ((*Tcookie2)(unsafe.Pointer(c)).Fpos + len1 + uint64(1)) + if len2 > uint64(Int64FromInt64(0x7fffffffffffffff)/Int64FromInt32(4)) { + return uint64(0) + } + newbuf = Xrealloc(tls, (*Tcookie2)(unsafe.Pointer(c)).Fbuf, len2*uint64(4)) + if !(newbuf != 0) { + return uint64(0) + } + v1 = newbuf + (*Tcookie2)(unsafe.Pointer(c)).Fbuf = v1 + *(*uintptr)(unsafe.Pointer((*Tcookie2)(unsafe.Pointer(c)).Fbufp)) = v1 + Xmemset(tls, (*Tcookie2)(unsafe.Pointer(c)).Fbuf+uintptr((*Tcookie2)(unsafe.Pointer(c)).Fspace)*4, 0, uint64(4)*(len2-(*Tcookie2)(unsafe.Pointer(c)).Fspace)) + (*Tcookie2)(unsafe.Pointer(c)).Fspace = len2 + } + len2 = Xmbsnrtowcs(tls, (*Tcookie2)(unsafe.Pointer(c)).Fbuf+uintptr((*Tcookie2)(unsafe.Pointer(c)).Fpos)*4, bp, len1, (*Tcookie2)(unsafe.Pointer(c)).Fspace-(*Tcookie2)(unsafe.Pointer(c)).Fpos, c+48) + if len2 == uint64(-Int32FromInt32(1)) { + return uint64(0) + } + *(*Tsize_t)(unsafe.Pointer(c + 16)) += len2 + if (*Tcookie2)(unsafe.Pointer(c)).Fpos >= (*Tcookie2)(unsafe.Pointer(c)).Flen1 { + (*Tcookie2)(unsafe.Pointer(c)).Flen1 = (*Tcookie2)(unsafe.Pointer(c)).Fpos + } + *(*Tsize_t)(unsafe.Pointer((*Tcookie2)(unsafe.Pointer(c)).Fsizep)) = (*Tcookie2)(unsafe.Pointer(c)).Fpos + return len1 +} + +func _wms_close(tls *TLS, f uintptr) (r int32) { + return 0 +} + +func Xopen_wmemstream(tls *TLS, bufp uintptr, sizep uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v bufp=%v sizep=%v, (%v:)", tls, bufp, sizep, origin(2)) + defer func() { trc("-> %v", r) }() + } + var buf, f, v1, v2, v6 uintptr + var v3, v4, v5 Tsize_t + _, _, _, _, _, _, _, _ = buf, f, v1, v2, v3, v4, v5, v6 + v1 = Xmalloc(tls, uint64(296)) + f = v1 + if !(v1 != 0) { + return uintptr(0) + } + v2 = Xmalloc(tls, uint64(4)) + buf = v2 + if !(v2 != 0) { + Xfree(tls, f) + return uintptr(0) + } + Xmemset(tls, f, 0, uint64(232)) + Xmemset(tls, f+232, 0, uint64(56)) + (*Twms_FILE)(unsafe.Pointer(f)).Ff.Fcookie = f + 232 + (*Twms_FILE)(unsafe.Pointer(f)).Fc.Fbufp = bufp + (*Twms_FILE)(unsafe.Pointer(f)).Fc.Fsizep = sizep + v5 = Uint64FromInt32(0) + *(*Tsize_t)(unsafe.Pointer(sizep)) = v5 + v4 = v5 + (*Twms_FILE)(unsafe.Pointer(f)).Fc.Fspace = v4 + v3 = v4 + (*Twms_FILE)(unsafe.Pointer(f)).Fc.Flen1 = v3 + (*Twms_FILE)(unsafe.Pointer(f)).Fc.Fpos = v3 + v6 = buf + *(*uintptr)(unsafe.Pointer(bufp)) = v6 + (*Twms_FILE)(unsafe.Pointer(f)).Fc.Fbuf = v6 + *(*Twchar_t)(unsafe.Pointer(buf)) = uint32(0) + (*Twms_FILE)(unsafe.Pointer(f)).Ff.Fflags = uint32(F_NORD) + (*Twms_FILE)(unsafe.Pointer(f)).Ff.Ffd = -int32(1) + (*Twms_FILE)(unsafe.Pointer(f)).Ff.Fbuf = f + 288 + (*Twms_FILE)(unsafe.Pointer(f)).Ff.Fbuf_size = uint64(0) + (*Twms_FILE)(unsafe.Pointer(f)).Ff.Flbf = -int32(1) + (*Twms_FILE)(unsafe.Pointer(f)).Ff.Fwrite = __ccgo_fp(_wms_write) + (*Twms_FILE)(unsafe.Pointer(f)).Ff.Fseek = __ccgo_fp(_wms_seek) + (*Twms_FILE)(unsafe.Pointer(f)).Ff.Fclose1 = __ccgo_fp(_wms_close) + if !(X__libc.Fthreaded != 0) { + AtomicStorePInt32(f+140, -int32(1)) + } + Xfwide(tls, f, int32(1)) + return X__ofl_add(tls, f) +} + +func Xpclose(tls *TLS, f uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var pid Tpid_t + var r, v1 int32 + var _ /* status at bp+0 */ int32 + _, _, _ = pid, r, v1 + pid = (*TFILE)(unsafe.Pointer(f)).Fpipe_pid + Xfclose(tls, f) + for { + v1 = int32(X__syscall4(tls, int64(SYS_wait4), int64(pid), int64(bp), int64(Int32FromInt32(0)), int64(Int32FromInt32(0)))) + r = v1 + if !(v1 == -int32(EINTR)) { + break + } + } + if r < 0 { + return int32(X__syscall_ret(tls, uint64(r))) + } + return *(*int32)(unsafe.Pointer(bp)) +} + +func Xperror(tls *TLS, msg uintptr) { + if __ccgo_strace { + trc("tls=%v msg=%v, (%v:)", tls, msg, origin(2)) + } + var __need_unlock, old_mode, v1 int32 + var errstr, f, old_locale uintptr + _, _, _, _, _, _ = __need_unlock, errstr, f, old_locale, old_mode, v1 + f = uintptr(unsafe.Pointer(&X__stderr_FILE)) + errstr = Xstrerror(tls, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + /* Save stderr's orientation and encoding rule, since perror is not + * permitted to change them. */ + old_locale = (*TFILE)(unsafe.Pointer(f)).Flocale + old_mode = (*TFILE)(unsafe.Pointer(f)).Fmode + if msg != 0 && *(*uint8)(unsafe.Pointer(msg)) != 0 { + Xfwrite(tls, msg, Xstrlen(tls, msg), uint64(1), f) + Xfputc(tls, int32(':'), f) + Xfputc(tls, int32(' '), f) + } + Xfwrite(tls, errstr, Xstrlen(tls, errstr), uint64(1), f) + Xfputc(tls, int32('\n'), f) + (*TFILE)(unsafe.Pointer(f)).Fmode = old_mode + (*TFILE)(unsafe.Pointer(f)).Flocale = old_locale + if __need_unlock != 0 { + ___unlockfile(tls, f) + } +} + +func Xprintf(tls *TLS, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fmt=%v va=%v, (%v:)", tls, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var ret int32 + _, _ = ap, ret + ap = va + ret = Xvfprintf(tls, uintptr(unsafe.Pointer(&X__stdout_FILE)), fmt, ap) + _ = ap + return ret +} + +func _locking_putc1(tls *TLS, c int32, f uintptr) (r1 int32) { + var old, old1, r, v, v14, v17, v19, v2, v22, v23, v5, v7, v9 int32 + var v1, v11, v12, v13, v21 uintptr + var v10 uint8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = old, old1, r, v, v1, v10, v11, v12, v13, v14, v17, v19, v2, v21, v22, v23, v5, v7, v9 + v1 = f + 140 + for { + // __asm__ __volatile__ ("ldaxr %w0,%1" : "=r"(v) : "Q"(*p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 5, __ccgo_ts+1521) + v5 = v + goto _6 + _6: + old = v5 + if old != 0 { + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+1521) + break + } + goto _4 + _4: + ; + // __asm__ __volatile__ ("stlxr %w0,%w2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 13, __ccgo_ts+1521) + v2 = BoolInt32(!(r != 0)) + goto _3 + _3: + ; + if !!(v2 != 0) { + break + } + } + v7 = old + goto _8 +_8: + if v7 != 0 { + ___lockfile(tls, f) + } + if int32(uint8(c)) != (*TFILE)(unsafe.Pointer(f)).Flbf && (*TFILE)(unsafe.Pointer(f)).Fwpos != (*TFILE)(unsafe.Pointer(f)).Fwend { + v10 = uint8(c) + v12 = f + 40 + v11 = *(*uintptr)(unsafe.Pointer(v12)) + *(*uintptr)(unsafe.Pointer(v12))++ + *(*uint8)(unsafe.Pointer(v11)) = v10 + v9 = int32(v10) + } else { + v9 = X__overflow(tls, f, int32(uint8(c))) + } + c = v9 + v13 = f + 140 + for { + // __asm__ __volatile__ ("ldaxr %w0,%1" : "=r"(v) : "Q"(*p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 5, __ccgo_ts+1521) + v17 = v + goto _18 + _18: + old1 = v17 + goto _16 + _16: + ; + // __asm__ __volatile__ ("stlxr %w0,%w2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 13, __ccgo_ts+1521) + v14 = BoolInt32(!(r != 0)) + goto _15 + _15: + ; + if !!(v14 != 0) { + break + } + } + v19 = old1 + goto _20 +_20: + if v19&int32(MAYBE_WAITERS) != 0 { + v21 = f + 140 + v22 = int32(1) + v23 = int32(1) + if v23 != 0 { + v23 = int32(FUTEX_PRIVATE) + } + if v22 < Int32FromInt32(0) { + v22 = int32(INT_MAX) + } + _ = X__syscall3(tls, int64(SYS_futex), int64(v21), int64(Int32FromInt32(FUTEX_WAKE)|v23), int64(v22)) != int64(-int32(ENOSYS)) || X__syscall3(tls, int64(SYS_futex), int64(v21), int64(Int32FromInt32(FUTEX_WAKE)), int64(v22)) != 0 + } + return c +} + +func Xputc(tls *TLS, c1 int32, f1 uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v c1=%v f1=%v, (%v:)", tls, c1, f1, origin(2)) + defer func() { trc("-> %v", r) }() + } + var l, v1, v3, v5 int32 + var v2, v7, v8 uintptr + var v6 uint8 + _, _, _, _, _, _, _, _ = l, v1, v2, v3, v5, v6, v7, v8 + v1 = c1 + v2 = f1 + l = AtomicLoadPInt32(v2 + 140) + if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Ftid { + if int32(uint8(v1)) != (*TFILE)(unsafe.Pointer(v2)).Flbf && (*TFILE)(unsafe.Pointer(v2)).Fwpos != (*TFILE)(unsafe.Pointer(v2)).Fwend { + v6 = uint8(v1) + v8 = v2 + 40 + v7 = *(*uintptr)(unsafe.Pointer(v8)) + *(*uintptr)(unsafe.Pointer(v8))++ + *(*uint8)(unsafe.Pointer(v7)) = v6 + v5 = int32(v6) + } else { + v5 = X__overflow(tls, v2, int32(uint8(v1))) + } + v3 = v5 + goto _4 + } + v3 = _locking_putc1(tls, v1, v2) + goto _4 +_4: + return v3 +} + +func X_IO_putc(tls *TLS, c1 int32, f1 uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v c1=%v f1=%v, (%v:)", tls, c1, f1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xputc(tls, c1, f1) +} + +func Xputc_unlocked(tls *TLS, c int32, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v f=%v, (%v:)", tls, c, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 int32 + var v2 uint8 + var v3, v4 uintptr + _, _, _, _ = v1, v2, v3, v4 + if int32(uint8(c)) != (*TFILE)(unsafe.Pointer(f)).Flbf && (*TFILE)(unsafe.Pointer(f)).Fwpos != (*TFILE)(unsafe.Pointer(f)).Fwend { + v2 = uint8(c) + v4 = f + 40 + v3 = *(*uintptr)(unsafe.Pointer(v4)) + *(*uintptr)(unsafe.Pointer(v4))++ + *(*uint8)(unsafe.Pointer(v3)) = v2 + v1 = int32(v2) + } else { + v1 = X__overflow(tls, f, int32(uint8(c))) + } + return v1 +} + +func X_IO_putc_unlocked(tls *TLS, c int32, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v f=%v, (%v:)", tls, c, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xputc_unlocked(tls, c, f) +} + +func Xfputc_unlocked(tls *TLS, c int32, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v f=%v, (%v:)", tls, c, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xputc_unlocked(tls, c, f) +} + +func _locking_putc2(tls *TLS, c int32, f uintptr) (r1 int32) { + var old, old1, r, v, v14, v17, v19, v2, v22, v23, v5, v7, v9 int32 + var v1, v11, v12, v13, v21 uintptr + var v10 uint8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = old, old1, r, v, v1, v10, v11, v12, v13, v14, v17, v19, v2, v21, v22, v23, v5, v7, v9 + v1 = f + 140 + for { + // __asm__ __volatile__ ("ldaxr %w0,%1" : "=r"(v) : "Q"(*p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 5, __ccgo_ts+1521) + v5 = v + goto _6 + _6: + old = v5 + if old != 0 { + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+1521) + break + } + goto _4 + _4: + ; + // __asm__ __volatile__ ("stlxr %w0,%w2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 13, __ccgo_ts+1521) + v2 = BoolInt32(!(r != 0)) + goto _3 + _3: + ; + if !!(v2 != 0) { + break + } + } + v7 = old + goto _8 +_8: + if v7 != 0 { + ___lockfile(tls, f) + } + if int32(uint8(c)) != (*TFILE)(unsafe.Pointer(f)).Flbf && (*TFILE)(unsafe.Pointer(f)).Fwpos != (*TFILE)(unsafe.Pointer(f)).Fwend { + v10 = uint8(c) + v12 = f + 40 + v11 = *(*uintptr)(unsafe.Pointer(v12)) + *(*uintptr)(unsafe.Pointer(v12))++ + *(*uint8)(unsafe.Pointer(v11)) = v10 + v9 = int32(v10) + } else { + v9 = X__overflow(tls, f, int32(uint8(c))) + } + c = v9 + v13 = f + 140 + for { + // __asm__ __volatile__ ("ldaxr %w0,%1" : "=r"(v) : "Q"(*p)); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 5, __ccgo_ts+1521) + v17 = v + goto _18 + _18: + old1 = v17 + goto _16 + _16: + ; + // __asm__ __volatile__ ("stlxr %w0,%w2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 13, __ccgo_ts+1521) + v14 = BoolInt32(!(r != 0)) + goto _15 + _15: + ; + if !!(v14 != 0) { + break + } + } + v19 = old1 + goto _20 +_20: + if v19&int32(MAYBE_WAITERS) != 0 { + v21 = f + 140 + v22 = int32(1) + v23 = int32(1) + if v23 != 0 { + v23 = int32(FUTEX_PRIVATE) + } + if v22 < Int32FromInt32(0) { + v22 = int32(INT_MAX) + } + _ = X__syscall3(tls, int64(SYS_futex), int64(v21), int64(Int32FromInt32(FUTEX_WAKE)|v23), int64(v22)) != int64(-int32(ENOSYS)) || X__syscall3(tls, int64(SYS_futex), int64(v21), int64(Int32FromInt32(FUTEX_WAKE)), int64(v22)) != 0 + } + return c +} + +func Xputchar(tls *TLS, c1 int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c1=%v, (%v:)", tls, c1, origin(2)) + defer func() { trc("-> %v", r) }() + } + var l, v1, v3, v5 int32 + var v2, v7, v8 uintptr + var v6 uint8 + _, _, _, _, _, _, _, _ = l, v1, v2, v3, v5, v6, v7, v8 + v1 = c1 + v2 = uintptr(unsafe.Pointer(&X__stdout_FILE)) + l = AtomicLoadPInt32(v2 + 140) + if l < 0 || l != 0 && l & ^Int32FromInt32(MAYBE_WAITERS) == (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Ftid { + if int32(uint8(v1)) != (*TFILE)(unsafe.Pointer(v2)).Flbf && (*TFILE)(unsafe.Pointer(v2)).Fwpos != (*TFILE)(unsafe.Pointer(v2)).Fwend { + v6 = uint8(v1) + v8 = v2 + 40 + v7 = *(*uintptr)(unsafe.Pointer(v8)) + *(*uintptr)(unsafe.Pointer(v8))++ + *(*uint8)(unsafe.Pointer(v7)) = v6 + v5 = int32(v6) + } else { + v5 = X__overflow(tls, v2, int32(uint8(v1))) + } + v3 = v5 + goto _4 + } + v3 = _locking_putc2(tls, v1, v2) + goto _4 +_4: + return v3 +} + +func Xputchar_unlocked(tls *TLS, c int32) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 int32 + var v2 uint8 + var v3, v4 uintptr + _, _, _, _ = v1, v2, v3, v4 + if int32(uint8(c)) != (*TFILE)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__stdout_FILE)))).Flbf && (*TFILE)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__stdout_FILE)))).Fwpos != (*TFILE)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__stdout_FILE)))).Fwend { + v2 = uint8(c) + v4 = uintptr(unsafe.Pointer(&X__stdout_FILE)) + 40 + v3 = *(*uintptr)(unsafe.Pointer(v4)) + *(*uintptr)(unsafe.Pointer(v4))++ + *(*uint8)(unsafe.Pointer(v3)) = v2 + v1 = int32(v2) + } else { + v1 = X__overflow(tls, uintptr(unsafe.Pointer(&X__stdout_FILE)), int32(uint8(c))) + } + return v1 +} + +func Xputs(tls *TLS, s uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var __need_unlock, r, v1, v2 int32 + var v3 uint8 + var v4, v5 uintptr + var v6 bool + _, _, _, _, _, _, _, _ = __need_unlock, r, v1, v2, v3, v4, v5, v6 + if AtomicLoadPInt32(uintptr(unsafe.Pointer(&X__stdout_FILE))+140) >= 0 { + v1 = ___lockfile(tls, uintptr(unsafe.Pointer(&X__stdout_FILE))) + } else { + v1 = 0 + } + __need_unlock = v1 + if v6 = Xfputs(tls, s, uintptr(unsafe.Pointer(&X__stdout_FILE))) < 0; !v6 { + if int32(uint8(Int32FromUint8('\n'))) != (*TFILE)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__stdout_FILE)))).Flbf && (*TFILE)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__stdout_FILE)))).Fwpos != (*TFILE)(unsafe.Pointer(uintptr(unsafe.Pointer(&X__stdout_FILE)))).Fwend { + v3 = uint8(Int32FromUint8('\n')) + v5 = uintptr(unsafe.Pointer(&X__stdout_FILE)) + 40 + v4 = *(*uintptr)(unsafe.Pointer(v5)) + *(*uintptr)(unsafe.Pointer(v5))++ + *(*uint8)(unsafe.Pointer(v4)) = v3 + v2 = int32(v3) + } else { + v2 = X__overflow(tls, uintptr(unsafe.Pointer(&X__stdout_FILE)), int32(uint8(Int32FromUint8('\n')))) + } + } + r = -BoolInt32(v6 || v2 < 0) + if __need_unlock != 0 { + ___unlockfile(tls, uintptr(unsafe.Pointer(&X__stdout_FILE))) + } + return r +} + +func Xputw(tls *TLS, _x int32, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v _x=%v f=%v, (%v:)", tls, _x, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + *(*int32)(unsafe.Pointer(bp)) = _x + return int32(Xfwrite(tls, bp, uint64(4), uint64(1), f)) - int32(1) +} + +func Xputwc(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v c=%v f=%v, (%v:)", tls, c, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfputwc(tls, c, f) +} + +func Xputwchar(tls *TLS, c Twchar_t) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xfputwc(tls, c, uintptr(unsafe.Pointer(&X__stdout_FILE))) +} + +func Xputwchar_unlocked(tls *TLS, c Twchar_t) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xputwchar(tls, c) +} + +func Xremove(tls *TLS, path uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v path=%v, (%v:)", tls, path, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r int32 + _ = r + r = int32(X__syscall3(tls, int64(SYS_unlinkat), int64(-Int32FromInt32(100)), int64(path), int64(Int32FromInt32(0)))) + if r == -int32(EISDIR) { + r = int32(X__syscall3(tls, int64(SYS_unlinkat), int64(-Int32FromInt32(100)), int64(path), int64(Int32FromInt32(AT_REMOVEDIR)))) + } + return int32(X__syscall_ret(tls, uint64(r))) +} + +func Xrename(tls *TLS, old uintptr, new1 uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v old=%v new1=%v, (%v:)", tls, old, new1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_renameat), int64(-Int32FromInt32(100)), int64(old), int64(-Int32FromInt32(100)), int64(new1))))) +} + +func Xrewind(tls *TLS, f uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + } + var __need_unlock, v1 int32 + _, _ = __need_unlock, v1 + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + X__fseeko_unlocked(tls, f, 0, 0) + *(*uint32)(unsafe.Pointer(f)) &= uint32(^Int32FromInt32(F_ERR)) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } +} + +func Xscanf(tls *TLS, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fmt=%v va=%v, (%v:)", tls, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var ret int32 + _, _ = ap, ret + ap = va + ret = Xvscanf(tls, fmt, ap) + _ = ap + return ret +} + +func X__isoc99_scanf(tls *TLS, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fmt=%v va=%v, (%v:)", tls, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xscanf(tls, fmt, va) +} + +func Xsetbuf(tls *TLS, f uintptr, buf uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v buf=%v, (%v:)", tls, f, buf, origin(2)) + } + var v1 int32 + _ = v1 + if buf != 0 { + v1 = _IOFBF + } else { + v1 = int32(_IONBF) + } + Xsetvbuf(tls, f, buf, v1, uint64(BUFSIZ)) +} + +func Xsetbuffer(tls *TLS, f uintptr, buf uintptr, size Tsize_t) { + if __ccgo_strace { + trc("tls=%v f=%v buf=%v size=%v, (%v:)", tls, f, buf, size, origin(2)) + } + var v1 int32 + _ = v1 + if buf != 0 { + v1 = _IOFBF + } else { + v1 = int32(_IONBF) + } + Xsetvbuf(tls, f, buf, v1, size) +} + +func Xsetlinebuf(tls *TLS, f uintptr) { + if __ccgo_strace { + trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) + } + Xsetvbuf(tls, f, uintptr(0), int32(_IOLBF), uint64(0)) +} + +/* The behavior of this function is undefined except when it is the first + * operation on the stream, so the presence or absence of locking is not + * observable in a program whose behavior is defined. Thus no locking is + * performed here. No allocation of buffers is performed, but a buffer + * provided by the caller is used as long as it is suitably sized. */ + +func Xsetvbuf(tls *TLS, f uintptr, buf uintptr, type1 int32, size Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v buf=%v type1=%v size=%v, (%v:)", tls, f, buf, type1, size, origin(2)) + defer func() { trc("-> %v", r) }() + } + (*TFILE)(unsafe.Pointer(f)).Flbf = -int32(1) + if type1 == int32(_IONBF) { + (*TFILE)(unsafe.Pointer(f)).Fbuf_size = uint64(0) + } else { + if type1 == int32(_IOLBF) || type1 == _IOFBF { + if buf != 0 && size >= uint64(UNGET) { + (*TFILE)(unsafe.Pointer(f)).Fbuf = buf + UintptrFromInt32(UNGET) + (*TFILE)(unsafe.Pointer(f)).Fbuf_size = size - uint64(UNGET) + } + if type1 == int32(_IOLBF) && (*TFILE)(unsafe.Pointer(f)).Fbuf_size != 0 { + (*TFILE)(unsafe.Pointer(f)).Flbf = int32('\n') + } + } else { + return -int32(1) + } + } + *(*uint32)(unsafe.Pointer(f)) |= uint32(F_SVB) + return 0 +} + +func Xsnprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v fmt=%v va=%v, (%v:)", tls, s, n, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var ret int32 + _, _ = ap, ret + ap = va + ret = Xvsnprintf(tls, s, n, fmt, ap) + _ = ap + return ret +} + +func Xsprintf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v fmt=%v va=%v, (%v:)", tls, s, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var ret int32 + _, _ = ap, ret + ap = va + ret = Xvsprintf(tls, s, fmt, ap) + _ = ap + return ret +} + +func Xsscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v fmt=%v va=%v, (%v:)", tls, s, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var ret int32 + _, _ = ap, ret + ap = va + ret = Xvsscanf(tls, s, fmt, ap) + _ = ap + return ret +} + +func X__isoc99_sscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v fmt=%v va=%v, (%v:)", tls, s, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xsscanf(tls, s, fmt, va) +} + +var _buf5 [8]uint8 + +func init() { + p := unsafe.Pointer(&X__stderr_FILE) + *(*uintptr)(unsafe.Add(p, 24)) = __ccgo_fp(X__stdio_close) + *(*uintptr)(unsafe.Add(p, 72)) = __ccgo_fp(X__stdio_write) + *(*uintptr)(unsafe.Add(p, 80)) = __ccgo_fp(X__stdio_seek) +} + +var _buf6 [1032]uint8 + +func init() { + p := unsafe.Pointer(&X__stdin_FILE) + *(*uintptr)(unsafe.Add(p, 24)) = __ccgo_fp(X__stdio_close) + *(*uintptr)(unsafe.Add(p, 64)) = __ccgo_fp(X__stdio_read) + *(*uintptr)(unsafe.Add(p, 80)) = __ccgo_fp(X__stdio_seek) +} + +var _buf7 [1032]uint8 + +func init() { + p := unsafe.Pointer(&X__stdout_FILE) + *(*uintptr)(unsafe.Add(p, 24)) = __ccgo_fp(X__stdio_close) + *(*uintptr)(unsafe.Add(p, 72)) = __ccgo_fp(X__stdout_write) + *(*uintptr)(unsafe.Add(p, 80)) = __ccgo_fp(X__stdio_seek) +} + +func Xswprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v fmt=%v va=%v, (%v:)", tls, s, n, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var ret int32 + _, _ = ap, ret + ap = va + ret = Xvswprintf(tls, s, n, fmt, ap) + _ = ap + return ret +} + +func Xswscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v fmt=%v va=%v, (%v:)", tls, s, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var ret int32 + _, _ = ap, ret + ap = va + ret = Xvswscanf(tls, s, fmt, ap) + _ = ap + return ret +} + +func X__isoc99_swscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v fmt=%v va=%v, (%v:)", tls, s, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xswscanf(tls, s, fmt, va) +} + +const MAXTRIES = 100 + +func Xtempnam(tls *TLS, dir uintptr, pfx uintptr) (r1 uintptr) { + if __ccgo_strace { + trc("tls=%v dir=%v pfx=%v, (%v:)", tls, dir, pfx, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(4112) + defer tls.Free(4112) + var dl, l, pl Tsize_t + var r, try int32 + var _ /* s at bp+1 */ [4096]uint8 + _, _, _, _, _ = dl, l, pl, r, try + if !(dir != 0) { + dir = __ccgo_ts + 1573 + } + if !(pfx != 0) { + pfx = __ccgo_ts + 1578 + } + dl = Xstrlen(tls, dir) + pl = Xstrlen(tls, pfx) + l = dl + uint64(1) + pl + uint64(1) + uint64(6) + if l >= uint64(PATH_MAX) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENAMETOOLONG) + return uintptr(0) + } + Xmemcpy(tls, bp+1, dir, dl) + (*(*[4096]uint8)(unsafe.Pointer(bp + 1)))[dl] = uint8('/') + Xmemcpy(tls, bp+1+uintptr(dl)+uintptr(1), pfx, pl) + (*(*[4096]uint8)(unsafe.Pointer(bp + 1)))[dl+uint64(1)+pl] = uint8('_') + (*(*[4096]uint8)(unsafe.Pointer(bp + 1)))[l] = uint8(0) + try = 0 + for { + if !(try < int32(MAXTRIES)) { + break + } + ___randname(tls, bp+1+uintptr(l)-uintptr(6)) + *(*[1]uint8)(unsafe.Pointer(bp)) = [1]uint8{} + r = int32(X__syscall4(tls, int64(SYS_readlinkat), int64(-Int32FromInt32(100)), int64(bp+1), int64(bp), int64(Int32FromInt32(1)))) + if r == -int32(ENOENT) { + return Xstrdup(tls, bp+1) + } + goto _1 + _1: + ; + try++ + } + return uintptr(0) +} + +func Xtmpfile(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var f uintptr + var fd, try int32 + var _ /* s at bp+0 */ [20]uint8 + _, _, _ = f, fd, try + *(*[20]uint8)(unsafe.Pointer(bp)) = [20]uint8{'/', 't', 'm', 'p', '/', 't', 'm', 'p', 'f', 'i', 'l', 'e', '_', 'X', 'X', 'X', 'X', 'X', 'X'} + try = 0 + for { + if !(try < int32(MAXTRIES)) { + break + } + ___randname(tls, bp+uintptr(13)) + fd = int32(X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_openat), int64(-Int32FromInt32(100)), int64(bp), int64(Int32FromInt32(O_RDWR)|Int32FromInt32(O_CREAT)|Int32FromInt32(O_EXCL)|Int32FromInt32(O_LARGEFILE)), int64(Int32FromInt32(0600)))))) + if fd >= 0 { + X__syscall3(tls, int64(SYS_unlinkat), int64(-Int32FromInt32(100)), int64(bp), int64(Int32FromInt32(0))) + f = X__fdopen(tls, fd, __ccgo_ts+1583) + if !(f != 0) { + X__syscall1(tls, int64(SYS_close), int64(fd)) + } + return f + } + goto _1 + _1: + ; + try++ + } + return uintptr(0) +} + +func Xtmpnam(tls *TLS, buf uintptr) (r1 uintptr) { + if __ccgo_strace { + trc("tls=%v buf=%v, (%v:)", tls, buf, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var r, try int32 + var v2 uintptr + var _ /* s at bp+1 */ [19]uint8 + _, _, _ = r, try, v2 + *(*[19]uint8)(unsafe.Pointer(bp + 1)) = [19]uint8{'/', 't', 'm', 'p', '/', 't', 'm', 'p', 'n', 'a', 'm', '_', 'X', 'X', 'X', 'X', 'X', 'X'} + try = 0 + for { + if !(try < int32(MAXTRIES)) { + break + } + ___randname(tls, bp+1+uintptr(12)) + *(*[1]uint8)(unsafe.Pointer(bp)) = [1]uint8{} + r = int32(X__syscall4(tls, int64(SYS_readlinkat), int64(-Int32FromInt32(100)), int64(bp+1), int64(bp), int64(Int32FromInt32(1)))) + if r == -int32(ENOENT) { + if buf != 0 { + v2 = buf + } else { + v2 = uintptr(unsafe.Pointer(&_internal1)) + } + return Xstrcpy(tls, v2, bp+1) + } + goto _1 + _1: + ; + try++ + } + return uintptr(0) +} + +var _internal1 [20]uint8 + +func Xungetc(tls *TLS, c int32, f uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v c=%v f=%v, (%v:)", tls, c, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + var __need_unlock, v1 int32 + var v2, v3 uintptr + _, _, _, _ = __need_unlock, v1, v2, v3 + if c == -int32(1) { + return c + } + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + if !((*TFILE)(unsafe.Pointer(f)).Frpos != 0) { + X__toread(tls, f) + } + if !((*TFILE)(unsafe.Pointer(f)).Frpos != 0) || (*TFILE)(unsafe.Pointer(f)).Frpos <= (*TFILE)(unsafe.Pointer(f)).Fbuf-uintptr(UNGET) { + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return -int32(1) + } + v3 = f + 8 + *(*uintptr)(unsafe.Pointer(v3))-- + v2 = *(*uintptr)(unsafe.Pointer(v3)) + *(*uint8)(unsafe.Pointer(v2)) = uint8(c) + *(*uint32)(unsafe.Pointer(f)) &= uint32(^Int32FromInt32(F_EOF)) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return int32(uint8(c)) +} + +func Xungetwc(tls *TLS, c Twint_t, f uintptr) (r Twint_t) { + if __ccgo_strace { + trc("tls=%v c=%v f=%v, (%v:)", tls, c, f, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var __need_unlock, l, v1, v2 int32 + var loc Tlocale_t + var ploc, v4, v5, p6 uintptr + var v3 bool + var _ /* mbc at bp+0 */ [4]uint8 + _, _, _, _, _, _, _, _, _, _ = __need_unlock, l, loc, ploc, v1, v2, v3, v4, v5, p6 + ploc = ___get_tp(tls) + 152 + loc = *(*Tlocale_t)(unsafe.Pointer(ploc)) + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + if (*TFILE)(unsafe.Pointer(f)).Fmode <= 0 { + Xfwide(tls, f, int32(1)) + } + *(*Tlocale_t)(unsafe.Pointer(ploc)) = (*TFILE)(unsafe.Pointer(f)).Flocale + if !((*TFILE)(unsafe.Pointer(f)).Frpos != 0) { + X__toread(tls, f) + } + if v3 = !((*TFILE)(unsafe.Pointer(f)).Frpos != 0) || c == uint32(0xffffffff); !v3 { + v2 = int32(Xwcrtomb(tls, bp, c, uintptr(0))) + l = v2 + } + if v3 || v2 < 0 || (*TFILE)(unsafe.Pointer(f)).Frpos < (*TFILE)(unsafe.Pointer(f)).Fbuf-uintptr(UNGET)+uintptr(l) { + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + *(*Tlocale_t)(unsafe.Pointer(ploc)) = loc + return uint32(0xffffffff) + } + if BoolInt32(c < uint32(128)) != 0 { + v5 = f + 8 + *(*uintptr)(unsafe.Pointer(v5))-- + v4 = *(*uintptr)(unsafe.Pointer(v5)) + *(*uint8)(unsafe.Pointer(v4)) = uint8(c) + } else { + p6 = f + 8 + *(*uintptr)(unsafe.Pointer(p6)) -= uintptr(l) + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(p6)), bp, uint64(l)) + } + *(*uint32)(unsafe.Pointer(f)) &= uint32(^Int32FromInt32(F_EOF)) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + *(*Tlocale_t)(unsafe.Pointer(ploc)) = loc + return c +} + +func Xvasprintf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v fmt=%v ap=%v, (%v:)", tls, s, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap2 Tva_list + var l int32 + var v1 uintptr + var v2 bool + _, _, _, _ = ap2, l, v1, v2 + ap2 = ap + l = Xvsnprintf(tls, uintptr(0), uint64(0), fmt, ap2) + _ = ap2 + if v2 = l < 0; !v2 { + v1 = Xmalloc(tls, uint64(uint32(l)+uint32(1))) + *(*uintptr)(unsafe.Pointer(s)) = v1 + } + if v2 || !(v1 != 0) { + return -int32(1) + } + return Xvsnprintf(tls, *(*uintptr)(unsafe.Pointer(s)), uint64(uint32(l)+uint32(1)), fmt, ap) +} + +func Xvdprintf(tls *TLS, fd int32, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v fmt=%v ap=%v, (%v:)", tls, fd, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(240) + defer tls.Free(240) + var _ /* f at bp+0 */ TFILE + *(*TFILE)(unsafe.Pointer(bp)) = TFILE{ + Fwrite: __ccgo_fp(X__stdio_write), + Fbuf: fmt, + Ffd: fd, + Flock: -int32(1), + Flbf: -int32(1), + } + return Xvfprintf(tls, bp, fmt, ap) +} + +const ALT_FORM = 8 +const FLAGMASK = 75913 +const GROUPED = 128 +const LDBL_EPSILON3 = 2.22044604925031308085e-16 +const LEFT_ADJ = 8192 +const MARK_POS = 2048 +const PAD_POS = 1 +const ZERO_PAD = 65536 + +const _BARE = 0 +const _LPRE = 1 +const _LLPRE = 2 +const _HPRE = 3 +const _HHPRE = 4 +const _BIGLPRE = 5 +const _ZTPRE = 6 +const _JPRE = 7 +const _STOP = 8 +const _PTR = 9 +const _INT = 10 +const _UINT = 11 +const _ULLONG = 12 +const _LONG = 13 +const _ULONG = 14 +const _SHORT = 15 +const _USHORT = 16 +const _CHAR = 17 +const _UCHAR = 18 +const _LLONG = 19 +const _SIZET = 20 +const _IMAX = 21 +const _UMAX = 22 +const _PDIFF = 23 +const _UIPTR = 24 +const _DBL = 25 +const _LDBL = 26 +const _NOARG = 27 +const _MAXSTATE = 28 + +var _states = [8][58]uint8{ + 0: { + 0: uint8(_DBL), + 2: uint8(_UINT), + 4: uint8(_DBL), + 5: uint8(_DBL), + 6: uint8(_DBL), + 11: uint8(_BIGLPRE), + 18: uint8(_PTR), + 23: uint8(_UINT), + 32: uint8(_DBL), + 34: uint8(_INT), + 35: uint8(_INT), + 36: uint8(_DBL), + 37: uint8(_DBL), + 38: uint8(_DBL), + 39: uint8(_HPRE), + 40: uint8(_INT), + 41: uint8(_JPRE), + 43: uint8(_LPRE), + 44: uint8(_NOARG), + 45: uint8(_PTR), + 46: uint8(_UINT), + 47: uint8(_UIPTR), + 50: uint8(_PTR), + 51: uint8(_ZTPRE), + 52: uint8(_UINT), + 55: uint8(_UINT), + 57: uint8(_ZTPRE), + }, + 1: { + 0: uint8(_DBL), + 4: uint8(_DBL), + 5: uint8(_DBL), + 6: uint8(_DBL), + 23: uint8(_ULONG), + 32: uint8(_DBL), + 34: uint8(_UINT), + 35: uint8(_LONG), + 36: uint8(_DBL), + 37: uint8(_DBL), + 38: uint8(_DBL), + 40: uint8(_LONG), + 43: uint8(_LLPRE), + 45: uint8(_PTR), + 46: uint8(_ULONG), + 50: uint8(_PTR), + 52: uint8(_ULONG), + 55: uint8(_ULONG), + }, + 2: { + 23: uint8(_ULLONG), + 35: uint8(_LLONG), + 40: uint8(_LLONG), + 45: uint8(_PTR), + 46: uint8(_ULLONG), + 52: uint8(_ULLONG), + 55: uint8(_ULLONG), + }, + 3: { + 23: uint8(_USHORT), + 35: uint8(_SHORT), + 39: uint8(_HHPRE), + 40: uint8(_SHORT), + 45: uint8(_PTR), + 46: uint8(_USHORT), + 52: uint8(_USHORT), + 55: uint8(_USHORT), + }, + 4: { + 23: uint8(_UCHAR), + 35: uint8(_CHAR), + 40: uint8(_CHAR), + 45: uint8(_PTR), + 46: uint8(_UCHAR), + 52: uint8(_UCHAR), + 55: uint8(_UCHAR), + }, + 5: { + 0: uint8(_LDBL), + 4: uint8(_LDBL), + 5: uint8(_LDBL), + 6: uint8(_LDBL), + 32: uint8(_LDBL), + 36: uint8(_LDBL), + 37: uint8(_LDBL), + 38: uint8(_LDBL), + 45: uint8(_PTR), + }, + 6: { + 23: uint8(_SIZET), + 35: uint8(_PDIFF), + 40: uint8(_PDIFF), + 45: uint8(_PTR), + 46: uint8(_SIZET), + 52: uint8(_SIZET), + 55: uint8(_SIZET), + }, + 7: { + 23: uint8(_UMAX), + 35: uint8(_IMAX), + 40: uint8(_IMAX), + 45: uint8(_PTR), + 46: uint8(_UMAX), + 52: uint8(_UMAX), + 55: uint8(_UMAX), + }, +} + +type Targ = struct { + Ff [0]float64 + Fp [0]uintptr + Fi Tuintmax_t +} + +func _pop_arg(tls *TLS, arg uintptr, type1 int32, ap uintptr) { + switch type1 { + case int32(_PTR): + *(*uintptr)(unsafe.Pointer(arg)) = VaUintptr(&*(*Tva_list)(unsafe.Pointer(ap))) + case int32(_INT): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaInt32(&*(*Tva_list)(unsafe.Pointer(ap)))) + case int32(_UINT): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaUint32(&*(*Tva_list)(unsafe.Pointer(ap)))) + case int32(_LONG): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaInt64(&*(*Tva_list)(unsafe.Pointer(ap)))) + case int32(_ULONG): + (*Targ)(unsafe.Pointer(arg)).Fi = VaUint64(&*(*Tva_list)(unsafe.Pointer(ap))) + case int32(_ULLONG): + (*Targ)(unsafe.Pointer(arg)).Fi = VaUint64(&*(*Tva_list)(unsafe.Pointer(ap))) + case int32(_SHORT): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(int16(VaInt32(&*(*Tva_list)(unsafe.Pointer(ap))))) + case int32(_USHORT): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(uint16(VaInt32(&*(*Tva_list)(unsafe.Pointer(ap))))) + case int32(_CHAR): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(int8(VaInt32(&*(*Tva_list)(unsafe.Pointer(ap))))) + case int32(_UCHAR): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(uint8(VaInt32(&*(*Tva_list)(unsafe.Pointer(ap))))) + case int32(_LLONG): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaInt64(&*(*Tva_list)(unsafe.Pointer(ap)))) + case int32(_SIZET): + (*Targ)(unsafe.Pointer(arg)).Fi = VaUint64(&*(*Tva_list)(unsafe.Pointer(ap))) + case int32(_IMAX): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaInt64(&*(*Tva_list)(unsafe.Pointer(ap)))) + case int32(_UMAX): + (*Targ)(unsafe.Pointer(arg)).Fi = VaUint64(&*(*Tva_list)(unsafe.Pointer(ap))) + case int32(_PDIFF): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaInt64(&*(*Tva_list)(unsafe.Pointer(ap)))) + case int32(_UIPTR): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaUintptr(&*(*Tva_list)(unsafe.Pointer(ap)))) + case int32(_DBL): + *(*float64)(unsafe.Pointer(arg)) = VaFloat64(&*(*Tva_list)(unsafe.Pointer(ap))) + case int32(_LDBL): + *(*float64)(unsafe.Pointer(arg)) = VaFloat64(&*(*Tva_list)(unsafe.Pointer(ap))) + } +} + +func _out(tls *TLS, f uintptr, s uintptr, l Tsize_t) { + if !((*TFILE)(unsafe.Pointer(f)).Fflags&Uint32FromInt32(F_ERR) != 0) { + X__fwritex(tls, s, l, f) + } +} + +func _pad3(tls *TLS, f uintptr, c uint8, w int32, l int32, fl int32) { + bp := tls.Alloc(256) + defer tls.Free(256) + var v1 uint64 + var _ /* pad at bp+0 */ [256]uint8 + _ = v1 + if uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' '))|Uint32FromUint32(1)<<(Int32FromUint8('0')-Int32FromUint8(' '))) != 0 || l >= w { + return + } + l = w - l + if uint64(l) > uint64(256) { + v1 = uint64(256) + } else { + v1 = uint64(l) + } + Xmemset(tls, bp, int32(c), v1) + for { + if !(uint64(l) >= uint64(256)) { + break + } + _out(tls, f, bp, uint64(256)) + goto _2 + _2: + ; + l = int32(uint64(l) - Uint64FromInt64(256)) + } + _out(tls, f, bp, uint64(l)) +} + +var _xdigits1 = [16]uint8{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'} + +func _fmt_x(tls *TLS, x Tuintmax_t, s uintptr, lower int32) (r uintptr) { + var v2 uintptr + _ = v2 + for { + if !(x != 0) { + break + } + s-- + v2 = s + *(*uint8)(unsafe.Pointer(v2)) = uint8(int32(_xdigits1[x&uint64(15)]) | lower) + goto _1 + _1: + ; + x >>= uint64(4) + } + return s +} + +func _fmt_o(tls *TLS, x Tuintmax_t, s uintptr) (r uintptr) { + var v2 uintptr + _ = v2 + for { + if !(x != 0) { + break + } + s-- + v2 = s + *(*uint8)(unsafe.Pointer(v2)) = uint8(uint64('0') + x&uint64(7)) + goto _1 + _1: + ; + x >>= uint64(3) + } + return s +} + +func _fmt_u(tls *TLS, x Tuintmax_t, s uintptr) (r uintptr) { + var y uint64 + var v2, v4 uintptr + _, _, _ = y, v2, v4 + for { + if !(x > Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1)) { + break + } + s-- + v2 = s + *(*uint8)(unsafe.Pointer(v2)) = uint8(uint64('0') + x%uint64(10)) + goto _1 + _1: + ; + x /= uint64(10) + } + y = x + for { + if !(y != 0) { + break + } + s-- + v4 = s + *(*uint8)(unsafe.Pointer(v4)) = uint8(uint64('0') + y%uint64(10)) + goto _3 + _3: + ; + y /= uint64(10) + } + return s +} + +// C documentation +// +// /* Do not override this check. The floating point printing code below +// * depends on the float.h constants being right. If they are wrong, it +// * may overflow the stack. */ +type Tcompiler_defines_long_double_incorrectly = [1]uint8 + +func _fmt_fp(tls *TLS, f uintptr, y float64, w int32, p int32, fl int32, t int32) (r1 int32) { + bp := tls.Alloc(560) + defer tls.Free(560) + var a, b, d, ebuf, estr, prefix, r, s, s1, s2, s3, s4, z, v10, v11, v13, v14, v15, v17, v18, v19, v20, v21, v24, v27, v28, v31, v32, v43, v44, v46, v48, v49, v5, v51, v54, v55, v56, v6 uintptr + var carry, carry1, rm, x2 Tuint32_t + var e, i, j, l, need, pl, re, sh, sh1, x, v12, v16, v22, v25, v42, v45, v52, v58, v7, v8, v9 int32 + var round, round1, small float64 + var x1 Tuint64_t + var v1, v3 uint64 + var v36, v37, v38, v39, v40, v41, v57 int64 + var _ /* __u at bp+0 */ struct { + F__i [0]uint64 + F__f float64 + } + var _ /* big at bp+8 */ [126]Tuint32_t + var _ /* buf at bp+516 */ [22]uint8 + var _ /* e2 at bp+512 */ int32 + var _ /* ebuf0 at bp+538 */ [12]uint8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, b, carry, carry1, d, e, ebuf, estr, i, j, l, need, pl, prefix, r, re, rm, round, round1, s, s1, s2, s3, s4, sh, sh1, small, x, x1, x2, z, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v24, v25, v27, v28, v3, v31, v32, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v48, v49, v5, v51, v52, v54, v55, v56, v57, v58, v6, v7, v8, v9 + *(*int32)(unsafe.Pointer(bp + 512)) = 0 + prefix = __ccgo_ts + 1586 + ebuf = bp + 538 + uintptr(Uint64FromInt32(3)*Uint64FromInt64(4)) + pl = int32(1) + *(*float64)(unsafe.Pointer(bp)) = y + v1 = *(*uint64)(unsafe.Pointer(bp)) + goto _2 +_2: + if int32(v1>>Int32FromInt32(63)) != 0 { + y = -y + } else { + if uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('+')-Int32FromUint8(' '))) != 0 { + prefix += uintptr(3) + } else { + if uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8(' ')-Int32FromUint8(' '))) != 0 { + prefix += uintptr(6) + } else { + prefix++ + pl = Int32FromInt32(0) + } + } + } + *(*float64)(unsafe.Pointer(bp)) = y + v3 = *(*uint64)(unsafe.Pointer(bp)) + goto _4 +_4: + if !(BoolInt32(v3&(-Uint64FromUint64(1)>>Int32FromInt32(1)) < Uint64FromUint64(0x7ff)< int32(3)+pl { + v7 = w + } else { + v7 = int32(3) + pl + } + return v7 + } + y = Xfrexpl(tls, y, bp+512) * Float64FromInt32(2) + if y != 0 { + *(*int32)(unsafe.Pointer(bp + 512))-- + } + if t|int32(32) == int32('a') { + round = Float64FromFloat64(8) + if t&int32(32) != 0 { + prefix += uintptr(9) + } + pl += int32(2) + if p < 0 || p >= Int32FromInt32(LDBL_MANT_DIG)/Int32FromInt32(4)-Int32FromInt32(1) { + re = 0 + } else { + re = Int32FromInt32(LDBL_MANT_DIG)/Int32FromInt32(4) - Int32FromInt32(1) - p + } + if re != 0 { + round *= float64(Int32FromInt32(1) << (Int32FromInt32(LDBL_MANT_DIG) % Int32FromInt32(4))) + for { + v8 = re + re-- + if !(v8 != 0) { + break + } + round *= Float64FromInt32(16) + } + if int32(*(*uint8)(unsafe.Pointer(prefix))) == int32('-') { + y = -y + y -= round + y += round + y = -y + } else { + y += round + y -= round + } + } + if *(*int32)(unsafe.Pointer(bp + 512)) < 0 { + v9 = -*(*int32)(unsafe.Pointer(bp + 512)) + } else { + v9 = *(*int32)(unsafe.Pointer(bp + 512)) + } + estr = _fmt_u(tls, uint64(v9), ebuf) + if estr == ebuf { + estr-- + v10 = estr + *(*uint8)(unsafe.Pointer(v10)) = uint8('0') + } + estr-- + v11 = estr + if *(*int32)(unsafe.Pointer(bp + 512)) < 0 { + v12 = int32('-') + } else { + v12 = int32('+') + } + *(*uint8)(unsafe.Pointer(v11)) = uint8(v12) + estr-- + v13 = estr + *(*uint8)(unsafe.Pointer(v13)) = uint8(t + (Int32FromUint8('p') - Int32FromUint8('a'))) + s = bp + 516 + for cond := true; cond; cond = y != 0 { + x = int32(y) + v14 = s + s++ + *(*uint8)(unsafe.Pointer(v14)) = uint8(int32(_xdigits1[x]) | t&int32(32)) + y = Float64FromInt32(16) * (y - float64(x)) + if int64(s)-t__predefined_ptrdiff_t(bp+516) == int64(1) && (y != 0 || p > 0 || uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0) { + v15 = s + s++ + *(*uint8)(unsafe.Pointer(v15)) = uint8('.') + } + } + if int64(p) > int64(Int32FromInt32(INT_MAX)-Int32FromInt32(2))-(int64(ebuf)-int64(estr))-int64(pl) { + return -int32(1) + } + if p != 0 && int64(s)-t__predefined_ptrdiff_t(bp+516)-int64(2) < int64(p) { + l = int32(int64(p+Int32FromInt32(2)) + (int64(ebuf) - int64(estr))) + } else { + l = int32(int64(s) - t__predefined_ptrdiff_t(bp+516) + (int64(ebuf) - int64(estr))) + } + _pad3(tls, f, uint8(' '), w, pl+l, fl) + _out(tls, f, prefix, uint64(pl)) + _pad3(tls, f, uint8('0'), w, pl+l, int32(uint32(fl)^Uint32FromUint32(1)<<(Int32FromUint8('0')-Int32FromUint8(' ')))) + _out(tls, f, bp+516, uint64(int64(s)-t__predefined_ptrdiff_t(bp+516))) + _pad3(tls, f, uint8('0'), int32(int64(l)-(int64(ebuf)-int64(estr))-(int64(s)-t__predefined_ptrdiff_t(bp+516))), 0, 0) + _out(tls, f, estr, uint64(int64(ebuf)-int64(estr))) + _pad3(tls, f, uint8(' '), w, pl+l, int32(uint32(fl)^Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' ')))) + if w > pl+l { + v16 = w + } else { + v16 = pl + l + } + return v16 + } + if p < 0 { + p = int32(6) + } + if y != 0 { + y *= Float64FromFloat64(2.68435456e+08) + *(*int32)(unsafe.Pointer(bp + 512)) -= int32(28) + } + if *(*int32)(unsafe.Pointer(bp + 512)) < 0 { + v18 = bp + 8 + z = v18 + v17 = v18 + r = v17 + a = v17 + } else { + v20 = bp + 8 + uintptr(Uint64FromInt64(504)/Uint64FromInt64(4))*4 - UintptrFromInt32(LDBL_MANT_DIG)*4 - UintptrFromInt32(1)*4 + z = v20 + v19 = v20 + r = v19 + a = v19 + } + for cond := true; cond; cond = y != 0 { + *(*Tuint32_t)(unsafe.Pointer(z)) = uint32(y) + v21 = z + z += 4 + y = Float64FromInt32(1000000000) * (y - float64(*(*Tuint32_t)(unsafe.Pointer(v21)))) + } + for *(*int32)(unsafe.Pointer(bp + 512)) > 0 { + carry = uint32(0) + if int32(29) < *(*int32)(unsafe.Pointer(bp + 512)) { + v22 = int32(29) + } else { + v22 = *(*int32)(unsafe.Pointer(bp + 512)) + } + sh = v22 + d = z - uintptr(1)*4 + for { + if !(d >= a) { + break + } + x1 = uint64(*(*Tuint32_t)(unsafe.Pointer(d)))< a && !(*(*Tuint32_t)(unsafe.Pointer(z + uintptr(-Int32FromInt32(1))*4)) != 0) { + z -= 4 + } + *(*int32)(unsafe.Pointer(bp + 512)) -= sh + } + for *(*int32)(unsafe.Pointer(bp + 512)) < 0 { + carry1 = uint32(0) + if int32(9) < -*(*int32)(unsafe.Pointer(bp + 512)) { + v25 = int32(9) + } else { + v25 = -*(*int32)(unsafe.Pointer(bp + 512)) + } + sh1 = v25 + need = int32(uint32(1) + (uint32(p)+Uint32FromInt32(LDBL_MANT_DIG)/Uint32FromUint32(3)+uint32(8))/uint32(9)) + d = a + for { + if !(d < z) { + break + } + rm = *(*Tuint32_t)(unsafe.Pointer(d)) & uint32(int32(1)<>sh1 + carry1 + carry1 = uint32(Int32FromInt32(1000000000)>>sh1) * rm + goto _26 + _26: + ; + d += 4 + } + if !(*(*Tuint32_t)(unsafe.Pointer(a)) != 0) { + a += 4 + } + if carry1 != 0 { + v27 = z + z += 4 + *(*Tuint32_t)(unsafe.Pointer(v27)) = carry1 + } + /* Avoid (slow!) computation past requested precision */ + if t|int32(32) == int32('f') { + v28 = r + } else { + v28 = a + } + b = v28 + if (int64(z)-int64(b))/4 > int64(need) { + z = b + uintptr(need)*4 + } + *(*int32)(unsafe.Pointer(bp + 512)) += sh1 + } + if a < z { + i = int32(10) + e = int32(Int64FromInt32(9) * ((int64(r) - int64(a)) / 4)) + for { + if !(*(*Tuint32_t)(unsafe.Pointer(a)) >= uint32(i)) { + break + } + goto _29 + _29: + ; + i *= int32(10) + e++ + } + } else { + e = 0 + } + /* Perform rounding: j is precision after the radix (possibly neg) */ + j = p - BoolInt32(t|int32(32) != int32('f'))*e - BoolInt32(t|int32(32) == int32('g') && p != 0) + if int64(j) < int64(9)*((int64(z)-int64(r))/4-int64(1)) { + /* We avoid C's broken division of negative numbers */ + d = r + uintptr(1)*4 + uintptr((j+Int32FromInt32(9)*Int32FromInt32(LDBL_MAX_EXP))/Int32FromInt32(9)-Int32FromInt32(LDBL_MAX_EXP))*4 + j += Int32FromInt32(9) * Int32FromInt32(LDBL_MAX_EXP) + j %= int32(9) + i = int32(10) + j++ + for { + if !(j < int32(9)) { + break + } + goto _30 + _30: + ; + i *= int32(10) + j++ + } + x2 = *(*Tuint32_t)(unsafe.Pointer(d)) % uint32(i) + /* Are there any significant digits past j? */ + if x2 != 0 || d+uintptr(1)*4 != z { + round1 = Float64FromInt32(2) / Float64FromFloat64(2.22044604925031308085e-16) + if *(*Tuint32_t)(unsafe.Pointer(d))/uint32(i)&uint32(1) != 0 || i == int32(1000000000) && d > a && *(*Tuint32_t)(unsafe.Pointer(d + uintptr(-Int32FromInt32(1))*4))&uint32(1) != 0 { + round1 += Float64FromInt32(2) + } + if x2 < uint32(i/int32(2)) { + small = Float64FromFloat64(0.5) + } else { + if x2 == uint32(i/int32(2)) && d+uintptr(1)*4 == z { + small = Float64FromFloat64(1) + } else { + small = Float64FromFloat64(1.5) + } + } + if pl != 0 && int32(*(*uint8)(unsafe.Pointer(prefix))) == int32('-') { + round1 *= float64(-Int32FromInt32(1)) + small *= float64(-Int32FromInt32(1)) + } + *(*Tuint32_t)(unsafe.Pointer(d)) -= x2 + /* Decide whether to round by probing round+small */ + if round1+small != round1 { + *(*Tuint32_t)(unsafe.Pointer(d)) = *(*Tuint32_t)(unsafe.Pointer(d)) + uint32(i) + for *(*Tuint32_t)(unsafe.Pointer(d)) > uint32(999999999) { + v31 = d + d -= 4 + *(*Tuint32_t)(unsafe.Pointer(v31)) = uint32(0) + if d < a { + a -= 4 + v32 = a + *(*Tuint32_t)(unsafe.Pointer(v32)) = uint32(0) + } + *(*Tuint32_t)(unsafe.Pointer(d))++ + } + i = int32(10) + e = int32(Int64FromInt32(9) * ((int64(r) - int64(a)) / 4)) + for { + if !(*(*Tuint32_t)(unsafe.Pointer(a)) >= uint32(i)) { + break + } + goto _33 + _33: + ; + i *= int32(10) + e++ + } + } + } + if z > d+uintptr(1)*4 { + z = d + uintptr(1)*4 + } + } + for { + if !(z > a && !(*(*Tuint32_t)(unsafe.Pointer(z + uintptr(-Int32FromInt32(1))*4)) != 0)) { + break + } + goto _34 + _34: + ; + z -= 4 + } + if t|int32(32) == int32('g') { + if !(p != 0) { + p++ + } + if p > e && e >= -int32(4) { + t-- + p -= e + int32(1) + } else { + t -= int32(2) + p-- + } + if !(uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0) { + /* Count trailing zeros in last place */ + if z > a && *(*Tuint32_t)(unsafe.Pointer(z + uintptr(-Int32FromInt32(1))*4)) != 0 { + i = int32(10) + j = Int32FromInt32(0) + for { + if !(*(*Tuint32_t)(unsafe.Pointer(z + uintptr(-Int32FromInt32(1))*4))%uint32(i) == uint32(0)) { + break + } + goto _35 + _35: + ; + i *= int32(10) + j++ + } + } else { + j = int32(9) + } + if t|int32(32) == int32('f') { + if int64(Int32FromInt32(0)) > int64(9)*((int64(z)-int64(r))/4-int64(1))-int64(j) { + v37 = int64(Int32FromInt32(0)) + } else { + v37 = int64(9)*((int64(z)-int64(r))/4-int64(1)) - int64(j) + } + if int64(p) < v37 { + v36 = int64(p) + } else { + if int64(Int32FromInt32(0)) > int64(9)*((int64(z)-int64(r))/4-int64(1))-int64(j) { + v38 = int64(Int32FromInt32(0)) + } else { + v38 = int64(9)*((int64(z)-int64(r))/4-int64(1)) - int64(j) + } + v36 = v38 + } + p = int32(v36) + } else { + if int64(Int32FromInt32(0)) > int64(9)*((int64(z)-int64(r))/4-int64(1))+int64(e)-int64(j) { + v40 = int64(Int32FromInt32(0)) + } else { + v40 = int64(9)*((int64(z)-int64(r))/4-int64(1)) + int64(e) - int64(j) + } + if int64(p) < v40 { + v39 = int64(p) + } else { + if int64(Int32FromInt32(0)) > int64(9)*((int64(z)-int64(r))/4-int64(1))+int64(e)-int64(j) { + v41 = int64(Int32FromInt32(0)) + } else { + v41 = int64(9)*((int64(z)-int64(r))/4-int64(1)) + int64(e) - int64(j) + } + v39 = v41 + } + p = int32(v39) + } + } + } + if p > Int32FromInt32(INT_MAX)-Int32FromInt32(1)-BoolInt32(p != 0 || uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0) { + return -int32(1) + } + l = int32(1) + p + BoolInt32(p != 0 || uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0) + if t|int32(32) == int32('f') { + if e > int32(INT_MAX)-l { + return -int32(1) + } + if e > 0 { + l += e + } + } else { + if e < 0 { + v42 = -e + } else { + v42 = e + } + estr = _fmt_u(tls, uint64(v42), ebuf) + for int64(ebuf)-int64(estr) < int64(2) { + estr-- + v43 = estr + *(*uint8)(unsafe.Pointer(v43)) = uint8('0') + } + estr-- + v44 = estr + if e < 0 { + v45 = int32('-') + } else { + v45 = int32('+') + } + *(*uint8)(unsafe.Pointer(v44)) = uint8(v45) + estr-- + v46 = estr + *(*uint8)(unsafe.Pointer(v46)) = uint8(t) + if int64(ebuf)-int64(estr) > int64(int32(INT_MAX)-l) { + return -int32(1) + } + l = int32(int64(l) + (int64(ebuf) - int64(estr))) + } + if l > int32(INT_MAX)-pl { + return -int32(1) + } + _pad3(tls, f, uint8(' '), w, pl+l, fl) + _out(tls, f, prefix, uint64(pl)) + _pad3(tls, f, uint8('0'), w, pl+l, int32(uint32(fl)^Uint32FromUint32(1)<<(Int32FromUint8('0')-Int32FromUint8(' ')))) + if t|int32(32) == int32('f') { + if a > r { + a = r + } + d = a + for { + if !(d <= r) { + break + } + s2 = _fmt_u(tls, uint64(*(*Tuint32_t)(unsafe.Pointer(d))), bp+516+uintptr(9)) + if d != a { + for s2 > bp+516 { + s2-- + v48 = s2 + *(*uint8)(unsafe.Pointer(v48)) = uint8('0') + } + } else { + if s2 == bp+516+uintptr(9) { + s2-- + v49 = s2 + *(*uint8)(unsafe.Pointer(v49)) = uint8('0') + } + } + _out(tls, f, s2, uint64(int64(bp+516+uintptr(9))-int64(s2))) + goto _47 + _47: + ; + d += 4 + } + if p != 0 || uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0 { + _out(tls, f, __ccgo_ts+558, uint64(1)) + } + for { + if !(d < z && p > 0) { + break + } + s3 = _fmt_u(tls, uint64(*(*Tuint32_t)(unsafe.Pointer(d))), bp+516+uintptr(9)) + for s3 > bp+516 { + s3-- + v51 = s3 + *(*uint8)(unsafe.Pointer(v51)) = uint8('0') + } + if int32(9) < p { + v52 = int32(9) + } else { + v52 = p + } + _out(tls, f, s3, uint64(v52)) + goto _50 + _50: + ; + d += 4 + p -= int32(9) + } + _pad3(tls, f, uint8('0'), p+int32(9), int32(9), 0) + } else { + if z <= a { + z = a + uintptr(1)*4 + } + d = a + for { + if !(d < z && p >= 0) { + break + } + s4 = _fmt_u(tls, uint64(*(*Tuint32_t)(unsafe.Pointer(d))), bp+516+uintptr(9)) + if s4 == bp+516+uintptr(9) { + s4-- + v54 = s4 + *(*uint8)(unsafe.Pointer(v54)) = uint8('0') + } + if d != a { + for s4 > bp+516 { + s4-- + v55 = s4 + *(*uint8)(unsafe.Pointer(v55)) = uint8('0') + } + } else { + v56 = s4 + s4++ + _out(tls, f, v56, uint64(1)) + if p > 0 || uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0 { + _out(tls, f, __ccgo_ts+558, uint64(1)) + } + } + if int64(bp+516+UintptrFromInt32(9))-int64(s4) < int64(p) { + v57 = int64(bp+516+UintptrFromInt32(9)) - int64(s4) + } else { + v57 = int64(p) + } + _out(tls, f, s4, uint64(v57)) + p = int32(int64(p) - (int64(bp+516+UintptrFromInt32(9)) - int64(s4))) + goto _53 + _53: + ; + d += 4 + } + _pad3(tls, f, uint8('0'), p+int32(18), int32(18), 0) + _out(tls, f, estr, uint64(int64(ebuf)-int64(estr))) + } + _pad3(tls, f, uint8(' '), w, pl+l, int32(uint32(fl)^Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' ')))) + if w > pl+l { + v58 = w + } else { + v58 = pl + l + } + return v58 +} + +func _getint(tls *TLS, s uintptr) (r int32) { + var i int32 + _ = i + i = 0 + for { + if !(BoolInt32(uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s)))))-uint32('0') < uint32(10)) != 0) { + break + } + if uint32(i) > Uint32FromInt32(INT_MAX)/Uint32FromUint32(10) || int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s)))))-int32('0') > int32(INT_MAX)-int32(10)*i { + i = -int32(1) + } else { + i = int32(10)*i + (int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s))))) - int32('0')) + } + goto _1 + _1: + ; + *(*uintptr)(unsafe.Pointer(s))++ + } + return i +} + +func _printf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, nl_type uintptr) (r int32) { + bp := tls.Alloc(64) + defer tls.Free(64) + var a, prefix, ws, z, v35, v39, v44, v48, v8 uintptr + var argpos, cnt, l, p, pl, t, w, xp, v36, v40, v42, v43, v47, v5, v50, v6, v7 int32 + var fl, l10n, ps, st uint32 + var i Tsize_t + var v31 uint64 + var v34 int64 + var v45, v49 bool + var _ /* arg at bp+8 */ Targ + var _ /* buf at bp+16 */ [24]uint8 + var _ /* mb at bp+48 */ [4]uint8 + var _ /* s at bp+0 */ uintptr + var _ /* wc at bp+40 */ [2]Twchar_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, argpos, cnt, fl, i, l, l10n, p, pl, prefix, ps, st, t, w, ws, xp, z, v31, v34, v35, v36, v39, v40, v42, v43, v44, v45, v47, v48, v49, v5, v50, v6, v7, v8 + *(*uintptr)(unsafe.Pointer(bp)) = fmt + l10n = uint32(0) + cnt = 0 + l = 0 + for { + /* This error is only specified for snprintf, but since it's + * unspecified for other forms, do the same. Stop immediately + * on overflow; otherwise %n could produce wrong results. */ + if l > int32(INT_MAX)-cnt { + goto overflow + } + /* Update output count, end loop when fmt is exhausted */ + cnt += l + if !(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) != 0) { + break + } + /* Handle literal text and %% format specifiers */ + a = *(*uintptr)(unsafe.Pointer(bp)) + for { + if !(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) != 0 && int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != int32('%')) { + break + } + goto _2 + _2: + ; + *(*uintptr)(unsafe.Pointer(bp))++ + } + z = *(*uintptr)(unsafe.Pointer(bp)) + for { + if !(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) == int32('%') && int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1))) == int32('%')) { + break + } + goto _3 + _3: + ; + z++ + *(*uintptr)(unsafe.Pointer(bp)) += uintptr(2) + } + if int64(z)-int64(a) > int64(int32(INT_MAX)-cnt) { + goto overflow + } + l = int32(int64(z) - int64(a)) + if f != 0 { + _out(tls, f, a, uint64(l)) + } + if l != 0 { + goto _1 + } + if BoolInt32(uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1)))-uint32('0') < uint32(10)) != 0 && int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 2))) == int32('$') { + l10n = uint32(1) + argpos = int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1))) - int32('0') + *(*uintptr)(unsafe.Pointer(bp)) += uintptr(3) + } else { + argpos = -int32(1) + *(*uintptr)(unsafe.Pointer(bp))++ + } + /* Read modifier flags */ + fl = uint32(0) + for { + if !(uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))))-uint32(' ') < uint32(32) && (Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))|Uint32FromUint32(1)<<(Int32FromUint8('0')-Int32FromUint8(' '))|Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' '))|Uint32FromUint32(1)<<(Int32FromUint8(' ')-Int32FromUint8(' '))|Uint32FromUint32(1)<<(Int32FromUint8('+')-Int32FromUint8(' '))|Uint32FromUint32(1)<<(Int32FromUint8('\'')-Int32FromUint8(' ')))&(uint32(1)<<(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))))-int32(' '))) != 0) { + break + } + fl |= uint32(1) << (int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) - int32(' ')) + goto _4 + _4: + ; + *(*uintptr)(unsafe.Pointer(bp))++ + } + /* Read field width */ + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) == int32('*') { + if BoolInt32(uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1)))-uint32('0') < uint32(10)) != 0 && int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 2))) == int32('$') { + l10n = uint32(1) + if !(f != 0) { + *(*int32)(unsafe.Pointer(nl_type + uintptr(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1)))-int32('0'))*4)) = int32(_INT) + w = Int32FromInt32(0) + } else { + w = int32(*(*Tuintmax_t)(unsafe.Pointer(nl_arg + uintptr(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1)))-int32('0'))*8))) + } + *(*uintptr)(unsafe.Pointer(bp)) += uintptr(3) + } else { + if !(l10n != 0) { + if f != 0 { + v5 = VaInt32(&*(*Tva_list)(unsafe.Pointer(ap))) + } else { + v5 = 0 + } + w = v5 + *(*uintptr)(unsafe.Pointer(bp))++ + } else { + goto inval + } + } + if w < 0 { + fl |= Uint32FromUint32(1) << (Int32FromUint8('-') - Int32FromUint8(' ')) + w = -w + } + } else { + v6 = _getint(tls, bp) + w = v6 + if v6 < 0 { + goto overflow + } + } + /* Read precision */ + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) == int32('.') && int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1))) == int32('*') { + if BoolInt32(uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 2)))-uint32('0') < uint32(10)) != 0 && int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 3))) == int32('$') { + if !(f != 0) { + *(*int32)(unsafe.Pointer(nl_type + uintptr(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 2)))-int32('0'))*4)) = int32(_INT) + p = Int32FromInt32(0) + } else { + p = int32(*(*Tuintmax_t)(unsafe.Pointer(nl_arg + uintptr(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 2)))-int32('0'))*8))) + } + *(*uintptr)(unsafe.Pointer(bp)) += uintptr(4) + } else { + if !(l10n != 0) { + if f != 0 { + v7 = VaInt32(&*(*Tva_list)(unsafe.Pointer(ap))) + } else { + v7 = 0 + } + p = v7 + *(*uintptr)(unsafe.Pointer(bp)) += uintptr(2) + } else { + goto inval + } + } + xp = BoolInt32(p >= 0) + } else { + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) == int32('.') { + *(*uintptr)(unsafe.Pointer(bp))++ + p = _getint(tls, bp) + xp = int32(1) + } else { + p = -int32(1) + xp = 0 + } + } + /* Format specifier state machine */ + st = uint32(0) + for cond := true; cond; cond = st-uint32(1) < uint32(_STOP) { + if uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))))-uint32('A') > uint32(Int32FromUint8('z')-Int32FromUint8('A')) { + goto inval + } + ps = st + v8 = *(*uintptr)(unsafe.Pointer(bp)) + *(*uintptr)(unsafe.Pointer(bp))++ + st = uint32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_states)) + uintptr(st)*58 + uintptr(int32(*(*uint8)(unsafe.Pointer(v8)))-int32('A'))))) + } + if !(st != 0) { + goto inval + } + /* Check validity of argument type (nl/normal) */ + if st == uint32(_NOARG) { + if argpos >= 0 { + goto inval + } + } else { + if argpos >= 0 { + if !(f != 0) { + *(*int32)(unsafe.Pointer(nl_type + uintptr(argpos)*4)) = int32(st) + } else { + *(*Targ)(unsafe.Pointer(bp + 8)) = *(*Targ)(unsafe.Pointer(nl_arg + uintptr(argpos)*8)) + } + } else { + if f != 0 { + _pop_arg(tls, bp+8, int32(st), ap) + } else { + return 0 + } + } + } + if !(f != 0) { + goto _1 + } + /* Do not process any new directives once in error state. */ + if (*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_ERR) != 0 { + return -int32(1) + } + z = bp + 16 + uintptr(24) + prefix = __ccgo_ts + 1617 + pl = 0 + t = int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + uintptr(-Int32FromInt32(1))))) + /* Transform ls,lc -> S,C */ + if ps != 0 && t&int32(15) == int32(3) { + t &= ^Int32FromInt32(32) + } + /* - and 0 flags are mutually exclusive */ + if fl&(Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' '))) != 0 { + fl &= ^(Uint32FromUint32(1) << (Int32FromUint8('0') - Int32FromUint8(' '))) + } + switch t { + case int32('n'): + goto _9 + case int32('p'): + goto _10 + case int32('X'): + goto _11 + case int32('x'): + goto _12 + case int32('o'): + goto _13 + case int32('i'): + goto _14 + case int32('d'): + goto _15 + case int32('u'): + goto _16 + case int32('c'): + goto _17 + case int32('s'): + goto _18 + case int32('m'): + goto _19 + case int32('C'): + goto _20 + case int32('S'): + goto _21 + case int32('A'): + goto _22 + case int32('G'): + goto _23 + case int32('F'): + goto _24 + case int32('E'): + goto _25 + case int32('a'): + goto _26 + case int32('g'): + goto _27 + case int32('f'): + goto _28 + case int32('e'): + goto _29 + } + goto _30 + _9: + ; + switch ps { + case uint32(_BARE): + *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = cnt + case uint32(_LPRE): + *(*int64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = int64(cnt) + case uint32(_LLPRE): + *(*int64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = int64(cnt) + case uint32(_HPRE): + *(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = uint16(cnt) + case uint32(_HHPRE): + *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = uint8(cnt) + case uint32(_ZTPRE): + *(*Tsize_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = uint64(cnt) + case uint32(_JPRE): + *(*Tuintmax_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) = uint64(cnt) + break + } + goto _1 + _10: + ; + if uint64(p) > Uint64FromInt32(2)*Uint64FromInt64(8) { + v31 = uint64(p) + } else { + v31 = Uint64FromInt32(2) * Uint64FromInt64(8) + } + p = int32(v31) + t = int32('x') + fl |= Uint32FromUint32(1) << (Int32FromUint8('#') - Int32FromUint8(' ')) + _12: + ; + _11: + ; + a = _fmt_x(tls, *(*Tuintmax_t)(unsafe.Pointer(bp + 8)), z, t&int32(32)) + if *(*Tuintmax_t)(unsafe.Pointer(bp + 8)) != 0 && fl&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0 { + prefix += uintptr(t >> Int32FromInt32(4)) + pl = Int32FromInt32(2) + } + if !(0 != 0) { + goto _32 + } + _13: + ; + a = _fmt_o(tls, *(*Tuintmax_t)(unsafe.Pointer(bp + 8)), z) + if fl&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0 && int64(p) < int64(z)-int64(a)+int64(1) { + p = int32(int64(z) - int64(a) + int64(1)) + } + _32: + ; + if !(0 != 0) { + goto _33 + } + _15: + ; + _14: + ; + pl = int32(1) + if *(*Tuintmax_t)(unsafe.Pointer(bp + 8)) > uint64(Int64FromInt64(INT64_MAX)) { + *(*Tuintmax_t)(unsafe.Pointer(bp + 8)) = -*(*Tuintmax_t)(unsafe.Pointer(bp + 8)) + } else { + if fl&(Uint32FromUint32(1)<<(Int32FromUint8('+')-Int32FromUint8(' '))) != 0 { + prefix++ + } else { + if fl&(Uint32FromUint32(1)<<(Int32FromUint8(' ')-Int32FromUint8(' '))) != 0 { + prefix += uintptr(2) + } else { + pl = 0 + } + } + } + _16: + ; + a = _fmt_u(tls, *(*Tuintmax_t)(unsafe.Pointer(bp + 8)), z) + _33: + ; + if xp != 0 && p < 0 { + goto overflow + } + if xp != 0 { + fl &= ^(Uint32FromUint32(1) << (Int32FromUint8('0') - Int32FromUint8(' '))) + } + if !(*(*Tuintmax_t)(unsafe.Pointer(bp + 8)) != 0) && !(p != 0) { + a = z + goto _30 + } + if int64(p) > int64(z)-int64(a)+BoolInt64(!(*(*Tuintmax_t)(unsafe.Pointer(bp + 8)) != 0)) { + v34 = int64(p) + } else { + v34 = int64(z) - int64(a) + BoolInt64(!(*(*Tuintmax_t)(unsafe.Pointer(bp + 8)) != 0)) + } + p = int32(v34) + goto _30 + goto narrow_c + narrow_c: + ; + _17: + ; + v36 = Int32FromInt32(1) + p = v36 + v35 = z - uintptr(v36) + a = v35 + *(*uint8)(unsafe.Pointer(v35)) = uint8(*(*Tuintmax_t)(unsafe.Pointer(bp + 8))) + fl &= ^(Uint32FromUint32(1) << (Int32FromUint8('0') - Int32FromUint8(' '))) + goto _30 + _19: + ; + if !(int32(1) != 0) { + goto _37 + } + a = Xstrerror(tls, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) + goto _38 + _37: + ; + _18: + ; + if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { + v39 = *(*uintptr)(unsafe.Pointer(bp + 8)) + } else { + v39 = __ccgo_ts + 1627 + } + a = v39 + _38: + ; + if p < 0 { + v40 = int32(INT_MAX) + } else { + v40 = p + } + z = a + uintptr(Xstrnlen(tls, a, uint64(v40))) + if p < 0 && *(*uint8)(unsafe.Pointer(z)) != 0 { + goto overflow + } + p = int32(int64(z) - int64(a)) + fl &= ^(Uint32FromUint32(1) << (Int32FromUint8('0') - Int32FromUint8(' '))) + goto _30 + _20: + ; + if !(*(*Tuintmax_t)(unsafe.Pointer(bp + 8)) != 0) { + goto narrow_c + } + (*(*[2]Twchar_t)(unsafe.Pointer(bp + 40)))[0] = uint32(*(*Tuintmax_t)(unsafe.Pointer(bp + 8))) + (*(*[2]Twchar_t)(unsafe.Pointer(bp + 40)))[int32(1)] = uint32(0) + *(*uintptr)(unsafe.Pointer(bp + 8)) = bp + 40 + p = -int32(1) + _21: + ; + ws = *(*uintptr)(unsafe.Pointer(bp + 8)) + v42 = Int32FromInt32(0) + l = v42 + i = uint64(v42) + for { + if v45 = i < uint64(p) && *(*Twchar_t)(unsafe.Pointer(ws)) != 0; v45 { + v44 = ws + ws += 4 + v43 = Xwctomb(tls, bp+48, *(*Twchar_t)(unsafe.Pointer(v44))) + l = v43 + } + if !(v45 && v43 >= 0 && uint64(l) <= uint64(p)-i) { + break + } + goto _41 + _41: + ; + i += uint64(l) + } + if l < 0 { + return -int32(1) + } + if i > uint64(INT_MAX) { + goto overflow + } + p = int32(i) + _pad3(tls, f, uint8(' '), w, p, int32(fl)) + ws = *(*uintptr)(unsafe.Pointer(bp + 8)) + i = uint64(0) + for { + if v49 = i < uint64(0+uint32(p)) && *(*Twchar_t)(unsafe.Pointer(ws)) != 0; v49 { + v48 = ws + ws += 4 + v47 = Xwctomb(tls, bp+48, *(*Twchar_t)(unsafe.Pointer(v48))) + l = v47 + } + if !(v49 && i+uint64(v47) <= uint64(p)) { + break + } + _out(tls, f, bp+48, uint64(l)) + goto _46 + _46: + ; + i += uint64(l) + } + _pad3(tls, f, uint8(' '), w, p, int32(fl^Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' ')))) + if w > p { + v50 = w + } else { + v50 = p + } + l = v50 + goto _1 + _29: + ; + _28: + ; + _27: + ; + _26: + ; + _25: + ; + _24: + ; + _23: + ; + _22: + ; + if xp != 0 && p < 0 { + goto overflow + } + l = _fmt_fp(tls, f, *(*float64)(unsafe.Pointer(bp + 8)), w, p, int32(fl), t) + if l < 0 { + goto overflow + } + goto _1 + _30: + ; + if int64(p) < int64(z)-int64(a) { + p = int32(int64(z) - int64(a)) + } + if p > int32(INT_MAX)-pl { + goto overflow + } + if w < pl+p { + w = pl + p + } + if w > int32(INT_MAX)-cnt { + goto overflow + } + _pad3(tls, f, uint8(' '), w, pl+p, int32(fl)) + _out(tls, f, prefix, uint64(pl)) + _pad3(tls, f, uint8('0'), w, pl+p, int32(fl^Uint32FromUint32(1)<<(Int32FromUint8('0')-Int32FromUint8(' ')))) + _pad3(tls, f, uint8('0'), p, int32(int64(z)-int64(a)), 0) + _out(tls, f, a, uint64(int64(z)-int64(a))) + _pad3(tls, f, uint8(' '), w, pl+p, int32(fl^Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' ')))) + l = w + goto _1 + _1: + } + if f != 0 { + return cnt + } + if !(l10n != 0) { + return 0 + } + i = uint64(1) + for { + if !(i <= uint64(NL_ARGMAX) && *(*int32)(unsafe.Pointer(nl_type + uintptr(i)*4)) != 0) { + break + } + _pop_arg(tls, nl_arg+uintptr(i)*8, *(*int32)(unsafe.Pointer(nl_type + uintptr(i)*4)), ap) + goto _51 + _51: + ; + i++ + } + for { + if !(i <= uint64(NL_ARGMAX) && !(*(*int32)(unsafe.Pointer(nl_type + uintptr(i)*4)) != 0)) { + break + } + goto _52 + _52: + ; + i++ + } + if i <= uint64(NL_ARGMAX) { + goto inval + } + return int32(1) + goto inval +inval: + ; + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return -int32(1) + goto overflow +overflow: + ; + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOVERFLOW) + return -int32(1) +} + +func Xvfprintf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v fmt=%v ap=%v, (%v:)", tls, f, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(208) + defer tls.Free(208) + var __need_unlock, olderr, ret, v1 int32 + var saved_buf, v2, v3, v4, v5 uintptr + var _ /* ap2 at bp+0 */ Tva_list + var _ /* internal_buf at bp+128 */ [80]uint8 + var _ /* nl_arg at bp+48 */ [10]Targ + var _ /* nl_type at bp+8 */ [10]int32 + _, _, _, _, _, _, _, _, _ = __need_unlock, olderr, ret, saved_buf, v1, v2, v3, v4, v5 + *(*[10]int32)(unsafe.Pointer(bp + 8)) = [10]int32{} + saved_buf = uintptr(0) + /* the copy allows passing va_list* even if va_list is an array */ + *(*Tva_list)(unsafe.Pointer(bp)) = ap + if _printf_core(tls, uintptr(0), fmt, bp, bp+48, bp+8) < 0 { + _ = *(*Tva_list)(unsafe.Pointer(bp)) + return -int32(1) + } + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + olderr = int32((*TFILE)(unsafe.Pointer(f)).Fflags & uint32(F_ERR)) + *(*uint32)(unsafe.Pointer(f)) &= uint32(^Int32FromInt32(F_ERR)) + if !((*TFILE)(unsafe.Pointer(f)).Fbuf_size != 0) { + saved_buf = (*TFILE)(unsafe.Pointer(f)).Fbuf + (*TFILE)(unsafe.Pointer(f)).Fbuf = bp + 128 + (*TFILE)(unsafe.Pointer(f)).Fbuf_size = uint64(80) + v3 = UintptrFromInt32(0) + (*TFILE)(unsafe.Pointer(f)).Fwend = v3 + v2 = v3 + (*TFILE)(unsafe.Pointer(f)).Fwbase = v2 + (*TFILE)(unsafe.Pointer(f)).Fwpos = v2 + } + if !((*TFILE)(unsafe.Pointer(f)).Fwend != 0) && X__towrite(tls, f) != 0 { + ret = -int32(1) + } else { + ret = _printf_core(tls, f, fmt, bp, bp+48, bp+8) + } + if saved_buf != 0 { + (*(*func(*TLS, uintptr, uintptr, Tsize_t) Tsize_t)(unsafe.Pointer(&struct{ uintptr }{(*TFILE)(unsafe.Pointer(f)).Fwrite})))(tls, f, uintptr(0), uint64(0)) + if !((*TFILE)(unsafe.Pointer(f)).Fwpos != 0) { + ret = -int32(1) + } + (*TFILE)(unsafe.Pointer(f)).Fbuf = saved_buf + (*TFILE)(unsafe.Pointer(f)).Fbuf_size = uint64(0) + v5 = UintptrFromInt32(0) + (*TFILE)(unsafe.Pointer(f)).Fwend = v5 + v4 = v5 + (*TFILE)(unsafe.Pointer(f)).Fwbase = v4 + (*TFILE)(unsafe.Pointer(f)).Fwpos = v4 + } + if (*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_ERR) != 0 { + ret = -int32(1) + } + *(*uint32)(unsafe.Pointer(f)) |= uint32(olderr) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + _ = *(*Tva_list)(unsafe.Pointer(bp)) + return ret +} + +const SIZE_L = 2 +const SIZE_def = 0 +const SIZE_h = -1 +const SIZE_hh = -2 +const SIZE_l = 1 +const SIZE_ll = 3 + +func _store_int(tls *TLS, dest uintptr, size int32, i uint64) { + if !(dest != 0) { + return + } + switch size { + case -int32(2): + *(*uint8)(unsafe.Pointer(dest)) = uint8(i) + case -int32(1): + *(*int16)(unsafe.Pointer(dest)) = int16(i) + case SIZE_def: + *(*int32)(unsafe.Pointer(dest)) = int32(i) + case int32(SIZE_l): + *(*int64)(unsafe.Pointer(dest)) = int64(i) + case int32(SIZE_ll): + *(*int64)(unsafe.Pointer(dest)) = int64(i) + break + } +} + +func _arg_n(tls *TLS, ap Tva_list, n uint32) (r uintptr) { + var ap2 Tva_list + var i uint32 + var p uintptr + _, _, _ = ap2, i, p + ap2 = ap + i = n + for { + if !(i > uint32(1)) { + break + } + _ = VaUintptr(&ap2) + goto _1 + _1: + ; + i-- + } + p = VaUintptr(&ap2) + _ = ap2 + return p +} + +func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v fmt=%v ap=%v, (%v:)", tls, f, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(288) + defer tls.Free(288) + var __need_unlock, alloc, base, c, invert, matches, size, t, width, v1, v12, v13, v16, v17, v20, v21, v23, v29, v3, v32, v33, v36, v4, v6, v64, v65, v69, v7, v70, v75, v76, v80, v81, v9 int32 + var dest, p, s, tmp, tmp1, wcs, v10, v11, v18, v19, v24, v25, v28, v30, v31, v37, v38, v59, v62, v66, v67, v71, v72, v74, v77, v78, v82, v83 uintptr + var i, k, v68, v73, v79 Tsize_t + var pos Toff_t + var x uint64 + var y float64 + var v63 uint32 + var _ /* scanset at bp+16 */ [257]uint8 + var _ /* st at bp+8 */ Tmbstate_t + var _ /* wc at bp+276 */ Twchar_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = __need_unlock, alloc, base, c, dest, i, invert, k, matches, p, pos, s, size, t, tmp, tmp1, wcs, width, x, y, v1, v10, v11, v12, v13, v16, v17, v18, v19, v20, v21, v23, v24, v25, v28, v29, v3, v30, v31, v32, v33, v36, v37, v38, v4, v59, v6, v62, v63, v64, v65, v66, v67, v68, v69, v7, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v9 + alloc = 0 + dest = UintptrFromInt32(0) + matches = 0 + pos = 0 + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + if !((*TFILE)(unsafe.Pointer(f)).Frpos != 0) { + X__toread(tls, f) + } + if !((*TFILE)(unsafe.Pointer(f)).Frpos != 0) { + goto input_fail + } + p = fmt + for { + if !(*(*uint8)(unsafe.Pointer(p)) != 0) { + break + } + alloc = 0 + v3 = int32(*(*uint8)(unsafe.Pointer(p))) + v4 = BoolInt32(v3 == int32(' ') || uint32(v3)-uint32('\t') < uint32(5)) + goto _5 + _5: + if v4 != 0 { + for { + v6 = int32(*(*uint8)(unsafe.Pointer(p + 1))) + v7 = BoolInt32(v6 == int32(' ') || uint32(v6)-uint32('\t') < uint32(5)) + goto _8 + _8: + if !(v7 != 0) { + break + } + p++ + } + X__shlim(tls, f, int64(Int32FromInt32(0))) + for { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v11 = f + 8 + v10 = *(*uintptr)(unsafe.Pointer(v11)) + *(*uintptr)(unsafe.Pointer(v11))++ + v9 = int32(*(*uint8)(unsafe.Pointer(v10))) + } else { + v9 = X__shgetc(tls, f) + } + v12 = v9 + v13 = BoolInt32(v12 == int32(' ') || uint32(v12)-uint32('\t') < uint32(5)) + goto _14 + _14: + if !(v13 != 0) { + break + } + } + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + pos += (*TFILE)(unsafe.Pointer(f)).Fshcnt + (int64((*TFILE)(unsafe.Pointer(f)).Frpos) - int64((*TFILE)(unsafe.Pointer(f)).Fbuf)) + goto _2 + } + if int32(*(*uint8)(unsafe.Pointer(p))) != int32('%') || int32(*(*uint8)(unsafe.Pointer(p + 1))) == int32('%') { + X__shlim(tls, f, int64(Int32FromInt32(0))) + if int32(*(*uint8)(unsafe.Pointer(p))) == int32('%') { + p++ + for { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v19 = f + 8 + v18 = *(*uintptr)(unsafe.Pointer(v19)) + *(*uintptr)(unsafe.Pointer(v19))++ + v17 = int32(*(*uint8)(unsafe.Pointer(v18))) + } else { + v17 = X__shgetc(tls, f) + } + v16 = v17 + c = v16 + v20 = v16 + v21 = BoolInt32(v20 == int32(' ') || uint32(v20)-uint32('\t') < uint32(5)) + goto _22 + _22: + if !(v21 != 0) { + break + } + } + } else { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v25 = f + 8 + v24 = *(*uintptr)(unsafe.Pointer(v25)) + *(*uintptr)(unsafe.Pointer(v25))++ + v23 = int32(*(*uint8)(unsafe.Pointer(v24))) + } else { + v23 = X__shgetc(tls, f) + } + c = v23 + } + if c != int32(*(*uint8)(unsafe.Pointer(p))) { + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + if c < 0 { + goto input_fail + } + goto match_fail + } + pos += (*TFILE)(unsafe.Pointer(f)).Fshcnt + (int64((*TFILE)(unsafe.Pointer(f)).Frpos) - int64((*TFILE)(unsafe.Pointer(f)).Fbuf)) + goto _2 + } + p++ + if int32(*(*uint8)(unsafe.Pointer(p))) == int32('*') { + dest = uintptr(0) + p++ + } else { + if BoolInt32(uint32(*(*uint8)(unsafe.Pointer(p)))-uint32('0') < uint32(10)) != 0 && int32(*(*uint8)(unsafe.Pointer(p + 1))) == int32('$') { + dest = _arg_n(tls, ap, uint32(int32(*(*uint8)(unsafe.Pointer(p)))-int32('0'))) + p += uintptr(2) + } else { + dest = VaUintptr(&ap) + } + } + width = 0 + for { + if !(BoolInt32(uint32(*(*uint8)(unsafe.Pointer(p)))-uint32('0') < uint32(10)) != 0) { + break + } + width = int32(10)*width + int32(*(*uint8)(unsafe.Pointer(p))) - int32('0') + goto _27 + _27: + ; + p++ + } + if int32(*(*uint8)(unsafe.Pointer(p))) == int32('m') { + wcs = uintptr(0) + s = uintptr(0) + alloc = BoolInt32(!!(dest != 0)) + p++ + } else { + alloc = 0 + } + size = SIZE_def + v28 = p + p++ + switch int32(*(*uint8)(unsafe.Pointer(v28))) { + case int32('h'): + if int32(*(*uint8)(unsafe.Pointer(p))) == int32('h') { + p++ + size = -Int32FromInt32(2) + } else { + size = -int32(1) + } + case int32('l'): + if int32(*(*uint8)(unsafe.Pointer(p))) == int32('l') { + p++ + size = Int32FromInt32(SIZE_ll) + } else { + size = int32(SIZE_l) + } + case int32('j'): + size = int32(SIZE_ll) + case int32('z'): + fallthrough + case int32('t'): + size = int32(SIZE_l) + case int32('L'): + size = int32(SIZE_L) + case int32('d'): + fallthrough + case int32('i'): + fallthrough + case int32('o'): + fallthrough + case int32('u'): + fallthrough + case int32('x'): + fallthrough + case int32('a'): + fallthrough + case int32('e'): + fallthrough + case int32('f'): + fallthrough + case int32('g'): + fallthrough + case int32('A'): + fallthrough + case int32('E'): + fallthrough + case int32('F'): + fallthrough + case int32('G'): + fallthrough + case int32('X'): + fallthrough + case int32('s'): + fallthrough + case int32('c'): + fallthrough + case int32('['): + fallthrough + case int32('S'): + fallthrough + case int32('C'): + fallthrough + case int32('p'): + fallthrough + case int32('n'): + p-- + default: + goto fmt_fail + } + t = int32(*(*uint8)(unsafe.Pointer(p))) + /* C or S */ + if t&int32(0x2f) == int32(3) { + t |= int32(32) + size = int32(SIZE_l) + } + switch t { + case int32('c'): + if width < int32(1) { + width = int32(1) + } + fallthrough + case int32('['): + case int32('n'): + _store_int(tls, dest, size, uint64(pos)) + /* do not increment match count, etc! */ + goto _2 + default: + X__shlim(tls, f, int64(Int32FromInt32(0))) + for { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v31 = f + 8 + v30 = *(*uintptr)(unsafe.Pointer(v31)) + *(*uintptr)(unsafe.Pointer(v31))++ + v29 = int32(*(*uint8)(unsafe.Pointer(v30))) + } else { + v29 = X__shgetc(tls, f) + } + v32 = v29 + v33 = BoolInt32(v32 == int32(' ') || uint32(v32)-uint32('\t') < uint32(5)) + goto _34 + _34: + if !(v33 != 0) { + break + } + } + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + pos += (*TFILE)(unsafe.Pointer(f)).Fshcnt + (int64((*TFILE)(unsafe.Pointer(f)).Frpos) - int64((*TFILE)(unsafe.Pointer(f)).Fbuf)) + } + X__shlim(tls, f, int64(width)) + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v38 = f + 8 + v37 = *(*uintptr)(unsafe.Pointer(v38)) + *(*uintptr)(unsafe.Pointer(v38))++ + v36 = int32(*(*uint8)(unsafe.Pointer(v37))) + } else { + v36 = X__shgetc(tls, f) + } + if v36 < 0 { + goto input_fail + } + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + switch t { + case int32('['): + goto _40 + case int32('c'): + goto _41 + case int32('s'): + goto _42 + case int32('x'): + goto _43 + case int32('X'): + goto _44 + case int32('p'): + goto _45 + case int32('o'): + goto _46 + case int32('u'): + goto _47 + case int32('d'): + goto _48 + case int32('i'): + goto _49 + case int32('G'): + goto _50 + case int32('g'): + goto _51 + case int32('F'): + goto _52 + case int32('f'): + goto _53 + case int32('E'): + goto _54 + case int32('e'): + goto _55 + case int32('A'): + goto _56 + case int32('a'): + goto _57 + } + goto _58 + _42: + ; + _41: + ; + _40: + ; + if t == int32('c') || t == int32('s') { + Xmemset(tls, bp+16, -int32(1), uint64(257)) + (*(*[257]uint8)(unsafe.Pointer(bp + 16)))[0] = uint8(0) + if t == int32('s') { + (*(*[257]uint8)(unsafe.Pointer(bp + 16)))[Int32FromInt32(1)+Int32FromUint8('\t')] = uint8(0) + (*(*[257]uint8)(unsafe.Pointer(bp + 16)))[Int32FromInt32(1)+Int32FromUint8('\n')] = uint8(0) + (*(*[257]uint8)(unsafe.Pointer(bp + 16)))[Int32FromInt32(1)+Int32FromUint8('\v')] = uint8(0) + (*(*[257]uint8)(unsafe.Pointer(bp + 16)))[Int32FromInt32(1)+Int32FromUint8('\f')] = uint8(0) + (*(*[257]uint8)(unsafe.Pointer(bp + 16)))[Int32FromInt32(1)+Int32FromUint8('\r')] = uint8(0) + (*(*[257]uint8)(unsafe.Pointer(bp + 16)))[Int32FromInt32(1)+Int32FromUint8(' ')] = uint8(0) + } + } else { + p++ + v59 = p + if int32(*(*uint8)(unsafe.Pointer(v59))) == int32('^') { + p++ + invert = Int32FromInt32(1) + } else { + invert = 0 + } + Xmemset(tls, bp+16, invert, uint64(257)) + (*(*[257]uint8)(unsafe.Pointer(bp + 16)))[0] = uint8(0) + if int32(*(*uint8)(unsafe.Pointer(p))) == int32('-') { + p++ + (*(*[257]uint8)(unsafe.Pointer(bp + 16)))[Int32FromInt32(1)+Int32FromUint8('-')] = uint8(Int32FromInt32(1) - invert) + } else { + if int32(*(*uint8)(unsafe.Pointer(p))) == int32(']') { + p++ + (*(*[257]uint8)(unsafe.Pointer(bp + 16)))[Int32FromInt32(1)+Int32FromUint8(']')] = uint8(Int32FromInt32(1) - invert) + } + } + for { + if !(int32(*(*uint8)(unsafe.Pointer(p))) != int32(']')) { + break + } + if !(*(*uint8)(unsafe.Pointer(p)) != 0) { + goto fmt_fail + } + if int32(*(*uint8)(unsafe.Pointer(p))) == int32('-') && *(*uint8)(unsafe.Pointer(p + 1)) != 0 && int32(*(*uint8)(unsafe.Pointer(p + 1))) != int32(']') { + v62 = p + p++ + c = int32(*(*uint8)(unsafe.Pointer(v62 + uintptr(-Int32FromInt32(1))))) + for { + if !(c < int32(*(*uint8)(unsafe.Pointer(p)))) { + break + } + (*(*[257]uint8)(unsafe.Pointer(bp + 16)))[int32(1)+c] = uint8(int32(1) - invert) + goto _61 + _61: + ; + c++ + } + } + (*(*[257]uint8)(unsafe.Pointer(bp + 16)))[int32(1)+int32(*(*uint8)(unsafe.Pointer(p)))] = uint8(int32(1) - invert) + goto _60 + _60: + ; + p++ + } + } + wcs = uintptr(0) + s = uintptr(0) + i = uint64(0) + if t == int32('c') { + v63 = uint32(width) + uint32(1) + } else { + v63 = uint32(31) + } + k = uint64(v63) + if size == int32(SIZE_l) { + if alloc != 0 { + wcs = Xmalloc(tls, k*uint64(4)) + if !(wcs != 0) { + goto alloc_fail + } + } else { + wcs = dest + } + *(*Tmbstate_t)(unsafe.Pointer(bp + 8)) = Tmbstate_t{} + for { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v67 = f + 8 + v66 = *(*uintptr)(unsafe.Pointer(v67)) + *(*uintptr)(unsafe.Pointer(v67))++ + v65 = int32(*(*uint8)(unsafe.Pointer(v66))) + } else { + v65 = X__shgetc(tls, f) + } + v64 = v65 + c = v64 + if !((*(*[257]uint8)(unsafe.Pointer(bp + 16)))[v64+int32(1)] != 0) { + break + } + *(*uint8)(unsafe.Pointer(bp)) = uint8(c) + switch Xmbrtowc(tls, bp+276, bp, uint64(1), bp+8) { + case uint64(-Int32FromInt32(1)): + goto input_fail + case uint64(-Int32FromInt32(2)): + continue + } + if wcs != 0 { + v68 = i + i++ + *(*Twchar_t)(unsafe.Pointer(wcs + uintptr(v68)*4)) = *(*Twchar_t)(unsafe.Pointer(bp + 276)) + } + if alloc != 0 && i == k { + k += k + uint64(1) + tmp = Xrealloc(tls, wcs, k*uint64(4)) + if !(tmp != 0) { + goto alloc_fail + } + wcs = tmp + } + } + if !(Xmbsinit(tls, bp+8) != 0) { + goto input_fail + } + } else { + if alloc != 0 { + s = Xmalloc(tls, k) + if !(s != 0) { + goto alloc_fail + } + for { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v72 = f + 8 + v71 = *(*uintptr)(unsafe.Pointer(v72)) + *(*uintptr)(unsafe.Pointer(v72))++ + v70 = int32(*(*uint8)(unsafe.Pointer(v71))) + } else { + v70 = X__shgetc(tls, f) + } + v69 = v70 + c = v69 + if !((*(*[257]uint8)(unsafe.Pointer(bp + 16)))[v69+int32(1)] != 0) { + break + } + v73 = i + i++ + *(*uint8)(unsafe.Pointer(s + uintptr(v73))) = uint8(c) + if i == k { + k += k + uint64(1) + tmp1 = Xrealloc(tls, s, k) + if !(tmp1 != 0) { + goto alloc_fail + } + s = tmp1 + } + } + } else { + v74 = dest + s = v74 + if v74 != 0 { + for { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v78 = f + 8 + v77 = *(*uintptr)(unsafe.Pointer(v78)) + *(*uintptr)(unsafe.Pointer(v78))++ + v76 = int32(*(*uint8)(unsafe.Pointer(v77))) + } else { + v76 = X__shgetc(tls, f) + } + v75 = v76 + c = v75 + if !((*(*[257]uint8)(unsafe.Pointer(bp + 16)))[v75+int32(1)] != 0) { + break + } + v79 = i + i++ + *(*uint8)(unsafe.Pointer(s + uintptr(v79))) = uint8(c) + } + } else { + for { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Fshend { + v83 = f + 8 + v82 = *(*uintptr)(unsafe.Pointer(v83)) + *(*uintptr)(unsafe.Pointer(v83))++ + v81 = int32(*(*uint8)(unsafe.Pointer(v82))) + } else { + v81 = X__shgetc(tls, f) + } + v80 = v81 + c = v80 + if !((*(*[257]uint8)(unsafe.Pointer(bp + 16)))[v80+int32(1)] != 0) { + break + } + } + } + } + } + if (*TFILE)(unsafe.Pointer(f)).Fshlim >= 0 { + (*TFILE)(unsafe.Pointer(f)).Frpos-- + } + if !((*TFILE)(unsafe.Pointer(f)).Fshcnt+(int64((*TFILE)(unsafe.Pointer(f)).Frpos)-int64((*TFILE)(unsafe.Pointer(f)).Fbuf)) != 0) { + goto match_fail + } + if t == int32('c') && (*TFILE)(unsafe.Pointer(f)).Fshcnt+(int64((*TFILE)(unsafe.Pointer(f)).Frpos)-int64((*TFILE)(unsafe.Pointer(f)).Fbuf)) != int64(width) { + goto match_fail + } + if alloc != 0 { + if size == int32(SIZE_l) { + *(*uintptr)(unsafe.Pointer(dest)) = wcs + } else { + *(*uintptr)(unsafe.Pointer(dest)) = s + } + } + if t != int32('c') { + if wcs != 0 { + *(*Twchar_t)(unsafe.Pointer(wcs + uintptr(i)*4)) = uint32(0) + } + if s != 0 { + *(*uint8)(unsafe.Pointer(s + uintptr(i))) = uint8(0) + } + } + goto _58 + _45: + ; + _44: + ; + _43: + ; + base = int32(16) + goto int_common + _46: + ; + base = int32(8) + goto int_common + _48: + ; + _47: + ; + base = int32(10) + goto int_common + _49: + ; + base = 0 + goto int_common + int_common: + ; + x = X__intscan(tls, f, uint32(base), 0, Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1)) + if !((*TFILE)(unsafe.Pointer(f)).Fshcnt+(int64((*TFILE)(unsafe.Pointer(f)).Frpos)-int64((*TFILE)(unsafe.Pointer(f)).Fbuf)) != 0) { + goto match_fail + } + if t == int32('p') && dest != 0 { + *(*uintptr)(unsafe.Pointer(dest)) = uintptr(x) + } else { + _store_int(tls, dest, size, x) + } + goto _58 + _57: + ; + _56: + ; + _55: + ; + _54: + ; + _53: + ; + _52: + ; + _51: + ; + _50: + ; + y = X__floatscan(tls, f, size, 0) + if !((*TFILE)(unsafe.Pointer(f)).Fshcnt+(int64((*TFILE)(unsafe.Pointer(f)).Frpos)-int64((*TFILE)(unsafe.Pointer(f)).Fbuf)) != 0) { + goto match_fail + } + if dest != 0 { + switch size { + case SIZE_def: + *(*float32)(unsafe.Pointer(dest)) = float32(y) + case int32(SIZE_l): + *(*float64)(unsafe.Pointer(dest)) = y + case int32(SIZE_L): + *(*float64)(unsafe.Pointer(dest)) = y + break + } + } + goto _58 + _58: + ; + pos += (*TFILE)(unsafe.Pointer(f)).Fshcnt + (int64((*TFILE)(unsafe.Pointer(f)).Frpos) - int64((*TFILE)(unsafe.Pointer(f)).Fbuf)) + if dest != 0 { + matches++ + } + goto _2 + _2: + ; + p++ + } + if !(0 != 0) { + goto _85 + } + goto fmt_fail +fmt_fail: + ; + goto alloc_fail +alloc_fail: + ; + goto input_fail +input_fail: + ; + if !(matches != 0) { + matches-- + } + goto match_fail +match_fail: + ; + if alloc != 0 { + Xfree(tls, s) + Xfree(tls, wcs) + } +_85: + ; + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return matches +} + +func X__isoc99_vfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v fmt=%v ap=%v, (%v:)", tls, f, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xvfscanf(tls, f, fmt, ap) +} + +var _states1 = [8][58]uint8{ + 0: { + 0: uint8(_DBL), + 2: uint8(_UINT), + 4: uint8(_DBL), + 5: uint8(_DBL), + 6: uint8(_DBL), + 11: uint8(_BIGLPRE), + 18: uint8(_PTR), + 23: uint8(_UINT), + 32: uint8(_DBL), + 34: uint8(_INT), + 35: uint8(_INT), + 36: uint8(_DBL), + 37: uint8(_DBL), + 38: uint8(_DBL), + 39: uint8(_HPRE), + 40: uint8(_INT), + 41: uint8(_JPRE), + 43: uint8(_LPRE), + 44: uint8(_NOARG), + 45: uint8(_PTR), + 46: uint8(_UINT), + 47: uint8(_UIPTR), + 50: uint8(_PTR), + 51: uint8(_ZTPRE), + 52: uint8(_UINT), + 55: uint8(_UINT), + 57: uint8(_ZTPRE), + }, + 1: { + 0: uint8(_DBL), + 4: uint8(_DBL), + 5: uint8(_DBL), + 6: uint8(_DBL), + 23: uint8(_ULONG), + 32: uint8(_DBL), + 34: uint8(_UINT), + 35: uint8(_LONG), + 36: uint8(_DBL), + 37: uint8(_DBL), + 38: uint8(_DBL), + 40: uint8(_LONG), + 43: uint8(_LLPRE), + 45: uint8(_PTR), + 46: uint8(_ULONG), + 50: uint8(_PTR), + 52: uint8(_ULONG), + 55: uint8(_ULONG), + }, + 2: { + 23: uint8(_ULLONG), + 35: uint8(_LLONG), + 40: uint8(_LLONG), + 45: uint8(_PTR), + 46: uint8(_ULLONG), + 52: uint8(_ULLONG), + 55: uint8(_ULLONG), + }, + 3: { + 23: uint8(_USHORT), + 35: uint8(_SHORT), + 39: uint8(_HHPRE), + 40: uint8(_SHORT), + 45: uint8(_PTR), + 46: uint8(_USHORT), + 52: uint8(_USHORT), + 55: uint8(_USHORT), + }, + 4: { + 23: uint8(_UCHAR), + 35: uint8(_CHAR), + 40: uint8(_CHAR), + 45: uint8(_PTR), + 46: uint8(_UCHAR), + 52: uint8(_UCHAR), + 55: uint8(_UCHAR), + }, + 5: { + 0: uint8(_LDBL), + 4: uint8(_LDBL), + 5: uint8(_LDBL), + 6: uint8(_LDBL), + 32: uint8(_LDBL), + 36: uint8(_LDBL), + 37: uint8(_LDBL), + 38: uint8(_LDBL), + 45: uint8(_PTR), + }, + 6: { + 23: uint8(_SIZET), + 35: uint8(_PDIFF), + 40: uint8(_PDIFF), + 45: uint8(_PTR), + 46: uint8(_SIZET), + 52: uint8(_SIZET), + 55: uint8(_SIZET), + }, + 7: { + 23: uint8(_UMAX), + 35: uint8(_IMAX), + 40: uint8(_IMAX), + 45: uint8(_PTR), + 46: uint8(_UMAX), + 52: uint8(_UMAX), + 55: uint8(_UMAX), + }, +} + +func _pop_arg1(tls *TLS, arg uintptr, type1 int32, ap uintptr) { + switch type1 { + case int32(_PTR): + *(*uintptr)(unsafe.Pointer(arg)) = VaUintptr(&*(*Tva_list)(unsafe.Pointer(ap))) + case int32(_INT): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaInt32(&*(*Tva_list)(unsafe.Pointer(ap)))) + case int32(_UINT): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaUint32(&*(*Tva_list)(unsafe.Pointer(ap)))) + case int32(_LONG): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaInt64(&*(*Tva_list)(unsafe.Pointer(ap)))) + case int32(_ULONG): + (*Targ)(unsafe.Pointer(arg)).Fi = VaUint64(&*(*Tva_list)(unsafe.Pointer(ap))) + case int32(_ULLONG): + (*Targ)(unsafe.Pointer(arg)).Fi = VaUint64(&*(*Tva_list)(unsafe.Pointer(ap))) + case int32(_SHORT): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(int16(VaInt32(&*(*Tva_list)(unsafe.Pointer(ap))))) + case int32(_USHORT): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(uint16(VaInt32(&*(*Tva_list)(unsafe.Pointer(ap))))) + case int32(_CHAR): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(int8(VaInt32(&*(*Tva_list)(unsafe.Pointer(ap))))) + case int32(_UCHAR): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(uint8(VaInt32(&*(*Tva_list)(unsafe.Pointer(ap))))) + case int32(_LLONG): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaInt64(&*(*Tva_list)(unsafe.Pointer(ap)))) + case int32(_SIZET): + (*Targ)(unsafe.Pointer(arg)).Fi = VaUint64(&*(*Tva_list)(unsafe.Pointer(ap))) + case int32(_IMAX): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaInt64(&*(*Tva_list)(unsafe.Pointer(ap)))) + case int32(_UMAX): + (*Targ)(unsafe.Pointer(arg)).Fi = VaUint64(&*(*Tva_list)(unsafe.Pointer(ap))) + case int32(_PDIFF): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaInt64(&*(*Tva_list)(unsafe.Pointer(ap)))) + case int32(_UIPTR): + (*Targ)(unsafe.Pointer(arg)).Fi = uint64(VaUintptr(&*(*Tva_list)(unsafe.Pointer(ap)))) + case int32(_DBL): + *(*float64)(unsafe.Pointer(arg)) = VaFloat64(&*(*Tva_list)(unsafe.Pointer(ap))) + case int32(_LDBL): + *(*float64)(unsafe.Pointer(arg)) = VaFloat64(&*(*Tva_list)(unsafe.Pointer(ap))) + } +} + +func _out1(tls *TLS, f uintptr, s uintptr, l Tsize_t) { + var v1 Tsize_t + var v2 uintptr + _, _ = v1, v2 + for { + v1 = l + l-- + if !(v1 != 0 && !((*TFILE)(unsafe.Pointer(f)).Fflags&Uint32FromInt32(F_ERR) != 0)) { + break + } + v2 = s + s += 4 + Xfputwc(tls, *(*Twchar_t)(unsafe.Pointer(v2)), f) + } +} + +func _pad4(tls *TLS, f uintptr, n int32, fl int32) { + bp := tls.Alloc(32) + defer tls.Free(32) + if uint32(fl)&(Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' '))) != 0 || !(n != 0) || (*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_ERR) != 0 { + return + } + Xfprintf(tls, f, __ccgo_ts+1634, VaList(bp+8, n, __ccgo_ts)) +} + +func _getint1(tls *TLS, s uintptr) (r int32) { + var i int32 + _ = i + i = 0 + for { + if !(BoolInt32(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s))))-uint32('0') < uint32(10)) != 0) { + break + } + if uint32(i) > Uint32FromInt32(INT_MAX)/Uint32FromUint32(10) || *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s))))-uint32('0') > uint32(int32(INT_MAX)-int32(10)*i) { + i = -int32(1) + } else { + i = int32(uint32(int32(10)*i) + (*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(s)))) - uint32('0'))) + } + goto _1 + _1: + ; + *(*uintptr)(unsafe.Pointer(s)) += 4 + } + return i +} + +var _sizeprefix = [24]uint8{ + 0: uint8('L'), + 3: uint8('j'), + 4: uint8('L'), + 5: uint8('L'), + 6: uint8('L'), + 8: uint8('j'), + 14: uint8('j'), + 15: uint8('j'), + 20: uint8('j'), + 23: uint8('j'), +} + +func _wprintf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, nl_type uintptr) (r int32) { + bp := tls.Alloc(112) + defer tls.Free(112) + var a, bs, z, v8 uintptr + var argpos, cnt, i, l, p, t, w, xp, v10, v12, v13, v14, v16, v5, v6, v7 int32 + var fl, l10n, ps, st uint32 + var v15 bool + var v9 uint64 + var _ /* arg at bp+16 */ Targ + var _ /* charfmt at bp+24 */ [16]uint8 + var _ /* s at bp+8 */ uintptr + var _ /* wc at bp+40 */ Twchar_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, argpos, bs, cnt, fl, i, l, l10n, p, ps, st, t, w, xp, z, v10, v12, v13, v14, v15, v16, v5, v6, v7, v8, v9 + *(*uintptr)(unsafe.Pointer(bp + 8)) = fmt + l10n = uint32(0) + cnt = 0 + l = 0 + for { + /* This error is only specified for snprintf, but since it's + * unspecified for other forms, do the same. Stop immediately + * on overflow; otherwise %n could produce wrong results. */ + if l > int32(INT_MAX)-cnt { + goto overflow + } + /* Update output count, end loop when fmt is exhausted */ + cnt += l + if !(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) != 0) { + break + } + /* Handle literal text and %% format specifiers */ + a = *(*uintptr)(unsafe.Pointer(bp + 8)) + for { + if !(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) != 0 && *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) != uint32('%')) { + break + } + goto _2 + _2: + ; + *(*uintptr)(unsafe.Pointer(bp + 8)) += 4 + } + z = *(*uintptr)(unsafe.Pointer(bp + 8)) + for { + if !(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) == uint32('%') && *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)) + 1*4)) == uint32('%')) { + break + } + goto _3 + _3: + ; + z += 4 + *(*uintptr)(unsafe.Pointer(bp + 8)) += uintptr(2) * 4 + } + if (int64(z)-int64(a))/4 > int64(int32(INT_MAX)-cnt) { + goto overflow + } + l = int32((int64(z) - int64(a)) / 4) + if f != 0 { + _out1(tls, f, a, uint64(l)) + } + if l != 0 { + goto _1 + } + if BoolInt32(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)) + 1*4))-uint32('0') < uint32(10)) != 0 && *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)) + 2*4)) == uint32('$') { + l10n = uint32(1) + argpos = int32(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)) + 1*4)) - uint32('0')) + *(*uintptr)(unsafe.Pointer(bp + 8)) += uintptr(3) * 4 + } else { + argpos = -int32(1) + *(*uintptr)(unsafe.Pointer(bp + 8)) += 4 + } + /* Read modifier flags */ + fl = uint32(0) + for { + if !(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8))))-uint32(' ') < uint32(32) && (Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))|Uint32FromUint32(1)<<(Int32FromUint8('0')-Int32FromUint8(' '))|Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' '))|Uint32FromUint32(1)<<(Int32FromUint8(' ')-Int32FromUint8(' '))|Uint32FromUint32(1)<<(Int32FromUint8('+')-Int32FromUint8(' '))|Uint32FromUint32(1)<<(Int32FromUint8('\'')-Int32FromUint8(' ')))&(uint32(1)<<(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8))))-uint32(' '))) != 0) { + break + } + fl |= uint32(1) << (*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) - uint32(' ')) + goto _4 + _4: + ; + *(*uintptr)(unsafe.Pointer(bp + 8)) += 4 + } + /* Read field width */ + if *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) == uint32('*') { + if BoolInt32(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)) + 1*4))-uint32('0') < uint32(10)) != 0 && *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)) + 2*4)) == uint32('$') { + l10n = uint32(1) + *(*int32)(unsafe.Pointer(nl_type + uintptr(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)) + 1*4))-uint32('0'))*4)) = int32(_INT) + w = int32(*(*Tuintmax_t)(unsafe.Pointer(nl_arg + uintptr(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)) + 1*4))-uint32('0'))*8))) + *(*uintptr)(unsafe.Pointer(bp + 8)) += uintptr(3) * 4 + } else { + if !(l10n != 0) { + if f != 0 { + v5 = VaInt32(&*(*Tva_list)(unsafe.Pointer(ap))) + } else { + v5 = 0 + } + w = v5 + *(*uintptr)(unsafe.Pointer(bp + 8)) += 4 + } else { + goto inval + } + } + if w < 0 { + fl |= Uint32FromUint32(1) << (Int32FromUint8('-') - Int32FromUint8(' ')) + w = -w + } + } else { + v6 = _getint1(tls, bp+8) + w = v6 + if v6 < 0 { + goto overflow + } + } + /* Read precision */ + if *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) == uint32('.') && *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)) + 1*4)) == uint32('*') { + if BoolInt32(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)) + 2*4))-uint32('0') < uint32(10)) != 0 && *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)) + 3*4)) == uint32('$') { + *(*int32)(unsafe.Pointer(nl_type + uintptr(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)) + 2*4))-uint32('0'))*4)) = int32(_INT) + p = int32(*(*Tuintmax_t)(unsafe.Pointer(nl_arg + uintptr(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)) + 2*4))-uint32('0'))*8))) + *(*uintptr)(unsafe.Pointer(bp + 8)) += uintptr(4) * 4 + } else { + if !(l10n != 0) { + if f != 0 { + v7 = VaInt32(&*(*Tva_list)(unsafe.Pointer(ap))) + } else { + v7 = 0 + } + p = v7 + *(*uintptr)(unsafe.Pointer(bp + 8)) += uintptr(2) * 4 + } else { + goto inval + } + } + xp = BoolInt32(p >= 0) + } else { + if *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) == uint32('.') { + *(*uintptr)(unsafe.Pointer(bp + 8)) += 4 + p = _getint1(tls, bp+8) + xp = int32(1) + } else { + p = -int32(1) + xp = 0 + } + } + /* Format specifier state machine */ + st = uint32(0) + for cond := true; cond; cond = st-uint32(1) < uint32(_STOP) { + if *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8))))-uint32('A') > uint32(Int32FromUint8('z')-Int32FromUint8('A')) { + goto inval + } + ps = st + v8 = *(*uintptr)(unsafe.Pointer(bp + 8)) + *(*uintptr)(unsafe.Pointer(bp + 8)) += 4 + st = uint32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_states1)) + uintptr(st)*58 + uintptr(*(*Twchar_t)(unsafe.Pointer(v8))-uint32('A'))))) + } + if !(st != 0) { + goto inval + } + /* Check validity of argument type (nl/normal) */ + if st == uint32(_NOARG) { + if argpos >= 0 { + goto inval + } + } else { + if argpos >= 0 { + *(*int32)(unsafe.Pointer(nl_type + uintptr(argpos)*4)) = int32(st) + *(*Targ)(unsafe.Pointer(bp + 16)) = *(*Targ)(unsafe.Pointer(nl_arg + uintptr(argpos)*8)) + } else { + if f != 0 { + _pop_arg1(tls, bp+16, int32(st), ap) + } else { + return 0 + } + } + } + if !(f != 0) { + goto _1 + } + /* Do not process any new directives once in error state. */ + if (*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_ERR) != 0 { + return -int32(1) + } + t = int32(*(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)) + uintptr(-Int32FromInt32(1))*4))) + if ps != 0 && t&int32(15) == int32(3) { + t &= ^Int32FromInt32(32) + } + switch t { + case int32('n'): + switch ps { + case uint32(_BARE): + *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = cnt + case uint32(_LPRE): + *(*int64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = int64(cnt) + case uint32(_LLPRE): + *(*int64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = int64(cnt) + case uint32(_HPRE): + *(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = uint16(cnt) + case uint32(_HHPRE): + *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = uint8(cnt) + case uint32(_ZTPRE): + *(*Tsize_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = uint64(cnt) + case uint32(_JPRE): + *(*Tuintmax_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))) = uint64(cnt) + break + } + goto _1 + case int32('c'): + fallthrough + case int32('C'): + if w < int32(1) { + w = int32(1) + } + _pad4(tls, f, w-int32(1), int32(fl)) + if t == int32('C') { + v9 = *(*Tuintmax_t)(unsafe.Pointer(bp + 16)) + } else { + v9 = uint64(Xbtowc(tls, int32(*(*Tuintmax_t)(unsafe.Pointer(bp + 16))))) + } + *(*Twchar_t)(unsafe.Pointer(bp)) = uint32(v9) + _out1(tls, f, bp, uint64(1)) + _pad4(tls, f, w-int32(1), int32(fl^Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' ')))) + l = w + goto _1 + case int32('S'): + a = *(*uintptr)(unsafe.Pointer(bp + 16)) + if p < 0 { + v10 = int32(INT_MAX) + } else { + v10 = p + } + z = a + uintptr(Xwcsnlen(tls, a, uint64(v10)))*4 + if p < 0 && *(*Twchar_t)(unsafe.Pointer(z)) != 0 { + goto overflow + } + p = int32((int64(z) - int64(a)) / 4) + if w < p { + w = p + } + _pad4(tls, f, w-p, int32(fl)) + _out1(tls, f, a, uint64(p)) + _pad4(tls, f, w-p, int32(fl^Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' ')))) + l = w + goto _1 + case int32('m'): + *(*uintptr)(unsafe.Pointer(bp + 16)) = Xstrerror(tls, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) + fallthrough + case int32('s'): + if !(*(*uintptr)(unsafe.Pointer(bp + 16)) != 0) { + *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 1627 + } + bs = *(*uintptr)(unsafe.Pointer(bp + 16)) + v12 = Int32FromInt32(0) + l = v12 + i = v12 + for { + if p < 0 { + v13 = int32(INT_MAX) + } else { + v13 = p + } + if v15 = l < v13; v15 { + v14 = Xmbtowc(tls, bp+40, bs, uint64(MB_LEN_MAX)) + i = v14 + } + if !(v15 && v14 > 0) { + break + } + goto _11 + _11: + ; + bs += uintptr(i) + l++ + } + if i < 0 { + return -int32(1) + } + if p < 0 && *(*uint8)(unsafe.Pointer(bs)) != 0 { + goto overflow + } + p = l + if w < p { + w = p + } + _pad4(tls, f, w-p, int32(fl)) + bs = *(*uintptr)(unsafe.Pointer(bp + 16)) + for { + v16 = l + l-- + if !(v16 != 0) { + break + } + i = Xmbtowc(tls, bp+40, bs, uint64(MB_LEN_MAX)) + bs += uintptr(i) + _out1(tls, f, bp+40, uint64(1)) + } + _pad4(tls, f, w-p, int32(fl^Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' ')))) + l = w + goto _1 + } + if xp != 0 && p < 0 { + goto overflow + } + Xsnprintf(tls, bp+24, uint64(16), __ccgo_ts+1638, VaList(bp+56, __ccgo_ts+1658+BoolUintptr(!(fl&(Uint32FromUint32(1)<<(Int32FromUint8('#')-Int32FromUint8(' '))) != 0)), __ccgo_ts+1660+BoolUintptr(!(fl&(Uint32FromUint32(1)<<(Int32FromUint8('+')-Int32FromUint8(' '))) != 0)), __ccgo_ts+1662+BoolUintptr(!(fl&(Uint32FromUint32(1)<<(Int32FromUint8('-')-Int32FromUint8(' '))) != 0)), __ccgo_ts+672+BoolUintptr(!(fl&(Uint32FromUint32(1)<<(Int32FromUint8(' ')-Int32FromUint8(' '))) != 0)), __ccgo_ts+1664+BoolUintptr(!(fl&(Uint32FromUint32(1)<<(Int32FromUint8('0')-Int32FromUint8(' '))) != 0)), int32(_sizeprefix[t|int32(32)-int32('a')]), t)) + switch t | Int32FromInt32(32) { + case int32('a'): + fallthrough + case int32('e'): + fallthrough + case int32('f'): + fallthrough + case int32('g'): + l = Xfprintf(tls, f, bp+24, VaList(bp+56, w, p, *(*float64)(unsafe.Pointer(bp + 16)))) + case int32('d'): + fallthrough + case int32('i'): + fallthrough + case int32('o'): + fallthrough + case int32('u'): + fallthrough + case int32('x'): + fallthrough + case int32('p'): + l = Xfprintf(tls, f, bp+24, VaList(bp+56, w, p, *(*Tuintmax_t)(unsafe.Pointer(bp + 16)))) + break + } + goto _1 + _1: + } + if f != 0 { + return cnt + } + if !(l10n != 0) { + return 0 + } + i = int32(1) + for { + if !(i <= int32(NL_ARGMAX) && *(*int32)(unsafe.Pointer(nl_type + uintptr(i)*4)) != 0) { + break + } + _pop_arg1(tls, nl_arg+uintptr(i)*8, *(*int32)(unsafe.Pointer(nl_type + uintptr(i)*4)), ap) + goto _17 + _17: + ; + i++ + } + for { + if !(i <= int32(NL_ARGMAX) && !(*(*int32)(unsafe.Pointer(nl_type + uintptr(i)*4)) != 0)) { + break + } + goto _18 + _18: + ; + i++ + } + if i <= int32(NL_ARGMAX) { + return -int32(1) + } + return int32(1) + goto inval +inval: + ; + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return -int32(1) + goto overflow +overflow: + ; + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOVERFLOW) + return -int32(1) +} + +func Xvfwprintf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v fmt=%v ap=%v, (%v:)", tls, f, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(128) + defer tls.Free(128) + var __need_unlock, olderr, ret, v1 int32 + var _ /* ap2 at bp+0 */ Tva_list + var _ /* nl_arg at bp+48 */ [10]Targ + var _ /* nl_type at bp+8 */ [10]int32 + _, _, _, _ = __need_unlock, olderr, ret, v1 + *(*[10]int32)(unsafe.Pointer(bp + 8)) = [10]int32{} + /* the copy allows passing va_list* even if va_list is an array */ + *(*Tva_list)(unsafe.Pointer(bp)) = ap + if _wprintf_core(tls, uintptr(0), fmt, bp, bp+48, bp+8) < 0 { + _ = *(*Tva_list)(unsafe.Pointer(bp)) + return -int32(1) + } + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + Xfwide(tls, f, int32(1)) + olderr = int32((*TFILE)(unsafe.Pointer(f)).Fflags & uint32(F_ERR)) + *(*uint32)(unsafe.Pointer(f)) &= uint32(^Int32FromInt32(F_ERR)) + ret = _wprintf_core(tls, f, fmt, bp, bp+48, bp+8) + if (*TFILE)(unsafe.Pointer(f)).Fflags&uint32(F_ERR) != 0 { + ret = -int32(1) + } + *(*uint32)(unsafe.Pointer(f)) |= uint32(olderr) + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + _ = *(*Tva_list)(unsafe.Pointer(bp)) + return ret +} + +func _store_int1(tls *TLS, dest uintptr, size int32, i uint64) { + if !(dest != 0) { + return + } + switch size { + case -int32(2): + *(*uint8)(unsafe.Pointer(dest)) = uint8(i) + case -int32(1): + *(*int16)(unsafe.Pointer(dest)) = int16(i) + case SIZE_def: + *(*int32)(unsafe.Pointer(dest)) = int32(i) + case int32(SIZE_l): + *(*int64)(unsafe.Pointer(dest)) = int64(i) + case int32(SIZE_ll): + *(*int64)(unsafe.Pointer(dest)) = int64(i) + break + } +} + +func _arg_n1(tls *TLS, ap Tva_list, n uint32) (r uintptr) { + var ap2 Tva_list + var i uint32 + var p uintptr + _, _, _ = ap2, i, p + ap2 = ap + i = n + for { + if !(i > uint32(1)) { + break + } + _ = VaUintptr(&ap2) + goto _1 + _1: + ; + i-- + } + p = VaUintptr(&ap2) + _ = ap2 + return p +} + +func _in_set(tls *TLS, set uintptr, c int32) (r int32) { + var j int32 + var p, v3 uintptr + _, _, _ = j, p, v3 + p = set + if *(*Twchar_t)(unsafe.Pointer(p)) == uint32('-') { + if c == int32('-') { + return int32(1) + } + p += 4 + } else { + if *(*Twchar_t)(unsafe.Pointer(p)) == uint32(']') { + if c == int32(']') { + return int32(1) + } + p += 4 + } + } + for { + if !(*(*Twchar_t)(unsafe.Pointer(p)) != 0 && *(*Twchar_t)(unsafe.Pointer(p)) != uint32(']')) { + break + } + if *(*Twchar_t)(unsafe.Pointer(p)) == uint32('-') && *(*Twchar_t)(unsafe.Pointer(p + 1*4)) != 0 && *(*Twchar_t)(unsafe.Pointer(p + 1*4)) != uint32(']') { + v3 = p + p += 4 + j = int32(*(*Twchar_t)(unsafe.Pointer(v3 + uintptr(-Int32FromInt32(1))*4))) + for { + if !(uint32(j) < *(*Twchar_t)(unsafe.Pointer(p))) { + break + } + if c == j { + return int32(1) + } + goto _2 + _2: + ; + j++ + } + } + if uint32(c) == *(*Twchar_t)(unsafe.Pointer(p)) { + return int32(1) + } + goto _1 + _1: + ; + p += 4 + } + return 0 +} + +func Xvfwscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v fmt=%v ap=%v, (%v:)", tls, f, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(80) + defer tls.Free(80) + var __need_unlock, alloc, c, gotmatch, invert, l, matches, size, t, width, v1, v10, v22, v3, v36 int32 + var dest, p, s, set, tmp1, tmp2, wcs, v12, v13, v15, v16, v18, v19, v21, v24, v25, v27, v28, v30, v31, v32, v33, v34, v38, v39, v41, v43, v44, v45, v5, v6, v8, v9 uintptr + var i, k, v40 Tsize_t + var pos Toff_t + var v11, v14, v23, v26, v35, v37, v4 uint32 + var _ /* cnt at bp+0 */ Toff_t + var _ /* tmp at bp+8 */ [22]uint8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = __need_unlock, alloc, c, dest, gotmatch, i, invert, k, l, matches, p, pos, s, set, size, t, tmp1, tmp2, wcs, width, v1, v10, v11, v12, v13, v14, v15, v16, v18, v19, v21, v22, v23, v24, v25, v26, v27, v28, v3, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v4, v40, v41, v43, v44, v45, v5, v6, v8, v9 + dest = UintptrFromInt32(0) + matches = 0 + pos = 0 + if AtomicLoadPInt32(f+140) >= 0 { + v1 = ___lockfile(tls, f) + } else { + v1 = 0 + } + __need_unlock = v1 + Xfwide(tls, f, int32(1)) + p = fmt + for { + if !(*(*Twchar_t)(unsafe.Pointer(p)) != 0) { + break + } + alloc = 0 + if Xiswspace(tls, *(*Twchar_t)(unsafe.Pointer(p))) != 0 { + for Xiswspace(tls, *(*Twchar_t)(unsafe.Pointer(p + 1*4))) != 0 { + p += 4 + } + for { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend && int32(*(*uint8)(unsafe.Pointer((*TFILE)(unsafe.Pointer(f)).Frpos))) < int32(128) { + v6 = f + 8 + v5 = *(*uintptr)(unsafe.Pointer(v6)) + *(*uintptr)(unsafe.Pointer(v6))++ + v4 = uint32(*(*uint8)(unsafe.Pointer(v5))) + } else { + v4 = Xgetwc(tls, f) + } + v3 = int32(v4) + c = v3 + if !(Xiswspace(tls, uint32(v3)) != 0) { + break + } + pos++ + } + if (*TFILE)(unsafe.Pointer(f)).Frend != 0 && uint32(c) < uint32(128) { + v9 = f + 8 + *(*uintptr)(unsafe.Pointer(v9))-- + v8 = *(*uintptr)(unsafe.Pointer(v9)) + _ = *(*uint8)(unsafe.Pointer(v8)) + } else { + Xungetwc(tls, uint32(c), f) + } + goto _2 + } + if *(*Twchar_t)(unsafe.Pointer(p)) != uint32('%') || *(*Twchar_t)(unsafe.Pointer(p + 1*4)) == uint32('%') { + if *(*Twchar_t)(unsafe.Pointer(p)) == uint32('%') { + p += 4 + for { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend && int32(*(*uint8)(unsafe.Pointer((*TFILE)(unsafe.Pointer(f)).Frpos))) < int32(128) { + v13 = f + 8 + v12 = *(*uintptr)(unsafe.Pointer(v13)) + *(*uintptr)(unsafe.Pointer(v13))++ + v11 = uint32(*(*uint8)(unsafe.Pointer(v12))) + } else { + v11 = Xgetwc(tls, f) + } + v10 = int32(v11) + c = v10 + if !(Xiswspace(tls, uint32(v10)) != 0) { + break + } + pos++ + } + } else { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend && int32(*(*uint8)(unsafe.Pointer((*TFILE)(unsafe.Pointer(f)).Frpos))) < int32(128) { + v16 = f + 8 + v15 = *(*uintptr)(unsafe.Pointer(v16)) + *(*uintptr)(unsafe.Pointer(v16))++ + v14 = uint32(*(*uint8)(unsafe.Pointer(v15))) + } else { + v14 = Xgetwc(tls, f) + } + c = int32(v14) + } + if uint32(c) != *(*Twchar_t)(unsafe.Pointer(p)) { + if (*TFILE)(unsafe.Pointer(f)).Frend != 0 && uint32(c) < uint32(128) { + v19 = f + 8 + *(*uintptr)(unsafe.Pointer(v19))-- + v18 = *(*uintptr)(unsafe.Pointer(v19)) + _ = *(*uint8)(unsafe.Pointer(v18)) + } else { + Xungetwc(tls, uint32(c), f) + } + if c < 0 { + goto input_fail + } + goto match_fail + } + pos++ + goto _2 + } + p += 4 + if *(*Twchar_t)(unsafe.Pointer(p)) == uint32('*') { + dest = uintptr(0) + p += 4 + } else { + if BoolInt32(*(*Twchar_t)(unsafe.Pointer(p))-uint32('0') < uint32(10)) != 0 && *(*Twchar_t)(unsafe.Pointer(p + 1*4)) == uint32('$') { + dest = _arg_n1(tls, ap, *(*Twchar_t)(unsafe.Pointer(p))-uint32('0')) + p += uintptr(2) * 4 + } else { + dest = VaUintptr(&ap) + } + } + width = 0 + for { + if !(BoolInt32(*(*Twchar_t)(unsafe.Pointer(p))-uint32('0') < uint32(10)) != 0) { + break + } + width = int32(uint32(int32(10)*width) + *(*Twchar_t)(unsafe.Pointer(p)) - uint32('0')) + goto _20 + _20: + ; + p += 4 + } + if *(*Twchar_t)(unsafe.Pointer(p)) == uint32('m') { + wcs = uintptr(0) + s = uintptr(0) + alloc = BoolInt32(!!(dest != 0)) + p += 4 + } else { + alloc = 0 + } + size = SIZE_def + v21 = p + p += 4 + switch *(*Twchar_t)(unsafe.Pointer(v21)) { + case uint32('h'): + if *(*Twchar_t)(unsafe.Pointer(p)) == uint32('h') { + p += 4 + size = -Int32FromInt32(2) + } else { + size = -int32(1) + } + case uint32('l'): + if *(*Twchar_t)(unsafe.Pointer(p)) == uint32('l') { + p += 4 + size = Int32FromInt32(SIZE_ll) + } else { + size = int32(SIZE_l) + } + case uint32('j'): + size = int32(SIZE_ll) + case uint32('z'): + fallthrough + case uint32('t'): + size = int32(SIZE_l) + case uint32('L'): + size = int32(SIZE_L) + case uint32('d'): + fallthrough + case uint32('i'): + fallthrough + case uint32('o'): + fallthrough + case uint32('u'): + fallthrough + case uint32('x'): + fallthrough + case uint32('a'): + fallthrough + case uint32('e'): + fallthrough + case uint32('f'): + fallthrough + case uint32('g'): + fallthrough + case uint32('A'): + fallthrough + case uint32('E'): + fallthrough + case uint32('F'): + fallthrough + case uint32('G'): + fallthrough + case uint32('X'): + fallthrough + case uint32('s'): + fallthrough + case uint32('c'): + fallthrough + case uint32('['): + fallthrough + case uint32('S'): + fallthrough + case uint32('C'): + fallthrough + case uint32('p'): + fallthrough + case uint32('n'): + p -= 4 + default: + goto fmt_fail + } + t = int32(*(*Twchar_t)(unsafe.Pointer(p))) + /* Transform S,C -> ls,lc */ + if t&int32(0x2f) == int32(3) { + size = int32(SIZE_l) + t |= int32(32) + } + if t != int32('n') { + if t != int32('[') && t|int32(32) != int32('c') { + for { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend && int32(*(*uint8)(unsafe.Pointer((*TFILE)(unsafe.Pointer(f)).Frpos))) < int32(128) { + v25 = f + 8 + v24 = *(*uintptr)(unsafe.Pointer(v25)) + *(*uintptr)(unsafe.Pointer(v25))++ + v23 = uint32(*(*uint8)(unsafe.Pointer(v24))) + } else { + v23 = Xgetwc(tls, f) + } + v22 = int32(v23) + c = v22 + if !(Xiswspace(tls, uint32(v22)) != 0) { + break + } + pos++ + } + } else { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend && int32(*(*uint8)(unsafe.Pointer((*TFILE)(unsafe.Pointer(f)).Frpos))) < int32(128) { + v28 = f + 8 + v27 = *(*uintptr)(unsafe.Pointer(v28)) + *(*uintptr)(unsafe.Pointer(v28))++ + v26 = uint32(*(*uint8)(unsafe.Pointer(v27))) + } else { + v26 = Xgetwc(tls, f) + } + c = int32(v26) + } + if c < 0 { + goto input_fail + } + if (*TFILE)(unsafe.Pointer(f)).Frend != 0 && uint32(c) < uint32(128) { + v31 = f + 8 + *(*uintptr)(unsafe.Pointer(v31))-- + v30 = *(*uintptr)(unsafe.Pointer(v31)) + _ = *(*uint8)(unsafe.Pointer(v30)) + } else { + Xungetwc(tls, uint32(c), f) + } + } + switch t { + case int32('n'): + _store_int1(tls, dest, size, uint64(pos)) + /* do not increment match count, etc! */ + goto _2 + case int32('s'): + fallthrough + case int32('c'): + fallthrough + case int32('['): + if t == int32('c') { + if width < int32(1) { + width = int32(1) + } + invert = int32(1) + set = __ccgo_ts + 1666 + } else { + if t == int32('s') { + invert = int32(1) + set = uintptr(unsafe.Pointer(&_spaces1)) + } else { + p += 4 + v32 = p + if *(*Twchar_t)(unsafe.Pointer(v32)) == uint32('^') { + p += 4 + invert = Int32FromInt32(1) + } else { + invert = 0 + } + set = p + if *(*Twchar_t)(unsafe.Pointer(p)) == uint32(']') { + p += 4 + } + for *(*Twchar_t)(unsafe.Pointer(p)) != uint32(']') { + if !(*(*Twchar_t)(unsafe.Pointer(p)) != 0) { + goto fmt_fail + } + p += 4 + } + } + } + if size == SIZE_def { + v33 = dest + } else { + v33 = uintptr(0) + } + s = v33 + if size == int32(SIZE_l) { + v34 = dest + } else { + v34 = uintptr(0) + } + wcs = v34 + gotmatch = 0 + if width < int32(1) { + width = -int32(1) + } + i = uint64(0) + if alloc != 0 { + if t == int32('c') { + v35 = uint32(width) + uint32(1) + } else { + v35 = uint32(31) + } + k = uint64(v35) + if size == int32(SIZE_l) { + wcs = Xmalloc(tls, k*uint64(4)) + if !(wcs != 0) { + goto alloc_fail + } + } else { + s = Xmalloc(tls, k) + if !(s != 0) { + goto alloc_fail + } + } + } + for width != 0 { + if (*TFILE)(unsafe.Pointer(f)).Frpos != (*TFILE)(unsafe.Pointer(f)).Frend && int32(*(*uint8)(unsafe.Pointer((*TFILE)(unsafe.Pointer(f)).Frpos))) < int32(128) { + v39 = f + 8 + v38 = *(*uintptr)(unsafe.Pointer(v39)) + *(*uintptr)(unsafe.Pointer(v39))++ + v37 = uint32(*(*uint8)(unsafe.Pointer(v38))) + } else { + v37 = Xgetwc(tls, f) + } + v36 = int32(v37) + c = v36 + if v36 < 0 { + break + } + if _in_set(tls, set, c) == invert { + break + } + if wcs != 0 { + v40 = i + i++ + *(*Twchar_t)(unsafe.Pointer(wcs + uintptr(v40)*4)) = uint32(c) + if alloc != 0 && i == k { + k += k + uint64(1) + tmp1 = Xrealloc(tls, wcs, k*uint64(4)) + if !(tmp1 != 0) { + goto alloc_fail + } + wcs = tmp1 + } + } else { + if size != int32(SIZE_l) { + if s != 0 { + v41 = s + uintptr(i) + } else { + v41 = bp + 8 + } + l = Xwctomb(tls, v41, uint32(c)) + if l < 0 { + goto input_fail + } + i += uint64(l) + if alloc != 0 && i > k-uint64(4) { + k += k + uint64(1) + tmp2 = Xrealloc(tls, s, k) + if !(tmp2 != 0) { + goto alloc_fail + } + s = tmp2 + } + } + } + pos++ + width -= BoolInt32(width > 0) + gotmatch = int32(1) + } + if width != 0 { + if (*TFILE)(unsafe.Pointer(f)).Frend != 0 && uint32(c) < uint32(128) { + v44 = f + 8 + *(*uintptr)(unsafe.Pointer(v44))-- + v43 = *(*uintptr)(unsafe.Pointer(v44)) + _ = *(*uint8)(unsafe.Pointer(v43)) + } else { + Xungetwc(tls, uint32(c), f) + } + if t == int32('c') || !(gotmatch != 0) { + goto match_fail + } + } + if alloc != 0 { + if size == int32(SIZE_l) { + *(*uintptr)(unsafe.Pointer(dest)) = wcs + } else { + *(*uintptr)(unsafe.Pointer(dest)) = s + } + } + if t != int32('c') { + if wcs != 0 { + *(*Twchar_t)(unsafe.Pointer(wcs + uintptr(i)*4)) = uint32(0) + } + if s != 0 { + *(*uint8)(unsafe.Pointer(s + uintptr(i))) = uint8(0) + } + } + case int32('d'): + fallthrough + case int32('i'): + fallthrough + case int32('o'): + fallthrough + case int32('u'): + fallthrough + case int32('x'): + fallthrough + case int32('a'): + fallthrough + case int32('e'): + fallthrough + case int32('f'): + fallthrough + case int32('g'): + fallthrough + case int32('A'): + fallthrough + case int32('E'): + fallthrough + case int32('F'): + fallthrough + case int32('G'): + fallthrough + case int32('X'): + fallthrough + case int32('p'): + if width < int32(1) { + width = 0 + } + Xsnprintf(tls, bp+8, uint64(22), __ccgo_ts+1670, VaList(bp+40, int32(1)+BoolInt32(!(dest != 0)), __ccgo_ts+1688, width, uintptr(unsafe.Pointer(&_size_pfx))+uintptr(size+int32(2))*3, t)) + *(*Toff_t)(unsafe.Pointer(bp)) = 0 + if dest != 0 { + v45 = dest + } else { + v45 = bp + } + if Xfscanf(tls, f, bp+8, VaList(bp+40, v45, bp)) == -int32(1) { + goto input_fail + } else { + if !(*(*Toff_t)(unsafe.Pointer(bp)) != 0) { + goto match_fail + } + } + pos += *(*Toff_t)(unsafe.Pointer(bp)) + default: + goto fmt_fail + } + if dest != 0 { + matches++ + } + goto _2 + _2: + ; + p += 4 + } + if !(0 != 0) { + goto _46 + } + goto fmt_fail +fmt_fail: + ; + goto alloc_fail +alloc_fail: + ; + goto input_fail +input_fail: + ; + if !(matches != 0) { + matches-- + } + goto match_fail +match_fail: + ; + if alloc != 0 { + Xfree(tls, s) + Xfree(tls, wcs) + } +_46: + ; + if __need_unlock != 0 { + ___unlockfile(tls, f) + } + return matches +} + +var _size_pfx = [6][3]uint8{ + 0: {'h', 'h'}, + 1: {'h'}, + 2: {}, + 3: {'l'}, + 4: {'L'}, + 5: {'l', 'l'}, +} + +var _spaces1 = [22]Twchar_t{ + 0: uint32(' '), + 1: uint32('\t'), + 2: uint32('\n'), + 3: uint32('\r'), + 4: uint32(11), + 5: uint32(12), + 6: uint32(0x0085), + 7: uint32(0x2000), + 8: uint32(0x2001), + 9: uint32(0x2002), + 10: uint32(0x2003), + 11: uint32(0x2004), + 12: uint32(0x2005), + 13: uint32(0x2006), + 14: uint32(0x2008), + 15: uint32(0x2009), + 16: uint32(0x200a), + 17: uint32(0x2028), + 18: uint32(0x2029), + 19: uint32(0x205f), + 20: uint32(0x3000), +} + +func X__isoc99_vfwscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v f=%v fmt=%v ap=%v, (%v:)", tls, f, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xvfwscanf(tls, f, fmt, ap) +} + +func Xvprintf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v fmt=%v ap=%v, (%v:)", tls, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xvfprintf(tls, uintptr(unsafe.Pointer(&X__stdout_FILE)), fmt, ap) +} + +func Xvscanf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v fmt=%v ap=%v, (%v:)", tls, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xvfscanf(tls, uintptr(unsafe.Pointer(&X__stdin_FILE)), fmt, ap) +} + +func X__isoc99_vscanf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v fmt=%v ap=%v, (%v:)", tls, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xvscanf(tls, fmt, ap) +} + +type Tcookie3 = struct { + Fs uintptr + Fn Tsize_t +} + +func _sn_write(tls *TLS, f uintptr, s uintptr, l Tsize_t) (r Tsize_t) { + var c, v3 uintptr + var k Tsize_t + var v1, v2 uint64 + _, _, _, _, _ = c, k, v1, v2, v3 + c = (*TFILE)(unsafe.Pointer(f)).Fcookie + if (*Tcookie3)(unsafe.Pointer(c)).Fn < uint64(int64((*TFILE)(unsafe.Pointer(f)).Fwpos)-int64((*TFILE)(unsafe.Pointer(f)).Fwbase)) { + v1 = (*Tcookie3)(unsafe.Pointer(c)).Fn + } else { + v1 = uint64(int64((*TFILE)(unsafe.Pointer(f)).Fwpos) - int64((*TFILE)(unsafe.Pointer(f)).Fwbase)) + } + k = v1 + if k != 0 { + Xmemcpy(tls, (*Tcookie3)(unsafe.Pointer(c)).Fs, (*TFILE)(unsafe.Pointer(f)).Fwbase, k) + *(*uintptr)(unsafe.Pointer(c)) += uintptr(k) + *(*Tsize_t)(unsafe.Pointer(c + 8)) -= k + } + if (*Tcookie3)(unsafe.Pointer(c)).Fn < l { + v2 = (*Tcookie3)(unsafe.Pointer(c)).Fn + } else { + v2 = l + } + k = v2 + if k != 0 { + Xmemcpy(tls, (*Tcookie3)(unsafe.Pointer(c)).Fs, s, k) + *(*uintptr)(unsafe.Pointer(c)) += uintptr(k) + *(*Tsize_t)(unsafe.Pointer(c + 8)) -= k + } + *(*uint8)(unsafe.Pointer((*Tcookie3)(unsafe.Pointer(c)).Fs)) = uint8(0) + v3 = (*TFILE)(unsafe.Pointer(f)).Fbuf + (*TFILE)(unsafe.Pointer(f)).Fwbase = v3 + (*TFILE)(unsafe.Pointer(f)).Fwpos = v3 + /* pretend to succeed, even if we discarded extra data */ + return l +} + +func Xvsnprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v fmt=%v ap=%v, (%v:)", tls, s, n, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(256) + defer tls.Free(256) + var v1 uintptr + var v2 uint64 + var _ /* buf at bp+0 */ [1]uint8 + var _ /* c at bp+8 */ Tcookie3 + var _ /* dummy at bp+1 */ [1]uint8 + var _ /* f at bp+24 */ TFILE + _, _ = v1, v2 + if n != 0 { + v1 = s + } else { + v1 = bp + 1 + } + if n != 0 { + v2 = n - uint64(1) + } else { + v2 = uint64(0) + } + *(*Tcookie3)(unsafe.Pointer(bp + 8)) = Tcookie3{ + Fs: v1, + Fn: v2, + } + *(*TFILE)(unsafe.Pointer(bp + 24)) = TFILE{ + Fwrite: __ccgo_fp(_sn_write), + Fbuf: bp, + Flock: -int32(1), + Flbf: -int32(1), + Fcookie: bp + 8, + } + *(*uint8)(unsafe.Pointer((*(*Tcookie3)(unsafe.Pointer(bp + 8))).Fs)) = uint8(0) + return Xvfprintf(tls, bp+24, fmt, ap) +} + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +func Xvsprintf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v fmt=%v ap=%v, (%v:)", tls, s, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xvsnprintf(tls, s, uint64(INT_MAX), fmt, ap) +} + +func _string_read(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { + var end, src uintptr + var k Tsize_t + _, _, _ = end, k, src + src = (*TFILE)(unsafe.Pointer(f)).Fcookie + k = len1 + uint64(256) + end = Xmemchr(tls, src, 0, k) + if end != 0 { + k = uint64(int64(end) - int64(src)) + } + if k < len1 { + len1 = k + } + Xmemcpy(tls, buf, src, len1) + (*TFILE)(unsafe.Pointer(f)).Frpos = src + uintptr(len1) + (*TFILE)(unsafe.Pointer(f)).Frend = src + uintptr(k) + (*TFILE)(unsafe.Pointer(f)).Fcookie = src + uintptr(k) + return len1 +} + +func Xvsscanf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v fmt=%v ap=%v, (%v:)", tls, s, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(240) + defer tls.Free(240) + var _ /* f at bp+0 */ TFILE + *(*TFILE)(unsafe.Pointer(bp)) = TFILE{ + Fread: __ccgo_fp(_string_read), + Fbuf: s, + Flock: -int32(1), + Fcookie: s, + } + return Xvfscanf(tls, bp, fmt, ap) +} + +func X__isoc99_vsscanf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v fmt=%v ap=%v, (%v:)", tls, s, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xvsscanf(tls, s, fmt, ap) +} + +type Tcookie4 = struct { + Fws uintptr + Fl Tsize_t +} + +func _sw_write(tls *TLS, f uintptr, s uintptr, l Tsize_t) (r Tsize_t) { + var c, v3, v4, v5 uintptr + var i, v1 int32 + var l0 Tsize_t + var v2 bool + _, _, _, _, _, _, _, _ = c, i, l0, v1, v2, v3, v4, v5 + l0 = l + i = 0 + c = (*TFILE)(unsafe.Pointer(f)).Fcookie + if s != (*TFILE)(unsafe.Pointer(f)).Fwbase && _sw_write(tls, f, (*TFILE)(unsafe.Pointer(f)).Fwbase, uint64(int64((*TFILE)(unsafe.Pointer(f)).Fwpos)-int64((*TFILE)(unsafe.Pointer(f)).Fwbase))) == uint64(-Int32FromInt32(1)) { + return uint64(-Int32FromInt32(1)) + } + for { + if v2 = (*Tcookie4)(unsafe.Pointer(c)).Fl != 0 && l != 0; v2 { + v1 = Xmbtowc(tls, (*Tcookie4)(unsafe.Pointer(c)).Fws, s, l) + i = v1 + } + if !(v2 && v1 >= 0) { + break + } + if !(i != 0) { + i = int32(1) + } + s += uintptr(i) + l -= uint64(i) + (*Tcookie4)(unsafe.Pointer(c)).Fl-- + (*Tcookie4)(unsafe.Pointer(c)).Fws += 4 + } + *(*Twchar_t)(unsafe.Pointer((*Tcookie4)(unsafe.Pointer(c)).Fws)) = uint32(0) + if i < 0 { + v4 = UintptrFromInt32(0) + (*TFILE)(unsafe.Pointer(f)).Fwend = v4 + v3 = v4 + (*TFILE)(unsafe.Pointer(f)).Fwbase = v3 + (*TFILE)(unsafe.Pointer(f)).Fwpos = v3 + *(*uint32)(unsafe.Pointer(f)) |= uint32(F_ERR) + return uint64(i) + } + (*TFILE)(unsafe.Pointer(f)).Fwend = (*TFILE)(unsafe.Pointer(f)).Fbuf + uintptr((*TFILE)(unsafe.Pointer(f)).Fbuf_size) + v5 = (*TFILE)(unsafe.Pointer(f)).Fbuf + (*TFILE)(unsafe.Pointer(f)).Fwbase = v5 + (*TFILE)(unsafe.Pointer(f)).Fwpos = v5 + return l0 +} + +func Xvswprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, ap Tva_list) (r1 int32) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v fmt=%v ap=%v, (%v:)", tls, s, n, fmt, ap, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(512) + defer tls.Free(512) + var r, v1 int32 + var _ /* buf at bp+0 */ [256]uint8 + var _ /* c at bp+256 */ Tcookie4 + var _ /* f at bp+272 */ TFILE + _, _ = r, v1 + *(*Tcookie4)(unsafe.Pointer(bp + 256)) = Tcookie4{ + Fws: s, + Fl: n - uint64(1), + } + *(*TFILE)(unsafe.Pointer(bp + 272)) = TFILE{ + Fwrite: __ccgo_fp(_sw_write), + Fbuf: bp, + Fbuf_size: uint64(256), + Flock: -int32(1), + Flbf: -int32(1), + Fcookie: bp + 256, + } + if !(n != 0) { + return -int32(1) + } + r = Xvfwprintf(tls, bp+272, fmt, ap) + _sw_write(tls, bp+272, uintptr(0), uint64(0)) + if uint64(r) >= n { + v1 = -int32(1) + } else { + v1 = r + } + return v1 +} + +func _wstring_read(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { + bp := tls.Alloc(16) + defer tls.Free(16) + var k Tsize_t + var v1, v2, v3 uintptr + var _ /* src at bp+0 */ uintptr + _, _, _, _ = k, v1, v2, v3 + *(*uintptr)(unsafe.Pointer(bp)) = (*TFILE)(unsafe.Pointer(f)).Fcookie + if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) { + return uint64(0) + } + k = Xwcsrtombs(tls, (*TFILE)(unsafe.Pointer(f)).Fbuf, bp, (*TFILE)(unsafe.Pointer(f)).Fbuf_size, uintptr(0)) + if k == uint64(-Int32FromInt32(1)) { + v1 = UintptrFromInt32(0) + (*TFILE)(unsafe.Pointer(f)).Frend = v1 + (*TFILE)(unsafe.Pointer(f)).Frpos = v1 + return uint64(0) + } + (*TFILE)(unsafe.Pointer(f)).Frpos = (*TFILE)(unsafe.Pointer(f)).Fbuf + (*TFILE)(unsafe.Pointer(f)).Frend = (*TFILE)(unsafe.Pointer(f)).Fbuf + uintptr(k) + (*TFILE)(unsafe.Pointer(f)).Fcookie = *(*uintptr)(unsafe.Pointer(bp)) + if !(len1 != 0) || !(k != 0) { + return uint64(0) + } + v3 = f + 8 + v2 = *(*uintptr)(unsafe.Pointer(v3)) + *(*uintptr)(unsafe.Pointer(v3))++ + *(*uint8)(unsafe.Pointer(buf)) = *(*uint8)(unsafe.Pointer(v2)) + return uint64(1) +} + +func Xvswscanf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v fmt=%v ap=%v, (%v:)", tls, s, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(496) + defer tls.Free(496) + var _ /* buf at bp+0 */ [256]uint8 + var _ /* f at bp+256 */ TFILE + *(*TFILE)(unsafe.Pointer(bp + 256)) = TFILE{ + Fread: __ccgo_fp(_wstring_read), + Fbuf: bp, + Fbuf_size: uint64(256), + Flock: -int32(1), + Fcookie: s, + } + return Xvfwscanf(tls, bp+256, fmt, ap) +} + +func X__isoc99_vswscanf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v fmt=%v ap=%v, (%v:)", tls, s, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xvswscanf(tls, s, fmt, ap) +} + +func Xvwprintf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v fmt=%v ap=%v, (%v:)", tls, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xvfwprintf(tls, uintptr(unsafe.Pointer(&X__stdout_FILE)), fmt, ap) +} + +func Xvwscanf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v fmt=%v ap=%v, (%v:)", tls, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xvfwscanf(tls, uintptr(unsafe.Pointer(&X__stdin_FILE)), fmt, ap) +} + +func X__isoc99_vwscanf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) { + if __ccgo_strace { + trc("tls=%v fmt=%v ap=%v, (%v:)", tls, fmt, ap, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xvwscanf(tls, fmt, ap) +} + +func Xwprintf(tls *TLS, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fmt=%v va=%v, (%v:)", tls, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var ret int32 + _, _ = ap, ret + ap = va + ret = Xvwprintf(tls, fmt, ap) + _ = ap + return ret +} + +func Xwscanf(tls *TLS, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fmt=%v va=%v, (%v:)", tls, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ap Tva_list + var ret int32 + _, _ = ap, ret + ap = va + ret = Xvwscanf(tls, fmt, ap) + _ = ap + return ret +} + +func X__isoc99_wscanf(tls *TLS, fmt uintptr, va uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fmt=%v va=%v, (%v:)", tls, fmt, va, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xwscanf(tls, fmt, va) +} + +func Xabs(tls *TLS, a int32) (r int32) { + if __ccgo_strace { + trc("tls=%v a=%v, (%v:)", tls, a, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 int32 + _ = v1 + if a > 0 { + v1 = a + } else { + v1 = -a + } + return v1 +} + +func Xatof(tls *TLS, s uintptr) (r float64) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrtod(tls, s, uintptr(0)) +} + +func Xatoi(tls *TLS, s uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + var n, neg, v1, v2, v5 int32 + var v4 uintptr + _, _, _, _, _, _ = n, neg, v1, v2, v4, v5 + n = 0 + neg = 0 + for { + v1 = int32(*(*uint8)(unsafe.Pointer(s))) + v2 = BoolInt32(v1 == int32(' ') || uint32(v1)-uint32('\t') < uint32(5)) + goto _3 + _3: + if !(v2 != 0) { + break + } + s++ + } + switch int32(*(*uint8)(unsafe.Pointer(s))) { + case int32('-'): + neg = int32(1) + fallthrough + case int32('+'): + s++ + } + /* Compute n as a negative number to avoid overflow on INT_MIN */ + for BoolInt32(uint32(*(*uint8)(unsafe.Pointer(s)))-uint32('0') < uint32(10)) != 0 { + v4 = s + s++ + n = int32(10)*n - (int32(*(*uint8)(unsafe.Pointer(v4))) - int32('0')) + } + if neg != 0 { + v5 = n + } else { + v5 = -n + } + return v5 +} + +func Xatol(tls *TLS, s uintptr) (r int64) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + var n, v5 int64 + var neg, v1, v2 int32 + var v4 uintptr + _, _, _, _, _, _ = n, neg, v1, v2, v4, v5 + n = 0 + neg = 0 + for { + v1 = int32(*(*uint8)(unsafe.Pointer(s))) + v2 = BoolInt32(v1 == int32(' ') || uint32(v1)-uint32('\t') < uint32(5)) + goto _3 + _3: + if !(v2 != 0) { + break + } + s++ + } + switch int32(*(*uint8)(unsafe.Pointer(s))) { + case int32('-'): + neg = int32(1) + fallthrough + case int32('+'): + s++ + } + /* Compute n as a negative number to avoid overflow on LONG_MIN */ + for BoolInt32(uint32(*(*uint8)(unsafe.Pointer(s)))-uint32('0') < uint32(10)) != 0 { + v4 = s + s++ + n = int64(10)*n - int64(int32(*(*uint8)(unsafe.Pointer(v4)))-Int32FromUint8('0')) + } + if neg != 0 { + v5 = n + } else { + v5 = -n + } + return v5 +} + +func Xatoll(tls *TLS, s uintptr) (r int64) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + var n, v5 int64 + var neg, v1, v2 int32 + var v4 uintptr + _, _, _, _, _, _ = n, neg, v1, v2, v4, v5 + n = 0 + neg = 0 + for { + v1 = int32(*(*uint8)(unsafe.Pointer(s))) + v2 = BoolInt32(v1 == int32(' ') || uint32(v1)-uint32('\t') < uint32(5)) + goto _3 + _3: + if !(v2 != 0) { + break + } + s++ + } + switch int32(*(*uint8)(unsafe.Pointer(s))) { + case int32('-'): + neg = int32(1) + fallthrough + case int32('+'): + s++ + } + /* Compute n as a negative number to avoid overflow on LLONG_MIN */ + for BoolInt32(uint32(*(*uint8)(unsafe.Pointer(s)))-uint32('0') < uint32(10)) != 0 { + v4 = s + s++ + n = int64(10)*n - int64(int32(*(*uint8)(unsafe.Pointer(v4)))-Int32FromUint8('0')) + } + if neg != 0 { + v5 = n + } else { + v5 = -n + } + return v5 +} + +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, cmp uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v key=%v base=%v nel=%v width=%v cmp=%v, (%v:)", tls, key, base, nel, width, cmp, origin(2)) + defer func() { trc("-> %v", r) }() + } + var sign int32 + var try uintptr + _, _ = sign, try + for nel > uint64(0) { + try = base + uintptr(width*(nel/uint64(2))) + sign = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, try) + if sign < 0 { + nel /= uint64(2) + } else { + if sign > 0 { + base = try + uintptr(width) + nel -= nel/uint64(2) + uint64(1) + } else { + return try + } + } + } + return UintptrFromInt32(0) +} + +func Xdiv(tls *TLS, num int32, den int32) (r Tdiv_t) { + if __ccgo_strace { + trc("tls=%v num=%v den=%v, (%v:)", tls, num, den, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Tdiv_t{ + Fquot: num / den, + Frem: num % den, + } +} + +func Xecvt(tls *TLS, x float64, n int32, dp uintptr, sign uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v x=%v n=%v dp=%v sign=%v, (%v:)", tls, x, n, dp, sign, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(64) + defer tls.Free(64) + var i, j, v1, v3 int32 + var _ /* tmp at bp+0 */ [32]uint8 + _, _, _, _ = i, j, v1, v3 + if uint32(n)-uint32(1) > uint32(15) { + n = int32(15) + } + Xsprintf(tls, bp, __ccgo_ts+1691, VaList(bp+40, n-int32(1), x)) + v1 = BoolInt32(int32((*(*[32]uint8)(unsafe.Pointer(bp)))[0]) == Int32FromUint8('-')) + *(*int32)(unsafe.Pointer(sign)) = v1 + i = v1 + j = 0 + for { + if !(int32((*(*[32]uint8)(unsafe.Pointer(bp)))[i]) != int32('e')) { + break + } + _buf8[j] = (*(*[32]uint8)(unsafe.Pointer(bp)))[i] + goto _2 + _2: + ; + v3 = i + i++ + j += BoolInt32(int32((*(*[32]uint8)(unsafe.Pointer(bp)))[v3]) != int32('.')) + } + _buf8[j] = uint8(0) + *(*int32)(unsafe.Pointer(dp)) = Xatoi(tls, bp+uintptr(i)+uintptr(1)) + int32(1) + return uintptr(unsafe.Pointer(&_buf8)) +} + +var _buf8 [16]uint8 + +func Xfcvt(tls *TLS, x float64, n int32, dp uintptr, sign uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v x=%v n=%v dp=%v sign=%v, (%v:)", tls, x, n, dp, sign, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(1536) + defer tls.Free(1536) + var i, lz int32 + var _ /* tmp at bp+0 */ [1500]uint8 + _, _ = i, lz + if uint32(n) > uint32(1400) { + n = int32(1400) + } + Xsprintf(tls, bp, __ccgo_ts+1696, VaList(bp+1512, n, x)) + i = BoolInt32(int32((*(*[1500]uint8)(unsafe.Pointer(bp)))[0]) == int32('-')) + if int32((*(*[1500]uint8)(unsafe.Pointer(bp)))[i]) == int32('0') { + lz = int32(Xstrspn(tls, bp+uintptr(i)+uintptr(2), __ccgo_ts+1664)) + } else { + lz = -int32(Xstrcspn(tls, bp+uintptr(i), __ccgo_ts+558)) + } + if n <= lz { + *(*int32)(unsafe.Pointer(sign)) = i + *(*int32)(unsafe.Pointer(dp)) = int32(1) + if uint32(n) > uint32(14) { + n = int32(14) + } + return __ccgo_ts + 1701 + UintptrFromInt32(14) - uintptr(n) + } + return Xecvt(tls, x, n-lz, dp, sign) +} + +func Xgcvt(tls *TLS, x float64, n int32, b uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v x=%v n=%v b=%v, (%v:)", tls, x, n, b, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + Xsprintf(tls, b, __ccgo_ts+1717, VaList(bp+8, n, x)) + return b +} + +func Ximaxabs(tls *TLS, a Tintmax_t) (r Tintmax_t) { + if __ccgo_strace { + trc("tls=%v a=%v, (%v:)", tls, a, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 int64 + _ = v1 + if a > 0 { + v1 = a + } else { + v1 = -a + } + return v1 +} + +func Ximaxdiv(tls *TLS, num Tintmax_t, den Tintmax_t) (r Timaxdiv_t) { + if __ccgo_strace { + trc("tls=%v num=%v den=%v, (%v:)", tls, num, den, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Timaxdiv_t{ + Fquot: num / den, + Frem: num % den, + } +} + +func Xlabs(tls *TLS, a int64) (r int64) { + if __ccgo_strace { + trc("tls=%v a=%v, (%v:)", tls, a, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 int64 + _ = v1 + if a > 0 { + v1 = a + } else { + v1 = -a + } + return v1 +} + +func Xldiv(tls *TLS, num int64, den int64) (r Tldiv_t) { + if __ccgo_strace { + trc("tls=%v num=%v den=%v, (%v:)", tls, num, den, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Tldiv_t{ + Fquot: num / den, + Frem: num % den, + } +} + +func Xllabs(tls *TLS, a int64) (r int64) { + if __ccgo_strace { + trc("tls=%v a=%v, (%v:)", tls, a, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 int64 + _ = v1 + if a > 0 { + v1 = a + } else { + v1 = -a + } + return v1 +} + +func Xlldiv(tls *TLS, num int64, den int64) (r Tlldiv_t) { + if __ccgo_strace { + trc("tls=%v num=%v den=%v, (%v:)", tls, num, den, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Tlldiv_t{ + Fquot: num / den, + Frem: num % den, + } +} + +type Tcmpfun = uintptr + +func _pntz(tls *TLS, p uintptr) (r1 int32) { + var r, v1 int32 + var v2 bool + _, _, _ = r, v1, v2 + r = _a_ctz_l(tls, *(*Tsize_t)(unsafe.Pointer(p))-uint64(1)) + if v2 = r != 0; !v2 { + v1 = int32(Uint64FromInt32(8)*Uint64FromInt64(8) + uint64(_a_ctz_l(tls, *(*Tsize_t)(unsafe.Pointer(p + 1*8))))) + r = v1 + } + if v2 || uint64(v1) != Uint64FromInt32(8)*Uint64FromInt64(8) { + return r + } + return 0 +} + +func _cycle(tls *TLS, width Tsize_t, ar uintptr, n int32) { + bp := tls.Alloc(256) + defer tls.Free(256) + var i int32 + var l Tsize_t + var v1 uint64 + var _ /* tmp at bp+0 */ [256]uint8 + _, _, _ = i, l, v1 + if n < int32(2) { + return + } + *(*uintptr)(unsafe.Pointer(ar + uintptr(n)*8)) = bp + for width != 0 { + if uint64(256) < width { + v1 = uint64(256) + } else { + v1 = width + } + l = v1 + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(ar + uintptr(n)*8)), *(*uintptr)(unsafe.Pointer(ar)), l) + i = 0 + for { + if !(i < n) { + break + } + Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(ar + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer(ar + uintptr(i+int32(1))*8)), l) + *(*uintptr)(unsafe.Pointer(ar + uintptr(i)*8)) += uintptr(l) + goto _2 + _2: + ; + i++ + } + width -= l + } +} + +// C documentation +// +// /* shl() and shr() need n > 0 */ +func _shl(tls *TLS, p uintptr, n int32) { + if uint64(n) >= Uint64FromInt32(8)*Uint64FromInt64(8) { + n = int32(uint64(n) - Uint64FromInt32(8)*Uint64FromInt64(8)) + *(*Tsize_t)(unsafe.Pointer(p + 1*8)) = *(*Tsize_t)(unsafe.Pointer(p)) + *(*Tsize_t)(unsafe.Pointer(p)) = uint64(0) + } + *(*Tsize_t)(unsafe.Pointer(p + 1*8)) <<= uint64(n) + *(*Tsize_t)(unsafe.Pointer(p + 1*8)) |= *(*Tsize_t)(unsafe.Pointer(p)) >> (Uint64FromInt64(8)*Uint64FromInt32(8) - uint64(n)) + *(*Tsize_t)(unsafe.Pointer(p)) <<= uint64(n) +} + +func _shr(tls *TLS, p uintptr, n int32) { + if uint64(n) >= Uint64FromInt32(8)*Uint64FromInt64(8) { + n = int32(uint64(n) - Uint64FromInt32(8)*Uint64FromInt64(8)) + *(*Tsize_t)(unsafe.Pointer(p)) = *(*Tsize_t)(unsafe.Pointer(p + 1*8)) + *(*Tsize_t)(unsafe.Pointer(p + 1*8)) = uint64(0) + } + *(*Tsize_t)(unsafe.Pointer(p)) >>= uint64(n) + *(*Tsize_t)(unsafe.Pointer(p)) |= *(*Tsize_t)(unsafe.Pointer(p + 1*8)) << (Uint64FromInt64(8)*Uint64FromInt32(8) - uint64(n)) + *(*Tsize_t)(unsafe.Pointer(p + 1*8)) >>= uint64(n) +} + +func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { + bp := tls.Alloc(912) + defer tls.Free(912) + var i, v1, v2 int32 + var lf, rt uintptr + var _ /* ar at bp+0 */ [113]uintptr + _, _, _, _, _ = i, lf, rt, v1, v2 + i = int32(1) + (*(*[113]uintptr)(unsafe.Pointer(bp)))[0] = head + for pshift > int32(1) { + rt = head - uintptr(width) + lf = head - uintptr(width) - uintptr(*(*Tsize_t)(unsafe.Pointer(lp + uintptr(pshift-int32(2))*8))) + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, (*(*[113]uintptr)(unsafe.Pointer(bp)))[0], lf, arg) >= 0 && (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, (*(*[113]uintptr)(unsafe.Pointer(bp)))[0], rt, arg) >= 0 { + break + } + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, lf, rt, arg) >= 0 { + v1 = i + i++ + (*(*[113]uintptr)(unsafe.Pointer(bp)))[v1] = lf + head = lf + pshift -= int32(1) + } else { + v2 = i + i++ + (*(*[113]uintptr)(unsafe.Pointer(bp)))[v2] = rt + head = rt + pshift -= int32(2) + } + } + _cycle(tls, width, bp, i) +} + +func _trinkle(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pp uintptr, pshift int32, trusty int32, lp uintptr) { + bp := tls.Alloc(928) + defer tls.Free(928) + var i, trail, v1 int32 + var lf, rt, stepson uintptr + var _ /* ar at bp+16 */ [113]uintptr + var _ /* p at bp+0 */ [2]Tsize_t + _, _, _, _, _, _ = i, lf, rt, stepson, trail, v1 + i = int32(1) + (*(*[2]Tsize_t)(unsafe.Pointer(bp)))[0] = *(*Tsize_t)(unsafe.Pointer(pp)) + (*(*[2]Tsize_t)(unsafe.Pointer(bp)))[int32(1)] = *(*Tsize_t)(unsafe.Pointer(pp + 1*8)) + (*(*[113]uintptr)(unsafe.Pointer(bp + 16)))[0] = head + for (*(*[2]Tsize_t)(unsafe.Pointer(bp)))[0] != uint64(1) || (*(*[2]Tsize_t)(unsafe.Pointer(bp)))[int32(1)] != uint64(0) { + stepson = head - uintptr(*(*Tsize_t)(unsafe.Pointer(lp + uintptr(pshift)*8))) + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, stepson, (*(*[113]uintptr)(unsafe.Pointer(bp + 16)))[0], arg) <= 0 { + break + } + if !(trusty != 0) && pshift > int32(1) { + rt = head - uintptr(width) + lf = head - uintptr(width) - uintptr(*(*Tsize_t)(unsafe.Pointer(lp + uintptr(pshift-int32(2))*8))) + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, rt, stepson, arg) >= 0 || (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, lf, stepson, arg) >= 0 { + break + } + } + v1 = i + i++ + (*(*[113]uintptr)(unsafe.Pointer(bp + 16)))[v1] = stepson + head = stepson + trail = _pntz(tls, bp) + _shr(tls, bp, trail) + pshift += trail + trusty = 0 + } + if !(trusty != 0) { + _cycle(tls, width, bp+16, i) + _sift(tls, head, width, cmp, arg, pshift, lp) + } +} + +func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, arg uintptr) { + if __ccgo_strace { + trc("tls=%v base=%v nel=%v width=%v cmp=%v arg=%v, (%v:)", tls, base, nel, width, cmp, arg, origin(2)) + } + bp := tls.Alloc(784) + defer tls.Free(784) + var head, high uintptr + var i, size, v2, v3 Tsize_t + var pshift, trail int32 + var _ /* lp at bp+0 */ [96]Tsize_t + var _ /* p at bp+768 */ [2]Tsize_t + _, _, _, _, _, _, _, _ = head, high, i, pshift, size, trail, v2, v3 + size = width * nel + *(*[2]Tsize_t)(unsafe.Pointer(bp + 768)) = [2]Tsize_t{ + 0: uint64(1), + } + pshift = int32(1) + if !(size != 0) { + return + } + head = base + high = head + uintptr(size) - uintptr(width) + /* Precompute Leonardo numbers, scaled by element width */ + v2 = width + (*(*[96]Tsize_t)(unsafe.Pointer(bp)))[int32(1)] = v2 + (*(*[96]Tsize_t)(unsafe.Pointer(bp)))[0] = v2 + i = Uint64FromInt32(2) + for { + v3 = (*(*[96]Tsize_t)(unsafe.Pointer(bp)))[i-uint64(2)] + (*(*[96]Tsize_t)(unsafe.Pointer(bp)))[i-uint64(1)] + width + (*(*[96]Tsize_t)(unsafe.Pointer(bp)))[i] = v3 + if !(v3 < size) { + break + } + goto _1 + _1: + ; + i++ + } + for head < high { + if (*(*[2]Tsize_t)(unsafe.Pointer(bp + 768)))[0]&uint64(3) == uint64(3) { + _sift(tls, head, width, cmp, arg, pshift, bp) + _shr(tls, bp+768, int32(2)) + pshift += int32(2) + } else { + if (*(*[96]Tsize_t)(unsafe.Pointer(bp)))[pshift-int32(1)] >= uint64(int64(high)-int64(head)) { + _trinkle(tls, head, width, cmp, arg, bp+768, pshift, 0, bp) + } else { + _sift(tls, head, width, cmp, arg, pshift, bp) + } + if pshift == int32(1) { + _shl(tls, bp+768, int32(1)) + pshift = 0 + } else { + _shl(tls, bp+768, pshift-int32(1)) + pshift = int32(1) + } + } + *(*Tsize_t)(unsafe.Pointer(bp + 768)) |= uint64(1) + head += uintptr(width) + } + _trinkle(tls, head, width, cmp, arg, bp+768, pshift, 0, bp) + for pshift != int32(1) || (*(*[2]Tsize_t)(unsafe.Pointer(bp + 768)))[0] != uint64(1) || (*(*[2]Tsize_t)(unsafe.Pointer(bp + 768)))[int32(1)] != uint64(0) { + if pshift <= int32(1) { + trail = _pntz(tls, bp+768) + _shr(tls, bp+768, trail) + pshift += trail + } else { + _shl(tls, bp+768, int32(2)) + pshift -= int32(2) + *(*Tsize_t)(unsafe.Pointer(bp + 768)) ^= uint64(7) + _shr(tls, bp+768, int32(1)) + _trinkle(tls, head-uintptr((*(*[96]Tsize_t)(unsafe.Pointer(bp)))[pshift])-uintptr(width), width, cmp, arg, bp+768, pshift+int32(1), int32(1), bp) + _shl(tls, bp+768, int32(1)) + *(*Tsize_t)(unsafe.Pointer(bp + 768)) |= uint64(1) + _trinkle(tls, head-uintptr(width), width, cmp, arg, bp+768, pshift, int32(1), bp) + } + head -= uintptr(width) + } +} + +func Xqsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, arg uintptr) { + if __ccgo_strace { + trc("tls=%v base=%v nel=%v width=%v cmp=%v arg=%v, (%v:)", tls, base, nel, width, cmp, arg, origin(2)) + } + X__qsort_r(tls, base, nel, width, cmp, arg) +} + +func _wrapper_cmp(tls *TLS, v1 uintptr, v2 uintptr, cmp uintptr) (r int32) { + return (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, v1, v2) +} + +func Xqsort(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun) { + if __ccgo_strace { + trc("tls=%v base=%v nel=%v width=%v cmp=%v, (%v:)", tls, base, nel, width, cmp, origin(2)) + } + X__qsort_r(tls, base, nel, width, __ccgo_fp(_wrapper_cmp), cmp) +} + +func _strtox(tls *TLS, s uintptr, p uintptr, prec int32) (r float64) { + bp := tls.Alloc(240) + defer tls.Free(240) + var cnt Toff_t + var y float64 + var v1, v2 uintptr + var _ /* f at bp+0 */ TFILE + _, _, _, _ = cnt, y, v1, v2 + v1 = s + (*TFILE)(unsafe.Pointer(bp)).Frpos = v1 + (*TFILE)(unsafe.Pointer(bp)).Fbuf = v1 + (*TFILE)(unsafe.Pointer(bp)).Frend = uintptr(-Int32FromInt32(1)) + X__shlim(tls, bp, int64(Int32FromInt32(0))) + y = X__floatscan(tls, bp, prec, int32(1)) + cnt = (*TFILE)(unsafe.Pointer(bp)).Fshcnt + (int64((*TFILE)(unsafe.Pointer(bp)).Frpos) - int64((*TFILE)(unsafe.Pointer(bp)).Fbuf)) + if p != 0 { + if cnt != 0 { + v2 = s + uintptr(cnt) + } else { + v2 = s + } + *(*uintptr)(unsafe.Pointer(p)) = v2 + } + return y +} + +func Xstrtof(tls *TLS, s uintptr, p uintptr) (r float32) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v, (%v:)", tls, s, p, origin(2)) + defer func() { trc("-> %v", r) }() + } + return float32(_strtox(tls, s, p, 0)) +} + +func Xstrtod(tls *TLS, s uintptr, p uintptr) (r float64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v, (%v:)", tls, s, p, origin(2)) + defer func() { trc("-> %v", r) }() + } + return _strtox(tls, s, p, int32(1)) +} + +func Xstrtold(tls *TLS, s uintptr, p uintptr) (r float64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v, (%v:)", tls, s, p, origin(2)) + defer func() { trc("-> %v", r) }() + } + return _strtox(tls, s, p, int32(2)) +} + +func _strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) (r uint64) { + bp := tls.Alloc(240) + defer tls.Free(240) + var cnt Tsize_t + var y uint64 + var v1 uintptr + var _ /* f at bp+0 */ TFILE + _, _, _ = cnt, y, v1 + v1 = s + (*TFILE)(unsafe.Pointer(bp)).Frpos = v1 + (*TFILE)(unsafe.Pointer(bp)).Fbuf = v1 + (*TFILE)(unsafe.Pointer(bp)).Frend = uintptr(-Int32FromInt32(1)) + X__shlim(tls, bp, int64(Int32FromInt32(0))) + y = X__intscan(tls, bp, uint32(base), int32(1), lim) + if p != 0 { + cnt = uint64((*TFILE)(unsafe.Pointer(bp)).Fshcnt + (int64((*TFILE)(unsafe.Pointer(bp)).Frpos) - int64((*TFILE)(unsafe.Pointer(bp)).Fbuf))) + *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(cnt) + } + return y +} + +func Xstrtoull(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return _strtox1(tls, s, p, base, Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1)) +} + +func Xstrtoll(tls *TLS, s uintptr, p uintptr, base int32) (r int64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int64(_strtox1(tls, s, p, base, uint64(-Int64FromInt64(0x7fffffffffffffff)-Int64FromInt32(1)))) +} + +func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return _strtox1(tls, s, p, base, Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1)) +} + +func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) (r int64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int64(_strtox1(tls, s, p, base, Uint64FromUint64(0)+uint64(-Int64FromInt64(0x7fffffffffffffff)-Int64FromInt32(1)))) +} + +func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrtoll(tls, s, p, base) +} + +func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) (r Tuintmax_t) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrtoull(tls, s, p, base) +} + +func X__strtoimax_internal(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrtoimax(tls, s, p, base) +} + +func X__strtol_internal(tls *TLS, s uintptr, p uintptr, base int32) (r int64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrtol(tls, s, p, base) +} + +func X__strtoll_internal(tls *TLS, s uintptr, p uintptr, base int32) (r int64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrtoll(tls, s, p, base) +} + +func X__strtoul_internal(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrtoul(tls, s, p, base) +} + +func X__strtoull_internal(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrtoull(tls, s, p, base) +} + +func X__strtoumax_internal(tls *TLS, s uintptr, p uintptr, base int32) (r Tuintmax_t) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrtoumax(tls, s, p, base) +} + +/* This read function heavily cheats. It knows: + * (1) len will always be 1 + * (2) non-ascii characters don't matter */ + +func _do_read(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { + var i Tsize_t + var wcs, v3, v4 uintptr + var v2 uint32 + _, _, _, _, _ = i, wcs, v2, v3, v4 + wcs = (*TFILE)(unsafe.Pointer(f)).Fcookie + if !(*(*Twchar_t)(unsafe.Pointer(wcs)) != 0) { + wcs = __ccgo_ts + 1722 + } + i = uint64(0) + for { + if !(i < (*TFILE)(unsafe.Pointer(f)).Fbuf_size && *(*Twchar_t)(unsafe.Pointer(wcs + uintptr(i)*4)) != 0) { + break + } + if *(*Twchar_t)(unsafe.Pointer(wcs + uintptr(i)*4)) < uint32(128) { + v2 = *(*Twchar_t)(unsafe.Pointer(wcs + uintptr(i)*4)) + } else { + v2 = uint32('@') + } + *(*uint8)(unsafe.Pointer((*TFILE)(unsafe.Pointer(f)).Fbuf + uintptr(i))) = uint8(v2) + goto _1 + _1: + ; + i++ + } + (*TFILE)(unsafe.Pointer(f)).Frpos = (*TFILE)(unsafe.Pointer(f)).Fbuf + (*TFILE)(unsafe.Pointer(f)).Frend = (*TFILE)(unsafe.Pointer(f)).Fbuf + uintptr(i) + (*TFILE)(unsafe.Pointer(f)).Fcookie = wcs + uintptr(i)*4 + if i != 0 && len1 != 0 { + v4 = f + 8 + v3 = *(*uintptr)(unsafe.Pointer(v4)) + *(*uintptr)(unsafe.Pointer(v4))++ + *(*uint8)(unsafe.Pointer(buf)) = *(*uint8)(unsafe.Pointer(v3)) + return uint64(1) + } + return uint64(0) +} + +func _wcstox(tls *TLS, s uintptr, p uintptr, prec int32) (r float64) { + bp := tls.Alloc(304) + defer tls.Free(304) + var cnt Tsize_t + var t, v1, v2, v3 uintptr + var y float64 + var _ /* buf at bp+0 */ [64]uint8 + var _ /* f at bp+64 */ TFILE + _, _, _, _, _, _ = cnt, t, y, v1, v2, v3 + t = s + *(*TFILE)(unsafe.Pointer(bp + 64)) = TFILE{} + (*(*TFILE)(unsafe.Pointer(bp + 64))).Fflags = uint32(0) + v2 = bp + UintptrFromInt32(4) + (*(*TFILE)(unsafe.Pointer(bp + 64))).Fbuf = v2 + v1 = v2 + (*(*TFILE)(unsafe.Pointer(bp + 64))).Frend = v1 + (*(*TFILE)(unsafe.Pointer(bp + 64))).Frpos = v1 + (*(*TFILE)(unsafe.Pointer(bp + 64))).Fbuf_size = Uint64FromInt64(64) - Uint64FromInt32(4) + AtomicStorePInt32(bp+64+140, -int32(1)) + (*(*TFILE)(unsafe.Pointer(bp + 64))).Fread = __ccgo_fp(_do_read) + for Xiswspace(tls, *(*Twchar_t)(unsafe.Pointer(t))) != 0 { + t += 4 + } + (*(*TFILE)(unsafe.Pointer(bp + 64))).Fcookie = t + X__shlim(tls, bp+64, int64(Int32FromInt32(0))) + y = X__floatscan(tls, bp+64, prec, int32(1)) + if p != 0 { + cnt = uint64((*TFILE)(unsafe.Pointer(bp+64)).Fshcnt + (int64((*TFILE)(unsafe.Pointer(bp+64)).Frpos) - int64((*TFILE)(unsafe.Pointer(bp+64)).Fbuf))) + if cnt != 0 { + v3 = t + uintptr(cnt)*4 + } else { + v3 = s + } + *(*uintptr)(unsafe.Pointer(p)) = v3 + } + return y +} + +func Xwcstof(tls *TLS, s uintptr, p uintptr) (r float32) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v, (%v:)", tls, s, p, origin(2)) + defer func() { trc("-> %v", r) }() + } + return float32(_wcstox(tls, s, p, 0)) +} + +func Xwcstod(tls *TLS, s uintptr, p uintptr) (r float64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v, (%v:)", tls, s, p, origin(2)) + defer func() { trc("-> %v", r) }() + } + return _wcstox(tls, s, p, int32(1)) +} + +func Xwcstold(tls *TLS, s uintptr, p uintptr) (r float64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v, (%v:)", tls, s, p, origin(2)) + defer func() { trc("-> %v", r) }() + } + return _wcstox(tls, s, p, int32(2)) +} + +/* This read function heavily cheats. It knows: + * (1) len will always be 1 + * (2) non-ascii characters don't matter */ + +func _do_read1(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { + var i Tsize_t + var wcs, v3, v4 uintptr + var v2 uint32 + _, _, _, _, _ = i, wcs, v2, v3, v4 + wcs = (*TFILE)(unsafe.Pointer(f)).Fcookie + if !(*(*Twchar_t)(unsafe.Pointer(wcs)) != 0) { + wcs = __ccgo_ts + 1722 + } + i = uint64(0) + for { + if !(i < (*TFILE)(unsafe.Pointer(f)).Fbuf_size && *(*Twchar_t)(unsafe.Pointer(wcs + uintptr(i)*4)) != 0) { + break + } + if *(*Twchar_t)(unsafe.Pointer(wcs + uintptr(i)*4)) < uint32(128) { + v2 = *(*Twchar_t)(unsafe.Pointer(wcs + uintptr(i)*4)) + } else { + v2 = uint32('@') + } + *(*uint8)(unsafe.Pointer((*TFILE)(unsafe.Pointer(f)).Fbuf + uintptr(i))) = uint8(v2) + goto _1 + _1: + ; + i++ + } + (*TFILE)(unsafe.Pointer(f)).Frpos = (*TFILE)(unsafe.Pointer(f)).Fbuf + (*TFILE)(unsafe.Pointer(f)).Frend = (*TFILE)(unsafe.Pointer(f)).Fbuf + uintptr(i) + (*TFILE)(unsafe.Pointer(f)).Fcookie = wcs + uintptr(i)*4 + if i != 0 && len1 != 0 { + v4 = f + 8 + v3 = *(*uintptr)(unsafe.Pointer(v4)) + *(*uintptr)(unsafe.Pointer(v4))++ + *(*uint8)(unsafe.Pointer(buf)) = *(*uint8)(unsafe.Pointer(v3)) + return uint64(1) + } + return uint64(0) +} + +func _wcstox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) (r uint64) { + bp := tls.Alloc(304) + defer tls.Free(304) + var cnt Tsize_t + var t, v1, v2, v3 uintptr + var y uint64 + var _ /* buf at bp+0 */ [64]uint8 + var _ /* f at bp+64 */ TFILE + _, _, _, _, _, _ = cnt, t, y, v1, v2, v3 + t = s + *(*TFILE)(unsafe.Pointer(bp + 64)) = TFILE{} + (*(*TFILE)(unsafe.Pointer(bp + 64))).Fflags = uint32(0) + v2 = bp + UintptrFromInt32(4) + (*(*TFILE)(unsafe.Pointer(bp + 64))).Fbuf = v2 + v1 = v2 + (*(*TFILE)(unsafe.Pointer(bp + 64))).Frend = v1 + (*(*TFILE)(unsafe.Pointer(bp + 64))).Frpos = v1 + (*(*TFILE)(unsafe.Pointer(bp + 64))).Fbuf_size = Uint64FromInt64(64) - Uint64FromInt32(4) + AtomicStorePInt32(bp+64+140, -int32(1)) + (*(*TFILE)(unsafe.Pointer(bp + 64))).Fread = __ccgo_fp(_do_read1) + for Xiswspace(tls, *(*Twchar_t)(unsafe.Pointer(t))) != 0 { + t += 4 + } + (*(*TFILE)(unsafe.Pointer(bp + 64))).Fcookie = t + X__shlim(tls, bp+64, int64(Int32FromInt32(0))) + y = X__intscan(tls, bp+64, uint32(base), int32(1), lim) + if p != 0 { + cnt = uint64((*TFILE)(unsafe.Pointer(bp+64)).Fshcnt + (int64((*TFILE)(unsafe.Pointer(bp+64)).Frpos) - int64((*TFILE)(unsafe.Pointer(bp+64)).Fbuf))) + if cnt != 0 { + v3 = t + uintptr(cnt)*4 + } else { + v3 = s + } + *(*uintptr)(unsafe.Pointer(p)) = v3 + } + return y +} + +func Xwcstoull(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return _wcstox1(tls, s, p, base, Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1)) +} + +func Xwcstoll(tls *TLS, s uintptr, p uintptr, base int32) (r int64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int64(_wcstox1(tls, s, p, base, uint64(-Int64FromInt64(0x7fffffffffffffff)-Int64FromInt32(1)))) +} + +func Xwcstoul(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return _wcstox1(tls, s, p, base, Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1)) +} + +func Xwcstol(tls *TLS, s uintptr, p uintptr, base int32) (r int64) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int64(_wcstox1(tls, s, p, base, Uint64FromUint64(0)+uint64(-Int64FromInt64(0x7fffffffffffffff)-Int64FromInt32(1)))) +} + +func Xwcstoimax(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xwcstoll(tls, s, p, base) +} + +func Xwcstoumax(tls *TLS, s uintptr, p uintptr, base int32) (r Tuintmax_t) { + if __ccgo_strace { + trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xwcstoull(tls, s, p, base) +} + +func Xbcmp(tls *TLS, s1 uintptr, s2 uintptr, n Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v s1=%v s2=%v n=%v, (%v:)", tls, s1, s2, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xmemcmp(tls, s1, s2, n) +} + +func Xbcopy(tls *TLS, s1 uintptr, s2 uintptr, n Tsize_t) { + if __ccgo_strace { + trc("tls=%v s1=%v s2=%v n=%v, (%v:)", tls, s1, s2, n, origin(2)) + } + Xmemmove(tls, s2, s1, n) +} + +func Xbzero(tls *TLS, s uintptr, n Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v, (%v:)", tls, s, n, origin(2)) + } + Xmemset(tls, s, 0, n) +} + +func Xexplicit_bzero(tls *TLS, d uintptr, n Tsize_t) { + if __ccgo_strace { + trc("tls=%v d=%v n=%v, (%v:)", tls, d, n, origin(2)) + } + d = Xmemset(tls, d, 0, n) +} + +func Xindex(tls *TLS, s uintptr, c int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v c=%v, (%v:)", tls, s, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrchr(tls, s, c) +} + +const ALIGN1 = -1 +const HIGHS = 0 +const ONES = 0 + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +func Xmemccpy(tls *TLS, dest uintptr, src uintptr, c int32, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v dest=%v src=%v c=%v n=%v, (%v:)", tls, dest, src, c, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var d, s, wd, ws uintptr + var k Tsize_t + var v2, v6 uint8 + var v3, v7 bool + _, _, _, _, _, _, _, _, _ = d, k, s, wd, ws, v2, v3, v6, v7 + d = dest + s = src + c = int32(uint8(c)) + if uint64(s)&(Uint64FromInt64(8)-Uint64FromInt32(1)) == uint64(d)&(Uint64FromInt64(8)-Uint64FromInt32(1)) { + for { + if v3 = uint64(s)&(Uint64FromInt64(8)-Uint64FromInt32(1)) != 0 && n != 0; v3 { + v2 = *(*uint8)(unsafe.Pointer(s)) + *(*uint8)(unsafe.Pointer(d)) = v2 + } + if !(v3 && int32(v2) != c) { + break + } + goto _1 + _1: + ; + n-- + s++ + d++ + } + if uint64(s)&(Uint64FromInt64(8)-Uint64FromInt32(1)) != 0 { + goto tail + } + k = uint64(-Int32FromInt32(1)) / Uint64FromInt32(UCHAR_MAX) * uint64(c) + wd = d + ws = s + for { + if !(n >= uint64(8) && !((*(*uint64)(unsafe.Pointer(ws))^k-uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)) & ^(*(*uint64)(unsafe.Pointer(ws))^k) & (uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)*uint64(Int32FromInt32(UCHAR_MAX)/Int32FromInt32(2)+Int32FromInt32(1))) != 0)) { + break + } + *(*uint64)(unsafe.Pointer(wd)) = *(*uint64)(unsafe.Pointer(ws)) + goto _4 + _4: + ; + n -= uint64(8) + ws += 8 + wd += 8 + } + d = wd + s = ws + } + for { + if v7 = n != 0; v7 { + v6 = *(*uint8)(unsafe.Pointer(s)) + *(*uint8)(unsafe.Pointer(d)) = v6 + } + if !(v7 && int32(v6) != c) { + break + } + goto _5 + _5: + ; + n-- + s++ + d++ + } + goto tail +tail: + ; + if n != 0 { + return d + uintptr(1) + } + return uintptr(0) +} + +const SS = 0 + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +func Xmemchr(tls *TLS, src uintptr, c int32, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v src=%v c=%v n=%v, (%v:)", tls, src, c, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var k Tsize_t + var s, w, v4 uintptr + _, _, _, _ = k, s, w, v4 + s = src + c = int32(uint8(c)) + for { + if !(uint64(s)&(Uint64FromInt64(8)-Uint64FromInt32(1)) != 0 && n != 0 && int32(*(*uint8)(unsafe.Pointer(s))) != c) { + break + } + goto _1 + _1: + ; + s++ + n-- + } + if n != 0 && int32(*(*uint8)(unsafe.Pointer(s))) != c { + k = uint64(-Int32FromInt32(1)) / Uint64FromInt32(UCHAR_MAX) * uint64(c) + w = s + for { + if !(n >= Uint64FromInt64(8) && !((*(*uint64)(unsafe.Pointer(w))^k-uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)) & ^(*(*uint64)(unsafe.Pointer(w))^k) & (uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)*uint64(Int32FromInt32(UCHAR_MAX)/Int32FromInt32(2)+Int32FromInt32(1))) != 0)) { + break + } + goto _2 + _2: + ; + w += 8 + n -= Uint64FromInt64(8) + } + s = w + } + for { + if !(n != 0 && int32(*(*uint8)(unsafe.Pointer(s))) != c) { + break + } + goto _3 + _3: + ; + s++ + n-- + } + if n != 0 { + v4 = s + } else { + v4 = uintptr(0) + } + return v4 +} + +func Xmemcmp(tls *TLS, vl uintptr, vr uintptr, n Tsize_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v vl=%v vr=%v n=%v, (%v:)", tls, vl, vr, n, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var l, r uintptr + var v2 int32 + _, _, _ = l, r, v2 + l = vl + r = vr + for { + if !(n != 0 && int32(*(*uint8)(unsafe.Pointer(l))) == int32(*(*uint8)(unsafe.Pointer(r)))) { + break + } + goto _1 + _1: + ; + n-- + l++ + r++ + } + if n != 0 { + v2 = int32(*(*uint8)(unsafe.Pointer(l))) - int32(*(*uint8)(unsafe.Pointer(r))) + } else { + v2 = 0 + } + return v2 +} + +const LS = 0 +const RS = 0 + +func Xmemcpy(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v dest=%v src=%v n=%v, (%v:)", tls, dest, src, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var d, s, v10, v11, v12, v13, v14, v16, v17, v18, v19, v2, v21, v22, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v5, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v6, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v7, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v8, v80, v81, v82, v83, v85, v86, v9 uintptr + var w, x Tuint32_t + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = d, s, w, x, v10, v11, v12, v13, v14, v16, v17, v18, v19, v2, v21, v22, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v5, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v6, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v7, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v8, v80, v81, v82, v83, v85, v86, v9 + d = dest + s = src + for { + if !(uint64(s)%uint64(4) != 0 && n != 0) { + break + } + v2 = d + d++ + v3 = s + s++ + *(*uint8)(unsafe.Pointer(v2)) = *(*uint8)(unsafe.Pointer(v3)) + goto _1 + _1: + ; + n-- + } + if uint64(d)%uint64(4) == uint64(0) { + for { + if !(n >= uint64(16)) { + break + } + *(*uint32)(unsafe.Pointer(d + UintptrFromInt32(0))) = *(*uint32)(unsafe.Pointer(s + UintptrFromInt32(0))) + *(*uint32)(unsafe.Pointer(d + UintptrFromInt32(4))) = *(*uint32)(unsafe.Pointer(s + UintptrFromInt32(4))) + *(*uint32)(unsafe.Pointer(d + UintptrFromInt32(8))) = *(*uint32)(unsafe.Pointer(s + UintptrFromInt32(8))) + *(*uint32)(unsafe.Pointer(d + UintptrFromInt32(12))) = *(*uint32)(unsafe.Pointer(s + UintptrFromInt32(12))) + goto _4 + _4: + ; + s += uintptr(16) + d += uintptr(16) + n -= uint64(16) + } + if n&uint64(8) != 0 { + *(*uint32)(unsafe.Pointer(d + UintptrFromInt32(0))) = *(*uint32)(unsafe.Pointer(s + UintptrFromInt32(0))) + *(*uint32)(unsafe.Pointer(d + UintptrFromInt32(4))) = *(*uint32)(unsafe.Pointer(s + UintptrFromInt32(4))) + d += uintptr(8) + s += uintptr(8) + } + if n&uint64(4) != 0 { + *(*uint32)(unsafe.Pointer(d + UintptrFromInt32(0))) = *(*uint32)(unsafe.Pointer(s + UintptrFromInt32(0))) + d += uintptr(4) + s += uintptr(4) + } + if n&uint64(2) != 0 { + v5 = d + d++ + v6 = s + s++ + *(*uint8)(unsafe.Pointer(v5)) = *(*uint8)(unsafe.Pointer(v6)) + v7 = d + d++ + v8 = s + s++ + *(*uint8)(unsafe.Pointer(v7)) = *(*uint8)(unsafe.Pointer(v8)) + } + if n&uint64(1) != 0 { + *(*uint8)(unsafe.Pointer(d)) = *(*uint8)(unsafe.Pointer(s)) + } + return dest + } + if n >= uint64(32) { + switch uint64(d) % Uint64FromInt32(4) { + case uint64(1): + w = *(*uint32)(unsafe.Pointer(s)) + v9 = d + d++ + v10 = s + s++ + *(*uint8)(unsafe.Pointer(v9)) = *(*uint8)(unsafe.Pointer(v10)) + v11 = d + d++ + v12 = s + s++ + *(*uint8)(unsafe.Pointer(v11)) = *(*uint8)(unsafe.Pointer(v12)) + v13 = d + d++ + v14 = s + s++ + *(*uint8)(unsafe.Pointer(v13)) = *(*uint8)(unsafe.Pointer(v14)) + n -= uint64(3) + for { + if !(n >= uint64(17)) { + break + } + x = *(*uint32)(unsafe.Pointer(s + UintptrFromInt32(1))) + *(*uint32)(unsafe.Pointer(d + UintptrFromInt32(0))) = w>>Int32FromInt32(24) | x<>Int32FromInt32(24) | w<>Int32FromInt32(24) | x<>Int32FromInt32(24) | w<= uint64(18)) { + break + } + x = *(*uint32)(unsafe.Pointer(s + UintptrFromInt32(2))) + *(*uint32)(unsafe.Pointer(d + UintptrFromInt32(0))) = w>>Int32FromInt32(16) | x<>Int32FromInt32(16) | w<>Int32FromInt32(16) | x<>Int32FromInt32(16) | w<= uint64(19)) { + break + } + x = *(*uint32)(unsafe.Pointer(s + UintptrFromInt32(3))) + *(*uint32)(unsafe.Pointer(d + UintptrFromInt32(0))) = w>>Int32FromInt32(8) | x<>Int32FromInt32(8) | w<>Int32FromInt32(8) | x<>Int32FromInt32(8) | w< int32(*(*uint8)(unsafe.Pointer(n + uintptr(jp+k)))) { + jp += k + k = uint64(1) + p = jp - ip + } else { + v3 = jp + jp++ + ip = v3 + v4 = Uint64FromInt32(1) + p = v4 + k = v4 + } + } + } + ms = ip + p0 = p + /* And with the opposite comparison */ + ip = uint64(-Int32FromInt32(1)) + jp = uint64(0) + v5 = Uint64FromInt32(1) + p = v5 + k = v5 + for jp+k < l { + if int32(*(*uint8)(unsafe.Pointer(n + uintptr(ip+k)))) == int32(*(*uint8)(unsafe.Pointer(n + uintptr(jp+k)))) { + if k == p { + jp += p + k = uint64(1) + } else { + k++ + } + } else { + if int32(*(*uint8)(unsafe.Pointer(n + uintptr(ip+k)))) < int32(*(*uint8)(unsafe.Pointer(n + uintptr(jp+k)))) { + jp += k + k = uint64(1) + p = jp - ip + } else { + v6 = jp + jp++ + ip = v6 + v7 = Uint64FromInt32(1) + p = v7 + k = v7 + } + } + } + if ip+uint64(1) > ms+uint64(1) { + ms = ip + } else { + p = p0 + } + /* Periodic needle? */ + if Xmemcmp(tls, n, n+uintptr(p), ms+uint64(1)) != 0 { + mem0 = uint64(0) + if ms > l-ms-uint64(1) { + v8 = ms + } else { + v8 = l - ms - uint64(1) + } + p = v8 + uint64(1) + } else { + mem0 = l - p + } + mem = uint64(0) + /* Search loop */ + for { + /* If remainder of haystack is shorter than needle, done */ + if uint64(int64(z)-int64(h)) < l { + return uintptr(0) + } + /* Check last byte first; advance by shift on mismatch */ + if (*(*[4]Tsize_t)(unsafe.Pointer(bp)))[uint64(*(*uint8)(unsafe.Pointer(h + uintptr(l-uint64(1)))))/(Uint64FromInt32(8)*Uint64FromInt64(8))]&(Uint64FromInt32(1)<<(uint64(*(*uint8)(unsafe.Pointer(h + uintptr(l-uint64(1)))))%(Uint64FromInt32(8)*Uint64FromInt64(8)))) != 0 { + k = l - shift[*(*uint8)(unsafe.Pointer(h + uintptr(l-uint64(1))))] + if k != 0 { + if k < mem { + k = mem + } + h += uintptr(k) + mem = uint64(0) + goto _9 + } + } else { + h += uintptr(l) + mem = uint64(0) + goto _9 + } + /* Compare right half */ + if ms+uint64(1) > mem { + v11 = ms + uint64(1) + } else { + v11 = mem + } + k = v11 + for { + if !(k < l && int32(*(*uint8)(unsafe.Pointer(n + uintptr(k)))) == int32(*(*uint8)(unsafe.Pointer(h + uintptr(k))))) { + break + } + goto _10 + _10: + ; + k++ + } + if k < l { + h += uintptr(k - ms) + mem = uint64(0) + goto _9 + } + /* Compare left half */ + k = ms + uint64(1) + for { + if !(k > mem && int32(*(*uint8)(unsafe.Pointer(n + uintptr(k-uint64(1))))) == int32(*(*uint8)(unsafe.Pointer(h + uintptr(k-uint64(1)))))) { + break + } + goto _12 + _12: + ; + k-- + } + if k <= mem { + return h + } + h += uintptr(p) + mem = mem0 + goto _9 + _9: + } + return r +} + +func Xmemmem(tls *TLS, h0 uintptr, k Tsize_t, n0 uintptr, l Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v h0=%v k=%v n0=%v l=%v, (%v:)", tls, h0, k, n0, l, origin(2)) + defer func() { trc("-> %v", r) }() + } + var h, n uintptr + _, _ = h, n + h = h0 + n = n0 + /* Return immediately on empty needle */ + if !(l != 0) { + return h + } + /* Return immediately when needle is longer than haystack */ + if k < l { + return uintptr(0) + } + /* Use faster algorithms for short needles */ + h = Xmemchr(tls, h0, int32(*(*uint8)(unsafe.Pointer(n))), k) + if !(h != 0) || l == uint64(1) { + return h + } + k -= uint64(int64(h) - int64(h0)) + if k < l { + return uintptr(0) + } + if l == uint64(2) { + return _twobyte_memmem(tls, h, k, n) + } + if l == uint64(3) { + return _threebyte_memmem(tls, h, k, n) + } + if l == uint64(4) { + return _fourbyte_memmem(tls, h, k, n) + } + return _twoway_memmem(tls, h, h+uintptr(k), n, l) +} + +const WS = 0 + +type TWT = uint64 + +func Xmemmove(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v dest=%v src=%v n=%v, (%v:)", tls, dest, src, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var d, s, v2, v3, v6, v7 uintptr + var v1, v8 Tsize_t + _, _, _, _, _, _, _, _ = d, s, v1, v2, v3, v6, v7, v8 + d = dest + s = src + if d == s { + return d + } + if uint64(s)-uint64(d)-n <= uint64(-Int32FromInt32(2))*n { + return Xmemcpy(tls, d, s, n) + } + if d < s { + if uint64(s)%Uint64FromInt64(8) == uint64(d)%Uint64FromInt64(8) { + for uint64(d)%Uint64FromInt64(8) != 0 { + v1 = n + n-- + if !(v1 != 0) { + return dest + } + v2 = d + d++ + v3 = s + s++ + *(*uint8)(unsafe.Pointer(v2)) = *(*uint8)(unsafe.Pointer(v3)) + } + for { + if !(n >= Uint64FromInt64(8)) { + break + } + *(*TWT)(unsafe.Pointer(d)) = *(*TWT)(unsafe.Pointer(s)) + goto _4 + _4: + ; + n -= Uint64FromInt64(8) + d += uintptr(Uint64FromInt64(8)) + s += uintptr(Uint64FromInt64(8)) + } + } + for { + if !(n != 0) { + break + } + v6 = d + d++ + v7 = s + s++ + *(*uint8)(unsafe.Pointer(v6)) = *(*uint8)(unsafe.Pointer(v7)) + goto _5 + _5: + ; + n-- + } + } else { + if uint64(s)%Uint64FromInt64(8) == uint64(d)%Uint64FromInt64(8) { + for uint64(d+uintptr(n))%Uint64FromInt64(8) != 0 { + v8 = n + n-- + if !(v8 != 0) { + return dest + } + *(*uint8)(unsafe.Pointer(d + uintptr(n))) = *(*uint8)(unsafe.Pointer(s + uintptr(n))) + } + for n >= Uint64FromInt64(8) { + n -= Uint64FromInt64(8) + *(*TWT)(unsafe.Pointer(d + uintptr(n))) = *(*TWT)(unsafe.Pointer(s + uintptr(n))) + } + } + for n != 0 { + n-- + *(*uint8)(unsafe.Pointer(d + uintptr(n))) = *(*uint8)(unsafe.Pointer(s + uintptr(n))) + } + } + return dest +} + +func Xmempcpy(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v dest=%v src=%v n=%v, (%v:)", tls, dest, src, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xmemcpy(tls, dest, src, n) + uintptr(n) +} + +func X__memrchr(tls *TLS, m uintptr, c int32, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v m=%v c=%v n=%v, (%v:)", tls, m, c, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var s uintptr + var v1 Tsize_t + _, _ = s, v1 + s = m + c = int32(uint8(c)) + for { + v1 = n + n-- + if !(v1 != 0) { + break + } + if int32(*(*uint8)(unsafe.Pointer(s + uintptr(n)))) == c { + return s + uintptr(n) + } + } + return uintptr(0) +} + +func Xmemrchr(tls *TLS, m uintptr, c int32, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v m=%v c=%v n=%v, (%v:)", tls, m, c, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__memrchr(tls, m, c, n) +} + +func Xmemset(tls *TLS, dest uintptr, c int32, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v dest=%v c=%v n=%v, (%v:)", tls, dest, c, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var c32 uint32 + var c64 uint64 + var k Tsize_t + var s uintptr + _, _, _, _ = c32, c64, k, s + s = dest + /* Fill head and tail with minimal branching. Each + * conditional ensures that all the subsequently used + * offsets are well-defined and in the dest region. */ + if !(n != 0) { + return dest + } + *(*uint8)(unsafe.Pointer(s)) = uint8(c) + *(*uint8)(unsafe.Pointer(s + uintptr(n-uint64(1)))) = uint8(c) + if n <= uint64(2) { + return dest + } + *(*uint8)(unsafe.Pointer(s + 1)) = uint8(c) + *(*uint8)(unsafe.Pointer(s + 2)) = uint8(c) + *(*uint8)(unsafe.Pointer(s + uintptr(n-uint64(2)))) = uint8(c) + *(*uint8)(unsafe.Pointer(s + uintptr(n-uint64(3)))) = uint8(c) + if n <= uint64(6) { + return dest + } + *(*uint8)(unsafe.Pointer(s + 3)) = uint8(c) + *(*uint8)(unsafe.Pointer(s + uintptr(n-uint64(4)))) = uint8(c) + if n <= uint64(8) { + return dest + } + /* Advance pointer to align it at a 4-byte boundary, + * and truncate n to a multiple of 4. The previous code + * already took care of any head/tail that get cut off + * by the alignment. */ + k = -uint64(s) & uint64(3) + s += uintptr(k) + n -= k + n &= uint64(-Int32FromInt32(4)) + c32 = uint32(-Int32FromInt32(1)) / Uint32FromInt32(255) * uint32(uint8(c)) + /* In preparation to copy 32 bytes at a time, aligned on + * an 8-byte bounary, fill head/tail up to 28 bytes each. + * As in the initial byte-based head/tail fill, each + * conditional below ensures that the subsequent offsets + * are valid (e.g. !(n<=24) implies n>=28). */ + *(*uint32)(unsafe.Pointer(s + UintptrFromInt32(0))) = c32 + *(*uint32)(unsafe.Pointer(s + uintptr(n) - UintptrFromInt32(4))) = c32 + if n <= uint64(8) { + return dest + } + *(*uint32)(unsafe.Pointer(s + UintptrFromInt32(4))) = c32 + *(*uint32)(unsafe.Pointer(s + UintptrFromInt32(8))) = c32 + *(*uint32)(unsafe.Pointer(s + uintptr(n) - UintptrFromInt32(12))) = c32 + *(*uint32)(unsafe.Pointer(s + uintptr(n) - UintptrFromInt32(8))) = c32 + if n <= uint64(24) { + return dest + } + *(*uint32)(unsafe.Pointer(s + UintptrFromInt32(12))) = c32 + *(*uint32)(unsafe.Pointer(s + UintptrFromInt32(16))) = c32 + *(*uint32)(unsafe.Pointer(s + UintptrFromInt32(20))) = c32 + *(*uint32)(unsafe.Pointer(s + UintptrFromInt32(24))) = c32 + *(*uint32)(unsafe.Pointer(s + uintptr(n) - UintptrFromInt32(28))) = c32 + *(*uint32)(unsafe.Pointer(s + uintptr(n) - UintptrFromInt32(24))) = c32 + *(*uint32)(unsafe.Pointer(s + uintptr(n) - UintptrFromInt32(20))) = c32 + *(*uint32)(unsafe.Pointer(s + uintptr(n) - UintptrFromInt32(16))) = c32 + /* Align to a multiple of 8 so we can fill 64 bits at a time, + * and avoid writing the same bytes twice as much as is + * practical without introducing additional branching. */ + k = uint64(24) + uint64(s)&uint64(4) + s += uintptr(k) + n -= k + /* If this loop is reached, 28 tail bytes have already been + * filled, so any remainder when n drops below 32 can be + * safely ignored. */ + c64 = uint64(c32) | uint64(c32)<= uint64(32)) { + break + } + *(*uint64)(unsafe.Pointer(s + UintptrFromInt32(0))) = c64 + *(*uint64)(unsafe.Pointer(s + UintptrFromInt32(8))) = c64 + *(*uint64)(unsafe.Pointer(s + UintptrFromInt32(16))) = c64 + *(*uint64)(unsafe.Pointer(s + UintptrFromInt32(24))) = c64 + goto _1 + _1: + ; + n -= uint64(32) + s += uintptr(32) + } + return dest +} + +func Xrindex(tls *TLS, s uintptr, c int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v c=%v, (%v:)", tls, s, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrrchr(tls, s, c) +} + +const ALIGN2 = 0 + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +func X__stpcpy(tls *TLS, d uintptr, s uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v d=%v s=%v, (%v:)", tls, d, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + var wd, ws, v4, v5 uintptr + var v2, v7 uint8 + _, _, _, _, _, _ = wd, ws, v2, v4, v5, v7 + if uint64(s)%Uint64FromInt64(8) == uint64(d)%Uint64FromInt64(8) { + for { + if !(uint64(s)%Uint64FromInt64(8) != 0) { + break + } + v2 = *(*uint8)(unsafe.Pointer(s)) + *(*uint8)(unsafe.Pointer(d)) = v2 + if !(v2 != 0) { + return d + } + goto _1 + _1: + ; + s++ + d++ + } + wd = d + ws = s + for { + if !!((*(*uint64)(unsafe.Pointer(ws))-uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)) & ^*(*uint64)(unsafe.Pointer(ws)) & (uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)*uint64(Int32FromInt32(UCHAR_MAX)/Int32FromInt32(2)+Int32FromInt32(1))) != 0) { + break + } + goto _3 + _3: + ; + v4 = wd + wd += 8 + v5 = ws + ws += 8 + *(*uint64)(unsafe.Pointer(v4)) = *(*uint64)(unsafe.Pointer(v5)) + } + d = wd + s = ws + } + for { + v7 = *(*uint8)(unsafe.Pointer(s)) + *(*uint8)(unsafe.Pointer(d)) = v7 + if !(v7 != 0) { + break + } + goto _6 + _6: + ; + s++ + d++ + } + return d +} + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +func Xstpcpy(tls *TLS, d uintptr, s uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v d=%v s=%v, (%v:)", tls, d, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__stpcpy(tls, d, s) +} + +const ALIGN3 = -1 + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +func X__stpncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v d=%v s=%v n=%v, (%v:)", tls, d, s, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var wd, ws uintptr + var v2, v6 uint8 + var v3, v7 bool + _, _, _, _, _, _ = wd, ws, v2, v3, v6, v7 + if uint64(s)&(Uint64FromInt64(8)-Uint64FromInt32(1)) == uint64(d)&(Uint64FromInt64(8)-Uint64FromInt32(1)) { + for { + if v3 = uint64(s)&(Uint64FromInt64(8)-Uint64FromInt32(1)) != 0 && n != 0; v3 { + v2 = *(*uint8)(unsafe.Pointer(s)) + *(*uint8)(unsafe.Pointer(d)) = v2 + } + if !(v3 && v2 != 0) { + break + } + goto _1 + _1: + ; + n-- + s++ + d++ + } + if !(n != 0) || !(*(*uint8)(unsafe.Pointer(s)) != 0) { + goto tail + } + wd = d + ws = s + for { + if !(n >= uint64(8) && !((*(*uint64)(unsafe.Pointer(ws))-uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)) & ^*(*uint64)(unsafe.Pointer(ws)) & (uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)*uint64(Int32FromInt32(UCHAR_MAX)/Int32FromInt32(2)+Int32FromInt32(1))) != 0)) { + break + } + *(*uint64)(unsafe.Pointer(wd)) = *(*uint64)(unsafe.Pointer(ws)) + goto _4 + _4: + ; + n -= uint64(8) + ws += 8 + wd += 8 + } + d = wd + s = ws + } + for { + if v7 = n != 0; v7 { + v6 = *(*uint8)(unsafe.Pointer(s)) + *(*uint8)(unsafe.Pointer(d)) = v6 + } + if !(v7 && v6 != 0) { + break + } + goto _5 + _5: + ; + n-- + s++ + d++ + } + goto tail +tail: + ; + Xmemset(tls, d, 0, n) + return d +} + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +func Xstpncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v d=%v s=%v n=%v, (%v:)", tls, d, s, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__stpncpy(tls, d, s, n) +} + +func Xstrcasecmp(tls *TLS, _l uintptr, _r uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v _l=%v _r=%v, (%v:)", tls, _l, _r, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var l, r uintptr + _, _ = l, r + l = _l + r = _r + for { + if !(*(*uint8)(unsafe.Pointer(l)) != 0 && *(*uint8)(unsafe.Pointer(r)) != 0 && (int32(*(*uint8)(unsafe.Pointer(l))) == int32(*(*uint8)(unsafe.Pointer(r))) || Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) == Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))))) { + break + } + goto _1 + _1: + ; + l++ + r++ + } + return Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) - Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))) +} + +func X__strcasecmp_l(tls *TLS, l uintptr, r uintptr, loc Tlocale_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v loc=%v, (%v:)", tls, l, r, loc, origin(2)) + defer func() { trc("-> %v", r1) }() + } + return Xstrcasecmp(tls, l, r) +} + +func Xstrcasecmp_l(tls *TLS, l uintptr, r uintptr, loc Tlocale_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v loc=%v, (%v:)", tls, l, r, loc, origin(2)) + defer func() { trc("-> %v", r1) }() + } + return X__strcasecmp_l(tls, l, r, loc) +} + +func Xstrcasestr(tls *TLS, h uintptr, n uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v h=%v n=%v, (%v:)", tls, h, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var l Tsize_t + _ = l + l = Xstrlen(tls, n) + for { + if !(*(*uint8)(unsafe.Pointer(h)) != 0) { + break + } + if !(Xstrncasecmp(tls, h, n, l) != 0) { + return h + } + goto _1 + _1: + ; + h++ + } + return uintptr(0) +} + +func Xstrcat(tls *TLS, dest uintptr, src uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v dest=%v src=%v, (%v:)", tls, dest, src, origin(2)) + defer func() { trc("-> %v", r) }() + } + Xstrcpy(tls, dest+uintptr(Xstrlen(tls, dest)), src) + return dest +} + +func Xstrchr(tls *TLS, s uintptr, c int32) (r1 uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v c=%v, (%v:)", tls, s, c, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, v1 uintptr + _, _ = r, v1 + r = X__strchrnul(tls, s, c) + if int32(*(*uint8)(unsafe.Pointer(r))) == int32(uint8(c)) { + v1 = r + } else { + v1 = uintptr(0) + } + return v1 +} + +const ALIGN4 = 0 + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +func X__strchrnul(tls *TLS, s uintptr, c int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v c=%v, (%v:)", tls, s, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + var k Tsize_t + var w uintptr + _, _ = k, w + c = int32(uint8(c)) + if !(c != 0) { + return s + uintptr(Xstrlen(tls, s)) + } + for { + if !(uint64(s)%Uint64FromInt64(8) != 0) { + break + } + if !(*(*uint8)(unsafe.Pointer(s)) != 0) || int32(*(*uint8)(unsafe.Pointer(s))) == c { + return s + } + goto _1 + _1: + ; + s++ + } + k = uint64(-Int32FromInt32(1)) / Uint64FromInt32(UCHAR_MAX) * uint64(c) + w = s + for { + if !(!((*(*uint64)(unsafe.Pointer(w))-uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)) & ^*(*uint64)(unsafe.Pointer(w)) & (uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)*uint64(Int32FromInt32(UCHAR_MAX)/Int32FromInt32(2)+Int32FromInt32(1))) != 0) && !((*(*uint64)(unsafe.Pointer(w))^k-uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)) & ^(*(*uint64)(unsafe.Pointer(w))^k) & (uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)*uint64(Int32FromInt32(UCHAR_MAX)/Int32FromInt32(2)+Int32FromInt32(1))) != 0)) { + break + } + goto _2 + _2: + ; + w += 8 + } + s = w + for { + if !(*(*uint8)(unsafe.Pointer(s)) != 0 && int32(*(*uint8)(unsafe.Pointer(s))) != c) { + break + } + goto _3 + _3: + ; + s++ + } + return s +} + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +func Xstrchrnul(tls *TLS, s uintptr, c int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v c=%v, (%v:)", tls, s, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__strchrnul(tls, s, c) +} + +func Xstrcmp(tls *TLS, l uintptr, r uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v, (%v:)", tls, l, r, origin(2)) + defer func() { trc("-> %v", r1) }() + } + for { + if !(int32(*(*uint8)(unsafe.Pointer(l))) == int32(*(*uint8)(unsafe.Pointer(r))) && *(*uint8)(unsafe.Pointer(l)) != 0) { + break + } + goto _1 + _1: + ; + l++ + r++ + } + return int32(*(*uint8)(unsafe.Pointer(l))) - int32(*(*uint8)(unsafe.Pointer(r))) +} + +func Xstrcpy(tls *TLS, dest uintptr, src uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v dest=%v src=%v, (%v:)", tls, dest, src, origin(2)) + defer func() { trc("-> %v", r) }() + } + X__stpcpy(tls, dest, src) + return dest +} + +func Xstrcspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v c=%v, (%v:)", tls, s, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var a, p2 uintptr + var v3 bool + var _ /* byteset at bp+0 */ [4]Tsize_t + _, _, _ = a, v3, p2 + a = s + if !(*(*uint8)(unsafe.Pointer(c)) != 0) || !(*(*uint8)(unsafe.Pointer(c + 1)) != 0) { + return uint64(int64(X__strchrnul(tls, s, int32(*(*uint8)(unsafe.Pointer(c))))) - int64(a)) + } + Xmemset(tls, bp, 0, uint64(32)) + for { + if v3 = *(*uint8)(unsafe.Pointer(c)) != 0; v3 { + p2 = bp + uintptr(uint64(*(*uint8)(unsafe.Pointer(c)))/(Uint64FromInt32(8)*Uint64FromInt64(8)))*8 + *(*Tsize_t)(unsafe.Pointer(p2)) |= Uint64FromInt32(1) << (uint64(*(*uint8)(unsafe.Pointer(c))) % (Uint64FromInt32(8) * Uint64FromInt64(8))) + } + if !(v3 && *(*Tsize_t)(unsafe.Pointer(p2)) != 0) { + break + } + goto _1 + _1: + ; + c++ + } + for { + if !(*(*uint8)(unsafe.Pointer(s)) != 0 && !((*(*[4]Tsize_t)(unsafe.Pointer(bp)))[uint64(*(*uint8)(unsafe.Pointer(s)))/(Uint64FromInt32(8)*Uint64FromInt64(8))]&(Uint64FromInt32(1)<<(uint64(*(*uint8)(unsafe.Pointer(s)))%(Uint64FromInt32(8)*Uint64FromInt64(8)))) != 0)) { + break + } + goto _4 + _4: + ; + s++ + } + return uint64(int64(s) - int64(a)) +} + +func Xstrdup(tls *TLS, s uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + var d uintptr + var l Tsize_t + _, _ = d, l + l = Xstrlen(tls, s) + d = Xmalloc(tls, l+uint64(1)) + if !(d != 0) { + return UintptrFromInt32(0) + } + return Xmemcpy(tls, d, s, l+uint64(1)) +} + +func Xstrerror_r(tls *TLS, err int32, buf uintptr, buflen Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v err=%v buf=%v buflen=%v, (%v:)", tls, err, buf, buflen, origin(2)) + defer func() { trc("-> %v", r) }() + } + var l Tsize_t + var msg uintptr + _, _ = l, msg + msg = Xstrerror(tls, err) + l = Xstrlen(tls, msg) + if l >= buflen { + if buflen != 0 { + Xmemcpy(tls, buf, msg, buflen-uint64(1)) + *(*uint8)(unsafe.Pointer(buf + uintptr(buflen-uint64(1)))) = uint8(0) + } + return int32(ERANGE) + } + Xmemcpy(tls, buf, msg, l+uint64(1)) + return 0 +} + +func X__xpg_strerror_r(tls *TLS, err int32, buf uintptr, buflen Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v err=%v buf=%v buflen=%v, (%v:)", tls, err, buf, buflen, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xstrerror_r(tls, err, buf, buflen) +} + +func Xstrlcat(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v d=%v s=%v n=%v, (%v:)", tls, d, s, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var l Tsize_t + _ = l + l = Xstrnlen(tls, d, n) + if l == n { + return l + Xstrlen(tls, s) + } + return l + Xstrlcpy(tls, d+uintptr(l), s, n-l) +} + +const ALIGN5 = -1 + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +func Xstrlcpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v d=%v s=%v n=%v, (%v:)", tls, d, s, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var d0, wd, ws uintptr + var v1 Tsize_t + var v3, v7 uint8 + var v4, v8 bool + _, _, _, _, _, _, _, _ = d0, wd, ws, v1, v3, v4, v7, v8 + d0 = d + v1 = n + n-- + if !(v1 != 0) { + goto finish + } + if uint64(s)&(Uint64FromInt64(8)-Uint64FromInt32(1)) == uint64(d)&(Uint64FromInt64(8)-Uint64FromInt32(1)) { + for { + if v4 = uint64(s)&(Uint64FromInt64(8)-Uint64FromInt32(1)) != 0 && n != 0; v4 { + v3 = *(*uint8)(unsafe.Pointer(s)) + *(*uint8)(unsafe.Pointer(d)) = v3 + } + if !(v4 && v3 != 0) { + break + } + goto _2 + _2: + ; + n-- + s++ + d++ + } + if n != 0 && *(*uint8)(unsafe.Pointer(s)) != 0 { + wd = d + ws = s + for { + if !(n >= uint64(8) && !((*(*uint64)(unsafe.Pointer(ws))-uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)) & ^*(*uint64)(unsafe.Pointer(ws)) & (uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)*uint64(Int32FromInt32(UCHAR_MAX)/Int32FromInt32(2)+Int32FromInt32(1))) != 0)) { + break + } + *(*Tsize_t)(unsafe.Pointer(wd)) = *(*uint64)(unsafe.Pointer(ws)) + goto _5 + _5: + ; + n -= uint64(8) + ws += 8 + wd += 8 + } + d = wd + s = ws + } + } + for { + if v8 = n != 0; v8 { + v7 = *(*uint8)(unsafe.Pointer(s)) + *(*uint8)(unsafe.Pointer(d)) = v7 + } + if !(v8 && v7 != 0) { + break + } + goto _6 + _6: + ; + n-- + s++ + d++ + } + *(*uint8)(unsafe.Pointer(d)) = uint8(0) + goto finish +finish: + ; + return uint64(int64(d)-int64(d0)) + Xstrlen(tls, s) + return r +} + +const ALIGN6 = 0 + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +func Xstrlen(tls *TLS, s uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + var a, w uintptr + _, _ = a, w + a = s + for { + if !(uint64(s)%Uint64FromInt64(8) != 0) { + break + } + if !(*(*uint8)(unsafe.Pointer(s)) != 0) { + return uint64(int64(s) - int64(a)) + } + goto _1 + _1: + ; + s++ + } + w = s + for { + if !!((*(*uint64)(unsafe.Pointer(w))-uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)) & ^*(*uint64)(unsafe.Pointer(w)) & (uint64(-Int32FromInt32(1))/Uint64FromInt32(UCHAR_MAX)*uint64(Int32FromInt32(UCHAR_MAX)/Int32FromInt32(2)+Int32FromInt32(1))) != 0) { + break + } + goto _2 + _2: + ; + w += 8 + } + s = w + for { + if !(*(*uint8)(unsafe.Pointer(s)) != 0) { + break + } + goto _3 + _3: + ; + s++ + } + return uint64(int64(s) - int64(a)) +} + +func Xstrncasecmp(tls *TLS, _l uintptr, _r uintptr, n Tsize_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v _l=%v _r=%v n=%v, (%v:)", tls, _l, _r, n, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var l, r uintptr + var v1 Tsize_t + _, _, _ = l, r, v1 + l = _l + r = _r + v1 = n + n-- + if !(v1 != 0) { + return 0 + } + for { + if !(*(*uint8)(unsafe.Pointer(l)) != 0 && *(*uint8)(unsafe.Pointer(r)) != 0 && n != 0 && (int32(*(*uint8)(unsafe.Pointer(l))) == int32(*(*uint8)(unsafe.Pointer(r))) || Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) == Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))))) { + break + } + goto _2 + _2: + ; + l++ + r++ + n-- + } + return Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) - Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))) +} + +func X__strncasecmp_l(tls *TLS, l uintptr, r uintptr, n Tsize_t, loc Tlocale_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v n=%v loc=%v, (%v:)", tls, l, r, n, loc, origin(2)) + defer func() { trc("-> %v", r1) }() + } + return Xstrncasecmp(tls, l, r, n) +} + +func Xstrncasecmp_l(tls *TLS, l uintptr, r uintptr, n Tsize_t, loc Tlocale_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v n=%v loc=%v, (%v:)", tls, l, r, n, loc, origin(2)) + defer func() { trc("-> %v", r1) }() + } + return X__strncasecmp_l(tls, l, r, n, loc) +} + +func Xstrncat(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v d=%v s=%v n=%v, (%v:)", tls, d, s, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var a, v1, v2, v3 uintptr + _, _, _, _ = a, v1, v2, v3 + a = d + d += uintptr(Xstrlen(tls, d)) + for n != 0 && *(*uint8)(unsafe.Pointer(s)) != 0 { + n-- + v1 = d + d++ + v2 = s + s++ + *(*uint8)(unsafe.Pointer(v1)) = *(*uint8)(unsafe.Pointer(v2)) + } + v3 = d + d++ + *(*uint8)(unsafe.Pointer(v3)) = uint8(0) + return a +} + +func Xstrncmp(tls *TLS, _l uintptr, _r uintptr, n Tsize_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v _l=%v _r=%v n=%v, (%v:)", tls, _l, _r, n, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var l, r uintptr + var v1 Tsize_t + _, _, _ = l, r, v1 + l = _l + r = _r + v1 = n + n-- + if !(v1 != 0) { + return 0 + } + for { + if !(*(*uint8)(unsafe.Pointer(l)) != 0 && *(*uint8)(unsafe.Pointer(r)) != 0 && n != 0 && int32(*(*uint8)(unsafe.Pointer(l))) == int32(*(*uint8)(unsafe.Pointer(r)))) { + break + } + goto _2 + _2: + ; + l++ + r++ + n-- + } + return int32(*(*uint8)(unsafe.Pointer(l))) - int32(*(*uint8)(unsafe.Pointer(r))) +} + +func Xstrncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v d=%v s=%v n=%v, (%v:)", tls, d, s, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + X__stpncpy(tls, d, s, n) + return d +} + +func Xstrndup(tls *TLS, s uintptr, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v, (%v:)", tls, s, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var d uintptr + var l Tsize_t + _, _ = d, l + l = Xstrnlen(tls, s, n) + d = Xmalloc(tls, l+uint64(1)) + if !(d != 0) { + return UintptrFromInt32(0) + } + Xmemcpy(tls, d, s, l) + *(*uint8)(unsafe.Pointer(d + uintptr(l))) = uint8(0) + return d +} + +func Xstrnlen(tls *TLS, s uintptr, n Tsize_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v, (%v:)", tls, s, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var p uintptr + var v1 uint64 + _, _ = p, v1 + p = Xmemchr(tls, s, 0, n) + if p != 0 { + v1 = uint64(int64(p) - int64(s)) + } else { + v1 = n + } + return v1 +} + +func Xstrpbrk(tls *TLS, s uintptr, b uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v b=%v, (%v:)", tls, s, b, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 uintptr + _ = v1 + s += uintptr(Xstrcspn(tls, s, b)) + if *(*uint8)(unsafe.Pointer(s)) != 0 { + v1 = s + } else { + v1 = uintptr(0) + } + return v1 +} + +func Xstrrchr(tls *TLS, s uintptr, c int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v c=%v, (%v:)", tls, s, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__memrchr(tls, s, c, Xstrlen(tls, s)+uint64(1)) +} + +func Xstrsep(tls *TLS, str uintptr, sep uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v str=%v sep=%v, (%v:)", tls, str, sep, origin(2)) + defer func() { trc("-> %v", r) }() + } + var end, s, v1 uintptr + _, _, _ = end, s, v1 + s = *(*uintptr)(unsafe.Pointer(str)) + if !(s != 0) { + return UintptrFromInt32(0) + } + end = s + uintptr(Xstrcspn(tls, s, sep)) + if *(*uint8)(unsafe.Pointer(end)) != 0 { + v1 = end + end++ + *(*uint8)(unsafe.Pointer(v1)) = uint8(0) + } else { + end = uintptr(0) + } + *(*uintptr)(unsafe.Pointer(str)) = end + return s +} + +var _strings = [671]uint8{'U', 'n', 'k', 'n', 'o', 'w', 'n', ' ', 's', 'i', 'g', 'n', 'a', 'l', 0, 'H', 'a', 'n', 'g', 'u', 'p', 0, 'I', 'n', 't', 'e', 'r', 'r', 'u', 'p', 't', 0, 'Q', 'u', 'i', 't', 0, 'I', 'l', 'l', 'e', 'g', 'a', 'l', ' ', 'i', 'n', 's', 't', 'r', 'u', 'c', 't', 'i', 'o', 'n', 0, 'T', 'r', 'a', 'c', 'e', '/', 'b', 'r', 'e', 'a', 'k', 'p', 'o', 'i', 'n', 't', ' ', 't', 'r', 'a', 'p', 0, 'A', 'b', 'o', 'r', 't', 'e', 'd', 0, 'B', 'u', 's', ' ', 'e', 'r', 'r', 'o', 'r', 0, 'A', 'r', 'i', 't', 'h', 'm', 'e', 't', 'i', 'c', ' ', 'e', 'x', 'c', 'e', 'p', 't', 'i', 'o', 'n', 0, 'K', 'i', 'l', 'l', 'e', 'd', 0, 'U', 's', 'e', 'r', ' ', 'd', 'e', 'f', 'i', 'n', 'e', 'd', ' ', 's', 'i', 'g', 'n', 'a', 'l', ' ', '1', 0, 'S', 'e', 'g', 'm', 'e', 'n', 't', 'a', 't', 'i', 'o', 'n', ' ', 'f', 'a', 'u', 'l', 't', 0, 'U', 's', 'e', 'r', ' ', 'd', 'e', 'f', 'i', 'n', 'e', 'd', ' ', 's', 'i', 'g', 'n', 'a', 'l', ' ', '2', 0, 'B', 'r', 'o', 'k', 'e', 'n', ' ', 'p', 'i', 'p', 'e', 0, 'A', 'l', 'a', 'r', 'm', ' ', 'c', 'l', 'o', 'c', 'k', 0, 'T', 'e', 'r', 'm', 'i', 'n', 'a', 't', 'e', 'd', 0, 'S', 't', 'a', 'c', 'k', ' ', 'f', 'a', 'u', 'l', 't', 0, 'C', 'h', 'i', 'l', 'd', ' ', 'p', 'r', 'o', 'c', 'e', 's', 's', ' ', 's', 't', 'a', 't', 'u', 's', 0, 'C', 'o', 'n', 't', 'i', 'n', 'u', 'e', 'd', 0, 'S', 't', 'o', 'p', 'p', 'e', 'd', ' ', '(', 's', 'i', 'g', 'n', 'a', 'l', ')', 0, 'S', 't', 'o', 'p', 'p', 'e', 'd', 0, 'S', 't', 'o', 'p', 'p', 'e', 'd', ' ', '(', 't', 't', 'y', ' ', 'i', 'n', 'p', 'u', 't', ')', 0, 'S', 't', 'o', 'p', 'p', 'e', 'd', ' ', '(', 't', 't', 'y', ' ', 'o', 'u', 't', 'p', 'u', 't', ')', 0, 'U', 'r', 'g', 'e', 'n', 't', ' ', 'I', '/', 'O', ' ', 'c', 'o', 'n', 'd', 'i', 't', 'i', 'o', 'n', 0, 'C', 'P', 'U', ' ', 't', 'i', 'm', 'e', ' ', 'l', 'i', 'm', 'i', 't', ' ', 'e', 'x', 'c', 'e', 'e', 'd', 'e', 'd', 0, 'F', 'i', 'l', 'e', ' ', 's', 'i', 'z', 'e', ' ', 'l', 'i', 'm', 'i', 't', ' ', 'e', 'x', 'c', 'e', 'e', 'd', 'e', 'd', 0, 'V', 'i', 'r', 't', 'u', 'a', 'l', ' ', 't', 'i', 'm', 'e', 'r', ' ', 'e', 'x', 'p', 'i', 'r', 'e', 'd', 0, 'P', 'r', 'o', 'f', 'i', 'l', 'i', 'n', 'g', ' ', 't', 'i', 'm', 'e', 'r', ' ', 'e', 'x', 'p', 'i', 'r', 'e', 'd', 0, 'W', 'i', 'n', 'd', 'o', 'w', ' ', 'c', 'h', 'a', 'n', 'g', 'e', 'd', 0, 'I', '/', 'O', ' ', 'p', 'o', 's', 's', 'i', 'b', 'l', 'e', 0, 'P', 'o', 'w', 'e', 'r', ' ', 'f', 'a', 'i', 'l', 'u', 'r', 'e', 0, 'B', 'a', 'd', ' ', 's', 'y', 's', 't', 'e', 'm', ' ', 'c', 'a', 'l', 'l', 0, 'R', 'T', '3', '2', 0, 'R', 'T', '3', '3', 0, 'R', 'T', '3', '4', 0, 'R', 'T', '3', '5', 0, 'R', 'T', '3', '6', 0, 'R', 'T', '3', '7', 0, 'R', 'T', '3', '8', 0, 'R', 'T', '3', '9', 0, 'R', 'T', '4', '0', 0, 'R', 'T', '4', '1', 0, 'R', 'T', '4', '2', 0, 'R', 'T', '4', '3', 0, 'R', 'T', '4', '4', 0, 'R', 'T', '4', '5', 0, 'R', 'T', '4', '6', 0, 'R', 'T', '4', '7', 0, 'R', 'T', '4', '8', 0, 'R', 'T', '4', '9', 0, 'R', 'T', '5', '0', 0, 'R', 'T', '5', '1', 0, 'R', 'T', '5', '2', 0, 'R', 'T', '5', '3', 0, 'R', 'T', '5', '4', 0, 'R', 'T', '5', '5', 0, 'R', 'T', '5', '6', 0, 'R', 'T', '5', '7', 0, 'R', 'T', '5', '8', 0, 'R', 'T', '5', '9', 0, 'R', 'T', '6', '0', 0, 'R', 'T', '6', '1', 0, 'R', 'T', '6', '2', 0, 'R', 'T', '6', '3', 0, 'R', 'T', '6', '4'} + +func Xstrsignal(tls *TLS, signum int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v signum=%v, (%v:)", tls, signum, origin(2)) + defer func() { trc("-> %v", r) }() + } + var s uintptr + var v2 int32 + _, _ = s, v2 + s = uintptr(unsafe.Pointer(&_strings)) + signum = signum + if uint32(signum)-uint32(1) >= uint32(Int32FromInt32(_NSIG)-Int32FromInt32(1)) { + signum = 0 + } + for { + v2 = signum + signum-- + if !(v2 != 0) { + break + } + for { + if !(*(*uint8)(unsafe.Pointer(s)) != 0) { + break + } + goto _3 + _3: + ; + s++ + } + goto _1 + _1: + ; + s++ + } + return X__lctrans_cur(tls, s) +} + +func Xstrspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v c=%v, (%v:)", tls, s, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var a, p3 uintptr + var v4 bool + var _ /* byteset at bp+0 */ [4]Tsize_t + _, _, _ = a, v4, p3 + a = s + *(*[4]Tsize_t)(unsafe.Pointer(bp)) = [4]Tsize_t{} + if !(*(*uint8)(unsafe.Pointer(c)) != 0) { + return uint64(0) + } + if !(*(*uint8)(unsafe.Pointer(c + 1)) != 0) { + for { + if !(int32(*(*uint8)(unsafe.Pointer(s))) == int32(*(*uint8)(unsafe.Pointer(c)))) { + break + } + goto _1 + _1: + ; + s++ + } + return uint64(int64(s) - int64(a)) + } + for { + if v4 = *(*uint8)(unsafe.Pointer(c)) != 0; v4 { + p3 = bp + uintptr(uint64(*(*uint8)(unsafe.Pointer(c)))/(Uint64FromInt32(8)*Uint64FromInt64(8)))*8 + *(*Tsize_t)(unsafe.Pointer(p3)) |= Uint64FromInt32(1) << (uint64(*(*uint8)(unsafe.Pointer(c))) % (Uint64FromInt32(8) * Uint64FromInt64(8))) + } + if !(v4 && *(*Tsize_t)(unsafe.Pointer(p3)) != 0) { + break + } + goto _2 + _2: + ; + c++ + } + for { + if !(*(*uint8)(unsafe.Pointer(s)) != 0 && (*(*[4]Tsize_t)(unsafe.Pointer(bp)))[uint64(*(*uint8)(unsafe.Pointer(s)))/(Uint64FromInt32(8)*Uint64FromInt64(8))]&(Uint64FromInt32(1)<<(uint64(*(*uint8)(unsafe.Pointer(s)))%(Uint64FromInt32(8)*Uint64FromInt64(8)))) != 0) { + break + } + goto _5 + _5: + ; + s++ + } + return uint64(int64(s) - int64(a)) +} + +func _twobyte_strstr(tls *TLS, h uintptr, n uintptr) (r uintptr) { + var hw, nw Tuint16_t + var v2, v3 uintptr + _, _, _, _ = hw, nw, v2, v3 + nw = uint16(int32(*(*uint8)(unsafe.Pointer(n)))< int32(*(*uint8)(unsafe.Pointer(n + uintptr(jp+k)))) { + jp += k + k = uint64(1) + p = jp - ip + } else { + v3 = jp + jp++ + ip = v3 + v4 = Uint64FromInt32(1) + p = v4 + k = v4 + } + } + } + ms = ip + p0 = p + /* And with the opposite comparison */ + ip = uint64(-Int32FromInt32(1)) + jp = uint64(0) + v5 = Uint64FromInt32(1) + p = v5 + k = v5 + for jp+k < l { + if int32(*(*uint8)(unsafe.Pointer(n + uintptr(ip+k)))) == int32(*(*uint8)(unsafe.Pointer(n + uintptr(jp+k)))) { + if k == p { + jp += p + k = uint64(1) + } else { + k++ + } + } else { + if int32(*(*uint8)(unsafe.Pointer(n + uintptr(ip+k)))) < int32(*(*uint8)(unsafe.Pointer(n + uintptr(jp+k)))) { + jp += k + k = uint64(1) + p = jp - ip + } else { + v6 = jp + jp++ + ip = v6 + v7 = Uint64FromInt32(1) + p = v7 + k = v7 + } + } + } + if ip+uint64(1) > ms+uint64(1) { + ms = ip + } else { + p = p0 + } + /* Periodic needle? */ + if Xmemcmp(tls, n, n+uintptr(p), ms+uint64(1)) != 0 { + mem0 = uint64(0) + if ms > l-ms-uint64(1) { + v8 = ms + } else { + v8 = l - ms - uint64(1) + } + p = v8 + uint64(1) + } else { + mem0 = l - p + } + mem = uint64(0) + /* Initialize incremental end-of-haystack pointer */ + z = h + /* Search loop */ + for { + /* Update incremental end-of-haystack pointer */ + if uint64(int64(z)-int64(h)) < l { + /* Fast estimate for MAX(l,63) */ + grow = l | uint64(63) + z2 = Xmemchr(tls, z, 0, grow) + if z2 != 0 { + z = z2 + if uint64(int64(z)-int64(h)) < l { + return uintptr(0) + } + } else { + z += uintptr(grow) + } + } + /* Check last byte first; advance by shift on mismatch */ + if (*(*[4]Tsize_t)(unsafe.Pointer(bp)))[uint64(*(*uint8)(unsafe.Pointer(h + uintptr(l-uint64(1)))))/(Uint64FromInt32(8)*Uint64FromInt64(8))]&(Uint64FromInt32(1)<<(uint64(*(*uint8)(unsafe.Pointer(h + uintptr(l-uint64(1)))))%(Uint64FromInt32(8)*Uint64FromInt64(8)))) != 0 { + k = l - shift[*(*uint8)(unsafe.Pointer(h + uintptr(l-uint64(1))))] + if k != 0 { + if k < mem { + k = mem + } + h += uintptr(k) + mem = uint64(0) + goto _9 + } + } else { + h += uintptr(l) + mem = uint64(0) + goto _9 + } + /* Compare right half */ + if ms+uint64(1) > mem { + v11 = ms + uint64(1) + } else { + v11 = mem + } + k = v11 + for { + if !(*(*uint8)(unsafe.Pointer(n + uintptr(k))) != 0 && int32(*(*uint8)(unsafe.Pointer(n + uintptr(k)))) == int32(*(*uint8)(unsafe.Pointer(h + uintptr(k))))) { + break + } + goto _10 + _10: + ; + k++ + } + if *(*uint8)(unsafe.Pointer(n + uintptr(k))) != 0 { + h += uintptr(k - ms) + mem = uint64(0) + goto _9 + } + /* Compare left half */ + k = ms + uint64(1) + for { + if !(k > mem && int32(*(*uint8)(unsafe.Pointer(n + uintptr(k-uint64(1))))) == int32(*(*uint8)(unsafe.Pointer(h + uintptr(k-uint64(1)))))) { + break + } + goto _12 + _12: + ; + k-- + } + if k <= mem { + return h + } + h += uintptr(p) + mem = mem0 + goto _9 + _9: + } + return r +} + +func Xstrstr(tls *TLS, h uintptr, n uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v h=%v n=%v, (%v:)", tls, h, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + /* Return immediately on empty needle */ + if !(*(*uint8)(unsafe.Pointer(n)) != 0) { + return h + } + /* Use faster algorithms for short needles */ + h = Xstrchr(tls, h, int32(*(*uint8)(unsafe.Pointer(n)))) + if !(h != 0) || !(*(*uint8)(unsafe.Pointer(n + 1)) != 0) { + return h + } + if !(*(*uint8)(unsafe.Pointer(h + 1)) != 0) { + return uintptr(0) + } + if !(*(*uint8)(unsafe.Pointer(n + 2)) != 0) { + return _twobyte_strstr(tls, h, n) + } + if !(*(*uint8)(unsafe.Pointer(h + 2)) != 0) { + return uintptr(0) + } + if !(*(*uint8)(unsafe.Pointer(n + 3)) != 0) { + return _threebyte_strstr(tls, h, n) + } + if !(*(*uint8)(unsafe.Pointer(h + 3)) != 0) { + return uintptr(0) + } + if !(*(*uint8)(unsafe.Pointer(n + 4)) != 0) { + return _fourbyte_strstr(tls, h, n) + } + return _twoway_strstr(tls, h, n) +} + +func Xstrtok(tls *TLS, s uintptr, sep uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v sep=%v, (%v:)", tls, s, sep, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1, v3, v4 uintptr + var v2 bool + _, _, _, _ = v1, v2, v3, v4 + if v2 = !(s != 0); v2 { + v1 = _p2 + s = v1 + } + if v2 && !(v1 != 0) { + return UintptrFromInt32(0) + } + s += uintptr(Xstrspn(tls, s, sep)) + if !(*(*uint8)(unsafe.Pointer(s)) != 0) { + v3 = UintptrFromInt32(0) + _p2 = v3 + return v3 + } + _p2 = s + uintptr(Xstrcspn(tls, s, sep)) + if *(*uint8)(unsafe.Pointer(_p2)) != 0 { + v4 = _p2 + _p2++ + *(*uint8)(unsafe.Pointer(v4)) = uint8(0) + } else { + _p2 = uintptr(0) + } + return s +} + +var _p2 uintptr + +func Xstrtok_r(tls *TLS, s uintptr, sep uintptr, p uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v sep=%v p=%v, (%v:)", tls, s, sep, p, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1, v3, v4, v5 uintptr + var v2 bool + _, _, _, _, _ = v1, v2, v3, v4, v5 + if v2 = !(s != 0); v2 { + v1 = *(*uintptr)(unsafe.Pointer(p)) + s = v1 + } + if v2 && !(v1 != 0) { + return UintptrFromInt32(0) + } + s += uintptr(Xstrspn(tls, s, sep)) + if !(*(*uint8)(unsafe.Pointer(s)) != 0) { + v3 = UintptrFromInt32(0) + *(*uintptr)(unsafe.Pointer(p)) = v3 + return v3 + } + *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(Xstrcspn(tls, s, sep)) + if *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p)))) != 0 { + v5 = p + v4 = *(*uintptr)(unsafe.Pointer(v5)) + *(*uintptr)(unsafe.Pointer(v5))++ + *(*uint8)(unsafe.Pointer(v4)) = uint8(0) + } else { + *(*uintptr)(unsafe.Pointer(p)) = uintptr(0) + } + return s +} + +func Xstrverscmp(tls *TLS, l0 uintptr, r0 uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l0=%v r0=%v, (%v:)", tls, l0, r0, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var c, z int32 + var dp, i, j, v2 Tsize_t + var l, r uintptr + _, _, _, _, _, _, _, _ = c, dp, i, j, l, r, z, v2 + l = l0 + r = r0 + z = int32(1) + /* Find maximal matching prefix and track its maximal digit + * suffix and whether those digits are all zeros. */ + v2 = Uint64FromInt32(0) + i = v2 + dp = v2 + for { + if !(int32(*(*uint8)(unsafe.Pointer(l + uintptr(i)))) == int32(*(*uint8)(unsafe.Pointer(r + uintptr(i))))) { + break + } + c = int32(*(*uint8)(unsafe.Pointer(l + uintptr(i)))) + if !(c != 0) { + return 0 + } + if !(BoolInt32(uint32(c)-Uint32FromUint8('0') < Uint32FromInt32(10)) != 0) { + dp = i + uint64(1) + z = Int32FromInt32(1) + } else { + if c != int32('0') { + z = 0 + } + } + goto _1 + _1: + ; + i++ + } + if uint32(int32(*(*uint8)(unsafe.Pointer(l + uintptr(dp))))-int32('1')) < uint32(9) && uint32(int32(*(*uint8)(unsafe.Pointer(r + uintptr(dp))))-int32('1')) < uint32(9) { + /* If we're looking at non-degenerate digit sequences starting + * with nonzero digits, longest digit string is greater. */ + j = i + for { + if !(BoolInt32(uint32(*(*uint8)(unsafe.Pointer(l + uintptr(j))))-uint32('0') < uint32(10)) != 0) { + break + } + if !(BoolInt32(uint32(*(*uint8)(unsafe.Pointer(r + uintptr(j))))-Uint32FromUint8('0') < Uint32FromInt32(10)) != 0) { + return int32(1) + } + goto _3 + _3: + ; + j++ + } + if BoolInt32(uint32(*(*uint8)(unsafe.Pointer(r + uintptr(j))))-uint32('0') < uint32(10)) != 0 { + return -int32(1) + } + } else { + if z != 0 && dp < i && (BoolInt32(uint32(*(*uint8)(unsafe.Pointer(l + uintptr(i))))-uint32('0') < uint32(10)) != 0 || BoolInt32(uint32(*(*uint8)(unsafe.Pointer(r + uintptr(i))))-uint32('0') < uint32(10)) != 0) { + /* Otherwise, if common prefix of digit sequence is + * all zeros, digits order less than non-digits. */ + return int32(uint8(int32(*(*uint8)(unsafe.Pointer(l + uintptr(i))))-Int32FromUint8('0'))) - int32(uint8(int32(*(*uint8)(unsafe.Pointer(r + uintptr(i))))-Int32FromUint8('0'))) + } + } + return int32(*(*uint8)(unsafe.Pointer(l + uintptr(i)))) - int32(*(*uint8)(unsafe.Pointer(r + uintptr(i)))) +} + +func Xswab(tls *TLS, _src uintptr, _dest uintptr, n Tssize_t) { + if __ccgo_strace { + trc("tls=%v _src=%v _dest=%v n=%v, (%v:)", tls, _src, _dest, n, origin(2)) + } + var dest, src uintptr + _, _ = dest, src + src = _src + dest = _dest + for { + if !(n > int64(1)) { + break + } + *(*uint8)(unsafe.Pointer(dest)) = *(*uint8)(unsafe.Pointer(src + 1)) + *(*uint8)(unsafe.Pointer(dest + 1)) = *(*uint8)(unsafe.Pointer(src)) + dest += uintptr(2) + src += uintptr(2) + goto _1 + _1: + ; + n -= int64(2) + } +} + +func Xwcpcpy(tls *TLS, d uintptr, s uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v d=%v s=%v, (%v:)", tls, d, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xwcscpy(tls, d, s) + uintptr(Xwcslen(tls, s))*4 +} + +func Xwcpncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v d=%v s=%v n=%v, (%v:)", tls, d, s, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xwcsncpy(tls, d, s, n) + uintptr(Xwcsnlen(tls, s, n))*4 +} + +func Xwcscasecmp(tls *TLS, l uintptr, r uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v, (%v:)", tls, l, r, origin(2)) + defer func() { trc("-> %v", r1) }() + } + return Xwcsncasecmp(tls, l, r, uint64(-Int32FromInt32(1))) +} + +func Xwcscasecmp_l(tls *TLS, l uintptr, r uintptr, locale Tlocale_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v locale=%v, (%v:)", tls, l, r, locale, origin(2)) + defer func() { trc("-> %v", r1) }() + } + return Xwcscasecmp(tls, l, r) +} + +func Xwcscat(tls *TLS, dest uintptr, src uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v dest=%v src=%v, (%v:)", tls, dest, src, origin(2)) + defer func() { trc("-> %v", r) }() + } + Xwcscpy(tls, dest+uintptr(Xwcslen(tls, dest))*4, src) + return dest +} + +func Xwcschr(tls *TLS, s uintptr, c Twchar_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v c=%v, (%v:)", tls, s, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v2 uintptr + _ = v2 + if !(c != 0) { + return s + uintptr(Xwcslen(tls, s))*4 + } + for { + if !(*(*Twchar_t)(unsafe.Pointer(s)) != 0 && *(*Twchar_t)(unsafe.Pointer(s)) != c) { + break + } + goto _1 + _1: + ; + s += 4 + } + if *(*Twchar_t)(unsafe.Pointer(s)) != 0 { + v2 = s + } else { + v2 = uintptr(0) + } + return v2 +} + +func Xwcscmp(tls *TLS, l uintptr, r uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v, (%v:)", tls, l, r, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var v2 int32 + _ = v2 + for { + if !(*(*Twchar_t)(unsafe.Pointer(l)) == *(*Twchar_t)(unsafe.Pointer(r)) && *(*Twchar_t)(unsafe.Pointer(l)) != 0 && *(*Twchar_t)(unsafe.Pointer(r)) != 0) { + break + } + goto _1 + _1: + ; + l += 4 + r += 4 + } + if *(*Twchar_t)(unsafe.Pointer(l)) < *(*Twchar_t)(unsafe.Pointer(r)) { + v2 = -int32(1) + } else { + v2 = BoolInt32(*(*Twchar_t)(unsafe.Pointer(l)) > *(*Twchar_t)(unsafe.Pointer(r))) + } + return v2 +} + +func Xwcscpy(tls *TLS, d uintptr, s uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v d=%v s=%v, (%v:)", tls, d, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + var a, v2, v3 uintptr + var v1 Twchar_t + _, _, _, _ = a, v1, v2, v3 + a = d + for { + v2 = s + s += 4 + v1 = *(*Twchar_t)(unsafe.Pointer(v2)) + v3 = d + d += 4 + *(*Twchar_t)(unsafe.Pointer(v3)) = v1 + if !(v1 != 0) { + break + } + } + return a +} + +func Xwcscspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v c=%v, (%v:)", tls, s, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + var a, v2, v3 uintptr + var v1 uint64 + _, _, _, _ = a, v1, v2, v3 + if !(*(*Twchar_t)(unsafe.Pointer(c)) != 0) { + return Xwcslen(tls, s) + } + if !(*(*Twchar_t)(unsafe.Pointer(c + 1*4)) != 0) { + v3 = s + a = v3 + v2 = Xwcschr(tls, v3, *(*Twchar_t)(unsafe.Pointer(c))) + s = v2 + if v2 != 0 { + v1 = uint64((int64(s) - int64(a)) / 4) + } else { + v1 = Xwcslen(tls, a) + } + return v1 + } + a = s + for { + if !(*(*Twchar_t)(unsafe.Pointer(s)) != 0 && !(Xwcschr(tls, c, *(*Twchar_t)(unsafe.Pointer(s))) != 0)) { + break + } + goto _4 + _4: + ; + s += 4 + } + return uint64((int64(s) - int64(a)) / 4) +} + +func Xwcsdup(tls *TLS, s uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + var d uintptr + var l Tsize_t + _, _ = d, l + l = Xwcslen(tls, s) + d = Xmalloc(tls, (l+uint64(1))*uint64(4)) + if !(d != 0) { + return UintptrFromInt32(0) + } + return Xwmemcpy(tls, d, s, l+uint64(1)) +} + +func Xwcslen(tls *TLS, s uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + var a uintptr + _ = a + a = s + for { + if !(*(*Twchar_t)(unsafe.Pointer(s)) != 0) { + break + } + goto _1 + _1: + ; + s += 4 + } + return uint64((int64(s) - int64(a)) / 4) +} + +func Xwcsncasecmp(tls *TLS, l uintptr, r uintptr, n Tsize_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v n=%v, (%v:)", tls, l, r, n, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var v1 Tsize_t + _ = v1 + v1 = n + n-- + if !(v1 != 0) { + return 0 + } + for { + if !(*(*Twchar_t)(unsafe.Pointer(l)) != 0 && *(*Twchar_t)(unsafe.Pointer(r)) != 0 && n != 0 && (*(*Twchar_t)(unsafe.Pointer(l)) == *(*Twchar_t)(unsafe.Pointer(r)) || Xtowlower(tls, *(*Twchar_t)(unsafe.Pointer(l))) == Xtowlower(tls, *(*Twchar_t)(unsafe.Pointer(r))))) { + break + } + goto _2 + _2: + ; + l += 4 + r += 4 + n-- + } + return int32(Xtowlower(tls, *(*Twchar_t)(unsafe.Pointer(l))) - Xtowlower(tls, *(*Twchar_t)(unsafe.Pointer(r)))) +} + +func Xwcsncasecmp_l(tls *TLS, l uintptr, r uintptr, n Tsize_t, locale Tlocale_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v n=%v locale=%v, (%v:)", tls, l, r, n, locale, origin(2)) + defer func() { trc("-> %v", r1) }() + } + return Xwcsncasecmp(tls, l, r, n) +} + +func Xwcsncat(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v d=%v s=%v n=%v, (%v:)", tls, d, s, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var a, v1, v2, v3 uintptr + _, _, _, _ = a, v1, v2, v3 + a = d + d += uintptr(Xwcslen(tls, d)) * 4 + for n != 0 && *(*Twchar_t)(unsafe.Pointer(s)) != 0 { + n-- + v1 = d + d += 4 + v2 = s + s += 4 + *(*Twchar_t)(unsafe.Pointer(v1)) = *(*Twchar_t)(unsafe.Pointer(v2)) + } + v3 = d + d += 4 + *(*Twchar_t)(unsafe.Pointer(v3)) = uint32(0) + return a +} + +func Xwcsncmp(tls *TLS, l uintptr, r uintptr, n Tsize_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v n=%v, (%v:)", tls, l, r, n, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var v2, v3 int32 + _, _ = v2, v3 + for { + if !(n != 0 && *(*Twchar_t)(unsafe.Pointer(l)) == *(*Twchar_t)(unsafe.Pointer(r)) && *(*Twchar_t)(unsafe.Pointer(l)) != 0 && *(*Twchar_t)(unsafe.Pointer(r)) != 0) { + break + } + goto _1 + _1: + ; + n-- + l += 4 + r += 4 + } + if n != 0 { + if *(*Twchar_t)(unsafe.Pointer(l)) < *(*Twchar_t)(unsafe.Pointer(r)) { + v3 = -int32(1) + } else { + v3 = BoolInt32(*(*Twchar_t)(unsafe.Pointer(l)) > *(*Twchar_t)(unsafe.Pointer(r))) + } + v2 = v3 + } else { + v2 = 0 + } + return v2 +} + +func Xwcsncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v d=%v s=%v n=%v, (%v:)", tls, d, s, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var a, v1, v2 uintptr + _, _, _ = a, v1, v2 + a = d + for n != 0 && *(*Twchar_t)(unsafe.Pointer(s)) != 0 { + n-- + v1 = d + d += 4 + v2 = s + s += 4 + *(*Twchar_t)(unsafe.Pointer(v1)) = *(*Twchar_t)(unsafe.Pointer(v2)) + } + Xwmemset(tls, d, uint32(0), n) + return a +} + +func Xwcsnlen(tls *TLS, s uintptr, n Tsize_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v, (%v:)", tls, s, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var z uintptr + _ = z + z = Xwmemchr(tls, s, uint32(0), n) + if z != 0 { + n = uint64((int64(z) - int64(s)) / 4) + } + return n +} + +func Xwcspbrk(tls *TLS, s uintptr, b uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v b=%v, (%v:)", tls, s, b, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 uintptr + _ = v1 + s += uintptr(Xwcscspn(tls, s, b)) * 4 + if *(*Twchar_t)(unsafe.Pointer(s)) != 0 { + v1 = s + } else { + v1 = UintptrFromInt32(0) + } + return v1 +} + +func Xwcsrchr(tls *TLS, s uintptr, c Twchar_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v c=%v, (%v:)", tls, s, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + var p, v2 uintptr + _, _ = p, v2 + p = s + uintptr(Xwcslen(tls, s))*4 + for { + if !(p >= s && *(*Twchar_t)(unsafe.Pointer(p)) != c) { + break + } + goto _1 + _1: + ; + p -= 4 + } + if p >= s { + v2 = p + } else { + v2 = uintptr(0) + } + return v2 +} + +func Xwcsspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v c=%v, (%v:)", tls, s, c, origin(2)) + defer func() { trc("-> %v", r) }() + } + var a uintptr + _ = a + a = s + for { + if !(*(*Twchar_t)(unsafe.Pointer(s)) != 0 && Xwcschr(tls, c, *(*Twchar_t)(unsafe.Pointer(s))) != 0) { + break + } + goto _1 + _1: + ; + s += 4 + } + return uint64((int64(s) - int64(a)) / 4) +} + +func _twoway_wcsstr(tls *TLS, h uintptr, n uintptr) (r uintptr) { + var grow, ip, jp, k, l, mem, mem0, ms, p, p0, v2, v3, v4, v5, v6, v7 Tsize_t + var z, z2 uintptr + var v11, v8 uint64 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = grow, ip, jp, k, l, mem, mem0, ms, p, p0, z, z2, v11, v2, v3, v4, v5, v6, v7, v8 + /* Computing length of needle */ + l = uint64(0) + for { + if !(*(*Twchar_t)(unsafe.Pointer(n + uintptr(l)*4)) != 0 && *(*Twchar_t)(unsafe.Pointer(h + uintptr(l)*4)) != 0) { + break + } + goto _1 + _1: + ; + l++ + } + if *(*Twchar_t)(unsafe.Pointer(n + uintptr(l)*4)) != 0 { + return uintptr(0) + } /* hit the end of h */ + /* Compute maximal suffix */ + ip = uint64(-Int32FromInt32(1)) + jp = uint64(0) + v2 = Uint64FromInt32(1) + p = v2 + k = v2 + for jp+k < l { + if *(*Twchar_t)(unsafe.Pointer(n + uintptr(ip+k)*4)) == *(*Twchar_t)(unsafe.Pointer(n + uintptr(jp+k)*4)) { + if k == p { + jp += p + k = uint64(1) + } else { + k++ + } + } else { + if *(*Twchar_t)(unsafe.Pointer(n + uintptr(ip+k)*4)) > *(*Twchar_t)(unsafe.Pointer(n + uintptr(jp+k)*4)) { + jp += k + k = uint64(1) + p = jp - ip + } else { + v3 = jp + jp++ + ip = v3 + v4 = Uint64FromInt32(1) + p = v4 + k = v4 + } + } + } + ms = ip + p0 = p + /* And with the opposite comparison */ + ip = uint64(-Int32FromInt32(1)) + jp = uint64(0) + v5 = Uint64FromInt32(1) + p = v5 + k = v5 + for jp+k < l { + if *(*Twchar_t)(unsafe.Pointer(n + uintptr(ip+k)*4)) == *(*Twchar_t)(unsafe.Pointer(n + uintptr(jp+k)*4)) { + if k == p { + jp += p + k = uint64(1) + } else { + k++ + } + } else { + if *(*Twchar_t)(unsafe.Pointer(n + uintptr(ip+k)*4)) < *(*Twchar_t)(unsafe.Pointer(n + uintptr(jp+k)*4)) { + jp += k + k = uint64(1) + p = jp - ip + } else { + v6 = jp + jp++ + ip = v6 + v7 = Uint64FromInt32(1) + p = v7 + k = v7 + } + } + } + if ip+uint64(1) > ms+uint64(1) { + ms = ip + } else { + p = p0 + } + /* Periodic needle? */ + if Xwmemcmp(tls, n, n+uintptr(p)*4, ms+uint64(1)) != 0 { + mem0 = uint64(0) + if ms > l-ms-uint64(1) { + v8 = ms + } else { + v8 = l - ms - uint64(1) + } + p = v8 + uint64(1) + } else { + mem0 = l - p + } + mem = uint64(0) + /* Initialize incremental end-of-haystack pointer */ + z = h + /* Search loop */ + for { + /* Update incremental end-of-haystack pointer */ + if uint64((int64(z)-int64(h))/4) < l { + /* Fast estimate for MIN(l,63) */ + grow = l | uint64(63) + z2 = Xwmemchr(tls, z, uint32(0), grow) + if z2 != 0 { + z = z2 + if uint64((int64(z)-int64(h))/4) < l { + return uintptr(0) + } + } else { + z += uintptr(grow) * 4 + } + } + /* Compare right half */ + if ms+uint64(1) > mem { + v11 = ms + uint64(1) + } else { + v11 = mem + } + k = v11 + for { + if !(*(*Twchar_t)(unsafe.Pointer(n + uintptr(k)*4)) != 0 && *(*Twchar_t)(unsafe.Pointer(n + uintptr(k)*4)) == *(*Twchar_t)(unsafe.Pointer(h + uintptr(k)*4))) { + break + } + goto _10 + _10: + ; + k++ + } + if *(*Twchar_t)(unsafe.Pointer(n + uintptr(k)*4)) != 0 { + h += uintptr(k-ms) * 4 + mem = uint64(0) + goto _9 + } + /* Compare left half */ + k = ms + uint64(1) + for { + if !(k > mem && *(*Twchar_t)(unsafe.Pointer(n + uintptr(k-uint64(1))*4)) == *(*Twchar_t)(unsafe.Pointer(h + uintptr(k-uint64(1))*4))) { + break + } + goto _12 + _12: + ; + k-- + } + if k <= mem { + return h + } + h += uintptr(p) * 4 + mem = mem0 + goto _9 + _9: + } + return r +} + +func Xwcsstr(tls *TLS, h uintptr, n uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v h=%v n=%v, (%v:)", tls, h, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + /* Return immediately on empty needle or haystack */ + if !(*(*Twchar_t)(unsafe.Pointer(n)) != 0) { + return h + } + if !(*(*Twchar_t)(unsafe.Pointer(h)) != 0) { + return uintptr(0) + } + /* Use faster algorithms for short needles */ + h = Xwcschr(tls, h, *(*Twchar_t)(unsafe.Pointer(n))) + if !(h != 0) || !(*(*Twchar_t)(unsafe.Pointer(n + 1*4)) != 0) { + return h + } + if !(*(*Twchar_t)(unsafe.Pointer(h + 1*4)) != 0) { + return uintptr(0) + } + return _twoway_wcsstr(tls, h, n) +} + +func Xwcstok(tls *TLS, s uintptr, sep uintptr, p uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v sep=%v p=%v, (%v:)", tls, s, sep, p, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1, v3, v4, v5 uintptr + var v2 bool + _, _, _, _, _ = v1, v2, v3, v4, v5 + if v2 = !(s != 0); v2 { + v1 = *(*uintptr)(unsafe.Pointer(p)) + s = v1 + } + if v2 && !(v1 != 0) { + return UintptrFromInt32(0) + } + s += uintptr(Xwcsspn(tls, s, sep)) * 4 + if !(*(*Twchar_t)(unsafe.Pointer(s)) != 0) { + v3 = UintptrFromInt32(0) + *(*uintptr)(unsafe.Pointer(p)) = v3 + return v3 + } + *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(Xwcscspn(tls, s, sep))*4 + if *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p)))) != 0 { + v5 = p + v4 = *(*uintptr)(unsafe.Pointer(v5)) + *(*uintptr)(unsafe.Pointer(v5)) += 4 + *(*Twchar_t)(unsafe.Pointer(v4)) = uint32(0) + } else { + *(*uintptr)(unsafe.Pointer(p)) = uintptr(0) + } + return s +} + +func Xwcswcs(tls *TLS, haystack uintptr, needle uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v haystack=%v needle=%v, (%v:)", tls, haystack, needle, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xwcsstr(tls, haystack, needle) +} + +func Xwmemchr(tls *TLS, s uintptr, c Twchar_t, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v c=%v n=%v, (%v:)", tls, s, c, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v2 uintptr + _ = v2 + for { + if !(n != 0 && *(*Twchar_t)(unsafe.Pointer(s)) != c) { + break + } + goto _1 + _1: + ; + n-- + s += 4 + } + if n != 0 { + v2 = s + } else { + v2 = uintptr(0) + } + return v2 +} + +func Xwmemcmp(tls *TLS, l uintptr, r uintptr, n Tsize_t) (r1 int32) { + if __ccgo_strace { + trc("tls=%v l=%v r=%v n=%v, (%v:)", tls, l, r, n, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var v2, v3 int32 + _, _ = v2, v3 + for { + if !(n != 0 && *(*Twchar_t)(unsafe.Pointer(l)) == *(*Twchar_t)(unsafe.Pointer(r))) { + break + } + goto _1 + _1: + ; + n-- + l += 4 + r += 4 + } + if n != 0 { + if *(*Twchar_t)(unsafe.Pointer(l)) < *(*Twchar_t)(unsafe.Pointer(r)) { + v3 = -int32(1) + } else { + v3 = BoolInt32(*(*Twchar_t)(unsafe.Pointer(l)) > *(*Twchar_t)(unsafe.Pointer(r))) + } + v2 = v3 + } else { + v2 = 0 + } + return v2 +} + +func Xwmemcpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v d=%v s=%v n=%v, (%v:)", tls, d, s, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var a, v2, v3 uintptr + var v1 Tsize_t + _, _, _, _ = a, v1, v2, v3 + a = d + for { + v1 = n + n-- + if !(v1 != 0) { + break + } + v2 = d + d += 4 + v3 = s + s += 4 + *(*Twchar_t)(unsafe.Pointer(v2)) = *(*Twchar_t)(unsafe.Pointer(v3)) + } + return a +} + +func Xwmemmove(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v d=%v s=%v n=%v, (%v:)", tls, d, s, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var d0, v3, v4 uintptr + var v1, v2 Tsize_t + _, _, _, _, _ = d0, v1, v2, v3, v4 + d0 = d + if d == s { + return d + } + if uint64(d)-uint64(s) < n*uint64(4) { + for { + v1 = n + n-- + if !(v1 != 0) { + break + } + *(*Twchar_t)(unsafe.Pointer(d + uintptr(n)*4)) = *(*Twchar_t)(unsafe.Pointer(s + uintptr(n)*4)) + } + } else { + for { + v2 = n + n-- + if !(v2 != 0) { + break + } + v3 = d + d += 4 + v4 = s + s += 4 + *(*Twchar_t)(unsafe.Pointer(v3)) = *(*Twchar_t)(unsafe.Pointer(v4)) + } + } + return d0 +} + +func Xwmemset(tls *TLS, d uintptr, c Twchar_t, n Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v d=%v c=%v n=%v, (%v:)", tls, d, c, n, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ret, v2 uintptr + var v1 Tsize_t + _, _, _ = ret, v1, v2 + ret = d + for { + v1 = n + n-- + if !(v1 != 0) { + break + } + v2 = d + d += 4 + *(*Twchar_t)(unsafe.Pointer(v2)) = c + } + return ret +} + +func Xmkdtemp(tls *TLS, template uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v template=%v, (%v:)", tls, template, origin(2)) + defer func() { trc("-> %v", r) }() + } + var l Tsize_t + var retries, v1 int32 + _, _, _ = l, retries, v1 + l = Xstrlen(tls, template) + retries = int32(100) + if l < uint64(6) || Xmemcmp(tls, template+uintptr(l)-uintptr(6), __ccgo_ts+1730, uint64(6)) != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return uintptr(0) + } + for { + ___randname(tls, template+uintptr(l)-uintptr(6)) + if !(Xmkdir(tls, template, uint32(0700)) != 0) { + return template + } + goto _2 + _2: + ; + retries-- + v1 = retries + if !(v1 != 0 && *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(EEXIST)) { + break + } + } + Xmemcpy(tls, template+uintptr(l)-uintptr(6), __ccgo_ts+1730, uint64(6)) + return uintptr(0) +} + +func Xmkostemp(tls *TLS, template uintptr, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v template=%v flags=%v, (%v:)", tls, template, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__mkostemps(tls, template, 0, flags) +} + +func X__mkostemps(tls *TLS, template uintptr, len1 int32, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v template=%v len1=%v flags=%v, (%v:)", tls, template, len1, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var fd, retries, v1, v3 int32 + var l Tsize_t + _, _, _, _, _ = fd, l, retries, v1, v3 + l = Xstrlen(tls, template) + if l < uint64(6) || uint64(len1) > l-uint64(6) || Xmemcmp(tls, template+uintptr(l)-uintptr(len1)-uintptr(6), __ccgo_ts+1730, uint64(6)) != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return -int32(1) + } + flags -= flags & (Int32FromInt32(03) | Int32FromInt32(O_PATH)) + retries = int32(100) + for { + ___randname(tls, template+uintptr(l)-uintptr(len1)-uintptr(6)) + v3 = Xopen(tls, template, flags|int32(O_RDWR)|int32(O_CREAT)|int32(O_EXCL), VaList(bp+8, int32(0600))) + fd = v3 + if v3 >= 0 { + return fd + } + goto _2 + _2: + ; + retries-- + v1 = retries + if !(v1 != 0 && *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(EEXIST)) { + break + } + } + Xmemcpy(tls, template+uintptr(l)-uintptr(len1)-uintptr(6), __ccgo_ts+1730, uint64(6)) + return -int32(1) +} + +func Xmkostemps(tls *TLS, template uintptr, len1 int32, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v template=%v len1=%v flags=%v, (%v:)", tls, template, len1, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__mkostemps(tls, template, len1, flags) +} + +func Xmkstemp(tls *TLS, template uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v template=%v, (%v:)", tls, template, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__mkostemps(tls, template, 0, 0) +} + +func Xmkstemps(tls *TLS, template uintptr, len1 int32) (r int32) { + if __ccgo_strace { + trc("tls=%v template=%v len1=%v, (%v:)", tls, template, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__mkostemps(tls, template, len1, 0) +} + +func Xmktemp(tls *TLS, template uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v template=%v, (%v:)", tls, template, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(128) + defer tls.Free(128) + var l Tsize_t + var retries, v1 int32 + var _ /* st at bp+0 */ Tstat + _, _, _ = l, retries, v1 + l = Xstrlen(tls, template) + retries = int32(100) + if l < uint64(6) || Xmemcmp(tls, template+uintptr(l)-uintptr(6), __ccgo_ts+1730, uint64(6)) != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + *(*uint8)(unsafe.Pointer(template)) = uint8(0) + return template + } + for { + ___randname(tls, template+uintptr(l)-uintptr(6)) + if Xstat(tls, template, bp) != 0 { + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(ENOENT) { + *(*uint8)(unsafe.Pointer(template)) = uint8(0) + } + return template + } + goto _2 + _2: + ; + retries-- + v1 = retries + if !(v1 != 0) { + break + } + } + *(*uint8)(unsafe.Pointer(template)) = uint8(0) + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EEXIST) + return template +} + +func Xcfgetospeed(tls *TLS, tio uintptr) (r Tspeed_t) { + if __ccgo_strace { + trc("tls=%v tio=%v, (%v:)", tls, tio, origin(2)) + defer func() { trc("-> %v", r) }() + } + return (*Ttermios)(unsafe.Pointer(tio)).Fc_cflag & uint32(CBAUD) +} + +func Xcfgetispeed(tls *TLS, tio uintptr) (r Tspeed_t) { + if __ccgo_strace { + trc("tls=%v tio=%v, (%v:)", tls, tio, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xcfgetospeed(tls, tio) +} + +func Xcfmakeraw(tls *TLS, t uintptr) { + if __ccgo_strace { + trc("tls=%v t=%v, (%v:)", tls, t, origin(2)) + } + *(*Ttcflag_t)(unsafe.Pointer(t)) &= uint32(^(Int32FromInt32(IGNBRK) | Int32FromInt32(BRKINT) | Int32FromInt32(PARMRK) | Int32FromInt32(ISTRIP) | Int32FromInt32(INLCR) | Int32FromInt32(IGNCR) | Int32FromInt32(ICRNL) | Int32FromInt32(IXON))) + *(*Ttcflag_t)(unsafe.Pointer(t + 4)) &= uint32(^Int32FromInt32(OPOST)) + *(*Ttcflag_t)(unsafe.Pointer(t + 12)) &= uint32(^(Int32FromInt32(ECHO) | Int32FromInt32(ECHONL) | Int32FromInt32(ICANON) | Int32FromInt32(ISIG) | Int32FromInt32(IEXTEN))) + *(*Ttcflag_t)(unsafe.Pointer(t + 8)) &= uint32(^(Int32FromInt32(CSIZE) | Int32FromInt32(PARENB))) + *(*Ttcflag_t)(unsafe.Pointer(t + 8)) |= uint32(CS8) + *(*Tcc_t)(unsafe.Pointer(t + 17 + 6)) = uint8(1) + *(*Tcc_t)(unsafe.Pointer(t + 17 + 5)) = uint8(0) +} + +func Xcfsetospeed(tls *TLS, tio uintptr, speed Tspeed_t) (r int32) { + if __ccgo_strace { + trc("tls=%v tio=%v speed=%v, (%v:)", tls, tio, speed, origin(2)) + defer func() { trc("-> %v", r) }() + } + if speed&uint32(^Int32FromInt32(CBAUD)) != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return -int32(1) + } + *(*Ttcflag_t)(unsafe.Pointer(tio + 8)) &= uint32(^Int32FromInt32(CBAUD)) + *(*Ttcflag_t)(unsafe.Pointer(tio + 8)) |= speed + return 0 +} + +func Xcfsetispeed(tls *TLS, tio uintptr, speed Tspeed_t) (r int32) { + if __ccgo_strace { + trc("tls=%v tio=%v speed=%v, (%v:)", tls, tio, speed, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 int32 + _ = v1 + if speed != 0 { + v1 = Xcfsetospeed(tls, tio, speed) + } else { + v1 = 0 + } + return v1 +} + +func Xcfsetspeed(tls *TLS, tio uintptr, speed Tspeed_t) (r int32) { + if __ccgo_strace { + trc("tls=%v tio=%v speed=%v, (%v:)", tls, tio, speed, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xcfsetospeed(tls, tio, speed) +} + +func Xtcdrain(tls *TLS, fd int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_ioctl), int64(fd), int64(Int32FromInt32(TCSBRK)), int64(Int32FromInt32(1)), 0, 0, 0)))) +} + +func Xtcflow(tls *TLS, fd int32, action int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v action=%v, (%v:)", tls, fd, action, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + return Xioctl(tls, fd, int32(TCXONC), VaList(bp+8, action)) +} + +func Xtcflush(tls *TLS, fd int32, queue int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v queue=%v, (%v:)", tls, fd, queue, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + return Xioctl(tls, fd, int32(TCFLSH), VaList(bp+8, queue)) +} + +func Xtcgetattr(tls *TLS, fd int32, tio uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v tio=%v, (%v:)", tls, fd, tio, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + if Xioctl(tls, fd, int32(TCGETS), VaList(bp+8, tio)) != 0 { + return -int32(1) + } + return 0 +} + +func Xtcgetsid(tls *TLS, fd int32) (r Tpid_t) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var _ /* sid at bp+0 */ int32 + if Xioctl(tls, fd, int32(TIOCGSID), VaList(bp+16, bp)) < 0 { + return -int32(1) + } + return *(*int32)(unsafe.Pointer(bp)) +} + +func Xtcgetwinsize(tls *TLS, fd int32, wsz uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v wsz=%v, (%v:)", tls, fd, wsz, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_ioctl), int64(fd), int64(Int32FromInt32(TIOCGWINSZ)), int64(wsz))))) +} + +func Xtcsendbreak(tls *TLS, fd int32, dur int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v dur=%v, (%v:)", tls, fd, dur, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + /* nonzero duration is implementation-defined, so ignore it */ + return Xioctl(tls, fd, int32(TCSBRK), VaList(bp+8, 0)) +} + +func Xtcsetattr(tls *TLS, fd int32, act int32, tio uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v act=%v tio=%v, (%v:)", tls, fd, act, tio, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + if act < 0 || act > int32(2) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return -int32(1) + } + return Xioctl(tls, fd, int32(TCSETS)+act, VaList(bp+8, tio)) +} + +func Xtcsetwinsize(tls *TLS, fd int32, wsz uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v wsz=%v, (%v:)", tls, fd, wsz, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_ioctl), int64(fd), int64(Int32FromInt32(TIOCSWINSZ)), int64(wsz))))) +} + +func X__map_file(tls *TLS, pathname uintptr, size uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v pathname=%v size=%v, (%v:)", tls, pathname, size, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(128) + defer tls.Free(128) + var fd int32 + var map1, v1 uintptr + var _ /* st at bp+0 */ Tstat + _, _, _ = fd, map1, v1 + map1 = uintptr(-Int32FromInt32(1)) + fd = int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_openat), int64(-Int32FromInt32(100)), int64(pathname), int64(Int32FromInt32(O_RDONLY)|Int32FromInt32(O_CLOEXEC)|Int32FromInt32(O_NONBLOCK)|Int32FromInt32(O_LARGEFILE)))))) + if fd < 0 { + return uintptr(0) + } + if !(X__fstat(tls, fd, bp) != 0) { + map1 = X__mmap(tls, uintptr(0), uint64((*(*Tstat)(unsafe.Pointer(bp))).Fst_size), int32(PROT_READ), int32(MAP_SHARED), fd, 0) + *(*Tsize_t)(unsafe.Pointer(size)) = uint64((*(*Tstat)(unsafe.Pointer(bp))).Fst_size) + } + X__syscall1(tls, int64(SYS_close), int64(fd)) + if map1 == uintptr(-Int32FromInt32(1)) { + v1 = uintptr(0) + } else { + v1 = map1 + } + return v1 +} + +func X__month_to_secs(tls *TLS, month int32, is_leap int32) (r int32) { + if __ccgo_strace { + trc("tls=%v month=%v is_leap=%v, (%v:)", tls, month, is_leap, origin(2)) + defer func() { trc("-> %v", r) }() + } + var t int32 + _ = t + t = _secs_through_month[month] + if is_leap != 0 && month >= int32(2) { + t += int32(86400) + } + return t +} + +var _secs_through_month = [12]int32{ + 1: Int32FromInt32(31) * Int32FromInt32(86400), + 2: Int32FromInt32(59) * Int32FromInt32(86400), + 3: Int32FromInt32(90) * Int32FromInt32(86400), + 4: Int32FromInt32(120) * Int32FromInt32(86400), + 5: Int32FromInt32(151) * Int32FromInt32(86400), + 6: Int32FromInt32(181) * Int32FromInt32(86400), + 7: Int32FromInt32(212) * Int32FromInt32(86400), + 8: Int32FromInt32(243) * Int32FromInt32(86400), + 9: Int32FromInt32(273) * Int32FromInt32(86400), + 10: Int32FromInt32(304) * Int32FromInt32(86400), + 11: Int32FromInt32(334) * Int32FromInt32(86400), +} + +const DAYS_PER_100Y = 36524 +const DAYS_PER_400Y = 146097 +const DAYS_PER_4Y = 1461 +const LEAPOCH = 951868800 + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +/* 2000-03-01 (mod 400 year, immediately after feb29 */ + +func X__secs_to_tm(tls *TLS, t int64, tm uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v t=%v tm=%v, (%v:)", tls, t, tm, origin(2)) + defer func() { trc("-> %v", r) }() + } + var c_cycles, leap, months, q_cycles, qc_cycles, remdays, remsecs, remyears, wday, yday int32 + var days, secs, years int64 + _, _, _, _, _, _, _, _, _, _, _, _, _ = c_cycles, days, leap, months, q_cycles, qc_cycles, remdays, remsecs, remyears, secs, wday, yday, years + /* Reject time_t values whose year would overflow int */ + if t < int64(-Int32FromInt32(1)-Int32FromInt32(0x7fffffff))*Int64FromInt64(31622400) || t > Int64FromInt32(INT_MAX)*Int64FromInt64(31622400) { + return -int32(1) + } + secs = t - (Int64FromInt64(946684800) + int64(Int32FromInt32(86400)*(Int32FromInt32(31)+Int32FromInt32(29)))) + days = secs / int64(86400) + remsecs = int32(secs % int64(86400)) + if remsecs < 0 { + remsecs += int32(86400) + days-- + } + wday = int32((int64(3) + days) % int64(7)) + if wday < 0 { + wday += int32(7) + } + qc_cycles = int32(days / int64(Int32FromInt32(365)*Int32FromInt32(400)+Int32FromInt32(97))) + remdays = int32(days % int64(Int32FromInt32(365)*Int32FromInt32(400)+Int32FromInt32(97))) + if remdays < 0 { + remdays += Int32FromInt32(365)*Int32FromInt32(400) + Int32FromInt32(97) + qc_cycles-- + } + c_cycles = remdays / (Int32FromInt32(365)*Int32FromInt32(100) + Int32FromInt32(24)) + if c_cycles == int32(4) { + c_cycles-- + } + remdays -= c_cycles * (Int32FromInt32(365)*Int32FromInt32(100) + Int32FromInt32(24)) + q_cycles = remdays / (Int32FromInt32(365)*Int32FromInt32(4) + Int32FromInt32(1)) + if q_cycles == int32(25) { + q_cycles-- + } + remdays -= q_cycles * (Int32FromInt32(365)*Int32FromInt32(4) + Int32FromInt32(1)) + remyears = remdays / int32(365) + if remyears == int32(4) { + remyears-- + } + remdays -= remyears * int32(365) + leap = BoolInt32(!(remyears != 0) && (q_cycles != 0 || !(c_cycles != 0))) + yday = remdays + int32(31) + int32(28) + leap + if yday >= int32(365)+leap { + yday -= int32(365) + leap + } + years = int64(remyears+int32(4)*q_cycles+int32(100)*c_cycles) + int64(400)*int64(qc_cycles) + months = 0 + for { + if !(int32(_days_in_month[months]) <= remdays) { + break + } + remdays -= int32(_days_in_month[months]) + goto _1 + _1: + ; + months++ + } + if months >= int32(10) { + months -= int32(12) + years++ + } + if years+int64(100) > int64(INT_MAX) || years+int64(100) < int64(-Int32FromInt32(1)-Int32FromInt32(0x7fffffff)) { + return -int32(1) + } + (*Ttm)(unsafe.Pointer(tm)).Ftm_year = int32(years + int64(100)) + (*Ttm)(unsafe.Pointer(tm)).Ftm_mon = months + int32(2) + (*Ttm)(unsafe.Pointer(tm)).Ftm_mday = remdays + int32(1) + (*Ttm)(unsafe.Pointer(tm)).Ftm_wday = wday + (*Ttm)(unsafe.Pointer(tm)).Ftm_yday = yday + (*Ttm)(unsafe.Pointer(tm)).Ftm_hour = remsecs / int32(3600) + (*Ttm)(unsafe.Pointer(tm)).Ftm_min = remsecs / int32(60) % int32(60) + (*Ttm)(unsafe.Pointer(tm)).Ftm_sec = remsecs % int32(60) + return 0 +} + +var _days_in_month = [12]uint8{ + 0: uint8(31), + 1: uint8(30), + 2: uint8(31), + 3: uint8(30), + 4: uint8(31), + 5: uint8(31), + 6: uint8(30), + 7: uint8(31), + 8: uint8(30), + 9: uint8(31), + 10: uint8(31), + 11: uint8(29), +} + +func X__tm_to_secs(tls *TLS, tm uintptr) (r int64) { + if __ccgo_strace { + trc("tls=%v tm=%v, (%v:)", tls, tm, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var adj, month int32 + var t, year int64 + var _ /* is_leap at bp+0 */ int32 + _, _, _, _ = adj, month, t, year + year = int64((*Ttm)(unsafe.Pointer(tm)).Ftm_year) + month = (*Ttm)(unsafe.Pointer(tm)).Ftm_mon + if month >= int32(12) || month < 0 { + adj = month / int32(12) + month %= int32(12) + if month < 0 { + adj-- + month += int32(12) + } + year += int64(adj) + } + t = X__year_to_secs(tls, year, bp) + t += int64(X__month_to_secs(tls, month, *(*int32)(unsafe.Pointer(bp)))) + t += int64(86400) * int64((*Ttm)(unsafe.Pointer(tm)).Ftm_mday-Int32FromInt32(1)) + t += int64(3600) * int64((*Ttm)(unsafe.Pointer(tm)).Ftm_hour) + t += int64(60) * int64((*Ttm)(unsafe.Pointer(tm)).Ftm_min) + t += int64((*Ttm)(unsafe.Pointer(tm)).Ftm_sec) + return t +} + +var _std_name [7]uint8 +var _dst_name [7]uint8 + +var _dst_off int32 +var _r0 [5]int32 +var _r12 [5]int32 + +var _zi uintptr +var _trans uintptr +var _index uintptr +var _types uintptr +var _abbrevs uintptr +var _abbrevs_end uintptr +var _map_size Tsize_t + +var _old_tz_buf [32]uint8 +var _old_tz = uintptr(unsafe.Pointer(&_old_tz_buf)) +var _old_tz_size = uint64(32) + +var _lock4 [1]int32 + +func _getint2(tls *TLS, p uintptr) (r int32) { + var x uint32 + _ = x + x = uint32(0) + for { + if !(uint32(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p)))))-int32('0')) < uint32(10)) { + break + } + x = uint32(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p)))))-int32('0')) + uint32(10)*x + goto _1 + _1: + ; + *(*uintptr)(unsafe.Pointer(p))++ + } + return int32(x) +} + +func _getoff(tls *TLS, p uintptr) (r int32) { + var neg, off, v1 int32 + _, _, _ = neg, off, v1 + neg = 0 + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p))))) == int32('-') { + *(*uintptr)(unsafe.Pointer(p))++ + neg = int32(1) + } else { + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p))))) == int32('+') { + *(*uintptr)(unsafe.Pointer(p))++ + } + } + off = int32(3600) * _getint2(tls, p) + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p))))) == int32(':') { + *(*uintptr)(unsafe.Pointer(p))++ + off += int32(60) * _getint2(tls, p) + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p))))) == int32(':') { + *(*uintptr)(unsafe.Pointer(p))++ + off += _getint2(tls, p) + } + } + if neg != 0 { + v1 = -off + } else { + v1 = off + } + return v1 +} + +func _getrule(tls *TLS, p uintptr, rule uintptr) { + var r, v1 int32 + _, _ = r, v1 + v1 = int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p))))) + *(*int32)(unsafe.Pointer(rule)) = v1 + r = v1 + if r != int32('M') { + if r == int32('J') { + *(*uintptr)(unsafe.Pointer(p))++ + } else { + *(*int32)(unsafe.Pointer(rule)) = 0 + } + *(*int32)(unsafe.Pointer(rule + 1*4)) = _getint2(tls, p) + } else { + *(*uintptr)(unsafe.Pointer(p))++ + *(*int32)(unsafe.Pointer(rule + 1*4)) = _getint2(tls, p) + *(*uintptr)(unsafe.Pointer(p))++ + *(*int32)(unsafe.Pointer(rule + 2*4)) = _getint2(tls, p) + *(*uintptr)(unsafe.Pointer(p))++ + *(*int32)(unsafe.Pointer(rule + 3*4)) = _getint2(tls, p) + } + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p))))) == int32('/') { + *(*uintptr)(unsafe.Pointer(p))++ + *(*int32)(unsafe.Pointer(rule + 4*4)) = _getoff(tls, p) + } else { + *(*int32)(unsafe.Pointer(rule + 4*4)) = int32(7200) + } +} + +func _getname(tls *TLS, d uintptr, p uintptr) { + var i, v3 int32 + _, _ = i, v3 + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p))))) == int32('<') { + *(*uintptr)(unsafe.Pointer(p))++ + i = 0 + for { + if !(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p)) + uintptr(i))) != 0 && int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p)) + uintptr(i)))) != int32('>')) { + break + } + if i < int32(TZNAME_MAX) { + *(*uint8)(unsafe.Pointer(d + uintptr(i))) = *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p)) + uintptr(i))) + } + goto _1 + _1: + ; + i++ + } + if *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p)) + uintptr(i))) != 0 { + *(*uintptr)(unsafe.Pointer(p))++ + } + } else { + i = 0 + for { + if !(uint32(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p)) + uintptr(i))))|int32(32)-int32('a')) < uint32(26)) { + break + } + if i < int32(TZNAME_MAX) { + *(*uint8)(unsafe.Pointer(d + uintptr(i))) = *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p)) + uintptr(i))) + } + goto _2 + _2: + ; + i++ + } + } + *(*uintptr)(unsafe.Pointer(p)) += uintptr(i) + if i < int32(TZNAME_MAX) { + v3 = i + } else { + v3 = int32(TZNAME_MAX) + } + *(*uint8)(unsafe.Pointer(d + uintptr(v3))) = uint8(0) +} + +func _zi_read32(tls *TLS, z uintptr) (r Tuint32_t) { + return uint32(*(*uint8)(unsafe.Pointer(z)))< uint64(Int32FromInt32(PATH_MAX)+Int32FromInt32(1)) { + *(*uintptr)(unsafe.Pointer(bp + 288)) = uintptr(unsafe.Pointer(&X__utc)) + i = Uint64FromInt32(3) + } + if i >= _old_tz_size { + _old_tz_size *= uint64(2) + if i >= _old_tz_size { + _old_tz_size = i + uint64(1) + } + if _old_tz_size > uint64(Int32FromInt32(PATH_MAX)+Int32FromInt32(2)) { + _old_tz_size = uint64(Int32FromInt32(PATH_MAX) + Int32FromInt32(2)) + } + _old_tz = Xmalloc(tls, _old_tz_size) + } + if _old_tz != 0 { + Xmemcpy(tls, _old_tz, *(*uintptr)(unsafe.Pointer(bp + 288)), i+uint64(1)) + } + posix_form = 0 + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 288))))) != int32(':') { + *(*uintptr)(unsafe.Pointer(bp + 296)) = *(*uintptr)(unsafe.Pointer(bp + 288)) + _getname(tls, bp+308, bp+296) + if *(*uintptr)(unsafe.Pointer(bp + 296)) != *(*uintptr)(unsafe.Pointer(bp + 288)) && (int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 296))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 296))))) == int32('-') || BoolInt32(uint32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 296)))))-uint32('0') < uint32(10)) != 0 || !(Xstrcmp(tls, bp+308, __ccgo_ts+1755) != 0) || !(Xstrcmp(tls, bp+308, __ccgo_ts+1759) != 0)) { + posix_form = int32(1) + } + } + /* Non-suid can use an absolute tzfile pathname or a relative + * pathame beginning with "."; in secure mode, only the + * standard path will be searched. */ + if !(posix_form != 0) { + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 288))))) == int32(':') { + *(*uintptr)(unsafe.Pointer(bp + 288))++ + } + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 288))))) == int32('/') || int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 288))))) == int32('.') { + if !(X__libc.Fsecure != 0) || !(Xstrcmp(tls, *(*uintptr)(unsafe.Pointer(bp + 288)), __ccgo_ts+1740) != 0) { + map1 = X__map_file(tls, *(*uintptr)(unsafe.Pointer(bp + 288)), uintptr(unsafe.Pointer(&_map_size))) + } + } else { + l = Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 288))) + if l <= uint64(NAME_MAX) && !(Xstrchr(tls, *(*uintptr)(unsafe.Pointer(bp + 288)), int32('.')) != 0) { + Xmemcpy(tls, pathname, *(*uintptr)(unsafe.Pointer(bp + 288)), l+uint64(1)) + *(*uint8)(unsafe.Pointer(pathname + uintptr(l))) = uint8(0) + try = uintptr(unsafe.Pointer(&_search)) + for { + if !(!(map1 != 0) && *(*uint8)(unsafe.Pointer(try)) != 0) { + break + } + l = Xstrlen(tls, try) + Xmemcpy(tls, pathname-uintptr(l), try, l) + map1 = X__map_file(tls, pathname-uintptr(l), uintptr(unsafe.Pointer(&_map_size))) + goto _3 + _3: + ; + try += uintptr(l + uint64(1)) + } + } + } + if !(map1 != 0) { + *(*uintptr)(unsafe.Pointer(bp + 288)) = uintptr(unsafe.Pointer(&X__utc)) + } + } + if map1 != 0 && (_map_size < uint64(44) || Xmemcmp(tls, map1, __ccgo_ts+1763, uint64(4)) != 0) { + X__munmap(tls, map1, _map_size) + map1 = uintptr(0) + *(*uintptr)(unsafe.Pointer(bp + 288)) = uintptr(unsafe.Pointer(&X__utc)) + } + _zi = map1 + if map1 != 0 { + scale = int32(2) + if int32(*(*uint8)(unsafe.Pointer(map1 + 4))) != int32('1') { + *(*[6]uint8)(unsafe.Pointer(bp)) = [6]uint8{ + 0: uint8(1), + 1: uint8(1), + 2: uint8(8), + 3: uint8(5), + 4: uint8(6), + 5: uint8(1), + } + skip = _zi_dotprod(tls, _zi+uintptr(20), bp, uint64(6)) + _trans = _zi + uintptr(skip) + uintptr(44) + uintptr(44) + scale++ + } else { + _trans = _zi + uintptr(44) + } + _index = _trans + uintptr(_zi_read32(tls, _trans-uintptr(12))<> scale) + if !(n != 0) { + if alt != 0 { + *(*Tsize_t)(unsafe.Pointer(alt)) = uint64(0) + } + return uint64(0) + } + /* Binary search for 'most-recent rule before t'. */ + for n > uint64(1) { + m = a + n/uint64(2) + x = uint64(_zi_read32(tls, _trans+uintptr(m<> scale) + if a == n-uint64(1) { + return uint64(-Int32FromInt32(1)) + } + if a == uint64(0) { + x = uint64(_zi_read32(tls, _trans)) + if scale == int32(3) { + x = x<>(m-int32(1))&int32(1) + } + return r +} + +/* Convert a POSIX DST rule plus year to seconds since epoch. */ + +func _rule_to_secs(tls *TLS, rule uintptr, year int32) (r int64) { + bp := tls.Alloc(16) + defer tls.Free(16) + var d, days, m, n, wday, x int32 + var t int64 + var _ /* is_leap at bp+0 */ int32 + _, _, _, _, _, _, _ = d, days, m, n, t, wday, x + t = X__year_to_secs(tls, int64(year), bp) + if *(*int32)(unsafe.Pointer(rule)) != int32('M') { + x = *(*int32)(unsafe.Pointer(rule + 1*4)) + if *(*int32)(unsafe.Pointer(rule)) == int32('J') && (x < int32(60) || !(*(*int32)(unsafe.Pointer(bp)) != 0)) { + x-- + } + t += int64(int32(86400) * x) + } else { + m = *(*int32)(unsafe.Pointer(rule + 1*4)) + n = *(*int32)(unsafe.Pointer(rule + 2*4)) + d = *(*int32)(unsafe.Pointer(rule + 3*4)) + t += int64(X__month_to_secs(tls, m-int32(1), *(*int32)(unsafe.Pointer(bp)))) + wday = int32((t+int64(Int32FromInt32(4)*Int32FromInt32(86400)))%int64(Int32FromInt32(7)*Int32FromInt32(86400))) / int32(86400) + days = d - wday + if days < 0 { + days += int32(7) + } + if n == int32(5) && days+int32(28) >= _days_in_month1(tls, m, *(*int32)(unsafe.Pointer(bp))) { + n = int32(4) + } + t += int64(int32(86400) * (days + int32(7)*(n-int32(1)))) + } + t += int64(*(*int32)(unsafe.Pointer(rule + 4*4))) + return t +} + +/* Determine the time zone in effect for a given time in seconds since the + * epoch. It can be given in local or universal time. The results will + * indicate whether DST is in effect at the queried time, and will give both + * the GMT offset for the active zone/DST rule and the opposite DST. This + * enables a caller to efficiently adjust for the case where an explicit + * DST specification mismatches what would be in effect at the time. */ + +func X__secs_to_zone(tls *TLS, t int64, local int32, isdst uintptr, offset uintptr, oppoff uintptr, zonename uintptr) { + if __ccgo_strace { + trc("tls=%v t=%v local=%v isdst=%v offset=%v oppoff=%v zonename=%v, (%v:)", tls, t, local, isdst, offset, oppoff, zonename, origin(2)) + } + bp := tls.Alloc(16) + defer tls.Free(16) + var i Tsize_t + var t0, t1, y int64 + var _ /* alt at bp+0 */ Tsize_t + _, _, _, _ = i, t0, t1, y + ___lock(tls, uintptr(unsafe.Pointer(&_lock4))) + _do_tzset(tls) + if _zi != 0 { + i = _scan_trans(tls, t, local, bp) + if i != uint64(-Int32FromInt32(1)) { + *(*int32)(unsafe.Pointer(isdst)) = int32(*(*uint8)(unsafe.Pointer(_types + uintptr(uint64(6)*i+uint64(4))))) + *(*int64)(unsafe.Pointer(offset)) = int64(int32(_zi_read32(tls, _types+uintptr(uint64(6)*i)))) + *(*uintptr)(unsafe.Pointer(zonename)) = _abbrevs + uintptr(*(*uint8)(unsafe.Pointer(_types + uintptr(uint64(6)*i+uint64(5))))) + if oppoff != 0 { + *(*int64)(unsafe.Pointer(oppoff)) = int64(int32(_zi_read32(tls, _types+uintptr(uint64(6)**(*Tsize_t)(unsafe.Pointer(bp)))))) + } + ___unlock(tls, uintptr(unsafe.Pointer(&_lock4))) + return + } + } + if !(Xdaylight != 0) { + goto std + } + /* FIXME: may be broken if DST changes right at year boundary? + * Also, this could be more efficient.*/ + y = t/int64(31556952) + int64(70) + for X__year_to_secs(tls, y, uintptr(0)) > t { + y-- + } + for X__year_to_secs(tls, y+int64(1), uintptr(0)) < t { + y++ + } + t0 = _rule_to_secs(tls, uintptr(unsafe.Pointer(&_r0)), int32(y)) + t1 = _rule_to_secs(tls, uintptr(unsafe.Pointer(&_r12)), int32(y)) + if !(local != 0) { + t0 += Xtimezone + t1 += int64(_dst_off) + } + if t0 < t1 { + if t >= t0 && t < t1 { + goto dst + } + goto std + } else { + if t >= t1 && t < t0 { + goto std + } + goto dst + } + goto std +std: + ; + *(*int32)(unsafe.Pointer(isdst)) = 0 + *(*int64)(unsafe.Pointer(offset)) = -Xtimezone + if oppoff != 0 { + *(*int64)(unsafe.Pointer(oppoff)) = int64(-_dst_off) + } + *(*uintptr)(unsafe.Pointer(zonename)) = Xtzname[0] + ___unlock(tls, uintptr(unsafe.Pointer(&_lock4))) + return + goto dst +dst: + ; + *(*int32)(unsafe.Pointer(isdst)) = int32(1) + *(*int64)(unsafe.Pointer(offset)) = int64(-_dst_off) + if oppoff != 0 { + *(*int64)(unsafe.Pointer(oppoff)) = -Xtimezone + } + *(*uintptr)(unsafe.Pointer(zonename)) = Xtzname[int32(1)] + ___unlock(tls, uintptr(unsafe.Pointer(&_lock4))) +} + +func ___tzset(tls *TLS) { + ___lock(tls, uintptr(unsafe.Pointer(&_lock4))) + _do_tzset(tls) + ___unlock(tls, uintptr(unsafe.Pointer(&_lock4))) +} + +func X__tm_to_tzname(tls *TLS, tm uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v tm=%v, (%v:)", tls, tm, origin(2)) + defer func() { trc("-> %v", r) }() + } + var p uintptr + _ = p + p = (*Ttm)(unsafe.Pointer(tm)).F__tm_zone + ___lock(tls, uintptr(unsafe.Pointer(&_lock4))) + _do_tzset(tls) + if p != uintptr(unsafe.Pointer(&X__utc)) && p != Xtzname[0] && p != Xtzname[int32(1)] && (!(_zi != 0) || uint64(p)-uint64(_abbrevs) >= uint64(int64(_abbrevs_end)-int64(_abbrevs))) { + p = __ccgo_ts + } + ___unlock(tls, uintptr(unsafe.Pointer(&_lock4))) + return p +} + +func X__year_to_secs(tls *TLS, year int64, is_leap uintptr) (r int64) { + if __ccgo_strace { + trc("tls=%v year=%v is_leap=%v, (%v:)", tls, year, is_leap, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var centuries, cycles, leaps, leaps1, rem, y int32 + var _ /* dummy at bp+0 */ int32 + _, _, _, _, _, _ = centuries, cycles, leaps, leaps1, rem, y + if uint64(year)-uint64(2) <= uint64(136) { + y = int32(year) + leaps = (y - int32(68)) >> int32(2) + if !((y-Int32FromInt32(68))&Int32FromInt32(3) != 0) { + leaps-- + if is_leap != 0 { + *(*int32)(unsafe.Pointer(is_leap)) = int32(1) + } + } else { + if is_leap != 0 { + *(*int32)(unsafe.Pointer(is_leap)) = 0 + } + } + return int64(int32(31536000)*(y-int32(70)) + int32(86400)*leaps) + } + if !(is_leap != 0) { + is_leap = bp + } + cycles = int32((year - int64(100)) / int64(400)) + rem = int32((year - int64(100)) % int64(400)) + if rem < 0 { + cycles-- + rem += int32(400) + } + if !(rem != 0) { + *(*int32)(unsafe.Pointer(is_leap)) = int32(1) + centuries = 0 + leaps1 = 0 + } else { + if rem >= int32(200) { + if rem >= int32(300) { + centuries = int32(3) + rem -= int32(300) + } else { + centuries = int32(2) + rem -= int32(200) + } + } else { + if rem >= int32(100) { + centuries = int32(1) + rem -= int32(100) + } else { + centuries = 0 + } + } + if !(rem != 0) { + *(*int32)(unsafe.Pointer(is_leap)) = 0 + leaps1 = 0 + } else { + leaps1 = int32(uint32(rem) / uint32(4)) + rem = int32(uint32(rem) % Uint32FromUint32(4)) + *(*int32)(unsafe.Pointer(is_leap)) = BoolInt32(!(rem != 0)) + } + } + leaps1 += int32(97)*cycles + int32(24)*centuries - *(*int32)(unsafe.Pointer(is_leap)) + return (year-int64(100))*int64(31536000) + int64(leaps1)*int64(86400) + int64(946684800) + int64(86400) +} + +func Xasctime(tls *TLS, tm uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v tm=%v, (%v:)", tls, tm, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__asctime_r(tls, tm, uintptr(unsafe.Pointer(&_buf9))) +} + +var _buf9 [26]uint8 + +func X__asctime_r(tls *TLS, tm uintptr, buf uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v tm=%v buf=%v, (%v:)", tls, tm, buf, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(64) + defer tls.Free(64) + if Xsnprintf(tls, buf, uint64(26), __ccgo_ts+1768, VaList(bp+8, X__nl_langinfo_l(tls, int32(ABDAY_1)+(*Ttm)(unsafe.Pointer(tm)).Ftm_wday, uintptr(unsafe.Pointer(&X__c_locale))), X__nl_langinfo_l(tls, int32(ABMON_1)+(*Ttm)(unsafe.Pointer(tm)).Ftm_mon, uintptr(unsafe.Pointer(&X__c_locale))), (*Ttm)(unsafe.Pointer(tm)).Ftm_mday, (*Ttm)(unsafe.Pointer(tm)).Ftm_hour, (*Ttm)(unsafe.Pointer(tm)).Ftm_min, (*Ttm)(unsafe.Pointer(tm)).Ftm_sec, int32(1900)+(*Ttm)(unsafe.Pointer(tm)).Ftm_year)) >= int32(26) { + /* ISO C requires us to use the above format string, + * even if it will not fit in the buffer. Thus asctime_r + * is _supposed_ to crash if the fields in tm are too large. + * We follow this behavior and crash "gracefully" to warn + * application developers that they may not be so lucky + * on other implementations (e.g. stack smashing..). + */ + *(*uint8)(unsafe.Pointer(UintptrFromInt32(0))) = uint8(0) + } + return buf +} + +func Xasctime_r(tls *TLS, tm uintptr, buf uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v tm=%v buf=%v, (%v:)", tls, tm, buf, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__asctime_r(tls, tm, buf) +} + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +func Xclock(tls *TLS) (r Tclock_t) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* ts at bp+0 */ Ttimespec + if X__clock_gettime(tls, int32(CLOCK_PROCESS_CPUTIME_ID), bp) != 0 { + return int64(-int32(1)) + } + if (*(*Ttimespec)(unsafe.Pointer(bp))).Ftv_sec > Int64FromInt64(0x7fffffffffffffff)/Int64FromInt32(1000000) || (*(*Ttimespec)(unsafe.Pointer(bp))).Ftv_nsec/int64(1000) > int64(0x7fffffffffffffff)-int64(1000000)*(*(*Ttimespec)(unsafe.Pointer(bp))).Ftv_sec { + return int64(-int32(1)) + } + return (*(*Ttimespec)(unsafe.Pointer(bp))).Ftv_sec*int64(1000000) + (*(*Ttimespec)(unsafe.Pointer(bp))).Ftv_nsec/int64(1000) +} + +func Xclock_getcpuclockid(tls *TLS, pid Tpid_t, clk uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v pid=%v clk=%v, (%v:)", tls, pid, clk, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var id Tclockid_t + var ret int32 + var _ /* ts at bp+0 */ Ttimespec + _, _ = id, ret + id = int32(uint32(-pid-Int32FromInt32(1))*uint32(8) + uint32(2)) + ret = int32(X__syscall2(tls, int64(SYS_clock_getres), int64(id), int64(bp))) + if ret == -int32(EINVAL) { + ret = -int32(ESRCH) + } + if ret != 0 { + return -ret + } + *(*Tclockid_t)(unsafe.Pointer(clk)) = id + return 0 +} + +func Xclock_getres(tls *TLS, clk Tclockid_t, ts uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v clk=%v ts=%v, (%v:)", tls, clk, ts, origin(2)) + defer func() { trc("-> %v", r) }() + } + /* If reaching this point, it's a 64-bit arch or time64-only + * 32-bit arch and we can get result directly into timespec. */ + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_clock_getres), int64(clk), int64(ts))))) +} + +func X__clock_gettime(tls *TLS, clk Tclockid_t, ts uintptr) (r1 int32) { + if __ccgo_strace { + trc("tls=%v clk=%v ts=%v, (%v:)", tls, clk, ts, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r int32 + _ = r + r = int32(X__syscall2(tls, int64(SYS_clock_gettime), int64(clk), int64(ts))) + if r == -int32(ENOSYS) { + if clk == CLOCK_REALTIME { + X__syscall2(tls, int64(SYS_gettimeofday), int64(ts), int64(Int32FromInt32(0))) + (*Ttimespec)(unsafe.Pointer(ts)).Ftv_nsec = int64(int32((*Ttimespec)(unsafe.Pointer(ts)).Ftv_nsec) * int32(1000)) + return 0 + } + r = -int32(EINVAL) + } + return int32(X__syscall_ret(tls, uint64(r))) +} + +func Xclock_gettime(tls *TLS, clk Tclockid_t, ts uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v clk=%v ts=%v, (%v:)", tls, clk, ts, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__clock_gettime(tls, clk, ts) +} + +func X__clock_nanosleep(tls *TLS, clk Tclockid_t, flags int32, req uintptr, rem uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v clk=%v flags=%v req=%v rem=%v, (%v:)", tls, clk, flags, req, rem, origin(2)) + defer func() { trc("-> %v", r) }() + } + if clk == int32(CLOCK_THREAD_CPUTIME_ID) { + return int32(EINVAL) + } + if clk == CLOCK_REALTIME && !(flags != 0) { + return int32(-___syscall_cp(tls, int64(SYS_nanosleep), int64(req), int64(rem), 0, 0, 0, 0)) + } + return int32(-___syscall_cp(tls, int64(SYS_clock_nanosleep), int64(clk), int64(flags), int64(req), int64(rem), 0, 0)) +} + +func Xclock_nanosleep(tls *TLS, clk Tclockid_t, flags int32, req uintptr, rem uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v clk=%v flags=%v req=%v rem=%v, (%v:)", tls, clk, flags, req, rem, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__clock_nanosleep(tls, clk, flags, req, rem) +} + +func Xclock_settime(tls *TLS, clk Tclockid_t, ts uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v clk=%v ts=%v, (%v:)", tls, clk, ts, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_clock_settime), int64(clk), int64(ts))))) +} + +func Xctime(tls *TLS, t uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v t=%v, (%v:)", tls, t, origin(2)) + defer func() { trc("-> %v", r) }() + } + var tm uintptr + _ = tm + tm = Xlocaltime(tls, t) + if !(tm != 0) { + return uintptr(0) + } + return Xasctime(tls, tm) +} + +func Xctime_r(tls *TLS, t uintptr, buf uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v t=%v buf=%v, (%v:)", tls, t, buf, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(64) + defer tls.Free(64) + var tm_p, v1 uintptr + var _ /* tm at bp+0 */ Ttm + _, _ = tm_p, v1 + tm_p = Xlocaltime_r(tls, t, bp) + if tm_p != 0 { + v1 = Xasctime_r(tls, tm_p, buf) + } else { + v1 = uintptr(0) + } + return v1 +} + +func Xdifftime(tls *TLS, t1 Ttime_t, t0 Ttime_t) (r float64) { + if __ccgo_strace { + trc("tls=%v t1=%v t0=%v, (%v:)", tls, t1, t0, origin(2)) + defer func() { trc("-> %v", r) }() + } + return float64(t1 - t0) +} + +type Ttimeb = struct { + Ftime Ttime_t + Fmillitm uint16 + Ftimezone int16 + Fdstflag int16 +} + +func Xftime(tls *TLS, tp uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v tp=%v, (%v:)", tls, tp, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var v1 int16 + var _ /* ts at bp+0 */ Ttimespec + _ = v1 + Xclock_gettime(tls, CLOCK_REALTIME, bp) + (*Ttimeb)(unsafe.Pointer(tp)).Ftime = (*(*Ttimespec)(unsafe.Pointer(bp))).Ftv_sec + (*Ttimeb)(unsafe.Pointer(tp)).Fmillitm = uint16((*(*Ttimespec)(unsafe.Pointer(bp))).Ftv_nsec / int64(1000000)) + v1 = Int16FromInt32(0) + (*Ttimeb)(unsafe.Pointer(tp)).Fdstflag = v1 + (*Ttimeb)(unsafe.Pointer(tp)).Ftimezone = v1 + return 0 +} + +func Xgetdate(tls *TLS, s uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(112) + defer tls.Free(112) + var datemsk, f, p, ret uintptr + var _ /* cs at bp+100 */ int32 + var _ /* fmt at bp+0 */ [100]uint8 + _, _, _, _ = datemsk, f, p, ret + ret = uintptr(0) + datemsk = Xgetenv(tls, __ccgo_ts+1800) + f = uintptr(0) + _pthread_setcancelstate(tls, PTHREAD_CANCEL_DEFERRED, bp+100) + if !(datemsk != 0) { + Xgetdate_err = int32(1) + goto out + } + f = Xfopen(tls, datemsk, __ccgo_ts+315) + if !(f != 0) { + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(ENOMEM) { + Xgetdate_err = int32(6) + } else { + Xgetdate_err = int32(2) + } + goto out + } + for Xfgets(tls, bp, int32(100), f) != 0 { + p = Xstrptime(tls, s, bp, uintptr(unsafe.Pointer(&_tmbuf))) + if p != 0 && !(*(*uint8)(unsafe.Pointer(p)) != 0) { + ret = uintptr(unsafe.Pointer(&_tmbuf)) + goto out + } + } + if Xferror(tls, f) != 0 { + Xgetdate_err = int32(5) + } else { + Xgetdate_err = int32(7) + } + goto out +out: + ; + if f != 0 { + Xfclose(tls, f) + } + _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 100)), uintptr(0)) + return ret +} + +var _tmbuf Ttm + +func Xgettimeofday(tls *TLS, tv uintptr, tz uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v tv=%v tz=%v, (%v:)", tls, tv, tz, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* ts at bp+0 */ Ttimespec + if !(tv != 0) { + return 0 + } + Xclock_gettime(tls, CLOCK_REALTIME, bp) + (*Ttimeval)(unsafe.Pointer(tv)).Ftv_sec = (*(*Ttimespec)(unsafe.Pointer(bp))).Ftv_sec + (*Ttimeval)(unsafe.Pointer(tv)).Ftv_usec = int64(int32((*(*Ttimespec)(unsafe.Pointer(bp))).Ftv_nsec) / int32(1000)) + return 0 +} + +func Xgmtime(tls *TLS, t uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v t=%v, (%v:)", tls, t, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__gmtime_r(tls, t, uintptr(unsafe.Pointer(&_tm))) +} + +var _tm Ttm + +func X__gmtime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v t=%v tm=%v, (%v:)", tls, t, tm, origin(2)) + defer func() { trc("-> %v", r) }() + } + if X__secs_to_tm(tls, *(*Ttime_t)(unsafe.Pointer(t)), tm) < 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOVERFLOW) + return uintptr(0) + } + (*Ttm)(unsafe.Pointer(tm)).Ftm_isdst = 0 + (*Ttm)(unsafe.Pointer(tm)).F__tm_gmtoff = 0 + (*Ttm)(unsafe.Pointer(tm)).F__tm_zone = uintptr(unsafe.Pointer(&X__utc)) + return tm +} + +func Xgmtime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v t=%v tm=%v, (%v:)", tls, t, tm, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__gmtime_r(tls, t, tm) +} + +func Xlocaltime(tls *TLS, t uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v t=%v, (%v:)", tls, t, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__localtime_r(tls, t, uintptr(unsafe.Pointer(&_tm1))) +} + +var _tm1 Ttm + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +func X__localtime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v t=%v tm=%v, (%v:)", tls, t, tm, origin(2)) + defer func() { trc("-> %v", r) }() + } + /* Reject time_t values whose year would overflow int because + * __secs_to_zone cannot safely handle them. */ + if *(*Ttime_t)(unsafe.Pointer(t)) < int64(-Int32FromInt32(1)-Int32FromInt32(0x7fffffff))*Int64FromInt64(31622400) || *(*Ttime_t)(unsafe.Pointer(t)) > Int64FromInt32(INT_MAX)*Int64FromInt64(31622400) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOVERFLOW) + return uintptr(0) + } + X__secs_to_zone(tls, *(*Ttime_t)(unsafe.Pointer(t)), 0, tm+32, tm+40, uintptr(0), tm+48) + if X__secs_to_tm(tls, *(*Ttime_t)(unsafe.Pointer(t))+(*Ttm)(unsafe.Pointer(tm)).F__tm_gmtoff, tm) < 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOVERFLOW) + return uintptr(0) + } + return tm +} + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +func Xlocaltime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v t=%v tm=%v, (%v:)", tls, t, tm, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__localtime_r(tls, t, tm) +} + +func Xmktime(tls *TLS, tm uintptr) (r Ttime_t) { + if __ccgo_strace { + trc("tls=%v tm=%v, (%v:)", tls, tm, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(64) + defer tls.Free(64) + var t int64 + var _ /* new at bp+0 */ Ttm + var _ /* opp at bp+56 */ int64 + _ = t + t = X__tm_to_secs(tls, tm) + X__secs_to_zone(tls, t, int32(1), bp+32, bp+40, bp+56, bp+48) + if (*Ttm)(unsafe.Pointer(tm)).Ftm_isdst >= 0 && (*(*Ttm)(unsafe.Pointer(bp))).Ftm_isdst != (*Ttm)(unsafe.Pointer(tm)).Ftm_isdst { + t -= *(*int64)(unsafe.Pointer(bp + 56)) - (*(*Ttm)(unsafe.Pointer(bp))).F__tm_gmtoff + } + t -= (*(*Ttm)(unsafe.Pointer(bp))).F__tm_gmtoff + if t != t { + goto error + } + X__secs_to_zone(tls, t, 0, bp+32, bp+40, bp+56, bp+48) + if X__secs_to_tm(tls, t+(*(*Ttm)(unsafe.Pointer(bp))).F__tm_gmtoff, bp) < 0 { + goto error + } + *(*Ttm)(unsafe.Pointer(tm)) = *(*Ttm)(unsafe.Pointer(bp)) + return t + goto error +error: + ; + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOVERFLOW) + return int64(-int32(1)) +} + +func Xnanosleep(tls *TLS, req uintptr, rem uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v req=%v rem=%v, (%v:)", tls, req, rem, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(-X__clock_nanosleep(tls, CLOCK_REALTIME, 0, req, rem)))) +} + +func _is_leap(tls *TLS, y int32) (r int32) { + /* Avoid overflow */ + if y > Int32FromInt32(INT_MAX)-Int32FromInt32(1900) { + y -= int32(2000) + } + y += int32(1900) + return BoolInt32(!(y%Int32FromInt32(4) != 0) && (y%int32(100) != 0 || !(y%Int32FromInt32(400) != 0))) +} + +func _week_num(tls *TLS, tm uintptr) (r int32) { + var dec31, jan1, val int32 + _, _, _ = dec31, jan1, val + val = int32((uint32((*Ttm)(unsafe.Pointer(tm)).Ftm_yday) + uint32(7) - (uint32((*Ttm)(unsafe.Pointer(tm)).Ftm_wday)+uint32(6))%uint32(7)) / uint32(7)) + /* If 1 Jan is just 1-3 days past Monday, + * the previous week is also in this year. */ + if (uint32((*Ttm)(unsafe.Pointer(tm)).Ftm_wday)+uint32(371)-uint32((*Ttm)(unsafe.Pointer(tm)).Ftm_yday)-uint32(2))%uint32(7) <= uint32(2) { + val++ + } + if !(val != 0) { + val = int32(52) + /* If 31 December of prev year a Thursday, + * or Friday of a leap year, then the + * prev year has 53 weeks. */ + dec31 = int32((uint32((*Ttm)(unsafe.Pointer(tm)).Ftm_wday) + uint32(7) - uint32((*Ttm)(unsafe.Pointer(tm)).Ftm_yday) - uint32(1)) % uint32(7)) + if dec31 == int32(4) || dec31 == int32(5) && _is_leap(tls, (*Ttm)(unsafe.Pointer(tm)).Ftm_year%int32(400)-int32(1)) != 0 { + val++ + } + } else { + if val == int32(53) { + /* If 1 January is not a Thursday, and not + * a Wednesday of a leap year, then this + * year has only 52 weeks. */ + jan1 = int32((uint32((*Ttm)(unsafe.Pointer(tm)).Ftm_wday) + uint32(371) - uint32((*Ttm)(unsafe.Pointer(tm)).Ftm_yday)) % uint32(7)) + if jan1 != int32(4) && (jan1 != int32(3) || !(_is_leap(tls, (*Ttm)(unsafe.Pointer(tm)).Ftm_year) != 0)) { + val = int32(1) + } + } + } + return val +} + +func X__strftime_fmt_1(tls *TLS, s uintptr, l uintptr, f int32, tm uintptr, loc Tlocale_t, pad int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v l=%v f=%v tm=%v loc=%v pad=%v, (%v:)", tls, s, l, f, tm, loc, pad, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var d, fmt, v4, v5 uintptr + var def_pad, width, v1, v2, v6, v7 int32 + var item Tnl_item + var val int64 + _, _, _, _, _, _, _, _, _, _, _, _ = d, def_pad, fmt, item, val, width, v1, v2, v4, v5, v6, v7 + fmt = __ccgo_ts + 1662 + width = int32(2) + def_pad = int32('0') + switch f { + case int32('a'): + if uint32((*Ttm)(unsafe.Pointer(tm)).Ftm_wday) > uint32(6) { + goto string + } + item = int32(ABDAY_1) + (*Ttm)(unsafe.Pointer(tm)).Ftm_wday + goto nl_strcat + case int32('A'): + if uint32((*Ttm)(unsafe.Pointer(tm)).Ftm_wday) > uint32(6) { + goto string + } + item = int32(DAY_1) + (*Ttm)(unsafe.Pointer(tm)).Ftm_wday + goto nl_strcat + case int32('h'): + fallthrough + case int32('b'): + if uint32((*Ttm)(unsafe.Pointer(tm)).Ftm_mon) > uint32(11) { + goto string + } + item = int32(ABMON_1) + (*Ttm)(unsafe.Pointer(tm)).Ftm_mon + goto nl_strcat + case int32('B'): + if uint32((*Ttm)(unsafe.Pointer(tm)).Ftm_mon) > uint32(11) { + goto string + } + item = int32(MON_1) + (*Ttm)(unsafe.Pointer(tm)).Ftm_mon + goto nl_strcat + case int32('c'): + item = int32(D_T_FMT) + goto nl_strftime + case int32('C'): + val = (int64(1900) + int64((*Ttm)(unsafe.Pointer(tm)).Ftm_year)) / int64(100) + goto number + case int32('e'): + def_pad = int32('_') + fallthrough + case int32('d'): + val = int64((*Ttm)(unsafe.Pointer(tm)).Ftm_mday) + goto number + case int32('D'): + fmt = __ccgo_ts + 1808 + goto recu_strftime + case int32('F'): + fmt = __ccgo_ts + 1817 + goto recu_strftime + case int32('g'): + fallthrough + case int32('G'): + val = int64((*Ttm)(unsafe.Pointer(tm)).Ftm_year) + int64(1900) + if (*Ttm)(unsafe.Pointer(tm)).Ftm_yday < int32(3) && _week_num(tls, tm) != int32(1) { + val-- + } else { + if (*Ttm)(unsafe.Pointer(tm)).Ftm_yday > int32(360) && _week_num(tls, tm) == int32(1) { + val++ + } + } + if f == int32('g') { + val %= int64(100) + } else { + width = int32(4) + } + goto number + case int32('H'): + val = int64((*Ttm)(unsafe.Pointer(tm)).Ftm_hour) + goto number + case int32('l'): + def_pad = int32('_') + fallthrough + case int32('I'): + val = int64((*Ttm)(unsafe.Pointer(tm)).Ftm_hour) + if !(val != 0) { + val = int64(12) + } else { + if val > int64(12) { + val -= int64(12) + } + } + goto number + case int32('j'): + val = int64((*Ttm)(unsafe.Pointer(tm)).Ftm_yday + int32(1)) + width = int32(3) + goto number + case int32('k'): + val = int64((*Ttm)(unsafe.Pointer(tm)).Ftm_hour) + def_pad = int32('_') + goto number + case int32('m'): + val = int64((*Ttm)(unsafe.Pointer(tm)).Ftm_mon + int32(1)) + goto number + case int32('M'): + val = int64((*Ttm)(unsafe.Pointer(tm)).Ftm_min) + goto number + case int32('n'): + *(*Tsize_t)(unsafe.Pointer(l)) = uint64(1) + return __ccgo_ts + 301 + case int32('p'): + if (*Ttm)(unsafe.Pointer(tm)).Ftm_hour >= int32(12) { + v1 = int32(PM_STR) + } else { + v1 = int32(AM_STR) + } + item = v1 + goto nl_strcat + case int32('P'): + if (*Ttm)(unsafe.Pointer(tm)).Ftm_hour >= int32(12) { + v2 = int32(PM_STR) + } else { + v2 = int32(AM_STR) + } + item = v2 + fmt = X__nl_langinfo_l(tls, item, loc) + d = s + *(*Tsize_t)(unsafe.Pointer(l)) = uint64(0) + for { + if !(*(*uint8)(unsafe.Pointer(fmt)) != 0) { + break + } + v4 = d + d++ + v5 = fmt + fmt++ + *(*uint8)(unsafe.Pointer(v4)) = uint8(Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(v5))))) + goto _3 + _3: + ; + *(*Tsize_t)(unsafe.Pointer(l))++ + } + return s + case int32('r'): + item = int32(T_FMT_AMPM) + goto nl_strftime + case int32('R'): + fmt = __ccgo_ts + 1826 + goto recu_strftime + case int32('s'): + val = X__tm_to_secs(tls, tm) - (*Ttm)(unsafe.Pointer(tm)).F__tm_gmtoff + width = int32(1) + goto number + case int32('S'): + val = int64((*Ttm)(unsafe.Pointer(tm)).Ftm_sec) + goto number + case int32('t'): + *(*Tsize_t)(unsafe.Pointer(l)) = uint64(1) + return __ccgo_ts + 1400 + case int32('T'): + fmt = __ccgo_ts + 1832 + goto recu_strftime + case int32('u'): + if (*Ttm)(unsafe.Pointer(tm)).Ftm_wday != 0 { + v6 = (*Ttm)(unsafe.Pointer(tm)).Ftm_wday + } else { + v6 = int32(7) + } + val = int64(v6) + width = int32(1) + goto number + case int32('U'): + val = int64((uint32((*Ttm)(unsafe.Pointer(tm)).Ftm_yday) + uint32(7) - uint32((*Ttm)(unsafe.Pointer(tm)).Ftm_wday)) / uint32(7)) + goto number + case int32('W'): + val = int64((uint32((*Ttm)(unsafe.Pointer(tm)).Ftm_yday) + uint32(7) - (uint32((*Ttm)(unsafe.Pointer(tm)).Ftm_wday)+uint32(6))%uint32(7)) / uint32(7)) + goto number + case int32('V'): + val = int64(_week_num(tls, tm)) + goto number + case int32('w'): + val = int64((*Ttm)(unsafe.Pointer(tm)).Ftm_wday) + width = int32(1) + goto number + case int32('x'): + item = int32(D_FMT) + goto nl_strftime + case int32('X'): + item = int32(T_FMT) + goto nl_strftime + case int32('y'): + val = (int64((*Ttm)(unsafe.Pointer(tm)).Ftm_year) + int64(1900)) % int64(100) + if val < 0 { + val = -val + } + goto number + case int32('Y'): + val = int64((*Ttm)(unsafe.Pointer(tm)).Ftm_year) + int64(1900) + if val >= int64(10000) { + *(*Tsize_t)(unsafe.Pointer(l)) = uint64(Xsnprintf(tls, s, uint64(100), __ccgo_ts+1841, VaList(bp+8, val))) + return s + } + width = int32(4) + goto number + case int32('z'): + if (*Ttm)(unsafe.Pointer(tm)).Ftm_isdst < 0 { + *(*Tsize_t)(unsafe.Pointer(l)) = uint64(0) + return __ccgo_ts + } + *(*Tsize_t)(unsafe.Pointer(l)) = uint64(Xsnprintf(tls, s, uint64(100), __ccgo_ts+1847, VaList(bp+8, (*Ttm)(unsafe.Pointer(tm)).F__tm_gmtoff/int64(3600)*int64(100)+(*Ttm)(unsafe.Pointer(tm)).F__tm_gmtoff%int64(3600)/int64(60)))) + return s + case int32('Z'): + if (*Ttm)(unsafe.Pointer(tm)).Ftm_isdst < 0 { + *(*Tsize_t)(unsafe.Pointer(l)) = uint64(0) + return __ccgo_ts + } + fmt = X__tm_to_tzname(tls, tm) + goto string + case int32('%'): + *(*Tsize_t)(unsafe.Pointer(l)) = uint64(1) + return __ccgo_ts + 348 + default: + return uintptr(0) + } + goto number +number: + ; + if pad != 0 { + v7 = pad + } else { + v7 = def_pad + } + switch v7 { + case int32('-'): + *(*Tsize_t)(unsafe.Pointer(l)) = uint64(Xsnprintf(tls, s, uint64(100), __ccgo_ts+1854, VaList(bp+8, val))) + case int32('_'): + *(*Tsize_t)(unsafe.Pointer(l)) = uint64(Xsnprintf(tls, s, uint64(100), __ccgo_ts+1859, VaList(bp+8, width, val))) + case int32('0'): + fallthrough + default: + *(*Tsize_t)(unsafe.Pointer(l)) = uint64(Xsnprintf(tls, s, uint64(100), __ccgo_ts+1865, VaList(bp+8, width, val))) + break + } + return s + goto nl_strcat +nl_strcat: + ; + fmt = X__nl_langinfo_l(tls, item, loc) + goto string +string: + ; + *(*Tsize_t)(unsafe.Pointer(l)) = Xstrlen(tls, fmt) + return fmt + goto nl_strftime +nl_strftime: + ; + fmt = X__nl_langinfo_l(tls, item, loc) + goto recu_strftime +recu_strftime: + ; + *(*Tsize_t)(unsafe.Pointer(l)) = X__strftime_l(tls, s, uint64(100), fmt, tm, loc) + if !(*(*Tsize_t)(unsafe.Pointer(l)) != 0) { + return uintptr(0) + } + return s +} + +func X__strftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v f=%v tm=%v loc=%v, (%v:)", tls, s, n, f, tm, loc, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(128) + defer tls.Free(128) + var d, l, v10, v12, v2, v7 Tsize_t + var pad, plus, v4, v8 int32 + var t, v3 uintptr + var width uint64 + var v9 bool + var _ /* buf at bp+8 */ [100]uint8 + var _ /* k at bp+0 */ Tsize_t + var _ /* p at bp+112 */ uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = d, l, pad, plus, t, width, v10, v12, v2, v3, v4, v7, v8, v9 + l = uint64(0) + for { + if !(l < n) { + break + } + if !(*(*uint8)(unsafe.Pointer(f)) != 0) { + *(*uint8)(unsafe.Pointer(s + uintptr(l))) = uint8(0) + return l + } + if int32(*(*uint8)(unsafe.Pointer(f))) != int32('%') { + v2 = l + l++ + *(*uint8)(unsafe.Pointer(s + uintptr(v2))) = *(*uint8)(unsafe.Pointer(f)) + goto _1 + } + f++ + pad = 0 + if int32(*(*uint8)(unsafe.Pointer(f))) == int32('-') || int32(*(*uint8)(unsafe.Pointer(f))) == int32('_') || int32(*(*uint8)(unsafe.Pointer(f))) == int32('0') { + v3 = f + f++ + pad = int32(*(*uint8)(unsafe.Pointer(v3))) + } + v4 = BoolInt32(int32(*(*uint8)(unsafe.Pointer(f))) == Int32FromUint8('+')) + plus = v4 + if v4 != 0 { + f++ + } + if BoolInt32(uint32(*(*uint8)(unsafe.Pointer(f)))-uint32('0') < uint32(10)) != 0 { + width = Xstrtoul(tls, f, bp+112, int32(10)) + } else { + width = uint64(0) + *(*uintptr)(unsafe.Pointer(bp + 112)) = f + } + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 112))))) == int32('C') || int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 112))))) == int32('F') || int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 112))))) == int32('G') || int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 112))))) == int32('Y') { + if !(width != 0) && *(*uintptr)(unsafe.Pointer(bp + 112)) != f { + width = uint64(1) + } + } else { + width = uint64(0) + } + f = *(*uintptr)(unsafe.Pointer(bp + 112)) + if int32(*(*uint8)(unsafe.Pointer(f))) == int32('E') || int32(*(*uint8)(unsafe.Pointer(f))) == int32('O') { + f++ + } + t = X__strftime_fmt_1(tls, bp+8, bp, int32(*(*uint8)(unsafe.Pointer(f))), tm, loc, pad) + if !(t != 0) { + break + } + if width != 0 { + /* Trim off any sign and leading zeros, then + * count remaining digits to determine behavior + * for the + flag. */ + if int32(*(*uint8)(unsafe.Pointer(t))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(t))) == int32('-') { + t++ + *(*Tsize_t)(unsafe.Pointer(bp))-- + } + for { + if !(int32(*(*uint8)(unsafe.Pointer(t))) == int32('0') && uint32(int32(*(*uint8)(unsafe.Pointer(t + 1)))-int32('0')) < uint32(10)) { + break + } + goto _5 + _5: + ; + t++ + *(*Tsize_t)(unsafe.Pointer(bp))-- + } + if width < *(*Tsize_t)(unsafe.Pointer(bp)) { + width = *(*Tsize_t)(unsafe.Pointer(bp)) + } + d = uint64(0) + for { + if !(uint32(int32(*(*uint8)(unsafe.Pointer(t + uintptr(d))))-int32('0')) < uint32(10)) { + break + } + goto _6 + _6: + ; + d++ + } + if (*Ttm)(unsafe.Pointer(tm)).Ftm_year < -int32(1900) { + v7 = l + l++ + *(*uint8)(unsafe.Pointer(s + uintptr(v7))) = uint8('-') + width-- + } else { + if v9 = plus != 0; v9 { + if int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 112))))) == int32('C') { + v8 = int32(3) + } else { + v8 = int32(5) + } + } + if v9 && d+(width-*(*Tsize_t)(unsafe.Pointer(bp))) >= uint64(v8) { + v10 = l + l++ + *(*uint8)(unsafe.Pointer(s + uintptr(v10))) = uint8('+') + width-- + } + } + for { + if !(width > *(*Tsize_t)(unsafe.Pointer(bp)) && l < n) { + break + } + v12 = l + l++ + *(*uint8)(unsafe.Pointer(s + uintptr(v12))) = uint8('0') + goto _11 + _11: + ; + width-- + } + } + if *(*Tsize_t)(unsafe.Pointer(bp)) > n-l { + *(*Tsize_t)(unsafe.Pointer(bp)) = n - l + } + Xmemcpy(tls, s+uintptr(l), t, *(*Tsize_t)(unsafe.Pointer(bp))) + l += *(*Tsize_t)(unsafe.Pointer(bp)) + goto _1 + _1: + ; + f++ + } + if n != 0 { + if l == n { + l = n - uint64(1) + } + *(*uint8)(unsafe.Pointer(s + uintptr(l))) = uint8(0) + } + return uint64(0) +} + +func Xstrftime(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v f=%v tm=%v, (%v:)", tls, s, n, f, tm, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__strftime_l(tls, s, n, f, tm, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale) +} + +func Xstrftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v f=%v tm=%v loc=%v, (%v:)", tls, s, n, f, tm, loc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__strftime_l(tls, s, n, f, tm, loc) +} + +func Xstrptime(tls *TLS, s uintptr, f uintptr, tm uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v f=%v tm=%v, (%v:)", tls, s, f, tm, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var adj, i, min, neg, range1, w, want_century, v1, v2, v45, v46, v5, v53, v6 int32 + var dest, ex, v49, v51, v54, v9 uintptr + var len1 Tsize_t + var v48, v8 bool + var _ /* century at bp+4 */ int32 + var _ /* dummy at bp+0 */ int32 + var _ /* new_f at bp+16 */ uintptr + var _ /* relyear at bp+8 */ int32 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = adj, dest, ex, i, len1, min, neg, range1, w, want_century, v1, v2, v45, v46, v48, v49, v5, v51, v53, v54, v6, v8, v9 + want_century = 0 + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + for *(*uint8)(unsafe.Pointer(f)) != 0 { + if int32(*(*uint8)(unsafe.Pointer(f))) != int32('%') { + v1 = int32(*(*uint8)(unsafe.Pointer(f))) + v2 = BoolInt32(v1 == int32(' ') || uint32(v1)-uint32('\t') < uint32(5)) + goto _3 + _3: + if v2 != 0 { + for { + if v8 = *(*uint8)(unsafe.Pointer(s)) != 0; v8 { + v5 = int32(*(*uint8)(unsafe.Pointer(s))) + v6 = BoolInt32(v5 == int32(' ') || uint32(v5)-uint32('\t') < uint32(5)) + goto _7 + _7: + } + if !(v8 && v6 != 0) { + break + } + goto _4 + _4: + ; + s++ + } + } else { + if int32(*(*uint8)(unsafe.Pointer(s))) != int32(*(*uint8)(unsafe.Pointer(f))) { + return uintptr(0) + } else { + s++ + } + } + f++ + continue + } + f++ + if int32(*(*uint8)(unsafe.Pointer(f))) == int32('+') { + f++ + } + if BoolInt32(uint32(*(*uint8)(unsafe.Pointer(f)))-uint32('0') < uint32(10)) != 0 { + w = int32(Xstrtoul(tls, f, bp+16, int32(10))) + f = *(*uintptr)(unsafe.Pointer(bp + 16)) + } else { + w = -int32(1) + } + adj = 0 + v9 = f + f++ + switch int32(*(*uint8)(unsafe.Pointer(v9))) { + case int32('A'): + goto _10 + case int32('a'): + goto _11 + case int32('h'): + goto _12 + case int32('B'): + goto _13 + case int32('b'): + goto _14 + case int32('c'): + goto _15 + case int32('C'): + goto _16 + case int32('e'): + goto _17 + case int32('d'): + goto _18 + case int32('D'): + goto _19 + case int32('H'): + goto _20 + case int32('I'): + goto _21 + case int32('j'): + goto _22 + case int32('m'): + goto _23 + case int32('M'): + goto _24 + case int32('t'): + goto _25 + case int32('n'): + goto _26 + case int32('p'): + goto _27 + case int32('r'): + goto _28 + case int32('R'): + goto _29 + case int32('S'): + goto _30 + case int32('T'): + goto _31 + case int32('W'): + goto _32 + case int32('U'): + goto _33 + case int32('w'): + goto _34 + case int32('x'): + goto _35 + case int32('X'): + goto _36 + case int32('y'): + goto _37 + case int32('Y'): + goto _38 + case int32('%'): + goto _39 + default: + goto _40 + } + goto _41 + _11: + ; + _10: + ; + dest = tm + 24 + min = int32(ABDAY_1) + range1 = int32(7) + goto symbolic_range + _14: + ; + _13: + ; + _12: + ; + dest = tm + 16 + min = int32(ABMON_1) + range1 = int32(12) + goto symbolic_range + _15: + ; + s = Xstrptime(tls, s, Xnl_langinfo(tls, int32(D_T_FMT)), tm) + if !(s != 0) { + return uintptr(0) + } + goto _41 + _16: + ; + dest = bp + 4 + if w < 0 { + w = int32(2) + } + want_century |= int32(2) + goto numeric_digits + _18: + ; + _17: + ; + dest = tm + 12 + min = int32(1) + range1 = int32(31) + goto numeric_range + _19: + ; + s = Xstrptime(tls, s, __ccgo_ts+1808, tm) + if !(s != 0) { + return uintptr(0) + } + goto _41 + _20: + ; + dest = tm + 8 + min = 0 + range1 = int32(24) + goto numeric_range + _21: + ; + dest = tm + 8 + min = int32(1) + range1 = int32(12) + goto numeric_range + _22: + ; + dest = tm + 28 + min = int32(1) + range1 = int32(366) + adj = int32(1) + goto numeric_range + _23: + ; + dest = tm + 16 + min = int32(1) + range1 = int32(12) + adj = int32(1) + goto numeric_range + _24: + ; + dest = tm + 4 + min = 0 + range1 = int32(60) + goto numeric_range + _26: + ; + _25: + ; + _44: + ; + if v48 = *(*uint8)(unsafe.Pointer(s)) != 0; v48 { + v45 = int32(*(*uint8)(unsafe.Pointer(s))) + v46 = BoolInt32(v45 == int32(' ') || uint32(v45)-uint32('\t') < uint32(5)) + goto _47 + _47: + } + if !(v48 && v46 != 0) { + goto _42 + } + goto _43 + _43: + ; + s++ + goto _44 + goto _42 + _42: + ; + goto _41 + _27: + ; + ex = Xnl_langinfo(tls, int32(AM_STR)) + len1 = Xstrlen(tls, ex) + if !(Xstrncasecmp(tls, s, ex, len1) != 0) { + *(*int32)(unsafe.Pointer(tm + 8)) %= int32(12) + s += uintptr(len1) + goto _41 + } + ex = Xnl_langinfo(tls, int32(PM_STR)) + len1 = Xstrlen(tls, ex) + if !(Xstrncasecmp(tls, s, ex, len1) != 0) { + *(*int32)(unsafe.Pointer(tm + 8)) %= int32(12) + *(*int32)(unsafe.Pointer(tm + 8)) += int32(12) + s += uintptr(len1) + goto _41 + } + return uintptr(0) + _28: + ; + s = Xstrptime(tls, s, Xnl_langinfo(tls, int32(T_FMT_AMPM)), tm) + if !(s != 0) { + return uintptr(0) + } + goto _41 + _29: + ; + s = Xstrptime(tls, s, __ccgo_ts+1826, tm) + if !(s != 0) { + return uintptr(0) + } + goto _41 + _30: + ; + dest = tm + min = 0 + range1 = int32(61) + goto numeric_range + _31: + ; + s = Xstrptime(tls, s, __ccgo_ts+1832, tm) + if !(s != 0) { + return uintptr(0) + } + goto _41 + _33: + ; + _32: + ; + /* Throw away result, for now. (FIXME?) */ + dest = bp + min = 0 + range1 = int32(54) + goto numeric_range + _34: + ; + dest = tm + 24 + min = 0 + range1 = int32(7) + goto numeric_range + _35: + ; + s = Xstrptime(tls, s, Xnl_langinfo(tls, int32(D_FMT)), tm) + if !(s != 0) { + return uintptr(0) + } + goto _41 + _36: + ; + s = Xstrptime(tls, s, Xnl_langinfo(tls, int32(T_FMT)), tm) + if !(s != 0) { + return uintptr(0) + } + goto _41 + _37: + ; + dest = bp + 8 + w = int32(2) + want_century |= int32(1) + goto numeric_digits + _38: + ; + dest = tm + 20 + if w < 0 { + w = int32(4) + } + adj = int32(1900) + want_century = 0 + goto numeric_digits + _39: + ; + v49 = s + s++ + if int32(*(*uint8)(unsafe.Pointer(v49))) != int32('%') { + return uintptr(0) + } + goto _41 + _40: + ; + return uintptr(0) + goto numeric_range + numeric_range: + ; + if !(BoolInt32(uint32(*(*uint8)(unsafe.Pointer(s)))-Uint32FromUint8('0') < Uint32FromInt32(10)) != 0) { + return uintptr(0) + } + *(*int32)(unsafe.Pointer(dest)) = 0 + i = int32(1) + for { + if !(i <= min+range1 && BoolInt32(uint32(*(*uint8)(unsafe.Pointer(s)))-uint32('0') < uint32(10)) != 0) { + break + } + v51 = s + s++ + *(*int32)(unsafe.Pointer(dest)) = *(*int32)(unsafe.Pointer(dest))*int32(10) + int32(*(*uint8)(unsafe.Pointer(v51))) - int32('0') + goto _50 + _50: + ; + i *= int32(10) + } + if uint32(*(*int32)(unsafe.Pointer(dest))-min) >= uint32(range1) { + return uintptr(0) + } + *(*int32)(unsafe.Pointer(dest)) -= adj + switch int64(dest) - int64(tm) { + case int64(uint64(UintptrFromInt32(0) + 28)): + } + goto update + goto numeric_digits + numeric_digits: + ; + neg = 0 + if int32(*(*uint8)(unsafe.Pointer(s))) == int32('+') { + s++ + } else { + if int32(*(*uint8)(unsafe.Pointer(s))) == int32('-') { + neg = int32(1) + s++ + } + } + if !(BoolInt32(uint32(*(*uint8)(unsafe.Pointer(s)))-Uint32FromUint8('0') < Uint32FromInt32(10)) != 0) { + return uintptr(0) + } + v53 = Int32FromInt32(0) + i = v53 + *(*int32)(unsafe.Pointer(dest)) = v53 + for { + if !(i < w && BoolInt32(uint32(*(*uint8)(unsafe.Pointer(s)))-uint32('0') < uint32(10)) != 0) { + break + } + v54 = s + s++ + *(*int32)(unsafe.Pointer(dest)) = *(*int32)(unsafe.Pointer(dest))*int32(10) + int32(*(*uint8)(unsafe.Pointer(v54))) - int32('0') + goto _52 + _52: + ; + i++ + } + if neg != 0 { + *(*int32)(unsafe.Pointer(dest)) = -*(*int32)(unsafe.Pointer(dest)) + } + *(*int32)(unsafe.Pointer(dest)) -= adj + goto update + goto symbolic_range + symbolic_range: + ; + i = int32(2)*range1 - int32(1) + for { + if !(i >= 0) { + break + } + ex = Xnl_langinfo(tls, min+i) + len1 = Xstrlen(tls, ex) + if Xstrncasecmp(tls, s, ex, len1) != 0 { + goto _55 + } + s += uintptr(len1) + *(*int32)(unsafe.Pointer(dest)) = i % range1 + break + goto _55 + _55: + ; + i-- + } + if i < 0 { + return uintptr(0) + } + goto update + goto update + update: + ; + //FIXME + _41: + } + if want_century != 0 { + (*Ttm)(unsafe.Pointer(tm)).Ftm_year = *(*int32)(unsafe.Pointer(bp + 8)) + if want_century&int32(2) != 0 { + *(*int32)(unsafe.Pointer(tm + 20)) += *(*int32)(unsafe.Pointer(bp + 4))*int32(100) - int32(1900) + } else { + if (*Ttm)(unsafe.Pointer(tm)).Ftm_year <= int32(68) { + *(*int32)(unsafe.Pointer(tm + 20)) += int32(100) + } + } + } + return s +} + +func Xtime(tls *TLS, t uintptr) (r Ttime_t) { + if __ccgo_strace { + trc("tls=%v t=%v, (%v:)", tls, t, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* ts at bp+0 */ Ttimespec + X__clock_gettime(tls, CLOCK_REALTIME, bp) + if t != 0 { + *(*Ttime_t)(unsafe.Pointer(t)) = (*(*Ttimespec)(unsafe.Pointer(bp))).Ftv_sec + } + return (*(*Ttimespec)(unsafe.Pointer(bp))).Ftv_sec +} + +func Xtimegm(tls *TLS, tm uintptr) (r Ttime_t) { + if __ccgo_strace { + trc("tls=%v tm=%v, (%v:)", tls, tm, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(64) + defer tls.Free(64) + var t int64 + var _ /* new at bp+0 */ Ttm1 + _ = t + t = X__tm_to_secs(tls, tm) + if X__secs_to_tm(tls, t, bp) < 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOVERFLOW) + return int64(-int32(1)) + } + *(*Ttm1)(unsafe.Pointer(tm)) = *(*Ttm1)(unsafe.Pointer(bp)) + (*Ttm1)(unsafe.Pointer(tm)).Ftm_isdst = 0 + (*Ttm1)(unsafe.Pointer(tm)).Ftm_gmtoff = 0 + (*Ttm1)(unsafe.Pointer(tm)).Ftm_zone = uintptr(unsafe.Pointer(&X__utc)) + return t +} + +func Xtimer_delete(tls *TLS, t Ttimer_t) (r int32) { + if __ccgo_strace { + trc("tls=%v t=%v, (%v:)", tls, t, origin(2)) + defer func() { trc("-> %v", r) }() + } + var td Tpthread_t + _ = td + if int64(t) < 0 { + td = uintptr(uint64(t) << Int32FromInt32(1)) + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+1872) + AtomicStorePInt32(td+148, AtomicLoadPInt32(td+148)|(-Int32FromInt32(1)-Int32FromInt32(0x7fffffff))) + // __asm__ __volatile__ ("dmb ish" : : : "memory"); + X__assert_fail(tls, __ccgo_ts+350, __ccgo_ts+385, 20, __ccgo_ts+1872) + X__syscall2(tls, int64(SYS_tkill), int64((*t__pthread)(unsafe.Pointer(td)).Ftid), int64(Int32FromInt32(SIGTIMER))) + return 0 + } + return int32(X__syscall1(tls, int64(SYS_timer_delete), int64(t))) +} + +func Xtimer_getoverrun(tls *TLS, t Ttimer_t) (r int32) { + if __ccgo_strace { + trc("tls=%v t=%v, (%v:)", tls, t, origin(2)) + defer func() { trc("-> %v", r) }() + } + var td Tpthread_t + _ = td + if int64(t) < 0 { + td = uintptr(uint64(t) << Int32FromInt32(1)) + t = uintptr(uint64(AtomicLoadPInt32(td+148) & Int32FromInt32(INT_MAX))) + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_timer_getoverrun), int64(t))))) +} + +func Xtimer_gettime(tls *TLS, t Ttimer_t, val uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v t=%v val=%v, (%v:)", tls, t, val, origin(2)) + defer func() { trc("-> %v", r) }() + } + var td Tpthread_t + _ = td + if int64(t) < 0 { + td = uintptr(uint64(t) << Int32FromInt32(1)) + t = uintptr(uint64(AtomicLoadPInt32(td+148) & Int32FromInt32(INT_MAX))) + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_timer_gettime), int64(t), int64(val))))) +} + +func Xtimer_settime(tls *TLS, t Ttimer_t, flags int32, val uintptr, old uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v t=%v flags=%v val=%v old=%v, (%v:)", tls, t, flags, val, old, origin(2)) + defer func() { trc("-> %v", r) }() + } + var td Tpthread_t + _ = td + if int64(t) < 0 { + td = uintptr(uint64(t) << Int32FromInt32(1)) + t = uintptr(uint64(AtomicLoadPInt32(td+148) & Int32FromInt32(INT_MAX))) + } + return int32(X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_timer_settime), int64(t), int64(flags), int64(val), int64(old))))) +} + +type Ttms = struct { + Ftms_utime Tclock_t + Ftms_stime Tclock_t + Ftms_cutime Tclock_t + Ftms_cstime Tclock_t +} + +func Xtimes(tls *TLS, tms uintptr) (r Tclock_t) { + if __ccgo_strace { + trc("tls=%v tms=%v, (%v:)", tls, tms, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall1(tls, int64(SYS_times), int64(tms)) +} + +// C documentation +// +// /* There is no other implemented value than TIME_UTC; all other values +// * are considered erroneous. */ +func Xtimespec_get(tls *TLS, ts uintptr, base int32) (r int32) { + if __ccgo_strace { + trc("tls=%v ts=%v base=%v, (%v:)", tls, ts, base, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ret, v1 int32 + _, _ = ret, v1 + if base != int32(TIME_UTC) { + return 0 + } + ret = X__clock_gettime(tls, CLOCK_REALTIME, ts) + if ret < 0 { + v1 = 0 + } else { + v1 = base + } + return v1 +} + +type Tutimbuf = struct { + Factime Ttime_t + Fmodtime Ttime_t +} + +func Xutime(tls *TLS, path uintptr, times uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v times=%v, (%v:)", tls, path, times, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var v1 uintptr + _ = v1 + if times != 0 { + *(*[2]Ttimespec)(unsafe.Pointer(bp)) = [2]Ttimespec{ + 0: { + Ftv_sec: (*Tutimbuf)(unsafe.Pointer(times)).Factime, + }, + 1: { + Ftv_sec: (*Tutimbuf)(unsafe.Pointer(times)).Fmodtime, + }, + } + v1 = bp + } else { + v1 = uintptr(0) + } + return Xutimensat(tls, -int32(100), path, v1, 0) +} + +func X__wcsftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v f=%v tm=%v loc=%v, (%v:)", tls, s, n, f, tm, loc, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(528) + defer tls.Free(528) + var l, v2, v6, v7, v9 Tsize_t + var pad, plus, v4 int32 + var t, t_mb, v3 uintptr + var width uint64 + var _ /* buf at bp+8 */ [100]uint8 + var _ /* k at bp+0 */ Tsize_t + var _ /* p at bp+512 */ uintptr + var _ /* wbuf at bp+108 */ [100]Twchar_t + _, _, _, _, _, _, _, _, _, _, _, _ = l, pad, plus, t, t_mb, width, v2, v3, v4, v6, v7, v9 + l = uint64(0) + for { + if !(l < n) { + break + } + if !(*(*Twchar_t)(unsafe.Pointer(f)) != 0) { + *(*Twchar_t)(unsafe.Pointer(s + uintptr(l)*4)) = uint32(0) + return l + } + if *(*Twchar_t)(unsafe.Pointer(f)) != uint32('%') { + v2 = l + l++ + *(*Twchar_t)(unsafe.Pointer(s + uintptr(v2)*4)) = *(*Twchar_t)(unsafe.Pointer(f)) + goto _1 + } + f += 4 + pad = 0 + if *(*Twchar_t)(unsafe.Pointer(f)) == uint32('-') || *(*Twchar_t)(unsafe.Pointer(f)) == uint32('_') || *(*Twchar_t)(unsafe.Pointer(f)) == uint32('0') { + v3 = f + f += 4 + pad = int32(*(*Twchar_t)(unsafe.Pointer(v3))) + } + v4 = BoolInt32(*(*Twchar_t)(unsafe.Pointer(f)) == Uint32FromUint8('+')) + plus = v4 + if v4 != 0 { + f += 4 + } + width = Xwcstoul(tls, f, bp+512, int32(10)) + if *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 512)))) == uint32('C') || *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 512)))) == uint32('F') || *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 512)))) == uint32('G') || *(*Twchar_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 512)))) == uint32('Y') { + if !(width != 0) && *(*uintptr)(unsafe.Pointer(bp + 512)) != f { + width = uint64(1) + } + } else { + width = uint64(0) + } + f = *(*uintptr)(unsafe.Pointer(bp + 512)) + if *(*Twchar_t)(unsafe.Pointer(f)) == uint32('E') || *(*Twchar_t)(unsafe.Pointer(f)) == uint32('O') { + f += 4 + } + t_mb = X__strftime_fmt_1(tls, bp+8, bp, int32(*(*Twchar_t)(unsafe.Pointer(f))), tm, loc, pad) + if !(t_mb != 0) { + break + } + *(*Tsize_t)(unsafe.Pointer(bp)) = Xmbstowcs(tls, bp+108, t_mb, Uint64FromInt64(400)/Uint64FromInt64(4)) + if *(*Tsize_t)(unsafe.Pointer(bp)) == uint64(-Int32FromInt32(1)) { + return uint64(0) + } + t = bp + 108 + if width != 0 { + for { + if !(*(*Twchar_t)(unsafe.Pointer(t)) == uint32('+') || *(*Twchar_t)(unsafe.Pointer(t)) == uint32('-') || *(*Twchar_t)(unsafe.Pointer(t)) == uint32('0') && *(*Twchar_t)(unsafe.Pointer(t + 1*4)) != 0) { + break + } + goto _5 + _5: + ; + t += 4 + *(*Tsize_t)(unsafe.Pointer(bp))-- + } + width-- + if plus != 0 && (*Ttm)(unsafe.Pointer(tm)).Ftm_year >= Int32FromInt32(10000)-Int32FromInt32(1900) { + v6 = l + l++ + *(*Twchar_t)(unsafe.Pointer(s + uintptr(v6)*4)) = uint32('+') + } else { + if (*Ttm)(unsafe.Pointer(tm)).Ftm_year < -int32(1900) { + v7 = l + l++ + *(*Twchar_t)(unsafe.Pointer(s + uintptr(v7)*4)) = uint32('-') + } else { + width++ + } + } + for { + if !(width > *(*Tsize_t)(unsafe.Pointer(bp)) && l < n) { + break + } + v9 = l + l++ + *(*Twchar_t)(unsafe.Pointer(s + uintptr(v9)*4)) = uint32('0') + goto _8 + _8: + ; + width-- + } + } + if *(*Tsize_t)(unsafe.Pointer(bp)) >= n-l { + *(*Tsize_t)(unsafe.Pointer(bp)) = n - l + } + Xwmemcpy(tls, s+uintptr(l)*4, t, *(*Tsize_t)(unsafe.Pointer(bp))) + l += *(*Tsize_t)(unsafe.Pointer(bp)) + goto _1 + _1: + ; + f += 4 + } + if n != 0 { + if l == n { + l = n - uint64(1) + } + *(*Twchar_t)(unsafe.Pointer(s + uintptr(l)*4)) = uint32(0) + } + return uint64(0) +} + +func Xwcsftime(tls *TLS, wcs uintptr, n Tsize_t, f uintptr, tm uintptr) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v wcs=%v n=%v f=%v tm=%v, (%v:)", tls, wcs, n, f, tm, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__wcsftime_l(tls, wcs, n, f, tm, (*t__pthread)(unsafe.Pointer(___get_tp(tls))).Flocale) +} + +func Xwcsftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) { + if __ccgo_strace { + trc("tls=%v s=%v n=%v f=%v tm=%v loc=%v, (%v:)", tls, s, n, f, tm, loc, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__wcsftime_l(tls, s, n, f, tm, loc) +} + +func X_exit(tls *TLS, status int32) { + if __ccgo_strace { + trc("tls=%v status=%v, (%v:)", tls, status, origin(2)) + } + X_Exit(tls, status) +} + +func Xaccess(tls *TLS, filename uintptr, amode int32) (r int32) { + if __ccgo_strace { + trc("tls=%v filename=%v amode=%v, (%v:)", tls, filename, amode, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_faccessat), int64(-Int32FromInt32(100)), int64(filename), int64(amode), int64(Int32FromInt32(0)))))) +} + +func Xacct(tls *TLS, filename uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v filename=%v, (%v:)", tls, filename, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_acct), int64(filename))))) +} + +func Xalarm(tls *TLS, seconds uint32) (r uint32) { + if __ccgo_strace { + trc("tls=%v seconds=%v, (%v:)", tls, seconds, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(64) + defer tls.Free(64) + var _ /* it at bp+0 */ Titimerval + var _ /* old at bp+32 */ Titimerval + *(*Titimerval)(unsafe.Pointer(bp)) = Titimerval{ + Fit_value: Ttimeval{ + Ftv_sec: int64(seconds), + }, + } + *(*Titimerval)(unsafe.Pointer(bp + 32)) = Titimerval{} + Xsetitimer(tls, ITIMER_REAL, bp, bp+32) + return uint32((*(*Titimerval)(unsafe.Pointer(bp + 32))).Fit_value.Ftv_sec + BoolInt64(!!((*(*Titimerval)(unsafe.Pointer(bp + 32))).Fit_value.Ftv_usec != 0))) +} + +func Xchdir(tls *TLS, path uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v, (%v:)", tls, path, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_chdir), int64(path))))) +} + +func Xchown(tls *TLS, path uintptr, uid Tuid_t, gid Tgid_t) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v uid=%v gid=%v, (%v:)", tls, path, uid, gid, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall5(tls, int64(SYS_fchownat), int64(-Int32FromInt32(100)), int64(path), int64(uid), int64(gid), int64(Int32FromInt32(0)))))) +} + +func _dummy12(tls *TLS, fd int32) (r int32) { + return fd +} + +func Xclose(tls *TLS, fd int32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r int32 + _ = r + fd = _dummy12(tls, fd) + r = int32(___syscall_cp(tls, int64(SYS_close), int64(fd), 0, 0, 0, 0, 0)) + if r == -int32(EINTR) { + r = 0 + } + return int32(X__syscall_ret(tls, uint64(r))) +} + +func Xctermid(tls *TLS, s uintptr) (r uintptr) { + if __ccgo_strace { + trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) + defer func() { trc("-> %v", r) }() + } + var v1 uintptr + _ = v1 + if s != 0 { + v1 = Xstrcpy(tls, s, __ccgo_ts+292) + } else { + v1 = __ccgo_ts + 292 + } + return v1 +} + +func Xdup(tls *TLS, fd int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_dup), int64(fd))))) +} + +func Xdup2(tls *TLS, old int32, new1 int32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v old=%v new1=%v, (%v:)", tls, old, new1, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, v1 int32 + _, _ = r, v1 + if old == new1 { + r = int32(X__syscall2(tls, int64(SYS_fcntl), int64(old), int64(Int32FromInt32(F_GETFD)))) + if r >= 0 { + return old + } + } else { + for { + v1 = int32(X__syscall3(tls, int64(SYS_dup3), int64(old), int64(new1), int64(Int32FromInt32(0)))) + r = v1 + if !(v1 == -int32(EBUSY)) { + break + } + } + } + return int32(X__syscall_ret(tls, uint64(r))) +} + +func X__dup3(tls *TLS, old int32, new1 int32, flags int32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v old=%v new1=%v flags=%v, (%v:)", tls, old, new1, flags, origin(2)) + defer func() { trc("-> %v", r1) }() + } + var r, v1 int32 + _, _ = r, v1 + for { + v1 = int32(X__syscall3(tls, int64(SYS_dup3), int64(old), int64(new1), int64(flags))) + r = v1 + if !(v1 == -int32(EBUSY)) { + break + } + } + return int32(X__syscall_ret(tls, uint64(r))) +} + +func Xdup3(tls *TLS, old int32, new1 int32, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v old=%v new1=%v flags=%v, (%v:)", tls, old, new1, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__dup3(tls, old, new1, flags) +} + +type Tctx1 = struct { + Ffd int32 + Ffilename uintptr + Famode int32 + Fp int32 +} + +func _checker(tls *TLS, p uintptr) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var c uintptr + var _ /* ret at bp+0 */ int32 + _ = c + c = p + if X__syscall2(tls, int64(SYS_setregid), X__syscall0(tls, int64(SYS_getegid)), int64(-Int32FromInt32(1))) != 0 || X__syscall2(tls, int64(SYS_setreuid), X__syscall0(tls, int64(SYS_geteuid)), int64(-Int32FromInt32(1))) != 0 { + X__syscall1(tls, int64(SYS_exit), int64(Int32FromInt32(1))) + } + *(*int32)(unsafe.Pointer(bp)) = int32(X__syscall4(tls, int64(SYS_faccessat), int64((*Tctx1)(unsafe.Pointer(c)).Ffd), int64((*Tctx1)(unsafe.Pointer(c)).Ffilename), int64((*Tctx1)(unsafe.Pointer(c)).Famode), int64(Int32FromInt32(0)))) + X__syscall3(tls, int64(SYS_write), int64((*Tctx1)(unsafe.Pointer(c)).Fp), int64(bp), int64(Uint64FromInt64(4))) + return 0 +} + +func Xfaccessat(tls *TLS, fd int32, filename uintptr, amode int32, flag int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v filename=%v amode=%v flag=%v, (%v:)", tls, fd, filename, amode, flag, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ret int32 + _ = ret + if flag != 0 { + ret = int32(X__syscall4(tls, int64(SYS_faccessat2), int64(fd), int64(filename), int64(amode), int64(flag))) + if ret != -int32(ENOSYS) { + return int32(X__syscall_ret(tls, uint64(ret))) + } + } + if flag & ^Int32FromInt32(AT_EACCESS) != 0 { + return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EINVAL)))) + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_faccessat), int64(fd), int64(filename), int64(amode))))) +} + +func Xfchdir(tls *TLS, fd int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var ret int32 + var _ /* buf at bp+0 */ [27]uint8 + _ = ret + ret = int32(X__syscall1(tls, int64(SYS_fchdir), int64(fd))) + if ret != -int32(EBADF) || X__syscall2(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_GETFD))) < 0 { + return int32(X__syscall_ret(tls, uint64(ret))) + } + X__procfdname(tls, bp, uint32(fd)) + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_chdir), int64(bp))))) +} + +func Xfchown(tls *TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v uid=%v gid=%v, (%v:)", tls, fd, uid, gid, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var ret int32 + var _ /* buf at bp+0 */ [27]uint8 + _ = ret + ret = int32(X__syscall3(tls, int64(SYS_fchown), int64(fd), int64(uid), int64(gid))) + if ret != -int32(EBADF) || X__syscall2(tls, int64(SYS_fcntl), int64(fd), int64(Int32FromInt32(F_GETFD))) < 0 { + return int32(X__syscall_ret(tls, uint64(ret))) + } + X__procfdname(tls, bp, uint32(fd)) + return int32(X__syscall_ret(tls, uint64(X__syscall5(tls, int64(SYS_fchownat), int64(-Int32FromInt32(100)), int64(bp), int64(uid), int64(gid), int64(Int32FromInt32(0)))))) +} + +func Xfchownat(tls *TLS, fd int32, path uintptr, uid Tuid_t, gid Tgid_t, flag int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v path=%v uid=%v gid=%v flag=%v, (%v:)", tls, fd, path, uid, gid, flag, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall5(tls, int64(SYS_fchownat), int64(fd), int64(path), int64(uid), int64(gid), int64(flag))))) +} + +func Xfdatasync(tls *TLS, fd int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_fdatasync), int64(fd), 0, 0, 0, 0, 0)))) +} + +func Xfsync(tls *TLS, fd int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_fsync), int64(fd), 0, 0, 0, 0, 0)))) +} + +func Xftruncate(tls *TLS, fd int32, length Toff_t) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v length=%v, (%v:)", tls, fd, length, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_ftruncate), int64(fd), length)))) +} + +func Xgetcwd(tls *TLS, buf uintptr, size Tsize_t) (r uintptr) { + if __ccgo_strace { + trc("tls=%v buf=%v size=%v, (%v:)", tls, buf, size, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ret int64 + var tmp, v3 uintptr + var v1 t__predefined_size_t + var v2 int32 + _, _, _, _, _ = ret, tmp, v1, v2, v3 + defer func() { Xrealloc(tls, tmp, 0) }() + if buf != 0 { + v2 = int32(1) + } else { + v2 = int32(PATH_MAX) + } + v1 = uint64(v2) + tmp = Xrealloc(tls, tmp, v1) + if !(buf != 0) { + buf = tmp + size = v1 + } else { + if !(size != 0) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) + return uintptr(0) + } + } + ret = X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_getcwd), int64(buf), int64(size)))) + if ret < 0 { + return uintptr(0) + } + if ret == 0 || int32(*(*uint8)(unsafe.Pointer(buf))) != int32('/') { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOENT) + return uintptr(0) + } + if buf == tmp { + v3 = Xstrdup(tls, buf) + } else { + v3 = buf + } + return v3 +} + +func Xgetegid(tls *TLS) (r Tgid_t) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uint32(X__syscall0(tls, int64(SYS_getegid))) +} + +func Xgeteuid(tls *TLS) (r Tuid_t) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uint32(X__syscall0(tls, int64(SYS_geteuid))) +} + +func Xgetgid(tls *TLS) (r Tgid_t) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uint32(X__syscall0(tls, int64(SYS_getgid))) +} + +func Xgetgroups(tls *TLS, count int32, list uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v count=%v list=%v, (%v:)", tls, count, list, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_getgroups), int64(count), int64(list))))) +} + +func Xgethostname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v name=%v len1=%v, (%v:)", tls, name, len1, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(400) + defer tls.Free(400) + var i Tsize_t + var v2 uint8 + var v3 bool + var _ /* uts at bp+0 */ Tutsname1 + _, _, _ = i, v2, v3 + if Xuname(tls, bp) != 0 { + return -int32(1) + } + if len1 > uint64(65) { + len1 = uint64(65) + } + i = uint64(0) + for { + if v3 = i < len1; v3 { + v2 = *(*uint8)(unsafe.Pointer(bp + 65 + uintptr(i))) + *(*uint8)(unsafe.Pointer(name + uintptr(i))) = v2 + } + if !(v3 && v2 != 0) { + break + } + goto _1 + _1: + ; + i++ + } + if i != 0 && i == len1 { + *(*uint8)(unsafe.Pointer(name + uintptr(i-uint64(1)))) = uint8(0) + } + return 0 +} + +func Xgetlogin(tls *TLS) (r uintptr) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xgetenv(tls, __ccgo_ts+1885) +} + +func Xgetlogin_r(tls *TLS, name uintptr, size Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v name=%v size=%v, (%v:)", tls, name, size, origin(2)) + defer func() { trc("-> %v", r) }() + } + var logname uintptr + _ = logname + logname = Xgetlogin(tls) + if !(logname != 0) { + return int32(ENXIO) + } /* or...? */ + if Xstrlen(tls, logname) >= size { + return int32(ERANGE) + } + Xstrcpy(tls, name, logname) + return 0 +} + +func Xgetpgid(tls *TLS, pid Tpid_t) (r Tpid_t) { + if __ccgo_strace { + trc("tls=%v pid=%v, (%v:)", tls, pid, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_getpgid), int64(pid))))) +} + +func Xgetpgrp(tls *TLS) (r Tpid_t) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall1(tls, int64(SYS_getpgid), int64(Int32FromInt32(0)))) +} + +func Xgetpid(tls *TLS) (r Tpid_t) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall0(tls, int64(SYS_getpid))) +} + +func Xgetppid(tls *TLS) (r Tpid_t) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall0(tls, int64(SYS_getppid))) +} + +func Xgetsid(tls *TLS, pid Tpid_t) (r Tpid_t) { + if __ccgo_strace { + trc("tls=%v pid=%v, (%v:)", tls, pid, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall1(tls, int64(SYS_getsid), int64(pid))))) +} + +func Xgetuid(tls *TLS) (r Tuid_t) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return uint32(X__syscall0(tls, int64(SYS_getuid))) +} + +func Xisatty(tls *TLS, fd int32) (r1 int32) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var r uint64 + var _ /* wsz at bp+0 */ Twinsize + _ = r + r = uint64(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_ioctl), int64(fd), int64(Int32FromInt32(TIOCGWINSZ)), int64(bp))))) + if r == uint64(0) { + return int32(1) + } + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(EBADF) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENOTTY) + } + return 0 +} + +func Xlchown(tls *TLS, path uintptr, uid Tuid_t, gid Tgid_t) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v uid=%v gid=%v, (%v:)", tls, path, uid, gid, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall5(tls, int64(SYS_fchownat), int64(-Int32FromInt32(100)), int64(path), int64(uid), int64(gid), int64(Int32FromInt32(AT_SYMLINK_NOFOLLOW)))))) +} + +func Xlink(tls *TLS, existing uintptr, new1 uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v existing=%v new1=%v, (%v:)", tls, existing, new1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall5(tls, int64(SYS_linkat), int64(-Int32FromInt32(100)), int64(existing), int64(-Int32FromInt32(100)), int64(new1), int64(Int32FromInt32(0)))))) +} + +func Xlinkat(tls *TLS, fd1 int32, existing uintptr, fd2 int32, new1 uintptr, flag int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd1=%v existing=%v fd2=%v new1=%v flag=%v, (%v:)", tls, fd1, existing, fd2, new1, flag, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall5(tls, int64(SYS_linkat), int64(fd1), int64(existing), int64(fd2), int64(new1), int64(flag))))) +} + +func X__lseek(tls *TLS, fd int32, offset Toff_t, whence int32) (r Toff_t) { + if __ccgo_strace { + trc("tls=%v fd=%v offset=%v whence=%v, (%v:)", tls, fd, offset, whence, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_lseek), int64(fd), offset, int64(whence)))) +} + +func Xlseek(tls *TLS, fd int32, offset Toff_t, whence int32) (r Toff_t) { + if __ccgo_strace { + trc("tls=%v fd=%v offset=%v whence=%v, (%v:)", tls, fd, offset, whence, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__lseek(tls, fd, offset, whence) +} + +func Xnice(tls *TLS, inc int32) (r int32) { + if __ccgo_strace { + trc("tls=%v inc=%v, (%v:)", tls, inc, origin(2)) + defer func() { trc("-> %v", r) }() + } + var prio int32 + _ = prio + prio = inc + // Only query old priority if it can affect the result. + // This also avoids issues with integer overflow. + if inc > -Int32FromInt32(2)*Int32FromInt32(NZERO) && inc < Int32FromInt32(2)*Int32FromInt32(NZERO) { + prio += Xgetpriority(tls, PRIO_PROCESS, uint32(0)) + } + if prio > Int32FromInt32(NZERO)-Int32FromInt32(1) { + prio = Int32FromInt32(NZERO) - Int32FromInt32(1) + } + if prio < -int32(NZERO) { + prio = -int32(NZERO) + } + if Xsetpriority(tls, PRIO_PROCESS, uint32(0), prio) != 0 { + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) == int32(EACCES) { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EPERM) + } + return -int32(1) + } else { + return prio + } + return r +} + +func Xpause(tls *TLS) (r int32) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_ppoll), int64(Int32FromInt32(0)), int64(Int32FromInt32(0)), int64(Int32FromInt32(0)), int64(Int32FromInt32(0)), 0, 0)))) +} + +func Xpipe(tls *TLS, fd uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_pipe2), int64(fd), int64(Int32FromInt32(0)))))) +} + +func Xpipe2(tls *TLS, fd uintptr, flag int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v flag=%v, (%v:)", tls, fd, flag, origin(2)) + defer func() { trc("-> %v", r) }() + } + var ret int32 + _ = ret + if !(flag != 0) { + return Xpipe(tls, fd) + } + ret = int32(X__syscall2(tls, int64(SYS_pipe2), int64(fd), int64(flag))) + if ret != -int32(ENOSYS) { + return int32(X__syscall_ret(tls, uint64(ret))) + } + if flag & ^(Int32FromInt32(O_CLOEXEC)|Int32FromInt32(O_NONBLOCK)) != 0 { + return int32(X__syscall_ret(tls, uint64(-Int32FromInt32(EINVAL)))) + } + ret = Xpipe(tls, fd) + if ret != 0 { + return ret + } + if flag&int32(O_CLOEXEC) != 0 { + X__syscall3(tls, int64(SYS_fcntl), int64(*(*int32)(unsafe.Pointer(fd))), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) + X__syscall3(tls, int64(SYS_fcntl), int64(*(*int32)(unsafe.Pointer(fd + 1*4))), int64(Int32FromInt32(F_SETFD)), int64(Int32FromInt32(FD_CLOEXEC))) + } + if flag&int32(O_NONBLOCK) != 0 { + X__syscall3(tls, int64(SYS_fcntl), int64(*(*int32)(unsafe.Pointer(fd))), int64(Int32FromInt32(F_SETFL)), int64(Int32FromInt32(O_NONBLOCK))) + X__syscall3(tls, int64(SYS_fcntl), int64(*(*int32)(unsafe.Pointer(fd + 1*4))), int64(Int32FromInt32(F_SETFL)), int64(Int32FromInt32(O_NONBLOCK))) + } + return 0 +} + +func Xposix_close(tls *TLS, fd int32, flags int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v flags=%v, (%v:)", tls, fd, flags, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xclose(tls, fd) +} + +func Xpread(tls *TLS, fd int32, buf uintptr, size Tsize_t, ofs Toff_t) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v buf=%v size=%v ofs=%v, (%v:)", tls, fd, buf, size, ofs, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_pread64), int64(fd), int64(buf), int64(size), ofs, 0, 0))) +} + +func Xpreadv(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v iov=%v count=%v ofs=%v, (%v:)", tls, fd, iov, count, ofs, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_preadv), int64(fd), int64(iov), int64(count), ofs, ofs>>Int32FromInt32(32), 0))) +} + +func Xpwrite(tls *TLS, fd int32, buf uintptr, size Tsize_t, ofs Toff_t) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v buf=%v size=%v ofs=%v, (%v:)", tls, fd, buf, size, ofs, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_pwrite64), int64(fd), int64(buf), int64(size), ofs, 0, 0))) +} + +func Xpwritev(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v iov=%v count=%v ofs=%v, (%v:)", tls, fd, iov, count, ofs, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_pwritev), int64(fd), int64(iov), int64(count), ofs, ofs>>Int32FromInt32(32), 0))) +} + +func Xread(tls *TLS, fd int32, buf uintptr, count Tsize_t) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v buf=%v count=%v, (%v:)", tls, fd, buf, count, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_read), int64(fd), int64(buf), int64(count), 0, 0, 0))) +} + +func Xreadlink(tls *TLS, path uintptr, buf uintptr, bufsize Tsize_t) (r1 Tssize_t) { + if __ccgo_strace { + trc("tls=%v path=%v buf=%v bufsize=%v, (%v:)", tls, path, buf, bufsize, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var r int32 + var _ /* dummy at bp+0 */ [1]uint8 + _ = r + if !(bufsize != 0) { + buf = bp + bufsize = uint64(1) + } + r = int32(X__syscall4(tls, int64(SYS_readlinkat), int64(-Int32FromInt32(100)), int64(path), int64(buf), int64(bufsize))) + if buf == bp && r > 0 { + r = 0 + } + return X__syscall_ret(tls, uint64(r)) +} + +func Xreadlinkat(tls *TLS, fd int32, path uintptr, buf uintptr, bufsize Tsize_t) (r1 Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v path=%v buf=%v bufsize=%v, (%v:)", tls, fd, path, buf, bufsize, origin(2)) + defer func() { trc("-> %v", r1) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var r int32 + var _ /* dummy at bp+0 */ [1]uint8 + _ = r + if !(bufsize != 0) { + buf = bp + bufsize = uint64(1) + } + r = int32(X__syscall4(tls, int64(SYS_readlinkat), int64(fd), int64(path), int64(buf), int64(bufsize))) + if buf == bp && r > 0 { + r = 0 + } + return X__syscall_ret(tls, uint64(r)) +} + +func Xreadv(tls *TLS, fd int32, iov uintptr, count int32) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v iov=%v count=%v, (%v:)", tls, fd, iov, count, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_readv), int64(fd), int64(iov), int64(count), 0, 0, 0))) +} + +func Xrenameat(tls *TLS, oldfd int32, old uintptr, newfd int32, new1 uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v oldfd=%v old=%v newfd=%v new1=%v, (%v:)", tls, oldfd, old, newfd, new1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall4(tls, int64(SYS_renameat), int64(oldfd), int64(old), int64(newfd), int64(new1))))) +} + +func Xrmdir(tls *TLS, path uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v, (%v:)", tls, path, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_unlinkat), int64(-Int32FromInt32(100)), int64(path), int64(Int32FromInt32(AT_REMOVEDIR)))))) +} + +func Xsetgid(tls *TLS, gid Tgid_t) (r int32) { + if __ccgo_strace { + trc("tls=%v gid=%v, (%v:)", tls, gid, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__setxid(tls, int32(SYS_setgid), int32(gid), 0, 0) +} + +func Xsetpgid(tls *TLS, pid Tpid_t, pgid Tpid_t) (r int32) { + if __ccgo_strace { + trc("tls=%v pid=%v pgid=%v, (%v:)", tls, pid, pgid, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_setpgid), int64(pid), int64(pgid))))) +} + +func Xsetpgrp(tls *TLS) (r Tpid_t) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return Xsetpgid(tls, 0, 0) +} + +func Xsetsid(tls *TLS) (r Tpid_t) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall0(tls, int64(SYS_setsid))))) +} + +func Xsetuid(tls *TLS, uid Tuid_t) (r int32) { + if __ccgo_strace { + trc("tls=%v uid=%v, (%v:)", tls, uid, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__setxid(tls, int32(SYS_setuid), int32(uid), 0, 0) +} + +type Tctx2 = struct { + Fid int32 + Feid int32 + Fsid int32 + Fnr int32 + Fret int32 +} + +func _do_setxid(tls *TLS, p uintptr) { + var c uintptr + var ret int32 + _, _ = c, ret + c = p + if (*Tctx2)(unsafe.Pointer(c)).Fret < 0 { + return + } + ret = int32(X__syscall3(tls, int64((*Tctx2)(unsafe.Pointer(c)).Fnr), int64((*Tctx2)(unsafe.Pointer(c)).Fid), int64((*Tctx2)(unsafe.Pointer(c)).Feid), int64((*Tctx2)(unsafe.Pointer(c)).Fsid))) + if ret != 0 && !((*Tctx2)(unsafe.Pointer(c)).Fret != 0) { + /* If one thread fails to set ids after another has already + * succeeded, forcibly killing the process is the only safe + * thing to do. State is inconsistent and dangerous. Use + * SIGKILL because it is uncatchable. */ + X__block_all_sigs(tls, uintptr(0)) + X__syscall2(tls, int64(SYS_kill), X__syscall0(tls, int64(SYS_getpid)), int64(Int32FromInt32(SIGKILL))) + } + (*Tctx2)(unsafe.Pointer(c)).Fret = ret +} + +func X__setxid(tls *TLS, nr int32, id int32, eid int32, sid int32) (r int32) { + if __ccgo_strace { + trc("tls=%v nr=%v id=%v eid=%v sid=%v, (%v:)", tls, nr, id, eid, sid, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var v1 int32 + var _ /* c at bp+0 */ Tctx2 + _ = v1 + /* ret is initially nonzero so that failure of the first thread does not + * trigger the safety kill above. */ + *(*Tctx2)(unsafe.Pointer(bp)) = Tctx2{ + Fid: id, + Feid: eid, + Fsid: sid, + Fnr: nr, + Fret: int32(1), + } + ___synccall(tls, __ccgo_fp(_do_setxid), bp) + if (*(*Tctx2)(unsafe.Pointer(bp))).Fret > 0 { + v1 = -int32(EAGAIN) + } else { + v1 = (*(*Tctx2)(unsafe.Pointer(bp))).Fret + } + return int32(X__syscall_ret(tls, uint64(v1))) +} + +func Xsleep(tls *TLS, seconds uint32) (r uint32) { + if __ccgo_strace { + trc("tls=%v seconds=%v, (%v:)", tls, seconds, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* tv at bp+0 */ Ttimespec + *(*Ttimespec)(unsafe.Pointer(bp)) = Ttimespec{ + Ftv_sec: int64(seconds), + } + if Xnanosleep(tls, bp, bp) != 0 { + return uint32((*(*Ttimespec)(unsafe.Pointer(bp))).Ftv_sec) + } + return uint32(0) +} + +func Xsymlink(tls *TLS, existing uintptr, new1 uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v existing=%v new1=%v, (%v:)", tls, existing, new1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_symlinkat), int64(existing), int64(-Int32FromInt32(100)), int64(new1))))) +} + +func Xsymlinkat(tls *TLS, existing uintptr, fd int32, new1 uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v existing=%v fd=%v new1=%v, (%v:)", tls, existing, fd, new1, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_symlinkat), int64(existing), int64(fd), int64(new1))))) +} + +func Xsync(tls *TLS) { + if __ccgo_strace { + trc("tls=%v, (%v:)", tls, origin(2)) + } + X__syscall0(tls, int64(SYS_sync)) +} + +func Xtcgetpgrp(tls *TLS, fd int32) (r Tpid_t) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var _ /* pgrp at bp+0 */ int32 + if Xioctl(tls, fd, int32(TIOCGPGRP), VaList(bp+16, bp)) < 0 { + return -int32(1) + } + return *(*int32)(unsafe.Pointer(bp)) +} + +func Xtcsetpgrp(tls *TLS, fd int32, pgrp Tpid_t) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v pgrp=%v, (%v:)", tls, fd, pgrp, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(32) + defer tls.Free(32) + var _ /* pgrp_int at bp+0 */ int32 + *(*int32)(unsafe.Pointer(bp)) = pgrp + return Xioctl(tls, fd, int32(TIOCSPGRP), VaList(bp+16, bp)) +} + +func Xtruncate(tls *TLS, path uintptr, length Toff_t) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v length=%v, (%v:)", tls, path, length, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall2(tls, int64(SYS_truncate), int64(path), length)))) +} + +/* Support signed or unsigned plain-char */ + +/* Implementation choices... */ + +/* Arbitrary numbers... */ + +/* POSIX/SUS requirements follow. These numbers come directly + * from SUS and have nothing to do with the host system. */ + +func Xttyname(tls *TLS, fd int32) (r uintptr) { + if __ccgo_strace { + trc("tls=%v fd=%v, (%v:)", tls, fd, origin(2)) + defer func() { trc("-> %v", r) }() + } + var result, v1 int32 + _, _ = result, v1 + v1 = Xttyname_r(tls, fd, uintptr(unsafe.Pointer(&_buf10)), uint64(32)) + result = v1 + if v1 != 0 { + *(*int32)(unsafe.Pointer(X__errno_location(tls))) = result + return UintptrFromInt32(0) + } + return uintptr(unsafe.Pointer(&_buf10)) +} + +var _buf10 [32]uint8 + +func Xttyname_r(tls *TLS, fd int32, name uintptr, size Tsize_t) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v name=%v size=%v, (%v:)", tls, fd, name, size, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(288) + defer tls.Free(288) + var l Tssize_t + var _ /* procname at bp+256 */ [29]uint8 + var _ /* st1 at bp+0 */ Tstat + var _ /* st2 at bp+128 */ Tstat + _ = l + if !(Xisatty(tls, fd) != 0) { + return *(*int32)(unsafe.Pointer(X__errno_location(tls))) + } + X__procfdname(tls, bp+256, uint32(fd)) + l = Xreadlink(tls, bp+256, name, size) + if l < 0 { + return *(*int32)(unsafe.Pointer(X__errno_location(tls))) + } else { + if uint64(l) == size { + return int32(ERANGE) + } + } + *(*uint8)(unsafe.Pointer(name + uintptr(l))) = uint8(0) + if Xstat(tls, name, bp) != 0 || Xfstat(tls, fd, bp+128) != 0 { + return *(*int32)(unsafe.Pointer(X__errno_location(tls))) + } + if (*(*Tstat)(unsafe.Pointer(bp))).Fst_dev != (*(*Tstat)(unsafe.Pointer(bp + 128))).Fst_dev || (*(*Tstat)(unsafe.Pointer(bp))).Fst_ino != (*(*Tstat)(unsafe.Pointer(bp + 128))).Fst_ino { + return int32(ENODEV) + } + return 0 +} + +func Xualarm(tls *TLS, value uint32, interval uint32) (r uint32) { + if __ccgo_strace { + trc("tls=%v value=%v interval=%v, (%v:)", tls, value, interval, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(64) + defer tls.Free(64) + var _ /* it at bp+0 */ Titimerval + var _ /* it_old at bp+32 */ Titimerval + *(*Titimerval)(unsafe.Pointer(bp)) = Titimerval{ + Fit_interval: Ttimeval{ + Ftv_usec: int64(interval), + }, + Fit_value: Ttimeval{ + Ftv_usec: int64(value), + }, + } + Xsetitimer(tls, ITIMER_REAL, bp, bp+32) + return uint32((*(*Titimerval)(unsafe.Pointer(bp + 32))).Fit_value.Ftv_sec*int64(1000000) + (*(*Titimerval)(unsafe.Pointer(bp + 32))).Fit_value.Ftv_usec) +} + +func Xunlink(tls *TLS, path uintptr) (r int32) { + if __ccgo_strace { + trc("tls=%v path=%v, (%v:)", tls, path, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_unlinkat), int64(-Int32FromInt32(100)), int64(path), int64(Int32FromInt32(0)))))) +} + +func Xunlinkat(tls *TLS, fd int32, path uintptr, flag int32) (r int32) { + if __ccgo_strace { + trc("tls=%v fd=%v path=%v flag=%v, (%v:)", tls, fd, path, flag, origin(2)) + defer func() { trc("-> %v", r) }() + } + return int32(X__syscall_ret(tls, uint64(X__syscall3(tls, int64(SYS_unlinkat), int64(fd), int64(path), int64(flag))))) +} + +func Xusleep(tls *TLS, useconds uint32) (r int32) { + if __ccgo_strace { + trc("tls=%v useconds=%v, (%v:)", tls, useconds, origin(2)) + defer func() { trc("-> %v", r) }() + } + bp := tls.Alloc(16) + defer tls.Free(16) + var _ /* tv at bp+0 */ Ttimespec + *(*Ttimespec)(unsafe.Pointer(bp)) = Ttimespec{ + Ftv_sec: int64(useconds / uint32(1000000)), + Ftv_nsec: int64(useconds % uint32(1000000) * uint32(1000)), + } + return Xnanosleep(tls, bp, bp) +} + +func Xwrite(tls *TLS, fd int32, buf uintptr, count Tsize_t) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v buf=%v count=%v, (%v:)", tls, fd, buf, count, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_write), int64(fd), int64(buf), int64(count), 0, 0, 0))) +} + +func Xwritev(tls *TLS, fd int32, iov uintptr, count int32) (r Tssize_t) { + if __ccgo_strace { + trc("tls=%v fd=%v iov=%v count=%v, (%v:)", tls, fd, iov, count, origin(2)) + defer func() { trc("-> %v", r) }() + } + return X__syscall_ret(tls, uint64(___syscall_cp(tls, int64(SYS_writev), int64(fd), int64(iov), int64(count), 0, 0, 0))) +} + +func __ccgo_fp(f interface{}) uintptr { + type iface [2]uintptr + return (*iface)(unsafe.Pointer(&f))[1] +} + +var X__abort_lock [1]int32 + +var X__at_quick_exit_lockptr = uintptr(unsafe.Pointer(&_lock)) + +var X__c_dot_utf8 = t__locale_map{ + Fmap1: uintptr(unsafe.Pointer(&_empty_mo)), + Fmap_size: uint64(20), + Fname: [24]uint8{'C', '.', 'U', 'T', 'F', '-', '8'}, +} + +var X__c_dot_utf8_locale = t__locale_struct{ + Fcat: [6]uintptr{ + 0: uintptr(unsafe.Pointer(&X__c_dot_utf8)), + }, +} + +var X__c_locale = t__locale_struct{} + +var Xdaylight int32 + +var X__eintr_valid_flag int32 + +var Xenviron uintptr + +var X__exp2f_data = Texp2f_data{ + Ftab: [32]Tuint64_t{ + 0: uint64(0x3ff0000000000000), + 1: uint64(0x3fefd9b0d3158574), + 2: uint64(0x3fefb5586cf9890f), + 3: uint64(0x3fef9301d0125b51), + 4: uint64(0x3fef72b83c7d517b), + 5: uint64(0x3fef54873168b9aa), + 6: uint64(0x3fef387a6e756238), + 7: uint64(0x3fef1e9df51fdee1), + 8: uint64(0x3fef06fe0a31b715), + 9: uint64(0x3feef1a7373aa9cb), + 10: uint64(0x3feedea64c123422), + 11: uint64(0x3feece086061892d), + 12: uint64(0x3feebfdad5362a27), + 13: uint64(0x3feeb42b569d4f82), + 14: uint64(0x3feeab07dd485429), + 15: uint64(0x3feea47eb03a5585), + 16: uint64(0x3feea09e667f3bcd), + 17: uint64(0x3fee9f75e8ec5f74), + 18: uint64(0x3feea11473eb0187), + 19: uint64(0x3feea589994cce13), + 20: uint64(0x3feeace5422aa0db), + 21: uint64(0x3feeb737b0cdc5e5), + 22: uint64(0x3feec49182a3f090), + 23: uint64(0x3feed503b23e255d), + 24: uint64(0x3feee89f995ad3ad), + 25: uint64(0x3feeff76f2fb5e47), + 26: uint64(0x3fef199bdd85529c), + 27: uint64(0x3fef3720dcef9069), + 28: uint64(0x3fef5818dcfba487), + 29: uint64(0x3fef7c97337b9b5f), + 30: uint64(0x3fefa4afa2a490da), + 31: uint64(0x3fefd0765b6e4540), + }, + Fshift_scaled: Float64FromFloat64(6.755399441055744e+15) / float64(Int32FromInt32(1)<>Int32FromInt32(6) | Uint32FromInt32(0x0), + 31: (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(6) | Uint32FromInt32(0x1), + 32: (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(6) | Uint32FromInt32(0x2), + 33: (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(6) | Uint32FromInt32(0x3), + 34: (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(6) | Uint32FromInt32(0x4), + 35: (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(6) | Uint32FromInt32(0x5), + 36: (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(6) | Uint32FromInt32(0x6), + 37: (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(6) | Uint32FromInt32(0x7), + 38: (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(6) | Uint32FromInt32(0x8), + 39: (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(6) | Uint32FromInt32(0x9), + 40: (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(6) | Uint32FromInt32(0xa), + 41: (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(6) | Uint32FromInt32(0xb), + 42: (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(6) | Uint32FromInt32(0xc), + 43: (Uint32FromUint32(0x40)-Uint32FromInt32(0xa0))<>Int32FromInt32(6) | Uint32FromInt32(0xd), + 44: (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(6) | Uint32FromInt32(0xe), + 45: (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(6) | Uint32FromInt32(0xf), + 46: (Uint32FromUint32(0)-Uint32FromInt32(0x90))<>Int32FromInt32(6) | (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(12) | Uint32FromInt32(0x0), + 47: (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(6) | (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(12) | Uint32FromInt32(0x1), + 48: (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(6) | (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(12) | Uint32FromInt32(0x2), + 49: (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(6) | (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(12) | Uint32FromInt32(0x3), + 50: (Uint32FromUint32(0x40)-Uint32FromInt32(0x90))<>Int32FromInt32(6) | (Uint32FromUint32(0x40)-Uint32FromInt32(0xc0))<>Int32FromInt32(12) | Uint32FromInt32(0x4), +} + +var X__gettext_lockptr = uintptr(unsafe.Pointer(&_lock1)) + +var X__hwcap Tsize_t + +var X__libc t__libc + +var X__libc_version = [6]uint8{'1', '.', '2', '.', '5'} + +var X__locale_lock [1]int32 + +var X__locale_lockptr = uintptr(unsafe.Pointer(&X__locale_lock)) + +var X__log2_data = Tlog2_data{ + Finvln2hi: float64(1.4426950407214463), + Finvln2lo: float64(1.6751713164886512e-10), + Fpoly: [6]float64{ + 0: -Float64FromFloat64(0.7213475204444882), + 1: float64(0.4808983469629985), + 2: -Float64FromFloat64(0.36067375954075914), + 3: float64(0.2885390073180969), + 4: -Float64FromFloat64(0.2404693555628422), + 5: float64(0.2061202382173603), + }, + Fpoly1: [10]float64{ + 0: -Float64FromFloat64(0.7213475204444817), + 1: float64(0.48089834696298744), + 2: -Float64FromFloat64(0.360673760222145), + 3: float64(0.2885390081805197), + 4: -Float64FromFloat64(0.24044917405728863), + 5: float64(0.2060992861022954), + 6: -Float64FromFloat64(0.18033596705327856), + 7: float64(0.1603032746063156), + 8: -Float64FromFloat64(0.14483316576701266), + 9: float64(0.13046826811283835), + }, + Ftab: [64]struct { + Finvc float64 + Flogc float64 + }{ + 0: { + Finvc: float64(1.4463276106642393), + Flogc: -Float64FromFloat64(0.5323943771486483), + }, + 1: { + Finvc: float64(1.4301675812282968), + Flogc: -Float64FromFloat64(0.516184206053822), + }, + 2: { + Finvc: float64(1.4143648676229383), + Flogc: -Float64FromFloat64(0.5001543441974263), + }, + 3: { + Finvc: float64(1.3989068970611538), + Flogc: -Float64FromFloat64(0.4842999484799293), + }, + 4: { + Finvc: float64(1.3837838957784339), + Flogc: -Float64FromFloat64(0.46861865624623533), + }, + 5: { + Finvc: float64(1.368983882697786), + Flogc: -Float64FromFloat64(0.4531054615783887), + }, + 6: { + Finvc: float64(1.3544972916324536), + Flogc: -Float64FromFloat64(0.43775750882059583), + }, + 7: { + Finvc: float64(1.3403139676437443), + Flogc: -Float64FromFloat64(0.4225709906127122), + }, + 8: { + Finvc: float64(1.3264249304188642), + Flogc: -Float64FromFloat64(0.40754302793970965), + }, + 9: { + Finvc: float64(1.3128203652112156), + Flogc: -Float64FromFloat64(0.3926695240384106), + }, + 10: { + Finvc: float64(1.299492412370217), + Flogc: -Float64FromFloat64(0.3779482100565019), + }, + 11: { + Finvc: float64(1.28643198385998), + Flogc: -Float64FromFloat64(0.36337518101890964), + }, + 12: { + Finvc: float64(1.2736319291846832), + Flogc: -Float64FromFloat64(0.3489484089425332), + }, + 13: { + Finvc: float64(1.2610838968062879), + Flogc: -Float64FromFloat64(0.33466425780738973), + }, + 14: { + Finvc: float64(1.248780314313572), + Flogc: -Float64FromFloat64(0.3205197000629596), + }, + 15: { + Finvc: float64(1.2367150450059063), + Flogc: -Float64FromFloat64(0.3065131231801388), + }, + 16: { + Finvc: float64(1.2248804968401878), + Flogc: -Float64FromFloat64(0.2926410022678283), + }, + 17: { + Finvc: float64(1.2132702353497795), + Flogc: -Float64FromFloat64(0.2789009220805383), + }, + 18: { + Finvc: float64(1.2018780785715362), + Flogc: -Float64FromFloat64(0.2652905529862437), + }, + 19: { + Finvc: float64(1.190697765061355), + Flogc: -Float64FromFloat64(0.2518072602367738), + }, + 20: { + Finvc: float64(1.1797235410550593), + Flogc: -Float64FromFloat64(0.23844881494437686), + }, + 21: { + Finvc: float64(1.1689498986205256), + Flogc: -Float64FromFloat64(0.22521309705462045), + }, + 22: { + Finvc: float64(1.158371137408455), + Flogc: -Float64FromFloat64(0.21209756102439314), + }, + 23: { + Finvc: float64(1.1479820146386086), + Flogc: -Float64FromFloat64(0.1991000395789797), + }, + 24: { + Finvc: float64(1.1377775576851088), + Flogc: -Float64FromFloat64(0.18621852970682085), + }, + 25: { + Finvc: float64(1.127753150630225), + Flogc: -Float64FromFloat64(0.17345131655361), + }, + 26: { + Finvc: float64(1.1179037012282074), + Flogc: -Float64FromFloat64(0.16079591649577196), + }, + 27: { + Finvc: float64(1.1082251967632821), + Flogc: -Float64FromFloat64(0.14825107384353942), + }, + 28: { + Finvc: float64(1.098712461056607), + Flogc: -Float64FromFloat64(0.13581387465410444), + }, + 29: { + Finvc: float64(1.0893619091634283), + Flogc: -Float64FromFloat64(0.12348332762257996), + }, + 30: { + Finvc: float64(1.0801689912316736), + Flogc: -Float64FromFloat64(0.11125703807351783), + }, + 31: { + Finvc: float64(1.071129489697672), + Flogc: -Float64FromFloat64(0.09913289918449664), + }, + 32: { + Finvc: float64(1.0622406576750423), + Flogc: -Float64FromFloat64(0.08711065531497297), + }, + 33: { + Finvc: float64(1.0534977607927976), + Flogc: -Float64FromFloat64(0.07518724771330199), + }, + 34: { + Finvc: float64(1.044897877982342), + Flogc: -Float64FromFloat64(0.06336194888240243), + }, + 35: { + Finvc: float64(1.0364370289499079), + Flogc: -Float64FromFloat64(0.0516324649456692), + }, + 36: { + Finvc: float64(1.0281122132034575), + Flogc: -Float64FromFloat64(0.039997735929773626), + }, + 37: { + Finvc: float64(1.0199202450036955), + Flogc: -Float64FromFloat64(0.028456341769015125), + }, + 38: { + Finvc: float64(1.0118577522306755), + Flogc: -Float64FromFloat64(0.017006489068080555), + }, + 39: { + Finvc: float64(1.003921649236766), + Flogc: -Float64FromFloat64(0.005646678981520381), + }, + 40: { + Finvc: float64(0.9922480467550775), + Flogc: float64(0.011227277611396858), + }, + 41: { + Finvc: float64(0.9770993366178549), + Flogc: float64(0.033422853921138085), + }, + 42: { + Finvc: float64(0.9624059787315814), + Flogc: float64(0.05528248992573026), + }, + 43: { + Finvc: float64(0.9481480598286369), + Flogc: float64(0.07681573143713649), + }, + 44: { + Finvc: float64(0.9343065931261065), + Flogc: float64(0.09803204623631245), + }, + 45: { + Finvc: float64(0.9208633936884979), + Flogc: float64(0.11894094059630334), + }, + 46: { + Finvc: float64(0.9078013641840602), + Flogc: float64(0.13955143862290242), + }, + 47: { + Finvc: float64(0.8951048181512927), + Flogc: float64(0.15987146080919956), + }, + 48: { + Finvc: float64(0.882758574260473), + Flogc: float64(0.17990916589428707), + }, + 49: { + Finvc: float64(0.8707481902241709), + Flogc: float64(0.19967252559081317), + }, + 50: { + Finvc: float64(0.8590602881746972), + Flogc: float64(0.2191687127685782), + }, + 51: { + Finvc: float64(0.8476822044336688), + Flogc: float64(0.23840459427242422), + }, + 52: { + Finvc: float64(0.8366013284053287), + Flogc: float64(0.25738780610663525), + }, + 53: { + Finvc: float64(0.8258064913621258), + Flogc: float64(0.27612433583180973), + }, + 54: { + Finvc: float64(0.8152865101579193), + Flogc: float64(0.2946209507022104), + }, + 55: { + Finvc: float64(0.8050314363208223), + Flogc: float64(0.31288297359969874), + }, + 56: { + Finvc: float64(0.7950310492640542), + Flogc: float64(0.33091689015759584), + }, + 57: { + Finvc: float64(0.7852760432487271), + Flogc: float64(0.3487282100279572), + }, + 58: { + Finvc: float64(0.7757575660314712), + Flogc: float64(0.36632223233368677), + }, + 59: { + Finvc: float64(0.7664670566588946), + Flogc: float64(0.383704309808536), + }, + 60: { + Finvc: float64(0.7573965608078645), + Flogc: float64(0.4008792246509074), + }, + 61: { + Finvc: float64(0.7485380168514022), + Flogc: float64(0.41785250494945103), + }, + 62: { + Finvc: float64(0.7398844213755009), + Flogc: float64(0.4346281724315304), + }, + 63: { + Finvc: float64(0.7314286113178112), + Flogc: float64(0.45121103315341315), + }, + }, +} + +var X__log2f_data = Tlog2f_data{ + Ftab: [16]struct { + Finvc float64 + Flogc float64 + }{ + 0: { + Finvc: float64(1.398907162146528), + Flogc: -Float64FromFloat64(0.48430022186289673), + }, + 1: { + Finvc: float64(1.3403141896637998), + Flogc: -Float64FromFloat64(0.42257122959194704), + }, + 2: { + Finvc: float64(1.286432210124115), + Flogc: -Float64FromFloat64(0.3633754347673556), + }, + 3: { + Finvc: float64(1.2367150214269895), + Flogc: -Float64FromFloat64(0.30651309567405577), + }, + 4: { + Finvc: float64(1.1906977166711752), + Flogc: -Float64FromFloat64(0.25180720160537634), + }, + 5: { + Finvc: float64(1.1479821020556429), + Flogc: -Float64FromFloat64(0.19910014943794563), + }, + 6: { + Finvc: float64(1.1082251448272158), + Flogc: -Float64FromFloat64(0.14825100623281615), + }, + 7: { + Finvc: float64(1.0711297413057381), + Flogc: -Float64FromFloat64(0.09913323807318392), + }, + 8: { + Finvc: float64(1.036437278977283), + Flogc: -Float64FromFloat64(0.051632812977629436), + }, + 9: { + Finvc: float64(1), + }, + 10: { + Finvc: float64(0.9492859795739057), + Flogc: float64(0.07508531937943004), + }, + 11: { + Finvc: float64(0.8951049428609004), + Flogc: float64(0.15987125980713107), + }, + 12: { + Finvc: float64(0.8476821620351103), + Flogc: float64(0.2384046664317681), + }, + 13: { + Finvc: float64(0.8050314851692001), + Flogc: float64(0.31288288605863257), + }, + 14: { + Finvc: float64(0.7664671008843108), + Flogc: float64(0.38370422656453185), + }, + 15: { + Finvc: float64(0.731428603316328), + Flogc: float64(0.451211048935815), + }, + }, + Fpoly: [4]float64{ + 0: -Float64FromFloat64(0.36051725506874704), + 1: float64(0.4811247078767291), + 2: -Float64FromFloat64(0.7213476299867769), + 3: float64(1.4426950186867042), + }, +} + +var X__log_data = Tlog_data{ + Fln2hi: float64(0.6931471805598903), + Fln2lo: float64(5.497923018708371e-14), + Fpoly: [5]float64{ + 0: -Float64FromFloat64(0.5000000000000001), + 1: float64(0.33333333331825593), + 2: -Float64FromFloat64(0.2499999999622955), + 3: float64(0.20000304511814496), + 4: -Float64FromFloat64(0.16667054827627667), + }, + Fpoly1: [11]float64{ + 0: -Float64FromFloat64(0.5), + 1: float64(0.3333333333333352), + 2: -Float64FromFloat64(0.24999999999998432), + 3: float64(0.19999999999320328), + 4: -Float64FromFloat64(0.16666666669929706), + 5: float64(0.14285715076560868), + 6: -Float64FromFloat64(0.12499997863982555), + 7: float64(0.11110712032936046), + 8: -Float64FromFloat64(0.10000486757818193), + 9: float64(0.09181994006195467), + 10: -Float64FromFloat64(0.08328363062289341), + }, + Ftab: [128]struct { + Finvc float64 + Flogc float64 + }{ + 0: { + Finvc: float64(1.4504249240398293), + Flogc: -Float64FromFloat64(0.3718565645633589), + }, + 1: { + Finvc: float64(1.442253508327276), + Flogc: -Float64FromFloat64(0.36620682668944937), + }, + 2: { + Finvc: float64(1.4341736174350004), + Flogc: -Float64FromFloat64(0.3605888069791945), + }, + 3: { + Finvc: float64(1.426183816329995), + Flogc: -Float64FromFloat64(0.3550022171419869), + }, + 4: { + Finvc: float64(1.4182825527052965), + Flogc: -Float64FromFloat64(0.34944666968829097), + }, + 5: { + Finvc: float64(1.4104682921759335), + Flogc: -Float64FromFloat64(0.3439217713603284), + }, + 6: { + Finvc: float64(1.4027396147468003), + Flogc: -Float64FromFloat64(0.3384271921261188), + }, + 7: { + Finvc: float64(1.3950954438932313), + Flogc: -Float64FromFloat64(0.332962831494342), + }, + 8: { + Finvc: float64(1.3875338232485754), + Flogc: -Float64FromFloat64(0.32752794345742586), + }, + 9: { + Finvc: float64(1.3800539211058593), + Flogc: -Float64FromFloat64(0.32212257167088865), + }, + 10: { + Finvc: float64(1.3726542695419708), + Flogc: -Float64FromFloat64(0.3167462884799761), + }, + 11: { + Finvc: float64(1.3653332798446802), + Flogc: -Float64FromFloat64(0.3113985598928366), + }, + 12: { + Finvc: float64(1.358090204587874), + Flogc: -Float64FromFloat64(0.3060794515165526), + }, + 13: { + Finvc: float64(1.3509234892132138), + Flogc: -Float64FromFloat64(0.300788424667644), + }, + 14: { + Finvc: float64(1.3438320840699889), + Flogc: -Float64FromFloat64(0.2955252968476998), + }, + 15: { + Finvc: float64(1.3368146974742003), + Flogc: -Float64FromFloat64(0.29028969275850613), + }, + 16: { + Finvc: float64(1.329870114677736), + Flogc: -Float64FromFloat64(0.2850812793277555), + }, + 17: { + Finvc: float64(1.322997339161106), + Flogc: -Float64FromFloat64(0.27989987391470095), + }, + 18: { + Finvc: float64(1.316195352741367), + Flogc: -Float64FromFloat64(0.27474526621870154), + }, + 19: { + Finvc: float64(1.3094628125672239), + Flogc: -Float64FromFloat64(0.2696169863701243), + }, + 20: { + Finvc: float64(1.3027990455471041), + Flogc: -Float64FromFloat64(0.26451506180308115), + }, + 21: { + Finvc: float64(1.2962024229438942), + Flogc: -Float64FromFloat64(0.2594387762767383), + }, + 22: { + Finvc: float64(1.2896726275815547), + Flogc: -Float64FromFloat64(0.2543884090981692), + }, + 23: { + Finvc: float64(1.2832080305745537), + Flogc: -Float64FromFloat64(0.24936321635129843), + }, + 24: { + Finvc: float64(1.276807885983376), + Flogc: -Float64FromFloat64(0.24436312405975968), + }, + 25: { + Finvc: float64(1.2704714060687552), + Flogc: -Float64FromFloat64(0.23938801747897287), + }, + 26: { + Finvc: float64(1.2641976054949482), + Flogc: -Float64FromFloat64(0.23443761696705678), + }, + 27: { + Finvc: float64(1.257985357514882), + Flogc: -Float64FromFloat64(0.22951151871518505), + }, + 28: { + Finvc: float64(1.2518337750655457), + Flogc: -Float64FromFloat64(0.2246094963439873), + }, + 29: { + Finvc: float64(1.2457421919097305), + Flogc: -Float64FromFloat64(0.21973149037705753), + }, + 30: { + Finvc: float64(1.2397094966625508), + Flogc: -Float64FromFloat64(0.2148770752847895), + }, + 31: { + Finvc: float64(1.2337348463589233), + Flogc: -Float64FromFloat64(0.210046029103637), + }, + 32: { + Finvc: float64(1.2278176973028803), + Flogc: -Float64FromFloat64(0.20523836373934046), + }, + 33: { + Finvc: float64(1.2219570190618474), + Flogc: -Float64FromFloat64(0.20045368751368642), + }, + 34: { + Finvc: float64(1.2161519732977757), + Flogc: -Float64FromFloat64(0.1956917537758045), + }, + 35: { + Finvc: float64(1.2104018095009725), + Flogc: -Float64FromFloat64(0.19095237845203883), + }, + 36: { + Finvc: float64(1.204705805718973), + Flogc: -Float64FromFloat64(0.18623539250290833), + }, + 37: { + Finvc: float64(1.1990631185441964), + Flogc: -Float64FromFloat64(0.18154051731551135), + }, + 38: { + Finvc: float64(1.1934733004462308), + Flogc: -Float64FromFloat64(0.1768677957431919), + }, + 39: { + Finvc: float64(1.1879350812847385), + Flogc: -Float64FromFloat64(0.17221657406412305), + }, + 40: { + Finvc: float64(1.1824481322833125), + Flogc: -Float64FromFloat64(0.16758697765942543), + }, + 41: { + Finvc: float64(1.1770114976921955), + Flogc: -Float64FromFloat64(0.16297859687290384), + }, + 42: { + Finvc: float64(1.1716248121809465), + Flogc: -Float64FromFloat64(0.15839151377804228), + }, + 43: { + Finvc: float64(1.1662869231674715), + Flogc: -Float64FromFloat64(0.15382513241456763), + }, + 44: { + Finvc: float64(1.1609977486762766), + Flogc: -Float64FromFloat64(0.14927976358922024), + }, + 45: { + Finvc: float64(1.1557563220795803), + Flogc: -Float64FromFloat64(0.14475495398119165), + }, + 46: { + Finvc: float64(1.1505619105480347), + Flogc: -Float64FromFloat64(0.14025044090817573), + }, + 47: { + Finvc: float64(1.1454138888505974), + Flogc: -Float64FromFloat64(0.1357660466685502), + }, + 48: { + Finvc: float64(1.140311877374656), + Flogc: -Float64FromFloat64(0.1313018016355727), + }, + 49: { + Finvc: float64(1.1352550225747513), + Flogc: -Float64FromFloat64(0.12685731518763532), + }, + 50: { + Finvc: float64(1.1302429094831266), + Flogc: -Float64FromFloat64(0.1224325737671279), + }, + 51: { + Finvc: float64(1.1252747693068048), + Flogc: -Float64FromFloat64(0.11802724521862729), + }, + 52: { + Finvc: float64(1.1203501571039876), + Flogc: -Float64FromFloat64(0.11364127671663482), + }, + 53: { + Finvc: float64(1.1154683327680124), + Flogc: -Float64FromFloat64(0.10927434611278386), + }, + 54: { + Finvc: float64(1.1106291463292157), + Flogc: -Float64FromFloat64(0.10492665324943573), + }, + 55: { + Finvc: float64(1.1058315813301596), + Flogc: -Float64FromFloat64(0.10059761422644442), + }, + 56: { + Finvc: float64(1.1010752177696026), + Flogc: -Float64FromFloat64(0.09628717309055901), + }, + 57: { + Finvc: float64(1.0963597137952512), + Flogc: -Float64FromFloat64(0.09199534069557558), + }, + 58: { + Finvc: float64(1.0916844827550398), + Flogc: -Float64FromFloat64(0.08772190036688698), + }, + 59: { + Finvc: float64(1.0870487291277784), + Flogc: -Float64FromFloat64(0.08346643613867855), + }, + 60: { + Finvc: float64(1.082452357388312), + Flogc: -Float64FromFloat64(0.07922916827544668), + }, + 61: { + Finvc: float64(1.0778948225025884), + Flogc: -Float64FromFloat64(0.0750099004750382), + }, + 62: { + Finvc: float64(1.0733751731601076), + Flogc: -Float64FromFloat64(0.07080805133352897), + }, + 63: { + Finvc: float64(1.068893585073351), + Flogc: -Float64FromFloat64(0.06662408085151128), + }, + 64: { + Finvc: float64(1.0644491706655506), + Flogc: -Float64FromFloat64(0.06245745471915143), + }, + 65: { + Finvc: float64(1.0600414846328305), + Flogc: -Float64FromFloat64(0.0583080438042316), + }, + 66: { + Finvc: float64(1.0556701316181605), + Flogc: -Float64FromFloat64(0.05417576112313327), + }, + 67: { + Finvc: float64(1.051334750556926), + Flogc: -Float64FromFloat64(0.050060547896805474), + }, + 68: { + Finvc: float64(1.0470347288442157), + Flogc: -Float64FromFloat64(0.045962101199052086), + }, + 69: { + Finvc: float64(1.0427699229652954), + Flogc: -Float64FromFloat64(0.04188056008865715), + }, + 70: { + Finvc: float64(1.0385395013738175), + Flogc: -Float64FromFloat64(0.03781540056183985), + }, + 71: { + Finvc: float64(1.034343418940345), + Flogc: -Float64FromFloat64(0.03376684757915882), + }, + 72: { + Finvc: float64(1.0301811073173315), + Flogc: -Float64FromFloat64(0.029734619131772888), + }, + 73: { + Finvc: float64(1.026052043621297), + Flogc: -Float64FromFloat64(0.025718470239212365), + }, + 74: { + Finvc: float64(1.0219561082336197), + Flogc: -Float64FromFloat64(0.021718543925430822), + }, + 75: { + Finvc: float64(1.0178926505784922), + Flogc: -Float64FromFloat64(0.01773446126981071), + }, + 76: { + Finvc: float64(1.0138614436244586), + Flogc: -Float64FromFloat64(0.013766252464051831), + }, + 77: { + Finvc: float64(1.0098620186501341), + Flogc: -Float64FromFloat64(0.009813706322574944), + }, + 78: { + Finvc: float64(1.0058938559734134), + Flogc: -Float64FromFloat64(0.005876555150052809), + }, + 79: { + Finvc: float64(1.00195696235014), + Flogc: -Float64FromFloat64(0.0019550499938532084), + }, + 80: { + Finvc: float64(0.9961089923088509), + Flogc: float64(0.0038985973556009412), + }, + 81: { + Finvc: float64(0.9884170338185201), + Flogc: float64(0.011650571286395461), + }, + 82: { + Finvc: float64(0.9808429191005297), + Flogc: float64(0.019342955478919066), + }, + 83: { + Finvc: float64(0.9733840169987446), + Flogc: float64(0.0269766014846482), + }, + 84: { + Finvc: float64(0.9660377568876556), + Flogc: float64(0.034552359728422744), + }, + 85: { + Finvc: float64(0.9588014945307369), + Flogc: float64(0.04207121767183253), + }, + 86: { + Finvc: float64(0.9516728569073111), + Flogc: float64(0.049533940950141186), + }, + 87: { + Finvc: float64(0.9446494635965822), + Flogc: float64(0.056941358295944156), + }, + 88: { + Finvc: float64(0.9377288993026223), + Flogc: float64(0.06429439168346107), + }, + 89: { + Finvc: float64(0.9309091073790681), + Flogc: float64(0.0715936354946507), + }, + 90: { + Finvc: float64(0.924187681612722), + Flogc: float64(0.07884010933776153), + }, + 91: { + Finvc: float64(0.9175626765599192), + Flogc: float64(0.08603438905970506), + }, + 92: { + Finvc: float64(0.9110320403624034), + Flogc: float64(0.09317721180013905), + }, + 93: { + Finvc: float64(0.9045935839762024), + Flogc: float64(0.10026951462748457), + }, + 94: { + Finvc: float64(0.8982456375922825), + Flogc: float64(0.10731170956330516), + }, + 95: { + Finvc: float64(0.8919860966782501), + Flogc: float64(0.11430473320717738), + }, + 96: { + Finvc: float64(0.8858131121185129), + Flogc: float64(0.12124928503033061), + }, + 97: { + Finvc: float64(0.879725075760676), + Flogc: float64(0.12814583422959913), + }, + 98: { + Finvc: float64(0.8737201372634685), + Flogc: float64(0.1349951636851756), + }, + 99: { + Finvc: float64(0.8677966405782273), + Flogc: float64(0.1417978768189414), + }, + 100: { + Finvc: float64(0.8619528050060739), + Flogc: float64(0.14855476039031146), + }, + 101: { + Finvc: float64(0.8561872354420692), + Flogc: float64(0.1552661937658968), + }, + 102: { + Finvc: float64(0.8504983927816893), + Flogc: float64(0.16193275688146969), + }, + 103: { + Finvc: float64(0.8448844572790304), + Flogc: float64(0.16855539792220497), + }, + 104: { + Finvc: float64(0.8393442741575965), + Flogc: float64(0.1751343179947753), + }, + 105: { + Finvc: float64(0.8338762249349438), + Flogc: float64(0.1816702989864325), + }, + 106: { + Finvc: float64(0.8284789320557778), + Flogc: float64(0.18816387146023317), + }, + 107: { + Finvc: float64(0.8231510800065832), + Flogc: float64(0.1946155228479256), + }, + 108: { + Finvc: float64(0.8178913903778707), + Flogc: float64(0.20102572579389744), + }, + 109: { + Finvc: float64(0.8126984007245374), + Flogc: float64(0.2073952090795501), + }, + 110: { + Finvc: float64(0.8075710029460227), + Flogc: float64(0.21372429840596396), + }, + 111: { + Finvc: float64(0.8025078881160415), + Flogc: float64(0.2200135945981856), + }, + 112: { + Finvc: float64(0.7975077379364331), + Flogc: float64(0.22626374162859975), + }, + 113: { + Finvc: float64(0.792569604966373), + Flogc: float64(0.23247494747693054), + }, + 114: { + Finvc: float64(0.7876923641254114), + Flogc: float64(0.23864766620658884), + }, + 115: { + Finvc: float64(0.7828746724940998), + Flogc: float64(0.24478265647405806), + }, + 116: { + Finvc: float64(0.7781155388790811), + Flogc: float64(0.25088025827324145), + }, + 117: { + Finvc: float64(0.7734139557869777), + Flogc: float64(0.2569408552510595), + }, + 118: { + Finvc: float64(0.7687687179914933), + Flogc: float64(0.26296511155101143), + }, + 119: { + Finvc: float64(0.7641790698041854), + Flogc: float64(0.2689531327189343), + }, + 120: { + Finvc: float64(0.7596438763692399), + Flogc: float64(0.27490553924610595), + }, + 121: { + Finvc: float64(0.7551621951078668), + Flogc: float64(0.2808227248478943), + }, + 122: { + Finvc: float64(0.7507331780216866), + Flogc: float64(0.286704979267256), + }, + 123: { + Finvc: float64(0.7463557196361751), + Flogc: float64(0.29255295645509705), + }, + 124: { + Finvc: float64(0.7420289364869653), + Flogc: float64(0.2983670386142876), + }, + 125: { + Finvc: float64(0.7377521537065876), + Flogc: float64(0.30414734587282055), + }, + 126: { + Finvc: float64(0.7335242966002608), + Flogc: float64(0.30989455774829366), + }, + 127: { + Finvc: float64(0.729344777457841), + Flogc: float64(0.31560871301871884), + }, + }, +} + +var X__logf_data = Tlogf_data{ + Ftab: [16]struct { + Finvc float64 + Flogc float64 + }{ + 0: { + Finvc: float64(1.398907162146528), + Flogc: -Float64FromFloat64(0.33569133332882284), + }, + 1: { + Finvc: float64(1.3403141896637998), + Flogc: -Float64FromFloat64(0.2929040563774074), + }, + 2: { + Finvc: float64(1.286432210124115), + Flogc: -Float64FromFloat64(0.2518726580937369), + }, + 3: { + Finvc: float64(1.2367150214269895), + Flogc: -Float64FromFloat64(0.21245868807117255), + }, + 4: { + Finvc: float64(1.1906977166711752), + Flogc: -Float64FromFloat64(0.17453945183745634), + }, + 5: { + Finvc: float64(1.1479821020556429), + Flogc: -Float64FromFloat64(0.1380057072319758), + }, + 6: { + Finvc: float64(1.1082251448272158), + Flogc: -Float64FromFloat64(0.10275976698545139), + }, + 7: { + Finvc: float64(1.0711297413057381), + Flogc: -Float64FromFloat64(0.06871392447020525), + }, + 8: { + Finvc: float64(1.036437278977283), + Flogc: -Float64FromFloat64(0.0357891387398228), + }, + 9: { + Finvc: float64(1), + }, + 10: { + Finvc: float64(0.9492859795739057), + Flogc: float64(0.05204517742929496), + }, + 11: { + Finvc: float64(0.8951049428609004), + Flogc: float64(0.11081431298787942), + }, + 12: { + Finvc: float64(0.8476821620351103), + Flogc: float64(0.1652495223695143), + }, + 13: { + Finvc: float64(0.8050314851692001), + Flogc: float64(0.21687389031699977), + }, + 14: { + Finvc: float64(0.7664671008843108), + Flogc: float64(0.2659635028121397), + }, + 15: { + Finvc: float64(0.731428603316328), + Flogc: float64(0.3127556664073557), + }, + }, + Fln2: float64(0.6931471805599453), + Fpoly: [3]float64{ + 0: -Float64FromFloat64(0.25089342214237154), + 1: float64(0.333456765744066), + 2: -Float64FromFloat64(0.4999997485802103), + }, +} + +var X__optpos int32 + +var Xoptreset int32 + +var X__pow_log_data = Tpow_log_data{ + Fln2hi: float64(0.6931471805598903), + Fln2lo: float64(5.497923018708371e-14), + Fpoly: [7]float64{ + 0: -Float64FromFloat64(0.5), + 1: Float64FromFloat64(0.3333333333333339) * float64(-Int32FromInt32(2)), + 2: -Float64FromFloat64(0.25000000000000033) * float64(-Int32FromInt32(2)), + 3: Float64FromFloat64(0.1999999998830994) * Float64FromInt32(4), + 4: -Float64FromFloat64(0.16666666658719348) * Float64FromInt32(4), + 5: Float64FromFloat64(0.14286370355743763) * float64(-Int32FromInt32(8)), + 6: -Float64FromFloat64(0.12500519079594427) * float64(-Int32FromInt32(8)), + }, + Ftab: [128]struct { + Finvc float64 + Fpad float64 + Flogc float64 + Flogctail float64 + }{ + 0: { + Finvc: float64(1.4140625), + Flogc: -Float64FromFloat64(0.3464667673462145), + Flogctail: float64(5.929407345889625e-15), + }, + 1: { + Finvc: float64(1.40625), + Flogc: -Float64FromFloat64(0.34092658697056777), + Flogctail: -Float64FromFloat64(2.544157440035963e-14), + }, + 2: { + Finvc: float64(1.3984375), + Flogc: -Float64FromFloat64(0.3353555419211034), + Flogctail: -Float64FromFloat64(3.443525940775045e-14), + }, + 3: { + Finvc: float64(1.390625), + Flogc: -Float64FromFloat64(0.3297532863724655), + Flogctail: -Float64FromFloat64(2.500123826022799e-15), + }, + 4: { + Finvc: float64(1.3828125), + Flogc: -Float64FromFloat64(0.32411946865420305), + Flogctail: -Float64FromFloat64(8.929337133850617e-15), + }, + 5: { + Finvc: float64(1.375), + Flogc: -Float64FromFloat64(0.31845373111855224), + Flogctail: float64(1.7625431312172662e-14), + }, + 6: { + Finvc: float64(1.3671875), + Flogc: -Float64FromFloat64(0.31275571000389846), + Flogctail: float64(1.5688303180062087e-15), + }, + 7: { + Finvc: float64(1.359375), + Flogc: -Float64FromFloat64(0.3070250352949415), + Flogctail: float64(2.9655274673691784e-14), + }, + 8: { + Finvc: float64(1.3515625), + Flogc: -Float64FromFloat64(0.3012613305781997), + Flogctail: float64(3.7923164802093147e-14), + }, + 9: { + Finvc: float64(1.34375), + Flogc: -Float64FromFloat64(0.2954642128938758), + Flogctail: float64(3.993416384387844e-14), + }, + 10: { + Finvc: float64(1.3359375), + Flogc: -Float64FromFloat64(0.28963329258306203), + Flogctail: float64(1.9352855826489123e-14), + }, + 11: { + Finvc: float64(1.3359375), + Flogc: -Float64FromFloat64(0.28963329258306203), + Flogctail: float64(1.9352855826489123e-14), + }, + 12: { + Finvc: float64(1.328125), + Flogc: -Float64FromFloat64(0.28376817313062475), + Flogctail: -Float64FromFloat64(1.9852665484979036e-14), + }, + 13: { + Finvc: float64(1.3203125), + Flogc: -Float64FromFloat64(0.27786845100342816), + Flogctail: -Float64FromFloat64(2.814323765595281e-14), + }, + 14: { + Finvc: float64(1.3125), + Flogc: -Float64FromFloat64(0.2719337154836694), + Flogctail: float64(2.7643769993528702e-14), + }, + 15: { + Finvc: float64(1.3046875), + Flogc: -Float64FromFloat64(0.2659635484970977), + Flogctail: -Float64FromFloat64(4.025092402293806e-14), + }, + 16: { + Finvc: float64(1.296875), + Flogc: -Float64FromFloat64(0.25995752443691345), + Flogctail: -Float64FromFloat64(1.2621729398885316e-14), + }, + 17: { + Finvc: float64(1.2890625), + Flogc: -Float64FromFloat64(0.25391520998095984), + Flogctail: -Float64FromFloat64(3.600176732637335e-15), + }, + 18: { + Finvc: float64(1.2890625), + Flogc: -Float64FromFloat64(0.25391520998095984), + Flogctail: -Float64FromFloat64(3.600176732637335e-15), + }, + 19: { + Finvc: float64(1.28125), + Flogc: -Float64FromFloat64(0.2478361639045943), + Flogctail: float64(1.3029797173308663e-14), + }, + 20: { + Finvc: float64(1.2734375), + Flogc: -Float64FromFloat64(0.2417199368871934), + Flogctail: float64(4.8230289429940886e-14), + }, + 21: { + Finvc: float64(1.265625), + Flogc: -Float64FromFloat64(0.23556607131274632), + Flogctail: -Float64FromFloat64(2.0592242769647135e-14), + }, + 22: { + Finvc: float64(1.2578125), + Flogc: -Float64FromFloat64(0.22937410106487732), + Flogctail: float64(3.149265065191484e-14), + }, + 23: { + Finvc: float64(1.25), + Flogc: -Float64FromFloat64(0.22314355131425145), + Flogctail: float64(4.169796584527195e-14), + }, + 24: { + Finvc: float64(1.25), + Flogc: -Float64FromFloat64(0.22314355131425145), + Flogctail: float64(4.169796584527195e-14), + }, + 25: { + Finvc: float64(1.2421875), + Flogc: -Float64FromFloat64(0.21687393830063684), + Flogctail: float64(2.2477465222466186e-14), + }, + 26: { + Finvc: float64(1.234375), + Flogc: -Float64FromFloat64(0.21056476910735), + Flogctail: float64(3.6507188831790577e-16), + }, + 27: { + Finvc: float64(1.2265625), + Flogc: -Float64FromFloat64(0.2042155414286526), + Flogctail: -Float64FromFloat64(3.827767260205414e-14), + }, + 28: { + Finvc: float64(1.2265625), + Flogc: -Float64FromFloat64(0.2042155414286526), + Flogctail: -Float64FromFloat64(3.827767260205414e-14), + }, + 29: { + Finvc: float64(1.21875), + Flogc: -Float64FromFloat64(0.19782574332987224), + Flogctail: -Float64FromFloat64(4.7641388950792196e-14), + }, + 30: { + Finvc: float64(1.2109375), + Flogc: -Float64FromFloat64(0.19139485299967873), + Flogctail: float64(4.9278276214647115e-14), + }, + 31: { + Finvc: float64(1.203125), + Flogc: -Float64FromFloat64(0.18492233849406148), + Flogctail: float64(4.9485167661250996e-14), + }, + 32: { + Finvc: float64(1.203125), + Flogc: -Float64FromFloat64(0.18492233849406148), + Flogctail: float64(4.9485167661250996e-14), + }, + 33: { + Finvc: float64(1.1953125), + Flogc: -Float64FromFloat64(0.1784076574728033), + Flogctail: -Float64FromFloat64(1.5003333854266542e-14), + }, + 34: { + Finvc: float64(1.1875), + Flogc: -Float64FromFloat64(0.17185025692663203), + Flogctail: -Float64FromFloat64(2.7194441649495324e-14), + }, + 35: { + Finvc: float64(1.1875), + Flogc: -Float64FromFloat64(0.17185025692663203), + Flogctail: -Float64FromFloat64(2.7194441649495324e-14), + }, + 36: { + Finvc: float64(1.1796875), + Flogc: -Float64FromFloat64(0.1652495728952772), + Flogctail: -Float64FromFloat64(2.99659267292569e-14), + }, + 37: { + Finvc: float64(1.171875), + Flogc: -Float64FromFloat64(0.15860503017665906), + Flogctail: float64(2.0472357800461955e-14), + }, + 38: { + Finvc: float64(1.171875), + Flogc: -Float64FromFloat64(0.15860503017665906), + Flogctail: float64(2.0472357800461955e-14), + }, + 39: { + Finvc: float64(1.1640625), + Flogc: -Float64FromFloat64(0.15191604202584585), + Flogctail: float64(3.879296723063646e-15), + }, + 40: { + Finvc: float64(1.15625), + Flogc: -Float64FromFloat64(0.1451820098444614), + Flogctail: -Float64FromFloat64(3.6506824353335045e-14), + }, + 41: { + Finvc: float64(1.1484375), + Flogc: -Float64FromFloat64(0.13840232285906495), + Flogctail: -Float64FromFloat64(5.4183331379008994e-14), + }, + 42: { + Finvc: float64(1.1484375), + Flogc: -Float64FromFloat64(0.13840232285906495), + Flogctail: -Float64FromFloat64(5.4183331379008994e-14), + }, + 43: { + Finvc: float64(1.140625), + Flogc: -Float64FromFloat64(0.131576357788731), + Flogctail: float64(1.1729485484531301e-14), + }, + 44: { + Finvc: float64(1.140625), + Flogc: -Float64FromFloat64(0.131576357788731), + Flogctail: float64(1.1729485484531301e-14), + }, + 45: { + Finvc: float64(1.1328125), + Flogc: -Float64FromFloat64(0.12470347850091912), + Flogctail: -Float64FromFloat64(3.811763084710266e-14), + }, + 46: { + Finvc: float64(1.125), + Flogc: -Float64FromFloat64(0.11778303565643), + Flogctail: float64(4.654729747598445e-14), + }, + 47: { + Finvc: float64(1.125), + Flogc: -Float64FromFloat64(0.11778303565643), + Flogctail: float64(4.654729747598445e-14), + }, + 48: { + Finvc: float64(1.1171875), + Flogc: -Float64FromFloat64(0.11081436634026431), + Flogctail: -Float64FromFloat64(2.5799991283069902e-14), + }, + 49: { + Finvc: float64(1.109375), + Flogc: -Float64FromFloat64(0.10379679368168127), + Flogctail: float64(3.7700471749674615e-14), + }, + 50: { + Finvc: float64(1.109375), + Flogc: -Float64FromFloat64(0.10379679368168127), + Flogctail: float64(3.7700471749674615e-14), + }, + 51: { + Finvc: float64(1.1015625), + Flogc: -Float64FromFloat64(0.09672962645856842), + Flogctail: float64(1.7306161136093256e-14), + }, + 52: { + Finvc: float64(1.1015625), + Flogc: -Float64FromFloat64(0.09672962645856842), + Flogctail: float64(1.7306161136093256e-14), + }, + 53: { + Finvc: float64(1.09375), + Flogc: -Float64FromFloat64(0.089612158689647), + Flogctail: -Float64FromFloat64(4.012913552726574e-14), + }, + 54: { + Finvc: float64(1.0859375), + Flogc: -Float64FromFloat64(0.08244366921110213), + Flogctail: float64(2.7541708360737882e-14), + }, + 55: { + Finvc: float64(1.0859375), + Flogc: -Float64FromFloat64(0.08244366921110213), + Flogctail: float64(2.7541708360737882e-14), + }, + 56: { + Finvc: float64(1.078125), + Flogc: -Float64FromFloat64(0.07522342123763792), + Flogctail: float64(5.0396178134370583e-14), + }, + 57: { + Finvc: float64(1.078125), + Flogc: -Float64FromFloat64(0.07522342123763792), + Flogctail: float64(5.0396178134370583e-14), + }, + 58: { + Finvc: float64(1.0703125), + Flogc: -Float64FromFloat64(0.06795066190852594), + Flogctail: float64(1.8195060030168815e-14), + }, + 59: { + Finvc: float64(1.0625), + Flogc: -Float64FromFloat64(0.06062462181648698), + Flogctail: float64(5.213620639136504e-14), + }, + 60: { + Finvc: float64(1.0625), + Flogc: -Float64FromFloat64(0.06062462181648698), + Flogctail: float64(5.213620639136504e-14), + }, + 61: { + Finvc: float64(1.0546875), + Flogc: -Float64FromFloat64(0.053244514518837605), + Flogctail: float64(2.532168943117445e-14), + }, + 62: { + Finvc: float64(1.0546875), + Flogc: -Float64FromFloat64(0.053244514518837605), + Flogctail: float64(2.532168943117445e-14), + }, + 63: { + Finvc: float64(1.046875), + Flogc: -Float64FromFloat64(0.045809536031242715), + Flogctail: -Float64FromFloat64(5.148849572685811e-14), + }, + 64: { + Finvc: float64(1.046875), + Flogc: -Float64FromFloat64(0.045809536031242715), + Flogctail: -Float64FromFloat64(5.148849572685811e-14), + }, + 65: { + Finvc: float64(1.0390625), + Flogc: -Float64FromFloat64(0.038318864302141264), + Flogctail: float64(4.6652946995830086e-15), + }, + 66: { + Finvc: float64(1.0390625), + Flogc: -Float64FromFloat64(0.038318864302141264), + Flogctail: float64(4.6652946995830086e-15), + }, + 67: { + Finvc: float64(1.03125), + Flogc: -Float64FromFloat64(0.03077165866670839), + Flogctail: -Float64FromFloat64(4.529814257790929e-14), + }, + 68: { + Finvc: float64(1.03125), + Flogc: -Float64FromFloat64(0.03077165866670839), + Flogctail: -Float64FromFloat64(4.529814257790929e-14), + }, + 69: { + Finvc: float64(1.0234375), + Flogc: -Float64FromFloat64(0.023167059281490765), + Flogctail: -Float64FromFloat64(4.361324067851568e-14), + }, + 70: { + Finvc: float64(1.015625), + Flogc: -Float64FromFloat64(0.015504186535963527), + Flogctail: -Float64FromFloat64(1.7274567499706107e-15), + }, + 71: { + Finvc: float64(1.015625), + Flogc: -Float64FromFloat64(0.015504186535963527), + Flogctail: -Float64FromFloat64(1.7274567499706107e-15), + }, + 72: { + Finvc: float64(1.0078125), + Flogc: -Float64FromFloat64(0.0077821404420319595), + Flogctail: -Float64FromFloat64(2.298941004620351e-14), + }, + 73: { + Finvc: float64(1.0078125), + Flogc: -Float64FromFloat64(0.0077821404420319595), + Flogctail: -Float64FromFloat64(2.298941004620351e-14), + }, + 74: { + Finvc: float64(1), + }, + 75: { + Finvc: float64(1), + }, + 76: { + Finvc: float64(0.9921875), + Flogc: float64(0.007843177461040796), + Flogctail: -Float64FromFloat64(1.4902732911301337e-14), + }, + 77: { + Finvc: float64(0.984375), + Flogc: float64(0.01574835696817445), + Flogctail: -Float64FromFloat64(3.527980389655325e-14), + }, + 78: { + Finvc: float64(0.9765625), + Flogc: float64(0.023716526617363343), + Flogctail: -Float64FromFloat64(4.730054772033249e-14), + }, + 79: { + Finvc: float64(0.96875), + Flogc: float64(0.03174869831457272), + Flogctail: float64(7.580310369375161e-15), + }, + 80: { + Finvc: float64(0.9609375), + Flogc: float64(0.039845908547249564), + Flogctail: -Float64FromFloat64(4.9893776716773285e-14), + }, + 81: { + Finvc: float64(0.953125), + Flogc: float64(0.048009219186383234), + Flogctail: -Float64FromFloat64(2.262629393030674e-14), + }, + 82: { + Finvc: float64(0.9453125), + Flogc: float64(0.056239718322899535), + Flogctail: -Float64FromFloat64(2.345674491018699e-14), + }, + 83: { + Finvc: float64(0.94140625), + Flogc: float64(0.06038051098892083), + Flogctail: -Float64FromFloat64(1.3352588834854848e-14), + }, + 84: { + Finvc: float64(0.93359375), + Flogc: float64(0.06871389254808946), + Flogctail: -Float64FromFloat64(3.765296820388875e-14), + }, + 85: { + Finvc: float64(0.92578125), + Flogc: float64(0.07711730334438016), + Flogctail: float64(5.1128335719851986e-14), + }, + 86: { + Finvc: float64(0.91796875), + Flogc: float64(0.08559193033545398), + Flogctail: -Float64FromFloat64(5.046674438470119e-14), + }, + 87: { + Finvc: float64(0.9140625), + Flogc: float64(0.08985632912185793), + Flogctail: float64(3.1218748807418837e-15), + }, + 88: { + Finvc: float64(0.90625), + Flogc: float64(0.09844007281321865), + Flogctail: float64(3.3871241029241416e-14), + }, + 89: { + Finvc: float64(0.8984375), + Flogc: float64(0.10709813555638448), + Flogctail: -Float64FromFloat64(1.7376727386423858e-14), + }, + 90: { + Finvc: float64(0.89453125), + Flogc: float64(0.11145544092528326), + Flogctail: float64(3.957125899799804e-14), + }, + 91: { + Finvc: float64(0.88671875), + Flogc: float64(0.12022742699821265), + Flogctail: -Float64FromFloat64(5.2849453521890294e-14), + }, + 92: { + Finvc: float64(0.8828125), + Flogc: float64(0.12464244520731427), + Flogctail: -Float64FromFloat64(3.767012502308738e-14), + }, + 93: { + Finvc: float64(0.875), + Flogc: float64(0.13353139262449076), + Flogctail: float64(3.1859736349078334e-14), + }, + 94: { + Finvc: float64(0.87109375), + Flogc: float64(0.13800567301939282), + Flogctail: float64(5.0900642926060466e-14), + }, + 95: { + Finvc: float64(0.86328125), + Flogc: float64(0.14701474296180095), + Flogctail: float64(8.710783796122478e-15), + }, + 96: { + Finvc: float64(0.859375), + Flogc: float64(0.15154989812720032), + Flogctail: float64(6.157896229122976e-16), + }, + 97: { + Finvc: float64(0.8515625), + Flogc: float64(0.16068238169043525), + Flogctail: float64(3.821577743916796e-14), + }, + 98: { + Finvc: float64(0.84765625), + Flogc: float64(0.16528009093906348), + Flogctail: float64(3.9440046718453496e-14), + }, + 99: { + Finvc: float64(0.83984375), + Flogc: float64(0.17453941635187675), + Flogctail: float64(2.2924522154618074e-14), + }, + 100: { + Finvc: float64(0.8359375), + Flogc: float64(0.17920142945774842), + Flogctail: -Float64FromFloat64(3.742530094732263e-14), + }, + 101: { + Finvc: float64(0.83203125), + Flogc: float64(0.18388527877016259), + Flogctail: -Float64FromFloat64(2.5223102140407338e-14), + }, + 102: { + Finvc: float64(0.82421875), + Flogc: float64(0.1933193110035063), + Flogctail: -Float64FromFloat64(1.0320443688698849e-14), + }, + 103: { + Finvc: float64(0.8203125), + Flogc: float64(0.19806991376208316), + Flogctail: float64(1.0634128304268335e-14), + }, + 104: { + Finvc: float64(0.8125), + Flogc: float64(0.20763936477828793), + Flogctail: -Float64FromFloat64(4.3425422595242564e-14), + }, + 105: { + Finvc: float64(0.80859375), + Flogc: float64(0.21245865121420593), + Flogctail: -Float64FromFloat64(1.2527395755711364e-14), + }, + 106: { + Finvc: float64(0.8046875), + Flogc: float64(0.21730127569003344), + Flogctail: -Float64FromFloat64(5.204008743405884e-14), + }, + 107: { + Finvc: float64(0.80078125), + Flogc: float64(0.22216746534115828), + Flogctail: -Float64FromFloat64(3.979844515951702e-15), + }, + 108: { + Finvc: float64(0.79296875), + Flogc: float64(0.2319714654378231), + Flogctail: -Float64FromFloat64(4.7955860343296286e-14), + }, + 109: { + Finvc: float64(0.7890625), + Flogc: float64(0.2369097470783572), + Flogctail: float64(5.015686013791602e-16), + }, + 110: { + Finvc: float64(0.78515625), + Flogc: float64(0.24187253642048745), + Flogctail: -Float64FromFloat64(7.252318953240293e-16), + }, + 111: { + Finvc: float64(0.78125), + Flogc: float64(0.2468600779315011), + Flogctail: float64(2.4688324156011588e-14), + }, + 112: { + Finvc: float64(0.7734375), + Flogc: float64(0.2569104137850218), + Flogctail: float64(5.465121253624792e-15), + }, + 113: { + Finvc: float64(0.76953125), + Flogc: float64(0.26197371574153294), + Flogctail: float64(4.102651071698446e-14), + }, + 114: { + Finvc: float64(0.765625), + Flogc: float64(0.2670627852490952), + Flogctail: -Float64FromFloat64(4.996736502345936e-14), + }, + 115: { + Finvc: float64(0.76171875), + Flogc: float64(0.27217788591576664), + Flogctail: float64(4.903580708156347e-14), + }, + 116: { + Finvc: float64(0.7578125), + Flogc: float64(0.27731928541618345), + Flogctail: float64(5.089628039500759e-14), + }, + 117: { + Finvc: float64(0.75390625), + Flogc: float64(0.28248725557466514), + Flogctail: float64(1.1782016386565151e-14), + }, + 118: { + Finvc: float64(0.74609375), + Flogc: float64(0.29290401643288533), + Flogctail: float64(4.727452940514406e-14), + }, + 119: { + Finvc: float64(0.7421875), + Flogc: float64(0.29815337231912054), + Flogctail: -Float64FromFloat64(4.4204083338755686e-14), + }, + 120: { + Finvc: float64(0.73828125), + Flogc: float64(0.3034304294199046), + Flogctail: float64(1.548345993498083e-14), + }, + 121: { + Finvc: float64(0.734375), + Flogc: float64(0.30873548164959175), + Flogctail: float64(2.1522127491642888e-14), + }, + 122: { + Finvc: float64(0.73046875), + Flogc: float64(0.3140688276249648), + Flogctail: float64(1.1054030169005386e-14), + }, + 123: { + Finvc: float64(0.7265625), + Flogc: float64(0.31943077076641657), + Flogctail: -Float64FromFloat64(5.534326352070679e-14), + }, + 124: { + Finvc: float64(0.72265625), + Flogc: float64(0.3248216194012912), + Flogctail: -Float64FromFloat64(5.351646604259541e-14), + }, + 125: { + Finvc: float64(0.71875), + Flogc: float64(0.33024168687052224), + Flogctail: float64(5.4612144489920215e-14), + }, + 126: { + Finvc: float64(0.71484375), + Flogc: float64(0.3356912916381134), + Flogctail: float64(2.8136969901227338e-14), + }, + 127: { + Finvc: float64(0.7109375), + Flogc: float64(0.3411707574027787), + Flogctail: -Float64FromFloat64(1.156568624616423e-14), + }, + }, +} + +var X__powf_log2_data = Tpowf_log2_data{ + Ftab: [16]struct { + Finvc float64 + Flogc float64 + }{ + 0: { + Finvc: float64(1.398907162146528), + Flogc: -Float64FromFloat64(0.48430022186289673) * float64(Int32FromInt32(1)<= 0 { @@ -31627,6 +31629,7 @@ func Xdcngettext(tls *TLS, domainname uintptr, msgid1 uintptr, msgid2 uintptr, n if !!(lm != 0) { goto _2 } + goto notrans notrans: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = old_errno @@ -98904,6 +98907,7 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui if !(c > uint32(0x7f)) { goto _52 } + goto subst subst: ; x++ @@ -98918,6 +98922,7 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui if !(c < uint32(256) && c == _legacy_map(tls, tomap, c)) { goto _53 } + goto revout revout: ; if *(*Tsize_t)(unsafe.Pointer(outb)) < uint64(1) { @@ -99181,20 +99186,24 @@ func Xiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb ui } *(*Tlocale_t)(unsafe.Pointer(ploc)) = loc return x + goto ilseq ilseq: ; err = int32(EILSEQ) x = uint64(-Int32FromInt32(1)) goto end + goto toobig toobig: ; err = int32(E2BIG) x = uint64(-Int32FromInt32(1)) goto end + goto starved starved: ; err = int32(EINVAL) x = uint64(-Int32FromInt32(1)) + goto end end: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = err @@ -100045,6 +100054,7 @@ _3: if !(int32(*(*int8)(unsafe.Pointer(fmt))) != int32('%')) { goto _4 } + goto literal literal: ; v5 = s @@ -100902,6 +100912,7 @@ func X__rem_pio2(tls *TLS, x float64, y uintptr) (r1 int32) { if !(ix < uint32(0x413921fb)) { goto _1 } /* |x| ~< 2^20*(pi/2), medium size */ + goto medium medium: ; /* rint(x/(pi/2)) */ @@ -101160,6 +101171,7 @@ func X__rem_pio2_large(tls *TLS, x uintptr, y uintptr, e0 int32, nx int32, prec i++ } jz = jk + goto recompute recompute: ; /* distill q[] into iq[] reversingly */ @@ -111252,6 +111264,7 @@ func Xremquo(tls *TLS, x float64, y float64, quo uintptr) (r float64) { ex-- } } + goto end end: ; /* scale result and decide between |x| and |x|-|y| */ @@ -111422,6 +111435,7 @@ func Xremquof(tls *TLS, x float32, y float32, quo uintptr) (r float32) { ex-- } } + goto end end: ; /* scale result and decide between |x| and |x|-|y| */ @@ -115343,6 +115357,7 @@ func Xopenpty(tls *TLS, pm uintptr, ps uintptr, name uintptr, tio uintptr, ws ui *(*int32)(unsafe.Pointer(ps)) = s _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp + 4)), uintptr(0)) return 0 + goto fail fail: ; Xclose(tls, m) @@ -115479,6 +115494,7 @@ func Xrealpath(tls *TLS, filename uintptr, resolved uintptr) (r uintptr) { * remaining path components and consumes any slashes that follow. * If not a link, it's moved to output; if a link, contents are * pushed to the stack. */ + goto restart restart: ; _3: @@ -115563,6 +115579,7 @@ _3: if *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(EINVAL) { return uintptr(0) } + goto skip_readlink skip_readlink: ; check_dir = 0 @@ -115650,6 +115667,7 @@ _1: } else { return Xstrdup(tls, bp+4097) } + goto toolong toolong: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(ENAMETOOLONG) @@ -116533,6 +116551,7 @@ func Xc16rtomb(tls *TLS, s uintptr, c16 Tchar16_t, ps uintptr) (r Tsize_t) { wc = int32(c16) } return Xwcrtomb(tls, s, wc, uintptr(0)) + goto ilseq ilseq: ; *(*uint32)(unsafe.Pointer(x)) = uint32(0) @@ -116702,6 +116721,7 @@ func Xmbrtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t, st uintptr) (r Tsize if (int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)-int32(0x10)|(int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)+int32(c)>>Int32FromInt32(26))) & ^Int32FromInt32(7) != 0 { goto ilseq } + goto loop loop: ; v4 = s @@ -116722,6 +116742,7 @@ func Xmbrtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t, st uintptr) (r Tsize } *(*uint32)(unsafe.Pointer(st)) = c return uint64(-Int32FromInt32(2)) + goto ilseq ilseq: ; *(*uint32)(unsafe.Pointer(st)) = uint32(0) @@ -116903,6 +116924,7 @@ _11: v12 = s s++ c = X__fsmu8[uint32(*(*uint8)(unsafe.Pointer(v12)))-uint32(0xc2)] + goto resume0 resume0: ; if (int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)-int32(0x10)|(int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)+int32(c)>>Int32FromInt32(26))) & ^Int32FromInt32(7) != 0 { @@ -116982,6 +117004,7 @@ _15: v26 = s s++ c = X__fsmu8[uint32(*(*uint8)(unsafe.Pointer(v26)))-uint32(0xc2)] + goto resume resume: ; if (int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)-int32(0x10)|(int32(*(*uint8)(unsafe.Pointer(s)))>>int32(3)+int32(c)>>Int32FromInt32(26))) & ^Int32FromInt32(7) != 0 { @@ -117124,6 +117147,7 @@ func Xmbtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t) (r int32) { s++ *(*Twchar_t)(unsafe.Pointer(wc)) = int32(c<= uint32(128) { @@ -129363,6 +129407,7 @@ func _parse_bracket(tls *TLS, ctx uintptr, s uintptr) (r Treg_errcode_t) { ; i++ } + goto parse_bracket_done parse_bracket_done: ; Xfree(tls, (*(*Tliterals)(unsafe.Pointer(bp))).Fa) @@ -129675,6 +129720,7 @@ _11: goto _13 _12: ; + goto parse_literal parse_literal: ; len1 = Xmbtowc(tls, bp, s, uint64(-Int32FromInt32(1))) @@ -129698,6 +129744,7 @@ parse_literal: goto _13 _13: ; + goto end end: ; if !(node != 0) { @@ -129773,6 +129820,7 @@ func _tre_parse(tls *TLS, ctx uintptr) (r Treg_errcode_t) { } s = (*Ttre_parse_ctx_t)(unsafe.Pointer(ctx)).Fs } + goto parse_iter parse_iter: ; for { @@ -131991,6 +132039,7 @@ func Xregcomp(tls *TLS, preg uintptr, regex uintptr, cflags int32) (r int32) { Xfree(tls, offs) (*Tregex_t)(unsafe.Pointer(preg)).F__opaque = tnfa return REG_OK + goto error_exit error_exit: ; /* Free everything that was allocated and return the error code. */ @@ -132573,6 +132622,7 @@ func _tre_tnfa_run_parallel(tls *TLS, tnfa uintptr, string1 uintptr, match_tags v18 = int32(REG_NOMATCH) } ret = v18 + goto error_exit error_exit: ; Xfree(tls, buf) @@ -132682,6 +132732,7 @@ func _tre_tnfa_run_backtrack(tls *TLS, tnfa uintptr, string1 uintptr, match_tags goto error_exit } } + goto retry retry: ; i = 0 @@ -133017,6 +133068,7 @@ _9: goto _17 _16: ; + goto backtrack backtrack: ; /* A matching transition was not found. Try to backtrack. */ @@ -133066,6 +133118,7 @@ _8: } ret = v20 *(*Tregoff_t)(unsafe.Pointer(match_end_ofs)) = match_eo + goto error_exit error_exit: ; X__tre_mem_destroy(tls, mem) @@ -136681,6 +136734,7 @@ func _mseek(tls *TLS, f uintptr, off Toff_t, whence int32) (r Toff_t) { if !(uint32(whence) > uint32(2)) { goto _1 } + goto fail fail: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) @@ -136915,6 +136969,7 @@ func _cookieread(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) { *(*uintptr)(unsafe.Pointer(v3))++ *(*uint8)(unsafe.Pointer(buf + uintptr(v1))) = *(*uint8)(unsafe.Pointer(v2)) return readlen + goto bail bail: ; if ret == 0 { @@ -137487,9 +137542,11 @@ func Xfreopen(tls *TLS, filename uintptr, mode uintptr, f uintptr) (r uintptr) { ___unlockfile(tls, f) } return f + goto fail2 fail2: ; Xfclose(tls, f2) + goto fail fail: ; Xfclose(tls, f) @@ -138594,6 +138651,7 @@ func _ms_seek(tls *TLS, f uintptr, off Toff_t, whence int32) (r Toff_t) { if !(uint32(whence) > uint32(2)) { goto _1 } + goto fail fail: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) @@ -138727,6 +138785,7 @@ func _wms_seek(tls *TLS, f uintptr, off Toff_t, whence int32) (r Toff_t) { if !(uint32(whence) > uint32(2)) { goto _1 } + goto fail fail: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) @@ -141084,6 +141143,7 @@ func _printf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, } p = int32(v34) goto _30 + goto narrow_c narrow_c: ; _17: @@ -141268,10 +141328,12 @@ func _printf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, goto inval } return int32(1) + goto inval inval: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) return -int32(1) + goto overflow overflow: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOVERFLOW) @@ -141959,6 +142021,7 @@ func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { _49: ; base = 0 + goto int_common int_common: ; x = X__intscan(tls, f, uint32(base), 0, Uint64FromUint64(2)*Uint64FromInt64(0x7fffffffffffffff)+Uint64FromInt32(1)) @@ -142017,15 +142080,19 @@ func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { if !(0 != 0) { goto _85 } + goto fmt_fail fmt_fail: ; + goto alloc_fail alloc_fail: ; + goto input_fail input_fail: ; if !(matches != 0) { matches-- } + goto match_fail match_fail: ; if alloc != 0 { @@ -142614,10 +142681,12 @@ func _wprintf_core(tls *TLS, f uintptr, fmt uintptr, ap uintptr, nl_arg uintptr, return -int32(1) } return int32(1) + goto inval inval: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EINVAL) return -int32(1) + goto overflow overflow: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOVERFLOW) @@ -143233,15 +143302,19 @@ func Xvfwscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) { if !(0 != 0) { goto _46 } + goto fmt_fail fmt_fail: ; + goto alloc_fail alloc_fail: ; + goto input_fail input_fail: ; if !(matches != 0) { matches-- } + goto match_fail match_fail: ; if alloc != 0 { @@ -144779,6 +144852,7 @@ func Xmemccpy(tls *TLS, dest uintptr, src uintptr, c int32, n Tsize_t) (r uintpt s++ d++ } + goto tail tail: ; if n != 0 { @@ -145909,6 +145983,7 @@ func X__stpncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) { s++ d++ } + goto tail tail: ; Xmemset(tls, d, 0, n) @@ -146299,6 +146374,7 @@ func Xstrlcpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r Tsize_t) { d++ } *(*int8)(unsafe.Pointer(d)) = 0 + goto finish finish: ; return uint64(int64(d)-int64(d0)) + Xstrlen(tls, s) @@ -148901,6 +148977,7 @@ func X__secs_to_zone(tls *TLS, t int64, local int32, isdst uintptr, offset uintp } goto dst } + goto std std: ; *(*int32)(unsafe.Pointer(isdst)) = 0 @@ -148911,6 +148988,7 @@ std: *(*uintptr)(unsafe.Pointer(zonename)) = Xtzname[0] ___unlock(tls, uintptr(unsafe.Pointer(&_lock4))) return + goto dst dst: ; *(*int32)(unsafe.Pointer(isdst)) = int32(1) @@ -149274,6 +149352,7 @@ func Xgetdate(tls *TLS, s uintptr) (r uintptr) { } else { Xgetdate_err = int32(7) } + goto out out: ; if f != 0 { @@ -149416,6 +149495,7 @@ func Xmktime(tls *TLS, tm uintptr) (r Ttime_t) { } *(*Ttm)(unsafe.Pointer(tm)) = *(*Ttm)(unsafe.Pointer(bp)) return t + goto error error: ; *(*int32)(unsafe.Pointer(X__errno_location(tls))) = int32(EOVERFLOW) @@ -149695,6 +149775,7 @@ func X__strftime_fmt_1(tls *TLS, s uintptr, l uintptr, f int32, tm uintptr, loc default: return uintptr(0) } + goto number number: ; if pad != 0 { @@ -149714,16 +149795,20 @@ number: break } return s + goto nl_strcat nl_strcat: ; fmt = X__nl_langinfo_l(tls, item, loc) + goto string string: ; *(*Tsize_t)(unsafe.Pointer(l)) = Xstrlen(tls, fmt) return fmt + goto nl_strftime nl_strftime: ; fmt = X__nl_langinfo_l(tls, item, loc) + goto recu_strftime recu_strftime: ; *(*Tsize_t)(unsafe.Pointer(l)) = X__strftime_l(tls, s, uint64(100), fmt, tm, loc) @@ -150229,6 +150314,7 @@ func Xstrptime(tls *TLS, s uintptr, f uintptr, tm uintptr) (r uintptr) { _40: ; return uintptr(0) + goto numeric_range numeric_range: ; if !(BoolInt32(uint32(*(*int8)(unsafe.Pointer(s)))-Uint32FromUint8('0') < Uint32FromInt32(10)) != 0) { @@ -150256,6 +150342,7 @@ func Xstrptime(tls *TLS, s uintptr, f uintptr, tm uintptr) (r uintptr) { case int64(uint64(UintptrFromInt32(0) + 28)): } goto update + goto numeric_digits numeric_digits: ; neg = 0 @@ -150290,6 +150377,7 @@ func Xstrptime(tls *TLS, s uintptr, f uintptr, tm uintptr) (r uintptr) { } *(*int32)(unsafe.Pointer(dest)) -= adj goto update + goto symbolic_range symbolic_range: ; i = int32(2)*range1 - int32(1) @@ -150314,6 +150402,7 @@ func Xstrptime(tls *TLS, s uintptr, f uintptr, tm uintptr) (r uintptr) { return uintptr(0) } goto update + goto update update: ; //FIXME diff --git a/vendor/modernc.org/libc/etc.go b/vendor/modernc.org/libc/etc.go index adbe7590..1f78cfbf 100644 --- a/vendor/modernc.org/libc/etc.go +++ b/vendor/modernc.org/libc/etc.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !(linux && (amd64 || loong64)) +//go:build !(linux && (amd64 || arm64 || loong64)) package libc // import "modernc.org/libc" diff --git a/vendor/modernc.org/libc/etc_musl.go b/vendor/modernc.org/libc/etc_musl.go index 869cfcf6..aee8c883 100644 --- a/vendor/modernc.org/libc/etc_musl.go +++ b/vendor/modernc.org/libc/etc_musl.go @@ -2,9 +2,9 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build linux && (amd64 || loong64) +//go:build linux && (amd64 || arm64 || loong64) -package libc // import "modernc.org/libc" +package libc // import "modernc.org/libc" import ( "fmt" diff --git a/vendor/modernc.org/libc/ioutil_linux.go b/vendor/modernc.org/libc/ioutil_linux.go index bd82eefd..154b6d06 100644 --- a/vendor/modernc.org/libc/ioutil_linux.go +++ b/vendor/modernc.org/libc/ioutil_linux.go @@ -6,7 +6,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !(linux && (amd64 || loong64)) +//go:build !(linux && (amd64 || arm64 || loong64)) package libc // import "modernc.org/libc" diff --git a/vendor/modernc.org/libc/libc.go b/vendor/modernc.org/libc/libc.go index c7d40b5d..6b36d22d 100644 --- a/vendor/modernc.org/libc/libc.go +++ b/vendor/modernc.org/libc/libc.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !(linux && (amd64 || loong64)) +//go:build !(linux && (amd64 || arm64 || loong64)) //go.generate echo package libc > ccgo.go //go:generate go fmt ./... @@ -1128,6 +1128,10 @@ func Xfmod(t *TLS, x, y float64) float64 { return math.Mod(x, y) } +func X__builtin_hypot(t *TLS, x float64, y float64) (r float64) { + return Xhypot(t, x, y) +} + func Xhypot(t *TLS, x, y float64) float64 { if __ccgo_strace { trc("t=%v y=%v, (%v:)", t, y, origin(2)) @@ -1202,6 +1206,20 @@ func X__builtin_round(t *TLS, x float64) float64 { return math.Round(x) } +func Xroundf(t *TLS, x float32) float32 { + if __ccgo_strace { + trc("t=%v x=%v, (%v:)", t, x, origin(2)) + } + return float32(math.Round(float64(x))) +} + +func X__builtin_roundf(t *TLS, x float32) float32 { + if __ccgo_strace { + trc("t=%v x=%v, (%v:)", t, x, origin(2)) + } + return float32(math.Round(float64(x))) +} + func Xsin(t *TLS, x float64) float64 { if __ccgo_strace { trc("t=%v x=%v, (%v:)", t, x, origin(2)) @@ -2462,3 +2480,42 @@ func Xlrint(tls *TLS, x float64) (r long) { } return long(Xrint(tls, x)) } + +func Xtanf(tls *TLS, x float32) (r float32) { + return float32(math.Tan(float64(x))) +} + +func Xsqrtf(t *TLS, x float32) float32 { + if __ccgo_strace { + trc("t=%v x=%v, (%v:)", t, x, origin(2)) + } + return float32(math.Sqrt(float64(x))) +} + +func Xacosf(t *TLS, x float32) float32 { + if __ccgo_strace { + trc("t=%v x=%v, (%v:)", t, x, origin(2)) + } + return float32(math.Acos(float64(x))) +} + +func Xfloorf(t *TLS, x float32) float32 { + if __ccgo_strace { + trc("t=%v x=%v, (%v:)", t, x, origin(2)) + } + return float32(math.Floor(float64(x))) +} + +func Xatan2f(t *TLS, x, y float32) float32 { + if __ccgo_strace { + trc("t=%v y=%v, (%v:)", t, y, origin(2)) + } + return float32(math.Atan2(float64(x), float64(y))) +} + +func Xfmodf(t *TLS, x, y float32) float32 { + if __ccgo_strace { + trc("t=%v y=%v, (%v:)", t, y, origin(2)) + } + return float32(math.Mod(float64(x), float64(y))) +} diff --git a/vendor/modernc.org/libc/libc64.go b/vendor/modernc.org/libc/libc64.go index b8b604d4..54608928 100644 --- a/vendor/modernc.org/libc/libc64.go +++ b/vendor/modernc.org/libc/libc64.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build ((amd64 || loong64) && !linux) || arm64 || ppc64le || riscv64 || s390x || mips64le +//go:build ((amd64 || arm64 || loong64) && !linux) || ppc64le || riscv64 || s390x || mips64le package libc // import "modernc.org/libc" diff --git a/vendor/modernc.org/libc/libc_arm64.go b/vendor/modernc.org/libc/libc_arm64.go index de3e3497..a430862b 100644 --- a/vendor/modernc.org/libc/libc_arm64.go +++ b/vendor/modernc.org/libc/libc_arm64.go @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !(linux && arm64) + package libc // import "modernc.org/libc" import ( diff --git a/vendor/modernc.org/libc/libc_darwin.go b/vendor/modernc.org/libc/libc_darwin.go index e73256a8..a75f675e 100644 --- a/vendor/modernc.org/libc/libc_darwin.go +++ b/vendor/modernc.org/libc/libc_darwin.go @@ -55,6 +55,10 @@ type ( ulong = types.User_ulong_t ) +type pthreadAttr struct { + detachState int32 +} + // // Keep these outside of the var block otherwise go generate will miss them. var X__stderrp = Xstdout var X__stdinp = Xstdin @@ -452,9 +456,11 @@ func Xsysconf(t *TLS, name int32) long { return long(unix.Getpagesize()) case unistd.X_SC_NPROCESSORS_ONLN: return long(runtime.NumCPU()) + case unistd.X_SC_GETPW_R_SIZE_MAX: + return 128 } - panic(todo("")) + panic(todo("", name)) } // int close(int fd); @@ -2158,7 +2164,7 @@ func X__ccgo_pthreadAttrGetDetachState(tls *TLS, a uintptr) int32 { if __ccgo_strace { trc("tls=%v a=%v, (%v:)", tls, a, origin(2)) } - panic(todo("")) + return (*pthreadAttr)(unsafe.Pointer(a)).detachState } func Xpthread_attr_getdetachstate(tls *TLS, a uintptr, state uintptr) int32 { @@ -2498,3 +2504,9 @@ func Xsetrlimit(t *TLS, resource int32, rlim uintptr) int32 { return 0 } + +func X__fpclassifyd(tls *TLS, x float64) (r int32) { + return X__fpclassify(tls, x) +} + +var Xin6addr_any = in6_addr{} diff --git a/vendor/modernc.org/libc/libc_linux.go b/vendor/modernc.org/libc/libc_linux.go index 516b7141..0913d8af 100644 --- a/vendor/modernc.org/libc/libc_linux.go +++ b/vendor/modernc.org/libc/libc_linux.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !(linux && (amd64 || loong64)) +//go:build !(linux && (amd64 || arm64 || loong64)) package libc // import "modernc.org/libc" diff --git a/vendor/modernc.org/libc/libc_linux_arm64.go b/vendor/modernc.org/libc/libc_linux_arm64.go deleted file mode 100644 index adefd213..00000000 --- a/vendor/modernc.org/libc/libc_linux_arm64.go +++ /dev/null @@ -1,729 +0,0 @@ -// Copyright 2020 The Libc Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package libc // import "modernc.org/libc" - -import ( - "os" - "strings" - gotime "time" - "unsafe" - - "golang.org/x/sys/unix" - "modernc.org/libc/errno" - "modernc.org/libc/fcntl" - "modernc.org/libc/signal" - "modernc.org/libc/stdio" - "modernc.org/libc/sys/stat" - "modernc.org/libc/sys/types" - "modernc.org/libc/time" -) - -var ( - startTime = gotime.Now() // For clock(3) -) - -// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); -func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 { - if __ccgo_strace { - trc("t=%v signum=%v oldact=%v, (%v:)", t, signum, oldact, origin(2)) - } - // musl/src/internal/ksigaction.h - // - // struct k_sigaction { - // void (*handler)(int); - // unsigned long flags; - // void (*restorer)(void); - // unsigned mask[2]; - // }; - type k_sigaction struct { - handler uintptr - flags ulong - restorer uintptr - mask [2]uint32 - } - - var kact, koldact uintptr - if act != 0 { - sz := int(unsafe.Sizeof(k_sigaction{})) - kact = t.Alloc(sz) - defer t.Free(sz) - *(*k_sigaction)(unsafe.Pointer(kact)) = k_sigaction{ - handler: (*signal.Sigaction)(unsafe.Pointer(act)).F__sigaction_handler.Fsa_handler, - flags: ulong((*signal.Sigaction)(unsafe.Pointer(act)).Fsa_flags), - restorer: (*signal.Sigaction)(unsafe.Pointer(act)).Fsa_restorer, - } - Xmemcpy(t, kact+unsafe.Offsetof(k_sigaction{}.mask), act+unsafe.Offsetof(signal.Sigaction{}.Fsa_mask), types.Size_t(unsafe.Sizeof(k_sigaction{}.mask))) - } - if oldact != 0 { - panic(todo("")) - } - - if _, _, err := unix.Syscall6(unix.SYS_RT_SIGACTION, uintptr(signum), kact, koldact, unsafe.Sizeof(k_sigaction{}.mask), 0, 0); err != 0 { - t.setErrno(err) - return -1 - } - - if oldact != 0 { - panic(todo("")) - } - - return 0 -} - -// int lstat(const char *pathname, struct stat *statbuf); -func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 { - if __ccgo_strace { - trc("t=%v statbuf=%v, (%v:)", t, statbuf, origin(2)) - } - if err := unix.Lstat(GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf))); err != nil { - if dmesgs { - dmesg("%v: %q: %v", origin(1), GoString(pathname), err) - } - t.setErrno(err) - return -1 - } - - if dmesgs { - dmesg("%v: %q: ok", origin(1), GoString(pathname)) - } - return 0 -} - -// int stat(const char *pathname, struct stat *statbuf); -func Xstat64(t *TLS, pathname, statbuf uintptr) int32 { - if __ccgo_strace { - trc("t=%v statbuf=%v, (%v:)", t, statbuf, origin(2)) - } - if err := unix.Fstatat(unix.AT_FDCWD, GoString(pathname), (*unix.Stat_t)(unsafe.Pointer(statbuf)), 0); err != nil { - if dmesgs { - dmesg("%v: %q: %v", origin(1), GoString(pathname), err) - } - t.setErrno(err) - return -1 - } - - if dmesgs { - dmesg("%v: %q: ok", origin(1), GoString(pathname)) - } - return 0 -} - -// int unlink(const char *pathname); -func Xunlink(t *TLS, pathname uintptr) int32 { - if __ccgo_strace { - trc("t=%v pathname=%v, (%v:)", t, pathname, origin(2)) - } - if err := unix.Unlinkat(unix.AT_FDCWD, GoString(pathname), 0); err != nil { - t.setErrno(err) - return -1 - } - - if dmesgs { - dmesg("%v: %q: ok", origin(1), GoString(pathname)) - } - return 0 -} - -// int access(const char *pathname, int mode); -func Xaccess(t *TLS, pathname uintptr, mode int32) int32 { - if __ccgo_strace { - trc("t=%v pathname=%v mode=%v, (%v:)", t, pathname, mode, origin(2)) - } - if err := unix.Faccessat(unix.AT_FDCWD, GoString(pathname), uint32(mode), 0); err != nil { - if dmesgs { - dmesg("%v: %q: %v", origin(1), GoString(pathname), err) - } - t.setErrno(err) - return -1 - } - - if dmesgs { - dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode) - } - return 0 -} - -// off64_t lseek64(int fd, off64_t offset, int whence); -func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t { - if __ccgo_strace { - trc("t=%v fd=%v offset=%v whence=%v, (%v:)", t, fd, offset, whence, origin(2)) - } - n, _, err := unix.Syscall(unix.SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) - if err != 0 { - if dmesgs { - dmesg("%v: fd %v, off %#x, whence %v: %v", origin(1), fd, offset, whenceStr(whence), err) - } - t.setErrno(err) - return -1 - } - - if dmesgs { - dmesg("%v: fd %v, off %#x, whence %v: %#x", origin(1), fd, offset, whenceStr(whence), n) - } - return types.Off_t(n) -} - -// int fstat(int fd, struct stat *statbuf); -func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 { - if __ccgo_strace { - trc("t=%v fd=%v statbuf=%v, (%v:)", t, fd, statbuf, origin(2)) - } - if _, _, err := unix.Syscall(unix.SYS_FSTAT, uintptr(fd), statbuf, 0); err != 0 { - if dmesgs { - dmesg("%v: fd %d: %v", origin(1), fd, err) - } - t.setErrno(err) - return -1 - } - - if dmesgs { - dmesg("%v: %d size %#x: ok\n%+v", origin(1), fd, (*stat.Stat)(unsafe.Pointer(statbuf)).Fst_size, (*stat.Stat)(unsafe.Pointer(statbuf))) - } - return 0 -} - -// int ftruncate(int fd, off_t length); -func Xftruncate64(t *TLS, fd int32, length types.Off_t) int32 { - if __ccgo_strace { - trc("t=%v fd=%v length=%v, (%v:)", t, fd, length, origin(2)) - } - if _, _, err := unix.Syscall(unix.SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0); err != 0 { - if dmesgs { - dmesg("%v: fd %d: %v", origin(1), fd, err) - } - t.setErrno(err) - return -1 - } - - if dmesgs { - dmesg("%v: %d %#x: ok", origin(1), fd, length) - } - return 0 -} - -// int fcntl(int fd, int cmd, ... /* arg */ ); -func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) int32 { - if __ccgo_strace { - trc("t=%v cmd=%v args=%v, (%v:)", t, cmd, args, origin(2)) - } - var arg uintptr - if args != 0 { - arg = *(*uintptr)(unsafe.Pointer(args)) - } - if cmd == fcntl.F_SETFL { - arg |= unix.O_LARGEFILE - } - n, _, err := unix.Syscall(unix.SYS_FCNTL, uintptr(fd), uintptr(cmd), arg) - if err != 0 { - if dmesgs { - dmesg("%v: fd %v cmd %v", origin(1), fcntlCmdStr(fd), cmd) - } - t.setErrno(err) - return -1 - } - - if dmesgs { - dmesg("%v: %d %s %#x: %d", origin(1), fd, fcntlCmdStr(cmd), arg, n) - } - return int32(n) -} - -// int rmdir(const char *pathname); -func Xrmdir(t *TLS, pathname uintptr) int32 { - if __ccgo_strace { - trc("t=%v pathname=%v, (%v:)", t, pathname, origin(2)) - } - if err := unix.Rmdir(GoString(pathname)); err != nil { - t.setErrno(err) - return -1 - } - - if dmesgs { - dmesg("%v: %q: ok", origin(1), GoString(pathname)) - } - return 0 -} - -// int rename(const char *oldpath, const char *newpath); -func Xrename(t *TLS, oldpath, newpath uintptr) int32 { - if __ccgo_strace { - trc("t=%v newpath=%v, (%v:)", t, newpath, origin(2)) - } - if err := unix.Rename(GoString(oldpath), GoString(newpath)); err != nil { - t.setErrno(err) - return -1 - } - - return 0 -} - -// int mknod(const char *pathname, mode_t mode, dev_t dev); -func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 { - if __ccgo_strace { - trc("t=%v pathname=%v mode=%v dev=%v, (%v:)", t, pathname, mode, dev, origin(2)) - } - panic(todo("")) -} - -// int chown(const char *pathname, uid_t owner, gid_t group); -func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 { - if __ccgo_strace { - trc("t=%v pathname=%v owner=%v group=%v, (%v:)", t, pathname, owner, group, origin(2)) - } - if err := unix.Chown(GoString(pathname), int(owner), int(group)); err != nil { - t.setErrno(err) - return -1 - } - - return 0 -} - -// int link(const char *oldpath, const char *newpath); -func Xlink(t *TLS, oldpath, newpath uintptr) int32 { - if __ccgo_strace { - trc("t=%v newpath=%v, (%v:)", t, newpath, origin(2)) - } - panic(todo("")) -} - -// int pipe(int pipefd[2]); -func Xpipe(t *TLS, pipefd uintptr) int32 { - if __ccgo_strace { - trc("t=%v pipefd=%v, (%v:)", t, pipefd, origin(2)) - } - if _, _, err := unix.Syscall(unix.SYS_PIPE2, pipefd, 0, 0); err != 0 { - t.setErrno(err) - return -1 - } - - return 0 -} - -// int dup2(int oldfd, int newfd); -func Xdup2(t *TLS, oldfd, newfd int32) int32 { - if __ccgo_strace { - trc("t=%v newfd=%v, (%v:)", t, newfd, origin(2)) - } - panic(todo("")) -} - -// int getrlimit(int resource, struct rlimit *rlim); -func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 { - if __ccgo_strace { - trc("t=%v resource=%v rlim=%v, (%v:)", t, resource, rlim, origin(2)) - } - if _, _, err := unix.Syscall(unix.SYS_GETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 { - t.setErrno(err) - return -1 - } - - return 0 -} - -// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize); -func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t { - if __ccgo_strace { - trc("t=%v buf=%v bufsize=%v, (%v:)", t, buf, bufsize, origin(2)) - } - n, err := unix.Readlink(GoString(path), GoBytes(buf, int(bufsize))) - if err != nil { - t.setErrno(err) - return -1 - } - - return types.Ssize_t(n) -} - -// FILE *fopen64(const char *pathname, const char *mode); -func Xfopen64(t *TLS, pathname, mode uintptr) uintptr { - if __ccgo_strace { - trc("t=%v mode=%v, (%v:)", t, mode, origin(2)) - } - m := strings.ReplaceAll(GoString(mode), "b", "") - var flags int - switch m { - case "r": - flags = os.O_RDONLY - case "r+": - flags = os.O_RDWR - case "w": - flags = os.O_WRONLY | os.O_CREATE | os.O_TRUNC - case "w+": - flags = os.O_RDWR | os.O_CREATE | os.O_TRUNC - case "a": - flags = os.O_WRONLY | os.O_CREATE | os.O_APPEND - case "a+": - flags = os.O_RDWR | os.O_CREATE | os.O_APPEND - default: - panic(m) - } - //TODO- flags |= fcntl.O_LARGEFILE - fd, err := unix.Openat(unix.AT_FDCWD, GoString(pathname), flags, 0666) - if err != nil { - t.setErrno(err) - return 0 - } - - if p := newFile(t, int32(fd)); p != 0 { - return p - } - - Xclose(t, int32(fd)) - t.setErrno(errno.ENOMEM) - return 0 -} - -// int mkdir(const char *path, mode_t mode); -func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 { - if __ccgo_strace { - trc("t=%v path=%v mode=%v, (%v:)", t, path, mode, origin(2)) - } - if err := unix.Mkdir(GoString(path), uint32(mode)); err != nil { - t.setErrno(err) - return -1 - } - - if dmesgs { - dmesg("%v: %q: ok", origin(1), GoString(path)) - } - return 0 -} - -// void *mremap(void *old_address, size_t old_size, size_t new_size, int flags, ... /* void *new_address */); -func Xmremap(t *TLS, old_address uintptr, old_size, new_size types.Size_t, flags int32, args uintptr) uintptr { - if __ccgo_strace { - trc("t=%v old_address=%v new_size=%v flags=%v args=%v, (%v:)", t, old_address, new_size, flags, args, origin(2)) - } - var arg uintptr - if args != 0 { - arg = *(*uintptr)(unsafe.Pointer(args)) - } - data, _, err := unix.Syscall6(unix.SYS_MREMAP, old_address, uintptr(old_size), uintptr(new_size), uintptr(flags), arg, 0) - if err != 0 { - if dmesgs { - dmesg("%v: %v", origin(1), err) - } - t.setErrno(err) - return ^uintptr(0) // (void*)-1 - } - - if dmesgs { - dmesg("%v: %#x", origin(1), data) - } - return data -} - -func Xmmap(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr { - if __ccgo_strace { - trc("t=%v addr=%v length=%v fd=%v offset=%v, (%v:)", t, addr, length, fd, offset, origin(2)) - } - return Xmmap64(t, addr, length, prot, flags, fd, offset) -} - -// void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); -func Xmmap64(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr { - if __ccgo_strace { - trc("t=%v addr=%v length=%v fd=%v offset=%v, (%v:)", t, addr, length, fd, offset, origin(2)) - } - data, _, err := unix.Syscall6(unix.SYS_MMAP, addr, uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - if err != 0 { - if dmesgs { - dmesg("%v: %v", origin(1), err) - } - t.setErrno(err) - return ^uintptr(0) // (void*)-1 - } - - if dmesgs { - dmesg("%v: %#x", origin(1), data) - } - return data -} - -// int symlink(const char *target, const char *linkpath); -func Xsymlink(t *TLS, target, linkpath uintptr) int32 { - if __ccgo_strace { - trc("t=%v linkpath=%v, (%v:)", t, linkpath, origin(2)) - } - if err := unix.Symlink(GoString(target), GoString(linkpath)); err != nil { - t.setErrno(err) - return -1 - } - - if dmesgs { - dmesg("%v: %q %q: ok", origin(1), GoString(target), GoString(linkpath)) - } - return 0 -} - -// int chmod(const char *pathname, mode_t mode) -func Xchmod(t *TLS, pathname uintptr, mode types.Mode_t) int32 { - if __ccgo_strace { - trc("t=%v pathname=%v mode=%v, (%v:)", t, pathname, mode, origin(2)) - } - if err := unix.Chmod(GoString(pathname), uint32(mode)); err != nil { - t.setErrno(err) - return -1 - } - - if dmesgs { - dmesg("%v: %q %#o: ok", origin(1), GoString(pathname), mode) - } - return 0 -} - -// time_t time(time_t *tloc); -func Xtime(t *TLS, tloc uintptr) types.Time_t { - if __ccgo_strace { - trc("t=%v tloc=%v, (%v:)", t, tloc, origin(2)) - } - n := gotime.Now().UTC().Unix() - if tloc != 0 { - *(*types.Time_t)(unsafe.Pointer(tloc)) = types.Time_t(n) - } - return types.Time_t(n) -} - -// int utimes(const char *filename, const struct timeval times[2]); -func Xutimes(t *TLS, filename, times uintptr) int32 { - if __ccgo_strace { - trc("t=%v times=%v, (%v:)", t, times, origin(2)) - } - var tv []unix.Timeval - if times != 0 { - tv = make([]unix.Timeval, 2) - *(*[2]unix.Timeval)(unsafe.Pointer(&tv[0])) = *(*[2]unix.Timeval)(unsafe.Pointer(times)) - } - if err := unix.Utimes(GoString(filename), tv); err != nil { - t.setErrno(err) - return -1 - } - - if times != 0 { - *(*[2]unix.Timeval)(unsafe.Pointer(times)) = *(*[2]unix.Timeval)(unsafe.Pointer(&tv[0])) - } - if dmesgs { - dmesg("%v: %q: ok", origin(1), GoString(filename)) - } - return 0 -} - -// int utime(const char *filename, const struct utimbuf *times); -func Xutime(t *TLS, filename, times uintptr) int32 { - if __ccgo_strace { - trc("t=%v times=%v, (%v:)", t, times, origin(2)) - } - if times == 0 { - return Xutimes(t, filename, 0) - } - - if err := unix.Utime(GoString(filename), (*unix.Utimbuf)(unsafe.Pointer(times))); err != nil { - t.setErrno(err) - return -1 - } - - return 0 -} - -// unsigned int alarm(unsigned int seconds); -func Xalarm(t *TLS, seconds uint32) uint32 { - if __ccgo_strace { - trc("t=%v seconds=%v, (%v:)", t, seconds, origin(2)) - } - panic(todo("")) -} - -// int setrlimit(int resource, const struct rlimit *rlim); -func Xsetrlimit64(t *TLS, resource int32, rlim uintptr) int32 { - if __ccgo_strace { - trc("t=%v resource=%v rlim=%v, (%v:)", t, resource, rlim, origin(2)) - } - if _, _, err := unix.Syscall(unix.SYS_SETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 { - t.setErrno(err) - return -1 - } - - return 0 -} - -func AtomicLoadNUint8(ptr uintptr, memorder int32) uint8 { - return byte(a_load_8(ptr)) -} - -var _table1 = [384]int32{ - 129: int32(1), - 130: int32(2), - 131: int32(3), - 132: int32(4), - 133: int32(5), - 134: int32(6), - 135: int32(7), - 136: int32(8), - 137: int32(9), - 138: int32(10), - 139: int32(11), - 140: int32(12), - 141: int32(13), - 142: int32(14), - 143: int32(15), - 144: int32(16), - 145: int32(17), - 146: int32(18), - 147: int32(19), - 148: int32(20), - 149: int32(21), - 150: int32(22), - 151: int32(23), - 152: int32(24), - 153: int32(25), - 154: int32(26), - 155: int32(27), - 156: int32(28), - 157: int32(29), - 158: int32(30), - 159: int32(31), - 160: int32(32), - 161: int32(33), - 162: int32(34), - 163: int32(35), - 164: int32(36), - 165: int32(37), - 166: int32(38), - 167: int32(39), - 168: int32(40), - 169: int32(41), - 170: int32(42), - 171: int32(43), - 172: int32(44), - 173: int32(45), - 174: int32(46), - 175: int32(47), - 176: int32(48), - 177: int32(49), - 178: int32(50), - 179: int32(51), - 180: int32(52), - 181: int32(53), - 182: int32(54), - 183: int32(55), - 184: int32(56), - 185: int32(57), - 186: int32(58), - 187: int32(59), - 188: int32(60), - 189: int32(61), - 190: int32(62), - 191: int32(63), - 192: int32(64), - 193: int32('a'), - 194: int32('b'), - 195: int32('c'), - 196: int32('d'), - 197: int32('e'), - 198: int32('f'), - 199: int32('g'), - 200: int32('h'), - 201: int32('i'), - 202: int32('j'), - 203: int32('k'), - 204: int32('l'), - 205: int32('m'), - 206: int32('n'), - 207: int32('o'), - 208: int32('p'), - 209: int32('q'), - 210: int32('r'), - 211: int32('s'), - 212: int32('t'), - 213: int32('u'), - 214: int32('v'), - 215: int32('w'), - 216: int32('x'), - 217: int32('y'), - 218: int32('z'), - 219: int32(91), - 220: int32(92), - 221: int32(93), - 222: int32(94), - 223: int32(95), - 224: int32(96), - 225: int32('a'), - 226: int32('b'), - 227: int32('c'), - 228: int32('d'), - 229: int32('e'), - 230: int32('f'), - 231: int32('g'), - 232: int32('h'), - 233: int32('i'), - 234: int32('j'), - 235: int32('k'), - 236: int32('l'), - 237: int32('m'), - 238: int32('n'), - 239: int32('o'), - 240: int32('p'), - 241: int32('q'), - 242: int32('r'), - 243: int32('s'), - 244: int32('t'), - 245: int32('u'), - 246: int32('v'), - 247: int32('w'), - 248: int32('x'), - 249: int32('y'), - 250: int32('z'), - 251: int32(123), - 252: int32(124), - 253: int32(125), - 254: int32(126), - 255: int32(127), -} - -var _ptable1 = uintptr(unsafe.Pointer(&_table1)) + uintptr(128)*4 - -func X__ctype_tolower_loc(tls *TLS) (r uintptr) { - if __ccgo_strace { - trc("tls=%v, (%v:)", tls, origin(2)) - defer func() { trc("-> %v", r) }() - } - return uintptr(unsafe.Pointer(&_ptable1)) -} - -type Tin6_addr = struct { - F__in6_union struct { - F__s6_addr16 [0][8]uint16 - F__s6_addr32 [0][4]uint32 - F__s6_addr [16]uint8 - } -} - -var Xin6addr_any = Tin6_addr{} - -func Xrewinddir(tls *TLS, f uintptr) { - if __ccgo_strace { - trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) - } - Xfseek(tls, f, 0, stdio.SEEK_SET) -} - -// clock_t clock(void); -func Xclock(t *TLS) time.Clock_t { - if __ccgo_strace { - trc("t=%v, (%v:)", t, origin(2)) - } - return time.Clock_t(gotime.Since(startTime) * gotime.Duration(time.CLOCKS_PER_SEC) / gotime.Second) -} - -const __NFDBITS = 64 - -func X__fdelt_chk(tls *TLS, d int64) (r int64) { - if __ccgo_strace { - trc("tls=%v d=%v, (%v:)", tls, d, origin(2)) - defer func() { trc("-> %v", r) }() - } - - return d / __NFDBITS -} diff --git a/vendor/modernc.org/libc/libc_musl.go b/vendor/modernc.org/libc/libc_musl.go index 57cec4e1..7a06d448 100644 --- a/vendor/modernc.org/libc/libc_musl.go +++ b/vendor/modernc.org/libc/libc_musl.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build linux && (amd64 || loong64) +//go:build linux && (amd64 || arm64 || loong64) //go:generate go run generator.go @@ -122,7 +122,9 @@ import ( "syscall" "unsafe" + guuid "github.com/google/uuid" "golang.org/x/sys/unix" + "modernc.org/libc/uuid/uuid" "modernc.org/memory" ) @@ -276,15 +278,18 @@ type TLS struct { allocaStack []int allocas []uintptr jumpBuffers []uintptr + pendingSignals chan os.Signal pthread uintptr // *t__pthread pthreadCleanupItems []pthreadCleanupItem pthreadKeyValues map[Tpthread_key_t]uintptr + sigHandlers map[int32]uintptr sp int stack []tlsStackSlot ID int32 - ownsPthread bool + checkSignals bool + ownsPthread bool } var __ccgo_environOnce sync.Once @@ -309,6 +314,7 @@ func NewTLS() (r *TLS) { ID: id, ownsPthread: true, pthread: pthread, + sigHandlers: map[int32]uintptr{}, } } @@ -402,6 +408,29 @@ func (tls *TLS) Alloc(n0 int) (r uintptr) { func (tls *TLS) Free(n int) { //TODO shrink stacks if possible. Tcl is currently against. tls.sp-- + if !tls.checkSignals { + return + } + + select { + case sig := <-tls.pendingSignals: + signum := int32(sig.(syscall.Signal)) + h, ok := tls.sigHandlers[signum] + if !ok { + break + } + + switch h { + case SIG_DFL: + // nop + case SIG_IGN: + // nop + default: + (*(*func(*TLS, int32))(unsafe.Pointer(&struct{ uintptr }{h})))(tls, signum) + } + default: + // nop + } } func (tls *TLS) alloca(n Tsize_t) (r uintptr) { @@ -473,6 +502,10 @@ func Xexit(tls *TLS, code int32) { for _, v := range atExit { v() } + atExitHandlersMu.Lock() + for _, v := range atExitHandlers { + (*(*func(*TLS))(unsafe.Pointer(&struct{ uintptr }{v})))(tls) + } os.Exit(int(code)) } @@ -645,24 +678,33 @@ func Xfork(t *TLS) int32 { const SIG_DFL = 0 const SIG_IGN = 1 -var sigHandlers = map[int32]uintptr{} - func Xsignal(tls *TLS, signum int32, handler uintptr) (r uintptr) { - r, sigHandlers[signum] = sigHandlers[signum], handler - sigHandlers[signum] = handler + r, tls.sigHandlers[signum] = tls.sigHandlers[signum], handler switch handler { case SIG_DFL: gosignal.Reset(syscall.Signal(signum)) case SIG_IGN: gosignal.Ignore(syscall.Signal(signum)) default: - panic(todo("")) + if tls.pendingSignals == nil { + tls.pendingSignals = make(chan os.Signal, 3) + tls.checkSignals = true + } + gosignal.Notify(tls.pendingSignals, syscall.Signal(signum)) } return r } +var ( + atExitHandlersMu sync.Mutex + atExitHandlers []uintptr +) + func Xatexit(tls *TLS, func_ uintptr) (r int32) { - return -1 + atExitHandlersMu.Lock() + atExitHandlers = append(atExitHandlers, func_) + atExitHandlersMu.Unlock() + return 0 } var __sync_synchronize_dummy int32 @@ -1012,22 +1054,43 @@ func Xsysctlbyname(t *TLS, name, oldp, oldlenp, newp uintptr, newlen Tsize_t) in // void uuid_copy(uuid_t dst, uuid_t src); func Xuuid_copy(t *TLS, dst, src uintptr) { - panic(todo("")) + if __ccgo_strace { + trc("t=%v src=%v, (%v:)", t, src, origin(2)) + } + *(*uuid.Uuid_t)(unsafe.Pointer(dst)) = *(*uuid.Uuid_t)(unsafe.Pointer(src)) } // int uuid_parse( char *in, uuid_t uu); func Xuuid_parse(t *TLS, in uintptr, uu uintptr) int32 { - panic(todo("")) + if __ccgo_strace { + trc("t=%v in=%v uu=%v, (%v:)", t, in, uu, origin(2)) + } + r, err := guuid.Parse(GoString(in)) + if err != nil { + return -1 + } + + copy((*RawMem)(unsafe.Pointer(uu))[:unsafe.Sizeof(uuid.Uuid_t{})], r[:]) + return 0 } // void uuid_generate_random(uuid_t out); func Xuuid_generate_random(t *TLS, out uintptr) { - panic(todo("")) + if __ccgo_strace { + trc("t=%v out=%v, (%v:)", t, out, origin(2)) + } + x := guuid.New() + copy((*RawMem)(unsafe.Pointer(out))[:], x[:]) } // void uuid_unparse(uuid_t uu, char *out); func Xuuid_unparse(t *TLS, uu, out uintptr) { - panic(todo("")) + if __ccgo_strace { + trc("t=%v out=%v, (%v:)", t, out, origin(2)) + } + s := (*guuid.UUID)(unsafe.Pointer(uu)).String() + copy((*RawMem)(unsafe.Pointer(out))[:], s) + *(*byte)(unsafe.Pointer(out + uintptr(len(s)))) = 0 } var Xzero_struct_address Taddress diff --git a/vendor/modernc.org/libc/libc_musl_linux_amd64.go b/vendor/modernc.org/libc/libc_musl_linux_amd64.go index 914a4d9e..784595d7 100644 --- a/vendor/modernc.org/libc/libc_musl_linux_amd64.go +++ b/vendor/modernc.org/libc/libc_musl_linux_amd64.go @@ -2,9 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build linux && amd64 - -package libc // import "modernc.org/libc +package libc // import "modernc.org/libc" import ( "golang.org/x/sys/unix" diff --git a/vendor/modernc.org/libc/libc_musl_linux_arm64.go b/vendor/modernc.org/libc/libc_musl_linux_arm64.go new file mode 100644 index 00000000..784595d7 --- /dev/null +++ b/vendor/modernc.org/libc/libc_musl_linux_arm64.go @@ -0,0 +1,29 @@ +// Copyright 2023 The Libc Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package libc // import "modernc.org/libc" + +import ( + "golang.org/x/sys/unix" +) + +type long = int64 + +type ulong = uint64 + +// RawMem represents the biggest byte array the runtime can handle +type RawMem [1<<50 - 1]byte + +// int renameat2(int olddirfd, const char *oldpath, int newdirfd, const char *newpath, unsigned int flags); +func Xrenameat2(t *TLS, olddirfd int32, oldpath uintptr, newdirfd int32, newpath uintptr, flags int32) int32 { + if __ccgo_strace { + trc("t=%v olddirfd=%v oldpath=%v newdirfd=%v newpath=%v flags=%v, (%v:)", t, olddirfd, oldpath, newdirfd, newpath, flags, origin(2)) + } + if _, _, err := unix.Syscall6(unix.SYS_RENAMEAT2, uintptr(olddirfd), oldpath, uintptr(newdirfd), newpath, uintptr(flags), 0); err != 0 { + t.setErrno(int32(err)) + return -1 + } + + return 0 +} diff --git a/vendor/modernc.org/libc/libc_musl_linux_loong64.go b/vendor/modernc.org/libc/libc_musl_linux_loong64.go index d6a00f18..784595d7 100644 --- a/vendor/modernc.org/libc/libc_musl_linux_loong64.go +++ b/vendor/modernc.org/libc/libc_musl_linux_loong64.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -package libc // import "modernc.org/libc +package libc // import "modernc.org/libc" import ( "golang.org/x/sys/unix" diff --git a/vendor/modernc.org/libc/libc_unix.go b/vendor/modernc.org/libc/libc_unix.go index 0e50da1f..3521442f 100644 --- a/vendor/modernc.org/libc/libc_unix.go +++ b/vendor/modernc.org/libc/libc_unix.go @@ -2,9 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build unix && !(linux && (amd64 || loong64)) -// +build unix -// +build !linux !amd64,!loong64 +//go:build unix && !(linux && (amd64 || arm64 || loong64)) package libc // import "modernc.org/libc" diff --git a/vendor/modernc.org/libc/libc_unix1.go b/vendor/modernc.org/libc/libc_unix1.go index 45cd8458..60175451 100644 --- a/vendor/modernc.org/libc/libc_unix1.go +++ b/vendor/modernc.org/libc/libc_unix1.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build unix && !illumos && !(linux && (amd64 || loong64)) && !openbsd +//go:build unix && !illumos && !(linux && (amd64 || arm64 || loong64)) && !openbsd package libc // import "modernc.org/libc" diff --git a/vendor/modernc.org/libc/mem.go b/vendor/modernc.org/libc/mem.go index 27fc2141..e1473b1d 100644 --- a/vendor/modernc.org/libc/mem.go +++ b/vendor/modernc.org/libc/mem.go @@ -2,10 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !libc.membrk && !libc.memgrind && !(linux && (amd64 || loong64)) -// +build !libc.membrk -// +build !libc.memgrind -// +build !linux !amd64,!loong64 +//go:build !libc.membrk && !libc.memgrind && !(linux && (amd64 || arm64 || loong64)) package libc // import "modernc.org/libc" diff --git a/vendor/modernc.org/libc/mem_brk.go b/vendor/modernc.org/libc/mem_brk.go index 28821a0d..2b4f155b 100644 --- a/vendor/modernc.org/libc/mem_brk.go +++ b/vendor/modernc.org/libc/mem_brk.go @@ -2,10 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build libc.membrk && !libc.memgrind && !(linux && (amd64 || loong64)) -// +build libc.membrk -// +build !libc.memgrind -// +build !linux !amd64,!loong64 +//go:build libc.membrk && !libc.memgrind && !(linux && (amd64 || arm64 || loong64)) // This is a debug-only version of the memory handling functions. When a // program is built with -tags=libc.membrk a simple but safe version of malloc diff --git a/vendor/modernc.org/libc/mem_brk_musl.go b/vendor/modernc.org/libc/mem_brk_musl.go index f21a8c62..260132a5 100644 --- a/vendor/modernc.org/libc/mem_brk_musl.go +++ b/vendor/modernc.org/libc/mem_brk_musl.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build libc.membrk && !libc.memgrind && linux && (amd64 || loong64) +//go:build libc.membrk && !libc.memgrind && linux && (amd64 || arm64 || loong64) // This is a debug-only version of the memory handling functions. When a // program is built with -tags=libc.membrk a simple but safe version of malloc @@ -12,7 +12,7 @@ // The fixed heap is initially filled with random bytes from a full cycle PRNG, // program startup time is substantially prolonged. -package libc // import "modernc.org/libc/v2" +package libc // import "modernc.org/libc" import ( "fmt" diff --git a/vendor/modernc.org/libc/mem_musl.go b/vendor/modernc.org/libc/mem_musl.go index 01f74f1a..78770dff 100644 --- a/vendor/modernc.org/libc/mem_musl.go +++ b/vendor/modernc.org/libc/mem_musl.go @@ -2,13 +2,13 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !libc.membrk && !libc.memgrind && linux && (amd64 || loong64) +//go:build !libc.membrk && !libc.memgrind && linux && (amd64 || arm64 || loong64) -package libc // import "modernc.org/libc/v2" +package libc // import "modernc.org/libc" import ( "math" - "math/bits" + mbits "math/bits" "modernc.org/memory" ) @@ -49,7 +49,7 @@ func Xcalloc(tls *TLS, m Tsize_t, n Tsize_t) (r uintptr) { trc("tls=%v m=%v n=%v, (%v:)", tls, m, n, origin(2)) defer func() { trc("-> %v", r) }() } - hi, rq := bits.Mul(uint(m), uint(n)) + hi, rq := mbits.Mul(uint(m), uint(n)) if hi != 0 || rq > math.MaxInt { tls.setErrno(ENOMEM) return 0 diff --git a/vendor/modernc.org/libc/memgrind.go b/vendor/modernc.org/libc/memgrind.go index bce59b41..32e0a6d6 100644 --- a/vendor/modernc.org/libc/memgrind.go +++ b/vendor/modernc.org/libc/memgrind.go @@ -2,10 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !libc.membrk && libc.memgrind && !(linux && (amd64 || loong64)) -// +build !libc.membrk -// +build libc.memgrind -// +build !linux !amd64,!loong64 +//go:build !libc.membrk && libc.memgrind && !(linux && (amd64 || arm64 || loong64)) // This is a debug-only version of the memory handling functions. When a // program is built with -tags=libc.memgrind the functions MemAuditStart and diff --git a/vendor/modernc.org/libc/memgrind_musl.go b/vendor/modernc.org/libc/memgrind_musl.go index c68c4046..6507d4ca 100644 --- a/vendor/modernc.org/libc/memgrind_musl.go +++ b/vendor/modernc.org/libc/memgrind_musl.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !libc.membrk && libc.memgrind && linux && (amd64 || loong64) +//go:build !libc.membrk && libc.memgrind && linux && (amd64 || arm64 || loong64) // This is a debug-only version of the memory handling functions. When a // program is built with -tags=libc.memgrind the functions MemAuditStart and diff --git a/vendor/modernc.org/libc/musl_linux_arm64.go b/vendor/modernc.org/libc/musl_linux_arm64.go deleted file mode 100644 index 65e3ed7e..00000000 --- a/vendor/modernc.org/libc/musl_linux_arm64.go +++ /dev/null @@ -1,7289 +0,0 @@ -// Code generated by 'ccgo -export-externs X -hide __syscall0,__syscall1,__syscall2,__syscall3,__syscall4,__syscall5,__syscall6 -nostdinc -nostdlib -o ../musl_linux_arm64.go -pkgname libc -static-locals-prefix _s -Iarch/aarch64 -Iarch/generic -Iobj/src/internal -Isrc/include -Isrc/internal -Iobj/include -Iinclude copyright.c src/ctype/__ctype_b_loc.c src/ctype/isalnum.c src/ctype/isalpha.c src/ctype/isdigit.c src/ctype/islower.c src/ctype/isprint.c src/ctype/isupper.c src/ctype/isxdigit.c src/dirent/closedir.c src/dirent/opendir.c src/dirent/readdir.c src/internal/floatscan.c src/internal/intscan.c src/internal/shgetc.c src/locale/localeconv.c src/math/__fpclassify.c src/math/__fpclassifyf.c src/math/__fpclassifyl.c src/math/copysignl.c src/math/fabsl.c src/math/fmodl.c src/math/nanf.c src/math/rint.c src/math/scalbn.c src/math/scalbnl.c src/multibyte/internal.c src/multibyte/mbrtowc.c src/multibyte/mbsinit.c src/network/freeaddrinfo.c src/network/getaddrinfo.c src/network/gethostbyaddr.c src/network/gethostbyaddr_r.c src/network/gethostbyname.c src/network/gethostbyname2.c src/network/gethostbyname2_r.c src/network/gethostbyname_r.c src/network/getnameinfo.c src/network/h_errno.c src/network/inet_aton.c src/network/inet_ntop.c src/network/inet_pton.c src/network/lookup_ipliteral.c src/network/lookup_name.c src/network/lookup_serv.c src/prng/rand_r.c src/stdio/__lockfile.c src/stdio/__toread.c src/stdio/__uflow.c src/stdio/sscanf.c src/stdio/vfscanf.c src/stdio/vsscanf.c src/stdlib/bsearch.c src/stdlib/strtod.c src/stdlib/strtol.c src/string/strdup.c src/string/strlcat.c src/string/strlcpy.c src/string/strncasecmp.c src/string/strncat.c src/string/strnlen.c src/string/strspn.c src/string/strtok.c src/thread/pthread_attr_get.c src/thread/pthread_attr_setdetachstate.c src/thread/pthread_mutex_lock.c src/thread/pthread_mutexattr_destroy.c src/thread/pthread_mutexattr_init.c src/thread/pthread_mutexattr_settype.c', DO NOT EDIT. - -package libc - -import ( - "math" - "reflect" - "sync/atomic" - "unsafe" -) - -var _ = math.Pi -var _ reflect.Kind -var _ atomic.Value -var _ unsafe.Pointer - -// musl as a whole is licensed under the following standard MIT license: -// -// ---------------------------------------------------------------------- -// Copyright © 2005-2020 Rich Felker, et al. -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// ---------------------------------------------------------------------- -// -// Authors/contributors include: -// -// A. Wilcox -// Ada Worcester -// Alex Dowad -// Alex Suykov -// Alexander Monakov -// Andre McCurdy -// Andrew Kelley -// Anthony G. Basile -// Aric Belsito -// Arvid Picciani -// Bartosz Brachaczek -// Benjamin Peterson -// Bobby Bingham -// Boris Brezillon -// Brent Cook -// Chris Spiegel -// Clément Vasseur -// Daniel Micay -// Daniel Sabogal -// Daurnimator -// David Carlier -// David Edelsohn -// Denys Vlasenko -// Dmitry Ivanov -// Dmitry V. Levin -// Drew DeVault -// Emil Renner Berthing -// Fangrui Song -// Felix Fietkau -// Felix Janda -// Gianluca Anzolin -// Hauke Mehrtens -// He X -// Hiltjo Posthuma -// Isaac Dunham -// Jaydeep Patil -// Jens Gustedt -// Jeremy Huntwork -// Jo-Philipp Wich -// Joakim Sindholt -// John Spencer -// Julien Ramseier -// Justin Cormack -// Kaarle Ritvanen -// Khem Raj -// Kylie McClain -// Leah Neukirchen -// Luca Barbato -// Luka Perkov -// M Farkas-Dyck (Strake) -// Mahesh Bodapati -// Markus Wichmann -// Masanori Ogino -// Michael Clark -// Michael Forney -// Mikhail Kremnyov -// Natanael Copa -// Nicholas J. Kain -// orc -// Pascal Cuoq -// Patrick Oppenlander -// Petr Hosek -// Petr Skocik -// Pierre Carrier -// Reini Urban -// Rich Felker -// Richard Pennington -// Ryan Fairfax -// Samuel Holland -// Segev Finer -// Shiz -// sin -// Solar Designer -// Stefan Kristiansson -// Stefan O'Rear -// Szabolcs Nagy -// Timo Teräs -// Trutz Behn -// Valentin Ochs -// Will Dietz -// William Haddon -// William Pitcock -// -// Portions of this software are derived from third-party works licensed -// under terms compatible with the above MIT license: -// -// The TRE regular expression implementation (src/regex/reg* and -// src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed -// under a 2-clause BSD license (license text in the source files). The -// included version has been heavily modified by Rich Felker in 2012, in -// the interests of size, simplicity, and namespace cleanliness. -// -// Much of the math library code (src/math/* and src/complex/*) is -// Copyright © 1993,2004 Sun Microsystems or -// Copyright © 2003-2011 David Schultz or -// Copyright © 2003-2009 Steven G. Kargl or -// Copyright © 2003-2009 Bruce D. Evans or -// Copyright © 2008 Stephen L. Moshier or -// Copyright © 2017-2018 Arm Limited -// and labelled as such in comments in the individual source files. All -// have been licensed under extremely permissive terms. -// -// The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008 -// The Android Open Source Project and is licensed under a two-clause BSD -// license. It was taken from Bionic libc, used on Android. -// -// The AArch64 memcpy and memset code (src/string/aarch64/*) are -// Copyright © 1999-2019, Arm Limited. -// -// The implementation of DES for crypt (src/crypt/crypt_des.c) is -// Copyright © 1994 David Burren. It is licensed under a BSD license. -// -// The implementation of blowfish crypt (src/crypt/crypt_blowfish.c) was -// originally written by Solar Designer and placed into the public -// domain. The code also comes with a fallback permissive license for use -// in jurisdictions that may not recognize the public domain. -// -// The smoothsort implementation (src/stdlib/qsort.c) is Copyright © 2011 -// Valentin Ochs and is licensed under an MIT-style license. -// -// The x86_64 port was written by Nicholas J. Kain and is licensed under -// the standard MIT terms. -// -// The mips and microblaze ports were originally written by Richard -// Pennington for use in the ellcc project. The original code was adapted -// by Rich Felker for build system and code conventions during upstream -// integration. It is licensed under the standard MIT terms. -// -// The mips64 port was contributed by Imagination Technologies and is -// licensed under the standard MIT terms. -// -// The powerpc port was also originally written by Richard Pennington, -// and later supplemented and integrated by John Spencer. It is licensed -// under the standard MIT terms. -// -// All other files which have no copyright comments are original works -// produced specifically for use as part of this library, written either -// by Rich Felker, the main author of the library, or by one or more -// contibutors listed above. Details on authorship of individual files -// can be found in the git version control history of the project. The -// omission of copyright and license comments in each file is in the -// interest of source tree size. -// -// In addition, permission is hereby granted for all public header files -// (include/* and arch/*/bits/*) and crt files intended to be linked into -// applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit -// the copyright notice and permission notice otherwise required by the -// license, and to use these files without any requirement of -// attribution. These files include substantial contributions from: -// -// Bobby Bingham -// John Spencer -// Nicholas J. Kain -// Rich Felker -// Richard Pennington -// Stefan Kristiansson -// Szabolcs Nagy -// -// all of whom have explicitly granted such permission. -// -// This file previously contained text expressing a belief that most of -// the files covered by the above exception were sufficiently trivial not -// to be subject to copyright, resulting in confusion over whether it -// negated the permissions granted in the license. In the spirit of -// permissive licensing, and of not having licensing issues being an -// obstacle to adoption, that text has been removed. -const ( /* copyright.c:194:1: */ - __musl__copyright__ = 0 -) - -const ( /* nameser.h:117:1: */ - ns_uop_delete = 0 - ns_uop_add = 1 - ns_uop_max = 2 -) - -const ( /* nameser.h:147:1: */ - ns_t_invalid = 0 - ns_t_a = 1 - ns_t_ns = 2 - ns_t_md = 3 - ns_t_mf = 4 - ns_t_cname = 5 - ns_t_soa = 6 - ns_t_mb = 7 - ns_t_mg = 8 - ns_t_mr = 9 - ns_t_null = 10 - ns_t_wks = 11 - ns_t_ptr = 12 - ns_t_hinfo = 13 - ns_t_minfo = 14 - ns_t_mx = 15 - ns_t_txt = 16 - ns_t_rp = 17 - ns_t_afsdb = 18 - ns_t_x25 = 19 - ns_t_isdn = 20 - ns_t_rt = 21 - ns_t_nsap = 22 - ns_t_nsap_ptr = 23 - ns_t_sig = 24 - ns_t_key = 25 - ns_t_px = 26 - ns_t_gpos = 27 - ns_t_aaaa = 28 - ns_t_loc = 29 - ns_t_nxt = 30 - ns_t_eid = 31 - ns_t_nimloc = 32 - ns_t_srv = 33 - ns_t_atma = 34 - ns_t_naptr = 35 - ns_t_kx = 36 - ns_t_cert = 37 - ns_t_a6 = 38 - ns_t_dname = 39 - ns_t_sink = 40 - ns_t_opt = 41 - ns_t_apl = 42 - ns_t_tkey = 249 - ns_t_tsig = 250 - ns_t_ixfr = 251 - ns_t_axfr = 252 - ns_t_mailb = 253 - ns_t_maila = 254 - ns_t_any = 255 - ns_t_zxfr = 256 - ns_t_max = 65536 -) - -const ( /* nameser.h:210:1: */ - ns_c_invalid = 0 - ns_c_in = 1 - ns_c_2 = 2 - ns_c_chaos = 3 - ns_c_hs = 4 - ns_c_none = 254 - ns_c_any = 255 - ns_c_max = 65536 -) - -const ( /* nameser.h:221:1: */ - ns_kt_rsa = 1 - ns_kt_dh = 2 - ns_kt_dsa = 3 - ns_kt_private = 254 -) - -const ( /* nameser.h:228:1: */ - cert_t_pkix = 1 - cert_t_spki = 2 - cert_t_pgp = 3 - cert_t_url = 253 - cert_t_oid = 254 -) - -const ( /* nameser.h:28:1: */ - ns_s_qd = 0 - ns_s_zn = 0 - ns_s_an = 1 - ns_s_pr = 1 - ns_s_ns = 2 - ns_s_ud = 2 - ns_s_ar = 3 - ns_s_max = 4 -) - -const ( /* nameser.h:75:1: */ - ns_f_qr = 0 - ns_f_opcode = 1 - ns_f_aa = 2 - ns_f_tc = 3 - ns_f_rd = 4 - ns_f_ra = 5 - ns_f_z = 6 - ns_f_ad = 7 - ns_f_cd = 8 - ns_f_rcode = 9 - ns_f_max = 10 -) - -const ( /* nameser.h:89:1: */ - ns_o_query = 0 - ns_o_iquery = 1 - ns_o_status = 2 - ns_o_notify = 4 - ns_o_update = 5 - ns_o_max = 6 -) - -const ( /* nameser.h:98:1: */ - ns_r_noerror = 0 - ns_r_formerr = 1 - ns_r_servfail = 2 - ns_r_nxdomain = 3 - ns_r_notimpl = 4 - ns_r_refused = 5 - ns_r_yxdomain = 6 - ns_r_yxrrset = 7 - ns_r_nxrrset = 8 - ns_r_notauth = 9 - ns_r_notzone = 10 - ns_r_max = 11 - ns_r_badvers = 16 - ns_r_badsig = 16 - ns_r_badkey = 17 - ns_r_badtime = 18 -) - -const ( /* pthread_impl.h:58:1: */ - DT_EXITING = 0 - DT_JOINABLE = 1 - DT_DETACHED = 2 -) - -type ptrdiff_t = int64 /* :3:26 */ - -type size_t = uint64 /* :9:23 */ - -type wchar_t = uint32 /* :15:24 */ - -type uint16_t = uint16 /* alltypes.h:134:25 */ - -type uint32_t = uint32 /* alltypes.h:139:25 */ - -type uint64_t = uint64 /* alltypes.h:144:25 */ - -func __bswap32(tls *TLS, __x uint32_t) uint32_t { /* endian.h:24:26: */ - return __x>>24 | __x>>8&uint32_t(0xff00) | __x<<8&uint32_t(0xff0000) | __x<<24 -} - -var table = [384]uint16{ - uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), - uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), - uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), - uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), - uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), - uint16((0x200/256 | 0x200*256) % 65536), uint16((0x320/256 | 0x320*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x220/256 | 0x220*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), - uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), - uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), - uint16((0x160/256 | 0x160*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), - uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), - uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), - uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x8d8/256 | 0x8d8*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), - uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8d5/256 | 0x8d5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), - uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), - uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), - uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x8c5/256 | 0x8c5*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), - uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8d6/256 | 0x8d6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), - uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), - uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), - uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x8c6/256 | 0x8c6*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x4c0/256 | 0x4c0*256) % 65536), uint16((0x200/256 | 0x200*256) % 65536), - uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), - uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), - uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), - uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), uint16(0), -} /* __ctype_b_loc.c:9:29 */ - -var ptable uintptr = 0 /* __ctype_b_loc.c:36:29 */ - -func X__ctype_b_loc(tls *TLS) uintptr { /* __ctype_b_loc.c:38:22: */ - if __ccgo_strace { - trc("tls=%v, (%v:)", tls, origin(2)) - } - return uintptr(unsafe.Pointer(&ptable)) -} - -func __isspace(tls *TLS, _c int32) int32 { /* ctype.h:26:21: */ - return Bool32(_c == ' ' || uint32(_c)-uint32('\t') < uint32(5)) -} - -type __locale_struct = struct{ cat [6]uintptr } /* alltypes.h:351:9 */ - -type locale_t = uintptr /* alltypes.h:351:32 */ - -func Xisalnum(tls *TLS, c int32) int32 { /* isalnum.c:3:5: */ - if __ccgo_strace { - trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) - } - return Bool32(func() int32 { - if 0 != 0 { - return Xisalpha(tls, c) - } - return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26)) - }() != 0 || func() int32 { - if 0 != 0 { - return Xisdigit(tls, c) - } - return Bool32(uint32(c)-uint32('0') < uint32(10)) - }() != 0) -} - -func X__isalnum_l(tls *TLS, c int32, l locale_t) int32 { /* isalnum.c:8:5: */ - if __ccgo_strace { - trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) - } - return Xisalnum(tls, c) -} - -func Xisalpha(tls *TLS, c int32) int32 { /* isalpha.c:4:5: */ - if __ccgo_strace { - trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) - } - return Bool32(uint32(c)|uint32(32)-uint32('a') < uint32(26)) -} - -func X__isalpha_l(tls *TLS, c int32, l locale_t) int32 { /* isalpha.c:9:5: */ - if __ccgo_strace { - trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) - } - return Xisalpha(tls, c) -} - -func Xisdigit(tls *TLS, c int32) int32 { /* isdigit.c:4:5: */ - if __ccgo_strace { - trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) - } - return Bool32(uint32(c)-uint32('0') < uint32(10)) -} - -func X__isdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isdigit.c:9:5: */ - if __ccgo_strace { - trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) - } - return Xisdigit(tls, c) -} - -func Xislower(tls *TLS, c int32) int32 { /* islower.c:4:5: */ - if __ccgo_strace { - trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) - } - return Bool32(uint32(c)-uint32('a') < uint32(26)) -} - -func X__islower_l(tls *TLS, c int32, l locale_t) int32 { /* islower.c:9:5: */ - if __ccgo_strace { - trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) - } - return Xislower(tls, c) -} - -func Xisprint(tls *TLS, c int32) int32 { /* isprint.c:4:5: */ - if __ccgo_strace { - trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) - } - return Bool32(uint32(c)-uint32(0x20) < uint32(0x5f)) -} - -func X__isprint_l(tls *TLS, c int32, l locale_t) int32 { /* isprint.c:9:5: */ - if __ccgo_strace { - trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) - } - return Xisprint(tls, c) -} - -func Xisupper(tls *TLS, c int32) int32 { /* isupper.c:4:5: */ - if __ccgo_strace { - trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) - } - return Bool32(uint32(c)-uint32('A') < uint32(26)) -} - -func X__isupper_l(tls *TLS, c int32, l locale_t) int32 { /* isupper.c:9:5: */ - if __ccgo_strace { - trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) - } - return Xisupper(tls, c) -} - -func Xisxdigit(tls *TLS, c int32) int32 { /* isxdigit.c:3:5: */ - if __ccgo_strace { - trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) - } - return Bool32(func() int32 { - if 0 != 0 { - return Xisdigit(tls, c) - } - return Bool32(uint32(c)-uint32('0') < uint32(10)) - }() != 0 || uint32(c)|uint32(32)-uint32('a') < uint32(6)) -} - -func X__isxdigit_l(tls *TLS, c int32, l locale_t) int32 { /* isxdigit.c:8:5: */ - if __ccgo_strace { - trc("tls=%v c=%v l=%v, (%v:)", tls, c, l, origin(2)) - } - return Xisxdigit(tls, c) -} - -type off_t = int64 /* alltypes.h:170:16 */ - -type ino_t = uint64 /* alltypes.h:175:25 */ - -type dirent = struct { - d_ino ino_t - d_off off_t - d_reclen uint16 - d_type uint8 - d_name [256]uint8 - _ [5]byte -} /* dirent.h:5:1 */ - -type __dirstream = struct { - tell off_t - fd int32 - buf_pos int32 - buf_end int32 - lock [1]int32 - buf [2048]uint8 -} /* dirent.h:20:9 */ - -type DIR = __dirstream /* dirent.h:20:28 */ - -type ssize_t = int64 /* alltypes.h:73:15 */ - -type intptr_t = int64 /* alltypes.h:78:15 */ - -type pid_t = int32 /* alltypes.h:243:13 */ - -type uid_t = uint32 /* alltypes.h:253:18 */ - -type gid_t = uint32 /* alltypes.h:258:18 */ - -type useconds_t = uint32 /* alltypes.h:268:18 */ - -type div_t = struct { - quot int32 - rem int32 -} /* stdlib.h:62:35 */ -type ldiv_t = struct { - quot int64 - rem int64 -} /* stdlib.h:63:36 */ -type lldiv_t = struct { - quot int64 - rem int64 -} /* stdlib.h:64:41 */ - -func Xclosedir(tls *TLS, dir uintptr) int32 { /* closedir.c:6:5: */ - if __ccgo_strace { - trc("tls=%v dir=%v, (%v:)", tls, dir, origin(2)) - } - var ret int32 = Xclose(tls, (*DIR)(unsafe.Pointer(dir)).fd) - Xfree(tls, dir) - return ret -} - -type mode_t = uint32 /* alltypes.h:160:18 */ - -type iovec = struct { - iov_base uintptr - iov_len size_t -} /* alltypes.h:363:1 */ - -type flock = struct { - l_type int16 - l_whence int16 - _ [4]byte - l_start off_t - l_len off_t - l_pid pid_t - _ [4]byte -} /* fcntl.h:24:1 */ - -type file_handle = struct { - _ [0]uint32 - handle_bytes uint32 - handle_type int32 -} /* fcntl.h:167:1 */ - -type f_owner_ex = struct { - __type int32 - pid pid_t -} /* fcntl.h:172:1 */ - -type syscall_arg_t = int64 /* syscall.h:22:14 */ - -func Xopendir(tls *TLS, name uintptr) uintptr { /* opendir.c:8:5: */ - if __ccgo_strace { - trc("tls=%v name=%v, (%v:)", tls, name, origin(2)) - } - var fd int32 - var dir uintptr - - if AssignInt32(&fd, Xopen(tls, name, 00|040000|02000000, 0)) < 0 { - return uintptr(0) - } - if !(int32(AssignUintptr(&dir, Xcalloc(tls, uint64(1), uint64(unsafe.Sizeof(DIR{}))))) != 0) { - X__syscall1(tls, int64(57), int64(fd)) - return uintptr(0) - } - (*DIR)(unsafe.Pointer(dir)).fd = fd - return dir -} - -type max_align_t = struct { - __ll int64 - __ld float64 -} /* alltypes.h:49:54 */ - -type dirstream_buf_alignment_check = [1]uint8 /* readdir.c:7:14 */ - -func Xreaddir(tls *TLS, dir uintptr) uintptr { /* readdir.c:10:15: */ - if __ccgo_strace { - trc("tls=%v dir=%v, (%v:)", tls, dir, origin(2)) - } - var de uintptr - - if (*DIR)(unsafe.Pointer(dir)).buf_pos >= (*DIR)(unsafe.Pointer(dir)).buf_end { - var len int32 = int32(X__syscall3(tls, int64(61), int64((*DIR)(unsafe.Pointer(dir)).fd), int64(dir+24), int64(unsafe.Sizeof([2048]uint8{})))) - if len <= 0 { - if len < 0 && len != -2 { - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = -len - } - return uintptr(0) - } - (*DIR)(unsafe.Pointer(dir)).buf_end = len - (*DIR)(unsafe.Pointer(dir)).buf_pos = 0 - } - de = dir + 24 + uintptr((*DIR)(unsafe.Pointer(dir)).buf_pos) - *(*int32)(unsafe.Pointer(dir + 12)) += int32((*dirent)(unsafe.Pointer(de)).d_reclen) - (*DIR)(unsafe.Pointer(dir)).tell = (*dirent)(unsafe.Pointer(de)).d_off - return de -} - -type uintptr_t = uint64 /* alltypes.h:63:24 */ - -type int8_t = int8 /* alltypes.h:104:25 */ - -type int16_t = int16 /* alltypes.h:109:25 */ - -type int32_t = int32 /* alltypes.h:114:25 */ - -type int64_t = int64 /* alltypes.h:119:25 */ - -type intmax_t = int64 /* alltypes.h:124:25 */ - -type uint8_t = uint8 /* alltypes.h:129:25 */ - -type uintmax_t = uint64 /* alltypes.h:154:25 */ - -type int_fast8_t = int8_t /* stdint.h:22:16 */ -type int_fast64_t = int64_t /* stdint.h:23:17 */ - -type int_least8_t = int8_t /* stdint.h:25:17 */ -type int_least16_t = int16_t /* stdint.h:26:17 */ -type int_least32_t = int32_t /* stdint.h:27:17 */ -type int_least64_t = int64_t /* stdint.h:28:17 */ - -type uint_fast8_t = uint8_t /* stdint.h:30:17 */ -type uint_fast64_t = uint64_t /* stdint.h:31:18 */ - -type uint_least8_t = uint8_t /* stdint.h:33:18 */ -type uint_least16_t = uint16_t /* stdint.h:34:18 */ -type uint_least32_t = uint32_t /* stdint.h:35:18 */ -type uint_least64_t = uint64_t /* stdint.h:36:18 */ - -type int_fast16_t = int32_t /* stdint.h:1:17 */ -type int_fast32_t = int32_t /* stdint.h:2:17 */ -type uint_fast16_t = uint32_t /* stdint.h:3:18 */ -type uint_fast32_t = uint32_t /* stdint.h:4:18 */ - -type _IO_FILE = struct { - flags uint32 - _ [4]byte - rpos uintptr - rend uintptr - close uintptr - wend uintptr - wpos uintptr - mustbezero_1 uintptr - wbase uintptr - read uintptr - write uintptr - seek uintptr - buf uintptr - buf_size size_t - prev uintptr - next uintptr - fd int32 - pipe_pid int32 - lockcount int64 - mode int32 - lock int32 - lbf int32 - _ [4]byte - cookie uintptr - off off_t - getln_buf uintptr - mustbezero_2 uintptr - shend uintptr - shlim off_t - shcnt off_t - prev_locked uintptr - next_locked uintptr - locale uintptr -} /* alltypes.h:328:9 */ - -type FILE = _IO_FILE /* alltypes.h:328:25 */ - -type va_list = uintptr /* alltypes.h:334:27 */ - -type _G_fpos64_t = struct { - _ [0]uint64 - __opaque [16]uint8 -} /* stdio.h:54:9 */ - -type fpos_t = _G_fpos64_t /* stdio.h:58:3 */ - -type float_t = float32 /* alltypes.h:38:15 */ - -type double_t = float64 /* alltypes.h:43:16 */ - -func __FLOAT_BITS(tls *TLS, __f float32) uint32 { /* math.h:55:26: */ - bp := tls.Alloc(4) - defer tls.Free(4) - - // var __u struct {__f float32;} at bp, 4 - - *(*float32)(unsafe.Pointer(bp)) = __f - return *(*uint32)(unsafe.Pointer(bp)) -} - -func __DOUBLE_BITS(tls *TLS, __f float64) uint64 { /* math.h:61:36: */ - bp := tls.Alloc(8) - defer tls.Free(8) - - // var __u struct {__f float64;} at bp, 8 - - *(*float64)(unsafe.Pointer(bp)) = __f - return *(*uint64)(unsafe.Pointer(bp)) -} - -type __pthread = struct { - self uintptr - dtv uintptr - prev uintptr - next uintptr - sysinfo uintptr_t - canary uintptr_t - canary2 uintptr_t - tid int32 - errno_val int32 - detach_state int32 - cancel int32 - canceldisable uint8 - cancelasync uint8 - tsd_used uint8 /* unsigned char tsd_used: 1, unsigned char dlerror_flag: 1 */ - _ [5]byte - map_base uintptr - map_size size_t - stack uintptr - stack_size size_t - guard_size size_t - result uintptr - cancelbuf uintptr - tsd uintptr - robust_list struct { - head uintptr - off int64 - pending uintptr - } - timer_id int32 - _ [4]byte - locale locale_t - killlock [1]int32 - _ [4]byte - dlerror_buf uintptr - stdio_locks uintptr - canary_at_end uintptr_t - dtv_copy uintptr -} /* alltypes.h:281:9 */ - -func scanexp(tls *TLS, f uintptr, pok int32) int64 { /* floatscan.c:37:18: */ - var c int32 - var x int32 - var y int64 - var neg int32 = 0 - - c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() - if c == '+' || c == '-' { - neg = Bool32(c == '-') - c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() - if uint32(c-'0') >= 10 && pok != 0 { - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - } - } - if uint32(c-'0') >= 10 { - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - return -0x7fffffffffffffff - int64(1) - } - for x = 0; uint32(c-'0') < 10 && x < 0x7fffffff/10; c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() { - x = 10*x + c - '0' - } - for y = int64(x); uint32(c-'0') < 10 && y < 0x7fffffffffffffff/int64(100); c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() { - y = int64(10)*y + int64(c) - int64('0') - } - for ; uint32(c-'0') < 10; c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() { - } - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - if neg != 0 { - return -y - } - return y -} - -func decfloat(tls *TLS, f uintptr, c int32, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:64:20: */ - bp := tls.Alloc(512) - defer tls.Free(512) - - // var x [128]uint32_t at bp, 512 - - var i int32 - var j int32 - var k int32 - var a int32 - var z int32 - var lrp int64 = int64(0) - var dc int64 = int64(0) - var e10 int64 = int64(0) - var lnz int32 = 0 - var gotdig int32 = 0 - var gotrad int32 = 0 - var rp int32 - var e2 int32 - var emax int32 = -emin - bits + 3 - var denormal int32 = 0 - var y float64 - var frac float64 = float64(0) - var bias float64 = float64(0) - - j = 0 - k = 0 - - // Don't let leading zeros consume buffer space - for ; c == '0'; c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() { - gotdig = 1 - } - if c == '.' { - gotrad = 1 - for c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }(); c == '0'; c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() { - gotdig = 1 - lrp-- - } - } - - *(*uint32_t)(unsafe.Pointer(bp)) = uint32_t(0) - for ; uint32(c-'0') < 10 || c == '.'; c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() { - if c == '.' { - if gotrad != 0 { - break - } - gotrad = 1 - lrp = dc - } else if k < 128-3 { - dc++ - if c != '0' { - lnz = int32(dc) - } - if j != 0 { - *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))*uint32_t(10) + uint32_t(c) - uint32_t('0') - } else { - *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(c - '0') - } - if PreIncInt32(&j, 1) == 9 { - k++ - j = 0 - } - gotdig = 1 - } else { - dc++ - if c != '0' { - lnz = (128 - 4) * 9 - *(*uint32_t)(unsafe.Pointer(bp + 124*4)) |= uint32_t(1) - } - } - } - if !(gotrad != 0) { - lrp = dc - } - - if gotdig != 0 && c|32 == 'e' { - e10 = scanexp(tls, f, pok) - if e10 == -0x7fffffffffffffff-int64(1) { - if pok != 0 { - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - } else { - X__shlim(tls, f, int64(0)) - return float64(0) - } - e10 = int64(0) - } - lrp = lrp + e10 - } else if c >= 0 { - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - } - if !(gotdig != 0) { - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 - X__shlim(tls, f, int64(0)) - return float64(0) - } - - // Handle zero specially to avoid nasty special cases later - if !(int32(*(*uint32_t)(unsafe.Pointer(bp))) != 0) { - return float64(sign) * 0.0 - } - - // Optimize small integers (w/no exponent) and over/under-flow - if lrp == dc && dc < int64(10) && (bits > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bits == uint32_t(0)) { - return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) - } - if lrp > int64(-emin/2) { - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 - return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308 - } - if lrp < int64(emin-2*53) { - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 - return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308 - } - - // Align incomplete final B1B digit - if j != 0 { - for ; j < 9; j++ { - *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) *= uint32_t(10) - } - k++ - j = 0 - } - - a = 0 - z = k - e2 = 0 - rp = int32(lrp) - - // Optimize small to mid-size integers (even in exp. notation) - if lnz < 9 && lnz <= rp && rp < 18 { - if rp == 9 { - return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) - } - if rp < 9 { - return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) / float64(_sp10s[8-rp]) - } - var bitlim int32 = bits - 3*(rp-9) - if bitlim > 30 || *(*uint32_t)(unsafe.Pointer(bp))>>bitlim == uint32_t(0) { - return float64(sign) * float64(*(*uint32_t)(unsafe.Pointer(bp))) * float64(_sp10s[rp-10]) - } - } - - // Drop trailing zeros - for ; !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(z-1)*4))) != 0); z-- { - } - - // Align radix point to B1B digit boundary - if rp%9 != 0 { - var rpm9 int32 - if rp >= 0 { - rpm9 = rp % 9 - } else { - rpm9 = rp%9 + 9 - } - var p10 int32 = _sp10s[8-rpm9] - var carry uint32_t = uint32_t(0) - for k = a; k != z; k++ { - var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) % uint32_t(p10) - *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))/uint32_t(p10) + carry - carry = uint32_t(1000000000/p10) * tmp - if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) { - a = (a + 1) & (128 - 1) - rp = rp - 9 - } - } - if carry != 0 { - *(*uint32_t)(unsafe.Pointer(bp + uintptr(PostIncInt32(&z, 1))*4)) = carry - } - rp = rp + (9 - rpm9) - } - - // Upscale until desired number of bits are left of radix point - for rp < 9*2 || rp == 9*2 && *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) < _sth[0] { - var carry uint32_t = uint32_t(0) - e2 = e2 - 29 - for k = (z - 1) & (128 - 1); ; k = (k - 1) & (128 - 1) { - var tmp uint64_t = uint64_t(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)))<<29 + uint64_t(carry) - if tmp > uint64(1000000000) { - carry = uint32_t(tmp / uint64(1000000000)) - *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp % uint64(1000000000)) - } else { - carry = uint32_t(0) - *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) = uint32_t(tmp) - } - if k == (z-1)&(128-1) && k != a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) { - z = k - } - if k == a { - break - } - } - if carry != 0 { - rp = rp + 9 - a = (a - 1) & (128 - 1) - if a == z { - z = (z - 1) & (128 - 1) - *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) - } - *(*uint32_t)(unsafe.Pointer(bp + uintptr(a)*4)) = carry - } - } - - // Downscale until exactly number of bits are left of radix point - for { - var carry uint32_t = uint32_t(0) - var sh int32 = 1 - for i = 0; i < 2; i++ { - k = (a + i) & (128 - 1) - if k == z || *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) < _sth[i] { - i = 2 - break - } - if *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) > _sth[i] { - break - } - } - if i == 2 && rp == 9*2 { - break - } - // FIXME: find a way to compute optimal sh - if rp > 9+9*2 { - sh = 9 - } - e2 = e2 + sh - for k = a; k != z; k = (k + 1) & (128 - 1) { - var tmp uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4)) & uint32_t(int32(1)<>sh + carry - carry = uint32_t(int32(1000000000)>>sh) * tmp - if k == a && !(int32(*(*uint32_t)(unsafe.Pointer(bp + uintptr(k)*4))) != 0) { - a = (a + 1) & (128 - 1) - i-- - rp = rp - 9 - } - } - if carry != 0 { - if (z+1)&(128-1) != a { - *(*uint32_t)(unsafe.Pointer(bp + uintptr(z)*4)) = carry - z = (z + 1) & (128 - 1) - } else { - *(*uint32_t)(unsafe.Pointer(bp + uintptr((z-1)&(128-1))*4)) |= uint32_t(1) - } - } - } - - // Assemble desired bits into floating point variable - for y = float64(AssignInt32(&i, 0)); i < 2; i++ { - if (a+i)&(128-1) == z { - *(*uint32_t)(unsafe.Pointer(bp + uintptr(AssignInt32(&z, (z+1)&(128-1))-1)*4)) = uint32_t(0) - } - y = 1000000000.0*y + float64(*(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4))) - } - - y = y * float64(sign) - - // Limit precision for denormal results - if bits > 53+e2-emin { - bits = 53 + e2 - emin - if bits < 0 { - bits = 0 - } - denormal = 1 - } - - // Calculate bias term to force rounding, move out lower bits - if bits < 53 { - bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 2*53-bits-1), y) - frac = Xfmodl(tls, y, Xscalbn(tls, float64(1), 53-bits)) - y = y - frac - y = y + bias - } - - // Process tail of decimal input so it can affect rounding - if (a+i)&(128-1) != z { - var t uint32_t = *(*uint32_t)(unsafe.Pointer(bp + uintptr((a+i)&(128-1))*4)) - if t < uint32_t(500000000) && (t != 0 || (a+i+1)&(128-1) != z) { - frac = frac + 0.25*float64(sign) - } else if t > uint32_t(500000000) { - frac = frac + 0.75*float64(sign) - } else if t == uint32_t(500000000) { - if (a+i+1)&(128-1) == z { - frac = frac + 0.5*float64(sign) - } else { - frac = frac + 0.75*float64(sign) - } - } - if 53-bits >= 2 && !(Xfmodl(tls, frac, float64(1)) != 0) { - frac += 1 - } - } - - y = y + frac - y = y - bias - - if (e2+53)&0x7fffffff > emax-5 { - if Xfabsl(tls, y) >= float64(float64(2))/2.22044604925031308085e-16 { - if denormal != 0 && bits == 53+e2-emin { - denormal = 0 - } - y = y * 0.5 - e2++ - } - if e2+53 > emax || denormal != 0 && frac != 0 { - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 - } - } - - return Xscalbnl(tls, y, e2) -} - -var _sth = [2]uint32_t{uint32_t(9007199), uint32_t(254740991)} /* floatscan.c:67:24 */ -var _sp10s = [8]int32{10, 100, 1000, 10000, - 100000, 1000000, 10000000, 100000000} /* floatscan.c:80:19 */ - -func hexfloat(tls *TLS, f uintptr, bits int32, emin int32, sign int32, pok int32) float64 { /* floatscan.c:315:20: */ - var x uint32_t = uint32_t(0) - var y float64 = float64(0) - var scale float64 = float64(1) - var bias float64 = float64(0) - var gottail int32 = 0 - var gotrad int32 = 0 - var gotdig int32 = 0 - var rp int64 = int64(0) - var dc int64 = int64(0) - var e2 int64 = int64(0) - var d int32 - var c int32 - - c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() - - // Skip leading zeros - for ; c == '0'; c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() { - gotdig = 1 - } - - if c == '.' { - gotrad = 1 - c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() - // Count zeros after the radix point before significand - rp = int64(0) - __1: - if !(c == '0') { - goto __3 - } - gotdig = 1 - goto __2 - __2: - c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() - rp-- - goto __1 - goto __3 - __3: - } - - for ; uint32(c-'0') < 10 || uint32(c|32-'a') < 6 || c == '.'; c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() { - if c == '.' { - if gotrad != 0 { - break - } - rp = dc - gotrad = 1 - } else { - gotdig = 1 - if c > '9' { - d = c | 32 + 10 - 'a' - } else { - d = c - '0' - } - if dc < int64(8) { - x = x*uint32_t(16) + uint32_t(d) - } else if dc < int64(53/4+1) { - y = y + float64(d)*AssignDivFloat64(&scale, float64(16)) - } else if d != 0 && !(gottail != 0) { - y = y + 0.5*scale - gottail = 1 - } - dc++ - } - } - if !(gotdig != 0) { - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - if pok != 0 { - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - if gotrad != 0 { - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - } - } else { - X__shlim(tls, f, int64(0)) - } - return float64(sign) * 0.0 - } - if !(gotrad != 0) { - rp = dc - } - for dc < int64(8) { - x = x * uint32_t(16) - dc++ - } - if c|32 == 'p' { - e2 = scanexp(tls, f, pok) - if e2 == -0x7fffffffffffffff-int64(1) { - if pok != 0 { - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - } else { - X__shlim(tls, f, int64(0)) - return float64(0) - } - e2 = int64(0) - } - } else { - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - } - e2 = e2 + (int64(4)*rp - int64(32)) - - if !(x != 0) { - return float64(sign) * 0.0 - } - if e2 > int64(-emin) { - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 - return float64(sign) * 1.79769313486231570815e+308 * 1.79769313486231570815e+308 - } - if e2 < int64(emin-2*53) { - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 - return float64(sign) * 2.22507385850720138309e-308 * 2.22507385850720138309e-308 - } - - for x < 0x80000000 { - if y >= 0.5 { - x = x + (x + uint32_t(1)) - y = y + (y - float64(1)) - } else { - x = x + x - y = y + y - } - e2-- - } - - if int64(bits) > int64(32)+e2-int64(emin) { - bits = int32(int64(32) + e2 - int64(emin)) - if bits < 0 { - bits = 0 - } - } - - if bits < 53 { - bias = Xcopysignl(tls, Xscalbn(tls, float64(1), 32+53-bits-1), float64(sign)) - } - - if bits < 32 && y != 0 && !(x&uint32_t(1) != 0) { - x++ - y = float64(0) - } - - y = bias + float64(sign)*float64(x) + float64(sign)*y - y = y - bias - - if !(y != 0) { - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 - } - - return Xscalbnl(tls, y, int32(e2)) -} - -func X__floatscan(tls *TLS, f uintptr, prec int32, pok int32) float64 { /* floatscan.c:427:13: */ - if __ccgo_strace { - trc("tls=%v f=%v prec=%v pok=%v, (%v:)", tls, f, prec, pok, origin(2)) - } - var sign int32 = 1 - var i size_t - var bits int32 - var emin int32 - var c int32 - - switch prec { - case 0: - bits = 24 - emin = -125 - bits - break - case 1: - bits = 53 - emin = -1021 - bits - break - case 2: - bits = 53 - emin = -1021 - bits - break - default: - return float64(0) - } - - for __isspace(tls, AssignInt32(&c, func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }())) != 0 { - } - - if c == '+' || c == '-' { - sign = sign - 2*Bool32(c == '-') - c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() - } - - for i = uint64(0); i < uint64(8) && c|32 == int32(*(*uint8)(unsafe.Pointer(ts /* "infinity" */ + uintptr(i)))); i++ { - if i < uint64(7) { - c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() - } - } - if i == uint64(3) || i == uint64(8) || i > uint64(3) && pok != 0 { - if i != uint64(8) { - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - if pok != 0 { - for ; i > uint64(3); i-- { - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - } - } - } - return float64(float32(sign) * X__builtin_inff(tls)) - } - if !(i != 0) { - for i = uint64(0); i < uint64(3) && c|32 == int32(*(*uint8)(unsafe.Pointer(ts + 9 /* "nan" */ + uintptr(i)))); i++ { - if i < uint64(2) { - c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() - } - } - } - if i == uint64(3) { - if func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() != '(' { - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - return float64(X__builtin_nanf(tls, ts+13)) - } - for i = uint64(1); ; i++ { - c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() - if uint32(c-'0') < 10 || uint32(c-'A') < 26 || uint32(c-'a') < 26 || c == '_' { - continue - } - if c == ')' { - return float64(X__builtin_nanf(tls, ts+13)) - } - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - if !(pok != 0) { - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 - X__shlim(tls, f, int64(0)) - return float64(0) - } - for PostDecUint64(&i, 1) != 0 { - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - } - return float64(X__builtin_nanf(tls, ts+13)) - } - return float64(X__builtin_nanf(tls, ts+13)) - } - - if i != 0 { - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 - X__shlim(tls, f, int64(0)) - return float64(0) - } - - if c == '0' { - c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() - if c|32 == 'x' { - return hexfloat(tls, f, bits, emin, sign, pok) - } - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - c = '0' - } - - return decfloat(tls, f, c, bits, emin, sign, pok) -} - -// Lookup table for digit values. -1==255>=36 -> invalid -var table1 = [257]uint8{Uint8FromInt32(-1), - Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), - Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), - Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), - uint8(0), uint8(1), uint8(2), uint8(3), uint8(4), uint8(5), uint8(6), uint8(7), uint8(8), uint8(9), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), - Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24), - uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), - Uint8FromInt32(-1), uint8(10), uint8(11), uint8(12), uint8(13), uint8(14), uint8(15), uint8(16), uint8(17), uint8(18), uint8(19), uint8(20), uint8(21), uint8(22), uint8(23), uint8(24), - uint8(25), uint8(26), uint8(27), uint8(28), uint8(29), uint8(30), uint8(31), uint8(32), uint8(33), uint8(34), uint8(35), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), - Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), - Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), - Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), - Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), - Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), - Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), - Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), - Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), Uint8FromInt32(-1), -} /* intscan.c:7:28 */ - -func X__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) uint64 { /* intscan.c:26:20: */ - if __ccgo_strace { - trc("tls=%v f=%v base=%v pok=%v lim=%v, (%v:)", tls, f, base, pok, lim, origin(2)) - } - var val uintptr - var c int32 - var neg int32 - var x uint32 - var y uint64 - var bs int32 - val = uintptr(unsafe.Pointer(&table1)) + uintptr(1) - neg = 0 - if !(base > uint32(36) || base == uint32(1)) { - goto __1 - } - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 - return uint64(0) -__1: - ; -__2: - if !(__isspace(tls, AssignInt32(&c, func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }())) != 0) { - goto __3 - } - goto __2 -__3: - ; - if !(c == '+' || c == '-') { - goto __4 - } - neg = -Bool32(c == '-') - c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() -__4: - ; - if !((base == uint32(0) || base == uint32(16)) && c == '0') { - goto __5 - } - c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() - if !(c|32 == 'x') { - goto __7 - } - c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() - if !(int32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= 16) { - goto __9 - } - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - if !(pok != 0) { - goto __10 - } - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - goto __11 -__10: - X__shlim(tls, f, int64(0)) -__11: - ; - return uint64(0) -__9: - ; - base = uint32(16) - goto __8 -__7: - if !(base == uint32(0)) { - goto __12 - } - base = uint32(8) -__12: - ; -__8: - ; - goto __6 -__5: - if !(base == uint32(0)) { - goto __13 - } - base = uint32(10) -__13: - ; - if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) >= base) { - goto __14 - } - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - X__shlim(tls, f, int64(0)) - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 22 - return uint64(0) -__14: - ; -__6: - ; - if !(base == uint32(10)) { - goto __15 - } - x = uint32(0) -__17: - if !(uint32(c-'0') < 10 && x <= 0xffffffff/uint32(10)-uint32(1)) { - goto __19 - } - x = x*uint32(10) + uint32(c-'0') - goto __18 -__18: - c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() - goto __17 - goto __19 -__19: - ; - y = uint64(x) -__20: - if !(uint32(c-'0') < 10 && y <= (2*uint64(0x7fffffffffffffff)+uint64(1))/uint64(10) && uint64(10)*y <= 2*uint64(0x7fffffffffffffff)+uint64(1)-uint64(c-'0')) { - goto __22 - } - y = y*uint64(10) + uint64(c-'0') - goto __21 -__21: - c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() - goto __20 - goto __22 -__22: - ; - if !(uint32(c-'0') >= 10) { - goto __23 - } - goto done -__23: - ; - goto __16 -__15: - if !!(base&(base-uint32(1)) != 0) { - goto __24 - } - bs = int32(*(*uint8)(unsafe.Pointer(ts + 14 + uintptr(uint32(0x17)*base>>5&uint32(7))))) - x = uint32(0) -__26: - if !(uint32(*(*uint8)(unsafe.Pointer(val + uintptr(c)))) < base && x <= 0xffffffff/uint32(32)) { - goto __28 - } - x = x<>bs) { - goto __31 - } - y = y<= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - if !(y >= lim) { - goto __43 - } - if !(!(lim&uint64(1) != 0) && !(neg != 0)) { - goto __44 - } - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 - return lim - uint64(1) - goto __45 -__44: - if !(y > lim) { - goto __46 - } - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 34 - return lim -__46: - ; -__45: - ; -__43: - ; - return y ^ uint64(neg) - uint64(neg) -} - -// The shcnt field stores the number of bytes read so far, offset by -// the value of buf-rpos at the last function call (__shlim or __shgetc), -// so that between calls the inline shcnt macro can add rpos-buf to get -// the actual count. - -func X__shlim(tls *TLS, f uintptr, lim off_t) { /* shgetc.c:8:6: */ - if __ccgo_strace { - trc("tls=%v f=%v lim=%v, (%v:)", tls, f, lim, origin(2)) - } - (*FILE)(unsafe.Pointer(f)).shlim = lim - (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf) - int64((*FILE)(unsafe.Pointer(f)).rpos)) / 1 - // If lim is nonzero, rend must be a valid pointer. - if lim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > lim { - (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr(lim) - } else { - (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend - } -} - -func X__shgetc(tls *TLS, f uintptr) int32 { /* shgetc.c:19:5: */ - if __ccgo_strace { - trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) - } - var c int32 - var cnt off_t = (*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 - if (*FILE)(unsafe.Pointer(f)).shlim != 0 && cnt >= (*FILE)(unsafe.Pointer(f)).shlim || AssignInt32(&c, X__uflow(tls, f)) < 0 { - (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt - (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos - (*FILE)(unsafe.Pointer(f)).shlim = int64(-1) - return -1 - } - cnt++ - if (*FILE)(unsafe.Pointer(f)).shlim != 0 && (int64((*FILE)(unsafe.Pointer(f)).rend)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 > (*FILE)(unsafe.Pointer(f)).shlim-cnt { - (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rpos + uintptr((*FILE)(unsafe.Pointer(f)).shlim-cnt) - } else { - (*FILE)(unsafe.Pointer(f)).shend = (*FILE)(unsafe.Pointer(f)).rend - } - (*FILE)(unsafe.Pointer(f)).shcnt = (int64((*FILE)(unsafe.Pointer(f)).buf)-int64((*FILE)(unsafe.Pointer(f)).rpos))/1 + cnt - if (*FILE)(unsafe.Pointer(f)).rpos <= (*FILE)(unsafe.Pointer(f)).buf { - *(*uint8)(unsafe.Pointer((*FILE)(unsafe.Pointer(f)).rpos + UintptrFromInt32(-1))) = uint8(c) - } - return c -} - -type lconv = struct { - decimal_point uintptr - thousands_sep uintptr - grouping uintptr - int_curr_symbol uintptr - currency_symbol uintptr - mon_decimal_point uintptr - mon_thousands_sep uintptr - mon_grouping uintptr - positive_sign uintptr - negative_sign uintptr - int_frac_digits uint8 - frac_digits uint8 - p_cs_precedes uint8 - p_sep_by_space uint8 - n_cs_precedes uint8 - n_sep_by_space uint8 - p_sign_posn uint8 - n_sign_posn uint8 - int_p_cs_precedes uint8 - int_p_sep_by_space uint8 - int_n_cs_precedes uint8 - int_n_sep_by_space uint8 - int_p_sign_posn uint8 - int_n_sign_posn uint8 - _ [2]byte -} /* locale.h:24:1 */ - -// Support signed or unsigned plain-char - -// Implementation choices... - -// Arbitrary numbers... - -// POSIX/SUS requirements follow. These numbers come directly -// from SUS and have nothing to do with the host system. - -var posix_lconv = lconv{decimal_point: ts + 23, thousands_sep: ts + 13, grouping: ts + 13, int_curr_symbol: ts + 13, currency_symbol: ts + 13, mon_decimal_point: ts + 13, mon_thousands_sep: ts + 13, mon_grouping: ts + 13, positive_sign: ts + 13, negative_sign: ts + 13, int_frac_digits: uint8(255), frac_digits: uint8(255), p_cs_precedes: uint8(255), p_sep_by_space: uint8(255), n_cs_precedes: uint8(255), n_sep_by_space: uint8(255), p_sign_posn: uint8(255), n_sign_posn: uint8(255), int_p_cs_precedes: uint8(255), int_p_sep_by_space: uint8(255), int_n_cs_precedes: uint8(255), int_n_sep_by_space: uint8(255), int_p_sign_posn: uint8(255), int_n_sign_posn: uint8(255)} /* localeconv.c:4:27 */ - -func Xlocaleconv(tls *TLS) uintptr { /* localeconv.c:31:14: */ - if __ccgo_strace { - trc("tls=%v, (%v:)", tls, origin(2)) - } - return uintptr(unsafe.Pointer(&posix_lconv)) -} - -func X__fpclassify(tls *TLS, x float64) int32 { /* __fpclassify.c:4:5: */ - if __ccgo_strace { - trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) - } - bp := tls.Alloc(8) - defer tls.Free(8) - - *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) { - *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x - return r - }() - var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff)) - if !(e != 0) { - if *(*uint64_t)(unsafe.Pointer(bp))<<1 != 0 { - return 3 - } - return 2 - } - if e == 0x7ff { - if *(*uint64_t)(unsafe.Pointer(bp))<<12 != 0 { - return 0 - } - return 1 - } - return 4 -} - -func X__fpclassifyf(tls *TLS, x float32) int32 { /* __fpclassifyf.c:4:5: */ - if __ccgo_strace { - trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) - } - bp := tls.Alloc(4) - defer tls.Free(4) - - *(*struct{ f float32 })(unsafe.Pointer(bp)) = func() (r struct{ f float32 }) { - *(*float32)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x - return r - }() - var e int32 = int32(*(*uint32_t)(unsafe.Pointer(bp)) >> 23 & uint32_t(0xff)) - if !(e != 0) { - if *(*uint32_t)(unsafe.Pointer(bp))<<1 != 0 { - return 3 - } - return 2 - } - if e == 0xff { - if *(*uint32_t)(unsafe.Pointer(bp))<<9 != 0 { - return 0 - } - return 1 - } - return 4 -} - -func X__fpclassifyl(tls *TLS, x float64) int32 { /* __fpclassifyl.c:4:5: */ - if __ccgo_strace { - trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) - } - return X__fpclassify(tls, x) -} - -func Xcopysignl(tls *TLS, x float64, y float64) float64 { /* copysignl.c:4:13: */ - if __ccgo_strace { - trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) - } - return Xcopysign(tls, x, y) -} - -func Xfabsl(tls *TLS, x float64) float64 { /* fabsl.c:3:13: */ - if __ccgo_strace { - trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) - } - return Xfabs(tls, x) -} - -func Xfmodl(tls *TLS, x float64, y float64) float64 { /* fmodl.c:4:13: */ - if __ccgo_strace { - trc("tls=%v x=%v y=%v, (%v:)", tls, x, y, origin(2)) - } - return Xfmod(tls, x, y) -} - -func Xnanf(tls *TLS, s uintptr) float32 { /* nanf.c:3:7: */ - if __ccgo_strace { - trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) - } - return X__builtin_nanf(tls, ts+13) -} - -var toint double_t = float64(float64(1)) / 2.22044604925031308085e-16 /* rint.c:10:23 */ - -func Xrint(tls *TLS, x float64) float64 { /* rint.c:12:8: */ - if __ccgo_strace { - trc("tls=%v x=%v, (%v:)", tls, x, origin(2)) - } - bp := tls.Alloc(8) - defer tls.Free(8) - - *(*struct{ f float64 })(unsafe.Pointer(bp)) = func() (r struct{ f float64 }) { - *(*float64)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = x - return r - }() - var e int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 52 & uint64(0x7ff)) - var s int32 = int32(*(*uint64_t)(unsafe.Pointer(bp)) >> 63) - var y double_t - - if e >= 0x3ff+52 { - return x - } - if s != 0 { - y = x - toint + toint - } else { - y = x + toint - toint - } - if y == float64(0) { - if s != 0 { - return -Float64FromFloat64(0.0) - } - return float64(0) - } - return y -} - -func Xscalbn(tls *TLS, x float64, n int32) float64 { /* scalbn.c:4:8: */ - if __ccgo_strace { - trc("tls=%v x=%v n=%v, (%v:)", tls, x, n, origin(2)) - } - bp := tls.Alloc(8) - defer tls.Free(8) - - // var u struct {f float64;} at bp, 8 - - var y double_t = x - - if n > 1023 { - y = y * 0x1p1023 - n = n - 1023 - if n > 1023 { - y = y * 0x1p1023 - n = n - 1023 - if n > 1023 { - n = 1023 - } - } - } else if n < -1022 { - // make sure final n < -53 to avoid double - // rounding in the subnormal range - y = y * (float64(0x1p-1022) * 0x1p53) - n = n + (1022 - 53) - if n < -1022 { - y = y * (float64(0x1p-1022) * 0x1p53) - n = n + (1022 - 53) - if n < -1022 { - n = -1022 - } - } - } - *(*uint64_t)(unsafe.Pointer(bp)) = uint64_t(0x3ff+n) << 52 - x = y * *(*float64)(unsafe.Pointer(bp)) - return x -} - -func Xscalbnl(tls *TLS, x float64, n int32) float64 { /* scalbnl.c:4:13: */ - if __ccgo_strace { - trc("tls=%v x=%v n=%v, (%v:)", tls, x, n, origin(2)) - } - return Xscalbn(tls, x, n) -} - -// Support signed or unsigned plain-char - -// Implementation choices... - -// Arbitrary numbers... - -// POSIX/SUS requirements follow. These numbers come directly -// from SUS and have nothing to do with the host system. - -type __locale_map = struct { - __map uintptr - map_size size_t - name [24]uint8 - next uintptr -} /* alltypes.h:351:9 */ - -type tls_module = struct { - next uintptr - image uintptr - len size_t - size size_t - align size_t - offset size_t -} /* libc.h:14:1 */ - -type __libc = struct { - can_do_threads uint8 - threaded uint8 - secure uint8 - need_locks int8 - threads_minus_1 int32 - auxv uintptr - tls_head uintptr - tls_size size_t - tls_align size_t - tls_cnt size_t - page_size size_t - global_locale struct{ cat [6]uintptr } -} /* libc.h:20:1 */ - -type time_t = int64 /* alltypes.h:93:16 */ - -type clockid_t = int32 /* alltypes.h:222:13 */ - -type timespec = struct { - tv_sec time_t - tv_nsec int64 -} /* alltypes.h:237:1 */ - -type pthread_t = uintptr /* alltypes.h:281:26 */ - -type pthread_once_t = int32 /* alltypes.h:287:13 */ - -type pthread_key_t = uint32 /* alltypes.h:292:18 */ - -type pthread_spinlock_t = int32 /* alltypes.h:297:13 */ - -type pthread_mutexattr_t = struct{ __attr uint32 } /* alltypes.h:302:37 */ - -type pthread_condattr_t = struct{ __attr uint32 } /* alltypes.h:307:37 */ - -type pthread_barrierattr_t = struct{ __attr uint32 } /* alltypes.h:312:37 */ - -type pthread_rwlockattr_t = struct{ __attr [2]uint32 } /* alltypes.h:317:40 */ - -type __sigset_t = struct{ __bits [16]uint64 } /* alltypes.h:357:9 */ - -type sigset_t = __sigset_t /* alltypes.h:357:71 */ - -type pthread_attr_t = struct { - __u struct { - _ [0]uint64 - __i [14]int32 - } -} /* alltypes.h:380:147 */ - -type pthread_mutex_t = struct { - __u struct { - _ [0]uint64 - __i [10]int32 - } -} /* alltypes.h:385:157 */ - -type pthread_cond_t = struct { - __u struct { - _ [0]uint64 - __i [12]int32 - } -} /* alltypes.h:395:112 */ - -type pthread_rwlock_t = struct { - __u struct { - _ [0]uint64 - __i [14]int32 - } -} /* alltypes.h:405:139 */ - -type pthread_barrier_t = struct { - __u struct { - _ [0]uint64 - __i [8]int32 - } -} /* alltypes.h:410:137 */ - -type sched_param = struct { - sched_priority int32 - __reserved1 int32 - __reserved2 [2]struct { - __reserved1 time_t - __reserved2 int64 - } - __reserved3 int32 - _ [4]byte -} /* sched.h:19:1 */ - -type timer_t = uintptr /* alltypes.h:217:14 */ - -type clock_t = int64 /* alltypes.h:227:14 */ - -type tm = struct { - tm_sec int32 - tm_min int32 - tm_hour int32 - tm_mday int32 - tm_mon int32 - tm_year int32 - tm_wday int32 - tm_yday int32 - tm_isdst int32 - _ [4]byte - tm_gmtoff int64 - tm_zone uintptr -} /* time.h:38:1 */ - -type itimerspec = struct { - it_interval struct { - tv_sec time_t - tv_nsec int64 - } - it_value struct { - tv_sec time_t - tv_nsec int64 - } -} /* time.h:80:1 */ - -type sigevent = struct { - sigev_value struct { - _ [0]uint64 - sival_int int32 - _ [4]byte - } - sigev_signo int32 - sigev_notify int32 - sigev_notify_function uintptr - sigev_notify_attributes uintptr - __pad [32]uint8 -} /* time.h:107:1 */ - -type __ptcb = struct { - __f uintptr - __x uintptr - __next uintptr -} /* alltypes.h:281:9 */ - -type sigaltstack = struct { - ss_sp uintptr - ss_flags int32 - _ [4]byte - ss_size size_t -} /* signal.h:44:9 */ - -type stack_t = sigaltstack /* signal.h:44:28 */ - -type greg_t = uint64 /* signal.h:10:23 */ -type gregset_t = [34]uint64 /* signal.h:11:23 */ - -type fpregset_t = struct { - vregs [32]float64 - fpsr uint32 - fpcr uint32 -} /* signal.h:17:3 */ -type sigcontext = struct { - fault_address uint64 - regs [31]uint64 - sp uint64 - pc uint64 - pstate uint64 - __reserved [256]float64 -} /* signal.h:18:9 */ - -type mcontext_t = sigcontext /* signal.h:23:3 */ - -type _aarch64_ctx = struct { - magic uint32 - size uint32 -} /* signal.h:29:1 */ - -type fpsimd_context = struct { - head struct { - magic uint32 - size uint32 - } - fpsr uint32 - fpcr uint32 - vregs [32]float64 -} /* signal.h:33:1 */ - -type esr_context = struct { - head struct { - magic uint32 - size uint32 - } - esr uint64 -} /* signal.h:39:1 */ - -type extra_context = struct { - head struct { - magic uint32 - size uint32 - } - datap uint64 - size uint32 - __reserved [3]uint32 -} /* signal.h:43:1 */ - -type sve_context = struct { - head struct { - magic uint32 - size uint32 - } - vl uint16 - __reserved [3]uint16 -} /* signal.h:49:1 */ - -type __ucontext = struct { - uc_flags uint64 - uc_link uintptr - uc_stack stack_t - uc_sigmask sigset_t - uc_mcontext mcontext_t -} /* signal.h:99:9 */ - -type ucontext_t = __ucontext /* signal.h:105:3 */ - -type sigval = struct { - _ [0]uint64 - sival_int int32 - _ [4]byte -} /* time.h:107:1 */ - -type siginfo_t = struct { - si_signo int32 - si_errno int32 - si_code int32 - _ [4]byte - __si_fields struct { - _ [0]uint64 - __pad [112]uint8 - } -} /* signal.h:145:3 */ - -type sigaction = struct { - __sa_handler struct{ sa_handler uintptr } - sa_mask sigset_t - sa_flags int32 - _ [4]byte - sa_restorer uintptr -} /* signal.h:167:1 */ - -type sig_t = uintptr /* signal.h:251:14 */ - -type sig_atomic_t = int32 /* signal.h:269:13 */ - -func a_ll(tls *TLS, p uintptr) int32 { /* atomic_arch.h:2:19: */ - var v int32 - panic(`arch/aarch64/atomic_arch.h:5:2: assembler statements not supported`) - return v -} - -func a_sc(tls *TLS, p uintptr, v int32) int32 { /* atomic_arch.h:10:19: */ - var r int32 - panic(`arch/aarch64/atomic_arch.h:13:2: assembler statements not supported`) - return BoolInt32(!(r != 0)) -} - -func a_barrier(tls *TLS) { /* atomic_arch.h:18:20: */ - panic(`arch/aarch64/atomic_arch.h:20:2: assembler statements not supported`) -} - -func a_cas(tls *TLS, p uintptr, t int32, s int32) int32 { /* atomic_arch.h:24:19: */ - var old int32 - for ok := true; ok; ok = !(a_sc(tls, p, s) != 0) { - old = a_ll(tls, p) - if old != t { - a_barrier(tls) - break - } - } - return old -} - -func a_ll_p(tls *TLS, p uintptr) uintptr { /* atomic_arch.h:38:20: */ - var v uintptr - panic(`arch/aarch64/atomic_arch.h:41:2: assembler statements not supported`) - return v -} - -func a_sc_p(tls *TLS, p uintptr, v uintptr) int32 { /* atomic_arch.h:46:19: */ - var r int32 - panic(`arch/aarch64/atomic_arch.h:49:2: assembler statements not supported`) - return BoolInt32(!(r != 0)) -} - -func a_ctz_64(tls *TLS, x uint64_t) int32 { /* atomic_arch.h:68:19: */ - panic(`arch/aarch64/atomic_arch.h:70:2: assembler statements not supported`) - return int32(x) -} - -func a_swap(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:33:19: */ - var old int32 - - for ok := true; ok; ok = !(a_sc(tls, p, v) != 0) { - old = a_ll(tls, p) - } - - return old -} - -func a_fetch_add(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:46:19: */ - var old int32 - - for ok := true; ok; ok = !(a_sc(tls, p, int32(uint32(old)+uint32(v))) != 0) { - old = a_ll(tls, p) - } - - return old -} - -func a_fetch_and(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:59:19: */ - var old int32 - - for ok := true; ok; ok = !(a_sc(tls, p, old&v) != 0) { - old = a_ll(tls, p) - } - - return old -} - -func a_fetch_or(tls *TLS, p uintptr, v int32) int32 { /* atomic.h:72:19: */ - var old int32 - - for ok := true; ok; ok = !(a_sc(tls, p, old|v) != 0) { - old = a_ll(tls, p) - } - - return old -} - -func a_and(tls *TLS, p uintptr, v int32) { /* atomic.h:151:20: */ - a_fetch_and(tls, p, v) -} - -func a_or(tls *TLS, p uintptr, v int32) { /* atomic.h:159:20: */ - a_fetch_or(tls, p, v) -} - -func a_or_64(tls *TLS, p uintptr, v uint64_t) { /* atomic.h:220:20: */ - bp := tls.Alloc(8) - defer tls.Free(8) - - *(*struct{ v uint64_t })(unsafe.Pointer(bp)) = func() (r struct{ v uint64_t }) { - *(*uint64_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&r)) + 0)) = v - return r - }() - if *(*uint32_t)(unsafe.Pointer(bp)) != 0 { - a_or(tls, p, int32(*(*uint32_t)(unsafe.Pointer(bp)))) - } - if *(*uint32_t)(unsafe.Pointer(bp + 1*4)) != 0 { - a_or(tls, p+uintptr(1)*4, int32(*(*uint32_t)(unsafe.Pointer(bp + 1*4)))) - } -} - -func a_ctz_32(tls *TLS, x uint32_t) int32 { /* atomic.h:256:19: */ - return int32(_sdebruijn328[x&-x*uint32_t(0x076be629)>>27]) -} - -var _sdebruijn328 = [32]uint8{ - uint8(0), uint8(1), uint8(23), uint8(2), uint8(29), uint8(24), uint8(19), uint8(3), uint8(30), uint8(27), uint8(25), uint8(11), uint8(20), uint8(8), uint8(4), uint8(13), - uint8(31), uint8(22), uint8(28), uint8(18), uint8(26), uint8(10), uint8(7), uint8(12), uint8(21), uint8(17), uint8(9), uint8(6), uint8(16), uint8(5), uint8(15), uint8(14), -} /* atomic.h:261:20 */ - -type __timer = struct { - timerid int32 - _ [4]byte - thread pthread_t -} /* pthread_impl.h:64:1 */ - -func __pthread_self(tls *TLS) uintptr { /* pthread_arch.h:1:30: */ - var self uintptr - panic(`arch/aarch64/pthread_arch.h:4:2: assembler statements not supported`) - return self - uintptr(uint64(unsafe.Sizeof(__pthread{}))) -} - -func __wake(tls *TLS, addr uintptr, cnt int32, priv int32) { /* pthread_impl.h:155:20: */ - if priv != 0 { - priv = 128 - } - if cnt < 0 { - cnt = 0x7fffffff - } - _ = Bool32(X__syscall3(tls, int64(98), int64(addr), int64(1|priv), int64(cnt)) != int64(-38) || X__syscall3(tls, int64(98), int64(addr), int64(1), int64(cnt)) != 0) -} - -func __futexwait(tls *TLS, addr uintptr, val int32, priv int32) { /* pthread_impl.h:162:20: */ - if priv != 0 { - priv = 128 - } - _ = Bool32(X__syscall4(tls, int64(98), int64(addr), int64(0|priv), int64(val), int64(0)) != int64(-38) || X__syscall4(tls, int64(98), int64(addr), int64(0), int64(val), int64(0)) != 0) -} - -var X__fsmu8 = [51]uint32_t{ - func() uint32 { - if 0x2 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x2) - }(), func() uint32 { - if 0x3 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x3) - }(), func() uint32 { - if 0x4 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x4) - }(), func() uint32 { - if 0x5 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x5) - }(), func() uint32 { - if 0x6 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x6) - }(), func() uint32 { - if 0x7 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x7) - }(), - func() uint32 { - if 0x8 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x8) - }(), func() uint32 { - if 0x9 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x9) - }(), func() uint32 { - if 0xa < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0xa) - }(), func() uint32 { - if 0xb < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0xb) - }(), func() uint32 { - if 0xc < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0xc) - }(), func() uint32 { - if 0xd < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0xd) - }(), func() uint32 { - if 0xe < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0xe) - }(), func() uint32 { - if 0xf < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0xf) - }(), - func() uint32 { - if 0x0+16 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x0+16) - }(), func() uint32 { - if 0x1+16 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x1+16) - }(), func() uint32 { - if 0x2+16 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x2+16) - }(), func() uint32 { - if 0x3+16 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x3+16) - }(), func() uint32 { - if 0x4+16 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x4+16) - }(), func() uint32 { - if 0x5+16 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x5+16) - }(), func() uint32 { - if 0x6+16 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x6+16) - }(), func() uint32 { - if 0x7+16 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x7+16) - }(), - func() uint32 { - if 0x8+16 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x8+16) - }(), func() uint32 { - if 0x9+16 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0x9+16) - }(), func() uint32 { - if 0xa+16 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0xa+16) - }(), func() uint32 { - if 0xb+16 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0xb+16) - }(), func() uint32 { - if 0xc+16 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0xc+16) - }(), func() uint32 { - if 0xd+16 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0xd+16) - }(), func() uint32 { - if 0xe+16 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0xe+16) - }(), func() uint32 { - if 0xf+16 < 2 { - return Uint32FromInt32(-1) - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23 | uint32_t(0xf+16) - }(), - func() uint32 { - if 0x0 == 0 { - return func() uint32 { - if Int32(0xa0) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0xa0)) - }() << 23 - } - return func() uint32 { - if 0x0 == 0xd { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(0x0), func() uint32 { - if 0x1 == 0 { - return func() uint32 { - if Int32(0xa0) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0xa0)) - }() << 23 - } - return func() uint32 { - if 0x1 == 0xd { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(0x1), func() uint32 { - if 0x2 == 0 { - return func() uint32 { - if Int32(0xa0) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0xa0)) - }() << 23 - } - return func() uint32 { - if 0x2 == 0xd { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(0x2), func() uint32 { - if 0x3 == 0 { - return func() uint32 { - if Int32(0xa0) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0xa0)) - }() << 23 - } - return func() uint32 { - if 0x3 == 0xd { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(0x3), func() uint32 { - if 0x4 == 0 { - return func() uint32 { - if Int32(0xa0) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0xa0)) - }() << 23 - } - return func() uint32 { - if 0x4 == 0xd { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(0x4), func() uint32 { - if 0x5 == 0 { - return func() uint32 { - if Int32(0xa0) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0xa0)) - }() << 23 - } - return func() uint32 { - if 0x5 == 0xd { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(0x5), func() uint32 { - if 0x6 == 0 { - return func() uint32 { - if Int32(0xa0) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0xa0)) - }() << 23 - } - return func() uint32 { - if 0x6 == 0xd { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(0x6), func() uint32 { - if 0x7 == 0 { - return func() uint32 { - if Int32(0xa0) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0xa0)) - }() << 23 - } - return func() uint32 { - if 0x7 == 0xd { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(0x7), - func() uint32 { - if 0x8 == 0 { - return func() uint32 { - if Int32(0xa0) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0xa0)) - }() << 23 - } - return func() uint32 { - if 0x8 == 0xd { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(0x8), func() uint32 { - if 0x9 == 0 { - return func() uint32 { - if Int32(0xa0) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0xa0)) - }() << 23 - } - return func() uint32 { - if 0x9 == 0xd { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(0x9), func() uint32 { - if 0xa == 0 { - return func() uint32 { - if Int32(0xa0) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0xa0)) - }() << 23 - } - return func() uint32 { - if 0xa == 0xd { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(0xa), func() uint32 { - if 0xb == 0 { - return func() uint32 { - if Int32(0xa0) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0xa0)) - }() << 23 - } - return func() uint32 { - if 0xb == 0xd { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(0xb), func() uint32 { - if 0xc == 0 { - return func() uint32 { - if Int32(0xa0) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0xa0)) - }() << 23 - } - return func() uint32 { - if 0xc == 0xd { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(0xc), func() uint32 { - if 0xd == 0 { - return func() uint32 { - if Int32(0xa0) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0xa0)) - }() << 23 - } - return func() uint32 { - if 0xd == 0xd { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(0xd), func() uint32 { - if 0xe == 0 { - return func() uint32 { - if Int32(0xa0) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0xa0)) - }() << 23 - } - return func() uint32 { - if 0xe == 0xd { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(0xe), func() uint32 { - if 0xf == 0 { - return func() uint32 { - if Int32(0xa0) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0xa0)) - }() << 23 - } - return func() uint32 { - if 0xf == 0xd { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xa0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(0xf), - func() uint32 { - if 0x0 >= 5 { - return uint32(0) - } - return func() uint32 { - if 0x0 == 0 { - return func() uint32 { - if Int32(0x90) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x90)) - }() << 23 - } - return func() uint32 { - if 0x0 == 4 { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0x90)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>12 | uint32_t(0x0), func() uint32 { - if 0x1 >= 5 { - return uint32(0) - } - return func() uint32 { - if 0x1 == 0 { - return func() uint32 { - if Int32(0x90) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x90)) - }() << 23 - } - return func() uint32 { - if 0x1 == 4 { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0x90)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>12 | uint32_t(0x1), func() uint32 { - if 0x2 >= 5 { - return uint32(0) - } - return func() uint32 { - if 0x2 == 0 { - return func() uint32 { - if Int32(0x90) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x90)) - }() << 23 - } - return func() uint32 { - if 0x2 == 4 { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0x90)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>12 | uint32_t(0x2), func() uint32 { - if 0x3 >= 5 { - return uint32(0) - } - return func() uint32 { - if 0x3 == 0 { - return func() uint32 { - if Int32(0x90) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x90)) - }() << 23 - } - return func() uint32 { - if 0x3 == 4 { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0x90)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>12 | uint32_t(0x3), func() uint32 { - if 0x4 >= 5 { - return uint32(0) - } - return func() uint32 { - if 0x4 == 0 { - return func() uint32 { - if Int32(0x90) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x90)) - }() << 23 - } - return func() uint32 { - if 0x4 == 4 { - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0x90)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - } - return func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }() << 23 - }() - }() - }() | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>6 | uint32_t(func() uint32 { - if Int32(0x80) == Int32(0x80) { - return Uint32(Uint32(0x40) - Uint32FromInt32(0xc0)) - } - return Uint32(Uint32(0) - Uint32FromInt32(0x80)) - }()<<23)>>12 | uint32_t(0x4), -} /* internal.c:18:16 */ - -type wint_t = uint32 /* alltypes.h:21:18 */ - -type wctype_t = uint64 /* alltypes.h:211:23 */ - -type __mbstate_t = struct { - __opaque1 uint32 - __opaque2 uint32 -} /* alltypes.h:345:9 */ - -type mbstate_t = __mbstate_t /* alltypes.h:345:63 */ - -func Xmbrtowc(tls *TLS, wc uintptr, src uintptr, n size_t, st uintptr) size_t { /* mbrtowc.c:6:8: */ - if __ccgo_strace { - trc("tls=%v wc=%v src=%v n=%v st=%v, (%v:)", tls, wc, src, n, st, origin(2)) - } - bp := tls.Alloc(4) - defer tls.Free(4) - - var c uint32 - var s uintptr - var N uint32 - // var dummy wchar_t at bp, 4 - s = src - N = uint32(n) - - if !!(st != 0) { - goto __1 - } - st = uintptr(unsafe.Pointer(&_sinternal_state)) -__1: - ; - c = *(*uint32)(unsafe.Pointer(st)) - - if !!(s != 0) { - goto __2 - } - if !(c != 0) { - goto __4 - } - goto ilseq -__4: - ; - return uint64(0) - goto __3 -__2: - if !!(wc != 0) { - goto __5 - } - wc = bp /* &dummy */ -__5: - ; -__3: - ; - - if !!(n != 0) { - goto __6 - } - return Uint64FromInt32(-2) -__6: - ; - if !!(c != 0) { - goto __7 - } - if !(int32(*(*uint8)(unsafe.Pointer(s))) < 0x80) { - goto __8 - } - return BoolUint64(!!(int32(AssignPtrUint32(wc, wchar_t(*(*uint8)(unsafe.Pointer(s))))) != 0)) -__8: - ; - if !(func() int32 { - if !!(int32(*(*uintptr)(unsafe.Pointer((*__pthread)(unsafe.Pointer(__pthread_self(tls))).locale))) != 0) { - return 4 - } - return 1 - }() == 1) { - goto __9 - } - *(*wchar_t)(unsafe.Pointer(wc)) = wchar_t(0xdfff & int32(int8(*(*uint8)(unsafe.Pointer(s))))) - return 1 -__9: - ; - if !(uint32(*(*uint8)(unsafe.Pointer(s)))-0xc2 > 0xf4-0xc2) { - goto __10 - } - goto ilseq -__10: - ; - c = X__fsmu8[uint32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))))-0xc2] - n-- -__7: - ; - - if !(n != 0) { - goto __11 - } - if !((int32(*(*uint8)(unsafe.Pointer(s)))>>3-0x10|(int32(*(*uint8)(unsafe.Pointer(s)))>>3+int32_t(c)>>26))&CplInt32(7) != 0) { - goto __12 - } - goto ilseq -__12: - ; -loop: - c = c<<6 | uint32(int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))))-0x80) - n-- - if !!(c&(uint32(1)<<31) != 0) { - goto __13 - } - *(*uint32)(unsafe.Pointer(st)) = uint32(0) - *(*wchar_t)(unsafe.Pointer(wc)) = c - return size_t(N) - n -__13: - ; - if !(n != 0) { - goto __14 - } - if !(uint32(*(*uint8)(unsafe.Pointer(s)))-0x80 >= uint32(0x40)) { - goto __15 - } - goto ilseq -__15: - ; - goto loop -__14: - ; -__11: - ; - - *(*uint32)(unsafe.Pointer(st)) = c - return Uint64FromInt32(-2) -ilseq: - *(*uint32)(unsafe.Pointer(st)) = uint32(0) - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 84 - return Uint64FromInt32(-1) -} - -var _sinternal_state uint32 /* mbrtowc.c:8:18: */ - -func Xmbsinit(tls *TLS, st uintptr) int32 { /* mbsinit.c:3:5: */ - if __ccgo_strace { - trc("tls=%v st=%v, (%v:)", tls, st, origin(2)) - } - return Bool32(!(st != 0) || !(int32(*(*uint32)(unsafe.Pointer(st))) != 0)) -} - -type imaxdiv_t = struct { - quot intmax_t - rem intmax_t -} /* inttypes.h:14:40 */ - -type socklen_t = uint32 /* alltypes.h:369:18 */ - -type sa_family_t = uint16 /* alltypes.h:374:24 */ - -type msghdr = struct { - msg_name uintptr - msg_namelen socklen_t - _ [4]byte - msg_iov uintptr - msg_iovlen int32 - __pad1 int32 - msg_control uintptr - msg_controllen socklen_t - __pad2 int32 - msg_flags int32 - _ [4]byte -} /* socket.h:22:1 */ - -type cmsghdr = struct { - cmsg_len socklen_t - __pad1 int32 - cmsg_level int32 - cmsg_type int32 -} /* socket.h:44:1 */ - -type linger = struct { - l_onoff int32 - l_linger int32 -} /* socket.h:74:1 */ - -type sockaddr = struct { - sa_family sa_family_t - sa_data [14]uint8 -} /* socket.h:367:1 */ - -type sockaddr_storage = struct { - ss_family sa_family_t - __ss_padding [118]uint8 - __ss_align uint64 -} /* socket.h:372:1 */ - -type in_port_t = uint16_t /* in.h:12:18 */ -type in_addr_t = uint32_t /* in.h:13:18 */ -type in_addr = struct{ s_addr in_addr_t } /* in.h:14:1 */ - -type sockaddr_in = struct { - sin_family sa_family_t - sin_port in_port_t - sin_addr struct{ s_addr in_addr_t } - sin_zero [8]uint8_t -} /* in.h:16:1 */ - -type in6_addr = struct { - __in6_union struct { - _ [0]uint32 - __s6_addr [16]uint8_t - } -} /* in.h:23:1 */ - -type sockaddr_in6 = struct { - sin6_family sa_family_t - sin6_port in_port_t - sin6_flowinfo uint32_t - sin6_addr struct { - __in6_union struct { - _ [0]uint32 - __s6_addr [16]uint8_t - } - } - sin6_scope_id uint32_t -} /* in.h:34:1 */ - -type ipv6_mreq = struct { - ipv6mr_multiaddr struct { - __in6_union struct { - _ [0]uint32 - __s6_addr [16]uint8_t - } - } - ipv6mr_interface uint32 -} /* in.h:42:1 */ - -type ip_opts = struct { - ip_dst struct{ s_addr in_addr_t } - ip_opts [40]uint8 -} /* in.h:229:1 */ - -type ip_mreq = struct { - imr_multiaddr struct{ s_addr in_addr_t } - imr_interface struct{ s_addr in_addr_t } -} /* in.h:247:1 */ - -type ip_mreqn = struct { - imr_multiaddr struct{ s_addr in_addr_t } - imr_address struct{ s_addr in_addr_t } - imr_ifindex int32 -} /* in.h:252:1 */ - -type ip_mreq_source = struct { - imr_multiaddr struct{ s_addr in_addr_t } - imr_interface struct{ s_addr in_addr_t } - imr_sourceaddr struct{ s_addr in_addr_t } -} /* in.h:258:1 */ - -type ip_msfilter = struct { - imsf_multiaddr struct{ s_addr in_addr_t } - imsf_interface struct{ s_addr in_addr_t } - imsf_fmode uint32_t - imsf_numsrc uint32_t - imsf_slist [1]struct{ s_addr in_addr_t } -} /* in.h:264:1 */ - -type group_req = struct { - gr_interface uint32_t - _ [4]byte - gr_group struct { - ss_family sa_family_t - __ss_padding [118]uint8 - __ss_align uint64 - } -} /* in.h:275:1 */ - -type group_source_req = struct { - gsr_interface uint32_t - _ [4]byte - gsr_group struct { - ss_family sa_family_t - __ss_padding [118]uint8 - __ss_align uint64 - } - gsr_source struct { - ss_family sa_family_t - __ss_padding [118]uint8 - __ss_align uint64 - } -} /* in.h:280:1 */ - -type group_filter = struct { - gf_interface uint32_t - _ [4]byte - gf_group struct { - ss_family sa_family_t - __ss_padding [118]uint8 - __ss_align uint64 - } - gf_fmode uint32_t - gf_numsrc uint32_t - gf_slist [1]struct { - ss_family sa_family_t - __ss_padding [118]uint8 - __ss_align uint64 - } -} /* in.h:286:1 */ - -type in_pktinfo = struct { - ipi_ifindex int32 - ipi_spec_dst struct{ s_addr in_addr_t } - ipi_addr struct{ s_addr in_addr_t } -} /* in.h:297:1 */ - -type in6_pktinfo = struct { - ipi6_addr struct { - __in6_union struct { - _ [0]uint32 - __s6_addr [16]uint8_t - } - } - ipi6_ifindex uint32 -} /* in.h:303:1 */ - -type ip6_mtuinfo = struct { - ip6m_addr struct { - sin6_family sa_family_t - sin6_port in_port_t - sin6_flowinfo uint32_t - sin6_addr struct { - __in6_union struct { - _ [0]uint32 - __s6_addr [16]uint8_t - } - } - sin6_scope_id uint32_t - } - ip6m_mtu uint32_t -} /* in.h:308:1 */ - -type addrinfo = struct { - ai_flags int32 - ai_family int32 - ai_socktype int32 - ai_protocol int32 - ai_addrlen socklen_t - _ [4]byte - ai_addr uintptr - ai_canonname uintptr - ai_next uintptr -} /* netdb.h:16:1 */ - -// Legacy functions follow (marked OBsolete in SUS) - -type netent = struct { - n_name uintptr - n_aliases uintptr - n_addrtype int32 - n_net uint32_t -} /* netdb.h:62:1 */ - -type hostent = struct { - h_name uintptr - h_aliases uintptr - h_addrtype int32 - h_length int32 - h_addr_list uintptr -} /* netdb.h:69:1 */ - -type servent = struct { - s_name uintptr - s_aliases uintptr - s_port int32 - _ [4]byte - s_proto uintptr -} /* netdb.h:78:1 */ - -type protoent = struct { - p_name uintptr - p_aliases uintptr - p_proto int32 - _ [4]byte -} /* netdb.h:85:1 */ - -type aibuf = struct { - ai struct { - ai_flags int32 - ai_family int32 - ai_socktype int32 - ai_protocol int32 - ai_addrlen socklen_t - _ [4]byte - ai_addr uintptr - ai_canonname uintptr - ai_next uintptr - } - sa struct { - sin struct { - sin_family sa_family_t - sin_port in_port_t - sin_addr struct{ s_addr in_addr_t } - sin_zero [8]uint8_t - } - _ [12]byte - } - lock [1]int32 - slot int16 - ref int16 - _ [4]byte -} /* lookup.h:10:1 */ - -type sa = struct { - sin struct { - sin_family sa_family_t - sin_port in_port_t - sin_addr struct{ s_addr in_addr_t } - sin_zero [8]uint8_t - } - _ [12]byte -} /* lookup.h:10:1 */ - -type address = struct { - family int32 - scopeid uint32 - addr [16]uint8_t - sortkey int32 -} /* lookup.h:20:1 */ - -type service = struct { - port uint16_t - proto uint8 - socktype uint8 -} /* lookup.h:27:1 */ - -type resolvconf = struct { - ns [3]struct { - family int32 - scopeid uint32 - addr [16]uint8_t - sortkey int32 - } - nns uint32 - attempts uint32 - ndots uint32 - timeout uint32 -} /* lookup.h:34:1 */ - -func Xfreeaddrinfo(tls *TLS, p uintptr) { /* freeaddrinfo.c:7:6: */ - if __ccgo_strace { - trc("tls=%v p=%v, (%v:)", tls, p, origin(2)) - } - var cnt size_t - cnt = uint64(1) -__1: - if !((*addrinfo)(unsafe.Pointer(p)).ai_next != 0) { - goto __3 - } - goto __2 -__2: - cnt++ - p = (*addrinfo)(unsafe.Pointer(p)).ai_next - goto __1 - goto __3 -__3: - ; - var b uintptr = p - uintptr(uint64(uintptr(0))) - b -= 88 * uintptr((*aibuf)(unsafe.Pointer(b)).slot) - //TODO LOCK(b->lock); - if !(int32(AssignSubPtrInt16(b+82, int16(cnt))) != 0) { - Xfree(tls, b) - } - //TODO else UNLOCK(b->lock); -} - -func Xgetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) int32 { /* getaddrinfo.c:12:5: */ - if __ccgo_strace { - trc("tls=%v host=%v serv=%v hint=%v res=%v, (%v:)", tls, host, serv, hint, res, origin(2)) - } - bp := tls.Alloc(1608) - defer tls.Free(1608) - - // var ports [2]service at bp, 8 - - // var addrs [48]address at bp+8, 1344 - - // var canon [256]uint8 at bp+1352, 256 - - var outcanon uintptr - var nservs int32 - var naddrs int32 - var nais int32 - var canon_len int32 - var i int32 - var j int32 - var k int32 - var family int32 = 0 - var flags int32 = 0 - var proto int32 = 0 - var socktype int32 = 0 - var out uintptr - - if !(host != 0) && !(serv != 0) { - return -2 - } - - if hint != 0 { - family = (*addrinfo)(unsafe.Pointer(hint)).ai_family - flags = (*addrinfo)(unsafe.Pointer(hint)).ai_flags - proto = (*addrinfo)(unsafe.Pointer(hint)).ai_protocol - socktype = (*addrinfo)(unsafe.Pointer(hint)).ai_socktype - - var mask int32 = 0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x400 - if flags&mask != flags { - return -1 - } - - switch family { - case 2: - fallthrough - case 10: - fallthrough - case 0: - break - fallthrough - default: - return -6 - } - } - - if flags&0x20 != 0 { - Xabort(tls) //TODO- - // /* Define the "an address is configured" condition for address - // * families via ability to create a socket for the family plus - // * routability of the loopback address for the family. */ - // static const struct sockaddr_in lo4 = { - // .sin_family = AF_INET, .sin_port = 65535, - // .sin_addr.s_addr = __BYTE_ORDER == __BIG_ENDIAN - // ? 0x7f000001 : 0x0100007f - // }; - // static const struct sockaddr_in6 lo6 = { - // .sin6_family = AF_INET6, .sin6_port = 65535, - // .sin6_addr = IN6ADDR_LOOPBACK_INIT - // }; - // int tf[2] = { AF_INET, AF_INET6 }; - // const void *ta[2] = { &lo4, &lo6 }; - // socklen_t tl[2] = { sizeof lo4, sizeof lo6 }; - // for (i=0; i<2; i++) { - // if (family==tf[1-i]) continue; - // int s = socket(tf[i], SOCK_CLOEXEC|SOCK_DGRAM, - // IPPROTO_UDP); - // if (s>=0) { - // int cs; - // pthread_setcancelstate( - // PTHREAD_CANCEL_DISABLE, &cs); - // int r = connect(s, ta[i], tl[i]); - // pthread_setcancelstate(cs, 0); - // close(s); - // if (!r) continue; - // } - // switch (errno) { - // case EADDRNOTAVAIL: - // case EAFNOSUPPORT: - // case EHOSTUNREACH: - // case ENETDOWN: - // case ENETUNREACH: - // break; - // default: - // return EAI_SYSTEM; - // } - // if (family == tf[i]) return EAI_NONAME; - // family = tf[1-i]; - // } - } - - nservs = X__lookup_serv(tls, bp, serv, proto, socktype, flags) - if nservs < 0 { - return nservs - } - - naddrs = X__lookup_name(tls, bp+8, bp+1352, host, family, flags) - if naddrs < 0 { - return naddrs - } - - nais = nservs * naddrs - canon_len = int32(Xstrlen(tls, bp+1352)) - out = Xcalloc(tls, uint64(1), uint64(nais)*uint64(unsafe.Sizeof(aibuf{}))+uint64(canon_len)+uint64(1)) - if !(out != 0) { - return -10 - } - - if canon_len != 0 { - outcanon = out + uintptr(nais)*88 - Xmemcpy(tls, outcanon, bp+1352, uint64(canon_len+1)) - } else { - outcanon = uintptr(0) - } - - for k = AssignInt32(&i, 0); i < naddrs; i++ { - j = 0 - __1: - if !(j < nservs) { - goto __3 - } - { - (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).slot = int16(k) - //TODO out[k].ai = (struct addrinfo){ - //TODO .ai_family = addrs[i].family, - //TODO .ai_socktype = ports[j].socktype, - //TODO .ai_protocol = ports[j].proto, - //TODO .ai_addrlen = addrs[i].family == AF_INET - //TODO ? sizeof(struct sockaddr_in) - //TODO : sizeof(struct sockaddr_in6), - //TODO .ai_addr = (void *)&out[k].sa, - //TODO .ai_canonname = outcanon }; - (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_family = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family - (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_socktype = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).socktype) - (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_protocol = int32((*service)(unsafe.Pointer(bp + uintptr(j)*4)).proto) - (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addrlen = func() uint32 { - if (*address)(unsafe.Pointer(bp+8+uintptr(i)*28)).family == 2 { - return uint32(unsafe.Sizeof(sockaddr_in{})) - } - return uint32(unsafe.Sizeof(sockaddr_in6{})) - }() - (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_addr = out + uintptr(k)*88 + 48 - (*aibuf)(unsafe.Pointer(out + uintptr(k)*88)).ai.ai_canonname = outcanon - if k != 0 { - (*aibuf)(unsafe.Pointer(out + uintptr(k-1)*88)).ai.ai_next = out + uintptr(k)*88 - } - switch (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).family { - case 2: - (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_family = sa_family_t(2) - (*sockaddr_in)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port) - Xmemcpy(tls, out+uintptr(k)*88+48+4, bp+8+uintptr(i)*28+8, uint64(4)) - break - case 10: - (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_family = sa_family_t(10) - (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_port = Xhtons(tls, (*service)(unsafe.Pointer(bp+uintptr(j)*4)).port) - (*sockaddr_in6)(unsafe.Pointer(out + uintptr(k)*88 + 48)).sin6_scope_id = (*address)(unsafe.Pointer(bp + 8 + uintptr(i)*28)).scopeid - Xmemcpy(tls, out+uintptr(k)*88+48+8, bp+8+uintptr(i)*28+8, uint64(16)) - break - } - - } - goto __2 - __2: - j++ - k++ - goto __1 - goto __3 - __3: - } - (*aibuf)(unsafe.Pointer(out)).ref = int16(nais) - *(*uintptr)(unsafe.Pointer(res)) = out - return 0 -} - -type ucred = struct { - pid pid_t - uid uid_t - gid gid_t -} /* socket.h:57:1 */ - -type mmsghdr = struct { - msg_hdr struct { - msg_name uintptr - msg_namelen socklen_t - _ [4]byte - msg_iov uintptr - msg_iovlen int32 - __pad1 int32 - msg_control uintptr - msg_controllen socklen_t - __pad2 int32 - msg_flags int32 - _ [4]byte - } - msg_len uint32 - _ [4]byte -} /* socket.h:63:1 */ - -func Xgethostbyaddr(tls *TLS, a uintptr, l socklen_t, af int32) uintptr { /* gethostbyaddr.c:7:16: */ - if __ccgo_strace { - trc("tls=%v a=%v l=%v af=%v, (%v:)", tls, a, l, af, origin(2)) - } - bp := tls.Alloc(8) - defer tls.Free(8) - - var size size_t = uint64(63) - // var res uintptr at bp, 8 - - var err int32 - for ok := true; ok; ok = err == 34 { - Xfree(tls, _sh) - _sh = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1))) - if !(_sh != 0) { - *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3 - return uintptr(0) - } - err = Xgethostbyaddr_r(tls, a, l, af, _sh, - _sh+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls)) - } - if err != 0 { - return uintptr(0) - } - return _sh -} - -var _sh uintptr /* gethostbyaddr.c:9:24: */ - -func Xgethostbyaddr_r(tls *TLS, a uintptr, l socklen_t, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyaddr_r.c:10:5: */ - if __ccgo_strace { - trc("tls=%v a=%v l=%v af=%v h=%v buf=%v buflen=%v res=%v err=%v, (%v:)", tls, a, l, af, h, buf, buflen, res, err, origin(2)) - } - bp := tls.Alloc(28) - defer tls.Free(28) - - //TODO union { - //TODO struct sockaddr_in sin; - //TODO struct sockaddr_in6 sin6; - //TODO } sa = { .sin.sin_family = af }; - *(*struct { - sin sockaddr_in - _ [12]byte - })(unsafe.Pointer(bp)) = struct { - sin sockaddr_in - _ [12]byte - }{} //TODO- - (*sockaddr_in)(unsafe.Pointer(bp)).sin_family = sa_family_t(af) //TODO- - var sl socklen_t - if af == 10 { - sl = uint32(unsafe.Sizeof(sockaddr_in6{})) - } else { - sl = uint32(unsafe.Sizeof(sockaddr_in{})) - } - var i int32 - - *(*uintptr)(unsafe.Pointer(res)) = uintptr(0) - - // Load address argument into sockaddr structure - if af == 10 && l == socklen_t(16) { - Xmemcpy(tls, bp+8, a, uint64(16)) - } else if af == 2 && l == socklen_t(4) { - Xmemcpy(tls, bp+4, a, uint64(4)) - } else { - *(*int32)(unsafe.Pointer(err)) = 3 - return 22 - } - - // Align buffer and check for space for pointers and ip address - i = int32(uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1))) - if !(i != 0) { - i = int32(unsafe.Sizeof(uintptr(0))) - } - if buflen <= uint64(5)*uint64(unsafe.Sizeof(uintptr(0)))-uint64(i)+uint64(l) { - return 34 - } - buf += uintptr(uint64(unsafe.Sizeof(uintptr(0))) - uint64(i)) - buflen = buflen - (uint64(5)*uint64(unsafe.Sizeof(uintptr(0))) - uint64(i) + uint64(l)) - - (*hostent)(unsafe.Pointer(h)).h_addr_list = buf - buf += uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0)))) - (*hostent)(unsafe.Pointer(h)).h_aliases = buf - buf += uintptr(uint64(2) * uint64(unsafe.Sizeof(uintptr(0)))) - - *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)) = buf - Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list)), a, uint64(l)) - buf += uintptr(l) - *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + 1*8)) = uintptr(0) - *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases)) = buf - *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0) - - switch Xgetnameinfo(tls, bp, sl, buf, uint32(buflen), uintptr(0), uint32(0), 0) { - case -3: - *(*int32)(unsafe.Pointer(err)) = 2 - return 11 - case -12: - return 34 - default: - fallthrough - case -10: - fallthrough - case -11: - fallthrough - case -4: - *(*int32)(unsafe.Pointer(err)) = 3 - return *(*int32)(unsafe.Pointer(X___errno_location(tls))) - case 0: - break - } - - (*hostent)(unsafe.Pointer(h)).h_addrtype = af - (*hostent)(unsafe.Pointer(h)).h_length = int32(l) - (*hostent)(unsafe.Pointer(h)).h_name = *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases)) - *(*uintptr)(unsafe.Pointer(res)) = h - return 0 -} - -func Xgethostbyname(tls *TLS, name uintptr) uintptr { /* gethostbyname.c:8:16: */ - if __ccgo_strace { - trc("tls=%v name=%v, (%v:)", tls, name, origin(2)) - } - return Xgethostbyname2(tls, name, 2) -} - -func Xgethostbyname2(tls *TLS, name uintptr, af int32) uintptr { /* gethostbyname2.c:8:16: */ - if __ccgo_strace { - trc("tls=%v name=%v af=%v, (%v:)", tls, name, af, origin(2)) - } - bp := tls.Alloc(8) - defer tls.Free(8) - - var size size_t = uint64(63) - // var res uintptr at bp, 8 - - var err int32 - for ok := true; ok; ok = err == 34 { - Xfree(tls, _sh1) - _sh1 = Xmalloc(tls, AssignAddUint64(&size, size+uint64(1))) - if !(_sh1 != 0) { - *(*int32)(unsafe.Pointer(X__h_errno_location(tls))) = 3 - return uintptr(0) - } - err = Xgethostbyname2_r(tls, name, af, _sh1, - _sh1+uintptr(1)*32, size-size_t(unsafe.Sizeof(hostent{})), bp, X__h_errno_location(tls)) - } - if err != 0 { - return uintptr(0) - } - return _sh1 -} - -var _sh1 uintptr /* gethostbyname2.c:10:24: */ - -func Xgethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname2_r.c:11:5: */ - if __ccgo_strace { - trc("tls=%v name=%v af=%v h=%v buf=%v buflen=%v res=%v err=%v, (%v:)", tls, name, af, h, buf, buflen, res, err, origin(2)) - } - bp := tls.Alloc(1600) - defer tls.Free(1600) - - // var addrs [48]address at bp, 1344 - - // var canon [256]uint8 at bp+1344, 256 - - var i int32 - var cnt int32 - var align size_t - var need size_t - - *(*uintptr)(unsafe.Pointer(res)) = uintptr(0) - cnt = X__lookup_name(tls, bp, bp+1344, name, af, 0x02) - if cnt < 0 { - switch cnt { - case -2: - *(*int32)(unsafe.Pointer(err)) = 1 - return 2 - fallthrough - case -3: - *(*int32)(unsafe.Pointer(err)) = 2 - return 11 - fallthrough - default: - fallthrough - case -4: - *(*int32)(unsafe.Pointer(err)) = 3 - return 74 - fallthrough - case -10: - fallthrough - case -11: - *(*int32)(unsafe.Pointer(err)) = 3 - return *(*int32)(unsafe.Pointer(X___errno_location(tls))) - } - } - - (*hostent)(unsafe.Pointer(h)).h_addrtype = af - (*hostent)(unsafe.Pointer(h)).h_length = func() int32 { - if af == 10 { - return 16 - } - return 4 - }() - - // Align buffer - align = -uintptr_t(buf) & (uint64(unsafe.Sizeof(uintptr(0))) - uint64(1)) - - need = uint64(4) * uint64(unsafe.Sizeof(uintptr(0))) - need = need + uint64(cnt+1)*(uint64(unsafe.Sizeof(uintptr(0)))+uint64((*hostent)(unsafe.Pointer(h)).h_length)) - need = need + (Xstrlen(tls, name) + uint64(1)) - need = need + (Xstrlen(tls, bp+1344) + uint64(1)) - need = need + align - - if need > buflen { - return 34 - } - - buf += uintptr(align) - (*hostent)(unsafe.Pointer(h)).h_aliases = buf - buf += uintptr(uint64(3) * uint64(unsafe.Sizeof(uintptr(0)))) - (*hostent)(unsafe.Pointer(h)).h_addr_list = buf - buf += uintptr(uint64(cnt+1) * uint64(unsafe.Sizeof(uintptr(0)))) - - for i = 0; i < cnt; i++ { - *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = buf - buf += uintptr((*hostent)(unsafe.Pointer(h)).h_length) - Xmemcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)), bp+uintptr(i)*28+8, uint64((*hostent)(unsafe.Pointer(h)).h_length)) - } - *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_addr_list + uintptr(i)*8)) = uintptr(0) - - (*hostent)(unsafe.Pointer(h)).h_name = AssignPtrUintptr((*hostent)(unsafe.Pointer(h)).h_aliases, buf) - Xstrcpy(tls, (*hostent)(unsafe.Pointer(h)).h_name, bp+1344) - buf += uintptr(Xstrlen(tls, (*hostent)(unsafe.Pointer(h)).h_name) + uint64(1)) - - if Xstrcmp(tls, (*hostent)(unsafe.Pointer(h)).h_name, name) != 0 { - *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = buf - Xstrcpy(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)), name) - buf += uintptr(Xstrlen(tls, *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8))) + uint64(1)) - } else { - *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 1*8)) = uintptr(0) - } - - *(*uintptr)(unsafe.Pointer((*hostent)(unsafe.Pointer(h)).h_aliases + 2*8)) = uintptr(0) - - *(*uintptr)(unsafe.Pointer(res)) = h - return 0 -} - -func Xgethostbyname_r(tls *TLS, name uintptr, h uintptr, buf uintptr, buflen size_t, res uintptr, err uintptr) int32 { /* gethostbyname_r.c:6:5: */ - if __ccgo_strace { - trc("tls=%v name=%v h=%v buf=%v buflen=%v res=%v err=%v, (%v:)", tls, name, h, buf, buflen, res, err, origin(2)) - } - return Xgethostbyname2_r(tls, name, 2, h, buf, buflen, res, err) -} - -type if_nameindex = struct { - if_index uint32 - _ [4]byte - if_name uintptr -} /* if.h:12:1 */ - -type ifaddr = struct { - ifa_addr struct { - sa_family sa_family_t - sa_data [14]uint8 - } - ifa_ifu struct { - ifu_broadaddr struct { - sa_family sa_family_t - sa_data [14]uint8 - } - } - ifa_ifp uintptr - ifa_next uintptr -} /* if.h:51:1 */ - -type ifmap = struct { - mem_start uint64 - mem_end uint64 - base_addr uint16 - irq uint8 - dma uint8 - port uint8 - _ [3]byte -} /* if.h:64:1 */ - -type ifreq = struct { - ifr_ifrn struct{ ifrn_name [16]uint8 } - ifr_ifru struct { - _ [0]uint64 - ifru_addr struct { - sa_family sa_family_t - sa_data [14]uint8 - } - _ [8]byte - } -} /* if.h:76:1 */ - -type ifconf = struct { - ifc_len int32 - _ [4]byte - ifc_ifcu struct{ ifcu_buf uintptr } -} /* if.h:116:1 */ - -type ns_sect = uint32 /* nameser.h:37:3 */ - -type __ns_msg = struct { - _msg uintptr - _eom uintptr - _id uint16_t - _flags uint16_t - _counts [4]uint16_t - _ [4]byte - _sections [4]uintptr - _sect ns_sect - _rrnum int32 - _msg_ptr uintptr -} /* nameser.h:39:9 */ - -type ns_msg = __ns_msg /* nameser.h:46:3 */ - -type _ns_flagdata = struct { - mask int32 - shift int32 -} /* nameser.h:48:1 */ - -type __ns_rr = struct { - name [1025]uint8 - _ [1]byte - __type uint16_t - rr_class uint16_t - _ [2]byte - ttl uint32_t - rdlength uint16_t - _ [2]byte - rdata uintptr -} /* nameser.h:59:9 */ - -type ns_rr = __ns_rr /* nameser.h:66:3 */ - -type ns_flag = uint32 /* nameser.h:87:3 */ - -type ns_opcode = uint32 /* nameser.h:96:3 */ - -type ns_rcode = uint32 /* nameser.h:115:3 */ - -type ns_update_operation = uint32 /* nameser.h:121:3 */ - -type ns_tsig_key1 = struct { - name [1025]uint8 - alg [1025]uint8 - _ [6]byte - data uintptr - len int32 - _ [4]byte -} /* nameser.h:123:1 */ - -type ns_tsig_key = ns_tsig_key1 /* nameser.h:128:28 */ - -type ns_tcp_tsig_state1 = struct { - counter int32 - _ [4]byte - key uintptr - ctx uintptr - sig [512]uint8 - siglen int32 - _ [4]byte -} /* nameser.h:130:1 */ - -type ns_tcp_tsig_state = ns_tcp_tsig_state1 /* nameser.h:137:34 */ - -type ns_type = uint32 /* nameser.h:200:3 */ - -type ns_class = uint32 /* nameser.h:219:3 */ - -type ns_key_types = uint32 /* nameser.h:226:3 */ - -type ns_cert_types = uint32 /* nameser.h:234:3 */ - -type HEADER = struct { - _ [0]uint32 - id uint32 /* unsigned id: 16, unsigned rd: 1, unsigned tc: 1, unsigned aa: 1, unsigned opcode: 4, unsigned qr: 1, unsigned rcode: 4, unsigned cd: 1, unsigned ad: 1, unsigned unused: 1, unsigned ra: 1 */ - qdcount uint32 /* unsigned qdcount: 16, unsigned ancount: 16 */ - nscount uint32 /* unsigned nscount: 16, unsigned arcount: 16 */ -} /* nameser.h:353:3 */ - -// unused; purely for broken apps -type __res_state = struct { - retrans int32 - retry int32 - options uint64 - nscount int32 - nsaddr_list [3]struct { - sin_family sa_family_t - sin_port in_port_t - sin_addr struct{ s_addr in_addr_t } - sin_zero [8]uint8_t - } - id uint16 - _ [2]byte - dnsrch [7]uintptr - defdname [256]uint8 - pfcode uint64 - ndots uint32 /* unsigned ndots: 4, unsigned nsort: 4, unsigned ipv6_unavail: 1, unsigned unused: 23 */ - _ [4]byte - sort_list [10]struct { - addr struct{ s_addr in_addr_t } - mask uint32_t - } - qhook uintptr - rhook uintptr - res_h_errno int32 - _vcsock int32 - _flags uint32 - _ [4]byte - _u struct { - _ [0]uint64 - pad [52]uint8 - _ [4]byte - } -} /* resolv.h:26:9 */ - -// unused; purely for broken apps -type res_state = uintptr /* resolv.h:62:3 */ - -type res_sym = struct { - number int32 - _ [4]byte - name uintptr - humanname uintptr -} /* resolv.h:70:1 */ - -func itoa(tls *TLS, p uintptr, x uint32) uintptr { /* getnameinfo.c:18:13: */ - p += uintptr(uint64(3) * uint64(unsafe.Sizeof(int32(0)))) - *(*uint8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = uint8(0) - for ok := true; ok; ok = x != 0 { - *(*uint8)(unsafe.Pointer(PreDecUintptr(&p, 1))) = uint8(uint32('0') + x%uint32(10)) - x = x / uint32(10) - } - return p -} - -func mkptr4(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:28:13: */ - bp := tls.Alloc(32) - defer tls.Free(32) - - Xsprintf(tls, s, ts+25, - VaList(bp, int32(*(*uint8)(unsafe.Pointer(ip + 3))), int32(*(*uint8)(unsafe.Pointer(ip + 2))), int32(*(*uint8)(unsafe.Pointer(ip + 1))), int32(*(*uint8)(unsafe.Pointer(ip))))) -} - -func mkptr6(tls *TLS, s uintptr, ip uintptr) { /* getnameinfo.c:34:13: */ - var i int32 - for i = 15; i >= 0; i-- { - *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))&15] - *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = uint8('.') - *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = _sxdigits[int32(*(*uint8)(unsafe.Pointer(ip + uintptr(i))))>>4] - *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))) = uint8('.') - } - Xstrcpy(tls, s, ts+50) -} - -var _sxdigits = *(*[17]uint8)(unsafe.Pointer(ts + 59)) /* getnameinfo.c:36:20 */ - -func reverse_hosts(tls *TLS, buf uintptr, a uintptr, scopeid uint32, family int32) { /* getnameinfo.c:45:13: */ - bp := tls.Alloc(556) - defer tls.Free(556) - - // var line [512]uint8 at bp+16, 512 - - var p uintptr - var z uintptr - var _buf [1032]uint8 - _ = _buf - // var atmp [16]uint8 at bp, 16 - - // var iplit address at bp+528, 28 - - //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf); - var f uintptr = Xfopen(tls, ts+76, ts+87) - if !(f != 0) { - return - } - if family == 2 { - Xmemcpy(tls, bp+uintptr(12), a, uint64(4)) - Xmemcpy(tls, bp, ts+90, uint64(12)) - a = bp /* &atmp[0] */ - } - for Xfgets(tls, bp+16, int32(unsafe.Sizeof([512]uint8{})), f) != 0 { - if AssignUintptr(&p, Xstrchr(tls, bp+16, '#')) != 0 { - *(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = uint8('\n') - *(*uint8)(unsafe.Pointer(p)) = uint8(0) - } - - for p = bp + 16; /* &line[0] */ *(*uint8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0); p++ { - } - *(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = uint8(0) - if X__lookup_ipliteral(tls, bp+528, bp+16, 0) <= 0 { - continue - } - - if (*address)(unsafe.Pointer(bp+528)).family == 2 { - Xmemcpy(tls, bp+528+8+uintptr(12), bp+528+8, uint64(4)) - Xmemcpy(tls, bp+528+8, ts+90, uint64(12)) - (*address)(unsafe.Pointer(bp + 528 /* &iplit */)).scopeid = uint32(0) - } - - if Xmemcmp(tls, a, bp+528+8, uint64(16)) != 0 || (*address)(unsafe.Pointer(bp+528)).scopeid != scopeid { - continue - } - - for ; *(*uint8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0; p++ { - } - for z = p; *(*uint8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(z)))) != 0); z++ { - } - *(*uint8)(unsafe.Pointer(z)) = uint8(0) - if (int64(z)-int64(p))/1 < int64(256) { - Xmemcpy(tls, buf, p, uint64((int64(z)-int64(p))/1+int64(1))) - break - } - } - //TODO __fclose_ca(f); - Xfclose(tls, f) -} - -func reverse_services(tls *TLS, buf uintptr, port int32, dgram int32) { /* getnameinfo.c:87:13: */ - Xabort(tls) //TODO- - // unsigned long svport; - // char line[128], *p, *z; - // unsigned char _buf[1032]; - // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf); - // if (!f) return; - // while (fgets(line, sizeof line, f)) { - // if ((p=strchr(line, '#'))) *p++='\n', *p=0; - - // for (p=line; *p && !isspace(*p); p++); - // if (!*p) continue; - // *p++ = 0; - // svport = strtoul(p, &z, 10); - - // if (svport != port || z==p) continue; - // if (dgram && strncmp(z, "/udp", 4)) continue; - // if (!dgram && strncmp(z, "/tcp", 4)) continue; - // if (p-line > 32) continue; - - // memcpy(buf, line, p-line); - // break; - // } - // __fclose_ca(f); -} - -func Xgetnameinfo(tls *TLS, sa1 uintptr, sl socklen_t, node uintptr, nodelen socklen_t, serv uintptr, servlen socklen_t, flags int32) int32 { /* getnameinfo.c:125:5: */ - if __ccgo_strace { - trc("tls=%v sa1=%v sl=%v node=%v nodelen=%v serv=%v servlen=%v flags=%v, (%v:)", tls, sa1, sl, node, nodelen, serv, servlen, flags, origin(2)) - } - bp := tls.Alloc(347) - defer tls.Free(347) - - // var ptr [78]uint8 at bp, 78 - - // var buf [256]uint8 at bp+78, 256 - - // var num [13]uint8 at bp+334, 13 - - var af int32 = int32((*sockaddr)(unsafe.Pointer(sa1)).sa_family) - var a uintptr - var scopeid uint32 - - switch af { - case 2: - a = sa1 + 4 - if uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in{})) { - return -6 - } - mkptr4(tls, bp, a) - scopeid = uint32(0) - break - case 10: - a = sa1 + 8 - if uint64(sl) < uint64(unsafe.Sizeof(sockaddr_in6{})) { - return -6 - } - if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 { - mkptr6(tls, bp, a) - } else { - mkptr4(tls, bp, a+uintptr(12)) - } - scopeid = (*sockaddr_in6)(unsafe.Pointer(sa1)).sin6_scope_id - break - default: - return -6 - } - - if node != 0 && nodelen != 0 { - *(*uint8)(unsafe.Pointer(bp + 78)) = uint8(0) - if !(flags&0x01 != 0) { - reverse_hosts(tls, bp+78, a, scopeid, af) - } - if !(int32(*(*uint8)(unsafe.Pointer(bp + 78))) != 0) && !(flags&0x01 != 0) { - Xabort(tls) //TODO- - // unsigned char query[18+PTR_MAX], reply[512]; - // int qlen = __res_mkquery(0, ptr, 1, RR_PTR, - // 0, 0, 0, query, sizeof query); - // query[3] = 0; /* don't need AD flag */ - // int rlen = __res_send(query, qlen, reply, sizeof reply); - // buf[0] = 0; - // if (rlen > 0) - // __dns_parse(reply, rlen, dns_parse_callback, buf); - } - if !(int32(*(*uint8)(unsafe.Pointer(bp + 78))) != 0) { - if flags&0x08 != 0 { - return -2 - } - Xinet_ntop(tls, af, a, bp+78, uint32(unsafe.Sizeof([256]uint8{}))) - if scopeid != 0 { - Xabort(tls) //TODO- - // char *p = 0, tmp[IF_NAMESIZE+1]; - // if (!(flags & NI_NUMERICSCOPE) && - // (IN6_IS_ADDR_LINKLOCAL(a) || - // IN6_IS_ADDR_MC_LINKLOCAL(a))) - // p = if_indextoname(scopeid, tmp+1); - // if (!p) - // p = itoa(num, scopeid); - // *--p = '%'; - // strcat(buf, p); - } - } - if Xstrlen(tls, bp+78) >= size_t(nodelen) { - return -12 - } - Xstrcpy(tls, node, bp+78) - } - - if serv != 0 && servlen != 0 { - var p uintptr = bp + 78 /* buf */ - var port int32 = int32(Xntohs(tls, (*sockaddr_in)(unsafe.Pointer(sa1)).sin_port)) - *(*uint8)(unsafe.Pointer(bp + 78)) = uint8(0) - if !(flags&0x02 != 0) { - reverse_services(tls, bp+78, port, flags&0x10) - } - if !(int32(*(*uint8)(unsafe.Pointer(p))) != 0) { - p = itoa(tls, bp+334, uint32(port)) - } - if Xstrlen(tls, p) >= size_t(servlen) { - return -12 - } - Xstrcpy(tls, serv, p) - } - - return 0 -} - -var Xh_errno int32 /* h_errno.c:4:5: */ - -func X__h_errno_location(tls *TLS) uintptr { /* h_errno.c:6:5: */ - if __ccgo_strace { - trc("tls=%v, (%v:)", tls, origin(2)) - } - return uintptr(unsafe.Pointer(&Xh_errno)) -} - -func X__inet_aton(tls *TLS, s0 uintptr, dest uintptr) int32 { /* inet_aton.c:7:5: */ - if __ccgo_strace { - trc("tls=%v s0=%v dest=%v, (%v:)", tls, s0, dest, origin(2)) - } - bp := tls.Alloc(40) - defer tls.Free(40) - - var s uintptr = s0 - var d uintptr = dest - *(*[4]uint64)(unsafe.Pointer(bp /* a */)) = [4]uint64{0: uint64(0)} - // var z uintptr at bp+32, 8 - - var i int32 - - for i = 0; i < 4; i++ { - *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) = Xstrtoul(tls, s, bp+32, 0) - if *(*uintptr)(unsafe.Pointer(bp + 32)) == s || *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))) != 0 && int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != '.' || !(func() int32 { - if 0 != 0 { - return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(s)))) - } - return Bool32(uint32(*(*uint8)(unsafe.Pointer(s)))-uint32('0') < uint32(10)) - }() != 0) { - return 0 - } - if !(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))) != 0) { - break - } - s = *(*uintptr)(unsafe.Pointer(bp + 32)) + uintptr(1) - } - if i == 4 { - return 0 - } - switch i { - case 0: - *(*uint64)(unsafe.Pointer(bp + 1*8)) = *(*uint64)(unsafe.Pointer(bp)) & uint64(0xffffff) - AssignShrPtrUint64(bp, int(24)) - fallthrough - case 1: - *(*uint64)(unsafe.Pointer(bp + 2*8)) = *(*uint64)(unsafe.Pointer(bp + 1*8)) & uint64(0xffff) - AssignShrPtrUint64(bp+1*8, int(16)) - fallthrough - case 2: - *(*uint64)(unsafe.Pointer(bp + 3*8)) = *(*uint64)(unsafe.Pointer(bp + 2*8)) & uint64(0xff) - AssignShrPtrUint64(bp+2*8, int(8)) - } - for i = 0; i < 4; i++ { - if *(*uint64)(unsafe.Pointer(bp + uintptr(i)*8)) > uint64(255) { - return 0 - } - *(*uint8)(unsafe.Pointer(d + uintptr(i))) = uint8(*(*uint64)(unsafe.Pointer(bp + uintptr(i)*8))) - } - return 1 -} - -func Xinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l socklen_t) uintptr { /* inet_ntop.c:7:12: */ - if __ccgo_strace { - trc("tls=%v af=%v a0=%v s=%v l=%v, (%v:)", tls, af, a0, s, l, origin(2)) - } - bp := tls.Alloc(276) - defer tls.Free(276) - - var a uintptr = a0 - var i int32 - var j int32 - var max int32 - var best int32 - // var buf [100]uint8 at bp+176, 100 - - switch af { - case 2: - if socklen_t(Xsnprintf(tls, s, uint64(l), ts+103, VaList(bp, int32(*(*uint8)(unsafe.Pointer(a))), int32(*(*uint8)(unsafe.Pointer(a + 1))), int32(*(*uint8)(unsafe.Pointer(a + 2))), int32(*(*uint8)(unsafe.Pointer(a + 3)))))) < l { - return s - } - break - case 10: - if Xmemcmp(tls, a, ts+90, uint64(12)) != 0 { - Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]uint8{})), - ts+115, - VaList(bp+32, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))), - 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))), - 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))), - 256*int32(*(*uint8)(unsafe.Pointer(a + 12)))+int32(*(*uint8)(unsafe.Pointer(a + 13))), 256*int32(*(*uint8)(unsafe.Pointer(a + 14)))+int32(*(*uint8)(unsafe.Pointer(a + 15))))) - } else { - Xsnprintf(tls, bp+176, uint64(unsafe.Sizeof([100]uint8{})), - ts+139, - VaList(bp+96, 256*int32(*(*uint8)(unsafe.Pointer(a)))+int32(*(*uint8)(unsafe.Pointer(a + 1))), 256*int32(*(*uint8)(unsafe.Pointer(a + 2)))+int32(*(*uint8)(unsafe.Pointer(a + 3))), - 256*int32(*(*uint8)(unsafe.Pointer(a + 4)))+int32(*(*uint8)(unsafe.Pointer(a + 5))), 256*int32(*(*uint8)(unsafe.Pointer(a + 6)))+int32(*(*uint8)(unsafe.Pointer(a + 7))), - 256*int32(*(*uint8)(unsafe.Pointer(a + 8)))+int32(*(*uint8)(unsafe.Pointer(a + 9))), 256*int32(*(*uint8)(unsafe.Pointer(a + 10)))+int32(*(*uint8)(unsafe.Pointer(a + 11))), - int32(*(*uint8)(unsafe.Pointer(a + 12))), int32(*(*uint8)(unsafe.Pointer(a + 13))), int32(*(*uint8)(unsafe.Pointer(a + 14))), int32(*(*uint8)(unsafe.Pointer(a + 15))))) - } - // Replace longest /(^0|:)[:0]{2,}/ with "::" - i = AssignInt32(&best, 0) - max = 2 - for ; *(*uint8)(unsafe.Pointer(bp + 176 + uintptr(i))) != 0; i++ { - if i != 0 && int32(*(*uint8)(unsafe.Pointer(bp + 176 + uintptr(i)))) != ':' { - continue - } - j = int32(Xstrspn(tls, bp+176+uintptr(i), ts+169)) - if j > max { - best = i - max = j - } - } - if max > 3 { - *(*uint8)(unsafe.Pointer(bp + 176 + uintptr(best))) = AssignPtrUint8(bp+176+uintptr(best+1), uint8(':')) - Xmemmove(tls, bp+176+uintptr(best)+uintptr(2), bp+176+uintptr(best)+uintptr(max), uint64(i-best-max+1)) - } - if Xstrlen(tls, bp+176) < size_t(l) { - Xstrcpy(tls, s, bp+176) - return s - } - break - default: - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97 - return uintptr(0) - } - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 28 - return uintptr(0) -} - -func hexval(tls *TLS, c uint32) int32 { /* inet_pton.c:7:12: */ - if c-uint32('0') < uint32(10) { - return int32(c - uint32('0')) - } - c = c | uint32(32) - if c-uint32('a') < uint32(6) { - return int32(c - uint32('a') + uint32(10)) - } - return -1 -} - -func Xinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) int32 { /* inet_pton.c:15:5: */ - if __ccgo_strace { - trc("tls=%v af=%v s=%v a0=%v, (%v:)", tls, af, s, a0, origin(2)) - } - bp := tls.Alloc(16) - defer tls.Free(16) - - // var ip [8]uint16_t at bp, 16 - - var a uintptr = a0 - var i int32 - var j int32 - var v int32 - var d int32 - var brk int32 = -1 - var need_v4 int32 = 0 - - if af == 2 { - for i = 0; i < 4; i++ { - for v = AssignInt32(&j, 0); j < 3 && func() int32 { - if 0 != 0 { - return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(s + uintptr(j))))) - } - return Bool32(uint32(*(*uint8)(unsafe.Pointer(s + uintptr(j))))-uint32('0') < uint32(10)) - }() != 0; j++ { - v = 10*v + int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) - '0' - } - if j == 0 || j > 1 && int32(*(*uint8)(unsafe.Pointer(s))) == '0' || v > 255 { - return 0 - } - *(*uint8)(unsafe.Pointer(a + uintptr(i))) = uint8(v) - if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) == 0 && i == 3 { - return 1 - } - if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != '.' { - return 0 - } - s += uintptr(j + 1) - } - return 0 - } else if af != 10 { - *(*int32)(unsafe.Pointer(X___errno_location(tls))) = 97 - return -1 - } - - if int32(*(*uint8)(unsafe.Pointer(s))) == ':' && int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != ':' { - return 0 - } - - for i = 0; ; i++ { - if int32(*(*uint8)(unsafe.Pointer(s))) == ':' && brk < 0 { - brk = i - *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(0) - if !(int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&s, 1)))) != 0) { - break - } - if i == 7 { - return 0 - } - continue - } - for v = AssignInt32(&j, 0); j < 4 && AssignInt32(&d, hexval(tls, uint32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))))) >= 0; j++ { - v = 16*v + d - } - if j == 0 { - return 0 - } - *(*uint16_t)(unsafe.Pointer(bp + uintptr(i&7)*2)) = uint16_t(v) - if !(int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != 0) && (brk >= 0 || i == 7) { - break - } - if i == 7 { - return 0 - } - if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != ':' { - if int32(*(*uint8)(unsafe.Pointer(s + uintptr(j)))) != '.' || i < 6 && brk < 0 { - return 0 - } - need_v4 = 1 - i++ - break - } - s += uintptr(j + 1) - } - if brk >= 0 { - Xmemmove(tls, bp+uintptr(brk)*2+uintptr(7)*2-uintptr(i)*2, bp+uintptr(brk)*2, uint64(2*(i+1-brk))) - for j = 0; j < 7-i; j++ { - *(*uint16_t)(unsafe.Pointer(bp + uintptr(brk+j)*2)) = uint16_t(0) - } - } - for j = 0; j < 8; j++ { - *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(int32(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) >> 8) - *(*uint8)(unsafe.Pointer(PostIncUintptr(&a, 1))) = uint8(*(*uint16_t)(unsafe.Pointer(bp + uintptr(j)*2))) - } - if need_v4 != 0 && Xinet_pton(tls, 2, s, a-uintptr(4)) <= 0 { - return 0 - } - return 1 -} - -func X__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_ipliteral.c:12:5: */ - if __ccgo_strace { - trc("tls=%v buf=%v name=%v family=%v, (%v:)", tls, buf, name, family, origin(2)) - } - bp := tls.Alloc(96) - defer tls.Free(96) - - // var a4 in_addr at bp, 4 - - // var a6 in6_addr at bp+68, 16 - - if X__inet_aton(tls, name, bp) > 0 { - if family == 10 { // wrong family - return -2 - } - Xmemcpy(tls, buf+8, bp, uint64(unsafe.Sizeof(in_addr{}))) - (*address)(unsafe.Pointer(buf)).family = 2 - (*address)(unsafe.Pointer(buf)).scopeid = uint32(0) - return 1 - } - // var tmp [64]uint8 at bp+4, 64 - - var p uintptr = Xstrchr(tls, name, '%') - // var z uintptr at bp+88, 8 - - var scopeid uint64 = uint64(0) - if p != 0 && (int64(p)-int64(name))/1 < int64(64) { - Xmemcpy(tls, bp+4, name, uint64((int64(p)-int64(name))/1)) - *(*uint8)(unsafe.Pointer(bp + 4 + uintptr((int64(p)-int64(name))/1))) = uint8(0) - name = bp + 4 /* &tmp[0] */ - } - - if Xinet_pton(tls, 10, name, bp+68) <= 0 { - return 0 - } - if family == 2 { // wrong family - return -2 - } - - Xmemcpy(tls, buf+8, bp+68, uint64(unsafe.Sizeof(in6_addr{}))) - (*address)(unsafe.Pointer(buf)).family = 10 - if p != 0 { - if func() int32 { - if 0 != 0 { - return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&p, 1))))) - } - return Bool32(uint32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&p, 1))))-uint32('0') < uint32(10)) - }() != 0 { - scopeid = Xstrtoull(tls, p, bp+88, 10) - } else { - *(*uintptr)(unsafe.Pointer(bp + 88 /* z */)) = p - uintptr(1) - } - if *(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)))) != 0 { - Xabort(tls) //TODO- - // if (!IN6_IS_ADDR_LINKLOCAL(&a6) && - // !IN6_IS_ADDR_MC_LINKLOCAL(&a6)) - // return EAI_NONAME; - // scopeid = if_nametoindex(p); - // if (!scopeid) return EAI_NONAME; - } - if scopeid > uint64(0xffffffff) { - return -2 - } - } - (*address)(unsafe.Pointer(buf)).scopeid = uint32(scopeid) - return 1 -} - -func is_valid_hostname(tls *TLS, host uintptr) int32 { /* lookup_name.c:18:12: */ - var s uintptr - //TODO if (strnlen(host, 255)-1 >= 254 || mbstowcs(0, host, 0) == -1) return 0; - if Xstrnlen(tls, host, uint64(255))-uint64(1) >= uint64(254) { - return 0 - } - for s = host; int32(*(*uint8)(unsafe.Pointer(s))) >= 0x80 || int32(*(*uint8)(unsafe.Pointer(s))) == '.' || int32(*(*uint8)(unsafe.Pointer(s))) == '-' || Xisalnum(tls, int32(*(*uint8)(unsafe.Pointer(s)))) != 0; s++ { - } - return BoolInt32(!(*(*uint8)(unsafe.Pointer(s)) != 0)) -} - -var Xzero_struct_address address /* lookup_name.c:27:16: */ - -func name_from_null(tls *TLS, buf uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:29:12: */ - var cnt int32 = 0 - if name != 0 { - return 0 - } - if flags&0x01 != 0 { - //TODO if (family != AF_INET6) - //TODO buf[cnt++] = (struct address){ .family = AF_INET }; - if family != 10 { - var x = Xzero_struct_address - x.family = 2 - *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x - } - //TODO if (family != AF_INET) - //TODO buf[cnt++] = (struct address){ .family = AF_INET6 }; - if family != 2 { - var x = Xzero_struct_address - x.family = 10 - *(*address)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*28)) = x - } - } else { - Xabort(tls) //TODO- - // if (family != AF_INET6) - // buf[cnt++] = (struct address){ .family = AF_INET, .addr = { 127,0,0,1 } }; - // if (family != AF_INET) - // buf[cnt++] = (struct address){ .family = AF_INET6, .addr = { [15] = 1 } }; - } - return cnt -} - -func name_from_numeric(tls *TLS, buf uintptr, name uintptr, family int32) int32 { /* lookup_name.c:58:12: */ - return X__lookup_ipliteral(tls, buf, name, family) -} - -func name_from_hosts(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:63:12: */ - bp := tls.Alloc(512) - defer tls.Free(512) - - // var line [512]uint8 at bp, 512 - - var l size_t = Xstrlen(tls, name) - var cnt int32 = 0 - var badfam int32 = 0 - var _buf [1032]uint8 - _ = _buf - //TODO FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf); - var _f FILE - _ = _f - var f uintptr = Xfopen(tls, ts+76, ts+87) - if !(f != 0) { - switch *(*int32)(unsafe.Pointer(X___errno_location(tls))) { - case 2: - fallthrough - case 20: - fallthrough - case 13: - return 0 - fallthrough - default: - return -11 - } - } - for Xfgets(tls, bp, int32(unsafe.Sizeof([512]uint8{})), f) != 0 && cnt < 48 { - var p uintptr - var z uintptr - - if AssignUintptr(&p, Xstrchr(tls, bp, '#')) != 0 { - *(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = uint8('\n') - *(*uint8)(unsafe.Pointer(p)) = uint8(0) - } - for p = bp + uintptr(1); AssignUintptr(&p, Xstrstr(tls, p, name)) != 0 && (!(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p + UintptrFromInt32(-1))))) != 0) || !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p + uintptr(l))))) != 0)); p++ { - } - if !(p != 0) { - continue - } - - // Isolate IP address to parse - for p = bp; /* &line[0] */ *(*uint8)(unsafe.Pointer(p)) != 0 && !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0); p++ { - } - *(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1))) = uint8(0) - switch name_from_numeric(tls, buf+uintptr(cnt)*28, bp, family) { - case 1: - cnt++ - break - case 0: - continue - default: - badfam = -2 - continue - } - - // Extract first name as canonical name - for ; *(*uint8)(unsafe.Pointer(p)) != 0 && __isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0; p++ { - } - for z = p; *(*uint8)(unsafe.Pointer(z)) != 0 && !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(z)))) != 0); z++ { - } - *(*uint8)(unsafe.Pointer(z)) = uint8(0) - if is_valid_hostname(tls, p) != 0 { - Xmemcpy(tls, canon, p, uint64((int64(z)-int64(p))/1+int64(1))) - } - } - //TODO __fclose_ca(f); - Xfclose(tls, f) - if cnt != 0 { - return cnt - } - return badfam -} - -type dpc_ctx = struct { - addrs uintptr - canon uintptr - cnt int32 - _ [4]byte -} /* lookup_name.c:112:1 */ - -func name_from_dns_search(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32) int32 { /* lookup_name.c:191:12: */ - return -1 //TODO- - Xabort(tls) - return int32(0) //TODO- - // char search[256]; - // struct resolvconf conf; - // size_t l, dots; - // char *p, *z; - - // if (__get_resolv_conf(&conf, search, sizeof search) < 0) return -1; - - // /* Count dots, suppress search when >=ndots or name ends in - // * a dot, which is an explicit request for global scope. */ - // for (dots=l=0; name[l]; l++) if (name[l]=='.') dots++; - // if (dots >= conf.ndots || name[l-1]=='.') *search = 0; - - // /* Strip final dot for canon, fail if multiple trailing dots. */ - // if (name[l-1]=='.') l--; - // if (!l || name[l-1]=='.') return EAI_NONAME; - - // /* This can never happen; the caller already checked length. */ - // if (l >= 256) return EAI_NONAME; - - // /* Name with search domain appended is setup in canon[]. This both - // * provides the desired default canonical name (if the requested - // * name is not a CNAME record) and serves as a buffer for passing - // * the full requested name to name_from_dns. */ - // memcpy(canon, name, l); - // canon[l] = '.'; - - // for (p=search; *p; p=z) { - // for (; isspace(*p); p++); - // for (z=p; *z && !isspace(*z); z++); - // if (z==p) break; - // if (z-p < 256 - l - 1) { - // memcpy(canon+l+1, p, z-p); - // canon[z-p+1+l] = 0; - // int cnt = name_from_dns(buf, canon, canon, family, &conf); - // if (cnt) return cnt; - // } - // } - - // canon[l] = 0; - // return name_from_dns(buf, canon, name, family, &conf); -} - -type policy = struct { - addr [16]uint8 - len uint8 - mask uint8 - prec uint8 - label uint8 -} /* lookup_name.c:237:14 */ - -var defpolicy = [6]policy{ - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 172)), len: uint8(15), mask: uint8(0xff), prec: uint8(50)}, - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 189)), len: uint8(11), mask: uint8(0xff), prec: uint8(35), label: uint8(4)}, - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 205)), len: uint8(1), mask: uint8(0xff), prec: uint8(30), label: uint8(2)}, - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 221)), len: uint8(3), mask: uint8(0xff), prec: uint8(5), label: uint8(5)}, - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 237)), mask: uint8(0xfe), prec: uint8(3), label: uint8(13)}, - // Last rule must match all addresses to stop loop. - {addr: *(*[16]uint8)(unsafe.Pointer(ts + 253)), prec: uint8(40), label: uint8(1)}, -} /* lookup_name.c:241:3 */ - -func policyof(tls *TLS, a uintptr) uintptr { /* lookup_name.c:259:28: */ - var i int32 - for i = 0; ; i++ { - if Xmemcmp(tls, a, uintptr(unsafe.Pointer(&defpolicy))+uintptr(i)*20, uint64(defpolicy[i].len)) != 0 { - continue - } - if int32(*(*uint8_t)(unsafe.Pointer(a + uintptr(defpolicy[i].len))))&int32(defpolicy[i].mask) != - int32(*(*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 + uintptr(defpolicy[i].len)))) { - continue - } - return uintptr(unsafe.Pointer(&defpolicy)) + uintptr(i)*20 - } - return uintptr(0) -} - -func labelof(tls *TLS, a uintptr) int32 { /* lookup_name.c:272:12: */ - return int32((*policy)(unsafe.Pointer(policyof(tls, a))).label) -} - -func scopeof(tls *TLS, a uintptr) int32 { /* lookup_name.c:277:12: */ - if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xff { - return int32(*(*uint8_t)(unsafe.Pointer(a + 1))) & 15 - } - if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0x80 { - return 2 - } - if *(*uint32_t)(unsafe.Pointer(a)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 1*4)) == uint32_t(0) && *(*uint32_t)(unsafe.Pointer(a + 2*4)) == uint32_t(0) && int32(*(*uint8_t)(unsafe.Pointer(a + 12))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 13))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 14))) == 0 && int32(*(*uint8_t)(unsafe.Pointer(a + 15))) == 1 { - return 2 - } - if int32(*(*uint8_t)(unsafe.Pointer(a))) == 0xfe && int32(*(*uint8_t)(unsafe.Pointer(a + 1)))&0xc0 == 0xc0 { - return 5 - } - return 14 -} - -func prefixmatch(tls *TLS, s uintptr, d uintptr) int32 { /* lookup_name.c:286:12: */ - // FIXME: The common prefix length should be limited to no greater - // than the nominal length of the prefix portion of the source - // address. However the definition of the source prefix length is - // not clear and thus this limiting is not yet implemented. - var i uint32 - for i = uint32(0); i < uint32(128) && !((int32(*(*uint8_t)(unsafe.Pointer(s /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8)))))^int32(*(*uint8_t)(unsafe.Pointer(d /* &.__in6_union */ /* &.__s6_addr */ + uintptr(i/uint32(8))))))&(int32(128)>>(i%uint32(8))) != 0); i++ { - } - return int32(i) -} - -func addrcmp(tls *TLS, _a uintptr, _b uintptr) int32 { /* lookup_name.c:305:12: */ - var a uintptr = _a - var b uintptr = _b - return (*address)(unsafe.Pointer(b)).sortkey - (*address)(unsafe.Pointer(a)).sortkey -} - -func X__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) int32 { /* lookup_name.c:311:5: */ - if __ccgo_strace { - trc("tls=%v buf=%v canon=%v name=%v family=%v flags=%v, (%v:)", tls, buf, canon, name, family, flags, origin(2)) - } - bp := tls.Alloc(92) - defer tls.Free(92) - - var cnt int32 = 0 - var i int32 - var j int32 - _ = j - - *(*uint8)(unsafe.Pointer(canon)) = uint8(0) - if name != 0 { - // reject empty name and check len so it fits into temp bufs - var l size_t = Xstrnlen(tls, name, uint64(255)) - if l-uint64(1) >= uint64(254) { - return -2 - } - Xmemcpy(tls, canon, name, l+uint64(1)) - } - - // Procedurally, a request for v6 addresses with the v4-mapped - // flag set is like a request for unspecified family, followed - // by filtering of the results. - if flags&0x08 != 0 { - if family == 10 { - family = 0 - } else { - flags = flags - 0x08 - } - } - - // Try each backend until there's at least one result. - cnt = name_from_null(tls, buf, name, family, flags) - if !(cnt != 0) { - cnt = name_from_numeric(tls, buf, name, family) - } - if !(cnt != 0) && !(flags&0x04 != 0) { - cnt = name_from_hosts(tls, buf, canon, name, family) - if !(cnt != 0) { - cnt = name_from_dns_search(tls, buf, canon, name, family) - } - } - if cnt <= 0 { - if cnt != 0 { - return cnt - } - return -2 - } - - // Filter/transform results for v4-mapped lookup, if requested. - if flags&0x08 != 0 { - Xabort(tls) //TODO- - // if (!(flags & AI_ALL)) { - // /* If any v6 results exist, remove v4 results. */ - // for (i=0; i= 0 { - if !(Xconnect(tls, fd, da, dalen) != 0) { - key = key | 0x40000000 - if !(Xgetsockname(tls, fd, sa1, bp+88) != 0) { - if family == 2 { - Xmemcpy(tls, - bp+28+8+uintptr(12), - bp+72+4, uint64(4)) - } - if dscope == scopeof(tls, bp+28+8) { - key = key | 0x20000000 - } - if dlabel == labelof(tls, bp+28+8) { - key = key | 0x10000000 - } - prefixlen = prefixmatch(tls, bp+28+8, - bp+8) - } - } - Xclose(tls, fd) - } - key = key | dprec<<20 - key = key | (15-dscope)<<16 - key = key | prefixlen<<8 - key = key | (48-i)<<0 - (*address)(unsafe.Pointer(buf + uintptr(i)*28)).sortkey = key - } - Xqsort(tls, buf, uint64(cnt), uint64(unsafe.Sizeof(address{})), *(*uintptr)(unsafe.Pointer(&struct { - f func(*TLS, uintptr, uintptr) int32 - }{addrcmp}))) - - //TODO pthread_setcancelstate(cs, 0); - - return cnt -} - -func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) int32 { /* lookup_serv.c:12:5: */ - if __ccgo_strace { - trc("tls=%v buf=%v name=%v proto=%v socktype=%v flags=%v, (%v:)", tls, buf, name, proto, socktype, flags, origin(2)) - } - bp := tls.Alloc(8) - defer tls.Free(8) - - var line [128]uint8 - _ = line - var cnt int32 = 0 - var p uintptr - _ = p - *(*uintptr)(unsafe.Pointer(bp /* z */)) = ts + 13 /* "" */ - var port uint64 = uint64(0) - - switch socktype { - case 1: - switch proto { - case 0: - proto = 6 - fallthrough - case 6: - break - default: - return -8 - } - break - case 2: - switch proto { - case 0: - proto = 17 - fallthrough - case 17: - break - default: - return -8 - } - fallthrough - case 0: - break - default: - if name != 0 { - return -8 - } - (*service)(unsafe.Pointer(buf)).port = uint16_t(0) - (*service)(unsafe.Pointer(buf)).proto = uint8(proto) - (*service)(unsafe.Pointer(buf)).socktype = uint8(socktype) - return 1 - } - - if name != 0 { - if !(int32(*(*uint8)(unsafe.Pointer(name))) != 0) { - return -8 - } - port = Xstrtoul(tls, name, bp, 10) - } - if !(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))) != 0) { - if port > uint64(65535) { - return -8 - } - if proto != 17 { - (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port) - (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(1) - (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(6) - } - if proto != 6 { - (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).port = uint16_t(port) - (*service)(unsafe.Pointer(buf + uintptr(cnt)*4)).socktype = uint8(2) - (*service)(unsafe.Pointer(buf + uintptr(PostIncInt32(&cnt, 1))*4)).proto = uint8(17) - } - return cnt - } - - if flags&0x400 != 0 { - return -2 - } - - var l size_t = Xstrlen(tls, name) - _ = l - - Xabort(tls) //TODO- - // unsigned char _buf[1032]; - // FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf); - // if (!f) switch (errno) { - // case ENOENT: - // case ENOTDIR: - // case EACCES: - // return EAI_SERVICE; - // default: - // return EAI_SYSTEM; - // } - - Xabort(tls) //TODO- - // while (fgets(line, sizeof line, f) && cnt < MAXSERVS) { - // if ((p=strchr(line, '#'))) *p++='\n', *p=0; - - // /* Find service name */ - // for(p=line; (p=strstr(p, name)); p++) { - // if (p>line && !isspace(p[-1])) continue; - // if (p[l] && !isspace(p[l])) continue; - // break; - // } - // if (!p) continue; - - // /* Skip past canonical name at beginning of line */ - // for (p=line; *p && !isspace(*p); p++); - - // port = strtoul(p, &z, 10); - // if (port > 65535 || z==p) continue; - // if (!strncmp(z, "/udp", 4)) { - // if (proto == IPPROTO_TCP) continue; - // buf[cnt].port = port; - // buf[cnt].socktype = SOCK_DGRAM; - // buf[cnt++].proto = IPPROTO_UDP; - // } - // if (!strncmp(z, "/tcp", 4)) { - // if (proto == IPPROTO_UDP) continue; - // buf[cnt].port = port; - // buf[cnt].socktype = SOCK_STREAM; - // buf[cnt++].proto = IPPROTO_TCP; - // } - // } - // __fclose_ca(f); - // return cnt > 0 ? cnt : EAI_SERVICE; - Xabort(tls) - return int32(0) //TODO- -} - -func temper(tls *TLS, x uint32) uint32 { /* rand_r.c:3:17: */ - x = x ^ x>>11 - x = x ^ x<<7&0x9D2C5680 - x = x ^ x<<15&0xEFC60000 - x = x ^ x>>18 - return x -} - -func Xrand_r(tls *TLS, seed uintptr) int32 { /* rand_r.c:12:5: */ - if __ccgo_strace { - trc("tls=%v seed=%v, (%v:)", tls, seed, origin(2)) - } - return int32(temper(tls, AssignPtrUint32(seed, *(*uint32)(unsafe.Pointer(seed))*uint32(1103515245)+uint32(12345))) / uint32(2)) -} - -func X__lockfile(tls *TLS, f uintptr) int32 { /* __lockfile.c:4:5: */ - if __ccgo_strace { - trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) - } - var owner int32 = (*FILE)(unsafe.Pointer(f)).lock - var tid int32 = (*__pthread)(unsafe.Pointer(__pthread_self(tls))).tid - if owner&CplInt32(0x40000000) == tid { - return 0 - } - owner = a_cas(tls, f+140, 0, tid) - if !(owner != 0) { - return 1 - } - for AssignInt32(&owner, a_cas(tls, f+140, 0, tid|0x40000000)) != 0 { - if owner&0x40000000 != 0 || a_cas(tls, f+140, owner, owner|0x40000000) == owner { - __futexwait(tls, f+140, owner|0x40000000, 1) - } - } - return 1 -} - -func X__unlockfile(tls *TLS, f uintptr) { /* __lockfile.c:19:6: */ - if __ccgo_strace { - trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) - } - if a_swap(tls, f+140, 0)&0x40000000 != 0 { - __wake(tls, f+140, 1, 1) - } -} - -func X__toread(tls *TLS, f uintptr) int32 { /* __toread.c:3:5: */ - if __ccgo_strace { - trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) - } - *(*int32)(unsafe.Pointer(f + 136)) |= (*FILE)(unsafe.Pointer(f)).mode - 1 - if (*FILE)(unsafe.Pointer(f)).wpos != (*FILE)(unsafe.Pointer(f)).wbase { - (*struct { - f func(*TLS, uintptr, uintptr, size_t) size_t - })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).write})).f(tls, f, uintptr(0), uint64(0)) - } - (*FILE)(unsafe.Pointer(f)).wpos = AssignPtrUintptr(f+56, AssignPtrUintptr(f+32, uintptr(0))) - if (*FILE)(unsafe.Pointer(f)).flags&uint32(4) != 0 { - *(*uint32)(unsafe.Pointer(f)) |= uint32(32) - return -1 - } - (*FILE)(unsafe.Pointer(f)).rpos = AssignPtrUintptr(f+16, (*FILE)(unsafe.Pointer(f)).buf+uintptr((*FILE)(unsafe.Pointer(f)).buf_size)) - if (*FILE)(unsafe.Pointer(f)).flags&uint32(16) != 0 { - return -1 - } - return 0 -} - -func X__toread_needs_stdio_exit(tls *TLS) { /* __toread.c:16:13: */ - if __ccgo_strace { - trc("tls=%v, (%v:)", tls, origin(2)) - } - X__builtin_abort(tls) //TODO- - // __stdio_exit_needed(); -} - -// This function assumes it will never be called if there is already -// data buffered for reading. - -func X__uflow(tls *TLS, f uintptr) int32 { /* __uflow.c:6:5: */ - if __ccgo_strace { - trc("tls=%v f=%v, (%v:)", tls, f, origin(2)) - } - bp := tls.Alloc(1) - defer tls.Free(1) - - // var c uint8 at bp, 1 - - if !(X__toread(tls, f) != 0) && (*struct { - f func(*TLS, uintptr, uintptr, size_t) size_t - })(unsafe.Pointer(&struct{ uintptr }{(*FILE)(unsafe.Pointer(f)).read})).f(tls, f, bp, uint64(1)) == uint64(1) { - return int32(*(*uint8)(unsafe.Pointer(bp))) - } - return -1 -} - -func Xsscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) int32 { /* sscanf.c:4:5: */ - if __ccgo_strace { - trc("tls=%v s=%v fmt=%v va=%v, (%v:)", tls, s, fmt, va, origin(2)) - } - var ret int32 - var ap va_list - _ = ap - ap = va - ret = Xvsscanf(tls, s, fmt, ap) - _ = ap - return ret -} - -type wctrans_t = uintptr /* wctype.h:20:19 */ - -func store_int(tls *TLS, dest uintptr, size int32, i uint64) { /* vfscanf.c:22:13: */ - if !(dest != 0) { - return - } - switch size { - case -2: - *(*uint8)(unsafe.Pointer(dest)) = uint8(i) - break - case -1: - *(*int16)(unsafe.Pointer(dest)) = int16(i) - break - case 0: - *(*int32)(unsafe.Pointer(dest)) = int32(i) - break - case 1: - *(*int64)(unsafe.Pointer(dest)) = int64(i) - break - case 3: - *(*int64)(unsafe.Pointer(dest)) = int64(i) - break - } -} - -func arg_n(tls *TLS, ap va_list, n uint32) uintptr { /* vfscanf.c:44:13: */ - var p uintptr - var i uint32 - var ap2 va_list - _ = ap2 - ap2 = ap - for i = n; i > uint32(1); i-- { - VaUintptr(&ap2) - } - p = VaUintptr(&ap2) - _ = ap2 - return p -} - -func Xvfscanf(tls *TLS, f uintptr, fmt uintptr, ap va_list) int32 { /* vfscanf.c:56:5: */ - if __ccgo_strace { - trc("tls=%v f=%v fmt=%v ap=%v, (%v:)", tls, f, fmt, ap, origin(2)) - } - bp := tls.Alloc(276) - defer tls.Free(276) - - var width int32 - var size int32 - var alloc int32 - var base int32 - var p uintptr - var c int32 - var t int32 - var s uintptr - var wcs uintptr - // var st mbstate_t at bp+268, 8 - - var dest uintptr - var invert int32 - var matches int32 - var x uint64 - var y float64 - var pos off_t - // var scanset [257]uint8 at bp, 257 - - var i size_t - var k size_t - // var wc wchar_t at bp+260, 4 - - var __need_unlock int32 - var tmp uintptr - var tmp1 uintptr - alloc = 0 - dest = uintptr(0) - matches = 0 - pos = int64(0) - __need_unlock = func() int32 { - if (*FILE)(unsafe.Pointer(f)).lock >= 0 { - return X__lockfile(tls, f) - } - return 0 - }() - - if !!(int32((*FILE)(unsafe.Pointer(f)).rpos) != 0) { - goto __1 - } - X__toread(tls, f) -__1: - ; - if !!(int32((*FILE)(unsafe.Pointer(f)).rpos) != 0) { - goto __2 - } - goto input_fail -__2: - ; - - p = fmt -__3: - if !(*(*uint8)(unsafe.Pointer(p)) != 0) { - goto __5 - } - - alloc = 0 - - if !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p)))) != 0) { - goto __6 - } -__7: - if !(__isspace(tls, int32(*(*uint8)(unsafe.Pointer(p + 1)))) != 0) { - goto __8 - } - p++ - goto __7 -__8: - ; - X__shlim(tls, f, int64(0)) -__9: - if !(__isspace(tls, func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }()) != 0) { - goto __10 - } - goto __9 -__10: - ; - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1) - goto __4 -__6: - ; - if !(int32(*(*uint8)(unsafe.Pointer(p))) != '%' || int32(*(*uint8)(unsafe.Pointer(p + 1))) == '%') { - goto __11 - } - X__shlim(tls, f, int64(0)) - if !(int32(*(*uint8)(unsafe.Pointer(p))) == '%') { - goto __12 - } - p++ -__14: - if !(__isspace(tls, AssignInt32(&c, func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }())) != 0) { - goto __15 - } - goto __14 -__15: - ; - goto __13 -__12: - c = func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() -__13: - ; - if !(c != int32(*(*uint8)(unsafe.Pointer(p)))) { - goto __16 - } - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - if !(c < 0) { - goto __17 - } - goto input_fail -__17: - ; - goto match_fail -__16: - ; - pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1) - goto __4 -__11: - ; - - p++ - if !(int32(*(*uint8)(unsafe.Pointer(p))) == '*') { - goto __18 - } - dest = uintptr(0) - p++ - goto __19 -__18: - if !(func() int32 { - if 0 != 0 { - return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(p)))) - } - return Bool32(uint32(*(*uint8)(unsafe.Pointer(p)))-uint32('0') < uint32(10)) - }() != 0 && int32(*(*uint8)(unsafe.Pointer(p + 1))) == '$') { - goto __20 - } - dest = arg_n(tls, ap, uint32(int32(*(*uint8)(unsafe.Pointer(p)))-'0')) - p += uintptr(2) - goto __21 -__20: - dest = VaUintptr(&ap) -__21: - ; -__19: - ; - - width = 0 -__22: - if !(func() int32 { - if 0 != 0 { - return Xisdigit(tls, int32(*(*uint8)(unsafe.Pointer(p)))) - } - return Bool32(uint32(*(*uint8)(unsafe.Pointer(p)))-uint32('0') < uint32(10)) - }() != 0) { - goto __24 - } - width = 10*width + int32(*(*uint8)(unsafe.Pointer(p))) - '0' - goto __23 -__23: - p++ - goto __22 - goto __24 -__24: - ; - - if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'm') { - goto __25 - } - wcs = uintptr(0) - s = uintptr(0) - alloc = BoolInt32(!!(dest != 0)) - p++ - goto __26 -__25: - alloc = 0 -__26: - ; - - size = 0 - switch int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1)))) { - case 'h': - goto __28 - case 'l': - goto __29 - case 'j': - goto __30 - case 'z': - goto __31 - case 't': - goto __32 - case 'L': - goto __33 - case 'd': - goto __34 - case 'i': - goto __35 - case 'o': - goto __36 - case 'u': - goto __37 - case 'x': - goto __38 - case 'a': - goto __39 - case 'e': - goto __40 - case 'f': - goto __41 - case 'g': - goto __42 - case 'A': - goto __43 - case 'E': - goto __44 - case 'F': - goto __45 - case 'G': - goto __46 - case 'X': - goto __47 - case 's': - goto __48 - case 'c': - goto __49 - case '[': - goto __50 - case 'S': - goto __51 - case 'C': - goto __52 - case 'p': - goto __53 - case 'n': - goto __54 - default: - goto __55 - } - goto __27 -__28: - if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'h') { - goto __56 - } - p++ - size = -2 - goto __57 -__56: - size = -1 -__57: - ; - goto __27 -__29: - if !(int32(*(*uint8)(unsafe.Pointer(p))) == 'l') { - goto __58 - } - p++ - size = 3 - goto __59 -__58: - size = 1 -__59: - ; - goto __27 -__30: - size = 3 - goto __27 -__31: -__32: - size = 1 - goto __27 -__33: - size = 2 - goto __27 -__34: -__35: -__36: -__37: -__38: -__39: -__40: -__41: -__42: -__43: -__44: -__45: -__46: -__47: -__48: -__49: -__50: -__51: -__52: -__53: -__54: - p-- - goto __27 -__55: - goto fmt_fail -__27: - ; - - t = int32(*(*uint8)(unsafe.Pointer(p))) - - // C or S - if !(t&0x2f == 3) { - goto __60 - } - t = t | 32 - size = 1 -__60: - ; - - switch t { - case 'c': - goto __62 - case '[': - goto __63 - case 'n': - goto __64 - default: - goto __65 - } - goto __61 -__62: - if !(width < 1) { - goto __66 - } - width = 1 -__66: - ; -__63: - goto __61 -__64: - store_int(tls, dest, size, uint64(pos)) - // do not increment match count, etc! - goto __4 -__65: - X__shlim(tls, f, int64(0)) -__67: - if !(__isspace(tls, func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }()) != 0) { - goto __68 - } - goto __67 -__68: - ; - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1) -__61: - ; - - X__shlim(tls, f, int64(width)) - if !(func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }() < 0) { - goto __69 - } - goto input_fail -__69: - ; - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - - switch t { - case 's': - goto __71 - case 'c': - goto __72 - case '[': - goto __73 - case 'p': - goto __74 - case 'X': - goto __75 - case 'x': - goto __76 - case 'o': - goto __77 - case 'd': - goto __78 - case 'u': - goto __79 - case 'i': - goto __80 - case 'a': - goto __81 - case 'A': - goto __82 - case 'e': - goto __83 - case 'E': - goto __84 - case 'f': - goto __85 - case 'F': - goto __86 - case 'g': - goto __87 - case 'G': - goto __88 - } - goto __70 -__71: -__72: -__73: - if !(t == 'c' || t == 's') { - goto __89 - } - Xmemset(tls, bp, -1, uint64(unsafe.Sizeof([257]uint8{}))) - *(*uint8)(unsafe.Pointer(bp)) = uint8(0) - if !(t == 's') { - goto __91 - } - *(*uint8)(unsafe.Pointer(bp + 10)) = uint8(0) - *(*uint8)(unsafe.Pointer(bp + 11)) = uint8(0) - *(*uint8)(unsafe.Pointer(bp + 12)) = uint8(0) - *(*uint8)(unsafe.Pointer(bp + 13)) = uint8(0) - *(*uint8)(unsafe.Pointer(bp + 14)) = uint8(0) - *(*uint8)(unsafe.Pointer(bp + 33)) = uint8(0) -__91: - ; - goto __90 -__89: - if !(int32(*(*uint8)(unsafe.Pointer(PreIncUintptr(&p, 1)))) == '^') { - goto __92 - } - p++ - invert = 1 - goto __93 -__92: - invert = 0 -__93: - ; - Xmemset(tls, bp, invert, uint64(unsafe.Sizeof([257]uint8{}))) - *(*uint8)(unsafe.Pointer(bp)) = uint8(0) - if !(int32(*(*uint8)(unsafe.Pointer(p))) == '-') { - goto __94 - } - p++ - *(*uint8)(unsafe.Pointer(bp + 46)) = uint8(1 - invert) - goto __95 -__94: - if !(int32(*(*uint8)(unsafe.Pointer(p))) == ']') { - goto __96 - } - p++ - *(*uint8)(unsafe.Pointer(bp + 94)) = uint8(1 - invert) -__96: - ; -__95: - ; -__97: - if !(int32(*(*uint8)(unsafe.Pointer(p))) != ']') { - goto __99 - } - if !!(int32(*(*uint8)(unsafe.Pointer(p))) != 0) { - goto __100 - } - goto fmt_fail -__100: - ; - if !(int32(*(*uint8)(unsafe.Pointer(p))) == '-' && *(*uint8)(unsafe.Pointer(p + 1)) != 0 && int32(*(*uint8)(unsafe.Pointer(p + 1))) != ']') { - goto __101 - } - c = int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&p, 1) + UintptrFromInt32(-1)))) -__102: - if !(c < int32(*(*uint8)(unsafe.Pointer(p)))) { - goto __104 - } - *(*uint8)(unsafe.Pointer(bp + uintptr(1+c))) = uint8(1 - invert) - goto __103 -__103: - c++ - goto __102 - goto __104 -__104: - ; -__101: - ; - *(*uint8)(unsafe.Pointer(bp + uintptr(1+int32(*(*uint8)(unsafe.Pointer(p)))))) = uint8(1 - invert) - goto __98 -__98: - p++ - goto __97 - goto __99 -__99: - ; -__90: - ; - wcs = uintptr(0) - s = uintptr(0) - i = uint64(0) - if t == 'c' { - k = uint64(uint32(width) + 1) - } else { - k = uint64(31) - } - if !(size == 1) { - goto __105 - } - if !(alloc != 0) { - goto __107 - } - wcs = Xmalloc(tls, k*size_t(unsafe.Sizeof(wchar_t(0)))) - if !!(wcs != 0) { - goto __109 - } - goto alloc_fail -__109: - ; - goto __108 -__107: - wcs = dest -__108: - ; - *(*mbstate_t)(unsafe.Pointer(bp + 268 /* st */)) = mbstate_t{} -__110: - if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }())+1))) != 0) { - goto __111 - } - switch Xmbrtowc(tls, bp+260, func() uintptr { *(*uint8)(unsafe.Pointer(bp + 264)) = uint8(c); return bp + 264 }(), uint64(1), bp+268 /* &st */) { - case Uint64FromInt32(-1): - goto __113 - case Uint64FromInt32(-2): - goto __114 - } - goto __112 -__113: - goto input_fail -__114: - goto __110 -__112: - ; - if !(wcs != 0) { - goto __115 - } - *(*wchar_t)(unsafe.Pointer(wcs + uintptr(PostIncUint64(&i, 1))*4)) = *(*wchar_t)(unsafe.Pointer(bp + 260 /* wc */)) -__115: - ; - if !(alloc != 0 && i == k) { - goto __116 - } - k = k + (k + uint64(1)) - tmp = Xrealloc(tls, wcs, k*size_t(unsafe.Sizeof(wchar_t(0)))) - if !!(tmp != 0) { - goto __117 - } - goto alloc_fail -__117: - ; - wcs = tmp -__116: - ; - goto __110 -__111: - ; - if !!(Xmbsinit(tls, bp+268) != 0) { - goto __118 - } - goto input_fail -__118: - ; - goto __106 -__105: - if !(alloc != 0) { - goto __119 - } - s = Xmalloc(tls, k) - if !!(s != 0) { - goto __121 - } - goto alloc_fail -__121: - ; -__122: - if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }())+1))) != 0) { - goto __123 - } - *(*uint8)(unsafe.Pointer(s + uintptr(PostIncUint64(&i, 1)))) = uint8(c) - if !(i == k) { - goto __124 - } - k = k + (k + uint64(1)) - tmp1 = Xrealloc(tls, s, k) - if !!(tmp1 != 0) { - goto __125 - } - goto alloc_fail -__125: - ; - s = tmp1 -__124: - ; - goto __122 -__123: - ; - goto __120 -__119: - if !(AssignUintptr(&s, dest) != 0) { - goto __126 - } -__128: - if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }())+1))) != 0) { - goto __129 - } - *(*uint8)(unsafe.Pointer(s + uintptr(PostIncUint64(&i, 1)))) = uint8(c) - goto __128 -__129: - ; - goto __127 -__126: -__130: - if !(*(*uint8)(unsafe.Pointer(bp + uintptr(AssignInt32(&c, func() int32 { - if (*FILE)(unsafe.Pointer(f)).rpos != (*FILE)(unsafe.Pointer(f)).shend { - return int32(*(*uint8)(unsafe.Pointer(PostIncUintptr(&(*FILE)(unsafe.Pointer(f)).rpos, 1)))) - } - return X__shgetc(tls, f) - }())+1))) != 0) { - goto __131 - } - goto __130 -__131: - ; -__127: - ; -__120: - ; -__106: - ; - if (*FILE)(unsafe.Pointer(f)).shlim >= int64(0) { - (*FILE)(unsafe.Pointer(f)).rpos-- - } else { - } - if !!((*FILE)(unsafe.Pointer(f)).shcnt+(int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 != 0) { - goto __132 - } - goto match_fail -__132: - ; - if !(t == 'c' && (*FILE)(unsafe.Pointer(f)).shcnt+(int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 != off_t(width)) { - goto __133 - } - goto match_fail -__133: - ; - if !(alloc != 0) { - goto __134 - } - if !(size == 1) { - goto __135 - } - *(*uintptr)(unsafe.Pointer(dest)) = wcs - goto __136 -__135: - *(*uintptr)(unsafe.Pointer(dest)) = s -__136: - ; -__134: - ; - if !(t != 'c') { - goto __137 - } - if !(wcs != 0) { - goto __138 - } - *(*wchar_t)(unsafe.Pointer(wcs + uintptr(i)*4)) = wchar_t(0) -__138: - ; - if !(s != 0) { - goto __139 - } - *(*uint8)(unsafe.Pointer(s + uintptr(i))) = uint8(0) -__139: - ; -__137: - ; - goto __70 -__74: -__75: -__76: - base = 16 - goto int_common -__77: - base = 8 - goto int_common -__78: -__79: - base = 10 - goto int_common -__80: - base = 0 -int_common: - x = X__intscan(tls, f, uint32(base), 0, 2*uint64(0x7fffffffffffffff)+uint64(1)) - if !!((*FILE)(unsafe.Pointer(f)).shcnt+(int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 != 0) { - goto __140 - } - goto match_fail -__140: - ; - if !(t == 'p' && dest != 0) { - goto __141 - } - *(*uintptr)(unsafe.Pointer(dest)) = uintptr(uintptr_t(x)) - goto __142 -__141: - store_int(tls, dest, size, x) -__142: - ; - goto __70 -__81: -__82: -__83: -__84: -__85: -__86: -__87: -__88: - y = X__floatscan(tls, f, size, 0) - if !!((*FILE)(unsafe.Pointer(f)).shcnt+(int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1 != 0) { - goto __143 - } - goto match_fail -__143: - ; - if !(dest != 0) { - goto __144 - } - switch size { - case 0: - goto __146 - case 1: - goto __147 - case 2: - goto __148 - } - goto __145 -__146: - *(*float32)(unsafe.Pointer(dest)) = float32(y) - goto __145 -__147: - *(*float64)(unsafe.Pointer(dest)) = y - goto __145 -__148: - *(*float64)(unsafe.Pointer(dest)) = y - goto __145 -__145: - ; -__144: - ; - goto __70 -__70: - ; - - pos = pos + ((*FILE)(unsafe.Pointer(f)).shcnt + (int64((*FILE)(unsafe.Pointer(f)).rpos)-int64((*FILE)(unsafe.Pointer(f)).buf))/1) - if !(dest != 0) { - goto __149 - } - matches++ -__149: - ; - goto __4 -__4: - p++ - goto __3 - goto __5 -__5: - ; - if !(0 != 0) { - goto __150 - } -fmt_fail: -alloc_fail: -input_fail: - if !!(matches != 0) { - goto __151 - } - matches-- -__151: - ; -match_fail: - if !(alloc != 0) { - goto __152 - } - Xfree(tls, s) - Xfree(tls, wcs) -__152: - ; -__150: - ; -__153: - if !(__need_unlock != 0) { - goto __156 - } - X__unlockfile(tls, f) -__156: - ; - goto __154 -__154: - if 0 != 0 { - goto __153 - } - goto __155 -__155: - ; - return matches -} - -func string_read(tls *TLS, f uintptr, buf uintptr, len size_t) size_t { /* vsscanf.c:4:15: */ - var src uintptr = (*FILE)(unsafe.Pointer(f)).cookie - var k size_t = len + uint64(256) - var end uintptr = Xmemchr(tls, src, 0, k) - if end != 0 { - k = size_t((int64(end) - int64(src)) / 1) - } - if k < len { - len = k - } - Xmemcpy(tls, buf, src, len) - (*FILE)(unsafe.Pointer(f)).rpos = src + uintptr(len) - (*FILE)(unsafe.Pointer(f)).rend = src + uintptr(k) - (*FILE)(unsafe.Pointer(f)).cookie = src + uintptr(k) - return len -} - -func Xvsscanf(tls *TLS, s uintptr, fmt uintptr, ap va_list) int32 { /* vsscanf.c:18:5: */ - if __ccgo_strace { - trc("tls=%v s=%v fmt=%v ap=%v, (%v:)", tls, s, fmt, ap, origin(2)) - } - bp := tls.Alloc(232) - defer tls.Free(232) - - *(*FILE)(unsafe.Pointer(bp /* f */)) = FILE{read: *(*uintptr)(unsafe.Pointer(&struct { - f func(*TLS, uintptr, uintptr, size_t) size_t - }{string_read})), buf: s, lock: -1, cookie: s} - return Xvfscanf(tls, bp, fmt, ap) -} - -func Xbsearch(tls *TLS, key uintptr, base uintptr, nel size_t, width size_t, cmp uintptr) uintptr { /* bsearch.c:3:6: */ - if __ccgo_strace { - trc("tls=%v key=%v base=%v nel=%v width=%v cmp=%v, (%v:)", tls, key, base, nel, width, cmp, origin(2)) - } - var try uintptr - var sign int32 - for nel > uint64(0) { - try = base + uintptr(width*(nel/uint64(2))) - sign = (*struct { - f func(*TLS, uintptr, uintptr) int32 - })(unsafe.Pointer(&struct{ uintptr }{cmp})).f(tls, key, try) - if sign < 0 { - nel = nel / uint64(2) - } else if sign > 0 { - base = try + uintptr(width) - nel = nel - (nel/uint64(2) + uint64(1)) - } else { - return try - } - } - return uintptr(0) -} - -func strtox(tls *TLS, s uintptr, p uintptr, prec int32) float64 { /* strtod.c:6:20: */ - bp := tls.Alloc(232) - defer tls.Free(232) - - // var f FILE at bp, 232 - - (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s) - (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1) - X__shlim(tls, bp, int64(0)) - var y float64 = X__floatscan(tls, bp, prec, 1) - var cnt off_t = (*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1 - if p != 0 { - *(*uintptr)(unsafe.Pointer(p)) = func() uintptr { - if cnt != 0 { - return s + uintptr(cnt) - } - return s - }() - } - return y -} - -func Xstrtof(tls *TLS, s uintptr, p uintptr) float32 { /* strtod.c:17:7: */ - if __ccgo_strace { - trc("tls=%v s=%v p=%v, (%v:)", tls, s, p, origin(2)) - } - return float32(strtox(tls, s, p, 0)) -} - -func Xstrtod(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:22:8: */ - if __ccgo_strace { - trc("tls=%v s=%v p=%v, (%v:)", tls, s, p, origin(2)) - } - return strtox(tls, s, p, 1) -} - -func Xstrtold(tls *TLS, s uintptr, p uintptr) float64 { /* strtod.c:27:13: */ - if __ccgo_strace { - trc("tls=%v s=%v p=%v, (%v:)", tls, s, p, origin(2)) - } - return strtox(tls, s, p, 2) -} - -func strtox1(tls *TLS, s uintptr, p uintptr, base int32, lim uint64) uint64 { /* strtol.c:8:27: */ - bp := tls.Alloc(232) - defer tls.Free(232) - - // var f FILE at bp, 232 - - (*FILE)(unsafe.Pointer(bp)).buf = AssignPtrUintptr(bp+8, s) - (*FILE)(unsafe.Pointer(bp)).rend = UintptrFromInt32(-1) - X__shlim(tls, bp, int64(0)) - var y uint64 = X__intscan(tls, bp, uint32(base), 1, lim) - if p != 0 { - var cnt size_t = size_t((*FILE)(unsafe.Pointer(bp)).shcnt + (int64((*FILE)(unsafe.Pointer(bp)).rpos)-int64((*FILE)(unsafe.Pointer(bp)).buf))/1) - *(*uintptr)(unsafe.Pointer(p)) = s + uintptr(cnt) - } - return y -} - -func Xstrtoull(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:21:20: */ - if __ccgo_strace { - trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) - } - return strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1)) -} - -func Xstrtoll(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:26:11: */ - if __ccgo_strace { - trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) - } - return int64(strtox1(tls, s, p, base, Uint64FromInt64(-0x7fffffffffffffff-int64(1)))) -} - -func Xstrtoul(tls *TLS, s uintptr, p uintptr, base int32) uint64 { /* strtol.c:31:15: */ - if __ccgo_strace { - trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) - } - return uint64(strtox1(tls, s, p, base, 2*uint64(0x7fffffffffffffff)+uint64(1))) -} - -func Xstrtol(tls *TLS, s uintptr, p uintptr, base int32) int64 { /* strtol.c:36:6: */ - if __ccgo_strace { - trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) - } - return int64(strtox1(tls, s, p, base, 0+Uint64FromInt64(Int64(-Int64(0x7fffffffffffffff))-Int64FromInt32(1)))) -} - -func Xstrtoimax(tls *TLS, s uintptr, p uintptr, base int32) intmax_t { /* strtol.c:41:10: */ - if __ccgo_strace { - trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) - } - return intmax_t(Xstrtoll(tls, s, p, base)) -} - -func Xstrtoumax(tls *TLS, s uintptr, p uintptr, base int32) uintmax_t { /* strtol.c:46:11: */ - if __ccgo_strace { - trc("tls=%v s=%v p=%v base=%v, (%v:)", tls, s, p, base, origin(2)) - } - return uintmax_t(Xstrtoull(tls, s, p, base)) -} - -func Xstrdup(tls *TLS, s uintptr) uintptr { /* strdup.c:4:6: */ - if __ccgo_strace { - trc("tls=%v s=%v, (%v:)", tls, s, origin(2)) - } - var l size_t = Xstrlen(tls, s) - var d uintptr = Xmalloc(tls, l+uint64(1)) - if !(d != 0) { - return uintptr(0) - } - return Xmemcpy(tls, d, s, l+uint64(1)) -} - -func Xstrlcat(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcat.c:4:8: */ - if __ccgo_strace { - trc("tls=%v d=%v s=%v n=%v, (%v:)", tls, d, s, n, origin(2)) - } - var l size_t = Xstrnlen(tls, d, n) - if l == n { - return l + Xstrlen(tls, s) - } - return l + Xstrlcpy(tls, d+uintptr(l), s, n-l) -} - -// Support signed or unsigned plain-char - -// Implementation choices... - -// Arbitrary numbers... - -// POSIX/SUS requirements follow. These numbers come directly -// from SUS and have nothing to do with the host system. - -func Xstrlcpy(tls *TLS, d uintptr, s uintptr, n size_t) size_t { /* strlcpy.c:11:8: */ - if __ccgo_strace { - trc("tls=%v d=%v s=%v n=%v, (%v:)", tls, d, s, n, origin(2)) - } - var d0 uintptr - var wd uintptr - var ws uintptr - d0 = d - - if !!(int32(PostDecUint64(&n, 1)) != 0) { - goto __1 - } - goto finish -__1: - ; - if !(uintptr_t(s)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1)) == uintptr_t(d)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1))) { - goto __2 - } -__3: - if !(uintptr_t(s)&(uint64(unsafe.Sizeof(size_t(0)))-uint64(1)) != 0 && n != 0 && AssignPtrUint8(d, *(*uint8)(unsafe.Pointer(s))) != 0) { - goto __5 - } - goto __4 -__4: - n-- - s++ - d++ - goto __3 - goto __5 -__5: - ; - if !(n != 0 && *(*uint8)(unsafe.Pointer(s)) != 0) { - goto __6 - } - wd = d - ws = s -__7: - if !(n >= size_t(unsafe.Sizeof(size_t(0))) && !((*(*uint64)(unsafe.Pointer(ws))-Uint64(Uint64FromInt32(-1))/uint64(255)) & ^*(*uint64)(unsafe.Pointer(ws)) & (Uint64(Uint64FromInt32(-1))/uint64(255)*uint64(255/2+1)) != 0)) { - goto __9 - } - *(*size_t)(unsafe.Pointer(wd)) = *(*uint64)(unsafe.Pointer(ws)) - goto __8 -__8: - n = n - size_t(unsafe.Sizeof(size_t(0))) - ws += 8 - wd += 8 - goto __7 - goto __9 -__9: - ; - d = wd - s = ws -__6: - ; -__2: - ; -__10: - if !(n != 0 && AssignPtrUint8(d, *(*uint8)(unsafe.Pointer(s))) != 0) { - goto __12 - } - goto __11 -__11: - n-- - s++ - d++ - goto __10 - goto __12 -__12: - ; - *(*uint8)(unsafe.Pointer(d)) = uint8(0) -finish: - return size_t((int64(d)-int64(d0))/1) + Xstrlen(tls, s) -} - -func Xstrncasecmp(tls *TLS, _l uintptr, _r uintptr, n size_t) int32 { /* strncasecmp.c:4:5: */ - if __ccgo_strace { - trc("tls=%v _l=%v _r=%v n=%v, (%v:)", tls, _l, _r, n, origin(2)) - } - var l uintptr = _l - var r uintptr = _r - if !(int32(PostDecUint64(&n, 1)) != 0) { - return 0 - } -__1: - if !(*(*uint8)(unsafe.Pointer(l)) != 0 && *(*uint8)(unsafe.Pointer(r)) != 0 && n != 0 && (int32(*(*uint8)(unsafe.Pointer(l))) == int32(*(*uint8)(unsafe.Pointer(r))) || Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) == Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))))) { - goto __3 - } - goto __2 -__2: - l++ - r++ - n-- - goto __1 - goto __3 -__3: - ; - return Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) - Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))) -} - -func X__strncasecmp_l(tls *TLS, l uintptr, r uintptr, n size_t, loc locale_t) int32 { /* strncasecmp.c:12:5: */ - if __ccgo_strace { - trc("tls=%v l=%v r=%v n=%v loc=%v, (%v:)", tls, l, r, n, loc, origin(2)) - } - return Xstrncasecmp(tls, l, r, n) -} - -func Xstrncat(tls *TLS, d uintptr, s uintptr, n size_t) uintptr { /* strncat.c:3:6: */ - if __ccgo_strace { - trc("tls=%v d=%v s=%v n=%v, (%v:)", tls, d, s, n, origin(2)) - } - var a uintptr = d - d += uintptr(Xstrlen(tls, d)) - for n != 0 && *(*uint8)(unsafe.Pointer(s)) != 0 { - n-- - *(*uint8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = *(*uint8)(unsafe.Pointer(PostIncUintptr(&s, 1))) - } - *(*uint8)(unsafe.Pointer(PostIncUintptr(&d, 1))) = uint8(0) - return a -} - -func Xstrnlen(tls *TLS, s uintptr, n size_t) size_t { /* strnlen.c:3:8: */ - if __ccgo_strace { - trc("tls=%v s=%v n=%v, (%v:)", tls, s, n, origin(2)) - } - var p uintptr = Xmemchr(tls, s, 0, n) - if p != 0 { - return uint64((int64(p) - int64(s)) / 1) - } - return n -} - -func Xstrspn(tls *TLS, s uintptr, c uintptr) size_t { /* strspn.c:6:8: */ - if __ccgo_strace { - trc("tls=%v s=%v c=%v, (%v:)", tls, s, c, origin(2)) - } - bp := tls.Alloc(32) - defer tls.Free(32) - - var a uintptr = s - *(*[4]size_t)(unsafe.Pointer(bp /* byteset */)) = [4]size_t{0: uint64(0)} - - if !(int32(*(*uint8)(unsafe.Pointer(c))) != 0) { - return uint64(0) - } - if !(int32(*(*uint8)(unsafe.Pointer(c + 1))) != 0) { - for ; int32(*(*uint8)(unsafe.Pointer(s))) == int32(*(*uint8)(unsafe.Pointer(c))); s++ { - } - return size_t((int64(s) - int64(a)) / 1) - } - - for ; *(*uint8)(unsafe.Pointer(c)) != 0 && AssignOrPtrUint64(bp+uintptr(size_t(*(*uint8)(unsafe.Pointer(c)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8, size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(c)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; c++ { - } - for ; *(*uint8)(unsafe.Pointer(s)) != 0 && *(*size_t)(unsafe.Pointer(bp + uintptr(size_t(*(*uint8)(unsafe.Pointer(s)))/(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))*8))&(size_t(uint64(1))<<(size_t(*(*uint8)(unsafe.Pointer(s)))%(uint64(8)*uint64(unsafe.Sizeof(size_t(0)))))) != 0; s++ { - } - return size_t((int64(s) - int64(a)) / 1) -} - -func Xstrtok(tls *TLS, s uintptr, sep uintptr) uintptr { /* strtok.c:3:6: */ - if __ccgo_strace { - trc("tls=%v s=%v sep=%v, (%v:)", tls, s, sep, origin(2)) - } - if !(s != 0) && !(int32(AssignUintptr(&s, _sp)) != 0) { - return uintptr(0) - } - s += uintptr(Xstrspn(tls, s, sep)) - if !(int32(*(*uint8)(unsafe.Pointer(s))) != 0) { - return AssignPtrUintptr(uintptr(unsafe.Pointer(&_sp)), uintptr(0)) - } - _sp = s + uintptr(Xstrcspn(tls, s, sep)) - if *(*uint8)(unsafe.Pointer(_sp)) != 0 { - *(*uint8)(unsafe.Pointer(PostIncUintptr(&_sp, 1))) = uint8(0) - } else { - _sp = uintptr(0) - } - return s -} - -var _sp uintptr /* strtok.c:5:14: */ - -func X__ccgo_pthreadAttrGetDetachState(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:3:5: */ - if __ccgo_strace { - trc("tls=%v a=%v, (%v:)", tls, a, origin(2)) - } - return *(*int32)(unsafe.Pointer(a + 6*4)) -} - -func Xpthread_attr_getdetachstate(tls *TLS, a uintptr, state uintptr) int32 { /* pthread_attr_get.c:7:5: */ - if __ccgo_strace { - trc("tls=%v a=%v state=%v, (%v:)", tls, a, state, origin(2)) - } - *(*int32)(unsafe.Pointer(state)) = *(*int32)(unsafe.Pointer(a + 6*4)) - return 0 -} - -// -// int pthread_attr_getguardsize(const pthread_attr_t *restrict a, size_t *restrict size) -// { -// *size = a->_a_guardsize; -// return 0; -// } -// -// int pthread_attr_getinheritsched(const pthread_attr_t *restrict a, int *restrict inherit) -// { -// *inherit = a->_a_sched; -// return 0; -// } -// -// int pthread_attr_getschedparam(const pthread_attr_t *restrict a, struct sched_param *restrict param) -// { -// param->sched_priority = a->_a_prio; -// return 0; -// } -// -// int pthread_attr_getschedpolicy(const pthread_attr_t *restrict a, int *restrict policy) -// { -// *policy = a->_a_policy; -// return 0; -// } -// -// int pthread_attr_getscope(const pthread_attr_t *restrict a, int *restrict scope) -// { -// *scope = PTHREAD_SCOPE_SYSTEM; -// return 0; -// } -// -// int pthread_attr_getstack(const pthread_attr_t *restrict a, void **restrict addr, size_t *restrict size) -// { -// if (!a->_a_stackaddr) -// return EINVAL; -// *size = a->_a_stacksize; -// *addr = (void *)(a->_a_stackaddr - *size); -// return 0; -// } -// -// int pthread_attr_getstacksize(const pthread_attr_t *restrict a, size_t *restrict size) -// { -// *size = a->_a_stacksize; -// return 0; -// } -// -// int pthread_barrierattr_getpshared(const pthread_barrierattr_t *restrict a, int *restrict pshared) -// { -// *pshared = !!a->__attr; -// return 0; -// } -// -// int pthread_condattr_getclock(const pthread_condattr_t *restrict a, clockid_t *restrict clk) -// { -// *clk = a->__attr & 0x7fffffff; -// return 0; -// } -// -// int pthread_condattr_getpshared(const pthread_condattr_t *restrict a, int *restrict pshared) -// { -// *pshared = a->__attr>>31; -// return 0; -// } -// -// int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *restrict a, int *restrict protocol) -// { -// *protocol = PTHREAD_PRIO_NONE; -// return 0; -// } -// int pthread_mutexattr_getpshared(const pthread_mutexattr_t *restrict a, int *restrict pshared) -// { -// *pshared = a->__attr / 128U % 2; -// return 0; -// } -// -// int pthread_mutexattr_getrobust(const pthread_mutexattr_t *restrict a, int *restrict robust) -// { -// *robust = a->__attr / 4U % 2; -// return 0; -// } - -func X__ccgo_pthreadMutexattrGettype(tls *TLS, a uintptr) int32 { /* pthread_attr_get.c:93:5: */ - if __ccgo_strace { - trc("tls=%v a=%v, (%v:)", tls, a, origin(2)) - } - return int32((*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr & uint32(3)) -} - -// int pthread_mutexattr_gettype(const pthread_mutexattr_t *restrict a, int *restrict type) -// { -// *type = a->__attr & 3; -// return 0; -// } -// -// int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *restrict a, int *restrict pshared) -// { -// *pshared = a->__attr[0]; -// return 0; -// } - -func Xpthread_attr_setdetachstate(tls *TLS, a uintptr, state int32) int32 { /* pthread_attr_setdetachstate.c:3:5: */ - if __ccgo_strace { - trc("tls=%v a=%v state=%v, (%v:)", tls, a, state, origin(2)) - } - if uint32(state) > 1 { - return 22 - } - *(*int32)(unsafe.Pointer(a + 6*4)) = state - return 0 -} - -func X__ccgo_getMutexType(tls *TLS, m uintptr) int32 { /* pthread_mutex_lock.c:3:5: */ - if __ccgo_strace { - trc("tls=%v m=%v, (%v:)", tls, m, origin(2)) - } - return *(*int32)(unsafe.Pointer(m)) & 15 -} - -// int __pthread_mutex_lock(pthread_mutex_t *m) -// { -// if ((m->_m_type&15) == PTHREAD_MUTEX_NORMAL -// && !a_cas(&m->_m_lock, 0, EBUSY)) -// return 0; -// -// return __pthread_mutex_timedlock(m, 0); -// } -// -// weak_alias(__pthread_mutex_lock, pthread_mutex_lock); - -func Xpthread_mutexattr_destroy(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_destroy.c:3:5: */ - if __ccgo_strace { - trc("tls=%v a=%v, (%v:)", tls, a, origin(2)) - } - return 0 -} - -func Xpthread_mutexattr_init(tls *TLS, a uintptr) int32 { /* pthread_mutexattr_init.c:3:5: */ - if __ccgo_strace { - trc("tls=%v a=%v, (%v:)", tls, a, origin(2)) - } - *(*pthread_mutexattr_t)(unsafe.Pointer(a)) = pthread_mutexattr_t{} - return 0 -} - -func Xpthread_mutexattr_settype(tls *TLS, a uintptr, type1 int32) int32 { /* pthread_mutexattr_settype.c:3:5: */ - if __ccgo_strace { - trc("tls=%v a=%v type1=%v, (%v:)", tls, a, type1, origin(2)) - } - if uint32(type1) > uint32(2) { - return 22 - } - (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr = (*pthread_mutexattr_t)(unsafe.Pointer(a)).__attr&Uint32FromInt32(CplInt32(3)) | uint32(type1) - return 0 -} - -func init() { - *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&ptable)) + 0)) = uintptr(unsafe.Pointer(&table)) + uintptr(128)*2 // __ctype_b_loc.c:36:45: -} - -var ts1 = "infinity\x00nan\x00\x00\x00\x01\x02\x04\a\x03\x06\x05\x00.\x00%d.%d.%d.%d.in-addr.arpa\x00ip6.arpa\x000123456789abcdef\x00/etc/hosts\x00rb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00%d.%d.%d.%d\x00%x:%x:%x:%x:%x:%x:%x:%x\x00%x:%x:%x:%x:%x:%x:%d.%d.%d.%d\x00:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00 \x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" -var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data diff --git a/vendor/modernc.org/libc/printf.go b/vendor/modernc.org/libc/printf.go index 8e305b06..2821f8e3 100644 --- a/vendor/modernc.org/libc/printf.go +++ b/vendor/modernc.org/libc/printf.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !(linux && (amd64 || loong64)) +//go:build !(linux && (amd64 || arm64 || loong64)) package libc // import "modernc.org/libc" @@ -346,6 +346,8 @@ more: arg = uint64(uint8(VaInt32(args))) case mod32: arg = uint64(VaInt32(args)) + case modZ: + arg = uint64(VaInt64(args)) default: panic(todo("", mod)) } diff --git a/vendor/modernc.org/libc/pthread.go b/vendor/modernc.org/libc/pthread.go index 9e49cc0e..b97c9fc0 100644 --- a/vendor/modernc.org/libc/pthread.go +++ b/vendor/modernc.org/libc/pthread.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !(linux && (amd64 || loong64)) +//go:build !(linux && (amd64 || arm64 || loong64)) package libc // import "modernc.org/libc" diff --git a/vendor/modernc.org/libc/pthread_all.go b/vendor/modernc.org/libc/pthread_all.go index 76a941f0..16d04470 100644 --- a/vendor/modernc.org/libc/pthread_all.go +++ b/vendor/modernc.org/libc/pthread_all.go @@ -2,10 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !freebsd && !openbsd && !(linux && (amd64 || loong64)) -// +build !freebsd -// +build !openbsd -// +build !linux !amd64,!loong64 +//go:build !freebsd && !openbsd && !(linux && (amd64 || arm64 || loong64)) package libc // import "modernc.org/libc" @@ -50,3 +47,14 @@ func Xpthread_mutex_init(t *TLS, pMutex, pAttr uintptr) int32 { mutexes[pMutex] = newMutex(typ) return 0 } + +func Xpthread_atfork(tls *TLS, prepare, parent, child uintptr) int32 { + // fork(2) not supported. + return 0 +} + +// int pthread_sigmask(int how, const sigset_t *restrict set, sigset_t *restrict old) +func Xpthread_sigmask(tls *TLS, now int32, set, old uintptr) int32 { + // ignored + return 0 +} diff --git a/vendor/modernc.org/libc/pthread_musl.go b/vendor/modernc.org/libc/pthread_musl.go index 3a7e0a69..2f0405be 100644 --- a/vendor/modernc.org/libc/pthread_musl.go +++ b/vendor/modernc.org/libc/pthread_musl.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build linux && (amd64 || loong64) +//go:build linux && (amd64 || arm64 || loong64) package libc // import "modernc.org/libc" diff --git a/vendor/modernc.org/libc/rtl.go b/vendor/modernc.org/libc/rtl.go index b103b4b7..2a1787c2 100644 --- a/vendor/modernc.org/libc/rtl.go +++ b/vendor/modernc.org/libc/rtl.go @@ -2,9 +2,9 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build linux && (amd64 || loong64) +//go:build linux && (amd64 || arm64 || loong64) -package libc // import "modernc.org/libc/v2" +package libc // import "modernc.org/libc" import ( "math" diff --git a/vendor/modernc.org/libc/scanf.go b/vendor/modernc.org/libc/scanf.go index 3c5745f4..03d3c32a 100644 --- a/vendor/modernc.org/libc/scanf.go +++ b/vendor/modernc.org/libc/scanf.go @@ -2,13 +2,14 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !(linux && (amd64 || loong64)) +//go:build !(linux && (amd64 || arm64 || loong64)) package libc // import "modernc.org/libc" import ( "io" "strconv" + "strings" "unsafe" ) @@ -86,6 +87,7 @@ func scanfConversion(r io.ByteScanner, format uintptr, args *uintptr) (_ uintptr mod := 0 width := -1 + discard := false flags: for { switch c := *(*byte)(unsafe.Pointer(format)); c { @@ -95,7 +97,7 @@ flags: // corresponding pointer argument is re‐ quired, and this specification is not // included in the count of successful assignments returned by scanf(). format++ - panic(todo("")) + discard = true case '\'': // For decimal conversions, an optional quote character ('). This specifies // that the input number may include thousands' separators as defined by the @@ -143,7 +145,18 @@ flags: // input '%' character. No conversion is done (but initial white space // characters are discarded), and assign‐ ment does not occur. format++ - panic(todo("")) + skipReaderWhiteSpace(r) + c, err := r.ReadByte() + if err != nil { + return format, -1, false + } + + if c == '%' { + return format, 1, true + } + + r.UnreadByte() + return format, 0, false case 'd': // Matches an optionally signed decimal integer; the next pointer must be a // pointer to int. @@ -193,22 +206,26 @@ flags: break } - arg := VaUintptr(args) - v := int64(n) - if neg { - v = -v - } - switch mod { - case modNone: - *(*int32)(unsafe.Pointer(arg)) = int32(v) - case modH: - *(*int16)(unsafe.Pointer(arg)) = int16(v) - case modHH: - *(*int8)(unsafe.Pointer(arg)) = int8(v) - case modL: - *(*long)(unsafe.Pointer(arg)) = long(n) - default: - panic(todo("")) + if !discard { + arg := VaUintptr(args) + v := int64(n) + if neg { + v = -v + } + switch mod { + case modNone: + *(*int32)(unsafe.Pointer(arg)) = int32(v) + case modH: + *(*int16)(unsafe.Pointer(arg)) = int16(v) + case modHH: + *(*int8)(unsafe.Pointer(arg)) = int8(v) + case modL: + *(*long)(unsafe.Pointer(arg)) = long(v) + case modLL: + *(*int64)(unsafe.Pointer(arg)) = int64(v) + default: + panic(todo("", mod)) + } } nvalues = 1 case 'D': @@ -246,7 +263,7 @@ flags: for ; width != 0; width-- { c, err := r.ReadByte() if err != nil { - if match { + if match || err == io.EOF { break hex } @@ -286,18 +303,20 @@ flags: break } - arg := VaUintptr(args) - switch mod { - case modNone: - *(*uint32)(unsafe.Pointer(arg)) = uint32(n) - case modH: - *(*uint16)(unsafe.Pointer(arg)) = uint16(n) - case modHH: - *(*byte)(unsafe.Pointer(arg)) = byte(n) - case modL: - *(*ulong)(unsafe.Pointer(arg)) = ulong(n) - default: - panic(todo("")) + if !discard { + arg := VaUintptr(args) + switch mod { + case modNone: + *(*uint32)(unsafe.Pointer(arg)) = uint32(n) + case modH: + *(*uint16)(unsafe.Pointer(arg)) = uint16(n) + case modHH: + *(*byte)(unsafe.Pointer(arg)) = byte(n) + case modL: + *(*ulong)(unsafe.Pointer(arg)) = ulong(n) + default: + panic(todo("")) + } } nvalues = 1 case 'f', 'e', 'g', 'E', 'a': @@ -323,17 +342,19 @@ flags: panic(todo("", err)) } - arg := VaUintptr(args) - if neg { - n = -n - } - switch mod { - case modNone: - *(*float32)(unsafe.Pointer(arg)) = float32(n) - case modL: - *(*float64)(unsafe.Pointer(arg)) = n - default: - panic(todo("", mod, neg, n)) + if !discard { + arg := VaUintptr(args) + if neg { + n = -n + } + switch mod { + case modNone: + *(*float32)(unsafe.Pointer(arg)) = float32(n) + case modL: + *(*float64)(unsafe.Pointer(arg)) = n + default: + panic(todo("", mod, neg, n)) + } } return format, 1, true case 's': @@ -342,8 +363,44 @@ flags: // hold the input sequence and the terminating null byte ('\0'), which is added // automatically. The input string stops at white space or at the maximum // field width, whichever occurs first. - format++ - panic(todo("")) + var c byte + var err error + var arg uintptr + if !discard { + arg = VaUintptr(args) + } + scans: + for ; width != 0; width-- { + if c, err = r.ReadByte(); err != nil { + if err != io.EOF { + nvalues = -1 + } + break scans + } + + switch c { + case ' ', '\t', '\n', '\r', '\v', '\f': + break scans + } + + nvalues = 1 + match = true + if !discard { + *(*byte)(unsafe.Pointer(arg)) = c + arg++ + } + } + if match { + switch { + case width == 0: + r.UnreadByte() + fallthrough + default: + if !discard { + *(*byte)(unsafe.Pointer(arg)) = 0 + } + } + } case 'c': // Matches a sequence of characters whose length is specified by the maximum // field width (default 1); the next pointer must be a pointer to char, and @@ -370,7 +427,69 @@ flags: // hyphen". The string ends with the appearance of a character not in the // (or, with a circumflex, in) set or when the field width runs out. format++ - panic(todo("")) + var re0 []byte + bracket: + for i := 0; ; i++ { + c := *(*byte)(unsafe.Pointer(format)) + format++ + if c == ']' && i != 0 { + break bracket + } + + re0 = append(re0, c) + } + set := map[byte]struct{}{} + re := string(re0) + neg := strings.HasPrefix(re, "^") + if neg { + re = re[1:] + } + for len(re) != 0 { + switch { + case len(re) >= 3 && re[1] == '-': + for c := re[0]; c <= re[2]; c++ { + set[c] = struct{}{} + } + re = re[3:] + default: + set[c] = struct{}{} + re = re[1:] + } + } + var arg uintptr + if !discard { + arg = VaUintptr(args) + } + for ; width != 0; width-- { + c, err := r.ReadByte() + if err != nil { + if err == io.EOF { + return format, nvalues, match + } + + return format, -1, match + } + + if _, ok := set[c]; ok == !neg { + match = true + nvalues = 1 + if !discard { + *(*byte)(unsafe.Pointer(arg)) = c + arg++ + } + } + } + if match { + switch { + case width == 0: + r.UnreadByte() + fallthrough + default: + if !discard { + *(*byte)(unsafe.Pointer(arg)) = 0 + } + } + } case 'p': // Matches a pointer value (as printed by %p in printf(3); the next pointer // must be a pointer to a pointer to void. @@ -429,8 +548,10 @@ flags: break } - arg := VaUintptr(args) - *(*uintptr)(unsafe.Pointer(arg)) = uintptr(n) + if !discard { + arg := VaUintptr(args) + *(*uintptr)(unsafe.Pointer(arg)) = uintptr(n) + } nvalues = 1 case 'n': // Nothing is expected; instead, the number of characters consumed thus far diff --git a/vendor/modernc.org/libc/sync.go b/vendor/modernc.org/libc/sync.go index e4bfa42f..05fe4d4d 100644 --- a/vendor/modernc.org/libc/sync.go +++ b/vendor/modernc.org/libc/sync.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !(linux && (amd64 || loong64)) +//go:build !(linux && (amd64 || arm64 || loong64)) package libc // import "modernc.org/libc" diff --git a/vendor/modernc.org/libc/syscall_musl.go b/vendor/modernc.org/libc/syscall_musl.go index cc647919..0838da89 100644 --- a/vendor/modernc.org/libc/syscall_musl.go +++ b/vendor/modernc.org/libc/syscall_musl.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build linux && (amd64 || loong64) +//go:build linux && (amd64 || arm64 || loong64) package libc // import "modernc.org/libc" diff --git a/vendor/modernc.org/sqlite/lib/sqlite_darwin_amd64.go b/vendor/modernc.org/sqlite/lib/sqlite_darwin_amd64.go index ba18b977..827d9b06 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_darwin_amd64.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_darwin_amd64.go @@ -1,4 +1,4 @@ -// Code generated for darwin/amd64 by 'generator -mlong-double-64 --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -import runtime -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -extended-errors -o sqlite3.go sqlite3.c -I/tmp/libsqlite3/sqlite-amalgamation-3450300/ccgo -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. +// Code generated for darwin/amd64 by 'generator -mlong-double-64 --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -I /Users/jnml/src/modernc.org/builder/.exclude/modernc.org/libz/include/darwin/amd64 -I /Users/jnml/src/modernc.org/builder/.exclude/modernc.org/libtcl8.6/include/darwin/amd64 -extended-errors -o sqlite3.go sqlite3.c -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. //go:build darwin && amd64 // +build darwin,amd64 @@ -10,8 +10,6 @@ import ( "unsafe" "modernc.org/libc" - - "runtime" ) var ( @@ -1445,6 +1443,7 @@ const OPFLG_IN1 = 2 const OPFLG_IN2 = 4 const OPFLG_IN3 = 8 const OPFLG_JUMP = 1 +const OPFLG_JUMP0 = 128 const OPFLG_NCYCLE = 64 const OPFLG_OUT2 = 16 const OPFLG_OUT3 = 32 @@ -1522,7 +1521,7 @@ const OP_IfNotOpen = 25 const OP_IfNotZero = 60 const OP_IfNullRow = 20 const OP_IfPos = 59 -const OP_IfSmaller = 33 +const OP_IfSizeBetween = 33 const OP_IncrVacuum = 62 const OP_Init = 8 const OP_InitCoroutine = 11 @@ -2021,6 +2020,7 @@ const SF_ComplexResult = 262144 const SF_Compound = 256 const SF_Converted = 65536 const SF_CopyCte = 67108864 +const SF_Correlated = 536870912 const SF_DATALESS = 1073741824 const SF_Distinct = 1 const SF_Expanded = 64 @@ -2288,6 +2288,7 @@ const SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT = -1 const SQLITE_DEFAULT_LOOKASIDE = 40 const SQLITE_DEFAULT_MEMSTATUS = 0 const SQLITE_DEFAULT_MMAP_SIZE = 0 +const SQLITE_DEFAULT_OPTIMIZE_LIMIT = 2000 const SQLITE_DEFAULT_PAGE_SIZE = 4096 const SQLITE_DEFAULT_PCACHE_INITSZ = 20 const SQLITE_DEFAULT_PROXYDIR_PERMISSIONS = 493 @@ -2305,6 +2306,7 @@ const SQLITE_DESERIALIZE_READONLY = 4 const SQLITE_DESERIALIZE_RESIZEABLE = 2 const SQLITE_DETACH = 25 const SQLITE_DETERMINISTIC = 2048 +const SQLITE_DIGIT_SEPARATOR = 95 const SQLITE_DIRECTONLY = 524288 const SQLITE_DIRECT_OVERFLOW_READ = 1 const SQLITE_DONE = 101 @@ -2729,7 +2731,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355" +const SQLITE_SOURCE_ID = "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2837,8 +2839,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.45.3" -const SQLITE_VERSION_NUMBER = 3045003 +const SQLITE_VERSION = "3.46.0" +const SQLITE_VERSION_NUMBER = 3046000 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -2991,11 +2993,11 @@ const TF_HasStat1 = 16 const TF_HasStat4 = 8192 const TF_HasStored = 64 const TF_HasVirtual = 32 +const TF_MaybeReanalyze = 256 const TF_NoVisibleRowid = 512 const TF_OOOHidden = 1024 const TF_Readonly = 1 const TF_Shadow = 4096 -const TF_StatsUsed = 256 const TF_Strict = 65536 const TF_WithoutRowid = 128 const TIME_UTC = 1 @@ -3101,7 +3103,7 @@ const TK_ID = 59 const TK_IF = 18 const TK_IF_NULL_ROW = 179 const TK_IGNORE = 63 -const TK_ILLEGAL = 184 +const TK_ILLEGAL = 185 const TK_IMMEDIATE = 8 const TK_IN = 49 const TK_INDEX = 161 @@ -3149,6 +3151,7 @@ const TK_PRAGMA = 70 const TK_PRECEDING = 88 const TK_PRIMARY = 122 const TK_PTR = 112 +const TK_QNUMBER = 183 const TK_QUERY = 3 const TK_RAISE = 71 const TK_RANGE = 89 @@ -3173,7 +3176,7 @@ const TK_SELECT_COLUMN = 178 const TK_SEMI = 1 const TK_SET = 130 const TK_SLASH = 109 -const TK_SPACE = 183 +const TK_SPACE = 184 const TK_SPAN = 181 const TK_STAR = 108 const TK_STRING = 117 @@ -3186,12 +3189,12 @@ const TK_TRANSACTION = 6 const TK_TRIGGER = 77 const TK_TRUEFALSE = 170 const TK_TRUTH = 175 -const TK_UMINUS = 173 +const TK_UMINUS = 174 const TK_UNBOUNDED = 90 const TK_UNION = 134 const TK_UNIQUE = 123 const TK_UPDATE = 129 -const TK_UPLUS = 174 +const TK_UPLUS = 173 const TK_USING = 144 const TK_VACUUM = 78 const TK_VALUES = 139 @@ -3474,31 +3477,37 @@ const XN_ROWID = -1 const XUCRED_VERSION = 0 const X_OK = 1 const X_TLOSS = 0 +const YYDYNSTACK = 1 const YYFALLBACK = 1 +const YYFREE = 0 +const YYGROWABLESTACK = 1 const YYMALLOCARGTYPE = 0 -const YYNOCODE = 319 +const YYNOCODE = 322 const YYNOERRORRECOVERY = 1 -const YYNRULE = 405 -const YYNRULE_WITH_ACTION = 340 -const YYNSTATE = 579 -const YYNTOKEN = 185 +const YYNRULE = 409 +const YYNRULE_WITH_ACTION = 344 +const YYNSTATE = 583 +const YYNTOKEN = 186 const YYPARSEFREENEVERNULL = 1 +const YYREALLOC = 0 const YYSTACKDEPTH = 100 const YYWILDCARD = 101 -const YY_ACCEPT_ACTION = 1244 -const YY_ACTTAB_COUNT = 2100 -const YY_ERROR_ACTION = 1243 -const YY_MAX_REDUCE = 1650 -const YY_MAX_SHIFT = 578 -const YY_MAX_SHIFTREDUCE = 1242 -const YY_MIN_REDUCE = 1246 -const YY_MIN_SHIFTREDUCE = 838 -const YY_NO_ACTION = 1245 -const YY_REDUCE_COUNT = 410 -const YY_REDUCE_MAX = 1753 -const YY_REDUCE_MIN = -271 -const YY_SHIFT_COUNT = 578 -const YY_SHIFT_MAX = 2088 +const YY_ACCEPT_ACTION = 1255 +const YY_ACTTAB_COUNT = 2142 +const YY_ERROR_ACTION = 1254 +const YY_MAX_DSTRCTR = 319 +const YY_MAX_REDUCE = 1665 +const YY_MAX_SHIFT = 582 +const YY_MAX_SHIFTREDUCE = 1253 +const YY_MIN_DSTRCTR = 205 +const YY_MIN_REDUCE = 1257 +const YY_MIN_SHIFTREDUCE = 845 +const YY_NO_ACTION = 1256 +const YY_REDUCE_COUNT = 411 +const YY_REDUCE_MAX = 1798 +const YY_REDUCE_MIN = -275 +const YY_SHIFT_COUNT = 582 +const YY_SHIFT_MAX = 2128 const YY_SHIFT_MIN = 0 const _ACCESS_EXTENDED_MASK = 4193792 const _APPEND_OK = 8192 @@ -4552,6 +4561,9 @@ const fdatasync = 0 const first_valueInvFunc = 0 const first_valueValueFunc = 0 const fts5GetVarint = 0 +const fts5YYDYNSTACK = 0 +const fts5YYFREE = 0 +const fts5YYGROWABLESTACK = 0 const fts5YYMALLOCARGTYPE = 0 const fts5YYNFTS5TOKEN = 16 const fts5YYNOCODE = 27 @@ -4560,13 +4572,16 @@ const fts5YYNRULE = 28 const fts5YYNRULE_WITH_ACTION = 28 const fts5YYNSTATE = 35 const fts5YYPARSEFREENOTNULL = 1 +const fts5YYREALLOC = 0 const fts5YYSTACKDEPTH = 100 const fts5YY_ACCEPT_ACTION = 81 const fts5YY_ACTTAB_COUNT = 105 const fts5YY_ERROR_ACTION = 80 +const fts5YY_MAX_DSTRCTR = 24 const fts5YY_MAX_REDUCE = 110 const fts5YY_MAX_SHIFT = 34 const fts5YY_MAX_SHIFTREDUCE = 79 +const fts5YY_MIN_DSTRCTR = 16 const fts5YY_MIN_REDUCE = 83 const fts5YY_MIN_SHIFTREDUCE = 52 const fts5YY_NO_ACTION = 82 @@ -4994,11 +5009,11 @@ type sqlite3_file1 = Tsqlite3_file1 // ** // ** xLock() upgrades the database file lock. In other words, xLock() moves the // ** database file lock in the direction NONE toward EXCLUSIVE. The argument to -// ** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +// ** xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never // ** SQLITE_LOCK_NONE. If the database file lock is already at or above the // ** requested lock, then the call to xLock() is a no-op. // ** xUnlock() downgrades the database file lock to either SHARED or NONE. -// * If the lock is already at or below the requested lock state, then the call +// ** If the lock is already at or below the requested lock state, then the call // ** to xUnlock() is a no-op. // ** The xCheckReservedLock() method checks whether any database connection, // ** either in this process or in some other process, is holding a RESERVED, @@ -6778,6 +6793,7 @@ type Tsqlite3_changegroup = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -7104,8 +7120,8 @@ type Fts5PhraseIter1 = TFts5PhraseIter1 ** EXTENSION API FUNCTIONS ** ** xUserData(pFts): -** Return a copy of the context pointer the extension function was -** registered with. +** Return a copy of the pUserData pointer passed to the xCreateFunction() +** API when the extension function was registered. ** ** xColumnTotalSize(pFts, iCol, pnToken): ** If parameter iCol is less than zero, set output variable *pnToken @@ -9632,7 +9648,7 @@ type uptr = Tuptr ** 0x00000010 Display sqlite3_index_info xBestIndex calls ** 0x00000020 Range an equality scan metrics ** 0x00000040 IN operator decisions -** 0x00000080 WhereLoop cost adjustements +** 0x00000080 WhereLoop cost adjustments ** 0x00000100 ** 0x00000200 Covering index decisions ** 0x00000400 OR optimization @@ -10144,6 +10160,7 @@ type TParse = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -10363,6 +10380,7 @@ type TSrcItem = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -12639,10 +12657,12 @@ type IdList1 = TIdList1 ** ** Union member validity: ** -** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc -** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy -** u2.pIBIndex fg.isIndexedBy && !fg.isCte -** u2.pCteUse fg.isCte && !fg.isIndexedBy +** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc +** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy +** u1.nRow !fg.isTabFunc && !fg.isIndexedBy +** +** u2.pIBIndex fg.isIndexedBy && !fg.isCte +** u2.pCteUse fg.isCte && !fg.isIndexedBy */ type TSrcItem1 = struct { FpSchema uintptr @@ -12668,6 +12688,7 @@ type TSrcItem1 = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -13071,6 +13092,7 @@ type TParse1 = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -14433,12 +14455,12 @@ var _sqlite3WhereTrace = uint32(0) var _sqlite3OpcodeProperty = [190]uint8{ 4: uint8(0x10), 6: uint8(0x41), - 8: uint8(0x01), + 8: uint8(0x81), 9: uint8(0x01), 10: uint8(0x01), - 11: uint8(0x01), - 12: uint8(0x03), - 13: uint8(0x03), + 11: uint8(0x81), + 12: uint8(0x83), + 13: uint8(0x83), 14: uint8(0x01), 15: uint8(0x01), 16: uint8(0x03), @@ -14446,22 +14468,22 @@ var _sqlite3OpcodeProperty = [190]uint8{ 18: uint8(0x01), 19: uint8(0x12), 20: uint8(0x01), - 21: uint8(0x49), - 22: uint8(0x49), - 23: uint8(0x49), - 24: uint8(0x49), + 21: uint8(0xc9), + 22: uint8(0xc9), + 23: uint8(0xc9), + 24: uint8(0xc9), 25: uint8(0x01), 26: uint8(0x49), 27: uint8(0x49), 28: uint8(0x49), 29: uint8(0x49), - 30: uint8(0x49), + 30: uint8(0xc9), 31: uint8(0x49), - 32: uint8(0x41), + 32: uint8(0xc1), 33: uint8(0x01), 34: uint8(0x41), 35: uint8(0x41), - 36: uint8(0x41), + 36: uint8(0xc1), 37: uint8(0x01), 38: uint8(0x41), 39: uint8(0x41), @@ -14473,7 +14495,7 @@ var _sqlite3OpcodeProperty = [190]uint8{ 45: uint8(0x41), 46: uint8(0x23), 47: uint8(0x0b), - 48: uint8(0x01), + 48: uint8(0x81), 49: uint8(0x01), 50: uint8(0x03), 51: uint8(0x03), @@ -15328,7 +15350,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= int32(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(23890)) + return _sqlite3MisuseError(tls, int32(23961)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -15670,43 +15692,37 @@ const __CLOCK_THREAD_CPUTIME_ID = 16 // ** A structure for holding a single date and time. // */ type TDateTime = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD int8 - FrawS int8 - FvalidYMD int8 - FvalidHMS int8 - FvalidTZ int8 - FtzSet int8 - FisError int8 - FuseSubsec int8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD int8 + FvalidYMD int8 + FvalidHMS int8 + FnFloor int8 + F__ccgo44 uint8 } type DateTime = TDateTime type TDateTime1 = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD int8 - FrawS int8 - FvalidYMD int8 - FvalidHMS int8 - FvalidTZ int8 - FtzSet int8 - FisError int8 - FuseSubsec int8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD int8 + FvalidYMD int8 + FvalidHMS int8 + FnFloor int8 + F__ccgo44 uint8 } type DateTime1 = TDateTime1 @@ -15775,6 +15791,7 @@ func _getDigits(tls *libc.TLS, zDate uintptr, zFormat uintptr, va uintptr) (r in cnt++ zFormat += uintptr(4) } + goto end_getDigits end_getDigits: ; _ = ap @@ -15831,6 +15848,8 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } else { if c == int32('Z') || c == int32('z') { zDate++ + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) goto zulu_time } else { return libc.BoolInt32(c != 0) @@ -15843,12 +15862,12 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } zDate += uintptr(5) (*TDateTime)(unsafe.Pointer(p)).Ftz = sgn * (*(*int32)(unsafe.Pointer(bp + 4)) + *(*int32)(unsafe.Pointer(bp))*int32(60)) + goto zulu_time zulu_time: ; for int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zDate)))])&int32(0x01) != 0 { zDate++ } - (*TDateTime)(unsafe.Pointer(p)).FtzSet = int8(1) return libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zDate))) != 0) } @@ -15865,11 +15884,10 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var ms, rScale float64 - var v1 int32 var _ /* h at bp+0 */ int32 var _ /* m at bp+4 */ int32 var _ /* s at bp+8 */ int32 - _, _, _ = ms, rScale, v1 + _, _ = ms, rScale ms = float64(0) if _getDigits(tls, zDate, __ccgo_ts+1164, libc.VaList(bp+24, bp, bp+4)) != int32(2) { return int32(1) @@ -15895,7 +15913,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 8)) = 0 } (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) (*TDateTime)(unsafe.Pointer(p)).Fh = *(*int32)(unsafe.Pointer(bp)) (*TDateTime)(unsafe.Pointer(p)).Fm = *(*int32)(unsafe.Pointer(bp + 4)) @@ -15903,12 +15921,6 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { if _parseTimezone(tls, zDate, p) != 0 { return int32(1) } - if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { - v1 = int32(1) - } else { - v1 = 0 - } - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = int8(v1) return 0 } @@ -15919,7 +15931,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { // */ func _datetimeError(tls *libc.TLS, p uintptr) { libc.X__builtin___memset_chk(tls, p, 0, uint64(48), libc.X__builtin_object_size(tls, p, 0)) - (*TDateTime)(unsafe.Pointer(p)).FisError = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 1, 0x2) } // C documentation @@ -15945,7 +15957,7 @@ func _computeJD(tls *libc.TLS, p uintptr) { M = int32(1) D = int32(1) } - if Y < -int32(4713) || Y > int32(9999) || (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Y < -int32(4713) || Y > int32(9999) || int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { _datetimeError(tls, p) return } @@ -15961,11 +15973,41 @@ func _computeJD(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) if (*TDateTime)(unsafe.Pointer(p)).FvalidHMS != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) += int64((*TDateTime)(unsafe.Pointer(p)).Fh*int32(3600000)+(*TDateTime)(unsafe.Pointer(p)).Fm*int32(60000)) + int64((*TDateTime)(unsafe.Pointer(p)).Fs*libc.Float64FromInt32(1000)+libc.Float64FromFloat64(0.5)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64((*TDateTime)(unsafe.Pointer(p)).Ftz * int32(60000)) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + } + } +} + +// C documentation +// +// /* +// ** Given the YYYY-MM-DD information current in p, determine if there +// ** is day-of-month overflow and set nFloor to the number of days that +// ** would need to be subtracted from the date in order to bring the +// ** date back to the end of the month. +// */ +func _computeFloor(tls *libc.TLS, p uintptr) { + if (*TDateTime)(unsafe.Pointer(p)).FD <= int32(28) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } else { + if int32(1)<<(*TDateTime)(unsafe.Pointer(p)).FM&int32(0x15aa) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } else { + if (*TDateTime)(unsafe.Pointer(p)).FM != int32(2) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = libc.BoolInt8((*TDateTime)(unsafe.Pointer(p)).FD == libc.Int32FromInt32(31)) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FY%int32(4) != 0 || (*TDateTime)(unsafe.Pointer(p)).FY%int32(100) == 0 && (*TDateTime)(unsafe.Pointer(p)).FY%int32(400) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = int8((*TDateTime)(unsafe.Pointer(p)).FD - int32(28)) + } else { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = int8((*TDateTime)(unsafe.Pointer(p)).FD - int32(29)) + } + } } } } @@ -16024,12 +16066,15 @@ func _parseYyyyMmDd(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FY = v1 (*TDateTime)(unsafe.Pointer(p)).FM = *(*int32)(unsafe.Pointer(bp + 4)) (*TDateTime)(unsafe.Pointer(p)).FD = *(*int32)(unsafe.Pointer(bp + 8)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + _computeFloor(tls, p) + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { _computeJD(tls, p) } return 0 } +/* Forward declaration */ + // C documentation // // /* @@ -16041,6 +16086,9 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) (*TDateTime)(unsafe.Pointer(p)).FiJD = _sqlite3StmtCurrentTime(tls, context) if (*TDateTime)(unsafe.Pointer(p)).FiJD > 0 { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + _clearYMD_HMS_TZ(tls, p) return 0 } else { return int32(1) @@ -16058,7 +16106,7 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) // */ func _setRawDateNumber(tls *libc.TLS, p uintptr, r float64) { (*TDateTime)(unsafe.Pointer(p)).Fs = r - (*TDateTime)(unsafe.Pointer(p)).FrawS = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 0, 0x1) if r >= float64(0) && r < float64(5.3734845e+06) { (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r*libc.Float64FromFloat64(8.64e+07) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) @@ -16101,7 +16149,7 @@ func _parseDateOrTime(tls *libc.TLS, context uintptr, zDate uintptr, p uintptr) return 0 } else { if (_sqlite3StrICmp(tls, zDate, __ccgo_ts+1192) == 0 || _sqlite3StrICmp(tls, zDate, __ccgo_ts+1199) == 0) && _sqlite3NotPureFunc(tls, context) != 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) return _setDateTimeToCurrent(tls, context, p) } } @@ -16193,7 +16241,7 @@ func _computeHMS(tls *libc.TLS, p uintptr) { day_min = day_ms / int32(60000) (*TDateTime)(unsafe.Pointer(p)).Fm = day_min % int32(60) (*TDateTime)(unsafe.Pointer(p)).Fh = day_min / int32(60) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) } @@ -16215,7 +16263,7 @@ func _computeYMD_HMS(tls *libc.TLS, p uintptr) { func _clearYMD_HMS_TZ(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 } /* @@ -16316,9 +16364,9 @@ func _toLocaltime(tls *libc.TLS, p uintptr, pCtx uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = int8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 - (*TDateTime)(unsafe.Pointer(p)).FisError = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 1, 0x2) return SQLITE_OK } @@ -16366,13 +16414,13 @@ var _aXformType = [6]struct { FnName: uint8(5), FzName: [7]int8{'m', 'o', 'n', 't', 'h'}, FrLimit: float32(176546), - FrXform: float32(2.592e+06), + FrXform: float32(libc.Float64FromFloat64(30) * libc.Float64FromFloat64(86400)), }, 5: { FnName: uint8(4), FzName: [7]int8{'y', 'e', 'a', 'r'}, FrLimit: float32(14713), - FrXform: float32(3.1536e+07), + FrXform: float32(libc.Float64FromFloat64(365) * libc.Float64FromFloat64(86400)), }, } @@ -16386,15 +16434,15 @@ var _aXformType = [6]struct { func _autoAdjustDate(tls *libc.TLS, p uintptr) { var r float64 _ = r - if !((*TDateTime)(unsafe.Pointer(p)).FrawS != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + if !(int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } else { if (*TDateTime)(unsafe.Pointer(p)).Fs >= float64(int64(-libc.Int32FromInt32(21086676))*libc.Int64FromInt32(10000)) && (*TDateTime)(unsafe.Pointer(p)).Fs <= float64(libc.Int64FromInt32(25340230)*libc.Int64FromInt32(10000)+libc.Int64FromInt32(799)) { r = (*TDateTime)(unsafe.Pointer(p)).Fs*float64(1000) + float64(2.1086676e+14) _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } } @@ -16411,14 +16459,20 @@ func _autoAdjustDate(tls *libc.TLS, p uintptr) { // ** NNN.NNNN seconds // ** NNN months // ** NNN years +// ** +/-YYYY-MM-DD HH:MM:SS.SSS +// ** ceiling +// ** floor // ** start of month // ** start of year // ** start of week // ** start of day // ** weekday N // ** unixepoch +// ** auto // ** localtime // ** utc +// ** subsec +// ** subsecond // ** // ** Return 0 on success and 1 if there is any kind of error. If the error // ** is in a system call (i.e. localtime()), then an error message is written @@ -16429,12 +16483,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, bp := tls.Alloc(160) defer tls.Free(160) var Z, day Tsqlite3_int64 - var cnt, i, rc, x, y, v12, v2, v5, v7, v9 int32 - var iErr, iGuess, iOrigJD, v1 Ti64 - var rRounder, v10 float64 + var cnt, i, rc, x, y, v1, v10, v13, v3, v6, v8 int32 + var iErr, iGuess, iOrigJD, v2 Ti64 + var rRounder, v11 float64 var z0 int8 var z2 uintptr - var v3, v6 bool + var v4, v7 bool var _ /* D at bp+64 */ int32 var _ /* M at bp+60 */ int32 var _ /* Y at bp+56 */ int32 @@ -16443,7 +16497,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, var _ /* new at bp+8 */ TDateTime var _ /* r at bp+0 */ float64 var _ /* tx at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v12, v2, v3, v5, v6, v7, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v11, v13, v2, v3, v4, v6, v7, v8 rc = int32(1) switch int32(_sqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z)))]) { case int32('a'): @@ -16460,6 +16514,33 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _autoAdjustDate(tls, p) rc = 0 } + case int32('c'): + /* + ** ceiling + ** + ** Resolve day-of-month overflow by rolling forward into the next + ** month. As this is the default action, this modifier is really + ** a no-op that is only included for symmetry. See "floor". + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1237) == 0 { + _computeJD(tls, p) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } + case int32('f'): + /* + ** floor + ** + ** Resolve day-of-month overflow by rolling back to the end of the + ** previous month. + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1245) == 0 { + _computeJD(tls, p) + *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64(int32((*TDateTime)(unsafe.Pointer(p)).FnFloor) * int32(86400000)) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + } case int32('j'): /* ** julianday @@ -16469,13 +16550,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** value in the allowed range of julian day numbers understood by ** SQLite (0..5373484.5) then the result will be NULL. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1237) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1251) == 0 { if idx > int32(1) { return int32(1) } /* IMP: R-31176-64601 */ - if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { rc = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } case int32('l'): @@ -16484,8 +16565,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Assuming the current time value is UTC (a.k.a. GMT), shift it to ** show local time. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1247) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - rc = _toLocaltime(tls, p, pCtx) + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1261) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x10>>4)) != 0 { + v1 = SQLITE_OK + } else { + v1 = _toLocaltime(tls, p, pCtx) + } + rc = v1 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 4, 0x10) } case int32('u'): /* @@ -16494,7 +16582,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Treat the current value of p->s as the number of ** seconds since 1970. Convert to a real julian day number. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1257) == 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1271) == 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { if idx > int32(1) { return int32(1) } /* IMP: R-49255-55373 */ @@ -16503,17 +16591,17 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(*(*float64)(unsafe.Pointer(bp)) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) rc = 0 } } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1267) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - if int32((*TDateTime)(unsafe.Pointer(p)).FtzSet) == 0 { /* Guess at the corresponding utc time */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1281) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x8>>3)) == 0 { /* Guess at the corresponding utc time */ cnt = 0 /* Guess is off by this much */ _computeJD(tls, p) - v1 = (*TDateTime)(unsafe.Pointer(p)).FiJD - iOrigJD = v1 - iGuess = v1 + v2 = (*TDateTime)(unsafe.Pointer(p)).FiJD + iOrigJD = v2 + iGuess = v2 iErr = 0 for { libc.X__builtin___memset_chk(tls, bp+8, 0, uint64(48), libc.X__builtin_object_size(tls, bp+8, 0)) @@ -16526,21 +16614,22 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, bp+8) iErr = (*(*TDateTime)(unsafe.Pointer(bp + 8))).FiJD - iOrigJD - goto _4 - _4: + goto _5 + _5: ; - if v3 = iErr != 0; v3 { - v2 = cnt + if v4 = iErr != 0; v4 { + v3 = cnt cnt++ } - if !(v3 && v2 < int32(3)) { + if !(v4 && v3 < int32(3)) { break } } libc.X__builtin___memset_chk(tls, p, 0, uint64(48), libc.X__builtin_object_size(tls, p, 0)) (*TDateTime)(unsafe.Pointer(p)).FiJD = iGuess (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FtzSet = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) } rc = SQLITE_OK } @@ -16553,13 +16642,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** weekday N where 0==Sunday, 1==Monday, and so forth. If the ** date is already on the appropriate weekday, this is a no-op. */ - if v6 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1271, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v6 { - v5 = int32(*(*float64)(unsafe.Pointer(bp))) - n = v5 + if v7 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1285, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v7 { + v6 = int32(*(*float64)(unsafe.Pointer(bp))) + n = v6 } - if v6 && float64(v5) == *(*float64)(unsafe.Pointer(bp)) { + if v7 && float64(v6) == *(*float64)(unsafe.Pointer(bp)) { _computeYMD_HMS(tls, p) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 _computeJD(tls, p) Z = ((*TDateTime)(unsafe.Pointer(p)).FiJD + int64(129600000)) / int64(86400000) % int64(7) @@ -16583,9 +16672,9 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Show subsecond precision in the output of datetime() and ** unixepoch() and strftime('%s'). */ - if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1280, int32(9)) != 0 { + if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1294, int32(9)) != 0 { if Xsqlite3_stricmp(tls, z, __ccgo_ts+1192) == 0 || Xsqlite3_stricmp(tls, z, __ccgo_ts+1199) == 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) rc = 0 } break @@ -16596,23 +16685,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z += uintptr(9) _computeYMD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) - v7 = libc.Int32FromInt32(0) - (*TDateTime)(unsafe.Pointer(p)).Fm = v7 - (*TDateTime)(unsafe.Pointer(p)).Fh = v7 + v8 = libc.Int32FromInt32(0) + (*TDateTime)(unsafe.Pointer(p)).Fm = v8 + (*TDateTime)(unsafe.Pointer(p)).Fh = v8 (*TDateTime)(unsafe.Pointer(p)).Fs = float64(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1290) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1304) == 0 { (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1296) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1310) == 0 { (*TDateTime)(unsafe.Pointer(p)).FM = int32(1) (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1301) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1315) == 0 { rc = 0 } } @@ -16654,15 +16743,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } if int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) == int32('-') { - if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1305, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1319, libc.VaList(bp+136, bp+56)) == int32(1) { break } - if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1309, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1323, libc.VaList(bp+136, bp+56)) == int32(1) { break } } - goto _8 - _8: + goto _9 + _9: ; n++ } @@ -16678,11 +16767,11 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } /* Must start with +/- */ if n == int32(5) { - if _getDigits(tls, z+1, __ccgo_ts+1313, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1327, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } } else { - if _getDigits(tls, z+1, __ccgo_ts+1325, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1339, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } z++ @@ -16704,13 +16793,14 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, *(*int32)(unsafe.Pointer(p + 12)) += *(*int32)(unsafe.Pointer(bp + 60)) } if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v9 + x = v10 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) _computeJD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 @@ -16754,7 +16844,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z++ } n = _sqlite3Strlen30(tls, z) - if n > int32(10) || n < int32(3) { + if n < int32(3) || n > int32(10) { break } if int32(_sqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z + uintptr(n-int32(1)))))]) == int32('s') { @@ -16762,11 +16852,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, p) if *(*float64)(unsafe.Pointer(bp)) < libc.Float64FromInt32(0) { - v10 = -libc.Float64FromFloat64(0.5) + v11 = -libc.Float64FromFloat64(0.5) } else { - v10 = +libc.Float64FromFloat64(0.5) + v11 = +libc.Float64FromFloat64(0.5) } - rRounder = v10 + rRounder = v11 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 i = 0 for { if !(i < int32(libc.Uint64FromInt64(96)/libc.Uint64FromInt64(16))) { @@ -16778,19 +16869,21 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 12)) += int32(*(*float64)(unsafe.Pointer(bp))) if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v12 + x = v13 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) case int32(5): /* Special processing to add years */ y = int32(*(*float64)(unsafe.Pointer(bp))) _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 8)) += y + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) break @@ -16800,8 +16893,8 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, rc = 0 break } - goto _11 - _11: + goto _12 + _12: ; i++ } @@ -16860,7 +16953,7 @@ func _isDate(tls *libc.TLS, context uintptr, argc int32, argv uintptr, p uintptr i++ } _computeJD(tls, p) - if (*TDateTime)(unsafe.Pointer(p)).FisError != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x2>>1)) != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { return int32(1) } if argc == int32(1) && (*TDateTime)(unsafe.Pointer(p)).FvalidYMD != 0 && (*TDateTime)(unsafe.Pointer(p)).FD > int32(28) { @@ -16907,7 +17000,7 @@ func _unixepochFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _ /* x at bp+0 */ TDateTime if _isDate(tls, context, argc, argv, bp) == 0 { _computeJD(tls, bp) - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { Xsqlite3_result_double(tls, context, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000)) } else { Xsqlite3_result_int64(tls, context, (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/int64(1000)-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000)) @@ -16952,7 +17045,7 @@ func _datetimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(15)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(16)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(17)] = int8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(18)] = int8(int32('0') + s/int32(10000)%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(19)] = int8(int32('0') + s/int32(1000)%int32(10)) @@ -17000,7 +17093,7 @@ func _timeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(3)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(4)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(5)] = int8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(6)] = int8(int32('0') + s/int32(10000)%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(7)] = int8(int32('0') + s/int32(1000)%int32(10)) @@ -17061,6 +17154,57 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } +// C documentation +// +// /* +// ** Compute the number of days after the most recent January 1. +// ** +// ** In other words, compute the zero-based day number for the +// ** current year: +// ** +// ** Jan01 = 0, Jan02 = 1, ..., Jan31 = 30, Feb01 = 31, ... +// ** Dec31 = 364 or 365. +// */ +func _daysAfterJan01(tls *libc.TLS, pDate uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* jan01 at bp+0 */ TDateTime + *(*TDateTime)(unsafe.Pointer(bp)) = *(*TDateTime)(unsafe.Pointer(pDate)) + (*(*TDateTime)(unsafe.Pointer(bp))).FvalidJD = 0 + (*(*TDateTime)(unsafe.Pointer(bp))).FM = int32(1) + (*(*TDateTime)(unsafe.Pointer(bp))).FD = int32(1) + _computeJD(tls, bp) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD - (*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Monday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Monday, 1=Tuesday, 2=Wednesday, ..., 6=Sunday. +// */ +func _daysAfterMonday(tls *libc.TLS, pDate uintptr) (r int32) { + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(43200000))/libc.Int64FromInt32(86400000)) % int32(7) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Sunday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Sunday, 1=Monday, 2=Tues, ..., 6=Saturday +// */ +func _daysAfterSunday(tls *libc.TLS, pDate uintptr) (r int32) { + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)) % int32(7) +} + // C documentation // // /* @@ -17068,33 +17212,48 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { // ** // ** Return a string described by FORMAT. Conversions as follows: // ** -// ** %d day of month +// ** %d day of month 01-31 +// ** %e day of month 1-31 // ** %f ** fractional seconds SS.SSS +// ** %F ISO date. YYYY-MM-DD +// ** %G ISO year corresponding to %V 0000-9999. +// ** %g 2-digit ISO year corresponding to %V 00-99 // ** %H hour 00-24 -// ** %j day of year 000-366 +// ** %k hour 0-24 (leading zero converted to space) +// ** %I hour 01-12 +// ** %j day of year 001-366 // ** %J ** julian day number +// ** %l hour 1-12 (leading zero converted to space) // ** %m month 01-12 // ** %M minute 00-59 +// ** %p "am" or "pm" +// ** %P "AM" or "PM" +// ** %R time as HH:MM // ** %s seconds since 1970-01-01 // ** %S seconds 00-59 -// ** %w day of week 0-6 Sunday==0 -// ** %W week of year 00-53 +// ** %T time as HH:MM:SS +// ** %u day of week 1-7 Monday==1, Sunday==7 +// ** %w day of week 0-6 Sunday==0, Monday==1 +// ** %U week of year 00-53 (First Sunday is start of week 01) +// ** %V week of year 01-53 (First week containing Thursday is week 01) +// ** %W week of year 00-53 (First Monday is start of week 01) // ** %Y year 0000-9999 // ** %% % // */ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { - bp := tls.Alloc(160) - defer tls.Free(160) + bp := tls.Alloc(208) + defer tls.Free(208) var c, cf int8 var db, zFmt, v3, v4, v5, v6, v7 uintptr - var h, nDay, wd int32 + var h int32 var i, j, v2 Tsize_t var iS Ti64 var s float64 var _ /* sRes at bp+48 */ Tsqlite3_str var _ /* x at bp+0 */ TDateTime + var _ /* y at bp+128 */ TDateTime var _ /* y at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, nDay, s, wd, zFmt, v2, v3, v4, v5, v6, v7 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, s, zFmt, v2, v3, v4, v5, v6, v7 if argc == 0 { return } @@ -17127,28 +17286,41 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { fallthrough case int32('e'): if int32(cf) == int32('d') { - v3 = __ccgo_ts + 1337 + v3 = __ccgo_ts + 1351 } else { - v3 = __ccgo_ts + 1342 + v3 = __ccgo_ts + 1356 } - Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) - case int32('f'): + Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('f'): /* Fractional seconds. (Non-standard) */ s = (*(*TDateTime)(unsafe.Pointer(bp))).Fs if s > float64(59.999) { s = float64(59.999) } - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1346, libc.VaList(bp+136, s)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1360, libc.VaList(bp+184, s)) case int32('F'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1353, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1367, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('G'): /* Fall thru */ + fallthrough + case int32('g'): + *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Move y so that it is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidYMD = 0 + _computeYMD(tls, bp+80) + if int32(cf) == int32('g') { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY%int32(100))) + } else { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1382, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY)) + } case int32('H'): fallthrough case int32('k'): if int32(cf) == int32('H') { - v4 = __ccgo_ts + 1337 + v4 = __ccgo_ts + 1351 } else { - v4 = __ccgo_ts + 1342 + v4 = __ccgo_ts + 1356 } - Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) + Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) case int32('I'): /* Fall thru */ fallthrough case int32('l'): @@ -17160,73 +17332,71 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { h = int32(12) } if int32(cf) == int32('I') { - v5 = __ccgo_ts + 1337 - } else { - v5 = __ccgo_ts + 1342 - } - Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+136, h)) - case int32('W'): /* Fall thru */ - fallthrough - case int32('j'): /* Number of days since 1st day of year */ - *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidJD = 0 - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FM = int32(1) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FD = int32(1) - _computeJD(tls, bp+80) - nDay = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) - if int32(cf) == int32('W') { /* 0=Monday, 1=Tuesday, ... 6=Sunday */ - wd = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000) % libc.Int64FromInt32(7)) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1337, libc.VaList(bp+136, (nDay+int32(7)-wd)/int32(7))) + v5 = __ccgo_ts + 1351 } else { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1368, libc.VaList(bp+136, nDay+int32(1))) + v5 = __ccgo_ts + 1356 } - case int32('J'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1373, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) + Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+184, h)) + case int32('j'): /* Day of year. Jan01==1, Jan02==2, and so forth */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1387, libc.VaList(bp+184, _daysAfterJan01(tls, bp)+int32(1))) + case int32('J'): /* Julian day number. (Non-standard) */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1392, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) case int32('m'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1337, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) case int32('M'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1337, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('p'): /* Fall thru */ fallthrough case int32('P'): if (*(*TDateTime)(unsafe.Pointer(bp))).Fh >= int32(12) { if int32(cf) == int32('p') { - v6 = __ccgo_ts + 1379 + v6 = __ccgo_ts + 1398 } else { - v6 = __ccgo_ts + 1382 + v6 = __ccgo_ts + 1401 } Xsqlite3_str_append(tls, bp+48, v6, int32(2)) } else { if int32(cf) == int32('p') { - v7 = __ccgo_ts + 1385 + v7 = __ccgo_ts + 1404 } else { - v7 = __ccgo_ts + 1388 + v7 = __ccgo_ts + 1407 } Xsqlite3_str_append(tls, bp+48, v7, int32(2)) } case int32('R'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1391, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1410, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('s'): - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1401, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1420, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) } else { iS = (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/libc.Int64FromInt32(1000) - libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1406, libc.VaList(bp+136, iS)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1425, libc.VaList(bp+184, iS)) } case int32('S'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1337, libc.VaList(bp+136, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) case int32('T'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1411, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) - case int32('u'): /* Fall thru */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1430, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + case int32('u'): /* Day of week. 1 to 7. Monday==1, Sunday==7 */ fallthrough - case int32('w'): - c = int8(int32(int8(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)%libc.Int64FromInt32(7))) + int32('0')) + case int32('w'): /* Day of week. 0 to 6. Sunday==0, Monday==1 */ + c = int8(int32(int8(_daysAfterSunday(tls, bp))) + int32('0')) if int32(c) == int32('0') && int32(cf) == int32('u') { c = int8('7') } Xsqlite3_str_appendchar(tls, bp+48, int32(1), c) + case int32('U'): /* Week num. 00-53. First Sun of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterSunday(tls, bp)+int32(7))/int32(7))) + case int32('V'): /* Week num. 01-53. First week with a Thur is week 01 */ + *(*TDateTime)(unsafe.Pointer(bp + 128)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Adjust y so that is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FvalidYMD = 0 + _computeYMD(tls, bp+128) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, _daysAfterJan01(tls, bp+128)/int32(7)+int32(1))) + case int32('W'): /* Week num. 00-53. First Mon of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterMonday(tls, bp)+int32(7))/int32(7))) case int32('Y'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1426, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1382, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) case int32('%'): Xsqlite3_str_appendchar(tls, bp+48, int32(1), int8('%')) default: @@ -17379,12 +17549,10 @@ func _timediffFunc(tls *libc.TLS, context uintptr, NotUsed1 int32, argv uintptr) p2 = bp *(*Tsqlite3_int64)(unsafe.Pointer(p2)) = Tsqlite3_int64(uint64(*(*Tsqlite3_int64)(unsafe.Pointer(p2))) + libc.Uint64FromInt32(1486995408)*libc.Uint64FromInt32(100000)) } - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidYMD = 0 - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidHMS = 0 - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidTZ = 0 + _clearYMD_HMS_TZ(tls, bp) _computeYMD_HMS(tls, bp) _sqlite3StrAccumInit(tls, bp+96, uintptr(0), uintptr(0), 0, int32(100)) - Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1431, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) + Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1445, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) _sqlite3ResultStrAccum(tls, context, bp+96) } @@ -17417,55 +17585,55 @@ var _aDateTimeFuncs = [10]TFuncDef{ FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1237, + FzName: __ccgo_ts + 1251, }, 1: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1257, + FzName: __ccgo_ts + 1271, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1465, + FzName: __ccgo_ts + 1479, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1470, + FzName: __ccgo_ts + 1484, }, 4: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1475, + FzName: __ccgo_ts + 1489, }, 5: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1484, + FzName: __ccgo_ts + 1498, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1493, + FzName: __ccgo_ts + 1507, }, 7: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1502, + FzName: __ccgo_ts + 1516, }, 8: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1515, + FzName: __ccgo_ts + 1529, }, 9: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1533, + FzName: __ccgo_ts + 1547, }, } @@ -18136,7 +18304,7 @@ func _sqlite3MemMalloc(tls *libc.TLS, nByte int32) (r uintptr) { *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1546, libc.VaList(bp+8, nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1560, libc.VaList(bp+8, nByte)) } return p } @@ -18198,7 +18366,7 @@ func _sqlite3MemRealloc(tls *libc.TLS, pPrior uintptr, nByte int32) (r uintptr) *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1584, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1598, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) } return p } @@ -19566,7 +19734,7 @@ func _sqlite3OomFault(tls *libc.TLS, db uintptr) (r uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++ (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = uint16(0) if (*Tsqlite3)(unsafe.Pointer(db)).FpParse != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1634, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) pParse = (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).FpOuterParse for { @@ -19988,7 +20156,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li v3 = int32(*(*int8)(unsafe.Pointer(v4))) c = v3 if v3 == 0 { - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1634, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1648, int32(1)) break } /* Find out what flags are present */ @@ -20403,9 +20571,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial != 0 { if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial) == int32(2) { if flag_zeropad != 0 { - v57 = __ccgo_ts + 1636 + v57 = __ccgo_ts + 1650 } else { - v57 = __ccgo_ts + 1641 + v57 = __ccgo_ts + 1655 } bufpt = v57 length = _sqlite3Strlen30(tls, bufpt) @@ -20416,7 +20584,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP = int32(1000) (*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fn = int32(1) } else { - libc.X__builtin___memcpy_chk(tls, bp, __ccgo_ts+1645, uint64(5), libc.X__builtin_object_size(tls, bp, 0)) + libc.X__builtin___memcpy_chk(tls, bp, __ccgo_ts+1659, uint64(5), libc.X__builtin_object_size(tls, bp, 0)) bufpt = bp if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fsign) == int32('-') { /* no-op */ @@ -20438,14 +20606,12 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li prefix = int8(flag_prefix) } exp = (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP - int32(1) - if int32(xtype) == int32(etGENERIC) && precision > 0 { - precision-- - } /* ** If the field type is etGENERIC, then convert to either etEXP ** or etFLOAT, as appropriate. */ if int32(xtype) == int32(etGENERIC) { + precision-- flag_rtz = libc.BoolUint8(!(flag_alternateform != 0)) if exp < -int32(4) || exp > precision { xtype = uint8(etEXP) @@ -20751,7 +20917,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li bufpt = libc.VaUintptr(&ap) } if bufpt == uintptr(0) { - bufpt = __ccgo_ts + 1650 + bufpt = __ccgo_ts + 1664 } else { if int32(xtype) == int32(etDYNSTRING) { if (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnChar == uint32(0) && (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FmxAlloc != 0 && width == 0 && precision < 0 && int32((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FaccError) == 0 { @@ -20804,6 +20970,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } else { length = int32(0x7fffffff) & int32(libc.Xstrlen(tls, bufpt)) } + goto adjust_width_for_utf8 adjust_width_for_utf8: ; if flag_altform2 != 0 && width > 0 { @@ -20838,9 +21005,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li isnull = libc.BoolInt32(escarg == uintptr(0)) if isnull != 0 { if int32(xtype) == int32(etSQLESCAPE2) { - v98 = __ccgo_ts + 1651 + v98 = __ccgo_ts + 1665 } else { - v98 = __ccgo_ts + 1656 + v98 = __ccgo_ts + 1670 } escarg = v98 } @@ -20958,7 +21125,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*TSrcItem)(unsafe.Pointer(pItem)).FzName != 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1663, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1677, int32(1)) } Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzName) } else { @@ -20966,10 +21133,15 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzAlias) } else { pSel = (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect + /* Because of tag-20240424-1 */ if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_NestedFrom) != 0 { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1665, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1679, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) } else { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1675, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_MultiValue) != 0 { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1689, libc.VaList(bp+128, *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pItem)).Fu1)))) + } else { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1710, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + } } } } @@ -21248,7 +21420,7 @@ func _sqlite3ResultStrAccum(tls *libc.TLS, pCtx uintptr, p uintptr) { if int32((*TStrAccum)(unsafe.Pointer(p)).FprintfFlags)&int32(SQLITE_PRINTF_MALLOCED) != 0 { Xsqlite3_result_text(tls, pCtx, (*TStrAccum)(unsafe.Pointer(p)).FzText, int32((*TStrAccum)(unsafe.Pointer(p)).FnChar), __ccgo_fp(_sqlite3OomClear)) } else { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1650, 0, libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1664, 0, libc.UintptrFromInt32(0)) Xsqlite3_str_reset(tls, p) } } @@ -22543,6 +22715,7 @@ func _sqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc Tu8) (r in (*TMem)(unsafe.Pointer(pMem)).Fz = zOut (*TMem)(unsafe.Pointer(pMem)).FzMalloc = (*TMem)(unsafe.Pointer(pMem)).Fz (*TMem)(unsafe.Pointer(pMem)).FszMalloc = _sqlite3DbMallocSize(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).Fz) + goto translate_out translate_out: ; return SQLITE_OK @@ -23079,6 +23252,60 @@ func _sqlite3DequoteExpr(tls *libc.TLS, p uintptr) { _sqlite3Dequote(tls, *(*uintptr)(unsafe.Pointer(p + 8))) } +// C documentation +// +// /* +// ** Expression p is a QNUMBER (quoted number). Dequote the value in p->u.zToken +// ** and set the type to INTEGER or FLOAT. "Quoted" integers or floats are those +// ** that contain '_' characters that must be removed before further processing. +// */ +func _sqlite3DequoteNumber(tls *libc.TLS, pParse uintptr, p uintptr) { + bp := tls.Alloc(32) + defer tls.Free(32) + var bHex int32 + var pIn, pOut, v1, v3 uintptr + var _ /* iValue at bp+0 */ int32 + _, _, _, _, _ = bHex, pIn, pOut, v1, v3 + if p != 0 { + pIn = *(*uintptr)(unsafe.Pointer(p + 8)) + pOut = *(*uintptr)(unsafe.Pointer(p + 8)) + bHex = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(pIn))) == int32('0') && (int32(*(*int8)(unsafe.Pointer(pIn + 1))) == int32('x') || int32(*(*int8)(unsafe.Pointer(pIn + 1))) == int32('X'))) + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + for { + if int32(*(*int8)(unsafe.Pointer(pIn))) != int32('_') { + v3 = pOut + pOut++ + *(*int8)(unsafe.Pointer(v3)) = *(*int8)(unsafe.Pointer(pIn)) + if int32(*(*int8)(unsafe.Pointer(pIn))) == int32('e') || int32(*(*int8)(unsafe.Pointer(pIn))) == int32('E') || int32(*(*int8)(unsafe.Pointer(pIn))) == int32('.') { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_FLOAT) + } + } else { + if bHex == 0 && (!(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1)))))])&libc.Int32FromInt32(0x04) != 0) || !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + 1)))])&libc.Int32FromInt32(0x04) != 0)) || bHex == int32(1) && (!(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1)))))])&libc.Int32FromInt32(0x08) != 0) || !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + 1)))])&libc.Int32FromInt32(0x08) != 0)) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1724, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(p + 8)))) + } + } + goto _2 + _2: + ; + v1 = pIn + pIn++ + if !(*(*int8)(unsafe.Pointer(v1)) != 0) { + break + } + } + if bHex != 0 { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + } + /* tag-20240227-a: If after dequoting, the number is an integer that + ** fits in 32 bits, then it must be converted into EP_IntValue. Other + ** parts of the code expect this. See also tag-20240227-b. */ + if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_INTEGER) && _sqlite3GetInt32(tls, *(*uintptr)(unsafe.Pointer(p + 8)), bp) != 0 { + *(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(p)).Fu)) = *(*int32)(unsafe.Pointer(bp)) + *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(EP_IntValue) + } + } +} + // C documentation // // /* @@ -23438,6 +23665,7 @@ func _sqlite3AtoF(tls *libc.TLS, z uintptr, pResult uintptr, length int32, enc T for z < zEnd && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z)))])&int32(0x01) != 0 { z += uintptr(incr) } + goto do_atof_calc do_atof_calc: ; /* Zero is a special case */ @@ -23543,6 +23771,7 @@ do_atof_calc: if sign < 0 { *(*float64)(unsafe.Pointer(pResult)) = -*(*float64)(unsafe.Pointer(pResult)) } + goto atof_return atof_return: ; /* return true if number and no extra non-whitespace characters after */ @@ -23627,7 +23856,7 @@ func _compare2pow63(tls *libc.TLS, zNum uintptr, incr int32) (r int32) { _, _, _ = c, i, pow63 c = 0 /* 012345678901234567 */ - pow63 = __ccgo_ts + 1689 + pow63 = __ccgo_ts + 1749 i = 0 for { if !(c == 0 && i < int32(18)) { @@ -23854,7 +24083,7 @@ func _sqlite3DecOrHexToI64(tls *libc.TLS, z uintptr, pOut uintptr) (r int32) { } return 0 } else { - n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1708)) + n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1768)) if *(*int8)(unsafe.Pointer(z + uintptr(n))) != 0 { n++ } @@ -24012,7 +24241,7 @@ func _sqlite3FpDecode(tls *libc.TLS, p uintptr, _r float64, iRound int32, mxRoun (*TFpDecode)(unsafe.Pointer(p)).Fsign = int8('+') (*TFpDecode)(unsafe.Pointer(p)).Fn = int32(1) (*TFpDecode)(unsafe.Pointer(p)).FiDP = int32(1) - (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1724 + (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1784 return } else { (*TFpDecode)(unsafe.Pointer(p)).Fsign = int8('+') @@ -24556,7 +24785,7 @@ func _sqlite3HexToBlob(tls *libc.TLS, db uintptr, z uintptr, n int32) (r uintptr func _logBadConnection(tls *libc.TLS, zType uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1726, libc.VaList(bp+8, zType)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1786, libc.VaList(bp+8, zType)) } // C documentation @@ -24579,13 +24808,13 @@ func _sqlite3SafetyCheckOk(tls *libc.TLS, db uintptr) (r int32) { var eOpenState Tu8 _ = eOpenState if db == uintptr(0) { - _logBadConnection(tls, __ccgo_ts+1651) + _logBadConnection(tls, __ccgo_ts+1665) return 0 } eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_OPEN) { if _sqlite3SafetyCheckSickOrOk(tls, db) != 0 { - _logBadConnection(tls, __ccgo_ts+1771) + _logBadConnection(tls, __ccgo_ts+1831) } return 0 } else { @@ -24599,7 +24828,7 @@ func _sqlite3SafetyCheckSickOrOk(tls *libc.TLS, db uintptr) (r int32) { _ = eOpenState eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_SICK) && int32(eOpenState) != int32(SQLITE_STATE_OPEN) && int32(eOpenState) != int32(SQLITE_STATE_BUSY) { - _logBadConnection(tls, __ccgo_ts+1780) + _logBadConnection(tls, __ccgo_ts+1840) return 0 } else { return int32(1) @@ -25303,196 +25532,196 @@ func _sqlite3OpcodeName(tls *libc.TLS, i int32) (r uintptr) { } var _azName = [190]uintptr{ - 0: __ccgo_ts + 1788, - 1: __ccgo_ts + 1798, - 2: __ccgo_ts + 1809, - 3: __ccgo_ts + 1821, - 4: __ccgo_ts + 1832, - 5: __ccgo_ts + 1844, - 6: __ccgo_ts + 1851, - 7: __ccgo_ts + 1859, - 8: __ccgo_ts + 1867, - 9: __ccgo_ts + 1872, - 10: __ccgo_ts + 1877, - 11: __ccgo_ts + 1883, - 12: __ccgo_ts + 1897, - 13: __ccgo_ts + 1903, - 14: __ccgo_ts + 1913, - 15: __ccgo_ts + 1918, - 16: __ccgo_ts + 1923, - 17: __ccgo_ts + 1926, - 18: __ccgo_ts + 1932, - 19: __ccgo_ts + 1939, - 20: __ccgo_ts + 1943, - 21: __ccgo_ts + 1953, - 22: __ccgo_ts + 1960, - 23: __ccgo_ts + 1967, - 24: __ccgo_ts + 1974, - 25: __ccgo_ts + 1981, - 26: __ccgo_ts + 1991, - 27: __ccgo_ts + 2000, - 28: __ccgo_ts + 2011, - 29: __ccgo_ts + 2020, - 30: __ccgo_ts + 2026, - 31: __ccgo_ts + 2036, - 32: __ccgo_ts + 2046, - 33: __ccgo_ts + 2051, - 34: __ccgo_ts + 2061, - 35: __ccgo_ts + 2072, - 36: __ccgo_ts + 2077, - 37: __ccgo_ts + 2084, - 38: __ccgo_ts + 2095, - 39: __ccgo_ts + 2100, - 40: __ccgo_ts + 2105, - 41: __ccgo_ts + 2111, - 42: __ccgo_ts + 2117, - 43: __ccgo_ts + 2123, - 44: __ccgo_ts + 2126, - 45: __ccgo_ts + 2130, - 46: __ccgo_ts + 2136, - 47: __ccgo_ts + 2147, - 48: __ccgo_ts + 2158, - 49: __ccgo_ts + 2166, - 50: __ccgo_ts + 2175, - 51: __ccgo_ts + 2182, - 52: __ccgo_ts + 2190, - 53: __ccgo_ts + 2193, - 54: __ccgo_ts + 2196, - 55: __ccgo_ts + 2199, - 56: __ccgo_ts + 2202, - 57: __ccgo_ts + 2205, - 58: __ccgo_ts + 2208, - 59: __ccgo_ts + 2215, - 60: __ccgo_ts + 2221, - 61: __ccgo_ts + 2231, - 62: __ccgo_ts + 2244, - 63: __ccgo_ts + 2255, - 64: __ccgo_ts + 2261, - 65: __ccgo_ts + 2268, - 66: __ccgo_ts + 2277, - 67: __ccgo_ts + 2286, - 68: __ccgo_ts + 2293, - 69: __ccgo_ts + 2306, - 70: __ccgo_ts + 2317, - 71: __ccgo_ts + 2322, - 72: __ccgo_ts + 2330, - 73: __ccgo_ts + 2336, - 74: __ccgo_ts + 2343, - 75: __ccgo_ts + 2355, - 76: __ccgo_ts + 2360, - 77: __ccgo_ts + 2369, - 78: __ccgo_ts + 2374, - 79: __ccgo_ts + 2383, - 80: __ccgo_ts + 2388, - 81: __ccgo_ts + 2393, - 82: __ccgo_ts + 2399, - 83: __ccgo_ts + 2407, - 84: __ccgo_ts + 2415, - 85: __ccgo_ts + 2425, - 86: __ccgo_ts + 2433, - 87: __ccgo_ts + 2440, - 88: __ccgo_ts + 2453, - 89: __ccgo_ts + 2458, - 90: __ccgo_ts + 2470, - 91: __ccgo_ts + 2478, - 92: __ccgo_ts + 2485, - 93: __ccgo_ts + 2496, - 94: __ccgo_ts + 2503, - 95: __ccgo_ts + 2510, - 96: __ccgo_ts + 2520, - 97: __ccgo_ts + 2529, - 98: __ccgo_ts + 2540, - 99: __ccgo_ts + 2546, - 100: __ccgo_ts + 2557, - 101: __ccgo_ts + 2567, - 102: __ccgo_ts + 2577, - 103: __ccgo_ts + 2584, - 104: __ccgo_ts + 2590, - 105: __ccgo_ts + 2600, - 106: __ccgo_ts + 2611, - 107: __ccgo_ts + 2615, - 108: __ccgo_ts + 2624, - 109: __ccgo_ts + 2633, - 110: __ccgo_ts + 2640, - 111: __ccgo_ts + 2650, - 112: __ccgo_ts + 2657, - 113: __ccgo_ts + 2666, - 114: __ccgo_ts + 2676, - 115: __ccgo_ts + 2683, - 116: __ccgo_ts + 2691, - 117: __ccgo_ts + 2705, - 118: __ccgo_ts + 2713, - 119: __ccgo_ts + 2727, - 120: __ccgo_ts + 2738, - 121: __ccgo_ts + 2751, - 122: __ccgo_ts + 2762, - 123: __ccgo_ts + 2768, - 124: __ccgo_ts + 2780, - 125: __ccgo_ts + 2789, - 126: __ccgo_ts + 2797, - 127: __ccgo_ts + 2806, - 128: __ccgo_ts + 2815, - 129: __ccgo_ts + 2822, - 130: __ccgo_ts + 2830, - 131: __ccgo_ts + 2837, - 132: __ccgo_ts + 2848, - 133: __ccgo_ts + 2862, - 134: __ccgo_ts + 2873, - 135: __ccgo_ts + 2881, - 136: __ccgo_ts + 2887, - 137: __ccgo_ts + 2895, - 138: __ccgo_ts + 2903, - 139: __ccgo_ts + 2913, - 140: __ccgo_ts + 2926, - 141: __ccgo_ts + 2936, - 142: __ccgo_ts + 2949, - 143: __ccgo_ts + 2958, - 144: __ccgo_ts + 2969, - 145: __ccgo_ts + 2977, - 146: __ccgo_ts + 2983, - 147: __ccgo_ts + 2995, - 148: __ccgo_ts + 3007, - 149: __ccgo_ts + 3015, - 150: __ccgo_ts + 3027, - 151: __ccgo_ts + 3040, - 152: __ccgo_ts + 3050, - 153: __ccgo_ts + 3060, - 154: __ccgo_ts + 3065, - 155: __ccgo_ts + 3077, - 156: __ccgo_ts + 3089, - 157: __ccgo_ts + 3099, - 158: __ccgo_ts + 3105, - 159: __ccgo_ts + 3115, - 160: __ccgo_ts + 3122, - 161: __ccgo_ts + 3134, - 162: __ccgo_ts + 3145, - 163: __ccgo_ts + 3153, - 164: __ccgo_ts + 3162, - 165: __ccgo_ts + 3171, - 166: __ccgo_ts + 3180, - 167: __ccgo_ts + 3187, - 168: __ccgo_ts + 3198, - 169: __ccgo_ts + 3211, - 170: __ccgo_ts + 3221, - 171: __ccgo_ts + 3228, - 172: __ccgo_ts + 3236, - 173: __ccgo_ts + 3245, - 174: __ccgo_ts + 3251, - 175: __ccgo_ts + 3258, - 176: __ccgo_ts + 3266, - 177: __ccgo_ts + 3274, - 178: __ccgo_ts + 3282, - 179: __ccgo_ts + 3292, - 180: __ccgo_ts + 3301, - 181: __ccgo_ts + 3312, - 182: __ccgo_ts + 3323, - 183: __ccgo_ts + 3334, - 184: __ccgo_ts + 3344, - 185: __ccgo_ts + 3350, - 186: __ccgo_ts + 3361, - 187: __ccgo_ts + 3372, - 188: __ccgo_ts + 3377, - 189: __ccgo_ts + 3385, + 0: __ccgo_ts + 1848, + 1: __ccgo_ts + 1858, + 2: __ccgo_ts + 1869, + 3: __ccgo_ts + 1881, + 4: __ccgo_ts + 1892, + 5: __ccgo_ts + 1904, + 6: __ccgo_ts + 1911, + 7: __ccgo_ts + 1919, + 8: __ccgo_ts + 1927, + 9: __ccgo_ts + 1932, + 10: __ccgo_ts + 1937, + 11: __ccgo_ts + 1943, + 12: __ccgo_ts + 1957, + 13: __ccgo_ts + 1963, + 14: __ccgo_ts + 1973, + 15: __ccgo_ts + 1978, + 16: __ccgo_ts + 1983, + 17: __ccgo_ts + 1986, + 18: __ccgo_ts + 1992, + 19: __ccgo_ts + 1999, + 20: __ccgo_ts + 2003, + 21: __ccgo_ts + 2013, + 22: __ccgo_ts + 2020, + 23: __ccgo_ts + 2027, + 24: __ccgo_ts + 2034, + 25: __ccgo_ts + 2041, + 26: __ccgo_ts + 2051, + 27: __ccgo_ts + 2060, + 28: __ccgo_ts + 2071, + 29: __ccgo_ts + 2080, + 30: __ccgo_ts + 2086, + 31: __ccgo_ts + 2096, + 32: __ccgo_ts + 2106, + 33: __ccgo_ts + 2111, + 34: __ccgo_ts + 2125, + 35: __ccgo_ts + 2136, + 36: __ccgo_ts + 2141, + 37: __ccgo_ts + 2148, + 38: __ccgo_ts + 2159, + 39: __ccgo_ts + 2164, + 40: __ccgo_ts + 2169, + 41: __ccgo_ts + 2175, + 42: __ccgo_ts + 2181, + 43: __ccgo_ts + 2187, + 44: __ccgo_ts + 2190, + 45: __ccgo_ts + 2194, + 46: __ccgo_ts + 2200, + 47: __ccgo_ts + 2211, + 48: __ccgo_ts + 2222, + 49: __ccgo_ts + 2230, + 50: __ccgo_ts + 2239, + 51: __ccgo_ts + 2246, + 52: __ccgo_ts + 2254, + 53: __ccgo_ts + 2257, + 54: __ccgo_ts + 2260, + 55: __ccgo_ts + 2263, + 56: __ccgo_ts + 2266, + 57: __ccgo_ts + 2269, + 58: __ccgo_ts + 2272, + 59: __ccgo_ts + 2279, + 60: __ccgo_ts + 2285, + 61: __ccgo_ts + 2295, + 62: __ccgo_ts + 2308, + 63: __ccgo_ts + 2319, + 64: __ccgo_ts + 2325, + 65: __ccgo_ts + 2332, + 66: __ccgo_ts + 2341, + 67: __ccgo_ts + 2350, + 68: __ccgo_ts + 2357, + 69: __ccgo_ts + 2370, + 70: __ccgo_ts + 2381, + 71: __ccgo_ts + 2386, + 72: __ccgo_ts + 2394, + 73: __ccgo_ts + 2400, + 74: __ccgo_ts + 2407, + 75: __ccgo_ts + 2419, + 76: __ccgo_ts + 2424, + 77: __ccgo_ts + 2433, + 78: __ccgo_ts + 2438, + 79: __ccgo_ts + 2447, + 80: __ccgo_ts + 2452, + 81: __ccgo_ts + 2457, + 82: __ccgo_ts + 2463, + 83: __ccgo_ts + 2471, + 84: __ccgo_ts + 2479, + 85: __ccgo_ts + 2489, + 86: __ccgo_ts + 2497, + 87: __ccgo_ts + 2504, + 88: __ccgo_ts + 2517, + 89: __ccgo_ts + 2522, + 90: __ccgo_ts + 2534, + 91: __ccgo_ts + 2542, + 92: __ccgo_ts + 2549, + 93: __ccgo_ts + 2560, + 94: __ccgo_ts + 2567, + 95: __ccgo_ts + 2574, + 96: __ccgo_ts + 2584, + 97: __ccgo_ts + 2593, + 98: __ccgo_ts + 2604, + 99: __ccgo_ts + 2610, + 100: __ccgo_ts + 2621, + 101: __ccgo_ts + 2631, + 102: __ccgo_ts + 2641, + 103: __ccgo_ts + 2648, + 104: __ccgo_ts + 2654, + 105: __ccgo_ts + 2664, + 106: __ccgo_ts + 2675, + 107: __ccgo_ts + 2679, + 108: __ccgo_ts + 2688, + 109: __ccgo_ts + 2697, + 110: __ccgo_ts + 2704, + 111: __ccgo_ts + 2714, + 112: __ccgo_ts + 2721, + 113: __ccgo_ts + 2730, + 114: __ccgo_ts + 2740, + 115: __ccgo_ts + 2747, + 116: __ccgo_ts + 2755, + 117: __ccgo_ts + 2769, + 118: __ccgo_ts + 2777, + 119: __ccgo_ts + 2791, + 120: __ccgo_ts + 2802, + 121: __ccgo_ts + 2815, + 122: __ccgo_ts + 2826, + 123: __ccgo_ts + 2832, + 124: __ccgo_ts + 2844, + 125: __ccgo_ts + 2853, + 126: __ccgo_ts + 2861, + 127: __ccgo_ts + 2870, + 128: __ccgo_ts + 2879, + 129: __ccgo_ts + 2886, + 130: __ccgo_ts + 2894, + 131: __ccgo_ts + 2901, + 132: __ccgo_ts + 2912, + 133: __ccgo_ts + 2926, + 134: __ccgo_ts + 2937, + 135: __ccgo_ts + 2945, + 136: __ccgo_ts + 2951, + 137: __ccgo_ts + 2959, + 138: __ccgo_ts + 2967, + 139: __ccgo_ts + 2977, + 140: __ccgo_ts + 2990, + 141: __ccgo_ts + 3000, + 142: __ccgo_ts + 3013, + 143: __ccgo_ts + 3022, + 144: __ccgo_ts + 3033, + 145: __ccgo_ts + 3041, + 146: __ccgo_ts + 3047, + 147: __ccgo_ts + 3059, + 148: __ccgo_ts + 3071, + 149: __ccgo_ts + 3079, + 150: __ccgo_ts + 3091, + 151: __ccgo_ts + 3104, + 152: __ccgo_ts + 3114, + 153: __ccgo_ts + 3124, + 154: __ccgo_ts + 3129, + 155: __ccgo_ts + 3141, + 156: __ccgo_ts + 3153, + 157: __ccgo_ts + 3163, + 158: __ccgo_ts + 3169, + 159: __ccgo_ts + 3179, + 160: __ccgo_ts + 3186, + 161: __ccgo_ts + 3198, + 162: __ccgo_ts + 3209, + 163: __ccgo_ts + 3217, + 164: __ccgo_ts + 3226, + 165: __ccgo_ts + 3235, + 166: __ccgo_ts + 3244, + 167: __ccgo_ts + 3251, + 168: __ccgo_ts + 3262, + 169: __ccgo_ts + 3275, + 170: __ccgo_ts + 3285, + 171: __ccgo_ts + 3292, + 172: __ccgo_ts + 3300, + 173: __ccgo_ts + 3309, + 174: __ccgo_ts + 3315, + 175: __ccgo_ts + 3322, + 176: __ccgo_ts + 3330, + 177: __ccgo_ts + 3338, + 178: __ccgo_ts + 3346, + 179: __ccgo_ts + 3356, + 180: __ccgo_ts + 3365, + 181: __ccgo_ts + 3376, + 182: __ccgo_ts + 3387, + 183: __ccgo_ts + 3398, + 184: __ccgo_ts + 3408, + 185: __ccgo_ts + 3414, + 186: __ccgo_ts + 3425, + 187: __ccgo_ts + 3436, + 188: __ccgo_ts + 3441, + 189: __ccgo_ts + 3449, } type Tu_char = uint8 @@ -27072,91 +27301,91 @@ type unix_syscall = Tunix_syscall // */ var _aSyscall = [29]Tunix_syscall{ 0: { - FzName: __ccgo_ts + 3395, + FzName: __ccgo_ts + 3459, }, 1: { - FzName: __ccgo_ts + 3400, + FzName: __ccgo_ts + 3464, }, 2: { - FzName: __ccgo_ts + 3406, + FzName: __ccgo_ts + 3470, }, 3: { - FzName: __ccgo_ts + 3413, + FzName: __ccgo_ts + 3477, }, 4: { - FzName: __ccgo_ts + 3420, + FzName: __ccgo_ts + 3484, }, 5: { - FzName: __ccgo_ts + 3425, + FzName: __ccgo_ts + 3489, }, 6: { - FzName: __ccgo_ts + 3431, + FzName: __ccgo_ts + 3495, }, 7: { - FzName: __ccgo_ts + 3441, + FzName: __ccgo_ts + 3505, }, 8: { - FzName: __ccgo_ts + 3447, + FzName: __ccgo_ts + 3511, }, 9: { - FzName: __ccgo_ts + 3452, + FzName: __ccgo_ts + 3516, }, 10: { - FzName: __ccgo_ts + 3458, + FzName: __ccgo_ts + 3522, }, 11: { - FzName: __ccgo_ts + 3466, + FzName: __ccgo_ts + 3530, }, 12: { - FzName: __ccgo_ts + 3472, + FzName: __ccgo_ts + 3536, }, 13: { - FzName: __ccgo_ts + 3479, + FzName: __ccgo_ts + 3543, }, 14: { - FzName: __ccgo_ts + 3488, + FzName: __ccgo_ts + 3552, }, 15: { - FzName: __ccgo_ts + 3495, + FzName: __ccgo_ts + 3559, }, 16: { - FzName: __ccgo_ts + 3505, + FzName: __ccgo_ts + 3569, }, 17: { - FzName: __ccgo_ts + 3512, + FzName: __ccgo_ts + 3576, }, 18: { - FzName: __ccgo_ts + 3526, + FzName: __ccgo_ts + 3590, }, 19: { - FzName: __ccgo_ts + 3532, + FzName: __ccgo_ts + 3596, }, 20: { - FzName: __ccgo_ts + 3538, + FzName: __ccgo_ts + 3602, }, 21: { - FzName: __ccgo_ts + 3545, + FzName: __ccgo_ts + 3609, }, 22: { - FzName: __ccgo_ts + 3553, + FzName: __ccgo_ts + 3617, }, 23: { - FzName: __ccgo_ts + 3558, + FzName: __ccgo_ts + 3622, }, 24: { - FzName: __ccgo_ts + 3565, + FzName: __ccgo_ts + 3629, }, 25: { - FzName: __ccgo_ts + 3572, + FzName: __ccgo_ts + 3636, }, 26: { - FzName: __ccgo_ts + 3584, + FzName: __ccgo_ts + 3648, }, 27: { - FzName: __ccgo_ts + 3593, + FzName: __ccgo_ts + 3657, }, 28: { - FzName: __ccgo_ts + 3599, + FzName: __ccgo_ts + 3663, }, } @@ -27393,9 +27622,9 @@ func _robust_open(tls *libc.TLS, z uintptr, f int32, m Tmode_t) (r int32) { (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(16)].FpCurrent})))(tls, z) } (*(*func(*libc.TLS, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(1)].FpCurrent})))(tls, fd) - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3605, libc.VaList(bp+152, z, fd)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3669, libc.VaList(bp+152, z, fd)) fd = -int32(1) - if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3648, O_RDONLY, int32(m)) < 0 { + if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3712, O_RDONLY, int32(m)) < 0 { break } } @@ -27712,11 +27941,11 @@ func _unixLogErrorAtLine(tls *libc.TLS, errcode int32, zFunc uintptr, zPath uint ** equivalent to errno. Otherwise, use strerror_r(). */ /* This is a threadsafe build, but strerror_r() is not available. */ - zErr = __ccgo_ts + 1650 + zErr = __ccgo_ts + 1664 if zPath == uintptr(0) { - zPath = __ccgo_ts + 1650 + zPath = __ccgo_ts + 1664 } - Xsqlite3_log(tls, errcode, __ccgo_ts+3658, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) + Xsqlite3_log(tls, errcode, __ccgo_ts+3722, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) return errcode } @@ -27744,7 +27973,7 @@ func _robust_close(tls *libc.TLS, pFile uintptr, h int32, lineno int32) { } else { v1 = uintptr(0) } - _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(16)< int32(1) { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3744, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3808, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } if _fileHasMoved(tls, pFile) != 0 { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3771, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3835, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } } @@ -28261,6 +28490,7 @@ func _unixLock(tls *libc.TLS, id uintptr, eFileLock int32) (r int32) { (*TunixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock) (*TunixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(eFileLock) } + goto end_lock end_lock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -28419,6 +28649,7 @@ func _posixUnlock(tls *libc.TLS, id uintptr, eFileLock int32, handleNFSUnlock in _closePendingFds(tls, pFile) } } + goto end_unlock end_unlock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -28459,7 +28690,7 @@ func _closeUnixFile(tls *libc.TLS, id uintptr) (r int32) { pFile = id _unixUnmapfile(tls, pFile) if (*TunixFile)(unsafe.Pointer(pFile)).Fh >= 0 { - _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40172)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40505)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -29231,6 +29462,7 @@ func _afpLock(tls *libc.TLS, id uintptr, eFileLock int32) (r int32) { (*TunixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(PENDING_LOCK) } } + goto afp_end_lock afp_end_lock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -29673,7 +29905,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { var _ /* zDirname at bp+0 */ [513]int8 _, _ = fd, ii fd = -int32(1) - Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3799, libc.VaList(bp+528, zFilename)) + Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3863, libc.VaList(bp+528, zFilename)) ii = int32(libc.Xstrlen(tls, bp)) for { if !(ii > 0 && int32((*(*[513]int8)(unsafe.Pointer(bp)))[ii]) != int32('/')) { @@ -29699,7 +29931,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(41778)), __ccgo_ts+3512, bp, int32(41778)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42111)), __ccgo_ts+3576, bp, int32(42111)) } // C documentation @@ -29736,7 +29968,7 @@ func _unixSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { rc = _full_fsync(tls, (*TunixFile)(unsafe.Pointer(pFile)).Fh, isFullsync, isDataOnly) if rc != 0 { _storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__error(tls)))) - return _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(4)<= nSize { iWrite = nSize - int64(1) } - nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1650, int32(1)) + nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1664, int32(1)) if nWrite != int32(1) { return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(3)<= 0 { - _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42583)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42916)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -30346,7 +30578,7 @@ func _unixLockSharedMemory(tls *libc.TLS, pDbFd uintptr, pShmNode uintptr) (r in ** help detect if a -shm file truncation is legitimate or is the work ** or a rogue process. */ if rc == SQLITE_OK && _robust_ftruncate(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(3)) != 0 { - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(18)< iRegion { @@ -30913,7 +31147,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { var pNew, pOrig, pReq, zErr uintptr var v1 Tsqlite3_int64 _, _, _, _, _, _, _, _, _, _ = flags, h, nOrig, nReuse, pNew, pOrig, pReq, szSyspage, zErr, v1 - zErr = __ccgo_ts + 3553 + zErr = __ccgo_ts + 3617 h = (*TunixFile)(unsafe.Pointer(pFd)).Fh /* File descriptor open on db file */ pOrig = (*TunixFile)(unsafe.Pointer(pFd)).FpMapRegion /* Pointer to current file mapping */ nOrig = (*TunixFile)(unsafe.Pointer(pFd)).FmmapSizeActual /* Size of pOrig region in bytes */ @@ -30948,7 +31182,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { if pNew == uintptr(-libc.Int32FromInt32(1)) { pNew = uintptr(0) nNew = 0 - _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43401)) + _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43734)) /* If the mmap() above failed, assume that all subsequent mmap() calls ** will probably fail too. Fall back to using xRead/xWrite exclusively ** in this case. */ @@ -31435,7 +31669,7 @@ func _autolockIoFinderImpl(tls *libc.TLS, filePath uintptr, pNew uintptr) (r uin (*(*Tflock)(unsafe.Pointer(bp + 2168))).Fl_whence = SEEK_SET (*(*Tflock)(unsafe.Pointer(bp + 2168))).Fl_type = int16(F_RDLCK) if (*(*func(*libc.TLS, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(7)].FpCurrent})))(tls, (*TunixFile)(unsafe.Pointer(pNew)).Fh, int32(F_GETLK), libc.VaList(bp+2200, bp+2168)) != -int32(1) { - if libc.Xstrcmp(tls, bp+72, __ccgo_ts+3860) == 0 { + if libc.Xstrcmp(tls, bp+72, __ccgo_ts+3924) == 0 { return uintptr(unsafe.Pointer(&_nfsIoMethods)) } else { return uintptr(unsafe.Pointer(&_posixIoMethods)) @@ -31451,23 +31685,23 @@ var _aMap = [6]struct { FpMethods uintptr }{ 0: { - FzFilesystem: __ccgo_ts + 3833, + FzFilesystem: __ccgo_ts + 3897, FpMethods: uintptr(unsafe.Pointer(&_posixIoMethods)), }, 1: { - FzFilesystem: __ccgo_ts + 3837, + FzFilesystem: __ccgo_ts + 3901, FpMethods: uintptr(unsafe.Pointer(&_posixIoMethods)), }, 2: { - FzFilesystem: __ccgo_ts + 3841, + FzFilesystem: __ccgo_ts + 3905, FpMethods: uintptr(unsafe.Pointer(&_afpIoMethods)), }, 3: { - FzFilesystem: __ccgo_ts + 3847, + FzFilesystem: __ccgo_ts + 3911, FpMethods: uintptr(unsafe.Pointer(&_afpIoMethods)), }, 4: { - FzFilesystem: __ccgo_ts + 3853, + FzFilesystem: __ccgo_ts + 3917, FpMethods: uintptr(unsafe.Pointer(&_nolockIoMethods)), }, 5: {}, @@ -31520,11 +31754,11 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam } else { v1 = uintptr(0) } - if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3864, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { + if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3928, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { p2 = pNew + 30 *(*uint16)(unsafe.Pointer(p2)) = uint16(int32(*(*uint16)(unsafe.Pointer(p2))) | libc.Int32FromInt32(UNIXFILE_PSOW)) } - if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3869) == 0 { + if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3933) == 0 { p3 = pNew + 30 *(*uint16)(unsafe.Pointer(p3)) = uint16(int32(*(*uint16)(unsafe.Pointer(p3))) | libc.Int32FromInt32(UNIXFILE_EXCL)) } @@ -31559,7 +31793,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam ** implicit assumption here is that if fstat() fails, things are in ** such bad shape that dropping a lock or two doesn't matter much. */ - _robust_close(tls, pNew, h, int32(43909)) + _robust_close(tls, pNew, h, int32(44242)) h = -int32(1) } _unixLeaveMutex(tls) @@ -31581,7 +31815,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam rc = _findInodeInfo(tls, pNew, pNew+16) if rc != SQLITE_OK { Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pNew)).FlockingContext) - _robust_close(tls, pNew, h, int32(43935)) + _robust_close(tls, pNew, h, int32(44268)) h = -int32(1) } _unixLeaveMutex(tls) @@ -31593,7 +31827,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam if zLockFile == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3879, libc.VaList(bp+8, zFilename)) + Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3943, libc.VaList(bp+8, zFilename)) } (*TunixFile)(unsafe.Pointer(pNew)).FlockingContext = zLockFile } @@ -31602,7 +31836,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam _storeLastErrno(tls, pNew, 0) if rc != SQLITE_OK { if h >= 0 { - _robust_close(tls, pNew, h, int32(43994)) + _robust_close(tls, pNew, h, int32(44327)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -31617,10 +31851,10 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam // ** Directories to consider for temp files. // */ var _azTempDirs = [6]uintptr{ - 2: __ccgo_ts + 3887, - 3: __ccgo_ts + 3896, - 4: __ccgo_ts + 3905, - 5: __ccgo_ts + 1663, + 2: __ccgo_ts + 3951, + 3: __ccgo_ts + 3960, + 4: __ccgo_ts + 3969, + 5: __ccgo_ts + 1677, } // C documentation @@ -31629,8 +31863,8 @@ var _azTempDirs = [6]uintptr{ // ** Initialize first two members of azTempDirs[] array. // */ func _unixTempFileInit(tls *libc.TLS) { - _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3910) - _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3924) + _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3974) + _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3988) } // C documentation @@ -31692,7 +31926,7 @@ func _unixGetTempname(tls *libc.TLS, nBuf int32, zBuf uintptr) (r int32) { for cond := true; cond; cond = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(2)].FpCurrent})))(tls, zBuf, 0) == 0 { Xsqlite3_randomness(tls, int32(8), bp) *(*int8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2)))) = 0 - Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3931, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) + Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3995, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) if v2 = int32(*(*int8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2))))) != 0; !v2 { v1 = iLimit iLimit++ @@ -31864,7 +32098,7 @@ func _findCreateFileMode(tls *libc.TLS, zPath uintptr, flags int32, pMode uintpt ** filename, check for the "modeof" parameter. If present, interpret ** its value as a filename and try to copy the mode, uid and gid from ** that file. */ - z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3948) + z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+4012) if z != 0 { rc = _getFileMode(tls, z, pMode, pUid, pGid) } @@ -31902,13 +32136,13 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags bp := tls.Alloc(2704) defer tls.Free(2704) var ctrlFlags, eType, fd, isAutoProxy, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, rc, rc2, useProxy int32 - var envforce, p, pUnused, zName uintptr + var envforce, p, pReadonly, pUnused, zName uintptr var _ /* fsInfo at bp+0 */ Tstatfs var _ /* gid at bp+2688 */ Tgid_t var _ /* openMode at bp+2682 */ Tmode_t var _ /* uid at bp+2684 */ Tuid_t var _ /* zTmpname at bp+2168 */ [514]int8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, envforce, fd, isAutoProxy, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pUnused, rc, rc2, useProxy, zName + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, envforce, fd, isAutoProxy, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pReadonly, pUnused, rc, rc2, useProxy, zName p = pFile fd = -int32(1) /* File descriptor returned by open() */ openFlags = 0 /* Flags to pass to open() */ @@ -32004,17 +32238,24 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } else { if *(*int32)(unsafe.Pointer(libc.X__error(tls))) != int32(EISDIR) && isReadWrite != 0 { /* Failed to open the file for read/write access. Try read-only. */ + pReadonly = uintptr(0) flags &= ^(libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE)) openFlags &= ^(libc.Int32FromInt32(O_RDWR) | libc.Int32FromInt32(O_CREAT)) flags |= int32(SQLITE_OPEN_READONLY) openFlags |= O_RDONLY isReadonly = int32(1) - fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 2682))) + pReadonly = _findReusableFd(tls, zName, flags) + if pReadonly != 0 { + fd = (*TUnixUnusedFd)(unsafe.Pointer(pReadonly)).Ffd + Xsqlite3_free(tls, pReadonly) + } else { + fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 2682))) + } } } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44435)), __ccgo_ts+3395, zName, int32(44435)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44775)), __ccgo_ts+3459, zName, int32(44775)) if rc == SQLITE_OK { rc = rc2 } @@ -32050,13 +32291,13 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } if libc.Xfstatfs(tls, fd, bp) == -int32(1) { _storeLastErrno(tls, p, *(*int32)(unsafe.Pointer(libc.X__error(tls)))) - _robust_close(tls, p, fd, int32(44489)) + _robust_close(tls, p, fd, int32(44829)) return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(13)< int32(SQLITE_MAX_SYMLINK) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(44686)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45026)) return } got = (*(*func(*libc.TLS, uintptr, uintptr, Tsize_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls, zIn, bp+144, libc.Uint64FromInt64(1026)-libc.Uint64FromInt32(2)) if got <= 0 || got >= libc.Int64FromInt64(1026)-libc.Int64FromInt32(2) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44691)), __ccgo_ts+3584, zIn, int32(44691)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45031)), __ccgo_ts+3648, zIn, int32(45031)) return } (*(*[1026]int8)(unsafe.Pointer(bp + 144)))[got] = 0 @@ -32327,14 +32569,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if int32(*(*int8)(unsafe.Pointer(zPath))) != int32('/') { if (*(*func(*libc.TLS, uintptr, Tsize_t) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(3)].FpCurrent})))(tls, bp+24, libc.Uint64FromInt64(1026)-libc.Uint64FromInt32(2)) == uintptr(0) { - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44749)), __ccgo_ts+3413, zPath, int32(44749)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45089)), __ccgo_ts+3477, zPath, int32(45089)) } _appendAllPathElements(tls, bp, bp+24) } _appendAllPathElements(tls, bp, zPath) *(*int8)(unsafe.Pointer(zOut + uintptr((*(*TDbPath)(unsafe.Pointer(bp))).FnUsed))) = 0 if (*(*TDbPath)(unsafe.Pointer(bp))).Frc != 0 || (*(*TDbPath)(unsafe.Pointer(bp))).FnUsed < int32(2) { - return _sqlite3CantopenError(tls, int32(44755)) + return _sqlite3CantopenError(tls, int32(45095)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)< uint64(PATH_MAX) || pathLen < uint64(6) || libc.Xstrlcpy(tls, bp+uintptr(pathLen-uint64(5)), __ccgo_ts+4041, uint64(6)) != uint64(5) { - Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4047, libc.VaList(bp+2144, int32(pathLen))) + if pathLen > uint64(PATH_MAX) || pathLen < uint64(6) || libc.Xstrlcpy(tls, bp+uintptr(pathLen-uint64(5)), __ccgo_ts+4105, uint64(6)) != uint64(5) { + Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4111, libc.VaList(bp+2144, int32(pathLen))) goto end_breaklock } /* read the conch content */ readLen = uint64((*(*func(*libc.TLS, int32, uintptr, Tsize_t, Toff_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(9)].FpCurrent})))(tls, (*TunixFile)(unsafe.Pointer(conchFile)).Fh, bp+1024, uint64(libc.Int32FromInt32(PROXY_HEADERLEN)+libc.Int32FromInt32(PROXY_HOSTIDLEN)+libc.Int32FromInt32(PATH_MAX)), 0)) if readLen < uint64(libc.Int32FromInt32(PROXY_HEADERLEN)+libc.Int32FromInt32(PROXY_HOSTIDLEN)) { - Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4067, libc.VaList(bp+2144, int32(readLen))) + Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4131, libc.VaList(bp+2144, int32(readLen))) goto end_breaklock } /* write it out to the temporary break file */ fd = _robust_open(tls, bp, libc.Int32FromInt32(O_RDWR)|libc.Int32FromInt32(O_CREAT)|libc.Int32FromInt32(O_EXCL)|libc.Int32FromInt32(O_NOFOLLOW), uint16(0)) if fd < 0 { - Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4087, libc.VaList(bp+2144, *(*int32)(unsafe.Pointer(libc.X__error(tls))))) + Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4151, libc.VaList(bp+2144, *(*int32)(unsafe.Pointer(libc.X__error(tls))))) goto end_breaklock } if (*(*func(*libc.TLS, int32, uintptr, Tsize_t, Toff_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(12)].FpCurrent})))(tls, fd, bp+1024, readLen, 0) != int64(readLen) { - Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4106, libc.VaList(bp+2144, *(*int32)(unsafe.Pointer(libc.X__error(tls))))) + Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4170, libc.VaList(bp+2144, *(*int32)(unsafe.Pointer(libc.X__error(tls))))) goto end_breaklock } if libc.Xrename(tls, bp, cPath) != 0 { - Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4124, libc.VaList(bp+2144, *(*int32)(unsafe.Pointer(libc.X__error(tls))))) + Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4188, libc.VaList(bp+2144, *(*int32)(unsafe.Pointer(libc.X__error(tls))))) goto end_breaklock } rc = 0 - libc.Xfprintf(tls, libc.X__stderrp, __ccgo_ts+4143, libc.VaList(bp+2144, cPath)) - _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(conchFile)).Fh, int32(45418)) + libc.Xfprintf(tls, libc.X__stderrp, __ccgo_ts+4207, libc.VaList(bp+2144, cPath)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(conchFile)).Fh, int32(45758)) (*TunixFile)(unsafe.Pointer(conchFile)).Fh = fd (*TunixFile)(unsafe.Pointer(conchFile)).FopenFlags = libc.Int32FromInt32(O_RDWR) | libc.Int32FromInt32(O_CREAT) + goto end_breaklock end_breaklock: ; if rc != 0 { if fd >= 0 { (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(16)].FpCurrent})))(tls, bp) - _robust_close(tls, pFile, fd, int32(45426)) + _robust_close(tls, pFile, fd, int32(45766)) } - libc.Xfprintf(tls, libc.X__stderrp, __ccgo_ts+4167, libc.VaList(bp+2144, cPath, bp+2065)) + libc.Xfprintf(tls, libc.X__stderrp, __ccgo_ts+4231, libc.VaList(bp+2144, cPath, bp+2065)) } return rc } @@ -33210,18 +33454,19 @@ func _proxyTakeConch(tls *libc.TLS, pFile uintptr) (r int32) { } } (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*TunixFile)(unsafe.Pointer(conchFile)).FpMethod)).FxUnlock})))(tls, conchFile, int32(SHARED_LOCK)) + goto end_takeconch end_takeconch: ; if rc == SQLITE_OK && (*TunixFile)(unsafe.Pointer(pFile)).FopenFlags != 0 { if (*TunixFile)(unsafe.Pointer(pFile)).Fh >= 0 { - _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(45679)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(46019)) } (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) fd = _robust_open(tls, (*TproxyLockingContext)(unsafe.Pointer(pCtx)).FdbPath, (*TunixFile)(unsafe.Pointer(pFile)).FopenFlags, uint16(0)) if fd >= 0 { (*TunixFile)(unsafe.Pointer(pFile)).Fh = fd } else { - rc = _sqlite3CantopenError(tls, int32(45687)) /* SQLITE_BUSY? proxyTakeConch called + rc = _sqlite3CantopenError(tls, int32(46027)) /* SQLITE_BUSY? proxyTakeConch called during locking */ } } @@ -33344,7 +33589,7 @@ func _proxyCreateConchPathname(tls *libc.TLS, dbPath uintptr, pConchPath uintptr i++ } /* append the "-conch" suffix to the file */ - libc.X__builtin___memcpy_chk(tls, conchPath+uintptr(i+int32(1)), __ccgo_ts+4205, uint64(7), libc.X__builtin_object_size(tls, conchPath+uintptr(i+int32(1)), 0)) + libc.X__builtin___memcpy_chk(tls, conchPath+uintptr(i+int32(1)), __ccgo_ts+4269, uint64(7), libc.X__builtin_object_size(tls, conchPath+uintptr(i+int32(1)), 0)) return SQLITE_OK } @@ -33364,7 +33609,7 @@ func _switchLockProxyPath(tls *libc.TLS, pFile uintptr, path uintptr) (r int32) return int32(SQLITE_BUSY) } /* nothing to do if the path is NULL, :auto: or matches the existing path */ - if !(path != 0) || int32(*(*int8)(unsafe.Pointer(path))) == int32('\000') || !(libc.Xstrcmp(tls, path, __ccgo_ts+3994) != 0) || oldPath != 0 && !(libc.Xstrncmp(tls, oldPath, path, uint64(PATH_MAX)) != 0) { + if !(path != 0) || int32(*(*int8)(unsafe.Pointer(path))) == int32('\000') || !(libc.Xstrcmp(tls, path, __ccgo_ts+4058) != 0) || oldPath != 0 && !(libc.Xstrncmp(tls, oldPath, path, uint64(PATH_MAX)) != 0) { return SQLITE_OK } else { lockProxy = (*TproxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxy @@ -33403,7 +33648,7 @@ func _proxyGetDbPathForUnixFile(tls *libc.TLS, pFile uintptr, dbPath uintptr) (r if (*TunixFile)(unsafe.Pointer(pFile)).FpMethod == uintptr(unsafe.Pointer(&_dotlockIoMethods)) { /* dot lock style uses the locking context to store the dot lock ** file path */ - len1 = int32(libc.Xstrlen(tls, (*TunixFile)(unsafe.Pointer(pFile)).FlockingContext) - libc.Xstrlen(tls, __ccgo_ts+4212)) + len1 = int32(libc.Xstrlen(tls, (*TunixFile)(unsafe.Pointer(pFile)).FlockingContext) - libc.Xstrlen(tls, __ccgo_ts+4276)) libc.X__builtin___memcpy_chk(tls, dbPath, (*TunixFile)(unsafe.Pointer(pFile)).FlockingContext, uint64(len1+int32(1)), libc.X__builtin_object_size(tls, dbPath, 0)) } else { /* all other styles use the locking context to store the db file path */ @@ -33438,7 +33683,7 @@ func _proxyTransformUnixFile(tls *libc.TLS, pFile uintptr, path uintptr) (r int3 return int32(SQLITE_BUSY) } _proxyGetDbPathForUnixFile(tls, pFile, bp) - if !(path != 0) || int32(*(*int8)(unsafe.Pointer(path))) == int32('\000') || !(libc.Xstrcmp(tls, path, __ccgo_ts+3994) != 0) { + if !(path != 0) || int32(*(*int8)(unsafe.Pointer(path))) == int32('\000') || !(libc.Xstrcmp(tls, path, __ccgo_ts+4058) != 0) { lockPath = libc.UintptrFromInt32(0) } else { lockPath = path @@ -33513,7 +33758,7 @@ func _proxyFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r int if (*TproxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath != 0 { *(*uintptr)(unsafe.Pointer(pArg)) = (*TproxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath } else { - *(*uintptr)(unsafe.Pointer(pArg)) = __ccgo_ts + 4218 + *(*uintptr)(unsafe.Pointer(pArg)) = __ccgo_ts + 4282 } } else { *(*uintptr)(unsafe.Pointer(pArg)) = libc.UintptrFromInt32(0) @@ -33538,7 +33783,7 @@ func _proxyFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r int proxyPath = pArg if isProxyStyle != 0 { pCtx1 = (*TunixFile)(unsafe.Pointer(pFile1)).FlockingContext - if !(libc.Xstrcmp(tls, pArg, __ccgo_ts+3994) != 0) || (*TproxyLockingContext)(unsafe.Pointer(pCtx1)).FlockProxyPath != 0 && !(libc.Xstrncmp(tls, (*TproxyLockingContext)(unsafe.Pointer(pCtx1)).FlockProxyPath, proxyPath, uint64(PATH_MAX)) != 0) { + if !(libc.Xstrcmp(tls, pArg, __ccgo_ts+4058) != 0) || (*TproxyLockingContext)(unsafe.Pointer(pCtx1)).FlockProxyPath != 0 && !(libc.Xstrncmp(tls, (*TproxyLockingContext)(unsafe.Pointer(pCtx1)).FlockProxyPath, proxyPath, uint64(PATH_MAX)) != 0) { rc = SQLITE_OK } else { rc = _switchLockProxyPath(tls, pFile1, proxyPath) @@ -33807,55 +34052,55 @@ var _aVfs = [9]Tsqlite3_vfs{ FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 4236, + FzName: __ccgo_ts + 4300, }, 1: { FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 4241, + FzName: __ccgo_ts + 4305, }, 2: { FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 4251, + FzName: __ccgo_ts + 4315, }, 3: { FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 3869, + FzName: __ccgo_ts + 3933, }, 4: { FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 4264, + FzName: __ccgo_ts + 4328, }, 5: { FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 4275, + FzName: __ccgo_ts + 4339, }, 6: { FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 4286, + FzName: __ccgo_ts + 4350, }, 7: { FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 4295, + FzName: __ccgo_ts + 4359, }, 8: { FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 4304, + FzName: __ccgo_ts + 4368, }, } @@ -34219,7 +34464,7 @@ var _memdb_g TMemFS var _memdb_vfs = Tsqlite3_vfs{ FiVersion: int32(2), FmxPathname: int32(1024), - FzName: __ccgo_ts + 4315, + FzName: __ccgo_ts + 4379, } func init() { @@ -34565,7 +34810,7 @@ func _memdbFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r rc = int32(SQLITE_NOTFOUND) _memdbEnter(tls, p) if op == int32(SQLITE_FCNTL_VFSNAME) { - *(*uintptr)(unsafe.Pointer(pArg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4321, libc.VaList(bp+8, (*TMemStore)(unsafe.Pointer(p)).FaData, (*TMemStore)(unsafe.Pointer(p)).Fsz)) + *(*uintptr)(unsafe.Pointer(pArg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4385, libc.VaList(bp+8, (*TMemStore)(unsafe.Pointer(p)).FaData, (*TMemStore)(unsafe.Pointer(p)).Fsz)) rc = SQLITE_OK } if op == int32(SQLITE_FCNTL_SIZE_LIMIT) { @@ -34740,7 +34985,7 @@ func _memdbFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, bp := tls.Alloc(16) defer tls.Free(16) _ = pVfs - Xsqlite3_snprintf(tls, nOut, zOut, __ccgo_ts+3799, libc.VaList(bp+8, zPath)) + Xsqlite3_snprintf(tls, nOut, zOut, __ccgo_ts+3863, libc.VaList(bp+8, zPath)) return SQLITE_OK } @@ -34887,7 +35132,7 @@ func Xsqlite3_serialize(tls *libc.TLS, db uintptr, zSchema uintptr, piSize uintp return uintptr(0) } szPage = _sqlite3BtreeGetPageSize(tls, pBt) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+4336, libc.VaList(bp+24, zSchema)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+4400, libc.VaList(bp+24, zSchema)) if zSql != 0 { v1 = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), bp, uintptr(0)) } else { @@ -34905,7 +35150,7 @@ func Xsqlite3_serialize(tls *libc.TLS, db uintptr, zSchema uintptr, piSize uintp sz = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) * int64(szPage) if sz == 0 { Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp))) - Xsqlite3_exec(tls, db, __ccgo_ts+4359, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+4423, uintptr(0), uintptr(0), uintptr(0)) rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) if rc == int32(SQLITE_ROW) { sz = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) * int64(szPage) @@ -34968,7 +35213,7 @@ func Xsqlite3_deserialize(tls *libc.TLS, db uintptr, zSchema uintptr, pData uint rc = int32(SQLITE_ERROR) goto end_deserialize } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+4384, libc.VaList(bp+16, zSchema)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+4448, libc.VaList(bp+16, zSchema)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -35002,6 +35247,7 @@ func Xsqlite3_deserialize(tls *libc.TLS, db uintptr, zSchema uintptr, pData uint (*TMemStore)(unsafe.Pointer(pStore)).FmFlags = mFlags rc = SQLITE_OK } + goto end_deserialize end_deserialize: ; Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -35270,6 +35516,7 @@ func _sqlite3BitvecSet(tls *libc.TLS, p uintptr, i Tu32) (r int32) { /* we didn't find it in the hash. h points to the first */ /* available free spot. check to see if this is going to */ /* make our hash too "full". */ + goto bitvec_set_rehash bitvec_set_rehash: ; if uint64((*TBitvec)(unsafe.Pointer(p)).FnSet) >= (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4)/libc.Uint64FromInt32(2) { @@ -35298,6 +35545,7 @@ bitvec_set_rehash: return rc } } + goto bitvec_set_end bitvec_set_end: ; (*TBitvec)(unsafe.Pointer(p)).FnSet++ @@ -35530,6 +35778,7 @@ func _sqlite3BitvecBuiltinTest(tls *libc.TLS, sz int32, aOp uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp))++ } /* Free allocated structure */ + goto bitvec_end bitvec_end: ; Xsqlite3_free(tls, pTmpSpace) @@ -36769,7 +37018,7 @@ func _sqlite3PCacheBufferSetup(tls *libc.TLS, pBuf uintptr, sz int32, n int32) { var p uintptr var v1, v2, v3, v4 int32 _, _, _, _, _ = p, v1, v2, v3, v4 - if _pcache1_g.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80) != 0 { if pBuf == uintptr(0) { v1 = libc.Int32FromInt32(0) n = v1 @@ -37290,7 +37539,7 @@ func _pcache1Init(tls *libc.TLS, NotUsed uintptr) (r int32) { _pcache1_g.FnInitPage = 0 } _pcache1_g.Fgrp.FmxPinned = uint32(10) - _pcache1_g.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80, int32(1)) return SQLITE_OK } @@ -40787,6 +41036,7 @@ func _pager_delsuper(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) { } _sqlite3OsClose(tls, pSuper) rc = _sqlite3OsDelete(tls, pVfs, zSuper, 0) + goto delsuper_out delsuper_out: ; Xsqlite3_free(tls, zFree) @@ -41114,6 +41364,7 @@ func _pager_playback(tls *libc.TLS, pPager uintptr, isHot int32) (r int32) { } } /*NOTREACHED*/ + goto end_playback end_playback: ; if rc == SQLITE_OK { @@ -41156,7 +41407,7 @@ end_playback: rc = _pager_delsuper(tls, pPager, zSuper) } if isHot != 0 && nPlayback != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(2)< int64(1) { _sqlite3PagerUnrefNotNull(tls, pPgOld) - return _sqlite3CorruptError(tls, int32(63973)) + return _sqlite3CorruptError(tls, int32(64313)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | int32((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -45259,7 +45514,7 @@ func _sqlite3PagerCheckpoint(tls *libc.TLS, pPager uintptr, db uintptr, eMode in ** sqlite3_wal_checkpoint() call, but it happens very rarely. ** https://sqlite.org/forum/forumpost/fd0f19d229156939 */ - Xsqlite3_exec(tls, db, __ccgo_ts+4457, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+4521, uintptr(0), uintptr(0), uintptr(0)) } if (*TPager)(unsafe.Pointer(pPager)).FpWal != 0 { if eMode == SQLITE_CHECKPOINT_PASSIVE { @@ -46700,7 +46955,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(65899)) + return _sqlite3CorruptError(tls, int32(66239)) } goto _1 _1: @@ -46788,7 +47043,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { ** are able to understand */ version = _sqlite3Get4byte(tls, bp+8+4) if version != uint32(WAL_MAX_VERSION) { - rc = _sqlite3CantopenError(tls, int32(66031)) + rc = _sqlite3CantopenError(tls, int32(66371)) goto finished } /* Malloc a buffer to read frames into. */ @@ -46883,6 +47138,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { } Xsqlite3_free(tls, aFrame) } + goto finished finished: ; if rc == SQLITE_OK { @@ -46926,9 +47182,10 @@ finished: ** checkpointing the log file. */ if (*TWal)(unsafe.Pointer(pWal)).Fhdr.FnPage != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(1)< int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(71032)) + rc = _sqlite3CorruptError(tls, int32(71421)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } @@ -51482,7 +51748,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, } /* The super-journal page number must never be used as a pointer map page */ if key == uint32(0) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71230)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71619)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -51495,12 +51761,12 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, /* The first byte of the extra data is the MemPage.isInit byte. ** If that byte is set, it means this page is also being used ** as a btree page. */ - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71243)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71632)) goto ptrmap_exit } offset = int32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71248)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71637)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -51513,6 +51779,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _sqlite3Put4byte(tls, pPtrmap+uintptr(offset+int32(1)), parent) } } + goto ptrmap_exit ptrmap_exit: ; _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -51543,7 +51810,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = int32(libc.Uint32FromInt32(5) * (key - uint32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(71293)) + return _sqlite3CorruptError(tls, int32(71682)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -51551,7 +51818,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if int32(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || int32(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(71301)) + return _sqlite3CorruptError(tls, int32(71690)) } return SQLITE_OK } @@ -51971,7 +52238,7 @@ func _ptrmapPutOvflPtr(tls *libc.TLS, pPage uintptr, pSrc uintptr, pCell uintptr (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if uint64(pCell) < uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) && uint64(pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal)) > uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71741)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72130)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(int32((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -52011,12 +52278,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71799)) + return _sqlite3CorruptError(tls, int32(72188)) } if iFree != 0 { iFree2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71802)) + return _sqlite3CorruptError(tls, int32(72191)) } if 0 == iFree2 || int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -52024,21 +52291,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(71810)) + return _sqlite3CorruptError(tls, int32(72199)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(71813)) + return _sqlite3CorruptError(tls, int32(72202)) } sz2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(71815)) + return _sqlite3CorruptError(tls, int32(72204)) } libc.X__builtin___memmove_chk(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), uint64(iFree2-(iFree+sz)), libc.X__builtin_object_size(tls, data+uintptr(iFree+sz+sz2), 0)) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(71819)) + return _sqlite3CorruptError(tls, int32(72208)) } } cbrk = top + sz @@ -52085,12 +52352,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { ** if PRAGMA cell_size_check=ON. */ if pc > iCellLast { - return _sqlite3CorruptError(tls, int32(71852)) + return _sqlite3CorruptError(tls, int32(72241)) } size = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, src+uintptr(pc))) cbrk -= size if cbrk < iCellStart || pc+size > usableSize { - return _sqlite3CorruptError(tls, int32(71858)) + return _sqlite3CorruptError(tls, int32(72247)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = uint8(cbrk) @@ -52102,10 +52369,11 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { } } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))) = uint8(0) + goto defragment_out defragment_out: ; if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(71872)) + return _sqlite3CorruptError(tls, int32(72261)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = uint8(cbrk) @@ -52165,7 +52433,7 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint } else { if x+pc > maxPC { /* This slot extends off the end of the usable part of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71929)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72318)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -52182,14 +52450,14 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint if pc <= iAddr { if pc != 0 { /* The next slot in the chain comes before the current slot */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71944)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72333)) } return uintptr(0) } } if pc > maxPC+nByte-int32(4) { /* The free slot chain extends off the end of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71951)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72340)) } return uintptr(0) } @@ -52232,11 +52500,11 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r if top == 0 && (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize == uint32(65536) { top = int32(65536) } else { - return _sqlite3CorruptError(tls, int32(71999)) + return _sqlite3CorruptError(tls, int32(72388)) } } else { if top > int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(72002)) + return _sqlite3CorruptError(tls, int32(72391)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -52250,7 +52518,7 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r g2 = v1 *(*int32)(unsafe.Pointer(pIdx)) = v1 if g2 <= gap { - return _sqlite3CorruptError(tls, int32(72019)) + return _sqlite3CorruptError(tls, int32(72408)) } else { return SQLITE_OK } @@ -52333,12 +52601,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if int32(iFreeBlk) == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(72098)) + return _sqlite3CorruptError(tls, int32(72487)) } iPtr = iFreeBlk } if uint32(iFreeBlk) > (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(72103)) + return _sqlite3CorruptError(tls, int32(72492)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -52349,11 +52617,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if iFreeBlk != 0 && iEnd+uint32(3) >= uint32(iFreeBlk) { nFrag = uint8(uint32(iFreeBlk) - iEnd) if iEnd > uint32(iFreeBlk) { - return _sqlite3CorruptError(tls, int32(72115)) + return _sqlite3CorruptError(tls, int32(72504)) } iEnd = uint32(int32(iFreeBlk) + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iFreeBlk)+int32(2)))))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - return _sqlite3CorruptError(tls, int32(72118)) + return _sqlite3CorruptError(tls, int32(72507)) } iSize = uint16(iEnd - uint32(iStart)) iFreeBlk = uint16(int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= int32(iStart) { if iPtrEnd > int32(iStart) { - return _sqlite3CorruptError(tls, int32(72131)) + return _sqlite3CorruptError(tls, int32(72520)) } nFrag = Tu8(int32(nFrag) + (int32(iStart) - iPtrEnd)) iSize = uint16(iEnd - uint32(iPtr)) @@ -52374,7 +52642,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) } } if int32(nFrag) > int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(72137)) + return _sqlite3CorruptError(tls, int32(72526)) } p2 = data + uintptr(int32(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - int32(nFrag)) @@ -52391,10 +52659,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) ** so just extend the cell content area rather than create another ** freelist entry */ if int32(iStart) < int32(x) { - return _sqlite3CorruptError(tls, int32(72151)) + return _sqlite3CorruptError(tls, int32(72540)) } if int32(iPtr) != int32(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(72152)) + return _sqlite3CorruptError(tls, int32(72541)) } *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)))) = uint8(int32(iFreeBlk) >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)) + 1)) = uint8(iFreeBlk) @@ -52455,7 +52723,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtrIdxLeaf) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72206)) + return _sqlite3CorruptError(tls, int32(72595)) } } } else { @@ -52481,7 +52749,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtr) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72230)) + return _sqlite3CorruptError(tls, int32(72619)) } } } @@ -52520,12 +52788,12 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-55530-52930 In a well-formed b-tree page, there will ** always be at least one cell before the first freeblock. */ - return _sqlite3CorruptError(tls, int32(72281)) + return _sqlite3CorruptError(tls, int32(72670)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(72286)) + return _sqlite3CorruptError(tls, int32(72675)) } next = uint32(int32(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(72296)) + return _sqlite3CorruptError(tls, int32(72685)) } if uint32(pc)+size > uint32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(72300)) + return _sqlite3CorruptError(tls, int32(72689)) } } /* At this point, nFree contains the sum of the offset to the start @@ -52552,7 +52820,7 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { ** area, according to the page header, lies within the page. */ if nFree > usableSize || nFree < iCellFirst { - return _sqlite3CorruptError(tls, int32(72312)) + return _sqlite3CorruptError(tls, int32(72701)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16(nFree - iCellFirst)) return SQLITE_OK @@ -52583,11 +52851,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = int32(*(*Tu8)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))< iCellLast { - return _sqlite3CorruptError(tls, int32(72343)) + return _sqlite3CorruptError(tls, int32(72732)) } sz = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, data+uintptr(pc))) if pc+sz > usableSize { - return _sqlite3CorruptError(tls, int32(72348)) + return _sqlite3CorruptError(tls, int32(72737)) } goto _1 _1: @@ -52616,7 +52884,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-28594-02890 The one-byte flag at offset 0 indicating ** the b-tree page type. */ if _decodeFlags(tls, pPage, int32(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(72380)) + return _sqlite3CorruptError(tls, int32(72769)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -52629,7 +52897,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = uint16(int32(*(*Tu8)(unsafe.Pointer(data + 3)))< ((*TBtShared)(unsafe.Pointer(pBt)).FpageSize-uint32(8))/uint32(6) { /* To many cells for a single page. The page must be corrupt */ - return _sqlite3CorruptError(tls, int32(72394)) + return _sqlite3CorruptError(tls, int32(72783)) } /* EVIDENCE-OF: R-24089-57979 If a page contains no cells (which is only ** possible for a root page of a table that contains no rows) then the @@ -52782,7 +53050,7 @@ func _getAndInitPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, bRe _, _ = pPage, rc if pgno > _btreePagecount(tls, pBt) { *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72537)) + return _sqlite3CorruptError(tls, int32(72926)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -52844,7 +53112,7 @@ func _btreeGetUnusedPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FpDbPage) > int32(1) { _releasePage(tls, *(*uintptr)(unsafe.Pointer(ppPage))) *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72609)) + return _sqlite3CorruptError(tls, int32(72998)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -52932,7 +53200,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt /* Set the variable isMemdb to true for an in-memory database, or ** false for a file-based database. */ - isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4538) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) + isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4602) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) /* flags fit in 8 bits */ /* Only a BTREE_SINGLE database can be BTREE_UNORDERED */ /* A BTREE_SINGLE database is always a temporary and/or ephemeral */ @@ -53156,6 +53424,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt } } *(*uintptr)(unsafe.Pointer(ppBtree)) = p + goto btree_open_out btree_open_out: ; if rc != SQLITE_OK { @@ -53717,7 +53986,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { ** The original design allowed these amounts to vary, but as of ** version 3.6.0, we require them to be fixed. */ - if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4547, uint64(3)) != 0 { + if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4611, uint64(3)) != 0 { goto page1_init_failed } /* EVIDENCE-OF: R-51873-39618 The page size for a database file is @@ -53755,7 +54024,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { } if nPage > *(*Tu32)(unsafe.Pointer(bp + 8)) { if _sqlite3WritableSchema(tls, (*TBtShared)(unsafe.Pointer(pBt)).Fdb) == 0 { - rc = _sqlite3CorruptError(tls, int32(73547)) + rc = _sqlite3CorruptError(tls, int32(73936)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -53809,6 +54078,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 = *(*uintptr)(unsafe.Pointer(bp)) (*TBtShared)(unsafe.Pointer(pBt)).FnPage = nPage return SQLITE_OK + goto page1_init_failed page1_init_failed: ; _releasePageOne(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -54078,6 +54348,7 @@ func _btreeBeginTrans(tls *libc.TLS, p uintptr, wrflag int32, pSchemaVersion uin } } } + goto trans_begun trans_begun: ; if rc == SQLITE_OK { @@ -54194,7 +54465,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if int32(eType) == int32(PTRMAP_OVERFLOW2) { /* The pointer is always the first 4 bytes of the page in this case. */ if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData) != iFrom { - return _sqlite3CorruptError(tls, int32(73995)) + return _sqlite3CorruptError(tls, int32(74384)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -54218,7 +54489,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74014)) + return _sqlite3CorruptError(tls, int32(74403)) } if iFrom == _sqlite3Get4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4)) { _sqlite3Put4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4), iTo) @@ -54227,7 +54498,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } } else { if pCell+uintptr(4) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74023)) + return _sqlite3CorruptError(tls, int32(74412)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -54241,7 +54512,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if int32(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(74035)) + return _sqlite3CorruptError(tls, int32(74424)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -54271,7 +54542,7 @@ func _relocatePage(tls *libc.TLS, pBt uintptr, pDbPage uintptr, eType Tu8, iPtrP iDbPage = (*TMemPage)(unsafe.Pointer(pDbPage)).Fpgno pPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager if iDbPage < uint32(3) { - return _sqlite3CorruptError(tls, int32(74070)) + return _sqlite3CorruptError(tls, int32(74459)) } /* Move page iDbPage from its current location to page number iFreePage */ *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3PagerMovepage(tls, pPager, (*TMemPage)(unsafe.Pointer(pDbPage)).FpDbPage, iFreePage, isCommit) @@ -54367,7 +54638,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(74168)) + return _sqlite3CorruptError(tls, int32(74557)) } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -54405,7 +54676,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if *(*TPgno)(unsafe.Pointer(bp + 24)) > dbSize { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) - return _sqlite3CorruptError(tls, int32(74220)) + return _sqlite3CorruptError(tls, int32(74609)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -54472,7 +54743,7 @@ func _sqlite3BtreeIncrVacuum(tls *libc.TLS, p uintptr) (r int32) { nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) nFin = _finalDbSize(tls, pBt, nOrig, nFree) if nOrig < nFin || nFree >= nOrig { - rc = _sqlite3CorruptError(tls, int32(74288)) + rc = _sqlite3CorruptError(tls, int32(74677)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -54515,7 +54786,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { ** is either a pointer-map page or the pending-byte page. If one ** is encountered, this indicates corruption. */ - return _sqlite3CorruptError(tls, int32(74339)) + return _sqlite3CorruptError(tls, int32(74728)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -54545,7 +54816,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(74366)) + return _sqlite3CorruptError(tls, int32(74755)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -55011,7 +55282,7 @@ func _btreeCursor(tls *libc.TLS, p uintptr, iTable TPgno, wrFlag int32, pKeyInfo /* Assert that the caller has opened the required transaction. */ if iTable <= uint32(1) { if iTable < uint32(1) { - return _sqlite3CorruptError(tls, int32(74830)) + return _sqlite3CorruptError(tls, int32(75219)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -55403,7 +55674,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin pBt = (*TBtCursor)(unsafe.Pointer(pCur)).FpBt /* Btree this cursor belongs to */ pBufStart = pBuf /* Start of original out buffer */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(75235)) + return _sqlite3CorruptError(tls, int32(75624)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -55413,7 +55684,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin ** &aPayload[pCur->info.nLocal] > &pPage->aData[pBt->usableSize] ** but is recast into its current form to avoid integer overflow problems */ - return _sqlite3CorruptError(tls, int32(75250)) + return _sqlite3CorruptError(tls, int32(75639)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -55441,7 +55712,11 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_ValidOvfl) == 0 { nOvfl = int32(((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnPayload - uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) + ovflSize - uint32(1)) / ovflSize) if (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow == uintptr(0) || nOvfl*libc.Int32FromInt64(4) > _sqlite3MallocSize(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow) { - aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + if _sqlite3FaultSim(tls, int32(413)) != 0 { + aNew = uintptr(0) + } else { + aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + } if aNew == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -55452,6 +55727,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin p1 = pCur + 1 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(BTCF_ValidOvfl)) } else { + /* Sanity check the validity of the overflow page cache */ /* If the overflow page-list cache has been allocated and the ** entry for the first required overflow page is valid, skip ** directly to it. @@ -55465,7 +55741,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin for *(*TPgno)(unsafe.Pointer(bp)) != 0 { /* If required, populate the overflow page-list cache. */ if *(*TPgno)(unsafe.Pointer(bp)) > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(75312)) + return _sqlite3CorruptError(tls, int32(75710)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -55539,7 +55815,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin } if rc == SQLITE_OK && amt > uint32(0) { /* Overflow chain ends prematurely */ - return _sqlite3CorruptError(tls, int32(75396)) + return _sqlite3CorruptError(tls, int32(75794)) } return rc } @@ -55674,7 +55950,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { var v3, p1 uintptr _, _, _, _ = rc, v2, v3, p1 if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(75534)) + return _sqlite3CorruptError(tls, int32(75932)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -55686,7 +55962,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(75548)) + rc = _sqlite3CorruptError(tls, int32(75946)) } if rc != 0 { v3 = pCur + 84 @@ -55802,8 +56078,9 @@ func _moveToRoot(tls *libc.TLS, pCur uintptr) (r int32) { ** in such a way that page pRoot is linked into a second b-tree table ** (or the freelist). */ if int32((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != int32((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(75683)) + return _sqlite3CorruptError(tls, int32(76081)) } + goto skip_init skip_init: ; (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(0) @@ -55815,7 +56092,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(75695)) + return _sqlite3CorruptError(tls, int32(76093)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -56049,7 +56326,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(75937)) + return _sqlite3CorruptError(tls, int32(76342)) } } } @@ -56092,6 +56369,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh rc = SQLITE_OK goto moveto_table_finish } + goto moveto_table_next_layer moveto_table_next_layer: ; if lwr >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { @@ -56107,6 +56385,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh goto _1 _1: } + goto moveto_table_finish moveto_table_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -56251,7 +56530,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes p3 = pCur + 1 *(*Tu8)(unsafe.Pointer(p3)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p3))) & ^libc.Int32FromInt32(BTCF_ValidOvfl)) if !((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76133)) + return _sqlite3CorruptError(tls, int32(76538)) } goto bypass_moveto_root /* Start search on the current page */ } @@ -56265,6 +56544,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes } return rc } + goto bypass_moveto_root bypass_moveto_root: ; for { @@ -56313,7 +56593,7 @@ bypass_moveto_root: /* Invalid key size: 0x80 0x80 0x01 */ /* Minimum legal index key size */ if nCell < int32(2) || uint32(nCell)/(*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FusableSize > (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(76220)) + rc = _sqlite3CorruptError(tls, int32(76625)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, uint64(nCell+nOverrun)) @@ -56344,7 +56624,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(76252)) + rc = _sqlite3CorruptError(tls, int32(76657)) } goto moveto_index_finish } @@ -56377,7 +56657,7 @@ bypass_moveto_root: p9 = pCur + 1 *(*Tu8)(unsafe.Pointer(p9)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p9))) & ^(libc.Int32FromInt32(BTCF_ValidNKey) | libc.Int32FromInt32(BTCF_ValidOvfl))) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(76283)) + return _sqlite3CorruptError(tls, int32(76688)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = uint16(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -56386,7 +56666,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76294)) + rc = _sqlite3CorruptError(tls, int32(76699)) } if rc != 0 { v11 = pCur + 84 @@ -56400,6 +56680,7 @@ bypass_moveto_root: goto _4 _4: } + goto moveto_index_finish moveto_index_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -56434,11 +56715,11 @@ func _sqlite3BtreeRowCountEst(tls *libc.TLS, pCur uintptr) (r Ti64) { var i Tu8 var n Ti64 _, _ = i, n - /* Currently this interface is only called by the OP_IfSmaller - ** opcode, and it that case the cursor will always be valid and - ** will always point to a leaf node. */ + /* Currently this interface is only called by the OP_IfSizeBetween + ** opcode and the OP_Count opcode with P3=1. In either case, + ** the cursor will always be valid unless the btree is empty. */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID { - return int64(-int32(1)) + return 0 } if int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).Fleaf) == 0 { return int64(-int32(1)) @@ -56514,7 +56795,7 @@ func _btreeNext(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76395)) + return _sqlite3CorruptError(tls, int32(76800)) } if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -56624,7 +56905,7 @@ func _btreePrevious(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76488)) + return _sqlite3CorruptError(tls, int32(76893)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -56712,7 +56993,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt ** stores the total number of pages on the freelist. */ n = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+36) if n >= mxPage { - return _sqlite3CorruptError(tls, int32(76578)) + return _sqlite3CorruptError(tls, int32(76983)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -56767,7 +57048,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(76634)) + rc = _sqlite3CorruptError(tls, int32(77039)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -56793,7 +57074,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { if k > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/libc.Uint32FromInt32(4)-libc.Uint32FromInt32(2) { /* Value of k is out of range. Database corruption */ - rc = _sqlite3CorruptError(tls, int32(76663)) + rc = _sqlite3CorruptError(tls, int32(77068)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -56820,7 +57101,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { iNewTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+8) if iNewTrunk > mxPage { - rc = _sqlite3CorruptError(tls, int32(76697)) + rc = _sqlite3CorruptError(tls, int32(77102)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -56891,7 +57172,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } iPage = _sqlite3Get4byte(tls, aData+uintptr(uint32(8)+closest*uint32(4))) if iPage > mxPage || iPage < uint32(2) { - rc = _sqlite3CorruptError(tls, int32(76762)) + rc = _sqlite3CorruptError(tls, int32(77167)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -56991,6 +57272,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) } } + goto end_allocate_page end_allocate_page: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -57028,7 +57310,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in iTrunk = uint32(0) /* Page number of free-list trunk page */ pPage1 = (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 /* Initial number of pages on free-list */ if iPage < uint32(2) || iPage > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(76889)) + return _sqlite3CorruptError(tls, int32(77294)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -57079,7 +57361,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in if nFree != uint32(0) { /* Initial number of leaf cells on trunk page */ iTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32) if iTrunk > _btreePagecount(tls, pBt) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76936)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77341)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -57088,7 +57370,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in } nLeaf = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+4) if nLeaf > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(2) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76947)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77352)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -57143,6 +57425,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData, iTrunk) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData+4, uint32(0)) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32, iPage) + goto freepage_out freepage_out: ; if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -57177,7 +57460,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp _, _, _, _, _, _, _, _ = nOvfl, ovflPageSize, ovflPgno, pBt, rc, v1, v2, v3 if pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { /* Cell extends past end of page */ - return _sqlite3CorruptError(tls, int32(77036)) + return _sqlite3CorruptError(tls, int32(77441)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -57195,7 +57478,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp /* 0 is not a legal page number and page 1 cannot be an ** overflow page. Therefore if ovflPgno<2 or past the end of the ** file the database must be corrupt. */ - return _sqlite3CorruptError(tls, int32(77053)) + return _sqlite3CorruptError(tls, int32(77458)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -57218,7 +57501,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp ** caller is iterating through or using in some other way, this ** can be problematic. */ - rc = _sqlite3CorruptError(tls, int32(77073)) + rc = _sqlite3CorruptError(tls, int32(77478)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -57439,7 +57722,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = uint32(int32(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77329)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77734)) return } rc = _freeSpace(tls, pPage, uint16(pc), uint16(sz)) @@ -57833,12 +58116,12 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg sz = *(*Tu16)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FszCell + uintptr(i)*2)) if uint64(pCell) >= uint64(aData+uintptr(j)) && uint64(pCell) < uint64(pEnd) { if uint64(pCell+uintptr(sz)) > uint64(pEnd) { - return _sqlite3CorruptError(tls, int32(77718)) + return _sqlite3CorruptError(tls, int32(78123)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(77723)) + return _sqlite3CorruptError(tls, int32(78128)) } } pData -= uintptr(sz) @@ -57846,7 +58129,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = uint8(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(77729)) + return _sqlite3CorruptError(tls, int32(78134)) } libc.X__builtin___memmove_chk(tls, pData, pCell, uint64(sz), libc.X__builtin_object_size(tls, pData, 0)) i++ @@ -57941,7 +58224,7 @@ func _pageInsertArray(tls *libc.TLS, pPg uintptr, pBegin uintptr, ppData uintptr ** database. But they might for a corrupt database. Hence use memmove() ** since memcpy() sends SIGABORT with overlapping buffers on OpenBSD */ if uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))+uintptr(sz)) > uint64(pEnd) && uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))) < uint64(pEnd) { - _sqlite3CorruptError(tls, int32(77814)) + _sqlite3CorruptError(tls, int32(78219)) return int32(1) } libc.X__builtin___memmove_chk(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), uint64(sz), libc.X__builtin_object_size(tls, pSlot, 0)) @@ -58089,7 +58372,7 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p if iOld < iNew { nShift = _pageFreeArray(tls, pPg, iOld, iNew-iOld, pCArray) if nShift > nCell { - return _sqlite3CorruptError(tls, int32(77936)) + return _sqlite3CorruptError(tls, int32(78341)) } libc.X__builtin___memmove_chk(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), uint64(nCell*int32(2)), libc.X__builtin_object_size(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, 0)) nCell -= nShift @@ -58155,11 +58438,12 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)))) = uint8((int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)) + 1)) = uint8(int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) return SQLITE_OK + goto editpage_fail editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(78010)) + return _sqlite3CorruptError(tls, int32(78415)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -58204,7 +58488,7 @@ func _balance_quick(tls *libc.TLS, pParent uintptr, pPage uintptr, pSpace uintpt _, _, _, _, _, _, _ = pBt, pOut, pStop, v1, v2, v3, v4 pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt /* Page number of pNew */ if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(78050)) + return _sqlite3CorruptError(tls, int32(78455)) } /* dbfuzz001.test */ /* Allocate a new page. This page will become the right-sibling of ** pPage. Make the parent page writable, so that the new divider cell @@ -58565,7 +58849,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78471)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78876)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -58588,7 +58872,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa libc.X__builtin___memset_chk(tls, (*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell+uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*2, 0, uint64(2)*uint64(limit+int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow)), libc.X__builtin_object_size(tls, (*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell+uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*2, 0)) if int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78495)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78900)) goto balance_cleanup } limit = int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -58719,7 +59003,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa if i+int32(1) >= k { k = i + int32(2) if k > libc.Int32FromInt32(NB)+libc.Int32FromInt32(2) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78596)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79001)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -58762,7 +59046,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v10 = 0 } if cntNew[i] <= v10 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78629)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79034)) goto balance_cleanup } } @@ -58821,7 +59105,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v15 = 0 } if cntNew[i-int32(1)] <= v15 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78673)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79078)) goto balance_cleanup } goto _11 @@ -58853,7 +59137,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) nNew++ if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) != int32(1)+libc.BoolInt32(i == iParentIdx-nxDiv) && *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78706)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79111)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -59083,7 +59367,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa } pSrcEnd = *(*uintptr)(unsafe.Pointer(bp + 112 + 32 + uintptr(k)*8)) if uint64(pCell1) < uint64(pSrcEnd) && uint64(pCell1+uintptr(sz2)) > uint64(pSrcEnd) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78906)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79311)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -59218,6 +59502,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa /* ** Cleanup before returning. */ + goto balance_cleanup balance_cleanup: ; _sqlite3DbFree(tls, uintptr(0), (*(*TCellArray)(unsafe.Pointer(bp + 112))).FapCell) @@ -59328,7 +59613,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && int32((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(79138)) + return _sqlite3CorruptError(tls, int32(79543)) } goto _1 _1: @@ -59401,7 +59686,7 @@ func _balance(tls *libc.TLS, pCur uintptr) (r int32) { /* The page being written is not a root page, and there is currently ** more than one reference to it. This only happens if the page is one ** of its own ancestor pages. Corruption. */ - rc = _sqlite3CorruptError(tls, int32(79198)) + rc = _sqlite3CorruptError(tls, int32(79603)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = int32(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -59560,7 +59845,7 @@ func _btreeOverwriteOverflowCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int return rc } if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1) || (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FisInit != 0 { - rc = _sqlite3CorruptError(tls, int32(79362)) + rc = _sqlite3CorruptError(tls, int32(79767)) } else { if uint32(iOffset)+ovflPageSize < uint32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -59591,7 +59876,7 @@ func _btreeOverwriteCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int32) { nTotal = (*TBtreePayload)(unsafe.Pointer(pX)).FnData + (*TBtreePayload)(unsafe.Pointer(pX)).FnZero /* Total bytes of to write */ pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage /* Page being written */ if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload+uintptr((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd || (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FcellOffset) { - return _sqlite3CorruptError(tls, int32(79390)) + return _sqlite3CorruptError(tls, int32(79795)) } if int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -59676,7 +59961,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** Which can only happen if the SQLITE_NoSchemaError flag was set when ** the schema was loaded. This cannot be asserted though, as a user might ** set the flag, load the schema, and then unset the flag. */ - return _sqlite3CorruptError(tls, int32(79471)) + return _sqlite3CorruptError(tls, int32(79876)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -59768,7 +60053,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79594)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79999)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -59804,7 +60089,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) if *(*int32)(unsafe.Pointer(bp + 4)) == 0 { if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79636)) + return _sqlite3CorruptError(tls, int32(80041)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -59834,10 +60119,10 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry. */ /* clearCell never fails when nLocal==nPayload */ if oldCell < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+uintptr(10) { - return _sqlite3CorruptError(tls, int32(79663)) + return _sqlite3CorruptError(tls, int32(80068)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79666)) + return _sqlite3CorruptError(tls, int32(80071)) } libc.X__builtin___memcpy_chk(tls, oldCell, newCell, uint64(*(*int32)(unsafe.Pointer(bp + 8))), libc.X__builtin_object_size(tls, oldCell, 0)) return SQLITE_OK @@ -59902,6 +60187,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s (*TBtCursor)(unsafe.Pointer(pCur)).FnKey = (*TBtreePayload)(unsafe.Pointer(pX)).FnKey } } + goto end_insert end_insert: ; return *(*int32)(unsafe.Pointer(bp)) @@ -59954,7 +60240,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T nIn = uint32((*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnLocal) aIn = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload if aIn+uintptr(nIn) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79768)) + return _sqlite3CorruptError(tls, int32(80173)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -59976,7 +60262,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T } if nRem > nIn { if aIn+uintptr(nIn)+uintptr(4) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79793)) + return _sqlite3CorruptError(tls, int32(80198)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -60076,21 +60362,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(79889)) + return _sqlite3CorruptError(tls, int32(80294)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(79898)) + return _sqlite3CorruptError(tls, int32(80303)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCellIdx))))< _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80112)) + return _sqlite3CorruptError(tls, int32(80517)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -60335,7 +60621,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags } *(*int32)(unsafe.Pointer(bp + 12)) = _ptrmapGet(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 8)), bp+32, bp+36) if int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80160)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80565)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -60416,14 +60702,14 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int var _ /* rc at bp+8 */ int32 _, _, _, _ = hdr, i, pCell, v2 if pgno > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80250)) + return _sqlite3CorruptError(tls, int32(80655)) } *(*int32)(unsafe.Pointer(bp + 8)) = _getAndInitPage(tls, pBt, pgno, bp, 0) if *(*int32)(unsafe.Pointer(bp + 8)) != 0 { return *(*int32)(unsafe.Pointer(bp + 8)) } if int32((*TBtShared)(unsafe.Pointer(pBt)).FopenFlags)&int32(BTREE_SINGLE) == 0 && _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1)+libc.BoolInt32(pgno == uint32(1)) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80257)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80662)) goto cleardatabasepage_out } hdr = int32((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -60474,6 +60760,7 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _zeroPage(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData + uintptr(hdr))))|int32(PTF_LEAF)) } } + goto cleardatabasepage_out cleardatabasepage_out: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -60559,7 +60846,7 @@ func _btreeDropTable(tls *libc.TLS, p uintptr, iTable TPgno, piMoved uintptr) (r *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) pBt = (*TBtree)(unsafe.Pointer(p)).FpBt if iTable > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80361)) + return _sqlite3CorruptError(tls, int32(80766)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, int32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -60824,7 +61111,7 @@ func _checkAppendMsg(tls *libc.TLS, pCheck uintptr, zFormat uintptr, va uintptr) (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr++ ap = va if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FerrMsg.FnChar != 0 { - Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4551, int32(1)) + Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4615, int32(1)) } if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx != 0 { Xsqlite3_str_appendf(tls, pCheck+72, (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx, libc.VaList(bp+8, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv0, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv2)) @@ -60872,11 +61159,11 @@ func _checkRef(tls *libc.TLS, pCheck uintptr, iPage TPgno) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if iPage > (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnCkPage || iPage == uint32(0) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4553, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4617, libc.VaList(bp+8, iPage)) return int32(1) } if _getPageReferenced(tls, pCheck, iPage) != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4576, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4640, libc.VaList(bp+8, iPage)) return int32(1) } _setPageReferenced(tls, pCheck, iPage) @@ -60902,11 +61189,11 @@ func _checkPtrmap(tls *libc.TLS, pCheck uintptr, iChild TPgno, eType Tu8, iParen if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FusableSize/uint32(4)-uint32(2) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4706, libc.VaList(bp+16, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4770, libc.VaList(bp+16, iPage)) N-- } else { i = 0 @@ -60978,11 +61265,11 @@ func _checkList(tls *libc.TLS, pCheck uintptr, isFreeList int32, iPage TPgno, N } if N != 0 && nErrAtStart == (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr { if isFreeList != 0 { - v2 = __ccgo_ts + 4745 + v2 = __ccgo_ts + 4809 } else { - v2 = __ccgo_ts + 4750 + v2 = __ccgo_ts + 4814 } - _checkAppendMsg(tls, pCheck, __ccgo_ts+4771, libc.VaList(bp+16, v2, expected-N, expected)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4835, libc.VaList(bp+16, v2, expected-N, expected)) } } @@ -61118,12 +61405,12 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr if _checkRef(tls, pCheck, iPage) != 0 { return 0 } - (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4797 + (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4861 (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = iPage v1 = _btreeGetPage(tls, pBt, iPage, bp+8, 0) rc = v1 if v1 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4815, libc.VaList(bp+56, rc)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4879, libc.VaList(bp+56, rc)) if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< usableSize-uint32(4) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4969, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5033, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) doCoverageCheck = 0 goto _4 } pCell = data + uintptr(pc) (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FxParseCell})))(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), pCell, bp+24) if pc+uint32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnSize) > usableSize { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4999, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5063, 0) doCoverageCheck = 0 goto _4 } @@ -61205,7 +61495,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr v5 = libc.BoolInt32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey >= *(*Ti64)(unsafe.Pointer(bp))) } if v5 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+5023, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5087, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) } *(*Ti64)(unsafe.Pointer(bp)) = (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey keyCanBeEqual = 0 /* Only the first key on the page may ==maxKey */ @@ -61228,7 +61518,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr d2 = _checkTreePage(tls, pCheck, uint32(pgno), bp, *(*Ti64)(unsafe.Pointer(bp))) keyCanBeEqual = 0 if d2 != depth { - _checkAppendMsg(tls, pCheck, __ccgo_ts+5047, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5111, 0) depth = d2 } } else { @@ -61305,7 +61595,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr prev = contentOffset - uint32(1) /* Implied first min-heap entry */ for _btreeHeapPull(tls, heap, bp+16) != 0 { if prev&uint32(0xffff) >= *(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+5072, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5136, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) break } else { nFrag = int32(uint32(nFrag) + (*(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) - prev&libc.Uint32FromInt32(0xffff) - libc.Uint32FromInt32(1))) @@ -61319,9 +61609,10 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr ** number of fragmented free bytes within the cell content area. */ if *(*Tu32)(unsafe.Pointer(heap)) == uint32(0) && nFrag != int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+5109, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5173, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) } } + goto end_of_check end_of_check: ; if !(doCoverageCheck != 0) { @@ -61358,16 +61649,16 @@ end_of_check: // ** the unverified btrees. Except, if aRoot[1] is 1, then the freelist // ** checks are still performed. // */ -func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { - bp := tls.Alloc(256) - defer tls.Free(256) +func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, aCnt uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { + bp := tls.Alloc(272) + defer tls.Free(272) var bCkFreelist, bPartial int32 var i, mx, mxInHdr TPgno var pBt uintptr var savedDbFlags Tu64 - var _ /* notUsed at bp+224 */ Ti64 + var _ /* notUsed at bp+232 */ Ti64 var _ /* sCheck at bp+0 */ TIntegrityCk - var _ /* zErr at bp+120 */ [100]int8 + var _ /* zErr at bp+128 */ [100]int8 _, _, _, _, _, _, _ = bCkFreelist, bPartial, i, mx, mxInHdr, pBt, savedDbFlags pBt = (*TBtree)(unsafe.Pointer(p)).FpBt savedDbFlags = (*Tsqlite3)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags @@ -61381,13 +61672,13 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } } _sqlite3BtreeEnter(tls, p) - libc.X__builtin___memset_chk(tls, bp, 0, uint64(120), libc.X__builtin_object_size(tls, bp, 0)) + libc.X__builtin___memset_chk(tls, bp, 0, uint64(128), libc.X__builtin_object_size(tls, bp, 0)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fdb = db (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt = pBt (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage = _btreePagecount(tls, (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr = mxErr - _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+120, int32(100), int32(SQLITE_MAX_LENGTH)) + _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+128, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FerrMsg.FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage == uint32(0) { goto integrity_ck_cleanup @@ -61409,7 +61700,7 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin /* Check the integrity of the freelist */ if bCkFreelist != 0 { - (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 5161 + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 5225 _checkList(tls, bp, int32(1), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+32), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = uintptr(0) } @@ -61433,11 +61724,11 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } mxInHdr = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+52) if mx != mxInHdr { - _checkAppendMsg(tls, bp, __ccgo_ts+5172, libc.VaList(bp+240, mx, mxInHdr)) + _checkAppendMsg(tls, bp, __ccgo_ts+5236, libc.VaList(bp+248, mx, mxInHdr)) } } else { if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+64) != uint32(0) { - _checkAppendMsg(tls, bp, __ccgo_ts+5217, 0) + _checkAppendMsg(tls, bp, __ccgo_ts+5281, 0) } } } @@ -61447,14 +61738,15 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin if !(int32(i) < nRoot && (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr != 0) { break } - if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) == uint32(0) { - goto _2 - } - if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { - _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnRow = 0 + if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) != 0 { + if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { + _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + } + (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fv0 = *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) + _checkTreePage(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), bp+232, libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)< nRec || iHdr >= *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84303)) + iHdr = uint32(uint8(v1)) + if *(*Tu32)(unsafe.Pointer(bp + 4)) > uint32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84745)) } - iField = *(*int32)(unsafe.Pointer(bp + 4)) + iField = int64(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 for { if !(i <= iCol) { @@ -64441,19 +64768,19 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } else { v3 = int32(_sqlite3GetVarint32(tls, a+uintptr(iHdr), bp)) } - iHdr += int32(uint8(v3)) - if iHdr > *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84309)) + iHdr += uint32(uint8(v3)) + if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84751)) } - szField = int32(_sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp)))) - iField += szField + szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) + iField += int64(szField) goto _2 _2: ; i++ } - if iField > nRec { - return _sqlite3CorruptError(tls, int32(84315)) + if iField > int64(nRec) { + return _sqlite3CorruptError(tls, int32(84757)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -64463,7 +64790,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC return int32(SQLITE_NOMEM) } } - _sqlite3VdbeSerialGet(tls, a+uintptr(iField-szField), *(*Tu32)(unsafe.Pointer(bp)), pMem) + _sqlite3VdbeSerialGet(tls, a+uintptr(iField-int64(szField)), *(*Tu32)(unsafe.Pointer(bp)), pMem) (*TMem)(unsafe.Pointer(pMem)).Fenc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc return SQLITE_OK } @@ -64882,6 +65209,7 @@ func _sqlite3VdbeMultiLoad(tls *libc.TLS, p uintptr, iDest int32, zTypes uintptr i++ } _sqlite3VdbeAddOp2(tls, p, int32(OP_ResultRow), iDest, i) + goto skip_op_resultrow skip_op_resultrow: ; _ = ap @@ -65250,6 +65578,9 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { /* True because of tag-20230419-1 */ (*TOp)(unsafe.Pointer(pOp)).Fp2 = *(*int32)(unsafe.Pointer(aLabel + uintptr(^(*TOp)(unsafe.Pointer(pOp)).Fp2)*4)) } + /* OPFLG_JUMP opcodes never have P2==0, though OPFLG_JUMP0 opcodes + ** might */ + /* Jumps never go off the end of the bytecode array */ break } /* The mkopcodeh.tcl script has so arranged things that the only @@ -65258,6 +65589,7 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { } pOp -= 24 } + goto resolve_p2_values_loop_exit resolve_p2_values_loop_exit: ; if aLabel != 0 { @@ -65761,7 +66093,7 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { switch int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) { case -int32(8): pKeyInfo = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5429, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5493, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) j = 0 for { if !(j < int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)) { @@ -65771,66 +66103,66 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { if pColl != 0 { v2 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } zColl = v2 - if libc.Xstrcmp(tls, zColl, __ccgo_ts+5434) == 0 { - zColl = __ccgo_ts + 5441 + if libc.Xstrcmp(tls, zColl, __ccgo_ts+5498) == 0 { + zColl = __ccgo_ts + 5505 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_DESC) != 0 { - v3 = __ccgo_ts + 5422 + v3 = __ccgo_ts + 5486 } else { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_BIGNULL) != 0 { - v4 = __ccgo_ts + 5443 + v4 = __ccgo_ts + 5507 } else { - v4 = __ccgo_ts + 1650 + v4 = __ccgo_ts + 1664 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5446, libc.VaList(bp+40, v3, v4, zColl)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5510, libc.VaList(bp+40, v3, v4, zColl)) goto _1 _1: ; j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5454, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5518, int32(1)) case -int32(2): pColl1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5470, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5534, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) case -int32(7): pDef = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5479, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5543, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) case -int32(15): pDef1 = (*Tsqlite3_context)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpFunc - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5479, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5543, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) case -int32(13): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1406, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1425, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(3): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5486, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5550, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) case -int32(12): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1373, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1392, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(10): pMem = *(*uintptr)(unsafe.Pointer(pOp + 16)) if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Str) != 0 { zP4 = (*TMem)(unsafe.Pointer(pMem)).Fz } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1406, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1425, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1373, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1392, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Null) != 0 { - zP4 = __ccgo_ts + 1651 + zP4 = __ccgo_ts + 1665 } else { - zP4 = __ccgo_ts + 5489 + zP4 = __ccgo_ts + 5553 } } } } case -int32(11): pVtab = (*TVTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5496, libc.VaList(bp+40, pVtab)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5560, libc.VaList(bp+40, pVtab)) case -int32(14): ai = *(*uintptr)(unsafe.Pointer(pOp + 16)) n = *(*Tu32)(unsafe.Pointer(ai)) /* The first element of an INTARRAY is always the @@ -65845,15 +66177,15 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } else { v6 = int32(',') } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5504, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5568, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) goto _5 _5: ; i++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5509, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5573, int32(1)) case -int32(4): - zP4 = __ccgo_ts + 5511 + zP4 = __ccgo_ts + 5575 case -int32(5): zP4 = (*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FzName default: @@ -65869,10 +66201,10 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } var _encnames = [4]uintptr{ - 0: __ccgo_ts + 5456, - 1: __ccgo_ts + 5458, - 2: __ccgo_ts + 5460, - 3: __ccgo_ts + 5465, + 0: __ccgo_ts + 5520, + 1: __ccgo_ts + 5522, + 2: __ccgo_ts + 5524, + 3: __ccgo_ts + 5529, } // C documentation @@ -66823,7 +67155,7 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { retryCount = 0 /* Select a super-journal file name */ nMainFile = _sqlite3Strlen30(tls, zMainFile) - zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5519, libc.VaList(bp+24, 0, zMainFile, 0)) + zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5583, libc.VaList(bp+24, 0, zMainFile, 0)) if zSuper == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -66831,18 +67163,18 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { for cond := true; cond; cond = rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 8)) != 0 { if retryCount != 0 { if retryCount > int32(100) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5531, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5595, libc.VaList(bp+24, zSuper)) _sqlite3OsDelete(tls, pVfs, zSuper, 0) break } else { if retryCount == int32(1) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5545, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5609, libc.VaList(bp+24, zSuper)) } } } retryCount++ Xsqlite3_randomness(tls, int32(4), bp+12) - Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5560, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) + Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5624, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) /* The antipenultimate character of the super-journal name must ** be "9" to avoid name collisions when using 8+3 filenames. */ rc = _sqlite3OsAccess(tls, pVfs, zSuper, SQLITE_ACCESS_EXISTS, bp+8) @@ -67073,7 +67405,7 @@ func _sqlite3VdbeCheckFk(tls *libc.TLS, p uintptr, deferred int32) (r int32) { if deferred != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredCons+(*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons > 0 || !(deferred != 0) && (*TVdbe)(unsafe.Pointer(p)).FnFkConstraint > 0 { (*TVdbe)(unsafe.Pointer(p)).Frc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(3)< y { return +libc.Int32FromInt32(1) } - s = float64(i) - if s < r { + if float64(i) < r { v2 = -int32(1) } else { - v2 = libc.BoolInt32(s > r) + v2 = libc.BoolInt32(float64(i) > r) } return v2 } @@ -68382,7 +68713,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89131))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89580))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -68472,7 +68803,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || int32((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89212))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89661))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -68507,7 +68838,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = int32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+uint32(nStr) > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89242))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89691))) return 0 /* Corruption */ } else { if int32((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -68561,7 +68892,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += uint32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89293))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89742))) return 0 /* Corrupt index */ } } @@ -68675,6 +69006,7 @@ func _vdbeRecordCompareString(tls *libc.TLS, nKey1 int32, pKey1 uintptr, pPKey2 _, _, _, _, _, _ = aKey1, nCmp, nStr, res, szHdr, v1 aKey1 = pKey1 *(*int32)(unsafe.Pointer(bp)) = int32(int8(*(*Tu8)(unsafe.Pointer(aKey1 + 1)))) + goto vrcs_restart vrcs_restart: ; if *(*int32)(unsafe.Pointer(bp)) < int32(12) { @@ -68692,7 +69024,7 @@ vrcs_restart: szHdr = int32(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89456))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89905))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -68840,10 +69172,11 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr return SQLITE_OK /* Jump here if database corruption is detected after m has been ** allocated. Free the m object and return SQLITE_CORRUPT. */ + goto idx_rowid_corruption idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(89614)) + return _sqlite3CorruptError(tls, int32(90063)) } // C documentation @@ -68874,7 +69207,7 @@ func _sqlite3VdbeIdxKeyCompare(tls *libc.TLS, db uintptr, pC uintptr, pUnpacked ** that btreeParseCellPtr() and sqlite3GetVarint32() are implemented */ if nCellKey <= 0 || nCellKey > int64(0x7fffffff) { *(*int32)(unsafe.Pointer(res)) = 0 - return _sqlite3CorruptError(tls, int32(89647)) + return _sqlite3CorruptError(tls, int32(90096)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(nCellKey), bp) @@ -69025,15 +69358,15 @@ func _sqlite3NotPureFunc(tls *libc.TLS, pCtx uintptr) (r int32) { pOp = (*TVdbe)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe)).FaOp + uintptr((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FiOp)*24 if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_PureFunc) { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_IsCheck) != 0 { - zContext = __ccgo_ts + 5603 + zContext = __ccgo_ts + 5667 } else { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_GenCol) != 0 { - zContext = __ccgo_ts + 5622 + zContext = __ccgo_ts + 5686 } else { - zContext = __ccgo_ts + 5641 + zContext = __ccgo_ts + 5705 } } - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5650, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5714, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) return 0 @@ -69207,7 +69540,7 @@ func Xsqlite3_expired(tls *libc.TLS, pStmt uintptr) (r int32) { // */ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { if (*TVdbe)(unsafe.Pointer(p)).Fdb == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5686, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5750, 0) return int32(1) } else { return 0 @@ -69217,7 +69550,7 @@ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { func _vdbeSafetyNotNull(tls *libc.TLS, p uintptr) (r int32) { if p == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5731, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5795, 0) return int32(1) } else { return _vdbeSafety(tls, p) @@ -69275,7 +69608,7 @@ func Xsqlite3_finalize(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt db = (*TVdbe)(unsafe.Pointer(v)).Fdb if _vdbeSafety(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90035)) + return _sqlite3MisuseError(tls, int32(90484)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -69778,7 +70111,7 @@ func Xsqlite3_result_error_code(tls *libc.TLS, pCtx uintptr, errCode int32) { // /* Force an SQLITE_TOOBIG error. */ func Xsqlite3_result_error_toobig(tls *libc.TLS, pCtx uintptr) { (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = int32(SQLITE_TOOBIG) - _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5771, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) + _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5835, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) } // C documentation @@ -69857,6 +70190,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { _, _ = db, rc db = (*TVdbe)(unsafe.Pointer(p)).Fdb if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_RUN_STATE) { + goto restart_step restart_step: ; if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) == int32(VDBE_READY_STATE) { @@ -69954,6 +70288,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { rc = (*TVdbe)(unsafe.Pointer(p)).Frc } } + goto end_of_step end_of_step: ; /* There are only a limited number of result codes allowed from the @@ -69977,7 +70312,7 @@ func Xsqlite3_step(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt /* the prepared statement */ cnt = 0 /* The database connection */ if _vdbeSafetyNotNull(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90829)) + return _sqlite3MisuseError(tls, int32(91278)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -70107,7 +70442,7 @@ func _valueFromValueList(tls *libc.TLS, pVal uintptr, ppOut uintptr, bNext int32 _, _, _, _, _, _, _ = iOff, pOut, pRhs, rc, sz, zBuf, v1 *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) if pVal == uintptr(0) { - return _sqlite3MisuseError(tls, int32(90950)) + return _sqlite3MisuseError(tls, int32(91399)) } if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -70329,6 +70664,7 @@ func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, (*TAuxData)(unsafe.Pointer(pAuxData)).FpAux = pAux (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = xDelete return + goto failed failed: ; if xDelete != 0 { @@ -70566,18 +70902,18 @@ func Xsqlite3_column_type(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { // ** Column names appropriate for EXPLAIN or EXPLAIN QUERY PLAN. // */ var _azExplainColNames8 = [12]uintptr{ - 0: __ccgo_ts + 5794, - 1: __ccgo_ts + 5799, - 2: __ccgo_ts + 5806, - 3: __ccgo_ts + 5809, - 4: __ccgo_ts + 5812, - 5: __ccgo_ts + 5815, - 6: __ccgo_ts + 5818, - 7: __ccgo_ts + 5821, - 8: __ccgo_ts + 5829, - 9: __ccgo_ts + 5832, - 10: __ccgo_ts + 5839, - 11: __ccgo_ts + 5847, + 0: __ccgo_ts + 5858, + 1: __ccgo_ts + 5863, + 2: __ccgo_ts + 5870, + 3: __ccgo_ts + 5873, + 4: __ccgo_ts + 5876, + 5: __ccgo_ts + 5879, + 6: __ccgo_ts + 5882, + 7: __ccgo_ts + 5885, + 8: __ccgo_ts + 5893, + 9: __ccgo_ts + 5896, + 10: __ccgo_ts + 5903, + 11: __ccgo_ts + 5911, } var _azExplainColNames16data = [60]Tu16{ 0: uint16('a'), @@ -70711,6 +71047,7 @@ func _columnName(tls *libc.TLS, pStmt uintptr, N int32, useUtf16 int32, useType ret = uintptr(0) } } + goto columnName_end columnName_end: ; Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -70820,14 +71157,14 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { var v2 bool _, _, _ = pVar, v1, v2 if _vdbeSafetyNotNull(tls, p) != 0 { - return _sqlite3MisuseError(tls, int32(91554)) + return _sqlite3MisuseError(tls, int32(92003)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(91558))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(92007))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5854, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(91562)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5918, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) + return _sqlite3MisuseError(tls, int32(92011)) } if i >= uint32((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -71391,7 +71728,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp /* Test that this call is being made from within an SQLITE_DELETE or ** SQLITE_UPDATE pre-update callback, and that iIdx is within range. */ if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_INSERT) { - rc = _sqlite3MisuseError(tls, int32(92098)) + rc = _sqlite3MisuseError(tls, int32(92547)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -71437,6 +71774,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } } + goto preupdate_old_out preupdate_old_out: ; _sqlite3Error(tls, db, rc) @@ -71520,7 +71858,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp rc = SQLITE_OK p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(92221)) + rc = _sqlite3MisuseError(tls, int32(92670)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -71586,6 +71924,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } *(*uintptr)(unsafe.Pointer(ppValue)) = pMem + goto preupdate_new_out preupdate_new_out: ; _sqlite3Error(tls, db, rc) @@ -71693,7 +72032,7 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr break } } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5894, int32(3)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5958, int32(3)) Xsqlite3_str_append(tls, bp+8, zStart, int32(int64(zRawSql)-int64(zStart))) } } else { @@ -71725,13 +72064,13 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr nextIndex = v2 pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(*(*int32)(unsafe.Pointer(bp))-int32(1))*56 if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Null) != 0 { - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1651, int32(4)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1665, int32(4)) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1406, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1425, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5415, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5479, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Str) != 0 { /* Number of bytes of the string text to include in output */ enc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc @@ -71746,28 +72085,28 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr pVar = bp + 40 } nOut = (*TMem)(unsafe.Pointer(pVar)).Fn - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5898, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5962, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) if int32(enc) != int32(SQLITE_UTF8) { _sqlite3VdbeMemRelease(tls, bp+40) } } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Zero) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5905, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5969, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) } else { /* Number of bytes of the blob to include in output */ - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5918, int32(2)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5982, int32(2)) nOut1 = (*TMem)(unsafe.Pointer(pVar)).Fn i = 0 for { if !(i < nOut1) { break } - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5921, libc.VaList(bp+104, int32(*(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5985, libc.VaList(bp+104, int32(*(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) goto _3 _3: ; i++ } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5926, int32(1)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5990, int32(1)) } } } @@ -72367,7 +72706,7 @@ var _azTypes = [5]uintptr{ 1: __ccgo_ts + 1146, 2: __ccgo_ts + 1151, 3: __ccgo_ts + 1129, - 4: __ccgo_ts + 1651, + 4: __ccgo_ts + 1665, } // C documentation @@ -72381,7 +72720,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { defer tls.Free(976) var aCol, aMem, aOffset, aOp, aPermute, aRoot, apArg, apArg1, db, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pnErr, t1, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v240, v241, v242, v250, v251, v252, v253, v255, v263, v278, v279, v286, v288, v297, v298, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 uintptr var affinity int8 - var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 + var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, savedAnalysisLimit, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 var colCacheCtr, iAddr, iMap, iPrior, idx, len11, n3, p22, p23, serialType, serial_type, v213, v214, v216, v221, v222 Tu32 var encoding, isWriteLock, mTrace, op, p5, resetSchemaOnFault, vtabOnConflict, v225 Tu8 var flags1, flags11, flags2, flags3, flags31, newType, nullFlag, type1, type2, typeMask, v190 Tu16 @@ -72438,7 +72777,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { var _ /* z at bp+688 */ uintptr var _ /* zErr at bp+632 */ uintptr var _ /* zErr at bp+792 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, savedAnalysisLimit, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 aOp = (*TVdbe)(unsafe.Pointer(p)).FaOp /* Copy of p->aOp */ pOp = aOp /* Current operation */ rc = SQLITE_OK /* Value to return */ @@ -72708,7 +73047,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto _109 case int32(OP_SeekEnd): goto _110 - case int32(OP_IfSmaller): + case int32(OP_IfSizeBetween): goto _111 case int32(OP_Sort): goto _112 @@ -72910,6 +73249,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { */ _2: ; /* jump */ + goto jump_to_p2_and_check_for_interrupt jump_to_p2_and_check_for_interrupt: ; pOp = aOp + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp2-int32(1))*24 @@ -72923,6 +73263,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** way for performance, to avoid having to run the interrupt and progress ** checks on every opcode. This helps sqlite3_step() to run about 1.5% ** faster according to "valgrind --tool=cachegrind" */ + goto check_for_interrupt check_for_interrupt: ; if libc.AtomicLoadPInt32(db+432) != 0 { @@ -73000,7 +73341,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: EndCoroutine */ _5: - ; /* jump */ + ; /* jump0 */ pOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 *(*Ti64)(unsafe.Pointer(pOut)) = int64((*TOp)(unsafe.Pointer(pOp)).Fp3 - int32(1)) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Int) @@ -73009,6 +73350,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* Most jump operations do a goto to this spot in order to update ** the pOp pointer. */ + goto jump_to_p2 jump_to_p2: ; /* There are never any jumps to instruction 0 */ @@ -73019,7 +73361,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** ** The instruction at the address in register P1 is a Yield. ** Jump to the P2 parameter of that Yield. - ** After the jump, register P1 becomes undefined. + ** After the jump, the value register P1 is left with a value + ** such that subsequent OP_Yields go back to the this same + ** OP_EndCoroutine instruction. ** ** See also: InitCoroutine */ @@ -73027,8 +73371,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 pCaller = aOp + uintptr(*(*Ti64)(unsafe.Pointer(pIn1)))*24 + *(*Ti64)(unsafe.Pointer(pIn1)) = int64(int32((int64(pOp)-int64((*TVdbe)(unsafe.Pointer(p)).FaOp))/24) - int32(1)) pOp = aOp + uintptr((*TVdbeOp)(unsafe.Pointer(pCaller)).Fp2-int32(1))*24 - (*TMem)(unsafe.Pointer(pIn1)).Fflags = uint16(MEM_Undefined) goto _187 /* Opcode: Yield P1 P2 * * * ** @@ -73125,15 +73469,15 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TVdbe)(unsafe.Pointer(p)).FerrorAction = uint8((*TOp)(unsafe.Pointer(pOp)).Fp2) if (*TVdbe)(unsafe.Pointer(p)).Frc != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+5962, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) + _sqlite3VdbeError(tls, p, __ccgo_ts+6026, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) if *(*uintptr)(unsafe.Pointer(pOp + 16)) != 0 { - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5983, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+6047, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } } else { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } pcx = int32((int64(pOp) - int64(aOp)) / 24) - Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5990, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) + Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+6054, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) } rc = _sqlite3VdbeHalt(tls, p) if rc == int32(SQLITE_BUSY) { @@ -73325,13 +73669,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } (*TMem)(unsafe.Pointer(pOut)).Fenc = encoding goto _187 - /* Opcode: Variable P1 P2 * P4 * - ** Synopsis: r[P2]=parameter(P1,P4) + /* Opcode: Variable P1 P2 * * * + ** Synopsis: r[P2]=parameter(P1) ** ** Transfer the values of bound parameter P1 into register P2 - ** - ** If the parameter is named, then its name appears in P4. - ** The P4 value is used by sqlite3_bind_parameter_name(). */ _19: ; /* Value being transferred */ @@ -73622,6 +73963,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(int32(type1)&int32(type2)&int32(MEM_Int) != 0) { goto _200 } + goto int_math int_math: ; iA = *(*Ti64)(unsafe.Pointer(pIn1)) @@ -73674,6 +74016,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if int32(type1)&int32(type2)&int32(MEM_Int) != 0 { goto int_math } + goto fp_math fp_math: ; rA = _sqlite3VdbeRealValue(tls, pIn1) @@ -73713,6 +74056,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _201: ; goto _187 + goto arithmetic_result_is_null arithmetic_result_is_null: ; _sqlite3VdbeMemSetNull(tls, pOut) @@ -73851,7 +74195,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** raise an SQLITE_MISMATCH exception. */ _38: - ; /* jump, in1 */ + ; /* jump0, in1 */ pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 if int32((*TMem)(unsafe.Pointer(pIn1)).Fflags)&int32(MEM_Int) == 0 { _applyAffinity(tls, pIn1, int8(SQLITE_AFF_NUMERIC), encoding) @@ -74580,6 +74924,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* PseudoTable input register */ pC3 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) p22 = uint32((*TOp)(unsafe.Pointer(pOp)).Fp2) + goto op_column_restart op_column_restart: ; aOffset = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaOffset @@ -74706,6 +75051,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { zData = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaRow } /* Fill in pC->aType[i] and aOffset[i] values through the p2-th field. */ + goto op_column_read_header op_column_read_header: ; i1 = int32((*TVdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed) @@ -74843,16 +75189,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } } + goto op_column_out op_column_out: ; goto _187 + goto op_column_corrupt op_column_corrupt: ; if (*(*TOp)(unsafe.Pointer(aOp))).Fp3 > 0 { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(95863)) + rc = _sqlite3CorruptError(tls, int32(96311)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -74952,9 +75300,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { i2++ } goto _187 + goto vdbe_type_error vdbe_type_error: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+6014, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6078, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(12)< 0 && p12 == int32(SAVEPOINT_RELEASE) { /* It is not possible to release (commit) a savepoint if there are ** active write statements. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+6128, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6192, 0) rc = int32(SQLITE_BUSY) } else { /* Determine whether or not this is a transaction savepoint. If so, @@ -75550,7 +75899,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If this instruction implements a COMMIT and other VMs are writing ** return an error indicating that the other VMs must complete first. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+6182, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6246, 0) rc = int32(SQLITE_BUSY) goto abort_due_to_error } else { @@ -75580,12 +75929,12 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto vdbe_return } else { if !(desiredAutoCommit != 0) { - v250 = __ccgo_ts + 6237 + v250 = __ccgo_ts + 6301 } else { if iRollback != 0 { - v251 = __ccgo_ts + 6285 + v251 = __ccgo_ts + 6349 } else { - v251 = __ccgo_ts + 6328 + v251 = __ccgo_ts + 6392 } v250 = v251 } @@ -75677,7 +76026,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** SQL statement was prepared. */ _sqlite3DbFree(tls, db, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg) - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6369) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6433) /* If the schema-cookie from the database file matches the cookie ** stored with the in-memory representation of the schema, do ** not reload the schema from the database file. @@ -75915,6 +76264,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** and report database corruption if they were not, but this check has ** since moved into the btree layer. */ (*TVdbeCursor)(unsafe.Pointer(pCur)).FisTable = libc.BoolUint8(int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) != -int32(8)) + goto open_cursor_set_hints open_cursor_set_hints: ; _sqlite3BtreeCursorHintFlags(tls, *(*uintptr)(unsafe.Pointer(pCur + 48)), uint32(int32((*TOp)(unsafe.Pointer(pOp)).Fp5)&(libc.Int32FromInt32(OPFLAG_BULKCSR)|libc.Int32FromInt32(OPFLAG_SEEKEQ)))) @@ -75994,7 +76344,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** form sqlite3BtreeInsert() where the length of the data is zero. */ /* Only used when number of columns is zero */ (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fn = 0 - (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1650 + (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1664 } pCx1 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) if pCx1 != 0 && !(int32(TBool(*(*uint8)(unsafe.Pointer(pCx1 + 8))&0x8>>3)) != 0) && (*TOp)(unsafe.Pointer(pOp)).Fp2 <= int32((*TVdbeCursor)(unsafe.Pointer(pCx1)).FnField) { @@ -76099,7 +76449,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** is the only cursor opcode that works with a pseudo-table. ** ** P3 is the number of fields in the records that will be stored by - ** the pseudo-table. + ** the pseudo-table. If P2 is 0 or negative then the pseudo-cursor + ** will return NULL for every column. */ _83: ; @@ -76217,11 +76568,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: Found, NotFound, SeekGt, SeekGe, SeekLt */ _88: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _87: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _86: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _85: ; /* Only interested in == results */ pC5 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) @@ -76351,6 +76702,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 112)) = _sqlite3BtreeEof(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48))) } } + goto seek_not_found seek_not_found: ; if *(*int32)(unsafe.Pointer(bp + 112)) != 0 { @@ -76456,6 +76808,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(*(*int32)(unsafe.Pointer(bp + 160)) > 0 && int32((*TOp)(unsafe.Pointer(pOp)).Fp5) == 0) { goto _259 } + goto seekscan_search_fail seekscan_search_fail: ; /* Jump to SeekGE.P2, ending the loop */ @@ -76768,6 +77121,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* jump, in3, ncycle */ pIn3 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 iKey1 = uint64(*(*Ti64)(unsafe.Pointer(pIn3))) + goto notExistsWithKey notExistsWithKey: ; pC10 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) @@ -76781,7 +77135,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TVdbeCursor)(unsafe.Pointer(pC10)).FseekResult = *(*int32)(unsafe.Pointer(bp + 248)) if *(*int32)(unsafe.Pointer(bp + 248)) != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp2 == 0 { - rc = _sqlite3CorruptError(tls, int32(98111)) + rc = _sqlite3CorruptError(tls, int32(98565)) } else { goto jump_to_p2 } @@ -77381,10 +77735,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } goto _187 - /* Opcode: IfSmaller P1 P2 P3 * * + /* Opcode: IfSizeBetween P1 P2 P3 P4 * ** - ** Estimate the number of rows in the table P1. Jump to P2 if that - ** estimate is less than approximately 2**(0.1*P3). + ** Let N be the approximate number of rows in the table or index + ** with cursor P1 and let X be 10*log2(N) if N is positive or -1 + ** if N is zero. + ** + ** Jump to P2 if X is in between P3 and P4, inclusive. */ _111: ; @@ -77394,12 +77751,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { goto abort_due_to_error } - if *(*int32)(unsafe.Pointer(bp + 396)) == 0 { + if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { + sz = int64(-int32(1)) /* -Infinity encoding */ + } else { sz = _sqlite3BtreeRowCountEst(tls, pCrsr5) - if sz >= 0 && int32(_sqlite3LogEst(tls, uint64(sz))) < (*TOp)(unsafe.Pointer(pOp)).Fp3 { - *(*int32)(unsafe.Pointer(bp + 396)) = int32(1) - } + sz = int64(_sqlite3LogEst(tls, uint64(sz))) } + *(*int32)(unsafe.Pointer(bp + 396)) = libc.BoolInt32(sz >= int64((*TOp)(unsafe.Pointer(pOp)).Fp3) && sz <= int64((*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { goto jump_to_p2 } @@ -77536,6 +77894,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* jump, ncycle */ pC22 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) rc = _sqlite3BtreeNext(tls, *(*uintptr)(unsafe.Pointer(pC22 + 48)), (*TOp)(unsafe.Pointer(pOp)).Fp3) + goto next_tail next_tail: ; (*TVdbeCursor)(unsafe.Pointer(pC22)).FcacheStatus = uint32(CACHE_STALE) @@ -77668,7 +78027,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } else { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 && !(_sqlite3WritableSchema(tls, db) != 0) { - rc = _sqlite3ReportError(tls, libc.Int32FromInt32(SQLITE_CORRUPT)|libc.Int32FromInt32(3)< int64(0x7fffffff) { - rc = _sqlite3CorruptError(tls, int32(99398)) + rc = _sqlite3CorruptError(tls, int32(99862)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -77965,11 +78324,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } *(*Ti64)(unsafe.Pointer(pOut)) = int64(*(*TPgno)(unsafe.Pointer(bp + 624))) goto _187 - /* Opcode: SqlExec * * * P4 * + /* Opcode: SqlExec P1 P2 * P4 * ** ** Run the SQL statement or statements specified in the P4 string. - ** Disable Auth and Trace callbacks while those statements are running if - ** P1 is true. + ** + ** The P1 parameter is a bitmask of options: + ** + ** 0x0001 Disable Auth and Trace callbacks while the statements + ** in P4 are running. + ** + ** 0x0002 Set db->nAnalysisLimit to P2 while the statements in + ** P4 are running. + ** */ _132: ; @@ -77977,16 +78343,21 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*uintptr)(unsafe.Pointer(bp + 632)) = uintptr(0) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth mTrace = (*Tsqlite3)(unsafe.Pointer(db)).FmTrace - if (*TOp)(unsafe.Pointer(pOp)).Fp1 != 0 { + savedAnalysisLimit = (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0001) != 0 { (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(0) } + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0002) != 0 { + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = (*TOp)(unsafe.Pointer(pOp)).Fp2 + } rc = Xsqlite3_exec(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16)), uintptr(0), uintptr(0), bp+632) (*Tsqlite3)(unsafe.Pointer(db)).FnSqlExec-- (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = mTrace + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = savedAnalysisLimit if *(*uintptr)(unsafe.Pointer(bp + 632)) != 0 || rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 632))) if rc == int32(SQLITE_NOMEM) { goto no_mem @@ -78017,13 +78388,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_SchemaChange) libc.SetBitFieldPtr16Uint32(p+200, libc.Uint32FromInt32(0), 0, 0x3) } else { - zSchema = __ccgo_ts + 6414 + zSchema = __ccgo_ts + 6478 (*(*TInitData)(unsafe.Pointer(bp + 640))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 640))).FiDb = iDb3 (*(*TInitData)(unsafe.Pointer(bp + 640))).FpzErrMsg = p + 168 (*(*TInitData)(unsafe.Pointer(bp + 640))).FmInitFlags = uint32(0) (*(*TInitData)(unsafe.Pointer(bp + 640))).FmxPage = _sqlite3BtreeLastPage(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6428, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6492, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -78038,7 +78409,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* The OP_ParseSchema opcode with a non-NULL P4 argument should parse ** at least one SQL statement. Any less than that indicates that ** the sqlite_schema table is corrupt. */ - rc = _sqlite3CorruptError(tls, int32(99678)) + rc = _sqlite3CorruptError(tls, int32(100155)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -78104,11 +78475,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* Opcode: IntegrityCk P1 P2 P3 P4 P5 ** ** Do an analysis of the currently open database. Store in - ** register P1 the text of an error message describing any problems. - ** If no problems are found, store a NULL in register P1. + ** register (P1+1) the text of an error message describing any problems. + ** If no problems are found, store a NULL in register (P1+1). ** - ** The register P3 contains one less than the maximum number of allowed errors. - ** At most reg(P3) errors will be reported. + ** The register (P1) contains one less than the maximum number of allowed + ** errors. At most reg(P1) errors will be reported. ** In other words, the analysis stops as soon as reg(P1) errors are ** seen. Reg(P1) is updated with the number of errors remaining. ** @@ -78124,9 +78495,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* Register keeping track of errors remaining */ nRoot = (*TOp)(unsafe.Pointer(pOp)).Fp2 aRoot = *(*uintptr)(unsafe.Pointer(pOp + 16)) - pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 - pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 - rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) + pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 + pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1+int32(1))*56 + rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, aMem+uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) _sqlite3VdbeMemSetNull(tls, pIn1) if *(*int32)(unsafe.Pointer(bp + 680)) == 0 { } else { @@ -78232,7 +78603,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** P1 contains the address of the memory cell that contains the first memory ** cell in an array of values used as arguments to the sub-program. P2 ** contains the address to jump to if the sub-program throws an IGNORE - ** exception using the RAISE() function. Register P3 contains the address + ** exception using the RAISE() function. P2 might be zero, if there is + ** no possibility that an IGNORE exception will be raised. + ** Register P3 contains the address ** of a memory cell in this (the parent) VM that is used to allocate the ** memory required by the sub-vdbe at runtime. ** @@ -78273,7 +78646,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } if (*TVdbe)(unsafe.Pointer(p)).FnFrame >= *(*int32)(unsafe.Pointer(db + 136 + 10*4)) { rc = int32(SQLITE_ERROR) - _sqlite3VdbeError(tls, p, __ccgo_ts+6471, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6535, 0) goto abort_due_to_error } /* Register pRt is used to store the memory required to save the state @@ -78637,7 +79010,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* IMP: R-24505-23230 */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError } if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FskipFlag != 0 { @@ -78693,7 +79066,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3VdbeMemFinalize(tls, pMem3, *(*uintptr)(unsafe.Pointer(pOp + 16))) } if rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) goto abort_due_to_error } _sqlite3VdbeChangeEncoding(tls, pMem3, int32(encoding)) @@ -78772,11 +79145,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeRead > int32(1) { rc = int32(SQLITE_ERROR) if eNew == int32(PAGER_JOURNALMODE_WAL) { - v286 = __ccgo_ts + 6508 + v286 = __ccgo_ts + 6572 } else { - v286 = __ccgo_ts + 6513 + v286 = __ccgo_ts + 6577 } - _sqlite3VdbeError(tls, p, __ccgo_ts+6520, libc.VaList(bp+944, v286)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6584, libc.VaList(bp+944, v286)) goto abort_due_to_error } else { if eOld == int32(PAGER_JOURNALMODE_WAL) { @@ -78929,7 +79302,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { if rc&int32(0xFF) == int32(SQLITE_LOCKED) { z1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - _sqlite3VdbeError(tls, p, __ccgo_ts+6572, libc.VaList(bp+944, z1)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6636, libc.VaList(bp+944, z1)) } goto abort_due_to_error } @@ -79091,7 +79464,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TValueList)(unsafe.Pointer(pRhs)).FpOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 pOut = _out2Prerelease(tls, p, pOp) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6601, __ccgo_fp(_sqlite3VdbeValueListFree)) + _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6665, __ccgo_fp(_sqlite3VdbeValueListFree)) goto _187 /* Opcode: VFilter P1 P2 P3 P4 * ** Synopsis: iplan=r[P3] zplan='P4' @@ -79187,7 +79560,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_module)(unsafe.Pointer(pModule4)).FxColumn})))(tls, *(*uintptr)(unsafe.Pointer(pCur5 + 48)), bp+800, (*TOp)(unsafe.Pointer(pOp)).Fp2) _sqlite3VtabImportErrmsg(tls, p, pVtab4) if (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) rc = (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError } _sqlite3VdbeChangeEncoding(tls, pDest2, int32(encoding)) @@ -79441,7 +79814,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If the function returned an error, throw an exception */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError } _sqlite3VdbeDeleteAuxData(tls, db, p+296, (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FiOp, (*TOp)(unsafe.Pointer(pOp)).Fp1) @@ -79592,7 +79965,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { Xsqlite3_free(tls, z2) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeExec > int32(1) { - z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6611, libc.VaList(bp+944, zTrace)) + z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6675, libc.VaList(bp+944, zTrace)) (*(*func(*libc.TLS, Tu32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*Tsqlite3)(unsafe.Pointer(db)).Ftrace))})))(tls, uint32(SQLITE_TRACE_STMT), (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg, p, z3) _sqlite3DbFree(tls, db, z3) } else { @@ -79657,21 +80030,22 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If we reach this point, it means that execution is finished with ** an error of some kind. */ + goto abort_due_to_error abort_due_to_error: ; if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)<= nProgressLimit && (*Tsqlite3)(unsafe.Pointer(db)).FxProgress != uintptr(0) { @@ -79706,22 +80081,25 @@ vdbe_return: /* Jump to here if a string or blob larger than SQLITE_MAX_LENGTH ** is encountered. */ + goto too_big too_big: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5771, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5835, 0) rc = int32(SQLITE_TOOBIG) goto abort_due_to_error /* Jump to here if a malloc() fails. */ + goto no_mem no_mem: ; _sqlite3OomFault(tls, db) - _sqlite3VdbeError(tls, p, __ccgo_ts+1620, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+1634, 0) rc = int32(SQLITE_NOMEM) goto abort_due_to_error /* Jump to here if the sqlite3_interrupt() API sets the interrupt ** flag. */ + goto abort_due_to_interrupt abort_due_to_interrupt: ; rc = int32(SQLITE_INTERRUPT) @@ -79730,10 +80108,10 @@ abort_due_to_interrupt: } var _azType = [4]uintptr{ - 0: __ccgo_ts + 5928, - 1: __ccgo_ts + 5937, - 2: __ccgo_ts + 5944, - 3: __ccgo_ts + 5950, + 0: __ccgo_ts + 5992, + 1: __ccgo_ts + 6001, + 2: __ccgo_ts + 6008, + 3: __ccgo_ts + 6014, } var _and_logic = [9]uint8{ @@ -79884,16 +80262,16 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr type1 = v1 if type1 < uint32(12) { if type1 == uint32(0) { - v2 = __ccgo_ts + 1636 + v2 = __ccgo_ts + 1650 } else { if type1 == uint32(7) { - v3 = __ccgo_ts + 6649 + v3 = __ccgo_ts + 6713 } else { - v3 = __ccgo_ts + 6654 + v3 = __ccgo_ts + 6718 } v2 = v3 } - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6662, libc.VaList(bp+8, v2)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6726, libc.VaList(bp+8, v2)) rc = int32(SQLITE_ERROR) Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) @@ -79911,10 +80289,10 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr rc = Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) if rc == SQLITE_OK { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6691, libc.VaList(bp+8, iRow)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6755, libc.VaList(bp+8, iRow)) rc = int32(SQLITE_ERROR) } else { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) } } } @@ -79954,15 +80332,15 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, pTab = _sqlite3LocateTable(tls, bp+8, uint32(0), zTable, zDb) if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6711, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6775, libc.VaList(bp+440, zTable)) } if pTab != 0 && !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6741, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6805, libc.VaList(bp+440, zTable)) } if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6777, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6841, libc.VaList(bp+440, zTable)) } if !(pTab != 0) { if (*(*TParse)(unsafe.Pointer(bp + 8))).FzErrMsg != 0 { @@ -79992,7 +80370,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6798, libc.VaList(bp+440, zColumn)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6862, libc.VaList(bp+440, zColumn)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -80018,7 +80396,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, break } if (*(*TsColMap)(unsafe.Pointer(pFKey + 64 + uintptr(j)*16))).FiFrom == iCol { - zFault = __ccgo_ts + 6819 + zFault = __ccgo_ts + 6883 } goto _3 _3: @@ -80043,7 +80421,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } /* FIXME: Be smarter about indexes that use expressions */ if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == iCol || int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == -int32(2) { - zFault = __ccgo_ts + 6831 + zFault = __ccgo_ts + 6895 } goto _5 _5: @@ -80057,7 +80435,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if zFault != 0 { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6839, libc.VaList(bp+440, zFault)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6903, libc.VaList(bp+440, zFault)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -80117,6 +80495,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } _sqlite3ParseObjectReset(tls, bp+8) } + goto blob_open_out blob_open_out: ; if rc == SQLITE_OK && int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { @@ -80128,7 +80507,7 @@ blob_open_out: _sqlite3DbFree(tls, db, pBlob) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v7 = __ccgo_ts + 3799 + v7 = __ccgo_ts + 3863 } else { v7 = libc.UintptrFromInt32(0) } @@ -80218,7 +80597,7 @@ func _blobReadWrite(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset in _, _, _, _, _ = db, iKey, p, rc, v p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102190)) + return _sqlite3MisuseError(tls, int32(102671)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -80317,7 +80696,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r _, _, _, _ = db, p, rc, v1 p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102290)) + return _sqlite3MisuseError(tls, int32(102771)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -80331,7 +80710,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r rc = _blobSeekToRow(tls, p, iRow, bp) if rc != SQLITE_OK { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v1 = __ccgo_ts + 3799 + v1 = __ccgo_ts + 3863 } else { v1 = libc.UintptrFromInt32(0) } @@ -84447,25 +84826,25 @@ func _extendFJMatch(tls *libc.TLS, pParse uintptr, ppList uintptr, pMatch uintpt func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema uintptr) (r int32) { var zLegacy uintptr _ = zLegacy - if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6873, int32(7)) != 0 { + if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6937, int32(7)) != 0 { return 0 } zLegacy = (*TTable)(unsafe.Pointer(pTab)).FzName - if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6881+7) == 0 { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6900+7) == 0 { + if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6945+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6964+7) == 0 { return int32(1) } if pSchema == uintptr(0) { return 0 } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6414+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6478+7) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6919+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6983+7) == 0 { return int32(1) } } else { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6919+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6983+7) == 0 { return int32(1) } } @@ -84501,26 +84880,27 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema // ** If the name cannot be resolved unambiguously, leave an error message // ** in pParse and return WRC_Abort. Return WRC_Prune on success. // */ -func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol uintptr, pNC uintptr, pExpr uintptr) (r int32) { +func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRight uintptr, pNC uintptr, pExpr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var cnt, cntTab, eNewExprOp, hit, i, iCol, j, nSubquery, op, v5 int32 - var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10 uintptr + var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10 uintptr var hCol, hCol1 Tu8 var v7, v8 uint32 var _ /* bRowid at bp+8 */ int32 var _ /* pFJMatch at bp+0 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10, v5, v7, v8 /* Loop counters */ - cnt = 0 /* Number of matching column names */ - cntTab = 0 /* Number of potential "rowid" matches */ - nSubquery = 0 /* How many levels of subquery */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ - pMatch = uintptr(0) /* The matching pSrcList item */ - pTopNC = pNC /* First namecontext in the list */ - pSchema = uintptr(0) /* Schema of the expression */ - eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ - pTab = uintptr(0) /* A column of pTab */ - *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10, v5, v7, v8 /* Loop counters */ + cnt = 0 /* Number of matching column names */ + cntTab = 0 /* Number of potential "rowid" matches */ + nSubquery = 0 /* How many levels of subquery */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ + pMatch = uintptr(0) /* The matching pSrcList item */ + pTopNC = pNC /* First namecontext in the list */ + pSchema = uintptr(0) /* Schema of the expression */ + eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ + pTab = uintptr(0) /* A column of pTab */ + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + zCol = *(*uintptr)(unsafe.Pointer(pRight + 8)) /* the name context cannot be NULL. */ /* The Z in X.Y.Z cannot be NULL */ /* Initialize the node to no-match */ @@ -84551,7 +84931,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ; i++ } - if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6933, zDb) == 0 { + if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6997, zDb) == 0 { /* This branch is taken when the main database has been renamed ** using SQLITE_DBCONFIG_MAINDBNAME. */ pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema @@ -84644,7 +85024,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TTable)(unsafe.Pointer(pTab)).FpSchema != pSchema { goto _2 } - if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6938) != 0 { + if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+7002) != 0 { goto _2 } } @@ -84756,16 +85136,16 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != uintptr(0) { op = int32((*TParse)(unsafe.Pointer(pParse)).FeTriggerOp) if (*TParse)(unsafe.Pointer(pParse)).FbReturning != 0 { - if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0) { + if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0 || _isValidSchemaTableName(tls, zTab, (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab, uintptr(0)) != 0) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = libc.BoolInt32(op != int32(TK_DELETE)) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } } else { - if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6940, zTab) == 0 { + if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+7004, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(1) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } else { - if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6944, zTab) == 0 { + if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+7008, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = 0 pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } @@ -84774,7 +85154,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UUpsert) != 0 && zTab != uintptr(0) { pUpsert = *(*uintptr)(unsafe.Pointer(pNC + 16)) - if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6948, zTab) == 0 { + if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+7012, zTab) == 0 { pTab = (*(*TSrcItem)(unsafe.Pointer((*TUpsert)(unsafe.Pointer(pUpsert)).FpUpsertSrc + 8))).FpTab (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(EXCLUDED_TABLE_NUMBER) } @@ -84890,15 +85270,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if int32(uint32(*(*uint16)(unsafe.Pointer(pEList + 8 + uintptr(j)*32 + 16 + 4))&0x3>>0)) == ENAME_NAME && Xsqlite3_stricmp(tls, zAs, zCol) == 0 { pOrig = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(j)*32))).FpExpr if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 && (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6957, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7021, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Win)) != uint32(0) && ((*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 || pNC != pTopNC) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6988, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7052, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if _sqlite3ExprVectorSize(tls, pOrig) != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7025, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7089, 0) return int32(WRC_Abort) } _resolveAlias(tls, pParse, pEList, j, pExpr, nSubquery) @@ -84950,7 +85330,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** a huge amount of legacy SQL that uses it. So for now, we just ** issue a warning. */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+7043, libc.VaList(bp+24, zCol)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+7107, libc.VaList(bp+24, zCol)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_STRING) libc.X__builtin___memset_chk(tls, pExpr+64, 0, uint64(8), libc.X__builtin_object_size(tls, pExpr+64, 0)) return int32(WRC_Prune) @@ -84979,7 +85359,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } _extendFJMatch(tls, pParse, bp, pMatch, (*TExpr)(unsafe.Pointer(pExpr)).FiColumn) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_FUNCTION) - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 7078 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 7142 *(*uintptr)(unsafe.Pointer(pExpr + 32)) = *(*uintptr)(unsafe.Pointer(bp)) cnt = int32(1) goto lookupname_end @@ -84989,18 +85369,22 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } } if cnt == 0 { - v10 = __ccgo_ts + 7087 + v10 = __ccgo_ts + 7151 } else { - v10 = __ccgo_ts + 7102 + v10 = __ccgo_ts + 7166 } zErr = v10 if zDb != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7124, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7188, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) } else { if zTab != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7137, libc.VaList(bp+24, zErr, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7201, libc.VaList(bp+24, zErr, zTab, zCol)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7147, libc.VaList(bp+24, zErr, zCol)) + if cnt == 0 && (*TExpr)(unsafe.Pointer(pRight)).Fflags&uint32(libc.Int32FromInt32(EP_DblQuoted)) != uint32(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7211, libc.VaList(bp+24, zErr, zCol)) + } else { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7272, libc.VaList(bp+24, zErr, zCol)) + } } } _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -85030,10 +85414,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** If a generated column is referenced, set bits for every column ** of the table. */ - if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 && cnt == int32(1) && pMatch != uintptr(0) { - *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + if pMatch != 0 { + if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { + *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + } else { + libc.SetBitFieldPtr16Uint32(pMatch+60+4, libc.Uint32FromInt32(1), 14, 0x4000) + } } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(eNewExprOp) + goto lookupname_end lookupname_end: ; if cnt == int32(1) { @@ -85123,19 +85512,19 @@ func _notValidImpl(tls *libc.TLS, pParse uintptr, pNC uintptr, zMsg uintptr, pEx defer tls.Free(32) var zIn uintptr _ = zIn - zIn = __ccgo_ts + 7154 + zIn = __ccgo_ts + 7279 if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IdxExpr) != 0 { - zIn = __ccgo_ts + 7182 + zIn = __ccgo_ts + 7307 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IsCheck) != 0 { - zIn = __ccgo_ts + 7200 + zIn = __ccgo_ts + 7325 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_GenCol) != 0 { - zIn = __ccgo_ts + 7218 + zIn = __ccgo_ts + 7343 } } } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7236, libc.VaList(bp+8, zMsg, zIn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7361, libc.VaList(bp+8, zMsg, zIn)) if pExpr != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } @@ -85183,8 +85572,8 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { var anRef [8]int32 var auth, i, is_agg, n, nLeft, nRef, nRight, no_such_func, rc, savedAllowFlags, wrong_num_args, v12, v4, v6, v7 int32 var enc Tu8 - var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zColumn, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zColumn, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 + var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 pNC = *(*uintptr)(unsafe.Pointer(pWalker + 40)) pParse = (*TNameContext)(unsafe.Pointer(pNC)).FpParse switch int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) { @@ -85303,11 +85692,11 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_ID) { zDb = uintptr(0) zTable = uintptr(0) - zColumn = *(*uintptr)(unsafe.Pointer(pExpr + 8)) + pRight = pExpr } else { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7256, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7381, uintptr(0), pExpr) } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_ID) { @@ -85318,13 +85707,12 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { pRight = (*TExpr)(unsafe.Pointer(pRight)).FpRight } zTable = *(*uintptr)(unsafe.Pointer(pLeft + 8)) - zColumn = *(*uintptr)(unsafe.Pointer(pRight + 8)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameTokenRemap(tls, pParse, pExpr, pRight) _sqlite3RenameTokenRemap(tls, pParse, pExpr+64, pLeft) } } - return _lookupName(tls, pParse, zDb, zTable, zColumn, pNC, pExpr) + return _lookupName(tls, pParse, zDb, zTable, pRight, pNC, pExpr) /* Resolve function names */ fallthrough @@ -85363,7 +85751,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if n == int32(2) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = _exprProbability(tls, (*(*TExprList_item)(unsafe.Pointer(pList + 8 + 1*32))).FpExpr) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7273, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7398, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } } else { @@ -85387,7 +85775,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { auth = _sqlite3AuthCheck(tls, pParse, int32(SQLITE_FUNCTION), uintptr(0), (*TFuncDef)(unsafe.Pointer(pDef)).FzName, uintptr(0)) if auth != SQLITE_OK { if auth == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7337, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7462, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) @@ -85408,7 +85796,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { ** in a CHECK constraint. SQLServer, MySQL, and PostgreSQL all ** all this. */ if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7373, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7498, uintptr(0), pExpr) } } else { /* Must fit in 8 bits */ @@ -85432,29 +85820,29 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { } if 0 == libc.BoolInt32(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME)) { if pDef != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FxValue == uintptr(0) && pWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7401, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7526, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 || is_agg != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 && !(pWin != 0) || is_agg != 0 && pWin != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 { if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 || pWin != 0 { - zType = __ccgo_ts + 7444 + zType = __ccgo_ts + 7569 } else { - zType = __ccgo_ts + 7451 + zType = __ccgo_ts + 7576 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7461, libc.VaList(bp+8, zType, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7586, libc.VaList(bp+8, zType, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ is_agg = 0 } else { if no_such_func != 0 && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7489, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7614, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if wrong_num_args != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7511, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7636, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7555, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7680, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { @@ -85478,7 +85866,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { *(*int32)(unsafe.Pointer(pNC + 40)) &= ^(libc.Int32FromInt32(NC_AllowWin) | v7) } } else { - if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { is_agg = int32(1) } } @@ -85539,18 +85927,19 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) { nRef = (*TNameContext)(unsafe.Pointer(pNC)).FnRef if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_SelfRef) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7603, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7728, pExpr, pExpr) } else { _sqlite3WalkSelect(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 32))) } if nRef != (*TNameContext)(unsafe.Pointer(pNC)).FnRef { *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 4)) |= uint32(SF_Correlated) } *(*int32)(unsafe.Pointer(pNC + 40)) |= int32(NC_Subquery) } case int32(TK_VARIABLE): if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IsCheck)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7614, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7739, pExpr, pExpr) } case int32(TK_IS): fallthrough @@ -85596,7 +85985,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { nRight = _sqlite3ExprVectorSize(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight) } if nLeft != nRight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7025, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7089, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } break @@ -85721,7 +86110,7 @@ func _resolveOrderByTermToExprList(tls *libc.TLS, pParse uintptr, pSelect uintpt func _resolveOutOfRangeError(tls *libc.TLS, pParse uintptr, zType uintptr, i int32, mx int32, pError uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7625, libc.VaList(bp+8, i, zType, mx)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7750, libc.VaList(bp+8, i, zType, mx)) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pError) } @@ -85756,7 +86145,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7681, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7806, 0) return int32(1) } i = 0 @@ -85794,7 +86183,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } if _sqlite3ExprIsInteger(tls, pE, bp) != 0 { if *(*int32)(unsafe.Pointer(bp)) <= 0 || *(*int32)(unsafe.Pointer(bp)) > (*TExprList)(unsafe.Pointer(pEList)).FnExpr { - _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7715, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) + _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7840, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) return int32(1) } } else { @@ -85864,7 +86253,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r break } if int32(uint32(*(*uint16)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32 + 16 + 4))&0x4>>2)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7721, libc.VaList(bp+16, i+int32(1))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7846, libc.VaList(bp+16, i+int32(1))) return int32(1) } goto _3 @@ -85898,7 +86287,7 @@ func _sqlite3ResolveOrderGroupBy(tls *libc.TLS, pParse uintptr, pSelect uintptr, return 0 } if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7782, libc.VaList(bp+8, zType)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7907, libc.VaList(bp+8, zType)) return int32(1) } pEList = (*TSelect)(unsafe.Pointer(pSelect)).FpEList @@ -86144,6 +86533,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } pItem = (*TSelect)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*104 + /* Test of tag-20240424-1*/ if (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FselFlags&uint32(SF_Resolved) == uint32(0) { if pOuterNC != 0 { v3 = (*TNameContext)(unsafe.Pointer(pOuterNC)).FnRef @@ -86210,7 +86600,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { (*(*TNameContext)(unsafe.Pointer(bp))).FncFlags |= int32(NC_UEList) if (*TSelect)(unsafe.Pointer(p)).FpHaving != 0 { if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Aggregate) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7813, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7938, 0) return int32(WRC_Abort) } if _sqlite3ResolveExprNames(tls, bp, (*TSelect)(unsafe.Pointer(p)).FpHaving) != 0 { @@ -86277,7 +86667,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** is not detected until much later, and so we need to go ahead and ** resolve those symbols on the incorrect ORDER BY for consistency. */ - if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7715) != 0 { + if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7840) != 0 { return int32(WRC_Abort) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -86288,7 +86678,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** the GROUP BY clause does not contain aggregate functions. */ if pGroupBy != 0 { - if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7852) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { + if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7977) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(WRC_Abort) } i = 0 @@ -86298,7 +86688,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } if (*TExpr)(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(pItem2)).FpExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7858, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7983, 0) return int32(WRC_Abort) } goto _6 @@ -87279,7 +87669,7 @@ func _codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32 return } if nLeft != _sqlite3ExprVectorSize(tls, pRight) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7025, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7089, 0) return } if int32(op) == int32(TK_LE) { @@ -87358,7 +87748,7 @@ func _sqlite3ExprCheckHeight(tls *libc.TLS, pParse uintptr, nHeight int32) (r in rc = SQLITE_OK mxHeight = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 3*4)) if nHeight > mxHeight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7917, libc.VaList(bp+8, mxHeight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8042, libc.VaList(bp+8, mxHeight)) rc = int32(SQLITE_ERROR) } return rc @@ -87524,11 +87914,12 @@ func _sqlite3ExprSetErrorOffset(tls *libc.TLS, pExpr uintptr, iOfst int32) { // ** appear to be quoted. If the quotes were of the form "..." (double-quotes) // ** then the EP_DblQuoted flag is set on the expression node. // ** -// ** Special case: If op==TK_INTEGER and pToken points to a string that -// ** can be translated into a 32-bit integer, then the token is not -// ** stored in u.zToken. Instead, the integer values is written -// ** into u.iValue and the EP_IntValue flag is set. No extra storage +// ** Special case (tag-20240227-a): If op==TK_INTEGER and pToken points to +// ** a string that can be translated into a 32-bit integer, then the token is +// ** not stored in u.zToken. Instead, the integer values is written +// ** into u.iValue and the EP_IntValue flag is set. No extra storage // ** is allocated to hold the integer text and the dequote flag is ignored. +// ** See also tag-20240227-b. // */ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequote int32) (r uintptr) { bp := tls.Alloc(16) @@ -87541,7 +87932,7 @@ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequ *(*int32)(unsafe.Pointer(bp)) = 0 if pToken != 0 { if op != int32(TK_INTEGER) || (*TToken)(unsafe.Pointer(pToken)).Fz == uintptr(0) || _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pToken)).Fz, bp) == 0 { - nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) + nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) /* tag-20240227-a */ } } pNew = _sqlite3DbMallocRawNN(tls, db, uint64(72)+uint64(nExtra)) @@ -87702,11 +88093,11 @@ func _sqlite3ExprListToValues(tls *libc.TLS, pParse uintptr, nElem int32, pEList } if nExprElem != nElem { if nExprElem > int32(1) { - v2 = __ccgo_ts + 7965 + v2 = __ccgo_ts + 8090 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7967, libc.VaList(bp+8, nExprElem, v2, nElem)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8092, libc.VaList(bp+8, nExprElem, v2, nElem)) break } pSel = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(pExpr + 32)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) @@ -87755,7 +88146,7 @@ func _sqlite3ExprAnd(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintpt if f&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_InnerON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { _sqlite3ExprDeferredDelete(tls, pParse, pLeft) _sqlite3ExprDeferredDelete(tls, pParse, pRight) - return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1724) + return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1784) } else { return _sqlite3PExpr(tls, pParse, int32(TK_AND), pLeft, pRight) } @@ -87783,7 +88174,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u } *(*int32)(unsafe.Pointer(pNew + 52)) = int32(int64((*TToken)(unsafe.Pointer(pToken)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) if pList != 0 && (*TExprList)(unsafe.Pointer(pList)).FnExpr > *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 6*4)) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8011, libc.VaList(bp+8, pToken)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8136, libc.VaList(bp+8, pToken)) } *(*uintptr)(unsafe.Pointer(pNew + 32)) = pList *(*Tu32)(unsafe.Pointer(pNew + 4)) |= uint32(libc.Int32FromInt32(EP_HasFunc)) @@ -87803,7 +88194,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u func _sqlite3ExprOrderByAggregateError(tls *libc.TLS, pParse uintptr, p uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8045, libc.VaList(bp+8, p)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8170, libc.VaList(bp+8, p)) } // C documentation @@ -87874,7 +88265,7 @@ func _sqlite3ExprFunctionUsable(tls *libc.TLS, pParse uintptr, pExpr uintptr, pD ** SQLITE_DBCONFIG_TRUSTED_SCHEMA is off (meaning ** that the schema is possibly tainted). */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8095, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8220, libc.VaList(bp+8, pExpr)) } } } @@ -87926,7 +88317,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n bOk = libc.BoolInt32(0 == _sqlite3Atoi64(tls, z+1, bp, int32(n-uint32(1)), uint8(SQLITE_UTF8))) } if bOk == 0 || *(*Ti64)(unsafe.Pointer(bp)) < int64(1) || *(*Ti64)(unsafe.Pointer(bp)) > int64(*(*int32)(unsafe.Pointer(db + 136 + 9*4))) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8115, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8240, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) return } @@ -87959,7 +88350,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n } (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = x if int32(x) > *(*int32)(unsafe.Pointer(db + 136 + 9*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8158, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8283, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } } @@ -87970,11 +88361,13 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n // ** Recursively delete an expression tree. // */ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { + var pLeft uintptr + _ = pLeft + goto exprDeleteRestart +exprDeleteRestart: + ; if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)|libc.Int32FromInt32(EP_Leaf)) != libc.Uint32FromInt32(0)) { /* The Expr.x union is never used at the same time as Expr.pRight */ - if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { - _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpLeft) - } if (*TExpr)(unsafe.Pointer(p)).FpRight != 0 { _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpRight) } else { @@ -87987,6 +88380,17 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { } } } + if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { + pLeft = (*TExpr)(unsafe.Pointer(p)).FpLeft + if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) && !((*TExpr)(unsafe.Pointer(pLeft)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { + /* Avoid unnecessary recursion on unary operators */ + _sqlite3DbNNFreeNN(tls, db, p) + p = pLeft + goto exprDeleteRestart + } else { + _sqlite3ExprDeleteNN(tls, db, pLeft) + } + } } if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { _sqlite3DbNNFreeNN(tls, db, p) @@ -88033,11 +88437,11 @@ func _sqlite3ClearOnOrUsing(tls *libc.TLS, db uintptr, p uintptr) { // ** // ** The pExpr might be deleted immediately on an OOM error. // ** -// ** The deferred delete is (currently) implemented by adding the -// ** pExpr to the pParse->pConstExpr list with a register number of 0. +// ** Return 0 if the delete was successfully deferred. Return non-zero +// ** if the delete happened immediately because of an OOM. // */ -func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) { - _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr) +func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + return libc.BoolInt32(uintptr(0) == _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr)) } // C documentation @@ -88526,16 +88930,20 @@ func _sqlite3SrcListDup(tls *libc.TLS, db uintptr, p uintptr, flags int32) (r ui (*TSrcItem)(unsafe.Pointer(pNewItem)).FiCursor = (*TSrcItem)(unsafe.Pointer(pOldItem)).FiCursor (*TSrcItem)(unsafe.Pointer(pNewItem)).FaddrFillSub = (*TSrcItem)(unsafe.Pointer(pOldItem)).FaddrFillSub (*TSrcItem)(unsafe.Pointer(pNewItem)).FregReturn = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregReturn + (*TSrcItem)(unsafe.Pointer(pNewItem)).FregResult = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregResult if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x2>>1)) != 0 { *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3DbStrDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88))) + } else { + if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { + *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) + } else { + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pNewItem)).Fu1)) = *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pOldItem)).Fu1)) + } } (*TSrcItem)(unsafe.Pointer(pNewItem)).Fu2 = (*TSrcItem)(unsafe.Pointer(pOldItem)).Fu2 if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x100>>8)) != 0 { (*TCteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNewItem + 96)))).FnUse++ } - if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { - *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) - } v4 = (*TSrcItem)(unsafe.Pointer(pOldItem)).FpTab (*TSrcItem)(unsafe.Pointer(pNewItem)).FpTab = v4 pTab = v4 @@ -88797,7 +89205,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, n = v2 } if v3 && (*TIdList)(unsafe.Pointer(pColumns)).FnId != v2 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8181, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8306, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) goto vector_append_error } i = 0 @@ -88829,6 +89237,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, ** the RHS and LHS sizes match during code generation. */ (*TExpr)(unsafe.Pointer(pFirst)).FiTable = (*TIdList)(unsafe.Pointer(pColumns)).FnId } + goto vector_append_error vector_append_error: ; _sqlite3ExprUnmapAndDelete(tls, pParse, pExpr) @@ -88925,7 +89334,7 @@ func _sqlite3ExprListCheckLength(tls *libc.TLS, pParse uintptr, pEList uintptr, _ = mx mx = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 2*4)) if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr > mx { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8211, libc.VaList(bp+8, zObject)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8336, libc.VaList(bp+8, zObject)) } } @@ -89023,10 +89432,10 @@ func _sqlite3SelectWalkFail(tls *libc.TLS, pWalker uintptr, NotUsed uintptr) (r // ** anything else 0 // */ func _sqlite3IsTrueOrFalse(tls *libc.TLS, zIn uintptr) (r Tu32) { - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8234) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8359) == 0 { return uint32(EP_IsTrue) } - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8239) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8364) == 0 { return uint32(EP_IsFalse) } return uint32(0) @@ -89108,6 +89517,51 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { return pExpr } +// C documentation +// +// /* +// ** pExpr is a TK_FUNCTION node. Try to determine whether or not the +// ** function is a constant function. A function is constant if all of +// ** the following are true: +// ** +// ** (1) It is a scalar function (not an aggregate or window function) +// ** (2) It has either the SQLITE_FUNC_CONSTANT or SQLITE_FUNC_SLOCHNG +// ** property. +// ** (3) All of its arguments are constants +// ** +// ** This routine sets pWalker->eCode to 0 if pExpr is not a constant. +// ** It makes no changes to pWalker->eCode if pExpr is constant. In +// ** every case, it returns WRC_Abort. +// ** +// ** Called as a service subroutine from exprNodeIsConstant(). +// */ +func _exprNodeIsConstantFunction(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef, pList, v1 uintptr + var n int32 + var v2 bool + _, _, _, _, _, _ = db, n, pDef, pList, v1, v2 /* The database */ + if v2 = (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)) != uint32(0); !v2 { + v1 = *(*uintptr)(unsafe.Pointer(pExpr + 32)) + pList = v1 + } + if v2 || v1 == uintptr(0) { + n = 0 + } else { + n = (*TExprList)(unsafe.Pointer(pList)).FnExpr + _sqlite3WalkExprList(tls, pWalker, pList) + if int32((*TWalker)(unsafe.Pointer(pWalker)).FeCode) == 0 { + return int32(WRC_Abort) + } + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)|libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG)) == uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) +} + // C documentation // // /* @@ -89155,8 +89609,12 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 } return WRC_Continue } else { - (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) - return int32(WRC_Abort) + if (*TWalker)(unsafe.Pointer(pWalker)).FpParse != 0 { + return _exprNodeIsConstantFunction(tls, pWalker, pExpr) + } else { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } } fallthrough case int32(TK_ID): @@ -89183,6 +89641,8 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 case int32(TK_REGISTER): fallthrough case int32(TK_DOT): + fallthrough + case int32(TK_RAISE): (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) return int32(WRC_Abort) case int32(TK_VARIABLE): @@ -89208,14 +89668,14 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 return r } -func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32) { +func _exprIsConst(tls *libc.TLS, pParse uintptr, p uintptr, initFlag int32) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* w at bp+0 */ TWalker (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(initFlag) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) - *(*int32)(unsafe.Pointer(bp + 40)) = iCur _sqlite3WalkExpr(tls, bp, p) return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } @@ -89229,9 +89689,15 @@ func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32 // ** For the purposes of this function, a double-quoted string (ex: "abc") // ** is considered a variable but a single-quoted string (ex: 'abc') is // ** a constant. +// ** +// ** The pParse parameter may be NULL. But if it is NULL, there is no way +// ** to determine if function calls are constant or not, and hence all +// ** function calls will be considered to be non-constant. If pParse is +// ** not NULL, then a function call might be constant, depending on the +// ** function and on its parameters. // */ -func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(1), 0) +func _sqlite3ExprIsConstant(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(1)) } // C documentation @@ -89249,8 +89715,24 @@ func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { // ** can be added to the pParse->pConstExpr list and evaluated once when // ** the prepared statement starts up. See sqlite3ExprCodeRunJustOnce(). // */ -func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(2), 0) +func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(2)) +} + +// C documentation +// +// /* +// ** This routine examines sub-SELECT statements as an expression is being +// ** walked as part of sqlite3ExprIsTableConstant(). Sub-SELECTs are considered +// ** constant as long as they are uncorrelated - meaning that they do not +// ** contain any terms from outer contexts. +// */ +func _exprSelectWalkTableConstant(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + if (*TSelect)(unsafe.Pointer(pSelect)).FselFlags&uint32(SF_Correlated) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) } // C documentation @@ -89260,9 +89742,25 @@ func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { // ** for any single row of the table with cursor iCur. In other words, the // ** expression must not refer to any non-deterministic function nor any // ** table other than iCur. +// ** +// ** Consider uncorrelated subqueries to be constants if the bAllowSubq +// ** parameter is true. // */ -func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) { - return _exprIsConst(tls, p, int32(3), iCur) +func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32, bAllowSubq int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(3) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = uintptr(0) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) + if bAllowSubq != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_exprSelectWalkTableConstant) + } else { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) + } + *(*int32)(unsafe.Pointer(bp + 40)) = iCur + _sqlite3WalkExpr(tls, bp, p) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } // C documentation @@ -89282,7 +89780,10 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** // ** (1) pExpr cannot refer to any table other than pSrc->iCursor. // ** -// ** (2) pExpr cannot use subqueries or non-deterministic functions. +// ** (2a) pExpr cannot use subqueries unless the bAllowSubq parameter is +// ** true and the subquery is non-correlated +// ** +// ** (2b) pExpr cannot use non-deterministic functions. // ** // ** (3) pSrc cannot be part of the left operand for a RIGHT JOIN. // ** (Is there some way to relax this constraint?) @@ -89308,7 +89809,7 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** which leads to incorrect answers. See also restriction (9) // ** on push-down. // */ -func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32) (r int32) { +func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32, bAllowSubq int32) (r int32) { var jj int32 var pSrc uintptr _, _ = jj, pSrc @@ -89346,7 +89847,8 @@ func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList jj++ } } - return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor) /* rules (1), (2) */ + /* Rules (1), (2a), and (2b) handled by the following: */ + return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor, bAllowSubq) } // C documentation @@ -89444,7 +89946,7 @@ func _sqlite3ExprIsConstantOrGroupBy(tls *libc.TLS, pParse uintptr, p uintptr, p // ** a constant. // */ func _sqlite3ExprIsConstantOrFunction(tls *libc.TLS, p uintptr, isInit Tu8) (r int32) { - return _exprIsConst(tls, p, int32(4)+int32(isInit), 0) + return _exprIsConst(tls, uintptr(0), p, int32(4)+int32(isInit)) } // C documentation @@ -89583,13 +90085,13 @@ func _sqlite3ExprNeedsNoAffinityChange(tls *libc.TLS, p uintptr, aff int8) (r in // ** Return TRUE if the given string is a row-id column name. // */ func _sqlite3IsRowid(tls *libc.TLS, z uintptr) (r int32) { - if _sqlite3StrICmp(tls, z, __ccgo_ts+8245) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8370) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+8253) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8378) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+8259) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8384) == 0 { return int32(1) } return 0 @@ -89607,9 +90109,9 @@ func _sqlite3RowidAlias(tls *libc.TLS, pTab uintptr) (r uintptr) { var iCol, ii int32 _, _, _ = azOpt, iCol, ii azOpt = [3]uintptr{ - 0: __ccgo_ts + 8245, - 1: __ccgo_ts + 8253, - 2: __ccgo_ts + 8259, + 0: __ccgo_ts + 8370, + 1: __ccgo_ts + 8378, + 2: __ccgo_ts + 8384, } ii = 0 for { @@ -89729,13 +90231,13 @@ func _sqlite3SetHasNullFlag(tls *libc.TLS, v uintptr, iCur int32, regHasNull int // ** The argument is an IN operator with a list (not a subquery) on the // ** right-hand side. Return TRUE if that list is constant. // */ -func _sqlite3InRhsIsConstant(tls *libc.TLS, pIn uintptr) (r int32) { +func _sqlite3InRhsIsConstant(tls *libc.TLS, pParse uintptr, pIn uintptr) (r int32) { var pLHS uintptr var res int32 _, _ = pLHS, res pLHS = (*TExpr)(unsafe.Pointer(pIn)).FpLeft (*TExpr)(unsafe.Pointer(pIn)).FpLeft = uintptr(0) - res = _sqlite3ExprIsConstant(tls, pIn) + res = _sqlite3ExprIsConstant(tls, pParse, pIn) (*TExpr)(unsafe.Pointer(pIn)).FpLeft = pLHS return res } @@ -89891,7 +90393,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 iAddr = _sqlite3VdbeAddOp0(tls, v, int32(OP_Once)) _sqlite3OpenTable(tls, pParse, iTab, iDb, pTab, int32(OP_OpenRead)) eType = int32(IN_INDEX_ROWID) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+8263, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+8388, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) _sqlite3VdbeJumpHere(tls, v, iAddr) } else { /* Iterator variable */ affinity_ok = int32(1) @@ -89991,7 +90493,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 if colUsed == libc.Uint64FromInt32(1)<0 so that the new limit is either 1 or 0 */ db = (*TParse)(unsafe.Pointer(pParse)).Fdb - pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1724) + pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1784) if pLimit != 0 { (*TExpr)(unsafe.Pointer(pLimit)).FaffExpr = int8(SQLITE_AFF_NUMERIC) pLimit = _sqlite3PExpr(tls, pParse, int32(TK_NE), _sqlite3ExprDup(tls, db, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft, 0), pLimit) @@ -90482,7 +90984,7 @@ func _sqlite3CodeSubselect(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int3 (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft = pLimit } else { /* If there is no pre-existing limit add a limit of 1 */ - pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8478) + pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8603) (*TSelect)(unsafe.Pointer(pSel)).FpLimit = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), pLimit, uintptr(0)) } (*TSelect)(unsafe.Pointer(pSel)).FiLimit = 0 @@ -90805,11 +91307,13 @@ func _sqlite3ExprCodeIN(tls *libc.TLS, pParse uintptr, pExpr uintptr, destIfFals } /* Jumps here in order to return true. */ _sqlite3VdbeJumpHere(tls, v, addrTruthOp) + goto sqlite3ExprCodeIN_finished sqlite3ExprCodeIN_finished: ; if rLhs != rLhsOrig { _sqlite3ReleaseTempReg(tls, pParse, rLhs) } + goto sqlite3ExprCodeIN_oom_error sqlite3ExprCodeIN_oom_error: ; _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiMap) @@ -90867,13 +91371,13 @@ func _codeInteger(tls *libc.TLS, pParse uintptr, pExpr uintptr, negFlag int32, i z = *(*uintptr)(unsafe.Pointer(pExpr + 8)) c = _sqlite3DecOrHexToI64(tls, z, bp) if c == int32(3) && !(negFlag != 0) || c == int32(2) || negFlag != 0 && *(*Ti64)(unsafe.Pointer(bp)) == int64(-libc.Int32FromInt32(1))-(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<= (*TAggInfo)(unsafe.Pointer(pInfo)).FnFunc { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8571, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8696, libc.VaList(bp+160, pExpr)) } else { return (*TAggInfo)(unsafe.Pointer(pInfo)).FiFirstReg + (*TAggInfo)(unsafe.Pointer(pInfo)).FnColumn + int32((*TExpr)(unsafe.Pointer(pExpr)).FiAgg) } @@ -91597,7 +92097,7 @@ expr_code_doover: if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { return (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FregResult } - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { /* SQL functions can be expensive. So try to avoid running them ** multiple times if we know they always give the same result */ return _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) @@ -91612,7 +92112,7 @@ expr_code_doover: zId = *(*uintptr)(unsafe.Pointer(pExpr + 8)) pDef = _sqlite3FindFunction(tls, db, zId, nFarg, enc, uint8(0)) if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8598, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8723, libc.VaList(bp+160, pExpr)) break } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_INLINE) != uint32(0) && pFarg != uintptr(0) { @@ -91627,7 +92127,7 @@ expr_code_doover: if !(i < nFarg) { break } - if i < int32(32) && _sqlite3ExprIsConstant(tls, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { + if i < int32(32) && _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { constMask |= libc.Uint32FromInt32(1) << i } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_NEEDCOLL) != uint32(0) && !(pColl != 0) { @@ -91717,7 +92217,7 @@ expr_code_doover: } n1 = _sqlite3ExprVectorSize(tls, pLeft2) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != n1 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8181, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8306, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) } return (*TExpr)(unsafe.Pointer(pLeft2)).FiTable + int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) case int32(TK_IN): @@ -91749,8 +92249,9 @@ expr_code_doover: if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Collate)) != libc.Uint32FromInt32(0)) { /* A TK_COLLATE Expr node without the EP_Collate tag is a so-called ** "SOFT-COLLATE" that is added to constraints that are pushed down - ** from outer queries into sub-queries by the push-down optimization. - ** Clear subtypes as subtypes may not cross a subquery boundary. + ** from outer queries into sub-queries by the WHERE-clause push-down + ** optimization. Clear subtypes as subtypes may not cross a subquery + ** boundary. */ _sqlite3ExprCode(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, target) _sqlite3VdbeAddOp1(tls, v, int32(OP_ClrSubtype), target) @@ -91779,7 +92280,7 @@ expr_code_doover: _sqlite3VdbeAddOp1(tls, v, int32(OP_RealAffinity), target) } case int32(TK_VECTOR): - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7025, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7089, 0) break /* TK_IF_NULL_ROW Expr nodes are inserted ahead of expressions ** that derive from the right-hand table of a LEFT JOIN. The @@ -91894,7 +92395,7 @@ expr_code_doover: _sqlite3VdbeResolveLabel(tls, v, endLabel) case int32(TK_RAISE): if !((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != 0) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8622, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8747, 0) return 0 } if int32((*TExpr)(unsafe.Pointer(pExpr)).FaffExpr) == int32(OE_Abort) { @@ -92014,7 +92515,7 @@ func _sqlite3ExprCodeTemp(tls *libc.TLS, pParse uintptr, pExpr uintptr, pReg uin var r1, r2 int32 _, _ = r1, r2 pExpr = _sqlite3ExprSkipCollateAndLikely(tls, pExpr) - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { *(*int32)(unsafe.Pointer(pReg)) = 0 r2 = _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) } else { @@ -92084,7 +92585,7 @@ func _sqlite3ExprCodeCopy(tls *libc.TLS, pParse uintptr, pExpr uintptr, target i // ** might choose to code the expression at initialization time. // */ func _sqlite3ExprCodeFactorable(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) { - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target) } else { _sqlite3ExprCodeCopy(tls, pParse, pExpr, target) @@ -92153,7 +92654,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ _sqlite3VdbeAddOp2(tls, v, int32(copyOp), j+srcReg-int32(1), target+i) } } else { - if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target+i) } else { inReg = _sqlite3ExprCodeTarget(tls, pParse, pExpr, target+i) @@ -92417,6 +92918,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsTrue)) == uint32(EP_IsTrue) { @@ -92622,6 +93124,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) { @@ -93448,17 +93951,15 @@ func _agginfoPersistExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnColumn && (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } else { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnFunc && (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } @@ -93577,6 +94078,7 @@ func _findOrCreateAggInfoColumn(tls *libc.TLS, pParse uintptr, pAggInfo uintptr, *(*Tu16)(unsafe.Pointer(v4))++ (*TAggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = int16(v3) } + goto fix_up_expr fix_up_expr: ; (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo = pAggInfo @@ -94007,8 +94509,8 @@ func _sqlite3FirstAvailableRegister(tls *libc.TLS, pParse uintptr, iMin int32) ( func _isAlterableTable(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) - if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6873, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8672, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6937, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8797, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -94027,9 +94529,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, bp := tls.Alloc(48) defer tls.Free(48) (*TParse)(unsafe.Pointer(pParse)).FcolNamesSet = uint8(1) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8700, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8825, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8875, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9000, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) } } @@ -94045,9 +94547,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, func _renameFixQuotes(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9049, libc.VaList(bp+8, zDb, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9174, libc.VaList(bp+8, zDb, zDb)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9196, 0) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9321, 0) } } @@ -94103,7 +94605,7 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName ** in database iDb. If so, this is an error. */ if _sqlite3FindTable(tls, db, zName, zDb) != 0 || _sqlite3FindIndex(tls, db, zName, zDb) != 0 || _sqlite3IsShadowTableOf(tls, db, pTab, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9347, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9472, libc.VaList(bp+8, zName)) goto exit_rename_table } /* Make sure it is not a system table being altered, or a reserved name @@ -94112,11 +94614,11 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { goto exit_rename_table } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9406, zName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9531, zName) { goto exit_rename_table } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9412, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9537, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_rename_table } /* Invoke the authorization callback. */ @@ -94146,21 +94648,21 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName nTabName = _sqlite3Utf8CharLen(tls, zTabName, -int32(1)) /* Rewrite all CREATE TABLE, INDEX, TRIGGER or VIEW statements in ** the schema to use the new table name. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9439, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9564, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) /* Update the tbl_name and name columns of the sqlite_schema table ** as required. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9623, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9748, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) /* If the sqlite_sequence table exists in this database, then update ** it with the new table name. */ - if _sqlite3FindTable(tls, db, __ccgo_ts+9928, zDb) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9944, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if _sqlite3FindTable(tls, db, __ccgo_ts+10053, zDb) != 0 { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10069, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* If the table being renamed is not itself part of the temp database, ** edit view and trigger definitions within the temp database ** as required. */ if iDb != int32(1) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10002, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10127, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) } /* If this is a virtual table, invoke the xRename() function if ** one is defined. The xRename() callback will modify the names @@ -94176,7 +94678,8 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp4(tls, v, int32(OP_VRename), i, 0, 0, pVTab, -int32(11)) } _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+10267, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+10392, 0) + goto exit_rename_table exit_rename_table: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -94192,7 +94695,7 @@ exit_rename_table: func _sqlite3ErrorIfNotEmpty(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zErr uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10280, libc.VaList(bp+8, zErr, zDb, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10405, libc.VaList(bp+8, zErr, zDb, zTab)) } // C documentation @@ -94232,11 +94735,11 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** column must not be NULL. */ if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10318, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10443, 0) return } if (*TTable)(unsafe.Pointer(pNew)).FpIndex != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10350, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10475, 0) return } if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) == 0 { @@ -94252,10 +94755,10 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpFKey != 0 && pDflt != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10377) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10502) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && !(pDflt != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10436) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10561) } /* Ensure the default expression is something that sqlite3ValueFromExpr() ** can handle (i.e. not CURRENT_TIME etc.) @@ -94267,13 +94770,13 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr return } if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10489) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10614) } _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp))) } } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_STORED) != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10535) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10660) } } /* Modify the CREATE TABLE statement. */ @@ -94287,7 +94790,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr } /* substr() operations on characters, but addColOffset is in bytes. So we ** have to use printf() to translate between these units: */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10562, libc.VaList(bp+16, zDb, (*(*struct { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10687, libc.VaList(bp+16, zDb, (*(*struct { FaddColOffset int32 FpFKey uintptr FpDfltList uintptr @@ -94315,7 +94818,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterAdd)) /* Verify that constraints are still satisfied */ if (*TTable)(unsafe.Pointer(pNew)).FpCheck != uintptr(0) || int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Strict) != uint32(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10708, libc.VaList(bp+16, zTab, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10833, libc.VaList(bp+16, zTab, zDb)) } } } @@ -94353,12 +94856,12 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { goto exit_begin_add_column } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11061, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11186, 0) goto exit_begin_add_column } /* Make sure this is not an attempt to ALTER a view. */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11095, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11220, 0) goto exit_begin_add_column } if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { @@ -94382,7 +94885,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { (*TTable)(unsafe.Pointer(pNew)).FnCol = (*TTable)(unsafe.Pointer(pTab)).FnCol nAlloc = (int32((*TTable)(unsafe.Pointer(pNew)).FnCol)-int32(1))/int32(8)*int32(8) + int32(8) (*TTable)(unsafe.Pointer(pNew)).FaCol = _sqlite3DbMallocZero(tls, db, uint64(16)*uint64(nAlloc)) - (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+11125, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+11250, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !((*TTable)(unsafe.Pointer(pNew)).FaCol != 0) || !((*TTable)(unsafe.Pointer(pNew)).FzName != 0) { goto exit_begin_add_column } @@ -94419,6 +94922,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pTab + 64))).FaddColOffset + goto exit_begin_add_column exit_begin_add_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -94442,18 +94946,18 @@ func _isRealTable(tls *libc.TLS, pParse uintptr, pTab uintptr, bDrop int32) (r i _, _ = zType, v1 zType = uintptr(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 11144 + zType = __ccgo_ts + 11269 } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 11149 + zType = __ccgo_ts + 11274 } if zType != 0 { if bDrop != 0 { - v1 = __ccgo_ts + 11163 + v1 = __ccgo_ts + 11288 } else { - v1 = __ccgo_ts + 11180 + v1 = __ccgo_ts + 11305 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11198, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11323, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -94514,11 +95018,11 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld iCol++ } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11216, libc.VaList(bp+8, pOld)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11341, libc.VaList(bp+8, pOld)) goto exit_rename_column } /* Ensure the schema contains no double-quoted strings */ - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1650, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1664, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1))) /* Do the rename operation using a recursive UPDATE statement that ** uses the sqlite_rename_column() SQL function to compute the new @@ -94530,11 +95034,12 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld goto exit_rename_column } bQuote = int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pNew)).Fz)))]) & int32(0x80) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11237, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11419, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11362, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11544, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iSchema, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+10267, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+10392, int32(1)) + goto exit_rename_column exit_rename_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -95009,11 +95514,11 @@ func _renameColumnParseError(tls *libc.TLS, pCtx uintptr, zWhen uintptr, pType u zT = Xsqlite3_value_text(tls, pType) zN = Xsqlite3_value_text(tls, pObject) if *(*int8)(unsafe.Pointer(zWhen)) != 0 { - v1 = __ccgo_ts + 11550 + v1 = __ccgo_ts + 11675 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11552, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) + zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11677, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, zErr) } @@ -95090,8 +95595,8 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin if zSql == uintptr(0) { return int32(SQLITE_NOMEM) } - if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11575, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(116682)) + if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11700, int32(7)) != 0 { + return _sqlite3CorruptError(tls, int32(117285)) } if bTemp != 0 { v1 = int32(1) @@ -95107,7 +95612,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin rc = int32(SQLITE_NOMEM) } if rc == SQLITE_OK && ((*TParse)(unsafe.Pointer(p)).FpNewTable == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewIndex == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewTrigger == uintptr(0)) { - rc = _sqlite3CorruptError(tls, int32(116693)) + rc = _sqlite3CorruptError(tls, int32(117296)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -95146,7 +95651,7 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, ** ALTER TABLE statement was quoted (bQuote==1), then set zNew to ** point to zQuot so that all substitutions are made using the ** quoted version of the new column name. */ - zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11583, libc.VaList(bp+8, zNew)) + zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11708, libc.VaList(bp+8, zNew)) if zQuot == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -95191,11 +95696,11 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, *(*int8)(unsafe.Pointer(zBuf1 + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn))) = 0 _sqlite3Dequote(tls, zBuf1) if int32(*(*int8)(unsafe.Pointer((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn)))) == int32('\'') { - v1 = __ccgo_ts + 11550 + v1 = __ccgo_ts + 11675 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11589, libc.VaList(bp+8, zBuf1, v1)) + Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11714, libc.VaList(bp+8, zBuf1, v1)) zReplace = zBuf2 nReplace = uint32(_sqlite3Strlen30(tls, zReplace)) } @@ -95672,6 +96177,7 @@ func _renameColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintp } } rc = _renameEditSql(tls, context, bp, zSql, zNew, bQuote) + goto renameColumnFunc_done renameColumnFunc_done: ; if rc != SQLITE_OK { @@ -95679,7 +96185,7 @@ renameColumnFunc_done: Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv))) } else { if (*(*TParse)(unsafe.Pointer(bp + 32))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1650, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) + _renameColumnParseError(tls, context, __ccgo_ts+1664, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -95905,7 +96411,7 @@ func _renameTableFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintpt Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv + 3*8))) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1650, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) + _renameColumnParseError(tls, context, __ccgo_ts+1664, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -96167,7 +96673,7 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr pTab = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable if pTab == uintptr(0) || int32((*TTable)(unsafe.Pointer(pTab)).FnCol) == int32(1) || iCol >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { /* This can happen if the sqlite_schema table is corrupt */ - rc = _sqlite3CorruptError(tls, int32(117652)) + rc = _sqlite3CorruptError(tls, int32(118255)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -96184,9 +96690,10 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr (*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz-- } } - zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11594, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) + zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11719, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) Xsqlite3_result_text(tls, context, zNew, -int32(1), uintptr(-libc.Int32FromInt32(1))) Xsqlite3_free(tls, zNew) + goto drop_column_done drop_column_done: ; _renameParseCleanup(tls, bp) @@ -96210,8 +96717,9 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName bp := tls.Alloc(48) defer tls.Free(48) var addr, i, iCol, iColPos, iCur, iDb, iPos, nField, reg, regOut, regRec, v2, v4, v7 int32 + var aff int8 var db, pPk, pTab, v, zCol, zDb, v1, v3, v5, v8 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, aff, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Database containing pTab ("main" etc.) */ zCol = uintptr(0) /* Index of column zCol in pTab->aCol[] */ /* Look up the table being altered. */ @@ -96237,23 +96745,23 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName } iCol = _sqlite3ColumnIndex(tls, pTab, zCol) if iCol < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11216, libc.VaList(bp+8, pName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11341, libc.VaList(bp+8, pName)) goto exit_drop_column } /* Do not allow the user to drop a PRIMARY KEY column or a column ** constrained by a UNIQUE constraint. */ if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_PRIMKEY)|libc.Int32FromInt32(COLFLAG_UNIQUE)) != 0 { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - v1 = __ccgo_ts + 11601 + v1 = __ccgo_ts + 11726 } else { - v1 = __ccgo_ts + 5937 + v1 = __ccgo_ts + 6001 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11613, libc.VaList(bp+8, v1, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11738, libc.VaList(bp+8, v1, zCol)) goto exit_drop_column } /* Do not allow the number of columns to go to zero */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) <= int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11641, libc.VaList(bp+8, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11766, libc.VaList(bp+8, zCol)) goto exit_drop_column } /* Edit the sqlite_schema table */ @@ -96263,12 +96771,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_ALTER_TABLE), zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol) != 0 { goto exit_drop_column } - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1650, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1664, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1))) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11689, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11814, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterDrop)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11810, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11935, int32(1)) /* Edit rows of table on disk */ if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 && int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { pPk = uintptr(0) @@ -96326,7 +96834,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if i == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regOut) } else { + aff = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity + if int32(aff) == int32(SQLITE_AFF_REAL) { + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = int8(SQLITE_AFF_NUMERIC) + } _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, i, regOut) + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = aff } nField++ } @@ -96351,6 +96864,7 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iCur, addr+int32(1)) _sqlite3VdbeJumpHere(tls, v, addr) } + goto exit_drop_column exit_drop_column: ; _sqlite3DbFree(tls, db, zCol) @@ -96370,27 +96884,27 @@ var _aAlterTableFuncs = [5]TFuncDef{ 0: { FnArg: int8(9), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11828, + FzName: __ccgo_ts + 11953, }, 1: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11849, + FzName: __ccgo_ts + 11974, }, 2: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11869, + FzName: __ccgo_ts + 11994, }, 3: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11888, + FzName: __ccgo_ts + 12013, }, 4: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11907, + FzName: __ccgo_ts + 12032, }, } @@ -96601,7 +97115,7 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW ** side-effect of the CREATE TABLE statement is to leave the rootpage ** of the new table in register pParse->regRoot. This is important ** because the OpenWrite opcode below will be needing it. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+12010, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+12135, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) aRoot[i] = uint32((*TParse)(unsafe.Pointer(pParse)).FregRoot) aCreateTbl[i] = uint8(OPFLAG_P2ISREG) } @@ -96612,10 +97126,10 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW aRoot[i] = (*TTable)(unsafe.Pointer(pStat)).Ftnum _sqlite3TableLock(tls, pParse, iDb, aRoot[i], uint8(1), zTab) if zWhere != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+12033, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+12158, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+12063, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+12188, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) } else { /* The sqlite_stat[134] table already exists. Delete all rows. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Clear), int32(aRoot[i]), iDb) @@ -96647,15 +97161,15 @@ var _aTable = [3]struct { FzCols uintptr }{ 0: { - FzName: __ccgo_ts + 11930, - FzCols: __ccgo_ts + 11943, + FzName: __ccgo_ts + 12055, + FzCols: __ccgo_ts + 12068, }, 1: { - FzName: __ccgo_ts + 11956, - FzCols: __ccgo_ts + 11969, + FzName: __ccgo_ts + 12081, + FzCols: __ccgo_ts + 12094, }, 2: { - FzName: __ccgo_ts + 11997, + FzName: __ccgo_ts + 12122, }, } @@ -96957,7 +97471,7 @@ func _statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statInitFuncdef = TFuncDef{ FnArg: int8(4), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12081, + FzName: __ccgo_ts + 12206, } func init() { @@ -97103,6 +97617,7 @@ func _sampleInsert(tls *libc.TLS, p uintptr, pNew uintptr, nEqZero int32) { (*TStatAccum)(unsafe.Pointer(p)).FnSample++ /* Zero the first nEqZero entries in the anEq[] array. */ libc.X__builtin___memset_chk(tls, (*TStatSample)(unsafe.Pointer(pSample)).FanEq, 0, uint64(8)*uint64(nEqZero), libc.X__builtin_object_size(tls, (*TStatSample)(unsafe.Pointer(pSample)).FanEq, 0)) + goto find_new_min find_new_min: ; if (*TStatAccum)(unsafe.Pointer(p)).FnSample >= (*TStatAccum)(unsafe.Pointer(p)).FmxSample { @@ -97330,7 +97845,7 @@ func _statPush(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statPushFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(2) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12091, + FzName: __ccgo_ts + 12216, } func init() { @@ -97380,7 +97895,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } else { v1 = (*TStatAccum)(unsafe.Pointer(p)).FnRow } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+12101, libc.VaList(bp+72, v1)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+12226, libc.VaList(bp+72, v1)) i = 0 for { if !(i < (*TStatAccum)(unsafe.Pointer(p)).FnKeyCol) { @@ -97391,7 +97906,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if iVal == uint64(2) && (*TStatAccum)(unsafe.Pointer(p)).FnRow*uint64(10) <= nDistinct*uint64(11) { iVal = uint64(1) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+12106, libc.VaList(bp+72, iVal)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+12231, libc.VaList(bp+72, iVal)) goto _2 _2: ; @@ -97430,7 +97945,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if !(i1 < (*TStatAccum)(unsafe.Pointer(p)).FnCol) { break } - Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+12112, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) + Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+12237, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) goto _3 _3: ; @@ -97448,7 +97963,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statGetFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(1) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12118, + FzName: __ccgo_ts + 12243, } func init() { @@ -97469,9 +97984,9 @@ func _callStatGet(tls *libc.TLS, pParse uintptr, regStat int32, iParam int32, re // */ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr, iStatCur int32, iMem int32, iTab int32) { var aGotoChng, db, pColl, pIdx, pPk, pStat1, pX, v, zIdxName uintptr - var addrIsNull, addrNext, addrNextRow, addrRewind, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 + var addrGotoEnd, addrIsNull, addrNext, addrNextRow, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 var needTableCnt, seekOp Tu8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrIsNull, addrNext, addrNextRow, addrRewind, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrGotoEnd, addrIsNull, addrNext, addrNextRow, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Loop counter */ jZeroRows = -int32(1) /* Index of database containing pTab */ needTableCnt = uint8(1) @@ -97514,7 +98029,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Do not gather statistics on views or virtual tables */ return } - if Xsqlite3_strlike(tls, __ccgo_ts+12127, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { + if Xsqlite3_strlike(tls, __ccgo_ts+12252, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { /* Do not gather statistics on system tables */ return } @@ -97528,7 +98043,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint return } (*TTable)(unsafe.Pointer(pStat1)).FzName = pStat1 + 1*104 - libc.X__builtin___memcpy_chk(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11930, uint64(13), libc.X__builtin_object_size(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, 0)) + libc.X__builtin___memcpy_chk(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+12055, uint64(13), libc.X__builtin_object_size(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, 0)) (*TTable)(unsafe.Pointer(pStat1)).FnCol = int16(3) (*TTable)(unsafe.Pointer(pStat1)).FiPKey = int16(-int32(1)) _sqlite3VdbeAddOp4(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Noop), 0, 0, 0, pStat1, -int32(6)) @@ -97582,9 +98097,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* ** Pseudo-code for loop that calls stat_push(): ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() ** goto chng_addr_0; ** ** next_row: @@ -97618,32 +98138,29 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Open a read-only cursor on the index being analyzed. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenRead), iIdxCur, int32((*TIndex)(unsafe.Pointer(pIdx)).Ftnum), iDb) _sqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx) - /* Invoke the stat_init() function. The arguments are: + /* Implementation of the following: ** + ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() + ** goto chng_addr_0; + */ + _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + /* Arguments to stat_init(): ** (1) the number of columns in the index including the rowid ** (or for a WITHOUT ROWID table, the number of PK columns), ** (2) the number of columns in the key without the rowid/pk - ** (3) estimated number of rows in the index, - */ + ** (3) estimated number of rows in the index. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), nCol, regStat+int32(1)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol), regRowid) - if (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0) { - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iIdxCur, regTemp) - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - } else { - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, int32(1)) - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) != uint32(0))) _sqlite3VdbeAddFunctionCall(tls, pParse, 0, regStat+int32(1), regStat, int32(4), uintptr(unsafe.Pointer(&_statInitFuncdef)), 0) - /* Implementation of the following: - ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; - ** regChng = 0 - ** goto next_push_0; - ** - */ + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regChng) addrNextRow = _sqlite3VdbeCurrentAddr(tls, v) if nColTest > 0 { @@ -97752,8 +98269,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iIdxCur, addrNextRow) } /* Add the entry to the stat1 table. */ + if (*TIndex)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 { + /* Partial indexes might get a zero-entry in sqlite_stat1. But + ** an empty table is omitted from sqlite_stat1. */ + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + addrGotoEnd = 0 + } _callStatGet(tls, pParse, regStat, STAT_GET_STAT1, regStat1) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+12137, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+12262, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP4(tls, v, -int32(1), pStat1, -int32(5)) @@ -97772,6 +98295,11 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint v18 = int32(OP_NotFound) } seekOp = uint8(v18) + /* No STAT4 data is generated if the number of rows is zero */ + if addrGotoEnd == 0 { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Cast), regStat1, int32(SQLITE_AFF_INTEGER)) + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) + } if doOnce != 0 { mxCol = nCol /* Compute the maximum number of columns in any index */ @@ -97824,7 +98352,9 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeJumpHere(tls, v, addrIsNull) } /* End of analysis */ - _sqlite3VdbeJumpHere(tls, v, addrRewind) + if addrGotoEnd != 0 { + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + } goto _13 _13: ; @@ -97837,7 +98367,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iTabCur, regStat1) jZeroRows = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regIdxname) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+12137, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+12262, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND)) @@ -97909,9 +98439,9 @@ func _analyzeTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr iStatCur = (*TParse)(unsafe.Pointer(pParse)).FnTab *(*int32)(unsafe.Pointer(pParse + 52)) += int32(3) if pOnlyIdx != 0 { - _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+12141) + _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+12266) } else { - _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+12145) + _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+12270) } _analyzeOneTable(tls, pParse, pTab, pOnlyIdx, iStatCur, (*TParse)(unsafe.Pointer(pParse)).FnMem+int32(1), (*TParse)(unsafe.Pointer(pParse)).FnTab) _loadAnalysis(tls, pParse, iDb) @@ -98040,7 +98570,7 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, _, _, _, _, _, _ = c, i, sz, v, z, v2 z = zIntArray if z == uintptr(0) { - z = __ccgo_ts + 1650 + z = __ccgo_ts + 1664 } i = 0 for { @@ -98075,17 +98605,17 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 6, 0x40) for *(*int8)(unsafe.Pointer(z)) != 0 { - if Xsqlite3_strglob(tls, __ccgo_ts+12149, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+12274, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 2, 0x4) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+12160, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+12285, z) == 0 { sz = _sqlite3Atoi(tls, z+uintptr(3)) if sz < int32(2) { sz = int32(2) } (*TIndex)(unsafe.Pointer(pIndex)).FszIdxRow = _sqlite3LogEst(tls, uint64(sz)) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+12170, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+12295, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 6, 0x40) } } @@ -98461,11 +98991,11 @@ func _loadStat4(tls *libc.TLS, db uintptr, zDb uintptr) (r int32) { _, _, _, _ = pStat4, rc, v1, v2 rc = SQLITE_OK if v2 = (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0); v2 { - v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11956, zDb) + v1 = _sqlite3FindTable(tls, db, __ccgo_ts+12081, zDb) pStat4 = v1 } if v2 && v1 != uintptr(0) && int32((*TTable)(unsafe.Pointer(pStat4)).FeTabType) == TABTYP_NORM { - rc = _loadStatTbl(tls, db, __ccgo_ts+12182, __ccgo_ts+12251, zDb) + rc = _loadStatTbl(tls, db, __ccgo_ts+12307, __ccgo_ts+12376, zDb) } return rc } @@ -98531,10 +99061,10 @@ func _sqlite3AnalysisLoad(tls *libc.TLS, db uintptr, iDb int32) (r int32) { /* Load new statistics out of the sqlite_stat1 table */ (*(*TanalysisInfo)(unsafe.Pointer(bp))).Fdb = db (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName - v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11930, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) + v3 = _sqlite3FindTable(tls, db, __ccgo_ts+12055, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) pStat1 = v3 if v3 != 0 && int32((*TTable)(unsafe.Pointer(pStat1)).FeTabType) == TABTYP_NORM { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+12303, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+12428, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -98647,7 +99177,7 @@ func _resolveAttachExpr(tls *libc.TLS, pName uintptr, pExpr uintptr) (r int32) { // ** database iDb attached to handle db. // */ func _sqlite3DbIsNamed(tls *libc.TLS, db uintptr, iDb int32, zName uintptr) (r int32) { - return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6933, zName) == 0) + return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6997, zName) == 0) } // C documentation @@ -98689,21 +99219,21 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { zFile = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) zName = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if zFile == uintptr(0) { - zFile = __ccgo_ts + 1650 + zFile = __ccgo_ts + 1664 } if zName == uintptr(0) { - zName = __ccgo_ts + 1650 + zName = __ccgo_ts + 1664 } if int32(uint32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x4>>2)) != 0 { /* This is not a real ATTACH. Instead, this routine is being called ** from sqlite3_deserialize() to close database db->init.iDb and ** reopen it as a MemDB */ *(*uintptr)(unsafe.Pointer(bp + 40)) = uintptr(0) - *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+4315) + *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+4379) if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { return } - rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12344, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) + rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12469, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) if rc == SQLITE_OK { pNewSchema = _sqlite3SchemaGet(tls, db, *(*uintptr)(unsafe.Pointer(bp + 40))) if pNewSchema != 0 { @@ -98734,7 +99264,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { ** * Specified database name already being used. */ if (*Tsqlite3)(unsafe.Pointer(db)).FnDb >= *(*int32)(unsafe.Pointer(db + 136 + 7*4))+int32(2) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12347, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12472, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) goto attach_error } i = 0 @@ -98743,7 +99273,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { break } if _sqlite3DbIsNamed(tls, db, i, zName) != 0 { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12384, libc.VaList(bp+56, zName)) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12509, libc.VaList(bp+56, zName)) goto attach_error } goto _1 @@ -98791,7 +99321,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FnoSharedCache = uint8(0) if rc == int32(SQLITE_CONSTRAINT) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12414, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12539, 0) } else { if rc == SQLITE_OK { (*TDb)(unsafe.Pointer(pNew)).FpSchema = _sqlite3SchemaGet(tls, db, (*TDb)(unsafe.Pointer(pNew)).FpBt) @@ -98799,7 +99329,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { rc = int32(SQLITE_NOMEM) } else { if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Ffile_format != 0 && int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Fenc) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12443, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12568, 0) rc = int32(SQLITE_ERROR) } } @@ -98843,16 +99373,17 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)<= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12539, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12664, libc.VaList(bp+136, zName)) goto detach_error } if i < int32(2) { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12560, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12685, libc.VaList(bp+136, zName)) goto detach_error } if _sqlite3BtreeTxnState(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != SQLITE_TXN_NONE || _sqlite3BtreeIsInBackup(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != 0 { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12586, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12711, libc.VaList(bp+136, zName)) goto detach_error } /* If any TEMP triggers reference the schema being detached, move those @@ -98933,6 +99464,7 @@ func _detachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*TDb)(unsafe.Pointer(pDb)).FpSchema = uintptr(0) _sqlite3CollapseDatabaseArray(tls, db) return + goto detach_error detach_error: ; Xsqlite3_result_error(tls, context, bp, -int32(1)) @@ -98987,6 +99519,7 @@ func _codeAttach(tls *libc.TLS, pParse uintptr, type1 int32, pFunc uintptr, pAut */ _sqlite3VdbeAddOp1(tls, v, int32(OP_Expire), libc.BoolInt32(type1 == int32(SQLITE_ATTACH))) } + goto attach_end attach_end: ; _sqlite3ExprDelete(tls, db, pFilename) @@ -99008,7 +99541,7 @@ func _sqlite3Detach(tls *libc.TLS, pParse uintptr, pDbname uintptr) { var _detach_func = TFuncDef{ FnArg: int8(1), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12608, + FzName: __ccgo_ts + 12733, } func init() { @@ -99030,7 +99563,7 @@ func _sqlite3Attach(tls *libc.TLS, pParse uintptr, p uintptr, pDbname uintptr, p var _attach_func = TFuncDef{ FnArg: int8(3), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12622, + FzName: __ccgo_ts + 12747, } func init() { @@ -99056,7 +99589,7 @@ func _fixExprCb(tls *libc.TLS, p uintptr, pExpr uintptr) (r int32) { if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer((*TDbFixer)(unsafe.Pointer(pFix)).FpParse)).Fdb)).Finit1.Fbusy != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } else { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12636, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12761, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) return int32(WRC_Abort) } } @@ -99090,7 +99623,7 @@ func _fixSelectCb(tls *libc.TLS, p uintptr, pSelect uintptr) (r int32) { if int32((*TDbFixer)(unsafe.Pointer(pFix)).FbTemp) == 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { if iDb != _sqlite3FindDbName(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12660, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12785, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) return int32(WRC_Abort) } _sqlite3DbFree(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) @@ -99306,7 +99839,7 @@ func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uint // ** user-supplied authorization function returned an illegal value. // */ func _sqliteAuthBadReturnCode(tls *libc.TLS, pParse uintptr) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12706, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12831, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) } @@ -99334,11 +99867,11 @@ func _sqlite3AuthReadCol(tls *libc.TLS, pParse uintptr, zTab uintptr, zCol uintp } rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, int32(SQLITE_READ), zTab, zCol, zDb, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12729, libc.VaList(bp+8, zTab, zCol)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12854, libc.VaList(bp+8, zTab, zCol)) if (*Tsqlite3)(unsafe.Pointer(db)).FnDb > int32(2) || iDb != 0 { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12735, libc.VaList(bp+8, zDb, z)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12860, libc.VaList(bp+8, zDb, z)) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12741, libc.VaList(bp+8, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12866, libc.VaList(bp+8, z)) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != int32(SQLITE_IGNORE) && rc != SQLITE_OK { @@ -99398,7 +99931,7 @@ func _sqlite3AuthRead(tls *libc.TLS, pParse uintptr, pExpr uintptr, pSchema uint if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName } else { - zCol = __ccgo_ts + 8253 + zCol = __ccgo_ts + 8378 } } if int32(SQLITE_IGNORE) == _sqlite3AuthReadCol(tls, pParse, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol, iDb) { @@ -99433,7 +99966,7 @@ func _sqlite3AuthCheck(tls *libc.TLS, pParse uintptr, code int32, zArg1 uintptr, ** parameters can be either NULL or a string. */ rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, code, zArg1, zArg2, zArg3, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12768, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12893, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != SQLITE_OK && rc != int32(SQLITE_IGNORE) { @@ -99854,21 +100387,21 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp if i >= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { /* No match against the official names. But always match "main" ** to schema 0 as a legacy fallback. */ - if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6933) == 0 { + if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6997) == 0 { i = 0 } else { return uintptr(0) } } p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, zName) - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6873, int32(7)) == 0 { + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6937, int32(7)) == 0 { if i == int32(1) { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6900+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6919+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6414+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6881) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6964+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6983+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6478+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6945) } } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6919+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6414) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6983+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6478) } } } @@ -99898,12 +100431,12 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp ; i++ } - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6873, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6919+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6414) + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6937, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6983+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6478) } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6900+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6881) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6964+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6945) } } } @@ -99941,7 +100474,7 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt ** can be an eponymous virtual table. */ if int32((*TParse)(unsafe.Pointer(pParse)).FprepFlags)&int32(SQLITE_PREPARE_NO_VTAB) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 { pMod = _sqlite3HashFind(tls, db+576, zName) - if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12783, int32(7)) == 0 { + if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12908, int32(7)) == 0 { pMod = _sqlite3PragmaVtabRegister(tls, db, zName) } if pMod != 0 && _sqlite3VtabEponymousTableInit(tls, pParse, pMod) != 0 { @@ -99959,15 +100492,15 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt } if p == uintptr(0) { if flags&uint32(LOCATE_VIEW) != 0 { - v1 = __ccgo_ts + 12791 + v1 = __ccgo_ts + 12916 } else { - v1 = __ccgo_ts + 12804 + v1 = __ccgo_ts + 12929 } zMsg = v1 if zDbase != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7137, libc.VaList(bp+8, zMsg, zDbase, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7201, libc.VaList(bp+8, zMsg, zDbase, zName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7147, libc.VaList(bp+8, zMsg, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7272, libc.VaList(bp+8, zMsg, zName)) } } else { } @@ -100005,12 +100538,12 @@ func _sqlite3LocateTableItem(tls *libc.TLS, pParse uintptr, flags Tu32, p uintpt // ** names into the new preferred names, as appropriate. // */ func _sqlite3PreferredTableName(tls *libc.TLS, zName uintptr) (r uintptr) { - if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6873, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6414+7) == 0 { - return __ccgo_ts + 6919 + if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6937, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6478+7) == 0 { + return __ccgo_ts + 6983 } - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6881+7) == 0 { - return __ccgo_ts + 6900 + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6945+7) == 0 { + return __ccgo_ts + 6964 } } return zName @@ -100535,7 +101068,7 @@ func _sqlite3OpenSchemaTable(tls *libc.TLS, p uintptr, iDb int32) { var v uintptr _ = v v = _sqlite3GetVdbe(tls, p) - _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6414) + _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6478) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_OpenWrite), 0, int32(SCHEMA_ROOT), iDb, int32(5)) if (*TParse)(unsafe.Pointer(p)).FnTab == 0 { (*TParse)(unsafe.Pointer(p)).FnTab = int32(1) @@ -100567,7 +101100,7 @@ func _sqlite3FindDbName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) { } /* "main" is always an acceptable alias for the primary database ** even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME. */ - if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6933, zName) { + if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6997, zName) { break } goto _1 @@ -100625,13 +101158,13 @@ func _sqlite3TwoPartName(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12818, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12943, 0) return -int32(1) } *(*uintptr)(unsafe.Pointer(pUnqual)) = pName2 iDb = _sqlite3FindDb(tls, db, pName1) if iDb < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12835, libc.VaList(bp+8, pName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12960, libc.VaList(bp+8, pName1)) return -int32(1) } } else { @@ -100675,12 +101208,12 @@ func _sqlite3CheckObjectName(tls *libc.TLS, pParse uintptr, zName uintptr, zType } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if Xsqlite3_stricmp(tls, zType, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit))) != 0 || Xsqlite3_stricmp(tls, zName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 1*8))) != 0 || Xsqlite3_stricmp(tls, zTblName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 2*8))) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1650, 0) /* corruptSchema() will supply the error */ + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1664, 0) /* corruptSchema() will supply the error */ return int32(SQLITE_ERROR) } } else { - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6873, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12855, libc.VaList(bp+8, zName)) + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6937, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12980, libc.VaList(bp+8, zName)) return int32(SQLITE_ERROR) } } @@ -100895,9 +101428,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Special case: Parsing the sqlite_schema or sqlite_temp_schema schema */ iDb = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6881 + v1 = __ccgo_ts + 6945 } else { - v1 = __ccgo_ts + 6414 + v1 = __ccgo_ts + 6478 } zName = _sqlite3DbStrDup(tls, db, v1) *(*uintptr)(unsafe.Pointer(bp)) = pName1 @@ -100910,7 +101443,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 && (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) && iDb != int32(1) { /* If creating a temp table, the name may not be qualified. Unless ** the database name is "temp" anyway. */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12897, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13022, 0) return } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 { @@ -100926,9 +101459,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui return } if isView != 0 { - v2 = __ccgo_ts + 11144 + v2 = __ccgo_ts + 11269 } else { - v2 = __ccgo_ts + 9406 + v2 = __ccgo_ts + 9531 } if _sqlite3CheckObjectName(tls, pParse, zName, v2, zName) != 0 { goto begin_table_error @@ -100938,9 +101471,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui } zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp == int32(1) { - v3 = __ccgo_ts + 6881 + v3 = __ccgo_ts + 6945 } else { - v3 = __ccgo_ts + 6414 + v3 = __ccgo_ts + 6478 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto begin_table_error @@ -100964,11 +101497,11 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if pTable != 0 { if !(noErr != 0) { if int32((*TTable)(unsafe.Pointer(pTable)).FeTabType) == int32(TABTYP_VIEW) { - v4 = __ccgo_ts + 11144 + v4 = __ccgo_ts + 11269 } else { - v4 = __ccgo_ts + 9406 + v4 = __ccgo_ts + 9531 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12938, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13063, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) _sqlite3ForceNotReadOnly(tls, pParse) @@ -100976,7 +101509,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui goto begin_table_error } if _sqlite3FindIndex(tls, db, zName, zDb1) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12959, libc.VaList(bp+16, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13084, libc.VaList(bp+16, zName)) goto begin_table_error } } @@ -101064,6 +101597,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Normal (non-error) return. */ return /* If an error occurs, we jump here */ + goto begin_table_error begin_table_error: ; (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) @@ -101127,7 +101661,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { _, _, _ = db, pHash, pRet db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12994, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13119, 0) } else { } (*TParse)(unsafe.Pointer(pParse)).FbReturning = uint8(1) @@ -101143,7 +101677,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return } - Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+13028, libc.VaList(bp+8, pParse)) + Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+13153, libc.VaList(bp+8, pParse)) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.FzName = pRet + 196 (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Fop = uint8(TK_RETURNING) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Ftr_tm = uint8(TRIGGER_AFTER) @@ -101190,7 +101724,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok return } if int32((*TTable)(unsafe.Pointer(p)).FnCol)+int32(1) > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13048, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13173, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) return } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -101200,12 +101734,12 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok ** by the parser, we can sometimes end up with a typename that ends ** with "generated always". Check for this case and omit the surplus ** text. */ - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+13071, int32(6)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+13196, int32(6)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(6) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1)))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- } - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+13078, int32(9)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+13203, int32(9)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(9) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1)))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- @@ -101254,7 +101788,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok break } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FhName) == int32(hName) && _sqlite3StrICmp(tls, z, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FzCnName) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13088, libc.VaList(bp+40, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13213, libc.VaList(bp+40, z)) _sqlite3DbFree(tls, db, z) return } @@ -101462,10 +101996,10 @@ func _sqlite3AddDefaultValue(tls *libc.TLS, pParse uintptr, pExpr uintptr, zStar isInit = libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) != int32(1)) pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(p)).FnCol)-int32(1))*16 if !(_sqlite3ExprIsConstantOrFunction(tls, pExpr, uint8(isInit)) != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13114, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13239, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13159, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13284, 0) } else { libc.X__builtin___memset_chk(tls, bp, 0, uint64(72), libc.X__builtin_object_size(tls, bp, 0)) (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_SPAN) @@ -101523,7 +102057,7 @@ func _makeColumnPartOfPrimaryKey(tls *libc.TLS, pParse uintptr, pCol uintptr) { p1 = pCol + 14 *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(COLFLAG_PRIMKEY)) if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13200, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13325, 0) } } @@ -101560,7 +102094,7 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError goto primary_key_exit } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasPrimaryKey) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13252, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13377, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto primary_key_exit } *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_HasPrimaryKey) @@ -101616,12 +102150,13 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError _sqlite3HasExplicitNulls(tls, pParse, pList) } else { if autoInc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13293, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13418, 0) } else { _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), pList, onError, uintptr(0), uintptr(0), sortOrder, 0, uint8(SQLITE_IDXTYPE_PRIMARYKEY)) pList = uintptr(0) } } + goto primary_key_exit primary_key_exit: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) @@ -101731,17 +102266,17 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui } pCol = (*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-int32(1))*16 if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) == int32(PARSE_MODE_DECLARE_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13349, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13474, 0) goto generated_done } if int32((*TColumn)(unsafe.Pointer(pCol)).FiDflt) > 0 { goto generated_error } if pType != 0 { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13392, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13517, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { /* no-op */ } else { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13400, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13525, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { eType = uint8(COLFLAG_STORED) } else { goto generated_error @@ -101770,9 +102305,11 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui _sqlite3ColumnSetExpr(tls, pParse, pTab, pCol, pExpr) pExpr = uintptr(0) goto generated_done + goto generated_error generated_error: ; - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13407, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13532, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + goto generated_done generated_done: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -101934,13 +102471,13 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { } n += _identLength(tls, (*TTable)(unsafe.Pointer(p)).FzName) if n < int32(50) { - zSep = __ccgo_ts + 1650 - zSep2 = __ccgo_ts + 13438 - zEnd = __ccgo_ts + 5454 + zSep = __ccgo_ts + 1664 + zSep2 = __ccgo_ts + 13563 + zEnd = __ccgo_ts + 5518 } else { - zSep = __ccgo_ts + 13440 - zSep2 = __ccgo_ts + 13444 - zEnd = __ccgo_ts + 13449 + zSep = __ccgo_ts + 13565 + zSep2 = __ccgo_ts + 13569 + zEnd = __ccgo_ts + 13574 } n += int32(35) + int32(6)*int32((*TTable)(unsafe.Pointer(p)).FnCol) zStmt = _sqlite3DbMallocRaw(tls, uintptr(0), uint64(n)) @@ -101948,7 +102485,7 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { _sqlite3OomFault(tls, db) return uintptr(0) } - Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13452, 0) + Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13577, 0) *(*int32)(unsafe.Pointer(bp)) = _sqlite3Strlen30(tls, zStmt) _identPut(tls, zStmt, bp, (*TTable)(unsafe.Pointer(p)).FzName) v2 = *(*int32)(unsafe.Pointer(bp)) @@ -101974,17 +102511,17 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { i++ pCol += 16 } - Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3799, libc.VaList(bp+16, zEnd)) + Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3863, libc.VaList(bp+16, zEnd)) return zStmt } var _azType1 = [6]uintptr{ - 0: __ccgo_ts + 1650, - 1: __ccgo_ts + 13466, - 2: __ccgo_ts + 13472, - 3: __ccgo_ts + 13477, - 4: __ccgo_ts + 13482, - 5: __ccgo_ts + 13472, + 0: __ccgo_ts + 1664, + 1: __ccgo_ts + 13591, + 2: __ccgo_ts + 13597, + 3: __ccgo_ts + 13602, + 4: __ccgo_ts + 13607, + 5: __ccgo_ts + 13597, } // C documentation @@ -102558,13 +103095,13 @@ func _sqlite3ShadowTableName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr, tabOpts Tu32, pSelect uintptr) { bp := tls.Alloc(112) defer tls.Free(112) - var addrInsLoop, addrTop, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v4, v6, v8 int32 + var addrInsLoop, addrTop, iCsr, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v10, v4, v6, v8 int32 var colFlags Tu32 - var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v5, v7, v9 uintptr - var v10 Ti16 + var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v13, v5, v7, v9 uintptr + var v12 Ti16 var _ /* dest at bp+0 */ TSelectDest - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v4, v5, v6, v7, v8, v9 /* The new table */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iCsr, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v12, v13, v4, v5, v6, v7, v8, v9 /* The new table */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ if pEnd == uintptr(0) && pSelect == uintptr(0) { return } @@ -102586,7 +103123,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if pSelect != 0 || !(int32((*TTable)(unsafe.Pointer(p)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) && (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1650, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1664, 0) return } (*TTable)(unsafe.Pointer(p)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum @@ -102613,9 +103150,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(ii)*16 if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf0>>4)) == COLTYPE_CUSTOM { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_HASTYPE) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13488, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1650))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13613, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1664))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13521, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13646, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } return } else { @@ -102636,11 +103173,11 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* Special processing for WITHOUT ROWID Tables */ if tabOpts&uint32(TF_WithoutRowid) != 0 { if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13548, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13673, 0) return } if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasPrimaryKey) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13598, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13723, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) return } *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) @@ -102687,7 +103224,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ii1++ } if nNG == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13630, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13755, 0) return } } @@ -102721,12 +103258,12 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if int32((*TTable)(unsafe.Pointer(p)).FeTabType) == TABTYP_NORM { /* A regular table */ - zType = __ccgo_ts + 9406 - zType2 = __ccgo_ts + 13674 + zType = __ccgo_ts + 9531 + zType2 = __ccgo_ts + 13799 } else { /* A view */ - zType = __ccgo_ts + 11144 - zType2 = __ccgo_ts + 13680 + zType = __ccgo_ts + 11269 + zType2 = __ccgo_ts + 13805 } /* If this is a CREATE TABLE xx AS SELECT ..., execute the SELECT ** statement to populate the new table. The root-page number for the @@ -102741,28 +103278,31 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** a schema-lock excludes all other database users, the write-lock would ** be redundant. */ - if pSelect != 0 { /* A table that describes the SELECT results */ + if pSelect != 0 { /* Write cursor on the new table */ if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) (*TParse)(unsafe.Pointer(pParse)).FnErr++ return } - v5 = pParse + 56 - *(*int32)(unsafe.Pointer(v5))++ + v5 = pParse + 52 v4 = *(*int32)(unsafe.Pointer(v5)) - regYield = v4 + *(*int32)(unsafe.Pointer(v5))++ + iCsr = v4 v7 = pParse + 56 *(*int32)(unsafe.Pointer(v7))++ v6 = *(*int32)(unsafe.Pointer(v7)) - regRec = v6 + regYield = v6 v9 = pParse + 56 *(*int32)(unsafe.Pointer(v9))++ v8 = *(*int32)(unsafe.Pointer(v9)) - regRowid = v8 + regRec = v8 + v11 = pParse + 56 + *(*int32)(unsafe.Pointer(v11))++ + v10 = *(*int32)(unsafe.Pointer(v11)) + regRowid = v10 _sqlite3MayAbort(tls, pParse) - _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), int32(1), (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) + _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), iCsr, (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_P2ISREG)) - (*TParse)(unsafe.Pointer(pParse)).FnTab = int32(2) addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { @@ -102772,9 +103312,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr if pSelTab == uintptr(0) { return } - v10 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol - (*TTable)(unsafe.Pointer(p)).FnNVCol = v10 - (*TTable)(unsafe.Pointer(p)).FnCol = v10 + v12 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol + (*TTable)(unsafe.Pointer(p)).FnNVCol = v12 + (*TTable)(unsafe.Pointer(p)).FnCol = v12 (*TTable)(unsafe.Pointer(p)).FaCol = (*TTable)(unsafe.Pointer(pSelTab)).FaCol (*TTable)(unsafe.Pointer(pSelTab)).FnCol = 0 (*TTable)(unsafe.Pointer(pSelTab)).FaCol = uintptr(0) @@ -102789,33 +103329,33 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr addrInsLoop = _sqlite3VdbeAddOp1(tls, v, int32(OP_Yield), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSDParm) _sqlite3VdbeAddOp3(tls, v, int32(OP_MakeRecord), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst, (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst, regRec) _sqlite3TableAffinity(tls, v, p, 0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), int32(1), regRowid) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), int32(1), regRec, regRowid) + _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iCsr, regRowid) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iCsr, regRec, regRowid) _sqlite3VdbeGoto(tls, v, addrInsLoop) _sqlite3VdbeJumpHere(tls, v, addrInsLoop) - _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), int32(1)) + _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), iCsr) } /* Compute the complete text of the CREATE statement */ if pSelect != 0 { zStmt = _createTableStmt(tls, db, p) } else { if tabOpts != 0 { - v11 = pParse + 288 + v13 = pParse + 288 } else { - v11 = pEnd + v13 = pEnd } - pEnd2 = v11 + pEnd2 = v13 n = int32(int64((*TToken)(unsafe.Pointer(pEnd2)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) if int32(*(*int8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pEnd2)).Fz))) != int32(';') { n = int32(uint32(n) + (*TToken)(unsafe.Pointer(pEnd2)).Fn) } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13685, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13810, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) } /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13700, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13825, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) _sqlite3DbFree(tls, db, zStmt) _sqlite3ChangeCookie(tls, pParse, iDb) /* Check to see if we need to create an sqlite_sequence table for @@ -102824,17 +103364,16 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != uint32(0) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != libc.Int32FromInt32(PARSE_MODE_NORMAL)) { pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).FpSeqTab == uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13798, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13923, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) } } /* Reparse everything to update our internal data structures */ - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13840, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13965, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) /* Test for cycles in generated columns and illegal expressions ** in CHECK constraints and in DEFAULT clauses. */ if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasGenerated) != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13874, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(0x0001), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13999, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13895, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } /* Add the table to the in-memory representation of the database. */ @@ -102851,7 +103390,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* If this is the magic sqlite_sequence table used by autoincrement, ** then record a pointer to this table in the main database structure ** so that INSERT can find the table easily. */ - if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9928) == 0 { + if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+10053) == 0 { (*TSchema)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FpSchema)).FpSeqTab = p } } @@ -102884,7 +103423,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*uintptr)(unsafe.Pointer(bp + 112)) = uintptr(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if int32((*TParse)(unsafe.Pointer(pParse)).FnVar) > 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13927, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14020, 0) goto create_view_fail } _sqlite3StartTable(tls, pParse, pName1, pName2, isTemp, int32(1), 0, noErr) @@ -102901,7 +103440,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(TF_NoVisibleRowid) /* Never allow rowid in view */ _sqlite3TwoPartName(tls, pParse, pName1, pName2, bp+112) iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(p)).FpSchema) - _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+11144, *(*uintptr)(unsafe.Pointer(bp + 112))) + _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+11269, *(*uintptr)(unsafe.Pointer(bp + 112))) if _sqlite3FixSelect(tls, bp+16, pSelect) != 0 { goto create_view_fail } @@ -102943,6 +103482,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui (*(*TToken)(unsafe.Pointer(bp))).Fn = uint32(1) /* Use sqlite3EndTable() to add the view to the schema table */ _sqlite3EndTable(tls, pParse, uintptr(0), bp, uint32(0), uintptr(0)) + goto create_view_fail create_view_fail: ; _sqlite3SelectDelete(tls, db, pSelect) @@ -102996,7 +103536,7 @@ func _viewGetColumnNames(tls *libc.TLS, pParse uintptr, pTable uintptr) (r int32 ** SELECT * FROM temp.ex1; */ if int32((*TTable)(unsafe.Pointer(pTable)).FnCol) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13963, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14056, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) return int32(1) } /* If we get this far, it means we need to compute the table names. @@ -103180,7 +103720,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { v = _sqlite3GetVdbe(tls, pParse) r1 = _sqlite3GetTempReg(tls, pParse) if iTable < int32(2) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13993, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14086, 0) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Destroy), iTable, r1, iDb) _sqlite3MayAbort(tls, pParse) @@ -103193,7 +103733,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { ** is in register NNN. See grammar rules associated with the TK_REGISTER ** token for additional information. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14008, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14101, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) _sqlite3ReleaseTempReg(tls, pParse, r1) } @@ -103276,9 +103816,9 @@ func _sqlite3ClearStatTables(tls *libc.TLS, pParse uintptr, iDb int32, zType uin if !(i <= int32(4)) { break } - Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+14075, libc.VaList(bp+32, i)) + Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+14168, libc.VaList(bp+32, i)) if _sqlite3FindTable(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, bp, zDbName) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+12033, libc.VaList(bp+32, zDbName, bp, zType, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+12158, libc.VaList(bp+32, zDbName, bp, zType, zName)) } goto _1 _1: @@ -103319,7 +103859,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** move as a result of the drop (can happen in auto-vacuum mode). */ if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14089, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14182, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* Drop all entries in the schema table that refer to the ** table. The program name loops through the schema table and deletes @@ -103328,7 +103868,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** created in the temp database that refers to a table in another ** database. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14134, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14227, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !(isView != 0) && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { _destroyTable(tls, pParse, pTab) } @@ -103363,11 +103903,11 @@ func _sqlite3ReadOnlyShadowTables(tls *libc.TLS, db uintptr) (r int32) { // ** Return true if it is not allowed to drop the given table // */ func _tableMayNotBeDropped(tls *libc.TLS, db uintptr, pTab uintptr) (r int32) { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6873, int32(7)) == 0 { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3420, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6937, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3484, int32(4)) == 0 { return 0 } - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7614, int32(10)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7739, int32(10)) == 0 { return 0 } return int32(1) @@ -103422,9 +103962,9 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6881 + v1 = __ccgo_ts + 6945 } else { - v1 = __ccgo_ts + 6414 + v1 = __ccgo_ts + 6478 } zTab = v1 zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName @@ -103457,18 +103997,18 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if _tableMayNotBeDropped(tls, db, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14201, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14294, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Ensure DROP TABLE is not used on a view, and DROP VIEW is not used ** on a table. */ if isView != 0 && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14229, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14322, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } if !(isView != 0) && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14263, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14356, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Generate code to remove the table from the schema table @@ -103478,11 +104018,12 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) if !(isView != 0) { - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+12145, (*TTable)(unsafe.Pointer(pTab)).FzName) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+12270, (*TTable)(unsafe.Pointer(pTab)).FzName) _sqlite3FkDropTable(tls, pParse, pName, pTab) } _sqlite3CodeDropTable(tls, pParse, pTab, iDb, isView) } + goto exit_drop_table exit_drop_table: ; _sqlite3SrcListDelete(tls, db, pName) @@ -103525,13 +104066,13 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p goto fk_end } if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14295, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14388, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) goto fk_end } nCol = int32(1) } else { if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14358, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14451, 0) goto fk_end } else { nCol = (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr @@ -103594,7 +104135,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p j++ } if j >= int32((*TTable)(unsafe.Pointer(p)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14452, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14545, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) goto fk_end } if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { @@ -103646,6 +104187,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p FpDfltList uintptr })(unsafe.Pointer(p + 64))).FpFKey = pFKey pFKey = uintptr(0) + goto fk_end fk_end: ; _sqlite3DbFree(tls, db, pFKey) @@ -103853,11 +104395,11 @@ func _sqlite3HasExplicitNulls(tls *libc.TLS, pParse uintptr, pList uintptr) (r i if int32(uint32(*(*uint16)(unsafe.Pointer(pList + 8 + uintptr(i)*32 + 16 + 4))&0x20>>5)) != 0 { sf = (*(*TExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32))).Ffg.FsortFlags if int32(sf) == 0 || int32(sf) == int32(3) { - v2 = __ccgo_ts + 14498 + v2 = __ccgo_ts + 14591 } else { - v2 = __ccgo_ts + 14504 + v2 = __ccgo_ts + 14597 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14509, libc.VaList(bp+8, v2)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14602, libc.VaList(bp+8, v2)) return int32(1) } goto _1 @@ -103935,7 +104477,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = int32(1) } } - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14537, *(*uintptr)(unsafe.Pointer(bp + 96))) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14630, *(*uintptr)(unsafe.Pointer(bp + 96))) if _sqlite3FixSrcList(tls, bp, pTblName) != 0 { /* Because the parser constructs pTblName from a single identifier, ** sqlite3FixSrcList can never fail. */ @@ -103945,7 +104487,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } if iDb == int32(1) && (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema != (*TTable)(unsafe.Pointer(pTab)).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14543, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14636, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { @@ -103959,16 +104501,16 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6873, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14593, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6937, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14686, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14621, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14714, 0) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14646, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14739, 0) goto exit_create_index } /* @@ -103989,19 +104531,19 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if zName == uintptr(0) { goto exit_create_index } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14537, (*TTable)(unsafe.Pointer(pTab)).FzName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14630, (*TTable)(unsafe.Pointer(pTab)).FzName) { goto exit_create_index } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if !((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0) { if _sqlite3FindTable(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14680, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14773, libc.VaList(bp+136, zName)) goto exit_create_index } } if _sqlite3FindIndex(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { if !(ifNotExist != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14714, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14807, libc.VaList(bp+136, zName)) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) _sqlite3ForceNotReadOnly(tls, pParse) @@ -104022,7 +104564,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pLoop = (*TIndex)(unsafe.Pointer(pLoop)).FpNext n++ } - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14738, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14831, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) if zName == uintptr(0) { goto exit_create_index } @@ -104040,9 +104582,9 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { zDb = (*TDb)(unsafe.Pointer(pDb)).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6881 + v2 = __ccgo_ts + 6945 } else { - v2 = __ccgo_ts + 6414 + v2 = __ccgo_ts + 6478 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v2, uintptr(0), zDb) != 0 { goto exit_create_index @@ -104070,7 +104612,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } _sqlite3ExprListSetSortOrder(tls, pList, sortOrder, -int32(1)) } else { - _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14537) + _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14630) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { goto exit_create_index } @@ -104154,7 +104696,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pCExpr = _sqlite3ExprSkipCollate(tls, (*TExprList_item)(unsafe.Pointer(pListItem)).FpExpr) if int32((*TExpr)(unsafe.Pointer(pCExpr)).Fop) != int32(TK_COLUMN) { if pTab == (*TParse)(unsafe.Pointer(pParse)).FpNewTable { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14761, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14854, 0) goto exit_create_index } if (*TIndex)(unsafe.Pointer(pIndex)).FaColExpr == uintptr(0) { @@ -104301,7 +104843,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u ** explicitly specified behavior for the index. */ if !(int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) || int32((*TIndex)(unsafe.Pointer(pIndex)).FonError) == int32(OE_Default)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14822, libc.VaList(bp+136, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14915, libc.VaList(bp+136, 0)) } if int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) { (*TIndex)(unsafe.Pointer(pIdx)).FonError = (*TIndex)(unsafe.Pointer(pIndex)).FonError @@ -104331,8 +104873,8 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != uintptr(0) { (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14864, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125123)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14957, 0) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125741)) goto exit_create_index } } @@ -104372,11 +104914,11 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* A named index with an explicit CREATE INDEX statement */ if onError == OE_None { - v13 = __ccgo_ts + 1650 + v13 = __ccgo_ts + 1664 } else { - v13 = __ccgo_ts + 14881 + v13 = __ccgo_ts + 14974 } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14889, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14982, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) } else { /* An automatic index created by a PRIMARY KEY or UNIQUE constraint */ /* zStmt = sqlite3MPrintf(""); */ @@ -104384,7 +104926,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* Add an entry in sqlite_schema for this index */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14909, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+15002, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) _sqlite3DbFree(tls, db, zStmt) /* Fill the index with data and reparse the schema. Code an OP_Expire ** to invalidate all pre-compiled statements. @@ -104392,7 +104934,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != 0 { _sqlite3RefillIndex(tls, pParse, pIndex, iMem) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14968, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+15061, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Expire), 0, int32(1)) } _sqlite3VdbeJumpHere(tls, v, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum)) @@ -104410,6 +104952,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } } /* Clean up before exiting */ + goto exit_create_index exit_create_index: ; if pIndex != 0 { @@ -104554,7 +105097,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pIndex = _sqlite3FindIndex(tls, db, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzName, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) if pIndex == uintptr(0) { if !(ifExists != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14995, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15088, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) _sqlite3ForceNotReadOnly(tls, pParse) @@ -104563,7 +105106,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in goto exit_drop_index } if int32(uint32(*(*uint16)(unsafe.Pointer(pIndex + 100))&0x3>>0)) != SQLITE_IDXTYPE_APPDEF { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15013, libc.VaList(bp+8, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15106, libc.VaList(bp+8, 0)) goto exit_drop_index } iDb = _sqlite3SchemaToIndex(tls, db, (*TIndex)(unsafe.Pointer(pIndex)).FpSchema) @@ -104571,9 +105114,9 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pTab = (*TIndex)(unsafe.Pointer(pIndex)).FpTable zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6881 + v1 = __ccgo_ts + 6945 } else { - v1 = __ccgo_ts + 6414 + v1 = __ccgo_ts + 6478 } zTab = v1 if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_DELETE), zTab, uintptr(0), zDb) != 0 { @@ -104589,12 +105132,13 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in v = _sqlite3GetVdbe(tls, pParse) if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+15086, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+12141, (*TIndex)(unsafe.Pointer(pIndex)).FzName) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+15179, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+12266, (*TIndex)(unsafe.Pointer(pIndex)).FzName) _sqlite3ChangeCookie(tls, pParse, iDb) _destroyRootPage(tls, pParse, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum), iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropIndex), iDb, 0, 0, (*TIndex)(unsafe.Pointer(pIndex)).FzName, 0) } + goto exit_drop_index exit_drop_index: ; _sqlite3SrcListDelete(tls, db, pName) @@ -104780,7 +105324,7 @@ func _sqlite3SrcListEnlarge(tls *libc.TLS, pParse uintptr, pSrc uintptr, nExtra nAlloc = int64(2)*int64((*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) + int64(nExtra) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc+nExtra >= int32(SQLITE_MAX_SRCLIST) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15146, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15239, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) return uintptr(0) } if nAlloc > int64(SQLITE_MAX_SRCLIST) { @@ -105012,11 +105556,11 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa db = (*TParse)(unsafe.Pointer(pParse)).Fdb if !(p != 0) && pOnUsing != uintptr(0) && ((*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 || (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpUsing != 0) { if (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 { - v1 = __ccgo_ts + 15182 + v1 = __ccgo_ts + 15275 } else { - v1 = __ccgo_ts + 15185 + v1 = __ccgo_ts + 15278 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15191, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15284, libc.VaList(bp+8, v1)) goto append_from_error } p = _sqlite3SrcListAppend(tls, pParse, p, pTable, pDatabase) @@ -105053,6 +105597,7 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa } } return p + goto append_from_error append_from_error: ; _sqlite3ClearOnOrUsing(tls, db, pOnUsing) @@ -105213,7 +105758,7 @@ func _sqlite3BeginTransaction(tls *libc.TLS, pParse uintptr, type1 int32) { var eTxnType, i int32 _, _, _, _, _ = db, eTxnType, i, pBt, v db = (*TParse)(unsafe.Pointer(pParse)).Fdb - if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+15227, uintptr(0), uintptr(0)) != 0 { + if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+15320, uintptr(0), uintptr(0)) != 0 { return } v = _sqlite3GetVdbe(tls, pParse) @@ -105260,9 +105805,9 @@ func _sqlite3EndTransaction(tls *libc.TLS, pParse uintptr, eType int32) { _, _, _ = isRollback, v, v1 isRollback = libc.BoolInt32(eType == int32(TK_ROLLBACK)) if isRollback != 0 { - v1 = __ccgo_ts + 15233 + v1 = __ccgo_ts + 15326 } else { - v1 = __ccgo_ts + 15242 + v1 = __ccgo_ts + 15335 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), v1, uintptr(0), uintptr(0)) != 0 { return @@ -105294,9 +105839,9 @@ func _sqlite3Savepoint(tls *libc.TLS, pParse uintptr, op int32, pName uintptr) { } var _az = [3]uintptr{ - 0: __ccgo_ts + 15227, - 1: __ccgo_ts + 15249, - 2: __ccgo_ts + 15233, + 0: __ccgo_ts + 15320, + 1: __ccgo_ts + 15342, + 2: __ccgo_ts + 15326, } // C documentation @@ -105316,7 +105861,7 @@ func _sqlite3OpenTempDatabase(tls *libc.TLS, pParse uintptr) (r int32) { if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt == uintptr(0) && !((*TParse)(unsafe.Pointer(pParse)).Fexplain != 0) { rc = _sqlite3BtreeOpen(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), db, bp, 0, _flags) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15257, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15350, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = rc return int32(1) } @@ -105500,7 +106045,7 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable _sqlite3StrAccumInit(tls, bp, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), 0, *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136))) if (*TIndex)(unsafe.Pointer(pIdx)).FaColExpr != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+15327, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+15420, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) } else { j = 0 for { @@ -105509,10 +106054,10 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx } zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)))*16))).FzCnName if j != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+15338, int32(2)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+15431, int32(2)) } Xsqlite3_str_appendall(tls, bp, (*TTable)(unsafe.Pointer(pTab)).FzName) - Xsqlite3_str_append(tls, bp, __ccgo_ts+1663, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+1677, int32(1)) Xsqlite3_str_appendall(tls, bp, zCol) goto _1 _1: @@ -105541,10 +106086,10 @@ func _sqlite3RowidConstraint(tls *libc.TLS, pParse uintptr, onError int32, pTab var zMsg uintptr _, _ = rc, zMsg if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12729, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12854, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(6)< libc.BoolInt32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15457, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15550, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } return 0 } @@ -106647,11 +107192,11 @@ func _sqlite3IsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr, pTrigger ui bp := tls.Alloc(16) defer tls.Free(16) if _tabIsReadOnly(tls, pParse, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15490, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15583, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && (pTrigger == uintptr(0) || (*TTrigger)(unsafe.Pointer(pTrigger)).FbReturning != 0 && (*TTrigger)(unsafe.Pointer(pTrigger)).FpNext == uintptr(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15519, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15612, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -107054,8 +107599,9 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** invoke the callback function. */ if memCnt != 0 { - _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15557) + _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15650) } + goto delete_from_cleanup delete_from_cleanup: ; _sqlite3AuthContextPop(tls, bp+8) @@ -107201,7 +107747,7 @@ func _sqlite3GenerateRowDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, pTri v3 = 0 } _sqlite3VdbeAddOp2(tls, v, int32(OP_Delete), iDataCur, v3) - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11930) { + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+12055) { _sqlite3VdbeAppendP4(tls, v, pTab, -int32(5)) } if int32(eMode) != ONEPASS_OFF { @@ -107505,11 +108051,11 @@ func _typeofFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } var _azType2 = [5]uintptr{ - 0: __ccgo_ts + 6654, - 1: __ccgo_ts + 6649, - 2: __ccgo_ts + 8545, - 3: __ccgo_ts + 8540, - 4: __ccgo_ts + 1636, + 0: __ccgo_ts + 6718, + 1: __ccgo_ts + 6713, + 2: __ccgo_ts + 8670, + 3: __ccgo_ts + 8665, + 4: __ccgo_ts + 1650, } // C documentation @@ -107623,7 +108169,7 @@ func _absFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { /* IMP: R-31676-45509 If X is the integer -9223372036854775808 ** then abs(X) throws an integer overflow error since there is no ** equivalent positive 64-bit two complement value. */ - Xsqlite3_result_error(tls, context, __ccgo_ts+15570, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15663, -int32(1)) return } iVal = -iVal @@ -107718,11 +108264,13 @@ func _instrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } Xsqlite3_result_int(tls, context, N) + goto endInstr endInstr: ; Xsqlite3_value_free(tls, pC1) Xsqlite3_value_free(tls, pC2) return + goto endInstrOOM endInstrOOM: ; Xsqlite3_result_error_nomem(tls, context) @@ -107936,7 +108484,7 @@ func _roundFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } *(*float64)(unsafe.Pointer(bp)) = float64(int64(*(*float64)(unsafe.Pointer(bp)) + v1)) } else { - zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15587, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) + zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15680, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) if zBuf == uintptr(0) { Xsqlite3_result_error_nomem(tls, context) return @@ -108516,7 +109064,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { */ nPat = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) if nPat > *(*int32)(unsafe.Pointer(db + 136 + 8*4)) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15593, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15686, -int32(1)) return } if argc == int32(3) { @@ -108528,7 +109076,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { return } if _sqlite3Utf8CharLen(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), -int32(1)) != int32(1) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15626, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15719, -int32(1)) return } escape = _sqlite3Utf8Read(tls, bp+8) @@ -108610,7 +109158,7 @@ func _errlogFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { defer tls.Free(16) _ = argc _ = context - Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) + Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) } // C documentation @@ -108697,17 +109245,17 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_FLOAT): r1 = Xsqlite3_value_double(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15671, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15764, libc.VaList(bp+16, r1)) zVal = Xsqlite3_str_value(tls, pStr) if zVal != 0 { _sqlite3AtoF(tls, zVal, bp, int32((*TStrAccum)(unsafe.Pointer(pStr)).FnChar), uint8(SQLITE_UTF8)) if r1 != *(*float64)(unsafe.Pointer(bp)) { Xsqlite3_str_reset(tls, pStr) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15679, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15772, libc.VaList(bp+16, r1)) } } case int32(SQLITE_INTEGER): - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1406, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1425, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) case int32(SQLITE_BLOB): zBlob = Xsqlite3_value_blob(tls, pValue) nBlob = int64(Xsqlite3_value_bytes(tls, pValue)) @@ -108735,9 +109283,9 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { } case int32(SQLITE_TEXT): zArg = Xsqlite3_value_text(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15687, libc.VaList(bp+16, zArg)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15780, libc.VaList(bp+16, zArg)) default: - Xsqlite3_str_append(tls, pStr, __ccgo_ts+1651, int32(4)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+1665, int32(4)) break } } @@ -108974,7 +109522,7 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { var v3 uint32 var _ /* zHex at bp+0 */ uintptr _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, ch, d, nHex, nPass, p, pBlob, zPass, v1, v2, v3, v4, v5, v6 - zPass = __ccgo_ts + 1650 + zPass = __ccgo_ts + 1664 nPass = 0 *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) nHex = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) @@ -109026,10 +109574,12 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { *(*Tu8)(unsafe.Pointer(v6)) = uint8(int32(_sqlite3HexToInt(tls, int32(c)))< 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fapprox != 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fovrfl != 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+15570, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15663, -int32(1)) } else { if !(_sqlite3IsOverflow(tls, (*TSumCtx)(unsafe.Pointer(p)).FrErr) != 0) { Xsqlite3_result_double(tls, context, (*TSumCtx)(unsafe.Pointer(p)).FrSum+(*TSumCtx)(unsafe.Pointer(p)).FrErr) @@ -110037,7 +110587,7 @@ func _groupConcatValue(tls *libc.TLS, context uintptr) { func _sqlite3RegisterPerConnectionBuiltinFunctions(tls *libc.TLS, db uintptr) { var rc int32 _ = rc - rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15695, int32(2)) + rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15788, int32(2)) if rc == int32(SQLITE_NOMEM) { _sqlite3OomFault(tls, db) } @@ -110066,8 +110616,8 @@ func _sqlite3RegisterLikeFunctions(tls *libc.TLS, db uintptr, caseSensitive int3 if !(nArg <= int32(3)) { break } - _sqlite3CreateFunc(tls, db, __ccgo_ts+15701, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15701, nArg, uint8(SQLITE_UTF8), uint8(0)) + _sqlite3CreateFunc(tls, db, __ccgo_ts+15794, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15794, nArg, uint8(SQLITE_UTF8), uint8(0)) *(*Tu32)(unsafe.Pointer(pDef + 4)) |= uint32(flags) *(*Tu32)(unsafe.Pointer(pDef + 4)) &= uint32(^libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)) goto _1 @@ -110373,562 +110923,562 @@ var _aBuiltinFunc = [110]TFuncDef{ FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_implies_nonnull_row))), - FzName: __ccgo_ts + 15706, + FzName: __ccgo_ts + 15799, }, 1: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_compare))), - FzName: __ccgo_ts + 15726, + FzName: __ccgo_ts + 15819, }, 2: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_implies_expr))), - FzName: __ccgo_ts + 15739, + FzName: __ccgo_ts + 15832, }, 3: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_affinity))), - FzName: __ccgo_ts + 15757, + FzName: __ccgo_ts + 15850, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15766, + FzName: __ccgo_ts + 15859, }, 5: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15774, + FzName: __ccgo_ts + 15867, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15774, + FzName: __ccgo_ts + 15867, }, 7: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15789, + FzName: __ccgo_ts + 15882, }, 8: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15815, + FzName: __ccgo_ts + 15908, }, 9: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15840, + FzName: __ccgo_ts + 15933, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15849, + FzName: __ccgo_ts + 15942, }, 11: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15860, + FzName: __ccgo_ts + 15953, }, 12: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_sqlite_offset))), - FzName: __ccgo_ts + 15867, + FzName: __ccgo_ts + 15960, }, 13: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15881, + FzName: __ccgo_ts + 15974, }, 14: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15881, + FzName: __ccgo_ts + 15974, }, 15: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15887, + FzName: __ccgo_ts + 15980, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15887, + FzName: __ccgo_ts + 15980, }, 17: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15893, + FzName: __ccgo_ts + 15986, }, 18: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15893, + FzName: __ccgo_ts + 15986, }, 19: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15898, + FzName: __ccgo_ts + 15991, }, 20: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15898, + FzName: __ccgo_ts + 15991, }, 21: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15898, + FzName: __ccgo_ts + 15991, }, 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15902, + FzName: __ccgo_ts + 15995, }, 23: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15902, + FzName: __ccgo_ts + 15995, }, 24: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15902, + FzName: __ccgo_ts + 15995, }, 25: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15906, + FzName: __ccgo_ts + 15999, }, 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15913, + FzName: __ccgo_ts + 16006, }, 27: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_LENGTH)), - FzName: __ccgo_ts + 15921, + FzName: __ccgo_ts + 16014, }, 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_BYTELEN)), - FzName: __ccgo_ts + 15928, + FzName: __ccgo_ts + 16021, }, 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15941, + FzName: __ccgo_ts + 16034, }, 30: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15947, + FzName: __ccgo_ts + 16040, }, 31: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15954, + FzName: __ccgo_ts + 16047, }, 32: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15961, + FzName: __ccgo_ts + 16054, }, 33: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15969, + FzName: __ccgo_ts + 16062, }, 34: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15974, + FzName: __ccgo_ts + 16067, }, 35: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15978, + FzName: __ccgo_ts + 16071, }, 36: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15978, + FzName: __ccgo_ts + 16071, }, 37: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15984, + FzName: __ccgo_ts + 16077, }, 38: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15990, + FzName: __ccgo_ts + 16083, }, 39: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15996, + FzName: __ccgo_ts + 16089, }, 40: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16000, + FzName: __ccgo_ts + 16093, }, 41: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16000, + FzName: __ccgo_ts + 16093, }, 42: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16006, + FzName: __ccgo_ts + 16099, }, 43: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16006, + FzName: __ccgo_ts + 16099, }, 44: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16013, + FzName: __ccgo_ts + 16106, }, 45: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16013, + FzName: __ccgo_ts + 16106, }, 46: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16013, + FzName: __ccgo_ts + 16106, }, 47: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16023, + FzName: __ccgo_ts + 16116, }, 48: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16030, + FzName: __ccgo_ts + 16123, }, 49: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16037, + FzName: __ccgo_ts + 16130, }, 50: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16048, + FzName: __ccgo_ts + 16141, }, 51: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16055, + FzName: __ccgo_ts + 16148, }, 52: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16070, + FzName: __ccgo_ts + 16163, }, 53: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16087, + FzName: __ccgo_ts + 16180, }, 54: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16098, + FzName: __ccgo_ts + 16191, }, 55: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16104, + FzName: __ccgo_ts + 16197, }, 56: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16122, + FzName: __ccgo_ts + 16215, }, 57: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16130, + FzName: __ccgo_ts + 16223, }, 58: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16144, + FzName: __ccgo_ts + 16237, }, 59: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16152, + FzName: __ccgo_ts + 16245, }, 60: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16161, + FzName: __ccgo_ts + 16254, }, 61: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16161, + FzName: __ccgo_ts + 16254, }, 62: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16168, + FzName: __ccgo_ts + 16261, }, 63: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16168, + FzName: __ccgo_ts + 16261, }, 64: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16178, + FzName: __ccgo_ts + 16271, }, 65: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16182, + FzName: __ccgo_ts + 16275, }, 66: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16188, + FzName: __ccgo_ts + 16281, }, 67: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_COUNT) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 16192, + FzName: __ccgo_ts + 16285, }, 68: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 16192, + FzName: __ccgo_ts + 16285, }, 69: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16198, + FzName: __ccgo_ts + 16291, }, 70: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16198, + FzName: __ccgo_ts + 16291, }, 71: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16211, + FzName: __ccgo_ts + 16304, }, 72: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE) | libc.Int32FromInt32(SQLITE_FUNC_CASE)), FpUserData: uintptr(unsafe.Pointer(&_globInfo)), - FzName: __ccgo_ts + 16222, + FzName: __ccgo_ts + 16315, }, 73: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15701, + FzName: __ccgo_ts + 15794, }, 74: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15701, + FzName: __ccgo_ts + 15794, }, 75: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 7078, + FzName: __ccgo_ts + 7142, }, 76: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 7078, + FzName: __ccgo_ts + 7142, }, 77: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16227, + FzName: __ccgo_ts + 16320, }, 78: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16232, + FzName: __ccgo_ts + 1237, }, 79: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16240, + FzName: __ccgo_ts + 1245, }, 80: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16246, + FzName: __ccgo_ts + 16325, }, 81: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16252, + FzName: __ccgo_ts + 16331, }, 82: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 16255, + FzName: __ccgo_ts + 16334, }, 83: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 16259, + FzName: __ccgo_ts + 16338, }, 84: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 16265, + FzName: __ccgo_ts + 16344, }, 85: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16255, + FzName: __ccgo_ts + 16334, }, 86: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16270, + FzName: __ccgo_ts + 16349, }, 87: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16274, + FzName: __ccgo_ts + 16353, }, 88: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16278, + FzName: __ccgo_ts + 16357, }, 89: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16284, + FzName: __ccgo_ts + 16363, }, 90: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16288, + FzName: __ccgo_ts + 16367, }, 91: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16293, + FzName: __ccgo_ts + 16372, }, 92: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16298, + FzName: __ccgo_ts + 16377, }, 93: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16303, + FzName: __ccgo_ts + 16382, }, 94: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16309, + FzName: __ccgo_ts + 16388, }, 95: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16313, + FzName: __ccgo_ts + 16392, }, 96: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16317, + FzName: __ccgo_ts + 16396, }, 97: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16321, + FzName: __ccgo_ts + 16400, }, 98: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16326, + FzName: __ccgo_ts + 16405, }, 99: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16331, + FzName: __ccgo_ts + 16410, }, 100: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16336, + FzName: __ccgo_ts + 16415, }, 101: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16342, + FzName: __ccgo_ts + 16421, }, 102: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16348, + FzName: __ccgo_ts + 16427, }, 103: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16354, + FzName: __ccgo_ts + 16433, }, 104: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16359, + FzName: __ccgo_ts + 16438, }, 105: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16367, + FzName: __ccgo_ts + 16446, }, 106: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16375, + FzName: __ccgo_ts + 16454, }, 107: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16378, + FzName: __ccgo_ts + 16457, }, 108: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 7078, + FzName: __ccgo_ts + 7142, }, 109: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_iif))), - FzName: __ccgo_ts + 16383, + FzName: __ccgo_ts + 16462, }, } @@ -111405,7 +111955,7 @@ func _sqlite3FkLocateIndex(tls *libc.TLS, pParse uintptr, pParent uintptr, pFKey } if !(pIdx != 0) { if !((*TParse)(unsafe.Pointer(pParse)).FdisableTriggers != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16387, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16466, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) } _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiCol) return int32(1) @@ -112516,11 +113066,11 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr break } *(*TToken)(unsafe.Pointer(bp + 16)) = TToken{ - Fz: __ccgo_ts + 6944, + Fz: __ccgo_ts + 7008, Fn: uint32(3), } /* Literal "old" token */ *(*TToken)(unsafe.Pointer(bp + 32)) = TToken{ - Fz: __ccgo_ts + 6940, + Fz: __ccgo_ts + 7004, Fn: uint32(3), } /* tFromCol = OLD.tToCol */ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -112584,7 +113134,7 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr nFrom = _sqlite3Strlen30(tls, zFrom) if action == int32(OE_Restrict) { iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5573) + pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5637) if pRaise != 0 { (*TExpr)(unsafe.Pointer(pRaise)).FaffExpr = int8(OE_Abort) } @@ -113165,7 +113715,7 @@ func _sqlite3ComputeGeneratedColumns(tls *libc.TLS, pParse uintptr, iRegStore in } } if pRedo != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8510, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8635, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) } (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 } @@ -113426,6 +113976,219 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { } } +// C documentation +// +// /* +// ** If argument pVal is a Select object returned by an sqlite3MultiValues() +// ** that was able to use the co-routine optimization, finish coding the +// ** co-routine. +// */ +func _sqlite3MultiValuesEnd(tls *libc.TLS, pParse uintptr, pVal uintptr) { + var pItem uintptr + _ = pItem + if pVal != 0 && (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pVal)).FpSrc)).FnSrc > 0 { + pItem = (*TSelect)(unsafe.Pointer(pVal)).FpSrc + 8 + _sqlite3VdbeEndCoroutine(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn) + _sqlite3VdbeJumpHere(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FaddrFillSub-int32(1)) + } +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are constant. +// */ +func _exprListIsConstant(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + if 0 == _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are both constant and have no affinity. +// */ +func _exprListIsNoAffinity(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + var pExpr uintptr + _, _ = ii, pExpr + if _exprListIsConstant(tls, pParse, pRow) == 0 { + return 0 + } + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + pExpr = (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr + if 0 != int32(_sqlite3ExprAffinity(tls, pExpr)) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** This function is called by the parser for the second and subsequent +// ** rows of a multi-row VALUES clause. Argument pLeft is the part of +// ** the VALUES clause already parsed, argument pRow is the vector of values +// ** for the new row. The Select object returned represents the complete +// ** VALUES clause, including the new row. +// ** +// ** There are two ways in which this may be achieved - by incremental +// ** coding of a co-routine (the "co-routine" method) or by returning a +// ** Select object equivalent to the following (the "UNION ALL" method): +// ** +// ** "pLeft UNION ALL SELECT pRow" +// ** +// ** If the VALUES clause contains a lot of rows, this compound Select +// ** object may consume a lot of memory. +// ** +// ** When the co-routine method is used, each row that will be returned +// ** by the VALUES clause is coded into part of a co-routine as it is +// ** passed to this function. The returned Select object is equivalent to: +// ** +// ** SELECT * FROM ( +// ** Select object to read co-routine +// ** ) +// ** +// ** The co-routine method is used in most cases. Exceptions are: +// ** +// ** a) If the current statement has a WITH clause. This is to avoid +// ** statements like: +// ** +// ** WITH cte AS ( VALUES('x'), ('y') ... ) +// ** SELECT * FROM cte AS a, cte AS b; +// ** +// ** This will not work, as the co-routine uses a hard-coded register +// ** for its OP_Yield instructions, and so it is not possible for two +// ** cursors to iterate through it concurrently. +// ** +// ** b) The schema is currently being parsed (i.e. the VALUES clause is part +// ** of a schema item like a VIEW or TRIGGER). In this case there is no VM +// ** being generated when parsing is taking place, and so generating +// ** a co-routine is not possible. +// ** +// ** c) There are non-constant expressions in the VALUES clause (e.g. +// ** the VALUES clause is part of a correlated sub-query). +// ** +// ** d) One or more of the values in the first row of the VALUES clause +// ** has an affinity (i.e. is a CAST expression). This causes problems +// ** because the complex rules SQLite uses (see function +// ** sqlite3SubqueryColumnTypes() in select.c) to determine the effective +// ** affinity of such a column for all rows require access to all values in +// ** the column simultaneously. +// */ +func _sqlite3MultiValues(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRow uintptr) (r uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var f, v1 int32 + var p, pRet, pSelect, v, v2 uintptr + var _ /* dest at bp+0 */ TSelectDest + _, _, _, _, _, _, _ = f, p, pRet, pSelect, v, v1, v2 + if (*TParse)(unsafe.Pointer(pParse)).FbHasWith != 0 || (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy != 0 || _exprListIsConstant(tls, pParse, pRow) == 0 || (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 && _exprListIsNoAffinity(tls, pParse, (*TSelect)(unsafe.Pointer(pLeft)).FpEList) == 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { + /* The co-routine method cannot be used. Fall back to UNION ALL. */ + pSelect = uintptr(0) + f = libc.Int32FromInt32(SF_Values) | libc.Int32FromInt32(SF_MultiValue) + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc != 0 { + _sqlite3MultiValuesEnd(tls, pParse, pLeft) + f = int32(SF_Values) + } else { + if (*TSelect)(unsafe.Pointer(pLeft)).FpPrior != 0 { + /* In this case set the SF_MultiValue flag only if it was set on pLeft */ + f = int32(uint32(f) & (*TSelect)(unsafe.Pointer(pLeft)).FselFlags) + } + } + pSelect = _sqlite3SelectNew(tls, pParse, pRow, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(f), uintptr(0)) + *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) + if pSelect != 0 { + (*TSelect)(unsafe.Pointer(pSelect)).Fop = uint8(TK_ALL) + (*TSelect)(unsafe.Pointer(pSelect)).FpPrior = pLeft + pLeft = pSelect + } + } else { + p = uintptr(0) /* SrcItem that reads from co-routine */ + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 { + /* Co-routine has not yet been started and the special Select object + ** that accesses the co-routine has not yet been created. This block + ** does both those things. */ + v = _sqlite3GetVdbe(tls, pParse) + pRet = _sqlite3SelectNew(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) + /* Ensure the database schema has been read. This is to ensure we have + ** the correct text encoding. */ + if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmDbFlags&uint32(DBFLAG_SchemaKnownOk) == uint32(0) { + _sqlite3ReadSchema(tls, pParse) + } + if pRet != 0 { + (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pRet)).FpSrc)).FnSrc = int32(1) + (*TSelect)(unsafe.Pointer(pRet)).FpPrior = (*TSelect)(unsafe.Pointer(pLeft)).FpPrior + (*TSelect)(unsafe.Pointer(pRet)).Fop = (*TSelect)(unsafe.Pointer(pLeft)).Fop + (*TSelect)(unsafe.Pointer(pLeft)).FpPrior = uintptr(0) + (*TSelect)(unsafe.Pointer(pLeft)).Fop = uint8(TK_SELECT) + p = (*TSelect)(unsafe.Pointer(pRet)).FpSrc + 8 + (*TSrcItem)(unsafe.Pointer(p)).FpSelect = pLeft + libc.SetBitFieldPtr16Uint32(p+60+4, libc.Uint32FromInt32(1), 5, 0x20) + (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + v2 = pParse + 56 + *(*int32)(unsafe.Pointer(v2))++ + v1 = *(*int32)(unsafe.Pointer(v2)) + (*TSrcItem)(unsafe.Pointer(p)).FregReturn = v1 + (*TSrcItem)(unsafe.Pointer(p)).FiCursor = -int32(1) + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1)) = uint32(2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn, 0, (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub) + _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + /* Allocate registers for the output of the co-routine. Do so so + ** that there are two unused registers immediately before those + ** used by the co-routine. This allows the code in sqlite3Insert() + ** to use these registers directly, instead of copying the output + ** of the co-routine to a separate array for processing. */ + (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(3) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpEList)).FnExpr + *(*int32)(unsafe.Pointer(pParse + 56)) += int32(2) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst + *(*Tu32)(unsafe.Pointer(pLeft + 4)) |= uint32(SF_MultiValue) + _sqlite3Select(tls, pParse, pLeft, bp) + (*TSrcItem)(unsafe.Pointer(p)).FregResult = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst + pLeft = pRet + } + } else { + p = (*TSelect)(unsafe.Pointer(pLeft)).FpSrc + 8 + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1))++ + } + if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { + if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p)).FpSelect)).FpEList)).FnExpr != (*TExprList)(unsafe.Pointer(pRow)).FnExpr { + _sqlite3SelectWrongNumTermsError(tls, pParse, (*TSrcItem)(unsafe.Pointer(p)).FpSelect) + } else { + _sqlite3ExprCodeExprList(tls, pParse, pRow, (*TSrcItem)(unsafe.Pointer(p)).FregResult, 0, uint8(0)) + _sqlite3VdbeAddOp1(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Yield), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + } + } + _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pRow) + } + return pLeft +} + // C documentation // // /* @@ -113528,27 +114291,27 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uintptr, pColumn uintptr, onError int32, pUpsert uintptr) { bp := tls.Alloc(160) defer tls.Free(160) - var aRegIdx, db, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, v, v13, v16, v18, v6, v9 uintptr - var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v12, v15, v17, v19, v23, v24, v5, v7, v8 int32 + var aRegIdx, db, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, v, v10, v14, v17, v19, v7 uintptr + var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v13, v16, v18, v20, v24, v25, v5, v6, v8, v9 int32 var appendFlag, bIdListInOrder, useTempTable, withoutRowid Tu8 - var colFlags, v21 Tu32 + var colFlags, v22 Tu32 var _ /* dest at bp+8 */ TSelectDest var _ /* iDataCur at bp+0 */ int32 var _ /* iIdxCur at bp+4 */ int32 var _ /* isReplace at bp+112 */ int32 var _ /* sNC at bp+56 */ TNameContext var _ /* tmask at bp+48 */ int32 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v12, v13, v15, v16, v17, v18, v19, v21, v23, v24, v5, v6, v7, v8, v9 /* Number of columns in the data */ - nHidden = 0 /* Number of hidden columns if TABLE is virtual */ - *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ - *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ - ipkColumn = -int32(1) /* Label for the end of the insertion loop */ - srcTab = 0 /* Data comes from this temporary cursor if >=0 */ - addrInsTop = 0 /* Jump to label "D" */ - addrCont = 0 /* Index of database holding TABLE */ - useTempTable = uint8(0) /* Store SELECT results in intermediate table */ - appendFlag = uint8(0) /* True if IDLIST is in table order */ - pList = uintptr(0) /* Register in which to store next column */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v10, v13, v14, v16, v17, v18, v19, v20, v22, v24, v25, v5, v6, v7, v8, v9 /* Number of columns in the data */ + nHidden = 0 /* Number of hidden columns if TABLE is virtual */ + *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ + *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ + ipkColumn = -int32(1) /* Label for the end of the insertion loop */ + srcTab = 0 /* Data comes from this temporary cursor if >=0 */ + addrInsTop = 0 /* Jump to label "D" */ + addrCont = 0 /* Index of database holding TABLE */ + useTempTable = uint8(0) /* Store SELECT results in intermediate table */ + appendFlag = uint8(0) /* True if IDLIST is in table order */ + pList = uintptr(0) /* Register in which to store next column */ /* Register allocations */ regFromSelect = 0 /* Base register for data coming from SELECT */ regAutoinc = 0 /* Register holding the AUTOINCREMENT counter */ @@ -113686,7 +114449,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_STORED)|libc.Int32FromInt32(COLFLAG_VIRTUAL)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16432, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16511, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto insert_cleanup } break @@ -113701,7 +114464,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i bIdListInOrder = uint8(0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16473, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16552, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto insert_cleanup } @@ -113718,28 +114481,46 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** co-routine is the common header to the 3rd and 4th templates. */ if pSelect != 0 { /* Result code */ - v6 = pParse + 56 - *(*int32)(unsafe.Pointer(v6))++ - v5 = *(*int32)(unsafe.Pointer(v6)) - regYield = v5 - addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) - _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) - _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) - if bIdListInOrder != 0 { - v7 = regData - } else { - v7 = 0 - } - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v7 - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) - rc = _sqlite3Select(tls, pParse, pSelect, bp+8) - regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst - if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { - goto insert_cleanup + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc)).FnSrc == int32(1) && int32(uint32(*(*uint16)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + 60 + 4))&0x20>>5)) != 0 && (*TSelect)(unsafe.Pointer(pSelect)).FpPrior == uintptr(0) { + pItem = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSDParm = (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn + regFromSelect = (*TSrcItem)(unsafe.Pointer(pItem)).FregResult + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FpEList)).FnExpr + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+16584, libc.VaList(bp+128, pItem)) + if bIdListInOrder != 0 && nColumn == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { + regData = regFromSelect + regRowid = regData - int32(1) + if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { + v5 = int32(1) + } else { + v5 = 0 + } + regIns = regRowid - v5 + } + } else { + v7 = pParse + 56 + *(*int32)(unsafe.Pointer(v7))++ + v6 = *(*int32)(unsafe.Pointer(v7)) /* Top of the co-routine */ + regYield = v6 + addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) + _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) + if bIdListInOrder != 0 { + v8 = regData + } else { + v8 = 0 + } + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) + rc = _sqlite3Select(tls, pParse, pSelect, bp+8) + regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst + if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { + goto insert_cleanup + } + _sqlite3VdbeEndCoroutine(tls, v, regYield) + _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr } - _sqlite3VdbeEndCoroutine(tls, v, regYield) - _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ - nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr /* Set useTempTable to TRUE if the result of the SELECT statement ** should be written into a temporary table (template 4). Set to ** FALSE if each output row of the SELECT can be written directly into @@ -113753,10 +114534,10 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin useTempTable = uint8(1) } if useTempTable != 0 { /* Label "L" */ - v9 = pParse + 52 - v8 = *(*int32)(unsafe.Pointer(v9)) - *(*int32)(unsafe.Pointer(v9))++ - srcTab = v8 + v10 = pParse + 52 + v9 = *(*int32)(unsafe.Pointer(v10)) + *(*int32)(unsafe.Pointer(v10))++ + srcTab = v9 regRec = _sqlite3GetTempReg(tls, pParse) regTempRowid = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp2(tls, v, int32(OP_OpenEphemeral), srcTab, nColumn) @@ -113797,8 +114578,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { ipkColumn-- } - goto _10 - _10: + goto _11 + _11: ; i-- } @@ -113815,28 +114596,28 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_NOINSERT) != 0 { nHidden++ } - goto _11 - _11: + goto _12 + _12: ; i++ } } if nColumn != int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16505, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16592, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) goto insert_cleanup } } if pColumn != uintptr(0) && nColumn != (*TIdList)(unsafe.Pointer(pColumn)).FnId { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16557, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16644, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) goto insert_cleanup } /* Initialize the count of rows to be inserted */ if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&(uint64(libc.Int32FromInt32(0x00001))<= 0 { /* tag-20191021-001: If the INTEGER PRIMARY KEY is being generated by the ** SELECT, go ahead and copy the value into the rowid slot now, so that @@ -113949,18 +114730,18 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** using excess space. The file format definition requires this extra ** NULL - we cannot optimize further by skipping the column completely */ _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) - goto _20 + goto _21 } - v21 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) - colFlags = v21 - if v21&uint32(COLFLAG_NOINSERT) != uint32(0) { + v22 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) + colFlags = v22 + if v22&uint32(COLFLAG_NOINSERT) != uint32(0) { nHidden++ if colFlags&uint32(COLFLAG_VIRTUAL) != uint32(0) { /* Virtual columns do not participate in OP_MakeRecord. So back up ** iRegStore by one slot to compensate for the iRegStore++ in the ** outer for() loop */ iRegStore-- - goto _20 + goto _21 } else { if colFlags&uint32(COLFLAG_STORED) != uint32(0) { /* Stored columns are computed later. But if there are BEFORE @@ -113970,13 +114751,13 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if *(*int32)(unsafe.Pointer(bp + 48))&int32(TRIGGER_BEFORE) != 0 { _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) } - goto _20 + goto _21 } else { if pColumn == uintptr(0) { /* Hidden columns that are not explicitly named in the INSERT ** get there default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } } } @@ -113987,8 +114768,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if !(j < (*TIdList)(unsafe.Pointer(pColumn)).FnId && *(*int32)(unsafe.Pointer(pColumn + 8 + uintptr(j)*16 + 8)) != i) { break } - goto _22 - _22: + goto _23 + _23: ; j++ } @@ -113996,14 +114777,14 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin /* A column not named in the insert column list gets its ** default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } k = j } else { if nColumn == 0 { /* This is INSERT INTO ... DEFAULT VALUES. Load the default value. */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } else { k = i - nHidden } @@ -114020,16 +114801,16 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin y = _sqlite3ExprCodeTarget(tls, pParse, pX, iRegStore) if y != iRegStore { if (*TExpr)(unsafe.Pointer(pX)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) { - v23 = int32(OP_Copy) + v24 = int32(OP_Copy) } else { - v23 = int32(OP_SCopy) + v24 = int32(OP_SCopy) } - _sqlite3VdbeAddOp2(tls, v, v23, y, iRegStore) + _sqlite3VdbeAddOp2(tls, v, v24, y, iRegStore) } } } - goto _20 - _20: + goto _21 + _21: ; i++ iRegStore++ @@ -114140,11 +114921,11 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VtabMakeWritable(tls, pParse, pTab) _sqlite3VdbeAddOp4(tls, v, int32(OP_VUpdate), int32(1), int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+int32(2), regIns, pVTab, -int32(11)) if onError == int32(OE_Default) { - v24 = int32(OE_Abort) + v25 = int32(OE_Abort) } else { - v24 = onError + v25 = onError } - _sqlite3VdbeChangeP5(tls, v, uint16(v24)) + _sqlite3VdbeChangeP5(tls, v, uint16(v25)) _sqlite3MayAbort(tls, pParse) } else { *(*int32)(unsafe.Pointer(bp + 112)) = 0 /* True to use OPFLAG_SEEKRESULT */ @@ -114187,6 +114968,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VdbeJumpHere(tls, v, addrInsTop) } } + goto insert_end insert_end: ; /* Update the sqlite_sequence table by storing the content of the @@ -114202,8 +114984,9 @@ insert_end: ** invoke the callback function. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16649) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16736) } + goto insert_cleanup insert_cleanup: ; _sqlite3SrcListDelete(tls, db, pTabList) @@ -114594,7 +115377,7 @@ func _sqlite3GenerateConstraintChecks(tls *libc.TLS, pParse uintptr, pTab uintpt case int32(OE_Rollback): fallthrough case int32(OE_Fail): - zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12729, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12854, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) _sqlite3VdbeAddOp3(tls, v, int32(OP_HaltIfNull), libc.Int32FromInt32(SQLITE_CONSTRAINT)|libc.Int32FromInt32(5)<= 0 && !(int32(*(*int8)(unsafe.Pointer(zFile + uintptr(iFile)))) == libc.Int32FromUint8('/'))) { @@ -116827,7 +117611,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp iFile-- } iFile++ - if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16701, int32(3)) == 0 { + if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16788, int32(3)) == 0 { iFile += int32(3) } iEntry = int32(8) @@ -116847,7 +117631,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp ; iFile++ } - libc.X__builtin___memcpy_chk(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16705, uint64(6), libc.X__builtin_object_size(tls, zAltEntry+uintptr(iEntry), 0)) + libc.X__builtin___memcpy_chk(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16792, uint64(6), libc.X__builtin_object_size(tls, zAltEntry+uintptr(iEntry), 0)) zEntry = zAltEntry xInit = _sqlite3OsDlSym(tls, pVfs, handle, zEntry) } @@ -116859,7 +117643,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v7 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16711, libc.VaList(bp+16, zEntry, zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16798, libc.VaList(bp+16, zEntry, zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -116874,7 +117658,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp return SQLITE_OK } if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16754, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16841, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3OsDlClose(tls, pVfs, handle) @@ -116895,6 +117679,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*int32)(unsafe.Pointer(v9))++ *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaExtension + uintptr(v8)*8)) = handle return SQLITE_OK + goto extension_not_found extension_not_found: ; if pzErrMsg != 0 { @@ -116904,7 +117689,7 @@ extension_not_found: *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v10 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16786, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16873, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -116913,7 +117698,7 @@ extension_not_found: /* Shared library endings to try if zFile cannot be loaded as written */ var _azEndings = [1]uintptr{ - 0: __ccgo_ts + 16663, + 0: __ccgo_ts + 16750, } func Xsqlite3_load_extension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintptr, pzErrMsg uintptr) (r int32) { @@ -117146,7 +117931,7 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { rc = v2 } if v3 && v2 != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16823, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16910, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) go1 = 0 } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -117200,63 +117985,63 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { // ** result column is different from the name of the pragma // */ var _pragCName = [57]uintptr{ - 0: __ccgo_ts + 5829, - 1: __ccgo_ts + 16862, - 2: __ccgo_ts + 9406, - 3: __ccgo_ts + 16866, - 4: __ccgo_ts + 16871, - 5: __ccgo_ts + 16874, - 6: __ccgo_ts + 16884, - 7: __ccgo_ts + 16894, - 8: __ccgo_ts + 16900, - 9: __ccgo_ts + 16904, - 10: __ccgo_ts + 16909, - 11: __ccgo_ts + 16914, - 12: __ccgo_ts + 16922, - 13: __ccgo_ts + 16933, - 14: __ccgo_ts + 16936, - 15: __ccgo_ts + 16943, - 16: __ccgo_ts + 16904, - 17: __ccgo_ts + 16909, - 18: __ccgo_ts + 16950, - 19: __ccgo_ts + 16955, - 20: __ccgo_ts + 16958, - 21: __ccgo_ts + 16965, - 22: __ccgo_ts + 16900, - 23: __ccgo_ts + 16904, - 24: __ccgo_ts + 16971, - 25: __ccgo_ts + 16976, - 26: __ccgo_ts + 16981, - 27: __ccgo_ts + 16904, - 28: __ccgo_ts + 16985, - 29: __ccgo_ts + 16909, - 30: __ccgo_ts + 16993, - 31: __ccgo_ts + 16997, - 32: __ccgo_ts + 17002, - 33: __ccgo_ts + 12145, - 34: __ccgo_ts + 12141, - 35: __ccgo_ts + 17008, - 36: __ccgo_ts + 17013, - 37: __ccgo_ts + 17018, - 38: __ccgo_ts + 16862, - 39: __ccgo_ts + 16904, - 40: __ccgo_ts + 17023, - 41: __ccgo_ts + 17030, - 42: __ccgo_ts + 17037, - 43: __ccgo_ts + 9406, - 44: __ccgo_ts + 17045, - 45: __ccgo_ts + 5832, - 46: __ccgo_ts + 17051, - 47: __ccgo_ts + 16862, - 48: __ccgo_ts + 16904, - 49: __ccgo_ts + 17056, - 50: __ccgo_ts + 17061, - 51: __ccgo_ts + 16255, - 52: __ccgo_ts + 17066, - 53: __ccgo_ts + 17079, - 54: __ccgo_ts + 17088, - 55: __ccgo_ts + 17095, - 56: __ccgo_ts + 17106, + 0: __ccgo_ts + 5893, + 1: __ccgo_ts + 16949, + 2: __ccgo_ts + 9531, + 3: __ccgo_ts + 16953, + 4: __ccgo_ts + 16958, + 5: __ccgo_ts + 16961, + 6: __ccgo_ts + 16971, + 7: __ccgo_ts + 16981, + 8: __ccgo_ts + 16987, + 9: __ccgo_ts + 16991, + 10: __ccgo_ts + 16996, + 11: __ccgo_ts + 17001, + 12: __ccgo_ts + 17009, + 13: __ccgo_ts + 17020, + 14: __ccgo_ts + 17023, + 15: __ccgo_ts + 17030, + 16: __ccgo_ts + 16991, + 17: __ccgo_ts + 16996, + 18: __ccgo_ts + 17037, + 19: __ccgo_ts + 17042, + 20: __ccgo_ts + 17045, + 21: __ccgo_ts + 17052, + 22: __ccgo_ts + 16987, + 23: __ccgo_ts + 16991, + 24: __ccgo_ts + 17058, + 25: __ccgo_ts + 17063, + 26: __ccgo_ts + 17068, + 27: __ccgo_ts + 16991, + 28: __ccgo_ts + 17072, + 29: __ccgo_ts + 16996, + 30: __ccgo_ts + 17080, + 31: __ccgo_ts + 17084, + 32: __ccgo_ts + 17089, + 33: __ccgo_ts + 12270, + 34: __ccgo_ts + 12266, + 35: __ccgo_ts + 17095, + 36: __ccgo_ts + 17100, + 37: __ccgo_ts + 17105, + 38: __ccgo_ts + 16949, + 39: __ccgo_ts + 16991, + 40: __ccgo_ts + 17110, + 41: __ccgo_ts + 17117, + 42: __ccgo_ts + 17124, + 43: __ccgo_ts + 9531, + 44: __ccgo_ts + 17132, + 45: __ccgo_ts + 5896, + 46: __ccgo_ts + 17138, + 47: __ccgo_ts + 16949, + 48: __ccgo_ts + 16991, + 49: __ccgo_ts + 17143, + 50: __ccgo_ts + 17148, + 51: __ccgo_ts + 16334, + 52: __ccgo_ts + 17153, + 53: __ccgo_ts + 17166, + 54: __ccgo_ts + 17175, + 55: __ccgo_ts + 17182, + 56: __ccgo_ts + 17193, } // C documentation @@ -117275,191 +118060,191 @@ type PragmaName = TPragmaName var _aPragmaName = [67]TPragmaName{ 0: { - FzName: __ccgo_ts + 17114, + FzName: __ccgo_ts + 17201, FePragTyp: uint8(PragTyp_ANALYSIS_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 1: { - FzName: __ccgo_ts + 17129, + FzName: __ccgo_ts + 17216, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_APPLICATION_ID), }, 2: { - FzName: __ccgo_ts + 17144, + FzName: __ccgo_ts + 17231, FePragTyp: uint8(PragTyp_AUTO_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 3: { - FzName: __ccgo_ts + 17156, + FzName: __ccgo_ts + 17243, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_AutoIndex), }, 4: { - FzName: __ccgo_ts + 17172, + FzName: __ccgo_ts + 17259, FePragTyp: uint8(PragTyp_BUSY_TIMEOUT), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(56), FnPragCName: uint8(1), }, 5: { - FzName: __ccgo_ts + 17095, + FzName: __ccgo_ts + 17182, FePragTyp: uint8(PragTyp_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 6: { - FzName: __ccgo_ts + 17185, + FzName: __ccgo_ts + 17272, FePragTyp: uint8(PragTyp_CACHE_SPILL), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 7: { - FzName: __ccgo_ts + 17197, + FzName: __ccgo_ts + 17284, FePragTyp: uint8(PragTyp_CASE_SENSITIVE_LIKE), FmPragFlg: uint8(PragFlg_NoColumns), }, 8: { - FzName: __ccgo_ts + 17217, + FzName: __ccgo_ts + 17304, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CellSizeCk), }, 9: { - FzName: __ccgo_ts + 17233, + FzName: __ccgo_ts + 17320, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CkptFullFSync), }, 10: { - FzName: __ccgo_ts + 17254, + FzName: __ccgo_ts + 17341, FePragTyp: uint8(PragTyp_COLLATION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(38), FnPragCName: uint8(2), }, 11: { - FzName: __ccgo_ts + 17269, + FzName: __ccgo_ts + 17356, FePragTyp: uint8(PragTyp_COMPILE_OPTIONS), FmPragFlg: uint8(PragFlg_Result0), }, 12: { - FzName: __ccgo_ts + 17285, + FzName: __ccgo_ts + 17372, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00001)) << libc.Int32FromInt32(32), }, 13: { - FzName: __ccgo_ts + 17299, + FzName: __ccgo_ts + 17386, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_DATA_VERSION), }, 14: { - FzName: __ccgo_ts + 17312, + FzName: __ccgo_ts + 17399, FePragTyp: uint8(PragTyp_DATABASE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(47), FnPragCName: uint8(3), }, 15: { - FzName: __ccgo_ts + 17326, + FzName: __ccgo_ts + 17413, FePragTyp: uint8(PragTyp_DEFAULT_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiPragCName: uint8(55), FnPragCName: uint8(1), }, 16: { - FzName: __ccgo_ts + 17345, + FzName: __ccgo_ts + 17432, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_DeferFKs), }, 17: { - FzName: __ccgo_ts + 17364, + FzName: __ccgo_ts + 17451, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_NullCallback), }, 18: { - FzName: __ccgo_ts + 17387, + FzName: __ccgo_ts + 17474, FePragTyp: uint8(PragTyp_ENCODING), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 19: { - FzName: __ccgo_ts + 17396, + FzName: __ccgo_ts + 17483, FePragTyp: uint8(PragTyp_FOREIGN_KEY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(43), FnPragCName: uint8(4), }, 20: { - FzName: __ccgo_ts + 17414, + FzName: __ccgo_ts + 17501, FePragTyp: uint8(PragTyp_FOREIGN_KEY_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FnPragCName: uint8(8), }, 21: { - FzName: __ccgo_ts + 17431, + FzName: __ccgo_ts + 17518, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ForeignKeys), }, 22: { - FzName: __ccgo_ts + 17444, + FzName: __ccgo_ts + 17531, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), }, 23: { - FzName: __ccgo_ts + 17459, + FzName: __ccgo_ts + 17546, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullColNames), }, 24: { - FzName: __ccgo_ts + 17477, + FzName: __ccgo_ts + 17564, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullFSync), }, 25: { - FzName: __ccgo_ts + 17487, + FzName: __ccgo_ts + 17574, FePragTyp: uint8(PragTyp_FUNCTION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(27), FnPragCName: uint8(6), }, 26: { - FzName: __ccgo_ts + 17501, + FzName: __ccgo_ts + 17588, FePragTyp: uint8(PragTyp_HARD_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 27: { - FzName: __ccgo_ts + 17517, + FzName: __ccgo_ts + 17604, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_IgnoreChecks), }, 28: { - FzName: __ccgo_ts + 17542, + FzName: __ccgo_ts + 17629, FePragTyp: uint8(PragTyp_INCREMENTAL_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_NoColumns)), }, 29: { - FzName: __ccgo_ts + 17561, + FzName: __ccgo_ts + 17648, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), FnPragCName: uint8(3), }, 30: { - FzName: __ccgo_ts + 17572, + FzName: __ccgo_ts + 17659, FePragTyp: uint8(PragTyp_INDEX_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(38), FnPragCName: uint8(5), }, 31: { - FzName: __ccgo_ts + 17583, + FzName: __ccgo_ts + 17670, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), @@ -117467,151 +118252,151 @@ var _aPragmaName = [67]TPragmaName{ FiArg: uint64(1), }, 32: { - FzName: __ccgo_ts + 17595, + FzName: __ccgo_ts + 17682, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 33: { - FzName: __ccgo_ts + 17611, + FzName: __ccgo_ts + 17698, FePragTyp: uint8(PragTyp_JOURNAL_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 34: { - FzName: __ccgo_ts + 17624, + FzName: __ccgo_ts + 17711, FePragTyp: uint8(PragTyp_JOURNAL_SIZE_LIMIT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 35: { - FzName: __ccgo_ts + 17643, + FzName: __ccgo_ts + 17730, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_LegacyAlter), }, 36: { - FzName: __ccgo_ts + 17662, + FzName: __ccgo_ts + 17749, FePragTyp: uint8(PragTyp_LOCK_PROXY_FILE), FmPragFlg: uint8(PragFlg_NoColumns1), }, 37: { - FzName: __ccgo_ts + 17678, + FzName: __ccgo_ts + 17765, FePragTyp: uint8(PragTyp_LOCKING_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 38: { - FzName: __ccgo_ts + 17691, + FzName: __ccgo_ts + 17778, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 39: { - FzName: __ccgo_ts + 17706, + FzName: __ccgo_ts + 17793, FePragTyp: uint8(PragTyp_MMAP_SIZE), }, 40: { - FzName: __ccgo_ts + 17716, + FzName: __ccgo_ts + 17803, FePragTyp: uint8(PragTyp_MODULE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 41: { - FzName: __ccgo_ts + 17728, + FzName: __ccgo_ts + 17815, FePragTyp: uint8(PragTyp_OPTIMIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_NeedSchema)), }, 42: { - FzName: __ccgo_ts + 17737, + FzName: __ccgo_ts + 17824, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 43: { - FzName: __ccgo_ts + 17748, + FzName: __ccgo_ts + 17835, FePragTyp: uint8(PragTyp_PAGE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 44: { - FzName: __ccgo_ts + 17758, + FzName: __ccgo_ts + 17845, FePragTyp: uint8(PragTyp_PRAGMA_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 45: { - FzName: __ccgo_ts + 17770, + FzName: __ccgo_ts + 17857, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_QueryOnly), }, 46: { - FzName: __ccgo_ts + 17781, + FzName: __ccgo_ts + 17868, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 47: { - FzName: __ccgo_ts + 17793, + FzName: __ccgo_ts + 17880, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00004)) << libc.Int32FromInt32(32), }, 48: { - FzName: __ccgo_ts + 17810, + FzName: __ccgo_ts + 17897, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_RecTriggers), }, 49: { - FzName: __ccgo_ts + 17829, + FzName: __ccgo_ts + 17916, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ReverseOrder), }, 50: { - FzName: __ccgo_ts + 17855, + FzName: __ccgo_ts + 17942, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_SCHEMA_VERSION), }, 51: { - FzName: __ccgo_ts + 17870, + FzName: __ccgo_ts + 17957, FePragTyp: uint8(PragTyp_SECURE_DELETE), FmPragFlg: uint8(PragFlg_Result0), }, 52: { - FzName: __ccgo_ts + 17884, + FzName: __ccgo_ts + 17971, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ShortColNames), }, 53: { - FzName: __ccgo_ts + 17903, + FzName: __ccgo_ts + 17990, FePragTyp: uint8(PragTyp_SHRINK_MEMORY), FmPragFlg: uint8(PragFlg_NoColumns), }, 54: { - FzName: __ccgo_ts + 17917, + FzName: __ccgo_ts + 18004, FePragTyp: uint8(PragTyp_SOFT_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 55: { - FzName: __ccgo_ts + 17933, + FzName: __ccgo_ts + 18020, FePragTyp: uint8(PragTyp_SYNCHRONOUS), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 56: { - FzName: __ccgo_ts + 17945, + FzName: __ccgo_ts + 18032, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), FnPragCName: uint8(6), }, 57: { - FzName: __ccgo_ts + 17956, + FzName: __ccgo_ts + 18043, FePragTyp: uint8(PragTyp_TABLE_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1)), FiPragCName: uint8(15), FnPragCName: uint8(6), }, 58: { - FzName: __ccgo_ts + 17967, + FzName: __ccgo_ts + 18054, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), @@ -117619,45 +118404,45 @@ var _aPragmaName = [67]TPragmaName{ FiArg: uint64(1), }, 59: { - FzName: __ccgo_ts + 17979, + FzName: __ccgo_ts + 18066, FePragTyp: uint8(PragTyp_TEMP_STORE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 60: { - FzName: __ccgo_ts + 17990, + FzName: __ccgo_ts + 18077, FePragTyp: uint8(PragTyp_TEMP_STORE_DIRECTORY), FmPragFlg: uint8(PragFlg_NoColumns1), }, 61: { - FzName: __ccgo_ts + 18011, + FzName: __ccgo_ts + 18098, FePragTyp: uint8(PragTyp_THREADS), FmPragFlg: uint8(PragFlg_Result0), }, 62: { - FzName: __ccgo_ts + 18019, + FzName: __ccgo_ts + 18106, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_TrustedSchema), }, 63: { - FzName: __ccgo_ts + 18034, + FzName: __ccgo_ts + 18121, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_USER_VERSION), }, 64: { - FzName: __ccgo_ts + 18047, + FzName: __ccgo_ts + 18134, FePragTyp: uint8(PragTyp_WAL_AUTOCHECKPOINT), }, 65: { - FzName: __ccgo_ts + 18066, + FzName: __ccgo_ts + 18153, FePragTyp: uint8(PragTyp_WAL_CHECKPOINT), FmPragFlg: uint8(PragFlg_NeedSchema), FiPragCName: uint8(50), FnPragCName: uint8(3), }, 66: { - FzName: __ccgo_ts + 18081, + FzName: __ccgo_ts + 18168, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(SQLITE_WriteSchema) | libc.Int32FromInt32(SQLITE_NoSchemaError)), @@ -117669,6 +118454,31 @@ var _aPragmaName = [67]TPragmaName{ /************** End of pragma.h **********************************************/ /************** Continuing where we left off in pragma.c *********************/ +/* +** When the 0x10 bit of PRAGMA optimize is set, any ANALYZE commands +** will be run with an analysis_limit set to the lessor of the value of +** the following macro or to the actual analysis_limit if it is non-zero, +** in order to prevent PRAGMA optimize from running for too long. +** +** The value of 2000 is chosen emperically so that the worst-case run-time +** for PRAGMA optimize does not exceed 100 milliseconds against a variety +** of test databases on a RaspberryPI-4 compiled using -Os and without +** -DSQLITE_DEBUG. Of course, your mileage may vary. For the purpose of +** this paragraph, "worst-case" means that ANALYZE ends up being +** run on every table in the database. The worst case typically only +** happens if PRAGMA optimize is run on a database file for which ANALYZE +** has not been previously run and the 0x10000 flag is included so that +** all tables are analyzed. The usual case for PRAGMA optimize is that +** no ANALYZE commands will be run at all, or if any ANALYZE happens it +** will be against a single table, so that expected timing for PRAGMA +** optimize on a PI-4 is more like 1 millisecond or less with the 0x10000 +** flag or less than 100 microseconds without the 0x10000 flag. +** +** An analysis limit of 2000 is almost always sufficient for the query +** planner to fully characterize an index. The additional accuracy from +** a larger analysis is not usually helpful. + */ + // C documentation // // /* @@ -117758,10 +118568,10 @@ func _sqlite3GetBoolean(tls *libc.TLS, z uintptr, dflt Tu8) (r Tu8) { // */ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { if z != 0 { - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18097) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18184) { return int32(PAGER_LOCKINGMODE_EXCLUSIVE) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18107) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18194) { return PAGER_LOCKINGMODE_NORMAL } } @@ -117779,13 +118589,13 @@ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { func _getAutoVacuum(tls *libc.TLS, z uintptr) (r int32) { var i, v1 int32 _, _ = i, v1 - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8566) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8691) { return BTREE_AUTOVACUUM_NONE } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18114) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18201) { return int32(BTREE_AUTOVACUUM_FULL) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18119) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18206) { return int32(BTREE_AUTOVACUUM_INCR) } i = _sqlite3Atoi(tls, z) @@ -117808,10 +118618,10 @@ func _getTempStore(tls *libc.TLS, z uintptr) (r int32) { if int32(*(*int8)(unsafe.Pointer(z))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(z))) <= int32('2') { return int32(*(*int8)(unsafe.Pointer(z))) - int32('0') } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+17056) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+17143) == 0 { return int32(1) } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+18131) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+18218) == 0 { return int32(2) } else { return 0 @@ -117833,7 +118643,7 @@ func _invalidateTempStorage(tls *libc.TLS, pParse uintptr) (r int32) { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt != uintptr(0) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || _sqlite3BtreeTxnState(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) != SQLITE_TXN_NONE { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18138, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18225, 0) return int32(SQLITE_ERROR) } _sqlite3BtreeClose(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) @@ -117963,15 +118773,15 @@ func _actionName(tls *libc.TLS, action Tu8) (r uintptr) { _ = zName switch int32(action) { case int32(OE_SetNull): - zName = __ccgo_ts + 18200 + zName = __ccgo_ts + 18287 case int32(OE_SetDflt): - zName = __ccgo_ts + 18209 + zName = __ccgo_ts + 18296 case int32(OE_Cascade): - zName = __ccgo_ts + 18221 + zName = __ccgo_ts + 18308 case int32(OE_Restrict): - zName = __ccgo_ts + 18229 + zName = __ccgo_ts + 18316 default: - zName = __ccgo_ts + 18238 + zName = __ccgo_ts + 18325 break } return zName @@ -117992,12 +118802,12 @@ func _sqlite3JournalModename(tls *libc.TLS, eMode int32) (r uintptr) { } var _azModeName = [6]uintptr{ - 0: __ccgo_ts + 18248, - 1: __ccgo_ts + 18255, - 2: __ccgo_ts + 18263, - 3: __ccgo_ts + 18267, - 4: __ccgo_ts + 18131, - 5: __ccgo_ts + 18276, + 0: __ccgo_ts + 18335, + 1: __ccgo_ts + 18342, + 2: __ccgo_ts + 18350, + 3: __ccgo_ts + 18354, + 4: __ccgo_ts + 18218, + 5: __ccgo_ts + 18363, } // C documentation @@ -118059,15 +118869,15 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s goto _1 } if (*TFuncDef)(unsafe.Pointer(p)).FxValue != uintptr(0) { - zType = __ccgo_ts + 18301 + zType = __ccgo_ts + 18388 } else { if (*TFuncDef)(unsafe.Pointer(p)).FxFinalize != uintptr(0) { - zType = __ccgo_ts + 18303 + zType = __ccgo_ts + 18390 } else { - zType = __ccgo_ts + 7965 + zType = __ccgo_ts + 8090 } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18305, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18392, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) goto _1 _1: ; @@ -118076,9 +118886,9 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s } var _azEnc = [4]uintptr{ - 1: __ccgo_ts + 18280, - 2: __ccgo_ts + 18285, - 3: __ccgo_ts + 18293, + 1: __ccgo_ts + 18367, + 2: __ccgo_ts + 18372, + 3: __ccgo_ts + 18380, } // C documentation @@ -118119,15 +118929,15 @@ func _integrityCheckResultRow(tls *libc.TLS, v uintptr) (r int32) { func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pValue uintptr, minusFlag int32) { bp := tls.Alloc(256) defer tls.Free(256) - var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, mxIdx, n, nHidden, nIdx, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, res1, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v60, v62, v63, v64, v65, v68 int32 - var aOp, aOp1, aOp2, aOp3, aOp4, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pFile, pFile1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pPager2, pPager3, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v61, v66, v8 uintptr + var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, res1, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v48, v50, v64, v66, v67, v68, v69, v72, v75, v76 int32 + var aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pFile, pFile1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pPager2, pPager3, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v65, v70, v8 uintptr var azOrigin [3]uintptr var cnum Ti16 var enc Tu8 var iPrior Tsqlite3_int64 + var iRange, szThreshold TLogEst var mask Tu64 var opMask Tu32 - var szThreshold TLogEst var _ /* N at bp+144 */ Tsqlite3_int64 var _ /* N at bp+152 */ Tsqlite3_int64 var _ /* N at bp+160 */ Tsqlite3_int64 @@ -118149,7 +118959,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p var _ /* size at bp+60 */ int32 var _ /* sz at bp+64 */ Tsqlite3_int64 var _ /* x at bp+40 */ Ti64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iPrior, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, mxIdx, n, nHidden, nIdx, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pFile, pFile1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pPager2, pPager3, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, res1, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v5, v60, v61, v62, v63, v64, v65, v66, v68, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iPrior, iRange, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pFile, pFile1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pPager2, pPager3, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, res1, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v48, v5, v50, v64, v65, v66, v67, v68, v69, v70, v72, v75, v76, v8 zLeft = uintptr(0) /* Nul-terminated UTF-8 string */ zRight = uintptr(0) /* Nul-terminated UTF-8 string , or NULL */ zDb = uintptr(0) /* return value form SQLITE_FCNTL_PRAGMA */ @@ -118178,7 +118988,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p return } if minusFlag != 0 { - zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+18312, libc.VaList(bp+184, pValue)) + zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+18399, libc.VaList(bp+184, pValue)) } else { zRight = _sqlite3NameFromToken(tls, db, pValue) } @@ -118221,7 +119031,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } if rc != int32(SQLITE_NOTFOUND) { if (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0] != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3799, libc.VaList(bp+184, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3863, libc.VaList(bp+184, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) Xsqlite3_free(tls, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0]) } (*TParse)(unsafe.Pointer(pParse)).FnErr++ @@ -118325,7 +119135,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pBt1 = (*TDb)(unsafe.Pointer(pDb)).FpBt b = -int32(1) if zRight != 0 { - if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18316) == 0 { + if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18403) == 0 { b = int32(2) } else { b = int32(_sqlite3GetBoolean(tls, zRight, uint8(0))) @@ -118396,7 +119206,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p */ fallthrough case int32(PragTyp_LOCKING_MODE): - zRet = __ccgo_ts + 18107 + zRet = __ccgo_ts + 18194 eMode = _getLockingMode(tls, zRight) if (*TToken)(unsafe.Pointer(pId2)).Fn == uint32(0) && eMode == -int32(1) { /* Simple "PRAGMA locking_mode;" statement. This is a query for @@ -118424,7 +119234,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p eMode = _sqlite3PagerLockingMode(tls, pPager, eMode) } if eMode == int32(PAGER_LOCKINGMODE_EXCLUSIVE) { - zRet = __ccgo_ts + 18097 + zRet = __ccgo_ts + 18184 } _returnSingleText(tls, v, zRet) break @@ -118714,7 +119524,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if *(*int8)(unsafe.Pointer(zRight)) != 0 { rc = _sqlite3OsAccess(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, zRight, int32(SQLITE_ACCESS_READWRITE), bp+72) if rc != SQLITE_OK || *(*int32)(unsafe.Pointer(bp + 72)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18321, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18408, 0) Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) goto pragma_out } @@ -118724,7 +119534,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } Xsqlite3_free(tls, Xsqlite3_temp_directory) if *(*int8)(unsafe.Pointer(zRight)) != 0 { - Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+184, zRight)) + Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+184, zRight)) } else { Xsqlite3_temp_directory = uintptr(0) } @@ -118756,7 +119566,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p res1 = _sqlite3OsFileControl(tls, pFile1, int32(SQLITE_FCNTL_SET_LOCKPROXYFILE), libc.UintptrFromInt32(0)) } if res1 != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18346, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18433, 0) goto pragma_out } } @@ -118776,7 +119586,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _returnSingleInt(tls, v, int64(int32((*TDb)(unsafe.Pointer(pDb)).Fsafety_level)-int32(1))) } else { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18376, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18463, 0) } else { if iDb != int32(1) { iLevel = (int32(_getSafetyLevel(tls, zRight, 0, uint8(1))) + int32(1)) & int32(PAGER_SYNCHRONOUS_MASK) @@ -118809,7 +119619,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if mask == uint64(SQLITE_DeferFKs) { (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = 0 } - if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18429) == 0 { + if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18516) == 0 { /* IMP: R-60817-01178 If the argument is "RESET" then schema ** writing is disabled (as with "PRAGMA writable_schema=OFF") and, ** in addition, the schema is reloaded. */ @@ -118889,9 +119699,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pColExpr = _sqlite3ColumnExpr(tls, pTab, pCol) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - v14 = __ccgo_ts + 18435 + v14 = __ccgo_ts + 18522 } else { - v14 = __ccgo_ts + 18443 + v14 = __ccgo_ts + 18530 } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 { v15 = int32(1) @@ -118903,7 +119713,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v16 = *(*uintptr)(unsafe.Pointer(pColExpr + 8)) } - _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+184, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1650), v15, v16, k, isHidden)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+184, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1664), v15, v16, k, isHidden)) goto _12 _12: ; @@ -118962,7 +119772,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pTab1 = (*THashElem)(unsafe.Pointer(k1)).Fdata if int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) == 0 { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18450, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab1)).FzName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18537, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab1)).FzName)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 88)) = uintptr(0) Xsqlite3_prepare(tls, db, zSql, -int32(1), bp+88, uintptr(0)) @@ -118970,7 +119780,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3DbFree(tls, db, zSql) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1634, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) } pHash = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FpSchema + 8 @@ -118992,19 +119802,19 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _20 } if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 11144 + zType = __ccgo_ts + 11269 } else { if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 13392 + zType = __ccgo_ts + 13517 } else { if (*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Shadow) != 0 { - zType = __ccgo_ts + 18466 + zType = __ccgo_ts + 18553 } else { - zType = __ccgo_ts + 9406 + zType = __ccgo_ts + 9531 } } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18473, libc.VaList(bp+184, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18560, libc.VaList(bp+184, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) goto _20 _20: ; @@ -119051,9 +119861,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v22 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab3)).FaCol + uintptr(cnum)*16))).FzCnName } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18480, libc.VaList(bp+184, i1, int32(cnum), v22)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18567, libc.VaList(bp+184, i1, int32(cnum), v22)) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18485, libc.VaList(bp+184, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) + _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18572, libc.VaList(bp+184, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) } _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), int32(1), (*TParse)(unsafe.Pointer(pParse)).FnMem) goto _21 @@ -119077,11 +119887,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } azOrigin = [3]uintptr{ - 0: __ccgo_ts + 18490, - 1: __ccgo_ts + 18492, - 2: __ccgo_ts + 16933, + 0: __ccgo_ts + 18577, + 1: __ccgo_ts + 18579, + 2: __ccgo_ts + 17020, } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18494, libc.VaList(bp+184, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18581, libc.VaList(bp+184, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) goto _23 _23: ; @@ -119100,7 +119910,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt == uintptr(0) { goto _24 } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18500, libc.VaList(bp+184, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18587, libc.VaList(bp+184, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) goto _24 _24: ; @@ -119117,7 +119927,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pColl = (*THashElem)(unsafe.Pointer(p)).Fdata v26 = i4 i4++ - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18504, libc.VaList(bp+184, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18591, libc.VaList(bp+184, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) goto _25 _25: ; @@ -119167,7 +119977,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } pMod = (*THashElem)(unsafe.Pointer(j1)).Fdata - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7965, libc.VaList(bp+184, (*TModule)(unsafe.Pointer(pMod)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+8090, libc.VaList(bp+184, (*TModule)(unsafe.Pointer(pMod)).FzName)) goto _30 _30: ; @@ -119179,7 +119989,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i6 < int32(libc.Uint64FromInt64(1608)/libc.Uint64FromInt64(24))) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7965, libc.VaList(bp+184, _aPragmaName[i6].FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+8090, libc.VaList(bp+184, _aPragmaName[i6].FzName)) goto _31 _31: ; @@ -119205,7 +120015,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(j2 < (*TFKey)(unsafe.Pointer(pFK)).FnCol) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18507, libc.VaList(bp+184, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18516)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18594, libc.VaList(bp+184, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18603)) goto _32 _32: ; @@ -119346,7 +120156,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regResult+int32(1)) } - _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18521, libc.VaList(bp+184, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) + _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18608, libc.VaList(bp+184, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), regResult, int32(4)) _sqlite3VdbeResolveLabel(tls, v, addrOk) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 104))) @@ -119414,7 +120224,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p /* Set the maximum error count */ *(*int32)(unsafe.Pointer(bp + 112)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) if zRight != 0 { - if _sqlite3GetInt32(tls, zRight, bp+112) != 0 { + if _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pValue)).Fz, bp+112) != 0 { if *(*int32)(unsafe.Pointer(bp + 112)) <= 0 { *(*int32)(unsafe.Pointer(bp + 112)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) } @@ -119434,8 +120244,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i9 < (*Tsqlite3)(unsafe.Pointer(db)).FnDb) { break } /* Array of root page numbers of all btrees */ - cnt = 0 /* Number of entries in aRoot[] */ - mxIdx = 0 /* Maximum number of indexes for any table */ + cnt = 0 /* Number of entries in aRoot[] */ if libc.Bool(OMIT_TEMPDB != 0) && i9 == int32(1) { goto _40 } @@ -119476,9 +120285,6 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pIdx3 = (*TIndex)(unsafe.Pointer(pIdx3)).FpNext nIdx++ } - if nIdx > mxIdx { - mxIdx = nIdx - } goto _41 _41: ; @@ -119534,16 +120340,78 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } *(*int32)(unsafe.Pointer(aRoot)) = cnt /* Make sure sufficient number of registers have been allocated */ - _sqlite3TouchRegister(tls, pParse, int32(8)+mxIdx) + _sqlite3TouchRegister(tls, pParse, int32(8)+cnt) _sqlite3ClearTempRegCache(tls, pParse) /* Do the b-tree integrity checks */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(2), cnt, int32(1), aRoot, -int32(14)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(1), cnt, int32(8), aRoot, -int32(14)) _sqlite3VdbeChangeP5(tls, v, uint16(uint8(i9))) addr1 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(2)) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18525, libc.VaList(bp+184, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18612, libc.VaList(bp+184, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(2), int32(3), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, addr1) + /* Check that the indexes all have the right number of rows */ + if pObjTab != 0 { + v48 = int32(1) + } else { + v48 = 0 + } + cnt = v48 + _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18636) + x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst + for { + if !(x2 != 0) { + break + } + iTab = 0 + pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab9 { + goto _49 + } + if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + v50 = cnt + cnt++ + iTab = v50 + } else { + iTab = cnt + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx5 + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { + break + } + iTab++ + goto _51 + _51: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + } + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if (*TIndex)(unsafe.Pointer(pIdx5)).FpPartIdxWhere == uintptr(0) { + addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+cnt, 0, int32(8)+iTab) + _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) + _integrityCheckResultRow(tls, v) + _sqlite3VdbeJumpHere(tls, v, addr1) + } + cnt++ + goto _52 + _52: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + goto _49 + _49: + ; + x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext + } /* Make sure all the indices are constructed correctly. */ x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst @@ -119551,39 +120419,39 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata pPrior = uintptr(0) r1 = -int32(1) /* Maximum non-virtual column number */ - if pObjTab != 0 && pObjTab != pTab9 { - goto _48 + if pObjTab != 0 && pObjTab != pTab10 { + goto _53 } - if !(int32((*TTable)(unsafe.Pointer(pTab9)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { - goto _48 + if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _53 } - if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { pPk1 = uintptr(0) r2 = 0 } else { - pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab9) + pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab10) r2 = _sqlite3GetTempRange(tls, pParse, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), int32(1), r2, r2+int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)-int32(1)) } - _sqlite3OpenTableAndIndices(tls, pParse, pTab9, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+116, bp+120) + _sqlite3OpenTableAndIndices(tls, pParse, pTab10, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+116, bp+120) /* reg[7] counts the number of entries in the table. ** reg[8+i] counts the number of entries in the i-th index */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(7)) j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(8)+j4) /* index entries counter */ - goto _49 - _49: + goto _54 + _54: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), *(*int32)(unsafe.Pointer(bp + 116)), 0) @@ -119593,29 +120461,29 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** will also prepopulate the cursor column cache that is used ** by the OP_IsType code, so it is a required step. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { mxCol = -int32(1) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { + if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { mxCol++ } - goto _50 - _50: + goto _55 + _55: ; j4++ } - if mxCol == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { + if mxCol == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { mxCol-- } } else { /* COLFLAG_VIRTUAL columns are not included in the WITHOUT ROWID ** PK index column-count, so there is no need to account for them ** in this case. */ - mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab9))).FnColumn) - int32(1) + mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab10))).FnColumn) - int32(1) } if mxCol >= 0 { _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 116)), mxCol, int32(3)) @@ -119625,7 +120493,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if pPk1 != 0 { a1 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 116)), 0, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), r2) - zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18549, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18665, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a1) @@ -119636,8 +120504,8 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprCodeLoadIndexColumn(tls, pParse, pPk1, *(*int32)(unsafe.Pointer(bp + 116)), j4, r2+j4) - goto _51 - _51: + goto _56 + _56: ; j4++ } @@ -119652,15 +120520,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** (4) Datatype for numeric columns in non-STRICT tables must not ** be a TEXT value that can be losslessly converted to numeric. */ - bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_Strict) != uint32(0)) + bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_Strict) != uint32(0)) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - pCol1 = (*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ - if j4 == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { - goto _52 + pCol1 = (*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ + if j4 == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { + goto _57 } if bStrict != 0 { doTypeCheck = libc.BoolInt32(int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4)) > int32(COLTYPE_ANY)) @@ -119668,28 +120536,28 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p doTypeCheck = libc.BoolInt32(int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) > int32(SQLITE_AFF_BLOB)) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf>>0)) == 0 && !(doTypeCheck != 0) { - goto _52 + goto _57 } /* Compute the operands that will be needed for OP_IsType */ p4 = int32(SQLITE_NULL) if int32((*TColumn)(unsafe.Pointer(pCol1)).FcolFlags)&int32(COLFLAG_VIRTUAL) != 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 116)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 116)), j4, int32(3)) p11 = -int32(1) p3 = int32(3) } else { if (*TColumn)(unsafe.Pointer(pCol1)).FiDflt != 0 { *(*uintptr)(unsafe.Pointer(bp + 128)) = uintptr(0) - _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab9, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8((*TColumn)(unsafe.Pointer(pCol1)).Faffinity), bp+128) + _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab10, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8((*TColumn)(unsafe.Pointer(pCol1)).Faffinity), bp+128) if *(*uintptr)(unsafe.Pointer(bp + 128)) != 0 { p4 = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp + 128))) _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 128))) } } p11 = *(*int32)(unsafe.Pointer(bp + 116)) - if !((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { - p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab9), int16(j4))) + if !((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { + p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab10), int16(j4))) } else { - p3 = int32(_sqlite3TableColumnToStorage(tls, pTab9, int16(j4))) + p3 = int32(_sqlite3TableColumnToStorage(tls, pTab10, int16(j4))) } } labelError = _sqlite3VdbeMakeLabel(tls, pParse) @@ -119706,10 +120574,10 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** is REAL, we have to load the actual data using OP_Column ** to reliably determine if the value is a NULL. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), p11, p3, int32(3)) - _sqlite3ColumnDefault(tls, v, pTab9, j4, int32(3)) + _sqlite3ColumnDefault(tls, v, pTab10, j4, int32(3)) jmp3 = _sqlite3VdbeAddOp2(tls, v, int32(OP_NotNull), int32(3), labelOk) } - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18585, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18701, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) if doTypeCheck != 0 { _sqlite3VdbeGoto(tls, v, labelError) @@ -119722,7 +120590,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if bStrict != 0 && doTypeCheck != 0 { _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(_aStdTypeMask[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)])) - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18605, libc.VaList(bp+184, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18721, libc.VaList(bp+184, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) == int32(SQLITE_AFF_TEXT) { @@ -119730,7 +120598,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** NULL, TEXT, or BLOB. */ _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18627, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18743, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) >= int32(SQLITE_AFF_NUMERIC) { @@ -119739,12 +120607,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1b)) /* NULL, INT, FLOAT, or BLOB */ if p11 >= 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 116)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 116)), j4, int32(3)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18650, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18766, -int32(1)) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), -int32(1), labelOk, int32(3), p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18652, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18768, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } } @@ -119752,14 +120620,14 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeResolveLabel(tls, v, labelError) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, labelOk) - goto _52 - _52: + goto _57 + _57: ; j4++ } /* Verify CHECK constraints */ - if (*TTable)(unsafe.Pointer(pTab9)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { - pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab9)).FpCheck, 0) + if (*TTable)(unsafe.Pointer(pTab10)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { + pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab10)).FpCheck, 0) if int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { addrCkFault = _sqlite3VdbeMakeLabel(tls, pParse) addrCkOk = _sqlite3VdbeMakeLabel(tls, pParse) @@ -119770,15 +120638,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprIfFalse(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8 + uintptr(k3)*32))).FpExpr, addrCkFault, 0) - goto _53 - _53: + goto _58 + _58: ; k3-- } _sqlite3ExprIfTrue(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8))).FpExpr, addrCkOk, int32(SQLITE_JUMPIFNULL)) _sqlite3VdbeResolveLabel(tls, v, addrCkFault) (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 - zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18672, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18788, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr2, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, addrCkOk) @@ -119788,25 +120656,25 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(isQuick != 0) { /* Omit the remaining tests for quick_check */ /* Validate index entries for the current row */ j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } ckUniq = _sqlite3VdbeMakeLabel(tls, pParse) - if pPk1 == pIdx5 { - goto _54 + if pPk1 == pIdx6 { + goto _59 } - r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx5, *(*int32)(unsafe.Pointer(bp + 116)), 0, 0, bp+136, pPrior, r1) - pPrior = pIdx5 + r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx6, *(*int32)(unsafe.Pointer(bp + 116)), 0, 0, bp+136, pPrior, r1) + pPrior = pIdx6 _sqlite3VdbeAddOp2(tls, v, int32(OP_AddImm), int32(8)+j4, int32(1)) /* increment entry count */ /* Verify that an index entry exists for the current table row */ - jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 120))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18702) + jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 120))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18818) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18707) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18823) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) - jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx6)).FzName) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) jmp4 = _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, jmp21) @@ -119814,12 +120682,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** that extracts the rowid off the end of the index record. ** But it only works correctly if index record does not have ** any extra bytes at the end. Verify that this is the case. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { _sqlite3VdbeAddOp2(tls, v, int32(OP_IdxRowid), *(*int32)(unsafe.Pointer(bp + 120))+j4, int32(3)) - jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)-int32(1)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18728) + jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)-int32(1)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18844) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18764) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18880) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp7) } @@ -119828,100 +120696,75 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p label6 = 0 kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { - goto _55 + if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { + goto _60 } if label6 == 0 { label6 = _sqlite3VdbeMakeLabel(tls, pParse) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 120))+j4, kk, int32(3)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ne), int32(3), label6, r1+kk) - goto _55 - _55: + goto _60 + _60: ; kk++ } if label6 != 0 { jmp6 = _sqlite3VdbeAddOp0(tls, v, int32(OP_Goto)) _sqlite3VdbeResolveLabel(tls, v, label6) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18702) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18818) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18775) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18891) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp6) } /* For UNIQUE indexes, verify that only one entry exists with the ** current key. The entry is unique if (1) any column is NULL ** or (2) the next entry has a different key */ - if int32((*TIndex)(unsafe.Pointer(pIdx5)).FonError) != OE_None { + if int32((*TIndex)(unsafe.Pointer(pIdx6)).FonError) != OE_None { uniqOk = _sqlite3VdbeMakeLabel(tls, pParse) kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FaiColumn + uintptr(kk)*2))) - if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { - goto _56 + iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FaiColumn + uintptr(kk)*2))) + if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { + goto _61 } _sqlite3VdbeAddOp2(tls, v, int32(OP_IsNull), r1+kk, uniqOk) - goto _56 - _56: + goto _61 + _61: ; kk++ } jmp61 = _sqlite3VdbeAddOp1(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 120))+j4) _sqlite3VdbeGoto(tls, v, uniqOk) _sqlite3VdbeJumpHere(tls, v, jmp61) - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 120))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18802) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 120))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18918) _sqlite3VdbeGoto(tls, v, jmp5) _sqlite3VdbeResolveLabel(tls, v, uniqOk) } _sqlite3VdbeJumpHere(tls, v, jmp4) _sqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp + 136))) - goto _54 - _54: + goto _59 + _59: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } } _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 116)), loopTop) _sqlite3VdbeJumpHere(tls, v, loopTop-int32(1)) - if !(isQuick != 0) { - _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18829) - j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex - for { - if !(pIdx5 != 0) { - break - } - if pPk1 == pIdx5 { - goto _57 - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), *(*int32)(unsafe.Pointer(bp + 120))+j4, int32(3)) - addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+j4, 0, int32(3)) - _sqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL)) - _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) - _integrityCheckResultRow(tls, v) - _sqlite3VdbeJumpHere(tls, v, addr1) - goto _57 - _57: - ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext - j4++ - } - if pPk1 != 0 { - _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) - } + if pPk1 != 0 { + _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) } - goto _48 - _48: + goto _53 + _53: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -119933,60 +120776,60 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata - if pObjTab != 0 && pObjTab != pTab10 { - goto _58 + pTab11 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab11 { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == TABTYP_NORM { - goto _58 + if int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == TABTYP_NORM { + goto _62 } - if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { - goto _58 + if !(int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FnCol) <= 0 { + if int32((*TTable)(unsafe.Pointer(pTab11)).FnCol) <= 0 { zMod = *(*uintptr)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).FazArg)) + })(unsafe.Pointer(pTab11 + 64))).FazArg)) if _sqlite3HashFind(tls, db+576, zMod) == uintptr(0) { - goto _58 + goto _62 } } - _sqlite3ViewGetColumnNames(tls, pParse, pTab10) + _sqlite3ViewGetColumnNames(tls, pParse, pTab11) if (*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp == uintptr(0) { - goto _58 + })(unsafe.Pointer(pTab11 + 64))).Fp == uintptr(0) { + goto _62 } pVTab = (*TVTable)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp)).FpVtab + })(unsafe.Pointer(pTab11 + 64))).Fp)).FpVtab if pVTab == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FiVersion < int32(4) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FxIntegrity == uintptr(0) { - goto _58 + goto _62 } _sqlite3VdbeAddOp3(tls, v, int32(OP_VCheck), i9, int32(3), isQuick) - (*TTable)(unsafe.Pointer(pTab10)).FnTabRef++ - _sqlite3VdbeAppendP4(tls, v, pTab10, -int32(16)) + (*TTable)(unsafe.Pointer(pTab11)).FnTabRef++ + _sqlite3VdbeAppendP4(tls, v, pTab11, -int32(16)) a11 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a11) - goto _58 - goto _58 - _58: + goto _62 + goto _62 + _62: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -119999,7 +120842,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if aOp2 != 0 { (*(*TVdbeOp)(unsafe.Pointer(aOp2))).Fp2 = int32(1) - *(*int32)(unsafe.Pointer(bp + 112)) (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 2*24))).Fp4type = int8(-libc.Int32FromInt32(1)) - *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18858 + *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18945 (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 5*24))).Fp4type = int8(-libc.Int32FromInt32(1)) *(*uintptr)(unsafe.Pointer(aOp2 + 5*24 + 16)) = _sqlite3ErrStr(tls, int32(SQLITE_CORRUPT)) } @@ -120057,20 +120900,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc != 0 { - v60 = int32((*struct { + v64 = int32((*struct { FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc) } else { - v60 = int32(SQLITE_UTF16LE) + v64 = int32(SQLITE_UTF16LE) } - enc = uint8(v60) + enc = uint8(v64) (*TSchema)(unsafe.Pointer((*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema)).Fenc = enc _sqlite3SetTextEncoding(tls, db, enc) break } - goto _59 - _59: + goto _63 + _63: ; pEnc += 16 } @@ -120078,7 +120921,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).FzName != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18919, libc.VaList(bp+184, zRight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19006, libc.VaList(bp+184, zRight)) } } } @@ -120156,11 +120999,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p i10 = 0 (*TParse)(unsafe.Pointer(pParse)).FnMem = int32(1) for { - v62 = i10 + v66 = i10 i10++ - v61 = Xsqlite3_compileoption_get(tls, v62) - zOpt = v61 - if !(v61 != uintptr(0)) { + v65 = Xsqlite3_compileoption_get(tls, v66) + zOpt = v65 + if !(v65 != uintptr(0)) { break } _sqlite3VdbeLoadString(tls, v, int32(1), zOpt) @@ -120176,20 +121019,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p fallthrough case int32(PragTyp_WAL_CHECKPOINT): if (*TToken)(unsafe.Pointer(pId2)).Fz != 0 { - v63 = iDb + v67 = iDb } else { - v63 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) + v67 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) } - iBt = v63 + iBt = v67 eMode2 = SQLITE_CHECKPOINT_PASSIVE if zRight != 0 { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18114) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18201) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_FULL) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18944) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+19031) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_RESTART) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18267) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18354) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_TRUNCATE) } } @@ -120213,11 +121056,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p Xsqlite3_wal_autocheckpoint(tls, db, _sqlite3Atoi(tls, zRight)) } if (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback == __ccgo_fp(_sqlite3WalDefaultHook) { - v64 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) + v68 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) } else { - v64 = 0 + v68 = 0 } - _returnSingleInt(tls, v, int64(v64)) + _returnSingleInt(tls, v, int64(v68)) break /* ** PRAGMA shrink_memory @@ -120245,47 +121088,68 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** ** The optional argument is a bitmask of optimizations to perform: ** - ** 0x0001 Debugging mode. Do not actually perform any optimizations - ** but instead return one line of text for each optimization - ** that would have been done. Off by default. + ** 0x00001 Debugging mode. Do not actually perform any optimizations + ** but instead return one line of text for each optimization + ** that would have been done. Off by default. ** - ** 0x0002 Run ANALYZE on tables that might benefit. On by default. - ** See below for additional information. + ** 0x00002 Run ANALYZE on tables that might benefit. On by default. + ** See below for additional information. ** - ** 0x0004 (Not yet implemented) Record usage and performance - ** information from the current session in the - ** database file so that it will be available to "optimize" - ** pragmas run by future database connections. + ** 0x00010 Run all ANALYZE operations using an analysis_limit that + ** is the lessor of the current analysis_limit and the + ** SQLITE_DEFAULT_OPTIMIZE_LIMIT compile-time option. + ** The default value of SQLITE_DEFAULT_OPTIMIZE_LIMIT is + ** currently (2024-02-19) set to 2000, which is such that + ** the worst case run-time for PRAGMA optimize on a 100MB + ** database will usually be less than 100 milliseconds on + ** a RaspberryPI-4 class machine. On by default. ** - ** 0x0008 (Not yet implemented) Create indexes that might have - ** been helpful to recent queries + ** 0x10000 Look at tables to see if they need to be reanalyzed + ** due to growth or shrinkage even if they have not been + ** queried during the current connection. Off by default. ** - ** The default MASK is and always shall be 0xfffe. 0xfffe means perform all - ** of the optimizations listed above except Debug Mode, including new - ** optimizations that have not yet been invented. If new optimizations are - ** ever added that should be off by default, those off-by-default - ** optimizations will have bitmasks of 0x10000 or larger. + ** The default MASK is and always shall be 0x0fffe. In the current + ** implementation, the default mask only covers the 0x00002 optimization, + ** though additional optimizations that are covered by 0x0fffe might be + ** added in the future. Optimizations that are off by default and must + ** be explicitly requested have masks of 0x10000 or greater. ** ** DETERMINATION OF WHEN TO RUN ANALYZE ** ** In the current implementation, a table is analyzed if only if all of ** the following are true: ** - ** (1) MASK bit 0x02 is set. + ** (1) MASK bit 0x00002 is set. ** - ** (2) The query planner used sqlite_stat1-style statistics for one or - ** more indexes of the table at some point during the lifetime of - ** the current connection. + ** (2) The table is an ordinary table, not a virtual table or view. ** - ** (3) One or more indexes of the table are currently unanalyzed OR - ** the number of rows in the table has increased by 25 times or more - ** since the last time ANALYZE was run. + ** (3) The table name does not begin with "sqlite_". + ** + ** (4) One or more of the following is true: + ** (4a) The 0x10000 MASK bit is set. + ** (4b) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. + ** (4c) The query planner used sqlite_stat1-style statistics for one + ** or more indexes of the table at some point during the lifetime + ** of the current connection. + ** + ** (5) One or more of the following is true: + ** (5a) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. (Same as 4a) + ** (5b) The number of rows in the table has increased or decreased by + ** 10-fold. In other words, the current size of the table is + ** 10 times larger than the size in sqlite_stat1 or else the + ** current size is less than 1/10th the size in sqlite_stat1. ** ** The rules for when tables are analyzed are likely to change in - ** future releases. + ** future releases. Future versions of SQLite might accept a string + ** literal argument to this pragma that contains a mnemonic description + ** of the options rather than a bitmap. */ fallthrough - case int32(PragTyp_OPTIMIZE): /* Mask of operations to perform */ + case int32(PragTyp_OPTIMIZE): /* Analysis limit to use */ + nCheck = 0 /* Number of tables to be optimized */ + nBtree = 0 /* Number of indexes on the current table */ if zRight != 0 { opMask = uint32(_sqlite3Atoi(tls, zRight)) if opMask&uint32(0x02) == uint32(0) { @@ -120294,22 +121158,31 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { opMask = uint32(0xfffe) } - v66 = pParse + 52 - v65 = *(*int32)(unsafe.Pointer(v66)) - *(*int32)(unsafe.Pointer(v66))++ - iTabCur = v65 + if opMask&uint32(0x10) == uint32(0) { + nLimit = 0 + } else { + if (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit > 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit < int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) { + nLimit = 0 + } else { + nLimit = int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) + } + } + v70 = pParse + 52 + v69 = *(*int32)(unsafe.Pointer(v70)) + *(*int32)(unsafe.Pointer(v70))++ + iTabCur = v69 if zDb != 0 { - v68 = iDb + v72 = iDb } else { - v68 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) + v72 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) } - iDbLast = v68 + iDbLast = v72 for { if !(iDb <= iDbLast) { break } if iDb == int32(1) { - goto _67 + goto _71 } _sqlite3CodeVerifySchema(tls, pParse, iDb) pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema @@ -120318,52 +121191,122 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(k4 != 0) { break } - pTab11 = (*THashElem)(unsafe.Pointer(k4)).Fdata - /* If table pTab has not been used in a way that would benefit from - ** having analysis statistics during the current session, then skip it. - ** This also has the effect of skipping virtual tables and views */ - if (*TTable)(unsafe.Pointer(pTab11)).FtabFlags&uint32(TF_StatsUsed) == uint32(0) { - goto _69 - } - /* Reanalyze if the table is 25 times larger than the last analysis */ - szThreshold = int16(int32((*TTable)(unsafe.Pointer(pTab11)).FnRowLogEst) + int32(46)) - pIdx6 = (*TTable)(unsafe.Pointer(pTab11)).FpIndex + pTab12 = (*THashElem)(unsafe.Pointer(k4)).Fdata + /* This only works for ordinary tables */ + if !(int32((*TTable)(unsafe.Pointer(pTab12)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _73 + } + /* Do not scan system tables */ + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab12)).FzName, __ccgo_ts+6937, int32(7)) { + goto _73 + } + /* Find the size of the table as last recorded in sqlite_stat1. + ** If any index is unanalyzed, then the threshold is -1 to + ** indicate a new, unanalyzed index + */ + szThreshold = (*TTable)(unsafe.Pointer(pTab12)).FnRowLogEst + nIndex = 0 + pIdx7 = (*TTable)(unsafe.Pointer(pTab12)).FpIndex for { - if !(pIdx6 != 0) { + if !(pIdx7 != 0) { break } - if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx6 + 100))&0x80>>7)) != 0) { - szThreshold = 0 /* Always analyze if any index lacks statistics */ - break + nIndex++ + if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx7 + 100))&0x80>>7)) != 0) { + szThreshold = int16(-int32(1)) /* Always analyze if any index lacks statistics */ } - goto _70 - _70: + goto _74 + _74: ; - pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext + pIdx7 = (*TIndex)(unsafe.Pointer(pIdx7)).FpNext } - if szThreshold != 0 { - _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab11, int32(OP_OpenRead)) - _sqlite3VdbeAddOp3(tls, v, int32(OP_IfSmaller), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), int32(szThreshold)) + /* If table pTab has not been used in a way that would benefit from + ** having analysis statistics during the current session, then skip it, + ** unless the 0x10000 MASK bit is set. */ + if (*TTable)(unsafe.Pointer(pTab12)).FtabFlags&uint32(TF_MaybeReanalyze) != uint32(0) { + /* Check for size change if stat1 has been used for a query */ + } else { + if opMask&uint32(0x10000) != 0 { + /* Check for size change if 0x10000 is set */ + } else { + if (*TTable)(unsafe.Pointer(pTab12)).FpIndex != uintptr(0) && int32(szThreshold) < 0 { + /* Do analysis if unanalyzed indexes exists */ + } else { + /* Otherwise, we can skip this table */ + goto _73 + } + } + } + nCheck++ + if nCheck == int32(2) { + /* If ANALYZE might be invoked two or more times, hold a write + ** transaction for efficiency */ + _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) + } + nBtree += nIndex + int32(1) + /* Reanalyze if the table is 10 times larger or smaller than + ** the last analysis. Unconditional reanalysis if there are + ** unanalyzed indexes. */ + _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab12, int32(OP_OpenRead)) + if int32(szThreshold) >= 0 { + iRange = int16(33) /* 10x size change */ + if int32(szThreshold) >= int32(iRange) { + v75 = int32(szThreshold) - int32(iRange) + } else { + v75 = -int32(1) + } + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IfSizeBetween), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), v75, int32(szThreshold)+int32(iRange)) + } else { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1))) } - zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18952, libc.VaList(bp+184, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab11)).FzName)) + zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+19039, libc.VaList(bp+184, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab12)).FzName)) if opMask&uint32(0x01) != 0 { r11 = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, r11, 0, zSubSql, -int32(6)) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), r11, int32(1)) } else { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), 0, 0, 0, zSubSql, -int32(6)) + if nLimit != 0 { + v76 = int32(0x02) + } else { + v76 = 00 + } + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), v76, nLimit, 0, zSubSql, -int32(6)) } - goto _69 - _69: + goto _73 + _73: ; k4 = (*THashElem)(unsafe.Pointer(k4)).Fnext } - goto _67 - _67: + goto _71 + _71: ; iDb++ } _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) + /* In a schema with a large number of tables and indexes, scale back + ** the analysis_limit to avoid excess run-time in the worst case. + */ + if !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && nLimit > 0 && nBtree > int32(100) { + nLimit = int32(100) * nLimit / nBtree + if nLimit < int32(100) { + nLimit = int32(100) + } + aOp5 = _sqlite3VdbeGetOp(tls, v, 0) + iEnd = _sqlite3VdbeCurrentAddr(tls, v) + iAddr1 = 0 + for { + if !(iAddr1 < iEnd) { + break + } + if int32((*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fopcode) == int32(OP_SqlExec) { + (*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fp2 = nLimit + } + goto _77 + _77: + ; + iAddr1++ + } + } break /* ** PRAGMA busy_timeout @@ -120457,6 +121400,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** instructions to the VM. */ if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_NoColumns1) != 0 && zRight != 0 { } + goto pragma_out pragma_out: ; _sqlite3DbFree(tls, db, zLeft) @@ -120588,34 +121532,34 @@ var _encnames1 = [9]struct { Fenc Tu8 }{ 0: { - FzName: __ccgo_ts + 18861, + FzName: __ccgo_ts + 18948, Fenc: uint8(SQLITE_UTF8), }, 1: { - FzName: __ccgo_ts + 18866, + FzName: __ccgo_ts + 18953, Fenc: uint8(SQLITE_UTF8), }, 2: { - FzName: __ccgo_ts + 18872, + FzName: __ccgo_ts + 18959, Fenc: uint8(SQLITE_UTF16LE), }, 3: { - FzName: __ccgo_ts + 18881, + FzName: __ccgo_ts + 18968, Fenc: uint8(SQLITE_UTF16BE), }, 4: { - FzName: __ccgo_ts + 18890, + FzName: __ccgo_ts + 18977, Fenc: uint8(SQLITE_UTF16LE), }, 5: { - FzName: __ccgo_ts + 18898, + FzName: __ccgo_ts + 18985, Fenc: uint8(SQLITE_UTF16BE), }, 6: { - FzName: __ccgo_ts + 18906, + FzName: __ccgo_ts + 18993, }, 7: { - FzName: __ccgo_ts + 18913, + FzName: __ccgo_ts + 19000, }, 8: {}, } @@ -120711,14 +121655,14 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg _ = argc _ = argv _sqlite3StrAccumInit(tls, bp, uintptr(0), bp+32, int32(200), 0) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18970) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+19057) i = 0 j = int32((*TPragmaName)(unsafe.Pointer(pPragma)).FiPragCName) for { if !(i < int32((*TPragmaName)(unsafe.Pointer(pPragma)).FnPragCName)) { break } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18985, libc.VaList(bp+240, int32(cSep), _pragCName[j])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+19072, libc.VaList(bp+240, int32(cSep), _pragCName[j])) cSep = int8(',') goto _1 _1: @@ -120727,19 +121671,19 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg j++ } if i == 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18992, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+19079, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) i++ } j = 0 if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_Result1) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18998) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+19085) j++ } if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&(libc.Int32FromInt32(PragFlg_SchemaOpt)|libc.Int32FromInt32(PragFlg_SchemaReq)) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+19010) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+19097) j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5454, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5518, int32(1)) _sqlite3StrAccumFinish(tls, bp) rc = Xsqlite3_declare_vtab(tls, db, bp+32) if rc == SQLITE_OK { @@ -120754,7 +121698,7 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg (*TPragmaVtab)(unsafe.Pointer(pTab)).FnHidden = uint8(j) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) } *(*uintptr)(unsafe.Pointer(ppVtab)) = pTab return rc @@ -120800,14 +121744,14 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) { break } - if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { goto _1 } if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fop) != int32(SQLITE_INDEX_CONSTRAINT_EQ) { goto _1 } - if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { - goto _1 + if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + return int32(SQLITE_CONSTRAINT) } j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn - int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) seen[j] = i + int32(1) @@ -120825,16 +121769,13 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 j = seen[0] - int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) - if seen[int32(1)] == 0 { - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(1000) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(1000) - return SQLITE_OK - } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(20) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(20) - j = seen[int32(1)] - int32(1) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + if seen[int32(1)] != 0 { + j = seen[int32(1)] - int32(1) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + } return SQLITE_OK } @@ -120862,6 +121803,7 @@ func _pragmaVtabCursorClear(tls *libc.TLS, pCsr uintptr) { _ = i Xsqlite3_finalize(tls, (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma) (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma = uintptr(0) + (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FiRowid = 0 i = 0 for { if !(i < int32(libc.Uint64FromInt64(16)/libc.Uint64FromInt64(8))) { @@ -120937,7 +121879,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr } zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if zText != 0 { - *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+40, zText)) + *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+40, zText)) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -120949,13 +121891,13 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr j++ } _sqlite3StrAccumInit(tls, bp, uintptr(0), uintptr(0), 0, *(*int32)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb + 136 + 1*4))) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+19025) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+19112) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+19033, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+19120, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) } Xsqlite3_str_appendall(tls, bp, (*TPragmaName)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).FpName)).FzName) if *(*uintptr)(unsafe.Pointer(pCsr + 24)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+19037, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+19124, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) } zSql = _sqlite3StrAccumFinish(tls, bp) if zSql == uintptr(0) { @@ -120964,7 +121906,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr rc = Xsqlite3_prepare_v2(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), pCsr+8, uintptr(0)) Xsqlite3_free(tls, zSql) if rc != SQLITE_OK { - (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) + (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) return rc } return _pragmaVtabNext(tls, pVtabCursor) @@ -121090,24 +122032,24 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) /* A error message has already been generated. Do not overwrite it */ } else { if (*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(libc.Int32FromInt32(INITFLAG_AlterMask)) != 0 { - *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+19071, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) + *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+19158, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) (*TInitData)(unsafe.Pointer(pData)).Frc = int32(SQLITE_ERROR) } else { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_WriteSchema) != 0 { - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140891)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141840)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) } else { - v1 = __ccgo_ts + 5456 + v1 = __ccgo_ts + 5520 } zObj = v1 - z = _sqlite3MPrintf(tls, db, __ccgo_ts+19099, libc.VaList(bp+8, zObj)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+19186, libc.VaList(bp+8, zObj)) if zExtra != 0 && *(*int8)(unsafe.Pointer(zExtra)) != 0 { - z = _sqlite3MPrintf(tls, db, __ccgo_ts+19130, libc.VaList(bp+8, z, zExtra)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+19217, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140898)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141847)) } } } @@ -121115,9 +122057,9 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) } var _azAlterType = [3]uintptr{ - 0: __ccgo_ts + 19041, - 1: __ccgo_ts + 19048, - 2: __ccgo_ts + 19060, + 0: __ccgo_ts + 19128, + 1: __ccgo_ts + 19135, + 2: __ccgo_ts + 19147, } // C documentation @@ -121193,7 +122135,7 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(iDb) if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), db+192) == 0 || (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage && (*TInitData)(unsafe.Pointer(pData)).FmxPage > uint32(0) { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14864) + _corruptSchema(tls, pData, argv, __ccgo_ts+14957) } } libc.SetBitFieldPtr8Uint32(db+192+8, libc.Uint32FromInt32(0), 0, 0x1) @@ -121226,11 +122168,11 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr } else { pIndex = _sqlite3FindIndex(tls, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName) if pIndex == uintptr(0) { - _corruptSchema(tls, pData, argv, __ccgo_ts+19138) + _corruptSchema(tls, pData, argv, __ccgo_ts+19225) } else { if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), pIndex+88) == 0 || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum < uint32(2) || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage || _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14864) + _corruptSchema(tls, pData, argv, __ccgo_ts+14957) } } } @@ -121269,18 +122211,18 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** table name will be inserted automatically by the parser so we can just ** use the abbreviation "x" here. The parser will also automatically tag ** the schema table as read-only. */ - (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9406 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9531 if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6881 + v2 = __ccgo_ts + 6945 } else { - v2 = __ccgo_ts + 6414 + v2 = __ccgo_ts + 6478 } v1 = v2 zSchemaTabName = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(2)] = (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8478 - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 19151 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8603 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 19238 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(5)] = uintptr(0) (*(*TInitData)(unsafe.Pointer(bp + 72))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 72))).FiDb = iDb @@ -121369,7 +122311,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl } else { /* If opening an attached database, the encoding much match ENC(db) */ if (*(*[5]int32)(unsafe.Pointer(bp + 48)))[libc.Int32FromInt32(BTREE_TEXT_ENCODING)-libc.Int32FromInt32(1)]&int32(3) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12443) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12568) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -121395,7 +122337,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = uint8(1) } if int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) > int32(SQLITE_MAX_FILE_FORMAT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+19223) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+19310) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -121410,7 +122352,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl /* Read the schema information out of the schema tables */ (*(*TInitData)(unsafe.Pointer(bp + 72))).FmxPage = _sqlite3BtreeLastPage(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+19247, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+19334, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) rc = Xsqlite3_exec(tls, db, zSql, __ccgo_fp(_sqlite3InitCallback), bp+72, uintptr(0)) @@ -121447,12 +122389,14 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** curMain and calling sqlite3BtreeEnter(). For an error that occurs ** before that point, jump to error_out. */ + goto initone_error_out initone_error_out: ; if openedTransaction != 0 { _sqlite3BtreeCommit(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) } _sqlite3BtreeLeave(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) + goto error_out error_out: ; if rc != 0 { @@ -121707,7 +122651,12 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup - pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + if _sqlite3FaultSim(tls, int32(300)) != 0 { + pCleanup = uintptr(0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) + } else { + pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + } if pCleanup != 0 { (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup @@ -121738,7 +122687,7 @@ func _sqlite3ParseObjectInit(tls *libc.TLS, pParse uintptr, db uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FpParse = pParse (*TParse)(unsafe.Pointer(pParse)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1634, 0) } } @@ -121772,7 +122721,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } else { } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1634, 0) v1 = libc.Int32FromInt32(SQLITE_NOMEM) rc = v1 (*Tsqlite3)(unsafe.Pointer(db)).FerrCode = v1 @@ -121821,7 +122770,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep rc = _sqlite3BtreeSchemaLocked(tls, pBt) if rc != 0 { zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FzDbSName - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+19281, libc.VaList(bp+432, zDb)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+19368, libc.VaList(bp+432, zDb)) goto end_prepare } } @@ -121837,7 +122786,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep if nBytes >= 0 && (nBytes == 0 || int32(*(*int8)(unsafe.Pointer(zSql + uintptr(nBytes-int32(1))))) != 0) { mxLen = *(*int32)(unsafe.Pointer(db + 136 + 1*4)) if nBytes > mxLen { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+19311, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+19398, 0) rc = _sqlite3ApiExit(tls, db, int32(SQLITE_TOOBIG)) goto end_prepare } @@ -121871,7 +122820,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } rc = (*(*TParse)(unsafe.Pointer(bp))).Frc if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3799, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3863, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) } else { _sqlite3Error(tls, db, rc) @@ -121887,6 +122836,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep (*(*TParse)(unsafe.Pointer(bp))).FpTriggerPrg = (*TTriggerPrg)(unsafe.Pointer(pT)).FpNext _sqlite3DbFree(tls, db, pT) } + goto end_prepare end_prepare: ; _sqlite3ParseObjectReset(tls, bp) @@ -121900,7 +122850,7 @@ func _sqlite3LockAndPrepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int3 cnt = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141699)) + return _sqlite3MisuseError(tls, int32(142654)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -122034,7 +122984,7 @@ func _sqlite3Prepare16(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, pr rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141848)) + return _sqlite3MisuseError(tls, int32(142803)) } if nBytes >= 0 { z = zSql @@ -122440,15 +123390,15 @@ func _sqlite3JoinType(tls *libc.TLS, pParse uintptr, pA uintptr, pB uintptr, pC i++ } if jointype&(libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER)) == libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER) || jointype&int32(JT_ERROR) != 0 || jointype&(libc.Int32FromInt32(JT_OUTER)|libc.Int32FromInt32(JT_LEFT)|libc.Int32FromInt32(JT_RIGHT)) == int32(JT_OUTER) { - zSp1 = __ccgo_ts + 11550 - zSp2 = __ccgo_ts + 11550 + zSp1 = __ccgo_ts + 11675 + zSp2 = __ccgo_ts + 11675 if pB == uintptr(0) { zSp1++ } if pC == uintptr(0) { zSp2++ } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19330, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19417, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) jointype = int32(JT_INNER) } return jointype @@ -122739,7 +123689,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { if int32((*TSrcItem)(unsafe.Pointer(pRight)).Ffg.Fjointype)&int32(JT_NATURAL) != 0 { pUsing = uintptr(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x400>>10)) != 0 || *(*uintptr)(unsafe.Pointer(pRight + 72)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19360, libc.VaList(bp+16, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19447, libc.VaList(bp+16, 0)) return int32(1) } j = 0 @@ -122789,7 +123739,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { zName1 = (*(*TIdList_item)(unsafe.Pointer(pList + 8 + uintptr(j)*16))).FzName iRightCol = _sqlite3ColumnIndex(tls, pRightTab, zName1) if iRightCol < 0 || _tableAndColumnIndex(tls, pSrc, 0, i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19410, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19497, libc.VaList(bp+16, zName1)) return int32(1) } pE1 = _sqlite3CreateColumnExpr(tls, db, pSrc, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) @@ -122811,7 +123761,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { pFuncArgs = uintptr(0) /* Arguments to the coalesce() */ for _tableAndColumnIndex(tls, pSrc, *(*int32)(unsafe.Pointer(bp))+int32(1), i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) != 0 { if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 60 + 4))&0x400>>10)) == 0 || _sqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 72)), zName1) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19474, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19561, libc.VaList(bp+16, zName1)) break } pFuncArgs = _sqlite3ExprListAppend(tls, pParse, pFuncArgs, pE1) @@ -122855,7 +123805,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { } var _tkCoalesce = TToken{ - Fz: __ccgo_ts + 7078, + Fz: __ccgo_ts + 7142, Fn: uint32(8), } @@ -123631,13 +124581,13 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { _ = z switch id { case int32(TK_ALL): - z = __ccgo_ts + 19511 + z = __ccgo_ts + 19598 case int32(TK_INTERSECT): - z = __ccgo_ts + 19521 + z = __ccgo_ts + 19608 case int32(TK_EXCEPT): - z = __ccgo_ts + 19531 + z = __ccgo_ts + 19618 default: - z = __ccgo_ts + 19538 + z = __ccgo_ts + 19625 break } return z @@ -123658,7 +124608,7 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { func _explainTempTable(tls *libc.TLS, pParse uintptr, zUsage uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19544, libc.VaList(bp+8, zUsage)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19631, libc.VaList(bp+8, zUsage)) } /* @@ -123692,12 +124642,17 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, iParm = (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm /* True if sorter record includes seq. no. */ nRefKey = 0 aOutEx = (*TSelect)(unsafe.Pointer(p)).FpEList + 8 - if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat > 0 { - v1 = __ccgo_ts + 19567 + nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat == 0 || nKey == int32(1) { + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat != 0 { + v1 = __ccgo_ts + 19654 + } else { + v1 = __ccgo_ts + 1664 + } + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19668, libc.VaList(bp+8, v1)) } else { - v1 = __ccgo_ts + 1650 + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19699, libc.VaList(bp+8, nKey)) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19582, libc.VaList(bp+8, v1)) if (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut != 0 { _sqlite3VdbeAddOp2(tls, v, int32(OP_Gosub), (*TSortCtx)(unsafe.Pointer(pSort)).FregReturn, (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut) _sqlite3VdbeGoto(tls, v, addrBreak) @@ -123719,7 +124674,6 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, regRow = _sqlite3GetTempRange(tls, pParse, nColumn) } } - nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat if int32((*TSortCtx)(unsafe.Pointer(pSort)).FsortFlags)&int32(SORTFLAG_UseSorter) != 0 { v3 = pParse + 56 *(*int32)(unsafe.Pointer(v3))++ @@ -123937,7 +124891,7 @@ func _columnTypeImpl(tls *libc.TLS, pNC uintptr, pExpr uintptr, pzOrigDb uintptr } if iCol < 0 { zType = __ccgo_ts + 1138 - *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 17045 + *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 17132 } else { *(*uintptr)(unsafe.Pointer(bp + 16)) = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, uintptr(0)) @@ -124083,13 +125037,13 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) iCol = int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) } if iCol < 0 { - zCol = __ccgo_ts + 17045 + zCol = __ccgo_ts + 17132 } else { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } if fullName != 0 { zName1 = uintptr(0) - zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12729, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) + zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12854, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zName1, __ccgo_fp(_sqlite3OomClear)) } else { _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zCol, uintptr(-libc.Int32FromInt32(1))) @@ -124097,7 +125051,7 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } else { z = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32))).FzEName if z == uintptr(0) { - v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19613, libc.VaList(bp+8, i+int32(1))) + v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19745, libc.VaList(bp+8, i+int32(1))) } else { v2 = _sqlite3DbStrDup(tls, db, z) } @@ -124189,7 +125143,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if iCol >= 0 { v3 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } else { - v3 = __ccgo_ts + 17045 + v3 = __ccgo_ts + 17132 } zName = v3 } else { @@ -124204,7 +125158,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if zName != 0 && !(_sqlite3IsTrueOrFalse(tls, zName) != 0) { zName = _sqlite3DbStrDup(tls, db, zName) } else { - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19613, libc.VaList(bp+40, i+int32(1))) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19745, libc.VaList(bp+40, i+int32(1))) } /* Make sure the column name is unique. If the name is not unique, ** append an integer to the name so that it becomes unique. @@ -124240,7 +125194,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, } *(*Tu32)(unsafe.Pointer(bp))++ v8 = *(*Tu32)(unsafe.Pointer(bp)) - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19622, libc.VaList(bp+40, nName, zName, v8)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19754, libc.VaList(bp+40, nName, zName, v8)) _sqlite3ProgressCheck(tls, pParse) if *(*Tu32)(unsafe.Pointer(bp)) > uint32(3) { Xsqlite3_randomness(tls, int32(4), bp) @@ -124300,9 +125254,9 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS defer tls.Free(64) var a, db, p, pCol, pColl, pS2, zType, p4, p5 uintptr var i, j, m int32 - var m1, n Ti64 + var k, n Ti64 var _ /* sNC at bp+0 */ TNameContext - _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, m, m1, n, p, pCol, pColl, pS2, zType, p4, p5 + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, k, m, n, p, pCol, pColl, pS2, zType, p4, p5 db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { return @@ -124319,17 +125273,22 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS if !(i < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } + m = 0 + pS2 = pSelect *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags) & libc.Int32FromInt32(COLFLAG_NOINSERT)) p = (*(*TExprList_item)(unsafe.Pointer(a + uintptr(i)*32))).FpExpr /* pCol->szEst = ... // Column size est for SELECT tables never used */ (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, p) + for int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) && (*TSelect)(unsafe.Pointer(pS2)).FpNext != uintptr(0) { + m |= _sqlite3ExprDataType(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext + (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + } if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) { (*TColumn)(unsafe.Pointer(pCol)).Faffinity = aff } - if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && (*TSelect)(unsafe.Pointer(pSelect)).FpNext != 0 { - m = 0 - m = 0 - pS2 = (*TSelect)(unsafe.Pointer(pSelect)).FpNext + if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && ((*TSelect)(unsafe.Pointer(pS2)).FpNext != 0 || pS2 != pSelect) { + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext for { if !(pS2 != 0) { break @@ -124354,7 +125313,7 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS zType = _columnTypeImpl(tls, bp, p, uintptr(0), uintptr(0), uintptr(0)) if zType == uintptr(0) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) != int32(_sqlite3AffinityType(tls, zType, uintptr(0))) { if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_NUMERIC) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_FLEXNUM) { - zType = __ccgo_ts + 19630 + zType = __ccgo_ts + 19762 } else { zType = uintptr(0) j = int32(1) @@ -124374,13 +125333,13 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS } } if zType != 0 { - m1 = int64(_sqlite3Strlen30(tls, zType)) + k = int64(_sqlite3Strlen30(tls, zType)) n = int64(_sqlite3Strlen30(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) - (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+m1+int64(2))) + (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+k+int64(2))) p4 = pCol + 14 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) & ^(libc.Int32FromInt32(COLFLAG_HASTYPE) | libc.Int32FromInt32(COLFLAG_HASCOLL))) if (*TColumn)(unsafe.Pointer(pCol)).FzCnName != 0 { - libc.X__builtin___memcpy_chk(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(m1+int64(1)), libc.X__builtin_object_size(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), 0)) + libc.X__builtin___memcpy_chk(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(k+int64(1)), libc.X__builtin_object_size(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), 0)) p5 = pCol + 14 *(*Tu16)(unsafe.Pointer(p5)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p5))) | libc.Int32FromInt32(COLFLAG_HASTYPE)) } @@ -124669,7 +125628,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest iDistinct = 0 /* To ensure unique results if UNION */ eDest = int32(SRT_Fifo) /* Registers used by LIMIT and OFFSET */ if (*TSelect)(unsafe.Pointer(p)).FpWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19634, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19766, 0) return } /* Obtain authorization to do a recursive query */ @@ -124762,7 +125721,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest break } if (*TSelect)(unsafe.Pointer(pFirstRec)).FselFlags&uint32(SF_Aggregate) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19683, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19815, 0) goto end_of_recursive_query } (*TSelect)(unsafe.Pointer(pFirstRec)).Fop = uint8(TK_ALL) @@ -124777,7 +125736,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest /* Store the results of the setup-query in Queue. */ pSetup = (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior (*TSelect)(unsafe.Pointer(pSetup)).FpNext = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19725, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19857, 0) rc = _sqlite3Select(tls, pParse, pSetup, bp) (*TSelect)(unsafe.Pointer(pSetup)).FpNext = p if rc != 0 { @@ -124805,12 +125764,13 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest ** the value for the recursive-table. Store the results in the Queue. */ (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19731, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19863, 0) _sqlite3Select(tls, pParse, p, bp) (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = pSetup /* Keep running the loop until the Queue is empty */ _sqlite3VdbeGoto(tls, v, addrTop) _sqlite3VdbeResolveLabel(tls, v, addrBreak) + goto end_of_recursive_query end_of_recursive_query: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSelect)(unsafe.Pointer(p)).FpOrderBy) @@ -124857,11 +125817,11 @@ func _multiSelectValues(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) nRow += bShowAll } if nRow == int32(1) { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } else { - v1 = __ccgo_ts + 3689 + v1 = __ccgo_ts + 3753 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19746, libc.VaList(bp+8, nRow, v1)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19878, libc.VaList(bp+8, nRow, v1)) for p != 0 { _selectInnerLoop(tls, pParse, p, -int32(1), uintptr(0), uintptr(0), pDest, int32(1), int32(1)) if !(bShowAll != 0) { @@ -124969,8 +125929,8 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in return _multiSelectOrderBy(tls, pParse, p, pDest) } else { if (*TSelect)(unsafe.Pointer(pPrior)).FpPrior == uintptr(0) { - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19769, 0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19784, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19901, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19916, 0) } /* Generate code for the left and right SELECT statements. */ @@ -124995,7 +125955,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in _sqlite3VdbeAddOp3(tls, v, int32(OP_OffsetLimit), (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TSelect)(unsafe.Pointer(p)).FiOffset+int32(1), (*TSelect)(unsafe.Pointer(p)).FiOffset) } } - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19511, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19598, 0) rc = _sqlite3Select(tls, pParse, p, bp) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -125047,7 +126007,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 48))).FeDest = op - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19803, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19935, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+48) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -125105,7 +126065,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit1 = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 88))).FiSDParm = tab2 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19803, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19935, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+88) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -125207,6 +126167,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in } _sqlite3KeyInfoUnref(tls, pKeyInfo) } + goto multi_select_end multi_select_end: ; (*TSelectDest)(unsafe.Pointer(pDest)).FiSdst = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst @@ -125227,9 +126188,9 @@ func _sqlite3SelectWrongNumTermsError(tls *libc.TLS, pParse uintptr, p uintptr) bp := tls.Alloc(16) defer tls.Free(16) if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Values) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19824, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19956, 0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19870, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20002, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) } } @@ -125598,8 +126559,8 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr (*TSelect)(unsafe.Pointer(pSplit)).FpPrior = uintptr(0) (*TSelect)(unsafe.Pointer(pPrior)).FpNext = uintptr(0) (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy = _sqlite3ExprListDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pOrderBy, 0) - _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7715) - _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7715) + _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7840) + _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7840) /* Compute the limit registers */ _computeLimitRegisters(tls, pParse, p, labelEnd) if (*TSelect)(unsafe.Pointer(p)).FiLimit != 0 && op == int32(TK_ALL) { @@ -125643,14 +126604,14 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr regOutB = v21 _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), regAddrA) _sqlite3SelectDestInit(tls, bp+40, int32(SRT_Coroutine), regAddrB) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19952, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20084, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) /* Generate a coroutine to evaluate the SELECT statement to the ** left of the compound operator - the "A" select. */ addrSelectA = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regAddrA, 0, addrSelectA) (*TSelect)(unsafe.Pointer(pPrior)).FiLimit = regLimitA - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19963, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20095, 0) _sqlite3Select(tls, pParse, pPrior, bp) _sqlite3VdbeEndCoroutine(tls, v, regAddrA) _sqlite3VdbeJumpHere(tls, v, addr1) @@ -125663,7 +126624,7 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr savedOffset = (*TSelect)(unsafe.Pointer(p)).FiOffset (*TSelect)(unsafe.Pointer(p)).FiLimit = regLimitB (*TSelect)(unsafe.Pointer(p)).FiOffset = 0 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19968, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20100, 0) _sqlite3Select(tls, pParse, p, bp+40) (*TSelect)(unsafe.Pointer(p)).FiLimit = savedLimit (*TSelect)(unsafe.Pointer(p)).FiOffset = savedOffset @@ -125878,7 +126839,7 @@ func _substExpr(tls *libc.TLS, pSubst uintptr, pExpr uintptr) (r uintptr) { if pColl != 0 { v1 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v1 = __ccgo_ts + 5434 + v1 = __ccgo_ts + 5498 } pExpr = _sqlite3ExprAddCollateString(tls, (*TSubstContext)(unsafe.Pointer(pSubst)).FpParse, pExpr, v1) } @@ -126914,10 +127875,10 @@ func _findConstInWhere(tls *libc.TLS, pConst uintptr, pExpr uintptr) { } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft - if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pLeft) != 0 { + if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pLeft) != 0 { _constInsert(tls, pConst, pRight, pLeft, pExpr) } - if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pRight) != 0 { + if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pRight) != 0 { _constInsert(tls, pConst, pLeft, pRight, pExpr) } } @@ -127150,6 +128111,18 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** The hope is that the terms added to the inner query will make it more // ** efficient. // ** +// ** NAME AMBIGUITY +// ** +// ** This optimization is called the "WHERE-clause push-down optimization". +// ** +// ** Do not confuse this optimization with another unrelated optimization +// ** with a similar name: The "MySQL push-down optimization" causes WHERE +// ** clause terms that can be evaluated using only the index and without +// ** reference to the table are run first, so that if they are false, +// ** unnecessary table seeks are avoided. +// ** +// ** RULES +// ** // ** Do not attempt this optimization if: // ** // ** (1) (** This restriction was removed on 2017-09-29. We used to @@ -127215,10 +128188,10 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** (9c) There is a RIGHT JOIN (or FULL JOIN) in between the ON/USING // ** clause and the subquery. // ** -// ** Without this restriction, the push-down optimization might move -// ** the ON/USING filter expression from the left side of a RIGHT JOIN -// ** over to the right side, which leads to incorrect answers. See -// ** also restriction (6) in sqlite3ExprIsSingleTableConstraint(). +// ** Without this restriction, the WHERE-clause push-down optimization +// ** might move the ON/USING filter expression from the left side of a +// ** RIGHT JOIN over to the right side, which leads to incorrect answers. +// ** See also restriction (6) in sqlite3ExprIsSingleTableConstraint(). // ** // ** (10) The inner query is not the right-hand table of a RIGHT JOIN. // ** @@ -127311,7 +128284,7 @@ func _pushDownWhereTerms(tls *libc.TLS, pParse uintptr, pSubq uintptr, pWhere ui nChng += _pushDownWhereTerms(tls, pParse, pSubq, (*TExpr)(unsafe.Pointer(pWhere)).FpRight, pSrcList, iSrc) pWhere = (*TExpr)(unsafe.Pointer(pWhere)).FpLeft } - if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc) != 0 { + if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc, int32(1)) != 0 { nChng++ *(*Tu32)(unsafe.Pointer(pSubq + 4)) |= uint32(SF_PushDown) for pSubq != 0 { @@ -127481,13 +128454,13 @@ func _minMaxQuery(tls *libc.TLS, db uintptr, pFunc uintptr, ppMinMax uintptr) (r return uint8(eRet) } zFunc = *(*uintptr)(unsafe.Pointer(pFunc + 8)) - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15898) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15991) == 0 { eRet = int32(WHERE_ORDERBY_MIN) if _sqlite3ExprCanBeNull(tls, (*(*TExprList_item)(unsafe.Pointer(pEList + 8))).FpExpr) != 0 { sortFlags = uint8(KEYINFO_ORDER_BIGNULL) } } else { - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15902) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15995) == 0 { eRet = int32(WHERE_ORDERBY_MAX) sortFlags = uint8(KEYINFO_ORDER_DESC) } else { @@ -127575,7 +128548,7 @@ func _sqlite3IndexedByLookup(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r in pIdx = (*TIndex)(unsafe.Pointer(pIdx)).FpNext } if !(pIdx != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19974, libc.VaList(bp+8, zIndexedBy, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20106, libc.VaList(bp+8, zIndexedBy, 0)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) return int32(SQLITE_ERROR) } @@ -127699,7 +128672,7 @@ func _cannotBeFunction(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x4>>2)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19992, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20124, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) return int32(1) } return 0 @@ -127874,7 +128847,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } *(*Tu32)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect + 4)) |= uint32(SF_CopyCte) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x2>>1)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20015, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20147, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) return int32(2) } libc.SetBitFieldPtr16Uint32(pFrom+60+4, libc.Uint32FromInt32(1), 8, 0x100) @@ -127898,7 +128871,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ libc.SetBitFieldPtr16Uint32(pItem+60+4, libc.Uint32FromInt32(1), 6, 0x40) if (*TSelect)(unsafe.Pointer(pRecTerm)).FselFlags&uint32(SF_Recursive) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20035, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20167, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) return int32(2) } *(*Tu32)(unsafe.Pointer(pRecTerm + 4)) |= uint32(SF_Recursive) @@ -127920,7 +128893,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } pRecTerm = (*TSelect)(unsafe.Pointer(pRecTerm)).FpPrior } - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 20078 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 20210 pSavedWith = (*TParse)(unsafe.Pointer(pParse)).FpWith (*TParse)(unsafe.Pointer(pParse)).FpWith = *(*uintptr)(unsafe.Pointer(bp)) if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { @@ -127951,7 +128924,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom pEList = (*TSelect)(unsafe.Pointer(pLeft)).FpEList if (*TCte)(unsafe.Pointer(pCte)).FpCols != 0 { if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr != (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20101, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20233, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) (*TParse)(unsafe.Pointer(pParse)).FpWith = pSavedWith return int32(2) } @@ -127960,9 +128933,9 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom _sqlite3ColumnsFromExprList(tls, pParse, pEList, pTab+54, pTab+8) if bMayRecursive != 0 { if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 20139 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 20271 } else { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 20173 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 20305 } _sqlite3WalkSelect(tls, pWalker, pSel) } @@ -128021,7 +128994,7 @@ func _sqlite3ExpandSubquery(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int if (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias != 0 { (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3DbStrDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias) } else { - (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+20211, libc.VaList(bp+8, pFrom)) + (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+20343, libc.VaList(bp+8, pFrom)) } for (*TSelect)(unsafe.Pointer(pSel)).FpPrior != 0 { pSel = (*TSelect)(unsafe.Pointer(pSel)).FpPrior @@ -128177,7 +129150,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { return int32(WRC_Abort) } if (*TTable)(unsafe.Pointer(pTab)).FnTabRef >= uint32(0xffff) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20215, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20347, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) (*TSrcItem)(unsafe.Pointer(pFrom)).FpTab = uintptr(0) return int32(WRC_Abort) } @@ -128192,7 +129165,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_EnableView) == uint64(0) && (*TTable)(unsafe.Pointer(pTab)).FpSchema != (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20254, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20386, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } (*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect = _sqlite3SelectDup(tls, db, (*(*struct { FpSelect uintptr @@ -128207,7 +129180,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).Fp)).FeVtabRisk) > libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15457, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15550, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } } nCol = (*TTable)(unsafe.Pointer(pTab)).FnCol @@ -128329,7 +129302,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if iDb >= 0 { v10 = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName } else { - v10 = __ccgo_ts + 6938 + v10 = __ccgo_ts + 7002 } zSchemaName = v10 } @@ -128346,7 +129319,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { pNew = _sqlite3ExprListAppend(tls, pParse, pNew, pRight) if pNew != 0 { pX = pNew + 8 + uintptr((*TExprList)(unsafe.Pointer(pNew)).FnExpr-int32(1))*32 - (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20285, libc.VaList(bp+8, zUName)) + (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20417, libc.VaList(bp+8, zUName)) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(ENAME_TAB), 0, 0x3) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(1), 7, 0x80) } @@ -128425,7 +129398,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if pNestedFrom != 0 && libc.Bool(libc.Bool(!(libc.Int32FromInt32(ViewCanHaveRowid) != 0)) || j < (*TExprList)(unsafe.Pointer(pNestedFrom)).FnExpr) { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, (*(*TExprList_item)(unsafe.Pointer(pNestedFrom + 8 + uintptr(j)*32))).FzEName) } else { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20290, libc.VaList(bp+8, zSchemaName, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20422, libc.VaList(bp+8, zSchemaName, zTabName, zName)) } if j == int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) { v13 = int32(ENAME_ROWID) @@ -128438,7 +129411,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } } else { if longNames != 0 { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12729, libc.VaList(bp+8, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12854, libc.VaList(bp+8, zTabName, zName)) libc.SetBitFieldPtr16Uint32(pX1+16+4, libc.Uint32FromInt32(ENAME_NAME), 0, 0x3) } else { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, zName) @@ -128458,9 +129431,9 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if !(tableSeen != 0) { if zTName != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20299, libc.VaList(bp+8, zTName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20431, libc.VaList(bp+8, zTName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20317, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20449, 0) } } } @@ -128474,7 +129447,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if (*TSelect)(unsafe.Pointer(p)).FpEList != 0 { if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpEList)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20337, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20469, 0) return int32(WRC_Abort) } if elistFlags&uint32(libc.Int32FromInt32(EP_HasFunc)|libc.Int32FromInt32(EP_Subquery)) != uint32(0) { @@ -128815,12 +129788,12 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct >= 0 { pE = (*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFExpr if *(*uintptr)(unsafe.Pointer(pE + 32)) == uintptr(0) || (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pE + 32)))).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20368, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20500, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct = -int32(1) } else { pKeyInfo = _sqlite3KeyInfoFromExprList(tls, pParse, *(*uintptr)(unsafe.Pointer(pE + 32)), 0, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistAddr = _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct, 0, 0, pKeyInfo, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20419, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20551, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } } if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab >= 0 { @@ -128841,7 +129814,7 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { (*TKeyInfo)(unsafe.Pointer(pKeyInfo1)).FnKeyField++ } _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab, (*TExprList)(unsafe.Pointer(pOBList)).FnExpr+nExtra, 0, pKeyInfo1, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20452, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20584, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } goto _1 _1: @@ -129146,16 +130119,16 @@ func _explainSimpleCount(tls *libc.TLS, pParse uintptr, pTab uintptr, pIdx uintp if int32((*TParse)(unsafe.Pointer(pParse)).Fexplain) == int32(2) { bCover = libc.BoolInt32(pIdx != uintptr(0) && ((*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) || !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == libc.Int32FromInt32(SQLITE_IDXTYPE_PRIMARYKEY)))) if bCover != 0 { - v1 = __ccgo_ts + 20485 + v1 = __ccgo_ts + 20617 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } if bCover != 0 { v2 = (*TIndex)(unsafe.Pointer(pIdx)).FzName } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20508, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20640, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) } } @@ -129187,7 +130160,7 @@ func _havingToWhereExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 ** statements AggInfo structure. */ if _sqlite3ExprIsConstantOrGroupBy(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, pExpr, (*TSelect)(unsafe.Pointer(pS)).FpGroupBy) != 0 && libc.BoolInt32((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse)) == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb - pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8478) + pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8603) if pNew != 0 { pWhere = (*TSelect)(unsafe.Pointer(pS)).FpWhere t = *(*TExpr)(unsafe.Pointer(pNew)) @@ -129343,7 +130316,7 @@ func _countOfViewOptimization(tls *libc.TLS, pParse uintptr, p uintptr) (r int32 if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { return 0 } /* Result is an aggregate */ - if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+16192) != 0 { + if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+16285) != 0 { return 0 } /* Is count() */ if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != uintptr(0) { @@ -129606,7 +130579,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { v1 = (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p0)).FpTab)).FzName } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20520, libc.VaList(bp+176, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20652, libc.VaList(bp+176, v1)) goto select_end } /* Clear the SF_UFSrcCheck flag. The check has already been performed, @@ -129707,7 +130680,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Catch mismatch in the declared columns of a view and the number of ** columns in the SELECT on the RHS */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) != (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20574, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20706, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) goto select_end } /* Do not attempt the usual optimizations (flattening and ORDER BY @@ -129844,12 +130817,12 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r ** string for the fake column name seems safer. */ if (*TSrcItem)(unsafe.Pointer(pItem1)).FcolUsed == uint64(0) && (*TSrcItem)(unsafe.Pointer(pItem1)).FzName != uintptr(0) { - _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1650, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) + _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1664, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) } /* Generate code for all sub-queries in the FROM clause */ pSub1 = (*TSrcItem)(unsafe.Pointer(pItem1)).FpSelect - if pSub1 == uintptr(0) { + if pSub1 == uintptr(0) || (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub != 0 { goto _10 } /* The code for a subquery should only be generated once. */ @@ -129888,7 +130861,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn, 0, addrTop) (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub = addrTop _sqlite3SelectDestInit(tls, bp+72, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20614, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20746, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow libc.SetBitFieldPtr16Uint32(pItem1+60+4, libc.Uint32FromInt32(1), 5, 0x20) @@ -129936,7 +130909,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { } _sqlite3SelectDestInit(tls, bp+72, int32(SRT_EphemTab), (*TSrcItem)(unsafe.Pointer(pItem1)).FiCursor) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20629, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20761, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow if onceAddr != 0 { @@ -130346,11 +131319,11 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r groupBySort = 0 } else { if (*(*TDistinctCtx)(unsafe.Pointer(bp))).FisTnct != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Distinct) == uint32(0) { - v44 = __ccgo_ts + 20645 + v44 = __ccgo_ts + 20777 } else { - v44 = __ccgo_ts + 20654 + v44 = __ccgo_ts + 20786 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19544, libc.VaList(bp+176, v44)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19631, libc.VaList(bp+176, v44)) groupBySort = int32(1) nGroupBy = (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr nCol = nGroupBy @@ -130669,7 +131642,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeResolveLabel(tls, v, addrEnd) } /* endif aggregate query */ if int32((*(*TDistinctCtx)(unsafe.Pointer(bp))).FeTnctType) == int32(WHERE_DISTINCT_UNORDERED) { - _explainTempTable(tls, pParse, __ccgo_ts+20645) + _explainTempTable(tls, pParse, __ccgo_ts+20777) } /* If there is an ORDER BY clause, then we need to sort the results ** and send them to the callback one by one. @@ -130686,6 +131659,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Control jumps to here if an error is encountered above, or upon ** successful coding of the SELECT. */ + goto select_end select_end: ; _sqlite3ExprListDelete(tls, db, *(*uintptr)(unsafe.Pointer(bp + 64))) @@ -130774,7 +131748,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr if !(i < nCol) { break } - z = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) + z = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) if z == uintptr(0) { goto malloc_failed } @@ -130790,7 +131764,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr } else { if int32((*TTabResult)(unsafe.Pointer(p)).FnColumn) != nCol { Xsqlite3_free(tls, (*TTabResult)(unsafe.Pointer(p)).FzErrMsg) - (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20663, 0) + (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20795, 0) (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) return int32(1) } @@ -130825,6 +131799,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr (*TTabResult)(unsafe.Pointer(p)).FnRow++ } return 0 + goto malloc_failed malloc_failed: ; (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) @@ -130879,7 +131854,7 @@ func Xsqlite3_get_table(tls *libc.TLS, db uintptr, zSql uintptr, pazResult uintp if (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg != 0 { if pzErrMsg != 0 { Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pzErrMsg))) - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) } Xsqlite3_free(tls, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg) } @@ -131041,7 +132016,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if isTemp != 0 { /* If TEMP was specified, then the trigger name may not be qualified. */ if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20728, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20860, 0) goto trigger_cleanup } iDb = int32(1) @@ -131081,7 +132056,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto trigger_cleanup } - _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20774, *(*uintptr)(unsafe.Pointer(bp))) + _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20906, *(*uintptr)(unsafe.Pointer(bp))) if _sqlite3FixSrcList(tls, bp+8, pTableName) != 0 { goto trigger_cleanup } @@ -131091,11 +132066,11 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_orphan_error } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20782, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20914, 0) goto trigger_orphan_error } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, db) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20823, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20955, 0) goto trigger_orphan_error } /* Check that the trigger name is not reserved and that no trigger of the @@ -131104,13 +132079,13 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if zName == uintptr(0) { goto trigger_cleanup } - if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20774, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { + if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20906, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { goto trigger_cleanup } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema+56, zName) != 0 { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20863, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20995, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) } @@ -131118,8 +132093,8 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 } } /* Do not create a trigger on a system table */ - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6873, int32(7)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20889, 0) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6937, int32(7)) == 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21021, 0) goto trigger_cleanup } /* INSTEAD of triggers are only for views and views only support INSTEAD @@ -131127,15 +132102,15 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && tr_tm != int32(TK_INSTEAD) { if tr_tm == int32(TK_BEFORE) { - v1 = __ccgo_ts + 20927 + v1 = __ccgo_ts + 21059 } else { - v1 = __ccgo_ts + 20934 + v1 = __ccgo_ts + 21066 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20940, libc.VaList(bp+112, v1, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21072, libc.VaList(bp+112, v1, pTableName+8)) goto trigger_orphan_error } if !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) && tr_tm == int32(TK_INSTEAD) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20977, libc.VaList(bp+112, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21109, libc.VaList(bp+112, pTableName+8)) goto trigger_orphan_error } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -131155,9 +132130,9 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iTabDb == int32(1) { - v3 = __ccgo_ts + 6881 + v3 = __ccgo_ts + 6945 } else { - v3 = __ccgo_ts + 6414 + v3 = __ccgo_ts + 6478 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto trigger_cleanup @@ -131198,6 +132173,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 (*TTrigger)(unsafe.Pointer(pTrigger)).FpColumns = pColumns pColumns = uintptr(0) (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger = pTrigger + goto trigger_cleanup trigger_cleanup: ; _sqlite3DbFree(tls, db, zName) @@ -131209,6 +132185,7 @@ trigger_cleanup: } else { } return + goto trigger_orphan_error trigger_orphan_error: ; if int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) == int32(1) { @@ -131255,7 +132232,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl pStepList = (*TTriggerStep)(unsafe.Pointer(pStepList)).FpNext } _sqlite3TokenInit(tls, bp+96, (*TTrigger)(unsafe.Pointer(pTrig)).FzName) - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20774, bp+96) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20906, bp+96) if _sqlite3FixTriggerStep(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).Fstep_list) != 0 || _sqlite3FixExpr(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).FpWhen) != 0 { goto triggerfinish_cleanup } @@ -131277,7 +132254,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl break } if (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget != uintptr(0) && _sqlite3ShadowTableName(tls, db, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21023, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21155, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) goto triggerfinish_cleanup } goto _1 @@ -131293,10 +132270,10 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) z = _sqlite3DbStrNDup(tls, db, (*TToken)(unsafe.Pointer(pAll)).Fz, uint64((*TToken)(unsafe.Pointer(pAll)).Fn)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+21071, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+21203, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) _sqlite3DbFree(tls, db, z) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+21146, libc.VaList(bp+120, zName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+21278, libc.VaList(bp+120, zName)), uint16(0)) } } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { @@ -131313,6 +132290,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } } } + goto triggerfinish_cleanup triggerfinish_cleanup: ; _sqlite3DeleteTrigger(tls, db, pTrig) @@ -131563,7 +132541,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int } if !(pTrigger != 0) { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21175, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21307, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, zDb) } @@ -131571,6 +132549,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int goto drop_trigger_cleanup } _sqlite3DropTriggerPtr(tls, pParse, pTrigger) + goto drop_trigger_cleanup drop_trigger_cleanup: ; _sqlite3SrcListDelete(tls, db, pName) @@ -131604,9 +132583,9 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { code = int32(SQLITE_DROP_TRIGGER) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6881 + v1 = __ccgo_ts + 6945 } else { - v1 = __ccgo_ts + 6414 + v1 = __ccgo_ts + 6478 } zTab = v1 if iDb == int32(1) { @@ -131621,7 +132600,7 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { v2 = _sqlite3GetVdbe(tls, pParse) v = v2 if v2 != uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+21195, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+21327, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropTrigger), iDb, 0, 0, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName, 0) } @@ -131754,11 +132733,11 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { if op != int32(TK_INSERT) { if op == int32(TK_DELETE) { - v1 = __ccgo_ts + 21257 + v1 = __ccgo_ts + 21389 } else { - v1 = __ccgo_ts + 21264 + v1 = __ccgo_ts + 21396 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21271, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21403, libc.VaList(bp+8, v1)) } (*TTrigger)(unsafe.Pointer(p)).Ftr_tm = uint8(TRIGGER_BEFORE) } else { @@ -131775,6 +132754,7 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, p = (*TTrigger)(unsafe.Pointer(p)).FpNext } } + goto exit_triggers_exist exit_triggers_exist: ; if pMask != 0 { @@ -131858,7 +132838,7 @@ func _isAsteriskTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pTerm)).FpRight)).Fop) != int32(TK_ASTERISK) { return 0 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21319, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21451, 0) return int32(1) } @@ -131923,6 +132903,79 @@ func _sqlite3ExpandReturning(tls *libc.TLS, pParse uintptr, pList uintptr, pTab return pNew } +// C documentation +// +// /* If the Expr node is a subquery or an EXISTS operator or an IN operator that +// ** uses a subquery, and if the subquery is SF_Correlated, then mark the +// ** expression as EP_VarSelect. +// */ +func _sqlite3ReturningSubqueryVarSelect(tls *libc.TLS, NotUsed uintptr, pExpr uintptr) (r int32) { + _ = NotUsed + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) && (*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FselFlags&uint32(SF_Correlated) != uint32(0) { + *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** If the SELECT references the table pWalker->u.pTab, then do two things: +// ** +// ** (1) Mark the SELECT as as SF_Correlated. +// ** (2) Set pWalker->eCode to non-zero so that the caller will know +// ** that (1) has happened. +// */ +func _sqlite3ReturningSubqueryCorrelated(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + var i int32 + var pSrc uintptr + _, _ = i, pSrc + pSrc = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + i = 0 + for { + if !(i < (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) { + break + } + if (*(*TSrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104))).FpTab == *(*uintptr)(unsafe.Pointer(pWalker + 40)) { + *(*Tu32)(unsafe.Pointer(pSelect + 4)) |= uint32(SF_Correlated) + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + break + } + goto _1 + _1: + ; + i++ + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Scan the expression list that is the argument to RETURNING looking +// ** for subqueries that depend on the table which is being modified in the +// ** statement that is hosting the RETURNING clause (pTab). Mark all such +// ** subqueries as SF_Correlated. If the subqueries are part of an +// ** expression, mark the expression as EP_VarSelect. +// ** +// ** https://sqlite.org/forum/forumpost/2c83569ce8945d39 +// */ +func _sqlite3ProcessReturningSubqueries(tls *libc.TLS, pEList uintptr, pTab uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.X__builtin___memset_chk(tls, bp, 0, uint64(48), libc.X__builtin_object_size(tls, bp, 0)) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ExprWalkNoop) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3ReturningSubqueryCorrelated) + *(*uintptr)(unsafe.Pointer(bp + 40)) = pTab + _sqlite3WalkExprList(tls, bp, pEList) + if (*(*TWalker)(unsafe.Pointer(bp))).FeCode != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ReturningSubqueryVarSelect) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) + _sqlite3WalkExprList(tls, bp, pEList) + } +} + // C documentation // // /* @@ -131957,6 +133010,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab (*(*TSelect)(unsafe.Pointer(bp))).FpSrc = bp + 128 (*(*TSrcList)(unsafe.Pointer(bp + 128))).FnSrc = int32(1) (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FpTab = pTab + (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FzName = (*TTable)(unsafe.Pointer(pTab)).FzName /* tag-20240424-1 */ (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FiCursor = -int32(1) _sqlite3SelectPrep(tls, pParse, bp, uintptr(0)) if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { @@ -131981,6 +133035,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab if _sqlite3ResolveExprListNames(tls, bp+240, pNew) == SQLITE_OK && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) { nCol = (*TExprList)(unsafe.Pointer(pNew)).FnExpr reg = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(1) + _sqlite3ProcessReturningSubqueries(tls, pNew, pTab) *(*int32)(unsafe.Pointer(pParse + 56)) += nCol + int32(2) (*TReturning)(unsafe.Pointer(pReturning)).FiRetReg = reg i = 0 @@ -132049,7 +133104,7 @@ func _codeTriggerProgram(tls *libc.TLS, pParse uintptr, pStepList uintptr, orcon } (*TParse)(unsafe.Pointer(pParse)).FeOrconf = uint8(v2) if (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6611, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6675, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) } switch int32((*TTriggerStep)(unsafe.Pointer(pStep)).Fop) { case int32(TK_UPDATE): @@ -132151,7 +133206,7 @@ func _codeRowTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab uintp v = _sqlite3GetVdbe(tls, bp+56) if v != 0 { if (*TTrigger)(unsafe.Pointer(pTrigger)).FzName != 0 { - _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+21361, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) + _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+21493, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) } /* If one was specified, code the WHEN clause. If it evaluates to false ** (or NULL) the sub-vdbe is immediately halted by jumping to the @@ -132840,7 +133895,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui chngPk = uint8(1) } else { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21375, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21507, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto update_cleanup } } @@ -132860,13 +133915,13 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui pRowidExpr = (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FpExpr iRowidExpr = i } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21411, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21543, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto update_cleanup } } if j < 0 { - v11 = __ccgo_ts + 8253 + v11 = __ccgo_ts + 8378 } else { v11 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName } @@ -133548,8 +134603,9 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui ** that information. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21430) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21562) } + goto update_cleanup update_cleanup: ; _sqlite3AuthContextPop(tls, bp) @@ -133981,9 +135037,9 @@ func _sqlite3UpsertAnalyzeTarget(tls *libc.TLS, pParse uintptr, pTabList uintptr if nClause == 0 && (*TUpsert)(unsafe.Pointer(pUpsert)).FpNextUpsert == uintptr(0) { (*(*[16]int8)(unsafe.Pointer(bp + 200)))[0] = 0 } else { - Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21443, libc.VaList(bp+224, nClause+int32(1))) + Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21575, libc.VaList(bp+224, nClause+int32(1))) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21447, libc.VaList(bp+224, bp+200)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21579, libc.VaList(bp+224, bp+200)) return int32(SQLITE_ERROR) } goto _1 @@ -134086,7 +135142,7 @@ func _sqlite3UpsertDoUpdate(tls *libc.TLS, pParse uintptr, pUpsert uintptr, pTab i++ } i = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), iDataCur, 0, iPk, nPk) - _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12818, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12943, -int32(1)) _sqlite3MayAbort(tls, pParse) _sqlite3VdbeJumpHere(tls, v, i) } @@ -134168,7 +135224,7 @@ func _execSql(tls *libc.TLS, db uintptr, pzErrMsg uintptr, zSql uintptr) (r int3 ** corrupt the sqlite_schema.sql field with other kinds of statements ** then run VACUUM to get those statements to execute at inappropriate ** times. */ - if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21520, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21524, uint64(3)) == 0) { + if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21652, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21656, uint64(3)) == 0) { rc = _execSql(tls, db, pzErrMsg, zSubSql) if rc != SQLITE_OK { break @@ -134268,6 +135324,7 @@ func _sqlite3Vacuum(tls *libc.TLS, pParse uintptr, _pNm uintptr, pInto uintptr) _sqlite3VdbeAddOp2(tls, v, int32(OP_Vacuum), iDb, iIntoReg) _sqlite3VdbeUsesBtree(tls, v, iDb) } + goto build_vacuum_end build_vacuum_end: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pInto) @@ -134295,24 +135352,24 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p pDb = uintptr(0) /* Name of output file */ pgflags = uint32(PAGER_SYNCHRONOUS_OFF) /* sync flags for output db */ if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21528) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21660) return int32(SQLITE_ERROR) /* IMP: R-12218-18073 */ } if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive > int32(1) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21568) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21700) return int32(SQLITE_ERROR) /* IMP: R-15610-35227 */ } saved_openFlags = (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags if pOut != 0 { if Xsqlite3_value_type(tls, pOut) != int32(SQLITE_TEXT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21611) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21743) return int32(SQLITE_ERROR) } zOut = Xsqlite3_value_text(tls, pOut) *(*uint32)(unsafe.Pointer(db + 76)) &= uint32(^libc.Int32FromInt32(SQLITE_OPEN_READONLY)) *(*uint32)(unsafe.Pointer(db + 76)) |= uint32(libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE)) } else { - zOut = __ccgo_ts + 1650 + zOut = __ccgo_ts + 1664 } /* Save the current value of the database flags so that it can be ** restored before returning. Then set the writable-schema flag, and @@ -134344,7 +135401,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** to write the journal header file. */ nDb = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21629, libc.VaList(bp+24, zOut)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21761, libc.VaList(bp+24, zOut)) (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags = saved_openFlags if rc != SQLITE_OK { goto end_of_vacuum @@ -134356,7 +135413,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p *(*Ti64)(unsafe.Pointer(bp)) = 0 if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != uintptr(0) && (_sqlite3OsFileSize(tls, id, bp) != SQLITE_OK || *(*Ti64)(unsafe.Pointer(bp)) > 0) { rc = int32(SQLITE_ERROR) - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21652) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21784) goto end_of_vacuum } *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_VacuumInto) @@ -134373,7 +135430,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** file. This is done before the sqlite3BtreeGetPageSize(pMain) call below, ** to ensure that we do not try to change the page-size on a WAL database. */ - rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+15227) + rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+15320) if rc != SQLITE_OK { goto end_of_vacuum } @@ -134404,11 +135461,11 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** in the temporary database. */ (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(nDb) /* force new CREATE statements into vacuum_db */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21679, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21811, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21787, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21919, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } @@ -134417,7 +135474,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** an "INSERT INTO vacuum_db.xxx SELECT * FROM main.xxx;" to copy ** the contents to the temporary database. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21841, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21973, libc.VaList(bp+24, zDbMain)) *(*Tu32)(unsafe.Pointer(db + 44)) &= uint32(^libc.Int32FromInt32(DBFLAG_Vacuum)) if rc != SQLITE_OK { goto end_of_vacuum @@ -134427,7 +135484,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** associated storage, so all we have to do is copy their entries ** from the schema table. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21992, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+22124, libc.VaList(bp+24, zDbMain)) if rc != 0 { goto end_of_vacuum } @@ -134466,6 +135523,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p nRes = _sqlite3BtreeGetRequestedReserve(tls, pTemp) rc = _sqlite3BtreeSetPageSize(tls, pMain, _sqlite3BtreeGetPageSize(tls, pTemp), nRes, int32(1)) } + goto end_of_vacuum end_of_vacuum: ; /* Restore the original value of db->flags */ @@ -134953,7 +136011,7 @@ func _addModuleArgument(tls *libc.TLS, pParse uintptr, pTable uintptr, zArg uint FazArg uintptr Fp uintptr })(unsafe.Pointer(pTable + 64))).FnArg+int32(3) >= *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13048, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13173, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) } azModuleArg = _sqlite3DbRealloc(tls, db, (*(*struct { FnArg int32 @@ -135076,7 +136134,7 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { if pEnd != 0 { (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fn = uint32(int32(int64((*TToken)(unsafe.Pointer(pEnd)).Fz)-int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz))) + (*TToken)(unsafe.Pointer(pEnd)).Fn } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+22122, libc.VaList(bp+8, pParse+272)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+22254, libc.VaList(bp+8, pParse+272)) /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. @@ -135086,11 +136144,11 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { ** by sqlite3StartTable(). */ iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+22146, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+22278, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) v = _sqlite3GetVdbe(tls, pParse) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) - zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+22245, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) + zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+22377, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, zWhere, uint16(0)) _sqlite3DbFree(tls, db, zStmt) v2 = pParse + 56 @@ -135177,7 +136235,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, break } if (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab == pTab { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22264, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22396, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(SQLITE_LOCKED) } goto _1 @@ -135219,9 +136277,9 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, } if SQLITE_OK != rc { if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22306, libc.VaList(bp+48, zModuleName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22438, libc.VaList(bp+48, zModuleName)) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3799, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3863, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) } _sqlite3DbFree(tls, db, pVTable) @@ -135234,8 +136292,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*TModule)(unsafe.Pointer(pMod)).FnRefModule++ (*TVTable)(unsafe.Pointer(pVTable)).FnRef = int32(1) if (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared == 0 { - zFormat = __ccgo_ts + 22336 - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + zFormat = __ccgo_ts + 22468 + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, zModuleName)) _sqlite3VtabUnlock(tls, pVTable) rc = int32(SQLITE_ERROR) } else { @@ -135260,7 +136318,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(iCol < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } - zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1650) + zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1664) i = 0 nType = _sqlite3Strlen30(tls, zType) i = 0 @@ -135268,7 +136326,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(i < nType) { break } - if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16936, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { + if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+17023, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { break } goto _3 @@ -135349,13 +136407,13 @@ func _sqlite3VtabCallConnect(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).FazArg)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22382, libc.VaList(bp+16, zModule)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22514, libc.VaList(bp+16, zModule)) rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxConnect, bp) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3799, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3863, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) (*TParse)(unsafe.Pointer(pParse)).Frc = rc } _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) @@ -135436,7 +136494,7 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, ** error. Otherwise, do nothing. */ if pMod == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxDestroy == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22382, libc.VaList(bp+8, zMod)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22514, libc.VaList(bp+8, zMod)) rc = int32(SQLITE_ERROR) } else { rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate, pzErr) @@ -135462,18 +136520,42 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r int32) { bp := tls.Alloc(448) defer tls.Free(448) - var initBusy, rc int32 - var pCtx, pIdx, pNew, pTab, v2 uintptr - var v1 Ti16 + var i, initBusy, rc int32 + var pCtx, pIdx, pNew, pTab, z, v3 uintptr + var v2 Ti16 var _ /* sParse at bp+0 */ TParse - _, _, _, _, _, _, _, _ = initBusy, pCtx, pIdx, pNew, pTab, rc, v1, v2 + var _ /* tokenType at bp+424 */ int32 + _, _, _, _, _, _, _, _, _, _ = i, initBusy, pCtx, pIdx, pNew, pTab, rc, z, v2, v3 rc = SQLITE_OK + /* Verify that the first two keywords in the CREATE TABLE statement + ** really are "CREATE" and "TABLE". If this is not the case, then + ** sqlite3_declare_vtab() is being misused. + */ + z = zCreateTable + i = 0 + for { + if !(_aKeyword1[i] != 0) { + break + } + *(*int32)(unsafe.Pointer(bp + 424)) = 0 + for cond := true; cond; cond = *(*int32)(unsafe.Pointer(bp + 424)) == int32(TK_SPACE) { + z += uintptr(_sqlite3GetToken(tls, z, bp+424)) + } + if *(*int32)(unsafe.Pointer(bp + 424)) != int32(_aKeyword1[i]) { + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+22533, 0) + return int32(SQLITE_ERROR) + } + goto _1 + _1: + ; + i++ + } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pCtx = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(pCtx != 0) || (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared != 0 { - _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(155155))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(156227))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(155157)) + return _sqlite3MisuseError(tls, int32(156229)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -135485,7 +136567,7 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i initBusy = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) (*(*TParse)(unsafe.Pointer(bp))).FnQueryLoop = int16(1) - if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) && (*(*TParse)(unsafe.Pointer(bp))).FpNewTable != uintptr(0) && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && int32((*TTable)(unsafe.Pointer((*(*TParse)(unsafe.Pointer(bp))).FpNewTable)).FeTabType) == TABTYP_NORM { + if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) { if !((*TTable)(unsafe.Pointer(pTab)).FaCol != 0) { pNew = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable (*TTable)(unsafe.Pointer(pTab)).FaCol = (*TTable)(unsafe.Pointer(pNew)).FaCol @@ -135494,9 +136576,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpDfltList) - v1 = (*TTable)(unsafe.Pointer(pNew)).FnCol - (*TTable)(unsafe.Pointer(pTab)).FnCol = v1 - (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v1 + v2 = (*TTable)(unsafe.Pointer(pNew)).FnCol + (*TTable)(unsafe.Pointer(pTab)).FnCol = v2 + (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v2 *(*Tu32)(unsafe.Pointer(pTab + 48)) |= (*TTable)(unsafe.Pointer(pNew)).FtabFlags & uint32(libc.Int32FromInt32(TF_WithoutRowid)|libc.Int32FromInt32(TF_NoVisibleRowid)) (*TTable)(unsafe.Pointer(pNew)).FnCol = 0 (*TTable)(unsafe.Pointer(pNew)).FaCol = uintptr(0) @@ -135515,11 +136597,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared = int32(1) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - v2 = __ccgo_ts + 3799 + v3 = __ccgo_ts + 3863 } else { - v2 = uintptr(0) + v3 = uintptr(0) } - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v2, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v3, libc.VaList(bp+440, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) rc = int32(SQLITE_ERROR) } @@ -135535,6 +136617,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i return rc } +var _aKeyword1 = [3]Tu8{ + 0: uint8(TK_CREATE), + 1: uint8(TK_TABLE), +} + // C documentation // // /* @@ -135986,7 +137073,7 @@ func _sqlite3VtabEponymousTableInit(tls *libc.TLS, pParse uintptr, pMod uintptr) _addModuleArgument(tls, pParse, pTab, _sqlite3DbStrDup(tls, db, (*TTable)(unsafe.Pointer(pTab)).FzName)) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer(pModule)).FxConnect, bp) if rc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3799, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3863, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3VtabEponymousTableClear(tls, db, pMod) } @@ -136050,7 +137137,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) p = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(p != 0) { - rc = _sqlite3MisuseError(tls, int32(155651)) + rc = _sqlite3MisuseError(tls, int32(156723)) } else { ap = va switch op { @@ -136063,7 +137150,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in case int32(SQLITE_VTAB_USES_ALL_SCHEMAS): (*TVTable)(unsafe.Pointer((*TVtabCtx)(unsafe.Pointer(p)).FpVTable)).FbAllSchemas = uint8(1) default: - rc = _sqlite3MisuseError(tls, int32(155673)) + rc = _sqlite3MisuseError(tls, int32(156745)) break } _ = ap @@ -136785,10 +137872,10 @@ type WhereInfo1 = TWhereInfo1 func _explainIndexColumnName(tls *libc.TLS, pIdx uintptr, i int32) (r uintptr) { i = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) if i == -int32(2) { - return __ccgo_ts + 22401 + return __ccgo_ts + 22546 } if i == -int32(1) { - return __ccgo_ts + 17045 + return __ccgo_ts + 17132 } return (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(i)*16))).FzCnName } @@ -136807,10 +137894,10 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, var i int32 _ = i if bAnd != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22408, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22553, int32(5)) } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22414, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22559, int32(1)) } i = 0 for { @@ -136818,7 +137905,7 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13438, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13563, int32(1)) } Xsqlite3_str_appendall(tls, pStr, _explainIndexColumnName(tls, pIdx, iTerm+i)) goto _1 @@ -136827,11 +137914,11 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5454, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5518, int32(1)) } Xsqlite3_str_append(tls, pStr, zOp, int32(1)) if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22414, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22559, int32(1)) } i = 0 for { @@ -136839,16 +137926,16 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13438, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13563, int32(1)) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5456, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5520, int32(1)) goto _2 _2: ; i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5454, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5518, int32(1)) } } @@ -136881,7 +137968,7 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { if int32(nEq) == 0 && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) == uint32(0) { return } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22416, int32(2)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22561, int32(2)) i = 0 for { if !(i < int32(nEq)) { @@ -136889,12 +137976,12 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } z = _explainIndexColumnName(tls, pIndex, i) if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22408, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22553, int32(5)) } if i >= int32(nSkip) { - v2 = __ccgo_ts + 22419 + v2 = __ccgo_ts + 22564 } else { - v2 = __ccgo_ts + 22424 + v2 = __ccgo_ts + 22569 } Xsqlite3_str_appendf(tls, pStr, v2, libc.VaList(bp+8, z)) goto _1 @@ -136904,13 +137991,13 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } j = i if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_BTM_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22432) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22577) i = int32(1) } if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_TOP_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22434) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22579) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5454, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5518, int32(1)) } // C documentation @@ -136953,47 +138040,47 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if isSearch != 0 { - v2 = __ccgo_ts + 22436 + v2 = __ccgo_ts + 22581 } else { - v2 = __ccgo_ts + 22443 + v2 = __ccgo_ts + 22588 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22448, libc.VaList(bp+144, v2, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22593, libc.VaList(bp+144, v2, pItem)) if flags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_VIRTUALTABLE)) == uint32(0) { zFmt = uintptr(0) pIdx = (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex if !((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) && int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { if isSearch != 0 { - zFmt = __ccgo_ts + 11601 + zFmt = __ccgo_ts + 11726 } } else { if flags&uint32(WHERE_PARTIALIDX) != 0 { - zFmt = __ccgo_ts + 22454 + zFmt = __ccgo_ts + 22599 } else { if flags&uint32(WHERE_AUTO_INDEX) != 0 { - zFmt = __ccgo_ts + 22487 + zFmt = __ccgo_ts + 22632 } else { if flags&uint32(WHERE_IDX_ONLY) != 0 { - zFmt = __ccgo_ts + 22512 + zFmt = __ccgo_ts + 22657 } else { - zFmt = __ccgo_ts + 22530 + zFmt = __ccgo_ts + 22675 } } } } if zFmt != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22539, int32(7)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22684, int32(7)) Xsqlite3_str_appendf(tls, bp, zFmt, libc.VaList(bp+144, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) _explainIndexRange(tls, bp, pLoop) } } else { if flags&uint32(WHERE_IPK) != uint32(0) && flags&uint32(WHERE_CONSTRAINT) != uint32(0) { - zRowid = __ccgo_ts + 17045 - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22547, libc.VaList(bp+144, zRowid)) + zRowid = __ccgo_ts + 17132 + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22692, libc.VaList(bp+144, zRowid)) if flags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != 0 { cRangeOp = int8('=') } else { if flags&uint32(WHERE_BOTH_LIMIT) == uint32(WHERE_BOTH_LIMIT) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22578, libc.VaList(bp+144, zRowid)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22723, libc.VaList(bp+144, zRowid)) cRangeOp = int8('<') } else { if flags&uint32(WHERE_BTM_LIMIT) != 0 { @@ -137003,10 +138090,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22588, libc.VaList(bp+144, int32(cRangeOp))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22733, libc.VaList(bp+144, int32(cRangeOp))) } else { if flags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22593, libc.VaList(bp+144, (*(*struct { + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22738, libc.VaList(bp+144, (*(*struct { FidxNum int32 F__ccgo4 uint8 FisOrdered Ti8 @@ -137025,7 +138112,7 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } if int32((*TSrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&int32(JT_LEFT) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22620, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22765, 0) } zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) @@ -137059,14 +138146,14 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Initial space for EQP output string */ _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22631, libc.VaList(bp+144, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22776, libc.VaList(bp+144, pItem)) pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_IPK) != 0 { pTab = (*TSrcItem)(unsafe.Pointer(pItem)).FpTab if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22419, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22564, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) } else { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22652, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22797, 0) } } else { i = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) @@ -137076,16 +138163,16 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp } z = _explainIndexColumnName(tls, (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex, i) if i > int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22408, int32(5)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22553, int32(5)) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22419, libc.VaList(bp+144, z)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22564, libc.VaList(bp+144, z)) goto _1 _1: ; i++ } } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5454, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5518, int32(1)) zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) return ret @@ -137916,6 +139003,35 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 } } +// C documentation +// +// /* +// ** Loop pLoop is a WHERE_INDEXED level that uses at least one IN(...) +// ** operator. Return true if level pLoop is guaranteed to visit only one +// ** row for each key generated for the index. +// */ +func _whereLoopIsOneRow(tls *libc.TLS, pLoop uintptr) (r int32) { + var ii int32 + _ = ii + if (*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FonError != 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) == 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq) == int32((*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FnKeyCol) { + ii = 0 + for { + if !(ii < int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq)) { + break + } + if int32((*TWhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(ii)*8)))).FeOperator)&(libc.Int32FromInt32(WO_IS)|libc.Int32FromInt32(WO_ISNULL)) != 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) + } + return 0 +} + // C documentation // // /* @@ -138604,7 +139720,10 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** a LEFT JOIN: */ } /* Record the instruction used to terminate the loop. */ - if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 { + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 || (*(*struct { + FnIn int32 + FaInLoop uintptr + })(unsafe.Pointer(pLevel + 72))).FnIn != 0 && regBignull == 0 && _whereLoopIsOneRow(tls, pLoop) != 0 { (*TWhereLevel)(unsafe.Pointer(pLevel)).Fop = uint8(OP_Noop) } else { if bRev != 0 { @@ -138777,7 +139896,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** eliminating duplicates from other WHERE clauses, the action for each ** sub-WHERE clause is to to invoke the main loop body as a subroutine. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22660, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22805, 0) ii = 0 for { if !(ii < (*TWhereClause)(unsafe.Pointer(pOrWc)).FnTerm) { @@ -138800,7 +139919,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI pOrExpr = pAndExpr } /* Loop through table entries that match term pOrTerm. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22675, libc.VaList(bp+96, ii+int32(1))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22820, libc.VaList(bp+96, ii+int32(1))) pSubWInfo = _sqlite3WhereBegin(tls, pParse, pOrTab, pOrExpr, uintptr(0), uintptr(0), uintptr(0), uint16(WHERE_OR_SUBCLAUSE), iCovCur) if pSubWInfo != 0 { addrExplain = _sqlite3WhereExplainOneScan(tls, pParse, pOrTab, pSubWInfo+856, uint16(0)) @@ -138963,6 +140082,12 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** iLoop==3: Code all remaining expressions. ** ** An effort is made to skip unnecessary iterations of the loop. + ** + ** This optimization of causing simple query restrictions to occur before + ** more complex one is call the "push-down" optimization in MySQL. Here + ** in SQLite, the name is "MySQL push-down", since there is also another + ** totally unrelated optimization called "WHERE-clause push-down". + ** Sometimes the qualifier is omitted, resulting in an ambiguity, so beware. */ if pIdx != 0 { v60 = int32(1) @@ -139159,6 +140284,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** to the results of the OUTER JOIN. The following loop generates the ** appropriate WHERE clause constraint checks. tag-20220513a. */ + goto code_outer_join_constraints code_outer_join_constraints: ; pTerm = (*TWhereClause)(unsafe.Pointer(pWC)).Fa @@ -139261,9 +140387,9 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe defer tls.Free(128) var addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, nPk, r, v3 int32 var mAll TBitmask - var pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr + var pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr var _ /* sFrom at bp+0 */ TSrcList - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pRJ = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpRJ @@ -139272,13 +140398,17 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop pTabItem = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 mAll = uint64(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22684, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22829, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) k = 0 for { if !(k < iLevel) { break } + pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*104 mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x20>>5)) != 0 { + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pRight)).FpSelect)).FpEList)).FnExpr-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiTabCur) iIdxCur = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiIdxCur if iIdxCur != 0 { @@ -139776,19 +140906,19 @@ var _aOp = [4]struct { FeOp2 uint8 }{ 0: { - FzOp: __ccgo_ts + 16894, + FzOp: __ccgo_ts + 16981, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_MATCH), }, 1: { - FzOp: __ccgo_ts + 16222, + FzOp: __ccgo_ts + 16315, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_GLOB), }, 2: { - FzOp: __ccgo_ts + 15701, + FzOp: __ccgo_ts + 15794, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_LIKE), }, 3: { - FzOp: __ccgo_ts + 22698, + FzOp: __ccgo_ts + 22843, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_REGEXP), }, } @@ -140422,7 +141552,7 @@ func _exprMightBeIndexed2(tls *libc.TLS, pFrom uintptr, aiCurCol uintptr, pExpr if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) != -int32(2) { goto _4 } - if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_STRING) { + if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && !(_sqlite3ExprIsConstant(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr) != 0) { *(*int32)(unsafe.Pointer(aiCurCol)) = iCur *(*int32)(unsafe.Pointer(aiCurCol + 1*4)) = -int32(2) return int32(1) @@ -140575,7 +141705,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { extraRight = x - uint64(1) /* ON clause terms may not be used with an index ** on left table of a LEFT JOIN. Ticket #3015 */ if prereqAll>>libc.Int32FromInt32(1) >= x { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22705, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22850, 0) return } } else { @@ -140587,7 +141717,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { ** if there is a RIGHT or FULL JOIN in the query. This makes SQLite ** more like other systems, and also preserves legacy. */ if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc > 0 && int32((*(*TSrcItem)(unsafe.Pointer(pSrc + 8))).Ffg.Fjointype)&int32(JT_LTORJ) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22705, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22850, 0) return } *(*Tu32)(unsafe.Pointer(pExpr + 4)) &= uint32(^libc.Int32FromInt32(EP_InnerON)) @@ -140671,7 +141801,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { } else { if op == int32(TK_ISNULL) && !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != libc.Uint32FromInt32(0)) && 0 == _sqlite3ExprCanBeNull(tls, pLeft) { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_TRUEFALSE) /* See tag-20230504-1 */ - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 8239 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 8364 *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_IsFalse)) (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqAll = uint64(0) (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator = uint16(0) @@ -140767,7 +141897,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { *(*Tu8)(unsafe.Pointer(pC)) = uint8(int32(c1) + int32(1)) } if *(*int32)(unsafe.Pointer(bp + 12)) != 0 { - v13 = __ccgo_ts + 22746 + v13 = __ccgo_ts + 22891 } else { v13 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } @@ -141037,6 +142167,9 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FleftCursor != iCsr { return } + if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FprereqRight != uint64(0) { + return + } goto _1 _1: ; @@ -141066,10 +142199,12 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { } } /* All conditions are met. Add the terms to the where-clause object. */ - _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) - if (*TSelect)(unsafe.Pointer(p)).FiOffset > 0 { + if (*TSelect)(unsafe.Pointer(p)).FiOffset != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiOffset, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpRight, iCsr, int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } + if (*TSelect)(unsafe.Pointer(p)).FiOffset == 0 || (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { + _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) + } } } @@ -141293,7 +142428,7 @@ func _sqlite3WhereTabFuncArgs(tls *libc.TLS, pParse uintptr, pItem uintptr, pWC k++ } if k >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22753, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22898, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) return } pColRef = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_COLUMN), uintptr(0), 0) @@ -141625,6 +142760,7 @@ func _whereOrInsert(tls *libc.TLS, pSet uintptr, prereq TBitmask, rRun TLogEst, return 0 } } + goto whereOrInsert_done whereOrInsert_done: ; (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq = prereq @@ -141726,6 +142862,48 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { return uintptr(0) } +// C documentation +// +// /* +// ** Term pTerm is guaranteed to be a WO_IN term. It may be a component term +// ** of a vector IN expression of the form "(x, y, ...) IN (SELECT ...)". +// ** This function checks to see if the term is compatible with an index +// ** column with affinity idxaff (one of the SQLITE_AFF_XYZ values). If so, +// ** it returns a pointer to the name of the collation sequence (e.g. "BINARY" +// ** or "NOCASE") used by the comparison in pTerm. If it is not compatible +// ** with affinity idxaff, NULL is returned. +// */ +func _indexInAffinityOk(tls *libc.TLS, pParse uintptr, pTerm uintptr, idxaff Tu8) (r uintptr) { + bp := tls.Alloc(80) + defer tls.Free(80) + var iField int32 + var pRet, pX, v1 uintptr + var _ /* inexpr at bp+0 */ TExpr + _, _, _, _ = iField, pRet, pX, v1 + pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr + if _sqlite3ExprIsVector(tls, (*TExpr)(unsafe.Pointer(pX)).FpLeft) != 0 { + iField = (*(*struct { + FleftColumn int32 + FiField int32 + })(unsafe.Pointer(pTerm + 32))).FiField - int32(1) + (*(*TExpr)(unsafe.Pointer(bp))).Fflags = uint32(0) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_EQ) + (*(*TExpr)(unsafe.Pointer(bp))).FpLeft = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pX)).FpLeft + 32)) + 8 + uintptr(iField)*32))).FpExpr + (*(*TExpr)(unsafe.Pointer(bp))).FpRight = (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pX + 32)))).FpEList + 8 + uintptr(iField)*32))).FpExpr + pX = bp + } + if _sqlite3IndexAffinityOk(tls, pX, int8(idxaff)) != 0 { + pRet = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pRet != 0 { + v1 = (*TCollSeq)(unsafe.Pointer(pRet)).FzName + } else { + v1 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + return v1 + } + return uintptr(0) +} + // C documentation // // /* @@ -141736,10 +142914,10 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { var iColumn Ti16 var iCur, j, k int32 - var pColl, pParse, pTerm, pWC, pX, v2 uintptr - var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, v2, v3, v5 /* The term being tested */ - k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ + var pColl, pParse, pTerm, pWC, pX, zCollName, v2, v5 uintptr + var v3, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, zCollName, v2, v3, v5, v6 /* The term being tested */ + k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ pWC = (*TWhereScan)(unsafe.Pointer(pScan)).FpWC for int32(1) != 0 { iColumn = *(*Ti16)(unsafe.Pointer(pScan + 88 + uintptr(int32((*TWhereScan)(unsafe.Pointer(pScan)).FiEquiv)-int32(1))*2)) @@ -141783,21 +142961,31 @@ func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { if (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName != 0 && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_ISNULL) == 0 { pParse = (*TWhereInfo)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr - if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { - goto _1 - } - pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) - if pColl == uintptr(0) { - pColl = (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FpDfltColl + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_IN) != 0 { + zCollName = _indexInAffinityOk(tls, pParse, pTerm, uint8((*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff)) + if !(zCollName != 0) { + goto _1 + } + } else { + if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { + goto _1 + } + pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pColl != 0 { + v5 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName + } else { + v5 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + zCollName = v5 } - if _sqlite3StrICmp(tls, (*TCollSeq)(unsafe.Pointer(pColl)).FzName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { + if _sqlite3StrICmp(tls, zCollName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { goto _1 } } - if v5 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v5 { + if v6 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v6 { pX = (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight } - if v5 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { + if v6 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { goto _1 } (*TWhereScan)(unsafe.Pointer(pScan)).FpWC = pWC @@ -142285,7 +143473,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea /* Make the automatic index a partial index if there are terms in the ** WHERE clause (or the ON clause of a LEFT join) that constrain which ** rows of the target table (pSrc) that can be used. */ - if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)) != 0 { + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom), 0) != 0 { pPartial = _sqlite3ExprAnd(tls, pParse, pPartial, _sqlite3ExprDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr, 0)) } if _termCanDriveIndex(tls, pTerm, pSrc, notReady) != 0 { @@ -142300,7 +143488,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea } cMask = v2 if !(sentWarning != 0) { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_WARNING)|libc.Int32FromInt32(1)<>14)) != 0) { eDistinct = int32(2) + libc.BoolInt32(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_SORTBYGROUP) != 0) } else { if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_GROUPBY) != 0 { @@ -142770,7 +143959,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB */ pIdxInfo = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(96)+(libc.Uint64FromInt64(12)+libc.Uint64FromInt64(8))*uint64(nTerm)+uint64(8)*uint64(nOrderBy)+uint64(40)+uint64(8)*uint64(nTerm)) if pIdxInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1634, 0) return uintptr(0) } pHidden = pIdxInfo + 1*96 @@ -142855,7 +144044,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB break } pExpr1 = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr - if _sqlite3ExprIsConstant(tls, pExpr1) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr1) != 0 { goto _11 } (*(*Tsqlite3_index_orderby)(unsafe.Pointer(pIdxOrderBy + uintptr(j)*8))).FiColumn = int32((*TExpr)(unsafe.Pointer(pExpr1)).FiColumn) @@ -142930,9 +144119,9 @@ func _vtabBestIndex(tls *libc.TLS, pParse uintptr, pTab uintptr, p uintptr) (r i _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) } else { if !((*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3799, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3863, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3799, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3863, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) } } } @@ -144269,7 +145458,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x4>>2)) != 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) } - if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 && int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x2>>1)) == 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ) | libc.Int32FromInt32(WO_IN) | libc.Int32FromInt32(WO_IS)) } } @@ -144508,10 +145697,13 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } } } - /* Set rCostIdx to the cost of visiting selected rows in index. Add - ** it to pNew->rRun, which is currently set to the cost of the index - ** seek only. Then, if this is a non-covering index, add the cost of - ** visiting the rows in the main table. */ + /* Set rCostIdx to the estimated cost of visiting selected rows in the + ** index. The estimate is the sum of two values: + ** 1. The cost of doing one search-by-key to find the first matching + ** entry + ** 2. Stepping forward in the index pNew->nOut times to find all + ** additional matching entries. + */ if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_IPK) { /* The pProbe->szIdxRow is low for an IPK table since the interior ** pages are small. Thus szIdxRow gives a good estimate of seek cost. @@ -144521,7 +145713,14 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } else { rCostIdx = int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut) + int32(1) + int32(15)*int32((*TIndex)(unsafe.Pointer(pProbe)).FszIdxRow)/int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FszTabRow)) } - (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + rCostIdx = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + /* Estimate the cost of running the loop. If all data is coming + ** from the index, then this is just the cost of doing the index + ** lookup and scan. But if some data is coming out of the main table, + ** we also have to add in the cost of doing pNew->nOut searches to + ** locate the row in the main table that corresponds to the index entry. + */ + (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = rCostIdx if (*TWhereLoop)(unsafe.Pointer(pNew)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IDX_ONLY)|libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_EXPRIDX)) == uint32(0) { (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun, int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut)+int32(16))) } @@ -144626,7 +145825,7 @@ func _indexMightHelpWithOrderBy(tls *libc.TLS, pBuilder uintptr, pIndex uintptr, if pExpr == uintptr(0) { goto _2 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { + if (int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) || int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_COLUMN)) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) < 0 { return int32(1) } @@ -144961,7 +146160,7 @@ func _wherePartIdxExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, pPart uintpt if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) != int32(TK_COLUMN) { return } - if !(_sqlite3ExprIsConstant(tls, pRight) != 0) { + if !(_sqlite3ExprIsConstant(tls, uintptr(0), pRight) != 0) { return } if !(_sqlite3IsBinary(tls, _sqlite3ExprCompareCollSeq(tls, pParse, pPart)) != 0) { @@ -145290,7 +146489,7 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in ** unique index is used (making the index functionally non-unique) ** then the sqlite_stat1 data becomes important for scoring the ** plan */ - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) } _sqlite3Stat4ProbeFree(tls, (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec) (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = 0 @@ -145318,6 +146517,31 @@ func _isLimitTerm(tls *libc.TLS, pTerm uintptr) (r int32) { return libc.BoolInt32(int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) >= int32(SQLITE_INDEX_CONSTRAINT_LIMIT) && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) <= int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } +// C documentation +// +// /* +// ** Return true if the first nCons constraints in the pUsage array are +// ** marked as in-use (have argvIndex>0). False otherwise. +// */ +func _allConstraintsUsed(tls *libc.TLS, aUsage uintptr, nCons int32) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < nCons) { + break + } + if (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer(aUsage + uintptr(ii)*8))).FargvIndex <= 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + // C documentation // // /* @@ -145412,7 +146636,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if v3 >= 0 { j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).FiTermOffset if iTerm >= nConstraint || j < 0 || j >= (*TWhereClause)(unsafe.Pointer(pWC)).FnTerm || *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(iTerm)*8)) != uintptr(0) || int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22826, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22971, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } pTerm1 = (*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(j)*56 @@ -145457,12 +146681,16 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, *(*int32)(unsafe.Pointer(pbIn)) = int32(1) } } - if _isLimitTerm(tls, pTerm1) != 0 && *(*int32)(unsafe.Pointer(pbIn)) != 0 { + /* Unless pbRetryLimit is non-NULL, there should be no LIMIT/OFFSET + ** terms. And if there are any, they should follow all other terms. */ + if _isLimitTerm(tls, pTerm1) != 0 && (*(*int32)(unsafe.Pointer(pbIn)) != 0 || !(_allConstraintsUsed(tls, pUsage, i) != 0)) { /* If there is an IN(...) term handled as an == (separate call to ** xFilter for each value on the RHS of the IN) and a LIMIT or - ** OFFSET term handled as well, the plan is unusable. Set output - ** variable *pbRetryLimit to true to tell the caller to retry with - ** LIMIT and OFFSET disabled. */ + ** OFFSET term handled as well, the plan is unusable. Similarly, + ** if there is a LIMIT/OFFSET and there are other unused terms, + ** the plan cannot be used. In these cases set variable *pbRetryLimit + ** to true to tell the caller to retry with LIMIT and OFFSET + ** disabled. */ if (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FneedToFreeIdxStr != 0 { Xsqlite3_free(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = uintptr(0) @@ -145487,7 +146715,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(i)*8)) == uintptr(0) { /* The non-zero argvIdx values must be contiguous. Raise an ** error if they are not */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22826, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22971, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } goto _6 @@ -145639,7 +146867,7 @@ func Xsqlite3_vtab_rhs_value(tls *libc.TLS, pIdxInfo uintptr, iCons int32, ppVal pVal = uintptr(0) rc = SQLITE_OK if iCons < 0 || iCons >= (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint { - rc = _sqlite3MisuseError(tls, int32(165251)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(166453)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = (*TWhereClause)(unsafe.Pointer((*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC)).Fa + uintptr((*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset)*56 @@ -146077,7 +147305,7 @@ func _whereLoopAddAll(tls *libc.TLS, pBuilder uintptr) (r int32) { if rc != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { if rc == int32(SQLITE_DONE) { /* We hit the query planner search limit set by iPlanLimit */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22852, 0) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22997, 0) rc = SQLITE_OK } else { break @@ -146459,7 +147687,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, } p = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr mTerm = _sqlite3WhereExprUsage(tls, pWInfo+592, p) - if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, p) != 0) { + if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, uintptr(0), p) != 0) { goto _9 } if mTerm & ^orderDistinctMask == uint64(0) { @@ -146869,7 +148097,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) iLoop++ } if nFrom == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22887, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23032, 0) _sqlite3DbFreeNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pSpace) return int32(SQLITE_ERROR) } @@ -146918,9 +148146,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) if int32((*TWherePath)(unsafe.Pointer(pFrom)).FisOrdered) == (*TExprList)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_ORDERED) } - if (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy != 0 && int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) > (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr { - (*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = int8((*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr) - } + /* vvv--- See check-in [12ad822d9b827777] on 2023-03-16 ---vvv */ } else { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FrevMask = (*TWherePath)(unsafe.Pointer(pFrom)).FrevLoop if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) <= 0 { @@ -146957,6 +148183,97 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) return SQLITE_OK } +// C documentation +// +// /* +// ** This routine implements a heuristic designed to improve query planning. +// ** This routine is called in between the first and second call to +// ** wherePathSolver(). Hence the name "Interstage" "Heuristic". +// ** +// ** The first call to wherePathSolver() (hereafter just "solver()") computes +// ** the best path without regard to the order of the outputs. The second call +// ** to the solver() builds upon the first call to try to find an alternative +// ** path that satisfies the ORDER BY clause. +// ** +// ** This routine looks at the results of the first solver() run, and for +// ** every FROM clause term in the resulting query plan that uses an equality +// ** constraint against an index, disable other WhereLoops for that same +// ** FROM clause term that would try to do a full-table scan. This prevents +// ** an index search from being converted into a full-table scan in order to +// ** satisfy an ORDER BY clause, since even though we might get slightly better +// ** performance using the full-scan without sorting if the output size +// ** estimates are very precise, we might also get severe performance +// ** degradation using the full-scan if the output size estimate is too large. +// ** It is better to err on the side of caution. +// ** +// ** Except, if the first solver() call generated a full-table scan in an outer +// ** loop then stop this analysis at the first full-scan, since the second +// ** solver() run might try to swap that full-scan for another in order to +// ** get the output into the correct order. In other words, we allow a +// ** rewrite like this: +// ** +// ** First Solver() Second Solver() +// ** |-- SCAN t1 |-- SCAN t2 +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** The purpose of this routine is to disallow rewrites such as: +// ** +// ** First Solver() Second Solver() +// ** |-- SEARCH t1 |-- SCAN t2 <--- bad! +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** See test cases in test/whereN.test for the real-world query that +// ** originally provoked this heuristic. +// */ +func _whereInterstageHeuristic(tls *libc.TLS, pWInfo uintptr) { + var i int32 + var iTab Tu8 + var p, pLoop uintptr + _, _, _, _ = i, iTab, p, pLoop + i = 0 + for { + if !(i < int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)) { + break + } + p = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(i)*104))).FpWLoop + if p == uintptr(0) { + break + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { + goto _1 + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_NULL)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != uint32(0) { + iTab = (*TWhereLoop)(unsafe.Pointer(p)).FiTab + pLoop = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpLoops + for { + if !(pLoop != 0) { + break + } + if int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab) != int32(iTab) { + goto _2 + } + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_CONSTRAINT)|libc.Int32FromInt32(WHERE_AUTO_INDEX)) != uint32(0) { + /* Auto-index and index-constrained loops allowed to remain */ + goto _2 + } + (*TWhereLoop)(unsafe.Pointer(pLoop)).Fprereq = uint64(-libc.Int32FromInt32(1)) /* Prevent 2nd solver() from using this one */ + goto _2 + _2: + ; + pLoop = (*TWhereLoop)(unsafe.Pointer(pLoop)).FpNextLoop + } + } else { + break + } + goto _1 + _1: + ; + i++ + } +} + // C documentation // // /* @@ -147265,7 +148582,7 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasStat1) == uint32(0) { break } - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) if i >= int32(1) && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&reqFlags == reqFlags && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_INDEXED)) != uint32(0) { if int32(nSearch) > int32((*TTable)(unsafe.Pointer(pTab)).FnRowLogEst) { *(*Tu32)(unsafe.Pointer(pLoop + 48)) |= uint32(WHERE_BLOOMFILTER) @@ -147280,6 +148597,68 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { } } +// C documentation +// +// /* +// ** Expression Node callback for sqlite3ExprCanReturnSubtype(). +// ** +// ** Only a function call is able to return a subtype. So if the node +// ** is not a function call, return WRC_Prune immediately. +// ** +// ** A function call is able to return a subtype if it has the +// ** SQLITE_RESULT_SUBTYPE property. +// ** +// ** Assume that every function is able to pass-through a subtype from +// ** one of its argument (using sqlite3_result_value()). Most functions +// ** are not this way, but we don't have a mechanism to distinguish those +// ** that are from those that are not, so assume they all work this way. +// ** That means that if one of its arguments is another function and that +// ** other function is able to return a subtype, then this function is +// ** able to return a subtype. +// */ +func _exprNodeCanReturnSubtype(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef uintptr + var n, v1 int32 + _, _, _, _ = db, n, pDef, v1 + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_FUNCTION) { + return int32(WRC_Prune) + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { + v1 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr + } else { + v1 = 0 + } + n = v1 + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + return int32(WRC_Prune) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Return TRUE if expression pExpr is able to return a subtype. +// ** +// ** A TRUE return does not guarantee that a subtype will be returned. +// ** It only indicates that a subtype return is possible. False positives +// ** are acceptable as they only disable an optimization. False negatives, +// ** on the other hand, can lead to incorrect answers. +// */ +func _sqlite3ExprCanReturnSubtype(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.X__builtin___memset_chk(tls, bp, 0, uint64(48), libc.X__builtin_object_size(tls, bp, 0)) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeCanReturnSubtype) + _sqlite3WalkExpr(tls, bp, pExpr) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) +} + // C documentation // // /* @@ -147294,9 +148673,9 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { // ** references to the corresponding column of the index. // */ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur int32, pTabItem uintptr) { - var db, p, pArg, pDef, pExpr, pTab uintptr - var i, j, n, v2 int32 - _, _, _, _, _, _, _, _, _, _ = db, i, j, n, p, pArg, pDef, pExpr, pTab, v2 + var i, j int32 + var p, pArg, pExpr, pTab uintptr + _, _, _, _, _, _ = i, j, p, pArg, pExpr, pTab pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable i = 0 for { @@ -147313,21 +148692,14 @@ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur i goto _1 } } - if _sqlite3ExprIsConstant(tls, pExpr) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) != 0 { goto _1 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) { - db = (*TParse)(unsafe.Pointer(pParse)).Fdb - if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { - v2 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr - } else { - v2 = 0 - } - n = v2 - pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) - if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { - goto _1 - } + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) && _sqlite3ExprCanReturnSubtype(tls, pParse, pExpr) != 0 { + /* Functions that might set a subtype should not be replaced by the + ** value taken from an expression index since the index omits the + ** subtype. https://sqlite.org/forum/forumpost/68d284c86b082c3e */ + goto _1 } p = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(32)) if p == uintptr(0) { @@ -147499,7 +148871,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** bits in a Bitmask */ if (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc > int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22905, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23050, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) return uintptr(0) } /* This function normally generates a nested loop for all tables in @@ -147571,7 +148943,9 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if int32(wctrlFlags)&int32(WHERE_WANT_DISTINCT) != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_DistinctOpt)) == uint32(0) { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_UNIQUE) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22933, 0) + if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FselFlags&uint32(SF_MultiValue) == uint32(0) { + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+23078, 0) + } } else { /* Assign a bit from the bitmask to every term in the FROM clause. ** @@ -147703,6 +149077,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy != 0 { + _whereInterstageHeuristic(tls, pWInfo) _wherePathSolver(tls, pWInfo, int16(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut)+int32(1))) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto whereBeginError @@ -147987,6 +149362,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiEndWhere = _sqlite3VdbeCurrentAddr(tls, v) return pWInfo /* Jump here if malloc fails */ + goto whereBeginError whereBeginError: ; if pWInfo != 0 { @@ -148010,10 +149386,10 @@ whereBeginError: // ** sqlite3WhereBegin() for additional information. // */ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { - var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, r1, ws, x, v4, v7 int32 - var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr + var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, r1, ws, x, v4, v7 int32 + var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pTabList = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList @@ -148154,6 +149530,12 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { ws = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags) addr = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfPos), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin) if ws&int32(WHERE_IDX_ONLY) == 0 { + pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 + if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x20>>5)) != 0 { + n1 = (*TSrcItem)(unsafe.Pointer(pSrc)).FregResult + m = int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FnCol) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, n1, n1+m-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur) } if ws&int32(WHERE_INDEXED) != 0 || ws&int32(WHERE_MULTI_OR) != 0 && *(*uintptr)(unsafe.Pointer(&(*TWhereLevel)(unsafe.Pointer(pLevel)).Fu)) != 0 { @@ -148567,9 +149949,10 @@ func _nth_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) _ = nArg _ = apArg return + goto error_out error_out: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22951, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+23096, -int32(1)) } func _nth_valueFinalizeFunc(tls *libc.TLS, pCtx uintptr) { @@ -148751,7 +150134,7 @@ func _ntileStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { if (*TNtileCtx)(unsafe.Pointer(p)).FnTotal == 0 { (*TNtileCtx)(unsafe.Pointer(p)).FnParam = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apArg))) if (*TNtileCtx)(unsafe.Pointer(p)).FnParam <= 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+23007, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+23152, -int32(1)) } } (*TNtileCtx)(unsafe.Pointer(p)).FnTotal++ @@ -149077,7 +150460,7 @@ func _windowFind(tls *libc.TLS, pParse uintptr, pList uintptr, zName uintptr) (r p = (*TWindow)(unsafe.Pointer(p)).FpNextWin } if p == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23052, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23197, libc.VaList(bp+8, zName)) } return p } @@ -149128,12 +150511,12 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin _sqlite3WindowChain(tls, pParse, pWin, pList) } if int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) == int32(TK_RANGE) && ((*TWindow)(unsafe.Pointer(pWin)).FpStart != 0 || (*TWindow)(unsafe.Pointer(pWin)).FpEnd != 0) && ((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy == uintptr(0) || (*TExprList)(unsafe.Pointer((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy)).FnExpr != int32(1)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23071, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23216, 0) } else { if (*TFuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TWindow)(unsafe.Pointer(pWin)).FpFilter != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23142, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23287, 0) } else { aUp = [8]struct { FzFunc uintptr @@ -149206,7 +150589,7 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin (*TWindow)(unsafe.Pointer(pWin)).FeEnd = uint8(aUp[i].FeEnd) (*TWindow)(unsafe.Pointer(pWin)).FeExclude = uint8(0) if int32((*TWindow)(unsafe.Pointer(pWin)).FeStart) == int32(TK_FOLLOWING) { - (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8478) + (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8603) } break } @@ -149488,7 +150871,7 @@ func _disallowAggregatesInOrderByCb(tls *libc.TLS, pWalker uintptr, pExpr uintpt bp := tls.Alloc(16) defer tls.Free(16) if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_FUNCTION) && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+23205, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) + _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+23350, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) } return WRC_Continue } @@ -149629,7 +151012,7 @@ func _sqlite3WindowRewrite(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { ** keep everything legal in this case. */ if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1724)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1784)) } pSub = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(bp)), pSrc, pWhere, pGroupBy, pHaving, pSort, uint32(0), uintptr(0)) (*TSelect)(unsafe.Pointer(p)).FpSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), uintptr(0), uintptr(0)) @@ -149733,7 +151116,7 @@ func _sqlite3WindowListDelete(tls *libc.TLS, db uintptr, p uintptr) { // ** variable values in the expression tree. // */ func _sqlite3WindowOffsetExpr(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r uintptr) { - if 0 == _sqlite3ExprIsConstant(tls, pExpr) { + if 0 == _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) { if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameExprUnmap(tls, pParse, pExpr) } @@ -149774,7 +151157,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 ** frame boundary. */ if eStart == int32(TK_CURRENT) && eEnd == int32(TK_PRECEDING) || eStart == int32(TK_FOLLOWING) && (eEnd == int32(TK_PRECEDING) || eEnd == int32(TK_CURRENT)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23231, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23376, 0) goto windowAllocErr } pWin = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) @@ -149792,6 +151175,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 (*TWindow)(unsafe.Pointer(pWin)).FpEnd = _sqlite3WindowOffsetExpr(tls, pParse, pEnd) (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3WindowOffsetExpr(tls, pParse, pStart) return pWin + goto windowAllocErr windowAllocErr: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pEnd) @@ -149841,18 +151225,18 @@ func _sqlite3WindowChain(tls *libc.TLS, pParse uintptr, pWin uintptr, pList uint zErr = uintptr(0) /* Check for errors */ if (*TWindow)(unsafe.Pointer(pWin)).FpPartition != 0 { - zErr = __ccgo_ts + 23263 + zErr = __ccgo_ts + 23408 } else { if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 && (*TWindow)(unsafe.Pointer(pWin)).FpOrderBy != 0 { - zErr = __ccgo_ts + 23280 + zErr = __ccgo_ts + 23425 } else { if int32((*TWindow)(unsafe.Pointer(pExist)).FbImplicitFrame) == 0 { - zErr = __ccgo_ts + 23296 + zErr = __ccgo_ts + 23441 } } } if zErr != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23316, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23461, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) } else { (*TWindow)(unsafe.Pointer(pWin)).FpPartition = _sqlite3ExprListDup(tls, db, (*TWindow)(unsafe.Pointer(pExist)).FpPartition, 0) if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 { @@ -149876,7 +151260,7 @@ func _sqlite3WindowAttach(tls *libc.TLS, pParse uintptr, p uintptr, pWin uintptr *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(libc.Int32FromInt32(EP_WinFunc) | libc.Int32FromInt32(EP_FullSize)) (*TWindow)(unsafe.Pointer(pWin)).FpOwner = p if (*TExpr)(unsafe.Pointer(p)).Fflags&uint32(EP_Distinct) != 0 && int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) != int32(TK_FILTER) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23349, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23494, 0) } } else { _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pWin) @@ -150075,7 +151459,7 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regZero) if eCond >= int32(WINDOW_STARTING_NUM) { regString = _sqlite3GetTempReg(tls, pParse) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1650, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1664, -int32(1)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, _sqlite3VdbeCurrentAddr(tls, v)+int32(2), reg) _sqlite3VdbeChangeP5(tls, v, uint16(libc.Int32FromInt32(SQLITE_AFF_NUMERIC)|libc.Int32FromInt32(SQLITE_JUMPIFNULL))) } else { @@ -150094,11 +151478,11 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { } var _azErr = [5]uintptr{ - 0: __ccgo_ts + 23396, - 1: __ccgo_ts + 23449, - 2: __ccgo_ts + 22951, - 3: __ccgo_ts + 23500, - 4: __ccgo_ts + 23552, + 0: __ccgo_ts + 23541, + 1: __ccgo_ts + 23594, + 2: __ccgo_ts + 23096, + 3: __ccgo_ts + 23645, + 4: __ccgo_ts + 23697, } var _aOp1 = [5]int32{ @@ -150850,7 +152234,7 @@ func _windowCodeRangeTest(tls *libc.TLS, p uintptr, op int32, csr1 int32, regVal ** the add/subtract is skipped for these, as required. If reg1 is a NULL, ** then the arithmetic is performed, but since adding or subtracting from ** NULL is always NULL anyway, this case is handled as required too. */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1650, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1664, -int32(1)) addrGe = _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, 0, reg1) if op == int32(OP_Ge) && arith == int32(OP_Add) || op == int32(OP_Le) && arith == int32(OP_Subtract) { _sqlite3VdbeAddOp3(tls, v, op, reg2, lbl, reg1) @@ -151878,11 +153262,11 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { cnt++ if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != 0 || (*TSelect)(unsafe.Pointer(pLoop)).FpLimit != 0 { if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != uintptr(0) { - v1 = __ccgo_ts + 23602 + v1 = __ccgo_ts + 23747 } else { - v1 = __ccgo_ts + 23611 + v1 = __ccgo_ts + 23756 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23617, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23762, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) break } } @@ -151891,7 +153275,7 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { mxSelect = v2 } if v3 && v2 > 0 && cnt > mxSelect { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23659, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23804, 0) } } } @@ -151911,6 +153295,23 @@ func _attachWithToSelect(tls *libc.TLS, pParse uintptr, pSelect uintptr, pWith u return pSelect } +// C documentation +// +// /* Memory allocator for parser stack resizing. This is a thin wrapper around +// ** sqlite3_realloc() that includes a call to sqlite3FaultSim() to facilitate +// ** testing. +// */ +func _parserStackRealloc(tls *libc.TLS, pOld uintptr, newSize Tsqlite3_uint64) (r uintptr) { + var v1 uintptr + _ = v1 + if _sqlite3FaultSim(tls, int32(700)) != 0 { + v1 = uintptr(0) + } else { + v1 = Xsqlite3_realloc(tls, pOld, int32(newSize)) + } + return v1 +} + // C documentation // // /* Construct a new Expr object from a single token */ @@ -151980,7 +153381,7 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId _ = p p = _sqlite3ExprListAppend(tls, pParse, pPrior, uintptr(0)) if (hasCollate != 0 || sortOrder != -int32(1)) && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23693, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23838, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) } _sqlite3ExprListSetName(tls, pParse, p, pIdToken, int32(1)) return p @@ -152030,6 +153431,9 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser // ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser // ** sqlite3ParserCTX_* As sqlite3ParserARG_ except for %extra_context +// ** YYREALLOC Name of the realloc() function to use +// ** YYFREE Name of the free() function to use +// ** YYDYNSTACK True if stack space should be extended on heap // ** YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** YYNSTATE the combined number of states. @@ -152043,31 +153447,33 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** YY_NO_ACTION The yy_action[] code for no-op // ** YY_MIN_REDUCE Minimum value for reduce actions // ** YY_MAX_REDUCE Maximum value for reduce actions +// ** YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type TYYMINORTYPE = struct { Fyy0 [0]TToken - Fyy33 [0]uintptr - Fyy41 [0]uintptr - Fyy47 [0]uintptr - Fyy131 [0]uintptr - Fyy180 [0]TTrigEvent - Fyy231 [0]struct { + Fyy14 [0]uintptr + Fyy59 [0]uintptr + Fyy67 [0]uintptr + Fyy122 [0]uintptr + Fyy132 [0]uintptr + Fyy144 [0]int32 + Fyy168 [0]uintptr + Fyy203 [0]uintptr + Fyy211 [0]uintptr + Fyy269 [0]TOnOrUsing + Fyy286 [0]TTrigEvent + Fyy383 [0]struct { Fvalue int32 Fmask int32 } - Fyy254 [0]uintptr - Fyy285 [0]Tu32 - Fyy322 [0]uintptr - Fyy385 [0]uintptr - Fyy394 [0]int32 - Fyy444 [0]uintptr - Fyy516 [0]Tu8 - Fyy521 [0]uintptr - Fyy522 [0]uintptr - Fyy528 [0]uintptr - Fyy561 [0]TOnOrUsing - Fyy595 [0]TFrameBound + Fyy391 [0]Tu32 + Fyy427 [0]uintptr + Fyy454 [0]uintptr + Fyy462 [0]Tu8 + Fyy509 [0]TFrameBound + Fyy555 [0]uintptr Fyyinit int32 F__ccgo_pad20 [12]byte } @@ -152085,6 +153491,13 @@ type YYMINORTYPE = TYYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -152137,2152 +153550,2194 @@ type YYMINORTYPE = TYYMINORTYPE // ** yy_default[] Default action for each state. // ** // *********** Begin parsing tables **********************************************/ -var _yy_action = [2100]uint16{ - 0: uint16(572), - 1: uint16(210), - 2: uint16(572), - 3: uint16(119), - 4: uint16(116), - 5: uint16(231), - 6: uint16(572), - 7: uint16(119), - 8: uint16(116), - 9: uint16(231), - 10: uint16(572), - 11: uint16(1317), - 12: uint16(379), - 13: uint16(1296), - 14: uint16(410), - 15: uint16(566), - 16: uint16(566), - 17: uint16(566), - 18: uint16(572), - 19: uint16(411), - 20: uint16(380), - 21: uint16(1317), - 22: uint16(1279), - 23: uint16(42), - 24: uint16(42), - 25: uint16(42), - 26: uint16(42), - 27: uint16(210), - 28: uint16(1529), - 29: uint16(72), - 30: uint16(72), - 31: uint16(974), - 32: uint16(421), - 33: uint16(42), - 34: uint16(42), - 35: uint16(495), - 36: uint16(305), - 37: uint16(281), - 38: uint16(305), - 39: uint16(975), - 40: uint16(399), - 41: uint16(72), - 42: uint16(72), - 43: uint16(126), - 44: uint16(127), - 45: uint16(81), - 46: uint16(1217), - 47: uint16(1217), - 48: uint16(1054), - 49: uint16(1057), - 50: uint16(1044), - 51: uint16(1044), - 52: uint16(124), - 53: uint16(124), - 54: uint16(125), - 55: uint16(125), - 56: uint16(125), - 57: uint16(125), - 58: uint16(480), - 59: uint16(411), - 60: uint16(1244), - 61: uint16(1), - 62: uint16(1), - 63: uint16(578), - 64: uint16(2), - 65: uint16(1248), - 66: uint16(554), - 67: uint16(119), - 68: uint16(116), - 69: uint16(231), - 70: uint16(319), - 71: uint16(484), - 72: uint16(147), - 73: uint16(484), - 74: uint16(528), - 75: uint16(119), - 76: uint16(116), - 77: uint16(231), - 78: uint16(533), - 79: uint16(1330), - 80: uint16(419), - 81: uint16(527), - 82: uint16(143), - 83: uint16(126), - 84: uint16(127), - 85: uint16(81), - 86: uint16(1217), - 87: uint16(1217), - 88: uint16(1054), - 89: uint16(1057), - 90: uint16(1044), - 91: uint16(1044), - 92: uint16(124), - 93: uint16(124), - 94: uint16(125), - 95: uint16(125), - 96: uint16(125), - 97: uint16(125), - 98: uint16(119), - 99: uint16(116), - 100: uint16(231), - 101: uint16(329), - 102: uint16(123), - 103: uint16(123), - 104: uint16(123), - 105: uint16(123), - 106: uint16(122), - 107: uint16(122), - 108: uint16(121), - 109: uint16(121), - 110: uint16(121), - 111: uint16(120), - 112: uint16(117), - 113: uint16(448), - 114: uint16(286), - 115: uint16(286), - 116: uint16(286), - 117: uint16(286), - 118: uint16(446), - 119: uint16(446), - 120: uint16(446), - 121: uint16(1568), - 122: uint16(378), - 123: uint16(1570), - 124: uint16(1193), - 125: uint16(377), - 126: uint16(1164), - 127: uint16(569), - 128: uint16(1164), - 129: uint16(569), - 130: uint16(411), - 131: uint16(1568), - 132: uint16(541), - 133: uint16(261), - 134: uint16(228), - 135: uint16(448), - 136: uint16(102), - 137: uint16(146), - 138: uint16(453), - 139: uint16(318), - 140: uint16(563), - 141: uint16(242), - 142: uint16(123), - 143: uint16(123), - 144: uint16(123), - 145: uint16(123), - 146: uint16(122), - 147: uint16(122), - 148: uint16(121), - 149: uint16(121), - 150: uint16(121), - 151: uint16(120), - 152: uint16(117), - 153: uint16(448), - 154: uint16(126), - 155: uint16(127), - 156: uint16(81), - 157: uint16(1217), - 158: uint16(1217), - 159: uint16(1054), - 160: uint16(1057), - 161: uint16(1044), - 162: uint16(1044), - 163: uint16(124), - 164: uint16(124), - 165: uint16(125), - 166: uint16(125), - 167: uint16(125), - 168: uint16(125), - 169: uint16(143), - 170: uint16(296), - 171: uint16(1193), - 172: uint16(341), - 173: uint16(452), - 174: uint16(121), - 175: uint16(121), - 176: uint16(121), - 177: uint16(120), - 178: uint16(117), - 179: uint16(448), - 180: uint16(128), - 181: uint16(1193), - 182: uint16(1194), - 183: uint16(1193), - 184: uint16(149), - 185: uint16(445), - 186: uint16(444), - 187: uint16(572), - 188: uint16(120), - 189: uint16(117), - 190: uint16(448), - 191: uint16(125), - 192: uint16(125), - 193: uint16(125), - 194: uint16(125), - 195: uint16(118), - 196: uint16(123), - 197: uint16(123), - 198: uint16(123), - 199: uint16(123), - 200: uint16(122), - 201: uint16(122), - 202: uint16(121), - 203: uint16(121), - 204: uint16(121), - 205: uint16(120), - 206: uint16(117), - 207: uint16(448), - 208: uint16(458), - 209: uint16(114), - 210: uint16(13), - 211: uint16(13), - 212: uint16(550), - 213: uint16(123), - 214: uint16(123), - 215: uint16(123), - 216: uint16(123), - 217: uint16(122), - 218: uint16(122), - 219: uint16(121), - 220: uint16(121), - 221: uint16(121), - 222: uint16(120), - 223: uint16(117), - 224: uint16(448), - 225: uint16(424), - 226: uint16(318), - 227: uint16(563), - 228: uint16(1193), - 229: uint16(1194), - 230: uint16(1193), - 231: uint16(150), - 232: uint16(1225), - 233: uint16(411), - 234: uint16(1225), - 235: uint16(125), - 236: uint16(125), - 237: uint16(125), - 238: uint16(125), - 239: uint16(123), - 240: uint16(123), - 241: uint16(123), - 242: uint16(123), - 243: uint16(122), - 244: uint16(122), - 245: uint16(121), - 246: uint16(121), - 247: uint16(121), - 248: uint16(120), - 249: uint16(117), - 250: uint16(448), - 251: uint16(469), - 252: uint16(344), - 253: uint16(1041), - 254: uint16(1041), - 255: uint16(1055), - 256: uint16(1058), - 257: uint16(126), - 258: uint16(127), - 259: uint16(81), - 260: uint16(1217), - 261: uint16(1217), - 262: uint16(1054), - 263: uint16(1057), - 264: uint16(1044), - 265: uint16(1044), - 266: uint16(124), - 267: uint16(124), - 268: uint16(125), - 269: uint16(125), - 270: uint16(125), - 271: uint16(125), - 272: uint16(1282), - 273: uint16(526), - 274: uint16(224), - 275: uint16(1193), - 276: uint16(572), - 277: uint16(411), - 278: uint16(226), - 279: uint16(519), - 280: uint16(177), - 281: uint16(83), - 282: uint16(84), - 283: uint16(123), - 284: uint16(123), - 285: uint16(123), - 286: uint16(123), - 287: uint16(122), - 288: uint16(122), - 289: uint16(121), - 290: uint16(121), - 291: uint16(121), - 292: uint16(120), - 293: uint16(117), - 294: uint16(448), - 295: uint16(1010), - 296: uint16(16), - 297: uint16(16), - 298: uint16(1193), - 299: uint16(134), - 300: uint16(134), - 301: uint16(126), - 302: uint16(127), - 303: uint16(81), - 304: uint16(1217), - 305: uint16(1217), - 306: uint16(1054), - 307: uint16(1057), - 308: uint16(1044), - 309: uint16(1044), - 310: uint16(124), - 311: uint16(124), - 312: uint16(125), - 313: uint16(125), - 314: uint16(125), - 315: uint16(125), - 316: uint16(123), - 317: uint16(123), - 318: uint16(123), - 319: uint16(123), - 320: uint16(122), - 321: uint16(122), - 322: uint16(121), - 323: uint16(121), - 324: uint16(121), - 325: uint16(120), - 326: uint16(117), - 327: uint16(448), - 328: uint16(1045), - 329: uint16(550), - 330: uint16(1193), - 331: uint16(375), - 332: uint16(1193), - 333: uint16(1194), - 334: uint16(1193), - 335: uint16(254), - 336: uint16(1438), - 337: uint16(401), - 338: uint16(508), - 339: uint16(505), - 340: uint16(504), - 341: uint16(112), - 342: uint16(564), - 343: uint16(570), +var _yy_action = [2142]uint16{ + 0: uint16(576), + 1: uint16(128), + 2: uint16(125), + 3: uint16(232), + 4: uint16(1622), + 5: uint16(549), + 6: uint16(576), + 7: uint16(1290), + 8: uint16(1281), + 9: uint16(576), + 10: uint16(328), + 11: uint16(576), + 12: uint16(1300), + 13: uint16(212), + 14: uint16(576), + 15: uint16(128), + 16: uint16(125), + 17: uint16(232), + 18: uint16(578), + 19: uint16(412), + 20: uint16(578), + 21: uint16(391), + 22: uint16(1542), + 23: uint16(51), + 24: uint16(51), + 25: uint16(523), + 26: uint16(405), + 27: uint16(1293), + 28: uint16(529), + 29: uint16(51), + 30: uint16(51), + 31: uint16(983), + 32: uint16(51), + 33: uint16(51), + 34: uint16(81), + 35: uint16(81), + 36: uint16(1107), + 37: uint16(61), + 38: uint16(61), + 39: uint16(984), + 40: uint16(1107), + 41: uint16(1292), + 42: uint16(380), + 43: uint16(135), + 44: uint16(136), + 45: uint16(90), + 46: uint16(1228), + 47: uint16(1228), + 48: uint16(1063), + 49: uint16(1066), + 50: uint16(1053), + 51: uint16(1053), + 52: uint16(133), + 53: uint16(133), + 54: uint16(134), + 55: uint16(134), + 56: uint16(134), + 57: uint16(134), + 58: uint16(1577), + 59: uint16(412), + 60: uint16(287), + 61: uint16(287), + 62: uint16(7), + 63: uint16(287), + 64: uint16(287), + 65: uint16(422), + 66: uint16(1050), + 67: uint16(1050), + 68: uint16(1064), + 69: uint16(1067), + 70: uint16(289), + 71: uint16(556), + 72: uint16(492), + 73: uint16(573), + 74: uint16(524), + 75: uint16(561), + 76: uint16(573), + 77: uint16(497), + 78: uint16(561), + 79: uint16(482), + 80: uint16(530), + 81: uint16(262), + 82: uint16(229), + 83: uint16(135), + 84: uint16(136), + 85: uint16(90), + 86: uint16(1228), + 87: uint16(1228), + 88: uint16(1063), + 89: uint16(1066), + 90: uint16(1053), + 91: uint16(1053), + 92: uint16(133), + 93: uint16(133), + 94: uint16(134), + 95: uint16(134), + 96: uint16(134), + 97: uint16(134), + 98: uint16(128), + 99: uint16(125), + 100: uint16(232), + 101: uint16(1506), + 102: uint16(132), + 103: uint16(132), + 104: uint16(132), + 105: uint16(132), + 106: uint16(131), + 107: uint16(131), + 108: uint16(130), + 109: uint16(130), + 110: uint16(130), + 111: uint16(129), + 112: uint16(126), + 113: uint16(450), + 114: uint16(1204), + 115: uint16(1255), + 116: uint16(1), + 117: uint16(1), + 118: uint16(582), + 119: uint16(2), + 120: uint16(1259), + 121: uint16(1571), + 122: uint16(420), + 123: uint16(1582), + 124: uint16(379), + 125: uint16(320), + 126: uint16(1174), + 127: uint16(153), + 128: uint16(1174), + 129: uint16(1584), + 130: uint16(412), + 131: uint16(378), + 132: uint16(1582), + 133: uint16(543), + 134: uint16(1341), + 135: uint16(330), + 136: uint16(111), + 137: uint16(570), + 138: uint16(570), + 139: uint16(570), + 140: uint16(293), + 141: uint16(1054), + 142: uint16(132), + 143: uint16(132), + 144: uint16(132), + 145: uint16(132), + 146: uint16(131), + 147: uint16(131), + 148: uint16(130), + 149: uint16(130), + 150: uint16(130), + 151: uint16(129), + 152: uint16(126), + 153: uint16(450), + 154: uint16(135), + 155: uint16(136), + 156: uint16(90), + 157: uint16(1228), + 158: uint16(1228), + 159: uint16(1063), + 160: uint16(1066), + 161: uint16(1053), + 162: uint16(1053), + 163: uint16(133), + 164: uint16(133), + 165: uint16(134), + 166: uint16(134), + 167: uint16(134), + 168: uint16(134), + 169: uint16(287), + 170: uint16(287), + 171: uint16(1204), + 172: uint16(1205), + 173: uint16(1204), + 174: uint16(255), + 175: uint16(287), + 176: uint16(287), + 177: uint16(510), + 178: uint16(507), + 179: uint16(506), + 180: uint16(137), + 181: uint16(455), + 182: uint16(573), + 183: uint16(212), + 184: uint16(561), + 185: uint16(447), + 186: uint16(446), + 187: uint16(505), + 188: uint16(573), + 189: uint16(1616), + 190: uint16(561), + 191: uint16(134), + 192: uint16(134), + 193: uint16(134), + 194: uint16(134), + 195: uint16(127), + 196: uint16(400), + 197: uint16(243), + 198: uint16(132), + 199: uint16(132), + 200: uint16(132), + 201: uint16(132), + 202: uint16(131), + 203: uint16(131), + 204: uint16(130), + 205: uint16(130), + 206: uint16(130), + 207: uint16(129), + 208: uint16(126), + 209: uint16(450), + 210: uint16(282), + 211: uint16(471), + 212: uint16(345), + 213: uint16(132), + 214: uint16(132), + 215: uint16(132), + 216: uint16(132), + 217: uint16(131), + 218: uint16(131), + 219: uint16(130), + 220: uint16(130), + 221: uint16(130), + 222: uint16(129), + 223: uint16(126), + 224: uint16(450), + 225: uint16(574), + 226: uint16(155), + 227: uint16(936), + 228: uint16(936), + 229: uint16(454), + 230: uint16(227), + 231: uint16(521), + 232: uint16(1236), + 233: uint16(412), + 234: uint16(1236), + 235: uint16(134), + 236: uint16(134), + 237: uint16(134), + 238: uint16(134), + 239: uint16(132), + 240: uint16(132), + 241: uint16(132), + 242: uint16(132), + 243: uint16(131), + 244: uint16(131), + 245: uint16(130), + 246: uint16(130), + 247: uint16(130), + 248: uint16(129), + 249: uint16(126), + 250: uint16(450), + 251: uint16(130), + 252: uint16(130), + 253: uint16(130), + 254: uint16(129), + 255: uint16(126), + 256: uint16(450), + 257: uint16(135), + 258: uint16(136), + 259: uint16(90), + 260: uint16(1228), + 261: uint16(1228), + 262: uint16(1063), + 263: uint16(1066), + 264: uint16(1053), + 265: uint16(1053), + 266: uint16(133), + 267: uint16(133), + 268: uint16(134), + 269: uint16(134), + 270: uint16(134), + 271: uint16(134), + 272: uint16(128), + 273: uint16(125), + 274: uint16(232), + 275: uint16(450), + 276: uint16(576), + 277: uint16(412), + 278: uint16(397), + 279: uint16(1249), + 280: uint16(180), + 281: uint16(92), + 282: uint16(93), + 283: uint16(132), + 284: uint16(132), + 285: uint16(132), + 286: uint16(132), + 287: uint16(131), + 288: uint16(131), + 289: uint16(130), + 290: uint16(130), + 291: uint16(130), + 292: uint16(129), + 293: uint16(126), + 294: uint16(450), + 295: uint16(381), + 296: uint16(387), + 297: uint16(1204), + 298: uint16(383), + 299: uint16(81), + 300: uint16(81), + 301: uint16(135), + 302: uint16(136), + 303: uint16(90), + 304: uint16(1228), + 305: uint16(1228), + 306: uint16(1063), + 307: uint16(1066), + 308: uint16(1053), + 309: uint16(1053), + 310: uint16(133), + 311: uint16(133), + 312: uint16(134), + 313: uint16(134), + 314: uint16(134), + 315: uint16(134), + 316: uint16(132), + 317: uint16(132), + 318: uint16(132), + 319: uint16(132), + 320: uint16(131), + 321: uint16(131), + 322: uint16(130), + 323: uint16(130), + 324: uint16(130), + 325: uint16(129), + 326: uint16(126), + 327: uint16(450), + 328: uint16(131), + 329: uint16(131), + 330: uint16(130), + 331: uint16(130), + 332: uint16(130), + 333: uint16(129), + 334: uint16(126), + 335: uint16(450), + 336: uint16(556), + 337: uint16(1204), + 338: uint16(302), + 339: uint16(319), + 340: uint16(567), + 341: uint16(121), + 342: uint16(568), + 343: uint16(480), 344: uint16(4), - 345: uint16(929), - 346: uint16(929), - 347: uint16(435), - 348: uint16(503), - 349: uint16(342), - 350: uint16(464), - 351: uint16(330), - 352: uint16(362), - 353: uint16(396), - 354: uint16(1238), - 355: uint16(1193), - 356: uint16(1194), - 357: uint16(1193), - 358: uint16(567), - 359: uint16(572), - 360: uint16(123), - 361: uint16(123), - 362: uint16(123), - 363: uint16(123), - 364: uint16(122), - 365: uint16(122), - 366: uint16(121), - 367: uint16(121), - 368: uint16(121), - 369: uint16(120), - 370: uint16(117), - 371: uint16(448), - 372: uint16(286), - 373: uint16(286), - 374: uint16(371), - 375: uint16(1581), - 376: uint16(1607), - 377: uint16(445), - 378: uint16(444), - 379: uint16(155), - 380: uint16(411), - 381: uint16(449), - 382: uint16(72), - 383: uint16(72), - 384: uint16(1289), - 385: uint16(569), - 386: uint16(1222), - 387: uint16(1193), - 388: uint16(1194), - 389: uint16(1193), - 390: uint16(86), - 391: uint16(1224), - 392: uint16(273), - 393: uint16(561), - 394: uint16(547), - 395: uint16(520), - 396: uint16(520), - 397: uint16(572), - 398: uint16(99), - 399: uint16(1223), - 400: uint16(6), - 401: uint16(1281), - 402: uint16(476), - 403: uint16(143), - 404: uint16(126), - 405: uint16(127), - 406: uint16(81), - 407: uint16(1217), - 408: uint16(1217), - 409: uint16(1054), - 410: uint16(1057), - 411: uint16(1044), - 412: uint16(1044), - 413: uint16(124), - 414: uint16(124), - 415: uint16(125), - 416: uint16(125), - 417: uint16(125), - 418: uint16(125), - 419: uint16(554), - 420: uint16(13), - 421: uint16(13), - 422: uint16(1031), - 423: uint16(511), - 424: uint16(1225), - 425: uint16(1193), - 426: uint16(1225), - 427: uint16(553), - 428: uint16(110), - 429: uint16(110), - 430: uint16(224), - 431: uint16(572), - 432: uint16(1239), - 433: uint16(177), - 434: uint16(572), - 435: uint16(429), - 436: uint16(111), - 437: uint16(199), - 438: uint16(449), - 439: uint16(573), - 440: uint16(449), - 441: uint16(432), - 442: uint16(1555), - 443: uint16(1019), - 444: uint16(327), - 445: uint16(555), - 446: uint16(1193), - 447: uint16(272), - 448: uint16(289), - 449: uint16(370), - 450: uint16(514), - 451: uint16(365), - 452: uint16(513), - 453: uint16(259), - 454: uint16(72), - 455: uint16(72), - 456: uint16(547), - 457: uint16(72), - 458: uint16(72), - 459: uint16(361), - 460: uint16(318), - 461: uint16(563), - 462: uint16(1613), - 463: uint16(123), - 464: uint16(123), - 465: uint16(123), - 466: uint16(123), - 467: uint16(122), - 468: uint16(122), - 469: uint16(121), - 470: uint16(121), - 471: uint16(121), - 472: uint16(120), - 473: uint16(117), - 474: uint16(448), - 475: uint16(1019), - 476: uint16(1019), - 477: uint16(1021), - 478: uint16(1022), - 479: uint16(28), - 480: uint16(286), - 481: uint16(286), - 482: uint16(1193), - 483: uint16(1194), - 484: uint16(1193), - 485: uint16(1159), - 486: uint16(572), - 487: uint16(1612), - 488: uint16(411), - 489: uint16(904), - 490: uint16(192), - 491: uint16(554), - 492: uint16(358), - 493: uint16(569), - 494: uint16(554), - 495: uint16(940), - 496: uint16(537), - 497: uint16(521), - 498: uint16(1159), - 499: uint16(437), - 500: uint16(415), - 501: uint16(1159), - 502: uint16(556), - 503: uint16(1193), - 504: uint16(1194), - 505: uint16(1193), - 506: uint16(572), - 507: uint16(548), - 508: uint16(548), - 509: uint16(52), - 510: uint16(52), - 511: uint16(216), - 512: uint16(126), - 513: uint16(127), - 514: uint16(81), - 515: uint16(1217), - 516: uint16(1217), - 517: uint16(1054), - 518: uint16(1057), - 519: uint16(1044), - 520: uint16(1044), - 521: uint16(124), - 522: uint16(124), - 523: uint16(125), - 524: uint16(125), - 525: uint16(125), - 526: uint16(125), - 527: uint16(1193), - 528: uint16(478), - 529: uint16(136), - 530: uint16(136), - 531: uint16(411), - 532: uint16(286), - 533: uint16(286), - 534: uint16(1493), - 535: uint16(509), - 536: uint16(122), - 537: uint16(122), - 538: uint16(121), - 539: uint16(121), - 540: uint16(121), - 541: uint16(120), - 542: uint16(117), - 543: uint16(448), - 544: uint16(1010), - 545: uint16(569), - 546: uint16(522), - 547: uint16(219), - 548: uint16(545), - 549: uint16(545), - 550: uint16(318), - 551: uint16(563), - 552: uint16(143), - 553: uint16(6), - 554: uint16(536), - 555: uint16(126), - 556: uint16(127), - 557: uint16(81), - 558: uint16(1217), - 559: uint16(1217), - 560: uint16(1054), - 561: uint16(1057), - 562: uint16(1044), - 563: uint16(1044), - 564: uint16(124), - 565: uint16(124), - 566: uint16(125), - 567: uint16(125), - 568: uint16(125), - 569: uint16(125), - 570: uint16(1557), - 571: uint16(123), - 572: uint16(123), - 573: uint16(123), - 574: uint16(123), - 575: uint16(122), - 576: uint16(122), - 577: uint16(121), - 578: uint16(121), - 579: uint16(121), - 580: uint16(120), - 581: uint16(117), - 582: uint16(448), - 583: uint16(489), - 584: uint16(1193), - 585: uint16(1194), - 586: uint16(1193), - 587: uint16(486), - 588: uint16(283), - 589: uint16(1270), - 590: uint16(960), - 591: uint16(254), - 592: uint16(1193), - 593: uint16(375), - 594: uint16(508), - 595: uint16(505), - 596: uint16(504), - 597: uint16(1193), - 598: uint16(342), - 599: uint16(574), - 600: uint16(1193), - 601: uint16(574), - 602: uint16(411), - 603: uint16(294), - 604: uint16(503), - 605: uint16(960), - 606: uint16(879), - 607: uint16(193), - 608: uint16(484), - 609: uint16(318), - 610: uint16(563), - 611: uint16(386), - 612: uint16(292), - 613: uint16(382), - 614: uint16(123), - 615: uint16(123), - 616: uint16(123), - 617: uint16(123), - 618: uint16(122), - 619: uint16(122), - 620: uint16(121), - 621: uint16(121), - 622: uint16(121), - 623: uint16(120), - 624: uint16(117), - 625: uint16(448), - 626: uint16(126), - 627: uint16(127), - 628: uint16(81), - 629: uint16(1217), - 630: uint16(1217), - 631: uint16(1054), - 632: uint16(1057), - 633: uint16(1044), - 634: uint16(1044), - 635: uint16(124), - 636: uint16(124), - 637: uint16(125), - 638: uint16(125), - 639: uint16(125), - 640: uint16(125), - 641: uint16(411), - 642: uint16(396), - 643: uint16(1139), - 644: uint16(1193), - 645: uint16(872), - 646: uint16(101), - 647: uint16(286), - 648: uint16(286), - 649: uint16(1193), - 650: uint16(1194), - 651: uint16(1193), - 652: uint16(375), - 653: uint16(1096), - 654: uint16(1193), - 655: uint16(1194), - 656: uint16(1193), - 657: uint16(1193), - 658: uint16(1194), - 659: uint16(1193), - 660: uint16(569), - 661: uint16(459), - 662: uint16(33), - 663: uint16(375), - 664: uint16(235), - 665: uint16(126), - 666: uint16(127), - 667: uint16(81), - 668: uint16(1217), - 669: uint16(1217), - 670: uint16(1054), - 671: uint16(1057), - 672: uint16(1044), - 673: uint16(1044), - 674: uint16(124), - 675: uint16(124), - 676: uint16(125), - 677: uint16(125), - 678: uint16(125), - 679: uint16(125), - 680: uint16(1437), - 681: uint16(962), - 682: uint16(572), - 683: uint16(230), - 684: uint16(961), - 685: uint16(123), - 686: uint16(123), - 687: uint16(123), - 688: uint16(123), - 689: uint16(122), - 690: uint16(122), - 691: uint16(121), - 692: uint16(121), - 693: uint16(121), - 694: uint16(120), - 695: uint16(117), - 696: uint16(448), - 697: uint16(1159), - 698: uint16(230), - 699: uint16(1193), - 700: uint16(158), - 701: uint16(1193), - 702: uint16(1194), - 703: uint16(1193), - 704: uint16(1556), - 705: uint16(13), - 706: uint16(13), - 707: uint16(303), - 708: uint16(960), - 709: uint16(1233), - 710: uint16(1159), - 711: uint16(154), - 712: uint16(411), - 713: uint16(1159), - 714: uint16(375), - 715: uint16(1584), - 716: uint16(1177), - 717: uint16(5), - 718: uint16(371), - 719: uint16(1581), - 720: uint16(431), - 721: uint16(1239), - 722: uint16(3), - 723: uint16(960), - 724: uint16(123), - 725: uint16(123), - 726: uint16(123), - 727: uint16(123), - 728: uint16(122), - 729: uint16(122), - 730: uint16(121), - 731: uint16(121), - 732: uint16(121), - 733: uint16(120), - 734: uint16(117), - 735: uint16(448), - 736: uint16(126), - 737: uint16(127), - 738: uint16(81), - 739: uint16(1217), - 740: uint16(1217), - 741: uint16(1054), - 742: uint16(1057), - 743: uint16(1044), - 744: uint16(1044), - 745: uint16(124), - 746: uint16(124), - 747: uint16(125), - 748: uint16(125), - 749: uint16(125), - 750: uint16(125), - 751: uint16(411), - 752: uint16(210), - 753: uint16(571), - 754: uint16(1193), - 755: uint16(1032), - 756: uint16(1193), - 757: uint16(1194), - 758: uint16(1193), - 759: uint16(1193), - 760: uint16(390), - 761: uint16(855), - 762: uint16(156), - 763: uint16(1555), - 764: uint16(376), - 765: uint16(404), - 766: uint16(1101), - 767: uint16(1101), - 768: uint16(492), - 769: uint16(572), - 770: uint16(469), - 771: uint16(344), - 772: uint16(1322), - 773: uint16(1322), - 774: uint16(1555), - 775: uint16(126), - 776: uint16(127), - 777: uint16(81), - 778: uint16(1217), - 779: uint16(1217), - 780: uint16(1054), - 781: uint16(1057), - 782: uint16(1044), - 783: uint16(1044), - 784: uint16(124), - 785: uint16(124), - 786: uint16(125), - 787: uint16(125), - 788: uint16(125), - 789: uint16(125), - 790: uint16(130), - 791: uint16(572), - 792: uint16(13), - 793: uint16(13), - 794: uint16(532), - 795: uint16(123), - 796: uint16(123), - 797: uint16(123), - 798: uint16(123), - 799: uint16(122), - 800: uint16(122), - 801: uint16(121), - 802: uint16(121), - 803: uint16(121), - 804: uint16(120), - 805: uint16(117), - 806: uint16(448), - 807: uint16(304), - 808: uint16(572), - 809: uint16(457), - 810: uint16(229), - 811: uint16(1193), - 812: uint16(1194), - 813: uint16(1193), - 814: uint16(13), - 815: uint16(13), - 816: uint16(1193), - 817: uint16(1194), - 818: uint16(1193), - 819: uint16(1300), - 820: uint16(467), - 821: uint16(1270), - 822: uint16(411), - 823: uint16(1320), - 824: uint16(1320), - 825: uint16(1555), - 826: uint16(1015), - 827: uint16(457), - 828: uint16(456), - 829: uint16(436), - 830: uint16(301), - 831: uint16(72), - 832: uint16(72), - 833: uint16(1268), - 834: uint16(123), - 835: uint16(123), - 836: uint16(123), - 837: uint16(123), - 838: uint16(122), - 839: uint16(122), - 840: uint16(121), - 841: uint16(121), - 842: uint16(121), - 843: uint16(120), - 844: uint16(117), - 845: uint16(448), - 846: uint16(126), - 847: uint16(127), - 848: uint16(81), - 849: uint16(1217), - 850: uint16(1217), - 851: uint16(1054), - 852: uint16(1057), - 853: uint16(1044), - 854: uint16(1044), - 855: uint16(124), - 856: uint16(124), - 857: uint16(125), - 858: uint16(125), - 859: uint16(125), - 860: uint16(125), - 861: uint16(411), - 862: uint16(384), - 863: uint16(1076), - 864: uint16(1159), - 865: uint16(286), - 866: uint16(286), - 867: uint16(421), - 868: uint16(314), - 869: uint16(280), - 870: uint16(280), - 871: uint16(287), - 872: uint16(287), - 873: uint16(461), - 874: uint16(408), - 875: uint16(407), - 876: uint16(1539), - 877: uint16(1159), - 878: uint16(569), - 879: uint16(572), - 880: uint16(1159), - 881: uint16(1196), - 882: uint16(569), - 883: uint16(409), - 884: uint16(569), - 885: uint16(126), - 886: uint16(127), - 887: uint16(81), - 888: uint16(1217), - 889: uint16(1217), - 890: uint16(1054), - 891: uint16(1057), - 892: uint16(1044), - 893: uint16(1044), - 894: uint16(124), - 895: uint16(124), - 896: uint16(125), - 897: uint16(125), - 898: uint16(125), - 899: uint16(125), - 900: uint16(457), - 901: uint16(1485), - 902: uint16(13), - 903: uint16(13), - 904: uint16(1541), - 905: uint16(123), - 906: uint16(123), - 907: uint16(123), - 908: uint16(123), - 909: uint16(122), - 910: uint16(122), - 911: uint16(121), - 912: uint16(121), - 913: uint16(121), - 914: uint16(120), - 915: uint16(117), - 916: uint16(448), - 917: uint16(202), - 918: uint16(572), - 919: uint16(462), - 920: uint16(1587), - 921: uint16(578), - 922: uint16(2), - 923: uint16(1248), - 924: uint16(843), - 925: uint16(844), - 926: uint16(845), - 927: uint16(1563), - 928: uint16(319), - 929: uint16(409), - 930: uint16(147), - 931: uint16(6), - 932: uint16(411), - 933: uint16(257), - 934: uint16(256), - 935: uint16(255), - 936: uint16(208), - 937: uint16(1330), - 938: uint16(9), - 939: uint16(1196), - 940: uint16(264), - 941: uint16(72), - 942: uint16(72), - 943: uint16(1436), - 944: uint16(123), - 945: uint16(123), - 946: uint16(123), - 947: uint16(123), - 948: uint16(122), - 949: uint16(122), - 950: uint16(121), - 951: uint16(121), - 952: uint16(121), - 953: uint16(120), - 954: uint16(117), - 955: uint16(448), - 956: uint16(126), - 957: uint16(127), - 958: uint16(81), - 959: uint16(1217), - 960: uint16(1217), - 961: uint16(1054), - 962: uint16(1057), - 963: uint16(1044), - 964: uint16(1044), - 965: uint16(124), - 966: uint16(124), - 967: uint16(125), - 968: uint16(125), - 969: uint16(125), - 970: uint16(125), - 971: uint16(572), - 972: uint16(286), - 973: uint16(286), - 974: uint16(572), - 975: uint16(1213), - 976: uint16(411), - 977: uint16(577), - 978: uint16(315), - 979: uint16(1248), - 980: uint16(421), - 981: uint16(371), - 982: uint16(1581), - 983: uint16(356), - 984: uint16(319), - 985: uint16(569), - 986: uint16(147), - 987: uint16(495), - 988: uint16(529), - 989: uint16(1644), - 990: uint16(397), - 991: uint16(935), - 992: uint16(495), - 993: uint16(1330), - 994: uint16(71), - 995: uint16(71), - 996: uint16(934), - 997: uint16(72), - 998: uint16(72), - 999: uint16(242), - 1000: uint16(1328), - 1001: uint16(105), - 1002: uint16(81), - 1003: uint16(1217), - 1004: uint16(1217), - 1005: uint16(1054), - 1006: uint16(1057), - 1007: uint16(1044), - 1008: uint16(1044), - 1009: uint16(124), - 1010: uint16(124), - 1011: uint16(125), - 1012: uint16(125), - 1013: uint16(125), - 1014: uint16(125), - 1015: uint16(123), - 1016: uint16(123), - 1017: uint16(123), - 1018: uint16(123), - 1019: uint16(122), - 1020: uint16(122), - 1021: uint16(121), - 1022: uint16(121), - 1023: uint16(121), - 1024: uint16(120), - 1025: uint16(117), - 1026: uint16(448), - 1027: uint16(1117), - 1028: uint16(286), - 1029: uint16(286), - 1030: uint16(1422), - 1031: uint16(452), - 1032: uint16(1528), - 1033: uint16(1213), - 1034: uint16(443), - 1035: uint16(286), - 1036: uint16(286), - 1037: uint16(1492), - 1038: uint16(1355), - 1039: uint16(313), - 1040: uint16(478), - 1041: uint16(569), - 1042: uint16(1118), - 1043: uint16(454), - 1044: uint16(351), - 1045: uint16(495), - 1046: uint16(354), - 1047: uint16(1266), - 1048: uint16(569), - 1049: uint16(209), - 1050: uint16(572), - 1051: uint16(418), - 1052: uint16(179), - 1053: uint16(572), - 1054: uint16(1031), - 1055: uint16(242), - 1056: uint16(385), - 1057: uint16(1119), - 1058: uint16(523), - 1059: uint16(123), - 1060: uint16(123), - 1061: uint16(123), - 1062: uint16(123), - 1063: uint16(122), - 1064: uint16(122), - 1065: uint16(121), - 1066: uint16(121), - 1067: uint16(121), - 1068: uint16(120), - 1069: uint16(117), - 1070: uint16(448), - 1071: uint16(1020), - 1072: uint16(108), - 1073: uint16(72), - 1074: uint16(72), - 1075: uint16(1019), - 1076: uint16(13), - 1077: uint16(13), - 1078: uint16(915), - 1079: uint16(572), - 1080: uint16(1498), - 1081: uint16(572), - 1082: uint16(286), - 1083: uint16(286), - 1084: uint16(98), - 1085: uint16(530), - 1086: uint16(1537), - 1087: uint16(452), - 1088: uint16(916), - 1089: uint16(1334), - 1090: uint16(1329), - 1091: uint16(203), - 1092: uint16(411), - 1093: uint16(286), - 1094: uint16(286), - 1095: uint16(569), - 1096: uint16(152), - 1097: uint16(211), - 1098: uint16(1498), - 1099: uint16(1500), - 1100: uint16(426), - 1101: uint16(569), - 1102: uint16(56), - 1103: uint16(56), - 1104: uint16(57), - 1105: uint16(57), - 1106: uint16(569), - 1107: uint16(1019), - 1108: uint16(1019), - 1109: uint16(1021), - 1110: uint16(447), - 1111: uint16(572), - 1112: uint16(411), - 1113: uint16(531), - 1114: uint16(12), - 1115: uint16(297), - 1116: uint16(126), - 1117: uint16(127), - 1118: uint16(81), - 1119: uint16(1217), - 1120: uint16(1217), - 1121: uint16(1054), - 1122: uint16(1057), - 1123: uint16(1044), - 1124: uint16(1044), - 1125: uint16(124), - 1126: uint16(124), - 1127: uint16(125), - 1128: uint16(125), - 1129: uint16(125), - 1130: uint16(125), - 1131: uint16(572), - 1132: uint16(411), - 1133: uint16(867), - 1134: uint16(15), - 1135: uint16(15), - 1136: uint16(126), - 1137: uint16(127), - 1138: uint16(81), - 1139: uint16(1217), - 1140: uint16(1217), - 1141: uint16(1054), - 1142: uint16(1057), - 1143: uint16(1044), - 1144: uint16(1044), - 1145: uint16(124), - 1146: uint16(124), - 1147: uint16(125), - 1148: uint16(125), - 1149: uint16(125), - 1150: uint16(125), - 1151: uint16(373), - 1152: uint16(529), - 1153: uint16(264), - 1154: uint16(44), - 1155: uint16(44), - 1156: uint16(126), - 1157: uint16(115), - 1158: uint16(81), - 1159: uint16(1217), - 1160: uint16(1217), - 1161: uint16(1054), - 1162: uint16(1057), - 1163: uint16(1044), - 1164: uint16(1044), - 1165: uint16(124), - 1166: uint16(124), - 1167: uint16(125), - 1168: uint16(125), - 1169: uint16(125), - 1170: uint16(125), - 1171: uint16(1498), - 1172: uint16(478), - 1173: uint16(1271), - 1174: uint16(417), - 1175: uint16(123), - 1176: uint16(123), - 1177: uint16(123), - 1178: uint16(123), - 1179: uint16(122), - 1180: uint16(122), - 1181: uint16(121), - 1182: uint16(121), - 1183: uint16(121), - 1184: uint16(120), - 1185: uint16(117), - 1186: uint16(448), - 1187: uint16(205), - 1188: uint16(1213), - 1189: uint16(495), - 1190: uint16(430), - 1191: uint16(867), - 1192: uint16(468), - 1193: uint16(322), - 1194: uint16(495), - 1195: uint16(123), - 1196: uint16(123), - 1197: uint16(123), - 1198: uint16(123), - 1199: uint16(122), - 1200: uint16(122), - 1201: uint16(121), - 1202: uint16(121), - 1203: uint16(121), - 1204: uint16(120), - 1205: uint16(117), - 1206: uint16(448), - 1207: uint16(572), - 1208: uint16(557), - 1209: uint16(1140), - 1210: uint16(1642), - 1211: uint16(1422), - 1212: uint16(1642), - 1213: uint16(543), - 1214: uint16(572), - 1215: uint16(123), - 1216: uint16(123), - 1217: uint16(123), - 1218: uint16(123), - 1219: uint16(122), - 1220: uint16(122), - 1221: uint16(121), - 1222: uint16(121), - 1223: uint16(121), - 1224: uint16(120), - 1225: uint16(117), - 1226: uint16(448), - 1227: uint16(572), - 1228: uint16(1422), - 1229: uint16(572), - 1230: uint16(13), - 1231: uint16(13), - 1232: uint16(542), - 1233: uint16(323), - 1234: uint16(1325), - 1235: uint16(411), - 1236: uint16(334), - 1237: uint16(58), - 1238: uint16(58), - 1239: uint16(349), - 1240: uint16(1422), - 1241: uint16(1170), - 1242: uint16(326), - 1243: uint16(286), - 1244: uint16(286), - 1245: uint16(549), - 1246: uint16(1213), - 1247: uint16(300), - 1248: uint16(895), - 1249: uint16(530), - 1250: uint16(45), - 1251: uint16(45), - 1252: uint16(59), - 1253: uint16(59), - 1254: uint16(1140), - 1255: uint16(1643), - 1256: uint16(569), - 1257: uint16(1643), - 1258: uint16(565), - 1259: uint16(417), - 1260: uint16(127), - 1261: uint16(81), - 1262: uint16(1217), - 1263: uint16(1217), - 1264: uint16(1054), - 1265: uint16(1057), - 1266: uint16(1044), - 1267: uint16(1044), - 1268: uint16(124), - 1269: uint16(124), - 1270: uint16(125), - 1271: uint16(125), - 1272: uint16(125), - 1273: uint16(125), - 1274: uint16(1367), - 1275: uint16(373), - 1276: uint16(500), - 1277: uint16(290), - 1278: uint16(1193), - 1279: uint16(512), - 1280: uint16(1366), - 1281: uint16(427), - 1282: uint16(394), - 1283: uint16(394), - 1284: uint16(393), - 1285: uint16(275), - 1286: uint16(391), - 1287: uint16(896), - 1288: uint16(1138), - 1289: uint16(852), - 1290: uint16(478), - 1291: uint16(258), - 1292: uint16(1422), - 1293: uint16(1170), - 1294: uint16(463), - 1295: uint16(1159), - 1296: uint16(12), - 1297: uint16(331), - 1298: uint16(428), - 1299: uint16(333), - 1300: uint16(1117), - 1301: uint16(460), - 1302: uint16(236), - 1303: uint16(258), - 1304: uint16(325), - 1305: uint16(460), - 1306: uint16(544), - 1307: uint16(1544), - 1308: uint16(1159), - 1309: uint16(1098), - 1310: uint16(491), - 1311: uint16(1159), - 1312: uint16(324), - 1313: uint16(1098), - 1314: uint16(440), - 1315: uint16(1118), - 1316: uint16(335), - 1317: uint16(516), - 1318: uint16(123), - 1319: uint16(123), - 1320: uint16(123), - 1321: uint16(123), - 1322: uint16(122), - 1323: uint16(122), - 1324: uint16(121), - 1325: uint16(121), - 1326: uint16(121), - 1327: uint16(120), - 1328: uint16(117), - 1329: uint16(448), - 1330: uint16(1119), - 1331: uint16(318), - 1332: uint16(563), - 1333: uint16(1138), - 1334: uint16(572), - 1335: uint16(1193), - 1336: uint16(1194), - 1337: uint16(1193), - 1338: uint16(112), - 1339: uint16(564), - 1340: uint16(201), + 345: uint16(555), + 346: uint16(1149), + 347: uint16(1657), + 348: uint16(1628), + 349: uint16(1657), + 350: uint16(45), + 351: uint16(128), + 352: uint16(125), + 353: uint16(232), + 354: uint16(1204), + 355: uint16(1205), + 356: uint16(1204), + 357: uint16(1250), + 358: uint16(571), + 359: uint16(1169), + 360: uint16(132), + 361: uint16(132), + 362: uint16(132), + 363: uint16(132), + 364: uint16(131), + 365: uint16(131), + 366: uint16(130), + 367: uint16(130), + 368: uint16(130), + 369: uint16(129), + 370: uint16(126), + 371: uint16(450), + 372: uint16(1169), + 373: uint16(287), + 374: uint16(287), + 375: uint16(1169), + 376: uint16(1019), + 377: uint16(576), + 378: uint16(422), + 379: uint16(1019), + 380: uint16(412), + 381: uint16(451), + 382: uint16(1602), + 383: uint16(582), + 384: uint16(2), + 385: uint16(1259), + 386: uint16(573), + 387: uint16(44), + 388: uint16(561), + 389: uint16(95), + 390: uint16(320), + 391: uint16(110), + 392: uint16(153), + 393: uint16(565), + 394: uint16(1204), + 395: uint16(1205), + 396: uint16(1204), + 397: uint16(522), + 398: uint16(522), + 399: uint16(1341), + 400: uint16(81), + 401: uint16(81), + 402: uint16(7), + 403: uint16(44), + 404: uint16(135), + 405: uint16(136), + 406: uint16(90), + 407: uint16(1228), + 408: uint16(1228), + 409: uint16(1063), + 410: uint16(1066), + 411: uint16(1053), + 412: uint16(1053), + 413: uint16(133), + 414: uint16(133), + 415: uint16(134), + 416: uint16(134), + 417: uint16(134), + 418: uint16(134), + 419: uint16(295), + 420: uint16(1149), + 421: uint16(1658), + 422: uint16(1040), + 423: uint16(1658), + 424: uint16(1204), + 425: uint16(1147), + 426: uint16(319), + 427: uint16(567), + 428: uint16(119), + 429: uint16(119), + 430: uint16(343), + 431: uint16(466), + 432: uint16(331), + 433: uint16(343), + 434: uint16(287), + 435: uint16(287), + 436: uint16(120), + 437: uint16(556), + 438: uint16(451), + 439: uint16(577), + 440: uint16(451), + 441: uint16(1169), + 442: uint16(1169), + 443: uint16(1028), + 444: uint16(319), + 445: uint16(567), + 446: uint16(438), + 447: uint16(573), + 448: uint16(210), + 449: uint16(561), + 450: uint16(1339), + 451: uint16(1451), + 452: uint16(546), + 453: uint16(531), + 454: uint16(1169), + 455: uint16(1169), + 456: uint16(1598), + 457: uint16(1169), + 458: uint16(1169), + 459: uint16(416), + 460: uint16(319), + 461: uint16(567), + 462: uint16(243), + 463: uint16(132), + 464: uint16(132), + 465: uint16(132), + 466: uint16(132), + 467: uint16(131), + 468: uint16(131), + 469: uint16(130), + 470: uint16(130), + 471: uint16(130), + 472: uint16(129), + 473: uint16(126), + 474: uint16(450), + 475: uint16(1028), + 476: uint16(1028), + 477: uint16(1030), + 478: uint16(1031), + 479: uint16(35), + 480: uint16(44), + 481: uint16(1204), + 482: uint16(1205), + 483: uint16(1204), + 484: uint16(472), + 485: uint16(287), + 486: uint16(287), + 487: uint16(1328), + 488: uint16(412), + 489: uint16(1307), + 490: uint16(372), + 491: uint16(1595), + 492: uint16(359), + 493: uint16(225), + 494: uint16(454), + 495: uint16(1204), + 496: uint16(195), + 497: uint16(1328), + 498: uint16(573), + 499: uint16(1147), + 500: uint16(561), + 501: uint16(1333), + 502: uint16(1333), + 503: uint16(274), + 504: uint16(576), + 505: uint16(1188), + 506: uint16(576), + 507: uint16(340), + 508: uint16(46), + 509: uint16(196), + 510: uint16(537), + 511: uint16(217), + 512: uint16(135), + 513: uint16(136), + 514: uint16(90), + 515: uint16(1228), + 516: uint16(1228), + 517: uint16(1063), + 518: uint16(1066), + 519: uint16(1053), + 520: uint16(1053), + 521: uint16(133), + 522: uint16(133), + 523: uint16(134), + 524: uint16(134), + 525: uint16(134), + 526: uint16(134), + 527: uint16(19), + 528: uint16(19), + 529: uint16(19), + 530: uint16(19), + 531: uint16(412), + 532: uint16(581), + 533: uint16(1204), + 534: uint16(1259), + 535: uint16(511), + 536: uint16(1204), + 537: uint16(319), + 538: uint16(567), + 539: uint16(320), + 540: uint16(944), + 541: uint16(153), + 542: uint16(425), + 543: uint16(491), + 544: uint16(430), + 545: uint16(943), + 546: uint16(1204), + 547: uint16(488), + 548: uint16(1341), + 549: uint16(1450), + 550: uint16(532), + 551: uint16(1277), + 552: uint16(1204), + 553: uint16(1205), + 554: uint16(1204), + 555: uint16(135), + 556: uint16(136), + 557: uint16(90), + 558: uint16(1228), + 559: uint16(1228), + 560: uint16(1063), + 561: uint16(1066), + 562: uint16(1053), + 563: uint16(1053), + 564: uint16(133), + 565: uint16(133), + 566: uint16(134), + 567: uint16(134), + 568: uint16(134), + 569: uint16(134), + 570: uint16(575), + 571: uint16(132), + 572: uint16(132), + 573: uint16(132), + 574: uint16(132), + 575: uint16(131), + 576: uint16(131), + 577: uint16(130), + 578: uint16(130), + 579: uint16(130), + 580: uint16(129), + 581: uint16(126), + 582: uint16(450), + 583: uint16(287), + 584: uint16(287), + 585: uint16(528), + 586: uint16(287), + 587: uint16(287), + 588: uint16(372), + 589: uint16(1595), + 590: uint16(1204), + 591: uint16(1205), + 592: uint16(1204), + 593: uint16(1204), + 594: uint16(1205), + 595: uint16(1204), + 596: uint16(573), + 597: uint16(486), + 598: uint16(561), + 599: uint16(573), + 600: uint16(889), + 601: uint16(561), + 602: uint16(412), + 603: uint16(1204), + 604: uint16(1205), + 605: uint16(1204), + 606: uint16(886), + 607: uint16(40), + 608: uint16(22), + 609: uint16(22), + 610: uint16(220), + 611: uint16(243), + 612: uint16(525), + 613: uint16(1449), + 614: uint16(132), + 615: uint16(132), + 616: uint16(132), + 617: uint16(132), + 618: uint16(131), + 619: uint16(131), + 620: uint16(130), + 621: uint16(130), + 622: uint16(130), + 623: uint16(129), + 624: uint16(126), + 625: uint16(450), + 626: uint16(135), + 627: uint16(136), + 628: uint16(90), + 629: uint16(1228), + 630: uint16(1228), + 631: uint16(1063), + 632: uint16(1066), + 633: uint16(1053), + 634: uint16(1053), + 635: uint16(133), + 636: uint16(133), + 637: uint16(134), + 638: uint16(134), + 639: uint16(134), + 640: uint16(134), + 641: uint16(412), + 642: uint16(180), + 643: uint16(454), + 644: uint16(1204), + 645: uint16(879), + 646: uint16(255), + 647: uint16(287), + 648: uint16(287), + 649: uint16(510), + 650: uint16(507), + 651: uint16(506), + 652: uint16(372), + 653: uint16(1595), + 654: uint16(1568), + 655: uint16(1331), + 656: uint16(1331), + 657: uint16(576), + 658: uint16(889), + 659: uint16(505), + 660: uint16(573), + 661: uint16(44), + 662: uint16(561), + 663: uint16(559), + 664: uint16(1207), + 665: uint16(135), + 666: uint16(136), + 667: uint16(90), + 668: uint16(1228), + 669: uint16(1228), + 670: uint16(1063), + 671: uint16(1066), + 672: uint16(1053), + 673: uint16(1053), + 674: uint16(133), + 675: uint16(133), + 676: uint16(134), + 677: uint16(134), + 678: uint16(134), + 679: uint16(134), + 680: uint16(81), + 681: uint16(81), + 682: uint16(422), + 683: uint16(576), + 684: uint16(377), + 685: uint16(132), + 686: uint16(132), + 687: uint16(132), + 688: uint16(132), + 689: uint16(131), + 690: uint16(131), + 691: uint16(130), + 692: uint16(130), + 693: uint16(130), + 694: uint16(129), + 695: uint16(126), + 696: uint16(450), + 697: uint16(297), + 698: uint16(287), + 699: uint16(287), + 700: uint16(460), + 701: uint16(1204), + 702: uint16(1205), + 703: uint16(1204), + 704: uint16(1204), + 705: uint16(534), + 706: uint16(19), + 707: uint16(19), + 708: uint16(448), + 709: uint16(448), + 710: uint16(448), + 711: uint16(573), + 712: uint16(412), + 713: uint16(561), + 714: uint16(230), + 715: uint16(436), + 716: uint16(1187), + 717: uint16(535), + 718: uint16(319), + 719: uint16(567), + 720: uint16(363), + 721: uint16(432), + 722: uint16(1207), + 723: uint16(1435), + 724: uint16(132), + 725: uint16(132), + 726: uint16(132), + 727: uint16(132), + 728: uint16(131), + 729: uint16(131), + 730: uint16(130), + 731: uint16(130), + 732: uint16(130), + 733: uint16(129), + 734: uint16(126), + 735: uint16(450), + 736: uint16(135), + 737: uint16(136), + 738: uint16(90), + 739: uint16(1228), + 740: uint16(1228), + 741: uint16(1063), + 742: uint16(1066), + 743: uint16(1053), + 744: uint16(1053), + 745: uint16(133), + 746: uint16(133), + 747: uint16(134), + 748: uint16(134), + 749: uint16(134), + 750: uint16(134), + 751: uint16(412), + 752: uint16(211), + 753: uint16(949), + 754: uint16(1169), + 755: uint16(1041), + 756: uint16(1110), + 757: uint16(1110), + 758: uint16(494), + 759: uint16(547), + 760: uint16(547), + 761: uint16(1204), + 762: uint16(1205), + 763: uint16(1204), + 764: uint16(7), + 765: uint16(539), + 766: uint16(1570), + 767: uint16(1169), + 768: uint16(376), + 769: uint16(576), + 770: uint16(1169), + 771: uint16(5), + 772: uint16(1204), + 773: uint16(486), + 774: uint16(3), + 775: uint16(135), + 776: uint16(136), + 777: uint16(90), + 778: uint16(1228), + 779: uint16(1228), + 780: uint16(1063), + 781: uint16(1066), + 782: uint16(1053), + 783: uint16(1053), + 784: uint16(133), + 785: uint16(133), + 786: uint16(134), + 787: uint16(134), + 788: uint16(134), + 789: uint16(134), + 790: uint16(576), + 791: uint16(513), + 792: uint16(19), + 793: uint16(19), + 794: uint16(427), + 795: uint16(132), + 796: uint16(132), + 797: uint16(132), + 798: uint16(132), + 799: uint16(131), + 800: uint16(131), + 801: uint16(130), + 802: uint16(130), + 803: uint16(130), + 804: uint16(129), + 805: uint16(126), + 806: uint16(450), + 807: uint16(305), + 808: uint16(1204), + 809: uint16(433), + 810: uint16(225), + 811: uint16(1204), + 812: uint16(385), + 813: uint16(19), + 814: uint16(19), + 815: uint16(273), + 816: uint16(290), + 817: uint16(371), + 818: uint16(516), + 819: uint16(366), + 820: uint16(515), + 821: uint16(260), + 822: uint16(412), + 823: uint16(538), + 824: uint16(1568), + 825: uint16(549), + 826: uint16(1024), + 827: uint16(362), + 828: uint16(437), + 829: uint16(1204), + 830: uint16(1205), + 831: uint16(1204), + 832: uint16(902), + 833: uint16(1552), + 834: uint16(132), + 835: uint16(132), + 836: uint16(132), + 837: uint16(132), + 838: uint16(131), + 839: uint16(131), + 840: uint16(130), + 841: uint16(130), + 842: uint16(130), + 843: uint16(129), + 844: uint16(126), + 845: uint16(450), + 846: uint16(135), + 847: uint16(136), + 848: uint16(90), + 849: uint16(1228), + 850: uint16(1228), + 851: uint16(1063), + 852: uint16(1066), + 853: uint16(1053), + 854: uint16(1053), + 855: uint16(133), + 856: uint16(133), + 857: uint16(134), + 858: uint16(134), + 859: uint16(134), + 860: uint16(134), + 861: uint16(412), + 862: uint16(1435), + 863: uint16(514), + 864: uint16(1281), + 865: uint16(1204), + 866: uint16(1205), + 867: uint16(1204), + 868: uint16(1204), + 869: uint16(1205), + 870: uint16(1204), + 871: uint16(903), + 872: uint16(48), + 873: uint16(342), + 874: uint16(1568), + 875: uint16(1568), + 876: uint16(1279), + 877: uint16(1627), + 878: uint16(1568), + 879: uint16(911), + 880: uint16(576), + 881: uint16(129), + 882: uint16(126), + 883: uint16(450), + 884: uint16(110), + 885: uint16(135), + 886: uint16(136), + 887: uint16(90), + 888: uint16(1228), + 889: uint16(1228), + 890: uint16(1063), + 891: uint16(1066), + 892: uint16(1053), + 893: uint16(1053), + 894: uint16(133), + 895: uint16(133), + 896: uint16(134), + 897: uint16(134), + 898: uint16(134), + 899: uint16(134), + 900: uint16(265), + 901: uint16(576), + 902: uint16(459), + 903: uint16(19), + 904: uint16(19), + 905: uint16(132), + 906: uint16(132), + 907: uint16(132), + 908: uint16(132), + 909: uint16(131), + 910: uint16(131), + 911: uint16(130), + 912: uint16(130), + 913: uint16(130), + 914: uint16(129), + 915: uint16(126), + 916: uint16(450), + 917: uint16(1345), + 918: uint16(204), + 919: uint16(576), + 920: uint16(459), + 921: uint16(458), + 922: uint16(50), + 923: uint16(47), + 924: uint16(19), + 925: uint16(19), + 926: uint16(49), + 927: uint16(434), + 928: uint16(1105), + 929: uint16(573), + 930: uint16(497), + 931: uint16(561), + 932: uint16(412), + 933: uint16(428), + 934: uint16(108), + 935: uint16(1224), + 936: uint16(1569), + 937: uint16(1554), + 938: uint16(376), + 939: uint16(205), + 940: uint16(550), + 941: uint16(550), + 942: uint16(81), + 943: uint16(81), + 944: uint16(132), + 945: uint16(132), + 946: uint16(132), + 947: uint16(132), + 948: uint16(131), + 949: uint16(131), + 950: uint16(130), + 951: uint16(130), + 952: uint16(130), + 953: uint16(129), + 954: uint16(126), + 955: uint16(450), + 956: uint16(135), + 957: uint16(136), + 958: uint16(90), + 959: uint16(1228), + 960: uint16(1228), + 961: uint16(1063), + 962: uint16(1066), + 963: uint16(1053), + 964: uint16(1053), + 965: uint16(133), + 966: uint16(133), + 967: uint16(134), + 968: uint16(134), + 969: uint16(134), + 970: uint16(134), + 971: uint16(480), + 972: uint16(576), + 973: uint16(1204), + 974: uint16(576), + 975: uint16(1541), + 976: uint16(412), + 977: uint16(1435), + 978: uint16(969), + 979: uint16(315), + 980: uint16(1659), + 981: uint16(398), + 982: uint16(284), + 983: uint16(497), + 984: uint16(969), + 985: uint16(893), + 986: uint16(1569), + 987: uint16(1569), + 988: uint16(376), + 989: uint16(376), + 990: uint16(1569), + 991: uint16(461), + 992: uint16(376), + 993: uint16(1224), + 994: uint16(459), + 995: uint16(80), + 996: uint16(80), + 997: uint16(81), + 998: uint16(81), + 999: uint16(497), + 1000: uint16(374), + 1001: uint16(114), + 1002: uint16(90), + 1003: uint16(1228), + 1004: uint16(1228), + 1005: uint16(1063), + 1006: uint16(1066), + 1007: uint16(1053), + 1008: uint16(1053), + 1009: uint16(133), + 1010: uint16(133), + 1011: uint16(134), + 1012: uint16(134), + 1013: uint16(134), + 1014: uint16(134), + 1015: uint16(132), + 1016: uint16(132), + 1017: uint16(132), + 1018: uint16(132), + 1019: uint16(131), + 1020: uint16(131), + 1021: uint16(130), + 1022: uint16(130), + 1023: uint16(130), + 1024: uint16(129), + 1025: uint16(126), + 1026: uint16(450), + 1027: uint16(1204), + 1028: uint16(1505), + 1029: uint16(576), + 1030: uint16(1204), + 1031: uint16(1205), + 1032: uint16(1204), + 1033: uint16(1366), + 1034: uint16(316), + 1035: uint16(486), + 1036: uint16(281), + 1037: uint16(281), + 1038: uint16(497), + 1039: uint16(431), + 1040: uint16(557), + 1041: uint16(288), + 1042: uint16(288), + 1043: uint16(402), + 1044: uint16(1340), + 1045: uint16(471), + 1046: uint16(345), + 1047: uint16(298), + 1048: uint16(429), + 1049: uint16(573), + 1050: uint16(576), + 1051: uint16(561), + 1052: uint16(81), + 1053: uint16(81), + 1054: uint16(573), + 1055: uint16(374), + 1056: uint16(561), + 1057: uint16(971), + 1058: uint16(386), + 1059: uint16(132), + 1060: uint16(132), + 1061: uint16(132), + 1062: uint16(132), + 1063: uint16(131), + 1064: uint16(131), + 1065: uint16(130), + 1066: uint16(130), + 1067: uint16(130), + 1068: uint16(129), + 1069: uint16(126), + 1070: uint16(450), + 1071: uint16(231), + 1072: uint16(117), + 1073: uint16(81), + 1074: uint16(81), + 1075: uint16(287), + 1076: uint16(287), + 1077: uint16(231), + 1078: uint16(287), + 1079: uint16(287), + 1080: uint16(576), + 1081: uint16(1511), + 1082: uint16(576), + 1083: uint16(1336), + 1084: uint16(1204), + 1085: uint16(1205), + 1086: uint16(1204), + 1087: uint16(139), + 1088: uint16(573), + 1089: uint16(556), + 1090: uint16(561), + 1091: uint16(573), + 1092: uint16(412), + 1093: uint16(561), + 1094: uint16(441), + 1095: uint16(456), + 1096: uint16(969), + 1097: uint16(213), + 1098: uint16(558), + 1099: uint16(1511), + 1100: uint16(1513), + 1101: uint16(1550), + 1102: uint16(969), + 1103: uint16(143), + 1104: uint16(143), + 1105: uint16(145), + 1106: uint16(145), + 1107: uint16(1368), + 1108: uint16(314), + 1109: uint16(478), + 1110: uint16(444), + 1111: uint16(970), + 1112: uint16(412), + 1113: uint16(850), + 1114: uint16(851), + 1115: uint16(852), + 1116: uint16(135), + 1117: uint16(136), + 1118: uint16(90), + 1119: uint16(1228), + 1120: uint16(1228), + 1121: uint16(1063), + 1122: uint16(1066), + 1123: uint16(1053), + 1124: uint16(1053), + 1125: uint16(133), + 1126: uint16(133), + 1127: uint16(134), + 1128: uint16(134), + 1129: uint16(134), + 1130: uint16(134), + 1131: uint16(357), + 1132: uint16(412), + 1133: uint16(397), + 1134: uint16(1148), + 1135: uint16(304), + 1136: uint16(135), + 1137: uint16(136), + 1138: uint16(90), + 1139: uint16(1228), + 1140: uint16(1228), + 1141: uint16(1063), + 1142: uint16(1066), + 1143: uint16(1053), + 1144: uint16(1053), + 1145: uint16(133), + 1146: uint16(133), + 1147: uint16(134), + 1148: uint16(134), + 1149: uint16(134), + 1150: uint16(134), + 1151: uint16(1575), + 1152: uint16(323), + 1153: uint16(6), + 1154: uint16(862), + 1155: uint16(7), + 1156: uint16(135), + 1157: uint16(124), + 1158: uint16(90), + 1159: uint16(1228), + 1160: uint16(1228), + 1161: uint16(1063), + 1162: uint16(1066), + 1163: uint16(1053), + 1164: uint16(1053), + 1165: uint16(133), + 1166: uint16(133), + 1167: uint16(134), + 1168: uint16(134), + 1169: uint16(134), + 1170: uint16(134), + 1171: uint16(409), + 1172: uint16(408), + 1173: uint16(1511), + 1174: uint16(212), + 1175: uint16(132), + 1176: uint16(132), + 1177: uint16(132), + 1178: uint16(132), + 1179: uint16(131), + 1180: uint16(131), + 1181: uint16(130), + 1182: uint16(130), + 1183: uint16(130), + 1184: uint16(129), + 1185: uint16(126), + 1186: uint16(450), + 1187: uint16(411), + 1188: uint16(118), + 1189: uint16(1204), + 1190: uint16(116), + 1191: uint16(10), + 1192: uint16(352), + 1193: uint16(265), + 1194: uint16(355), + 1195: uint16(132), + 1196: uint16(132), + 1197: uint16(132), + 1198: uint16(132), + 1199: uint16(131), + 1200: uint16(131), + 1201: uint16(130), + 1202: uint16(130), + 1203: uint16(130), + 1204: uint16(129), + 1205: uint16(126), + 1206: uint16(450), + 1207: uint16(576), + 1208: uint16(324), + 1209: uint16(306), + 1210: uint16(576), + 1211: uint16(306), + 1212: uint16(1250), + 1213: uint16(469), + 1214: uint16(158), + 1215: uint16(132), + 1216: uint16(132), + 1217: uint16(132), + 1218: uint16(132), + 1219: uint16(131), + 1220: uint16(131), + 1221: uint16(130), + 1222: uint16(130), + 1223: uint16(130), + 1224: uint16(129), + 1225: uint16(126), + 1226: uint16(450), + 1227: uint16(207), + 1228: uint16(1224), + 1229: uint16(1126), + 1230: uint16(65), + 1231: uint16(65), + 1232: uint16(470), + 1233: uint16(66), + 1234: uint16(66), + 1235: uint16(412), + 1236: uint16(447), + 1237: uint16(446), + 1238: uint16(882), + 1239: uint16(531), + 1240: uint16(335), + 1241: uint16(258), + 1242: uint16(257), + 1243: uint16(256), + 1244: uint16(1127), + 1245: uint16(1233), + 1246: uint16(1204), + 1247: uint16(1205), + 1248: uint16(1204), + 1249: uint16(327), + 1250: uint16(1235), + 1251: uint16(874), + 1252: uint16(159), + 1253: uint16(576), + 1254: uint16(16), + 1255: uint16(480), + 1256: uint16(1085), + 1257: uint16(1040), + 1258: uint16(1234), + 1259: uint16(1128), + 1260: uint16(136), + 1261: uint16(90), + 1262: uint16(1228), + 1263: uint16(1228), + 1264: uint16(1063), + 1265: uint16(1066), + 1266: uint16(1053), + 1267: uint16(1053), + 1268: uint16(133), + 1269: uint16(133), + 1270: uint16(134), + 1271: uint16(134), + 1272: uint16(134), + 1273: uint16(134), + 1274: uint16(1029), + 1275: uint16(576), + 1276: uint16(81), + 1277: uint16(81), + 1278: uint16(1028), + 1279: uint16(1040), + 1280: uint16(922), + 1281: uint16(576), + 1282: uint16(463), + 1283: uint16(1236), + 1284: uint16(576), + 1285: uint16(1236), + 1286: uint16(1224), + 1287: uint16(502), + 1288: uint16(107), + 1289: uint16(1435), + 1290: uint16(923), + 1291: uint16(6), + 1292: uint16(576), + 1293: uint16(410), + 1294: uint16(1498), + 1295: uint16(882), + 1296: uint16(1029), + 1297: uint16(480), + 1298: uint16(21), + 1299: uint16(21), + 1300: uint16(1028), + 1301: uint16(332), + 1302: uint16(1380), + 1303: uint16(334), + 1304: uint16(53), + 1305: uint16(53), + 1306: uint16(497), + 1307: uint16(81), + 1308: uint16(81), + 1309: uint16(874), + 1310: uint16(1028), + 1311: uint16(1028), + 1312: uint16(1030), + 1313: uint16(445), + 1314: uint16(259), + 1315: uint16(19), + 1316: uint16(19), + 1317: uint16(533), + 1318: uint16(132), + 1319: uint16(132), + 1320: uint16(132), + 1321: uint16(132), + 1322: uint16(131), + 1323: uint16(131), + 1324: uint16(130), + 1325: uint16(130), + 1326: uint16(130), + 1327: uint16(129), + 1328: uint16(126), + 1329: uint16(450), + 1330: uint16(551), + 1331: uint16(301), + 1332: uint16(1028), + 1333: uint16(1028), + 1334: uint16(1030), + 1335: uint16(107), + 1336: uint16(532), + 1337: uint16(545), + 1338: uint16(121), + 1339: uint16(568), + 1340: uint16(1188), 1341: uint16(4), - 1342: uint16(238), - 1343: uint16(433), - 1344: uint16(935), - 1345: uint16(490), - 1346: uint16(285), - 1347: uint16(228), - 1348: uint16(1517), - 1349: uint16(934), - 1350: uint16(170), - 1351: uint16(560), - 1352: uint16(572), - 1353: uint16(142), - 1354: uint16(1516), - 1355: uint16(567), - 1356: uint16(572), - 1357: uint16(60), - 1358: uint16(60), - 1359: uint16(572), - 1360: uint16(416), - 1361: uint16(572), - 1362: uint16(441), - 1363: uint16(572), - 1364: uint16(535), - 1365: uint16(302), - 1366: uint16(875), - 1367: uint16(8), - 1368: uint16(487), - 1369: uint16(572), - 1370: uint16(237), - 1371: uint16(572), - 1372: uint16(416), - 1373: uint16(572), - 1374: uint16(485), - 1375: uint16(61), - 1376: uint16(61), - 1377: uint16(572), - 1378: uint16(449), - 1379: uint16(62), - 1380: uint16(62), - 1381: uint16(332), - 1382: uint16(63), - 1383: uint16(63), - 1384: uint16(46), - 1385: uint16(46), - 1386: uint16(47), - 1387: uint16(47), - 1388: uint16(361), - 1389: uint16(572), - 1390: uint16(561), - 1391: uint16(572), - 1392: uint16(48), - 1393: uint16(48), - 1394: uint16(50), - 1395: uint16(50), - 1396: uint16(51), - 1397: uint16(51), - 1398: uint16(572), - 1399: uint16(295), - 1400: uint16(64), - 1401: uint16(64), - 1402: uint16(482), - 1403: uint16(295), - 1404: uint16(539), - 1405: uint16(412), - 1406: uint16(471), - 1407: uint16(1031), - 1408: uint16(572), - 1409: uint16(538), - 1410: uint16(318), - 1411: uint16(563), - 1412: uint16(65), - 1413: uint16(65), - 1414: uint16(66), - 1415: uint16(66), - 1416: uint16(409), - 1417: uint16(475), - 1418: uint16(572), - 1419: uint16(1031), - 1420: uint16(572), - 1421: uint16(14), - 1422: uint16(14), - 1423: uint16(875), - 1424: uint16(1020), - 1425: uint16(110), - 1426: uint16(110), - 1427: uint16(409), - 1428: uint16(1019), - 1429: uint16(572), - 1430: uint16(474), - 1431: uint16(67), - 1432: uint16(67), - 1433: uint16(111), - 1434: uint16(455), - 1435: uint16(449), - 1436: uint16(573), - 1437: uint16(449), - 1438: uint16(98), - 1439: uint16(317), - 1440: uint16(1019), - 1441: uint16(132), - 1442: uint16(132), - 1443: uint16(133), - 1444: uint16(133), - 1445: uint16(572), - 1446: uint16(1561), - 1447: uint16(572), - 1448: uint16(974), - 1449: uint16(409), - 1450: uint16(6), - 1451: uint16(1562), - 1452: uint16(68), - 1453: uint16(68), - 1454: uint16(1560), - 1455: uint16(6), - 1456: uint16(975), - 1457: uint16(572), - 1458: uint16(6), - 1459: uint16(1559), - 1460: uint16(1019), - 1461: uint16(1019), - 1462: uint16(1021), - 1463: uint16(6), - 1464: uint16(346), - 1465: uint16(218), - 1466: uint16(101), - 1467: uint16(531), - 1468: uint16(53), - 1469: uint16(53), - 1470: uint16(69), - 1471: uint16(69), - 1472: uint16(1019), - 1473: uint16(1019), - 1474: uint16(1021), - 1475: uint16(1022), - 1476: uint16(28), - 1477: uint16(1586), - 1478: uint16(1181), - 1479: uint16(451), - 1480: uint16(70), - 1481: uint16(70), - 1482: uint16(290), - 1483: uint16(87), - 1484: uint16(215), - 1485: uint16(31), - 1486: uint16(1363), - 1487: uint16(394), - 1488: uint16(394), - 1489: uint16(393), - 1490: uint16(275), - 1491: uint16(391), - 1492: uint16(350), - 1493: uint16(109), - 1494: uint16(852), - 1495: uint16(107), - 1496: uint16(572), - 1497: uint16(112), - 1498: uint16(564), - 1499: uint16(483), - 1500: uint16(4), - 1501: uint16(1212), - 1502: uint16(572), - 1503: uint16(239), - 1504: uint16(153), - 1505: uint16(572), - 1506: uint16(39), - 1507: uint16(236), - 1508: uint16(1299), - 1509: uint16(325), - 1510: uint16(112), - 1511: uint16(564), - 1512: uint16(1298), - 1513: uint16(4), - 1514: uint16(567), - 1515: uint16(572), - 1516: uint16(32), - 1517: uint16(324), - 1518: uint16(572), - 1519: uint16(54), - 1520: uint16(54), - 1521: uint16(572), - 1522: uint16(1135), - 1523: uint16(353), - 1524: uint16(398), - 1525: uint16(165), - 1526: uint16(165), - 1527: uint16(567), - 1528: uint16(166), - 1529: uint16(166), - 1530: uint16(572), - 1531: uint16(291), - 1532: uint16(355), - 1533: uint16(572), - 1534: uint16(17), - 1535: uint16(357), - 1536: uint16(572), - 1537: uint16(449), - 1538: uint16(77), - 1539: uint16(77), - 1540: uint16(1313), - 1541: uint16(55), - 1542: uint16(55), - 1543: uint16(1297), - 1544: uint16(73), - 1545: uint16(73), - 1546: uint16(572), - 1547: uint16(238), - 1548: uint16(470), - 1549: uint16(561), - 1550: uint16(449), - 1551: uint16(472), - 1552: uint16(364), - 1553: uint16(135), - 1554: uint16(135), - 1555: uint16(170), - 1556: uint16(74), - 1557: uint16(74), - 1558: uint16(142), - 1559: uint16(163), - 1560: uint16(163), - 1561: uint16(374), - 1562: uint16(561), - 1563: uint16(539), - 1564: uint16(572), - 1565: uint16(321), - 1566: uint16(572), - 1567: uint16(886), - 1568: uint16(540), - 1569: uint16(137), - 1570: uint16(137), - 1571: uint16(339), - 1572: uint16(1353), - 1573: uint16(422), - 1574: uint16(298), - 1575: uint16(237), - 1576: uint16(539), - 1577: uint16(572), - 1578: uint16(1031), - 1579: uint16(572), - 1580: uint16(340), - 1581: uint16(538), - 1582: uint16(101), - 1583: uint16(369), - 1584: uint16(110), - 1585: uint16(110), - 1586: uint16(162), - 1587: uint16(131), - 1588: uint16(131), - 1589: uint16(164), - 1590: uint16(164), - 1591: uint16(1031), - 1592: uint16(111), - 1593: uint16(368), - 1594: uint16(449), - 1595: uint16(573), - 1596: uint16(449), + 1342: uint16(1126), + 1343: uint16(1576), + 1344: uint16(449), + 1345: uint16(576), + 1346: uint16(462), + 1347: uint16(7), + 1348: uint16(1282), + 1349: uint16(418), + 1350: uint16(462), + 1351: uint16(350), + 1352: uint16(1435), + 1353: uint16(576), + 1354: uint16(518), + 1355: uint16(571), + 1356: uint16(544), + 1357: uint16(1127), + 1358: uint16(121), + 1359: uint16(568), + 1360: uint16(442), + 1361: uint16(4), + 1362: uint16(1188), + 1363: uint16(464), + 1364: uint16(533), + 1365: uint16(1180), + 1366: uint16(1223), + 1367: uint16(9), + 1368: uint16(67), + 1369: uint16(67), + 1370: uint16(487), + 1371: uint16(576), + 1372: uint16(1128), + 1373: uint16(303), + 1374: uint16(410), + 1375: uint16(571), + 1376: uint16(54), + 1377: uint16(54), + 1378: uint16(451), + 1379: uint16(576), + 1380: uint16(123), + 1381: uint16(944), + 1382: uint16(576), + 1383: uint16(417), + 1384: uint16(576), + 1385: uint16(333), + 1386: uint16(943), + 1387: uint16(1379), + 1388: uint16(576), + 1389: uint16(236), + 1390: uint16(565), + 1391: uint16(576), + 1392: uint16(1574), + 1393: uint16(564), + 1394: uint16(68), + 1395: uint16(68), + 1396: uint16(7), + 1397: uint16(576), + 1398: uint16(451), + 1399: uint16(362), + 1400: uint16(419), + 1401: uint16(182), + 1402: uint16(69), + 1403: uint16(69), + 1404: uint16(541), + 1405: uint16(70), + 1406: uint16(70), + 1407: uint16(71), + 1408: uint16(71), + 1409: uint16(540), + 1410: uint16(565), + 1411: uint16(72), + 1412: uint16(72), + 1413: uint16(484), + 1414: uint16(55), + 1415: uint16(55), + 1416: uint16(473), + 1417: uint16(1180), + 1418: uint16(296), + 1419: uint16(1040), + 1420: uint16(56), + 1421: uint16(56), + 1422: uint16(296), + 1423: uint16(493), + 1424: uint16(541), + 1425: uint16(119), + 1426: uint16(119), + 1427: uint16(410), + 1428: uint16(1573), + 1429: uint16(542), + 1430: uint16(569), + 1431: uint16(418), + 1432: uint16(7), + 1433: uint16(120), + 1434: uint16(1244), + 1435: uint16(451), + 1436: uint16(577), + 1437: uint16(451), + 1438: uint16(465), + 1439: uint16(1040), + 1440: uint16(1028), + 1441: uint16(576), + 1442: uint16(1557), + 1443: uint16(552), + 1444: uint16(476), + 1445: uint16(119), + 1446: uint16(119), + 1447: uint16(527), + 1448: uint16(259), + 1449: uint16(121), + 1450: uint16(568), + 1451: uint16(240), + 1452: uint16(4), + 1453: uint16(120), + 1454: uint16(576), + 1455: uint16(451), + 1456: uint16(577), + 1457: uint16(451), + 1458: uint16(576), + 1459: uint16(477), + 1460: uint16(1028), + 1461: uint16(576), + 1462: uint16(156), + 1463: uint16(576), + 1464: uint16(57), + 1465: uint16(57), + 1466: uint16(571), + 1467: uint16(576), + 1468: uint16(286), + 1469: uint16(229), + 1470: uint16(410), + 1471: uint16(336), + 1472: uint16(1028), + 1473: uint16(1028), + 1474: uint16(1030), + 1475: uint16(1031), + 1476: uint16(35), + 1477: uint16(59), + 1478: uint16(59), + 1479: uint16(219), + 1480: uint16(983), + 1481: uint16(60), + 1482: uint16(60), + 1483: uint16(220), + 1484: uint16(73), + 1485: uint16(73), + 1486: uint16(74), + 1487: uint16(74), + 1488: uint16(984), + 1489: uint16(451), + 1490: uint16(75), + 1491: uint16(75), + 1492: uint16(1028), + 1493: uint16(1028), + 1494: uint16(1030), + 1495: uint16(1031), + 1496: uint16(35), + 1497: uint16(96), + 1498: uint16(216), + 1499: uint16(291), + 1500: uint16(552), + 1501: uint16(565), + 1502: uint16(1188), + 1503: uint16(318), + 1504: uint16(395), + 1505: uint16(395), + 1506: uint16(394), + 1507: uint16(276), + 1508: uint16(392), + 1509: uint16(576), + 1510: uint16(485), + 1511: uint16(859), + 1512: uint16(474), + 1513: uint16(1311), + 1514: uint16(410), + 1515: uint16(541), + 1516: uint16(576), + 1517: uint16(417), + 1518: uint16(1530), + 1519: uint16(1144), + 1520: uint16(540), + 1521: uint16(399), + 1522: uint16(1188), + 1523: uint16(292), + 1524: uint16(237), + 1525: uint16(1153), + 1526: uint16(326), + 1527: uint16(38), + 1528: uint16(23), + 1529: uint16(576), + 1530: uint16(1040), + 1531: uint16(576), + 1532: uint16(20), + 1533: uint16(20), + 1534: uint16(325), + 1535: uint16(299), + 1536: uint16(119), + 1537: uint16(119), + 1538: uint16(164), + 1539: uint16(76), + 1540: uint16(76), + 1541: uint16(1529), + 1542: uint16(121), + 1543: uint16(568), + 1544: uint16(120), + 1545: uint16(4), + 1546: uint16(451), + 1547: uint16(577), + 1548: uint16(451), + 1549: uint16(203), + 1550: uint16(576), + 1551: uint16(1028), + 1552: uint16(141), + 1553: uint16(141), + 1554: uint16(142), + 1555: uint16(142), + 1556: uint16(576), + 1557: uint16(322), + 1558: uint16(39), + 1559: uint16(571), + 1560: uint16(341), + 1561: uint16(1021), + 1562: uint16(110), + 1563: uint16(264), + 1564: uint16(239), + 1565: uint16(901), + 1566: uint16(900), + 1567: uint16(423), + 1568: uint16(242), + 1569: uint16(908), + 1570: uint16(909), + 1571: uint16(370), + 1572: uint16(173), + 1573: uint16(77), + 1574: uint16(77), + 1575: uint16(43), + 1576: uint16(479), + 1577: uint16(1310), + 1578: uint16(264), + 1579: uint16(62), + 1580: uint16(62), + 1581: uint16(369), + 1582: uint16(451), + 1583: uint16(1028), + 1584: uint16(1028), + 1585: uint16(1030), + 1586: uint16(1031), + 1587: uint16(35), + 1588: uint16(1601), + 1589: uint16(1192), + 1590: uint16(453), + 1591: uint16(1092), + 1592: uint16(238), + 1593: uint16(291), + 1594: uint16(565), + 1595: uint16(163), + 1596: uint16(1309), 1597: uint16(110), - 1598: uint16(110), - 1599: uint16(1019), - 1600: uint16(157), - 1601: uint16(157), - 1602: uint16(141), - 1603: uint16(141), - 1604: uint16(572), - 1605: uint16(111), - 1606: uint16(572), - 1607: uint16(449), - 1608: uint16(573), - 1609: uint16(449), - 1610: uint16(412), - 1611: uint16(288), - 1612: uint16(1019), - 1613: uint16(572), - 1614: uint16(882), - 1615: uint16(318), - 1616: uint16(563), - 1617: uint16(572), - 1618: uint16(219), - 1619: uint16(572), - 1620: uint16(241), - 1621: uint16(1012), - 1622: uint16(477), - 1623: uint16(263), - 1624: uint16(263), - 1625: uint16(894), - 1626: uint16(893), - 1627: uint16(140), - 1628: uint16(140), - 1629: uint16(138), - 1630: uint16(138), - 1631: uint16(1019), - 1632: uint16(1019), - 1633: uint16(1021), - 1634: uint16(1022), - 1635: uint16(28), - 1636: uint16(139), - 1637: uint16(139), - 1638: uint16(525), - 1639: uint16(455), - 1640: uint16(76), - 1641: uint16(76), - 1642: uint16(78), - 1643: uint16(78), - 1644: uint16(1019), - 1645: uint16(1019), - 1646: uint16(1021), - 1647: uint16(1022), - 1648: uint16(28), - 1649: uint16(1181), - 1650: uint16(451), - 1651: uint16(572), - 1652: uint16(1083), - 1653: uint16(290), - 1654: uint16(112), - 1655: uint16(564), - 1656: uint16(1575), - 1657: uint16(4), - 1658: uint16(394), - 1659: uint16(394), - 1660: uint16(393), - 1661: uint16(275), - 1662: uint16(391), - 1663: uint16(572), - 1664: uint16(1023), - 1665: uint16(852), - 1666: uint16(572), - 1667: uint16(479), - 1668: uint16(345), - 1669: uint16(263), - 1670: uint16(101), - 1671: uint16(567), - 1672: uint16(882), - 1673: uint16(1376), - 1674: uint16(75), - 1675: uint16(75), - 1676: uint16(1421), - 1677: uint16(501), - 1678: uint16(236), - 1679: uint16(260), - 1680: uint16(325), - 1681: uint16(112), - 1682: uint16(564), - 1683: uint16(359), - 1684: uint16(4), - 1685: uint16(101), - 1686: uint16(43), - 1687: uint16(43), - 1688: uint16(324), - 1689: uint16(49), - 1690: uint16(49), - 1691: uint16(901), - 1692: uint16(902), - 1693: uint16(161), - 1694: uint16(449), - 1695: uint16(101), - 1696: uint16(977), - 1697: uint16(978), - 1698: uint16(567), - 1699: uint16(1079), - 1700: uint16(1349), - 1701: uint16(260), - 1702: uint16(965), - 1703: uint16(932), - 1704: uint16(263), - 1705: uint16(114), - 1706: uint16(561), - 1707: uint16(1095), - 1708: uint16(517), - 1709: uint16(1095), - 1710: uint16(1083), - 1711: uint16(1094), - 1712: uint16(865), - 1713: uint16(1094), - 1714: uint16(151), - 1715: uint16(933), - 1716: uint16(1144), - 1717: uint16(114), - 1718: uint16(238), - 1719: uint16(1361), - 1720: uint16(558), - 1721: uint16(449), - 1722: uint16(1023), - 1723: uint16(559), - 1724: uint16(1426), - 1725: uint16(1278), - 1726: uint16(170), - 1727: uint16(1269), - 1728: uint16(1257), - 1729: uint16(142), - 1730: uint16(1601), - 1731: uint16(1256), - 1732: uint16(1258), - 1733: uint16(561), - 1734: uint16(1594), - 1735: uint16(1031), - 1736: uint16(496), - 1737: uint16(278), - 1738: uint16(213), - 1739: uint16(1346), - 1740: uint16(310), - 1741: uint16(110), - 1742: uint16(110), - 1743: uint16(939), - 1744: uint16(311), - 1745: uint16(312), - 1746: uint16(237), - 1747: uint16(11), - 1748: uint16(234), - 1749: uint16(111), - 1750: uint16(221), - 1751: uint16(449), - 1752: uint16(573), - 1753: uint16(449), - 1754: uint16(293), - 1755: uint16(395), - 1756: uint16(1019), - 1757: uint16(1408), - 1758: uint16(337), - 1759: uint16(1403), - 1760: uint16(1396), - 1761: uint16(338), - 1762: uint16(1031), - 1763: uint16(299), - 1764: uint16(343), - 1765: uint16(1413), - 1766: uint16(1412), - 1767: uint16(481), - 1768: uint16(110), - 1769: uint16(110), - 1770: uint16(506), - 1771: uint16(402), - 1772: uint16(225), - 1773: uint16(1296), - 1774: uint16(206), - 1775: uint16(367), - 1776: uint16(111), - 1777: uint16(1358), - 1778: uint16(449), - 1779: uint16(573), - 1780: uint16(449), - 1781: uint16(412), - 1782: uint16(1359), - 1783: uint16(1019), - 1784: uint16(1489), - 1785: uint16(1488), - 1786: uint16(318), - 1787: uint16(563), - 1788: uint16(1019), - 1789: uint16(1019), - 1790: uint16(1021), - 1791: uint16(1022), - 1792: uint16(28), - 1793: uint16(562), - 1794: uint16(207), - 1795: uint16(220), - 1796: uint16(80), - 1797: uint16(564), - 1798: uint16(389), - 1799: uint16(4), - 1800: uint16(1597), - 1801: uint16(1357), - 1802: uint16(552), - 1803: uint16(1356), - 1804: uint16(1233), - 1805: uint16(181), - 1806: uint16(267), - 1807: uint16(232), - 1808: uint16(1536), - 1809: uint16(1534), - 1810: uint16(455), - 1811: uint16(1230), - 1812: uint16(420), - 1813: uint16(567), - 1814: uint16(82), - 1815: uint16(1019), - 1816: uint16(1019), - 1817: uint16(1021), - 1818: uint16(1022), - 1819: uint16(28), - 1820: uint16(86), - 1821: uint16(217), - 1822: uint16(85), - 1823: uint16(1494), - 1824: uint16(190), - 1825: uint16(175), - 1826: uint16(183), - 1827: uint16(465), - 1828: uint16(185), - 1829: uint16(466), - 1830: uint16(36), - 1831: uint16(1409), - 1832: uint16(186), - 1833: uint16(187), - 1834: uint16(188), - 1835: uint16(499), - 1836: uint16(449), - 1837: uint16(244), - 1838: uint16(37), - 1839: uint16(99), - 1840: uint16(400), - 1841: uint16(1415), - 1842: uint16(1414), - 1843: uint16(488), - 1844: uint16(1417), - 1845: uint16(194), - 1846: uint16(473), - 1847: uint16(403), - 1848: uint16(561), - 1849: uint16(1483), - 1850: uint16(248), - 1851: uint16(92), - 1852: uint16(1505), - 1853: uint16(494), - 1854: uint16(198), - 1855: uint16(279), - 1856: uint16(112), - 1857: uint16(564), - 1858: uint16(250), - 1859: uint16(4), - 1860: uint16(348), - 1861: uint16(497), - 1862: uint16(405), - 1863: uint16(352), - 1864: uint16(1259), - 1865: uint16(251), - 1866: uint16(252), - 1867: uint16(515), - 1868: uint16(1316), - 1869: uint16(434), - 1870: uint16(1315), - 1871: uint16(1314), - 1872: uint16(94), - 1873: uint16(567), - 1874: uint16(1307), - 1875: uint16(886), - 1876: uint16(1306), - 1877: uint16(1031), - 1878: uint16(226), - 1879: uint16(406), - 1880: uint16(1611), - 1881: uint16(1610), - 1882: uint16(438), - 1883: uint16(110), - 1884: uint16(110), - 1885: uint16(1580), - 1886: uint16(1286), - 1887: uint16(524), - 1888: uint16(439), - 1889: uint16(308), - 1890: uint16(266), - 1891: uint16(111), - 1892: uint16(1285), - 1893: uint16(449), - 1894: uint16(573), - 1895: uint16(449), - 1896: uint16(449), - 1897: uint16(309), - 1898: uint16(1019), - 1899: uint16(366), - 1900: uint16(1284), - 1901: uint16(1609), - 1902: uint16(265), - 1903: uint16(1566), - 1904: uint16(1565), - 1905: uint16(442), - 1906: uint16(372), - 1907: uint16(1381), - 1908: uint16(561), - 1909: uint16(129), - 1910: uint16(550), - 1911: uint16(1380), - 1912: uint16(10), - 1913: uint16(1470), - 1914: uint16(383), - 1915: uint16(106), - 1916: uint16(316), - 1917: uint16(551), - 1918: uint16(100), - 1919: uint16(35), - 1920: uint16(534), - 1921: uint16(575), - 1922: uint16(212), - 1923: uint16(1339), - 1924: uint16(381), - 1925: uint16(387), - 1926: uint16(1187), - 1927: uint16(1338), - 1928: uint16(274), - 1929: uint16(276), - 1930: uint16(1019), - 1931: uint16(1019), - 1932: uint16(1021), - 1933: uint16(1022), - 1934: uint16(28), - 1935: uint16(277), - 1936: uint16(413), - 1937: uint16(1031), - 1938: uint16(576), - 1939: uint16(1254), - 1940: uint16(388), - 1941: uint16(1521), - 1942: uint16(1249), - 1943: uint16(110), - 1944: uint16(110), - 1945: uint16(167), - 1946: uint16(1522), - 1947: uint16(168), - 1948: uint16(148), - 1949: uint16(1520), - 1950: uint16(1519), - 1951: uint16(111), - 1952: uint16(306), - 1953: uint16(449), - 1954: uint16(573), - 1955: uint16(449), - 1956: uint16(222), - 1957: uint16(223), - 1958: uint16(1019), - 1959: uint16(839), - 1960: uint16(169), - 1961: uint16(79), - 1962: uint16(450), - 1963: uint16(214), - 1964: uint16(414), - 1965: uint16(233), - 1966: uint16(320), - 1967: uint16(145), - 1968: uint16(1093), - 1969: uint16(1091), - 1970: uint16(328), - 1971: uint16(182), - 1972: uint16(171), - 1973: uint16(1212), - 1974: uint16(918), - 1975: uint16(184), - 1976: uint16(240), - 1977: uint16(336), - 1978: uint16(243), - 1979: uint16(1107), - 1980: uint16(189), - 1981: uint16(172), - 1982: uint16(173), - 1983: uint16(423), - 1984: uint16(425), - 1985: uint16(88), - 1986: uint16(180), - 1987: uint16(191), - 1988: uint16(89), - 1989: uint16(90), - 1990: uint16(1019), - 1991: uint16(1019), - 1992: uint16(1021), - 1993: uint16(1022), - 1994: uint16(28), - 1995: uint16(91), - 1996: uint16(174), - 1997: uint16(1110), - 1998: uint16(245), - 1999: uint16(1106), - 2000: uint16(246), - 2001: uint16(159), - 2002: uint16(18), - 2003: uint16(247), - 2004: uint16(347), - 2005: uint16(1099), - 2006: uint16(263), - 2007: uint16(195), - 2008: uint16(1227), - 2009: uint16(493), - 2010: uint16(249), - 2011: uint16(196), - 2012: uint16(38), - 2013: uint16(854), - 2014: uint16(498), - 2015: uint16(368), - 2016: uint16(253), - 2017: uint16(360), - 2018: uint16(897), - 2019: uint16(197), - 2020: uint16(502), - 2021: uint16(93), - 2022: uint16(19), - 2023: uint16(20), - 2024: uint16(507), - 2025: uint16(884), - 2026: uint16(363), - 2027: uint16(510), - 2028: uint16(95), - 2029: uint16(307), - 2030: uint16(160), - 2031: uint16(96), - 2032: uint16(518), - 2033: uint16(97), - 2034: uint16(1175), - 2035: uint16(1060), - 2036: uint16(1146), - 2037: uint16(40), - 2038: uint16(21), - 2039: uint16(227), - 2040: uint16(176), - 2041: uint16(1145), - 2042: uint16(282), - 2043: uint16(284), - 2044: uint16(969), - 2045: uint16(200), - 2046: uint16(963), - 2047: uint16(114), - 2048: uint16(262), - 2049: uint16(1165), - 2050: uint16(22), - 2051: uint16(23), - 2052: uint16(24), - 2053: uint16(1161), - 2054: uint16(1169), - 2055: uint16(25), - 2056: uint16(1163), - 2057: uint16(1150), - 2058: uint16(34), - 2059: uint16(26), - 2060: uint16(1168), - 2061: uint16(546), - 2062: uint16(27), - 2063: uint16(204), - 2064: uint16(101), - 2065: uint16(103), - 2066: uint16(104), - 2067: uint16(1074), - 2068: uint16(7), - 2069: uint16(1061), - 2070: uint16(1059), - 2071: uint16(1063), - 2072: uint16(1116), - 2073: uint16(1064), - 2074: uint16(1115), - 2075: uint16(268), - 2076: uint16(269), - 2077: uint16(29), - 2078: uint16(41), - 2079: uint16(270), - 2080: uint16(1024), - 2081: uint16(866), - 2082: uint16(113), - 2083: uint16(30), - 2084: uint16(568), - 2085: uint16(392), - 2086: uint16(1183), - 2087: uint16(144), - 2088: uint16(178), - 2089: uint16(1182), - 2090: uint16(271), - 2091: uint16(928), - 2092: uint16(1245), - 2093: uint16(1245), - 2094: uint16(1245), - 2095: uint16(1245), - 2096: uint16(1245), - 2097: uint16(1245), - 2098: uint16(1245), - 2099: uint16(1602), -} -var _yy_lookahead = [2285]uint16{ - 0: uint16(193), - 1: uint16(193), - 2: uint16(193), - 3: uint16(274), - 4: uint16(275), - 5: uint16(276), - 6: uint16(193), - 7: uint16(274), - 8: uint16(275), - 9: uint16(276), - 10: uint16(193), - 11: uint16(223), - 12: uint16(219), - 13: uint16(225), - 14: uint16(206), - 15: uint16(210), - 16: uint16(211), - 17: uint16(212), - 18: uint16(193), + 1598: uint16(395), + 1599: uint16(395), + 1600: uint16(394), + 1601: uint16(276), + 1602: uint16(392), + 1603: uint16(986), + 1604: uint16(987), + 1605: uint16(859), + 1606: uint16(481), + 1607: uint16(346), + 1608: uint16(264), + 1609: uint16(110), + 1610: uint16(1032), + 1611: uint16(489), + 1612: uint16(576), + 1613: uint16(1188), + 1614: uint16(503), + 1615: uint16(1088), + 1616: uint16(261), + 1617: uint16(261), + 1618: uint16(237), + 1619: uint16(576), + 1620: uint16(326), + 1621: uint16(121), + 1622: uint16(568), + 1623: uint16(1040), + 1624: uint16(4), + 1625: uint16(347), + 1626: uint16(1376), + 1627: uint16(413), + 1628: uint16(325), + 1629: uint16(119), + 1630: uint16(119), + 1631: uint16(948), + 1632: uint16(319), + 1633: uint16(567), + 1634: uint16(351), + 1635: uint16(78), + 1636: uint16(78), + 1637: uint16(120), + 1638: uint16(571), + 1639: uint16(451), + 1640: uint16(577), + 1641: uint16(451), + 1642: uint16(79), + 1643: uint16(79), + 1644: uint16(1028), + 1645: uint16(354), + 1646: uint16(356), + 1647: uint16(576), + 1648: uint16(360), + 1649: uint16(1092), + 1650: uint16(110), + 1651: uint16(576), + 1652: uint16(974), + 1653: uint16(942), + 1654: uint16(264), + 1655: uint16(123), + 1656: uint16(457), + 1657: uint16(358), + 1658: uint16(239), + 1659: uint16(576), + 1660: uint16(519), + 1661: uint16(451), + 1662: uint16(939), + 1663: uint16(1104), + 1664: uint16(123), + 1665: uint16(1104), + 1666: uint16(173), + 1667: uint16(576), + 1668: uint16(1032), + 1669: uint16(43), + 1670: uint16(63), + 1671: uint16(63), + 1672: uint16(1324), + 1673: uint16(565), + 1674: uint16(168), + 1675: uint16(168), + 1676: uint16(1028), + 1677: uint16(1028), + 1678: uint16(1030), + 1679: uint16(1031), + 1680: uint16(35), + 1681: uint16(576), + 1682: uint16(169), + 1683: uint16(169), + 1684: uint16(1308), + 1685: uint16(872), + 1686: uint16(238), + 1687: uint16(157), + 1688: uint16(1589), + 1689: uint16(576), + 1690: uint16(86), + 1691: uint16(86), + 1692: uint16(365), + 1693: uint16(89), + 1694: uint16(568), + 1695: uint16(375), + 1696: uint16(4), + 1697: uint16(1103), + 1698: uint16(941), + 1699: uint16(1103), + 1700: uint16(123), + 1701: uint16(576), + 1702: uint16(1040), + 1703: uint16(1389), + 1704: uint16(64), + 1705: uint16(64), + 1706: uint16(1188), + 1707: uint16(1434), + 1708: uint16(119), + 1709: uint16(119), + 1710: uint16(571), + 1711: uint16(576), + 1712: uint16(82), + 1713: uint16(82), + 1714: uint16(563), + 1715: uint16(576), + 1716: uint16(120), + 1717: uint16(165), + 1718: uint16(451), + 1719: uint16(577), + 1720: uint16(451), + 1721: uint16(413), + 1722: uint16(1362), + 1723: uint16(1028), + 1724: uint16(144), + 1725: uint16(144), + 1726: uint16(319), + 1727: uint16(567), + 1728: uint16(576), + 1729: uint16(1374), + 1730: uint16(562), + 1731: uint16(498), + 1732: uint16(279), + 1733: uint16(451), + 1734: uint16(83), + 1735: uint16(83), + 1736: uint16(1439), + 1737: uint16(576), + 1738: uint16(166), + 1739: uint16(166), + 1740: uint16(576), + 1741: uint16(1289), + 1742: uint16(554), + 1743: uint16(576), + 1744: uint16(1280), + 1745: uint16(565), + 1746: uint16(576), + 1747: uint16(12), + 1748: uint16(576), + 1749: uint16(1268), + 1750: uint16(457), + 1751: uint16(146), + 1752: uint16(146), + 1753: uint16(1267), + 1754: uint16(576), + 1755: uint16(1028), + 1756: uint16(1028), + 1757: uint16(1030), + 1758: uint16(1031), + 1759: uint16(35), + 1760: uint16(140), + 1761: uint16(140), + 1762: uint16(1269), + 1763: uint16(167), + 1764: uint16(167), + 1765: uint16(1609), + 1766: uint16(160), + 1767: uint16(160), + 1768: uint16(1359), + 1769: uint16(150), + 1770: uint16(150), + 1771: uint16(149), + 1772: uint16(149), + 1773: uint16(311), + 1774: uint16(1040), + 1775: uint16(576), + 1776: uint16(312), + 1777: uint16(147), + 1778: uint16(147), + 1779: uint16(313), + 1780: uint16(119), + 1781: uint16(119), + 1782: uint16(222), + 1783: uint16(235), + 1784: uint16(576), + 1785: uint16(1188), + 1786: uint16(396), + 1787: uint16(576), + 1788: uint16(120), + 1789: uint16(576), + 1790: uint16(451), + 1791: uint16(577), + 1792: uint16(451), + 1793: uint16(1192), + 1794: uint16(453), + 1795: uint16(1028), + 1796: uint16(508), + 1797: uint16(291), + 1798: uint16(148), + 1799: uint16(148), + 1800: uint16(1421), + 1801: uint16(1612), + 1802: uint16(395), + 1803: uint16(395), + 1804: uint16(394), + 1805: uint16(276), + 1806: uint16(392), + 1807: uint16(85), + 1808: uint16(85), + 1809: uint16(859), + 1810: uint16(87), + 1811: uint16(87), + 1812: uint16(84), + 1813: uint16(84), + 1814: uint16(553), + 1815: uint16(576), + 1816: uint16(294), + 1817: uint16(576), + 1818: uint16(1426), + 1819: uint16(338), + 1820: uint16(339), + 1821: uint16(1425), + 1822: uint16(237), + 1823: uint16(300), + 1824: uint16(326), + 1825: uint16(1416), + 1826: uint16(1409), + 1827: uint16(1028), + 1828: uint16(1028), + 1829: uint16(1030), + 1830: uint16(1031), + 1831: uint16(35), + 1832: uint16(325), + 1833: uint16(344), + 1834: uint16(403), + 1835: uint16(483), + 1836: uint16(226), + 1837: uint16(1307), + 1838: uint16(52), + 1839: uint16(52), + 1840: uint16(58), + 1841: uint16(58), + 1842: uint16(368), + 1843: uint16(1371), + 1844: uint16(1502), + 1845: uint16(566), + 1846: uint16(1501), + 1847: uint16(121), + 1848: uint16(568), + 1849: uint16(221), + 1850: uint16(4), + 1851: uint16(208), + 1852: uint16(268), + 1853: uint16(209), + 1854: uint16(390), + 1855: uint16(1244), + 1856: uint16(1549), + 1857: uint16(1188), + 1858: uint16(1372), + 1859: uint16(1370), + 1860: uint16(1369), + 1861: uint16(1547), + 1862: uint16(239), + 1863: uint16(184), + 1864: uint16(571), + 1865: uint16(233), + 1866: uint16(421), + 1867: uint16(1241), + 1868: uint16(95), + 1869: uint16(218), + 1870: uint16(173), + 1871: uint16(1507), + 1872: uint16(193), + 1873: uint16(43), + 1874: uint16(91), + 1875: uint16(94), + 1876: uint16(178), + 1877: uint16(186), + 1878: uint16(467), + 1879: uint16(188), + 1880: uint16(468), + 1881: uint16(1422), + 1882: uint16(13), + 1883: uint16(189), + 1884: uint16(190), + 1885: uint16(191), + 1886: uint16(501), + 1887: uint16(451), + 1888: uint16(245), + 1889: uint16(108), + 1890: uint16(238), + 1891: uint16(401), + 1892: uint16(1428), + 1893: uint16(1427), + 1894: uint16(1430), + 1895: uint16(475), + 1896: uint16(404), + 1897: uint16(1496), + 1898: uint16(197), + 1899: uint16(565), + 1900: uint16(14), + 1901: uint16(490), + 1902: uint16(249), + 1903: uint16(101), + 1904: uint16(1518), + 1905: uint16(496), + 1906: uint16(349), + 1907: uint16(280), + 1908: uint16(251), + 1909: uint16(201), + 1910: uint16(353), + 1911: uint16(499), + 1912: uint16(252), + 1913: uint16(406), + 1914: uint16(1270), + 1915: uint16(253), + 1916: uint16(517), + 1917: uint16(1327), + 1918: uint16(1326), + 1919: uint16(435), + 1920: uint16(1325), + 1921: uint16(1318), + 1922: uint16(103), + 1923: uint16(893), + 1924: uint16(1296), + 1925: uint16(413), + 1926: uint16(227), + 1927: uint16(407), + 1928: uint16(1040), + 1929: uint16(1626), + 1930: uint16(319), + 1931: uint16(567), + 1932: uint16(1625), + 1933: uint16(1297), + 1934: uint16(119), + 1935: uint16(119), + 1936: uint16(439), + 1937: uint16(367), + 1938: uint16(1317), + 1939: uint16(1295), + 1940: uint16(1624), + 1941: uint16(526), + 1942: uint16(120), + 1943: uint16(440), + 1944: uint16(451), + 1945: uint16(577), + 1946: uint16(451), + 1947: uint16(1594), + 1948: uint16(309), + 1949: uint16(1028), + 1950: uint16(310), + 1951: uint16(373), + 1952: uint16(266), + 1953: uint16(267), + 1954: uint16(457), + 1955: uint16(1580), + 1956: uint16(1579), + 1957: uint16(443), + 1958: uint16(138), + 1959: uint16(1394), + 1960: uint16(552), + 1961: uint16(1393), + 1962: uint16(11), + 1963: uint16(1483), + 1964: uint16(384), + 1965: uint16(115), + 1966: uint16(317), + 1967: uint16(1350), + 1968: uint16(109), + 1969: uint16(536), + 1970: uint16(42), + 1971: uint16(579), + 1972: uint16(382), + 1973: uint16(214), + 1974: uint16(1349), + 1975: uint16(388), + 1976: uint16(1198), + 1977: uint16(389), + 1978: uint16(275), + 1979: uint16(277), + 1980: uint16(278), + 1981: uint16(1028), + 1982: uint16(1028), + 1983: uint16(1030), + 1984: uint16(1031), + 1985: uint16(35), + 1986: uint16(580), + 1987: uint16(1265), + 1988: uint16(414), + 1989: uint16(1260), + 1990: uint16(170), + 1991: uint16(415), + 1992: uint16(183), + 1993: uint16(1534), + 1994: uint16(1535), + 1995: uint16(1533), + 1996: uint16(171), + 1997: uint16(154), + 1998: uint16(307), + 1999: uint16(1532), + 2000: uint16(846), + 2001: uint16(223), + 2002: uint16(224), + 2003: uint16(88), + 2004: uint16(452), + 2005: uint16(215), + 2006: uint16(172), + 2007: uint16(321), + 2008: uint16(234), + 2009: uint16(1102), + 2010: uint16(152), + 2011: uint16(1188), + 2012: uint16(1100), + 2013: uint16(329), + 2014: uint16(185), + 2015: uint16(174), + 2016: uint16(1223), + 2017: uint16(925), + 2018: uint16(187), + 2019: uint16(241), + 2020: uint16(337), + 2021: uint16(244), + 2022: uint16(1116), + 2023: uint16(192), + 2024: uint16(175), + 2025: uint16(176), + 2026: uint16(424), + 2027: uint16(426), + 2028: uint16(97), + 2029: uint16(194), + 2030: uint16(98), + 2031: uint16(99), + 2032: uint16(100), + 2033: uint16(177), + 2034: uint16(1119), + 2035: uint16(1115), + 2036: uint16(246), + 2037: uint16(247), + 2038: uint16(161), + 2039: uint16(24), + 2040: uint16(248), + 2041: uint16(348), + 2042: uint16(1238), + 2043: uint16(264), + 2044: uint16(1108), + 2045: uint16(250), + 2046: uint16(495), + 2047: uint16(199), + 2048: uint16(198), + 2049: uint16(15), + 2050: uint16(861), + 2051: uint16(500), + 2052: uint16(369), + 2053: uint16(254), + 2054: uint16(504), + 2055: uint16(509), + 2056: uint16(512), + 2057: uint16(200), + 2058: uint16(102), + 2059: uint16(25), + 2060: uint16(179), + 2061: uint16(361), + 2062: uint16(26), + 2063: uint16(364), + 2064: uint16(104), + 2065: uint16(891), + 2066: uint16(308), + 2067: uint16(162), + 2068: uint16(105), + 2069: uint16(904), + 2070: uint16(520), + 2071: uint16(106), + 2072: uint16(1185), + 2073: uint16(1069), + 2074: uint16(1155), + 2075: uint16(17), + 2076: uint16(228), + 2077: uint16(27), + 2078: uint16(1154), + 2079: uint16(283), + 2080: uint16(285), + 2081: uint16(263), + 2082: uint16(978), + 2083: uint16(202), + 2084: uint16(972), + 2085: uint16(123), + 2086: uint16(28), + 2087: uint16(1175), + 2088: uint16(29), + 2089: uint16(30), + 2090: uint16(1179), + 2091: uint16(1171), + 2092: uint16(31), + 2093: uint16(1173), + 2094: uint16(1160), + 2095: uint16(41), + 2096: uint16(32), + 2097: uint16(206), + 2098: uint16(548), + 2099: uint16(33), + 2100: uint16(110), + 2101: uint16(1178), + 2102: uint16(1083), + 2103: uint16(8), + 2104: uint16(112), + 2105: uint16(1070), + 2106: uint16(113), + 2107: uint16(1068), + 2108: uint16(1072), + 2109: uint16(34), + 2110: uint16(1073), + 2111: uint16(560), + 2112: uint16(1125), + 2113: uint16(269), + 2114: uint16(1124), + 2115: uint16(270), + 2116: uint16(36), + 2117: uint16(18), + 2118: uint16(1194), + 2119: uint16(1033), + 2120: uint16(873), + 2121: uint16(151), + 2122: uint16(122), + 2123: uint16(37), + 2124: uint16(393), + 2125: uint16(271), + 2126: uint16(272), + 2127: uint16(572), + 2128: uint16(181), + 2129: uint16(1193), + 2130: uint16(1256), + 2131: uint16(1256), + 2132: uint16(1256), + 2133: uint16(935), + 2134: uint16(1256), + 2135: uint16(1256), + 2136: uint16(1256), + 2137: uint16(1256), + 2138: uint16(1256), + 2139: uint16(1256), + 2140: uint16(1256), + 2141: uint16(1617), +} +var _yy_lookahead = [2328]uint16{ + 0: uint16(194), + 1: uint16(276), + 2: uint16(277), + 3: uint16(278), + 4: uint16(216), + 5: uint16(194), + 6: uint16(194), + 7: uint16(217), + 8: uint16(194), + 9: uint16(194), + 10: uint16(194), + 11: uint16(194), + 12: uint16(224), + 13: uint16(194), + 14: uint16(194), + 15: uint16(276), + 16: uint16(277), + 17: uint16(278), + 18: uint16(204), 19: uint16(19), - 20: uint16(219), - 21: uint16(233), - 22: uint16(216), - 23: uint16(216), - 24: uint16(217), - 25: uint16(216), - 26: uint16(217), - 27: uint16(193), - 28: uint16(295), - 29: uint16(216), - 30: uint16(217), + 20: uint16(206), + 21: uint16(202), + 22: uint16(297), + 23: uint16(217), + 24: uint16(218), + 25: uint16(205), + 26: uint16(207), + 27: uint16(217), + 28: uint16(205), + 29: uint16(217), + 30: uint16(218), 31: uint16(31), - 32: uint16(193), - 33: uint16(216), + 32: uint16(217), + 33: uint16(218), 34: uint16(217), - 35: uint16(193), - 36: uint16(228), - 37: uint16(213), - 38: uint16(230), + 35: uint16(218), + 36: uint16(29), + 37: uint16(217), + 38: uint16(218), 39: uint16(39), - 40: uint16(206), - 41: uint16(216), - 42: uint16(217), + 40: uint16(33), + 41: uint16(217), + 42: uint16(220), 43: uint16(43), 44: uint16(44), 45: uint16(45), @@ -154298,31 +155753,31 @@ var _yy_lookahead = [2285]uint16{ 55: uint16(55), 56: uint16(56), 57: uint16(57), - 58: uint16(193), + 58: uint16(312), 59: uint16(19), - 60: uint16(185), - 61: uint16(186), - 62: uint16(187), - 63: uint16(188), - 64: uint16(189), - 65: uint16(190), - 66: uint16(253), - 67: uint16(274), - 68: uint16(275), - 69: uint16(276), - 70: uint16(195), - 71: uint16(193), - 72: uint16(197), - 73: uint16(193), - 74: uint16(261), - 75: uint16(274), - 76: uint16(275), - 77: uint16(276), - 78: uint16(253), - 79: uint16(204), - 80: uint16(238), - 81: uint16(204), - 82: uint16(81), + 60: uint16(240), + 61: uint16(241), + 62: uint16(316), + 63: uint16(240), + 64: uint16(241), + 65: uint16(194), + 66: uint16(46), + 67: uint16(47), + 68: uint16(48), + 69: uint16(49), + 70: uint16(22), + 71: uint16(254), + 72: uint16(65), + 73: uint16(253), + 74: uint16(254), + 75: uint16(255), + 76: uint16(253), + 77: uint16(194), + 78: uint16(255), + 79: uint16(194), + 80: uint16(263), + 81: uint16(258), + 82: uint16(259), 83: uint16(43), 84: uint16(44), 85: uint16(45), @@ -154338,10 +155793,10 @@ var _yy_lookahead = [2285]uint16{ 95: uint16(55), 96: uint16(56), 97: uint16(57), - 98: uint16(274), - 99: uint16(275), - 100: uint16(276), - 101: uint16(262), + 98: uint16(276), + 99: uint16(277), + 100: uint16(278), + 101: uint16(285), 102: uint16(102), 103: uint16(103), 104: uint16(104), @@ -154354,34 +155809,34 @@ var _yy_lookahead = [2285]uint16{ 111: uint16(111), 112: uint16(112), 113: uint16(113), - 114: uint16(239), - 115: uint16(240), - 116: uint16(239), - 117: uint16(240), - 118: uint16(210), - 119: uint16(211), - 120: uint16(212), - 121: uint16(314), - 122: uint16(315), - 123: uint16(314), - 124: uint16(59), - 125: uint16(316), + 114: uint16(59), + 115: uint16(186), + 116: uint16(187), + 117: uint16(188), + 118: uint16(189), + 119: uint16(190), + 120: uint16(191), + 121: uint16(310), + 122: uint16(239), + 123: uint16(317), + 124: uint16(318), + 125: uint16(196), 126: uint16(86), - 127: uint16(252), + 127: uint16(198), 128: uint16(88), - 129: uint16(252), + 129: uint16(317), 130: uint16(19), - 131: uint16(314), - 132: uint16(315), - 133: uint16(256), - 134: uint16(257), - 135: uint16(113), + 131: uint16(319), + 132: uint16(317), + 133: uint16(318), + 134: uint16(205), + 135: uint16(264), 136: uint16(25), - 137: uint16(72), - 138: uint16(296), - 139: uint16(138), - 140: uint16(139), - 141: uint16(266), + 137: uint16(211), + 138: uint16(212), + 139: uint16(213), + 140: uint16(205), + 141: uint16(121), 142: uint16(102), 143: uint16(103), 144: uint16(104), @@ -154409,50 +155864,50 @@ var _yy_lookahead = [2285]uint16{ 166: uint16(55), 167: uint16(56), 168: uint16(57), - 169: uint16(81), - 170: uint16(292), - 171: uint16(59), - 172: uint16(292), - 173: uint16(298), - 174: uint16(108), - 175: uint16(109), - 176: uint16(110), - 177: uint16(111), - 178: uint16(112), - 179: uint16(113), + 169: uint16(240), + 170: uint16(241), + 171: uint16(116), + 172: uint16(117), + 173: uint16(118), + 174: uint16(119), + 175: uint16(240), + 176: uint16(241), + 177: uint16(122), + 178: uint16(123), + 179: uint16(124), 180: uint16(69), - 181: uint16(116), - 182: uint16(117), - 183: uint16(118), - 184: uint16(72), + 181: uint16(298), + 182: uint16(253), + 183: uint16(194), + 184: uint16(255), 185: uint16(106), 186: uint16(107), - 187: uint16(193), - 188: uint16(111), - 189: uint16(112), - 190: uint16(113), + 187: uint16(132), + 188: uint16(253), + 189: uint16(141), + 190: uint16(255), 191: uint16(54), 192: uint16(55), 193: uint16(56), 194: uint16(57), 195: uint16(58), - 196: uint16(102), - 197: uint16(103), - 198: uint16(104), - 199: uint16(105), - 200: uint16(106), - 201: uint16(107), - 202: uint16(108), - 203: uint16(109), - 204: uint16(110), - 205: uint16(111), - 206: uint16(112), - 207: uint16(113), - 208: uint16(120), - 209: uint16(25), - 210: uint16(216), - 211: uint16(217), - 212: uint16(145), + 196: uint16(207), + 197: uint16(268), + 198: uint16(102), + 199: uint16(103), + 200: uint16(104), + 201: uint16(105), + 202: uint16(106), + 203: uint16(107), + 204: uint16(108), + 205: uint16(109), + 206: uint16(110), + 207: uint16(111), + 208: uint16(112), + 209: uint16(113), + 210: uint16(214), + 211: uint16(128), + 212: uint16(129), 213: uint16(102), 214: uint16(103), 215: uint16(104), @@ -154465,13 +155920,13 @@ var _yy_lookahead = [2285]uint16{ 222: uint16(111), 223: uint16(112), 224: uint16(113), - 225: uint16(231), - 226: uint16(138), - 227: uint16(139), - 228: uint16(116), - 229: uint16(117), - 230: uint16(118), - 231: uint16(164), + 225: uint16(134), + 226: uint16(25), + 227: uint16(136), + 228: uint16(137), + 229: uint16(300), + 230: uint16(165), + 231: uint16(166), 232: uint16(153), 233: uint16(19), 234: uint16(155), @@ -154491,12 +155946,12 @@ var _yy_lookahead = [2285]uint16{ 248: uint16(111), 249: uint16(112), 250: uint16(113), - 251: uint16(128), - 252: uint16(129), - 253: uint16(46), - 254: uint16(47), - 255: uint16(48), - 256: uint16(49), + 251: uint16(108), + 252: uint16(109), + 253: uint16(110), + 254: uint16(111), + 255: uint16(112), + 256: uint16(113), 257: uint16(43), 258: uint16(44), 259: uint16(45), @@ -154512,15 +155967,15 @@ var _yy_lookahead = [2285]uint16{ 269: uint16(55), 270: uint16(56), 271: uint16(57), - 272: uint16(216), - 273: uint16(193), - 274: uint16(25), - 275: uint16(59), - 276: uint16(193), + 272: uint16(276), + 273: uint16(277), + 274: uint16(278), + 275: uint16(113), + 276: uint16(194), 277: uint16(19), - 278: uint16(165), - 279: uint16(166), - 280: uint16(193), + 278: uint16(22), + 279: uint16(23), + 280: uint16(194), 281: uint16(67), 282: uint16(24), 283: uint16(102), @@ -154535,12 +155990,12 @@ var _yy_lookahead = [2285]uint16{ 292: uint16(111), 293: uint16(112), 294: uint16(113), - 295: uint16(73), - 296: uint16(216), - 297: uint16(217), - 298: uint16(59), - 299: uint16(216), - 300: uint16(217), + 295: uint16(220), + 296: uint16(250), + 297: uint16(59), + 298: uint16(252), + 299: uint16(217), + 300: uint16(218), 301: uint16(43), 302: uint16(44), 303: uint16(45), @@ -154568,38 +156023,38 @@ var _yy_lookahead = [2285]uint16{ 325: uint16(111), 326: uint16(112), 327: uint16(113), - 328: uint16(121), - 329: uint16(145), - 330: uint16(59), - 331: uint16(193), - 332: uint16(116), - 333: uint16(117), - 334: uint16(118), - 335: uint16(119), - 336: uint16(273), - 337: uint16(204), - 338: uint16(122), - 339: uint16(123), - 340: uint16(124), + 328: uint16(106), + 329: uint16(107), + 330: uint16(108), + 331: uint16(109), + 332: uint16(110), + 333: uint16(111), + 334: uint16(112), + 335: uint16(113), + 336: uint16(254), + 337: uint16(59), + 338: uint16(205), + 339: uint16(138), + 340: uint16(139), 341: uint16(19), 342: uint16(20), - 343: uint16(134), + 343: uint16(194), 344: uint16(22), - 345: uint16(136), - 346: uint16(137), - 347: uint16(19), - 348: uint16(132), - 349: uint16(127), - 350: uint16(128), - 351: uint16(129), - 352: uint16(24), - 353: uint16(22), - 354: uint16(23), - 355: uint16(116), - 356: uint16(117), - 357: uint16(118), + 345: uint16(263), + 346: uint16(22), + 347: uint16(23), + 348: uint16(231), + 349: uint16(25), + 350: uint16(72), + 351: uint16(276), + 352: uint16(277), + 353: uint16(278), + 354: uint16(116), + 355: uint16(117), + 356: uint16(118), + 357: uint16(101), 358: uint16(36), - 359: uint16(193), + 359: uint16(76), 360: uint16(102), 361: uint16(103), 362: uint16(104), @@ -154612,37 +156067,37 @@ var _yy_lookahead = [2285]uint16{ 369: uint16(111), 370: uint16(112), 371: uint16(113), - 372: uint16(239), + 372: uint16(89), 373: uint16(240), - 374: uint16(311), - 375: uint16(312), - 376: uint16(215), - 377: uint16(106), - 378: uint16(107), - 379: uint16(241), + 374: uint16(241), + 375: uint16(92), + 376: uint16(73), + 377: uint16(194), + 378: uint16(194), + 379: uint16(73), 380: uint16(19), 381: uint16(59), - 382: uint16(216), - 383: uint16(217), - 384: uint16(223), - 385: uint16(252), - 386: uint16(115), - 387: uint16(116), - 388: uint16(117), - 389: uint16(118), - 390: uint16(151), - 391: uint16(120), - 392: uint16(26), + 382: uint16(188), + 383: uint16(189), + 384: uint16(190), + 385: uint16(191), + 386: uint16(253), + 387: uint16(81), + 388: uint16(255), + 389: uint16(151), + 390: uint16(196), + 391: uint16(25), + 392: uint16(198), 393: uint16(71), - 394: uint16(193), - 395: uint16(308), - 396: uint16(309), - 397: uint16(193), - 398: uint16(149), - 399: uint16(128), - 400: uint16(313), - 401: uint16(216), - 402: uint16(269), + 394: uint16(116), + 395: uint16(117), + 396: uint16(118), + 397: uint16(311), + 398: uint16(312), + 399: uint16(205), + 400: uint16(217), + 401: uint16(218), + 402: uint16(316), 403: uint16(81), 404: uint16(43), 405: uint16(44), @@ -154659,50 +156114,50 @@ var _yy_lookahead = [2285]uint16{ 416: uint16(55), 417: uint16(56), 418: uint16(57), - 419: uint16(253), - 420: uint16(216), - 421: uint16(217), + 419: uint16(270), + 420: uint16(22), + 421: uint16(23), 422: uint16(100), - 423: uint16(95), - 424: uint16(153), - 425: uint16(59), - 426: uint16(155), - 427: uint16(261), + 423: uint16(25), + 424: uint16(59), + 425: uint16(101), + 426: uint16(138), + 427: uint16(139), 428: uint16(106), 429: uint16(107), - 430: uint16(25), - 431: uint16(193), - 432: uint16(101), - 433: uint16(193), - 434: uint16(193), - 435: uint16(231), + 430: uint16(127), + 431: uint16(128), + 432: uint16(129), + 433: uint16(127), + 434: uint16(240), + 435: uint16(241), 436: uint16(114), - 437: uint16(25), + 437: uint16(254), 438: uint16(116), 439: uint16(117), 440: uint16(118), - 441: uint16(113), - 442: uint16(304), + 441: uint16(76), + 442: uint16(76), 443: uint16(121), - 444: uint16(193), - 445: uint16(204), - 446: uint16(59), - 447: uint16(119), - 448: uint16(120), - 449: uint16(121), - 450: uint16(122), - 451: uint16(123), - 452: uint16(124), - 453: uint16(125), - 454: uint16(216), - 455: uint16(217), - 456: uint16(193), - 457: uint16(216), - 458: uint16(217), - 459: uint16(131), + 444: uint16(138), + 445: uint16(139), + 446: uint16(263), + 447: uint16(253), + 448: uint16(264), + 449: uint16(255), + 450: uint16(205), + 451: uint16(275), + 452: uint16(87), + 453: uint16(19), + 454: uint16(89), + 455: uint16(89), + 456: uint16(194), + 457: uint16(92), + 458: uint16(92), + 459: uint16(199), 460: uint16(138), 461: uint16(139), - 462: uint16(230), + 462: uint16(268), 463: uint16(102), 464: uint16(103), 465: uint16(104), @@ -154720,37 +156175,37 @@ var _yy_lookahead = [2285]uint16{ 477: uint16(155), 478: uint16(156), 479: uint16(157), - 480: uint16(239), - 481: uint16(240), - 482: uint16(116), - 483: uint16(117), - 484: uint16(118), - 485: uint16(76), - 486: uint16(193), - 487: uint16(23), + 480: uint16(81), + 481: uint16(116), + 482: uint16(117), + 483: uint16(118), + 484: uint16(129), + 485: uint16(240), + 486: uint16(241), + 487: uint16(224), 488: uint16(19), - 489: uint16(25), - 490: uint16(22), - 491: uint16(253), + 489: uint16(226), + 490: uint16(314), + 491: uint16(315), 492: uint16(23), - 493: uint16(252), - 494: uint16(253), - 495: uint16(108), - 496: uint16(87), - 497: uint16(204), - 498: uint16(89), - 499: uint16(261), - 500: uint16(198), - 501: uint16(92), - 502: uint16(261), - 503: uint16(116), - 504: uint16(117), - 505: uint16(118), - 506: uint16(193), - 507: uint16(306), - 508: uint16(307), - 509: uint16(216), - 510: uint16(217), + 493: uint16(25), + 494: uint16(300), + 495: uint16(59), + 496: uint16(22), + 497: uint16(234), + 498: uint16(253), + 499: uint16(101), + 500: uint16(255), + 501: uint16(236), + 502: uint16(237), + 503: uint16(26), + 504: uint16(194), + 505: uint16(183), + 506: uint16(194), + 507: uint16(152), + 508: uint16(72), + 509: uint16(22), + 510: uint16(145), 511: uint16(150), 512: uint16(43), 513: uint16(44), @@ -154767,34 +156222,34 @@ var _yy_lookahead = [2285]uint16{ 524: uint16(55), 525: uint16(56), 526: uint16(57), - 527: uint16(59), - 528: uint16(193), - 529: uint16(216), - 530: uint16(217), + 527: uint16(217), + 528: uint16(218), + 529: uint16(217), + 530: uint16(218), 531: uint16(19), - 532: uint16(239), - 533: uint16(240), - 534: uint16(283), + 532: uint16(189), + 533: uint16(59), + 534: uint16(191), 535: uint16(23), - 536: uint16(106), - 537: uint16(107), - 538: uint16(108), - 539: uint16(109), - 540: uint16(110), - 541: uint16(111), - 542: uint16(112), - 543: uint16(113), - 544: uint16(73), - 545: uint16(252), - 546: uint16(253), - 547: uint16(142), - 548: uint16(308), - 549: uint16(309), - 550: uint16(138), - 551: uint16(139), - 552: uint16(81), - 553: uint16(313), - 554: uint16(145), + 536: uint16(59), + 537: uint16(138), + 538: uint16(139), + 539: uint16(196), + 540: uint16(135), + 541: uint16(198), + 542: uint16(232), + 543: uint16(283), + 544: uint16(232), + 545: uint16(140), + 546: uint16(59), + 547: uint16(287), + 548: uint16(205), + 549: uint16(275), + 550: uint16(116), + 551: uint16(205), + 552: uint16(116), + 553: uint16(117), + 554: uint16(118), 555: uint16(43), 556: uint16(44), 557: uint16(45), @@ -154810,7 +156265,7 @@ var _yy_lookahead = [2285]uint16{ 567: uint16(55), 568: uint16(56), 569: uint16(57), - 570: uint16(307), + 570: uint16(194), 571: uint16(102), 572: uint16(103), 573: uint16(104), @@ -154823,37 +156278,37 @@ var _yy_lookahead = [2285]uint16{ 580: uint16(111), 581: uint16(112), 582: uint16(113), - 583: uint16(281), - 584: uint16(116), - 585: uint16(117), - 586: uint16(118), - 587: uint16(285), - 588: uint16(23), - 589: uint16(193), - 590: uint16(25), - 591: uint16(119), - 592: uint16(59), - 593: uint16(193), - 594: uint16(122), - 595: uint16(123), - 596: uint16(124), - 597: uint16(59), - 598: uint16(127), - 599: uint16(203), + 583: uint16(240), + 584: uint16(241), + 585: uint16(194), + 586: uint16(240), + 587: uint16(241), + 588: uint16(314), + 589: uint16(315), + 590: uint16(116), + 591: uint16(117), + 592: uint16(118), + 593: uint16(116), + 594: uint16(117), + 595: uint16(118), + 596: uint16(253), + 597: uint16(194), + 598: uint16(255), + 599: uint16(253), 600: uint16(59), - 601: uint16(205), + 601: uint16(255), 602: uint16(19), - 603: uint16(268), - 604: uint16(132), - 605: uint16(25), + 603: uint16(116), + 604: uint16(117), + 605: uint16(118), 606: uint16(23), 607: uint16(22), - 608: uint16(193), - 609: uint16(138), - 610: uint16(139), - 611: uint16(249), - 612: uint16(204), - 613: uint16(251), + 608: uint16(217), + 609: uint16(218), + 610: uint16(142), + 611: uint16(268), + 612: uint16(205), + 613: uint16(275), 614: uint16(102), 615: uint16(103), 616: uint16(104), @@ -154882,29 +156337,29 @@ var _yy_lookahead = [2285]uint16{ 639: uint16(56), 640: uint16(57), 641: uint16(19), - 642: uint16(22), - 643: uint16(23), + 642: uint16(194), + 643: uint16(300), 644: uint16(59), 645: uint16(23), - 646: uint16(25), - 647: uint16(239), - 648: uint16(240), - 649: uint16(116), - 650: uint16(117), - 651: uint16(118), - 652: uint16(193), - 653: uint16(11), - 654: uint16(116), - 655: uint16(117), - 656: uint16(118), - 657: uint16(116), + 646: uint16(119), + 647: uint16(240), + 648: uint16(241), + 649: uint16(122), + 650: uint16(123), + 651: uint16(124), + 652: uint16(314), + 653: uint16(315), + 654: uint16(194), + 655: uint16(236), + 656: uint16(237), + 657: uint16(194), 658: uint16(117), - 659: uint16(118), - 660: uint16(252), - 661: uint16(269), - 662: uint16(22), - 663: uint16(193), - 664: uint16(15), + 659: uint16(132), + 660: uint16(253), + 661: uint16(81), + 662: uint16(255), + 663: uint16(205), + 664: uint16(59), 665: uint16(43), 666: uint16(44), 667: uint16(45), @@ -154920,11 +156375,11 @@ var _yy_lookahead = [2285]uint16{ 677: uint16(55), 678: uint16(56), 679: uint16(57), - 680: uint16(273), - 681: uint16(143), - 682: uint16(193), - 683: uint16(118), - 684: uint16(143), + 680: uint16(217), + 681: uint16(218), + 682: uint16(194), + 683: uint16(194), + 684: uint16(194), 685: uint16(102), 686: uint16(103), 687: uint16(104), @@ -154937,33 +156392,33 @@ var _yy_lookahead = [2285]uint16{ 694: uint16(111), 695: uint16(112), 696: uint16(113), - 697: uint16(76), - 698: uint16(118), - 699: uint16(59), - 700: uint16(241), + 697: uint16(294), + 698: uint16(240), + 699: uint16(241), + 700: uint16(120), 701: uint16(116), 702: uint16(117), 703: uint16(118), - 704: uint16(304), - 705: uint16(216), + 704: uint16(59), + 705: uint16(194), 706: uint16(217), - 707: uint16(292), - 708: uint16(143), - 709: uint16(60), - 710: uint16(89), - 711: uint16(241), + 707: uint16(218), + 708: uint16(211), + 709: uint16(212), + 710: uint16(213), + 711: uint16(253), 712: uint16(19), - 713: uint16(92), - 714: uint16(193), - 715: uint16(193), + 713: uint16(255), + 714: uint16(194), + 715: uint16(19), 716: uint16(23), - 717: uint16(22), - 718: uint16(311), - 719: uint16(312), - 720: uint16(231), - 721: uint16(101), - 722: uint16(22), - 723: uint16(143), + 717: uint16(254), + 718: uint16(138), + 719: uint16(139), + 720: uint16(24), + 721: uint16(232), + 722: uint16(117), + 723: uint16(194), 724: uint16(102), 725: uint16(103), 726: uint16(104), @@ -154992,29 +156447,29 @@ var _yy_lookahead = [2285]uint16{ 749: uint16(56), 750: uint16(57), 751: uint16(19), - 752: uint16(193), - 753: uint16(193), - 754: uint16(59), + 752: uint16(264), + 753: uint16(108), + 754: uint16(76), 755: uint16(23), - 756: uint16(116), - 757: uint16(117), - 758: uint16(118), - 759: uint16(59), - 760: uint16(201), - 761: uint16(21), - 762: uint16(241), - 763: uint16(304), - 764: uint16(193), - 765: uint16(206), - 766: uint16(127), - 767: uint16(128), - 768: uint16(129), - 769: uint16(193), - 770: uint16(128), - 771: uint16(129), - 772: uint16(235), - 773: uint16(236), - 774: uint16(304), + 756: uint16(127), + 757: uint16(128), + 758: uint16(129), + 759: uint16(311), + 760: uint16(312), + 761: uint16(116), + 762: uint16(117), + 763: uint16(118), + 764: uint16(316), + 765: uint16(87), + 766: uint16(306), + 767: uint16(89), + 768: uint16(308), + 769: uint16(194), + 770: uint16(92), + 771: uint16(22), + 772: uint16(59), + 773: uint16(194), + 774: uint16(22), 775: uint16(43), 776: uint16(44), 777: uint16(45), @@ -155030,11 +156485,11 @@ var _yy_lookahead = [2285]uint16{ 787: uint16(55), 788: uint16(56), 789: uint16(57), - 790: uint16(22), - 791: uint16(193), - 792: uint16(216), - 793: uint16(217), - 794: uint16(193), + 790: uint16(194), + 791: uint16(95), + 792: uint16(217), + 793: uint16(218), + 794: uint16(265), 795: uint16(102), 796: uint16(103), 797: uint16(104), @@ -155047,33 +156502,33 @@ var _yy_lookahead = [2285]uint16{ 804: uint16(111), 805: uint16(112), 806: uint16(113), - 807: uint16(231), - 808: uint16(193), - 809: uint16(193), - 810: uint16(193), - 811: uint16(116), - 812: uint16(117), - 813: uint16(118), - 814: uint16(216), - 815: uint16(217), - 816: uint16(116), - 817: uint16(117), - 818: uint16(118), - 819: uint16(226), - 820: uint16(80), - 821: uint16(193), + 807: uint16(232), + 808: uint16(59), + 809: uint16(113), + 810: uint16(25), + 811: uint16(59), + 812: uint16(194), + 813: uint16(217), + 814: uint16(218), + 815: uint16(119), + 816: uint16(120), + 817: uint16(121), + 818: uint16(122), + 819: uint16(123), + 820: uint16(124), + 821: uint16(125), 822: uint16(19), - 823: uint16(235), - 824: uint16(236), - 825: uint16(304), + 823: uint16(145), + 824: uint16(194), + 825: uint16(194), 826: uint16(23), - 827: uint16(211), - 828: uint16(212), - 829: uint16(231), - 830: uint16(204), - 831: uint16(216), - 832: uint16(217), - 833: uint16(205), + 827: uint16(131), + 828: uint16(232), + 829: uint16(116), + 830: uint16(117), + 831: uint16(118), + 832: uint16(35), + 833: uint16(194), 834: uint16(102), 835: uint16(103), 836: uint16(104), @@ -155102,29 +156557,29 @@ var _yy_lookahead = [2285]uint16{ 859: uint16(56), 860: uint16(57), 861: uint16(19), - 862: uint16(193), - 863: uint16(123), - 864: uint16(76), - 865: uint16(239), - 866: uint16(240), - 867: uint16(193), - 868: uint16(253), - 869: uint16(239), - 870: uint16(240), - 871: uint16(239), - 872: uint16(240), - 873: uint16(244), - 874: uint16(106), - 875: uint16(107), - 876: uint16(193), - 877: uint16(89), - 878: uint16(252), - 879: uint16(193), - 880: uint16(92), - 881: uint16(59), - 882: uint16(252), - 883: uint16(254), - 884: uint16(252), + 862: uint16(194), + 863: uint16(66), + 864: uint16(194), + 865: uint16(116), + 866: uint16(117), + 867: uint16(118), + 868: uint16(116), + 869: uint16(117), + 870: uint16(118), + 871: uint16(74), + 872: uint16(242), + 873: uint16(294), + 874: uint16(194), + 875: uint16(194), + 876: uint16(206), + 877: uint16(23), + 878: uint16(194), + 879: uint16(25), + 880: uint16(194), + 881: uint16(111), + 882: uint16(112), + 883: uint16(113), + 884: uint16(25), 885: uint16(43), 886: uint16(44), 887: uint16(45), @@ -155140,11 +156595,11 @@ var _yy_lookahead = [2285]uint16{ 897: uint16(55), 898: uint16(56), 899: uint16(57), - 900: uint16(284), - 901: uint16(161), - 902: uint16(216), + 900: uint16(24), + 901: uint16(194), + 902: uint16(194), 903: uint16(217), - 904: uint16(193), + 904: uint16(218), 905: uint16(102), 906: uint16(103), 907: uint16(104), @@ -155157,33 +156612,33 @@ var _yy_lookahead = [2285]uint16{ 914: uint16(111), 915: uint16(112), 916: uint16(113), - 917: uint16(231), - 918: uint16(193), - 919: uint16(244), - 920: uint16(187), - 921: uint16(188), - 922: uint16(189), - 923: uint16(190), - 924: uint16(7), - 925: uint16(8), - 926: uint16(9), - 927: uint16(309), - 928: uint16(195), - 929: uint16(254), - 930: uint16(197), - 931: uint16(313), + 917: uint16(241), + 918: uint16(232), + 919: uint16(194), + 920: uint16(212), + 921: uint16(213), + 922: uint16(242), + 923: uint16(242), + 924: uint16(217), + 925: uint16(218), + 926: uint16(242), + 927: uint16(130), + 928: uint16(11), + 929: uint16(253), + 930: uint16(194), + 931: uint16(255), 932: uint16(19), - 933: uint16(127), - 934: uint16(128), - 935: uint16(129), - 936: uint16(262), - 937: uint16(204), - 938: uint16(22), - 939: uint16(117), - 940: uint16(24), - 941: uint16(216), + 933: uint16(265), + 934: uint16(149), + 935: uint16(59), + 936: uint16(306), + 937: uint16(194), + 938: uint16(308), + 939: uint16(232), + 940: uint16(309), + 941: uint16(310), 942: uint16(217), - 943: uint16(273), + 943: uint16(218), 944: uint16(102), 945: uint16(103), 946: uint16(104), @@ -155211,36 +156666,36 @@ var _yy_lookahead = [2285]uint16{ 968: uint16(55), 969: uint16(56), 970: uint16(57), - 971: uint16(193), - 972: uint16(239), - 973: uint16(240), - 974: uint16(193), - 975: uint16(59), + 971: uint16(194), + 972: uint16(194), + 973: uint16(59), + 974: uint16(194), + 975: uint16(239), 976: uint16(19), - 977: uint16(188), - 978: uint16(253), - 979: uint16(190), - 980: uint16(193), - 981: uint16(311), - 982: uint16(312), - 983: uint16(16), - 984: uint16(195), - 985: uint16(252), - 986: uint16(197), - 987: uint16(193), - 988: uint16(19), - 989: uint16(301), - 990: uint16(302), - 991: uint16(135), - 992: uint16(193), - 993: uint16(204), - 994: uint16(216), + 977: uint16(194), + 978: uint16(25), + 979: uint16(254), + 980: uint16(303), + 981: uint16(304), + 982: uint16(23), + 983: uint16(194), + 984: uint16(25), + 985: uint16(126), + 986: uint16(306), + 987: uint16(306), + 988: uint16(308), + 989: uint16(308), + 990: uint16(306), + 991: uint16(271), + 992: uint16(308), + 993: uint16(117), + 994: uint16(286), 995: uint16(217), - 996: uint16(140), - 997: uint16(216), - 998: uint16(217), - 999: uint16(266), - 1000: uint16(204), + 996: uint16(218), + 997: uint16(217), + 998: uint16(218), + 999: uint16(194), + 1000: uint16(194), 1001: uint16(159), 1002: uint16(45), 1003: uint16(46), @@ -155267,38 +156722,38 @@ var _yy_lookahead = [2285]uint16{ 1024: uint16(111), 1025: uint16(112), 1026: uint16(113), - 1027: uint16(12), + 1027: uint16(59), 1028: uint16(239), - 1029: uint16(240), - 1030: uint16(193), - 1031: uint16(298), - 1032: uint16(238), - 1033: uint16(117), - 1034: uint16(253), - 1035: uint16(239), + 1029: uint16(194), + 1030: uint16(116), + 1031: uint16(117), + 1032: uint16(118), + 1033: uint16(260), + 1034: uint16(254), + 1035: uint16(194), 1036: uint16(240), - 1037: uint16(238), - 1038: uint16(259), - 1039: uint16(260), - 1040: uint16(193), - 1041: uint16(252), - 1042: uint16(27), - 1043: uint16(193), - 1044: uint16(77), - 1045: uint16(193), - 1046: uint16(79), - 1047: uint16(204), - 1048: uint16(252), - 1049: uint16(262), - 1050: uint16(193), - 1051: uint16(299), - 1052: uint16(300), - 1053: uint16(193), - 1054: uint16(100), - 1055: uint16(266), - 1056: uint16(278), - 1057: uint16(42), - 1058: uint16(204), + 1037: uint16(241), + 1038: uint16(194), + 1039: uint16(233), + 1040: uint16(205), + 1041: uint16(240), + 1042: uint16(241), + 1043: uint16(205), + 1044: uint16(239), + 1045: uint16(128), + 1046: uint16(129), + 1047: uint16(270), + 1048: uint16(265), + 1049: uint16(253), + 1050: uint16(194), + 1051: uint16(255), + 1052: uint16(217), + 1053: uint16(218), + 1054: uint16(253), + 1055: uint16(194), + 1056: uint16(255), + 1057: uint16(143), + 1058: uint16(280), 1059: uint16(102), 1060: uint16(103), 1061: uint16(104), @@ -155311,51 +156766,51 @@ var _yy_lookahead = [2285]uint16{ 1068: uint16(111), 1069: uint16(112), 1070: uint16(113), - 1071: uint16(117), + 1071: uint16(118), 1072: uint16(159), - 1073: uint16(216), - 1074: uint16(217), - 1075: uint16(121), - 1076: uint16(216), - 1077: uint16(217), - 1078: uint16(63), - 1079: uint16(193), - 1080: uint16(193), - 1081: uint16(193), - 1082: uint16(239), - 1083: uint16(240), - 1084: uint16(115), - 1085: uint16(116), - 1086: uint16(193), - 1087: uint16(298), - 1088: uint16(73), - 1089: uint16(240), - 1090: uint16(238), - 1091: uint16(231), + 1073: uint16(217), + 1074: uint16(218), + 1075: uint16(240), + 1076: uint16(241), + 1077: uint16(118), + 1078: uint16(240), + 1079: uint16(241), + 1080: uint16(194), + 1081: uint16(194), + 1082: uint16(194), + 1083: uint16(239), + 1084: uint16(116), + 1085: uint16(117), + 1086: uint16(118), + 1087: uint16(22), + 1088: uint16(253), + 1089: uint16(254), + 1090: uint16(255), + 1091: uint16(253), 1092: uint16(19), - 1093: uint16(239), - 1094: uint16(240), - 1095: uint16(252), - 1096: uint16(22), + 1093: uint16(255), + 1094: uint16(233), + 1095: uint16(194), + 1096: uint16(143), 1097: uint16(24), - 1098: uint16(211), + 1098: uint16(263), 1099: uint16(212), - 1100: uint16(263), - 1101: uint16(252), - 1102: uint16(216), + 1100: uint16(213), + 1101: uint16(194), + 1102: uint16(143), 1103: uint16(217), - 1104: uint16(216), + 1104: uint16(218), 1105: uint16(217), - 1106: uint16(252), - 1107: uint16(153), - 1108: uint16(154), - 1109: uint16(155), - 1110: uint16(253), - 1111: uint16(193), + 1106: uint16(218), + 1107: uint16(261), + 1108: uint16(262), + 1109: uint16(271), + 1110: uint16(254), + 1111: uint16(143), 1112: uint16(19), - 1113: uint16(144), - 1114: uint16(213), - 1115: uint16(268), + 1113: uint16(7), + 1114: uint16(8), + 1115: uint16(9), 1116: uint16(43), 1117: uint16(44), 1118: uint16(45), @@ -155371,11 +156826,11 @@ var _yy_lookahead = [2285]uint16{ 1128: uint16(55), 1129: uint16(56), 1130: uint16(57), - 1131: uint16(193), + 1131: uint16(16), 1132: uint16(19), - 1133: uint16(59), - 1134: uint16(216), - 1135: uint16(217), + 1133: uint16(22), + 1134: uint16(23), + 1135: uint16(294), 1136: uint16(43), 1137: uint16(44), 1138: uint16(45), @@ -155391,11 +156846,11 @@ var _yy_lookahead = [2285]uint16{ 1148: uint16(55), 1149: uint16(56), 1150: uint16(57), - 1151: uint16(193), - 1152: uint16(19), - 1153: uint16(24), - 1154: uint16(216), - 1155: uint16(217), + 1151: uint16(312), + 1152: uint16(194), + 1153: uint16(214), + 1154: uint16(21), + 1155: uint16(316), 1156: uint16(43), 1157: uint16(44), 1158: uint16(45), @@ -155411,10 +156866,10 @@ var _yy_lookahead = [2285]uint16{ 1168: uint16(55), 1169: uint16(56), 1170: uint16(57), - 1171: uint16(284), - 1172: uint16(193), - 1173: uint16(208), - 1174: uint16(209), + 1171: uint16(106), + 1172: uint16(107), + 1173: uint16(286), + 1174: uint16(194), 1175: uint16(102), 1176: uint16(103), 1177: uint16(104), @@ -155427,14 +156882,14 @@ var _yy_lookahead = [2285]uint16{ 1184: uint16(111), 1185: uint16(112), 1186: uint16(113), - 1187: uint16(286), - 1188: uint16(59), - 1189: uint16(193), - 1190: uint16(232), - 1191: uint16(117), - 1192: uint16(291), - 1193: uint16(193), - 1194: uint16(193), + 1187: uint16(207), + 1188: uint16(158), + 1189: uint16(59), + 1190: uint16(160), + 1191: uint16(22), + 1192: uint16(77), + 1193: uint16(24), + 1194: uint16(79), 1195: uint16(102), 1196: uint16(103), 1197: uint16(104), @@ -155447,14 +156902,14 @@ var _yy_lookahead = [2285]uint16{ 1204: uint16(111), 1205: uint16(112), 1206: uint16(113), - 1207: uint16(193), - 1208: uint16(204), - 1209: uint16(22), - 1210: uint16(23), - 1211: uint16(193), - 1212: uint16(25), - 1213: uint16(66), - 1214: uint16(193), + 1207: uint16(194), + 1208: uint16(194), + 1209: uint16(229), + 1210: uint16(194), + 1211: uint16(231), + 1212: uint16(101), + 1213: uint16(80), + 1214: uint16(22), 1215: uint16(102), 1216: uint16(103), 1217: uint16(104), @@ -155467,39 +156922,39 @@ var _yy_lookahead = [2285]uint16{ 1224: uint16(111), 1225: uint16(112), 1226: uint16(113), - 1227: uint16(193), - 1228: uint16(193), - 1229: uint16(193), - 1230: uint16(216), - 1231: uint16(217), - 1232: uint16(85), - 1233: uint16(193), - 1234: uint16(238), + 1227: uint16(288), + 1228: uint16(59), + 1229: uint16(12), + 1230: uint16(217), + 1231: uint16(218), + 1232: uint16(293), + 1233: uint16(217), + 1234: uint16(218), 1235: uint16(19), - 1236: uint16(16), - 1237: uint16(216), - 1238: uint16(217), - 1239: uint16(238), - 1240: uint16(193), - 1241: uint16(94), - 1242: uint16(193), - 1243: uint16(239), - 1244: uint16(240), - 1245: uint16(231), - 1246: uint16(117), - 1247: uint16(268), - 1248: uint16(35), - 1249: uint16(116), - 1250: uint16(216), - 1251: uint16(217), - 1252: uint16(216), - 1253: uint16(217), - 1254: uint16(22), - 1255: uint16(23), - 1256: uint16(252), - 1257: uint16(25), - 1258: uint16(208), - 1259: uint16(209), + 1236: uint16(106), + 1237: uint16(107), + 1238: uint16(59), + 1239: uint16(19), + 1240: uint16(16), + 1241: uint16(127), + 1242: uint16(128), + 1243: uint16(129), + 1244: uint16(27), + 1245: uint16(115), + 1246: uint16(116), + 1247: uint16(117), + 1248: uint16(118), + 1249: uint16(194), + 1250: uint16(120), + 1251: uint16(59), + 1252: uint16(22), + 1253: uint16(194), + 1254: uint16(24), + 1255: uint16(194), + 1256: uint16(123), + 1257: uint16(100), + 1258: uint16(128), + 1259: uint16(42), 1260: uint16(44), 1261: uint16(45), 1262: uint16(46), @@ -155514,50 +156969,50 @@ var _yy_lookahead = [2285]uint16{ 1271: uint16(55), 1272: uint16(56), 1273: uint16(57), - 1274: uint16(193), - 1275: uint16(193), - 1276: uint16(19), - 1277: uint16(5), - 1278: uint16(59), - 1279: uint16(66), - 1280: uint16(193), - 1281: uint16(263), - 1282: uint16(10), - 1283: uint16(11), - 1284: uint16(12), - 1285: uint16(13), - 1286: uint16(14), - 1287: uint16(74), - 1288: uint16(101), - 1289: uint16(17), - 1290: uint16(193), - 1291: uint16(46), - 1292: uint16(193), - 1293: uint16(146), - 1294: uint16(193), - 1295: uint16(76), - 1296: uint16(213), - 1297: uint16(77), - 1298: uint16(263), - 1299: uint16(79), - 1300: uint16(12), - 1301: uint16(260), - 1302: uint16(30), - 1303: uint16(46), - 1304: uint16(32), - 1305: uint16(264), - 1306: uint16(87), - 1307: uint16(193), - 1308: uint16(89), - 1309: uint16(29), - 1310: uint16(263), - 1311: uint16(92), - 1312: uint16(40), - 1313: uint16(33), - 1314: uint16(232), - 1315: uint16(27), - 1316: uint16(193), - 1317: uint16(108), + 1274: uint16(117), + 1275: uint16(194), + 1276: uint16(217), + 1277: uint16(218), + 1278: uint16(121), + 1279: uint16(100), + 1280: uint16(63), + 1281: uint16(194), + 1282: uint16(245), + 1283: uint16(153), + 1284: uint16(194), + 1285: uint16(155), + 1286: uint16(117), + 1287: uint16(19), + 1288: uint16(115), + 1289: uint16(194), + 1290: uint16(73), + 1291: uint16(214), + 1292: uint16(194), + 1293: uint16(256), + 1294: uint16(161), + 1295: uint16(116), + 1296: uint16(117), + 1297: uint16(194), + 1298: uint16(217), + 1299: uint16(218), + 1300: uint16(121), + 1301: uint16(77), + 1302: uint16(194), + 1303: uint16(79), + 1304: uint16(217), + 1305: uint16(218), + 1306: uint16(194), + 1307: uint16(217), + 1308: uint16(218), + 1309: uint16(117), + 1310: uint16(153), + 1311: uint16(154), + 1312: uint16(155), + 1313: uint16(254), + 1314: uint16(46), + 1315: uint16(217), + 1316: uint16(218), + 1317: uint16(144), 1318: uint16(102), 1319: uint16(103), 1320: uint16(104), @@ -155570,1025 +157025,1068 @@ var _yy_lookahead = [2285]uint16{ 1327: uint16(111), 1328: uint16(112), 1329: uint16(113), - 1330: uint16(42), - 1331: uint16(138), - 1332: uint16(139), - 1333: uint16(101), - 1334: uint16(193), - 1335: uint16(116), - 1336: uint16(117), - 1337: uint16(118), + 1330: uint16(232), + 1331: uint16(270), + 1332: uint16(153), + 1333: uint16(154), + 1334: uint16(155), + 1335: uint16(115), + 1336: uint16(116), + 1337: uint16(66), 1338: uint16(19), 1339: uint16(20), - 1340: uint16(255), + 1340: uint16(183), 1341: uint16(22), - 1342: uint16(70), - 1343: uint16(130), - 1344: uint16(135), - 1345: uint16(65), - 1346: uint16(256), - 1347: uint16(257), - 1348: uint16(193), - 1349: uint16(140), - 1350: uint16(78), - 1351: uint16(63), - 1352: uint16(193), - 1353: uint16(81), - 1354: uint16(193), + 1342: uint16(12), + 1343: uint16(312), + 1344: uint16(254), + 1345: uint16(194), + 1346: uint16(262), + 1347: uint16(316), + 1348: uint16(209), + 1349: uint16(210), + 1350: uint16(266), + 1351: uint16(239), + 1352: uint16(194), + 1353: uint16(194), + 1354: uint16(108), 1355: uint16(36), - 1356: uint16(193), - 1357: uint16(216), - 1358: uint16(217), - 1359: uint16(193), - 1360: uint16(115), - 1361: uint16(193), - 1362: uint16(263), - 1363: uint16(193), - 1364: uint16(145), - 1365: uint16(268), - 1366: uint16(59), + 1356: uint16(85), + 1357: uint16(27), + 1358: uint16(19), + 1359: uint16(20), + 1360: uint16(265), + 1361: uint16(22), + 1362: uint16(183), + 1363: uint16(245), + 1364: uint16(144), + 1365: uint16(94), + 1366: uint16(25), 1367: uint16(48), - 1368: uint16(193), - 1369: uint16(193), - 1370: uint16(98), - 1371: uint16(193), - 1372: uint16(115), - 1373: uint16(193), - 1374: uint16(291), - 1375: uint16(216), + 1368: uint16(217), + 1369: uint16(218), + 1370: uint16(293), + 1371: uint16(194), + 1372: uint16(42), + 1373: uint16(270), + 1374: uint16(256), + 1375: uint16(36), 1376: uint16(217), - 1377: uint16(193), + 1377: uint16(218), 1378: uint16(59), - 1379: uint16(216), - 1380: uint16(217), - 1381: uint16(161), - 1382: uint16(216), - 1383: uint16(217), - 1384: uint16(216), - 1385: uint16(217), - 1386: uint16(216), - 1387: uint16(217), - 1388: uint16(131), - 1389: uint16(193), + 1379: uint16(194), + 1380: uint16(25), + 1381: uint16(135), + 1382: uint16(194), + 1383: uint16(115), + 1384: uint16(194), + 1385: uint16(161), + 1386: uint16(140), + 1387: uint16(194), + 1388: uint16(194), + 1389: uint16(15), 1390: uint16(71), - 1391: uint16(193), - 1392: uint16(216), - 1393: uint16(217), - 1394: uint16(216), - 1395: uint16(217), - 1396: uint16(216), - 1397: uint16(217), - 1398: uint16(193), - 1399: uint16(260), - 1400: uint16(216), - 1401: uint16(217), - 1402: uint16(19), - 1403: uint16(264), + 1391: uint16(194), + 1392: uint16(312), + 1393: uint16(63), + 1394: uint16(217), + 1395: uint16(218), + 1396: uint16(316), + 1397: uint16(194), + 1398: uint16(59), + 1399: uint16(131), + 1400: uint16(301), + 1401: uint16(302), + 1402: uint16(217), + 1403: uint16(218), 1404: uint16(85), - 1405: uint16(133), - 1406: uint16(244), - 1407: uint16(100), - 1408: uint16(193), + 1405: uint16(217), + 1406: uint16(218), + 1407: uint16(217), + 1408: uint16(218), 1409: uint16(90), - 1410: uint16(138), - 1411: uint16(139), - 1412: uint16(216), - 1413: uint16(217), - 1414: uint16(216), - 1415: uint16(217), - 1416: uint16(254), - 1417: uint16(244), - 1418: uint16(193), + 1410: uint16(71), + 1411: uint16(217), + 1412: uint16(218), + 1413: uint16(19), + 1414: uint16(217), + 1415: uint16(218), + 1416: uint16(245), + 1417: uint16(146), + 1418: uint16(262), 1419: uint16(100), - 1420: uint16(193), - 1421: uint16(216), - 1422: uint16(217), - 1423: uint16(116), - 1424: uint16(117), + 1420: uint16(217), + 1421: uint16(218), + 1422: uint16(266), + 1423: uint16(265), + 1424: uint16(85), 1425: uint16(106), 1426: uint16(107), - 1427: uint16(254), - 1428: uint16(121), - 1429: uint16(193), - 1430: uint16(115), - 1431: uint16(216), - 1432: uint16(217), + 1427: uint16(256), + 1428: uint16(312), + 1429: uint16(90), + 1430: uint16(209), + 1431: uint16(210), + 1432: uint16(316), 1433: uint16(114), - 1434: uint16(162), + 1434: uint16(60), 1435: uint16(116), 1436: uint16(117), 1437: uint16(118), - 1438: uint16(115), - 1439: uint16(244), + 1438: uint16(194), + 1439: uint16(100), 1440: uint16(121), - 1441: uint16(216), - 1442: uint16(217), - 1443: uint16(216), - 1444: uint16(217), - 1445: uint16(193), - 1446: uint16(309), - 1447: uint16(193), - 1448: uint16(31), - 1449: uint16(254), - 1450: uint16(313), - 1451: uint16(309), - 1452: uint16(216), - 1453: uint16(217), - 1454: uint16(309), - 1455: uint16(313), - 1456: uint16(39), - 1457: uint16(193), - 1458: uint16(313), - 1459: uint16(309), - 1460: uint16(153), - 1461: uint16(154), - 1462: uint16(155), - 1463: uint16(313), - 1464: uint16(193), - 1465: uint16(150), - 1466: uint16(25), - 1467: uint16(144), - 1468: uint16(216), - 1469: uint16(217), - 1470: uint16(216), - 1471: uint16(217), + 1441: uint16(194), + 1442: uint16(194), + 1443: uint16(145), + 1444: uint16(115), + 1445: uint16(106), + 1446: uint16(107), + 1447: uint16(19), + 1448: uint16(46), + 1449: uint16(19), + 1450: uint16(20), + 1451: uint16(24), + 1452: uint16(22), + 1453: uint16(114), + 1454: uint16(194), + 1455: uint16(116), + 1456: uint16(117), + 1457: uint16(118), + 1458: uint16(194), + 1459: uint16(245), + 1460: uint16(121), + 1461: uint16(194), + 1462: uint16(164), + 1463: uint16(194), + 1464: uint16(217), + 1465: uint16(218), + 1466: uint16(36), + 1467: uint16(194), + 1468: uint16(258), + 1469: uint16(259), + 1470: uint16(256), + 1471: uint16(194), 1472: uint16(153), 1473: uint16(154), 1474: uint16(155), 1475: uint16(156), 1476: uint16(157), - 1478: uint16(1), - 1479: uint16(2), - 1480: uint16(216), + 1477: uint16(217), + 1478: uint16(218), + 1479: uint16(150), + 1480: uint16(31), 1481: uint16(217), - 1482: uint16(5), - 1483: uint16(149), - 1484: uint16(150), - 1485: uint16(22), - 1486: uint16(193), - 1487: uint16(10), - 1488: uint16(11), - 1489: uint16(12), - 1490: uint16(13), - 1491: uint16(14), - 1492: uint16(193), - 1493: uint16(158), - 1494: uint16(17), - 1495: uint16(160), - 1496: uint16(193), - 1497: uint16(19), - 1498: uint16(20), - 1499: uint16(116), - 1500: uint16(22), - 1501: uint16(25), - 1502: uint16(193), - 1503: uint16(24), - 1504: uint16(22), - 1505: uint16(193), - 1506: uint16(24), - 1507: uint16(30), - 1508: uint16(226), - 1509: uint16(32), - 1510: uint16(19), - 1511: uint16(20), - 1512: uint16(226), - 1513: uint16(22), - 1514: uint16(36), - 1515: uint16(193), - 1516: uint16(53), - 1517: uint16(40), - 1518: uint16(193), - 1519: uint16(216), - 1520: uint16(217), - 1521: uint16(193), - 1522: uint16(23), - 1523: uint16(193), - 1524: uint16(25), - 1525: uint16(216), - 1526: uint16(217), - 1527: uint16(36), - 1528: uint16(216), - 1529: uint16(217), - 1530: uint16(193), - 1531: uint16(99), - 1532: uint16(193), - 1533: uint16(193), - 1534: uint16(22), - 1535: uint16(193), - 1536: uint16(193), - 1537: uint16(59), - 1538: uint16(216), + 1482: uint16(218), + 1483: uint16(142), + 1484: uint16(217), + 1485: uint16(218), + 1486: uint16(217), + 1487: uint16(218), + 1488: uint16(39), + 1489: uint16(59), + 1490: uint16(217), + 1491: uint16(218), + 1492: uint16(153), + 1493: uint16(154), + 1494: uint16(155), + 1495: uint16(156), + 1496: uint16(157), + 1497: uint16(149), + 1498: uint16(150), + 1499: uint16(5), + 1500: uint16(145), + 1501: uint16(71), + 1502: uint16(183), + 1503: uint16(245), + 1504: uint16(10), + 1505: uint16(11), + 1506: uint16(12), + 1507: uint16(13), + 1508: uint16(14), + 1509: uint16(194), + 1510: uint16(116), + 1511: uint16(17), + 1512: uint16(129), + 1513: uint16(227), + 1514: uint16(256), + 1515: uint16(85), + 1516: uint16(194), + 1517: uint16(115), + 1518: uint16(194), + 1519: uint16(23), + 1520: uint16(90), + 1521: uint16(25), + 1522: uint16(183), + 1523: uint16(99), + 1524: uint16(30), + 1525: uint16(97), + 1526: uint16(32), + 1527: uint16(22), + 1528: uint16(22), + 1529: uint16(194), + 1530: uint16(100), + 1531: uint16(194), + 1532: uint16(217), + 1533: uint16(218), + 1534: uint16(40), + 1535: uint16(152), + 1536: uint16(106), + 1537: uint16(107), + 1538: uint16(23), 1539: uint16(217), - 1540: uint16(193), - 1541: uint16(216), - 1542: uint16(217), - 1543: uint16(193), - 1544: uint16(216), - 1545: uint16(217), - 1546: uint16(193), - 1547: uint16(70), - 1548: uint16(129), - 1549: uint16(71), - 1550: uint16(59), - 1551: uint16(129), - 1552: uint16(193), - 1553: uint16(216), + 1540: uint16(218), + 1541: uint16(194), + 1542: uint16(19), + 1543: uint16(20), + 1544: uint16(114), + 1545: uint16(22), + 1546: uint16(116), + 1547: uint16(117), + 1548: uint16(118), + 1549: uint16(257), + 1550: uint16(194), + 1551: uint16(121), + 1552: uint16(217), + 1553: uint16(218), 1554: uint16(217), - 1555: uint16(78), - 1556: uint16(216), - 1557: uint16(217), - 1558: uint16(81), - 1559: uint16(216), - 1560: uint16(217), - 1561: uint16(193), - 1562: uint16(71), - 1563: uint16(85), - 1564: uint16(193), - 1565: uint16(133), - 1566: uint16(193), - 1567: uint16(126), - 1568: uint16(90), - 1569: uint16(216), - 1570: uint16(217), - 1571: uint16(152), - 1572: uint16(258), - 1573: uint16(61), - 1574: uint16(152), - 1575: uint16(98), - 1576: uint16(85), - 1577: uint16(193), - 1578: uint16(100), - 1579: uint16(193), - 1580: uint16(23), - 1581: uint16(90), - 1582: uint16(25), - 1583: uint16(121), - 1584: uint16(106), - 1585: uint16(107), - 1586: uint16(23), - 1587: uint16(216), - 1588: uint16(217), - 1589: uint16(216), - 1590: uint16(217), - 1591: uint16(100), - 1592: uint16(114), - 1593: uint16(131), - 1594: uint16(116), - 1595: uint16(117), - 1596: uint16(118), - 1597: uint16(106), - 1598: uint16(107), - 1599: uint16(121), - 1600: uint16(216), - 1601: uint16(217), - 1602: uint16(216), - 1603: uint16(217), - 1604: uint16(193), - 1605: uint16(114), - 1606: uint16(193), - 1607: uint16(116), - 1608: uint16(117), - 1609: uint16(118), - 1610: uint16(133), - 1611: uint16(22), - 1612: uint16(121), - 1613: uint16(193), - 1614: uint16(59), - 1615: uint16(138), - 1616: uint16(139), - 1617: uint16(193), - 1618: uint16(142), - 1619: uint16(193), - 1620: uint16(141), - 1621: uint16(23), - 1622: uint16(23), - 1623: uint16(25), - 1624: uint16(25), - 1625: uint16(120), - 1626: uint16(121), - 1627: uint16(216), - 1628: uint16(217), - 1629: uint16(216), - 1630: uint16(217), - 1631: uint16(153), - 1632: uint16(154), - 1633: uint16(155), - 1634: uint16(156), - 1635: uint16(157), - 1636: uint16(216), - 1637: uint16(217), - 1638: uint16(19), - 1639: uint16(162), - 1640: uint16(216), - 1641: uint16(217), - 1642: uint16(216), - 1643: uint16(217), - 1644: uint16(153), - 1645: uint16(154), - 1646: uint16(155), - 1647: uint16(156), - 1648: uint16(157), - 1649: uint16(1), - 1650: uint16(2), - 1651: uint16(193), - 1652: uint16(59), - 1653: uint16(5), - 1654: uint16(19), - 1655: uint16(20), - 1656: uint16(318), - 1657: uint16(22), - 1658: uint16(10), - 1659: uint16(11), - 1660: uint16(12), - 1661: uint16(13), - 1662: uint16(14), - 1663: uint16(193), - 1664: uint16(59), - 1665: uint16(17), - 1666: uint16(193), - 1667: uint16(23), - 1668: uint16(23), - 1669: uint16(25), - 1670: uint16(25), - 1671: uint16(36), - 1672: uint16(117), - 1673: uint16(193), - 1674: uint16(216), - 1675: uint16(217), - 1676: uint16(193), - 1677: uint16(23), - 1678: uint16(30), - 1679: uint16(25), - 1680: uint16(32), - 1681: uint16(19), - 1682: uint16(20), - 1683: uint16(23), - 1684: uint16(22), - 1685: uint16(25), - 1686: uint16(216), - 1687: uint16(217), - 1688: uint16(40), - 1689: uint16(216), + 1555: uint16(218), + 1556: uint16(194), + 1557: uint16(133), + 1558: uint16(53), + 1559: uint16(36), + 1560: uint16(23), + 1561: uint16(23), + 1562: uint16(25), + 1563: uint16(25), + 1564: uint16(70), + 1565: uint16(120), + 1566: uint16(121), + 1567: uint16(61), + 1568: uint16(141), + 1569: uint16(7), + 1570: uint16(8), + 1571: uint16(121), + 1572: uint16(78), + 1573: uint16(217), + 1574: uint16(218), + 1575: uint16(81), + 1576: uint16(23), + 1577: uint16(227), + 1578: uint16(25), + 1579: uint16(217), + 1580: uint16(218), + 1581: uint16(131), + 1582: uint16(59), + 1583: uint16(153), + 1584: uint16(154), + 1585: uint16(155), + 1586: uint16(156), + 1587: uint16(157), + 1589: uint16(1), + 1590: uint16(2), + 1591: uint16(59), + 1592: uint16(98), + 1593: uint16(5), + 1594: uint16(71), + 1595: uint16(23), + 1596: uint16(227), + 1597: uint16(25), + 1598: uint16(10), + 1599: uint16(11), + 1600: uint16(12), + 1601: uint16(13), + 1602: uint16(14), + 1603: uint16(83), + 1604: uint16(84), + 1605: uint16(17), + 1606: uint16(23), + 1607: uint16(23), + 1608: uint16(25), + 1609: uint16(25), + 1610: uint16(59), + 1611: uint16(194), + 1612: uint16(194), + 1613: uint16(183), + 1614: uint16(23), + 1615: uint16(23), + 1616: uint16(25), + 1617: uint16(25), + 1618: uint16(30), + 1619: uint16(194), + 1620: uint16(32), + 1621: uint16(19), + 1622: uint16(20), + 1623: uint16(100), + 1624: uint16(22), + 1625: uint16(194), + 1626: uint16(194), + 1627: uint16(133), + 1628: uint16(40), + 1629: uint16(106), + 1630: uint16(107), + 1631: uint16(108), + 1632: uint16(138), + 1633: uint16(139), + 1634: uint16(194), + 1635: uint16(217), + 1636: uint16(218), + 1637: uint16(114), + 1638: uint16(36), + 1639: uint16(116), + 1640: uint16(117), + 1641: uint16(118), + 1642: uint16(217), + 1643: uint16(218), + 1644: uint16(121), + 1645: uint16(194), + 1646: uint16(194), + 1647: uint16(194), + 1648: uint16(23), + 1649: uint16(117), + 1650: uint16(25), + 1651: uint16(194), + 1652: uint16(23), + 1653: uint16(23), + 1654: uint16(25), + 1655: uint16(25), + 1656: uint16(162), + 1657: uint16(194), + 1658: uint16(70), + 1659: uint16(194), + 1660: uint16(145), + 1661: uint16(59), + 1662: uint16(23), + 1663: uint16(153), + 1664: uint16(25), + 1665: uint16(155), + 1666: uint16(78), + 1667: uint16(194), + 1668: uint16(117), + 1669: uint16(81), + 1670: uint16(217), + 1671: uint16(218), + 1672: uint16(194), + 1673: uint16(71), + 1674: uint16(217), + 1675: uint16(218), + 1676: uint16(153), + 1677: uint16(154), + 1678: uint16(155), + 1679: uint16(156), + 1680: uint16(157), + 1681: uint16(194), + 1682: uint16(217), + 1683: uint16(218), + 1684: uint16(194), + 1685: uint16(23), + 1686: uint16(98), + 1687: uint16(25), + 1688: uint16(321), + 1689: uint16(194), 1690: uint16(217), - 1691: uint16(7), - 1692: uint16(8), - 1693: uint16(23), - 1694: uint16(59), - 1695: uint16(25), - 1696: uint16(83), - 1697: uint16(84), - 1698: uint16(36), - 1699: uint16(23), - 1700: uint16(193), - 1701: uint16(25), - 1702: uint16(23), - 1703: uint16(23), - 1704: uint16(25), - 1705: uint16(25), - 1706: uint16(71), - 1707: uint16(153), - 1708: uint16(145), - 1709: uint16(155), - 1710: uint16(117), - 1711: uint16(153), - 1712: uint16(23), - 1713: uint16(155), - 1714: uint16(25), - 1715: uint16(23), - 1716: uint16(97), - 1717: uint16(25), - 1718: uint16(70), - 1719: uint16(193), - 1720: uint16(193), - 1721: uint16(59), - 1722: uint16(117), - 1723: uint16(236), - 1724: uint16(193), - 1725: uint16(193), - 1726: uint16(78), - 1727: uint16(193), - 1728: uint16(193), - 1729: uint16(81), - 1730: uint16(141), - 1731: uint16(193), - 1732: uint16(193), - 1733: uint16(71), - 1734: uint16(193), - 1735: uint16(100), - 1736: uint16(288), - 1737: uint16(287), - 1738: uint16(242), - 1739: uint16(255), - 1740: uint16(255), - 1741: uint16(106), - 1742: uint16(107), - 1743: uint16(108), - 1744: uint16(255), - 1745: uint16(255), - 1746: uint16(98), - 1747: uint16(243), - 1748: uint16(297), - 1749: uint16(114), - 1750: uint16(214), - 1751: uint16(116), - 1752: uint16(117), - 1753: uint16(118), - 1754: uint16(245), - 1755: uint16(191), - 1756: uint16(121), - 1757: uint16(271), - 1758: uint16(293), - 1759: uint16(267), - 1760: uint16(267), - 1761: uint16(246), - 1762: uint16(100), - 1763: uint16(246), - 1764: uint16(245), - 1765: uint16(271), - 1766: uint16(271), - 1767: uint16(293), - 1768: uint16(106), - 1769: uint16(107), - 1770: uint16(220), - 1771: uint16(271), - 1772: uint16(229), - 1773: uint16(225), - 1774: uint16(249), - 1775: uint16(219), - 1776: uint16(114), - 1777: uint16(259), - 1778: uint16(116), - 1779: uint16(117), - 1780: uint16(118), - 1781: uint16(133), - 1782: uint16(259), - 1783: uint16(121), - 1784: uint16(219), - 1785: uint16(219), - 1786: uint16(138), - 1787: uint16(139), - 1788: uint16(153), - 1789: uint16(154), - 1790: uint16(155), - 1791: uint16(156), - 1792: uint16(157), - 1793: uint16(280), - 1794: uint16(249), - 1795: uint16(243), - 1796: uint16(19), - 1797: uint16(20), - 1798: uint16(245), - 1799: uint16(22), - 1800: uint16(196), - 1801: uint16(259), - 1802: uint16(140), - 1803: uint16(259), - 1804: uint16(60), - 1805: uint16(297), - 1806: uint16(141), - 1807: uint16(297), - 1808: uint16(200), - 1809: uint16(200), - 1810: uint16(162), - 1811: uint16(38), - 1812: uint16(200), - 1813: uint16(36), - 1814: uint16(294), - 1815: uint16(153), - 1816: uint16(154), - 1817: uint16(155), - 1818: uint16(156), - 1819: uint16(157), - 1820: uint16(151), - 1821: uint16(150), - 1822: uint16(294), - 1823: uint16(283), - 1824: uint16(22), - 1825: uint16(43), - 1826: uint16(234), - 1827: uint16(18), - 1828: uint16(237), - 1829: uint16(200), - 1830: uint16(270), - 1831: uint16(272), - 1832: uint16(237), - 1833: uint16(237), - 1834: uint16(237), - 1835: uint16(18), - 1836: uint16(59), - 1837: uint16(199), - 1838: uint16(270), - 1839: uint16(149), - 1840: uint16(246), - 1841: uint16(272), - 1842: uint16(272), - 1843: uint16(200), - 1844: uint16(234), - 1845: uint16(234), - 1846: uint16(246), - 1847: uint16(246), - 1848: uint16(71), - 1849: uint16(246), - 1850: uint16(199), - 1851: uint16(158), - 1852: uint16(290), - 1853: uint16(62), - 1854: uint16(22), - 1855: uint16(200), - 1856: uint16(19), - 1857: uint16(20), - 1858: uint16(199), - 1859: uint16(22), - 1860: uint16(289), - 1861: uint16(221), - 1862: uint16(221), - 1863: uint16(200), - 1864: uint16(200), - 1865: uint16(199), - 1866: uint16(199), - 1867: uint16(115), - 1868: uint16(218), - 1869: uint16(64), - 1870: uint16(218), - 1871: uint16(218), + 1691: uint16(218), + 1692: uint16(194), + 1693: uint16(19), + 1694: uint16(20), + 1695: uint16(194), + 1696: uint16(22), + 1697: uint16(153), + 1698: uint16(23), + 1699: uint16(155), + 1700: uint16(25), + 1701: uint16(194), + 1702: uint16(100), + 1703: uint16(194), + 1704: uint16(217), + 1705: uint16(218), + 1706: uint16(183), + 1707: uint16(194), + 1708: uint16(106), + 1709: uint16(107), + 1710: uint16(36), + 1711: uint16(194), + 1712: uint16(217), + 1713: uint16(218), + 1714: uint16(237), + 1715: uint16(194), + 1716: uint16(114), + 1717: uint16(243), + 1718: uint16(116), + 1719: uint16(117), + 1720: uint16(118), + 1721: uint16(133), + 1722: uint16(194), + 1723: uint16(121), + 1724: uint16(217), + 1725: uint16(218), + 1726: uint16(138), + 1727: uint16(139), + 1728: uint16(194), + 1729: uint16(194), + 1730: uint16(194), + 1731: uint16(290), + 1732: uint16(289), + 1733: uint16(59), + 1734: uint16(217), + 1735: uint16(218), + 1736: uint16(194), + 1737: uint16(194), + 1738: uint16(217), + 1739: uint16(218), + 1740: uint16(194), + 1741: uint16(194), + 1742: uint16(140), + 1743: uint16(194), + 1744: uint16(194), + 1745: uint16(71), + 1746: uint16(194), + 1747: uint16(244), + 1748: uint16(194), + 1749: uint16(194), + 1750: uint16(162), + 1751: uint16(217), + 1752: uint16(218), + 1753: uint16(194), + 1754: uint16(194), + 1755: uint16(153), + 1756: uint16(154), + 1757: uint16(155), + 1758: uint16(156), + 1759: uint16(157), + 1760: uint16(217), + 1761: uint16(218), + 1762: uint16(194), + 1763: uint16(217), + 1764: uint16(218), + 1765: uint16(194), + 1766: uint16(217), + 1767: uint16(218), + 1768: uint16(257), + 1769: uint16(217), + 1770: uint16(218), + 1771: uint16(217), + 1772: uint16(218), + 1773: uint16(257), + 1774: uint16(100), + 1775: uint16(194), + 1776: uint16(257), + 1777: uint16(217), + 1778: uint16(218), + 1779: uint16(257), + 1780: uint16(106), + 1781: uint16(107), + 1782: uint16(215), + 1783: uint16(299), + 1784: uint16(194), + 1785: uint16(183), + 1786: uint16(192), + 1787: uint16(194), + 1788: uint16(114), + 1789: uint16(194), + 1790: uint16(116), + 1791: uint16(117), + 1792: uint16(118), + 1793: uint16(1), + 1794: uint16(2), + 1795: uint16(121), + 1796: uint16(221), + 1797: uint16(5), + 1798: uint16(217), + 1799: uint16(218), + 1800: uint16(273), + 1801: uint16(197), + 1802: uint16(10), + 1803: uint16(11), + 1804: uint16(12), + 1805: uint16(13), + 1806: uint16(14), + 1807: uint16(217), + 1808: uint16(218), + 1809: uint16(17), + 1810: uint16(217), + 1811: uint16(218), + 1812: uint16(217), + 1813: uint16(218), + 1814: uint16(140), + 1815: uint16(194), + 1816: uint16(246), + 1817: uint16(194), + 1818: uint16(273), + 1819: uint16(295), + 1820: uint16(247), + 1821: uint16(273), + 1822: uint16(30), + 1823: uint16(247), + 1824: uint16(32), + 1825: uint16(269), + 1826: uint16(269), + 1827: uint16(153), + 1828: uint16(154), + 1829: uint16(155), + 1830: uint16(156), + 1831: uint16(157), + 1832: uint16(40), + 1833: uint16(246), + 1834: uint16(273), + 1835: uint16(295), + 1836: uint16(230), + 1837: uint16(226), + 1838: uint16(217), + 1839: uint16(218), + 1840: uint16(217), + 1841: uint16(218), + 1842: uint16(220), + 1843: uint16(261), + 1844: uint16(220), + 1845: uint16(282), + 1846: uint16(220), + 1847: uint16(19), + 1848: uint16(20), + 1849: uint16(244), + 1850: uint16(22), + 1851: uint16(250), + 1852: uint16(141), + 1853: uint16(250), + 1854: uint16(246), + 1855: uint16(60), + 1856: uint16(201), + 1857: uint16(183), + 1858: uint16(261), + 1859: uint16(261), + 1860: uint16(261), + 1861: uint16(201), + 1862: uint16(70), + 1863: uint16(299), + 1864: uint16(36), + 1865: uint16(299), + 1866: uint16(201), + 1867: uint16(38), + 1868: uint16(151), + 1869: uint16(150), + 1870: uint16(78), + 1871: uint16(285), 1872: uint16(22), - 1873: uint16(36), - 1874: uint16(227), - 1875: uint16(126), - 1876: uint16(227), - 1877: uint16(100), - 1878: uint16(165), - 1879: uint16(221), - 1880: uint16(224), - 1881: uint16(224), - 1882: uint16(24), - 1883: uint16(106), - 1884: uint16(107), - 1885: uint16(312), - 1886: uint16(218), - 1887: uint16(305), - 1888: uint16(113), - 1889: uint16(282), - 1890: uint16(91), - 1891: uint16(114), - 1892: uint16(220), - 1893: uint16(116), - 1894: uint16(117), - 1895: uint16(118), - 1896: uint16(59), - 1897: uint16(282), - 1898: uint16(121), - 1899: uint16(218), - 1900: uint16(218), - 1901: uint16(218), + 1873: uint16(81), + 1874: uint16(296), + 1875: uint16(296), + 1876: uint16(43), + 1877: uint16(235), + 1878: uint16(18), + 1879: uint16(238), + 1880: uint16(201), + 1881: uint16(274), + 1882: uint16(272), + 1883: uint16(238), + 1884: uint16(238), + 1885: uint16(238), + 1886: uint16(18), + 1887: uint16(59), + 1888: uint16(200), + 1889: uint16(149), + 1890: uint16(98), + 1891: uint16(247), + 1892: uint16(274), + 1893: uint16(274), + 1894: uint16(235), + 1895: uint16(247), + 1896: uint16(247), + 1897: uint16(247), + 1898: uint16(235), + 1899: uint16(71), + 1900: uint16(272), + 1901: uint16(201), 1902: uint16(200), - 1903: uint16(317), - 1904: uint16(317), - 1905: uint16(82), - 1906: uint16(221), - 1907: uint16(265), - 1908: uint16(71), - 1909: uint16(148), - 1910: uint16(145), - 1911: uint16(265), - 1912: uint16(22), - 1913: uint16(277), - 1914: uint16(200), - 1915: uint16(158), - 1916: uint16(279), - 1917: uint16(140), - 1918: uint16(147), - 1919: uint16(25), - 1920: uint16(146), - 1921: uint16(202), - 1922: uint16(248), - 1923: uint16(250), - 1924: uint16(249), - 1925: uint16(247), - 1926: uint16(13), - 1927: uint16(250), - 1928: uint16(194), - 1929: uint16(194), - 1930: uint16(153), - 1931: uint16(154), - 1932: uint16(155), - 1933: uint16(156), - 1934: uint16(157), - 1935: uint16(6), - 1936: uint16(303), - 1937: uint16(100), - 1938: uint16(192), - 1939: uint16(192), - 1940: uint16(246), - 1941: uint16(213), - 1942: uint16(192), - 1943: uint16(106), - 1944: uint16(107), - 1945: uint16(207), - 1946: uint16(213), - 1947: uint16(207), - 1948: uint16(222), - 1949: uint16(213), - 1950: uint16(213), - 1951: uint16(114), - 1952: uint16(222), - 1953: uint16(116), - 1954: uint16(117), - 1955: uint16(118), - 1956: uint16(214), - 1957: uint16(214), - 1958: uint16(121), - 1959: uint16(4), - 1960: uint16(207), - 1961: uint16(213), - 1962: uint16(3), - 1963: uint16(22), - 1964: uint16(303), - 1965: uint16(15), - 1966: uint16(163), - 1967: uint16(16), - 1968: uint16(23), - 1969: uint16(23), - 1970: uint16(139), - 1971: uint16(151), - 1972: uint16(130), - 1973: uint16(25), - 1974: uint16(20), - 1975: uint16(142), - 1976: uint16(24), - 1977: uint16(16), - 1978: uint16(144), - 1979: uint16(1), - 1980: uint16(142), - 1981: uint16(130), - 1982: uint16(130), - 1983: uint16(61), - 1984: uint16(37), - 1985: uint16(53), - 1986: uint16(300), - 1987: uint16(151), - 1988: uint16(53), - 1989: uint16(53), - 1990: uint16(153), - 1991: uint16(154), - 1992: uint16(155), - 1993: uint16(156), - 1994: uint16(157), - 1995: uint16(53), - 1996: uint16(130), - 1997: uint16(116), - 1998: uint16(34), - 1999: uint16(1), - 2000: uint16(141), - 2001: uint16(5), - 2002: uint16(22), - 2003: uint16(115), - 2004: uint16(161), - 2005: uint16(68), - 2006: uint16(25), - 2007: uint16(68), - 2008: uint16(75), - 2009: uint16(41), - 2010: uint16(141), - 2011: uint16(115), - 2012: uint16(24), - 2013: uint16(20), - 2014: uint16(19), - 2015: uint16(131), - 2016: uint16(125), - 2017: uint16(23), - 2018: uint16(28), - 2019: uint16(22), - 2020: uint16(67), - 2021: uint16(22), - 2022: uint16(22), - 2023: uint16(22), - 2024: uint16(67), - 2025: uint16(59), - 2026: uint16(24), - 2027: uint16(96), - 2028: uint16(22), - 2029: uint16(67), - 2030: uint16(23), - 2031: uint16(149), - 2032: uint16(22), - 2033: uint16(25), - 2034: uint16(23), - 2035: uint16(23), - 2036: uint16(23), - 2037: uint16(22), - 2038: uint16(34), - 2039: uint16(141), - 2040: uint16(37), - 2041: uint16(97), - 2042: uint16(23), - 2043: uint16(23), - 2044: uint16(116), - 2045: uint16(22), - 2046: uint16(143), - 2047: uint16(25), - 2048: uint16(34), - 2049: uint16(75), - 2050: uint16(34), - 2051: uint16(34), - 2052: uint16(34), - 2053: uint16(88), - 2054: uint16(75), - 2055: uint16(34), - 2056: uint16(86), - 2057: uint16(23), + 1903: uint16(158), + 1904: uint16(292), + 1905: uint16(62), + 1906: uint16(291), + 1907: uint16(201), + 1908: uint16(200), + 1909: uint16(22), + 1910: uint16(201), + 1911: uint16(222), + 1912: uint16(200), + 1913: uint16(222), + 1914: uint16(201), + 1915: uint16(200), + 1916: uint16(115), + 1917: uint16(219), + 1918: uint16(219), + 1919: uint16(64), + 1920: uint16(219), + 1921: uint16(228), + 1922: uint16(22), + 1923: uint16(126), + 1924: uint16(221), + 1925: uint16(133), + 1926: uint16(165), + 1927: uint16(222), + 1928: uint16(100), + 1929: uint16(225), + 1930: uint16(138), + 1931: uint16(139), + 1932: uint16(225), + 1933: uint16(219), + 1934: uint16(106), + 1935: uint16(107), + 1936: uint16(24), + 1937: uint16(219), + 1938: uint16(228), + 1939: uint16(219), + 1940: uint16(219), + 1941: uint16(307), + 1942: uint16(114), + 1943: uint16(113), + 1944: uint16(116), + 1945: uint16(117), + 1946: uint16(118), + 1947: uint16(315), + 1948: uint16(284), + 1949: uint16(121), + 1950: uint16(284), + 1951: uint16(222), + 1952: uint16(201), + 1953: uint16(91), + 1954: uint16(162), + 1955: uint16(320), + 1956: uint16(320), + 1957: uint16(82), + 1958: uint16(148), + 1959: uint16(267), + 1960: uint16(145), + 1961: uint16(267), + 1962: uint16(22), + 1963: uint16(279), + 1964: uint16(201), + 1965: uint16(158), + 1966: uint16(281), + 1967: uint16(251), + 1968: uint16(147), + 1969: uint16(146), + 1970: uint16(25), + 1971: uint16(203), + 1972: uint16(250), + 1973: uint16(249), + 1974: uint16(251), + 1975: uint16(248), + 1976: uint16(13), + 1977: uint16(247), + 1978: uint16(195), + 1979: uint16(195), + 1980: uint16(6), + 1981: uint16(153), + 1982: uint16(154), + 1983: uint16(155), + 1984: uint16(156), + 1985: uint16(157), + 1986: uint16(193), + 1987: uint16(193), + 1988: uint16(305), + 1989: uint16(193), + 1990: uint16(208), + 1991: uint16(305), + 1992: uint16(302), + 1993: uint16(214), + 1994: uint16(214), + 1995: uint16(214), + 1996: uint16(208), + 1997: uint16(223), + 1998: uint16(223), + 1999: uint16(214), + 2000: uint16(4), + 2001: uint16(215), + 2002: uint16(215), + 2003: uint16(214), + 2004: uint16(3), + 2005: uint16(22), + 2006: uint16(208), + 2007: uint16(163), + 2008: uint16(15), + 2009: uint16(23), + 2010: uint16(16), + 2011: uint16(183), + 2012: uint16(23), + 2013: uint16(139), + 2014: uint16(151), + 2015: uint16(130), + 2016: uint16(25), + 2017: uint16(20), + 2018: uint16(142), + 2019: uint16(24), + 2020: uint16(16), + 2021: uint16(144), + 2022: uint16(1), + 2023: uint16(142), + 2024: uint16(130), + 2025: uint16(130), + 2026: uint16(61), + 2027: uint16(37), + 2028: uint16(53), + 2029: uint16(151), + 2030: uint16(53), + 2031: uint16(53), + 2032: uint16(53), + 2033: uint16(130), + 2034: uint16(116), + 2035: uint16(1), + 2036: uint16(34), + 2037: uint16(141), + 2038: uint16(5), + 2039: uint16(22), + 2040: uint16(115), + 2041: uint16(161), + 2042: uint16(75), + 2043: uint16(25), + 2044: uint16(68), + 2045: uint16(141), + 2046: uint16(41), + 2047: uint16(115), + 2048: uint16(68), + 2049: uint16(24), + 2050: uint16(20), + 2051: uint16(19), + 2052: uint16(131), + 2053: uint16(125), + 2054: uint16(67), + 2055: uint16(67), + 2056: uint16(96), + 2057: uint16(22), 2058: uint16(22), - 2059: uint16(34), - 2060: uint16(93), - 2061: uint16(24), - 2062: uint16(34), - 2063: uint16(25), - 2064: uint16(25), - 2065: uint16(142), - 2066: uint16(142), + 2059: uint16(22), + 2060: uint16(37), + 2061: uint16(23), + 2062: uint16(22), + 2063: uint16(24), + 2064: uint16(22), + 2065: uint16(59), + 2066: uint16(67), 2067: uint16(23), - 2068: uint16(44), - 2069: uint16(23), - 2070: uint16(23), - 2071: uint16(23), + 2068: uint16(149), + 2069: uint16(28), + 2070: uint16(22), + 2071: uint16(25), 2072: uint16(23), - 2073: uint16(11), + 2073: uint16(23), 2074: uint16(23), - 2075: uint16(25), - 2076: uint16(22), - 2077: uint16(22), - 2078: uint16(22), - 2079: uint16(141), + 2075: uint16(22), + 2076: uint16(141), + 2077: uint16(34), + 2078: uint16(97), + 2079: uint16(23), 2080: uint16(23), - 2081: uint16(23), - 2082: uint16(22), + 2081: uint16(34), + 2082: uint16(116), 2083: uint16(22), - 2084: uint16(25), - 2085: uint16(15), - 2086: uint16(1), - 2087: uint16(23), - 2088: uint16(25), - 2089: uint16(1), - 2090: uint16(141), - 2091: uint16(135), - 2092: uint16(319), - 2093: uint16(319), - 2094: uint16(319), - 2095: uint16(319), - 2096: uint16(319), - 2097: uint16(319), - 2098: uint16(319), - 2099: uint16(141), - 2100: uint16(319), - 2101: uint16(319), - 2102: uint16(319), - 2103: uint16(319), - 2104: uint16(319), - 2105: uint16(319), - 2106: uint16(319), - 2107: uint16(319), - 2108: uint16(319), - 2109: uint16(319), - 2110: uint16(319), - 2111: uint16(319), - 2112: uint16(319), - 2113: uint16(319), - 2114: uint16(319), - 2115: uint16(319), - 2116: uint16(319), - 2117: uint16(319), - 2118: uint16(319), - 2119: uint16(319), - 2120: uint16(319), - 2121: uint16(319), - 2122: uint16(319), - 2123: uint16(319), - 2124: uint16(319), - 2125: uint16(319), - 2126: uint16(319), - 2127: uint16(319), - 2128: uint16(319), - 2129: uint16(319), - 2130: uint16(319), - 2131: uint16(319), - 2132: uint16(319), - 2133: uint16(319), - 2134: uint16(319), - 2135: uint16(319), - 2136: uint16(319), - 2137: uint16(319), - 2138: uint16(319), - 2139: uint16(319), - 2140: uint16(319), - 2141: uint16(319), - 2142: uint16(319), - 2143: uint16(319), - 2144: uint16(319), - 2145: uint16(319), - 2146: uint16(319), - 2147: uint16(319), - 2148: uint16(319), - 2149: uint16(319), - 2150: uint16(319), - 2151: uint16(319), - 2152: uint16(319), - 2153: uint16(319), - 2154: uint16(319), - 2155: uint16(319), - 2156: uint16(319), - 2157: uint16(319), - 2158: uint16(319), - 2159: uint16(319), - 2160: uint16(319), - 2161: uint16(319), - 2162: uint16(319), - 2163: uint16(319), - 2164: uint16(319), - 2165: uint16(319), - 2166: uint16(319), - 2167: uint16(319), - 2168: uint16(319), - 2169: uint16(319), - 2170: uint16(319), - 2171: uint16(319), - 2172: uint16(319), - 2173: uint16(319), - 2174: uint16(319), - 2175: uint16(319), - 2176: uint16(319), - 2177: uint16(319), - 2178: uint16(319), - 2179: uint16(319), - 2180: uint16(319), - 2181: uint16(319), - 2182: uint16(319), - 2183: uint16(319), - 2184: uint16(319), - 2185: uint16(319), - 2186: uint16(319), - 2187: uint16(319), - 2188: uint16(319), - 2189: uint16(319), - 2190: uint16(319), - 2191: uint16(319), - 2192: uint16(319), - 2193: uint16(319), - 2194: uint16(319), - 2195: uint16(319), - 2196: uint16(319), - 2197: uint16(319), - 2198: uint16(319), - 2199: uint16(319), - 2200: uint16(319), - 2201: uint16(319), - 2202: uint16(319), - 2203: uint16(319), - 2204: uint16(319), - 2205: uint16(319), - 2206: uint16(319), - 2207: uint16(319), - 2208: uint16(319), - 2209: uint16(319), - 2210: uint16(319), - 2211: uint16(319), - 2212: uint16(319), - 2213: uint16(319), - 2214: uint16(319), - 2215: uint16(319), - 2216: uint16(319), - 2217: uint16(319), - 2218: uint16(319), - 2219: uint16(319), - 2220: uint16(319), - 2221: uint16(319), - 2222: uint16(319), - 2223: uint16(319), - 2224: uint16(319), - 2225: uint16(319), - 2226: uint16(319), - 2227: uint16(319), - 2228: uint16(319), - 2229: uint16(319), - 2230: uint16(319), - 2231: uint16(319), - 2232: uint16(319), - 2233: uint16(319), - 2234: uint16(319), - 2235: uint16(319), - 2236: uint16(319), - 2237: uint16(319), - 2238: uint16(319), - 2239: uint16(319), - 2240: uint16(319), - 2241: uint16(319), - 2242: uint16(319), - 2243: uint16(319), - 2244: uint16(319), - 2245: uint16(319), - 2246: uint16(319), - 2247: uint16(319), - 2248: uint16(319), - 2249: uint16(319), - 2250: uint16(319), - 2251: uint16(319), - 2252: uint16(319), - 2253: uint16(319), - 2254: uint16(319), - 2255: uint16(319), - 2256: uint16(319), - 2257: uint16(319), - 2258: uint16(319), - 2259: uint16(319), - 2260: uint16(319), - 2261: uint16(319), - 2262: uint16(319), - 2263: uint16(319), - 2264: uint16(319), - 2265: uint16(319), - 2266: uint16(319), - 2267: uint16(319), - 2268: uint16(319), - 2269: uint16(319), - 2270: uint16(319), - 2271: uint16(319), - 2272: uint16(319), - 2273: uint16(319), - 2274: uint16(319), - 2275: uint16(319), - 2276: uint16(319), - 2277: uint16(319), - 2278: uint16(319), - 2279: uint16(319), - 2280: uint16(319), - 2281: uint16(319), - 2282: uint16(319), - 2283: uint16(319), - 2284: uint16(319), -} -var _yy_shift_ofst = [579]uint16{ - 0: uint16(1648), - 1: uint16(1477), - 2: uint16(1272), + 2084: uint16(143), + 2085: uint16(25), + 2086: uint16(34), + 2087: uint16(75), + 2088: uint16(34), + 2089: uint16(34), + 2090: uint16(75), + 2091: uint16(88), + 2092: uint16(34), + 2093: uint16(86), + 2094: uint16(23), + 2095: uint16(22), + 2096: uint16(34), + 2097: uint16(25), + 2098: uint16(24), + 2099: uint16(34), + 2100: uint16(25), + 2101: uint16(93), + 2102: uint16(23), + 2103: uint16(44), + 2104: uint16(142), + 2105: uint16(23), + 2106: uint16(142), + 2107: uint16(23), + 2108: uint16(23), + 2109: uint16(22), + 2110: uint16(11), + 2111: uint16(25), + 2112: uint16(23), + 2113: uint16(25), + 2114: uint16(23), + 2115: uint16(22), + 2116: uint16(22), + 2117: uint16(22), + 2118: uint16(1), + 2119: uint16(23), + 2120: uint16(23), + 2121: uint16(23), + 2122: uint16(22), + 2123: uint16(22), + 2124: uint16(15), + 2125: uint16(141), + 2126: uint16(141), + 2127: uint16(25), + 2128: uint16(25), + 2129: uint16(1), + 2130: uint16(322), + 2131: uint16(322), + 2132: uint16(322), + 2133: uint16(135), + 2134: uint16(322), + 2135: uint16(322), + 2136: uint16(322), + 2137: uint16(322), + 2138: uint16(322), + 2139: uint16(322), + 2140: uint16(322), + 2141: uint16(141), + 2142: uint16(322), + 2143: uint16(322), + 2144: uint16(322), + 2145: uint16(322), + 2146: uint16(322), + 2147: uint16(322), + 2148: uint16(322), + 2149: uint16(322), + 2150: uint16(322), + 2151: uint16(322), + 2152: uint16(322), + 2153: uint16(322), + 2154: uint16(322), + 2155: uint16(322), + 2156: uint16(322), + 2157: uint16(322), + 2158: uint16(322), + 2159: uint16(322), + 2160: uint16(322), + 2161: uint16(322), + 2162: uint16(322), + 2163: uint16(322), + 2164: uint16(322), + 2165: uint16(322), + 2166: uint16(322), + 2167: uint16(322), + 2168: uint16(322), + 2169: uint16(322), + 2170: uint16(322), + 2171: uint16(322), + 2172: uint16(322), + 2173: uint16(322), + 2174: uint16(322), + 2175: uint16(322), + 2176: uint16(322), + 2177: uint16(322), + 2178: uint16(322), + 2179: uint16(322), + 2180: uint16(322), + 2181: uint16(322), + 2182: uint16(322), + 2183: uint16(322), + 2184: uint16(322), + 2185: uint16(322), + 2186: uint16(322), + 2187: uint16(322), + 2188: uint16(322), + 2189: uint16(322), + 2190: uint16(322), + 2191: uint16(322), + 2192: uint16(322), + 2193: uint16(322), + 2194: uint16(322), + 2195: uint16(322), + 2196: uint16(322), + 2197: uint16(322), + 2198: uint16(322), + 2199: uint16(322), + 2200: uint16(322), + 2201: uint16(322), + 2202: uint16(322), + 2203: uint16(322), + 2204: uint16(322), + 2205: uint16(322), + 2206: uint16(322), + 2207: uint16(322), + 2208: uint16(322), + 2209: uint16(322), + 2210: uint16(322), + 2211: uint16(322), + 2212: uint16(322), + 2213: uint16(322), + 2214: uint16(322), + 2215: uint16(322), + 2216: uint16(322), + 2217: uint16(322), + 2218: uint16(322), + 2219: uint16(322), + 2220: uint16(322), + 2221: uint16(322), + 2222: uint16(322), + 2223: uint16(322), + 2224: uint16(322), + 2225: uint16(322), + 2226: uint16(322), + 2227: uint16(322), + 2228: uint16(322), + 2229: uint16(322), + 2230: uint16(322), + 2231: uint16(322), + 2232: uint16(322), + 2233: uint16(322), + 2234: uint16(322), + 2235: uint16(322), + 2236: uint16(322), + 2237: uint16(322), + 2238: uint16(322), + 2239: uint16(322), + 2240: uint16(322), + 2241: uint16(322), + 2242: uint16(322), + 2243: uint16(322), + 2244: uint16(322), + 2245: uint16(322), + 2246: uint16(322), + 2247: uint16(322), + 2248: uint16(322), + 2249: uint16(322), + 2250: uint16(322), + 2251: uint16(322), + 2252: uint16(322), + 2253: uint16(322), + 2254: uint16(322), + 2255: uint16(322), + 2256: uint16(322), + 2257: uint16(322), + 2258: uint16(322), + 2259: uint16(322), + 2260: uint16(322), + 2261: uint16(322), + 2262: uint16(322), + 2263: uint16(322), + 2264: uint16(322), + 2265: uint16(322), + 2266: uint16(322), + 2267: uint16(322), + 2268: uint16(322), + 2269: uint16(322), + 2270: uint16(322), + 2271: uint16(322), + 2272: uint16(322), + 2273: uint16(322), + 2274: uint16(322), + 2275: uint16(322), + 2276: uint16(322), + 2277: uint16(322), + 2278: uint16(322), + 2279: uint16(322), + 2280: uint16(322), + 2281: uint16(322), + 2282: uint16(322), + 2283: uint16(322), + 2284: uint16(322), + 2285: uint16(322), + 2286: uint16(322), + 2287: uint16(322), + 2288: uint16(322), + 2289: uint16(322), + 2290: uint16(322), + 2291: uint16(322), + 2292: uint16(322), + 2293: uint16(322), + 2294: uint16(322), + 2295: uint16(322), + 2296: uint16(322), + 2297: uint16(322), + 2298: uint16(322), + 2299: uint16(322), + 2300: uint16(322), + 2301: uint16(322), + 2302: uint16(322), + 2303: uint16(322), + 2304: uint16(322), + 2305: uint16(322), + 2306: uint16(322), + 2307: uint16(322), + 2308: uint16(322), + 2309: uint16(322), + 2310: uint16(322), + 2311: uint16(322), + 2312: uint16(322), + 2313: uint16(322), + 2314: uint16(322), + 2315: uint16(322), + 2316: uint16(322), + 2317: uint16(322), + 2318: uint16(322), + 2319: uint16(322), + 2320: uint16(322), + 2321: uint16(322), + 2322: uint16(322), + 2323: uint16(322), + 2324: uint16(322), + 2325: uint16(322), + 2326: uint16(322), + 2327: uint16(322), +} +var _yy_shift_ofst = [583]uint16{ + 0: uint16(1792), + 1: uint16(1588), + 2: uint16(1494), 3: uint16(322), 4: uint16(322), - 5: uint16(1), - 6: uint16(1319), - 7: uint16(1478), - 8: uint16(1491), - 9: uint16(1837), - 10: uint16(1837), - 11: uint16(1837), - 12: uint16(471), - 15: uint16(214), - 16: uint16(1093), - 17: uint16(1837), - 18: uint16(1837), - 19: uint16(1837), - 20: uint16(1837), - 21: uint16(1837), - 22: uint16(1837), - 23: uint16(1837), - 24: uint16(1837), - 25: uint16(1837), - 26: uint16(1837), - 27: uint16(1837), - 28: uint16(1837), - 29: uint16(1837), - 30: uint16(1837), - 31: uint16(271), - 32: uint16(271), - 33: uint16(1219), - 34: uint16(1219), - 35: uint16(216), - 36: uint16(88), - 37: uint16(1), - 38: uint16(1), - 39: uint16(1), - 40: uint16(1), - 41: uint16(1), - 42: uint16(40), - 43: uint16(111), - 44: uint16(258), - 45: uint16(361), - 46: uint16(469), - 47: uint16(512), - 48: uint16(583), - 49: uint16(622), - 50: uint16(693), - 51: uint16(732), - 52: uint16(803), - 53: uint16(842), - 54: uint16(913), - 55: uint16(1073), - 56: uint16(1093), - 57: uint16(1093), - 58: uint16(1093), - 59: uint16(1093), - 60: uint16(1093), - 61: uint16(1093), - 62: uint16(1093), - 63: uint16(1093), - 64: uint16(1093), + 5: uint16(399), + 6: uint16(306), + 7: uint16(1319), + 8: uint16(1339), + 9: uint16(1430), + 10: uint16(1828), + 11: uint16(1828), + 12: uint16(1828), + 13: uint16(580), + 14: uint16(399), + 15: uint16(399), + 16: uint16(399), + 17: uint16(399), + 18: uint16(399), + 21: uint16(214), + 22: uint16(1093), + 23: uint16(1828), + 24: uint16(1828), + 25: uint16(1828), + 26: uint16(1828), + 27: uint16(1828), + 28: uint16(1828), + 29: uint16(1828), + 30: uint16(1828), + 31: uint16(1828), + 32: uint16(1828), + 33: uint16(1828), + 34: uint16(1828), + 35: uint16(1828), + 36: uint16(1828), + 37: uint16(1828), + 38: uint16(1130), + 39: uint16(1130), + 40: uint16(365), + 41: uint16(365), + 42: uint16(55), + 43: uint16(278), + 44: uint16(436), + 45: uint16(713), + 46: uint16(713), + 47: uint16(201), + 48: uint16(201), + 49: uint16(201), + 50: uint16(201), + 51: uint16(40), + 52: uint16(111), + 53: uint16(258), + 54: uint16(361), + 55: uint16(469), + 56: uint16(512), + 57: uint16(583), + 58: uint16(622), + 59: uint16(693), + 60: uint16(732), + 61: uint16(803), + 62: uint16(842), + 63: uint16(913), + 64: uint16(1073), 65: uint16(1093), 66: uint16(1093), 67: uint16(1093), @@ -156598,1505 +158096,1514 @@ var _yy_shift_ofst = [579]uint16{ 71: uint16(1093), 72: uint16(1093), 73: uint16(1093), - 74: uint16(1113), + 74: uint16(1093), 75: uint16(1093), - 76: uint16(1216), - 77: uint16(957), - 78: uint16(957), - 79: uint16(1635), - 80: uint16(1662), - 81: uint16(1777), - 82: uint16(1837), - 83: uint16(1837), - 84: uint16(1837), - 85: uint16(1837), - 86: uint16(1837), - 87: uint16(1837), - 88: uint16(1837), - 89: uint16(1837), - 90: uint16(1837), - 91: uint16(1837), - 92: uint16(1837), - 93: uint16(1837), - 94: uint16(1837), - 95: uint16(1837), - 96: uint16(1837), - 97: uint16(1837), - 98: uint16(1837), - 99: uint16(1837), - 100: uint16(1837), - 101: uint16(1837), - 102: uint16(1837), - 103: uint16(1837), - 104: uint16(1837), - 105: uint16(1837), - 106: uint16(1837), - 107: uint16(1837), - 108: uint16(1837), - 109: uint16(1837), - 110: uint16(1837), - 111: uint16(1837), - 112: uint16(1837), - 113: uint16(1837), - 114: uint16(1837), - 115: uint16(1837), - 116: uint16(1837), - 117: uint16(1837), - 118: uint16(1837), - 119: uint16(1837), - 120: uint16(1837), - 121: uint16(1837), - 122: uint16(1837), - 123: uint16(1837), - 124: uint16(1837), - 125: uint16(1837), - 126: uint16(1837), - 127: uint16(1837), - 128: uint16(1837), - 129: uint16(1837), - 130: uint16(1837), - 131: uint16(137), - 132: uint16(181), - 133: uint16(181), - 134: uint16(181), - 135: uint16(181), - 136: uint16(181), - 137: uint16(181), - 138: uint16(181), - 139: uint16(94), - 140: uint16(430), - 141: uint16(66), - 142: uint16(65), - 143: uint16(112), - 144: uint16(366), - 145: uint16(533), - 146: uint16(533), - 147: uint16(740), - 148: uint16(1257), - 149: uint16(533), - 150: uint16(533), - 151: uint16(79), - 152: uint16(79), - 153: uint16(533), - 154: uint16(412), - 155: uint16(412), - 156: uint16(412), - 157: uint16(77), - 158: uint16(412), - 159: uint16(123), - 160: uint16(113), - 161: uint16(113), - 162: uint16(113), - 163: uint16(22), - 164: uint16(22), - 165: uint16(2100), - 166: uint16(2100), - 167: uint16(328), - 168: uint16(328), - 169: uint16(328), - 170: uint16(239), - 171: uint16(468), - 172: uint16(468), - 173: uint16(468), - 174: uint16(468), - 175: uint16(1015), - 176: uint16(1015), - 177: uint16(409), - 178: uint16(366), - 179: uint16(1187), - 180: uint16(1232), - 181: uint16(533), - 182: uint16(533), - 183: uint16(533), - 184: uint16(533), - 185: uint16(533), - 186: uint16(533), - 187: uint16(533), - 188: uint16(533), - 189: uint16(533), - 190: uint16(533), - 191: uint16(533), - 192: uint16(533), - 193: uint16(533), - 194: uint16(533), - 195: uint16(533), - 196: uint16(533), - 197: uint16(533), - 198: uint16(533), - 199: uint16(533), - 200: uint16(533), - 201: uint16(969), - 202: uint16(621), - 203: uint16(621), - 204: uint16(533), - 205: uint16(642), - 206: uint16(788), - 207: uint16(788), - 208: uint16(1133), - 209: uint16(1133), - 210: uint16(822), - 211: uint16(822), - 212: uint16(67), - 213: uint16(1193), - 214: uint16(2100), - 215: uint16(2100), - 216: uint16(2100), - 217: uint16(2100), - 218: uint16(2100), - 219: uint16(2100), - 220: uint16(2100), - 221: uint16(1307), - 222: uint16(954), - 223: uint16(954), - 224: uint16(585), - 225: uint16(472), - 226: uint16(640), - 227: uint16(387), - 228: uint16(695), - 229: uint16(538), - 230: uint16(541), - 231: uint16(700), - 232: uint16(533), - 233: uint16(533), - 234: uint16(533), - 235: uint16(533), - 236: uint16(533), - 237: uint16(533), - 238: uint16(533), - 239: uint16(533), - 240: uint16(533), - 241: uint16(533), - 242: uint16(222), - 243: uint16(533), - 244: uint16(533), - 245: uint16(533), - 246: uint16(533), - 247: uint16(533), - 248: uint16(533), - 249: uint16(533), - 250: uint16(533), - 251: uint16(533), - 252: uint16(533), - 253: uint16(533), - 254: uint16(533), - 255: uint16(1213), - 256: uint16(1213), - 257: uint16(1213), - 258: uint16(533), - 259: uint16(533), - 260: uint16(533), - 261: uint16(565), - 262: uint16(533), - 263: uint16(533), - 264: uint16(533), - 265: uint16(916), - 266: uint16(1147), - 267: uint16(533), - 268: uint16(533), - 269: uint16(1288), - 270: uint16(533), - 271: uint16(533), - 272: uint16(533), - 273: uint16(533), - 274: uint16(533), - 275: uint16(533), - 276: uint16(533), - 277: uint16(533), - 278: uint16(639), - 279: uint16(1280), - 280: uint16(209), - 281: uint16(1129), - 282: uint16(1129), - 283: uint16(1129), - 284: uint16(1129), - 285: uint16(580), - 286: uint16(209), - 287: uint16(209), - 288: uint16(1209), - 289: uint16(768), - 290: uint16(917), - 291: uint16(649), - 292: uint16(1315), - 293: uint16(1334), - 294: uint16(405), - 295: uint16(1334), - 296: uint16(1383), - 297: uint16(249), - 298: uint16(1315), - 299: uint16(1315), - 300: uint16(249), - 301: uint16(1315), - 302: uint16(405), - 303: uint16(1383), - 304: uint16(1441), - 305: uint16(464), - 306: uint16(1245), - 307: uint16(1417), - 308: uint16(1417), - 309: uint16(1417), - 310: uint16(1323), - 311: uint16(1323), - 312: uint16(1323), - 313: uint16(1323), - 314: uint16(184), - 315: uint16(184), - 316: uint16(1335), - 317: uint16(1476), - 318: uint16(856), - 319: uint16(1482), - 320: uint16(1744), - 321: uint16(1744), - 322: uint16(1665), - 323: uint16(1665), - 324: uint16(1773), - 325: uint16(1773), - 326: uint16(1665), - 327: uint16(1669), - 328: uint16(1671), - 329: uint16(1802), - 330: uint16(1782), - 331: uint16(1809), - 332: uint16(1809), - 333: uint16(1809), - 334: uint16(1809), - 335: uint16(1665), - 336: uint16(1817), - 337: uint16(1690), - 338: uint16(1671), - 339: uint16(1671), - 340: uint16(1690), - 341: uint16(1802), - 342: uint16(1782), - 343: uint16(1690), - 344: uint16(1782), - 345: uint16(1690), - 346: uint16(1665), - 347: uint16(1817), - 348: uint16(1693), - 349: uint16(1791), - 350: uint16(1665), - 351: uint16(1817), - 352: uint16(1832), - 353: uint16(1665), - 354: uint16(1817), - 355: uint16(1665), - 356: uint16(1817), - 357: uint16(1832), - 358: uint16(1752), - 359: uint16(1752), - 360: uint16(1752), - 361: uint16(1805), - 362: uint16(1850), - 363: uint16(1850), - 364: uint16(1832), - 365: uint16(1752), - 366: uint16(1749), - 367: uint16(1752), - 368: uint16(1805), - 369: uint16(1752), - 370: uint16(1752), - 371: uint16(1713), - 372: uint16(1858), - 373: uint16(1775), - 374: uint16(1775), - 375: uint16(1832), - 376: uint16(1665), - 377: uint16(1799), - 378: uint16(1799), - 379: uint16(1823), - 380: uint16(1823), - 381: uint16(1761), - 382: uint16(1765), - 383: uint16(1890), - 384: uint16(1665), - 385: uint16(1757), - 386: uint16(1761), - 387: uint16(1771), - 388: uint16(1774), - 389: uint16(1690), - 390: uint16(1894), - 391: uint16(1913), - 392: uint16(1913), - 393: uint16(1929), - 394: uint16(1929), - 395: uint16(1929), - 396: uint16(2100), - 397: uint16(2100), - 398: uint16(2100), - 399: uint16(2100), - 400: uint16(2100), - 401: uint16(2100), - 402: uint16(2100), - 403: uint16(2100), - 404: uint16(2100), - 405: uint16(2100), - 406: uint16(2100), - 407: uint16(2100), - 408: uint16(2100), - 409: uint16(2100), - 410: uint16(2100), - 411: uint16(207), - 412: uint16(1220), - 413: uint16(331), - 414: uint16(620), - 415: uint16(967), - 416: uint16(806), - 417: uint16(1074), - 418: uint16(1499), - 419: uint16(1432), - 420: uint16(1463), - 421: uint16(1479), - 422: uint16(1419), - 423: uint16(1422), - 424: uint16(1557), - 425: uint16(1512), - 426: uint16(1598), - 427: uint16(1599), - 428: uint16(1644), - 429: uint16(1645), - 430: uint16(1654), - 431: uint16(1660), - 432: uint16(1555), - 433: uint16(1505), - 434: uint16(1684), - 435: uint16(1462), - 436: uint16(1670), - 437: uint16(1563), - 438: uint16(1619), - 439: uint16(1593), - 440: uint16(1676), - 441: uint16(1679), - 442: uint16(1613), - 443: uint16(1680), - 444: uint16(1554), - 445: uint16(1558), - 446: uint16(1689), - 447: uint16(1692), - 448: uint16(1605), - 449: uint16(1589), - 450: uint16(1955), - 451: uint16(1959), - 452: uint16(1941), - 453: uint16(1803), - 454: uint16(1950), - 455: uint16(1951), - 456: uint16(1945), - 457: uint16(1946), - 458: uint16(1831), - 459: uint16(1820), - 460: uint16(1842), - 461: uint16(1948), - 462: uint16(1948), - 463: uint16(1952), - 464: uint16(1833), - 465: uint16(1954), - 466: uint16(1834), - 467: uint16(1961), - 468: uint16(1978), - 469: uint16(1838), - 470: uint16(1851), - 471: uint16(1948), - 472: uint16(1852), - 473: uint16(1922), - 474: uint16(1947), - 475: uint16(1948), - 476: uint16(1836), - 477: uint16(1932), - 478: uint16(1935), - 479: uint16(1936), - 480: uint16(1942), - 481: uint16(1866), - 482: uint16(1881), - 483: uint16(1964), - 484: uint16(1859), - 485: uint16(1998), - 486: uint16(1996), - 487: uint16(1980), - 488: uint16(1888), - 489: uint16(1843), - 490: uint16(1937), - 491: uint16(1981), - 492: uint16(1939), - 493: uint16(1933), - 494: uint16(1968), - 495: uint16(1869), - 496: uint16(1896), - 497: uint16(1988), - 498: uint16(1993), - 499: uint16(1995), - 500: uint16(1884), - 501: uint16(1891), - 502: uint16(1997), - 503: uint16(1953), - 504: uint16(1999), - 505: uint16(2000), - 506: uint16(1994), - 507: uint16(2001), - 508: uint16(1957), - 509: uint16(1966), - 510: uint16(2002), - 511: uint16(1931), - 512: uint16(1990), - 513: uint16(2006), - 514: uint16(1962), - 515: uint16(2003), - 516: uint16(2007), - 517: uint16(2004), - 518: uint16(1882), - 519: uint16(2010), - 520: uint16(2011), - 521: uint16(2012), - 522: uint16(2008), - 523: uint16(2013), - 524: uint16(2015), - 525: uint16(1944), - 526: uint16(1898), - 527: uint16(2019), - 528: uint16(2020), - 529: uint16(1928), - 530: uint16(2014), - 531: uint16(2023), - 532: uint16(1903), - 533: uint16(2022), - 534: uint16(2016), - 535: uint16(2017), - 536: uint16(2018), - 537: uint16(2021), - 538: uint16(1965), - 539: uint16(1974), - 540: uint16(1970), - 541: uint16(2024), - 542: uint16(1979), - 543: uint16(1967), - 544: uint16(2025), - 545: uint16(2034), - 546: uint16(2036), - 547: uint16(2037), - 548: uint16(2038), - 549: uint16(2039), - 550: uint16(2028), - 551: uint16(1923), - 552: uint16(1924), - 553: uint16(2044), - 554: uint16(2022), - 555: uint16(2046), - 556: uint16(2047), - 557: uint16(2048), - 558: uint16(2049), - 559: uint16(2050), - 560: uint16(2051), - 561: uint16(2054), - 562: uint16(2062), - 563: uint16(2055), - 564: uint16(2056), - 565: uint16(2057), - 566: uint16(2058), - 567: uint16(2060), - 568: uint16(2061), - 569: uint16(2059), - 570: uint16(1956), - 571: uint16(1938), - 572: uint16(1949), - 573: uint16(1958), - 574: uint16(2063), - 575: uint16(2064), - 576: uint16(2070), - 577: uint16(2085), - 578: uint16(2088), -} -var _yy_reduce_ofst = [411]int16{ - 0: int16(-int32(125)), - 1: int16(733), - 2: int16(789), - 3: int16(241), - 4: int16(293), - 5: int16(-int32(123)), - 6: int16(-int32(193)), - 7: int16(-int32(191)), - 8: int16(-int32(183)), - 9: int16(-int32(187)), - 10: int16(166), - 11: int16(238), - 12: int16(133), - 13: int16(-int32(207)), - 14: int16(-int32(199)), - 15: int16(-int32(267)), - 16: int16(-int32(176)), - 17: int16(-int32(6)), - 18: int16(204), - 19: int16(489), - 20: int16(576), - 21: int16(598), - 22: int16(-int32(175)), - 23: int16(686), - 24: int16(860), - 25: int16(615), - 26: int16(725), - 27: int16(1014), - 28: int16(778), - 29: int16(781), - 30: int16(857), - 31: int16(616), - 32: int16(887), - 33: int16(87), - 34: int16(240), - 35: int16(-int32(192)), - 36: int16(408), - 37: int16(626), - 38: int16(796), - 39: int16(843), - 40: int16(854), - 41: int16(1004), - 42: int16(-int32(271)), - 43: int16(-int32(271)), - 44: int16(-int32(271)), - 45: int16(-int32(271)), - 46: int16(-int32(271)), - 47: int16(-int32(271)), - 48: int16(-int32(271)), - 49: int16(-int32(271)), - 50: int16(-int32(271)), - 51: int16(-int32(271)), - 52: int16(-int32(271)), - 53: int16(-int32(271)), - 54: int16(-int32(271)), - 55: int16(-int32(271)), - 56: int16(-int32(271)), - 57: int16(-int32(271)), - 58: int16(-int32(271)), - 59: int16(-int32(271)), - 60: int16(-int32(271)), - 61: int16(-int32(271)), - 62: int16(-int32(271)), - 63: int16(-int32(271)), - 64: int16(-int32(271)), - 65: int16(-int32(271)), - 66: int16(-int32(271)), - 67: int16(-int32(271)), - 68: int16(-int32(271)), - 69: int16(-int32(271)), - 70: int16(-int32(271)), - 71: int16(-int32(271)), - 72: int16(-int32(271)), - 73: int16(-int32(271)), - 74: int16(-int32(271)), - 75: int16(-int32(271)), - 76: int16(-int32(271)), - 77: int16(-int32(271)), - 78: int16(-int32(271)), - 79: int16(80), - 80: int16(83), - 81: int16(313), - 82: int16(886), - 83: int16(888), - 84: int16(918), - 85: int16(938), - 86: int16(1021), - 87: int16(1034), - 88: int16(1036), - 89: int16(1141), - 90: int16(1159), - 91: int16(1163), - 92: int16(1166), - 93: int16(1168), - 94: int16(1170), - 95: int16(1176), - 96: int16(1178), - 97: int16(1180), - 98: int16(1184), - 99: int16(1196), - 100: int16(1198), - 101: int16(1205), - 102: int16(1215), - 103: int16(1225), - 104: int16(1227), - 105: int16(1236), - 106: int16(1252), - 107: int16(1254), - 108: int16(1264), - 109: int16(1303), - 110: int16(1309), - 111: int16(1312), - 112: int16(1322), - 113: int16(1325), - 114: int16(1328), - 115: int16(1337), - 116: int16(1340), - 117: int16(1343), - 118: int16(1353), - 119: int16(1371), - 120: int16(1373), - 121: int16(1384), - 122: int16(1386), - 123: int16(1411), - 124: int16(1413), - 125: int16(1420), - 126: int16(1424), - 127: int16(1426), - 128: int16(1458), - 129: int16(1470), - 130: int16(1473), - 131: int16(-int32(271)), - 132: int16(-int32(271)), - 133: int16(-int32(271)), - 134: int16(-int32(271)), - 135: int16(-int32(271)), - 136: int16(-int32(271)), - 137: int16(-int32(271)), - 138: int16(-int32(271)), - 139: int16(-int32(271)), - 140: int16(-int32(271)), - 141: int16(-int32(271)), - 142: int16(138), - 143: int16(459), - 144: int16(396), - 145: int16(-int32(158)), - 146: int16(470), - 147: int16(302), - 148: int16(-int32(212)), - 149: int16(521), - 150: int16(201), - 151: int16(-int32(195)), - 152: int16(-int32(92)), - 153: int16(559), - 154: int16(630), - 155: int16(632), - 156: int16(630), - 157: int16(-int32(271)), - 158: int16(632), - 159: int16(901), - 160: int16(63), - 161: int16(407), - 162: int16(670), - 163: int16(-int32(271)), - 164: int16(-int32(271)), - 165: int16(-int32(271)), - 166: int16(-int32(271)), - 167: int16(161), - 168: int16(161), - 169: int16(161), - 170: int16(251), - 171: int16(335), - 172: int16(847), - 173: int16(979), - 174: int16(1097), - 175: int16(537), - 176: int16(588), - 177: int16(618), - 178: int16(628), - 179: int16(688), - 180: int16(688), - 181: int16(-int32(166)), - 182: int16(-int32(161)), - 183: int16(674), - 184: int16(787), - 185: int16(794), - 186: int16(799), - 187: int16(852), - 188: int16(996), - 189: int16(-int32(122)), - 190: int16(837), - 191: int16(-int32(120)), - 192: int16(1018), - 193: int16(1035), - 194: int16(415), - 195: int16(1047), - 196: int16(1001), - 197: int16(958), - 198: int16(1082), - 199: int16(400), - 200: int16(1099), - 201: int16(779), - 202: int16(1137), - 203: int16(1142), - 204: int16(263), - 205: int16(1083), - 206: int16(1145), - 207: int16(1150), - 208: int16(1041), - 209: int16(1139), - 210: int16(965), - 211: int16(1050), - 212: int16(362), - 213: int16(849), - 214: int16(752), - 215: int16(629), - 216: int16(675), - 217: int16(1162), - 218: int16(1173), - 219: int16(1090), - 220: int16(1195), - 221: int16(-int32(194)), - 222: int16(56), - 223: int16(185), - 224: int16(-int32(135)), - 225: int16(232), - 226: int16(522), - 227: int16(560), - 228: int16(571), - 229: int16(601), - 230: int16(617), - 231: int16(669), - 232: int16(683), - 233: int16(711), - 234: int16(850), - 235: int16(893), - 236: int16(1000), - 237: int16(1040), - 238: int16(1049), - 239: int16(1081), - 240: int16(1087), - 241: int16(1101), - 242: int16(392), - 243: int16(1114), - 244: int16(1123), - 245: int16(1155), - 246: int16(1161), - 247: int16(1175), - 248: int16(1271), - 249: int16(1293), - 250: int16(1299), - 251: int16(1330), - 252: int16(1339), - 253: int16(1342), - 254: int16(1347), - 255: int16(593), - 256: int16(1282), - 257: int16(1286), - 258: int16(1350), - 259: int16(1359), - 260: int16(1368), - 261: int16(1314), - 262: int16(1480), - 263: int16(1483), - 264: int16(1507), - 265: int16(1085), - 266: int16(1338), - 267: int16(1526), - 268: int16(1527), - 269: int16(1487), - 270: int16(1531), - 271: int16(560), - 272: int16(1532), - 273: int16(1534), - 274: int16(1535), - 275: int16(1538), - 276: int16(1539), - 277: int16(1541), - 278: int16(1448), - 279: int16(1450), - 280: int16(1496), - 281: int16(1484), - 282: int16(1485), - 283: int16(1489), - 284: int16(1490), - 285: int16(1314), - 286: int16(1496), - 287: int16(1496), - 288: int16(1504), - 289: int16(1536), - 290: int16(1564), - 291: int16(1451), - 292: int16(1486), - 293: int16(1492), - 294: int16(1509), - 295: int16(1493), - 296: int16(1465), - 297: int16(1515), - 298: int16(1494), - 299: int16(1495), - 300: int16(1517), - 301: int16(1500), - 302: int16(1519), - 303: int16(1474), - 304: int16(1550), - 305: int16(1543), - 306: int16(1548), - 307: int16(1556), - 308: int16(1565), - 309: int16(1566), - 310: int16(1518), - 311: int16(1523), - 312: int16(1542), - 313: int16(1544), - 314: int16(1525), - 315: int16(1545), - 316: int16(1513), - 317: int16(1553), - 318: int16(1552), - 319: int16(1604), - 320: int16(1508), - 321: int16(1510), - 322: int16(1608), - 323: int16(1609), - 324: int16(1520), - 325: int16(1528), - 326: int16(1612), - 327: int16(1540), - 328: int16(1559), - 329: int16(1560), - 330: int16(1592), - 331: int16(1591), - 332: int16(1595), - 333: int16(1596), - 334: int16(1597), - 335: int16(1629), - 336: int16(1638), - 337: int16(1594), - 338: int16(1569), - 339: int16(1570), - 340: int16(1600), - 341: int16(1568), - 342: int16(1610), - 343: int16(1601), - 344: int16(1611), - 345: int16(1603), - 346: int16(1643), - 347: int16(1651), - 348: int16(1562), - 349: int16(1571), - 350: int16(1655), - 351: int16(1659), - 352: int16(1640), - 353: int16(1663), - 354: int16(1666), - 355: int16(1664), - 356: int16(1667), - 357: int16(1641), - 358: int16(1650), - 359: int16(1652), - 360: int16(1653), - 361: int16(1647), - 362: int16(1656), - 363: int16(1657), - 364: int16(1658), - 365: int16(1668), - 366: int16(1672), - 367: int16(1681), - 368: int16(1649), - 369: int16(1682), - 370: int16(1683), - 371: int16(1573), - 372: int16(1582), - 373: int16(1607), - 374: int16(1615), - 375: int16(1685), - 376: int16(1702), - 377: int16(1586), - 378: int16(1587), - 379: int16(1642), - 380: int16(1646), - 381: int16(1673), - 382: int16(1675), - 383: int16(1636), - 384: int16(1714), - 385: int16(1637), - 386: int16(1677), - 387: int16(1674), - 388: int16(1678), - 389: int16(1694), - 390: int16(1719), - 391: int16(1734), - 392: int16(1735), - 393: int16(1746), - 394: int16(1747), - 395: int16(1750), - 396: int16(1633), - 397: int16(1661), + 76: uint16(1093), + 77: uint16(1093), + 78: uint16(1093), + 79: uint16(1093), + 80: uint16(1093), + 81: uint16(1093), + 82: uint16(1093), + 83: uint16(1113), + 84: uint16(1093), + 85: uint16(1216), + 86: uint16(957), + 87: uint16(957), + 88: uint16(1523), + 89: uint16(1602), + 90: uint16(1674), + 91: uint16(1828), + 92: uint16(1828), + 93: uint16(1828), + 94: uint16(1828), + 95: uint16(1828), + 96: uint16(1828), + 97: uint16(1828), + 98: uint16(1828), + 99: uint16(1828), + 100: uint16(1828), + 101: uint16(1828), + 102: uint16(1828), + 103: uint16(1828), + 104: uint16(1828), + 105: uint16(1828), + 106: uint16(1828), + 107: uint16(1828), + 108: uint16(1828), + 109: uint16(1828), + 110: uint16(1828), + 111: uint16(1828), + 112: uint16(1828), + 113: uint16(1828), + 114: uint16(1828), + 115: uint16(1828), + 116: uint16(1828), + 117: uint16(1828), + 118: uint16(1828), + 119: uint16(1828), + 120: uint16(1828), + 121: uint16(1828), + 122: uint16(1828), + 123: uint16(1828), + 124: uint16(1828), + 125: uint16(1828), + 126: uint16(1828), + 127: uint16(1828), + 128: uint16(1828), + 129: uint16(1828), + 130: uint16(1828), + 131: uint16(1828), + 132: uint16(1828), + 133: uint16(1828), + 134: uint16(1828), + 135: uint16(1828), + 136: uint16(1828), + 137: uint16(1828), + 138: uint16(1828), + 139: uint16(1828), + 140: uint16(137), + 141: uint16(181), + 142: uint16(181), + 143: uint16(181), + 144: uint16(181), + 145: uint16(181), + 146: uint16(181), + 147: uint16(181), + 148: uint16(96), + 149: uint16(222), + 150: uint16(143), + 151: uint16(477), + 152: uint16(713), + 153: uint16(1133), + 154: uint16(1268), + 155: uint16(713), + 156: uint16(713), + 157: uint16(79), + 158: uint16(79), + 159: uint16(713), + 160: uint16(770), + 161: uint16(83), + 162: uint16(65), + 163: uint16(65), + 164: uint16(65), + 165: uint16(288), + 166: uint16(162), + 167: uint16(162), + 168: uint16(2142), + 169: uint16(2142), + 170: uint16(696), + 171: uint16(696), + 172: uint16(696), + 173: uint16(238), + 174: uint16(474), + 175: uint16(474), + 176: uint16(474), + 177: uint16(474), + 178: uint16(1217), + 179: uint16(1217), + 180: uint16(678), + 181: uint16(477), + 182: uint16(324), + 183: uint16(398), + 184: uint16(713), + 185: uint16(713), + 186: uint16(713), + 187: uint16(713), + 188: uint16(713), + 189: uint16(713), + 190: uint16(713), + 191: uint16(713), + 192: uint16(713), + 193: uint16(713), + 194: uint16(713), + 195: uint16(713), + 196: uint16(713), + 197: uint16(713), + 198: uint16(713), + 199: uint16(713), + 200: uint16(713), + 201: uint16(713), + 202: uint16(713), + 203: uint16(1220), + 204: uint16(366), + 205: uint16(366), + 206: uint16(713), + 207: uint16(917), + 208: uint16(283), + 209: uint16(283), + 210: uint16(434), + 211: uint16(434), + 212: uint16(605), + 213: uint16(605), + 214: uint16(1298), + 215: uint16(2142), + 216: uint16(2142), + 217: uint16(2142), + 218: uint16(2142), + 219: uint16(2142), + 220: uint16(2142), + 221: uint16(2142), + 222: uint16(1179), + 223: uint16(1157), + 224: uint16(1157), + 225: uint16(487), + 226: uint16(527), + 227: uint16(585), + 228: uint16(645), + 229: uint16(749), + 230: uint16(914), + 231: uint16(968), + 232: uint16(752), + 233: uint16(713), + 234: uint16(713), + 235: uint16(713), + 236: uint16(713), + 237: uint16(713), + 238: uint16(713), + 239: uint16(713), + 240: uint16(713), + 241: uint16(713), + 242: uint16(713), + 243: uint16(303), + 244: uint16(713), + 245: uint16(713), + 246: uint16(713), + 247: uint16(713), + 248: uint16(713), + 249: uint16(713), + 250: uint16(713), + 251: uint16(713), + 252: uint16(713), + 253: uint16(713), + 254: uint16(713), + 255: uint16(713), + 256: uint16(797), + 257: uint16(797), + 258: uint16(797), + 259: uint16(713), + 260: uint16(713), + 261: uint16(713), + 262: uint16(959), + 263: uint16(713), + 264: uint16(713), + 265: uint16(713), + 266: uint16(1169), + 267: uint16(1271), + 268: uint16(713), + 269: uint16(713), + 270: uint16(1330), + 271: uint16(713), + 272: uint16(713), + 273: uint16(713), + 274: uint16(713), + 275: uint16(713), + 276: uint16(713), + 277: uint16(713), + 278: uint16(713), + 279: uint16(629), + 280: uint16(7), + 281: uint16(91), + 282: uint16(876), + 283: uint16(876), + 284: uint16(876), + 285: uint16(876), + 286: uint16(953), + 287: uint16(91), + 288: uint16(91), + 289: uint16(1246), + 290: uint16(1065), + 291: uint16(1106), + 292: uint16(1374), + 293: uint16(1329), + 294: uint16(1348), + 295: uint16(468), + 296: uint16(1348), + 297: uint16(1394), + 298: uint16(785), + 299: uint16(1329), + 300: uint16(1329), + 301: uint16(785), + 302: uint16(1329), + 303: uint16(468), + 304: uint16(1394), + 305: uint16(859), + 306: uint16(854), + 307: uint16(1402), + 308: uint16(1449), + 309: uint16(1449), + 310: uint16(1449), + 311: uint16(1173), + 312: uint16(1173), + 313: uint16(1173), + 314: uint16(1173), + 315: uint16(1355), + 316: uint16(1355), + 317: uint16(1030), + 318: uint16(1341), + 319: uint16(405), + 320: uint16(1230), + 321: uint16(1795), + 322: uint16(1795), + 323: uint16(1711), + 324: uint16(1711), + 325: uint16(1829), + 326: uint16(1829), + 327: uint16(1711), + 328: uint16(1717), + 329: uint16(1719), + 330: uint16(1850), + 331: uint16(1833), + 332: uint16(1860), + 333: uint16(1860), + 334: uint16(1860), + 335: uint16(1860), + 336: uint16(1711), + 337: uint16(1868), + 338: uint16(1740), + 339: uint16(1719), + 340: uint16(1719), + 341: uint16(1740), + 342: uint16(1850), + 343: uint16(1833), + 344: uint16(1740), + 345: uint16(1833), + 346: uint16(1740), + 347: uint16(1711), + 348: uint16(1868), + 349: uint16(1745), + 350: uint16(1843), + 351: uint16(1711), + 352: uint16(1868), + 353: uint16(1887), + 354: uint16(1711), + 355: uint16(1868), + 356: uint16(1711), + 357: uint16(1868), + 358: uint16(1887), + 359: uint16(1801), + 360: uint16(1801), + 361: uint16(1801), + 362: uint16(1855), + 363: uint16(1900), + 364: uint16(1900), + 365: uint16(1887), + 366: uint16(1801), + 367: uint16(1797), + 368: uint16(1801), + 369: uint16(1855), + 370: uint16(1801), + 371: uint16(1801), + 372: uint16(1761), + 373: uint16(1912), + 374: uint16(1830), + 375: uint16(1830), + 376: uint16(1887), + 377: uint16(1711), + 378: uint16(1862), + 379: uint16(1862), + 380: uint16(1875), + 381: uint16(1875), + 382: uint16(1810), + 383: uint16(1815), + 384: uint16(1940), + 385: uint16(1711), + 386: uint16(1807), + 387: uint16(1810), + 388: uint16(1821), + 389: uint16(1823), + 390: uint16(1740), + 391: uint16(1945), + 392: uint16(1963), + 393: uint16(1963), + 394: uint16(1974), + 395: uint16(1974), + 396: uint16(1974), + 397: uint16(2142), + 398: uint16(2142), + 399: uint16(2142), + 400: uint16(2142), + 401: uint16(2142), + 402: uint16(2142), + 403: uint16(2142), + 404: uint16(2142), + 405: uint16(2142), + 406: uint16(2142), + 407: uint16(2142), + 408: uint16(2142), + 409: uint16(2142), + 410: uint16(2142), + 411: uint16(2142), + 412: uint16(20), + 413: uint16(1224), + 414: uint16(256), + 415: uint16(1111), + 416: uint16(1115), + 417: uint16(1114), + 418: uint16(1192), + 419: uint16(1496), + 420: uint16(1424), + 421: uint16(1505), + 422: uint16(1427), + 423: uint16(355), + 424: uint16(1383), + 425: uint16(1537), + 426: uint16(1506), + 427: uint16(1538), + 428: uint16(1553), + 429: uint16(1583), + 430: uint16(1584), + 431: uint16(1591), + 432: uint16(1625), + 433: uint16(541), + 434: uint16(1445), + 435: uint16(1562), + 436: uint16(1450), + 437: uint16(1572), + 438: uint16(1515), + 439: uint16(1428), + 440: uint16(1532), + 441: uint16(1592), + 442: uint16(1629), + 443: uint16(1520), + 444: uint16(1630), + 445: uint16(1639), + 446: uint16(1510), + 447: uint16(1544), + 448: uint16(1662), + 449: uint16(1675), + 450: uint16(1551), + 451: uint16(48), + 452: uint16(1996), + 453: uint16(2001), + 454: uint16(1983), + 455: uint16(1844), + 456: uint16(1993), + 457: uint16(1994), + 458: uint16(1986), + 459: uint16(1989), + 460: uint16(1874), + 461: uint16(1863), + 462: uint16(1885), + 463: uint16(1991), + 464: uint16(1991), + 465: uint16(1995), + 466: uint16(1876), + 467: uint16(1997), + 468: uint16(1877), + 469: uint16(2004), + 470: uint16(2021), + 471: uint16(1881), + 472: uint16(1894), + 473: uint16(1991), + 474: uint16(1895), + 475: uint16(1965), + 476: uint16(1990), + 477: uint16(1991), + 478: uint16(1878), + 479: uint16(1975), + 480: uint16(1977), + 481: uint16(1978), + 482: uint16(1979), + 483: uint16(1903), + 484: uint16(1918), + 485: uint16(2002), + 486: uint16(1896), + 487: uint16(2034), + 488: uint16(2033), + 489: uint16(2017), + 490: uint16(1925), + 491: uint16(1880), + 492: uint16(1976), + 493: uint16(2018), + 494: uint16(1980), + 495: uint16(1967), + 496: uint16(2005), + 497: uint16(1904), + 498: uint16(1932), + 499: uint16(2025), + 500: uint16(2030), + 501: uint16(2032), + 502: uint16(1921), + 503: uint16(1928), + 504: uint16(2035), + 505: uint16(1987), + 506: uint16(2036), + 507: uint16(2037), + 508: uint16(2038), + 509: uint16(2040), + 510: uint16(1988), + 511: uint16(2006), + 512: uint16(2039), + 513: uint16(1960), + 514: uint16(2041), + 515: uint16(2042), + 516: uint16(1999), + 517: uint16(2023), + 518: uint16(2044), + 519: uint16(2043), + 520: uint16(1919), + 521: uint16(2048), + 522: uint16(2049), + 523: uint16(2050), + 524: uint16(2046), + 525: uint16(2051), + 526: uint16(2053), + 527: uint16(1981), + 528: uint16(1935), + 529: uint16(2056), + 530: uint16(2057), + 531: uint16(1966), + 532: uint16(2047), + 533: uint16(2061), + 534: uint16(1941), + 535: uint16(2060), + 536: uint16(2052), + 537: uint16(2054), + 538: uint16(2055), + 539: uint16(2058), + 540: uint16(2003), + 541: uint16(2012), + 542: uint16(2007), + 543: uint16(2059), + 544: uint16(2015), + 545: uint16(2008), + 546: uint16(2062), + 547: uint16(2071), + 548: uint16(2073), + 549: uint16(2074), + 550: uint16(2072), + 551: uint16(2075), + 552: uint16(2065), + 553: uint16(1962), + 554: uint16(1964), + 555: uint16(2079), + 556: uint16(2060), + 557: uint16(2082), + 558: uint16(2084), + 559: uint16(2085), + 560: uint16(2087), + 561: uint16(2086), + 562: uint16(2089), + 563: uint16(2088), + 564: uint16(2091), + 565: uint16(2093), + 566: uint16(2099), + 567: uint16(2094), + 568: uint16(2095), + 569: uint16(2096), + 570: uint16(2097), + 571: uint16(2100), + 572: uint16(2101), + 573: uint16(2102), + 574: uint16(1998), + 575: uint16(1984), + 576: uint16(1985), + 577: uint16(2000), + 578: uint16(2103), + 579: uint16(2098), + 580: uint16(2109), + 581: uint16(2117), + 582: uint16(2128), +} +var _yy_reduce_ofst = [412]int16{ + 0: int16(-int32(71)), + 1: int16(194), + 2: int16(343), + 3: int16(835), + 4: int16(-int32(180)), + 5: int16(-int32(177)), + 6: int16(838), + 7: int16(-int32(194)), + 8: int16(-int32(188)), + 9: int16(-int32(185)), + 10: int16(-int32(183)), + 11: int16(82), + 12: int16(183), + 13: int16(-int32(65)), + 14: int16(133), + 15: int16(245), + 16: int16(346), + 17: int16(407), + 18: int16(458), + 19: int16(-int32(178)), + 20: int16(75), + 21: int16(-int32(275)), + 22: int16(-int32(4)), + 23: int16(310), + 24: int16(312), + 25: int16(489), + 26: int16(575), + 27: int16(596), + 28: int16(463), + 29: int16(686), + 30: int16(707), + 31: int16(725), + 32: int16(780), + 33: int16(1098), + 34: int16(856), + 35: int16(778), + 36: int16(1059), + 37: int16(1090), + 38: int16(708), + 39: int16(887), + 40: int16(86), + 41: int16(448), + 42: int16(980), + 43: int16(630), + 44: int16(680), + 45: int16(681), + 46: int16(684), + 47: int16(796), + 48: int16(801), + 49: int16(796), + 50: int16(801), + 51: int16(-int32(261)), + 52: int16(-int32(261)), + 53: int16(-int32(261)), + 54: int16(-int32(261)), + 55: int16(-int32(261)), + 56: int16(-int32(261)), + 57: int16(-int32(261)), + 58: int16(-int32(261)), + 59: int16(-int32(261)), + 60: int16(-int32(261)), + 61: int16(-int32(261)), + 62: int16(-int32(261)), + 63: int16(-int32(261)), + 64: int16(-int32(261)), + 65: int16(-int32(261)), + 66: int16(-int32(261)), + 67: int16(-int32(261)), + 68: int16(-int32(261)), + 69: int16(-int32(261)), + 70: int16(-int32(261)), + 71: int16(-int32(261)), + 72: int16(-int32(261)), + 73: int16(-int32(261)), + 74: int16(-int32(261)), + 75: int16(-int32(261)), + 76: int16(-int32(261)), + 77: int16(-int32(261)), + 78: int16(-int32(261)), + 79: int16(-int32(261)), + 80: int16(-int32(261)), + 81: int16(-int32(261)), + 82: int16(-int32(261)), + 83: int16(-int32(261)), + 84: int16(-int32(261)), + 85: int16(-int32(261)), + 86: int16(-int32(261)), + 87: int16(-int32(261)), + 88: int16(391), + 89: int16(886), + 90: int16(888), + 91: int16(1013), + 92: int16(1016), + 93: int16(1081), + 94: int16(1087), + 95: int16(1151), + 96: int16(1159), + 97: int16(1177), + 98: int16(1185), + 99: int16(1188), + 100: int16(1190), + 101: int16(1194), + 102: int16(1197), + 103: int16(1203), + 104: int16(1247), + 105: int16(1260), + 106: int16(1264), + 107: int16(1267), + 108: int16(1269), + 109: int16(1273), + 110: int16(1315), + 111: int16(1322), + 112: int16(1335), + 113: int16(1337), + 114: int16(1356), + 115: int16(1362), + 116: int16(1418), + 117: int16(1425), + 118: int16(1453), + 119: int16(1457), + 120: int16(1465), + 121: int16(1473), + 122: int16(1487), + 123: int16(1495), + 124: int16(1507), + 125: int16(1517), + 126: int16(1521), + 127: int16(1534), + 128: int16(1543), + 129: int16(1546), + 130: int16(1549), + 131: int16(1552), + 132: int16(1554), + 133: int16(1560), + 134: int16(1581), + 135: int16(1590), + 136: int16(1593), + 137: int16(1595), + 138: int16(1621), + 139: int16(1623), + 140: int16(-int32(261)), + 141: int16(-int32(261)), + 142: int16(-int32(261)), + 143: int16(-int32(261)), + 144: int16(-int32(261)), + 145: int16(-int32(261)), + 146: int16(-int32(261)), + 147: int16(-int32(261)), + 148: int16(-int32(261)), + 149: int16(-int32(261)), + 150: int16(-int32(261)), + 151: int16(-int32(186)), + 152: int16(-int32(117)), + 153: int16(260), + 154: int16(263), + 155: int16(460), + 156: int16(631), + 157: int16(-int32(74)), + 158: int16(497), + 159: int16(-int32(181)), + 160: int16(-int32(261)), + 161: int16(939), + 162: int16(176), + 163: int16(274), + 164: int16(338), + 165: int16(676), + 166: int16(-int32(261)), + 167: int16(-int32(261)), + 168: int16(-int32(261)), + 169: int16(-int32(261)), + 170: int16(-int32(212)), + 171: int16(-int32(212)), + 172: int16(-int32(212)), + 173: int16(-int32(184)), + 174: int16(149), + 175: int16(777), + 176: int16(1061), + 177: int16(1103), + 178: int16(265), + 179: int16(419), + 180: int16(-int32(254)), + 181: int16(670), + 182: int16(677), + 183: int16(677), + 184: int16(-int32(11)), + 185: int16(-int32(129)), + 186: int16(184), + 187: int16(488), + 188: int16(736), + 189: int16(789), + 190: int16(805), + 191: int16(844), + 192: int16(403), + 193: int16(529), + 194: int16(579), + 195: int16(668), + 196: int16(783), + 197: int16(841), + 198: int16(1158), + 199: int16(1112), + 200: int16(806), + 201: int16(861), + 202: int16(1095), + 203: int16(846), + 204: int16(839), + 205: int16(1031), + 206: int16(-int32(189)), + 207: int16(1077), + 208: int16(1080), + 209: int16(1116), + 210: int16(1084), + 211: int16(1156), + 212: int16(1139), + 213: int16(1221), + 214: int16(46), + 215: int16(1099), + 216: int16(1037), + 217: int16(1118), + 218: int16(1171), + 219: int16(1214), + 220: int16(1210), + 221: int16(1258), + 222: int16(-int32(210)), + 223: int16(-int32(190)), + 224: int16(-int32(176)), + 225: int16(-int32(115)), + 226: int16(117), + 227: int16(262), + 228: int16(376), + 229: int16(490), + 230: int16(511), + 231: int16(520), + 232: int16(618), + 233: int16(639), + 234: int16(743), + 235: int16(901), + 236: int16(907), + 237: int16(958), + 238: int16(1014), + 239: int16(1055), + 240: int16(1108), + 241: int16(1193), + 242: int16(1244), + 243: int16(720), + 244: int16(1248), + 245: int16(1277), + 246: int16(1324), + 247: int16(1347), + 248: int16(1417), + 249: int16(1431), + 250: int16(1432), + 251: int16(1440), + 252: int16(1451), + 253: int16(1452), + 254: int16(1463), + 255: int16(1478), + 256: int16(1286), + 257: int16(1350), + 258: int16(1369), + 259: int16(1490), + 260: int16(1498), + 261: int16(1501), + 262: int16(773), + 263: int16(1509), + 264: int16(1513), + 265: int16(1528), + 266: int16(1292), + 267: int16(1367), + 268: int16(1535), + 269: int16(1536), + 270: int16(1477), + 271: int16(1542), + 272: int16(376), + 273: int16(1547), + 274: int16(1550), + 275: int16(1555), + 276: int16(1559), + 277: int16(1568), + 278: int16(1571), + 279: int16(1441), + 280: int16(1443), + 281: int16(1474), + 282: int16(1511), + 283: int16(1516), + 284: int16(1519), + 285: int16(1522), + 286: int16(773), + 287: int16(1474), + 288: int16(1474), + 289: int16(1503), + 290: int16(1567), + 291: int16(1594), + 292: int16(1484), + 293: int16(1527), + 294: int16(1556), + 295: int16(1570), + 296: int16(1557), + 297: int16(1524), + 298: int16(1573), + 299: int16(1545), + 300: int16(1548), + 301: int16(1576), + 302: int16(1561), + 303: int16(1587), + 304: int16(1540), + 305: int16(1575), + 306: int16(1606), + 307: int16(1611), + 308: int16(1622), + 309: int16(1624), + 310: int16(1626), + 311: int16(1582), + 312: int16(1597), + 313: int16(1598), + 314: int16(1599), + 315: int16(1601), + 316: int16(1603), + 317: int16(1563), + 318: int16(1608), + 319: int16(1605), + 320: int16(1604), + 321: int16(1564), + 322: int16(1566), + 323: int16(1655), + 324: int16(1660), + 325: int16(1578), + 326: int16(1579), + 327: int16(1665), + 328: int16(1586), + 329: int16(1607), + 330: int16(1610), + 331: int16(1642), + 332: int16(1641), + 333: int16(1645), + 334: int16(1646), + 335: int16(1647), + 336: int16(1679), + 337: int16(1688), + 338: int16(1644), + 339: int16(1618), + 340: int16(1619), + 341: int16(1648), + 342: int16(1628), + 343: int16(1659), + 344: int16(1649), + 345: int16(1663), + 346: int16(1650), + 347: int16(1700), + 348: int16(1702), + 349: int16(1612), + 350: int16(1615), + 351: int16(1706), + 352: int16(1708), + 353: int16(1689), + 354: int16(1709), + 355: int16(1712), + 356: int16(1713), + 357: int16(1715), + 358: int16(1691), + 359: int16(1698), + 360: int16(1699), + 361: int16(1701), + 362: int16(1693), + 363: int16(1704), + 364: int16(1707), + 365: int16(1705), + 366: int16(1714), + 367: int16(1703), + 368: int16(1718), + 369: int16(1710), + 370: int16(1720), + 371: int16(1721), + 372: int16(1632), + 373: int16(1634), + 374: int16(1664), + 375: int16(1666), + 376: int16(1729), + 377: int16(1751), + 378: int16(1635), + 379: int16(1636), + 380: int16(1692), + 381: int16(1694), + 382: int16(1716), + 383: int16(1722), + 384: int16(1684), + 385: int16(1763), + 386: int16(1685), + 387: int16(1723), + 388: int16(1724), + 389: int16(1727), + 390: int16(1730), + 391: int16(1768), + 392: int16(1783), + 393: int16(1784), + 394: int16(1793), + 395: int16(1794), + 396: int16(1796), + 397: int16(1683), 398: int16(1686), - 399: int16(1738), - 400: int16(1728), - 401: int16(1733), - 402: int16(1736), - 403: int16(1737), - 404: int16(1740), - 405: int16(1726), - 406: int16(1730), - 407: int16(1742), - 408: int16(1743), - 409: int16(1748), - 410: int16(1753), -} -var _yy_default = [579]uint16{ - 0: uint16(1648), - 1: uint16(1648), - 2: uint16(1648), - 3: uint16(1478), - 4: uint16(1243), - 5: uint16(1354), - 6: uint16(1243), - 7: uint16(1243), - 8: uint16(1243), - 9: uint16(1478), - 10: uint16(1478), - 11: uint16(1478), - 12: uint16(1243), - 13: uint16(1384), - 14: uint16(1384), - 15: uint16(1531), - 16: uint16(1276), - 17: uint16(1243), - 18: uint16(1243), - 19: uint16(1243), - 20: uint16(1243), - 21: uint16(1243), - 22: uint16(1243), - 23: uint16(1243), - 24: uint16(1243), - 25: uint16(1243), - 26: uint16(1243), - 27: uint16(1243), - 28: uint16(1477), - 29: uint16(1243), - 30: uint16(1243), - 31: uint16(1243), - 32: uint16(1243), - 33: uint16(1564), - 34: uint16(1564), - 35: uint16(1243), - 36: uint16(1243), - 37: uint16(1243), - 38: uint16(1243), - 39: uint16(1243), - 40: uint16(1243), - 41: uint16(1243), - 42: uint16(1243), - 43: uint16(1393), - 44: uint16(1243), - 45: uint16(1400), - 46: uint16(1243), - 47: uint16(1243), - 48: uint16(1243), - 49: uint16(1243), - 50: uint16(1243), - 51: uint16(1479), - 52: uint16(1480), - 53: uint16(1243), - 54: uint16(1243), - 55: uint16(1243), - 56: uint16(1530), - 57: uint16(1532), - 58: uint16(1495), - 59: uint16(1407), - 60: uint16(1406), - 61: uint16(1405), - 62: uint16(1404), - 63: uint16(1513), - 64: uint16(1372), - 65: uint16(1398), - 66: uint16(1391), - 67: uint16(1395), - 68: uint16(1474), - 69: uint16(1475), - 70: uint16(1473), - 71: uint16(1626), - 72: uint16(1480), - 73: uint16(1479), - 74: uint16(1243), - 75: uint16(1394), - 76: uint16(1442), - 77: uint16(1458), - 78: uint16(1441), - 79: uint16(1243), - 80: uint16(1243), - 81: uint16(1243), - 82: uint16(1243), - 83: uint16(1243), - 84: uint16(1243), - 85: uint16(1243), - 86: uint16(1243), - 87: uint16(1243), - 88: uint16(1243), - 89: uint16(1243), - 90: uint16(1243), - 91: uint16(1243), - 92: uint16(1243), - 93: uint16(1243), - 94: uint16(1243), - 95: uint16(1243), - 96: uint16(1243), - 97: uint16(1243), - 98: uint16(1243), - 99: uint16(1243), - 100: uint16(1243), - 101: uint16(1243), - 102: uint16(1243), - 103: uint16(1243), - 104: uint16(1243), - 105: uint16(1243), - 106: uint16(1243), - 107: uint16(1243), - 108: uint16(1243), - 109: uint16(1243), - 110: uint16(1243), - 111: uint16(1243), - 112: uint16(1243), - 113: uint16(1243), - 114: uint16(1243), - 115: uint16(1243), - 116: uint16(1243), - 117: uint16(1243), - 118: uint16(1243), - 119: uint16(1243), - 120: uint16(1243), - 121: uint16(1243), - 122: uint16(1243), - 123: uint16(1243), - 124: uint16(1243), - 125: uint16(1243), - 126: uint16(1243), - 127: uint16(1243), - 128: uint16(1243), - 129: uint16(1243), - 130: uint16(1243), - 131: uint16(1450), - 132: uint16(1457), - 133: uint16(1456), - 134: uint16(1455), - 135: uint16(1464), - 136: uint16(1454), - 137: uint16(1451), - 138: uint16(1444), - 139: uint16(1443), - 140: uint16(1445), - 141: uint16(1446), - 142: uint16(1243), - 143: uint16(1243), - 144: uint16(1267), - 145: uint16(1243), - 146: uint16(1243), - 147: uint16(1264), - 148: uint16(1318), - 149: uint16(1243), - 150: uint16(1243), - 151: uint16(1243), - 152: uint16(1243), - 153: uint16(1243), - 154: uint16(1550), - 155: uint16(1549), - 156: uint16(1243), - 157: uint16(1447), - 158: uint16(1243), - 159: uint16(1276), - 160: uint16(1435), - 161: uint16(1434), - 162: uint16(1433), - 163: uint16(1461), - 164: uint16(1448), - 165: uint16(1460), - 166: uint16(1459), - 167: uint16(1538), - 168: uint16(1600), - 169: uint16(1599), - 170: uint16(1496), - 171: uint16(1243), - 172: uint16(1243), - 173: uint16(1243), - 174: uint16(1243), - 175: uint16(1243), - 176: uint16(1243), - 177: uint16(1564), - 178: uint16(1243), - 179: uint16(1243), - 180: uint16(1243), - 181: uint16(1243), - 182: uint16(1243), - 183: uint16(1243), - 184: uint16(1243), - 185: uint16(1243), - 186: uint16(1243), - 187: uint16(1243), - 188: uint16(1243), - 189: uint16(1243), - 190: uint16(1243), - 191: uint16(1243), - 192: uint16(1243), - 193: uint16(1243), - 194: uint16(1243), - 195: uint16(1243), - 196: uint16(1243), - 197: uint16(1243), - 198: uint16(1243), - 199: uint16(1243), - 200: uint16(1243), - 201: uint16(1374), - 202: uint16(1564), - 203: uint16(1564), - 204: uint16(1243), - 205: uint16(1276), - 206: uint16(1564), - 207: uint16(1564), - 208: uint16(1375), - 209: uint16(1375), - 210: uint16(1272), - 211: uint16(1272), - 212: uint16(1378), - 213: uint16(1243), - 214: uint16(1545), - 215: uint16(1345), - 216: uint16(1345), - 217: uint16(1345), - 218: uint16(1345), - 219: uint16(1354), - 220: uint16(1345), - 221: uint16(1243), - 222: uint16(1243), - 223: uint16(1243), - 224: uint16(1243), - 225: uint16(1243), - 226: uint16(1243), - 227: uint16(1243), - 228: uint16(1243), - 229: uint16(1243), - 230: uint16(1243), - 231: uint16(1243), - 232: uint16(1243), - 233: uint16(1243), - 234: uint16(1243), - 235: uint16(1243), - 236: uint16(1535), - 237: uint16(1533), - 238: uint16(1243), - 239: uint16(1243), - 240: uint16(1243), - 241: uint16(1243), - 242: uint16(1243), - 243: uint16(1243), - 244: uint16(1243), - 245: uint16(1243), - 246: uint16(1243), - 247: uint16(1243), - 248: uint16(1243), - 249: uint16(1243), - 250: uint16(1243), - 251: uint16(1243), - 252: uint16(1243), - 253: uint16(1243), - 254: uint16(1243), - 255: uint16(1243), - 256: uint16(1243), - 257: uint16(1243), - 258: uint16(1243), - 259: uint16(1243), - 260: uint16(1243), - 261: uint16(1243), - 262: uint16(1243), - 263: uint16(1243), - 264: uint16(1243), - 265: uint16(1350), - 266: uint16(1243), - 267: uint16(1243), - 268: uint16(1243), - 269: uint16(1243), - 270: uint16(1243), - 271: uint16(1243), - 272: uint16(1243), - 273: uint16(1243), - 274: uint16(1243), - 275: uint16(1243), - 276: uint16(1243), - 277: uint16(1593), - 278: uint16(1243), - 279: uint16(1508), - 280: uint16(1332), - 281: uint16(1350), - 282: uint16(1350), - 283: uint16(1350), - 284: uint16(1350), - 285: uint16(1352), - 286: uint16(1333), - 287: uint16(1331), - 288: uint16(1344), - 289: uint16(1277), - 290: uint16(1250), - 291: uint16(1640), - 292: uint16(1410), - 293: uint16(1399), - 294: uint16(1351), - 295: uint16(1399), - 296: uint16(1637), - 297: uint16(1397), + 399: int16(1690), + 400: int16(1782), + 401: int16(1779), + 402: int16(1780), + 403: int16(1781), + 404: int16(1785), + 405: int16(1788), + 406: int16(1774), + 407: int16(1775), + 408: int16(1786), + 409: int16(1787), + 410: int16(1789), + 411: int16(1798), +} +var _yy_default = [583]uint16{ + 0: uint16(1663), + 1: uint16(1663), + 2: uint16(1663), + 3: uint16(1491), + 4: uint16(1254), + 5: uint16(1367), + 6: uint16(1254), + 7: uint16(1254), + 8: uint16(1254), + 9: uint16(1254), + 10: uint16(1491), + 11: uint16(1491), + 12: uint16(1491), + 13: uint16(1254), + 14: uint16(1254), + 15: uint16(1254), + 16: uint16(1254), + 17: uint16(1254), + 18: uint16(1254), + 19: uint16(1397), + 20: uint16(1397), + 21: uint16(1544), + 22: uint16(1287), + 23: uint16(1254), + 24: uint16(1254), + 25: uint16(1254), + 26: uint16(1254), + 27: uint16(1254), + 28: uint16(1254), + 29: uint16(1254), + 30: uint16(1254), + 31: uint16(1254), + 32: uint16(1254), + 33: uint16(1254), + 34: uint16(1254), + 35: uint16(1490), + 36: uint16(1254), + 37: uint16(1254), + 38: uint16(1254), + 39: uint16(1254), + 40: uint16(1578), + 41: uint16(1578), + 42: uint16(1254), + 43: uint16(1254), + 44: uint16(1254), + 45: uint16(1254), + 46: uint16(1254), + 47: uint16(1563), + 48: uint16(1562), + 49: uint16(1254), + 50: uint16(1254), + 51: uint16(1254), + 52: uint16(1406), + 53: uint16(1254), + 54: uint16(1413), + 55: uint16(1254), + 56: uint16(1254), + 57: uint16(1254), + 58: uint16(1254), + 59: uint16(1254), + 60: uint16(1492), + 61: uint16(1493), + 62: uint16(1254), + 63: uint16(1254), + 64: uint16(1254), + 65: uint16(1543), + 66: uint16(1545), + 67: uint16(1508), + 68: uint16(1420), + 69: uint16(1419), + 70: uint16(1418), + 71: uint16(1417), + 72: uint16(1526), + 73: uint16(1385), + 74: uint16(1411), + 75: uint16(1404), + 76: uint16(1408), + 77: uint16(1487), + 78: uint16(1488), + 79: uint16(1486), + 80: uint16(1641), + 81: uint16(1493), + 82: uint16(1492), + 83: uint16(1254), + 84: uint16(1407), + 85: uint16(1455), + 86: uint16(1471), + 87: uint16(1454), + 88: uint16(1254), + 89: uint16(1254), + 90: uint16(1254), + 91: uint16(1254), + 92: uint16(1254), + 93: uint16(1254), + 94: uint16(1254), + 95: uint16(1254), + 96: uint16(1254), + 97: uint16(1254), + 98: uint16(1254), + 99: uint16(1254), + 100: uint16(1254), + 101: uint16(1254), + 102: uint16(1254), + 103: uint16(1254), + 104: uint16(1254), + 105: uint16(1254), + 106: uint16(1254), + 107: uint16(1254), + 108: uint16(1254), + 109: uint16(1254), + 110: uint16(1254), + 111: uint16(1254), + 112: uint16(1254), + 113: uint16(1254), + 114: uint16(1254), + 115: uint16(1254), + 116: uint16(1254), + 117: uint16(1254), + 118: uint16(1254), + 119: uint16(1254), + 120: uint16(1254), + 121: uint16(1254), + 122: uint16(1254), + 123: uint16(1254), + 124: uint16(1254), + 125: uint16(1254), + 126: uint16(1254), + 127: uint16(1254), + 128: uint16(1254), + 129: uint16(1254), + 130: uint16(1254), + 131: uint16(1254), + 132: uint16(1254), + 133: uint16(1254), + 134: uint16(1254), + 135: uint16(1254), + 136: uint16(1254), + 137: uint16(1254), + 138: uint16(1254), + 139: uint16(1254), + 140: uint16(1463), + 141: uint16(1470), + 142: uint16(1469), + 143: uint16(1468), + 144: uint16(1477), + 145: uint16(1467), + 146: uint16(1464), + 147: uint16(1457), + 148: uint16(1456), + 149: uint16(1458), + 150: uint16(1459), + 151: uint16(1278), + 152: uint16(1254), + 153: uint16(1275), + 154: uint16(1329), + 155: uint16(1254), + 156: uint16(1254), + 157: uint16(1254), + 158: uint16(1254), + 159: uint16(1254), + 160: uint16(1460), + 161: uint16(1287), + 162: uint16(1448), + 163: uint16(1447), + 164: uint16(1446), + 165: uint16(1254), + 166: uint16(1474), + 167: uint16(1461), + 168: uint16(1473), + 169: uint16(1472), + 170: uint16(1551), + 171: uint16(1615), + 172: uint16(1614), + 173: uint16(1509), + 174: uint16(1254), + 175: uint16(1254), + 176: uint16(1254), + 177: uint16(1254), + 178: uint16(1254), + 179: uint16(1254), + 180: uint16(1578), + 181: uint16(1254), + 182: uint16(1254), + 183: uint16(1254), + 184: uint16(1254), + 185: uint16(1254), + 186: uint16(1254), + 187: uint16(1254), + 188: uint16(1254), + 189: uint16(1254), + 190: uint16(1254), + 191: uint16(1254), + 192: uint16(1254), + 193: uint16(1254), + 194: uint16(1254), + 195: uint16(1254), + 196: uint16(1254), + 197: uint16(1254), + 198: uint16(1254), + 199: uint16(1254), + 200: uint16(1254), + 201: uint16(1254), + 202: uint16(1254), + 203: uint16(1387), + 204: uint16(1578), + 205: uint16(1578), + 206: uint16(1254), + 207: uint16(1287), + 208: uint16(1578), + 209: uint16(1578), + 210: uint16(1388), + 211: uint16(1388), + 212: uint16(1283), + 213: uint16(1283), + 214: uint16(1391), + 215: uint16(1558), + 216: uint16(1358), + 217: uint16(1358), + 218: uint16(1358), + 219: uint16(1358), + 220: uint16(1367), + 221: uint16(1358), + 222: uint16(1254), + 223: uint16(1254), + 224: uint16(1254), + 225: uint16(1254), + 226: uint16(1254), + 227: uint16(1254), + 228: uint16(1254), + 229: uint16(1254), + 230: uint16(1254), + 231: uint16(1254), + 232: uint16(1254), + 233: uint16(1254), + 234: uint16(1254), + 235: uint16(1254), + 236: uint16(1254), + 237: uint16(1548), + 238: uint16(1546), + 239: uint16(1254), + 240: uint16(1254), + 241: uint16(1254), + 242: uint16(1254), + 243: uint16(1254), + 244: uint16(1254), + 245: uint16(1254), + 246: uint16(1254), + 247: uint16(1254), + 248: uint16(1254), + 249: uint16(1254), + 250: uint16(1254), + 251: uint16(1254), + 252: uint16(1254), + 253: uint16(1254), + 254: uint16(1254), + 255: uint16(1254), + 256: uint16(1254), + 257: uint16(1254), + 258: uint16(1254), + 259: uint16(1254), + 260: uint16(1254), + 261: uint16(1254), + 262: uint16(1254), + 263: uint16(1254), + 264: uint16(1254), + 265: uint16(1254), + 266: uint16(1363), + 267: uint16(1254), + 268: uint16(1254), + 269: uint16(1254), + 270: uint16(1254), + 271: uint16(1254), + 272: uint16(1254), + 273: uint16(1254), + 274: uint16(1254), + 275: uint16(1254), + 276: uint16(1254), + 277: uint16(1254), + 278: uint16(1608), + 279: uint16(1254), + 280: uint16(1521), + 281: uint16(1343), + 282: uint16(1363), + 283: uint16(1363), + 284: uint16(1363), + 285: uint16(1363), + 286: uint16(1365), + 287: uint16(1344), + 288: uint16(1342), + 289: uint16(1357), + 290: uint16(1288), + 291: uint16(1261), + 292: uint16(1655), + 293: uint16(1423), + 294: uint16(1412), + 295: uint16(1364), + 296: uint16(1412), + 297: uint16(1652), 298: uint16(1410), - 299: uint16(1410), - 300: uint16(1397), + 299: uint16(1423), + 300: uint16(1423), 301: uint16(1410), - 302: uint16(1351), - 303: uint16(1637), - 304: uint16(1293), - 305: uint16(1615), - 306: uint16(1288), - 307: uint16(1384), - 308: uint16(1384), - 309: uint16(1384), - 310: uint16(1374), - 311: uint16(1374), - 312: uint16(1374), - 313: uint16(1374), - 314: uint16(1378), - 315: uint16(1378), - 316: uint16(1476), - 317: uint16(1351), - 318: uint16(1344), - 319: uint16(1243), - 320: uint16(1640), - 321: uint16(1640), - 322: uint16(1360), - 323: uint16(1360), - 324: uint16(1639), - 325: uint16(1639), - 326: uint16(1360), - 327: uint16(1496), - 328: uint16(1623), - 329: uint16(1419), - 330: uint16(1321), - 331: uint16(1327), - 332: uint16(1327), - 333: uint16(1327), - 334: uint16(1327), - 335: uint16(1360), - 336: uint16(1261), - 337: uint16(1397), - 338: uint16(1623), - 339: uint16(1623), - 340: uint16(1397), - 341: uint16(1419), - 342: uint16(1321), - 343: uint16(1397), - 344: uint16(1321), - 345: uint16(1397), - 346: uint16(1360), - 347: uint16(1261), - 348: uint16(1512), - 349: uint16(1634), - 350: uint16(1360), - 351: uint16(1261), - 352: uint16(1486), - 353: uint16(1360), - 354: uint16(1261), - 355: uint16(1360), - 356: uint16(1261), - 357: uint16(1486), - 358: uint16(1319), - 359: uint16(1319), - 360: uint16(1319), - 361: uint16(1308), - 362: uint16(1243), - 363: uint16(1243), - 364: uint16(1486), - 365: uint16(1319), - 366: uint16(1293), - 367: uint16(1319), - 368: uint16(1308), + 302: uint16(1423), + 303: uint16(1364), + 304: uint16(1652), + 305: uint16(1304), + 306: uint16(1630), + 307: uint16(1299), + 308: uint16(1397), + 309: uint16(1397), + 310: uint16(1397), + 311: uint16(1387), + 312: uint16(1387), + 313: uint16(1387), + 314: uint16(1387), + 315: uint16(1391), + 316: uint16(1391), + 317: uint16(1489), + 318: uint16(1364), + 319: uint16(1357), + 320: uint16(1254), + 321: uint16(1655), + 322: uint16(1655), + 323: uint16(1373), + 324: uint16(1373), + 325: uint16(1654), + 326: uint16(1654), + 327: uint16(1373), + 328: uint16(1509), + 329: uint16(1638), + 330: uint16(1432), + 331: uint16(1332), + 332: uint16(1338), + 333: uint16(1338), + 334: uint16(1338), + 335: uint16(1338), + 336: uint16(1373), + 337: uint16(1272), + 338: uint16(1410), + 339: uint16(1638), + 340: uint16(1638), + 341: uint16(1410), + 342: uint16(1432), + 343: uint16(1332), + 344: uint16(1410), + 345: uint16(1332), + 346: uint16(1410), + 347: uint16(1373), + 348: uint16(1272), + 349: uint16(1525), + 350: uint16(1649), + 351: uint16(1373), + 352: uint16(1272), + 353: uint16(1499), + 354: uint16(1373), + 355: uint16(1272), + 356: uint16(1373), + 357: uint16(1272), + 358: uint16(1499), + 359: uint16(1330), + 360: uint16(1330), + 361: uint16(1330), + 362: uint16(1319), + 363: uint16(1254), + 364: uint16(1254), + 365: uint16(1499), + 366: uint16(1330), + 367: uint16(1304), + 368: uint16(1330), 369: uint16(1319), - 370: uint16(1319), - 371: uint16(1582), - 372: uint16(1243), - 373: uint16(1490), - 374: uint16(1490), - 375: uint16(1486), - 376: uint16(1360), - 377: uint16(1574), - 378: uint16(1574), - 379: uint16(1387), - 380: uint16(1387), - 381: uint16(1392), - 382: uint16(1378), - 383: uint16(1481), - 384: uint16(1360), - 385: uint16(1243), - 386: uint16(1392), - 387: uint16(1390), - 388: uint16(1388), - 389: uint16(1397), - 390: uint16(1311), - 391: uint16(1596), - 392: uint16(1596), - 393: uint16(1592), - 394: uint16(1592), - 395: uint16(1592), - 396: uint16(1645), - 397: uint16(1645), - 398: uint16(1545), - 399: uint16(1608), - 400: uint16(1276), - 401: uint16(1276), - 402: uint16(1276), - 403: uint16(1276), - 404: uint16(1608), - 405: uint16(1295), - 406: uint16(1295), - 407: uint16(1277), - 408: uint16(1277), - 409: uint16(1276), - 410: uint16(1608), - 411: uint16(1243), - 412: uint16(1243), - 413: uint16(1243), - 414: uint16(1243), - 415: uint16(1243), - 416: uint16(1243), - 417: uint16(1603), - 418: uint16(1243), - 419: uint16(1540), - 420: uint16(1497), - 421: uint16(1364), - 422: uint16(1243), - 423: uint16(1243), - 424: uint16(1243), - 425: uint16(1243), - 426: uint16(1243), - 427: uint16(1243), - 428: uint16(1243), - 429: uint16(1243), - 430: uint16(1243), - 431: uint16(1243), - 432: uint16(1243), - 433: uint16(1243), - 434: uint16(1243), - 435: uint16(1243), - 436: uint16(1243), - 437: uint16(1243), - 438: uint16(1551), - 439: uint16(1243), - 440: uint16(1243), - 441: uint16(1243), - 442: uint16(1243), - 443: uint16(1243), - 444: uint16(1243), - 445: uint16(1243), - 446: uint16(1243), - 447: uint16(1243), - 448: uint16(1243), - 449: uint16(1424), - 450: uint16(1243), - 451: uint16(1246), - 452: uint16(1542), - 453: uint16(1243), - 454: uint16(1243), - 455: uint16(1243), - 456: uint16(1243), - 457: uint16(1243), - 458: uint16(1243), - 459: uint16(1243), - 460: uint16(1243), - 461: uint16(1401), - 462: uint16(1402), - 463: uint16(1365), - 464: uint16(1243), - 465: uint16(1243), - 466: uint16(1243), - 467: uint16(1243), - 468: uint16(1243), - 469: uint16(1243), - 470: uint16(1243), - 471: uint16(1416), - 472: uint16(1243), - 473: uint16(1243), - 474: uint16(1243), - 475: uint16(1411), - 476: uint16(1243), - 477: uint16(1243), - 478: uint16(1243), - 479: uint16(1243), - 480: uint16(1243), - 481: uint16(1243), - 482: uint16(1243), - 483: uint16(1243), - 484: uint16(1636), - 485: uint16(1243), - 486: uint16(1243), - 487: uint16(1243), - 488: uint16(1243), - 489: uint16(1243), - 490: uint16(1243), - 491: uint16(1511), - 492: uint16(1510), - 493: uint16(1243), - 494: uint16(1243), - 495: uint16(1362), - 496: uint16(1243), - 497: uint16(1243), - 498: uint16(1243), - 499: uint16(1243), - 500: uint16(1243), - 501: uint16(1243), - 502: uint16(1243), - 503: uint16(1243), - 504: uint16(1243), - 505: uint16(1243), - 506: uint16(1243), - 507: uint16(1243), - 508: uint16(1243), - 509: uint16(1291), - 510: uint16(1243), - 511: uint16(1243), - 512: uint16(1243), - 513: uint16(1243), - 514: uint16(1243), - 515: uint16(1243), - 516: uint16(1243), - 517: uint16(1243), - 518: uint16(1243), - 519: uint16(1243), - 520: uint16(1243), - 521: uint16(1243), - 522: uint16(1243), - 523: uint16(1243), - 524: uint16(1243), - 525: uint16(1243), - 526: uint16(1243), - 527: uint16(1243), - 528: uint16(1243), - 529: uint16(1243), - 530: uint16(1243), - 531: uint16(1243), - 532: uint16(1243), - 533: uint16(1389), - 534: uint16(1243), - 535: uint16(1243), - 536: uint16(1243), - 537: uint16(1243), - 538: uint16(1243), - 539: uint16(1243), - 540: uint16(1243), - 541: uint16(1243), - 542: uint16(1243), - 543: uint16(1243), - 544: uint16(1243), - 545: uint16(1243), - 546: uint16(1243), - 547: uint16(1243), - 548: uint16(1579), - 549: uint16(1379), - 550: uint16(1243), - 551: uint16(1243), - 552: uint16(1243), - 553: uint16(1243), - 554: uint16(1627), - 555: uint16(1243), - 556: uint16(1243), - 557: uint16(1243), - 558: uint16(1243), - 559: uint16(1243), - 560: uint16(1243), - 561: uint16(1243), - 562: uint16(1243), - 563: uint16(1243), - 564: uint16(1243), - 565: uint16(1243), - 566: uint16(1243), - 567: uint16(1243), - 568: uint16(1243), - 569: uint16(1619), - 570: uint16(1335), - 571: uint16(1425), - 572: uint16(1243), - 573: uint16(1428), - 574: uint16(1265), - 575: uint16(1243), - 576: uint16(1255), - 577: uint16(1243), - 578: uint16(1243), + 370: uint16(1330), + 371: uint16(1330), + 372: uint16(1596), + 373: uint16(1254), + 374: uint16(1503), + 375: uint16(1503), + 376: uint16(1499), + 377: uint16(1373), + 378: uint16(1588), + 379: uint16(1588), + 380: uint16(1400), + 381: uint16(1400), + 382: uint16(1405), + 383: uint16(1391), + 384: uint16(1494), + 385: uint16(1373), + 386: uint16(1254), + 387: uint16(1405), + 388: uint16(1403), + 389: uint16(1401), + 390: uint16(1410), + 391: uint16(1322), + 392: uint16(1611), + 393: uint16(1611), + 394: uint16(1607), + 395: uint16(1607), + 396: uint16(1607), + 397: uint16(1660), + 398: uint16(1660), + 399: uint16(1558), + 400: uint16(1623), + 401: uint16(1287), + 402: uint16(1287), + 403: uint16(1287), + 404: uint16(1287), + 405: uint16(1623), + 406: uint16(1306), + 407: uint16(1306), + 408: uint16(1288), + 409: uint16(1288), + 410: uint16(1287), + 411: uint16(1623), + 412: uint16(1254), + 413: uint16(1254), + 414: uint16(1254), + 415: uint16(1254), + 416: uint16(1254), + 417: uint16(1254), + 418: uint16(1618), + 419: uint16(1254), + 420: uint16(1553), + 421: uint16(1510), + 422: uint16(1377), + 423: uint16(1254), + 424: uint16(1254), + 425: uint16(1254), + 426: uint16(1254), + 427: uint16(1254), + 428: uint16(1254), + 429: uint16(1254), + 430: uint16(1254), + 431: uint16(1254), + 432: uint16(1254), + 433: uint16(1254), + 434: uint16(1254), + 435: uint16(1254), + 436: uint16(1254), + 437: uint16(1254), + 438: uint16(1254), + 439: uint16(1564), + 440: uint16(1254), + 441: uint16(1254), + 442: uint16(1254), + 443: uint16(1254), + 444: uint16(1254), + 445: uint16(1254), + 446: uint16(1254), + 447: uint16(1254), + 448: uint16(1254), + 449: uint16(1254), + 450: uint16(1254), + 451: uint16(1437), + 452: uint16(1254), + 453: uint16(1257), + 454: uint16(1555), + 455: uint16(1254), + 456: uint16(1254), + 457: uint16(1254), + 458: uint16(1254), + 459: uint16(1254), + 460: uint16(1254), + 461: uint16(1254), + 462: uint16(1254), + 463: uint16(1414), + 464: uint16(1415), + 465: uint16(1378), + 466: uint16(1254), + 467: uint16(1254), + 468: uint16(1254), + 469: uint16(1254), + 470: uint16(1254), + 471: uint16(1254), + 472: uint16(1254), + 473: uint16(1429), + 474: uint16(1254), + 475: uint16(1254), + 476: uint16(1254), + 477: uint16(1424), + 478: uint16(1254), + 479: uint16(1254), + 480: uint16(1254), + 481: uint16(1254), + 482: uint16(1254), + 483: uint16(1254), + 484: uint16(1254), + 485: uint16(1254), + 486: uint16(1651), + 487: uint16(1254), + 488: uint16(1254), + 489: uint16(1254), + 490: uint16(1254), + 491: uint16(1254), + 492: uint16(1254), + 493: uint16(1524), + 494: uint16(1523), + 495: uint16(1254), + 496: uint16(1254), + 497: uint16(1375), + 498: uint16(1254), + 499: uint16(1254), + 500: uint16(1254), + 501: uint16(1254), + 502: uint16(1254), + 503: uint16(1254), + 504: uint16(1254), + 505: uint16(1254), + 506: uint16(1254), + 507: uint16(1254), + 508: uint16(1254), + 509: uint16(1254), + 510: uint16(1254), + 511: uint16(1302), + 512: uint16(1254), + 513: uint16(1254), + 514: uint16(1254), + 515: uint16(1254), + 516: uint16(1254), + 517: uint16(1254), + 518: uint16(1254), + 519: uint16(1254), + 520: uint16(1254), + 521: uint16(1254), + 522: uint16(1254), + 523: uint16(1254), + 524: uint16(1254), + 525: uint16(1254), + 526: uint16(1254), + 527: uint16(1254), + 528: uint16(1254), + 529: uint16(1254), + 530: uint16(1254), + 531: uint16(1254), + 532: uint16(1254), + 533: uint16(1254), + 534: uint16(1254), + 535: uint16(1402), + 536: uint16(1254), + 537: uint16(1254), + 538: uint16(1254), + 539: uint16(1254), + 540: uint16(1254), + 541: uint16(1254), + 542: uint16(1254), + 543: uint16(1254), + 544: uint16(1254), + 545: uint16(1254), + 546: uint16(1254), + 547: uint16(1254), + 548: uint16(1254), + 549: uint16(1254), + 550: uint16(1593), + 551: uint16(1392), + 552: uint16(1254), + 553: uint16(1254), + 554: uint16(1254), + 555: uint16(1254), + 556: uint16(1642), + 557: uint16(1254), + 558: uint16(1254), + 559: uint16(1254), + 560: uint16(1254), + 561: uint16(1352), + 562: uint16(1254), + 563: uint16(1254), + 564: uint16(1254), + 565: uint16(1254), + 566: uint16(1254), + 567: uint16(1254), + 568: uint16(1254), + 569: uint16(1254), + 570: uint16(1254), + 571: uint16(1254), + 572: uint16(1254), + 573: uint16(1634), + 574: uint16(1346), + 575: uint16(1438), + 576: uint16(1254), + 577: uint16(1441), + 578: uint16(1276), + 579: uint16(1254), + 580: uint16(1266), + 581: uint16(1254), + 582: uint16(1254), } /********** End of lemon-generated parsing tables *****************************/ @@ -158117,7 +159624,7 @@ var _yy_default = [579]uint16{ // ** to revert to identifiers if they keyword does not apply in the context where // ** it appears. // */ -var _yyFallback = [185]uint16{ +var _yyFallback = [186]uint16{ 2: uint16(59), 3: uint16(59), 4: uint16(59), @@ -158230,8 +159737,9 @@ type yyStackEntry = TyyStackEntry type TyyParser1 = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser1 = TyyParser1 @@ -158239,14 +159747,46 @@ type yyParser1 = TyyParser1 type TyyParser = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser = TyyParser /* #include */ +// C documentation +// +// /* +// ** Try to increase the size of the parser stack. Return the number +// ** of errors. Return 0 on success. +// */ +func _yyGrowStack(tls *libc.TLS, p uintptr) (r int32) { + var idx, newSize, oldSize int32 + var pNew uintptr + _, _, _, _ = idx, newSize, oldSize, pNew + oldSize = int32(1) + int32((int64((*TyyParser)(unsafe.Pointer(p)).FyystackEnd)-int64((*TyyParser)(unsafe.Pointer(p)).Fyystack))/24) + newSize = oldSize*int32(2) + int32(100) + idx = int32((int64((*TyyParser)(unsafe.Pointer(p)).Fyytos) - int64((*TyyParser)(unsafe.Pointer(p)).Fyystack)) / 24) + if (*TyyParser)(unsafe.Pointer(p)).Fyystack == p+32 { + pNew = _parserStackRealloc(tls, uintptr(0), uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + libc.X__builtin___memcpy_chk(tls, pNew, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(oldSize)*uint64(24), libc.X__builtin_object_size(tls, pNew, 0)) + } else { + pNew = _parserStackRealloc(tls, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + } + (*TyyParser)(unsafe.Pointer(p)).Fyystack = pNew + (*TyyParser)(unsafe.Pointer(p)).Fyytos = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(idx)*24 + (*TyyParser)(unsafe.Pointer(p)).FyystackEnd = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(newSize-int32(1))*24 + return 0 +} + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -158262,10 +159802,11 @@ func _sqlite3ParserInit(tls *libc.TLS, yypRawParser uintptr, pParse uintptr) { _ = yypParser yypParser = yypRawParser (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = yypParser + 16 - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fstateno = uint16(0) - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fmajor = uint16(0) - (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = yypParser + 16 + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack = yypParser + 32 + (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fstateno = uint16(0) + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fmajor = uint16(0) } // C documentation @@ -158293,103 +159834,105 @@ func _yy_destructor(tls *libc.TLS, yypParser uintptr, yymajor uint16, yypminor u ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case int32(204): /* select */ + case int32(205): /* select */ + fallthrough + case int32(240): /* selectnowith */ fallthrough - case int32(239): /* selectnowith */ + case int32(241): /* oneselect */ fallthrough - case int32(240): /* oneselect */ + case int32(253): /* values */ fallthrough - case int32(252): /* values */ + case int32(255): /* mvalues */ _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(216): /* term */ + case int32(217): /* term */ fallthrough - case int32(217): /* expr */ + case int32(218): /* expr */ fallthrough - case int32(246): /* where_opt */ + case int32(247): /* where_opt */ fallthrough - case int32(248): /* having_opt */ + case int32(249): /* having_opt */ fallthrough - case int32(267): /* where_opt_ret */ + case int32(269): /* where_opt_ret */ fallthrough - case int32(278): /* case_operand */ + case int32(280): /* case_operand */ fallthrough - case int32(280): /* case_else */ + case int32(282): /* case_else */ fallthrough - case int32(283): /* vinto */ + case int32(285): /* vinto */ fallthrough - case int32(290): /* when_clause */ + case int32(292): /* when_clause */ fallthrough - case int32(295): /* key_opt */ + case int32(297): /* key_opt */ fallthrough - case int32(311): /* filter_clause */ + case int32(314): /* filter_clause */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(221): /* eidlist_opt */ + case int32(222): /* eidlist_opt */ fallthrough - case int32(231): /* sortlist */ + case int32(232): /* sortlist */ fallthrough - case int32(232): /* eidlist */ + case int32(233): /* eidlist */ fallthrough - case int32(244): /* selcollist */ + case int32(245): /* selcollist */ fallthrough - case int32(247): /* groupby_opt */ + case int32(248): /* groupby_opt */ fallthrough - case int32(249): /* orderby_opt */ + case int32(250): /* orderby_opt */ fallthrough - case int32(253): /* nexprlist */ + case int32(254): /* nexprlist */ fallthrough - case int32(254): /* sclp */ + case int32(256): /* sclp */ fallthrough - case int32(261): /* exprlist */ + case int32(263): /* exprlist */ fallthrough - case int32(268): /* setlist */ + case int32(270): /* setlist */ fallthrough - case int32(277): /* paren_exprlist */ + case int32(279): /* paren_exprlist */ fallthrough - case int32(279): /* case_exprlist */ + case int32(281): /* case_exprlist */ fallthrough - case int32(310): /* part_opt */ + case int32(313): /* part_opt */ _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(238): /* fullname */ + case int32(239): /* fullname */ fallthrough - case int32(245): /* from */ + case int32(246): /* from */ fallthrough - case int32(256): /* seltablist */ + case int32(258): /* seltablist */ fallthrough - case int32(257): /* stl_prefix */ + case int32(259): /* stl_prefix */ fallthrough - case int32(262): /* xfullname */ + case int32(264): /* xfullname */ _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(241): /* wqlist */ + case int32(242): /* wqlist */ _sqlite3WithDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(251): /* window_clause */ + case int32(252): /* window_clause */ fallthrough - case int32(306): /* windowdefn_list */ + case int32(309): /* windowdefn_list */ _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(263): /* idlist */ + case int32(265): /* idlist */ fallthrough - case int32(270): /* idlist_opt */ + case int32(272): /* idlist_opt */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(273): /* filter_over */ + case int32(275): /* filter_over */ fallthrough - case int32(307): /* windowdefn */ + case int32(310): /* windowdefn */ fallthrough - case int32(308): /* window */ + case int32(311): /* window */ fallthrough - case int32(309): /* frame_opt */ + case int32(312): /* frame_opt */ fallthrough - case int32(312): /* over_clause */ + case int32(315): /* over_clause */ _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(286): /* trigger_cmd_list */ + case int32(288): /* trigger_cmd_list */ fallthrough - case int32(291): /* trigger_cmd */ + case int32(293): /* trigger_cmd */ _sqlite3DeleteTriggerStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(288): /* trigger_event */ + case int32(290): /* trigger_event */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TTrigEvent)(unsafe.Pointer(yypminor))).Fb) - case int32(314): /* frame_bound */ + case int32(317): /* frame_bound */ fallthrough - case int32(315): /* frame_bound_s */ + case int32(318): /* frame_bound_s */ fallthrough - case int32(316): /* frame_bound_e */ + case int32(319): /* frame_bound_e */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TFrameBound)(unsafe.Pointer(yypminor))).FpExpr) break /********* End destructor definitions *****************************************/ @@ -158423,11 +159966,20 @@ func _yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var pParser, yytos uintptr + _, _ = pParser, yytos pParser = p - for (*TyyParser)(unsafe.Pointer(pParser)).Fyytos > pParser+16 { - _yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling yy_pop_parser_stack() for each + ** element left in the stack */ + yytos = (*TyyParser)(unsafe.Pointer(pParser)).Fyytos + for yytos > (*TyyParser)(unsafe.Pointer(pParser)).Fyystack { + if int32((*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor) >= int32(YY_MIN_DSTRCTR) { + _yy_destructor(tls, pParser, (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor, yytos+8) + } + yytos -= 24 + } + if (*TyyParser)(unsafe.Pointer(pParser)).Fyystack != pParser+32 { + Xsqlite3_free(tls, (*TyyParser)(unsafe.Pointer(pParser)).Fyystack) } } @@ -158508,13 +160060,13 @@ func _yyStackOverflow(tls *libc.TLS, yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse - for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > yypParser+16 { + for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack { _yy_pop_parser_stack(tls, yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23731, 0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) /******** End %stack_overflow code ********************************************/ /* Suppress warning about unused %extra_argument var */ (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse @@ -158533,15 +160085,18 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint var yytos uintptr _ = yytos (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos += 24 - if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 - _yyStackOverflow(tls, yypParser) - return + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + if yytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { + if _yyGrowStack(tls, yypParser) != 0 { + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 + _yyStackOverflow(tls, yypParser) + return + } + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos } if int32(yyNewState) > int32(YY_MAX_SHIFT) { yyNewState = uint16(int32(yyNewState) + (libc.Int32FromInt32(YY_MIN_REDUCE) - libc.Int32FromInt32(YY_MIN_SHIFTREDUCE))) } - yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos (*TyyStackEntry)(unsafe.Pointer(yytos)).Fstateno = yyNewState (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor = yyMajor *(*TToken)(unsafe.Pointer(yytos + 8)) = yyMinor @@ -158551,419 +160106,423 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint // // /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side // ** of that rule */ -var _yyRuleInfoLhs = [405]uint16{ - 0: uint16(189), - 1: uint16(189), - 2: uint16(188), - 3: uint16(190), - 4: uint16(191), - 5: uint16(191), - 6: uint16(191), - 7: uint16(191), - 8: uint16(190), - 9: uint16(190), - 10: uint16(190), - 11: uint16(190), - 12: uint16(190), - 13: uint16(195), - 14: uint16(197), - 15: uint16(199), - 16: uint16(199), - 17: uint16(198), - 18: uint16(198), - 19: uint16(196), - 20: uint16(196), - 21: uint16(203), - 22: uint16(203), - 23: uint16(205), - 24: uint16(205), - 25: uint16(206), - 26: uint16(208), - 27: uint16(208), - 28: uint16(208), - 29: uint16(209), - 30: uint16(213), - 31: uint16(214), - 32: uint16(215), - 33: uint16(215), - 34: uint16(215), - 35: uint16(215), - 36: uint16(215), - 37: uint16(215), - 38: uint16(215), - 39: uint16(215), - 40: uint16(215), - 41: uint16(215), - 42: uint16(215), - 43: uint16(215), - 44: uint16(215), - 45: uint16(224), - 46: uint16(224), - 47: uint16(220), - 48: uint16(220), - 49: uint16(222), - 50: uint16(222), - 51: uint16(225), - 52: uint16(225), - 53: uint16(225), - 54: uint16(225), - 55: uint16(226), - 56: uint16(226), - 57: uint16(226), - 58: uint16(226), - 59: uint16(226), - 60: uint16(223), - 61: uint16(223), - 62: uint16(227), - 63: uint16(227), - 64: uint16(227), - 65: uint16(202), - 66: uint16(229), - 67: uint16(230), - 68: uint16(230), - 69: uint16(230), - 70: uint16(230), - 71: uint16(230), - 72: uint16(233), - 73: uint16(218), - 74: uint16(218), - 75: uint16(234), - 76: uint16(234), - 77: uint16(235), - 78: uint16(235), - 79: uint16(190), - 80: uint16(237), - 81: uint16(237), - 82: uint16(190), - 83: uint16(190), - 84: uint16(190), - 85: uint16(204), - 86: uint16(204), - 87: uint16(204), - 88: uint16(239), - 89: uint16(242), - 90: uint16(242), - 91: uint16(242), - 92: uint16(240), - 93: uint16(240), - 94: uint16(252), - 95: uint16(252), - 96: uint16(243), - 97: uint16(243), - 98: uint16(243), - 99: uint16(254), +var _yyRuleInfoLhs = [409]uint16{ + 0: uint16(190), + 1: uint16(190), + 2: uint16(189), + 3: uint16(191), + 4: uint16(192), + 5: uint16(192), + 6: uint16(192), + 7: uint16(192), + 8: uint16(191), + 9: uint16(191), + 10: uint16(191), + 11: uint16(191), + 12: uint16(191), + 13: uint16(196), + 14: uint16(198), + 15: uint16(200), + 16: uint16(200), + 17: uint16(199), + 18: uint16(199), + 19: uint16(197), + 20: uint16(197), + 21: uint16(204), + 22: uint16(204), + 23: uint16(206), + 24: uint16(206), + 25: uint16(207), + 26: uint16(209), + 27: uint16(209), + 28: uint16(209), + 29: uint16(210), + 30: uint16(214), + 31: uint16(215), + 32: uint16(216), + 33: uint16(216), + 34: uint16(216), + 35: uint16(216), + 36: uint16(216), + 37: uint16(216), + 38: uint16(216), + 39: uint16(216), + 40: uint16(216), + 41: uint16(216), + 42: uint16(216), + 43: uint16(216), + 44: uint16(216), + 45: uint16(225), + 46: uint16(225), + 47: uint16(221), + 48: uint16(221), + 49: uint16(223), + 50: uint16(223), + 51: uint16(226), + 52: uint16(226), + 53: uint16(226), + 54: uint16(226), + 55: uint16(227), + 56: uint16(227), + 57: uint16(227), + 58: uint16(227), + 59: uint16(227), + 60: uint16(224), + 61: uint16(224), + 62: uint16(228), + 63: uint16(228), + 64: uint16(228), + 65: uint16(203), + 66: uint16(230), + 67: uint16(231), + 68: uint16(231), + 69: uint16(231), + 70: uint16(231), + 71: uint16(231), + 72: uint16(234), + 73: uint16(219), + 74: uint16(219), + 75: uint16(235), + 76: uint16(235), + 77: uint16(236), + 78: uint16(236), + 79: uint16(191), + 80: uint16(238), + 81: uint16(238), + 82: uint16(191), + 83: uint16(191), + 84: uint16(191), + 85: uint16(205), + 86: uint16(205), + 87: uint16(205), + 88: uint16(240), + 89: uint16(243), + 90: uint16(243), + 91: uint16(243), + 92: uint16(241), + 93: uint16(241), + 94: uint16(253), + 95: uint16(241), + 96: uint16(255), + 97: uint16(255), + 98: uint16(244), + 99: uint16(244), 100: uint16(244), - 101: uint16(244), - 102: uint16(244), - 103: uint16(255), - 104: uint16(255), - 105: uint16(245), - 106: uint16(245), - 107: uint16(257), - 108: uint16(257), - 109: uint16(256), - 110: uint16(256), - 111: uint16(256), - 112: uint16(256), - 113: uint16(256), - 114: uint16(200), - 115: uint16(200), - 116: uint16(238), - 117: uint16(238), - 118: uint16(262), - 119: uint16(262), - 120: uint16(262), - 121: uint16(262), - 122: uint16(258), - 123: uint16(258), - 124: uint16(258), - 125: uint16(258), - 126: uint16(259), - 127: uint16(259), - 128: uint16(259), - 129: uint16(264), - 130: uint16(260), - 131: uint16(260), - 132: uint16(249), - 133: uint16(249), - 134: uint16(231), - 135: uint16(231), - 136: uint16(219), - 137: uint16(219), - 138: uint16(219), - 139: uint16(265), - 140: uint16(265), - 141: uint16(265), - 142: uint16(247), - 143: uint16(247), + 101: uint16(256), + 102: uint16(245), + 103: uint16(245), + 104: uint16(245), + 105: uint16(257), + 106: uint16(257), + 107: uint16(246), + 108: uint16(246), + 109: uint16(259), + 110: uint16(259), + 111: uint16(258), + 112: uint16(258), + 113: uint16(258), + 114: uint16(258), + 115: uint16(258), + 116: uint16(201), + 117: uint16(201), + 118: uint16(239), + 119: uint16(239), + 120: uint16(264), + 121: uint16(264), + 122: uint16(264), + 123: uint16(264), + 124: uint16(260), + 125: uint16(260), + 126: uint16(260), + 127: uint16(260), + 128: uint16(261), + 129: uint16(261), + 130: uint16(261), + 131: uint16(266), + 132: uint16(262), + 133: uint16(262), + 134: uint16(250), + 135: uint16(250), + 136: uint16(232), + 137: uint16(232), + 138: uint16(220), + 139: uint16(220), + 140: uint16(220), + 141: uint16(267), + 142: uint16(267), + 143: uint16(267), 144: uint16(248), 145: uint16(248), - 146: uint16(250), - 147: uint16(250), - 148: uint16(250), - 149: uint16(250), - 150: uint16(190), - 151: uint16(246), - 152: uint16(246), - 153: uint16(267), - 154: uint16(267), - 155: uint16(267), - 156: uint16(267), - 157: uint16(190), - 158: uint16(268), - 159: uint16(268), - 160: uint16(268), - 161: uint16(268), - 162: uint16(190), - 163: uint16(190), - 164: uint16(271), - 165: uint16(271), - 166: uint16(271), - 167: uint16(271), - 168: uint16(271), - 169: uint16(271), - 170: uint16(272), - 171: uint16(269), - 172: uint16(269), - 173: uint16(270), - 174: uint16(270), - 175: uint16(263), - 176: uint16(263), - 177: uint16(217), - 178: uint16(217), - 179: uint16(217), - 180: uint16(217), - 181: uint16(216), - 182: uint16(216), - 183: uint16(216), + 146: uint16(249), + 147: uint16(249), + 148: uint16(251), + 149: uint16(251), + 150: uint16(251), + 151: uint16(251), + 152: uint16(191), + 153: uint16(247), + 154: uint16(247), + 155: uint16(269), + 156: uint16(269), + 157: uint16(269), + 158: uint16(269), + 159: uint16(191), + 160: uint16(270), + 161: uint16(270), + 162: uint16(270), + 163: uint16(270), + 164: uint16(191), + 165: uint16(191), + 166: uint16(273), + 167: uint16(273), + 168: uint16(273), + 169: uint16(273), + 170: uint16(273), + 171: uint16(273), + 172: uint16(274), + 173: uint16(271), + 174: uint16(271), + 175: uint16(272), + 176: uint16(272), + 177: uint16(265), + 178: uint16(265), + 179: uint16(218), + 180: uint16(218), + 181: uint16(218), + 182: uint16(218), + 183: uint16(217), 184: uint16(217), 185: uint16(217), - 186: uint16(217), - 187: uint16(217), - 188: uint16(217), - 189: uint16(217), - 190: uint16(217), - 191: uint16(217), - 192: uint16(217), - 193: uint16(216), - 194: uint16(217), + 186: uint16(218), + 187: uint16(218), + 188: uint16(218), + 189: uint16(218), + 190: uint16(218), + 191: uint16(218), + 192: uint16(218), + 193: uint16(218), + 194: uint16(218), 195: uint16(217), - 196: uint16(217), - 197: uint16(217), - 198: uint16(217), - 199: uint16(217), - 200: uint16(217), - 201: uint16(217), - 202: uint16(217), - 203: uint16(274), - 204: uint16(217), - 205: uint16(217), - 206: uint16(217), - 207: uint16(217), - 208: uint16(217), - 209: uint16(217), - 210: uint16(217), - 211: uint16(217), - 212: uint16(217), - 213: uint16(217), - 214: uint16(217), - 215: uint16(217), - 216: uint16(275), - 217: uint16(275), - 218: uint16(217), - 219: uint16(276), - 220: uint16(276), - 221: uint16(217), - 222: uint16(217), - 223: uint16(217), - 224: uint16(217), - 225: uint16(217), - 226: uint16(217), - 227: uint16(279), - 228: uint16(279), - 229: uint16(280), - 230: uint16(280), - 231: uint16(278), - 232: uint16(261), - 233: uint16(253), - 234: uint16(253), - 235: uint16(277), - 236: uint16(277), - 237: uint16(190), - 238: uint16(281), - 239: uint16(281), - 240: uint16(221), - 241: uint16(221), - 242: uint16(232), - 243: uint16(232), - 244: uint16(282), - 245: uint16(282), - 246: uint16(190), - 247: uint16(190), - 248: uint16(190), - 249: uint16(283), - 250: uint16(283), - 251: uint16(190), - 252: uint16(190), - 253: uint16(190), - 254: uint16(190), - 255: uint16(190), - 256: uint16(211), - 257: uint16(212), - 258: uint16(190), - 259: uint16(285), - 260: uint16(287), + 196: uint16(218), + 197: uint16(218), + 198: uint16(218), + 199: uint16(218), + 200: uint16(218), + 201: uint16(218), + 202: uint16(218), + 203: uint16(218), + 204: uint16(218), + 205: uint16(276), + 206: uint16(218), + 207: uint16(218), + 208: uint16(218), + 209: uint16(218), + 210: uint16(218), + 211: uint16(218), + 212: uint16(218), + 213: uint16(218), + 214: uint16(218), + 215: uint16(218), + 216: uint16(218), + 217: uint16(218), + 218: uint16(277), + 219: uint16(277), + 220: uint16(218), + 221: uint16(278), + 222: uint16(278), + 223: uint16(218), + 224: uint16(218), + 225: uint16(218), + 226: uint16(218), + 227: uint16(218), + 228: uint16(218), + 229: uint16(281), + 230: uint16(281), + 231: uint16(282), + 232: uint16(282), + 233: uint16(280), + 234: uint16(263), + 235: uint16(254), + 236: uint16(254), + 237: uint16(279), + 238: uint16(279), + 239: uint16(191), + 240: uint16(283), + 241: uint16(283), + 242: uint16(222), + 243: uint16(222), + 244: uint16(233), + 245: uint16(233), + 246: uint16(284), + 247: uint16(284), + 248: uint16(191), + 249: uint16(191), + 250: uint16(191), + 251: uint16(285), + 252: uint16(285), + 253: uint16(191), + 254: uint16(191), + 255: uint16(191), + 256: uint16(191), + 257: uint16(191), + 258: uint16(212), + 259: uint16(213), + 260: uint16(191), 261: uint16(287), - 262: uint16(287), - 263: uint16(288), - 264: uint16(288), - 265: uint16(288), + 262: uint16(289), + 263: uint16(289), + 264: uint16(289), + 265: uint16(290), 266: uint16(290), 267: uint16(290), - 268: uint16(286), - 269: uint16(286), - 270: uint16(292), - 271: uint16(293), - 272: uint16(293), - 273: uint16(291), - 274: uint16(291), - 275: uint16(291), - 276: uint16(291), - 277: uint16(217), - 278: uint16(217), - 279: uint16(236), - 280: uint16(236), - 281: uint16(236), - 282: uint16(190), - 283: uint16(190), - 284: uint16(190), - 285: uint16(295), - 286: uint16(295), - 287: uint16(190), - 288: uint16(190), - 289: uint16(190), - 290: uint16(190), - 291: uint16(190), - 292: uint16(190), - 293: uint16(190), - 294: uint16(296), - 295: uint16(190), - 296: uint16(190), - 297: uint16(190), - 298: uint16(298), - 299: uint16(300), - 300: uint16(301), - 301: uint16(301), - 302: uint16(302), - 303: uint16(266), - 304: uint16(266), - 305: uint16(305), - 306: uint16(305), - 307: uint16(305), - 308: uint16(304), - 309: uint16(241), - 310: uint16(241), - 311: uint16(306), - 312: uint16(307), - 313: uint16(308), - 314: uint16(308), - 315: uint16(308), - 316: uint16(308), - 317: uint16(308), - 318: uint16(309), - 319: uint16(309), - 320: uint16(309), - 321: uint16(313), - 322: uint16(315), - 323: uint16(315), + 268: uint16(292), + 269: uint16(292), + 270: uint16(288), + 271: uint16(288), + 272: uint16(294), + 273: uint16(295), + 274: uint16(295), + 275: uint16(293), + 276: uint16(293), + 277: uint16(293), + 278: uint16(293), + 279: uint16(218), + 280: uint16(218), + 281: uint16(237), + 282: uint16(237), + 283: uint16(237), + 284: uint16(191), + 285: uint16(191), + 286: uint16(191), + 287: uint16(297), + 288: uint16(297), + 289: uint16(191), + 290: uint16(191), + 291: uint16(191), + 292: uint16(191), + 293: uint16(191), + 294: uint16(191), + 295: uint16(191), + 296: uint16(298), + 297: uint16(191), + 298: uint16(191), + 299: uint16(191), + 300: uint16(300), + 301: uint16(302), + 302: uint16(303), + 303: uint16(303), + 304: uint16(304), + 305: uint16(268), + 306: uint16(268), + 307: uint16(307), + 308: uint16(307), + 309: uint16(307), + 310: uint16(306), + 311: uint16(308), + 312: uint16(242), + 313: uint16(242), + 314: uint16(309), + 315: uint16(310), + 316: uint16(311), + 317: uint16(311), + 318: uint16(311), + 319: uint16(311), + 320: uint16(311), + 321: uint16(312), + 322: uint16(312), + 323: uint16(312), 324: uint16(316), - 325: uint16(316), - 326: uint16(314), - 327: uint16(314), - 328: uint16(317), + 325: uint16(318), + 326: uint16(318), + 327: uint16(319), + 328: uint16(319), 329: uint16(317), - 330: uint16(318), - 331: uint16(318), - 332: uint16(318), - 333: uint16(251), - 334: uint16(273), - 335: uint16(273), - 336: uint16(273), - 337: uint16(312), - 338: uint16(312), - 339: uint16(311), - 340: uint16(185), - 341: uint16(186), - 342: uint16(186), - 343: uint16(187), - 344: uint16(187), + 330: uint16(317), + 331: uint16(320), + 332: uint16(320), + 333: uint16(321), + 334: uint16(321), + 335: uint16(321), + 336: uint16(252), + 337: uint16(275), + 338: uint16(275), + 339: uint16(275), + 340: uint16(315), + 341: uint16(315), + 342: uint16(314), + 343: uint16(217), + 344: uint16(186), 345: uint16(187), - 346: uint16(192), - 347: uint16(192), - 348: uint16(192), - 349: uint16(194), - 350: uint16(194), - 351: uint16(190), - 352: uint16(203), - 353: uint16(201), - 354: uint16(201), - 355: uint16(193), - 356: uint16(193), - 357: uint16(208), - 358: uint16(209), - 359: uint16(210), - 360: uint16(210), - 361: uint16(207), - 362: uint16(207), - 363: uint16(215), - 364: uint16(215), - 365: uint16(215), - 366: uint16(202), - 367: uint16(228), - 368: uint16(228), - 369: uint16(229), - 370: uint16(233), - 371: uint16(235), - 372: uint16(239), - 373: uint16(240), - 374: uint16(254), - 375: uint16(255), - 376: uint16(264), - 377: uint16(272), - 378: uint16(217), - 379: uint16(274), - 380: uint16(278), - 381: uint16(261), - 382: uint16(284), - 383: uint16(284), - 384: uint16(284), - 385: uint16(284), - 386: uint16(284), - 387: uint16(211), - 388: uint16(289), - 389: uint16(289), - 390: uint16(292), - 391: uint16(293), - 392: uint16(294), - 393: uint16(294), - 394: uint16(297), - 395: uint16(297), - 396: uint16(299), - 397: uint16(299), - 398: uint16(300), - 399: uint16(303), - 400: uint16(303), - 401: uint16(303), - 402: uint16(266), - 403: uint16(306), - 404: uint16(308), + 346: uint16(187), + 347: uint16(188), + 348: uint16(188), + 349: uint16(188), + 350: uint16(193), + 351: uint16(193), + 352: uint16(193), + 353: uint16(195), + 354: uint16(195), + 355: uint16(191), + 356: uint16(204), + 357: uint16(202), + 358: uint16(202), + 359: uint16(194), + 360: uint16(194), + 361: uint16(209), + 362: uint16(210), + 363: uint16(211), + 364: uint16(211), + 365: uint16(208), + 366: uint16(208), + 367: uint16(216), + 368: uint16(216), + 369: uint16(216), + 370: uint16(203), + 371: uint16(229), + 372: uint16(229), + 373: uint16(230), + 374: uint16(234), + 375: uint16(236), + 376: uint16(240), + 377: uint16(241), + 378: uint16(256), + 379: uint16(257), + 380: uint16(266), + 381: uint16(274), + 382: uint16(218), + 383: uint16(276), + 384: uint16(280), + 385: uint16(263), + 386: uint16(286), + 387: uint16(286), + 388: uint16(286), + 389: uint16(286), + 390: uint16(286), + 391: uint16(212), + 392: uint16(291), + 393: uint16(291), + 394: uint16(294), + 395: uint16(295), + 396: uint16(296), + 397: uint16(296), + 398: uint16(299), + 399: uint16(299), + 400: uint16(301), + 401: uint16(301), + 402: uint16(302), + 403: uint16(305), + 404: uint16(305), + 405: uint16(305), + 406: uint16(268), + 407: uint16(309), + 408: uint16(311), } // C documentation // // /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number // ** of symbols on the right-hand side of that rule. */ -var _yyRuleInfoNRhs = [405]int8{ +var _yyRuleInfoNRhs = [409]int8{ 0: int8(-int32(1)), 1: int8(-int32(3)), 2: int8(-int32(1)), @@ -159044,273 +160603,277 @@ var _yyRuleInfoNRhs = [405]int8{ 92: int8(-int32(9)), 93: int8(-int32(10)), 94: int8(-int32(4)), - 95: int8(-int32(5)), - 96: int8(-int32(1)), - 97: int8(-int32(1)), - 100: int8(-int32(5)), - 101: int8(-int32(3)), + 95: int8(-int32(1)), + 96: int8(-int32(5)), + 97: int8(-int32(5)), + 98: int8(-int32(1)), + 99: int8(-int32(1)), 102: int8(-int32(5)), - 103: int8(-int32(2)), - 106: int8(-int32(2)), - 107: int8(-int32(2)), - 109: int8(-int32(5)), - 110: int8(-int32(6)), - 111: int8(-int32(8)), + 103: int8(-int32(3)), + 104: int8(-int32(5)), + 105: int8(-int32(2)), + 108: int8(-int32(2)), + 109: int8(-int32(2)), + 111: int8(-int32(5)), 112: int8(-int32(6)), - 113: int8(-int32(6)), - 115: int8(-int32(2)), - 116: int8(-int32(1)), - 117: int8(-int32(3)), + 113: int8(-int32(8)), + 114: int8(-int32(6)), + 115: int8(-int32(6)), + 117: int8(-int32(2)), 118: int8(-int32(1)), 119: int8(-int32(3)), - 120: int8(-int32(5)), + 120: int8(-int32(1)), 121: int8(-int32(3)), - 122: int8(-int32(1)), - 123: int8(-int32(2)), - 124: int8(-int32(3)), - 125: int8(-int32(4)), - 126: int8(-int32(2)), + 122: int8(-int32(5)), + 123: int8(-int32(3)), + 124: int8(-int32(1)), + 125: int8(-int32(2)), + 126: int8(-int32(3)), 127: int8(-int32(4)), - 130: int8(-int32(3)), - 131: int8(-int32(2)), - 133: int8(-int32(3)), - 134: int8(-int32(5)), + 128: int8(-int32(2)), + 129: int8(-int32(4)), + 132: int8(-int32(3)), + 133: int8(-int32(2)), 135: int8(-int32(3)), - 136: int8(-int32(1)), - 137: int8(-int32(1)), - 139: int8(-int32(2)), - 140: int8(-int32(2)), - 143: int8(-int32(3)), - 145: int8(-int32(2)), + 136: int8(-int32(5)), + 137: int8(-int32(3)), + 138: int8(-int32(1)), + 139: int8(-int32(1)), + 141: int8(-int32(2)), + 142: int8(-int32(2)), + 145: int8(-int32(3)), 147: int8(-int32(2)), - 148: int8(-int32(4)), - 149: int8(-int32(4)), - 150: int8(-int32(6)), - 152: int8(-int32(2)), + 149: int8(-int32(2)), + 150: int8(-int32(4)), + 151: int8(-int32(4)), + 152: int8(-int32(6)), 154: int8(-int32(2)), - 155: int8(-int32(2)), - 156: int8(-int32(4)), - 157: int8(-int32(9)), - 158: int8(-int32(5)), - 159: int8(-int32(7)), - 160: int8(-int32(3)), - 161: int8(-int32(5)), - 162: int8(-int32(7)), - 163: int8(-int32(8)), - 165: int8(-int32(2)), - 166: int8(-int32(12)), - 167: int8(-int32(9)), - 168: int8(-int32(5)), - 169: int8(-int32(8)), - 170: int8(-int32(2)), - 171: int8(-int32(2)), - 172: int8(-int32(1)), - 174: int8(-int32(3)), - 175: int8(-int32(3)), - 176: int8(-int32(1)), + 156: int8(-int32(2)), + 157: int8(-int32(2)), + 158: int8(-int32(4)), + 159: int8(-int32(9)), + 160: int8(-int32(5)), + 161: int8(-int32(7)), + 162: int8(-int32(3)), + 163: int8(-int32(5)), + 164: int8(-int32(7)), + 165: int8(-int32(8)), + 167: int8(-int32(2)), + 168: int8(-int32(12)), + 169: int8(-int32(9)), + 170: int8(-int32(5)), + 171: int8(-int32(8)), + 172: int8(-int32(2)), + 173: int8(-int32(2)), + 174: int8(-int32(1)), + 176: int8(-int32(3)), 177: int8(-int32(3)), 178: int8(-int32(1)), 179: int8(-int32(3)), - 180: int8(-int32(5)), - 181: int8(-int32(1)), - 182: int8(-int32(1)), + 180: int8(-int32(1)), + 181: int8(-int32(3)), + 182: int8(-int32(5)), 183: int8(-int32(1)), 184: int8(-int32(1)), - 185: int8(-int32(3)), - 186: int8(-int32(6)), - 187: int8(-int32(5)), - 188: int8(-int32(8)), - 189: int8(-int32(4)), - 190: int8(-int32(6)), - 191: int8(-int32(9)), - 192: int8(-int32(5)), - 193: int8(-int32(1)), + 185: int8(-int32(1)), + 186: int8(-int32(1)), + 187: int8(-int32(3)), + 188: int8(-int32(6)), + 189: int8(-int32(5)), + 190: int8(-int32(8)), + 191: int8(-int32(4)), + 192: int8(-int32(6)), + 193: int8(-int32(9)), 194: int8(-int32(5)), - 195: int8(-int32(3)), - 196: int8(-int32(3)), + 195: int8(-int32(1)), + 196: int8(-int32(5)), 197: int8(-int32(3)), 198: int8(-int32(3)), 199: int8(-int32(3)), 200: int8(-int32(3)), 201: int8(-int32(3)), 202: int8(-int32(3)), - 203: int8(-int32(2)), + 203: int8(-int32(3)), 204: int8(-int32(3)), - 205: int8(-int32(5)), - 206: int8(-int32(2)), - 207: int8(-int32(3)), - 208: int8(-int32(3)), - 209: int8(-int32(4)), - 210: int8(-int32(6)), - 211: int8(-int32(5)), - 212: int8(-int32(2)), - 213: int8(-int32(2)), + 205: int8(-int32(2)), + 206: int8(-int32(3)), + 207: int8(-int32(5)), + 208: int8(-int32(2)), + 209: int8(-int32(3)), + 210: int8(-int32(3)), + 211: int8(-int32(4)), + 212: int8(-int32(6)), + 213: int8(-int32(5)), 214: int8(-int32(2)), - 215: int8(-int32(3)), - 216: int8(-int32(1)), - 217: int8(-int32(2)), - 218: int8(-int32(5)), - 219: int8(-int32(1)), - 220: int8(-int32(2)), - 221: int8(-int32(5)), - 222: int8(-int32(3)), + 215: int8(-int32(2)), + 216: int8(-int32(2)), + 217: int8(-int32(3)), + 218: int8(-int32(1)), + 219: int8(-int32(2)), + 220: int8(-int32(5)), + 221: int8(-int32(1)), + 222: int8(-int32(2)), 223: int8(-int32(5)), - 224: int8(-int32(5)), - 225: int8(-int32(4)), + 224: int8(-int32(3)), + 225: int8(-int32(5)), 226: int8(-int32(5)), - 227: int8(-int32(5)), - 228: int8(-int32(4)), - 229: int8(-int32(2)), - 233: int8(-int32(3)), - 234: int8(-int32(1)), - 236: int8(-int32(3)), - 237: int8(-int32(12)), - 238: int8(-int32(1)), - 241: int8(-int32(3)), - 242: int8(-int32(5)), + 227: int8(-int32(4)), + 228: int8(-int32(5)), + 229: int8(-int32(5)), + 230: int8(-int32(4)), + 231: int8(-int32(2)), + 235: int8(-int32(3)), + 236: int8(-int32(1)), + 238: int8(-int32(3)), + 239: int8(-int32(12)), + 240: int8(-int32(1)), 243: int8(-int32(3)), - 245: int8(-int32(2)), - 246: int8(-int32(4)), + 244: int8(-int32(5)), + 245: int8(-int32(3)), 247: int8(-int32(2)), - 248: int8(-int32(3)), + 248: int8(-int32(4)), 249: int8(-int32(2)), - 251: int8(-int32(3)), - 252: int8(-int32(5)), - 253: int8(-int32(6)), + 250: int8(-int32(3)), + 251: int8(-int32(2)), + 253: int8(-int32(3)), 254: int8(-int32(5)), 255: int8(-int32(6)), - 256: int8(-int32(2)), - 257: int8(-int32(2)), - 258: int8(-int32(5)), - 259: int8(-int32(11)), - 260: int8(-int32(1)), - 261: int8(-int32(2)), - 263: int8(-int32(1)), - 264: int8(-int32(1)), - 265: int8(-int32(3)), - 267: int8(-int32(2)), - 268: int8(-int32(3)), + 256: int8(-int32(5)), + 257: int8(-int32(6)), + 258: int8(-int32(2)), + 259: int8(-int32(2)), + 260: int8(-int32(5)), + 261: int8(-int32(11)), + 262: int8(-int32(1)), + 263: int8(-int32(2)), + 265: int8(-int32(1)), + 266: int8(-int32(1)), + 267: int8(-int32(3)), 269: int8(-int32(2)), 270: int8(-int32(3)), - 271: int8(-int32(3)), - 272: int8(-int32(2)), - 273: int8(-int32(9)), - 274: int8(-int32(8)), - 275: int8(-int32(6)), - 276: int8(-int32(3)), - 277: int8(-int32(4)), - 278: int8(-int32(6)), - 279: int8(-int32(1)), - 280: int8(-int32(1)), + 271: int8(-int32(2)), + 272: int8(-int32(3)), + 273: int8(-int32(3)), + 274: int8(-int32(2)), + 275: int8(-int32(9)), + 276: int8(-int32(8)), + 277: int8(-int32(6)), + 278: int8(-int32(3)), + 279: int8(-int32(4)), + 280: int8(-int32(6)), 281: int8(-int32(1)), - 282: int8(-int32(4)), - 283: int8(-int32(6)), - 284: int8(-int32(3)), - 286: int8(-int32(2)), - 287: int8(-int32(1)), - 288: int8(-int32(3)), + 282: int8(-int32(1)), + 283: int8(-int32(1)), + 284: int8(-int32(4)), + 285: int8(-int32(6)), + 286: int8(-int32(3)), + 288: int8(-int32(2)), 289: int8(-int32(1)), 290: int8(-int32(3)), - 291: int8(-int32(6)), - 292: int8(-int32(7)), + 291: int8(-int32(1)), + 292: int8(-int32(3)), 293: int8(-int32(6)), - 294: int8(-int32(1)), - 295: int8(-int32(8)), + 294: int8(-int32(7)), + 295: int8(-int32(6)), 296: int8(-int32(1)), - 297: int8(-int32(4)), - 298: int8(-int32(8)), - 300: int8(-int32(1)), - 301: int8(-int32(3)), + 297: int8(-int32(8)), + 298: int8(-int32(1)), + 299: int8(-int32(4)), + 300: int8(-int32(8)), 302: int8(-int32(1)), - 303: int8(-int32(2)), - 304: int8(-int32(3)), - 305: int8(-int32(1)), - 306: int8(-int32(2)), - 307: int8(-int32(3)), - 308: int8(-int32(6)), - 309: int8(-int32(1)), - 310: int8(-int32(3)), - 311: int8(-int32(3)), - 312: int8(-int32(5)), - 313: int8(-int32(5)), - 314: int8(-int32(6)), - 315: int8(-int32(4)), + 303: int8(-int32(3)), + 304: int8(-int32(1)), + 305: int8(-int32(2)), + 306: int8(-int32(3)), + 307: int8(-int32(1)), + 308: int8(-int32(2)), + 309: int8(-int32(3)), + 310: int8(-int32(6)), + 311: int8(-int32(1)), + 312: int8(-int32(1)), + 313: int8(-int32(3)), + 314: int8(-int32(3)), + 315: int8(-int32(5)), 316: int8(-int32(5)), - 317: int8(-int32(2)), - 319: int8(-int32(3)), - 320: int8(-int32(6)), - 321: int8(-int32(1)), - 322: int8(-int32(1)), - 323: int8(-int32(2)), + 317: int8(-int32(6)), + 318: int8(-int32(4)), + 319: int8(-int32(5)), + 320: int8(-int32(2)), + 322: int8(-int32(3)), + 323: int8(-int32(6)), 324: int8(-int32(1)), - 325: int8(-int32(2)), + 325: int8(-int32(1)), 326: int8(-int32(2)), - 327: int8(-int32(2)), + 327: int8(-int32(1)), + 328: int8(-int32(2)), 329: int8(-int32(2)), 330: int8(-int32(2)), - 331: int8(-int32(2)), - 332: int8(-int32(1)), + 332: int8(-int32(2)), 333: int8(-int32(2)), 334: int8(-int32(2)), 335: int8(-int32(1)), - 336: int8(-int32(1)), - 337: int8(-int32(4)), - 338: int8(-int32(2)), - 339: int8(-int32(5)), - 340: int8(-int32(1)), + 336: int8(-int32(2)), + 337: int8(-int32(2)), + 338: int8(-int32(1)), + 339: int8(-int32(1)), + 340: int8(-int32(4)), 341: int8(-int32(2)), - 342: int8(-int32(1)), + 342: int8(-int32(5)), 343: int8(-int32(1)), - 344: int8(-int32(2)), - 345: int8(-int32(3)), + 344: int8(-int32(1)), + 345: int8(-int32(2)), + 346: int8(-int32(1)), 347: int8(-int32(1)), 348: int8(-int32(2)), - 349: int8(-int32(1)), - 351: int8(-int32(2)), - 352: int8(-int32(1)), - 353: int8(-int32(4)), - 354: int8(-int32(2)), - 355: int8(-int32(1)), + 349: int8(-int32(3)), + 351: int8(-int32(1)), + 352: int8(-int32(2)), + 353: int8(-int32(1)), + 355: int8(-int32(2)), 356: int8(-int32(1)), - 357: int8(-int32(1)), - 358: int8(-int32(1)), + 357: int8(-int32(4)), + 358: int8(-int32(2)), 359: int8(-int32(1)), 360: int8(-int32(1)), - 361: int8(-int32(2)), - 363: int8(-int32(2)), - 364: int8(-int32(4)), + 361: int8(-int32(1)), + 362: int8(-int32(1)), + 363: int8(-int32(1)), + 364: int8(-int32(1)), 365: int8(-int32(2)), - 366: int8(-int32(2)), - 367: int8(-int32(3)), - 368: int8(-int32(1)), - 370: int8(-int32(1)), - 371: int8(-int32(1)), + 367: int8(-int32(2)), + 368: int8(-int32(4)), + 369: int8(-int32(2)), + 370: int8(-int32(2)), + 371: int8(-int32(3)), 372: int8(-int32(1)), - 373: int8(-int32(1)), - 374: int8(-int32(2)), + 374: int8(-int32(1)), 375: int8(-int32(1)), 376: int8(-int32(1)), - 378: int8(-int32(1)), + 377: int8(-int32(1)), + 378: int8(-int32(2)), 379: int8(-int32(1)), 380: int8(-int32(1)), - 381: int8(-int32(1)), 382: int8(-int32(1)), 383: int8(-int32(1)), 384: int8(-int32(1)), 385: int8(-int32(1)), 386: int8(-int32(1)), 387: int8(-int32(1)), - 389: int8(-int32(3)), + 388: int8(-int32(1)), + 389: int8(-int32(1)), 390: int8(-int32(1)), - 392: int8(-int32(1)), - 395: int8(-int32(1)), + 391: int8(-int32(1)), + 393: int8(-int32(3)), + 394: int8(-int32(1)), 396: int8(-int32(1)), - 397: int8(-int32(3)), - 398: int8(-int32(2)), - 400: int8(-int32(4)), - 401: int8(-int32(2)), - 403: int8(-int32(1)), - 404: int8(-int32(1)), + 399: int8(-int32(1)), + 400: int8(-int32(1)), + 401: int8(-int32(3)), + 402: int8(-int32(2)), + 404: int8(-int32(4)), + 405: int8(-int32(2)), + 407: int8(-int32(1)), + 408: int8(-int32(1)), } // C documentation @@ -159328,18 +160891,19 @@ var _yyRuleInfoNRhs = [405]int8{ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int32, yyLookaheadToken TToken, pParse uintptr) (r uint16) { bp := tls.Alloc(144) defer tls.Free(144) - var bNot, bNot1, nExpr, yygoto, yysize, v344 int32 + var bNot, bNot1, nExpr, yygoto, yysize int32 var n Tu32 - var p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v343, v345, v346, v347, v348 uintptr + var op Tu8 + var p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v347, v348, v349, v350, v351 uintptr var yyact uint16 - var v349 TToken + var v352 TToken var _ /* all at bp+104 */ TToken var _ /* as at bp+72 */ TToken var _ /* dest at bp+16 */ TSelectDest var _ /* t at bp+88 */ TToken var _ /* x at bp+56 */ TToken var _ /* yylhsminor at bp+0 */ TYYMINORTYPE - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v343, v344, v345, v346, v347, v348, v349 /* Amount to pop the stack */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, op, p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v347, v348, v349, v350, v351, v352 /* Amount to pop the stack */ _ = yyLookahead _ = yyLookaheadToken yymsp = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos @@ -159360,7 +160924,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _7 case uint32(7): goto _8 - case uint32(321): + case uint32(324): goto _9 case uint32(9): goto _10 @@ -159388,9 +160952,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _21 case uint32(81): goto _22 - case uint32(98): + case uint32(100): goto _23 - case uint32(244): + case uint32(246): goto _24 case uint32(16): goto _25 @@ -159414,7 +160978,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _34 case uint32(26): goto _35 - case uint32(104): + case uint32(106): goto _36 case uint32(27): goto _37 @@ -159488,17 +161052,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _71 case uint32(61): goto _72 - case uint32(171): + case uint32(173): goto _73 case uint32(80): goto _74 case uint32(63): goto _75 - case uint32(217): + case uint32(219): goto _76 - case uint32(220): + case uint32(222): goto _77 - case uint32(245): + case uint32(247): goto _78 case uint32(64): goto _79 @@ -159520,7 +161084,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _87 case uint32(77): goto _88 - case uint32(172): + case uint32(174): goto _89 case uint32(78): goto _90 @@ -159554,47 +161118,47 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _104 case uint32(95): goto _105 - case uint32(96): - goto _106 case uint32(97): + goto _106 + case uint32(96): goto _107 - case uint32(132): + case uint32(98): goto _108 case uint32(99): goto _109 - case uint32(142): + case uint32(134): goto _110 - case uint32(232): + case uint32(101): goto _111 - case uint32(235): + case uint32(144): goto _112 - case uint32(240): + case uint32(234): goto _113 - case uint32(100): + case uint32(237): goto _114 - case uint32(101): + case uint32(242): goto _115 case uint32(102): goto _116 - case uint32(115): - goto _117 case uint32(103): + goto _117 + case uint32(104): goto _118 - case uint32(256): + case uint32(117): goto _119 - case uint32(257): + case uint32(105): goto _120 - case uint32(108): + case uint32(258): goto _121 - case uint32(105): + case uint32(259): goto _122 - case uint32(106): + case uint32(110): goto _123 case uint32(107): goto _124 - case uint32(109): + case uint32(108): goto _125 - case uint32(110): + case uint32(109): goto _126 case uint32(111): goto _127 @@ -159602,13 +161166,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _128 case uint32(113): goto _129 - case uint32(129): - goto _130 case uint32(114): + goto _130 + case uint32(115): goto _131 - case uint32(116): + case uint32(131): goto _132 - case uint32(117): + case uint32(116): goto _133 case uint32(118): goto _134 @@ -159632,15 +161196,15 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _143 case uint32(128): goto _144 - case uint32(130): + case uint32(129): goto _145 - case uint32(131): + case uint32(130): goto _146 - case uint32(143): + case uint32(132): goto _147 case uint32(133): goto _148 - case uint32(134): + case uint32(145): goto _149 case uint32(135): goto _150 @@ -159648,49 +161212,49 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _151 case uint32(137): goto _152 - case uint32(141): - goto _153 case uint32(138): - goto _154 + goto _153 case uint32(139): + goto _154 + case uint32(143): goto _155 case uint32(140): goto _156 - case uint32(146): + case uint32(141): goto _157 - case uint32(144): + case uint32(142): goto _158 - case uint32(151): + case uint32(148): goto _159 - case uint32(153): + case uint32(146): goto _160 - case uint32(230): + case uint32(153): goto _161 - case uint32(231): + case uint32(155): goto _162 - case uint32(250): + case uint32(232): goto _163 - case uint32(152): + case uint32(233): goto _164 - case uint32(145): + case uint32(252): goto _165 case uint32(154): goto _166 - case uint32(229): + case uint32(147): goto _167 - case uint32(249): + case uint32(156): goto _168 - case uint32(147): + case uint32(231): goto _169 - case uint32(148): + case uint32(251): goto _170 case uint32(149): goto _171 case uint32(150): goto _172 - case uint32(155): + case uint32(151): goto _173 - case uint32(156): + case uint32(152): goto _174 case uint32(157): goto _175 @@ -159720,9 +161284,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _187 case uint32(170): goto _188 - case uint32(173): + case uint32(171): goto _189 - case uint32(174): + case uint32(172): goto _190 case uint32(175): goto _191 @@ -159736,13 +161300,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _195 case uint32(180): goto _196 - case uint32(182): - goto _197 case uint32(181): + goto _197 + case uint32(182): goto _198 - case uint32(183): - goto _199 case uint32(184): + goto _199 + case uint32(183): goto _200 case uint32(185): goto _201 @@ -159766,13 +161330,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _210 case uint32(195): goto _211 - case uint32(197): - goto _212 case uint32(196): + goto _212 + case uint32(197): goto _213 - case uint32(198): - goto _214 case uint32(199): + goto _214 + case uint32(198): goto _215 case uint32(200): goto _216 @@ -159798,23 +161362,23 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _226 case uint32(211): goto _227 - case uint32(213): - goto _228 case uint32(212): + goto _228 + case uint32(213): goto _229 - case uint32(214): - goto _230 case uint32(215): + goto _230 + case uint32(214): goto _231 - case uint32(219): - goto _232 case uint32(216): + goto _232 + case uint32(217): goto _233 - case uint32(218): - goto _234 case uint32(221): + goto _234 + case uint32(218): goto _235 - case uint32(222): + case uint32(220): goto _236 case uint32(223): goto _237 @@ -159828,35 +161392,35 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _241 case uint32(228): goto _242 - case uint32(233): + case uint32(229): goto _243 - case uint32(234): + case uint32(230): goto _244 - case uint32(241): + case uint32(235): goto _245 case uint32(236): goto _246 - case uint32(237): + case uint32(243): goto _247 - case uint32(280): - goto _248 case uint32(238): - goto _249 + goto _248 case uint32(239): + goto _249 + case uint32(282): goto _250 - case uint32(242): + case uint32(240): goto _251 - case uint32(243): + case uint32(241): goto _252 - case uint32(246): + case uint32(244): goto _253 - case uint32(247): + case uint32(245): goto _254 case uint32(248): goto _255 - case uint32(251): + case uint32(249): goto _256 - case uint32(252): + case uint32(250): goto _257 case uint32(253): goto _258 @@ -159864,9 +161428,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _259 case uint32(255): goto _260 - case uint32(258): + case uint32(256): goto _261 - case uint32(259): + case uint32(257): goto _262 case uint32(260): goto _263 @@ -159874,21 +161438,21 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _264 case uint32(262): goto _265 - case uint32(264): - goto _266 case uint32(263): + goto _266 + case uint32(264): goto _267 - case uint32(265): + case uint32(266): goto _268 - case uint32(285): + case uint32(265): goto _269 - case uint32(266): + case uint32(267): goto _270 - case uint32(286): + case uint32(287): goto _271 - case uint32(267): - goto _272 case uint32(268): + goto _272 + case uint32(288): goto _273 case uint32(269): goto _274 @@ -159912,17 +161476,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _283 case uint32(279): goto _284 - case uint32(281): + case uint32(280): goto _285 - case uint32(282): + case uint32(281): goto _286 case uint32(283): goto _287 case uint32(284): goto _288 - case uint32(287): + case uint32(285): goto _289 - case uint32(288): + case uint32(286): goto _290 case uint32(289): goto _291 @@ -159946,19 +161510,19 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _300 case uint32(299): goto _301 - case uint32(301): - goto _302 case uint32(300): + goto _302 + case uint32(301): goto _303 - case uint32(302): + case uint32(303): goto _304 - case uint32(304): + case uint32(302): goto _305 - case uint32(303): + case uint32(304): goto _306 - case uint32(305): - goto _307 case uint32(306): + goto _307 + case uint32(305): goto _308 case uint32(307): goto _309 @@ -159988,31 +161552,31 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _321 case uint32(320): goto _322 - case uint32(324): + case uint32(321): goto _323 case uint32(322): goto _324 - case uint32(325): - goto _325 case uint32(323): - goto _326 + goto _325 case uint32(327): + goto _326 + case uint32(325): goto _327 - case uint32(326): - goto _328 case uint32(328): + goto _328 + case uint32(326): goto _329 - case uint32(329): + case uint32(330): goto _330 - case uint32(331): + case uint32(329): goto _331 - case uint32(330): + case uint32(331): goto _332 case uint32(332): goto _333 - case uint32(333): - goto _334 case uint32(334): + goto _334 + case uint32(333): goto _335 case uint32(335): goto _336 @@ -160024,34 +161588,42 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _339 case uint32(339): goto _340 - default: + case uint32(340): goto _341 + case uint32(341): + goto _342 + case uint32(342): + goto _343 + case uint32(343): + goto _344 + default: + goto _345 } - goto _342 + goto _346 _1: ; /* explain ::= EXPLAIN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(1) } - goto _342 + goto _346 _2: ; /* explain ::= EXPLAIN QUERY PLAN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(2) } - goto _342 + goto _346 _3: ; /* cmdx ::= cmd */ _sqlite3FinishCoding(tls, pParse) - goto _342 + goto _346 _4: ; /* cmd ::= BEGIN transtype trans_opt */ _sqlite3BeginTransaction(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _5: ; /* transtype ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_DEFERRED) - goto _342 + goto _346 _7: ; /* transtype ::= DEFERRED */ _6: @@ -160061,33 +161633,33 @@ _8: _9: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 + goto _346 _11: ; /* cmd ::= COMMIT|END trans_opt */ _10: ; _sqlite3EndTransaction(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor)) - goto _342 + goto _346 _12: ; /* cmd ::= SAVEPOINT nm */ _sqlite3Savepoint(tls, pParse, SAVEPOINT_BEGIN, yymsp+8) - goto _342 + goto _346 _13: ; /* cmd ::= RELEASE savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_RELEASE), yymsp+8) - goto _342 + goto _346 _14: ; /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_ROLLBACK), yymsp+8) - goto _342 + goto _346 _15: ; /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ _sqlite3StartTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), 0, 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _16: ; /* createkw ::= CREATE */ _disableLookaside(tls, pParse) - goto _342 + goto _346 _18: ; /* ifnotexists ::= */ _17: @@ -160105,56 +161677,56 @@ _23: _24: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = 0 - goto _342 + goto _346 _25: ; /* ifnotexists ::= IF NOT EXISTS */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(1) - goto _342 + goto _346 _26: ; /* temp ::= TEMP */ *(*int32)(unsafe.Pointer(yymsp + 8)) = libc.BoolInt32(int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0) - goto _342 + goto _346 _27: ; /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ _sqlite3EndTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*Tu32)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 + goto _346 _28: ; /* create_table_args ::= AS select */ _sqlite3EndTable(tls, pParse, uintptr(0), uintptr(0), uint32(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _29: ; /* table_option_set ::= */ *(*Tu32)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint32(0) - goto _342 + goto _346 _30: ; /* table_option_set ::= table_option_set COMMA table_option */ *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) | *(*Tu32)(unsafe.Pointer(yymsp + 8)) *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _31: ; /* table_option ::= WITHOUT nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+17045, int32(5)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+17132, int32(5)) == 0 { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) } else { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23753, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23876, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } - goto _342 + goto _346 _32: ; /* table_option ::= nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16958, int32(6)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+17045, int32(6)) == 0 { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(TF_Strict) } else { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23753, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23876, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } *(*Tu32)(unsafe.Pointer(yymsp + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _33: ; /* columnname ::= nm typetoken */ _sqlite3AddColumn(tls, pParse, *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*TToken)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _35: ; /* typetoken ::= */ _34: @@ -160163,50 +161735,50 @@ _36: ; *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 + goto _346 _37: ; /* typetoken ::= typename LP signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) - goto _342 + goto _346 _38: ; /* typetoken ::= typename LP signed COMMA signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))))) - goto _342 + goto _346 _39: ; /* typename ::= typename ID|STRING */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) + uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) - goto _342 + goto _346 _40: ; /* scanpt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken.Fz - goto _342 + goto _346 _41: ; /* scantok ::= */ *(*TToken)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken - goto _342 + goto _346 _43: ; /* ccons ::= CONSTRAINT nm */ _42: ; (*TParse)(unsafe.Pointer(pParse)).FconstraintName = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _44: ; /* ccons ::= DEFAULT scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _45: ; /* ccons ::= DEFAULT LP expr RP */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))+uintptr(1), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _46: ; /* ccons ::= DEFAULT PLUS scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _47: ; /* ccons ::= DEFAULT MINUS scantok term */ p = _sqlite3PExpr(tls, pParse, int32(TK_UMINUS), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) _sqlite3AddDefaultValue(tls, pParse, p, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _48: ; /* ccons ::= DEFAULT scantok ID|INDEXED */ p1 = _tokenExpr(tls, pParse, int32(TK_STRING), *(*TToken)(unsafe.Pointer(yymsp + 8))) @@ -160214,99 +161786,99 @@ _48: _sqlite3ExprIdToTrueFalse(tls, p1) } _sqlite3AddDefaultValue(tls, pParse, p1, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - goto _342 + goto _346 _49: ; /* ccons ::= NOT NULL onconf */ _sqlite3AddNotNull(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _50: ; /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ _sqlite3AddPrimaryKey(tls, pParse, uintptr(0), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _51: ; /* ccons ::= UNIQUE onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _52: ; /* ccons ::= CHECK LP expr RP */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _53: ; /* ccons ::= REFERENCES nm eidlist_opt refargs */ _sqlite3CreateForeignKey(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _54: ; /* ccons ::= defer_subclause */ _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _55: ; /* ccons ::= COLLATE ID|STRING */ _sqlite3AddCollateType(tls, pParse, yymsp+8) - goto _342 + goto _346 _56: ; /* generated ::= LP expr RP */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 + goto _346 _57: ; /* generated ::= LP expr RP ID */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 + goto _346 _58: ; /* autoinc ::= AUTOINCR */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(1) - goto _342 + goto _346 _59: ; /* refargs ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = libc.Int32FromInt32(OE_None) * libc.Int32FromInt32(0x0101) /* EV: R-19803-45884 */ - goto _342 + goto _346 _60: ; /* refargs ::= refargs refarg */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) & ^*(*int32)(unsafe.Pointer(yymsp + 8 + 4)) | *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _61: ; /* refarg ::= MATCH nm */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _62: ; /* refarg ::= ON INSERT refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _63: ; /* refarg ::= ON DELETE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x0000ff) - goto _342 + goto _346 _64: ; /* refarg ::= ON UPDATE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) << int32(8) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x00ff00) - goto _342 + goto _346 _65: ; /* refact ::= SET NULL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetNull) /* EV: R-33326-45252 */ - goto _342 + goto _346 _66: ; /* refact ::= SET DEFAULT */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetDflt) /* EV: R-33326-45252 */ - goto _342 + goto _346 _67: ; /* refact ::= CASCADE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Cascade) /* EV: R-33326-45252 */ - goto _342 + goto _346 _68: ; /* refact ::= RESTRICT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Restrict) /* EV: R-33326-45252 */ - goto _342 + goto _346 _69: ; /* refact ::= NO ACTION */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = OE_None /* EV: R-33326-45252 */ - goto _342 + goto _346 _70: ; /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 - goto _342 + goto _346 _72: ; /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ _71: @@ -160314,7 +161886,7 @@ _71: _73: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _75: ; /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ _74: @@ -160326,64 +161898,64 @@ _77: _78: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(1) - goto _342 + goto _346 _79: ; /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 - goto _342 + goto _346 _80: ; /* tconscomma ::= COMMA */ (*TParse)(unsafe.Pointer(pParse)).FconstraintName.Fn = uint32(0) - goto _342 + goto _346 _81: ; /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ _sqlite3AddPrimaryKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), 0) - goto _342 + goto _346 _82: ; /* tcons ::= UNIQUE LP sortlist RP onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _83: ; /* tcons ::= CHECK LP expr RP onconf */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _84: ; /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ _sqlite3CreateForeignKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _86: ; /* onconf ::= */ _85: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(OE_Default) - goto _342 + goto _346 _87: ; /* onconf ::= ON CONFLICT resolvetype */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _88: ; /* resolvetype ::= IGNORE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Ignore) - goto _342 + goto _346 _90: ; /* resolvetype ::= REPLACE */ _89: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Replace) - goto _342 + goto _346 _91: ; /* cmd ::= DROP TABLE ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _92: ; /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ _sqlite3CreateView(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) - goto _342 + goto _346 _93: ; /* cmd ::= DROP VIEW ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), int32(1), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _94: ; /* cmd ::= select */ *(*TSelectDest)(unsafe.Pointer(bp + 16)) = TSelectDest{ @@ -160391,22 +161963,22 @@ _94: } _sqlite3Select(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), bp+16) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _95: ; /* select ::= WITH wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _96: ; /* select ::= WITH RECURSIVE wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _97: ; /* select ::= selectnowith */ p2 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) if p2 != 0 { _parserDoubleLinkSelect(tls, pParse, p2) } - goto _342 + goto _346 _98: ; /* selectnowith ::= selectnowith multiselect_op oneselect */ pRhs = *(*uintptr)(unsafe.Pointer(yymsp + 8)) @@ -160431,21 +162003,21 @@ _98: _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pLhs) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = pRhs - goto _342 + goto _346 _100: ; /* multiselect_op ::= UNION */ _99: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-OP*/ - goto _342 + goto _346 _101: ; /* multiselect_op ::= UNION ALL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_ALL) - goto _342 + goto _346 _102: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _103: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(9))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -160454,116 +162026,111 @@ _103: } else { _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) } - goto _342 + goto _346 _104: ; /* values ::= VALUES LP nexprlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) - goto _342 + goto _346 _105: - ; /* values ::= values COMMA LP nexprlist RP */ - pLeft = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) - pRight = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(libc.Int32FromInt32(SF_Values)|libc.Int32FromInt32(SF_MultiValue)), uintptr(0)) - if pLeft != 0 { - *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) - } - if pRight != 0 { - (*TSelect)(unsafe.Pointer(pRight)).Fop = uint8(TK_ALL) - (*TSelect)(unsafe.Pointer(pRight)).FpPrior = pLeft - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pRight - } else { - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pLeft - } - goto _342 + ; /* oneselect ::= mvalues */ + _sqlite3MultiValuesEnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_107: + ; /* mvalues ::= values COMMA LP nexprlist RP */ _106: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3MultiValues(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_108: ; /* distinct ::= DISTINCT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_Distinct) - goto _342 -_107: + goto _346 +_109: ; /* distinct ::= ALL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_All) - goto _342 -_109: + goto _346 +_111: ; /* sclp ::= */ -_108: - ; _110: ; -_111: - ; _112: ; _113: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 _114: + ; +_115: + ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 +_116: ; /* selcollist ::= sclp scanpt expr scanpt as */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) > uint32(0) { _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+8, int32(1)) } _sqlite3ExprListSetSpan(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_115: + goto _346 +_117: ; /* selcollist ::= sclp scanpt STAR */ p3 = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_ASTERISK), uintptr(0)) _sqlite3ExprSetErrorOffset(tls, p3, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), p3) - goto _342 -_116: + goto _346 +_118: ; /* selcollist ::= sclp scanpt nm DOT STAR */ - pRight1 = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) - _sqlite3ExprSetErrorOffset(tls, pRight1, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) - pLeft1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft1, pRight1) + pRight = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) + _sqlite3ExprSetErrorOffset(tls, pRight, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) + pLeft = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) + pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft, pRight) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pDot) - goto _342 -_118: + goto _346 +_120: ; /* as ::= AS nm */ -_117: - ; _119: ; -_120: +_121: ; - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 _122: + ; + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) + goto _346 +_124: ; /* from ::= */ -_121: +_123: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_123: + goto _346 +_125: ; /* from ::= FROM seltablist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) _sqlite3SrcListShiftJoinType(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_124: + goto _346 +_126: ; /* stl_prefix ::= seltablist joinop */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 && (*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc > 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8 + uintptr((*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc-int32(1))*104))).Ffg.Fjointype = uint8(*(*int32)(unsafe.Pointer(yymsp + 8))) } - goto _342 -_125: + goto _346 +_127: ; /* seltablist ::= stl_prefix nm dbnm as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) - goto _342 -_126: + goto _346 +_128: ; /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_127: + goto _346 +_129: ; /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListFuncArgs(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) - goto _342 -_128: + goto _346 +_130: ; /* seltablist ::= stl_prefix LP select RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_129: + goto _346 +_131: ; /* seltablist ::= stl_prefix LP seltablist RP as on_using */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) == uintptr(0) && *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) == uint32(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8)) == uintptr(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) @@ -160585,9 +162152,9 @@ _129: libc.SetBitFieldPtr16Uint32(pOld+60+4, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pNew+60+4, libc.Uint32FromInt32(1), 2, 0x4) } - v343 = libc.UintptrFromInt32(0) - (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v343 - (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v343 + v347 = libc.UintptrFromInt32(0) + (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v347 + (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v347 (*TSrcItem)(unsafe.Pointer(pOld)).FpSelect = uintptr(0) } _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) @@ -160597,189 +162164,189 @@ _129: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, pSubquery, yymsp+8) } } - goto _342 -_131: + goto _346 +_133: ; /* dbnm ::= */ -_130: +_132: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) - goto _342 -_132: + goto _346 +_134: ; /* fullname ::= nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_133: + goto _346 +_135: ; /* fullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_134: + goto _346 +_136: ; /* xfullname ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) /*A-overwrites-X*/ - goto _342 -_135: + goto _346 +_137: ; /* xfullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) /*A-overwrites-X*/ - goto _342 -_136: + goto _346 +_138: ; /* xfullname ::= nm DOT nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_137: + goto _346 +_139: ; /* xfullname ::= nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0)) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_138: + goto _346 +_140: ; /* joinop ::= COMMA|JOIN */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(JT_INNER) - goto _342 -_139: + goto _346 +_141: ; /* joinop ::= JOIN_KW JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), uintptr(0)) /*X-overwrites-A*/ - goto _342 -_140: + goto _346 +_142: ; /* joinop ::= JOIN_KW nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0)) /*X-overwrites-A*/ - goto _342 -_141: + goto _346 +_143: ; /* joinop ::= JOIN_KW nm nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) /*X-overwrites-A*/ - goto _342 -_142: + goto _346 +_144: ; /* on_using ::= ON expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uintptr(0) - goto _342 -_143: + goto _346 +_145: ; /* on_using ::= USING LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_144: + goto _346 +_146: ; /* on_using ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uintptr(0) - goto _342 -_145: + goto _346 +_147: ; /* indexed_by ::= INDEXED BY nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 -_146: + goto _346 +_148: ; /* indexed_by ::= NOT INDEXED */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(1) - goto _342 -_148: + goto _346 +_150: ; /* orderby_opt ::= ORDER BY sortlist */ -_147: +_149: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_149: + goto _346 +_151: ; /* sortlist ::= sortlist COMMA expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_150: + goto _346 +_152: ; /* sortlist ::= expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) /*A-overwrites-Y*/ _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_151: + goto _346 +_153: ; /* sortorder ::= ASC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = SQLITE_SO_ASC - goto _342 -_152: + goto _346 +_154: ; /* sortorder ::= DESC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_154: + goto _346 +_156: ; /* sortorder ::= */ -_153: +_155: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = -int32(1) - goto _342 -_155: + goto _346 +_157: ; /* nulls ::= NULLS FIRST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = SQLITE_SO_ASC - goto _342 -_156: + goto _346 +_158: ; /* nulls ::= NULLS LAST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_158: + goto _346 +_160: ; /* having_opt ::= */ -_157: - ; _159: ; -_160: - ; _161: ; _162: ; _163: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_165: - ; /* having_opt ::= HAVING expr */ _164: ; -_166: +_165: ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 _167: + ; /* having_opt ::= HAVING expr */ +_166: ; _168: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 _169: + ; +_170: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + goto _346 +_171: ; /* limit_opt ::= LIMIT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 -_170: + goto _346 +_172: ; /* limit_opt ::= LIMIT expr OFFSET expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_171: + goto _346 +_173: ; /* limit_opt ::= LIMIT expr COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 -_172: + goto _346 +_174: ; /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) _sqlite3DeleteFrom(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0)) - goto _342 -_173: + goto _346 +_175: ; /* where_opt_ret ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) - goto _342 -_174: + goto _346 +_176: ; /* where_opt_ret ::= WHERE expr RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) - goto _342 -_175: + goto _346 +_177: ; /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) - _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23780) + _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23903) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { pFromClause = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) if (*TSrcList)(unsafe.Pointer(pFromClause)).FnSrc > int32(1) { @@ -160791,95 +162358,95 @@ _175: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendList(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), pFromClause) } _sqlite3Update(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_176: + goto _346 +_178: ; /* setlist ::= setlist COMMA nm EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) - goto _342 -_177: + goto _346 +_179: ; /* setlist ::= setlist COMMA LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_178: + goto _346 +_180: ; /* setlist ::= nm EQ expr */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_179: + goto _346 +_181: ; /* setlist ::= LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_180: + goto _346 +_182: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_181: + goto _346 +_183: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0)) - goto _342 -_182: + goto _346 +_184: ; /* upsert ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_183: + goto _346 +_185: ; /* upsert ::= RETURNING selcollist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_184: + goto _346 +_186: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(11))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_185: + goto _346 +_187: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_186: + goto _346 +_188: ; /* upsert ::= ON CONFLICT DO NOTHING returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_187: + goto _346 +_189: ; /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_188: + goto _346 +_190: ; /* returning ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_189: + goto _346 +_191: ; /* idlist_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_190: + goto _346 +_192: ; /* idlist_opt ::= LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_191: + goto _346 +_193: ; /* idlist ::= idlist COMMA nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3IdListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 -_192: + goto _346 +_194: ; /* idlist ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3IdListAppend(tls, pParse, uintptr(0), yymsp+8) /*A-overwrites-Y*/ - goto _342 -_193: + goto _346 +_195: ; /* expr ::= LP expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_194: + goto _346 +_196: ; /* expr ::= ID|INDEXED|JOIN_KW */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_195: + goto _346 +_197: ; /* expr ::= nm DOT nm */ temp1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) temp2 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp1, temp2) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_196: + goto _346 +_198: ; /* expr ::= nm DOT nm DOT nm */ temp11 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) temp21 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) @@ -160890,22 +162457,22 @@ _196: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp11, temp4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_198: + goto _346 +_200: ; /* term ::= NULL|FLOAT|BLOB */ -_197: +_199: ; *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_199: + goto _346 +_201: ; /* term ::= INTEGER */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), yymsp+8, int32(1)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 52)) = int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8))) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_200: + goto _346 +_202: ; /* expr ::= VARIABLE */ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8))))) == int32('#') && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)) + 1)))])&int32(0x04) != 0) { n = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) @@ -160917,7 +162484,7 @@ _200: ** in the virtual machine. #N is the N-th register. */ *(*TToken)(unsafe.Pointer(bp + 88)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) /*A-overwrites-X*/ if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23789, libc.VaList(bp+128, bp+88)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23912, libc.VaList(bp+128, bp+88)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = uintptr(0) } else { *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_REGISTER), uintptr(0), uintptr(0)) @@ -160926,57 +162493,57 @@ _200: } } } - goto _342 -_201: + goto _346 +_203: ; /* expr ::= expr COLLATE ID|STRING */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAddCollateToken(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8, int32(1)) - goto _342 -_202: + goto _346 +_204: ; /* expr ::= CAST LP expr AS typetoken RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_CAST), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) _sqlite3ExprAttachSubtrees(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) - goto _342 -_203: + goto _346 +_205: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_204: + goto _346 +_206: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_205: + goto _346 +_207: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_206: + goto _346 +_208: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_207: + goto _346 +_209: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_208: + goto _346 +_210: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, 0) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_209: + goto _346 +_211: ; /* term ::= CTIME_KW */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_210: + goto _346 +_212: ; /* expr ::= LP nexprlist COMMA expr RP */ pList = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_VECTOR), uintptr(0), uintptr(0)) @@ -160988,33 +162555,33 @@ _210: } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) } - goto _342 -_211: + goto _346 +_213: ; /* expr ::= expr AND expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_213: + goto _346 +_215: ; /* expr ::= expr OR expr */ -_212: - ; _214: ; -_215: - ; _216: ; _217: ; _218: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 _219: + ; +_220: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_221: ; /* likeop ::= NOT LIKE_KW|MATCH */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) |= uint32(0x80000000) /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/ - goto _342 -_220: + goto _346 +_222: ; /* expr ::= expr likeop expr */ bNot = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -161027,8 +162594,8 @@ _220: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_221: + goto _346 +_223: ; /* expr ::= expr likeop expr ESCAPE expr */ bNot1 = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -161042,65 +162609,67 @@ _221: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_222: + goto _346 +_224: ; /* expr ::= expr ISNULL|NOTNULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_223: + goto _346 +_225: ; /* expr ::= expr NOT NULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOTNULL), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uintptr(0)) - goto _342 -_224: + goto _346 +_226: ; /* expr ::= expr IS expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_225: + goto _346 +_227: ; /* expr ::= expr IS NOT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_226: + goto _346 +_228: ; /* expr ::= expr IS NOT DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_227: + goto _346 +_229: ; /* expr ::= expr IS DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_229: + goto _346 +_231: ; /* expr ::= NOT expr */ -_228: +_230: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) /*A-overwrites-B*/ - goto _342 -_230: + goto _346 +_232: ; /* expr ::= PLUS|MINUS expr */ - if int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) == int32(TK_PLUS) { - v344 = int32(TK_UPLUS) + p4 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + op = uint8(int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) + (libc.Int32FromInt32(TK_UPLUS) - libc.Int32FromInt32(TK_PLUS))) + if p4 != 0 && int32((*TExpr)(unsafe.Pointer(p4)).Fop) == int32(TK_UPLUS) { + (*TExpr)(unsafe.Pointer(p4)).Fop = op + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = p4 } else { - v344 = int32(TK_UMINUS) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(op), p4, uintptr(0)) + /*A-overwrites-B*/ } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, v344, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - /*A-overwrites-B*/ - goto _342 -_231: + goto _346 +_233: ; /* expr ::= expr PTR expr */ pList3 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList3 = _sqlite3ExprListAppend(tls, pParse, pList3, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, pList3, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_233: + goto _346 +_235: ; /* between_op ::= BETWEEN */ -_232: +_234: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = 0 - goto _342 -_234: + goto _346 +_236: ; /* expr ::= expr between_op expr AND expr */ pList4 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList4 = _sqlite3ExprListAppend(tls, pParse, pList4, *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -161113,8 +162682,8 @@ _234: if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_235: + goto _346 +_237: ; /* expr ::= expr in_op LP exprlist RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) == uintptr(0) { /* Expressions of the form @@ -161127,17 +162696,17 @@ _235: */ _sqlite3ExprUnmapAndDelete(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { - v345 = __ccgo_ts + 8234 + v348 = __ccgo_ts + 8359 } else { - v345 = __ccgo_ts + 8239 + v348 = __ccgo_ts + 8364 } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v345) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v348) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { _sqlite3ExprIdToTrueFalse(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } } else { pRHS = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr - if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { + if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pParse, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr = uintptr(0) _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) pRHS = _sqlite3PExpr(tls, pParse, int32(TK_UPLUS), pRHS, uintptr(0)) @@ -161171,460 +162740,464 @@ _235: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } } - goto _342 -_236: + goto _346 +_238: ; /* expr ::= LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_SELECT), uintptr(0), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_237: + goto _346 +_239: ; /* expr ::= expr in_op LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_238: + goto _346 +_240: ; /* expr ::= expr in_op nm dbnm paren_exprlist */ pSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) pSelect = _sqlite3SelectNew(tls, pParse, uintptr(0), pSrc, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { if pSelect != 0 { - v346 = pSrc + v349 = pSrc } else { - v346 = uintptr(0) + v349 = uintptr(0) } - _sqlite3SrcListFuncArgs(tls, pParse, v346, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + _sqlite3SrcListFuncArgs(tls, pParse, v349, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pSelect) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_239: + goto _346 +_241: ; /* expr ::= EXISTS LP select RP */ - v347 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v347 - p4 = v347 - _sqlite3PExprAddSelect(tls, pParse, p4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_240: + v350 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v350 + p5 = v350 + _sqlite3PExprAddSelect(tls, pParse, p5, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_242: ; /* expr ::= CASE case_operand case_exprlist case_else END */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_CASE), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { - v348 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + v351 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } else { - v348 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + v351 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) } - *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v348 + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v351 _sqlite3ExprSetHeightAndFlags(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } - goto _342 -_241: + goto _346 +_243: ; /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_242: + goto _346 +_244: ; /* case_exprlist ::= WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_243: + goto _346 +_245: ; /* nexprlist ::= nexprlist COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_244: + goto _346 +_246: ; /* nexprlist ::= expr */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_246: + goto _346 +_248: ; /* paren_exprlist ::= LP exprlist RP */ -_245: +_247: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_247: + goto _346 +_249: ; /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ _sqlite3CreateIndex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, uintptr(0)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(11))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8)), SQLITE_SO_ASC, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), uint8(SQLITE_IDXTYPE_APPDEF)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && (*TParse)(unsafe.Pointer(pParse)).FpNewIndex != 0 { _sqlite3RenameTokenMap(tls, pParse, (*TIndex)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpNewIndex)).FzName, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) } - goto _342 -_249: + goto _346 +_251: ; /* uniqueflag ::= UNIQUE */ -_248: +_250: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Abort) - goto _342 -_250: + goto _346 +_252: ; /* uniqueflag ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = OE_None - goto _342 -_251: + goto _346 +_253: ; /* eidlist ::= eidlist COMMA nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_252: + goto _346 +_254: ; /* eidlist ::= nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_253: + goto _346 +_255: ; /* cmd ::= DROP INDEX ifexists fullname */ _sqlite3DropIndex(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_254: + goto _346 +_256: ; /* cmd ::= VACUUM vinto */ _sqlite3Vacuum(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_255: + goto _346 +_257: ; /* cmd ::= VACUUM nm vinto */ _sqlite3Vacuum(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_256: + goto _346 +_258: ; /* cmd ::= PRAGMA nm dbnm */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, uintptr(0), 0) - goto _342 -_257: + goto _346 +_259: ; /* cmd ::= PRAGMA nm dbnm EQ nmnum */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, 0) - goto _342 -_258: + goto _346 +_260: ; /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) - goto _342 -_259: + goto _346 +_261: ; /* cmd ::= PRAGMA nm dbnm EQ minus_num */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, int32(1)) - goto _342 -_260: + goto _346 +_262: ; /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) - goto _342 -_261: + goto _346 +_263: ; /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ (*(*TToken)(unsafe.Pointer(bp + 104))).Fz = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) (*(*TToken)(unsafe.Pointer(bp + 104))).Fn = uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) + *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) _sqlite3FinishTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), bp+104) - goto _342 -_262: + goto _346 +_264: ; /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ _sqlite3BeginTrigger(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8 + 8)) == uint32(0) { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) } else { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) } - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v349 /*A-overwrites-T*/ - goto _342 -_263: + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v352 /*A-overwrites-T*/ + goto _346 +_265: ; /* trigger_time ::= BEFORE|AFTER */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_264: + goto _346 +_266: ; /* trigger_time ::= INSTEAD OF */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_INSTEAD) - goto _342 -_265: + goto _346 +_267: ; /* trigger_time ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_BEFORE) - goto _342 -_267: + goto _346 +_269: ; /* trigger_event ::= DELETE|INSERT */ -_266: +_268: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) = uintptr(0) - goto _342 -_268: + goto _346 +_270: ; /* trigger_event ::= UPDATE OF idlist */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(TK_UPDATE) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_270: + goto _346 +_272: ; /* when_clause ::= */ -_269: +_271: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_272: + goto _346 +_274: ; /* when_clause ::= WHEN expr */ -_271: +_273: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_273: + goto _346 +_275: ; /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ (*TTriggerStep)(unsafe.Pointer((*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast)).FpNext = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_274: + goto _346 +_276: ; /* trigger_cmd_list ::= trigger_cmd SEMI */ (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_275: + goto _346 +_277: ; /* trnm ::= nm DOT nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23813, 0) - goto _342 -_276: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23936, 0) + goto _346 +_278: ; /* tridxby ::= INDEXED BY nm */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23908, 0) - goto _342 -_277: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24031, 0) + goto _346 +_279: ; /* tridxby ::= NOT INDEXED */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23992, 0) - goto _342 -_278: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24115, 0) + goto _346 +_280: ; /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerUpdateStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_279: + goto _346 +_281: ; /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_280: + goto _346 +_282: ; /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerDeleteStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_281: + goto _346 +_283: ; /* trigger_cmd ::= scanpt select scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_282: + goto _346 +_284: ; /* expr ::= RAISE LP IGNORE RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_RAISE), uintptr(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)))).FaffExpr = int8(OE_Ignore) } - goto _342 -_283: + goto _346 +_285: ; /* expr ::= RAISE LP raisetype COMMA nm RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_RAISE), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)))).FaffExpr = int8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) } - goto _342 -_284: + goto _346 +_286: ; /* raisetype ::= ROLLBACK */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Rollback) - goto _342 -_285: + goto _346 +_287: ; /* raisetype ::= FAIL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Fail) - goto _342 -_286: + goto _346 +_288: ; /* cmd ::= DROP TRIGGER ifexists fullname */ _sqlite3DropTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_287: + goto _346 +_289: ; /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ _sqlite3Attach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_288: + goto _346 +_290: ; /* cmd ::= DETACH database_kw_opt expr */ _sqlite3Detach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_289: + goto _346 +_291: ; /* cmd ::= REINDEX */ _sqlite3Reindex(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_290: + goto _346 +_292: ; /* cmd ::= REINDEX nm dbnm */ _sqlite3Reindex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_291: + goto _346 +_293: ; /* cmd ::= ANALYZE */ _sqlite3Analyze(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_292: + goto _346 +_294: ; /* cmd ::= ANALYZE nm dbnm */ _sqlite3Analyze(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_293: + goto _346 +_295: ; /* cmd ::= ALTER TABLE fullname RENAME TO nm */ _sqlite3AlterRenameTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_294: + goto _346 +_296: ; /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(int32(int64((*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fz)-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) + (*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fn _sqlite3AlterFinishAddColumn(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_295: + goto _346 +_297: ; /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ _sqlite3AlterDropColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_296: + goto _346 +_298: ; /* add_column_fullname ::= fullname */ _disableLookaside(tls, pParse) _sqlite3AlterBeginAddColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_297: + goto _346 +_299: ; /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ _sqlite3AlterRenameColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) - goto _342 -_298: + goto _346 +_300: ; /* cmd ::= create_vtab */ _sqlite3VtabFinishParse(tls, pParse, uintptr(0)) - goto _342 -_299: + goto _346 +_301: ; /* cmd ::= create_vtab LP vtabarglist RP */ _sqlite3VtabFinishParse(tls, pParse, yymsp+8) - goto _342 -_300: + goto _346 +_302: ; /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ _sqlite3VtabBeginParse(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) - goto _342 -_301: + goto _346 +_303: ; /* vtabarg ::= */ _sqlite3VtabArgInit(tls, pParse) - goto _342 -_303: + goto _346 +_305: ; /* vtabargtoken ::= ANY */ -_302: - ; _304: ; - _sqlite3VtabArgExtend(tls, pParse, yymsp+8) - goto _342 _306: + ; + _sqlite3VtabArgExtend(tls, pParse, yymsp+8) + goto _346 +_308: ; /* with ::= WITH wqlist */ -_305: +_307: ; _sqlite3WithPush(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint8(1)) - goto _342 -_307: + goto _346 +_309: ; /* wqas ::= AS */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8(M10d_Any) - goto _342 -_308: + goto _346 +_310: ; /* wqas ::= AS MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8(M10d_Yes) - goto _342 -_309: + goto _346 +_311: ; /* wqas ::= AS NOT MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = uint8(M10d_No) - goto _342 -_310: - ; /* wqitem ::= nm eidlist_opt wqas LP select RP */ + goto _346 +_312: + ; /* wqitem ::= withnm eidlist_opt wqas LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3CteNew(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) /*A-overwrites-X*/ - goto _342 -_311: + goto _346 +_313: + ; /* withnm ::= nm */ + (*TParse)(unsafe.Pointer(pParse)).FbHasWith = uint8(1) + goto _346 +_314: ; /* wqlist ::= wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3WithAdd(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_312: + goto _346 +_315: ; /* wqlist ::= wqlist COMMA wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3WithAdd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_313: + goto _346 +_316: ; /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ _sqlite3WindowChain(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpNextWin = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_314: + goto _346 +_317: ; /* windowdefn ::= nm AS LP window RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)))) } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_315: + goto _346 +_318: ; /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_316: + goto _346 +_319: ; /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_317: + goto _346 +_320: ; /* window ::= ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_318: + goto _346 +_321: ; /* window ::= nm ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_319: + goto _346 +_322: ; /* window ::= nm frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_320: + goto _346 +_323: ; /* frame_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = _sqlite3WindowAlloc(tls, pParse, 0, int32(TK_UNBOUNDED), uintptr(0), int32(TK_CURRENT), uintptr(0), uint8(0)) - goto _342 -_321: + goto _346 +_324: ; /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), int32(TK_CURRENT), uintptr(0), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_322: + goto _346 +_325: ; /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_324: + goto _346 +_327: ; /* frame_bound_s ::= frame_bound */ -_323: +_326: ; *(*TFrameBound)(unsafe.Pointer(bp)) = *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_326: + goto _346 +_329: ; /* frame_bound_s ::= UNBOUNDED PRECEDING */ -_325: +_328: ; -_327: +_330: ; (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = uintptr(0) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_328: + goto _346 +_331: ; /* frame_bound ::= expr PRECEDING|FOLLOWING */ (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_329: + goto _346 +_332: ; /* frame_exclude_opt ::= */ *(*Tu8)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint8(0) - goto _342 -_330: + goto _346 +_333: ; /* frame_exclude_opt ::= EXCLUDE frame_exclude */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*Tu8)(unsafe.Pointer(yymsp + 8)) - goto _342 -_332: + goto _346 +_335: ; /* frame_exclude ::= NO OTHERS */ -_331: +_334: ; *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) /*A-overwrites-X*/ - goto _342 -_333: + goto _346 +_336: ; /* frame_exclude ::= GROUP|TIES */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_334: + goto _346 +_337: ; /* window_clause ::= WINDOW windowdefn_list */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_335: + goto _346 +_338: ; /* filter_over ::= filter_clause over_clause */ if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpFilter = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) @@ -161633,13 +163206,13 @@ _335: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_336: + goto _346 +_339: ; /* filter_over ::= over_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_337: + goto _346 +_340: ; /* filter_over ::= filter_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { @@ -161649,27 +163222,33 @@ _337: _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_338: + goto _346 +_341: ; /* over_clause ::= OVER LP window RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_339: + goto _346 +_342: ; /* over_clause ::= OVER nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) } - goto _342 -_340: + goto _346 +_343: ; /* filter_clause ::= FILTER LP WHERE expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_341: + goto _346 +_344: + ; /* term ::= QNUMBER */ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) + _sqlite3DequoteNumber(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp))))) + *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + goto _346 +_345: ; - goto _342 + goto _346 /********** End reduce actions ************************************************/ -_342: +_346: ; yygoto = int32(_yyRuleInfoLhs[yyruleno]) yysize = int32(_yyRuleInfoNRhs[yyruleno]) @@ -161703,9 +163282,9 @@ func _yy_syntax_error(tls *libc.TLS, yypParser uintptr, yymajor int32, _yyminor /************ Begin %syntax_error code ****************************************/ _ = yymajor /* Silence some compiler warnings */ if *(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp))).Fz)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23789, libc.VaList(bp+24, bp)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23912, libc.VaList(bp+24, bp)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24077, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24200, 0) } /************ End %syntax_error code ******************************************/ /* Suppress warning about unused %extra_argument variable */ @@ -161770,8 +163349,10 @@ func _sqlite3Parser(tls *libc.TLS, yyp uintptr, yymajor int32, yyminor TToken) { ** enough on the stack to push the LHS value */ if int32(_yyRuleInfoNRhs[yyruleno]) == 0 { if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos >= (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - _yyStackOverflow(tls, yypParser) - break + if _yyGrowStack(tls, yypParser) != 0 { + _yyStackOverflow(tls, yypParser) + break + } } } yyact = _yy_reduce(tls, yypParser, yyruleno, yymajor, yyminor, pParse) @@ -163920,9 +165501,9 @@ func _analyzeFilterKeyword(tls *libc.TLS, _z uintptr, lastToken int32) (r int32) // ** Store the token type in *tokenType before returning. // */ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { - var c, delim, i, n, v10, v14, v16, v19, v20, v3, v5, v7, v8 int32 - var v15, v6 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v14, v15, v16, v19, v20, v3, v5, v6, v7, v8 + var c, delim, i, n, v10, v16, v18, v21, v22, v3, v5, v7, v8 int32 + var v17, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v16, v17, v18, v21, v22, v3, v5, v6, v7, v8 switch int32(_aiClass[*(*uint8)(unsafe.Pointer(z))]) { /* Switch on the character-class of the first byte ** of the token. See the comment on the CC_ defines ** above. */ @@ -164120,39 +165701,83 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('X')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + 2))])&int32(0x08) != 0 { i = int32(3) for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { + if !(int32(1) != 0) { break } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } goto _11 _11: ; i++ } - return i - } - i = 0 - for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _12 - _12: - ; - i++ - } - if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { - i++ - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + } else { + i = 0 + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _12 + _12: + ; i++ } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) - } - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { - i += int32(2) - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } i++ + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _13 + _13: + ; + i++ + } + } + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } + i += int32(2) + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _14 + _14: + ; + i++ + } } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) } for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x46) != 0 { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_ILLEGAL) @@ -164163,24 +165788,24 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { i = int32(1) c = int32(*(*uint8)(unsafe.Pointer(z))) for { - if v15 = c != int32(']'); v15 { - v14 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v14 + if v17 = c != int32(']'); v17 { + v16 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v16 } - if !(v15 && v14 != 0) { + if !(v17 && v16 != 0) { break } - goto _13 - _13: + goto _15 + _15: ; i++ } if c == int32(']') { - v16 = int32(TK_ID) + v18 = int32(TK_ID) } else { - v16 = int32(TK_ILLEGAL) + v18 = int32(TK_ILLEGAL) } - *(*int32)(unsafe.Pointer(tokenType)) = v16 + *(*int32)(unsafe.Pointer(tokenType)) = v18 return i case int32(CC_VARNUM): *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) @@ -164189,8 +165814,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { break } - goto _17 - _17: + goto _19 + _19: ; i++ } @@ -164202,9 +165827,9 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) i = int32(1) for { - v19 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v19 - if !(v19 != 0) { + v21 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v21 + if !(v21 != 0) { break } if int32(_sqlite3CtypeMap[uint8(c)])&int32(0x46) != 0 { @@ -164213,12 +165838,12 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if c == int32('(') && n > 0 { for { i++ - goto _21 - _21: + goto _23 + _23: ; - v20 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v20 - if !(v20 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { + v22 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v22 + if !(v22 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { break } } @@ -164236,8 +165861,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { } } } - goto _18 - _18: + goto _20 + _20: ; i++ } @@ -164255,8 +165880,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_aiClass[*(*uint8)(unsafe.Pointer(z + uintptr(i)))]) <= int32(CC_KYWD)) { break } - goto _22 - _22: + goto _24 + _24: ; i++ } @@ -164277,8 +165902,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { break } - goto _23 - _23: + goto _25 + _25: ; i++ } @@ -164332,7 +165957,7 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { var lastTokenParsed, mxSqlLen, n, nErr int32 var _ /* sEngine at bp+8 */ TyyParser var _ /* tokenType at bp+0 */ int32 - var _ /* x at bp+2432 */ TToken + var _ /* x at bp+2440 */ TToken _, _, _, _, _, _, _ = db, lastTokenParsed, mxSqlLen, n, nErr, pEngine, pParentParse nErr = 0 /* The LEMON-generated LALR(1) parser */ n = 0 /* type of the next token */ @@ -164390,10 +166015,12 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp)) == int32(TK_FILTER) { *(*int32)(unsafe.Pointer(bp)) = _analyzeFilterKeyword(tls, zSql+6, lastTokenParsed) } else { - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fz = zSql - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fn = uint32(n) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24094, libc.VaList(bp+2456, bp+2432)) - break + if *(*int32)(unsafe.Pointer(bp)) != int32(TK_QNUMBER) { + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fz = zSql + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fn = uint32(n) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24217, libc.VaList(bp+2464, bp+2440)) + break + } } } } @@ -164414,9 +166041,9 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { } if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg != 0 || (*TParse)(unsafe.Pointer(pParse)).Frc != SQLITE_OK && (*TParse)(unsafe.Pointer(pParse)).Frc != int32(SQLITE_DONE) { if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg == uintptr(0) { - (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3799, libc.VaList(bp+2456, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) + (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3863, libc.VaList(bp+2464, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) } - Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+24119, libc.VaList(bp+2456, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) + Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+24242, libc.VaList(bp+2464, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) nErr++ } (*TParse)(unsafe.Pointer(pParse)).FzTail = zSql @@ -164608,7 +166235,7 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('c'): fallthrough case int32('C'): - if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24130, int32(6)) == 0 { + if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24253, int32(6)) == 0 { token = uint8(tkCREATE) } else { token = uint8(tkOTHER) @@ -164616,13 +166243,13 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('t'): fallthrough case int32('T'): - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20774, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20906, int32(7)) == 0 { token = uint8(tkTRIGGER) } else { - if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24137, int32(4)) == 0 { + if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24260, int32(4)) == 0 { token = uint8(tkTEMP) } else { - if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24142, int32(9)) == 0 { + if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24265, int32(9)) == 0 { token = uint8(tkTEMP) } else { token = uint8(tkOTHER) @@ -164632,10 +166259,10 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('e'): fallthrough case int32('E'): - if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24152, int32(3)) == 0 { + if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24275, int32(3)) == 0 { token = uint8(tkEND) } else { - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24156, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24279, int32(7)) == 0 { token = uint8(tkEXPLAIN) } else { token = uint8(tkOTHER) @@ -164895,8 +166522,6 @@ func _hasHighPrecisionDouble(tls *libc.TLS, rc int32) (r int32) { // ** without blocking. // */ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { - ng := runtime.GOMAXPROCS(1) - defer func() { runtime.GOMAXPROCS(ng) }() var pMainMtx uintptr var rc int32 _, _ = pMainMtx, rc /* Result code */ @@ -164908,7 +166533,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** must be complete. So isInit must not be set until the very end ** of this routine. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { return SQLITE_OK } /* Make sure the mutex subsystem is initialized. If unable to @@ -164968,7 +166593,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** call to sqlite3PcacheInitialize(). */ Xsqlite3_mutex_enter(tls, _sqlite3Config.FpInitMutex) - if _sqlite3Config.FisInit == 0 && _sqlite3Config.FinProgress == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 && _sqlite3Config.FinProgress == 0 { _sqlite3Config.FinProgress = int32(1) libc.X__builtin___memset_chk(tls, uintptr(unsafe.Pointer(&_sqlite3BuiltinFunctions)), 0, uint64(184), libc.X__builtin_object_size(tls, uintptr(unsafe.Pointer(&_sqlite3BuiltinFunctions)), 0)) _sqlite3RegisterBuiltinFunctions(tls) @@ -164984,7 +166609,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { } if rc == SQLITE_OK { _sqlite3PCacheBufferSetup(tls, _sqlite3Config.FpPage, _sqlite3Config.FszPage, _sqlite3Config.FnPage) - _sqlite3Config.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, int32(1)) } _sqlite3Config.FinProgress = 0 } @@ -165009,7 +166634,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { */ /* Experimentally determine if high-precision floating point is ** available. */ - _sqlite3Config.FbUseLongDouble = uint8(_hasHighPrecisionDouble(tls, rc)) + // disabled return rc } @@ -165024,10 +166649,10 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { // ** when this routine is invoked, then this routine is a harmless no-op. // */ func Xsqlite3_shutdown(tls *libc.TLS) (r int32) { - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { Xsqlite3_os_end(tls) Xsqlite3_reset_auto_extension(tls) - _sqlite3Config.FisInit = 0 + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, 0) } if _sqlite3Config.FisPCacheInit != 0 { _sqlite3PcacheShutdown(tls) @@ -165075,9 +166700,9 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { ** the SQLite library is in use. Except, a few selected opcodes ** are allowed. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)<= 0 && rc < int32(libc.Uint64FromInt64(232)/libc.Uint64FromInt64(8)) && _aMsg[rc] != uintptr(0) { @@ -166215,31 +167840,31 @@ func _sqlite3ErrStr(tls *libc.TLS, rc int32) (r uintptr) { } var _aMsg = [29]uintptr{ - 0: __ccgo_ts + 24232, - 1: __ccgo_ts + 24245, - 3: __ccgo_ts + 24261, - 4: __ccgo_ts + 24286, - 5: __ccgo_ts + 24300, - 6: __ccgo_ts + 24319, - 7: __ccgo_ts + 1620, - 8: __ccgo_ts + 24344, - 9: __ccgo_ts + 24381, - 10: __ccgo_ts + 24393, - 11: __ccgo_ts + 24408, - 12: __ccgo_ts + 24441, - 13: __ccgo_ts + 24459, - 14: __ccgo_ts + 24484, - 15: __ccgo_ts + 24513, - 17: __ccgo_ts + 6369, - 18: __ccgo_ts + 5771, - 19: __ccgo_ts + 24530, - 20: __ccgo_ts + 24548, - 21: __ccgo_ts + 24566, - 23: __ccgo_ts + 24600, - 25: __ccgo_ts + 24621, - 26: __ccgo_ts + 24647, - 27: __ccgo_ts + 24670, - 28: __ccgo_ts + 24691, + 0: __ccgo_ts + 24355, + 1: __ccgo_ts + 24368, + 3: __ccgo_ts + 24384, + 4: __ccgo_ts + 24409, + 5: __ccgo_ts + 24423, + 6: __ccgo_ts + 24442, + 7: __ccgo_ts + 1634, + 8: __ccgo_ts + 24467, + 9: __ccgo_ts + 24504, + 10: __ccgo_ts + 24516, + 11: __ccgo_ts + 24531, + 12: __ccgo_ts + 24564, + 13: __ccgo_ts + 24582, + 14: __ccgo_ts + 24607, + 15: __ccgo_ts + 24636, + 17: __ccgo_ts + 6433, + 18: __ccgo_ts + 5835, + 19: __ccgo_ts + 24653, + 20: __ccgo_ts + 24671, + 21: __ccgo_ts + 24689, + 23: __ccgo_ts + 24723, + 25: __ccgo_ts + 24744, + 26: __ccgo_ts + 24770, + 27: __ccgo_ts + 24793, + 28: __ccgo_ts + 24814, } // C documentation @@ -166418,7 +168043,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i var p, v1 uintptr _, _, _, _ = extraFlags, p, rc, v1 if zFunctionName == uintptr(0) || xSFunc != uintptr(0) && xFinal != uintptr(0) || libc.BoolInt32(xFinal == uintptr(0)) != libc.BoolInt32(xStep == uintptr(0)) || libc.BoolInt32(xValue == uintptr(0)) != libc.BoolInt32(xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { - return _sqlite3MisuseError(tls, int32(180244)) + return _sqlite3MisuseError(tls, int32(181689)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -166461,7 +168086,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i p = _sqlite3FindFunction(tls, db, zFunctionName, nArg, uint8(enc), uint8(0)) if p != 0 && (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) == uint32(enc) && int32((*TFuncDef)(unsafe.Pointer(p)).FnArg) == nArg { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24788, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24911, 0) return int32(SQLITE_BUSY) } else { _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -166531,6 +168156,7 @@ func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, en (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } + goto out out: ; rc = _sqlite3ApiExit(tls, db, rc) @@ -166586,7 +168212,7 @@ func _sqlite3InvalidFunction(tls *libc.TLS, context uintptr, NotUsed int32, NotU zName = Xsqlite3_user_data(tls, context) _ = NotUsed _ = NotUsed2 - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24851, libc.VaList(bp+8, zName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24974, libc.VaList(bp+8, zName)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -166617,7 +168243,7 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i if rc != 0 { return SQLITE_OK } - zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, zName)) + zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, zName)) if zCopy == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -166861,7 +168487,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in if eMode < SQLITE_CHECKPOINT_PASSIVE || eMode > int32(SQLITE_CHECKPOINT_TRUNCATE) { /* EVIDENCE-OF: R-03996-12088 The M parameter must be a valid checkpoint ** mode: */ - return _sqlite3MisuseError(tls, int32(180859)) + return _sqlite3MisuseError(tls, int32(182304)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*int8)(unsafe.Pointer(zDb)) != 0 { @@ -166871,7 +168497,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in } if iDb < 0 { rc = int32(SQLITE_ERROR) - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24902, libc.VaList(bp+8, zDb)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+25025, libc.VaList(bp+8, zDb)) } else { (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0 rc = _sqlite3Checkpoint(tls, db, iDb, eMode, pnLog, pnCkpt) @@ -166993,7 +168619,7 @@ func Xsqlite3_errmsg(tls *libc.TLS, db uintptr) (r uintptr) { return _sqlite3ErrStr(tls, int32(SQLITE_NOMEM)) } if !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(180995))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(182440))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -167125,7 +168751,7 @@ var _misuse = [34]Tu16{ // */ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181074)) + return _sqlite3MisuseError(tls, int32(182519)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -167135,7 +168761,7 @@ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { func Xsqlite3_extended_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181083)) + return _sqlite3MisuseError(tls, int32(182528)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -167184,7 +168810,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui enc2 = int32(SQLITE_UTF16LE) } if enc2 < int32(SQLITE_UTF8) || enc2 > int32(SQLITE_UTF16BE) { - return _sqlite3MisuseError(tls, int32(181131)) + return _sqlite3MisuseError(tls, int32(182576)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -167193,7 +168819,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui pColl = _sqlite3FindCollSeq(tls, db, uint8(enc2), zName, 0) if pColl != 0 && (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp != 0 { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24923, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+25046, 0) return int32(SQLITE_BUSY) } _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -167340,7 +168966,7 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u flags = *(*uint32)(unsafe.Pointer(pFlags)) zVfs = zDefaultVfs nUri = _sqlite3Strlen30(tls, zUri) - if (flags&uint32(SQLITE_OPEN_URI) != 0 || *(*Tu8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Config)) + 6)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24991, uint64(5)) == 0 { /* Input character index */ + if (flags&uint32(SQLITE_OPEN_URI) != 0 || *(*Tu8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Config)) + 6)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+25114, uint64(5)) == 0 { /* Input character index */ iOut = 0 /* Output character index */ nByte = uint64(nUri + int32(8)) /* Bytes of space to allocate */ /* Make sure the SQLITE_OPEN_URI flag is set to indicate to the VFS xOpen @@ -167370,8 +168996,8 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u for *(*int8)(unsafe.Pointer(zUri + uintptr(iIn))) != 0 && int32(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn)))) != int32('/') { iIn++ } - if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24997, zUri+7, uint64(9)) != 0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25007, libc.VaList(bp+8, iIn-int32(7), zUri+7)) + if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+25120, zUri+7, uint64(9)) != 0) { + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25130, libc.VaList(bp+8, iIn-int32(7), zUri+7)) rc = int32(SQLITE_ERROR) goto parse_uri_out } @@ -167460,24 +169086,24 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u nOpt = _sqlite3Strlen30(tls, zOpt) zVal = zOpt + uintptr(nOpt+int32(1)) nVal = _sqlite3Strlen30(tls, zVal) - if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+25035, zOpt, uint64(3)) == 0 { + if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+25158, zOpt, uint64(3)) == 0 { zVfs = zVal } else { aMode = uintptr(0) zModeType = uintptr(0) mask = 0 limit = 0 - if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+25039, zOpt, uint64(5)) == 0 { + if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+25162, zOpt, uint64(5)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_SHAREDCACHE) | libc.Int32FromInt32(SQLITE_OPEN_PRIVATECACHE) aMode = uintptr(unsafe.Pointer(&_aCacheMode)) limit = mask - zModeType = __ccgo_ts + 25039 + zModeType = __ccgo_ts + 25162 } - if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+25060, zOpt, uint64(4)) == 0 { + if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+25183, zOpt, uint64(4)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_READONLY) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_MEMORY) aMode = uintptr(unsafe.Pointer(&_aOpenMode)) limit = int32(uint32(mask) & flags) - zModeType = __ccgo_ts + 3406 + zModeType = __ccgo_ts + 3470 } if aMode != 0 { mode = 0 @@ -167506,12 +169132,12 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u i++ } if mode == 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25075, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25198, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_ERROR) goto parse_uri_out } if mode & ^libc.Int32FromInt32(SQLITE_OPEN_MEMORY) > limit { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25095, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25218, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_PERM) goto parse_uri_out } @@ -167535,9 +169161,10 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u } *(*uintptr)(unsafe.Pointer(ppVfs)) = Xsqlite3_vfs_find(tls, zVfs) if *(*uintptr)(unsafe.Pointer(ppVfs)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25119, libc.VaList(bp+8, zVfs)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25242, libc.VaList(bp+8, zVfs)) rc = int32(SQLITE_ERROR) } + goto parse_uri_out parse_uri_out: ; if rc != SQLITE_OK { @@ -167554,11 +169181,11 @@ var _aCacheMode = [3]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 25045, + Fz: __ccgo_ts + 25168, Fmode: int32(SQLITE_OPEN_SHAREDCACHE), }, 1: { - Fz: __ccgo_ts + 25052, + Fz: __ccgo_ts + 25175, Fmode: int32(SQLITE_OPEN_PRIVATECACHE), }, 2: {}, @@ -167569,19 +169196,19 @@ var _aOpenMode = [5]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 25065, + Fz: __ccgo_ts + 25188, Fmode: int32(SQLITE_OPEN_READONLY), }, 1: { - Fz: __ccgo_ts + 25068, + Fz: __ccgo_ts + 25191, Fmode: int32(SQLITE_OPEN_READWRITE), }, 2: { - Fz: __ccgo_ts + 25071, + Fz: __ccgo_ts + 25194, Fmode: libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE), }, 3: { - Fz: __ccgo_ts + 18131, + Fz: __ccgo_ts + 18218, Fmode: int32(SQLITE_OPEN_MEMORY), }, 4: {}, @@ -167709,8 +169336,8 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16BE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16LE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+22746, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+25135, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+22891, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+25258, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto opendb_out } @@ -167731,7 +169358,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* READWRITE */ /* READWRITE | CREATE */ if int32(1)<<(*(*uint32)(unsafe.Pointer(bp))&uint32(7))&int32(0x46) == 0 { - rc = _sqlite3MisuseError(tls, int32(181803)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(183248)) /* IMP: R-18321-05872 */ } else { rc = _sqlite3ParseUri(tls, zVfs, zFilename, bp, db, bp+8, bp+16) } @@ -167740,7 +169367,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _sqlite3OomFault(tls, db) } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { - v2 = __ccgo_ts + 3799 + v2 = __ccgo_ts + 3863 } else { v2 = uintptr(0) } @@ -167767,9 +169394,9 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* The default safety_level for the main database is FULL; for the temp ** database it is OFF. This matches the pager layer defaults. */ - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6933 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6997 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).Fsafety_level = uint8(libc.Int32FromInt32(SQLITE_DEFAULT_SYNCHRONOUS) + libc.Int32FromInt32(1)) - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 24137 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 24260 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).Fsafety_level = uint8(PAGER_SYNCHRONOUS_OFF) (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState = uint8(SQLITE_STATE_OPEN) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -167814,6 +169441,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* Enable the lookaside-malloc subsystem */ _setupLookaside(tls, db, uintptr(0), _sqlite3Config.FszLookaside, _sqlite3Config.FnLookaside) Xsqlite3_wal_autocheckpoint(tls, db, int32(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT)) + goto opendb_out opendb_out: ; if db != 0 { @@ -167862,7 +169490,7 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc } if zFilename == uintptr(0) { - zFilename = __ccgo_ts + 25141 + zFilename = __ccgo_ts + 25264 } pVal = _sqlite3ValueNew(tls, uintptr(0)) _sqlite3ValueSetStr(tls, pVal, -int32(1), zFilename, uint8(SQLITE_UTF16LE), libc.UintptrFromInt32(0)) @@ -168079,20 +169707,20 @@ func Xsqlite3_get_autocommit(tls *libc.TLS, db uintptr) (r int32) { func _sqlite3ReportError(tls *libc.TLS, iErr int32, lineno int32, zType uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) - Xsqlite3_log(tls, iErr, __ccgo_ts+25144, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) + Xsqlite3_log(tls, iErr, __ccgo_ts+25267, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) return iErr } func _sqlite3CorruptError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+25169) + return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+25292) } func _sqlite3MisuseError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+25189) + return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+25312) } func _sqlite3CantopenError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+25196) + return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+25319) } // C documentation @@ -168198,6 +169826,7 @@ func Xsqlite3_table_column_metadata(tls *libc.TLS, db uintptr, zDbName uintptr, if !(zCollSeq != 0) { zCollSeq = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } + goto error_out error_out: ; _sqlite3BtreeLeaveAll(tls, db) @@ -168222,11 +169851,11 @@ error_out: } if SQLITE_OK == rc && !(pTab != 0) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+25213, libc.VaList(bp+16, zTableName, zColumnName)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+25336, libc.VaList(bp+16, zTableName, zColumnName)) rc = int32(SQLITE_ERROR) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v3 = __ccgo_ts + 3799 + v3 = __ccgo_ts + 3863 } else { v3 = uintptr(0) } @@ -168661,7 +170290,7 @@ func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) (r int32) { */ fallthrough case int32(SQLITE_TESTCTRL_ISINIT): - if _sqlite3Config.FisInit == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 { rc = int32(SQLITE_ERROR) } break @@ -169250,7 +170879,7 @@ func Xsqlite3_compileoption_used(tls *libc.TLS, zOptName uintptr) (r int32) { var _ /* nOpt at bp+0 */ int32 _, _, _ = azCompileOpt, i, n azCompileOpt = _sqlite3CompileOptions(tls, bp) - if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+25241, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+25364, int32(7)) == 0 { zOptName += uintptr(7) } n = _sqlite3Strlen30(tls, zOptName) @@ -169468,7 +171097,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui } _leaveMutex(tls) if rc != 0 { - v2 = __ccgo_ts + 25249 + v2 = __ccgo_ts + 25372 } else { v2 = uintptr(0) } @@ -170348,23 +171977,23 @@ func _sqlite3ConnectionClosed(tls *libc.TLS, db uintptr) { // ** string must correspond to the JSONB_* integer above. // */ var _jsonbType = [17]uintptr{ - 0: __ccgo_ts + 1636, - 1: __ccgo_ts + 8234, - 2: __ccgo_ts + 8239, - 3: __ccgo_ts + 6654, - 4: __ccgo_ts + 6654, - 5: __ccgo_ts + 6649, - 6: __ccgo_ts + 6649, - 7: __ccgo_ts + 8545, - 8: __ccgo_ts + 8545, - 9: __ccgo_ts + 8545, - 10: __ccgo_ts + 8545, - 11: __ccgo_ts + 25272, - 12: __ccgo_ts + 25278, - 13: __ccgo_ts + 1650, - 14: __ccgo_ts + 1650, - 15: __ccgo_ts + 1650, - 16: __ccgo_ts + 1650, + 0: __ccgo_ts + 1650, + 1: __ccgo_ts + 8359, + 2: __ccgo_ts + 8364, + 3: __ccgo_ts + 6718, + 4: __ccgo_ts + 6718, + 5: __ccgo_ts + 6713, + 6: __ccgo_ts + 6713, + 7: __ccgo_ts + 8670, + 8: __ccgo_ts + 8670, + 9: __ccgo_ts + 8670, + 10: __ccgo_ts + 8670, + 11: __ccgo_ts + 25395, + 12: __ccgo_ts + 25401, + 13: __ccgo_ts + 1664, + 14: __ccgo_ts + 1664, + 15: __ccgo_ts + 1664, + 16: __ccgo_ts + 1664, } // C documentation @@ -171127,6 +172756,38 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { _jsonAppendChar(tls, p, int8(',')) } +// C documentation +// +// /* c is a control character. Append the canonical JSON representation +// ** of that control character to p. +// ** +// ** This routine assumes that the output buffer has already been enlarged +// ** sufficiently to hold the worst-case encoding plus a nul terminator. +// */ +func _jsonAppendControlChar(tls *libc.TLS, p uintptr, c Tu8) { + if _aSpecial[c] != 0 { + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = int8('\\') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = _aSpecial[c] + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(2) + } else { + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = int8('\\') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = int8('u') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(2)))) = int8('0') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(3)))) = int8('0') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(4)))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 25408 + uintptr(int32(c)>>int32(4)))) + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(5)))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 25408 + uintptr(int32(c)&int32(0xf)))) + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(6) + } +} + +var _aSpecial = [32]int8{ + 8: int8('b'), + 9: int8('t'), + 10: int8('n'), + 12: int8('f'), + 13: int8('r'), +} + // C documentation // // /* Append the N-byte string in zIn to the end of the JsonString string @@ -171140,9 +172801,9 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { var c Tu8 var k Tu32 - var z, v10, v12, v14, v16, v18, v2, v20, v22, v24, v6, v8 uintptr - var v1, v11, v13, v15, v17, v19, v21, v23, v5, v7, v9 Tu64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v5, v6, v7, v8, v9 + var z, v10, v2, v4, v6, v8 uintptr + var v1, v3, v5, v7, v9 Tu64 + _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v2, v3, v4, v5, v6, v7, v8, v9 z = zIn if z == uintptr(0) { return @@ -171199,80 +172860,38 @@ func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { N -= k } c = *(*Tu8)(unsafe.Pointer(z)) - if !(int32(c) == int32('"') || int32(c) == int32('\\')) { - goto _3 - } - json_simple_escape: - ; - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { - return - } - v6 = p + 24 - v5 = *(*Tu64)(unsafe.Pointer(v6)) - *(*Tu64)(unsafe.Pointer(v6))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = int8('\\') - v8 = p + 24 - v7 = *(*Tu64)(unsafe.Pointer(v8)) - *(*Tu64)(unsafe.Pointer(v8))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = int8(c) - goto _4 - _3: - ; - if int32(c) == int32('\'') { - v10 = p + 24 - v9 = *(*Tu64)(unsafe.Pointer(v10)) - *(*Tu64)(unsafe.Pointer(v10))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = int8(c) - } else { - if _aSpecial[c] != 0 { - c = uint8(_aSpecial[c]) - goto json_simple_escape - } - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + if int32(c) == int32('"') || int32(c) == int32('\\') { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { return } - v12 = p + 24 - v11 = *(*Tu64)(unsafe.Pointer(v12)) - *(*Tu64)(unsafe.Pointer(v12))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v11))) = int8('\\') - v14 = p + 24 - v13 = *(*Tu64)(unsafe.Pointer(v14)) - *(*Tu64)(unsafe.Pointer(v14))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v13))) = int8('u') - v16 = p + 24 - v15 = *(*Tu64)(unsafe.Pointer(v16)) - *(*Tu64)(unsafe.Pointer(v16))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v15))) = int8('0') - v18 = p + 24 - v17 = *(*Tu64)(unsafe.Pointer(v18)) - *(*Tu64)(unsafe.Pointer(v18))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v17))) = int8('0') - v20 = p + 24 - v19 = *(*Tu64)(unsafe.Pointer(v20)) - *(*Tu64)(unsafe.Pointer(v20))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v19))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 25285 + uintptr(int32(c)>>int32(4)))) - v22 = p + 24 - v21 = *(*Tu64)(unsafe.Pointer(v22)) - *(*Tu64)(unsafe.Pointer(v22))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v21))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 25285 + uintptr(int32(c)&int32(0xf)))) + v4 = p + 24 + v3 = *(*Tu64)(unsafe.Pointer(v4)) + *(*Tu64)(unsafe.Pointer(v4))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v3))) = int8('\\') + v6 = p + 24 + v5 = *(*Tu64)(unsafe.Pointer(v6)) + *(*Tu64)(unsafe.Pointer(v6))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = int8(c) + } else { + if int32(c) == int32('\'') { + v8 = p + 24 + v7 = *(*Tu64)(unsafe.Pointer(v8)) + *(*Tu64)(unsafe.Pointer(v8))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = int8(c) + } else { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + return + } + _jsonAppendControlChar(tls, p, c) + } } - _4: - ; z++ N-- } - v24 = p + 24 - v23 = *(*Tu64)(unsafe.Pointer(v24)) - *(*Tu64)(unsafe.Pointer(v24))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v23))) = int8('"') -} - -var _aSpecial = [32]int8{ - 8: int8('b'), - 9: int8('t'), - 10: int8('n'), - 12: int8('f'), - 13: int8('r'), + v10 = p + 24 + v9 = *(*Tu64)(unsafe.Pointer(v10)) + *(*Tu64)(unsafe.Pointer(v10))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = int8('"') } // C documentation @@ -171290,9 +172909,9 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _, _, _, _ = n, n1, z, z1 switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_NULL): - _jsonAppendRawNZ(tls, p, __ccgo_ts+1636, uint32(4)) + _jsonAppendRawNZ(tls, p, __ccgo_ts+1650, uint32(4)) case int32(SQLITE_FLOAT): - _jsonPrintf(tls, int32(100), p, __ccgo_ts+15671, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) + _jsonPrintf(tls, int32(100), p, __ccgo_ts+15764, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) case int32(SQLITE_INTEGER): z = Xsqlite3_value_text(tls, pValue) n = uint32(Xsqlite3_value_bytes(tls, pValue)) @@ -171313,7 +172932,7 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _jsonTranslateBlobToText(tls, bp, uint32(0), p) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr) == 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25302, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25425, -int32(1)) (*TJsonString)(unsafe.Pointer(p)).FeErr = uint8(JSTRING_ERR) _jsonStringReset(tls, p) } @@ -171367,7 +172986,7 @@ func _jsonReturnString(tls *libc.TLS, p uintptr, pParse uintptr, ctx uintptr) { Xsqlite3_result_error_nomem(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr)&int32(JSTRING_MALFORMED) != 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25454, -int32(1)) } } } @@ -171614,6 +173233,7 @@ func _json5Whitespace(tls *libc.TLS, zIn uintptr) (r int32) { goto whitespace_done } } + goto whitespace_done whitespace_done: ; return n @@ -171649,8 +173269,8 @@ var _aNanInfName = [5]TNanInfName{ Fn: int8(3), FeType: int8(JSONB_FLOAT), FnRepl: int8(7), - FzMatch: __ccgo_ts + 25346, - FzRepl: __ccgo_ts + 25350, + FzMatch: __ccgo_ts + 25469, + FzRepl: __ccgo_ts + 25473, }, 1: { Fc1: int8('i'), @@ -171658,32 +173278,32 @@ var _aNanInfName = [5]TNanInfName{ Fn: int8(8), FeType: int8(JSONB_FLOAT), FnRepl: int8(7), - FzMatch: __ccgo_ts + 25358, - FzRepl: __ccgo_ts + 25350, + FzMatch: __ccgo_ts + 25481, + FzRepl: __ccgo_ts + 25473, }, 2: { Fc1: int8('n'), Fc2: int8('N'), Fn: int8(3), FnRepl: int8(4), - FzMatch: __ccgo_ts + 1641, - FzRepl: __ccgo_ts + 1636, + FzMatch: __ccgo_ts + 1655, + FzRepl: __ccgo_ts + 1650, }, 3: { Fc1: int8('q'), Fc2: int8('Q'), Fn: int8(4), FnRepl: int8(4), - FzMatch: __ccgo_ts + 25367, - FzRepl: __ccgo_ts + 1636, + FzMatch: __ccgo_ts + 25490, + FzRepl: __ccgo_ts + 1650, }, 4: { Fc1: int8('s'), Fc2: int8('S'), Fn: int8(4), FnRepl: int8(4), - FzMatch: __ccgo_ts + 25372, - FzRepl: __ccgo_ts + 1636, + FzMatch: __ccgo_ts + 25495, + FzRepl: __ccgo_ts + 1650, }, } @@ -171698,7 +173318,7 @@ func _jsonWrongNumArgs(tls *libc.TLS, pCtx uintptr, zFuncName uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25377, libc.VaList(bp+8, zFuncName)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25500, libc.VaList(bp+8, zFuncName)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) } @@ -172147,30 +173767,37 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept return j + uint32(1) } } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) <= int32(0x1f) { + /* Control characters in JSON5 string literals are ok */ + if int32(x) == int32(JSONB_TEXTJ) { + return j + uint32(1) + } } else { - if libc.Xstrchr(tls, __ccgo_ts+25420, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { - j++ + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { + return j + uint32(1) } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { - if j+uint32(5) >= k { - return j + uint32(1) - } - if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { - return j + uint32(1) - } + if libc.Xstrchr(tls, __ccgo_ts+25543, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { j++ } else { - if int32(x) != int32(JSONB_TEXT5) { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { + if j+uint32(5) >= k { + return j + uint32(1) + } + if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { + return j + uint32(1) + } + j++ } else { - *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) - szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) - if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + if int32(x) != int32(JSONB_TEXT5) { return j + uint32(1) + } else { + *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) + szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) + if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + return j + uint32(1) + } + j += szC - uint32(1) } - j += szC - uint32(1) } } } @@ -172266,6 +173893,7 @@ func _jsonTranslateTextToBlob(tls *libc.TLS, pParse uintptr, i Tu32) (r int32) { var _ /* op at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cDelim, iBlob, iStart, iThis, j, k, k1, nn, opcode, seenE, t, x, z, v40, v41, v43, v44, v46, v48 z = (*TJsonParse)(unsafe.Pointer(pParse)).FzJson + goto json_parse_restart json_parse_restart: ; switch int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))) { @@ -172420,6 +174048,7 @@ _1: } j = (*TJsonParse)(unsafe.Pointer(pParse)).FiErr + uint32(1) } + goto parse_object_value parse_object_value: ; x = _jsonTranslateTextToBlob(tls, pParse, j) @@ -172546,6 +174175,7 @@ _3: ; /* Parse string */ opcode = uint8(JSONB_TEXT) + goto parse_string parse_string: ; cDelim = *(*int8)(unsafe.Pointer(z + uintptr(i))) @@ -172594,9 +174224,14 @@ parse_string: } } else { if int32(c) <= int32(0x1f) { - /* Control characters are not allowed in strings */ - (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j - return -int32(1) + if int32(c) == 0 { + (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j + return -int32(1) + } + /* Control characters are not allowed in canonical JSON string + ** literals, but are allowed in JSON5 string literals. */ + opcode = uint8(JSONB_TEXT5) + (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) } else { if int32(c) == int32('"') { opcode = uint8(JSONB_TEXT5) @@ -172610,7 +174245,7 @@ parse_string: return int32(j + uint32(1)) _5: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8234, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8359, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_TRUE)) return int32(i + uint32(4)) } @@ -172618,7 +174253,7 @@ _5: return -int32(1) _6: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8239, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(5)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8364, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(5)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_FALSE)) return int32(i + uint32(5)) } @@ -172663,6 +174298,7 @@ _8: ; /* Parse number */ t = uint8(0x00) /* Bit 0x01: JSON5. Bit 0x02: FLOAT */ + goto parse_number parse_number: ; seenE = uint8(0) @@ -172694,14 +174330,14 @@ parse_number: /* JSON5 allows for "+Infinity" and "-Infinity" using exactly ** that case. SQLite also allows these in any case and it allows ** "+inf" and "-inf". */ - if (int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+25346, int32(3)) == 0 { + if (int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+25469, int32(3)) == 0 { (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) if int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == int32('-') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25429) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25552) } else { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25436) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25559) } - if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25442, int32(5)) == 0 { + if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25565, int32(5)) == 0 { v48 = int32(9) } else { v48 = int32(4) @@ -172740,6 +174376,7 @@ parse_number: } } } + goto parse_number_2 parse_number_2: ; j = i + uint32(1) @@ -172798,6 +174435,7 @@ parse_number_2: return -int32(1) } } + goto parse_number_finish parse_number_finish: ; if int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == int32('+') { @@ -172860,7 +174498,7 @@ _29: return -int32(1) _37: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1636, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1650, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) return int32(i + uint32(4)) } @@ -172884,7 +174522,7 @@ _38: goto _51 } if int32(_aNanInfName[k1].FeType) == int32(JSONB_FLOAT) { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25436) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25559) } else { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) } @@ -172929,7 +174567,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 i += _json5Whitespace(tls, zJson+uintptr(i)) if *(*int8)(unsafe.Pointer(zJson + uintptr(i))) != 0 { if pCtx != 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25454, -int32(1)) } _jsonParseReset(tls, pParse) return int32(1) @@ -172942,7 +174580,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 if (*TJsonParse)(unsafe.Pointer(pParse)).Foom != 0 { Xsqlite3_result_error_nomem(tls, pCtx) } else { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25454, -int32(1)) } } _jsonParseReset(tls, pParse) @@ -173105,15 +174743,15 @@ func _jsonTranslateBlobToText(tls *libc.TLS, pParse uintptr, i Tu32, pOut uintpt goto _16 _2: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1636, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1650, uint32(4)) return i + uint32(1) _3: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8234, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8359, uint32(4)) return i + uint32(1) _4: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8239, uint32(5)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8364, uint32(5)) return i + uint32(1) _6: ; @@ -173162,9 +174800,9 @@ _7: k++ } if bOverflow != 0 { - v19 = __ccgo_ts + 25350 + v19 = __ccgo_ts + 25473 } else { - v19 = __ccgo_ts + 12101 + v19 = __ccgo_ts + 12226 } _jsonPrintf(tls, int32(100), pOut, v19, libc.VaList(bp+16, u)) goto _16 @@ -173212,7 +174850,7 @@ _11: for sz2 > uint32(0) { k2 = uint32(0) for { - if !(k2 < sz2 && int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('\\') && int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('"')) { + if !(k2 < sz2 && (_jsonIsOk[uint8(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2))))] != 0 || int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) == int32('\''))) { break } goto _21 @@ -173229,7 +174867,16 @@ _11: sz2 -= k2 } if int32(*(*int8)(unsafe.Pointer(zIn2))) == int32('"') { - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25448, uint32(2)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25571, uint32(2)) + zIn2++ + sz2-- + continue + } + if int32(*(*int8)(unsafe.Pointer(zIn2))) <= int32(0x1f) { + if (*TJsonString)(unsafe.Pointer(pOut)).FnUsed+uint64(7) > (*TJsonString)(unsafe.Pointer(pOut)).FnAlloc && _jsonStringGrow(tls, pOut, uint32(7)) != 0 { + break + } + _jsonAppendControlChar(tls, pOut, uint8(*(*int8)(unsafe.Pointer(zIn2)))) zIn2++ sz2-- continue @@ -173243,7 +174890,7 @@ _11: case int32('\''): _jsonAppendChar(tls, pOut, int8('\'')) case int32('v'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25451, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25574, uint32(6)) case int32('x'): if sz2 < uint32(4) { p23 = pOut + 33 @@ -173251,12 +174898,12 @@ _11: sz2 = uint32(2) break } - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25458, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25581, uint32(4)) _jsonAppendRawNZ(tls, pOut, zIn2+2, uint32(2)) zIn2 += uintptr(2) sz2 -= uint32(2) case int32('0'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25463, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25586, uint32(6)) case int32('\r'): if sz2 > uint32(2) && int32(*(*int8)(unsafe.Pointer(zIn2 + 2))) == int32('\n') { zIn2++ @@ -173334,6 +174981,7 @@ _14: goto _16 _15: ; + goto malformed_jsonb malformed_jsonb: ; p29 = pOut + 33 @@ -173344,6 +174992,140 @@ _16: return i + n + *(*Tu32)(unsafe.Pointer(bp)) } +// C documentation +// +// /* Context for recursion of json_pretty() +// */ +type TJsonPretty = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty = TJsonPretty + +type TJsonPretty1 = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty1 = TJsonPretty1 + +// C documentation +// +// /* Append indentation to the pretty JSON under construction */ +func _jsonPrettyIndent(tls *libc.TLS, pPretty uintptr) { + var jj Tu32 + _ = jj + jj = uint32(0) + for { + if !(jj < (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent) { + break + } + _jsonAppendRaw(tls, (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut, (*TJsonPretty)(unsafe.Pointer(pPretty)).FzIndent, (*TJsonPretty)(unsafe.Pointer(pPretty)).FszIndent) + goto _1 + _1: + ; + jj++ + } +} + +// C documentation +// +// /* +// ** Translate the binary JSONB representation of JSON beginning at +// ** pParse->aBlob[i] into a JSON text string. Append the JSON +// ** text onto the end of pOut. Return the index in pParse->aBlob[] +// ** of the first byte past the end of the element that is translated. +// ** +// ** This is a variant of jsonTranslateBlobToText() that "pretty-prints" +// ** the output. Extra whitespace is inserted to make the JSON easier +// ** for humans to read. +// ** +// ** If an error is detected in the BLOB input, the pOut->eErr flag +// ** might get set to JSTRING_MALFORMED. But not all BLOB input errors +// ** are detected. So a malformed JSONB input might either result +// ** in an error, or in incorrect JSON. +// ** +// ** The pOut->eErr JSTRING_OOM flag is set on a OOM. +// */ +func _jsonTranslateBlobToPrettyText(tls *libc.TLS, pPretty uintptr, i Tu32) (r Tu32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var iEnd, j, n Tu32 + var pOut, pParse, p1, p2 uintptr + var _ /* sz at bp+0 */ Tu32 + _, _, _, _, _, _, _ = iEnd, j, n, pOut, pParse, p1, p2 + pParse = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpParse + pOut = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut + n = _jsonbPayloadSize(tls, pParse, i, bp) + if n == uint32(0) { + p1 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + return (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob + uint32(1) + } + switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { + case int32(JSONB_ARRAY): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, int8('[')) + if j < iEnd { + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25593, uint32(2)) + } + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, int8(']')) + i = iEnd + case int32(JSONB_OBJECT): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, int8('{')) + if j < iEnd { + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToText(tls, pParse, j, pOut) + if j > iEnd { + p2 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p2)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p2))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25596, uint32(2)) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25593, uint32(2)) + } + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, int8('}')) + i = iEnd + default: + i = _jsonTranslateBlobToText(tls, pParse, i, pOut) + break + } + return i +} + // C documentation // // /* Return true if the input pJson @@ -174061,7 +175843,7 @@ func _jsonReturnFromBlob(tls *libc.TLS, pParse uintptr, i Tu32, pCtx uintptr, te db = Xsqlite3_context_db_handle(tls, pCtx) n = _jsonbPayloadSize(tls, pParse, i, bp) if n == uint32(0) { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25454, -int32(1)) return } switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { @@ -174170,6 +175952,7 @@ _6: if *(*Tu32)(unsafe.Pointer(bp)) == uint32(0) { goto returnfromblob_malformed } + goto to_double to_double: ; z1 = _sqlite3DbStrNDup(tls, db, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(i+n), uint64(int32(*(*Tu32)(unsafe.Pointer(bp))))) @@ -174288,13 +176071,15 @@ _14: _15: ; return + goto returnfromblob_oom returnfromblob_oom: ; Xsqlite3_result_error_nomem(tls, pCtx) return + goto returnfromblob_malformed returnfromblob_malformed: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25454, -int32(1)) return } @@ -174335,7 +176120,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob = Xsqlite3_value_blob(tls, pArg) (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob = uint32(Xsqlite3_value_bytes(tls, pArg)) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25302, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25425, -int32(1)) return int32(1) } case int32(SQLITE_TEXT): @@ -174348,7 +176133,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FzJson = zJson (*TJsonParse)(unsafe.Pointer(pParse)).FnJson = nJson if _jsonConvertTextToBlob(tls, pParse, ctx) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25454, -int32(1)) _sqlite3DbFree(tls, (*TJsonParse)(unsafe.Pointer(pParse)).Fdb, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob) libc.X__builtin___memset_chk(tls, pParse, 0, uint64(72), libc.X__builtin_object_size(tls, pParse, 0)) return int32(1) @@ -174367,10 +176152,10 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin return int32(1) } if int32(*(*int8)(unsafe.Pointer(z))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25436) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25559) } else { if int32(*(*int8)(unsafe.Pointer(z))) == int32('-') && int32(*(*int8)(unsafe.Pointer(z + 1))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25429) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25552) } else { _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(n), z) } @@ -174409,7 +176194,7 @@ func _jsonBadPathError(tls *libc.TLS, ctx uintptr, zPath uintptr) (r uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25470, libc.VaList(bp+8, zPath)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25599, libc.VaList(bp+8, zPath)) if ctx == uintptr(0) { return zMsg } @@ -174501,11 +176286,12 @@ func _jsonInsertIntoBlob(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr, e _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto jsonInsertIntoBlob_patherror jsonInsertIntoBlob_patherror: ; _jsonParseFree(tls, p) if rc == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25454, -int32(1)) } else { _jsonBadPathError(tls, ctx, zPath) } @@ -174589,6 +176375,7 @@ func _jsonParseFuncArg(tls *libc.TLS, ctx uintptr, pArg uintptr, flgs Tu32) (r u } } db = Xsqlite3_context_db_handle(tls, ctx) + goto rebuild_from_cache rebuild_from_cache: ; p = _sqlite3DbMallocZero(tls, db, uint64(72)) @@ -174678,6 +176465,7 @@ rebuild_from_cache: } } return p + goto json_pfa_malformed json_pfa_malformed: ; if flgs&uint32(JSON_KEEPERROR) != 0 { @@ -174685,9 +176473,10 @@ json_pfa_malformed: return p } else { _jsonParseFree(tls, p) - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25454, -int32(1)) return uintptr(0) } + goto json_pfa_oom json_pfa_oom: ; _jsonParseFree(tls, pFromCache) @@ -174819,7 +176608,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if int32(*(*int8)(unsafe.Pointer(zPath))) == int32('$') { v1 = zPath + uintptr(1) } else { - v1 = __ccgo_ts + 25488 + v1 = __ccgo_ts + 25617 } i = _jsonLookupStep(tls, p, uint32(0), v1, uint32(0)) if i >= uint32(JSON_LOOKUP_PATHERROR) { @@ -174829,7 +176618,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25454, -int32(1)) } } eErr = uint8(1) @@ -174847,25 +176636,6 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) _jsonParseFree(tls, p) } -// C documentation -// -// /* True if the string is all digits */ -func _jsonAllDigits(tls *libc.TLS, z uintptr, n int32) (r int32) { - var i int32 - _ = i - i = 0 - for { - if !(i < n && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))])&int32(0x04) != 0) { - break - } - goto _1 - _1: - ; - i++ - } - return libc.BoolInt32(i == n) -} - // C documentation // // /* True if the string is all alphanumerics and underscores */ @@ -174952,21 +176722,21 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { ** [NUMBER] ==> $[NUMBER] // Not PG. Purely for convenience */ _jsonStringInit(tls, bp, ctx) - if _jsonAllDigits(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25490, uint32(1)) + if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) == int32(SQLITE_INTEGER) { + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25619, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+5509, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+5573, uint32(2)) } else { if _jsonAllAlphanum(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1663, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1677, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { if int32(*(*int8)(unsafe.Pointer(zPath))) == int32('[') && nPath >= int32(3) && int32(*(*int8)(unsafe.Pointer(zPath + uintptr(nPath-int32(1))))) == int32(']') { _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25492, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25621, uint32(2)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25495, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25624, uint32(1)) } } } @@ -175002,11 +176772,11 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { goto json_extract_error /* Return NULL if not found */ } else { _jsonAppendSeparator(tls, bp) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1636, uint32(4)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1650, uint32(4)) } } else { if j == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25454, -int32(1)) goto json_extract_error } else { _jsonBadPathError(tls, ctx, zPath) @@ -175026,6 +176796,7 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } } + goto json_extract_error json_extract_error: ; _jsonStringReset(tls, bp) @@ -175273,7 +177044,7 @@ func _jsonPatchFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == int32(JSON_MERGE_OOM) { Xsqlite3_result_error_nomem(tls, ctx) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25454, -int32(1)) } } _jsonParseFree(tls, pPatch) @@ -175297,7 +177068,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { var _ /* jx at bp+0 */ TJsonString _, _, _ = i, n, z if argc&int32(1) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25497, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25626, -int32(1)) return } _jsonStringInit(tls, bp, ctx) @@ -175308,7 +177079,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { break } if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) != int32(SQLITE_TEXT) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25548, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25677, -int32(1)) _jsonStringReset(tls, bp) return } @@ -175380,7 +177151,7 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25454, -int32(1)) } } goto json_remove_done @@ -175393,9 +177164,11 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto json_remove_patherror json_remove_patherror: ; _jsonBadPathError(tls, ctx, zPath) + goto json_remove_done json_remove_done: ; _jsonParseFree(tls, p) @@ -175415,7 +177188,7 @@ func _jsonReplaceFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { return } if argc&int32(1) == 0 { - _jsonWrongNumArgs(tls, ctx, __ccgo_ts+16144) + _jsonWrongNumArgs(tls, ctx, __ccgo_ts+16237) return } _jsonInsertIntoBlob(tls, ctx, argc, argv, int32(JEDIT_REPL)) @@ -175446,9 +177219,9 @@ func _jsonSetFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { } if argc&int32(1) == 0 { if bIsSet != 0 { - v1 = __ccgo_ts + 25582 + v1 = __ccgo_ts + 25711 } else { - v1 = __ccgo_ts + 25586 + v1 = __ccgo_ts + 25715 } _jsonWrongNumArgs(tls, ctx, v1) return @@ -175496,7 +177269,7 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25454, -int32(1)) } } goto json_type_done @@ -175505,11 +177278,54 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { i = uint32(0) } Xsqlite3_result_text(tls, ctx, _jsonbType[int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(p)).FaBlob + uintptr(i))))&int32(0x0f)], -int32(1), libc.UintptrFromInt32(0)) + goto json_type_done json_type_done: ; _jsonParseFree(tls, p) } +// C documentation +// +// /* +// ** json_pretty(JSON) +// ** json_pretty(JSON, INDENT) +// ** +// ** Return text that is a pretty-printed rendering of the input JSON. +// ** If the argument is not valid JSON, return NULL. +// ** +// ** The INDENT argument is text that is used for indentation. If omitted, +// ** it defaults to four spaces (the same as PostgreSQL). +// */ +func _jsonPrettyFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { + bp := tls.Alloc(176) + defer tls.Free(176) + var v1 uintptr + var v2 bool + var _ /* s at bp+0 */ TJsonString + var _ /* x at bp+136 */ TJsonPretty + _, _ = v1, v2 /* Pretty printing context */ + libc.X__builtin___memset_chk(tls, bp+136, 0, uint64(32), libc.X__builtin_object_size(tls, bp+136, 0)) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse = _jsonParseFuncArg(tls, ctx, *(*uintptr)(unsafe.Pointer(argv)), uint32(0)) + if (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse == uintptr(0) { + return + } + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpOut = bp + _jsonStringInit(tls, bp, ctx) + if v2 = argc == int32(1); !v2 { + v1 = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = v1 + } + if v2 || v1 == uintptr(0) { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = __ccgo_ts + 25722 + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(4) + } else { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(libc.Xstrlen(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent)) + } + _jsonTranslateBlobToPrettyText(tls, bp+136, uint32(0)) + _jsonReturnString(tls, bp, uintptr(0), uintptr(0)) + _jsonParseFree(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse) +} + // C documentation // // /* @@ -175584,7 +177400,7 @@ func _jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if argc == int32(2) { f = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if f < int64(1) || f > int64(15) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25593, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25727, -int32(1)) return } flags = uint8(f & int64(0x0f)) @@ -175775,7 +177591,7 @@ func _jsonArrayCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25650, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25784, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -175924,7 +177740,7 @@ func _jsonObjectCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25653, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25787, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -176027,7 +177843,7 @@ func _jsonEachConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv _ = argv _ = argc _ = pAux - rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25656) + rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25790) if rc == SQLITE_OK { pNew = _sqlite3DbMallocZero(tls, db, uint64(32)) *(*uintptr)(unsafe.Pointer(ppVtab)) = pNew @@ -176161,7 +177977,7 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { var _ /* sz at bp+0 */ Tu32 _, _, _, _, _ = i, k, n, needQuote, z if int32((*TJsonEachCursor)(unsafe.Pointer(p)).FeType) == int32(JSONB_ARRAY) { - _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25739, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) + _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25873, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) } else { *(*Tu32)(unsafe.Pointer(bp)) = uint32(0) needQuote = 0 @@ -176187,9 +178003,9 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { } } if needQuote != 0 { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25746, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25880, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } else { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25754, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25888, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } } } @@ -176575,7 +178391,7 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a i = v5 (*TJsonEachCursor)(unsafe.Pointer(p)).FeType = uint8(0) (*TJsonEachCursor)(unsafe.Pointer(p)).FnRoot = uint32(1) - _jsonAppendRaw(tls, p+56, __ccgo_ts+25760, uint32(1)) + _jsonAppendRaw(tls, p+56, __ccgo_ts+25894, uint32(1)) } (*TJsonEachCursor)(unsafe.Pointer(p)).FnParent = uint32(0) n = _jsonbPayloadSize(tls, p+192, i, bp) @@ -176595,10 +178411,11 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent))).FiValue = i } return SQLITE_OK + goto json_each_malformed_input json_each_malformed_input: ; Xsqlite3_free(tls, (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg) - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25331, 0) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25454, 0) _jsonEachCursorReset(tls, p) if (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg != 0 { v6 = int32(SQLITE_ERROR) @@ -176652,183 +178469,193 @@ func init() { // ** Register JSON functions. // */ func _sqlite3RegisterJsonFunctions(tls *libc.TLS) { - _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2304)/libc.Uint64FromInt64(72))) + _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2448)/libc.Uint64FromInt64(72))) } -var _aJsonFunc = [32]TFuncDef{ +var _aJsonFunc = [34]TFuncDef{ 0: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25762, + FzName: __ccgo_ts + 25896, }, 1: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25767, + FzName: __ccgo_ts + 25901, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25773, + FzName: __ccgo_ts + 25907, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25784, + FzName: __ccgo_ts + 25918, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25796, + FzName: __ccgo_ts + 25930, }, 5: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25796, + FzName: __ccgo_ts + 25930, }, 6: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25814, + FzName: __ccgo_ts + 25948, }, 7: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25834, + FzName: __ccgo_ts + 25968, }, 8: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25847, + FzName: __ccgo_ts + 25981, }, 9: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_JSON) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25861, + FzName: __ccgo_ts + 25995, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_SQL) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25864, + FzName: __ccgo_ts + 25998, }, 11: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25868, + FzName: __ccgo_ts + 26002, }, 12: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25880, + FzName: __ccgo_ts + 26014, }, 13: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25893, + FzName: __ccgo_ts + 26027, }, 14: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25905, + FzName: __ccgo_ts + 26039, }, 15: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25918, + FzName: __ccgo_ts + 26052, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25929, + FzName: __ccgo_ts + 26063, }, 17: { FnArg: int8(1), - FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25941, + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 26075, }, 18: { + FnArg: int8(2), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 26075, + }, + 19: { + FnArg: int8(1), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 26087, + }, + 20: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25952, + FzName: __ccgo_ts + 26098, }, - 19: { + 21: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25964, + FzName: __ccgo_ts + 26110, }, - 20: { + 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25977, + FzName: __ccgo_ts + 26123, }, - 21: { + 23: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25990, + FzName: __ccgo_ts + 26136, }, - 22: { + 24: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26004, + FzName: __ccgo_ts + 26150, }, - 23: { + 25: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26013, + FzName: __ccgo_ts + 26159, }, - 24: { + 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26023, + FzName: __ccgo_ts + 26169, }, - 25: { + 27: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26023, + FzName: __ccgo_ts + 26169, }, - 26: { + 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26033, + FzName: __ccgo_ts + 26179, }, - 27: { + 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26033, + FzName: __ccgo_ts + 26179, }, - 28: { + 30: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 26044, + FzName: __ccgo_ts + 26190, }, - 29: { + 31: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26061, + FzName: __ccgo_ts + 26207, }, - 30: { + 32: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 26079, + FzName: __ccgo_ts + 26225, }, - 31: { + 33: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26097, + FzName: __ccgo_ts + 26243, }, } @@ -176851,33 +178678,35 @@ func init() { *(*uintptr)(unsafe.Add(p, 1032)) = __ccgo_fp(_jsonObjectFunc) *(*uintptr)(unsafe.Add(p, 1104)) = __ccgo_fp(_jsonPatchFunc) *(*uintptr)(unsafe.Add(p, 1176)) = __ccgo_fp(_jsonPatchFunc) - *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonQuoteFunc) - *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2048)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2056)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2064)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2120)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2128)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2136)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonQuoteFunc) + *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2208)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2280)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2328)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2336)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2344)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2352)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2400)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2408)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2416)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2424)) = __ccgo_fp(_jsonGroupInverse) } // C documentation @@ -176909,11 +178738,11 @@ var _aMod = [2]struct { FpModule uintptr }{ 0: { - FzName: __ccgo_ts + 26116, + FzName: __ccgo_ts + 26262, FpModule: uintptr(unsafe.Pointer(&_jsonEachModule)), }, 1: { - FzName: __ccgo_ts + 26126, + FzName: __ccgo_ts + 26272, FpModule: uintptr(unsafe.Pointer(&_jsonTreeModule)), }, } @@ -177560,7 +179389,7 @@ func _nodeAcquire(tls *libc.TLS, pRtree uintptr, iNode Ti64, pParent uintptr, pp } } if (*TRtree)(unsafe.Pointer(pRtree)).FpNodeBlob == uintptr(0) { - rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+26136, iNode, 0, pRtree+112) + rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+26282, iNode, 0, pRtree+112) } if rc != 0 { *(*uintptr)(unsafe.Pointer(ppNode)) = uintptr(0) @@ -177865,7 +179694,7 @@ func _rtreeDestroy(tls *libc.TLS, pVtab uintptr) (r int32) { var rc int32 _, _, _ = pRtree, rc, zCreate pRtree = pVtab - zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+26141, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+26287, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if !(zCreate != 0) { rc = int32(SQLITE_NOMEM) } else { @@ -178786,7 +180615,7 @@ func _findLeafNode(tls *libc.TLS, pRtree uintptr, iRowid Ti64, ppLeaf uintptr, p func _deserializeGeometry(tls *libc.TLS, pValue uintptr, pCons uintptr) (r int32) { var pBlob, pInfo, pSrc uintptr _, _, _ = pBlob, pInfo, pSrc /* Callback information */ - pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+26223) + pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+26369) if pSrc == uintptr(0) { return int32(SQLITE_ERROR) } @@ -178841,7 +180670,7 @@ func _rtreeFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintp iRowid = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) *(*Ti64)(unsafe.Pointer(bp + 24)) = 0 eType = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv))) - if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv))) == float64(iRowid) { + if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && 0 == _sqlite3IntFloatCompare(tls, iRowid, Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))) { rc = _findLeafNode(tls, pRtree, iRowid, bp+16, bp+24) } else { rc = SQLITE_OK @@ -179891,6 +181720,7 @@ func _SplitNode(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iHe rc = _nodeRelease(tls, pRtree, pLeft) pLeft = uintptr(0) } + goto splitnode_out splitnode_out: ; _nodeRelease(tls, pRtree, pRight) @@ -180320,7 +182150,7 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) var _ /* pStmt at bp+0 */ uintptr _, _, _, _, _, _ = rc, zCol, zCol1, zCol2, zSql, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26237, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26383, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if zSql != 0 { rc = Xsqlite3_prepare_v2(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, -int32(1), bp, uintptr(0)) } else { @@ -180330,11 +182160,11 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) if rc == SQLITE_OK { if iCol == 0 { zCol = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26257, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26403, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) } else { zCol1 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol) zCol2 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol+int32(1)) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26289, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26435, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) } } Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -180496,6 +182326,7 @@ func _rtreeUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pRow rc = Xsqlite3_reset(tls, pUp) } } + goto constraint constraint: ; _rtreeRelease(tls, pRtree) @@ -180547,7 +182378,7 @@ func _rtreeRename(tls *libc.TLS, pVtab uintptr, zNewName uintptr) (r int32) { _, _, _ = pRtree, rc, zSql pRtree = pVtab rc = int32(SQLITE_NOMEM) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26326, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26472, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) if zSql != 0 { _nodeBlobReset(tls, pRtree) rc = Xsqlite3_exec(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, uintptr(0), uintptr(0), uintptr(0)) @@ -180601,9 +182432,9 @@ func _rtreeQueryStat1(tls *libc.TLS, db uintptr, pRtree uintptr) (r int32) { var v2 int64 var _ /* p at bp+0 */ uintptr _, _, _, _, _, _ = nRow, rc, zFmt, zSql, v1, v2 - zFmt = __ccgo_ts + 26471 + zFmt = __ccgo_ts + 26617 nRow = int64(RTREE_MIN_ROWEST) - rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11930, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+12055, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc != SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FnRowEst = int64(RTREE_DEFAULT_ROWEST) if rc == int32(SQLITE_ERROR) { @@ -180661,9 +182492,9 @@ func _rtreeShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName1 = [3]uintptr{ - 0: __ccgo_ts + 26527, - 1: __ccgo_ts + 5832, - 2: __ccgo_ts + 17045, + 0: __ccgo_ts + 26673, + 1: __ccgo_ts + 5896, + 2: __ccgo_ts + 17132, } var _rtreeModule = Tsqlite3_module{ @@ -180707,21 +182538,21 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref (*TRtree)(unsafe.Pointer(pRtree)).Fdb = db if isCreate != 0 { p = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26941, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+27087, libc.VaList(bp+8, zDb, zPrefix)) ii = 0 for { if !(ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+27003, libc.VaList(bp+8, ii)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+27149, libc.VaList(bp+8, ii)) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+27008, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+27072, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+27142, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+27154, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+27218, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+27288, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) zCreate = Xsqlite3_str_finish(tls, p) if !(zCreate != 0) { return int32(SQLITE_NOMEM) @@ -180751,7 +182582,7 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } else { /* An UPSERT is very slightly slower than REPLACE, but it is needed ** if there are auxiliary columns */ - zFormat = __ccgo_ts + 27191 + zFormat = __ccgo_ts + 27337 } zSql = Xsqlite3_mprintf(tls, zFormat, libc.VaList(bp+8, zDb, zPrefix)) if zSql != 0 { @@ -180766,31 +182597,31 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref i++ } if (*TRtree)(unsafe.Pointer(pRtree)).FnAux != 0 && rc != int32(SQLITE_NOMEM) { - (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+27299, libc.VaList(bp+8, zDb, zPrefix)) + (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+27445, libc.VaList(bp+8, zDb, zPrefix)) if (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { p1 = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27344, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27490, libc.VaList(bp+8, zDb, zPrefix)) ii1 = 0 for { if !(ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } if ii1 != 0 { - Xsqlite3_str_append(tls, p1, __ccgo_ts+13438, int32(1)) + Xsqlite3_str_append(tls, p1, __ccgo_ts+13563, int32(1)) } if ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull) { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27371, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27517, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) } else { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27393, libc.VaList(bp+8, ii1, ii1+int32(2))) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27539, libc.VaList(bp+8, ii1, ii1+int32(2))) } goto _3 _3: ; ii1++ } - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27401, 0) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27547, 0) zSql1 = Xsqlite3_str_finish(tls, p1) if zSql1 == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -180804,14 +182635,14 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } var _azSql = [8]uintptr{ - 0: __ccgo_ts + 26532, - 1: __ccgo_ts + 26585, - 2: __ccgo_ts + 26630, - 3: __ccgo_ts + 26682, - 4: __ccgo_ts + 26736, - 5: __ccgo_ts + 26781, - 6: __ccgo_ts + 26839, - 7: __ccgo_ts + 26894, + 0: __ccgo_ts + 26678, + 1: __ccgo_ts + 26731, + 2: __ccgo_ts + 26776, + 3: __ccgo_ts + 26828, + 4: __ccgo_ts + 26882, + 5: __ccgo_ts + 26927, + 6: __ccgo_ts + 26985, + 7: __ccgo_ts + 27040, } // C documentation @@ -180869,7 +182700,7 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE _, _ = rc, zSql if isCreate != 0 { *(*int32)(unsafe.Pointer(bp)) = 0 - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27417, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27563, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) rc = _getIntFromStmt(tls, db, zSql, bp) if rc == SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = *(*int32)(unsafe.Pointer(bp)) - int32(64) @@ -180877,17 +182708,17 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = int32(4) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*int32(RTREE_MAXCELLS) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } } else { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27437, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27583, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) rc = _getIntFromStmt(tls, db, zSql, pRtree+32) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } else { if (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize < libc.Int32FromInt32(512)-libc.Int32FromInt32(64) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< libc.Int32FromInt32(RTREE_MAX_AUX_COLUMN)+libc.Int32FromInt32(3) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) return int32(SQLITE_ERROR) } Xsqlite3_vtab_config(tls, db, int32(SQLITE_VTAB_CONSTRAINT_SUPPORT), libc.VaList(bp+8, int32(1))) @@ -180964,13 +182795,13 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, 0)) libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, 0)) libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, 0)) - libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27680, uint64(6), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), 0)) + libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27826, uint64(6), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), 0)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27686, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27832, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) ii = int32(4) for { if !(ii < argc) { @@ -180979,7 +182810,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt zArg = *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)) if int32(*(*int8)(unsafe.Pointer(zArg))) == int32('+') { (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27710, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27856, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) } else { if int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux) > 0 { break @@ -180993,19 +182824,19 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27737, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27883, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) } else { if ii < argc { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, aErrMsg[int32(4)])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, aErrMsg[int32(4)])) rc = int32(SQLITE_ERROR) } else { v3 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v3 if SQLITE_OK != v3 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } } @@ -181028,7 +182859,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } } if iErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, aErrMsg[iErr])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, aErrMsg[iErr])) goto rtreeInit_fail } (*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell = uint8(int32(8) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)*int32(4)) @@ -181039,11 +182870,12 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto rtreeInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto rtreeInit_fail rtreeInit_fail: ; if rc == SQLITE_OK { @@ -181054,8 +182886,8 @@ rtreeInit_fail: } var _azFormat = [2]uintptr{ - 0: __ccgo_ts + 27716, - 1: __ccgo_ts + 27727, + 0: __ccgo_ts + 27862, + 1: __ccgo_ts + 27873, } // C documentation @@ -181113,21 +182945,21 @@ func _rtreenode(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { } _nodeGetCell(tls, bp+40, bp, ii, bp+1008) if ii > 0 { - Xsqlite3_str_append(tls, pOut, __ccgo_ts+11550, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+11675, int32(1)) } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27740, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27886, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) jj = 0 for { if !(jj < int32((*(*TRtree)(unsafe.Pointer(bp + 40))).FnDim2)) { break } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27746, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27892, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) goto _2 _2: ; jj++ } - Xsqlite3_str_append(tls, pOut, __ccgo_ts+27750, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+27896, int32(1)) goto _1 _1: ; @@ -181154,7 +182986,7 @@ func _rtreedepth(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { _ = zBlob _ = nArg if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apArg))) != int32(SQLITE_BLOB) || Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(apArg))) < int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+27752, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+27898, -int32(1)) } else { zBlob = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(apArg))) if zBlob != 0 { @@ -181272,11 +183104,11 @@ func _rtreeCheckAppendMsg(tls *libc.TLS, pCheck uintptr, zFmt uintptr, va uintpt (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } else { if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport != 0 { - v1 = __ccgo_ts + 4551 + v1 = __ccgo_ts + 4615 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27785, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27931, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport == uintptr(0) { (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } @@ -181310,7 +183142,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt _, _, _ = nNode, pNode, pRet pRet = uintptr(0) /* Return value */ if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode == uintptr(0) { - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27792, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27938, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) } if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { Xsqlite3_bind_int64(tls, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, int32(1), iNode) @@ -181327,7 +183159,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt } _rtreeCheckReset(tls, pCheck, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && pRet == uintptr(0) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27837, libc.VaList(bp+8, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27983, libc.VaList(bp+8, iNode)) } } return pRet @@ -181356,8 +183188,8 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i var rc int32 _, _, _, _, _, _ = azSql, ii, pStmt, rc, v1, v2 azSql = [2]uintptr{ - 0: __ccgo_ts + 27869, - 1: __ccgo_ts + 27923, + 0: __ccgo_ts + 28015, + 1: __ccgo_ts + 28069, } if *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) = _rtreeCheckPrepare(tls, pCheck, azSql[bLeaf], libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) @@ -181370,21 +183202,21 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i rc = Xsqlite3_step(tls, pStmt) if rc == int32(SQLITE_DONE) { if bLeaf != 0 { - v1 = __ccgo_ts + 27971 + v1 = __ccgo_ts + 28117 } else { - v1 = __ccgo_ts + 27979 + v1 = __ccgo_ts + 28125 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27988, libc.VaList(bp+8, iKey, iVal, v1)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28134, libc.VaList(bp+8, iKey, iVal, v1)) } else { if rc == int32(SQLITE_ROW) { ii = Xsqlite3_column_int64(tls, pStmt, 0) if ii != iVal { if bLeaf != 0 { - v2 = __ccgo_ts + 27971 + v2 = __ccgo_ts + 28117 } else { - v2 = __ccgo_ts + 27979 + v2 = __ccgo_ts + 28125 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28033, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28179, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) } } } @@ -181429,7 +183261,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 v2 = libc.BoolInt32(*(*TRtreeValue)(unsafe.Pointer(bp)) > *(*TRtreeValue)(unsafe.Pointer(bp + 4))) } if v2 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28091, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28237, libc.VaList(bp+24, i, iCell, iNode)) } if pParent != 0 { _readCoord(tls, pParent+uintptr(libc.Int32FromInt32(4)*libc.Int32FromInt32(2)*i), bp+8) @@ -181447,7 +183279,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 } } if v5 || v4 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28139, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28285, libc.VaList(bp+24, i, iCell, iNode)) } } goto _1 @@ -181480,19 +183312,19 @@ func _rtreeCheckNode(tls *libc.TLS, pCheck uintptr, iDepth int32, aParent uintpt aNode = _rtreeCheckGetNode(tls, pCheck, iNode, bp) if aNode != 0 { if *(*int32)(unsafe.Pointer(bp)) < int32(4) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28206, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28352, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) } else { /* Used to iterate through cells */ if aParent == uintptr(0) { iDepth = _readInt16(tls, aNode) if iDepth > int32(RTREE_MAX_DEPTH) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28240, libc.VaList(bp+16, iDepth)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28386, libc.VaList(bp+16, iDepth)) Xsqlite3_free(tls, aNode) return } } nCell = _readInt16(tls, aNode+2) if int32(4)+nCell*(int32(8)+(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnDim*int32(2)*int32(4)) > *(*int32)(unsafe.Pointer(bp)) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28270, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28416, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) } else { i = 0 for { @@ -181537,12 +183369,12 @@ func _rtreeCheckCount(tls *libc.TLS, pCheck uintptr, zTbl uintptr, nExpect Ti64) var pCount uintptr _, _ = nActual, pCount if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { - pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+28325, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) + pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+28471, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) if pCount != 0 { if Xsqlite3_step(tls, pCount) == int32(SQLITE_ROW) { nActual = Xsqlite3_column_int64(tls, pCount, 0) if nActual != nExpect { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28356, libc.VaList(bp+8, zTbl, nExpect, nActual)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28502, libc.VaList(bp+8, zTbl, nExpect, nActual)) } } (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = Xsqlite3_finalize(tls, pCount) @@ -181571,7 +183403,7 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzDb = zDb (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzTab = zTab /* Find the number of auxiliary columns */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28423, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28569, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { nAux = Xsqlite3_column_count(tls, pStmt) - int32(2) Xsqlite3_finalize(tls, pStmt) @@ -181581,11 +183413,11 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe } } /* Find number of dimensions in the rtree table. */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+26237, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+26383, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim = (Xsqlite3_column_count(tls, pStmt) - int32(1) - nAux) / int32(2) if (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim < int32(1) { - _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28451, 0) + _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28597, 0) } else { if int32(SQLITE_ROW) == Xsqlite3_step(tls, pStmt) { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FbInt = libc.BoolInt32(Xsqlite3_column_type(tls, pStmt, int32(1)) == int32(SQLITE_INTEGER)) @@ -181601,8 +183433,8 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe if (*(*TRtreeCheck)(unsafe.Pointer(bp))).Frc == SQLITE_OK { _rtreeCheckNode(tls, bp, 0, uintptr(0), int64(1)) } - _rtreeCheckCount(tls, bp, __ccgo_ts+28482, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) - _rtreeCheckCount(tls, bp, __ccgo_ts+28489, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28628, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28635, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) } /* Finalize SQL statements used by the integrity-check */ Xsqlite3_finalize(tls, (*(*TRtreeCheck)(unsafe.Pointer(bp))).FpGetNode) @@ -181629,7 +183461,7 @@ func _rtreeIntegrity(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zName uintpt _ = isQuick rc = _rtreeCheckTable(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, pzErr) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28497, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28643, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) if *(*uintptr)(unsafe.Pointer(pzErr)) == uintptr(0) { rc = int32(SQLITE_NOMEM) } @@ -181680,13 +183512,13 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { var _ /* zReport at bp+0 */ uintptr _, _, _, _ = rc, zDb, zTab, v1 if nArg != int32(1) && nArg != int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+28516, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+28662, -int32(1)) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zDb = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg))) if nArg == int32(1) { zTab = zDb - zDb = __ccgo_ts + 6933 + zDb = __ccgo_ts + 6997 } else { zTab = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8))) } @@ -181695,7 +183527,7 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(bp)) } else { - v1 = __ccgo_ts + 18858 + v1 = __ccgo_ts + 18945 } Xsqlite3_result_text(tls, ctx, v1, -int32(1), uintptr(-libc.Int32FromInt32(1))) } else { @@ -182028,6 +183860,7 @@ func _geopolyParseJson(tls *libc.TLS, z uintptr, pRc uintptr) (r uintptr) { rc = int32(SQLITE_ERROR) } } + goto parse_json_err parse_json_err: ; if pRc != 0 { @@ -182161,19 +183994,19 @@ func _geopolyJsonFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if p != 0 { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) - Xsqlite3_str_append(tls, x, __ccgo_ts+25490, int32(1)) + Xsqlite3_str_append(tls, x, __ccgo_ts+25619, int32(1)) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28567, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28713, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28578, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28724, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -182202,20 +184035,20 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) cSep = int8('\'') - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28589, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28735, 0) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28607, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28753, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) cSep = int8(' ') goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28615, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28761, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) i = int32(1) for { if !(i < argc) { @@ -182223,14 +184056,14 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if z != 0 && *(*int8)(unsafe.Pointer(z)) != 0 { - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28623, libc.VaList(bp+8, z)) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28769, libc.VaList(bp+8, z)) } goto _2 _2: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28627, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28773, 0) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -182535,6 +184368,7 @@ func _geopolyBBox(tls *libc.TLS, context uintptr, pPoly uintptr, aCoord uintptr, if !(aCoord == uintptr(0)) { goto _6 } + goto geopolyBboxFill geopolyBboxFill: ; pOut = Xsqlite3_realloc64(tls, p, libc.Uint64FromInt64(40)+libc.Uint64FromInt64(4)*libc.Uint64FromInt32(2)*uint64(libc.Int32FromInt32(4)-libc.Int32FromInt32(4))) @@ -182638,8 +184472,8 @@ func _geopolyBBoxStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if pBBox == uintptr(0) { return } - if (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit == 0 { - (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit = int32(1) + if libc.AtomicLoadPInt32(pBBox) == 0 { + libc.AtomicStorePInt32(pBBox, int32(1)) libc.X__builtin___memcpy_chk(tls, pBBox+4, bp, libc.Uint64FromInt64(4)*libc.Uint64FromInt32(4), libc.X__builtin_object_size(tls, pBBox+4, 0)) } else { if *(*TRtreeValue)(unsafe.Pointer(bp)) < *(*TRtreeValue)(unsafe.Pointer(pBBox + 4)) { @@ -183266,6 +185100,7 @@ func _geopolyOverlap(tls *libc.TLS, p1 uintptr, p2 uintptr) (r int32) { } } } + goto geopolyOverlapDone geopolyOverlapDone: ; Xsqlite3_free(tls, p) @@ -183357,13 +185192,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, 0)) libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, 0)) libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, 0)) - libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27680, uint64(6), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), 0)) + libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27826, uint64(6), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), 0)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28640, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28786, 0) (*TRtree)(unsafe.Pointer(pRtree)).FnAux = uint8(1) /* Add one for _shape */ (*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull = uint8(1) /* The _shape column is always not-null */ ii = int32(3) @@ -183372,13 +185207,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint break } (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28662, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28808, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27737, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27883, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) @@ -183386,7 +185221,7 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint v2 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v2 if SQLITE_OK != v2 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } Xsqlite3_free(tls, zSql) @@ -183401,11 +185236,12 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto geopolyInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto geopolyInit_fail geopolyInit_fail: ; if rc == SQLITE_OK { @@ -183554,6 +185390,7 @@ func _geopolyFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uin *(*int32)(unsafe.Pointer(bp + 8)) = _rtreeStepToLeaf(tls, pCsr) } } + goto geopoly_filter_end geopoly_filter_end: ; _nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp))) @@ -183611,7 +185448,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iRowidTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(1) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 17045 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 17132 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).Fomit = uint8(1) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(30) @@ -183621,7 +185458,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iFuncTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = idxNum - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28666 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28812 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).Fomit = uint8(0) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(300) @@ -183629,7 +185466,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { return SQLITE_OK } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(4) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28672 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28818 (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(3e+06) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(100000) return SQLITE_OK @@ -183749,7 +185586,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR _geopolyBBox(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(aData + 2*8)), bp+8+8, bp) if *(*int32)(unsafe.Pointer(bp)) != 0 { if *(*int32)(unsafe.Pointer(bp)) == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28681, 0) + (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28827, 0) } goto geopoly_update_end } @@ -183836,6 +185673,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, pUp) } } + goto geopoly_update_end geopoly_update_end: ; _rtreeRelease(tls, pRtree) @@ -183851,12 +185689,12 @@ geopoly_update_end: func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28721) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28867) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28737) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28883) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) @@ -183927,7 +185765,7 @@ func _sqlite3_geopoly_init(tls *libc.TLS, db uintptr) (r int32) { i++ } if rc == SQLITE_OK { - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28914, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+29060, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) } return rc } @@ -183941,61 +185779,61 @@ var _aFunc = [12]struct { 0: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28752, + FzName: __ccgo_ts + 28898, }, 1: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28765, + FzName: __ccgo_ts + 28911, }, 2: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28778, + FzName: __ccgo_ts + 28924, }, 3: { FnArg: int8(-int32(1)), FbPure: uint8(1), - FzName: __ccgo_ts + 28791, + FzName: __ccgo_ts + 28937, }, 4: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28737, + FzName: __ccgo_ts + 28883, }, 5: { FnArg: int8(3), FbPure: uint8(1), - FzName: __ccgo_ts + 28803, + FzName: __ccgo_ts + 28949, }, 6: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28721, + FzName: __ccgo_ts + 28867, }, 7: { FnArg: int8(1), - FzName: __ccgo_ts + 28826, + FzName: __ccgo_ts + 28972, }, 8: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28840, + FzName: __ccgo_ts + 28986, }, 9: { FnArg: int8(7), FbPure: uint8(1), - FzName: __ccgo_ts + 28853, + FzName: __ccgo_ts + 28999, }, 10: { FnArg: int8(4), FbPure: uint8(1), - FzName: __ccgo_ts + 28867, + FzName: __ccgo_ts + 29013, }, 11: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28883, + FzName: __ccgo_ts + 29029, }, } @@ -184021,7 +185859,7 @@ var _aAgg = [1]struct { FzName uintptr }{ 0: { - FzName: __ccgo_ts + 28895, + FzName: __ccgo_ts + 29041, }, } @@ -184046,20 +185884,20 @@ func _sqlite3RtreeInit(tls *libc.TLS, db uintptr) (r int32) { var rc, utf8 int32 _, _, _, _ = c, c1, rc, utf8 utf8 = int32(SQLITE_UTF8) - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28922, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+29068, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28932, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+29078, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28943, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+29089, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { c = libc.UintptrFromInt32(RTREE_COORD_REAL32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28666, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28812, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) } if rc == SQLITE_OK { c1 = libc.UintptrFromInt32(RTREE_COORD_INT32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28954, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+29100, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) } if rc == SQLITE_OK { rc = _sqlite3_geopoly_init(tls, db) @@ -184161,7 +185999,7 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { Xsqlite3_result_error_nomem(tls, ctx) _rtreeMatchArgFree(tls, pBlob) } else { - Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+26223, __ccgo_fp(_rtreeMatchArgFree)) + Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+26369, __ccgo_fp(_rtreeMatchArgFree)) } } } @@ -185378,7 +187216,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt /* Figure out the size of the output */ nOut = _rbuDeltaOutputSize(tls, aDelta, nDelta) if nOut < 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+28964, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+29110, -int32(1)) return } aOut = Xsqlite3_malloc(tls, nOut+int32(1)) @@ -185388,7 +187226,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt nOut2 = _rbuDeltaApply(tls, aOrig, nOrig, aDelta, nDelta, aOut) if nOut2 != nOut { Xsqlite3_free(tls, aOut) - Xsqlite3_result_error(tls, context, __ccgo_ts+28964, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+29110, -int32(1)) } else { Xsqlite3_result_blob(tls, context, aOut, nOut, __ccgo_fp(Xsqlite3_free)) } @@ -185414,7 +187252,7 @@ func _prepareAndCollectError(tls *libc.TLS, db uintptr, ppStmt uintptr, pzErrmsg _ = rc rc = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), ppStmt, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) } return rc @@ -185437,7 +187275,7 @@ func _resetAndCollectError(tls *libc.TLS, pStmt uintptr, pzErrmsg uintptr) (r in _ = rc rc = Xsqlite3_reset(tls, pStmt) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) } return rc } @@ -185569,7 +187407,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { /* Free any SQLite statements used while processing the previous object */ _rbuObjIterClearStatements(tls, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28985, uintptr(0), uintptr(0), p+64) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+29131, uintptr(0), uintptr(0), p+64) } if rc == SQLITE_OK { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 { @@ -185579,6 +187417,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { if rc != int32(SQLITE_ROW) { rc = _resetAndCollectError(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, p+64) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = uintptr(0) + (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = uintptr(0) } else { (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, 0) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, int32(1)) @@ -185657,7 +187496,7 @@ func _rbuTargetNameFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { Xsqlite3_result_text(tls, pCtx, zIn, -int32(1), libc.UintptrFromInt32(0)) } } else { - if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+26136, zIn, uint64(4)) == 0 { + if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+26282, zIn, uint64(4)) == 0 { i = int32(4) for { if !(int32(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))) <= int32('9')) { @@ -185694,13 +187533,13 @@ func _rbuObjIterFirst(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { _, _ = rc, v1 libc.X__builtin___memset_chk(tls, pIter, 0, uint64(192), libc.X__builtin_object_size(tls, pIter, 0)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 29156 + v1 = __ccgo_ts + 29302 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29197, libc.VaList(bp+8, v1))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29343, libc.VaList(bp+8, v1))) if rc == SQLITE_OK { - rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+29347) + rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+29493) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup = int32(1) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -185867,7 +187706,7 @@ func _rbuFinalize(tls *libc.TLS, p uintptr, pStmt uintptr) { rc = Xsqlite3_finalize(tls, pStmt) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && rc != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } @@ -185928,7 +187767,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu *(*[4]uintptr)(unsafe.Pointer(bp)) = [4]uintptr{} *(*int32)(unsafe.Pointer(peType)) = RBU_PK_NOTABLE *(*int32)(unsafe.Pointer(piPk)) = 0 - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29472, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29618, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK || Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0]) != int32(SQLITE_ROW) { /* Either an error, or no such table. */ goto rbuTableType_end @@ -185938,7 +187777,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } *(*int32)(unsafe.Pointer(piTnum)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0], int32(1)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29591, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29737, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { goto rbuTableType_end } @@ -185946,7 +187785,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu zOrig = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(3)) zIdx = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(1)) if zOrig != 0 && zIdx != 0 && int32(*(*Tu8)(unsafe.Pointer(zOrig))) == int32('p') { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29612, libc.VaList(bp+40, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29758, libc.VaList(bp+40, zIdx))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)]) == int32(SQLITE_ROW) { *(*int32)(unsafe.Pointer(piPk)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)], 0) @@ -185958,7 +187797,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29663, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29809, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { for Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)]) == int32(SQLITE_ROW) { if Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)], int32(5)) > 0 { @@ -185968,6 +187807,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu } *(*int32)(unsafe.Pointer(peType)) = int32(RBU_PK_NONE) } + goto rbuTableType_end rbuTableType_end: ; i = uint32(0) @@ -186001,7 +187841,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { bIndex = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { libc.X__builtin___memcpy_chk(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk, uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol), libc.X__builtin_object_size(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, 0)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29684, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29830, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FnIndex = 0 for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -186014,7 +187854,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { if bPartial != 0 { libc.X__builtin___memset_chk(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, int32(0x01), uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol), libc.X__builtin_object_size(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, 0)) } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29712, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29858, libc.VaList(bp+24, zIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) if iCid >= 0 { @@ -186067,7 +187907,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 _rbuTableType(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, pIter+72, bp+8, pIter+108) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NOTABLE { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+20299, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+20431, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc @@ -186078,7 +187918,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 /* Populate the azTblCol[] and nTblCol variables based on the columns ** of the input table. Ignore any input table columns that begin with ** "rbu_". */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29741, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29887, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { nCol = Xsqlite3_column_count(tls, *(*uintptr)(unsafe.Pointer(bp))) _rbuAllocateIterArrays(tls, p, pIter, nCol) @@ -186089,7 +187929,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 break } zName = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), i) - if Xsqlite3_strnicmp(tls, __ccgo_ts+29760, zName, int32(4)) != 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+29906, zName, int32(4)) != 0 { zCopy = _rbuStrndup(tls, zName, p+56) *(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)*4)) = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol v3 = pIter + 16 @@ -186097,7 +187937,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 *(*int32)(unsafe.Pointer(v3))++ *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(v2)*8)) = zCopy } else { - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29765, zName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29911, zName) { bRbuRowid = int32(1) } } @@ -186111,17 +187951,17 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && bRbuRowid != libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) if bRbuRowid != 0 { - v4 = __ccgo_ts + 29775 + v4 = __ccgo_ts + 29921 } else { - v4 = __ccgo_ts + 29788 + v4 = __ccgo_ts + 29934 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29797, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29943, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) } /* Check that all non-HIDDEN columns in the destination table are also ** present in the input table. Populate the abTblPk[], azTblType[] and ** aiTblOrder[] arrays at the same time. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29826, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29972, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zName1 = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -186143,7 +187983,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 } if i == (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29848, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29994, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) } else { iPk = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) bNotNull = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) @@ -186182,15 +188022,15 @@ func _rbuObjIterGetCollist(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) var z, zList, zSep uintptr _, _, _, _ = i, z, zList, zSep zList = uintptr(0) - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } z = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+29875, libc.VaList(bp+8, zList, zSep, z)) - zSep = __ccgo_ts + 15338 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30021, libc.VaList(bp+8, zList, zSep, z)) + zSep = __ccgo_ts + 15431 goto _1 _1: ; @@ -186215,7 +188055,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, _, _, _, _, _ = i, iPk, zCol, zRet, zSep iPk = int32(1) zRet = uintptr(0) - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 for int32(1) != 0 { i = 0 for { @@ -186224,7 +188064,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, } if int32(*(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == iPk { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29884, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+30030, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) zSep = zSeparator break } @@ -186272,21 +188112,21 @@ func _rbuVacuumTableStart(tls *libc.TLS, p uintptr, pIter uintptr, bRowid int32, *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zRet = uintptr(0) if bRowid != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29897, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30043, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iMax = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29929, libc.VaList(bp+16, iMax)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+30075, libc.VaList(bp+16, iMax)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1650, __ccgo_ts+15338, __ccgo_ts+29952) - zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29958, __ccgo_ts+29965, __ccgo_ts+5454) - zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1650, __ccgo_ts+15338, __ccgo_ts+1650) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1664, __ccgo_ts+15431, __ccgo_ts+30098) + zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+30104, __ccgo_ts+30111, __ccgo_ts+5518) + zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1664, __ccgo_ts+15431, __ccgo_ts+1664) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29973, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30119, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zVal = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+30015, libc.VaList(bp+16, zList, zVal)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+30161, libc.VaList(bp+16, zList, zVal)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } @@ -186335,10 +188175,10 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { zVector = uintptr(0) zRet = uintptr(0) bFailed = 0 - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 iCol = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29712, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29858, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(4)) @@ -186360,15 +188200,15 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { - zCol = __ccgo_ts + 30035 + zCol = __ccgo_ts + 30181 } } else { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) } - zLhs = _rbuMPrintf(tls, p, __ccgo_ts+30043, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+30064, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) - zSelect = _rbuMPrintf(tls, p, __ccgo_ts+30100, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) - zSep = __ccgo_ts + 15338 + zLhs = _rbuMPrintf(tls, p, __ccgo_ts+30189, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+30210, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) + zSelect = _rbuMPrintf(tls, p, __ccgo_ts+30246, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) + zSep = __ccgo_ts + 15431 iCol++ } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) @@ -186377,9 +188217,9 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30127, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30273, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 iCol = 0 for { if !(iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol) { @@ -186394,19 +188234,20 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { break } } - zVector = _rbuMPrintf(tls, p, __ccgo_ts+30175, libc.VaList(bp+24, zVector, zSep, zQuoted)) - zSep = __ccgo_ts + 15338 + zVector = _rbuMPrintf(tls, p, __ccgo_ts+30321, libc.VaList(bp+24, zVector, zSep, zQuoted)) + zSep = __ccgo_ts + 15431 goto _2 _2: ; iCol++ } if !(bFailed != 0) { - zRet = _rbuMPrintf(tls, p, __ccgo_ts+30182, libc.VaList(bp+24, zLhs, zVector)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+30328, libc.VaList(bp+24, zLhs, zVector)) } } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } + goto index_start_out index_start_out: ; Xsqlite3_free(tls, zOrder) @@ -186455,11 +188296,11 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zImpPK = uintptr(0) /* String to return via *pzImposterPK */ zWhere = uintptr(0) /* String to return via *pzWhere */ nBind = 0 /* Value to return via *pnBind */ - zCom = __ccgo_ts + 1650 /* Set to ", " later on */ - zAnd = __ccgo_ts + 1650 /* Set to " AND " later on */ + zCom = __ccgo_ts + 1664 /* Set to ", " later on */ + zAnd = __ccgo_ts + 1664 /* Set to " AND " later on */ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_xinfo = ? */ if rc == SQLITE_OK { - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29712, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29858, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -186468,8 +188309,8 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = uintptr(0) if iCid == -int32(2) { iSeq = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+30194, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) - zType = __ccgo_ts + 1650 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+30340, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) + zType = __ccgo_ts + 1664 } else { if iCid < 0 { /* An integer primary key. If the table has an explicit IPK, use @@ -186488,9 +188329,9 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - zCol = __ccgo_ts + 30035 + zCol = __ccgo_ts + 30181 } else { - zCol = __ccgo_ts + 29765 + zCol = __ccgo_ts + 29911 } } zType = __ccgo_ts + 1138 @@ -186498,24 +188339,24 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) zType = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)) } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+30216, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+30362, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) } if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbUnique == 0 || Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) != 0 { if bDesc != 0 { - v2 = __ccgo_ts + 29952 + v2 = __ccgo_ts + 30098 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } zOrder = v2 - zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+30236, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) + zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+30382, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) } - zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+30257, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) - zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+30290, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) + zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+30403, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) + zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+30436, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) if zRet == uintptr(0) || zImpPK == uintptr(0) || zImpCols == uintptr(0) || zWhere == uintptr(0) { rc = int32(SQLITE_NOMEM) } - zCom = __ccgo_ts + 15338 - zAnd = __ccgo_ts + 22408 + zCom = __ccgo_ts + 15431 + zAnd = __ccgo_ts + 22553 nBind++ } rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -186561,7 +188402,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr _, _, _, _ = i, zCol, zList, zS zList = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zS = __ccgo_ts + 1650 + zS = __ccgo_ts + 1664 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -186569,11 +188410,11 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed + uintptr(i))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = Xsqlite3_mprintf(tls, __ccgo_ts+30314, libc.VaList(bp+8, zList, zS, zObj, zCol)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30460, libc.VaList(bp+8, zList, zS, zObj, zCol)) } else { - zList = Xsqlite3_mprintf(tls, __ccgo_ts+30326, libc.VaList(bp+8, zList, zS)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30472, libc.VaList(bp+8, zList, zS)) } - zS = __ccgo_ts + 15338 + zS = __ccgo_ts + 15431 if zList == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) break @@ -186585,7 +188426,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } /* For a table with implicit rowids, append "old._rowid_" to the list. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30335, libc.VaList(bp+8, zList, zObj)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30481, libc.VaList(bp+8, zList, zObj)) } } return zList @@ -186611,27 +188452,27 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _ = i, i1, zCol, zList, zSep, zSep1 zList = uintptr(0) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30350, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30496, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30364, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) - zSep = __ccgo_ts + 22408 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30510, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) + zSep = __ccgo_ts + 22553 } goto _1 _1: ; i++ } - zList = _rbuMPrintf(tls, p, __ccgo_ts+30376, libc.VaList(bp+8, zList)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30522, libc.VaList(bp+8, zList)) } else { - zSep1 = __ccgo_ts + 1650 + zSep1 = __ccgo_ts + 1664 i1 = 0 for { if !(i1 < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -186639,8 +188480,8 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i1))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i1)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+30426, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) - zSep1 = __ccgo_ts + 22408 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30572, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) + zSep1 = __ccgo_ts + 22553 } goto _2 _2: @@ -186663,7 +188504,7 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { // */ func _rbuBadControlError(tls *libc.TLS, p uintptr) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30439, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30585, 0) } // C documentation @@ -186697,7 +188538,7 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt if int32(libc.Xstrlen(tls, zMask)) != (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { _rbuBadControlError(tls, p) } else { - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -186705,16 +188546,16 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt } c = *(*int8)(unsafe.Pointer(zMask + uintptr(*(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(i)*4))))) if int32(c) == int32('x') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30426, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 15338 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30572, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15431 } else { if int32(c) == int32('d') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30465, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 15338 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30611, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15431 } else { if int32(c) == int32('f') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30495, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 15338 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30641, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15431 } } } @@ -186798,16 +188639,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _, _ = z, zCol, zDesc, zIdx, zOrig, zSep, v1 z = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zSep = __ccgo_ts + 30532 + zSep = __ccgo_ts + 30678 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_list = (pIter->zTbl) */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA index_xinfo = */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29684, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29830, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zOrig = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) - if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16933) == 0 { + if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+17020) == 0 { zIdx = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29712, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29858, libc.VaList(bp+24, zIdx))) } break } @@ -186818,16 +188659,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { /* int iCid = sqlite3_column_int(pXInfo, 0); */ zCol = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(2)) if Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) != 0 { - v1 = __ccgo_ts + 29952 + v1 = __ccgo_ts + 30098 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } zDesc = v1 - z = _rbuMPrintf(tls, p, __ccgo_ts+30545, libc.VaList(bp+24, z, zSep, zCol, zDesc)) - zSep = __ccgo_ts + 15338 + z = _rbuMPrintf(tls, p, __ccgo_ts+30691, libc.VaList(bp+24, z, zSep, zCol, zDesc)) + zSep = __ccgo_ts + 15431 } } - z = _rbuMPrintf(tls, p, __ccgo_ts+30556, libc.VaList(bp+24, z)) + z = _rbuMPrintf(tls, p, __ccgo_ts+30702, libc.VaList(bp+24, z)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } return z @@ -186867,13 +188708,13 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* SELECT name ... WHERE rootpage = $tnum */ zIdx = uintptr(0) /* Name of PK index */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA main.index_xinfo = $zIdx */ - zComma = __ccgo_ts + 1650 + zComma = __ccgo_ts + 1664 zCols = uintptr(0) /* Used to build up list of table cols */ zPk = uintptr(0) /* Used to build up table PK declaration */ /* Figure out the name of the primary key index for the current table. ** This is needed for the argument to "PRAGMA index_xinfo". Set ** zIdx to point to a nul-terminated string containing this name. */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30560) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30706) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), tnum) if int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -186881,7 +188722,7 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { } } if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29712, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29858, libc.VaList(bp+24, zIdx))) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { @@ -186890,21 +188731,21 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) bDesc = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(4)) - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30610, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30756, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) if bDesc != 0 { - v1 = __ccgo_ts + 29952 + v1 = __ccgo_ts + 30098 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - zPk = _rbuMPrintf(tls, p, __ccgo_ts+30632, libc.VaList(bp+24, zPk, zComma, iCid, v1)) - zComma = __ccgo_ts + 15338 + zPk = _rbuMPrintf(tls, p, __ccgo_ts+30778, libc.VaList(bp+24, zPk, zComma, iCid, v1)) + zComma = __ccgo_ts + 15431 } } - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30642, libc.VaList(bp+24, zCols)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30788, libc.VaList(bp+24, zCols)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30657, libc.VaList(bp+24, zCols, zPk)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30803, libc.VaList(bp+24, zCols, zPk)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, 0, 0)) } } @@ -186939,30 +188780,30 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { _, _, _, _, _, _, _, _, _ = iCol, tnum, zCol, zComma, zPk, zPk1, zSql, v2, v3 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { tnum = (*TRbuObjIter)(unsafe.Pointer(pIter)).FiTnum - zComma = __ccgo_ts + 1650 + zComma = __ccgo_ts + 1664 zSql = uintptr(0) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, 0, int32(1))) iCol = 0 for { if !((*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } - zPk = __ccgo_ts + 1650 + zPk = __ccgo_ts + 1664 zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCol)*8)) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_IPK) && *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(iCol))) != 0 { /* If the target table column is an "INTEGER PRIMARY KEY", add ** "PRIMARY KEY" to the imposter table column declaration. */ - zPk = __ccgo_ts + 30719 + zPk = __ccgo_ts + 30865 } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iCol))) != 0 { - v2 = __ccgo_ts + 30732 + v2 = __ccgo_ts + 30878 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30742, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) - zComma = __ccgo_ts + 15338 + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30888, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) + zComma = __ccgo_ts + 15431 goto _1 _1: ; @@ -186971,17 +188812,17 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { zPk1 = _rbuWithoutRowidPK(tls, p, pIter) if zPk1 != 0 { - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30769, libc.VaList(bp+16, zSql, zPk1)) + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30915, libc.VaList(bp+16, zSql, zPk1)) } } - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, int32(1), tnum)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, int32(1), tnum)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { - v3 = __ccgo_ts + 30776 + v3 = __ccgo_ts + 30922 } else { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30791, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, 0, 0)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30937, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, 0, 0)) } } @@ -187007,7 +188848,7 @@ func _rbuObjIterPrepareTmpInsert(tls *libc.TLS, p uintptr, pIter uintptr, zColli bRbuRowid = libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) zBind = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1)+bRbuRowid) if zBind != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30823, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30969, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) } } @@ -187053,7 +188894,7 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt *(*int32)(unsafe.Pointer(bp + 8)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc zRet = uintptr(0) if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30880) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+31026) } if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3_bind_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx, -int32(1), libc.UintptrFromInt32(0)) @@ -187222,7 +189063,7 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zIdx = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx zLimit = uintptr(0) if nOffset != 0 { - zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30946, libc.VaList(bp+40, nOffset)) + zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+31092, libc.VaList(bp+40, nOffset)) if !(zLimit != 0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } @@ -187239,18 +189080,18 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zCollist = _rbuObjIterGetIndexCols(tls, p, pIter, bp, bp+8, bp+16, bp+24) zBind = _rbuObjIterGetBindlist(tls, p, *(*int32)(unsafe.Pointer(bp + 24))) /* Create the imposter table used to write to this index. */ - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, 0, int32(1))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30966, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31112, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, 0, 0)) /* Create the statement to insert index entries */ (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = *(*int32)(unsafe.Pointer(bp + 24)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31031, libc.VaList(bp+40, zTbl, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31177, libc.VaList(bp+40, zTbl, zBind))) } /* And to delete index entries */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31067, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31213, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) } /* Create the SELECT statement to read keys in sorted order */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -187265,26 +189106,26 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } if zStart != 0 { if zPart != 0 { - v2 = __ccgo_ts + 31101 + v2 = __ccgo_ts + 31247 } else { - v2 = __ccgo_ts + 31105 + v2 = __ccgo_ts + 31251 } v1 = v2 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+31111, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+31257, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) Xsqlite3_free(tls, zStart) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+31172, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+31318, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) } else { if zPart != 0 { - v3 = __ccgo_ts + 31101 + v3 = __ccgo_ts + 31247 } else { - v3 = __ccgo_ts + 31105 + v3 = __ccgo_ts + 31251 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+31233, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+31379, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -187303,62 +189144,62 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zTbl1 = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl /* Imposter table name */ zBindings = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+bRbuRowid) zWhere1 = _rbuObjIterGetWhere(tls, p, pIter) - zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6944) - zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6940) + zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+7008) + zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+7004) zCollist = _rbuObjIterGetCollist(tls, p, pIter) (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol /* Create the imposter table or tables (if required). */ _rbuCreateImposterTable(tls, p, pIter) _rbuCreateImposterTable2(tls, p, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) { - v4 = __ccgo_ts + 1650 + v4 = __ccgo_ts + 1664 } else { - v4 = __ccgo_ts + 31392 + v4 = __ccgo_ts + 31538 } zWrite = v4 /* Create the INSERT statement to write to the target PK b-tree */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if bRbuRowid != 0 { - v5 = __ccgo_ts + 31401 + v5 = __ccgo_ts + 31547 } else { - v5 = __ccgo_ts + 1650 + v5 = __ccgo_ts + 1664 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31411, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31557, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) } /* Create the DELETE statement to write to the target PK b-tree. ** Because it only performs INSERT operations, this is not required for ** an rbu vacuum handle. */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31447, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31593, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) } if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zRbuRowid = __ccgo_ts + 1650 + zRbuRowid = __ccgo_ts + 1664 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zRbuRowid = __ccgo_ts + 31475 + zRbuRowid = __ccgo_ts + 31621 } /* Create the rbu_tmp_xxx table and the triggers to populate it. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - v6 = __ccgo_ts + 31487 + v6 = __ccgo_ts + 31633 } else { - v6 = __ccgo_ts + 1650 + v6 = __ccgo_ts + 1664 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31504, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31580, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31650, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31726, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31879, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32025, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) } _rbuObjIterPrepareTmpInsert(tls, p, pIter, zCollist, zRbuRowid) } /* Create the SELECT statement to read keys from data_xxx */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zRbuRowid1 = __ccgo_ts + 1650 + zRbuRowid1 = __ccgo_ts + 1664 zStart1 = uintptr(0) zOrder = uintptr(0) if bRbuRowid != 0 { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v7 = __ccgo_ts + 31978 + v7 = __ccgo_ts + 32124 } else { - v7 = __ccgo_ts + 31988 + v7 = __ccgo_ts + 32134 } zRbuRowid1 = v7 } @@ -187371,28 +189212,28 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } } if bRbuRowid != 0 { - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+30035, 0) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+30181, 0) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1650, __ccgo_ts+15338, __ccgo_ts+1650) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1664, __ccgo_ts+15431, __ccgo_ts+1664) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v8 = __ccgo_ts + 31999 + v8 = __ccgo_ts + 32145 } else { - v8 = __ccgo_ts + 1650 + v8 = __ccgo_ts + 1664 } if zStart1 != 0 { v9 = zStart1 } else { - v9 = __ccgo_ts + 1650 + v9 = __ccgo_ts + 1664 } if zOrder != 0 { - v10 = __ccgo_ts + 23602 + v10 = __ccgo_ts + 23747 } else { - v10 = __ccgo_ts + 1650 + v10 = __ccgo_ts + 1664 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+32005, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+32151, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) } Xsqlite3_free(tls, zStart1) Xsqlite3_free(tls, zOrder) @@ -187478,11 +189319,11 @@ func _rbuGetUpdateStmt(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintptr, p (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpNext = (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate = pUp if zSet != 0 { - zPrefix = __ccgo_ts + 1650 + zPrefix = __ccgo_ts + 1664 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { - zPrefix = __ccgo_ts + 31392 + zPrefix = __ccgo_ts + 31538 } - zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+32053, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) + zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+32199, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pUp+8, p+64, zUpdate) *(*uintptr)(unsafe.Pointer(ppStmt)) = (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate } @@ -187509,7 +189350,7 @@ func _rbuOpenDbhandle(tls *libc.TLS, p uintptr, zName uintptr, bUseVfs int32) (r } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_open_v2(tls, zName, bp, flags, v1) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) Xsqlite3_close(tls, *(*uintptr)(unsafe.Pointer(bp))) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) } @@ -187556,7 +189397,7 @@ func _rbuLoadState(tls *libc.TLS, p uintptr) (r uintptr) { if pRet == uintptr(0) { return uintptr(0) } - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+32083, libc.VaList(bp+24, p+48))) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+32229, libc.VaList(bp+24, p+48))) for *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { switch Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) { case int32(RBU_STATE_STAGE): @@ -187615,27 +189456,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu = _rbuOpenDbhandle(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, int32(1)) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain = dbMain if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6933, int32(SQLITE_FCNTL_RBUCNT), p) + Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6997, int32(SQLITE_FCNTL_RBUCNT), p) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState == uintptr(0) { - zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6933) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+32113, libc.VaList(bp+8, zFile, zFile)) + zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6997) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+32259, libc.VaList(bp+8, zFile, zFile)) } } /* If using separate RBU and state databases, attach the state database to ** the RBU db handle now. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState != 0 { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32141, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) - libc.X__builtin___memcpy_chk(tls, p+48, __ccgo_ts+3420, uint64(4), libc.X__builtin_object_size(tls, p+48, 0)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32287, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) + libc.X__builtin___memcpy_chk(tls, p+48, __ccgo_ts+3484, uint64(4), libc.X__builtin_object_size(tls, p+48, 0)) } else { - libc.X__builtin___memcpy_chk(tls, p+48, __ccgo_ts+6933, uint64(4), libc.X__builtin_object_size(tls, p+48, 0)) + libc.X__builtin___memcpy_chk(tls, p+48, __ccgo_ts+6997, uint64(4), libc.X__builtin_object_size(tls, p+48, 0)) } /* If it has not already been created, create the rbu_state table */ - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32159, libc.VaList(bp+8, p+48)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32305, libc.VaList(bp+8, p+48)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { bOpen = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FnRbu = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FpRbuFd = uintptr(0) - rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6933, int32(SQLITE_FCNTL_RBUCNT), p) + rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6997, int32(SQLITE_FCNTL_RBUCNT), p) if rc != int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc } @@ -187668,10 +189509,10 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) return } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32225, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32371, 0) } else { zExtra = uintptr(0) - if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24991, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { + if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+25114, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { zExtra = (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu + 5 for *(*int8)(unsafe.Pointer(zExtra)) != 0 { v1 = zExtra @@ -187685,16 +189526,16 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if zExtra == uintptr(0) { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } else { - v2 = __ccgo_ts + 32257 + v2 = __ccgo_ts + 32403 } if zExtra == uintptr(0) { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } else { v3 = zExtra } - zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+32259, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6933), v2, v3)) + zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+32405, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6997), v2, v3)) if zTarget == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) return @@ -187705,27 +189546,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32291, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32437, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32306, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32452, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32323, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32469, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, int32(SQLITE_FCNTL_RBU), p) } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32339, 0) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32485, 0) /* Mark the database file just opened as an RBU target database. If ** this call returns SQLITE_NOTFOUND, then the RBU vfs is not in use. ** This is an error. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, int32(SQLITE_FCNTL_RBU), p) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32367, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32513, 0) } } @@ -187775,7 +189616,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxShmMap})))(tls, pDb, 0, libc.Int32FromInt32(32)*libc.Int32FromInt32(1024), 0, bp) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - iRet = int64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))<= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+33367, zState+uintptr(n-int32(7)), uint64(7)) { + if n >= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+33513, zState+uintptr(n-int32(7)), uint64(7)) { return _rbuMisuseError(tls) } } @@ -188995,7 +190836,7 @@ func _rbuEditErrmsg(tls *libc.TLS, p uintptr) { if !(uint64(i) < nErrmsg-uint64(8)) { break } - if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31392, uint64(8)) == 0 { + if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31538, uint64(8)) == 0 { nDel = int32(8) for int32(*(*int8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) >= int32('0') && int32(*(*int8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) <= int32('9') { nDel++ @@ -189023,7 +190864,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { if p != 0 { /* Commit the transaction to the *-oal file. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+15242, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+15335, uintptr(0), uintptr(0), p+64) } /* Sync the db file if currently doing an incremental checkpoint */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { @@ -189032,7 +190873,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { } _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+15242, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+15335, uintptr(0), uintptr(0), p+64) } /* Close any open statement handles. */ _rbuObjIterFinalize(tls, p+80) @@ -189042,7 +190883,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { ** specifying the current target and state databases to start a new ** vacuum from scratch. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu != 0 { - rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33375, uintptr(0), uintptr(0), uintptr(0)) + rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33521, uintptr(0), uintptr(0), uintptr(0)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_DONE) && rc2 != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc2 } @@ -189143,7 +190984,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+15242, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+15335, uintptr(0), uintptr(0), uintptr(0)) } } /* Sync the db file */ @@ -189156,19 +190997,19 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { rc = (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+15242, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+15335, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 15227 + v1 = __ccgo_ts + 15320 } else { - v1 = __ccgo_ts + 33327 + v1 = __ccgo_ts + 33473 } zBegin = v1 rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, zBegin, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33327, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33473, uintptr(0), uintptr(0), uintptr(0)) } } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -189734,7 +191575,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r rc = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xControl})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, int32(SQLITE_FCNTL_ZIPVFS), bp) if rc == SQLITE_OK { rc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33402, 0) + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33548, 0) } else { if rc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpTargetFd = p @@ -189760,7 +191601,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r if rc == SQLITE_OK && op == int32(SQLITE_FCNTL_VFSNAME) { pRbuVfs = (*Trbu_file)(unsafe.Pointer(p)).FpRbuVfs zIn = *(*uintptr)(unsafe.Pointer(pArg)) - zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33425, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) + zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33571, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) *(*uintptr)(unsafe.Pointer(pArg)) = zOut if zOut == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -189955,7 +191796,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag if pDb != 0 { if (*Trbu_file)(unsafe.Pointer(pDb)).FpRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FeStage == int32(RBU_STAGE_OAL) { if (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FzTarget == uintptr(0) { - zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6933) + zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6997) zOpen = Xsqlite3_filename_wal(tls, zOpen) } nOpen = libc.Xstrlen(tls, zOpen) @@ -189969,7 +191810,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag } else { (*Trbu_file)(unsafe.Pointer(pFd)).FpRbu = (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).FpRbu } - if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33436, 0) != 0 { + if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33582, 0) != 0 { oflags = libc.Int32FromInt32(SQLITE_OPEN_TEMP_DB) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_EXCLUSIVE) | libc.Int32FromInt32(SQLITE_OPEN_DELETEONCLOSE) zOpen = uintptr(0) } @@ -190522,7 +192363,7 @@ func _statConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint _sqlite3TokenInit(tls, bp, *(*uintptr)(unsafe.Pointer(argv + 3*8))) iDb = _sqlite3FindDb(tls, db, bp) if iDb < 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12539, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12664, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) return int32(SQLITE_ERROR) } } else { @@ -190912,6 +192753,7 @@ func _statDecodePage(tls *libc.TLS, pBt uintptr, p uintptr) (r int32) { } } return SQLITE_OK + goto statPageIsCorrupt statPageIsCorrupt: ; (*TStatPage)(unsafe.Pointer(p)).Fflags = uint8(0) @@ -191002,6 +192844,7 @@ func _statNext(tls *libc.TLS, pCursor uintptr) (r int32) { pPager = _sqlite3BtreePager(tls, pBt) Xsqlite3_free(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath) (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = uintptr(0) + goto statNextRestart statNextRestart: ; if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage < 0 { @@ -191019,7 +192862,7 @@ statNextRestart: (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiPgno = iRoot (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v1 = Xsqlite3_mprintf(tls, __ccgo_ts+4033, 0) + v1 = Xsqlite3_mprintf(tls, __ccgo_ts+4097, 0) z = v1 (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FzPath = v1 if z == uintptr(0) { @@ -191057,8 +192900,8 @@ statNextRestart: if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { (*TStatCursor)(unsafe.Pointer(pCsr)).FzName = Xsqlite3_column_text(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FpStmt, 0) (*TStatCursor)(unsafe.Pointer(pCsr)).FiPageno = *(*Tu32)(unsafe.Pointer((*TStatCell)(unsafe.Pointer(pCell)).FaOvfl + uintptr(iOvfl)*4)) - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33447 - v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33456, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33593 + v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33602, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) z = v2 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v2 if z == uintptr(0) { @@ -191087,7 +192930,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage++ if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage >= int32(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(222551)) + return _sqlite3CorruptError(tls, int32(224206)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -191098,7 +192941,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnPage++ (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33468, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) + v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33614, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) z = v4 (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FzPath = v4 if z == uintptr(0) { @@ -191121,13 +192964,13 @@ statNextRestart: case int32(0x05): /* table internal */ fallthrough case int32(0x02): /* index internal */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33476 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33622 case int32(0x0D): /* table leaf */ fallthrough case int32(0x0A): /* index leaf */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33485 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33631 default: - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33490 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33636 break } *(*int32)(unsafe.Pointer(pCsr + 2108)) += (*TStatPage)(unsafe.Pointer(p1)).FnCell @@ -191136,7 +192979,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnMxPayload = (*TStatPage)(unsafe.Pointer(p1)).FnMxPayload } if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) + v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) z = v5 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v5 if z == uintptr(0) { @@ -191225,12 +193068,12 @@ func _statFilter(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uintptr, a (*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg = uint8(0) } pSql = Xsqlite3_str_new(tls, (*TStatTable)(unsafe.Pointer(pTab)).Fdb) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33500, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33646, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) if zName != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33655, libc.VaList(bp+8, zName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33801, libc.VaList(bp+8, zName)) } if idxNum&int32(0x08) != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33669, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33815, 0) } zSql = Xsqlite3_str_finish(tls, pSql) if zSql == uintptr(0) { @@ -191307,7 +193150,7 @@ func _statRowid(tls *libc.TLS, pCursor uintptr, pRowid uintptr) (r int32) { // ** Invoke this routine to register the "dbstat" virtual table module // */ func _sqlite3DbstatRegister(tls *libc.TLS, db uintptr) (r int32) { - return Xsqlite3_create_module(tls, db, __ccgo_ts+33684, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) + return Xsqlite3_create_module(tls, db, __ccgo_ts+33830, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) } var _dbstat_module = Tsqlite3_module{} @@ -192578,20 +194421,20 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, *(*uintptr)(unsafe.Pointer(pazDflt)) = uintptr(0) } nThis = _sqlite3Strlen30(tls, zThis) - if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11930, zThis) { + if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+12055, zThis) { rc = Xsqlite3_table_column_metadata(tls, db, zDb, zThis, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { /* For sqlite_stat1, pretend that (tbl,idx) is the PRIMARY KEY. */ - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33691, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33837, 0) } else { if rc == int32(SQLITE_ERROR) { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1650, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1664, 0) } else { return rc } } } else { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33812, libc.VaList(bp+16, zDb, zThis)) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33958, libc.VaList(bp+16, zDb, zThis)) } if !(zPragma != 0) { return int32(SQLITE_NOMEM) @@ -192615,7 +194458,7 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, bRowid = 0 } nDbCol += bRowid - nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+30035)) + nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+30181)) rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp))) if rc == SQLITE_OK { nByte = Tsqlite3_int64(uint64(nByte) + uint64(nDbCol)*(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(2)+libc.Uint64FromInt64(1)+libc.Uint64FromInt32(1)+libc.Uint64FromInt32(1))) @@ -192639,8 +194482,8 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, } i = 0 if bRowid != 0 { - nName = libc.Xstrlen(tls, __ccgo_ts+30035) - libc.X__builtin___memcpy_chk(tls, pAlloc, __ccgo_ts+30035, nName+uint64(1), libc.X__builtin_object_size(tls, pAlloc, 0)) + nName = libc.Xstrlen(tls, __ccgo_ts+30181) + libc.X__builtin___memcpy_chk(tls, pAlloc, __ccgo_ts+30181, nName+uint64(1), libc.X__builtin_object_size(tls, pAlloc, 0)) *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)) = pAlloc pAlloc += uintptr(nName + uint64(1)) *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) = uint8(1) @@ -192732,7 +194575,7 @@ func _sessionInitTable(tls *libc.TLS, pSession uintptr, pTab uintptr, db uintptr ; i++ } - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11930, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+12055, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 = int32(1) } if pSession != 0 && (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize != 0 { @@ -193021,10 +194864,10 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin _, _, _, _ = ii, zDflt, zSep, v2 *(*TSessionBuffer)(unsafe.Pointer(bp)) = TSessionBuffer{} *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK - zSep = __ccgo_ts + 11550 + zSep = __ccgo_ts + 11675 ii = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33841, 0) + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33987, 0) ii = 0 for { if !(ii < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol) { @@ -193033,11 +194876,11 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin if *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) != 0 { v2 = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) } else { - v2 = __ccgo_ts + 1651 + v2 = __ccgo_ts + 1665 } zDflt = v2 - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5424, libc.VaList(bp+32, zSep, zDflt)) - zSep = __ccgo_ts + 15338 + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5488, libc.VaList(bp+32, zSep, zDflt)) + zSep = __ccgo_ts + 15431 goto _1 _1: ; @@ -193355,7 +195198,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u rc = int32(SQLITE_NOMEM) goto error_out } - _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1650, uint8(0), libc.UintptrFromInt32(0)) + _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1664, uint8(0), libc.UintptrFromInt32(0)) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpZeroBlob = p } } @@ -193472,6 +195315,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u } } /* If an error has occurred, mark the session object as failed. */ + goto error_out error_out: ; if (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 != 0 { @@ -193675,7 +195519,7 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr var i int32 var zRet, zSep uintptr _, _, _ = i, zRet, zSep - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 zRet = uintptr(0) i = 0 for { @@ -193683,8 +195527,8 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr break } if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33848, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 22408 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33994, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 22553 if zRet == uintptr(0) { break } @@ -193703,7 +195547,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint var bHave, i int32 var zRet, zSep uintptr _, _, _, _ = bHave, i, zRet, zSep - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 zRet = uintptr(0) bHave = 0 i = 0 @@ -193713,8 +195557,8 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if int32(*(*Tu8)(unsafe.Pointer(abPK + uintptr(i)))) == 0 { bHave = int32(1) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33882, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 33923 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+34028, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 34069 if zRet == uintptr(0) { break } @@ -193725,7 +195569,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint i++ } if bHave == 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1724, 0) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1784, 0) } return zRet } @@ -193736,12 +195580,12 @@ func _sessionSelectFindNew(tls *libc.TLS, zDb1 uintptr, zDb2 uintptr, bRowid int var zRet, zSel, v1 uintptr _, _, _ = zRet, zSel, v1 if bRowid != 0 { - v1 = __ccgo_ts + 33928 + v1 = __ccgo_ts + 34074 } else { - v1 = __ccgo_ts + 6938 + v1 = __ccgo_ts + 7002 } zSel = v1 - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33939, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+34085, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) return zRet } @@ -193802,11 +195646,11 @@ func _sessionAllCols(tls *libc.TLS, zDb uintptr, pTab uintptr) (r uintptr) { break } if zRet != 0 { - v2 = __ccgo_ts + 15338 + v2 = __ccgo_ts + 15431 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+34018, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+34164, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) if !(zRet != 0) { break } @@ -193834,7 +195678,7 @@ func _sessionDiffFindModified(tls *libc.TLS, pSession uintptr, pTab uintptr, zFr } else { z1 = _sessionAllCols(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, pTab) z2 = _sessionAllCols(tls, zFrom, pTab) - zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+34037, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) + zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+34183, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) if zStmt == uintptr(0) || z1 == uintptr(0) || z2 == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -193934,7 +195778,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if bMismatch != 0 { if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+34094, 0) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+34240, 0) } rc = int32(SQLITE_SCHEMA) } @@ -193960,6 +195804,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u } Xsqlite3_free(tls, zExpr) } + goto diff_out diff_out: ; _sessionPreupdateHooks(tls, pSession) @@ -194265,7 +196110,7 @@ func _sessionAppendInteger(tls *libc.TLS, p uintptr, iVal int32, pRc uintptr) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* aBuf at bp+0 */ [24]int8 - Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5486, libc.VaList(bp+32, iVal)) + Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5550, libc.VaList(bp+32, iVal)) _sessionAppendStr(tls, p, bp, pRc) } @@ -194556,23 +196401,23 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt _, _, _, _, _, _, _ = i, nSql, zCols, zSep, zSql, v1, v3 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK zSql = uintptr(0) - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 if bRowid != 0 { - v1 = __ccgo_ts + 33928 + v1 = __ccgo_ts + 34074 } else { - v1 = __ccgo_ts + 6938 + v1 = __ccgo_ts + 7002 } zCols = v1 nSql = -int32(1) *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 24)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 40)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+34121, bp) - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11930, zTab) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+34125, bp) - _sessionAppendStr(tls, bp+24, __ccgo_ts+34149, bp) - _sessionAppendStr(tls, bp+40, __ccgo_ts+34158, bp) - zCols = __ccgo_ts + 34203 + _sessionAppendStr(tls, bp+8, __ccgo_ts+34267, bp) + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+12055, zTab) { + _sessionAppendStr(tls, bp+8, __ccgo_ts+34271, bp) + _sessionAppendStr(tls, bp+24, __ccgo_ts+34295, bp) + _sessionAppendStr(tls, bp+40, __ccgo_ts+34304, bp) + zCols = __ccgo_ts + 34349 } else { i = 0 for { @@ -194582,11 +196427,11 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { _sessionAppendStr(tls, bp+24, zSep, bp) _sessionAppendStr(tls, bp+40, zSep, bp) - zSep = __ccgo_ts + 15338 + zSep = __ccgo_ts + 15431 _sessionAppendIdent(tls, bp+24, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), bp) - _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+34217, libc.VaList(bp+64, i+int32(1))) + _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+34363, libc.VaList(bp+64, i+int32(1))) } else { - _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+34221, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+34367, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) } goto _2 _2: @@ -194598,9 +196443,9 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if bIgnoreNoop != 0 { v3 = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf } else { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+34248, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+34394, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) if zSql == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } @@ -194741,7 +196586,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, if (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc != 0 { return (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc } - *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+34290, uintptr(0), uintptr(0), uintptr(0)) + *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+34436, uintptr(0), uintptr(0), uintptr(0)) if *(*int32)(unsafe.Pointer(bp + 16)) != SQLITE_OK { return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -194847,7 +196692,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } } Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf) - Xsqlite3_exec(tls, db, __ccgo_ts+34310, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34456, uintptr(0), uintptr(0), uintptr(0)) Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db)) return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -195264,7 +197109,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, int32(9)) if rc == SQLITE_OK { if (*TSessionInput)(unsafe.Pointer(pIn)).FiNext >= (*TSessionInput)(unsafe.Pointer(pIn)).FnData { - rc = _sqlite3CorruptError(tls, int32(226700)) + rc = _sqlite3CorruptError(tls, int32(228355)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -195288,7 +197133,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, *(*int32)(unsafe.Pointer(bp))) if rc == SQLITE_OK { if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext { - rc = _sqlite3CorruptError(tls, int32(226720)) + rc = _sqlite3CorruptError(tls, int32(228375)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -195303,7 +197148,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap } if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) { if (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext < int32(8) { - rc = _sqlite3CorruptError(tls, int32(226730)) + rc = _sqlite3CorruptError(tls, int32(228385)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -195359,7 +197204,7 @@ func _sessionChangesetBufferTblhdr(tls *libc.TLS, pIn uintptr, pnByte uintptr) ( ** large value for nCol may cause nRead to wrap around and become ** negative. Leading to a crash. */ if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > int32(65536) { - rc = _sqlite3CorruptError(tls, int32(226778)) + rc = _sqlite3CorruptError(tls, int32(228433)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -195464,7 +197309,7 @@ func _sessionChangesetReadTblhdr(tls *libc.TLS, p uintptr) (r int32) { (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FnBuf = 0 _sessionBufferGrow(tls, p+72, int64(nByte), bp) } else { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(226866)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(228521)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -195535,12 +197380,12 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK { return (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc } + _sessionDiscardData(tls, p) + (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext /* If the iterator is already at the end of the changeset, return DONE. */ if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext >= (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FnData { return int32(SQLITE_DONE) } - _sessionDiscardData(tls, p) - (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext v3 = p + 8 v2 = *(*int32)(unsafe.Pointer(v3)) *(*int32)(unsafe.Pointer(v3))++ @@ -195570,7 +197415,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FzTab == uintptr(0) || (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset != 0 && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbInvert != 0 { /* The first record in the changeset is not a table header. Must be a ** corrupt changeset. */ - v7 = _sqlite3CorruptError(tls, int32(226952)) + v7 = _sqlite3CorruptError(tls, int32(228607)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -195580,7 +197425,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = int32(*(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr(v8)))) if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_DELETE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_INSERT) { - v10 = _sqlite3CorruptError(tls, int32(226958)) + v10 = _sqlite3CorruptError(tls, int32(228613)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -195659,7 +197504,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if *(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i+(*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*8)) if *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) == uintptr(0) { - v16 = _sqlite3CorruptError(tls, int32(227002)) + v16 = _sqlite3CorruptError(tls, int32(228657)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -196069,7 +197914,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(227367)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(229022)) goto finished_invert } if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { @@ -196089,6 +197934,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } + goto finished_invert finished_invert: ; Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf) @@ -196271,18 +198117,18 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 } if pUp == uintptr(0) { nByte = int32(uint64(24) * uint64(nU32) * uint64(4)) - bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11930) == 0) + bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+12055) == 0) pUp = Xsqlite3_malloc(tls, nByte) if pUp == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } else { - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 libc.X__builtin___memset_chk(tls, bp+8, 0, uint64(16), libc.X__builtin_object_size(tls, bp+8, 0)) (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask = pUp + 1*24 libc.X__builtin___memcpy_chk(tls, (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, uint64(nU32)*uint64(4), libc.X__builtin_object_size(tls, (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask, 0)) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34328, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34474, bp) _sessionAppendIdent(tls, bp+8, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34341, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34487, bp) /* Create the assignments part of the UPDATE */ ii = 0 for { @@ -196292,9 +198138,9 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if int32(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii)))) == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol+ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34347, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34493, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(1), bp) - zSep = __ccgo_ts + 15338 + zSep = __ccgo_ts + 15431 } goto _2 _2: @@ -196302,8 +198148,8 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 ii++ } /* Create the WHERE clause part of the UPDATE */ - zSep = __ccgo_ts + 1650 - _sessionAppendStr(tls, bp+8, __ccgo_ts+34352, bp) + zSep = __ccgo_ts + 1664 + _sessionAppendStr(tls, bp+8, __ccgo_ts+34498, bp) ii = 0 for { if !(ii < (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol) { @@ -196312,13 +198158,13 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if *(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii))) != 0 || bPatchset == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr(ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) if bStat1 != 0 && ii == int32(1) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+34360, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34506, bp) } else { _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34435, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34581, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(2), bp) } - zSep = __ccgo_ts + 22408 + zSep = __ccgo_ts + 22553 } goto _3 _3: @@ -196401,13 +198247,13 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in var _ /* buf at bp+8 */ TSessionBuffer var _ /* rc at bp+0 */ int32 _, _, _ = i, nPk, zSep - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} nPk = 0 - _sessionAppendStr(tls, bp+8, __ccgo_ts+34441, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34587, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34352, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34498, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -196417,9 +198263,9 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in nPk++ _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34347, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34493, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 22408 + zSep = __ccgo_ts + 22553 } goto _1 _1: @@ -196427,10 +198273,10 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in i++ } if nPk < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol { - _sessionAppendStr(tls, bp+8, __ccgo_ts+34459, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34605, bp) _sessionAppendInteger(tls, bp+8, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol+int32(1), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33923, bp) - zSep = __ccgo_ts + 1650 + _sessionAppendStr(tls, bp+8, __ccgo_ts+34069, bp) + zSep = __ccgo_ts + 1664 i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -196439,16 +198285,16 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in if !(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0) { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34435, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34581, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 34467 + zSep = __ccgo_ts + 34613 } goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5454, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5518, bp) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+8, uintptr(0)) @@ -196474,7 +198320,7 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in // */ func _sessionSelectRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r int32) { /* TODO */ - return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6933, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) + return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6997, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) } // C documentation @@ -196497,16 +198343,16 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+34472, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34618, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+22414, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+22559, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } if i != 0 { - _sessionAppendStr(tls, bp+8, __ccgo_ts+15338, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+15431, bp) } _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) goto _1 @@ -196514,19 +198360,19 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34490, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34636, bp) i = int32(1) for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34501, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34647, bp) goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5454, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5518, bp) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+16, uintptr(0)) } @@ -196549,12 +198395,12 @@ func _sessionPrepare(tls *libc.TLS, db uintptr, pp uintptr, zSql uintptr) (r int func _sessionStat1Sql(tls *libc.TLS, db uintptr, p uintptr) (r int32) { var rc int32 _ = rc - rc = _sessionSelectRow(tls, db, __ccgo_ts+11930, p) + rc = _sessionSelectRow(tls, db, __ccgo_ts+12055, p) if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34505) + rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34651) } if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34618) + rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34764) } return rc } @@ -196620,7 +198466,7 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(227849)) + rc = _sqlite3CorruptError(tls, int32(229504)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -197036,7 +198882,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34762, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34908, uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { rc = _sessionBindRow(tls, pIter, __ccgo_fp(Xsqlite3changeset_new), (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FabPK, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) Xsqlite3_bind_int(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol+int32(1), int32(1)) @@ -197049,7 +198895,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34783, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34929, uintptr(0), uintptr(0), uintptr(0)) } } } @@ -197143,10 +198989,10 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbIgnoreNoop = libc.BoolUint8(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_IGNORENOOP) != 0)) Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, db)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34802, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34948, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34828, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34974, uintptr(0), uintptr(0), uintptr(0)) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) @@ -197177,7 +199023,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui ** non-zero, proceed. */ schemaMismatch = libc.BoolInt32(xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { - *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) + *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { rc = int32(SQLITE_NOMEM) break @@ -197187,7 +199033,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } else { nMinCol = 0 Xsqlite3changeset_pk(tls, pIter, bp+152, uintptr(0)) - rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6933, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) + rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6997, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) if rc != SQLITE_OK { break } @@ -197206,18 +199052,18 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol == 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34858, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+35004, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol < *(*int32)(unsafe.Pointer(bp + 136)) { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34902, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+35048, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) } else { if *(*int32)(unsafe.Pointer(bp + 136)) < nMinCol || libc.Xmemcmp(tls, (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FabPK, *(*uintptr)(unsafe.Pointer(bp + 152)), uint64(*(*int32)(unsafe.Pointer(bp + 136)))) != 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34973, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+35119, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol = *(*int32)(unsafe.Pointer(bp + 136)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11930) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+12055) { v2 = _sessionStat1Sql(tls, db, bp+8) rc = v2 if v2 != 0 { @@ -197274,13 +199120,13 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } } } - Xsqlite3_exec(tls, db, __ccgo_ts+35033, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+35179, uintptr(0), uintptr(0), uintptr(0)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+35063, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+35209, uintptr(0), uintptr(0), uintptr(0)) } else { - Xsqlite3_exec(tls, db, __ccgo_ts+35087, uintptr(0), uintptr(0), uintptr(0)) - Xsqlite3_exec(tls, db, __ccgo_ts+35063, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+35233, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+35209, uintptr(0), uintptr(0), uintptr(0)) } } if rc == SQLITE_OK && bPatchset == 0 && (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbRebase != 0 { @@ -197372,6 +199218,7 @@ type Tsqlite3_changegroup1 = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -197728,116 +199575,143 @@ func _sessionChangesetExtendRecord(tls *libc.TLS, pGrp uintptr, pTab uintptr, nC // C documentation // // /* -// ** Add all changes in the changeset traversed by the iterator passed as -// ** the first argument to the changegroup hash tables. +// ** Locate or create a SessionTable object that may be used to add the +// ** change currently pointed to by iterator pIter to changegroup pGrp. +// ** If successful, set output variable (*ppTab) to point to the table +// ** object and return SQLITE_OK. Otherwise, if some error occurs, return +// ** an SQLite error code and leave (*ppTab) set to NULL. // */ -func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { - bp := tls.Alloc(80) - defer tls.Free(80) - var bPkOnly1, bPkOnly2, iHash, nNew, rc int32 - var pExist, pTab, pp, ppTab uintptr - var _ /* aRec at bp+0 */ uintptr - var _ /* abPK at bp+64 */ uintptr - var _ /* bIndirect at bp+48 */ int32 - var _ /* nCol at bp+40 */ int32 - var _ /* nRec at bp+8 */ int32 - var _ /* op at bp+44 */ int32 - var _ /* pChange at bp+56 */ uintptr - var _ /* rec at bp+16 */ TSessionBuffer - var _ /* zNew at bp+32 */ uintptr - _, _, _, _, _, _, _, _, _ = bPkOnly1, bPkOnly2, iHash, nNew, pExist, pTab, pp, ppTab, rc +func _sessionChangesetFindTable(tls *libc.TLS, pGrp uintptr, zTab uintptr, pIter uintptr, ppTab uintptr) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var nTab, rc int32 + var pTab, ppNew uintptr + var _ /* abPK at bp+0 */ uintptr + var _ /* nCol at bp+8 */ int32 + _, _, _, _ = nTab, pTab, ppNew, rc rc = SQLITE_OK pTab = uintptr(0) - *(*TSessionBuffer)(unsafe.Pointer(bp + 16)) = TSessionBuffer{} - for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { - pExist = uintptr(0) - /* Ensure that only changesets, or only patchsets, but not a mixture - ** of both, are being combined. It is an error to try to combine a - ** changeset and a patchset. */ - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset - } else { - if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { - rc = int32(SQLITE_ERROR) - break - } + nTab = int32(libc.Xstrlen(tls, zTab)) + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(ppTab)) = uintptr(0) + Xsqlite3changeset_pk(tls, pIter, bp, bp+8) + /* Search the list for an existing table */ + pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList + for { + if !(pTab != 0) { + break } - Xsqlite3changeset_op(tls, pIter, bp+32, bp+40, bp+44, bp+48) - if !(pTab != 0) || Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), (*TSessionTable)(unsafe.Pointer(pTab)).FzName) != 0 { - /* Search the list for a matching table */ - nNew = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)))) - Xsqlite3changeset_pk(tls, pIter, bp+64, uintptr(0)) - pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList - for { - if !(pTab != 0) { - break - } - if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), nNew+int32(1)) { - break - } - goto _1 - _1: - ; - pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext - } - if !(pTab != 0) { - pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 40)))+uint64(nNew)+uint64(1)) - if !(pTab != 0) { - rc = int32(SQLITE_NOMEM) - break - } - libc.X__builtin___memset_chk(tls, pTab, 0, uint64(80), libc.X__builtin_object_size(tls, pTab, 0)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 40)) - (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 - libc.X__builtin___memcpy_chk(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp + 64)), uint64(*(*int32)(unsafe.Pointer(bp + 40))), libc.X__builtin_object_size(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, 0)) - (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 40))) - libc.X__builtin___memcpy_chk(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), uint64(nNew+int32(1)), libc.X__builtin_object_size(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, 0)) - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 - rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) - if rc != 0 { - Xsqlite3_free(tls, pTab) - break - } - } - /* The new object must be linked on to the end of the list, not - ** simply added to the start of it. This is to ensure that the - ** tables within the output of sqlite3changegroup_output() are in - ** the right order. */ - ppTab = pGrp + 8 - for { - if !(*(*uintptr)(unsafe.Pointer(ppTab)) != 0) { - break - } - goto _2 - _2: - ; - ppTab = *(*uintptr)(unsafe.Pointer(ppTab)) - } - *(*uintptr)(unsafe.Pointer(ppTab)) = pTab - } - if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*uintptr)(unsafe.Pointer(bp + 64))) != 0) { - rc = int32(SQLITE_SCHEMA) - break - } + if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, nTab+int32(1)) { + break } - if *(*int32)(unsafe.Pointer(bp + 40)) < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol { - rc = _sessionChangesetExtendRecord(tls, pGrp, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*int32)(unsafe.Pointer(bp + 44)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+16) + goto _1 + _1: + ; + pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext + } + /* If one was not found above, create a new table now */ + if !(pTab != 0) { + pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 8)))+uint64(nTab)+uint64(1)) + if !(pTab != 0) { + return int32(SQLITE_NOMEM) + } + libc.X__builtin___memset_chk(tls, pTab, 0, uint64(80), libc.X__builtin_object_size(tls, pTab, 0)) + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 8)) + (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 + libc.X__builtin___memcpy_chk(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp)), uint64(*(*int32)(unsafe.Pointer(bp + 8))), libc.X__builtin_object_size(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, 0)) + (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 8))) + libc.X__builtin___memcpy_chk(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, uint64(nTab+int32(1)), libc.X__builtin_object_size(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, 0)) + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 + rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) if rc != 0 { + Xsqlite3_free(tls, pTab) + return rc + } + } + /* The new object must be linked on to the end of the list, not + ** simply added to the start of it. This is to ensure that the + ** tables within the output of sqlite3changegroup_output() are in + ** the right order. */ + ppNew = pGrp + 8 + for { + if !(*(*uintptr)(unsafe.Pointer(ppNew)) != 0) { break } - *(*uintptr)(unsafe.Pointer(bp)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf - *(*int32)(unsafe.Pointer(bp + 8)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf + goto _2 + _2: + ; + ppNew = *(*uintptr)(unsafe.Pointer(ppNew)) } - if _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pTab) != 0 { - rc = int32(SQLITE_NOMEM) - break + *(*uintptr)(unsafe.Pointer(ppNew)) = pTab + } + /* Check that the table is compatible. */ + if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 8)), *(*uintptr)(unsafe.Pointer(bp))) != 0) { + rc = int32(SQLITE_SCHEMA) + } + *(*uintptr)(unsafe.Pointer(ppTab)) = pTab + return rc +} + +// C documentation +// +// /* +// ** Add the change currently indicated by iterator pIter to the hash table +// ** belonging to changegroup pGrp. +// */ +func _sessionOneChangeToHash(tls *libc.TLS, pGrp uintptr, pIter uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var aRec, pBuf, pExist, pp uintptr + var bPkOnly1, bPkOnly2, iHash, nRec, rc int32 + var _ /* bIndirect at bp+8 */ int32 + var _ /* nCol at bp+0 */ int32 + var _ /* op at bp+4 */ int32 + var _ /* pChange at bp+16 */ uintptr + var _ /* pTab at bp+24 */ uintptr + var _ /* zTab at bp+32 */ uintptr + _, _, _, _, _, _, _, _, _ = aRec, bPkOnly1, bPkOnly2, iHash, nRec, pBuf, pExist, pp, rc + rc = SQLITE_OK + *(*int32)(unsafe.Pointer(bp)) = 0 + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + iHash = 0 + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0) + pExist = uintptr(0) + pp = uintptr(0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0) + aRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FaData + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent+int32(2)) + nRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent - int32(2) + /* Ensure that only changesets, or only patchsets, but not a mixture + ** of both, are being combined. It is an error to try to combine a + ** changeset and a patchset. */ + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset + } else { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { + rc = int32(SQLITE_ERROR) } - iHash = int32(_sessionChangeHash(tls, pTab, libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)), *(*uintptr)(unsafe.Pointer(bp)), (*TSessionTable)(unsafe.Pointer(pTab)).FnChange)) + } + if rc == SQLITE_OK { + *(*uintptr)(unsafe.Pointer(bp + 32)) = uintptr(0) + Xsqlite3changeset_op(tls, pIter, bp+32, bp, bp+4, bp+8) + rc = _sessionChangesetFindTable(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 32)), pIter, bp+24) + } + if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) < (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnCol { + pBuf = pGrp + 16 + rc = _sessionChangesetExtendRecord(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 24)), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), aRec, nRec, pBuf) + aRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FaBuf + nRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FnBuf + } + if rc == SQLITE_OK && _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp + 24))) != 0 { + rc = int32(SQLITE_NOMEM) + } + if rc == SQLITE_OK { /* Search for existing entry. If found, remove it from the hash table. - ** Code below may link it back in. - */ - pp = (*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8 + ** Code below may link it back in. */ + iHash = int32(_sessionChangeHash(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)), aRec, (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnChange)) + pp = (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8 for { if !(*(*uintptr)(unsafe.Pointer(pp)) != 0) { break @@ -197846,30 +199720,54 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase bPkOnly2 = 0 if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 { bPkOnly1 = libc.BoolInt32(int32((*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).Fop) == int32(SQLITE_DELETE)) - bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)) + bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)) } - if _sessionChangeEqual(tls, pTab, bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, *(*uintptr)(unsafe.Pointer(bp))) != 0 { + if _sessionChangeEqual(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, aRec) != 0 { pExist = *(*uintptr)(unsafe.Pointer(pp)) *(*uintptr)(unsafe.Pointer(pp)) = (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry-- + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry-- break } - goto _3 - _3: + goto _1 + _1: ; pp = *(*uintptr)(unsafe.Pointer(pp)) + 24 } - rc = _sessionChangeMerge(tls, pTab, bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 44)), *(*int32)(unsafe.Pointer(bp + 48)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+56) - if rc != 0 { + } + if rc == SQLITE_OK { + rc = _sessionChangeMerge(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 4)), *(*int32)(unsafe.Pointer(bp + 8)), aRec, nRec, bp+16) + } + if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { + (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) + *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 16)) + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry++ + } + if rc == SQLITE_OK { + rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc + } + return rc +} + +// C documentation +// +// /* +// ** Add all changes in the changeset traversed by the iterator passed as +// ** the first argument to the changegroup hash tables. +// */ +func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var rc int32 + var _ /* aRec at bp+0 */ uintptr + var _ /* nRec at bp+8 */ int32 + _ = rc + rc = SQLITE_OK + for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { + rc = _sessionOneChangeToHash(tls, pGrp, pIter, bRebase) + if rc != SQLITE_OK { break } - if *(*uintptr)(unsafe.Pointer(bp + 56)) != 0 { - (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 56)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) - *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 56)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry++ - } } - Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf) if rc == SQLITE_OK { rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc } @@ -197979,11 +199877,11 @@ func Xsqlite3changegroup_new(tls *libc.TLS, pp uintptr) (r int32) { var rc int32 _, _ = p, rc rc = SQLITE_OK /* New object */ - p = Xsqlite3_malloc(tls, int32(32)) + p = Xsqlite3_malloc(tls, int32(48)) if p == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.X__builtin___memset_chk(tls, p, 0, uint64(32), libc.X__builtin_object_size(tls, p, 0)) + libc.X__builtin___memset_chk(tls, p, 0, uint64(48), libc.X__builtin_object_size(tls, p, 0)) } *(*uintptr)(unsafe.Pointer(pp)) = p return rc @@ -198005,7 +199903,7 @@ func Xsqlite3changegroup_schema(tls *libc.TLS, pGrp uintptr, db uintptr, zDb uin ** or after sqlite3changegroup_schema() has already been called. */ rc = int32(SQLITE_MISUSE) } else { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, zDb)) + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, zDb)) if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -198035,6 +199933,19 @@ func Xsqlite3changegroup_add(tls *libc.TLS, pGrp uintptr, nData int32, pData uin return rc } +// C documentation +// +// /* +// ** Add a single change to a changeset-group. +// */ +func Xsqlite3changegroup_add_change(tls *libc.TLS, pGrp uintptr, pIter uintptr) (r int32) { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent == (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc != SQLITE_OK || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbInvert != 0 { + /* Iterator does not point to any valid entry or is an INVERT iterator. */ + return int32(SQLITE_ERROR) + } + return _sessionOneChangeToHash(tls, pGrp, pIter, 0) +} + // C documentation // // /* @@ -198082,6 +199993,7 @@ func Xsqlite3changegroup_delete(tls *libc.TLS, pGrp uintptr) { if pGrp != 0 { Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList) + Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Frec.FaBuf) Xsqlite3_free(tls, pGrp) } } @@ -198446,11 +200358,11 @@ func Xsqlite3rebaser_create(tls *libc.TLS, ppNew uintptr) (r int32) { var rc int32 _, _ = pNew, rc rc = SQLITE_OK - pNew = Xsqlite3_malloc(tls, int32(32)) + pNew = Xsqlite3_malloc(tls, int32(48)) if pNew == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.X__builtin___memset_chk(tls, pNew, 0, uint64(32), libc.X__builtin_object_size(tls, pNew, 0)) + libc.X__builtin___memset_chk(tls, pNew, 0, uint64(48), libc.X__builtin_object_size(tls, pNew, 0)) } *(*uintptr)(unsafe.Pointer(ppNew)) = pNew return rc @@ -198524,6 +200436,7 @@ func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn u func Xsqlite3rebaser_delete(tls *libc.TLS, p uintptr) { if p != 0 { _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.FpList) + Xsqlite3_free(tls, (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.Frec.FaBuf) Xsqlite3_free(tls, p) } } @@ -199155,6 +201068,9 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** sqlite3Fts5ParserARG_STORE Code to store %extra_argument into fts5yypParser // ** sqlite3Fts5ParserARG_FETCH Code to extract %extra_argument from fts5yypParser // ** sqlite3Fts5ParserCTX_* As sqlite3Fts5ParserARG_ except for %extra_context +// ** fts5YYREALLOC Name of the realloc() function to use +// ** fts5YYFREE Name of the free() function to use +// ** fts5YYDYNSTACK True if stack space should be extended on heap // ** fts5YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** fts5YYNSTATE the combined number of states. @@ -199168,6 +201084,8 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** fts5YY_NO_ACTION The fts5yy_action[] code for no-op // ** fts5YY_MIN_REDUCE Minimum value for reduce actions // ** fts5YY_MAX_REDUCE Maximum value for reduce actions +// ** fts5YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** fts5YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type Tfts5YYMINORTYPE = struct { @@ -199194,6 +201112,13 @@ type fts5YYMINORTYPE = Tfts5YYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -199623,8 +201548,9 @@ type fts5yyStackEntry = Tfts5yyStackEntry type Tfts5yyParser1 = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser1 = Tfts5yyParser1 @@ -199632,14 +201558,19 @@ type fts5yyParser1 = Tfts5yyParser1 type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser = Tfts5yyParser /* #include */ +/* For builds that do no have a growable stack, fts5yyGrowStack always +** returns an error. + */ + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3Fts5ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -199654,10 +201585,11 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { var fts5yypParser uintptr _ = fts5yypParser fts5yypParser = fts5yypRawParser - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = fts5yypParser + 16 - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fstateno = uint8(0) - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fmajor = uint8(0) - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = fts5yypParser + 16 + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack = fts5yypParser + 32 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fstateno = uint8(0) + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fmajor = uint8(0) } // C documentation @@ -199677,7 +201609,7 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2424)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -199759,11 +201691,17 @@ func _fts5yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var fts5yytos, pParser uintptr + _, _ = fts5yytos, pParser pParser = p - for (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos > pParser+16 { - _fts5yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling fts5yy_pop_parser_stack() for each + ** element left in the stack */ + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos + for fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yystack { + if int32((*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor) >= int32(fts5YY_MIN_DSTRCTR) { + _fts5yy_destructor(tls, pParser, (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor, fts5yytos+8) + } + fts5yytos -= 24 } } @@ -199851,13 +201789,13 @@ func _fts5yyStackOverflow(tls *libc.TLS, fts5yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse - for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > fts5yypParser+16 { + for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack { _fts5yy_pop_parser_stack(tls, fts5yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35115, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35261, 0) /******** End %stack_overflow code ********************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument var */ } @@ -199875,15 +201813,18 @@ func _fts5yy_shift(tls *libc.TLS, fts5yypParser uintptr, fts5yyNewState uint8, f var fts5yytos uintptr _ = fts5yytos (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos += 24 - if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 - _fts5yyStackOverflow(tls, fts5yypParser) - return + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + if fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { + if int32(1) != 0 { + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 + _fts5yyStackOverflow(tls, fts5yypParser) + return + } + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos } if int32(fts5yyNewState) > int32(fts5YY_MAX_SHIFT) { fts5yyNewState = uint8(int32(fts5yyNewState) + (libc.Int32FromInt32(fts5YY_MIN_REDUCE) - libc.Int32FromInt32(fts5YY_MIN_SHIFTREDUCE))) } - fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fstateno = fts5yyNewState (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor = fts5yyMajor *(*TFts5Token)(unsafe.Pointer(fts5yytos + 8)) = fts5yyMinor @@ -200210,7 +202151,7 @@ func _fts5yy_syntax_error(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor int3 pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse /************ Begin %syntax_error code ****************************************/ _ = fts5yymajor /* Silence a compiler warning */ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35143, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35289, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) /************ End %syntax_error code ******************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument variable */ } @@ -200272,8 +202213,10 @@ func _sqlite3Fts5Parser(tls *libc.TLS, fts5yyp uintptr, fts5yymajor int32, fts5y ** enough on the stack to push the LHS value */ if int32(_fts5yyRuleInfoNRhs[fts5yyruleno]) == 0 { if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos >= (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - _fts5yyStackOverflow(tls, fts5yypParser) - break + if int32(1) != 0 { + _fts5yyStackOverflow(tls, fts5yypParser) + break + } } } fts5yyact = _fts5yy_reduce(tls, fts5yypParser, fts5yyruleno, fts5yymajor, fts5yyminor) @@ -200513,7 +202456,7 @@ func _fts5HighlightAppend(tls *libc.TLS, pRc uintptr, p uintptr, z uintptr, n in if n < 0 { n = int32(libc.Xstrlen(tls, z)) } - (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+35174, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) + (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+35320, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) if (*THighlightContext)(unsafe.Pointer(p)).FzOut == uintptr(0) { *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) } @@ -200610,7 +202553,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint var _ /* rc at bp+104 */ int32 _, _ = iCol, zErr if nVal != int32(3) { - zErr = __ccgo_ts + 35181 + zErr = __ccgo_ts + 35327 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -200621,7 +202564,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint (*(*THighlightContext)(unsafe.Pointer(bp))).FiRangeEnd = -int32(1) *(*int32)(unsafe.Pointer(bp + 104)) = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnText})))(tls, pFts, iCol, bp+24, bp+32) if *(*int32)(unsafe.Pointer(bp + 104)) == int32(SQLITE_RANGE) { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1650, -int32(1), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1664, -int32(1), libc.UintptrFromInt32(0)) *(*int32)(unsafe.Pointer(bp + 104)) = SQLITE_OK } else { if (*(*THighlightContext)(unsafe.Pointer(bp))).FzIn != 0 { @@ -200822,7 +202765,7 @@ func _fts5ValueToText(tls *libc.TLS, pVal uintptr) (r uintptr) { if zRet != 0 { v1 = zRet } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } return v1 } @@ -200856,7 +202799,7 @@ func _fts5SnippetFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintpt nBestScore = 0 /* Score of best snippet */ *(*int32)(unsafe.Pointer(bp + 112)) = 0 if nVal != int32(5) { - zErr = __ccgo_ts + 35231 + zErr = __ccgo_ts + 35377 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -201236,15 +203179,15 @@ func _sqlite3Fts5AuxInit(tls *libc.TLS, pApi uintptr) (r int32) { FxDestroy uintptr }{ 0: { - FzFunc: __ccgo_ts + 35279, + FzFunc: __ccgo_ts + 35425, FxFunc: __ccgo_fp(_fts5SnippetFunction), }, 1: { - FzFunc: __ccgo_ts + 35287, + FzFunc: __ccgo_ts + 35433, FxFunc: __ccgo_fp(_fts5HighlightFunction), }, 2: { - FzFunc: __ccgo_ts + 35297, + FzFunc: __ccgo_ts + 35443, FxFunc: __ccgo_fp(_fts5Bm25Function), }, } @@ -201904,7 +203847,7 @@ func _fts5ConfigSkipLiteral(tls *libc.TLS, pIn uintptr) (r uintptr) { case int32('n'): fallthrough case int32('N'): - if Xsqlite3_strnicmp(tls, __ccgo_ts+1636, p, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+1650, p, int32(4)) == 0 { p = p + 4 } else { p = uintptr(0) @@ -202108,7 +204051,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _, _, _, _, _, _, _, _, _, _, _, _ = azArg, bFirst, nArg, nByte, nCmd, nPre, p, p1, p2, pDel, pSpace, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK nCmd = int32(libc.Xstrlen(tls, zCmd)) - if Xsqlite3_strnicmp(tls, __ccgo_ts+35302, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35448, zCmd, nCmd) == 0 { nByte = int32(libc.Uint64FromInt64(4) * libc.Uint64FromInt32(FTS5_MAX_PREFIX_INDEXES)) bFirst = int32(1) if (*TFts5Config)(unsafe.Pointer(pConfig)).FaPrefix == uintptr(0) { @@ -202134,12 +204077,12 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } } if int32(*(*int8)(unsafe.Pointer(p))) < int32('0') || int32(*(*int8)(unsafe.Pointer(p))) > int32('9') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35309, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35455, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } if (*TFts5Config)(unsafe.Pointer(pConfig)).FnPrefix == int32(FTS5_MAX_PREFIX_INDEXES) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35340, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35486, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -202148,7 +204091,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC p++ } if nPre <= 0 || nPre >= int32(1000) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35373, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35519, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -202158,7 +204101,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35410, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35556, zCmd, nCmd) == 0 { p1 = zArg nArg = int64(libc.Xstrlen(tls, zArg) + uint64(1)) azArg = _sqlite3Fts5MallocZero(tls, bp, int64(uint64(8)*uint64(nArg))) @@ -202166,7 +204109,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC pSpace = pDel if azArg != 0 && pSpace != 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35419, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35565, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { nArg = 0 @@ -202193,7 +204136,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC nArg++ } if p1 == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35452, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35598, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5GetTokenizer(tls, pGlobal, azArg, int32(nArg), pConfig, pzErr) @@ -202204,58 +204147,58 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC Xsqlite3_free(tls, pDel) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35486, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35632, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent != FTS5_CONTENT_NORMAL { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35494, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35640, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if *(*int8)(unsafe.Pointer(zArg)) != 0 { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_EXTERNAL) - (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35526, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) + (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35672, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_NONE) } } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35532, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35678, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35551, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35697, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35594, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35740, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35608, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35754, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, zArg, -int32(1)) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35646, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35792, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35657, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35803, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+5847, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+5911, zCmd, nCmd) == 0 { *(*[4]TFts5Enum)(unsafe.Pointer(bp + 8)) = [4]TFts5Enum{ 0: { - FzName: __ccgo_ts + 8566, + FzName: __ccgo_ts + 8691, FeVal: int32(FTS5_DETAIL_NONE), }, 1: { - FzName: __ccgo_ts + 18114, + FzName: __ccgo_ts + 18201, }, 2: { - FzName: __ccgo_ts + 35692, + FzName: __ccgo_ts + 35838, FeVal: int32(FTS5_DETAIL_COLUMNS), }, 3: {}, @@ -202263,20 +204206,20 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC v2 = _fts5ConfigSetEnum(tls, bp+8, zArg, pConfig+96) *(*int32)(unsafe.Pointer(bp)) = v2 if v2 != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35700, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35846, 0) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35731, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35877, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35741, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35887, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbTokendata = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35775, libc.VaList(bp+80, nCmd, zCmd)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35921, libc.VaList(bp+80, nCmd, zCmd)) return int32(SQLITE_ERROR) } @@ -202348,15 +204291,15 @@ func _fts5ConfigParseColumn(tls *libc.TLS, p uintptr, zCol uintptr, zArg uintptr var v2 uintptr _, _, _ = rc, v1, v2 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35803) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+17045) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35808, libc.VaList(bp+8, zCol)) + if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35949) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+17132) { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35954, libc.VaList(bp+8, zCol)) rc = int32(SQLITE_ERROR) } else { if zArg != 0 { - if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35838) { + if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35984) { *(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FabUnindexed + uintptr((*TFts5Config)(unsafe.Pointer(p)).FnCol))) = uint8(1) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35848, libc.VaList(bp+8, zArg)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35994, libc.VaList(bp+8, zArg)) rc = int32(SQLITE_ERROR) } } @@ -202382,7 +204325,7 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TFts5Buffer)(unsafe.Pointer(bp + 8)) = TFts5Buffer{} - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35879, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36025, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) if (*TFts5Config)(unsafe.Pointer(p)).FeContent != int32(FTS5_CONTENT_NONE) { i = 0 for { @@ -202390,9 +204333,9 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { break } if (*TFts5Config)(unsafe.Pointer(p)).FeContent == int32(FTS5_CONTENT_EXTERNAL) { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35884, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36030, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) } else { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35891, libc.VaList(bp+32, i)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36037, libc.VaList(bp+32, i)) } goto _1 _1: @@ -202452,8 +204395,8 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in (*TFts5Config)(unsafe.Pointer(pRet)).FzName = _sqlite3Fts5Strndup(tls, bp, *(*uintptr)(unsafe.Pointer(azArg + 2*8)), -int32(1)) (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize = int32(1) (*TFts5Config)(unsafe.Pointer(pRet)).FeDetail = FTS5_DETAIL_FULL - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35803) == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35899, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35949) == 0 { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36045, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } i = int32(3) @@ -202484,19 +204427,19 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { if z == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35928, libc.VaList(bp+40, zOrig)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36074, libc.VaList(bp+40, zOrig)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bOption != 0 { if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { v4 = *(*uintptr)(unsafe.Pointer(bp + 8)) } else { - v4 = __ccgo_ts + 1650 + v4 = __ccgo_ts + 1664 } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { v5 = *(*uintptr)(unsafe.Pointer(bp + 16)) } else { - v5 = __ccgo_ts + 1650 + v5 = __ccgo_ts + 1664 } *(*int32)(unsafe.Pointer(bp)) = _fts5ConfigParseSpecial(tls, pGlobal, pRet, v4, v5, pzErr) } else { @@ -202514,7 +204457,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } /* We only allow contentless_delete=1 if the table is indeed contentless. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FeContent != int32(FTS5_CONTENT_NONE) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35948, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36094, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* We only allow contentless_delete=1 if columnsize=0 is not present. @@ -202522,7 +204465,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in ** This restriction may be removed at some point. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35998, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36144, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* If a tokenizer= option was successfully parsed, the tokenizer has @@ -202535,18 +204478,18 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContent == uintptr(0) { zTail = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pRet)).FeContent == FTS5_CONTENT_NORMAL { - zTail = __ccgo_ts + 35486 + zTail = __ccgo_ts + 35632 } else { if (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize != 0 { - zTail = __ccgo_ts + 36053 + zTail = __ccgo_ts + 36199 } } if zTail != 0 { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36061, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36207, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid == uintptr(0) { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+17045, -int32(1)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+17132, -int32(1)) } /* Formulate the zContentExprlist text */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -202610,25 +204553,25 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { var _ /* rc at bp+0 */ int32 _, _, _, _ = i, zSep, zSql, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36072, 0) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36218, 0) i = 0 for { if !(zSql != 0 && i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } if i == 0 { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } else { - v2 = __ccgo_ts + 15338 + v2 = __ccgo_ts + 15431 } zSep = v2 - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36088, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36234, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) goto _1 _1: ; i++ } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36095, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35803)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36241, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35949)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_declare_vtab(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql) Xsqlite3_free(tls, zSql) @@ -202774,7 +204717,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV var _ /* zRankArgs at bp+8 */ uintptr _, _, _, _, _, _, _, _, _, _ = bVal, nAutomerge, nCrisisMerge, nHashSize, nUsermerge, nVal, pgsz, rc, zIn, v1 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36121) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36267) { pgsz = 0 if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { pgsz = Xsqlite3_value_int(tls, pVal) @@ -202785,7 +204728,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).Fpgsz = pgsz } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36126) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36272) { nHashSize = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nHashSize = Xsqlite3_value_int(tls, pVal) @@ -202796,7 +204739,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnHashSize = nHashSize } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36135) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36281) { nAutomerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nAutomerge = Xsqlite3_value_int(tls, pVal) @@ -202810,7 +204753,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnAutomerge = nAutomerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36145) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36291) { nUsermerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nUsermerge = Xsqlite3_value_int(tls, pVal) @@ -202821,7 +204764,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnUsermerge = nUsermerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36155) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36301) { nCrisisMerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nCrisisMerge = Xsqlite3_value_int(tls, pVal) @@ -202838,7 +204781,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnCrisisMerge = nCrisisMerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36167) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36313) { nVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nVal = Xsqlite3_value_int(tls, pVal) @@ -202853,7 +204796,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } (*TFts5Config)(unsafe.Pointer(pConfig)).FnDeleteMerge = nVal } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35803) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35949) { zIn = Xsqlite3_value_text(tls, pVal) rc = _sqlite3Fts5ConfigParseRank(tls, zIn, bp, bp+8) if rc == SQLITE_OK { @@ -202868,7 +204811,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36179) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36325) { bVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { bVal = Xsqlite3_value_int(tls, pVal) @@ -202910,7 +204853,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in var _ /* p at bp+0 */ uintptr var _ /* rc at bp+8 */ int32 _, _, _, _, _ = iVersion, pVal, zK, zSelect, zSql - zSelect = __ccgo_ts + 36193 + zSelect = __ccgo_ts + 36339 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_OK iVersion = 0 @@ -202930,7 +204873,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in for int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zK = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) pVal = Xsqlite3_column_value(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) - if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+36225) { + if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+36371) { iVersion = Xsqlite3_value_int(tls, pVal) } else { *(*int32)(unsafe.Pointer(bp + 12)) = 0 @@ -202942,7 +204885,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && iVersion != int32(FTS5_CURRENT_VERSION) && iVersion != int32(FTS5_CURRENT_VERSION_SECUREDELETE) { *(*int32)(unsafe.Pointer(bp + 8)) = int32(SQLITE_ERROR) if (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg != 0 { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+36233, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+36379, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = iVersion @@ -203163,7 +205106,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr } } if int32(*(*int8)(unsafe.Pointer(z2))) == int32('\000') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36304, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36450, 0) return FTS5_EOF } goto _1 @@ -203174,7 +205117,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z2) - int64(z)) default: if _sqlite3Fts5IsBareword(tls, *(*int8)(unsafe.Pointer(z))) == 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36324, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36470, libc.VaList(bp+8, z)) return FTS5_EOF } tok = int32(FTS5_STRING) @@ -203189,13 +205132,13 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr z21++ } (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z21) - int64(z)) - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36355, uint64(2)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36501, uint64(2)) == 0 { tok = int32(FTS5_OR) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36358, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36504, uint64(3)) == 0 { tok = int32(FTS5_NOT) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+31101, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+31247, uint64(3)) == 0 { tok = int32(FTS5_AND) } break @@ -203610,6 +205553,7 @@ func _fts5ExprSynonymList(tls *libc.TLS, pTerm uintptr, iRowid Ti64, pBuf uintpt *(*int32)(unsafe.Pointer(pn)) = (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn } } + goto synonym_poslist_out synonym_poslist_out: ; if aIter != bp { @@ -203742,6 +205686,7 @@ func _fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMat i++ } } + goto ismatch_out ismatch_out: ; *(*int32)(unsafe.Pointer(pbMatch)) = libc.BoolInt32((*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn > 0) @@ -203948,6 +205893,7 @@ func _fts5ExprNearIsMatch(tls *libc.TLS, pRc uintptr, pNear uintptr) (r int32) { goto ismatch_out } } + goto ismatch_out ismatch_out: ; bRet = libc.BoolInt32((*TFts5Buffer)(unsafe.Pointer((*(*TFts5NearTrimmer)(unsafe.Pointer(a))).FpOut)).Fn > 0) @@ -205264,8 +207210,8 @@ func _sqlite3Fts5ExprClonePhrase(tls *libc.TLS, pExpr uintptr, iPhrase int32, pp func _sqlite3Fts5ParseNear(tls *libc.TLS, pParse uintptr, pTok uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+36362, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35143, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) + if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+36508, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35289, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) } } @@ -205285,7 +207231,7 @@ func _sqlite3Fts5ParseSetDistance(tls *libc.TLS, pParse uintptr, pNear uintptr, } c = *(*int8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i))) if int32(c) < int32('0') || int32(c) > int32('9') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36367, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36513, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) return } nNear = nNear*int32(10) + (int32(*(*int8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i)))) - int32('0')) @@ -205423,7 +207369,7 @@ func _sqlite3Fts5ParseColset(tls *libc.TLS, pParse uintptr, pColset uintptr, p u iCol++ } if iCol == (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21411, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21543, libc.VaList(bp+8, z)) } else { pRet = _fts5ParseColset(tls, pParse, pColset, iCol) } @@ -205547,7 +207493,7 @@ func _sqlite3Fts5ParseSetColset(tls *libc.TLS, pParse uintptr, pExpr uintptr, pC var _ /* pFree at bp+0 */ uintptr *(*uintptr)(unsafe.Pointer(bp)) = pColset if (*TFts5Config)(unsafe.Pointer((*TFts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FeDetail == int32(FTS5_DETAIL_NONE) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36396, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36542, 0) } else { _fts5ParseSetColset(tls, pParse, pExpr, pColset, bp) } @@ -205740,11 +207686,11 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin pPhrase = *(*uintptr)(unsafe.Pointer(pNear + 24)) if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase != int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 0 && (*(*TFts5ExprTerm)(unsafe.Pointer(pPhrase + 32))).FbFirst != 0 { if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase == int32(1) { - v2 = __ccgo_ts + 36449 + v2 = __ccgo_ts + 36595 } else { - v2 = __ccgo_ts + 36362 + v2 = __ccgo_ts + 36508 } - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36456, libc.VaList(bp+8, v2)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36602, libc.VaList(bp+8, v2)) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -205753,7 +207699,7 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin _fts5ExprAddChildren(tls, pRet, pLeft) _fts5ExprAddChildren(tls, pRet, pRight) if (*TFts5ExprNode)(unsafe.Pointer(pRet)).FiHeight > int32(SQLITE_FTS5_MAX_EXPR_DEPTH) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36506, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36652, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -207901,7 +209847,7 @@ func _fts5DataRead(tls *libc.TLS, p uintptr, iRowid Ti64) (r uintptr) { ** to the requested entry. */ if (*TFts5Index)(unsafe.Pointer(p)).FpReader == uintptr(0) && rc == SQLITE_OK { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36559, iRowid, 0, p+72) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36705, iRowid, 0, p+72) } /* If either of the sqlite3_blob_open() or sqlite3_blob_reopen() calls ** above returned SQLITE_ERROR, return SQLITE_CORRUPT_VTAB instead. @@ -207994,7 +209940,7 @@ func _fts5DataWrite(tls *libc.TLS, p uintptr, iRowid Ti64, pData uintptr, nData } if (*TFts5Index)(unsafe.Pointer(p)).FpWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36565, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36711, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return } @@ -208023,7 +209969,7 @@ func _fts5DataDelete(tls *libc.TLS, p uintptr, iFirst Ti64, iLast Ti64) { } if (*TFts5Index)(unsafe.Pointer(p)).FpDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36616, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36762, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if _fts5IndexPrepareStmt(tls, p, p+88, zSql) != 0 { return } @@ -208057,7 +210003,7 @@ func _fts5DataRemoveSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { } if (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36665, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36811, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter, int32(1), iSegid) @@ -208226,7 +210172,7 @@ func _fts5StructureDecode(tls *libc.TLS, pData uintptr, nData int32, piCookie ui } i = int32(4) /* Check if this is a V2 structure record. Set bStructureV2 if it is. */ - if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36705, uint64(4)) { + if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36851, uint64(4)) { i += int32(4) bStructureV2 = int32(1) } @@ -208417,7 +210363,7 @@ func _fts5IndexDataVersion(tls *libc.TLS, p uintptr) (r Ti64) { iVersion = 0 if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*TFts5Index)(unsafe.Pointer(p)).FpDataVersion == uintptr(0) { - (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36710, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) + (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36856, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return 0 } @@ -208501,7 +210447,7 @@ func _fts5StructureWrite(tls *libc.TLS, p uintptr, pStruct uintptr) { _sqlite3Fts5Put32(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, iCookie) (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = int32(4) if (*TFts5Structure)(unsafe.Pointer(pStruct)).FnOriginCntr > uint64(0) { - libc.X__builtin___memcpy_chk(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36705, uint64(4), libc.X__builtin_object_size(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), 0)) + libc.X__builtin___memcpy_chk(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36851, uint64(4), libc.X__builtin_object_size(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), 0)) *(*int32)(unsafe.Pointer(bp + 8)) += int32(4) } *(*int32)(unsafe.Pointer(bp + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), uint64((*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel)) @@ -209451,6 +211397,7 @@ func _fts5SegIterNext_None(tls *libc.TLS, p uintptr, pIter uintptr, pbNewTerm ui } _fts5SegIterLoadNPos(tls, p, pIter) return + goto next_none_eof next_none_eof: ; _fts5DataRelease(tls, (*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf) @@ -209813,6 +211760,7 @@ func _fts5LeafSeek(tls *libc.TLS, p uintptr, bGe int32, pIter uintptr, pTerm uin *(*Tu32)(unsafe.Pointer(bp)) += uint32(_sqlite3Fts5GetVarint32(tls, a+uintptr(*(*Tu32)(unsafe.Pointer(bp))), bp+4)) } } + goto search_failed search_failed: ; if bGe == 0 { @@ -209844,6 +211792,7 @@ search_failed: } } } + goto search_success search_success: ; if int64(*(*Tu32)(unsafe.Pointer(bp)))+int64(*(*Tu32)(unsafe.Pointer(bp + 8))) > int64(n) || *(*Tu32)(unsafe.Pointer(bp + 8)) < uint32(1) { @@ -209873,7 +211822,7 @@ func _fts5IdxSelectStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36733, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36879, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect } @@ -209962,7 +211911,7 @@ func _fts5IdxNextStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36817, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36963, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect } @@ -211048,6 +212997,7 @@ func _fts5IterSetOutputs_Col100(tls *libc.TLS, pIter uintptr, pSeg uintptr) { iPrevOut = iPrev } } + goto setoutputs_col_out setoutputs_col_out: ; (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*TFts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp @@ -211265,6 +213215,7 @@ func _fts5MultiIterNew(tls *libc.TLS, p uintptr, pStruct uintptr, flags int32, p _fts5MultiIterFree(tls, pNew) *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) } + goto fts5MultiIterNew_post_check fts5MultiIterNew_post_check: ; return @@ -211576,7 +213527,7 @@ func _fts5WriteFlushBtree(tls *libc.TLS, p uintptr, pWriter uintptr) { if (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn > 0 { v1 = (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fp } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } z = v1 /* The following was already done in fts5WriteInit(): */ @@ -211931,7 +213882,7 @@ func _fts5WriteInit(tls *libc.TLS, p uintptr, pWriter uintptr, iSegid int32) { _sqlite3Fts5BufferSize(tls, p+60, pWriter+8+8, uint32(nBuffer)) if (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36899, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+37045, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { /* Initialize the 4-byte leaf-page header to 0x00. */ @@ -212421,7 +214372,7 @@ func _fts5SecureDeleteIdxEntry(tls *libc.TLS, p uintptr, iSegid int32, iPgno int defer tls.Free(32) if iPgno != int32(1) { if (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx == uintptr(0) { - _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36956, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+37102, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx, int32(1), iSegid) @@ -213911,7 +215862,7 @@ func _sqlite3Fts5IndexReinit(tls *libc.TLS, p uintptr) (r int32) { if (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FbContentlessDelete != 0 { (*(*TFts5Structure)(unsafe.Pointer(bp))).FnOriginCntr = uint64(1) } - _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1650, 0) + _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1664, 0) _fts5StructureWrite(tls, p, bp) return _fts5IndexReturn(tls, p) } @@ -213938,11 +215889,11 @@ func _sqlite3Fts5IndexOpen(tls *libc.TLS, pConfig uintptr, bCreate int32, pp uin if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Index)(unsafe.Pointer(p)).FpConfig = pConfig (*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit = int32(FTS5_WORK_UNIT) - (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37017, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37163, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl != 0 && bCreate != 0 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+26136, __ccgo_ts+37025, 0, pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+26282, __ccgo_ts+37171, 0, pzErr) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+12141, __ccgo_ts+37060, int32(1), pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+12266, __ccgo_ts+37206, int32(1), pzErr) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5IndexReinit(tls, p) @@ -214476,7 +216427,7 @@ func _fts5SetupTokendataIter(tls *libc.TLS, p uintptr, pToken uintptr, nToken in pNew = _fts5MultiIterAlloc(tls, p, (*TFts5Structure)(unsafe.Pointer(pStruct)).FnSegment) if pSmall != 0 { _sqlite3Fts5BufferSet(tls, p+60, bp, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fn, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+37104) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+37250) } else { _sqlite3Fts5BufferSet(tls, p+60, bp, nToken, pToken) } @@ -214996,7 +216947,7 @@ func _sqlite3Fts5IndexSetCookie(tls *libc.TLS, p uintptr, iNew int32) (r int32) pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig /* Binary representation of iNew */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) _sqlite3Fts5Put32(tls, bp, iNew) - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36559, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36705, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) if rc == SQLITE_OK { Xsqlite3_blob_write(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), bp, int32(4), 0) rc = Xsqlite3_blob_close(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) @@ -215590,7 +217541,7 @@ func _fts5IndexIntegrityCheckSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { if (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst == 0 { return } - _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+37106, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) + _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+37252, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) /* Iterate through the b-tree hierarchy. */ for (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { /* Data for this leaf */ zIdxTerm = Xsqlite3_column_blob(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -215821,7 +217772,7 @@ func _sqlite3Fts5IndexIntegrityCheck(tls *libc.TLS, p uintptr, cksum Tu64, bUseC } else { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = 0 _fts5SegiterPoslist(tls, p, *(*uintptr)(unsafe.Pointer(bp + 16))+104+uintptr((*(*TFts5CResult)(unsafe.Pointer((*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaFirst + 1*4))).FiFirst)*128, uintptr(0), bp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+37192) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+37338) for 0 == _sqlite3Fts5PoslistNext64(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn, bp+40, bp+32) { iCol = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) >> libc.Int32FromInt32(32)) iTokOff = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) & libc.Int64FromInt32(0x7FFFFFFF)) @@ -216409,7 +218360,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) bSeenMatch = 0 bSeenRank = 0 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37197, 0) + (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37343, 0) return int32(SQLITE_ERROR) } idxStr = Xsqlite3_malloc(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint*int32(8)+int32(1)) @@ -216448,7 +218399,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v3 = iIdxStr iIdxStr++ *(*int8)(unsafe.Pointer(idxStr + uintptr(v3))) = int8('M') - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5486, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5550, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) } } @@ -216468,7 +218419,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v6 = int32('G') } *(*int8)(unsafe.Pointer(idxStr + uintptr(v5))) = int8(v6) - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5486, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5550, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) iCons++ v7 = iCons @@ -216906,7 +218857,7 @@ func _fts5NextMethod(tls *libc.TLS, pCursor uintptr) (r int32) { *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_EOF) rc = Xsqlite3_reset(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpStmt) if rc != SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } } else { rc = SQLITE_OK @@ -216933,7 +218884,7 @@ func _fts5PrepareStatement(tls *libc.TLS, ppStmt uintptr, pConfig uintptr, zFmt } else { rc = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } Xsqlite3_free(tls, zSql) } @@ -216968,21 +218919,21 @@ func _fts5CursorFirstSorted(tls *libc.TLS, pTab uintptr, pCsr uintptr, bDesc int ** ** If SQLite a built-in statement cache, this wouldn't be a problem. */ if zRankArgs != 0 { - v1 = __ccgo_ts + 15338 + v1 = __ccgo_ts + 15431 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } if zRankArgs != 0 { v2 = zRankArgs } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } if bDesc != 0 { - v3 = __ccgo_ts + 37236 + v3 = __ccgo_ts + 37382 } else { - v3 = __ccgo_ts + 37241 + v3 = __ccgo_ts + 37387 } - rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+37245, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) + rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+37391, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpSorter = pSorter if rc == SQLITE_OK { (*TFts5FullTable)(unsafe.Pointer(pTab)).FpSortCsr = pCsr @@ -217040,14 +218991,14 @@ func _fts5SpecialMatch(tls *libc.TLS, pTab uintptr, pCsr uintptr, zQuery uintptr n++ } (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan = int32(FTS5_PLAN_SPECIAL) - if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+37300, z, n) { + if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+37446, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = int64(_sqlite3Fts5IndexReads(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)) } else { - if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5829, z, n) { + if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5893, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId } else { /* An unrecognized directive. Return an error message. */ - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37306, libc.VaList(bp+8, n, z)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37452, libc.VaList(bp+8, n, z)) rc = int32(SQLITE_ERROR) } } @@ -217097,7 +219048,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { zRank = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank zRankArgs = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs if zRankArgs != 0 { - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37334, libc.VaList(bp+24, zRankArgs)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37480, libc.VaList(bp+24, zRankArgs)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp+8, uintptr(0)) @@ -217130,7 +219081,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { pAux = _fts5FindAuxiliary(tls, pTab, zRank) if pAux == uintptr(0) { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37344, libc.VaList(bp+24, zRank)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37490, libc.VaList(bp+24, zRank)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -217164,7 +219115,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_FREE_ZRANK) } else { if rc == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37365, libc.VaList(bp+24, z)) + (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37511, libc.VaList(bp+24, z)) } } } else { @@ -217172,7 +219123,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRank (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRankArgs } else { - (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 35297 + (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 35443 (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = uintptr(0) } } @@ -217223,7 +219174,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint iIdxStr = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37197, 0) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37343, 0) return int32(SQLITE_ERROR) } if (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan != 0 { @@ -217245,7 +219196,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint case int32('M'): zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8))) if zText == uintptr(0) { - zText = __ccgo_ts + 1650 + zText = __ccgo_ts + 1664 } iCol = 0 for cond := true; cond; cond = int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) <= int32('9') { @@ -217367,7 +219318,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent == uintptr(0) { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37398, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37544, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) rc = int32(SQLITE_ERROR) } else { /* This is either a full-table scan (ePlan==FTS5_PLAN_SCAN) or a lookup @@ -217391,6 +219342,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } } + goto filter_out filter_out: ; _sqlite3Fts5ExprFree(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -217504,7 +219456,7 @@ func _fts5SeekCursor(tls *libc.TLS, pCsr uintptr, bErrormsg int32) (r int32) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< int32(1) { - v1 = __ccgo_ts + 21264 + v1 = __ccgo_ts + 21396 } else { - v1 = __ccgo_ts + 37676 + v1 = __ccgo_ts + 37822 } - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37688, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37834, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if nArg == int32(1) { @@ -217761,7 +219713,7 @@ func _fts5UpdateMethod(tls *libc.TLS, pVtab uintptr, nArg int32, apVal uintptr, } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && bUpdateOrDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FbSecureDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion == int32(FTS5_CURRENT_VERSION) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+36225, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+36371, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = int32(FTS5_CURRENT_VERSION_SECUREDELETE) } @@ -218557,7 +220509,7 @@ func _fts5ApiCallback(tls *libc.TLS, context uintptr, argc int32, argv uintptr) iCsrId = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) pCsr = _fts5CursorFromCsrid(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal, iCsrId) if pCsr == uintptr(0) || (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan == 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37725, libc.VaList(bp+8, iCsrId)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37871, libc.VaList(bp+8, iCsrId)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } else { @@ -218748,7 +220700,7 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg = uintptr(0) } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 && Xsqlite3_vtab_nochange(tls, pCtx) != 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37746, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37892, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -218990,7 +220942,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr pMod = _fts5LocateTokenizer(tls, pGlobal, v1) if pMod == uintptr(0) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37817, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37963, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) } else { if azArg != 0 { v2 = azArg + 1*8 @@ -219006,7 +220958,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr (*TFts5Config)(unsafe.Pointer(pConfig)).FpTokApi = pMod + 16 if rc != SQLITE_OK { if pzErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37839, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37985, 0) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FePattern = _sqlite3Fts5TokenizerPattern(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pMod)).Fx.FxCreate, (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok) @@ -219061,7 +221013,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { _, _ = pGlobal, ppApi pGlobal = Xsqlite3_user_data(tls, pCtx) _ = nArg - ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37870) + ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+38016) if ppApi != 0 { *(*uintptr)(unsafe.Pointer(ppApi)) = pGlobal } @@ -219075,7 +221027,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { func _fts5SourceIdFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apUnused uintptr) { _ = nArg _ = apUnused - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37883, -int32(1), uintptr(-libc.Int32FromInt32(1))) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+38029, -int32(1), uintptr(-libc.Int32FromInt32(1))) } // C documentation @@ -219104,11 +221056,11 @@ func _fts5ShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName2 = [5]uintptr{ - 0: __ccgo_ts + 37974, - 1: __ccgo_ts + 35486, - 2: __ccgo_ts + 26136, - 3: __ccgo_ts + 36053, - 4: __ccgo_ts + 12141, + 0: __ccgo_ts + 38120, + 1: __ccgo_ts + 35632, + 2: __ccgo_ts + 26282, + 3: __ccgo_ts + 36199, + 4: __ccgo_ts + 12266, } // C documentation @@ -219122,20 +221074,26 @@ func _fts5IntegrityMethod(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zTabnam bp := tls.Alloc(32) defer tls.Free(32) var pTab uintptr - var rc int32 - _, _ = pTab, rc + var rc, v1 int32 + _, _, _ = pTab, rc, v1 pTab = pVtab _ = isQuick rc = _sqlite3Fts5StorageIntegrity(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, 0) if rc&int32(0xff) == int32(SQLITE_CORRUPT) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37981, libc.VaList(bp+8, zSchema, zTabname)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38127, libc.VaList(bp+8, zSchema, zTabname)) + if *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { + v1 = SQLITE_OK + } else { + v1 = int32(SQLITE_NOMEM) + } + rc = v1 } else { if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38027, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38173, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) } } _sqlite3Fts5IndexCloseReader(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex) - return SQLITE_OK + return rc } func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { @@ -219154,7 +221112,7 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateFunction = __ccgo_fp(_fts5CreateAux) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateTokenizer = __ccgo_fp(_fts5CreateTokenizer) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxFindTokenizer = __ccgo_fp(_fts5FindTokenizer) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+38090, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+38236, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) if rc == SQLITE_OK { rc = _sqlite3Fts5IndexInit(tls, db) } @@ -219171,10 +221129,10 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { rc = _sqlite3Fts5VocabInit(tls, pGlobal, db) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+38090, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+38236, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+38095, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+38241, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) } } /* If SQLITE_FTS5_ENABLE_TEST_MI is defined, assume that the file @@ -219277,17 +221235,17 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, ** statements to operate on it. */ if *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(eStmt)*8)) == uintptr(0) { azStmt = [11]uintptr{ - 0: __ccgo_ts + 38110, - 1: __ccgo_ts + 38178, - 2: __ccgo_ts + 38247, - 3: __ccgo_ts + 38280, - 4: __ccgo_ts + 38319, - 5: __ccgo_ts + 38359, - 6: __ccgo_ts + 38398, - 7: __ccgo_ts + 38441, - 8: __ccgo_ts + 38480, - 9: __ccgo_ts + 38524, - 10: __ccgo_ts + 38564, + 0: __ccgo_ts + 38256, + 1: __ccgo_ts + 38324, + 2: __ccgo_ts + 38393, + 3: __ccgo_ts + 38426, + 4: __ccgo_ts + 38465, + 5: __ccgo_ts + 38505, + 6: __ccgo_ts + 38544, + 7: __ccgo_ts + 38587, + 8: __ccgo_ts + 38626, + 9: __ccgo_ts + 38670, + 10: __ccgo_ts + 38710, } pC = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig zSql = uintptr(0) @@ -219324,16 +221282,16 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, } case int32(FTS5_STMT_REPLACE_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v2 = __ccgo_ts + 38587 + v2 = __ccgo_ts + 38733 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName, v2)) case int32(FTS5_STMT_LOOKUP_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v3 = __ccgo_ts + 38590 + v3 = __ccgo_ts + 38736 } else { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, v3, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName)) default: @@ -219352,7 +221310,7 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, (*TFts5Config)(unsafe.Pointer((*TFts5Storage)(unsafe.Pointer(p)).FpConfig)).FbLock-- Xsqlite3_free(tls, zSql) if rc != SQLITE_OK && pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) } } } @@ -219389,12 +221347,12 @@ func _sqlite3Fts5DropAll(tls *libc.TLS, pConfig uintptr) (r int32) { defer tls.Free(64) var rc int32 _ = rc - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38598, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38744, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38702, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38848, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38740, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38886, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } return rc } @@ -219403,7 +221361,7 @@ func _fts5StorageRenameOne(tls *libc.TLS, pConfig uintptr, pRc uintptr, zTail ui bp := tls.Alloc(48) defer tls.Free(48) if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38778, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) + *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38924, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) } } @@ -219415,14 +221373,14 @@ func _sqlite3Fts5StorageRename(tls *libc.TLS, pStorage uintptr, zName uintptr) ( _ = pConfig pConfig = (*TFts5Storage)(unsafe.Pointer(pStorage)).FpConfig *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageSync(tls, pStorage) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+26136, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+12141, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37974, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+26282, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+12266, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+38120, zName) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+36053, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+36199, zName) } if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35486, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35632, zName) } return *(*int32)(unsafe.Pointer(bp)) } @@ -219442,13 +221400,13 @@ func _sqlite3Fts5CreateTable(tls *libc.TLS, pConfig uintptr, zPost uintptr, zDef _, _ = rc, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if bWithout != 0 { - v1 = __ccgo_ts + 30776 + v1 = __ccgo_ts + 30922 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38820, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38966, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38850, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38996, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -219489,36 +221447,36 @@ func _sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCr if zDefn == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38894, 0) + Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+39040, 0) iOff = int32(libc.Xstrlen(tls, zDefn)) i = 0 for { if !(i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } - Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38917, libc.VaList(bp+8, i)) + Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+39063, libc.VaList(bp+8, i)) iOff += int32(libc.Xstrlen(tls, zDefn+uintptr(iOff))) goto _2 _2: ; i++ } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35486, zDefn, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35632, zDefn, 0, pzErr) } Xsqlite3_free(tls, zDefn) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - zCols = __ccgo_ts + 38923 + zCols = __ccgo_ts + 39069 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 { - zCols = __ccgo_ts + 38955 + zCols = __ccgo_ts + 39101 } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+36053, zCols, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+36199, zCols, 0, pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37974, __ccgo_ts+39003, int32(1), pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+38120, __ccgo_ts+39149, int32(1), pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+36225, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+36371, uintptr(0), int32(FTS5_CURRENT_VERSION)) } } if rc != 0 { @@ -219860,9 +221818,9 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig (*TFts5Storage)(unsafe.Pointer(p)).FbTotalsValid = 0 /* Delete the contents of the %_data and %_docsize tables. */ - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39020, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39166, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39070, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39216, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } /* Reinitialize the %_data table. This call creates the initial structure ** and averages records. */ @@ -219870,7 +221828,7 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3Fts5IndexReinit(tls, (*TFts5Storage)(unsafe.Pointer(p)).FpIndex) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+36225, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+36371, uintptr(0), int32(FTS5_CURRENT_VERSION)) } return rc } @@ -220084,7 +222042,7 @@ func _fts5StorageCount(tls *libc.TLS, p uintptr, zSuffix uintptr, pnRow uintptr) var _ /* pCnt at bp+0 */ uintptr _, _, _ = pConfig, rc, zSql pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+39099, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+39245, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -220294,14 +222252,14 @@ func _sqlite3Fts5StorageIntegrity(tls *libc.TLS, p uintptr, iArg int32) (r int32 ** number of rows. */ if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { *(*Ti64)(unsafe.Pointer(bp + 48)) = 0 - rc = _fts5StorageCount(tls, p, __ccgo_ts+35486, bp+48) + rc = _fts5StorageCount(tls, p, __ccgo_ts+35632, bp+48) if rc == SQLITE_OK && *(*Ti64)(unsafe.Pointer(bp + 48)) != (*TFts5Storage)(unsafe.Pointer(p)).FnTotalRow { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<= int32('A') && int32(*(*uint8)(unsafe.Pointer(zCsr))) <= int32('Z') { @@ -221222,6 +223182,7 @@ _5: goto _2 _1: ; + goto tokenize_done tokenize_done: ; if rc == int32(SQLITE_DONE) { @@ -221285,7 +223246,7 @@ func _fts5PorterCreate(tls *libc.TLS, pCtx uintptr, azArg uintptr, nArg int32, p pApi = pCtx rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zBase = __ccgo_ts + 39191 + zBase = __ccgo_ts + 39337 if nArg > 0 { zBase = *(*uintptr)(unsafe.Pointer(azArg)) } @@ -221500,64 +223461,64 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39201, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39347, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39204, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39350, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39209, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39355, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('e'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39214, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39360, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39217, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39363, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('l'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39220, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39366, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39225, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39371, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39230, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39376, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39234, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39380, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39240, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39386, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39245, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39391, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -221566,49 +223527,49 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39249, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39395, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1_and_S_or_T(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39253, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39399, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } } case int32('s'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39256, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39402, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('t'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39260, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39406, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39264, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39410, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39268, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39414, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39272, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39418, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('z'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39276, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39422, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -221625,20 +223586,20 @@ func _fts5PorterStep1B2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39280, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39260, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(2)), 0)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39426, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39406, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(2)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('b'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39283, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39286, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(2)), 0)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39429, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39432, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(2)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39290, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39276, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(2)), 0)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39436, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39422, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(2)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } @@ -221654,75 +223615,75 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39293, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39439, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39260, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39406, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39301, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39447, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39308, uint64(4), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(6)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39454, uint64(4), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(6)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(4) } } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39313, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39459, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39209, uint64(4), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39355, uint64(4), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39318, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39464, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39204, uint64(4), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39350, uint64(4), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } } case int32('e'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39323, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39469, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39276, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39422, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('g'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39328, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39474, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+16255, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+16334, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('l'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39333, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39479, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39286, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(3)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39432, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(3)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39337, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39483, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39201, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39347, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39342, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39488, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39245, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39391, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39348, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39494, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39352, uint64(1), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(3)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39498, uint64(1), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(3)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(1) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39354, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39500, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39268, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39414, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } @@ -221731,48 +223692,48 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39360, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39506, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39276, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39422, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39368, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39514, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39260, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39406, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39374, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39520, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39260, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39406, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } } } case int32('s'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39379, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39525, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39201, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39347, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39385, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39531, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39272, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39418, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39393, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39539, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39401, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39547, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39405, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39551, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39268, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39414, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } @@ -221780,21 +223741,21 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39413, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39559, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39201, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39347, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39419, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39565, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39272, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39418, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39425, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39571, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39286, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(6)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39432, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(6)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(3) } } @@ -221812,48 +223773,48 @@ func _fts5PorterStep3(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39432, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39578, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39217, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39363, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } case int32('s'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39437, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39583, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39442, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39588, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39217, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39363, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39448, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39594, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39217, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39363, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39401, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39547, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39454, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39600, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } case int32('z'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39460, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39606, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39201, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39347, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } @@ -221869,13 +223830,13 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('e'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39466, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39612, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39470, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(3)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39616, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(3)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(2) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39473, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39619, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) ret = int32(1) @@ -221883,7 +223844,7 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39476, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39622, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) ret = int32(1) @@ -221968,6 +223929,7 @@ func _fts5PorterCb(tls *libc.TLS, pCtx uintptr, tflags int32, pToken uintptr, nT *(*int32)(unsafe.Pointer(bp))-- } return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, aBuf, *(*int32)(unsafe.Pointer(bp)), iStart, iEnd) + goto pass_through pass_through: ; return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, pToken, nToken, iStart, iEnd) @@ -222043,14 +224005,14 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p break } zArg = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+int32(1))*8)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39480) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39626) { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || *(*int8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { (*TTrigramTokenizer)(unsafe.Pointer(pNew)).FbFold = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('0')) } } else { - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39173) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39319) { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('2') || *(*int8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { @@ -222324,7 +224286,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { Fx Tfts5_tokenizer }{ 0: { - FzName: __ccgo_ts + 39191, + FzName: __ccgo_ts + 39337, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5UnicodeCreate), FxDelete: __ccgo_fp(_fts5UnicodeDelete), @@ -222332,7 +224294,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 1: { - FzName: __ccgo_ts + 39495, + FzName: __ccgo_ts + 39641, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5AsciiCreate), FxDelete: __ccgo_fp(_fts5AsciiDelete), @@ -222340,7 +224302,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 2: { - FzName: __ccgo_ts + 39501, + FzName: __ccgo_ts + 39647, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5PorterCreate), FxDelete: __ccgo_fp(_fts5PorterDelete), @@ -222348,7 +224310,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 3: { - FzName: __ccgo_ts + 39508, + FzName: __ccgo_ts + 39654, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5TriCreate), FxDelete: __ccgo_fp(_fts5TriDelete), @@ -227882,16 +229844,16 @@ func _fts5VocabTableType(tls *libc.TLS, zType uintptr, pzErr uintptr, peType uin zCopy = _sqlite3Fts5Strndup(tls, bp, zType, -int32(1)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { _sqlite3Fts5Dequote(tls, zCopy) - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39516) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39662) == 0 { *(*int32)(unsafe.Pointer(peType)) = FTS5_VOCAB_COL } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39520) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39666) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_ROW) } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39524) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39670) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_INSTANCE) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39533, libc.VaList(bp+16, zCopy)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39679, libc.VaList(bp+16, zCopy)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -227960,15 +229922,15 @@ func _fts5VocabInitVtab(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg var _ /* rc at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _ = azSchema, bDb, nByte, nDb, nTab, pRet, zDb, zTab, zType, v1, v2, v3 azSchema = [3]uintptr{ - 0: __ccgo_ts + 39567, - 1: __ccgo_ts + 39607, - 2: __ccgo_ts + 39642, + 0: __ccgo_ts + 39713, + 1: __ccgo_ts + 39753, + 2: __ccgo_ts + 39788, } pRet = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+24137, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) + bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+24260, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) if argc != int32(5) && bDb == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39685, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39831, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bDb != 0 { @@ -228138,10 +230100,10 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) zSql = uintptr(0) if (*TFts5VocabTable)(unsafe.Pointer(pTab)).FbBusy != 0 { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39718, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39864, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) return int32(SQLITE_ERROR) } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39749, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39895, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, (*TFts5VocabTable)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), bp+8, uintptr(0)) } @@ -228160,7 +230122,7 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39800, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39946, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } else { @@ -228462,7 +230424,7 @@ func _fts5VocabFilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, zUnuse if pLe != 0 { zCopy = Xsqlite3_value_text(tls, pLe) if zCopy == uintptr(0) { - zCopy = __ccgo_ts + 1650 + zCopy = __ccgo_ts + 1664 } (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm = Xsqlite3_value_bytes(tls, pLe) (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm = Xsqlite3_malloc(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm+int32(1)) @@ -228586,7 +230548,7 @@ func _sqlite3Fts5VocabInit(tls *libc.TLS, pGlobal uintptr, db uintptr) (r int32) var p uintptr _ = p p = pGlobal - return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39826, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) + return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39972, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) } var _fts5Vocab = Tsqlite3_module{ @@ -228639,7 +230601,7 @@ func init() { // /************** End of stmt.c ************************************************/ // /* Return the source-id for this library */ func Xsqlite3_sourceid(tls *libc.TLS) (r uintptr) { - return __ccgo_ts + 39836 + return __ccgo_ts + 39982 } type TAggInfo_col = struct { @@ -228921,11 +230883,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]int8{'3', '.', '4', '5', '.', '3'} +var Xsqlite3_version = [7]int8{'3', '.', '4', '6', '.', '0'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=0\x00COMPILER=clang-15.0.0\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%04d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00(subquery-%u)\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSmaller\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00S\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00hfs\x00ufs\x00afpfs\x00smbfs\x00webdav\x00nfs\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00msdos\x00exfat\x00SQLITE_FORCE_PROXY_LOCKING\x00:auto:\x00fsync\x00/dev/urandom\x00sqliteplocks\x00/\x00dummy\x00break\x00path error (len %d)\x00read error (len %d)\x00create failed (%d)\x00write failed (%d)\x00rename failed (%d)\x00broke stale lock on %s\n\x00failed to break stale lock on %s, %s\n\x00-conch\x00.lock\x00:auto: (not held)\x00unix\x00unix-none\x00unix-dotfile\x00unix-posix\x00unix-flock\x00unix-afp\x00unix-nfs\x00unix-proxy\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00PRAGMA \"%w\".integrity_check(%Q)\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00ceiling\x00floor\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00dylib\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00lock_proxy_file\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00failed to set lock proxy file\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00wrong # of entries in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00RIGHT PART OF \x00USE TEMP B-TREE FOR %sORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00parser stack overflow\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=0\x00COMPILER=clang-15.0.0\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00ceiling\x00floor\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%04d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00%u-ROW VALUES CLAUSE\x00(subquery-%u)\x00unrecognized token: \"%s\"\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSizeBetween\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00S\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00hfs\x00ufs\x00afpfs\x00smbfs\x00webdav\x00nfs\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00msdos\x00exfat\x00SQLITE_FORCE_PROXY_LOCKING\x00:auto:\x00fsync\x00/dev/urandom\x00sqliteplocks\x00/\x00dummy\x00break\x00path error (len %d)\x00read error (len %d)\x00create failed (%d)\x00write failed (%d)\x00rename failed (%d)\x00broke stale lock on %s\n\x00failed to break stale lock on %s, %s\n\x00-conch\x00.lock\x00:auto: (not held)\x00unix\x00unix-none\x00unix-dotfile\x00unix-posix\x00unix-flock\x00unix-afp\x00unix-nfs\x00unix-proxy\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: \"%s\" - should this be a string literal in single-quotes?\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00SCAN %S\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00dylib\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00lock_proxy_file\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00failed to set lock proxy file\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00wrong # of entries in index \x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00LAST TERM OF \x00USE TEMP B-TREE FOR %sORDER BY\x00USE TEMP B-TREE FOR LAST %d TERMS OF ORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00syntax error\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00,\n\x00: \x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00 \x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_pretty\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00" type Sqlite3_int64 = sqlite3_int64 type Sqlite3_mutex_methods = sqlite3_mutex_methods @@ -228935,3 +230897,4 @@ type Sqlite3_index_info = sqlite3_index_info type Sqlite3_module = sqlite3_module type Sqlite3_vtab = sqlite3_vtab type Sqlite3_vtab_cursor = sqlite3_vtab_cursor + diff --git a/vendor/modernc.org/sqlite/lib/sqlite_darwin_arm64.go b/vendor/modernc.org/sqlite/lib/sqlite_darwin_arm64.go index 870ef46f..97211c80 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_darwin_arm64.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_darwin_arm64.go @@ -1,4 +1,4 @@ -// Code generated for darwin/arm64 by 'generator --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -import runtime -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -extended-errors -o sqlite3.go sqlite3.c -I/tmp/libsqlite3/sqlite-amalgamation-3450300/ccgo -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. +// Code generated for darwin/arm64 by 'generator --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -I /Users/jnml/src/modernc.org/builder/.exclude/modernc.org/libz/include/darwin/arm64 -I /Users/jnml/src/modernc.org/builder/.exclude/modernc.org/libtcl8.6/include/darwin/arm64 -extended-errors -o sqlite3.go sqlite3.c -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. //go:build darwin && arm64 // +build darwin,arm64 @@ -10,8 +10,6 @@ import ( "unsafe" "modernc.org/libc" - - "runtime" ) var ( @@ -1440,6 +1438,7 @@ const OPFLG_IN1 = 2 const OPFLG_IN2 = 4 const OPFLG_IN3 = 8 const OPFLG_JUMP = 1 +const OPFLG_JUMP0 = 128 const OPFLG_NCYCLE = 64 const OPFLG_OUT2 = 16 const OPFLG_OUT3 = 32 @@ -1517,7 +1516,7 @@ const OP_IfNotOpen = 25 const OP_IfNotZero = 60 const OP_IfNullRow = 20 const OP_IfPos = 59 -const OP_IfSmaller = 33 +const OP_IfSizeBetween = 33 const OP_IncrVacuum = 62 const OP_Init = 8 const OP_InitCoroutine = 11 @@ -2016,6 +2015,7 @@ const SF_ComplexResult = 262144 const SF_Compound = 256 const SF_Converted = 65536 const SF_CopyCte = 67108864 +const SF_Correlated = 536870912 const SF_DATALESS = 1073741824 const SF_Distinct = 1 const SF_Expanded = 64 @@ -2283,6 +2283,7 @@ const SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT = -1 const SQLITE_DEFAULT_LOOKASIDE = 40 const SQLITE_DEFAULT_MEMSTATUS = 0 const SQLITE_DEFAULT_MMAP_SIZE = 0 +const SQLITE_DEFAULT_OPTIMIZE_LIMIT = 2000 const SQLITE_DEFAULT_PAGE_SIZE = 4096 const SQLITE_DEFAULT_PCACHE_INITSZ = 20 const SQLITE_DEFAULT_PROXYDIR_PERMISSIONS = 493 @@ -2300,6 +2301,7 @@ const SQLITE_DESERIALIZE_READONLY = 4 const SQLITE_DESERIALIZE_RESIZEABLE = 2 const SQLITE_DETACH = 25 const SQLITE_DETERMINISTIC = 2048 +const SQLITE_DIGIT_SEPARATOR = 95 const SQLITE_DIRECTONLY = 524288 const SQLITE_DIRECT_OVERFLOW_READ = 1 const SQLITE_DONE = 101 @@ -2724,7 +2726,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355" +const SQLITE_SOURCE_ID = "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2832,8 +2834,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.45.3" -const SQLITE_VERSION_NUMBER = 3045003 +const SQLITE_VERSION = "3.46.0" +const SQLITE_VERSION_NUMBER = 3046000 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -2986,11 +2988,11 @@ const TF_HasStat1 = 16 const TF_HasStat4 = 8192 const TF_HasStored = 64 const TF_HasVirtual = 32 +const TF_MaybeReanalyze = 256 const TF_NoVisibleRowid = 512 const TF_OOOHidden = 1024 const TF_Readonly = 1 const TF_Shadow = 4096 -const TF_StatsUsed = 256 const TF_Strict = 65536 const TF_WithoutRowid = 128 const TIME_UTC = 1 @@ -3096,7 +3098,7 @@ const TK_ID = 59 const TK_IF = 18 const TK_IF_NULL_ROW = 179 const TK_IGNORE = 63 -const TK_ILLEGAL = 184 +const TK_ILLEGAL = 185 const TK_IMMEDIATE = 8 const TK_IN = 49 const TK_INDEX = 161 @@ -3144,6 +3146,7 @@ const TK_PRAGMA = 70 const TK_PRECEDING = 88 const TK_PRIMARY = 122 const TK_PTR = 112 +const TK_QNUMBER = 183 const TK_QUERY = 3 const TK_RAISE = 71 const TK_RANGE = 89 @@ -3168,7 +3171,7 @@ const TK_SELECT_COLUMN = 178 const TK_SEMI = 1 const TK_SET = 130 const TK_SLASH = 109 -const TK_SPACE = 183 +const TK_SPACE = 184 const TK_SPAN = 181 const TK_STAR = 108 const TK_STRING = 117 @@ -3181,12 +3184,12 @@ const TK_TRANSACTION = 6 const TK_TRIGGER = 77 const TK_TRUEFALSE = 170 const TK_TRUTH = 175 -const TK_UMINUS = 173 +const TK_UMINUS = 174 const TK_UNBOUNDED = 90 const TK_UNION = 134 const TK_UNIQUE = 123 const TK_UPDATE = 129 -const TK_UPLUS = 174 +const TK_UPLUS = 173 const TK_USING = 144 const TK_VACUUM = 78 const TK_VALUES = 139 @@ -3469,31 +3472,37 @@ const XN_ROWID = -1 const XUCRED_VERSION = 0 const X_OK = 1 const X_TLOSS = 0 +const YYDYNSTACK = 1 const YYFALLBACK = 1 +const YYFREE = 0 +const YYGROWABLESTACK = 1 const YYMALLOCARGTYPE = 0 -const YYNOCODE = 319 +const YYNOCODE = 322 const YYNOERRORRECOVERY = 1 -const YYNRULE = 405 -const YYNRULE_WITH_ACTION = 340 -const YYNSTATE = 579 -const YYNTOKEN = 185 +const YYNRULE = 409 +const YYNRULE_WITH_ACTION = 344 +const YYNSTATE = 583 +const YYNTOKEN = 186 const YYPARSEFREENEVERNULL = 1 +const YYREALLOC = 0 const YYSTACKDEPTH = 100 const YYWILDCARD = 101 -const YY_ACCEPT_ACTION = 1244 -const YY_ACTTAB_COUNT = 2100 -const YY_ERROR_ACTION = 1243 -const YY_MAX_REDUCE = 1650 -const YY_MAX_SHIFT = 578 -const YY_MAX_SHIFTREDUCE = 1242 -const YY_MIN_REDUCE = 1246 -const YY_MIN_SHIFTREDUCE = 838 -const YY_NO_ACTION = 1245 -const YY_REDUCE_COUNT = 410 -const YY_REDUCE_MAX = 1753 -const YY_REDUCE_MIN = -271 -const YY_SHIFT_COUNT = 578 -const YY_SHIFT_MAX = 2088 +const YY_ACCEPT_ACTION = 1255 +const YY_ACTTAB_COUNT = 2142 +const YY_ERROR_ACTION = 1254 +const YY_MAX_DSTRCTR = 319 +const YY_MAX_REDUCE = 1665 +const YY_MAX_SHIFT = 582 +const YY_MAX_SHIFTREDUCE = 1253 +const YY_MIN_DSTRCTR = 205 +const YY_MIN_REDUCE = 1257 +const YY_MIN_SHIFTREDUCE = 845 +const YY_NO_ACTION = 1256 +const YY_REDUCE_COUNT = 411 +const YY_REDUCE_MAX = 1798 +const YY_REDUCE_MIN = -275 +const YY_SHIFT_COUNT = 582 +const YY_SHIFT_MAX = 2128 const YY_SHIFT_MIN = 0 const _ACCESS_EXTENDED_MASK = 4193792 const _APPEND_OK = 8192 @@ -4575,6 +4584,9 @@ const fdatasync = 0 const first_valueInvFunc = 0 const first_valueValueFunc = 0 const fts5GetVarint = 0 +const fts5YYDYNSTACK = 0 +const fts5YYFREE = 0 +const fts5YYGROWABLESTACK = 0 const fts5YYMALLOCARGTYPE = 0 const fts5YYNFTS5TOKEN = 16 const fts5YYNOCODE = 27 @@ -4583,13 +4595,16 @@ const fts5YYNRULE = 28 const fts5YYNRULE_WITH_ACTION = 28 const fts5YYNSTATE = 35 const fts5YYPARSEFREENOTNULL = 1 +const fts5YYREALLOC = 0 const fts5YYSTACKDEPTH = 100 const fts5YY_ACCEPT_ACTION = 81 const fts5YY_ACTTAB_COUNT = 105 const fts5YY_ERROR_ACTION = 80 +const fts5YY_MAX_DSTRCTR = 24 const fts5YY_MAX_REDUCE = 110 const fts5YY_MAX_SHIFT = 34 const fts5YY_MAX_SHIFTREDUCE = 79 +const fts5YY_MIN_DSTRCTR = 16 const fts5YY_MIN_REDUCE = 83 const fts5YY_MIN_SHIFTREDUCE = 52 const fts5YY_NO_ACTION = 82 @@ -5017,11 +5032,11 @@ type sqlite3_file1 = Tsqlite3_file1 // ** // ** xLock() upgrades the database file lock. In other words, xLock() moves the // ** database file lock in the direction NONE toward EXCLUSIVE. The argument to -// ** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +// ** xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never // ** SQLITE_LOCK_NONE. If the database file lock is already at or above the // ** requested lock, then the call to xLock() is a no-op. // ** xUnlock() downgrades the database file lock to either SHARED or NONE. -// * If the lock is already at or below the requested lock state, then the call +// ** If the lock is already at or below the requested lock state, then the call // ** to xUnlock() is a no-op. // ** The xCheckReservedLock() method checks whether any database connection, // ** either in this process or in some other process, is holding a RESERVED, @@ -6801,6 +6816,7 @@ type Tsqlite3_changegroup = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -7127,8 +7143,8 @@ type Fts5PhraseIter1 = TFts5PhraseIter1 ** EXTENSION API FUNCTIONS ** ** xUserData(pFts): -** Return a copy of the context pointer the extension function was -** registered with. +** Return a copy of the pUserData pointer passed to the xCreateFunction() +** API when the extension function was registered. ** ** xColumnTotalSize(pFts, iCol, pnToken): ** If parameter iCol is less than zero, set output variable *pnToken @@ -9220,7 +9236,7 @@ type uptr = Tuptr ** 0x00000010 Display sqlite3_index_info xBestIndex calls ** 0x00000020 Range an equality scan metrics ** 0x00000040 IN operator decisions -** 0x00000080 WhereLoop cost adjustements +** 0x00000080 WhereLoop cost adjustments ** 0x00000100 ** 0x00000200 Covering index decisions ** 0x00000400 OR optimization @@ -9732,6 +9748,7 @@ type TParse = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -9951,6 +9968,7 @@ type TSrcItem = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -12227,10 +12245,12 @@ type IdList1 = TIdList1 ** ** Union member validity: ** -** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc -** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy -** u2.pIBIndex fg.isIndexedBy && !fg.isCte -** u2.pCteUse fg.isCte && !fg.isIndexedBy +** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc +** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy +** u1.nRow !fg.isTabFunc && !fg.isIndexedBy +** +** u2.pIBIndex fg.isIndexedBy && !fg.isCte +** u2.pCteUse fg.isCte && !fg.isIndexedBy */ type TSrcItem1 = struct { FpSchema uintptr @@ -12256,6 +12276,7 @@ type TSrcItem1 = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -12659,6 +12680,7 @@ type TParse1 = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -14021,12 +14043,12 @@ var _sqlite3WhereTrace = uint32(0) var _sqlite3OpcodeProperty = [190]uint8{ 4: uint8(0x10), 6: uint8(0x41), - 8: uint8(0x01), + 8: uint8(0x81), 9: uint8(0x01), 10: uint8(0x01), - 11: uint8(0x01), - 12: uint8(0x03), - 13: uint8(0x03), + 11: uint8(0x81), + 12: uint8(0x83), + 13: uint8(0x83), 14: uint8(0x01), 15: uint8(0x01), 16: uint8(0x03), @@ -14034,22 +14056,22 @@ var _sqlite3OpcodeProperty = [190]uint8{ 18: uint8(0x01), 19: uint8(0x12), 20: uint8(0x01), - 21: uint8(0x49), - 22: uint8(0x49), - 23: uint8(0x49), - 24: uint8(0x49), + 21: uint8(0xc9), + 22: uint8(0xc9), + 23: uint8(0xc9), + 24: uint8(0xc9), 25: uint8(0x01), 26: uint8(0x49), 27: uint8(0x49), 28: uint8(0x49), 29: uint8(0x49), - 30: uint8(0x49), + 30: uint8(0xc9), 31: uint8(0x49), - 32: uint8(0x41), + 32: uint8(0xc1), 33: uint8(0x01), 34: uint8(0x41), 35: uint8(0x41), - 36: uint8(0x41), + 36: uint8(0xc1), 37: uint8(0x01), 38: uint8(0x41), 39: uint8(0x41), @@ -14061,7 +14083,7 @@ var _sqlite3OpcodeProperty = [190]uint8{ 45: uint8(0x41), 46: uint8(0x23), 47: uint8(0x0b), - 48: uint8(0x01), + 48: uint8(0x81), 49: uint8(0x01), 50: uint8(0x03), 51: uint8(0x03), @@ -14916,7 +14938,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= int32(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(23890)) + return _sqlite3MisuseError(tls, int32(23961)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -15258,43 +15280,37 @@ const __CLOCK_THREAD_CPUTIME_ID = 16 // ** A structure for holding a single date and time. // */ type TDateTime = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD int8 - FrawS int8 - FvalidYMD int8 - FvalidHMS int8 - FvalidTZ int8 - FtzSet int8 - FisError int8 - FuseSubsec int8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD int8 + FvalidYMD int8 + FvalidHMS int8 + FnFloor int8 + F__ccgo44 uint8 } type DateTime = TDateTime type TDateTime1 = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD int8 - FrawS int8 - FvalidYMD int8 - FvalidHMS int8 - FvalidTZ int8 - FtzSet int8 - FisError int8 - FuseSubsec int8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD int8 + FvalidYMD int8 + FvalidHMS int8 + FnFloor int8 + F__ccgo44 uint8 } type DateTime1 = TDateTime1 @@ -15363,6 +15379,7 @@ func _getDigits(tls *libc.TLS, zDate uintptr, zFormat uintptr, va uintptr) (r in cnt++ zFormat += uintptr(4) } + goto end_getDigits end_getDigits: ; _ = ap @@ -15419,6 +15436,8 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } else { if c == int32('Z') || c == int32('z') { zDate++ + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) goto zulu_time } else { return libc.BoolInt32(c != 0) @@ -15431,12 +15450,12 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } zDate += uintptr(5) (*TDateTime)(unsafe.Pointer(p)).Ftz = sgn * (*(*int32)(unsafe.Pointer(bp + 4)) + *(*int32)(unsafe.Pointer(bp))*int32(60)) + goto zulu_time zulu_time: ; for int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zDate)))])&int32(0x01) != 0 { zDate++ } - (*TDateTime)(unsafe.Pointer(p)).FtzSet = int8(1) return libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zDate))) != 0) } @@ -15453,11 +15472,10 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var ms, rScale float64 - var v1 int32 var _ /* h at bp+0 */ int32 var _ /* m at bp+4 */ int32 var _ /* s at bp+8 */ int32 - _, _, _ = ms, rScale, v1 + _, _ = ms, rScale ms = float64(0) if _getDigits(tls, zDate, __ccgo_ts+1164, libc.VaList(bp+24, bp, bp+4)) != int32(2) { return int32(1) @@ -15483,7 +15501,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 8)) = 0 } (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) (*TDateTime)(unsafe.Pointer(p)).Fh = *(*int32)(unsafe.Pointer(bp)) (*TDateTime)(unsafe.Pointer(p)).Fm = *(*int32)(unsafe.Pointer(bp + 4)) @@ -15491,12 +15509,6 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { if _parseTimezone(tls, zDate, p) != 0 { return int32(1) } - if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { - v1 = int32(1) - } else { - v1 = 0 - } - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = int8(v1) return 0 } @@ -15507,7 +15519,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { // */ func _datetimeError(tls *libc.TLS, p uintptr) { libc.X__builtin___memset_chk(tls, p, 0, uint64(48), libc.X__builtin_object_size(tls, p, 0)) - (*TDateTime)(unsafe.Pointer(p)).FisError = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 1, 0x2) } // C documentation @@ -15533,7 +15545,7 @@ func _computeJD(tls *libc.TLS, p uintptr) { M = int32(1) D = int32(1) } - if Y < -int32(4713) || Y > int32(9999) || (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Y < -int32(4713) || Y > int32(9999) || int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { _datetimeError(tls, p) return } @@ -15549,11 +15561,41 @@ func _computeJD(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) if (*TDateTime)(unsafe.Pointer(p)).FvalidHMS != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) += int64((*TDateTime)(unsafe.Pointer(p)).Fh*int32(3600000)+(*TDateTime)(unsafe.Pointer(p)).Fm*int32(60000)) + int64((*TDateTime)(unsafe.Pointer(p)).Fs*libc.Float64FromInt32(1000)+libc.Float64FromFloat64(0.5)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64((*TDateTime)(unsafe.Pointer(p)).Ftz * int32(60000)) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + } + } +} + +// C documentation +// +// /* +// ** Given the YYYY-MM-DD information current in p, determine if there +// ** is day-of-month overflow and set nFloor to the number of days that +// ** would need to be subtracted from the date in order to bring the +// ** date back to the end of the month. +// */ +func _computeFloor(tls *libc.TLS, p uintptr) { + if (*TDateTime)(unsafe.Pointer(p)).FD <= int32(28) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } else { + if int32(1)<<(*TDateTime)(unsafe.Pointer(p)).FM&int32(0x15aa) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } else { + if (*TDateTime)(unsafe.Pointer(p)).FM != int32(2) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = libc.BoolInt8((*TDateTime)(unsafe.Pointer(p)).FD == libc.Int32FromInt32(31)) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FY%int32(4) != 0 || (*TDateTime)(unsafe.Pointer(p)).FY%int32(100) == 0 && (*TDateTime)(unsafe.Pointer(p)).FY%int32(400) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = int8((*TDateTime)(unsafe.Pointer(p)).FD - int32(28)) + } else { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = int8((*TDateTime)(unsafe.Pointer(p)).FD - int32(29)) + } + } } } } @@ -15612,12 +15654,15 @@ func _parseYyyyMmDd(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FY = v1 (*TDateTime)(unsafe.Pointer(p)).FM = *(*int32)(unsafe.Pointer(bp + 4)) (*TDateTime)(unsafe.Pointer(p)).FD = *(*int32)(unsafe.Pointer(bp + 8)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + _computeFloor(tls, p) + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { _computeJD(tls, p) } return 0 } +/* Forward declaration */ + // C documentation // // /* @@ -15629,6 +15674,9 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) (*TDateTime)(unsafe.Pointer(p)).FiJD = _sqlite3StmtCurrentTime(tls, context) if (*TDateTime)(unsafe.Pointer(p)).FiJD > 0 { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + _clearYMD_HMS_TZ(tls, p) return 0 } else { return int32(1) @@ -15646,7 +15694,7 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) // */ func _setRawDateNumber(tls *libc.TLS, p uintptr, r float64) { (*TDateTime)(unsafe.Pointer(p)).Fs = r - (*TDateTime)(unsafe.Pointer(p)).FrawS = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 0, 0x1) if r >= float64(0) && r < float64(5.3734845e+06) { (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r*libc.Float64FromFloat64(8.64e+07) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) @@ -15689,7 +15737,7 @@ func _parseDateOrTime(tls *libc.TLS, context uintptr, zDate uintptr, p uintptr) return 0 } else { if (_sqlite3StrICmp(tls, zDate, __ccgo_ts+1192) == 0 || _sqlite3StrICmp(tls, zDate, __ccgo_ts+1199) == 0) && _sqlite3NotPureFunc(tls, context) != 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) return _setDateTimeToCurrent(tls, context, p) } } @@ -15781,7 +15829,7 @@ func _computeHMS(tls *libc.TLS, p uintptr) { day_min = day_ms / int32(60000) (*TDateTime)(unsafe.Pointer(p)).Fm = day_min % int32(60) (*TDateTime)(unsafe.Pointer(p)).Fh = day_min / int32(60) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) } @@ -15803,7 +15851,7 @@ func _computeYMD_HMS(tls *libc.TLS, p uintptr) { func _clearYMD_HMS_TZ(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 } /* @@ -15904,9 +15952,9 @@ func _toLocaltime(tls *libc.TLS, p uintptr, pCtx uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = int8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 - (*TDateTime)(unsafe.Pointer(p)).FisError = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 1, 0x2) return SQLITE_OK } @@ -15954,13 +16002,13 @@ var _aXformType = [6]struct { FnName: uint8(5), FzName: [7]int8{'m', 'o', 'n', 't', 'h'}, FrLimit: float32(176546), - FrXform: float32(2.592e+06), + FrXform: float32(libc.Float64FromFloat64(30) * libc.Float64FromFloat64(86400)), }, 5: { FnName: uint8(4), FzName: [7]int8{'y', 'e', 'a', 'r'}, FrLimit: float32(14713), - FrXform: float32(3.1536e+07), + FrXform: float32(libc.Float64FromFloat64(365) * libc.Float64FromFloat64(86400)), }, } @@ -15974,15 +16022,15 @@ var _aXformType = [6]struct { func _autoAdjustDate(tls *libc.TLS, p uintptr) { var r float64 _ = r - if !((*TDateTime)(unsafe.Pointer(p)).FrawS != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + if !(int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } else { if (*TDateTime)(unsafe.Pointer(p)).Fs >= float64(int64(-libc.Int32FromInt32(21086676))*libc.Int64FromInt32(10000)) && (*TDateTime)(unsafe.Pointer(p)).Fs <= float64(libc.Int64FromInt32(25340230)*libc.Int64FromInt32(10000)+libc.Int64FromInt32(799)) { r = (*TDateTime)(unsafe.Pointer(p)).Fs*float64(1000) + float64(2.1086676e+14) _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } } @@ -15999,14 +16047,20 @@ func _autoAdjustDate(tls *libc.TLS, p uintptr) { // ** NNN.NNNN seconds // ** NNN months // ** NNN years +// ** +/-YYYY-MM-DD HH:MM:SS.SSS +// ** ceiling +// ** floor // ** start of month // ** start of year // ** start of week // ** start of day // ** weekday N // ** unixepoch +// ** auto // ** localtime // ** utc +// ** subsec +// ** subsecond // ** // ** Return 0 on success and 1 if there is any kind of error. If the error // ** is in a system call (i.e. localtime()), then an error message is written @@ -16017,12 +16071,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, bp := tls.Alloc(160) defer tls.Free(160) var Z, day Tsqlite3_int64 - var cnt, i, rc, x, y, v12, v2, v5, v7, v9 int32 - var iErr, iGuess, iOrigJD, v1 Ti64 - var rRounder, v10 float64 + var cnt, i, rc, x, y, v1, v10, v13, v3, v6, v8 int32 + var iErr, iGuess, iOrigJD, v2 Ti64 + var rRounder, v11 float64 var z0 int8 var z2 uintptr - var v3, v6 bool + var v4, v7 bool var _ /* D at bp+64 */ int32 var _ /* M at bp+60 */ int32 var _ /* Y at bp+56 */ int32 @@ -16031,7 +16085,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, var _ /* new at bp+8 */ TDateTime var _ /* r at bp+0 */ float64 var _ /* tx at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v12, v2, v3, v5, v6, v7, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v11, v13, v2, v3, v4, v6, v7, v8 rc = int32(1) switch int32(_sqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z)))]) { case int32('a'): @@ -16048,6 +16102,33 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _autoAdjustDate(tls, p) rc = 0 } + case int32('c'): + /* + ** ceiling + ** + ** Resolve day-of-month overflow by rolling forward into the next + ** month. As this is the default action, this modifier is really + ** a no-op that is only included for symmetry. See "floor". + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1237) == 0 { + _computeJD(tls, p) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } + case int32('f'): + /* + ** floor + ** + ** Resolve day-of-month overflow by rolling back to the end of the + ** previous month. + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1245) == 0 { + _computeJD(tls, p) + *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64(int32((*TDateTime)(unsafe.Pointer(p)).FnFloor) * int32(86400000)) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + } case int32('j'): /* ** julianday @@ -16057,13 +16138,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** value in the allowed range of julian day numbers understood by ** SQLite (0..5373484.5) then the result will be NULL. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1237) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1251) == 0 { if idx > int32(1) { return int32(1) } /* IMP: R-31176-64601 */ - if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { rc = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } case int32('l'): @@ -16072,8 +16153,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Assuming the current time value is UTC (a.k.a. GMT), shift it to ** show local time. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1247) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - rc = _toLocaltime(tls, p, pCtx) + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1261) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x10>>4)) != 0 { + v1 = SQLITE_OK + } else { + v1 = _toLocaltime(tls, p, pCtx) + } + rc = v1 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 4, 0x10) } case int32('u'): /* @@ -16082,7 +16170,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Treat the current value of p->s as the number of ** seconds since 1970. Convert to a real julian day number. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1257) == 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1271) == 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { if idx > int32(1) { return int32(1) } /* IMP: R-49255-55373 */ @@ -16091,17 +16179,17 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(*(*float64)(unsafe.Pointer(bp)) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) rc = 0 } } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1267) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - if int32((*TDateTime)(unsafe.Pointer(p)).FtzSet) == 0 { /* Guess at the corresponding utc time */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1281) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x8>>3)) == 0 { /* Guess at the corresponding utc time */ cnt = 0 /* Guess is off by this much */ _computeJD(tls, p) - v1 = (*TDateTime)(unsafe.Pointer(p)).FiJD - iOrigJD = v1 - iGuess = v1 + v2 = (*TDateTime)(unsafe.Pointer(p)).FiJD + iOrigJD = v2 + iGuess = v2 iErr = 0 for { libc.X__builtin___memset_chk(tls, bp+8, 0, uint64(48), libc.X__builtin_object_size(tls, bp+8, 0)) @@ -16114,21 +16202,22 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, bp+8) iErr = (*(*TDateTime)(unsafe.Pointer(bp + 8))).FiJD - iOrigJD - goto _4 - _4: + goto _5 + _5: ; - if v3 = iErr != 0; v3 { - v2 = cnt + if v4 = iErr != 0; v4 { + v3 = cnt cnt++ } - if !(v3 && v2 < int32(3)) { + if !(v4 && v3 < int32(3)) { break } } libc.X__builtin___memset_chk(tls, p, 0, uint64(48), libc.X__builtin_object_size(tls, p, 0)) (*TDateTime)(unsafe.Pointer(p)).FiJD = iGuess (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FtzSet = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) } rc = SQLITE_OK } @@ -16141,13 +16230,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** weekday N where 0==Sunday, 1==Monday, and so forth. If the ** date is already on the appropriate weekday, this is a no-op. */ - if v6 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1271, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v6 { - v5 = int32(*(*float64)(unsafe.Pointer(bp))) - n = v5 + if v7 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1285, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v7 { + v6 = int32(*(*float64)(unsafe.Pointer(bp))) + n = v6 } - if v6 && float64(v5) == *(*float64)(unsafe.Pointer(bp)) { + if v7 && float64(v6) == *(*float64)(unsafe.Pointer(bp)) { _computeYMD_HMS(tls, p) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 _computeJD(tls, p) Z = ((*TDateTime)(unsafe.Pointer(p)).FiJD + int64(129600000)) / int64(86400000) % int64(7) @@ -16171,9 +16260,9 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Show subsecond precision in the output of datetime() and ** unixepoch() and strftime('%s'). */ - if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1280, int32(9)) != 0 { + if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1294, int32(9)) != 0 { if Xsqlite3_stricmp(tls, z, __ccgo_ts+1192) == 0 || Xsqlite3_stricmp(tls, z, __ccgo_ts+1199) == 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) rc = 0 } break @@ -16184,23 +16273,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z += uintptr(9) _computeYMD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) - v7 = libc.Int32FromInt32(0) - (*TDateTime)(unsafe.Pointer(p)).Fm = v7 - (*TDateTime)(unsafe.Pointer(p)).Fh = v7 + v8 = libc.Int32FromInt32(0) + (*TDateTime)(unsafe.Pointer(p)).Fm = v8 + (*TDateTime)(unsafe.Pointer(p)).Fh = v8 (*TDateTime)(unsafe.Pointer(p)).Fs = float64(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1290) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1304) == 0 { (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1296) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1310) == 0 { (*TDateTime)(unsafe.Pointer(p)).FM = int32(1) (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1301) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1315) == 0 { rc = 0 } } @@ -16242,15 +16331,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } if int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) == int32('-') { - if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1305, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1319, libc.VaList(bp+136, bp+56)) == int32(1) { break } - if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1309, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1323, libc.VaList(bp+136, bp+56)) == int32(1) { break } } - goto _8 - _8: + goto _9 + _9: ; n++ } @@ -16266,11 +16355,11 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } /* Must start with +/- */ if n == int32(5) { - if _getDigits(tls, z+1, __ccgo_ts+1313, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1327, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } } else { - if _getDigits(tls, z+1, __ccgo_ts+1325, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1339, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } z++ @@ -16292,13 +16381,14 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, *(*int32)(unsafe.Pointer(p + 12)) += *(*int32)(unsafe.Pointer(bp + 60)) } if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v9 + x = v10 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) _computeJD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 @@ -16342,7 +16432,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z++ } n = _sqlite3Strlen30(tls, z) - if n > int32(10) || n < int32(3) { + if n < int32(3) || n > int32(10) { break } if int32(_sqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z + uintptr(n-int32(1)))))]) == int32('s') { @@ -16350,11 +16440,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, p) if *(*float64)(unsafe.Pointer(bp)) < libc.Float64FromInt32(0) { - v10 = -libc.Float64FromFloat64(0.5) + v11 = -libc.Float64FromFloat64(0.5) } else { - v10 = +libc.Float64FromFloat64(0.5) + v11 = +libc.Float64FromFloat64(0.5) } - rRounder = v10 + rRounder = v11 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 i = 0 for { if !(i < int32(libc.Uint64FromInt64(96)/libc.Uint64FromInt64(16))) { @@ -16366,19 +16457,21 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 12)) += int32(*(*float64)(unsafe.Pointer(bp))) if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v12 + x = v13 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) case int32(5): /* Special processing to add years */ y = int32(*(*float64)(unsafe.Pointer(bp))) _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 8)) += y + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) break @@ -16388,8 +16481,8 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, rc = 0 break } - goto _11 - _11: + goto _12 + _12: ; i++ } @@ -16448,7 +16541,7 @@ func _isDate(tls *libc.TLS, context uintptr, argc int32, argv uintptr, p uintptr i++ } _computeJD(tls, p) - if (*TDateTime)(unsafe.Pointer(p)).FisError != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x2>>1)) != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { return int32(1) } if argc == int32(1) && (*TDateTime)(unsafe.Pointer(p)).FvalidYMD != 0 && (*TDateTime)(unsafe.Pointer(p)).FD > int32(28) { @@ -16495,7 +16588,7 @@ func _unixepochFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _ /* x at bp+0 */ TDateTime if _isDate(tls, context, argc, argv, bp) == 0 { _computeJD(tls, bp) - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { Xsqlite3_result_double(tls, context, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000)) } else { Xsqlite3_result_int64(tls, context, (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/int64(1000)-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000)) @@ -16540,7 +16633,7 @@ func _datetimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(15)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(16)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(17)] = int8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(18)] = int8(int32('0') + s/int32(10000)%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(19)] = int8(int32('0') + s/int32(1000)%int32(10)) @@ -16588,7 +16681,7 @@ func _timeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(3)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(4)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(5)] = int8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(6)] = int8(int32('0') + s/int32(10000)%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(7)] = int8(int32('0') + s/int32(1000)%int32(10)) @@ -16649,6 +16742,57 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } +// C documentation +// +// /* +// ** Compute the number of days after the most recent January 1. +// ** +// ** In other words, compute the zero-based day number for the +// ** current year: +// ** +// ** Jan01 = 0, Jan02 = 1, ..., Jan31 = 30, Feb01 = 31, ... +// ** Dec31 = 364 or 365. +// */ +func _daysAfterJan01(tls *libc.TLS, pDate uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* jan01 at bp+0 */ TDateTime + *(*TDateTime)(unsafe.Pointer(bp)) = *(*TDateTime)(unsafe.Pointer(pDate)) + (*(*TDateTime)(unsafe.Pointer(bp))).FvalidJD = 0 + (*(*TDateTime)(unsafe.Pointer(bp))).FM = int32(1) + (*(*TDateTime)(unsafe.Pointer(bp))).FD = int32(1) + _computeJD(tls, bp) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD - (*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Monday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Monday, 1=Tuesday, 2=Wednesday, ..., 6=Sunday. +// */ +func _daysAfterMonday(tls *libc.TLS, pDate uintptr) (r int32) { + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(43200000))/libc.Int64FromInt32(86400000)) % int32(7) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Sunday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Sunday, 1=Monday, 2=Tues, ..., 6=Saturday +// */ +func _daysAfterSunday(tls *libc.TLS, pDate uintptr) (r int32) { + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)) % int32(7) +} + // C documentation // // /* @@ -16656,33 +16800,48 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { // ** // ** Return a string described by FORMAT. Conversions as follows: // ** -// ** %d day of month +// ** %d day of month 01-31 +// ** %e day of month 1-31 // ** %f ** fractional seconds SS.SSS +// ** %F ISO date. YYYY-MM-DD +// ** %G ISO year corresponding to %V 0000-9999. +// ** %g 2-digit ISO year corresponding to %V 00-99 // ** %H hour 00-24 -// ** %j day of year 000-366 +// ** %k hour 0-24 (leading zero converted to space) +// ** %I hour 01-12 +// ** %j day of year 001-366 // ** %J ** julian day number +// ** %l hour 1-12 (leading zero converted to space) // ** %m month 01-12 // ** %M minute 00-59 +// ** %p "am" or "pm" +// ** %P "AM" or "PM" +// ** %R time as HH:MM // ** %s seconds since 1970-01-01 // ** %S seconds 00-59 -// ** %w day of week 0-6 Sunday==0 -// ** %W week of year 00-53 +// ** %T time as HH:MM:SS +// ** %u day of week 1-7 Monday==1, Sunday==7 +// ** %w day of week 0-6 Sunday==0, Monday==1 +// ** %U week of year 00-53 (First Sunday is start of week 01) +// ** %V week of year 01-53 (First week containing Thursday is week 01) +// ** %W week of year 00-53 (First Monday is start of week 01) // ** %Y year 0000-9999 // ** %% % // */ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { - bp := tls.Alloc(160) - defer tls.Free(160) + bp := tls.Alloc(208) + defer tls.Free(208) var c, cf int8 var db, zFmt, v3, v4, v5, v6, v7 uintptr - var h, nDay, wd int32 + var h int32 var i, j, v2 Tsize_t var iS Ti64 var s float64 var _ /* sRes at bp+48 */ Tsqlite3_str var _ /* x at bp+0 */ TDateTime + var _ /* y at bp+128 */ TDateTime var _ /* y at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, nDay, s, wd, zFmt, v2, v3, v4, v5, v6, v7 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, s, zFmt, v2, v3, v4, v5, v6, v7 if argc == 0 { return } @@ -16715,28 +16874,41 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { fallthrough case int32('e'): if int32(cf) == int32('d') { - v3 = __ccgo_ts + 1337 + v3 = __ccgo_ts + 1351 } else { - v3 = __ccgo_ts + 1342 + v3 = __ccgo_ts + 1356 } - Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) - case int32('f'): + Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('f'): /* Fractional seconds. (Non-standard) */ s = (*(*TDateTime)(unsafe.Pointer(bp))).Fs if s > float64(59.999) { s = float64(59.999) } - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1346, libc.VaList(bp+136, s)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1360, libc.VaList(bp+184, s)) case int32('F'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1353, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1367, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('G'): /* Fall thru */ + fallthrough + case int32('g'): + *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Move y so that it is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidYMD = 0 + _computeYMD(tls, bp+80) + if int32(cf) == int32('g') { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY%int32(100))) + } else { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1382, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY)) + } case int32('H'): fallthrough case int32('k'): if int32(cf) == int32('H') { - v4 = __ccgo_ts + 1337 + v4 = __ccgo_ts + 1351 } else { - v4 = __ccgo_ts + 1342 + v4 = __ccgo_ts + 1356 } - Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) + Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) case int32('I'): /* Fall thru */ fallthrough case int32('l'): @@ -16748,73 +16920,71 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { h = int32(12) } if int32(cf) == int32('I') { - v5 = __ccgo_ts + 1337 - } else { - v5 = __ccgo_ts + 1342 - } - Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+136, h)) - case int32('W'): /* Fall thru */ - fallthrough - case int32('j'): /* Number of days since 1st day of year */ - *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidJD = 0 - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FM = int32(1) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FD = int32(1) - _computeJD(tls, bp+80) - nDay = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) - if int32(cf) == int32('W') { /* 0=Monday, 1=Tuesday, ... 6=Sunday */ - wd = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000) % libc.Int64FromInt32(7)) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1337, libc.VaList(bp+136, (nDay+int32(7)-wd)/int32(7))) + v5 = __ccgo_ts + 1351 } else { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1368, libc.VaList(bp+136, nDay+int32(1))) + v5 = __ccgo_ts + 1356 } - case int32('J'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1373, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) + Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+184, h)) + case int32('j'): /* Day of year. Jan01==1, Jan02==2, and so forth */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1387, libc.VaList(bp+184, _daysAfterJan01(tls, bp)+int32(1))) + case int32('J'): /* Julian day number. (Non-standard) */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1392, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) case int32('m'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1337, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) case int32('M'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1337, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('p'): /* Fall thru */ fallthrough case int32('P'): if (*(*TDateTime)(unsafe.Pointer(bp))).Fh >= int32(12) { if int32(cf) == int32('p') { - v6 = __ccgo_ts + 1379 + v6 = __ccgo_ts + 1398 } else { - v6 = __ccgo_ts + 1382 + v6 = __ccgo_ts + 1401 } Xsqlite3_str_append(tls, bp+48, v6, int32(2)) } else { if int32(cf) == int32('p') { - v7 = __ccgo_ts + 1385 + v7 = __ccgo_ts + 1404 } else { - v7 = __ccgo_ts + 1388 + v7 = __ccgo_ts + 1407 } Xsqlite3_str_append(tls, bp+48, v7, int32(2)) } case int32('R'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1391, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1410, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('s'): - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1401, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1420, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) } else { iS = (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/libc.Int64FromInt32(1000) - libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1406, libc.VaList(bp+136, iS)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1425, libc.VaList(bp+184, iS)) } case int32('S'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1337, libc.VaList(bp+136, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) case int32('T'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1411, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) - case int32('u'): /* Fall thru */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1430, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + case int32('u'): /* Day of week. 1 to 7. Monday==1, Sunday==7 */ fallthrough - case int32('w'): - c = int8(int32(int8(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)%libc.Int64FromInt32(7))) + int32('0')) + case int32('w'): /* Day of week. 0 to 6. Sunday==0, Monday==1 */ + c = int8(int32(int8(_daysAfterSunday(tls, bp))) + int32('0')) if int32(c) == int32('0') && int32(cf) == int32('u') { c = int8('7') } Xsqlite3_str_appendchar(tls, bp+48, int32(1), c) + case int32('U'): /* Week num. 00-53. First Sun of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterSunday(tls, bp)+int32(7))/int32(7))) + case int32('V'): /* Week num. 01-53. First week with a Thur is week 01 */ + *(*TDateTime)(unsafe.Pointer(bp + 128)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Adjust y so that is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FvalidYMD = 0 + _computeYMD(tls, bp+128) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, _daysAfterJan01(tls, bp+128)/int32(7)+int32(1))) + case int32('W'): /* Week num. 00-53. First Mon of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterMonday(tls, bp)+int32(7))/int32(7))) case int32('Y'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1426, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1382, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) case int32('%'): Xsqlite3_str_appendchar(tls, bp+48, int32(1), int8('%')) default: @@ -16967,12 +17137,10 @@ func _timediffFunc(tls *libc.TLS, context uintptr, NotUsed1 int32, argv uintptr) p2 = bp *(*Tsqlite3_int64)(unsafe.Pointer(p2)) = Tsqlite3_int64(uint64(*(*Tsqlite3_int64)(unsafe.Pointer(p2))) + libc.Uint64FromInt32(1486995408)*libc.Uint64FromInt32(100000)) } - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidYMD = 0 - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidHMS = 0 - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidTZ = 0 + _clearYMD_HMS_TZ(tls, bp) _computeYMD_HMS(tls, bp) _sqlite3StrAccumInit(tls, bp+96, uintptr(0), uintptr(0), 0, int32(100)) - Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1431, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) + Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1445, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) _sqlite3ResultStrAccum(tls, context, bp+96) } @@ -17005,55 +17173,55 @@ var _aDateTimeFuncs = [10]TFuncDef{ FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1237, + FzName: __ccgo_ts + 1251, }, 1: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1257, + FzName: __ccgo_ts + 1271, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1465, + FzName: __ccgo_ts + 1479, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1470, + FzName: __ccgo_ts + 1484, }, 4: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1475, + FzName: __ccgo_ts + 1489, }, 5: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1484, + FzName: __ccgo_ts + 1498, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1493, + FzName: __ccgo_ts + 1507, }, 7: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1502, + FzName: __ccgo_ts + 1516, }, 8: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1515, + FzName: __ccgo_ts + 1529, }, 9: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1533, + FzName: __ccgo_ts + 1547, }, } @@ -17724,7 +17892,7 @@ func _sqlite3MemMalloc(tls *libc.TLS, nByte int32) (r uintptr) { *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1546, libc.VaList(bp+8, nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1560, libc.VaList(bp+8, nByte)) } return p } @@ -17786,7 +17954,7 @@ func _sqlite3MemRealloc(tls *libc.TLS, pPrior uintptr, nByte int32) (r uintptr) *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1584, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1598, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) } return p } @@ -19154,7 +19322,7 @@ func _sqlite3OomFault(tls *libc.TLS, db uintptr) (r uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++ (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = uint16(0) if (*Tsqlite3)(unsafe.Pointer(db)).FpParse != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1634, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) pParse = (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).FpOuterParse for { @@ -19576,7 +19744,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li v3 = int32(*(*int8)(unsafe.Pointer(v4))) c = v3 if v3 == 0 { - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1634, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1648, int32(1)) break } /* Find out what flags are present */ @@ -19991,9 +20159,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial != 0 { if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial) == int32(2) { if flag_zeropad != 0 { - v57 = __ccgo_ts + 1636 + v57 = __ccgo_ts + 1650 } else { - v57 = __ccgo_ts + 1641 + v57 = __ccgo_ts + 1655 } bufpt = v57 length = _sqlite3Strlen30(tls, bufpt) @@ -20004,7 +20172,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP = int32(1000) (*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fn = int32(1) } else { - libc.X__builtin___memcpy_chk(tls, bp, __ccgo_ts+1645, uint64(5), libc.X__builtin_object_size(tls, bp, 0)) + libc.X__builtin___memcpy_chk(tls, bp, __ccgo_ts+1659, uint64(5), libc.X__builtin_object_size(tls, bp, 0)) bufpt = bp if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fsign) == int32('-') { /* no-op */ @@ -20026,14 +20194,12 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li prefix = int8(flag_prefix) } exp = (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP - int32(1) - if int32(xtype) == int32(etGENERIC) && precision > 0 { - precision-- - } /* ** If the field type is etGENERIC, then convert to either etEXP ** or etFLOAT, as appropriate. */ if int32(xtype) == int32(etGENERIC) { + precision-- flag_rtz = libc.BoolUint8(!(flag_alternateform != 0)) if exp < -int32(4) || exp > precision { xtype = uint8(etEXP) @@ -20339,7 +20505,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li bufpt = libc.VaUintptr(&ap) } if bufpt == uintptr(0) { - bufpt = __ccgo_ts + 1650 + bufpt = __ccgo_ts + 1664 } else { if int32(xtype) == int32(etDYNSTRING) { if (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnChar == uint32(0) && (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FmxAlloc != 0 && width == 0 && precision < 0 && int32((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FaccError) == 0 { @@ -20392,6 +20558,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } else { length = int32(0x7fffffff) & int32(libc.Xstrlen(tls, bufpt)) } + goto adjust_width_for_utf8 adjust_width_for_utf8: ; if flag_altform2 != 0 && width > 0 { @@ -20426,9 +20593,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li isnull = libc.BoolInt32(escarg == uintptr(0)) if isnull != 0 { if int32(xtype) == int32(etSQLESCAPE2) { - v98 = __ccgo_ts + 1651 + v98 = __ccgo_ts + 1665 } else { - v98 = __ccgo_ts + 1656 + v98 = __ccgo_ts + 1670 } escarg = v98 } @@ -20546,7 +20713,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*TSrcItem)(unsafe.Pointer(pItem)).FzName != 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1663, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1677, int32(1)) } Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzName) } else { @@ -20554,10 +20721,15 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzAlias) } else { pSel = (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect + /* Because of tag-20240424-1 */ if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_NestedFrom) != 0 { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1665, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1679, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) } else { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1675, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_MultiValue) != 0 { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1689, libc.VaList(bp+128, *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pItem)).Fu1)))) + } else { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1710, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + } } } } @@ -20836,7 +21008,7 @@ func _sqlite3ResultStrAccum(tls *libc.TLS, pCtx uintptr, p uintptr) { if int32((*TStrAccum)(unsafe.Pointer(p)).FprintfFlags)&int32(SQLITE_PRINTF_MALLOCED) != 0 { Xsqlite3_result_text(tls, pCtx, (*TStrAccum)(unsafe.Pointer(p)).FzText, int32((*TStrAccum)(unsafe.Pointer(p)).FnChar), __ccgo_fp(_sqlite3OomClear)) } else { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1650, 0, libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1664, 0, libc.UintptrFromInt32(0)) Xsqlite3_str_reset(tls, p) } } @@ -22131,6 +22303,7 @@ func _sqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc Tu8) (r in (*TMem)(unsafe.Pointer(pMem)).Fz = zOut (*TMem)(unsafe.Pointer(pMem)).FzMalloc = (*TMem)(unsafe.Pointer(pMem)).Fz (*TMem)(unsafe.Pointer(pMem)).FszMalloc = _sqlite3DbMallocSize(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).Fz) + goto translate_out translate_out: ; return SQLITE_OK @@ -22667,6 +22840,60 @@ func _sqlite3DequoteExpr(tls *libc.TLS, p uintptr) { _sqlite3Dequote(tls, *(*uintptr)(unsafe.Pointer(p + 8))) } +// C documentation +// +// /* +// ** Expression p is a QNUMBER (quoted number). Dequote the value in p->u.zToken +// ** and set the type to INTEGER or FLOAT. "Quoted" integers or floats are those +// ** that contain '_' characters that must be removed before further processing. +// */ +func _sqlite3DequoteNumber(tls *libc.TLS, pParse uintptr, p uintptr) { + bp := tls.Alloc(32) + defer tls.Free(32) + var bHex int32 + var pIn, pOut, v1, v3 uintptr + var _ /* iValue at bp+0 */ int32 + _, _, _, _, _ = bHex, pIn, pOut, v1, v3 + if p != 0 { + pIn = *(*uintptr)(unsafe.Pointer(p + 8)) + pOut = *(*uintptr)(unsafe.Pointer(p + 8)) + bHex = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(pIn))) == int32('0') && (int32(*(*int8)(unsafe.Pointer(pIn + 1))) == int32('x') || int32(*(*int8)(unsafe.Pointer(pIn + 1))) == int32('X'))) + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + for { + if int32(*(*int8)(unsafe.Pointer(pIn))) != int32('_') { + v3 = pOut + pOut++ + *(*int8)(unsafe.Pointer(v3)) = *(*int8)(unsafe.Pointer(pIn)) + if int32(*(*int8)(unsafe.Pointer(pIn))) == int32('e') || int32(*(*int8)(unsafe.Pointer(pIn))) == int32('E') || int32(*(*int8)(unsafe.Pointer(pIn))) == int32('.') { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_FLOAT) + } + } else { + if bHex == 0 && (!(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1)))))])&libc.Int32FromInt32(0x04) != 0) || !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + 1)))])&libc.Int32FromInt32(0x04) != 0)) || bHex == int32(1) && (!(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1)))))])&libc.Int32FromInt32(0x08) != 0) || !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + 1)))])&libc.Int32FromInt32(0x08) != 0)) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1724, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(p + 8)))) + } + } + goto _2 + _2: + ; + v1 = pIn + pIn++ + if !(*(*int8)(unsafe.Pointer(v1)) != 0) { + break + } + } + if bHex != 0 { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + } + /* tag-20240227-a: If after dequoting, the number is an integer that + ** fits in 32 bits, then it must be converted into EP_IntValue. Other + ** parts of the code expect this. See also tag-20240227-b. */ + if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_INTEGER) && _sqlite3GetInt32(tls, *(*uintptr)(unsafe.Pointer(p + 8)), bp) != 0 { + *(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(p)).Fu)) = *(*int32)(unsafe.Pointer(bp)) + *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(EP_IntValue) + } + } +} + // C documentation // // /* @@ -23026,6 +23253,7 @@ func _sqlite3AtoF(tls *libc.TLS, z uintptr, pResult uintptr, length int32, enc T for z < zEnd && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z)))])&int32(0x01) != 0 { z += uintptr(incr) } + goto do_atof_calc do_atof_calc: ; /* Zero is a special case */ @@ -23131,6 +23359,7 @@ do_atof_calc: if sign < 0 { *(*float64)(unsafe.Pointer(pResult)) = -*(*float64)(unsafe.Pointer(pResult)) } + goto atof_return atof_return: ; /* return true if number and no extra non-whitespace characters after */ @@ -23215,7 +23444,7 @@ func _compare2pow63(tls *libc.TLS, zNum uintptr, incr int32) (r int32) { _, _, _ = c, i, pow63 c = 0 /* 012345678901234567 */ - pow63 = __ccgo_ts + 1689 + pow63 = __ccgo_ts + 1749 i = 0 for { if !(c == 0 && i < int32(18)) { @@ -23442,7 +23671,7 @@ func _sqlite3DecOrHexToI64(tls *libc.TLS, z uintptr, pOut uintptr) (r int32) { } return 0 } else { - n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1708)) + n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1768)) if *(*int8)(unsafe.Pointer(z + uintptr(n))) != 0 { n++ } @@ -23600,7 +23829,7 @@ func _sqlite3FpDecode(tls *libc.TLS, p uintptr, _r float64, iRound int32, mxRoun (*TFpDecode)(unsafe.Pointer(p)).Fsign = int8('+') (*TFpDecode)(unsafe.Pointer(p)).Fn = int32(1) (*TFpDecode)(unsafe.Pointer(p)).FiDP = int32(1) - (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1724 + (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1784 return } else { (*TFpDecode)(unsafe.Pointer(p)).Fsign = int8('+') @@ -24144,7 +24373,7 @@ func _sqlite3HexToBlob(tls *libc.TLS, db uintptr, z uintptr, n int32) (r uintptr func _logBadConnection(tls *libc.TLS, zType uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1726, libc.VaList(bp+8, zType)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1786, libc.VaList(bp+8, zType)) } // C documentation @@ -24167,13 +24396,13 @@ func _sqlite3SafetyCheckOk(tls *libc.TLS, db uintptr) (r int32) { var eOpenState Tu8 _ = eOpenState if db == uintptr(0) { - _logBadConnection(tls, __ccgo_ts+1651) + _logBadConnection(tls, __ccgo_ts+1665) return 0 } eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_OPEN) { if _sqlite3SafetyCheckSickOrOk(tls, db) != 0 { - _logBadConnection(tls, __ccgo_ts+1771) + _logBadConnection(tls, __ccgo_ts+1831) } return 0 } else { @@ -24187,7 +24416,7 @@ func _sqlite3SafetyCheckSickOrOk(tls *libc.TLS, db uintptr) (r int32) { _ = eOpenState eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_SICK) && int32(eOpenState) != int32(SQLITE_STATE_OPEN) && int32(eOpenState) != int32(SQLITE_STATE_BUSY) { - _logBadConnection(tls, __ccgo_ts+1780) + _logBadConnection(tls, __ccgo_ts+1840) return 0 } else { return int32(1) @@ -24891,196 +25120,196 @@ func _sqlite3OpcodeName(tls *libc.TLS, i int32) (r uintptr) { } var _azName = [190]uintptr{ - 0: __ccgo_ts + 1788, - 1: __ccgo_ts + 1798, - 2: __ccgo_ts + 1809, - 3: __ccgo_ts + 1821, - 4: __ccgo_ts + 1832, - 5: __ccgo_ts + 1844, - 6: __ccgo_ts + 1851, - 7: __ccgo_ts + 1859, - 8: __ccgo_ts + 1867, - 9: __ccgo_ts + 1872, - 10: __ccgo_ts + 1877, - 11: __ccgo_ts + 1883, - 12: __ccgo_ts + 1897, - 13: __ccgo_ts + 1903, - 14: __ccgo_ts + 1913, - 15: __ccgo_ts + 1918, - 16: __ccgo_ts + 1923, - 17: __ccgo_ts + 1926, - 18: __ccgo_ts + 1932, - 19: __ccgo_ts + 1939, - 20: __ccgo_ts + 1943, - 21: __ccgo_ts + 1953, - 22: __ccgo_ts + 1960, - 23: __ccgo_ts + 1967, - 24: __ccgo_ts + 1974, - 25: __ccgo_ts + 1981, - 26: __ccgo_ts + 1991, - 27: __ccgo_ts + 2000, - 28: __ccgo_ts + 2011, - 29: __ccgo_ts + 2020, - 30: __ccgo_ts + 2026, - 31: __ccgo_ts + 2036, - 32: __ccgo_ts + 2046, - 33: __ccgo_ts + 2051, - 34: __ccgo_ts + 2061, - 35: __ccgo_ts + 2072, - 36: __ccgo_ts + 2077, - 37: __ccgo_ts + 2084, - 38: __ccgo_ts + 2095, - 39: __ccgo_ts + 2100, - 40: __ccgo_ts + 2105, - 41: __ccgo_ts + 2111, - 42: __ccgo_ts + 2117, - 43: __ccgo_ts + 2123, - 44: __ccgo_ts + 2126, - 45: __ccgo_ts + 2130, - 46: __ccgo_ts + 2136, - 47: __ccgo_ts + 2147, - 48: __ccgo_ts + 2158, - 49: __ccgo_ts + 2166, - 50: __ccgo_ts + 2175, - 51: __ccgo_ts + 2182, - 52: __ccgo_ts + 2190, - 53: __ccgo_ts + 2193, - 54: __ccgo_ts + 2196, - 55: __ccgo_ts + 2199, - 56: __ccgo_ts + 2202, - 57: __ccgo_ts + 2205, - 58: __ccgo_ts + 2208, - 59: __ccgo_ts + 2215, - 60: __ccgo_ts + 2221, - 61: __ccgo_ts + 2231, - 62: __ccgo_ts + 2244, - 63: __ccgo_ts + 2255, - 64: __ccgo_ts + 2261, - 65: __ccgo_ts + 2268, - 66: __ccgo_ts + 2277, - 67: __ccgo_ts + 2286, - 68: __ccgo_ts + 2293, - 69: __ccgo_ts + 2306, - 70: __ccgo_ts + 2317, - 71: __ccgo_ts + 2322, - 72: __ccgo_ts + 2330, - 73: __ccgo_ts + 2336, - 74: __ccgo_ts + 2343, - 75: __ccgo_ts + 2355, - 76: __ccgo_ts + 2360, - 77: __ccgo_ts + 2369, - 78: __ccgo_ts + 2374, - 79: __ccgo_ts + 2383, - 80: __ccgo_ts + 2388, - 81: __ccgo_ts + 2393, - 82: __ccgo_ts + 2399, - 83: __ccgo_ts + 2407, - 84: __ccgo_ts + 2415, - 85: __ccgo_ts + 2425, - 86: __ccgo_ts + 2433, - 87: __ccgo_ts + 2440, - 88: __ccgo_ts + 2453, - 89: __ccgo_ts + 2458, - 90: __ccgo_ts + 2470, - 91: __ccgo_ts + 2478, - 92: __ccgo_ts + 2485, - 93: __ccgo_ts + 2496, - 94: __ccgo_ts + 2503, - 95: __ccgo_ts + 2510, - 96: __ccgo_ts + 2520, - 97: __ccgo_ts + 2529, - 98: __ccgo_ts + 2540, - 99: __ccgo_ts + 2546, - 100: __ccgo_ts + 2557, - 101: __ccgo_ts + 2567, - 102: __ccgo_ts + 2577, - 103: __ccgo_ts + 2584, - 104: __ccgo_ts + 2590, - 105: __ccgo_ts + 2600, - 106: __ccgo_ts + 2611, - 107: __ccgo_ts + 2615, - 108: __ccgo_ts + 2624, - 109: __ccgo_ts + 2633, - 110: __ccgo_ts + 2640, - 111: __ccgo_ts + 2650, - 112: __ccgo_ts + 2657, - 113: __ccgo_ts + 2666, - 114: __ccgo_ts + 2676, - 115: __ccgo_ts + 2683, - 116: __ccgo_ts + 2691, - 117: __ccgo_ts + 2705, - 118: __ccgo_ts + 2713, - 119: __ccgo_ts + 2727, - 120: __ccgo_ts + 2738, - 121: __ccgo_ts + 2751, - 122: __ccgo_ts + 2762, - 123: __ccgo_ts + 2768, - 124: __ccgo_ts + 2780, - 125: __ccgo_ts + 2789, - 126: __ccgo_ts + 2797, - 127: __ccgo_ts + 2806, - 128: __ccgo_ts + 2815, - 129: __ccgo_ts + 2822, - 130: __ccgo_ts + 2830, - 131: __ccgo_ts + 2837, - 132: __ccgo_ts + 2848, - 133: __ccgo_ts + 2862, - 134: __ccgo_ts + 2873, - 135: __ccgo_ts + 2881, - 136: __ccgo_ts + 2887, - 137: __ccgo_ts + 2895, - 138: __ccgo_ts + 2903, - 139: __ccgo_ts + 2913, - 140: __ccgo_ts + 2926, - 141: __ccgo_ts + 2936, - 142: __ccgo_ts + 2949, - 143: __ccgo_ts + 2958, - 144: __ccgo_ts + 2969, - 145: __ccgo_ts + 2977, - 146: __ccgo_ts + 2983, - 147: __ccgo_ts + 2995, - 148: __ccgo_ts + 3007, - 149: __ccgo_ts + 3015, - 150: __ccgo_ts + 3027, - 151: __ccgo_ts + 3040, - 152: __ccgo_ts + 3050, - 153: __ccgo_ts + 3060, - 154: __ccgo_ts + 3065, - 155: __ccgo_ts + 3077, - 156: __ccgo_ts + 3089, - 157: __ccgo_ts + 3099, - 158: __ccgo_ts + 3105, - 159: __ccgo_ts + 3115, - 160: __ccgo_ts + 3122, - 161: __ccgo_ts + 3134, - 162: __ccgo_ts + 3145, - 163: __ccgo_ts + 3153, - 164: __ccgo_ts + 3162, - 165: __ccgo_ts + 3171, - 166: __ccgo_ts + 3180, - 167: __ccgo_ts + 3187, - 168: __ccgo_ts + 3198, - 169: __ccgo_ts + 3211, - 170: __ccgo_ts + 3221, - 171: __ccgo_ts + 3228, - 172: __ccgo_ts + 3236, - 173: __ccgo_ts + 3245, - 174: __ccgo_ts + 3251, - 175: __ccgo_ts + 3258, - 176: __ccgo_ts + 3266, - 177: __ccgo_ts + 3274, - 178: __ccgo_ts + 3282, - 179: __ccgo_ts + 3292, - 180: __ccgo_ts + 3301, - 181: __ccgo_ts + 3312, - 182: __ccgo_ts + 3323, - 183: __ccgo_ts + 3334, - 184: __ccgo_ts + 3344, - 185: __ccgo_ts + 3350, - 186: __ccgo_ts + 3361, - 187: __ccgo_ts + 3372, - 188: __ccgo_ts + 3377, - 189: __ccgo_ts + 3385, + 0: __ccgo_ts + 1848, + 1: __ccgo_ts + 1858, + 2: __ccgo_ts + 1869, + 3: __ccgo_ts + 1881, + 4: __ccgo_ts + 1892, + 5: __ccgo_ts + 1904, + 6: __ccgo_ts + 1911, + 7: __ccgo_ts + 1919, + 8: __ccgo_ts + 1927, + 9: __ccgo_ts + 1932, + 10: __ccgo_ts + 1937, + 11: __ccgo_ts + 1943, + 12: __ccgo_ts + 1957, + 13: __ccgo_ts + 1963, + 14: __ccgo_ts + 1973, + 15: __ccgo_ts + 1978, + 16: __ccgo_ts + 1983, + 17: __ccgo_ts + 1986, + 18: __ccgo_ts + 1992, + 19: __ccgo_ts + 1999, + 20: __ccgo_ts + 2003, + 21: __ccgo_ts + 2013, + 22: __ccgo_ts + 2020, + 23: __ccgo_ts + 2027, + 24: __ccgo_ts + 2034, + 25: __ccgo_ts + 2041, + 26: __ccgo_ts + 2051, + 27: __ccgo_ts + 2060, + 28: __ccgo_ts + 2071, + 29: __ccgo_ts + 2080, + 30: __ccgo_ts + 2086, + 31: __ccgo_ts + 2096, + 32: __ccgo_ts + 2106, + 33: __ccgo_ts + 2111, + 34: __ccgo_ts + 2125, + 35: __ccgo_ts + 2136, + 36: __ccgo_ts + 2141, + 37: __ccgo_ts + 2148, + 38: __ccgo_ts + 2159, + 39: __ccgo_ts + 2164, + 40: __ccgo_ts + 2169, + 41: __ccgo_ts + 2175, + 42: __ccgo_ts + 2181, + 43: __ccgo_ts + 2187, + 44: __ccgo_ts + 2190, + 45: __ccgo_ts + 2194, + 46: __ccgo_ts + 2200, + 47: __ccgo_ts + 2211, + 48: __ccgo_ts + 2222, + 49: __ccgo_ts + 2230, + 50: __ccgo_ts + 2239, + 51: __ccgo_ts + 2246, + 52: __ccgo_ts + 2254, + 53: __ccgo_ts + 2257, + 54: __ccgo_ts + 2260, + 55: __ccgo_ts + 2263, + 56: __ccgo_ts + 2266, + 57: __ccgo_ts + 2269, + 58: __ccgo_ts + 2272, + 59: __ccgo_ts + 2279, + 60: __ccgo_ts + 2285, + 61: __ccgo_ts + 2295, + 62: __ccgo_ts + 2308, + 63: __ccgo_ts + 2319, + 64: __ccgo_ts + 2325, + 65: __ccgo_ts + 2332, + 66: __ccgo_ts + 2341, + 67: __ccgo_ts + 2350, + 68: __ccgo_ts + 2357, + 69: __ccgo_ts + 2370, + 70: __ccgo_ts + 2381, + 71: __ccgo_ts + 2386, + 72: __ccgo_ts + 2394, + 73: __ccgo_ts + 2400, + 74: __ccgo_ts + 2407, + 75: __ccgo_ts + 2419, + 76: __ccgo_ts + 2424, + 77: __ccgo_ts + 2433, + 78: __ccgo_ts + 2438, + 79: __ccgo_ts + 2447, + 80: __ccgo_ts + 2452, + 81: __ccgo_ts + 2457, + 82: __ccgo_ts + 2463, + 83: __ccgo_ts + 2471, + 84: __ccgo_ts + 2479, + 85: __ccgo_ts + 2489, + 86: __ccgo_ts + 2497, + 87: __ccgo_ts + 2504, + 88: __ccgo_ts + 2517, + 89: __ccgo_ts + 2522, + 90: __ccgo_ts + 2534, + 91: __ccgo_ts + 2542, + 92: __ccgo_ts + 2549, + 93: __ccgo_ts + 2560, + 94: __ccgo_ts + 2567, + 95: __ccgo_ts + 2574, + 96: __ccgo_ts + 2584, + 97: __ccgo_ts + 2593, + 98: __ccgo_ts + 2604, + 99: __ccgo_ts + 2610, + 100: __ccgo_ts + 2621, + 101: __ccgo_ts + 2631, + 102: __ccgo_ts + 2641, + 103: __ccgo_ts + 2648, + 104: __ccgo_ts + 2654, + 105: __ccgo_ts + 2664, + 106: __ccgo_ts + 2675, + 107: __ccgo_ts + 2679, + 108: __ccgo_ts + 2688, + 109: __ccgo_ts + 2697, + 110: __ccgo_ts + 2704, + 111: __ccgo_ts + 2714, + 112: __ccgo_ts + 2721, + 113: __ccgo_ts + 2730, + 114: __ccgo_ts + 2740, + 115: __ccgo_ts + 2747, + 116: __ccgo_ts + 2755, + 117: __ccgo_ts + 2769, + 118: __ccgo_ts + 2777, + 119: __ccgo_ts + 2791, + 120: __ccgo_ts + 2802, + 121: __ccgo_ts + 2815, + 122: __ccgo_ts + 2826, + 123: __ccgo_ts + 2832, + 124: __ccgo_ts + 2844, + 125: __ccgo_ts + 2853, + 126: __ccgo_ts + 2861, + 127: __ccgo_ts + 2870, + 128: __ccgo_ts + 2879, + 129: __ccgo_ts + 2886, + 130: __ccgo_ts + 2894, + 131: __ccgo_ts + 2901, + 132: __ccgo_ts + 2912, + 133: __ccgo_ts + 2926, + 134: __ccgo_ts + 2937, + 135: __ccgo_ts + 2945, + 136: __ccgo_ts + 2951, + 137: __ccgo_ts + 2959, + 138: __ccgo_ts + 2967, + 139: __ccgo_ts + 2977, + 140: __ccgo_ts + 2990, + 141: __ccgo_ts + 3000, + 142: __ccgo_ts + 3013, + 143: __ccgo_ts + 3022, + 144: __ccgo_ts + 3033, + 145: __ccgo_ts + 3041, + 146: __ccgo_ts + 3047, + 147: __ccgo_ts + 3059, + 148: __ccgo_ts + 3071, + 149: __ccgo_ts + 3079, + 150: __ccgo_ts + 3091, + 151: __ccgo_ts + 3104, + 152: __ccgo_ts + 3114, + 153: __ccgo_ts + 3124, + 154: __ccgo_ts + 3129, + 155: __ccgo_ts + 3141, + 156: __ccgo_ts + 3153, + 157: __ccgo_ts + 3163, + 158: __ccgo_ts + 3169, + 159: __ccgo_ts + 3179, + 160: __ccgo_ts + 3186, + 161: __ccgo_ts + 3198, + 162: __ccgo_ts + 3209, + 163: __ccgo_ts + 3217, + 164: __ccgo_ts + 3226, + 165: __ccgo_ts + 3235, + 166: __ccgo_ts + 3244, + 167: __ccgo_ts + 3251, + 168: __ccgo_ts + 3262, + 169: __ccgo_ts + 3275, + 170: __ccgo_ts + 3285, + 171: __ccgo_ts + 3292, + 172: __ccgo_ts + 3300, + 173: __ccgo_ts + 3309, + 174: __ccgo_ts + 3315, + 175: __ccgo_ts + 3322, + 176: __ccgo_ts + 3330, + 177: __ccgo_ts + 3338, + 178: __ccgo_ts + 3346, + 179: __ccgo_ts + 3356, + 180: __ccgo_ts + 3365, + 181: __ccgo_ts + 3376, + 182: __ccgo_ts + 3387, + 183: __ccgo_ts + 3398, + 184: __ccgo_ts + 3408, + 185: __ccgo_ts + 3414, + 186: __ccgo_ts + 3425, + 187: __ccgo_ts + 3436, + 188: __ccgo_ts + 3441, + 189: __ccgo_ts + 3449, } type Tu_char = uint8 @@ -26627,91 +26856,91 @@ type unix_syscall = Tunix_syscall // */ var _aSyscall = [29]Tunix_syscall{ 0: { - FzName: __ccgo_ts + 3395, + FzName: __ccgo_ts + 3459, }, 1: { - FzName: __ccgo_ts + 3400, + FzName: __ccgo_ts + 3464, }, 2: { - FzName: __ccgo_ts + 3406, + FzName: __ccgo_ts + 3470, }, 3: { - FzName: __ccgo_ts + 3413, + FzName: __ccgo_ts + 3477, }, 4: { - FzName: __ccgo_ts + 3420, + FzName: __ccgo_ts + 3484, }, 5: { - FzName: __ccgo_ts + 3425, + FzName: __ccgo_ts + 3489, }, 6: { - FzName: __ccgo_ts + 3431, + FzName: __ccgo_ts + 3495, }, 7: { - FzName: __ccgo_ts + 3441, + FzName: __ccgo_ts + 3505, }, 8: { - FzName: __ccgo_ts + 3447, + FzName: __ccgo_ts + 3511, }, 9: { - FzName: __ccgo_ts + 3452, + FzName: __ccgo_ts + 3516, }, 10: { - FzName: __ccgo_ts + 3458, + FzName: __ccgo_ts + 3522, }, 11: { - FzName: __ccgo_ts + 3466, + FzName: __ccgo_ts + 3530, }, 12: { - FzName: __ccgo_ts + 3472, + FzName: __ccgo_ts + 3536, }, 13: { - FzName: __ccgo_ts + 3479, + FzName: __ccgo_ts + 3543, }, 14: { - FzName: __ccgo_ts + 3488, + FzName: __ccgo_ts + 3552, }, 15: { - FzName: __ccgo_ts + 3495, + FzName: __ccgo_ts + 3559, }, 16: { - FzName: __ccgo_ts + 3505, + FzName: __ccgo_ts + 3569, }, 17: { - FzName: __ccgo_ts + 3512, + FzName: __ccgo_ts + 3576, }, 18: { - FzName: __ccgo_ts + 3526, + FzName: __ccgo_ts + 3590, }, 19: { - FzName: __ccgo_ts + 3532, + FzName: __ccgo_ts + 3596, }, 20: { - FzName: __ccgo_ts + 3538, + FzName: __ccgo_ts + 3602, }, 21: { - FzName: __ccgo_ts + 3545, + FzName: __ccgo_ts + 3609, }, 22: { - FzName: __ccgo_ts + 3553, + FzName: __ccgo_ts + 3617, }, 23: { - FzName: __ccgo_ts + 3558, + FzName: __ccgo_ts + 3622, }, 24: { - FzName: __ccgo_ts + 3565, + FzName: __ccgo_ts + 3629, }, 25: { - FzName: __ccgo_ts + 3572, + FzName: __ccgo_ts + 3636, }, 26: { - FzName: __ccgo_ts + 3584, + FzName: __ccgo_ts + 3648, }, 27: { - FzName: __ccgo_ts + 3593, + FzName: __ccgo_ts + 3657, }, 28: { - FzName: __ccgo_ts + 3599, + FzName: __ccgo_ts + 3663, }, } @@ -26948,9 +27177,9 @@ func _robust_open(tls *libc.TLS, z uintptr, f int32, m Tmode_t) (r int32) { (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(16)].FpCurrent})))(tls, z) } (*(*func(*libc.TLS, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(1)].FpCurrent})))(tls, fd) - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3605, libc.VaList(bp+152, z, fd)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3669, libc.VaList(bp+152, z, fd)) fd = -int32(1) - if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3648, O_RDONLY, int32(m)) < 0 { + if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3712, O_RDONLY, int32(m)) < 0 { break } } @@ -27267,11 +27496,11 @@ func _unixLogErrorAtLine(tls *libc.TLS, errcode int32, zFunc uintptr, zPath uint ** equivalent to errno. Otherwise, use strerror_r(). */ /* This is a threadsafe build, but strerror_r() is not available. */ - zErr = __ccgo_ts + 1650 + zErr = __ccgo_ts + 1664 if zPath == uintptr(0) { - zPath = __ccgo_ts + 1650 + zPath = __ccgo_ts + 1664 } - Xsqlite3_log(tls, errcode, __ccgo_ts+3658, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) + Xsqlite3_log(tls, errcode, __ccgo_ts+3722, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) return errcode } @@ -27299,7 +27528,7 @@ func _robust_close(tls *libc.TLS, pFile uintptr, h int32, lineno int32) { } else { v1 = uintptr(0) } - _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(16)< int32(1) { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3744, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3808, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } if _fileHasMoved(tls, pFile) != 0 { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3771, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3835, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } } @@ -27816,6 +28045,7 @@ func _unixLock(tls *libc.TLS, id uintptr, eFileLock int32) (r int32) { (*TunixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock) (*TunixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(eFileLock) } + goto end_lock end_lock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -27974,6 +28204,7 @@ func _posixUnlock(tls *libc.TLS, id uintptr, eFileLock int32, handleNFSUnlock in _closePendingFds(tls, pFile) } } + goto end_unlock end_unlock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -28014,7 +28245,7 @@ func _closeUnixFile(tls *libc.TLS, id uintptr) (r int32) { pFile = id _unixUnmapfile(tls, pFile) if (*TunixFile)(unsafe.Pointer(pFile)).Fh >= 0 { - _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40172)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40505)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -28786,6 +29017,7 @@ func _afpLock(tls *libc.TLS, id uintptr, eFileLock int32) (r int32) { (*TunixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(PENDING_LOCK) } } + goto afp_end_lock afp_end_lock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -29228,7 +29460,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { var _ /* zDirname at bp+0 */ [513]int8 _, _ = fd, ii fd = -int32(1) - Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3799, libc.VaList(bp+528, zFilename)) + Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3863, libc.VaList(bp+528, zFilename)) ii = int32(libc.Xstrlen(tls, bp)) for { if !(ii > 0 && int32((*(*[513]int8)(unsafe.Pointer(bp)))[ii]) != int32('/')) { @@ -29254,7 +29486,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(41778)), __ccgo_ts+3512, bp, int32(41778)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42111)), __ccgo_ts+3576, bp, int32(42111)) } // C documentation @@ -29291,7 +29523,7 @@ func _unixSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { rc = _full_fsync(tls, (*TunixFile)(unsafe.Pointer(pFile)).Fh, isFullsync, isDataOnly) if rc != 0 { _storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__error(tls)))) - return _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(4)<= nSize { iWrite = nSize - int64(1) } - nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1650, int32(1)) + nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1664, int32(1)) if nWrite != int32(1) { return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(3)<= 0 { - _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42583)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42916)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -29901,7 +30133,7 @@ func _unixLockSharedMemory(tls *libc.TLS, pDbFd uintptr, pShmNode uintptr) (r in ** help detect if a -shm file truncation is legitimate or is the work ** or a rogue process. */ if rc == SQLITE_OK && _robust_ftruncate(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(3)) != 0 { - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(18)< iRegion { @@ -30468,7 +30702,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { var pNew, pOrig, pReq, zErr uintptr var v1 Tsqlite3_int64 _, _, _, _, _, _, _, _, _, _ = flags, h, nOrig, nReuse, pNew, pOrig, pReq, szSyspage, zErr, v1 - zErr = __ccgo_ts + 3553 + zErr = __ccgo_ts + 3617 h = (*TunixFile)(unsafe.Pointer(pFd)).Fh /* File descriptor open on db file */ pOrig = (*TunixFile)(unsafe.Pointer(pFd)).FpMapRegion /* Pointer to current file mapping */ nOrig = (*TunixFile)(unsafe.Pointer(pFd)).FmmapSizeActual /* Size of pOrig region in bytes */ @@ -30503,7 +30737,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { if pNew == uintptr(-libc.Int32FromInt32(1)) { pNew = uintptr(0) nNew = 0 - _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43401)) + _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43734)) /* If the mmap() above failed, assume that all subsequent mmap() calls ** will probably fail too. Fall back to using xRead/xWrite exclusively ** in this case. */ @@ -30990,7 +31224,7 @@ func _autolockIoFinderImpl(tls *libc.TLS, filePath uintptr, pNew uintptr) (r uin (*(*Tflock)(unsafe.Pointer(bp + 2168))).Fl_whence = SEEK_SET (*(*Tflock)(unsafe.Pointer(bp + 2168))).Fl_type = int16(F_RDLCK) if (*(*func(*libc.TLS, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(7)].FpCurrent})))(tls, (*TunixFile)(unsafe.Pointer(pNew)).Fh, int32(F_GETLK), libc.VaList(bp+2200, bp+2168)) != -int32(1) { - if libc.Xstrcmp(tls, bp+72, __ccgo_ts+3860) == 0 { + if libc.Xstrcmp(tls, bp+72, __ccgo_ts+3924) == 0 { return uintptr(unsafe.Pointer(&_nfsIoMethods)) } else { return uintptr(unsafe.Pointer(&_posixIoMethods)) @@ -31006,23 +31240,23 @@ var _aMap = [6]struct { FpMethods uintptr }{ 0: { - FzFilesystem: __ccgo_ts + 3833, + FzFilesystem: __ccgo_ts + 3897, FpMethods: uintptr(unsafe.Pointer(&_posixIoMethods)), }, 1: { - FzFilesystem: __ccgo_ts + 3837, + FzFilesystem: __ccgo_ts + 3901, FpMethods: uintptr(unsafe.Pointer(&_posixIoMethods)), }, 2: { - FzFilesystem: __ccgo_ts + 3841, + FzFilesystem: __ccgo_ts + 3905, FpMethods: uintptr(unsafe.Pointer(&_afpIoMethods)), }, 3: { - FzFilesystem: __ccgo_ts + 3847, + FzFilesystem: __ccgo_ts + 3911, FpMethods: uintptr(unsafe.Pointer(&_afpIoMethods)), }, 4: { - FzFilesystem: __ccgo_ts + 3853, + FzFilesystem: __ccgo_ts + 3917, FpMethods: uintptr(unsafe.Pointer(&_nolockIoMethods)), }, 5: {}, @@ -31075,11 +31309,11 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam } else { v1 = uintptr(0) } - if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3864, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { + if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3928, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { p2 = pNew + 30 *(*uint16)(unsafe.Pointer(p2)) = uint16(int32(*(*uint16)(unsafe.Pointer(p2))) | libc.Int32FromInt32(UNIXFILE_PSOW)) } - if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3869) == 0 { + if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3933) == 0 { p3 = pNew + 30 *(*uint16)(unsafe.Pointer(p3)) = uint16(int32(*(*uint16)(unsafe.Pointer(p3))) | libc.Int32FromInt32(UNIXFILE_EXCL)) } @@ -31114,7 +31348,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam ** implicit assumption here is that if fstat() fails, things are in ** such bad shape that dropping a lock or two doesn't matter much. */ - _robust_close(tls, pNew, h, int32(43909)) + _robust_close(tls, pNew, h, int32(44242)) h = -int32(1) } _unixLeaveMutex(tls) @@ -31136,7 +31370,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam rc = _findInodeInfo(tls, pNew, pNew+16) if rc != SQLITE_OK { Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pNew)).FlockingContext) - _robust_close(tls, pNew, h, int32(43935)) + _robust_close(tls, pNew, h, int32(44268)) h = -int32(1) } _unixLeaveMutex(tls) @@ -31148,7 +31382,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam if zLockFile == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3879, libc.VaList(bp+8, zFilename)) + Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3943, libc.VaList(bp+8, zFilename)) } (*TunixFile)(unsafe.Pointer(pNew)).FlockingContext = zLockFile } @@ -31157,7 +31391,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam _storeLastErrno(tls, pNew, 0) if rc != SQLITE_OK { if h >= 0 { - _robust_close(tls, pNew, h, int32(43994)) + _robust_close(tls, pNew, h, int32(44327)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -31172,10 +31406,10 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam // ** Directories to consider for temp files. // */ var _azTempDirs = [6]uintptr{ - 2: __ccgo_ts + 3887, - 3: __ccgo_ts + 3896, - 4: __ccgo_ts + 3905, - 5: __ccgo_ts + 1663, + 2: __ccgo_ts + 3951, + 3: __ccgo_ts + 3960, + 4: __ccgo_ts + 3969, + 5: __ccgo_ts + 1677, } // C documentation @@ -31184,8 +31418,8 @@ var _azTempDirs = [6]uintptr{ // ** Initialize first two members of azTempDirs[] array. // */ func _unixTempFileInit(tls *libc.TLS) { - _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3910) - _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3924) + _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3974) + _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3988) } // C documentation @@ -31247,7 +31481,7 @@ func _unixGetTempname(tls *libc.TLS, nBuf int32, zBuf uintptr) (r int32) { for cond := true; cond; cond = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(2)].FpCurrent})))(tls, zBuf, 0) == 0 { Xsqlite3_randomness(tls, int32(8), bp) *(*int8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2)))) = 0 - Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3931, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) + Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3995, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) if v2 = int32(*(*int8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2))))) != 0; !v2 { v1 = iLimit iLimit++ @@ -31419,7 +31653,7 @@ func _findCreateFileMode(tls *libc.TLS, zPath uintptr, flags int32, pMode uintpt ** filename, check for the "modeof" parameter. If present, interpret ** its value as a filename and try to copy the mode, uid and gid from ** that file. */ - z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3948) + z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+4012) if z != 0 { rc = _getFileMode(tls, z, pMode, pUid, pGid) } @@ -31457,13 +31691,13 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags bp := tls.Alloc(2704) defer tls.Free(2704) var ctrlFlags, eType, fd, isAutoProxy, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, rc, rc2, useProxy int32 - var envforce, p, pUnused, zName uintptr + var envforce, p, pReadonly, pUnused, zName uintptr var _ /* fsInfo at bp+0 */ Tstatfs var _ /* gid at bp+2688 */ Tgid_t var _ /* openMode at bp+2682 */ Tmode_t var _ /* uid at bp+2684 */ Tuid_t var _ /* zTmpname at bp+2168 */ [514]int8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, envforce, fd, isAutoProxy, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pUnused, rc, rc2, useProxy, zName + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, envforce, fd, isAutoProxy, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pReadonly, pUnused, rc, rc2, useProxy, zName p = pFile fd = -int32(1) /* File descriptor returned by open() */ openFlags = 0 /* Flags to pass to open() */ @@ -31559,17 +31793,24 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } else { if *(*int32)(unsafe.Pointer(libc.X__error(tls))) != int32(EISDIR) && isReadWrite != 0 { /* Failed to open the file for read/write access. Try read-only. */ + pReadonly = uintptr(0) flags &= ^(libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE)) openFlags &= ^(libc.Int32FromInt32(O_RDWR) | libc.Int32FromInt32(O_CREAT)) flags |= int32(SQLITE_OPEN_READONLY) openFlags |= O_RDONLY isReadonly = int32(1) - fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 2682))) + pReadonly = _findReusableFd(tls, zName, flags) + if pReadonly != 0 { + fd = (*TUnixUnusedFd)(unsafe.Pointer(pReadonly)).Ffd + Xsqlite3_free(tls, pReadonly) + } else { + fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 2682))) + } } } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44435)), __ccgo_ts+3395, zName, int32(44435)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44775)), __ccgo_ts+3459, zName, int32(44775)) if rc == SQLITE_OK { rc = rc2 } @@ -31605,13 +31846,13 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } if libc.Xfstatfs(tls, fd, bp) == -int32(1) { _storeLastErrno(tls, p, *(*int32)(unsafe.Pointer(libc.X__error(tls)))) - _robust_close(tls, p, fd, int32(44489)) + _robust_close(tls, p, fd, int32(44829)) return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(13)< int32(SQLITE_MAX_SYMLINK) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(44686)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45026)) return } got = (*(*func(*libc.TLS, uintptr, uintptr, Tsize_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls, zIn, bp+144, libc.Uint64FromInt64(1026)-libc.Uint64FromInt32(2)) if got <= 0 || got >= libc.Int64FromInt64(1026)-libc.Int64FromInt32(2) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44691)), __ccgo_ts+3584, zIn, int32(44691)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45031)), __ccgo_ts+3648, zIn, int32(45031)) return } (*(*[1026]int8)(unsafe.Pointer(bp + 144)))[got] = 0 @@ -31882,14 +32124,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if int32(*(*int8)(unsafe.Pointer(zPath))) != int32('/') { if (*(*func(*libc.TLS, uintptr, Tsize_t) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(3)].FpCurrent})))(tls, bp+24, libc.Uint64FromInt64(1026)-libc.Uint64FromInt32(2)) == uintptr(0) { - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44749)), __ccgo_ts+3413, zPath, int32(44749)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45089)), __ccgo_ts+3477, zPath, int32(45089)) } _appendAllPathElements(tls, bp, bp+24) } _appendAllPathElements(tls, bp, zPath) *(*int8)(unsafe.Pointer(zOut + uintptr((*(*TDbPath)(unsafe.Pointer(bp))).FnUsed))) = 0 if (*(*TDbPath)(unsafe.Pointer(bp))).Frc != 0 || (*(*TDbPath)(unsafe.Pointer(bp))).FnUsed < int32(2) { - return _sqlite3CantopenError(tls, int32(44755)) + return _sqlite3CantopenError(tls, int32(45095)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)< uint64(PATH_MAX) || pathLen < uint64(6) || libc.Xstrlcpy(tls, bp+uintptr(pathLen-uint64(5)), __ccgo_ts+4041, uint64(6)) != uint64(5) { - Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4047, libc.VaList(bp+2144, int32(pathLen))) + if pathLen > uint64(PATH_MAX) || pathLen < uint64(6) || libc.Xstrlcpy(tls, bp+uintptr(pathLen-uint64(5)), __ccgo_ts+4105, uint64(6)) != uint64(5) { + Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4111, libc.VaList(bp+2144, int32(pathLen))) goto end_breaklock } /* read the conch content */ readLen = uint64((*(*func(*libc.TLS, int32, uintptr, Tsize_t, Toff_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(9)].FpCurrent})))(tls, (*TunixFile)(unsafe.Pointer(conchFile)).Fh, bp+1024, uint64(libc.Int32FromInt32(PROXY_HEADERLEN)+libc.Int32FromInt32(PROXY_HOSTIDLEN)+libc.Int32FromInt32(PATH_MAX)), 0)) if readLen < uint64(libc.Int32FromInt32(PROXY_HEADERLEN)+libc.Int32FromInt32(PROXY_HOSTIDLEN)) { - Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4067, libc.VaList(bp+2144, int32(readLen))) + Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4131, libc.VaList(bp+2144, int32(readLen))) goto end_breaklock } /* write it out to the temporary break file */ fd = _robust_open(tls, bp, libc.Int32FromInt32(O_RDWR)|libc.Int32FromInt32(O_CREAT)|libc.Int32FromInt32(O_EXCL)|libc.Int32FromInt32(O_NOFOLLOW), uint16(0)) if fd < 0 { - Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4087, libc.VaList(bp+2144, *(*int32)(unsafe.Pointer(libc.X__error(tls))))) + Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4151, libc.VaList(bp+2144, *(*int32)(unsafe.Pointer(libc.X__error(tls))))) goto end_breaklock } if (*(*func(*libc.TLS, int32, uintptr, Tsize_t, Toff_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(12)].FpCurrent})))(tls, fd, bp+1024, readLen, 0) != int64(readLen) { - Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4106, libc.VaList(bp+2144, *(*int32)(unsafe.Pointer(libc.X__error(tls))))) + Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4170, libc.VaList(bp+2144, *(*int32)(unsafe.Pointer(libc.X__error(tls))))) goto end_breaklock } if libc.Xrename(tls, bp, cPath) != 0 { - Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4124, libc.VaList(bp+2144, *(*int32)(unsafe.Pointer(libc.X__error(tls))))) + Xsqlite3_snprintf(tls, int32(64), bp+2065, __ccgo_ts+4188, libc.VaList(bp+2144, *(*int32)(unsafe.Pointer(libc.X__error(tls))))) goto end_breaklock } rc = 0 - libc.Xfprintf(tls, libc.X__stderrp, __ccgo_ts+4143, libc.VaList(bp+2144, cPath)) - _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(conchFile)).Fh, int32(45418)) + libc.Xfprintf(tls, libc.X__stderrp, __ccgo_ts+4207, libc.VaList(bp+2144, cPath)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(conchFile)).Fh, int32(45758)) (*TunixFile)(unsafe.Pointer(conchFile)).Fh = fd (*TunixFile)(unsafe.Pointer(conchFile)).FopenFlags = libc.Int32FromInt32(O_RDWR) | libc.Int32FromInt32(O_CREAT) + goto end_breaklock end_breaklock: ; if rc != 0 { if fd >= 0 { (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(16)].FpCurrent})))(tls, bp) - _robust_close(tls, pFile, fd, int32(45426)) + _robust_close(tls, pFile, fd, int32(45766)) } - libc.Xfprintf(tls, libc.X__stderrp, __ccgo_ts+4167, libc.VaList(bp+2144, cPath, bp+2065)) + libc.Xfprintf(tls, libc.X__stderrp, __ccgo_ts+4231, libc.VaList(bp+2144, cPath, bp+2065)) } return rc } @@ -32765,18 +33009,19 @@ func _proxyTakeConch(tls *libc.TLS, pFile uintptr) (r int32) { } } (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*TunixFile)(unsafe.Pointer(conchFile)).FpMethod)).FxUnlock})))(tls, conchFile, int32(SHARED_LOCK)) + goto end_takeconch end_takeconch: ; if rc == SQLITE_OK && (*TunixFile)(unsafe.Pointer(pFile)).FopenFlags != 0 { if (*TunixFile)(unsafe.Pointer(pFile)).Fh >= 0 { - _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(45679)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(46019)) } (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) fd = _robust_open(tls, (*TproxyLockingContext)(unsafe.Pointer(pCtx)).FdbPath, (*TunixFile)(unsafe.Pointer(pFile)).FopenFlags, uint16(0)) if fd >= 0 { (*TunixFile)(unsafe.Pointer(pFile)).Fh = fd } else { - rc = _sqlite3CantopenError(tls, int32(45687)) /* SQLITE_BUSY? proxyTakeConch called + rc = _sqlite3CantopenError(tls, int32(46027)) /* SQLITE_BUSY? proxyTakeConch called during locking */ } } @@ -32899,7 +33144,7 @@ func _proxyCreateConchPathname(tls *libc.TLS, dbPath uintptr, pConchPath uintptr i++ } /* append the "-conch" suffix to the file */ - libc.X__builtin___memcpy_chk(tls, conchPath+uintptr(i+int32(1)), __ccgo_ts+4205, uint64(7), libc.X__builtin_object_size(tls, conchPath+uintptr(i+int32(1)), 0)) + libc.X__builtin___memcpy_chk(tls, conchPath+uintptr(i+int32(1)), __ccgo_ts+4269, uint64(7), libc.X__builtin_object_size(tls, conchPath+uintptr(i+int32(1)), 0)) return SQLITE_OK } @@ -32919,7 +33164,7 @@ func _switchLockProxyPath(tls *libc.TLS, pFile uintptr, path uintptr) (r int32) return int32(SQLITE_BUSY) } /* nothing to do if the path is NULL, :auto: or matches the existing path */ - if !(path != 0) || int32(*(*int8)(unsafe.Pointer(path))) == int32('\000') || !(libc.Xstrcmp(tls, path, __ccgo_ts+3994) != 0) || oldPath != 0 && !(libc.Xstrncmp(tls, oldPath, path, uint64(PATH_MAX)) != 0) { + if !(path != 0) || int32(*(*int8)(unsafe.Pointer(path))) == int32('\000') || !(libc.Xstrcmp(tls, path, __ccgo_ts+4058) != 0) || oldPath != 0 && !(libc.Xstrncmp(tls, oldPath, path, uint64(PATH_MAX)) != 0) { return SQLITE_OK } else { lockProxy = (*TproxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxy @@ -32958,7 +33203,7 @@ func _proxyGetDbPathForUnixFile(tls *libc.TLS, pFile uintptr, dbPath uintptr) (r if (*TunixFile)(unsafe.Pointer(pFile)).FpMethod == uintptr(unsafe.Pointer(&_dotlockIoMethods)) { /* dot lock style uses the locking context to store the dot lock ** file path */ - len1 = int32(libc.Xstrlen(tls, (*TunixFile)(unsafe.Pointer(pFile)).FlockingContext) - libc.Xstrlen(tls, __ccgo_ts+4212)) + len1 = int32(libc.Xstrlen(tls, (*TunixFile)(unsafe.Pointer(pFile)).FlockingContext) - libc.Xstrlen(tls, __ccgo_ts+4276)) libc.X__builtin___memcpy_chk(tls, dbPath, (*TunixFile)(unsafe.Pointer(pFile)).FlockingContext, uint64(len1+int32(1)), libc.X__builtin_object_size(tls, dbPath, 0)) } else { /* all other styles use the locking context to store the db file path */ @@ -32993,7 +33238,7 @@ func _proxyTransformUnixFile(tls *libc.TLS, pFile uintptr, path uintptr) (r int3 return int32(SQLITE_BUSY) } _proxyGetDbPathForUnixFile(tls, pFile, bp) - if !(path != 0) || int32(*(*int8)(unsafe.Pointer(path))) == int32('\000') || !(libc.Xstrcmp(tls, path, __ccgo_ts+3994) != 0) { + if !(path != 0) || int32(*(*int8)(unsafe.Pointer(path))) == int32('\000') || !(libc.Xstrcmp(tls, path, __ccgo_ts+4058) != 0) { lockPath = libc.UintptrFromInt32(0) } else { lockPath = path @@ -33068,7 +33313,7 @@ func _proxyFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r int if (*TproxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath != 0 { *(*uintptr)(unsafe.Pointer(pArg)) = (*TproxyLockingContext)(unsafe.Pointer(pCtx)).FlockProxyPath } else { - *(*uintptr)(unsafe.Pointer(pArg)) = __ccgo_ts + 4218 + *(*uintptr)(unsafe.Pointer(pArg)) = __ccgo_ts + 4282 } } else { *(*uintptr)(unsafe.Pointer(pArg)) = libc.UintptrFromInt32(0) @@ -33093,7 +33338,7 @@ func _proxyFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r int proxyPath = pArg if isProxyStyle != 0 { pCtx1 = (*TunixFile)(unsafe.Pointer(pFile1)).FlockingContext - if !(libc.Xstrcmp(tls, pArg, __ccgo_ts+3994) != 0) || (*TproxyLockingContext)(unsafe.Pointer(pCtx1)).FlockProxyPath != 0 && !(libc.Xstrncmp(tls, (*TproxyLockingContext)(unsafe.Pointer(pCtx1)).FlockProxyPath, proxyPath, uint64(PATH_MAX)) != 0) { + if !(libc.Xstrcmp(tls, pArg, __ccgo_ts+4058) != 0) || (*TproxyLockingContext)(unsafe.Pointer(pCtx1)).FlockProxyPath != 0 && !(libc.Xstrncmp(tls, (*TproxyLockingContext)(unsafe.Pointer(pCtx1)).FlockProxyPath, proxyPath, uint64(PATH_MAX)) != 0) { rc = SQLITE_OK } else { rc = _switchLockProxyPath(tls, pFile1, proxyPath) @@ -33362,55 +33607,55 @@ var _aVfs = [9]Tsqlite3_vfs{ FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 4236, + FzName: __ccgo_ts + 4300, }, 1: { FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 4241, + FzName: __ccgo_ts + 4305, }, 2: { FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 4251, + FzName: __ccgo_ts + 4315, }, 3: { FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 3869, + FzName: __ccgo_ts + 3933, }, 4: { FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 4264, + FzName: __ccgo_ts + 4328, }, 5: { FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 4275, + FzName: __ccgo_ts + 4339, }, 6: { FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 4286, + FzName: __ccgo_ts + 4350, }, 7: { FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 4295, + FzName: __ccgo_ts + 4359, }, 8: { FiVersion: int32(3), FszOsFile: int32(128), FmxPathname: int32(MAX_PATHNAME), - FzName: __ccgo_ts + 4304, + FzName: __ccgo_ts + 4368, }, } @@ -33774,7 +34019,7 @@ var _memdb_g TMemFS var _memdb_vfs = Tsqlite3_vfs{ FiVersion: int32(2), FmxPathname: int32(1024), - FzName: __ccgo_ts + 4315, + FzName: __ccgo_ts + 4379, } func init() { @@ -34120,7 +34365,7 @@ func _memdbFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r rc = int32(SQLITE_NOTFOUND) _memdbEnter(tls, p) if op == int32(SQLITE_FCNTL_VFSNAME) { - *(*uintptr)(unsafe.Pointer(pArg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4321, libc.VaList(bp+8, (*TMemStore)(unsafe.Pointer(p)).FaData, (*TMemStore)(unsafe.Pointer(p)).Fsz)) + *(*uintptr)(unsafe.Pointer(pArg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4385, libc.VaList(bp+8, (*TMemStore)(unsafe.Pointer(p)).FaData, (*TMemStore)(unsafe.Pointer(p)).Fsz)) rc = SQLITE_OK } if op == int32(SQLITE_FCNTL_SIZE_LIMIT) { @@ -34295,7 +34540,7 @@ func _memdbFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, bp := tls.Alloc(16) defer tls.Free(16) _ = pVfs - Xsqlite3_snprintf(tls, nOut, zOut, __ccgo_ts+3799, libc.VaList(bp+8, zPath)) + Xsqlite3_snprintf(tls, nOut, zOut, __ccgo_ts+3863, libc.VaList(bp+8, zPath)) return SQLITE_OK } @@ -34442,7 +34687,7 @@ func Xsqlite3_serialize(tls *libc.TLS, db uintptr, zSchema uintptr, piSize uintp return uintptr(0) } szPage = _sqlite3BtreeGetPageSize(tls, pBt) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+4336, libc.VaList(bp+24, zSchema)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+4400, libc.VaList(bp+24, zSchema)) if zSql != 0 { v1 = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), bp, uintptr(0)) } else { @@ -34460,7 +34705,7 @@ func Xsqlite3_serialize(tls *libc.TLS, db uintptr, zSchema uintptr, piSize uintp sz = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) * int64(szPage) if sz == 0 { Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp))) - Xsqlite3_exec(tls, db, __ccgo_ts+4359, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+4423, uintptr(0), uintptr(0), uintptr(0)) rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) if rc == int32(SQLITE_ROW) { sz = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) * int64(szPage) @@ -34523,7 +34768,7 @@ func Xsqlite3_deserialize(tls *libc.TLS, db uintptr, zSchema uintptr, pData uint rc = int32(SQLITE_ERROR) goto end_deserialize } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+4384, libc.VaList(bp+16, zSchema)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+4448, libc.VaList(bp+16, zSchema)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -34557,6 +34802,7 @@ func Xsqlite3_deserialize(tls *libc.TLS, db uintptr, zSchema uintptr, pData uint (*TMemStore)(unsafe.Pointer(pStore)).FmFlags = mFlags rc = SQLITE_OK } + goto end_deserialize end_deserialize: ; Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -34825,6 +35071,7 @@ func _sqlite3BitvecSet(tls *libc.TLS, p uintptr, i Tu32) (r int32) { /* we didn't find it in the hash. h points to the first */ /* available free spot. check to see if this is going to */ /* make our hash too "full". */ + goto bitvec_set_rehash bitvec_set_rehash: ; if uint64((*TBitvec)(unsafe.Pointer(p)).FnSet) >= (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4)/libc.Uint64FromInt32(2) { @@ -34853,6 +35100,7 @@ bitvec_set_rehash: return rc } } + goto bitvec_set_end bitvec_set_end: ; (*TBitvec)(unsafe.Pointer(p)).FnSet++ @@ -35085,6 +35333,7 @@ func _sqlite3BitvecBuiltinTest(tls *libc.TLS, sz int32, aOp uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp))++ } /* Free allocated structure */ + goto bitvec_end bitvec_end: ; Xsqlite3_free(tls, pTmpSpace) @@ -36324,7 +36573,7 @@ func _sqlite3PCacheBufferSetup(tls *libc.TLS, pBuf uintptr, sz int32, n int32) { var p uintptr var v1, v2, v3, v4 int32 _, _, _, _, _ = p, v1, v2, v3, v4 - if _pcache1_g.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80) != 0 { if pBuf == uintptr(0) { v1 = libc.Int32FromInt32(0) n = v1 @@ -36845,7 +37094,7 @@ func _pcache1Init(tls *libc.TLS, NotUsed uintptr) (r int32) { _pcache1_g.FnInitPage = 0 } _pcache1_g.Fgrp.FmxPinned = uint32(10) - _pcache1_g.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80, int32(1)) return SQLITE_OK } @@ -40342,6 +40591,7 @@ func _pager_delsuper(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) { } _sqlite3OsClose(tls, pSuper) rc = _sqlite3OsDelete(tls, pVfs, zSuper, 0) + goto delsuper_out delsuper_out: ; Xsqlite3_free(tls, zFree) @@ -40669,6 +40919,7 @@ func _pager_playback(tls *libc.TLS, pPager uintptr, isHot int32) (r int32) { } } /*NOTREACHED*/ + goto end_playback end_playback: ; if rc == SQLITE_OK { @@ -40711,7 +40962,7 @@ end_playback: rc = _pager_delsuper(tls, pPager, zSuper) } if isHot != 0 && nPlayback != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(2)< int64(1) { _sqlite3PagerUnrefNotNull(tls, pPgOld) - return _sqlite3CorruptError(tls, int32(63973)) + return _sqlite3CorruptError(tls, int32(64313)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | int32((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -44814,7 +45069,7 @@ func _sqlite3PagerCheckpoint(tls *libc.TLS, pPager uintptr, db uintptr, eMode in ** sqlite3_wal_checkpoint() call, but it happens very rarely. ** https://sqlite.org/forum/forumpost/fd0f19d229156939 */ - Xsqlite3_exec(tls, db, __ccgo_ts+4457, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+4521, uintptr(0), uintptr(0), uintptr(0)) } if (*TPager)(unsafe.Pointer(pPager)).FpWal != 0 { if eMode == SQLITE_CHECKPOINT_PASSIVE { @@ -46255,7 +46510,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(65899)) + return _sqlite3CorruptError(tls, int32(66239)) } goto _1 _1: @@ -46343,7 +46598,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { ** are able to understand */ version = _sqlite3Get4byte(tls, bp+8+4) if version != uint32(WAL_MAX_VERSION) { - rc = _sqlite3CantopenError(tls, int32(66031)) + rc = _sqlite3CantopenError(tls, int32(66371)) goto finished } /* Malloc a buffer to read frames into. */ @@ -46438,6 +46693,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { } Xsqlite3_free(tls, aFrame) } + goto finished finished: ; if rc == SQLITE_OK { @@ -46481,9 +46737,10 @@ finished: ** checkpointing the log file. */ if (*TWal)(unsafe.Pointer(pWal)).Fhdr.FnPage != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(1)< int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(71032)) + rc = _sqlite3CorruptError(tls, int32(71421)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } @@ -51037,7 +51303,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, } /* The super-journal page number must never be used as a pointer map page */ if key == uint32(0) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71230)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71619)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -51050,12 +51316,12 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, /* The first byte of the extra data is the MemPage.isInit byte. ** If that byte is set, it means this page is also being used ** as a btree page. */ - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71243)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71632)) goto ptrmap_exit } offset = int32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71248)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71637)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -51068,6 +51334,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _sqlite3Put4byte(tls, pPtrmap+uintptr(offset+int32(1)), parent) } } + goto ptrmap_exit ptrmap_exit: ; _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -51098,7 +51365,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = int32(libc.Uint32FromInt32(5) * (key - uint32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(71293)) + return _sqlite3CorruptError(tls, int32(71682)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -51106,7 +51373,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if int32(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || int32(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(71301)) + return _sqlite3CorruptError(tls, int32(71690)) } return SQLITE_OK } @@ -51526,7 +51793,7 @@ func _ptrmapPutOvflPtr(tls *libc.TLS, pPage uintptr, pSrc uintptr, pCell uintptr (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if uint64(pCell) < uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) && uint64(pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal)) > uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71741)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72130)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(int32((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -51566,12 +51833,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71799)) + return _sqlite3CorruptError(tls, int32(72188)) } if iFree != 0 { iFree2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71802)) + return _sqlite3CorruptError(tls, int32(72191)) } if 0 == iFree2 || int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -51579,21 +51846,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(71810)) + return _sqlite3CorruptError(tls, int32(72199)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(71813)) + return _sqlite3CorruptError(tls, int32(72202)) } sz2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(71815)) + return _sqlite3CorruptError(tls, int32(72204)) } libc.X__builtin___memmove_chk(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), uint64(iFree2-(iFree+sz)), libc.X__builtin_object_size(tls, data+uintptr(iFree+sz+sz2), 0)) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(71819)) + return _sqlite3CorruptError(tls, int32(72208)) } } cbrk = top + sz @@ -51640,12 +51907,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { ** if PRAGMA cell_size_check=ON. */ if pc > iCellLast { - return _sqlite3CorruptError(tls, int32(71852)) + return _sqlite3CorruptError(tls, int32(72241)) } size = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, src+uintptr(pc))) cbrk -= size if cbrk < iCellStart || pc+size > usableSize { - return _sqlite3CorruptError(tls, int32(71858)) + return _sqlite3CorruptError(tls, int32(72247)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = uint8(cbrk) @@ -51657,10 +51924,11 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { } } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))) = uint8(0) + goto defragment_out defragment_out: ; if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(71872)) + return _sqlite3CorruptError(tls, int32(72261)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = uint8(cbrk) @@ -51720,7 +51988,7 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint } else { if x+pc > maxPC { /* This slot extends off the end of the usable part of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71929)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72318)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -51737,14 +52005,14 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint if pc <= iAddr { if pc != 0 { /* The next slot in the chain comes before the current slot */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71944)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72333)) } return uintptr(0) } } if pc > maxPC+nByte-int32(4) { /* The free slot chain extends off the end of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71951)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72340)) } return uintptr(0) } @@ -51787,11 +52055,11 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r if top == 0 && (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize == uint32(65536) { top = int32(65536) } else { - return _sqlite3CorruptError(tls, int32(71999)) + return _sqlite3CorruptError(tls, int32(72388)) } } else { if top > int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(72002)) + return _sqlite3CorruptError(tls, int32(72391)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -51805,7 +52073,7 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r g2 = v1 *(*int32)(unsafe.Pointer(pIdx)) = v1 if g2 <= gap { - return _sqlite3CorruptError(tls, int32(72019)) + return _sqlite3CorruptError(tls, int32(72408)) } else { return SQLITE_OK } @@ -51888,12 +52156,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if int32(iFreeBlk) == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(72098)) + return _sqlite3CorruptError(tls, int32(72487)) } iPtr = iFreeBlk } if uint32(iFreeBlk) > (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(72103)) + return _sqlite3CorruptError(tls, int32(72492)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -51904,11 +52172,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if iFreeBlk != 0 && iEnd+uint32(3) >= uint32(iFreeBlk) { nFrag = uint8(uint32(iFreeBlk) - iEnd) if iEnd > uint32(iFreeBlk) { - return _sqlite3CorruptError(tls, int32(72115)) + return _sqlite3CorruptError(tls, int32(72504)) } iEnd = uint32(int32(iFreeBlk) + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iFreeBlk)+int32(2)))))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - return _sqlite3CorruptError(tls, int32(72118)) + return _sqlite3CorruptError(tls, int32(72507)) } iSize = uint16(iEnd - uint32(iStart)) iFreeBlk = uint16(int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= int32(iStart) { if iPtrEnd > int32(iStart) { - return _sqlite3CorruptError(tls, int32(72131)) + return _sqlite3CorruptError(tls, int32(72520)) } nFrag = Tu8(int32(nFrag) + (int32(iStart) - iPtrEnd)) iSize = uint16(iEnd - uint32(iPtr)) @@ -51929,7 +52197,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) } } if int32(nFrag) > int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(72137)) + return _sqlite3CorruptError(tls, int32(72526)) } p2 = data + uintptr(int32(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - int32(nFrag)) @@ -51946,10 +52214,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) ** so just extend the cell content area rather than create another ** freelist entry */ if int32(iStart) < int32(x) { - return _sqlite3CorruptError(tls, int32(72151)) + return _sqlite3CorruptError(tls, int32(72540)) } if int32(iPtr) != int32(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(72152)) + return _sqlite3CorruptError(tls, int32(72541)) } *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)))) = uint8(int32(iFreeBlk) >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)) + 1)) = uint8(iFreeBlk) @@ -52010,7 +52278,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtrIdxLeaf) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72206)) + return _sqlite3CorruptError(tls, int32(72595)) } } } else { @@ -52036,7 +52304,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtr) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72230)) + return _sqlite3CorruptError(tls, int32(72619)) } } } @@ -52075,12 +52343,12 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-55530-52930 In a well-formed b-tree page, there will ** always be at least one cell before the first freeblock. */ - return _sqlite3CorruptError(tls, int32(72281)) + return _sqlite3CorruptError(tls, int32(72670)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(72286)) + return _sqlite3CorruptError(tls, int32(72675)) } next = uint32(int32(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(72296)) + return _sqlite3CorruptError(tls, int32(72685)) } if uint32(pc)+size > uint32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(72300)) + return _sqlite3CorruptError(tls, int32(72689)) } } /* At this point, nFree contains the sum of the offset to the start @@ -52107,7 +52375,7 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { ** area, according to the page header, lies within the page. */ if nFree > usableSize || nFree < iCellFirst { - return _sqlite3CorruptError(tls, int32(72312)) + return _sqlite3CorruptError(tls, int32(72701)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16(nFree - iCellFirst)) return SQLITE_OK @@ -52138,11 +52406,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = int32(*(*Tu8)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))< iCellLast { - return _sqlite3CorruptError(tls, int32(72343)) + return _sqlite3CorruptError(tls, int32(72732)) } sz = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, data+uintptr(pc))) if pc+sz > usableSize { - return _sqlite3CorruptError(tls, int32(72348)) + return _sqlite3CorruptError(tls, int32(72737)) } goto _1 _1: @@ -52171,7 +52439,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-28594-02890 The one-byte flag at offset 0 indicating ** the b-tree page type. */ if _decodeFlags(tls, pPage, int32(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(72380)) + return _sqlite3CorruptError(tls, int32(72769)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -52184,7 +52452,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = uint16(int32(*(*Tu8)(unsafe.Pointer(data + 3)))< ((*TBtShared)(unsafe.Pointer(pBt)).FpageSize-uint32(8))/uint32(6) { /* To many cells for a single page. The page must be corrupt */ - return _sqlite3CorruptError(tls, int32(72394)) + return _sqlite3CorruptError(tls, int32(72783)) } /* EVIDENCE-OF: R-24089-57979 If a page contains no cells (which is only ** possible for a root page of a table that contains no rows) then the @@ -52337,7 +52605,7 @@ func _getAndInitPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, bRe _, _ = pPage, rc if pgno > _btreePagecount(tls, pBt) { *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72537)) + return _sqlite3CorruptError(tls, int32(72926)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -52399,7 +52667,7 @@ func _btreeGetUnusedPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FpDbPage) > int32(1) { _releasePage(tls, *(*uintptr)(unsafe.Pointer(ppPage))) *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72609)) + return _sqlite3CorruptError(tls, int32(72998)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -52487,7 +52755,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt /* Set the variable isMemdb to true for an in-memory database, or ** false for a file-based database. */ - isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4538) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) + isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4602) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) /* flags fit in 8 bits */ /* Only a BTREE_SINGLE database can be BTREE_UNORDERED */ /* A BTREE_SINGLE database is always a temporary and/or ephemeral */ @@ -52711,6 +52979,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt } } *(*uintptr)(unsafe.Pointer(ppBtree)) = p + goto btree_open_out btree_open_out: ; if rc != SQLITE_OK { @@ -53272,7 +53541,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { ** The original design allowed these amounts to vary, but as of ** version 3.6.0, we require them to be fixed. */ - if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4547, uint64(3)) != 0 { + if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4611, uint64(3)) != 0 { goto page1_init_failed } /* EVIDENCE-OF: R-51873-39618 The page size for a database file is @@ -53310,7 +53579,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { } if nPage > *(*Tu32)(unsafe.Pointer(bp + 8)) { if _sqlite3WritableSchema(tls, (*TBtShared)(unsafe.Pointer(pBt)).Fdb) == 0 { - rc = _sqlite3CorruptError(tls, int32(73547)) + rc = _sqlite3CorruptError(tls, int32(73936)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -53364,6 +53633,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 = *(*uintptr)(unsafe.Pointer(bp)) (*TBtShared)(unsafe.Pointer(pBt)).FnPage = nPage return SQLITE_OK + goto page1_init_failed page1_init_failed: ; _releasePageOne(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -53633,6 +53903,7 @@ func _btreeBeginTrans(tls *libc.TLS, p uintptr, wrflag int32, pSchemaVersion uin } } } + goto trans_begun trans_begun: ; if rc == SQLITE_OK { @@ -53749,7 +54020,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if int32(eType) == int32(PTRMAP_OVERFLOW2) { /* The pointer is always the first 4 bytes of the page in this case. */ if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData) != iFrom { - return _sqlite3CorruptError(tls, int32(73995)) + return _sqlite3CorruptError(tls, int32(74384)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -53773,7 +54044,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74014)) + return _sqlite3CorruptError(tls, int32(74403)) } if iFrom == _sqlite3Get4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4)) { _sqlite3Put4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4), iTo) @@ -53782,7 +54053,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } } else { if pCell+uintptr(4) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74023)) + return _sqlite3CorruptError(tls, int32(74412)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -53796,7 +54067,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if int32(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(74035)) + return _sqlite3CorruptError(tls, int32(74424)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -53826,7 +54097,7 @@ func _relocatePage(tls *libc.TLS, pBt uintptr, pDbPage uintptr, eType Tu8, iPtrP iDbPage = (*TMemPage)(unsafe.Pointer(pDbPage)).Fpgno pPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager if iDbPage < uint32(3) { - return _sqlite3CorruptError(tls, int32(74070)) + return _sqlite3CorruptError(tls, int32(74459)) } /* Move page iDbPage from its current location to page number iFreePage */ *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3PagerMovepage(tls, pPager, (*TMemPage)(unsafe.Pointer(pDbPage)).FpDbPage, iFreePage, isCommit) @@ -53922,7 +54193,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(74168)) + return _sqlite3CorruptError(tls, int32(74557)) } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -53960,7 +54231,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if *(*TPgno)(unsafe.Pointer(bp + 24)) > dbSize { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) - return _sqlite3CorruptError(tls, int32(74220)) + return _sqlite3CorruptError(tls, int32(74609)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -54027,7 +54298,7 @@ func _sqlite3BtreeIncrVacuum(tls *libc.TLS, p uintptr) (r int32) { nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) nFin = _finalDbSize(tls, pBt, nOrig, nFree) if nOrig < nFin || nFree >= nOrig { - rc = _sqlite3CorruptError(tls, int32(74288)) + rc = _sqlite3CorruptError(tls, int32(74677)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -54070,7 +54341,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { ** is either a pointer-map page or the pending-byte page. If one ** is encountered, this indicates corruption. */ - return _sqlite3CorruptError(tls, int32(74339)) + return _sqlite3CorruptError(tls, int32(74728)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -54100,7 +54371,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(74366)) + return _sqlite3CorruptError(tls, int32(74755)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -54566,7 +54837,7 @@ func _btreeCursor(tls *libc.TLS, p uintptr, iTable TPgno, wrFlag int32, pKeyInfo /* Assert that the caller has opened the required transaction. */ if iTable <= uint32(1) { if iTable < uint32(1) { - return _sqlite3CorruptError(tls, int32(74830)) + return _sqlite3CorruptError(tls, int32(75219)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -54958,7 +55229,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin pBt = (*TBtCursor)(unsafe.Pointer(pCur)).FpBt /* Btree this cursor belongs to */ pBufStart = pBuf /* Start of original out buffer */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(75235)) + return _sqlite3CorruptError(tls, int32(75624)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -54968,7 +55239,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin ** &aPayload[pCur->info.nLocal] > &pPage->aData[pBt->usableSize] ** but is recast into its current form to avoid integer overflow problems */ - return _sqlite3CorruptError(tls, int32(75250)) + return _sqlite3CorruptError(tls, int32(75639)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -54996,7 +55267,11 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_ValidOvfl) == 0 { nOvfl = int32(((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnPayload - uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) + ovflSize - uint32(1)) / ovflSize) if (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow == uintptr(0) || nOvfl*libc.Int32FromInt64(4) > _sqlite3MallocSize(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow) { - aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + if _sqlite3FaultSim(tls, int32(413)) != 0 { + aNew = uintptr(0) + } else { + aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + } if aNew == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -55007,6 +55282,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin p1 = pCur + 1 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(BTCF_ValidOvfl)) } else { + /* Sanity check the validity of the overflow page cache */ /* If the overflow page-list cache has been allocated and the ** entry for the first required overflow page is valid, skip ** directly to it. @@ -55020,7 +55296,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin for *(*TPgno)(unsafe.Pointer(bp)) != 0 { /* If required, populate the overflow page-list cache. */ if *(*TPgno)(unsafe.Pointer(bp)) > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(75312)) + return _sqlite3CorruptError(tls, int32(75710)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -55094,7 +55370,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin } if rc == SQLITE_OK && amt > uint32(0) { /* Overflow chain ends prematurely */ - return _sqlite3CorruptError(tls, int32(75396)) + return _sqlite3CorruptError(tls, int32(75794)) } return rc } @@ -55229,7 +55505,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { var v3, p1 uintptr _, _, _, _ = rc, v2, v3, p1 if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(75534)) + return _sqlite3CorruptError(tls, int32(75932)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -55241,7 +55517,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(75548)) + rc = _sqlite3CorruptError(tls, int32(75946)) } if rc != 0 { v3 = pCur + 84 @@ -55357,8 +55633,9 @@ func _moveToRoot(tls *libc.TLS, pCur uintptr) (r int32) { ** in such a way that page pRoot is linked into a second b-tree table ** (or the freelist). */ if int32((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != int32((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(75683)) + return _sqlite3CorruptError(tls, int32(76081)) } + goto skip_init skip_init: ; (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(0) @@ -55370,7 +55647,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(75695)) + return _sqlite3CorruptError(tls, int32(76093)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -55604,7 +55881,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(75937)) + return _sqlite3CorruptError(tls, int32(76342)) } } } @@ -55647,6 +55924,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh rc = SQLITE_OK goto moveto_table_finish } + goto moveto_table_next_layer moveto_table_next_layer: ; if lwr >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { @@ -55662,6 +55940,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh goto _1 _1: } + goto moveto_table_finish moveto_table_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -55806,7 +56085,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes p3 = pCur + 1 *(*Tu8)(unsafe.Pointer(p3)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p3))) & ^libc.Int32FromInt32(BTCF_ValidOvfl)) if !((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76133)) + return _sqlite3CorruptError(tls, int32(76538)) } goto bypass_moveto_root /* Start search on the current page */ } @@ -55820,6 +56099,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes } return rc } + goto bypass_moveto_root bypass_moveto_root: ; for { @@ -55868,7 +56148,7 @@ bypass_moveto_root: /* Invalid key size: 0x80 0x80 0x01 */ /* Minimum legal index key size */ if nCell < int32(2) || uint32(nCell)/(*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FusableSize > (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(76220)) + rc = _sqlite3CorruptError(tls, int32(76625)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, uint64(nCell+nOverrun)) @@ -55899,7 +56179,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(76252)) + rc = _sqlite3CorruptError(tls, int32(76657)) } goto moveto_index_finish } @@ -55932,7 +56212,7 @@ bypass_moveto_root: p9 = pCur + 1 *(*Tu8)(unsafe.Pointer(p9)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p9))) & ^(libc.Int32FromInt32(BTCF_ValidNKey) | libc.Int32FromInt32(BTCF_ValidOvfl))) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(76283)) + return _sqlite3CorruptError(tls, int32(76688)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = uint16(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -55941,7 +56221,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76294)) + rc = _sqlite3CorruptError(tls, int32(76699)) } if rc != 0 { v11 = pCur + 84 @@ -55955,6 +56235,7 @@ bypass_moveto_root: goto _4 _4: } + goto moveto_index_finish moveto_index_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -55989,11 +56270,11 @@ func _sqlite3BtreeRowCountEst(tls *libc.TLS, pCur uintptr) (r Ti64) { var i Tu8 var n Ti64 _, _ = i, n - /* Currently this interface is only called by the OP_IfSmaller - ** opcode, and it that case the cursor will always be valid and - ** will always point to a leaf node. */ + /* Currently this interface is only called by the OP_IfSizeBetween + ** opcode and the OP_Count opcode with P3=1. In either case, + ** the cursor will always be valid unless the btree is empty. */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID { - return int64(-int32(1)) + return 0 } if int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).Fleaf) == 0 { return int64(-int32(1)) @@ -56069,7 +56350,7 @@ func _btreeNext(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76395)) + return _sqlite3CorruptError(tls, int32(76800)) } if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -56179,7 +56460,7 @@ func _btreePrevious(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76488)) + return _sqlite3CorruptError(tls, int32(76893)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -56267,7 +56548,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt ** stores the total number of pages on the freelist. */ n = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+36) if n >= mxPage { - return _sqlite3CorruptError(tls, int32(76578)) + return _sqlite3CorruptError(tls, int32(76983)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -56322,7 +56603,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(76634)) + rc = _sqlite3CorruptError(tls, int32(77039)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -56348,7 +56629,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { if k > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/libc.Uint32FromInt32(4)-libc.Uint32FromInt32(2) { /* Value of k is out of range. Database corruption */ - rc = _sqlite3CorruptError(tls, int32(76663)) + rc = _sqlite3CorruptError(tls, int32(77068)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -56375,7 +56656,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { iNewTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+8) if iNewTrunk > mxPage { - rc = _sqlite3CorruptError(tls, int32(76697)) + rc = _sqlite3CorruptError(tls, int32(77102)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -56446,7 +56727,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } iPage = _sqlite3Get4byte(tls, aData+uintptr(uint32(8)+closest*uint32(4))) if iPage > mxPage || iPage < uint32(2) { - rc = _sqlite3CorruptError(tls, int32(76762)) + rc = _sqlite3CorruptError(tls, int32(77167)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -56546,6 +56827,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) } } + goto end_allocate_page end_allocate_page: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -56583,7 +56865,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in iTrunk = uint32(0) /* Page number of free-list trunk page */ pPage1 = (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 /* Initial number of pages on free-list */ if iPage < uint32(2) || iPage > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(76889)) + return _sqlite3CorruptError(tls, int32(77294)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -56634,7 +56916,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in if nFree != uint32(0) { /* Initial number of leaf cells on trunk page */ iTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32) if iTrunk > _btreePagecount(tls, pBt) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76936)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77341)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -56643,7 +56925,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in } nLeaf = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+4) if nLeaf > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(2) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76947)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77352)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -56698,6 +56980,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData, iTrunk) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData+4, uint32(0)) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32, iPage) + goto freepage_out freepage_out: ; if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -56732,7 +57015,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp _, _, _, _, _, _, _, _ = nOvfl, ovflPageSize, ovflPgno, pBt, rc, v1, v2, v3 if pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { /* Cell extends past end of page */ - return _sqlite3CorruptError(tls, int32(77036)) + return _sqlite3CorruptError(tls, int32(77441)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -56750,7 +57033,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp /* 0 is not a legal page number and page 1 cannot be an ** overflow page. Therefore if ovflPgno<2 or past the end of the ** file the database must be corrupt. */ - return _sqlite3CorruptError(tls, int32(77053)) + return _sqlite3CorruptError(tls, int32(77458)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -56773,7 +57056,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp ** caller is iterating through or using in some other way, this ** can be problematic. */ - rc = _sqlite3CorruptError(tls, int32(77073)) + rc = _sqlite3CorruptError(tls, int32(77478)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -56994,7 +57277,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = uint32(int32(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77329)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77734)) return } rc = _freeSpace(tls, pPage, uint16(pc), uint16(sz)) @@ -57388,12 +57671,12 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg sz = *(*Tu16)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FszCell + uintptr(i)*2)) if uint64(pCell) >= uint64(aData+uintptr(j)) && uint64(pCell) < uint64(pEnd) { if uint64(pCell+uintptr(sz)) > uint64(pEnd) { - return _sqlite3CorruptError(tls, int32(77718)) + return _sqlite3CorruptError(tls, int32(78123)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(77723)) + return _sqlite3CorruptError(tls, int32(78128)) } } pData -= uintptr(sz) @@ -57401,7 +57684,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = uint8(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(77729)) + return _sqlite3CorruptError(tls, int32(78134)) } libc.X__builtin___memmove_chk(tls, pData, pCell, uint64(sz), libc.X__builtin_object_size(tls, pData, 0)) i++ @@ -57496,7 +57779,7 @@ func _pageInsertArray(tls *libc.TLS, pPg uintptr, pBegin uintptr, ppData uintptr ** database. But they might for a corrupt database. Hence use memmove() ** since memcpy() sends SIGABORT with overlapping buffers on OpenBSD */ if uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))+uintptr(sz)) > uint64(pEnd) && uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))) < uint64(pEnd) { - _sqlite3CorruptError(tls, int32(77814)) + _sqlite3CorruptError(tls, int32(78219)) return int32(1) } libc.X__builtin___memmove_chk(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), uint64(sz), libc.X__builtin_object_size(tls, pSlot, 0)) @@ -57644,7 +57927,7 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p if iOld < iNew { nShift = _pageFreeArray(tls, pPg, iOld, iNew-iOld, pCArray) if nShift > nCell { - return _sqlite3CorruptError(tls, int32(77936)) + return _sqlite3CorruptError(tls, int32(78341)) } libc.X__builtin___memmove_chk(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), uint64(nCell*int32(2)), libc.X__builtin_object_size(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, 0)) nCell -= nShift @@ -57710,11 +57993,12 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)))) = uint8((int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)) + 1)) = uint8(int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) return SQLITE_OK + goto editpage_fail editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(78010)) + return _sqlite3CorruptError(tls, int32(78415)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -57759,7 +58043,7 @@ func _balance_quick(tls *libc.TLS, pParent uintptr, pPage uintptr, pSpace uintpt _, _, _, _, _, _, _ = pBt, pOut, pStop, v1, v2, v3, v4 pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt /* Page number of pNew */ if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(78050)) + return _sqlite3CorruptError(tls, int32(78455)) } /* dbfuzz001.test */ /* Allocate a new page. This page will become the right-sibling of ** pPage. Make the parent page writable, so that the new divider cell @@ -58120,7 +58404,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78471)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78876)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -58143,7 +58427,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa libc.X__builtin___memset_chk(tls, (*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell+uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*2, 0, uint64(2)*uint64(limit+int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow)), libc.X__builtin_object_size(tls, (*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell+uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*2, 0)) if int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78495)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78900)) goto balance_cleanup } limit = int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -58274,7 +58558,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa if i+int32(1) >= k { k = i + int32(2) if k > libc.Int32FromInt32(NB)+libc.Int32FromInt32(2) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78596)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79001)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -58317,7 +58601,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v10 = 0 } if cntNew[i] <= v10 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78629)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79034)) goto balance_cleanup } } @@ -58376,7 +58660,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v15 = 0 } if cntNew[i-int32(1)] <= v15 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78673)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79078)) goto balance_cleanup } goto _11 @@ -58408,7 +58692,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) nNew++ if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) != int32(1)+libc.BoolInt32(i == iParentIdx-nxDiv) && *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78706)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79111)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -58638,7 +58922,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa } pSrcEnd = *(*uintptr)(unsafe.Pointer(bp + 112 + 32 + uintptr(k)*8)) if uint64(pCell1) < uint64(pSrcEnd) && uint64(pCell1+uintptr(sz2)) > uint64(pSrcEnd) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78906)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79311)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -58773,6 +59057,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa /* ** Cleanup before returning. */ + goto balance_cleanup balance_cleanup: ; _sqlite3DbFree(tls, uintptr(0), (*(*TCellArray)(unsafe.Pointer(bp + 112))).FapCell) @@ -58883,7 +59168,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && int32((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(79138)) + return _sqlite3CorruptError(tls, int32(79543)) } goto _1 _1: @@ -58956,7 +59241,7 @@ func _balance(tls *libc.TLS, pCur uintptr) (r int32) { /* The page being written is not a root page, and there is currently ** more than one reference to it. This only happens if the page is one ** of its own ancestor pages. Corruption. */ - rc = _sqlite3CorruptError(tls, int32(79198)) + rc = _sqlite3CorruptError(tls, int32(79603)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = int32(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -59115,7 +59400,7 @@ func _btreeOverwriteOverflowCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int return rc } if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1) || (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FisInit != 0 { - rc = _sqlite3CorruptError(tls, int32(79362)) + rc = _sqlite3CorruptError(tls, int32(79767)) } else { if uint32(iOffset)+ovflPageSize < uint32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -59146,7 +59431,7 @@ func _btreeOverwriteCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int32) { nTotal = (*TBtreePayload)(unsafe.Pointer(pX)).FnData + (*TBtreePayload)(unsafe.Pointer(pX)).FnZero /* Total bytes of to write */ pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage /* Page being written */ if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload+uintptr((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd || (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FcellOffset) { - return _sqlite3CorruptError(tls, int32(79390)) + return _sqlite3CorruptError(tls, int32(79795)) } if int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -59231,7 +59516,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** Which can only happen if the SQLITE_NoSchemaError flag was set when ** the schema was loaded. This cannot be asserted though, as a user might ** set the flag, load the schema, and then unset the flag. */ - return _sqlite3CorruptError(tls, int32(79471)) + return _sqlite3CorruptError(tls, int32(79876)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -59323,7 +59608,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79594)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79999)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -59359,7 +59644,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) if *(*int32)(unsafe.Pointer(bp + 4)) == 0 { if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79636)) + return _sqlite3CorruptError(tls, int32(80041)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -59389,10 +59674,10 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry. */ /* clearCell never fails when nLocal==nPayload */ if oldCell < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+uintptr(10) { - return _sqlite3CorruptError(tls, int32(79663)) + return _sqlite3CorruptError(tls, int32(80068)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79666)) + return _sqlite3CorruptError(tls, int32(80071)) } libc.X__builtin___memcpy_chk(tls, oldCell, newCell, uint64(*(*int32)(unsafe.Pointer(bp + 8))), libc.X__builtin_object_size(tls, oldCell, 0)) return SQLITE_OK @@ -59457,6 +59742,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s (*TBtCursor)(unsafe.Pointer(pCur)).FnKey = (*TBtreePayload)(unsafe.Pointer(pX)).FnKey } } + goto end_insert end_insert: ; return *(*int32)(unsafe.Pointer(bp)) @@ -59509,7 +59795,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T nIn = uint32((*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnLocal) aIn = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload if aIn+uintptr(nIn) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79768)) + return _sqlite3CorruptError(tls, int32(80173)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -59531,7 +59817,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T } if nRem > nIn { if aIn+uintptr(nIn)+uintptr(4) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79793)) + return _sqlite3CorruptError(tls, int32(80198)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -59631,21 +59917,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(79889)) + return _sqlite3CorruptError(tls, int32(80294)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(79898)) + return _sqlite3CorruptError(tls, int32(80303)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCellIdx))))< _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80112)) + return _sqlite3CorruptError(tls, int32(80517)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -59890,7 +60176,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags } *(*int32)(unsafe.Pointer(bp + 12)) = _ptrmapGet(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 8)), bp+32, bp+36) if int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80160)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80565)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -59971,14 +60257,14 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int var _ /* rc at bp+8 */ int32 _, _, _, _ = hdr, i, pCell, v2 if pgno > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80250)) + return _sqlite3CorruptError(tls, int32(80655)) } *(*int32)(unsafe.Pointer(bp + 8)) = _getAndInitPage(tls, pBt, pgno, bp, 0) if *(*int32)(unsafe.Pointer(bp + 8)) != 0 { return *(*int32)(unsafe.Pointer(bp + 8)) } if int32((*TBtShared)(unsafe.Pointer(pBt)).FopenFlags)&int32(BTREE_SINGLE) == 0 && _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1)+libc.BoolInt32(pgno == uint32(1)) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80257)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80662)) goto cleardatabasepage_out } hdr = int32((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -60029,6 +60315,7 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _zeroPage(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData + uintptr(hdr))))|int32(PTF_LEAF)) } } + goto cleardatabasepage_out cleardatabasepage_out: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -60114,7 +60401,7 @@ func _btreeDropTable(tls *libc.TLS, p uintptr, iTable TPgno, piMoved uintptr) (r *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) pBt = (*TBtree)(unsafe.Pointer(p)).FpBt if iTable > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80361)) + return _sqlite3CorruptError(tls, int32(80766)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, int32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -60379,7 +60666,7 @@ func _checkAppendMsg(tls *libc.TLS, pCheck uintptr, zFormat uintptr, va uintptr) (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr++ ap = va if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FerrMsg.FnChar != 0 { - Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4551, int32(1)) + Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4615, int32(1)) } if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx != 0 { Xsqlite3_str_appendf(tls, pCheck+72, (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx, libc.VaList(bp+8, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv0, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv2)) @@ -60427,11 +60714,11 @@ func _checkRef(tls *libc.TLS, pCheck uintptr, iPage TPgno) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if iPage > (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnCkPage || iPage == uint32(0) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4553, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4617, libc.VaList(bp+8, iPage)) return int32(1) } if _getPageReferenced(tls, pCheck, iPage) != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4576, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4640, libc.VaList(bp+8, iPage)) return int32(1) } _setPageReferenced(tls, pCheck, iPage) @@ -60457,11 +60744,11 @@ func _checkPtrmap(tls *libc.TLS, pCheck uintptr, iChild TPgno, eType Tu8, iParen if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FusableSize/uint32(4)-uint32(2) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4706, libc.VaList(bp+16, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4770, libc.VaList(bp+16, iPage)) N-- } else { i = 0 @@ -60533,11 +60820,11 @@ func _checkList(tls *libc.TLS, pCheck uintptr, isFreeList int32, iPage TPgno, N } if N != 0 && nErrAtStart == (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr { if isFreeList != 0 { - v2 = __ccgo_ts + 4745 + v2 = __ccgo_ts + 4809 } else { - v2 = __ccgo_ts + 4750 + v2 = __ccgo_ts + 4814 } - _checkAppendMsg(tls, pCheck, __ccgo_ts+4771, libc.VaList(bp+16, v2, expected-N, expected)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4835, libc.VaList(bp+16, v2, expected-N, expected)) } } @@ -60673,12 +60960,12 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr if _checkRef(tls, pCheck, iPage) != 0 { return 0 } - (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4797 + (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4861 (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = iPage v1 = _btreeGetPage(tls, pBt, iPage, bp+8, 0) rc = v1 if v1 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4815, libc.VaList(bp+56, rc)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4879, libc.VaList(bp+56, rc)) if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< usableSize-uint32(4) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4969, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5033, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) doCoverageCheck = 0 goto _4 } pCell = data + uintptr(pc) (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FxParseCell})))(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), pCell, bp+24) if pc+uint32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnSize) > usableSize { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4999, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5063, 0) doCoverageCheck = 0 goto _4 } @@ -60760,7 +61050,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr v5 = libc.BoolInt32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey >= *(*Ti64)(unsafe.Pointer(bp))) } if v5 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+5023, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5087, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) } *(*Ti64)(unsafe.Pointer(bp)) = (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey keyCanBeEqual = 0 /* Only the first key on the page may ==maxKey */ @@ -60783,7 +61073,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr d2 = _checkTreePage(tls, pCheck, uint32(pgno), bp, *(*Ti64)(unsafe.Pointer(bp))) keyCanBeEqual = 0 if d2 != depth { - _checkAppendMsg(tls, pCheck, __ccgo_ts+5047, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5111, 0) depth = d2 } } else { @@ -60860,7 +61150,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr prev = contentOffset - uint32(1) /* Implied first min-heap entry */ for _btreeHeapPull(tls, heap, bp+16) != 0 { if prev&uint32(0xffff) >= *(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+5072, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5136, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) break } else { nFrag = int32(uint32(nFrag) + (*(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) - prev&libc.Uint32FromInt32(0xffff) - libc.Uint32FromInt32(1))) @@ -60874,9 +61164,10 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr ** number of fragmented free bytes within the cell content area. */ if *(*Tu32)(unsafe.Pointer(heap)) == uint32(0) && nFrag != int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+5109, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5173, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) } } + goto end_of_check end_of_check: ; if !(doCoverageCheck != 0) { @@ -60913,16 +61204,16 @@ end_of_check: // ** the unverified btrees. Except, if aRoot[1] is 1, then the freelist // ** checks are still performed. // */ -func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { - bp := tls.Alloc(256) - defer tls.Free(256) +func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, aCnt uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { + bp := tls.Alloc(272) + defer tls.Free(272) var bCkFreelist, bPartial int32 var i, mx, mxInHdr TPgno var pBt uintptr var savedDbFlags Tu64 - var _ /* notUsed at bp+224 */ Ti64 + var _ /* notUsed at bp+232 */ Ti64 var _ /* sCheck at bp+0 */ TIntegrityCk - var _ /* zErr at bp+120 */ [100]int8 + var _ /* zErr at bp+128 */ [100]int8 _, _, _, _, _, _, _ = bCkFreelist, bPartial, i, mx, mxInHdr, pBt, savedDbFlags pBt = (*TBtree)(unsafe.Pointer(p)).FpBt savedDbFlags = (*Tsqlite3)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags @@ -60936,13 +61227,13 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } } _sqlite3BtreeEnter(tls, p) - libc.X__builtin___memset_chk(tls, bp, 0, uint64(120), libc.X__builtin_object_size(tls, bp, 0)) + libc.X__builtin___memset_chk(tls, bp, 0, uint64(128), libc.X__builtin_object_size(tls, bp, 0)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fdb = db (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt = pBt (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage = _btreePagecount(tls, (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr = mxErr - _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+120, int32(100), int32(SQLITE_MAX_LENGTH)) + _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+128, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FerrMsg.FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage == uint32(0) { goto integrity_ck_cleanup @@ -60964,7 +61255,7 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin /* Check the integrity of the freelist */ if bCkFreelist != 0 { - (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 5161 + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 5225 _checkList(tls, bp, int32(1), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+32), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = uintptr(0) } @@ -60988,11 +61279,11 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } mxInHdr = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+52) if mx != mxInHdr { - _checkAppendMsg(tls, bp, __ccgo_ts+5172, libc.VaList(bp+240, mx, mxInHdr)) + _checkAppendMsg(tls, bp, __ccgo_ts+5236, libc.VaList(bp+248, mx, mxInHdr)) } } else { if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+64) != uint32(0) { - _checkAppendMsg(tls, bp, __ccgo_ts+5217, 0) + _checkAppendMsg(tls, bp, __ccgo_ts+5281, 0) } } } @@ -61002,14 +61293,15 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin if !(int32(i) < nRoot && (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr != 0) { break } - if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) == uint32(0) { - goto _2 - } - if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { - _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnRow = 0 + if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) != 0 { + if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { + _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + } + (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fv0 = *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) + _checkTreePage(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), bp+232, libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)< nRec || iHdr >= *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84303)) + iHdr = uint32(uint8(v1)) + if *(*Tu32)(unsafe.Pointer(bp + 4)) > uint32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84745)) } - iField = *(*int32)(unsafe.Pointer(bp + 4)) + iField = int64(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 for { if !(i <= iCol) { @@ -63996,19 +64323,19 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } else { v3 = int32(_sqlite3GetVarint32(tls, a+uintptr(iHdr), bp)) } - iHdr += int32(uint8(v3)) - if iHdr > *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84309)) + iHdr += uint32(uint8(v3)) + if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84751)) } - szField = int32(_sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp)))) - iField += szField + szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) + iField += int64(szField) goto _2 _2: ; i++ } - if iField > nRec { - return _sqlite3CorruptError(tls, int32(84315)) + if iField > int64(nRec) { + return _sqlite3CorruptError(tls, int32(84757)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -64018,7 +64345,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC return int32(SQLITE_NOMEM) } } - _sqlite3VdbeSerialGet(tls, a+uintptr(iField-szField), *(*Tu32)(unsafe.Pointer(bp)), pMem) + _sqlite3VdbeSerialGet(tls, a+uintptr(iField-int64(szField)), *(*Tu32)(unsafe.Pointer(bp)), pMem) (*TMem)(unsafe.Pointer(pMem)).Fenc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc return SQLITE_OK } @@ -64437,6 +64764,7 @@ func _sqlite3VdbeMultiLoad(tls *libc.TLS, p uintptr, iDest int32, zTypes uintptr i++ } _sqlite3VdbeAddOp2(tls, p, int32(OP_ResultRow), iDest, i) + goto skip_op_resultrow skip_op_resultrow: ; _ = ap @@ -64805,6 +65133,9 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { /* True because of tag-20230419-1 */ (*TOp)(unsafe.Pointer(pOp)).Fp2 = *(*int32)(unsafe.Pointer(aLabel + uintptr(^(*TOp)(unsafe.Pointer(pOp)).Fp2)*4)) } + /* OPFLG_JUMP opcodes never have P2==0, though OPFLG_JUMP0 opcodes + ** might */ + /* Jumps never go off the end of the bytecode array */ break } /* The mkopcodeh.tcl script has so arranged things that the only @@ -64813,6 +65144,7 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { } pOp -= 24 } + goto resolve_p2_values_loop_exit resolve_p2_values_loop_exit: ; if aLabel != 0 { @@ -65316,7 +65648,7 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { switch int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) { case -int32(8): pKeyInfo = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5429, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5493, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) j = 0 for { if !(j < int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)) { @@ -65326,66 +65658,66 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { if pColl != 0 { v2 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } zColl = v2 - if libc.Xstrcmp(tls, zColl, __ccgo_ts+5434) == 0 { - zColl = __ccgo_ts + 5441 + if libc.Xstrcmp(tls, zColl, __ccgo_ts+5498) == 0 { + zColl = __ccgo_ts + 5505 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_DESC) != 0 { - v3 = __ccgo_ts + 5422 + v3 = __ccgo_ts + 5486 } else { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_BIGNULL) != 0 { - v4 = __ccgo_ts + 5443 + v4 = __ccgo_ts + 5507 } else { - v4 = __ccgo_ts + 1650 + v4 = __ccgo_ts + 1664 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5446, libc.VaList(bp+40, v3, v4, zColl)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5510, libc.VaList(bp+40, v3, v4, zColl)) goto _1 _1: ; j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5454, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5518, int32(1)) case -int32(2): pColl1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5470, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5534, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) case -int32(7): pDef = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5479, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5543, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) case -int32(15): pDef1 = (*Tsqlite3_context)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpFunc - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5479, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5543, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) case -int32(13): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1406, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1425, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(3): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5486, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5550, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) case -int32(12): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1373, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1392, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(10): pMem = *(*uintptr)(unsafe.Pointer(pOp + 16)) if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Str) != 0 { zP4 = (*TMem)(unsafe.Pointer(pMem)).Fz } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1406, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1425, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1373, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1392, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Null) != 0 { - zP4 = __ccgo_ts + 1651 + zP4 = __ccgo_ts + 1665 } else { - zP4 = __ccgo_ts + 5489 + zP4 = __ccgo_ts + 5553 } } } } case -int32(11): pVtab = (*TVTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5496, libc.VaList(bp+40, pVtab)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5560, libc.VaList(bp+40, pVtab)) case -int32(14): ai = *(*uintptr)(unsafe.Pointer(pOp + 16)) n = *(*Tu32)(unsafe.Pointer(ai)) /* The first element of an INTARRAY is always the @@ -65400,15 +65732,15 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } else { v6 = int32(',') } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5504, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5568, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) goto _5 _5: ; i++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5509, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5573, int32(1)) case -int32(4): - zP4 = __ccgo_ts + 5511 + zP4 = __ccgo_ts + 5575 case -int32(5): zP4 = (*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FzName default: @@ -65424,10 +65756,10 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } var _encnames = [4]uintptr{ - 0: __ccgo_ts + 5456, - 1: __ccgo_ts + 5458, - 2: __ccgo_ts + 5460, - 3: __ccgo_ts + 5465, + 0: __ccgo_ts + 5520, + 1: __ccgo_ts + 5522, + 2: __ccgo_ts + 5524, + 3: __ccgo_ts + 5529, } // C documentation @@ -66378,7 +66710,7 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { retryCount = 0 /* Select a super-journal file name */ nMainFile = _sqlite3Strlen30(tls, zMainFile) - zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5519, libc.VaList(bp+24, 0, zMainFile, 0)) + zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5583, libc.VaList(bp+24, 0, zMainFile, 0)) if zSuper == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -66386,18 +66718,18 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { for cond := true; cond; cond = rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 8)) != 0 { if retryCount != 0 { if retryCount > int32(100) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5531, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5595, libc.VaList(bp+24, zSuper)) _sqlite3OsDelete(tls, pVfs, zSuper, 0) break } else { if retryCount == int32(1) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5545, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5609, libc.VaList(bp+24, zSuper)) } } } retryCount++ Xsqlite3_randomness(tls, int32(4), bp+12) - Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5560, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) + Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5624, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) /* The antipenultimate character of the super-journal name must ** be "9" to avoid name collisions when using 8+3 filenames. */ rc = _sqlite3OsAccess(tls, pVfs, zSuper, SQLITE_ACCESS_EXISTS, bp+8) @@ -66628,7 +66960,7 @@ func _sqlite3VdbeCheckFk(tls *libc.TLS, p uintptr, deferred int32) (r int32) { if deferred != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredCons+(*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons > 0 || !(deferred != 0) && (*TVdbe)(unsafe.Pointer(p)).FnFkConstraint > 0 { (*TVdbe)(unsafe.Pointer(p)).Frc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(3)< y { return +libc.Int32FromInt32(1) } - s = float64(i) - if s < r { + if float64(i) < r { v2 = -int32(1) } else { - v2 = libc.BoolInt32(s > r) + v2 = libc.BoolInt32(float64(i) > r) } return v2 } @@ -67937,7 +68268,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89131))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89580))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -68027,7 +68358,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || int32((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89212))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89661))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -68062,7 +68393,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = int32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+uint32(nStr) > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89242))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89691))) return 0 /* Corruption */ } else { if int32((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -68116,7 +68447,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += uint32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89293))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89742))) return 0 /* Corrupt index */ } } @@ -68230,6 +68561,7 @@ func _vdbeRecordCompareString(tls *libc.TLS, nKey1 int32, pKey1 uintptr, pPKey2 _, _, _, _, _, _ = aKey1, nCmp, nStr, res, szHdr, v1 aKey1 = pKey1 *(*int32)(unsafe.Pointer(bp)) = int32(int8(*(*Tu8)(unsafe.Pointer(aKey1 + 1)))) + goto vrcs_restart vrcs_restart: ; if *(*int32)(unsafe.Pointer(bp)) < int32(12) { @@ -68247,7 +68579,7 @@ vrcs_restart: szHdr = int32(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89456))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89905))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -68395,10 +68727,11 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr return SQLITE_OK /* Jump here if database corruption is detected after m has been ** allocated. Free the m object and return SQLITE_CORRUPT. */ + goto idx_rowid_corruption idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(89614)) + return _sqlite3CorruptError(tls, int32(90063)) } // C documentation @@ -68429,7 +68762,7 @@ func _sqlite3VdbeIdxKeyCompare(tls *libc.TLS, db uintptr, pC uintptr, pUnpacked ** that btreeParseCellPtr() and sqlite3GetVarint32() are implemented */ if nCellKey <= 0 || nCellKey > int64(0x7fffffff) { *(*int32)(unsafe.Pointer(res)) = 0 - return _sqlite3CorruptError(tls, int32(89647)) + return _sqlite3CorruptError(tls, int32(90096)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(nCellKey), bp) @@ -68580,15 +68913,15 @@ func _sqlite3NotPureFunc(tls *libc.TLS, pCtx uintptr) (r int32) { pOp = (*TVdbe)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe)).FaOp + uintptr((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FiOp)*24 if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_PureFunc) { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_IsCheck) != 0 { - zContext = __ccgo_ts + 5603 + zContext = __ccgo_ts + 5667 } else { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_GenCol) != 0 { - zContext = __ccgo_ts + 5622 + zContext = __ccgo_ts + 5686 } else { - zContext = __ccgo_ts + 5641 + zContext = __ccgo_ts + 5705 } } - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5650, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5714, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) return 0 @@ -68762,7 +69095,7 @@ func Xsqlite3_expired(tls *libc.TLS, pStmt uintptr) (r int32) { // */ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { if (*TVdbe)(unsafe.Pointer(p)).Fdb == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5686, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5750, 0) return int32(1) } else { return 0 @@ -68772,7 +69105,7 @@ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { func _vdbeSafetyNotNull(tls *libc.TLS, p uintptr) (r int32) { if p == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5731, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5795, 0) return int32(1) } else { return _vdbeSafety(tls, p) @@ -68830,7 +69163,7 @@ func Xsqlite3_finalize(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt db = (*TVdbe)(unsafe.Pointer(v)).Fdb if _vdbeSafety(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90035)) + return _sqlite3MisuseError(tls, int32(90484)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -69333,7 +69666,7 @@ func Xsqlite3_result_error_code(tls *libc.TLS, pCtx uintptr, errCode int32) { // /* Force an SQLITE_TOOBIG error. */ func Xsqlite3_result_error_toobig(tls *libc.TLS, pCtx uintptr) { (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = int32(SQLITE_TOOBIG) - _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5771, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) + _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5835, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) } // C documentation @@ -69412,6 +69745,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { _, _ = db, rc db = (*TVdbe)(unsafe.Pointer(p)).Fdb if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_RUN_STATE) { + goto restart_step restart_step: ; if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) == int32(VDBE_READY_STATE) { @@ -69509,6 +69843,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { rc = (*TVdbe)(unsafe.Pointer(p)).Frc } } + goto end_of_step end_of_step: ; /* There are only a limited number of result codes allowed from the @@ -69532,7 +69867,7 @@ func Xsqlite3_step(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt /* the prepared statement */ cnt = 0 /* The database connection */ if _vdbeSafetyNotNull(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90829)) + return _sqlite3MisuseError(tls, int32(91278)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -69662,7 +69997,7 @@ func _valueFromValueList(tls *libc.TLS, pVal uintptr, ppOut uintptr, bNext int32 _, _, _, _, _, _, _ = iOff, pOut, pRhs, rc, sz, zBuf, v1 *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) if pVal == uintptr(0) { - return _sqlite3MisuseError(tls, int32(90950)) + return _sqlite3MisuseError(tls, int32(91399)) } if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -69884,6 +70219,7 @@ func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, (*TAuxData)(unsafe.Pointer(pAuxData)).FpAux = pAux (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = xDelete return + goto failed failed: ; if xDelete != 0 { @@ -70121,18 +70457,18 @@ func Xsqlite3_column_type(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { // ** Column names appropriate for EXPLAIN or EXPLAIN QUERY PLAN. // */ var _azExplainColNames8 = [12]uintptr{ - 0: __ccgo_ts + 5794, - 1: __ccgo_ts + 5799, - 2: __ccgo_ts + 5806, - 3: __ccgo_ts + 5809, - 4: __ccgo_ts + 5812, - 5: __ccgo_ts + 5815, - 6: __ccgo_ts + 5818, - 7: __ccgo_ts + 5821, - 8: __ccgo_ts + 5829, - 9: __ccgo_ts + 5832, - 10: __ccgo_ts + 5839, - 11: __ccgo_ts + 5847, + 0: __ccgo_ts + 5858, + 1: __ccgo_ts + 5863, + 2: __ccgo_ts + 5870, + 3: __ccgo_ts + 5873, + 4: __ccgo_ts + 5876, + 5: __ccgo_ts + 5879, + 6: __ccgo_ts + 5882, + 7: __ccgo_ts + 5885, + 8: __ccgo_ts + 5893, + 9: __ccgo_ts + 5896, + 10: __ccgo_ts + 5903, + 11: __ccgo_ts + 5911, } var _azExplainColNames16data = [60]Tu16{ 0: uint16('a'), @@ -70266,6 +70602,7 @@ func _columnName(tls *libc.TLS, pStmt uintptr, N int32, useUtf16 int32, useType ret = uintptr(0) } } + goto columnName_end columnName_end: ; Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -70375,14 +70712,14 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { var v2 bool _, _, _ = pVar, v1, v2 if _vdbeSafetyNotNull(tls, p) != 0 { - return _sqlite3MisuseError(tls, int32(91554)) + return _sqlite3MisuseError(tls, int32(92003)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(91558))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(92007))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5854, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(91562)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5918, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) + return _sqlite3MisuseError(tls, int32(92011)) } if i >= uint32((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -70946,7 +71283,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp /* Test that this call is being made from within an SQLITE_DELETE or ** SQLITE_UPDATE pre-update callback, and that iIdx is within range. */ if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_INSERT) { - rc = _sqlite3MisuseError(tls, int32(92098)) + rc = _sqlite3MisuseError(tls, int32(92547)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -70992,6 +71329,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } } + goto preupdate_old_out preupdate_old_out: ; _sqlite3Error(tls, db, rc) @@ -71075,7 +71413,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp rc = SQLITE_OK p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(92221)) + rc = _sqlite3MisuseError(tls, int32(92670)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -71141,6 +71479,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } *(*uintptr)(unsafe.Pointer(ppValue)) = pMem + goto preupdate_new_out preupdate_new_out: ; _sqlite3Error(tls, db, rc) @@ -71248,7 +71587,7 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr break } } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5894, int32(3)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5958, int32(3)) Xsqlite3_str_append(tls, bp+8, zStart, int32(int64(zRawSql)-int64(zStart))) } } else { @@ -71280,13 +71619,13 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr nextIndex = v2 pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(*(*int32)(unsafe.Pointer(bp))-int32(1))*56 if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Null) != 0 { - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1651, int32(4)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1665, int32(4)) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1406, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1425, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5415, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5479, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Str) != 0 { /* Number of bytes of the string text to include in output */ enc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc @@ -71301,28 +71640,28 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr pVar = bp + 40 } nOut = (*TMem)(unsafe.Pointer(pVar)).Fn - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5898, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5962, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) if int32(enc) != int32(SQLITE_UTF8) { _sqlite3VdbeMemRelease(tls, bp+40) } } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Zero) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5905, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5969, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) } else { /* Number of bytes of the blob to include in output */ - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5918, int32(2)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5982, int32(2)) nOut1 = (*TMem)(unsafe.Pointer(pVar)).Fn i = 0 for { if !(i < nOut1) { break } - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5921, libc.VaList(bp+104, int32(*(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5985, libc.VaList(bp+104, int32(*(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) goto _3 _3: ; i++ } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5926, int32(1)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5990, int32(1)) } } } @@ -71922,7 +72261,7 @@ var _azTypes = [5]uintptr{ 1: __ccgo_ts + 1146, 2: __ccgo_ts + 1151, 3: __ccgo_ts + 1129, - 4: __ccgo_ts + 1651, + 4: __ccgo_ts + 1665, } // C documentation @@ -71936,7 +72275,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { defer tls.Free(976) var aCol, aMem, aOffset, aOp, aPermute, aRoot, apArg, apArg1, db, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pnErr, t1, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v240, v241, v242, v250, v251, v252, v253, v255, v263, v278, v279, v286, v288, v297, v298, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 uintptr var affinity int8 - var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 + var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, savedAnalysisLimit, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 var colCacheCtr, iAddr, iMap, iPrior, idx, len11, n3, p22, p23, serialType, serial_type, v213, v214, v216, v221, v222 Tu32 var encoding, isWriteLock, mTrace, op, p5, resetSchemaOnFault, vtabOnConflict, v225 Tu8 var flags1, flags11, flags2, flags3, flags31, newType, nullFlag, type1, type2, typeMask, v190 Tu16 @@ -71993,7 +72332,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { var _ /* z at bp+688 */ uintptr var _ /* zErr at bp+632 */ uintptr var _ /* zErr at bp+792 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, savedAnalysisLimit, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 aOp = (*TVdbe)(unsafe.Pointer(p)).FaOp /* Copy of p->aOp */ pOp = aOp /* Current operation */ rc = SQLITE_OK /* Value to return */ @@ -72263,7 +72602,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto _109 case int32(OP_SeekEnd): goto _110 - case int32(OP_IfSmaller): + case int32(OP_IfSizeBetween): goto _111 case int32(OP_Sort): goto _112 @@ -72465,6 +72804,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { */ _2: ; /* jump */ + goto jump_to_p2_and_check_for_interrupt jump_to_p2_and_check_for_interrupt: ; pOp = aOp + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp2-int32(1))*24 @@ -72478,6 +72818,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** way for performance, to avoid having to run the interrupt and progress ** checks on every opcode. This helps sqlite3_step() to run about 1.5% ** faster according to "valgrind --tool=cachegrind" */ + goto check_for_interrupt check_for_interrupt: ; if libc.AtomicLoadPInt32(db+432) != 0 { @@ -72555,7 +72896,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: EndCoroutine */ _5: - ; /* jump */ + ; /* jump0 */ pOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 *(*Ti64)(unsafe.Pointer(pOut)) = int64((*TOp)(unsafe.Pointer(pOp)).Fp3 - int32(1)) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Int) @@ -72564,6 +72905,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* Most jump operations do a goto to this spot in order to update ** the pOp pointer. */ + goto jump_to_p2 jump_to_p2: ; /* There are never any jumps to instruction 0 */ @@ -72574,7 +72916,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** ** The instruction at the address in register P1 is a Yield. ** Jump to the P2 parameter of that Yield. - ** After the jump, register P1 becomes undefined. + ** After the jump, the value register P1 is left with a value + ** such that subsequent OP_Yields go back to the this same + ** OP_EndCoroutine instruction. ** ** See also: InitCoroutine */ @@ -72582,8 +72926,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 pCaller = aOp + uintptr(*(*Ti64)(unsafe.Pointer(pIn1)))*24 + *(*Ti64)(unsafe.Pointer(pIn1)) = int64(int32((int64(pOp)-int64((*TVdbe)(unsafe.Pointer(p)).FaOp))/24) - int32(1)) pOp = aOp + uintptr((*TVdbeOp)(unsafe.Pointer(pCaller)).Fp2-int32(1))*24 - (*TMem)(unsafe.Pointer(pIn1)).Fflags = uint16(MEM_Undefined) goto _187 /* Opcode: Yield P1 P2 * * * ** @@ -72680,15 +73024,15 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TVdbe)(unsafe.Pointer(p)).FerrorAction = uint8((*TOp)(unsafe.Pointer(pOp)).Fp2) if (*TVdbe)(unsafe.Pointer(p)).Frc != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+5962, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) + _sqlite3VdbeError(tls, p, __ccgo_ts+6026, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) if *(*uintptr)(unsafe.Pointer(pOp + 16)) != 0 { - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5983, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+6047, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } } else { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } pcx = int32((int64(pOp) - int64(aOp)) / 24) - Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5990, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) + Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+6054, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) } rc = _sqlite3VdbeHalt(tls, p) if rc == int32(SQLITE_BUSY) { @@ -72880,13 +73224,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } (*TMem)(unsafe.Pointer(pOut)).Fenc = encoding goto _187 - /* Opcode: Variable P1 P2 * P4 * - ** Synopsis: r[P2]=parameter(P1,P4) + /* Opcode: Variable P1 P2 * * * + ** Synopsis: r[P2]=parameter(P1) ** ** Transfer the values of bound parameter P1 into register P2 - ** - ** If the parameter is named, then its name appears in P4. - ** The P4 value is used by sqlite3_bind_parameter_name(). */ _19: ; /* Value being transferred */ @@ -73177,6 +73518,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(int32(type1)&int32(type2)&int32(MEM_Int) != 0) { goto _200 } + goto int_math int_math: ; iA = *(*Ti64)(unsafe.Pointer(pIn1)) @@ -73229,6 +73571,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if int32(type1)&int32(type2)&int32(MEM_Int) != 0 { goto int_math } + goto fp_math fp_math: ; rA = _sqlite3VdbeRealValue(tls, pIn1) @@ -73268,6 +73611,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _201: ; goto _187 + goto arithmetic_result_is_null arithmetic_result_is_null: ; _sqlite3VdbeMemSetNull(tls, pOut) @@ -73406,7 +73750,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** raise an SQLITE_MISMATCH exception. */ _38: - ; /* jump, in1 */ + ; /* jump0, in1 */ pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 if int32((*TMem)(unsafe.Pointer(pIn1)).Fflags)&int32(MEM_Int) == 0 { _applyAffinity(tls, pIn1, int8(SQLITE_AFF_NUMERIC), encoding) @@ -74135,6 +74479,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* PseudoTable input register */ pC3 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) p22 = uint32((*TOp)(unsafe.Pointer(pOp)).Fp2) + goto op_column_restart op_column_restart: ; aOffset = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaOffset @@ -74261,6 +74606,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { zData = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaRow } /* Fill in pC->aType[i] and aOffset[i] values through the p2-th field. */ + goto op_column_read_header op_column_read_header: ; i1 = int32((*TVdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed) @@ -74398,16 +74744,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } } + goto op_column_out op_column_out: ; goto _187 + goto op_column_corrupt op_column_corrupt: ; if (*(*TOp)(unsafe.Pointer(aOp))).Fp3 > 0 { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(95863)) + rc = _sqlite3CorruptError(tls, int32(96311)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -74507,9 +74855,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { i2++ } goto _187 + goto vdbe_type_error vdbe_type_error: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+6014, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6078, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(12)< 0 && p12 == int32(SAVEPOINT_RELEASE) { /* It is not possible to release (commit) a savepoint if there are ** active write statements. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+6128, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6192, 0) rc = int32(SQLITE_BUSY) } else { /* Determine whether or not this is a transaction savepoint. If so, @@ -75105,7 +75454,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If this instruction implements a COMMIT and other VMs are writing ** return an error indicating that the other VMs must complete first. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+6182, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6246, 0) rc = int32(SQLITE_BUSY) goto abort_due_to_error } else { @@ -75135,12 +75484,12 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto vdbe_return } else { if !(desiredAutoCommit != 0) { - v250 = __ccgo_ts + 6237 + v250 = __ccgo_ts + 6301 } else { if iRollback != 0 { - v251 = __ccgo_ts + 6285 + v251 = __ccgo_ts + 6349 } else { - v251 = __ccgo_ts + 6328 + v251 = __ccgo_ts + 6392 } v250 = v251 } @@ -75232,7 +75581,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** SQL statement was prepared. */ _sqlite3DbFree(tls, db, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg) - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6369) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6433) /* If the schema-cookie from the database file matches the cookie ** stored with the in-memory representation of the schema, do ** not reload the schema from the database file. @@ -75470,6 +75819,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** and report database corruption if they were not, but this check has ** since moved into the btree layer. */ (*TVdbeCursor)(unsafe.Pointer(pCur)).FisTable = libc.BoolUint8(int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) != -int32(8)) + goto open_cursor_set_hints open_cursor_set_hints: ; _sqlite3BtreeCursorHintFlags(tls, *(*uintptr)(unsafe.Pointer(pCur + 48)), uint32(int32((*TOp)(unsafe.Pointer(pOp)).Fp5)&(libc.Int32FromInt32(OPFLAG_BULKCSR)|libc.Int32FromInt32(OPFLAG_SEEKEQ)))) @@ -75549,7 +75899,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** form sqlite3BtreeInsert() where the length of the data is zero. */ /* Only used when number of columns is zero */ (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fn = 0 - (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1650 + (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1664 } pCx1 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) if pCx1 != 0 && !(int32(TBool(*(*uint8)(unsafe.Pointer(pCx1 + 8))&0x8>>3)) != 0) && (*TOp)(unsafe.Pointer(pOp)).Fp2 <= int32((*TVdbeCursor)(unsafe.Pointer(pCx1)).FnField) { @@ -75654,7 +76004,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** is the only cursor opcode that works with a pseudo-table. ** ** P3 is the number of fields in the records that will be stored by - ** the pseudo-table. + ** the pseudo-table. If P2 is 0 or negative then the pseudo-cursor + ** will return NULL for every column. */ _83: ; @@ -75772,11 +76123,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: Found, NotFound, SeekGt, SeekGe, SeekLt */ _88: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _87: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _86: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _85: ; /* Only interested in == results */ pC5 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) @@ -75906,6 +76257,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 112)) = _sqlite3BtreeEof(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48))) } } + goto seek_not_found seek_not_found: ; if *(*int32)(unsafe.Pointer(bp + 112)) != 0 { @@ -76011,6 +76363,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(*(*int32)(unsafe.Pointer(bp + 160)) > 0 && int32((*TOp)(unsafe.Pointer(pOp)).Fp5) == 0) { goto _259 } + goto seekscan_search_fail seekscan_search_fail: ; /* Jump to SeekGE.P2, ending the loop */ @@ -76323,6 +76676,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* jump, in3, ncycle */ pIn3 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 iKey1 = uint64(*(*Ti64)(unsafe.Pointer(pIn3))) + goto notExistsWithKey notExistsWithKey: ; pC10 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) @@ -76336,7 +76690,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TVdbeCursor)(unsafe.Pointer(pC10)).FseekResult = *(*int32)(unsafe.Pointer(bp + 248)) if *(*int32)(unsafe.Pointer(bp + 248)) != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp2 == 0 { - rc = _sqlite3CorruptError(tls, int32(98111)) + rc = _sqlite3CorruptError(tls, int32(98565)) } else { goto jump_to_p2 } @@ -76936,10 +77290,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } goto _187 - /* Opcode: IfSmaller P1 P2 P3 * * + /* Opcode: IfSizeBetween P1 P2 P3 P4 * ** - ** Estimate the number of rows in the table P1. Jump to P2 if that - ** estimate is less than approximately 2**(0.1*P3). + ** Let N be the approximate number of rows in the table or index + ** with cursor P1 and let X be 10*log2(N) if N is positive or -1 + ** if N is zero. + ** + ** Jump to P2 if X is in between P3 and P4, inclusive. */ _111: ; @@ -76949,12 +77306,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { goto abort_due_to_error } - if *(*int32)(unsafe.Pointer(bp + 396)) == 0 { + if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { + sz = int64(-int32(1)) /* -Infinity encoding */ + } else { sz = _sqlite3BtreeRowCountEst(tls, pCrsr5) - if sz >= 0 && int32(_sqlite3LogEst(tls, uint64(sz))) < (*TOp)(unsafe.Pointer(pOp)).Fp3 { - *(*int32)(unsafe.Pointer(bp + 396)) = int32(1) - } + sz = int64(_sqlite3LogEst(tls, uint64(sz))) } + *(*int32)(unsafe.Pointer(bp + 396)) = libc.BoolInt32(sz >= int64((*TOp)(unsafe.Pointer(pOp)).Fp3) && sz <= int64((*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { goto jump_to_p2 } @@ -77091,6 +77449,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* jump, ncycle */ pC22 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) rc = _sqlite3BtreeNext(tls, *(*uintptr)(unsafe.Pointer(pC22 + 48)), (*TOp)(unsafe.Pointer(pOp)).Fp3) + goto next_tail next_tail: ; (*TVdbeCursor)(unsafe.Pointer(pC22)).FcacheStatus = uint32(CACHE_STALE) @@ -77223,7 +77582,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } else { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 && !(_sqlite3WritableSchema(tls, db) != 0) { - rc = _sqlite3ReportError(tls, libc.Int32FromInt32(SQLITE_CORRUPT)|libc.Int32FromInt32(3)< int64(0x7fffffff) { - rc = _sqlite3CorruptError(tls, int32(99398)) + rc = _sqlite3CorruptError(tls, int32(99862)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -77520,11 +77879,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } *(*Ti64)(unsafe.Pointer(pOut)) = int64(*(*TPgno)(unsafe.Pointer(bp + 624))) goto _187 - /* Opcode: SqlExec * * * P4 * + /* Opcode: SqlExec P1 P2 * P4 * ** ** Run the SQL statement or statements specified in the P4 string. - ** Disable Auth and Trace callbacks while those statements are running if - ** P1 is true. + ** + ** The P1 parameter is a bitmask of options: + ** + ** 0x0001 Disable Auth and Trace callbacks while the statements + ** in P4 are running. + ** + ** 0x0002 Set db->nAnalysisLimit to P2 while the statements in + ** P4 are running. + ** */ _132: ; @@ -77532,16 +77898,21 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*uintptr)(unsafe.Pointer(bp + 632)) = uintptr(0) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth mTrace = (*Tsqlite3)(unsafe.Pointer(db)).FmTrace - if (*TOp)(unsafe.Pointer(pOp)).Fp1 != 0 { + savedAnalysisLimit = (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0001) != 0 { (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(0) } + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0002) != 0 { + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = (*TOp)(unsafe.Pointer(pOp)).Fp2 + } rc = Xsqlite3_exec(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16)), uintptr(0), uintptr(0), bp+632) (*Tsqlite3)(unsafe.Pointer(db)).FnSqlExec-- (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = mTrace + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = savedAnalysisLimit if *(*uintptr)(unsafe.Pointer(bp + 632)) != 0 || rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 632))) if rc == int32(SQLITE_NOMEM) { goto no_mem @@ -77572,13 +77943,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_SchemaChange) libc.SetBitFieldPtr16Uint32(p+200, libc.Uint32FromInt32(0), 0, 0x3) } else { - zSchema = __ccgo_ts + 6414 + zSchema = __ccgo_ts + 6478 (*(*TInitData)(unsafe.Pointer(bp + 640))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 640))).FiDb = iDb3 (*(*TInitData)(unsafe.Pointer(bp + 640))).FpzErrMsg = p + 168 (*(*TInitData)(unsafe.Pointer(bp + 640))).FmInitFlags = uint32(0) (*(*TInitData)(unsafe.Pointer(bp + 640))).FmxPage = _sqlite3BtreeLastPage(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6428, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6492, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -77593,7 +77964,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* The OP_ParseSchema opcode with a non-NULL P4 argument should parse ** at least one SQL statement. Any less than that indicates that ** the sqlite_schema table is corrupt. */ - rc = _sqlite3CorruptError(tls, int32(99678)) + rc = _sqlite3CorruptError(tls, int32(100155)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -77659,11 +78030,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* Opcode: IntegrityCk P1 P2 P3 P4 P5 ** ** Do an analysis of the currently open database. Store in - ** register P1 the text of an error message describing any problems. - ** If no problems are found, store a NULL in register P1. + ** register (P1+1) the text of an error message describing any problems. + ** If no problems are found, store a NULL in register (P1+1). ** - ** The register P3 contains one less than the maximum number of allowed errors. - ** At most reg(P3) errors will be reported. + ** The register (P1) contains one less than the maximum number of allowed + ** errors. At most reg(P1) errors will be reported. ** In other words, the analysis stops as soon as reg(P1) errors are ** seen. Reg(P1) is updated with the number of errors remaining. ** @@ -77679,9 +78050,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* Register keeping track of errors remaining */ nRoot = (*TOp)(unsafe.Pointer(pOp)).Fp2 aRoot = *(*uintptr)(unsafe.Pointer(pOp + 16)) - pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 - pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 - rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) + pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 + pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1+int32(1))*56 + rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, aMem+uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) _sqlite3VdbeMemSetNull(tls, pIn1) if *(*int32)(unsafe.Pointer(bp + 680)) == 0 { } else { @@ -77787,7 +78158,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** P1 contains the address of the memory cell that contains the first memory ** cell in an array of values used as arguments to the sub-program. P2 ** contains the address to jump to if the sub-program throws an IGNORE - ** exception using the RAISE() function. Register P3 contains the address + ** exception using the RAISE() function. P2 might be zero, if there is + ** no possibility that an IGNORE exception will be raised. + ** Register P3 contains the address ** of a memory cell in this (the parent) VM that is used to allocate the ** memory required by the sub-vdbe at runtime. ** @@ -77828,7 +78201,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } if (*TVdbe)(unsafe.Pointer(p)).FnFrame >= *(*int32)(unsafe.Pointer(db + 136 + 10*4)) { rc = int32(SQLITE_ERROR) - _sqlite3VdbeError(tls, p, __ccgo_ts+6471, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6535, 0) goto abort_due_to_error } /* Register pRt is used to store the memory required to save the state @@ -78192,7 +78565,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* IMP: R-24505-23230 */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError } if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FskipFlag != 0 { @@ -78248,7 +78621,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3VdbeMemFinalize(tls, pMem3, *(*uintptr)(unsafe.Pointer(pOp + 16))) } if rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) goto abort_due_to_error } _sqlite3VdbeChangeEncoding(tls, pMem3, int32(encoding)) @@ -78327,11 +78700,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeRead > int32(1) { rc = int32(SQLITE_ERROR) if eNew == int32(PAGER_JOURNALMODE_WAL) { - v286 = __ccgo_ts + 6508 + v286 = __ccgo_ts + 6572 } else { - v286 = __ccgo_ts + 6513 + v286 = __ccgo_ts + 6577 } - _sqlite3VdbeError(tls, p, __ccgo_ts+6520, libc.VaList(bp+944, v286)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6584, libc.VaList(bp+944, v286)) goto abort_due_to_error } else { if eOld == int32(PAGER_JOURNALMODE_WAL) { @@ -78484,7 +78857,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { if rc&int32(0xFF) == int32(SQLITE_LOCKED) { z1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - _sqlite3VdbeError(tls, p, __ccgo_ts+6572, libc.VaList(bp+944, z1)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6636, libc.VaList(bp+944, z1)) } goto abort_due_to_error } @@ -78646,7 +79019,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TValueList)(unsafe.Pointer(pRhs)).FpOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 pOut = _out2Prerelease(tls, p, pOp) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6601, __ccgo_fp(_sqlite3VdbeValueListFree)) + _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6665, __ccgo_fp(_sqlite3VdbeValueListFree)) goto _187 /* Opcode: VFilter P1 P2 P3 P4 * ** Synopsis: iplan=r[P3] zplan='P4' @@ -78742,7 +79115,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_module)(unsafe.Pointer(pModule4)).FxColumn})))(tls, *(*uintptr)(unsafe.Pointer(pCur5 + 48)), bp+800, (*TOp)(unsafe.Pointer(pOp)).Fp2) _sqlite3VtabImportErrmsg(tls, p, pVtab4) if (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) rc = (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError } _sqlite3VdbeChangeEncoding(tls, pDest2, int32(encoding)) @@ -78996,7 +79369,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If the function returned an error, throw an exception */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError } _sqlite3VdbeDeleteAuxData(tls, db, p+296, (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FiOp, (*TOp)(unsafe.Pointer(pOp)).Fp1) @@ -79147,7 +79520,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { Xsqlite3_free(tls, z2) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeExec > int32(1) { - z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6611, libc.VaList(bp+944, zTrace)) + z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6675, libc.VaList(bp+944, zTrace)) (*(*func(*libc.TLS, Tu32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*Tsqlite3)(unsafe.Pointer(db)).Ftrace))})))(tls, uint32(SQLITE_TRACE_STMT), (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg, p, z3) _sqlite3DbFree(tls, db, z3) } else { @@ -79212,21 +79585,22 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If we reach this point, it means that execution is finished with ** an error of some kind. */ + goto abort_due_to_error abort_due_to_error: ; if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)<= nProgressLimit && (*Tsqlite3)(unsafe.Pointer(db)).FxProgress != uintptr(0) { @@ -79261,22 +79636,25 @@ vdbe_return: /* Jump to here if a string or blob larger than SQLITE_MAX_LENGTH ** is encountered. */ + goto too_big too_big: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5771, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5835, 0) rc = int32(SQLITE_TOOBIG) goto abort_due_to_error /* Jump to here if a malloc() fails. */ + goto no_mem no_mem: ; _sqlite3OomFault(tls, db) - _sqlite3VdbeError(tls, p, __ccgo_ts+1620, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+1634, 0) rc = int32(SQLITE_NOMEM) goto abort_due_to_error /* Jump to here if the sqlite3_interrupt() API sets the interrupt ** flag. */ + goto abort_due_to_interrupt abort_due_to_interrupt: ; rc = int32(SQLITE_INTERRUPT) @@ -79285,10 +79663,10 @@ abort_due_to_interrupt: } var _azType = [4]uintptr{ - 0: __ccgo_ts + 5928, - 1: __ccgo_ts + 5937, - 2: __ccgo_ts + 5944, - 3: __ccgo_ts + 5950, + 0: __ccgo_ts + 5992, + 1: __ccgo_ts + 6001, + 2: __ccgo_ts + 6008, + 3: __ccgo_ts + 6014, } var _and_logic = [9]uint8{ @@ -79439,16 +79817,16 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr type1 = v1 if type1 < uint32(12) { if type1 == uint32(0) { - v2 = __ccgo_ts + 1636 + v2 = __ccgo_ts + 1650 } else { if type1 == uint32(7) { - v3 = __ccgo_ts + 6649 + v3 = __ccgo_ts + 6713 } else { - v3 = __ccgo_ts + 6654 + v3 = __ccgo_ts + 6718 } v2 = v3 } - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6662, libc.VaList(bp+8, v2)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6726, libc.VaList(bp+8, v2)) rc = int32(SQLITE_ERROR) Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) @@ -79466,10 +79844,10 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr rc = Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) if rc == SQLITE_OK { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6691, libc.VaList(bp+8, iRow)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6755, libc.VaList(bp+8, iRow)) rc = int32(SQLITE_ERROR) } else { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) } } } @@ -79509,15 +79887,15 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, pTab = _sqlite3LocateTable(tls, bp+8, uint32(0), zTable, zDb) if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6711, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6775, libc.VaList(bp+440, zTable)) } if pTab != 0 && !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6741, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6805, libc.VaList(bp+440, zTable)) } if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6777, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6841, libc.VaList(bp+440, zTable)) } if !(pTab != 0) { if (*(*TParse)(unsafe.Pointer(bp + 8))).FzErrMsg != 0 { @@ -79547,7 +79925,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6798, libc.VaList(bp+440, zColumn)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6862, libc.VaList(bp+440, zColumn)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -79573,7 +79951,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, break } if (*(*TsColMap)(unsafe.Pointer(pFKey + 64 + uintptr(j)*16))).FiFrom == iCol { - zFault = __ccgo_ts + 6819 + zFault = __ccgo_ts + 6883 } goto _3 _3: @@ -79598,7 +79976,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } /* FIXME: Be smarter about indexes that use expressions */ if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == iCol || int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == -int32(2) { - zFault = __ccgo_ts + 6831 + zFault = __ccgo_ts + 6895 } goto _5 _5: @@ -79612,7 +79990,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if zFault != 0 { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6839, libc.VaList(bp+440, zFault)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6903, libc.VaList(bp+440, zFault)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -79672,6 +80050,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } _sqlite3ParseObjectReset(tls, bp+8) } + goto blob_open_out blob_open_out: ; if rc == SQLITE_OK && int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { @@ -79683,7 +80062,7 @@ blob_open_out: _sqlite3DbFree(tls, db, pBlob) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v7 = __ccgo_ts + 3799 + v7 = __ccgo_ts + 3863 } else { v7 = libc.UintptrFromInt32(0) } @@ -79773,7 +80152,7 @@ func _blobReadWrite(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset in _, _, _, _, _ = db, iKey, p, rc, v p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102190)) + return _sqlite3MisuseError(tls, int32(102671)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -79872,7 +80251,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r _, _, _, _ = db, p, rc, v1 p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102290)) + return _sqlite3MisuseError(tls, int32(102771)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -79886,7 +80265,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r rc = _blobSeekToRow(tls, p, iRow, bp) if rc != SQLITE_OK { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v1 = __ccgo_ts + 3799 + v1 = __ccgo_ts + 3863 } else { v1 = libc.UintptrFromInt32(0) } @@ -84002,25 +84381,25 @@ func _extendFJMatch(tls *libc.TLS, pParse uintptr, ppList uintptr, pMatch uintpt func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema uintptr) (r int32) { var zLegacy uintptr _ = zLegacy - if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6873, int32(7)) != 0 { + if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6937, int32(7)) != 0 { return 0 } zLegacy = (*TTable)(unsafe.Pointer(pTab)).FzName - if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6881+7) == 0 { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6900+7) == 0 { + if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6945+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6964+7) == 0 { return int32(1) } if pSchema == uintptr(0) { return 0 } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6414+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6478+7) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6919+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6983+7) == 0 { return int32(1) } } else { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6919+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6983+7) == 0 { return int32(1) } } @@ -84056,26 +84435,27 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema // ** If the name cannot be resolved unambiguously, leave an error message // ** in pParse and return WRC_Abort. Return WRC_Prune on success. // */ -func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol uintptr, pNC uintptr, pExpr uintptr) (r int32) { +func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRight uintptr, pNC uintptr, pExpr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var cnt, cntTab, eNewExprOp, hit, i, iCol, j, nSubquery, op, v5 int32 - var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10 uintptr + var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10 uintptr var hCol, hCol1 Tu8 var v7, v8 uint32 var _ /* bRowid at bp+8 */ int32 var _ /* pFJMatch at bp+0 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10, v5, v7, v8 /* Loop counters */ - cnt = 0 /* Number of matching column names */ - cntTab = 0 /* Number of potential "rowid" matches */ - nSubquery = 0 /* How many levels of subquery */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ - pMatch = uintptr(0) /* The matching pSrcList item */ - pTopNC = pNC /* First namecontext in the list */ - pSchema = uintptr(0) /* Schema of the expression */ - eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ - pTab = uintptr(0) /* A column of pTab */ - *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10, v5, v7, v8 /* Loop counters */ + cnt = 0 /* Number of matching column names */ + cntTab = 0 /* Number of potential "rowid" matches */ + nSubquery = 0 /* How many levels of subquery */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ + pMatch = uintptr(0) /* The matching pSrcList item */ + pTopNC = pNC /* First namecontext in the list */ + pSchema = uintptr(0) /* Schema of the expression */ + eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ + pTab = uintptr(0) /* A column of pTab */ + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + zCol = *(*uintptr)(unsafe.Pointer(pRight + 8)) /* the name context cannot be NULL. */ /* The Z in X.Y.Z cannot be NULL */ /* Initialize the node to no-match */ @@ -84106,7 +84486,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ; i++ } - if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6933, zDb) == 0 { + if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6997, zDb) == 0 { /* This branch is taken when the main database has been renamed ** using SQLITE_DBCONFIG_MAINDBNAME. */ pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema @@ -84199,7 +84579,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TTable)(unsafe.Pointer(pTab)).FpSchema != pSchema { goto _2 } - if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6938) != 0 { + if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+7002) != 0 { goto _2 } } @@ -84311,16 +84691,16 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != uintptr(0) { op = int32((*TParse)(unsafe.Pointer(pParse)).FeTriggerOp) if (*TParse)(unsafe.Pointer(pParse)).FbReturning != 0 { - if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0) { + if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0 || _isValidSchemaTableName(tls, zTab, (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab, uintptr(0)) != 0) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = libc.BoolInt32(op != int32(TK_DELETE)) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } } else { - if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6940, zTab) == 0 { + if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+7004, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(1) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } else { - if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6944, zTab) == 0 { + if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+7008, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = 0 pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } @@ -84329,7 +84709,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UUpsert) != 0 && zTab != uintptr(0) { pUpsert = *(*uintptr)(unsafe.Pointer(pNC + 16)) - if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6948, zTab) == 0 { + if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+7012, zTab) == 0 { pTab = (*(*TSrcItem)(unsafe.Pointer((*TUpsert)(unsafe.Pointer(pUpsert)).FpUpsertSrc + 8))).FpTab (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(EXCLUDED_TABLE_NUMBER) } @@ -84445,15 +84825,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if int32(uint32(*(*uint16)(unsafe.Pointer(pEList + 8 + uintptr(j)*32 + 16 + 4))&0x3>>0)) == ENAME_NAME && Xsqlite3_stricmp(tls, zAs, zCol) == 0 { pOrig = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(j)*32))).FpExpr if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 && (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6957, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7021, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Win)) != uint32(0) && ((*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 || pNC != pTopNC) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6988, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7052, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if _sqlite3ExprVectorSize(tls, pOrig) != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7025, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7089, 0) return int32(WRC_Abort) } _resolveAlias(tls, pParse, pEList, j, pExpr, nSubquery) @@ -84505,7 +84885,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** a huge amount of legacy SQL that uses it. So for now, we just ** issue a warning. */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+7043, libc.VaList(bp+24, zCol)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+7107, libc.VaList(bp+24, zCol)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_STRING) libc.X__builtin___memset_chk(tls, pExpr+64, 0, uint64(8), libc.X__builtin_object_size(tls, pExpr+64, 0)) return int32(WRC_Prune) @@ -84534,7 +84914,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } _extendFJMatch(tls, pParse, bp, pMatch, (*TExpr)(unsafe.Pointer(pExpr)).FiColumn) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_FUNCTION) - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 7078 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 7142 *(*uintptr)(unsafe.Pointer(pExpr + 32)) = *(*uintptr)(unsafe.Pointer(bp)) cnt = int32(1) goto lookupname_end @@ -84544,18 +84924,22 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } } if cnt == 0 { - v10 = __ccgo_ts + 7087 + v10 = __ccgo_ts + 7151 } else { - v10 = __ccgo_ts + 7102 + v10 = __ccgo_ts + 7166 } zErr = v10 if zDb != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7124, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7188, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) } else { if zTab != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7137, libc.VaList(bp+24, zErr, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7201, libc.VaList(bp+24, zErr, zTab, zCol)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7147, libc.VaList(bp+24, zErr, zCol)) + if cnt == 0 && (*TExpr)(unsafe.Pointer(pRight)).Fflags&uint32(libc.Int32FromInt32(EP_DblQuoted)) != uint32(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7211, libc.VaList(bp+24, zErr, zCol)) + } else { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7272, libc.VaList(bp+24, zErr, zCol)) + } } } _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -84585,10 +84969,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** If a generated column is referenced, set bits for every column ** of the table. */ - if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 && cnt == int32(1) && pMatch != uintptr(0) { - *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + if pMatch != 0 { + if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { + *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + } else { + libc.SetBitFieldPtr16Uint32(pMatch+60+4, libc.Uint32FromInt32(1), 14, 0x4000) + } } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(eNewExprOp) + goto lookupname_end lookupname_end: ; if cnt == int32(1) { @@ -84678,19 +85067,19 @@ func _notValidImpl(tls *libc.TLS, pParse uintptr, pNC uintptr, zMsg uintptr, pEx defer tls.Free(32) var zIn uintptr _ = zIn - zIn = __ccgo_ts + 7154 + zIn = __ccgo_ts + 7279 if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IdxExpr) != 0 { - zIn = __ccgo_ts + 7182 + zIn = __ccgo_ts + 7307 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IsCheck) != 0 { - zIn = __ccgo_ts + 7200 + zIn = __ccgo_ts + 7325 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_GenCol) != 0 { - zIn = __ccgo_ts + 7218 + zIn = __ccgo_ts + 7343 } } } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7236, libc.VaList(bp+8, zMsg, zIn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7361, libc.VaList(bp+8, zMsg, zIn)) if pExpr != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } @@ -84738,8 +85127,8 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { var anRef [8]int32 var auth, i, is_agg, n, nLeft, nRef, nRight, no_such_func, rc, savedAllowFlags, wrong_num_args, v12, v4, v6, v7 int32 var enc Tu8 - var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zColumn, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zColumn, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 + var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 pNC = *(*uintptr)(unsafe.Pointer(pWalker + 40)) pParse = (*TNameContext)(unsafe.Pointer(pNC)).FpParse switch int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) { @@ -84858,11 +85247,11 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_ID) { zDb = uintptr(0) zTable = uintptr(0) - zColumn = *(*uintptr)(unsafe.Pointer(pExpr + 8)) + pRight = pExpr } else { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7256, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7381, uintptr(0), pExpr) } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_ID) { @@ -84873,13 +85262,12 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { pRight = (*TExpr)(unsafe.Pointer(pRight)).FpRight } zTable = *(*uintptr)(unsafe.Pointer(pLeft + 8)) - zColumn = *(*uintptr)(unsafe.Pointer(pRight + 8)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameTokenRemap(tls, pParse, pExpr, pRight) _sqlite3RenameTokenRemap(tls, pParse, pExpr+64, pLeft) } } - return _lookupName(tls, pParse, zDb, zTable, zColumn, pNC, pExpr) + return _lookupName(tls, pParse, zDb, zTable, pRight, pNC, pExpr) /* Resolve function names */ fallthrough @@ -84918,7 +85306,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if n == int32(2) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = _exprProbability(tls, (*(*TExprList_item)(unsafe.Pointer(pList + 8 + 1*32))).FpExpr) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7273, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7398, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } } else { @@ -84942,7 +85330,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { auth = _sqlite3AuthCheck(tls, pParse, int32(SQLITE_FUNCTION), uintptr(0), (*TFuncDef)(unsafe.Pointer(pDef)).FzName, uintptr(0)) if auth != SQLITE_OK { if auth == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7337, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7462, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) @@ -84963,7 +85351,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { ** in a CHECK constraint. SQLServer, MySQL, and PostgreSQL all ** all this. */ if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7373, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7498, uintptr(0), pExpr) } } else { /* Must fit in 8 bits */ @@ -84987,29 +85375,29 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { } if 0 == libc.BoolInt32(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME)) { if pDef != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FxValue == uintptr(0) && pWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7401, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7526, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 || is_agg != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 && !(pWin != 0) || is_agg != 0 && pWin != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 { if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 || pWin != 0 { - zType = __ccgo_ts + 7444 + zType = __ccgo_ts + 7569 } else { - zType = __ccgo_ts + 7451 + zType = __ccgo_ts + 7576 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7461, libc.VaList(bp+8, zType, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7586, libc.VaList(bp+8, zType, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ is_agg = 0 } else { if no_such_func != 0 && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7489, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7614, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if wrong_num_args != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7511, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7636, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7555, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7680, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { @@ -85033,7 +85421,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { *(*int32)(unsafe.Pointer(pNC + 40)) &= ^(libc.Int32FromInt32(NC_AllowWin) | v7) } } else { - if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { is_agg = int32(1) } } @@ -85094,18 +85482,19 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) { nRef = (*TNameContext)(unsafe.Pointer(pNC)).FnRef if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_SelfRef) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7603, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7728, pExpr, pExpr) } else { _sqlite3WalkSelect(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 32))) } if nRef != (*TNameContext)(unsafe.Pointer(pNC)).FnRef { *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 4)) |= uint32(SF_Correlated) } *(*int32)(unsafe.Pointer(pNC + 40)) |= int32(NC_Subquery) } case int32(TK_VARIABLE): if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IsCheck)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7614, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7739, pExpr, pExpr) } case int32(TK_IS): fallthrough @@ -85151,7 +85540,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { nRight = _sqlite3ExprVectorSize(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight) } if nLeft != nRight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7025, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7089, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } break @@ -85276,7 +85665,7 @@ func _resolveOrderByTermToExprList(tls *libc.TLS, pParse uintptr, pSelect uintpt func _resolveOutOfRangeError(tls *libc.TLS, pParse uintptr, zType uintptr, i int32, mx int32, pError uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7625, libc.VaList(bp+8, i, zType, mx)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7750, libc.VaList(bp+8, i, zType, mx)) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pError) } @@ -85311,7 +85700,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7681, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7806, 0) return int32(1) } i = 0 @@ -85349,7 +85738,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } if _sqlite3ExprIsInteger(tls, pE, bp) != 0 { if *(*int32)(unsafe.Pointer(bp)) <= 0 || *(*int32)(unsafe.Pointer(bp)) > (*TExprList)(unsafe.Pointer(pEList)).FnExpr { - _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7715, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) + _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7840, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) return int32(1) } } else { @@ -85419,7 +85808,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r break } if int32(uint32(*(*uint16)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32 + 16 + 4))&0x4>>2)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7721, libc.VaList(bp+16, i+int32(1))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7846, libc.VaList(bp+16, i+int32(1))) return int32(1) } goto _3 @@ -85453,7 +85842,7 @@ func _sqlite3ResolveOrderGroupBy(tls *libc.TLS, pParse uintptr, pSelect uintptr, return 0 } if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7782, libc.VaList(bp+8, zType)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7907, libc.VaList(bp+8, zType)) return int32(1) } pEList = (*TSelect)(unsafe.Pointer(pSelect)).FpEList @@ -85699,6 +86088,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } pItem = (*TSelect)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*104 + /* Test of tag-20240424-1*/ if (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FselFlags&uint32(SF_Resolved) == uint32(0) { if pOuterNC != 0 { v3 = (*TNameContext)(unsafe.Pointer(pOuterNC)).FnRef @@ -85765,7 +86155,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { (*(*TNameContext)(unsafe.Pointer(bp))).FncFlags |= int32(NC_UEList) if (*TSelect)(unsafe.Pointer(p)).FpHaving != 0 { if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Aggregate) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7813, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7938, 0) return int32(WRC_Abort) } if _sqlite3ResolveExprNames(tls, bp, (*TSelect)(unsafe.Pointer(p)).FpHaving) != 0 { @@ -85832,7 +86222,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** is not detected until much later, and so we need to go ahead and ** resolve those symbols on the incorrect ORDER BY for consistency. */ - if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7715) != 0 { + if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7840) != 0 { return int32(WRC_Abort) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -85843,7 +86233,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** the GROUP BY clause does not contain aggregate functions. */ if pGroupBy != 0 { - if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7852) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { + if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7977) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(WRC_Abort) } i = 0 @@ -85853,7 +86243,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } if (*TExpr)(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(pItem2)).FpExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7858, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7983, 0) return int32(WRC_Abort) } goto _6 @@ -86834,7 +87224,7 @@ func _codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32 return } if nLeft != _sqlite3ExprVectorSize(tls, pRight) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7025, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7089, 0) return } if int32(op) == int32(TK_LE) { @@ -86913,7 +87303,7 @@ func _sqlite3ExprCheckHeight(tls *libc.TLS, pParse uintptr, nHeight int32) (r in rc = SQLITE_OK mxHeight = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 3*4)) if nHeight > mxHeight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7917, libc.VaList(bp+8, mxHeight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8042, libc.VaList(bp+8, mxHeight)) rc = int32(SQLITE_ERROR) } return rc @@ -87079,11 +87469,12 @@ func _sqlite3ExprSetErrorOffset(tls *libc.TLS, pExpr uintptr, iOfst int32) { // ** appear to be quoted. If the quotes were of the form "..." (double-quotes) // ** then the EP_DblQuoted flag is set on the expression node. // ** -// ** Special case: If op==TK_INTEGER and pToken points to a string that -// ** can be translated into a 32-bit integer, then the token is not -// ** stored in u.zToken. Instead, the integer values is written -// ** into u.iValue and the EP_IntValue flag is set. No extra storage +// ** Special case (tag-20240227-a): If op==TK_INTEGER and pToken points to +// ** a string that can be translated into a 32-bit integer, then the token is +// ** not stored in u.zToken. Instead, the integer values is written +// ** into u.iValue and the EP_IntValue flag is set. No extra storage // ** is allocated to hold the integer text and the dequote flag is ignored. +// ** See also tag-20240227-b. // */ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequote int32) (r uintptr) { bp := tls.Alloc(16) @@ -87096,7 +87487,7 @@ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequ *(*int32)(unsafe.Pointer(bp)) = 0 if pToken != 0 { if op != int32(TK_INTEGER) || (*TToken)(unsafe.Pointer(pToken)).Fz == uintptr(0) || _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pToken)).Fz, bp) == 0 { - nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) + nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) /* tag-20240227-a */ } } pNew = _sqlite3DbMallocRawNN(tls, db, uint64(72)+uint64(nExtra)) @@ -87257,11 +87648,11 @@ func _sqlite3ExprListToValues(tls *libc.TLS, pParse uintptr, nElem int32, pEList } if nExprElem != nElem { if nExprElem > int32(1) { - v2 = __ccgo_ts + 7965 + v2 = __ccgo_ts + 8090 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7967, libc.VaList(bp+8, nExprElem, v2, nElem)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8092, libc.VaList(bp+8, nExprElem, v2, nElem)) break } pSel = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(pExpr + 32)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) @@ -87310,7 +87701,7 @@ func _sqlite3ExprAnd(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintpt if f&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_InnerON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { _sqlite3ExprDeferredDelete(tls, pParse, pLeft) _sqlite3ExprDeferredDelete(tls, pParse, pRight) - return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1724) + return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1784) } else { return _sqlite3PExpr(tls, pParse, int32(TK_AND), pLeft, pRight) } @@ -87338,7 +87729,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u } *(*int32)(unsafe.Pointer(pNew + 52)) = int32(int64((*TToken)(unsafe.Pointer(pToken)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) if pList != 0 && (*TExprList)(unsafe.Pointer(pList)).FnExpr > *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 6*4)) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8011, libc.VaList(bp+8, pToken)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8136, libc.VaList(bp+8, pToken)) } *(*uintptr)(unsafe.Pointer(pNew + 32)) = pList *(*Tu32)(unsafe.Pointer(pNew + 4)) |= uint32(libc.Int32FromInt32(EP_HasFunc)) @@ -87358,7 +87749,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u func _sqlite3ExprOrderByAggregateError(tls *libc.TLS, pParse uintptr, p uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8045, libc.VaList(bp+8, p)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8170, libc.VaList(bp+8, p)) } // C documentation @@ -87429,7 +87820,7 @@ func _sqlite3ExprFunctionUsable(tls *libc.TLS, pParse uintptr, pExpr uintptr, pD ** SQLITE_DBCONFIG_TRUSTED_SCHEMA is off (meaning ** that the schema is possibly tainted). */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8095, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8220, libc.VaList(bp+8, pExpr)) } } } @@ -87481,7 +87872,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n bOk = libc.BoolInt32(0 == _sqlite3Atoi64(tls, z+1, bp, int32(n-uint32(1)), uint8(SQLITE_UTF8))) } if bOk == 0 || *(*Ti64)(unsafe.Pointer(bp)) < int64(1) || *(*Ti64)(unsafe.Pointer(bp)) > int64(*(*int32)(unsafe.Pointer(db + 136 + 9*4))) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8115, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8240, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) return } @@ -87514,7 +87905,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n } (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = x if int32(x) > *(*int32)(unsafe.Pointer(db + 136 + 9*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8158, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8283, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } } @@ -87525,11 +87916,13 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n // ** Recursively delete an expression tree. // */ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { + var pLeft uintptr + _ = pLeft + goto exprDeleteRestart +exprDeleteRestart: + ; if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)|libc.Int32FromInt32(EP_Leaf)) != libc.Uint32FromInt32(0)) { /* The Expr.x union is never used at the same time as Expr.pRight */ - if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { - _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpLeft) - } if (*TExpr)(unsafe.Pointer(p)).FpRight != 0 { _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpRight) } else { @@ -87542,6 +87935,17 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { } } } + if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { + pLeft = (*TExpr)(unsafe.Pointer(p)).FpLeft + if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) && !((*TExpr)(unsafe.Pointer(pLeft)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { + /* Avoid unnecessary recursion on unary operators */ + _sqlite3DbNNFreeNN(tls, db, p) + p = pLeft + goto exprDeleteRestart + } else { + _sqlite3ExprDeleteNN(tls, db, pLeft) + } + } } if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { _sqlite3DbNNFreeNN(tls, db, p) @@ -87588,11 +87992,11 @@ func _sqlite3ClearOnOrUsing(tls *libc.TLS, db uintptr, p uintptr) { // ** // ** The pExpr might be deleted immediately on an OOM error. // ** -// ** The deferred delete is (currently) implemented by adding the -// ** pExpr to the pParse->pConstExpr list with a register number of 0. +// ** Return 0 if the delete was successfully deferred. Return non-zero +// ** if the delete happened immediately because of an OOM. // */ -func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) { - _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr) +func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + return libc.BoolInt32(uintptr(0) == _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr)) } // C documentation @@ -88081,16 +88485,20 @@ func _sqlite3SrcListDup(tls *libc.TLS, db uintptr, p uintptr, flags int32) (r ui (*TSrcItem)(unsafe.Pointer(pNewItem)).FiCursor = (*TSrcItem)(unsafe.Pointer(pOldItem)).FiCursor (*TSrcItem)(unsafe.Pointer(pNewItem)).FaddrFillSub = (*TSrcItem)(unsafe.Pointer(pOldItem)).FaddrFillSub (*TSrcItem)(unsafe.Pointer(pNewItem)).FregReturn = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregReturn + (*TSrcItem)(unsafe.Pointer(pNewItem)).FregResult = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregResult if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x2>>1)) != 0 { *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3DbStrDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88))) + } else { + if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { + *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) + } else { + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pNewItem)).Fu1)) = *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pOldItem)).Fu1)) + } } (*TSrcItem)(unsafe.Pointer(pNewItem)).Fu2 = (*TSrcItem)(unsafe.Pointer(pOldItem)).Fu2 if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x100>>8)) != 0 { (*TCteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNewItem + 96)))).FnUse++ } - if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { - *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) - } v4 = (*TSrcItem)(unsafe.Pointer(pOldItem)).FpTab (*TSrcItem)(unsafe.Pointer(pNewItem)).FpTab = v4 pTab = v4 @@ -88352,7 +88760,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, n = v2 } if v3 && (*TIdList)(unsafe.Pointer(pColumns)).FnId != v2 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8181, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8306, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) goto vector_append_error } i = 0 @@ -88384,6 +88792,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, ** the RHS and LHS sizes match during code generation. */ (*TExpr)(unsafe.Pointer(pFirst)).FiTable = (*TIdList)(unsafe.Pointer(pColumns)).FnId } + goto vector_append_error vector_append_error: ; _sqlite3ExprUnmapAndDelete(tls, pParse, pExpr) @@ -88480,7 +88889,7 @@ func _sqlite3ExprListCheckLength(tls *libc.TLS, pParse uintptr, pEList uintptr, _ = mx mx = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 2*4)) if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr > mx { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8211, libc.VaList(bp+8, zObject)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8336, libc.VaList(bp+8, zObject)) } } @@ -88578,10 +88987,10 @@ func _sqlite3SelectWalkFail(tls *libc.TLS, pWalker uintptr, NotUsed uintptr) (r // ** anything else 0 // */ func _sqlite3IsTrueOrFalse(tls *libc.TLS, zIn uintptr) (r Tu32) { - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8234) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8359) == 0 { return uint32(EP_IsTrue) } - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8239) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8364) == 0 { return uint32(EP_IsFalse) } return uint32(0) @@ -88663,6 +89072,51 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { return pExpr } +// C documentation +// +// /* +// ** pExpr is a TK_FUNCTION node. Try to determine whether or not the +// ** function is a constant function. A function is constant if all of +// ** the following are true: +// ** +// ** (1) It is a scalar function (not an aggregate or window function) +// ** (2) It has either the SQLITE_FUNC_CONSTANT or SQLITE_FUNC_SLOCHNG +// ** property. +// ** (3) All of its arguments are constants +// ** +// ** This routine sets pWalker->eCode to 0 if pExpr is not a constant. +// ** It makes no changes to pWalker->eCode if pExpr is constant. In +// ** every case, it returns WRC_Abort. +// ** +// ** Called as a service subroutine from exprNodeIsConstant(). +// */ +func _exprNodeIsConstantFunction(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef, pList, v1 uintptr + var n int32 + var v2 bool + _, _, _, _, _, _ = db, n, pDef, pList, v1, v2 /* The database */ + if v2 = (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)) != uint32(0); !v2 { + v1 = *(*uintptr)(unsafe.Pointer(pExpr + 32)) + pList = v1 + } + if v2 || v1 == uintptr(0) { + n = 0 + } else { + n = (*TExprList)(unsafe.Pointer(pList)).FnExpr + _sqlite3WalkExprList(tls, pWalker, pList) + if int32((*TWalker)(unsafe.Pointer(pWalker)).FeCode) == 0 { + return int32(WRC_Abort) + } + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)|libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG)) == uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) +} + // C documentation // // /* @@ -88710,8 +89164,12 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 } return WRC_Continue } else { - (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) - return int32(WRC_Abort) + if (*TWalker)(unsafe.Pointer(pWalker)).FpParse != 0 { + return _exprNodeIsConstantFunction(tls, pWalker, pExpr) + } else { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } } fallthrough case int32(TK_ID): @@ -88738,6 +89196,8 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 case int32(TK_REGISTER): fallthrough case int32(TK_DOT): + fallthrough + case int32(TK_RAISE): (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) return int32(WRC_Abort) case int32(TK_VARIABLE): @@ -88763,14 +89223,14 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 return r } -func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32) { +func _exprIsConst(tls *libc.TLS, pParse uintptr, p uintptr, initFlag int32) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* w at bp+0 */ TWalker (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(initFlag) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) - *(*int32)(unsafe.Pointer(bp + 40)) = iCur _sqlite3WalkExpr(tls, bp, p) return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } @@ -88784,9 +89244,15 @@ func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32 // ** For the purposes of this function, a double-quoted string (ex: "abc") // ** is considered a variable but a single-quoted string (ex: 'abc') is // ** a constant. +// ** +// ** The pParse parameter may be NULL. But if it is NULL, there is no way +// ** to determine if function calls are constant or not, and hence all +// ** function calls will be considered to be non-constant. If pParse is +// ** not NULL, then a function call might be constant, depending on the +// ** function and on its parameters. // */ -func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(1), 0) +func _sqlite3ExprIsConstant(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(1)) } // C documentation @@ -88804,8 +89270,24 @@ func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { // ** can be added to the pParse->pConstExpr list and evaluated once when // ** the prepared statement starts up. See sqlite3ExprCodeRunJustOnce(). // */ -func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(2), 0) +func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(2)) +} + +// C documentation +// +// /* +// ** This routine examines sub-SELECT statements as an expression is being +// ** walked as part of sqlite3ExprIsTableConstant(). Sub-SELECTs are considered +// ** constant as long as they are uncorrelated - meaning that they do not +// ** contain any terms from outer contexts. +// */ +func _exprSelectWalkTableConstant(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + if (*TSelect)(unsafe.Pointer(pSelect)).FselFlags&uint32(SF_Correlated) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) } // C documentation @@ -88815,9 +89297,25 @@ func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { // ** for any single row of the table with cursor iCur. In other words, the // ** expression must not refer to any non-deterministic function nor any // ** table other than iCur. +// ** +// ** Consider uncorrelated subqueries to be constants if the bAllowSubq +// ** parameter is true. // */ -func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) { - return _exprIsConst(tls, p, int32(3), iCur) +func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32, bAllowSubq int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(3) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = uintptr(0) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) + if bAllowSubq != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_exprSelectWalkTableConstant) + } else { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) + } + *(*int32)(unsafe.Pointer(bp + 40)) = iCur + _sqlite3WalkExpr(tls, bp, p) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } // C documentation @@ -88837,7 +89335,10 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** // ** (1) pExpr cannot refer to any table other than pSrc->iCursor. // ** -// ** (2) pExpr cannot use subqueries or non-deterministic functions. +// ** (2a) pExpr cannot use subqueries unless the bAllowSubq parameter is +// ** true and the subquery is non-correlated +// ** +// ** (2b) pExpr cannot use non-deterministic functions. // ** // ** (3) pSrc cannot be part of the left operand for a RIGHT JOIN. // ** (Is there some way to relax this constraint?) @@ -88863,7 +89364,7 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** which leads to incorrect answers. See also restriction (9) // ** on push-down. // */ -func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32) (r int32) { +func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32, bAllowSubq int32) (r int32) { var jj int32 var pSrc uintptr _, _ = jj, pSrc @@ -88901,7 +89402,8 @@ func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList jj++ } } - return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor) /* rules (1), (2) */ + /* Rules (1), (2a), and (2b) handled by the following: */ + return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor, bAllowSubq) } // C documentation @@ -88999,7 +89501,7 @@ func _sqlite3ExprIsConstantOrGroupBy(tls *libc.TLS, pParse uintptr, p uintptr, p // ** a constant. // */ func _sqlite3ExprIsConstantOrFunction(tls *libc.TLS, p uintptr, isInit Tu8) (r int32) { - return _exprIsConst(tls, p, int32(4)+int32(isInit), 0) + return _exprIsConst(tls, uintptr(0), p, int32(4)+int32(isInit)) } // C documentation @@ -89138,13 +89640,13 @@ func _sqlite3ExprNeedsNoAffinityChange(tls *libc.TLS, p uintptr, aff int8) (r in // ** Return TRUE if the given string is a row-id column name. // */ func _sqlite3IsRowid(tls *libc.TLS, z uintptr) (r int32) { - if _sqlite3StrICmp(tls, z, __ccgo_ts+8245) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8370) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+8253) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8378) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+8259) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8384) == 0 { return int32(1) } return 0 @@ -89162,9 +89664,9 @@ func _sqlite3RowidAlias(tls *libc.TLS, pTab uintptr) (r uintptr) { var iCol, ii int32 _, _, _ = azOpt, iCol, ii azOpt = [3]uintptr{ - 0: __ccgo_ts + 8245, - 1: __ccgo_ts + 8253, - 2: __ccgo_ts + 8259, + 0: __ccgo_ts + 8370, + 1: __ccgo_ts + 8378, + 2: __ccgo_ts + 8384, } ii = 0 for { @@ -89284,13 +89786,13 @@ func _sqlite3SetHasNullFlag(tls *libc.TLS, v uintptr, iCur int32, regHasNull int // ** The argument is an IN operator with a list (not a subquery) on the // ** right-hand side. Return TRUE if that list is constant. // */ -func _sqlite3InRhsIsConstant(tls *libc.TLS, pIn uintptr) (r int32) { +func _sqlite3InRhsIsConstant(tls *libc.TLS, pParse uintptr, pIn uintptr) (r int32) { var pLHS uintptr var res int32 _, _ = pLHS, res pLHS = (*TExpr)(unsafe.Pointer(pIn)).FpLeft (*TExpr)(unsafe.Pointer(pIn)).FpLeft = uintptr(0) - res = _sqlite3ExprIsConstant(tls, pIn) + res = _sqlite3ExprIsConstant(tls, pParse, pIn) (*TExpr)(unsafe.Pointer(pIn)).FpLeft = pLHS return res } @@ -89446,7 +89948,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 iAddr = _sqlite3VdbeAddOp0(tls, v, int32(OP_Once)) _sqlite3OpenTable(tls, pParse, iTab, iDb, pTab, int32(OP_OpenRead)) eType = int32(IN_INDEX_ROWID) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+8263, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+8388, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) _sqlite3VdbeJumpHere(tls, v, iAddr) } else { /* Iterator variable */ affinity_ok = int32(1) @@ -89546,7 +90048,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 if colUsed == libc.Uint64FromInt32(1)<0 so that the new limit is either 1 or 0 */ db = (*TParse)(unsafe.Pointer(pParse)).Fdb - pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1724) + pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1784) if pLimit != 0 { (*TExpr)(unsafe.Pointer(pLimit)).FaffExpr = int8(SQLITE_AFF_NUMERIC) pLimit = _sqlite3PExpr(tls, pParse, int32(TK_NE), _sqlite3ExprDup(tls, db, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft, 0), pLimit) @@ -90037,7 +90539,7 @@ func _sqlite3CodeSubselect(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int3 (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft = pLimit } else { /* If there is no pre-existing limit add a limit of 1 */ - pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8478) + pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8603) (*TSelect)(unsafe.Pointer(pSel)).FpLimit = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), pLimit, uintptr(0)) } (*TSelect)(unsafe.Pointer(pSel)).FiLimit = 0 @@ -90360,11 +90862,13 @@ func _sqlite3ExprCodeIN(tls *libc.TLS, pParse uintptr, pExpr uintptr, destIfFals } /* Jumps here in order to return true. */ _sqlite3VdbeJumpHere(tls, v, addrTruthOp) + goto sqlite3ExprCodeIN_finished sqlite3ExprCodeIN_finished: ; if rLhs != rLhsOrig { _sqlite3ReleaseTempReg(tls, pParse, rLhs) } + goto sqlite3ExprCodeIN_oom_error sqlite3ExprCodeIN_oom_error: ; _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiMap) @@ -90422,13 +90926,13 @@ func _codeInteger(tls *libc.TLS, pParse uintptr, pExpr uintptr, negFlag int32, i z = *(*uintptr)(unsafe.Pointer(pExpr + 8)) c = _sqlite3DecOrHexToI64(tls, z, bp) if c == int32(3) && !(negFlag != 0) || c == int32(2) || negFlag != 0 && *(*Ti64)(unsafe.Pointer(bp)) == int64(-libc.Int32FromInt32(1))-(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<= (*TAggInfo)(unsafe.Pointer(pInfo)).FnFunc { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8571, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8696, libc.VaList(bp+160, pExpr)) } else { return (*TAggInfo)(unsafe.Pointer(pInfo)).FiFirstReg + (*TAggInfo)(unsafe.Pointer(pInfo)).FnColumn + int32((*TExpr)(unsafe.Pointer(pExpr)).FiAgg) } @@ -91152,7 +91652,7 @@ expr_code_doover: if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { return (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FregResult } - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { /* SQL functions can be expensive. So try to avoid running them ** multiple times if we know they always give the same result */ return _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) @@ -91167,7 +91667,7 @@ expr_code_doover: zId = *(*uintptr)(unsafe.Pointer(pExpr + 8)) pDef = _sqlite3FindFunction(tls, db, zId, nFarg, enc, uint8(0)) if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8598, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8723, libc.VaList(bp+160, pExpr)) break } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_INLINE) != uint32(0) && pFarg != uintptr(0) { @@ -91182,7 +91682,7 @@ expr_code_doover: if !(i < nFarg) { break } - if i < int32(32) && _sqlite3ExprIsConstant(tls, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { + if i < int32(32) && _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { constMask |= libc.Uint32FromInt32(1) << i } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_NEEDCOLL) != uint32(0) && !(pColl != 0) { @@ -91272,7 +91772,7 @@ expr_code_doover: } n1 = _sqlite3ExprVectorSize(tls, pLeft2) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != n1 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8181, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8306, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) } return (*TExpr)(unsafe.Pointer(pLeft2)).FiTable + int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) case int32(TK_IN): @@ -91304,8 +91804,9 @@ expr_code_doover: if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Collate)) != libc.Uint32FromInt32(0)) { /* A TK_COLLATE Expr node without the EP_Collate tag is a so-called ** "SOFT-COLLATE" that is added to constraints that are pushed down - ** from outer queries into sub-queries by the push-down optimization. - ** Clear subtypes as subtypes may not cross a subquery boundary. + ** from outer queries into sub-queries by the WHERE-clause push-down + ** optimization. Clear subtypes as subtypes may not cross a subquery + ** boundary. */ _sqlite3ExprCode(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, target) _sqlite3VdbeAddOp1(tls, v, int32(OP_ClrSubtype), target) @@ -91334,7 +91835,7 @@ expr_code_doover: _sqlite3VdbeAddOp1(tls, v, int32(OP_RealAffinity), target) } case int32(TK_VECTOR): - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7025, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7089, 0) break /* TK_IF_NULL_ROW Expr nodes are inserted ahead of expressions ** that derive from the right-hand table of a LEFT JOIN. The @@ -91449,7 +91950,7 @@ expr_code_doover: _sqlite3VdbeResolveLabel(tls, v, endLabel) case int32(TK_RAISE): if !((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != 0) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8622, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8747, 0) return 0 } if int32((*TExpr)(unsafe.Pointer(pExpr)).FaffExpr) == int32(OE_Abort) { @@ -91569,7 +92070,7 @@ func _sqlite3ExprCodeTemp(tls *libc.TLS, pParse uintptr, pExpr uintptr, pReg uin var r1, r2 int32 _, _ = r1, r2 pExpr = _sqlite3ExprSkipCollateAndLikely(tls, pExpr) - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { *(*int32)(unsafe.Pointer(pReg)) = 0 r2 = _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) } else { @@ -91639,7 +92140,7 @@ func _sqlite3ExprCodeCopy(tls *libc.TLS, pParse uintptr, pExpr uintptr, target i // ** might choose to code the expression at initialization time. // */ func _sqlite3ExprCodeFactorable(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) { - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target) } else { _sqlite3ExprCodeCopy(tls, pParse, pExpr, target) @@ -91708,7 +92209,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ _sqlite3VdbeAddOp2(tls, v, int32(copyOp), j+srcReg-int32(1), target+i) } } else { - if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target+i) } else { inReg = _sqlite3ExprCodeTarget(tls, pParse, pExpr, target+i) @@ -91972,6 +92473,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsTrue)) == uint32(EP_IsTrue) { @@ -92177,6 +92679,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) { @@ -93003,17 +93506,15 @@ func _agginfoPersistExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnColumn && (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } else { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnFunc && (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } @@ -93132,6 +93633,7 @@ func _findOrCreateAggInfoColumn(tls *libc.TLS, pParse uintptr, pAggInfo uintptr, *(*Tu16)(unsafe.Pointer(v4))++ (*TAggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = int16(v3) } + goto fix_up_expr fix_up_expr: ; (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo = pAggInfo @@ -93562,8 +94064,8 @@ func _sqlite3FirstAvailableRegister(tls *libc.TLS, pParse uintptr, iMin int32) ( func _isAlterableTable(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) - if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6873, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8672, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6937, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8797, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -93582,9 +94084,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, bp := tls.Alloc(48) defer tls.Free(48) (*TParse)(unsafe.Pointer(pParse)).FcolNamesSet = uint8(1) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8700, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8825, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8875, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9000, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) } } @@ -93600,9 +94102,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, func _renameFixQuotes(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9049, libc.VaList(bp+8, zDb, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9174, libc.VaList(bp+8, zDb, zDb)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9196, 0) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9321, 0) } } @@ -93658,7 +94160,7 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName ** in database iDb. If so, this is an error. */ if _sqlite3FindTable(tls, db, zName, zDb) != 0 || _sqlite3FindIndex(tls, db, zName, zDb) != 0 || _sqlite3IsShadowTableOf(tls, db, pTab, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9347, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9472, libc.VaList(bp+8, zName)) goto exit_rename_table } /* Make sure it is not a system table being altered, or a reserved name @@ -93667,11 +94169,11 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { goto exit_rename_table } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9406, zName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9531, zName) { goto exit_rename_table } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9412, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9537, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_rename_table } /* Invoke the authorization callback. */ @@ -93701,21 +94203,21 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName nTabName = _sqlite3Utf8CharLen(tls, zTabName, -int32(1)) /* Rewrite all CREATE TABLE, INDEX, TRIGGER or VIEW statements in ** the schema to use the new table name. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9439, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9564, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) /* Update the tbl_name and name columns of the sqlite_schema table ** as required. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9623, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9748, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) /* If the sqlite_sequence table exists in this database, then update ** it with the new table name. */ - if _sqlite3FindTable(tls, db, __ccgo_ts+9928, zDb) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9944, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if _sqlite3FindTable(tls, db, __ccgo_ts+10053, zDb) != 0 { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10069, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* If the table being renamed is not itself part of the temp database, ** edit view and trigger definitions within the temp database ** as required. */ if iDb != int32(1) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10002, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10127, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) } /* If this is a virtual table, invoke the xRename() function if ** one is defined. The xRename() callback will modify the names @@ -93731,7 +94233,8 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp4(tls, v, int32(OP_VRename), i, 0, 0, pVTab, -int32(11)) } _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+10267, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+10392, 0) + goto exit_rename_table exit_rename_table: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -93747,7 +94250,7 @@ exit_rename_table: func _sqlite3ErrorIfNotEmpty(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zErr uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10280, libc.VaList(bp+8, zErr, zDb, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10405, libc.VaList(bp+8, zErr, zDb, zTab)) } // C documentation @@ -93787,11 +94290,11 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** column must not be NULL. */ if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10318, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10443, 0) return } if (*TTable)(unsafe.Pointer(pNew)).FpIndex != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10350, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10475, 0) return } if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) == 0 { @@ -93807,10 +94310,10 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpFKey != 0 && pDflt != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10377) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10502) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && !(pDflt != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10436) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10561) } /* Ensure the default expression is something that sqlite3ValueFromExpr() ** can handle (i.e. not CURRENT_TIME etc.) @@ -93822,13 +94325,13 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr return } if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10489) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10614) } _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp))) } } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_STORED) != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10535) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10660) } } /* Modify the CREATE TABLE statement. */ @@ -93842,7 +94345,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr } /* substr() operations on characters, but addColOffset is in bytes. So we ** have to use printf() to translate between these units: */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10562, libc.VaList(bp+16, zDb, (*(*struct { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10687, libc.VaList(bp+16, zDb, (*(*struct { FaddColOffset int32 FpFKey uintptr FpDfltList uintptr @@ -93870,7 +94373,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterAdd)) /* Verify that constraints are still satisfied */ if (*TTable)(unsafe.Pointer(pNew)).FpCheck != uintptr(0) || int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Strict) != uint32(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10708, libc.VaList(bp+16, zTab, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10833, libc.VaList(bp+16, zTab, zDb)) } } } @@ -93908,12 +94411,12 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { goto exit_begin_add_column } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11061, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11186, 0) goto exit_begin_add_column } /* Make sure this is not an attempt to ALTER a view. */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11095, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11220, 0) goto exit_begin_add_column } if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { @@ -93937,7 +94440,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { (*TTable)(unsafe.Pointer(pNew)).FnCol = (*TTable)(unsafe.Pointer(pTab)).FnCol nAlloc = (int32((*TTable)(unsafe.Pointer(pNew)).FnCol)-int32(1))/int32(8)*int32(8) + int32(8) (*TTable)(unsafe.Pointer(pNew)).FaCol = _sqlite3DbMallocZero(tls, db, uint64(16)*uint64(nAlloc)) - (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+11125, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+11250, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !((*TTable)(unsafe.Pointer(pNew)).FaCol != 0) || !((*TTable)(unsafe.Pointer(pNew)).FzName != 0) { goto exit_begin_add_column } @@ -93974,6 +94477,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pTab + 64))).FaddColOffset + goto exit_begin_add_column exit_begin_add_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -93997,18 +94501,18 @@ func _isRealTable(tls *libc.TLS, pParse uintptr, pTab uintptr, bDrop int32) (r i _, _ = zType, v1 zType = uintptr(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 11144 + zType = __ccgo_ts + 11269 } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 11149 + zType = __ccgo_ts + 11274 } if zType != 0 { if bDrop != 0 { - v1 = __ccgo_ts + 11163 + v1 = __ccgo_ts + 11288 } else { - v1 = __ccgo_ts + 11180 + v1 = __ccgo_ts + 11305 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11198, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11323, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -94069,11 +94573,11 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld iCol++ } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11216, libc.VaList(bp+8, pOld)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11341, libc.VaList(bp+8, pOld)) goto exit_rename_column } /* Ensure the schema contains no double-quoted strings */ - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1650, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1664, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1))) /* Do the rename operation using a recursive UPDATE statement that ** uses the sqlite_rename_column() SQL function to compute the new @@ -94085,11 +94589,12 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld goto exit_rename_column } bQuote = int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pNew)).Fz)))]) & int32(0x80) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11237, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11419, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11362, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11544, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iSchema, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+10267, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+10392, int32(1)) + goto exit_rename_column exit_rename_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -94564,11 +95069,11 @@ func _renameColumnParseError(tls *libc.TLS, pCtx uintptr, zWhen uintptr, pType u zT = Xsqlite3_value_text(tls, pType) zN = Xsqlite3_value_text(tls, pObject) if *(*int8)(unsafe.Pointer(zWhen)) != 0 { - v1 = __ccgo_ts + 11550 + v1 = __ccgo_ts + 11675 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11552, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) + zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11677, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, zErr) } @@ -94645,8 +95150,8 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin if zSql == uintptr(0) { return int32(SQLITE_NOMEM) } - if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11575, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(116682)) + if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11700, int32(7)) != 0 { + return _sqlite3CorruptError(tls, int32(117285)) } if bTemp != 0 { v1 = int32(1) @@ -94662,7 +95167,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin rc = int32(SQLITE_NOMEM) } if rc == SQLITE_OK && ((*TParse)(unsafe.Pointer(p)).FpNewTable == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewIndex == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewTrigger == uintptr(0)) { - rc = _sqlite3CorruptError(tls, int32(116693)) + rc = _sqlite3CorruptError(tls, int32(117296)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -94701,7 +95206,7 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, ** ALTER TABLE statement was quoted (bQuote==1), then set zNew to ** point to zQuot so that all substitutions are made using the ** quoted version of the new column name. */ - zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11583, libc.VaList(bp+8, zNew)) + zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11708, libc.VaList(bp+8, zNew)) if zQuot == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -94746,11 +95251,11 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, *(*int8)(unsafe.Pointer(zBuf1 + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn))) = 0 _sqlite3Dequote(tls, zBuf1) if int32(*(*int8)(unsafe.Pointer((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn)))) == int32('\'') { - v1 = __ccgo_ts + 11550 + v1 = __ccgo_ts + 11675 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11589, libc.VaList(bp+8, zBuf1, v1)) + Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11714, libc.VaList(bp+8, zBuf1, v1)) zReplace = zBuf2 nReplace = uint32(_sqlite3Strlen30(tls, zReplace)) } @@ -95227,6 +95732,7 @@ func _renameColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintp } } rc = _renameEditSql(tls, context, bp, zSql, zNew, bQuote) + goto renameColumnFunc_done renameColumnFunc_done: ; if rc != SQLITE_OK { @@ -95234,7 +95740,7 @@ renameColumnFunc_done: Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv))) } else { if (*(*TParse)(unsafe.Pointer(bp + 32))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1650, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) + _renameColumnParseError(tls, context, __ccgo_ts+1664, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -95460,7 +95966,7 @@ func _renameTableFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintpt Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv + 3*8))) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1650, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) + _renameColumnParseError(tls, context, __ccgo_ts+1664, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -95722,7 +96228,7 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr pTab = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable if pTab == uintptr(0) || int32((*TTable)(unsafe.Pointer(pTab)).FnCol) == int32(1) || iCol >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { /* This can happen if the sqlite_schema table is corrupt */ - rc = _sqlite3CorruptError(tls, int32(117652)) + rc = _sqlite3CorruptError(tls, int32(118255)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -95739,9 +96245,10 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr (*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz-- } } - zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11594, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) + zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11719, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) Xsqlite3_result_text(tls, context, zNew, -int32(1), uintptr(-libc.Int32FromInt32(1))) Xsqlite3_free(tls, zNew) + goto drop_column_done drop_column_done: ; _renameParseCleanup(tls, bp) @@ -95765,8 +96272,9 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName bp := tls.Alloc(48) defer tls.Free(48) var addr, i, iCol, iColPos, iCur, iDb, iPos, nField, reg, regOut, regRec, v2, v4, v7 int32 + var aff int8 var db, pPk, pTab, v, zCol, zDb, v1, v3, v5, v8 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, aff, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Database containing pTab ("main" etc.) */ zCol = uintptr(0) /* Index of column zCol in pTab->aCol[] */ /* Look up the table being altered. */ @@ -95792,23 +96300,23 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName } iCol = _sqlite3ColumnIndex(tls, pTab, zCol) if iCol < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11216, libc.VaList(bp+8, pName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11341, libc.VaList(bp+8, pName)) goto exit_drop_column } /* Do not allow the user to drop a PRIMARY KEY column or a column ** constrained by a UNIQUE constraint. */ if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_PRIMKEY)|libc.Int32FromInt32(COLFLAG_UNIQUE)) != 0 { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - v1 = __ccgo_ts + 11601 + v1 = __ccgo_ts + 11726 } else { - v1 = __ccgo_ts + 5937 + v1 = __ccgo_ts + 6001 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11613, libc.VaList(bp+8, v1, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11738, libc.VaList(bp+8, v1, zCol)) goto exit_drop_column } /* Do not allow the number of columns to go to zero */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) <= int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11641, libc.VaList(bp+8, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11766, libc.VaList(bp+8, zCol)) goto exit_drop_column } /* Edit the sqlite_schema table */ @@ -95818,12 +96326,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_ALTER_TABLE), zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol) != 0 { goto exit_drop_column } - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1650, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1664, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1))) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11689, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11814, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterDrop)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11810, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11935, int32(1)) /* Edit rows of table on disk */ if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 && int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { pPk = uintptr(0) @@ -95881,7 +96389,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if i == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regOut) } else { + aff = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity + if int32(aff) == int32(SQLITE_AFF_REAL) { + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = int8(SQLITE_AFF_NUMERIC) + } _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, i, regOut) + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = aff } nField++ } @@ -95906,6 +96419,7 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iCur, addr+int32(1)) _sqlite3VdbeJumpHere(tls, v, addr) } + goto exit_drop_column exit_drop_column: ; _sqlite3DbFree(tls, db, zCol) @@ -95925,27 +96439,27 @@ var _aAlterTableFuncs = [5]TFuncDef{ 0: { FnArg: int8(9), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11828, + FzName: __ccgo_ts + 11953, }, 1: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11849, + FzName: __ccgo_ts + 11974, }, 2: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11869, + FzName: __ccgo_ts + 11994, }, 3: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11888, + FzName: __ccgo_ts + 12013, }, 4: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11907, + FzName: __ccgo_ts + 12032, }, } @@ -96156,7 +96670,7 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW ** side-effect of the CREATE TABLE statement is to leave the rootpage ** of the new table in register pParse->regRoot. This is important ** because the OpenWrite opcode below will be needing it. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+12010, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+12135, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) aRoot[i] = uint32((*TParse)(unsafe.Pointer(pParse)).FregRoot) aCreateTbl[i] = uint8(OPFLAG_P2ISREG) } @@ -96167,10 +96681,10 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW aRoot[i] = (*TTable)(unsafe.Pointer(pStat)).Ftnum _sqlite3TableLock(tls, pParse, iDb, aRoot[i], uint8(1), zTab) if zWhere != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+12033, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+12158, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+12063, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+12188, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) } else { /* The sqlite_stat[134] table already exists. Delete all rows. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Clear), int32(aRoot[i]), iDb) @@ -96202,15 +96716,15 @@ var _aTable = [3]struct { FzCols uintptr }{ 0: { - FzName: __ccgo_ts + 11930, - FzCols: __ccgo_ts + 11943, + FzName: __ccgo_ts + 12055, + FzCols: __ccgo_ts + 12068, }, 1: { - FzName: __ccgo_ts + 11956, - FzCols: __ccgo_ts + 11969, + FzName: __ccgo_ts + 12081, + FzCols: __ccgo_ts + 12094, }, 2: { - FzName: __ccgo_ts + 11997, + FzName: __ccgo_ts + 12122, }, } @@ -96512,7 +97026,7 @@ func _statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statInitFuncdef = TFuncDef{ FnArg: int8(4), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12081, + FzName: __ccgo_ts + 12206, } func init() { @@ -96658,6 +97172,7 @@ func _sampleInsert(tls *libc.TLS, p uintptr, pNew uintptr, nEqZero int32) { (*TStatAccum)(unsafe.Pointer(p)).FnSample++ /* Zero the first nEqZero entries in the anEq[] array. */ libc.X__builtin___memset_chk(tls, (*TStatSample)(unsafe.Pointer(pSample)).FanEq, 0, uint64(8)*uint64(nEqZero), libc.X__builtin_object_size(tls, (*TStatSample)(unsafe.Pointer(pSample)).FanEq, 0)) + goto find_new_min find_new_min: ; if (*TStatAccum)(unsafe.Pointer(p)).FnSample >= (*TStatAccum)(unsafe.Pointer(p)).FmxSample { @@ -96885,7 +97400,7 @@ func _statPush(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statPushFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(2) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12091, + FzName: __ccgo_ts + 12216, } func init() { @@ -96935,7 +97450,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } else { v1 = (*TStatAccum)(unsafe.Pointer(p)).FnRow } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+12101, libc.VaList(bp+72, v1)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+12226, libc.VaList(bp+72, v1)) i = 0 for { if !(i < (*TStatAccum)(unsafe.Pointer(p)).FnKeyCol) { @@ -96946,7 +97461,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if iVal == uint64(2) && (*TStatAccum)(unsafe.Pointer(p)).FnRow*uint64(10) <= nDistinct*uint64(11) { iVal = uint64(1) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+12106, libc.VaList(bp+72, iVal)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+12231, libc.VaList(bp+72, iVal)) goto _2 _2: ; @@ -96985,7 +97500,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if !(i1 < (*TStatAccum)(unsafe.Pointer(p)).FnCol) { break } - Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+12112, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) + Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+12237, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) goto _3 _3: ; @@ -97003,7 +97518,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statGetFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(1) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12118, + FzName: __ccgo_ts + 12243, } func init() { @@ -97024,9 +97539,9 @@ func _callStatGet(tls *libc.TLS, pParse uintptr, regStat int32, iParam int32, re // */ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr, iStatCur int32, iMem int32, iTab int32) { var aGotoChng, db, pColl, pIdx, pPk, pStat1, pX, v, zIdxName uintptr - var addrIsNull, addrNext, addrNextRow, addrRewind, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 + var addrGotoEnd, addrIsNull, addrNext, addrNextRow, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 var needTableCnt, seekOp Tu8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrIsNull, addrNext, addrNextRow, addrRewind, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrGotoEnd, addrIsNull, addrNext, addrNextRow, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Loop counter */ jZeroRows = -int32(1) /* Index of database containing pTab */ needTableCnt = uint8(1) @@ -97069,7 +97584,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Do not gather statistics on views or virtual tables */ return } - if Xsqlite3_strlike(tls, __ccgo_ts+12127, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { + if Xsqlite3_strlike(tls, __ccgo_ts+12252, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { /* Do not gather statistics on system tables */ return } @@ -97083,7 +97598,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint return } (*TTable)(unsafe.Pointer(pStat1)).FzName = pStat1 + 1*104 - libc.X__builtin___memcpy_chk(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11930, uint64(13), libc.X__builtin_object_size(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, 0)) + libc.X__builtin___memcpy_chk(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+12055, uint64(13), libc.X__builtin_object_size(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, 0)) (*TTable)(unsafe.Pointer(pStat1)).FnCol = int16(3) (*TTable)(unsafe.Pointer(pStat1)).FiPKey = int16(-int32(1)) _sqlite3VdbeAddOp4(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Noop), 0, 0, 0, pStat1, -int32(6)) @@ -97137,9 +97652,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* ** Pseudo-code for loop that calls stat_push(): ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() ** goto chng_addr_0; ** ** next_row: @@ -97173,32 +97693,29 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Open a read-only cursor on the index being analyzed. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenRead), iIdxCur, int32((*TIndex)(unsafe.Pointer(pIdx)).Ftnum), iDb) _sqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx) - /* Invoke the stat_init() function. The arguments are: + /* Implementation of the following: ** + ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() + ** goto chng_addr_0; + */ + _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + /* Arguments to stat_init(): ** (1) the number of columns in the index including the rowid ** (or for a WITHOUT ROWID table, the number of PK columns), ** (2) the number of columns in the key without the rowid/pk - ** (3) estimated number of rows in the index, - */ + ** (3) estimated number of rows in the index. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), nCol, regStat+int32(1)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol), regRowid) - if (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0) { - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iIdxCur, regTemp) - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - } else { - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, int32(1)) - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) != uint32(0))) _sqlite3VdbeAddFunctionCall(tls, pParse, 0, regStat+int32(1), regStat, int32(4), uintptr(unsafe.Pointer(&_statInitFuncdef)), 0) - /* Implementation of the following: - ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; - ** regChng = 0 - ** goto next_push_0; - ** - */ + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regChng) addrNextRow = _sqlite3VdbeCurrentAddr(tls, v) if nColTest > 0 { @@ -97307,8 +97824,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iIdxCur, addrNextRow) } /* Add the entry to the stat1 table. */ + if (*TIndex)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 { + /* Partial indexes might get a zero-entry in sqlite_stat1. But + ** an empty table is omitted from sqlite_stat1. */ + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + addrGotoEnd = 0 + } _callStatGet(tls, pParse, regStat, STAT_GET_STAT1, regStat1) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+12137, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+12262, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP4(tls, v, -int32(1), pStat1, -int32(5)) @@ -97327,6 +97850,11 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint v18 = int32(OP_NotFound) } seekOp = uint8(v18) + /* No STAT4 data is generated if the number of rows is zero */ + if addrGotoEnd == 0 { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Cast), regStat1, int32(SQLITE_AFF_INTEGER)) + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) + } if doOnce != 0 { mxCol = nCol /* Compute the maximum number of columns in any index */ @@ -97379,7 +97907,9 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeJumpHere(tls, v, addrIsNull) } /* End of analysis */ - _sqlite3VdbeJumpHere(tls, v, addrRewind) + if addrGotoEnd != 0 { + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + } goto _13 _13: ; @@ -97392,7 +97922,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iTabCur, regStat1) jZeroRows = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regIdxname) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+12137, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+12262, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND)) @@ -97464,9 +97994,9 @@ func _analyzeTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr iStatCur = (*TParse)(unsafe.Pointer(pParse)).FnTab *(*int32)(unsafe.Pointer(pParse + 52)) += int32(3) if pOnlyIdx != 0 { - _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+12141) + _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+12266) } else { - _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+12145) + _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+12270) } _analyzeOneTable(tls, pParse, pTab, pOnlyIdx, iStatCur, (*TParse)(unsafe.Pointer(pParse)).FnMem+int32(1), (*TParse)(unsafe.Pointer(pParse)).FnTab) _loadAnalysis(tls, pParse, iDb) @@ -97595,7 +98125,7 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, _, _, _, _, _, _ = c, i, sz, v, z, v2 z = zIntArray if z == uintptr(0) { - z = __ccgo_ts + 1650 + z = __ccgo_ts + 1664 } i = 0 for { @@ -97630,17 +98160,17 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 6, 0x40) for *(*int8)(unsafe.Pointer(z)) != 0 { - if Xsqlite3_strglob(tls, __ccgo_ts+12149, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+12274, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 2, 0x4) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+12160, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+12285, z) == 0 { sz = _sqlite3Atoi(tls, z+uintptr(3)) if sz < int32(2) { sz = int32(2) } (*TIndex)(unsafe.Pointer(pIndex)).FszIdxRow = _sqlite3LogEst(tls, uint64(sz)) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+12170, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+12295, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 6, 0x40) } } @@ -98016,11 +98546,11 @@ func _loadStat4(tls *libc.TLS, db uintptr, zDb uintptr) (r int32) { _, _, _, _ = pStat4, rc, v1, v2 rc = SQLITE_OK if v2 = (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0); v2 { - v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11956, zDb) + v1 = _sqlite3FindTable(tls, db, __ccgo_ts+12081, zDb) pStat4 = v1 } if v2 && v1 != uintptr(0) && int32((*TTable)(unsafe.Pointer(pStat4)).FeTabType) == TABTYP_NORM { - rc = _loadStatTbl(tls, db, __ccgo_ts+12182, __ccgo_ts+12251, zDb) + rc = _loadStatTbl(tls, db, __ccgo_ts+12307, __ccgo_ts+12376, zDb) } return rc } @@ -98086,10 +98616,10 @@ func _sqlite3AnalysisLoad(tls *libc.TLS, db uintptr, iDb int32) (r int32) { /* Load new statistics out of the sqlite_stat1 table */ (*(*TanalysisInfo)(unsafe.Pointer(bp))).Fdb = db (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName - v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11930, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) + v3 = _sqlite3FindTable(tls, db, __ccgo_ts+12055, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) pStat1 = v3 if v3 != 0 && int32((*TTable)(unsafe.Pointer(pStat1)).FeTabType) == TABTYP_NORM { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+12303, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+12428, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -98202,7 +98732,7 @@ func _resolveAttachExpr(tls *libc.TLS, pName uintptr, pExpr uintptr) (r int32) { // ** database iDb attached to handle db. // */ func _sqlite3DbIsNamed(tls *libc.TLS, db uintptr, iDb int32, zName uintptr) (r int32) { - return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6933, zName) == 0) + return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6997, zName) == 0) } // C documentation @@ -98244,21 +98774,21 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { zFile = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) zName = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if zFile == uintptr(0) { - zFile = __ccgo_ts + 1650 + zFile = __ccgo_ts + 1664 } if zName == uintptr(0) { - zName = __ccgo_ts + 1650 + zName = __ccgo_ts + 1664 } if int32(uint32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x4>>2)) != 0 { /* This is not a real ATTACH. Instead, this routine is being called ** from sqlite3_deserialize() to close database db->init.iDb and ** reopen it as a MemDB */ *(*uintptr)(unsafe.Pointer(bp + 40)) = uintptr(0) - *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+4315) + *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+4379) if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { return } - rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12344, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) + rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12469, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) if rc == SQLITE_OK { pNewSchema = _sqlite3SchemaGet(tls, db, *(*uintptr)(unsafe.Pointer(bp + 40))) if pNewSchema != 0 { @@ -98289,7 +98819,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { ** * Specified database name already being used. */ if (*Tsqlite3)(unsafe.Pointer(db)).FnDb >= *(*int32)(unsafe.Pointer(db + 136 + 7*4))+int32(2) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12347, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12472, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) goto attach_error } i = 0 @@ -98298,7 +98828,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { break } if _sqlite3DbIsNamed(tls, db, i, zName) != 0 { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12384, libc.VaList(bp+56, zName)) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12509, libc.VaList(bp+56, zName)) goto attach_error } goto _1 @@ -98346,7 +98876,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FnoSharedCache = uint8(0) if rc == int32(SQLITE_CONSTRAINT) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12414, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12539, 0) } else { if rc == SQLITE_OK { (*TDb)(unsafe.Pointer(pNew)).FpSchema = _sqlite3SchemaGet(tls, db, (*TDb)(unsafe.Pointer(pNew)).FpBt) @@ -98354,7 +98884,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { rc = int32(SQLITE_NOMEM) } else { if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Ffile_format != 0 && int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Fenc) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12443, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12568, 0) rc = int32(SQLITE_ERROR) } } @@ -98398,16 +98928,17 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)<= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12539, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12664, libc.VaList(bp+136, zName)) goto detach_error } if i < int32(2) { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12560, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12685, libc.VaList(bp+136, zName)) goto detach_error } if _sqlite3BtreeTxnState(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != SQLITE_TXN_NONE || _sqlite3BtreeIsInBackup(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != 0 { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12586, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12711, libc.VaList(bp+136, zName)) goto detach_error } /* If any TEMP triggers reference the schema being detached, move those @@ -98488,6 +99019,7 @@ func _detachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*TDb)(unsafe.Pointer(pDb)).FpSchema = uintptr(0) _sqlite3CollapseDatabaseArray(tls, db) return + goto detach_error detach_error: ; Xsqlite3_result_error(tls, context, bp, -int32(1)) @@ -98542,6 +99074,7 @@ func _codeAttach(tls *libc.TLS, pParse uintptr, type1 int32, pFunc uintptr, pAut */ _sqlite3VdbeAddOp1(tls, v, int32(OP_Expire), libc.BoolInt32(type1 == int32(SQLITE_ATTACH))) } + goto attach_end attach_end: ; _sqlite3ExprDelete(tls, db, pFilename) @@ -98563,7 +99096,7 @@ func _sqlite3Detach(tls *libc.TLS, pParse uintptr, pDbname uintptr) { var _detach_func = TFuncDef{ FnArg: int8(1), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12608, + FzName: __ccgo_ts + 12733, } func init() { @@ -98585,7 +99118,7 @@ func _sqlite3Attach(tls *libc.TLS, pParse uintptr, p uintptr, pDbname uintptr, p var _attach_func = TFuncDef{ FnArg: int8(3), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12622, + FzName: __ccgo_ts + 12747, } func init() { @@ -98611,7 +99144,7 @@ func _fixExprCb(tls *libc.TLS, p uintptr, pExpr uintptr) (r int32) { if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer((*TDbFixer)(unsafe.Pointer(pFix)).FpParse)).Fdb)).Finit1.Fbusy != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } else { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12636, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12761, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) return int32(WRC_Abort) } } @@ -98645,7 +99178,7 @@ func _fixSelectCb(tls *libc.TLS, p uintptr, pSelect uintptr) (r int32) { if int32((*TDbFixer)(unsafe.Pointer(pFix)).FbTemp) == 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { if iDb != _sqlite3FindDbName(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12660, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12785, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) return int32(WRC_Abort) } _sqlite3DbFree(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) @@ -98861,7 +99394,7 @@ func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uint // ** user-supplied authorization function returned an illegal value. // */ func _sqliteAuthBadReturnCode(tls *libc.TLS, pParse uintptr) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12706, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12831, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) } @@ -98889,11 +99422,11 @@ func _sqlite3AuthReadCol(tls *libc.TLS, pParse uintptr, zTab uintptr, zCol uintp } rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, int32(SQLITE_READ), zTab, zCol, zDb, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12729, libc.VaList(bp+8, zTab, zCol)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12854, libc.VaList(bp+8, zTab, zCol)) if (*Tsqlite3)(unsafe.Pointer(db)).FnDb > int32(2) || iDb != 0 { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12735, libc.VaList(bp+8, zDb, z)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12860, libc.VaList(bp+8, zDb, z)) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12741, libc.VaList(bp+8, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12866, libc.VaList(bp+8, z)) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != int32(SQLITE_IGNORE) && rc != SQLITE_OK { @@ -98953,7 +99486,7 @@ func _sqlite3AuthRead(tls *libc.TLS, pParse uintptr, pExpr uintptr, pSchema uint if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName } else { - zCol = __ccgo_ts + 8253 + zCol = __ccgo_ts + 8378 } } if int32(SQLITE_IGNORE) == _sqlite3AuthReadCol(tls, pParse, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol, iDb) { @@ -98988,7 +99521,7 @@ func _sqlite3AuthCheck(tls *libc.TLS, pParse uintptr, code int32, zArg1 uintptr, ** parameters can be either NULL or a string. */ rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, code, zArg1, zArg2, zArg3, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12768, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12893, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != SQLITE_OK && rc != int32(SQLITE_IGNORE) { @@ -99409,21 +99942,21 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp if i >= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { /* No match against the official names. But always match "main" ** to schema 0 as a legacy fallback. */ - if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6933) == 0 { + if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6997) == 0 { i = 0 } else { return uintptr(0) } } p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, zName) - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6873, int32(7)) == 0 { + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6937, int32(7)) == 0 { if i == int32(1) { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6900+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6919+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6414+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6881) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6964+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6983+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6478+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6945) } } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6919+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6414) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6983+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6478) } } } @@ -99453,12 +99986,12 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp ; i++ } - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6873, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6919+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6414) + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6937, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6983+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6478) } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6900+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6881) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6964+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6945) } } } @@ -99496,7 +100029,7 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt ** can be an eponymous virtual table. */ if int32((*TParse)(unsafe.Pointer(pParse)).FprepFlags)&int32(SQLITE_PREPARE_NO_VTAB) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 { pMod = _sqlite3HashFind(tls, db+576, zName) - if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12783, int32(7)) == 0 { + if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12908, int32(7)) == 0 { pMod = _sqlite3PragmaVtabRegister(tls, db, zName) } if pMod != 0 && _sqlite3VtabEponymousTableInit(tls, pParse, pMod) != 0 { @@ -99514,15 +100047,15 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt } if p == uintptr(0) { if flags&uint32(LOCATE_VIEW) != 0 { - v1 = __ccgo_ts + 12791 + v1 = __ccgo_ts + 12916 } else { - v1 = __ccgo_ts + 12804 + v1 = __ccgo_ts + 12929 } zMsg = v1 if zDbase != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7137, libc.VaList(bp+8, zMsg, zDbase, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7201, libc.VaList(bp+8, zMsg, zDbase, zName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7147, libc.VaList(bp+8, zMsg, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7272, libc.VaList(bp+8, zMsg, zName)) } } else { } @@ -99560,12 +100093,12 @@ func _sqlite3LocateTableItem(tls *libc.TLS, pParse uintptr, flags Tu32, p uintpt // ** names into the new preferred names, as appropriate. // */ func _sqlite3PreferredTableName(tls *libc.TLS, zName uintptr) (r uintptr) { - if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6873, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6414+7) == 0 { - return __ccgo_ts + 6919 + if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6937, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6478+7) == 0 { + return __ccgo_ts + 6983 } - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6881+7) == 0 { - return __ccgo_ts + 6900 + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6945+7) == 0 { + return __ccgo_ts + 6964 } } return zName @@ -100090,7 +100623,7 @@ func _sqlite3OpenSchemaTable(tls *libc.TLS, p uintptr, iDb int32) { var v uintptr _ = v v = _sqlite3GetVdbe(tls, p) - _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6414) + _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6478) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_OpenWrite), 0, int32(SCHEMA_ROOT), iDb, int32(5)) if (*TParse)(unsafe.Pointer(p)).FnTab == 0 { (*TParse)(unsafe.Pointer(p)).FnTab = int32(1) @@ -100122,7 +100655,7 @@ func _sqlite3FindDbName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) { } /* "main" is always an acceptable alias for the primary database ** even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME. */ - if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6933, zName) { + if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6997, zName) { break } goto _1 @@ -100180,13 +100713,13 @@ func _sqlite3TwoPartName(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12818, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12943, 0) return -int32(1) } *(*uintptr)(unsafe.Pointer(pUnqual)) = pName2 iDb = _sqlite3FindDb(tls, db, pName1) if iDb < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12835, libc.VaList(bp+8, pName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12960, libc.VaList(bp+8, pName1)) return -int32(1) } } else { @@ -100230,12 +100763,12 @@ func _sqlite3CheckObjectName(tls *libc.TLS, pParse uintptr, zName uintptr, zType } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if Xsqlite3_stricmp(tls, zType, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit))) != 0 || Xsqlite3_stricmp(tls, zName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 1*8))) != 0 || Xsqlite3_stricmp(tls, zTblName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 2*8))) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1650, 0) /* corruptSchema() will supply the error */ + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1664, 0) /* corruptSchema() will supply the error */ return int32(SQLITE_ERROR) } } else { - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6873, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12855, libc.VaList(bp+8, zName)) + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6937, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12980, libc.VaList(bp+8, zName)) return int32(SQLITE_ERROR) } } @@ -100450,9 +100983,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Special case: Parsing the sqlite_schema or sqlite_temp_schema schema */ iDb = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6881 + v1 = __ccgo_ts + 6945 } else { - v1 = __ccgo_ts + 6414 + v1 = __ccgo_ts + 6478 } zName = _sqlite3DbStrDup(tls, db, v1) *(*uintptr)(unsafe.Pointer(bp)) = pName1 @@ -100465,7 +100998,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 && (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) && iDb != int32(1) { /* If creating a temp table, the name may not be qualified. Unless ** the database name is "temp" anyway. */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12897, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13022, 0) return } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 { @@ -100481,9 +101014,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui return } if isView != 0 { - v2 = __ccgo_ts + 11144 + v2 = __ccgo_ts + 11269 } else { - v2 = __ccgo_ts + 9406 + v2 = __ccgo_ts + 9531 } if _sqlite3CheckObjectName(tls, pParse, zName, v2, zName) != 0 { goto begin_table_error @@ -100493,9 +101026,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui } zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp == int32(1) { - v3 = __ccgo_ts + 6881 + v3 = __ccgo_ts + 6945 } else { - v3 = __ccgo_ts + 6414 + v3 = __ccgo_ts + 6478 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto begin_table_error @@ -100519,11 +101052,11 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if pTable != 0 { if !(noErr != 0) { if int32((*TTable)(unsafe.Pointer(pTable)).FeTabType) == int32(TABTYP_VIEW) { - v4 = __ccgo_ts + 11144 + v4 = __ccgo_ts + 11269 } else { - v4 = __ccgo_ts + 9406 + v4 = __ccgo_ts + 9531 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12938, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13063, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) _sqlite3ForceNotReadOnly(tls, pParse) @@ -100531,7 +101064,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui goto begin_table_error } if _sqlite3FindIndex(tls, db, zName, zDb1) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12959, libc.VaList(bp+16, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13084, libc.VaList(bp+16, zName)) goto begin_table_error } } @@ -100619,6 +101152,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Normal (non-error) return. */ return /* If an error occurs, we jump here */ + goto begin_table_error begin_table_error: ; (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) @@ -100682,7 +101216,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { _, _, _ = db, pHash, pRet db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12994, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13119, 0) } else { } (*TParse)(unsafe.Pointer(pParse)).FbReturning = uint8(1) @@ -100698,7 +101232,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return } - Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+13028, libc.VaList(bp+8, pParse)) + Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+13153, libc.VaList(bp+8, pParse)) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.FzName = pRet + 196 (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Fop = uint8(TK_RETURNING) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Ftr_tm = uint8(TRIGGER_AFTER) @@ -100745,7 +101279,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok return } if int32((*TTable)(unsafe.Pointer(p)).FnCol)+int32(1) > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13048, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13173, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) return } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -100755,12 +101289,12 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok ** by the parser, we can sometimes end up with a typename that ends ** with "generated always". Check for this case and omit the surplus ** text. */ - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+13071, int32(6)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+13196, int32(6)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(6) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1)))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- } - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+13078, int32(9)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+13203, int32(9)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(9) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1)))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- @@ -100809,7 +101343,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok break } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FhName) == int32(hName) && _sqlite3StrICmp(tls, z, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FzCnName) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13088, libc.VaList(bp+40, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13213, libc.VaList(bp+40, z)) _sqlite3DbFree(tls, db, z) return } @@ -101017,10 +101551,10 @@ func _sqlite3AddDefaultValue(tls *libc.TLS, pParse uintptr, pExpr uintptr, zStar isInit = libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) != int32(1)) pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(p)).FnCol)-int32(1))*16 if !(_sqlite3ExprIsConstantOrFunction(tls, pExpr, uint8(isInit)) != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13114, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13239, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13159, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13284, 0) } else { libc.X__builtin___memset_chk(tls, bp, 0, uint64(72), libc.X__builtin_object_size(tls, bp, 0)) (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_SPAN) @@ -101078,7 +101612,7 @@ func _makeColumnPartOfPrimaryKey(tls *libc.TLS, pParse uintptr, pCol uintptr) { p1 = pCol + 14 *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(COLFLAG_PRIMKEY)) if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13200, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13325, 0) } } @@ -101115,7 +101649,7 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError goto primary_key_exit } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasPrimaryKey) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13252, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13377, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto primary_key_exit } *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_HasPrimaryKey) @@ -101171,12 +101705,13 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError _sqlite3HasExplicitNulls(tls, pParse, pList) } else { if autoInc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13293, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13418, 0) } else { _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), pList, onError, uintptr(0), uintptr(0), sortOrder, 0, uint8(SQLITE_IDXTYPE_PRIMARYKEY)) pList = uintptr(0) } } + goto primary_key_exit primary_key_exit: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) @@ -101286,17 +101821,17 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui } pCol = (*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-int32(1))*16 if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) == int32(PARSE_MODE_DECLARE_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13349, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13474, 0) goto generated_done } if int32((*TColumn)(unsafe.Pointer(pCol)).FiDflt) > 0 { goto generated_error } if pType != 0 { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13392, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13517, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { /* no-op */ } else { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13400, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13525, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { eType = uint8(COLFLAG_STORED) } else { goto generated_error @@ -101325,9 +101860,11 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui _sqlite3ColumnSetExpr(tls, pParse, pTab, pCol, pExpr) pExpr = uintptr(0) goto generated_done + goto generated_error generated_error: ; - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13407, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13532, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + goto generated_done generated_done: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -101489,13 +102026,13 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { } n += _identLength(tls, (*TTable)(unsafe.Pointer(p)).FzName) if n < int32(50) { - zSep = __ccgo_ts + 1650 - zSep2 = __ccgo_ts + 13438 - zEnd = __ccgo_ts + 5454 + zSep = __ccgo_ts + 1664 + zSep2 = __ccgo_ts + 13563 + zEnd = __ccgo_ts + 5518 } else { - zSep = __ccgo_ts + 13440 - zSep2 = __ccgo_ts + 13444 - zEnd = __ccgo_ts + 13449 + zSep = __ccgo_ts + 13565 + zSep2 = __ccgo_ts + 13569 + zEnd = __ccgo_ts + 13574 } n += int32(35) + int32(6)*int32((*TTable)(unsafe.Pointer(p)).FnCol) zStmt = _sqlite3DbMallocRaw(tls, uintptr(0), uint64(n)) @@ -101503,7 +102040,7 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { _sqlite3OomFault(tls, db) return uintptr(0) } - Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13452, 0) + Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13577, 0) *(*int32)(unsafe.Pointer(bp)) = _sqlite3Strlen30(tls, zStmt) _identPut(tls, zStmt, bp, (*TTable)(unsafe.Pointer(p)).FzName) v2 = *(*int32)(unsafe.Pointer(bp)) @@ -101529,17 +102066,17 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { i++ pCol += 16 } - Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3799, libc.VaList(bp+16, zEnd)) + Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3863, libc.VaList(bp+16, zEnd)) return zStmt } var _azType1 = [6]uintptr{ - 0: __ccgo_ts + 1650, - 1: __ccgo_ts + 13466, - 2: __ccgo_ts + 13472, - 3: __ccgo_ts + 13477, - 4: __ccgo_ts + 13482, - 5: __ccgo_ts + 13472, + 0: __ccgo_ts + 1664, + 1: __ccgo_ts + 13591, + 2: __ccgo_ts + 13597, + 3: __ccgo_ts + 13602, + 4: __ccgo_ts + 13607, + 5: __ccgo_ts + 13597, } // C documentation @@ -102113,13 +102650,13 @@ func _sqlite3ShadowTableName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr, tabOpts Tu32, pSelect uintptr) { bp := tls.Alloc(112) defer tls.Free(112) - var addrInsLoop, addrTop, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v4, v6, v8 int32 + var addrInsLoop, addrTop, iCsr, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v10, v4, v6, v8 int32 var colFlags Tu32 - var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v5, v7, v9 uintptr - var v10 Ti16 + var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v13, v5, v7, v9 uintptr + var v12 Ti16 var _ /* dest at bp+0 */ TSelectDest - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v4, v5, v6, v7, v8, v9 /* The new table */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iCsr, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v12, v13, v4, v5, v6, v7, v8, v9 /* The new table */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ if pEnd == uintptr(0) && pSelect == uintptr(0) { return } @@ -102141,7 +102678,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if pSelect != 0 || !(int32((*TTable)(unsafe.Pointer(p)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) && (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1650, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1664, 0) return } (*TTable)(unsafe.Pointer(p)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum @@ -102168,9 +102705,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(ii)*16 if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf0>>4)) == COLTYPE_CUSTOM { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_HASTYPE) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13488, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1650))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13613, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1664))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13521, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13646, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } return } else { @@ -102191,11 +102728,11 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* Special processing for WITHOUT ROWID Tables */ if tabOpts&uint32(TF_WithoutRowid) != 0 { if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13548, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13673, 0) return } if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasPrimaryKey) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13598, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13723, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) return } *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) @@ -102242,7 +102779,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ii1++ } if nNG == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13630, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13755, 0) return } } @@ -102276,12 +102813,12 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if int32((*TTable)(unsafe.Pointer(p)).FeTabType) == TABTYP_NORM { /* A regular table */ - zType = __ccgo_ts + 9406 - zType2 = __ccgo_ts + 13674 + zType = __ccgo_ts + 9531 + zType2 = __ccgo_ts + 13799 } else { /* A view */ - zType = __ccgo_ts + 11144 - zType2 = __ccgo_ts + 13680 + zType = __ccgo_ts + 11269 + zType2 = __ccgo_ts + 13805 } /* If this is a CREATE TABLE xx AS SELECT ..., execute the SELECT ** statement to populate the new table. The root-page number for the @@ -102296,28 +102833,31 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** a schema-lock excludes all other database users, the write-lock would ** be redundant. */ - if pSelect != 0 { /* A table that describes the SELECT results */ + if pSelect != 0 { /* Write cursor on the new table */ if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) (*TParse)(unsafe.Pointer(pParse)).FnErr++ return } - v5 = pParse + 56 - *(*int32)(unsafe.Pointer(v5))++ + v5 = pParse + 52 v4 = *(*int32)(unsafe.Pointer(v5)) - regYield = v4 + *(*int32)(unsafe.Pointer(v5))++ + iCsr = v4 v7 = pParse + 56 *(*int32)(unsafe.Pointer(v7))++ v6 = *(*int32)(unsafe.Pointer(v7)) - regRec = v6 + regYield = v6 v9 = pParse + 56 *(*int32)(unsafe.Pointer(v9))++ v8 = *(*int32)(unsafe.Pointer(v9)) - regRowid = v8 + regRec = v8 + v11 = pParse + 56 + *(*int32)(unsafe.Pointer(v11))++ + v10 = *(*int32)(unsafe.Pointer(v11)) + regRowid = v10 _sqlite3MayAbort(tls, pParse) - _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), int32(1), (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) + _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), iCsr, (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_P2ISREG)) - (*TParse)(unsafe.Pointer(pParse)).FnTab = int32(2) addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { @@ -102327,9 +102867,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr if pSelTab == uintptr(0) { return } - v10 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol - (*TTable)(unsafe.Pointer(p)).FnNVCol = v10 - (*TTable)(unsafe.Pointer(p)).FnCol = v10 + v12 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol + (*TTable)(unsafe.Pointer(p)).FnNVCol = v12 + (*TTable)(unsafe.Pointer(p)).FnCol = v12 (*TTable)(unsafe.Pointer(p)).FaCol = (*TTable)(unsafe.Pointer(pSelTab)).FaCol (*TTable)(unsafe.Pointer(pSelTab)).FnCol = 0 (*TTable)(unsafe.Pointer(pSelTab)).FaCol = uintptr(0) @@ -102344,33 +102884,33 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr addrInsLoop = _sqlite3VdbeAddOp1(tls, v, int32(OP_Yield), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSDParm) _sqlite3VdbeAddOp3(tls, v, int32(OP_MakeRecord), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst, (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst, regRec) _sqlite3TableAffinity(tls, v, p, 0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), int32(1), regRowid) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), int32(1), regRec, regRowid) + _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iCsr, regRowid) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iCsr, regRec, regRowid) _sqlite3VdbeGoto(tls, v, addrInsLoop) _sqlite3VdbeJumpHere(tls, v, addrInsLoop) - _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), int32(1)) + _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), iCsr) } /* Compute the complete text of the CREATE statement */ if pSelect != 0 { zStmt = _createTableStmt(tls, db, p) } else { if tabOpts != 0 { - v11 = pParse + 288 + v13 = pParse + 288 } else { - v11 = pEnd + v13 = pEnd } - pEnd2 = v11 + pEnd2 = v13 n = int32(int64((*TToken)(unsafe.Pointer(pEnd2)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) if int32(*(*int8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pEnd2)).Fz))) != int32(';') { n = int32(uint32(n) + (*TToken)(unsafe.Pointer(pEnd2)).Fn) } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13685, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13810, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) } /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13700, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13825, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) _sqlite3DbFree(tls, db, zStmt) _sqlite3ChangeCookie(tls, pParse, iDb) /* Check to see if we need to create an sqlite_sequence table for @@ -102379,17 +102919,16 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != uint32(0) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != libc.Int32FromInt32(PARSE_MODE_NORMAL)) { pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).FpSeqTab == uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13798, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13923, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) } } /* Reparse everything to update our internal data structures */ - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13840, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13965, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) /* Test for cycles in generated columns and illegal expressions ** in CHECK constraints and in DEFAULT clauses. */ if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasGenerated) != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13874, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(0x0001), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13999, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13895, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } /* Add the table to the in-memory representation of the database. */ @@ -102406,7 +102945,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* If this is the magic sqlite_sequence table used by autoincrement, ** then record a pointer to this table in the main database structure ** so that INSERT can find the table easily. */ - if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9928) == 0 { + if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+10053) == 0 { (*TSchema)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FpSchema)).FpSeqTab = p } } @@ -102439,7 +102978,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*uintptr)(unsafe.Pointer(bp + 112)) = uintptr(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if int32((*TParse)(unsafe.Pointer(pParse)).FnVar) > 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13927, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14020, 0) goto create_view_fail } _sqlite3StartTable(tls, pParse, pName1, pName2, isTemp, int32(1), 0, noErr) @@ -102456,7 +102995,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(TF_NoVisibleRowid) /* Never allow rowid in view */ _sqlite3TwoPartName(tls, pParse, pName1, pName2, bp+112) iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(p)).FpSchema) - _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+11144, *(*uintptr)(unsafe.Pointer(bp + 112))) + _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+11269, *(*uintptr)(unsafe.Pointer(bp + 112))) if _sqlite3FixSelect(tls, bp+16, pSelect) != 0 { goto create_view_fail } @@ -102498,6 +103037,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui (*(*TToken)(unsafe.Pointer(bp))).Fn = uint32(1) /* Use sqlite3EndTable() to add the view to the schema table */ _sqlite3EndTable(tls, pParse, uintptr(0), bp, uint32(0), uintptr(0)) + goto create_view_fail create_view_fail: ; _sqlite3SelectDelete(tls, db, pSelect) @@ -102551,7 +103091,7 @@ func _viewGetColumnNames(tls *libc.TLS, pParse uintptr, pTable uintptr) (r int32 ** SELECT * FROM temp.ex1; */ if int32((*TTable)(unsafe.Pointer(pTable)).FnCol) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13963, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14056, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) return int32(1) } /* If we get this far, it means we need to compute the table names. @@ -102735,7 +103275,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { v = _sqlite3GetVdbe(tls, pParse) r1 = _sqlite3GetTempReg(tls, pParse) if iTable < int32(2) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13993, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14086, 0) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Destroy), iTable, r1, iDb) _sqlite3MayAbort(tls, pParse) @@ -102748,7 +103288,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { ** is in register NNN. See grammar rules associated with the TK_REGISTER ** token for additional information. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14008, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14101, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) _sqlite3ReleaseTempReg(tls, pParse, r1) } @@ -102831,9 +103371,9 @@ func _sqlite3ClearStatTables(tls *libc.TLS, pParse uintptr, iDb int32, zType uin if !(i <= int32(4)) { break } - Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+14075, libc.VaList(bp+32, i)) + Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+14168, libc.VaList(bp+32, i)) if _sqlite3FindTable(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, bp, zDbName) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+12033, libc.VaList(bp+32, zDbName, bp, zType, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+12158, libc.VaList(bp+32, zDbName, bp, zType, zName)) } goto _1 _1: @@ -102874,7 +103414,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** move as a result of the drop (can happen in auto-vacuum mode). */ if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14089, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14182, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* Drop all entries in the schema table that refer to the ** table. The program name loops through the schema table and deletes @@ -102883,7 +103423,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** created in the temp database that refers to a table in another ** database. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14134, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14227, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !(isView != 0) && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { _destroyTable(tls, pParse, pTab) } @@ -102918,11 +103458,11 @@ func _sqlite3ReadOnlyShadowTables(tls *libc.TLS, db uintptr) (r int32) { // ** Return true if it is not allowed to drop the given table // */ func _tableMayNotBeDropped(tls *libc.TLS, db uintptr, pTab uintptr) (r int32) { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6873, int32(7)) == 0 { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3420, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6937, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3484, int32(4)) == 0 { return 0 } - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7614, int32(10)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7739, int32(10)) == 0 { return 0 } return int32(1) @@ -102977,9 +103517,9 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6881 + v1 = __ccgo_ts + 6945 } else { - v1 = __ccgo_ts + 6414 + v1 = __ccgo_ts + 6478 } zTab = v1 zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName @@ -103012,18 +103552,18 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if _tableMayNotBeDropped(tls, db, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14201, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14294, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Ensure DROP TABLE is not used on a view, and DROP VIEW is not used ** on a table. */ if isView != 0 && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14229, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14322, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } if !(isView != 0) && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14263, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14356, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Generate code to remove the table from the schema table @@ -103033,11 +103573,12 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) if !(isView != 0) { - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+12145, (*TTable)(unsafe.Pointer(pTab)).FzName) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+12270, (*TTable)(unsafe.Pointer(pTab)).FzName) _sqlite3FkDropTable(tls, pParse, pName, pTab) } _sqlite3CodeDropTable(tls, pParse, pTab, iDb, isView) } + goto exit_drop_table exit_drop_table: ; _sqlite3SrcListDelete(tls, db, pName) @@ -103080,13 +103621,13 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p goto fk_end } if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14295, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14388, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) goto fk_end } nCol = int32(1) } else { if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14358, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14451, 0) goto fk_end } else { nCol = (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr @@ -103149,7 +103690,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p j++ } if j >= int32((*TTable)(unsafe.Pointer(p)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14452, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14545, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) goto fk_end } if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { @@ -103201,6 +103742,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p FpDfltList uintptr })(unsafe.Pointer(p + 64))).FpFKey = pFKey pFKey = uintptr(0) + goto fk_end fk_end: ; _sqlite3DbFree(tls, db, pFKey) @@ -103408,11 +103950,11 @@ func _sqlite3HasExplicitNulls(tls *libc.TLS, pParse uintptr, pList uintptr) (r i if int32(uint32(*(*uint16)(unsafe.Pointer(pList + 8 + uintptr(i)*32 + 16 + 4))&0x20>>5)) != 0 { sf = (*(*TExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32))).Ffg.FsortFlags if int32(sf) == 0 || int32(sf) == int32(3) { - v2 = __ccgo_ts + 14498 + v2 = __ccgo_ts + 14591 } else { - v2 = __ccgo_ts + 14504 + v2 = __ccgo_ts + 14597 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14509, libc.VaList(bp+8, v2)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14602, libc.VaList(bp+8, v2)) return int32(1) } goto _1 @@ -103490,7 +104032,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = int32(1) } } - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14537, *(*uintptr)(unsafe.Pointer(bp + 96))) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14630, *(*uintptr)(unsafe.Pointer(bp + 96))) if _sqlite3FixSrcList(tls, bp, pTblName) != 0 { /* Because the parser constructs pTblName from a single identifier, ** sqlite3FixSrcList can never fail. */ @@ -103500,7 +104042,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } if iDb == int32(1) && (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema != (*TTable)(unsafe.Pointer(pTab)).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14543, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14636, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { @@ -103514,16 +104056,16 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6873, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14593, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6937, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14686, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14621, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14714, 0) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14646, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14739, 0) goto exit_create_index } /* @@ -103544,19 +104086,19 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if zName == uintptr(0) { goto exit_create_index } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14537, (*TTable)(unsafe.Pointer(pTab)).FzName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14630, (*TTable)(unsafe.Pointer(pTab)).FzName) { goto exit_create_index } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if !((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0) { if _sqlite3FindTable(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14680, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14773, libc.VaList(bp+136, zName)) goto exit_create_index } } if _sqlite3FindIndex(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { if !(ifNotExist != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14714, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14807, libc.VaList(bp+136, zName)) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) _sqlite3ForceNotReadOnly(tls, pParse) @@ -103577,7 +104119,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pLoop = (*TIndex)(unsafe.Pointer(pLoop)).FpNext n++ } - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14738, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14831, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) if zName == uintptr(0) { goto exit_create_index } @@ -103595,9 +104137,9 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { zDb = (*TDb)(unsafe.Pointer(pDb)).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6881 + v2 = __ccgo_ts + 6945 } else { - v2 = __ccgo_ts + 6414 + v2 = __ccgo_ts + 6478 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v2, uintptr(0), zDb) != 0 { goto exit_create_index @@ -103625,7 +104167,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } _sqlite3ExprListSetSortOrder(tls, pList, sortOrder, -int32(1)) } else { - _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14537) + _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14630) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { goto exit_create_index } @@ -103709,7 +104251,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pCExpr = _sqlite3ExprSkipCollate(tls, (*TExprList_item)(unsafe.Pointer(pListItem)).FpExpr) if int32((*TExpr)(unsafe.Pointer(pCExpr)).Fop) != int32(TK_COLUMN) { if pTab == (*TParse)(unsafe.Pointer(pParse)).FpNewTable { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14761, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14854, 0) goto exit_create_index } if (*TIndex)(unsafe.Pointer(pIndex)).FaColExpr == uintptr(0) { @@ -103856,7 +104398,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u ** explicitly specified behavior for the index. */ if !(int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) || int32((*TIndex)(unsafe.Pointer(pIndex)).FonError) == int32(OE_Default)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14822, libc.VaList(bp+136, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14915, libc.VaList(bp+136, 0)) } if int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) { (*TIndex)(unsafe.Pointer(pIdx)).FonError = (*TIndex)(unsafe.Pointer(pIndex)).FonError @@ -103886,8 +104428,8 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != uintptr(0) { (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14864, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125123)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14957, 0) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125741)) goto exit_create_index } } @@ -103927,11 +104469,11 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* A named index with an explicit CREATE INDEX statement */ if onError == OE_None { - v13 = __ccgo_ts + 1650 + v13 = __ccgo_ts + 1664 } else { - v13 = __ccgo_ts + 14881 + v13 = __ccgo_ts + 14974 } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14889, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14982, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) } else { /* An automatic index created by a PRIMARY KEY or UNIQUE constraint */ /* zStmt = sqlite3MPrintf(""); */ @@ -103939,7 +104481,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* Add an entry in sqlite_schema for this index */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14909, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+15002, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) _sqlite3DbFree(tls, db, zStmt) /* Fill the index with data and reparse the schema. Code an OP_Expire ** to invalidate all pre-compiled statements. @@ -103947,7 +104489,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != 0 { _sqlite3RefillIndex(tls, pParse, pIndex, iMem) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14968, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+15061, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Expire), 0, int32(1)) } _sqlite3VdbeJumpHere(tls, v, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum)) @@ -103965,6 +104507,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } } /* Clean up before exiting */ + goto exit_create_index exit_create_index: ; if pIndex != 0 { @@ -104109,7 +104652,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pIndex = _sqlite3FindIndex(tls, db, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzName, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) if pIndex == uintptr(0) { if !(ifExists != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14995, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15088, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) _sqlite3ForceNotReadOnly(tls, pParse) @@ -104118,7 +104661,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in goto exit_drop_index } if int32(uint32(*(*uint16)(unsafe.Pointer(pIndex + 100))&0x3>>0)) != SQLITE_IDXTYPE_APPDEF { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15013, libc.VaList(bp+8, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15106, libc.VaList(bp+8, 0)) goto exit_drop_index } iDb = _sqlite3SchemaToIndex(tls, db, (*TIndex)(unsafe.Pointer(pIndex)).FpSchema) @@ -104126,9 +104669,9 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pTab = (*TIndex)(unsafe.Pointer(pIndex)).FpTable zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6881 + v1 = __ccgo_ts + 6945 } else { - v1 = __ccgo_ts + 6414 + v1 = __ccgo_ts + 6478 } zTab = v1 if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_DELETE), zTab, uintptr(0), zDb) != 0 { @@ -104144,12 +104687,13 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in v = _sqlite3GetVdbe(tls, pParse) if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+15086, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+12141, (*TIndex)(unsafe.Pointer(pIndex)).FzName) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+15179, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+12266, (*TIndex)(unsafe.Pointer(pIndex)).FzName) _sqlite3ChangeCookie(tls, pParse, iDb) _destroyRootPage(tls, pParse, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum), iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropIndex), iDb, 0, 0, (*TIndex)(unsafe.Pointer(pIndex)).FzName, 0) } + goto exit_drop_index exit_drop_index: ; _sqlite3SrcListDelete(tls, db, pName) @@ -104335,7 +104879,7 @@ func _sqlite3SrcListEnlarge(tls *libc.TLS, pParse uintptr, pSrc uintptr, nExtra nAlloc = int64(2)*int64((*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) + int64(nExtra) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc+nExtra >= int32(SQLITE_MAX_SRCLIST) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15146, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15239, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) return uintptr(0) } if nAlloc > int64(SQLITE_MAX_SRCLIST) { @@ -104567,11 +105111,11 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa db = (*TParse)(unsafe.Pointer(pParse)).Fdb if !(p != 0) && pOnUsing != uintptr(0) && ((*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 || (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpUsing != 0) { if (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 { - v1 = __ccgo_ts + 15182 + v1 = __ccgo_ts + 15275 } else { - v1 = __ccgo_ts + 15185 + v1 = __ccgo_ts + 15278 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15191, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15284, libc.VaList(bp+8, v1)) goto append_from_error } p = _sqlite3SrcListAppend(tls, pParse, p, pTable, pDatabase) @@ -104608,6 +105152,7 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa } } return p + goto append_from_error append_from_error: ; _sqlite3ClearOnOrUsing(tls, db, pOnUsing) @@ -104768,7 +105313,7 @@ func _sqlite3BeginTransaction(tls *libc.TLS, pParse uintptr, type1 int32) { var eTxnType, i int32 _, _, _, _, _ = db, eTxnType, i, pBt, v db = (*TParse)(unsafe.Pointer(pParse)).Fdb - if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+15227, uintptr(0), uintptr(0)) != 0 { + if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+15320, uintptr(0), uintptr(0)) != 0 { return } v = _sqlite3GetVdbe(tls, pParse) @@ -104815,9 +105360,9 @@ func _sqlite3EndTransaction(tls *libc.TLS, pParse uintptr, eType int32) { _, _, _ = isRollback, v, v1 isRollback = libc.BoolInt32(eType == int32(TK_ROLLBACK)) if isRollback != 0 { - v1 = __ccgo_ts + 15233 + v1 = __ccgo_ts + 15326 } else { - v1 = __ccgo_ts + 15242 + v1 = __ccgo_ts + 15335 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), v1, uintptr(0), uintptr(0)) != 0 { return @@ -104849,9 +105394,9 @@ func _sqlite3Savepoint(tls *libc.TLS, pParse uintptr, op int32, pName uintptr) { } var _az = [3]uintptr{ - 0: __ccgo_ts + 15227, - 1: __ccgo_ts + 15249, - 2: __ccgo_ts + 15233, + 0: __ccgo_ts + 15320, + 1: __ccgo_ts + 15342, + 2: __ccgo_ts + 15326, } // C documentation @@ -104871,7 +105416,7 @@ func _sqlite3OpenTempDatabase(tls *libc.TLS, pParse uintptr) (r int32) { if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt == uintptr(0) && !((*TParse)(unsafe.Pointer(pParse)).Fexplain != 0) { rc = _sqlite3BtreeOpen(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), db, bp, 0, _flags) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15257, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15350, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = rc return int32(1) } @@ -105055,7 +105600,7 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable _sqlite3StrAccumInit(tls, bp, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), 0, *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136))) if (*TIndex)(unsafe.Pointer(pIdx)).FaColExpr != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+15327, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+15420, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) } else { j = 0 for { @@ -105064,10 +105609,10 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx } zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)))*16))).FzCnName if j != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+15338, int32(2)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+15431, int32(2)) } Xsqlite3_str_appendall(tls, bp, (*TTable)(unsafe.Pointer(pTab)).FzName) - Xsqlite3_str_append(tls, bp, __ccgo_ts+1663, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+1677, int32(1)) Xsqlite3_str_appendall(tls, bp, zCol) goto _1 _1: @@ -105096,10 +105641,10 @@ func _sqlite3RowidConstraint(tls *libc.TLS, pParse uintptr, onError int32, pTab var zMsg uintptr _, _ = rc, zMsg if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12729, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12854, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(6)< libc.BoolInt32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15457, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15550, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } return 0 } @@ -106202,11 +106747,11 @@ func _sqlite3IsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr, pTrigger ui bp := tls.Alloc(16) defer tls.Free(16) if _tabIsReadOnly(tls, pParse, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15490, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15583, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && (pTrigger == uintptr(0) || (*TTrigger)(unsafe.Pointer(pTrigger)).FbReturning != 0 && (*TTrigger)(unsafe.Pointer(pTrigger)).FpNext == uintptr(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15519, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15612, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -106609,8 +107154,9 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** invoke the callback function. */ if memCnt != 0 { - _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15557) + _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15650) } + goto delete_from_cleanup delete_from_cleanup: ; _sqlite3AuthContextPop(tls, bp+8) @@ -106756,7 +107302,7 @@ func _sqlite3GenerateRowDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, pTri v3 = 0 } _sqlite3VdbeAddOp2(tls, v, int32(OP_Delete), iDataCur, v3) - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11930) { + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+12055) { _sqlite3VdbeAppendP4(tls, v, pTab, -int32(5)) } if int32(eMode) != ONEPASS_OFF { @@ -107060,11 +107606,11 @@ func _typeofFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } var _azType2 = [5]uintptr{ - 0: __ccgo_ts + 6654, - 1: __ccgo_ts + 6649, - 2: __ccgo_ts + 8545, - 3: __ccgo_ts + 8540, - 4: __ccgo_ts + 1636, + 0: __ccgo_ts + 6718, + 1: __ccgo_ts + 6713, + 2: __ccgo_ts + 8670, + 3: __ccgo_ts + 8665, + 4: __ccgo_ts + 1650, } // C documentation @@ -107178,7 +107724,7 @@ func _absFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { /* IMP: R-31676-45509 If X is the integer -9223372036854775808 ** then abs(X) throws an integer overflow error since there is no ** equivalent positive 64-bit two complement value. */ - Xsqlite3_result_error(tls, context, __ccgo_ts+15570, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15663, -int32(1)) return } iVal = -iVal @@ -107273,11 +107819,13 @@ func _instrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } Xsqlite3_result_int(tls, context, N) + goto endInstr endInstr: ; Xsqlite3_value_free(tls, pC1) Xsqlite3_value_free(tls, pC2) return + goto endInstrOOM endInstrOOM: ; Xsqlite3_result_error_nomem(tls, context) @@ -107491,7 +108039,7 @@ func _roundFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } *(*float64)(unsafe.Pointer(bp)) = float64(int64(*(*float64)(unsafe.Pointer(bp)) + v1)) } else { - zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15587, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) + zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15680, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) if zBuf == uintptr(0) { Xsqlite3_result_error_nomem(tls, context) return @@ -108071,7 +108619,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { */ nPat = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) if nPat > *(*int32)(unsafe.Pointer(db + 136 + 8*4)) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15593, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15686, -int32(1)) return } if argc == int32(3) { @@ -108083,7 +108631,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { return } if _sqlite3Utf8CharLen(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), -int32(1)) != int32(1) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15626, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15719, -int32(1)) return } escape = _sqlite3Utf8Read(tls, bp+8) @@ -108165,7 +108713,7 @@ func _errlogFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { defer tls.Free(16) _ = argc _ = context - Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) + Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) } // C documentation @@ -108252,17 +108800,17 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_FLOAT): r1 = Xsqlite3_value_double(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15671, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15764, libc.VaList(bp+16, r1)) zVal = Xsqlite3_str_value(tls, pStr) if zVal != 0 { _sqlite3AtoF(tls, zVal, bp, int32((*TStrAccum)(unsafe.Pointer(pStr)).FnChar), uint8(SQLITE_UTF8)) if r1 != *(*float64)(unsafe.Pointer(bp)) { Xsqlite3_str_reset(tls, pStr) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15679, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15772, libc.VaList(bp+16, r1)) } } case int32(SQLITE_INTEGER): - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1406, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1425, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) case int32(SQLITE_BLOB): zBlob = Xsqlite3_value_blob(tls, pValue) nBlob = int64(Xsqlite3_value_bytes(tls, pValue)) @@ -108290,9 +108838,9 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { } case int32(SQLITE_TEXT): zArg = Xsqlite3_value_text(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15687, libc.VaList(bp+16, zArg)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15780, libc.VaList(bp+16, zArg)) default: - Xsqlite3_str_append(tls, pStr, __ccgo_ts+1651, int32(4)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+1665, int32(4)) break } } @@ -108529,7 +109077,7 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { var v3 uint32 var _ /* zHex at bp+0 */ uintptr _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, ch, d, nHex, nPass, p, pBlob, zPass, v1, v2, v3, v4, v5, v6 - zPass = __ccgo_ts + 1650 + zPass = __ccgo_ts + 1664 nPass = 0 *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) nHex = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) @@ -108581,10 +109129,12 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { *(*Tu8)(unsafe.Pointer(v6)) = uint8(int32(_sqlite3HexToInt(tls, int32(c)))< 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fapprox != 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fovrfl != 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+15570, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15663, -int32(1)) } else { if !(_sqlite3IsOverflow(tls, (*TSumCtx)(unsafe.Pointer(p)).FrErr) != 0) { Xsqlite3_result_double(tls, context, (*TSumCtx)(unsafe.Pointer(p)).FrSum+(*TSumCtx)(unsafe.Pointer(p)).FrErr) @@ -109592,7 +110142,7 @@ func _groupConcatValue(tls *libc.TLS, context uintptr) { func _sqlite3RegisterPerConnectionBuiltinFunctions(tls *libc.TLS, db uintptr) { var rc int32 _ = rc - rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15695, int32(2)) + rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15788, int32(2)) if rc == int32(SQLITE_NOMEM) { _sqlite3OomFault(tls, db) } @@ -109621,8 +110171,8 @@ func _sqlite3RegisterLikeFunctions(tls *libc.TLS, db uintptr, caseSensitive int3 if !(nArg <= int32(3)) { break } - _sqlite3CreateFunc(tls, db, __ccgo_ts+15701, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15701, nArg, uint8(SQLITE_UTF8), uint8(0)) + _sqlite3CreateFunc(tls, db, __ccgo_ts+15794, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15794, nArg, uint8(SQLITE_UTF8), uint8(0)) *(*Tu32)(unsafe.Pointer(pDef + 4)) |= uint32(flags) *(*Tu32)(unsafe.Pointer(pDef + 4)) &= uint32(^libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)) goto _1 @@ -109928,562 +110478,562 @@ var _aBuiltinFunc = [110]TFuncDef{ FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_implies_nonnull_row))), - FzName: __ccgo_ts + 15706, + FzName: __ccgo_ts + 15799, }, 1: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_compare))), - FzName: __ccgo_ts + 15726, + FzName: __ccgo_ts + 15819, }, 2: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_implies_expr))), - FzName: __ccgo_ts + 15739, + FzName: __ccgo_ts + 15832, }, 3: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_affinity))), - FzName: __ccgo_ts + 15757, + FzName: __ccgo_ts + 15850, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15766, + FzName: __ccgo_ts + 15859, }, 5: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15774, + FzName: __ccgo_ts + 15867, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15774, + FzName: __ccgo_ts + 15867, }, 7: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15789, + FzName: __ccgo_ts + 15882, }, 8: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15815, + FzName: __ccgo_ts + 15908, }, 9: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15840, + FzName: __ccgo_ts + 15933, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15849, + FzName: __ccgo_ts + 15942, }, 11: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15860, + FzName: __ccgo_ts + 15953, }, 12: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_sqlite_offset))), - FzName: __ccgo_ts + 15867, + FzName: __ccgo_ts + 15960, }, 13: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15881, + FzName: __ccgo_ts + 15974, }, 14: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15881, + FzName: __ccgo_ts + 15974, }, 15: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15887, + FzName: __ccgo_ts + 15980, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15887, + FzName: __ccgo_ts + 15980, }, 17: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15893, + FzName: __ccgo_ts + 15986, }, 18: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15893, + FzName: __ccgo_ts + 15986, }, 19: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15898, + FzName: __ccgo_ts + 15991, }, 20: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15898, + FzName: __ccgo_ts + 15991, }, 21: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15898, + FzName: __ccgo_ts + 15991, }, 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15902, + FzName: __ccgo_ts + 15995, }, 23: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15902, + FzName: __ccgo_ts + 15995, }, 24: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15902, + FzName: __ccgo_ts + 15995, }, 25: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15906, + FzName: __ccgo_ts + 15999, }, 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15913, + FzName: __ccgo_ts + 16006, }, 27: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_LENGTH)), - FzName: __ccgo_ts + 15921, + FzName: __ccgo_ts + 16014, }, 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_BYTELEN)), - FzName: __ccgo_ts + 15928, + FzName: __ccgo_ts + 16021, }, 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15941, + FzName: __ccgo_ts + 16034, }, 30: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15947, + FzName: __ccgo_ts + 16040, }, 31: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15954, + FzName: __ccgo_ts + 16047, }, 32: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15961, + FzName: __ccgo_ts + 16054, }, 33: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15969, + FzName: __ccgo_ts + 16062, }, 34: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15974, + FzName: __ccgo_ts + 16067, }, 35: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15978, + FzName: __ccgo_ts + 16071, }, 36: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15978, + FzName: __ccgo_ts + 16071, }, 37: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15984, + FzName: __ccgo_ts + 16077, }, 38: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15990, + FzName: __ccgo_ts + 16083, }, 39: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15996, + FzName: __ccgo_ts + 16089, }, 40: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16000, + FzName: __ccgo_ts + 16093, }, 41: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16000, + FzName: __ccgo_ts + 16093, }, 42: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16006, + FzName: __ccgo_ts + 16099, }, 43: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16006, + FzName: __ccgo_ts + 16099, }, 44: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16013, + FzName: __ccgo_ts + 16106, }, 45: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16013, + FzName: __ccgo_ts + 16106, }, 46: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16013, + FzName: __ccgo_ts + 16106, }, 47: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16023, + FzName: __ccgo_ts + 16116, }, 48: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16030, + FzName: __ccgo_ts + 16123, }, 49: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16037, + FzName: __ccgo_ts + 16130, }, 50: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16048, + FzName: __ccgo_ts + 16141, }, 51: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16055, + FzName: __ccgo_ts + 16148, }, 52: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16070, + FzName: __ccgo_ts + 16163, }, 53: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16087, + FzName: __ccgo_ts + 16180, }, 54: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16098, + FzName: __ccgo_ts + 16191, }, 55: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16104, + FzName: __ccgo_ts + 16197, }, 56: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16122, + FzName: __ccgo_ts + 16215, }, 57: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16130, + FzName: __ccgo_ts + 16223, }, 58: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16144, + FzName: __ccgo_ts + 16237, }, 59: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16152, + FzName: __ccgo_ts + 16245, }, 60: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16161, + FzName: __ccgo_ts + 16254, }, 61: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16161, + FzName: __ccgo_ts + 16254, }, 62: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16168, + FzName: __ccgo_ts + 16261, }, 63: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16168, + FzName: __ccgo_ts + 16261, }, 64: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16178, + FzName: __ccgo_ts + 16271, }, 65: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16182, + FzName: __ccgo_ts + 16275, }, 66: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16188, + FzName: __ccgo_ts + 16281, }, 67: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_COUNT) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 16192, + FzName: __ccgo_ts + 16285, }, 68: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 16192, + FzName: __ccgo_ts + 16285, }, 69: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16198, + FzName: __ccgo_ts + 16291, }, 70: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16198, + FzName: __ccgo_ts + 16291, }, 71: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16211, + FzName: __ccgo_ts + 16304, }, 72: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE) | libc.Int32FromInt32(SQLITE_FUNC_CASE)), FpUserData: uintptr(unsafe.Pointer(&_globInfo)), - FzName: __ccgo_ts + 16222, + FzName: __ccgo_ts + 16315, }, 73: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15701, + FzName: __ccgo_ts + 15794, }, 74: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15701, + FzName: __ccgo_ts + 15794, }, 75: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 7078, + FzName: __ccgo_ts + 7142, }, 76: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 7078, + FzName: __ccgo_ts + 7142, }, 77: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16227, + FzName: __ccgo_ts + 16320, }, 78: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16232, + FzName: __ccgo_ts + 1237, }, 79: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16240, + FzName: __ccgo_ts + 1245, }, 80: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16246, + FzName: __ccgo_ts + 16325, }, 81: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16252, + FzName: __ccgo_ts + 16331, }, 82: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 16255, + FzName: __ccgo_ts + 16334, }, 83: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 16259, + FzName: __ccgo_ts + 16338, }, 84: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 16265, + FzName: __ccgo_ts + 16344, }, 85: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16255, + FzName: __ccgo_ts + 16334, }, 86: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16270, + FzName: __ccgo_ts + 16349, }, 87: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16274, + FzName: __ccgo_ts + 16353, }, 88: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16278, + FzName: __ccgo_ts + 16357, }, 89: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16284, + FzName: __ccgo_ts + 16363, }, 90: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16288, + FzName: __ccgo_ts + 16367, }, 91: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16293, + FzName: __ccgo_ts + 16372, }, 92: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16298, + FzName: __ccgo_ts + 16377, }, 93: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16303, + FzName: __ccgo_ts + 16382, }, 94: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16309, + FzName: __ccgo_ts + 16388, }, 95: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16313, + FzName: __ccgo_ts + 16392, }, 96: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16317, + FzName: __ccgo_ts + 16396, }, 97: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16321, + FzName: __ccgo_ts + 16400, }, 98: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16326, + FzName: __ccgo_ts + 16405, }, 99: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16331, + FzName: __ccgo_ts + 16410, }, 100: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16336, + FzName: __ccgo_ts + 16415, }, 101: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16342, + FzName: __ccgo_ts + 16421, }, 102: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16348, + FzName: __ccgo_ts + 16427, }, 103: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16354, + FzName: __ccgo_ts + 16433, }, 104: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16359, + FzName: __ccgo_ts + 16438, }, 105: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16367, + FzName: __ccgo_ts + 16446, }, 106: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16375, + FzName: __ccgo_ts + 16454, }, 107: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16378, + FzName: __ccgo_ts + 16457, }, 108: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 7078, + FzName: __ccgo_ts + 7142, }, 109: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_iif))), - FzName: __ccgo_ts + 16383, + FzName: __ccgo_ts + 16462, }, } @@ -110960,7 +111510,7 @@ func _sqlite3FkLocateIndex(tls *libc.TLS, pParse uintptr, pParent uintptr, pFKey } if !(pIdx != 0) { if !((*TParse)(unsafe.Pointer(pParse)).FdisableTriggers != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16387, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16466, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) } _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiCol) return int32(1) @@ -112071,11 +112621,11 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr break } *(*TToken)(unsafe.Pointer(bp + 16)) = TToken{ - Fz: __ccgo_ts + 6944, + Fz: __ccgo_ts + 7008, Fn: uint32(3), } /* Literal "old" token */ *(*TToken)(unsafe.Pointer(bp + 32)) = TToken{ - Fz: __ccgo_ts + 6940, + Fz: __ccgo_ts + 7004, Fn: uint32(3), } /* tFromCol = OLD.tToCol */ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -112139,7 +112689,7 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr nFrom = _sqlite3Strlen30(tls, zFrom) if action == int32(OE_Restrict) { iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5573) + pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5637) if pRaise != 0 { (*TExpr)(unsafe.Pointer(pRaise)).FaffExpr = int8(OE_Abort) } @@ -112720,7 +113270,7 @@ func _sqlite3ComputeGeneratedColumns(tls *libc.TLS, pParse uintptr, iRegStore in } } if pRedo != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8510, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8635, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) } (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 } @@ -112981,6 +113531,219 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { } } +// C documentation +// +// /* +// ** If argument pVal is a Select object returned by an sqlite3MultiValues() +// ** that was able to use the co-routine optimization, finish coding the +// ** co-routine. +// */ +func _sqlite3MultiValuesEnd(tls *libc.TLS, pParse uintptr, pVal uintptr) { + var pItem uintptr + _ = pItem + if pVal != 0 && (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pVal)).FpSrc)).FnSrc > 0 { + pItem = (*TSelect)(unsafe.Pointer(pVal)).FpSrc + 8 + _sqlite3VdbeEndCoroutine(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn) + _sqlite3VdbeJumpHere(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FaddrFillSub-int32(1)) + } +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are constant. +// */ +func _exprListIsConstant(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + if 0 == _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are both constant and have no affinity. +// */ +func _exprListIsNoAffinity(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + var pExpr uintptr + _, _ = ii, pExpr + if _exprListIsConstant(tls, pParse, pRow) == 0 { + return 0 + } + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + pExpr = (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr + if 0 != int32(_sqlite3ExprAffinity(tls, pExpr)) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** This function is called by the parser for the second and subsequent +// ** rows of a multi-row VALUES clause. Argument pLeft is the part of +// ** the VALUES clause already parsed, argument pRow is the vector of values +// ** for the new row. The Select object returned represents the complete +// ** VALUES clause, including the new row. +// ** +// ** There are two ways in which this may be achieved - by incremental +// ** coding of a co-routine (the "co-routine" method) or by returning a +// ** Select object equivalent to the following (the "UNION ALL" method): +// ** +// ** "pLeft UNION ALL SELECT pRow" +// ** +// ** If the VALUES clause contains a lot of rows, this compound Select +// ** object may consume a lot of memory. +// ** +// ** When the co-routine method is used, each row that will be returned +// ** by the VALUES clause is coded into part of a co-routine as it is +// ** passed to this function. The returned Select object is equivalent to: +// ** +// ** SELECT * FROM ( +// ** Select object to read co-routine +// ** ) +// ** +// ** The co-routine method is used in most cases. Exceptions are: +// ** +// ** a) If the current statement has a WITH clause. This is to avoid +// ** statements like: +// ** +// ** WITH cte AS ( VALUES('x'), ('y') ... ) +// ** SELECT * FROM cte AS a, cte AS b; +// ** +// ** This will not work, as the co-routine uses a hard-coded register +// ** for its OP_Yield instructions, and so it is not possible for two +// ** cursors to iterate through it concurrently. +// ** +// ** b) The schema is currently being parsed (i.e. the VALUES clause is part +// ** of a schema item like a VIEW or TRIGGER). In this case there is no VM +// ** being generated when parsing is taking place, and so generating +// ** a co-routine is not possible. +// ** +// ** c) There are non-constant expressions in the VALUES clause (e.g. +// ** the VALUES clause is part of a correlated sub-query). +// ** +// ** d) One or more of the values in the first row of the VALUES clause +// ** has an affinity (i.e. is a CAST expression). This causes problems +// ** because the complex rules SQLite uses (see function +// ** sqlite3SubqueryColumnTypes() in select.c) to determine the effective +// ** affinity of such a column for all rows require access to all values in +// ** the column simultaneously. +// */ +func _sqlite3MultiValues(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRow uintptr) (r uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var f, v1 int32 + var p, pRet, pSelect, v, v2 uintptr + var _ /* dest at bp+0 */ TSelectDest + _, _, _, _, _, _, _ = f, p, pRet, pSelect, v, v1, v2 + if (*TParse)(unsafe.Pointer(pParse)).FbHasWith != 0 || (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy != 0 || _exprListIsConstant(tls, pParse, pRow) == 0 || (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 && _exprListIsNoAffinity(tls, pParse, (*TSelect)(unsafe.Pointer(pLeft)).FpEList) == 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { + /* The co-routine method cannot be used. Fall back to UNION ALL. */ + pSelect = uintptr(0) + f = libc.Int32FromInt32(SF_Values) | libc.Int32FromInt32(SF_MultiValue) + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc != 0 { + _sqlite3MultiValuesEnd(tls, pParse, pLeft) + f = int32(SF_Values) + } else { + if (*TSelect)(unsafe.Pointer(pLeft)).FpPrior != 0 { + /* In this case set the SF_MultiValue flag only if it was set on pLeft */ + f = int32(uint32(f) & (*TSelect)(unsafe.Pointer(pLeft)).FselFlags) + } + } + pSelect = _sqlite3SelectNew(tls, pParse, pRow, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(f), uintptr(0)) + *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) + if pSelect != 0 { + (*TSelect)(unsafe.Pointer(pSelect)).Fop = uint8(TK_ALL) + (*TSelect)(unsafe.Pointer(pSelect)).FpPrior = pLeft + pLeft = pSelect + } + } else { + p = uintptr(0) /* SrcItem that reads from co-routine */ + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 { + /* Co-routine has not yet been started and the special Select object + ** that accesses the co-routine has not yet been created. This block + ** does both those things. */ + v = _sqlite3GetVdbe(tls, pParse) + pRet = _sqlite3SelectNew(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) + /* Ensure the database schema has been read. This is to ensure we have + ** the correct text encoding. */ + if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmDbFlags&uint32(DBFLAG_SchemaKnownOk) == uint32(0) { + _sqlite3ReadSchema(tls, pParse) + } + if pRet != 0 { + (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pRet)).FpSrc)).FnSrc = int32(1) + (*TSelect)(unsafe.Pointer(pRet)).FpPrior = (*TSelect)(unsafe.Pointer(pLeft)).FpPrior + (*TSelect)(unsafe.Pointer(pRet)).Fop = (*TSelect)(unsafe.Pointer(pLeft)).Fop + (*TSelect)(unsafe.Pointer(pLeft)).FpPrior = uintptr(0) + (*TSelect)(unsafe.Pointer(pLeft)).Fop = uint8(TK_SELECT) + p = (*TSelect)(unsafe.Pointer(pRet)).FpSrc + 8 + (*TSrcItem)(unsafe.Pointer(p)).FpSelect = pLeft + libc.SetBitFieldPtr16Uint32(p+60+4, libc.Uint32FromInt32(1), 5, 0x20) + (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + v2 = pParse + 56 + *(*int32)(unsafe.Pointer(v2))++ + v1 = *(*int32)(unsafe.Pointer(v2)) + (*TSrcItem)(unsafe.Pointer(p)).FregReturn = v1 + (*TSrcItem)(unsafe.Pointer(p)).FiCursor = -int32(1) + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1)) = uint32(2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn, 0, (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub) + _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + /* Allocate registers for the output of the co-routine. Do so so + ** that there are two unused registers immediately before those + ** used by the co-routine. This allows the code in sqlite3Insert() + ** to use these registers directly, instead of copying the output + ** of the co-routine to a separate array for processing. */ + (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(3) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpEList)).FnExpr + *(*int32)(unsafe.Pointer(pParse + 56)) += int32(2) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst + *(*Tu32)(unsafe.Pointer(pLeft + 4)) |= uint32(SF_MultiValue) + _sqlite3Select(tls, pParse, pLeft, bp) + (*TSrcItem)(unsafe.Pointer(p)).FregResult = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst + pLeft = pRet + } + } else { + p = (*TSelect)(unsafe.Pointer(pLeft)).FpSrc + 8 + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1))++ + } + if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { + if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p)).FpSelect)).FpEList)).FnExpr != (*TExprList)(unsafe.Pointer(pRow)).FnExpr { + _sqlite3SelectWrongNumTermsError(tls, pParse, (*TSrcItem)(unsafe.Pointer(p)).FpSelect) + } else { + _sqlite3ExprCodeExprList(tls, pParse, pRow, (*TSrcItem)(unsafe.Pointer(p)).FregResult, 0, uint8(0)) + _sqlite3VdbeAddOp1(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Yield), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + } + } + _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pRow) + } + return pLeft +} + // C documentation // // /* @@ -113083,27 +113846,27 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uintptr, pColumn uintptr, onError int32, pUpsert uintptr) { bp := tls.Alloc(160) defer tls.Free(160) - var aRegIdx, db, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, v, v13, v16, v18, v6, v9 uintptr - var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v12, v15, v17, v19, v23, v24, v5, v7, v8 int32 + var aRegIdx, db, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, v, v10, v14, v17, v19, v7 uintptr + var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v13, v16, v18, v20, v24, v25, v5, v6, v8, v9 int32 var appendFlag, bIdListInOrder, useTempTable, withoutRowid Tu8 - var colFlags, v21 Tu32 + var colFlags, v22 Tu32 var _ /* dest at bp+8 */ TSelectDest var _ /* iDataCur at bp+0 */ int32 var _ /* iIdxCur at bp+4 */ int32 var _ /* isReplace at bp+112 */ int32 var _ /* sNC at bp+56 */ TNameContext var _ /* tmask at bp+48 */ int32 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v12, v13, v15, v16, v17, v18, v19, v21, v23, v24, v5, v6, v7, v8, v9 /* Number of columns in the data */ - nHidden = 0 /* Number of hidden columns if TABLE is virtual */ - *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ - *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ - ipkColumn = -int32(1) /* Label for the end of the insertion loop */ - srcTab = 0 /* Data comes from this temporary cursor if >=0 */ - addrInsTop = 0 /* Jump to label "D" */ - addrCont = 0 /* Index of database holding TABLE */ - useTempTable = uint8(0) /* Store SELECT results in intermediate table */ - appendFlag = uint8(0) /* True if IDLIST is in table order */ - pList = uintptr(0) /* Register in which to store next column */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v10, v13, v14, v16, v17, v18, v19, v20, v22, v24, v25, v5, v6, v7, v8, v9 /* Number of columns in the data */ + nHidden = 0 /* Number of hidden columns if TABLE is virtual */ + *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ + *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ + ipkColumn = -int32(1) /* Label for the end of the insertion loop */ + srcTab = 0 /* Data comes from this temporary cursor if >=0 */ + addrInsTop = 0 /* Jump to label "D" */ + addrCont = 0 /* Index of database holding TABLE */ + useTempTable = uint8(0) /* Store SELECT results in intermediate table */ + appendFlag = uint8(0) /* True if IDLIST is in table order */ + pList = uintptr(0) /* Register in which to store next column */ /* Register allocations */ regFromSelect = 0 /* Base register for data coming from SELECT */ regAutoinc = 0 /* Register holding the AUTOINCREMENT counter */ @@ -113241,7 +114004,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_STORED)|libc.Int32FromInt32(COLFLAG_VIRTUAL)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16432, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16511, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto insert_cleanup } break @@ -113256,7 +114019,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i bIdListInOrder = uint8(0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16473, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16552, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto insert_cleanup } @@ -113273,28 +114036,46 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** co-routine is the common header to the 3rd and 4th templates. */ if pSelect != 0 { /* Result code */ - v6 = pParse + 56 - *(*int32)(unsafe.Pointer(v6))++ - v5 = *(*int32)(unsafe.Pointer(v6)) - regYield = v5 - addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) - _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) - _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) - if bIdListInOrder != 0 { - v7 = regData - } else { - v7 = 0 - } - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v7 - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) - rc = _sqlite3Select(tls, pParse, pSelect, bp+8) - regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst - if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { - goto insert_cleanup + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc)).FnSrc == int32(1) && int32(uint32(*(*uint16)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + 60 + 4))&0x20>>5)) != 0 && (*TSelect)(unsafe.Pointer(pSelect)).FpPrior == uintptr(0) { + pItem = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSDParm = (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn + regFromSelect = (*TSrcItem)(unsafe.Pointer(pItem)).FregResult + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FpEList)).FnExpr + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+16584, libc.VaList(bp+128, pItem)) + if bIdListInOrder != 0 && nColumn == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { + regData = regFromSelect + regRowid = regData - int32(1) + if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { + v5 = int32(1) + } else { + v5 = 0 + } + regIns = regRowid - v5 + } + } else { + v7 = pParse + 56 + *(*int32)(unsafe.Pointer(v7))++ + v6 = *(*int32)(unsafe.Pointer(v7)) /* Top of the co-routine */ + regYield = v6 + addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) + _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) + if bIdListInOrder != 0 { + v8 = regData + } else { + v8 = 0 + } + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) + rc = _sqlite3Select(tls, pParse, pSelect, bp+8) + regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst + if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { + goto insert_cleanup + } + _sqlite3VdbeEndCoroutine(tls, v, regYield) + _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr } - _sqlite3VdbeEndCoroutine(tls, v, regYield) - _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ - nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr /* Set useTempTable to TRUE if the result of the SELECT statement ** should be written into a temporary table (template 4). Set to ** FALSE if each output row of the SELECT can be written directly into @@ -113308,10 +114089,10 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin useTempTable = uint8(1) } if useTempTable != 0 { /* Label "L" */ - v9 = pParse + 52 - v8 = *(*int32)(unsafe.Pointer(v9)) - *(*int32)(unsafe.Pointer(v9))++ - srcTab = v8 + v10 = pParse + 52 + v9 = *(*int32)(unsafe.Pointer(v10)) + *(*int32)(unsafe.Pointer(v10))++ + srcTab = v9 regRec = _sqlite3GetTempReg(tls, pParse) regTempRowid = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp2(tls, v, int32(OP_OpenEphemeral), srcTab, nColumn) @@ -113352,8 +114133,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { ipkColumn-- } - goto _10 - _10: + goto _11 + _11: ; i-- } @@ -113370,28 +114151,28 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_NOINSERT) != 0 { nHidden++ } - goto _11 - _11: + goto _12 + _12: ; i++ } } if nColumn != int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16505, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16592, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) goto insert_cleanup } } if pColumn != uintptr(0) && nColumn != (*TIdList)(unsafe.Pointer(pColumn)).FnId { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16557, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16644, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) goto insert_cleanup } /* Initialize the count of rows to be inserted */ if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&(uint64(libc.Int32FromInt32(0x00001))<= 0 { /* tag-20191021-001: If the INTEGER PRIMARY KEY is being generated by the ** SELECT, go ahead and copy the value into the rowid slot now, so that @@ -113504,18 +114285,18 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** using excess space. The file format definition requires this extra ** NULL - we cannot optimize further by skipping the column completely */ _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) - goto _20 + goto _21 } - v21 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) - colFlags = v21 - if v21&uint32(COLFLAG_NOINSERT) != uint32(0) { + v22 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) + colFlags = v22 + if v22&uint32(COLFLAG_NOINSERT) != uint32(0) { nHidden++ if colFlags&uint32(COLFLAG_VIRTUAL) != uint32(0) { /* Virtual columns do not participate in OP_MakeRecord. So back up ** iRegStore by one slot to compensate for the iRegStore++ in the ** outer for() loop */ iRegStore-- - goto _20 + goto _21 } else { if colFlags&uint32(COLFLAG_STORED) != uint32(0) { /* Stored columns are computed later. But if there are BEFORE @@ -113525,13 +114306,13 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if *(*int32)(unsafe.Pointer(bp + 48))&int32(TRIGGER_BEFORE) != 0 { _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) } - goto _20 + goto _21 } else { if pColumn == uintptr(0) { /* Hidden columns that are not explicitly named in the INSERT ** get there default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } } } @@ -113542,8 +114323,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if !(j < (*TIdList)(unsafe.Pointer(pColumn)).FnId && *(*int32)(unsafe.Pointer(pColumn + 8 + uintptr(j)*16 + 8)) != i) { break } - goto _22 - _22: + goto _23 + _23: ; j++ } @@ -113551,14 +114332,14 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin /* A column not named in the insert column list gets its ** default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } k = j } else { if nColumn == 0 { /* This is INSERT INTO ... DEFAULT VALUES. Load the default value. */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } else { k = i - nHidden } @@ -113575,16 +114356,16 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin y = _sqlite3ExprCodeTarget(tls, pParse, pX, iRegStore) if y != iRegStore { if (*TExpr)(unsafe.Pointer(pX)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) { - v23 = int32(OP_Copy) + v24 = int32(OP_Copy) } else { - v23 = int32(OP_SCopy) + v24 = int32(OP_SCopy) } - _sqlite3VdbeAddOp2(tls, v, v23, y, iRegStore) + _sqlite3VdbeAddOp2(tls, v, v24, y, iRegStore) } } } - goto _20 - _20: + goto _21 + _21: ; i++ iRegStore++ @@ -113695,11 +114476,11 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VtabMakeWritable(tls, pParse, pTab) _sqlite3VdbeAddOp4(tls, v, int32(OP_VUpdate), int32(1), int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+int32(2), regIns, pVTab, -int32(11)) if onError == int32(OE_Default) { - v24 = int32(OE_Abort) + v25 = int32(OE_Abort) } else { - v24 = onError + v25 = onError } - _sqlite3VdbeChangeP5(tls, v, uint16(v24)) + _sqlite3VdbeChangeP5(tls, v, uint16(v25)) _sqlite3MayAbort(tls, pParse) } else { *(*int32)(unsafe.Pointer(bp + 112)) = 0 /* True to use OPFLAG_SEEKRESULT */ @@ -113742,6 +114523,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VdbeJumpHere(tls, v, addrInsTop) } } + goto insert_end insert_end: ; /* Update the sqlite_sequence table by storing the content of the @@ -113757,8 +114539,9 @@ insert_end: ** invoke the callback function. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16649) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16736) } + goto insert_cleanup insert_cleanup: ; _sqlite3SrcListDelete(tls, db, pTabList) @@ -114149,7 +114932,7 @@ func _sqlite3GenerateConstraintChecks(tls *libc.TLS, pParse uintptr, pTab uintpt case int32(OE_Rollback): fallthrough case int32(OE_Fail): - zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12729, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12854, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) _sqlite3VdbeAddOp3(tls, v, int32(OP_HaltIfNull), libc.Int32FromInt32(SQLITE_CONSTRAINT)|libc.Int32FromInt32(5)<= 0 && !(int32(*(*int8)(unsafe.Pointer(zFile + uintptr(iFile)))) == libc.Int32FromUint8('/'))) { @@ -116382,7 +117166,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp iFile-- } iFile++ - if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16701, int32(3)) == 0 { + if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16788, int32(3)) == 0 { iFile += int32(3) } iEntry = int32(8) @@ -116402,7 +117186,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp ; iFile++ } - libc.X__builtin___memcpy_chk(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16705, uint64(6), libc.X__builtin_object_size(tls, zAltEntry+uintptr(iEntry), 0)) + libc.X__builtin___memcpy_chk(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16792, uint64(6), libc.X__builtin_object_size(tls, zAltEntry+uintptr(iEntry), 0)) zEntry = zAltEntry xInit = _sqlite3OsDlSym(tls, pVfs, handle, zEntry) } @@ -116414,7 +117198,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v7 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16711, libc.VaList(bp+16, zEntry, zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16798, libc.VaList(bp+16, zEntry, zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -116429,7 +117213,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp return SQLITE_OK } if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16754, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16841, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3OsDlClose(tls, pVfs, handle) @@ -116450,6 +117234,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*int32)(unsafe.Pointer(v9))++ *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaExtension + uintptr(v8)*8)) = handle return SQLITE_OK + goto extension_not_found extension_not_found: ; if pzErrMsg != 0 { @@ -116459,7 +117244,7 @@ extension_not_found: *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v10 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16786, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16873, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -116468,7 +117253,7 @@ extension_not_found: /* Shared library endings to try if zFile cannot be loaded as written */ var _azEndings = [1]uintptr{ - 0: __ccgo_ts + 16663, + 0: __ccgo_ts + 16750, } func Xsqlite3_load_extension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintptr, pzErrMsg uintptr) (r int32) { @@ -116701,7 +117486,7 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { rc = v2 } if v3 && v2 != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16823, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16910, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) go1 = 0 } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -116755,63 +117540,63 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { // ** result column is different from the name of the pragma // */ var _pragCName = [57]uintptr{ - 0: __ccgo_ts + 5829, - 1: __ccgo_ts + 16862, - 2: __ccgo_ts + 9406, - 3: __ccgo_ts + 16866, - 4: __ccgo_ts + 16871, - 5: __ccgo_ts + 16874, - 6: __ccgo_ts + 16884, - 7: __ccgo_ts + 16894, - 8: __ccgo_ts + 16900, - 9: __ccgo_ts + 16904, - 10: __ccgo_ts + 16909, - 11: __ccgo_ts + 16914, - 12: __ccgo_ts + 16922, - 13: __ccgo_ts + 16933, - 14: __ccgo_ts + 16936, - 15: __ccgo_ts + 16943, - 16: __ccgo_ts + 16904, - 17: __ccgo_ts + 16909, - 18: __ccgo_ts + 16950, - 19: __ccgo_ts + 16955, - 20: __ccgo_ts + 16958, - 21: __ccgo_ts + 16965, - 22: __ccgo_ts + 16900, - 23: __ccgo_ts + 16904, - 24: __ccgo_ts + 16971, - 25: __ccgo_ts + 16976, - 26: __ccgo_ts + 16981, - 27: __ccgo_ts + 16904, - 28: __ccgo_ts + 16985, - 29: __ccgo_ts + 16909, - 30: __ccgo_ts + 16993, - 31: __ccgo_ts + 16997, - 32: __ccgo_ts + 17002, - 33: __ccgo_ts + 12145, - 34: __ccgo_ts + 12141, - 35: __ccgo_ts + 17008, - 36: __ccgo_ts + 17013, - 37: __ccgo_ts + 17018, - 38: __ccgo_ts + 16862, - 39: __ccgo_ts + 16904, - 40: __ccgo_ts + 17023, - 41: __ccgo_ts + 17030, - 42: __ccgo_ts + 17037, - 43: __ccgo_ts + 9406, - 44: __ccgo_ts + 17045, - 45: __ccgo_ts + 5832, - 46: __ccgo_ts + 17051, - 47: __ccgo_ts + 16862, - 48: __ccgo_ts + 16904, - 49: __ccgo_ts + 17056, - 50: __ccgo_ts + 17061, - 51: __ccgo_ts + 16255, - 52: __ccgo_ts + 17066, - 53: __ccgo_ts + 17079, - 54: __ccgo_ts + 17088, - 55: __ccgo_ts + 17095, - 56: __ccgo_ts + 17106, + 0: __ccgo_ts + 5893, + 1: __ccgo_ts + 16949, + 2: __ccgo_ts + 9531, + 3: __ccgo_ts + 16953, + 4: __ccgo_ts + 16958, + 5: __ccgo_ts + 16961, + 6: __ccgo_ts + 16971, + 7: __ccgo_ts + 16981, + 8: __ccgo_ts + 16987, + 9: __ccgo_ts + 16991, + 10: __ccgo_ts + 16996, + 11: __ccgo_ts + 17001, + 12: __ccgo_ts + 17009, + 13: __ccgo_ts + 17020, + 14: __ccgo_ts + 17023, + 15: __ccgo_ts + 17030, + 16: __ccgo_ts + 16991, + 17: __ccgo_ts + 16996, + 18: __ccgo_ts + 17037, + 19: __ccgo_ts + 17042, + 20: __ccgo_ts + 17045, + 21: __ccgo_ts + 17052, + 22: __ccgo_ts + 16987, + 23: __ccgo_ts + 16991, + 24: __ccgo_ts + 17058, + 25: __ccgo_ts + 17063, + 26: __ccgo_ts + 17068, + 27: __ccgo_ts + 16991, + 28: __ccgo_ts + 17072, + 29: __ccgo_ts + 16996, + 30: __ccgo_ts + 17080, + 31: __ccgo_ts + 17084, + 32: __ccgo_ts + 17089, + 33: __ccgo_ts + 12270, + 34: __ccgo_ts + 12266, + 35: __ccgo_ts + 17095, + 36: __ccgo_ts + 17100, + 37: __ccgo_ts + 17105, + 38: __ccgo_ts + 16949, + 39: __ccgo_ts + 16991, + 40: __ccgo_ts + 17110, + 41: __ccgo_ts + 17117, + 42: __ccgo_ts + 17124, + 43: __ccgo_ts + 9531, + 44: __ccgo_ts + 17132, + 45: __ccgo_ts + 5896, + 46: __ccgo_ts + 17138, + 47: __ccgo_ts + 16949, + 48: __ccgo_ts + 16991, + 49: __ccgo_ts + 17143, + 50: __ccgo_ts + 17148, + 51: __ccgo_ts + 16334, + 52: __ccgo_ts + 17153, + 53: __ccgo_ts + 17166, + 54: __ccgo_ts + 17175, + 55: __ccgo_ts + 17182, + 56: __ccgo_ts + 17193, } // C documentation @@ -116830,191 +117615,191 @@ type PragmaName = TPragmaName var _aPragmaName = [67]TPragmaName{ 0: { - FzName: __ccgo_ts + 17114, + FzName: __ccgo_ts + 17201, FePragTyp: uint8(PragTyp_ANALYSIS_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 1: { - FzName: __ccgo_ts + 17129, + FzName: __ccgo_ts + 17216, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_APPLICATION_ID), }, 2: { - FzName: __ccgo_ts + 17144, + FzName: __ccgo_ts + 17231, FePragTyp: uint8(PragTyp_AUTO_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 3: { - FzName: __ccgo_ts + 17156, + FzName: __ccgo_ts + 17243, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_AutoIndex), }, 4: { - FzName: __ccgo_ts + 17172, + FzName: __ccgo_ts + 17259, FePragTyp: uint8(PragTyp_BUSY_TIMEOUT), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(56), FnPragCName: uint8(1), }, 5: { - FzName: __ccgo_ts + 17095, + FzName: __ccgo_ts + 17182, FePragTyp: uint8(PragTyp_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 6: { - FzName: __ccgo_ts + 17185, + FzName: __ccgo_ts + 17272, FePragTyp: uint8(PragTyp_CACHE_SPILL), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 7: { - FzName: __ccgo_ts + 17197, + FzName: __ccgo_ts + 17284, FePragTyp: uint8(PragTyp_CASE_SENSITIVE_LIKE), FmPragFlg: uint8(PragFlg_NoColumns), }, 8: { - FzName: __ccgo_ts + 17217, + FzName: __ccgo_ts + 17304, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CellSizeCk), }, 9: { - FzName: __ccgo_ts + 17233, + FzName: __ccgo_ts + 17320, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CkptFullFSync), }, 10: { - FzName: __ccgo_ts + 17254, + FzName: __ccgo_ts + 17341, FePragTyp: uint8(PragTyp_COLLATION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(38), FnPragCName: uint8(2), }, 11: { - FzName: __ccgo_ts + 17269, + FzName: __ccgo_ts + 17356, FePragTyp: uint8(PragTyp_COMPILE_OPTIONS), FmPragFlg: uint8(PragFlg_Result0), }, 12: { - FzName: __ccgo_ts + 17285, + FzName: __ccgo_ts + 17372, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00001)) << libc.Int32FromInt32(32), }, 13: { - FzName: __ccgo_ts + 17299, + FzName: __ccgo_ts + 17386, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_DATA_VERSION), }, 14: { - FzName: __ccgo_ts + 17312, + FzName: __ccgo_ts + 17399, FePragTyp: uint8(PragTyp_DATABASE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(47), FnPragCName: uint8(3), }, 15: { - FzName: __ccgo_ts + 17326, + FzName: __ccgo_ts + 17413, FePragTyp: uint8(PragTyp_DEFAULT_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiPragCName: uint8(55), FnPragCName: uint8(1), }, 16: { - FzName: __ccgo_ts + 17345, + FzName: __ccgo_ts + 17432, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_DeferFKs), }, 17: { - FzName: __ccgo_ts + 17364, + FzName: __ccgo_ts + 17451, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_NullCallback), }, 18: { - FzName: __ccgo_ts + 17387, + FzName: __ccgo_ts + 17474, FePragTyp: uint8(PragTyp_ENCODING), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 19: { - FzName: __ccgo_ts + 17396, + FzName: __ccgo_ts + 17483, FePragTyp: uint8(PragTyp_FOREIGN_KEY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(43), FnPragCName: uint8(4), }, 20: { - FzName: __ccgo_ts + 17414, + FzName: __ccgo_ts + 17501, FePragTyp: uint8(PragTyp_FOREIGN_KEY_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FnPragCName: uint8(8), }, 21: { - FzName: __ccgo_ts + 17431, + FzName: __ccgo_ts + 17518, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ForeignKeys), }, 22: { - FzName: __ccgo_ts + 17444, + FzName: __ccgo_ts + 17531, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), }, 23: { - FzName: __ccgo_ts + 17459, + FzName: __ccgo_ts + 17546, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullColNames), }, 24: { - FzName: __ccgo_ts + 17477, + FzName: __ccgo_ts + 17564, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullFSync), }, 25: { - FzName: __ccgo_ts + 17487, + FzName: __ccgo_ts + 17574, FePragTyp: uint8(PragTyp_FUNCTION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(27), FnPragCName: uint8(6), }, 26: { - FzName: __ccgo_ts + 17501, + FzName: __ccgo_ts + 17588, FePragTyp: uint8(PragTyp_HARD_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 27: { - FzName: __ccgo_ts + 17517, + FzName: __ccgo_ts + 17604, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_IgnoreChecks), }, 28: { - FzName: __ccgo_ts + 17542, + FzName: __ccgo_ts + 17629, FePragTyp: uint8(PragTyp_INCREMENTAL_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_NoColumns)), }, 29: { - FzName: __ccgo_ts + 17561, + FzName: __ccgo_ts + 17648, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), FnPragCName: uint8(3), }, 30: { - FzName: __ccgo_ts + 17572, + FzName: __ccgo_ts + 17659, FePragTyp: uint8(PragTyp_INDEX_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(38), FnPragCName: uint8(5), }, 31: { - FzName: __ccgo_ts + 17583, + FzName: __ccgo_ts + 17670, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), @@ -117022,151 +117807,151 @@ var _aPragmaName = [67]TPragmaName{ FiArg: uint64(1), }, 32: { - FzName: __ccgo_ts + 17595, + FzName: __ccgo_ts + 17682, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 33: { - FzName: __ccgo_ts + 17611, + FzName: __ccgo_ts + 17698, FePragTyp: uint8(PragTyp_JOURNAL_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 34: { - FzName: __ccgo_ts + 17624, + FzName: __ccgo_ts + 17711, FePragTyp: uint8(PragTyp_JOURNAL_SIZE_LIMIT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 35: { - FzName: __ccgo_ts + 17643, + FzName: __ccgo_ts + 17730, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_LegacyAlter), }, 36: { - FzName: __ccgo_ts + 17662, + FzName: __ccgo_ts + 17749, FePragTyp: uint8(PragTyp_LOCK_PROXY_FILE), FmPragFlg: uint8(PragFlg_NoColumns1), }, 37: { - FzName: __ccgo_ts + 17678, + FzName: __ccgo_ts + 17765, FePragTyp: uint8(PragTyp_LOCKING_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 38: { - FzName: __ccgo_ts + 17691, + FzName: __ccgo_ts + 17778, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 39: { - FzName: __ccgo_ts + 17706, + FzName: __ccgo_ts + 17793, FePragTyp: uint8(PragTyp_MMAP_SIZE), }, 40: { - FzName: __ccgo_ts + 17716, + FzName: __ccgo_ts + 17803, FePragTyp: uint8(PragTyp_MODULE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 41: { - FzName: __ccgo_ts + 17728, + FzName: __ccgo_ts + 17815, FePragTyp: uint8(PragTyp_OPTIMIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_NeedSchema)), }, 42: { - FzName: __ccgo_ts + 17737, + FzName: __ccgo_ts + 17824, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 43: { - FzName: __ccgo_ts + 17748, + FzName: __ccgo_ts + 17835, FePragTyp: uint8(PragTyp_PAGE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 44: { - FzName: __ccgo_ts + 17758, + FzName: __ccgo_ts + 17845, FePragTyp: uint8(PragTyp_PRAGMA_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 45: { - FzName: __ccgo_ts + 17770, + FzName: __ccgo_ts + 17857, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_QueryOnly), }, 46: { - FzName: __ccgo_ts + 17781, + FzName: __ccgo_ts + 17868, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 47: { - FzName: __ccgo_ts + 17793, + FzName: __ccgo_ts + 17880, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00004)) << libc.Int32FromInt32(32), }, 48: { - FzName: __ccgo_ts + 17810, + FzName: __ccgo_ts + 17897, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_RecTriggers), }, 49: { - FzName: __ccgo_ts + 17829, + FzName: __ccgo_ts + 17916, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ReverseOrder), }, 50: { - FzName: __ccgo_ts + 17855, + FzName: __ccgo_ts + 17942, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_SCHEMA_VERSION), }, 51: { - FzName: __ccgo_ts + 17870, + FzName: __ccgo_ts + 17957, FePragTyp: uint8(PragTyp_SECURE_DELETE), FmPragFlg: uint8(PragFlg_Result0), }, 52: { - FzName: __ccgo_ts + 17884, + FzName: __ccgo_ts + 17971, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ShortColNames), }, 53: { - FzName: __ccgo_ts + 17903, + FzName: __ccgo_ts + 17990, FePragTyp: uint8(PragTyp_SHRINK_MEMORY), FmPragFlg: uint8(PragFlg_NoColumns), }, 54: { - FzName: __ccgo_ts + 17917, + FzName: __ccgo_ts + 18004, FePragTyp: uint8(PragTyp_SOFT_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 55: { - FzName: __ccgo_ts + 17933, + FzName: __ccgo_ts + 18020, FePragTyp: uint8(PragTyp_SYNCHRONOUS), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 56: { - FzName: __ccgo_ts + 17945, + FzName: __ccgo_ts + 18032, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), FnPragCName: uint8(6), }, 57: { - FzName: __ccgo_ts + 17956, + FzName: __ccgo_ts + 18043, FePragTyp: uint8(PragTyp_TABLE_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1)), FiPragCName: uint8(15), FnPragCName: uint8(6), }, 58: { - FzName: __ccgo_ts + 17967, + FzName: __ccgo_ts + 18054, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), @@ -117174,45 +117959,45 @@ var _aPragmaName = [67]TPragmaName{ FiArg: uint64(1), }, 59: { - FzName: __ccgo_ts + 17979, + FzName: __ccgo_ts + 18066, FePragTyp: uint8(PragTyp_TEMP_STORE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 60: { - FzName: __ccgo_ts + 17990, + FzName: __ccgo_ts + 18077, FePragTyp: uint8(PragTyp_TEMP_STORE_DIRECTORY), FmPragFlg: uint8(PragFlg_NoColumns1), }, 61: { - FzName: __ccgo_ts + 18011, + FzName: __ccgo_ts + 18098, FePragTyp: uint8(PragTyp_THREADS), FmPragFlg: uint8(PragFlg_Result0), }, 62: { - FzName: __ccgo_ts + 18019, + FzName: __ccgo_ts + 18106, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_TrustedSchema), }, 63: { - FzName: __ccgo_ts + 18034, + FzName: __ccgo_ts + 18121, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_USER_VERSION), }, 64: { - FzName: __ccgo_ts + 18047, + FzName: __ccgo_ts + 18134, FePragTyp: uint8(PragTyp_WAL_AUTOCHECKPOINT), }, 65: { - FzName: __ccgo_ts + 18066, + FzName: __ccgo_ts + 18153, FePragTyp: uint8(PragTyp_WAL_CHECKPOINT), FmPragFlg: uint8(PragFlg_NeedSchema), FiPragCName: uint8(50), FnPragCName: uint8(3), }, 66: { - FzName: __ccgo_ts + 18081, + FzName: __ccgo_ts + 18168, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(SQLITE_WriteSchema) | libc.Int32FromInt32(SQLITE_NoSchemaError)), @@ -117224,6 +118009,31 @@ var _aPragmaName = [67]TPragmaName{ /************** End of pragma.h **********************************************/ /************** Continuing where we left off in pragma.c *********************/ +/* +** When the 0x10 bit of PRAGMA optimize is set, any ANALYZE commands +** will be run with an analysis_limit set to the lessor of the value of +** the following macro or to the actual analysis_limit if it is non-zero, +** in order to prevent PRAGMA optimize from running for too long. +** +** The value of 2000 is chosen emperically so that the worst-case run-time +** for PRAGMA optimize does not exceed 100 milliseconds against a variety +** of test databases on a RaspberryPI-4 compiled using -Os and without +** -DSQLITE_DEBUG. Of course, your mileage may vary. For the purpose of +** this paragraph, "worst-case" means that ANALYZE ends up being +** run on every table in the database. The worst case typically only +** happens if PRAGMA optimize is run on a database file for which ANALYZE +** has not been previously run and the 0x10000 flag is included so that +** all tables are analyzed. The usual case for PRAGMA optimize is that +** no ANALYZE commands will be run at all, or if any ANALYZE happens it +** will be against a single table, so that expected timing for PRAGMA +** optimize on a PI-4 is more like 1 millisecond or less with the 0x10000 +** flag or less than 100 microseconds without the 0x10000 flag. +** +** An analysis limit of 2000 is almost always sufficient for the query +** planner to fully characterize an index. The additional accuracy from +** a larger analysis is not usually helpful. + */ + // C documentation // // /* @@ -117313,10 +118123,10 @@ func _sqlite3GetBoolean(tls *libc.TLS, z uintptr, dflt Tu8) (r Tu8) { // */ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { if z != 0 { - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18097) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18184) { return int32(PAGER_LOCKINGMODE_EXCLUSIVE) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18107) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18194) { return PAGER_LOCKINGMODE_NORMAL } } @@ -117334,13 +118144,13 @@ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { func _getAutoVacuum(tls *libc.TLS, z uintptr) (r int32) { var i, v1 int32 _, _ = i, v1 - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8566) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8691) { return BTREE_AUTOVACUUM_NONE } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18114) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18201) { return int32(BTREE_AUTOVACUUM_FULL) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18119) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18206) { return int32(BTREE_AUTOVACUUM_INCR) } i = _sqlite3Atoi(tls, z) @@ -117363,10 +118173,10 @@ func _getTempStore(tls *libc.TLS, z uintptr) (r int32) { if int32(*(*int8)(unsafe.Pointer(z))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(z))) <= int32('2') { return int32(*(*int8)(unsafe.Pointer(z))) - int32('0') } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+17056) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+17143) == 0 { return int32(1) } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+18131) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+18218) == 0 { return int32(2) } else { return 0 @@ -117388,7 +118198,7 @@ func _invalidateTempStorage(tls *libc.TLS, pParse uintptr) (r int32) { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt != uintptr(0) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || _sqlite3BtreeTxnState(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) != SQLITE_TXN_NONE { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18138, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18225, 0) return int32(SQLITE_ERROR) } _sqlite3BtreeClose(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) @@ -117518,15 +118328,15 @@ func _actionName(tls *libc.TLS, action Tu8) (r uintptr) { _ = zName switch int32(action) { case int32(OE_SetNull): - zName = __ccgo_ts + 18200 + zName = __ccgo_ts + 18287 case int32(OE_SetDflt): - zName = __ccgo_ts + 18209 + zName = __ccgo_ts + 18296 case int32(OE_Cascade): - zName = __ccgo_ts + 18221 + zName = __ccgo_ts + 18308 case int32(OE_Restrict): - zName = __ccgo_ts + 18229 + zName = __ccgo_ts + 18316 default: - zName = __ccgo_ts + 18238 + zName = __ccgo_ts + 18325 break } return zName @@ -117547,12 +118357,12 @@ func _sqlite3JournalModename(tls *libc.TLS, eMode int32) (r uintptr) { } var _azModeName = [6]uintptr{ - 0: __ccgo_ts + 18248, - 1: __ccgo_ts + 18255, - 2: __ccgo_ts + 18263, - 3: __ccgo_ts + 18267, - 4: __ccgo_ts + 18131, - 5: __ccgo_ts + 18276, + 0: __ccgo_ts + 18335, + 1: __ccgo_ts + 18342, + 2: __ccgo_ts + 18350, + 3: __ccgo_ts + 18354, + 4: __ccgo_ts + 18218, + 5: __ccgo_ts + 18363, } // C documentation @@ -117614,15 +118424,15 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s goto _1 } if (*TFuncDef)(unsafe.Pointer(p)).FxValue != uintptr(0) { - zType = __ccgo_ts + 18301 + zType = __ccgo_ts + 18388 } else { if (*TFuncDef)(unsafe.Pointer(p)).FxFinalize != uintptr(0) { - zType = __ccgo_ts + 18303 + zType = __ccgo_ts + 18390 } else { - zType = __ccgo_ts + 7965 + zType = __ccgo_ts + 8090 } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18305, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18392, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) goto _1 _1: ; @@ -117631,9 +118441,9 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s } var _azEnc = [4]uintptr{ - 1: __ccgo_ts + 18280, - 2: __ccgo_ts + 18285, - 3: __ccgo_ts + 18293, + 1: __ccgo_ts + 18367, + 2: __ccgo_ts + 18372, + 3: __ccgo_ts + 18380, } // C documentation @@ -117674,15 +118484,15 @@ func _integrityCheckResultRow(tls *libc.TLS, v uintptr) (r int32) { func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pValue uintptr, minusFlag int32) { bp := tls.Alloc(256) defer tls.Free(256) - var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, mxIdx, n, nHidden, nIdx, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, res1, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v60, v62, v63, v64, v65, v68 int32 - var aOp, aOp1, aOp2, aOp3, aOp4, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pFile, pFile1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pPager2, pPager3, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v61, v66, v8 uintptr + var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, res1, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v48, v50, v64, v66, v67, v68, v69, v72, v75, v76 int32 + var aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pFile, pFile1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pPager2, pPager3, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v65, v70, v8 uintptr var azOrigin [3]uintptr var cnum Ti16 var enc Tu8 var iPrior Tsqlite3_int64 + var iRange, szThreshold TLogEst var mask Tu64 var opMask Tu32 - var szThreshold TLogEst var _ /* N at bp+144 */ Tsqlite3_int64 var _ /* N at bp+152 */ Tsqlite3_int64 var _ /* N at bp+160 */ Tsqlite3_int64 @@ -117704,7 +118514,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p var _ /* size at bp+60 */ int32 var _ /* sz at bp+64 */ Tsqlite3_int64 var _ /* x at bp+40 */ Ti64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iPrior, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, mxIdx, n, nHidden, nIdx, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pFile, pFile1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pPager2, pPager3, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, res1, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v5, v60, v61, v62, v63, v64, v65, v66, v68, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iPrior, iRange, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pFile, pFile1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pPager2, pPager3, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, res1, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v48, v5, v50, v64, v65, v66, v67, v68, v69, v70, v72, v75, v76, v8 zLeft = uintptr(0) /* Nul-terminated UTF-8 string */ zRight = uintptr(0) /* Nul-terminated UTF-8 string , or NULL */ zDb = uintptr(0) /* return value form SQLITE_FCNTL_PRAGMA */ @@ -117733,7 +118543,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p return } if minusFlag != 0 { - zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+18312, libc.VaList(bp+184, pValue)) + zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+18399, libc.VaList(bp+184, pValue)) } else { zRight = _sqlite3NameFromToken(tls, db, pValue) } @@ -117776,7 +118586,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } if rc != int32(SQLITE_NOTFOUND) { if (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0] != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3799, libc.VaList(bp+184, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3863, libc.VaList(bp+184, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) Xsqlite3_free(tls, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0]) } (*TParse)(unsafe.Pointer(pParse)).FnErr++ @@ -117880,7 +118690,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pBt1 = (*TDb)(unsafe.Pointer(pDb)).FpBt b = -int32(1) if zRight != 0 { - if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18316) == 0 { + if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18403) == 0 { b = int32(2) } else { b = int32(_sqlite3GetBoolean(tls, zRight, uint8(0))) @@ -117951,7 +118761,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p */ fallthrough case int32(PragTyp_LOCKING_MODE): - zRet = __ccgo_ts + 18107 + zRet = __ccgo_ts + 18194 eMode = _getLockingMode(tls, zRight) if (*TToken)(unsafe.Pointer(pId2)).Fn == uint32(0) && eMode == -int32(1) { /* Simple "PRAGMA locking_mode;" statement. This is a query for @@ -117979,7 +118789,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p eMode = _sqlite3PagerLockingMode(tls, pPager, eMode) } if eMode == int32(PAGER_LOCKINGMODE_EXCLUSIVE) { - zRet = __ccgo_ts + 18097 + zRet = __ccgo_ts + 18184 } _returnSingleText(tls, v, zRet) break @@ -118269,7 +119079,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if *(*int8)(unsafe.Pointer(zRight)) != 0 { rc = _sqlite3OsAccess(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, zRight, int32(SQLITE_ACCESS_READWRITE), bp+72) if rc != SQLITE_OK || *(*int32)(unsafe.Pointer(bp + 72)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18321, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18408, 0) Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) goto pragma_out } @@ -118279,7 +119089,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } Xsqlite3_free(tls, Xsqlite3_temp_directory) if *(*int8)(unsafe.Pointer(zRight)) != 0 { - Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+184, zRight)) + Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+184, zRight)) } else { Xsqlite3_temp_directory = uintptr(0) } @@ -118311,7 +119121,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p res1 = _sqlite3OsFileControl(tls, pFile1, int32(SQLITE_FCNTL_SET_LOCKPROXYFILE), libc.UintptrFromInt32(0)) } if res1 != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18346, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18433, 0) goto pragma_out } } @@ -118331,7 +119141,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _returnSingleInt(tls, v, int64(int32((*TDb)(unsafe.Pointer(pDb)).Fsafety_level)-int32(1))) } else { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18376, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18463, 0) } else { if iDb != int32(1) { iLevel = (int32(_getSafetyLevel(tls, zRight, 0, uint8(1))) + int32(1)) & int32(PAGER_SYNCHRONOUS_MASK) @@ -118364,7 +119174,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if mask == uint64(SQLITE_DeferFKs) { (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = 0 } - if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18429) == 0 { + if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18516) == 0 { /* IMP: R-60817-01178 If the argument is "RESET" then schema ** writing is disabled (as with "PRAGMA writable_schema=OFF") and, ** in addition, the schema is reloaded. */ @@ -118444,9 +119254,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pColExpr = _sqlite3ColumnExpr(tls, pTab, pCol) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - v14 = __ccgo_ts + 18435 + v14 = __ccgo_ts + 18522 } else { - v14 = __ccgo_ts + 18443 + v14 = __ccgo_ts + 18530 } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 { v15 = int32(1) @@ -118458,7 +119268,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v16 = *(*uintptr)(unsafe.Pointer(pColExpr + 8)) } - _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+184, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1650), v15, v16, k, isHidden)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+184, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1664), v15, v16, k, isHidden)) goto _12 _12: ; @@ -118517,7 +119327,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pTab1 = (*THashElem)(unsafe.Pointer(k1)).Fdata if int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) == 0 { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18450, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab1)).FzName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18537, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab1)).FzName)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 88)) = uintptr(0) Xsqlite3_prepare(tls, db, zSql, -int32(1), bp+88, uintptr(0)) @@ -118525,7 +119335,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3DbFree(tls, db, zSql) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1634, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) } pHash = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FpSchema + 8 @@ -118547,19 +119357,19 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _20 } if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 11144 + zType = __ccgo_ts + 11269 } else { if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 13392 + zType = __ccgo_ts + 13517 } else { if (*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Shadow) != 0 { - zType = __ccgo_ts + 18466 + zType = __ccgo_ts + 18553 } else { - zType = __ccgo_ts + 9406 + zType = __ccgo_ts + 9531 } } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18473, libc.VaList(bp+184, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18560, libc.VaList(bp+184, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) goto _20 _20: ; @@ -118606,9 +119416,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v22 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab3)).FaCol + uintptr(cnum)*16))).FzCnName } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18480, libc.VaList(bp+184, i1, int32(cnum), v22)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18567, libc.VaList(bp+184, i1, int32(cnum), v22)) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18485, libc.VaList(bp+184, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) + _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18572, libc.VaList(bp+184, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) } _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), int32(1), (*TParse)(unsafe.Pointer(pParse)).FnMem) goto _21 @@ -118632,11 +119442,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } azOrigin = [3]uintptr{ - 0: __ccgo_ts + 18490, - 1: __ccgo_ts + 18492, - 2: __ccgo_ts + 16933, + 0: __ccgo_ts + 18577, + 1: __ccgo_ts + 18579, + 2: __ccgo_ts + 17020, } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18494, libc.VaList(bp+184, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18581, libc.VaList(bp+184, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) goto _23 _23: ; @@ -118655,7 +119465,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt == uintptr(0) { goto _24 } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18500, libc.VaList(bp+184, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18587, libc.VaList(bp+184, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) goto _24 _24: ; @@ -118672,7 +119482,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pColl = (*THashElem)(unsafe.Pointer(p)).Fdata v26 = i4 i4++ - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18504, libc.VaList(bp+184, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18591, libc.VaList(bp+184, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) goto _25 _25: ; @@ -118722,7 +119532,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } pMod = (*THashElem)(unsafe.Pointer(j1)).Fdata - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7965, libc.VaList(bp+184, (*TModule)(unsafe.Pointer(pMod)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+8090, libc.VaList(bp+184, (*TModule)(unsafe.Pointer(pMod)).FzName)) goto _30 _30: ; @@ -118734,7 +119544,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i6 < int32(libc.Uint64FromInt64(1608)/libc.Uint64FromInt64(24))) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7965, libc.VaList(bp+184, _aPragmaName[i6].FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+8090, libc.VaList(bp+184, _aPragmaName[i6].FzName)) goto _31 _31: ; @@ -118760,7 +119570,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(j2 < (*TFKey)(unsafe.Pointer(pFK)).FnCol) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18507, libc.VaList(bp+184, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18516)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18594, libc.VaList(bp+184, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18603)) goto _32 _32: ; @@ -118901,7 +119711,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regResult+int32(1)) } - _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18521, libc.VaList(bp+184, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) + _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18608, libc.VaList(bp+184, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), regResult, int32(4)) _sqlite3VdbeResolveLabel(tls, v, addrOk) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 104))) @@ -118969,7 +119779,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p /* Set the maximum error count */ *(*int32)(unsafe.Pointer(bp + 112)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) if zRight != 0 { - if _sqlite3GetInt32(tls, zRight, bp+112) != 0 { + if _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pValue)).Fz, bp+112) != 0 { if *(*int32)(unsafe.Pointer(bp + 112)) <= 0 { *(*int32)(unsafe.Pointer(bp + 112)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) } @@ -118989,8 +119799,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i9 < (*Tsqlite3)(unsafe.Pointer(db)).FnDb) { break } /* Array of root page numbers of all btrees */ - cnt = 0 /* Number of entries in aRoot[] */ - mxIdx = 0 /* Maximum number of indexes for any table */ + cnt = 0 /* Number of entries in aRoot[] */ if libc.Bool(OMIT_TEMPDB != 0) && i9 == int32(1) { goto _40 } @@ -119031,9 +119840,6 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pIdx3 = (*TIndex)(unsafe.Pointer(pIdx3)).FpNext nIdx++ } - if nIdx > mxIdx { - mxIdx = nIdx - } goto _41 _41: ; @@ -119089,16 +119895,78 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } *(*int32)(unsafe.Pointer(aRoot)) = cnt /* Make sure sufficient number of registers have been allocated */ - _sqlite3TouchRegister(tls, pParse, int32(8)+mxIdx) + _sqlite3TouchRegister(tls, pParse, int32(8)+cnt) _sqlite3ClearTempRegCache(tls, pParse) /* Do the b-tree integrity checks */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(2), cnt, int32(1), aRoot, -int32(14)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(1), cnt, int32(8), aRoot, -int32(14)) _sqlite3VdbeChangeP5(tls, v, uint16(uint8(i9))) addr1 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(2)) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18525, libc.VaList(bp+184, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18612, libc.VaList(bp+184, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(2), int32(3), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, addr1) + /* Check that the indexes all have the right number of rows */ + if pObjTab != 0 { + v48 = int32(1) + } else { + v48 = 0 + } + cnt = v48 + _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18636) + x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst + for { + if !(x2 != 0) { + break + } + iTab = 0 + pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab9 { + goto _49 + } + if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + v50 = cnt + cnt++ + iTab = v50 + } else { + iTab = cnt + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx5 + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { + break + } + iTab++ + goto _51 + _51: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + } + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if (*TIndex)(unsafe.Pointer(pIdx5)).FpPartIdxWhere == uintptr(0) { + addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+cnt, 0, int32(8)+iTab) + _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) + _integrityCheckResultRow(tls, v) + _sqlite3VdbeJumpHere(tls, v, addr1) + } + cnt++ + goto _52 + _52: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + goto _49 + _49: + ; + x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext + } /* Make sure all the indices are constructed correctly. */ x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst @@ -119106,39 +119974,39 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata pPrior = uintptr(0) r1 = -int32(1) /* Maximum non-virtual column number */ - if pObjTab != 0 && pObjTab != pTab9 { - goto _48 + if pObjTab != 0 && pObjTab != pTab10 { + goto _53 } - if !(int32((*TTable)(unsafe.Pointer(pTab9)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { - goto _48 + if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _53 } - if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { pPk1 = uintptr(0) r2 = 0 } else { - pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab9) + pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab10) r2 = _sqlite3GetTempRange(tls, pParse, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), int32(1), r2, r2+int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)-int32(1)) } - _sqlite3OpenTableAndIndices(tls, pParse, pTab9, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+116, bp+120) + _sqlite3OpenTableAndIndices(tls, pParse, pTab10, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+116, bp+120) /* reg[7] counts the number of entries in the table. ** reg[8+i] counts the number of entries in the i-th index */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(7)) j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(8)+j4) /* index entries counter */ - goto _49 - _49: + goto _54 + _54: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), *(*int32)(unsafe.Pointer(bp + 116)), 0) @@ -119148,29 +120016,29 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** will also prepopulate the cursor column cache that is used ** by the OP_IsType code, so it is a required step. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { mxCol = -int32(1) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { + if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { mxCol++ } - goto _50 - _50: + goto _55 + _55: ; j4++ } - if mxCol == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { + if mxCol == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { mxCol-- } } else { /* COLFLAG_VIRTUAL columns are not included in the WITHOUT ROWID ** PK index column-count, so there is no need to account for them ** in this case. */ - mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab9))).FnColumn) - int32(1) + mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab10))).FnColumn) - int32(1) } if mxCol >= 0 { _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 116)), mxCol, int32(3)) @@ -119180,7 +120048,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if pPk1 != 0 { a1 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 116)), 0, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), r2) - zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18549, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18665, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a1) @@ -119191,8 +120059,8 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprCodeLoadIndexColumn(tls, pParse, pPk1, *(*int32)(unsafe.Pointer(bp + 116)), j4, r2+j4) - goto _51 - _51: + goto _56 + _56: ; j4++ } @@ -119207,15 +120075,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** (4) Datatype for numeric columns in non-STRICT tables must not ** be a TEXT value that can be losslessly converted to numeric. */ - bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_Strict) != uint32(0)) + bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_Strict) != uint32(0)) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - pCol1 = (*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ - if j4 == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { - goto _52 + pCol1 = (*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ + if j4 == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { + goto _57 } if bStrict != 0 { doTypeCheck = libc.BoolInt32(int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4)) > int32(COLTYPE_ANY)) @@ -119223,28 +120091,28 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p doTypeCheck = libc.BoolInt32(int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) > int32(SQLITE_AFF_BLOB)) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf>>0)) == 0 && !(doTypeCheck != 0) { - goto _52 + goto _57 } /* Compute the operands that will be needed for OP_IsType */ p4 = int32(SQLITE_NULL) if int32((*TColumn)(unsafe.Pointer(pCol1)).FcolFlags)&int32(COLFLAG_VIRTUAL) != 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 116)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 116)), j4, int32(3)) p11 = -int32(1) p3 = int32(3) } else { if (*TColumn)(unsafe.Pointer(pCol1)).FiDflt != 0 { *(*uintptr)(unsafe.Pointer(bp + 128)) = uintptr(0) - _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab9, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8((*TColumn)(unsafe.Pointer(pCol1)).Faffinity), bp+128) + _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab10, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8((*TColumn)(unsafe.Pointer(pCol1)).Faffinity), bp+128) if *(*uintptr)(unsafe.Pointer(bp + 128)) != 0 { p4 = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp + 128))) _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 128))) } } p11 = *(*int32)(unsafe.Pointer(bp + 116)) - if !((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { - p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab9), int16(j4))) + if !((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { + p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab10), int16(j4))) } else { - p3 = int32(_sqlite3TableColumnToStorage(tls, pTab9, int16(j4))) + p3 = int32(_sqlite3TableColumnToStorage(tls, pTab10, int16(j4))) } } labelError = _sqlite3VdbeMakeLabel(tls, pParse) @@ -119261,10 +120129,10 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** is REAL, we have to load the actual data using OP_Column ** to reliably determine if the value is a NULL. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), p11, p3, int32(3)) - _sqlite3ColumnDefault(tls, v, pTab9, j4, int32(3)) + _sqlite3ColumnDefault(tls, v, pTab10, j4, int32(3)) jmp3 = _sqlite3VdbeAddOp2(tls, v, int32(OP_NotNull), int32(3), labelOk) } - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18585, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18701, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) if doTypeCheck != 0 { _sqlite3VdbeGoto(tls, v, labelError) @@ -119277,7 +120145,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if bStrict != 0 && doTypeCheck != 0 { _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(_aStdTypeMask[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)])) - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18605, libc.VaList(bp+184, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18721, libc.VaList(bp+184, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) == int32(SQLITE_AFF_TEXT) { @@ -119285,7 +120153,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** NULL, TEXT, or BLOB. */ _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18627, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18743, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) >= int32(SQLITE_AFF_NUMERIC) { @@ -119294,12 +120162,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1b)) /* NULL, INT, FLOAT, or BLOB */ if p11 >= 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 116)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 116)), j4, int32(3)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18650, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18766, -int32(1)) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), -int32(1), labelOk, int32(3), p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18652, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18768, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } } @@ -119307,14 +120175,14 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeResolveLabel(tls, v, labelError) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, labelOk) - goto _52 - _52: + goto _57 + _57: ; j4++ } /* Verify CHECK constraints */ - if (*TTable)(unsafe.Pointer(pTab9)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { - pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab9)).FpCheck, 0) + if (*TTable)(unsafe.Pointer(pTab10)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { + pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab10)).FpCheck, 0) if int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { addrCkFault = _sqlite3VdbeMakeLabel(tls, pParse) addrCkOk = _sqlite3VdbeMakeLabel(tls, pParse) @@ -119325,15 +120193,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprIfFalse(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8 + uintptr(k3)*32))).FpExpr, addrCkFault, 0) - goto _53 - _53: + goto _58 + _58: ; k3-- } _sqlite3ExprIfTrue(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8))).FpExpr, addrCkOk, int32(SQLITE_JUMPIFNULL)) _sqlite3VdbeResolveLabel(tls, v, addrCkFault) (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 - zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18672, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18788, libc.VaList(bp+184, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr2, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, addrCkOk) @@ -119343,25 +120211,25 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(isQuick != 0) { /* Omit the remaining tests for quick_check */ /* Validate index entries for the current row */ j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } ckUniq = _sqlite3VdbeMakeLabel(tls, pParse) - if pPk1 == pIdx5 { - goto _54 + if pPk1 == pIdx6 { + goto _59 } - r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx5, *(*int32)(unsafe.Pointer(bp + 116)), 0, 0, bp+136, pPrior, r1) - pPrior = pIdx5 + r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx6, *(*int32)(unsafe.Pointer(bp + 116)), 0, 0, bp+136, pPrior, r1) + pPrior = pIdx6 _sqlite3VdbeAddOp2(tls, v, int32(OP_AddImm), int32(8)+j4, int32(1)) /* increment entry count */ /* Verify that an index entry exists for the current table row */ - jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 120))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18702) + jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 120))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18818) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18707) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18823) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) - jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx6)).FzName) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) jmp4 = _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, jmp21) @@ -119369,12 +120237,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** that extracts the rowid off the end of the index record. ** But it only works correctly if index record does not have ** any extra bytes at the end. Verify that this is the case. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { _sqlite3VdbeAddOp2(tls, v, int32(OP_IdxRowid), *(*int32)(unsafe.Pointer(bp + 120))+j4, int32(3)) - jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)-int32(1)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18728) + jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)-int32(1)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18844) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18764) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18880) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp7) } @@ -119383,100 +120251,75 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p label6 = 0 kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { - goto _55 + if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { + goto _60 } if label6 == 0 { label6 = _sqlite3VdbeMakeLabel(tls, pParse) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 120))+j4, kk, int32(3)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ne), int32(3), label6, r1+kk) - goto _55 - _55: + goto _60 + _60: ; kk++ } if label6 != 0 { jmp6 = _sqlite3VdbeAddOp0(tls, v, int32(OP_Goto)) _sqlite3VdbeResolveLabel(tls, v, label6) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18702) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18818) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18775) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18891) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp6) } /* For UNIQUE indexes, verify that only one entry exists with the ** current key. The entry is unique if (1) any column is NULL ** or (2) the next entry has a different key */ - if int32((*TIndex)(unsafe.Pointer(pIdx5)).FonError) != OE_None { + if int32((*TIndex)(unsafe.Pointer(pIdx6)).FonError) != OE_None { uniqOk = _sqlite3VdbeMakeLabel(tls, pParse) kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FaiColumn + uintptr(kk)*2))) - if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { - goto _56 + iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FaiColumn + uintptr(kk)*2))) + if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { + goto _61 } _sqlite3VdbeAddOp2(tls, v, int32(OP_IsNull), r1+kk, uniqOk) - goto _56 - _56: + goto _61 + _61: ; kk++ } jmp61 = _sqlite3VdbeAddOp1(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 120))+j4) _sqlite3VdbeGoto(tls, v, uniqOk) _sqlite3VdbeJumpHere(tls, v, jmp61) - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 120))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18802) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 120))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18918) _sqlite3VdbeGoto(tls, v, jmp5) _sqlite3VdbeResolveLabel(tls, v, uniqOk) } _sqlite3VdbeJumpHere(tls, v, jmp4) _sqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp + 136))) - goto _54 - _54: + goto _59 + _59: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } } _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 116)), loopTop) _sqlite3VdbeJumpHere(tls, v, loopTop-int32(1)) - if !(isQuick != 0) { - _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18829) - j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex - for { - if !(pIdx5 != 0) { - break - } - if pPk1 == pIdx5 { - goto _57 - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), *(*int32)(unsafe.Pointer(bp + 120))+j4, int32(3)) - addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+j4, 0, int32(3)) - _sqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL)) - _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) - _integrityCheckResultRow(tls, v) - _sqlite3VdbeJumpHere(tls, v, addr1) - goto _57 - _57: - ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext - j4++ - } - if pPk1 != 0 { - _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) - } + if pPk1 != 0 { + _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) } - goto _48 - _48: + goto _53 + _53: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -119488,60 +120331,60 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata - if pObjTab != 0 && pObjTab != pTab10 { - goto _58 + pTab11 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab11 { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == TABTYP_NORM { - goto _58 + if int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == TABTYP_NORM { + goto _62 } - if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { - goto _58 + if !(int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FnCol) <= 0 { + if int32((*TTable)(unsafe.Pointer(pTab11)).FnCol) <= 0 { zMod = *(*uintptr)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).FazArg)) + })(unsafe.Pointer(pTab11 + 64))).FazArg)) if _sqlite3HashFind(tls, db+576, zMod) == uintptr(0) { - goto _58 + goto _62 } } - _sqlite3ViewGetColumnNames(tls, pParse, pTab10) + _sqlite3ViewGetColumnNames(tls, pParse, pTab11) if (*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp == uintptr(0) { - goto _58 + })(unsafe.Pointer(pTab11 + 64))).Fp == uintptr(0) { + goto _62 } pVTab = (*TVTable)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp)).FpVtab + })(unsafe.Pointer(pTab11 + 64))).Fp)).FpVtab if pVTab == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FiVersion < int32(4) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FxIntegrity == uintptr(0) { - goto _58 + goto _62 } _sqlite3VdbeAddOp3(tls, v, int32(OP_VCheck), i9, int32(3), isQuick) - (*TTable)(unsafe.Pointer(pTab10)).FnTabRef++ - _sqlite3VdbeAppendP4(tls, v, pTab10, -int32(16)) + (*TTable)(unsafe.Pointer(pTab11)).FnTabRef++ + _sqlite3VdbeAppendP4(tls, v, pTab11, -int32(16)) a11 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a11) - goto _58 - goto _58 - _58: + goto _62 + goto _62 + _62: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -119554,7 +120397,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if aOp2 != 0 { (*(*TVdbeOp)(unsafe.Pointer(aOp2))).Fp2 = int32(1) - *(*int32)(unsafe.Pointer(bp + 112)) (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 2*24))).Fp4type = int8(-libc.Int32FromInt32(1)) - *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18858 + *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18945 (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 5*24))).Fp4type = int8(-libc.Int32FromInt32(1)) *(*uintptr)(unsafe.Pointer(aOp2 + 5*24 + 16)) = _sqlite3ErrStr(tls, int32(SQLITE_CORRUPT)) } @@ -119612,20 +120455,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc != 0 { - v60 = int32((*struct { + v64 = int32((*struct { FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc) } else { - v60 = int32(SQLITE_UTF16LE) + v64 = int32(SQLITE_UTF16LE) } - enc = uint8(v60) + enc = uint8(v64) (*TSchema)(unsafe.Pointer((*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema)).Fenc = enc _sqlite3SetTextEncoding(tls, db, enc) break } - goto _59 - _59: + goto _63 + _63: ; pEnc += 16 } @@ -119633,7 +120476,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).FzName != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18919, libc.VaList(bp+184, zRight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19006, libc.VaList(bp+184, zRight)) } } } @@ -119711,11 +120554,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p i10 = 0 (*TParse)(unsafe.Pointer(pParse)).FnMem = int32(1) for { - v62 = i10 + v66 = i10 i10++ - v61 = Xsqlite3_compileoption_get(tls, v62) - zOpt = v61 - if !(v61 != uintptr(0)) { + v65 = Xsqlite3_compileoption_get(tls, v66) + zOpt = v65 + if !(v65 != uintptr(0)) { break } _sqlite3VdbeLoadString(tls, v, int32(1), zOpt) @@ -119731,20 +120574,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p fallthrough case int32(PragTyp_WAL_CHECKPOINT): if (*TToken)(unsafe.Pointer(pId2)).Fz != 0 { - v63 = iDb + v67 = iDb } else { - v63 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) + v67 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) } - iBt = v63 + iBt = v67 eMode2 = SQLITE_CHECKPOINT_PASSIVE if zRight != 0 { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18114) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18201) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_FULL) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18944) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+19031) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_RESTART) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18267) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18354) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_TRUNCATE) } } @@ -119768,11 +120611,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p Xsqlite3_wal_autocheckpoint(tls, db, _sqlite3Atoi(tls, zRight)) } if (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback == __ccgo_fp(_sqlite3WalDefaultHook) { - v64 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) + v68 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) } else { - v64 = 0 + v68 = 0 } - _returnSingleInt(tls, v, int64(v64)) + _returnSingleInt(tls, v, int64(v68)) break /* ** PRAGMA shrink_memory @@ -119800,47 +120643,68 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** ** The optional argument is a bitmask of optimizations to perform: ** - ** 0x0001 Debugging mode. Do not actually perform any optimizations - ** but instead return one line of text for each optimization - ** that would have been done. Off by default. + ** 0x00001 Debugging mode. Do not actually perform any optimizations + ** but instead return one line of text for each optimization + ** that would have been done. Off by default. ** - ** 0x0002 Run ANALYZE on tables that might benefit. On by default. - ** See below for additional information. + ** 0x00002 Run ANALYZE on tables that might benefit. On by default. + ** See below for additional information. ** - ** 0x0004 (Not yet implemented) Record usage and performance - ** information from the current session in the - ** database file so that it will be available to "optimize" - ** pragmas run by future database connections. + ** 0x00010 Run all ANALYZE operations using an analysis_limit that + ** is the lessor of the current analysis_limit and the + ** SQLITE_DEFAULT_OPTIMIZE_LIMIT compile-time option. + ** The default value of SQLITE_DEFAULT_OPTIMIZE_LIMIT is + ** currently (2024-02-19) set to 2000, which is such that + ** the worst case run-time for PRAGMA optimize on a 100MB + ** database will usually be less than 100 milliseconds on + ** a RaspberryPI-4 class machine. On by default. ** - ** 0x0008 (Not yet implemented) Create indexes that might have - ** been helpful to recent queries + ** 0x10000 Look at tables to see if they need to be reanalyzed + ** due to growth or shrinkage even if they have not been + ** queried during the current connection. Off by default. ** - ** The default MASK is and always shall be 0xfffe. 0xfffe means perform all - ** of the optimizations listed above except Debug Mode, including new - ** optimizations that have not yet been invented. If new optimizations are - ** ever added that should be off by default, those off-by-default - ** optimizations will have bitmasks of 0x10000 or larger. + ** The default MASK is and always shall be 0x0fffe. In the current + ** implementation, the default mask only covers the 0x00002 optimization, + ** though additional optimizations that are covered by 0x0fffe might be + ** added in the future. Optimizations that are off by default and must + ** be explicitly requested have masks of 0x10000 or greater. ** ** DETERMINATION OF WHEN TO RUN ANALYZE ** ** In the current implementation, a table is analyzed if only if all of ** the following are true: ** - ** (1) MASK bit 0x02 is set. + ** (1) MASK bit 0x00002 is set. ** - ** (2) The query planner used sqlite_stat1-style statistics for one or - ** more indexes of the table at some point during the lifetime of - ** the current connection. + ** (2) The table is an ordinary table, not a virtual table or view. ** - ** (3) One or more indexes of the table are currently unanalyzed OR - ** the number of rows in the table has increased by 25 times or more - ** since the last time ANALYZE was run. + ** (3) The table name does not begin with "sqlite_". + ** + ** (4) One or more of the following is true: + ** (4a) The 0x10000 MASK bit is set. + ** (4b) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. + ** (4c) The query planner used sqlite_stat1-style statistics for one + ** or more indexes of the table at some point during the lifetime + ** of the current connection. + ** + ** (5) One or more of the following is true: + ** (5a) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. (Same as 4a) + ** (5b) The number of rows in the table has increased or decreased by + ** 10-fold. In other words, the current size of the table is + ** 10 times larger than the size in sqlite_stat1 or else the + ** current size is less than 1/10th the size in sqlite_stat1. ** ** The rules for when tables are analyzed are likely to change in - ** future releases. + ** future releases. Future versions of SQLite might accept a string + ** literal argument to this pragma that contains a mnemonic description + ** of the options rather than a bitmap. */ fallthrough - case int32(PragTyp_OPTIMIZE): /* Mask of operations to perform */ + case int32(PragTyp_OPTIMIZE): /* Analysis limit to use */ + nCheck = 0 /* Number of tables to be optimized */ + nBtree = 0 /* Number of indexes on the current table */ if zRight != 0 { opMask = uint32(_sqlite3Atoi(tls, zRight)) if opMask&uint32(0x02) == uint32(0) { @@ -119849,22 +120713,31 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { opMask = uint32(0xfffe) } - v66 = pParse + 52 - v65 = *(*int32)(unsafe.Pointer(v66)) - *(*int32)(unsafe.Pointer(v66))++ - iTabCur = v65 + if opMask&uint32(0x10) == uint32(0) { + nLimit = 0 + } else { + if (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit > 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit < int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) { + nLimit = 0 + } else { + nLimit = int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) + } + } + v70 = pParse + 52 + v69 = *(*int32)(unsafe.Pointer(v70)) + *(*int32)(unsafe.Pointer(v70))++ + iTabCur = v69 if zDb != 0 { - v68 = iDb + v72 = iDb } else { - v68 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) + v72 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) } - iDbLast = v68 + iDbLast = v72 for { if !(iDb <= iDbLast) { break } if iDb == int32(1) { - goto _67 + goto _71 } _sqlite3CodeVerifySchema(tls, pParse, iDb) pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema @@ -119873,52 +120746,122 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(k4 != 0) { break } - pTab11 = (*THashElem)(unsafe.Pointer(k4)).Fdata - /* If table pTab has not been used in a way that would benefit from - ** having analysis statistics during the current session, then skip it. - ** This also has the effect of skipping virtual tables and views */ - if (*TTable)(unsafe.Pointer(pTab11)).FtabFlags&uint32(TF_StatsUsed) == uint32(0) { - goto _69 - } - /* Reanalyze if the table is 25 times larger than the last analysis */ - szThreshold = int16(int32((*TTable)(unsafe.Pointer(pTab11)).FnRowLogEst) + int32(46)) - pIdx6 = (*TTable)(unsafe.Pointer(pTab11)).FpIndex + pTab12 = (*THashElem)(unsafe.Pointer(k4)).Fdata + /* This only works for ordinary tables */ + if !(int32((*TTable)(unsafe.Pointer(pTab12)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _73 + } + /* Do not scan system tables */ + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab12)).FzName, __ccgo_ts+6937, int32(7)) { + goto _73 + } + /* Find the size of the table as last recorded in sqlite_stat1. + ** If any index is unanalyzed, then the threshold is -1 to + ** indicate a new, unanalyzed index + */ + szThreshold = (*TTable)(unsafe.Pointer(pTab12)).FnRowLogEst + nIndex = 0 + pIdx7 = (*TTable)(unsafe.Pointer(pTab12)).FpIndex for { - if !(pIdx6 != 0) { + if !(pIdx7 != 0) { break } - if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx6 + 100))&0x80>>7)) != 0) { - szThreshold = 0 /* Always analyze if any index lacks statistics */ - break + nIndex++ + if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx7 + 100))&0x80>>7)) != 0) { + szThreshold = int16(-int32(1)) /* Always analyze if any index lacks statistics */ } - goto _70 - _70: + goto _74 + _74: ; - pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext + pIdx7 = (*TIndex)(unsafe.Pointer(pIdx7)).FpNext } - if szThreshold != 0 { - _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab11, int32(OP_OpenRead)) - _sqlite3VdbeAddOp3(tls, v, int32(OP_IfSmaller), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), int32(szThreshold)) + /* If table pTab has not been used in a way that would benefit from + ** having analysis statistics during the current session, then skip it, + ** unless the 0x10000 MASK bit is set. */ + if (*TTable)(unsafe.Pointer(pTab12)).FtabFlags&uint32(TF_MaybeReanalyze) != uint32(0) { + /* Check for size change if stat1 has been used for a query */ + } else { + if opMask&uint32(0x10000) != 0 { + /* Check for size change if 0x10000 is set */ + } else { + if (*TTable)(unsafe.Pointer(pTab12)).FpIndex != uintptr(0) && int32(szThreshold) < 0 { + /* Do analysis if unanalyzed indexes exists */ + } else { + /* Otherwise, we can skip this table */ + goto _73 + } + } + } + nCheck++ + if nCheck == int32(2) { + /* If ANALYZE might be invoked two or more times, hold a write + ** transaction for efficiency */ + _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) + } + nBtree += nIndex + int32(1) + /* Reanalyze if the table is 10 times larger or smaller than + ** the last analysis. Unconditional reanalysis if there are + ** unanalyzed indexes. */ + _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab12, int32(OP_OpenRead)) + if int32(szThreshold) >= 0 { + iRange = int16(33) /* 10x size change */ + if int32(szThreshold) >= int32(iRange) { + v75 = int32(szThreshold) - int32(iRange) + } else { + v75 = -int32(1) + } + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IfSizeBetween), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), v75, int32(szThreshold)+int32(iRange)) + } else { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1))) } - zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18952, libc.VaList(bp+184, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab11)).FzName)) + zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+19039, libc.VaList(bp+184, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab12)).FzName)) if opMask&uint32(0x01) != 0 { r11 = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, r11, 0, zSubSql, -int32(6)) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), r11, int32(1)) } else { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), 0, 0, 0, zSubSql, -int32(6)) + if nLimit != 0 { + v76 = int32(0x02) + } else { + v76 = 00 + } + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), v76, nLimit, 0, zSubSql, -int32(6)) } - goto _69 - _69: + goto _73 + _73: ; k4 = (*THashElem)(unsafe.Pointer(k4)).Fnext } - goto _67 - _67: + goto _71 + _71: ; iDb++ } _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) + /* In a schema with a large number of tables and indexes, scale back + ** the analysis_limit to avoid excess run-time in the worst case. + */ + if !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && nLimit > 0 && nBtree > int32(100) { + nLimit = int32(100) * nLimit / nBtree + if nLimit < int32(100) { + nLimit = int32(100) + } + aOp5 = _sqlite3VdbeGetOp(tls, v, 0) + iEnd = _sqlite3VdbeCurrentAddr(tls, v) + iAddr1 = 0 + for { + if !(iAddr1 < iEnd) { + break + } + if int32((*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fopcode) == int32(OP_SqlExec) { + (*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fp2 = nLimit + } + goto _77 + _77: + ; + iAddr1++ + } + } break /* ** PRAGMA busy_timeout @@ -120012,6 +120955,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** instructions to the VM. */ if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_NoColumns1) != 0 && zRight != 0 { } + goto pragma_out pragma_out: ; _sqlite3DbFree(tls, db, zLeft) @@ -120143,34 +121087,34 @@ var _encnames1 = [9]struct { Fenc Tu8 }{ 0: { - FzName: __ccgo_ts + 18861, + FzName: __ccgo_ts + 18948, Fenc: uint8(SQLITE_UTF8), }, 1: { - FzName: __ccgo_ts + 18866, + FzName: __ccgo_ts + 18953, Fenc: uint8(SQLITE_UTF8), }, 2: { - FzName: __ccgo_ts + 18872, + FzName: __ccgo_ts + 18959, Fenc: uint8(SQLITE_UTF16LE), }, 3: { - FzName: __ccgo_ts + 18881, + FzName: __ccgo_ts + 18968, Fenc: uint8(SQLITE_UTF16BE), }, 4: { - FzName: __ccgo_ts + 18890, + FzName: __ccgo_ts + 18977, Fenc: uint8(SQLITE_UTF16LE), }, 5: { - FzName: __ccgo_ts + 18898, + FzName: __ccgo_ts + 18985, Fenc: uint8(SQLITE_UTF16BE), }, 6: { - FzName: __ccgo_ts + 18906, + FzName: __ccgo_ts + 18993, }, 7: { - FzName: __ccgo_ts + 18913, + FzName: __ccgo_ts + 19000, }, 8: {}, } @@ -120266,14 +121210,14 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg _ = argc _ = argv _sqlite3StrAccumInit(tls, bp, uintptr(0), bp+32, int32(200), 0) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18970) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+19057) i = 0 j = int32((*TPragmaName)(unsafe.Pointer(pPragma)).FiPragCName) for { if !(i < int32((*TPragmaName)(unsafe.Pointer(pPragma)).FnPragCName)) { break } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18985, libc.VaList(bp+240, int32(cSep), _pragCName[j])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+19072, libc.VaList(bp+240, int32(cSep), _pragCName[j])) cSep = int8(',') goto _1 _1: @@ -120282,19 +121226,19 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg j++ } if i == 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18992, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+19079, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) i++ } j = 0 if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_Result1) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18998) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+19085) j++ } if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&(libc.Int32FromInt32(PragFlg_SchemaOpt)|libc.Int32FromInt32(PragFlg_SchemaReq)) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+19010) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+19097) j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5454, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5518, int32(1)) _sqlite3StrAccumFinish(tls, bp) rc = Xsqlite3_declare_vtab(tls, db, bp+32) if rc == SQLITE_OK { @@ -120309,7 +121253,7 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg (*TPragmaVtab)(unsafe.Pointer(pTab)).FnHidden = uint8(j) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) } *(*uintptr)(unsafe.Pointer(ppVtab)) = pTab return rc @@ -120355,14 +121299,14 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) { break } - if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { goto _1 } if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fop) != int32(SQLITE_INDEX_CONSTRAINT_EQ) { goto _1 } - if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { - goto _1 + if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + return int32(SQLITE_CONSTRAINT) } j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn - int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) seen[j] = i + int32(1) @@ -120380,16 +121324,13 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 j = seen[0] - int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) - if seen[int32(1)] == 0 { - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(1000) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(1000) - return SQLITE_OK - } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(20) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(20) - j = seen[int32(1)] - int32(1) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + if seen[int32(1)] != 0 { + j = seen[int32(1)] - int32(1) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + } return SQLITE_OK } @@ -120417,6 +121358,7 @@ func _pragmaVtabCursorClear(tls *libc.TLS, pCsr uintptr) { _ = i Xsqlite3_finalize(tls, (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma) (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma = uintptr(0) + (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FiRowid = 0 i = 0 for { if !(i < int32(libc.Uint64FromInt64(16)/libc.Uint64FromInt64(8))) { @@ -120492,7 +121434,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr } zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if zText != 0 { - *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+40, zText)) + *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+40, zText)) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -120504,13 +121446,13 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr j++ } _sqlite3StrAccumInit(tls, bp, uintptr(0), uintptr(0), 0, *(*int32)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb + 136 + 1*4))) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+19025) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+19112) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+19033, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+19120, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) } Xsqlite3_str_appendall(tls, bp, (*TPragmaName)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).FpName)).FzName) if *(*uintptr)(unsafe.Pointer(pCsr + 24)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+19037, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+19124, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) } zSql = _sqlite3StrAccumFinish(tls, bp) if zSql == uintptr(0) { @@ -120519,7 +121461,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr rc = Xsqlite3_prepare_v2(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), pCsr+8, uintptr(0)) Xsqlite3_free(tls, zSql) if rc != SQLITE_OK { - (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) + (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) return rc } return _pragmaVtabNext(tls, pVtabCursor) @@ -120645,24 +121587,24 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) /* A error message has already been generated. Do not overwrite it */ } else { if (*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(libc.Int32FromInt32(INITFLAG_AlterMask)) != 0 { - *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+19071, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) + *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+19158, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) (*TInitData)(unsafe.Pointer(pData)).Frc = int32(SQLITE_ERROR) } else { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_WriteSchema) != 0 { - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140891)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141840)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) } else { - v1 = __ccgo_ts + 5456 + v1 = __ccgo_ts + 5520 } zObj = v1 - z = _sqlite3MPrintf(tls, db, __ccgo_ts+19099, libc.VaList(bp+8, zObj)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+19186, libc.VaList(bp+8, zObj)) if zExtra != 0 && *(*int8)(unsafe.Pointer(zExtra)) != 0 { - z = _sqlite3MPrintf(tls, db, __ccgo_ts+19130, libc.VaList(bp+8, z, zExtra)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+19217, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140898)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141847)) } } } @@ -120670,9 +121612,9 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) } var _azAlterType = [3]uintptr{ - 0: __ccgo_ts + 19041, - 1: __ccgo_ts + 19048, - 2: __ccgo_ts + 19060, + 0: __ccgo_ts + 19128, + 1: __ccgo_ts + 19135, + 2: __ccgo_ts + 19147, } // C documentation @@ -120748,7 +121690,7 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(iDb) if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), db+192) == 0 || (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage && (*TInitData)(unsafe.Pointer(pData)).FmxPage > uint32(0) { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14864) + _corruptSchema(tls, pData, argv, __ccgo_ts+14957) } } libc.SetBitFieldPtr8Uint32(db+192+8, libc.Uint32FromInt32(0), 0, 0x1) @@ -120781,11 +121723,11 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr } else { pIndex = _sqlite3FindIndex(tls, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName) if pIndex == uintptr(0) { - _corruptSchema(tls, pData, argv, __ccgo_ts+19138) + _corruptSchema(tls, pData, argv, __ccgo_ts+19225) } else { if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), pIndex+88) == 0 || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum < uint32(2) || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage || _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14864) + _corruptSchema(tls, pData, argv, __ccgo_ts+14957) } } } @@ -120824,18 +121766,18 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** table name will be inserted automatically by the parser so we can just ** use the abbreviation "x" here. The parser will also automatically tag ** the schema table as read-only. */ - (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9406 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9531 if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6881 + v2 = __ccgo_ts + 6945 } else { - v2 = __ccgo_ts + 6414 + v2 = __ccgo_ts + 6478 } v1 = v2 zSchemaTabName = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(2)] = (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8478 - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 19151 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8603 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 19238 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(5)] = uintptr(0) (*(*TInitData)(unsafe.Pointer(bp + 72))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 72))).FiDb = iDb @@ -120924,7 +121866,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl } else { /* If opening an attached database, the encoding much match ENC(db) */ if (*(*[5]int32)(unsafe.Pointer(bp + 48)))[libc.Int32FromInt32(BTREE_TEXT_ENCODING)-libc.Int32FromInt32(1)]&int32(3) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12443) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12568) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -120950,7 +121892,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = uint8(1) } if int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) > int32(SQLITE_MAX_FILE_FORMAT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+19223) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+19310) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -120965,7 +121907,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl /* Read the schema information out of the schema tables */ (*(*TInitData)(unsafe.Pointer(bp + 72))).FmxPage = _sqlite3BtreeLastPage(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+19247, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+19334, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) rc = Xsqlite3_exec(tls, db, zSql, __ccgo_fp(_sqlite3InitCallback), bp+72, uintptr(0)) @@ -121002,12 +121944,14 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** curMain and calling sqlite3BtreeEnter(). For an error that occurs ** before that point, jump to error_out. */ + goto initone_error_out initone_error_out: ; if openedTransaction != 0 { _sqlite3BtreeCommit(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) } _sqlite3BtreeLeave(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) + goto error_out error_out: ; if rc != 0 { @@ -121262,7 +122206,12 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup - pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + if _sqlite3FaultSim(tls, int32(300)) != 0 { + pCleanup = uintptr(0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) + } else { + pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + } if pCleanup != 0 { (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup @@ -121293,7 +122242,7 @@ func _sqlite3ParseObjectInit(tls *libc.TLS, pParse uintptr, db uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FpParse = pParse (*TParse)(unsafe.Pointer(pParse)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1634, 0) } } @@ -121327,7 +122276,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } else { } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1634, 0) v1 = libc.Int32FromInt32(SQLITE_NOMEM) rc = v1 (*Tsqlite3)(unsafe.Pointer(db)).FerrCode = v1 @@ -121376,7 +122325,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep rc = _sqlite3BtreeSchemaLocked(tls, pBt) if rc != 0 { zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FzDbSName - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+19281, libc.VaList(bp+432, zDb)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+19368, libc.VaList(bp+432, zDb)) goto end_prepare } } @@ -121392,7 +122341,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep if nBytes >= 0 && (nBytes == 0 || int32(*(*int8)(unsafe.Pointer(zSql + uintptr(nBytes-int32(1))))) != 0) { mxLen = *(*int32)(unsafe.Pointer(db + 136 + 1*4)) if nBytes > mxLen { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+19311, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+19398, 0) rc = _sqlite3ApiExit(tls, db, int32(SQLITE_TOOBIG)) goto end_prepare } @@ -121426,7 +122375,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } rc = (*(*TParse)(unsafe.Pointer(bp))).Frc if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3799, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3863, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) } else { _sqlite3Error(tls, db, rc) @@ -121442,6 +122391,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep (*(*TParse)(unsafe.Pointer(bp))).FpTriggerPrg = (*TTriggerPrg)(unsafe.Pointer(pT)).FpNext _sqlite3DbFree(tls, db, pT) } + goto end_prepare end_prepare: ; _sqlite3ParseObjectReset(tls, bp) @@ -121455,7 +122405,7 @@ func _sqlite3LockAndPrepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int3 cnt = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141699)) + return _sqlite3MisuseError(tls, int32(142654)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -121589,7 +122539,7 @@ func _sqlite3Prepare16(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, pr rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141848)) + return _sqlite3MisuseError(tls, int32(142803)) } if nBytes >= 0 { z = zSql @@ -121995,15 +122945,15 @@ func _sqlite3JoinType(tls *libc.TLS, pParse uintptr, pA uintptr, pB uintptr, pC i++ } if jointype&(libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER)) == libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER) || jointype&int32(JT_ERROR) != 0 || jointype&(libc.Int32FromInt32(JT_OUTER)|libc.Int32FromInt32(JT_LEFT)|libc.Int32FromInt32(JT_RIGHT)) == int32(JT_OUTER) { - zSp1 = __ccgo_ts + 11550 - zSp2 = __ccgo_ts + 11550 + zSp1 = __ccgo_ts + 11675 + zSp2 = __ccgo_ts + 11675 if pB == uintptr(0) { zSp1++ } if pC == uintptr(0) { zSp2++ } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19330, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19417, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) jointype = int32(JT_INNER) } return jointype @@ -122294,7 +123244,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { if int32((*TSrcItem)(unsafe.Pointer(pRight)).Ffg.Fjointype)&int32(JT_NATURAL) != 0 { pUsing = uintptr(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x400>>10)) != 0 || *(*uintptr)(unsafe.Pointer(pRight + 72)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19360, libc.VaList(bp+16, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19447, libc.VaList(bp+16, 0)) return int32(1) } j = 0 @@ -122344,7 +123294,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { zName1 = (*(*TIdList_item)(unsafe.Pointer(pList + 8 + uintptr(j)*16))).FzName iRightCol = _sqlite3ColumnIndex(tls, pRightTab, zName1) if iRightCol < 0 || _tableAndColumnIndex(tls, pSrc, 0, i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19410, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19497, libc.VaList(bp+16, zName1)) return int32(1) } pE1 = _sqlite3CreateColumnExpr(tls, db, pSrc, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) @@ -122366,7 +123316,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { pFuncArgs = uintptr(0) /* Arguments to the coalesce() */ for _tableAndColumnIndex(tls, pSrc, *(*int32)(unsafe.Pointer(bp))+int32(1), i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) != 0 { if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 60 + 4))&0x400>>10)) == 0 || _sqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 72)), zName1) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19474, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19561, libc.VaList(bp+16, zName1)) break } pFuncArgs = _sqlite3ExprListAppend(tls, pParse, pFuncArgs, pE1) @@ -122410,7 +123360,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { } var _tkCoalesce = TToken{ - Fz: __ccgo_ts + 7078, + Fz: __ccgo_ts + 7142, Fn: uint32(8), } @@ -123186,13 +124136,13 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { _ = z switch id { case int32(TK_ALL): - z = __ccgo_ts + 19511 + z = __ccgo_ts + 19598 case int32(TK_INTERSECT): - z = __ccgo_ts + 19521 + z = __ccgo_ts + 19608 case int32(TK_EXCEPT): - z = __ccgo_ts + 19531 + z = __ccgo_ts + 19618 default: - z = __ccgo_ts + 19538 + z = __ccgo_ts + 19625 break } return z @@ -123213,7 +124163,7 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { func _explainTempTable(tls *libc.TLS, pParse uintptr, zUsage uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19544, libc.VaList(bp+8, zUsage)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19631, libc.VaList(bp+8, zUsage)) } /* @@ -123247,12 +124197,17 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, iParm = (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm /* True if sorter record includes seq. no. */ nRefKey = 0 aOutEx = (*TSelect)(unsafe.Pointer(p)).FpEList + 8 - if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat > 0 { - v1 = __ccgo_ts + 19567 + nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat == 0 || nKey == int32(1) { + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat != 0 { + v1 = __ccgo_ts + 19654 + } else { + v1 = __ccgo_ts + 1664 + } + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19668, libc.VaList(bp+8, v1)) } else { - v1 = __ccgo_ts + 1650 + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19699, libc.VaList(bp+8, nKey)) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19582, libc.VaList(bp+8, v1)) if (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut != 0 { _sqlite3VdbeAddOp2(tls, v, int32(OP_Gosub), (*TSortCtx)(unsafe.Pointer(pSort)).FregReturn, (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut) _sqlite3VdbeGoto(tls, v, addrBreak) @@ -123274,7 +124229,6 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, regRow = _sqlite3GetTempRange(tls, pParse, nColumn) } } - nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat if int32((*TSortCtx)(unsafe.Pointer(pSort)).FsortFlags)&int32(SORTFLAG_UseSorter) != 0 { v3 = pParse + 56 *(*int32)(unsafe.Pointer(v3))++ @@ -123492,7 +124446,7 @@ func _columnTypeImpl(tls *libc.TLS, pNC uintptr, pExpr uintptr, pzOrigDb uintptr } if iCol < 0 { zType = __ccgo_ts + 1138 - *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 17045 + *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 17132 } else { *(*uintptr)(unsafe.Pointer(bp + 16)) = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, uintptr(0)) @@ -123638,13 +124592,13 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) iCol = int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) } if iCol < 0 { - zCol = __ccgo_ts + 17045 + zCol = __ccgo_ts + 17132 } else { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } if fullName != 0 { zName1 = uintptr(0) - zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12729, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) + zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12854, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zName1, __ccgo_fp(_sqlite3OomClear)) } else { _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zCol, uintptr(-libc.Int32FromInt32(1))) @@ -123652,7 +124606,7 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } else { z = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32))).FzEName if z == uintptr(0) { - v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19613, libc.VaList(bp+8, i+int32(1))) + v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19745, libc.VaList(bp+8, i+int32(1))) } else { v2 = _sqlite3DbStrDup(tls, db, z) } @@ -123744,7 +124698,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if iCol >= 0 { v3 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } else { - v3 = __ccgo_ts + 17045 + v3 = __ccgo_ts + 17132 } zName = v3 } else { @@ -123759,7 +124713,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if zName != 0 && !(_sqlite3IsTrueOrFalse(tls, zName) != 0) { zName = _sqlite3DbStrDup(tls, db, zName) } else { - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19613, libc.VaList(bp+40, i+int32(1))) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19745, libc.VaList(bp+40, i+int32(1))) } /* Make sure the column name is unique. If the name is not unique, ** append an integer to the name so that it becomes unique. @@ -123795,7 +124749,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, } *(*Tu32)(unsafe.Pointer(bp))++ v8 = *(*Tu32)(unsafe.Pointer(bp)) - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19622, libc.VaList(bp+40, nName, zName, v8)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19754, libc.VaList(bp+40, nName, zName, v8)) _sqlite3ProgressCheck(tls, pParse) if *(*Tu32)(unsafe.Pointer(bp)) > uint32(3) { Xsqlite3_randomness(tls, int32(4), bp) @@ -123855,9 +124809,9 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS defer tls.Free(64) var a, db, p, pCol, pColl, pS2, zType, p4, p5 uintptr var i, j, m int32 - var m1, n Ti64 + var k, n Ti64 var _ /* sNC at bp+0 */ TNameContext - _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, m, m1, n, p, pCol, pColl, pS2, zType, p4, p5 + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, k, m, n, p, pCol, pColl, pS2, zType, p4, p5 db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { return @@ -123874,17 +124828,22 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS if !(i < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } + m = 0 + pS2 = pSelect *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags) & libc.Int32FromInt32(COLFLAG_NOINSERT)) p = (*(*TExprList_item)(unsafe.Pointer(a + uintptr(i)*32))).FpExpr /* pCol->szEst = ... // Column size est for SELECT tables never used */ (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, p) + for int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) && (*TSelect)(unsafe.Pointer(pS2)).FpNext != uintptr(0) { + m |= _sqlite3ExprDataType(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext + (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + } if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) { (*TColumn)(unsafe.Pointer(pCol)).Faffinity = aff } - if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && (*TSelect)(unsafe.Pointer(pSelect)).FpNext != 0 { - m = 0 - m = 0 - pS2 = (*TSelect)(unsafe.Pointer(pSelect)).FpNext + if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && ((*TSelect)(unsafe.Pointer(pS2)).FpNext != 0 || pS2 != pSelect) { + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext for { if !(pS2 != 0) { break @@ -123909,7 +124868,7 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS zType = _columnTypeImpl(tls, bp, p, uintptr(0), uintptr(0), uintptr(0)) if zType == uintptr(0) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) != int32(_sqlite3AffinityType(tls, zType, uintptr(0))) { if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_NUMERIC) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_FLEXNUM) { - zType = __ccgo_ts + 19630 + zType = __ccgo_ts + 19762 } else { zType = uintptr(0) j = int32(1) @@ -123929,13 +124888,13 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS } } if zType != 0 { - m1 = int64(_sqlite3Strlen30(tls, zType)) + k = int64(_sqlite3Strlen30(tls, zType)) n = int64(_sqlite3Strlen30(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) - (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+m1+int64(2))) + (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+k+int64(2))) p4 = pCol + 14 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) & ^(libc.Int32FromInt32(COLFLAG_HASTYPE) | libc.Int32FromInt32(COLFLAG_HASCOLL))) if (*TColumn)(unsafe.Pointer(pCol)).FzCnName != 0 { - libc.X__builtin___memcpy_chk(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(m1+int64(1)), libc.X__builtin_object_size(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), 0)) + libc.X__builtin___memcpy_chk(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(k+int64(1)), libc.X__builtin_object_size(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), 0)) p5 = pCol + 14 *(*Tu16)(unsafe.Pointer(p5)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p5))) | libc.Int32FromInt32(COLFLAG_HASTYPE)) } @@ -124224,7 +125183,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest iDistinct = 0 /* To ensure unique results if UNION */ eDest = int32(SRT_Fifo) /* Registers used by LIMIT and OFFSET */ if (*TSelect)(unsafe.Pointer(p)).FpWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19634, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19766, 0) return } /* Obtain authorization to do a recursive query */ @@ -124317,7 +125276,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest break } if (*TSelect)(unsafe.Pointer(pFirstRec)).FselFlags&uint32(SF_Aggregate) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19683, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19815, 0) goto end_of_recursive_query } (*TSelect)(unsafe.Pointer(pFirstRec)).Fop = uint8(TK_ALL) @@ -124332,7 +125291,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest /* Store the results of the setup-query in Queue. */ pSetup = (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior (*TSelect)(unsafe.Pointer(pSetup)).FpNext = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19725, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19857, 0) rc = _sqlite3Select(tls, pParse, pSetup, bp) (*TSelect)(unsafe.Pointer(pSetup)).FpNext = p if rc != 0 { @@ -124360,12 +125319,13 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest ** the value for the recursive-table. Store the results in the Queue. */ (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19731, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19863, 0) _sqlite3Select(tls, pParse, p, bp) (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = pSetup /* Keep running the loop until the Queue is empty */ _sqlite3VdbeGoto(tls, v, addrTop) _sqlite3VdbeResolveLabel(tls, v, addrBreak) + goto end_of_recursive_query end_of_recursive_query: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSelect)(unsafe.Pointer(p)).FpOrderBy) @@ -124412,11 +125372,11 @@ func _multiSelectValues(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) nRow += bShowAll } if nRow == int32(1) { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } else { - v1 = __ccgo_ts + 3689 + v1 = __ccgo_ts + 3753 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19746, libc.VaList(bp+8, nRow, v1)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19878, libc.VaList(bp+8, nRow, v1)) for p != 0 { _selectInnerLoop(tls, pParse, p, -int32(1), uintptr(0), uintptr(0), pDest, int32(1), int32(1)) if !(bShowAll != 0) { @@ -124524,8 +125484,8 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in return _multiSelectOrderBy(tls, pParse, p, pDest) } else { if (*TSelect)(unsafe.Pointer(pPrior)).FpPrior == uintptr(0) { - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19769, 0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19784, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19901, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19916, 0) } /* Generate code for the left and right SELECT statements. */ @@ -124550,7 +125510,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in _sqlite3VdbeAddOp3(tls, v, int32(OP_OffsetLimit), (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TSelect)(unsafe.Pointer(p)).FiOffset+int32(1), (*TSelect)(unsafe.Pointer(p)).FiOffset) } } - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19511, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19598, 0) rc = _sqlite3Select(tls, pParse, p, bp) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -124602,7 +125562,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 48))).FeDest = op - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19803, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19935, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+48) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -124660,7 +125620,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit1 = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 88))).FiSDParm = tab2 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19803, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19935, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+88) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -124762,6 +125722,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in } _sqlite3KeyInfoUnref(tls, pKeyInfo) } + goto multi_select_end multi_select_end: ; (*TSelectDest)(unsafe.Pointer(pDest)).FiSdst = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst @@ -124782,9 +125743,9 @@ func _sqlite3SelectWrongNumTermsError(tls *libc.TLS, pParse uintptr, p uintptr) bp := tls.Alloc(16) defer tls.Free(16) if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Values) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19824, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19956, 0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19870, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20002, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) } } @@ -125153,8 +126114,8 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr (*TSelect)(unsafe.Pointer(pSplit)).FpPrior = uintptr(0) (*TSelect)(unsafe.Pointer(pPrior)).FpNext = uintptr(0) (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy = _sqlite3ExprListDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pOrderBy, 0) - _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7715) - _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7715) + _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7840) + _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7840) /* Compute the limit registers */ _computeLimitRegisters(tls, pParse, p, labelEnd) if (*TSelect)(unsafe.Pointer(p)).FiLimit != 0 && op == int32(TK_ALL) { @@ -125198,14 +126159,14 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr regOutB = v21 _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), regAddrA) _sqlite3SelectDestInit(tls, bp+40, int32(SRT_Coroutine), regAddrB) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19952, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20084, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) /* Generate a coroutine to evaluate the SELECT statement to the ** left of the compound operator - the "A" select. */ addrSelectA = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regAddrA, 0, addrSelectA) (*TSelect)(unsafe.Pointer(pPrior)).FiLimit = regLimitA - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19963, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20095, 0) _sqlite3Select(tls, pParse, pPrior, bp) _sqlite3VdbeEndCoroutine(tls, v, regAddrA) _sqlite3VdbeJumpHere(tls, v, addr1) @@ -125218,7 +126179,7 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr savedOffset = (*TSelect)(unsafe.Pointer(p)).FiOffset (*TSelect)(unsafe.Pointer(p)).FiLimit = regLimitB (*TSelect)(unsafe.Pointer(p)).FiOffset = 0 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19968, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20100, 0) _sqlite3Select(tls, pParse, p, bp+40) (*TSelect)(unsafe.Pointer(p)).FiLimit = savedLimit (*TSelect)(unsafe.Pointer(p)).FiOffset = savedOffset @@ -125433,7 +126394,7 @@ func _substExpr(tls *libc.TLS, pSubst uintptr, pExpr uintptr) (r uintptr) { if pColl != 0 { v1 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v1 = __ccgo_ts + 5434 + v1 = __ccgo_ts + 5498 } pExpr = _sqlite3ExprAddCollateString(tls, (*TSubstContext)(unsafe.Pointer(pSubst)).FpParse, pExpr, v1) } @@ -126469,10 +127430,10 @@ func _findConstInWhere(tls *libc.TLS, pConst uintptr, pExpr uintptr) { } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft - if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pLeft) != 0 { + if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pLeft) != 0 { _constInsert(tls, pConst, pRight, pLeft, pExpr) } - if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pRight) != 0 { + if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pRight) != 0 { _constInsert(tls, pConst, pLeft, pRight, pExpr) } } @@ -126705,6 +127666,18 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** The hope is that the terms added to the inner query will make it more // ** efficient. // ** +// ** NAME AMBIGUITY +// ** +// ** This optimization is called the "WHERE-clause push-down optimization". +// ** +// ** Do not confuse this optimization with another unrelated optimization +// ** with a similar name: The "MySQL push-down optimization" causes WHERE +// ** clause terms that can be evaluated using only the index and without +// ** reference to the table are run first, so that if they are false, +// ** unnecessary table seeks are avoided. +// ** +// ** RULES +// ** // ** Do not attempt this optimization if: // ** // ** (1) (** This restriction was removed on 2017-09-29. We used to @@ -126770,10 +127743,10 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** (9c) There is a RIGHT JOIN (or FULL JOIN) in between the ON/USING // ** clause and the subquery. // ** -// ** Without this restriction, the push-down optimization might move -// ** the ON/USING filter expression from the left side of a RIGHT JOIN -// ** over to the right side, which leads to incorrect answers. See -// ** also restriction (6) in sqlite3ExprIsSingleTableConstraint(). +// ** Without this restriction, the WHERE-clause push-down optimization +// ** might move the ON/USING filter expression from the left side of a +// ** RIGHT JOIN over to the right side, which leads to incorrect answers. +// ** See also restriction (6) in sqlite3ExprIsSingleTableConstraint(). // ** // ** (10) The inner query is not the right-hand table of a RIGHT JOIN. // ** @@ -126866,7 +127839,7 @@ func _pushDownWhereTerms(tls *libc.TLS, pParse uintptr, pSubq uintptr, pWhere ui nChng += _pushDownWhereTerms(tls, pParse, pSubq, (*TExpr)(unsafe.Pointer(pWhere)).FpRight, pSrcList, iSrc) pWhere = (*TExpr)(unsafe.Pointer(pWhere)).FpLeft } - if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc) != 0 { + if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc, int32(1)) != 0 { nChng++ *(*Tu32)(unsafe.Pointer(pSubq + 4)) |= uint32(SF_PushDown) for pSubq != 0 { @@ -127036,13 +128009,13 @@ func _minMaxQuery(tls *libc.TLS, db uintptr, pFunc uintptr, ppMinMax uintptr) (r return uint8(eRet) } zFunc = *(*uintptr)(unsafe.Pointer(pFunc + 8)) - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15898) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15991) == 0 { eRet = int32(WHERE_ORDERBY_MIN) if _sqlite3ExprCanBeNull(tls, (*(*TExprList_item)(unsafe.Pointer(pEList + 8))).FpExpr) != 0 { sortFlags = uint8(KEYINFO_ORDER_BIGNULL) } } else { - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15902) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15995) == 0 { eRet = int32(WHERE_ORDERBY_MAX) sortFlags = uint8(KEYINFO_ORDER_DESC) } else { @@ -127130,7 +128103,7 @@ func _sqlite3IndexedByLookup(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r in pIdx = (*TIndex)(unsafe.Pointer(pIdx)).FpNext } if !(pIdx != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19974, libc.VaList(bp+8, zIndexedBy, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20106, libc.VaList(bp+8, zIndexedBy, 0)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) return int32(SQLITE_ERROR) } @@ -127254,7 +128227,7 @@ func _cannotBeFunction(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x4>>2)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19992, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20124, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) return int32(1) } return 0 @@ -127429,7 +128402,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } *(*Tu32)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect + 4)) |= uint32(SF_CopyCte) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x2>>1)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20015, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20147, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) return int32(2) } libc.SetBitFieldPtr16Uint32(pFrom+60+4, libc.Uint32FromInt32(1), 8, 0x100) @@ -127453,7 +128426,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ libc.SetBitFieldPtr16Uint32(pItem+60+4, libc.Uint32FromInt32(1), 6, 0x40) if (*TSelect)(unsafe.Pointer(pRecTerm)).FselFlags&uint32(SF_Recursive) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20035, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20167, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) return int32(2) } *(*Tu32)(unsafe.Pointer(pRecTerm + 4)) |= uint32(SF_Recursive) @@ -127475,7 +128448,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } pRecTerm = (*TSelect)(unsafe.Pointer(pRecTerm)).FpPrior } - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 20078 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 20210 pSavedWith = (*TParse)(unsafe.Pointer(pParse)).FpWith (*TParse)(unsafe.Pointer(pParse)).FpWith = *(*uintptr)(unsafe.Pointer(bp)) if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { @@ -127506,7 +128479,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom pEList = (*TSelect)(unsafe.Pointer(pLeft)).FpEList if (*TCte)(unsafe.Pointer(pCte)).FpCols != 0 { if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr != (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20101, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20233, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) (*TParse)(unsafe.Pointer(pParse)).FpWith = pSavedWith return int32(2) } @@ -127515,9 +128488,9 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom _sqlite3ColumnsFromExprList(tls, pParse, pEList, pTab+54, pTab+8) if bMayRecursive != 0 { if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 20139 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 20271 } else { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 20173 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 20305 } _sqlite3WalkSelect(tls, pWalker, pSel) } @@ -127576,7 +128549,7 @@ func _sqlite3ExpandSubquery(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int if (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias != 0 { (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3DbStrDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias) } else { - (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+20211, libc.VaList(bp+8, pFrom)) + (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+20343, libc.VaList(bp+8, pFrom)) } for (*TSelect)(unsafe.Pointer(pSel)).FpPrior != 0 { pSel = (*TSelect)(unsafe.Pointer(pSel)).FpPrior @@ -127732,7 +128705,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { return int32(WRC_Abort) } if (*TTable)(unsafe.Pointer(pTab)).FnTabRef >= uint32(0xffff) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20215, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20347, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) (*TSrcItem)(unsafe.Pointer(pFrom)).FpTab = uintptr(0) return int32(WRC_Abort) } @@ -127747,7 +128720,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_EnableView) == uint64(0) && (*TTable)(unsafe.Pointer(pTab)).FpSchema != (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20254, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20386, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } (*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect = _sqlite3SelectDup(tls, db, (*(*struct { FpSelect uintptr @@ -127762,7 +128735,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).Fp)).FeVtabRisk) > libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15457, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15550, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } } nCol = (*TTable)(unsafe.Pointer(pTab)).FnCol @@ -127884,7 +128857,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if iDb >= 0 { v10 = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName } else { - v10 = __ccgo_ts + 6938 + v10 = __ccgo_ts + 7002 } zSchemaName = v10 } @@ -127901,7 +128874,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { pNew = _sqlite3ExprListAppend(tls, pParse, pNew, pRight) if pNew != 0 { pX = pNew + 8 + uintptr((*TExprList)(unsafe.Pointer(pNew)).FnExpr-int32(1))*32 - (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20285, libc.VaList(bp+8, zUName)) + (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20417, libc.VaList(bp+8, zUName)) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(ENAME_TAB), 0, 0x3) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(1), 7, 0x80) } @@ -127980,7 +128953,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if pNestedFrom != 0 && libc.Bool(libc.Bool(!(libc.Int32FromInt32(ViewCanHaveRowid) != 0)) || j < (*TExprList)(unsafe.Pointer(pNestedFrom)).FnExpr) { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, (*(*TExprList_item)(unsafe.Pointer(pNestedFrom + 8 + uintptr(j)*32))).FzEName) } else { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20290, libc.VaList(bp+8, zSchemaName, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20422, libc.VaList(bp+8, zSchemaName, zTabName, zName)) } if j == int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) { v13 = int32(ENAME_ROWID) @@ -127993,7 +128966,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } } else { if longNames != 0 { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12729, libc.VaList(bp+8, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12854, libc.VaList(bp+8, zTabName, zName)) libc.SetBitFieldPtr16Uint32(pX1+16+4, libc.Uint32FromInt32(ENAME_NAME), 0, 0x3) } else { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, zName) @@ -128013,9 +128986,9 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if !(tableSeen != 0) { if zTName != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20299, libc.VaList(bp+8, zTName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20431, libc.VaList(bp+8, zTName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20317, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20449, 0) } } } @@ -128029,7 +129002,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if (*TSelect)(unsafe.Pointer(p)).FpEList != 0 { if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpEList)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20337, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20469, 0) return int32(WRC_Abort) } if elistFlags&uint32(libc.Int32FromInt32(EP_HasFunc)|libc.Int32FromInt32(EP_Subquery)) != uint32(0) { @@ -128370,12 +129343,12 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct >= 0 { pE = (*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFExpr if *(*uintptr)(unsafe.Pointer(pE + 32)) == uintptr(0) || (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pE + 32)))).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20368, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20500, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct = -int32(1) } else { pKeyInfo = _sqlite3KeyInfoFromExprList(tls, pParse, *(*uintptr)(unsafe.Pointer(pE + 32)), 0, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistAddr = _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct, 0, 0, pKeyInfo, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20419, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20551, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } } if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab >= 0 { @@ -128396,7 +129369,7 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { (*TKeyInfo)(unsafe.Pointer(pKeyInfo1)).FnKeyField++ } _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab, (*TExprList)(unsafe.Pointer(pOBList)).FnExpr+nExtra, 0, pKeyInfo1, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20452, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20584, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } goto _1 _1: @@ -128701,16 +129674,16 @@ func _explainSimpleCount(tls *libc.TLS, pParse uintptr, pTab uintptr, pIdx uintp if int32((*TParse)(unsafe.Pointer(pParse)).Fexplain) == int32(2) { bCover = libc.BoolInt32(pIdx != uintptr(0) && ((*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) || !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == libc.Int32FromInt32(SQLITE_IDXTYPE_PRIMARYKEY)))) if bCover != 0 { - v1 = __ccgo_ts + 20485 + v1 = __ccgo_ts + 20617 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } if bCover != 0 { v2 = (*TIndex)(unsafe.Pointer(pIdx)).FzName } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20508, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20640, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) } } @@ -128742,7 +129715,7 @@ func _havingToWhereExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 ** statements AggInfo structure. */ if _sqlite3ExprIsConstantOrGroupBy(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, pExpr, (*TSelect)(unsafe.Pointer(pS)).FpGroupBy) != 0 && libc.BoolInt32((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse)) == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb - pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8478) + pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8603) if pNew != 0 { pWhere = (*TSelect)(unsafe.Pointer(pS)).FpWhere t = *(*TExpr)(unsafe.Pointer(pNew)) @@ -128898,7 +129871,7 @@ func _countOfViewOptimization(tls *libc.TLS, pParse uintptr, p uintptr) (r int32 if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { return 0 } /* Result is an aggregate */ - if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+16192) != 0 { + if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+16285) != 0 { return 0 } /* Is count() */ if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != uintptr(0) { @@ -129161,7 +130134,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { v1 = (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p0)).FpTab)).FzName } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20520, libc.VaList(bp+176, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20652, libc.VaList(bp+176, v1)) goto select_end } /* Clear the SF_UFSrcCheck flag. The check has already been performed, @@ -129262,7 +130235,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Catch mismatch in the declared columns of a view and the number of ** columns in the SELECT on the RHS */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) != (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20574, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20706, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) goto select_end } /* Do not attempt the usual optimizations (flattening and ORDER BY @@ -129399,12 +130372,12 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r ** string for the fake column name seems safer. */ if (*TSrcItem)(unsafe.Pointer(pItem1)).FcolUsed == uint64(0) && (*TSrcItem)(unsafe.Pointer(pItem1)).FzName != uintptr(0) { - _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1650, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) + _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1664, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) } /* Generate code for all sub-queries in the FROM clause */ pSub1 = (*TSrcItem)(unsafe.Pointer(pItem1)).FpSelect - if pSub1 == uintptr(0) { + if pSub1 == uintptr(0) || (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub != 0 { goto _10 } /* The code for a subquery should only be generated once. */ @@ -129443,7 +130416,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn, 0, addrTop) (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub = addrTop _sqlite3SelectDestInit(tls, bp+72, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20614, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20746, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow libc.SetBitFieldPtr16Uint32(pItem1+60+4, libc.Uint32FromInt32(1), 5, 0x20) @@ -129491,7 +130464,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { } _sqlite3SelectDestInit(tls, bp+72, int32(SRT_EphemTab), (*TSrcItem)(unsafe.Pointer(pItem1)).FiCursor) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20629, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20761, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow if onceAddr != 0 { @@ -129901,11 +130874,11 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r groupBySort = 0 } else { if (*(*TDistinctCtx)(unsafe.Pointer(bp))).FisTnct != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Distinct) == uint32(0) { - v44 = __ccgo_ts + 20645 + v44 = __ccgo_ts + 20777 } else { - v44 = __ccgo_ts + 20654 + v44 = __ccgo_ts + 20786 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19544, libc.VaList(bp+176, v44)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19631, libc.VaList(bp+176, v44)) groupBySort = int32(1) nGroupBy = (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr nCol = nGroupBy @@ -130224,7 +131197,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeResolveLabel(tls, v, addrEnd) } /* endif aggregate query */ if int32((*(*TDistinctCtx)(unsafe.Pointer(bp))).FeTnctType) == int32(WHERE_DISTINCT_UNORDERED) { - _explainTempTable(tls, pParse, __ccgo_ts+20645) + _explainTempTable(tls, pParse, __ccgo_ts+20777) } /* If there is an ORDER BY clause, then we need to sort the results ** and send them to the callback one by one. @@ -130241,6 +131214,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Control jumps to here if an error is encountered above, or upon ** successful coding of the SELECT. */ + goto select_end select_end: ; _sqlite3ExprListDelete(tls, db, *(*uintptr)(unsafe.Pointer(bp + 64))) @@ -130329,7 +131303,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr if !(i < nCol) { break } - z = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) + z = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) if z == uintptr(0) { goto malloc_failed } @@ -130345,7 +131319,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr } else { if int32((*TTabResult)(unsafe.Pointer(p)).FnColumn) != nCol { Xsqlite3_free(tls, (*TTabResult)(unsafe.Pointer(p)).FzErrMsg) - (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20663, 0) + (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20795, 0) (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) return int32(1) } @@ -130380,6 +131354,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr (*TTabResult)(unsafe.Pointer(p)).FnRow++ } return 0 + goto malloc_failed malloc_failed: ; (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) @@ -130434,7 +131409,7 @@ func Xsqlite3_get_table(tls *libc.TLS, db uintptr, zSql uintptr, pazResult uintp if (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg != 0 { if pzErrMsg != 0 { Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pzErrMsg))) - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) } Xsqlite3_free(tls, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg) } @@ -130596,7 +131571,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if isTemp != 0 { /* If TEMP was specified, then the trigger name may not be qualified. */ if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20728, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20860, 0) goto trigger_cleanup } iDb = int32(1) @@ -130636,7 +131611,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto trigger_cleanup } - _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20774, *(*uintptr)(unsafe.Pointer(bp))) + _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20906, *(*uintptr)(unsafe.Pointer(bp))) if _sqlite3FixSrcList(tls, bp+8, pTableName) != 0 { goto trigger_cleanup } @@ -130646,11 +131621,11 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_orphan_error } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20782, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20914, 0) goto trigger_orphan_error } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, db) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20823, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20955, 0) goto trigger_orphan_error } /* Check that the trigger name is not reserved and that no trigger of the @@ -130659,13 +131634,13 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if zName == uintptr(0) { goto trigger_cleanup } - if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20774, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { + if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20906, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { goto trigger_cleanup } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema+56, zName) != 0 { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20863, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20995, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) } @@ -130673,8 +131648,8 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 } } /* Do not create a trigger on a system table */ - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6873, int32(7)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20889, 0) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6937, int32(7)) == 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21021, 0) goto trigger_cleanup } /* INSTEAD of triggers are only for views and views only support INSTEAD @@ -130682,15 +131657,15 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && tr_tm != int32(TK_INSTEAD) { if tr_tm == int32(TK_BEFORE) { - v1 = __ccgo_ts + 20927 + v1 = __ccgo_ts + 21059 } else { - v1 = __ccgo_ts + 20934 + v1 = __ccgo_ts + 21066 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20940, libc.VaList(bp+112, v1, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21072, libc.VaList(bp+112, v1, pTableName+8)) goto trigger_orphan_error } if !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) && tr_tm == int32(TK_INSTEAD) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20977, libc.VaList(bp+112, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21109, libc.VaList(bp+112, pTableName+8)) goto trigger_orphan_error } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -130710,9 +131685,9 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iTabDb == int32(1) { - v3 = __ccgo_ts + 6881 + v3 = __ccgo_ts + 6945 } else { - v3 = __ccgo_ts + 6414 + v3 = __ccgo_ts + 6478 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto trigger_cleanup @@ -130753,6 +131728,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 (*TTrigger)(unsafe.Pointer(pTrigger)).FpColumns = pColumns pColumns = uintptr(0) (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger = pTrigger + goto trigger_cleanup trigger_cleanup: ; _sqlite3DbFree(tls, db, zName) @@ -130764,6 +131740,7 @@ trigger_cleanup: } else { } return + goto trigger_orphan_error trigger_orphan_error: ; if int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) == int32(1) { @@ -130810,7 +131787,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl pStepList = (*TTriggerStep)(unsafe.Pointer(pStepList)).FpNext } _sqlite3TokenInit(tls, bp+96, (*TTrigger)(unsafe.Pointer(pTrig)).FzName) - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20774, bp+96) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20906, bp+96) if _sqlite3FixTriggerStep(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).Fstep_list) != 0 || _sqlite3FixExpr(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).FpWhen) != 0 { goto triggerfinish_cleanup } @@ -130832,7 +131809,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl break } if (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget != uintptr(0) && _sqlite3ShadowTableName(tls, db, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21023, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21155, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) goto triggerfinish_cleanup } goto _1 @@ -130848,10 +131825,10 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) z = _sqlite3DbStrNDup(tls, db, (*TToken)(unsafe.Pointer(pAll)).Fz, uint64((*TToken)(unsafe.Pointer(pAll)).Fn)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+21071, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+21203, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) _sqlite3DbFree(tls, db, z) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+21146, libc.VaList(bp+120, zName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+21278, libc.VaList(bp+120, zName)), uint16(0)) } } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { @@ -130868,6 +131845,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } } } + goto triggerfinish_cleanup triggerfinish_cleanup: ; _sqlite3DeleteTrigger(tls, db, pTrig) @@ -131118,7 +132096,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int } if !(pTrigger != 0) { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21175, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21307, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, zDb) } @@ -131126,6 +132104,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int goto drop_trigger_cleanup } _sqlite3DropTriggerPtr(tls, pParse, pTrigger) + goto drop_trigger_cleanup drop_trigger_cleanup: ; _sqlite3SrcListDelete(tls, db, pName) @@ -131159,9 +132138,9 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { code = int32(SQLITE_DROP_TRIGGER) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6881 + v1 = __ccgo_ts + 6945 } else { - v1 = __ccgo_ts + 6414 + v1 = __ccgo_ts + 6478 } zTab = v1 if iDb == int32(1) { @@ -131176,7 +132155,7 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { v2 = _sqlite3GetVdbe(tls, pParse) v = v2 if v2 != uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+21195, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+21327, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropTrigger), iDb, 0, 0, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName, 0) } @@ -131309,11 +132288,11 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { if op != int32(TK_INSERT) { if op == int32(TK_DELETE) { - v1 = __ccgo_ts + 21257 + v1 = __ccgo_ts + 21389 } else { - v1 = __ccgo_ts + 21264 + v1 = __ccgo_ts + 21396 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21271, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21403, libc.VaList(bp+8, v1)) } (*TTrigger)(unsafe.Pointer(p)).Ftr_tm = uint8(TRIGGER_BEFORE) } else { @@ -131330,6 +132309,7 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, p = (*TTrigger)(unsafe.Pointer(p)).FpNext } } + goto exit_triggers_exist exit_triggers_exist: ; if pMask != 0 { @@ -131413,7 +132393,7 @@ func _isAsteriskTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pTerm)).FpRight)).Fop) != int32(TK_ASTERISK) { return 0 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21319, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21451, 0) return int32(1) } @@ -131478,6 +132458,79 @@ func _sqlite3ExpandReturning(tls *libc.TLS, pParse uintptr, pList uintptr, pTab return pNew } +// C documentation +// +// /* If the Expr node is a subquery or an EXISTS operator or an IN operator that +// ** uses a subquery, and if the subquery is SF_Correlated, then mark the +// ** expression as EP_VarSelect. +// */ +func _sqlite3ReturningSubqueryVarSelect(tls *libc.TLS, NotUsed uintptr, pExpr uintptr) (r int32) { + _ = NotUsed + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) && (*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FselFlags&uint32(SF_Correlated) != uint32(0) { + *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** If the SELECT references the table pWalker->u.pTab, then do two things: +// ** +// ** (1) Mark the SELECT as as SF_Correlated. +// ** (2) Set pWalker->eCode to non-zero so that the caller will know +// ** that (1) has happened. +// */ +func _sqlite3ReturningSubqueryCorrelated(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + var i int32 + var pSrc uintptr + _, _ = i, pSrc + pSrc = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + i = 0 + for { + if !(i < (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) { + break + } + if (*(*TSrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104))).FpTab == *(*uintptr)(unsafe.Pointer(pWalker + 40)) { + *(*Tu32)(unsafe.Pointer(pSelect + 4)) |= uint32(SF_Correlated) + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + break + } + goto _1 + _1: + ; + i++ + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Scan the expression list that is the argument to RETURNING looking +// ** for subqueries that depend on the table which is being modified in the +// ** statement that is hosting the RETURNING clause (pTab). Mark all such +// ** subqueries as SF_Correlated. If the subqueries are part of an +// ** expression, mark the expression as EP_VarSelect. +// ** +// ** https://sqlite.org/forum/forumpost/2c83569ce8945d39 +// */ +func _sqlite3ProcessReturningSubqueries(tls *libc.TLS, pEList uintptr, pTab uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.X__builtin___memset_chk(tls, bp, 0, uint64(48), libc.X__builtin_object_size(tls, bp, 0)) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ExprWalkNoop) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3ReturningSubqueryCorrelated) + *(*uintptr)(unsafe.Pointer(bp + 40)) = pTab + _sqlite3WalkExprList(tls, bp, pEList) + if (*(*TWalker)(unsafe.Pointer(bp))).FeCode != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ReturningSubqueryVarSelect) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) + _sqlite3WalkExprList(tls, bp, pEList) + } +} + // C documentation // // /* @@ -131512,6 +132565,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab (*(*TSelect)(unsafe.Pointer(bp))).FpSrc = bp + 128 (*(*TSrcList)(unsafe.Pointer(bp + 128))).FnSrc = int32(1) (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FpTab = pTab + (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FzName = (*TTable)(unsafe.Pointer(pTab)).FzName /* tag-20240424-1 */ (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FiCursor = -int32(1) _sqlite3SelectPrep(tls, pParse, bp, uintptr(0)) if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { @@ -131536,6 +132590,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab if _sqlite3ResolveExprListNames(tls, bp+240, pNew) == SQLITE_OK && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) { nCol = (*TExprList)(unsafe.Pointer(pNew)).FnExpr reg = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(1) + _sqlite3ProcessReturningSubqueries(tls, pNew, pTab) *(*int32)(unsafe.Pointer(pParse + 56)) += nCol + int32(2) (*TReturning)(unsafe.Pointer(pReturning)).FiRetReg = reg i = 0 @@ -131604,7 +132659,7 @@ func _codeTriggerProgram(tls *libc.TLS, pParse uintptr, pStepList uintptr, orcon } (*TParse)(unsafe.Pointer(pParse)).FeOrconf = uint8(v2) if (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6611, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6675, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) } switch int32((*TTriggerStep)(unsafe.Pointer(pStep)).Fop) { case int32(TK_UPDATE): @@ -131706,7 +132761,7 @@ func _codeRowTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab uintp v = _sqlite3GetVdbe(tls, bp+56) if v != 0 { if (*TTrigger)(unsafe.Pointer(pTrigger)).FzName != 0 { - _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+21361, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) + _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+21493, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) } /* If one was specified, code the WHEN clause. If it evaluates to false ** (or NULL) the sub-vdbe is immediately halted by jumping to the @@ -132395,7 +133450,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui chngPk = uint8(1) } else { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21375, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21507, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto update_cleanup } } @@ -132415,13 +133470,13 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui pRowidExpr = (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FpExpr iRowidExpr = i } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21411, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21543, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto update_cleanup } } if j < 0 { - v11 = __ccgo_ts + 8253 + v11 = __ccgo_ts + 8378 } else { v11 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName } @@ -133103,8 +134158,9 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui ** that information. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21430) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21562) } + goto update_cleanup update_cleanup: ; _sqlite3AuthContextPop(tls, bp) @@ -133536,9 +134592,9 @@ func _sqlite3UpsertAnalyzeTarget(tls *libc.TLS, pParse uintptr, pTabList uintptr if nClause == 0 && (*TUpsert)(unsafe.Pointer(pUpsert)).FpNextUpsert == uintptr(0) { (*(*[16]int8)(unsafe.Pointer(bp + 200)))[0] = 0 } else { - Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21443, libc.VaList(bp+224, nClause+int32(1))) + Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21575, libc.VaList(bp+224, nClause+int32(1))) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21447, libc.VaList(bp+224, bp+200)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21579, libc.VaList(bp+224, bp+200)) return int32(SQLITE_ERROR) } goto _1 @@ -133641,7 +134697,7 @@ func _sqlite3UpsertDoUpdate(tls *libc.TLS, pParse uintptr, pUpsert uintptr, pTab i++ } i = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), iDataCur, 0, iPk, nPk) - _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12818, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12943, -int32(1)) _sqlite3MayAbort(tls, pParse) _sqlite3VdbeJumpHere(tls, v, i) } @@ -133723,7 +134779,7 @@ func _execSql(tls *libc.TLS, db uintptr, pzErrMsg uintptr, zSql uintptr) (r int3 ** corrupt the sqlite_schema.sql field with other kinds of statements ** then run VACUUM to get those statements to execute at inappropriate ** times. */ - if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21520, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21524, uint64(3)) == 0) { + if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21652, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21656, uint64(3)) == 0) { rc = _execSql(tls, db, pzErrMsg, zSubSql) if rc != SQLITE_OK { break @@ -133823,6 +134879,7 @@ func _sqlite3Vacuum(tls *libc.TLS, pParse uintptr, _pNm uintptr, pInto uintptr) _sqlite3VdbeAddOp2(tls, v, int32(OP_Vacuum), iDb, iIntoReg) _sqlite3VdbeUsesBtree(tls, v, iDb) } + goto build_vacuum_end build_vacuum_end: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pInto) @@ -133850,24 +134907,24 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p pDb = uintptr(0) /* Name of output file */ pgflags = uint32(PAGER_SYNCHRONOUS_OFF) /* sync flags for output db */ if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21528) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21660) return int32(SQLITE_ERROR) /* IMP: R-12218-18073 */ } if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive > int32(1) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21568) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21700) return int32(SQLITE_ERROR) /* IMP: R-15610-35227 */ } saved_openFlags = (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags if pOut != 0 { if Xsqlite3_value_type(tls, pOut) != int32(SQLITE_TEXT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21611) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21743) return int32(SQLITE_ERROR) } zOut = Xsqlite3_value_text(tls, pOut) *(*uint32)(unsafe.Pointer(db + 76)) &= uint32(^libc.Int32FromInt32(SQLITE_OPEN_READONLY)) *(*uint32)(unsafe.Pointer(db + 76)) |= uint32(libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE)) } else { - zOut = __ccgo_ts + 1650 + zOut = __ccgo_ts + 1664 } /* Save the current value of the database flags so that it can be ** restored before returning. Then set the writable-schema flag, and @@ -133899,7 +134956,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** to write the journal header file. */ nDb = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21629, libc.VaList(bp+24, zOut)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21761, libc.VaList(bp+24, zOut)) (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags = saved_openFlags if rc != SQLITE_OK { goto end_of_vacuum @@ -133911,7 +134968,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p *(*Ti64)(unsafe.Pointer(bp)) = 0 if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != uintptr(0) && (_sqlite3OsFileSize(tls, id, bp) != SQLITE_OK || *(*Ti64)(unsafe.Pointer(bp)) > 0) { rc = int32(SQLITE_ERROR) - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21652) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21784) goto end_of_vacuum } *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_VacuumInto) @@ -133928,7 +134985,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** file. This is done before the sqlite3BtreeGetPageSize(pMain) call below, ** to ensure that we do not try to change the page-size on a WAL database. */ - rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+15227) + rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+15320) if rc != SQLITE_OK { goto end_of_vacuum } @@ -133959,11 +135016,11 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** in the temporary database. */ (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(nDb) /* force new CREATE statements into vacuum_db */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21679, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21811, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21787, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21919, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } @@ -133972,7 +135029,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** an "INSERT INTO vacuum_db.xxx SELECT * FROM main.xxx;" to copy ** the contents to the temporary database. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21841, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21973, libc.VaList(bp+24, zDbMain)) *(*Tu32)(unsafe.Pointer(db + 44)) &= uint32(^libc.Int32FromInt32(DBFLAG_Vacuum)) if rc != SQLITE_OK { goto end_of_vacuum @@ -133982,7 +135039,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** associated storage, so all we have to do is copy their entries ** from the schema table. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21992, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+22124, libc.VaList(bp+24, zDbMain)) if rc != 0 { goto end_of_vacuum } @@ -134021,6 +135078,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p nRes = _sqlite3BtreeGetRequestedReserve(tls, pTemp) rc = _sqlite3BtreeSetPageSize(tls, pMain, _sqlite3BtreeGetPageSize(tls, pTemp), nRes, int32(1)) } + goto end_of_vacuum end_of_vacuum: ; /* Restore the original value of db->flags */ @@ -134508,7 +135566,7 @@ func _addModuleArgument(tls *libc.TLS, pParse uintptr, pTable uintptr, zArg uint FazArg uintptr Fp uintptr })(unsafe.Pointer(pTable + 64))).FnArg+int32(3) >= *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13048, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13173, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) } azModuleArg = _sqlite3DbRealloc(tls, db, (*(*struct { FnArg int32 @@ -134631,7 +135689,7 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { if pEnd != 0 { (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fn = uint32(int32(int64((*TToken)(unsafe.Pointer(pEnd)).Fz)-int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz))) + (*TToken)(unsafe.Pointer(pEnd)).Fn } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+22122, libc.VaList(bp+8, pParse+272)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+22254, libc.VaList(bp+8, pParse+272)) /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. @@ -134641,11 +135699,11 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { ** by sqlite3StartTable(). */ iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+22146, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+22278, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) v = _sqlite3GetVdbe(tls, pParse) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) - zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+22245, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) + zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+22377, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, zWhere, uint16(0)) _sqlite3DbFree(tls, db, zStmt) v2 = pParse + 56 @@ -134732,7 +135790,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, break } if (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab == pTab { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22264, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22396, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(SQLITE_LOCKED) } goto _1 @@ -134774,9 +135832,9 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, } if SQLITE_OK != rc { if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22306, libc.VaList(bp+48, zModuleName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22438, libc.VaList(bp+48, zModuleName)) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3799, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3863, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) } _sqlite3DbFree(tls, db, pVTable) @@ -134789,8 +135847,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*TModule)(unsafe.Pointer(pMod)).FnRefModule++ (*TVTable)(unsafe.Pointer(pVTable)).FnRef = int32(1) if (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared == 0 { - zFormat = __ccgo_ts + 22336 - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + zFormat = __ccgo_ts + 22468 + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, zModuleName)) _sqlite3VtabUnlock(tls, pVTable) rc = int32(SQLITE_ERROR) } else { @@ -134815,7 +135873,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(iCol < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } - zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1650) + zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1664) i = 0 nType = _sqlite3Strlen30(tls, zType) i = 0 @@ -134823,7 +135881,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(i < nType) { break } - if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16936, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { + if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+17023, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { break } goto _3 @@ -134904,13 +135962,13 @@ func _sqlite3VtabCallConnect(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).FazArg)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22382, libc.VaList(bp+16, zModule)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22514, libc.VaList(bp+16, zModule)) rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxConnect, bp) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3799, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3863, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) (*TParse)(unsafe.Pointer(pParse)).Frc = rc } _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) @@ -134991,7 +136049,7 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, ** error. Otherwise, do nothing. */ if pMod == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxDestroy == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22382, libc.VaList(bp+8, zMod)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22514, libc.VaList(bp+8, zMod)) rc = int32(SQLITE_ERROR) } else { rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate, pzErr) @@ -135017,18 +136075,42 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r int32) { bp := tls.Alloc(448) defer tls.Free(448) - var initBusy, rc int32 - var pCtx, pIdx, pNew, pTab, v2 uintptr - var v1 Ti16 + var i, initBusy, rc int32 + var pCtx, pIdx, pNew, pTab, z, v3 uintptr + var v2 Ti16 var _ /* sParse at bp+0 */ TParse - _, _, _, _, _, _, _, _ = initBusy, pCtx, pIdx, pNew, pTab, rc, v1, v2 + var _ /* tokenType at bp+424 */ int32 + _, _, _, _, _, _, _, _, _, _ = i, initBusy, pCtx, pIdx, pNew, pTab, rc, z, v2, v3 rc = SQLITE_OK + /* Verify that the first two keywords in the CREATE TABLE statement + ** really are "CREATE" and "TABLE". If this is not the case, then + ** sqlite3_declare_vtab() is being misused. + */ + z = zCreateTable + i = 0 + for { + if !(_aKeyword1[i] != 0) { + break + } + *(*int32)(unsafe.Pointer(bp + 424)) = 0 + for cond := true; cond; cond = *(*int32)(unsafe.Pointer(bp + 424)) == int32(TK_SPACE) { + z += uintptr(_sqlite3GetToken(tls, z, bp+424)) + } + if *(*int32)(unsafe.Pointer(bp + 424)) != int32(_aKeyword1[i]) { + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+22533, 0) + return int32(SQLITE_ERROR) + } + goto _1 + _1: + ; + i++ + } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pCtx = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(pCtx != 0) || (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared != 0 { - _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(155155))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(156227))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(155157)) + return _sqlite3MisuseError(tls, int32(156229)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -135040,7 +136122,7 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i initBusy = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) (*(*TParse)(unsafe.Pointer(bp))).FnQueryLoop = int16(1) - if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) && (*(*TParse)(unsafe.Pointer(bp))).FpNewTable != uintptr(0) && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && int32((*TTable)(unsafe.Pointer((*(*TParse)(unsafe.Pointer(bp))).FpNewTable)).FeTabType) == TABTYP_NORM { + if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) { if !((*TTable)(unsafe.Pointer(pTab)).FaCol != 0) { pNew = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable (*TTable)(unsafe.Pointer(pTab)).FaCol = (*TTable)(unsafe.Pointer(pNew)).FaCol @@ -135049,9 +136131,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpDfltList) - v1 = (*TTable)(unsafe.Pointer(pNew)).FnCol - (*TTable)(unsafe.Pointer(pTab)).FnCol = v1 - (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v1 + v2 = (*TTable)(unsafe.Pointer(pNew)).FnCol + (*TTable)(unsafe.Pointer(pTab)).FnCol = v2 + (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v2 *(*Tu32)(unsafe.Pointer(pTab + 48)) |= (*TTable)(unsafe.Pointer(pNew)).FtabFlags & uint32(libc.Int32FromInt32(TF_WithoutRowid)|libc.Int32FromInt32(TF_NoVisibleRowid)) (*TTable)(unsafe.Pointer(pNew)).FnCol = 0 (*TTable)(unsafe.Pointer(pNew)).FaCol = uintptr(0) @@ -135070,11 +136152,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared = int32(1) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - v2 = __ccgo_ts + 3799 + v3 = __ccgo_ts + 3863 } else { - v2 = uintptr(0) + v3 = uintptr(0) } - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v2, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v3, libc.VaList(bp+440, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) rc = int32(SQLITE_ERROR) } @@ -135090,6 +136172,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i return rc } +var _aKeyword1 = [3]Tu8{ + 0: uint8(TK_CREATE), + 1: uint8(TK_TABLE), +} + // C documentation // // /* @@ -135541,7 +136628,7 @@ func _sqlite3VtabEponymousTableInit(tls *libc.TLS, pParse uintptr, pMod uintptr) _addModuleArgument(tls, pParse, pTab, _sqlite3DbStrDup(tls, db, (*TTable)(unsafe.Pointer(pTab)).FzName)) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer(pModule)).FxConnect, bp) if rc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3799, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3863, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3VtabEponymousTableClear(tls, db, pMod) } @@ -135605,7 +136692,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) p = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(p != 0) { - rc = _sqlite3MisuseError(tls, int32(155651)) + rc = _sqlite3MisuseError(tls, int32(156723)) } else { ap = va switch op { @@ -135618,7 +136705,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in case int32(SQLITE_VTAB_USES_ALL_SCHEMAS): (*TVTable)(unsafe.Pointer((*TVtabCtx)(unsafe.Pointer(p)).FpVTable)).FbAllSchemas = uint8(1) default: - rc = _sqlite3MisuseError(tls, int32(155673)) + rc = _sqlite3MisuseError(tls, int32(156745)) break } _ = ap @@ -136340,10 +137427,10 @@ type WhereInfo1 = TWhereInfo1 func _explainIndexColumnName(tls *libc.TLS, pIdx uintptr, i int32) (r uintptr) { i = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) if i == -int32(2) { - return __ccgo_ts + 22401 + return __ccgo_ts + 22546 } if i == -int32(1) { - return __ccgo_ts + 17045 + return __ccgo_ts + 17132 } return (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(i)*16))).FzCnName } @@ -136362,10 +137449,10 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, var i int32 _ = i if bAnd != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22408, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22553, int32(5)) } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22414, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22559, int32(1)) } i = 0 for { @@ -136373,7 +137460,7 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13438, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13563, int32(1)) } Xsqlite3_str_appendall(tls, pStr, _explainIndexColumnName(tls, pIdx, iTerm+i)) goto _1 @@ -136382,11 +137469,11 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5454, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5518, int32(1)) } Xsqlite3_str_append(tls, pStr, zOp, int32(1)) if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22414, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22559, int32(1)) } i = 0 for { @@ -136394,16 +137481,16 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13438, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13563, int32(1)) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5456, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5520, int32(1)) goto _2 _2: ; i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5454, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5518, int32(1)) } } @@ -136436,7 +137523,7 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { if int32(nEq) == 0 && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) == uint32(0) { return } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22416, int32(2)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22561, int32(2)) i = 0 for { if !(i < int32(nEq)) { @@ -136444,12 +137531,12 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } z = _explainIndexColumnName(tls, pIndex, i) if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22408, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22553, int32(5)) } if i >= int32(nSkip) { - v2 = __ccgo_ts + 22419 + v2 = __ccgo_ts + 22564 } else { - v2 = __ccgo_ts + 22424 + v2 = __ccgo_ts + 22569 } Xsqlite3_str_appendf(tls, pStr, v2, libc.VaList(bp+8, z)) goto _1 @@ -136459,13 +137546,13 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } j = i if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_BTM_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22432) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22577) i = int32(1) } if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_TOP_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22434) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22579) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5454, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5518, int32(1)) } // C documentation @@ -136508,47 +137595,47 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if isSearch != 0 { - v2 = __ccgo_ts + 22436 + v2 = __ccgo_ts + 22581 } else { - v2 = __ccgo_ts + 22443 + v2 = __ccgo_ts + 22588 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22448, libc.VaList(bp+144, v2, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22593, libc.VaList(bp+144, v2, pItem)) if flags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_VIRTUALTABLE)) == uint32(0) { zFmt = uintptr(0) pIdx = (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex if !((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) && int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { if isSearch != 0 { - zFmt = __ccgo_ts + 11601 + zFmt = __ccgo_ts + 11726 } } else { if flags&uint32(WHERE_PARTIALIDX) != 0 { - zFmt = __ccgo_ts + 22454 + zFmt = __ccgo_ts + 22599 } else { if flags&uint32(WHERE_AUTO_INDEX) != 0 { - zFmt = __ccgo_ts + 22487 + zFmt = __ccgo_ts + 22632 } else { if flags&uint32(WHERE_IDX_ONLY) != 0 { - zFmt = __ccgo_ts + 22512 + zFmt = __ccgo_ts + 22657 } else { - zFmt = __ccgo_ts + 22530 + zFmt = __ccgo_ts + 22675 } } } } if zFmt != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22539, int32(7)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22684, int32(7)) Xsqlite3_str_appendf(tls, bp, zFmt, libc.VaList(bp+144, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) _explainIndexRange(tls, bp, pLoop) } } else { if flags&uint32(WHERE_IPK) != uint32(0) && flags&uint32(WHERE_CONSTRAINT) != uint32(0) { - zRowid = __ccgo_ts + 17045 - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22547, libc.VaList(bp+144, zRowid)) + zRowid = __ccgo_ts + 17132 + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22692, libc.VaList(bp+144, zRowid)) if flags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != 0 { cRangeOp = int8('=') } else { if flags&uint32(WHERE_BOTH_LIMIT) == uint32(WHERE_BOTH_LIMIT) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22578, libc.VaList(bp+144, zRowid)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22723, libc.VaList(bp+144, zRowid)) cRangeOp = int8('<') } else { if flags&uint32(WHERE_BTM_LIMIT) != 0 { @@ -136558,10 +137645,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22588, libc.VaList(bp+144, int32(cRangeOp))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22733, libc.VaList(bp+144, int32(cRangeOp))) } else { if flags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22593, libc.VaList(bp+144, (*(*struct { + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22738, libc.VaList(bp+144, (*(*struct { FidxNum int32 F__ccgo4 uint8 FisOrdered Ti8 @@ -136580,7 +137667,7 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } if int32((*TSrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&int32(JT_LEFT) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22620, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22765, 0) } zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) @@ -136614,14 +137701,14 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Initial space for EQP output string */ _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22631, libc.VaList(bp+144, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22776, libc.VaList(bp+144, pItem)) pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_IPK) != 0 { pTab = (*TSrcItem)(unsafe.Pointer(pItem)).FpTab if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22419, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22564, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) } else { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22652, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22797, 0) } } else { i = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) @@ -136631,16 +137718,16 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp } z = _explainIndexColumnName(tls, (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex, i) if i > int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22408, int32(5)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22553, int32(5)) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22419, libc.VaList(bp+144, z)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22564, libc.VaList(bp+144, z)) goto _1 _1: ; i++ } } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5454, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5518, int32(1)) zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) return ret @@ -137471,6 +138558,35 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 } } +// C documentation +// +// /* +// ** Loop pLoop is a WHERE_INDEXED level that uses at least one IN(...) +// ** operator. Return true if level pLoop is guaranteed to visit only one +// ** row for each key generated for the index. +// */ +func _whereLoopIsOneRow(tls *libc.TLS, pLoop uintptr) (r int32) { + var ii int32 + _ = ii + if (*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FonError != 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) == 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq) == int32((*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FnKeyCol) { + ii = 0 + for { + if !(ii < int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq)) { + break + } + if int32((*TWhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(ii)*8)))).FeOperator)&(libc.Int32FromInt32(WO_IS)|libc.Int32FromInt32(WO_ISNULL)) != 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) + } + return 0 +} + // C documentation // // /* @@ -138159,7 +139275,10 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** a LEFT JOIN: */ } /* Record the instruction used to terminate the loop. */ - if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 { + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 || (*(*struct { + FnIn int32 + FaInLoop uintptr + })(unsafe.Pointer(pLevel + 72))).FnIn != 0 && regBignull == 0 && _whereLoopIsOneRow(tls, pLoop) != 0 { (*TWhereLevel)(unsafe.Pointer(pLevel)).Fop = uint8(OP_Noop) } else { if bRev != 0 { @@ -138332,7 +139451,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** eliminating duplicates from other WHERE clauses, the action for each ** sub-WHERE clause is to to invoke the main loop body as a subroutine. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22660, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22805, 0) ii = 0 for { if !(ii < (*TWhereClause)(unsafe.Pointer(pOrWc)).FnTerm) { @@ -138355,7 +139474,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI pOrExpr = pAndExpr } /* Loop through table entries that match term pOrTerm. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22675, libc.VaList(bp+96, ii+int32(1))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22820, libc.VaList(bp+96, ii+int32(1))) pSubWInfo = _sqlite3WhereBegin(tls, pParse, pOrTab, pOrExpr, uintptr(0), uintptr(0), uintptr(0), uint16(WHERE_OR_SUBCLAUSE), iCovCur) if pSubWInfo != 0 { addrExplain = _sqlite3WhereExplainOneScan(tls, pParse, pOrTab, pSubWInfo+856, uint16(0)) @@ -138518,6 +139637,12 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** iLoop==3: Code all remaining expressions. ** ** An effort is made to skip unnecessary iterations of the loop. + ** + ** This optimization of causing simple query restrictions to occur before + ** more complex one is call the "push-down" optimization in MySQL. Here + ** in SQLite, the name is "MySQL push-down", since there is also another + ** totally unrelated optimization called "WHERE-clause push-down". + ** Sometimes the qualifier is omitted, resulting in an ambiguity, so beware. */ if pIdx != 0 { v60 = int32(1) @@ -138714,6 +139839,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** to the results of the OUTER JOIN. The following loop generates the ** appropriate WHERE clause constraint checks. tag-20220513a. */ + goto code_outer_join_constraints code_outer_join_constraints: ; pTerm = (*TWhereClause)(unsafe.Pointer(pWC)).Fa @@ -138816,9 +139942,9 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe defer tls.Free(128) var addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, nPk, r, v3 int32 var mAll TBitmask - var pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr + var pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr var _ /* sFrom at bp+0 */ TSrcList - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pRJ = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpRJ @@ -138827,13 +139953,17 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop pTabItem = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 mAll = uint64(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22684, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22829, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) k = 0 for { if !(k < iLevel) { break } + pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*104 mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x20>>5)) != 0 { + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pRight)).FpSelect)).FpEList)).FnExpr-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiTabCur) iIdxCur = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiIdxCur if iIdxCur != 0 { @@ -139331,19 +140461,19 @@ var _aOp = [4]struct { FeOp2 uint8 }{ 0: { - FzOp: __ccgo_ts + 16894, + FzOp: __ccgo_ts + 16981, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_MATCH), }, 1: { - FzOp: __ccgo_ts + 16222, + FzOp: __ccgo_ts + 16315, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_GLOB), }, 2: { - FzOp: __ccgo_ts + 15701, + FzOp: __ccgo_ts + 15794, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_LIKE), }, 3: { - FzOp: __ccgo_ts + 22698, + FzOp: __ccgo_ts + 22843, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_REGEXP), }, } @@ -139977,7 +141107,7 @@ func _exprMightBeIndexed2(tls *libc.TLS, pFrom uintptr, aiCurCol uintptr, pExpr if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) != -int32(2) { goto _4 } - if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_STRING) { + if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && !(_sqlite3ExprIsConstant(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr) != 0) { *(*int32)(unsafe.Pointer(aiCurCol)) = iCur *(*int32)(unsafe.Pointer(aiCurCol + 1*4)) = -int32(2) return int32(1) @@ -140130,7 +141260,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { extraRight = x - uint64(1) /* ON clause terms may not be used with an index ** on left table of a LEFT JOIN. Ticket #3015 */ if prereqAll>>libc.Int32FromInt32(1) >= x { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22705, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22850, 0) return } } else { @@ -140142,7 +141272,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { ** if there is a RIGHT or FULL JOIN in the query. This makes SQLite ** more like other systems, and also preserves legacy. */ if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc > 0 && int32((*(*TSrcItem)(unsafe.Pointer(pSrc + 8))).Ffg.Fjointype)&int32(JT_LTORJ) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22705, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22850, 0) return } *(*Tu32)(unsafe.Pointer(pExpr + 4)) &= uint32(^libc.Int32FromInt32(EP_InnerON)) @@ -140226,7 +141356,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { } else { if op == int32(TK_ISNULL) && !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != libc.Uint32FromInt32(0)) && 0 == _sqlite3ExprCanBeNull(tls, pLeft) { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_TRUEFALSE) /* See tag-20230504-1 */ - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 8239 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 8364 *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_IsFalse)) (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqAll = uint64(0) (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator = uint16(0) @@ -140322,7 +141452,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { *(*Tu8)(unsafe.Pointer(pC)) = uint8(int32(c1) + int32(1)) } if *(*int32)(unsafe.Pointer(bp + 12)) != 0 { - v13 = __ccgo_ts + 22746 + v13 = __ccgo_ts + 22891 } else { v13 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } @@ -140592,6 +141722,9 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FleftCursor != iCsr { return } + if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FprereqRight != uint64(0) { + return + } goto _1 _1: ; @@ -140621,10 +141754,12 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { } } /* All conditions are met. Add the terms to the where-clause object. */ - _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) - if (*TSelect)(unsafe.Pointer(p)).FiOffset > 0 { + if (*TSelect)(unsafe.Pointer(p)).FiOffset != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiOffset, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpRight, iCsr, int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } + if (*TSelect)(unsafe.Pointer(p)).FiOffset == 0 || (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { + _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) + } } } @@ -140848,7 +141983,7 @@ func _sqlite3WhereTabFuncArgs(tls *libc.TLS, pParse uintptr, pItem uintptr, pWC k++ } if k >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22753, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22898, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) return } pColRef = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_COLUMN), uintptr(0), 0) @@ -141180,6 +142315,7 @@ func _whereOrInsert(tls *libc.TLS, pSet uintptr, prereq TBitmask, rRun TLogEst, return 0 } } + goto whereOrInsert_done whereOrInsert_done: ; (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq = prereq @@ -141281,6 +142417,48 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { return uintptr(0) } +// C documentation +// +// /* +// ** Term pTerm is guaranteed to be a WO_IN term. It may be a component term +// ** of a vector IN expression of the form "(x, y, ...) IN (SELECT ...)". +// ** This function checks to see if the term is compatible with an index +// ** column with affinity idxaff (one of the SQLITE_AFF_XYZ values). If so, +// ** it returns a pointer to the name of the collation sequence (e.g. "BINARY" +// ** or "NOCASE") used by the comparison in pTerm. If it is not compatible +// ** with affinity idxaff, NULL is returned. +// */ +func _indexInAffinityOk(tls *libc.TLS, pParse uintptr, pTerm uintptr, idxaff Tu8) (r uintptr) { + bp := tls.Alloc(80) + defer tls.Free(80) + var iField int32 + var pRet, pX, v1 uintptr + var _ /* inexpr at bp+0 */ TExpr + _, _, _, _ = iField, pRet, pX, v1 + pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr + if _sqlite3ExprIsVector(tls, (*TExpr)(unsafe.Pointer(pX)).FpLeft) != 0 { + iField = (*(*struct { + FleftColumn int32 + FiField int32 + })(unsafe.Pointer(pTerm + 32))).FiField - int32(1) + (*(*TExpr)(unsafe.Pointer(bp))).Fflags = uint32(0) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_EQ) + (*(*TExpr)(unsafe.Pointer(bp))).FpLeft = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pX)).FpLeft + 32)) + 8 + uintptr(iField)*32))).FpExpr + (*(*TExpr)(unsafe.Pointer(bp))).FpRight = (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pX + 32)))).FpEList + 8 + uintptr(iField)*32))).FpExpr + pX = bp + } + if _sqlite3IndexAffinityOk(tls, pX, int8(idxaff)) != 0 { + pRet = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pRet != 0 { + v1 = (*TCollSeq)(unsafe.Pointer(pRet)).FzName + } else { + v1 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + return v1 + } + return uintptr(0) +} + // C documentation // // /* @@ -141291,10 +142469,10 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { var iColumn Ti16 var iCur, j, k int32 - var pColl, pParse, pTerm, pWC, pX, v2 uintptr - var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, v2, v3, v5 /* The term being tested */ - k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ + var pColl, pParse, pTerm, pWC, pX, zCollName, v2, v5 uintptr + var v3, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, zCollName, v2, v3, v5, v6 /* The term being tested */ + k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ pWC = (*TWhereScan)(unsafe.Pointer(pScan)).FpWC for int32(1) != 0 { iColumn = *(*Ti16)(unsafe.Pointer(pScan + 88 + uintptr(int32((*TWhereScan)(unsafe.Pointer(pScan)).FiEquiv)-int32(1))*2)) @@ -141338,21 +142516,31 @@ func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { if (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName != 0 && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_ISNULL) == 0 { pParse = (*TWhereInfo)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr - if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { - goto _1 - } - pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) - if pColl == uintptr(0) { - pColl = (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FpDfltColl + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_IN) != 0 { + zCollName = _indexInAffinityOk(tls, pParse, pTerm, uint8((*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff)) + if !(zCollName != 0) { + goto _1 + } + } else { + if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { + goto _1 + } + pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pColl != 0 { + v5 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName + } else { + v5 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + zCollName = v5 } - if _sqlite3StrICmp(tls, (*TCollSeq)(unsafe.Pointer(pColl)).FzName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { + if _sqlite3StrICmp(tls, zCollName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { goto _1 } } - if v5 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v5 { + if v6 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v6 { pX = (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight } - if v5 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { + if v6 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { goto _1 } (*TWhereScan)(unsafe.Pointer(pScan)).FpWC = pWC @@ -141840,7 +143028,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea /* Make the automatic index a partial index if there are terms in the ** WHERE clause (or the ON clause of a LEFT join) that constrain which ** rows of the target table (pSrc) that can be used. */ - if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)) != 0 { + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom), 0) != 0 { pPartial = _sqlite3ExprAnd(tls, pParse, pPartial, _sqlite3ExprDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr, 0)) } if _termCanDriveIndex(tls, pTerm, pSrc, notReady) != 0 { @@ -141855,7 +143043,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea } cMask = v2 if !(sentWarning != 0) { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_WARNING)|libc.Int32FromInt32(1)<>14)) != 0) { eDistinct = int32(2) + libc.BoolInt32(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_SORTBYGROUP) != 0) } else { if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_GROUPBY) != 0 { @@ -142325,7 +143514,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB */ pIdxInfo = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(96)+(libc.Uint64FromInt64(12)+libc.Uint64FromInt64(8))*uint64(nTerm)+uint64(8)*uint64(nOrderBy)+uint64(40)+uint64(8)*uint64(nTerm)) if pIdxInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1634, 0) return uintptr(0) } pHidden = pIdxInfo + 1*96 @@ -142410,7 +143599,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB break } pExpr1 = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr - if _sqlite3ExprIsConstant(tls, pExpr1) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr1) != 0 { goto _11 } (*(*Tsqlite3_index_orderby)(unsafe.Pointer(pIdxOrderBy + uintptr(j)*8))).FiColumn = int32((*TExpr)(unsafe.Pointer(pExpr1)).FiColumn) @@ -142485,9 +143674,9 @@ func _vtabBestIndex(tls *libc.TLS, pParse uintptr, pTab uintptr, p uintptr) (r i _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) } else { if !((*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3799, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3863, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3799, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3863, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) } } } @@ -143824,7 +145013,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x4>>2)) != 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) } - if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 && int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x2>>1)) == 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ) | libc.Int32FromInt32(WO_IN) | libc.Int32FromInt32(WO_IS)) } } @@ -144063,10 +145252,13 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } } } - /* Set rCostIdx to the cost of visiting selected rows in index. Add - ** it to pNew->rRun, which is currently set to the cost of the index - ** seek only. Then, if this is a non-covering index, add the cost of - ** visiting the rows in the main table. */ + /* Set rCostIdx to the estimated cost of visiting selected rows in the + ** index. The estimate is the sum of two values: + ** 1. The cost of doing one search-by-key to find the first matching + ** entry + ** 2. Stepping forward in the index pNew->nOut times to find all + ** additional matching entries. + */ if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_IPK) { /* The pProbe->szIdxRow is low for an IPK table since the interior ** pages are small. Thus szIdxRow gives a good estimate of seek cost. @@ -144076,7 +145268,14 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } else { rCostIdx = int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut) + int32(1) + int32(15)*int32((*TIndex)(unsafe.Pointer(pProbe)).FszIdxRow)/int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FszTabRow)) } - (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + rCostIdx = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + /* Estimate the cost of running the loop. If all data is coming + ** from the index, then this is just the cost of doing the index + ** lookup and scan. But if some data is coming out of the main table, + ** we also have to add in the cost of doing pNew->nOut searches to + ** locate the row in the main table that corresponds to the index entry. + */ + (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = rCostIdx if (*TWhereLoop)(unsafe.Pointer(pNew)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IDX_ONLY)|libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_EXPRIDX)) == uint32(0) { (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun, int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut)+int32(16))) } @@ -144181,7 +145380,7 @@ func _indexMightHelpWithOrderBy(tls *libc.TLS, pBuilder uintptr, pIndex uintptr, if pExpr == uintptr(0) { goto _2 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { + if (int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) || int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_COLUMN)) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) < 0 { return int32(1) } @@ -144516,7 +145715,7 @@ func _wherePartIdxExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, pPart uintpt if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) != int32(TK_COLUMN) { return } - if !(_sqlite3ExprIsConstant(tls, pRight) != 0) { + if !(_sqlite3ExprIsConstant(tls, uintptr(0), pRight) != 0) { return } if !(_sqlite3IsBinary(tls, _sqlite3ExprCompareCollSeq(tls, pParse, pPart)) != 0) { @@ -144845,7 +146044,7 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in ** unique index is used (making the index functionally non-unique) ** then the sqlite_stat1 data becomes important for scoring the ** plan */ - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) } _sqlite3Stat4ProbeFree(tls, (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec) (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = 0 @@ -144873,6 +146072,31 @@ func _isLimitTerm(tls *libc.TLS, pTerm uintptr) (r int32) { return libc.BoolInt32(int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) >= int32(SQLITE_INDEX_CONSTRAINT_LIMIT) && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) <= int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } +// C documentation +// +// /* +// ** Return true if the first nCons constraints in the pUsage array are +// ** marked as in-use (have argvIndex>0). False otherwise. +// */ +func _allConstraintsUsed(tls *libc.TLS, aUsage uintptr, nCons int32) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < nCons) { + break + } + if (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer(aUsage + uintptr(ii)*8))).FargvIndex <= 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + // C documentation // // /* @@ -144967,7 +146191,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if v3 >= 0 { j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).FiTermOffset if iTerm >= nConstraint || j < 0 || j >= (*TWhereClause)(unsafe.Pointer(pWC)).FnTerm || *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(iTerm)*8)) != uintptr(0) || int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22826, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22971, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } pTerm1 = (*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(j)*56 @@ -145012,12 +146236,16 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, *(*int32)(unsafe.Pointer(pbIn)) = int32(1) } } - if _isLimitTerm(tls, pTerm1) != 0 && *(*int32)(unsafe.Pointer(pbIn)) != 0 { + /* Unless pbRetryLimit is non-NULL, there should be no LIMIT/OFFSET + ** terms. And if there are any, they should follow all other terms. */ + if _isLimitTerm(tls, pTerm1) != 0 && (*(*int32)(unsafe.Pointer(pbIn)) != 0 || !(_allConstraintsUsed(tls, pUsage, i) != 0)) { /* If there is an IN(...) term handled as an == (separate call to ** xFilter for each value on the RHS of the IN) and a LIMIT or - ** OFFSET term handled as well, the plan is unusable. Set output - ** variable *pbRetryLimit to true to tell the caller to retry with - ** LIMIT and OFFSET disabled. */ + ** OFFSET term handled as well, the plan is unusable. Similarly, + ** if there is a LIMIT/OFFSET and there are other unused terms, + ** the plan cannot be used. In these cases set variable *pbRetryLimit + ** to true to tell the caller to retry with LIMIT and OFFSET + ** disabled. */ if (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FneedToFreeIdxStr != 0 { Xsqlite3_free(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = uintptr(0) @@ -145042,7 +146270,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(i)*8)) == uintptr(0) { /* The non-zero argvIdx values must be contiguous. Raise an ** error if they are not */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22826, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22971, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } goto _6 @@ -145194,7 +146422,7 @@ func Xsqlite3_vtab_rhs_value(tls *libc.TLS, pIdxInfo uintptr, iCons int32, ppVal pVal = uintptr(0) rc = SQLITE_OK if iCons < 0 || iCons >= (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint { - rc = _sqlite3MisuseError(tls, int32(165251)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(166453)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = (*TWhereClause)(unsafe.Pointer((*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC)).Fa + uintptr((*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset)*56 @@ -145632,7 +146860,7 @@ func _whereLoopAddAll(tls *libc.TLS, pBuilder uintptr) (r int32) { if rc != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { if rc == int32(SQLITE_DONE) { /* We hit the query planner search limit set by iPlanLimit */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22852, 0) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22997, 0) rc = SQLITE_OK } else { break @@ -146014,7 +147242,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, } p = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr mTerm = _sqlite3WhereExprUsage(tls, pWInfo+592, p) - if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, p) != 0) { + if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, uintptr(0), p) != 0) { goto _9 } if mTerm & ^orderDistinctMask == uint64(0) { @@ -146424,7 +147652,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) iLoop++ } if nFrom == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22887, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23032, 0) _sqlite3DbFreeNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pSpace) return int32(SQLITE_ERROR) } @@ -146473,9 +147701,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) if int32((*TWherePath)(unsafe.Pointer(pFrom)).FisOrdered) == (*TExprList)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_ORDERED) } - if (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy != 0 && int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) > (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr { - (*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = int8((*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr) - } + /* vvv--- See check-in [12ad822d9b827777] on 2023-03-16 ---vvv */ } else { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FrevMask = (*TWherePath)(unsafe.Pointer(pFrom)).FrevLoop if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) <= 0 { @@ -146512,6 +147738,97 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) return SQLITE_OK } +// C documentation +// +// /* +// ** This routine implements a heuristic designed to improve query planning. +// ** This routine is called in between the first and second call to +// ** wherePathSolver(). Hence the name "Interstage" "Heuristic". +// ** +// ** The first call to wherePathSolver() (hereafter just "solver()") computes +// ** the best path without regard to the order of the outputs. The second call +// ** to the solver() builds upon the first call to try to find an alternative +// ** path that satisfies the ORDER BY clause. +// ** +// ** This routine looks at the results of the first solver() run, and for +// ** every FROM clause term in the resulting query plan that uses an equality +// ** constraint against an index, disable other WhereLoops for that same +// ** FROM clause term that would try to do a full-table scan. This prevents +// ** an index search from being converted into a full-table scan in order to +// ** satisfy an ORDER BY clause, since even though we might get slightly better +// ** performance using the full-scan without sorting if the output size +// ** estimates are very precise, we might also get severe performance +// ** degradation using the full-scan if the output size estimate is too large. +// ** It is better to err on the side of caution. +// ** +// ** Except, if the first solver() call generated a full-table scan in an outer +// ** loop then stop this analysis at the first full-scan, since the second +// ** solver() run might try to swap that full-scan for another in order to +// ** get the output into the correct order. In other words, we allow a +// ** rewrite like this: +// ** +// ** First Solver() Second Solver() +// ** |-- SCAN t1 |-- SCAN t2 +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** The purpose of this routine is to disallow rewrites such as: +// ** +// ** First Solver() Second Solver() +// ** |-- SEARCH t1 |-- SCAN t2 <--- bad! +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** See test cases in test/whereN.test for the real-world query that +// ** originally provoked this heuristic. +// */ +func _whereInterstageHeuristic(tls *libc.TLS, pWInfo uintptr) { + var i int32 + var iTab Tu8 + var p, pLoop uintptr + _, _, _, _ = i, iTab, p, pLoop + i = 0 + for { + if !(i < int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)) { + break + } + p = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(i)*104))).FpWLoop + if p == uintptr(0) { + break + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { + goto _1 + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_NULL)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != uint32(0) { + iTab = (*TWhereLoop)(unsafe.Pointer(p)).FiTab + pLoop = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpLoops + for { + if !(pLoop != 0) { + break + } + if int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab) != int32(iTab) { + goto _2 + } + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_CONSTRAINT)|libc.Int32FromInt32(WHERE_AUTO_INDEX)) != uint32(0) { + /* Auto-index and index-constrained loops allowed to remain */ + goto _2 + } + (*TWhereLoop)(unsafe.Pointer(pLoop)).Fprereq = uint64(-libc.Int32FromInt32(1)) /* Prevent 2nd solver() from using this one */ + goto _2 + _2: + ; + pLoop = (*TWhereLoop)(unsafe.Pointer(pLoop)).FpNextLoop + } + } else { + break + } + goto _1 + _1: + ; + i++ + } +} + // C documentation // // /* @@ -146820,7 +148137,7 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasStat1) == uint32(0) { break } - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) if i >= int32(1) && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&reqFlags == reqFlags && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_INDEXED)) != uint32(0) { if int32(nSearch) > int32((*TTable)(unsafe.Pointer(pTab)).FnRowLogEst) { *(*Tu32)(unsafe.Pointer(pLoop + 48)) |= uint32(WHERE_BLOOMFILTER) @@ -146835,6 +148152,68 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { } } +// C documentation +// +// /* +// ** Expression Node callback for sqlite3ExprCanReturnSubtype(). +// ** +// ** Only a function call is able to return a subtype. So if the node +// ** is not a function call, return WRC_Prune immediately. +// ** +// ** A function call is able to return a subtype if it has the +// ** SQLITE_RESULT_SUBTYPE property. +// ** +// ** Assume that every function is able to pass-through a subtype from +// ** one of its argument (using sqlite3_result_value()). Most functions +// ** are not this way, but we don't have a mechanism to distinguish those +// ** that are from those that are not, so assume they all work this way. +// ** That means that if one of its arguments is another function and that +// ** other function is able to return a subtype, then this function is +// ** able to return a subtype. +// */ +func _exprNodeCanReturnSubtype(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef uintptr + var n, v1 int32 + _, _, _, _ = db, n, pDef, v1 + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_FUNCTION) { + return int32(WRC_Prune) + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { + v1 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr + } else { + v1 = 0 + } + n = v1 + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + return int32(WRC_Prune) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Return TRUE if expression pExpr is able to return a subtype. +// ** +// ** A TRUE return does not guarantee that a subtype will be returned. +// ** It only indicates that a subtype return is possible. False positives +// ** are acceptable as they only disable an optimization. False negatives, +// ** on the other hand, can lead to incorrect answers. +// */ +func _sqlite3ExprCanReturnSubtype(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.X__builtin___memset_chk(tls, bp, 0, uint64(48), libc.X__builtin_object_size(tls, bp, 0)) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeCanReturnSubtype) + _sqlite3WalkExpr(tls, bp, pExpr) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) +} + // C documentation // // /* @@ -146849,9 +148228,9 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { // ** references to the corresponding column of the index. // */ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur int32, pTabItem uintptr) { - var db, p, pArg, pDef, pExpr, pTab uintptr - var i, j, n, v2 int32 - _, _, _, _, _, _, _, _, _, _ = db, i, j, n, p, pArg, pDef, pExpr, pTab, v2 + var i, j int32 + var p, pArg, pExpr, pTab uintptr + _, _, _, _, _, _ = i, j, p, pArg, pExpr, pTab pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable i = 0 for { @@ -146868,21 +148247,14 @@ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur i goto _1 } } - if _sqlite3ExprIsConstant(tls, pExpr) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) != 0 { goto _1 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) { - db = (*TParse)(unsafe.Pointer(pParse)).Fdb - if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { - v2 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr - } else { - v2 = 0 - } - n = v2 - pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) - if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { - goto _1 - } + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) && _sqlite3ExprCanReturnSubtype(tls, pParse, pExpr) != 0 { + /* Functions that might set a subtype should not be replaced by the + ** value taken from an expression index since the index omits the + ** subtype. https://sqlite.org/forum/forumpost/68d284c86b082c3e */ + goto _1 } p = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(32)) if p == uintptr(0) { @@ -147054,7 +148426,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** bits in a Bitmask */ if (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc > int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22905, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23050, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) return uintptr(0) } /* This function normally generates a nested loop for all tables in @@ -147126,7 +148498,9 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if int32(wctrlFlags)&int32(WHERE_WANT_DISTINCT) != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_DistinctOpt)) == uint32(0) { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_UNIQUE) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22933, 0) + if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FselFlags&uint32(SF_MultiValue) == uint32(0) { + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+23078, 0) + } } else { /* Assign a bit from the bitmask to every term in the FROM clause. ** @@ -147258,6 +148632,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy != 0 { + _whereInterstageHeuristic(tls, pWInfo) _wherePathSolver(tls, pWInfo, int16(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut)+int32(1))) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto whereBeginError @@ -147542,6 +148917,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiEndWhere = _sqlite3VdbeCurrentAddr(tls, v) return pWInfo /* Jump here if malloc fails */ + goto whereBeginError whereBeginError: ; if pWInfo != 0 { @@ -147565,10 +148941,10 @@ whereBeginError: // ** sqlite3WhereBegin() for additional information. // */ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { - var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, r1, ws, x, v4, v7 int32 - var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr + var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, r1, ws, x, v4, v7 int32 + var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pTabList = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList @@ -147709,6 +149085,12 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { ws = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags) addr = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfPos), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin) if ws&int32(WHERE_IDX_ONLY) == 0 { + pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 + if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x20>>5)) != 0 { + n1 = (*TSrcItem)(unsafe.Pointer(pSrc)).FregResult + m = int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FnCol) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, n1, n1+m-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur) } if ws&int32(WHERE_INDEXED) != 0 || ws&int32(WHERE_MULTI_OR) != 0 && *(*uintptr)(unsafe.Pointer(&(*TWhereLevel)(unsafe.Pointer(pLevel)).Fu)) != 0 { @@ -148122,9 +149504,10 @@ func _nth_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) _ = nArg _ = apArg return + goto error_out error_out: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22951, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+23096, -int32(1)) } func _nth_valueFinalizeFunc(tls *libc.TLS, pCtx uintptr) { @@ -148306,7 +149689,7 @@ func _ntileStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { if (*TNtileCtx)(unsafe.Pointer(p)).FnTotal == 0 { (*TNtileCtx)(unsafe.Pointer(p)).FnParam = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apArg))) if (*TNtileCtx)(unsafe.Pointer(p)).FnParam <= 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+23007, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+23152, -int32(1)) } } (*TNtileCtx)(unsafe.Pointer(p)).FnTotal++ @@ -148632,7 +150015,7 @@ func _windowFind(tls *libc.TLS, pParse uintptr, pList uintptr, zName uintptr) (r p = (*TWindow)(unsafe.Pointer(p)).FpNextWin } if p == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23052, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23197, libc.VaList(bp+8, zName)) } return p } @@ -148683,12 +150066,12 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin _sqlite3WindowChain(tls, pParse, pWin, pList) } if int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) == int32(TK_RANGE) && ((*TWindow)(unsafe.Pointer(pWin)).FpStart != 0 || (*TWindow)(unsafe.Pointer(pWin)).FpEnd != 0) && ((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy == uintptr(0) || (*TExprList)(unsafe.Pointer((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy)).FnExpr != int32(1)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23071, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23216, 0) } else { if (*TFuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TWindow)(unsafe.Pointer(pWin)).FpFilter != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23142, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23287, 0) } else { aUp = [8]struct { FzFunc uintptr @@ -148761,7 +150144,7 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin (*TWindow)(unsafe.Pointer(pWin)).FeEnd = uint8(aUp[i].FeEnd) (*TWindow)(unsafe.Pointer(pWin)).FeExclude = uint8(0) if int32((*TWindow)(unsafe.Pointer(pWin)).FeStart) == int32(TK_FOLLOWING) { - (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8478) + (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8603) } break } @@ -149043,7 +150426,7 @@ func _disallowAggregatesInOrderByCb(tls *libc.TLS, pWalker uintptr, pExpr uintpt bp := tls.Alloc(16) defer tls.Free(16) if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_FUNCTION) && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+23205, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) + _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+23350, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) } return WRC_Continue } @@ -149184,7 +150567,7 @@ func _sqlite3WindowRewrite(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { ** keep everything legal in this case. */ if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1724)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1784)) } pSub = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(bp)), pSrc, pWhere, pGroupBy, pHaving, pSort, uint32(0), uintptr(0)) (*TSelect)(unsafe.Pointer(p)).FpSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), uintptr(0), uintptr(0)) @@ -149288,7 +150671,7 @@ func _sqlite3WindowListDelete(tls *libc.TLS, db uintptr, p uintptr) { // ** variable values in the expression tree. // */ func _sqlite3WindowOffsetExpr(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r uintptr) { - if 0 == _sqlite3ExprIsConstant(tls, pExpr) { + if 0 == _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) { if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameExprUnmap(tls, pParse, pExpr) } @@ -149329,7 +150712,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 ** frame boundary. */ if eStart == int32(TK_CURRENT) && eEnd == int32(TK_PRECEDING) || eStart == int32(TK_FOLLOWING) && (eEnd == int32(TK_PRECEDING) || eEnd == int32(TK_CURRENT)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23231, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23376, 0) goto windowAllocErr } pWin = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) @@ -149347,6 +150730,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 (*TWindow)(unsafe.Pointer(pWin)).FpEnd = _sqlite3WindowOffsetExpr(tls, pParse, pEnd) (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3WindowOffsetExpr(tls, pParse, pStart) return pWin + goto windowAllocErr windowAllocErr: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pEnd) @@ -149396,18 +150780,18 @@ func _sqlite3WindowChain(tls *libc.TLS, pParse uintptr, pWin uintptr, pList uint zErr = uintptr(0) /* Check for errors */ if (*TWindow)(unsafe.Pointer(pWin)).FpPartition != 0 { - zErr = __ccgo_ts + 23263 + zErr = __ccgo_ts + 23408 } else { if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 && (*TWindow)(unsafe.Pointer(pWin)).FpOrderBy != 0 { - zErr = __ccgo_ts + 23280 + zErr = __ccgo_ts + 23425 } else { if int32((*TWindow)(unsafe.Pointer(pExist)).FbImplicitFrame) == 0 { - zErr = __ccgo_ts + 23296 + zErr = __ccgo_ts + 23441 } } } if zErr != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23316, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23461, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) } else { (*TWindow)(unsafe.Pointer(pWin)).FpPartition = _sqlite3ExprListDup(tls, db, (*TWindow)(unsafe.Pointer(pExist)).FpPartition, 0) if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 { @@ -149431,7 +150815,7 @@ func _sqlite3WindowAttach(tls *libc.TLS, pParse uintptr, p uintptr, pWin uintptr *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(libc.Int32FromInt32(EP_WinFunc) | libc.Int32FromInt32(EP_FullSize)) (*TWindow)(unsafe.Pointer(pWin)).FpOwner = p if (*TExpr)(unsafe.Pointer(p)).Fflags&uint32(EP_Distinct) != 0 && int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) != int32(TK_FILTER) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23349, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23494, 0) } } else { _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pWin) @@ -149630,7 +151014,7 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regZero) if eCond >= int32(WINDOW_STARTING_NUM) { regString = _sqlite3GetTempReg(tls, pParse) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1650, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1664, -int32(1)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, _sqlite3VdbeCurrentAddr(tls, v)+int32(2), reg) _sqlite3VdbeChangeP5(tls, v, uint16(libc.Int32FromInt32(SQLITE_AFF_NUMERIC)|libc.Int32FromInt32(SQLITE_JUMPIFNULL))) } else { @@ -149649,11 +151033,11 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { } var _azErr = [5]uintptr{ - 0: __ccgo_ts + 23396, - 1: __ccgo_ts + 23449, - 2: __ccgo_ts + 22951, - 3: __ccgo_ts + 23500, - 4: __ccgo_ts + 23552, + 0: __ccgo_ts + 23541, + 1: __ccgo_ts + 23594, + 2: __ccgo_ts + 23096, + 3: __ccgo_ts + 23645, + 4: __ccgo_ts + 23697, } var _aOp1 = [5]int32{ @@ -150405,7 +151789,7 @@ func _windowCodeRangeTest(tls *libc.TLS, p uintptr, op int32, csr1 int32, regVal ** the add/subtract is skipped for these, as required. If reg1 is a NULL, ** then the arithmetic is performed, but since adding or subtracting from ** NULL is always NULL anyway, this case is handled as required too. */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1650, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1664, -int32(1)) addrGe = _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, 0, reg1) if op == int32(OP_Ge) && arith == int32(OP_Add) || op == int32(OP_Le) && arith == int32(OP_Subtract) { _sqlite3VdbeAddOp3(tls, v, op, reg2, lbl, reg1) @@ -151433,11 +152817,11 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { cnt++ if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != 0 || (*TSelect)(unsafe.Pointer(pLoop)).FpLimit != 0 { if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != uintptr(0) { - v1 = __ccgo_ts + 23602 + v1 = __ccgo_ts + 23747 } else { - v1 = __ccgo_ts + 23611 + v1 = __ccgo_ts + 23756 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23617, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23762, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) break } } @@ -151446,7 +152830,7 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { mxSelect = v2 } if v3 && v2 > 0 && cnt > mxSelect { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23659, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23804, 0) } } } @@ -151466,6 +152850,23 @@ func _attachWithToSelect(tls *libc.TLS, pParse uintptr, pSelect uintptr, pWith u return pSelect } +// C documentation +// +// /* Memory allocator for parser stack resizing. This is a thin wrapper around +// ** sqlite3_realloc() that includes a call to sqlite3FaultSim() to facilitate +// ** testing. +// */ +func _parserStackRealloc(tls *libc.TLS, pOld uintptr, newSize Tsqlite3_uint64) (r uintptr) { + var v1 uintptr + _ = v1 + if _sqlite3FaultSim(tls, int32(700)) != 0 { + v1 = uintptr(0) + } else { + v1 = Xsqlite3_realloc(tls, pOld, int32(newSize)) + } + return v1 +} + // C documentation // // /* Construct a new Expr object from a single token */ @@ -151535,7 +152936,7 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId _ = p p = _sqlite3ExprListAppend(tls, pParse, pPrior, uintptr(0)) if (hasCollate != 0 || sortOrder != -int32(1)) && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23693, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23838, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) } _sqlite3ExprListSetName(tls, pParse, p, pIdToken, int32(1)) return p @@ -151585,6 +152986,9 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser // ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser // ** sqlite3ParserCTX_* As sqlite3ParserARG_ except for %extra_context +// ** YYREALLOC Name of the realloc() function to use +// ** YYFREE Name of the free() function to use +// ** YYDYNSTACK True if stack space should be extended on heap // ** YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** YYNSTATE the combined number of states. @@ -151598,31 +153002,33 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** YY_NO_ACTION The yy_action[] code for no-op // ** YY_MIN_REDUCE Minimum value for reduce actions // ** YY_MAX_REDUCE Maximum value for reduce actions +// ** YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type TYYMINORTYPE = struct { Fyy0 [0]TToken - Fyy33 [0]uintptr - Fyy41 [0]uintptr - Fyy47 [0]uintptr - Fyy131 [0]uintptr - Fyy180 [0]TTrigEvent - Fyy231 [0]struct { + Fyy14 [0]uintptr + Fyy59 [0]uintptr + Fyy67 [0]uintptr + Fyy122 [0]uintptr + Fyy132 [0]uintptr + Fyy144 [0]int32 + Fyy168 [0]uintptr + Fyy203 [0]uintptr + Fyy211 [0]uintptr + Fyy269 [0]TOnOrUsing + Fyy286 [0]TTrigEvent + Fyy383 [0]struct { Fvalue int32 Fmask int32 } - Fyy254 [0]uintptr - Fyy285 [0]Tu32 - Fyy322 [0]uintptr - Fyy385 [0]uintptr - Fyy394 [0]int32 - Fyy444 [0]uintptr - Fyy516 [0]Tu8 - Fyy521 [0]uintptr - Fyy522 [0]uintptr - Fyy528 [0]uintptr - Fyy561 [0]TOnOrUsing - Fyy595 [0]TFrameBound + Fyy391 [0]Tu32 + Fyy427 [0]uintptr + Fyy454 [0]uintptr + Fyy462 [0]Tu8 + Fyy509 [0]TFrameBound + Fyy555 [0]uintptr Fyyinit int32 F__ccgo_pad20 [12]byte } @@ -151640,6 +153046,13 @@ type YYMINORTYPE = TYYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -151692,2152 +153105,2194 @@ type YYMINORTYPE = TYYMINORTYPE // ** yy_default[] Default action for each state. // ** // *********** Begin parsing tables **********************************************/ -var _yy_action = [2100]uint16{ - 0: uint16(572), - 1: uint16(210), - 2: uint16(572), - 3: uint16(119), - 4: uint16(116), - 5: uint16(231), - 6: uint16(572), - 7: uint16(119), - 8: uint16(116), - 9: uint16(231), - 10: uint16(572), - 11: uint16(1317), - 12: uint16(379), - 13: uint16(1296), - 14: uint16(410), - 15: uint16(566), - 16: uint16(566), - 17: uint16(566), - 18: uint16(572), - 19: uint16(411), - 20: uint16(380), - 21: uint16(1317), - 22: uint16(1279), - 23: uint16(42), - 24: uint16(42), - 25: uint16(42), - 26: uint16(42), - 27: uint16(210), - 28: uint16(1529), - 29: uint16(72), - 30: uint16(72), - 31: uint16(974), - 32: uint16(421), - 33: uint16(42), - 34: uint16(42), - 35: uint16(495), - 36: uint16(305), - 37: uint16(281), - 38: uint16(305), - 39: uint16(975), - 40: uint16(399), - 41: uint16(72), - 42: uint16(72), - 43: uint16(126), - 44: uint16(127), - 45: uint16(81), - 46: uint16(1217), - 47: uint16(1217), - 48: uint16(1054), - 49: uint16(1057), - 50: uint16(1044), - 51: uint16(1044), - 52: uint16(124), - 53: uint16(124), - 54: uint16(125), - 55: uint16(125), - 56: uint16(125), - 57: uint16(125), - 58: uint16(480), - 59: uint16(411), - 60: uint16(1244), - 61: uint16(1), - 62: uint16(1), - 63: uint16(578), - 64: uint16(2), - 65: uint16(1248), - 66: uint16(554), - 67: uint16(119), - 68: uint16(116), - 69: uint16(231), - 70: uint16(319), - 71: uint16(484), - 72: uint16(147), - 73: uint16(484), - 74: uint16(528), - 75: uint16(119), - 76: uint16(116), - 77: uint16(231), - 78: uint16(533), - 79: uint16(1330), - 80: uint16(419), - 81: uint16(527), - 82: uint16(143), - 83: uint16(126), - 84: uint16(127), - 85: uint16(81), - 86: uint16(1217), - 87: uint16(1217), - 88: uint16(1054), - 89: uint16(1057), - 90: uint16(1044), - 91: uint16(1044), - 92: uint16(124), - 93: uint16(124), - 94: uint16(125), - 95: uint16(125), - 96: uint16(125), - 97: uint16(125), - 98: uint16(119), - 99: uint16(116), - 100: uint16(231), - 101: uint16(329), - 102: uint16(123), - 103: uint16(123), - 104: uint16(123), - 105: uint16(123), - 106: uint16(122), - 107: uint16(122), - 108: uint16(121), - 109: uint16(121), - 110: uint16(121), - 111: uint16(120), - 112: uint16(117), - 113: uint16(448), - 114: uint16(286), - 115: uint16(286), - 116: uint16(286), - 117: uint16(286), - 118: uint16(446), - 119: uint16(446), - 120: uint16(446), - 121: uint16(1568), - 122: uint16(378), - 123: uint16(1570), - 124: uint16(1193), - 125: uint16(377), - 126: uint16(1164), - 127: uint16(569), - 128: uint16(1164), - 129: uint16(569), - 130: uint16(411), - 131: uint16(1568), - 132: uint16(541), - 133: uint16(261), - 134: uint16(228), - 135: uint16(448), - 136: uint16(102), - 137: uint16(146), - 138: uint16(453), - 139: uint16(318), - 140: uint16(563), - 141: uint16(242), - 142: uint16(123), - 143: uint16(123), - 144: uint16(123), - 145: uint16(123), - 146: uint16(122), - 147: uint16(122), - 148: uint16(121), - 149: uint16(121), - 150: uint16(121), - 151: uint16(120), - 152: uint16(117), - 153: uint16(448), - 154: uint16(126), - 155: uint16(127), - 156: uint16(81), - 157: uint16(1217), - 158: uint16(1217), - 159: uint16(1054), - 160: uint16(1057), - 161: uint16(1044), - 162: uint16(1044), - 163: uint16(124), - 164: uint16(124), - 165: uint16(125), - 166: uint16(125), - 167: uint16(125), - 168: uint16(125), - 169: uint16(143), - 170: uint16(296), - 171: uint16(1193), - 172: uint16(341), - 173: uint16(452), - 174: uint16(121), - 175: uint16(121), - 176: uint16(121), - 177: uint16(120), - 178: uint16(117), - 179: uint16(448), - 180: uint16(128), - 181: uint16(1193), - 182: uint16(1194), - 183: uint16(1193), - 184: uint16(149), - 185: uint16(445), - 186: uint16(444), - 187: uint16(572), - 188: uint16(120), - 189: uint16(117), - 190: uint16(448), - 191: uint16(125), - 192: uint16(125), - 193: uint16(125), - 194: uint16(125), - 195: uint16(118), - 196: uint16(123), - 197: uint16(123), - 198: uint16(123), - 199: uint16(123), - 200: uint16(122), - 201: uint16(122), - 202: uint16(121), - 203: uint16(121), - 204: uint16(121), - 205: uint16(120), - 206: uint16(117), - 207: uint16(448), - 208: uint16(458), - 209: uint16(114), - 210: uint16(13), - 211: uint16(13), - 212: uint16(550), - 213: uint16(123), - 214: uint16(123), - 215: uint16(123), - 216: uint16(123), - 217: uint16(122), - 218: uint16(122), - 219: uint16(121), - 220: uint16(121), - 221: uint16(121), - 222: uint16(120), - 223: uint16(117), - 224: uint16(448), - 225: uint16(424), - 226: uint16(318), - 227: uint16(563), - 228: uint16(1193), - 229: uint16(1194), - 230: uint16(1193), - 231: uint16(150), - 232: uint16(1225), - 233: uint16(411), - 234: uint16(1225), - 235: uint16(125), - 236: uint16(125), - 237: uint16(125), - 238: uint16(125), - 239: uint16(123), - 240: uint16(123), - 241: uint16(123), - 242: uint16(123), - 243: uint16(122), - 244: uint16(122), - 245: uint16(121), - 246: uint16(121), - 247: uint16(121), - 248: uint16(120), - 249: uint16(117), - 250: uint16(448), - 251: uint16(469), - 252: uint16(344), - 253: uint16(1041), - 254: uint16(1041), - 255: uint16(1055), - 256: uint16(1058), - 257: uint16(126), - 258: uint16(127), - 259: uint16(81), - 260: uint16(1217), - 261: uint16(1217), - 262: uint16(1054), - 263: uint16(1057), - 264: uint16(1044), - 265: uint16(1044), - 266: uint16(124), - 267: uint16(124), - 268: uint16(125), - 269: uint16(125), - 270: uint16(125), - 271: uint16(125), - 272: uint16(1282), - 273: uint16(526), - 274: uint16(224), - 275: uint16(1193), - 276: uint16(572), - 277: uint16(411), - 278: uint16(226), - 279: uint16(519), - 280: uint16(177), - 281: uint16(83), - 282: uint16(84), - 283: uint16(123), - 284: uint16(123), - 285: uint16(123), - 286: uint16(123), - 287: uint16(122), - 288: uint16(122), - 289: uint16(121), - 290: uint16(121), - 291: uint16(121), - 292: uint16(120), - 293: uint16(117), - 294: uint16(448), - 295: uint16(1010), - 296: uint16(16), - 297: uint16(16), - 298: uint16(1193), - 299: uint16(134), - 300: uint16(134), - 301: uint16(126), - 302: uint16(127), - 303: uint16(81), - 304: uint16(1217), - 305: uint16(1217), - 306: uint16(1054), - 307: uint16(1057), - 308: uint16(1044), - 309: uint16(1044), - 310: uint16(124), - 311: uint16(124), - 312: uint16(125), - 313: uint16(125), - 314: uint16(125), - 315: uint16(125), - 316: uint16(123), - 317: uint16(123), - 318: uint16(123), - 319: uint16(123), - 320: uint16(122), - 321: uint16(122), - 322: uint16(121), - 323: uint16(121), - 324: uint16(121), - 325: uint16(120), - 326: uint16(117), - 327: uint16(448), - 328: uint16(1045), - 329: uint16(550), - 330: uint16(1193), - 331: uint16(375), - 332: uint16(1193), - 333: uint16(1194), - 334: uint16(1193), - 335: uint16(254), - 336: uint16(1438), - 337: uint16(401), - 338: uint16(508), - 339: uint16(505), - 340: uint16(504), - 341: uint16(112), - 342: uint16(564), - 343: uint16(570), +var _yy_action = [2142]uint16{ + 0: uint16(576), + 1: uint16(128), + 2: uint16(125), + 3: uint16(232), + 4: uint16(1622), + 5: uint16(549), + 6: uint16(576), + 7: uint16(1290), + 8: uint16(1281), + 9: uint16(576), + 10: uint16(328), + 11: uint16(576), + 12: uint16(1300), + 13: uint16(212), + 14: uint16(576), + 15: uint16(128), + 16: uint16(125), + 17: uint16(232), + 18: uint16(578), + 19: uint16(412), + 20: uint16(578), + 21: uint16(391), + 22: uint16(1542), + 23: uint16(51), + 24: uint16(51), + 25: uint16(523), + 26: uint16(405), + 27: uint16(1293), + 28: uint16(529), + 29: uint16(51), + 30: uint16(51), + 31: uint16(983), + 32: uint16(51), + 33: uint16(51), + 34: uint16(81), + 35: uint16(81), + 36: uint16(1107), + 37: uint16(61), + 38: uint16(61), + 39: uint16(984), + 40: uint16(1107), + 41: uint16(1292), + 42: uint16(380), + 43: uint16(135), + 44: uint16(136), + 45: uint16(90), + 46: uint16(1228), + 47: uint16(1228), + 48: uint16(1063), + 49: uint16(1066), + 50: uint16(1053), + 51: uint16(1053), + 52: uint16(133), + 53: uint16(133), + 54: uint16(134), + 55: uint16(134), + 56: uint16(134), + 57: uint16(134), + 58: uint16(1577), + 59: uint16(412), + 60: uint16(287), + 61: uint16(287), + 62: uint16(7), + 63: uint16(287), + 64: uint16(287), + 65: uint16(422), + 66: uint16(1050), + 67: uint16(1050), + 68: uint16(1064), + 69: uint16(1067), + 70: uint16(289), + 71: uint16(556), + 72: uint16(492), + 73: uint16(573), + 74: uint16(524), + 75: uint16(561), + 76: uint16(573), + 77: uint16(497), + 78: uint16(561), + 79: uint16(482), + 80: uint16(530), + 81: uint16(262), + 82: uint16(229), + 83: uint16(135), + 84: uint16(136), + 85: uint16(90), + 86: uint16(1228), + 87: uint16(1228), + 88: uint16(1063), + 89: uint16(1066), + 90: uint16(1053), + 91: uint16(1053), + 92: uint16(133), + 93: uint16(133), + 94: uint16(134), + 95: uint16(134), + 96: uint16(134), + 97: uint16(134), + 98: uint16(128), + 99: uint16(125), + 100: uint16(232), + 101: uint16(1506), + 102: uint16(132), + 103: uint16(132), + 104: uint16(132), + 105: uint16(132), + 106: uint16(131), + 107: uint16(131), + 108: uint16(130), + 109: uint16(130), + 110: uint16(130), + 111: uint16(129), + 112: uint16(126), + 113: uint16(450), + 114: uint16(1204), + 115: uint16(1255), + 116: uint16(1), + 117: uint16(1), + 118: uint16(582), + 119: uint16(2), + 120: uint16(1259), + 121: uint16(1571), + 122: uint16(420), + 123: uint16(1582), + 124: uint16(379), + 125: uint16(320), + 126: uint16(1174), + 127: uint16(153), + 128: uint16(1174), + 129: uint16(1584), + 130: uint16(412), + 131: uint16(378), + 132: uint16(1582), + 133: uint16(543), + 134: uint16(1341), + 135: uint16(330), + 136: uint16(111), + 137: uint16(570), + 138: uint16(570), + 139: uint16(570), + 140: uint16(293), + 141: uint16(1054), + 142: uint16(132), + 143: uint16(132), + 144: uint16(132), + 145: uint16(132), + 146: uint16(131), + 147: uint16(131), + 148: uint16(130), + 149: uint16(130), + 150: uint16(130), + 151: uint16(129), + 152: uint16(126), + 153: uint16(450), + 154: uint16(135), + 155: uint16(136), + 156: uint16(90), + 157: uint16(1228), + 158: uint16(1228), + 159: uint16(1063), + 160: uint16(1066), + 161: uint16(1053), + 162: uint16(1053), + 163: uint16(133), + 164: uint16(133), + 165: uint16(134), + 166: uint16(134), + 167: uint16(134), + 168: uint16(134), + 169: uint16(287), + 170: uint16(287), + 171: uint16(1204), + 172: uint16(1205), + 173: uint16(1204), + 174: uint16(255), + 175: uint16(287), + 176: uint16(287), + 177: uint16(510), + 178: uint16(507), + 179: uint16(506), + 180: uint16(137), + 181: uint16(455), + 182: uint16(573), + 183: uint16(212), + 184: uint16(561), + 185: uint16(447), + 186: uint16(446), + 187: uint16(505), + 188: uint16(573), + 189: uint16(1616), + 190: uint16(561), + 191: uint16(134), + 192: uint16(134), + 193: uint16(134), + 194: uint16(134), + 195: uint16(127), + 196: uint16(400), + 197: uint16(243), + 198: uint16(132), + 199: uint16(132), + 200: uint16(132), + 201: uint16(132), + 202: uint16(131), + 203: uint16(131), + 204: uint16(130), + 205: uint16(130), + 206: uint16(130), + 207: uint16(129), + 208: uint16(126), + 209: uint16(450), + 210: uint16(282), + 211: uint16(471), + 212: uint16(345), + 213: uint16(132), + 214: uint16(132), + 215: uint16(132), + 216: uint16(132), + 217: uint16(131), + 218: uint16(131), + 219: uint16(130), + 220: uint16(130), + 221: uint16(130), + 222: uint16(129), + 223: uint16(126), + 224: uint16(450), + 225: uint16(574), + 226: uint16(155), + 227: uint16(936), + 228: uint16(936), + 229: uint16(454), + 230: uint16(227), + 231: uint16(521), + 232: uint16(1236), + 233: uint16(412), + 234: uint16(1236), + 235: uint16(134), + 236: uint16(134), + 237: uint16(134), + 238: uint16(134), + 239: uint16(132), + 240: uint16(132), + 241: uint16(132), + 242: uint16(132), + 243: uint16(131), + 244: uint16(131), + 245: uint16(130), + 246: uint16(130), + 247: uint16(130), + 248: uint16(129), + 249: uint16(126), + 250: uint16(450), + 251: uint16(130), + 252: uint16(130), + 253: uint16(130), + 254: uint16(129), + 255: uint16(126), + 256: uint16(450), + 257: uint16(135), + 258: uint16(136), + 259: uint16(90), + 260: uint16(1228), + 261: uint16(1228), + 262: uint16(1063), + 263: uint16(1066), + 264: uint16(1053), + 265: uint16(1053), + 266: uint16(133), + 267: uint16(133), + 268: uint16(134), + 269: uint16(134), + 270: uint16(134), + 271: uint16(134), + 272: uint16(128), + 273: uint16(125), + 274: uint16(232), + 275: uint16(450), + 276: uint16(576), + 277: uint16(412), + 278: uint16(397), + 279: uint16(1249), + 280: uint16(180), + 281: uint16(92), + 282: uint16(93), + 283: uint16(132), + 284: uint16(132), + 285: uint16(132), + 286: uint16(132), + 287: uint16(131), + 288: uint16(131), + 289: uint16(130), + 290: uint16(130), + 291: uint16(130), + 292: uint16(129), + 293: uint16(126), + 294: uint16(450), + 295: uint16(381), + 296: uint16(387), + 297: uint16(1204), + 298: uint16(383), + 299: uint16(81), + 300: uint16(81), + 301: uint16(135), + 302: uint16(136), + 303: uint16(90), + 304: uint16(1228), + 305: uint16(1228), + 306: uint16(1063), + 307: uint16(1066), + 308: uint16(1053), + 309: uint16(1053), + 310: uint16(133), + 311: uint16(133), + 312: uint16(134), + 313: uint16(134), + 314: uint16(134), + 315: uint16(134), + 316: uint16(132), + 317: uint16(132), + 318: uint16(132), + 319: uint16(132), + 320: uint16(131), + 321: uint16(131), + 322: uint16(130), + 323: uint16(130), + 324: uint16(130), + 325: uint16(129), + 326: uint16(126), + 327: uint16(450), + 328: uint16(131), + 329: uint16(131), + 330: uint16(130), + 331: uint16(130), + 332: uint16(130), + 333: uint16(129), + 334: uint16(126), + 335: uint16(450), + 336: uint16(556), + 337: uint16(1204), + 338: uint16(302), + 339: uint16(319), + 340: uint16(567), + 341: uint16(121), + 342: uint16(568), + 343: uint16(480), 344: uint16(4), - 345: uint16(929), - 346: uint16(929), - 347: uint16(435), - 348: uint16(503), - 349: uint16(342), - 350: uint16(464), - 351: uint16(330), - 352: uint16(362), - 353: uint16(396), - 354: uint16(1238), - 355: uint16(1193), - 356: uint16(1194), - 357: uint16(1193), - 358: uint16(567), - 359: uint16(572), - 360: uint16(123), - 361: uint16(123), - 362: uint16(123), - 363: uint16(123), - 364: uint16(122), - 365: uint16(122), - 366: uint16(121), - 367: uint16(121), - 368: uint16(121), - 369: uint16(120), - 370: uint16(117), - 371: uint16(448), - 372: uint16(286), - 373: uint16(286), - 374: uint16(371), - 375: uint16(1581), - 376: uint16(1607), - 377: uint16(445), - 378: uint16(444), - 379: uint16(155), - 380: uint16(411), - 381: uint16(449), - 382: uint16(72), - 383: uint16(72), - 384: uint16(1289), - 385: uint16(569), - 386: uint16(1222), - 387: uint16(1193), - 388: uint16(1194), - 389: uint16(1193), - 390: uint16(86), - 391: uint16(1224), - 392: uint16(273), - 393: uint16(561), - 394: uint16(547), - 395: uint16(520), - 396: uint16(520), - 397: uint16(572), - 398: uint16(99), - 399: uint16(1223), - 400: uint16(6), - 401: uint16(1281), - 402: uint16(476), - 403: uint16(143), - 404: uint16(126), - 405: uint16(127), - 406: uint16(81), - 407: uint16(1217), - 408: uint16(1217), - 409: uint16(1054), - 410: uint16(1057), - 411: uint16(1044), - 412: uint16(1044), - 413: uint16(124), - 414: uint16(124), - 415: uint16(125), - 416: uint16(125), - 417: uint16(125), - 418: uint16(125), - 419: uint16(554), - 420: uint16(13), - 421: uint16(13), - 422: uint16(1031), - 423: uint16(511), - 424: uint16(1225), - 425: uint16(1193), - 426: uint16(1225), - 427: uint16(553), - 428: uint16(110), - 429: uint16(110), - 430: uint16(224), - 431: uint16(572), - 432: uint16(1239), - 433: uint16(177), - 434: uint16(572), - 435: uint16(429), - 436: uint16(111), - 437: uint16(199), - 438: uint16(449), - 439: uint16(573), - 440: uint16(449), - 441: uint16(432), - 442: uint16(1555), - 443: uint16(1019), - 444: uint16(327), - 445: uint16(555), - 446: uint16(1193), - 447: uint16(272), - 448: uint16(289), - 449: uint16(370), - 450: uint16(514), - 451: uint16(365), - 452: uint16(513), - 453: uint16(259), - 454: uint16(72), - 455: uint16(72), - 456: uint16(547), - 457: uint16(72), - 458: uint16(72), - 459: uint16(361), - 460: uint16(318), - 461: uint16(563), - 462: uint16(1613), - 463: uint16(123), - 464: uint16(123), - 465: uint16(123), - 466: uint16(123), - 467: uint16(122), - 468: uint16(122), - 469: uint16(121), - 470: uint16(121), - 471: uint16(121), - 472: uint16(120), - 473: uint16(117), - 474: uint16(448), - 475: uint16(1019), - 476: uint16(1019), - 477: uint16(1021), - 478: uint16(1022), - 479: uint16(28), - 480: uint16(286), - 481: uint16(286), - 482: uint16(1193), - 483: uint16(1194), - 484: uint16(1193), - 485: uint16(1159), - 486: uint16(572), - 487: uint16(1612), - 488: uint16(411), - 489: uint16(904), - 490: uint16(192), - 491: uint16(554), - 492: uint16(358), - 493: uint16(569), - 494: uint16(554), - 495: uint16(940), - 496: uint16(537), - 497: uint16(521), - 498: uint16(1159), - 499: uint16(437), - 500: uint16(415), - 501: uint16(1159), - 502: uint16(556), - 503: uint16(1193), - 504: uint16(1194), - 505: uint16(1193), - 506: uint16(572), - 507: uint16(548), - 508: uint16(548), - 509: uint16(52), - 510: uint16(52), - 511: uint16(216), - 512: uint16(126), - 513: uint16(127), - 514: uint16(81), - 515: uint16(1217), - 516: uint16(1217), - 517: uint16(1054), - 518: uint16(1057), - 519: uint16(1044), - 520: uint16(1044), - 521: uint16(124), - 522: uint16(124), - 523: uint16(125), - 524: uint16(125), - 525: uint16(125), - 526: uint16(125), - 527: uint16(1193), - 528: uint16(478), - 529: uint16(136), - 530: uint16(136), - 531: uint16(411), - 532: uint16(286), - 533: uint16(286), - 534: uint16(1493), - 535: uint16(509), - 536: uint16(122), - 537: uint16(122), - 538: uint16(121), - 539: uint16(121), - 540: uint16(121), - 541: uint16(120), - 542: uint16(117), - 543: uint16(448), - 544: uint16(1010), - 545: uint16(569), - 546: uint16(522), - 547: uint16(219), - 548: uint16(545), - 549: uint16(545), - 550: uint16(318), - 551: uint16(563), - 552: uint16(143), - 553: uint16(6), - 554: uint16(536), - 555: uint16(126), - 556: uint16(127), - 557: uint16(81), - 558: uint16(1217), - 559: uint16(1217), - 560: uint16(1054), - 561: uint16(1057), - 562: uint16(1044), - 563: uint16(1044), - 564: uint16(124), - 565: uint16(124), - 566: uint16(125), - 567: uint16(125), - 568: uint16(125), - 569: uint16(125), - 570: uint16(1557), - 571: uint16(123), - 572: uint16(123), - 573: uint16(123), - 574: uint16(123), - 575: uint16(122), - 576: uint16(122), - 577: uint16(121), - 578: uint16(121), - 579: uint16(121), - 580: uint16(120), - 581: uint16(117), - 582: uint16(448), - 583: uint16(489), - 584: uint16(1193), - 585: uint16(1194), - 586: uint16(1193), - 587: uint16(486), - 588: uint16(283), - 589: uint16(1270), - 590: uint16(960), - 591: uint16(254), - 592: uint16(1193), - 593: uint16(375), - 594: uint16(508), - 595: uint16(505), - 596: uint16(504), - 597: uint16(1193), - 598: uint16(342), - 599: uint16(574), - 600: uint16(1193), - 601: uint16(574), - 602: uint16(411), - 603: uint16(294), - 604: uint16(503), - 605: uint16(960), - 606: uint16(879), - 607: uint16(193), - 608: uint16(484), - 609: uint16(318), - 610: uint16(563), - 611: uint16(386), - 612: uint16(292), - 613: uint16(382), - 614: uint16(123), - 615: uint16(123), - 616: uint16(123), - 617: uint16(123), - 618: uint16(122), - 619: uint16(122), - 620: uint16(121), - 621: uint16(121), - 622: uint16(121), - 623: uint16(120), - 624: uint16(117), - 625: uint16(448), - 626: uint16(126), - 627: uint16(127), - 628: uint16(81), - 629: uint16(1217), - 630: uint16(1217), - 631: uint16(1054), - 632: uint16(1057), - 633: uint16(1044), - 634: uint16(1044), - 635: uint16(124), - 636: uint16(124), - 637: uint16(125), - 638: uint16(125), - 639: uint16(125), - 640: uint16(125), - 641: uint16(411), - 642: uint16(396), - 643: uint16(1139), - 644: uint16(1193), - 645: uint16(872), - 646: uint16(101), - 647: uint16(286), - 648: uint16(286), - 649: uint16(1193), - 650: uint16(1194), - 651: uint16(1193), - 652: uint16(375), - 653: uint16(1096), - 654: uint16(1193), - 655: uint16(1194), - 656: uint16(1193), - 657: uint16(1193), - 658: uint16(1194), - 659: uint16(1193), - 660: uint16(569), - 661: uint16(459), - 662: uint16(33), - 663: uint16(375), - 664: uint16(235), - 665: uint16(126), - 666: uint16(127), - 667: uint16(81), - 668: uint16(1217), - 669: uint16(1217), - 670: uint16(1054), - 671: uint16(1057), - 672: uint16(1044), - 673: uint16(1044), - 674: uint16(124), - 675: uint16(124), - 676: uint16(125), - 677: uint16(125), - 678: uint16(125), - 679: uint16(125), - 680: uint16(1437), - 681: uint16(962), - 682: uint16(572), - 683: uint16(230), - 684: uint16(961), - 685: uint16(123), - 686: uint16(123), - 687: uint16(123), - 688: uint16(123), - 689: uint16(122), - 690: uint16(122), - 691: uint16(121), - 692: uint16(121), - 693: uint16(121), - 694: uint16(120), - 695: uint16(117), - 696: uint16(448), - 697: uint16(1159), - 698: uint16(230), - 699: uint16(1193), - 700: uint16(158), - 701: uint16(1193), - 702: uint16(1194), - 703: uint16(1193), - 704: uint16(1556), - 705: uint16(13), - 706: uint16(13), - 707: uint16(303), - 708: uint16(960), - 709: uint16(1233), - 710: uint16(1159), - 711: uint16(154), - 712: uint16(411), - 713: uint16(1159), - 714: uint16(375), - 715: uint16(1584), - 716: uint16(1177), - 717: uint16(5), - 718: uint16(371), - 719: uint16(1581), - 720: uint16(431), - 721: uint16(1239), - 722: uint16(3), - 723: uint16(960), - 724: uint16(123), - 725: uint16(123), - 726: uint16(123), - 727: uint16(123), - 728: uint16(122), - 729: uint16(122), - 730: uint16(121), - 731: uint16(121), - 732: uint16(121), - 733: uint16(120), - 734: uint16(117), - 735: uint16(448), - 736: uint16(126), - 737: uint16(127), - 738: uint16(81), - 739: uint16(1217), - 740: uint16(1217), - 741: uint16(1054), - 742: uint16(1057), - 743: uint16(1044), - 744: uint16(1044), - 745: uint16(124), - 746: uint16(124), - 747: uint16(125), - 748: uint16(125), - 749: uint16(125), - 750: uint16(125), - 751: uint16(411), - 752: uint16(210), - 753: uint16(571), - 754: uint16(1193), - 755: uint16(1032), - 756: uint16(1193), - 757: uint16(1194), - 758: uint16(1193), - 759: uint16(1193), - 760: uint16(390), - 761: uint16(855), - 762: uint16(156), - 763: uint16(1555), - 764: uint16(376), - 765: uint16(404), - 766: uint16(1101), - 767: uint16(1101), - 768: uint16(492), - 769: uint16(572), - 770: uint16(469), - 771: uint16(344), - 772: uint16(1322), - 773: uint16(1322), - 774: uint16(1555), - 775: uint16(126), - 776: uint16(127), - 777: uint16(81), - 778: uint16(1217), - 779: uint16(1217), - 780: uint16(1054), - 781: uint16(1057), - 782: uint16(1044), - 783: uint16(1044), - 784: uint16(124), - 785: uint16(124), - 786: uint16(125), - 787: uint16(125), - 788: uint16(125), - 789: uint16(125), - 790: uint16(130), - 791: uint16(572), - 792: uint16(13), - 793: uint16(13), - 794: uint16(532), - 795: uint16(123), - 796: uint16(123), - 797: uint16(123), - 798: uint16(123), - 799: uint16(122), - 800: uint16(122), - 801: uint16(121), - 802: uint16(121), - 803: uint16(121), - 804: uint16(120), - 805: uint16(117), - 806: uint16(448), - 807: uint16(304), - 808: uint16(572), - 809: uint16(457), - 810: uint16(229), - 811: uint16(1193), - 812: uint16(1194), - 813: uint16(1193), - 814: uint16(13), - 815: uint16(13), - 816: uint16(1193), - 817: uint16(1194), - 818: uint16(1193), - 819: uint16(1300), - 820: uint16(467), - 821: uint16(1270), - 822: uint16(411), - 823: uint16(1320), - 824: uint16(1320), - 825: uint16(1555), - 826: uint16(1015), - 827: uint16(457), - 828: uint16(456), - 829: uint16(436), - 830: uint16(301), - 831: uint16(72), - 832: uint16(72), - 833: uint16(1268), - 834: uint16(123), - 835: uint16(123), - 836: uint16(123), - 837: uint16(123), - 838: uint16(122), - 839: uint16(122), - 840: uint16(121), - 841: uint16(121), - 842: uint16(121), - 843: uint16(120), - 844: uint16(117), - 845: uint16(448), - 846: uint16(126), - 847: uint16(127), - 848: uint16(81), - 849: uint16(1217), - 850: uint16(1217), - 851: uint16(1054), - 852: uint16(1057), - 853: uint16(1044), - 854: uint16(1044), - 855: uint16(124), - 856: uint16(124), - 857: uint16(125), - 858: uint16(125), - 859: uint16(125), - 860: uint16(125), - 861: uint16(411), - 862: uint16(384), - 863: uint16(1076), - 864: uint16(1159), - 865: uint16(286), - 866: uint16(286), - 867: uint16(421), - 868: uint16(314), - 869: uint16(280), - 870: uint16(280), - 871: uint16(287), - 872: uint16(287), - 873: uint16(461), - 874: uint16(408), - 875: uint16(407), - 876: uint16(1539), - 877: uint16(1159), - 878: uint16(569), - 879: uint16(572), - 880: uint16(1159), - 881: uint16(1196), - 882: uint16(569), - 883: uint16(409), - 884: uint16(569), - 885: uint16(126), - 886: uint16(127), - 887: uint16(81), - 888: uint16(1217), - 889: uint16(1217), - 890: uint16(1054), - 891: uint16(1057), - 892: uint16(1044), - 893: uint16(1044), - 894: uint16(124), - 895: uint16(124), - 896: uint16(125), - 897: uint16(125), - 898: uint16(125), - 899: uint16(125), - 900: uint16(457), - 901: uint16(1485), - 902: uint16(13), - 903: uint16(13), - 904: uint16(1541), - 905: uint16(123), - 906: uint16(123), - 907: uint16(123), - 908: uint16(123), - 909: uint16(122), - 910: uint16(122), - 911: uint16(121), - 912: uint16(121), - 913: uint16(121), - 914: uint16(120), - 915: uint16(117), - 916: uint16(448), - 917: uint16(202), - 918: uint16(572), - 919: uint16(462), - 920: uint16(1587), - 921: uint16(578), - 922: uint16(2), - 923: uint16(1248), - 924: uint16(843), - 925: uint16(844), - 926: uint16(845), - 927: uint16(1563), - 928: uint16(319), - 929: uint16(409), - 930: uint16(147), - 931: uint16(6), - 932: uint16(411), - 933: uint16(257), - 934: uint16(256), - 935: uint16(255), - 936: uint16(208), - 937: uint16(1330), - 938: uint16(9), - 939: uint16(1196), - 940: uint16(264), - 941: uint16(72), - 942: uint16(72), - 943: uint16(1436), - 944: uint16(123), - 945: uint16(123), - 946: uint16(123), - 947: uint16(123), - 948: uint16(122), - 949: uint16(122), - 950: uint16(121), - 951: uint16(121), - 952: uint16(121), - 953: uint16(120), - 954: uint16(117), - 955: uint16(448), - 956: uint16(126), - 957: uint16(127), - 958: uint16(81), - 959: uint16(1217), - 960: uint16(1217), - 961: uint16(1054), - 962: uint16(1057), - 963: uint16(1044), - 964: uint16(1044), - 965: uint16(124), - 966: uint16(124), - 967: uint16(125), - 968: uint16(125), - 969: uint16(125), - 970: uint16(125), - 971: uint16(572), - 972: uint16(286), - 973: uint16(286), - 974: uint16(572), - 975: uint16(1213), - 976: uint16(411), - 977: uint16(577), - 978: uint16(315), - 979: uint16(1248), - 980: uint16(421), - 981: uint16(371), - 982: uint16(1581), - 983: uint16(356), - 984: uint16(319), - 985: uint16(569), - 986: uint16(147), - 987: uint16(495), - 988: uint16(529), - 989: uint16(1644), - 990: uint16(397), - 991: uint16(935), - 992: uint16(495), - 993: uint16(1330), - 994: uint16(71), - 995: uint16(71), - 996: uint16(934), - 997: uint16(72), - 998: uint16(72), - 999: uint16(242), - 1000: uint16(1328), - 1001: uint16(105), - 1002: uint16(81), - 1003: uint16(1217), - 1004: uint16(1217), - 1005: uint16(1054), - 1006: uint16(1057), - 1007: uint16(1044), - 1008: uint16(1044), - 1009: uint16(124), - 1010: uint16(124), - 1011: uint16(125), - 1012: uint16(125), - 1013: uint16(125), - 1014: uint16(125), - 1015: uint16(123), - 1016: uint16(123), - 1017: uint16(123), - 1018: uint16(123), - 1019: uint16(122), - 1020: uint16(122), - 1021: uint16(121), - 1022: uint16(121), - 1023: uint16(121), - 1024: uint16(120), - 1025: uint16(117), - 1026: uint16(448), - 1027: uint16(1117), - 1028: uint16(286), - 1029: uint16(286), - 1030: uint16(1422), - 1031: uint16(452), - 1032: uint16(1528), - 1033: uint16(1213), - 1034: uint16(443), - 1035: uint16(286), - 1036: uint16(286), - 1037: uint16(1492), - 1038: uint16(1355), - 1039: uint16(313), - 1040: uint16(478), - 1041: uint16(569), - 1042: uint16(1118), - 1043: uint16(454), - 1044: uint16(351), - 1045: uint16(495), - 1046: uint16(354), - 1047: uint16(1266), - 1048: uint16(569), - 1049: uint16(209), - 1050: uint16(572), - 1051: uint16(418), - 1052: uint16(179), - 1053: uint16(572), - 1054: uint16(1031), - 1055: uint16(242), - 1056: uint16(385), - 1057: uint16(1119), - 1058: uint16(523), - 1059: uint16(123), - 1060: uint16(123), - 1061: uint16(123), - 1062: uint16(123), - 1063: uint16(122), - 1064: uint16(122), - 1065: uint16(121), - 1066: uint16(121), - 1067: uint16(121), - 1068: uint16(120), - 1069: uint16(117), - 1070: uint16(448), - 1071: uint16(1020), - 1072: uint16(108), - 1073: uint16(72), - 1074: uint16(72), - 1075: uint16(1019), - 1076: uint16(13), - 1077: uint16(13), - 1078: uint16(915), - 1079: uint16(572), - 1080: uint16(1498), - 1081: uint16(572), - 1082: uint16(286), - 1083: uint16(286), - 1084: uint16(98), - 1085: uint16(530), - 1086: uint16(1537), - 1087: uint16(452), - 1088: uint16(916), - 1089: uint16(1334), - 1090: uint16(1329), - 1091: uint16(203), - 1092: uint16(411), - 1093: uint16(286), - 1094: uint16(286), - 1095: uint16(569), - 1096: uint16(152), - 1097: uint16(211), - 1098: uint16(1498), - 1099: uint16(1500), - 1100: uint16(426), - 1101: uint16(569), - 1102: uint16(56), - 1103: uint16(56), - 1104: uint16(57), - 1105: uint16(57), - 1106: uint16(569), - 1107: uint16(1019), - 1108: uint16(1019), - 1109: uint16(1021), - 1110: uint16(447), - 1111: uint16(572), - 1112: uint16(411), - 1113: uint16(531), - 1114: uint16(12), - 1115: uint16(297), - 1116: uint16(126), - 1117: uint16(127), - 1118: uint16(81), - 1119: uint16(1217), - 1120: uint16(1217), - 1121: uint16(1054), - 1122: uint16(1057), - 1123: uint16(1044), - 1124: uint16(1044), - 1125: uint16(124), - 1126: uint16(124), - 1127: uint16(125), - 1128: uint16(125), - 1129: uint16(125), - 1130: uint16(125), - 1131: uint16(572), - 1132: uint16(411), - 1133: uint16(867), - 1134: uint16(15), - 1135: uint16(15), - 1136: uint16(126), - 1137: uint16(127), - 1138: uint16(81), - 1139: uint16(1217), - 1140: uint16(1217), - 1141: uint16(1054), - 1142: uint16(1057), - 1143: uint16(1044), - 1144: uint16(1044), - 1145: uint16(124), - 1146: uint16(124), - 1147: uint16(125), - 1148: uint16(125), - 1149: uint16(125), - 1150: uint16(125), - 1151: uint16(373), - 1152: uint16(529), - 1153: uint16(264), - 1154: uint16(44), - 1155: uint16(44), - 1156: uint16(126), - 1157: uint16(115), - 1158: uint16(81), - 1159: uint16(1217), - 1160: uint16(1217), - 1161: uint16(1054), - 1162: uint16(1057), - 1163: uint16(1044), - 1164: uint16(1044), - 1165: uint16(124), - 1166: uint16(124), - 1167: uint16(125), - 1168: uint16(125), - 1169: uint16(125), - 1170: uint16(125), - 1171: uint16(1498), - 1172: uint16(478), - 1173: uint16(1271), - 1174: uint16(417), - 1175: uint16(123), - 1176: uint16(123), - 1177: uint16(123), - 1178: uint16(123), - 1179: uint16(122), - 1180: uint16(122), - 1181: uint16(121), - 1182: uint16(121), - 1183: uint16(121), - 1184: uint16(120), - 1185: uint16(117), - 1186: uint16(448), - 1187: uint16(205), - 1188: uint16(1213), - 1189: uint16(495), - 1190: uint16(430), - 1191: uint16(867), - 1192: uint16(468), - 1193: uint16(322), - 1194: uint16(495), - 1195: uint16(123), - 1196: uint16(123), - 1197: uint16(123), - 1198: uint16(123), - 1199: uint16(122), - 1200: uint16(122), - 1201: uint16(121), - 1202: uint16(121), - 1203: uint16(121), - 1204: uint16(120), - 1205: uint16(117), - 1206: uint16(448), - 1207: uint16(572), - 1208: uint16(557), - 1209: uint16(1140), - 1210: uint16(1642), - 1211: uint16(1422), - 1212: uint16(1642), - 1213: uint16(543), - 1214: uint16(572), - 1215: uint16(123), - 1216: uint16(123), - 1217: uint16(123), - 1218: uint16(123), - 1219: uint16(122), - 1220: uint16(122), - 1221: uint16(121), - 1222: uint16(121), - 1223: uint16(121), - 1224: uint16(120), - 1225: uint16(117), - 1226: uint16(448), - 1227: uint16(572), - 1228: uint16(1422), - 1229: uint16(572), - 1230: uint16(13), - 1231: uint16(13), - 1232: uint16(542), - 1233: uint16(323), - 1234: uint16(1325), - 1235: uint16(411), - 1236: uint16(334), - 1237: uint16(58), - 1238: uint16(58), - 1239: uint16(349), - 1240: uint16(1422), - 1241: uint16(1170), - 1242: uint16(326), - 1243: uint16(286), - 1244: uint16(286), - 1245: uint16(549), - 1246: uint16(1213), - 1247: uint16(300), - 1248: uint16(895), - 1249: uint16(530), - 1250: uint16(45), - 1251: uint16(45), - 1252: uint16(59), - 1253: uint16(59), - 1254: uint16(1140), - 1255: uint16(1643), - 1256: uint16(569), - 1257: uint16(1643), - 1258: uint16(565), - 1259: uint16(417), - 1260: uint16(127), - 1261: uint16(81), - 1262: uint16(1217), - 1263: uint16(1217), - 1264: uint16(1054), - 1265: uint16(1057), - 1266: uint16(1044), - 1267: uint16(1044), - 1268: uint16(124), - 1269: uint16(124), - 1270: uint16(125), - 1271: uint16(125), - 1272: uint16(125), - 1273: uint16(125), - 1274: uint16(1367), - 1275: uint16(373), - 1276: uint16(500), - 1277: uint16(290), - 1278: uint16(1193), - 1279: uint16(512), - 1280: uint16(1366), - 1281: uint16(427), - 1282: uint16(394), - 1283: uint16(394), - 1284: uint16(393), - 1285: uint16(275), - 1286: uint16(391), - 1287: uint16(896), - 1288: uint16(1138), - 1289: uint16(852), - 1290: uint16(478), - 1291: uint16(258), - 1292: uint16(1422), - 1293: uint16(1170), - 1294: uint16(463), - 1295: uint16(1159), - 1296: uint16(12), - 1297: uint16(331), - 1298: uint16(428), - 1299: uint16(333), - 1300: uint16(1117), - 1301: uint16(460), - 1302: uint16(236), - 1303: uint16(258), - 1304: uint16(325), - 1305: uint16(460), - 1306: uint16(544), - 1307: uint16(1544), - 1308: uint16(1159), - 1309: uint16(1098), - 1310: uint16(491), - 1311: uint16(1159), - 1312: uint16(324), - 1313: uint16(1098), - 1314: uint16(440), - 1315: uint16(1118), - 1316: uint16(335), - 1317: uint16(516), - 1318: uint16(123), - 1319: uint16(123), - 1320: uint16(123), - 1321: uint16(123), - 1322: uint16(122), - 1323: uint16(122), - 1324: uint16(121), - 1325: uint16(121), - 1326: uint16(121), - 1327: uint16(120), - 1328: uint16(117), - 1329: uint16(448), - 1330: uint16(1119), - 1331: uint16(318), - 1332: uint16(563), - 1333: uint16(1138), - 1334: uint16(572), - 1335: uint16(1193), - 1336: uint16(1194), - 1337: uint16(1193), - 1338: uint16(112), - 1339: uint16(564), - 1340: uint16(201), + 345: uint16(555), + 346: uint16(1149), + 347: uint16(1657), + 348: uint16(1628), + 349: uint16(1657), + 350: uint16(45), + 351: uint16(128), + 352: uint16(125), + 353: uint16(232), + 354: uint16(1204), + 355: uint16(1205), + 356: uint16(1204), + 357: uint16(1250), + 358: uint16(571), + 359: uint16(1169), + 360: uint16(132), + 361: uint16(132), + 362: uint16(132), + 363: uint16(132), + 364: uint16(131), + 365: uint16(131), + 366: uint16(130), + 367: uint16(130), + 368: uint16(130), + 369: uint16(129), + 370: uint16(126), + 371: uint16(450), + 372: uint16(1169), + 373: uint16(287), + 374: uint16(287), + 375: uint16(1169), + 376: uint16(1019), + 377: uint16(576), + 378: uint16(422), + 379: uint16(1019), + 380: uint16(412), + 381: uint16(451), + 382: uint16(1602), + 383: uint16(582), + 384: uint16(2), + 385: uint16(1259), + 386: uint16(573), + 387: uint16(44), + 388: uint16(561), + 389: uint16(95), + 390: uint16(320), + 391: uint16(110), + 392: uint16(153), + 393: uint16(565), + 394: uint16(1204), + 395: uint16(1205), + 396: uint16(1204), + 397: uint16(522), + 398: uint16(522), + 399: uint16(1341), + 400: uint16(81), + 401: uint16(81), + 402: uint16(7), + 403: uint16(44), + 404: uint16(135), + 405: uint16(136), + 406: uint16(90), + 407: uint16(1228), + 408: uint16(1228), + 409: uint16(1063), + 410: uint16(1066), + 411: uint16(1053), + 412: uint16(1053), + 413: uint16(133), + 414: uint16(133), + 415: uint16(134), + 416: uint16(134), + 417: uint16(134), + 418: uint16(134), + 419: uint16(295), + 420: uint16(1149), + 421: uint16(1658), + 422: uint16(1040), + 423: uint16(1658), + 424: uint16(1204), + 425: uint16(1147), + 426: uint16(319), + 427: uint16(567), + 428: uint16(119), + 429: uint16(119), + 430: uint16(343), + 431: uint16(466), + 432: uint16(331), + 433: uint16(343), + 434: uint16(287), + 435: uint16(287), + 436: uint16(120), + 437: uint16(556), + 438: uint16(451), + 439: uint16(577), + 440: uint16(451), + 441: uint16(1169), + 442: uint16(1169), + 443: uint16(1028), + 444: uint16(319), + 445: uint16(567), + 446: uint16(438), + 447: uint16(573), + 448: uint16(210), + 449: uint16(561), + 450: uint16(1339), + 451: uint16(1451), + 452: uint16(546), + 453: uint16(531), + 454: uint16(1169), + 455: uint16(1169), + 456: uint16(1598), + 457: uint16(1169), + 458: uint16(1169), + 459: uint16(416), + 460: uint16(319), + 461: uint16(567), + 462: uint16(243), + 463: uint16(132), + 464: uint16(132), + 465: uint16(132), + 466: uint16(132), + 467: uint16(131), + 468: uint16(131), + 469: uint16(130), + 470: uint16(130), + 471: uint16(130), + 472: uint16(129), + 473: uint16(126), + 474: uint16(450), + 475: uint16(1028), + 476: uint16(1028), + 477: uint16(1030), + 478: uint16(1031), + 479: uint16(35), + 480: uint16(44), + 481: uint16(1204), + 482: uint16(1205), + 483: uint16(1204), + 484: uint16(472), + 485: uint16(287), + 486: uint16(287), + 487: uint16(1328), + 488: uint16(412), + 489: uint16(1307), + 490: uint16(372), + 491: uint16(1595), + 492: uint16(359), + 493: uint16(225), + 494: uint16(454), + 495: uint16(1204), + 496: uint16(195), + 497: uint16(1328), + 498: uint16(573), + 499: uint16(1147), + 500: uint16(561), + 501: uint16(1333), + 502: uint16(1333), + 503: uint16(274), + 504: uint16(576), + 505: uint16(1188), + 506: uint16(576), + 507: uint16(340), + 508: uint16(46), + 509: uint16(196), + 510: uint16(537), + 511: uint16(217), + 512: uint16(135), + 513: uint16(136), + 514: uint16(90), + 515: uint16(1228), + 516: uint16(1228), + 517: uint16(1063), + 518: uint16(1066), + 519: uint16(1053), + 520: uint16(1053), + 521: uint16(133), + 522: uint16(133), + 523: uint16(134), + 524: uint16(134), + 525: uint16(134), + 526: uint16(134), + 527: uint16(19), + 528: uint16(19), + 529: uint16(19), + 530: uint16(19), + 531: uint16(412), + 532: uint16(581), + 533: uint16(1204), + 534: uint16(1259), + 535: uint16(511), + 536: uint16(1204), + 537: uint16(319), + 538: uint16(567), + 539: uint16(320), + 540: uint16(944), + 541: uint16(153), + 542: uint16(425), + 543: uint16(491), + 544: uint16(430), + 545: uint16(943), + 546: uint16(1204), + 547: uint16(488), + 548: uint16(1341), + 549: uint16(1450), + 550: uint16(532), + 551: uint16(1277), + 552: uint16(1204), + 553: uint16(1205), + 554: uint16(1204), + 555: uint16(135), + 556: uint16(136), + 557: uint16(90), + 558: uint16(1228), + 559: uint16(1228), + 560: uint16(1063), + 561: uint16(1066), + 562: uint16(1053), + 563: uint16(1053), + 564: uint16(133), + 565: uint16(133), + 566: uint16(134), + 567: uint16(134), + 568: uint16(134), + 569: uint16(134), + 570: uint16(575), + 571: uint16(132), + 572: uint16(132), + 573: uint16(132), + 574: uint16(132), + 575: uint16(131), + 576: uint16(131), + 577: uint16(130), + 578: uint16(130), + 579: uint16(130), + 580: uint16(129), + 581: uint16(126), + 582: uint16(450), + 583: uint16(287), + 584: uint16(287), + 585: uint16(528), + 586: uint16(287), + 587: uint16(287), + 588: uint16(372), + 589: uint16(1595), + 590: uint16(1204), + 591: uint16(1205), + 592: uint16(1204), + 593: uint16(1204), + 594: uint16(1205), + 595: uint16(1204), + 596: uint16(573), + 597: uint16(486), + 598: uint16(561), + 599: uint16(573), + 600: uint16(889), + 601: uint16(561), + 602: uint16(412), + 603: uint16(1204), + 604: uint16(1205), + 605: uint16(1204), + 606: uint16(886), + 607: uint16(40), + 608: uint16(22), + 609: uint16(22), + 610: uint16(220), + 611: uint16(243), + 612: uint16(525), + 613: uint16(1449), + 614: uint16(132), + 615: uint16(132), + 616: uint16(132), + 617: uint16(132), + 618: uint16(131), + 619: uint16(131), + 620: uint16(130), + 621: uint16(130), + 622: uint16(130), + 623: uint16(129), + 624: uint16(126), + 625: uint16(450), + 626: uint16(135), + 627: uint16(136), + 628: uint16(90), + 629: uint16(1228), + 630: uint16(1228), + 631: uint16(1063), + 632: uint16(1066), + 633: uint16(1053), + 634: uint16(1053), + 635: uint16(133), + 636: uint16(133), + 637: uint16(134), + 638: uint16(134), + 639: uint16(134), + 640: uint16(134), + 641: uint16(412), + 642: uint16(180), + 643: uint16(454), + 644: uint16(1204), + 645: uint16(879), + 646: uint16(255), + 647: uint16(287), + 648: uint16(287), + 649: uint16(510), + 650: uint16(507), + 651: uint16(506), + 652: uint16(372), + 653: uint16(1595), + 654: uint16(1568), + 655: uint16(1331), + 656: uint16(1331), + 657: uint16(576), + 658: uint16(889), + 659: uint16(505), + 660: uint16(573), + 661: uint16(44), + 662: uint16(561), + 663: uint16(559), + 664: uint16(1207), + 665: uint16(135), + 666: uint16(136), + 667: uint16(90), + 668: uint16(1228), + 669: uint16(1228), + 670: uint16(1063), + 671: uint16(1066), + 672: uint16(1053), + 673: uint16(1053), + 674: uint16(133), + 675: uint16(133), + 676: uint16(134), + 677: uint16(134), + 678: uint16(134), + 679: uint16(134), + 680: uint16(81), + 681: uint16(81), + 682: uint16(422), + 683: uint16(576), + 684: uint16(377), + 685: uint16(132), + 686: uint16(132), + 687: uint16(132), + 688: uint16(132), + 689: uint16(131), + 690: uint16(131), + 691: uint16(130), + 692: uint16(130), + 693: uint16(130), + 694: uint16(129), + 695: uint16(126), + 696: uint16(450), + 697: uint16(297), + 698: uint16(287), + 699: uint16(287), + 700: uint16(460), + 701: uint16(1204), + 702: uint16(1205), + 703: uint16(1204), + 704: uint16(1204), + 705: uint16(534), + 706: uint16(19), + 707: uint16(19), + 708: uint16(448), + 709: uint16(448), + 710: uint16(448), + 711: uint16(573), + 712: uint16(412), + 713: uint16(561), + 714: uint16(230), + 715: uint16(436), + 716: uint16(1187), + 717: uint16(535), + 718: uint16(319), + 719: uint16(567), + 720: uint16(363), + 721: uint16(432), + 722: uint16(1207), + 723: uint16(1435), + 724: uint16(132), + 725: uint16(132), + 726: uint16(132), + 727: uint16(132), + 728: uint16(131), + 729: uint16(131), + 730: uint16(130), + 731: uint16(130), + 732: uint16(130), + 733: uint16(129), + 734: uint16(126), + 735: uint16(450), + 736: uint16(135), + 737: uint16(136), + 738: uint16(90), + 739: uint16(1228), + 740: uint16(1228), + 741: uint16(1063), + 742: uint16(1066), + 743: uint16(1053), + 744: uint16(1053), + 745: uint16(133), + 746: uint16(133), + 747: uint16(134), + 748: uint16(134), + 749: uint16(134), + 750: uint16(134), + 751: uint16(412), + 752: uint16(211), + 753: uint16(949), + 754: uint16(1169), + 755: uint16(1041), + 756: uint16(1110), + 757: uint16(1110), + 758: uint16(494), + 759: uint16(547), + 760: uint16(547), + 761: uint16(1204), + 762: uint16(1205), + 763: uint16(1204), + 764: uint16(7), + 765: uint16(539), + 766: uint16(1570), + 767: uint16(1169), + 768: uint16(376), + 769: uint16(576), + 770: uint16(1169), + 771: uint16(5), + 772: uint16(1204), + 773: uint16(486), + 774: uint16(3), + 775: uint16(135), + 776: uint16(136), + 777: uint16(90), + 778: uint16(1228), + 779: uint16(1228), + 780: uint16(1063), + 781: uint16(1066), + 782: uint16(1053), + 783: uint16(1053), + 784: uint16(133), + 785: uint16(133), + 786: uint16(134), + 787: uint16(134), + 788: uint16(134), + 789: uint16(134), + 790: uint16(576), + 791: uint16(513), + 792: uint16(19), + 793: uint16(19), + 794: uint16(427), + 795: uint16(132), + 796: uint16(132), + 797: uint16(132), + 798: uint16(132), + 799: uint16(131), + 800: uint16(131), + 801: uint16(130), + 802: uint16(130), + 803: uint16(130), + 804: uint16(129), + 805: uint16(126), + 806: uint16(450), + 807: uint16(305), + 808: uint16(1204), + 809: uint16(433), + 810: uint16(225), + 811: uint16(1204), + 812: uint16(385), + 813: uint16(19), + 814: uint16(19), + 815: uint16(273), + 816: uint16(290), + 817: uint16(371), + 818: uint16(516), + 819: uint16(366), + 820: uint16(515), + 821: uint16(260), + 822: uint16(412), + 823: uint16(538), + 824: uint16(1568), + 825: uint16(549), + 826: uint16(1024), + 827: uint16(362), + 828: uint16(437), + 829: uint16(1204), + 830: uint16(1205), + 831: uint16(1204), + 832: uint16(902), + 833: uint16(1552), + 834: uint16(132), + 835: uint16(132), + 836: uint16(132), + 837: uint16(132), + 838: uint16(131), + 839: uint16(131), + 840: uint16(130), + 841: uint16(130), + 842: uint16(130), + 843: uint16(129), + 844: uint16(126), + 845: uint16(450), + 846: uint16(135), + 847: uint16(136), + 848: uint16(90), + 849: uint16(1228), + 850: uint16(1228), + 851: uint16(1063), + 852: uint16(1066), + 853: uint16(1053), + 854: uint16(1053), + 855: uint16(133), + 856: uint16(133), + 857: uint16(134), + 858: uint16(134), + 859: uint16(134), + 860: uint16(134), + 861: uint16(412), + 862: uint16(1435), + 863: uint16(514), + 864: uint16(1281), + 865: uint16(1204), + 866: uint16(1205), + 867: uint16(1204), + 868: uint16(1204), + 869: uint16(1205), + 870: uint16(1204), + 871: uint16(903), + 872: uint16(48), + 873: uint16(342), + 874: uint16(1568), + 875: uint16(1568), + 876: uint16(1279), + 877: uint16(1627), + 878: uint16(1568), + 879: uint16(911), + 880: uint16(576), + 881: uint16(129), + 882: uint16(126), + 883: uint16(450), + 884: uint16(110), + 885: uint16(135), + 886: uint16(136), + 887: uint16(90), + 888: uint16(1228), + 889: uint16(1228), + 890: uint16(1063), + 891: uint16(1066), + 892: uint16(1053), + 893: uint16(1053), + 894: uint16(133), + 895: uint16(133), + 896: uint16(134), + 897: uint16(134), + 898: uint16(134), + 899: uint16(134), + 900: uint16(265), + 901: uint16(576), + 902: uint16(459), + 903: uint16(19), + 904: uint16(19), + 905: uint16(132), + 906: uint16(132), + 907: uint16(132), + 908: uint16(132), + 909: uint16(131), + 910: uint16(131), + 911: uint16(130), + 912: uint16(130), + 913: uint16(130), + 914: uint16(129), + 915: uint16(126), + 916: uint16(450), + 917: uint16(1345), + 918: uint16(204), + 919: uint16(576), + 920: uint16(459), + 921: uint16(458), + 922: uint16(50), + 923: uint16(47), + 924: uint16(19), + 925: uint16(19), + 926: uint16(49), + 927: uint16(434), + 928: uint16(1105), + 929: uint16(573), + 930: uint16(497), + 931: uint16(561), + 932: uint16(412), + 933: uint16(428), + 934: uint16(108), + 935: uint16(1224), + 936: uint16(1569), + 937: uint16(1554), + 938: uint16(376), + 939: uint16(205), + 940: uint16(550), + 941: uint16(550), + 942: uint16(81), + 943: uint16(81), + 944: uint16(132), + 945: uint16(132), + 946: uint16(132), + 947: uint16(132), + 948: uint16(131), + 949: uint16(131), + 950: uint16(130), + 951: uint16(130), + 952: uint16(130), + 953: uint16(129), + 954: uint16(126), + 955: uint16(450), + 956: uint16(135), + 957: uint16(136), + 958: uint16(90), + 959: uint16(1228), + 960: uint16(1228), + 961: uint16(1063), + 962: uint16(1066), + 963: uint16(1053), + 964: uint16(1053), + 965: uint16(133), + 966: uint16(133), + 967: uint16(134), + 968: uint16(134), + 969: uint16(134), + 970: uint16(134), + 971: uint16(480), + 972: uint16(576), + 973: uint16(1204), + 974: uint16(576), + 975: uint16(1541), + 976: uint16(412), + 977: uint16(1435), + 978: uint16(969), + 979: uint16(315), + 980: uint16(1659), + 981: uint16(398), + 982: uint16(284), + 983: uint16(497), + 984: uint16(969), + 985: uint16(893), + 986: uint16(1569), + 987: uint16(1569), + 988: uint16(376), + 989: uint16(376), + 990: uint16(1569), + 991: uint16(461), + 992: uint16(376), + 993: uint16(1224), + 994: uint16(459), + 995: uint16(80), + 996: uint16(80), + 997: uint16(81), + 998: uint16(81), + 999: uint16(497), + 1000: uint16(374), + 1001: uint16(114), + 1002: uint16(90), + 1003: uint16(1228), + 1004: uint16(1228), + 1005: uint16(1063), + 1006: uint16(1066), + 1007: uint16(1053), + 1008: uint16(1053), + 1009: uint16(133), + 1010: uint16(133), + 1011: uint16(134), + 1012: uint16(134), + 1013: uint16(134), + 1014: uint16(134), + 1015: uint16(132), + 1016: uint16(132), + 1017: uint16(132), + 1018: uint16(132), + 1019: uint16(131), + 1020: uint16(131), + 1021: uint16(130), + 1022: uint16(130), + 1023: uint16(130), + 1024: uint16(129), + 1025: uint16(126), + 1026: uint16(450), + 1027: uint16(1204), + 1028: uint16(1505), + 1029: uint16(576), + 1030: uint16(1204), + 1031: uint16(1205), + 1032: uint16(1204), + 1033: uint16(1366), + 1034: uint16(316), + 1035: uint16(486), + 1036: uint16(281), + 1037: uint16(281), + 1038: uint16(497), + 1039: uint16(431), + 1040: uint16(557), + 1041: uint16(288), + 1042: uint16(288), + 1043: uint16(402), + 1044: uint16(1340), + 1045: uint16(471), + 1046: uint16(345), + 1047: uint16(298), + 1048: uint16(429), + 1049: uint16(573), + 1050: uint16(576), + 1051: uint16(561), + 1052: uint16(81), + 1053: uint16(81), + 1054: uint16(573), + 1055: uint16(374), + 1056: uint16(561), + 1057: uint16(971), + 1058: uint16(386), + 1059: uint16(132), + 1060: uint16(132), + 1061: uint16(132), + 1062: uint16(132), + 1063: uint16(131), + 1064: uint16(131), + 1065: uint16(130), + 1066: uint16(130), + 1067: uint16(130), + 1068: uint16(129), + 1069: uint16(126), + 1070: uint16(450), + 1071: uint16(231), + 1072: uint16(117), + 1073: uint16(81), + 1074: uint16(81), + 1075: uint16(287), + 1076: uint16(287), + 1077: uint16(231), + 1078: uint16(287), + 1079: uint16(287), + 1080: uint16(576), + 1081: uint16(1511), + 1082: uint16(576), + 1083: uint16(1336), + 1084: uint16(1204), + 1085: uint16(1205), + 1086: uint16(1204), + 1087: uint16(139), + 1088: uint16(573), + 1089: uint16(556), + 1090: uint16(561), + 1091: uint16(573), + 1092: uint16(412), + 1093: uint16(561), + 1094: uint16(441), + 1095: uint16(456), + 1096: uint16(969), + 1097: uint16(213), + 1098: uint16(558), + 1099: uint16(1511), + 1100: uint16(1513), + 1101: uint16(1550), + 1102: uint16(969), + 1103: uint16(143), + 1104: uint16(143), + 1105: uint16(145), + 1106: uint16(145), + 1107: uint16(1368), + 1108: uint16(314), + 1109: uint16(478), + 1110: uint16(444), + 1111: uint16(970), + 1112: uint16(412), + 1113: uint16(850), + 1114: uint16(851), + 1115: uint16(852), + 1116: uint16(135), + 1117: uint16(136), + 1118: uint16(90), + 1119: uint16(1228), + 1120: uint16(1228), + 1121: uint16(1063), + 1122: uint16(1066), + 1123: uint16(1053), + 1124: uint16(1053), + 1125: uint16(133), + 1126: uint16(133), + 1127: uint16(134), + 1128: uint16(134), + 1129: uint16(134), + 1130: uint16(134), + 1131: uint16(357), + 1132: uint16(412), + 1133: uint16(397), + 1134: uint16(1148), + 1135: uint16(304), + 1136: uint16(135), + 1137: uint16(136), + 1138: uint16(90), + 1139: uint16(1228), + 1140: uint16(1228), + 1141: uint16(1063), + 1142: uint16(1066), + 1143: uint16(1053), + 1144: uint16(1053), + 1145: uint16(133), + 1146: uint16(133), + 1147: uint16(134), + 1148: uint16(134), + 1149: uint16(134), + 1150: uint16(134), + 1151: uint16(1575), + 1152: uint16(323), + 1153: uint16(6), + 1154: uint16(862), + 1155: uint16(7), + 1156: uint16(135), + 1157: uint16(124), + 1158: uint16(90), + 1159: uint16(1228), + 1160: uint16(1228), + 1161: uint16(1063), + 1162: uint16(1066), + 1163: uint16(1053), + 1164: uint16(1053), + 1165: uint16(133), + 1166: uint16(133), + 1167: uint16(134), + 1168: uint16(134), + 1169: uint16(134), + 1170: uint16(134), + 1171: uint16(409), + 1172: uint16(408), + 1173: uint16(1511), + 1174: uint16(212), + 1175: uint16(132), + 1176: uint16(132), + 1177: uint16(132), + 1178: uint16(132), + 1179: uint16(131), + 1180: uint16(131), + 1181: uint16(130), + 1182: uint16(130), + 1183: uint16(130), + 1184: uint16(129), + 1185: uint16(126), + 1186: uint16(450), + 1187: uint16(411), + 1188: uint16(118), + 1189: uint16(1204), + 1190: uint16(116), + 1191: uint16(10), + 1192: uint16(352), + 1193: uint16(265), + 1194: uint16(355), + 1195: uint16(132), + 1196: uint16(132), + 1197: uint16(132), + 1198: uint16(132), + 1199: uint16(131), + 1200: uint16(131), + 1201: uint16(130), + 1202: uint16(130), + 1203: uint16(130), + 1204: uint16(129), + 1205: uint16(126), + 1206: uint16(450), + 1207: uint16(576), + 1208: uint16(324), + 1209: uint16(306), + 1210: uint16(576), + 1211: uint16(306), + 1212: uint16(1250), + 1213: uint16(469), + 1214: uint16(158), + 1215: uint16(132), + 1216: uint16(132), + 1217: uint16(132), + 1218: uint16(132), + 1219: uint16(131), + 1220: uint16(131), + 1221: uint16(130), + 1222: uint16(130), + 1223: uint16(130), + 1224: uint16(129), + 1225: uint16(126), + 1226: uint16(450), + 1227: uint16(207), + 1228: uint16(1224), + 1229: uint16(1126), + 1230: uint16(65), + 1231: uint16(65), + 1232: uint16(470), + 1233: uint16(66), + 1234: uint16(66), + 1235: uint16(412), + 1236: uint16(447), + 1237: uint16(446), + 1238: uint16(882), + 1239: uint16(531), + 1240: uint16(335), + 1241: uint16(258), + 1242: uint16(257), + 1243: uint16(256), + 1244: uint16(1127), + 1245: uint16(1233), + 1246: uint16(1204), + 1247: uint16(1205), + 1248: uint16(1204), + 1249: uint16(327), + 1250: uint16(1235), + 1251: uint16(874), + 1252: uint16(159), + 1253: uint16(576), + 1254: uint16(16), + 1255: uint16(480), + 1256: uint16(1085), + 1257: uint16(1040), + 1258: uint16(1234), + 1259: uint16(1128), + 1260: uint16(136), + 1261: uint16(90), + 1262: uint16(1228), + 1263: uint16(1228), + 1264: uint16(1063), + 1265: uint16(1066), + 1266: uint16(1053), + 1267: uint16(1053), + 1268: uint16(133), + 1269: uint16(133), + 1270: uint16(134), + 1271: uint16(134), + 1272: uint16(134), + 1273: uint16(134), + 1274: uint16(1029), + 1275: uint16(576), + 1276: uint16(81), + 1277: uint16(81), + 1278: uint16(1028), + 1279: uint16(1040), + 1280: uint16(922), + 1281: uint16(576), + 1282: uint16(463), + 1283: uint16(1236), + 1284: uint16(576), + 1285: uint16(1236), + 1286: uint16(1224), + 1287: uint16(502), + 1288: uint16(107), + 1289: uint16(1435), + 1290: uint16(923), + 1291: uint16(6), + 1292: uint16(576), + 1293: uint16(410), + 1294: uint16(1498), + 1295: uint16(882), + 1296: uint16(1029), + 1297: uint16(480), + 1298: uint16(21), + 1299: uint16(21), + 1300: uint16(1028), + 1301: uint16(332), + 1302: uint16(1380), + 1303: uint16(334), + 1304: uint16(53), + 1305: uint16(53), + 1306: uint16(497), + 1307: uint16(81), + 1308: uint16(81), + 1309: uint16(874), + 1310: uint16(1028), + 1311: uint16(1028), + 1312: uint16(1030), + 1313: uint16(445), + 1314: uint16(259), + 1315: uint16(19), + 1316: uint16(19), + 1317: uint16(533), + 1318: uint16(132), + 1319: uint16(132), + 1320: uint16(132), + 1321: uint16(132), + 1322: uint16(131), + 1323: uint16(131), + 1324: uint16(130), + 1325: uint16(130), + 1326: uint16(130), + 1327: uint16(129), + 1328: uint16(126), + 1329: uint16(450), + 1330: uint16(551), + 1331: uint16(301), + 1332: uint16(1028), + 1333: uint16(1028), + 1334: uint16(1030), + 1335: uint16(107), + 1336: uint16(532), + 1337: uint16(545), + 1338: uint16(121), + 1339: uint16(568), + 1340: uint16(1188), 1341: uint16(4), - 1342: uint16(238), - 1343: uint16(433), - 1344: uint16(935), - 1345: uint16(490), - 1346: uint16(285), - 1347: uint16(228), - 1348: uint16(1517), - 1349: uint16(934), - 1350: uint16(170), - 1351: uint16(560), - 1352: uint16(572), - 1353: uint16(142), - 1354: uint16(1516), - 1355: uint16(567), - 1356: uint16(572), - 1357: uint16(60), - 1358: uint16(60), - 1359: uint16(572), - 1360: uint16(416), - 1361: uint16(572), - 1362: uint16(441), - 1363: uint16(572), - 1364: uint16(535), - 1365: uint16(302), - 1366: uint16(875), - 1367: uint16(8), - 1368: uint16(487), - 1369: uint16(572), - 1370: uint16(237), - 1371: uint16(572), - 1372: uint16(416), - 1373: uint16(572), - 1374: uint16(485), - 1375: uint16(61), - 1376: uint16(61), - 1377: uint16(572), - 1378: uint16(449), - 1379: uint16(62), - 1380: uint16(62), - 1381: uint16(332), - 1382: uint16(63), - 1383: uint16(63), - 1384: uint16(46), - 1385: uint16(46), - 1386: uint16(47), - 1387: uint16(47), - 1388: uint16(361), - 1389: uint16(572), - 1390: uint16(561), - 1391: uint16(572), - 1392: uint16(48), - 1393: uint16(48), - 1394: uint16(50), - 1395: uint16(50), - 1396: uint16(51), - 1397: uint16(51), - 1398: uint16(572), - 1399: uint16(295), - 1400: uint16(64), - 1401: uint16(64), - 1402: uint16(482), - 1403: uint16(295), - 1404: uint16(539), - 1405: uint16(412), - 1406: uint16(471), - 1407: uint16(1031), - 1408: uint16(572), - 1409: uint16(538), - 1410: uint16(318), - 1411: uint16(563), - 1412: uint16(65), - 1413: uint16(65), - 1414: uint16(66), - 1415: uint16(66), - 1416: uint16(409), - 1417: uint16(475), - 1418: uint16(572), - 1419: uint16(1031), - 1420: uint16(572), - 1421: uint16(14), - 1422: uint16(14), - 1423: uint16(875), - 1424: uint16(1020), - 1425: uint16(110), - 1426: uint16(110), - 1427: uint16(409), - 1428: uint16(1019), - 1429: uint16(572), - 1430: uint16(474), - 1431: uint16(67), - 1432: uint16(67), - 1433: uint16(111), - 1434: uint16(455), - 1435: uint16(449), - 1436: uint16(573), - 1437: uint16(449), - 1438: uint16(98), - 1439: uint16(317), - 1440: uint16(1019), - 1441: uint16(132), - 1442: uint16(132), - 1443: uint16(133), - 1444: uint16(133), - 1445: uint16(572), - 1446: uint16(1561), - 1447: uint16(572), - 1448: uint16(974), - 1449: uint16(409), - 1450: uint16(6), - 1451: uint16(1562), - 1452: uint16(68), - 1453: uint16(68), - 1454: uint16(1560), - 1455: uint16(6), - 1456: uint16(975), - 1457: uint16(572), - 1458: uint16(6), - 1459: uint16(1559), - 1460: uint16(1019), - 1461: uint16(1019), - 1462: uint16(1021), - 1463: uint16(6), - 1464: uint16(346), - 1465: uint16(218), - 1466: uint16(101), - 1467: uint16(531), - 1468: uint16(53), - 1469: uint16(53), - 1470: uint16(69), - 1471: uint16(69), - 1472: uint16(1019), - 1473: uint16(1019), - 1474: uint16(1021), - 1475: uint16(1022), - 1476: uint16(28), - 1477: uint16(1586), - 1478: uint16(1181), - 1479: uint16(451), - 1480: uint16(70), - 1481: uint16(70), - 1482: uint16(290), - 1483: uint16(87), - 1484: uint16(215), - 1485: uint16(31), - 1486: uint16(1363), - 1487: uint16(394), - 1488: uint16(394), - 1489: uint16(393), - 1490: uint16(275), - 1491: uint16(391), - 1492: uint16(350), - 1493: uint16(109), - 1494: uint16(852), - 1495: uint16(107), - 1496: uint16(572), - 1497: uint16(112), - 1498: uint16(564), - 1499: uint16(483), - 1500: uint16(4), - 1501: uint16(1212), - 1502: uint16(572), - 1503: uint16(239), - 1504: uint16(153), - 1505: uint16(572), - 1506: uint16(39), - 1507: uint16(236), - 1508: uint16(1299), - 1509: uint16(325), - 1510: uint16(112), - 1511: uint16(564), - 1512: uint16(1298), - 1513: uint16(4), - 1514: uint16(567), - 1515: uint16(572), - 1516: uint16(32), - 1517: uint16(324), - 1518: uint16(572), - 1519: uint16(54), - 1520: uint16(54), - 1521: uint16(572), - 1522: uint16(1135), - 1523: uint16(353), - 1524: uint16(398), - 1525: uint16(165), - 1526: uint16(165), - 1527: uint16(567), - 1528: uint16(166), - 1529: uint16(166), - 1530: uint16(572), - 1531: uint16(291), - 1532: uint16(355), - 1533: uint16(572), - 1534: uint16(17), - 1535: uint16(357), - 1536: uint16(572), - 1537: uint16(449), - 1538: uint16(77), - 1539: uint16(77), - 1540: uint16(1313), - 1541: uint16(55), - 1542: uint16(55), - 1543: uint16(1297), - 1544: uint16(73), - 1545: uint16(73), - 1546: uint16(572), - 1547: uint16(238), - 1548: uint16(470), - 1549: uint16(561), - 1550: uint16(449), - 1551: uint16(472), - 1552: uint16(364), - 1553: uint16(135), - 1554: uint16(135), - 1555: uint16(170), - 1556: uint16(74), - 1557: uint16(74), - 1558: uint16(142), - 1559: uint16(163), - 1560: uint16(163), - 1561: uint16(374), - 1562: uint16(561), - 1563: uint16(539), - 1564: uint16(572), - 1565: uint16(321), - 1566: uint16(572), - 1567: uint16(886), - 1568: uint16(540), - 1569: uint16(137), - 1570: uint16(137), - 1571: uint16(339), - 1572: uint16(1353), - 1573: uint16(422), - 1574: uint16(298), - 1575: uint16(237), - 1576: uint16(539), - 1577: uint16(572), - 1578: uint16(1031), - 1579: uint16(572), - 1580: uint16(340), - 1581: uint16(538), - 1582: uint16(101), - 1583: uint16(369), - 1584: uint16(110), - 1585: uint16(110), - 1586: uint16(162), - 1587: uint16(131), - 1588: uint16(131), - 1589: uint16(164), - 1590: uint16(164), - 1591: uint16(1031), - 1592: uint16(111), - 1593: uint16(368), - 1594: uint16(449), - 1595: uint16(573), - 1596: uint16(449), + 1342: uint16(1126), + 1343: uint16(1576), + 1344: uint16(449), + 1345: uint16(576), + 1346: uint16(462), + 1347: uint16(7), + 1348: uint16(1282), + 1349: uint16(418), + 1350: uint16(462), + 1351: uint16(350), + 1352: uint16(1435), + 1353: uint16(576), + 1354: uint16(518), + 1355: uint16(571), + 1356: uint16(544), + 1357: uint16(1127), + 1358: uint16(121), + 1359: uint16(568), + 1360: uint16(442), + 1361: uint16(4), + 1362: uint16(1188), + 1363: uint16(464), + 1364: uint16(533), + 1365: uint16(1180), + 1366: uint16(1223), + 1367: uint16(9), + 1368: uint16(67), + 1369: uint16(67), + 1370: uint16(487), + 1371: uint16(576), + 1372: uint16(1128), + 1373: uint16(303), + 1374: uint16(410), + 1375: uint16(571), + 1376: uint16(54), + 1377: uint16(54), + 1378: uint16(451), + 1379: uint16(576), + 1380: uint16(123), + 1381: uint16(944), + 1382: uint16(576), + 1383: uint16(417), + 1384: uint16(576), + 1385: uint16(333), + 1386: uint16(943), + 1387: uint16(1379), + 1388: uint16(576), + 1389: uint16(236), + 1390: uint16(565), + 1391: uint16(576), + 1392: uint16(1574), + 1393: uint16(564), + 1394: uint16(68), + 1395: uint16(68), + 1396: uint16(7), + 1397: uint16(576), + 1398: uint16(451), + 1399: uint16(362), + 1400: uint16(419), + 1401: uint16(182), + 1402: uint16(69), + 1403: uint16(69), + 1404: uint16(541), + 1405: uint16(70), + 1406: uint16(70), + 1407: uint16(71), + 1408: uint16(71), + 1409: uint16(540), + 1410: uint16(565), + 1411: uint16(72), + 1412: uint16(72), + 1413: uint16(484), + 1414: uint16(55), + 1415: uint16(55), + 1416: uint16(473), + 1417: uint16(1180), + 1418: uint16(296), + 1419: uint16(1040), + 1420: uint16(56), + 1421: uint16(56), + 1422: uint16(296), + 1423: uint16(493), + 1424: uint16(541), + 1425: uint16(119), + 1426: uint16(119), + 1427: uint16(410), + 1428: uint16(1573), + 1429: uint16(542), + 1430: uint16(569), + 1431: uint16(418), + 1432: uint16(7), + 1433: uint16(120), + 1434: uint16(1244), + 1435: uint16(451), + 1436: uint16(577), + 1437: uint16(451), + 1438: uint16(465), + 1439: uint16(1040), + 1440: uint16(1028), + 1441: uint16(576), + 1442: uint16(1557), + 1443: uint16(552), + 1444: uint16(476), + 1445: uint16(119), + 1446: uint16(119), + 1447: uint16(527), + 1448: uint16(259), + 1449: uint16(121), + 1450: uint16(568), + 1451: uint16(240), + 1452: uint16(4), + 1453: uint16(120), + 1454: uint16(576), + 1455: uint16(451), + 1456: uint16(577), + 1457: uint16(451), + 1458: uint16(576), + 1459: uint16(477), + 1460: uint16(1028), + 1461: uint16(576), + 1462: uint16(156), + 1463: uint16(576), + 1464: uint16(57), + 1465: uint16(57), + 1466: uint16(571), + 1467: uint16(576), + 1468: uint16(286), + 1469: uint16(229), + 1470: uint16(410), + 1471: uint16(336), + 1472: uint16(1028), + 1473: uint16(1028), + 1474: uint16(1030), + 1475: uint16(1031), + 1476: uint16(35), + 1477: uint16(59), + 1478: uint16(59), + 1479: uint16(219), + 1480: uint16(983), + 1481: uint16(60), + 1482: uint16(60), + 1483: uint16(220), + 1484: uint16(73), + 1485: uint16(73), + 1486: uint16(74), + 1487: uint16(74), + 1488: uint16(984), + 1489: uint16(451), + 1490: uint16(75), + 1491: uint16(75), + 1492: uint16(1028), + 1493: uint16(1028), + 1494: uint16(1030), + 1495: uint16(1031), + 1496: uint16(35), + 1497: uint16(96), + 1498: uint16(216), + 1499: uint16(291), + 1500: uint16(552), + 1501: uint16(565), + 1502: uint16(1188), + 1503: uint16(318), + 1504: uint16(395), + 1505: uint16(395), + 1506: uint16(394), + 1507: uint16(276), + 1508: uint16(392), + 1509: uint16(576), + 1510: uint16(485), + 1511: uint16(859), + 1512: uint16(474), + 1513: uint16(1311), + 1514: uint16(410), + 1515: uint16(541), + 1516: uint16(576), + 1517: uint16(417), + 1518: uint16(1530), + 1519: uint16(1144), + 1520: uint16(540), + 1521: uint16(399), + 1522: uint16(1188), + 1523: uint16(292), + 1524: uint16(237), + 1525: uint16(1153), + 1526: uint16(326), + 1527: uint16(38), + 1528: uint16(23), + 1529: uint16(576), + 1530: uint16(1040), + 1531: uint16(576), + 1532: uint16(20), + 1533: uint16(20), + 1534: uint16(325), + 1535: uint16(299), + 1536: uint16(119), + 1537: uint16(119), + 1538: uint16(164), + 1539: uint16(76), + 1540: uint16(76), + 1541: uint16(1529), + 1542: uint16(121), + 1543: uint16(568), + 1544: uint16(120), + 1545: uint16(4), + 1546: uint16(451), + 1547: uint16(577), + 1548: uint16(451), + 1549: uint16(203), + 1550: uint16(576), + 1551: uint16(1028), + 1552: uint16(141), + 1553: uint16(141), + 1554: uint16(142), + 1555: uint16(142), + 1556: uint16(576), + 1557: uint16(322), + 1558: uint16(39), + 1559: uint16(571), + 1560: uint16(341), + 1561: uint16(1021), + 1562: uint16(110), + 1563: uint16(264), + 1564: uint16(239), + 1565: uint16(901), + 1566: uint16(900), + 1567: uint16(423), + 1568: uint16(242), + 1569: uint16(908), + 1570: uint16(909), + 1571: uint16(370), + 1572: uint16(173), + 1573: uint16(77), + 1574: uint16(77), + 1575: uint16(43), + 1576: uint16(479), + 1577: uint16(1310), + 1578: uint16(264), + 1579: uint16(62), + 1580: uint16(62), + 1581: uint16(369), + 1582: uint16(451), + 1583: uint16(1028), + 1584: uint16(1028), + 1585: uint16(1030), + 1586: uint16(1031), + 1587: uint16(35), + 1588: uint16(1601), + 1589: uint16(1192), + 1590: uint16(453), + 1591: uint16(1092), + 1592: uint16(238), + 1593: uint16(291), + 1594: uint16(565), + 1595: uint16(163), + 1596: uint16(1309), 1597: uint16(110), - 1598: uint16(110), - 1599: uint16(1019), - 1600: uint16(157), - 1601: uint16(157), - 1602: uint16(141), - 1603: uint16(141), - 1604: uint16(572), - 1605: uint16(111), - 1606: uint16(572), - 1607: uint16(449), - 1608: uint16(573), - 1609: uint16(449), - 1610: uint16(412), - 1611: uint16(288), - 1612: uint16(1019), - 1613: uint16(572), - 1614: uint16(882), - 1615: uint16(318), - 1616: uint16(563), - 1617: uint16(572), - 1618: uint16(219), - 1619: uint16(572), - 1620: uint16(241), - 1621: uint16(1012), - 1622: uint16(477), - 1623: uint16(263), - 1624: uint16(263), - 1625: uint16(894), - 1626: uint16(893), - 1627: uint16(140), - 1628: uint16(140), - 1629: uint16(138), - 1630: uint16(138), - 1631: uint16(1019), - 1632: uint16(1019), - 1633: uint16(1021), - 1634: uint16(1022), - 1635: uint16(28), - 1636: uint16(139), - 1637: uint16(139), - 1638: uint16(525), - 1639: uint16(455), - 1640: uint16(76), - 1641: uint16(76), - 1642: uint16(78), - 1643: uint16(78), - 1644: uint16(1019), - 1645: uint16(1019), - 1646: uint16(1021), - 1647: uint16(1022), - 1648: uint16(28), - 1649: uint16(1181), - 1650: uint16(451), - 1651: uint16(572), - 1652: uint16(1083), - 1653: uint16(290), - 1654: uint16(112), - 1655: uint16(564), - 1656: uint16(1575), - 1657: uint16(4), - 1658: uint16(394), - 1659: uint16(394), - 1660: uint16(393), - 1661: uint16(275), - 1662: uint16(391), - 1663: uint16(572), - 1664: uint16(1023), - 1665: uint16(852), - 1666: uint16(572), - 1667: uint16(479), - 1668: uint16(345), - 1669: uint16(263), - 1670: uint16(101), - 1671: uint16(567), - 1672: uint16(882), - 1673: uint16(1376), - 1674: uint16(75), - 1675: uint16(75), - 1676: uint16(1421), - 1677: uint16(501), - 1678: uint16(236), - 1679: uint16(260), - 1680: uint16(325), - 1681: uint16(112), - 1682: uint16(564), - 1683: uint16(359), - 1684: uint16(4), - 1685: uint16(101), - 1686: uint16(43), - 1687: uint16(43), - 1688: uint16(324), - 1689: uint16(49), - 1690: uint16(49), - 1691: uint16(901), - 1692: uint16(902), - 1693: uint16(161), - 1694: uint16(449), - 1695: uint16(101), - 1696: uint16(977), - 1697: uint16(978), - 1698: uint16(567), - 1699: uint16(1079), - 1700: uint16(1349), - 1701: uint16(260), - 1702: uint16(965), - 1703: uint16(932), - 1704: uint16(263), - 1705: uint16(114), - 1706: uint16(561), - 1707: uint16(1095), - 1708: uint16(517), - 1709: uint16(1095), - 1710: uint16(1083), - 1711: uint16(1094), - 1712: uint16(865), - 1713: uint16(1094), - 1714: uint16(151), - 1715: uint16(933), - 1716: uint16(1144), - 1717: uint16(114), - 1718: uint16(238), - 1719: uint16(1361), - 1720: uint16(558), - 1721: uint16(449), - 1722: uint16(1023), - 1723: uint16(559), - 1724: uint16(1426), - 1725: uint16(1278), - 1726: uint16(170), - 1727: uint16(1269), - 1728: uint16(1257), - 1729: uint16(142), - 1730: uint16(1601), - 1731: uint16(1256), - 1732: uint16(1258), - 1733: uint16(561), - 1734: uint16(1594), - 1735: uint16(1031), - 1736: uint16(496), - 1737: uint16(278), - 1738: uint16(213), - 1739: uint16(1346), - 1740: uint16(310), - 1741: uint16(110), - 1742: uint16(110), - 1743: uint16(939), - 1744: uint16(311), - 1745: uint16(312), - 1746: uint16(237), - 1747: uint16(11), - 1748: uint16(234), - 1749: uint16(111), - 1750: uint16(221), - 1751: uint16(449), - 1752: uint16(573), - 1753: uint16(449), - 1754: uint16(293), - 1755: uint16(395), - 1756: uint16(1019), - 1757: uint16(1408), - 1758: uint16(337), - 1759: uint16(1403), - 1760: uint16(1396), - 1761: uint16(338), - 1762: uint16(1031), - 1763: uint16(299), - 1764: uint16(343), - 1765: uint16(1413), - 1766: uint16(1412), - 1767: uint16(481), - 1768: uint16(110), - 1769: uint16(110), - 1770: uint16(506), - 1771: uint16(402), - 1772: uint16(225), - 1773: uint16(1296), - 1774: uint16(206), - 1775: uint16(367), - 1776: uint16(111), - 1777: uint16(1358), - 1778: uint16(449), - 1779: uint16(573), - 1780: uint16(449), - 1781: uint16(412), - 1782: uint16(1359), - 1783: uint16(1019), - 1784: uint16(1489), - 1785: uint16(1488), - 1786: uint16(318), - 1787: uint16(563), - 1788: uint16(1019), - 1789: uint16(1019), - 1790: uint16(1021), - 1791: uint16(1022), - 1792: uint16(28), - 1793: uint16(562), - 1794: uint16(207), - 1795: uint16(220), - 1796: uint16(80), - 1797: uint16(564), - 1798: uint16(389), - 1799: uint16(4), - 1800: uint16(1597), - 1801: uint16(1357), - 1802: uint16(552), - 1803: uint16(1356), - 1804: uint16(1233), - 1805: uint16(181), - 1806: uint16(267), - 1807: uint16(232), - 1808: uint16(1536), - 1809: uint16(1534), - 1810: uint16(455), - 1811: uint16(1230), - 1812: uint16(420), - 1813: uint16(567), - 1814: uint16(82), - 1815: uint16(1019), - 1816: uint16(1019), - 1817: uint16(1021), - 1818: uint16(1022), - 1819: uint16(28), - 1820: uint16(86), - 1821: uint16(217), - 1822: uint16(85), - 1823: uint16(1494), - 1824: uint16(190), - 1825: uint16(175), - 1826: uint16(183), - 1827: uint16(465), - 1828: uint16(185), - 1829: uint16(466), - 1830: uint16(36), - 1831: uint16(1409), - 1832: uint16(186), - 1833: uint16(187), - 1834: uint16(188), - 1835: uint16(499), - 1836: uint16(449), - 1837: uint16(244), - 1838: uint16(37), - 1839: uint16(99), - 1840: uint16(400), - 1841: uint16(1415), - 1842: uint16(1414), - 1843: uint16(488), - 1844: uint16(1417), - 1845: uint16(194), - 1846: uint16(473), - 1847: uint16(403), - 1848: uint16(561), - 1849: uint16(1483), - 1850: uint16(248), - 1851: uint16(92), - 1852: uint16(1505), - 1853: uint16(494), - 1854: uint16(198), - 1855: uint16(279), - 1856: uint16(112), - 1857: uint16(564), - 1858: uint16(250), - 1859: uint16(4), - 1860: uint16(348), - 1861: uint16(497), - 1862: uint16(405), - 1863: uint16(352), - 1864: uint16(1259), - 1865: uint16(251), - 1866: uint16(252), - 1867: uint16(515), - 1868: uint16(1316), - 1869: uint16(434), - 1870: uint16(1315), - 1871: uint16(1314), - 1872: uint16(94), - 1873: uint16(567), - 1874: uint16(1307), - 1875: uint16(886), - 1876: uint16(1306), - 1877: uint16(1031), - 1878: uint16(226), - 1879: uint16(406), - 1880: uint16(1611), - 1881: uint16(1610), - 1882: uint16(438), - 1883: uint16(110), - 1884: uint16(110), - 1885: uint16(1580), - 1886: uint16(1286), - 1887: uint16(524), - 1888: uint16(439), - 1889: uint16(308), - 1890: uint16(266), - 1891: uint16(111), - 1892: uint16(1285), - 1893: uint16(449), - 1894: uint16(573), - 1895: uint16(449), - 1896: uint16(449), - 1897: uint16(309), - 1898: uint16(1019), - 1899: uint16(366), - 1900: uint16(1284), - 1901: uint16(1609), - 1902: uint16(265), - 1903: uint16(1566), - 1904: uint16(1565), - 1905: uint16(442), - 1906: uint16(372), - 1907: uint16(1381), - 1908: uint16(561), - 1909: uint16(129), - 1910: uint16(550), - 1911: uint16(1380), - 1912: uint16(10), - 1913: uint16(1470), - 1914: uint16(383), - 1915: uint16(106), - 1916: uint16(316), - 1917: uint16(551), - 1918: uint16(100), - 1919: uint16(35), - 1920: uint16(534), - 1921: uint16(575), - 1922: uint16(212), - 1923: uint16(1339), - 1924: uint16(381), - 1925: uint16(387), - 1926: uint16(1187), - 1927: uint16(1338), - 1928: uint16(274), - 1929: uint16(276), - 1930: uint16(1019), - 1931: uint16(1019), - 1932: uint16(1021), - 1933: uint16(1022), - 1934: uint16(28), - 1935: uint16(277), - 1936: uint16(413), - 1937: uint16(1031), - 1938: uint16(576), - 1939: uint16(1254), - 1940: uint16(388), - 1941: uint16(1521), - 1942: uint16(1249), - 1943: uint16(110), - 1944: uint16(110), - 1945: uint16(167), - 1946: uint16(1522), - 1947: uint16(168), - 1948: uint16(148), - 1949: uint16(1520), - 1950: uint16(1519), - 1951: uint16(111), - 1952: uint16(306), - 1953: uint16(449), - 1954: uint16(573), - 1955: uint16(449), - 1956: uint16(222), - 1957: uint16(223), - 1958: uint16(1019), - 1959: uint16(839), - 1960: uint16(169), - 1961: uint16(79), - 1962: uint16(450), - 1963: uint16(214), - 1964: uint16(414), - 1965: uint16(233), - 1966: uint16(320), - 1967: uint16(145), - 1968: uint16(1093), - 1969: uint16(1091), - 1970: uint16(328), - 1971: uint16(182), - 1972: uint16(171), - 1973: uint16(1212), - 1974: uint16(918), - 1975: uint16(184), - 1976: uint16(240), - 1977: uint16(336), - 1978: uint16(243), - 1979: uint16(1107), - 1980: uint16(189), - 1981: uint16(172), - 1982: uint16(173), - 1983: uint16(423), - 1984: uint16(425), - 1985: uint16(88), - 1986: uint16(180), - 1987: uint16(191), - 1988: uint16(89), - 1989: uint16(90), - 1990: uint16(1019), - 1991: uint16(1019), - 1992: uint16(1021), - 1993: uint16(1022), - 1994: uint16(28), - 1995: uint16(91), - 1996: uint16(174), - 1997: uint16(1110), - 1998: uint16(245), - 1999: uint16(1106), - 2000: uint16(246), - 2001: uint16(159), - 2002: uint16(18), - 2003: uint16(247), - 2004: uint16(347), - 2005: uint16(1099), - 2006: uint16(263), - 2007: uint16(195), - 2008: uint16(1227), - 2009: uint16(493), - 2010: uint16(249), - 2011: uint16(196), - 2012: uint16(38), - 2013: uint16(854), - 2014: uint16(498), - 2015: uint16(368), - 2016: uint16(253), - 2017: uint16(360), - 2018: uint16(897), - 2019: uint16(197), - 2020: uint16(502), - 2021: uint16(93), - 2022: uint16(19), - 2023: uint16(20), - 2024: uint16(507), - 2025: uint16(884), - 2026: uint16(363), - 2027: uint16(510), - 2028: uint16(95), - 2029: uint16(307), - 2030: uint16(160), - 2031: uint16(96), - 2032: uint16(518), - 2033: uint16(97), - 2034: uint16(1175), - 2035: uint16(1060), - 2036: uint16(1146), - 2037: uint16(40), - 2038: uint16(21), - 2039: uint16(227), - 2040: uint16(176), - 2041: uint16(1145), - 2042: uint16(282), - 2043: uint16(284), - 2044: uint16(969), - 2045: uint16(200), - 2046: uint16(963), - 2047: uint16(114), - 2048: uint16(262), - 2049: uint16(1165), - 2050: uint16(22), - 2051: uint16(23), - 2052: uint16(24), - 2053: uint16(1161), - 2054: uint16(1169), - 2055: uint16(25), - 2056: uint16(1163), - 2057: uint16(1150), - 2058: uint16(34), - 2059: uint16(26), - 2060: uint16(1168), - 2061: uint16(546), - 2062: uint16(27), - 2063: uint16(204), - 2064: uint16(101), - 2065: uint16(103), - 2066: uint16(104), - 2067: uint16(1074), - 2068: uint16(7), - 2069: uint16(1061), - 2070: uint16(1059), - 2071: uint16(1063), - 2072: uint16(1116), - 2073: uint16(1064), - 2074: uint16(1115), - 2075: uint16(268), - 2076: uint16(269), - 2077: uint16(29), - 2078: uint16(41), - 2079: uint16(270), - 2080: uint16(1024), - 2081: uint16(866), - 2082: uint16(113), - 2083: uint16(30), - 2084: uint16(568), - 2085: uint16(392), - 2086: uint16(1183), - 2087: uint16(144), - 2088: uint16(178), - 2089: uint16(1182), - 2090: uint16(271), - 2091: uint16(928), - 2092: uint16(1245), - 2093: uint16(1245), - 2094: uint16(1245), - 2095: uint16(1245), - 2096: uint16(1245), - 2097: uint16(1245), - 2098: uint16(1245), - 2099: uint16(1602), -} -var _yy_lookahead = [2285]uint16{ - 0: uint16(193), - 1: uint16(193), - 2: uint16(193), - 3: uint16(274), - 4: uint16(275), - 5: uint16(276), - 6: uint16(193), - 7: uint16(274), - 8: uint16(275), - 9: uint16(276), - 10: uint16(193), - 11: uint16(223), - 12: uint16(219), - 13: uint16(225), - 14: uint16(206), - 15: uint16(210), - 16: uint16(211), - 17: uint16(212), - 18: uint16(193), + 1598: uint16(395), + 1599: uint16(395), + 1600: uint16(394), + 1601: uint16(276), + 1602: uint16(392), + 1603: uint16(986), + 1604: uint16(987), + 1605: uint16(859), + 1606: uint16(481), + 1607: uint16(346), + 1608: uint16(264), + 1609: uint16(110), + 1610: uint16(1032), + 1611: uint16(489), + 1612: uint16(576), + 1613: uint16(1188), + 1614: uint16(503), + 1615: uint16(1088), + 1616: uint16(261), + 1617: uint16(261), + 1618: uint16(237), + 1619: uint16(576), + 1620: uint16(326), + 1621: uint16(121), + 1622: uint16(568), + 1623: uint16(1040), + 1624: uint16(4), + 1625: uint16(347), + 1626: uint16(1376), + 1627: uint16(413), + 1628: uint16(325), + 1629: uint16(119), + 1630: uint16(119), + 1631: uint16(948), + 1632: uint16(319), + 1633: uint16(567), + 1634: uint16(351), + 1635: uint16(78), + 1636: uint16(78), + 1637: uint16(120), + 1638: uint16(571), + 1639: uint16(451), + 1640: uint16(577), + 1641: uint16(451), + 1642: uint16(79), + 1643: uint16(79), + 1644: uint16(1028), + 1645: uint16(354), + 1646: uint16(356), + 1647: uint16(576), + 1648: uint16(360), + 1649: uint16(1092), + 1650: uint16(110), + 1651: uint16(576), + 1652: uint16(974), + 1653: uint16(942), + 1654: uint16(264), + 1655: uint16(123), + 1656: uint16(457), + 1657: uint16(358), + 1658: uint16(239), + 1659: uint16(576), + 1660: uint16(519), + 1661: uint16(451), + 1662: uint16(939), + 1663: uint16(1104), + 1664: uint16(123), + 1665: uint16(1104), + 1666: uint16(173), + 1667: uint16(576), + 1668: uint16(1032), + 1669: uint16(43), + 1670: uint16(63), + 1671: uint16(63), + 1672: uint16(1324), + 1673: uint16(565), + 1674: uint16(168), + 1675: uint16(168), + 1676: uint16(1028), + 1677: uint16(1028), + 1678: uint16(1030), + 1679: uint16(1031), + 1680: uint16(35), + 1681: uint16(576), + 1682: uint16(169), + 1683: uint16(169), + 1684: uint16(1308), + 1685: uint16(872), + 1686: uint16(238), + 1687: uint16(157), + 1688: uint16(1589), + 1689: uint16(576), + 1690: uint16(86), + 1691: uint16(86), + 1692: uint16(365), + 1693: uint16(89), + 1694: uint16(568), + 1695: uint16(375), + 1696: uint16(4), + 1697: uint16(1103), + 1698: uint16(941), + 1699: uint16(1103), + 1700: uint16(123), + 1701: uint16(576), + 1702: uint16(1040), + 1703: uint16(1389), + 1704: uint16(64), + 1705: uint16(64), + 1706: uint16(1188), + 1707: uint16(1434), + 1708: uint16(119), + 1709: uint16(119), + 1710: uint16(571), + 1711: uint16(576), + 1712: uint16(82), + 1713: uint16(82), + 1714: uint16(563), + 1715: uint16(576), + 1716: uint16(120), + 1717: uint16(165), + 1718: uint16(451), + 1719: uint16(577), + 1720: uint16(451), + 1721: uint16(413), + 1722: uint16(1362), + 1723: uint16(1028), + 1724: uint16(144), + 1725: uint16(144), + 1726: uint16(319), + 1727: uint16(567), + 1728: uint16(576), + 1729: uint16(1374), + 1730: uint16(562), + 1731: uint16(498), + 1732: uint16(279), + 1733: uint16(451), + 1734: uint16(83), + 1735: uint16(83), + 1736: uint16(1439), + 1737: uint16(576), + 1738: uint16(166), + 1739: uint16(166), + 1740: uint16(576), + 1741: uint16(1289), + 1742: uint16(554), + 1743: uint16(576), + 1744: uint16(1280), + 1745: uint16(565), + 1746: uint16(576), + 1747: uint16(12), + 1748: uint16(576), + 1749: uint16(1268), + 1750: uint16(457), + 1751: uint16(146), + 1752: uint16(146), + 1753: uint16(1267), + 1754: uint16(576), + 1755: uint16(1028), + 1756: uint16(1028), + 1757: uint16(1030), + 1758: uint16(1031), + 1759: uint16(35), + 1760: uint16(140), + 1761: uint16(140), + 1762: uint16(1269), + 1763: uint16(167), + 1764: uint16(167), + 1765: uint16(1609), + 1766: uint16(160), + 1767: uint16(160), + 1768: uint16(1359), + 1769: uint16(150), + 1770: uint16(150), + 1771: uint16(149), + 1772: uint16(149), + 1773: uint16(311), + 1774: uint16(1040), + 1775: uint16(576), + 1776: uint16(312), + 1777: uint16(147), + 1778: uint16(147), + 1779: uint16(313), + 1780: uint16(119), + 1781: uint16(119), + 1782: uint16(222), + 1783: uint16(235), + 1784: uint16(576), + 1785: uint16(1188), + 1786: uint16(396), + 1787: uint16(576), + 1788: uint16(120), + 1789: uint16(576), + 1790: uint16(451), + 1791: uint16(577), + 1792: uint16(451), + 1793: uint16(1192), + 1794: uint16(453), + 1795: uint16(1028), + 1796: uint16(508), + 1797: uint16(291), + 1798: uint16(148), + 1799: uint16(148), + 1800: uint16(1421), + 1801: uint16(1612), + 1802: uint16(395), + 1803: uint16(395), + 1804: uint16(394), + 1805: uint16(276), + 1806: uint16(392), + 1807: uint16(85), + 1808: uint16(85), + 1809: uint16(859), + 1810: uint16(87), + 1811: uint16(87), + 1812: uint16(84), + 1813: uint16(84), + 1814: uint16(553), + 1815: uint16(576), + 1816: uint16(294), + 1817: uint16(576), + 1818: uint16(1426), + 1819: uint16(338), + 1820: uint16(339), + 1821: uint16(1425), + 1822: uint16(237), + 1823: uint16(300), + 1824: uint16(326), + 1825: uint16(1416), + 1826: uint16(1409), + 1827: uint16(1028), + 1828: uint16(1028), + 1829: uint16(1030), + 1830: uint16(1031), + 1831: uint16(35), + 1832: uint16(325), + 1833: uint16(344), + 1834: uint16(403), + 1835: uint16(483), + 1836: uint16(226), + 1837: uint16(1307), + 1838: uint16(52), + 1839: uint16(52), + 1840: uint16(58), + 1841: uint16(58), + 1842: uint16(368), + 1843: uint16(1371), + 1844: uint16(1502), + 1845: uint16(566), + 1846: uint16(1501), + 1847: uint16(121), + 1848: uint16(568), + 1849: uint16(221), + 1850: uint16(4), + 1851: uint16(208), + 1852: uint16(268), + 1853: uint16(209), + 1854: uint16(390), + 1855: uint16(1244), + 1856: uint16(1549), + 1857: uint16(1188), + 1858: uint16(1372), + 1859: uint16(1370), + 1860: uint16(1369), + 1861: uint16(1547), + 1862: uint16(239), + 1863: uint16(184), + 1864: uint16(571), + 1865: uint16(233), + 1866: uint16(421), + 1867: uint16(1241), + 1868: uint16(95), + 1869: uint16(218), + 1870: uint16(173), + 1871: uint16(1507), + 1872: uint16(193), + 1873: uint16(43), + 1874: uint16(91), + 1875: uint16(94), + 1876: uint16(178), + 1877: uint16(186), + 1878: uint16(467), + 1879: uint16(188), + 1880: uint16(468), + 1881: uint16(1422), + 1882: uint16(13), + 1883: uint16(189), + 1884: uint16(190), + 1885: uint16(191), + 1886: uint16(501), + 1887: uint16(451), + 1888: uint16(245), + 1889: uint16(108), + 1890: uint16(238), + 1891: uint16(401), + 1892: uint16(1428), + 1893: uint16(1427), + 1894: uint16(1430), + 1895: uint16(475), + 1896: uint16(404), + 1897: uint16(1496), + 1898: uint16(197), + 1899: uint16(565), + 1900: uint16(14), + 1901: uint16(490), + 1902: uint16(249), + 1903: uint16(101), + 1904: uint16(1518), + 1905: uint16(496), + 1906: uint16(349), + 1907: uint16(280), + 1908: uint16(251), + 1909: uint16(201), + 1910: uint16(353), + 1911: uint16(499), + 1912: uint16(252), + 1913: uint16(406), + 1914: uint16(1270), + 1915: uint16(253), + 1916: uint16(517), + 1917: uint16(1327), + 1918: uint16(1326), + 1919: uint16(435), + 1920: uint16(1325), + 1921: uint16(1318), + 1922: uint16(103), + 1923: uint16(893), + 1924: uint16(1296), + 1925: uint16(413), + 1926: uint16(227), + 1927: uint16(407), + 1928: uint16(1040), + 1929: uint16(1626), + 1930: uint16(319), + 1931: uint16(567), + 1932: uint16(1625), + 1933: uint16(1297), + 1934: uint16(119), + 1935: uint16(119), + 1936: uint16(439), + 1937: uint16(367), + 1938: uint16(1317), + 1939: uint16(1295), + 1940: uint16(1624), + 1941: uint16(526), + 1942: uint16(120), + 1943: uint16(440), + 1944: uint16(451), + 1945: uint16(577), + 1946: uint16(451), + 1947: uint16(1594), + 1948: uint16(309), + 1949: uint16(1028), + 1950: uint16(310), + 1951: uint16(373), + 1952: uint16(266), + 1953: uint16(267), + 1954: uint16(457), + 1955: uint16(1580), + 1956: uint16(1579), + 1957: uint16(443), + 1958: uint16(138), + 1959: uint16(1394), + 1960: uint16(552), + 1961: uint16(1393), + 1962: uint16(11), + 1963: uint16(1483), + 1964: uint16(384), + 1965: uint16(115), + 1966: uint16(317), + 1967: uint16(1350), + 1968: uint16(109), + 1969: uint16(536), + 1970: uint16(42), + 1971: uint16(579), + 1972: uint16(382), + 1973: uint16(214), + 1974: uint16(1349), + 1975: uint16(388), + 1976: uint16(1198), + 1977: uint16(389), + 1978: uint16(275), + 1979: uint16(277), + 1980: uint16(278), + 1981: uint16(1028), + 1982: uint16(1028), + 1983: uint16(1030), + 1984: uint16(1031), + 1985: uint16(35), + 1986: uint16(580), + 1987: uint16(1265), + 1988: uint16(414), + 1989: uint16(1260), + 1990: uint16(170), + 1991: uint16(415), + 1992: uint16(183), + 1993: uint16(1534), + 1994: uint16(1535), + 1995: uint16(1533), + 1996: uint16(171), + 1997: uint16(154), + 1998: uint16(307), + 1999: uint16(1532), + 2000: uint16(846), + 2001: uint16(223), + 2002: uint16(224), + 2003: uint16(88), + 2004: uint16(452), + 2005: uint16(215), + 2006: uint16(172), + 2007: uint16(321), + 2008: uint16(234), + 2009: uint16(1102), + 2010: uint16(152), + 2011: uint16(1188), + 2012: uint16(1100), + 2013: uint16(329), + 2014: uint16(185), + 2015: uint16(174), + 2016: uint16(1223), + 2017: uint16(925), + 2018: uint16(187), + 2019: uint16(241), + 2020: uint16(337), + 2021: uint16(244), + 2022: uint16(1116), + 2023: uint16(192), + 2024: uint16(175), + 2025: uint16(176), + 2026: uint16(424), + 2027: uint16(426), + 2028: uint16(97), + 2029: uint16(194), + 2030: uint16(98), + 2031: uint16(99), + 2032: uint16(100), + 2033: uint16(177), + 2034: uint16(1119), + 2035: uint16(1115), + 2036: uint16(246), + 2037: uint16(247), + 2038: uint16(161), + 2039: uint16(24), + 2040: uint16(248), + 2041: uint16(348), + 2042: uint16(1238), + 2043: uint16(264), + 2044: uint16(1108), + 2045: uint16(250), + 2046: uint16(495), + 2047: uint16(199), + 2048: uint16(198), + 2049: uint16(15), + 2050: uint16(861), + 2051: uint16(500), + 2052: uint16(369), + 2053: uint16(254), + 2054: uint16(504), + 2055: uint16(509), + 2056: uint16(512), + 2057: uint16(200), + 2058: uint16(102), + 2059: uint16(25), + 2060: uint16(179), + 2061: uint16(361), + 2062: uint16(26), + 2063: uint16(364), + 2064: uint16(104), + 2065: uint16(891), + 2066: uint16(308), + 2067: uint16(162), + 2068: uint16(105), + 2069: uint16(904), + 2070: uint16(520), + 2071: uint16(106), + 2072: uint16(1185), + 2073: uint16(1069), + 2074: uint16(1155), + 2075: uint16(17), + 2076: uint16(228), + 2077: uint16(27), + 2078: uint16(1154), + 2079: uint16(283), + 2080: uint16(285), + 2081: uint16(263), + 2082: uint16(978), + 2083: uint16(202), + 2084: uint16(972), + 2085: uint16(123), + 2086: uint16(28), + 2087: uint16(1175), + 2088: uint16(29), + 2089: uint16(30), + 2090: uint16(1179), + 2091: uint16(1171), + 2092: uint16(31), + 2093: uint16(1173), + 2094: uint16(1160), + 2095: uint16(41), + 2096: uint16(32), + 2097: uint16(206), + 2098: uint16(548), + 2099: uint16(33), + 2100: uint16(110), + 2101: uint16(1178), + 2102: uint16(1083), + 2103: uint16(8), + 2104: uint16(112), + 2105: uint16(1070), + 2106: uint16(113), + 2107: uint16(1068), + 2108: uint16(1072), + 2109: uint16(34), + 2110: uint16(1073), + 2111: uint16(560), + 2112: uint16(1125), + 2113: uint16(269), + 2114: uint16(1124), + 2115: uint16(270), + 2116: uint16(36), + 2117: uint16(18), + 2118: uint16(1194), + 2119: uint16(1033), + 2120: uint16(873), + 2121: uint16(151), + 2122: uint16(122), + 2123: uint16(37), + 2124: uint16(393), + 2125: uint16(271), + 2126: uint16(272), + 2127: uint16(572), + 2128: uint16(181), + 2129: uint16(1193), + 2130: uint16(1256), + 2131: uint16(1256), + 2132: uint16(1256), + 2133: uint16(935), + 2134: uint16(1256), + 2135: uint16(1256), + 2136: uint16(1256), + 2137: uint16(1256), + 2138: uint16(1256), + 2139: uint16(1256), + 2140: uint16(1256), + 2141: uint16(1617), +} +var _yy_lookahead = [2328]uint16{ + 0: uint16(194), + 1: uint16(276), + 2: uint16(277), + 3: uint16(278), + 4: uint16(216), + 5: uint16(194), + 6: uint16(194), + 7: uint16(217), + 8: uint16(194), + 9: uint16(194), + 10: uint16(194), + 11: uint16(194), + 12: uint16(224), + 13: uint16(194), + 14: uint16(194), + 15: uint16(276), + 16: uint16(277), + 17: uint16(278), + 18: uint16(204), 19: uint16(19), - 20: uint16(219), - 21: uint16(233), - 22: uint16(216), - 23: uint16(216), - 24: uint16(217), - 25: uint16(216), - 26: uint16(217), - 27: uint16(193), - 28: uint16(295), - 29: uint16(216), - 30: uint16(217), + 20: uint16(206), + 21: uint16(202), + 22: uint16(297), + 23: uint16(217), + 24: uint16(218), + 25: uint16(205), + 26: uint16(207), + 27: uint16(217), + 28: uint16(205), + 29: uint16(217), + 30: uint16(218), 31: uint16(31), - 32: uint16(193), - 33: uint16(216), + 32: uint16(217), + 33: uint16(218), 34: uint16(217), - 35: uint16(193), - 36: uint16(228), - 37: uint16(213), - 38: uint16(230), + 35: uint16(218), + 36: uint16(29), + 37: uint16(217), + 38: uint16(218), 39: uint16(39), - 40: uint16(206), - 41: uint16(216), - 42: uint16(217), + 40: uint16(33), + 41: uint16(217), + 42: uint16(220), 43: uint16(43), 44: uint16(44), 45: uint16(45), @@ -153853,31 +155308,31 @@ var _yy_lookahead = [2285]uint16{ 55: uint16(55), 56: uint16(56), 57: uint16(57), - 58: uint16(193), + 58: uint16(312), 59: uint16(19), - 60: uint16(185), - 61: uint16(186), - 62: uint16(187), - 63: uint16(188), - 64: uint16(189), - 65: uint16(190), - 66: uint16(253), - 67: uint16(274), - 68: uint16(275), - 69: uint16(276), - 70: uint16(195), - 71: uint16(193), - 72: uint16(197), - 73: uint16(193), - 74: uint16(261), - 75: uint16(274), - 76: uint16(275), - 77: uint16(276), - 78: uint16(253), - 79: uint16(204), - 80: uint16(238), - 81: uint16(204), - 82: uint16(81), + 60: uint16(240), + 61: uint16(241), + 62: uint16(316), + 63: uint16(240), + 64: uint16(241), + 65: uint16(194), + 66: uint16(46), + 67: uint16(47), + 68: uint16(48), + 69: uint16(49), + 70: uint16(22), + 71: uint16(254), + 72: uint16(65), + 73: uint16(253), + 74: uint16(254), + 75: uint16(255), + 76: uint16(253), + 77: uint16(194), + 78: uint16(255), + 79: uint16(194), + 80: uint16(263), + 81: uint16(258), + 82: uint16(259), 83: uint16(43), 84: uint16(44), 85: uint16(45), @@ -153893,10 +155348,10 @@ var _yy_lookahead = [2285]uint16{ 95: uint16(55), 96: uint16(56), 97: uint16(57), - 98: uint16(274), - 99: uint16(275), - 100: uint16(276), - 101: uint16(262), + 98: uint16(276), + 99: uint16(277), + 100: uint16(278), + 101: uint16(285), 102: uint16(102), 103: uint16(103), 104: uint16(104), @@ -153909,34 +155364,34 @@ var _yy_lookahead = [2285]uint16{ 111: uint16(111), 112: uint16(112), 113: uint16(113), - 114: uint16(239), - 115: uint16(240), - 116: uint16(239), - 117: uint16(240), - 118: uint16(210), - 119: uint16(211), - 120: uint16(212), - 121: uint16(314), - 122: uint16(315), - 123: uint16(314), - 124: uint16(59), - 125: uint16(316), + 114: uint16(59), + 115: uint16(186), + 116: uint16(187), + 117: uint16(188), + 118: uint16(189), + 119: uint16(190), + 120: uint16(191), + 121: uint16(310), + 122: uint16(239), + 123: uint16(317), + 124: uint16(318), + 125: uint16(196), 126: uint16(86), - 127: uint16(252), + 127: uint16(198), 128: uint16(88), - 129: uint16(252), + 129: uint16(317), 130: uint16(19), - 131: uint16(314), - 132: uint16(315), - 133: uint16(256), - 134: uint16(257), - 135: uint16(113), + 131: uint16(319), + 132: uint16(317), + 133: uint16(318), + 134: uint16(205), + 135: uint16(264), 136: uint16(25), - 137: uint16(72), - 138: uint16(296), - 139: uint16(138), - 140: uint16(139), - 141: uint16(266), + 137: uint16(211), + 138: uint16(212), + 139: uint16(213), + 140: uint16(205), + 141: uint16(121), 142: uint16(102), 143: uint16(103), 144: uint16(104), @@ -153964,50 +155419,50 @@ var _yy_lookahead = [2285]uint16{ 166: uint16(55), 167: uint16(56), 168: uint16(57), - 169: uint16(81), - 170: uint16(292), - 171: uint16(59), - 172: uint16(292), - 173: uint16(298), - 174: uint16(108), - 175: uint16(109), - 176: uint16(110), - 177: uint16(111), - 178: uint16(112), - 179: uint16(113), + 169: uint16(240), + 170: uint16(241), + 171: uint16(116), + 172: uint16(117), + 173: uint16(118), + 174: uint16(119), + 175: uint16(240), + 176: uint16(241), + 177: uint16(122), + 178: uint16(123), + 179: uint16(124), 180: uint16(69), - 181: uint16(116), - 182: uint16(117), - 183: uint16(118), - 184: uint16(72), + 181: uint16(298), + 182: uint16(253), + 183: uint16(194), + 184: uint16(255), 185: uint16(106), 186: uint16(107), - 187: uint16(193), - 188: uint16(111), - 189: uint16(112), - 190: uint16(113), + 187: uint16(132), + 188: uint16(253), + 189: uint16(141), + 190: uint16(255), 191: uint16(54), 192: uint16(55), 193: uint16(56), 194: uint16(57), 195: uint16(58), - 196: uint16(102), - 197: uint16(103), - 198: uint16(104), - 199: uint16(105), - 200: uint16(106), - 201: uint16(107), - 202: uint16(108), - 203: uint16(109), - 204: uint16(110), - 205: uint16(111), - 206: uint16(112), - 207: uint16(113), - 208: uint16(120), - 209: uint16(25), - 210: uint16(216), - 211: uint16(217), - 212: uint16(145), + 196: uint16(207), + 197: uint16(268), + 198: uint16(102), + 199: uint16(103), + 200: uint16(104), + 201: uint16(105), + 202: uint16(106), + 203: uint16(107), + 204: uint16(108), + 205: uint16(109), + 206: uint16(110), + 207: uint16(111), + 208: uint16(112), + 209: uint16(113), + 210: uint16(214), + 211: uint16(128), + 212: uint16(129), 213: uint16(102), 214: uint16(103), 215: uint16(104), @@ -154020,13 +155475,13 @@ var _yy_lookahead = [2285]uint16{ 222: uint16(111), 223: uint16(112), 224: uint16(113), - 225: uint16(231), - 226: uint16(138), - 227: uint16(139), - 228: uint16(116), - 229: uint16(117), - 230: uint16(118), - 231: uint16(164), + 225: uint16(134), + 226: uint16(25), + 227: uint16(136), + 228: uint16(137), + 229: uint16(300), + 230: uint16(165), + 231: uint16(166), 232: uint16(153), 233: uint16(19), 234: uint16(155), @@ -154046,12 +155501,12 @@ var _yy_lookahead = [2285]uint16{ 248: uint16(111), 249: uint16(112), 250: uint16(113), - 251: uint16(128), - 252: uint16(129), - 253: uint16(46), - 254: uint16(47), - 255: uint16(48), - 256: uint16(49), + 251: uint16(108), + 252: uint16(109), + 253: uint16(110), + 254: uint16(111), + 255: uint16(112), + 256: uint16(113), 257: uint16(43), 258: uint16(44), 259: uint16(45), @@ -154067,15 +155522,15 @@ var _yy_lookahead = [2285]uint16{ 269: uint16(55), 270: uint16(56), 271: uint16(57), - 272: uint16(216), - 273: uint16(193), - 274: uint16(25), - 275: uint16(59), - 276: uint16(193), + 272: uint16(276), + 273: uint16(277), + 274: uint16(278), + 275: uint16(113), + 276: uint16(194), 277: uint16(19), - 278: uint16(165), - 279: uint16(166), - 280: uint16(193), + 278: uint16(22), + 279: uint16(23), + 280: uint16(194), 281: uint16(67), 282: uint16(24), 283: uint16(102), @@ -154090,12 +155545,12 @@ var _yy_lookahead = [2285]uint16{ 292: uint16(111), 293: uint16(112), 294: uint16(113), - 295: uint16(73), - 296: uint16(216), - 297: uint16(217), - 298: uint16(59), - 299: uint16(216), - 300: uint16(217), + 295: uint16(220), + 296: uint16(250), + 297: uint16(59), + 298: uint16(252), + 299: uint16(217), + 300: uint16(218), 301: uint16(43), 302: uint16(44), 303: uint16(45), @@ -154123,38 +155578,38 @@ var _yy_lookahead = [2285]uint16{ 325: uint16(111), 326: uint16(112), 327: uint16(113), - 328: uint16(121), - 329: uint16(145), - 330: uint16(59), - 331: uint16(193), - 332: uint16(116), - 333: uint16(117), - 334: uint16(118), - 335: uint16(119), - 336: uint16(273), - 337: uint16(204), - 338: uint16(122), - 339: uint16(123), - 340: uint16(124), + 328: uint16(106), + 329: uint16(107), + 330: uint16(108), + 331: uint16(109), + 332: uint16(110), + 333: uint16(111), + 334: uint16(112), + 335: uint16(113), + 336: uint16(254), + 337: uint16(59), + 338: uint16(205), + 339: uint16(138), + 340: uint16(139), 341: uint16(19), 342: uint16(20), - 343: uint16(134), + 343: uint16(194), 344: uint16(22), - 345: uint16(136), - 346: uint16(137), - 347: uint16(19), - 348: uint16(132), - 349: uint16(127), - 350: uint16(128), - 351: uint16(129), - 352: uint16(24), - 353: uint16(22), - 354: uint16(23), - 355: uint16(116), - 356: uint16(117), - 357: uint16(118), + 345: uint16(263), + 346: uint16(22), + 347: uint16(23), + 348: uint16(231), + 349: uint16(25), + 350: uint16(72), + 351: uint16(276), + 352: uint16(277), + 353: uint16(278), + 354: uint16(116), + 355: uint16(117), + 356: uint16(118), + 357: uint16(101), 358: uint16(36), - 359: uint16(193), + 359: uint16(76), 360: uint16(102), 361: uint16(103), 362: uint16(104), @@ -154167,37 +155622,37 @@ var _yy_lookahead = [2285]uint16{ 369: uint16(111), 370: uint16(112), 371: uint16(113), - 372: uint16(239), + 372: uint16(89), 373: uint16(240), - 374: uint16(311), - 375: uint16(312), - 376: uint16(215), - 377: uint16(106), - 378: uint16(107), - 379: uint16(241), + 374: uint16(241), + 375: uint16(92), + 376: uint16(73), + 377: uint16(194), + 378: uint16(194), + 379: uint16(73), 380: uint16(19), 381: uint16(59), - 382: uint16(216), - 383: uint16(217), - 384: uint16(223), - 385: uint16(252), - 386: uint16(115), - 387: uint16(116), - 388: uint16(117), - 389: uint16(118), - 390: uint16(151), - 391: uint16(120), - 392: uint16(26), + 382: uint16(188), + 383: uint16(189), + 384: uint16(190), + 385: uint16(191), + 386: uint16(253), + 387: uint16(81), + 388: uint16(255), + 389: uint16(151), + 390: uint16(196), + 391: uint16(25), + 392: uint16(198), 393: uint16(71), - 394: uint16(193), - 395: uint16(308), - 396: uint16(309), - 397: uint16(193), - 398: uint16(149), - 399: uint16(128), - 400: uint16(313), - 401: uint16(216), - 402: uint16(269), + 394: uint16(116), + 395: uint16(117), + 396: uint16(118), + 397: uint16(311), + 398: uint16(312), + 399: uint16(205), + 400: uint16(217), + 401: uint16(218), + 402: uint16(316), 403: uint16(81), 404: uint16(43), 405: uint16(44), @@ -154214,50 +155669,50 @@ var _yy_lookahead = [2285]uint16{ 416: uint16(55), 417: uint16(56), 418: uint16(57), - 419: uint16(253), - 420: uint16(216), - 421: uint16(217), + 419: uint16(270), + 420: uint16(22), + 421: uint16(23), 422: uint16(100), - 423: uint16(95), - 424: uint16(153), - 425: uint16(59), - 426: uint16(155), - 427: uint16(261), + 423: uint16(25), + 424: uint16(59), + 425: uint16(101), + 426: uint16(138), + 427: uint16(139), 428: uint16(106), 429: uint16(107), - 430: uint16(25), - 431: uint16(193), - 432: uint16(101), - 433: uint16(193), - 434: uint16(193), - 435: uint16(231), + 430: uint16(127), + 431: uint16(128), + 432: uint16(129), + 433: uint16(127), + 434: uint16(240), + 435: uint16(241), 436: uint16(114), - 437: uint16(25), + 437: uint16(254), 438: uint16(116), 439: uint16(117), 440: uint16(118), - 441: uint16(113), - 442: uint16(304), + 441: uint16(76), + 442: uint16(76), 443: uint16(121), - 444: uint16(193), - 445: uint16(204), - 446: uint16(59), - 447: uint16(119), - 448: uint16(120), - 449: uint16(121), - 450: uint16(122), - 451: uint16(123), - 452: uint16(124), - 453: uint16(125), - 454: uint16(216), - 455: uint16(217), - 456: uint16(193), - 457: uint16(216), - 458: uint16(217), - 459: uint16(131), + 444: uint16(138), + 445: uint16(139), + 446: uint16(263), + 447: uint16(253), + 448: uint16(264), + 449: uint16(255), + 450: uint16(205), + 451: uint16(275), + 452: uint16(87), + 453: uint16(19), + 454: uint16(89), + 455: uint16(89), + 456: uint16(194), + 457: uint16(92), + 458: uint16(92), + 459: uint16(199), 460: uint16(138), 461: uint16(139), - 462: uint16(230), + 462: uint16(268), 463: uint16(102), 464: uint16(103), 465: uint16(104), @@ -154275,37 +155730,37 @@ var _yy_lookahead = [2285]uint16{ 477: uint16(155), 478: uint16(156), 479: uint16(157), - 480: uint16(239), - 481: uint16(240), - 482: uint16(116), - 483: uint16(117), - 484: uint16(118), - 485: uint16(76), - 486: uint16(193), - 487: uint16(23), + 480: uint16(81), + 481: uint16(116), + 482: uint16(117), + 483: uint16(118), + 484: uint16(129), + 485: uint16(240), + 486: uint16(241), + 487: uint16(224), 488: uint16(19), - 489: uint16(25), - 490: uint16(22), - 491: uint16(253), + 489: uint16(226), + 490: uint16(314), + 491: uint16(315), 492: uint16(23), - 493: uint16(252), - 494: uint16(253), - 495: uint16(108), - 496: uint16(87), - 497: uint16(204), - 498: uint16(89), - 499: uint16(261), - 500: uint16(198), - 501: uint16(92), - 502: uint16(261), - 503: uint16(116), - 504: uint16(117), - 505: uint16(118), - 506: uint16(193), - 507: uint16(306), - 508: uint16(307), - 509: uint16(216), - 510: uint16(217), + 493: uint16(25), + 494: uint16(300), + 495: uint16(59), + 496: uint16(22), + 497: uint16(234), + 498: uint16(253), + 499: uint16(101), + 500: uint16(255), + 501: uint16(236), + 502: uint16(237), + 503: uint16(26), + 504: uint16(194), + 505: uint16(183), + 506: uint16(194), + 507: uint16(152), + 508: uint16(72), + 509: uint16(22), + 510: uint16(145), 511: uint16(150), 512: uint16(43), 513: uint16(44), @@ -154322,34 +155777,34 @@ var _yy_lookahead = [2285]uint16{ 524: uint16(55), 525: uint16(56), 526: uint16(57), - 527: uint16(59), - 528: uint16(193), - 529: uint16(216), - 530: uint16(217), + 527: uint16(217), + 528: uint16(218), + 529: uint16(217), + 530: uint16(218), 531: uint16(19), - 532: uint16(239), - 533: uint16(240), - 534: uint16(283), + 532: uint16(189), + 533: uint16(59), + 534: uint16(191), 535: uint16(23), - 536: uint16(106), - 537: uint16(107), - 538: uint16(108), - 539: uint16(109), - 540: uint16(110), - 541: uint16(111), - 542: uint16(112), - 543: uint16(113), - 544: uint16(73), - 545: uint16(252), - 546: uint16(253), - 547: uint16(142), - 548: uint16(308), - 549: uint16(309), - 550: uint16(138), - 551: uint16(139), - 552: uint16(81), - 553: uint16(313), - 554: uint16(145), + 536: uint16(59), + 537: uint16(138), + 538: uint16(139), + 539: uint16(196), + 540: uint16(135), + 541: uint16(198), + 542: uint16(232), + 543: uint16(283), + 544: uint16(232), + 545: uint16(140), + 546: uint16(59), + 547: uint16(287), + 548: uint16(205), + 549: uint16(275), + 550: uint16(116), + 551: uint16(205), + 552: uint16(116), + 553: uint16(117), + 554: uint16(118), 555: uint16(43), 556: uint16(44), 557: uint16(45), @@ -154365,7 +155820,7 @@ var _yy_lookahead = [2285]uint16{ 567: uint16(55), 568: uint16(56), 569: uint16(57), - 570: uint16(307), + 570: uint16(194), 571: uint16(102), 572: uint16(103), 573: uint16(104), @@ -154378,37 +155833,37 @@ var _yy_lookahead = [2285]uint16{ 580: uint16(111), 581: uint16(112), 582: uint16(113), - 583: uint16(281), - 584: uint16(116), - 585: uint16(117), - 586: uint16(118), - 587: uint16(285), - 588: uint16(23), - 589: uint16(193), - 590: uint16(25), - 591: uint16(119), - 592: uint16(59), - 593: uint16(193), - 594: uint16(122), - 595: uint16(123), - 596: uint16(124), - 597: uint16(59), - 598: uint16(127), - 599: uint16(203), + 583: uint16(240), + 584: uint16(241), + 585: uint16(194), + 586: uint16(240), + 587: uint16(241), + 588: uint16(314), + 589: uint16(315), + 590: uint16(116), + 591: uint16(117), + 592: uint16(118), + 593: uint16(116), + 594: uint16(117), + 595: uint16(118), + 596: uint16(253), + 597: uint16(194), + 598: uint16(255), + 599: uint16(253), 600: uint16(59), - 601: uint16(205), + 601: uint16(255), 602: uint16(19), - 603: uint16(268), - 604: uint16(132), - 605: uint16(25), + 603: uint16(116), + 604: uint16(117), + 605: uint16(118), 606: uint16(23), 607: uint16(22), - 608: uint16(193), - 609: uint16(138), - 610: uint16(139), - 611: uint16(249), - 612: uint16(204), - 613: uint16(251), + 608: uint16(217), + 609: uint16(218), + 610: uint16(142), + 611: uint16(268), + 612: uint16(205), + 613: uint16(275), 614: uint16(102), 615: uint16(103), 616: uint16(104), @@ -154437,29 +155892,29 @@ var _yy_lookahead = [2285]uint16{ 639: uint16(56), 640: uint16(57), 641: uint16(19), - 642: uint16(22), - 643: uint16(23), + 642: uint16(194), + 643: uint16(300), 644: uint16(59), 645: uint16(23), - 646: uint16(25), - 647: uint16(239), - 648: uint16(240), - 649: uint16(116), - 650: uint16(117), - 651: uint16(118), - 652: uint16(193), - 653: uint16(11), - 654: uint16(116), - 655: uint16(117), - 656: uint16(118), - 657: uint16(116), + 646: uint16(119), + 647: uint16(240), + 648: uint16(241), + 649: uint16(122), + 650: uint16(123), + 651: uint16(124), + 652: uint16(314), + 653: uint16(315), + 654: uint16(194), + 655: uint16(236), + 656: uint16(237), + 657: uint16(194), 658: uint16(117), - 659: uint16(118), - 660: uint16(252), - 661: uint16(269), - 662: uint16(22), - 663: uint16(193), - 664: uint16(15), + 659: uint16(132), + 660: uint16(253), + 661: uint16(81), + 662: uint16(255), + 663: uint16(205), + 664: uint16(59), 665: uint16(43), 666: uint16(44), 667: uint16(45), @@ -154475,11 +155930,11 @@ var _yy_lookahead = [2285]uint16{ 677: uint16(55), 678: uint16(56), 679: uint16(57), - 680: uint16(273), - 681: uint16(143), - 682: uint16(193), - 683: uint16(118), - 684: uint16(143), + 680: uint16(217), + 681: uint16(218), + 682: uint16(194), + 683: uint16(194), + 684: uint16(194), 685: uint16(102), 686: uint16(103), 687: uint16(104), @@ -154492,33 +155947,33 @@ var _yy_lookahead = [2285]uint16{ 694: uint16(111), 695: uint16(112), 696: uint16(113), - 697: uint16(76), - 698: uint16(118), - 699: uint16(59), - 700: uint16(241), + 697: uint16(294), + 698: uint16(240), + 699: uint16(241), + 700: uint16(120), 701: uint16(116), 702: uint16(117), 703: uint16(118), - 704: uint16(304), - 705: uint16(216), + 704: uint16(59), + 705: uint16(194), 706: uint16(217), - 707: uint16(292), - 708: uint16(143), - 709: uint16(60), - 710: uint16(89), - 711: uint16(241), + 707: uint16(218), + 708: uint16(211), + 709: uint16(212), + 710: uint16(213), + 711: uint16(253), 712: uint16(19), - 713: uint16(92), - 714: uint16(193), - 715: uint16(193), + 713: uint16(255), + 714: uint16(194), + 715: uint16(19), 716: uint16(23), - 717: uint16(22), - 718: uint16(311), - 719: uint16(312), - 720: uint16(231), - 721: uint16(101), - 722: uint16(22), - 723: uint16(143), + 717: uint16(254), + 718: uint16(138), + 719: uint16(139), + 720: uint16(24), + 721: uint16(232), + 722: uint16(117), + 723: uint16(194), 724: uint16(102), 725: uint16(103), 726: uint16(104), @@ -154547,29 +156002,29 @@ var _yy_lookahead = [2285]uint16{ 749: uint16(56), 750: uint16(57), 751: uint16(19), - 752: uint16(193), - 753: uint16(193), - 754: uint16(59), + 752: uint16(264), + 753: uint16(108), + 754: uint16(76), 755: uint16(23), - 756: uint16(116), - 757: uint16(117), - 758: uint16(118), - 759: uint16(59), - 760: uint16(201), - 761: uint16(21), - 762: uint16(241), - 763: uint16(304), - 764: uint16(193), - 765: uint16(206), - 766: uint16(127), - 767: uint16(128), - 768: uint16(129), - 769: uint16(193), - 770: uint16(128), - 771: uint16(129), - 772: uint16(235), - 773: uint16(236), - 774: uint16(304), + 756: uint16(127), + 757: uint16(128), + 758: uint16(129), + 759: uint16(311), + 760: uint16(312), + 761: uint16(116), + 762: uint16(117), + 763: uint16(118), + 764: uint16(316), + 765: uint16(87), + 766: uint16(306), + 767: uint16(89), + 768: uint16(308), + 769: uint16(194), + 770: uint16(92), + 771: uint16(22), + 772: uint16(59), + 773: uint16(194), + 774: uint16(22), 775: uint16(43), 776: uint16(44), 777: uint16(45), @@ -154585,11 +156040,11 @@ var _yy_lookahead = [2285]uint16{ 787: uint16(55), 788: uint16(56), 789: uint16(57), - 790: uint16(22), - 791: uint16(193), - 792: uint16(216), - 793: uint16(217), - 794: uint16(193), + 790: uint16(194), + 791: uint16(95), + 792: uint16(217), + 793: uint16(218), + 794: uint16(265), 795: uint16(102), 796: uint16(103), 797: uint16(104), @@ -154602,33 +156057,33 @@ var _yy_lookahead = [2285]uint16{ 804: uint16(111), 805: uint16(112), 806: uint16(113), - 807: uint16(231), - 808: uint16(193), - 809: uint16(193), - 810: uint16(193), - 811: uint16(116), - 812: uint16(117), - 813: uint16(118), - 814: uint16(216), - 815: uint16(217), - 816: uint16(116), - 817: uint16(117), - 818: uint16(118), - 819: uint16(226), - 820: uint16(80), - 821: uint16(193), + 807: uint16(232), + 808: uint16(59), + 809: uint16(113), + 810: uint16(25), + 811: uint16(59), + 812: uint16(194), + 813: uint16(217), + 814: uint16(218), + 815: uint16(119), + 816: uint16(120), + 817: uint16(121), + 818: uint16(122), + 819: uint16(123), + 820: uint16(124), + 821: uint16(125), 822: uint16(19), - 823: uint16(235), - 824: uint16(236), - 825: uint16(304), + 823: uint16(145), + 824: uint16(194), + 825: uint16(194), 826: uint16(23), - 827: uint16(211), - 828: uint16(212), - 829: uint16(231), - 830: uint16(204), - 831: uint16(216), - 832: uint16(217), - 833: uint16(205), + 827: uint16(131), + 828: uint16(232), + 829: uint16(116), + 830: uint16(117), + 831: uint16(118), + 832: uint16(35), + 833: uint16(194), 834: uint16(102), 835: uint16(103), 836: uint16(104), @@ -154657,29 +156112,29 @@ var _yy_lookahead = [2285]uint16{ 859: uint16(56), 860: uint16(57), 861: uint16(19), - 862: uint16(193), - 863: uint16(123), - 864: uint16(76), - 865: uint16(239), - 866: uint16(240), - 867: uint16(193), - 868: uint16(253), - 869: uint16(239), - 870: uint16(240), - 871: uint16(239), - 872: uint16(240), - 873: uint16(244), - 874: uint16(106), - 875: uint16(107), - 876: uint16(193), - 877: uint16(89), - 878: uint16(252), - 879: uint16(193), - 880: uint16(92), - 881: uint16(59), - 882: uint16(252), - 883: uint16(254), - 884: uint16(252), + 862: uint16(194), + 863: uint16(66), + 864: uint16(194), + 865: uint16(116), + 866: uint16(117), + 867: uint16(118), + 868: uint16(116), + 869: uint16(117), + 870: uint16(118), + 871: uint16(74), + 872: uint16(242), + 873: uint16(294), + 874: uint16(194), + 875: uint16(194), + 876: uint16(206), + 877: uint16(23), + 878: uint16(194), + 879: uint16(25), + 880: uint16(194), + 881: uint16(111), + 882: uint16(112), + 883: uint16(113), + 884: uint16(25), 885: uint16(43), 886: uint16(44), 887: uint16(45), @@ -154695,11 +156150,11 @@ var _yy_lookahead = [2285]uint16{ 897: uint16(55), 898: uint16(56), 899: uint16(57), - 900: uint16(284), - 901: uint16(161), - 902: uint16(216), + 900: uint16(24), + 901: uint16(194), + 902: uint16(194), 903: uint16(217), - 904: uint16(193), + 904: uint16(218), 905: uint16(102), 906: uint16(103), 907: uint16(104), @@ -154712,33 +156167,33 @@ var _yy_lookahead = [2285]uint16{ 914: uint16(111), 915: uint16(112), 916: uint16(113), - 917: uint16(231), - 918: uint16(193), - 919: uint16(244), - 920: uint16(187), - 921: uint16(188), - 922: uint16(189), - 923: uint16(190), - 924: uint16(7), - 925: uint16(8), - 926: uint16(9), - 927: uint16(309), - 928: uint16(195), - 929: uint16(254), - 930: uint16(197), - 931: uint16(313), + 917: uint16(241), + 918: uint16(232), + 919: uint16(194), + 920: uint16(212), + 921: uint16(213), + 922: uint16(242), + 923: uint16(242), + 924: uint16(217), + 925: uint16(218), + 926: uint16(242), + 927: uint16(130), + 928: uint16(11), + 929: uint16(253), + 930: uint16(194), + 931: uint16(255), 932: uint16(19), - 933: uint16(127), - 934: uint16(128), - 935: uint16(129), - 936: uint16(262), - 937: uint16(204), - 938: uint16(22), - 939: uint16(117), - 940: uint16(24), - 941: uint16(216), + 933: uint16(265), + 934: uint16(149), + 935: uint16(59), + 936: uint16(306), + 937: uint16(194), + 938: uint16(308), + 939: uint16(232), + 940: uint16(309), + 941: uint16(310), 942: uint16(217), - 943: uint16(273), + 943: uint16(218), 944: uint16(102), 945: uint16(103), 946: uint16(104), @@ -154766,36 +156221,36 @@ var _yy_lookahead = [2285]uint16{ 968: uint16(55), 969: uint16(56), 970: uint16(57), - 971: uint16(193), - 972: uint16(239), - 973: uint16(240), - 974: uint16(193), - 975: uint16(59), + 971: uint16(194), + 972: uint16(194), + 973: uint16(59), + 974: uint16(194), + 975: uint16(239), 976: uint16(19), - 977: uint16(188), - 978: uint16(253), - 979: uint16(190), - 980: uint16(193), - 981: uint16(311), - 982: uint16(312), - 983: uint16(16), - 984: uint16(195), - 985: uint16(252), - 986: uint16(197), - 987: uint16(193), - 988: uint16(19), - 989: uint16(301), - 990: uint16(302), - 991: uint16(135), - 992: uint16(193), - 993: uint16(204), - 994: uint16(216), + 977: uint16(194), + 978: uint16(25), + 979: uint16(254), + 980: uint16(303), + 981: uint16(304), + 982: uint16(23), + 983: uint16(194), + 984: uint16(25), + 985: uint16(126), + 986: uint16(306), + 987: uint16(306), + 988: uint16(308), + 989: uint16(308), + 990: uint16(306), + 991: uint16(271), + 992: uint16(308), + 993: uint16(117), + 994: uint16(286), 995: uint16(217), - 996: uint16(140), - 997: uint16(216), - 998: uint16(217), - 999: uint16(266), - 1000: uint16(204), + 996: uint16(218), + 997: uint16(217), + 998: uint16(218), + 999: uint16(194), + 1000: uint16(194), 1001: uint16(159), 1002: uint16(45), 1003: uint16(46), @@ -154822,38 +156277,38 @@ var _yy_lookahead = [2285]uint16{ 1024: uint16(111), 1025: uint16(112), 1026: uint16(113), - 1027: uint16(12), + 1027: uint16(59), 1028: uint16(239), - 1029: uint16(240), - 1030: uint16(193), - 1031: uint16(298), - 1032: uint16(238), - 1033: uint16(117), - 1034: uint16(253), - 1035: uint16(239), + 1029: uint16(194), + 1030: uint16(116), + 1031: uint16(117), + 1032: uint16(118), + 1033: uint16(260), + 1034: uint16(254), + 1035: uint16(194), 1036: uint16(240), - 1037: uint16(238), - 1038: uint16(259), - 1039: uint16(260), - 1040: uint16(193), - 1041: uint16(252), - 1042: uint16(27), - 1043: uint16(193), - 1044: uint16(77), - 1045: uint16(193), - 1046: uint16(79), - 1047: uint16(204), - 1048: uint16(252), - 1049: uint16(262), - 1050: uint16(193), - 1051: uint16(299), - 1052: uint16(300), - 1053: uint16(193), - 1054: uint16(100), - 1055: uint16(266), - 1056: uint16(278), - 1057: uint16(42), - 1058: uint16(204), + 1037: uint16(241), + 1038: uint16(194), + 1039: uint16(233), + 1040: uint16(205), + 1041: uint16(240), + 1042: uint16(241), + 1043: uint16(205), + 1044: uint16(239), + 1045: uint16(128), + 1046: uint16(129), + 1047: uint16(270), + 1048: uint16(265), + 1049: uint16(253), + 1050: uint16(194), + 1051: uint16(255), + 1052: uint16(217), + 1053: uint16(218), + 1054: uint16(253), + 1055: uint16(194), + 1056: uint16(255), + 1057: uint16(143), + 1058: uint16(280), 1059: uint16(102), 1060: uint16(103), 1061: uint16(104), @@ -154866,51 +156321,51 @@ var _yy_lookahead = [2285]uint16{ 1068: uint16(111), 1069: uint16(112), 1070: uint16(113), - 1071: uint16(117), + 1071: uint16(118), 1072: uint16(159), - 1073: uint16(216), - 1074: uint16(217), - 1075: uint16(121), - 1076: uint16(216), - 1077: uint16(217), - 1078: uint16(63), - 1079: uint16(193), - 1080: uint16(193), - 1081: uint16(193), - 1082: uint16(239), - 1083: uint16(240), - 1084: uint16(115), - 1085: uint16(116), - 1086: uint16(193), - 1087: uint16(298), - 1088: uint16(73), - 1089: uint16(240), - 1090: uint16(238), - 1091: uint16(231), + 1073: uint16(217), + 1074: uint16(218), + 1075: uint16(240), + 1076: uint16(241), + 1077: uint16(118), + 1078: uint16(240), + 1079: uint16(241), + 1080: uint16(194), + 1081: uint16(194), + 1082: uint16(194), + 1083: uint16(239), + 1084: uint16(116), + 1085: uint16(117), + 1086: uint16(118), + 1087: uint16(22), + 1088: uint16(253), + 1089: uint16(254), + 1090: uint16(255), + 1091: uint16(253), 1092: uint16(19), - 1093: uint16(239), - 1094: uint16(240), - 1095: uint16(252), - 1096: uint16(22), + 1093: uint16(255), + 1094: uint16(233), + 1095: uint16(194), + 1096: uint16(143), 1097: uint16(24), - 1098: uint16(211), + 1098: uint16(263), 1099: uint16(212), - 1100: uint16(263), - 1101: uint16(252), - 1102: uint16(216), + 1100: uint16(213), + 1101: uint16(194), + 1102: uint16(143), 1103: uint16(217), - 1104: uint16(216), + 1104: uint16(218), 1105: uint16(217), - 1106: uint16(252), - 1107: uint16(153), - 1108: uint16(154), - 1109: uint16(155), - 1110: uint16(253), - 1111: uint16(193), + 1106: uint16(218), + 1107: uint16(261), + 1108: uint16(262), + 1109: uint16(271), + 1110: uint16(254), + 1111: uint16(143), 1112: uint16(19), - 1113: uint16(144), - 1114: uint16(213), - 1115: uint16(268), + 1113: uint16(7), + 1114: uint16(8), + 1115: uint16(9), 1116: uint16(43), 1117: uint16(44), 1118: uint16(45), @@ -154926,11 +156381,11 @@ var _yy_lookahead = [2285]uint16{ 1128: uint16(55), 1129: uint16(56), 1130: uint16(57), - 1131: uint16(193), + 1131: uint16(16), 1132: uint16(19), - 1133: uint16(59), - 1134: uint16(216), - 1135: uint16(217), + 1133: uint16(22), + 1134: uint16(23), + 1135: uint16(294), 1136: uint16(43), 1137: uint16(44), 1138: uint16(45), @@ -154946,11 +156401,11 @@ var _yy_lookahead = [2285]uint16{ 1148: uint16(55), 1149: uint16(56), 1150: uint16(57), - 1151: uint16(193), - 1152: uint16(19), - 1153: uint16(24), - 1154: uint16(216), - 1155: uint16(217), + 1151: uint16(312), + 1152: uint16(194), + 1153: uint16(214), + 1154: uint16(21), + 1155: uint16(316), 1156: uint16(43), 1157: uint16(44), 1158: uint16(45), @@ -154966,10 +156421,10 @@ var _yy_lookahead = [2285]uint16{ 1168: uint16(55), 1169: uint16(56), 1170: uint16(57), - 1171: uint16(284), - 1172: uint16(193), - 1173: uint16(208), - 1174: uint16(209), + 1171: uint16(106), + 1172: uint16(107), + 1173: uint16(286), + 1174: uint16(194), 1175: uint16(102), 1176: uint16(103), 1177: uint16(104), @@ -154982,14 +156437,14 @@ var _yy_lookahead = [2285]uint16{ 1184: uint16(111), 1185: uint16(112), 1186: uint16(113), - 1187: uint16(286), - 1188: uint16(59), - 1189: uint16(193), - 1190: uint16(232), - 1191: uint16(117), - 1192: uint16(291), - 1193: uint16(193), - 1194: uint16(193), + 1187: uint16(207), + 1188: uint16(158), + 1189: uint16(59), + 1190: uint16(160), + 1191: uint16(22), + 1192: uint16(77), + 1193: uint16(24), + 1194: uint16(79), 1195: uint16(102), 1196: uint16(103), 1197: uint16(104), @@ -155002,14 +156457,14 @@ var _yy_lookahead = [2285]uint16{ 1204: uint16(111), 1205: uint16(112), 1206: uint16(113), - 1207: uint16(193), - 1208: uint16(204), - 1209: uint16(22), - 1210: uint16(23), - 1211: uint16(193), - 1212: uint16(25), - 1213: uint16(66), - 1214: uint16(193), + 1207: uint16(194), + 1208: uint16(194), + 1209: uint16(229), + 1210: uint16(194), + 1211: uint16(231), + 1212: uint16(101), + 1213: uint16(80), + 1214: uint16(22), 1215: uint16(102), 1216: uint16(103), 1217: uint16(104), @@ -155022,39 +156477,39 @@ var _yy_lookahead = [2285]uint16{ 1224: uint16(111), 1225: uint16(112), 1226: uint16(113), - 1227: uint16(193), - 1228: uint16(193), - 1229: uint16(193), - 1230: uint16(216), - 1231: uint16(217), - 1232: uint16(85), - 1233: uint16(193), - 1234: uint16(238), + 1227: uint16(288), + 1228: uint16(59), + 1229: uint16(12), + 1230: uint16(217), + 1231: uint16(218), + 1232: uint16(293), + 1233: uint16(217), + 1234: uint16(218), 1235: uint16(19), - 1236: uint16(16), - 1237: uint16(216), - 1238: uint16(217), - 1239: uint16(238), - 1240: uint16(193), - 1241: uint16(94), - 1242: uint16(193), - 1243: uint16(239), - 1244: uint16(240), - 1245: uint16(231), - 1246: uint16(117), - 1247: uint16(268), - 1248: uint16(35), - 1249: uint16(116), - 1250: uint16(216), - 1251: uint16(217), - 1252: uint16(216), - 1253: uint16(217), - 1254: uint16(22), - 1255: uint16(23), - 1256: uint16(252), - 1257: uint16(25), - 1258: uint16(208), - 1259: uint16(209), + 1236: uint16(106), + 1237: uint16(107), + 1238: uint16(59), + 1239: uint16(19), + 1240: uint16(16), + 1241: uint16(127), + 1242: uint16(128), + 1243: uint16(129), + 1244: uint16(27), + 1245: uint16(115), + 1246: uint16(116), + 1247: uint16(117), + 1248: uint16(118), + 1249: uint16(194), + 1250: uint16(120), + 1251: uint16(59), + 1252: uint16(22), + 1253: uint16(194), + 1254: uint16(24), + 1255: uint16(194), + 1256: uint16(123), + 1257: uint16(100), + 1258: uint16(128), + 1259: uint16(42), 1260: uint16(44), 1261: uint16(45), 1262: uint16(46), @@ -155069,50 +156524,50 @@ var _yy_lookahead = [2285]uint16{ 1271: uint16(55), 1272: uint16(56), 1273: uint16(57), - 1274: uint16(193), - 1275: uint16(193), - 1276: uint16(19), - 1277: uint16(5), - 1278: uint16(59), - 1279: uint16(66), - 1280: uint16(193), - 1281: uint16(263), - 1282: uint16(10), - 1283: uint16(11), - 1284: uint16(12), - 1285: uint16(13), - 1286: uint16(14), - 1287: uint16(74), - 1288: uint16(101), - 1289: uint16(17), - 1290: uint16(193), - 1291: uint16(46), - 1292: uint16(193), - 1293: uint16(146), - 1294: uint16(193), - 1295: uint16(76), - 1296: uint16(213), - 1297: uint16(77), - 1298: uint16(263), - 1299: uint16(79), - 1300: uint16(12), - 1301: uint16(260), - 1302: uint16(30), - 1303: uint16(46), - 1304: uint16(32), - 1305: uint16(264), - 1306: uint16(87), - 1307: uint16(193), - 1308: uint16(89), - 1309: uint16(29), - 1310: uint16(263), - 1311: uint16(92), - 1312: uint16(40), - 1313: uint16(33), - 1314: uint16(232), - 1315: uint16(27), - 1316: uint16(193), - 1317: uint16(108), + 1274: uint16(117), + 1275: uint16(194), + 1276: uint16(217), + 1277: uint16(218), + 1278: uint16(121), + 1279: uint16(100), + 1280: uint16(63), + 1281: uint16(194), + 1282: uint16(245), + 1283: uint16(153), + 1284: uint16(194), + 1285: uint16(155), + 1286: uint16(117), + 1287: uint16(19), + 1288: uint16(115), + 1289: uint16(194), + 1290: uint16(73), + 1291: uint16(214), + 1292: uint16(194), + 1293: uint16(256), + 1294: uint16(161), + 1295: uint16(116), + 1296: uint16(117), + 1297: uint16(194), + 1298: uint16(217), + 1299: uint16(218), + 1300: uint16(121), + 1301: uint16(77), + 1302: uint16(194), + 1303: uint16(79), + 1304: uint16(217), + 1305: uint16(218), + 1306: uint16(194), + 1307: uint16(217), + 1308: uint16(218), + 1309: uint16(117), + 1310: uint16(153), + 1311: uint16(154), + 1312: uint16(155), + 1313: uint16(254), + 1314: uint16(46), + 1315: uint16(217), + 1316: uint16(218), + 1317: uint16(144), 1318: uint16(102), 1319: uint16(103), 1320: uint16(104), @@ -155125,1025 +156580,1068 @@ var _yy_lookahead = [2285]uint16{ 1327: uint16(111), 1328: uint16(112), 1329: uint16(113), - 1330: uint16(42), - 1331: uint16(138), - 1332: uint16(139), - 1333: uint16(101), - 1334: uint16(193), - 1335: uint16(116), - 1336: uint16(117), - 1337: uint16(118), + 1330: uint16(232), + 1331: uint16(270), + 1332: uint16(153), + 1333: uint16(154), + 1334: uint16(155), + 1335: uint16(115), + 1336: uint16(116), + 1337: uint16(66), 1338: uint16(19), 1339: uint16(20), - 1340: uint16(255), + 1340: uint16(183), 1341: uint16(22), - 1342: uint16(70), - 1343: uint16(130), - 1344: uint16(135), - 1345: uint16(65), - 1346: uint16(256), - 1347: uint16(257), - 1348: uint16(193), - 1349: uint16(140), - 1350: uint16(78), - 1351: uint16(63), - 1352: uint16(193), - 1353: uint16(81), - 1354: uint16(193), + 1342: uint16(12), + 1343: uint16(312), + 1344: uint16(254), + 1345: uint16(194), + 1346: uint16(262), + 1347: uint16(316), + 1348: uint16(209), + 1349: uint16(210), + 1350: uint16(266), + 1351: uint16(239), + 1352: uint16(194), + 1353: uint16(194), + 1354: uint16(108), 1355: uint16(36), - 1356: uint16(193), - 1357: uint16(216), - 1358: uint16(217), - 1359: uint16(193), - 1360: uint16(115), - 1361: uint16(193), - 1362: uint16(263), - 1363: uint16(193), - 1364: uint16(145), - 1365: uint16(268), - 1366: uint16(59), + 1356: uint16(85), + 1357: uint16(27), + 1358: uint16(19), + 1359: uint16(20), + 1360: uint16(265), + 1361: uint16(22), + 1362: uint16(183), + 1363: uint16(245), + 1364: uint16(144), + 1365: uint16(94), + 1366: uint16(25), 1367: uint16(48), - 1368: uint16(193), - 1369: uint16(193), - 1370: uint16(98), - 1371: uint16(193), - 1372: uint16(115), - 1373: uint16(193), - 1374: uint16(291), - 1375: uint16(216), + 1368: uint16(217), + 1369: uint16(218), + 1370: uint16(293), + 1371: uint16(194), + 1372: uint16(42), + 1373: uint16(270), + 1374: uint16(256), + 1375: uint16(36), 1376: uint16(217), - 1377: uint16(193), + 1377: uint16(218), 1378: uint16(59), - 1379: uint16(216), - 1380: uint16(217), - 1381: uint16(161), - 1382: uint16(216), - 1383: uint16(217), - 1384: uint16(216), - 1385: uint16(217), - 1386: uint16(216), - 1387: uint16(217), - 1388: uint16(131), - 1389: uint16(193), + 1379: uint16(194), + 1380: uint16(25), + 1381: uint16(135), + 1382: uint16(194), + 1383: uint16(115), + 1384: uint16(194), + 1385: uint16(161), + 1386: uint16(140), + 1387: uint16(194), + 1388: uint16(194), + 1389: uint16(15), 1390: uint16(71), - 1391: uint16(193), - 1392: uint16(216), - 1393: uint16(217), - 1394: uint16(216), - 1395: uint16(217), - 1396: uint16(216), - 1397: uint16(217), - 1398: uint16(193), - 1399: uint16(260), - 1400: uint16(216), - 1401: uint16(217), - 1402: uint16(19), - 1403: uint16(264), + 1391: uint16(194), + 1392: uint16(312), + 1393: uint16(63), + 1394: uint16(217), + 1395: uint16(218), + 1396: uint16(316), + 1397: uint16(194), + 1398: uint16(59), + 1399: uint16(131), + 1400: uint16(301), + 1401: uint16(302), + 1402: uint16(217), + 1403: uint16(218), 1404: uint16(85), - 1405: uint16(133), - 1406: uint16(244), - 1407: uint16(100), - 1408: uint16(193), + 1405: uint16(217), + 1406: uint16(218), + 1407: uint16(217), + 1408: uint16(218), 1409: uint16(90), - 1410: uint16(138), - 1411: uint16(139), - 1412: uint16(216), - 1413: uint16(217), - 1414: uint16(216), - 1415: uint16(217), - 1416: uint16(254), - 1417: uint16(244), - 1418: uint16(193), + 1410: uint16(71), + 1411: uint16(217), + 1412: uint16(218), + 1413: uint16(19), + 1414: uint16(217), + 1415: uint16(218), + 1416: uint16(245), + 1417: uint16(146), + 1418: uint16(262), 1419: uint16(100), - 1420: uint16(193), - 1421: uint16(216), - 1422: uint16(217), - 1423: uint16(116), - 1424: uint16(117), + 1420: uint16(217), + 1421: uint16(218), + 1422: uint16(266), + 1423: uint16(265), + 1424: uint16(85), 1425: uint16(106), 1426: uint16(107), - 1427: uint16(254), - 1428: uint16(121), - 1429: uint16(193), - 1430: uint16(115), - 1431: uint16(216), - 1432: uint16(217), + 1427: uint16(256), + 1428: uint16(312), + 1429: uint16(90), + 1430: uint16(209), + 1431: uint16(210), + 1432: uint16(316), 1433: uint16(114), - 1434: uint16(162), + 1434: uint16(60), 1435: uint16(116), 1436: uint16(117), 1437: uint16(118), - 1438: uint16(115), - 1439: uint16(244), + 1438: uint16(194), + 1439: uint16(100), 1440: uint16(121), - 1441: uint16(216), - 1442: uint16(217), - 1443: uint16(216), - 1444: uint16(217), - 1445: uint16(193), - 1446: uint16(309), - 1447: uint16(193), - 1448: uint16(31), - 1449: uint16(254), - 1450: uint16(313), - 1451: uint16(309), - 1452: uint16(216), - 1453: uint16(217), - 1454: uint16(309), - 1455: uint16(313), - 1456: uint16(39), - 1457: uint16(193), - 1458: uint16(313), - 1459: uint16(309), - 1460: uint16(153), - 1461: uint16(154), - 1462: uint16(155), - 1463: uint16(313), - 1464: uint16(193), - 1465: uint16(150), - 1466: uint16(25), - 1467: uint16(144), - 1468: uint16(216), - 1469: uint16(217), - 1470: uint16(216), - 1471: uint16(217), + 1441: uint16(194), + 1442: uint16(194), + 1443: uint16(145), + 1444: uint16(115), + 1445: uint16(106), + 1446: uint16(107), + 1447: uint16(19), + 1448: uint16(46), + 1449: uint16(19), + 1450: uint16(20), + 1451: uint16(24), + 1452: uint16(22), + 1453: uint16(114), + 1454: uint16(194), + 1455: uint16(116), + 1456: uint16(117), + 1457: uint16(118), + 1458: uint16(194), + 1459: uint16(245), + 1460: uint16(121), + 1461: uint16(194), + 1462: uint16(164), + 1463: uint16(194), + 1464: uint16(217), + 1465: uint16(218), + 1466: uint16(36), + 1467: uint16(194), + 1468: uint16(258), + 1469: uint16(259), + 1470: uint16(256), + 1471: uint16(194), 1472: uint16(153), 1473: uint16(154), 1474: uint16(155), 1475: uint16(156), 1476: uint16(157), - 1478: uint16(1), - 1479: uint16(2), - 1480: uint16(216), + 1477: uint16(217), + 1478: uint16(218), + 1479: uint16(150), + 1480: uint16(31), 1481: uint16(217), - 1482: uint16(5), - 1483: uint16(149), - 1484: uint16(150), - 1485: uint16(22), - 1486: uint16(193), - 1487: uint16(10), - 1488: uint16(11), - 1489: uint16(12), - 1490: uint16(13), - 1491: uint16(14), - 1492: uint16(193), - 1493: uint16(158), - 1494: uint16(17), - 1495: uint16(160), - 1496: uint16(193), - 1497: uint16(19), - 1498: uint16(20), - 1499: uint16(116), - 1500: uint16(22), - 1501: uint16(25), - 1502: uint16(193), - 1503: uint16(24), - 1504: uint16(22), - 1505: uint16(193), - 1506: uint16(24), - 1507: uint16(30), - 1508: uint16(226), - 1509: uint16(32), - 1510: uint16(19), - 1511: uint16(20), - 1512: uint16(226), - 1513: uint16(22), - 1514: uint16(36), - 1515: uint16(193), - 1516: uint16(53), - 1517: uint16(40), - 1518: uint16(193), - 1519: uint16(216), - 1520: uint16(217), - 1521: uint16(193), - 1522: uint16(23), - 1523: uint16(193), - 1524: uint16(25), - 1525: uint16(216), - 1526: uint16(217), - 1527: uint16(36), - 1528: uint16(216), - 1529: uint16(217), - 1530: uint16(193), - 1531: uint16(99), - 1532: uint16(193), - 1533: uint16(193), - 1534: uint16(22), - 1535: uint16(193), - 1536: uint16(193), - 1537: uint16(59), - 1538: uint16(216), + 1482: uint16(218), + 1483: uint16(142), + 1484: uint16(217), + 1485: uint16(218), + 1486: uint16(217), + 1487: uint16(218), + 1488: uint16(39), + 1489: uint16(59), + 1490: uint16(217), + 1491: uint16(218), + 1492: uint16(153), + 1493: uint16(154), + 1494: uint16(155), + 1495: uint16(156), + 1496: uint16(157), + 1497: uint16(149), + 1498: uint16(150), + 1499: uint16(5), + 1500: uint16(145), + 1501: uint16(71), + 1502: uint16(183), + 1503: uint16(245), + 1504: uint16(10), + 1505: uint16(11), + 1506: uint16(12), + 1507: uint16(13), + 1508: uint16(14), + 1509: uint16(194), + 1510: uint16(116), + 1511: uint16(17), + 1512: uint16(129), + 1513: uint16(227), + 1514: uint16(256), + 1515: uint16(85), + 1516: uint16(194), + 1517: uint16(115), + 1518: uint16(194), + 1519: uint16(23), + 1520: uint16(90), + 1521: uint16(25), + 1522: uint16(183), + 1523: uint16(99), + 1524: uint16(30), + 1525: uint16(97), + 1526: uint16(32), + 1527: uint16(22), + 1528: uint16(22), + 1529: uint16(194), + 1530: uint16(100), + 1531: uint16(194), + 1532: uint16(217), + 1533: uint16(218), + 1534: uint16(40), + 1535: uint16(152), + 1536: uint16(106), + 1537: uint16(107), + 1538: uint16(23), 1539: uint16(217), - 1540: uint16(193), - 1541: uint16(216), - 1542: uint16(217), - 1543: uint16(193), - 1544: uint16(216), - 1545: uint16(217), - 1546: uint16(193), - 1547: uint16(70), - 1548: uint16(129), - 1549: uint16(71), - 1550: uint16(59), - 1551: uint16(129), - 1552: uint16(193), - 1553: uint16(216), + 1540: uint16(218), + 1541: uint16(194), + 1542: uint16(19), + 1543: uint16(20), + 1544: uint16(114), + 1545: uint16(22), + 1546: uint16(116), + 1547: uint16(117), + 1548: uint16(118), + 1549: uint16(257), + 1550: uint16(194), + 1551: uint16(121), + 1552: uint16(217), + 1553: uint16(218), 1554: uint16(217), - 1555: uint16(78), - 1556: uint16(216), - 1557: uint16(217), - 1558: uint16(81), - 1559: uint16(216), - 1560: uint16(217), - 1561: uint16(193), - 1562: uint16(71), - 1563: uint16(85), - 1564: uint16(193), - 1565: uint16(133), - 1566: uint16(193), - 1567: uint16(126), - 1568: uint16(90), - 1569: uint16(216), - 1570: uint16(217), - 1571: uint16(152), - 1572: uint16(258), - 1573: uint16(61), - 1574: uint16(152), - 1575: uint16(98), - 1576: uint16(85), - 1577: uint16(193), - 1578: uint16(100), - 1579: uint16(193), - 1580: uint16(23), - 1581: uint16(90), - 1582: uint16(25), - 1583: uint16(121), - 1584: uint16(106), - 1585: uint16(107), - 1586: uint16(23), - 1587: uint16(216), - 1588: uint16(217), - 1589: uint16(216), - 1590: uint16(217), - 1591: uint16(100), - 1592: uint16(114), - 1593: uint16(131), - 1594: uint16(116), - 1595: uint16(117), - 1596: uint16(118), - 1597: uint16(106), - 1598: uint16(107), - 1599: uint16(121), - 1600: uint16(216), - 1601: uint16(217), - 1602: uint16(216), - 1603: uint16(217), - 1604: uint16(193), - 1605: uint16(114), - 1606: uint16(193), - 1607: uint16(116), - 1608: uint16(117), - 1609: uint16(118), - 1610: uint16(133), - 1611: uint16(22), - 1612: uint16(121), - 1613: uint16(193), - 1614: uint16(59), - 1615: uint16(138), - 1616: uint16(139), - 1617: uint16(193), - 1618: uint16(142), - 1619: uint16(193), - 1620: uint16(141), - 1621: uint16(23), - 1622: uint16(23), - 1623: uint16(25), - 1624: uint16(25), - 1625: uint16(120), - 1626: uint16(121), - 1627: uint16(216), - 1628: uint16(217), - 1629: uint16(216), - 1630: uint16(217), - 1631: uint16(153), - 1632: uint16(154), - 1633: uint16(155), - 1634: uint16(156), - 1635: uint16(157), - 1636: uint16(216), - 1637: uint16(217), - 1638: uint16(19), - 1639: uint16(162), - 1640: uint16(216), - 1641: uint16(217), - 1642: uint16(216), - 1643: uint16(217), - 1644: uint16(153), - 1645: uint16(154), - 1646: uint16(155), - 1647: uint16(156), - 1648: uint16(157), - 1649: uint16(1), - 1650: uint16(2), - 1651: uint16(193), - 1652: uint16(59), - 1653: uint16(5), - 1654: uint16(19), - 1655: uint16(20), - 1656: uint16(318), - 1657: uint16(22), - 1658: uint16(10), - 1659: uint16(11), - 1660: uint16(12), - 1661: uint16(13), - 1662: uint16(14), - 1663: uint16(193), - 1664: uint16(59), - 1665: uint16(17), - 1666: uint16(193), - 1667: uint16(23), - 1668: uint16(23), - 1669: uint16(25), - 1670: uint16(25), - 1671: uint16(36), - 1672: uint16(117), - 1673: uint16(193), - 1674: uint16(216), - 1675: uint16(217), - 1676: uint16(193), - 1677: uint16(23), - 1678: uint16(30), - 1679: uint16(25), - 1680: uint16(32), - 1681: uint16(19), - 1682: uint16(20), - 1683: uint16(23), - 1684: uint16(22), - 1685: uint16(25), - 1686: uint16(216), - 1687: uint16(217), - 1688: uint16(40), - 1689: uint16(216), + 1555: uint16(218), + 1556: uint16(194), + 1557: uint16(133), + 1558: uint16(53), + 1559: uint16(36), + 1560: uint16(23), + 1561: uint16(23), + 1562: uint16(25), + 1563: uint16(25), + 1564: uint16(70), + 1565: uint16(120), + 1566: uint16(121), + 1567: uint16(61), + 1568: uint16(141), + 1569: uint16(7), + 1570: uint16(8), + 1571: uint16(121), + 1572: uint16(78), + 1573: uint16(217), + 1574: uint16(218), + 1575: uint16(81), + 1576: uint16(23), + 1577: uint16(227), + 1578: uint16(25), + 1579: uint16(217), + 1580: uint16(218), + 1581: uint16(131), + 1582: uint16(59), + 1583: uint16(153), + 1584: uint16(154), + 1585: uint16(155), + 1586: uint16(156), + 1587: uint16(157), + 1589: uint16(1), + 1590: uint16(2), + 1591: uint16(59), + 1592: uint16(98), + 1593: uint16(5), + 1594: uint16(71), + 1595: uint16(23), + 1596: uint16(227), + 1597: uint16(25), + 1598: uint16(10), + 1599: uint16(11), + 1600: uint16(12), + 1601: uint16(13), + 1602: uint16(14), + 1603: uint16(83), + 1604: uint16(84), + 1605: uint16(17), + 1606: uint16(23), + 1607: uint16(23), + 1608: uint16(25), + 1609: uint16(25), + 1610: uint16(59), + 1611: uint16(194), + 1612: uint16(194), + 1613: uint16(183), + 1614: uint16(23), + 1615: uint16(23), + 1616: uint16(25), + 1617: uint16(25), + 1618: uint16(30), + 1619: uint16(194), + 1620: uint16(32), + 1621: uint16(19), + 1622: uint16(20), + 1623: uint16(100), + 1624: uint16(22), + 1625: uint16(194), + 1626: uint16(194), + 1627: uint16(133), + 1628: uint16(40), + 1629: uint16(106), + 1630: uint16(107), + 1631: uint16(108), + 1632: uint16(138), + 1633: uint16(139), + 1634: uint16(194), + 1635: uint16(217), + 1636: uint16(218), + 1637: uint16(114), + 1638: uint16(36), + 1639: uint16(116), + 1640: uint16(117), + 1641: uint16(118), + 1642: uint16(217), + 1643: uint16(218), + 1644: uint16(121), + 1645: uint16(194), + 1646: uint16(194), + 1647: uint16(194), + 1648: uint16(23), + 1649: uint16(117), + 1650: uint16(25), + 1651: uint16(194), + 1652: uint16(23), + 1653: uint16(23), + 1654: uint16(25), + 1655: uint16(25), + 1656: uint16(162), + 1657: uint16(194), + 1658: uint16(70), + 1659: uint16(194), + 1660: uint16(145), + 1661: uint16(59), + 1662: uint16(23), + 1663: uint16(153), + 1664: uint16(25), + 1665: uint16(155), + 1666: uint16(78), + 1667: uint16(194), + 1668: uint16(117), + 1669: uint16(81), + 1670: uint16(217), + 1671: uint16(218), + 1672: uint16(194), + 1673: uint16(71), + 1674: uint16(217), + 1675: uint16(218), + 1676: uint16(153), + 1677: uint16(154), + 1678: uint16(155), + 1679: uint16(156), + 1680: uint16(157), + 1681: uint16(194), + 1682: uint16(217), + 1683: uint16(218), + 1684: uint16(194), + 1685: uint16(23), + 1686: uint16(98), + 1687: uint16(25), + 1688: uint16(321), + 1689: uint16(194), 1690: uint16(217), - 1691: uint16(7), - 1692: uint16(8), - 1693: uint16(23), - 1694: uint16(59), - 1695: uint16(25), - 1696: uint16(83), - 1697: uint16(84), - 1698: uint16(36), - 1699: uint16(23), - 1700: uint16(193), - 1701: uint16(25), - 1702: uint16(23), - 1703: uint16(23), - 1704: uint16(25), - 1705: uint16(25), - 1706: uint16(71), - 1707: uint16(153), - 1708: uint16(145), - 1709: uint16(155), - 1710: uint16(117), - 1711: uint16(153), - 1712: uint16(23), - 1713: uint16(155), - 1714: uint16(25), - 1715: uint16(23), - 1716: uint16(97), - 1717: uint16(25), - 1718: uint16(70), - 1719: uint16(193), - 1720: uint16(193), - 1721: uint16(59), - 1722: uint16(117), - 1723: uint16(236), - 1724: uint16(193), - 1725: uint16(193), - 1726: uint16(78), - 1727: uint16(193), - 1728: uint16(193), - 1729: uint16(81), - 1730: uint16(141), - 1731: uint16(193), - 1732: uint16(193), - 1733: uint16(71), - 1734: uint16(193), - 1735: uint16(100), - 1736: uint16(288), - 1737: uint16(287), - 1738: uint16(242), - 1739: uint16(255), - 1740: uint16(255), - 1741: uint16(106), - 1742: uint16(107), - 1743: uint16(108), - 1744: uint16(255), - 1745: uint16(255), - 1746: uint16(98), - 1747: uint16(243), - 1748: uint16(297), - 1749: uint16(114), - 1750: uint16(214), - 1751: uint16(116), - 1752: uint16(117), - 1753: uint16(118), - 1754: uint16(245), - 1755: uint16(191), - 1756: uint16(121), - 1757: uint16(271), - 1758: uint16(293), - 1759: uint16(267), - 1760: uint16(267), - 1761: uint16(246), - 1762: uint16(100), - 1763: uint16(246), - 1764: uint16(245), - 1765: uint16(271), - 1766: uint16(271), - 1767: uint16(293), - 1768: uint16(106), - 1769: uint16(107), - 1770: uint16(220), - 1771: uint16(271), - 1772: uint16(229), - 1773: uint16(225), - 1774: uint16(249), - 1775: uint16(219), - 1776: uint16(114), - 1777: uint16(259), - 1778: uint16(116), - 1779: uint16(117), - 1780: uint16(118), - 1781: uint16(133), - 1782: uint16(259), - 1783: uint16(121), - 1784: uint16(219), - 1785: uint16(219), - 1786: uint16(138), - 1787: uint16(139), - 1788: uint16(153), - 1789: uint16(154), - 1790: uint16(155), - 1791: uint16(156), - 1792: uint16(157), - 1793: uint16(280), - 1794: uint16(249), - 1795: uint16(243), - 1796: uint16(19), - 1797: uint16(20), - 1798: uint16(245), - 1799: uint16(22), - 1800: uint16(196), - 1801: uint16(259), - 1802: uint16(140), - 1803: uint16(259), - 1804: uint16(60), - 1805: uint16(297), - 1806: uint16(141), - 1807: uint16(297), - 1808: uint16(200), - 1809: uint16(200), - 1810: uint16(162), - 1811: uint16(38), - 1812: uint16(200), - 1813: uint16(36), - 1814: uint16(294), - 1815: uint16(153), - 1816: uint16(154), - 1817: uint16(155), - 1818: uint16(156), - 1819: uint16(157), - 1820: uint16(151), - 1821: uint16(150), - 1822: uint16(294), - 1823: uint16(283), - 1824: uint16(22), - 1825: uint16(43), - 1826: uint16(234), - 1827: uint16(18), - 1828: uint16(237), - 1829: uint16(200), - 1830: uint16(270), - 1831: uint16(272), - 1832: uint16(237), - 1833: uint16(237), - 1834: uint16(237), - 1835: uint16(18), - 1836: uint16(59), - 1837: uint16(199), - 1838: uint16(270), - 1839: uint16(149), - 1840: uint16(246), - 1841: uint16(272), - 1842: uint16(272), - 1843: uint16(200), - 1844: uint16(234), - 1845: uint16(234), - 1846: uint16(246), - 1847: uint16(246), - 1848: uint16(71), - 1849: uint16(246), - 1850: uint16(199), - 1851: uint16(158), - 1852: uint16(290), - 1853: uint16(62), - 1854: uint16(22), - 1855: uint16(200), - 1856: uint16(19), - 1857: uint16(20), - 1858: uint16(199), - 1859: uint16(22), - 1860: uint16(289), - 1861: uint16(221), - 1862: uint16(221), - 1863: uint16(200), - 1864: uint16(200), - 1865: uint16(199), - 1866: uint16(199), - 1867: uint16(115), - 1868: uint16(218), - 1869: uint16(64), - 1870: uint16(218), - 1871: uint16(218), + 1691: uint16(218), + 1692: uint16(194), + 1693: uint16(19), + 1694: uint16(20), + 1695: uint16(194), + 1696: uint16(22), + 1697: uint16(153), + 1698: uint16(23), + 1699: uint16(155), + 1700: uint16(25), + 1701: uint16(194), + 1702: uint16(100), + 1703: uint16(194), + 1704: uint16(217), + 1705: uint16(218), + 1706: uint16(183), + 1707: uint16(194), + 1708: uint16(106), + 1709: uint16(107), + 1710: uint16(36), + 1711: uint16(194), + 1712: uint16(217), + 1713: uint16(218), + 1714: uint16(237), + 1715: uint16(194), + 1716: uint16(114), + 1717: uint16(243), + 1718: uint16(116), + 1719: uint16(117), + 1720: uint16(118), + 1721: uint16(133), + 1722: uint16(194), + 1723: uint16(121), + 1724: uint16(217), + 1725: uint16(218), + 1726: uint16(138), + 1727: uint16(139), + 1728: uint16(194), + 1729: uint16(194), + 1730: uint16(194), + 1731: uint16(290), + 1732: uint16(289), + 1733: uint16(59), + 1734: uint16(217), + 1735: uint16(218), + 1736: uint16(194), + 1737: uint16(194), + 1738: uint16(217), + 1739: uint16(218), + 1740: uint16(194), + 1741: uint16(194), + 1742: uint16(140), + 1743: uint16(194), + 1744: uint16(194), + 1745: uint16(71), + 1746: uint16(194), + 1747: uint16(244), + 1748: uint16(194), + 1749: uint16(194), + 1750: uint16(162), + 1751: uint16(217), + 1752: uint16(218), + 1753: uint16(194), + 1754: uint16(194), + 1755: uint16(153), + 1756: uint16(154), + 1757: uint16(155), + 1758: uint16(156), + 1759: uint16(157), + 1760: uint16(217), + 1761: uint16(218), + 1762: uint16(194), + 1763: uint16(217), + 1764: uint16(218), + 1765: uint16(194), + 1766: uint16(217), + 1767: uint16(218), + 1768: uint16(257), + 1769: uint16(217), + 1770: uint16(218), + 1771: uint16(217), + 1772: uint16(218), + 1773: uint16(257), + 1774: uint16(100), + 1775: uint16(194), + 1776: uint16(257), + 1777: uint16(217), + 1778: uint16(218), + 1779: uint16(257), + 1780: uint16(106), + 1781: uint16(107), + 1782: uint16(215), + 1783: uint16(299), + 1784: uint16(194), + 1785: uint16(183), + 1786: uint16(192), + 1787: uint16(194), + 1788: uint16(114), + 1789: uint16(194), + 1790: uint16(116), + 1791: uint16(117), + 1792: uint16(118), + 1793: uint16(1), + 1794: uint16(2), + 1795: uint16(121), + 1796: uint16(221), + 1797: uint16(5), + 1798: uint16(217), + 1799: uint16(218), + 1800: uint16(273), + 1801: uint16(197), + 1802: uint16(10), + 1803: uint16(11), + 1804: uint16(12), + 1805: uint16(13), + 1806: uint16(14), + 1807: uint16(217), + 1808: uint16(218), + 1809: uint16(17), + 1810: uint16(217), + 1811: uint16(218), + 1812: uint16(217), + 1813: uint16(218), + 1814: uint16(140), + 1815: uint16(194), + 1816: uint16(246), + 1817: uint16(194), + 1818: uint16(273), + 1819: uint16(295), + 1820: uint16(247), + 1821: uint16(273), + 1822: uint16(30), + 1823: uint16(247), + 1824: uint16(32), + 1825: uint16(269), + 1826: uint16(269), + 1827: uint16(153), + 1828: uint16(154), + 1829: uint16(155), + 1830: uint16(156), + 1831: uint16(157), + 1832: uint16(40), + 1833: uint16(246), + 1834: uint16(273), + 1835: uint16(295), + 1836: uint16(230), + 1837: uint16(226), + 1838: uint16(217), + 1839: uint16(218), + 1840: uint16(217), + 1841: uint16(218), + 1842: uint16(220), + 1843: uint16(261), + 1844: uint16(220), + 1845: uint16(282), + 1846: uint16(220), + 1847: uint16(19), + 1848: uint16(20), + 1849: uint16(244), + 1850: uint16(22), + 1851: uint16(250), + 1852: uint16(141), + 1853: uint16(250), + 1854: uint16(246), + 1855: uint16(60), + 1856: uint16(201), + 1857: uint16(183), + 1858: uint16(261), + 1859: uint16(261), + 1860: uint16(261), + 1861: uint16(201), + 1862: uint16(70), + 1863: uint16(299), + 1864: uint16(36), + 1865: uint16(299), + 1866: uint16(201), + 1867: uint16(38), + 1868: uint16(151), + 1869: uint16(150), + 1870: uint16(78), + 1871: uint16(285), 1872: uint16(22), - 1873: uint16(36), - 1874: uint16(227), - 1875: uint16(126), - 1876: uint16(227), - 1877: uint16(100), - 1878: uint16(165), - 1879: uint16(221), - 1880: uint16(224), - 1881: uint16(224), - 1882: uint16(24), - 1883: uint16(106), - 1884: uint16(107), - 1885: uint16(312), - 1886: uint16(218), - 1887: uint16(305), - 1888: uint16(113), - 1889: uint16(282), - 1890: uint16(91), - 1891: uint16(114), - 1892: uint16(220), - 1893: uint16(116), - 1894: uint16(117), - 1895: uint16(118), - 1896: uint16(59), - 1897: uint16(282), - 1898: uint16(121), - 1899: uint16(218), - 1900: uint16(218), - 1901: uint16(218), + 1873: uint16(81), + 1874: uint16(296), + 1875: uint16(296), + 1876: uint16(43), + 1877: uint16(235), + 1878: uint16(18), + 1879: uint16(238), + 1880: uint16(201), + 1881: uint16(274), + 1882: uint16(272), + 1883: uint16(238), + 1884: uint16(238), + 1885: uint16(238), + 1886: uint16(18), + 1887: uint16(59), + 1888: uint16(200), + 1889: uint16(149), + 1890: uint16(98), + 1891: uint16(247), + 1892: uint16(274), + 1893: uint16(274), + 1894: uint16(235), + 1895: uint16(247), + 1896: uint16(247), + 1897: uint16(247), + 1898: uint16(235), + 1899: uint16(71), + 1900: uint16(272), + 1901: uint16(201), 1902: uint16(200), - 1903: uint16(317), - 1904: uint16(317), - 1905: uint16(82), - 1906: uint16(221), - 1907: uint16(265), - 1908: uint16(71), - 1909: uint16(148), - 1910: uint16(145), - 1911: uint16(265), - 1912: uint16(22), - 1913: uint16(277), - 1914: uint16(200), - 1915: uint16(158), - 1916: uint16(279), - 1917: uint16(140), - 1918: uint16(147), - 1919: uint16(25), - 1920: uint16(146), - 1921: uint16(202), - 1922: uint16(248), - 1923: uint16(250), - 1924: uint16(249), - 1925: uint16(247), - 1926: uint16(13), - 1927: uint16(250), - 1928: uint16(194), - 1929: uint16(194), - 1930: uint16(153), - 1931: uint16(154), - 1932: uint16(155), - 1933: uint16(156), - 1934: uint16(157), - 1935: uint16(6), - 1936: uint16(303), - 1937: uint16(100), - 1938: uint16(192), - 1939: uint16(192), - 1940: uint16(246), - 1941: uint16(213), - 1942: uint16(192), - 1943: uint16(106), - 1944: uint16(107), - 1945: uint16(207), - 1946: uint16(213), - 1947: uint16(207), - 1948: uint16(222), - 1949: uint16(213), - 1950: uint16(213), - 1951: uint16(114), - 1952: uint16(222), - 1953: uint16(116), - 1954: uint16(117), - 1955: uint16(118), - 1956: uint16(214), - 1957: uint16(214), - 1958: uint16(121), - 1959: uint16(4), - 1960: uint16(207), - 1961: uint16(213), - 1962: uint16(3), - 1963: uint16(22), - 1964: uint16(303), - 1965: uint16(15), - 1966: uint16(163), - 1967: uint16(16), - 1968: uint16(23), - 1969: uint16(23), - 1970: uint16(139), - 1971: uint16(151), - 1972: uint16(130), - 1973: uint16(25), - 1974: uint16(20), - 1975: uint16(142), - 1976: uint16(24), - 1977: uint16(16), - 1978: uint16(144), - 1979: uint16(1), - 1980: uint16(142), - 1981: uint16(130), - 1982: uint16(130), - 1983: uint16(61), - 1984: uint16(37), - 1985: uint16(53), - 1986: uint16(300), - 1987: uint16(151), - 1988: uint16(53), - 1989: uint16(53), - 1990: uint16(153), - 1991: uint16(154), - 1992: uint16(155), - 1993: uint16(156), - 1994: uint16(157), - 1995: uint16(53), - 1996: uint16(130), - 1997: uint16(116), - 1998: uint16(34), - 1999: uint16(1), - 2000: uint16(141), - 2001: uint16(5), - 2002: uint16(22), - 2003: uint16(115), - 2004: uint16(161), - 2005: uint16(68), - 2006: uint16(25), - 2007: uint16(68), - 2008: uint16(75), - 2009: uint16(41), - 2010: uint16(141), - 2011: uint16(115), - 2012: uint16(24), - 2013: uint16(20), - 2014: uint16(19), - 2015: uint16(131), - 2016: uint16(125), - 2017: uint16(23), - 2018: uint16(28), - 2019: uint16(22), - 2020: uint16(67), - 2021: uint16(22), - 2022: uint16(22), - 2023: uint16(22), - 2024: uint16(67), - 2025: uint16(59), - 2026: uint16(24), - 2027: uint16(96), - 2028: uint16(22), - 2029: uint16(67), - 2030: uint16(23), - 2031: uint16(149), - 2032: uint16(22), - 2033: uint16(25), - 2034: uint16(23), - 2035: uint16(23), - 2036: uint16(23), - 2037: uint16(22), - 2038: uint16(34), - 2039: uint16(141), - 2040: uint16(37), - 2041: uint16(97), - 2042: uint16(23), - 2043: uint16(23), - 2044: uint16(116), - 2045: uint16(22), - 2046: uint16(143), - 2047: uint16(25), - 2048: uint16(34), - 2049: uint16(75), - 2050: uint16(34), - 2051: uint16(34), - 2052: uint16(34), - 2053: uint16(88), - 2054: uint16(75), - 2055: uint16(34), - 2056: uint16(86), - 2057: uint16(23), + 1903: uint16(158), + 1904: uint16(292), + 1905: uint16(62), + 1906: uint16(291), + 1907: uint16(201), + 1908: uint16(200), + 1909: uint16(22), + 1910: uint16(201), + 1911: uint16(222), + 1912: uint16(200), + 1913: uint16(222), + 1914: uint16(201), + 1915: uint16(200), + 1916: uint16(115), + 1917: uint16(219), + 1918: uint16(219), + 1919: uint16(64), + 1920: uint16(219), + 1921: uint16(228), + 1922: uint16(22), + 1923: uint16(126), + 1924: uint16(221), + 1925: uint16(133), + 1926: uint16(165), + 1927: uint16(222), + 1928: uint16(100), + 1929: uint16(225), + 1930: uint16(138), + 1931: uint16(139), + 1932: uint16(225), + 1933: uint16(219), + 1934: uint16(106), + 1935: uint16(107), + 1936: uint16(24), + 1937: uint16(219), + 1938: uint16(228), + 1939: uint16(219), + 1940: uint16(219), + 1941: uint16(307), + 1942: uint16(114), + 1943: uint16(113), + 1944: uint16(116), + 1945: uint16(117), + 1946: uint16(118), + 1947: uint16(315), + 1948: uint16(284), + 1949: uint16(121), + 1950: uint16(284), + 1951: uint16(222), + 1952: uint16(201), + 1953: uint16(91), + 1954: uint16(162), + 1955: uint16(320), + 1956: uint16(320), + 1957: uint16(82), + 1958: uint16(148), + 1959: uint16(267), + 1960: uint16(145), + 1961: uint16(267), + 1962: uint16(22), + 1963: uint16(279), + 1964: uint16(201), + 1965: uint16(158), + 1966: uint16(281), + 1967: uint16(251), + 1968: uint16(147), + 1969: uint16(146), + 1970: uint16(25), + 1971: uint16(203), + 1972: uint16(250), + 1973: uint16(249), + 1974: uint16(251), + 1975: uint16(248), + 1976: uint16(13), + 1977: uint16(247), + 1978: uint16(195), + 1979: uint16(195), + 1980: uint16(6), + 1981: uint16(153), + 1982: uint16(154), + 1983: uint16(155), + 1984: uint16(156), + 1985: uint16(157), + 1986: uint16(193), + 1987: uint16(193), + 1988: uint16(305), + 1989: uint16(193), + 1990: uint16(208), + 1991: uint16(305), + 1992: uint16(302), + 1993: uint16(214), + 1994: uint16(214), + 1995: uint16(214), + 1996: uint16(208), + 1997: uint16(223), + 1998: uint16(223), + 1999: uint16(214), + 2000: uint16(4), + 2001: uint16(215), + 2002: uint16(215), + 2003: uint16(214), + 2004: uint16(3), + 2005: uint16(22), + 2006: uint16(208), + 2007: uint16(163), + 2008: uint16(15), + 2009: uint16(23), + 2010: uint16(16), + 2011: uint16(183), + 2012: uint16(23), + 2013: uint16(139), + 2014: uint16(151), + 2015: uint16(130), + 2016: uint16(25), + 2017: uint16(20), + 2018: uint16(142), + 2019: uint16(24), + 2020: uint16(16), + 2021: uint16(144), + 2022: uint16(1), + 2023: uint16(142), + 2024: uint16(130), + 2025: uint16(130), + 2026: uint16(61), + 2027: uint16(37), + 2028: uint16(53), + 2029: uint16(151), + 2030: uint16(53), + 2031: uint16(53), + 2032: uint16(53), + 2033: uint16(130), + 2034: uint16(116), + 2035: uint16(1), + 2036: uint16(34), + 2037: uint16(141), + 2038: uint16(5), + 2039: uint16(22), + 2040: uint16(115), + 2041: uint16(161), + 2042: uint16(75), + 2043: uint16(25), + 2044: uint16(68), + 2045: uint16(141), + 2046: uint16(41), + 2047: uint16(115), + 2048: uint16(68), + 2049: uint16(24), + 2050: uint16(20), + 2051: uint16(19), + 2052: uint16(131), + 2053: uint16(125), + 2054: uint16(67), + 2055: uint16(67), + 2056: uint16(96), + 2057: uint16(22), 2058: uint16(22), - 2059: uint16(34), - 2060: uint16(93), - 2061: uint16(24), - 2062: uint16(34), - 2063: uint16(25), - 2064: uint16(25), - 2065: uint16(142), - 2066: uint16(142), + 2059: uint16(22), + 2060: uint16(37), + 2061: uint16(23), + 2062: uint16(22), + 2063: uint16(24), + 2064: uint16(22), + 2065: uint16(59), + 2066: uint16(67), 2067: uint16(23), - 2068: uint16(44), - 2069: uint16(23), - 2070: uint16(23), - 2071: uint16(23), + 2068: uint16(149), + 2069: uint16(28), + 2070: uint16(22), + 2071: uint16(25), 2072: uint16(23), - 2073: uint16(11), + 2073: uint16(23), 2074: uint16(23), - 2075: uint16(25), - 2076: uint16(22), - 2077: uint16(22), - 2078: uint16(22), - 2079: uint16(141), + 2075: uint16(22), + 2076: uint16(141), + 2077: uint16(34), + 2078: uint16(97), + 2079: uint16(23), 2080: uint16(23), - 2081: uint16(23), - 2082: uint16(22), + 2081: uint16(34), + 2082: uint16(116), 2083: uint16(22), - 2084: uint16(25), - 2085: uint16(15), - 2086: uint16(1), - 2087: uint16(23), - 2088: uint16(25), - 2089: uint16(1), - 2090: uint16(141), - 2091: uint16(135), - 2092: uint16(319), - 2093: uint16(319), - 2094: uint16(319), - 2095: uint16(319), - 2096: uint16(319), - 2097: uint16(319), - 2098: uint16(319), - 2099: uint16(141), - 2100: uint16(319), - 2101: uint16(319), - 2102: uint16(319), - 2103: uint16(319), - 2104: uint16(319), - 2105: uint16(319), - 2106: uint16(319), - 2107: uint16(319), - 2108: uint16(319), - 2109: uint16(319), - 2110: uint16(319), - 2111: uint16(319), - 2112: uint16(319), - 2113: uint16(319), - 2114: uint16(319), - 2115: uint16(319), - 2116: uint16(319), - 2117: uint16(319), - 2118: uint16(319), - 2119: uint16(319), - 2120: uint16(319), - 2121: uint16(319), - 2122: uint16(319), - 2123: uint16(319), - 2124: uint16(319), - 2125: uint16(319), - 2126: uint16(319), - 2127: uint16(319), - 2128: uint16(319), - 2129: uint16(319), - 2130: uint16(319), - 2131: uint16(319), - 2132: uint16(319), - 2133: uint16(319), - 2134: uint16(319), - 2135: uint16(319), - 2136: uint16(319), - 2137: uint16(319), - 2138: uint16(319), - 2139: uint16(319), - 2140: uint16(319), - 2141: uint16(319), - 2142: uint16(319), - 2143: uint16(319), - 2144: uint16(319), - 2145: uint16(319), - 2146: uint16(319), - 2147: uint16(319), - 2148: uint16(319), - 2149: uint16(319), - 2150: uint16(319), - 2151: uint16(319), - 2152: uint16(319), - 2153: uint16(319), - 2154: uint16(319), - 2155: uint16(319), - 2156: uint16(319), - 2157: uint16(319), - 2158: uint16(319), - 2159: uint16(319), - 2160: uint16(319), - 2161: uint16(319), - 2162: uint16(319), - 2163: uint16(319), - 2164: uint16(319), - 2165: uint16(319), - 2166: uint16(319), - 2167: uint16(319), - 2168: uint16(319), - 2169: uint16(319), - 2170: uint16(319), - 2171: uint16(319), - 2172: uint16(319), - 2173: uint16(319), - 2174: uint16(319), - 2175: uint16(319), - 2176: uint16(319), - 2177: uint16(319), - 2178: uint16(319), - 2179: uint16(319), - 2180: uint16(319), - 2181: uint16(319), - 2182: uint16(319), - 2183: uint16(319), - 2184: uint16(319), - 2185: uint16(319), - 2186: uint16(319), - 2187: uint16(319), - 2188: uint16(319), - 2189: uint16(319), - 2190: uint16(319), - 2191: uint16(319), - 2192: uint16(319), - 2193: uint16(319), - 2194: uint16(319), - 2195: uint16(319), - 2196: uint16(319), - 2197: uint16(319), - 2198: uint16(319), - 2199: uint16(319), - 2200: uint16(319), - 2201: uint16(319), - 2202: uint16(319), - 2203: uint16(319), - 2204: uint16(319), - 2205: uint16(319), - 2206: uint16(319), - 2207: uint16(319), - 2208: uint16(319), - 2209: uint16(319), - 2210: uint16(319), - 2211: uint16(319), - 2212: uint16(319), - 2213: uint16(319), - 2214: uint16(319), - 2215: uint16(319), - 2216: uint16(319), - 2217: uint16(319), - 2218: uint16(319), - 2219: uint16(319), - 2220: uint16(319), - 2221: uint16(319), - 2222: uint16(319), - 2223: uint16(319), - 2224: uint16(319), - 2225: uint16(319), - 2226: uint16(319), - 2227: uint16(319), - 2228: uint16(319), - 2229: uint16(319), - 2230: uint16(319), - 2231: uint16(319), - 2232: uint16(319), - 2233: uint16(319), - 2234: uint16(319), - 2235: uint16(319), - 2236: uint16(319), - 2237: uint16(319), - 2238: uint16(319), - 2239: uint16(319), - 2240: uint16(319), - 2241: uint16(319), - 2242: uint16(319), - 2243: uint16(319), - 2244: uint16(319), - 2245: uint16(319), - 2246: uint16(319), - 2247: uint16(319), - 2248: uint16(319), - 2249: uint16(319), - 2250: uint16(319), - 2251: uint16(319), - 2252: uint16(319), - 2253: uint16(319), - 2254: uint16(319), - 2255: uint16(319), - 2256: uint16(319), - 2257: uint16(319), - 2258: uint16(319), - 2259: uint16(319), - 2260: uint16(319), - 2261: uint16(319), - 2262: uint16(319), - 2263: uint16(319), - 2264: uint16(319), - 2265: uint16(319), - 2266: uint16(319), - 2267: uint16(319), - 2268: uint16(319), - 2269: uint16(319), - 2270: uint16(319), - 2271: uint16(319), - 2272: uint16(319), - 2273: uint16(319), - 2274: uint16(319), - 2275: uint16(319), - 2276: uint16(319), - 2277: uint16(319), - 2278: uint16(319), - 2279: uint16(319), - 2280: uint16(319), - 2281: uint16(319), - 2282: uint16(319), - 2283: uint16(319), - 2284: uint16(319), -} -var _yy_shift_ofst = [579]uint16{ - 0: uint16(1648), - 1: uint16(1477), - 2: uint16(1272), + 2084: uint16(143), + 2085: uint16(25), + 2086: uint16(34), + 2087: uint16(75), + 2088: uint16(34), + 2089: uint16(34), + 2090: uint16(75), + 2091: uint16(88), + 2092: uint16(34), + 2093: uint16(86), + 2094: uint16(23), + 2095: uint16(22), + 2096: uint16(34), + 2097: uint16(25), + 2098: uint16(24), + 2099: uint16(34), + 2100: uint16(25), + 2101: uint16(93), + 2102: uint16(23), + 2103: uint16(44), + 2104: uint16(142), + 2105: uint16(23), + 2106: uint16(142), + 2107: uint16(23), + 2108: uint16(23), + 2109: uint16(22), + 2110: uint16(11), + 2111: uint16(25), + 2112: uint16(23), + 2113: uint16(25), + 2114: uint16(23), + 2115: uint16(22), + 2116: uint16(22), + 2117: uint16(22), + 2118: uint16(1), + 2119: uint16(23), + 2120: uint16(23), + 2121: uint16(23), + 2122: uint16(22), + 2123: uint16(22), + 2124: uint16(15), + 2125: uint16(141), + 2126: uint16(141), + 2127: uint16(25), + 2128: uint16(25), + 2129: uint16(1), + 2130: uint16(322), + 2131: uint16(322), + 2132: uint16(322), + 2133: uint16(135), + 2134: uint16(322), + 2135: uint16(322), + 2136: uint16(322), + 2137: uint16(322), + 2138: uint16(322), + 2139: uint16(322), + 2140: uint16(322), + 2141: uint16(141), + 2142: uint16(322), + 2143: uint16(322), + 2144: uint16(322), + 2145: uint16(322), + 2146: uint16(322), + 2147: uint16(322), + 2148: uint16(322), + 2149: uint16(322), + 2150: uint16(322), + 2151: uint16(322), + 2152: uint16(322), + 2153: uint16(322), + 2154: uint16(322), + 2155: uint16(322), + 2156: uint16(322), + 2157: uint16(322), + 2158: uint16(322), + 2159: uint16(322), + 2160: uint16(322), + 2161: uint16(322), + 2162: uint16(322), + 2163: uint16(322), + 2164: uint16(322), + 2165: uint16(322), + 2166: uint16(322), + 2167: uint16(322), + 2168: uint16(322), + 2169: uint16(322), + 2170: uint16(322), + 2171: uint16(322), + 2172: uint16(322), + 2173: uint16(322), + 2174: uint16(322), + 2175: uint16(322), + 2176: uint16(322), + 2177: uint16(322), + 2178: uint16(322), + 2179: uint16(322), + 2180: uint16(322), + 2181: uint16(322), + 2182: uint16(322), + 2183: uint16(322), + 2184: uint16(322), + 2185: uint16(322), + 2186: uint16(322), + 2187: uint16(322), + 2188: uint16(322), + 2189: uint16(322), + 2190: uint16(322), + 2191: uint16(322), + 2192: uint16(322), + 2193: uint16(322), + 2194: uint16(322), + 2195: uint16(322), + 2196: uint16(322), + 2197: uint16(322), + 2198: uint16(322), + 2199: uint16(322), + 2200: uint16(322), + 2201: uint16(322), + 2202: uint16(322), + 2203: uint16(322), + 2204: uint16(322), + 2205: uint16(322), + 2206: uint16(322), + 2207: uint16(322), + 2208: uint16(322), + 2209: uint16(322), + 2210: uint16(322), + 2211: uint16(322), + 2212: uint16(322), + 2213: uint16(322), + 2214: uint16(322), + 2215: uint16(322), + 2216: uint16(322), + 2217: uint16(322), + 2218: uint16(322), + 2219: uint16(322), + 2220: uint16(322), + 2221: uint16(322), + 2222: uint16(322), + 2223: uint16(322), + 2224: uint16(322), + 2225: uint16(322), + 2226: uint16(322), + 2227: uint16(322), + 2228: uint16(322), + 2229: uint16(322), + 2230: uint16(322), + 2231: uint16(322), + 2232: uint16(322), + 2233: uint16(322), + 2234: uint16(322), + 2235: uint16(322), + 2236: uint16(322), + 2237: uint16(322), + 2238: uint16(322), + 2239: uint16(322), + 2240: uint16(322), + 2241: uint16(322), + 2242: uint16(322), + 2243: uint16(322), + 2244: uint16(322), + 2245: uint16(322), + 2246: uint16(322), + 2247: uint16(322), + 2248: uint16(322), + 2249: uint16(322), + 2250: uint16(322), + 2251: uint16(322), + 2252: uint16(322), + 2253: uint16(322), + 2254: uint16(322), + 2255: uint16(322), + 2256: uint16(322), + 2257: uint16(322), + 2258: uint16(322), + 2259: uint16(322), + 2260: uint16(322), + 2261: uint16(322), + 2262: uint16(322), + 2263: uint16(322), + 2264: uint16(322), + 2265: uint16(322), + 2266: uint16(322), + 2267: uint16(322), + 2268: uint16(322), + 2269: uint16(322), + 2270: uint16(322), + 2271: uint16(322), + 2272: uint16(322), + 2273: uint16(322), + 2274: uint16(322), + 2275: uint16(322), + 2276: uint16(322), + 2277: uint16(322), + 2278: uint16(322), + 2279: uint16(322), + 2280: uint16(322), + 2281: uint16(322), + 2282: uint16(322), + 2283: uint16(322), + 2284: uint16(322), + 2285: uint16(322), + 2286: uint16(322), + 2287: uint16(322), + 2288: uint16(322), + 2289: uint16(322), + 2290: uint16(322), + 2291: uint16(322), + 2292: uint16(322), + 2293: uint16(322), + 2294: uint16(322), + 2295: uint16(322), + 2296: uint16(322), + 2297: uint16(322), + 2298: uint16(322), + 2299: uint16(322), + 2300: uint16(322), + 2301: uint16(322), + 2302: uint16(322), + 2303: uint16(322), + 2304: uint16(322), + 2305: uint16(322), + 2306: uint16(322), + 2307: uint16(322), + 2308: uint16(322), + 2309: uint16(322), + 2310: uint16(322), + 2311: uint16(322), + 2312: uint16(322), + 2313: uint16(322), + 2314: uint16(322), + 2315: uint16(322), + 2316: uint16(322), + 2317: uint16(322), + 2318: uint16(322), + 2319: uint16(322), + 2320: uint16(322), + 2321: uint16(322), + 2322: uint16(322), + 2323: uint16(322), + 2324: uint16(322), + 2325: uint16(322), + 2326: uint16(322), + 2327: uint16(322), +} +var _yy_shift_ofst = [583]uint16{ + 0: uint16(1792), + 1: uint16(1588), + 2: uint16(1494), 3: uint16(322), 4: uint16(322), - 5: uint16(1), - 6: uint16(1319), - 7: uint16(1478), - 8: uint16(1491), - 9: uint16(1837), - 10: uint16(1837), - 11: uint16(1837), - 12: uint16(471), - 15: uint16(214), - 16: uint16(1093), - 17: uint16(1837), - 18: uint16(1837), - 19: uint16(1837), - 20: uint16(1837), - 21: uint16(1837), - 22: uint16(1837), - 23: uint16(1837), - 24: uint16(1837), - 25: uint16(1837), - 26: uint16(1837), - 27: uint16(1837), - 28: uint16(1837), - 29: uint16(1837), - 30: uint16(1837), - 31: uint16(271), - 32: uint16(271), - 33: uint16(1219), - 34: uint16(1219), - 35: uint16(216), - 36: uint16(88), - 37: uint16(1), - 38: uint16(1), - 39: uint16(1), - 40: uint16(1), - 41: uint16(1), - 42: uint16(40), - 43: uint16(111), - 44: uint16(258), - 45: uint16(361), - 46: uint16(469), - 47: uint16(512), - 48: uint16(583), - 49: uint16(622), - 50: uint16(693), - 51: uint16(732), - 52: uint16(803), - 53: uint16(842), - 54: uint16(913), - 55: uint16(1073), - 56: uint16(1093), - 57: uint16(1093), - 58: uint16(1093), - 59: uint16(1093), - 60: uint16(1093), - 61: uint16(1093), - 62: uint16(1093), - 63: uint16(1093), - 64: uint16(1093), + 5: uint16(399), + 6: uint16(306), + 7: uint16(1319), + 8: uint16(1339), + 9: uint16(1430), + 10: uint16(1828), + 11: uint16(1828), + 12: uint16(1828), + 13: uint16(580), + 14: uint16(399), + 15: uint16(399), + 16: uint16(399), + 17: uint16(399), + 18: uint16(399), + 21: uint16(214), + 22: uint16(1093), + 23: uint16(1828), + 24: uint16(1828), + 25: uint16(1828), + 26: uint16(1828), + 27: uint16(1828), + 28: uint16(1828), + 29: uint16(1828), + 30: uint16(1828), + 31: uint16(1828), + 32: uint16(1828), + 33: uint16(1828), + 34: uint16(1828), + 35: uint16(1828), + 36: uint16(1828), + 37: uint16(1828), + 38: uint16(1130), + 39: uint16(1130), + 40: uint16(365), + 41: uint16(365), + 42: uint16(55), + 43: uint16(278), + 44: uint16(436), + 45: uint16(713), + 46: uint16(713), + 47: uint16(201), + 48: uint16(201), + 49: uint16(201), + 50: uint16(201), + 51: uint16(40), + 52: uint16(111), + 53: uint16(258), + 54: uint16(361), + 55: uint16(469), + 56: uint16(512), + 57: uint16(583), + 58: uint16(622), + 59: uint16(693), + 60: uint16(732), + 61: uint16(803), + 62: uint16(842), + 63: uint16(913), + 64: uint16(1073), 65: uint16(1093), 66: uint16(1093), 67: uint16(1093), @@ -156153,1505 +157651,1514 @@ var _yy_shift_ofst = [579]uint16{ 71: uint16(1093), 72: uint16(1093), 73: uint16(1093), - 74: uint16(1113), + 74: uint16(1093), 75: uint16(1093), - 76: uint16(1216), - 77: uint16(957), - 78: uint16(957), - 79: uint16(1635), - 80: uint16(1662), - 81: uint16(1777), - 82: uint16(1837), - 83: uint16(1837), - 84: uint16(1837), - 85: uint16(1837), - 86: uint16(1837), - 87: uint16(1837), - 88: uint16(1837), - 89: uint16(1837), - 90: uint16(1837), - 91: uint16(1837), - 92: uint16(1837), - 93: uint16(1837), - 94: uint16(1837), - 95: uint16(1837), - 96: uint16(1837), - 97: uint16(1837), - 98: uint16(1837), - 99: uint16(1837), - 100: uint16(1837), - 101: uint16(1837), - 102: uint16(1837), - 103: uint16(1837), - 104: uint16(1837), - 105: uint16(1837), - 106: uint16(1837), - 107: uint16(1837), - 108: uint16(1837), - 109: uint16(1837), - 110: uint16(1837), - 111: uint16(1837), - 112: uint16(1837), - 113: uint16(1837), - 114: uint16(1837), - 115: uint16(1837), - 116: uint16(1837), - 117: uint16(1837), - 118: uint16(1837), - 119: uint16(1837), - 120: uint16(1837), - 121: uint16(1837), - 122: uint16(1837), - 123: uint16(1837), - 124: uint16(1837), - 125: uint16(1837), - 126: uint16(1837), - 127: uint16(1837), - 128: uint16(1837), - 129: uint16(1837), - 130: uint16(1837), - 131: uint16(137), - 132: uint16(181), - 133: uint16(181), - 134: uint16(181), - 135: uint16(181), - 136: uint16(181), - 137: uint16(181), - 138: uint16(181), - 139: uint16(94), - 140: uint16(430), - 141: uint16(66), - 142: uint16(65), - 143: uint16(112), - 144: uint16(366), - 145: uint16(533), - 146: uint16(533), - 147: uint16(740), - 148: uint16(1257), - 149: uint16(533), - 150: uint16(533), - 151: uint16(79), - 152: uint16(79), - 153: uint16(533), - 154: uint16(412), - 155: uint16(412), - 156: uint16(412), - 157: uint16(77), - 158: uint16(412), - 159: uint16(123), - 160: uint16(113), - 161: uint16(113), - 162: uint16(113), - 163: uint16(22), - 164: uint16(22), - 165: uint16(2100), - 166: uint16(2100), - 167: uint16(328), - 168: uint16(328), - 169: uint16(328), - 170: uint16(239), - 171: uint16(468), - 172: uint16(468), - 173: uint16(468), - 174: uint16(468), - 175: uint16(1015), - 176: uint16(1015), - 177: uint16(409), - 178: uint16(366), - 179: uint16(1187), - 180: uint16(1232), - 181: uint16(533), - 182: uint16(533), - 183: uint16(533), - 184: uint16(533), - 185: uint16(533), - 186: uint16(533), - 187: uint16(533), - 188: uint16(533), - 189: uint16(533), - 190: uint16(533), - 191: uint16(533), - 192: uint16(533), - 193: uint16(533), - 194: uint16(533), - 195: uint16(533), - 196: uint16(533), - 197: uint16(533), - 198: uint16(533), - 199: uint16(533), - 200: uint16(533), - 201: uint16(969), - 202: uint16(621), - 203: uint16(621), - 204: uint16(533), - 205: uint16(642), - 206: uint16(788), - 207: uint16(788), - 208: uint16(1133), - 209: uint16(1133), - 210: uint16(822), - 211: uint16(822), - 212: uint16(67), - 213: uint16(1193), - 214: uint16(2100), - 215: uint16(2100), - 216: uint16(2100), - 217: uint16(2100), - 218: uint16(2100), - 219: uint16(2100), - 220: uint16(2100), - 221: uint16(1307), - 222: uint16(954), - 223: uint16(954), - 224: uint16(585), - 225: uint16(472), - 226: uint16(640), - 227: uint16(387), - 228: uint16(695), - 229: uint16(538), - 230: uint16(541), - 231: uint16(700), - 232: uint16(533), - 233: uint16(533), - 234: uint16(533), - 235: uint16(533), - 236: uint16(533), - 237: uint16(533), - 238: uint16(533), - 239: uint16(533), - 240: uint16(533), - 241: uint16(533), - 242: uint16(222), - 243: uint16(533), - 244: uint16(533), - 245: uint16(533), - 246: uint16(533), - 247: uint16(533), - 248: uint16(533), - 249: uint16(533), - 250: uint16(533), - 251: uint16(533), - 252: uint16(533), - 253: uint16(533), - 254: uint16(533), - 255: uint16(1213), - 256: uint16(1213), - 257: uint16(1213), - 258: uint16(533), - 259: uint16(533), - 260: uint16(533), - 261: uint16(565), - 262: uint16(533), - 263: uint16(533), - 264: uint16(533), - 265: uint16(916), - 266: uint16(1147), - 267: uint16(533), - 268: uint16(533), - 269: uint16(1288), - 270: uint16(533), - 271: uint16(533), - 272: uint16(533), - 273: uint16(533), - 274: uint16(533), - 275: uint16(533), - 276: uint16(533), - 277: uint16(533), - 278: uint16(639), - 279: uint16(1280), - 280: uint16(209), - 281: uint16(1129), - 282: uint16(1129), - 283: uint16(1129), - 284: uint16(1129), - 285: uint16(580), - 286: uint16(209), - 287: uint16(209), - 288: uint16(1209), - 289: uint16(768), - 290: uint16(917), - 291: uint16(649), - 292: uint16(1315), - 293: uint16(1334), - 294: uint16(405), - 295: uint16(1334), - 296: uint16(1383), - 297: uint16(249), - 298: uint16(1315), - 299: uint16(1315), - 300: uint16(249), - 301: uint16(1315), - 302: uint16(405), - 303: uint16(1383), - 304: uint16(1441), - 305: uint16(464), - 306: uint16(1245), - 307: uint16(1417), - 308: uint16(1417), - 309: uint16(1417), - 310: uint16(1323), - 311: uint16(1323), - 312: uint16(1323), - 313: uint16(1323), - 314: uint16(184), - 315: uint16(184), - 316: uint16(1335), - 317: uint16(1476), - 318: uint16(856), - 319: uint16(1482), - 320: uint16(1744), - 321: uint16(1744), - 322: uint16(1665), - 323: uint16(1665), - 324: uint16(1773), - 325: uint16(1773), - 326: uint16(1665), - 327: uint16(1669), - 328: uint16(1671), - 329: uint16(1802), - 330: uint16(1782), - 331: uint16(1809), - 332: uint16(1809), - 333: uint16(1809), - 334: uint16(1809), - 335: uint16(1665), - 336: uint16(1817), - 337: uint16(1690), - 338: uint16(1671), - 339: uint16(1671), - 340: uint16(1690), - 341: uint16(1802), - 342: uint16(1782), - 343: uint16(1690), - 344: uint16(1782), - 345: uint16(1690), - 346: uint16(1665), - 347: uint16(1817), - 348: uint16(1693), - 349: uint16(1791), - 350: uint16(1665), - 351: uint16(1817), - 352: uint16(1832), - 353: uint16(1665), - 354: uint16(1817), - 355: uint16(1665), - 356: uint16(1817), - 357: uint16(1832), - 358: uint16(1752), - 359: uint16(1752), - 360: uint16(1752), - 361: uint16(1805), - 362: uint16(1850), - 363: uint16(1850), - 364: uint16(1832), - 365: uint16(1752), - 366: uint16(1749), - 367: uint16(1752), - 368: uint16(1805), - 369: uint16(1752), - 370: uint16(1752), - 371: uint16(1713), - 372: uint16(1858), - 373: uint16(1775), - 374: uint16(1775), - 375: uint16(1832), - 376: uint16(1665), - 377: uint16(1799), - 378: uint16(1799), - 379: uint16(1823), - 380: uint16(1823), - 381: uint16(1761), - 382: uint16(1765), - 383: uint16(1890), - 384: uint16(1665), - 385: uint16(1757), - 386: uint16(1761), - 387: uint16(1771), - 388: uint16(1774), - 389: uint16(1690), - 390: uint16(1894), - 391: uint16(1913), - 392: uint16(1913), - 393: uint16(1929), - 394: uint16(1929), - 395: uint16(1929), - 396: uint16(2100), - 397: uint16(2100), - 398: uint16(2100), - 399: uint16(2100), - 400: uint16(2100), - 401: uint16(2100), - 402: uint16(2100), - 403: uint16(2100), - 404: uint16(2100), - 405: uint16(2100), - 406: uint16(2100), - 407: uint16(2100), - 408: uint16(2100), - 409: uint16(2100), - 410: uint16(2100), - 411: uint16(207), - 412: uint16(1220), - 413: uint16(331), - 414: uint16(620), - 415: uint16(967), - 416: uint16(806), - 417: uint16(1074), - 418: uint16(1499), - 419: uint16(1432), - 420: uint16(1463), - 421: uint16(1479), - 422: uint16(1419), - 423: uint16(1422), - 424: uint16(1557), - 425: uint16(1512), - 426: uint16(1598), - 427: uint16(1599), - 428: uint16(1644), - 429: uint16(1645), - 430: uint16(1654), - 431: uint16(1660), - 432: uint16(1555), - 433: uint16(1505), - 434: uint16(1684), - 435: uint16(1462), - 436: uint16(1670), - 437: uint16(1563), - 438: uint16(1619), - 439: uint16(1593), - 440: uint16(1676), - 441: uint16(1679), - 442: uint16(1613), - 443: uint16(1680), - 444: uint16(1554), - 445: uint16(1558), - 446: uint16(1689), - 447: uint16(1692), - 448: uint16(1605), - 449: uint16(1589), - 450: uint16(1955), - 451: uint16(1959), - 452: uint16(1941), - 453: uint16(1803), - 454: uint16(1950), - 455: uint16(1951), - 456: uint16(1945), - 457: uint16(1946), - 458: uint16(1831), - 459: uint16(1820), - 460: uint16(1842), - 461: uint16(1948), - 462: uint16(1948), - 463: uint16(1952), - 464: uint16(1833), - 465: uint16(1954), - 466: uint16(1834), - 467: uint16(1961), - 468: uint16(1978), - 469: uint16(1838), - 470: uint16(1851), - 471: uint16(1948), - 472: uint16(1852), - 473: uint16(1922), - 474: uint16(1947), - 475: uint16(1948), - 476: uint16(1836), - 477: uint16(1932), - 478: uint16(1935), - 479: uint16(1936), - 480: uint16(1942), - 481: uint16(1866), - 482: uint16(1881), - 483: uint16(1964), - 484: uint16(1859), - 485: uint16(1998), - 486: uint16(1996), - 487: uint16(1980), - 488: uint16(1888), - 489: uint16(1843), - 490: uint16(1937), - 491: uint16(1981), - 492: uint16(1939), - 493: uint16(1933), - 494: uint16(1968), - 495: uint16(1869), - 496: uint16(1896), - 497: uint16(1988), - 498: uint16(1993), - 499: uint16(1995), - 500: uint16(1884), - 501: uint16(1891), - 502: uint16(1997), - 503: uint16(1953), - 504: uint16(1999), - 505: uint16(2000), - 506: uint16(1994), - 507: uint16(2001), - 508: uint16(1957), - 509: uint16(1966), - 510: uint16(2002), - 511: uint16(1931), - 512: uint16(1990), - 513: uint16(2006), - 514: uint16(1962), - 515: uint16(2003), - 516: uint16(2007), - 517: uint16(2004), - 518: uint16(1882), - 519: uint16(2010), - 520: uint16(2011), - 521: uint16(2012), - 522: uint16(2008), - 523: uint16(2013), - 524: uint16(2015), - 525: uint16(1944), - 526: uint16(1898), - 527: uint16(2019), - 528: uint16(2020), - 529: uint16(1928), - 530: uint16(2014), - 531: uint16(2023), - 532: uint16(1903), - 533: uint16(2022), - 534: uint16(2016), - 535: uint16(2017), - 536: uint16(2018), - 537: uint16(2021), - 538: uint16(1965), - 539: uint16(1974), - 540: uint16(1970), - 541: uint16(2024), - 542: uint16(1979), - 543: uint16(1967), - 544: uint16(2025), - 545: uint16(2034), - 546: uint16(2036), - 547: uint16(2037), - 548: uint16(2038), - 549: uint16(2039), - 550: uint16(2028), - 551: uint16(1923), - 552: uint16(1924), - 553: uint16(2044), - 554: uint16(2022), - 555: uint16(2046), - 556: uint16(2047), - 557: uint16(2048), - 558: uint16(2049), - 559: uint16(2050), - 560: uint16(2051), - 561: uint16(2054), - 562: uint16(2062), - 563: uint16(2055), - 564: uint16(2056), - 565: uint16(2057), - 566: uint16(2058), - 567: uint16(2060), - 568: uint16(2061), - 569: uint16(2059), - 570: uint16(1956), - 571: uint16(1938), - 572: uint16(1949), - 573: uint16(1958), - 574: uint16(2063), - 575: uint16(2064), - 576: uint16(2070), - 577: uint16(2085), - 578: uint16(2088), -} -var _yy_reduce_ofst = [411]int16{ - 0: int16(-int32(125)), - 1: int16(733), - 2: int16(789), - 3: int16(241), - 4: int16(293), - 5: int16(-int32(123)), - 6: int16(-int32(193)), - 7: int16(-int32(191)), - 8: int16(-int32(183)), - 9: int16(-int32(187)), - 10: int16(166), - 11: int16(238), - 12: int16(133), - 13: int16(-int32(207)), - 14: int16(-int32(199)), - 15: int16(-int32(267)), - 16: int16(-int32(176)), - 17: int16(-int32(6)), - 18: int16(204), - 19: int16(489), - 20: int16(576), - 21: int16(598), - 22: int16(-int32(175)), - 23: int16(686), - 24: int16(860), - 25: int16(615), - 26: int16(725), - 27: int16(1014), - 28: int16(778), - 29: int16(781), - 30: int16(857), - 31: int16(616), - 32: int16(887), - 33: int16(87), - 34: int16(240), - 35: int16(-int32(192)), - 36: int16(408), - 37: int16(626), - 38: int16(796), - 39: int16(843), - 40: int16(854), - 41: int16(1004), - 42: int16(-int32(271)), - 43: int16(-int32(271)), - 44: int16(-int32(271)), - 45: int16(-int32(271)), - 46: int16(-int32(271)), - 47: int16(-int32(271)), - 48: int16(-int32(271)), - 49: int16(-int32(271)), - 50: int16(-int32(271)), - 51: int16(-int32(271)), - 52: int16(-int32(271)), - 53: int16(-int32(271)), - 54: int16(-int32(271)), - 55: int16(-int32(271)), - 56: int16(-int32(271)), - 57: int16(-int32(271)), - 58: int16(-int32(271)), - 59: int16(-int32(271)), - 60: int16(-int32(271)), - 61: int16(-int32(271)), - 62: int16(-int32(271)), - 63: int16(-int32(271)), - 64: int16(-int32(271)), - 65: int16(-int32(271)), - 66: int16(-int32(271)), - 67: int16(-int32(271)), - 68: int16(-int32(271)), - 69: int16(-int32(271)), - 70: int16(-int32(271)), - 71: int16(-int32(271)), - 72: int16(-int32(271)), - 73: int16(-int32(271)), - 74: int16(-int32(271)), - 75: int16(-int32(271)), - 76: int16(-int32(271)), - 77: int16(-int32(271)), - 78: int16(-int32(271)), - 79: int16(80), - 80: int16(83), - 81: int16(313), - 82: int16(886), - 83: int16(888), - 84: int16(918), - 85: int16(938), - 86: int16(1021), - 87: int16(1034), - 88: int16(1036), - 89: int16(1141), - 90: int16(1159), - 91: int16(1163), - 92: int16(1166), - 93: int16(1168), - 94: int16(1170), - 95: int16(1176), - 96: int16(1178), - 97: int16(1180), - 98: int16(1184), - 99: int16(1196), - 100: int16(1198), - 101: int16(1205), - 102: int16(1215), - 103: int16(1225), - 104: int16(1227), - 105: int16(1236), - 106: int16(1252), - 107: int16(1254), - 108: int16(1264), - 109: int16(1303), - 110: int16(1309), - 111: int16(1312), - 112: int16(1322), - 113: int16(1325), - 114: int16(1328), - 115: int16(1337), - 116: int16(1340), - 117: int16(1343), - 118: int16(1353), - 119: int16(1371), - 120: int16(1373), - 121: int16(1384), - 122: int16(1386), - 123: int16(1411), - 124: int16(1413), - 125: int16(1420), - 126: int16(1424), - 127: int16(1426), - 128: int16(1458), - 129: int16(1470), - 130: int16(1473), - 131: int16(-int32(271)), - 132: int16(-int32(271)), - 133: int16(-int32(271)), - 134: int16(-int32(271)), - 135: int16(-int32(271)), - 136: int16(-int32(271)), - 137: int16(-int32(271)), - 138: int16(-int32(271)), - 139: int16(-int32(271)), - 140: int16(-int32(271)), - 141: int16(-int32(271)), - 142: int16(138), - 143: int16(459), - 144: int16(396), - 145: int16(-int32(158)), - 146: int16(470), - 147: int16(302), - 148: int16(-int32(212)), - 149: int16(521), - 150: int16(201), - 151: int16(-int32(195)), - 152: int16(-int32(92)), - 153: int16(559), - 154: int16(630), - 155: int16(632), - 156: int16(630), - 157: int16(-int32(271)), - 158: int16(632), - 159: int16(901), - 160: int16(63), - 161: int16(407), - 162: int16(670), - 163: int16(-int32(271)), - 164: int16(-int32(271)), - 165: int16(-int32(271)), - 166: int16(-int32(271)), - 167: int16(161), - 168: int16(161), - 169: int16(161), - 170: int16(251), - 171: int16(335), - 172: int16(847), - 173: int16(979), - 174: int16(1097), - 175: int16(537), - 176: int16(588), - 177: int16(618), - 178: int16(628), - 179: int16(688), - 180: int16(688), - 181: int16(-int32(166)), - 182: int16(-int32(161)), - 183: int16(674), - 184: int16(787), - 185: int16(794), - 186: int16(799), - 187: int16(852), - 188: int16(996), - 189: int16(-int32(122)), - 190: int16(837), - 191: int16(-int32(120)), - 192: int16(1018), - 193: int16(1035), - 194: int16(415), - 195: int16(1047), - 196: int16(1001), - 197: int16(958), - 198: int16(1082), - 199: int16(400), - 200: int16(1099), - 201: int16(779), - 202: int16(1137), - 203: int16(1142), - 204: int16(263), - 205: int16(1083), - 206: int16(1145), - 207: int16(1150), - 208: int16(1041), - 209: int16(1139), - 210: int16(965), - 211: int16(1050), - 212: int16(362), - 213: int16(849), - 214: int16(752), - 215: int16(629), - 216: int16(675), - 217: int16(1162), - 218: int16(1173), - 219: int16(1090), - 220: int16(1195), - 221: int16(-int32(194)), - 222: int16(56), - 223: int16(185), - 224: int16(-int32(135)), - 225: int16(232), - 226: int16(522), - 227: int16(560), - 228: int16(571), - 229: int16(601), - 230: int16(617), - 231: int16(669), - 232: int16(683), - 233: int16(711), - 234: int16(850), - 235: int16(893), - 236: int16(1000), - 237: int16(1040), - 238: int16(1049), - 239: int16(1081), - 240: int16(1087), - 241: int16(1101), - 242: int16(392), - 243: int16(1114), - 244: int16(1123), - 245: int16(1155), - 246: int16(1161), - 247: int16(1175), - 248: int16(1271), - 249: int16(1293), - 250: int16(1299), - 251: int16(1330), - 252: int16(1339), - 253: int16(1342), - 254: int16(1347), - 255: int16(593), - 256: int16(1282), - 257: int16(1286), - 258: int16(1350), - 259: int16(1359), - 260: int16(1368), - 261: int16(1314), - 262: int16(1480), - 263: int16(1483), - 264: int16(1507), - 265: int16(1085), - 266: int16(1338), - 267: int16(1526), - 268: int16(1527), - 269: int16(1487), - 270: int16(1531), - 271: int16(560), - 272: int16(1532), - 273: int16(1534), - 274: int16(1535), - 275: int16(1538), - 276: int16(1539), - 277: int16(1541), - 278: int16(1448), - 279: int16(1450), - 280: int16(1496), - 281: int16(1484), - 282: int16(1485), - 283: int16(1489), - 284: int16(1490), - 285: int16(1314), - 286: int16(1496), - 287: int16(1496), - 288: int16(1504), - 289: int16(1536), - 290: int16(1564), - 291: int16(1451), - 292: int16(1486), - 293: int16(1492), - 294: int16(1509), - 295: int16(1493), - 296: int16(1465), - 297: int16(1515), - 298: int16(1494), - 299: int16(1495), - 300: int16(1517), - 301: int16(1500), - 302: int16(1519), - 303: int16(1474), - 304: int16(1550), - 305: int16(1543), - 306: int16(1548), - 307: int16(1556), - 308: int16(1565), - 309: int16(1566), - 310: int16(1518), - 311: int16(1523), - 312: int16(1542), - 313: int16(1544), - 314: int16(1525), - 315: int16(1545), - 316: int16(1513), - 317: int16(1553), - 318: int16(1552), - 319: int16(1604), - 320: int16(1508), - 321: int16(1510), - 322: int16(1608), - 323: int16(1609), - 324: int16(1520), - 325: int16(1528), - 326: int16(1612), - 327: int16(1540), - 328: int16(1559), - 329: int16(1560), - 330: int16(1592), - 331: int16(1591), - 332: int16(1595), - 333: int16(1596), - 334: int16(1597), - 335: int16(1629), - 336: int16(1638), - 337: int16(1594), - 338: int16(1569), - 339: int16(1570), - 340: int16(1600), - 341: int16(1568), - 342: int16(1610), - 343: int16(1601), - 344: int16(1611), - 345: int16(1603), - 346: int16(1643), - 347: int16(1651), - 348: int16(1562), - 349: int16(1571), - 350: int16(1655), - 351: int16(1659), - 352: int16(1640), - 353: int16(1663), - 354: int16(1666), - 355: int16(1664), - 356: int16(1667), - 357: int16(1641), - 358: int16(1650), - 359: int16(1652), - 360: int16(1653), - 361: int16(1647), - 362: int16(1656), - 363: int16(1657), - 364: int16(1658), - 365: int16(1668), - 366: int16(1672), - 367: int16(1681), - 368: int16(1649), - 369: int16(1682), - 370: int16(1683), - 371: int16(1573), - 372: int16(1582), - 373: int16(1607), - 374: int16(1615), - 375: int16(1685), - 376: int16(1702), - 377: int16(1586), - 378: int16(1587), - 379: int16(1642), - 380: int16(1646), - 381: int16(1673), - 382: int16(1675), - 383: int16(1636), - 384: int16(1714), - 385: int16(1637), - 386: int16(1677), - 387: int16(1674), - 388: int16(1678), - 389: int16(1694), - 390: int16(1719), - 391: int16(1734), - 392: int16(1735), - 393: int16(1746), - 394: int16(1747), - 395: int16(1750), - 396: int16(1633), - 397: int16(1661), + 76: uint16(1093), + 77: uint16(1093), + 78: uint16(1093), + 79: uint16(1093), + 80: uint16(1093), + 81: uint16(1093), + 82: uint16(1093), + 83: uint16(1113), + 84: uint16(1093), + 85: uint16(1216), + 86: uint16(957), + 87: uint16(957), + 88: uint16(1523), + 89: uint16(1602), + 90: uint16(1674), + 91: uint16(1828), + 92: uint16(1828), + 93: uint16(1828), + 94: uint16(1828), + 95: uint16(1828), + 96: uint16(1828), + 97: uint16(1828), + 98: uint16(1828), + 99: uint16(1828), + 100: uint16(1828), + 101: uint16(1828), + 102: uint16(1828), + 103: uint16(1828), + 104: uint16(1828), + 105: uint16(1828), + 106: uint16(1828), + 107: uint16(1828), + 108: uint16(1828), + 109: uint16(1828), + 110: uint16(1828), + 111: uint16(1828), + 112: uint16(1828), + 113: uint16(1828), + 114: uint16(1828), + 115: uint16(1828), + 116: uint16(1828), + 117: uint16(1828), + 118: uint16(1828), + 119: uint16(1828), + 120: uint16(1828), + 121: uint16(1828), + 122: uint16(1828), + 123: uint16(1828), + 124: uint16(1828), + 125: uint16(1828), + 126: uint16(1828), + 127: uint16(1828), + 128: uint16(1828), + 129: uint16(1828), + 130: uint16(1828), + 131: uint16(1828), + 132: uint16(1828), + 133: uint16(1828), + 134: uint16(1828), + 135: uint16(1828), + 136: uint16(1828), + 137: uint16(1828), + 138: uint16(1828), + 139: uint16(1828), + 140: uint16(137), + 141: uint16(181), + 142: uint16(181), + 143: uint16(181), + 144: uint16(181), + 145: uint16(181), + 146: uint16(181), + 147: uint16(181), + 148: uint16(96), + 149: uint16(222), + 150: uint16(143), + 151: uint16(477), + 152: uint16(713), + 153: uint16(1133), + 154: uint16(1268), + 155: uint16(713), + 156: uint16(713), + 157: uint16(79), + 158: uint16(79), + 159: uint16(713), + 160: uint16(770), + 161: uint16(83), + 162: uint16(65), + 163: uint16(65), + 164: uint16(65), + 165: uint16(288), + 166: uint16(162), + 167: uint16(162), + 168: uint16(2142), + 169: uint16(2142), + 170: uint16(696), + 171: uint16(696), + 172: uint16(696), + 173: uint16(238), + 174: uint16(474), + 175: uint16(474), + 176: uint16(474), + 177: uint16(474), + 178: uint16(1217), + 179: uint16(1217), + 180: uint16(678), + 181: uint16(477), + 182: uint16(324), + 183: uint16(398), + 184: uint16(713), + 185: uint16(713), + 186: uint16(713), + 187: uint16(713), + 188: uint16(713), + 189: uint16(713), + 190: uint16(713), + 191: uint16(713), + 192: uint16(713), + 193: uint16(713), + 194: uint16(713), + 195: uint16(713), + 196: uint16(713), + 197: uint16(713), + 198: uint16(713), + 199: uint16(713), + 200: uint16(713), + 201: uint16(713), + 202: uint16(713), + 203: uint16(1220), + 204: uint16(366), + 205: uint16(366), + 206: uint16(713), + 207: uint16(917), + 208: uint16(283), + 209: uint16(283), + 210: uint16(434), + 211: uint16(434), + 212: uint16(605), + 213: uint16(605), + 214: uint16(1298), + 215: uint16(2142), + 216: uint16(2142), + 217: uint16(2142), + 218: uint16(2142), + 219: uint16(2142), + 220: uint16(2142), + 221: uint16(2142), + 222: uint16(1179), + 223: uint16(1157), + 224: uint16(1157), + 225: uint16(487), + 226: uint16(527), + 227: uint16(585), + 228: uint16(645), + 229: uint16(749), + 230: uint16(914), + 231: uint16(968), + 232: uint16(752), + 233: uint16(713), + 234: uint16(713), + 235: uint16(713), + 236: uint16(713), + 237: uint16(713), + 238: uint16(713), + 239: uint16(713), + 240: uint16(713), + 241: uint16(713), + 242: uint16(713), + 243: uint16(303), + 244: uint16(713), + 245: uint16(713), + 246: uint16(713), + 247: uint16(713), + 248: uint16(713), + 249: uint16(713), + 250: uint16(713), + 251: uint16(713), + 252: uint16(713), + 253: uint16(713), + 254: uint16(713), + 255: uint16(713), + 256: uint16(797), + 257: uint16(797), + 258: uint16(797), + 259: uint16(713), + 260: uint16(713), + 261: uint16(713), + 262: uint16(959), + 263: uint16(713), + 264: uint16(713), + 265: uint16(713), + 266: uint16(1169), + 267: uint16(1271), + 268: uint16(713), + 269: uint16(713), + 270: uint16(1330), + 271: uint16(713), + 272: uint16(713), + 273: uint16(713), + 274: uint16(713), + 275: uint16(713), + 276: uint16(713), + 277: uint16(713), + 278: uint16(713), + 279: uint16(629), + 280: uint16(7), + 281: uint16(91), + 282: uint16(876), + 283: uint16(876), + 284: uint16(876), + 285: uint16(876), + 286: uint16(953), + 287: uint16(91), + 288: uint16(91), + 289: uint16(1246), + 290: uint16(1065), + 291: uint16(1106), + 292: uint16(1374), + 293: uint16(1329), + 294: uint16(1348), + 295: uint16(468), + 296: uint16(1348), + 297: uint16(1394), + 298: uint16(785), + 299: uint16(1329), + 300: uint16(1329), + 301: uint16(785), + 302: uint16(1329), + 303: uint16(468), + 304: uint16(1394), + 305: uint16(859), + 306: uint16(854), + 307: uint16(1402), + 308: uint16(1449), + 309: uint16(1449), + 310: uint16(1449), + 311: uint16(1173), + 312: uint16(1173), + 313: uint16(1173), + 314: uint16(1173), + 315: uint16(1355), + 316: uint16(1355), + 317: uint16(1030), + 318: uint16(1341), + 319: uint16(405), + 320: uint16(1230), + 321: uint16(1795), + 322: uint16(1795), + 323: uint16(1711), + 324: uint16(1711), + 325: uint16(1829), + 326: uint16(1829), + 327: uint16(1711), + 328: uint16(1717), + 329: uint16(1719), + 330: uint16(1850), + 331: uint16(1833), + 332: uint16(1860), + 333: uint16(1860), + 334: uint16(1860), + 335: uint16(1860), + 336: uint16(1711), + 337: uint16(1868), + 338: uint16(1740), + 339: uint16(1719), + 340: uint16(1719), + 341: uint16(1740), + 342: uint16(1850), + 343: uint16(1833), + 344: uint16(1740), + 345: uint16(1833), + 346: uint16(1740), + 347: uint16(1711), + 348: uint16(1868), + 349: uint16(1745), + 350: uint16(1843), + 351: uint16(1711), + 352: uint16(1868), + 353: uint16(1887), + 354: uint16(1711), + 355: uint16(1868), + 356: uint16(1711), + 357: uint16(1868), + 358: uint16(1887), + 359: uint16(1801), + 360: uint16(1801), + 361: uint16(1801), + 362: uint16(1855), + 363: uint16(1900), + 364: uint16(1900), + 365: uint16(1887), + 366: uint16(1801), + 367: uint16(1797), + 368: uint16(1801), + 369: uint16(1855), + 370: uint16(1801), + 371: uint16(1801), + 372: uint16(1761), + 373: uint16(1912), + 374: uint16(1830), + 375: uint16(1830), + 376: uint16(1887), + 377: uint16(1711), + 378: uint16(1862), + 379: uint16(1862), + 380: uint16(1875), + 381: uint16(1875), + 382: uint16(1810), + 383: uint16(1815), + 384: uint16(1940), + 385: uint16(1711), + 386: uint16(1807), + 387: uint16(1810), + 388: uint16(1821), + 389: uint16(1823), + 390: uint16(1740), + 391: uint16(1945), + 392: uint16(1963), + 393: uint16(1963), + 394: uint16(1974), + 395: uint16(1974), + 396: uint16(1974), + 397: uint16(2142), + 398: uint16(2142), + 399: uint16(2142), + 400: uint16(2142), + 401: uint16(2142), + 402: uint16(2142), + 403: uint16(2142), + 404: uint16(2142), + 405: uint16(2142), + 406: uint16(2142), + 407: uint16(2142), + 408: uint16(2142), + 409: uint16(2142), + 410: uint16(2142), + 411: uint16(2142), + 412: uint16(20), + 413: uint16(1224), + 414: uint16(256), + 415: uint16(1111), + 416: uint16(1115), + 417: uint16(1114), + 418: uint16(1192), + 419: uint16(1496), + 420: uint16(1424), + 421: uint16(1505), + 422: uint16(1427), + 423: uint16(355), + 424: uint16(1383), + 425: uint16(1537), + 426: uint16(1506), + 427: uint16(1538), + 428: uint16(1553), + 429: uint16(1583), + 430: uint16(1584), + 431: uint16(1591), + 432: uint16(1625), + 433: uint16(541), + 434: uint16(1445), + 435: uint16(1562), + 436: uint16(1450), + 437: uint16(1572), + 438: uint16(1515), + 439: uint16(1428), + 440: uint16(1532), + 441: uint16(1592), + 442: uint16(1629), + 443: uint16(1520), + 444: uint16(1630), + 445: uint16(1639), + 446: uint16(1510), + 447: uint16(1544), + 448: uint16(1662), + 449: uint16(1675), + 450: uint16(1551), + 451: uint16(48), + 452: uint16(1996), + 453: uint16(2001), + 454: uint16(1983), + 455: uint16(1844), + 456: uint16(1993), + 457: uint16(1994), + 458: uint16(1986), + 459: uint16(1989), + 460: uint16(1874), + 461: uint16(1863), + 462: uint16(1885), + 463: uint16(1991), + 464: uint16(1991), + 465: uint16(1995), + 466: uint16(1876), + 467: uint16(1997), + 468: uint16(1877), + 469: uint16(2004), + 470: uint16(2021), + 471: uint16(1881), + 472: uint16(1894), + 473: uint16(1991), + 474: uint16(1895), + 475: uint16(1965), + 476: uint16(1990), + 477: uint16(1991), + 478: uint16(1878), + 479: uint16(1975), + 480: uint16(1977), + 481: uint16(1978), + 482: uint16(1979), + 483: uint16(1903), + 484: uint16(1918), + 485: uint16(2002), + 486: uint16(1896), + 487: uint16(2034), + 488: uint16(2033), + 489: uint16(2017), + 490: uint16(1925), + 491: uint16(1880), + 492: uint16(1976), + 493: uint16(2018), + 494: uint16(1980), + 495: uint16(1967), + 496: uint16(2005), + 497: uint16(1904), + 498: uint16(1932), + 499: uint16(2025), + 500: uint16(2030), + 501: uint16(2032), + 502: uint16(1921), + 503: uint16(1928), + 504: uint16(2035), + 505: uint16(1987), + 506: uint16(2036), + 507: uint16(2037), + 508: uint16(2038), + 509: uint16(2040), + 510: uint16(1988), + 511: uint16(2006), + 512: uint16(2039), + 513: uint16(1960), + 514: uint16(2041), + 515: uint16(2042), + 516: uint16(1999), + 517: uint16(2023), + 518: uint16(2044), + 519: uint16(2043), + 520: uint16(1919), + 521: uint16(2048), + 522: uint16(2049), + 523: uint16(2050), + 524: uint16(2046), + 525: uint16(2051), + 526: uint16(2053), + 527: uint16(1981), + 528: uint16(1935), + 529: uint16(2056), + 530: uint16(2057), + 531: uint16(1966), + 532: uint16(2047), + 533: uint16(2061), + 534: uint16(1941), + 535: uint16(2060), + 536: uint16(2052), + 537: uint16(2054), + 538: uint16(2055), + 539: uint16(2058), + 540: uint16(2003), + 541: uint16(2012), + 542: uint16(2007), + 543: uint16(2059), + 544: uint16(2015), + 545: uint16(2008), + 546: uint16(2062), + 547: uint16(2071), + 548: uint16(2073), + 549: uint16(2074), + 550: uint16(2072), + 551: uint16(2075), + 552: uint16(2065), + 553: uint16(1962), + 554: uint16(1964), + 555: uint16(2079), + 556: uint16(2060), + 557: uint16(2082), + 558: uint16(2084), + 559: uint16(2085), + 560: uint16(2087), + 561: uint16(2086), + 562: uint16(2089), + 563: uint16(2088), + 564: uint16(2091), + 565: uint16(2093), + 566: uint16(2099), + 567: uint16(2094), + 568: uint16(2095), + 569: uint16(2096), + 570: uint16(2097), + 571: uint16(2100), + 572: uint16(2101), + 573: uint16(2102), + 574: uint16(1998), + 575: uint16(1984), + 576: uint16(1985), + 577: uint16(2000), + 578: uint16(2103), + 579: uint16(2098), + 580: uint16(2109), + 581: uint16(2117), + 582: uint16(2128), +} +var _yy_reduce_ofst = [412]int16{ + 0: int16(-int32(71)), + 1: int16(194), + 2: int16(343), + 3: int16(835), + 4: int16(-int32(180)), + 5: int16(-int32(177)), + 6: int16(838), + 7: int16(-int32(194)), + 8: int16(-int32(188)), + 9: int16(-int32(185)), + 10: int16(-int32(183)), + 11: int16(82), + 12: int16(183), + 13: int16(-int32(65)), + 14: int16(133), + 15: int16(245), + 16: int16(346), + 17: int16(407), + 18: int16(458), + 19: int16(-int32(178)), + 20: int16(75), + 21: int16(-int32(275)), + 22: int16(-int32(4)), + 23: int16(310), + 24: int16(312), + 25: int16(489), + 26: int16(575), + 27: int16(596), + 28: int16(463), + 29: int16(686), + 30: int16(707), + 31: int16(725), + 32: int16(780), + 33: int16(1098), + 34: int16(856), + 35: int16(778), + 36: int16(1059), + 37: int16(1090), + 38: int16(708), + 39: int16(887), + 40: int16(86), + 41: int16(448), + 42: int16(980), + 43: int16(630), + 44: int16(680), + 45: int16(681), + 46: int16(684), + 47: int16(796), + 48: int16(801), + 49: int16(796), + 50: int16(801), + 51: int16(-int32(261)), + 52: int16(-int32(261)), + 53: int16(-int32(261)), + 54: int16(-int32(261)), + 55: int16(-int32(261)), + 56: int16(-int32(261)), + 57: int16(-int32(261)), + 58: int16(-int32(261)), + 59: int16(-int32(261)), + 60: int16(-int32(261)), + 61: int16(-int32(261)), + 62: int16(-int32(261)), + 63: int16(-int32(261)), + 64: int16(-int32(261)), + 65: int16(-int32(261)), + 66: int16(-int32(261)), + 67: int16(-int32(261)), + 68: int16(-int32(261)), + 69: int16(-int32(261)), + 70: int16(-int32(261)), + 71: int16(-int32(261)), + 72: int16(-int32(261)), + 73: int16(-int32(261)), + 74: int16(-int32(261)), + 75: int16(-int32(261)), + 76: int16(-int32(261)), + 77: int16(-int32(261)), + 78: int16(-int32(261)), + 79: int16(-int32(261)), + 80: int16(-int32(261)), + 81: int16(-int32(261)), + 82: int16(-int32(261)), + 83: int16(-int32(261)), + 84: int16(-int32(261)), + 85: int16(-int32(261)), + 86: int16(-int32(261)), + 87: int16(-int32(261)), + 88: int16(391), + 89: int16(886), + 90: int16(888), + 91: int16(1013), + 92: int16(1016), + 93: int16(1081), + 94: int16(1087), + 95: int16(1151), + 96: int16(1159), + 97: int16(1177), + 98: int16(1185), + 99: int16(1188), + 100: int16(1190), + 101: int16(1194), + 102: int16(1197), + 103: int16(1203), + 104: int16(1247), + 105: int16(1260), + 106: int16(1264), + 107: int16(1267), + 108: int16(1269), + 109: int16(1273), + 110: int16(1315), + 111: int16(1322), + 112: int16(1335), + 113: int16(1337), + 114: int16(1356), + 115: int16(1362), + 116: int16(1418), + 117: int16(1425), + 118: int16(1453), + 119: int16(1457), + 120: int16(1465), + 121: int16(1473), + 122: int16(1487), + 123: int16(1495), + 124: int16(1507), + 125: int16(1517), + 126: int16(1521), + 127: int16(1534), + 128: int16(1543), + 129: int16(1546), + 130: int16(1549), + 131: int16(1552), + 132: int16(1554), + 133: int16(1560), + 134: int16(1581), + 135: int16(1590), + 136: int16(1593), + 137: int16(1595), + 138: int16(1621), + 139: int16(1623), + 140: int16(-int32(261)), + 141: int16(-int32(261)), + 142: int16(-int32(261)), + 143: int16(-int32(261)), + 144: int16(-int32(261)), + 145: int16(-int32(261)), + 146: int16(-int32(261)), + 147: int16(-int32(261)), + 148: int16(-int32(261)), + 149: int16(-int32(261)), + 150: int16(-int32(261)), + 151: int16(-int32(186)), + 152: int16(-int32(117)), + 153: int16(260), + 154: int16(263), + 155: int16(460), + 156: int16(631), + 157: int16(-int32(74)), + 158: int16(497), + 159: int16(-int32(181)), + 160: int16(-int32(261)), + 161: int16(939), + 162: int16(176), + 163: int16(274), + 164: int16(338), + 165: int16(676), + 166: int16(-int32(261)), + 167: int16(-int32(261)), + 168: int16(-int32(261)), + 169: int16(-int32(261)), + 170: int16(-int32(212)), + 171: int16(-int32(212)), + 172: int16(-int32(212)), + 173: int16(-int32(184)), + 174: int16(149), + 175: int16(777), + 176: int16(1061), + 177: int16(1103), + 178: int16(265), + 179: int16(419), + 180: int16(-int32(254)), + 181: int16(670), + 182: int16(677), + 183: int16(677), + 184: int16(-int32(11)), + 185: int16(-int32(129)), + 186: int16(184), + 187: int16(488), + 188: int16(736), + 189: int16(789), + 190: int16(805), + 191: int16(844), + 192: int16(403), + 193: int16(529), + 194: int16(579), + 195: int16(668), + 196: int16(783), + 197: int16(841), + 198: int16(1158), + 199: int16(1112), + 200: int16(806), + 201: int16(861), + 202: int16(1095), + 203: int16(846), + 204: int16(839), + 205: int16(1031), + 206: int16(-int32(189)), + 207: int16(1077), + 208: int16(1080), + 209: int16(1116), + 210: int16(1084), + 211: int16(1156), + 212: int16(1139), + 213: int16(1221), + 214: int16(46), + 215: int16(1099), + 216: int16(1037), + 217: int16(1118), + 218: int16(1171), + 219: int16(1214), + 220: int16(1210), + 221: int16(1258), + 222: int16(-int32(210)), + 223: int16(-int32(190)), + 224: int16(-int32(176)), + 225: int16(-int32(115)), + 226: int16(117), + 227: int16(262), + 228: int16(376), + 229: int16(490), + 230: int16(511), + 231: int16(520), + 232: int16(618), + 233: int16(639), + 234: int16(743), + 235: int16(901), + 236: int16(907), + 237: int16(958), + 238: int16(1014), + 239: int16(1055), + 240: int16(1108), + 241: int16(1193), + 242: int16(1244), + 243: int16(720), + 244: int16(1248), + 245: int16(1277), + 246: int16(1324), + 247: int16(1347), + 248: int16(1417), + 249: int16(1431), + 250: int16(1432), + 251: int16(1440), + 252: int16(1451), + 253: int16(1452), + 254: int16(1463), + 255: int16(1478), + 256: int16(1286), + 257: int16(1350), + 258: int16(1369), + 259: int16(1490), + 260: int16(1498), + 261: int16(1501), + 262: int16(773), + 263: int16(1509), + 264: int16(1513), + 265: int16(1528), + 266: int16(1292), + 267: int16(1367), + 268: int16(1535), + 269: int16(1536), + 270: int16(1477), + 271: int16(1542), + 272: int16(376), + 273: int16(1547), + 274: int16(1550), + 275: int16(1555), + 276: int16(1559), + 277: int16(1568), + 278: int16(1571), + 279: int16(1441), + 280: int16(1443), + 281: int16(1474), + 282: int16(1511), + 283: int16(1516), + 284: int16(1519), + 285: int16(1522), + 286: int16(773), + 287: int16(1474), + 288: int16(1474), + 289: int16(1503), + 290: int16(1567), + 291: int16(1594), + 292: int16(1484), + 293: int16(1527), + 294: int16(1556), + 295: int16(1570), + 296: int16(1557), + 297: int16(1524), + 298: int16(1573), + 299: int16(1545), + 300: int16(1548), + 301: int16(1576), + 302: int16(1561), + 303: int16(1587), + 304: int16(1540), + 305: int16(1575), + 306: int16(1606), + 307: int16(1611), + 308: int16(1622), + 309: int16(1624), + 310: int16(1626), + 311: int16(1582), + 312: int16(1597), + 313: int16(1598), + 314: int16(1599), + 315: int16(1601), + 316: int16(1603), + 317: int16(1563), + 318: int16(1608), + 319: int16(1605), + 320: int16(1604), + 321: int16(1564), + 322: int16(1566), + 323: int16(1655), + 324: int16(1660), + 325: int16(1578), + 326: int16(1579), + 327: int16(1665), + 328: int16(1586), + 329: int16(1607), + 330: int16(1610), + 331: int16(1642), + 332: int16(1641), + 333: int16(1645), + 334: int16(1646), + 335: int16(1647), + 336: int16(1679), + 337: int16(1688), + 338: int16(1644), + 339: int16(1618), + 340: int16(1619), + 341: int16(1648), + 342: int16(1628), + 343: int16(1659), + 344: int16(1649), + 345: int16(1663), + 346: int16(1650), + 347: int16(1700), + 348: int16(1702), + 349: int16(1612), + 350: int16(1615), + 351: int16(1706), + 352: int16(1708), + 353: int16(1689), + 354: int16(1709), + 355: int16(1712), + 356: int16(1713), + 357: int16(1715), + 358: int16(1691), + 359: int16(1698), + 360: int16(1699), + 361: int16(1701), + 362: int16(1693), + 363: int16(1704), + 364: int16(1707), + 365: int16(1705), + 366: int16(1714), + 367: int16(1703), + 368: int16(1718), + 369: int16(1710), + 370: int16(1720), + 371: int16(1721), + 372: int16(1632), + 373: int16(1634), + 374: int16(1664), + 375: int16(1666), + 376: int16(1729), + 377: int16(1751), + 378: int16(1635), + 379: int16(1636), + 380: int16(1692), + 381: int16(1694), + 382: int16(1716), + 383: int16(1722), + 384: int16(1684), + 385: int16(1763), + 386: int16(1685), + 387: int16(1723), + 388: int16(1724), + 389: int16(1727), + 390: int16(1730), + 391: int16(1768), + 392: int16(1783), + 393: int16(1784), + 394: int16(1793), + 395: int16(1794), + 396: int16(1796), + 397: int16(1683), 398: int16(1686), - 399: int16(1738), - 400: int16(1728), - 401: int16(1733), - 402: int16(1736), - 403: int16(1737), - 404: int16(1740), - 405: int16(1726), - 406: int16(1730), - 407: int16(1742), - 408: int16(1743), - 409: int16(1748), - 410: int16(1753), -} -var _yy_default = [579]uint16{ - 0: uint16(1648), - 1: uint16(1648), - 2: uint16(1648), - 3: uint16(1478), - 4: uint16(1243), - 5: uint16(1354), - 6: uint16(1243), - 7: uint16(1243), - 8: uint16(1243), - 9: uint16(1478), - 10: uint16(1478), - 11: uint16(1478), - 12: uint16(1243), - 13: uint16(1384), - 14: uint16(1384), - 15: uint16(1531), - 16: uint16(1276), - 17: uint16(1243), - 18: uint16(1243), - 19: uint16(1243), - 20: uint16(1243), - 21: uint16(1243), - 22: uint16(1243), - 23: uint16(1243), - 24: uint16(1243), - 25: uint16(1243), - 26: uint16(1243), - 27: uint16(1243), - 28: uint16(1477), - 29: uint16(1243), - 30: uint16(1243), - 31: uint16(1243), - 32: uint16(1243), - 33: uint16(1564), - 34: uint16(1564), - 35: uint16(1243), - 36: uint16(1243), - 37: uint16(1243), - 38: uint16(1243), - 39: uint16(1243), - 40: uint16(1243), - 41: uint16(1243), - 42: uint16(1243), - 43: uint16(1393), - 44: uint16(1243), - 45: uint16(1400), - 46: uint16(1243), - 47: uint16(1243), - 48: uint16(1243), - 49: uint16(1243), - 50: uint16(1243), - 51: uint16(1479), - 52: uint16(1480), - 53: uint16(1243), - 54: uint16(1243), - 55: uint16(1243), - 56: uint16(1530), - 57: uint16(1532), - 58: uint16(1495), - 59: uint16(1407), - 60: uint16(1406), - 61: uint16(1405), - 62: uint16(1404), - 63: uint16(1513), - 64: uint16(1372), - 65: uint16(1398), - 66: uint16(1391), - 67: uint16(1395), - 68: uint16(1474), - 69: uint16(1475), - 70: uint16(1473), - 71: uint16(1626), - 72: uint16(1480), - 73: uint16(1479), - 74: uint16(1243), - 75: uint16(1394), - 76: uint16(1442), - 77: uint16(1458), - 78: uint16(1441), - 79: uint16(1243), - 80: uint16(1243), - 81: uint16(1243), - 82: uint16(1243), - 83: uint16(1243), - 84: uint16(1243), - 85: uint16(1243), - 86: uint16(1243), - 87: uint16(1243), - 88: uint16(1243), - 89: uint16(1243), - 90: uint16(1243), - 91: uint16(1243), - 92: uint16(1243), - 93: uint16(1243), - 94: uint16(1243), - 95: uint16(1243), - 96: uint16(1243), - 97: uint16(1243), - 98: uint16(1243), - 99: uint16(1243), - 100: uint16(1243), - 101: uint16(1243), - 102: uint16(1243), - 103: uint16(1243), - 104: uint16(1243), - 105: uint16(1243), - 106: uint16(1243), - 107: uint16(1243), - 108: uint16(1243), - 109: uint16(1243), - 110: uint16(1243), - 111: uint16(1243), - 112: uint16(1243), - 113: uint16(1243), - 114: uint16(1243), - 115: uint16(1243), - 116: uint16(1243), - 117: uint16(1243), - 118: uint16(1243), - 119: uint16(1243), - 120: uint16(1243), - 121: uint16(1243), - 122: uint16(1243), - 123: uint16(1243), - 124: uint16(1243), - 125: uint16(1243), - 126: uint16(1243), - 127: uint16(1243), - 128: uint16(1243), - 129: uint16(1243), - 130: uint16(1243), - 131: uint16(1450), - 132: uint16(1457), - 133: uint16(1456), - 134: uint16(1455), - 135: uint16(1464), - 136: uint16(1454), - 137: uint16(1451), - 138: uint16(1444), - 139: uint16(1443), - 140: uint16(1445), - 141: uint16(1446), - 142: uint16(1243), - 143: uint16(1243), - 144: uint16(1267), - 145: uint16(1243), - 146: uint16(1243), - 147: uint16(1264), - 148: uint16(1318), - 149: uint16(1243), - 150: uint16(1243), - 151: uint16(1243), - 152: uint16(1243), - 153: uint16(1243), - 154: uint16(1550), - 155: uint16(1549), - 156: uint16(1243), - 157: uint16(1447), - 158: uint16(1243), - 159: uint16(1276), - 160: uint16(1435), - 161: uint16(1434), - 162: uint16(1433), - 163: uint16(1461), - 164: uint16(1448), - 165: uint16(1460), - 166: uint16(1459), - 167: uint16(1538), - 168: uint16(1600), - 169: uint16(1599), - 170: uint16(1496), - 171: uint16(1243), - 172: uint16(1243), - 173: uint16(1243), - 174: uint16(1243), - 175: uint16(1243), - 176: uint16(1243), - 177: uint16(1564), - 178: uint16(1243), - 179: uint16(1243), - 180: uint16(1243), - 181: uint16(1243), - 182: uint16(1243), - 183: uint16(1243), - 184: uint16(1243), - 185: uint16(1243), - 186: uint16(1243), - 187: uint16(1243), - 188: uint16(1243), - 189: uint16(1243), - 190: uint16(1243), - 191: uint16(1243), - 192: uint16(1243), - 193: uint16(1243), - 194: uint16(1243), - 195: uint16(1243), - 196: uint16(1243), - 197: uint16(1243), - 198: uint16(1243), - 199: uint16(1243), - 200: uint16(1243), - 201: uint16(1374), - 202: uint16(1564), - 203: uint16(1564), - 204: uint16(1243), - 205: uint16(1276), - 206: uint16(1564), - 207: uint16(1564), - 208: uint16(1375), - 209: uint16(1375), - 210: uint16(1272), - 211: uint16(1272), - 212: uint16(1378), - 213: uint16(1243), - 214: uint16(1545), - 215: uint16(1345), - 216: uint16(1345), - 217: uint16(1345), - 218: uint16(1345), - 219: uint16(1354), - 220: uint16(1345), - 221: uint16(1243), - 222: uint16(1243), - 223: uint16(1243), - 224: uint16(1243), - 225: uint16(1243), - 226: uint16(1243), - 227: uint16(1243), - 228: uint16(1243), - 229: uint16(1243), - 230: uint16(1243), - 231: uint16(1243), - 232: uint16(1243), - 233: uint16(1243), - 234: uint16(1243), - 235: uint16(1243), - 236: uint16(1535), - 237: uint16(1533), - 238: uint16(1243), - 239: uint16(1243), - 240: uint16(1243), - 241: uint16(1243), - 242: uint16(1243), - 243: uint16(1243), - 244: uint16(1243), - 245: uint16(1243), - 246: uint16(1243), - 247: uint16(1243), - 248: uint16(1243), - 249: uint16(1243), - 250: uint16(1243), - 251: uint16(1243), - 252: uint16(1243), - 253: uint16(1243), - 254: uint16(1243), - 255: uint16(1243), - 256: uint16(1243), - 257: uint16(1243), - 258: uint16(1243), - 259: uint16(1243), - 260: uint16(1243), - 261: uint16(1243), - 262: uint16(1243), - 263: uint16(1243), - 264: uint16(1243), - 265: uint16(1350), - 266: uint16(1243), - 267: uint16(1243), - 268: uint16(1243), - 269: uint16(1243), - 270: uint16(1243), - 271: uint16(1243), - 272: uint16(1243), - 273: uint16(1243), - 274: uint16(1243), - 275: uint16(1243), - 276: uint16(1243), - 277: uint16(1593), - 278: uint16(1243), - 279: uint16(1508), - 280: uint16(1332), - 281: uint16(1350), - 282: uint16(1350), - 283: uint16(1350), - 284: uint16(1350), - 285: uint16(1352), - 286: uint16(1333), - 287: uint16(1331), - 288: uint16(1344), - 289: uint16(1277), - 290: uint16(1250), - 291: uint16(1640), - 292: uint16(1410), - 293: uint16(1399), - 294: uint16(1351), - 295: uint16(1399), - 296: uint16(1637), - 297: uint16(1397), + 399: int16(1690), + 400: int16(1782), + 401: int16(1779), + 402: int16(1780), + 403: int16(1781), + 404: int16(1785), + 405: int16(1788), + 406: int16(1774), + 407: int16(1775), + 408: int16(1786), + 409: int16(1787), + 410: int16(1789), + 411: int16(1798), +} +var _yy_default = [583]uint16{ + 0: uint16(1663), + 1: uint16(1663), + 2: uint16(1663), + 3: uint16(1491), + 4: uint16(1254), + 5: uint16(1367), + 6: uint16(1254), + 7: uint16(1254), + 8: uint16(1254), + 9: uint16(1254), + 10: uint16(1491), + 11: uint16(1491), + 12: uint16(1491), + 13: uint16(1254), + 14: uint16(1254), + 15: uint16(1254), + 16: uint16(1254), + 17: uint16(1254), + 18: uint16(1254), + 19: uint16(1397), + 20: uint16(1397), + 21: uint16(1544), + 22: uint16(1287), + 23: uint16(1254), + 24: uint16(1254), + 25: uint16(1254), + 26: uint16(1254), + 27: uint16(1254), + 28: uint16(1254), + 29: uint16(1254), + 30: uint16(1254), + 31: uint16(1254), + 32: uint16(1254), + 33: uint16(1254), + 34: uint16(1254), + 35: uint16(1490), + 36: uint16(1254), + 37: uint16(1254), + 38: uint16(1254), + 39: uint16(1254), + 40: uint16(1578), + 41: uint16(1578), + 42: uint16(1254), + 43: uint16(1254), + 44: uint16(1254), + 45: uint16(1254), + 46: uint16(1254), + 47: uint16(1563), + 48: uint16(1562), + 49: uint16(1254), + 50: uint16(1254), + 51: uint16(1254), + 52: uint16(1406), + 53: uint16(1254), + 54: uint16(1413), + 55: uint16(1254), + 56: uint16(1254), + 57: uint16(1254), + 58: uint16(1254), + 59: uint16(1254), + 60: uint16(1492), + 61: uint16(1493), + 62: uint16(1254), + 63: uint16(1254), + 64: uint16(1254), + 65: uint16(1543), + 66: uint16(1545), + 67: uint16(1508), + 68: uint16(1420), + 69: uint16(1419), + 70: uint16(1418), + 71: uint16(1417), + 72: uint16(1526), + 73: uint16(1385), + 74: uint16(1411), + 75: uint16(1404), + 76: uint16(1408), + 77: uint16(1487), + 78: uint16(1488), + 79: uint16(1486), + 80: uint16(1641), + 81: uint16(1493), + 82: uint16(1492), + 83: uint16(1254), + 84: uint16(1407), + 85: uint16(1455), + 86: uint16(1471), + 87: uint16(1454), + 88: uint16(1254), + 89: uint16(1254), + 90: uint16(1254), + 91: uint16(1254), + 92: uint16(1254), + 93: uint16(1254), + 94: uint16(1254), + 95: uint16(1254), + 96: uint16(1254), + 97: uint16(1254), + 98: uint16(1254), + 99: uint16(1254), + 100: uint16(1254), + 101: uint16(1254), + 102: uint16(1254), + 103: uint16(1254), + 104: uint16(1254), + 105: uint16(1254), + 106: uint16(1254), + 107: uint16(1254), + 108: uint16(1254), + 109: uint16(1254), + 110: uint16(1254), + 111: uint16(1254), + 112: uint16(1254), + 113: uint16(1254), + 114: uint16(1254), + 115: uint16(1254), + 116: uint16(1254), + 117: uint16(1254), + 118: uint16(1254), + 119: uint16(1254), + 120: uint16(1254), + 121: uint16(1254), + 122: uint16(1254), + 123: uint16(1254), + 124: uint16(1254), + 125: uint16(1254), + 126: uint16(1254), + 127: uint16(1254), + 128: uint16(1254), + 129: uint16(1254), + 130: uint16(1254), + 131: uint16(1254), + 132: uint16(1254), + 133: uint16(1254), + 134: uint16(1254), + 135: uint16(1254), + 136: uint16(1254), + 137: uint16(1254), + 138: uint16(1254), + 139: uint16(1254), + 140: uint16(1463), + 141: uint16(1470), + 142: uint16(1469), + 143: uint16(1468), + 144: uint16(1477), + 145: uint16(1467), + 146: uint16(1464), + 147: uint16(1457), + 148: uint16(1456), + 149: uint16(1458), + 150: uint16(1459), + 151: uint16(1278), + 152: uint16(1254), + 153: uint16(1275), + 154: uint16(1329), + 155: uint16(1254), + 156: uint16(1254), + 157: uint16(1254), + 158: uint16(1254), + 159: uint16(1254), + 160: uint16(1460), + 161: uint16(1287), + 162: uint16(1448), + 163: uint16(1447), + 164: uint16(1446), + 165: uint16(1254), + 166: uint16(1474), + 167: uint16(1461), + 168: uint16(1473), + 169: uint16(1472), + 170: uint16(1551), + 171: uint16(1615), + 172: uint16(1614), + 173: uint16(1509), + 174: uint16(1254), + 175: uint16(1254), + 176: uint16(1254), + 177: uint16(1254), + 178: uint16(1254), + 179: uint16(1254), + 180: uint16(1578), + 181: uint16(1254), + 182: uint16(1254), + 183: uint16(1254), + 184: uint16(1254), + 185: uint16(1254), + 186: uint16(1254), + 187: uint16(1254), + 188: uint16(1254), + 189: uint16(1254), + 190: uint16(1254), + 191: uint16(1254), + 192: uint16(1254), + 193: uint16(1254), + 194: uint16(1254), + 195: uint16(1254), + 196: uint16(1254), + 197: uint16(1254), + 198: uint16(1254), + 199: uint16(1254), + 200: uint16(1254), + 201: uint16(1254), + 202: uint16(1254), + 203: uint16(1387), + 204: uint16(1578), + 205: uint16(1578), + 206: uint16(1254), + 207: uint16(1287), + 208: uint16(1578), + 209: uint16(1578), + 210: uint16(1388), + 211: uint16(1388), + 212: uint16(1283), + 213: uint16(1283), + 214: uint16(1391), + 215: uint16(1558), + 216: uint16(1358), + 217: uint16(1358), + 218: uint16(1358), + 219: uint16(1358), + 220: uint16(1367), + 221: uint16(1358), + 222: uint16(1254), + 223: uint16(1254), + 224: uint16(1254), + 225: uint16(1254), + 226: uint16(1254), + 227: uint16(1254), + 228: uint16(1254), + 229: uint16(1254), + 230: uint16(1254), + 231: uint16(1254), + 232: uint16(1254), + 233: uint16(1254), + 234: uint16(1254), + 235: uint16(1254), + 236: uint16(1254), + 237: uint16(1548), + 238: uint16(1546), + 239: uint16(1254), + 240: uint16(1254), + 241: uint16(1254), + 242: uint16(1254), + 243: uint16(1254), + 244: uint16(1254), + 245: uint16(1254), + 246: uint16(1254), + 247: uint16(1254), + 248: uint16(1254), + 249: uint16(1254), + 250: uint16(1254), + 251: uint16(1254), + 252: uint16(1254), + 253: uint16(1254), + 254: uint16(1254), + 255: uint16(1254), + 256: uint16(1254), + 257: uint16(1254), + 258: uint16(1254), + 259: uint16(1254), + 260: uint16(1254), + 261: uint16(1254), + 262: uint16(1254), + 263: uint16(1254), + 264: uint16(1254), + 265: uint16(1254), + 266: uint16(1363), + 267: uint16(1254), + 268: uint16(1254), + 269: uint16(1254), + 270: uint16(1254), + 271: uint16(1254), + 272: uint16(1254), + 273: uint16(1254), + 274: uint16(1254), + 275: uint16(1254), + 276: uint16(1254), + 277: uint16(1254), + 278: uint16(1608), + 279: uint16(1254), + 280: uint16(1521), + 281: uint16(1343), + 282: uint16(1363), + 283: uint16(1363), + 284: uint16(1363), + 285: uint16(1363), + 286: uint16(1365), + 287: uint16(1344), + 288: uint16(1342), + 289: uint16(1357), + 290: uint16(1288), + 291: uint16(1261), + 292: uint16(1655), + 293: uint16(1423), + 294: uint16(1412), + 295: uint16(1364), + 296: uint16(1412), + 297: uint16(1652), 298: uint16(1410), - 299: uint16(1410), - 300: uint16(1397), + 299: uint16(1423), + 300: uint16(1423), 301: uint16(1410), - 302: uint16(1351), - 303: uint16(1637), - 304: uint16(1293), - 305: uint16(1615), - 306: uint16(1288), - 307: uint16(1384), - 308: uint16(1384), - 309: uint16(1384), - 310: uint16(1374), - 311: uint16(1374), - 312: uint16(1374), - 313: uint16(1374), - 314: uint16(1378), - 315: uint16(1378), - 316: uint16(1476), - 317: uint16(1351), - 318: uint16(1344), - 319: uint16(1243), - 320: uint16(1640), - 321: uint16(1640), - 322: uint16(1360), - 323: uint16(1360), - 324: uint16(1639), - 325: uint16(1639), - 326: uint16(1360), - 327: uint16(1496), - 328: uint16(1623), - 329: uint16(1419), - 330: uint16(1321), - 331: uint16(1327), - 332: uint16(1327), - 333: uint16(1327), - 334: uint16(1327), - 335: uint16(1360), - 336: uint16(1261), - 337: uint16(1397), - 338: uint16(1623), - 339: uint16(1623), - 340: uint16(1397), - 341: uint16(1419), - 342: uint16(1321), - 343: uint16(1397), - 344: uint16(1321), - 345: uint16(1397), - 346: uint16(1360), - 347: uint16(1261), - 348: uint16(1512), - 349: uint16(1634), - 350: uint16(1360), - 351: uint16(1261), - 352: uint16(1486), - 353: uint16(1360), - 354: uint16(1261), - 355: uint16(1360), - 356: uint16(1261), - 357: uint16(1486), - 358: uint16(1319), - 359: uint16(1319), - 360: uint16(1319), - 361: uint16(1308), - 362: uint16(1243), - 363: uint16(1243), - 364: uint16(1486), - 365: uint16(1319), - 366: uint16(1293), - 367: uint16(1319), - 368: uint16(1308), + 302: uint16(1423), + 303: uint16(1364), + 304: uint16(1652), + 305: uint16(1304), + 306: uint16(1630), + 307: uint16(1299), + 308: uint16(1397), + 309: uint16(1397), + 310: uint16(1397), + 311: uint16(1387), + 312: uint16(1387), + 313: uint16(1387), + 314: uint16(1387), + 315: uint16(1391), + 316: uint16(1391), + 317: uint16(1489), + 318: uint16(1364), + 319: uint16(1357), + 320: uint16(1254), + 321: uint16(1655), + 322: uint16(1655), + 323: uint16(1373), + 324: uint16(1373), + 325: uint16(1654), + 326: uint16(1654), + 327: uint16(1373), + 328: uint16(1509), + 329: uint16(1638), + 330: uint16(1432), + 331: uint16(1332), + 332: uint16(1338), + 333: uint16(1338), + 334: uint16(1338), + 335: uint16(1338), + 336: uint16(1373), + 337: uint16(1272), + 338: uint16(1410), + 339: uint16(1638), + 340: uint16(1638), + 341: uint16(1410), + 342: uint16(1432), + 343: uint16(1332), + 344: uint16(1410), + 345: uint16(1332), + 346: uint16(1410), + 347: uint16(1373), + 348: uint16(1272), + 349: uint16(1525), + 350: uint16(1649), + 351: uint16(1373), + 352: uint16(1272), + 353: uint16(1499), + 354: uint16(1373), + 355: uint16(1272), + 356: uint16(1373), + 357: uint16(1272), + 358: uint16(1499), + 359: uint16(1330), + 360: uint16(1330), + 361: uint16(1330), + 362: uint16(1319), + 363: uint16(1254), + 364: uint16(1254), + 365: uint16(1499), + 366: uint16(1330), + 367: uint16(1304), + 368: uint16(1330), 369: uint16(1319), - 370: uint16(1319), - 371: uint16(1582), - 372: uint16(1243), - 373: uint16(1490), - 374: uint16(1490), - 375: uint16(1486), - 376: uint16(1360), - 377: uint16(1574), - 378: uint16(1574), - 379: uint16(1387), - 380: uint16(1387), - 381: uint16(1392), - 382: uint16(1378), - 383: uint16(1481), - 384: uint16(1360), - 385: uint16(1243), - 386: uint16(1392), - 387: uint16(1390), - 388: uint16(1388), - 389: uint16(1397), - 390: uint16(1311), - 391: uint16(1596), - 392: uint16(1596), - 393: uint16(1592), - 394: uint16(1592), - 395: uint16(1592), - 396: uint16(1645), - 397: uint16(1645), - 398: uint16(1545), - 399: uint16(1608), - 400: uint16(1276), - 401: uint16(1276), - 402: uint16(1276), - 403: uint16(1276), - 404: uint16(1608), - 405: uint16(1295), - 406: uint16(1295), - 407: uint16(1277), - 408: uint16(1277), - 409: uint16(1276), - 410: uint16(1608), - 411: uint16(1243), - 412: uint16(1243), - 413: uint16(1243), - 414: uint16(1243), - 415: uint16(1243), - 416: uint16(1243), - 417: uint16(1603), - 418: uint16(1243), - 419: uint16(1540), - 420: uint16(1497), - 421: uint16(1364), - 422: uint16(1243), - 423: uint16(1243), - 424: uint16(1243), - 425: uint16(1243), - 426: uint16(1243), - 427: uint16(1243), - 428: uint16(1243), - 429: uint16(1243), - 430: uint16(1243), - 431: uint16(1243), - 432: uint16(1243), - 433: uint16(1243), - 434: uint16(1243), - 435: uint16(1243), - 436: uint16(1243), - 437: uint16(1243), - 438: uint16(1551), - 439: uint16(1243), - 440: uint16(1243), - 441: uint16(1243), - 442: uint16(1243), - 443: uint16(1243), - 444: uint16(1243), - 445: uint16(1243), - 446: uint16(1243), - 447: uint16(1243), - 448: uint16(1243), - 449: uint16(1424), - 450: uint16(1243), - 451: uint16(1246), - 452: uint16(1542), - 453: uint16(1243), - 454: uint16(1243), - 455: uint16(1243), - 456: uint16(1243), - 457: uint16(1243), - 458: uint16(1243), - 459: uint16(1243), - 460: uint16(1243), - 461: uint16(1401), - 462: uint16(1402), - 463: uint16(1365), - 464: uint16(1243), - 465: uint16(1243), - 466: uint16(1243), - 467: uint16(1243), - 468: uint16(1243), - 469: uint16(1243), - 470: uint16(1243), - 471: uint16(1416), - 472: uint16(1243), - 473: uint16(1243), - 474: uint16(1243), - 475: uint16(1411), - 476: uint16(1243), - 477: uint16(1243), - 478: uint16(1243), - 479: uint16(1243), - 480: uint16(1243), - 481: uint16(1243), - 482: uint16(1243), - 483: uint16(1243), - 484: uint16(1636), - 485: uint16(1243), - 486: uint16(1243), - 487: uint16(1243), - 488: uint16(1243), - 489: uint16(1243), - 490: uint16(1243), - 491: uint16(1511), - 492: uint16(1510), - 493: uint16(1243), - 494: uint16(1243), - 495: uint16(1362), - 496: uint16(1243), - 497: uint16(1243), - 498: uint16(1243), - 499: uint16(1243), - 500: uint16(1243), - 501: uint16(1243), - 502: uint16(1243), - 503: uint16(1243), - 504: uint16(1243), - 505: uint16(1243), - 506: uint16(1243), - 507: uint16(1243), - 508: uint16(1243), - 509: uint16(1291), - 510: uint16(1243), - 511: uint16(1243), - 512: uint16(1243), - 513: uint16(1243), - 514: uint16(1243), - 515: uint16(1243), - 516: uint16(1243), - 517: uint16(1243), - 518: uint16(1243), - 519: uint16(1243), - 520: uint16(1243), - 521: uint16(1243), - 522: uint16(1243), - 523: uint16(1243), - 524: uint16(1243), - 525: uint16(1243), - 526: uint16(1243), - 527: uint16(1243), - 528: uint16(1243), - 529: uint16(1243), - 530: uint16(1243), - 531: uint16(1243), - 532: uint16(1243), - 533: uint16(1389), - 534: uint16(1243), - 535: uint16(1243), - 536: uint16(1243), - 537: uint16(1243), - 538: uint16(1243), - 539: uint16(1243), - 540: uint16(1243), - 541: uint16(1243), - 542: uint16(1243), - 543: uint16(1243), - 544: uint16(1243), - 545: uint16(1243), - 546: uint16(1243), - 547: uint16(1243), - 548: uint16(1579), - 549: uint16(1379), - 550: uint16(1243), - 551: uint16(1243), - 552: uint16(1243), - 553: uint16(1243), - 554: uint16(1627), - 555: uint16(1243), - 556: uint16(1243), - 557: uint16(1243), - 558: uint16(1243), - 559: uint16(1243), - 560: uint16(1243), - 561: uint16(1243), - 562: uint16(1243), - 563: uint16(1243), - 564: uint16(1243), - 565: uint16(1243), - 566: uint16(1243), - 567: uint16(1243), - 568: uint16(1243), - 569: uint16(1619), - 570: uint16(1335), - 571: uint16(1425), - 572: uint16(1243), - 573: uint16(1428), - 574: uint16(1265), - 575: uint16(1243), - 576: uint16(1255), - 577: uint16(1243), - 578: uint16(1243), + 370: uint16(1330), + 371: uint16(1330), + 372: uint16(1596), + 373: uint16(1254), + 374: uint16(1503), + 375: uint16(1503), + 376: uint16(1499), + 377: uint16(1373), + 378: uint16(1588), + 379: uint16(1588), + 380: uint16(1400), + 381: uint16(1400), + 382: uint16(1405), + 383: uint16(1391), + 384: uint16(1494), + 385: uint16(1373), + 386: uint16(1254), + 387: uint16(1405), + 388: uint16(1403), + 389: uint16(1401), + 390: uint16(1410), + 391: uint16(1322), + 392: uint16(1611), + 393: uint16(1611), + 394: uint16(1607), + 395: uint16(1607), + 396: uint16(1607), + 397: uint16(1660), + 398: uint16(1660), + 399: uint16(1558), + 400: uint16(1623), + 401: uint16(1287), + 402: uint16(1287), + 403: uint16(1287), + 404: uint16(1287), + 405: uint16(1623), + 406: uint16(1306), + 407: uint16(1306), + 408: uint16(1288), + 409: uint16(1288), + 410: uint16(1287), + 411: uint16(1623), + 412: uint16(1254), + 413: uint16(1254), + 414: uint16(1254), + 415: uint16(1254), + 416: uint16(1254), + 417: uint16(1254), + 418: uint16(1618), + 419: uint16(1254), + 420: uint16(1553), + 421: uint16(1510), + 422: uint16(1377), + 423: uint16(1254), + 424: uint16(1254), + 425: uint16(1254), + 426: uint16(1254), + 427: uint16(1254), + 428: uint16(1254), + 429: uint16(1254), + 430: uint16(1254), + 431: uint16(1254), + 432: uint16(1254), + 433: uint16(1254), + 434: uint16(1254), + 435: uint16(1254), + 436: uint16(1254), + 437: uint16(1254), + 438: uint16(1254), + 439: uint16(1564), + 440: uint16(1254), + 441: uint16(1254), + 442: uint16(1254), + 443: uint16(1254), + 444: uint16(1254), + 445: uint16(1254), + 446: uint16(1254), + 447: uint16(1254), + 448: uint16(1254), + 449: uint16(1254), + 450: uint16(1254), + 451: uint16(1437), + 452: uint16(1254), + 453: uint16(1257), + 454: uint16(1555), + 455: uint16(1254), + 456: uint16(1254), + 457: uint16(1254), + 458: uint16(1254), + 459: uint16(1254), + 460: uint16(1254), + 461: uint16(1254), + 462: uint16(1254), + 463: uint16(1414), + 464: uint16(1415), + 465: uint16(1378), + 466: uint16(1254), + 467: uint16(1254), + 468: uint16(1254), + 469: uint16(1254), + 470: uint16(1254), + 471: uint16(1254), + 472: uint16(1254), + 473: uint16(1429), + 474: uint16(1254), + 475: uint16(1254), + 476: uint16(1254), + 477: uint16(1424), + 478: uint16(1254), + 479: uint16(1254), + 480: uint16(1254), + 481: uint16(1254), + 482: uint16(1254), + 483: uint16(1254), + 484: uint16(1254), + 485: uint16(1254), + 486: uint16(1651), + 487: uint16(1254), + 488: uint16(1254), + 489: uint16(1254), + 490: uint16(1254), + 491: uint16(1254), + 492: uint16(1254), + 493: uint16(1524), + 494: uint16(1523), + 495: uint16(1254), + 496: uint16(1254), + 497: uint16(1375), + 498: uint16(1254), + 499: uint16(1254), + 500: uint16(1254), + 501: uint16(1254), + 502: uint16(1254), + 503: uint16(1254), + 504: uint16(1254), + 505: uint16(1254), + 506: uint16(1254), + 507: uint16(1254), + 508: uint16(1254), + 509: uint16(1254), + 510: uint16(1254), + 511: uint16(1302), + 512: uint16(1254), + 513: uint16(1254), + 514: uint16(1254), + 515: uint16(1254), + 516: uint16(1254), + 517: uint16(1254), + 518: uint16(1254), + 519: uint16(1254), + 520: uint16(1254), + 521: uint16(1254), + 522: uint16(1254), + 523: uint16(1254), + 524: uint16(1254), + 525: uint16(1254), + 526: uint16(1254), + 527: uint16(1254), + 528: uint16(1254), + 529: uint16(1254), + 530: uint16(1254), + 531: uint16(1254), + 532: uint16(1254), + 533: uint16(1254), + 534: uint16(1254), + 535: uint16(1402), + 536: uint16(1254), + 537: uint16(1254), + 538: uint16(1254), + 539: uint16(1254), + 540: uint16(1254), + 541: uint16(1254), + 542: uint16(1254), + 543: uint16(1254), + 544: uint16(1254), + 545: uint16(1254), + 546: uint16(1254), + 547: uint16(1254), + 548: uint16(1254), + 549: uint16(1254), + 550: uint16(1593), + 551: uint16(1392), + 552: uint16(1254), + 553: uint16(1254), + 554: uint16(1254), + 555: uint16(1254), + 556: uint16(1642), + 557: uint16(1254), + 558: uint16(1254), + 559: uint16(1254), + 560: uint16(1254), + 561: uint16(1352), + 562: uint16(1254), + 563: uint16(1254), + 564: uint16(1254), + 565: uint16(1254), + 566: uint16(1254), + 567: uint16(1254), + 568: uint16(1254), + 569: uint16(1254), + 570: uint16(1254), + 571: uint16(1254), + 572: uint16(1254), + 573: uint16(1634), + 574: uint16(1346), + 575: uint16(1438), + 576: uint16(1254), + 577: uint16(1441), + 578: uint16(1276), + 579: uint16(1254), + 580: uint16(1266), + 581: uint16(1254), + 582: uint16(1254), } /********** End of lemon-generated parsing tables *****************************/ @@ -157672,7 +159179,7 @@ var _yy_default = [579]uint16{ // ** to revert to identifiers if they keyword does not apply in the context where // ** it appears. // */ -var _yyFallback = [185]uint16{ +var _yyFallback = [186]uint16{ 2: uint16(59), 3: uint16(59), 4: uint16(59), @@ -157785,8 +159292,9 @@ type yyStackEntry = TyyStackEntry type TyyParser1 = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser1 = TyyParser1 @@ -157794,14 +159302,46 @@ type yyParser1 = TyyParser1 type TyyParser = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser = TyyParser /* #include */ +// C documentation +// +// /* +// ** Try to increase the size of the parser stack. Return the number +// ** of errors. Return 0 on success. +// */ +func _yyGrowStack(tls *libc.TLS, p uintptr) (r int32) { + var idx, newSize, oldSize int32 + var pNew uintptr + _, _, _, _ = idx, newSize, oldSize, pNew + oldSize = int32(1) + int32((int64((*TyyParser)(unsafe.Pointer(p)).FyystackEnd)-int64((*TyyParser)(unsafe.Pointer(p)).Fyystack))/24) + newSize = oldSize*int32(2) + int32(100) + idx = int32((int64((*TyyParser)(unsafe.Pointer(p)).Fyytos) - int64((*TyyParser)(unsafe.Pointer(p)).Fyystack)) / 24) + if (*TyyParser)(unsafe.Pointer(p)).Fyystack == p+32 { + pNew = _parserStackRealloc(tls, uintptr(0), uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + libc.X__builtin___memcpy_chk(tls, pNew, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(oldSize)*uint64(24), libc.X__builtin_object_size(tls, pNew, 0)) + } else { + pNew = _parserStackRealloc(tls, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + } + (*TyyParser)(unsafe.Pointer(p)).Fyystack = pNew + (*TyyParser)(unsafe.Pointer(p)).Fyytos = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(idx)*24 + (*TyyParser)(unsafe.Pointer(p)).FyystackEnd = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(newSize-int32(1))*24 + return 0 +} + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -157817,10 +159357,11 @@ func _sqlite3ParserInit(tls *libc.TLS, yypRawParser uintptr, pParse uintptr) { _ = yypParser yypParser = yypRawParser (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = yypParser + 16 - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fstateno = uint16(0) - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fmajor = uint16(0) - (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = yypParser + 16 + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack = yypParser + 32 + (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fstateno = uint16(0) + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fmajor = uint16(0) } // C documentation @@ -157848,103 +159389,105 @@ func _yy_destructor(tls *libc.TLS, yypParser uintptr, yymajor uint16, yypminor u ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case int32(204): /* select */ + case int32(205): /* select */ + fallthrough + case int32(240): /* selectnowith */ fallthrough - case int32(239): /* selectnowith */ + case int32(241): /* oneselect */ fallthrough - case int32(240): /* oneselect */ + case int32(253): /* values */ fallthrough - case int32(252): /* values */ + case int32(255): /* mvalues */ _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(216): /* term */ + case int32(217): /* term */ fallthrough - case int32(217): /* expr */ + case int32(218): /* expr */ fallthrough - case int32(246): /* where_opt */ + case int32(247): /* where_opt */ fallthrough - case int32(248): /* having_opt */ + case int32(249): /* having_opt */ fallthrough - case int32(267): /* where_opt_ret */ + case int32(269): /* where_opt_ret */ fallthrough - case int32(278): /* case_operand */ + case int32(280): /* case_operand */ fallthrough - case int32(280): /* case_else */ + case int32(282): /* case_else */ fallthrough - case int32(283): /* vinto */ + case int32(285): /* vinto */ fallthrough - case int32(290): /* when_clause */ + case int32(292): /* when_clause */ fallthrough - case int32(295): /* key_opt */ + case int32(297): /* key_opt */ fallthrough - case int32(311): /* filter_clause */ + case int32(314): /* filter_clause */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(221): /* eidlist_opt */ + case int32(222): /* eidlist_opt */ fallthrough - case int32(231): /* sortlist */ + case int32(232): /* sortlist */ fallthrough - case int32(232): /* eidlist */ + case int32(233): /* eidlist */ fallthrough - case int32(244): /* selcollist */ + case int32(245): /* selcollist */ fallthrough - case int32(247): /* groupby_opt */ + case int32(248): /* groupby_opt */ fallthrough - case int32(249): /* orderby_opt */ + case int32(250): /* orderby_opt */ fallthrough - case int32(253): /* nexprlist */ + case int32(254): /* nexprlist */ fallthrough - case int32(254): /* sclp */ + case int32(256): /* sclp */ fallthrough - case int32(261): /* exprlist */ + case int32(263): /* exprlist */ fallthrough - case int32(268): /* setlist */ + case int32(270): /* setlist */ fallthrough - case int32(277): /* paren_exprlist */ + case int32(279): /* paren_exprlist */ fallthrough - case int32(279): /* case_exprlist */ + case int32(281): /* case_exprlist */ fallthrough - case int32(310): /* part_opt */ + case int32(313): /* part_opt */ _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(238): /* fullname */ + case int32(239): /* fullname */ fallthrough - case int32(245): /* from */ + case int32(246): /* from */ fallthrough - case int32(256): /* seltablist */ + case int32(258): /* seltablist */ fallthrough - case int32(257): /* stl_prefix */ + case int32(259): /* stl_prefix */ fallthrough - case int32(262): /* xfullname */ + case int32(264): /* xfullname */ _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(241): /* wqlist */ + case int32(242): /* wqlist */ _sqlite3WithDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(251): /* window_clause */ + case int32(252): /* window_clause */ fallthrough - case int32(306): /* windowdefn_list */ + case int32(309): /* windowdefn_list */ _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(263): /* idlist */ + case int32(265): /* idlist */ fallthrough - case int32(270): /* idlist_opt */ + case int32(272): /* idlist_opt */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(273): /* filter_over */ + case int32(275): /* filter_over */ fallthrough - case int32(307): /* windowdefn */ + case int32(310): /* windowdefn */ fallthrough - case int32(308): /* window */ + case int32(311): /* window */ fallthrough - case int32(309): /* frame_opt */ + case int32(312): /* frame_opt */ fallthrough - case int32(312): /* over_clause */ + case int32(315): /* over_clause */ _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(286): /* trigger_cmd_list */ + case int32(288): /* trigger_cmd_list */ fallthrough - case int32(291): /* trigger_cmd */ + case int32(293): /* trigger_cmd */ _sqlite3DeleteTriggerStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(288): /* trigger_event */ + case int32(290): /* trigger_event */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TTrigEvent)(unsafe.Pointer(yypminor))).Fb) - case int32(314): /* frame_bound */ + case int32(317): /* frame_bound */ fallthrough - case int32(315): /* frame_bound_s */ + case int32(318): /* frame_bound_s */ fallthrough - case int32(316): /* frame_bound_e */ + case int32(319): /* frame_bound_e */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TFrameBound)(unsafe.Pointer(yypminor))).FpExpr) break /********* End destructor definitions *****************************************/ @@ -157978,11 +159521,20 @@ func _yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var pParser, yytos uintptr + _, _ = pParser, yytos pParser = p - for (*TyyParser)(unsafe.Pointer(pParser)).Fyytos > pParser+16 { - _yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling yy_pop_parser_stack() for each + ** element left in the stack */ + yytos = (*TyyParser)(unsafe.Pointer(pParser)).Fyytos + for yytos > (*TyyParser)(unsafe.Pointer(pParser)).Fyystack { + if int32((*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor) >= int32(YY_MIN_DSTRCTR) { + _yy_destructor(tls, pParser, (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor, yytos+8) + } + yytos -= 24 + } + if (*TyyParser)(unsafe.Pointer(pParser)).Fyystack != pParser+32 { + Xsqlite3_free(tls, (*TyyParser)(unsafe.Pointer(pParser)).Fyystack) } } @@ -158063,13 +159615,13 @@ func _yyStackOverflow(tls *libc.TLS, yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse - for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > yypParser+16 { + for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack { _yy_pop_parser_stack(tls, yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23731, 0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) /******** End %stack_overflow code ********************************************/ /* Suppress warning about unused %extra_argument var */ (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse @@ -158088,15 +159640,18 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint var yytos uintptr _ = yytos (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos += 24 - if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 - _yyStackOverflow(tls, yypParser) - return + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + if yytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { + if _yyGrowStack(tls, yypParser) != 0 { + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 + _yyStackOverflow(tls, yypParser) + return + } + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos } if int32(yyNewState) > int32(YY_MAX_SHIFT) { yyNewState = uint16(int32(yyNewState) + (libc.Int32FromInt32(YY_MIN_REDUCE) - libc.Int32FromInt32(YY_MIN_SHIFTREDUCE))) } - yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos (*TyyStackEntry)(unsafe.Pointer(yytos)).Fstateno = yyNewState (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor = yyMajor *(*TToken)(unsafe.Pointer(yytos + 8)) = yyMinor @@ -158106,419 +159661,423 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint // // /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side // ** of that rule */ -var _yyRuleInfoLhs = [405]uint16{ - 0: uint16(189), - 1: uint16(189), - 2: uint16(188), - 3: uint16(190), - 4: uint16(191), - 5: uint16(191), - 6: uint16(191), - 7: uint16(191), - 8: uint16(190), - 9: uint16(190), - 10: uint16(190), - 11: uint16(190), - 12: uint16(190), - 13: uint16(195), - 14: uint16(197), - 15: uint16(199), - 16: uint16(199), - 17: uint16(198), - 18: uint16(198), - 19: uint16(196), - 20: uint16(196), - 21: uint16(203), - 22: uint16(203), - 23: uint16(205), - 24: uint16(205), - 25: uint16(206), - 26: uint16(208), - 27: uint16(208), - 28: uint16(208), - 29: uint16(209), - 30: uint16(213), - 31: uint16(214), - 32: uint16(215), - 33: uint16(215), - 34: uint16(215), - 35: uint16(215), - 36: uint16(215), - 37: uint16(215), - 38: uint16(215), - 39: uint16(215), - 40: uint16(215), - 41: uint16(215), - 42: uint16(215), - 43: uint16(215), - 44: uint16(215), - 45: uint16(224), - 46: uint16(224), - 47: uint16(220), - 48: uint16(220), - 49: uint16(222), - 50: uint16(222), - 51: uint16(225), - 52: uint16(225), - 53: uint16(225), - 54: uint16(225), - 55: uint16(226), - 56: uint16(226), - 57: uint16(226), - 58: uint16(226), - 59: uint16(226), - 60: uint16(223), - 61: uint16(223), - 62: uint16(227), - 63: uint16(227), - 64: uint16(227), - 65: uint16(202), - 66: uint16(229), - 67: uint16(230), - 68: uint16(230), - 69: uint16(230), - 70: uint16(230), - 71: uint16(230), - 72: uint16(233), - 73: uint16(218), - 74: uint16(218), - 75: uint16(234), - 76: uint16(234), - 77: uint16(235), - 78: uint16(235), - 79: uint16(190), - 80: uint16(237), - 81: uint16(237), - 82: uint16(190), - 83: uint16(190), - 84: uint16(190), - 85: uint16(204), - 86: uint16(204), - 87: uint16(204), - 88: uint16(239), - 89: uint16(242), - 90: uint16(242), - 91: uint16(242), - 92: uint16(240), - 93: uint16(240), - 94: uint16(252), - 95: uint16(252), - 96: uint16(243), - 97: uint16(243), - 98: uint16(243), - 99: uint16(254), +var _yyRuleInfoLhs = [409]uint16{ + 0: uint16(190), + 1: uint16(190), + 2: uint16(189), + 3: uint16(191), + 4: uint16(192), + 5: uint16(192), + 6: uint16(192), + 7: uint16(192), + 8: uint16(191), + 9: uint16(191), + 10: uint16(191), + 11: uint16(191), + 12: uint16(191), + 13: uint16(196), + 14: uint16(198), + 15: uint16(200), + 16: uint16(200), + 17: uint16(199), + 18: uint16(199), + 19: uint16(197), + 20: uint16(197), + 21: uint16(204), + 22: uint16(204), + 23: uint16(206), + 24: uint16(206), + 25: uint16(207), + 26: uint16(209), + 27: uint16(209), + 28: uint16(209), + 29: uint16(210), + 30: uint16(214), + 31: uint16(215), + 32: uint16(216), + 33: uint16(216), + 34: uint16(216), + 35: uint16(216), + 36: uint16(216), + 37: uint16(216), + 38: uint16(216), + 39: uint16(216), + 40: uint16(216), + 41: uint16(216), + 42: uint16(216), + 43: uint16(216), + 44: uint16(216), + 45: uint16(225), + 46: uint16(225), + 47: uint16(221), + 48: uint16(221), + 49: uint16(223), + 50: uint16(223), + 51: uint16(226), + 52: uint16(226), + 53: uint16(226), + 54: uint16(226), + 55: uint16(227), + 56: uint16(227), + 57: uint16(227), + 58: uint16(227), + 59: uint16(227), + 60: uint16(224), + 61: uint16(224), + 62: uint16(228), + 63: uint16(228), + 64: uint16(228), + 65: uint16(203), + 66: uint16(230), + 67: uint16(231), + 68: uint16(231), + 69: uint16(231), + 70: uint16(231), + 71: uint16(231), + 72: uint16(234), + 73: uint16(219), + 74: uint16(219), + 75: uint16(235), + 76: uint16(235), + 77: uint16(236), + 78: uint16(236), + 79: uint16(191), + 80: uint16(238), + 81: uint16(238), + 82: uint16(191), + 83: uint16(191), + 84: uint16(191), + 85: uint16(205), + 86: uint16(205), + 87: uint16(205), + 88: uint16(240), + 89: uint16(243), + 90: uint16(243), + 91: uint16(243), + 92: uint16(241), + 93: uint16(241), + 94: uint16(253), + 95: uint16(241), + 96: uint16(255), + 97: uint16(255), + 98: uint16(244), + 99: uint16(244), 100: uint16(244), - 101: uint16(244), - 102: uint16(244), - 103: uint16(255), - 104: uint16(255), - 105: uint16(245), - 106: uint16(245), - 107: uint16(257), - 108: uint16(257), - 109: uint16(256), - 110: uint16(256), - 111: uint16(256), - 112: uint16(256), - 113: uint16(256), - 114: uint16(200), - 115: uint16(200), - 116: uint16(238), - 117: uint16(238), - 118: uint16(262), - 119: uint16(262), - 120: uint16(262), - 121: uint16(262), - 122: uint16(258), - 123: uint16(258), - 124: uint16(258), - 125: uint16(258), - 126: uint16(259), - 127: uint16(259), - 128: uint16(259), - 129: uint16(264), - 130: uint16(260), - 131: uint16(260), - 132: uint16(249), - 133: uint16(249), - 134: uint16(231), - 135: uint16(231), - 136: uint16(219), - 137: uint16(219), - 138: uint16(219), - 139: uint16(265), - 140: uint16(265), - 141: uint16(265), - 142: uint16(247), - 143: uint16(247), + 101: uint16(256), + 102: uint16(245), + 103: uint16(245), + 104: uint16(245), + 105: uint16(257), + 106: uint16(257), + 107: uint16(246), + 108: uint16(246), + 109: uint16(259), + 110: uint16(259), + 111: uint16(258), + 112: uint16(258), + 113: uint16(258), + 114: uint16(258), + 115: uint16(258), + 116: uint16(201), + 117: uint16(201), + 118: uint16(239), + 119: uint16(239), + 120: uint16(264), + 121: uint16(264), + 122: uint16(264), + 123: uint16(264), + 124: uint16(260), + 125: uint16(260), + 126: uint16(260), + 127: uint16(260), + 128: uint16(261), + 129: uint16(261), + 130: uint16(261), + 131: uint16(266), + 132: uint16(262), + 133: uint16(262), + 134: uint16(250), + 135: uint16(250), + 136: uint16(232), + 137: uint16(232), + 138: uint16(220), + 139: uint16(220), + 140: uint16(220), + 141: uint16(267), + 142: uint16(267), + 143: uint16(267), 144: uint16(248), 145: uint16(248), - 146: uint16(250), - 147: uint16(250), - 148: uint16(250), - 149: uint16(250), - 150: uint16(190), - 151: uint16(246), - 152: uint16(246), - 153: uint16(267), - 154: uint16(267), - 155: uint16(267), - 156: uint16(267), - 157: uint16(190), - 158: uint16(268), - 159: uint16(268), - 160: uint16(268), - 161: uint16(268), - 162: uint16(190), - 163: uint16(190), - 164: uint16(271), - 165: uint16(271), - 166: uint16(271), - 167: uint16(271), - 168: uint16(271), - 169: uint16(271), - 170: uint16(272), - 171: uint16(269), - 172: uint16(269), - 173: uint16(270), - 174: uint16(270), - 175: uint16(263), - 176: uint16(263), - 177: uint16(217), - 178: uint16(217), - 179: uint16(217), - 180: uint16(217), - 181: uint16(216), - 182: uint16(216), - 183: uint16(216), + 146: uint16(249), + 147: uint16(249), + 148: uint16(251), + 149: uint16(251), + 150: uint16(251), + 151: uint16(251), + 152: uint16(191), + 153: uint16(247), + 154: uint16(247), + 155: uint16(269), + 156: uint16(269), + 157: uint16(269), + 158: uint16(269), + 159: uint16(191), + 160: uint16(270), + 161: uint16(270), + 162: uint16(270), + 163: uint16(270), + 164: uint16(191), + 165: uint16(191), + 166: uint16(273), + 167: uint16(273), + 168: uint16(273), + 169: uint16(273), + 170: uint16(273), + 171: uint16(273), + 172: uint16(274), + 173: uint16(271), + 174: uint16(271), + 175: uint16(272), + 176: uint16(272), + 177: uint16(265), + 178: uint16(265), + 179: uint16(218), + 180: uint16(218), + 181: uint16(218), + 182: uint16(218), + 183: uint16(217), 184: uint16(217), 185: uint16(217), - 186: uint16(217), - 187: uint16(217), - 188: uint16(217), - 189: uint16(217), - 190: uint16(217), - 191: uint16(217), - 192: uint16(217), - 193: uint16(216), - 194: uint16(217), + 186: uint16(218), + 187: uint16(218), + 188: uint16(218), + 189: uint16(218), + 190: uint16(218), + 191: uint16(218), + 192: uint16(218), + 193: uint16(218), + 194: uint16(218), 195: uint16(217), - 196: uint16(217), - 197: uint16(217), - 198: uint16(217), - 199: uint16(217), - 200: uint16(217), - 201: uint16(217), - 202: uint16(217), - 203: uint16(274), - 204: uint16(217), - 205: uint16(217), - 206: uint16(217), - 207: uint16(217), - 208: uint16(217), - 209: uint16(217), - 210: uint16(217), - 211: uint16(217), - 212: uint16(217), - 213: uint16(217), - 214: uint16(217), - 215: uint16(217), - 216: uint16(275), - 217: uint16(275), - 218: uint16(217), - 219: uint16(276), - 220: uint16(276), - 221: uint16(217), - 222: uint16(217), - 223: uint16(217), - 224: uint16(217), - 225: uint16(217), - 226: uint16(217), - 227: uint16(279), - 228: uint16(279), - 229: uint16(280), - 230: uint16(280), - 231: uint16(278), - 232: uint16(261), - 233: uint16(253), - 234: uint16(253), - 235: uint16(277), - 236: uint16(277), - 237: uint16(190), - 238: uint16(281), - 239: uint16(281), - 240: uint16(221), - 241: uint16(221), - 242: uint16(232), - 243: uint16(232), - 244: uint16(282), - 245: uint16(282), - 246: uint16(190), - 247: uint16(190), - 248: uint16(190), - 249: uint16(283), - 250: uint16(283), - 251: uint16(190), - 252: uint16(190), - 253: uint16(190), - 254: uint16(190), - 255: uint16(190), - 256: uint16(211), - 257: uint16(212), - 258: uint16(190), - 259: uint16(285), - 260: uint16(287), + 196: uint16(218), + 197: uint16(218), + 198: uint16(218), + 199: uint16(218), + 200: uint16(218), + 201: uint16(218), + 202: uint16(218), + 203: uint16(218), + 204: uint16(218), + 205: uint16(276), + 206: uint16(218), + 207: uint16(218), + 208: uint16(218), + 209: uint16(218), + 210: uint16(218), + 211: uint16(218), + 212: uint16(218), + 213: uint16(218), + 214: uint16(218), + 215: uint16(218), + 216: uint16(218), + 217: uint16(218), + 218: uint16(277), + 219: uint16(277), + 220: uint16(218), + 221: uint16(278), + 222: uint16(278), + 223: uint16(218), + 224: uint16(218), + 225: uint16(218), + 226: uint16(218), + 227: uint16(218), + 228: uint16(218), + 229: uint16(281), + 230: uint16(281), + 231: uint16(282), + 232: uint16(282), + 233: uint16(280), + 234: uint16(263), + 235: uint16(254), + 236: uint16(254), + 237: uint16(279), + 238: uint16(279), + 239: uint16(191), + 240: uint16(283), + 241: uint16(283), + 242: uint16(222), + 243: uint16(222), + 244: uint16(233), + 245: uint16(233), + 246: uint16(284), + 247: uint16(284), + 248: uint16(191), + 249: uint16(191), + 250: uint16(191), + 251: uint16(285), + 252: uint16(285), + 253: uint16(191), + 254: uint16(191), + 255: uint16(191), + 256: uint16(191), + 257: uint16(191), + 258: uint16(212), + 259: uint16(213), + 260: uint16(191), 261: uint16(287), - 262: uint16(287), - 263: uint16(288), - 264: uint16(288), - 265: uint16(288), + 262: uint16(289), + 263: uint16(289), + 264: uint16(289), + 265: uint16(290), 266: uint16(290), 267: uint16(290), - 268: uint16(286), - 269: uint16(286), - 270: uint16(292), - 271: uint16(293), - 272: uint16(293), - 273: uint16(291), - 274: uint16(291), - 275: uint16(291), - 276: uint16(291), - 277: uint16(217), - 278: uint16(217), - 279: uint16(236), - 280: uint16(236), - 281: uint16(236), - 282: uint16(190), - 283: uint16(190), - 284: uint16(190), - 285: uint16(295), - 286: uint16(295), - 287: uint16(190), - 288: uint16(190), - 289: uint16(190), - 290: uint16(190), - 291: uint16(190), - 292: uint16(190), - 293: uint16(190), - 294: uint16(296), - 295: uint16(190), - 296: uint16(190), - 297: uint16(190), - 298: uint16(298), - 299: uint16(300), - 300: uint16(301), - 301: uint16(301), - 302: uint16(302), - 303: uint16(266), - 304: uint16(266), - 305: uint16(305), - 306: uint16(305), - 307: uint16(305), - 308: uint16(304), - 309: uint16(241), - 310: uint16(241), - 311: uint16(306), - 312: uint16(307), - 313: uint16(308), - 314: uint16(308), - 315: uint16(308), - 316: uint16(308), - 317: uint16(308), - 318: uint16(309), - 319: uint16(309), - 320: uint16(309), - 321: uint16(313), - 322: uint16(315), - 323: uint16(315), + 268: uint16(292), + 269: uint16(292), + 270: uint16(288), + 271: uint16(288), + 272: uint16(294), + 273: uint16(295), + 274: uint16(295), + 275: uint16(293), + 276: uint16(293), + 277: uint16(293), + 278: uint16(293), + 279: uint16(218), + 280: uint16(218), + 281: uint16(237), + 282: uint16(237), + 283: uint16(237), + 284: uint16(191), + 285: uint16(191), + 286: uint16(191), + 287: uint16(297), + 288: uint16(297), + 289: uint16(191), + 290: uint16(191), + 291: uint16(191), + 292: uint16(191), + 293: uint16(191), + 294: uint16(191), + 295: uint16(191), + 296: uint16(298), + 297: uint16(191), + 298: uint16(191), + 299: uint16(191), + 300: uint16(300), + 301: uint16(302), + 302: uint16(303), + 303: uint16(303), + 304: uint16(304), + 305: uint16(268), + 306: uint16(268), + 307: uint16(307), + 308: uint16(307), + 309: uint16(307), + 310: uint16(306), + 311: uint16(308), + 312: uint16(242), + 313: uint16(242), + 314: uint16(309), + 315: uint16(310), + 316: uint16(311), + 317: uint16(311), + 318: uint16(311), + 319: uint16(311), + 320: uint16(311), + 321: uint16(312), + 322: uint16(312), + 323: uint16(312), 324: uint16(316), - 325: uint16(316), - 326: uint16(314), - 327: uint16(314), - 328: uint16(317), + 325: uint16(318), + 326: uint16(318), + 327: uint16(319), + 328: uint16(319), 329: uint16(317), - 330: uint16(318), - 331: uint16(318), - 332: uint16(318), - 333: uint16(251), - 334: uint16(273), - 335: uint16(273), - 336: uint16(273), - 337: uint16(312), - 338: uint16(312), - 339: uint16(311), - 340: uint16(185), - 341: uint16(186), - 342: uint16(186), - 343: uint16(187), - 344: uint16(187), + 330: uint16(317), + 331: uint16(320), + 332: uint16(320), + 333: uint16(321), + 334: uint16(321), + 335: uint16(321), + 336: uint16(252), + 337: uint16(275), + 338: uint16(275), + 339: uint16(275), + 340: uint16(315), + 341: uint16(315), + 342: uint16(314), + 343: uint16(217), + 344: uint16(186), 345: uint16(187), - 346: uint16(192), - 347: uint16(192), - 348: uint16(192), - 349: uint16(194), - 350: uint16(194), - 351: uint16(190), - 352: uint16(203), - 353: uint16(201), - 354: uint16(201), - 355: uint16(193), - 356: uint16(193), - 357: uint16(208), - 358: uint16(209), - 359: uint16(210), - 360: uint16(210), - 361: uint16(207), - 362: uint16(207), - 363: uint16(215), - 364: uint16(215), - 365: uint16(215), - 366: uint16(202), - 367: uint16(228), - 368: uint16(228), - 369: uint16(229), - 370: uint16(233), - 371: uint16(235), - 372: uint16(239), - 373: uint16(240), - 374: uint16(254), - 375: uint16(255), - 376: uint16(264), - 377: uint16(272), - 378: uint16(217), - 379: uint16(274), - 380: uint16(278), - 381: uint16(261), - 382: uint16(284), - 383: uint16(284), - 384: uint16(284), - 385: uint16(284), - 386: uint16(284), - 387: uint16(211), - 388: uint16(289), - 389: uint16(289), - 390: uint16(292), - 391: uint16(293), - 392: uint16(294), - 393: uint16(294), - 394: uint16(297), - 395: uint16(297), - 396: uint16(299), - 397: uint16(299), - 398: uint16(300), - 399: uint16(303), - 400: uint16(303), - 401: uint16(303), - 402: uint16(266), - 403: uint16(306), - 404: uint16(308), + 346: uint16(187), + 347: uint16(188), + 348: uint16(188), + 349: uint16(188), + 350: uint16(193), + 351: uint16(193), + 352: uint16(193), + 353: uint16(195), + 354: uint16(195), + 355: uint16(191), + 356: uint16(204), + 357: uint16(202), + 358: uint16(202), + 359: uint16(194), + 360: uint16(194), + 361: uint16(209), + 362: uint16(210), + 363: uint16(211), + 364: uint16(211), + 365: uint16(208), + 366: uint16(208), + 367: uint16(216), + 368: uint16(216), + 369: uint16(216), + 370: uint16(203), + 371: uint16(229), + 372: uint16(229), + 373: uint16(230), + 374: uint16(234), + 375: uint16(236), + 376: uint16(240), + 377: uint16(241), + 378: uint16(256), + 379: uint16(257), + 380: uint16(266), + 381: uint16(274), + 382: uint16(218), + 383: uint16(276), + 384: uint16(280), + 385: uint16(263), + 386: uint16(286), + 387: uint16(286), + 388: uint16(286), + 389: uint16(286), + 390: uint16(286), + 391: uint16(212), + 392: uint16(291), + 393: uint16(291), + 394: uint16(294), + 395: uint16(295), + 396: uint16(296), + 397: uint16(296), + 398: uint16(299), + 399: uint16(299), + 400: uint16(301), + 401: uint16(301), + 402: uint16(302), + 403: uint16(305), + 404: uint16(305), + 405: uint16(305), + 406: uint16(268), + 407: uint16(309), + 408: uint16(311), } // C documentation // // /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number // ** of symbols on the right-hand side of that rule. */ -var _yyRuleInfoNRhs = [405]int8{ +var _yyRuleInfoNRhs = [409]int8{ 0: int8(-int32(1)), 1: int8(-int32(3)), 2: int8(-int32(1)), @@ -158599,273 +160158,277 @@ var _yyRuleInfoNRhs = [405]int8{ 92: int8(-int32(9)), 93: int8(-int32(10)), 94: int8(-int32(4)), - 95: int8(-int32(5)), - 96: int8(-int32(1)), - 97: int8(-int32(1)), - 100: int8(-int32(5)), - 101: int8(-int32(3)), + 95: int8(-int32(1)), + 96: int8(-int32(5)), + 97: int8(-int32(5)), + 98: int8(-int32(1)), + 99: int8(-int32(1)), 102: int8(-int32(5)), - 103: int8(-int32(2)), - 106: int8(-int32(2)), - 107: int8(-int32(2)), - 109: int8(-int32(5)), - 110: int8(-int32(6)), - 111: int8(-int32(8)), + 103: int8(-int32(3)), + 104: int8(-int32(5)), + 105: int8(-int32(2)), + 108: int8(-int32(2)), + 109: int8(-int32(2)), + 111: int8(-int32(5)), 112: int8(-int32(6)), - 113: int8(-int32(6)), - 115: int8(-int32(2)), - 116: int8(-int32(1)), - 117: int8(-int32(3)), + 113: int8(-int32(8)), + 114: int8(-int32(6)), + 115: int8(-int32(6)), + 117: int8(-int32(2)), 118: int8(-int32(1)), 119: int8(-int32(3)), - 120: int8(-int32(5)), + 120: int8(-int32(1)), 121: int8(-int32(3)), - 122: int8(-int32(1)), - 123: int8(-int32(2)), - 124: int8(-int32(3)), - 125: int8(-int32(4)), - 126: int8(-int32(2)), + 122: int8(-int32(5)), + 123: int8(-int32(3)), + 124: int8(-int32(1)), + 125: int8(-int32(2)), + 126: int8(-int32(3)), 127: int8(-int32(4)), - 130: int8(-int32(3)), - 131: int8(-int32(2)), - 133: int8(-int32(3)), - 134: int8(-int32(5)), + 128: int8(-int32(2)), + 129: int8(-int32(4)), + 132: int8(-int32(3)), + 133: int8(-int32(2)), 135: int8(-int32(3)), - 136: int8(-int32(1)), - 137: int8(-int32(1)), - 139: int8(-int32(2)), - 140: int8(-int32(2)), - 143: int8(-int32(3)), - 145: int8(-int32(2)), + 136: int8(-int32(5)), + 137: int8(-int32(3)), + 138: int8(-int32(1)), + 139: int8(-int32(1)), + 141: int8(-int32(2)), + 142: int8(-int32(2)), + 145: int8(-int32(3)), 147: int8(-int32(2)), - 148: int8(-int32(4)), - 149: int8(-int32(4)), - 150: int8(-int32(6)), - 152: int8(-int32(2)), + 149: int8(-int32(2)), + 150: int8(-int32(4)), + 151: int8(-int32(4)), + 152: int8(-int32(6)), 154: int8(-int32(2)), - 155: int8(-int32(2)), - 156: int8(-int32(4)), - 157: int8(-int32(9)), - 158: int8(-int32(5)), - 159: int8(-int32(7)), - 160: int8(-int32(3)), - 161: int8(-int32(5)), - 162: int8(-int32(7)), - 163: int8(-int32(8)), - 165: int8(-int32(2)), - 166: int8(-int32(12)), - 167: int8(-int32(9)), - 168: int8(-int32(5)), - 169: int8(-int32(8)), - 170: int8(-int32(2)), - 171: int8(-int32(2)), - 172: int8(-int32(1)), - 174: int8(-int32(3)), - 175: int8(-int32(3)), - 176: int8(-int32(1)), + 156: int8(-int32(2)), + 157: int8(-int32(2)), + 158: int8(-int32(4)), + 159: int8(-int32(9)), + 160: int8(-int32(5)), + 161: int8(-int32(7)), + 162: int8(-int32(3)), + 163: int8(-int32(5)), + 164: int8(-int32(7)), + 165: int8(-int32(8)), + 167: int8(-int32(2)), + 168: int8(-int32(12)), + 169: int8(-int32(9)), + 170: int8(-int32(5)), + 171: int8(-int32(8)), + 172: int8(-int32(2)), + 173: int8(-int32(2)), + 174: int8(-int32(1)), + 176: int8(-int32(3)), 177: int8(-int32(3)), 178: int8(-int32(1)), 179: int8(-int32(3)), - 180: int8(-int32(5)), - 181: int8(-int32(1)), - 182: int8(-int32(1)), + 180: int8(-int32(1)), + 181: int8(-int32(3)), + 182: int8(-int32(5)), 183: int8(-int32(1)), 184: int8(-int32(1)), - 185: int8(-int32(3)), - 186: int8(-int32(6)), - 187: int8(-int32(5)), - 188: int8(-int32(8)), - 189: int8(-int32(4)), - 190: int8(-int32(6)), - 191: int8(-int32(9)), - 192: int8(-int32(5)), - 193: int8(-int32(1)), + 185: int8(-int32(1)), + 186: int8(-int32(1)), + 187: int8(-int32(3)), + 188: int8(-int32(6)), + 189: int8(-int32(5)), + 190: int8(-int32(8)), + 191: int8(-int32(4)), + 192: int8(-int32(6)), + 193: int8(-int32(9)), 194: int8(-int32(5)), - 195: int8(-int32(3)), - 196: int8(-int32(3)), + 195: int8(-int32(1)), + 196: int8(-int32(5)), 197: int8(-int32(3)), 198: int8(-int32(3)), 199: int8(-int32(3)), 200: int8(-int32(3)), 201: int8(-int32(3)), 202: int8(-int32(3)), - 203: int8(-int32(2)), + 203: int8(-int32(3)), 204: int8(-int32(3)), - 205: int8(-int32(5)), - 206: int8(-int32(2)), - 207: int8(-int32(3)), - 208: int8(-int32(3)), - 209: int8(-int32(4)), - 210: int8(-int32(6)), - 211: int8(-int32(5)), - 212: int8(-int32(2)), - 213: int8(-int32(2)), + 205: int8(-int32(2)), + 206: int8(-int32(3)), + 207: int8(-int32(5)), + 208: int8(-int32(2)), + 209: int8(-int32(3)), + 210: int8(-int32(3)), + 211: int8(-int32(4)), + 212: int8(-int32(6)), + 213: int8(-int32(5)), 214: int8(-int32(2)), - 215: int8(-int32(3)), - 216: int8(-int32(1)), - 217: int8(-int32(2)), - 218: int8(-int32(5)), - 219: int8(-int32(1)), - 220: int8(-int32(2)), - 221: int8(-int32(5)), - 222: int8(-int32(3)), + 215: int8(-int32(2)), + 216: int8(-int32(2)), + 217: int8(-int32(3)), + 218: int8(-int32(1)), + 219: int8(-int32(2)), + 220: int8(-int32(5)), + 221: int8(-int32(1)), + 222: int8(-int32(2)), 223: int8(-int32(5)), - 224: int8(-int32(5)), - 225: int8(-int32(4)), + 224: int8(-int32(3)), + 225: int8(-int32(5)), 226: int8(-int32(5)), - 227: int8(-int32(5)), - 228: int8(-int32(4)), - 229: int8(-int32(2)), - 233: int8(-int32(3)), - 234: int8(-int32(1)), - 236: int8(-int32(3)), - 237: int8(-int32(12)), - 238: int8(-int32(1)), - 241: int8(-int32(3)), - 242: int8(-int32(5)), + 227: int8(-int32(4)), + 228: int8(-int32(5)), + 229: int8(-int32(5)), + 230: int8(-int32(4)), + 231: int8(-int32(2)), + 235: int8(-int32(3)), + 236: int8(-int32(1)), + 238: int8(-int32(3)), + 239: int8(-int32(12)), + 240: int8(-int32(1)), 243: int8(-int32(3)), - 245: int8(-int32(2)), - 246: int8(-int32(4)), + 244: int8(-int32(5)), + 245: int8(-int32(3)), 247: int8(-int32(2)), - 248: int8(-int32(3)), + 248: int8(-int32(4)), 249: int8(-int32(2)), - 251: int8(-int32(3)), - 252: int8(-int32(5)), - 253: int8(-int32(6)), + 250: int8(-int32(3)), + 251: int8(-int32(2)), + 253: int8(-int32(3)), 254: int8(-int32(5)), 255: int8(-int32(6)), - 256: int8(-int32(2)), - 257: int8(-int32(2)), - 258: int8(-int32(5)), - 259: int8(-int32(11)), - 260: int8(-int32(1)), - 261: int8(-int32(2)), - 263: int8(-int32(1)), - 264: int8(-int32(1)), - 265: int8(-int32(3)), - 267: int8(-int32(2)), - 268: int8(-int32(3)), + 256: int8(-int32(5)), + 257: int8(-int32(6)), + 258: int8(-int32(2)), + 259: int8(-int32(2)), + 260: int8(-int32(5)), + 261: int8(-int32(11)), + 262: int8(-int32(1)), + 263: int8(-int32(2)), + 265: int8(-int32(1)), + 266: int8(-int32(1)), + 267: int8(-int32(3)), 269: int8(-int32(2)), 270: int8(-int32(3)), - 271: int8(-int32(3)), - 272: int8(-int32(2)), - 273: int8(-int32(9)), - 274: int8(-int32(8)), - 275: int8(-int32(6)), - 276: int8(-int32(3)), - 277: int8(-int32(4)), - 278: int8(-int32(6)), - 279: int8(-int32(1)), - 280: int8(-int32(1)), + 271: int8(-int32(2)), + 272: int8(-int32(3)), + 273: int8(-int32(3)), + 274: int8(-int32(2)), + 275: int8(-int32(9)), + 276: int8(-int32(8)), + 277: int8(-int32(6)), + 278: int8(-int32(3)), + 279: int8(-int32(4)), + 280: int8(-int32(6)), 281: int8(-int32(1)), - 282: int8(-int32(4)), - 283: int8(-int32(6)), - 284: int8(-int32(3)), - 286: int8(-int32(2)), - 287: int8(-int32(1)), - 288: int8(-int32(3)), + 282: int8(-int32(1)), + 283: int8(-int32(1)), + 284: int8(-int32(4)), + 285: int8(-int32(6)), + 286: int8(-int32(3)), + 288: int8(-int32(2)), 289: int8(-int32(1)), 290: int8(-int32(3)), - 291: int8(-int32(6)), - 292: int8(-int32(7)), + 291: int8(-int32(1)), + 292: int8(-int32(3)), 293: int8(-int32(6)), - 294: int8(-int32(1)), - 295: int8(-int32(8)), + 294: int8(-int32(7)), + 295: int8(-int32(6)), 296: int8(-int32(1)), - 297: int8(-int32(4)), - 298: int8(-int32(8)), - 300: int8(-int32(1)), - 301: int8(-int32(3)), + 297: int8(-int32(8)), + 298: int8(-int32(1)), + 299: int8(-int32(4)), + 300: int8(-int32(8)), 302: int8(-int32(1)), - 303: int8(-int32(2)), - 304: int8(-int32(3)), - 305: int8(-int32(1)), - 306: int8(-int32(2)), - 307: int8(-int32(3)), - 308: int8(-int32(6)), - 309: int8(-int32(1)), - 310: int8(-int32(3)), - 311: int8(-int32(3)), - 312: int8(-int32(5)), - 313: int8(-int32(5)), - 314: int8(-int32(6)), - 315: int8(-int32(4)), + 303: int8(-int32(3)), + 304: int8(-int32(1)), + 305: int8(-int32(2)), + 306: int8(-int32(3)), + 307: int8(-int32(1)), + 308: int8(-int32(2)), + 309: int8(-int32(3)), + 310: int8(-int32(6)), + 311: int8(-int32(1)), + 312: int8(-int32(1)), + 313: int8(-int32(3)), + 314: int8(-int32(3)), + 315: int8(-int32(5)), 316: int8(-int32(5)), - 317: int8(-int32(2)), - 319: int8(-int32(3)), - 320: int8(-int32(6)), - 321: int8(-int32(1)), - 322: int8(-int32(1)), - 323: int8(-int32(2)), + 317: int8(-int32(6)), + 318: int8(-int32(4)), + 319: int8(-int32(5)), + 320: int8(-int32(2)), + 322: int8(-int32(3)), + 323: int8(-int32(6)), 324: int8(-int32(1)), - 325: int8(-int32(2)), + 325: int8(-int32(1)), 326: int8(-int32(2)), - 327: int8(-int32(2)), + 327: int8(-int32(1)), + 328: int8(-int32(2)), 329: int8(-int32(2)), 330: int8(-int32(2)), - 331: int8(-int32(2)), - 332: int8(-int32(1)), + 332: int8(-int32(2)), 333: int8(-int32(2)), 334: int8(-int32(2)), 335: int8(-int32(1)), - 336: int8(-int32(1)), - 337: int8(-int32(4)), - 338: int8(-int32(2)), - 339: int8(-int32(5)), - 340: int8(-int32(1)), + 336: int8(-int32(2)), + 337: int8(-int32(2)), + 338: int8(-int32(1)), + 339: int8(-int32(1)), + 340: int8(-int32(4)), 341: int8(-int32(2)), - 342: int8(-int32(1)), + 342: int8(-int32(5)), 343: int8(-int32(1)), - 344: int8(-int32(2)), - 345: int8(-int32(3)), + 344: int8(-int32(1)), + 345: int8(-int32(2)), + 346: int8(-int32(1)), 347: int8(-int32(1)), 348: int8(-int32(2)), - 349: int8(-int32(1)), - 351: int8(-int32(2)), - 352: int8(-int32(1)), - 353: int8(-int32(4)), - 354: int8(-int32(2)), - 355: int8(-int32(1)), + 349: int8(-int32(3)), + 351: int8(-int32(1)), + 352: int8(-int32(2)), + 353: int8(-int32(1)), + 355: int8(-int32(2)), 356: int8(-int32(1)), - 357: int8(-int32(1)), - 358: int8(-int32(1)), + 357: int8(-int32(4)), + 358: int8(-int32(2)), 359: int8(-int32(1)), 360: int8(-int32(1)), - 361: int8(-int32(2)), - 363: int8(-int32(2)), - 364: int8(-int32(4)), + 361: int8(-int32(1)), + 362: int8(-int32(1)), + 363: int8(-int32(1)), + 364: int8(-int32(1)), 365: int8(-int32(2)), - 366: int8(-int32(2)), - 367: int8(-int32(3)), - 368: int8(-int32(1)), - 370: int8(-int32(1)), - 371: int8(-int32(1)), + 367: int8(-int32(2)), + 368: int8(-int32(4)), + 369: int8(-int32(2)), + 370: int8(-int32(2)), + 371: int8(-int32(3)), 372: int8(-int32(1)), - 373: int8(-int32(1)), - 374: int8(-int32(2)), + 374: int8(-int32(1)), 375: int8(-int32(1)), 376: int8(-int32(1)), - 378: int8(-int32(1)), + 377: int8(-int32(1)), + 378: int8(-int32(2)), 379: int8(-int32(1)), 380: int8(-int32(1)), - 381: int8(-int32(1)), 382: int8(-int32(1)), 383: int8(-int32(1)), 384: int8(-int32(1)), 385: int8(-int32(1)), 386: int8(-int32(1)), 387: int8(-int32(1)), - 389: int8(-int32(3)), + 388: int8(-int32(1)), + 389: int8(-int32(1)), 390: int8(-int32(1)), - 392: int8(-int32(1)), - 395: int8(-int32(1)), + 391: int8(-int32(1)), + 393: int8(-int32(3)), + 394: int8(-int32(1)), 396: int8(-int32(1)), - 397: int8(-int32(3)), - 398: int8(-int32(2)), - 400: int8(-int32(4)), - 401: int8(-int32(2)), - 403: int8(-int32(1)), - 404: int8(-int32(1)), + 399: int8(-int32(1)), + 400: int8(-int32(1)), + 401: int8(-int32(3)), + 402: int8(-int32(2)), + 404: int8(-int32(4)), + 405: int8(-int32(2)), + 407: int8(-int32(1)), + 408: int8(-int32(1)), } // C documentation @@ -158883,18 +160446,19 @@ var _yyRuleInfoNRhs = [405]int8{ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int32, yyLookaheadToken TToken, pParse uintptr) (r uint16) { bp := tls.Alloc(144) defer tls.Free(144) - var bNot, bNot1, nExpr, yygoto, yysize, v344 int32 + var bNot, bNot1, nExpr, yygoto, yysize int32 var n Tu32 - var p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v343, v345, v346, v347, v348 uintptr + var op Tu8 + var p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v347, v348, v349, v350, v351 uintptr var yyact uint16 - var v349 TToken + var v352 TToken var _ /* all at bp+104 */ TToken var _ /* as at bp+72 */ TToken var _ /* dest at bp+16 */ TSelectDest var _ /* t at bp+88 */ TToken var _ /* x at bp+56 */ TToken var _ /* yylhsminor at bp+0 */ TYYMINORTYPE - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v343, v344, v345, v346, v347, v348, v349 /* Amount to pop the stack */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, op, p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v347, v348, v349, v350, v351, v352 /* Amount to pop the stack */ _ = yyLookahead _ = yyLookaheadToken yymsp = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos @@ -158915,7 +160479,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _7 case uint32(7): goto _8 - case uint32(321): + case uint32(324): goto _9 case uint32(9): goto _10 @@ -158943,9 +160507,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _21 case uint32(81): goto _22 - case uint32(98): + case uint32(100): goto _23 - case uint32(244): + case uint32(246): goto _24 case uint32(16): goto _25 @@ -158969,7 +160533,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _34 case uint32(26): goto _35 - case uint32(104): + case uint32(106): goto _36 case uint32(27): goto _37 @@ -159043,17 +160607,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _71 case uint32(61): goto _72 - case uint32(171): + case uint32(173): goto _73 case uint32(80): goto _74 case uint32(63): goto _75 - case uint32(217): + case uint32(219): goto _76 - case uint32(220): + case uint32(222): goto _77 - case uint32(245): + case uint32(247): goto _78 case uint32(64): goto _79 @@ -159075,7 +160639,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _87 case uint32(77): goto _88 - case uint32(172): + case uint32(174): goto _89 case uint32(78): goto _90 @@ -159109,47 +160673,47 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _104 case uint32(95): goto _105 - case uint32(96): - goto _106 case uint32(97): + goto _106 + case uint32(96): goto _107 - case uint32(132): + case uint32(98): goto _108 case uint32(99): goto _109 - case uint32(142): + case uint32(134): goto _110 - case uint32(232): + case uint32(101): goto _111 - case uint32(235): + case uint32(144): goto _112 - case uint32(240): + case uint32(234): goto _113 - case uint32(100): + case uint32(237): goto _114 - case uint32(101): + case uint32(242): goto _115 case uint32(102): goto _116 - case uint32(115): - goto _117 case uint32(103): + goto _117 + case uint32(104): goto _118 - case uint32(256): + case uint32(117): goto _119 - case uint32(257): + case uint32(105): goto _120 - case uint32(108): + case uint32(258): goto _121 - case uint32(105): + case uint32(259): goto _122 - case uint32(106): + case uint32(110): goto _123 case uint32(107): goto _124 - case uint32(109): + case uint32(108): goto _125 - case uint32(110): + case uint32(109): goto _126 case uint32(111): goto _127 @@ -159157,13 +160721,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _128 case uint32(113): goto _129 - case uint32(129): - goto _130 case uint32(114): + goto _130 + case uint32(115): goto _131 - case uint32(116): + case uint32(131): goto _132 - case uint32(117): + case uint32(116): goto _133 case uint32(118): goto _134 @@ -159187,15 +160751,15 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _143 case uint32(128): goto _144 - case uint32(130): + case uint32(129): goto _145 - case uint32(131): + case uint32(130): goto _146 - case uint32(143): + case uint32(132): goto _147 case uint32(133): goto _148 - case uint32(134): + case uint32(145): goto _149 case uint32(135): goto _150 @@ -159203,49 +160767,49 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _151 case uint32(137): goto _152 - case uint32(141): - goto _153 case uint32(138): - goto _154 + goto _153 case uint32(139): + goto _154 + case uint32(143): goto _155 case uint32(140): goto _156 - case uint32(146): + case uint32(141): goto _157 - case uint32(144): + case uint32(142): goto _158 - case uint32(151): + case uint32(148): goto _159 - case uint32(153): + case uint32(146): goto _160 - case uint32(230): + case uint32(153): goto _161 - case uint32(231): + case uint32(155): goto _162 - case uint32(250): + case uint32(232): goto _163 - case uint32(152): + case uint32(233): goto _164 - case uint32(145): + case uint32(252): goto _165 case uint32(154): goto _166 - case uint32(229): + case uint32(147): goto _167 - case uint32(249): + case uint32(156): goto _168 - case uint32(147): + case uint32(231): goto _169 - case uint32(148): + case uint32(251): goto _170 case uint32(149): goto _171 case uint32(150): goto _172 - case uint32(155): + case uint32(151): goto _173 - case uint32(156): + case uint32(152): goto _174 case uint32(157): goto _175 @@ -159275,9 +160839,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _187 case uint32(170): goto _188 - case uint32(173): + case uint32(171): goto _189 - case uint32(174): + case uint32(172): goto _190 case uint32(175): goto _191 @@ -159291,13 +160855,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _195 case uint32(180): goto _196 - case uint32(182): - goto _197 case uint32(181): + goto _197 + case uint32(182): goto _198 - case uint32(183): - goto _199 case uint32(184): + goto _199 + case uint32(183): goto _200 case uint32(185): goto _201 @@ -159321,13 +160885,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _210 case uint32(195): goto _211 - case uint32(197): - goto _212 case uint32(196): + goto _212 + case uint32(197): goto _213 - case uint32(198): - goto _214 case uint32(199): + goto _214 + case uint32(198): goto _215 case uint32(200): goto _216 @@ -159353,23 +160917,23 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _226 case uint32(211): goto _227 - case uint32(213): - goto _228 case uint32(212): + goto _228 + case uint32(213): goto _229 - case uint32(214): - goto _230 case uint32(215): + goto _230 + case uint32(214): goto _231 - case uint32(219): - goto _232 case uint32(216): + goto _232 + case uint32(217): goto _233 - case uint32(218): - goto _234 case uint32(221): + goto _234 + case uint32(218): goto _235 - case uint32(222): + case uint32(220): goto _236 case uint32(223): goto _237 @@ -159383,35 +160947,35 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _241 case uint32(228): goto _242 - case uint32(233): + case uint32(229): goto _243 - case uint32(234): + case uint32(230): goto _244 - case uint32(241): + case uint32(235): goto _245 case uint32(236): goto _246 - case uint32(237): + case uint32(243): goto _247 - case uint32(280): - goto _248 case uint32(238): - goto _249 + goto _248 case uint32(239): + goto _249 + case uint32(282): goto _250 - case uint32(242): + case uint32(240): goto _251 - case uint32(243): + case uint32(241): goto _252 - case uint32(246): + case uint32(244): goto _253 - case uint32(247): + case uint32(245): goto _254 case uint32(248): goto _255 - case uint32(251): + case uint32(249): goto _256 - case uint32(252): + case uint32(250): goto _257 case uint32(253): goto _258 @@ -159419,9 +160983,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _259 case uint32(255): goto _260 - case uint32(258): + case uint32(256): goto _261 - case uint32(259): + case uint32(257): goto _262 case uint32(260): goto _263 @@ -159429,21 +160993,21 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _264 case uint32(262): goto _265 - case uint32(264): - goto _266 case uint32(263): + goto _266 + case uint32(264): goto _267 - case uint32(265): + case uint32(266): goto _268 - case uint32(285): + case uint32(265): goto _269 - case uint32(266): + case uint32(267): goto _270 - case uint32(286): + case uint32(287): goto _271 - case uint32(267): - goto _272 case uint32(268): + goto _272 + case uint32(288): goto _273 case uint32(269): goto _274 @@ -159467,17 +161031,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _283 case uint32(279): goto _284 - case uint32(281): + case uint32(280): goto _285 - case uint32(282): + case uint32(281): goto _286 case uint32(283): goto _287 case uint32(284): goto _288 - case uint32(287): + case uint32(285): goto _289 - case uint32(288): + case uint32(286): goto _290 case uint32(289): goto _291 @@ -159501,19 +161065,19 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _300 case uint32(299): goto _301 - case uint32(301): - goto _302 case uint32(300): + goto _302 + case uint32(301): goto _303 - case uint32(302): + case uint32(303): goto _304 - case uint32(304): + case uint32(302): goto _305 - case uint32(303): + case uint32(304): goto _306 - case uint32(305): - goto _307 case uint32(306): + goto _307 + case uint32(305): goto _308 case uint32(307): goto _309 @@ -159543,31 +161107,31 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _321 case uint32(320): goto _322 - case uint32(324): + case uint32(321): goto _323 case uint32(322): goto _324 - case uint32(325): - goto _325 case uint32(323): - goto _326 + goto _325 case uint32(327): + goto _326 + case uint32(325): goto _327 - case uint32(326): - goto _328 case uint32(328): + goto _328 + case uint32(326): goto _329 - case uint32(329): + case uint32(330): goto _330 - case uint32(331): + case uint32(329): goto _331 - case uint32(330): + case uint32(331): goto _332 case uint32(332): goto _333 - case uint32(333): - goto _334 case uint32(334): + goto _334 + case uint32(333): goto _335 case uint32(335): goto _336 @@ -159579,34 +161143,42 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _339 case uint32(339): goto _340 - default: + case uint32(340): goto _341 + case uint32(341): + goto _342 + case uint32(342): + goto _343 + case uint32(343): + goto _344 + default: + goto _345 } - goto _342 + goto _346 _1: ; /* explain ::= EXPLAIN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(1) } - goto _342 + goto _346 _2: ; /* explain ::= EXPLAIN QUERY PLAN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(2) } - goto _342 + goto _346 _3: ; /* cmdx ::= cmd */ _sqlite3FinishCoding(tls, pParse) - goto _342 + goto _346 _4: ; /* cmd ::= BEGIN transtype trans_opt */ _sqlite3BeginTransaction(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _5: ; /* transtype ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_DEFERRED) - goto _342 + goto _346 _7: ; /* transtype ::= DEFERRED */ _6: @@ -159616,33 +161188,33 @@ _8: _9: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 + goto _346 _11: ; /* cmd ::= COMMIT|END trans_opt */ _10: ; _sqlite3EndTransaction(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor)) - goto _342 + goto _346 _12: ; /* cmd ::= SAVEPOINT nm */ _sqlite3Savepoint(tls, pParse, SAVEPOINT_BEGIN, yymsp+8) - goto _342 + goto _346 _13: ; /* cmd ::= RELEASE savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_RELEASE), yymsp+8) - goto _342 + goto _346 _14: ; /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_ROLLBACK), yymsp+8) - goto _342 + goto _346 _15: ; /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ _sqlite3StartTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), 0, 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _16: ; /* createkw ::= CREATE */ _disableLookaside(tls, pParse) - goto _342 + goto _346 _18: ; /* ifnotexists ::= */ _17: @@ -159660,56 +161232,56 @@ _23: _24: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = 0 - goto _342 + goto _346 _25: ; /* ifnotexists ::= IF NOT EXISTS */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(1) - goto _342 + goto _346 _26: ; /* temp ::= TEMP */ *(*int32)(unsafe.Pointer(yymsp + 8)) = libc.BoolInt32(int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0) - goto _342 + goto _346 _27: ; /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ _sqlite3EndTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*Tu32)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 + goto _346 _28: ; /* create_table_args ::= AS select */ _sqlite3EndTable(tls, pParse, uintptr(0), uintptr(0), uint32(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _29: ; /* table_option_set ::= */ *(*Tu32)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint32(0) - goto _342 + goto _346 _30: ; /* table_option_set ::= table_option_set COMMA table_option */ *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) | *(*Tu32)(unsafe.Pointer(yymsp + 8)) *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _31: ; /* table_option ::= WITHOUT nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+17045, int32(5)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+17132, int32(5)) == 0 { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) } else { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23753, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23876, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } - goto _342 + goto _346 _32: ; /* table_option ::= nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16958, int32(6)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+17045, int32(6)) == 0 { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(TF_Strict) } else { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23753, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23876, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } *(*Tu32)(unsafe.Pointer(yymsp + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _33: ; /* columnname ::= nm typetoken */ _sqlite3AddColumn(tls, pParse, *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*TToken)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _35: ; /* typetoken ::= */ _34: @@ -159718,50 +161290,50 @@ _36: ; *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 + goto _346 _37: ; /* typetoken ::= typename LP signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) - goto _342 + goto _346 _38: ; /* typetoken ::= typename LP signed COMMA signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))))) - goto _342 + goto _346 _39: ; /* typename ::= typename ID|STRING */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) + uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) - goto _342 + goto _346 _40: ; /* scanpt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken.Fz - goto _342 + goto _346 _41: ; /* scantok ::= */ *(*TToken)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken - goto _342 + goto _346 _43: ; /* ccons ::= CONSTRAINT nm */ _42: ; (*TParse)(unsafe.Pointer(pParse)).FconstraintName = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _44: ; /* ccons ::= DEFAULT scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _45: ; /* ccons ::= DEFAULT LP expr RP */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))+uintptr(1), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _46: ; /* ccons ::= DEFAULT PLUS scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _47: ; /* ccons ::= DEFAULT MINUS scantok term */ p = _sqlite3PExpr(tls, pParse, int32(TK_UMINUS), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) _sqlite3AddDefaultValue(tls, pParse, p, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _48: ; /* ccons ::= DEFAULT scantok ID|INDEXED */ p1 = _tokenExpr(tls, pParse, int32(TK_STRING), *(*TToken)(unsafe.Pointer(yymsp + 8))) @@ -159769,99 +161341,99 @@ _48: _sqlite3ExprIdToTrueFalse(tls, p1) } _sqlite3AddDefaultValue(tls, pParse, p1, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - goto _342 + goto _346 _49: ; /* ccons ::= NOT NULL onconf */ _sqlite3AddNotNull(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _50: ; /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ _sqlite3AddPrimaryKey(tls, pParse, uintptr(0), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _51: ; /* ccons ::= UNIQUE onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _52: ; /* ccons ::= CHECK LP expr RP */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _53: ; /* ccons ::= REFERENCES nm eidlist_opt refargs */ _sqlite3CreateForeignKey(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _54: ; /* ccons ::= defer_subclause */ _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _55: ; /* ccons ::= COLLATE ID|STRING */ _sqlite3AddCollateType(tls, pParse, yymsp+8) - goto _342 + goto _346 _56: ; /* generated ::= LP expr RP */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 + goto _346 _57: ; /* generated ::= LP expr RP ID */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 + goto _346 _58: ; /* autoinc ::= AUTOINCR */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(1) - goto _342 + goto _346 _59: ; /* refargs ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = libc.Int32FromInt32(OE_None) * libc.Int32FromInt32(0x0101) /* EV: R-19803-45884 */ - goto _342 + goto _346 _60: ; /* refargs ::= refargs refarg */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) & ^*(*int32)(unsafe.Pointer(yymsp + 8 + 4)) | *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _61: ; /* refarg ::= MATCH nm */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _62: ; /* refarg ::= ON INSERT refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _63: ; /* refarg ::= ON DELETE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x0000ff) - goto _342 + goto _346 _64: ; /* refarg ::= ON UPDATE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) << int32(8) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x00ff00) - goto _342 + goto _346 _65: ; /* refact ::= SET NULL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetNull) /* EV: R-33326-45252 */ - goto _342 + goto _346 _66: ; /* refact ::= SET DEFAULT */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetDflt) /* EV: R-33326-45252 */ - goto _342 + goto _346 _67: ; /* refact ::= CASCADE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Cascade) /* EV: R-33326-45252 */ - goto _342 + goto _346 _68: ; /* refact ::= RESTRICT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Restrict) /* EV: R-33326-45252 */ - goto _342 + goto _346 _69: ; /* refact ::= NO ACTION */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = OE_None /* EV: R-33326-45252 */ - goto _342 + goto _346 _70: ; /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 - goto _342 + goto _346 _72: ; /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ _71: @@ -159869,7 +161441,7 @@ _71: _73: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _75: ; /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ _74: @@ -159881,64 +161453,64 @@ _77: _78: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(1) - goto _342 + goto _346 _79: ; /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 - goto _342 + goto _346 _80: ; /* tconscomma ::= COMMA */ (*TParse)(unsafe.Pointer(pParse)).FconstraintName.Fn = uint32(0) - goto _342 + goto _346 _81: ; /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ _sqlite3AddPrimaryKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), 0) - goto _342 + goto _346 _82: ; /* tcons ::= UNIQUE LP sortlist RP onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _83: ; /* tcons ::= CHECK LP expr RP onconf */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _84: ; /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ _sqlite3CreateForeignKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _86: ; /* onconf ::= */ _85: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(OE_Default) - goto _342 + goto _346 _87: ; /* onconf ::= ON CONFLICT resolvetype */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _88: ; /* resolvetype ::= IGNORE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Ignore) - goto _342 + goto _346 _90: ; /* resolvetype ::= REPLACE */ _89: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Replace) - goto _342 + goto _346 _91: ; /* cmd ::= DROP TABLE ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _92: ; /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ _sqlite3CreateView(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) - goto _342 + goto _346 _93: ; /* cmd ::= DROP VIEW ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), int32(1), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _94: ; /* cmd ::= select */ *(*TSelectDest)(unsafe.Pointer(bp + 16)) = TSelectDest{ @@ -159946,22 +161518,22 @@ _94: } _sqlite3Select(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), bp+16) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _95: ; /* select ::= WITH wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _96: ; /* select ::= WITH RECURSIVE wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _97: ; /* select ::= selectnowith */ p2 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) if p2 != 0 { _parserDoubleLinkSelect(tls, pParse, p2) } - goto _342 + goto _346 _98: ; /* selectnowith ::= selectnowith multiselect_op oneselect */ pRhs = *(*uintptr)(unsafe.Pointer(yymsp + 8)) @@ -159986,21 +161558,21 @@ _98: _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pLhs) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = pRhs - goto _342 + goto _346 _100: ; /* multiselect_op ::= UNION */ _99: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-OP*/ - goto _342 + goto _346 _101: ; /* multiselect_op ::= UNION ALL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_ALL) - goto _342 + goto _346 _102: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _103: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(9))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -160009,116 +161581,111 @@ _103: } else { _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) } - goto _342 + goto _346 _104: ; /* values ::= VALUES LP nexprlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) - goto _342 + goto _346 _105: - ; /* values ::= values COMMA LP nexprlist RP */ - pLeft = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) - pRight = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(libc.Int32FromInt32(SF_Values)|libc.Int32FromInt32(SF_MultiValue)), uintptr(0)) - if pLeft != 0 { - *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) - } - if pRight != 0 { - (*TSelect)(unsafe.Pointer(pRight)).Fop = uint8(TK_ALL) - (*TSelect)(unsafe.Pointer(pRight)).FpPrior = pLeft - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pRight - } else { - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pLeft - } - goto _342 + ; /* oneselect ::= mvalues */ + _sqlite3MultiValuesEnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_107: + ; /* mvalues ::= values COMMA LP nexprlist RP */ _106: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3MultiValues(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_108: ; /* distinct ::= DISTINCT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_Distinct) - goto _342 -_107: + goto _346 +_109: ; /* distinct ::= ALL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_All) - goto _342 -_109: + goto _346 +_111: ; /* sclp ::= */ -_108: - ; _110: ; -_111: - ; _112: ; _113: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 _114: + ; +_115: + ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 +_116: ; /* selcollist ::= sclp scanpt expr scanpt as */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) > uint32(0) { _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+8, int32(1)) } _sqlite3ExprListSetSpan(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_115: + goto _346 +_117: ; /* selcollist ::= sclp scanpt STAR */ p3 = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_ASTERISK), uintptr(0)) _sqlite3ExprSetErrorOffset(tls, p3, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), p3) - goto _342 -_116: + goto _346 +_118: ; /* selcollist ::= sclp scanpt nm DOT STAR */ - pRight1 = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) - _sqlite3ExprSetErrorOffset(tls, pRight1, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) - pLeft1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft1, pRight1) + pRight = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) + _sqlite3ExprSetErrorOffset(tls, pRight, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) + pLeft = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) + pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft, pRight) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pDot) - goto _342 -_118: + goto _346 +_120: ; /* as ::= AS nm */ -_117: - ; _119: ; -_120: +_121: ; - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 _122: + ; + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) + goto _346 +_124: ; /* from ::= */ -_121: +_123: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_123: + goto _346 +_125: ; /* from ::= FROM seltablist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) _sqlite3SrcListShiftJoinType(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_124: + goto _346 +_126: ; /* stl_prefix ::= seltablist joinop */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 && (*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc > 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8 + uintptr((*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc-int32(1))*104))).Ffg.Fjointype = uint8(*(*int32)(unsafe.Pointer(yymsp + 8))) } - goto _342 -_125: + goto _346 +_127: ; /* seltablist ::= stl_prefix nm dbnm as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) - goto _342 -_126: + goto _346 +_128: ; /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_127: + goto _346 +_129: ; /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListFuncArgs(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) - goto _342 -_128: + goto _346 +_130: ; /* seltablist ::= stl_prefix LP select RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_129: + goto _346 +_131: ; /* seltablist ::= stl_prefix LP seltablist RP as on_using */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) == uintptr(0) && *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) == uint32(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8)) == uintptr(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) @@ -160140,9 +161707,9 @@ _129: libc.SetBitFieldPtr16Uint32(pOld+60+4, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pNew+60+4, libc.Uint32FromInt32(1), 2, 0x4) } - v343 = libc.UintptrFromInt32(0) - (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v343 - (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v343 + v347 = libc.UintptrFromInt32(0) + (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v347 + (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v347 (*TSrcItem)(unsafe.Pointer(pOld)).FpSelect = uintptr(0) } _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) @@ -160152,189 +161719,189 @@ _129: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, pSubquery, yymsp+8) } } - goto _342 -_131: + goto _346 +_133: ; /* dbnm ::= */ -_130: +_132: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) - goto _342 -_132: + goto _346 +_134: ; /* fullname ::= nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_133: + goto _346 +_135: ; /* fullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_134: + goto _346 +_136: ; /* xfullname ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) /*A-overwrites-X*/ - goto _342 -_135: + goto _346 +_137: ; /* xfullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) /*A-overwrites-X*/ - goto _342 -_136: + goto _346 +_138: ; /* xfullname ::= nm DOT nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_137: + goto _346 +_139: ; /* xfullname ::= nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0)) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_138: + goto _346 +_140: ; /* joinop ::= COMMA|JOIN */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(JT_INNER) - goto _342 -_139: + goto _346 +_141: ; /* joinop ::= JOIN_KW JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), uintptr(0)) /*X-overwrites-A*/ - goto _342 -_140: + goto _346 +_142: ; /* joinop ::= JOIN_KW nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0)) /*X-overwrites-A*/ - goto _342 -_141: + goto _346 +_143: ; /* joinop ::= JOIN_KW nm nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) /*X-overwrites-A*/ - goto _342 -_142: + goto _346 +_144: ; /* on_using ::= ON expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uintptr(0) - goto _342 -_143: + goto _346 +_145: ; /* on_using ::= USING LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_144: + goto _346 +_146: ; /* on_using ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uintptr(0) - goto _342 -_145: + goto _346 +_147: ; /* indexed_by ::= INDEXED BY nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 -_146: + goto _346 +_148: ; /* indexed_by ::= NOT INDEXED */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(1) - goto _342 -_148: + goto _346 +_150: ; /* orderby_opt ::= ORDER BY sortlist */ -_147: +_149: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_149: + goto _346 +_151: ; /* sortlist ::= sortlist COMMA expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_150: + goto _346 +_152: ; /* sortlist ::= expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) /*A-overwrites-Y*/ _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_151: + goto _346 +_153: ; /* sortorder ::= ASC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = SQLITE_SO_ASC - goto _342 -_152: + goto _346 +_154: ; /* sortorder ::= DESC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_154: + goto _346 +_156: ; /* sortorder ::= */ -_153: +_155: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = -int32(1) - goto _342 -_155: + goto _346 +_157: ; /* nulls ::= NULLS FIRST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = SQLITE_SO_ASC - goto _342 -_156: + goto _346 +_158: ; /* nulls ::= NULLS LAST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_158: + goto _346 +_160: ; /* having_opt ::= */ -_157: - ; _159: ; -_160: - ; _161: ; _162: ; _163: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_165: - ; /* having_opt ::= HAVING expr */ _164: ; -_166: +_165: ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 _167: + ; /* having_opt ::= HAVING expr */ +_166: ; _168: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 _169: + ; +_170: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + goto _346 +_171: ; /* limit_opt ::= LIMIT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 -_170: + goto _346 +_172: ; /* limit_opt ::= LIMIT expr OFFSET expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_171: + goto _346 +_173: ; /* limit_opt ::= LIMIT expr COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 -_172: + goto _346 +_174: ; /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) _sqlite3DeleteFrom(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0)) - goto _342 -_173: + goto _346 +_175: ; /* where_opt_ret ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) - goto _342 -_174: + goto _346 +_176: ; /* where_opt_ret ::= WHERE expr RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) - goto _342 -_175: + goto _346 +_177: ; /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) - _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23780) + _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23903) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { pFromClause = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) if (*TSrcList)(unsafe.Pointer(pFromClause)).FnSrc > int32(1) { @@ -160346,95 +161913,95 @@ _175: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendList(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), pFromClause) } _sqlite3Update(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_176: + goto _346 +_178: ; /* setlist ::= setlist COMMA nm EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) - goto _342 -_177: + goto _346 +_179: ; /* setlist ::= setlist COMMA LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_178: + goto _346 +_180: ; /* setlist ::= nm EQ expr */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_179: + goto _346 +_181: ; /* setlist ::= LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_180: + goto _346 +_182: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_181: + goto _346 +_183: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0)) - goto _342 -_182: + goto _346 +_184: ; /* upsert ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_183: + goto _346 +_185: ; /* upsert ::= RETURNING selcollist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_184: + goto _346 +_186: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(11))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_185: + goto _346 +_187: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_186: + goto _346 +_188: ; /* upsert ::= ON CONFLICT DO NOTHING returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_187: + goto _346 +_189: ; /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_188: + goto _346 +_190: ; /* returning ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_189: + goto _346 +_191: ; /* idlist_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_190: + goto _346 +_192: ; /* idlist_opt ::= LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_191: + goto _346 +_193: ; /* idlist ::= idlist COMMA nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3IdListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 -_192: + goto _346 +_194: ; /* idlist ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3IdListAppend(tls, pParse, uintptr(0), yymsp+8) /*A-overwrites-Y*/ - goto _342 -_193: + goto _346 +_195: ; /* expr ::= LP expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_194: + goto _346 +_196: ; /* expr ::= ID|INDEXED|JOIN_KW */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_195: + goto _346 +_197: ; /* expr ::= nm DOT nm */ temp1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) temp2 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp1, temp2) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_196: + goto _346 +_198: ; /* expr ::= nm DOT nm DOT nm */ temp11 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) temp21 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) @@ -160445,22 +162012,22 @@ _196: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp11, temp4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_198: + goto _346 +_200: ; /* term ::= NULL|FLOAT|BLOB */ -_197: +_199: ; *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_199: + goto _346 +_201: ; /* term ::= INTEGER */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), yymsp+8, int32(1)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 52)) = int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8))) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_200: + goto _346 +_202: ; /* expr ::= VARIABLE */ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8))))) == int32('#') && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)) + 1)))])&int32(0x04) != 0) { n = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) @@ -160472,7 +162039,7 @@ _200: ** in the virtual machine. #N is the N-th register. */ *(*TToken)(unsafe.Pointer(bp + 88)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) /*A-overwrites-X*/ if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23789, libc.VaList(bp+128, bp+88)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23912, libc.VaList(bp+128, bp+88)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = uintptr(0) } else { *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_REGISTER), uintptr(0), uintptr(0)) @@ -160481,57 +162048,57 @@ _200: } } } - goto _342 -_201: + goto _346 +_203: ; /* expr ::= expr COLLATE ID|STRING */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAddCollateToken(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8, int32(1)) - goto _342 -_202: + goto _346 +_204: ; /* expr ::= CAST LP expr AS typetoken RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_CAST), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) _sqlite3ExprAttachSubtrees(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) - goto _342 -_203: + goto _346 +_205: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_204: + goto _346 +_206: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_205: + goto _346 +_207: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_206: + goto _346 +_208: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_207: + goto _346 +_209: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_208: + goto _346 +_210: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, 0) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_209: + goto _346 +_211: ; /* term ::= CTIME_KW */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_210: + goto _346 +_212: ; /* expr ::= LP nexprlist COMMA expr RP */ pList = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_VECTOR), uintptr(0), uintptr(0)) @@ -160543,33 +162110,33 @@ _210: } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) } - goto _342 -_211: + goto _346 +_213: ; /* expr ::= expr AND expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_213: + goto _346 +_215: ; /* expr ::= expr OR expr */ -_212: - ; _214: ; -_215: - ; _216: ; _217: ; _218: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 _219: + ; +_220: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_221: ; /* likeop ::= NOT LIKE_KW|MATCH */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) |= uint32(0x80000000) /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/ - goto _342 -_220: + goto _346 +_222: ; /* expr ::= expr likeop expr */ bNot = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -160582,8 +162149,8 @@ _220: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_221: + goto _346 +_223: ; /* expr ::= expr likeop expr ESCAPE expr */ bNot1 = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -160597,65 +162164,67 @@ _221: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_222: + goto _346 +_224: ; /* expr ::= expr ISNULL|NOTNULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_223: + goto _346 +_225: ; /* expr ::= expr NOT NULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOTNULL), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uintptr(0)) - goto _342 -_224: + goto _346 +_226: ; /* expr ::= expr IS expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_225: + goto _346 +_227: ; /* expr ::= expr IS NOT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_226: + goto _346 +_228: ; /* expr ::= expr IS NOT DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_227: + goto _346 +_229: ; /* expr ::= expr IS DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_229: + goto _346 +_231: ; /* expr ::= NOT expr */ -_228: +_230: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) /*A-overwrites-B*/ - goto _342 -_230: + goto _346 +_232: ; /* expr ::= PLUS|MINUS expr */ - if int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) == int32(TK_PLUS) { - v344 = int32(TK_UPLUS) + p4 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + op = uint8(int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) + (libc.Int32FromInt32(TK_UPLUS) - libc.Int32FromInt32(TK_PLUS))) + if p4 != 0 && int32((*TExpr)(unsafe.Pointer(p4)).Fop) == int32(TK_UPLUS) { + (*TExpr)(unsafe.Pointer(p4)).Fop = op + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = p4 } else { - v344 = int32(TK_UMINUS) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(op), p4, uintptr(0)) + /*A-overwrites-B*/ } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, v344, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - /*A-overwrites-B*/ - goto _342 -_231: + goto _346 +_233: ; /* expr ::= expr PTR expr */ pList3 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList3 = _sqlite3ExprListAppend(tls, pParse, pList3, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, pList3, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_233: + goto _346 +_235: ; /* between_op ::= BETWEEN */ -_232: +_234: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = 0 - goto _342 -_234: + goto _346 +_236: ; /* expr ::= expr between_op expr AND expr */ pList4 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList4 = _sqlite3ExprListAppend(tls, pParse, pList4, *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -160668,8 +162237,8 @@ _234: if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_235: + goto _346 +_237: ; /* expr ::= expr in_op LP exprlist RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) == uintptr(0) { /* Expressions of the form @@ -160682,17 +162251,17 @@ _235: */ _sqlite3ExprUnmapAndDelete(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { - v345 = __ccgo_ts + 8234 + v348 = __ccgo_ts + 8359 } else { - v345 = __ccgo_ts + 8239 + v348 = __ccgo_ts + 8364 } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v345) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v348) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { _sqlite3ExprIdToTrueFalse(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } } else { pRHS = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr - if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { + if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pParse, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr = uintptr(0) _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) pRHS = _sqlite3PExpr(tls, pParse, int32(TK_UPLUS), pRHS, uintptr(0)) @@ -160726,460 +162295,464 @@ _235: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } } - goto _342 -_236: + goto _346 +_238: ; /* expr ::= LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_SELECT), uintptr(0), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_237: + goto _346 +_239: ; /* expr ::= expr in_op LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_238: + goto _346 +_240: ; /* expr ::= expr in_op nm dbnm paren_exprlist */ pSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) pSelect = _sqlite3SelectNew(tls, pParse, uintptr(0), pSrc, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { if pSelect != 0 { - v346 = pSrc + v349 = pSrc } else { - v346 = uintptr(0) + v349 = uintptr(0) } - _sqlite3SrcListFuncArgs(tls, pParse, v346, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + _sqlite3SrcListFuncArgs(tls, pParse, v349, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pSelect) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_239: + goto _346 +_241: ; /* expr ::= EXISTS LP select RP */ - v347 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v347 - p4 = v347 - _sqlite3PExprAddSelect(tls, pParse, p4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_240: + v350 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v350 + p5 = v350 + _sqlite3PExprAddSelect(tls, pParse, p5, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_242: ; /* expr ::= CASE case_operand case_exprlist case_else END */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_CASE), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { - v348 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + v351 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } else { - v348 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + v351 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) } - *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v348 + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v351 _sqlite3ExprSetHeightAndFlags(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } - goto _342 -_241: + goto _346 +_243: ; /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_242: + goto _346 +_244: ; /* case_exprlist ::= WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_243: + goto _346 +_245: ; /* nexprlist ::= nexprlist COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_244: + goto _346 +_246: ; /* nexprlist ::= expr */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_246: + goto _346 +_248: ; /* paren_exprlist ::= LP exprlist RP */ -_245: +_247: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_247: + goto _346 +_249: ; /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ _sqlite3CreateIndex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, uintptr(0)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(11))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8)), SQLITE_SO_ASC, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), uint8(SQLITE_IDXTYPE_APPDEF)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && (*TParse)(unsafe.Pointer(pParse)).FpNewIndex != 0 { _sqlite3RenameTokenMap(tls, pParse, (*TIndex)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpNewIndex)).FzName, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) } - goto _342 -_249: + goto _346 +_251: ; /* uniqueflag ::= UNIQUE */ -_248: +_250: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Abort) - goto _342 -_250: + goto _346 +_252: ; /* uniqueflag ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = OE_None - goto _342 -_251: + goto _346 +_253: ; /* eidlist ::= eidlist COMMA nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_252: + goto _346 +_254: ; /* eidlist ::= nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_253: + goto _346 +_255: ; /* cmd ::= DROP INDEX ifexists fullname */ _sqlite3DropIndex(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_254: + goto _346 +_256: ; /* cmd ::= VACUUM vinto */ _sqlite3Vacuum(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_255: + goto _346 +_257: ; /* cmd ::= VACUUM nm vinto */ _sqlite3Vacuum(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_256: + goto _346 +_258: ; /* cmd ::= PRAGMA nm dbnm */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, uintptr(0), 0) - goto _342 -_257: + goto _346 +_259: ; /* cmd ::= PRAGMA nm dbnm EQ nmnum */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, 0) - goto _342 -_258: + goto _346 +_260: ; /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) - goto _342 -_259: + goto _346 +_261: ; /* cmd ::= PRAGMA nm dbnm EQ minus_num */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, int32(1)) - goto _342 -_260: + goto _346 +_262: ; /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) - goto _342 -_261: + goto _346 +_263: ; /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ (*(*TToken)(unsafe.Pointer(bp + 104))).Fz = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) (*(*TToken)(unsafe.Pointer(bp + 104))).Fn = uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) + *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) _sqlite3FinishTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), bp+104) - goto _342 -_262: + goto _346 +_264: ; /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ _sqlite3BeginTrigger(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8 + 8)) == uint32(0) { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) } else { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) } - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v349 /*A-overwrites-T*/ - goto _342 -_263: + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v352 /*A-overwrites-T*/ + goto _346 +_265: ; /* trigger_time ::= BEFORE|AFTER */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_264: + goto _346 +_266: ; /* trigger_time ::= INSTEAD OF */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_INSTEAD) - goto _342 -_265: + goto _346 +_267: ; /* trigger_time ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_BEFORE) - goto _342 -_267: + goto _346 +_269: ; /* trigger_event ::= DELETE|INSERT */ -_266: +_268: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) = uintptr(0) - goto _342 -_268: + goto _346 +_270: ; /* trigger_event ::= UPDATE OF idlist */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(TK_UPDATE) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_270: + goto _346 +_272: ; /* when_clause ::= */ -_269: +_271: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_272: + goto _346 +_274: ; /* when_clause ::= WHEN expr */ -_271: +_273: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_273: + goto _346 +_275: ; /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ (*TTriggerStep)(unsafe.Pointer((*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast)).FpNext = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_274: + goto _346 +_276: ; /* trigger_cmd_list ::= trigger_cmd SEMI */ (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_275: + goto _346 +_277: ; /* trnm ::= nm DOT nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23813, 0) - goto _342 -_276: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23936, 0) + goto _346 +_278: ; /* tridxby ::= INDEXED BY nm */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23908, 0) - goto _342 -_277: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24031, 0) + goto _346 +_279: ; /* tridxby ::= NOT INDEXED */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23992, 0) - goto _342 -_278: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24115, 0) + goto _346 +_280: ; /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerUpdateStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_279: + goto _346 +_281: ; /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_280: + goto _346 +_282: ; /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerDeleteStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_281: + goto _346 +_283: ; /* trigger_cmd ::= scanpt select scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_282: + goto _346 +_284: ; /* expr ::= RAISE LP IGNORE RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_RAISE), uintptr(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)))).FaffExpr = int8(OE_Ignore) } - goto _342 -_283: + goto _346 +_285: ; /* expr ::= RAISE LP raisetype COMMA nm RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_RAISE), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)))).FaffExpr = int8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) } - goto _342 -_284: + goto _346 +_286: ; /* raisetype ::= ROLLBACK */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Rollback) - goto _342 -_285: + goto _346 +_287: ; /* raisetype ::= FAIL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Fail) - goto _342 -_286: + goto _346 +_288: ; /* cmd ::= DROP TRIGGER ifexists fullname */ _sqlite3DropTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_287: + goto _346 +_289: ; /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ _sqlite3Attach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_288: + goto _346 +_290: ; /* cmd ::= DETACH database_kw_opt expr */ _sqlite3Detach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_289: + goto _346 +_291: ; /* cmd ::= REINDEX */ _sqlite3Reindex(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_290: + goto _346 +_292: ; /* cmd ::= REINDEX nm dbnm */ _sqlite3Reindex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_291: + goto _346 +_293: ; /* cmd ::= ANALYZE */ _sqlite3Analyze(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_292: + goto _346 +_294: ; /* cmd ::= ANALYZE nm dbnm */ _sqlite3Analyze(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_293: + goto _346 +_295: ; /* cmd ::= ALTER TABLE fullname RENAME TO nm */ _sqlite3AlterRenameTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_294: + goto _346 +_296: ; /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(int32(int64((*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fz)-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) + (*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fn _sqlite3AlterFinishAddColumn(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_295: + goto _346 +_297: ; /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ _sqlite3AlterDropColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_296: + goto _346 +_298: ; /* add_column_fullname ::= fullname */ _disableLookaside(tls, pParse) _sqlite3AlterBeginAddColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_297: + goto _346 +_299: ; /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ _sqlite3AlterRenameColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) - goto _342 -_298: + goto _346 +_300: ; /* cmd ::= create_vtab */ _sqlite3VtabFinishParse(tls, pParse, uintptr(0)) - goto _342 -_299: + goto _346 +_301: ; /* cmd ::= create_vtab LP vtabarglist RP */ _sqlite3VtabFinishParse(tls, pParse, yymsp+8) - goto _342 -_300: + goto _346 +_302: ; /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ _sqlite3VtabBeginParse(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) - goto _342 -_301: + goto _346 +_303: ; /* vtabarg ::= */ _sqlite3VtabArgInit(tls, pParse) - goto _342 -_303: + goto _346 +_305: ; /* vtabargtoken ::= ANY */ -_302: - ; _304: ; - _sqlite3VtabArgExtend(tls, pParse, yymsp+8) - goto _342 _306: + ; + _sqlite3VtabArgExtend(tls, pParse, yymsp+8) + goto _346 +_308: ; /* with ::= WITH wqlist */ -_305: +_307: ; _sqlite3WithPush(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint8(1)) - goto _342 -_307: + goto _346 +_309: ; /* wqas ::= AS */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8(M10d_Any) - goto _342 -_308: + goto _346 +_310: ; /* wqas ::= AS MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8(M10d_Yes) - goto _342 -_309: + goto _346 +_311: ; /* wqas ::= AS NOT MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = uint8(M10d_No) - goto _342 -_310: - ; /* wqitem ::= nm eidlist_opt wqas LP select RP */ + goto _346 +_312: + ; /* wqitem ::= withnm eidlist_opt wqas LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3CteNew(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) /*A-overwrites-X*/ - goto _342 -_311: + goto _346 +_313: + ; /* withnm ::= nm */ + (*TParse)(unsafe.Pointer(pParse)).FbHasWith = uint8(1) + goto _346 +_314: ; /* wqlist ::= wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3WithAdd(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_312: + goto _346 +_315: ; /* wqlist ::= wqlist COMMA wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3WithAdd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_313: + goto _346 +_316: ; /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ _sqlite3WindowChain(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpNextWin = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_314: + goto _346 +_317: ; /* windowdefn ::= nm AS LP window RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)))) } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_315: + goto _346 +_318: ; /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_316: + goto _346 +_319: ; /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_317: + goto _346 +_320: ; /* window ::= ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_318: + goto _346 +_321: ; /* window ::= nm ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_319: + goto _346 +_322: ; /* window ::= nm frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_320: + goto _346 +_323: ; /* frame_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = _sqlite3WindowAlloc(tls, pParse, 0, int32(TK_UNBOUNDED), uintptr(0), int32(TK_CURRENT), uintptr(0), uint8(0)) - goto _342 -_321: + goto _346 +_324: ; /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), int32(TK_CURRENT), uintptr(0), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_322: + goto _346 +_325: ; /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_324: + goto _346 +_327: ; /* frame_bound_s ::= frame_bound */ -_323: +_326: ; *(*TFrameBound)(unsafe.Pointer(bp)) = *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_326: + goto _346 +_329: ; /* frame_bound_s ::= UNBOUNDED PRECEDING */ -_325: +_328: ; -_327: +_330: ; (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = uintptr(0) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_328: + goto _346 +_331: ; /* frame_bound ::= expr PRECEDING|FOLLOWING */ (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_329: + goto _346 +_332: ; /* frame_exclude_opt ::= */ *(*Tu8)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint8(0) - goto _342 -_330: + goto _346 +_333: ; /* frame_exclude_opt ::= EXCLUDE frame_exclude */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*Tu8)(unsafe.Pointer(yymsp + 8)) - goto _342 -_332: + goto _346 +_335: ; /* frame_exclude ::= NO OTHERS */ -_331: +_334: ; *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) /*A-overwrites-X*/ - goto _342 -_333: + goto _346 +_336: ; /* frame_exclude ::= GROUP|TIES */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_334: + goto _346 +_337: ; /* window_clause ::= WINDOW windowdefn_list */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_335: + goto _346 +_338: ; /* filter_over ::= filter_clause over_clause */ if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpFilter = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) @@ -161188,13 +162761,13 @@ _335: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_336: + goto _346 +_339: ; /* filter_over ::= over_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_337: + goto _346 +_340: ; /* filter_over ::= filter_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { @@ -161204,27 +162777,33 @@ _337: _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_338: + goto _346 +_341: ; /* over_clause ::= OVER LP window RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_339: + goto _346 +_342: ; /* over_clause ::= OVER nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) } - goto _342 -_340: + goto _346 +_343: ; /* filter_clause ::= FILTER LP WHERE expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_341: + goto _346 +_344: + ; /* term ::= QNUMBER */ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) + _sqlite3DequoteNumber(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp))))) + *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + goto _346 +_345: ; - goto _342 + goto _346 /********** End reduce actions ************************************************/ -_342: +_346: ; yygoto = int32(_yyRuleInfoLhs[yyruleno]) yysize = int32(_yyRuleInfoNRhs[yyruleno]) @@ -161258,9 +162837,9 @@ func _yy_syntax_error(tls *libc.TLS, yypParser uintptr, yymajor int32, _yyminor /************ Begin %syntax_error code ****************************************/ _ = yymajor /* Silence some compiler warnings */ if *(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp))).Fz)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23789, libc.VaList(bp+24, bp)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23912, libc.VaList(bp+24, bp)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24077, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24200, 0) } /************ End %syntax_error code ******************************************/ /* Suppress warning about unused %extra_argument variable */ @@ -161325,8 +162904,10 @@ func _sqlite3Parser(tls *libc.TLS, yyp uintptr, yymajor int32, yyminor TToken) { ** enough on the stack to push the LHS value */ if int32(_yyRuleInfoNRhs[yyruleno]) == 0 { if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos >= (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - _yyStackOverflow(tls, yypParser) - break + if _yyGrowStack(tls, yypParser) != 0 { + _yyStackOverflow(tls, yypParser) + break + } } } yyact = _yy_reduce(tls, yypParser, yyruleno, yymajor, yyminor, pParse) @@ -163475,9 +165056,9 @@ func _analyzeFilterKeyword(tls *libc.TLS, _z uintptr, lastToken int32) (r int32) // ** Store the token type in *tokenType before returning. // */ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { - var c, delim, i, n, v10, v14, v16, v19, v20, v3, v5, v7, v8 int32 - var v15, v6 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v14, v15, v16, v19, v20, v3, v5, v6, v7, v8 + var c, delim, i, n, v10, v16, v18, v21, v22, v3, v5, v7, v8 int32 + var v17, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v16, v17, v18, v21, v22, v3, v5, v6, v7, v8 switch int32(_aiClass[*(*uint8)(unsafe.Pointer(z))]) { /* Switch on the character-class of the first byte ** of the token. See the comment on the CC_ defines ** above. */ @@ -163675,39 +165256,83 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('X')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + 2))])&int32(0x08) != 0 { i = int32(3) for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { + if !(int32(1) != 0) { break } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } goto _11 _11: ; i++ } - return i - } - i = 0 - for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _12 - _12: - ; - i++ - } - if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { - i++ - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + } else { + i = 0 + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _12 + _12: + ; i++ } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) - } - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { - i += int32(2) - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } i++ + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _13 + _13: + ; + i++ + } + } + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } + i += int32(2) + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _14 + _14: + ; + i++ + } } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) } for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x46) != 0 { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_ILLEGAL) @@ -163718,24 +165343,24 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { i = int32(1) c = int32(*(*uint8)(unsafe.Pointer(z))) for { - if v15 = c != int32(']'); v15 { - v14 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v14 + if v17 = c != int32(']'); v17 { + v16 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v16 } - if !(v15 && v14 != 0) { + if !(v17 && v16 != 0) { break } - goto _13 - _13: + goto _15 + _15: ; i++ } if c == int32(']') { - v16 = int32(TK_ID) + v18 = int32(TK_ID) } else { - v16 = int32(TK_ILLEGAL) + v18 = int32(TK_ILLEGAL) } - *(*int32)(unsafe.Pointer(tokenType)) = v16 + *(*int32)(unsafe.Pointer(tokenType)) = v18 return i case int32(CC_VARNUM): *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) @@ -163744,8 +165369,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { break } - goto _17 - _17: + goto _19 + _19: ; i++ } @@ -163757,9 +165382,9 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) i = int32(1) for { - v19 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v19 - if !(v19 != 0) { + v21 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v21 + if !(v21 != 0) { break } if int32(_sqlite3CtypeMap[uint8(c)])&int32(0x46) != 0 { @@ -163768,12 +165393,12 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if c == int32('(') && n > 0 { for { i++ - goto _21 - _21: + goto _23 + _23: ; - v20 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v20 - if !(v20 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { + v22 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v22 + if !(v22 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { break } } @@ -163791,8 +165416,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { } } } - goto _18 - _18: + goto _20 + _20: ; i++ } @@ -163810,8 +165435,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_aiClass[*(*uint8)(unsafe.Pointer(z + uintptr(i)))]) <= int32(CC_KYWD)) { break } - goto _22 - _22: + goto _24 + _24: ; i++ } @@ -163832,8 +165457,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { break } - goto _23 - _23: + goto _25 + _25: ; i++ } @@ -163887,7 +165512,7 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { var lastTokenParsed, mxSqlLen, n, nErr int32 var _ /* sEngine at bp+8 */ TyyParser var _ /* tokenType at bp+0 */ int32 - var _ /* x at bp+2432 */ TToken + var _ /* x at bp+2440 */ TToken _, _, _, _, _, _, _ = db, lastTokenParsed, mxSqlLen, n, nErr, pEngine, pParentParse nErr = 0 /* The LEMON-generated LALR(1) parser */ n = 0 /* type of the next token */ @@ -163945,10 +165570,12 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp)) == int32(TK_FILTER) { *(*int32)(unsafe.Pointer(bp)) = _analyzeFilterKeyword(tls, zSql+6, lastTokenParsed) } else { - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fz = zSql - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fn = uint32(n) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24094, libc.VaList(bp+2456, bp+2432)) - break + if *(*int32)(unsafe.Pointer(bp)) != int32(TK_QNUMBER) { + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fz = zSql + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fn = uint32(n) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24217, libc.VaList(bp+2464, bp+2440)) + break + } } } } @@ -163969,9 +165596,9 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { } if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg != 0 || (*TParse)(unsafe.Pointer(pParse)).Frc != SQLITE_OK && (*TParse)(unsafe.Pointer(pParse)).Frc != int32(SQLITE_DONE) { if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg == uintptr(0) { - (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3799, libc.VaList(bp+2456, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) + (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3863, libc.VaList(bp+2464, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) } - Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+24119, libc.VaList(bp+2456, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) + Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+24242, libc.VaList(bp+2464, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) nErr++ } (*TParse)(unsafe.Pointer(pParse)).FzTail = zSql @@ -164163,7 +165790,7 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('c'): fallthrough case int32('C'): - if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24130, int32(6)) == 0 { + if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24253, int32(6)) == 0 { token = uint8(tkCREATE) } else { token = uint8(tkOTHER) @@ -164171,13 +165798,13 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('t'): fallthrough case int32('T'): - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20774, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20906, int32(7)) == 0 { token = uint8(tkTRIGGER) } else { - if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24137, int32(4)) == 0 { + if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24260, int32(4)) == 0 { token = uint8(tkTEMP) } else { - if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24142, int32(9)) == 0 { + if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24265, int32(9)) == 0 { token = uint8(tkTEMP) } else { token = uint8(tkOTHER) @@ -164187,10 +165814,10 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('e'): fallthrough case int32('E'): - if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24152, int32(3)) == 0 { + if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24275, int32(3)) == 0 { token = uint8(tkEND) } else { - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24156, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24279, int32(7)) == 0 { token = uint8(tkEXPLAIN) } else { token = uint8(tkOTHER) @@ -164450,8 +166077,6 @@ func _hasHighPrecisionDouble(tls *libc.TLS, rc int32) (r int32) { // ** without blocking. // */ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { - ng := runtime.GOMAXPROCS(1) - defer func() { runtime.GOMAXPROCS(ng) }() var pMainMtx uintptr var rc int32 _, _ = pMainMtx, rc /* Result code */ @@ -164463,7 +166088,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** must be complete. So isInit must not be set until the very end ** of this routine. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { return SQLITE_OK } /* Make sure the mutex subsystem is initialized. If unable to @@ -164523,7 +166148,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** call to sqlite3PcacheInitialize(). */ Xsqlite3_mutex_enter(tls, _sqlite3Config.FpInitMutex) - if _sqlite3Config.FisInit == 0 && _sqlite3Config.FinProgress == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 && _sqlite3Config.FinProgress == 0 { _sqlite3Config.FinProgress = int32(1) libc.X__builtin___memset_chk(tls, uintptr(unsafe.Pointer(&_sqlite3BuiltinFunctions)), 0, uint64(184), libc.X__builtin_object_size(tls, uintptr(unsafe.Pointer(&_sqlite3BuiltinFunctions)), 0)) _sqlite3RegisterBuiltinFunctions(tls) @@ -164539,7 +166164,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { } if rc == SQLITE_OK { _sqlite3PCacheBufferSetup(tls, _sqlite3Config.FpPage, _sqlite3Config.FszPage, _sqlite3Config.FnPage) - _sqlite3Config.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, int32(1)) } _sqlite3Config.FinProgress = 0 } @@ -164564,7 +166189,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { */ /* Experimentally determine if high-precision floating point is ** available. */ - _sqlite3Config.FbUseLongDouble = uint8(_hasHighPrecisionDouble(tls, rc)) + // disabled return rc } @@ -164579,10 +166204,10 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { // ** when this routine is invoked, then this routine is a harmless no-op. // */ func Xsqlite3_shutdown(tls *libc.TLS) (r int32) { - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { Xsqlite3_os_end(tls) Xsqlite3_reset_auto_extension(tls) - _sqlite3Config.FisInit = 0 + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, 0) } if _sqlite3Config.FisPCacheInit != 0 { _sqlite3PcacheShutdown(tls) @@ -164630,9 +166255,9 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { ** the SQLite library is in use. Except, a few selected opcodes ** are allowed. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)<= 0 && rc < int32(libc.Uint64FromInt64(232)/libc.Uint64FromInt64(8)) && _aMsg[rc] != uintptr(0) { @@ -165770,31 +167395,31 @@ func _sqlite3ErrStr(tls *libc.TLS, rc int32) (r uintptr) { } var _aMsg = [29]uintptr{ - 0: __ccgo_ts + 24232, - 1: __ccgo_ts + 24245, - 3: __ccgo_ts + 24261, - 4: __ccgo_ts + 24286, - 5: __ccgo_ts + 24300, - 6: __ccgo_ts + 24319, - 7: __ccgo_ts + 1620, - 8: __ccgo_ts + 24344, - 9: __ccgo_ts + 24381, - 10: __ccgo_ts + 24393, - 11: __ccgo_ts + 24408, - 12: __ccgo_ts + 24441, - 13: __ccgo_ts + 24459, - 14: __ccgo_ts + 24484, - 15: __ccgo_ts + 24513, - 17: __ccgo_ts + 6369, - 18: __ccgo_ts + 5771, - 19: __ccgo_ts + 24530, - 20: __ccgo_ts + 24548, - 21: __ccgo_ts + 24566, - 23: __ccgo_ts + 24600, - 25: __ccgo_ts + 24621, - 26: __ccgo_ts + 24647, - 27: __ccgo_ts + 24670, - 28: __ccgo_ts + 24691, + 0: __ccgo_ts + 24355, + 1: __ccgo_ts + 24368, + 3: __ccgo_ts + 24384, + 4: __ccgo_ts + 24409, + 5: __ccgo_ts + 24423, + 6: __ccgo_ts + 24442, + 7: __ccgo_ts + 1634, + 8: __ccgo_ts + 24467, + 9: __ccgo_ts + 24504, + 10: __ccgo_ts + 24516, + 11: __ccgo_ts + 24531, + 12: __ccgo_ts + 24564, + 13: __ccgo_ts + 24582, + 14: __ccgo_ts + 24607, + 15: __ccgo_ts + 24636, + 17: __ccgo_ts + 6433, + 18: __ccgo_ts + 5835, + 19: __ccgo_ts + 24653, + 20: __ccgo_ts + 24671, + 21: __ccgo_ts + 24689, + 23: __ccgo_ts + 24723, + 25: __ccgo_ts + 24744, + 26: __ccgo_ts + 24770, + 27: __ccgo_ts + 24793, + 28: __ccgo_ts + 24814, } // C documentation @@ -165973,7 +167598,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i var p, v1 uintptr _, _, _, _ = extraFlags, p, rc, v1 if zFunctionName == uintptr(0) || xSFunc != uintptr(0) && xFinal != uintptr(0) || libc.BoolInt32(xFinal == uintptr(0)) != libc.BoolInt32(xStep == uintptr(0)) || libc.BoolInt32(xValue == uintptr(0)) != libc.BoolInt32(xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { - return _sqlite3MisuseError(tls, int32(180244)) + return _sqlite3MisuseError(tls, int32(181689)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -166016,7 +167641,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i p = _sqlite3FindFunction(tls, db, zFunctionName, nArg, uint8(enc), uint8(0)) if p != 0 && (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) == uint32(enc) && int32((*TFuncDef)(unsafe.Pointer(p)).FnArg) == nArg { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24788, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24911, 0) return int32(SQLITE_BUSY) } else { _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -166086,6 +167711,7 @@ func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, en (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } + goto out out: ; rc = _sqlite3ApiExit(tls, db, rc) @@ -166141,7 +167767,7 @@ func _sqlite3InvalidFunction(tls *libc.TLS, context uintptr, NotUsed int32, NotU zName = Xsqlite3_user_data(tls, context) _ = NotUsed _ = NotUsed2 - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24851, libc.VaList(bp+8, zName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24974, libc.VaList(bp+8, zName)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -166172,7 +167798,7 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i if rc != 0 { return SQLITE_OK } - zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, zName)) + zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, zName)) if zCopy == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -166416,7 +168042,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in if eMode < SQLITE_CHECKPOINT_PASSIVE || eMode > int32(SQLITE_CHECKPOINT_TRUNCATE) { /* EVIDENCE-OF: R-03996-12088 The M parameter must be a valid checkpoint ** mode: */ - return _sqlite3MisuseError(tls, int32(180859)) + return _sqlite3MisuseError(tls, int32(182304)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*int8)(unsafe.Pointer(zDb)) != 0 { @@ -166426,7 +168052,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in } if iDb < 0 { rc = int32(SQLITE_ERROR) - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24902, libc.VaList(bp+8, zDb)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+25025, libc.VaList(bp+8, zDb)) } else { (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0 rc = _sqlite3Checkpoint(tls, db, iDb, eMode, pnLog, pnCkpt) @@ -166548,7 +168174,7 @@ func Xsqlite3_errmsg(tls *libc.TLS, db uintptr) (r uintptr) { return _sqlite3ErrStr(tls, int32(SQLITE_NOMEM)) } if !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(180995))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(182440))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -166680,7 +168306,7 @@ var _misuse = [34]Tu16{ // */ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181074)) + return _sqlite3MisuseError(tls, int32(182519)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166690,7 +168316,7 @@ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { func Xsqlite3_extended_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181083)) + return _sqlite3MisuseError(tls, int32(182528)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166739,7 +168365,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui enc2 = int32(SQLITE_UTF16LE) } if enc2 < int32(SQLITE_UTF8) || enc2 > int32(SQLITE_UTF16BE) { - return _sqlite3MisuseError(tls, int32(181131)) + return _sqlite3MisuseError(tls, int32(182576)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -166748,7 +168374,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui pColl = _sqlite3FindCollSeq(tls, db, uint8(enc2), zName, 0) if pColl != 0 && (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp != 0 { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24923, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+25046, 0) return int32(SQLITE_BUSY) } _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -166895,7 +168521,7 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u flags = *(*uint32)(unsafe.Pointer(pFlags)) zVfs = zDefaultVfs nUri = _sqlite3Strlen30(tls, zUri) - if (flags&uint32(SQLITE_OPEN_URI) != 0 || *(*Tu8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Config)) + 6)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24991, uint64(5)) == 0 { /* Input character index */ + if (flags&uint32(SQLITE_OPEN_URI) != 0 || *(*Tu8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Config)) + 6)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+25114, uint64(5)) == 0 { /* Input character index */ iOut = 0 /* Output character index */ nByte = uint64(nUri + int32(8)) /* Bytes of space to allocate */ /* Make sure the SQLITE_OPEN_URI flag is set to indicate to the VFS xOpen @@ -166925,8 +168551,8 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u for *(*int8)(unsafe.Pointer(zUri + uintptr(iIn))) != 0 && int32(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn)))) != int32('/') { iIn++ } - if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24997, zUri+7, uint64(9)) != 0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25007, libc.VaList(bp+8, iIn-int32(7), zUri+7)) + if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+25120, zUri+7, uint64(9)) != 0) { + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25130, libc.VaList(bp+8, iIn-int32(7), zUri+7)) rc = int32(SQLITE_ERROR) goto parse_uri_out } @@ -167015,24 +168641,24 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u nOpt = _sqlite3Strlen30(tls, zOpt) zVal = zOpt + uintptr(nOpt+int32(1)) nVal = _sqlite3Strlen30(tls, zVal) - if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+25035, zOpt, uint64(3)) == 0 { + if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+25158, zOpt, uint64(3)) == 0 { zVfs = zVal } else { aMode = uintptr(0) zModeType = uintptr(0) mask = 0 limit = 0 - if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+25039, zOpt, uint64(5)) == 0 { + if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+25162, zOpt, uint64(5)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_SHAREDCACHE) | libc.Int32FromInt32(SQLITE_OPEN_PRIVATECACHE) aMode = uintptr(unsafe.Pointer(&_aCacheMode)) limit = mask - zModeType = __ccgo_ts + 25039 + zModeType = __ccgo_ts + 25162 } - if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+25060, zOpt, uint64(4)) == 0 { + if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+25183, zOpt, uint64(4)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_READONLY) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_MEMORY) aMode = uintptr(unsafe.Pointer(&_aOpenMode)) limit = int32(uint32(mask) & flags) - zModeType = __ccgo_ts + 3406 + zModeType = __ccgo_ts + 3470 } if aMode != 0 { mode = 0 @@ -167061,12 +168687,12 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u i++ } if mode == 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25075, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25198, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_ERROR) goto parse_uri_out } if mode & ^libc.Int32FromInt32(SQLITE_OPEN_MEMORY) > limit { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25095, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25218, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_PERM) goto parse_uri_out } @@ -167090,9 +168716,10 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u } *(*uintptr)(unsafe.Pointer(ppVfs)) = Xsqlite3_vfs_find(tls, zVfs) if *(*uintptr)(unsafe.Pointer(ppVfs)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25119, libc.VaList(bp+8, zVfs)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25242, libc.VaList(bp+8, zVfs)) rc = int32(SQLITE_ERROR) } + goto parse_uri_out parse_uri_out: ; if rc != SQLITE_OK { @@ -167109,11 +168736,11 @@ var _aCacheMode = [3]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 25045, + Fz: __ccgo_ts + 25168, Fmode: int32(SQLITE_OPEN_SHAREDCACHE), }, 1: { - Fz: __ccgo_ts + 25052, + Fz: __ccgo_ts + 25175, Fmode: int32(SQLITE_OPEN_PRIVATECACHE), }, 2: {}, @@ -167124,19 +168751,19 @@ var _aOpenMode = [5]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 25065, + Fz: __ccgo_ts + 25188, Fmode: int32(SQLITE_OPEN_READONLY), }, 1: { - Fz: __ccgo_ts + 25068, + Fz: __ccgo_ts + 25191, Fmode: int32(SQLITE_OPEN_READWRITE), }, 2: { - Fz: __ccgo_ts + 25071, + Fz: __ccgo_ts + 25194, Fmode: libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE), }, 3: { - Fz: __ccgo_ts + 18131, + Fz: __ccgo_ts + 18218, Fmode: int32(SQLITE_OPEN_MEMORY), }, 4: {}, @@ -167264,8 +168891,8 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16BE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16LE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+22746, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+25135, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+22891, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+25258, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto opendb_out } @@ -167286,7 +168913,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* READWRITE */ /* READWRITE | CREATE */ if int32(1)<<(*(*uint32)(unsafe.Pointer(bp))&uint32(7))&int32(0x46) == 0 { - rc = _sqlite3MisuseError(tls, int32(181803)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(183248)) /* IMP: R-18321-05872 */ } else { rc = _sqlite3ParseUri(tls, zVfs, zFilename, bp, db, bp+8, bp+16) } @@ -167295,7 +168922,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _sqlite3OomFault(tls, db) } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { - v2 = __ccgo_ts + 3799 + v2 = __ccgo_ts + 3863 } else { v2 = uintptr(0) } @@ -167322,9 +168949,9 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* The default safety_level for the main database is FULL; for the temp ** database it is OFF. This matches the pager layer defaults. */ - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6933 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6997 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).Fsafety_level = uint8(libc.Int32FromInt32(SQLITE_DEFAULT_SYNCHRONOUS) + libc.Int32FromInt32(1)) - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 24137 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 24260 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).Fsafety_level = uint8(PAGER_SYNCHRONOUS_OFF) (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState = uint8(SQLITE_STATE_OPEN) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -167369,6 +168996,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* Enable the lookaside-malloc subsystem */ _setupLookaside(tls, db, uintptr(0), _sqlite3Config.FszLookaside, _sqlite3Config.FnLookaside) Xsqlite3_wal_autocheckpoint(tls, db, int32(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT)) + goto opendb_out opendb_out: ; if db != 0 { @@ -167417,7 +169045,7 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc } if zFilename == uintptr(0) { - zFilename = __ccgo_ts + 25141 + zFilename = __ccgo_ts + 25264 } pVal = _sqlite3ValueNew(tls, uintptr(0)) _sqlite3ValueSetStr(tls, pVal, -int32(1), zFilename, uint8(SQLITE_UTF16LE), libc.UintptrFromInt32(0)) @@ -167634,20 +169262,20 @@ func Xsqlite3_get_autocommit(tls *libc.TLS, db uintptr) (r int32) { func _sqlite3ReportError(tls *libc.TLS, iErr int32, lineno int32, zType uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) - Xsqlite3_log(tls, iErr, __ccgo_ts+25144, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) + Xsqlite3_log(tls, iErr, __ccgo_ts+25267, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) return iErr } func _sqlite3CorruptError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+25169) + return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+25292) } func _sqlite3MisuseError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+25189) + return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+25312) } func _sqlite3CantopenError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+25196) + return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+25319) } // C documentation @@ -167753,6 +169381,7 @@ func Xsqlite3_table_column_metadata(tls *libc.TLS, db uintptr, zDbName uintptr, if !(zCollSeq != 0) { zCollSeq = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } + goto error_out error_out: ; _sqlite3BtreeLeaveAll(tls, db) @@ -167777,11 +169406,11 @@ error_out: } if SQLITE_OK == rc && !(pTab != 0) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+25213, libc.VaList(bp+16, zTableName, zColumnName)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+25336, libc.VaList(bp+16, zTableName, zColumnName)) rc = int32(SQLITE_ERROR) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v3 = __ccgo_ts + 3799 + v3 = __ccgo_ts + 3863 } else { v3 = uintptr(0) } @@ -168216,7 +169845,7 @@ func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) (r int32) { */ fallthrough case int32(SQLITE_TESTCTRL_ISINIT): - if _sqlite3Config.FisInit == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 { rc = int32(SQLITE_ERROR) } break @@ -168805,7 +170434,7 @@ func Xsqlite3_compileoption_used(tls *libc.TLS, zOptName uintptr) (r int32) { var _ /* nOpt at bp+0 */ int32 _, _, _ = azCompileOpt, i, n azCompileOpt = _sqlite3CompileOptions(tls, bp) - if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+25241, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+25364, int32(7)) == 0 { zOptName += uintptr(7) } n = _sqlite3Strlen30(tls, zOptName) @@ -169023,7 +170652,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui } _leaveMutex(tls) if rc != 0 { - v2 = __ccgo_ts + 25249 + v2 = __ccgo_ts + 25372 } else { v2 = uintptr(0) } @@ -169903,23 +171532,23 @@ func _sqlite3ConnectionClosed(tls *libc.TLS, db uintptr) { // ** string must correspond to the JSONB_* integer above. // */ var _jsonbType = [17]uintptr{ - 0: __ccgo_ts + 1636, - 1: __ccgo_ts + 8234, - 2: __ccgo_ts + 8239, - 3: __ccgo_ts + 6654, - 4: __ccgo_ts + 6654, - 5: __ccgo_ts + 6649, - 6: __ccgo_ts + 6649, - 7: __ccgo_ts + 8545, - 8: __ccgo_ts + 8545, - 9: __ccgo_ts + 8545, - 10: __ccgo_ts + 8545, - 11: __ccgo_ts + 25272, - 12: __ccgo_ts + 25278, - 13: __ccgo_ts + 1650, - 14: __ccgo_ts + 1650, - 15: __ccgo_ts + 1650, - 16: __ccgo_ts + 1650, + 0: __ccgo_ts + 1650, + 1: __ccgo_ts + 8359, + 2: __ccgo_ts + 8364, + 3: __ccgo_ts + 6718, + 4: __ccgo_ts + 6718, + 5: __ccgo_ts + 6713, + 6: __ccgo_ts + 6713, + 7: __ccgo_ts + 8670, + 8: __ccgo_ts + 8670, + 9: __ccgo_ts + 8670, + 10: __ccgo_ts + 8670, + 11: __ccgo_ts + 25395, + 12: __ccgo_ts + 25401, + 13: __ccgo_ts + 1664, + 14: __ccgo_ts + 1664, + 15: __ccgo_ts + 1664, + 16: __ccgo_ts + 1664, } // C documentation @@ -170682,6 +172311,38 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { _jsonAppendChar(tls, p, int8(',')) } +// C documentation +// +// /* c is a control character. Append the canonical JSON representation +// ** of that control character to p. +// ** +// ** This routine assumes that the output buffer has already been enlarged +// ** sufficiently to hold the worst-case encoding plus a nul terminator. +// */ +func _jsonAppendControlChar(tls *libc.TLS, p uintptr, c Tu8) { + if _aSpecial[c] != 0 { + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = int8('\\') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = _aSpecial[c] + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(2) + } else { + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = int8('\\') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = int8('u') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(2)))) = int8('0') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(3)))) = int8('0') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(4)))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 25408 + uintptr(int32(c)>>int32(4)))) + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(5)))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 25408 + uintptr(int32(c)&int32(0xf)))) + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(6) + } +} + +var _aSpecial = [32]int8{ + 8: int8('b'), + 9: int8('t'), + 10: int8('n'), + 12: int8('f'), + 13: int8('r'), +} + // C documentation // // /* Append the N-byte string in zIn to the end of the JsonString string @@ -170695,9 +172356,9 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { var c Tu8 var k Tu32 - var z, v10, v12, v14, v16, v18, v2, v20, v22, v24, v6, v8 uintptr - var v1, v11, v13, v15, v17, v19, v21, v23, v5, v7, v9 Tu64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v5, v6, v7, v8, v9 + var z, v10, v2, v4, v6, v8 uintptr + var v1, v3, v5, v7, v9 Tu64 + _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v2, v3, v4, v5, v6, v7, v8, v9 z = zIn if z == uintptr(0) { return @@ -170754,80 +172415,38 @@ func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { N -= k } c = *(*Tu8)(unsafe.Pointer(z)) - if !(int32(c) == int32('"') || int32(c) == int32('\\')) { - goto _3 - } - json_simple_escape: - ; - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { - return - } - v6 = p + 24 - v5 = *(*Tu64)(unsafe.Pointer(v6)) - *(*Tu64)(unsafe.Pointer(v6))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = int8('\\') - v8 = p + 24 - v7 = *(*Tu64)(unsafe.Pointer(v8)) - *(*Tu64)(unsafe.Pointer(v8))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = int8(c) - goto _4 - _3: - ; - if int32(c) == int32('\'') { - v10 = p + 24 - v9 = *(*Tu64)(unsafe.Pointer(v10)) - *(*Tu64)(unsafe.Pointer(v10))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = int8(c) - } else { - if _aSpecial[c] != 0 { - c = uint8(_aSpecial[c]) - goto json_simple_escape - } - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + if int32(c) == int32('"') || int32(c) == int32('\\') { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { return } - v12 = p + 24 - v11 = *(*Tu64)(unsafe.Pointer(v12)) - *(*Tu64)(unsafe.Pointer(v12))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v11))) = int8('\\') - v14 = p + 24 - v13 = *(*Tu64)(unsafe.Pointer(v14)) - *(*Tu64)(unsafe.Pointer(v14))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v13))) = int8('u') - v16 = p + 24 - v15 = *(*Tu64)(unsafe.Pointer(v16)) - *(*Tu64)(unsafe.Pointer(v16))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v15))) = int8('0') - v18 = p + 24 - v17 = *(*Tu64)(unsafe.Pointer(v18)) - *(*Tu64)(unsafe.Pointer(v18))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v17))) = int8('0') - v20 = p + 24 - v19 = *(*Tu64)(unsafe.Pointer(v20)) - *(*Tu64)(unsafe.Pointer(v20))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v19))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 25285 + uintptr(int32(c)>>int32(4)))) - v22 = p + 24 - v21 = *(*Tu64)(unsafe.Pointer(v22)) - *(*Tu64)(unsafe.Pointer(v22))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v21))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 25285 + uintptr(int32(c)&int32(0xf)))) + v4 = p + 24 + v3 = *(*Tu64)(unsafe.Pointer(v4)) + *(*Tu64)(unsafe.Pointer(v4))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v3))) = int8('\\') + v6 = p + 24 + v5 = *(*Tu64)(unsafe.Pointer(v6)) + *(*Tu64)(unsafe.Pointer(v6))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = int8(c) + } else { + if int32(c) == int32('\'') { + v8 = p + 24 + v7 = *(*Tu64)(unsafe.Pointer(v8)) + *(*Tu64)(unsafe.Pointer(v8))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = int8(c) + } else { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + return + } + _jsonAppendControlChar(tls, p, c) + } } - _4: - ; z++ N-- } - v24 = p + 24 - v23 = *(*Tu64)(unsafe.Pointer(v24)) - *(*Tu64)(unsafe.Pointer(v24))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v23))) = int8('"') -} - -var _aSpecial = [32]int8{ - 8: int8('b'), - 9: int8('t'), - 10: int8('n'), - 12: int8('f'), - 13: int8('r'), + v10 = p + 24 + v9 = *(*Tu64)(unsafe.Pointer(v10)) + *(*Tu64)(unsafe.Pointer(v10))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = int8('"') } // C documentation @@ -170845,9 +172464,9 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _, _, _, _ = n, n1, z, z1 switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_NULL): - _jsonAppendRawNZ(tls, p, __ccgo_ts+1636, uint32(4)) + _jsonAppendRawNZ(tls, p, __ccgo_ts+1650, uint32(4)) case int32(SQLITE_FLOAT): - _jsonPrintf(tls, int32(100), p, __ccgo_ts+15671, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) + _jsonPrintf(tls, int32(100), p, __ccgo_ts+15764, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) case int32(SQLITE_INTEGER): z = Xsqlite3_value_text(tls, pValue) n = uint32(Xsqlite3_value_bytes(tls, pValue)) @@ -170868,7 +172487,7 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _jsonTranslateBlobToText(tls, bp, uint32(0), p) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr) == 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25302, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25425, -int32(1)) (*TJsonString)(unsafe.Pointer(p)).FeErr = uint8(JSTRING_ERR) _jsonStringReset(tls, p) } @@ -170922,7 +172541,7 @@ func _jsonReturnString(tls *libc.TLS, p uintptr, pParse uintptr, ctx uintptr) { Xsqlite3_result_error_nomem(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr)&int32(JSTRING_MALFORMED) != 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25454, -int32(1)) } } } @@ -171169,6 +172788,7 @@ func _json5Whitespace(tls *libc.TLS, zIn uintptr) (r int32) { goto whitespace_done } } + goto whitespace_done whitespace_done: ; return n @@ -171204,8 +172824,8 @@ var _aNanInfName = [5]TNanInfName{ Fn: int8(3), FeType: int8(JSONB_FLOAT), FnRepl: int8(7), - FzMatch: __ccgo_ts + 25346, - FzRepl: __ccgo_ts + 25350, + FzMatch: __ccgo_ts + 25469, + FzRepl: __ccgo_ts + 25473, }, 1: { Fc1: int8('i'), @@ -171213,32 +172833,32 @@ var _aNanInfName = [5]TNanInfName{ Fn: int8(8), FeType: int8(JSONB_FLOAT), FnRepl: int8(7), - FzMatch: __ccgo_ts + 25358, - FzRepl: __ccgo_ts + 25350, + FzMatch: __ccgo_ts + 25481, + FzRepl: __ccgo_ts + 25473, }, 2: { Fc1: int8('n'), Fc2: int8('N'), Fn: int8(3), FnRepl: int8(4), - FzMatch: __ccgo_ts + 1641, - FzRepl: __ccgo_ts + 1636, + FzMatch: __ccgo_ts + 1655, + FzRepl: __ccgo_ts + 1650, }, 3: { Fc1: int8('q'), Fc2: int8('Q'), Fn: int8(4), FnRepl: int8(4), - FzMatch: __ccgo_ts + 25367, - FzRepl: __ccgo_ts + 1636, + FzMatch: __ccgo_ts + 25490, + FzRepl: __ccgo_ts + 1650, }, 4: { Fc1: int8('s'), Fc2: int8('S'), Fn: int8(4), FnRepl: int8(4), - FzMatch: __ccgo_ts + 25372, - FzRepl: __ccgo_ts + 1636, + FzMatch: __ccgo_ts + 25495, + FzRepl: __ccgo_ts + 1650, }, } @@ -171253,7 +172873,7 @@ func _jsonWrongNumArgs(tls *libc.TLS, pCtx uintptr, zFuncName uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25377, libc.VaList(bp+8, zFuncName)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25500, libc.VaList(bp+8, zFuncName)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) } @@ -171702,30 +173322,37 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept return j + uint32(1) } } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) <= int32(0x1f) { + /* Control characters in JSON5 string literals are ok */ + if int32(x) == int32(JSONB_TEXTJ) { + return j + uint32(1) + } } else { - if libc.Xstrchr(tls, __ccgo_ts+25420, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { - j++ + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { + return j + uint32(1) } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { - if j+uint32(5) >= k { - return j + uint32(1) - } - if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { - return j + uint32(1) - } + if libc.Xstrchr(tls, __ccgo_ts+25543, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { j++ } else { - if int32(x) != int32(JSONB_TEXT5) { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { + if j+uint32(5) >= k { + return j + uint32(1) + } + if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { + return j + uint32(1) + } + j++ } else { - *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) - szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) - if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + if int32(x) != int32(JSONB_TEXT5) { return j + uint32(1) + } else { + *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) + szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) + if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + return j + uint32(1) + } + j += szC - uint32(1) } - j += szC - uint32(1) } } } @@ -171821,6 +173448,7 @@ func _jsonTranslateTextToBlob(tls *libc.TLS, pParse uintptr, i Tu32) (r int32) { var _ /* op at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cDelim, iBlob, iStart, iThis, j, k, k1, nn, opcode, seenE, t, x, z, v40, v41, v43, v44, v46, v48 z = (*TJsonParse)(unsafe.Pointer(pParse)).FzJson + goto json_parse_restart json_parse_restart: ; switch int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))) { @@ -171975,6 +173603,7 @@ _1: } j = (*TJsonParse)(unsafe.Pointer(pParse)).FiErr + uint32(1) } + goto parse_object_value parse_object_value: ; x = _jsonTranslateTextToBlob(tls, pParse, j) @@ -172101,6 +173730,7 @@ _3: ; /* Parse string */ opcode = uint8(JSONB_TEXT) + goto parse_string parse_string: ; cDelim = *(*int8)(unsafe.Pointer(z + uintptr(i))) @@ -172149,9 +173779,14 @@ parse_string: } } else { if int32(c) <= int32(0x1f) { - /* Control characters are not allowed in strings */ - (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j - return -int32(1) + if int32(c) == 0 { + (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j + return -int32(1) + } + /* Control characters are not allowed in canonical JSON string + ** literals, but are allowed in JSON5 string literals. */ + opcode = uint8(JSONB_TEXT5) + (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) } else { if int32(c) == int32('"') { opcode = uint8(JSONB_TEXT5) @@ -172165,7 +173800,7 @@ parse_string: return int32(j + uint32(1)) _5: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8234, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8359, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_TRUE)) return int32(i + uint32(4)) } @@ -172173,7 +173808,7 @@ _5: return -int32(1) _6: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8239, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(5)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8364, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(5)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_FALSE)) return int32(i + uint32(5)) } @@ -172218,6 +173853,7 @@ _8: ; /* Parse number */ t = uint8(0x00) /* Bit 0x01: JSON5. Bit 0x02: FLOAT */ + goto parse_number parse_number: ; seenE = uint8(0) @@ -172249,14 +173885,14 @@ parse_number: /* JSON5 allows for "+Infinity" and "-Infinity" using exactly ** that case. SQLite also allows these in any case and it allows ** "+inf" and "-inf". */ - if (int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+25346, int32(3)) == 0 { + if (int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+25469, int32(3)) == 0 { (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) if int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == int32('-') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25429) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25552) } else { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25436) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25559) } - if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25442, int32(5)) == 0 { + if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25565, int32(5)) == 0 { v48 = int32(9) } else { v48 = int32(4) @@ -172295,6 +173931,7 @@ parse_number: } } } + goto parse_number_2 parse_number_2: ; j = i + uint32(1) @@ -172353,6 +173990,7 @@ parse_number_2: return -int32(1) } } + goto parse_number_finish parse_number_finish: ; if int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == int32('+') { @@ -172415,7 +174053,7 @@ _29: return -int32(1) _37: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1636, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1650, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) return int32(i + uint32(4)) } @@ -172439,7 +174077,7 @@ _38: goto _51 } if int32(_aNanInfName[k1].FeType) == int32(JSONB_FLOAT) { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25436) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25559) } else { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) } @@ -172484,7 +174122,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 i += _json5Whitespace(tls, zJson+uintptr(i)) if *(*int8)(unsafe.Pointer(zJson + uintptr(i))) != 0 { if pCtx != 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25454, -int32(1)) } _jsonParseReset(tls, pParse) return int32(1) @@ -172497,7 +174135,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 if (*TJsonParse)(unsafe.Pointer(pParse)).Foom != 0 { Xsqlite3_result_error_nomem(tls, pCtx) } else { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25454, -int32(1)) } } _jsonParseReset(tls, pParse) @@ -172660,15 +174298,15 @@ func _jsonTranslateBlobToText(tls *libc.TLS, pParse uintptr, i Tu32, pOut uintpt goto _16 _2: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1636, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1650, uint32(4)) return i + uint32(1) _3: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8234, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8359, uint32(4)) return i + uint32(1) _4: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8239, uint32(5)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8364, uint32(5)) return i + uint32(1) _6: ; @@ -172717,9 +174355,9 @@ _7: k++ } if bOverflow != 0 { - v19 = __ccgo_ts + 25350 + v19 = __ccgo_ts + 25473 } else { - v19 = __ccgo_ts + 12101 + v19 = __ccgo_ts + 12226 } _jsonPrintf(tls, int32(100), pOut, v19, libc.VaList(bp+16, u)) goto _16 @@ -172767,7 +174405,7 @@ _11: for sz2 > uint32(0) { k2 = uint32(0) for { - if !(k2 < sz2 && int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('\\') && int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('"')) { + if !(k2 < sz2 && (_jsonIsOk[uint8(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2))))] != 0 || int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) == int32('\''))) { break } goto _21 @@ -172784,7 +174422,16 @@ _11: sz2 -= k2 } if int32(*(*int8)(unsafe.Pointer(zIn2))) == int32('"') { - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25448, uint32(2)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25571, uint32(2)) + zIn2++ + sz2-- + continue + } + if int32(*(*int8)(unsafe.Pointer(zIn2))) <= int32(0x1f) { + if (*TJsonString)(unsafe.Pointer(pOut)).FnUsed+uint64(7) > (*TJsonString)(unsafe.Pointer(pOut)).FnAlloc && _jsonStringGrow(tls, pOut, uint32(7)) != 0 { + break + } + _jsonAppendControlChar(tls, pOut, uint8(*(*int8)(unsafe.Pointer(zIn2)))) zIn2++ sz2-- continue @@ -172798,7 +174445,7 @@ _11: case int32('\''): _jsonAppendChar(tls, pOut, int8('\'')) case int32('v'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25451, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25574, uint32(6)) case int32('x'): if sz2 < uint32(4) { p23 = pOut + 33 @@ -172806,12 +174453,12 @@ _11: sz2 = uint32(2) break } - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25458, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25581, uint32(4)) _jsonAppendRawNZ(tls, pOut, zIn2+2, uint32(2)) zIn2 += uintptr(2) sz2 -= uint32(2) case int32('0'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25463, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25586, uint32(6)) case int32('\r'): if sz2 > uint32(2) && int32(*(*int8)(unsafe.Pointer(zIn2 + 2))) == int32('\n') { zIn2++ @@ -172889,6 +174536,7 @@ _14: goto _16 _15: ; + goto malformed_jsonb malformed_jsonb: ; p29 = pOut + 33 @@ -172899,6 +174547,140 @@ _16: return i + n + *(*Tu32)(unsafe.Pointer(bp)) } +// C documentation +// +// /* Context for recursion of json_pretty() +// */ +type TJsonPretty = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty = TJsonPretty + +type TJsonPretty1 = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty1 = TJsonPretty1 + +// C documentation +// +// /* Append indentation to the pretty JSON under construction */ +func _jsonPrettyIndent(tls *libc.TLS, pPretty uintptr) { + var jj Tu32 + _ = jj + jj = uint32(0) + for { + if !(jj < (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent) { + break + } + _jsonAppendRaw(tls, (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut, (*TJsonPretty)(unsafe.Pointer(pPretty)).FzIndent, (*TJsonPretty)(unsafe.Pointer(pPretty)).FszIndent) + goto _1 + _1: + ; + jj++ + } +} + +// C documentation +// +// /* +// ** Translate the binary JSONB representation of JSON beginning at +// ** pParse->aBlob[i] into a JSON text string. Append the JSON +// ** text onto the end of pOut. Return the index in pParse->aBlob[] +// ** of the first byte past the end of the element that is translated. +// ** +// ** This is a variant of jsonTranslateBlobToText() that "pretty-prints" +// ** the output. Extra whitespace is inserted to make the JSON easier +// ** for humans to read. +// ** +// ** If an error is detected in the BLOB input, the pOut->eErr flag +// ** might get set to JSTRING_MALFORMED. But not all BLOB input errors +// ** are detected. So a malformed JSONB input might either result +// ** in an error, or in incorrect JSON. +// ** +// ** The pOut->eErr JSTRING_OOM flag is set on a OOM. +// */ +func _jsonTranslateBlobToPrettyText(tls *libc.TLS, pPretty uintptr, i Tu32) (r Tu32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var iEnd, j, n Tu32 + var pOut, pParse, p1, p2 uintptr + var _ /* sz at bp+0 */ Tu32 + _, _, _, _, _, _, _ = iEnd, j, n, pOut, pParse, p1, p2 + pParse = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpParse + pOut = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut + n = _jsonbPayloadSize(tls, pParse, i, bp) + if n == uint32(0) { + p1 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + return (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob + uint32(1) + } + switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { + case int32(JSONB_ARRAY): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, int8('[')) + if j < iEnd { + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25593, uint32(2)) + } + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, int8(']')) + i = iEnd + case int32(JSONB_OBJECT): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, int8('{')) + if j < iEnd { + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToText(tls, pParse, j, pOut) + if j > iEnd { + p2 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p2)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p2))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25596, uint32(2)) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25593, uint32(2)) + } + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, int8('}')) + i = iEnd + default: + i = _jsonTranslateBlobToText(tls, pParse, i, pOut) + break + } + return i +} + // C documentation // // /* Return true if the input pJson @@ -173616,7 +175398,7 @@ func _jsonReturnFromBlob(tls *libc.TLS, pParse uintptr, i Tu32, pCtx uintptr, te db = Xsqlite3_context_db_handle(tls, pCtx) n = _jsonbPayloadSize(tls, pParse, i, bp) if n == uint32(0) { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25454, -int32(1)) return } switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { @@ -173725,6 +175507,7 @@ _6: if *(*Tu32)(unsafe.Pointer(bp)) == uint32(0) { goto returnfromblob_malformed } + goto to_double to_double: ; z1 = _sqlite3DbStrNDup(tls, db, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(i+n), uint64(int32(*(*Tu32)(unsafe.Pointer(bp))))) @@ -173843,13 +175626,15 @@ _14: _15: ; return + goto returnfromblob_oom returnfromblob_oom: ; Xsqlite3_result_error_nomem(tls, pCtx) return + goto returnfromblob_malformed returnfromblob_malformed: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25454, -int32(1)) return } @@ -173890,7 +175675,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob = Xsqlite3_value_blob(tls, pArg) (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob = uint32(Xsqlite3_value_bytes(tls, pArg)) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25302, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25425, -int32(1)) return int32(1) } case int32(SQLITE_TEXT): @@ -173903,7 +175688,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FzJson = zJson (*TJsonParse)(unsafe.Pointer(pParse)).FnJson = nJson if _jsonConvertTextToBlob(tls, pParse, ctx) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25454, -int32(1)) _sqlite3DbFree(tls, (*TJsonParse)(unsafe.Pointer(pParse)).Fdb, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob) libc.X__builtin___memset_chk(tls, pParse, 0, uint64(72), libc.X__builtin_object_size(tls, pParse, 0)) return int32(1) @@ -173922,10 +175707,10 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin return int32(1) } if int32(*(*int8)(unsafe.Pointer(z))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25436) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25559) } else { if int32(*(*int8)(unsafe.Pointer(z))) == int32('-') && int32(*(*int8)(unsafe.Pointer(z + 1))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25429) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25552) } else { _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(n), z) } @@ -173964,7 +175749,7 @@ func _jsonBadPathError(tls *libc.TLS, ctx uintptr, zPath uintptr) (r uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25470, libc.VaList(bp+8, zPath)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25599, libc.VaList(bp+8, zPath)) if ctx == uintptr(0) { return zMsg } @@ -174056,11 +175841,12 @@ func _jsonInsertIntoBlob(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr, e _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto jsonInsertIntoBlob_patherror jsonInsertIntoBlob_patherror: ; _jsonParseFree(tls, p) if rc == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25454, -int32(1)) } else { _jsonBadPathError(tls, ctx, zPath) } @@ -174144,6 +175930,7 @@ func _jsonParseFuncArg(tls *libc.TLS, ctx uintptr, pArg uintptr, flgs Tu32) (r u } } db = Xsqlite3_context_db_handle(tls, ctx) + goto rebuild_from_cache rebuild_from_cache: ; p = _sqlite3DbMallocZero(tls, db, uint64(72)) @@ -174233,6 +176020,7 @@ rebuild_from_cache: } } return p + goto json_pfa_malformed json_pfa_malformed: ; if flgs&uint32(JSON_KEEPERROR) != 0 { @@ -174240,9 +176028,10 @@ json_pfa_malformed: return p } else { _jsonParseFree(tls, p) - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25454, -int32(1)) return uintptr(0) } + goto json_pfa_oom json_pfa_oom: ; _jsonParseFree(tls, pFromCache) @@ -174374,7 +176163,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if int32(*(*int8)(unsafe.Pointer(zPath))) == int32('$') { v1 = zPath + uintptr(1) } else { - v1 = __ccgo_ts + 25488 + v1 = __ccgo_ts + 25617 } i = _jsonLookupStep(tls, p, uint32(0), v1, uint32(0)) if i >= uint32(JSON_LOOKUP_PATHERROR) { @@ -174384,7 +176173,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25454, -int32(1)) } } eErr = uint8(1) @@ -174402,25 +176191,6 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) _jsonParseFree(tls, p) } -// C documentation -// -// /* True if the string is all digits */ -func _jsonAllDigits(tls *libc.TLS, z uintptr, n int32) (r int32) { - var i int32 - _ = i - i = 0 - for { - if !(i < n && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))])&int32(0x04) != 0) { - break - } - goto _1 - _1: - ; - i++ - } - return libc.BoolInt32(i == n) -} - // C documentation // // /* True if the string is all alphanumerics and underscores */ @@ -174507,21 +176277,21 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { ** [NUMBER] ==> $[NUMBER] // Not PG. Purely for convenience */ _jsonStringInit(tls, bp, ctx) - if _jsonAllDigits(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25490, uint32(1)) + if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) == int32(SQLITE_INTEGER) { + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25619, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+5509, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+5573, uint32(2)) } else { if _jsonAllAlphanum(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1663, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1677, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { if int32(*(*int8)(unsafe.Pointer(zPath))) == int32('[') && nPath >= int32(3) && int32(*(*int8)(unsafe.Pointer(zPath + uintptr(nPath-int32(1))))) == int32(']') { _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25492, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25621, uint32(2)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25495, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25624, uint32(1)) } } } @@ -174557,11 +176327,11 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { goto json_extract_error /* Return NULL if not found */ } else { _jsonAppendSeparator(tls, bp) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1636, uint32(4)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1650, uint32(4)) } } else { if j == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25454, -int32(1)) goto json_extract_error } else { _jsonBadPathError(tls, ctx, zPath) @@ -174581,6 +176351,7 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } } + goto json_extract_error json_extract_error: ; _jsonStringReset(tls, bp) @@ -174828,7 +176599,7 @@ func _jsonPatchFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == int32(JSON_MERGE_OOM) { Xsqlite3_result_error_nomem(tls, ctx) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25454, -int32(1)) } } _jsonParseFree(tls, pPatch) @@ -174852,7 +176623,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { var _ /* jx at bp+0 */ TJsonString _, _, _ = i, n, z if argc&int32(1) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25497, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25626, -int32(1)) return } _jsonStringInit(tls, bp, ctx) @@ -174863,7 +176634,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { break } if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) != int32(SQLITE_TEXT) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25548, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25677, -int32(1)) _jsonStringReset(tls, bp) return } @@ -174935,7 +176706,7 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25454, -int32(1)) } } goto json_remove_done @@ -174948,9 +176719,11 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto json_remove_patherror json_remove_patherror: ; _jsonBadPathError(tls, ctx, zPath) + goto json_remove_done json_remove_done: ; _jsonParseFree(tls, p) @@ -174970,7 +176743,7 @@ func _jsonReplaceFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { return } if argc&int32(1) == 0 { - _jsonWrongNumArgs(tls, ctx, __ccgo_ts+16144) + _jsonWrongNumArgs(tls, ctx, __ccgo_ts+16237) return } _jsonInsertIntoBlob(tls, ctx, argc, argv, int32(JEDIT_REPL)) @@ -175001,9 +176774,9 @@ func _jsonSetFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { } if argc&int32(1) == 0 { if bIsSet != 0 { - v1 = __ccgo_ts + 25582 + v1 = __ccgo_ts + 25711 } else { - v1 = __ccgo_ts + 25586 + v1 = __ccgo_ts + 25715 } _jsonWrongNumArgs(tls, ctx, v1) return @@ -175051,7 +176824,7 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25331, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25454, -int32(1)) } } goto json_type_done @@ -175060,11 +176833,54 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { i = uint32(0) } Xsqlite3_result_text(tls, ctx, _jsonbType[int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(p)).FaBlob + uintptr(i))))&int32(0x0f)], -int32(1), libc.UintptrFromInt32(0)) + goto json_type_done json_type_done: ; _jsonParseFree(tls, p) } +// C documentation +// +// /* +// ** json_pretty(JSON) +// ** json_pretty(JSON, INDENT) +// ** +// ** Return text that is a pretty-printed rendering of the input JSON. +// ** If the argument is not valid JSON, return NULL. +// ** +// ** The INDENT argument is text that is used for indentation. If omitted, +// ** it defaults to four spaces (the same as PostgreSQL). +// */ +func _jsonPrettyFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { + bp := tls.Alloc(176) + defer tls.Free(176) + var v1 uintptr + var v2 bool + var _ /* s at bp+0 */ TJsonString + var _ /* x at bp+136 */ TJsonPretty + _, _ = v1, v2 /* Pretty printing context */ + libc.X__builtin___memset_chk(tls, bp+136, 0, uint64(32), libc.X__builtin_object_size(tls, bp+136, 0)) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse = _jsonParseFuncArg(tls, ctx, *(*uintptr)(unsafe.Pointer(argv)), uint32(0)) + if (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse == uintptr(0) { + return + } + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpOut = bp + _jsonStringInit(tls, bp, ctx) + if v2 = argc == int32(1); !v2 { + v1 = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = v1 + } + if v2 || v1 == uintptr(0) { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = __ccgo_ts + 25722 + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(4) + } else { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(libc.Xstrlen(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent)) + } + _jsonTranslateBlobToPrettyText(tls, bp+136, uint32(0)) + _jsonReturnString(tls, bp, uintptr(0), uintptr(0)) + _jsonParseFree(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse) +} + // C documentation // // /* @@ -175139,7 +176955,7 @@ func _jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if argc == int32(2) { f = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if f < int64(1) || f > int64(15) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25593, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25727, -int32(1)) return } flags = uint8(f & int64(0x0f)) @@ -175330,7 +177146,7 @@ func _jsonArrayCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25650, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25784, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -175479,7 +177295,7 @@ func _jsonObjectCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25653, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25787, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -175582,7 +177398,7 @@ func _jsonEachConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv _ = argv _ = argc _ = pAux - rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25656) + rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25790) if rc == SQLITE_OK { pNew = _sqlite3DbMallocZero(tls, db, uint64(32)) *(*uintptr)(unsafe.Pointer(ppVtab)) = pNew @@ -175716,7 +177532,7 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { var _ /* sz at bp+0 */ Tu32 _, _, _, _, _ = i, k, n, needQuote, z if int32((*TJsonEachCursor)(unsafe.Pointer(p)).FeType) == int32(JSONB_ARRAY) { - _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25739, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) + _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25873, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) } else { *(*Tu32)(unsafe.Pointer(bp)) = uint32(0) needQuote = 0 @@ -175742,9 +177558,9 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { } } if needQuote != 0 { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25746, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25880, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } else { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25754, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25888, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } } } @@ -176130,7 +177946,7 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a i = v5 (*TJsonEachCursor)(unsafe.Pointer(p)).FeType = uint8(0) (*TJsonEachCursor)(unsafe.Pointer(p)).FnRoot = uint32(1) - _jsonAppendRaw(tls, p+56, __ccgo_ts+25760, uint32(1)) + _jsonAppendRaw(tls, p+56, __ccgo_ts+25894, uint32(1)) } (*TJsonEachCursor)(unsafe.Pointer(p)).FnParent = uint32(0) n = _jsonbPayloadSize(tls, p+192, i, bp) @@ -176150,10 +177966,11 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent))).FiValue = i } return SQLITE_OK + goto json_each_malformed_input json_each_malformed_input: ; Xsqlite3_free(tls, (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg) - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25331, 0) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25454, 0) _jsonEachCursorReset(tls, p) if (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg != 0 { v6 = int32(SQLITE_ERROR) @@ -176207,183 +178024,193 @@ func init() { // ** Register JSON functions. // */ func _sqlite3RegisterJsonFunctions(tls *libc.TLS) { - _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2304)/libc.Uint64FromInt64(72))) + _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2448)/libc.Uint64FromInt64(72))) } -var _aJsonFunc = [32]TFuncDef{ +var _aJsonFunc = [34]TFuncDef{ 0: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25762, + FzName: __ccgo_ts + 25896, }, 1: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25767, + FzName: __ccgo_ts + 25901, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25773, + FzName: __ccgo_ts + 25907, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25784, + FzName: __ccgo_ts + 25918, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25796, + FzName: __ccgo_ts + 25930, }, 5: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25796, + FzName: __ccgo_ts + 25930, }, 6: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25814, + FzName: __ccgo_ts + 25948, }, 7: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25834, + FzName: __ccgo_ts + 25968, }, 8: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25847, + FzName: __ccgo_ts + 25981, }, 9: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_JSON) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25861, + FzName: __ccgo_ts + 25995, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_SQL) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25864, + FzName: __ccgo_ts + 25998, }, 11: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25868, + FzName: __ccgo_ts + 26002, }, 12: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25880, + FzName: __ccgo_ts + 26014, }, 13: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25893, + FzName: __ccgo_ts + 26027, }, 14: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25905, + FzName: __ccgo_ts + 26039, }, 15: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25918, + FzName: __ccgo_ts + 26052, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25929, + FzName: __ccgo_ts + 26063, }, 17: { FnArg: int8(1), - FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25941, + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 26075, }, 18: { + FnArg: int8(2), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 26075, + }, + 19: { + FnArg: int8(1), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 26087, + }, + 20: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25952, + FzName: __ccgo_ts + 26098, }, - 19: { + 21: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25964, + FzName: __ccgo_ts + 26110, }, - 20: { + 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25977, + FzName: __ccgo_ts + 26123, }, - 21: { + 23: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25990, + FzName: __ccgo_ts + 26136, }, - 22: { + 24: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26004, + FzName: __ccgo_ts + 26150, }, - 23: { + 25: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26013, + FzName: __ccgo_ts + 26159, }, - 24: { + 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26023, + FzName: __ccgo_ts + 26169, }, - 25: { + 27: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26023, + FzName: __ccgo_ts + 26169, }, - 26: { + 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26033, + FzName: __ccgo_ts + 26179, }, - 27: { + 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26033, + FzName: __ccgo_ts + 26179, }, - 28: { + 30: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 26044, + FzName: __ccgo_ts + 26190, }, - 29: { + 31: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26061, + FzName: __ccgo_ts + 26207, }, - 30: { + 32: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 26079, + FzName: __ccgo_ts + 26225, }, - 31: { + 33: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26097, + FzName: __ccgo_ts + 26243, }, } @@ -176406,33 +178233,35 @@ func init() { *(*uintptr)(unsafe.Add(p, 1032)) = __ccgo_fp(_jsonObjectFunc) *(*uintptr)(unsafe.Add(p, 1104)) = __ccgo_fp(_jsonPatchFunc) *(*uintptr)(unsafe.Add(p, 1176)) = __ccgo_fp(_jsonPatchFunc) - *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonQuoteFunc) - *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2048)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2056)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2064)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2120)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2128)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2136)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonQuoteFunc) + *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2208)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2280)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2328)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2336)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2344)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2352)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2400)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2408)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2416)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2424)) = __ccgo_fp(_jsonGroupInverse) } // C documentation @@ -176464,11 +178293,11 @@ var _aMod = [2]struct { FpModule uintptr }{ 0: { - FzName: __ccgo_ts + 26116, + FzName: __ccgo_ts + 26262, FpModule: uintptr(unsafe.Pointer(&_jsonEachModule)), }, 1: { - FzName: __ccgo_ts + 26126, + FzName: __ccgo_ts + 26272, FpModule: uintptr(unsafe.Pointer(&_jsonTreeModule)), }, } @@ -177115,7 +178944,7 @@ func _nodeAcquire(tls *libc.TLS, pRtree uintptr, iNode Ti64, pParent uintptr, pp } } if (*TRtree)(unsafe.Pointer(pRtree)).FpNodeBlob == uintptr(0) { - rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+26136, iNode, 0, pRtree+112) + rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+26282, iNode, 0, pRtree+112) } if rc != 0 { *(*uintptr)(unsafe.Pointer(ppNode)) = uintptr(0) @@ -177420,7 +179249,7 @@ func _rtreeDestroy(tls *libc.TLS, pVtab uintptr) (r int32) { var rc int32 _, _, _ = pRtree, rc, zCreate pRtree = pVtab - zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+26141, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+26287, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if !(zCreate != 0) { rc = int32(SQLITE_NOMEM) } else { @@ -178341,7 +180170,7 @@ func _findLeafNode(tls *libc.TLS, pRtree uintptr, iRowid Ti64, ppLeaf uintptr, p func _deserializeGeometry(tls *libc.TLS, pValue uintptr, pCons uintptr) (r int32) { var pBlob, pInfo, pSrc uintptr _, _, _ = pBlob, pInfo, pSrc /* Callback information */ - pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+26223) + pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+26369) if pSrc == uintptr(0) { return int32(SQLITE_ERROR) } @@ -178396,7 +180225,7 @@ func _rtreeFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintp iRowid = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) *(*Ti64)(unsafe.Pointer(bp + 24)) = 0 eType = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv))) - if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv))) == float64(iRowid) { + if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && 0 == _sqlite3IntFloatCompare(tls, iRowid, Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))) { rc = _findLeafNode(tls, pRtree, iRowid, bp+16, bp+24) } else { rc = SQLITE_OK @@ -179446,6 +181275,7 @@ func _SplitNode(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iHe rc = _nodeRelease(tls, pRtree, pLeft) pLeft = uintptr(0) } + goto splitnode_out splitnode_out: ; _nodeRelease(tls, pRtree, pRight) @@ -179875,7 +181705,7 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) var _ /* pStmt at bp+0 */ uintptr _, _, _, _, _, _ = rc, zCol, zCol1, zCol2, zSql, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26237, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26383, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if zSql != 0 { rc = Xsqlite3_prepare_v2(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, -int32(1), bp, uintptr(0)) } else { @@ -179885,11 +181715,11 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) if rc == SQLITE_OK { if iCol == 0 { zCol = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26257, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26403, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) } else { zCol1 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol) zCol2 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol+int32(1)) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26289, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26435, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) } } Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -180051,6 +181881,7 @@ func _rtreeUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pRow rc = Xsqlite3_reset(tls, pUp) } } + goto constraint constraint: ; _rtreeRelease(tls, pRtree) @@ -180102,7 +181933,7 @@ func _rtreeRename(tls *libc.TLS, pVtab uintptr, zNewName uintptr) (r int32) { _, _, _ = pRtree, rc, zSql pRtree = pVtab rc = int32(SQLITE_NOMEM) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26326, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26472, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) if zSql != 0 { _nodeBlobReset(tls, pRtree) rc = Xsqlite3_exec(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, uintptr(0), uintptr(0), uintptr(0)) @@ -180156,9 +181987,9 @@ func _rtreeQueryStat1(tls *libc.TLS, db uintptr, pRtree uintptr) (r int32) { var v2 int64 var _ /* p at bp+0 */ uintptr _, _, _, _, _, _ = nRow, rc, zFmt, zSql, v1, v2 - zFmt = __ccgo_ts + 26471 + zFmt = __ccgo_ts + 26617 nRow = int64(RTREE_MIN_ROWEST) - rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11930, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+12055, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc != SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FnRowEst = int64(RTREE_DEFAULT_ROWEST) if rc == int32(SQLITE_ERROR) { @@ -180216,9 +182047,9 @@ func _rtreeShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName1 = [3]uintptr{ - 0: __ccgo_ts + 26527, - 1: __ccgo_ts + 5832, - 2: __ccgo_ts + 17045, + 0: __ccgo_ts + 26673, + 1: __ccgo_ts + 5896, + 2: __ccgo_ts + 17132, } var _rtreeModule = Tsqlite3_module{ @@ -180262,21 +182093,21 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref (*TRtree)(unsafe.Pointer(pRtree)).Fdb = db if isCreate != 0 { p = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26941, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+27087, libc.VaList(bp+8, zDb, zPrefix)) ii = 0 for { if !(ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+27003, libc.VaList(bp+8, ii)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+27149, libc.VaList(bp+8, ii)) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+27008, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+27072, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+27142, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+27154, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+27218, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+27288, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) zCreate = Xsqlite3_str_finish(tls, p) if !(zCreate != 0) { return int32(SQLITE_NOMEM) @@ -180306,7 +182137,7 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } else { /* An UPSERT is very slightly slower than REPLACE, but it is needed ** if there are auxiliary columns */ - zFormat = __ccgo_ts + 27191 + zFormat = __ccgo_ts + 27337 } zSql = Xsqlite3_mprintf(tls, zFormat, libc.VaList(bp+8, zDb, zPrefix)) if zSql != 0 { @@ -180321,31 +182152,31 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref i++ } if (*TRtree)(unsafe.Pointer(pRtree)).FnAux != 0 && rc != int32(SQLITE_NOMEM) { - (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+27299, libc.VaList(bp+8, zDb, zPrefix)) + (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+27445, libc.VaList(bp+8, zDb, zPrefix)) if (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { p1 = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27344, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27490, libc.VaList(bp+8, zDb, zPrefix)) ii1 = 0 for { if !(ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } if ii1 != 0 { - Xsqlite3_str_append(tls, p1, __ccgo_ts+13438, int32(1)) + Xsqlite3_str_append(tls, p1, __ccgo_ts+13563, int32(1)) } if ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull) { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27371, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27517, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) } else { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27393, libc.VaList(bp+8, ii1, ii1+int32(2))) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27539, libc.VaList(bp+8, ii1, ii1+int32(2))) } goto _3 _3: ; ii1++ } - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27401, 0) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27547, 0) zSql1 = Xsqlite3_str_finish(tls, p1) if zSql1 == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -180359,14 +182190,14 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } var _azSql = [8]uintptr{ - 0: __ccgo_ts + 26532, - 1: __ccgo_ts + 26585, - 2: __ccgo_ts + 26630, - 3: __ccgo_ts + 26682, - 4: __ccgo_ts + 26736, - 5: __ccgo_ts + 26781, - 6: __ccgo_ts + 26839, - 7: __ccgo_ts + 26894, + 0: __ccgo_ts + 26678, + 1: __ccgo_ts + 26731, + 2: __ccgo_ts + 26776, + 3: __ccgo_ts + 26828, + 4: __ccgo_ts + 26882, + 5: __ccgo_ts + 26927, + 6: __ccgo_ts + 26985, + 7: __ccgo_ts + 27040, } // C documentation @@ -180424,7 +182255,7 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE _, _ = rc, zSql if isCreate != 0 { *(*int32)(unsafe.Pointer(bp)) = 0 - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27417, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27563, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) rc = _getIntFromStmt(tls, db, zSql, bp) if rc == SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = *(*int32)(unsafe.Pointer(bp)) - int32(64) @@ -180432,17 +182263,17 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = int32(4) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*int32(RTREE_MAXCELLS) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } } else { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27437, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27583, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) rc = _getIntFromStmt(tls, db, zSql, pRtree+32) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } else { if (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize < libc.Int32FromInt32(512)-libc.Int32FromInt32(64) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< libc.Int32FromInt32(RTREE_MAX_AUX_COLUMN)+libc.Int32FromInt32(3) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) return int32(SQLITE_ERROR) } Xsqlite3_vtab_config(tls, db, int32(SQLITE_VTAB_CONSTRAINT_SUPPORT), libc.VaList(bp+8, int32(1))) @@ -180519,13 +182350,13 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, 0)) libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, 0)) libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, 0)) - libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27680, uint64(6), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), 0)) + libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27826, uint64(6), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), 0)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27686, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27832, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) ii = int32(4) for { if !(ii < argc) { @@ -180534,7 +182365,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt zArg = *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)) if int32(*(*int8)(unsafe.Pointer(zArg))) == int32('+') { (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27710, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27856, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) } else { if int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux) > 0 { break @@ -180548,19 +182379,19 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27737, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27883, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) } else { if ii < argc { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, aErrMsg[int32(4)])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, aErrMsg[int32(4)])) rc = int32(SQLITE_ERROR) } else { v3 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v3 if SQLITE_OK != v3 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } } @@ -180583,7 +182414,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } } if iErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, aErrMsg[iErr])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, aErrMsg[iErr])) goto rtreeInit_fail } (*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell = uint8(int32(8) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)*int32(4)) @@ -180594,11 +182425,12 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto rtreeInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto rtreeInit_fail rtreeInit_fail: ; if rc == SQLITE_OK { @@ -180609,8 +182441,8 @@ rtreeInit_fail: } var _azFormat = [2]uintptr{ - 0: __ccgo_ts + 27716, - 1: __ccgo_ts + 27727, + 0: __ccgo_ts + 27862, + 1: __ccgo_ts + 27873, } // C documentation @@ -180668,21 +182500,21 @@ func _rtreenode(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { } _nodeGetCell(tls, bp+40, bp, ii, bp+1008) if ii > 0 { - Xsqlite3_str_append(tls, pOut, __ccgo_ts+11550, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+11675, int32(1)) } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27740, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27886, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) jj = 0 for { if !(jj < int32((*(*TRtree)(unsafe.Pointer(bp + 40))).FnDim2)) { break } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27746, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27892, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) goto _2 _2: ; jj++ } - Xsqlite3_str_append(tls, pOut, __ccgo_ts+27750, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+27896, int32(1)) goto _1 _1: ; @@ -180709,7 +182541,7 @@ func _rtreedepth(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { _ = zBlob _ = nArg if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apArg))) != int32(SQLITE_BLOB) || Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(apArg))) < int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+27752, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+27898, -int32(1)) } else { zBlob = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(apArg))) if zBlob != 0 { @@ -180827,11 +182659,11 @@ func _rtreeCheckAppendMsg(tls *libc.TLS, pCheck uintptr, zFmt uintptr, va uintpt (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } else { if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport != 0 { - v1 = __ccgo_ts + 4551 + v1 = __ccgo_ts + 4615 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27785, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27931, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport == uintptr(0) { (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } @@ -180865,7 +182697,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt _, _, _ = nNode, pNode, pRet pRet = uintptr(0) /* Return value */ if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode == uintptr(0) { - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27792, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27938, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) } if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { Xsqlite3_bind_int64(tls, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, int32(1), iNode) @@ -180882,7 +182714,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt } _rtreeCheckReset(tls, pCheck, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && pRet == uintptr(0) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27837, libc.VaList(bp+8, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27983, libc.VaList(bp+8, iNode)) } } return pRet @@ -180911,8 +182743,8 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i var rc int32 _, _, _, _, _, _ = azSql, ii, pStmt, rc, v1, v2 azSql = [2]uintptr{ - 0: __ccgo_ts + 27869, - 1: __ccgo_ts + 27923, + 0: __ccgo_ts + 28015, + 1: __ccgo_ts + 28069, } if *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) = _rtreeCheckPrepare(tls, pCheck, azSql[bLeaf], libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) @@ -180925,21 +182757,21 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i rc = Xsqlite3_step(tls, pStmt) if rc == int32(SQLITE_DONE) { if bLeaf != 0 { - v1 = __ccgo_ts + 27971 + v1 = __ccgo_ts + 28117 } else { - v1 = __ccgo_ts + 27979 + v1 = __ccgo_ts + 28125 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27988, libc.VaList(bp+8, iKey, iVal, v1)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28134, libc.VaList(bp+8, iKey, iVal, v1)) } else { if rc == int32(SQLITE_ROW) { ii = Xsqlite3_column_int64(tls, pStmt, 0) if ii != iVal { if bLeaf != 0 { - v2 = __ccgo_ts + 27971 + v2 = __ccgo_ts + 28117 } else { - v2 = __ccgo_ts + 27979 + v2 = __ccgo_ts + 28125 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28033, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28179, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) } } } @@ -180984,7 +182816,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 v2 = libc.BoolInt32(*(*TRtreeValue)(unsafe.Pointer(bp)) > *(*TRtreeValue)(unsafe.Pointer(bp + 4))) } if v2 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28091, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28237, libc.VaList(bp+24, i, iCell, iNode)) } if pParent != 0 { _readCoord(tls, pParent+uintptr(libc.Int32FromInt32(4)*libc.Int32FromInt32(2)*i), bp+8) @@ -181002,7 +182834,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 } } if v5 || v4 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28139, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28285, libc.VaList(bp+24, i, iCell, iNode)) } } goto _1 @@ -181035,19 +182867,19 @@ func _rtreeCheckNode(tls *libc.TLS, pCheck uintptr, iDepth int32, aParent uintpt aNode = _rtreeCheckGetNode(tls, pCheck, iNode, bp) if aNode != 0 { if *(*int32)(unsafe.Pointer(bp)) < int32(4) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28206, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28352, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) } else { /* Used to iterate through cells */ if aParent == uintptr(0) { iDepth = _readInt16(tls, aNode) if iDepth > int32(RTREE_MAX_DEPTH) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28240, libc.VaList(bp+16, iDepth)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28386, libc.VaList(bp+16, iDepth)) Xsqlite3_free(tls, aNode) return } } nCell = _readInt16(tls, aNode+2) if int32(4)+nCell*(int32(8)+(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnDim*int32(2)*int32(4)) > *(*int32)(unsafe.Pointer(bp)) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28270, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28416, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) } else { i = 0 for { @@ -181092,12 +182924,12 @@ func _rtreeCheckCount(tls *libc.TLS, pCheck uintptr, zTbl uintptr, nExpect Ti64) var pCount uintptr _, _ = nActual, pCount if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { - pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+28325, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) + pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+28471, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) if pCount != 0 { if Xsqlite3_step(tls, pCount) == int32(SQLITE_ROW) { nActual = Xsqlite3_column_int64(tls, pCount, 0) if nActual != nExpect { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28356, libc.VaList(bp+8, zTbl, nExpect, nActual)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28502, libc.VaList(bp+8, zTbl, nExpect, nActual)) } } (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = Xsqlite3_finalize(tls, pCount) @@ -181126,7 +182958,7 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzDb = zDb (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzTab = zTab /* Find the number of auxiliary columns */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28423, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28569, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { nAux = Xsqlite3_column_count(tls, pStmt) - int32(2) Xsqlite3_finalize(tls, pStmt) @@ -181136,11 +182968,11 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe } } /* Find number of dimensions in the rtree table. */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+26237, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+26383, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim = (Xsqlite3_column_count(tls, pStmt) - int32(1) - nAux) / int32(2) if (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim < int32(1) { - _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28451, 0) + _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28597, 0) } else { if int32(SQLITE_ROW) == Xsqlite3_step(tls, pStmt) { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FbInt = libc.BoolInt32(Xsqlite3_column_type(tls, pStmt, int32(1)) == int32(SQLITE_INTEGER)) @@ -181156,8 +182988,8 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe if (*(*TRtreeCheck)(unsafe.Pointer(bp))).Frc == SQLITE_OK { _rtreeCheckNode(tls, bp, 0, uintptr(0), int64(1)) } - _rtreeCheckCount(tls, bp, __ccgo_ts+28482, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) - _rtreeCheckCount(tls, bp, __ccgo_ts+28489, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28628, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28635, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) } /* Finalize SQL statements used by the integrity-check */ Xsqlite3_finalize(tls, (*(*TRtreeCheck)(unsafe.Pointer(bp))).FpGetNode) @@ -181184,7 +183016,7 @@ func _rtreeIntegrity(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zName uintpt _ = isQuick rc = _rtreeCheckTable(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, pzErr) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28497, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28643, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) if *(*uintptr)(unsafe.Pointer(pzErr)) == uintptr(0) { rc = int32(SQLITE_NOMEM) } @@ -181235,13 +183067,13 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { var _ /* zReport at bp+0 */ uintptr _, _, _, _ = rc, zDb, zTab, v1 if nArg != int32(1) && nArg != int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+28516, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+28662, -int32(1)) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zDb = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg))) if nArg == int32(1) { zTab = zDb - zDb = __ccgo_ts + 6933 + zDb = __ccgo_ts + 6997 } else { zTab = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8))) } @@ -181250,7 +183082,7 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(bp)) } else { - v1 = __ccgo_ts + 18858 + v1 = __ccgo_ts + 18945 } Xsqlite3_result_text(tls, ctx, v1, -int32(1), uintptr(-libc.Int32FromInt32(1))) } else { @@ -181583,6 +183415,7 @@ func _geopolyParseJson(tls *libc.TLS, z uintptr, pRc uintptr) (r uintptr) { rc = int32(SQLITE_ERROR) } } + goto parse_json_err parse_json_err: ; if pRc != 0 { @@ -181716,19 +183549,19 @@ func _geopolyJsonFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if p != 0 { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) - Xsqlite3_str_append(tls, x, __ccgo_ts+25490, int32(1)) + Xsqlite3_str_append(tls, x, __ccgo_ts+25619, int32(1)) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28567, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28713, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28578, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28724, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -181757,20 +183590,20 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) cSep = int8('\'') - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28589, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28735, 0) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28607, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28753, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) cSep = int8(' ') goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28615, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28761, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) i = int32(1) for { if !(i < argc) { @@ -181778,14 +183611,14 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if z != 0 && *(*int8)(unsafe.Pointer(z)) != 0 { - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28623, libc.VaList(bp+8, z)) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28769, libc.VaList(bp+8, z)) } goto _2 _2: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28627, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28773, 0) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -182090,6 +183923,7 @@ func _geopolyBBox(tls *libc.TLS, context uintptr, pPoly uintptr, aCoord uintptr, if !(aCoord == uintptr(0)) { goto _6 } + goto geopolyBboxFill geopolyBboxFill: ; pOut = Xsqlite3_realloc64(tls, p, libc.Uint64FromInt64(40)+libc.Uint64FromInt64(4)*libc.Uint64FromInt32(2)*uint64(libc.Int32FromInt32(4)-libc.Int32FromInt32(4))) @@ -182193,8 +184027,8 @@ func _geopolyBBoxStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if pBBox == uintptr(0) { return } - if (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit == 0 { - (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit = int32(1) + if libc.AtomicLoadPInt32(pBBox) == 0 { + libc.AtomicStorePInt32(pBBox, int32(1)) libc.X__builtin___memcpy_chk(tls, pBBox+4, bp, libc.Uint64FromInt64(4)*libc.Uint64FromInt32(4), libc.X__builtin_object_size(tls, pBBox+4, 0)) } else { if *(*TRtreeValue)(unsafe.Pointer(bp)) < *(*TRtreeValue)(unsafe.Pointer(pBBox + 4)) { @@ -182821,6 +184655,7 @@ func _geopolyOverlap(tls *libc.TLS, p1 uintptr, p2 uintptr) (r int32) { } } } + goto geopolyOverlapDone geopolyOverlapDone: ; Xsqlite3_free(tls, p) @@ -182912,13 +184747,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, 0)) libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, 0)) libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, 0)) - libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27680, uint64(6), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), 0)) + libc.X__builtin___memcpy_chk(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27826, uint64(6), libc.X__builtin_object_size(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), 0)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28640, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28786, 0) (*TRtree)(unsafe.Pointer(pRtree)).FnAux = uint8(1) /* Add one for _shape */ (*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull = uint8(1) /* The _shape column is always not-null */ ii = int32(3) @@ -182927,13 +184762,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint break } (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28662, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28808, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27737, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27883, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) @@ -182941,7 +184776,7 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint v2 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v2 if SQLITE_OK != v2 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } Xsqlite3_free(tls, zSql) @@ -182956,11 +184791,12 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto geopolyInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto geopolyInit_fail geopolyInit_fail: ; if rc == SQLITE_OK { @@ -183109,6 +184945,7 @@ func _geopolyFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uin *(*int32)(unsafe.Pointer(bp + 8)) = _rtreeStepToLeaf(tls, pCsr) } } + goto geopoly_filter_end geopoly_filter_end: ; _nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp))) @@ -183166,7 +185003,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iRowidTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(1) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 17045 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 17132 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).Fomit = uint8(1) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(30) @@ -183176,7 +185013,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iFuncTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = idxNum - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28666 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28812 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).Fomit = uint8(0) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(300) @@ -183184,7 +185021,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { return SQLITE_OK } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(4) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28672 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28818 (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(3e+06) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(100000) return SQLITE_OK @@ -183304,7 +185141,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR _geopolyBBox(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(aData + 2*8)), bp+8+8, bp) if *(*int32)(unsafe.Pointer(bp)) != 0 { if *(*int32)(unsafe.Pointer(bp)) == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28681, 0) + (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28827, 0) } goto geopoly_update_end } @@ -183391,6 +185228,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, pUp) } } + goto geopoly_update_end geopoly_update_end: ; _rtreeRelease(tls, pRtree) @@ -183406,12 +185244,12 @@ geopoly_update_end: func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28721) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28867) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28737) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28883) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) @@ -183482,7 +185320,7 @@ func _sqlite3_geopoly_init(tls *libc.TLS, db uintptr) (r int32) { i++ } if rc == SQLITE_OK { - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28914, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+29060, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) } return rc } @@ -183496,61 +185334,61 @@ var _aFunc = [12]struct { 0: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28752, + FzName: __ccgo_ts + 28898, }, 1: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28765, + FzName: __ccgo_ts + 28911, }, 2: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28778, + FzName: __ccgo_ts + 28924, }, 3: { FnArg: int8(-int32(1)), FbPure: uint8(1), - FzName: __ccgo_ts + 28791, + FzName: __ccgo_ts + 28937, }, 4: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28737, + FzName: __ccgo_ts + 28883, }, 5: { FnArg: int8(3), FbPure: uint8(1), - FzName: __ccgo_ts + 28803, + FzName: __ccgo_ts + 28949, }, 6: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28721, + FzName: __ccgo_ts + 28867, }, 7: { FnArg: int8(1), - FzName: __ccgo_ts + 28826, + FzName: __ccgo_ts + 28972, }, 8: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28840, + FzName: __ccgo_ts + 28986, }, 9: { FnArg: int8(7), FbPure: uint8(1), - FzName: __ccgo_ts + 28853, + FzName: __ccgo_ts + 28999, }, 10: { FnArg: int8(4), FbPure: uint8(1), - FzName: __ccgo_ts + 28867, + FzName: __ccgo_ts + 29013, }, 11: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28883, + FzName: __ccgo_ts + 29029, }, } @@ -183576,7 +185414,7 @@ var _aAgg = [1]struct { FzName uintptr }{ 0: { - FzName: __ccgo_ts + 28895, + FzName: __ccgo_ts + 29041, }, } @@ -183601,20 +185439,20 @@ func _sqlite3RtreeInit(tls *libc.TLS, db uintptr) (r int32) { var rc, utf8 int32 _, _, _, _ = c, c1, rc, utf8 utf8 = int32(SQLITE_UTF8) - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28922, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+29068, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28932, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+29078, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28943, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+29089, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { c = libc.UintptrFromInt32(RTREE_COORD_REAL32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28666, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28812, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) } if rc == SQLITE_OK { c1 = libc.UintptrFromInt32(RTREE_COORD_INT32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28954, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+29100, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) } if rc == SQLITE_OK { rc = _sqlite3_geopoly_init(tls, db) @@ -183716,7 +185554,7 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { Xsqlite3_result_error_nomem(tls, ctx) _rtreeMatchArgFree(tls, pBlob) } else { - Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+26223, __ccgo_fp(_rtreeMatchArgFree)) + Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+26369, __ccgo_fp(_rtreeMatchArgFree)) } } } @@ -184933,7 +186771,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt /* Figure out the size of the output */ nOut = _rbuDeltaOutputSize(tls, aDelta, nDelta) if nOut < 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+28964, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+29110, -int32(1)) return } aOut = Xsqlite3_malloc(tls, nOut+int32(1)) @@ -184943,7 +186781,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt nOut2 = _rbuDeltaApply(tls, aOrig, nOrig, aDelta, nDelta, aOut) if nOut2 != nOut { Xsqlite3_free(tls, aOut) - Xsqlite3_result_error(tls, context, __ccgo_ts+28964, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+29110, -int32(1)) } else { Xsqlite3_result_blob(tls, context, aOut, nOut, __ccgo_fp(Xsqlite3_free)) } @@ -184969,7 +186807,7 @@ func _prepareAndCollectError(tls *libc.TLS, db uintptr, ppStmt uintptr, pzErrmsg _ = rc rc = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), ppStmt, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) } return rc @@ -184992,7 +186830,7 @@ func _resetAndCollectError(tls *libc.TLS, pStmt uintptr, pzErrmsg uintptr) (r in _ = rc rc = Xsqlite3_reset(tls, pStmt) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) } return rc } @@ -185124,7 +186962,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { /* Free any SQLite statements used while processing the previous object */ _rbuObjIterClearStatements(tls, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28985, uintptr(0), uintptr(0), p+64) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+29131, uintptr(0), uintptr(0), p+64) } if rc == SQLITE_OK { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 { @@ -185134,6 +186972,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { if rc != int32(SQLITE_ROW) { rc = _resetAndCollectError(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, p+64) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = uintptr(0) + (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = uintptr(0) } else { (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, 0) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, int32(1)) @@ -185212,7 +187051,7 @@ func _rbuTargetNameFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { Xsqlite3_result_text(tls, pCtx, zIn, -int32(1), libc.UintptrFromInt32(0)) } } else { - if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+26136, zIn, uint64(4)) == 0 { + if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+26282, zIn, uint64(4)) == 0 { i = int32(4) for { if !(int32(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))) <= int32('9')) { @@ -185249,13 +187088,13 @@ func _rbuObjIterFirst(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { _, _ = rc, v1 libc.X__builtin___memset_chk(tls, pIter, 0, uint64(192), libc.X__builtin_object_size(tls, pIter, 0)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 29156 + v1 = __ccgo_ts + 29302 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29197, libc.VaList(bp+8, v1))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29343, libc.VaList(bp+8, v1))) if rc == SQLITE_OK { - rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+29347) + rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+29493) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup = int32(1) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -185422,7 +187261,7 @@ func _rbuFinalize(tls *libc.TLS, p uintptr, pStmt uintptr) { rc = Xsqlite3_finalize(tls, pStmt) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && rc != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } @@ -185483,7 +187322,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu *(*[4]uintptr)(unsafe.Pointer(bp)) = [4]uintptr{} *(*int32)(unsafe.Pointer(peType)) = RBU_PK_NOTABLE *(*int32)(unsafe.Pointer(piPk)) = 0 - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29472, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29618, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK || Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0]) != int32(SQLITE_ROW) { /* Either an error, or no such table. */ goto rbuTableType_end @@ -185493,7 +187332,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } *(*int32)(unsafe.Pointer(piTnum)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0], int32(1)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29591, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29737, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { goto rbuTableType_end } @@ -185501,7 +187340,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu zOrig = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(3)) zIdx = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(1)) if zOrig != 0 && zIdx != 0 && int32(*(*Tu8)(unsafe.Pointer(zOrig))) == int32('p') { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29612, libc.VaList(bp+40, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29758, libc.VaList(bp+40, zIdx))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)]) == int32(SQLITE_ROW) { *(*int32)(unsafe.Pointer(piPk)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)], 0) @@ -185513,7 +187352,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29663, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29809, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { for Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)]) == int32(SQLITE_ROW) { if Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)], int32(5)) > 0 { @@ -185523,6 +187362,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu } *(*int32)(unsafe.Pointer(peType)) = int32(RBU_PK_NONE) } + goto rbuTableType_end rbuTableType_end: ; i = uint32(0) @@ -185556,7 +187396,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { bIndex = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { libc.X__builtin___memcpy_chk(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk, uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol), libc.X__builtin_object_size(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, 0)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29684, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29830, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FnIndex = 0 for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -185569,7 +187409,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { if bPartial != 0 { libc.X__builtin___memset_chk(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, int32(0x01), uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol), libc.X__builtin_object_size(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, 0)) } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29712, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29858, libc.VaList(bp+24, zIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) if iCid >= 0 { @@ -185622,7 +187462,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 _rbuTableType(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, pIter+72, bp+8, pIter+108) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NOTABLE { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+20299, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+20431, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc @@ -185633,7 +187473,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 /* Populate the azTblCol[] and nTblCol variables based on the columns ** of the input table. Ignore any input table columns that begin with ** "rbu_". */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29741, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29887, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { nCol = Xsqlite3_column_count(tls, *(*uintptr)(unsafe.Pointer(bp))) _rbuAllocateIterArrays(tls, p, pIter, nCol) @@ -185644,7 +187484,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 break } zName = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), i) - if Xsqlite3_strnicmp(tls, __ccgo_ts+29760, zName, int32(4)) != 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+29906, zName, int32(4)) != 0 { zCopy = _rbuStrndup(tls, zName, p+56) *(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)*4)) = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol v3 = pIter + 16 @@ -185652,7 +187492,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 *(*int32)(unsafe.Pointer(v3))++ *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(v2)*8)) = zCopy } else { - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29765, zName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29911, zName) { bRbuRowid = int32(1) } } @@ -185666,17 +187506,17 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && bRbuRowid != libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) if bRbuRowid != 0 { - v4 = __ccgo_ts + 29775 + v4 = __ccgo_ts + 29921 } else { - v4 = __ccgo_ts + 29788 + v4 = __ccgo_ts + 29934 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29797, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29943, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) } /* Check that all non-HIDDEN columns in the destination table are also ** present in the input table. Populate the abTblPk[], azTblType[] and ** aiTblOrder[] arrays at the same time. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29826, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29972, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zName1 = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -185698,7 +187538,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 } if i == (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29848, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29994, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) } else { iPk = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) bNotNull = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) @@ -185737,15 +187577,15 @@ func _rbuObjIterGetCollist(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) var z, zList, zSep uintptr _, _, _, _ = i, z, zList, zSep zList = uintptr(0) - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } z = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+29875, libc.VaList(bp+8, zList, zSep, z)) - zSep = __ccgo_ts + 15338 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30021, libc.VaList(bp+8, zList, zSep, z)) + zSep = __ccgo_ts + 15431 goto _1 _1: ; @@ -185770,7 +187610,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, _, _, _, _, _ = i, iPk, zCol, zRet, zSep iPk = int32(1) zRet = uintptr(0) - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 for int32(1) != 0 { i = 0 for { @@ -185779,7 +187619,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, } if int32(*(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == iPk { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29884, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+30030, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) zSep = zSeparator break } @@ -185827,21 +187667,21 @@ func _rbuVacuumTableStart(tls *libc.TLS, p uintptr, pIter uintptr, bRowid int32, *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zRet = uintptr(0) if bRowid != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29897, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30043, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iMax = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29929, libc.VaList(bp+16, iMax)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+30075, libc.VaList(bp+16, iMax)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1650, __ccgo_ts+15338, __ccgo_ts+29952) - zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29958, __ccgo_ts+29965, __ccgo_ts+5454) - zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1650, __ccgo_ts+15338, __ccgo_ts+1650) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1664, __ccgo_ts+15431, __ccgo_ts+30098) + zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+30104, __ccgo_ts+30111, __ccgo_ts+5518) + zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1664, __ccgo_ts+15431, __ccgo_ts+1664) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29973, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30119, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zVal = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+30015, libc.VaList(bp+16, zList, zVal)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+30161, libc.VaList(bp+16, zList, zVal)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } @@ -185890,10 +187730,10 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { zVector = uintptr(0) zRet = uintptr(0) bFailed = 0 - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 iCol = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29712, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29858, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(4)) @@ -185915,15 +187755,15 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { - zCol = __ccgo_ts + 30035 + zCol = __ccgo_ts + 30181 } } else { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) } - zLhs = _rbuMPrintf(tls, p, __ccgo_ts+30043, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+30064, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) - zSelect = _rbuMPrintf(tls, p, __ccgo_ts+30100, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) - zSep = __ccgo_ts + 15338 + zLhs = _rbuMPrintf(tls, p, __ccgo_ts+30189, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+30210, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) + zSelect = _rbuMPrintf(tls, p, __ccgo_ts+30246, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) + zSep = __ccgo_ts + 15431 iCol++ } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) @@ -185932,9 +187772,9 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30127, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30273, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 iCol = 0 for { if !(iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol) { @@ -185949,19 +187789,20 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { break } } - zVector = _rbuMPrintf(tls, p, __ccgo_ts+30175, libc.VaList(bp+24, zVector, zSep, zQuoted)) - zSep = __ccgo_ts + 15338 + zVector = _rbuMPrintf(tls, p, __ccgo_ts+30321, libc.VaList(bp+24, zVector, zSep, zQuoted)) + zSep = __ccgo_ts + 15431 goto _2 _2: ; iCol++ } if !(bFailed != 0) { - zRet = _rbuMPrintf(tls, p, __ccgo_ts+30182, libc.VaList(bp+24, zLhs, zVector)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+30328, libc.VaList(bp+24, zLhs, zVector)) } } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } + goto index_start_out index_start_out: ; Xsqlite3_free(tls, zOrder) @@ -186010,11 +187851,11 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zImpPK = uintptr(0) /* String to return via *pzImposterPK */ zWhere = uintptr(0) /* String to return via *pzWhere */ nBind = 0 /* Value to return via *pnBind */ - zCom = __ccgo_ts + 1650 /* Set to ", " later on */ - zAnd = __ccgo_ts + 1650 /* Set to " AND " later on */ + zCom = __ccgo_ts + 1664 /* Set to ", " later on */ + zAnd = __ccgo_ts + 1664 /* Set to " AND " later on */ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_xinfo = ? */ if rc == SQLITE_OK { - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29712, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29858, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -186023,8 +187864,8 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = uintptr(0) if iCid == -int32(2) { iSeq = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+30194, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) - zType = __ccgo_ts + 1650 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+30340, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) + zType = __ccgo_ts + 1664 } else { if iCid < 0 { /* An integer primary key. If the table has an explicit IPK, use @@ -186043,9 +187884,9 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - zCol = __ccgo_ts + 30035 + zCol = __ccgo_ts + 30181 } else { - zCol = __ccgo_ts + 29765 + zCol = __ccgo_ts + 29911 } } zType = __ccgo_ts + 1138 @@ -186053,24 +187894,24 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) zType = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)) } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+30216, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+30362, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) } if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbUnique == 0 || Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) != 0 { if bDesc != 0 { - v2 = __ccgo_ts + 29952 + v2 = __ccgo_ts + 30098 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } zOrder = v2 - zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+30236, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) + zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+30382, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) } - zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+30257, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) - zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+30290, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) + zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+30403, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) + zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+30436, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) if zRet == uintptr(0) || zImpPK == uintptr(0) || zImpCols == uintptr(0) || zWhere == uintptr(0) { rc = int32(SQLITE_NOMEM) } - zCom = __ccgo_ts + 15338 - zAnd = __ccgo_ts + 22408 + zCom = __ccgo_ts + 15431 + zAnd = __ccgo_ts + 22553 nBind++ } rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -186116,7 +187957,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr _, _, _, _ = i, zCol, zList, zS zList = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zS = __ccgo_ts + 1650 + zS = __ccgo_ts + 1664 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -186124,11 +187965,11 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed + uintptr(i))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = Xsqlite3_mprintf(tls, __ccgo_ts+30314, libc.VaList(bp+8, zList, zS, zObj, zCol)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30460, libc.VaList(bp+8, zList, zS, zObj, zCol)) } else { - zList = Xsqlite3_mprintf(tls, __ccgo_ts+30326, libc.VaList(bp+8, zList, zS)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30472, libc.VaList(bp+8, zList, zS)) } - zS = __ccgo_ts + 15338 + zS = __ccgo_ts + 15431 if zList == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) break @@ -186140,7 +187981,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } /* For a table with implicit rowids, append "old._rowid_" to the list. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30335, libc.VaList(bp+8, zList, zObj)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30481, libc.VaList(bp+8, zList, zObj)) } } return zList @@ -186166,27 +188007,27 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _ = i, i1, zCol, zList, zSep, zSep1 zList = uintptr(0) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30350, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30496, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30364, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) - zSep = __ccgo_ts + 22408 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30510, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) + zSep = __ccgo_ts + 22553 } goto _1 _1: ; i++ } - zList = _rbuMPrintf(tls, p, __ccgo_ts+30376, libc.VaList(bp+8, zList)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30522, libc.VaList(bp+8, zList)) } else { - zSep1 = __ccgo_ts + 1650 + zSep1 = __ccgo_ts + 1664 i1 = 0 for { if !(i1 < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -186194,8 +188035,8 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i1))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i1)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+30426, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) - zSep1 = __ccgo_ts + 22408 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30572, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) + zSep1 = __ccgo_ts + 22553 } goto _2 _2: @@ -186218,7 +188059,7 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { // */ func _rbuBadControlError(tls *libc.TLS, p uintptr) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30439, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30585, 0) } // C documentation @@ -186252,7 +188093,7 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt if int32(libc.Xstrlen(tls, zMask)) != (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { _rbuBadControlError(tls, p) } else { - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -186260,16 +188101,16 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt } c = *(*int8)(unsafe.Pointer(zMask + uintptr(*(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(i)*4))))) if int32(c) == int32('x') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30426, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 15338 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30572, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15431 } else { if int32(c) == int32('d') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30465, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 15338 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30611, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15431 } else { if int32(c) == int32('f') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30495, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 15338 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30641, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15431 } } } @@ -186353,16 +188194,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _, _ = z, zCol, zDesc, zIdx, zOrig, zSep, v1 z = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zSep = __ccgo_ts + 30532 + zSep = __ccgo_ts + 30678 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_list = (pIter->zTbl) */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA index_xinfo = */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29684, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29830, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zOrig = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) - if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16933) == 0 { + if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+17020) == 0 { zIdx = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29712, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29858, libc.VaList(bp+24, zIdx))) } break } @@ -186373,16 +188214,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { /* int iCid = sqlite3_column_int(pXInfo, 0); */ zCol = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(2)) if Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) != 0 { - v1 = __ccgo_ts + 29952 + v1 = __ccgo_ts + 30098 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } zDesc = v1 - z = _rbuMPrintf(tls, p, __ccgo_ts+30545, libc.VaList(bp+24, z, zSep, zCol, zDesc)) - zSep = __ccgo_ts + 15338 + z = _rbuMPrintf(tls, p, __ccgo_ts+30691, libc.VaList(bp+24, z, zSep, zCol, zDesc)) + zSep = __ccgo_ts + 15431 } } - z = _rbuMPrintf(tls, p, __ccgo_ts+30556, libc.VaList(bp+24, z)) + z = _rbuMPrintf(tls, p, __ccgo_ts+30702, libc.VaList(bp+24, z)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } return z @@ -186422,13 +188263,13 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* SELECT name ... WHERE rootpage = $tnum */ zIdx = uintptr(0) /* Name of PK index */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA main.index_xinfo = $zIdx */ - zComma = __ccgo_ts + 1650 + zComma = __ccgo_ts + 1664 zCols = uintptr(0) /* Used to build up list of table cols */ zPk = uintptr(0) /* Used to build up table PK declaration */ /* Figure out the name of the primary key index for the current table. ** This is needed for the argument to "PRAGMA index_xinfo". Set ** zIdx to point to a nul-terminated string containing this name. */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30560) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30706) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), tnum) if int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -186436,7 +188277,7 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { } } if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29712, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29858, libc.VaList(bp+24, zIdx))) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { @@ -186445,21 +188286,21 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) bDesc = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(4)) - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30610, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30756, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) if bDesc != 0 { - v1 = __ccgo_ts + 29952 + v1 = __ccgo_ts + 30098 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - zPk = _rbuMPrintf(tls, p, __ccgo_ts+30632, libc.VaList(bp+24, zPk, zComma, iCid, v1)) - zComma = __ccgo_ts + 15338 + zPk = _rbuMPrintf(tls, p, __ccgo_ts+30778, libc.VaList(bp+24, zPk, zComma, iCid, v1)) + zComma = __ccgo_ts + 15431 } } - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30642, libc.VaList(bp+24, zCols)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30788, libc.VaList(bp+24, zCols)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30657, libc.VaList(bp+24, zCols, zPk)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30803, libc.VaList(bp+24, zCols, zPk)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, 0, 0)) } } @@ -186494,30 +188335,30 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { _, _, _, _, _, _, _, _, _ = iCol, tnum, zCol, zComma, zPk, zPk1, zSql, v2, v3 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { tnum = (*TRbuObjIter)(unsafe.Pointer(pIter)).FiTnum - zComma = __ccgo_ts + 1650 + zComma = __ccgo_ts + 1664 zSql = uintptr(0) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, 0, int32(1))) iCol = 0 for { if !((*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } - zPk = __ccgo_ts + 1650 + zPk = __ccgo_ts + 1664 zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCol)*8)) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_IPK) && *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(iCol))) != 0 { /* If the target table column is an "INTEGER PRIMARY KEY", add ** "PRIMARY KEY" to the imposter table column declaration. */ - zPk = __ccgo_ts + 30719 + zPk = __ccgo_ts + 30865 } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iCol))) != 0 { - v2 = __ccgo_ts + 30732 + v2 = __ccgo_ts + 30878 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30742, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) - zComma = __ccgo_ts + 15338 + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30888, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) + zComma = __ccgo_ts + 15431 goto _1 _1: ; @@ -186526,17 +188367,17 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { zPk1 = _rbuWithoutRowidPK(tls, p, pIter) if zPk1 != 0 { - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30769, libc.VaList(bp+16, zSql, zPk1)) + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30915, libc.VaList(bp+16, zSql, zPk1)) } } - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, int32(1), tnum)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, int32(1), tnum)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { - v3 = __ccgo_ts + 30776 + v3 = __ccgo_ts + 30922 } else { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30791, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, 0, 0)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30937, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, 0, 0)) } } @@ -186562,7 +188403,7 @@ func _rbuObjIterPrepareTmpInsert(tls *libc.TLS, p uintptr, pIter uintptr, zColli bRbuRowid = libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) zBind = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1)+bRbuRowid) if zBind != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30823, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30969, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) } } @@ -186608,7 +188449,7 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt *(*int32)(unsafe.Pointer(bp + 8)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc zRet = uintptr(0) if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30880) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+31026) } if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3_bind_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx, -int32(1), libc.UintptrFromInt32(0)) @@ -186777,7 +188618,7 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zIdx = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx zLimit = uintptr(0) if nOffset != 0 { - zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30946, libc.VaList(bp+40, nOffset)) + zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+31092, libc.VaList(bp+40, nOffset)) if !(zLimit != 0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } @@ -186794,18 +188635,18 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zCollist = _rbuObjIterGetIndexCols(tls, p, pIter, bp, bp+8, bp+16, bp+24) zBind = _rbuObjIterGetBindlist(tls, p, *(*int32)(unsafe.Pointer(bp + 24))) /* Create the imposter table used to write to this index. */ - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, 0, int32(1))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30966, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31112, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, 0, 0)) /* Create the statement to insert index entries */ (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = *(*int32)(unsafe.Pointer(bp + 24)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31031, libc.VaList(bp+40, zTbl, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31177, libc.VaList(bp+40, zTbl, zBind))) } /* And to delete index entries */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31067, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31213, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) } /* Create the SELECT statement to read keys in sorted order */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -186820,26 +188661,26 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } if zStart != 0 { if zPart != 0 { - v2 = __ccgo_ts + 31101 + v2 = __ccgo_ts + 31247 } else { - v2 = __ccgo_ts + 31105 + v2 = __ccgo_ts + 31251 } v1 = v2 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+31111, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+31257, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) Xsqlite3_free(tls, zStart) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+31172, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+31318, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) } else { if zPart != 0 { - v3 = __ccgo_ts + 31101 + v3 = __ccgo_ts + 31247 } else { - v3 = __ccgo_ts + 31105 + v3 = __ccgo_ts + 31251 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+31233, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+31379, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -186858,62 +188699,62 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zTbl1 = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl /* Imposter table name */ zBindings = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+bRbuRowid) zWhere1 = _rbuObjIterGetWhere(tls, p, pIter) - zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6944) - zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6940) + zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+7008) + zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+7004) zCollist = _rbuObjIterGetCollist(tls, p, pIter) (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol /* Create the imposter table or tables (if required). */ _rbuCreateImposterTable(tls, p, pIter) _rbuCreateImposterTable2(tls, p, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) { - v4 = __ccgo_ts + 1650 + v4 = __ccgo_ts + 1664 } else { - v4 = __ccgo_ts + 31392 + v4 = __ccgo_ts + 31538 } zWrite = v4 /* Create the INSERT statement to write to the target PK b-tree */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if bRbuRowid != 0 { - v5 = __ccgo_ts + 31401 + v5 = __ccgo_ts + 31547 } else { - v5 = __ccgo_ts + 1650 + v5 = __ccgo_ts + 1664 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31411, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31557, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) } /* Create the DELETE statement to write to the target PK b-tree. ** Because it only performs INSERT operations, this is not required for ** an rbu vacuum handle. */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31447, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31593, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) } if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zRbuRowid = __ccgo_ts + 1650 + zRbuRowid = __ccgo_ts + 1664 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zRbuRowid = __ccgo_ts + 31475 + zRbuRowid = __ccgo_ts + 31621 } /* Create the rbu_tmp_xxx table and the triggers to populate it. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - v6 = __ccgo_ts + 31487 + v6 = __ccgo_ts + 31633 } else { - v6 = __ccgo_ts + 1650 + v6 = __ccgo_ts + 1664 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31504, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31580, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31650, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31726, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31879, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32025, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) } _rbuObjIterPrepareTmpInsert(tls, p, pIter, zCollist, zRbuRowid) } /* Create the SELECT statement to read keys from data_xxx */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zRbuRowid1 = __ccgo_ts + 1650 + zRbuRowid1 = __ccgo_ts + 1664 zStart1 = uintptr(0) zOrder = uintptr(0) if bRbuRowid != 0 { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v7 = __ccgo_ts + 31978 + v7 = __ccgo_ts + 32124 } else { - v7 = __ccgo_ts + 31988 + v7 = __ccgo_ts + 32134 } zRbuRowid1 = v7 } @@ -186926,28 +188767,28 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } } if bRbuRowid != 0 { - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+30035, 0) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+30181, 0) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1650, __ccgo_ts+15338, __ccgo_ts+1650) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1664, __ccgo_ts+15431, __ccgo_ts+1664) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v8 = __ccgo_ts + 31999 + v8 = __ccgo_ts + 32145 } else { - v8 = __ccgo_ts + 1650 + v8 = __ccgo_ts + 1664 } if zStart1 != 0 { v9 = zStart1 } else { - v9 = __ccgo_ts + 1650 + v9 = __ccgo_ts + 1664 } if zOrder != 0 { - v10 = __ccgo_ts + 23602 + v10 = __ccgo_ts + 23747 } else { - v10 = __ccgo_ts + 1650 + v10 = __ccgo_ts + 1664 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+32005, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+32151, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) } Xsqlite3_free(tls, zStart1) Xsqlite3_free(tls, zOrder) @@ -187033,11 +188874,11 @@ func _rbuGetUpdateStmt(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintptr, p (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpNext = (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate = pUp if zSet != 0 { - zPrefix = __ccgo_ts + 1650 + zPrefix = __ccgo_ts + 1664 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { - zPrefix = __ccgo_ts + 31392 + zPrefix = __ccgo_ts + 31538 } - zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+32053, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) + zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+32199, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pUp+8, p+64, zUpdate) *(*uintptr)(unsafe.Pointer(ppStmt)) = (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate } @@ -187064,7 +188905,7 @@ func _rbuOpenDbhandle(tls *libc.TLS, p uintptr, zName uintptr, bUseVfs int32) (r } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_open_v2(tls, zName, bp, flags, v1) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) Xsqlite3_close(tls, *(*uintptr)(unsafe.Pointer(bp))) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) } @@ -187111,7 +188952,7 @@ func _rbuLoadState(tls *libc.TLS, p uintptr) (r uintptr) { if pRet == uintptr(0) { return uintptr(0) } - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+32083, libc.VaList(bp+24, p+48))) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+32229, libc.VaList(bp+24, p+48))) for *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { switch Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) { case int32(RBU_STATE_STAGE): @@ -187170,27 +189011,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu = _rbuOpenDbhandle(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, int32(1)) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain = dbMain if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6933, int32(SQLITE_FCNTL_RBUCNT), p) + Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6997, int32(SQLITE_FCNTL_RBUCNT), p) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState == uintptr(0) { - zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6933) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+32113, libc.VaList(bp+8, zFile, zFile)) + zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6997) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+32259, libc.VaList(bp+8, zFile, zFile)) } } /* If using separate RBU and state databases, attach the state database to ** the RBU db handle now. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState != 0 { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32141, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) - libc.X__builtin___memcpy_chk(tls, p+48, __ccgo_ts+3420, uint64(4), libc.X__builtin_object_size(tls, p+48, 0)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32287, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) + libc.X__builtin___memcpy_chk(tls, p+48, __ccgo_ts+3484, uint64(4), libc.X__builtin_object_size(tls, p+48, 0)) } else { - libc.X__builtin___memcpy_chk(tls, p+48, __ccgo_ts+6933, uint64(4), libc.X__builtin_object_size(tls, p+48, 0)) + libc.X__builtin___memcpy_chk(tls, p+48, __ccgo_ts+6997, uint64(4), libc.X__builtin_object_size(tls, p+48, 0)) } /* If it has not already been created, create the rbu_state table */ - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32159, libc.VaList(bp+8, p+48)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32305, libc.VaList(bp+8, p+48)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { bOpen = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FnRbu = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FpRbuFd = uintptr(0) - rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6933, int32(SQLITE_FCNTL_RBUCNT), p) + rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6997, int32(SQLITE_FCNTL_RBUCNT), p) if rc != int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc } @@ -187223,10 +189064,10 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) return } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32225, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32371, 0) } else { zExtra = uintptr(0) - if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24991, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { + if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+25114, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { zExtra = (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu + 5 for *(*int8)(unsafe.Pointer(zExtra)) != 0 { v1 = zExtra @@ -187240,16 +189081,16 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if zExtra == uintptr(0) { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } else { - v2 = __ccgo_ts + 32257 + v2 = __ccgo_ts + 32403 } if zExtra == uintptr(0) { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } else { v3 = zExtra } - zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+32259, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6933), v2, v3)) + zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+32405, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6997), v2, v3)) if zTarget == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) return @@ -187260,27 +189101,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32291, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32437, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32306, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32452, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32323, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32469, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, int32(SQLITE_FCNTL_RBU), p) } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32339, 0) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32485, 0) /* Mark the database file just opened as an RBU target database. If ** this call returns SQLITE_NOTFOUND, then the RBU vfs is not in use. ** This is an error. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6933, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6997, int32(SQLITE_FCNTL_RBU), p) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32367, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32513, 0) } } @@ -187330,7 +189171,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxShmMap})))(tls, pDb, 0, libc.Int32FromInt32(32)*libc.Int32FromInt32(1024), 0, bp) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - iRet = int64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))<= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+33367, zState+uintptr(n-int32(7)), uint64(7)) { + if n >= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+33513, zState+uintptr(n-int32(7)), uint64(7)) { return _rbuMisuseError(tls) } } @@ -188550,7 +190391,7 @@ func _rbuEditErrmsg(tls *libc.TLS, p uintptr) { if !(uint64(i) < nErrmsg-uint64(8)) { break } - if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31392, uint64(8)) == 0 { + if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31538, uint64(8)) == 0 { nDel = int32(8) for int32(*(*int8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) >= int32('0') && int32(*(*int8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) <= int32('9') { nDel++ @@ -188578,7 +190419,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { if p != 0 { /* Commit the transaction to the *-oal file. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+15242, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+15335, uintptr(0), uintptr(0), p+64) } /* Sync the db file if currently doing an incremental checkpoint */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { @@ -188587,7 +190428,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { } _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+15242, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+15335, uintptr(0), uintptr(0), p+64) } /* Close any open statement handles. */ _rbuObjIterFinalize(tls, p+80) @@ -188597,7 +190438,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { ** specifying the current target and state databases to start a new ** vacuum from scratch. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu != 0 { - rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33375, uintptr(0), uintptr(0), uintptr(0)) + rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33521, uintptr(0), uintptr(0), uintptr(0)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_DONE) && rc2 != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc2 } @@ -188698,7 +190539,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+15242, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+15335, uintptr(0), uintptr(0), uintptr(0)) } } /* Sync the db file */ @@ -188711,19 +190552,19 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { rc = (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+15242, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+15335, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 15227 + v1 = __ccgo_ts + 15320 } else { - v1 = __ccgo_ts + 33327 + v1 = __ccgo_ts + 33473 } zBegin = v1 rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, zBegin, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33327, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33473, uintptr(0), uintptr(0), uintptr(0)) } } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -189289,7 +191130,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r rc = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xControl})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, int32(SQLITE_FCNTL_ZIPVFS), bp) if rc == SQLITE_OK { rc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33402, 0) + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33548, 0) } else { if rc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpTargetFd = p @@ -189315,7 +191156,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r if rc == SQLITE_OK && op == int32(SQLITE_FCNTL_VFSNAME) { pRbuVfs = (*Trbu_file)(unsafe.Pointer(p)).FpRbuVfs zIn = *(*uintptr)(unsafe.Pointer(pArg)) - zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33425, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) + zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33571, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) *(*uintptr)(unsafe.Pointer(pArg)) = zOut if zOut == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -189510,7 +191351,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag if pDb != 0 { if (*Trbu_file)(unsafe.Pointer(pDb)).FpRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FeStage == int32(RBU_STAGE_OAL) { if (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FzTarget == uintptr(0) { - zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6933) + zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6997) zOpen = Xsqlite3_filename_wal(tls, zOpen) } nOpen = libc.Xstrlen(tls, zOpen) @@ -189524,7 +191365,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag } else { (*Trbu_file)(unsafe.Pointer(pFd)).FpRbu = (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).FpRbu } - if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33436, 0) != 0 { + if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33582, 0) != 0 { oflags = libc.Int32FromInt32(SQLITE_OPEN_TEMP_DB) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_EXCLUSIVE) | libc.Int32FromInt32(SQLITE_OPEN_DELETEONCLOSE) zOpen = uintptr(0) } @@ -190077,7 +191918,7 @@ func _statConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint _sqlite3TokenInit(tls, bp, *(*uintptr)(unsafe.Pointer(argv + 3*8))) iDb = _sqlite3FindDb(tls, db, bp) if iDb < 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12539, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12664, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) return int32(SQLITE_ERROR) } } else { @@ -190467,6 +192308,7 @@ func _statDecodePage(tls *libc.TLS, pBt uintptr, p uintptr) (r int32) { } } return SQLITE_OK + goto statPageIsCorrupt statPageIsCorrupt: ; (*TStatPage)(unsafe.Pointer(p)).Fflags = uint8(0) @@ -190557,6 +192399,7 @@ func _statNext(tls *libc.TLS, pCursor uintptr) (r int32) { pPager = _sqlite3BtreePager(tls, pBt) Xsqlite3_free(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath) (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = uintptr(0) + goto statNextRestart statNextRestart: ; if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage < 0 { @@ -190574,7 +192417,7 @@ statNextRestart: (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiPgno = iRoot (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v1 = Xsqlite3_mprintf(tls, __ccgo_ts+4033, 0) + v1 = Xsqlite3_mprintf(tls, __ccgo_ts+4097, 0) z = v1 (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FzPath = v1 if z == uintptr(0) { @@ -190612,8 +192455,8 @@ statNextRestart: if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { (*TStatCursor)(unsafe.Pointer(pCsr)).FzName = Xsqlite3_column_text(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FpStmt, 0) (*TStatCursor)(unsafe.Pointer(pCsr)).FiPageno = *(*Tu32)(unsafe.Pointer((*TStatCell)(unsafe.Pointer(pCell)).FaOvfl + uintptr(iOvfl)*4)) - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33447 - v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33456, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33593 + v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33602, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) z = v2 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v2 if z == uintptr(0) { @@ -190642,7 +192485,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage++ if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage >= int32(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(222551)) + return _sqlite3CorruptError(tls, int32(224206)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -190653,7 +192496,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnPage++ (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33468, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) + v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33614, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) z = v4 (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FzPath = v4 if z == uintptr(0) { @@ -190676,13 +192519,13 @@ statNextRestart: case int32(0x05): /* table internal */ fallthrough case int32(0x02): /* index internal */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33476 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33622 case int32(0x0D): /* table leaf */ fallthrough case int32(0x0A): /* index leaf */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33485 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33631 default: - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33490 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33636 break } *(*int32)(unsafe.Pointer(pCsr + 2108)) += (*TStatPage)(unsafe.Pointer(p1)).FnCell @@ -190691,7 +192534,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnMxPayload = (*TStatPage)(unsafe.Pointer(p1)).FnMxPayload } if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) + v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) z = v5 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v5 if z == uintptr(0) { @@ -190780,12 +192623,12 @@ func _statFilter(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uintptr, a (*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg = uint8(0) } pSql = Xsqlite3_str_new(tls, (*TStatTable)(unsafe.Pointer(pTab)).Fdb) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33500, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33646, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) if zName != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33655, libc.VaList(bp+8, zName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33801, libc.VaList(bp+8, zName)) } if idxNum&int32(0x08) != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33669, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33815, 0) } zSql = Xsqlite3_str_finish(tls, pSql) if zSql == uintptr(0) { @@ -190862,7 +192705,7 @@ func _statRowid(tls *libc.TLS, pCursor uintptr, pRowid uintptr) (r int32) { // ** Invoke this routine to register the "dbstat" virtual table module // */ func _sqlite3DbstatRegister(tls *libc.TLS, db uintptr) (r int32) { - return Xsqlite3_create_module(tls, db, __ccgo_ts+33684, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) + return Xsqlite3_create_module(tls, db, __ccgo_ts+33830, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) } var _dbstat_module = Tsqlite3_module{} @@ -192133,20 +193976,20 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, *(*uintptr)(unsafe.Pointer(pazDflt)) = uintptr(0) } nThis = _sqlite3Strlen30(tls, zThis) - if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11930, zThis) { + if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+12055, zThis) { rc = Xsqlite3_table_column_metadata(tls, db, zDb, zThis, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { /* For sqlite_stat1, pretend that (tbl,idx) is the PRIMARY KEY. */ - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33691, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33837, 0) } else { if rc == int32(SQLITE_ERROR) { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1650, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1664, 0) } else { return rc } } } else { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33812, libc.VaList(bp+16, zDb, zThis)) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33958, libc.VaList(bp+16, zDb, zThis)) } if !(zPragma != 0) { return int32(SQLITE_NOMEM) @@ -192170,7 +194013,7 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, bRowid = 0 } nDbCol += bRowid - nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+30035)) + nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+30181)) rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp))) if rc == SQLITE_OK { nByte = Tsqlite3_int64(uint64(nByte) + uint64(nDbCol)*(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(2)+libc.Uint64FromInt64(1)+libc.Uint64FromInt32(1)+libc.Uint64FromInt32(1))) @@ -192194,8 +194037,8 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, } i = 0 if bRowid != 0 { - nName = libc.Xstrlen(tls, __ccgo_ts+30035) - libc.X__builtin___memcpy_chk(tls, pAlloc, __ccgo_ts+30035, nName+uint64(1), libc.X__builtin_object_size(tls, pAlloc, 0)) + nName = libc.Xstrlen(tls, __ccgo_ts+30181) + libc.X__builtin___memcpy_chk(tls, pAlloc, __ccgo_ts+30181, nName+uint64(1), libc.X__builtin_object_size(tls, pAlloc, 0)) *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)) = pAlloc pAlloc += uintptr(nName + uint64(1)) *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) = uint8(1) @@ -192287,7 +194130,7 @@ func _sessionInitTable(tls *libc.TLS, pSession uintptr, pTab uintptr, db uintptr ; i++ } - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11930, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+12055, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 = int32(1) } if pSession != 0 && (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize != 0 { @@ -192576,10 +194419,10 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin _, _, _, _ = ii, zDflt, zSep, v2 *(*TSessionBuffer)(unsafe.Pointer(bp)) = TSessionBuffer{} *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK - zSep = __ccgo_ts + 11550 + zSep = __ccgo_ts + 11675 ii = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33841, 0) + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33987, 0) ii = 0 for { if !(ii < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol) { @@ -192588,11 +194431,11 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin if *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) != 0 { v2 = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) } else { - v2 = __ccgo_ts + 1651 + v2 = __ccgo_ts + 1665 } zDflt = v2 - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5424, libc.VaList(bp+32, zSep, zDflt)) - zSep = __ccgo_ts + 15338 + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5488, libc.VaList(bp+32, zSep, zDflt)) + zSep = __ccgo_ts + 15431 goto _1 _1: ; @@ -192910,7 +194753,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u rc = int32(SQLITE_NOMEM) goto error_out } - _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1650, uint8(0), libc.UintptrFromInt32(0)) + _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1664, uint8(0), libc.UintptrFromInt32(0)) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpZeroBlob = p } } @@ -193027,6 +194870,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u } } /* If an error has occurred, mark the session object as failed. */ + goto error_out error_out: ; if (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 != 0 { @@ -193230,7 +195074,7 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr var i int32 var zRet, zSep uintptr _, _, _ = i, zRet, zSep - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 zRet = uintptr(0) i = 0 for { @@ -193238,8 +195082,8 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr break } if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33848, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 22408 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33994, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 22553 if zRet == uintptr(0) { break } @@ -193258,7 +195102,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint var bHave, i int32 var zRet, zSep uintptr _, _, _, _ = bHave, i, zRet, zSep - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 zRet = uintptr(0) bHave = 0 i = 0 @@ -193268,8 +195112,8 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if int32(*(*Tu8)(unsafe.Pointer(abPK + uintptr(i)))) == 0 { bHave = int32(1) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33882, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 33923 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+34028, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 34069 if zRet == uintptr(0) { break } @@ -193280,7 +195124,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint i++ } if bHave == 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1724, 0) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1784, 0) } return zRet } @@ -193291,12 +195135,12 @@ func _sessionSelectFindNew(tls *libc.TLS, zDb1 uintptr, zDb2 uintptr, bRowid int var zRet, zSel, v1 uintptr _, _, _ = zRet, zSel, v1 if bRowid != 0 { - v1 = __ccgo_ts + 33928 + v1 = __ccgo_ts + 34074 } else { - v1 = __ccgo_ts + 6938 + v1 = __ccgo_ts + 7002 } zSel = v1 - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33939, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+34085, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) return zRet } @@ -193357,11 +195201,11 @@ func _sessionAllCols(tls *libc.TLS, zDb uintptr, pTab uintptr) (r uintptr) { break } if zRet != 0 { - v2 = __ccgo_ts + 15338 + v2 = __ccgo_ts + 15431 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+34018, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+34164, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) if !(zRet != 0) { break } @@ -193389,7 +195233,7 @@ func _sessionDiffFindModified(tls *libc.TLS, pSession uintptr, pTab uintptr, zFr } else { z1 = _sessionAllCols(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, pTab) z2 = _sessionAllCols(tls, zFrom, pTab) - zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+34037, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) + zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+34183, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) if zStmt == uintptr(0) || z1 == uintptr(0) || z2 == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -193489,7 +195333,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if bMismatch != 0 { if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+34094, 0) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+34240, 0) } rc = int32(SQLITE_SCHEMA) } @@ -193515,6 +195359,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u } Xsqlite3_free(tls, zExpr) } + goto diff_out diff_out: ; _sessionPreupdateHooks(tls, pSession) @@ -193820,7 +195665,7 @@ func _sessionAppendInteger(tls *libc.TLS, p uintptr, iVal int32, pRc uintptr) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* aBuf at bp+0 */ [24]int8 - Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5486, libc.VaList(bp+32, iVal)) + Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5550, libc.VaList(bp+32, iVal)) _sessionAppendStr(tls, p, bp, pRc) } @@ -194111,23 +195956,23 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt _, _, _, _, _, _, _ = i, nSql, zCols, zSep, zSql, v1, v3 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK zSql = uintptr(0) - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 if bRowid != 0 { - v1 = __ccgo_ts + 33928 + v1 = __ccgo_ts + 34074 } else { - v1 = __ccgo_ts + 6938 + v1 = __ccgo_ts + 7002 } zCols = v1 nSql = -int32(1) *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 24)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 40)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+34121, bp) - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11930, zTab) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+34125, bp) - _sessionAppendStr(tls, bp+24, __ccgo_ts+34149, bp) - _sessionAppendStr(tls, bp+40, __ccgo_ts+34158, bp) - zCols = __ccgo_ts + 34203 + _sessionAppendStr(tls, bp+8, __ccgo_ts+34267, bp) + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+12055, zTab) { + _sessionAppendStr(tls, bp+8, __ccgo_ts+34271, bp) + _sessionAppendStr(tls, bp+24, __ccgo_ts+34295, bp) + _sessionAppendStr(tls, bp+40, __ccgo_ts+34304, bp) + zCols = __ccgo_ts + 34349 } else { i = 0 for { @@ -194137,11 +195982,11 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { _sessionAppendStr(tls, bp+24, zSep, bp) _sessionAppendStr(tls, bp+40, zSep, bp) - zSep = __ccgo_ts + 15338 + zSep = __ccgo_ts + 15431 _sessionAppendIdent(tls, bp+24, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), bp) - _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+34217, libc.VaList(bp+64, i+int32(1))) + _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+34363, libc.VaList(bp+64, i+int32(1))) } else { - _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+34221, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+34367, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) } goto _2 _2: @@ -194153,9 +195998,9 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if bIgnoreNoop != 0 { v3 = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf } else { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+34248, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+34394, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) if zSql == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } @@ -194296,7 +196141,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, if (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc != 0 { return (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc } - *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+34290, uintptr(0), uintptr(0), uintptr(0)) + *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+34436, uintptr(0), uintptr(0), uintptr(0)) if *(*int32)(unsafe.Pointer(bp + 16)) != SQLITE_OK { return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -194402,7 +196247,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } } Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf) - Xsqlite3_exec(tls, db, __ccgo_ts+34310, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34456, uintptr(0), uintptr(0), uintptr(0)) Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db)) return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -194819,7 +196664,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, int32(9)) if rc == SQLITE_OK { if (*TSessionInput)(unsafe.Pointer(pIn)).FiNext >= (*TSessionInput)(unsafe.Pointer(pIn)).FnData { - rc = _sqlite3CorruptError(tls, int32(226700)) + rc = _sqlite3CorruptError(tls, int32(228355)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -194843,7 +196688,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, *(*int32)(unsafe.Pointer(bp))) if rc == SQLITE_OK { if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext { - rc = _sqlite3CorruptError(tls, int32(226720)) + rc = _sqlite3CorruptError(tls, int32(228375)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -194858,7 +196703,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap } if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) { if (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext < int32(8) { - rc = _sqlite3CorruptError(tls, int32(226730)) + rc = _sqlite3CorruptError(tls, int32(228385)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -194914,7 +196759,7 @@ func _sessionChangesetBufferTblhdr(tls *libc.TLS, pIn uintptr, pnByte uintptr) ( ** large value for nCol may cause nRead to wrap around and become ** negative. Leading to a crash. */ if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > int32(65536) { - rc = _sqlite3CorruptError(tls, int32(226778)) + rc = _sqlite3CorruptError(tls, int32(228433)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -195019,7 +196864,7 @@ func _sessionChangesetReadTblhdr(tls *libc.TLS, p uintptr) (r int32) { (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FnBuf = 0 _sessionBufferGrow(tls, p+72, int64(nByte), bp) } else { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(226866)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(228521)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -195090,12 +196935,12 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK { return (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc } + _sessionDiscardData(tls, p) + (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext /* If the iterator is already at the end of the changeset, return DONE. */ if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext >= (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FnData { return int32(SQLITE_DONE) } - _sessionDiscardData(tls, p) - (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext v3 = p + 8 v2 = *(*int32)(unsafe.Pointer(v3)) *(*int32)(unsafe.Pointer(v3))++ @@ -195125,7 +196970,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FzTab == uintptr(0) || (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset != 0 && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbInvert != 0 { /* The first record in the changeset is not a table header. Must be a ** corrupt changeset. */ - v7 = _sqlite3CorruptError(tls, int32(226952)) + v7 = _sqlite3CorruptError(tls, int32(228607)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -195135,7 +196980,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = int32(*(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr(v8)))) if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_DELETE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_INSERT) { - v10 = _sqlite3CorruptError(tls, int32(226958)) + v10 = _sqlite3CorruptError(tls, int32(228613)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -195214,7 +197059,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if *(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i+(*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*8)) if *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) == uintptr(0) { - v16 = _sqlite3CorruptError(tls, int32(227002)) + v16 = _sqlite3CorruptError(tls, int32(228657)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -195624,7 +197469,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(227367)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(229022)) goto finished_invert } if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { @@ -195644,6 +197489,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } + goto finished_invert finished_invert: ; Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf) @@ -195826,18 +197672,18 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 } if pUp == uintptr(0) { nByte = int32(uint64(24) * uint64(nU32) * uint64(4)) - bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11930) == 0) + bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+12055) == 0) pUp = Xsqlite3_malloc(tls, nByte) if pUp == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } else { - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 libc.X__builtin___memset_chk(tls, bp+8, 0, uint64(16), libc.X__builtin_object_size(tls, bp+8, 0)) (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask = pUp + 1*24 libc.X__builtin___memcpy_chk(tls, (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, uint64(nU32)*uint64(4), libc.X__builtin_object_size(tls, (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask, 0)) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34328, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34474, bp) _sessionAppendIdent(tls, bp+8, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34341, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34487, bp) /* Create the assignments part of the UPDATE */ ii = 0 for { @@ -195847,9 +197693,9 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if int32(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii)))) == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol+ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34347, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34493, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(1), bp) - zSep = __ccgo_ts + 15338 + zSep = __ccgo_ts + 15431 } goto _2 _2: @@ -195857,8 +197703,8 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 ii++ } /* Create the WHERE clause part of the UPDATE */ - zSep = __ccgo_ts + 1650 - _sessionAppendStr(tls, bp+8, __ccgo_ts+34352, bp) + zSep = __ccgo_ts + 1664 + _sessionAppendStr(tls, bp+8, __ccgo_ts+34498, bp) ii = 0 for { if !(ii < (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol) { @@ -195867,13 +197713,13 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if *(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii))) != 0 || bPatchset == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr(ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) if bStat1 != 0 && ii == int32(1) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+34360, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34506, bp) } else { _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34435, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34581, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(2), bp) } - zSep = __ccgo_ts + 22408 + zSep = __ccgo_ts + 22553 } goto _3 _3: @@ -195956,13 +197802,13 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in var _ /* buf at bp+8 */ TSessionBuffer var _ /* rc at bp+0 */ int32 _, _, _ = i, nPk, zSep - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} nPk = 0 - _sessionAppendStr(tls, bp+8, __ccgo_ts+34441, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34587, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34352, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34498, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -195972,9 +197818,9 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in nPk++ _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34347, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34493, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 22408 + zSep = __ccgo_ts + 22553 } goto _1 _1: @@ -195982,10 +197828,10 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in i++ } if nPk < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol { - _sessionAppendStr(tls, bp+8, __ccgo_ts+34459, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34605, bp) _sessionAppendInteger(tls, bp+8, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol+int32(1), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33923, bp) - zSep = __ccgo_ts + 1650 + _sessionAppendStr(tls, bp+8, __ccgo_ts+34069, bp) + zSep = __ccgo_ts + 1664 i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -195994,16 +197840,16 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in if !(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0) { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34435, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34581, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 34467 + zSep = __ccgo_ts + 34613 } goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5454, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5518, bp) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+8, uintptr(0)) @@ -196029,7 +197875,7 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in // */ func _sessionSelectRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r int32) { /* TODO */ - return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6933, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) + return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6997, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) } // C documentation @@ -196052,16 +197898,16 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+34472, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34618, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+22414, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+22559, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } if i != 0 { - _sessionAppendStr(tls, bp+8, __ccgo_ts+15338, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+15431, bp) } _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) goto _1 @@ -196069,19 +197915,19 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34490, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34636, bp) i = int32(1) for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34501, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34647, bp) goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5454, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5518, bp) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+16, uintptr(0)) } @@ -196104,12 +197950,12 @@ func _sessionPrepare(tls *libc.TLS, db uintptr, pp uintptr, zSql uintptr) (r int func _sessionStat1Sql(tls *libc.TLS, db uintptr, p uintptr) (r int32) { var rc int32 _ = rc - rc = _sessionSelectRow(tls, db, __ccgo_ts+11930, p) + rc = _sessionSelectRow(tls, db, __ccgo_ts+12055, p) if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34505) + rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34651) } if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34618) + rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34764) } return rc } @@ -196175,7 +198021,7 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(227849)) + rc = _sqlite3CorruptError(tls, int32(229504)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -196591,7 +198437,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34762, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34908, uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { rc = _sessionBindRow(tls, pIter, __ccgo_fp(Xsqlite3changeset_new), (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FabPK, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) Xsqlite3_bind_int(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol+int32(1), int32(1)) @@ -196604,7 +198450,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34783, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34929, uintptr(0), uintptr(0), uintptr(0)) } } } @@ -196698,10 +198544,10 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbIgnoreNoop = libc.BoolUint8(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_IGNORENOOP) != 0)) Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, db)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34802, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34948, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34828, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34974, uintptr(0), uintptr(0), uintptr(0)) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) @@ -196732,7 +198578,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui ** non-zero, proceed. */ schemaMismatch = libc.BoolInt32(xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { - *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) + *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { rc = int32(SQLITE_NOMEM) break @@ -196742,7 +198588,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } else { nMinCol = 0 Xsqlite3changeset_pk(tls, pIter, bp+152, uintptr(0)) - rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6933, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) + rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6997, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) if rc != SQLITE_OK { break } @@ -196761,18 +198607,18 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol == 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34858, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+35004, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol < *(*int32)(unsafe.Pointer(bp + 136)) { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34902, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+35048, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) } else { if *(*int32)(unsafe.Pointer(bp + 136)) < nMinCol || libc.Xmemcmp(tls, (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FabPK, *(*uintptr)(unsafe.Pointer(bp + 152)), uint64(*(*int32)(unsafe.Pointer(bp + 136)))) != 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34973, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+35119, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol = *(*int32)(unsafe.Pointer(bp + 136)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11930) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+12055) { v2 = _sessionStat1Sql(tls, db, bp+8) rc = v2 if v2 != 0 { @@ -196829,13 +198675,13 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } } } - Xsqlite3_exec(tls, db, __ccgo_ts+35033, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+35179, uintptr(0), uintptr(0), uintptr(0)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+35063, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+35209, uintptr(0), uintptr(0), uintptr(0)) } else { - Xsqlite3_exec(tls, db, __ccgo_ts+35087, uintptr(0), uintptr(0), uintptr(0)) - Xsqlite3_exec(tls, db, __ccgo_ts+35063, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+35233, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+35209, uintptr(0), uintptr(0), uintptr(0)) } } if rc == SQLITE_OK && bPatchset == 0 && (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbRebase != 0 { @@ -196927,6 +198773,7 @@ type Tsqlite3_changegroup1 = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -197283,116 +199130,143 @@ func _sessionChangesetExtendRecord(tls *libc.TLS, pGrp uintptr, pTab uintptr, nC // C documentation // // /* -// ** Add all changes in the changeset traversed by the iterator passed as -// ** the first argument to the changegroup hash tables. +// ** Locate or create a SessionTable object that may be used to add the +// ** change currently pointed to by iterator pIter to changegroup pGrp. +// ** If successful, set output variable (*ppTab) to point to the table +// ** object and return SQLITE_OK. Otherwise, if some error occurs, return +// ** an SQLite error code and leave (*ppTab) set to NULL. // */ -func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { - bp := tls.Alloc(80) - defer tls.Free(80) - var bPkOnly1, bPkOnly2, iHash, nNew, rc int32 - var pExist, pTab, pp, ppTab uintptr - var _ /* aRec at bp+0 */ uintptr - var _ /* abPK at bp+64 */ uintptr - var _ /* bIndirect at bp+48 */ int32 - var _ /* nCol at bp+40 */ int32 - var _ /* nRec at bp+8 */ int32 - var _ /* op at bp+44 */ int32 - var _ /* pChange at bp+56 */ uintptr - var _ /* rec at bp+16 */ TSessionBuffer - var _ /* zNew at bp+32 */ uintptr - _, _, _, _, _, _, _, _, _ = bPkOnly1, bPkOnly2, iHash, nNew, pExist, pTab, pp, ppTab, rc +func _sessionChangesetFindTable(tls *libc.TLS, pGrp uintptr, zTab uintptr, pIter uintptr, ppTab uintptr) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var nTab, rc int32 + var pTab, ppNew uintptr + var _ /* abPK at bp+0 */ uintptr + var _ /* nCol at bp+8 */ int32 + _, _, _, _ = nTab, pTab, ppNew, rc rc = SQLITE_OK pTab = uintptr(0) - *(*TSessionBuffer)(unsafe.Pointer(bp + 16)) = TSessionBuffer{} - for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { - pExist = uintptr(0) - /* Ensure that only changesets, or only patchsets, but not a mixture - ** of both, are being combined. It is an error to try to combine a - ** changeset and a patchset. */ - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset - } else { - if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { - rc = int32(SQLITE_ERROR) - break - } + nTab = int32(libc.Xstrlen(tls, zTab)) + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(ppTab)) = uintptr(0) + Xsqlite3changeset_pk(tls, pIter, bp, bp+8) + /* Search the list for an existing table */ + pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList + for { + if !(pTab != 0) { + break } - Xsqlite3changeset_op(tls, pIter, bp+32, bp+40, bp+44, bp+48) - if !(pTab != 0) || Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), (*TSessionTable)(unsafe.Pointer(pTab)).FzName) != 0 { - /* Search the list for a matching table */ - nNew = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)))) - Xsqlite3changeset_pk(tls, pIter, bp+64, uintptr(0)) - pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList - for { - if !(pTab != 0) { - break - } - if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), nNew+int32(1)) { - break - } - goto _1 - _1: - ; - pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext - } - if !(pTab != 0) { - pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 40)))+uint64(nNew)+uint64(1)) - if !(pTab != 0) { - rc = int32(SQLITE_NOMEM) - break - } - libc.X__builtin___memset_chk(tls, pTab, 0, uint64(80), libc.X__builtin_object_size(tls, pTab, 0)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 40)) - (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 - libc.X__builtin___memcpy_chk(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp + 64)), uint64(*(*int32)(unsafe.Pointer(bp + 40))), libc.X__builtin_object_size(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, 0)) - (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 40))) - libc.X__builtin___memcpy_chk(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), uint64(nNew+int32(1)), libc.X__builtin_object_size(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, 0)) - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 - rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) - if rc != 0 { - Xsqlite3_free(tls, pTab) - break - } - } - /* The new object must be linked on to the end of the list, not - ** simply added to the start of it. This is to ensure that the - ** tables within the output of sqlite3changegroup_output() are in - ** the right order. */ - ppTab = pGrp + 8 - for { - if !(*(*uintptr)(unsafe.Pointer(ppTab)) != 0) { - break - } - goto _2 - _2: - ; - ppTab = *(*uintptr)(unsafe.Pointer(ppTab)) - } - *(*uintptr)(unsafe.Pointer(ppTab)) = pTab - } - if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*uintptr)(unsafe.Pointer(bp + 64))) != 0) { - rc = int32(SQLITE_SCHEMA) - break - } + if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, nTab+int32(1)) { + break } - if *(*int32)(unsafe.Pointer(bp + 40)) < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol { - rc = _sessionChangesetExtendRecord(tls, pGrp, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*int32)(unsafe.Pointer(bp + 44)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+16) + goto _1 + _1: + ; + pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext + } + /* If one was not found above, create a new table now */ + if !(pTab != 0) { + pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 8)))+uint64(nTab)+uint64(1)) + if !(pTab != 0) { + return int32(SQLITE_NOMEM) + } + libc.X__builtin___memset_chk(tls, pTab, 0, uint64(80), libc.X__builtin_object_size(tls, pTab, 0)) + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 8)) + (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 + libc.X__builtin___memcpy_chk(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp)), uint64(*(*int32)(unsafe.Pointer(bp + 8))), libc.X__builtin_object_size(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, 0)) + (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 8))) + libc.X__builtin___memcpy_chk(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, uint64(nTab+int32(1)), libc.X__builtin_object_size(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, 0)) + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 + rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) if rc != 0 { + Xsqlite3_free(tls, pTab) + return rc + } + } + /* The new object must be linked on to the end of the list, not + ** simply added to the start of it. This is to ensure that the + ** tables within the output of sqlite3changegroup_output() are in + ** the right order. */ + ppNew = pGrp + 8 + for { + if !(*(*uintptr)(unsafe.Pointer(ppNew)) != 0) { break } - *(*uintptr)(unsafe.Pointer(bp)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf - *(*int32)(unsafe.Pointer(bp + 8)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf + goto _2 + _2: + ; + ppNew = *(*uintptr)(unsafe.Pointer(ppNew)) } - if _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pTab) != 0 { - rc = int32(SQLITE_NOMEM) - break + *(*uintptr)(unsafe.Pointer(ppNew)) = pTab + } + /* Check that the table is compatible. */ + if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 8)), *(*uintptr)(unsafe.Pointer(bp))) != 0) { + rc = int32(SQLITE_SCHEMA) + } + *(*uintptr)(unsafe.Pointer(ppTab)) = pTab + return rc +} + +// C documentation +// +// /* +// ** Add the change currently indicated by iterator pIter to the hash table +// ** belonging to changegroup pGrp. +// */ +func _sessionOneChangeToHash(tls *libc.TLS, pGrp uintptr, pIter uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var aRec, pBuf, pExist, pp uintptr + var bPkOnly1, bPkOnly2, iHash, nRec, rc int32 + var _ /* bIndirect at bp+8 */ int32 + var _ /* nCol at bp+0 */ int32 + var _ /* op at bp+4 */ int32 + var _ /* pChange at bp+16 */ uintptr + var _ /* pTab at bp+24 */ uintptr + var _ /* zTab at bp+32 */ uintptr + _, _, _, _, _, _, _, _, _ = aRec, bPkOnly1, bPkOnly2, iHash, nRec, pBuf, pExist, pp, rc + rc = SQLITE_OK + *(*int32)(unsafe.Pointer(bp)) = 0 + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + iHash = 0 + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0) + pExist = uintptr(0) + pp = uintptr(0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0) + aRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FaData + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent+int32(2)) + nRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent - int32(2) + /* Ensure that only changesets, or only patchsets, but not a mixture + ** of both, are being combined. It is an error to try to combine a + ** changeset and a patchset. */ + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset + } else { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { + rc = int32(SQLITE_ERROR) } - iHash = int32(_sessionChangeHash(tls, pTab, libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)), *(*uintptr)(unsafe.Pointer(bp)), (*TSessionTable)(unsafe.Pointer(pTab)).FnChange)) + } + if rc == SQLITE_OK { + *(*uintptr)(unsafe.Pointer(bp + 32)) = uintptr(0) + Xsqlite3changeset_op(tls, pIter, bp+32, bp, bp+4, bp+8) + rc = _sessionChangesetFindTable(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 32)), pIter, bp+24) + } + if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) < (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnCol { + pBuf = pGrp + 16 + rc = _sessionChangesetExtendRecord(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 24)), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), aRec, nRec, pBuf) + aRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FaBuf + nRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FnBuf + } + if rc == SQLITE_OK && _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp + 24))) != 0 { + rc = int32(SQLITE_NOMEM) + } + if rc == SQLITE_OK { /* Search for existing entry. If found, remove it from the hash table. - ** Code below may link it back in. - */ - pp = (*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8 + ** Code below may link it back in. */ + iHash = int32(_sessionChangeHash(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)), aRec, (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnChange)) + pp = (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8 for { if !(*(*uintptr)(unsafe.Pointer(pp)) != 0) { break @@ -197401,30 +199275,54 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase bPkOnly2 = 0 if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 { bPkOnly1 = libc.BoolInt32(int32((*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).Fop) == int32(SQLITE_DELETE)) - bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)) + bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)) } - if _sessionChangeEqual(tls, pTab, bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, *(*uintptr)(unsafe.Pointer(bp))) != 0 { + if _sessionChangeEqual(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, aRec) != 0 { pExist = *(*uintptr)(unsafe.Pointer(pp)) *(*uintptr)(unsafe.Pointer(pp)) = (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry-- + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry-- break } - goto _3 - _3: + goto _1 + _1: ; pp = *(*uintptr)(unsafe.Pointer(pp)) + 24 } - rc = _sessionChangeMerge(tls, pTab, bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 44)), *(*int32)(unsafe.Pointer(bp + 48)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+56) - if rc != 0 { + } + if rc == SQLITE_OK { + rc = _sessionChangeMerge(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 4)), *(*int32)(unsafe.Pointer(bp + 8)), aRec, nRec, bp+16) + } + if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { + (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) + *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 16)) + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry++ + } + if rc == SQLITE_OK { + rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc + } + return rc +} + +// C documentation +// +// /* +// ** Add all changes in the changeset traversed by the iterator passed as +// ** the first argument to the changegroup hash tables. +// */ +func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var rc int32 + var _ /* aRec at bp+0 */ uintptr + var _ /* nRec at bp+8 */ int32 + _ = rc + rc = SQLITE_OK + for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { + rc = _sessionOneChangeToHash(tls, pGrp, pIter, bRebase) + if rc != SQLITE_OK { break } - if *(*uintptr)(unsafe.Pointer(bp + 56)) != 0 { - (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 56)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) - *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 56)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry++ - } } - Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf) if rc == SQLITE_OK { rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc } @@ -197534,11 +199432,11 @@ func Xsqlite3changegroup_new(tls *libc.TLS, pp uintptr) (r int32) { var rc int32 _, _ = p, rc rc = SQLITE_OK /* New object */ - p = Xsqlite3_malloc(tls, int32(32)) + p = Xsqlite3_malloc(tls, int32(48)) if p == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.X__builtin___memset_chk(tls, p, 0, uint64(32), libc.X__builtin_object_size(tls, p, 0)) + libc.X__builtin___memset_chk(tls, p, 0, uint64(48), libc.X__builtin_object_size(tls, p, 0)) } *(*uintptr)(unsafe.Pointer(pp)) = p return rc @@ -197560,7 +199458,7 @@ func Xsqlite3changegroup_schema(tls *libc.TLS, pGrp uintptr, db uintptr, zDb uin ** or after sqlite3changegroup_schema() has already been called. */ rc = int32(SQLITE_MISUSE) } else { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, zDb)) + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, zDb)) if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -197590,6 +199488,19 @@ func Xsqlite3changegroup_add(tls *libc.TLS, pGrp uintptr, nData int32, pData uin return rc } +// C documentation +// +// /* +// ** Add a single change to a changeset-group. +// */ +func Xsqlite3changegroup_add_change(tls *libc.TLS, pGrp uintptr, pIter uintptr) (r int32) { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent == (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc != SQLITE_OK || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbInvert != 0 { + /* Iterator does not point to any valid entry or is an INVERT iterator. */ + return int32(SQLITE_ERROR) + } + return _sessionOneChangeToHash(tls, pGrp, pIter, 0) +} + // C documentation // // /* @@ -197637,6 +199548,7 @@ func Xsqlite3changegroup_delete(tls *libc.TLS, pGrp uintptr) { if pGrp != 0 { Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList) + Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Frec.FaBuf) Xsqlite3_free(tls, pGrp) } } @@ -198001,11 +199913,11 @@ func Xsqlite3rebaser_create(tls *libc.TLS, ppNew uintptr) (r int32) { var rc int32 _, _ = pNew, rc rc = SQLITE_OK - pNew = Xsqlite3_malloc(tls, int32(32)) + pNew = Xsqlite3_malloc(tls, int32(48)) if pNew == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.X__builtin___memset_chk(tls, pNew, 0, uint64(32), libc.X__builtin_object_size(tls, pNew, 0)) + libc.X__builtin___memset_chk(tls, pNew, 0, uint64(48), libc.X__builtin_object_size(tls, pNew, 0)) } *(*uintptr)(unsafe.Pointer(ppNew)) = pNew return rc @@ -198079,6 +199991,7 @@ func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn u func Xsqlite3rebaser_delete(tls *libc.TLS, p uintptr) { if p != 0 { _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.FpList) + Xsqlite3_free(tls, (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.Frec.FaBuf) Xsqlite3_free(tls, p) } } @@ -198710,6 +200623,9 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** sqlite3Fts5ParserARG_STORE Code to store %extra_argument into fts5yypParser // ** sqlite3Fts5ParserARG_FETCH Code to extract %extra_argument from fts5yypParser // ** sqlite3Fts5ParserCTX_* As sqlite3Fts5ParserARG_ except for %extra_context +// ** fts5YYREALLOC Name of the realloc() function to use +// ** fts5YYFREE Name of the free() function to use +// ** fts5YYDYNSTACK True if stack space should be extended on heap // ** fts5YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** fts5YYNSTATE the combined number of states. @@ -198723,6 +200639,8 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** fts5YY_NO_ACTION The fts5yy_action[] code for no-op // ** fts5YY_MIN_REDUCE Minimum value for reduce actions // ** fts5YY_MAX_REDUCE Maximum value for reduce actions +// ** fts5YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** fts5YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type Tfts5YYMINORTYPE = struct { @@ -198749,6 +200667,13 @@ type fts5YYMINORTYPE = Tfts5YYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -199178,8 +201103,9 @@ type fts5yyStackEntry = Tfts5yyStackEntry type Tfts5yyParser1 = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser1 = Tfts5yyParser1 @@ -199187,14 +201113,19 @@ type fts5yyParser1 = Tfts5yyParser1 type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser = Tfts5yyParser /* #include */ +/* For builds that do no have a growable stack, fts5yyGrowStack always +** returns an error. + */ + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3Fts5ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -199209,10 +201140,11 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { var fts5yypParser uintptr _ = fts5yypParser fts5yypParser = fts5yypRawParser - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = fts5yypParser + 16 - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fstateno = uint8(0) - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fmajor = uint8(0) - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = fts5yypParser + 16 + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack = fts5yypParser + 32 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fstateno = uint8(0) + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fmajor = uint8(0) } // C documentation @@ -199232,7 +201164,7 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2424)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -199314,11 +201246,17 @@ func _fts5yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var fts5yytos, pParser uintptr + _, _ = fts5yytos, pParser pParser = p - for (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos > pParser+16 { - _fts5yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling fts5yy_pop_parser_stack() for each + ** element left in the stack */ + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos + for fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yystack { + if int32((*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor) >= int32(fts5YY_MIN_DSTRCTR) { + _fts5yy_destructor(tls, pParser, (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor, fts5yytos+8) + } + fts5yytos -= 24 } } @@ -199406,13 +201344,13 @@ func _fts5yyStackOverflow(tls *libc.TLS, fts5yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse - for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > fts5yypParser+16 { + for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack { _fts5yy_pop_parser_stack(tls, fts5yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35115, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35261, 0) /******** End %stack_overflow code ********************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument var */ } @@ -199430,15 +201368,18 @@ func _fts5yy_shift(tls *libc.TLS, fts5yypParser uintptr, fts5yyNewState uint8, f var fts5yytos uintptr _ = fts5yytos (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos += 24 - if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 - _fts5yyStackOverflow(tls, fts5yypParser) - return + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + if fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { + if int32(1) != 0 { + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 + _fts5yyStackOverflow(tls, fts5yypParser) + return + } + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos } if int32(fts5yyNewState) > int32(fts5YY_MAX_SHIFT) { fts5yyNewState = uint8(int32(fts5yyNewState) + (libc.Int32FromInt32(fts5YY_MIN_REDUCE) - libc.Int32FromInt32(fts5YY_MIN_SHIFTREDUCE))) } - fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fstateno = fts5yyNewState (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor = fts5yyMajor *(*TFts5Token)(unsafe.Pointer(fts5yytos + 8)) = fts5yyMinor @@ -199765,7 +201706,7 @@ func _fts5yy_syntax_error(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor int3 pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse /************ Begin %syntax_error code ****************************************/ _ = fts5yymajor /* Silence a compiler warning */ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35143, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35289, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) /************ End %syntax_error code ******************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument variable */ } @@ -199827,8 +201768,10 @@ func _sqlite3Fts5Parser(tls *libc.TLS, fts5yyp uintptr, fts5yymajor int32, fts5y ** enough on the stack to push the LHS value */ if int32(_fts5yyRuleInfoNRhs[fts5yyruleno]) == 0 { if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos >= (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - _fts5yyStackOverflow(tls, fts5yypParser) - break + if int32(1) != 0 { + _fts5yyStackOverflow(tls, fts5yypParser) + break + } } } fts5yyact = _fts5yy_reduce(tls, fts5yypParser, fts5yyruleno, fts5yymajor, fts5yyminor) @@ -200068,7 +202011,7 @@ func _fts5HighlightAppend(tls *libc.TLS, pRc uintptr, p uintptr, z uintptr, n in if n < 0 { n = int32(libc.Xstrlen(tls, z)) } - (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+35174, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) + (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+35320, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) if (*THighlightContext)(unsafe.Pointer(p)).FzOut == uintptr(0) { *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) } @@ -200165,7 +202108,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint var _ /* rc at bp+104 */ int32 _, _ = iCol, zErr if nVal != int32(3) { - zErr = __ccgo_ts + 35181 + zErr = __ccgo_ts + 35327 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -200176,7 +202119,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint (*(*THighlightContext)(unsafe.Pointer(bp))).FiRangeEnd = -int32(1) *(*int32)(unsafe.Pointer(bp + 104)) = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnText})))(tls, pFts, iCol, bp+24, bp+32) if *(*int32)(unsafe.Pointer(bp + 104)) == int32(SQLITE_RANGE) { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1650, -int32(1), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1664, -int32(1), libc.UintptrFromInt32(0)) *(*int32)(unsafe.Pointer(bp + 104)) = SQLITE_OK } else { if (*(*THighlightContext)(unsafe.Pointer(bp))).FzIn != 0 { @@ -200377,7 +202320,7 @@ func _fts5ValueToText(tls *libc.TLS, pVal uintptr) (r uintptr) { if zRet != 0 { v1 = zRet } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } return v1 } @@ -200411,7 +202354,7 @@ func _fts5SnippetFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintpt nBestScore = 0 /* Score of best snippet */ *(*int32)(unsafe.Pointer(bp + 112)) = 0 if nVal != int32(5) { - zErr = __ccgo_ts + 35231 + zErr = __ccgo_ts + 35377 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -200791,15 +202734,15 @@ func _sqlite3Fts5AuxInit(tls *libc.TLS, pApi uintptr) (r int32) { FxDestroy uintptr }{ 0: { - FzFunc: __ccgo_ts + 35279, + FzFunc: __ccgo_ts + 35425, FxFunc: __ccgo_fp(_fts5SnippetFunction), }, 1: { - FzFunc: __ccgo_ts + 35287, + FzFunc: __ccgo_ts + 35433, FxFunc: __ccgo_fp(_fts5HighlightFunction), }, 2: { - FzFunc: __ccgo_ts + 35297, + FzFunc: __ccgo_ts + 35443, FxFunc: __ccgo_fp(_fts5Bm25Function), }, } @@ -201459,7 +203402,7 @@ func _fts5ConfigSkipLiteral(tls *libc.TLS, pIn uintptr) (r uintptr) { case int32('n'): fallthrough case int32('N'): - if Xsqlite3_strnicmp(tls, __ccgo_ts+1636, p, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+1650, p, int32(4)) == 0 { p = p + 4 } else { p = uintptr(0) @@ -201663,7 +203606,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _, _, _, _, _, _, _, _, _, _, _, _ = azArg, bFirst, nArg, nByte, nCmd, nPre, p, p1, p2, pDel, pSpace, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK nCmd = int32(libc.Xstrlen(tls, zCmd)) - if Xsqlite3_strnicmp(tls, __ccgo_ts+35302, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35448, zCmd, nCmd) == 0 { nByte = int32(libc.Uint64FromInt64(4) * libc.Uint64FromInt32(FTS5_MAX_PREFIX_INDEXES)) bFirst = int32(1) if (*TFts5Config)(unsafe.Pointer(pConfig)).FaPrefix == uintptr(0) { @@ -201689,12 +203632,12 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } } if int32(*(*int8)(unsafe.Pointer(p))) < int32('0') || int32(*(*int8)(unsafe.Pointer(p))) > int32('9') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35309, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35455, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } if (*TFts5Config)(unsafe.Pointer(pConfig)).FnPrefix == int32(FTS5_MAX_PREFIX_INDEXES) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35340, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35486, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -201703,7 +203646,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC p++ } if nPre <= 0 || nPre >= int32(1000) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35373, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35519, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -201713,7 +203656,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35410, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35556, zCmd, nCmd) == 0 { p1 = zArg nArg = int64(libc.Xstrlen(tls, zArg) + uint64(1)) azArg = _sqlite3Fts5MallocZero(tls, bp, int64(uint64(8)*uint64(nArg))) @@ -201721,7 +203664,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC pSpace = pDel if azArg != 0 && pSpace != 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35419, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35565, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { nArg = 0 @@ -201748,7 +203691,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC nArg++ } if p1 == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35452, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35598, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5GetTokenizer(tls, pGlobal, azArg, int32(nArg), pConfig, pzErr) @@ -201759,58 +203702,58 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC Xsqlite3_free(tls, pDel) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35486, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35632, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent != FTS5_CONTENT_NORMAL { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35494, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35640, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if *(*int8)(unsafe.Pointer(zArg)) != 0 { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_EXTERNAL) - (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35526, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) + (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35672, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_NONE) } } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35532, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35678, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35551, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35697, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35594, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35740, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35608, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35754, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, zArg, -int32(1)) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35646, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35792, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35657, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35803, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+5847, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+5911, zCmd, nCmd) == 0 { *(*[4]TFts5Enum)(unsafe.Pointer(bp + 8)) = [4]TFts5Enum{ 0: { - FzName: __ccgo_ts + 8566, + FzName: __ccgo_ts + 8691, FeVal: int32(FTS5_DETAIL_NONE), }, 1: { - FzName: __ccgo_ts + 18114, + FzName: __ccgo_ts + 18201, }, 2: { - FzName: __ccgo_ts + 35692, + FzName: __ccgo_ts + 35838, FeVal: int32(FTS5_DETAIL_COLUMNS), }, 3: {}, @@ -201818,20 +203761,20 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC v2 = _fts5ConfigSetEnum(tls, bp+8, zArg, pConfig+96) *(*int32)(unsafe.Pointer(bp)) = v2 if v2 != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35700, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35846, 0) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35731, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35877, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35741, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35887, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbTokendata = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35775, libc.VaList(bp+80, nCmd, zCmd)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35921, libc.VaList(bp+80, nCmd, zCmd)) return int32(SQLITE_ERROR) } @@ -201903,15 +203846,15 @@ func _fts5ConfigParseColumn(tls *libc.TLS, p uintptr, zCol uintptr, zArg uintptr var v2 uintptr _, _, _ = rc, v1, v2 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35803) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+17045) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35808, libc.VaList(bp+8, zCol)) + if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35949) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+17132) { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35954, libc.VaList(bp+8, zCol)) rc = int32(SQLITE_ERROR) } else { if zArg != 0 { - if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35838) { + if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35984) { *(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FabUnindexed + uintptr((*TFts5Config)(unsafe.Pointer(p)).FnCol))) = uint8(1) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35848, libc.VaList(bp+8, zArg)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35994, libc.VaList(bp+8, zArg)) rc = int32(SQLITE_ERROR) } } @@ -201937,7 +203880,7 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TFts5Buffer)(unsafe.Pointer(bp + 8)) = TFts5Buffer{} - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35879, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36025, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) if (*TFts5Config)(unsafe.Pointer(p)).FeContent != int32(FTS5_CONTENT_NONE) { i = 0 for { @@ -201945,9 +203888,9 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { break } if (*TFts5Config)(unsafe.Pointer(p)).FeContent == int32(FTS5_CONTENT_EXTERNAL) { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35884, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36030, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) } else { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35891, libc.VaList(bp+32, i)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36037, libc.VaList(bp+32, i)) } goto _1 _1: @@ -202007,8 +203950,8 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in (*TFts5Config)(unsafe.Pointer(pRet)).FzName = _sqlite3Fts5Strndup(tls, bp, *(*uintptr)(unsafe.Pointer(azArg + 2*8)), -int32(1)) (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize = int32(1) (*TFts5Config)(unsafe.Pointer(pRet)).FeDetail = FTS5_DETAIL_FULL - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35803) == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35899, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35949) == 0 { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36045, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } i = int32(3) @@ -202039,19 +203982,19 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { if z == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35928, libc.VaList(bp+40, zOrig)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36074, libc.VaList(bp+40, zOrig)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bOption != 0 { if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { v4 = *(*uintptr)(unsafe.Pointer(bp + 8)) } else { - v4 = __ccgo_ts + 1650 + v4 = __ccgo_ts + 1664 } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { v5 = *(*uintptr)(unsafe.Pointer(bp + 16)) } else { - v5 = __ccgo_ts + 1650 + v5 = __ccgo_ts + 1664 } *(*int32)(unsafe.Pointer(bp)) = _fts5ConfigParseSpecial(tls, pGlobal, pRet, v4, v5, pzErr) } else { @@ -202069,7 +204012,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } /* We only allow contentless_delete=1 if the table is indeed contentless. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FeContent != int32(FTS5_CONTENT_NONE) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35948, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36094, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* We only allow contentless_delete=1 if columnsize=0 is not present. @@ -202077,7 +204020,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in ** This restriction may be removed at some point. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35998, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36144, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* If a tokenizer= option was successfully parsed, the tokenizer has @@ -202090,18 +204033,18 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContent == uintptr(0) { zTail = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pRet)).FeContent == FTS5_CONTENT_NORMAL { - zTail = __ccgo_ts + 35486 + zTail = __ccgo_ts + 35632 } else { if (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize != 0 { - zTail = __ccgo_ts + 36053 + zTail = __ccgo_ts + 36199 } } if zTail != 0 { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36061, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36207, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid == uintptr(0) { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+17045, -int32(1)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+17132, -int32(1)) } /* Formulate the zContentExprlist text */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -202165,25 +204108,25 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { var _ /* rc at bp+0 */ int32 _, _, _, _ = i, zSep, zSql, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36072, 0) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36218, 0) i = 0 for { if !(zSql != 0 && i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } if i == 0 { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } else { - v2 = __ccgo_ts + 15338 + v2 = __ccgo_ts + 15431 } zSep = v2 - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36088, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36234, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) goto _1 _1: ; i++ } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36095, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35803)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36241, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35949)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_declare_vtab(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql) Xsqlite3_free(tls, zSql) @@ -202329,7 +204272,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV var _ /* zRankArgs at bp+8 */ uintptr _, _, _, _, _, _, _, _, _, _ = bVal, nAutomerge, nCrisisMerge, nHashSize, nUsermerge, nVal, pgsz, rc, zIn, v1 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36121) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36267) { pgsz = 0 if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { pgsz = Xsqlite3_value_int(tls, pVal) @@ -202340,7 +204283,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).Fpgsz = pgsz } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36126) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36272) { nHashSize = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nHashSize = Xsqlite3_value_int(tls, pVal) @@ -202351,7 +204294,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnHashSize = nHashSize } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36135) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36281) { nAutomerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nAutomerge = Xsqlite3_value_int(tls, pVal) @@ -202365,7 +204308,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnAutomerge = nAutomerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36145) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36291) { nUsermerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nUsermerge = Xsqlite3_value_int(tls, pVal) @@ -202376,7 +204319,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnUsermerge = nUsermerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36155) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36301) { nCrisisMerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nCrisisMerge = Xsqlite3_value_int(tls, pVal) @@ -202393,7 +204336,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnCrisisMerge = nCrisisMerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36167) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36313) { nVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nVal = Xsqlite3_value_int(tls, pVal) @@ -202408,7 +204351,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } (*TFts5Config)(unsafe.Pointer(pConfig)).FnDeleteMerge = nVal } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35803) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35949) { zIn = Xsqlite3_value_text(tls, pVal) rc = _sqlite3Fts5ConfigParseRank(tls, zIn, bp, bp+8) if rc == SQLITE_OK { @@ -202423,7 +204366,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36179) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36325) { bVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { bVal = Xsqlite3_value_int(tls, pVal) @@ -202465,7 +204408,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in var _ /* p at bp+0 */ uintptr var _ /* rc at bp+8 */ int32 _, _, _, _, _ = iVersion, pVal, zK, zSelect, zSql - zSelect = __ccgo_ts + 36193 + zSelect = __ccgo_ts + 36339 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_OK iVersion = 0 @@ -202485,7 +204428,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in for int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zK = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) pVal = Xsqlite3_column_value(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) - if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+36225) { + if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+36371) { iVersion = Xsqlite3_value_int(tls, pVal) } else { *(*int32)(unsafe.Pointer(bp + 12)) = 0 @@ -202497,7 +204440,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && iVersion != int32(FTS5_CURRENT_VERSION) && iVersion != int32(FTS5_CURRENT_VERSION_SECUREDELETE) { *(*int32)(unsafe.Pointer(bp + 8)) = int32(SQLITE_ERROR) if (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg != 0 { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+36233, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+36379, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = iVersion @@ -202718,7 +204661,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr } } if int32(*(*int8)(unsafe.Pointer(z2))) == int32('\000') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36304, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36450, 0) return FTS5_EOF } goto _1 @@ -202729,7 +204672,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z2) - int64(z)) default: if _sqlite3Fts5IsBareword(tls, *(*int8)(unsafe.Pointer(z))) == 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36324, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36470, libc.VaList(bp+8, z)) return FTS5_EOF } tok = int32(FTS5_STRING) @@ -202744,13 +204687,13 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr z21++ } (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z21) - int64(z)) - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36355, uint64(2)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36501, uint64(2)) == 0 { tok = int32(FTS5_OR) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36358, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36504, uint64(3)) == 0 { tok = int32(FTS5_NOT) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+31101, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+31247, uint64(3)) == 0 { tok = int32(FTS5_AND) } break @@ -203165,6 +205108,7 @@ func _fts5ExprSynonymList(tls *libc.TLS, pTerm uintptr, iRowid Ti64, pBuf uintpt *(*int32)(unsafe.Pointer(pn)) = (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn } } + goto synonym_poslist_out synonym_poslist_out: ; if aIter != bp { @@ -203297,6 +205241,7 @@ func _fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMat i++ } } + goto ismatch_out ismatch_out: ; *(*int32)(unsafe.Pointer(pbMatch)) = libc.BoolInt32((*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn > 0) @@ -203503,6 +205448,7 @@ func _fts5ExprNearIsMatch(tls *libc.TLS, pRc uintptr, pNear uintptr) (r int32) { goto ismatch_out } } + goto ismatch_out ismatch_out: ; bRet = libc.BoolInt32((*TFts5Buffer)(unsafe.Pointer((*(*TFts5NearTrimmer)(unsafe.Pointer(a))).FpOut)).Fn > 0) @@ -204819,8 +206765,8 @@ func _sqlite3Fts5ExprClonePhrase(tls *libc.TLS, pExpr uintptr, iPhrase int32, pp func _sqlite3Fts5ParseNear(tls *libc.TLS, pParse uintptr, pTok uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+36362, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35143, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) + if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+36508, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35289, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) } } @@ -204840,7 +206786,7 @@ func _sqlite3Fts5ParseSetDistance(tls *libc.TLS, pParse uintptr, pNear uintptr, } c = *(*int8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i))) if int32(c) < int32('0') || int32(c) > int32('9') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36367, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36513, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) return } nNear = nNear*int32(10) + (int32(*(*int8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i)))) - int32('0')) @@ -204978,7 +206924,7 @@ func _sqlite3Fts5ParseColset(tls *libc.TLS, pParse uintptr, pColset uintptr, p u iCol++ } if iCol == (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21411, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21543, libc.VaList(bp+8, z)) } else { pRet = _fts5ParseColset(tls, pParse, pColset, iCol) } @@ -205102,7 +207048,7 @@ func _sqlite3Fts5ParseSetColset(tls *libc.TLS, pParse uintptr, pExpr uintptr, pC var _ /* pFree at bp+0 */ uintptr *(*uintptr)(unsafe.Pointer(bp)) = pColset if (*TFts5Config)(unsafe.Pointer((*TFts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FeDetail == int32(FTS5_DETAIL_NONE) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36396, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36542, 0) } else { _fts5ParseSetColset(tls, pParse, pExpr, pColset, bp) } @@ -205295,11 +207241,11 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin pPhrase = *(*uintptr)(unsafe.Pointer(pNear + 24)) if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase != int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 0 && (*(*TFts5ExprTerm)(unsafe.Pointer(pPhrase + 32))).FbFirst != 0 { if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase == int32(1) { - v2 = __ccgo_ts + 36449 + v2 = __ccgo_ts + 36595 } else { - v2 = __ccgo_ts + 36362 + v2 = __ccgo_ts + 36508 } - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36456, libc.VaList(bp+8, v2)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36602, libc.VaList(bp+8, v2)) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -205308,7 +207254,7 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin _fts5ExprAddChildren(tls, pRet, pLeft) _fts5ExprAddChildren(tls, pRet, pRight) if (*TFts5ExprNode)(unsafe.Pointer(pRet)).FiHeight > int32(SQLITE_FTS5_MAX_EXPR_DEPTH) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36506, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36652, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -207456,7 +209402,7 @@ func _fts5DataRead(tls *libc.TLS, p uintptr, iRowid Ti64) (r uintptr) { ** to the requested entry. */ if (*TFts5Index)(unsafe.Pointer(p)).FpReader == uintptr(0) && rc == SQLITE_OK { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36559, iRowid, 0, p+72) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36705, iRowid, 0, p+72) } /* If either of the sqlite3_blob_open() or sqlite3_blob_reopen() calls ** above returned SQLITE_ERROR, return SQLITE_CORRUPT_VTAB instead. @@ -207549,7 +209495,7 @@ func _fts5DataWrite(tls *libc.TLS, p uintptr, iRowid Ti64, pData uintptr, nData } if (*TFts5Index)(unsafe.Pointer(p)).FpWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36565, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36711, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return } @@ -207578,7 +209524,7 @@ func _fts5DataDelete(tls *libc.TLS, p uintptr, iFirst Ti64, iLast Ti64) { } if (*TFts5Index)(unsafe.Pointer(p)).FpDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36616, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36762, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if _fts5IndexPrepareStmt(tls, p, p+88, zSql) != 0 { return } @@ -207612,7 +209558,7 @@ func _fts5DataRemoveSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { } if (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36665, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36811, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter, int32(1), iSegid) @@ -207781,7 +209727,7 @@ func _fts5StructureDecode(tls *libc.TLS, pData uintptr, nData int32, piCookie ui } i = int32(4) /* Check if this is a V2 structure record. Set bStructureV2 if it is. */ - if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36705, uint64(4)) { + if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36851, uint64(4)) { i += int32(4) bStructureV2 = int32(1) } @@ -207972,7 +209918,7 @@ func _fts5IndexDataVersion(tls *libc.TLS, p uintptr) (r Ti64) { iVersion = 0 if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*TFts5Index)(unsafe.Pointer(p)).FpDataVersion == uintptr(0) { - (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36710, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) + (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36856, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return 0 } @@ -208056,7 +210002,7 @@ func _fts5StructureWrite(tls *libc.TLS, p uintptr, pStruct uintptr) { _sqlite3Fts5Put32(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, iCookie) (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = int32(4) if (*TFts5Structure)(unsafe.Pointer(pStruct)).FnOriginCntr > uint64(0) { - libc.X__builtin___memcpy_chk(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36705, uint64(4), libc.X__builtin_object_size(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), 0)) + libc.X__builtin___memcpy_chk(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36851, uint64(4), libc.X__builtin_object_size(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), 0)) *(*int32)(unsafe.Pointer(bp + 8)) += int32(4) } *(*int32)(unsafe.Pointer(bp + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), uint64((*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel)) @@ -209006,6 +210952,7 @@ func _fts5SegIterNext_None(tls *libc.TLS, p uintptr, pIter uintptr, pbNewTerm ui } _fts5SegIterLoadNPos(tls, p, pIter) return + goto next_none_eof next_none_eof: ; _fts5DataRelease(tls, (*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf) @@ -209368,6 +211315,7 @@ func _fts5LeafSeek(tls *libc.TLS, p uintptr, bGe int32, pIter uintptr, pTerm uin *(*Tu32)(unsafe.Pointer(bp)) += uint32(_sqlite3Fts5GetVarint32(tls, a+uintptr(*(*Tu32)(unsafe.Pointer(bp))), bp+4)) } } + goto search_failed search_failed: ; if bGe == 0 { @@ -209399,6 +211347,7 @@ search_failed: } } } + goto search_success search_success: ; if int64(*(*Tu32)(unsafe.Pointer(bp)))+int64(*(*Tu32)(unsafe.Pointer(bp + 8))) > int64(n) || *(*Tu32)(unsafe.Pointer(bp + 8)) < uint32(1) { @@ -209428,7 +211377,7 @@ func _fts5IdxSelectStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36733, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36879, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect } @@ -209517,7 +211466,7 @@ func _fts5IdxNextStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36817, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36963, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect } @@ -210603,6 +212552,7 @@ func _fts5IterSetOutputs_Col100(tls *libc.TLS, pIter uintptr, pSeg uintptr) { iPrevOut = iPrev } } + goto setoutputs_col_out setoutputs_col_out: ; (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*TFts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp @@ -210820,6 +212770,7 @@ func _fts5MultiIterNew(tls *libc.TLS, p uintptr, pStruct uintptr, flags int32, p _fts5MultiIterFree(tls, pNew) *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) } + goto fts5MultiIterNew_post_check fts5MultiIterNew_post_check: ; return @@ -211131,7 +213082,7 @@ func _fts5WriteFlushBtree(tls *libc.TLS, p uintptr, pWriter uintptr) { if (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn > 0 { v1 = (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fp } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } z = v1 /* The following was already done in fts5WriteInit(): */ @@ -211486,7 +213437,7 @@ func _fts5WriteInit(tls *libc.TLS, p uintptr, pWriter uintptr, iSegid int32) { _sqlite3Fts5BufferSize(tls, p+60, pWriter+8+8, uint32(nBuffer)) if (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36899, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+37045, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { /* Initialize the 4-byte leaf-page header to 0x00. */ @@ -211976,7 +213927,7 @@ func _fts5SecureDeleteIdxEntry(tls *libc.TLS, p uintptr, iSegid int32, iPgno int defer tls.Free(32) if iPgno != int32(1) { if (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx == uintptr(0) { - _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36956, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+37102, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx, int32(1), iSegid) @@ -213466,7 +215417,7 @@ func _sqlite3Fts5IndexReinit(tls *libc.TLS, p uintptr) (r int32) { if (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FbContentlessDelete != 0 { (*(*TFts5Structure)(unsafe.Pointer(bp))).FnOriginCntr = uint64(1) } - _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1650, 0) + _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1664, 0) _fts5StructureWrite(tls, p, bp) return _fts5IndexReturn(tls, p) } @@ -213493,11 +215444,11 @@ func _sqlite3Fts5IndexOpen(tls *libc.TLS, pConfig uintptr, bCreate int32, pp uin if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Index)(unsafe.Pointer(p)).FpConfig = pConfig (*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit = int32(FTS5_WORK_UNIT) - (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37017, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37163, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl != 0 && bCreate != 0 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+26136, __ccgo_ts+37025, 0, pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+26282, __ccgo_ts+37171, 0, pzErr) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+12141, __ccgo_ts+37060, int32(1), pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+12266, __ccgo_ts+37206, int32(1), pzErr) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5IndexReinit(tls, p) @@ -214031,7 +215982,7 @@ func _fts5SetupTokendataIter(tls *libc.TLS, p uintptr, pToken uintptr, nToken in pNew = _fts5MultiIterAlloc(tls, p, (*TFts5Structure)(unsafe.Pointer(pStruct)).FnSegment) if pSmall != 0 { _sqlite3Fts5BufferSet(tls, p+60, bp, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fn, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+37104) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+37250) } else { _sqlite3Fts5BufferSet(tls, p+60, bp, nToken, pToken) } @@ -214551,7 +216502,7 @@ func _sqlite3Fts5IndexSetCookie(tls *libc.TLS, p uintptr, iNew int32) (r int32) pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig /* Binary representation of iNew */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) _sqlite3Fts5Put32(tls, bp, iNew) - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36559, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36705, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) if rc == SQLITE_OK { Xsqlite3_blob_write(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), bp, int32(4), 0) rc = Xsqlite3_blob_close(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) @@ -215145,7 +217096,7 @@ func _fts5IndexIntegrityCheckSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { if (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst == 0 { return } - _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+37106, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) + _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+37252, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) /* Iterate through the b-tree hierarchy. */ for (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { /* Data for this leaf */ zIdxTerm = Xsqlite3_column_blob(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -215376,7 +217327,7 @@ func _sqlite3Fts5IndexIntegrityCheck(tls *libc.TLS, p uintptr, cksum Tu64, bUseC } else { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = 0 _fts5SegiterPoslist(tls, p, *(*uintptr)(unsafe.Pointer(bp + 16))+104+uintptr((*(*TFts5CResult)(unsafe.Pointer((*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaFirst + 1*4))).FiFirst)*128, uintptr(0), bp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+37192) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+37338) for 0 == _sqlite3Fts5PoslistNext64(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn, bp+40, bp+32) { iCol = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) >> libc.Int32FromInt32(32)) iTokOff = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) & libc.Int64FromInt32(0x7FFFFFFF)) @@ -215964,7 +217915,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) bSeenMatch = 0 bSeenRank = 0 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37197, 0) + (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37343, 0) return int32(SQLITE_ERROR) } idxStr = Xsqlite3_malloc(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint*int32(8)+int32(1)) @@ -216003,7 +217954,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v3 = iIdxStr iIdxStr++ *(*int8)(unsafe.Pointer(idxStr + uintptr(v3))) = int8('M') - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5486, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5550, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) } } @@ -216023,7 +217974,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v6 = int32('G') } *(*int8)(unsafe.Pointer(idxStr + uintptr(v5))) = int8(v6) - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5486, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5550, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) iCons++ v7 = iCons @@ -216461,7 +218412,7 @@ func _fts5NextMethod(tls *libc.TLS, pCursor uintptr) (r int32) { *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_EOF) rc = Xsqlite3_reset(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpStmt) if rc != SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } } else { rc = SQLITE_OK @@ -216488,7 +218439,7 @@ func _fts5PrepareStatement(tls *libc.TLS, ppStmt uintptr, pConfig uintptr, zFmt } else { rc = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } Xsqlite3_free(tls, zSql) } @@ -216523,21 +218474,21 @@ func _fts5CursorFirstSorted(tls *libc.TLS, pTab uintptr, pCsr uintptr, bDesc int ** ** If SQLite a built-in statement cache, this wouldn't be a problem. */ if zRankArgs != 0 { - v1 = __ccgo_ts + 15338 + v1 = __ccgo_ts + 15431 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } if zRankArgs != 0 { v2 = zRankArgs } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } if bDesc != 0 { - v3 = __ccgo_ts + 37236 + v3 = __ccgo_ts + 37382 } else { - v3 = __ccgo_ts + 37241 + v3 = __ccgo_ts + 37387 } - rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+37245, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) + rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+37391, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpSorter = pSorter if rc == SQLITE_OK { (*TFts5FullTable)(unsafe.Pointer(pTab)).FpSortCsr = pCsr @@ -216595,14 +218546,14 @@ func _fts5SpecialMatch(tls *libc.TLS, pTab uintptr, pCsr uintptr, zQuery uintptr n++ } (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan = int32(FTS5_PLAN_SPECIAL) - if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+37300, z, n) { + if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+37446, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = int64(_sqlite3Fts5IndexReads(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)) } else { - if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5829, z, n) { + if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5893, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId } else { /* An unrecognized directive. Return an error message. */ - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37306, libc.VaList(bp+8, n, z)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37452, libc.VaList(bp+8, n, z)) rc = int32(SQLITE_ERROR) } } @@ -216652,7 +218603,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { zRank = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank zRankArgs = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs if zRankArgs != 0 { - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37334, libc.VaList(bp+24, zRankArgs)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37480, libc.VaList(bp+24, zRankArgs)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp+8, uintptr(0)) @@ -216685,7 +218636,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { pAux = _fts5FindAuxiliary(tls, pTab, zRank) if pAux == uintptr(0) { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37344, libc.VaList(bp+24, zRank)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37490, libc.VaList(bp+24, zRank)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -216719,7 +218670,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_FREE_ZRANK) } else { if rc == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37365, libc.VaList(bp+24, z)) + (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37511, libc.VaList(bp+24, z)) } } } else { @@ -216727,7 +218678,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRank (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRankArgs } else { - (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 35297 + (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 35443 (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = uintptr(0) } } @@ -216778,7 +218729,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint iIdxStr = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37197, 0) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37343, 0) return int32(SQLITE_ERROR) } if (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan != 0 { @@ -216800,7 +218751,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint case int32('M'): zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8))) if zText == uintptr(0) { - zText = __ccgo_ts + 1650 + zText = __ccgo_ts + 1664 } iCol = 0 for cond := true; cond; cond = int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) <= int32('9') { @@ -216922,7 +218873,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent == uintptr(0) { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37398, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37544, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) rc = int32(SQLITE_ERROR) } else { /* This is either a full-table scan (ePlan==FTS5_PLAN_SCAN) or a lookup @@ -216946,6 +218897,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } } + goto filter_out filter_out: ; _sqlite3Fts5ExprFree(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -217059,7 +219011,7 @@ func _fts5SeekCursor(tls *libc.TLS, pCsr uintptr, bErrormsg int32) (r int32) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< int32(1) { - v1 = __ccgo_ts + 21264 + v1 = __ccgo_ts + 21396 } else { - v1 = __ccgo_ts + 37676 + v1 = __ccgo_ts + 37822 } - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37688, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37834, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if nArg == int32(1) { @@ -217316,7 +219268,7 @@ func _fts5UpdateMethod(tls *libc.TLS, pVtab uintptr, nArg int32, apVal uintptr, } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && bUpdateOrDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FbSecureDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion == int32(FTS5_CURRENT_VERSION) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+36225, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+36371, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = int32(FTS5_CURRENT_VERSION_SECUREDELETE) } @@ -218112,7 +220064,7 @@ func _fts5ApiCallback(tls *libc.TLS, context uintptr, argc int32, argv uintptr) iCsrId = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) pCsr = _fts5CursorFromCsrid(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal, iCsrId) if pCsr == uintptr(0) || (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan == 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37725, libc.VaList(bp+8, iCsrId)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37871, libc.VaList(bp+8, iCsrId)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } else { @@ -218303,7 +220255,7 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg = uintptr(0) } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 && Xsqlite3_vtab_nochange(tls, pCtx) != 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37746, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37892, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -218545,7 +220497,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr pMod = _fts5LocateTokenizer(tls, pGlobal, v1) if pMod == uintptr(0) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37817, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37963, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) } else { if azArg != 0 { v2 = azArg + 1*8 @@ -218561,7 +220513,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr (*TFts5Config)(unsafe.Pointer(pConfig)).FpTokApi = pMod + 16 if rc != SQLITE_OK { if pzErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37839, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37985, 0) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FePattern = _sqlite3Fts5TokenizerPattern(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pMod)).Fx.FxCreate, (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok) @@ -218616,7 +220568,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { _, _ = pGlobal, ppApi pGlobal = Xsqlite3_user_data(tls, pCtx) _ = nArg - ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37870) + ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+38016) if ppApi != 0 { *(*uintptr)(unsafe.Pointer(ppApi)) = pGlobal } @@ -218630,7 +220582,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { func _fts5SourceIdFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apUnused uintptr) { _ = nArg _ = apUnused - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37883, -int32(1), uintptr(-libc.Int32FromInt32(1))) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+38029, -int32(1), uintptr(-libc.Int32FromInt32(1))) } // C documentation @@ -218659,11 +220611,11 @@ func _fts5ShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName2 = [5]uintptr{ - 0: __ccgo_ts + 37974, - 1: __ccgo_ts + 35486, - 2: __ccgo_ts + 26136, - 3: __ccgo_ts + 36053, - 4: __ccgo_ts + 12141, + 0: __ccgo_ts + 38120, + 1: __ccgo_ts + 35632, + 2: __ccgo_ts + 26282, + 3: __ccgo_ts + 36199, + 4: __ccgo_ts + 12266, } // C documentation @@ -218677,20 +220629,26 @@ func _fts5IntegrityMethod(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zTabnam bp := tls.Alloc(32) defer tls.Free(32) var pTab uintptr - var rc int32 - _, _ = pTab, rc + var rc, v1 int32 + _, _, _ = pTab, rc, v1 pTab = pVtab _ = isQuick rc = _sqlite3Fts5StorageIntegrity(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, 0) if rc&int32(0xff) == int32(SQLITE_CORRUPT) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37981, libc.VaList(bp+8, zSchema, zTabname)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38127, libc.VaList(bp+8, zSchema, zTabname)) + if *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { + v1 = SQLITE_OK + } else { + v1 = int32(SQLITE_NOMEM) + } + rc = v1 } else { if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38027, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38173, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) } } _sqlite3Fts5IndexCloseReader(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex) - return SQLITE_OK + return rc } func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { @@ -218709,7 +220667,7 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateFunction = __ccgo_fp(_fts5CreateAux) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateTokenizer = __ccgo_fp(_fts5CreateTokenizer) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxFindTokenizer = __ccgo_fp(_fts5FindTokenizer) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+38090, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+38236, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) if rc == SQLITE_OK { rc = _sqlite3Fts5IndexInit(tls, db) } @@ -218726,10 +220684,10 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { rc = _sqlite3Fts5VocabInit(tls, pGlobal, db) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+38090, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+38236, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+38095, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+38241, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) } } /* If SQLITE_FTS5_ENABLE_TEST_MI is defined, assume that the file @@ -218832,17 +220790,17 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, ** statements to operate on it. */ if *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(eStmt)*8)) == uintptr(0) { azStmt = [11]uintptr{ - 0: __ccgo_ts + 38110, - 1: __ccgo_ts + 38178, - 2: __ccgo_ts + 38247, - 3: __ccgo_ts + 38280, - 4: __ccgo_ts + 38319, - 5: __ccgo_ts + 38359, - 6: __ccgo_ts + 38398, - 7: __ccgo_ts + 38441, - 8: __ccgo_ts + 38480, - 9: __ccgo_ts + 38524, - 10: __ccgo_ts + 38564, + 0: __ccgo_ts + 38256, + 1: __ccgo_ts + 38324, + 2: __ccgo_ts + 38393, + 3: __ccgo_ts + 38426, + 4: __ccgo_ts + 38465, + 5: __ccgo_ts + 38505, + 6: __ccgo_ts + 38544, + 7: __ccgo_ts + 38587, + 8: __ccgo_ts + 38626, + 9: __ccgo_ts + 38670, + 10: __ccgo_ts + 38710, } pC = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig zSql = uintptr(0) @@ -218879,16 +220837,16 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, } case int32(FTS5_STMT_REPLACE_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v2 = __ccgo_ts + 38587 + v2 = __ccgo_ts + 38733 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName, v2)) case int32(FTS5_STMT_LOOKUP_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v3 = __ccgo_ts + 38590 + v3 = __ccgo_ts + 38736 } else { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, v3, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName)) default: @@ -218907,7 +220865,7 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, (*TFts5Config)(unsafe.Pointer((*TFts5Storage)(unsafe.Pointer(p)).FpConfig)).FbLock-- Xsqlite3_free(tls, zSql) if rc != SQLITE_OK && pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) } } } @@ -218944,12 +220902,12 @@ func _sqlite3Fts5DropAll(tls *libc.TLS, pConfig uintptr) (r int32) { defer tls.Free(64) var rc int32 _ = rc - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38598, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38744, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38702, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38848, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38740, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38886, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } return rc } @@ -218958,7 +220916,7 @@ func _fts5StorageRenameOne(tls *libc.TLS, pConfig uintptr, pRc uintptr, zTail ui bp := tls.Alloc(48) defer tls.Free(48) if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38778, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) + *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38924, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) } } @@ -218970,14 +220928,14 @@ func _sqlite3Fts5StorageRename(tls *libc.TLS, pStorage uintptr, zName uintptr) ( _ = pConfig pConfig = (*TFts5Storage)(unsafe.Pointer(pStorage)).FpConfig *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageSync(tls, pStorage) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+26136, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+12141, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37974, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+26282, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+12266, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+38120, zName) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+36053, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+36199, zName) } if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35486, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35632, zName) } return *(*int32)(unsafe.Pointer(bp)) } @@ -218997,13 +220955,13 @@ func _sqlite3Fts5CreateTable(tls *libc.TLS, pConfig uintptr, zPost uintptr, zDef _, _ = rc, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if bWithout != 0 { - v1 = __ccgo_ts + 30776 + v1 = __ccgo_ts + 30922 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38820, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38966, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38850, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38996, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -219044,36 +221002,36 @@ func _sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCr if zDefn == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38894, 0) + Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+39040, 0) iOff = int32(libc.Xstrlen(tls, zDefn)) i = 0 for { if !(i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } - Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38917, libc.VaList(bp+8, i)) + Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+39063, libc.VaList(bp+8, i)) iOff += int32(libc.Xstrlen(tls, zDefn+uintptr(iOff))) goto _2 _2: ; i++ } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35486, zDefn, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35632, zDefn, 0, pzErr) } Xsqlite3_free(tls, zDefn) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - zCols = __ccgo_ts + 38923 + zCols = __ccgo_ts + 39069 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 { - zCols = __ccgo_ts + 38955 + zCols = __ccgo_ts + 39101 } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+36053, zCols, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+36199, zCols, 0, pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37974, __ccgo_ts+39003, int32(1), pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+38120, __ccgo_ts+39149, int32(1), pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+36225, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+36371, uintptr(0), int32(FTS5_CURRENT_VERSION)) } } if rc != 0 { @@ -219415,9 +221373,9 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig (*TFts5Storage)(unsafe.Pointer(p)).FbTotalsValid = 0 /* Delete the contents of the %_data and %_docsize tables. */ - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39020, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39166, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39070, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39216, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } /* Reinitialize the %_data table. This call creates the initial structure ** and averages records. */ @@ -219425,7 +221383,7 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3Fts5IndexReinit(tls, (*TFts5Storage)(unsafe.Pointer(p)).FpIndex) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+36225, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+36371, uintptr(0), int32(FTS5_CURRENT_VERSION)) } return rc } @@ -219639,7 +221597,7 @@ func _fts5StorageCount(tls *libc.TLS, p uintptr, zSuffix uintptr, pnRow uintptr) var _ /* pCnt at bp+0 */ uintptr _, _, _ = pConfig, rc, zSql pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+39099, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+39245, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -219849,14 +221807,14 @@ func _sqlite3Fts5StorageIntegrity(tls *libc.TLS, p uintptr, iArg int32) (r int32 ** number of rows. */ if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { *(*Ti64)(unsafe.Pointer(bp + 48)) = 0 - rc = _fts5StorageCount(tls, p, __ccgo_ts+35486, bp+48) + rc = _fts5StorageCount(tls, p, __ccgo_ts+35632, bp+48) if rc == SQLITE_OK && *(*Ti64)(unsafe.Pointer(bp + 48)) != (*TFts5Storage)(unsafe.Pointer(p)).FnTotalRow { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<= int32('A') && int32(*(*uint8)(unsafe.Pointer(zCsr))) <= int32('Z') { @@ -220777,6 +222737,7 @@ _5: goto _2 _1: ; + goto tokenize_done tokenize_done: ; if rc == int32(SQLITE_DONE) { @@ -220840,7 +222801,7 @@ func _fts5PorterCreate(tls *libc.TLS, pCtx uintptr, azArg uintptr, nArg int32, p pApi = pCtx rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zBase = __ccgo_ts + 39191 + zBase = __ccgo_ts + 39337 if nArg > 0 { zBase = *(*uintptr)(unsafe.Pointer(azArg)) } @@ -221055,64 +223016,64 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39201, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39347, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39204, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39350, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39209, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39355, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('e'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39214, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39360, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39217, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39363, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('l'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39220, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39366, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39225, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39371, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39230, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39376, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39234, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39380, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39240, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39386, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39245, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39391, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -221121,49 +223082,49 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39249, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39395, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1_and_S_or_T(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39253, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39399, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } } case int32('s'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39256, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39402, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('t'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39260, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39406, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39264, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39410, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39268, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39414, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39272, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39418, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('z'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39276, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39422, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -221180,20 +223141,20 @@ func _fts5PorterStep1B2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39280, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39260, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(2)), 0)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39426, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39406, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(2)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('b'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39283, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39286, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(2)), 0)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39429, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39432, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(2)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39290, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39276, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(2)), 0)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39436, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39422, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(2)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } @@ -221209,75 +223170,75 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39293, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39439, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39260, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39406, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39301, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39447, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39308, uint64(4), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(6)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39454, uint64(4), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(6)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(4) } } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39313, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39459, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39209, uint64(4), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39355, uint64(4), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39318, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39464, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39204, uint64(4), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39350, uint64(4), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } } case int32('e'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39323, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39469, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39276, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39422, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('g'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39328, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39474, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+16255, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+16334, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('l'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39333, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39479, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39286, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(3)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39432, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(3)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39337, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39483, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39201, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39347, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39342, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39488, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39245, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39391, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39348, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39494, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39352, uint64(1), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(3)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39498, uint64(1), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(3)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(1) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39354, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39500, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39268, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39414, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } @@ -221286,48 +223247,48 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39360, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39506, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39276, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39422, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39368, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39514, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39260, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39406, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39374, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39520, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39260, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39406, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } } } case int32('s'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39379, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39525, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39201, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39347, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39385, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39531, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39272, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39418, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39393, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39539, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39401, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39547, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39405, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39551, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39268, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39414, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(7)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } @@ -221335,21 +223296,21 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39413, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39559, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39201, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39347, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39419, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39565, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39272, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39418, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39425, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39571, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39286, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(6)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39432, uint64(3), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(6)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(3) } } @@ -221367,48 +223328,48 @@ func _fts5PorterStep3(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39432, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39578, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39217, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39363, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(4)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } case int32('s'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39437, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39583, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39442, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39588, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39217, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39363, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39448, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39594, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39217, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39363, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39401, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39547, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39454, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39600, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } case int32('z'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39460, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39606, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39201, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39347, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(5)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } @@ -221424,13 +223385,13 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('e'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39466, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39612, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39470, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(3)), 0)) + libc.X__builtin___memcpy_chk(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39616, uint64(2), libc.X__builtin_object_size(tls, aBuf+uintptr(nBuf-int32(3)), 0)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(2) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39473, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39619, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) ret = int32(1) @@ -221438,7 +223399,7 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39476, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39622, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) ret = int32(1) @@ -221523,6 +223484,7 @@ func _fts5PorterCb(tls *libc.TLS, pCtx uintptr, tflags int32, pToken uintptr, nT *(*int32)(unsafe.Pointer(bp))-- } return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, aBuf, *(*int32)(unsafe.Pointer(bp)), iStart, iEnd) + goto pass_through pass_through: ; return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, pToken, nToken, iStart, iEnd) @@ -221598,14 +223560,14 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p break } zArg = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+int32(1))*8)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39480) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39626) { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || *(*int8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { (*TTrigramTokenizer)(unsafe.Pointer(pNew)).FbFold = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('0')) } } else { - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39173) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39319) { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('2') || *(*int8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { @@ -221879,7 +223841,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { Fx Tfts5_tokenizer }{ 0: { - FzName: __ccgo_ts + 39191, + FzName: __ccgo_ts + 39337, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5UnicodeCreate), FxDelete: __ccgo_fp(_fts5UnicodeDelete), @@ -221887,7 +223849,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 1: { - FzName: __ccgo_ts + 39495, + FzName: __ccgo_ts + 39641, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5AsciiCreate), FxDelete: __ccgo_fp(_fts5AsciiDelete), @@ -221895,7 +223857,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 2: { - FzName: __ccgo_ts + 39501, + FzName: __ccgo_ts + 39647, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5PorterCreate), FxDelete: __ccgo_fp(_fts5PorterDelete), @@ -221903,7 +223865,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 3: { - FzName: __ccgo_ts + 39508, + FzName: __ccgo_ts + 39654, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5TriCreate), FxDelete: __ccgo_fp(_fts5TriDelete), @@ -227437,16 +229399,16 @@ func _fts5VocabTableType(tls *libc.TLS, zType uintptr, pzErr uintptr, peType uin zCopy = _sqlite3Fts5Strndup(tls, bp, zType, -int32(1)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { _sqlite3Fts5Dequote(tls, zCopy) - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39516) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39662) == 0 { *(*int32)(unsafe.Pointer(peType)) = FTS5_VOCAB_COL } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39520) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39666) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_ROW) } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39524) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39670) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_INSTANCE) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39533, libc.VaList(bp+16, zCopy)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39679, libc.VaList(bp+16, zCopy)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -227515,15 +229477,15 @@ func _fts5VocabInitVtab(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg var _ /* rc at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _ = azSchema, bDb, nByte, nDb, nTab, pRet, zDb, zTab, zType, v1, v2, v3 azSchema = [3]uintptr{ - 0: __ccgo_ts + 39567, - 1: __ccgo_ts + 39607, - 2: __ccgo_ts + 39642, + 0: __ccgo_ts + 39713, + 1: __ccgo_ts + 39753, + 2: __ccgo_ts + 39788, } pRet = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+24137, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) + bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+24260, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) if argc != int32(5) && bDb == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39685, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39831, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bDb != 0 { @@ -227693,10 +229655,10 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) zSql = uintptr(0) if (*TFts5VocabTable)(unsafe.Pointer(pTab)).FbBusy != 0 { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39718, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39864, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) return int32(SQLITE_ERROR) } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39749, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39895, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, (*TFts5VocabTable)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), bp+8, uintptr(0)) } @@ -227715,7 +229677,7 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39800, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39946, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } else { @@ -228017,7 +229979,7 @@ func _fts5VocabFilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, zUnuse if pLe != 0 { zCopy = Xsqlite3_value_text(tls, pLe) if zCopy == uintptr(0) { - zCopy = __ccgo_ts + 1650 + zCopy = __ccgo_ts + 1664 } (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm = Xsqlite3_value_bytes(tls, pLe) (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm = Xsqlite3_malloc(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm+int32(1)) @@ -228141,7 +230103,7 @@ func _sqlite3Fts5VocabInit(tls *libc.TLS, pGlobal uintptr, db uintptr) (r int32) var p uintptr _ = p p = pGlobal - return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39826, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) + return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39972, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) } var _fts5Vocab = Tsqlite3_module{ @@ -228194,7 +230156,7 @@ func init() { // /************** End of stmt.c ************************************************/ // /* Return the source-id for this library */ func Xsqlite3_sourceid(tls *libc.TLS) (r uintptr) { - return __ccgo_ts + 39836 + return __ccgo_ts + 39982 } type TAggInfo_col = struct { @@ -228476,11 +230438,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]int8{'3', '.', '4', '5', '.', '3'} +var Xsqlite3_version = [7]int8{'3', '.', '4', '6', '.', '0'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=0\x00COMPILER=clang-15.0.0\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%04d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00(subquery-%u)\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSmaller\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00S\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00hfs\x00ufs\x00afpfs\x00smbfs\x00webdav\x00nfs\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00msdos\x00exfat\x00SQLITE_FORCE_PROXY_LOCKING\x00:auto:\x00fsync\x00/dev/urandom\x00sqliteplocks\x00/\x00dummy\x00break\x00path error (len %d)\x00read error (len %d)\x00create failed (%d)\x00write failed (%d)\x00rename failed (%d)\x00broke stale lock on %s\n\x00failed to break stale lock on %s, %s\n\x00-conch\x00.lock\x00:auto: (not held)\x00unix\x00unix-none\x00unix-dotfile\x00unix-posix\x00unix-flock\x00unix-afp\x00unix-nfs\x00unix-proxy\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00PRAGMA \"%w\".integrity_check(%Q)\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00ceiling\x00floor\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00dylib\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00lock_proxy_file\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00failed to set lock proxy file\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00wrong # of entries in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00RIGHT PART OF \x00USE TEMP B-TREE FOR %sORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00parser stack overflow\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=0\x00COMPILER=clang-15.0.0\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00ceiling\x00floor\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%04d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00%u-ROW VALUES CLAUSE\x00(subquery-%u)\x00unrecognized token: \"%s\"\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSizeBetween\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00S\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00hfs\x00ufs\x00afpfs\x00smbfs\x00webdav\x00nfs\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00msdos\x00exfat\x00SQLITE_FORCE_PROXY_LOCKING\x00:auto:\x00fsync\x00/dev/urandom\x00sqliteplocks\x00/\x00dummy\x00break\x00path error (len %d)\x00read error (len %d)\x00create failed (%d)\x00write failed (%d)\x00rename failed (%d)\x00broke stale lock on %s\n\x00failed to break stale lock on %s, %s\n\x00-conch\x00.lock\x00:auto: (not held)\x00unix\x00unix-none\x00unix-dotfile\x00unix-posix\x00unix-flock\x00unix-afp\x00unix-nfs\x00unix-proxy\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: \"%s\" - should this be a string literal in single-quotes?\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00SCAN %S\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00dylib\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00lock_proxy_file\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00failed to set lock proxy file\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00wrong # of entries in index \x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00LAST TERM OF \x00USE TEMP B-TREE FOR %sORDER BY\x00USE TEMP B-TREE FOR LAST %d TERMS OF ORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00syntax error\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00,\n\x00: \x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00 \x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_pretty\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00" type Sqlite3_int64 = sqlite3_int64 type Sqlite3_mutex_methods = sqlite3_mutex_methods @@ -228490,3 +230452,4 @@ type Sqlite3_index_info = sqlite3_index_info type Sqlite3_module = sqlite3_module type Sqlite3_vtab = sqlite3_vtab type Sqlite3_vtab_cursor = sqlite3_vtab_cursor + diff --git a/vendor/modernc.org/sqlite/lib/sqlite_freebsd_amd64.go b/vendor/modernc.org/sqlite/lib/sqlite_freebsd_amd64.go index 74721ada..5b7a7293 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_freebsd_amd64.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_freebsd_amd64.go @@ -1,4 +1,4 @@ -// Code generated for freebsd/amd64 by 'generator -mlong-double-64 --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -import runtime -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -extended-errors -o sqlite3.go sqlite3.c -I/tmp/libsqlite3/sqlite-amalgamation-3450300/ccgo -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -ltcl8.6 -eval-all-macros', DO NOT EDIT. +// Code generated for freebsd/amd64 by 'generator -mlong-double-64 --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libz/include/freebsd/amd64 -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libtcl8.6/include/freebsd/amd64 -extended-errors -o sqlite3.go sqlite3.c -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -ltcl8.6 -eval-all-macros', DO NOT EDIT. //go:build freebsd && amd64 // +build freebsd,amd64 @@ -10,8 +10,6 @@ import ( "unsafe" "modernc.org/libc" - - "runtime" ) var ( @@ -847,6 +845,7 @@ const OPFLG_IN1 = 2 const OPFLG_IN2 = 4 const OPFLG_IN3 = 8 const OPFLG_JUMP = 1 +const OPFLG_JUMP0 = 128 const OPFLG_NCYCLE = 64 const OPFLG_OUT2 = 16 const OPFLG_OUT3 = 32 @@ -924,7 +923,7 @@ const OP_IfNotOpen = 25 const OP_IfNotZero = 60 const OP_IfNullRow = 20 const OP_IfPos = 59 -const OP_IfSmaller = 33 +const OP_IfSizeBetween = 33 const OP_IncrVacuum = 62 const OP_Init = 8 const OP_InitCoroutine = 11 @@ -1354,6 +1353,7 @@ const SF_ComplexResult = 262144 const SF_Compound = 256 const SF_Converted = 65536 const SF_CopyCte = 67108864 +const SF_Correlated = 536870912 const SF_Distinct = 1 const SF_Expanded = 64 const SF_FixedLimit = 16384 @@ -1577,6 +1577,7 @@ const SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT = -1 const SQLITE_DEFAULT_LOOKASIDE = 40 const SQLITE_DEFAULT_MEMSTATUS = 0 const SQLITE_DEFAULT_MMAP_SIZE = 0 +const SQLITE_DEFAULT_OPTIMIZE_LIMIT = 2000 const SQLITE_DEFAULT_PAGE_SIZE = 4096 const SQLITE_DEFAULT_PCACHE_INITSZ = 20 const SQLITE_DEFAULT_PROXYDIR_PERMISSIONS = 493 @@ -1594,6 +1595,7 @@ const SQLITE_DESERIALIZE_READONLY = 4 const SQLITE_DESERIALIZE_RESIZEABLE = 2 const SQLITE_DETACH = 25 const SQLITE_DETERMINISTIC = 2048 +const SQLITE_DIGIT_SEPARATOR = 95 const SQLITE_DIRECTONLY = 524288 const SQLITE_DIRECT_OVERFLOW_READ = 1 const SQLITE_DONE = 101 @@ -2018,7 +2020,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355" +const SQLITE_SOURCE_ID = "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2126,8 +2128,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.45.3" -const SQLITE_VERSION_NUMBER = 3045003 +const SQLITE_VERSION = "3.46.0" +const SQLITE_VERSION_NUMBER = 3046000 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -2225,11 +2227,11 @@ const TF_HasStat1 = 16 const TF_HasStat4 = 8192 const TF_HasStored = 64 const TF_HasVirtual = 32 +const TF_MaybeReanalyze = 256 const TF_NoVisibleRowid = 512 const TF_OOOHidden = 1024 const TF_Readonly = 1 const TF_Shadow = 4096 -const TF_StatsUsed = 256 const TF_Strict = 65536 const TF_WithoutRowid = 128 const TIMER_ABSTIME = 1 @@ -2337,7 +2339,7 @@ const TK_ID = 59 const TK_IF = 18 const TK_IF_NULL_ROW = 179 const TK_IGNORE = 63 -const TK_ILLEGAL = 184 +const TK_ILLEGAL = 185 const TK_IMMEDIATE = 8 const TK_IN = 49 const TK_INDEX = 161 @@ -2385,6 +2387,7 @@ const TK_PRAGMA = 70 const TK_PRECEDING = 88 const TK_PRIMARY = 122 const TK_PTR = 112 +const TK_QNUMBER = 183 const TK_QUERY = 3 const TK_RAISE = 71 const TK_RANGE = 89 @@ -2409,7 +2412,7 @@ const TK_SELECT_COLUMN = 178 const TK_SEMI = 1 const TK_SET = 130 const TK_SLASH = 109 -const TK_SPACE = 183 +const TK_SPACE = 184 const TK_SPAN = 181 const TK_STAR = 108 const TK_STRING = 117 @@ -2422,12 +2425,12 @@ const TK_TRANSACTION = 6 const TK_TRIGGER = 77 const TK_TRUEFALSE = 170 const TK_TRUTH = 175 -const TK_UMINUS = 173 +const TK_UMINUS = 174 const TK_UNBOUNDED = 90 const TK_UNION = 134 const TK_UNIQUE = 123 const TK_UPDATE = 129 -const TK_UPLUS = 174 +const TK_UPLUS = 173 const TK_USING = 144 const TK_VACUUM = 78 const TK_VALUES = 139 @@ -2585,31 +2588,37 @@ const W_OK = 2 const XN_EXPR = -2 const XN_ROWID = -1 const X_OK = 1 +const YYDYNSTACK = 1 const YYFALLBACK = 1 +const YYFREE = 0 +const YYGROWABLESTACK = 1 const YYMALLOCARGTYPE = 0 -const YYNOCODE = 319 +const YYNOCODE = 322 const YYNOERRORRECOVERY = 1 -const YYNRULE = 405 -const YYNRULE_WITH_ACTION = 340 -const YYNSTATE = 579 -const YYNTOKEN = 185 +const YYNRULE = 409 +const YYNRULE_WITH_ACTION = 344 +const YYNSTATE = 583 +const YYNTOKEN = 186 const YYPARSEFREENEVERNULL = 1 +const YYREALLOC = 0 const YYSTACKDEPTH = 100 const YYWILDCARD = 101 -const YY_ACCEPT_ACTION = 1244 -const YY_ACTTAB_COUNT = 2100 -const YY_ERROR_ACTION = 1243 -const YY_MAX_REDUCE = 1650 -const YY_MAX_SHIFT = 578 -const YY_MAX_SHIFTREDUCE = 1242 -const YY_MIN_REDUCE = 1246 -const YY_MIN_SHIFTREDUCE = 838 -const YY_NO_ACTION = 1245 -const YY_REDUCE_COUNT = 410 -const YY_REDUCE_MAX = 1753 -const YY_REDUCE_MIN = -271 -const YY_SHIFT_COUNT = 578 -const YY_SHIFT_MAX = 2088 +const YY_ACCEPT_ACTION = 1255 +const YY_ACTTAB_COUNT = 2142 +const YY_ERROR_ACTION = 1254 +const YY_MAX_DSTRCTR = 319 +const YY_MAX_REDUCE = 1665 +const YY_MAX_SHIFT = 582 +const YY_MAX_SHIFTREDUCE = 1253 +const YY_MIN_DSTRCTR = 205 +const YY_MIN_REDUCE = 1257 +const YY_MIN_SHIFTREDUCE = 845 +const YY_NO_ACTION = 1256 +const YY_REDUCE_COUNT = 411 +const YY_REDUCE_MAX = 1798 +const YY_REDUCE_MIN = -275 +const YY_SHIFT_COUNT = 582 +const YY_SHIFT_MAX = 2128 const YY_SHIFT_MIN = 0 const _BYTE_ORDER = 1234 const _CS_PATH = 1 @@ -3309,6 +3318,9 @@ const fds_bits = 0 const first_valueInvFunc = 0 const first_valueValueFunc = 0 const fts5GetVarint = 0 +const fts5YYDYNSTACK = 0 +const fts5YYFREE = 0 +const fts5YYGROWABLESTACK = 0 const fts5YYMALLOCARGTYPE = 0 const fts5YYNFTS5TOKEN = 16 const fts5YYNOCODE = 27 @@ -3317,13 +3329,16 @@ const fts5YYNRULE = 28 const fts5YYNRULE_WITH_ACTION = 28 const fts5YYNSTATE = 35 const fts5YYPARSEFREENOTNULL = 1 +const fts5YYREALLOC = 0 const fts5YYSTACKDEPTH = 100 const fts5YY_ACCEPT_ACTION = 81 const fts5YY_ACTTAB_COUNT = 105 const fts5YY_ERROR_ACTION = 80 +const fts5YY_MAX_DSTRCTR = 24 const fts5YY_MAX_REDUCE = 110 const fts5YY_MAX_SHIFT = 34 const fts5YY_MAX_SHIFTREDUCE = 79 +const fts5YY_MIN_DSTRCTR = 16 const fts5YY_MIN_REDUCE = 83 const fts5YY_MIN_SHIFTREDUCE = 52 const fts5YY_NO_ACTION = 82 @@ -3934,11 +3949,11 @@ type sqlite3_file1 = Tsqlite3_file1 // ** // ** xLock() upgrades the database file lock. In other words, xLock() moves the // ** database file lock in the direction NONE toward EXCLUSIVE. The argument to -// ** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +// ** xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never // ** SQLITE_LOCK_NONE. If the database file lock is already at or above the // ** requested lock, then the call to xLock() is a no-op. // ** xUnlock() downgrades the database file lock to either SHARED or NONE. -// * If the lock is already at or below the requested lock state, then the call +// ** If the lock is already at or below the requested lock state, then the call // ** to xUnlock() is a no-op. // ** The xCheckReservedLock() method checks whether any database connection, // ** either in this process or in some other process, is holding a RESERVED, @@ -5718,6 +5733,7 @@ type Tsqlite3_changegroup = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -6044,8 +6060,8 @@ type Fts5PhraseIter1 = TFts5PhraseIter1 ** EXTENSION API FUNCTIONS ** ** xUserData(pFts): -** Return a copy of the context pointer the extension function was -** registered with. +** Return a copy of the pUserData pointer passed to the xCreateFunction() +** API when the extension function was registered. ** ** xColumnTotalSize(pFts, iCol, pnToken): ** If parameter iCol is less than zero, set output variable *pnToken @@ -7203,7 +7219,7 @@ type uptr = Tuptr ** 0x00000010 Display sqlite3_index_info xBestIndex calls ** 0x00000020 Range an equality scan metrics ** 0x00000040 IN operator decisions -** 0x00000080 WhereLoop cost adjustements +** 0x00000080 WhereLoop cost adjustments ** 0x00000100 ** 0x00000200 Covering index decisions ** 0x00000400 OR optimization @@ -7715,6 +7731,7 @@ type TParse = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -7934,6 +7951,7 @@ type TSrcItem = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -10210,10 +10228,12 @@ type IdList1 = TIdList1 ** ** Union member validity: ** -** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc -** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy -** u2.pIBIndex fg.isIndexedBy && !fg.isCte -** u2.pCteUse fg.isCte && !fg.isIndexedBy +** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc +** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy +** u1.nRow !fg.isTabFunc && !fg.isIndexedBy +** +** u2.pIBIndex fg.isIndexedBy && !fg.isCte +** u2.pCteUse fg.isCte && !fg.isIndexedBy */ type TSrcItem1 = struct { FpSchema uintptr @@ -10239,6 +10259,7 @@ type TSrcItem1 = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -10642,6 +10663,7 @@ type TParse1 = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -12004,12 +12026,12 @@ var _sqlite3WhereTrace = uint32(0) var _sqlite3OpcodeProperty = [190]uint8{ 4: uint8(0x10), 6: uint8(0x41), - 8: uint8(0x01), + 8: uint8(0x81), 9: uint8(0x01), 10: uint8(0x01), - 11: uint8(0x01), - 12: uint8(0x03), - 13: uint8(0x03), + 11: uint8(0x81), + 12: uint8(0x83), + 13: uint8(0x83), 14: uint8(0x01), 15: uint8(0x01), 16: uint8(0x03), @@ -12017,22 +12039,22 @@ var _sqlite3OpcodeProperty = [190]uint8{ 18: uint8(0x01), 19: uint8(0x12), 20: uint8(0x01), - 21: uint8(0x49), - 22: uint8(0x49), - 23: uint8(0x49), - 24: uint8(0x49), + 21: uint8(0xc9), + 22: uint8(0xc9), + 23: uint8(0xc9), + 24: uint8(0xc9), 25: uint8(0x01), 26: uint8(0x49), 27: uint8(0x49), 28: uint8(0x49), 29: uint8(0x49), - 30: uint8(0x49), + 30: uint8(0xc9), 31: uint8(0x49), - 32: uint8(0x41), + 32: uint8(0xc1), 33: uint8(0x01), 34: uint8(0x41), 35: uint8(0x41), - 36: uint8(0x41), + 36: uint8(0xc1), 37: uint8(0x01), 38: uint8(0x41), 39: uint8(0x41), @@ -12044,7 +12066,7 @@ var _sqlite3OpcodeProperty = [190]uint8{ 45: uint8(0x41), 46: uint8(0x23), 47: uint8(0x0b), - 48: uint8(0x01), + 48: uint8(0x81), 49: uint8(0x01), 50: uint8(0x03), 51: uint8(0x03), @@ -12899,7 +12921,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= int32(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(23890)) + return _sqlite3MisuseError(tls, int32(23961)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -13247,43 +13269,37 @@ type tm = Ttm // ** A structure for holding a single date and time. // */ type TDateTime = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD int8 - FrawS int8 - FvalidYMD int8 - FvalidHMS int8 - FvalidTZ int8 - FtzSet int8 - FisError int8 - FuseSubsec int8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD int8 + FvalidYMD int8 + FvalidHMS int8 + FnFloor int8 + F__ccgo44 uint8 } type DateTime = TDateTime type TDateTime1 = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD int8 - FrawS int8 - FvalidYMD int8 - FvalidHMS int8 - FvalidTZ int8 - FtzSet int8 - FisError int8 - FuseSubsec int8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD int8 + FvalidYMD int8 + FvalidHMS int8 + FnFloor int8 + F__ccgo44 uint8 } type DateTime1 = TDateTime1 @@ -13352,6 +13368,7 @@ func _getDigits(tls *libc.TLS, zDate uintptr, zFormat uintptr, va uintptr) (r in cnt++ zFormat += uintptr(4) } + goto end_getDigits end_getDigits: ; _ = ap @@ -13408,6 +13425,8 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } else { if c == int32('Z') || c == int32('z') { zDate++ + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) goto zulu_time } else { return libc.BoolInt32(c != 0) @@ -13420,12 +13439,12 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } zDate += uintptr(5) (*TDateTime)(unsafe.Pointer(p)).Ftz = sgn * (*(*int32)(unsafe.Pointer(bp + 4)) + *(*int32)(unsafe.Pointer(bp))*int32(60)) + goto zulu_time zulu_time: ; for int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zDate)))])&int32(0x01) != 0 { zDate++ } - (*TDateTime)(unsafe.Pointer(p)).FtzSet = int8(1) return libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zDate))) != 0) } @@ -13442,11 +13461,10 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var ms, rScale float64 - var v1 int32 var _ /* h at bp+0 */ int32 var _ /* m at bp+4 */ int32 var _ /* s at bp+8 */ int32 - _, _, _ = ms, rScale, v1 + _, _ = ms, rScale ms = float64(0) if _getDigits(tls, zDate, __ccgo_ts+1164, libc.VaList(bp+24, bp, bp+4)) != int32(2) { return int32(1) @@ -13472,7 +13490,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 8)) = 0 } (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) (*TDateTime)(unsafe.Pointer(p)).Fh = *(*int32)(unsafe.Pointer(bp)) (*TDateTime)(unsafe.Pointer(p)).Fm = *(*int32)(unsafe.Pointer(bp + 4)) @@ -13480,12 +13498,6 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { if _parseTimezone(tls, zDate, p) != 0 { return int32(1) } - if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { - v1 = int32(1) - } else { - v1 = 0 - } - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = int8(v1) return 0 } @@ -13496,7 +13508,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { // */ func _datetimeError(tls *libc.TLS, p uintptr) { libc.Xmemset(tls, p, 0, uint64(48)) - (*TDateTime)(unsafe.Pointer(p)).FisError = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 1, 0x2) } // C documentation @@ -13522,7 +13534,7 @@ func _computeJD(tls *libc.TLS, p uintptr) { M = int32(1) D = int32(1) } - if Y < -int32(4713) || Y > int32(9999) || (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Y < -int32(4713) || Y > int32(9999) || int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { _datetimeError(tls, p) return } @@ -13538,11 +13550,41 @@ func _computeJD(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) if (*TDateTime)(unsafe.Pointer(p)).FvalidHMS != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) += int64((*TDateTime)(unsafe.Pointer(p)).Fh*int32(3600000)+(*TDateTime)(unsafe.Pointer(p)).Fm*int32(60000)) + int64((*TDateTime)(unsafe.Pointer(p)).Fs*libc.Float64FromInt32(1000)+libc.Float64FromFloat64(0.5)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64((*TDateTime)(unsafe.Pointer(p)).Ftz * int32(60000)) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + } + } +} + +// C documentation +// +// /* +// ** Given the YYYY-MM-DD information current in p, determine if there +// ** is day-of-month overflow and set nFloor to the number of days that +// ** would need to be subtracted from the date in order to bring the +// ** date back to the end of the month. +// */ +func _computeFloor(tls *libc.TLS, p uintptr) { + if (*TDateTime)(unsafe.Pointer(p)).FD <= int32(28) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } else { + if int32(1)<<(*TDateTime)(unsafe.Pointer(p)).FM&int32(0x15aa) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } else { + if (*TDateTime)(unsafe.Pointer(p)).FM != int32(2) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = libc.BoolInt8((*TDateTime)(unsafe.Pointer(p)).FD == libc.Int32FromInt32(31)) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FY%int32(4) != 0 || (*TDateTime)(unsafe.Pointer(p)).FY%int32(100) == 0 && (*TDateTime)(unsafe.Pointer(p)).FY%int32(400) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = int8((*TDateTime)(unsafe.Pointer(p)).FD - int32(28)) + } else { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = int8((*TDateTime)(unsafe.Pointer(p)).FD - int32(29)) + } + } } } } @@ -13601,12 +13643,15 @@ func _parseYyyyMmDd(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FY = v1 (*TDateTime)(unsafe.Pointer(p)).FM = *(*int32)(unsafe.Pointer(bp + 4)) (*TDateTime)(unsafe.Pointer(p)).FD = *(*int32)(unsafe.Pointer(bp + 8)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + _computeFloor(tls, p) + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { _computeJD(tls, p) } return 0 } +/* Forward declaration */ + // C documentation // // /* @@ -13618,6 +13663,9 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) (*TDateTime)(unsafe.Pointer(p)).FiJD = _sqlite3StmtCurrentTime(tls, context) if (*TDateTime)(unsafe.Pointer(p)).FiJD > 0 { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + _clearYMD_HMS_TZ(tls, p) return 0 } else { return int32(1) @@ -13635,7 +13683,7 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) // */ func _setRawDateNumber(tls *libc.TLS, p uintptr, r float64) { (*TDateTime)(unsafe.Pointer(p)).Fs = r - (*TDateTime)(unsafe.Pointer(p)).FrawS = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 0, 0x1) if r >= float64(0) && r < float64(5.3734845e+06) { (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r*libc.Float64FromFloat64(8.64e+07) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) @@ -13678,7 +13726,7 @@ func _parseDateOrTime(tls *libc.TLS, context uintptr, zDate uintptr, p uintptr) return 0 } else { if (_sqlite3StrICmp(tls, zDate, __ccgo_ts+1192) == 0 || _sqlite3StrICmp(tls, zDate, __ccgo_ts+1199) == 0) && _sqlite3NotPureFunc(tls, context) != 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) return _setDateTimeToCurrent(tls, context, p) } } @@ -13770,7 +13818,7 @@ func _computeHMS(tls *libc.TLS, p uintptr) { day_min = day_ms / int32(60000) (*TDateTime)(unsafe.Pointer(p)).Fm = day_min % int32(60) (*TDateTime)(unsafe.Pointer(p)).Fh = day_min / int32(60) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) } @@ -13792,7 +13840,7 @@ func _computeYMD_HMS(tls *libc.TLS, p uintptr) { func _clearYMD_HMS_TZ(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 } /* @@ -13893,9 +13941,9 @@ func _toLocaltime(tls *libc.TLS, p uintptr, pCtx uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = int8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 - (*TDateTime)(unsafe.Pointer(p)).FisError = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 1, 0x2) return SQLITE_OK } @@ -13943,13 +13991,13 @@ var _aXformType = [6]struct { FnName: uint8(5), FzName: [7]int8{'m', 'o', 'n', 't', 'h'}, FrLimit: float32(176546), - FrXform: float32(2.592e+06), + FrXform: float32(libc.Float64FromFloat64(30) * libc.Float64FromFloat64(86400)), }, 5: { FnName: uint8(4), FzName: [7]int8{'y', 'e', 'a', 'r'}, FrLimit: float32(14713), - FrXform: float32(3.1536e+07), + FrXform: float32(libc.Float64FromFloat64(365) * libc.Float64FromFloat64(86400)), }, } @@ -13963,15 +14011,15 @@ var _aXformType = [6]struct { func _autoAdjustDate(tls *libc.TLS, p uintptr) { var r float64 _ = r - if !((*TDateTime)(unsafe.Pointer(p)).FrawS != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + if !(int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } else { if (*TDateTime)(unsafe.Pointer(p)).Fs >= float64(int64(-libc.Int32FromInt32(21086676))*libc.Int64FromInt32(10000)) && (*TDateTime)(unsafe.Pointer(p)).Fs <= float64(libc.Int64FromInt32(25340230)*libc.Int64FromInt32(10000)+libc.Int64FromInt32(799)) { r = (*TDateTime)(unsafe.Pointer(p)).Fs*float64(1000) + float64(2.1086676e+14) _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } } @@ -13988,14 +14036,20 @@ func _autoAdjustDate(tls *libc.TLS, p uintptr) { // ** NNN.NNNN seconds // ** NNN months // ** NNN years +// ** +/-YYYY-MM-DD HH:MM:SS.SSS +// ** ceiling +// ** floor // ** start of month // ** start of year // ** start of week // ** start of day // ** weekday N // ** unixepoch +// ** auto // ** localtime // ** utc +// ** subsec +// ** subsecond // ** // ** Return 0 on success and 1 if there is any kind of error. If the error // ** is in a system call (i.e. localtime()), then an error message is written @@ -14006,12 +14060,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, bp := tls.Alloc(160) defer tls.Free(160) var Z, day Tsqlite3_int64 - var cnt, i, rc, x, y, v12, v2, v5, v7, v9 int32 - var iErr, iGuess, iOrigJD, v1 Ti64 - var rRounder, v10 float64 + var cnt, i, rc, x, y, v1, v10, v13, v3, v6, v8 int32 + var iErr, iGuess, iOrigJD, v2 Ti64 + var rRounder, v11 float64 var z0 int8 var z2 uintptr - var v3, v6 bool + var v4, v7 bool var _ /* D at bp+64 */ int32 var _ /* M at bp+60 */ int32 var _ /* Y at bp+56 */ int32 @@ -14020,7 +14074,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, var _ /* new at bp+8 */ TDateTime var _ /* r at bp+0 */ float64 var _ /* tx at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v12, v2, v3, v5, v6, v7, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v11, v13, v2, v3, v4, v6, v7, v8 rc = int32(1) switch int32(_sqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z)))]) { case int32('a'): @@ -14037,6 +14091,33 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _autoAdjustDate(tls, p) rc = 0 } + case int32('c'): + /* + ** ceiling + ** + ** Resolve day-of-month overflow by rolling forward into the next + ** month. As this is the default action, this modifier is really + ** a no-op that is only included for symmetry. See "floor". + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1237) == 0 { + _computeJD(tls, p) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } + case int32('f'): + /* + ** floor + ** + ** Resolve day-of-month overflow by rolling back to the end of the + ** previous month. + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1245) == 0 { + _computeJD(tls, p) + *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64(int32((*TDateTime)(unsafe.Pointer(p)).FnFloor) * int32(86400000)) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + } case int32('j'): /* ** julianday @@ -14046,13 +14127,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** value in the allowed range of julian day numbers understood by ** SQLite (0..5373484.5) then the result will be NULL. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1237) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1251) == 0 { if idx > int32(1) { return int32(1) } /* IMP: R-31176-64601 */ - if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { rc = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } case int32('l'): @@ -14061,8 +14142,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Assuming the current time value is UTC (a.k.a. GMT), shift it to ** show local time. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1247) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - rc = _toLocaltime(tls, p, pCtx) + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1261) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x10>>4)) != 0 { + v1 = SQLITE_OK + } else { + v1 = _toLocaltime(tls, p, pCtx) + } + rc = v1 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 4, 0x10) } case int32('u'): /* @@ -14071,7 +14159,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Treat the current value of p->s as the number of ** seconds since 1970. Convert to a real julian day number. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1257) == 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1271) == 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { if idx > int32(1) { return int32(1) } /* IMP: R-49255-55373 */ @@ -14080,17 +14168,17 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(*(*float64)(unsafe.Pointer(bp)) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) rc = 0 } } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1267) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - if int32((*TDateTime)(unsafe.Pointer(p)).FtzSet) == 0 { /* Guess at the corresponding utc time */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1281) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x8>>3)) == 0 { /* Guess at the corresponding utc time */ cnt = 0 /* Guess is off by this much */ _computeJD(tls, p) - v1 = (*TDateTime)(unsafe.Pointer(p)).FiJD - iOrigJD = v1 - iGuess = v1 + v2 = (*TDateTime)(unsafe.Pointer(p)).FiJD + iOrigJD = v2 + iGuess = v2 iErr = 0 for { libc.Xmemset(tls, bp+8, 0, uint64(48)) @@ -14103,21 +14191,22 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, bp+8) iErr = (*(*TDateTime)(unsafe.Pointer(bp + 8))).FiJD - iOrigJD - goto _4 - _4: + goto _5 + _5: ; - if v3 = iErr != 0; v3 { - v2 = cnt + if v4 = iErr != 0; v4 { + v3 = cnt cnt++ } - if !(v3 && v2 < int32(3)) { + if !(v4 && v3 < int32(3)) { break } } libc.Xmemset(tls, p, 0, uint64(48)) (*TDateTime)(unsafe.Pointer(p)).FiJD = iGuess (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FtzSet = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) } rc = SQLITE_OK } @@ -14130,13 +14219,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** weekday N where 0==Sunday, 1==Monday, and so forth. If the ** date is already on the appropriate weekday, this is a no-op. */ - if v6 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1271, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v6 { - v5 = int32(*(*float64)(unsafe.Pointer(bp))) - n = v5 + if v7 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1285, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v7 { + v6 = int32(*(*float64)(unsafe.Pointer(bp))) + n = v6 } - if v6 && float64(v5) == *(*float64)(unsafe.Pointer(bp)) { + if v7 && float64(v6) == *(*float64)(unsafe.Pointer(bp)) { _computeYMD_HMS(tls, p) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 _computeJD(tls, p) Z = ((*TDateTime)(unsafe.Pointer(p)).FiJD + int64(129600000)) / int64(86400000) % int64(7) @@ -14160,9 +14249,9 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Show subsecond precision in the output of datetime() and ** unixepoch() and strftime('%s'). */ - if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1280, int32(9)) != 0 { + if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1294, int32(9)) != 0 { if Xsqlite3_stricmp(tls, z, __ccgo_ts+1192) == 0 || Xsqlite3_stricmp(tls, z, __ccgo_ts+1199) == 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) rc = 0 } break @@ -14173,23 +14262,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z += uintptr(9) _computeYMD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) - v7 = libc.Int32FromInt32(0) - (*TDateTime)(unsafe.Pointer(p)).Fm = v7 - (*TDateTime)(unsafe.Pointer(p)).Fh = v7 + v8 = libc.Int32FromInt32(0) + (*TDateTime)(unsafe.Pointer(p)).Fm = v8 + (*TDateTime)(unsafe.Pointer(p)).Fh = v8 (*TDateTime)(unsafe.Pointer(p)).Fs = float64(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1290) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1304) == 0 { (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1296) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1310) == 0 { (*TDateTime)(unsafe.Pointer(p)).FM = int32(1) (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1301) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1315) == 0 { rc = 0 } } @@ -14231,15 +14320,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } if int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) == int32('-') { - if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1305, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1319, libc.VaList(bp+136, bp+56)) == int32(1) { break } - if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1309, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1323, libc.VaList(bp+136, bp+56)) == int32(1) { break } } - goto _8 - _8: + goto _9 + _9: ; n++ } @@ -14255,11 +14344,11 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } /* Must start with +/- */ if n == int32(5) { - if _getDigits(tls, z+1, __ccgo_ts+1313, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1327, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } } else { - if _getDigits(tls, z+1, __ccgo_ts+1325, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1339, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } z++ @@ -14281,13 +14370,14 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, *(*int32)(unsafe.Pointer(p + 12)) += *(*int32)(unsafe.Pointer(bp + 60)) } if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v9 + x = v10 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) _computeJD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 @@ -14331,7 +14421,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z++ } n = _sqlite3Strlen30(tls, z) - if n > int32(10) || n < int32(3) { + if n < int32(3) || n > int32(10) { break } if int32(_sqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z + uintptr(n-int32(1)))))]) == int32('s') { @@ -14339,11 +14429,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, p) if *(*float64)(unsafe.Pointer(bp)) < libc.Float64FromInt32(0) { - v10 = -libc.Float64FromFloat64(0.5) + v11 = -libc.Float64FromFloat64(0.5) } else { - v10 = +libc.Float64FromFloat64(0.5) + v11 = +libc.Float64FromFloat64(0.5) } - rRounder = v10 + rRounder = v11 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 i = 0 for { if !(i < int32(libc.Uint64FromInt64(96)/libc.Uint64FromInt64(16))) { @@ -14355,19 +14446,21 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 12)) += int32(*(*float64)(unsafe.Pointer(bp))) if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v12 + x = v13 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) case int32(5): /* Special processing to add years */ y = int32(*(*float64)(unsafe.Pointer(bp))) _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 8)) += y + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) break @@ -14377,8 +14470,8 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, rc = 0 break } - goto _11 - _11: + goto _12 + _12: ; i++ } @@ -14437,7 +14530,7 @@ func _isDate(tls *libc.TLS, context uintptr, argc int32, argv uintptr, p uintptr i++ } _computeJD(tls, p) - if (*TDateTime)(unsafe.Pointer(p)).FisError != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x2>>1)) != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { return int32(1) } if argc == int32(1) && (*TDateTime)(unsafe.Pointer(p)).FvalidYMD != 0 && (*TDateTime)(unsafe.Pointer(p)).FD > int32(28) { @@ -14484,7 +14577,7 @@ func _unixepochFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _ /* x at bp+0 */ TDateTime if _isDate(tls, context, argc, argv, bp) == 0 { _computeJD(tls, bp) - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { Xsqlite3_result_double(tls, context, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000)) } else { Xsqlite3_result_int64(tls, context, (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/int64(1000)-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000)) @@ -14529,7 +14622,7 @@ func _datetimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(15)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(16)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(17)] = int8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(18)] = int8(int32('0') + s/int32(10000)%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(19)] = int8(int32('0') + s/int32(1000)%int32(10)) @@ -14577,7 +14670,7 @@ func _timeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(3)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(4)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(5)] = int8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(6)] = int8(int32('0') + s/int32(10000)%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(7)] = int8(int32('0') + s/int32(1000)%int32(10)) @@ -14638,6 +14731,57 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } +// C documentation +// +// /* +// ** Compute the number of days after the most recent January 1. +// ** +// ** In other words, compute the zero-based day number for the +// ** current year: +// ** +// ** Jan01 = 0, Jan02 = 1, ..., Jan31 = 30, Feb01 = 31, ... +// ** Dec31 = 364 or 365. +// */ +func _daysAfterJan01(tls *libc.TLS, pDate uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* jan01 at bp+0 */ TDateTime + *(*TDateTime)(unsafe.Pointer(bp)) = *(*TDateTime)(unsafe.Pointer(pDate)) + (*(*TDateTime)(unsafe.Pointer(bp))).FvalidJD = 0 + (*(*TDateTime)(unsafe.Pointer(bp))).FM = int32(1) + (*(*TDateTime)(unsafe.Pointer(bp))).FD = int32(1) + _computeJD(tls, bp) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD - (*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Monday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Monday, 1=Tuesday, 2=Wednesday, ..., 6=Sunday. +// */ +func _daysAfterMonday(tls *libc.TLS, pDate uintptr) (r int32) { + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(43200000))/libc.Int64FromInt32(86400000)) % int32(7) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Sunday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Sunday, 1=Monday, 2=Tues, ..., 6=Saturday +// */ +func _daysAfterSunday(tls *libc.TLS, pDate uintptr) (r int32) { + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)) % int32(7) +} + // C documentation // // /* @@ -14645,33 +14789,48 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { // ** // ** Return a string described by FORMAT. Conversions as follows: // ** -// ** %d day of month +// ** %d day of month 01-31 +// ** %e day of month 1-31 // ** %f ** fractional seconds SS.SSS +// ** %F ISO date. YYYY-MM-DD +// ** %G ISO year corresponding to %V 0000-9999. +// ** %g 2-digit ISO year corresponding to %V 00-99 // ** %H hour 00-24 -// ** %j day of year 000-366 +// ** %k hour 0-24 (leading zero converted to space) +// ** %I hour 01-12 +// ** %j day of year 001-366 // ** %J ** julian day number +// ** %l hour 1-12 (leading zero converted to space) // ** %m month 01-12 // ** %M minute 00-59 +// ** %p "am" or "pm" +// ** %P "AM" or "PM" +// ** %R time as HH:MM // ** %s seconds since 1970-01-01 // ** %S seconds 00-59 -// ** %w day of week 0-6 Sunday==0 -// ** %W week of year 00-53 +// ** %T time as HH:MM:SS +// ** %u day of week 1-7 Monday==1, Sunday==7 +// ** %w day of week 0-6 Sunday==0, Monday==1 +// ** %U week of year 00-53 (First Sunday is start of week 01) +// ** %V week of year 01-53 (First week containing Thursday is week 01) +// ** %W week of year 00-53 (First Monday is start of week 01) // ** %Y year 0000-9999 // ** %% % // */ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { - bp := tls.Alloc(160) - defer tls.Free(160) + bp := tls.Alloc(208) + defer tls.Free(208) var c, cf int8 var db, zFmt, v3, v4, v5, v6, v7 uintptr - var h, nDay, wd int32 + var h int32 var i, j, v2 Tsize_t var iS Ti64 var s float64 var _ /* sRes at bp+48 */ Tsqlite3_str var _ /* x at bp+0 */ TDateTime + var _ /* y at bp+128 */ TDateTime var _ /* y at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, nDay, s, wd, zFmt, v2, v3, v4, v5, v6, v7 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, s, zFmt, v2, v3, v4, v5, v6, v7 if argc == 0 { return } @@ -14704,28 +14863,41 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { fallthrough case int32('e'): if int32(cf) == int32('d') { - v3 = __ccgo_ts + 1337 + v3 = __ccgo_ts + 1351 } else { - v3 = __ccgo_ts + 1342 + v3 = __ccgo_ts + 1356 } - Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) - case int32('f'): + Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('f'): /* Fractional seconds. (Non-standard) */ s = (*(*TDateTime)(unsafe.Pointer(bp))).Fs if s > float64(59.999) { s = float64(59.999) } - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1346, libc.VaList(bp+136, s)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1360, libc.VaList(bp+184, s)) case int32('F'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1353, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1367, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('G'): /* Fall thru */ + fallthrough + case int32('g'): + *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Move y so that it is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidYMD = 0 + _computeYMD(tls, bp+80) + if int32(cf) == int32('g') { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY%int32(100))) + } else { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1382, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY)) + } case int32('H'): fallthrough case int32('k'): if int32(cf) == int32('H') { - v4 = __ccgo_ts + 1337 + v4 = __ccgo_ts + 1351 } else { - v4 = __ccgo_ts + 1342 + v4 = __ccgo_ts + 1356 } - Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) + Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) case int32('I'): /* Fall thru */ fallthrough case int32('l'): @@ -14737,73 +14909,71 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { h = int32(12) } if int32(cf) == int32('I') { - v5 = __ccgo_ts + 1337 - } else { - v5 = __ccgo_ts + 1342 - } - Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+136, h)) - case int32('W'): /* Fall thru */ - fallthrough - case int32('j'): /* Number of days since 1st day of year */ - *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidJD = 0 - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FM = int32(1) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FD = int32(1) - _computeJD(tls, bp+80) - nDay = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) - if int32(cf) == int32('W') { /* 0=Monday, 1=Tuesday, ... 6=Sunday */ - wd = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000) % libc.Int64FromInt32(7)) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1337, libc.VaList(bp+136, (nDay+int32(7)-wd)/int32(7))) + v5 = __ccgo_ts + 1351 } else { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1368, libc.VaList(bp+136, nDay+int32(1))) + v5 = __ccgo_ts + 1356 } - case int32('J'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1373, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) + Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+184, h)) + case int32('j'): /* Day of year. Jan01==1, Jan02==2, and so forth */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1387, libc.VaList(bp+184, _daysAfterJan01(tls, bp)+int32(1))) + case int32('J'): /* Julian day number. (Non-standard) */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1392, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) case int32('m'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1337, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) case int32('M'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1337, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('p'): /* Fall thru */ fallthrough case int32('P'): if (*(*TDateTime)(unsafe.Pointer(bp))).Fh >= int32(12) { if int32(cf) == int32('p') { - v6 = __ccgo_ts + 1379 + v6 = __ccgo_ts + 1398 } else { - v6 = __ccgo_ts + 1382 + v6 = __ccgo_ts + 1401 } Xsqlite3_str_append(tls, bp+48, v6, int32(2)) } else { if int32(cf) == int32('p') { - v7 = __ccgo_ts + 1385 + v7 = __ccgo_ts + 1404 } else { - v7 = __ccgo_ts + 1388 + v7 = __ccgo_ts + 1407 } Xsqlite3_str_append(tls, bp+48, v7, int32(2)) } case int32('R'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1391, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1410, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('s'): - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1401, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1420, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) } else { iS = (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/libc.Int64FromInt32(1000) - libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1406, libc.VaList(bp+136, iS)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1425, libc.VaList(bp+184, iS)) } case int32('S'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1337, libc.VaList(bp+136, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) case int32('T'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1411, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) - case int32('u'): /* Fall thru */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1430, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + case int32('u'): /* Day of week. 1 to 7. Monday==1, Sunday==7 */ fallthrough - case int32('w'): - c = int8(int32(int8(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)%libc.Int64FromInt32(7))) + int32('0')) + case int32('w'): /* Day of week. 0 to 6. Sunday==0, Monday==1 */ + c = int8(int32(int8(_daysAfterSunday(tls, bp))) + int32('0')) if int32(c) == int32('0') && int32(cf) == int32('u') { c = int8('7') } Xsqlite3_str_appendchar(tls, bp+48, int32(1), c) + case int32('U'): /* Week num. 00-53. First Sun of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterSunday(tls, bp)+int32(7))/int32(7))) + case int32('V'): /* Week num. 01-53. First week with a Thur is week 01 */ + *(*TDateTime)(unsafe.Pointer(bp + 128)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Adjust y so that is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FvalidYMD = 0 + _computeYMD(tls, bp+128) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, _daysAfterJan01(tls, bp+128)/int32(7)+int32(1))) + case int32('W'): /* Week num. 00-53. First Mon of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterMonday(tls, bp)+int32(7))/int32(7))) case int32('Y'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1426, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1382, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) case int32('%'): Xsqlite3_str_appendchar(tls, bp+48, int32(1), int8('%')) default: @@ -14956,12 +15126,10 @@ func _timediffFunc(tls *libc.TLS, context uintptr, NotUsed1 int32, argv uintptr) p2 = bp *(*Tsqlite3_int64)(unsafe.Pointer(p2)) = Tsqlite3_int64(uint64(*(*Tsqlite3_int64)(unsafe.Pointer(p2))) + libc.Uint64FromInt32(1486995408)*libc.Uint64FromInt32(100000)) } - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidYMD = 0 - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidHMS = 0 - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidTZ = 0 + _clearYMD_HMS_TZ(tls, bp) _computeYMD_HMS(tls, bp) _sqlite3StrAccumInit(tls, bp+96, uintptr(0), uintptr(0), 0, int32(100)) - Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1431, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) + Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1445, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) _sqlite3ResultStrAccum(tls, context, bp+96) } @@ -14994,55 +15162,55 @@ var _aDateTimeFuncs = [10]TFuncDef{ FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1237, + FzName: __ccgo_ts + 1251, }, 1: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1257, + FzName: __ccgo_ts + 1271, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1465, + FzName: __ccgo_ts + 1479, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1470, + FzName: __ccgo_ts + 1484, }, 4: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1475, + FzName: __ccgo_ts + 1489, }, 5: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1484, + FzName: __ccgo_ts + 1498, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1493, + FzName: __ccgo_ts + 1507, }, 7: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1502, + FzName: __ccgo_ts + 1516, }, 8: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1515, + FzName: __ccgo_ts + 1529, }, 9: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1533, + FzName: __ccgo_ts + 1547, }, } @@ -15713,7 +15881,7 @@ func _sqlite3MemMalloc(tls *libc.TLS, nByte int32) (r uintptr) { *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1546, libc.VaList(bp+8, nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1560, libc.VaList(bp+8, nByte)) } return p } @@ -15775,7 +15943,7 @@ func _sqlite3MemRealloc(tls *libc.TLS, pPrior uintptr, nByte int32) (r uintptr) *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1584, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1598, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) } return p } @@ -17143,7 +17311,7 @@ func _sqlite3OomFault(tls *libc.TLS, db uintptr) (r uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++ (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = uint16(0) if (*Tsqlite3)(unsafe.Pointer(db)).FpParse != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1634, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) pParse = (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).FpOuterParse for { @@ -17565,7 +17733,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li v3 = int32(*(*int8)(unsafe.Pointer(v4))) c = v3 if v3 == 0 { - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1634, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1648, int32(1)) break } /* Find out what flags are present */ @@ -17980,9 +18148,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial != 0 { if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial) == int32(2) { if flag_zeropad != 0 { - v57 = __ccgo_ts + 1636 + v57 = __ccgo_ts + 1650 } else { - v57 = __ccgo_ts + 1641 + v57 = __ccgo_ts + 1655 } bufpt = v57 length = _sqlite3Strlen30(tls, bufpt) @@ -17993,7 +18161,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP = int32(1000) (*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fn = int32(1) } else { - libc.Xmemcpy(tls, bp, __ccgo_ts+1645, uint64(5)) + libc.Xmemcpy(tls, bp, __ccgo_ts+1659, uint64(5)) bufpt = bp if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fsign) == int32('-') { /* no-op */ @@ -18015,14 +18183,12 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li prefix = int8(flag_prefix) } exp = (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP - int32(1) - if int32(xtype) == int32(etGENERIC) && precision > 0 { - precision-- - } /* ** If the field type is etGENERIC, then convert to either etEXP ** or etFLOAT, as appropriate. */ if int32(xtype) == int32(etGENERIC) { + precision-- flag_rtz = libc.BoolUint8(!(flag_alternateform != 0)) if exp < -int32(4) || exp > precision { xtype = uint8(etEXP) @@ -18328,7 +18494,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li bufpt = libc.VaUintptr(&ap) } if bufpt == uintptr(0) { - bufpt = __ccgo_ts + 1650 + bufpt = __ccgo_ts + 1664 } else { if int32(xtype) == int32(etDYNSTRING) { if (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnChar == uint32(0) && (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FmxAlloc != 0 && width == 0 && precision < 0 && int32((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FaccError) == 0 { @@ -18381,6 +18547,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } else { length = int32(0x7fffffff) & int32(libc.Xstrlen(tls, bufpt)) } + goto adjust_width_for_utf8 adjust_width_for_utf8: ; if flag_altform2 != 0 && width > 0 { @@ -18415,9 +18582,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li isnull = libc.BoolInt32(escarg == uintptr(0)) if isnull != 0 { if int32(xtype) == int32(etSQLESCAPE2) { - v98 = __ccgo_ts + 1651 + v98 = __ccgo_ts + 1665 } else { - v98 = __ccgo_ts + 1656 + v98 = __ccgo_ts + 1670 } escarg = v98 } @@ -18535,7 +18702,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*TSrcItem)(unsafe.Pointer(pItem)).FzName != 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1663, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1677, int32(1)) } Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzName) } else { @@ -18543,10 +18710,15 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzAlias) } else { pSel = (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect + /* Because of tag-20240424-1 */ if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_NestedFrom) != 0 { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1665, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1679, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) } else { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1675, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_MultiValue) != 0 { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1689, libc.VaList(bp+128, *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pItem)).Fu1)))) + } else { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1710, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + } } } } @@ -18825,7 +18997,7 @@ func _sqlite3ResultStrAccum(tls *libc.TLS, pCtx uintptr, p uintptr) { if int32((*TStrAccum)(unsafe.Pointer(p)).FprintfFlags)&int32(SQLITE_PRINTF_MALLOCED) != 0 { Xsqlite3_result_text(tls, pCtx, (*TStrAccum)(unsafe.Pointer(p)).FzText, int32((*TStrAccum)(unsafe.Pointer(p)).FnChar), __ccgo_fp(_sqlite3OomClear)) } else { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1650, 0, libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1664, 0, libc.UintptrFromInt32(0)) Xsqlite3_str_reset(tls, p) } } @@ -20120,6 +20292,7 @@ func _sqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc Tu8) (r in (*TMem)(unsafe.Pointer(pMem)).Fz = zOut (*TMem)(unsafe.Pointer(pMem)).FzMalloc = (*TMem)(unsafe.Pointer(pMem)).Fz (*TMem)(unsafe.Pointer(pMem)).FszMalloc = _sqlite3DbMallocSize(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).Fz) + goto translate_out translate_out: ; return SQLITE_OK @@ -20636,6 +20809,60 @@ func _sqlite3DequoteExpr(tls *libc.TLS, p uintptr) { _sqlite3Dequote(tls, *(*uintptr)(unsafe.Pointer(p + 8))) } +// C documentation +// +// /* +// ** Expression p is a QNUMBER (quoted number). Dequote the value in p->u.zToken +// ** and set the type to INTEGER or FLOAT. "Quoted" integers or floats are those +// ** that contain '_' characters that must be removed before further processing. +// */ +func _sqlite3DequoteNumber(tls *libc.TLS, pParse uintptr, p uintptr) { + bp := tls.Alloc(32) + defer tls.Free(32) + var bHex int32 + var pIn, pOut, v1, v3 uintptr + var _ /* iValue at bp+0 */ int32 + _, _, _, _, _ = bHex, pIn, pOut, v1, v3 + if p != 0 { + pIn = *(*uintptr)(unsafe.Pointer(p + 8)) + pOut = *(*uintptr)(unsafe.Pointer(p + 8)) + bHex = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(pIn))) == int32('0') && (int32(*(*int8)(unsafe.Pointer(pIn + 1))) == int32('x') || int32(*(*int8)(unsafe.Pointer(pIn + 1))) == int32('X'))) + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + for { + if int32(*(*int8)(unsafe.Pointer(pIn))) != int32('_') { + v3 = pOut + pOut++ + *(*int8)(unsafe.Pointer(v3)) = *(*int8)(unsafe.Pointer(pIn)) + if int32(*(*int8)(unsafe.Pointer(pIn))) == int32('e') || int32(*(*int8)(unsafe.Pointer(pIn))) == int32('E') || int32(*(*int8)(unsafe.Pointer(pIn))) == int32('.') { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_FLOAT) + } + } else { + if bHex == 0 && (!(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1)))))])&libc.Int32FromInt32(0x04) != 0) || !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + 1)))])&libc.Int32FromInt32(0x04) != 0)) || bHex == int32(1) && (!(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1)))))])&libc.Int32FromInt32(0x08) != 0) || !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + 1)))])&libc.Int32FromInt32(0x08) != 0)) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1724, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(p + 8)))) + } + } + goto _2 + _2: + ; + v1 = pIn + pIn++ + if !(*(*int8)(unsafe.Pointer(v1)) != 0) { + break + } + } + if bHex != 0 { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + } + /* tag-20240227-a: If after dequoting, the number is an integer that + ** fits in 32 bits, then it must be converted into EP_IntValue. Other + ** parts of the code expect this. See also tag-20240227-b. */ + if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_INTEGER) && _sqlite3GetInt32(tls, *(*uintptr)(unsafe.Pointer(p + 8)), bp) != 0 { + *(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(p)).Fu)) = *(*int32)(unsafe.Pointer(bp)) + *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(EP_IntValue) + } + } +} + // C documentation // // /* @@ -20995,6 +21222,7 @@ func _sqlite3AtoF(tls *libc.TLS, z uintptr, pResult uintptr, length int32, enc T for z < zEnd && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z)))])&int32(0x01) != 0 { z += uintptr(incr) } + goto do_atof_calc do_atof_calc: ; /* Zero is a special case */ @@ -21100,6 +21328,7 @@ do_atof_calc: if sign < 0 { *(*float64)(unsafe.Pointer(pResult)) = -*(*float64)(unsafe.Pointer(pResult)) } + goto atof_return atof_return: ; /* return true if number and no extra non-whitespace characters after */ @@ -21184,7 +21413,7 @@ func _compare2pow63(tls *libc.TLS, zNum uintptr, incr int32) (r int32) { _, _, _ = c, i, pow63 c = 0 /* 012345678901234567 */ - pow63 = __ccgo_ts + 1689 + pow63 = __ccgo_ts + 1749 i = 0 for { if !(c == 0 && i < int32(18)) { @@ -21411,7 +21640,7 @@ func _sqlite3DecOrHexToI64(tls *libc.TLS, z uintptr, pOut uintptr) (r int32) { } return 0 } else { - n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1708)) + n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1768)) if *(*int8)(unsafe.Pointer(z + uintptr(n))) != 0 { n++ } @@ -21569,7 +21798,7 @@ func _sqlite3FpDecode(tls *libc.TLS, p uintptr, _r float64, iRound int32, mxRoun (*TFpDecode)(unsafe.Pointer(p)).Fsign = int8('+') (*TFpDecode)(unsafe.Pointer(p)).Fn = int32(1) (*TFpDecode)(unsafe.Pointer(p)).FiDP = int32(1) - (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1724 + (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1784 return } else { (*TFpDecode)(unsafe.Pointer(p)).Fsign = int8('+') @@ -22113,7 +22342,7 @@ func _sqlite3HexToBlob(tls *libc.TLS, db uintptr, z uintptr, n int32) (r uintptr func _logBadConnection(tls *libc.TLS, zType uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1726, libc.VaList(bp+8, zType)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1786, libc.VaList(bp+8, zType)) } // C documentation @@ -22136,13 +22365,13 @@ func _sqlite3SafetyCheckOk(tls *libc.TLS, db uintptr) (r int32) { var eOpenState Tu8 _ = eOpenState if db == uintptr(0) { - _logBadConnection(tls, __ccgo_ts+1651) + _logBadConnection(tls, __ccgo_ts+1665) return 0 } eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_OPEN) { if _sqlite3SafetyCheckSickOrOk(tls, db) != 0 { - _logBadConnection(tls, __ccgo_ts+1771) + _logBadConnection(tls, __ccgo_ts+1831) } return 0 } else { @@ -22156,7 +22385,7 @@ func _sqlite3SafetyCheckSickOrOk(tls *libc.TLS, db uintptr) (r int32) { _ = eOpenState eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_SICK) && int32(eOpenState) != int32(SQLITE_STATE_OPEN) && int32(eOpenState) != int32(SQLITE_STATE_BUSY) { - _logBadConnection(tls, __ccgo_ts+1780) + _logBadConnection(tls, __ccgo_ts+1840) return 0 } else { return int32(1) @@ -22860,196 +23089,196 @@ func _sqlite3OpcodeName(tls *libc.TLS, i int32) (r uintptr) { } var _azName = [190]uintptr{ - 0: __ccgo_ts + 1788, - 1: __ccgo_ts + 1798, - 2: __ccgo_ts + 1809, - 3: __ccgo_ts + 1821, - 4: __ccgo_ts + 1832, - 5: __ccgo_ts + 1844, - 6: __ccgo_ts + 1851, - 7: __ccgo_ts + 1859, - 8: __ccgo_ts + 1867, - 9: __ccgo_ts + 1872, - 10: __ccgo_ts + 1877, - 11: __ccgo_ts + 1883, - 12: __ccgo_ts + 1897, - 13: __ccgo_ts + 1903, - 14: __ccgo_ts + 1913, - 15: __ccgo_ts + 1918, - 16: __ccgo_ts + 1923, - 17: __ccgo_ts + 1926, - 18: __ccgo_ts + 1932, - 19: __ccgo_ts + 1939, - 20: __ccgo_ts + 1943, - 21: __ccgo_ts + 1953, - 22: __ccgo_ts + 1960, - 23: __ccgo_ts + 1967, - 24: __ccgo_ts + 1974, - 25: __ccgo_ts + 1981, - 26: __ccgo_ts + 1991, - 27: __ccgo_ts + 2000, - 28: __ccgo_ts + 2011, - 29: __ccgo_ts + 2020, - 30: __ccgo_ts + 2026, - 31: __ccgo_ts + 2036, - 32: __ccgo_ts + 2046, - 33: __ccgo_ts + 2051, - 34: __ccgo_ts + 2061, - 35: __ccgo_ts + 2072, - 36: __ccgo_ts + 2077, - 37: __ccgo_ts + 2084, - 38: __ccgo_ts + 2095, - 39: __ccgo_ts + 2100, - 40: __ccgo_ts + 2105, - 41: __ccgo_ts + 2111, - 42: __ccgo_ts + 2117, - 43: __ccgo_ts + 2123, - 44: __ccgo_ts + 2126, - 45: __ccgo_ts + 2130, - 46: __ccgo_ts + 2136, - 47: __ccgo_ts + 2147, - 48: __ccgo_ts + 2158, - 49: __ccgo_ts + 2166, - 50: __ccgo_ts + 2175, - 51: __ccgo_ts + 2182, - 52: __ccgo_ts + 2190, - 53: __ccgo_ts + 2193, - 54: __ccgo_ts + 2196, - 55: __ccgo_ts + 2199, - 56: __ccgo_ts + 2202, - 57: __ccgo_ts + 2205, - 58: __ccgo_ts + 2208, - 59: __ccgo_ts + 2215, - 60: __ccgo_ts + 2221, - 61: __ccgo_ts + 2231, - 62: __ccgo_ts + 2244, - 63: __ccgo_ts + 2255, - 64: __ccgo_ts + 2261, - 65: __ccgo_ts + 2268, - 66: __ccgo_ts + 2277, - 67: __ccgo_ts + 2286, - 68: __ccgo_ts + 2293, - 69: __ccgo_ts + 2306, - 70: __ccgo_ts + 2317, - 71: __ccgo_ts + 2322, - 72: __ccgo_ts + 2330, - 73: __ccgo_ts + 2336, - 74: __ccgo_ts + 2343, - 75: __ccgo_ts + 2355, - 76: __ccgo_ts + 2360, - 77: __ccgo_ts + 2369, - 78: __ccgo_ts + 2374, - 79: __ccgo_ts + 2383, - 80: __ccgo_ts + 2388, - 81: __ccgo_ts + 2393, - 82: __ccgo_ts + 2399, - 83: __ccgo_ts + 2407, - 84: __ccgo_ts + 2415, - 85: __ccgo_ts + 2425, - 86: __ccgo_ts + 2433, - 87: __ccgo_ts + 2440, - 88: __ccgo_ts + 2453, - 89: __ccgo_ts + 2458, - 90: __ccgo_ts + 2470, - 91: __ccgo_ts + 2478, - 92: __ccgo_ts + 2485, - 93: __ccgo_ts + 2496, - 94: __ccgo_ts + 2503, - 95: __ccgo_ts + 2510, - 96: __ccgo_ts + 2520, - 97: __ccgo_ts + 2529, - 98: __ccgo_ts + 2540, - 99: __ccgo_ts + 2546, - 100: __ccgo_ts + 2557, - 101: __ccgo_ts + 2567, - 102: __ccgo_ts + 2577, - 103: __ccgo_ts + 2584, - 104: __ccgo_ts + 2590, - 105: __ccgo_ts + 2600, - 106: __ccgo_ts + 2611, - 107: __ccgo_ts + 2615, - 108: __ccgo_ts + 2624, - 109: __ccgo_ts + 2633, - 110: __ccgo_ts + 2640, - 111: __ccgo_ts + 2650, - 112: __ccgo_ts + 2657, - 113: __ccgo_ts + 2666, - 114: __ccgo_ts + 2676, - 115: __ccgo_ts + 2683, - 116: __ccgo_ts + 2691, - 117: __ccgo_ts + 2705, - 118: __ccgo_ts + 2713, - 119: __ccgo_ts + 2727, - 120: __ccgo_ts + 2738, - 121: __ccgo_ts + 2751, - 122: __ccgo_ts + 2762, - 123: __ccgo_ts + 2768, - 124: __ccgo_ts + 2780, - 125: __ccgo_ts + 2789, - 126: __ccgo_ts + 2797, - 127: __ccgo_ts + 2806, - 128: __ccgo_ts + 2815, - 129: __ccgo_ts + 2822, - 130: __ccgo_ts + 2830, - 131: __ccgo_ts + 2837, - 132: __ccgo_ts + 2848, - 133: __ccgo_ts + 2862, - 134: __ccgo_ts + 2873, - 135: __ccgo_ts + 2881, - 136: __ccgo_ts + 2887, - 137: __ccgo_ts + 2895, - 138: __ccgo_ts + 2903, - 139: __ccgo_ts + 2913, - 140: __ccgo_ts + 2926, - 141: __ccgo_ts + 2936, - 142: __ccgo_ts + 2949, - 143: __ccgo_ts + 2958, - 144: __ccgo_ts + 2969, - 145: __ccgo_ts + 2977, - 146: __ccgo_ts + 2983, - 147: __ccgo_ts + 2995, - 148: __ccgo_ts + 3007, - 149: __ccgo_ts + 3015, - 150: __ccgo_ts + 3027, - 151: __ccgo_ts + 3040, - 152: __ccgo_ts + 3050, - 153: __ccgo_ts + 3060, - 154: __ccgo_ts + 3065, - 155: __ccgo_ts + 3077, - 156: __ccgo_ts + 3089, - 157: __ccgo_ts + 3099, - 158: __ccgo_ts + 3105, - 159: __ccgo_ts + 3115, - 160: __ccgo_ts + 3122, - 161: __ccgo_ts + 3134, - 162: __ccgo_ts + 3145, - 163: __ccgo_ts + 3153, - 164: __ccgo_ts + 3162, - 165: __ccgo_ts + 3171, - 166: __ccgo_ts + 3180, - 167: __ccgo_ts + 3187, - 168: __ccgo_ts + 3198, - 169: __ccgo_ts + 3211, - 170: __ccgo_ts + 3221, - 171: __ccgo_ts + 3228, - 172: __ccgo_ts + 3236, - 173: __ccgo_ts + 3245, - 174: __ccgo_ts + 3251, - 175: __ccgo_ts + 3258, - 176: __ccgo_ts + 3266, - 177: __ccgo_ts + 3274, - 178: __ccgo_ts + 3282, - 179: __ccgo_ts + 3292, - 180: __ccgo_ts + 3301, - 181: __ccgo_ts + 3312, - 182: __ccgo_ts + 3323, - 183: __ccgo_ts + 3334, - 184: __ccgo_ts + 3344, - 185: __ccgo_ts + 3350, - 186: __ccgo_ts + 3361, - 187: __ccgo_ts + 3372, - 188: __ccgo_ts + 3377, - 189: __ccgo_ts + 3385, + 0: __ccgo_ts + 1848, + 1: __ccgo_ts + 1858, + 2: __ccgo_ts + 1869, + 3: __ccgo_ts + 1881, + 4: __ccgo_ts + 1892, + 5: __ccgo_ts + 1904, + 6: __ccgo_ts + 1911, + 7: __ccgo_ts + 1919, + 8: __ccgo_ts + 1927, + 9: __ccgo_ts + 1932, + 10: __ccgo_ts + 1937, + 11: __ccgo_ts + 1943, + 12: __ccgo_ts + 1957, + 13: __ccgo_ts + 1963, + 14: __ccgo_ts + 1973, + 15: __ccgo_ts + 1978, + 16: __ccgo_ts + 1983, + 17: __ccgo_ts + 1986, + 18: __ccgo_ts + 1992, + 19: __ccgo_ts + 1999, + 20: __ccgo_ts + 2003, + 21: __ccgo_ts + 2013, + 22: __ccgo_ts + 2020, + 23: __ccgo_ts + 2027, + 24: __ccgo_ts + 2034, + 25: __ccgo_ts + 2041, + 26: __ccgo_ts + 2051, + 27: __ccgo_ts + 2060, + 28: __ccgo_ts + 2071, + 29: __ccgo_ts + 2080, + 30: __ccgo_ts + 2086, + 31: __ccgo_ts + 2096, + 32: __ccgo_ts + 2106, + 33: __ccgo_ts + 2111, + 34: __ccgo_ts + 2125, + 35: __ccgo_ts + 2136, + 36: __ccgo_ts + 2141, + 37: __ccgo_ts + 2148, + 38: __ccgo_ts + 2159, + 39: __ccgo_ts + 2164, + 40: __ccgo_ts + 2169, + 41: __ccgo_ts + 2175, + 42: __ccgo_ts + 2181, + 43: __ccgo_ts + 2187, + 44: __ccgo_ts + 2190, + 45: __ccgo_ts + 2194, + 46: __ccgo_ts + 2200, + 47: __ccgo_ts + 2211, + 48: __ccgo_ts + 2222, + 49: __ccgo_ts + 2230, + 50: __ccgo_ts + 2239, + 51: __ccgo_ts + 2246, + 52: __ccgo_ts + 2254, + 53: __ccgo_ts + 2257, + 54: __ccgo_ts + 2260, + 55: __ccgo_ts + 2263, + 56: __ccgo_ts + 2266, + 57: __ccgo_ts + 2269, + 58: __ccgo_ts + 2272, + 59: __ccgo_ts + 2279, + 60: __ccgo_ts + 2285, + 61: __ccgo_ts + 2295, + 62: __ccgo_ts + 2308, + 63: __ccgo_ts + 2319, + 64: __ccgo_ts + 2325, + 65: __ccgo_ts + 2332, + 66: __ccgo_ts + 2341, + 67: __ccgo_ts + 2350, + 68: __ccgo_ts + 2357, + 69: __ccgo_ts + 2370, + 70: __ccgo_ts + 2381, + 71: __ccgo_ts + 2386, + 72: __ccgo_ts + 2394, + 73: __ccgo_ts + 2400, + 74: __ccgo_ts + 2407, + 75: __ccgo_ts + 2419, + 76: __ccgo_ts + 2424, + 77: __ccgo_ts + 2433, + 78: __ccgo_ts + 2438, + 79: __ccgo_ts + 2447, + 80: __ccgo_ts + 2452, + 81: __ccgo_ts + 2457, + 82: __ccgo_ts + 2463, + 83: __ccgo_ts + 2471, + 84: __ccgo_ts + 2479, + 85: __ccgo_ts + 2489, + 86: __ccgo_ts + 2497, + 87: __ccgo_ts + 2504, + 88: __ccgo_ts + 2517, + 89: __ccgo_ts + 2522, + 90: __ccgo_ts + 2534, + 91: __ccgo_ts + 2542, + 92: __ccgo_ts + 2549, + 93: __ccgo_ts + 2560, + 94: __ccgo_ts + 2567, + 95: __ccgo_ts + 2574, + 96: __ccgo_ts + 2584, + 97: __ccgo_ts + 2593, + 98: __ccgo_ts + 2604, + 99: __ccgo_ts + 2610, + 100: __ccgo_ts + 2621, + 101: __ccgo_ts + 2631, + 102: __ccgo_ts + 2641, + 103: __ccgo_ts + 2648, + 104: __ccgo_ts + 2654, + 105: __ccgo_ts + 2664, + 106: __ccgo_ts + 2675, + 107: __ccgo_ts + 2679, + 108: __ccgo_ts + 2688, + 109: __ccgo_ts + 2697, + 110: __ccgo_ts + 2704, + 111: __ccgo_ts + 2714, + 112: __ccgo_ts + 2721, + 113: __ccgo_ts + 2730, + 114: __ccgo_ts + 2740, + 115: __ccgo_ts + 2747, + 116: __ccgo_ts + 2755, + 117: __ccgo_ts + 2769, + 118: __ccgo_ts + 2777, + 119: __ccgo_ts + 2791, + 120: __ccgo_ts + 2802, + 121: __ccgo_ts + 2815, + 122: __ccgo_ts + 2826, + 123: __ccgo_ts + 2832, + 124: __ccgo_ts + 2844, + 125: __ccgo_ts + 2853, + 126: __ccgo_ts + 2861, + 127: __ccgo_ts + 2870, + 128: __ccgo_ts + 2879, + 129: __ccgo_ts + 2886, + 130: __ccgo_ts + 2894, + 131: __ccgo_ts + 2901, + 132: __ccgo_ts + 2912, + 133: __ccgo_ts + 2926, + 134: __ccgo_ts + 2937, + 135: __ccgo_ts + 2945, + 136: __ccgo_ts + 2951, + 137: __ccgo_ts + 2959, + 138: __ccgo_ts + 2967, + 139: __ccgo_ts + 2977, + 140: __ccgo_ts + 2990, + 141: __ccgo_ts + 3000, + 142: __ccgo_ts + 3013, + 143: __ccgo_ts + 3022, + 144: __ccgo_ts + 3033, + 145: __ccgo_ts + 3041, + 146: __ccgo_ts + 3047, + 147: __ccgo_ts + 3059, + 148: __ccgo_ts + 3071, + 149: __ccgo_ts + 3079, + 150: __ccgo_ts + 3091, + 151: __ccgo_ts + 3104, + 152: __ccgo_ts + 3114, + 153: __ccgo_ts + 3124, + 154: __ccgo_ts + 3129, + 155: __ccgo_ts + 3141, + 156: __ccgo_ts + 3153, + 157: __ccgo_ts + 3163, + 158: __ccgo_ts + 3169, + 159: __ccgo_ts + 3179, + 160: __ccgo_ts + 3186, + 161: __ccgo_ts + 3198, + 162: __ccgo_ts + 3209, + 163: __ccgo_ts + 3217, + 164: __ccgo_ts + 3226, + 165: __ccgo_ts + 3235, + 166: __ccgo_ts + 3244, + 167: __ccgo_ts + 3251, + 168: __ccgo_ts + 3262, + 169: __ccgo_ts + 3275, + 170: __ccgo_ts + 3285, + 171: __ccgo_ts + 3292, + 172: __ccgo_ts + 3300, + 173: __ccgo_ts + 3309, + 174: __ccgo_ts + 3315, + 175: __ccgo_ts + 3322, + 176: __ccgo_ts + 3330, + 177: __ccgo_ts + 3338, + 178: __ccgo_ts + 3346, + 179: __ccgo_ts + 3356, + 180: __ccgo_ts + 3365, + 181: __ccgo_ts + 3376, + 182: __ccgo_ts + 3387, + 183: __ccgo_ts + 3398, + 184: __ccgo_ts + 3408, + 185: __ccgo_ts + 3414, + 186: __ccgo_ts + 3425, + 187: __ccgo_ts + 3436, + 188: __ccgo_ts + 3441, + 189: __ccgo_ts + 3449, } type Tpthread_once = struct { @@ -23805,91 +24034,91 @@ type unix_syscall = Tunix_syscall // */ var _aSyscall = [29]Tunix_syscall{ 0: { - FzName: __ccgo_ts + 3395, + FzName: __ccgo_ts + 3459, }, 1: { - FzName: __ccgo_ts + 3400, + FzName: __ccgo_ts + 3464, }, 2: { - FzName: __ccgo_ts + 3406, + FzName: __ccgo_ts + 3470, }, 3: { - FzName: __ccgo_ts + 3413, + FzName: __ccgo_ts + 3477, }, 4: { - FzName: __ccgo_ts + 3420, + FzName: __ccgo_ts + 3484, }, 5: { - FzName: __ccgo_ts + 3425, + FzName: __ccgo_ts + 3489, }, 6: { - FzName: __ccgo_ts + 3431, + FzName: __ccgo_ts + 3495, }, 7: { - FzName: __ccgo_ts + 3441, + FzName: __ccgo_ts + 3505, }, 8: { - FzName: __ccgo_ts + 3447, + FzName: __ccgo_ts + 3511, }, 9: { - FzName: __ccgo_ts + 3452, + FzName: __ccgo_ts + 3516, }, 10: { - FzName: __ccgo_ts + 3458, + FzName: __ccgo_ts + 3522, }, 11: { - FzName: __ccgo_ts + 3466, + FzName: __ccgo_ts + 3530, }, 12: { - FzName: __ccgo_ts + 3472, + FzName: __ccgo_ts + 3536, }, 13: { - FzName: __ccgo_ts + 3479, + FzName: __ccgo_ts + 3543, }, 14: { - FzName: __ccgo_ts + 3488, + FzName: __ccgo_ts + 3552, }, 15: { - FzName: __ccgo_ts + 3495, + FzName: __ccgo_ts + 3559, }, 16: { - FzName: __ccgo_ts + 3505, + FzName: __ccgo_ts + 3569, }, 17: { - FzName: __ccgo_ts + 3512, + FzName: __ccgo_ts + 3576, }, 18: { - FzName: __ccgo_ts + 3526, + FzName: __ccgo_ts + 3590, }, 19: { - FzName: __ccgo_ts + 3532, + FzName: __ccgo_ts + 3596, }, 20: { - FzName: __ccgo_ts + 3538, + FzName: __ccgo_ts + 3602, }, 21: { - FzName: __ccgo_ts + 3545, + FzName: __ccgo_ts + 3609, }, 22: { - FzName: __ccgo_ts + 3553, + FzName: __ccgo_ts + 3617, }, 23: { - FzName: __ccgo_ts + 3558, + FzName: __ccgo_ts + 3622, }, 24: { - FzName: __ccgo_ts + 3565, + FzName: __ccgo_ts + 3629, }, 25: { - FzName: __ccgo_ts + 3572, + FzName: __ccgo_ts + 3636, }, 26: { - FzName: __ccgo_ts + 3584, + FzName: __ccgo_ts + 3648, }, 27: { - FzName: __ccgo_ts + 3593, + FzName: __ccgo_ts + 3657, }, 28: { - FzName: __ccgo_ts + 3599, + FzName: __ccgo_ts + 3663, }, } @@ -24124,9 +24353,9 @@ func _robust_open(tls *libc.TLS, z uintptr, f int32, m Tmode_t) (r int32) { (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(16)].FpCurrent})))(tls, z) } (*(*func(*libc.TLS, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(1)].FpCurrent})))(tls, fd) - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3605, libc.VaList(bp+232, z, fd)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3669, libc.VaList(bp+232, z, fd)) fd = -int32(1) - if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3648, O_RDONLY, int32(m)) < 0 { + if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3712, O_RDONLY, int32(m)) < 0 { break } } @@ -24442,11 +24671,11 @@ func _unixLogErrorAtLine(tls *libc.TLS, errcode int32, zFunc uintptr, zPath uint ** equivalent to errno. Otherwise, use strerror_r(). */ /* This is a threadsafe build, but strerror_r() is not available. */ - zErr = __ccgo_ts + 1650 + zErr = __ccgo_ts + 1664 if zPath == uintptr(0) { - zPath = __ccgo_ts + 1650 + zPath = __ccgo_ts + 1664 } - Xsqlite3_log(tls, errcode, __ccgo_ts+3658, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) + Xsqlite3_log(tls, errcode, __ccgo_ts+3722, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) return errcode } @@ -24474,7 +24703,7 @@ func _robust_close(tls *libc.TLS, pFile uintptr, h int32, lineno int32) { } else { v1 = uintptr(0) } - _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(16)< uint64(1) { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3742, libc.VaList(bp+232, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3806, libc.VaList(bp+232, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } if _fileHasMoved(tls, pFile) != 0 { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3769, libc.VaList(bp+232, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3833, libc.VaList(bp+232, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } } @@ -24967,6 +25196,7 @@ func _unixLock(tls *libc.TLS, id uintptr, eFileLock int32) (r int32) { (*TunixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock) (*TunixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(eFileLock) } + goto end_lock end_lock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -25090,6 +25320,7 @@ func _posixUnlock(tls *libc.TLS, id uintptr, eFileLock int32, handleNFSUnlock in _closePendingFds(tls, pFile) } } + goto end_unlock end_unlock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -25130,7 +25361,7 @@ func _closeUnixFile(tls *libc.TLS, id uintptr) (r int32) { pFile = id _unixUnmapfile(tls, pFile) if (*TunixFile)(unsafe.Pointer(pFile)).Fh >= 0 { - _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40172)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40505)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -25750,7 +25981,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { var _ /* zDirname at bp+0 */ [513]int8 _, _ = fd, ii fd = -int32(1) - Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3797, libc.VaList(bp+528, zFilename)) + Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3861, libc.VaList(bp+528, zFilename)) ii = int32(libc.Xstrlen(tls, bp)) for { if !(ii > 0 && int32((*(*[513]int8)(unsafe.Pointer(bp)))[ii]) != int32('/')) { @@ -25776,7 +26007,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(41778)), __ccgo_ts+3512, bp, int32(41778)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42111)), __ccgo_ts+3576, bp, int32(42111)) } // C documentation @@ -25813,7 +26044,7 @@ func _unixSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { rc = _full_fsync(tls, (*TunixFile)(unsafe.Pointer(pFile)).Fh, isFullsync, isDataOnly) if rc != 0 { _storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__error(tls)))) - return _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(4)<= nSize { iWrite = nSize - int64(1) } - nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1650, int32(1)) + nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1664, int32(1)) if nWrite != int32(1) { return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(3)<= 0 { - _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42583)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42916)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -26419,7 +26650,7 @@ func _unixLockSharedMemory(tls *libc.TLS, pDbFd uintptr, pShmNode uintptr) (r in ** help detect if a -shm file truncation is legitimate or is the work ** or a rogue process. */ if rc == SQLITE_OK && _robust_ftruncate(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(3)) != 0 { - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(18)< iRegion { @@ -26986,7 +27219,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { var pNew, pOrig, pReq, zErr uintptr var v1 Tsqlite3_int64 _, _, _, _, _, _, _, _, _, _ = flags, h, nOrig, nReuse, pNew, pOrig, pReq, szSyspage, zErr, v1 - zErr = __ccgo_ts + 3553 + zErr = __ccgo_ts + 3617 h = (*TunixFile)(unsafe.Pointer(pFd)).Fh /* File descriptor open on db file */ pOrig = (*TunixFile)(unsafe.Pointer(pFd)).FpMapRegion /* Pointer to current file mapping */ nOrig = (*TunixFile)(unsafe.Pointer(pFd)).FmmapSizeActual /* Size of pOrig region in bytes */ @@ -27021,7 +27254,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { if pNew == uintptr(-libc.Int32FromInt32(1)) { pNew = uintptr(0) nNew = 0 - _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43401)) + _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43734)) /* If the mmap() above failed, assume that all subsequent mmap() calls ** will probably fail too. Fall back to using xRead/xWrite exclusively ** in this case. */ @@ -27357,11 +27590,11 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam } else { v1 = uintptr(0) } - if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3831, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { + if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3895, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { p2 = pNew + 30 *(*uint16)(unsafe.Pointer(p2)) = uint16(int32(*(*uint16)(unsafe.Pointer(p2))) | libc.Int32FromInt32(UNIXFILE_PSOW)) } - if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3836) == 0 { + if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3900) == 0 { p3 = pNew + 30 *(*uint16)(unsafe.Pointer(p3)) = uint16(int32(*(*uint16)(unsafe.Pointer(p3))) | libc.Int32FromInt32(UNIXFILE_EXCL)) } @@ -27392,7 +27625,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam ** implicit assumption here is that if fstat() fails, things are in ** such bad shape that dropping a lock or two doesn't matter much. */ - _robust_close(tls, pNew, h, int32(43909)) + _robust_close(tls, pNew, h, int32(44242)) h = -int32(1) } _unixLeaveMutex(tls) @@ -27403,7 +27636,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam if zLockFile == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3846, libc.VaList(bp+8, zFilename)) + Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3910, libc.VaList(bp+8, zFilename)) } (*TunixFile)(unsafe.Pointer(pNew)).FlockingContext = zLockFile } @@ -27411,7 +27644,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam _storeLastErrno(tls, pNew, 0) if rc != SQLITE_OK { if h >= 0 { - _robust_close(tls, pNew, h, int32(43994)) + _robust_close(tls, pNew, h, int32(44327)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -27426,10 +27659,10 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam // ** Directories to consider for temp files. // */ var _azTempDirs = [6]uintptr{ - 2: __ccgo_ts + 3854, - 3: __ccgo_ts + 3863, - 4: __ccgo_ts + 3872, - 5: __ccgo_ts + 1663, + 2: __ccgo_ts + 3918, + 3: __ccgo_ts + 3927, + 4: __ccgo_ts + 3936, + 5: __ccgo_ts + 1677, } // C documentation @@ -27438,8 +27671,8 @@ var _azTempDirs = [6]uintptr{ // ** Initialize first two members of azTempDirs[] array. // */ func _unixTempFileInit(tls *libc.TLS) { - _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3877) - _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3891) + _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3941) + _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3955) } // C documentation @@ -27501,7 +27734,7 @@ func _unixGetTempname(tls *libc.TLS, nBuf int32, zBuf uintptr) (r int32) { for cond := true; cond; cond = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(2)].FpCurrent})))(tls, zBuf, 0) == 0 { Xsqlite3_randomness(tls, int32(8), bp) *(*int8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2)))) = 0 - Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3898, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) + Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3962, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) if v2 = int32(*(*int8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2))))) != 0; !v2 { v1 = iLimit iLimit++ @@ -27673,7 +27906,7 @@ func _findCreateFileMode(tls *libc.TLS, zPath uintptr, flags int32, pMode uintpt ** filename, check for the "modeof" parameter. If present, interpret ** its value as a filename and try to copy the mode, uid and gid from ** that file. */ - z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3915) + z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3979) if z != 0 { rc = _getFileMode(tls, z, pMode, pUid, pGid) } @@ -27711,12 +27944,12 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags bp := tls.Alloc(528) defer tls.Free(528) var ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, rc, rc2 int32 - var p, pUnused, zName uintptr + var p, pReadonly, pUnused, zName uintptr var _ /* gid at bp+520 */ Tgid_t var _ /* openMode at bp+514 */ Tmode_t var _ /* uid at bp+516 */ Tuid_t var _ /* zTmpname at bp+0 */ [514]int8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pUnused, rc, rc2, zName + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pReadonly, pUnused, rc, rc2, zName p = pFile fd = -int32(1) /* File descriptor returned by open() */ openFlags = 0 /* Flags to pass to open() */ @@ -27811,17 +28044,24 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } else { if *(*int32)(unsafe.Pointer(libc.X__error(tls))) != int32(EISDIR) && isReadWrite != 0 { /* Failed to open the file for read/write access. Try read-only. */ + pReadonly = uintptr(0) flags &= ^(libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE)) openFlags &= ^(libc.Int32FromInt32(O_RDWR) | libc.Int32FromInt32(O_CREAT)) flags |= int32(SQLITE_OPEN_READONLY) openFlags |= O_RDONLY isReadonly = int32(1) - fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 514))) + pReadonly = _findReusableFd(tls, zName, flags) + if pReadonly != 0 { + fd = (*TUnixUnusedFd)(unsafe.Pointer(pReadonly)).Ffd + Xsqlite3_free(tls, pReadonly) + } else { + fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 514))) + } } } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44435)), __ccgo_ts+3395, zName, int32(44435)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44775)), __ccgo_ts+3459, zName, int32(44775)) if rc == SQLITE_OK { rc = rc2 } @@ -27871,6 +28111,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags ctrlFlags |= int32(UNIXFILE_URI) } rc = _fillInUnixFile(tls, pVfs, fd, pFile, zPath, ctrlFlags) + goto open_finished open_finished: ; if rc != SQLITE_OK { @@ -27897,7 +28138,7 @@ func _unixDelete(tls *libc.TLS, NotUsed uintptr, zPath uintptr, dirSync int32) ( if *(*int32)(unsafe.Pointer(libc.X__error(tls))) == int32(ENOENT) { rc = libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(23)< int32(SQLITE_MAX_SYMLINK) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(44686)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45026)) return } got = (*(*func(*libc.TLS, uintptr, uintptr, Tsize_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls, zIn, bp+224, libc.Uint64FromInt64(1026)-libc.Uint64FromInt32(2)) if got <= 0 || got >= libc.Int64FromInt64(1026)-libc.Int64FromInt32(2) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44691)), __ccgo_ts+3584, zIn, int32(44691)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45031)), __ccgo_ts+3648, zIn, int32(45031)) return } (*(*[1026]int8)(unsafe.Pointer(bp + 224)))[got] = 0 @@ -28095,14 +28336,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if int32(*(*int8)(unsafe.Pointer(zPath))) != int32('/') { if (*(*func(*libc.TLS, uintptr, Tsize_t) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(3)].FpCurrent})))(tls, bp+24, libc.Uint64FromInt64(1026)-libc.Uint64FromInt32(2)) == uintptr(0) { - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44749)), __ccgo_ts+3413, zPath, int32(44749)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45089)), __ccgo_ts+3477, zPath, int32(45089)) } _appendAllPathElements(tls, bp, bp+24) } _appendAllPathElements(tls, bp, zPath) *(*int8)(unsafe.Pointer(zOut + uintptr((*(*TDbPath)(unsafe.Pointer(bp))).FnUsed))) = 0 if (*(*TDbPath)(unsafe.Pointer(bp))).Frc != 0 || (*(*TDbPath)(unsafe.Pointer(bp))).FnUsed < int32(2) { - return _sqlite3CantopenError(tls, int32(44755)) + return _sqlite3CantopenError(tls, int32(45095)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<= (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4)/libc.Uint64FromInt32(2) { @@ -29959,6 +30202,7 @@ bitvec_set_rehash: return rc } } + goto bitvec_set_end bitvec_set_end: ; (*TBitvec)(unsafe.Pointer(p)).FnSet++ @@ -30191,6 +30435,7 @@ func _sqlite3BitvecBuiltinTest(tls *libc.TLS, sz int32, aOp uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp))++ } /* Free allocated structure */ + goto bitvec_end bitvec_end: ; Xsqlite3_free(tls, pTmpSpace) @@ -31430,7 +31675,7 @@ func _sqlite3PCacheBufferSetup(tls *libc.TLS, pBuf uintptr, sz int32, n int32) { var p uintptr var v1, v2, v3, v4 int32 _, _, _, _, _ = p, v1, v2, v3, v4 - if _pcache1_g.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80) != 0 { if pBuf == uintptr(0) { v1 = libc.Int32FromInt32(0) n = v1 @@ -31951,7 +32196,7 @@ func _pcache1Init(tls *libc.TLS, NotUsed uintptr) (r int32) { _pcache1_g.FnInitPage = 0 } _pcache1_g.Fgrp.FmxPinned = uint32(10) - _pcache1_g.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80, int32(1)) return SQLITE_OK } @@ -35448,6 +35693,7 @@ func _pager_delsuper(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) { } _sqlite3OsClose(tls, pSuper) rc = _sqlite3OsDelete(tls, pVfs, zSuper, 0) + goto delsuper_out delsuper_out: ; Xsqlite3_free(tls, zFree) @@ -35775,6 +36021,7 @@ func _pager_playback(tls *libc.TLS, pPager uintptr, isHot int32) (r int32) { } } /*NOTREACHED*/ + goto end_playback end_playback: ; if rc == SQLITE_OK { @@ -35817,7 +36064,7 @@ end_playback: rc = _pager_delsuper(tls, pPager, zSuper) } if isHot != 0 && nPlayback != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(2)< int64(1) { _sqlite3PagerUnrefNotNull(tls, pPgOld) - return _sqlite3CorruptError(tls, int32(63973)) + return _sqlite3CorruptError(tls, int32(64313)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | int32((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -39920,7 +40171,7 @@ func _sqlite3PagerCheckpoint(tls *libc.TLS, pPager uintptr, db uintptr, eMode in ** sqlite3_wal_checkpoint() call, but it happens very rarely. ** https://sqlite.org/forum/forumpost/fd0f19d229156939 */ - Xsqlite3_exec(tls, db, __ccgo_ts+4111, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+4175, uintptr(0), uintptr(0), uintptr(0)) } if (*TPager)(unsafe.Pointer(pPager)).FpWal != 0 { if eMode == SQLITE_CHECKPOINT_PASSIVE { @@ -41361,7 +41612,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(65899)) + return _sqlite3CorruptError(tls, int32(66239)) } goto _1 _1: @@ -41449,7 +41700,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { ** are able to understand */ version = _sqlite3Get4byte(tls, bp+8+4) if version != uint32(WAL_MAX_VERSION) { - rc = _sqlite3CantopenError(tls, int32(66031)) + rc = _sqlite3CantopenError(tls, int32(66371)) goto finished } /* Malloc a buffer to read frames into. */ @@ -41544,6 +41795,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { } Xsqlite3_free(tls, aFrame) } + goto finished finished: ; if rc == SQLITE_OK { @@ -41587,9 +41839,10 @@ finished: ** checkpointing the log file. */ if (*TWal)(unsafe.Pointer(pWal)).Fhdr.FnPage != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(1)< int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(71032)) + rc = _sqlite3CorruptError(tls, int32(71421)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } @@ -46143,7 +46405,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, } /* The super-journal page number must never be used as a pointer map page */ if key == uint32(0) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71230)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71619)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -46156,12 +46418,12 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, /* The first byte of the extra data is the MemPage.isInit byte. ** If that byte is set, it means this page is also being used ** as a btree page. */ - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71243)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71632)) goto ptrmap_exit } offset = int32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71248)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71637)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -46174,6 +46436,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _sqlite3Put4byte(tls, pPtrmap+uintptr(offset+int32(1)), parent) } } + goto ptrmap_exit ptrmap_exit: ; _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -46204,7 +46467,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = int32(libc.Uint32FromInt32(5) * (key - uint32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(71293)) + return _sqlite3CorruptError(tls, int32(71682)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -46212,7 +46475,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if int32(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || int32(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(71301)) + return _sqlite3CorruptError(tls, int32(71690)) } return SQLITE_OK } @@ -46632,7 +46895,7 @@ func _ptrmapPutOvflPtr(tls *libc.TLS, pPage uintptr, pSrc uintptr, pCell uintptr (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if uint64(pCell) < uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) && uint64(pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal)) > uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71741)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72130)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(int32((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -46672,12 +46935,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71799)) + return _sqlite3CorruptError(tls, int32(72188)) } if iFree != 0 { iFree2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71802)) + return _sqlite3CorruptError(tls, int32(72191)) } if 0 == iFree2 || int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -46685,21 +46948,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(71810)) + return _sqlite3CorruptError(tls, int32(72199)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(71813)) + return _sqlite3CorruptError(tls, int32(72202)) } sz2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(71815)) + return _sqlite3CorruptError(tls, int32(72204)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), uint64(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(71819)) + return _sqlite3CorruptError(tls, int32(72208)) } } cbrk = top + sz @@ -46746,12 +47009,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { ** if PRAGMA cell_size_check=ON. */ if pc > iCellLast { - return _sqlite3CorruptError(tls, int32(71852)) + return _sqlite3CorruptError(tls, int32(72241)) } size = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, src+uintptr(pc))) cbrk -= size if cbrk < iCellStart || pc+size > usableSize { - return _sqlite3CorruptError(tls, int32(71858)) + return _sqlite3CorruptError(tls, int32(72247)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = uint8(cbrk) @@ -46763,10 +47026,11 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { } } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))) = uint8(0) + goto defragment_out defragment_out: ; if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(71872)) + return _sqlite3CorruptError(tls, int32(72261)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = uint8(cbrk) @@ -46826,7 +47090,7 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint } else { if x+pc > maxPC { /* This slot extends off the end of the usable part of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71929)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72318)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -46843,14 +47107,14 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint if pc <= iAddr { if pc != 0 { /* The next slot in the chain comes before the current slot */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71944)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72333)) } return uintptr(0) } } if pc > maxPC+nByte-int32(4) { /* The free slot chain extends off the end of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71951)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72340)) } return uintptr(0) } @@ -46893,11 +47157,11 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r if top == 0 && (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize == uint32(65536) { top = int32(65536) } else { - return _sqlite3CorruptError(tls, int32(71999)) + return _sqlite3CorruptError(tls, int32(72388)) } } else { if top > int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(72002)) + return _sqlite3CorruptError(tls, int32(72391)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -46911,7 +47175,7 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r g2 = v1 *(*int32)(unsafe.Pointer(pIdx)) = v1 if g2 <= gap { - return _sqlite3CorruptError(tls, int32(72019)) + return _sqlite3CorruptError(tls, int32(72408)) } else { return SQLITE_OK } @@ -46994,12 +47258,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if int32(iFreeBlk) == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(72098)) + return _sqlite3CorruptError(tls, int32(72487)) } iPtr = iFreeBlk } if uint32(iFreeBlk) > (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(72103)) + return _sqlite3CorruptError(tls, int32(72492)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -47010,11 +47274,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if iFreeBlk != 0 && iEnd+uint32(3) >= uint32(iFreeBlk) { nFrag = uint8(uint32(iFreeBlk) - iEnd) if iEnd > uint32(iFreeBlk) { - return _sqlite3CorruptError(tls, int32(72115)) + return _sqlite3CorruptError(tls, int32(72504)) } iEnd = uint32(int32(iFreeBlk) + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iFreeBlk)+int32(2)))))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - return _sqlite3CorruptError(tls, int32(72118)) + return _sqlite3CorruptError(tls, int32(72507)) } iSize = uint16(iEnd - uint32(iStart)) iFreeBlk = uint16(int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= int32(iStart) { if iPtrEnd > int32(iStart) { - return _sqlite3CorruptError(tls, int32(72131)) + return _sqlite3CorruptError(tls, int32(72520)) } nFrag = Tu8(int32(nFrag) + (int32(iStart) - iPtrEnd)) iSize = uint16(iEnd - uint32(iPtr)) @@ -47035,7 +47299,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) } } if int32(nFrag) > int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(72137)) + return _sqlite3CorruptError(tls, int32(72526)) } p2 = data + uintptr(int32(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - int32(nFrag)) @@ -47052,10 +47316,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) ** so just extend the cell content area rather than create another ** freelist entry */ if int32(iStart) < int32(x) { - return _sqlite3CorruptError(tls, int32(72151)) + return _sqlite3CorruptError(tls, int32(72540)) } if int32(iPtr) != int32(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(72152)) + return _sqlite3CorruptError(tls, int32(72541)) } *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)))) = uint8(int32(iFreeBlk) >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)) + 1)) = uint8(iFreeBlk) @@ -47116,7 +47380,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtrIdxLeaf) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72206)) + return _sqlite3CorruptError(tls, int32(72595)) } } } else { @@ -47142,7 +47406,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtr) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72230)) + return _sqlite3CorruptError(tls, int32(72619)) } } } @@ -47181,12 +47445,12 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-55530-52930 In a well-formed b-tree page, there will ** always be at least one cell before the first freeblock. */ - return _sqlite3CorruptError(tls, int32(72281)) + return _sqlite3CorruptError(tls, int32(72670)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(72286)) + return _sqlite3CorruptError(tls, int32(72675)) } next = uint32(int32(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(72296)) + return _sqlite3CorruptError(tls, int32(72685)) } if uint32(pc)+size > uint32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(72300)) + return _sqlite3CorruptError(tls, int32(72689)) } } /* At this point, nFree contains the sum of the offset to the start @@ -47213,7 +47477,7 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { ** area, according to the page header, lies within the page. */ if nFree > usableSize || nFree < iCellFirst { - return _sqlite3CorruptError(tls, int32(72312)) + return _sqlite3CorruptError(tls, int32(72701)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16(nFree - iCellFirst)) return SQLITE_OK @@ -47244,11 +47508,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = int32(*(*Tu8)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))< iCellLast { - return _sqlite3CorruptError(tls, int32(72343)) + return _sqlite3CorruptError(tls, int32(72732)) } sz = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, data+uintptr(pc))) if pc+sz > usableSize { - return _sqlite3CorruptError(tls, int32(72348)) + return _sqlite3CorruptError(tls, int32(72737)) } goto _1 _1: @@ -47277,7 +47541,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-28594-02890 The one-byte flag at offset 0 indicating ** the b-tree page type. */ if _decodeFlags(tls, pPage, int32(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(72380)) + return _sqlite3CorruptError(tls, int32(72769)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -47290,7 +47554,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = uint16(int32(*(*Tu8)(unsafe.Pointer(data + 3)))< ((*TBtShared)(unsafe.Pointer(pBt)).FpageSize-uint32(8))/uint32(6) { /* To many cells for a single page. The page must be corrupt */ - return _sqlite3CorruptError(tls, int32(72394)) + return _sqlite3CorruptError(tls, int32(72783)) } /* EVIDENCE-OF: R-24089-57979 If a page contains no cells (which is only ** possible for a root page of a table that contains no rows) then the @@ -47443,7 +47707,7 @@ func _getAndInitPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, bRe _, _ = pPage, rc if pgno > _btreePagecount(tls, pBt) { *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72537)) + return _sqlite3CorruptError(tls, int32(72926)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -47505,7 +47769,7 @@ func _btreeGetUnusedPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FpDbPage) > int32(1) { _releasePage(tls, *(*uintptr)(unsafe.Pointer(ppPage))) *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72609)) + return _sqlite3CorruptError(tls, int32(72998)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -47593,7 +47857,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt /* Set the variable isMemdb to true for an in-memory database, or ** false for a file-based database. */ - isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4192) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) + isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4256) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) /* flags fit in 8 bits */ /* Only a BTREE_SINGLE database can be BTREE_UNORDERED */ /* A BTREE_SINGLE database is always a temporary and/or ephemeral */ @@ -47817,6 +48081,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt } } *(*uintptr)(unsafe.Pointer(ppBtree)) = p + goto btree_open_out btree_open_out: ; if rc != SQLITE_OK { @@ -48378,7 +48643,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { ** The original design allowed these amounts to vary, but as of ** version 3.6.0, we require them to be fixed. */ - if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4201, uint64(3)) != 0 { + if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4265, uint64(3)) != 0 { goto page1_init_failed } /* EVIDENCE-OF: R-51873-39618 The page size for a database file is @@ -48416,7 +48681,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { } if nPage > *(*Tu32)(unsafe.Pointer(bp + 8)) { if _sqlite3WritableSchema(tls, (*TBtShared)(unsafe.Pointer(pBt)).Fdb) == 0 { - rc = _sqlite3CorruptError(tls, int32(73547)) + rc = _sqlite3CorruptError(tls, int32(73936)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -48470,6 +48735,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 = *(*uintptr)(unsafe.Pointer(bp)) (*TBtShared)(unsafe.Pointer(pBt)).FnPage = nPage return SQLITE_OK + goto page1_init_failed page1_init_failed: ; _releasePageOne(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -48739,6 +49005,7 @@ func _btreeBeginTrans(tls *libc.TLS, p uintptr, wrflag int32, pSchemaVersion uin } } } + goto trans_begun trans_begun: ; if rc == SQLITE_OK { @@ -48855,7 +49122,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if int32(eType) == int32(PTRMAP_OVERFLOW2) { /* The pointer is always the first 4 bytes of the page in this case. */ if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData) != iFrom { - return _sqlite3CorruptError(tls, int32(73995)) + return _sqlite3CorruptError(tls, int32(74384)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -48879,7 +49146,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74014)) + return _sqlite3CorruptError(tls, int32(74403)) } if iFrom == _sqlite3Get4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4)) { _sqlite3Put4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4), iTo) @@ -48888,7 +49155,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } } else { if pCell+uintptr(4) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74023)) + return _sqlite3CorruptError(tls, int32(74412)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -48902,7 +49169,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if int32(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(74035)) + return _sqlite3CorruptError(tls, int32(74424)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -48932,7 +49199,7 @@ func _relocatePage(tls *libc.TLS, pBt uintptr, pDbPage uintptr, eType Tu8, iPtrP iDbPage = (*TMemPage)(unsafe.Pointer(pDbPage)).Fpgno pPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager if iDbPage < uint32(3) { - return _sqlite3CorruptError(tls, int32(74070)) + return _sqlite3CorruptError(tls, int32(74459)) } /* Move page iDbPage from its current location to page number iFreePage */ *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3PagerMovepage(tls, pPager, (*TMemPage)(unsafe.Pointer(pDbPage)).FpDbPage, iFreePage, isCommit) @@ -49028,7 +49295,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(74168)) + return _sqlite3CorruptError(tls, int32(74557)) } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -49066,7 +49333,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if *(*TPgno)(unsafe.Pointer(bp + 24)) > dbSize { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) - return _sqlite3CorruptError(tls, int32(74220)) + return _sqlite3CorruptError(tls, int32(74609)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -49133,7 +49400,7 @@ func _sqlite3BtreeIncrVacuum(tls *libc.TLS, p uintptr) (r int32) { nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) nFin = _finalDbSize(tls, pBt, nOrig, nFree) if nOrig < nFin || nFree >= nOrig { - rc = _sqlite3CorruptError(tls, int32(74288)) + rc = _sqlite3CorruptError(tls, int32(74677)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -49176,7 +49443,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { ** is either a pointer-map page or the pending-byte page. If one ** is encountered, this indicates corruption. */ - return _sqlite3CorruptError(tls, int32(74339)) + return _sqlite3CorruptError(tls, int32(74728)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -49206,7 +49473,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(74366)) + return _sqlite3CorruptError(tls, int32(74755)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -49672,7 +49939,7 @@ func _btreeCursor(tls *libc.TLS, p uintptr, iTable TPgno, wrFlag int32, pKeyInfo /* Assert that the caller has opened the required transaction. */ if iTable <= uint32(1) { if iTable < uint32(1) { - return _sqlite3CorruptError(tls, int32(74830)) + return _sqlite3CorruptError(tls, int32(75219)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -50064,7 +50331,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin pBt = (*TBtCursor)(unsafe.Pointer(pCur)).FpBt /* Btree this cursor belongs to */ pBufStart = pBuf /* Start of original out buffer */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(75235)) + return _sqlite3CorruptError(tls, int32(75624)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -50074,7 +50341,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin ** &aPayload[pCur->info.nLocal] > &pPage->aData[pBt->usableSize] ** but is recast into its current form to avoid integer overflow problems */ - return _sqlite3CorruptError(tls, int32(75250)) + return _sqlite3CorruptError(tls, int32(75639)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -50102,7 +50369,11 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_ValidOvfl) == 0 { nOvfl = int32(((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnPayload - uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) + ovflSize - uint32(1)) / ovflSize) if (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow == uintptr(0) || nOvfl*libc.Int32FromInt64(4) > _sqlite3MallocSize(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow) { - aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + if _sqlite3FaultSim(tls, int32(413)) != 0 { + aNew = uintptr(0) + } else { + aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + } if aNew == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -50113,6 +50384,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin p1 = pCur + 1 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(BTCF_ValidOvfl)) } else { + /* Sanity check the validity of the overflow page cache */ /* If the overflow page-list cache has been allocated and the ** entry for the first required overflow page is valid, skip ** directly to it. @@ -50126,7 +50398,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin for *(*TPgno)(unsafe.Pointer(bp)) != 0 { /* If required, populate the overflow page-list cache. */ if *(*TPgno)(unsafe.Pointer(bp)) > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(75312)) + return _sqlite3CorruptError(tls, int32(75710)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -50200,7 +50472,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin } if rc == SQLITE_OK && amt > uint32(0) { /* Overflow chain ends prematurely */ - return _sqlite3CorruptError(tls, int32(75396)) + return _sqlite3CorruptError(tls, int32(75794)) } return rc } @@ -50335,7 +50607,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { var v3, p1 uintptr _, _, _, _ = rc, v2, v3, p1 if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(75534)) + return _sqlite3CorruptError(tls, int32(75932)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -50347,7 +50619,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(75548)) + rc = _sqlite3CorruptError(tls, int32(75946)) } if rc != 0 { v3 = pCur + 84 @@ -50463,8 +50735,9 @@ func _moveToRoot(tls *libc.TLS, pCur uintptr) (r int32) { ** in such a way that page pRoot is linked into a second b-tree table ** (or the freelist). */ if int32((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != int32((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(75683)) + return _sqlite3CorruptError(tls, int32(76081)) } + goto skip_init skip_init: ; (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(0) @@ -50476,7 +50749,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(75695)) + return _sqlite3CorruptError(tls, int32(76093)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -50710,7 +50983,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(75937)) + return _sqlite3CorruptError(tls, int32(76342)) } } } @@ -50753,6 +51026,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh rc = SQLITE_OK goto moveto_table_finish } + goto moveto_table_next_layer moveto_table_next_layer: ; if lwr >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { @@ -50768,6 +51042,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh goto _1 _1: } + goto moveto_table_finish moveto_table_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -50912,7 +51187,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes p3 = pCur + 1 *(*Tu8)(unsafe.Pointer(p3)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p3))) & ^libc.Int32FromInt32(BTCF_ValidOvfl)) if !((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76133)) + return _sqlite3CorruptError(tls, int32(76538)) } goto bypass_moveto_root /* Start search on the current page */ } @@ -50926,6 +51201,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes } return rc } + goto bypass_moveto_root bypass_moveto_root: ; for { @@ -50974,7 +51250,7 @@ bypass_moveto_root: /* Invalid key size: 0x80 0x80 0x01 */ /* Minimum legal index key size */ if nCell < int32(2) || uint32(nCell)/(*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FusableSize > (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(76220)) + rc = _sqlite3CorruptError(tls, int32(76625)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, uint64(nCell+nOverrun)) @@ -51005,7 +51281,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(76252)) + rc = _sqlite3CorruptError(tls, int32(76657)) } goto moveto_index_finish } @@ -51038,7 +51314,7 @@ bypass_moveto_root: p9 = pCur + 1 *(*Tu8)(unsafe.Pointer(p9)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p9))) & ^(libc.Int32FromInt32(BTCF_ValidNKey) | libc.Int32FromInt32(BTCF_ValidOvfl))) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(76283)) + return _sqlite3CorruptError(tls, int32(76688)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = uint16(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -51047,7 +51323,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76294)) + rc = _sqlite3CorruptError(tls, int32(76699)) } if rc != 0 { v11 = pCur + 84 @@ -51061,6 +51337,7 @@ bypass_moveto_root: goto _4 _4: } + goto moveto_index_finish moveto_index_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -51095,11 +51372,11 @@ func _sqlite3BtreeRowCountEst(tls *libc.TLS, pCur uintptr) (r Ti64) { var i Tu8 var n Ti64 _, _ = i, n - /* Currently this interface is only called by the OP_IfSmaller - ** opcode, and it that case the cursor will always be valid and - ** will always point to a leaf node. */ + /* Currently this interface is only called by the OP_IfSizeBetween + ** opcode and the OP_Count opcode with P3=1. In either case, + ** the cursor will always be valid unless the btree is empty. */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID { - return int64(-int32(1)) + return 0 } if int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).Fleaf) == 0 { return int64(-int32(1)) @@ -51175,7 +51452,7 @@ func _btreeNext(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76395)) + return _sqlite3CorruptError(tls, int32(76800)) } if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -51285,7 +51562,7 @@ func _btreePrevious(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76488)) + return _sqlite3CorruptError(tls, int32(76893)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -51373,7 +51650,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt ** stores the total number of pages on the freelist. */ n = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+36) if n >= mxPage { - return _sqlite3CorruptError(tls, int32(76578)) + return _sqlite3CorruptError(tls, int32(76983)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -51428,7 +51705,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(76634)) + rc = _sqlite3CorruptError(tls, int32(77039)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -51454,7 +51731,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { if k > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/libc.Uint32FromInt32(4)-libc.Uint32FromInt32(2) { /* Value of k is out of range. Database corruption */ - rc = _sqlite3CorruptError(tls, int32(76663)) + rc = _sqlite3CorruptError(tls, int32(77068)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -51481,7 +51758,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { iNewTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+8) if iNewTrunk > mxPage { - rc = _sqlite3CorruptError(tls, int32(76697)) + rc = _sqlite3CorruptError(tls, int32(77102)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -51552,7 +51829,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } iPage = _sqlite3Get4byte(tls, aData+uintptr(uint32(8)+closest*uint32(4))) if iPage > mxPage || iPage < uint32(2) { - rc = _sqlite3CorruptError(tls, int32(76762)) + rc = _sqlite3CorruptError(tls, int32(77167)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -51652,6 +51929,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) } } + goto end_allocate_page end_allocate_page: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -51689,7 +51967,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in iTrunk = uint32(0) /* Page number of free-list trunk page */ pPage1 = (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 /* Initial number of pages on free-list */ if iPage < uint32(2) || iPage > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(76889)) + return _sqlite3CorruptError(tls, int32(77294)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -51740,7 +52018,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in if nFree != uint32(0) { /* Initial number of leaf cells on trunk page */ iTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32) if iTrunk > _btreePagecount(tls, pBt) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76936)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77341)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -51749,7 +52027,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in } nLeaf = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+4) if nLeaf > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(2) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76947)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77352)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -51804,6 +52082,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData, iTrunk) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData+4, uint32(0)) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32, iPage) + goto freepage_out freepage_out: ; if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -51838,7 +52117,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp _, _, _, _, _, _, _, _ = nOvfl, ovflPageSize, ovflPgno, pBt, rc, v1, v2, v3 if pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { /* Cell extends past end of page */ - return _sqlite3CorruptError(tls, int32(77036)) + return _sqlite3CorruptError(tls, int32(77441)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -51856,7 +52135,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp /* 0 is not a legal page number and page 1 cannot be an ** overflow page. Therefore if ovflPgno<2 or past the end of the ** file the database must be corrupt. */ - return _sqlite3CorruptError(tls, int32(77053)) + return _sqlite3CorruptError(tls, int32(77458)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -51879,7 +52158,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp ** caller is iterating through or using in some other way, this ** can be problematic. */ - rc = _sqlite3CorruptError(tls, int32(77073)) + rc = _sqlite3CorruptError(tls, int32(77478)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -52100,7 +52379,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = uint32(int32(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77329)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77734)) return } rc = _freeSpace(tls, pPage, uint16(pc), uint16(sz)) @@ -52494,12 +52773,12 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg sz = *(*Tu16)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FszCell + uintptr(i)*2)) if uint64(pCell) >= uint64(aData+uintptr(j)) && uint64(pCell) < uint64(pEnd) { if uint64(pCell+uintptr(sz)) > uint64(pEnd) { - return _sqlite3CorruptError(tls, int32(77718)) + return _sqlite3CorruptError(tls, int32(78123)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(77723)) + return _sqlite3CorruptError(tls, int32(78128)) } } pData -= uintptr(sz) @@ -52507,7 +52786,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = uint8(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(77729)) + return _sqlite3CorruptError(tls, int32(78134)) } libc.Xmemmove(tls, pData, pCell, uint64(sz)) i++ @@ -52602,7 +52881,7 @@ func _pageInsertArray(tls *libc.TLS, pPg uintptr, pBegin uintptr, ppData uintptr ** database. But they might for a corrupt database. Hence use memmove() ** since memcpy() sends SIGABORT with overlapping buffers on OpenBSD */ if uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))+uintptr(sz)) > uint64(pEnd) && uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))) < uint64(pEnd) { - _sqlite3CorruptError(tls, int32(77814)) + _sqlite3CorruptError(tls, int32(78219)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), uint64(sz)) @@ -52750,7 +53029,7 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p if iOld < iNew { nShift = _pageFreeArray(tls, pPg, iOld, iNew-iOld, pCArray) if nShift > nCell { - return _sqlite3CorruptError(tls, int32(77936)) + return _sqlite3CorruptError(tls, int32(78341)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), uint64(nCell*int32(2))) nCell -= nShift @@ -52816,11 +53095,12 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)))) = uint8((int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)) + 1)) = uint8(int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) return SQLITE_OK + goto editpage_fail editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(78010)) + return _sqlite3CorruptError(tls, int32(78415)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -52865,7 +53145,7 @@ func _balance_quick(tls *libc.TLS, pParent uintptr, pPage uintptr, pSpace uintpt _, _, _, _, _, _, _ = pBt, pOut, pStop, v1, v2, v3, v4 pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt /* Page number of pNew */ if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(78050)) + return _sqlite3CorruptError(tls, int32(78455)) } /* dbfuzz001.test */ /* Allocate a new page. This page will become the right-sibling of ** pPage. Make the parent page writable, so that the new divider cell @@ -53226,7 +53506,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78471)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78876)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -53249,7 +53529,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa libc.Xmemset(tls, (*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell+uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*2, 0, uint64(2)*uint64(limit+int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78495)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78900)) goto balance_cleanup } limit = int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -53380,7 +53660,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa if i+int32(1) >= k { k = i + int32(2) if k > libc.Int32FromInt32(NB)+libc.Int32FromInt32(2) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78596)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79001)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -53423,7 +53703,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v10 = 0 } if cntNew[i] <= v10 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78629)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79034)) goto balance_cleanup } } @@ -53482,7 +53762,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v15 = 0 } if cntNew[i-int32(1)] <= v15 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78673)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79078)) goto balance_cleanup } goto _11 @@ -53514,7 +53794,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) nNew++ if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) != int32(1)+libc.BoolInt32(i == iParentIdx-nxDiv) && *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78706)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79111)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -53744,7 +54024,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa } pSrcEnd = *(*uintptr)(unsafe.Pointer(bp + 112 + 32 + uintptr(k)*8)) if uint64(pCell1) < uint64(pSrcEnd) && uint64(pCell1+uintptr(sz2)) > uint64(pSrcEnd) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78906)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79311)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -53879,6 +54159,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa /* ** Cleanup before returning. */ + goto balance_cleanup balance_cleanup: ; _sqlite3DbFree(tls, uintptr(0), (*(*TCellArray)(unsafe.Pointer(bp + 112))).FapCell) @@ -53989,7 +54270,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && int32((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(79138)) + return _sqlite3CorruptError(tls, int32(79543)) } goto _1 _1: @@ -54062,7 +54343,7 @@ func _balance(tls *libc.TLS, pCur uintptr) (r int32) { /* The page being written is not a root page, and there is currently ** more than one reference to it. This only happens if the page is one ** of its own ancestor pages. Corruption. */ - rc = _sqlite3CorruptError(tls, int32(79198)) + rc = _sqlite3CorruptError(tls, int32(79603)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = int32(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -54221,7 +54502,7 @@ func _btreeOverwriteOverflowCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int return rc } if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1) || (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FisInit != 0 { - rc = _sqlite3CorruptError(tls, int32(79362)) + rc = _sqlite3CorruptError(tls, int32(79767)) } else { if uint32(iOffset)+ovflPageSize < uint32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -54252,7 +54533,7 @@ func _btreeOverwriteCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int32) { nTotal = (*TBtreePayload)(unsafe.Pointer(pX)).FnData + (*TBtreePayload)(unsafe.Pointer(pX)).FnZero /* Total bytes of to write */ pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage /* Page being written */ if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload+uintptr((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd || (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FcellOffset) { - return _sqlite3CorruptError(tls, int32(79390)) + return _sqlite3CorruptError(tls, int32(79795)) } if int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -54337,7 +54618,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** Which can only happen if the SQLITE_NoSchemaError flag was set when ** the schema was loaded. This cannot be asserted though, as a user might ** set the flag, load the schema, and then unset the flag. */ - return _sqlite3CorruptError(tls, int32(79471)) + return _sqlite3CorruptError(tls, int32(79876)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -54429,7 +54710,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79594)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79999)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -54465,7 +54746,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) if *(*int32)(unsafe.Pointer(bp + 4)) == 0 { if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79636)) + return _sqlite3CorruptError(tls, int32(80041)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -54495,10 +54776,10 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry. */ /* clearCell never fails when nLocal==nPayload */ if oldCell < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+uintptr(10) { - return _sqlite3CorruptError(tls, int32(79663)) + return _sqlite3CorruptError(tls, int32(80068)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79666)) + return _sqlite3CorruptError(tls, int32(80071)) } libc.Xmemcpy(tls, oldCell, newCell, uint64(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -54563,6 +54844,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s (*TBtCursor)(unsafe.Pointer(pCur)).FnKey = (*TBtreePayload)(unsafe.Pointer(pX)).FnKey } } + goto end_insert end_insert: ; return *(*int32)(unsafe.Pointer(bp)) @@ -54615,7 +54897,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T nIn = uint32((*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnLocal) aIn = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload if aIn+uintptr(nIn) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79768)) + return _sqlite3CorruptError(tls, int32(80173)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -54637,7 +54919,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T } if nRem > nIn { if aIn+uintptr(nIn)+uintptr(4) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79793)) + return _sqlite3CorruptError(tls, int32(80198)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -54737,21 +55019,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(79889)) + return _sqlite3CorruptError(tls, int32(80294)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(79898)) + return _sqlite3CorruptError(tls, int32(80303)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCellIdx))))< _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80112)) + return _sqlite3CorruptError(tls, int32(80517)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -54996,7 +55278,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags } *(*int32)(unsafe.Pointer(bp + 12)) = _ptrmapGet(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 8)), bp+32, bp+36) if int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80160)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80565)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -55077,14 +55359,14 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int var _ /* rc at bp+8 */ int32 _, _, _, _ = hdr, i, pCell, v2 if pgno > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80250)) + return _sqlite3CorruptError(tls, int32(80655)) } *(*int32)(unsafe.Pointer(bp + 8)) = _getAndInitPage(tls, pBt, pgno, bp, 0) if *(*int32)(unsafe.Pointer(bp + 8)) != 0 { return *(*int32)(unsafe.Pointer(bp + 8)) } if int32((*TBtShared)(unsafe.Pointer(pBt)).FopenFlags)&int32(BTREE_SINGLE) == 0 && _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1)+libc.BoolInt32(pgno == uint32(1)) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80257)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80662)) goto cleardatabasepage_out } hdr = int32((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -55135,6 +55417,7 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _zeroPage(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData + uintptr(hdr))))|int32(PTF_LEAF)) } } + goto cleardatabasepage_out cleardatabasepage_out: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -55220,7 +55503,7 @@ func _btreeDropTable(tls *libc.TLS, p uintptr, iTable TPgno, piMoved uintptr) (r *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) pBt = (*TBtree)(unsafe.Pointer(p)).FpBt if iTable > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80361)) + return _sqlite3CorruptError(tls, int32(80766)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, int32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -55485,7 +55768,7 @@ func _checkAppendMsg(tls *libc.TLS, pCheck uintptr, zFormat uintptr, va uintptr) (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr++ ap = va if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FerrMsg.FnChar != 0 { - Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4205, int32(1)) + Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4269, int32(1)) } if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx != 0 { Xsqlite3_str_appendf(tls, pCheck+72, (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx, libc.VaList(bp+8, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv0, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv2)) @@ -55533,11 +55816,11 @@ func _checkRef(tls *libc.TLS, pCheck uintptr, iPage TPgno) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if iPage > (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnCkPage || iPage == uint32(0) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4207, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4271, libc.VaList(bp+8, iPage)) return int32(1) } if _getPageReferenced(tls, pCheck, iPage) != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4230, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4294, libc.VaList(bp+8, iPage)) return int32(1) } _setPageReferenced(tls, pCheck, iPage) @@ -55563,11 +55846,11 @@ func _checkPtrmap(tls *libc.TLS, pCheck uintptr, iChild TPgno, eType Tu8, iParen if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FusableSize/uint32(4)-uint32(2) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4360, libc.VaList(bp+16, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4424, libc.VaList(bp+16, iPage)) N-- } else { i = 0 @@ -55639,11 +55922,11 @@ func _checkList(tls *libc.TLS, pCheck uintptr, isFreeList int32, iPage TPgno, N } if N != 0 && nErrAtStart == (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr { if isFreeList != 0 { - v2 = __ccgo_ts + 4399 + v2 = __ccgo_ts + 4463 } else { - v2 = __ccgo_ts + 4404 + v2 = __ccgo_ts + 4468 } - _checkAppendMsg(tls, pCheck, __ccgo_ts+4425, libc.VaList(bp+16, v2, expected-N, expected)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4489, libc.VaList(bp+16, v2, expected-N, expected)) } } @@ -55779,12 +56062,12 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr if _checkRef(tls, pCheck, iPage) != 0 { return 0 } - (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4451 + (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4515 (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = iPage v1 = _btreeGetPage(tls, pBt, iPage, bp+8, 0) rc = v1 if v1 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4469, libc.VaList(bp+56, rc)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4533, libc.VaList(bp+56, rc)) if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< usableSize-uint32(4) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4623, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4687, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) doCoverageCheck = 0 goto _4 } pCell = data + uintptr(pc) (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FxParseCell})))(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), pCell, bp+24) if pc+uint32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnSize) > usableSize { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4653, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4717, 0) doCoverageCheck = 0 goto _4 } @@ -55866,7 +56152,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr v5 = libc.BoolInt32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey >= *(*Ti64)(unsafe.Pointer(bp))) } if v5 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4677, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4741, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) } *(*Ti64)(unsafe.Pointer(bp)) = (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey keyCanBeEqual = 0 /* Only the first key on the page may ==maxKey */ @@ -55889,7 +56175,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr d2 = _checkTreePage(tls, pCheck, uint32(pgno), bp, *(*Ti64)(unsafe.Pointer(bp))) keyCanBeEqual = 0 if d2 != depth { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4701, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4765, 0) depth = d2 } } else { @@ -55966,7 +56252,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr prev = contentOffset - uint32(1) /* Implied first min-heap entry */ for _btreeHeapPull(tls, heap, bp+16) != 0 { if prev&uint32(0xffff) >= *(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4726, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4790, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) break } else { nFrag = int32(uint32(nFrag) + (*(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) - prev&libc.Uint32FromInt32(0xffff) - libc.Uint32FromInt32(1))) @@ -55980,9 +56266,10 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr ** number of fragmented free bytes within the cell content area. */ if *(*Tu32)(unsafe.Pointer(heap)) == uint32(0) && nFrag != int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4763, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4827, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) } } + goto end_of_check end_of_check: ; if !(doCoverageCheck != 0) { @@ -56019,16 +56306,16 @@ end_of_check: // ** the unverified btrees. Except, if aRoot[1] is 1, then the freelist // ** checks are still performed. // */ -func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { - bp := tls.Alloc(256) - defer tls.Free(256) +func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, aCnt uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { + bp := tls.Alloc(272) + defer tls.Free(272) var bCkFreelist, bPartial int32 var i, mx, mxInHdr TPgno var pBt uintptr var savedDbFlags Tu64 - var _ /* notUsed at bp+224 */ Ti64 + var _ /* notUsed at bp+232 */ Ti64 var _ /* sCheck at bp+0 */ TIntegrityCk - var _ /* zErr at bp+120 */ [100]int8 + var _ /* zErr at bp+128 */ [100]int8 _, _, _, _, _, _, _ = bCkFreelist, bPartial, i, mx, mxInHdr, pBt, savedDbFlags pBt = (*TBtree)(unsafe.Pointer(p)).FpBt savedDbFlags = (*Tsqlite3)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags @@ -56042,13 +56329,13 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } } _sqlite3BtreeEnter(tls, p) - libc.Xmemset(tls, bp, 0, uint64(120)) + libc.Xmemset(tls, bp, 0, uint64(128)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fdb = db (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt = pBt (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage = _btreePagecount(tls, (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr = mxErr - _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+120, int32(100), int32(SQLITE_MAX_LENGTH)) + _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+128, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FerrMsg.FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage == uint32(0) { goto integrity_ck_cleanup @@ -56070,7 +56357,7 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin /* Check the integrity of the freelist */ if bCkFreelist != 0 { - (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4815 + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4879 _checkList(tls, bp, int32(1), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+32), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = uintptr(0) } @@ -56094,11 +56381,11 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } mxInHdr = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+52) if mx != mxInHdr { - _checkAppendMsg(tls, bp, __ccgo_ts+4826, libc.VaList(bp+240, mx, mxInHdr)) + _checkAppendMsg(tls, bp, __ccgo_ts+4890, libc.VaList(bp+248, mx, mxInHdr)) } } else { if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+64) != uint32(0) { - _checkAppendMsg(tls, bp, __ccgo_ts+4871, 0) + _checkAppendMsg(tls, bp, __ccgo_ts+4935, 0) } } } @@ -56108,14 +56395,15 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin if !(int32(i) < nRoot && (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr != 0) { break } - if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) == uint32(0) { - goto _2 - } - if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { - _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnRow = 0 + if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) != 0 { + if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { + _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + } + (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fv0 = *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) + _checkTreePage(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), bp+232, libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)< nRec || iHdr >= *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84303)) + iHdr = uint32(uint8(v1)) + if *(*Tu32)(unsafe.Pointer(bp + 4)) > uint32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84745)) } - iField = *(*int32)(unsafe.Pointer(bp + 4)) + iField = int64(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 for { if !(i <= iCol) { @@ -59102,19 +59425,19 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } else { v3 = int32(_sqlite3GetVarint32(tls, a+uintptr(iHdr), bp)) } - iHdr += int32(uint8(v3)) - if iHdr > *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84309)) + iHdr += uint32(uint8(v3)) + if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84751)) } - szField = int32(_sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp)))) - iField += szField + szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) + iField += int64(szField) goto _2 _2: ; i++ } - if iField > nRec { - return _sqlite3CorruptError(tls, int32(84315)) + if iField > int64(nRec) { + return _sqlite3CorruptError(tls, int32(84757)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -59124,7 +59447,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC return int32(SQLITE_NOMEM) } } - _sqlite3VdbeSerialGet(tls, a+uintptr(iField-szField), *(*Tu32)(unsafe.Pointer(bp)), pMem) + _sqlite3VdbeSerialGet(tls, a+uintptr(iField-int64(szField)), *(*Tu32)(unsafe.Pointer(bp)), pMem) (*TMem)(unsafe.Pointer(pMem)).Fenc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc return SQLITE_OK } @@ -59543,6 +59866,7 @@ func _sqlite3VdbeMultiLoad(tls *libc.TLS, p uintptr, iDest int32, zTypes uintptr i++ } _sqlite3VdbeAddOp2(tls, p, int32(OP_ResultRow), iDest, i) + goto skip_op_resultrow skip_op_resultrow: ; _ = ap @@ -59911,6 +60235,9 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { /* True because of tag-20230419-1 */ (*TOp)(unsafe.Pointer(pOp)).Fp2 = *(*int32)(unsafe.Pointer(aLabel + uintptr(^(*TOp)(unsafe.Pointer(pOp)).Fp2)*4)) } + /* OPFLG_JUMP opcodes never have P2==0, though OPFLG_JUMP0 opcodes + ** might */ + /* Jumps never go off the end of the bytecode array */ break } /* The mkopcodeh.tcl script has so arranged things that the only @@ -59919,6 +60246,7 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { } pOp -= 24 } + goto resolve_p2_values_loop_exit resolve_p2_values_loop_exit: ; if aLabel != 0 { @@ -60422,7 +60750,7 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { switch int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) { case -int32(8): pKeyInfo = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5083, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5147, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) j = 0 for { if !(j < int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)) { @@ -60432,66 +60760,66 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { if pColl != 0 { v2 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } zColl = v2 - if libc.Xstrcmp(tls, zColl, __ccgo_ts+5088) == 0 { - zColl = __ccgo_ts + 5095 + if libc.Xstrcmp(tls, zColl, __ccgo_ts+5152) == 0 { + zColl = __ccgo_ts + 5159 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_DESC) != 0 { - v3 = __ccgo_ts + 5076 + v3 = __ccgo_ts + 5140 } else { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_BIGNULL) != 0 { - v4 = __ccgo_ts + 5097 + v4 = __ccgo_ts + 5161 } else { - v4 = __ccgo_ts + 1650 + v4 = __ccgo_ts + 1664 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5100, libc.VaList(bp+40, v3, v4, zColl)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5164, libc.VaList(bp+40, v3, v4, zColl)) goto _1 _1: ; j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5108, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5172, int32(1)) case -int32(2): pColl1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5124, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5188, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) case -int32(7): pDef = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5133, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5197, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) case -int32(15): pDef1 = (*Tsqlite3_context)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpFunc - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5133, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5197, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) case -int32(13): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1406, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1425, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(3): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5140, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5204, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) case -int32(12): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1373, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1392, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(10): pMem = *(*uintptr)(unsafe.Pointer(pOp + 16)) if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Str) != 0 { zP4 = (*TMem)(unsafe.Pointer(pMem)).Fz } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1406, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1425, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1373, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1392, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Null) != 0 { - zP4 = __ccgo_ts + 1651 + zP4 = __ccgo_ts + 1665 } else { - zP4 = __ccgo_ts + 5143 + zP4 = __ccgo_ts + 5207 } } } } case -int32(11): pVtab = (*TVTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5150, libc.VaList(bp+40, pVtab)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5214, libc.VaList(bp+40, pVtab)) case -int32(14): ai = *(*uintptr)(unsafe.Pointer(pOp + 16)) n = *(*Tu32)(unsafe.Pointer(ai)) /* The first element of an INTARRAY is always the @@ -60506,15 +60834,15 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } else { v6 = int32(',') } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5158, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5222, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) goto _5 _5: ; i++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5163, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5227, int32(1)) case -int32(4): - zP4 = __ccgo_ts + 5165 + zP4 = __ccgo_ts + 5229 case -int32(5): zP4 = (*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FzName default: @@ -60530,10 +60858,10 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } var _encnames = [4]uintptr{ - 0: __ccgo_ts + 5110, - 1: __ccgo_ts + 5112, - 2: __ccgo_ts + 5114, - 3: __ccgo_ts + 5119, + 0: __ccgo_ts + 5174, + 1: __ccgo_ts + 5176, + 2: __ccgo_ts + 5178, + 3: __ccgo_ts + 5183, } // C documentation @@ -61484,7 +61812,7 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { retryCount = 0 /* Select a super-journal file name */ nMainFile = _sqlite3Strlen30(tls, zMainFile) - zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5173, libc.VaList(bp+24, 0, zMainFile, 0)) + zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5237, libc.VaList(bp+24, 0, zMainFile, 0)) if zSuper == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -61492,18 +61820,18 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { for cond := true; cond; cond = rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 8)) != 0 { if retryCount != 0 { if retryCount > int32(100) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5185, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5249, libc.VaList(bp+24, zSuper)) _sqlite3OsDelete(tls, pVfs, zSuper, 0) break } else { if retryCount == int32(1) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5199, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5263, libc.VaList(bp+24, zSuper)) } } } retryCount++ Xsqlite3_randomness(tls, int32(4), bp+12) - Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5214, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) + Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5278, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) /* The antipenultimate character of the super-journal name must ** be "9" to avoid name collisions when using 8+3 filenames. */ rc = _sqlite3OsAccess(tls, pVfs, zSuper, SQLITE_ACCESS_EXISTS, bp+8) @@ -61734,7 +62062,7 @@ func _sqlite3VdbeCheckFk(tls *libc.TLS, p uintptr, deferred int32) (r int32) { if deferred != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredCons+(*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons > 0 || !(deferred != 0) && (*TVdbe)(unsafe.Pointer(p)).FnFkConstraint > 0 { (*TVdbe)(unsafe.Pointer(p)).Frc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(3)< y { return +libc.Int32FromInt32(1) } - s = float64(i) - if s < r { + if float64(i) < r { v2 = -int32(1) } else { - v2 = libc.BoolInt32(s > r) + v2 = libc.BoolInt32(float64(i) > r) } return v2 } @@ -63043,7 +63370,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89131))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89580))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -63133,7 +63460,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || int32((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89212))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89661))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -63168,7 +63495,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = int32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+uint32(nStr) > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89242))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89691))) return 0 /* Corruption */ } else { if int32((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -63222,7 +63549,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += uint32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89293))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89742))) return 0 /* Corrupt index */ } } @@ -63336,6 +63663,7 @@ func _vdbeRecordCompareString(tls *libc.TLS, nKey1 int32, pKey1 uintptr, pPKey2 _, _, _, _, _, _ = aKey1, nCmp, nStr, res, szHdr, v1 aKey1 = pKey1 *(*int32)(unsafe.Pointer(bp)) = int32(int8(*(*Tu8)(unsafe.Pointer(aKey1 + 1)))) + goto vrcs_restart vrcs_restart: ; if *(*int32)(unsafe.Pointer(bp)) < int32(12) { @@ -63353,7 +63681,7 @@ vrcs_restart: szHdr = int32(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89456))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89905))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -63501,10 +63829,11 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr return SQLITE_OK /* Jump here if database corruption is detected after m has been ** allocated. Free the m object and return SQLITE_CORRUPT. */ + goto idx_rowid_corruption idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(89614)) + return _sqlite3CorruptError(tls, int32(90063)) } // C documentation @@ -63535,7 +63864,7 @@ func _sqlite3VdbeIdxKeyCompare(tls *libc.TLS, db uintptr, pC uintptr, pUnpacked ** that btreeParseCellPtr() and sqlite3GetVarint32() are implemented */ if nCellKey <= 0 || nCellKey > int64(0x7fffffff) { *(*int32)(unsafe.Pointer(res)) = 0 - return _sqlite3CorruptError(tls, int32(89647)) + return _sqlite3CorruptError(tls, int32(90096)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(nCellKey), bp) @@ -63686,15 +64015,15 @@ func _sqlite3NotPureFunc(tls *libc.TLS, pCtx uintptr) (r int32) { pOp = (*TVdbe)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe)).FaOp + uintptr((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FiOp)*24 if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_PureFunc) { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_IsCheck) != 0 { - zContext = __ccgo_ts + 5257 + zContext = __ccgo_ts + 5321 } else { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_GenCol) != 0 { - zContext = __ccgo_ts + 5276 + zContext = __ccgo_ts + 5340 } else { - zContext = __ccgo_ts + 5295 + zContext = __ccgo_ts + 5359 } } - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5304, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5368, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) return 0 @@ -63868,7 +64197,7 @@ func Xsqlite3_expired(tls *libc.TLS, pStmt uintptr) (r int32) { // */ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { if (*TVdbe)(unsafe.Pointer(p)).Fdb == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5340, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5404, 0) return int32(1) } else { return 0 @@ -63878,7 +64207,7 @@ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { func _vdbeSafetyNotNull(tls *libc.TLS, p uintptr) (r int32) { if p == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5385, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5449, 0) return int32(1) } else { return _vdbeSafety(tls, p) @@ -63936,7 +64265,7 @@ func Xsqlite3_finalize(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt db = (*TVdbe)(unsafe.Pointer(v)).Fdb if _vdbeSafety(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90035)) + return _sqlite3MisuseError(tls, int32(90484)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -64439,7 +64768,7 @@ func Xsqlite3_result_error_code(tls *libc.TLS, pCtx uintptr, errCode int32) { // /* Force an SQLITE_TOOBIG error. */ func Xsqlite3_result_error_toobig(tls *libc.TLS, pCtx uintptr) { (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = int32(SQLITE_TOOBIG) - _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5425, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) + _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5489, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) } // C documentation @@ -64518,6 +64847,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { _, _ = db, rc db = (*TVdbe)(unsafe.Pointer(p)).Fdb if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_RUN_STATE) { + goto restart_step restart_step: ; if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) == int32(VDBE_READY_STATE) { @@ -64615,6 +64945,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { rc = (*TVdbe)(unsafe.Pointer(p)).Frc } } + goto end_of_step end_of_step: ; /* There are only a limited number of result codes allowed from the @@ -64638,7 +64969,7 @@ func Xsqlite3_step(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt /* the prepared statement */ cnt = 0 /* The database connection */ if _vdbeSafetyNotNull(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90829)) + return _sqlite3MisuseError(tls, int32(91278)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -64768,7 +65099,7 @@ func _valueFromValueList(tls *libc.TLS, pVal uintptr, ppOut uintptr, bNext int32 _, _, _, _, _, _, _ = iOff, pOut, pRhs, rc, sz, zBuf, v1 *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) if pVal == uintptr(0) { - return _sqlite3MisuseError(tls, int32(90950)) + return _sqlite3MisuseError(tls, int32(91399)) } if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -64990,6 +65321,7 @@ func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, (*TAuxData)(unsafe.Pointer(pAuxData)).FpAux = pAux (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = xDelete return + goto failed failed: ; if xDelete != 0 { @@ -65227,18 +65559,18 @@ func Xsqlite3_column_type(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { // ** Column names appropriate for EXPLAIN or EXPLAIN QUERY PLAN. // */ var _azExplainColNames8 = [12]uintptr{ - 0: __ccgo_ts + 5448, - 1: __ccgo_ts + 5453, - 2: __ccgo_ts + 5460, - 3: __ccgo_ts + 5463, - 4: __ccgo_ts + 5466, - 5: __ccgo_ts + 5469, - 6: __ccgo_ts + 5472, - 7: __ccgo_ts + 5475, - 8: __ccgo_ts + 5483, - 9: __ccgo_ts + 5486, - 10: __ccgo_ts + 5493, - 11: __ccgo_ts + 5501, + 0: __ccgo_ts + 5512, + 1: __ccgo_ts + 5517, + 2: __ccgo_ts + 5524, + 3: __ccgo_ts + 5527, + 4: __ccgo_ts + 5530, + 5: __ccgo_ts + 5533, + 6: __ccgo_ts + 5536, + 7: __ccgo_ts + 5539, + 8: __ccgo_ts + 5547, + 9: __ccgo_ts + 5550, + 10: __ccgo_ts + 5557, + 11: __ccgo_ts + 5565, } var _azExplainColNames16data = [60]Tu16{ 0: uint16('a'), @@ -65372,6 +65704,7 @@ func _columnName(tls *libc.TLS, pStmt uintptr, N int32, useUtf16 int32, useType ret = uintptr(0) } } + goto columnName_end columnName_end: ; Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -65481,14 +65814,14 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { var v2 bool _, _, _ = pVar, v1, v2 if _vdbeSafetyNotNull(tls, p) != 0 { - return _sqlite3MisuseError(tls, int32(91554)) + return _sqlite3MisuseError(tls, int32(92003)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(91558))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(92007))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5508, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(91562)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5572, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) + return _sqlite3MisuseError(tls, int32(92011)) } if i >= uint32((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -66052,7 +66385,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp /* Test that this call is being made from within an SQLITE_DELETE or ** SQLITE_UPDATE pre-update callback, and that iIdx is within range. */ if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_INSERT) { - rc = _sqlite3MisuseError(tls, int32(92098)) + rc = _sqlite3MisuseError(tls, int32(92547)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -66098,6 +66431,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } } + goto preupdate_old_out preupdate_old_out: ; _sqlite3Error(tls, db, rc) @@ -66181,7 +66515,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp rc = SQLITE_OK p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(92221)) + rc = _sqlite3MisuseError(tls, int32(92670)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -66247,6 +66581,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } *(*uintptr)(unsafe.Pointer(ppValue)) = pMem + goto preupdate_new_out preupdate_new_out: ; _sqlite3Error(tls, db, rc) @@ -66354,7 +66689,7 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr break } } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5548, int32(3)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5612, int32(3)) Xsqlite3_str_append(tls, bp+8, zStart, int32(int64(zRawSql)-int64(zStart))) } } else { @@ -66386,13 +66721,13 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr nextIndex = v2 pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(*(*int32)(unsafe.Pointer(bp))-int32(1))*56 if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Null) != 0 { - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1651, int32(4)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1665, int32(4)) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1406, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1425, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5069, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5133, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Str) != 0 { /* Number of bytes of the string text to include in output */ enc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc @@ -66407,28 +66742,28 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr pVar = bp + 40 } nOut = (*TMem)(unsafe.Pointer(pVar)).Fn - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5552, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5616, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) if int32(enc) != int32(SQLITE_UTF8) { _sqlite3VdbeMemRelease(tls, bp+40) } } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Zero) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5559, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5623, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) } else { /* Number of bytes of the blob to include in output */ - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5572, int32(2)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5636, int32(2)) nOut1 = (*TMem)(unsafe.Pointer(pVar)).Fn i = 0 for { if !(i < nOut1) { break } - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5575, libc.VaList(bp+104, int32(*(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5639, libc.VaList(bp+104, int32(*(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) goto _3 _3: ; i++ } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5580, int32(1)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5644, int32(1)) } } } @@ -67028,7 +67363,7 @@ var _azTypes = [5]uintptr{ 1: __ccgo_ts + 1146, 2: __ccgo_ts + 1151, 3: __ccgo_ts + 1129, - 4: __ccgo_ts + 1651, + 4: __ccgo_ts + 1665, } // C documentation @@ -67042,7 +67377,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { defer tls.Free(976) var aCol, aMem, aOffset, aOp, aPermute, aRoot, apArg, apArg1, db, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pnErr, t1, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v240, v241, v242, v250, v251, v252, v253, v255, v263, v278, v279, v286, v288, v297, v298, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 uintptr var affinity int8 - var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 + var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, savedAnalysisLimit, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 var colCacheCtr, iAddr, iMap, iPrior, idx, len11, n3, p22, p23, serialType, serial_type, v213, v214, v216, v221, v222 Tu32 var encoding, isWriteLock, mTrace, op, p5, resetSchemaOnFault, vtabOnConflict, v225 Tu8 var flags1, flags11, flags2, flags3, flags31, newType, nullFlag, type1, type2, typeMask, v190 Tu16 @@ -67099,7 +67434,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { var _ /* z at bp+688 */ uintptr var _ /* zErr at bp+632 */ uintptr var _ /* zErr at bp+792 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, savedAnalysisLimit, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 aOp = (*TVdbe)(unsafe.Pointer(p)).FaOp /* Copy of p->aOp */ pOp = aOp /* Current operation */ rc = SQLITE_OK /* Value to return */ @@ -67369,7 +67704,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto _109 case int32(OP_SeekEnd): goto _110 - case int32(OP_IfSmaller): + case int32(OP_IfSizeBetween): goto _111 case int32(OP_Sort): goto _112 @@ -67571,6 +67906,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { */ _2: ; /* jump */ + goto jump_to_p2_and_check_for_interrupt jump_to_p2_and_check_for_interrupt: ; pOp = aOp + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp2-int32(1))*24 @@ -67584,6 +67920,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** way for performance, to avoid having to run the interrupt and progress ** checks on every opcode. This helps sqlite3_step() to run about 1.5% ** faster according to "valgrind --tool=cachegrind" */ + goto check_for_interrupt check_for_interrupt: ; if libc.AtomicLoadPInt32(db+432) != 0 { @@ -67661,7 +67998,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: EndCoroutine */ _5: - ; /* jump */ + ; /* jump0 */ pOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 *(*Ti64)(unsafe.Pointer(pOut)) = int64((*TOp)(unsafe.Pointer(pOp)).Fp3 - int32(1)) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Int) @@ -67670,6 +68007,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* Most jump operations do a goto to this spot in order to update ** the pOp pointer. */ + goto jump_to_p2 jump_to_p2: ; /* There are never any jumps to instruction 0 */ @@ -67680,7 +68018,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** ** The instruction at the address in register P1 is a Yield. ** Jump to the P2 parameter of that Yield. - ** After the jump, register P1 becomes undefined. + ** After the jump, the value register P1 is left with a value + ** such that subsequent OP_Yields go back to the this same + ** OP_EndCoroutine instruction. ** ** See also: InitCoroutine */ @@ -67688,8 +68028,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 pCaller = aOp + uintptr(*(*Ti64)(unsafe.Pointer(pIn1)))*24 + *(*Ti64)(unsafe.Pointer(pIn1)) = int64(int32((int64(pOp)-int64((*TVdbe)(unsafe.Pointer(p)).FaOp))/24) - int32(1)) pOp = aOp + uintptr((*TVdbeOp)(unsafe.Pointer(pCaller)).Fp2-int32(1))*24 - (*TMem)(unsafe.Pointer(pIn1)).Fflags = uint16(MEM_Undefined) goto _187 /* Opcode: Yield P1 P2 * * * ** @@ -67786,15 +68126,15 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TVdbe)(unsafe.Pointer(p)).FerrorAction = uint8((*TOp)(unsafe.Pointer(pOp)).Fp2) if (*TVdbe)(unsafe.Pointer(p)).Frc != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+5616, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) + _sqlite3VdbeError(tls, p, __ccgo_ts+5680, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) if *(*uintptr)(unsafe.Pointer(pOp + 16)) != 0 { - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5637, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5701, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } } else { - _sqlite3VdbeError(tls, p, __ccgo_ts+3797, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3861, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } pcx = int32((int64(pOp) - int64(aOp)) / 24) - Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5644, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) + Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5708, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) } rc = _sqlite3VdbeHalt(tls, p) if rc == int32(SQLITE_BUSY) { @@ -67986,13 +68326,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } (*TMem)(unsafe.Pointer(pOut)).Fenc = encoding goto _187 - /* Opcode: Variable P1 P2 * P4 * - ** Synopsis: r[P2]=parameter(P1,P4) + /* Opcode: Variable P1 P2 * * * + ** Synopsis: r[P2]=parameter(P1) ** ** Transfer the values of bound parameter P1 into register P2 - ** - ** If the parameter is named, then its name appears in P4. - ** The P4 value is used by sqlite3_bind_parameter_name(). */ _19: ; /* Value being transferred */ @@ -68283,6 +68620,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(int32(type1)&int32(type2)&int32(MEM_Int) != 0) { goto _200 } + goto int_math int_math: ; iA = *(*Ti64)(unsafe.Pointer(pIn1)) @@ -68335,6 +68673,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if int32(type1)&int32(type2)&int32(MEM_Int) != 0 { goto int_math } + goto fp_math fp_math: ; rA = _sqlite3VdbeRealValue(tls, pIn1) @@ -68374,6 +68713,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _201: ; goto _187 + goto arithmetic_result_is_null arithmetic_result_is_null: ; _sqlite3VdbeMemSetNull(tls, pOut) @@ -68512,7 +68852,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** raise an SQLITE_MISMATCH exception. */ _38: - ; /* jump, in1 */ + ; /* jump0, in1 */ pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 if int32((*TMem)(unsafe.Pointer(pIn1)).Fflags)&int32(MEM_Int) == 0 { _applyAffinity(tls, pIn1, int8(SQLITE_AFF_NUMERIC), encoding) @@ -69241,6 +69581,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* PseudoTable input register */ pC3 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) p22 = uint32((*TOp)(unsafe.Pointer(pOp)).Fp2) + goto op_column_restart op_column_restart: ; aOffset = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaOffset @@ -69367,6 +69708,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { zData = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaRow } /* Fill in pC->aType[i] and aOffset[i] values through the p2-th field. */ + goto op_column_read_header op_column_read_header: ; i1 = int32((*TVdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed) @@ -69504,16 +69846,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } } + goto op_column_out op_column_out: ; goto _187 + goto op_column_corrupt op_column_corrupt: ; if (*(*TOp)(unsafe.Pointer(aOp))).Fp3 > 0 { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(95863)) + rc = _sqlite3CorruptError(tls, int32(96311)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -69613,9 +69957,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { i2++ } goto _187 + goto vdbe_type_error vdbe_type_error: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5668, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) + _sqlite3VdbeError(tls, p, __ccgo_ts+5732, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(12)< 0 && p12 == int32(SAVEPOINT_RELEASE) { /* It is not possible to release (commit) a savepoint if there are ** active write statements. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5782, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5846, 0) rc = int32(SQLITE_BUSY) } else { /* Determine whether or not this is a transaction savepoint. If so, @@ -70211,7 +70556,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If this instruction implements a COMMIT and other VMs are writing ** return an error indicating that the other VMs must complete first. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5836, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5900, 0) rc = int32(SQLITE_BUSY) goto abort_due_to_error } else { @@ -70241,12 +70586,12 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto vdbe_return } else { if !(desiredAutoCommit != 0) { - v250 = __ccgo_ts + 5891 + v250 = __ccgo_ts + 5955 } else { if iRollback != 0 { - v251 = __ccgo_ts + 5939 + v251 = __ccgo_ts + 6003 } else { - v251 = __ccgo_ts + 5982 + v251 = __ccgo_ts + 6046 } v250 = v251 } @@ -70338,7 +70683,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** SQL statement was prepared. */ _sqlite3DbFree(tls, db, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg) - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6023) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6087) /* If the schema-cookie from the database file matches the cookie ** stored with the in-memory representation of the schema, do ** not reload the schema from the database file. @@ -70576,6 +70921,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** and report database corruption if they were not, but this check has ** since moved into the btree layer. */ (*TVdbeCursor)(unsafe.Pointer(pCur)).FisTable = libc.BoolUint8(int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) != -int32(8)) + goto open_cursor_set_hints open_cursor_set_hints: ; _sqlite3BtreeCursorHintFlags(tls, *(*uintptr)(unsafe.Pointer(pCur + 48)), uint32(int32((*TOp)(unsafe.Pointer(pOp)).Fp5)&(libc.Int32FromInt32(OPFLAG_BULKCSR)|libc.Int32FromInt32(OPFLAG_SEEKEQ)))) @@ -70655,7 +71001,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** form sqlite3BtreeInsert() where the length of the data is zero. */ /* Only used when number of columns is zero */ (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fn = 0 - (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1650 + (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1664 } pCx1 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) if pCx1 != 0 && !(int32(TBool(*(*uint8)(unsafe.Pointer(pCx1 + 8))&0x8>>3)) != 0) && (*TOp)(unsafe.Pointer(pOp)).Fp2 <= int32((*TVdbeCursor)(unsafe.Pointer(pCx1)).FnField) { @@ -70760,7 +71106,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** is the only cursor opcode that works with a pseudo-table. ** ** P3 is the number of fields in the records that will be stored by - ** the pseudo-table. + ** the pseudo-table. If P2 is 0 or negative then the pseudo-cursor + ** will return NULL for every column. */ _83: ; @@ -70878,11 +71225,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: Found, NotFound, SeekGt, SeekGe, SeekLt */ _88: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _87: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _86: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _85: ; /* Only interested in == results */ pC5 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) @@ -71012,6 +71359,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 112)) = _sqlite3BtreeEof(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48))) } } + goto seek_not_found seek_not_found: ; if *(*int32)(unsafe.Pointer(bp + 112)) != 0 { @@ -71117,6 +71465,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(*(*int32)(unsafe.Pointer(bp + 160)) > 0 && int32((*TOp)(unsafe.Pointer(pOp)).Fp5) == 0) { goto _259 } + goto seekscan_search_fail seekscan_search_fail: ; /* Jump to SeekGE.P2, ending the loop */ @@ -71429,6 +71778,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* jump, in3, ncycle */ pIn3 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 iKey1 = uint64(*(*Ti64)(unsafe.Pointer(pIn3))) + goto notExistsWithKey notExistsWithKey: ; pC10 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) @@ -71442,7 +71792,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TVdbeCursor)(unsafe.Pointer(pC10)).FseekResult = *(*int32)(unsafe.Pointer(bp + 248)) if *(*int32)(unsafe.Pointer(bp + 248)) != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp2 == 0 { - rc = _sqlite3CorruptError(tls, int32(98111)) + rc = _sqlite3CorruptError(tls, int32(98565)) } else { goto jump_to_p2 } @@ -72042,10 +72392,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } goto _187 - /* Opcode: IfSmaller P1 P2 P3 * * + /* Opcode: IfSizeBetween P1 P2 P3 P4 * ** - ** Estimate the number of rows in the table P1. Jump to P2 if that - ** estimate is less than approximately 2**(0.1*P3). + ** Let N be the approximate number of rows in the table or index + ** with cursor P1 and let X be 10*log2(N) if N is positive or -1 + ** if N is zero. + ** + ** Jump to P2 if X is in between P3 and P4, inclusive. */ _111: ; @@ -72055,12 +72408,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { goto abort_due_to_error } - if *(*int32)(unsafe.Pointer(bp + 396)) == 0 { + if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { + sz = int64(-int32(1)) /* -Infinity encoding */ + } else { sz = _sqlite3BtreeRowCountEst(tls, pCrsr5) - if sz >= 0 && int32(_sqlite3LogEst(tls, uint64(sz))) < (*TOp)(unsafe.Pointer(pOp)).Fp3 { - *(*int32)(unsafe.Pointer(bp + 396)) = int32(1) - } + sz = int64(_sqlite3LogEst(tls, uint64(sz))) } + *(*int32)(unsafe.Pointer(bp + 396)) = libc.BoolInt32(sz >= int64((*TOp)(unsafe.Pointer(pOp)).Fp3) && sz <= int64((*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { goto jump_to_p2 } @@ -72197,6 +72551,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* jump, ncycle */ pC22 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) rc = _sqlite3BtreeNext(tls, *(*uintptr)(unsafe.Pointer(pC22 + 48)), (*TOp)(unsafe.Pointer(pOp)).Fp3) + goto next_tail next_tail: ; (*TVdbeCursor)(unsafe.Pointer(pC22)).FcacheStatus = uint32(CACHE_STALE) @@ -72329,7 +72684,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } else { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 && !(_sqlite3WritableSchema(tls, db) != 0) { - rc = _sqlite3ReportError(tls, libc.Int32FromInt32(SQLITE_CORRUPT)|libc.Int32FromInt32(3)< int64(0x7fffffff) { - rc = _sqlite3CorruptError(tls, int32(99398)) + rc = _sqlite3CorruptError(tls, int32(99862)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -72626,11 +72981,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } *(*Ti64)(unsafe.Pointer(pOut)) = int64(*(*TPgno)(unsafe.Pointer(bp + 624))) goto _187 - /* Opcode: SqlExec * * * P4 * + /* Opcode: SqlExec P1 P2 * P4 * ** ** Run the SQL statement or statements specified in the P4 string. - ** Disable Auth and Trace callbacks while those statements are running if - ** P1 is true. + ** + ** The P1 parameter is a bitmask of options: + ** + ** 0x0001 Disable Auth and Trace callbacks while the statements + ** in P4 are running. + ** + ** 0x0002 Set db->nAnalysisLimit to P2 while the statements in + ** P4 are running. + ** */ _132: ; @@ -72638,16 +73000,21 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*uintptr)(unsafe.Pointer(bp + 632)) = uintptr(0) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth mTrace = (*Tsqlite3)(unsafe.Pointer(db)).FmTrace - if (*TOp)(unsafe.Pointer(pOp)).Fp1 != 0 { + savedAnalysisLimit = (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0001) != 0 { (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(0) } + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0002) != 0 { + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = (*TOp)(unsafe.Pointer(pOp)).Fp2 + } rc = Xsqlite3_exec(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16)), uintptr(0), uintptr(0), bp+632) (*Tsqlite3)(unsafe.Pointer(db)).FnSqlExec-- (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = mTrace + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = savedAnalysisLimit if *(*uintptr)(unsafe.Pointer(bp + 632)) != 0 || rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3797, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3861, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 632))) if rc == int32(SQLITE_NOMEM) { goto no_mem @@ -72678,13 +73045,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_SchemaChange) libc.SetBitFieldPtr16Uint32(p+200, libc.Uint32FromInt32(0), 0, 0x3) } else { - zSchema = __ccgo_ts + 6068 + zSchema = __ccgo_ts + 6132 (*(*TInitData)(unsafe.Pointer(bp + 640))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 640))).FiDb = iDb3 (*(*TInitData)(unsafe.Pointer(bp + 640))).FpzErrMsg = p + 168 (*(*TInitData)(unsafe.Pointer(bp + 640))).FmInitFlags = uint32(0) (*(*TInitData)(unsafe.Pointer(bp + 640))).FmxPage = _sqlite3BtreeLastPage(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6082, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6146, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -72699,7 +73066,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* The OP_ParseSchema opcode with a non-NULL P4 argument should parse ** at least one SQL statement. Any less than that indicates that ** the sqlite_schema table is corrupt. */ - rc = _sqlite3CorruptError(tls, int32(99678)) + rc = _sqlite3CorruptError(tls, int32(100155)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -72765,11 +73132,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* Opcode: IntegrityCk P1 P2 P3 P4 P5 ** ** Do an analysis of the currently open database. Store in - ** register P1 the text of an error message describing any problems. - ** If no problems are found, store a NULL in register P1. + ** register (P1+1) the text of an error message describing any problems. + ** If no problems are found, store a NULL in register (P1+1). ** - ** The register P3 contains one less than the maximum number of allowed errors. - ** At most reg(P3) errors will be reported. + ** The register (P1) contains one less than the maximum number of allowed + ** errors. At most reg(P1) errors will be reported. ** In other words, the analysis stops as soon as reg(P1) errors are ** seen. Reg(P1) is updated with the number of errors remaining. ** @@ -72785,9 +73152,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* Register keeping track of errors remaining */ nRoot = (*TOp)(unsafe.Pointer(pOp)).Fp2 aRoot = *(*uintptr)(unsafe.Pointer(pOp + 16)) - pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 - pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 - rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) + pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 + pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1+int32(1))*56 + rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, aMem+uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) _sqlite3VdbeMemSetNull(tls, pIn1) if *(*int32)(unsafe.Pointer(bp + 680)) == 0 { } else { @@ -72893,7 +73260,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** P1 contains the address of the memory cell that contains the first memory ** cell in an array of values used as arguments to the sub-program. P2 ** contains the address to jump to if the sub-program throws an IGNORE - ** exception using the RAISE() function. Register P3 contains the address + ** exception using the RAISE() function. P2 might be zero, if there is + ** no possibility that an IGNORE exception will be raised. + ** Register P3 contains the address ** of a memory cell in this (the parent) VM that is used to allocate the ** memory required by the sub-vdbe at runtime. ** @@ -72934,7 +73303,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } if (*TVdbe)(unsafe.Pointer(p)).FnFrame >= *(*int32)(unsafe.Pointer(db + 136 + 10*4)) { rc = int32(SQLITE_ERROR) - _sqlite3VdbeError(tls, p, __ccgo_ts+6125, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6189, 0) goto abort_due_to_error } /* Register pRt is used to store the memory required to save the state @@ -73298,7 +73667,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* IMP: R-24505-23230 */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3797, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3861, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError } if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FskipFlag != 0 { @@ -73354,7 +73723,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3VdbeMemFinalize(tls, pMem3, *(*uintptr)(unsafe.Pointer(pOp + 16))) } if rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3797, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3861, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) goto abort_due_to_error } _sqlite3VdbeChangeEncoding(tls, pMem3, int32(encoding)) @@ -73433,11 +73802,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeRead > int32(1) { rc = int32(SQLITE_ERROR) if eNew == int32(PAGER_JOURNALMODE_WAL) { - v286 = __ccgo_ts + 6162 + v286 = __ccgo_ts + 6226 } else { - v286 = __ccgo_ts + 6167 + v286 = __ccgo_ts + 6231 } - _sqlite3VdbeError(tls, p, __ccgo_ts+6174, libc.VaList(bp+944, v286)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6238, libc.VaList(bp+944, v286)) goto abort_due_to_error } else { if eOld == int32(PAGER_JOURNALMODE_WAL) { @@ -73590,7 +73959,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { if rc&int32(0xFF) == int32(SQLITE_LOCKED) { z1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - _sqlite3VdbeError(tls, p, __ccgo_ts+6226, libc.VaList(bp+944, z1)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6290, libc.VaList(bp+944, z1)) } goto abort_due_to_error } @@ -73752,7 +74121,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TValueList)(unsafe.Pointer(pRhs)).FpOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 pOut = _out2Prerelease(tls, p, pOp) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6255, __ccgo_fp(_sqlite3VdbeValueListFree)) + _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6319, __ccgo_fp(_sqlite3VdbeValueListFree)) goto _187 /* Opcode: VFilter P1 P2 P3 P4 * ** Synopsis: iplan=r[P3] zplan='P4' @@ -73848,7 +74217,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_module)(unsafe.Pointer(pModule4)).FxColumn})))(tls, *(*uintptr)(unsafe.Pointer(pCur5 + 48)), bp+800, (*TOp)(unsafe.Pointer(pOp)).Fp2) _sqlite3VtabImportErrmsg(tls, p, pVtab4) if (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3797, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3861, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) rc = (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError } _sqlite3VdbeChangeEncoding(tls, pDest2, int32(encoding)) @@ -74102,7 +74471,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If the function returned an error, throw an exception */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3797, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3861, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError } _sqlite3VdbeDeleteAuxData(tls, db, p+296, (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FiOp, (*TOp)(unsafe.Pointer(pOp)).Fp1) @@ -74253,7 +74622,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { Xsqlite3_free(tls, z2) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeExec > int32(1) { - z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6265, libc.VaList(bp+944, zTrace)) + z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6329, libc.VaList(bp+944, zTrace)) (*(*func(*libc.TLS, Tu32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*Tsqlite3)(unsafe.Pointer(db)).Ftrace))})))(tls, uint32(SQLITE_TRACE_STMT), (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg, p, z3) _sqlite3DbFree(tls, db, z3) } else { @@ -74318,21 +74687,22 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If we reach this point, it means that execution is finished with ** an error of some kind. */ + goto abort_due_to_error abort_due_to_error: ; if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)<= nProgressLimit && (*Tsqlite3)(unsafe.Pointer(db)).FxProgress != uintptr(0) { @@ -74367,22 +74738,25 @@ vdbe_return: /* Jump to here if a string or blob larger than SQLITE_MAX_LENGTH ** is encountered. */ + goto too_big too_big: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5425, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5489, 0) rc = int32(SQLITE_TOOBIG) goto abort_due_to_error /* Jump to here if a malloc() fails. */ + goto no_mem no_mem: ; _sqlite3OomFault(tls, db) - _sqlite3VdbeError(tls, p, __ccgo_ts+1620, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+1634, 0) rc = int32(SQLITE_NOMEM) goto abort_due_to_error /* Jump to here if the sqlite3_interrupt() API sets the interrupt ** flag. */ + goto abort_due_to_interrupt abort_due_to_interrupt: ; rc = int32(SQLITE_INTERRUPT) @@ -74391,10 +74765,10 @@ abort_due_to_interrupt: } var _azType = [4]uintptr{ - 0: __ccgo_ts + 5582, - 1: __ccgo_ts + 5591, - 2: __ccgo_ts + 5598, - 3: __ccgo_ts + 5604, + 0: __ccgo_ts + 5646, + 1: __ccgo_ts + 5655, + 2: __ccgo_ts + 5662, + 3: __ccgo_ts + 5668, } var _and_logic = [9]uint8{ @@ -74545,16 +74919,16 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr type1 = v1 if type1 < uint32(12) { if type1 == uint32(0) { - v2 = __ccgo_ts + 1636 + v2 = __ccgo_ts + 1650 } else { if type1 == uint32(7) { - v3 = __ccgo_ts + 6303 + v3 = __ccgo_ts + 6367 } else { - v3 = __ccgo_ts + 6308 + v3 = __ccgo_ts + 6372 } v2 = v3 } - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6316, libc.VaList(bp+8, v2)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6380, libc.VaList(bp+8, v2)) rc = int32(SQLITE_ERROR) Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) @@ -74572,10 +74946,10 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr rc = Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) if rc == SQLITE_OK { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6345, libc.VaList(bp+8, iRow)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6409, libc.VaList(bp+8, iRow)) rc = int32(SQLITE_ERROR) } else { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) } } } @@ -74615,15 +74989,15 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, pTab = _sqlite3LocateTable(tls, bp+8, uint32(0), zTable, zDb) if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6365, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6429, libc.VaList(bp+440, zTable)) } if pTab != 0 && !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6395, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6459, libc.VaList(bp+440, zTable)) } if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6431, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6495, libc.VaList(bp+440, zTable)) } if !(pTab != 0) { if (*(*TParse)(unsafe.Pointer(bp + 8))).FzErrMsg != 0 { @@ -74653,7 +75027,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6452, libc.VaList(bp+440, zColumn)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6516, libc.VaList(bp+440, zColumn)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -74679,7 +75053,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, break } if (*(*TsColMap)(unsafe.Pointer(pFKey + 64 + uintptr(j)*16))).FiFrom == iCol { - zFault = __ccgo_ts + 6473 + zFault = __ccgo_ts + 6537 } goto _3 _3: @@ -74704,7 +75078,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } /* FIXME: Be smarter about indexes that use expressions */ if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == iCol || int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == -int32(2) { - zFault = __ccgo_ts + 6485 + zFault = __ccgo_ts + 6549 } goto _5 _5: @@ -74718,7 +75092,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if zFault != 0 { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6493, libc.VaList(bp+440, zFault)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6557, libc.VaList(bp+440, zFault)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -74778,6 +75152,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } _sqlite3ParseObjectReset(tls, bp+8) } + goto blob_open_out blob_open_out: ; if rc == SQLITE_OK && int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { @@ -74789,7 +75164,7 @@ blob_open_out: _sqlite3DbFree(tls, db, pBlob) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v7 = __ccgo_ts + 3797 + v7 = __ccgo_ts + 3861 } else { v7 = libc.UintptrFromInt32(0) } @@ -74879,7 +75254,7 @@ func _blobReadWrite(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset in _, _, _, _, _ = db, iKey, p, rc, v p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102190)) + return _sqlite3MisuseError(tls, int32(102671)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -74978,7 +75353,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r _, _, _, _ = db, p, rc, v1 p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102290)) + return _sqlite3MisuseError(tls, int32(102771)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -74992,7 +75367,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r rc = _blobSeekToRow(tls, p, iRow, bp) if rc != SQLITE_OK { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v1 = __ccgo_ts + 3797 + v1 = __ccgo_ts + 3861 } else { v1 = libc.UintptrFromInt32(0) } @@ -79108,25 +79483,25 @@ func _extendFJMatch(tls *libc.TLS, pParse uintptr, ppList uintptr, pMatch uintpt func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema uintptr) (r int32) { var zLegacy uintptr _ = zLegacy - if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6527, int32(7)) != 0 { + if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6591, int32(7)) != 0 { return 0 } zLegacy = (*TTable)(unsafe.Pointer(pTab)).FzName - if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6535+7) == 0 { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6554+7) == 0 { + if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6599+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6618+7) == 0 { return int32(1) } if pSchema == uintptr(0) { return 0 } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6068+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6132+7) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6573+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6637+7) == 0 { return int32(1) } } else { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6573+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6637+7) == 0 { return int32(1) } } @@ -79162,26 +79537,27 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema // ** If the name cannot be resolved unambiguously, leave an error message // ** in pParse and return WRC_Abort. Return WRC_Prune on success. // */ -func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol uintptr, pNC uintptr, pExpr uintptr) (r int32) { +func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRight uintptr, pNC uintptr, pExpr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var cnt, cntTab, eNewExprOp, hit, i, iCol, j, nSubquery, op, v5 int32 - var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10 uintptr + var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10 uintptr var hCol, hCol1 Tu8 var v7, v8 uint32 var _ /* bRowid at bp+8 */ int32 var _ /* pFJMatch at bp+0 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10, v5, v7, v8 /* Loop counters */ - cnt = 0 /* Number of matching column names */ - cntTab = 0 /* Number of potential "rowid" matches */ - nSubquery = 0 /* How many levels of subquery */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ - pMatch = uintptr(0) /* The matching pSrcList item */ - pTopNC = pNC /* First namecontext in the list */ - pSchema = uintptr(0) /* Schema of the expression */ - eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ - pTab = uintptr(0) /* A column of pTab */ - *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10, v5, v7, v8 /* Loop counters */ + cnt = 0 /* Number of matching column names */ + cntTab = 0 /* Number of potential "rowid" matches */ + nSubquery = 0 /* How many levels of subquery */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ + pMatch = uintptr(0) /* The matching pSrcList item */ + pTopNC = pNC /* First namecontext in the list */ + pSchema = uintptr(0) /* Schema of the expression */ + eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ + pTab = uintptr(0) /* A column of pTab */ + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + zCol = *(*uintptr)(unsafe.Pointer(pRight + 8)) /* the name context cannot be NULL. */ /* The Z in X.Y.Z cannot be NULL */ /* Initialize the node to no-match */ @@ -79212,7 +79588,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ; i++ } - if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6587, zDb) == 0 { + if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6651, zDb) == 0 { /* This branch is taken when the main database has been renamed ** using SQLITE_DBCONFIG_MAINDBNAME. */ pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema @@ -79305,7 +79681,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TTable)(unsafe.Pointer(pTab)).FpSchema != pSchema { goto _2 } - if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6592) != 0 { + if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6656) != 0 { goto _2 } } @@ -79417,16 +79793,16 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != uintptr(0) { op = int32((*TParse)(unsafe.Pointer(pParse)).FeTriggerOp) if (*TParse)(unsafe.Pointer(pParse)).FbReturning != 0 { - if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0) { + if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0 || _isValidSchemaTableName(tls, zTab, (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab, uintptr(0)) != 0) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = libc.BoolInt32(op != int32(TK_DELETE)) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } } else { - if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6594, zTab) == 0 { + if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6658, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(1) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } else { - if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6598, zTab) == 0 { + if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6662, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = 0 pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } @@ -79435,7 +79811,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UUpsert) != 0 && zTab != uintptr(0) { pUpsert = *(*uintptr)(unsafe.Pointer(pNC + 16)) - if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6602, zTab) == 0 { + if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6666, zTab) == 0 { pTab = (*(*TSrcItem)(unsafe.Pointer((*TUpsert)(unsafe.Pointer(pUpsert)).FpUpsertSrc + 8))).FpTab (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(EXCLUDED_TABLE_NUMBER) } @@ -79551,15 +79927,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if int32(uint32(*(*uint16)(unsafe.Pointer(pEList + 8 + uintptr(j)*32 + 16 + 4))&0x3>>0)) == ENAME_NAME && Xsqlite3_stricmp(tls, zAs, zCol) == 0 { pOrig = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(j)*32))).FpExpr if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 && (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6611, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6675, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Win)) != uint32(0) && ((*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 || pNC != pTopNC) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6642, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6706, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if _sqlite3ExprVectorSize(tls, pOrig) != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6679, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6743, 0) return int32(WRC_Abort) } _resolveAlias(tls, pParse, pEList, j, pExpr, nSubquery) @@ -79611,7 +79987,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** a huge amount of legacy SQL that uses it. So for now, we just ** issue a warning. */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6697, libc.VaList(bp+24, zCol)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6761, libc.VaList(bp+24, zCol)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_STRING) libc.Xmemset(tls, pExpr+64, 0, uint64(8)) return int32(WRC_Prune) @@ -79640,7 +80016,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } _extendFJMatch(tls, pParse, bp, pMatch, (*TExpr)(unsafe.Pointer(pExpr)).FiColumn) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_FUNCTION) - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6732 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6796 *(*uintptr)(unsafe.Pointer(pExpr + 32)) = *(*uintptr)(unsafe.Pointer(bp)) cnt = int32(1) goto lookupname_end @@ -79650,18 +80026,22 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } } if cnt == 0 { - v10 = __ccgo_ts + 6741 + v10 = __ccgo_ts + 6805 } else { - v10 = __ccgo_ts + 6756 + v10 = __ccgo_ts + 6820 } zErr = v10 if zDb != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6778, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6842, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) } else { if zTab != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6791, libc.VaList(bp+24, zErr, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6855, libc.VaList(bp+24, zErr, zTab, zCol)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6801, libc.VaList(bp+24, zErr, zCol)) + if cnt == 0 && (*TExpr)(unsafe.Pointer(pRight)).Fflags&uint32(libc.Int32FromInt32(EP_DblQuoted)) != uint32(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6865, libc.VaList(bp+24, zErr, zCol)) + } else { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6926, libc.VaList(bp+24, zErr, zCol)) + } } } _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -79691,10 +80071,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** If a generated column is referenced, set bits for every column ** of the table. */ - if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 && cnt == int32(1) && pMatch != uintptr(0) { - *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + if pMatch != 0 { + if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { + *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + } else { + libc.SetBitFieldPtr16Uint32(pMatch+60+4, libc.Uint32FromInt32(1), 14, 0x4000) + } } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(eNewExprOp) + goto lookupname_end lookupname_end: ; if cnt == int32(1) { @@ -79784,19 +80169,19 @@ func _notValidImpl(tls *libc.TLS, pParse uintptr, pNC uintptr, zMsg uintptr, pEx defer tls.Free(32) var zIn uintptr _ = zIn - zIn = __ccgo_ts + 6808 + zIn = __ccgo_ts + 6933 if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IdxExpr) != 0 { - zIn = __ccgo_ts + 6836 + zIn = __ccgo_ts + 6961 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IsCheck) != 0 { - zIn = __ccgo_ts + 6854 + zIn = __ccgo_ts + 6979 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_GenCol) != 0 { - zIn = __ccgo_ts + 6872 + zIn = __ccgo_ts + 6997 } } } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6890, libc.VaList(bp+8, zMsg, zIn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7015, libc.VaList(bp+8, zMsg, zIn)) if pExpr != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } @@ -79844,8 +80229,8 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { var anRef [8]int32 var auth, i, is_agg, n, nLeft, nRef, nRight, no_such_func, rc, savedAllowFlags, wrong_num_args, v12, v4, v6, v7 int32 var enc Tu8 - var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zColumn, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zColumn, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 + var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 pNC = *(*uintptr)(unsafe.Pointer(pWalker + 40)) pParse = (*TNameContext)(unsafe.Pointer(pNC)).FpParse switch int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) { @@ -79964,11 +80349,11 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_ID) { zDb = uintptr(0) zTable = uintptr(0) - zColumn = *(*uintptr)(unsafe.Pointer(pExpr + 8)) + pRight = pExpr } else { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+6910, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7035, uintptr(0), pExpr) } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_ID) { @@ -79979,13 +80364,12 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { pRight = (*TExpr)(unsafe.Pointer(pRight)).FpRight } zTable = *(*uintptr)(unsafe.Pointer(pLeft + 8)) - zColumn = *(*uintptr)(unsafe.Pointer(pRight + 8)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameTokenRemap(tls, pParse, pExpr, pRight) _sqlite3RenameTokenRemap(tls, pParse, pExpr+64, pLeft) } } - return _lookupName(tls, pParse, zDb, zTable, zColumn, pNC, pExpr) + return _lookupName(tls, pParse, zDb, zTable, pRight, pNC, pExpr) /* Resolve function names */ fallthrough @@ -80024,7 +80408,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if n == int32(2) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = _exprProbability(tls, (*(*TExprList_item)(unsafe.Pointer(pList + 8 + 1*32))).FpExpr) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6927, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7052, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } } else { @@ -80048,7 +80432,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { auth = _sqlite3AuthCheck(tls, pParse, int32(SQLITE_FUNCTION), uintptr(0), (*TFuncDef)(unsafe.Pointer(pDef)).FzName, uintptr(0)) if auth != SQLITE_OK { if auth == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6991, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7116, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) @@ -80069,7 +80453,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { ** in a CHECK constraint. SQLServer, MySQL, and PostgreSQL all ** all this. */ if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7027, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7152, uintptr(0), pExpr) } } else { /* Must fit in 8 bits */ @@ -80093,29 +80477,29 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { } if 0 == libc.BoolInt32(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME)) { if pDef != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FxValue == uintptr(0) && pWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7055, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7180, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 || is_agg != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 && !(pWin != 0) || is_agg != 0 && pWin != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 { if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 || pWin != 0 { - zType = __ccgo_ts + 7098 + zType = __ccgo_ts + 7223 } else { - zType = __ccgo_ts + 7105 + zType = __ccgo_ts + 7230 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7115, libc.VaList(bp+8, zType, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7240, libc.VaList(bp+8, zType, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ is_agg = 0 } else { if no_such_func != 0 && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7143, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7268, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if wrong_num_args != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7165, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7290, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7209, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7334, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { @@ -80139,7 +80523,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { *(*int32)(unsafe.Pointer(pNC + 40)) &= ^(libc.Int32FromInt32(NC_AllowWin) | v7) } } else { - if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { is_agg = int32(1) } } @@ -80200,18 +80584,19 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) { nRef = (*TNameContext)(unsafe.Pointer(pNC)).FnRef if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_SelfRef) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7257, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7382, pExpr, pExpr) } else { _sqlite3WalkSelect(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 32))) } if nRef != (*TNameContext)(unsafe.Pointer(pNC)).FnRef { *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 4)) |= uint32(SF_Correlated) } *(*int32)(unsafe.Pointer(pNC + 40)) |= int32(NC_Subquery) } case int32(TK_VARIABLE): if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IsCheck)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7268, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7393, pExpr, pExpr) } case int32(TK_IS): fallthrough @@ -80257,7 +80642,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { nRight = _sqlite3ExprVectorSize(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight) } if nLeft != nRight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6679, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6743, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } break @@ -80382,7 +80767,7 @@ func _resolveOrderByTermToExprList(tls *libc.TLS, pParse uintptr, pSelect uintpt func _resolveOutOfRangeError(tls *libc.TLS, pParse uintptr, zType uintptr, i int32, mx int32, pError uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7279, libc.VaList(bp+8, i, zType, mx)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7404, libc.VaList(bp+8, i, zType, mx)) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pError) } @@ -80417,7 +80802,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7335, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7460, 0) return int32(1) } i = 0 @@ -80455,7 +80840,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } if _sqlite3ExprIsInteger(tls, pE, bp) != 0 { if *(*int32)(unsafe.Pointer(bp)) <= 0 || *(*int32)(unsafe.Pointer(bp)) > (*TExprList)(unsafe.Pointer(pEList)).FnExpr { - _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7369, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) + _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7494, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) return int32(1) } } else { @@ -80525,7 +80910,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r break } if int32(uint32(*(*uint16)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32 + 16 + 4))&0x4>>2)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7375, libc.VaList(bp+16, i+int32(1))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7500, libc.VaList(bp+16, i+int32(1))) return int32(1) } goto _3 @@ -80559,7 +80944,7 @@ func _sqlite3ResolveOrderGroupBy(tls *libc.TLS, pParse uintptr, pSelect uintptr, return 0 } if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7436, libc.VaList(bp+8, zType)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7561, libc.VaList(bp+8, zType)) return int32(1) } pEList = (*TSelect)(unsafe.Pointer(pSelect)).FpEList @@ -80805,6 +81190,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } pItem = (*TSelect)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*104 + /* Test of tag-20240424-1*/ if (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FselFlags&uint32(SF_Resolved) == uint32(0) { if pOuterNC != 0 { v3 = (*TNameContext)(unsafe.Pointer(pOuterNC)).FnRef @@ -80871,7 +81257,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { (*(*TNameContext)(unsafe.Pointer(bp))).FncFlags |= int32(NC_UEList) if (*TSelect)(unsafe.Pointer(p)).FpHaving != 0 { if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Aggregate) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7467, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7592, 0) return int32(WRC_Abort) } if _sqlite3ResolveExprNames(tls, bp, (*TSelect)(unsafe.Pointer(p)).FpHaving) != 0 { @@ -80938,7 +81324,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** is not detected until much later, and so we need to go ahead and ** resolve those symbols on the incorrect ORDER BY for consistency. */ - if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7369) != 0 { + if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7494) != 0 { return int32(WRC_Abort) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -80949,7 +81335,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** the GROUP BY clause does not contain aggregate functions. */ if pGroupBy != 0 { - if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7506) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { + if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7631) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(WRC_Abort) } i = 0 @@ -80959,7 +81345,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } if (*TExpr)(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(pItem2)).FpExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7512, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7637, 0) return int32(WRC_Abort) } goto _6 @@ -81940,7 +82326,7 @@ func _codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32 return } if nLeft != _sqlite3ExprVectorSize(tls, pRight) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6679, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6743, 0) return } if int32(op) == int32(TK_LE) { @@ -82019,7 +82405,7 @@ func _sqlite3ExprCheckHeight(tls *libc.TLS, pParse uintptr, nHeight int32) (r in rc = SQLITE_OK mxHeight = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 3*4)) if nHeight > mxHeight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7571, libc.VaList(bp+8, mxHeight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7696, libc.VaList(bp+8, mxHeight)) rc = int32(SQLITE_ERROR) } return rc @@ -82185,11 +82571,12 @@ func _sqlite3ExprSetErrorOffset(tls *libc.TLS, pExpr uintptr, iOfst int32) { // ** appear to be quoted. If the quotes were of the form "..." (double-quotes) // ** then the EP_DblQuoted flag is set on the expression node. // ** -// ** Special case: If op==TK_INTEGER and pToken points to a string that -// ** can be translated into a 32-bit integer, then the token is not -// ** stored in u.zToken. Instead, the integer values is written -// ** into u.iValue and the EP_IntValue flag is set. No extra storage +// ** Special case (tag-20240227-a): If op==TK_INTEGER and pToken points to +// ** a string that can be translated into a 32-bit integer, then the token is +// ** not stored in u.zToken. Instead, the integer values is written +// ** into u.iValue and the EP_IntValue flag is set. No extra storage // ** is allocated to hold the integer text and the dequote flag is ignored. +// ** See also tag-20240227-b. // */ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequote int32) (r uintptr) { bp := tls.Alloc(16) @@ -82202,7 +82589,7 @@ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequ *(*int32)(unsafe.Pointer(bp)) = 0 if pToken != 0 { if op != int32(TK_INTEGER) || (*TToken)(unsafe.Pointer(pToken)).Fz == uintptr(0) || _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pToken)).Fz, bp) == 0 { - nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) + nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) /* tag-20240227-a */ } } pNew = _sqlite3DbMallocRawNN(tls, db, uint64(72)+uint64(nExtra)) @@ -82363,11 +82750,11 @@ func _sqlite3ExprListToValues(tls *libc.TLS, pParse uintptr, nElem int32, pEList } if nExprElem != nElem { if nExprElem > int32(1) { - v2 = __ccgo_ts + 7619 + v2 = __ccgo_ts + 7744 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7621, libc.VaList(bp+8, nExprElem, v2, nElem)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7746, libc.VaList(bp+8, nExprElem, v2, nElem)) break } pSel = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(pExpr + 32)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) @@ -82416,7 +82803,7 @@ func _sqlite3ExprAnd(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintpt if f&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_InnerON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { _sqlite3ExprDeferredDelete(tls, pParse, pLeft) _sqlite3ExprDeferredDelete(tls, pParse, pRight) - return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1724) + return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1784) } else { return _sqlite3PExpr(tls, pParse, int32(TK_AND), pLeft, pRight) } @@ -82444,7 +82831,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u } *(*int32)(unsafe.Pointer(pNew + 52)) = int32(int64((*TToken)(unsafe.Pointer(pToken)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) if pList != 0 && (*TExprList)(unsafe.Pointer(pList)).FnExpr > *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 6*4)) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7665, libc.VaList(bp+8, pToken)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7790, libc.VaList(bp+8, pToken)) } *(*uintptr)(unsafe.Pointer(pNew + 32)) = pList *(*Tu32)(unsafe.Pointer(pNew + 4)) |= uint32(libc.Int32FromInt32(EP_HasFunc)) @@ -82464,7 +82851,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u func _sqlite3ExprOrderByAggregateError(tls *libc.TLS, pParse uintptr, p uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7699, libc.VaList(bp+8, p)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7824, libc.VaList(bp+8, p)) } // C documentation @@ -82535,7 +82922,7 @@ func _sqlite3ExprFunctionUsable(tls *libc.TLS, pParse uintptr, pExpr uintptr, pD ** SQLITE_DBCONFIG_TRUSTED_SCHEMA is off (meaning ** that the schema is possibly tainted). */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7749, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7874, libc.VaList(bp+8, pExpr)) } } } @@ -82587,7 +82974,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n bOk = libc.BoolInt32(0 == _sqlite3Atoi64(tls, z+1, bp, int32(n-uint32(1)), uint8(SQLITE_UTF8))) } if bOk == 0 || *(*Ti64)(unsafe.Pointer(bp)) < int64(1) || *(*Ti64)(unsafe.Pointer(bp)) > int64(*(*int32)(unsafe.Pointer(db + 136 + 9*4))) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7769, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7894, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) return } @@ -82620,7 +83007,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n } (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = x if int32(x) > *(*int32)(unsafe.Pointer(db + 136 + 9*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7812, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7937, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } } @@ -82631,11 +83018,13 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n // ** Recursively delete an expression tree. // */ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { + var pLeft uintptr + _ = pLeft + goto exprDeleteRestart +exprDeleteRestart: + ; if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)|libc.Int32FromInt32(EP_Leaf)) != libc.Uint32FromInt32(0)) { /* The Expr.x union is never used at the same time as Expr.pRight */ - if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { - _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpLeft) - } if (*TExpr)(unsafe.Pointer(p)).FpRight != 0 { _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpRight) } else { @@ -82648,6 +83037,17 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { } } } + if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { + pLeft = (*TExpr)(unsafe.Pointer(p)).FpLeft + if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) && !((*TExpr)(unsafe.Pointer(pLeft)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { + /* Avoid unnecessary recursion on unary operators */ + _sqlite3DbNNFreeNN(tls, db, p) + p = pLeft + goto exprDeleteRestart + } else { + _sqlite3ExprDeleteNN(tls, db, pLeft) + } + } } if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { _sqlite3DbNNFreeNN(tls, db, p) @@ -82694,11 +83094,11 @@ func _sqlite3ClearOnOrUsing(tls *libc.TLS, db uintptr, p uintptr) { // ** // ** The pExpr might be deleted immediately on an OOM error. // ** -// ** The deferred delete is (currently) implemented by adding the -// ** pExpr to the pParse->pConstExpr list with a register number of 0. +// ** Return 0 if the delete was successfully deferred. Return non-zero +// ** if the delete happened immediately because of an OOM. // */ -func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) { - _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr) +func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + return libc.BoolInt32(uintptr(0) == _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr)) } // C documentation @@ -83187,16 +83587,20 @@ func _sqlite3SrcListDup(tls *libc.TLS, db uintptr, p uintptr, flags int32) (r ui (*TSrcItem)(unsafe.Pointer(pNewItem)).FiCursor = (*TSrcItem)(unsafe.Pointer(pOldItem)).FiCursor (*TSrcItem)(unsafe.Pointer(pNewItem)).FaddrFillSub = (*TSrcItem)(unsafe.Pointer(pOldItem)).FaddrFillSub (*TSrcItem)(unsafe.Pointer(pNewItem)).FregReturn = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregReturn + (*TSrcItem)(unsafe.Pointer(pNewItem)).FregResult = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregResult if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x2>>1)) != 0 { *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3DbStrDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88))) + } else { + if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { + *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) + } else { + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pNewItem)).Fu1)) = *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pOldItem)).Fu1)) + } } (*TSrcItem)(unsafe.Pointer(pNewItem)).Fu2 = (*TSrcItem)(unsafe.Pointer(pOldItem)).Fu2 if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x100>>8)) != 0 { (*TCteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNewItem + 96)))).FnUse++ } - if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { - *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) - } v4 = (*TSrcItem)(unsafe.Pointer(pOldItem)).FpTab (*TSrcItem)(unsafe.Pointer(pNewItem)).FpTab = v4 pTab = v4 @@ -83458,7 +83862,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, n = v2 } if v3 && (*TIdList)(unsafe.Pointer(pColumns)).FnId != v2 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7835, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7960, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) goto vector_append_error } i = 0 @@ -83490,6 +83894,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, ** the RHS and LHS sizes match during code generation. */ (*TExpr)(unsafe.Pointer(pFirst)).FiTable = (*TIdList)(unsafe.Pointer(pColumns)).FnId } + goto vector_append_error vector_append_error: ; _sqlite3ExprUnmapAndDelete(tls, pParse, pExpr) @@ -83586,7 +83991,7 @@ func _sqlite3ExprListCheckLength(tls *libc.TLS, pParse uintptr, pEList uintptr, _ = mx mx = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 2*4)) if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr > mx { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7865, libc.VaList(bp+8, zObject)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7990, libc.VaList(bp+8, zObject)) } } @@ -83684,10 +84089,10 @@ func _sqlite3SelectWalkFail(tls *libc.TLS, pWalker uintptr, NotUsed uintptr) (r // ** anything else 0 // */ func _sqlite3IsTrueOrFalse(tls *libc.TLS, zIn uintptr) (r Tu32) { - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7888) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8013) == 0 { return uint32(EP_IsTrue) } - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7893) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8018) == 0 { return uint32(EP_IsFalse) } return uint32(0) @@ -83769,6 +84174,51 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { return pExpr } +// C documentation +// +// /* +// ** pExpr is a TK_FUNCTION node. Try to determine whether or not the +// ** function is a constant function. A function is constant if all of +// ** the following are true: +// ** +// ** (1) It is a scalar function (not an aggregate or window function) +// ** (2) It has either the SQLITE_FUNC_CONSTANT or SQLITE_FUNC_SLOCHNG +// ** property. +// ** (3) All of its arguments are constants +// ** +// ** This routine sets pWalker->eCode to 0 if pExpr is not a constant. +// ** It makes no changes to pWalker->eCode if pExpr is constant. In +// ** every case, it returns WRC_Abort. +// ** +// ** Called as a service subroutine from exprNodeIsConstant(). +// */ +func _exprNodeIsConstantFunction(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef, pList, v1 uintptr + var n int32 + var v2 bool + _, _, _, _, _, _ = db, n, pDef, pList, v1, v2 /* The database */ + if v2 = (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)) != uint32(0); !v2 { + v1 = *(*uintptr)(unsafe.Pointer(pExpr + 32)) + pList = v1 + } + if v2 || v1 == uintptr(0) { + n = 0 + } else { + n = (*TExprList)(unsafe.Pointer(pList)).FnExpr + _sqlite3WalkExprList(tls, pWalker, pList) + if int32((*TWalker)(unsafe.Pointer(pWalker)).FeCode) == 0 { + return int32(WRC_Abort) + } + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)|libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG)) == uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) +} + // C documentation // // /* @@ -83816,8 +84266,12 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 } return WRC_Continue } else { - (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) - return int32(WRC_Abort) + if (*TWalker)(unsafe.Pointer(pWalker)).FpParse != 0 { + return _exprNodeIsConstantFunction(tls, pWalker, pExpr) + } else { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } } fallthrough case int32(TK_ID): @@ -83844,6 +84298,8 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 case int32(TK_REGISTER): fallthrough case int32(TK_DOT): + fallthrough + case int32(TK_RAISE): (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) return int32(WRC_Abort) case int32(TK_VARIABLE): @@ -83869,14 +84325,14 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 return r } -func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32) { +func _exprIsConst(tls *libc.TLS, pParse uintptr, p uintptr, initFlag int32) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* w at bp+0 */ TWalker (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(initFlag) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) - *(*int32)(unsafe.Pointer(bp + 40)) = iCur _sqlite3WalkExpr(tls, bp, p) return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } @@ -83890,9 +84346,15 @@ func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32 // ** For the purposes of this function, a double-quoted string (ex: "abc") // ** is considered a variable but a single-quoted string (ex: 'abc') is // ** a constant. +// ** +// ** The pParse parameter may be NULL. But if it is NULL, there is no way +// ** to determine if function calls are constant or not, and hence all +// ** function calls will be considered to be non-constant. If pParse is +// ** not NULL, then a function call might be constant, depending on the +// ** function and on its parameters. // */ -func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(1), 0) +func _sqlite3ExprIsConstant(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(1)) } // C documentation @@ -83910,8 +84372,24 @@ func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { // ** can be added to the pParse->pConstExpr list and evaluated once when // ** the prepared statement starts up. See sqlite3ExprCodeRunJustOnce(). // */ -func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(2), 0) +func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(2)) +} + +// C documentation +// +// /* +// ** This routine examines sub-SELECT statements as an expression is being +// ** walked as part of sqlite3ExprIsTableConstant(). Sub-SELECTs are considered +// ** constant as long as they are uncorrelated - meaning that they do not +// ** contain any terms from outer contexts. +// */ +func _exprSelectWalkTableConstant(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + if (*TSelect)(unsafe.Pointer(pSelect)).FselFlags&uint32(SF_Correlated) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) } // C documentation @@ -83921,9 +84399,25 @@ func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { // ** for any single row of the table with cursor iCur. In other words, the // ** expression must not refer to any non-deterministic function nor any // ** table other than iCur. +// ** +// ** Consider uncorrelated subqueries to be constants if the bAllowSubq +// ** parameter is true. // */ -func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) { - return _exprIsConst(tls, p, int32(3), iCur) +func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32, bAllowSubq int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(3) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = uintptr(0) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) + if bAllowSubq != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_exprSelectWalkTableConstant) + } else { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) + } + *(*int32)(unsafe.Pointer(bp + 40)) = iCur + _sqlite3WalkExpr(tls, bp, p) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } // C documentation @@ -83943,7 +84437,10 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** // ** (1) pExpr cannot refer to any table other than pSrc->iCursor. // ** -// ** (2) pExpr cannot use subqueries or non-deterministic functions. +// ** (2a) pExpr cannot use subqueries unless the bAllowSubq parameter is +// ** true and the subquery is non-correlated +// ** +// ** (2b) pExpr cannot use non-deterministic functions. // ** // ** (3) pSrc cannot be part of the left operand for a RIGHT JOIN. // ** (Is there some way to relax this constraint?) @@ -83969,7 +84466,7 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** which leads to incorrect answers. See also restriction (9) // ** on push-down. // */ -func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32) (r int32) { +func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32, bAllowSubq int32) (r int32) { var jj int32 var pSrc uintptr _, _ = jj, pSrc @@ -84007,7 +84504,8 @@ func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList jj++ } } - return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor) /* rules (1), (2) */ + /* Rules (1), (2a), and (2b) handled by the following: */ + return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor, bAllowSubq) } // C documentation @@ -84105,7 +84603,7 @@ func _sqlite3ExprIsConstantOrGroupBy(tls *libc.TLS, pParse uintptr, p uintptr, p // ** a constant. // */ func _sqlite3ExprIsConstantOrFunction(tls *libc.TLS, p uintptr, isInit Tu8) (r int32) { - return _exprIsConst(tls, p, int32(4)+int32(isInit), 0) + return _exprIsConst(tls, uintptr(0), p, int32(4)+int32(isInit)) } // C documentation @@ -84244,13 +84742,13 @@ func _sqlite3ExprNeedsNoAffinityChange(tls *libc.TLS, p uintptr, aff int8) (r in // ** Return TRUE if the given string is a row-id column name. // */ func _sqlite3IsRowid(tls *libc.TLS, z uintptr) (r int32) { - if _sqlite3StrICmp(tls, z, __ccgo_ts+7899) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8024) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7907) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8032) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7913) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8038) == 0 { return int32(1) } return 0 @@ -84268,9 +84766,9 @@ func _sqlite3RowidAlias(tls *libc.TLS, pTab uintptr) (r uintptr) { var iCol, ii int32 _, _, _ = azOpt, iCol, ii azOpt = [3]uintptr{ - 0: __ccgo_ts + 7899, - 1: __ccgo_ts + 7907, - 2: __ccgo_ts + 7913, + 0: __ccgo_ts + 8024, + 1: __ccgo_ts + 8032, + 2: __ccgo_ts + 8038, } ii = 0 for { @@ -84390,13 +84888,13 @@ func _sqlite3SetHasNullFlag(tls *libc.TLS, v uintptr, iCur int32, regHasNull int // ** The argument is an IN operator with a list (not a subquery) on the // ** right-hand side. Return TRUE if that list is constant. // */ -func _sqlite3InRhsIsConstant(tls *libc.TLS, pIn uintptr) (r int32) { +func _sqlite3InRhsIsConstant(tls *libc.TLS, pParse uintptr, pIn uintptr) (r int32) { var pLHS uintptr var res int32 _, _ = pLHS, res pLHS = (*TExpr)(unsafe.Pointer(pIn)).FpLeft (*TExpr)(unsafe.Pointer(pIn)).FpLeft = uintptr(0) - res = _sqlite3ExprIsConstant(tls, pIn) + res = _sqlite3ExprIsConstant(tls, pParse, pIn) (*TExpr)(unsafe.Pointer(pIn)).FpLeft = pLHS return res } @@ -84552,7 +85050,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 iAddr = _sqlite3VdbeAddOp0(tls, v, int32(OP_Once)) _sqlite3OpenTable(tls, pParse, iTab, iDb, pTab, int32(OP_OpenRead)) eType = int32(IN_INDEX_ROWID) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+7917, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+8042, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) _sqlite3VdbeJumpHere(tls, v, iAddr) } else { /* Iterator variable */ affinity_ok = int32(1) @@ -84652,7 +85150,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 if colUsed == libc.Uint64FromInt32(1)<0 so that the new limit is either 1 or 0 */ db = (*TParse)(unsafe.Pointer(pParse)).Fdb - pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1724) + pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1784) if pLimit != 0 { (*TExpr)(unsafe.Pointer(pLimit)).FaffExpr = int8(SQLITE_AFF_NUMERIC) pLimit = _sqlite3PExpr(tls, pParse, int32(TK_NE), _sqlite3ExprDup(tls, db, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft, 0), pLimit) @@ -85143,7 +85641,7 @@ func _sqlite3CodeSubselect(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int3 (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft = pLimit } else { /* If there is no pre-existing limit add a limit of 1 */ - pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8132) + pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8257) (*TSelect)(unsafe.Pointer(pSel)).FpLimit = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), pLimit, uintptr(0)) } (*TSelect)(unsafe.Pointer(pSel)).FiLimit = 0 @@ -85466,11 +85964,13 @@ func _sqlite3ExprCodeIN(tls *libc.TLS, pParse uintptr, pExpr uintptr, destIfFals } /* Jumps here in order to return true. */ _sqlite3VdbeJumpHere(tls, v, addrTruthOp) + goto sqlite3ExprCodeIN_finished sqlite3ExprCodeIN_finished: ; if rLhs != rLhsOrig { _sqlite3ReleaseTempReg(tls, pParse, rLhs) } + goto sqlite3ExprCodeIN_oom_error sqlite3ExprCodeIN_oom_error: ; _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiMap) @@ -85528,13 +86028,13 @@ func _codeInteger(tls *libc.TLS, pParse uintptr, pExpr uintptr, negFlag int32, i z = *(*uintptr)(unsafe.Pointer(pExpr + 8)) c = _sqlite3DecOrHexToI64(tls, z, bp) if c == int32(3) && !(negFlag != 0) || c == int32(2) || negFlag != 0 && *(*Ti64)(unsafe.Pointer(bp)) == int64(-libc.Int32FromInt32(1))-(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<= (*TAggInfo)(unsafe.Pointer(pInfo)).FnFunc { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8225, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8350, libc.VaList(bp+160, pExpr)) } else { return (*TAggInfo)(unsafe.Pointer(pInfo)).FiFirstReg + (*TAggInfo)(unsafe.Pointer(pInfo)).FnColumn + int32((*TExpr)(unsafe.Pointer(pExpr)).FiAgg) } @@ -86258,7 +86754,7 @@ expr_code_doover: if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { return (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FregResult } - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { /* SQL functions can be expensive. So try to avoid running them ** multiple times if we know they always give the same result */ return _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) @@ -86273,7 +86769,7 @@ expr_code_doover: zId = *(*uintptr)(unsafe.Pointer(pExpr + 8)) pDef = _sqlite3FindFunction(tls, db, zId, nFarg, enc, uint8(0)) if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8252, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8377, libc.VaList(bp+160, pExpr)) break } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_INLINE) != uint32(0) && pFarg != uintptr(0) { @@ -86288,7 +86784,7 @@ expr_code_doover: if !(i < nFarg) { break } - if i < int32(32) && _sqlite3ExprIsConstant(tls, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { + if i < int32(32) && _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { constMask |= libc.Uint32FromInt32(1) << i } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_NEEDCOLL) != uint32(0) && !(pColl != 0) { @@ -86378,7 +86874,7 @@ expr_code_doover: } n1 = _sqlite3ExprVectorSize(tls, pLeft2) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != n1 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7835, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7960, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) } return (*TExpr)(unsafe.Pointer(pLeft2)).FiTable + int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) case int32(TK_IN): @@ -86410,8 +86906,9 @@ expr_code_doover: if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Collate)) != libc.Uint32FromInt32(0)) { /* A TK_COLLATE Expr node without the EP_Collate tag is a so-called ** "SOFT-COLLATE" that is added to constraints that are pushed down - ** from outer queries into sub-queries by the push-down optimization. - ** Clear subtypes as subtypes may not cross a subquery boundary. + ** from outer queries into sub-queries by the WHERE-clause push-down + ** optimization. Clear subtypes as subtypes may not cross a subquery + ** boundary. */ _sqlite3ExprCode(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, target) _sqlite3VdbeAddOp1(tls, v, int32(OP_ClrSubtype), target) @@ -86440,7 +86937,7 @@ expr_code_doover: _sqlite3VdbeAddOp1(tls, v, int32(OP_RealAffinity), target) } case int32(TK_VECTOR): - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6679, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6743, 0) break /* TK_IF_NULL_ROW Expr nodes are inserted ahead of expressions ** that derive from the right-hand table of a LEFT JOIN. The @@ -86555,7 +87052,7 @@ expr_code_doover: _sqlite3VdbeResolveLabel(tls, v, endLabel) case int32(TK_RAISE): if !((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != 0) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8276, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8401, 0) return 0 } if int32((*TExpr)(unsafe.Pointer(pExpr)).FaffExpr) == int32(OE_Abort) { @@ -86675,7 +87172,7 @@ func _sqlite3ExprCodeTemp(tls *libc.TLS, pParse uintptr, pExpr uintptr, pReg uin var r1, r2 int32 _, _ = r1, r2 pExpr = _sqlite3ExprSkipCollateAndLikely(tls, pExpr) - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { *(*int32)(unsafe.Pointer(pReg)) = 0 r2 = _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) } else { @@ -86745,7 +87242,7 @@ func _sqlite3ExprCodeCopy(tls *libc.TLS, pParse uintptr, pExpr uintptr, target i // ** might choose to code the expression at initialization time. // */ func _sqlite3ExprCodeFactorable(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) { - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target) } else { _sqlite3ExprCodeCopy(tls, pParse, pExpr, target) @@ -86814,7 +87311,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ _sqlite3VdbeAddOp2(tls, v, int32(copyOp), j+srcReg-int32(1), target+i) } } else { - if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target+i) } else { inReg = _sqlite3ExprCodeTarget(tls, pParse, pExpr, target+i) @@ -87078,6 +87575,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsTrue)) == uint32(EP_IsTrue) { @@ -87283,6 +87781,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) { @@ -88109,17 +88608,15 @@ func _agginfoPersistExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnColumn && (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } else { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnFunc && (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } @@ -88238,6 +88735,7 @@ func _findOrCreateAggInfoColumn(tls *libc.TLS, pParse uintptr, pAggInfo uintptr, *(*Tu16)(unsafe.Pointer(v4))++ (*TAggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = int16(v3) } + goto fix_up_expr fix_up_expr: ; (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo = pAggInfo @@ -88668,8 +89166,8 @@ func _sqlite3FirstAvailableRegister(tls *libc.TLS, pParse uintptr, iMin int32) ( func _isAlterableTable(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) - if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6527, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8326, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6591, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8451, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -88688,9 +89186,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, bp := tls.Alloc(48) defer tls.Free(48) (*TParse)(unsafe.Pointer(pParse)).FcolNamesSet = uint8(1) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8354, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8479, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8529, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8654, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) } } @@ -88706,9 +89204,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, func _renameFixQuotes(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8703, libc.VaList(bp+8, zDb, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8828, libc.VaList(bp+8, zDb, zDb)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8850, 0) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8975, 0) } } @@ -88764,7 +89262,7 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName ** in database iDb. If so, this is an error. */ if _sqlite3FindTable(tls, db, zName, zDb) != 0 || _sqlite3FindIndex(tls, db, zName, zDb) != 0 || _sqlite3IsShadowTableOf(tls, db, pTab, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9001, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9126, libc.VaList(bp+8, zName)) goto exit_rename_table } /* Make sure it is not a system table being altered, or a reserved name @@ -88773,11 +89271,11 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { goto exit_rename_table } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9060, zName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9185, zName) { goto exit_rename_table } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9066, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9191, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_rename_table } /* Invoke the authorization callback. */ @@ -88807,21 +89305,21 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName nTabName = _sqlite3Utf8CharLen(tls, zTabName, -int32(1)) /* Rewrite all CREATE TABLE, INDEX, TRIGGER or VIEW statements in ** the schema to use the new table name. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9093, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9218, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) /* Update the tbl_name and name columns of the sqlite_schema table ** as required. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9277, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9402, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) /* If the sqlite_sequence table exists in this database, then update ** it with the new table name. */ - if _sqlite3FindTable(tls, db, __ccgo_ts+9582, zDb) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9598, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if _sqlite3FindTable(tls, db, __ccgo_ts+9707, zDb) != 0 { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9723, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* If the table being renamed is not itself part of the temp database, ** edit view and trigger definitions within the temp database ** as required. */ if iDb != int32(1) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9656, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9781, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) } /* If this is a virtual table, invoke the xRename() function if ** one is defined. The xRename() callback will modify the names @@ -88837,7 +89335,8 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp4(tls, v, int32(OP_VRename), i, 0, 0, pVTab, -int32(11)) } _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+9921, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+10046, 0) + goto exit_rename_table exit_rename_table: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -88853,7 +89352,7 @@ exit_rename_table: func _sqlite3ErrorIfNotEmpty(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zErr uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9934, libc.VaList(bp+8, zErr, zDb, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10059, libc.VaList(bp+8, zErr, zDb, zTab)) } // C documentation @@ -88893,11 +89392,11 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** column must not be NULL. */ if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9972, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10097, 0) return } if (*TTable)(unsafe.Pointer(pNew)).FpIndex != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10004, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10129, 0) return } if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) == 0 { @@ -88913,10 +89412,10 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpFKey != 0 && pDflt != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10031) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10156) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && !(pDflt != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10090) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10215) } /* Ensure the default expression is something that sqlite3ValueFromExpr() ** can handle (i.e. not CURRENT_TIME etc.) @@ -88928,13 +89427,13 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr return } if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10143) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10268) } _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp))) } } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_STORED) != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10189) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10314) } } /* Modify the CREATE TABLE statement. */ @@ -88948,7 +89447,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr } /* substr() operations on characters, but addColOffset is in bytes. So we ** have to use printf() to translate between these units: */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10216, libc.VaList(bp+16, zDb, (*(*struct { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10341, libc.VaList(bp+16, zDb, (*(*struct { FaddColOffset int32 FpFKey uintptr FpDfltList uintptr @@ -88976,7 +89475,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterAdd)) /* Verify that constraints are still satisfied */ if (*TTable)(unsafe.Pointer(pNew)).FpCheck != uintptr(0) || int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Strict) != uint32(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10362, libc.VaList(bp+16, zTab, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10487, libc.VaList(bp+16, zTab, zDb)) } } } @@ -89014,12 +89513,12 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { goto exit_begin_add_column } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10715, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10840, 0) goto exit_begin_add_column } /* Make sure this is not an attempt to ALTER a view. */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10749, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10874, 0) goto exit_begin_add_column } if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { @@ -89043,7 +89542,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { (*TTable)(unsafe.Pointer(pNew)).FnCol = (*TTable)(unsafe.Pointer(pTab)).FnCol nAlloc = (int32((*TTable)(unsafe.Pointer(pNew)).FnCol)-int32(1))/int32(8)*int32(8) + int32(8) (*TTable)(unsafe.Pointer(pNew)).FaCol = _sqlite3DbMallocZero(tls, db, uint64(16)*uint64(nAlloc)) - (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10779, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10904, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !((*TTable)(unsafe.Pointer(pNew)).FaCol != 0) || !((*TTable)(unsafe.Pointer(pNew)).FzName != 0) { goto exit_begin_add_column } @@ -89080,6 +89579,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pTab + 64))).FaddColOffset + goto exit_begin_add_column exit_begin_add_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -89103,18 +89603,18 @@ func _isRealTable(tls *libc.TLS, pParse uintptr, pTab uintptr, bDrop int32) (r i _, _ = zType, v1 zType = uintptr(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10798 + zType = __ccgo_ts + 10923 } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 10803 + zType = __ccgo_ts + 10928 } if zType != 0 { if bDrop != 0 { - v1 = __ccgo_ts + 10817 + v1 = __ccgo_ts + 10942 } else { - v1 = __ccgo_ts + 10834 + v1 = __ccgo_ts + 10959 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10852, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10977, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -89175,11 +89675,11 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld iCol++ } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10870, libc.VaList(bp+8, pOld)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10995, libc.VaList(bp+8, pOld)) goto exit_rename_column } /* Ensure the schema contains no double-quoted strings */ - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1650, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1664, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1))) /* Do the rename operation using a recursive UPDATE statement that ** uses the sqlite_rename_column() SQL function to compute the new @@ -89191,11 +89691,12 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld goto exit_rename_column } bQuote = int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pNew)).Fz)))]) & int32(0x80) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10891, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11073, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11016, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11198, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iSchema, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+9921, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+10046, int32(1)) + goto exit_rename_column exit_rename_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -89670,11 +90171,11 @@ func _renameColumnParseError(tls *libc.TLS, pCtx uintptr, zWhen uintptr, pType u zT = Xsqlite3_value_text(tls, pType) zN = Xsqlite3_value_text(tls, pObject) if *(*int8)(unsafe.Pointer(zWhen)) != 0 { - v1 = __ccgo_ts + 11204 + v1 = __ccgo_ts + 11329 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11206, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) + zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11331, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, zErr) } @@ -89751,8 +90252,8 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin if zSql == uintptr(0) { return int32(SQLITE_NOMEM) } - if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11229, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(116682)) + if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11354, int32(7)) != 0 { + return _sqlite3CorruptError(tls, int32(117285)) } if bTemp != 0 { v1 = int32(1) @@ -89768,7 +90269,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin rc = int32(SQLITE_NOMEM) } if rc == SQLITE_OK && ((*TParse)(unsafe.Pointer(p)).FpNewTable == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewIndex == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewTrigger == uintptr(0)) { - rc = _sqlite3CorruptError(tls, int32(116693)) + rc = _sqlite3CorruptError(tls, int32(117296)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -89807,7 +90308,7 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, ** ALTER TABLE statement was quoted (bQuote==1), then set zNew to ** point to zQuot so that all substitutions are made using the ** quoted version of the new column name. */ - zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11237, libc.VaList(bp+8, zNew)) + zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11362, libc.VaList(bp+8, zNew)) if zQuot == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -89852,11 +90353,11 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, *(*int8)(unsafe.Pointer(zBuf1 + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn))) = 0 _sqlite3Dequote(tls, zBuf1) if int32(*(*int8)(unsafe.Pointer((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn)))) == int32('\'') { - v1 = __ccgo_ts + 11204 + v1 = __ccgo_ts + 11329 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11243, libc.VaList(bp+8, zBuf1, v1)) + Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11368, libc.VaList(bp+8, zBuf1, v1)) zReplace = zBuf2 nReplace = uint32(_sqlite3Strlen30(tls, zReplace)) } @@ -90333,6 +90834,7 @@ func _renameColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintp } } rc = _renameEditSql(tls, context, bp, zSql, zNew, bQuote) + goto renameColumnFunc_done renameColumnFunc_done: ; if rc != SQLITE_OK { @@ -90340,7 +90842,7 @@ renameColumnFunc_done: Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv))) } else { if (*(*TParse)(unsafe.Pointer(bp + 32))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1650, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) + _renameColumnParseError(tls, context, __ccgo_ts+1664, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -90566,7 +91068,7 @@ func _renameTableFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintpt Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv + 3*8))) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1650, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) + _renameColumnParseError(tls, context, __ccgo_ts+1664, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -90828,7 +91330,7 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr pTab = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable if pTab == uintptr(0) || int32((*TTable)(unsafe.Pointer(pTab)).FnCol) == int32(1) || iCol >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { /* This can happen if the sqlite_schema table is corrupt */ - rc = _sqlite3CorruptError(tls, int32(117652)) + rc = _sqlite3CorruptError(tls, int32(118255)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -90845,9 +91347,10 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr (*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz-- } } - zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11248, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) + zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11373, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) Xsqlite3_result_text(tls, context, zNew, -int32(1), uintptr(-libc.Int32FromInt32(1))) Xsqlite3_free(tls, zNew) + goto drop_column_done drop_column_done: ; _renameParseCleanup(tls, bp) @@ -90871,8 +91374,9 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName bp := tls.Alloc(48) defer tls.Free(48) var addr, i, iCol, iColPos, iCur, iDb, iPos, nField, reg, regOut, regRec, v2, v4, v7 int32 + var aff int8 var db, pPk, pTab, v, zCol, zDb, v1, v3, v5, v8 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, aff, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Database containing pTab ("main" etc.) */ zCol = uintptr(0) /* Index of column zCol in pTab->aCol[] */ /* Look up the table being altered. */ @@ -90898,23 +91402,23 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName } iCol = _sqlite3ColumnIndex(tls, pTab, zCol) if iCol < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10870, libc.VaList(bp+8, pName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10995, libc.VaList(bp+8, pName)) goto exit_drop_column } /* Do not allow the user to drop a PRIMARY KEY column or a column ** constrained by a UNIQUE constraint. */ if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_PRIMKEY)|libc.Int32FromInt32(COLFLAG_UNIQUE)) != 0 { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - v1 = __ccgo_ts + 11255 + v1 = __ccgo_ts + 11380 } else { - v1 = __ccgo_ts + 5591 + v1 = __ccgo_ts + 5655 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11267, libc.VaList(bp+8, v1, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11392, libc.VaList(bp+8, v1, zCol)) goto exit_drop_column } /* Do not allow the number of columns to go to zero */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) <= int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11295, libc.VaList(bp+8, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11420, libc.VaList(bp+8, zCol)) goto exit_drop_column } /* Edit the sqlite_schema table */ @@ -90924,12 +91428,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_ALTER_TABLE), zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol) != 0 { goto exit_drop_column } - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1650, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1664, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1))) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11343, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11468, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterDrop)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11464, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11589, int32(1)) /* Edit rows of table on disk */ if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 && int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { pPk = uintptr(0) @@ -90987,7 +91491,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if i == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regOut) } else { + aff = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity + if int32(aff) == int32(SQLITE_AFF_REAL) { + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = int8(SQLITE_AFF_NUMERIC) + } _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, i, regOut) + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = aff } nField++ } @@ -91012,6 +91521,7 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iCur, addr+int32(1)) _sqlite3VdbeJumpHere(tls, v, addr) } + goto exit_drop_column exit_drop_column: ; _sqlite3DbFree(tls, db, zCol) @@ -91031,27 +91541,27 @@ var _aAlterTableFuncs = [5]TFuncDef{ 0: { FnArg: int8(9), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11482, + FzName: __ccgo_ts + 11607, }, 1: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11503, + FzName: __ccgo_ts + 11628, }, 2: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11523, + FzName: __ccgo_ts + 11648, }, 3: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11542, + FzName: __ccgo_ts + 11667, }, 4: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11561, + FzName: __ccgo_ts + 11686, }, } @@ -91262,7 +91772,7 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW ** side-effect of the CREATE TABLE statement is to leave the rootpage ** of the new table in register pParse->regRoot. This is important ** because the OpenWrite opcode below will be needing it. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11664, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11789, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) aRoot[i] = uint32((*TParse)(unsafe.Pointer(pParse)).FregRoot) aCreateTbl[i] = uint8(OPFLAG_P2ISREG) } @@ -91273,10 +91783,10 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW aRoot[i] = (*TTable)(unsafe.Pointer(pStat)).Ftnum _sqlite3TableLock(tls, pParse, iDb, aRoot[i], uint8(1), zTab) if zWhere != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11687, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11812, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11717, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11842, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) } else { /* The sqlite_stat[134] table already exists. Delete all rows. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Clear), int32(aRoot[i]), iDb) @@ -91308,15 +91818,15 @@ var _aTable = [3]struct { FzCols uintptr }{ 0: { - FzName: __ccgo_ts + 11584, - FzCols: __ccgo_ts + 11597, + FzName: __ccgo_ts + 11709, + FzCols: __ccgo_ts + 11722, }, 1: { - FzName: __ccgo_ts + 11610, - FzCols: __ccgo_ts + 11623, + FzName: __ccgo_ts + 11735, + FzCols: __ccgo_ts + 11748, }, 2: { - FzName: __ccgo_ts + 11651, + FzName: __ccgo_ts + 11776, }, } @@ -91618,7 +92128,7 @@ func _statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statInitFuncdef = TFuncDef{ FnArg: int8(4), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11735, + FzName: __ccgo_ts + 11860, } func init() { @@ -91764,6 +92274,7 @@ func _sampleInsert(tls *libc.TLS, p uintptr, pNew uintptr, nEqZero int32) { (*TStatAccum)(unsafe.Pointer(p)).FnSample++ /* Zero the first nEqZero entries in the anEq[] array. */ libc.Xmemset(tls, (*TStatSample)(unsafe.Pointer(pSample)).FanEq, 0, uint64(8)*uint64(nEqZero)) + goto find_new_min find_new_min: ; if (*TStatAccum)(unsafe.Pointer(p)).FnSample >= (*TStatAccum)(unsafe.Pointer(p)).FmxSample { @@ -91991,7 +92502,7 @@ func _statPush(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statPushFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(2) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11745, + FzName: __ccgo_ts + 11870, } func init() { @@ -92041,7 +92552,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } else { v1 = (*TStatAccum)(unsafe.Pointer(p)).FnRow } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11755, libc.VaList(bp+72, v1)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11880, libc.VaList(bp+72, v1)) i = 0 for { if !(i < (*TStatAccum)(unsafe.Pointer(p)).FnKeyCol) { @@ -92052,7 +92563,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if iVal == uint64(2) && (*TStatAccum)(unsafe.Pointer(p)).FnRow*uint64(10) <= nDistinct*uint64(11) { iVal = uint64(1) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11760, libc.VaList(bp+72, iVal)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11885, libc.VaList(bp+72, iVal)) goto _2 _2: ; @@ -92091,7 +92602,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if !(i1 < (*TStatAccum)(unsafe.Pointer(p)).FnCol) { break } - Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+11766, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) + Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+11891, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) goto _3 _3: ; @@ -92109,7 +92620,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statGetFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(1) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11772, + FzName: __ccgo_ts + 11897, } func init() { @@ -92130,9 +92641,9 @@ func _callStatGet(tls *libc.TLS, pParse uintptr, regStat int32, iParam int32, re // */ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr, iStatCur int32, iMem int32, iTab int32) { var aGotoChng, db, pColl, pIdx, pPk, pStat1, pX, v, zIdxName uintptr - var addrIsNull, addrNext, addrNextRow, addrRewind, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 + var addrGotoEnd, addrIsNull, addrNext, addrNextRow, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 var needTableCnt, seekOp Tu8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrIsNull, addrNext, addrNextRow, addrRewind, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrGotoEnd, addrIsNull, addrNext, addrNextRow, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Loop counter */ jZeroRows = -int32(1) /* Index of database containing pTab */ needTableCnt = uint8(1) @@ -92175,7 +92686,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Do not gather statistics on views or virtual tables */ return } - if Xsqlite3_strlike(tls, __ccgo_ts+11781, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { + if Xsqlite3_strlike(tls, __ccgo_ts+11906, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { /* Do not gather statistics on system tables */ return } @@ -92189,7 +92700,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint return } (*TTable)(unsafe.Pointer(pStat1)).FzName = pStat1 + 1*104 - libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11584, uint64(13)) + libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11709, uint64(13)) (*TTable)(unsafe.Pointer(pStat1)).FnCol = int16(3) (*TTable)(unsafe.Pointer(pStat1)).FiPKey = int16(-int32(1)) _sqlite3VdbeAddOp4(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Noop), 0, 0, 0, pStat1, -int32(6)) @@ -92243,9 +92754,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* ** Pseudo-code for loop that calls stat_push(): ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() ** goto chng_addr_0; ** ** next_row: @@ -92279,32 +92795,29 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Open a read-only cursor on the index being analyzed. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenRead), iIdxCur, int32((*TIndex)(unsafe.Pointer(pIdx)).Ftnum), iDb) _sqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx) - /* Invoke the stat_init() function. The arguments are: + /* Implementation of the following: ** + ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() + ** goto chng_addr_0; + */ + _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + /* Arguments to stat_init(): ** (1) the number of columns in the index including the rowid ** (or for a WITHOUT ROWID table, the number of PK columns), ** (2) the number of columns in the key without the rowid/pk - ** (3) estimated number of rows in the index, - */ + ** (3) estimated number of rows in the index. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), nCol, regStat+int32(1)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol), regRowid) - if (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0) { - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iIdxCur, regTemp) - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - } else { - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, int32(1)) - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) != uint32(0))) _sqlite3VdbeAddFunctionCall(tls, pParse, 0, regStat+int32(1), regStat, int32(4), uintptr(unsafe.Pointer(&_statInitFuncdef)), 0) - /* Implementation of the following: - ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; - ** regChng = 0 - ** goto next_push_0; - ** - */ + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regChng) addrNextRow = _sqlite3VdbeCurrentAddr(tls, v) if nColTest > 0 { @@ -92413,8 +92926,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iIdxCur, addrNextRow) } /* Add the entry to the stat1 table. */ + if (*TIndex)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 { + /* Partial indexes might get a zero-entry in sqlite_stat1. But + ** an empty table is omitted from sqlite_stat1. */ + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + addrGotoEnd = 0 + } _callStatGet(tls, pParse, regStat, STAT_GET_STAT1, regStat1) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11791, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11916, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP4(tls, v, -int32(1), pStat1, -int32(5)) @@ -92433,6 +92952,11 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint v18 = int32(OP_NotFound) } seekOp = uint8(v18) + /* No STAT4 data is generated if the number of rows is zero */ + if addrGotoEnd == 0 { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Cast), regStat1, int32(SQLITE_AFF_INTEGER)) + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) + } if doOnce != 0 { mxCol = nCol /* Compute the maximum number of columns in any index */ @@ -92485,7 +93009,9 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeJumpHere(tls, v, addrIsNull) } /* End of analysis */ - _sqlite3VdbeJumpHere(tls, v, addrRewind) + if addrGotoEnd != 0 { + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + } goto _13 _13: ; @@ -92498,7 +93024,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iTabCur, regStat1) jZeroRows = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regIdxname) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11791, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11916, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND)) @@ -92570,9 +93096,9 @@ func _analyzeTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr iStatCur = (*TParse)(unsafe.Pointer(pParse)).FnTab *(*int32)(unsafe.Pointer(pParse + 52)) += int32(3) if pOnlyIdx != 0 { - _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11795) + _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11920) } else { - _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11799) + _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11924) } _analyzeOneTable(tls, pParse, pTab, pOnlyIdx, iStatCur, (*TParse)(unsafe.Pointer(pParse)).FnMem+int32(1), (*TParse)(unsafe.Pointer(pParse)).FnTab) _loadAnalysis(tls, pParse, iDb) @@ -92701,7 +93227,7 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, _, _, _, _, _, _ = c, i, sz, v, z, v2 z = zIntArray if z == uintptr(0) { - z = __ccgo_ts + 1650 + z = __ccgo_ts + 1664 } i = 0 for { @@ -92736,17 +93262,17 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 6, 0x40) for *(*int8)(unsafe.Pointer(z)) != 0 { - if Xsqlite3_strglob(tls, __ccgo_ts+11803, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11928, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 2, 0x4) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11814, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11939, z) == 0 { sz = _sqlite3Atoi(tls, z+uintptr(3)) if sz < int32(2) { sz = int32(2) } (*TIndex)(unsafe.Pointer(pIndex)).FszIdxRow = _sqlite3LogEst(tls, uint64(sz)) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11824, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11949, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 6, 0x40) } } @@ -93122,11 +93648,11 @@ func _loadStat4(tls *libc.TLS, db uintptr, zDb uintptr) (r int32) { _, _, _, _ = pStat4, rc, v1, v2 rc = SQLITE_OK if v2 = (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0); v2 { - v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11610, zDb) + v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11735, zDb) pStat4 = v1 } if v2 && v1 != uintptr(0) && int32((*TTable)(unsafe.Pointer(pStat4)).FeTabType) == TABTYP_NORM { - rc = _loadStatTbl(tls, db, __ccgo_ts+11836, __ccgo_ts+11905, zDb) + rc = _loadStatTbl(tls, db, __ccgo_ts+11961, __ccgo_ts+12030, zDb) } return rc } @@ -93192,10 +93718,10 @@ func _sqlite3AnalysisLoad(tls *libc.TLS, db uintptr, iDb int32) (r int32) { /* Load new statistics out of the sqlite_stat1 table */ (*(*TanalysisInfo)(unsafe.Pointer(bp))).Fdb = db (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName - v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11584, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) + v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11709, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) pStat1 = v3 if v3 != 0 && int32((*TTable)(unsafe.Pointer(pStat1)).FeTabType) == TABTYP_NORM { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+11957, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+12082, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -93308,7 +93834,7 @@ func _resolveAttachExpr(tls *libc.TLS, pName uintptr, pExpr uintptr) (r int32) { // ** database iDb attached to handle db. // */ func _sqlite3DbIsNamed(tls *libc.TLS, db uintptr, iDb int32, zName uintptr) (r int32) { - return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6587, zName) == 0) + return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6651, zName) == 0) } // C documentation @@ -93350,21 +93876,21 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { zFile = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) zName = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if zFile == uintptr(0) { - zFile = __ccgo_ts + 1650 + zFile = __ccgo_ts + 1664 } if zName == uintptr(0) { - zName = __ccgo_ts + 1650 + zName = __ccgo_ts + 1664 } if int32(uint32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x4>>2)) != 0 { /* This is not a real ATTACH. Instead, this routine is being called ** from sqlite3_deserialize() to close database db->init.iDb and ** reopen it as a MemDB */ *(*uintptr)(unsafe.Pointer(bp + 40)) = uintptr(0) - *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+3969) + *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+4033) if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { return } - rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+11998, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) + rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12123, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) if rc == SQLITE_OK { pNewSchema = _sqlite3SchemaGet(tls, db, *(*uintptr)(unsafe.Pointer(bp + 40))) if pNewSchema != 0 { @@ -93395,7 +93921,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { ** * Specified database name already being used. */ if (*Tsqlite3)(unsafe.Pointer(db)).FnDb >= *(*int32)(unsafe.Pointer(db + 136 + 7*4))+int32(2) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12001, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12126, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) goto attach_error } i = 0 @@ -93404,7 +93930,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { break } if _sqlite3DbIsNamed(tls, db, i, zName) != 0 { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12038, libc.VaList(bp+56, zName)) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12163, libc.VaList(bp+56, zName)) goto attach_error } goto _1 @@ -93452,7 +93978,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FnoSharedCache = uint8(0) if rc == int32(SQLITE_CONSTRAINT) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12068, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12193, 0) } else { if rc == SQLITE_OK { (*TDb)(unsafe.Pointer(pNew)).FpSchema = _sqlite3SchemaGet(tls, db, (*TDb)(unsafe.Pointer(pNew)).FpBt) @@ -93460,7 +93986,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { rc = int32(SQLITE_NOMEM) } else { if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Ffile_format != 0 && int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Fenc) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12097, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12222, 0) rc = int32(SQLITE_ERROR) } } @@ -93504,16 +94030,17 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)<= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12193, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12318, libc.VaList(bp+136, zName)) goto detach_error } if i < int32(2) { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12214, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12339, libc.VaList(bp+136, zName)) goto detach_error } if _sqlite3BtreeTxnState(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != SQLITE_TXN_NONE || _sqlite3BtreeIsInBackup(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != 0 { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12240, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12365, libc.VaList(bp+136, zName)) goto detach_error } /* If any TEMP triggers reference the schema being detached, move those @@ -93594,6 +94121,7 @@ func _detachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*TDb)(unsafe.Pointer(pDb)).FpSchema = uintptr(0) _sqlite3CollapseDatabaseArray(tls, db) return + goto detach_error detach_error: ; Xsqlite3_result_error(tls, context, bp, -int32(1)) @@ -93648,6 +94176,7 @@ func _codeAttach(tls *libc.TLS, pParse uintptr, type1 int32, pFunc uintptr, pAut */ _sqlite3VdbeAddOp1(tls, v, int32(OP_Expire), libc.BoolInt32(type1 == int32(SQLITE_ATTACH))) } + goto attach_end attach_end: ; _sqlite3ExprDelete(tls, db, pFilename) @@ -93669,7 +94198,7 @@ func _sqlite3Detach(tls *libc.TLS, pParse uintptr, pDbname uintptr) { var _detach_func = TFuncDef{ FnArg: int8(1), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12262, + FzName: __ccgo_ts + 12387, } func init() { @@ -93691,7 +94220,7 @@ func _sqlite3Attach(tls *libc.TLS, pParse uintptr, p uintptr, pDbname uintptr, p var _attach_func = TFuncDef{ FnArg: int8(3), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12276, + FzName: __ccgo_ts + 12401, } func init() { @@ -93717,7 +94246,7 @@ func _fixExprCb(tls *libc.TLS, p uintptr, pExpr uintptr) (r int32) { if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer((*TDbFixer)(unsafe.Pointer(pFix)).FpParse)).Fdb)).Finit1.Fbusy != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } else { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12290, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12415, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) return int32(WRC_Abort) } } @@ -93751,7 +94280,7 @@ func _fixSelectCb(tls *libc.TLS, p uintptr, pSelect uintptr) (r int32) { if int32((*TDbFixer)(unsafe.Pointer(pFix)).FbTemp) == 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { if iDb != _sqlite3FindDbName(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12314, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12439, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) return int32(WRC_Abort) } _sqlite3DbFree(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) @@ -93967,7 +94496,7 @@ func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uint // ** user-supplied authorization function returned an illegal value. // */ func _sqliteAuthBadReturnCode(tls *libc.TLS, pParse uintptr) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12360, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12485, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) } @@ -93995,11 +94524,11 @@ func _sqlite3AuthReadCol(tls *libc.TLS, pParse uintptr, zTab uintptr, zCol uintp } rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, int32(SQLITE_READ), zTab, zCol, zDb, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12383, libc.VaList(bp+8, zTab, zCol)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12508, libc.VaList(bp+8, zTab, zCol)) if (*Tsqlite3)(unsafe.Pointer(db)).FnDb > int32(2) || iDb != 0 { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12389, libc.VaList(bp+8, zDb, z)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12514, libc.VaList(bp+8, zDb, z)) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12395, libc.VaList(bp+8, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12520, libc.VaList(bp+8, z)) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != int32(SQLITE_IGNORE) && rc != SQLITE_OK { @@ -94059,7 +94588,7 @@ func _sqlite3AuthRead(tls *libc.TLS, pParse uintptr, pExpr uintptr, pSchema uint if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName } else { - zCol = __ccgo_ts + 7907 + zCol = __ccgo_ts + 8032 } } if int32(SQLITE_IGNORE) == _sqlite3AuthReadCol(tls, pParse, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol, iDb) { @@ -94094,7 +94623,7 @@ func _sqlite3AuthCheck(tls *libc.TLS, pParse uintptr, code int32, zArg1 uintptr, ** parameters can be either NULL or a string. */ rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, code, zArg1, zArg2, zArg3, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12422, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12547, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != SQLITE_OK && rc != int32(SQLITE_IGNORE) { @@ -94515,21 +95044,21 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp if i >= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { /* No match against the official names. But always match "main" ** to schema 0 as a legacy fallback. */ - if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6587) == 0 { + if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6651) == 0 { i = 0 } else { return uintptr(0) } } p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, zName) - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6527, int32(7)) == 0 { + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6591, int32(7)) == 0 { if i == int32(1) { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6554+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6573+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6068+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6535) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6618+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6637+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6132+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6599) } } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6573+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6068) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6637+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6132) } } } @@ -94559,12 +95088,12 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp ; i++ } - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6527, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6573+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6068) + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6591, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6637+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6132) } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6554+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6535) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6618+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6599) } } } @@ -94602,7 +95131,7 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt ** can be an eponymous virtual table. */ if int32((*TParse)(unsafe.Pointer(pParse)).FprepFlags)&int32(SQLITE_PREPARE_NO_VTAB) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 { pMod = _sqlite3HashFind(tls, db+576, zName) - if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12437, int32(7)) == 0 { + if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12562, int32(7)) == 0 { pMod = _sqlite3PragmaVtabRegister(tls, db, zName) } if pMod != 0 && _sqlite3VtabEponymousTableInit(tls, pParse, pMod) != 0 { @@ -94620,15 +95149,15 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt } if p == uintptr(0) { if flags&uint32(LOCATE_VIEW) != 0 { - v1 = __ccgo_ts + 12445 + v1 = __ccgo_ts + 12570 } else { - v1 = __ccgo_ts + 12458 + v1 = __ccgo_ts + 12583 } zMsg = v1 if zDbase != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6791, libc.VaList(bp+8, zMsg, zDbase, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6855, libc.VaList(bp+8, zMsg, zDbase, zName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6801, libc.VaList(bp+8, zMsg, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6926, libc.VaList(bp+8, zMsg, zName)) } } else { } @@ -94666,12 +95195,12 @@ func _sqlite3LocateTableItem(tls *libc.TLS, pParse uintptr, flags Tu32, p uintpt // ** names into the new preferred names, as appropriate. // */ func _sqlite3PreferredTableName(tls *libc.TLS, zName uintptr) (r uintptr) { - if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6527, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6068+7) == 0 { - return __ccgo_ts + 6573 + if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6591, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6132+7) == 0 { + return __ccgo_ts + 6637 } - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6535+7) == 0 { - return __ccgo_ts + 6554 + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6599+7) == 0 { + return __ccgo_ts + 6618 } } return zName @@ -95196,7 +95725,7 @@ func _sqlite3OpenSchemaTable(tls *libc.TLS, p uintptr, iDb int32) { var v uintptr _ = v v = _sqlite3GetVdbe(tls, p) - _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6068) + _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6132) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_OpenWrite), 0, int32(SCHEMA_ROOT), iDb, int32(5)) if (*TParse)(unsafe.Pointer(p)).FnTab == 0 { (*TParse)(unsafe.Pointer(p)).FnTab = int32(1) @@ -95228,7 +95757,7 @@ func _sqlite3FindDbName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) { } /* "main" is always an acceptable alias for the primary database ** even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME. */ - if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6587, zName) { + if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6651, zName) { break } goto _1 @@ -95286,13 +95815,13 @@ func _sqlite3TwoPartName(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12472, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12597, 0) return -int32(1) } *(*uintptr)(unsafe.Pointer(pUnqual)) = pName2 iDb = _sqlite3FindDb(tls, db, pName1) if iDb < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12489, libc.VaList(bp+8, pName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12614, libc.VaList(bp+8, pName1)) return -int32(1) } } else { @@ -95336,12 +95865,12 @@ func _sqlite3CheckObjectName(tls *libc.TLS, pParse uintptr, zName uintptr, zType } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if Xsqlite3_stricmp(tls, zType, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit))) != 0 || Xsqlite3_stricmp(tls, zName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 1*8))) != 0 || Xsqlite3_stricmp(tls, zTblName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 2*8))) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1650, 0) /* corruptSchema() will supply the error */ + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1664, 0) /* corruptSchema() will supply the error */ return int32(SQLITE_ERROR) } } else { - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6527, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12509, libc.VaList(bp+8, zName)) + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6591, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12634, libc.VaList(bp+8, zName)) return int32(SQLITE_ERROR) } } @@ -95556,9 +96085,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Special case: Parsing the sqlite_schema or sqlite_temp_schema schema */ iDb = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6535 + v1 = __ccgo_ts + 6599 } else { - v1 = __ccgo_ts + 6068 + v1 = __ccgo_ts + 6132 } zName = _sqlite3DbStrDup(tls, db, v1) *(*uintptr)(unsafe.Pointer(bp)) = pName1 @@ -95571,7 +96100,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 && (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) && iDb != int32(1) { /* If creating a temp table, the name may not be qualified. Unless ** the database name is "temp" anyway. */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12551, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12676, 0) return } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 { @@ -95587,9 +96116,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui return } if isView != 0 { - v2 = __ccgo_ts + 10798 + v2 = __ccgo_ts + 10923 } else { - v2 = __ccgo_ts + 9060 + v2 = __ccgo_ts + 9185 } if _sqlite3CheckObjectName(tls, pParse, zName, v2, zName) != 0 { goto begin_table_error @@ -95599,9 +96128,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui } zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp == int32(1) { - v3 = __ccgo_ts + 6535 + v3 = __ccgo_ts + 6599 } else { - v3 = __ccgo_ts + 6068 + v3 = __ccgo_ts + 6132 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto begin_table_error @@ -95625,11 +96154,11 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if pTable != 0 { if !(noErr != 0) { if int32((*TTable)(unsafe.Pointer(pTable)).FeTabType) == int32(TABTYP_VIEW) { - v4 = __ccgo_ts + 10798 + v4 = __ccgo_ts + 10923 } else { - v4 = __ccgo_ts + 9060 + v4 = __ccgo_ts + 9185 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12592, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12717, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) _sqlite3ForceNotReadOnly(tls, pParse) @@ -95637,7 +96166,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui goto begin_table_error } if _sqlite3FindIndex(tls, db, zName, zDb1) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12613, libc.VaList(bp+16, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12738, libc.VaList(bp+16, zName)) goto begin_table_error } } @@ -95725,6 +96254,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Normal (non-error) return. */ return /* If an error occurs, we jump here */ + goto begin_table_error begin_table_error: ; (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) @@ -95788,7 +96318,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { _, _, _ = db, pHash, pRet db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12648, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12773, 0) } else { } (*TParse)(unsafe.Pointer(pParse)).FbReturning = uint8(1) @@ -95804,7 +96334,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return } - Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+12682, libc.VaList(bp+8, pParse)) + Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+12807, libc.VaList(bp+8, pParse)) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.FzName = pRet + 196 (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Fop = uint8(TK_RETURNING) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Ftr_tm = uint8(TRIGGER_AFTER) @@ -95851,7 +96381,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok return } if int32((*TTable)(unsafe.Pointer(p)).FnCol)+int32(1) > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12702, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12827, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) return } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -95861,12 +96391,12 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok ** by the parser, we can sometimes end up with a typename that ends ** with "generated always". Check for this case and omit the surplus ** text. */ - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12725, int32(6)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12850, int32(6)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(6) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1)))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- } - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12732, int32(9)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12857, int32(9)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(9) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1)))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- @@ -95915,7 +96445,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok break } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FhName) == int32(hName) && _sqlite3StrICmp(tls, z, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FzCnName) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12742, libc.VaList(bp+40, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12867, libc.VaList(bp+40, z)) _sqlite3DbFree(tls, db, z) return } @@ -96123,10 +96653,10 @@ func _sqlite3AddDefaultValue(tls *libc.TLS, pParse uintptr, pExpr uintptr, zStar isInit = libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) != int32(1)) pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(p)).FnCol)-int32(1))*16 if !(_sqlite3ExprIsConstantOrFunction(tls, pExpr, uint8(isInit)) != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12768, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12893, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12813, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12938, 0) } else { libc.Xmemset(tls, bp, 0, uint64(72)) (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_SPAN) @@ -96184,7 +96714,7 @@ func _makeColumnPartOfPrimaryKey(tls *libc.TLS, pParse uintptr, pCol uintptr) { p1 = pCol + 14 *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(COLFLAG_PRIMKEY)) if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12854, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12979, 0) } } @@ -96221,7 +96751,7 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError goto primary_key_exit } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasPrimaryKey) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12906, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13031, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto primary_key_exit } *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_HasPrimaryKey) @@ -96277,12 +96807,13 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError _sqlite3HasExplicitNulls(tls, pParse, pList) } else { if autoInc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12947, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13072, 0) } else { _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), pList, onError, uintptr(0), uintptr(0), sortOrder, 0, uint8(SQLITE_IDXTYPE_PRIMARYKEY)) pList = uintptr(0) } } + goto primary_key_exit primary_key_exit: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) @@ -96392,17 +96923,17 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui } pCol = (*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-int32(1))*16 if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) == int32(PARSE_MODE_DECLARE_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13003, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13128, 0) goto generated_done } if int32((*TColumn)(unsafe.Pointer(pCol)).FiDflt) > 0 { goto generated_error } if pType != 0 { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13046, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13171, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { /* no-op */ } else { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13054, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13179, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { eType = uint8(COLFLAG_STORED) } else { goto generated_error @@ -96431,9 +96962,11 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui _sqlite3ColumnSetExpr(tls, pParse, pTab, pCol, pExpr) pExpr = uintptr(0) goto generated_done + goto generated_error generated_error: ; - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13061, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13186, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + goto generated_done generated_done: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -96595,13 +97128,13 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { } n += _identLength(tls, (*TTable)(unsafe.Pointer(p)).FzName) if n < int32(50) { - zSep = __ccgo_ts + 1650 - zSep2 = __ccgo_ts + 13092 - zEnd = __ccgo_ts + 5108 + zSep = __ccgo_ts + 1664 + zSep2 = __ccgo_ts + 13217 + zEnd = __ccgo_ts + 5172 } else { - zSep = __ccgo_ts + 13094 - zSep2 = __ccgo_ts + 13098 - zEnd = __ccgo_ts + 13103 + zSep = __ccgo_ts + 13219 + zSep2 = __ccgo_ts + 13223 + zEnd = __ccgo_ts + 13228 } n += int32(35) + int32(6)*int32((*TTable)(unsafe.Pointer(p)).FnCol) zStmt = _sqlite3DbMallocRaw(tls, uintptr(0), uint64(n)) @@ -96609,7 +97142,7 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { _sqlite3OomFault(tls, db) return uintptr(0) } - Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13106, 0) + Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13231, 0) *(*int32)(unsafe.Pointer(bp)) = _sqlite3Strlen30(tls, zStmt) _identPut(tls, zStmt, bp, (*TTable)(unsafe.Pointer(p)).FzName) v2 = *(*int32)(unsafe.Pointer(bp)) @@ -96635,17 +97168,17 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { i++ pCol += 16 } - Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3797, libc.VaList(bp+16, zEnd)) + Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3861, libc.VaList(bp+16, zEnd)) return zStmt } var _azType1 = [6]uintptr{ - 0: __ccgo_ts + 1650, - 1: __ccgo_ts + 13120, - 2: __ccgo_ts + 13126, - 3: __ccgo_ts + 13131, - 4: __ccgo_ts + 13136, - 5: __ccgo_ts + 13126, + 0: __ccgo_ts + 1664, + 1: __ccgo_ts + 13245, + 2: __ccgo_ts + 13251, + 3: __ccgo_ts + 13256, + 4: __ccgo_ts + 13261, + 5: __ccgo_ts + 13251, } // C documentation @@ -97219,13 +97752,13 @@ func _sqlite3ShadowTableName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr, tabOpts Tu32, pSelect uintptr) { bp := tls.Alloc(112) defer tls.Free(112) - var addrInsLoop, addrTop, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v4, v6, v8 int32 + var addrInsLoop, addrTop, iCsr, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v10, v4, v6, v8 int32 var colFlags Tu32 - var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v5, v7, v9 uintptr - var v10 Ti16 + var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v13, v5, v7, v9 uintptr + var v12 Ti16 var _ /* dest at bp+0 */ TSelectDest - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v4, v5, v6, v7, v8, v9 /* The new table */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iCsr, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v12, v13, v4, v5, v6, v7, v8, v9 /* The new table */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ if pEnd == uintptr(0) && pSelect == uintptr(0) { return } @@ -97247,7 +97780,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if pSelect != 0 || !(int32((*TTable)(unsafe.Pointer(p)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) && (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1650, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1664, 0) return } (*TTable)(unsafe.Pointer(p)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum @@ -97274,9 +97807,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(ii)*16 if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf0>>4)) == COLTYPE_CUSTOM { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_HASTYPE) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13142, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1650))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13267, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1664))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13175, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13300, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } return } else { @@ -97297,11 +97830,11 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* Special processing for WITHOUT ROWID Tables */ if tabOpts&uint32(TF_WithoutRowid) != 0 { if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13202, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13327, 0) return } if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasPrimaryKey) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13252, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13377, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) return } *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) @@ -97348,7 +97881,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ii1++ } if nNG == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13284, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13409, 0) return } } @@ -97382,12 +97915,12 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if int32((*TTable)(unsafe.Pointer(p)).FeTabType) == TABTYP_NORM { /* A regular table */ - zType = __ccgo_ts + 9060 - zType2 = __ccgo_ts + 13328 + zType = __ccgo_ts + 9185 + zType2 = __ccgo_ts + 13453 } else { /* A view */ - zType = __ccgo_ts + 10798 - zType2 = __ccgo_ts + 13334 + zType = __ccgo_ts + 10923 + zType2 = __ccgo_ts + 13459 } /* If this is a CREATE TABLE xx AS SELECT ..., execute the SELECT ** statement to populate the new table. The root-page number for the @@ -97402,28 +97935,31 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** a schema-lock excludes all other database users, the write-lock would ** be redundant. */ - if pSelect != 0 { /* A table that describes the SELECT results */ + if pSelect != 0 { /* Write cursor on the new table */ if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) (*TParse)(unsafe.Pointer(pParse)).FnErr++ return } - v5 = pParse + 56 - *(*int32)(unsafe.Pointer(v5))++ + v5 = pParse + 52 v4 = *(*int32)(unsafe.Pointer(v5)) - regYield = v4 + *(*int32)(unsafe.Pointer(v5))++ + iCsr = v4 v7 = pParse + 56 *(*int32)(unsafe.Pointer(v7))++ v6 = *(*int32)(unsafe.Pointer(v7)) - regRec = v6 + regYield = v6 v9 = pParse + 56 *(*int32)(unsafe.Pointer(v9))++ v8 = *(*int32)(unsafe.Pointer(v9)) - regRowid = v8 + regRec = v8 + v11 = pParse + 56 + *(*int32)(unsafe.Pointer(v11))++ + v10 = *(*int32)(unsafe.Pointer(v11)) + regRowid = v10 _sqlite3MayAbort(tls, pParse) - _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), int32(1), (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) + _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), iCsr, (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_P2ISREG)) - (*TParse)(unsafe.Pointer(pParse)).FnTab = int32(2) addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { @@ -97433,9 +97969,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr if pSelTab == uintptr(0) { return } - v10 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol - (*TTable)(unsafe.Pointer(p)).FnNVCol = v10 - (*TTable)(unsafe.Pointer(p)).FnCol = v10 + v12 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol + (*TTable)(unsafe.Pointer(p)).FnNVCol = v12 + (*TTable)(unsafe.Pointer(p)).FnCol = v12 (*TTable)(unsafe.Pointer(p)).FaCol = (*TTable)(unsafe.Pointer(pSelTab)).FaCol (*TTable)(unsafe.Pointer(pSelTab)).FnCol = 0 (*TTable)(unsafe.Pointer(pSelTab)).FaCol = uintptr(0) @@ -97450,33 +97986,33 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr addrInsLoop = _sqlite3VdbeAddOp1(tls, v, int32(OP_Yield), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSDParm) _sqlite3VdbeAddOp3(tls, v, int32(OP_MakeRecord), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst, (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst, regRec) _sqlite3TableAffinity(tls, v, p, 0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), int32(1), regRowid) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), int32(1), regRec, regRowid) + _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iCsr, regRowid) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iCsr, regRec, regRowid) _sqlite3VdbeGoto(tls, v, addrInsLoop) _sqlite3VdbeJumpHere(tls, v, addrInsLoop) - _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), int32(1)) + _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), iCsr) } /* Compute the complete text of the CREATE statement */ if pSelect != 0 { zStmt = _createTableStmt(tls, db, p) } else { if tabOpts != 0 { - v11 = pParse + 288 + v13 = pParse + 288 } else { - v11 = pEnd + v13 = pEnd } - pEnd2 = v11 + pEnd2 = v13 n = int32(int64((*TToken)(unsafe.Pointer(pEnd2)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) if int32(*(*int8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pEnd2)).Fz))) != int32(';') { n = int32(uint32(n) + (*TToken)(unsafe.Pointer(pEnd2)).Fn) } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13339, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13464, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) } /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13354, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13479, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) _sqlite3DbFree(tls, db, zStmt) _sqlite3ChangeCookie(tls, pParse, iDb) /* Check to see if we need to create an sqlite_sequence table for @@ -97485,17 +98021,16 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != uint32(0) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != libc.Int32FromInt32(PARSE_MODE_NORMAL)) { pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).FpSeqTab == uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13452, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13577, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) } } /* Reparse everything to update our internal data structures */ - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13494, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13619, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) /* Test for cycles in generated columns and illegal expressions ** in CHECK constraints and in DEFAULT clauses. */ if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasGenerated) != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13528, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(0x0001), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13653, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13549, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } /* Add the table to the in-memory representation of the database. */ @@ -97512,7 +98047,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* If this is the magic sqlite_sequence table used by autoincrement, ** then record a pointer to this table in the main database structure ** so that INSERT can find the table easily. */ - if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9582) == 0 { + if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9707) == 0 { (*TSchema)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FpSchema)).FpSeqTab = p } } @@ -97545,7 +98080,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*uintptr)(unsafe.Pointer(bp + 112)) = uintptr(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if int32((*TParse)(unsafe.Pointer(pParse)).FnVar) > 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13581, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13674, 0) goto create_view_fail } _sqlite3StartTable(tls, pParse, pName1, pName2, isTemp, int32(1), 0, noErr) @@ -97562,7 +98097,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(TF_NoVisibleRowid) /* Never allow rowid in view */ _sqlite3TwoPartName(tls, pParse, pName1, pName2, bp+112) iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(p)).FpSchema) - _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+10798, *(*uintptr)(unsafe.Pointer(bp + 112))) + _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+10923, *(*uintptr)(unsafe.Pointer(bp + 112))) if _sqlite3FixSelect(tls, bp+16, pSelect) != 0 { goto create_view_fail } @@ -97604,6 +98139,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui (*(*TToken)(unsafe.Pointer(bp))).Fn = uint32(1) /* Use sqlite3EndTable() to add the view to the schema table */ _sqlite3EndTable(tls, pParse, uintptr(0), bp, uint32(0), uintptr(0)) + goto create_view_fail create_view_fail: ; _sqlite3SelectDelete(tls, db, pSelect) @@ -97657,7 +98193,7 @@ func _viewGetColumnNames(tls *libc.TLS, pParse uintptr, pTable uintptr) (r int32 ** SELECT * FROM temp.ex1; */ if int32((*TTable)(unsafe.Pointer(pTable)).FnCol) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13617, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13710, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) return int32(1) } /* If we get this far, it means we need to compute the table names. @@ -97841,7 +98377,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { v = _sqlite3GetVdbe(tls, pParse) r1 = _sqlite3GetTempReg(tls, pParse) if iTable < int32(2) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13647, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13740, 0) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Destroy), iTable, r1, iDb) _sqlite3MayAbort(tls, pParse) @@ -97854,7 +98390,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { ** is in register NNN. See grammar rules associated with the TK_REGISTER ** token for additional information. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13662, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13755, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) _sqlite3ReleaseTempReg(tls, pParse, r1) } @@ -97937,9 +98473,9 @@ func _sqlite3ClearStatTables(tls *libc.TLS, pParse uintptr, iDb int32, zType uin if !(i <= int32(4)) { break } - Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13729, libc.VaList(bp+32, i)) + Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13822, libc.VaList(bp+32, i)) if _sqlite3FindTable(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, bp, zDbName) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11687, libc.VaList(bp+32, zDbName, bp, zType, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11812, libc.VaList(bp+32, zDbName, bp, zType, zName)) } goto _1 _1: @@ -97980,7 +98516,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** move as a result of the drop (can happen in auto-vacuum mode). */ if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13743, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13836, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* Drop all entries in the schema table that refer to the ** table. The program name loops through the schema table and deletes @@ -97989,7 +98525,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** created in the temp database that refers to a table in another ** database. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13788, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13881, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !(isView != 0) && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { _destroyTable(tls, pParse, pTab) } @@ -98024,11 +98560,11 @@ func _sqlite3ReadOnlyShadowTables(tls *libc.TLS, db uintptr) (r int32) { // ** Return true if it is not allowed to drop the given table // */ func _tableMayNotBeDropped(tls *libc.TLS, db uintptr, pTab uintptr) (r int32) { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6527, int32(7)) == 0 { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3420, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6591, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3484, int32(4)) == 0 { return 0 } - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7268, int32(10)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7393, int32(10)) == 0 { return 0 } return int32(1) @@ -98083,9 +98619,9 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6535 + v1 = __ccgo_ts + 6599 } else { - v1 = __ccgo_ts + 6068 + v1 = __ccgo_ts + 6132 } zTab = v1 zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName @@ -98118,18 +98654,18 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if _tableMayNotBeDropped(tls, db, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13855, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13948, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Ensure DROP TABLE is not used on a view, and DROP VIEW is not used ** on a table. */ if isView != 0 && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13883, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13976, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } if !(isView != 0) && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13917, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14010, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Generate code to remove the table from the schema table @@ -98139,11 +98675,12 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) if !(isView != 0) { - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11799, (*TTable)(unsafe.Pointer(pTab)).FzName) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11924, (*TTable)(unsafe.Pointer(pTab)).FzName) _sqlite3FkDropTable(tls, pParse, pName, pTab) } _sqlite3CodeDropTable(tls, pParse, pTab, iDb, isView) } + goto exit_drop_table exit_drop_table: ; _sqlite3SrcListDelete(tls, db, pName) @@ -98186,13 +98723,13 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p goto fk_end } if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13949, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14042, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) goto fk_end } nCol = int32(1) } else { if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14012, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14105, 0) goto fk_end } else { nCol = (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr @@ -98255,7 +98792,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p j++ } if j >= int32((*TTable)(unsafe.Pointer(p)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14106, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14199, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) goto fk_end } if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { @@ -98307,6 +98844,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p FpDfltList uintptr })(unsafe.Pointer(p + 64))).FpFKey = pFKey pFKey = uintptr(0) + goto fk_end fk_end: ; _sqlite3DbFree(tls, db, pFKey) @@ -98514,11 +99052,11 @@ func _sqlite3HasExplicitNulls(tls *libc.TLS, pParse uintptr, pList uintptr) (r i if int32(uint32(*(*uint16)(unsafe.Pointer(pList + 8 + uintptr(i)*32 + 16 + 4))&0x20>>5)) != 0 { sf = (*(*TExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32))).Ffg.FsortFlags if int32(sf) == 0 || int32(sf) == int32(3) { - v2 = __ccgo_ts + 14152 + v2 = __ccgo_ts + 14245 } else { - v2 = __ccgo_ts + 14158 + v2 = __ccgo_ts + 14251 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14163, libc.VaList(bp+8, v2)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14256, libc.VaList(bp+8, v2)) return int32(1) } goto _1 @@ -98596,7 +99134,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = int32(1) } } - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14191, *(*uintptr)(unsafe.Pointer(bp + 96))) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14284, *(*uintptr)(unsafe.Pointer(bp + 96))) if _sqlite3FixSrcList(tls, bp, pTblName) != 0 { /* Because the parser constructs pTblName from a single identifier, ** sqlite3FixSrcList can never fail. */ @@ -98606,7 +99144,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } if iDb == int32(1) && (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema != (*TTable)(unsafe.Pointer(pTab)).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14197, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14290, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { @@ -98620,16 +99158,16 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6527, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14247, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6591, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14340, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14275, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14368, 0) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14300, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14393, 0) goto exit_create_index } /* @@ -98650,19 +99188,19 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if zName == uintptr(0) { goto exit_create_index } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14191, (*TTable)(unsafe.Pointer(pTab)).FzName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14284, (*TTable)(unsafe.Pointer(pTab)).FzName) { goto exit_create_index } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if !((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0) { if _sqlite3FindTable(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14334, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14427, libc.VaList(bp+136, zName)) goto exit_create_index } } if _sqlite3FindIndex(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { if !(ifNotExist != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14368, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14461, libc.VaList(bp+136, zName)) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) _sqlite3ForceNotReadOnly(tls, pParse) @@ -98683,7 +99221,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pLoop = (*TIndex)(unsafe.Pointer(pLoop)).FpNext n++ } - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14392, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14485, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) if zName == uintptr(0) { goto exit_create_index } @@ -98701,9 +99239,9 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { zDb = (*TDb)(unsafe.Pointer(pDb)).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6535 + v2 = __ccgo_ts + 6599 } else { - v2 = __ccgo_ts + 6068 + v2 = __ccgo_ts + 6132 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v2, uintptr(0), zDb) != 0 { goto exit_create_index @@ -98731,7 +99269,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } _sqlite3ExprListSetSortOrder(tls, pList, sortOrder, -int32(1)) } else { - _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14191) + _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14284) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { goto exit_create_index } @@ -98815,7 +99353,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pCExpr = _sqlite3ExprSkipCollate(tls, (*TExprList_item)(unsafe.Pointer(pListItem)).FpExpr) if int32((*TExpr)(unsafe.Pointer(pCExpr)).Fop) != int32(TK_COLUMN) { if pTab == (*TParse)(unsafe.Pointer(pParse)).FpNewTable { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14415, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14508, 0) goto exit_create_index } if (*TIndex)(unsafe.Pointer(pIndex)).FaColExpr == uintptr(0) { @@ -98962,7 +99500,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u ** explicitly specified behavior for the index. */ if !(int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) || int32((*TIndex)(unsafe.Pointer(pIndex)).FonError) == int32(OE_Default)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14476, libc.VaList(bp+136, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14569, libc.VaList(bp+136, 0)) } if int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) { (*TIndex)(unsafe.Pointer(pIdx)).FonError = (*TIndex)(unsafe.Pointer(pIndex)).FonError @@ -98992,8 +99530,8 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != uintptr(0) { (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14518, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125123)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14611, 0) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125741)) goto exit_create_index } } @@ -99033,11 +99571,11 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* A named index with an explicit CREATE INDEX statement */ if onError == OE_None { - v13 = __ccgo_ts + 1650 + v13 = __ccgo_ts + 1664 } else { - v13 = __ccgo_ts + 14535 + v13 = __ccgo_ts + 14628 } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14543, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14636, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) } else { /* An automatic index created by a PRIMARY KEY or UNIQUE constraint */ /* zStmt = sqlite3MPrintf(""); */ @@ -99045,7 +99583,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* Add an entry in sqlite_schema for this index */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14563, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14656, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) _sqlite3DbFree(tls, db, zStmt) /* Fill the index with data and reparse the schema. Code an OP_Expire ** to invalidate all pre-compiled statements. @@ -99053,7 +99591,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != 0 { _sqlite3RefillIndex(tls, pParse, pIndex, iMem) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14622, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14715, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Expire), 0, int32(1)) } _sqlite3VdbeJumpHere(tls, v, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum)) @@ -99071,6 +99609,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } } /* Clean up before exiting */ + goto exit_create_index exit_create_index: ; if pIndex != 0 { @@ -99215,7 +99754,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pIndex = _sqlite3FindIndex(tls, db, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzName, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) if pIndex == uintptr(0) { if !(ifExists != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14649, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14742, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) _sqlite3ForceNotReadOnly(tls, pParse) @@ -99224,7 +99763,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in goto exit_drop_index } if int32(uint32(*(*uint16)(unsafe.Pointer(pIndex + 100))&0x3>>0)) != SQLITE_IDXTYPE_APPDEF { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14667, libc.VaList(bp+8, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14760, libc.VaList(bp+8, 0)) goto exit_drop_index } iDb = _sqlite3SchemaToIndex(tls, db, (*TIndex)(unsafe.Pointer(pIndex)).FpSchema) @@ -99232,9 +99771,9 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pTab = (*TIndex)(unsafe.Pointer(pIndex)).FpTable zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6535 + v1 = __ccgo_ts + 6599 } else { - v1 = __ccgo_ts + 6068 + v1 = __ccgo_ts + 6132 } zTab = v1 if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_DELETE), zTab, uintptr(0), zDb) != 0 { @@ -99250,12 +99789,13 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in v = _sqlite3GetVdbe(tls, pParse) if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14740, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11795, (*TIndex)(unsafe.Pointer(pIndex)).FzName) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14833, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11920, (*TIndex)(unsafe.Pointer(pIndex)).FzName) _sqlite3ChangeCookie(tls, pParse, iDb) _destroyRootPage(tls, pParse, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum), iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropIndex), iDb, 0, 0, (*TIndex)(unsafe.Pointer(pIndex)).FzName, 0) } + goto exit_drop_index exit_drop_index: ; _sqlite3SrcListDelete(tls, db, pName) @@ -99441,7 +99981,7 @@ func _sqlite3SrcListEnlarge(tls *libc.TLS, pParse uintptr, pSrc uintptr, nExtra nAlloc = int64(2)*int64((*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) + int64(nExtra) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc+nExtra >= int32(SQLITE_MAX_SRCLIST) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14800, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14893, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) return uintptr(0) } if nAlloc > int64(SQLITE_MAX_SRCLIST) { @@ -99673,11 +100213,11 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa db = (*TParse)(unsafe.Pointer(pParse)).Fdb if !(p != 0) && pOnUsing != uintptr(0) && ((*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 || (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpUsing != 0) { if (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 { - v1 = __ccgo_ts + 14836 + v1 = __ccgo_ts + 14929 } else { - v1 = __ccgo_ts + 14839 + v1 = __ccgo_ts + 14932 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14845, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14938, libc.VaList(bp+8, v1)) goto append_from_error } p = _sqlite3SrcListAppend(tls, pParse, p, pTable, pDatabase) @@ -99714,6 +100254,7 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa } } return p + goto append_from_error append_from_error: ; _sqlite3ClearOnOrUsing(tls, db, pOnUsing) @@ -99874,7 +100415,7 @@ func _sqlite3BeginTransaction(tls *libc.TLS, pParse uintptr, type1 int32) { var eTxnType, i int32 _, _, _, _, _ = db, eTxnType, i, pBt, v db = (*TParse)(unsafe.Pointer(pParse)).Fdb - if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14881, uintptr(0), uintptr(0)) != 0 { + if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14974, uintptr(0), uintptr(0)) != 0 { return } v = _sqlite3GetVdbe(tls, pParse) @@ -99921,9 +100462,9 @@ func _sqlite3EndTransaction(tls *libc.TLS, pParse uintptr, eType int32) { _, _, _ = isRollback, v, v1 isRollback = libc.BoolInt32(eType == int32(TK_ROLLBACK)) if isRollback != 0 { - v1 = __ccgo_ts + 14887 + v1 = __ccgo_ts + 14980 } else { - v1 = __ccgo_ts + 14896 + v1 = __ccgo_ts + 14989 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), v1, uintptr(0), uintptr(0)) != 0 { return @@ -99955,9 +100496,9 @@ func _sqlite3Savepoint(tls *libc.TLS, pParse uintptr, op int32, pName uintptr) { } var _az = [3]uintptr{ - 0: __ccgo_ts + 14881, - 1: __ccgo_ts + 14903, - 2: __ccgo_ts + 14887, + 0: __ccgo_ts + 14974, + 1: __ccgo_ts + 14996, + 2: __ccgo_ts + 14980, } // C documentation @@ -99977,7 +100518,7 @@ func _sqlite3OpenTempDatabase(tls *libc.TLS, pParse uintptr) (r int32) { if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt == uintptr(0) && !((*TParse)(unsafe.Pointer(pParse)).Fexplain != 0) { rc = _sqlite3BtreeOpen(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), db, bp, 0, _flags) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14911, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15004, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = rc return int32(1) } @@ -100161,7 +100702,7 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable _sqlite3StrAccumInit(tls, bp, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), 0, *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136))) if (*TIndex)(unsafe.Pointer(pIdx)).FaColExpr != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+14981, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+15074, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) } else { j = 0 for { @@ -100170,10 +100711,10 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx } zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)))*16))).FzCnName if j != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+14992, int32(2)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+15085, int32(2)) } Xsqlite3_str_appendall(tls, bp, (*TTable)(unsafe.Pointer(pTab)).FzName) - Xsqlite3_str_append(tls, bp, __ccgo_ts+1663, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+1677, int32(1)) Xsqlite3_str_appendall(tls, bp, zCol) goto _1 _1: @@ -100202,10 +100743,10 @@ func _sqlite3RowidConstraint(tls *libc.TLS, pParse uintptr, onError int32, pTab var zMsg uintptr _, _ = rc, zMsg if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12383, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12508, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(6)< libc.BoolInt32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15111, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15204, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } return 0 } @@ -101308,11 +101849,11 @@ func _sqlite3IsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr, pTrigger ui bp := tls.Alloc(16) defer tls.Free(16) if _tabIsReadOnly(tls, pParse, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15144, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15237, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && (pTrigger == uintptr(0) || (*TTrigger)(unsafe.Pointer(pTrigger)).FbReturning != 0 && (*TTrigger)(unsafe.Pointer(pTrigger)).FpNext == uintptr(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15173, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15266, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -101715,8 +102256,9 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** invoke the callback function. */ if memCnt != 0 { - _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15211) + _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15304) } + goto delete_from_cleanup delete_from_cleanup: ; _sqlite3AuthContextPop(tls, bp+8) @@ -101862,7 +102404,7 @@ func _sqlite3GenerateRowDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, pTri v3 = 0 } _sqlite3VdbeAddOp2(tls, v, int32(OP_Delete), iDataCur, v3) - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11584) { + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11709) { _sqlite3VdbeAppendP4(tls, v, pTab, -int32(5)) } if int32(eMode) != ONEPASS_OFF { @@ -102166,11 +102708,11 @@ func _typeofFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } var _azType2 = [5]uintptr{ - 0: __ccgo_ts + 6308, - 1: __ccgo_ts + 6303, - 2: __ccgo_ts + 8199, - 3: __ccgo_ts + 8194, - 4: __ccgo_ts + 1636, + 0: __ccgo_ts + 6372, + 1: __ccgo_ts + 6367, + 2: __ccgo_ts + 8324, + 3: __ccgo_ts + 8319, + 4: __ccgo_ts + 1650, } // C documentation @@ -102284,7 +102826,7 @@ func _absFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { /* IMP: R-31676-45509 If X is the integer -9223372036854775808 ** then abs(X) throws an integer overflow error since there is no ** equivalent positive 64-bit two complement value. */ - Xsqlite3_result_error(tls, context, __ccgo_ts+15224, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15317, -int32(1)) return } iVal = -iVal @@ -102379,11 +102921,13 @@ func _instrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } Xsqlite3_result_int(tls, context, N) + goto endInstr endInstr: ; Xsqlite3_value_free(tls, pC1) Xsqlite3_value_free(tls, pC2) return + goto endInstrOOM endInstrOOM: ; Xsqlite3_result_error_nomem(tls, context) @@ -102597,7 +103141,7 @@ func _roundFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } *(*float64)(unsafe.Pointer(bp)) = float64(int64(*(*float64)(unsafe.Pointer(bp)) + v1)) } else { - zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15241, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) + zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15334, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) if zBuf == uintptr(0) { Xsqlite3_result_error_nomem(tls, context) return @@ -103177,7 +103721,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { */ nPat = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) if nPat > *(*int32)(unsafe.Pointer(db + 136 + 8*4)) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15247, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15340, -int32(1)) return } if argc == int32(3) { @@ -103189,7 +103733,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { return } if _sqlite3Utf8CharLen(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), -int32(1)) != int32(1) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15280, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15373, -int32(1)) return } escape = _sqlite3Utf8Read(tls, bp+8) @@ -103271,7 +103815,7 @@ func _errlogFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { defer tls.Free(16) _ = argc _ = context - Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) + Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) } // C documentation @@ -103358,17 +103902,17 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_FLOAT): r1 = Xsqlite3_value_double(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15325, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15418, libc.VaList(bp+16, r1)) zVal = Xsqlite3_str_value(tls, pStr) if zVal != 0 { _sqlite3AtoF(tls, zVal, bp, int32((*TStrAccum)(unsafe.Pointer(pStr)).FnChar), uint8(SQLITE_UTF8)) if r1 != *(*float64)(unsafe.Pointer(bp)) { Xsqlite3_str_reset(tls, pStr) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15333, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15426, libc.VaList(bp+16, r1)) } } case int32(SQLITE_INTEGER): - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1406, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1425, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) case int32(SQLITE_BLOB): zBlob = Xsqlite3_value_blob(tls, pValue) nBlob = int64(Xsqlite3_value_bytes(tls, pValue)) @@ -103396,9 +103940,9 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { } case int32(SQLITE_TEXT): zArg = Xsqlite3_value_text(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15341, libc.VaList(bp+16, zArg)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15434, libc.VaList(bp+16, zArg)) default: - Xsqlite3_str_append(tls, pStr, __ccgo_ts+1651, int32(4)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+1665, int32(4)) break } } @@ -103635,7 +104179,7 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { var v3 uint32 var _ /* zHex at bp+0 */ uintptr _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, ch, d, nHex, nPass, p, pBlob, zPass, v1, v2, v3, v4, v5, v6 - zPass = __ccgo_ts + 1650 + zPass = __ccgo_ts + 1664 nPass = 0 *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) nHex = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) @@ -103687,10 +104231,12 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { *(*Tu8)(unsafe.Pointer(v6)) = uint8(int32(_sqlite3HexToInt(tls, int32(c)))< 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fapprox != 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fovrfl != 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+15224, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15317, -int32(1)) } else { if !(_sqlite3IsOverflow(tls, (*TSumCtx)(unsafe.Pointer(p)).FrErr) != 0) { Xsqlite3_result_double(tls, context, (*TSumCtx)(unsafe.Pointer(p)).FrSum+(*TSumCtx)(unsafe.Pointer(p)).FrErr) @@ -104698,7 +105244,7 @@ func _groupConcatValue(tls *libc.TLS, context uintptr) { func _sqlite3RegisterPerConnectionBuiltinFunctions(tls *libc.TLS, db uintptr) { var rc int32 _ = rc - rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15349, int32(2)) + rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15442, int32(2)) if rc == int32(SQLITE_NOMEM) { _sqlite3OomFault(tls, db) } @@ -104727,8 +105273,8 @@ func _sqlite3RegisterLikeFunctions(tls *libc.TLS, db uintptr, caseSensitive int3 if !(nArg <= int32(3)) { break } - _sqlite3CreateFunc(tls, db, __ccgo_ts+15355, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15355, nArg, uint8(SQLITE_UTF8), uint8(0)) + _sqlite3CreateFunc(tls, db, __ccgo_ts+15448, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15448, nArg, uint8(SQLITE_UTF8), uint8(0)) *(*Tu32)(unsafe.Pointer(pDef + 4)) |= uint32(flags) *(*Tu32)(unsafe.Pointer(pDef + 4)) &= uint32(^libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)) goto _1 @@ -105034,562 +105580,562 @@ var _aBuiltinFunc = [110]TFuncDef{ FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_implies_nonnull_row))), - FzName: __ccgo_ts + 15360, + FzName: __ccgo_ts + 15453, }, 1: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_compare))), - FzName: __ccgo_ts + 15380, + FzName: __ccgo_ts + 15473, }, 2: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_implies_expr))), - FzName: __ccgo_ts + 15393, + FzName: __ccgo_ts + 15486, }, 3: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_affinity))), - FzName: __ccgo_ts + 15411, + FzName: __ccgo_ts + 15504, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15420, + FzName: __ccgo_ts + 15513, }, 5: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15428, + FzName: __ccgo_ts + 15521, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15428, + FzName: __ccgo_ts + 15521, }, 7: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15443, + FzName: __ccgo_ts + 15536, }, 8: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15469, + FzName: __ccgo_ts + 15562, }, 9: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15494, + FzName: __ccgo_ts + 15587, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15503, + FzName: __ccgo_ts + 15596, }, 11: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15514, + FzName: __ccgo_ts + 15607, }, 12: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_sqlite_offset))), - FzName: __ccgo_ts + 15521, + FzName: __ccgo_ts + 15614, }, 13: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15535, + FzName: __ccgo_ts + 15628, }, 14: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15535, + FzName: __ccgo_ts + 15628, }, 15: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15541, + FzName: __ccgo_ts + 15634, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15541, + FzName: __ccgo_ts + 15634, }, 17: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15547, + FzName: __ccgo_ts + 15640, }, 18: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15547, + FzName: __ccgo_ts + 15640, }, 19: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15552, + FzName: __ccgo_ts + 15645, }, 20: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15552, + FzName: __ccgo_ts + 15645, }, 21: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15552, + FzName: __ccgo_ts + 15645, }, 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15556, + FzName: __ccgo_ts + 15649, }, 23: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15556, + FzName: __ccgo_ts + 15649, }, 24: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15556, + FzName: __ccgo_ts + 15649, }, 25: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15560, + FzName: __ccgo_ts + 15653, }, 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15567, + FzName: __ccgo_ts + 15660, }, 27: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_LENGTH)), - FzName: __ccgo_ts + 15575, + FzName: __ccgo_ts + 15668, }, 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_BYTELEN)), - FzName: __ccgo_ts + 15582, + FzName: __ccgo_ts + 15675, }, 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15595, + FzName: __ccgo_ts + 15688, }, 30: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15601, + FzName: __ccgo_ts + 15694, }, 31: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15608, + FzName: __ccgo_ts + 15701, }, 32: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15615, + FzName: __ccgo_ts + 15708, }, 33: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15623, + FzName: __ccgo_ts + 15716, }, 34: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15628, + FzName: __ccgo_ts + 15721, }, 35: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15632, + FzName: __ccgo_ts + 15725, }, 36: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15632, + FzName: __ccgo_ts + 15725, }, 37: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15638, + FzName: __ccgo_ts + 15731, }, 38: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15644, + FzName: __ccgo_ts + 15737, }, 39: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15650, + FzName: __ccgo_ts + 15743, }, 40: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15654, + FzName: __ccgo_ts + 15747, }, 41: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15654, + FzName: __ccgo_ts + 15747, }, 42: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15660, + FzName: __ccgo_ts + 15753, }, 43: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15660, + FzName: __ccgo_ts + 15753, }, 44: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15667, + FzName: __ccgo_ts + 15760, }, 45: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15667, + FzName: __ccgo_ts + 15760, }, 46: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15667, + FzName: __ccgo_ts + 15760, }, 47: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15677, + FzName: __ccgo_ts + 15770, }, 48: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15684, + FzName: __ccgo_ts + 15777, }, 49: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15691, + FzName: __ccgo_ts + 15784, }, 50: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15702, + FzName: __ccgo_ts + 15795, }, 51: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15709, + FzName: __ccgo_ts + 15802, }, 52: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15724, + FzName: __ccgo_ts + 15817, }, 53: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15741, + FzName: __ccgo_ts + 15834, }, 54: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15752, + FzName: __ccgo_ts + 15845, }, 55: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15758, + FzName: __ccgo_ts + 15851, }, 56: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15776, + FzName: __ccgo_ts + 15869, }, 57: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15784, + FzName: __ccgo_ts + 15877, }, 58: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15798, + FzName: __ccgo_ts + 15891, }, 59: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15806, + FzName: __ccgo_ts + 15899, }, 60: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15815, + FzName: __ccgo_ts + 15908, }, 61: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15815, + FzName: __ccgo_ts + 15908, }, 62: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15822, + FzName: __ccgo_ts + 15915, }, 63: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15822, + FzName: __ccgo_ts + 15915, }, 64: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15832, + FzName: __ccgo_ts + 15925, }, 65: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15836, + FzName: __ccgo_ts + 15929, }, 66: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15842, + FzName: __ccgo_ts + 15935, }, 67: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_COUNT) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15846, + FzName: __ccgo_ts + 15939, }, 68: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15846, + FzName: __ccgo_ts + 15939, }, 69: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15852, + FzName: __ccgo_ts + 15945, }, 70: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15852, + FzName: __ccgo_ts + 15945, }, 71: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15865, + FzName: __ccgo_ts + 15958, }, 72: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE) | libc.Int32FromInt32(SQLITE_FUNC_CASE)), FpUserData: uintptr(unsafe.Pointer(&_globInfo)), - FzName: __ccgo_ts + 15876, + FzName: __ccgo_ts + 15969, }, 73: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15355, + FzName: __ccgo_ts + 15448, }, 74: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15355, + FzName: __ccgo_ts + 15448, }, 75: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6732, + FzName: __ccgo_ts + 6796, }, 76: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6732, + FzName: __ccgo_ts + 6796, }, 77: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15881, + FzName: __ccgo_ts + 15974, }, 78: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15886, + FzName: __ccgo_ts + 1237, }, 79: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15894, + FzName: __ccgo_ts + 1245, }, 80: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15900, + FzName: __ccgo_ts + 15979, }, 81: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15906, + FzName: __ccgo_ts + 15985, }, 82: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15909, + FzName: __ccgo_ts + 15988, }, 83: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15913, + FzName: __ccgo_ts + 15992, }, 84: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15919, + FzName: __ccgo_ts + 15998, }, 85: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15909, + FzName: __ccgo_ts + 15988, }, 86: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15924, + FzName: __ccgo_ts + 16003, }, 87: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15928, + FzName: __ccgo_ts + 16007, }, 88: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15932, + FzName: __ccgo_ts + 16011, }, 89: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15938, + FzName: __ccgo_ts + 16017, }, 90: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15942, + FzName: __ccgo_ts + 16021, }, 91: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15947, + FzName: __ccgo_ts + 16026, }, 92: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15952, + FzName: __ccgo_ts + 16031, }, 93: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15957, + FzName: __ccgo_ts + 16036, }, 94: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15963, + FzName: __ccgo_ts + 16042, }, 95: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15967, + FzName: __ccgo_ts + 16046, }, 96: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15971, + FzName: __ccgo_ts + 16050, }, 97: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15975, + FzName: __ccgo_ts + 16054, }, 98: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15980, + FzName: __ccgo_ts + 16059, }, 99: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15985, + FzName: __ccgo_ts + 16064, }, 100: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15990, + FzName: __ccgo_ts + 16069, }, 101: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15996, + FzName: __ccgo_ts + 16075, }, 102: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16002, + FzName: __ccgo_ts + 16081, }, 103: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16008, + FzName: __ccgo_ts + 16087, }, 104: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16013, + FzName: __ccgo_ts + 16092, }, 105: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16021, + FzName: __ccgo_ts + 16100, }, 106: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16029, + FzName: __ccgo_ts + 16108, }, 107: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16032, + FzName: __ccgo_ts + 16111, }, 108: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 6732, + FzName: __ccgo_ts + 6796, }, 109: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_iif))), - FzName: __ccgo_ts + 16037, + FzName: __ccgo_ts + 16116, }, } @@ -106066,7 +106612,7 @@ func _sqlite3FkLocateIndex(tls *libc.TLS, pParse uintptr, pParent uintptr, pFKey } if !(pIdx != 0) { if !((*TParse)(unsafe.Pointer(pParse)).FdisableTriggers != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16041, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16120, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) } _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiCol) return int32(1) @@ -107177,11 +107723,11 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr break } *(*TToken)(unsafe.Pointer(bp + 16)) = TToken{ - Fz: __ccgo_ts + 6598, + Fz: __ccgo_ts + 6662, Fn: uint32(3), } /* Literal "old" token */ *(*TToken)(unsafe.Pointer(bp + 32)) = TToken{ - Fz: __ccgo_ts + 6594, + Fz: __ccgo_ts + 6658, Fn: uint32(3), } /* tFromCol = OLD.tToCol */ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -107245,7 +107791,7 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr nFrom = _sqlite3Strlen30(tls, zFrom) if action == int32(OE_Restrict) { iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5227) + pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5291) if pRaise != 0 { (*TExpr)(unsafe.Pointer(pRaise)).FaffExpr = int8(OE_Abort) } @@ -107826,7 +108372,7 @@ func _sqlite3ComputeGeneratedColumns(tls *libc.TLS, pParse uintptr, iRegStore in } } if pRedo != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8164, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8289, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) } (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 } @@ -108087,6 +108633,219 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { } } +// C documentation +// +// /* +// ** If argument pVal is a Select object returned by an sqlite3MultiValues() +// ** that was able to use the co-routine optimization, finish coding the +// ** co-routine. +// */ +func _sqlite3MultiValuesEnd(tls *libc.TLS, pParse uintptr, pVal uintptr) { + var pItem uintptr + _ = pItem + if pVal != 0 && (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pVal)).FpSrc)).FnSrc > 0 { + pItem = (*TSelect)(unsafe.Pointer(pVal)).FpSrc + 8 + _sqlite3VdbeEndCoroutine(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn) + _sqlite3VdbeJumpHere(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FaddrFillSub-int32(1)) + } +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are constant. +// */ +func _exprListIsConstant(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + if 0 == _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are both constant and have no affinity. +// */ +func _exprListIsNoAffinity(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + var pExpr uintptr + _, _ = ii, pExpr + if _exprListIsConstant(tls, pParse, pRow) == 0 { + return 0 + } + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + pExpr = (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr + if 0 != int32(_sqlite3ExprAffinity(tls, pExpr)) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** This function is called by the parser for the second and subsequent +// ** rows of a multi-row VALUES clause. Argument pLeft is the part of +// ** the VALUES clause already parsed, argument pRow is the vector of values +// ** for the new row. The Select object returned represents the complete +// ** VALUES clause, including the new row. +// ** +// ** There are two ways in which this may be achieved - by incremental +// ** coding of a co-routine (the "co-routine" method) or by returning a +// ** Select object equivalent to the following (the "UNION ALL" method): +// ** +// ** "pLeft UNION ALL SELECT pRow" +// ** +// ** If the VALUES clause contains a lot of rows, this compound Select +// ** object may consume a lot of memory. +// ** +// ** When the co-routine method is used, each row that will be returned +// ** by the VALUES clause is coded into part of a co-routine as it is +// ** passed to this function. The returned Select object is equivalent to: +// ** +// ** SELECT * FROM ( +// ** Select object to read co-routine +// ** ) +// ** +// ** The co-routine method is used in most cases. Exceptions are: +// ** +// ** a) If the current statement has a WITH clause. This is to avoid +// ** statements like: +// ** +// ** WITH cte AS ( VALUES('x'), ('y') ... ) +// ** SELECT * FROM cte AS a, cte AS b; +// ** +// ** This will not work, as the co-routine uses a hard-coded register +// ** for its OP_Yield instructions, and so it is not possible for two +// ** cursors to iterate through it concurrently. +// ** +// ** b) The schema is currently being parsed (i.e. the VALUES clause is part +// ** of a schema item like a VIEW or TRIGGER). In this case there is no VM +// ** being generated when parsing is taking place, and so generating +// ** a co-routine is not possible. +// ** +// ** c) There are non-constant expressions in the VALUES clause (e.g. +// ** the VALUES clause is part of a correlated sub-query). +// ** +// ** d) One or more of the values in the first row of the VALUES clause +// ** has an affinity (i.e. is a CAST expression). This causes problems +// ** because the complex rules SQLite uses (see function +// ** sqlite3SubqueryColumnTypes() in select.c) to determine the effective +// ** affinity of such a column for all rows require access to all values in +// ** the column simultaneously. +// */ +func _sqlite3MultiValues(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRow uintptr) (r uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var f, v1 int32 + var p, pRet, pSelect, v, v2 uintptr + var _ /* dest at bp+0 */ TSelectDest + _, _, _, _, _, _, _ = f, p, pRet, pSelect, v, v1, v2 + if (*TParse)(unsafe.Pointer(pParse)).FbHasWith != 0 || (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy != 0 || _exprListIsConstant(tls, pParse, pRow) == 0 || (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 && _exprListIsNoAffinity(tls, pParse, (*TSelect)(unsafe.Pointer(pLeft)).FpEList) == 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { + /* The co-routine method cannot be used. Fall back to UNION ALL. */ + pSelect = uintptr(0) + f = libc.Int32FromInt32(SF_Values) | libc.Int32FromInt32(SF_MultiValue) + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc != 0 { + _sqlite3MultiValuesEnd(tls, pParse, pLeft) + f = int32(SF_Values) + } else { + if (*TSelect)(unsafe.Pointer(pLeft)).FpPrior != 0 { + /* In this case set the SF_MultiValue flag only if it was set on pLeft */ + f = int32(uint32(f) & (*TSelect)(unsafe.Pointer(pLeft)).FselFlags) + } + } + pSelect = _sqlite3SelectNew(tls, pParse, pRow, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(f), uintptr(0)) + *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) + if pSelect != 0 { + (*TSelect)(unsafe.Pointer(pSelect)).Fop = uint8(TK_ALL) + (*TSelect)(unsafe.Pointer(pSelect)).FpPrior = pLeft + pLeft = pSelect + } + } else { + p = uintptr(0) /* SrcItem that reads from co-routine */ + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 { + /* Co-routine has not yet been started and the special Select object + ** that accesses the co-routine has not yet been created. This block + ** does both those things. */ + v = _sqlite3GetVdbe(tls, pParse) + pRet = _sqlite3SelectNew(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) + /* Ensure the database schema has been read. This is to ensure we have + ** the correct text encoding. */ + if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmDbFlags&uint32(DBFLAG_SchemaKnownOk) == uint32(0) { + _sqlite3ReadSchema(tls, pParse) + } + if pRet != 0 { + (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pRet)).FpSrc)).FnSrc = int32(1) + (*TSelect)(unsafe.Pointer(pRet)).FpPrior = (*TSelect)(unsafe.Pointer(pLeft)).FpPrior + (*TSelect)(unsafe.Pointer(pRet)).Fop = (*TSelect)(unsafe.Pointer(pLeft)).Fop + (*TSelect)(unsafe.Pointer(pLeft)).FpPrior = uintptr(0) + (*TSelect)(unsafe.Pointer(pLeft)).Fop = uint8(TK_SELECT) + p = (*TSelect)(unsafe.Pointer(pRet)).FpSrc + 8 + (*TSrcItem)(unsafe.Pointer(p)).FpSelect = pLeft + libc.SetBitFieldPtr16Uint32(p+60+4, libc.Uint32FromInt32(1), 5, 0x20) + (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + v2 = pParse + 56 + *(*int32)(unsafe.Pointer(v2))++ + v1 = *(*int32)(unsafe.Pointer(v2)) + (*TSrcItem)(unsafe.Pointer(p)).FregReturn = v1 + (*TSrcItem)(unsafe.Pointer(p)).FiCursor = -int32(1) + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1)) = uint32(2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn, 0, (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub) + _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + /* Allocate registers for the output of the co-routine. Do so so + ** that there are two unused registers immediately before those + ** used by the co-routine. This allows the code in sqlite3Insert() + ** to use these registers directly, instead of copying the output + ** of the co-routine to a separate array for processing. */ + (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(3) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpEList)).FnExpr + *(*int32)(unsafe.Pointer(pParse + 56)) += int32(2) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst + *(*Tu32)(unsafe.Pointer(pLeft + 4)) |= uint32(SF_MultiValue) + _sqlite3Select(tls, pParse, pLeft, bp) + (*TSrcItem)(unsafe.Pointer(p)).FregResult = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst + pLeft = pRet + } + } else { + p = (*TSelect)(unsafe.Pointer(pLeft)).FpSrc + 8 + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1))++ + } + if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { + if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p)).FpSelect)).FpEList)).FnExpr != (*TExprList)(unsafe.Pointer(pRow)).FnExpr { + _sqlite3SelectWrongNumTermsError(tls, pParse, (*TSrcItem)(unsafe.Pointer(p)).FpSelect) + } else { + _sqlite3ExprCodeExprList(tls, pParse, pRow, (*TSrcItem)(unsafe.Pointer(p)).FregResult, 0, uint8(0)) + _sqlite3VdbeAddOp1(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Yield), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + } + } + _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pRow) + } + return pLeft +} + // C documentation // // /* @@ -108189,27 +108948,27 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uintptr, pColumn uintptr, onError int32, pUpsert uintptr) { bp := tls.Alloc(160) defer tls.Free(160) - var aRegIdx, db, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, v, v13, v16, v18, v6, v9 uintptr - var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v12, v15, v17, v19, v23, v24, v5, v7, v8 int32 + var aRegIdx, db, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, v, v10, v14, v17, v19, v7 uintptr + var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v13, v16, v18, v20, v24, v25, v5, v6, v8, v9 int32 var appendFlag, bIdListInOrder, useTempTable, withoutRowid Tu8 - var colFlags, v21 Tu32 + var colFlags, v22 Tu32 var _ /* dest at bp+8 */ TSelectDest var _ /* iDataCur at bp+0 */ int32 var _ /* iIdxCur at bp+4 */ int32 var _ /* isReplace at bp+112 */ int32 var _ /* sNC at bp+56 */ TNameContext var _ /* tmask at bp+48 */ int32 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v12, v13, v15, v16, v17, v18, v19, v21, v23, v24, v5, v6, v7, v8, v9 /* Number of columns in the data */ - nHidden = 0 /* Number of hidden columns if TABLE is virtual */ - *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ - *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ - ipkColumn = -int32(1) /* Label for the end of the insertion loop */ - srcTab = 0 /* Data comes from this temporary cursor if >=0 */ - addrInsTop = 0 /* Jump to label "D" */ - addrCont = 0 /* Index of database holding TABLE */ - useTempTable = uint8(0) /* Store SELECT results in intermediate table */ - appendFlag = uint8(0) /* True if IDLIST is in table order */ - pList = uintptr(0) /* Register in which to store next column */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v10, v13, v14, v16, v17, v18, v19, v20, v22, v24, v25, v5, v6, v7, v8, v9 /* Number of columns in the data */ + nHidden = 0 /* Number of hidden columns if TABLE is virtual */ + *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ + *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ + ipkColumn = -int32(1) /* Label for the end of the insertion loop */ + srcTab = 0 /* Data comes from this temporary cursor if >=0 */ + addrInsTop = 0 /* Jump to label "D" */ + addrCont = 0 /* Index of database holding TABLE */ + useTempTable = uint8(0) /* Store SELECT results in intermediate table */ + appendFlag = uint8(0) /* True if IDLIST is in table order */ + pList = uintptr(0) /* Register in which to store next column */ /* Register allocations */ regFromSelect = 0 /* Base register for data coming from SELECT */ regAutoinc = 0 /* Register holding the AUTOINCREMENT counter */ @@ -108347,7 +109106,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_STORED)|libc.Int32FromInt32(COLFLAG_VIRTUAL)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16086, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16165, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto insert_cleanup } break @@ -108362,7 +109121,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i bIdListInOrder = uint8(0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16127, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16206, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto insert_cleanup } @@ -108379,28 +109138,46 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** co-routine is the common header to the 3rd and 4th templates. */ if pSelect != 0 { /* Result code */ - v6 = pParse + 56 - *(*int32)(unsafe.Pointer(v6))++ - v5 = *(*int32)(unsafe.Pointer(v6)) - regYield = v5 - addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) - _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) - _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) - if bIdListInOrder != 0 { - v7 = regData - } else { - v7 = 0 - } - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v7 - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) - rc = _sqlite3Select(tls, pParse, pSelect, bp+8) - regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst - if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { - goto insert_cleanup + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc)).FnSrc == int32(1) && int32(uint32(*(*uint16)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + 60 + 4))&0x20>>5)) != 0 && (*TSelect)(unsafe.Pointer(pSelect)).FpPrior == uintptr(0) { + pItem = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSDParm = (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn + regFromSelect = (*TSrcItem)(unsafe.Pointer(pItem)).FregResult + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FpEList)).FnExpr + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+16238, libc.VaList(bp+128, pItem)) + if bIdListInOrder != 0 && nColumn == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { + regData = regFromSelect + regRowid = regData - int32(1) + if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { + v5 = int32(1) + } else { + v5 = 0 + } + regIns = regRowid - v5 + } + } else { + v7 = pParse + 56 + *(*int32)(unsafe.Pointer(v7))++ + v6 = *(*int32)(unsafe.Pointer(v7)) /* Top of the co-routine */ + regYield = v6 + addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) + _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) + if bIdListInOrder != 0 { + v8 = regData + } else { + v8 = 0 + } + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) + rc = _sqlite3Select(tls, pParse, pSelect, bp+8) + regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst + if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { + goto insert_cleanup + } + _sqlite3VdbeEndCoroutine(tls, v, regYield) + _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr } - _sqlite3VdbeEndCoroutine(tls, v, regYield) - _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ - nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr /* Set useTempTable to TRUE if the result of the SELECT statement ** should be written into a temporary table (template 4). Set to ** FALSE if each output row of the SELECT can be written directly into @@ -108414,10 +109191,10 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin useTempTable = uint8(1) } if useTempTable != 0 { /* Label "L" */ - v9 = pParse + 52 - v8 = *(*int32)(unsafe.Pointer(v9)) - *(*int32)(unsafe.Pointer(v9))++ - srcTab = v8 + v10 = pParse + 52 + v9 = *(*int32)(unsafe.Pointer(v10)) + *(*int32)(unsafe.Pointer(v10))++ + srcTab = v9 regRec = _sqlite3GetTempReg(tls, pParse) regTempRowid = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp2(tls, v, int32(OP_OpenEphemeral), srcTab, nColumn) @@ -108458,8 +109235,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { ipkColumn-- } - goto _10 - _10: + goto _11 + _11: ; i-- } @@ -108476,28 +109253,28 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_NOINSERT) != 0 { nHidden++ } - goto _11 - _11: + goto _12 + _12: ; i++ } } if nColumn != int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16159, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16246, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) goto insert_cleanup } } if pColumn != uintptr(0) && nColumn != (*TIdList)(unsafe.Pointer(pColumn)).FnId { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16211, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16298, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) goto insert_cleanup } /* Initialize the count of rows to be inserted */ if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&(uint64(libc.Int32FromInt32(0x00001))<= 0 { /* tag-20191021-001: If the INTEGER PRIMARY KEY is being generated by the ** SELECT, go ahead and copy the value into the rowid slot now, so that @@ -108610,18 +109387,18 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** using excess space. The file format definition requires this extra ** NULL - we cannot optimize further by skipping the column completely */ _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) - goto _20 + goto _21 } - v21 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) - colFlags = v21 - if v21&uint32(COLFLAG_NOINSERT) != uint32(0) { + v22 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) + colFlags = v22 + if v22&uint32(COLFLAG_NOINSERT) != uint32(0) { nHidden++ if colFlags&uint32(COLFLAG_VIRTUAL) != uint32(0) { /* Virtual columns do not participate in OP_MakeRecord. So back up ** iRegStore by one slot to compensate for the iRegStore++ in the ** outer for() loop */ iRegStore-- - goto _20 + goto _21 } else { if colFlags&uint32(COLFLAG_STORED) != uint32(0) { /* Stored columns are computed later. But if there are BEFORE @@ -108631,13 +109408,13 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if *(*int32)(unsafe.Pointer(bp + 48))&int32(TRIGGER_BEFORE) != 0 { _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) } - goto _20 + goto _21 } else { if pColumn == uintptr(0) { /* Hidden columns that are not explicitly named in the INSERT ** get there default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } } } @@ -108648,8 +109425,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if !(j < (*TIdList)(unsafe.Pointer(pColumn)).FnId && *(*int32)(unsafe.Pointer(pColumn + 8 + uintptr(j)*16 + 8)) != i) { break } - goto _22 - _22: + goto _23 + _23: ; j++ } @@ -108657,14 +109434,14 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin /* A column not named in the insert column list gets its ** default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } k = j } else { if nColumn == 0 { /* This is INSERT INTO ... DEFAULT VALUES. Load the default value. */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } else { k = i - nHidden } @@ -108681,16 +109458,16 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin y = _sqlite3ExprCodeTarget(tls, pParse, pX, iRegStore) if y != iRegStore { if (*TExpr)(unsafe.Pointer(pX)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) { - v23 = int32(OP_Copy) + v24 = int32(OP_Copy) } else { - v23 = int32(OP_SCopy) + v24 = int32(OP_SCopy) } - _sqlite3VdbeAddOp2(tls, v, v23, y, iRegStore) + _sqlite3VdbeAddOp2(tls, v, v24, y, iRegStore) } } } - goto _20 - _20: + goto _21 + _21: ; i++ iRegStore++ @@ -108801,11 +109578,11 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VtabMakeWritable(tls, pParse, pTab) _sqlite3VdbeAddOp4(tls, v, int32(OP_VUpdate), int32(1), int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+int32(2), regIns, pVTab, -int32(11)) if onError == int32(OE_Default) { - v24 = int32(OE_Abort) + v25 = int32(OE_Abort) } else { - v24 = onError + v25 = onError } - _sqlite3VdbeChangeP5(tls, v, uint16(v24)) + _sqlite3VdbeChangeP5(tls, v, uint16(v25)) _sqlite3MayAbort(tls, pParse) } else { *(*int32)(unsafe.Pointer(bp + 112)) = 0 /* True to use OPFLAG_SEEKRESULT */ @@ -108848,6 +109625,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VdbeJumpHere(tls, v, addrInsTop) } } + goto insert_end insert_end: ; /* Update the sqlite_sequence table by storing the content of the @@ -108863,8 +109641,9 @@ insert_end: ** invoke the callback function. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16303) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16390) } + goto insert_cleanup insert_cleanup: ; _sqlite3SrcListDelete(tls, db, pTabList) @@ -109255,7 +110034,7 @@ func _sqlite3GenerateConstraintChecks(tls *libc.TLS, pParse uintptr, pTab uintpt case int32(OE_Rollback): fallthrough case int32(OE_Fail): - zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12383, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12508, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) _sqlite3VdbeAddOp3(tls, v, int32(OP_HaltIfNull), libc.Int32FromInt32(SQLITE_CONSTRAINT)|libc.Int32FromInt32(5)<= 0 && !(int32(*(*int8)(unsafe.Pointer(zFile + uintptr(iFile)))) == libc.Int32FromUint8('/'))) { @@ -111488,7 +112268,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp iFile-- } iFile++ - if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16352, int32(3)) == 0 { + if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16439, int32(3)) == 0 { iFile += int32(3) } iEntry = int32(8) @@ -111508,7 +112288,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp ; iFile++ } - libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16356, uint64(6)) + libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16443, uint64(6)) zEntry = zAltEntry xInit = _sqlite3OsDlSym(tls, pVfs, handle, zEntry) } @@ -111520,7 +112300,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v7 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16362, libc.VaList(bp+16, zEntry, zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16449, libc.VaList(bp+16, zEntry, zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -111535,7 +112315,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp return SQLITE_OK } if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16405, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16492, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3OsDlClose(tls, pVfs, handle) @@ -111556,6 +112336,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*int32)(unsafe.Pointer(v9))++ *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaExtension + uintptr(v8)*8)) = handle return SQLITE_OK + goto extension_not_found extension_not_found: ; if pzErrMsg != 0 { @@ -111565,7 +112346,7 @@ extension_not_found: *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v10 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16437, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16524, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -111574,7 +112355,7 @@ extension_not_found: /* Shared library endings to try if zFile cannot be loaded as written */ var _azEndings = [1]uintptr{ - 0: __ccgo_ts + 16317, + 0: __ccgo_ts + 16404, } func Xsqlite3_load_extension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintptr, pzErrMsg uintptr) (r int32) { @@ -111807,7 +112588,7 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { rc = v2 } if v3 && v2 != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16474, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16561, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) go1 = 0 } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -111861,63 +112642,63 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { // ** result column is different from the name of the pragma // */ var _pragCName = [57]uintptr{ - 0: __ccgo_ts + 5483, - 1: __ccgo_ts + 16513, - 2: __ccgo_ts + 9060, - 3: __ccgo_ts + 16517, - 4: __ccgo_ts + 16522, - 5: __ccgo_ts + 16525, - 6: __ccgo_ts + 16535, - 7: __ccgo_ts + 16545, - 8: __ccgo_ts + 16551, - 9: __ccgo_ts + 16555, - 10: __ccgo_ts + 16560, - 11: __ccgo_ts + 16565, - 12: __ccgo_ts + 16573, - 13: __ccgo_ts + 16584, - 14: __ccgo_ts + 16587, - 15: __ccgo_ts + 16594, - 16: __ccgo_ts + 16555, - 17: __ccgo_ts + 16560, - 18: __ccgo_ts + 16601, - 19: __ccgo_ts + 16606, - 20: __ccgo_ts + 16609, - 21: __ccgo_ts + 16616, - 22: __ccgo_ts + 16551, - 23: __ccgo_ts + 16555, - 24: __ccgo_ts + 16622, - 25: __ccgo_ts + 16627, - 26: __ccgo_ts + 16632, - 27: __ccgo_ts + 16555, - 28: __ccgo_ts + 16636, - 29: __ccgo_ts + 16560, - 30: __ccgo_ts + 16644, - 31: __ccgo_ts + 16648, - 32: __ccgo_ts + 16653, - 33: __ccgo_ts + 11799, - 34: __ccgo_ts + 11795, - 35: __ccgo_ts + 16659, - 36: __ccgo_ts + 16664, - 37: __ccgo_ts + 16669, - 38: __ccgo_ts + 16513, - 39: __ccgo_ts + 16555, - 40: __ccgo_ts + 16674, - 41: __ccgo_ts + 16681, - 42: __ccgo_ts + 16688, - 43: __ccgo_ts + 9060, - 44: __ccgo_ts + 16696, - 45: __ccgo_ts + 5486, - 46: __ccgo_ts + 16702, - 47: __ccgo_ts + 16513, - 48: __ccgo_ts + 16555, - 49: __ccgo_ts + 16707, - 50: __ccgo_ts + 16712, - 51: __ccgo_ts + 15909, - 52: __ccgo_ts + 16717, - 53: __ccgo_ts + 16730, - 54: __ccgo_ts + 16739, - 55: __ccgo_ts + 16746, - 56: __ccgo_ts + 16757, + 0: __ccgo_ts + 5547, + 1: __ccgo_ts + 16600, + 2: __ccgo_ts + 9185, + 3: __ccgo_ts + 16604, + 4: __ccgo_ts + 16609, + 5: __ccgo_ts + 16612, + 6: __ccgo_ts + 16622, + 7: __ccgo_ts + 16632, + 8: __ccgo_ts + 16638, + 9: __ccgo_ts + 16642, + 10: __ccgo_ts + 16647, + 11: __ccgo_ts + 16652, + 12: __ccgo_ts + 16660, + 13: __ccgo_ts + 16671, + 14: __ccgo_ts + 16674, + 15: __ccgo_ts + 16681, + 16: __ccgo_ts + 16642, + 17: __ccgo_ts + 16647, + 18: __ccgo_ts + 16688, + 19: __ccgo_ts + 16693, + 20: __ccgo_ts + 16696, + 21: __ccgo_ts + 16703, + 22: __ccgo_ts + 16638, + 23: __ccgo_ts + 16642, + 24: __ccgo_ts + 16709, + 25: __ccgo_ts + 16714, + 26: __ccgo_ts + 16719, + 27: __ccgo_ts + 16642, + 28: __ccgo_ts + 16723, + 29: __ccgo_ts + 16647, + 30: __ccgo_ts + 16731, + 31: __ccgo_ts + 16735, + 32: __ccgo_ts + 16740, + 33: __ccgo_ts + 11924, + 34: __ccgo_ts + 11920, + 35: __ccgo_ts + 16746, + 36: __ccgo_ts + 16751, + 37: __ccgo_ts + 16756, + 38: __ccgo_ts + 16600, + 39: __ccgo_ts + 16642, + 40: __ccgo_ts + 16761, + 41: __ccgo_ts + 16768, + 42: __ccgo_ts + 16775, + 43: __ccgo_ts + 9185, + 44: __ccgo_ts + 16783, + 45: __ccgo_ts + 5550, + 46: __ccgo_ts + 16789, + 47: __ccgo_ts + 16600, + 48: __ccgo_ts + 16642, + 49: __ccgo_ts + 16794, + 50: __ccgo_ts + 16799, + 51: __ccgo_ts + 15988, + 52: __ccgo_ts + 16804, + 53: __ccgo_ts + 16817, + 54: __ccgo_ts + 16826, + 55: __ccgo_ts + 16833, + 56: __ccgo_ts + 16844, } // C documentation @@ -111936,191 +112717,191 @@ type PragmaName = TPragmaName var _aPragmaName = [66]TPragmaName{ 0: { - FzName: __ccgo_ts + 16765, + FzName: __ccgo_ts + 16852, FePragTyp: uint8(PragTyp_ANALYSIS_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 1: { - FzName: __ccgo_ts + 16780, + FzName: __ccgo_ts + 16867, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_APPLICATION_ID), }, 2: { - FzName: __ccgo_ts + 16795, + FzName: __ccgo_ts + 16882, FePragTyp: uint8(PragTyp_AUTO_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 3: { - FzName: __ccgo_ts + 16807, + FzName: __ccgo_ts + 16894, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_AutoIndex), }, 4: { - FzName: __ccgo_ts + 16823, + FzName: __ccgo_ts + 16910, FePragTyp: uint8(PragTyp_BUSY_TIMEOUT), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(56), FnPragCName: uint8(1), }, 5: { - FzName: __ccgo_ts + 16746, + FzName: __ccgo_ts + 16833, FePragTyp: uint8(PragTyp_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 6: { - FzName: __ccgo_ts + 16836, + FzName: __ccgo_ts + 16923, FePragTyp: uint8(PragTyp_CACHE_SPILL), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 7: { - FzName: __ccgo_ts + 16848, + FzName: __ccgo_ts + 16935, FePragTyp: uint8(PragTyp_CASE_SENSITIVE_LIKE), FmPragFlg: uint8(PragFlg_NoColumns), }, 8: { - FzName: __ccgo_ts + 16868, + FzName: __ccgo_ts + 16955, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CellSizeCk), }, 9: { - FzName: __ccgo_ts + 16884, + FzName: __ccgo_ts + 16971, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CkptFullFSync), }, 10: { - FzName: __ccgo_ts + 16905, + FzName: __ccgo_ts + 16992, FePragTyp: uint8(PragTyp_COLLATION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(38), FnPragCName: uint8(2), }, 11: { - FzName: __ccgo_ts + 16920, + FzName: __ccgo_ts + 17007, FePragTyp: uint8(PragTyp_COMPILE_OPTIONS), FmPragFlg: uint8(PragFlg_Result0), }, 12: { - FzName: __ccgo_ts + 16936, + FzName: __ccgo_ts + 17023, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00001)) << libc.Int32FromInt32(32), }, 13: { - FzName: __ccgo_ts + 16950, + FzName: __ccgo_ts + 17037, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_DATA_VERSION), }, 14: { - FzName: __ccgo_ts + 16963, + FzName: __ccgo_ts + 17050, FePragTyp: uint8(PragTyp_DATABASE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(47), FnPragCName: uint8(3), }, 15: { - FzName: __ccgo_ts + 16977, + FzName: __ccgo_ts + 17064, FePragTyp: uint8(PragTyp_DEFAULT_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiPragCName: uint8(55), FnPragCName: uint8(1), }, 16: { - FzName: __ccgo_ts + 16996, + FzName: __ccgo_ts + 17083, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_DeferFKs), }, 17: { - FzName: __ccgo_ts + 17015, + FzName: __ccgo_ts + 17102, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_NullCallback), }, 18: { - FzName: __ccgo_ts + 17038, + FzName: __ccgo_ts + 17125, FePragTyp: uint8(PragTyp_ENCODING), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 19: { - FzName: __ccgo_ts + 17047, + FzName: __ccgo_ts + 17134, FePragTyp: uint8(PragTyp_FOREIGN_KEY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(43), FnPragCName: uint8(4), }, 20: { - FzName: __ccgo_ts + 17065, + FzName: __ccgo_ts + 17152, FePragTyp: uint8(PragTyp_FOREIGN_KEY_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FnPragCName: uint8(8), }, 21: { - FzName: __ccgo_ts + 17082, + FzName: __ccgo_ts + 17169, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ForeignKeys), }, 22: { - FzName: __ccgo_ts + 17095, + FzName: __ccgo_ts + 17182, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), }, 23: { - FzName: __ccgo_ts + 17110, + FzName: __ccgo_ts + 17197, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullColNames), }, 24: { - FzName: __ccgo_ts + 17128, + FzName: __ccgo_ts + 17215, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullFSync), }, 25: { - FzName: __ccgo_ts + 17138, + FzName: __ccgo_ts + 17225, FePragTyp: uint8(PragTyp_FUNCTION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(27), FnPragCName: uint8(6), }, 26: { - FzName: __ccgo_ts + 17152, + FzName: __ccgo_ts + 17239, FePragTyp: uint8(PragTyp_HARD_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 27: { - FzName: __ccgo_ts + 17168, + FzName: __ccgo_ts + 17255, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_IgnoreChecks), }, 28: { - FzName: __ccgo_ts + 17193, + FzName: __ccgo_ts + 17280, FePragTyp: uint8(PragTyp_INCREMENTAL_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_NoColumns)), }, 29: { - FzName: __ccgo_ts + 17212, + FzName: __ccgo_ts + 17299, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), FnPragCName: uint8(3), }, 30: { - FzName: __ccgo_ts + 17223, + FzName: __ccgo_ts + 17310, FePragTyp: uint8(PragTyp_INDEX_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(38), FnPragCName: uint8(5), }, 31: { - FzName: __ccgo_ts + 17234, + FzName: __ccgo_ts + 17321, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), @@ -112128,146 +112909,146 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 32: { - FzName: __ccgo_ts + 17246, + FzName: __ccgo_ts + 17333, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 33: { - FzName: __ccgo_ts + 17262, + FzName: __ccgo_ts + 17349, FePragTyp: uint8(PragTyp_JOURNAL_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 34: { - FzName: __ccgo_ts + 17275, + FzName: __ccgo_ts + 17362, FePragTyp: uint8(PragTyp_JOURNAL_SIZE_LIMIT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 35: { - FzName: __ccgo_ts + 17294, + FzName: __ccgo_ts + 17381, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_LegacyAlter), }, 36: { - FzName: __ccgo_ts + 17313, + FzName: __ccgo_ts + 17400, FePragTyp: uint8(PragTyp_LOCKING_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 37: { - FzName: __ccgo_ts + 17326, + FzName: __ccgo_ts + 17413, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 38: { - FzName: __ccgo_ts + 17341, + FzName: __ccgo_ts + 17428, FePragTyp: uint8(PragTyp_MMAP_SIZE), }, 39: { - FzName: __ccgo_ts + 17351, + FzName: __ccgo_ts + 17438, FePragTyp: uint8(PragTyp_MODULE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 40: { - FzName: __ccgo_ts + 17363, + FzName: __ccgo_ts + 17450, FePragTyp: uint8(PragTyp_OPTIMIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_NeedSchema)), }, 41: { - FzName: __ccgo_ts + 17372, + FzName: __ccgo_ts + 17459, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 42: { - FzName: __ccgo_ts + 17383, + FzName: __ccgo_ts + 17470, FePragTyp: uint8(PragTyp_PAGE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 43: { - FzName: __ccgo_ts + 17393, + FzName: __ccgo_ts + 17480, FePragTyp: uint8(PragTyp_PRAGMA_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 44: { - FzName: __ccgo_ts + 17405, + FzName: __ccgo_ts + 17492, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_QueryOnly), }, 45: { - FzName: __ccgo_ts + 17416, + FzName: __ccgo_ts + 17503, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 46: { - FzName: __ccgo_ts + 17428, + FzName: __ccgo_ts + 17515, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00004)) << libc.Int32FromInt32(32), }, 47: { - FzName: __ccgo_ts + 17445, + FzName: __ccgo_ts + 17532, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_RecTriggers), }, 48: { - FzName: __ccgo_ts + 17464, + FzName: __ccgo_ts + 17551, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ReverseOrder), }, 49: { - FzName: __ccgo_ts + 17490, + FzName: __ccgo_ts + 17577, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_SCHEMA_VERSION), }, 50: { - FzName: __ccgo_ts + 17505, + FzName: __ccgo_ts + 17592, FePragTyp: uint8(PragTyp_SECURE_DELETE), FmPragFlg: uint8(PragFlg_Result0), }, 51: { - FzName: __ccgo_ts + 17519, + FzName: __ccgo_ts + 17606, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ShortColNames), }, 52: { - FzName: __ccgo_ts + 17538, + FzName: __ccgo_ts + 17625, FePragTyp: uint8(PragTyp_SHRINK_MEMORY), FmPragFlg: uint8(PragFlg_NoColumns), }, 53: { - FzName: __ccgo_ts + 17552, + FzName: __ccgo_ts + 17639, FePragTyp: uint8(PragTyp_SOFT_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 54: { - FzName: __ccgo_ts + 17568, + FzName: __ccgo_ts + 17655, FePragTyp: uint8(PragTyp_SYNCHRONOUS), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 55: { - FzName: __ccgo_ts + 17580, + FzName: __ccgo_ts + 17667, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), FnPragCName: uint8(6), }, 56: { - FzName: __ccgo_ts + 17591, + FzName: __ccgo_ts + 17678, FePragTyp: uint8(PragTyp_TABLE_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1)), FiPragCName: uint8(15), FnPragCName: uint8(6), }, 57: { - FzName: __ccgo_ts + 17602, + FzName: __ccgo_ts + 17689, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), @@ -112275,45 +113056,45 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 58: { - FzName: __ccgo_ts + 17614, + FzName: __ccgo_ts + 17701, FePragTyp: uint8(PragTyp_TEMP_STORE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 59: { - FzName: __ccgo_ts + 17625, + FzName: __ccgo_ts + 17712, FePragTyp: uint8(PragTyp_TEMP_STORE_DIRECTORY), FmPragFlg: uint8(PragFlg_NoColumns1), }, 60: { - FzName: __ccgo_ts + 17646, + FzName: __ccgo_ts + 17733, FePragTyp: uint8(PragTyp_THREADS), FmPragFlg: uint8(PragFlg_Result0), }, 61: { - FzName: __ccgo_ts + 17654, + FzName: __ccgo_ts + 17741, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_TrustedSchema), }, 62: { - FzName: __ccgo_ts + 17669, + FzName: __ccgo_ts + 17756, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_USER_VERSION), }, 63: { - FzName: __ccgo_ts + 17682, + FzName: __ccgo_ts + 17769, FePragTyp: uint8(PragTyp_WAL_AUTOCHECKPOINT), }, 64: { - FzName: __ccgo_ts + 17701, + FzName: __ccgo_ts + 17788, FePragTyp: uint8(PragTyp_WAL_CHECKPOINT), FmPragFlg: uint8(PragFlg_NeedSchema), FiPragCName: uint8(50), FnPragCName: uint8(3), }, 65: { - FzName: __ccgo_ts + 17716, + FzName: __ccgo_ts + 17803, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(SQLITE_WriteSchema) | libc.Int32FromInt32(SQLITE_NoSchemaError)), @@ -112325,6 +113106,31 @@ var _aPragmaName = [66]TPragmaName{ /************** End of pragma.h **********************************************/ /************** Continuing where we left off in pragma.c *********************/ +/* +** When the 0x10 bit of PRAGMA optimize is set, any ANALYZE commands +** will be run with an analysis_limit set to the lessor of the value of +** the following macro or to the actual analysis_limit if it is non-zero, +** in order to prevent PRAGMA optimize from running for too long. +** +** The value of 2000 is chosen emperically so that the worst-case run-time +** for PRAGMA optimize does not exceed 100 milliseconds against a variety +** of test databases on a RaspberryPI-4 compiled using -Os and without +** -DSQLITE_DEBUG. Of course, your mileage may vary. For the purpose of +** this paragraph, "worst-case" means that ANALYZE ends up being +** run on every table in the database. The worst case typically only +** happens if PRAGMA optimize is run on a database file for which ANALYZE +** has not been previously run and the 0x10000 flag is included so that +** all tables are analyzed. The usual case for PRAGMA optimize is that +** no ANALYZE commands will be run at all, or if any ANALYZE happens it +** will be against a single table, so that expected timing for PRAGMA +** optimize on a PI-4 is more like 1 millisecond or less with the 0x10000 +** flag or less than 100 microseconds without the 0x10000 flag. +** +** An analysis limit of 2000 is almost always sufficient for the query +** planner to fully characterize an index. The additional accuracy from +** a larger analysis is not usually helpful. + */ + // C documentation // // /* @@ -112414,10 +113220,10 @@ func _sqlite3GetBoolean(tls *libc.TLS, z uintptr, dflt Tu8) (r Tu8) { // */ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { if z != 0 { - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17732) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17819) { return int32(PAGER_LOCKINGMODE_EXCLUSIVE) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17742) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17829) { return PAGER_LOCKINGMODE_NORMAL } } @@ -112435,13 +113241,13 @@ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { func _getAutoVacuum(tls *libc.TLS, z uintptr) (r int32) { var i, v1 int32 _, _ = i, v1 - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8220) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8345) { return BTREE_AUTOVACUUM_NONE } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17749) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17836) { return int32(BTREE_AUTOVACUUM_FULL) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17754) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17841) { return int32(BTREE_AUTOVACUUM_INCR) } i = _sqlite3Atoi(tls, z) @@ -112464,10 +113270,10 @@ func _getTempStore(tls *libc.TLS, z uintptr) (r int32) { if int32(*(*int8)(unsafe.Pointer(z))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(z))) <= int32('2') { return int32(*(*int8)(unsafe.Pointer(z))) - int32('0') } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+16707) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+16794) == 0 { return int32(1) } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+17766) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+17853) == 0 { return int32(2) } else { return 0 @@ -112489,7 +113295,7 @@ func _invalidateTempStorage(tls *libc.TLS, pParse uintptr) (r int32) { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt != uintptr(0) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || _sqlite3BtreeTxnState(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) != SQLITE_TXN_NONE { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17773, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17860, 0) return int32(SQLITE_ERROR) } _sqlite3BtreeClose(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) @@ -112619,15 +113425,15 @@ func _actionName(tls *libc.TLS, action Tu8) (r uintptr) { _ = zName switch int32(action) { case int32(OE_SetNull): - zName = __ccgo_ts + 17835 + zName = __ccgo_ts + 17922 case int32(OE_SetDflt): - zName = __ccgo_ts + 17844 + zName = __ccgo_ts + 17931 case int32(OE_Cascade): - zName = __ccgo_ts + 17856 + zName = __ccgo_ts + 17943 case int32(OE_Restrict): - zName = __ccgo_ts + 17864 + zName = __ccgo_ts + 17951 default: - zName = __ccgo_ts + 17873 + zName = __ccgo_ts + 17960 break } return zName @@ -112648,12 +113454,12 @@ func _sqlite3JournalModename(tls *libc.TLS, eMode int32) (r uintptr) { } var _azModeName = [6]uintptr{ - 0: __ccgo_ts + 17883, - 1: __ccgo_ts + 17890, - 2: __ccgo_ts + 17898, - 3: __ccgo_ts + 17902, - 4: __ccgo_ts + 17766, - 5: __ccgo_ts + 17911, + 0: __ccgo_ts + 17970, + 1: __ccgo_ts + 17977, + 2: __ccgo_ts + 17985, + 3: __ccgo_ts + 17989, + 4: __ccgo_ts + 17853, + 5: __ccgo_ts + 17998, } // C documentation @@ -112715,15 +113521,15 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s goto _1 } if (*TFuncDef)(unsafe.Pointer(p)).FxValue != uintptr(0) { - zType = __ccgo_ts + 17936 + zType = __ccgo_ts + 18023 } else { if (*TFuncDef)(unsafe.Pointer(p)).FxFinalize != uintptr(0) { - zType = __ccgo_ts + 17938 + zType = __ccgo_ts + 18025 } else { - zType = __ccgo_ts + 7619 + zType = __ccgo_ts + 7744 } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+17940, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18027, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) goto _1 _1: ; @@ -112732,9 +113538,9 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s } var _azEnc = [4]uintptr{ - 1: __ccgo_ts + 17915, - 2: __ccgo_ts + 17920, - 3: __ccgo_ts + 17928, + 1: __ccgo_ts + 18002, + 2: __ccgo_ts + 18007, + 3: __ccgo_ts + 18015, } // C documentation @@ -112775,15 +113581,15 @@ func _integrityCheckResultRow(tls *libc.TLS, v uintptr) (r int32) { func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pValue uintptr, minusFlag int32) { bp := tls.Alloc(240) defer tls.Free(240) - var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, mxIdx, n, nHidden, nIdx, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v60, v62, v63, v64, v65, v68 int32 - var aOp, aOp1, aOp2, aOp3, aOp4, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v61, v66, v8 uintptr + var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v48, v50, v64, v66, v67, v68, v69, v72, v75, v76 int32 + var aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v65, v70, v8 uintptr var azOrigin [3]uintptr var cnum Ti16 var enc Tu8 var iPrior Tsqlite3_int64 + var iRange, szThreshold TLogEst var mask Tu64 var opMask Tu32 - var szThreshold TLogEst var _ /* N at bp+136 */ Tsqlite3_int64 var _ /* N at bp+144 */ Tsqlite3_int64 var _ /* N at bp+152 */ Tsqlite3_int64 @@ -112804,7 +113610,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p var _ /* size at bp+60 */ int32 var _ /* sz at bp+64 */ Tsqlite3_int64 var _ /* x at bp+40 */ Ti64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iPrior, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, mxIdx, n, nHidden, nIdx, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v5, v60, v61, v62, v63, v64, v65, v66, v68, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iPrior, iRange, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v48, v5, v50, v64, v65, v66, v67, v68, v69, v70, v72, v75, v76, v8 zLeft = uintptr(0) /* Nul-terminated UTF-8 string */ zRight = uintptr(0) /* Nul-terminated UTF-8 string , or NULL */ zDb = uintptr(0) /* return value form SQLITE_FCNTL_PRAGMA */ @@ -112833,7 +113639,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p return } if minusFlag != 0 { - zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+17947, libc.VaList(bp+176, pValue)) + zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+18034, libc.VaList(bp+176, pValue)) } else { zRight = _sqlite3NameFromToken(tls, db, pValue) } @@ -112876,7 +113682,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } if rc != int32(SQLITE_NOTFOUND) { if (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0] != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3797, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3861, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) Xsqlite3_free(tls, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0]) } (*TParse)(unsafe.Pointer(pParse)).FnErr++ @@ -112980,7 +113786,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pBt1 = (*TDb)(unsafe.Pointer(pDb)).FpBt b = -int32(1) if zRight != 0 { - if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+17951) == 0 { + if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18038) == 0 { b = int32(2) } else { b = int32(_sqlite3GetBoolean(tls, zRight, uint8(0))) @@ -113051,7 +113857,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p */ fallthrough case int32(PragTyp_LOCKING_MODE): - zRet = __ccgo_ts + 17742 + zRet = __ccgo_ts + 17829 eMode = _getLockingMode(tls, zRight) if (*TToken)(unsafe.Pointer(pId2)).Fn == uint32(0) && eMode == -int32(1) { /* Simple "PRAGMA locking_mode;" statement. This is a query for @@ -113079,7 +113885,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p eMode = _sqlite3PagerLockingMode(tls, pPager, eMode) } if eMode == int32(PAGER_LOCKINGMODE_EXCLUSIVE) { - zRet = __ccgo_ts + 17732 + zRet = __ccgo_ts + 17819 } _returnSingleText(tls, v, zRet) break @@ -113369,7 +114175,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if *(*int8)(unsafe.Pointer(zRight)) != 0 { rc = _sqlite3OsAccess(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, zRight, int32(SQLITE_ACCESS_READWRITE), bp+72) if rc != SQLITE_OK || *(*int32)(unsafe.Pointer(bp + 72)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17956, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18043, 0) Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) goto pragma_out } @@ -113379,7 +114185,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } Xsqlite3_free(tls, Xsqlite3_temp_directory) if *(*int8)(unsafe.Pointer(zRight)) != 0 { - Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+176, zRight)) + Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+176, zRight)) } else { Xsqlite3_temp_directory = uintptr(0) } @@ -113401,7 +114207,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _returnSingleInt(tls, v, int64(int32((*TDb)(unsafe.Pointer(pDb)).Fsafety_level)-int32(1))) } else { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17981, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18068, 0) } else { if iDb != int32(1) { iLevel = (int32(_getSafetyLevel(tls, zRight, 0, uint8(1))) + int32(1)) & int32(PAGER_SYNCHRONOUS_MASK) @@ -113434,7 +114240,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if mask == uint64(SQLITE_DeferFKs) { (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = 0 } - if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18034) == 0 { + if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18121) == 0 { /* IMP: R-60817-01178 If the argument is "RESET" then schema ** writing is disabled (as with "PRAGMA writable_schema=OFF") and, ** in addition, the schema is reloaded. */ @@ -113514,9 +114320,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pColExpr = _sqlite3ColumnExpr(tls, pTab, pCol) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - v14 = __ccgo_ts + 18040 + v14 = __ccgo_ts + 18127 } else { - v14 = __ccgo_ts + 18048 + v14 = __ccgo_ts + 18135 } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 { v15 = int32(1) @@ -113528,7 +114334,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v16 = *(*uintptr)(unsafe.Pointer(pColExpr + 8)) } - _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1650), v15, v16, k, isHidden)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1664), v15, v16, k, isHidden)) goto _12 _12: ; @@ -113587,7 +114393,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pTab1 = (*THashElem)(unsafe.Pointer(k1)).Fdata if int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) == 0 { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18055, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18142, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 80)) = uintptr(0) Xsqlite3_prepare(tls, db, zSql, -int32(1), bp+80, uintptr(0)) @@ -113595,7 +114401,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3DbFree(tls, db, zSql) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1634, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) } pHash = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FpSchema + 8 @@ -113617,19 +114423,19 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _20 } if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10798 + zType = __ccgo_ts + 10923 } else { if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 13046 + zType = __ccgo_ts + 13171 } else { if (*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Shadow) != 0 { - zType = __ccgo_ts + 18071 + zType = __ccgo_ts + 18158 } else { - zType = __ccgo_ts + 9060 + zType = __ccgo_ts + 9185 } } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18078, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18165, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) goto _20 _20: ; @@ -113676,9 +114482,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v22 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab3)).FaCol + uintptr(cnum)*16))).FzCnName } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18085, libc.VaList(bp+176, i1, int32(cnum), v22)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18172, libc.VaList(bp+176, i1, int32(cnum), v22)) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18090, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) + _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18177, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) } _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), int32(1), (*TParse)(unsafe.Pointer(pParse)).FnMem) goto _21 @@ -113702,11 +114508,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } azOrigin = [3]uintptr{ - 0: __ccgo_ts + 18095, - 1: __ccgo_ts + 18097, - 2: __ccgo_ts + 16584, + 0: __ccgo_ts + 18182, + 1: __ccgo_ts + 18184, + 2: __ccgo_ts + 16671, } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18099, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18186, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) goto _23 _23: ; @@ -113725,7 +114531,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt == uintptr(0) { goto _24 } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18105, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18192, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) goto _24 _24: ; @@ -113742,7 +114548,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pColl = (*THashElem)(unsafe.Pointer(p)).Fdata v26 = i4 i4++ - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18109, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18196, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) goto _25 _25: ; @@ -113792,7 +114598,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } pMod = (*THashElem)(unsafe.Pointer(j1)).Fdata - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7619, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7744, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) goto _30 _30: ; @@ -113804,7 +114610,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i6 < int32(libc.Uint64FromInt64(1584)/libc.Uint64FromInt64(24))) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7619, libc.VaList(bp+176, _aPragmaName[i6].FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7744, libc.VaList(bp+176, _aPragmaName[i6].FzName)) goto _31 _31: ; @@ -113830,7 +114636,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(j2 < (*TFKey)(unsafe.Pointer(pFK)).FnCol) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18112, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18121)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18199, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18208)) goto _32 _32: ; @@ -113971,7 +114777,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regResult+int32(1)) } - _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18126, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) + _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18213, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), regResult, int32(4)) _sqlite3VdbeResolveLabel(tls, v, addrOk) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 96))) @@ -114039,7 +114845,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p /* Set the maximum error count */ *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) if zRight != 0 { - if _sqlite3GetInt32(tls, zRight, bp+104) != 0 { + if _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pValue)).Fz, bp+104) != 0 { if *(*int32)(unsafe.Pointer(bp + 104)) <= 0 { *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) } @@ -114059,8 +114865,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i9 < (*Tsqlite3)(unsafe.Pointer(db)).FnDb) { break } /* Array of root page numbers of all btrees */ - cnt = 0 /* Number of entries in aRoot[] */ - mxIdx = 0 /* Maximum number of indexes for any table */ + cnt = 0 /* Number of entries in aRoot[] */ if libc.Bool(OMIT_TEMPDB != 0) && i9 == int32(1) { goto _40 } @@ -114101,9 +114906,6 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pIdx3 = (*TIndex)(unsafe.Pointer(pIdx3)).FpNext nIdx++ } - if nIdx > mxIdx { - mxIdx = nIdx - } goto _41 _41: ; @@ -114159,16 +114961,78 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } *(*int32)(unsafe.Pointer(aRoot)) = cnt /* Make sure sufficient number of registers have been allocated */ - _sqlite3TouchRegister(tls, pParse, int32(8)+mxIdx) + _sqlite3TouchRegister(tls, pParse, int32(8)+cnt) _sqlite3ClearTempRegCache(tls, pParse) /* Do the b-tree integrity checks */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(2), cnt, int32(1), aRoot, -int32(14)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(1), cnt, int32(8), aRoot, -int32(14)) _sqlite3VdbeChangeP5(tls, v, uint16(uint8(i9))) addr1 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(2)) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18130, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18217, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(2), int32(3), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, addr1) + /* Check that the indexes all have the right number of rows */ + if pObjTab != 0 { + v48 = int32(1) + } else { + v48 = 0 + } + cnt = v48 + _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18241) + x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst + for { + if !(x2 != 0) { + break + } + iTab = 0 + pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab9 { + goto _49 + } + if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + v50 = cnt + cnt++ + iTab = v50 + } else { + iTab = cnt + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx5 + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { + break + } + iTab++ + goto _51 + _51: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + } + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if (*TIndex)(unsafe.Pointer(pIdx5)).FpPartIdxWhere == uintptr(0) { + addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+cnt, 0, int32(8)+iTab) + _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) + _integrityCheckResultRow(tls, v) + _sqlite3VdbeJumpHere(tls, v, addr1) + } + cnt++ + goto _52 + _52: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + goto _49 + _49: + ; + x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext + } /* Make sure all the indices are constructed correctly. */ x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst @@ -114176,39 +115040,39 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata pPrior = uintptr(0) r1 = -int32(1) /* Maximum non-virtual column number */ - if pObjTab != 0 && pObjTab != pTab9 { - goto _48 + if pObjTab != 0 && pObjTab != pTab10 { + goto _53 } - if !(int32((*TTable)(unsafe.Pointer(pTab9)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { - goto _48 + if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _53 } - if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { pPk1 = uintptr(0) r2 = 0 } else { - pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab9) + pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab10) r2 = _sqlite3GetTempRange(tls, pParse, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), int32(1), r2, r2+int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)-int32(1)) } - _sqlite3OpenTableAndIndices(tls, pParse, pTab9, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) + _sqlite3OpenTableAndIndices(tls, pParse, pTab10, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) /* reg[7] counts the number of entries in the table. ** reg[8+i] counts the number of entries in the i-th index */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(7)) j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(8)+j4) /* index entries counter */ - goto _49 - _49: + goto _54 + _54: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), *(*int32)(unsafe.Pointer(bp + 108)), 0) @@ -114218,29 +115082,29 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** will also prepopulate the cursor column cache that is used ** by the OP_IsType code, so it is a required step. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { mxCol = -int32(1) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { + if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { mxCol++ } - goto _50 - _50: + goto _55 + _55: ; j4++ } - if mxCol == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { + if mxCol == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { mxCol-- } } else { /* COLFLAG_VIRTUAL columns are not included in the WITHOUT ROWID ** PK index column-count, so there is no need to account for them ** in this case. */ - mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab9))).FnColumn) - int32(1) + mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab10))).FnColumn) - int32(1) } if mxCol >= 0 { _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 108)), mxCol, int32(3)) @@ -114250,7 +115114,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if pPk1 != 0 { a1 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 108)), 0, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), r2) - zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18154, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18270, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a1) @@ -114261,8 +115125,8 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprCodeLoadIndexColumn(tls, pParse, pPk1, *(*int32)(unsafe.Pointer(bp + 108)), j4, r2+j4) - goto _51 - _51: + goto _56 + _56: ; j4++ } @@ -114277,15 +115141,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** (4) Datatype for numeric columns in non-STRICT tables must not ** be a TEXT value that can be losslessly converted to numeric. */ - bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_Strict) != uint32(0)) + bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_Strict) != uint32(0)) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - pCol1 = (*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ - if j4 == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { - goto _52 + pCol1 = (*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ + if j4 == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { + goto _57 } if bStrict != 0 { doTypeCheck = libc.BoolInt32(int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4)) > int32(COLTYPE_ANY)) @@ -114293,28 +115157,28 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p doTypeCheck = libc.BoolInt32(int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) > int32(SQLITE_AFF_BLOB)) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf>>0)) == 0 && !(doTypeCheck != 0) { - goto _52 + goto _57 } /* Compute the operands that will be needed for OP_IsType */ p4 = int32(SQLITE_NULL) if int32((*TColumn)(unsafe.Pointer(pCol1)).FcolFlags)&int32(COLFLAG_VIRTUAL) != 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) p11 = -int32(1) p3 = int32(3) } else { if (*TColumn)(unsafe.Pointer(pCol1)).FiDflt != 0 { *(*uintptr)(unsafe.Pointer(bp + 120)) = uintptr(0) - _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab9, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8((*TColumn)(unsafe.Pointer(pCol1)).Faffinity), bp+120) + _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab10, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8((*TColumn)(unsafe.Pointer(pCol1)).Faffinity), bp+120) if *(*uintptr)(unsafe.Pointer(bp + 120)) != 0 { p4 = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) } } p11 = *(*int32)(unsafe.Pointer(bp + 108)) - if !((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { - p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab9), int16(j4))) + if !((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { + p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab10), int16(j4))) } else { - p3 = int32(_sqlite3TableColumnToStorage(tls, pTab9, int16(j4))) + p3 = int32(_sqlite3TableColumnToStorage(tls, pTab10, int16(j4))) } } labelError = _sqlite3VdbeMakeLabel(tls, pParse) @@ -114331,10 +115195,10 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** is REAL, we have to load the actual data using OP_Column ** to reliably determine if the value is a NULL. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), p11, p3, int32(3)) - _sqlite3ColumnDefault(tls, v, pTab9, j4, int32(3)) + _sqlite3ColumnDefault(tls, v, pTab10, j4, int32(3)) jmp3 = _sqlite3VdbeAddOp2(tls, v, int32(OP_NotNull), int32(3), labelOk) } - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18190, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18306, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) if doTypeCheck != 0 { _sqlite3VdbeGoto(tls, v, labelError) @@ -114347,7 +115211,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if bStrict != 0 && doTypeCheck != 0 { _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(_aStdTypeMask[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)])) - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18210, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18326, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) == int32(SQLITE_AFF_TEXT) { @@ -114355,7 +115219,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** NULL, TEXT, or BLOB. */ _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18232, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18348, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) >= int32(SQLITE_AFF_NUMERIC) { @@ -114364,12 +115228,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1b)) /* NULL, INT, FLOAT, or BLOB */ if p11 >= 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18255, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18371, -int32(1)) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), -int32(1), labelOk, int32(3), p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18257, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18373, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } } @@ -114377,14 +115241,14 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeResolveLabel(tls, v, labelError) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, labelOk) - goto _52 - _52: + goto _57 + _57: ; j4++ } /* Verify CHECK constraints */ - if (*TTable)(unsafe.Pointer(pTab9)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { - pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab9)).FpCheck, 0) + if (*TTable)(unsafe.Pointer(pTab10)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { + pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab10)).FpCheck, 0) if int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { addrCkFault = _sqlite3VdbeMakeLabel(tls, pParse) addrCkOk = _sqlite3VdbeMakeLabel(tls, pParse) @@ -114395,15 +115259,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprIfFalse(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8 + uintptr(k3)*32))).FpExpr, addrCkFault, 0) - goto _53 - _53: + goto _58 + _58: ; k3-- } _sqlite3ExprIfTrue(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8))).FpExpr, addrCkOk, int32(SQLITE_JUMPIFNULL)) _sqlite3VdbeResolveLabel(tls, v, addrCkFault) (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 - zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18277, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18393, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr2, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, addrCkOk) @@ -114413,25 +115277,25 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(isQuick != 0) { /* Omit the remaining tests for quick_check */ /* Validate index entries for the current row */ j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } ckUniq = _sqlite3VdbeMakeLabel(tls, pParse) - if pPk1 == pIdx5 { - goto _54 + if pPk1 == pIdx6 { + goto _59 } - r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx5, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) - pPrior = pIdx5 + r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx6, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) + pPrior = pIdx6 _sqlite3VdbeAddOp2(tls, v, int32(OP_AddImm), int32(8)+j4, int32(1)) /* increment entry count */ /* Verify that an index entry exists for the current table row */ - jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18307) + jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18423) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18312) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18428) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) - jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx6)).FzName) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) jmp4 = _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, jmp21) @@ -114439,12 +115303,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** that extracts the rowid off the end of the index record. ** But it only works correctly if index record does not have ** any extra bytes at the end. Verify that this is the case. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { _sqlite3VdbeAddOp2(tls, v, int32(OP_IdxRowid), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)-int32(1)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18333) + jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)-int32(1)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18449) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18369) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18485) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp7) } @@ -114453,100 +115317,75 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p label6 = 0 kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { - goto _55 + if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { + goto _60 } if label6 == 0 { label6 = _sqlite3VdbeMakeLabel(tls, pParse) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 112))+j4, kk, int32(3)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ne), int32(3), label6, r1+kk) - goto _55 - _55: + goto _60 + _60: ; kk++ } if label6 != 0 { jmp6 = _sqlite3VdbeAddOp0(tls, v, int32(OP_Goto)) _sqlite3VdbeResolveLabel(tls, v, label6) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18307) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18423) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18380) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18496) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp6) } /* For UNIQUE indexes, verify that only one entry exists with the ** current key. The entry is unique if (1) any column is NULL ** or (2) the next entry has a different key */ - if int32((*TIndex)(unsafe.Pointer(pIdx5)).FonError) != OE_None { + if int32((*TIndex)(unsafe.Pointer(pIdx6)).FonError) != OE_None { uniqOk = _sqlite3VdbeMakeLabel(tls, pParse) kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FaiColumn + uintptr(kk)*2))) - if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { - goto _56 + iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FaiColumn + uintptr(kk)*2))) + if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { + goto _61 } _sqlite3VdbeAddOp2(tls, v, int32(OP_IsNull), r1+kk, uniqOk) - goto _56 - _56: + goto _61 + _61: ; kk++ } jmp61 = _sqlite3VdbeAddOp1(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 112))+j4) _sqlite3VdbeGoto(tls, v, uniqOk) _sqlite3VdbeJumpHere(tls, v, jmp61) - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18407) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18523) _sqlite3VdbeGoto(tls, v, jmp5) _sqlite3VdbeResolveLabel(tls, v, uniqOk) } _sqlite3VdbeJumpHere(tls, v, jmp4) _sqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp + 128))) - goto _54 - _54: + goto _59 + _59: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } } _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 108)), loopTop) _sqlite3VdbeJumpHere(tls, v, loopTop-int32(1)) - if !(isQuick != 0) { - _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18434) - j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex - for { - if !(pIdx5 != 0) { - break - } - if pPk1 == pIdx5 { - goto _57 - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+j4, 0, int32(3)) - _sqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL)) - _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) - _integrityCheckResultRow(tls, v) - _sqlite3VdbeJumpHere(tls, v, addr1) - goto _57 - _57: - ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext - j4++ - } - if pPk1 != 0 { - _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) - } + if pPk1 != 0 { + _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) } - goto _48 - _48: + goto _53 + _53: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -114558,60 +115397,60 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata - if pObjTab != 0 && pObjTab != pTab10 { - goto _58 + pTab11 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab11 { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == TABTYP_NORM { - goto _58 + if int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == TABTYP_NORM { + goto _62 } - if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { - goto _58 + if !(int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FnCol) <= 0 { + if int32((*TTable)(unsafe.Pointer(pTab11)).FnCol) <= 0 { zMod = *(*uintptr)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).FazArg)) + })(unsafe.Pointer(pTab11 + 64))).FazArg)) if _sqlite3HashFind(tls, db+576, zMod) == uintptr(0) { - goto _58 + goto _62 } } - _sqlite3ViewGetColumnNames(tls, pParse, pTab10) + _sqlite3ViewGetColumnNames(tls, pParse, pTab11) if (*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp == uintptr(0) { - goto _58 + })(unsafe.Pointer(pTab11 + 64))).Fp == uintptr(0) { + goto _62 } pVTab = (*TVTable)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp)).FpVtab + })(unsafe.Pointer(pTab11 + 64))).Fp)).FpVtab if pVTab == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FiVersion < int32(4) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FxIntegrity == uintptr(0) { - goto _58 + goto _62 } _sqlite3VdbeAddOp3(tls, v, int32(OP_VCheck), i9, int32(3), isQuick) - (*TTable)(unsafe.Pointer(pTab10)).FnTabRef++ - _sqlite3VdbeAppendP4(tls, v, pTab10, -int32(16)) + (*TTable)(unsafe.Pointer(pTab11)).FnTabRef++ + _sqlite3VdbeAppendP4(tls, v, pTab11, -int32(16)) a11 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a11) - goto _58 - goto _58 - _58: + goto _62 + goto _62 + _62: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -114624,7 +115463,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if aOp2 != 0 { (*(*TVdbeOp)(unsafe.Pointer(aOp2))).Fp2 = int32(1) - *(*int32)(unsafe.Pointer(bp + 104)) (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 2*24))).Fp4type = int8(-libc.Int32FromInt32(1)) - *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18463 + *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18550 (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 5*24))).Fp4type = int8(-libc.Int32FromInt32(1)) *(*uintptr)(unsafe.Pointer(aOp2 + 5*24 + 16)) = _sqlite3ErrStr(tls, int32(SQLITE_CORRUPT)) } @@ -114682,20 +115521,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc != 0 { - v60 = int32((*struct { + v64 = int32((*struct { FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc) } else { - v60 = int32(SQLITE_UTF16LE) + v64 = int32(SQLITE_UTF16LE) } - enc = uint8(v60) + enc = uint8(v64) (*TSchema)(unsafe.Pointer((*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema)).Fenc = enc _sqlite3SetTextEncoding(tls, db, enc) break } - goto _59 - _59: + goto _63 + _63: ; pEnc += 16 } @@ -114703,7 +115542,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).FzName != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18524, libc.VaList(bp+176, zRight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18611, libc.VaList(bp+176, zRight)) } } } @@ -114781,11 +115620,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p i10 = 0 (*TParse)(unsafe.Pointer(pParse)).FnMem = int32(1) for { - v62 = i10 + v66 = i10 i10++ - v61 = Xsqlite3_compileoption_get(tls, v62) - zOpt = v61 - if !(v61 != uintptr(0)) { + v65 = Xsqlite3_compileoption_get(tls, v66) + zOpt = v65 + if !(v65 != uintptr(0)) { break } _sqlite3VdbeLoadString(tls, v, int32(1), zOpt) @@ -114801,20 +115640,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p fallthrough case int32(PragTyp_WAL_CHECKPOINT): if (*TToken)(unsafe.Pointer(pId2)).Fz != 0 { - v63 = iDb + v67 = iDb } else { - v63 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) + v67 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) } - iBt = v63 + iBt = v67 eMode2 = SQLITE_CHECKPOINT_PASSIVE if zRight != 0 { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17749) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17836) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_FULL) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18549) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18636) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_RESTART) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17902) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17989) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_TRUNCATE) } } @@ -114838,11 +115677,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p Xsqlite3_wal_autocheckpoint(tls, db, _sqlite3Atoi(tls, zRight)) } if (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback == __ccgo_fp(_sqlite3WalDefaultHook) { - v64 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) + v68 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) } else { - v64 = 0 + v68 = 0 } - _returnSingleInt(tls, v, int64(v64)) + _returnSingleInt(tls, v, int64(v68)) break /* ** PRAGMA shrink_memory @@ -114870,47 +115709,68 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** ** The optional argument is a bitmask of optimizations to perform: ** - ** 0x0001 Debugging mode. Do not actually perform any optimizations - ** but instead return one line of text for each optimization - ** that would have been done. Off by default. + ** 0x00001 Debugging mode. Do not actually perform any optimizations + ** but instead return one line of text for each optimization + ** that would have been done. Off by default. ** - ** 0x0002 Run ANALYZE on tables that might benefit. On by default. - ** See below for additional information. + ** 0x00002 Run ANALYZE on tables that might benefit. On by default. + ** See below for additional information. ** - ** 0x0004 (Not yet implemented) Record usage and performance - ** information from the current session in the - ** database file so that it will be available to "optimize" - ** pragmas run by future database connections. + ** 0x00010 Run all ANALYZE operations using an analysis_limit that + ** is the lessor of the current analysis_limit and the + ** SQLITE_DEFAULT_OPTIMIZE_LIMIT compile-time option. + ** The default value of SQLITE_DEFAULT_OPTIMIZE_LIMIT is + ** currently (2024-02-19) set to 2000, which is such that + ** the worst case run-time for PRAGMA optimize on a 100MB + ** database will usually be less than 100 milliseconds on + ** a RaspberryPI-4 class machine. On by default. ** - ** 0x0008 (Not yet implemented) Create indexes that might have - ** been helpful to recent queries + ** 0x10000 Look at tables to see if they need to be reanalyzed + ** due to growth or shrinkage even if they have not been + ** queried during the current connection. Off by default. ** - ** The default MASK is and always shall be 0xfffe. 0xfffe means perform all - ** of the optimizations listed above except Debug Mode, including new - ** optimizations that have not yet been invented. If new optimizations are - ** ever added that should be off by default, those off-by-default - ** optimizations will have bitmasks of 0x10000 or larger. + ** The default MASK is and always shall be 0x0fffe. In the current + ** implementation, the default mask only covers the 0x00002 optimization, + ** though additional optimizations that are covered by 0x0fffe might be + ** added in the future. Optimizations that are off by default and must + ** be explicitly requested have masks of 0x10000 or greater. ** ** DETERMINATION OF WHEN TO RUN ANALYZE ** ** In the current implementation, a table is analyzed if only if all of ** the following are true: ** - ** (1) MASK bit 0x02 is set. + ** (1) MASK bit 0x00002 is set. ** - ** (2) The query planner used sqlite_stat1-style statistics for one or - ** more indexes of the table at some point during the lifetime of - ** the current connection. + ** (2) The table is an ordinary table, not a virtual table or view. ** - ** (3) One or more indexes of the table are currently unanalyzed OR - ** the number of rows in the table has increased by 25 times or more - ** since the last time ANALYZE was run. + ** (3) The table name does not begin with "sqlite_". + ** + ** (4) One or more of the following is true: + ** (4a) The 0x10000 MASK bit is set. + ** (4b) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. + ** (4c) The query planner used sqlite_stat1-style statistics for one + ** or more indexes of the table at some point during the lifetime + ** of the current connection. + ** + ** (5) One or more of the following is true: + ** (5a) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. (Same as 4a) + ** (5b) The number of rows in the table has increased or decreased by + ** 10-fold. In other words, the current size of the table is + ** 10 times larger than the size in sqlite_stat1 or else the + ** current size is less than 1/10th the size in sqlite_stat1. ** ** The rules for when tables are analyzed are likely to change in - ** future releases. + ** future releases. Future versions of SQLite might accept a string + ** literal argument to this pragma that contains a mnemonic description + ** of the options rather than a bitmap. */ fallthrough - case int32(PragTyp_OPTIMIZE): /* Mask of operations to perform */ + case int32(PragTyp_OPTIMIZE): /* Analysis limit to use */ + nCheck = 0 /* Number of tables to be optimized */ + nBtree = 0 /* Number of indexes on the current table */ if zRight != 0 { opMask = uint32(_sqlite3Atoi(tls, zRight)) if opMask&uint32(0x02) == uint32(0) { @@ -114919,22 +115779,31 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { opMask = uint32(0xfffe) } - v66 = pParse + 52 - v65 = *(*int32)(unsafe.Pointer(v66)) - *(*int32)(unsafe.Pointer(v66))++ - iTabCur = v65 + if opMask&uint32(0x10) == uint32(0) { + nLimit = 0 + } else { + if (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit > 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit < int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) { + nLimit = 0 + } else { + nLimit = int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) + } + } + v70 = pParse + 52 + v69 = *(*int32)(unsafe.Pointer(v70)) + *(*int32)(unsafe.Pointer(v70))++ + iTabCur = v69 if zDb != 0 { - v68 = iDb + v72 = iDb } else { - v68 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) + v72 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) } - iDbLast = v68 + iDbLast = v72 for { if !(iDb <= iDbLast) { break } if iDb == int32(1) { - goto _67 + goto _71 } _sqlite3CodeVerifySchema(tls, pParse, iDb) pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema @@ -114943,52 +115812,122 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(k4 != 0) { break } - pTab11 = (*THashElem)(unsafe.Pointer(k4)).Fdata - /* If table pTab has not been used in a way that would benefit from - ** having analysis statistics during the current session, then skip it. - ** This also has the effect of skipping virtual tables and views */ - if (*TTable)(unsafe.Pointer(pTab11)).FtabFlags&uint32(TF_StatsUsed) == uint32(0) { - goto _69 - } - /* Reanalyze if the table is 25 times larger than the last analysis */ - szThreshold = int16(int32((*TTable)(unsafe.Pointer(pTab11)).FnRowLogEst) + int32(46)) - pIdx6 = (*TTable)(unsafe.Pointer(pTab11)).FpIndex + pTab12 = (*THashElem)(unsafe.Pointer(k4)).Fdata + /* This only works for ordinary tables */ + if !(int32((*TTable)(unsafe.Pointer(pTab12)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _73 + } + /* Do not scan system tables */ + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab12)).FzName, __ccgo_ts+6591, int32(7)) { + goto _73 + } + /* Find the size of the table as last recorded in sqlite_stat1. + ** If any index is unanalyzed, then the threshold is -1 to + ** indicate a new, unanalyzed index + */ + szThreshold = (*TTable)(unsafe.Pointer(pTab12)).FnRowLogEst + nIndex = 0 + pIdx7 = (*TTable)(unsafe.Pointer(pTab12)).FpIndex for { - if !(pIdx6 != 0) { + if !(pIdx7 != 0) { break } - if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx6 + 100))&0x80>>7)) != 0) { - szThreshold = 0 /* Always analyze if any index lacks statistics */ - break + nIndex++ + if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx7 + 100))&0x80>>7)) != 0) { + szThreshold = int16(-int32(1)) /* Always analyze if any index lacks statistics */ } - goto _70 - _70: + goto _74 + _74: ; - pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext + pIdx7 = (*TIndex)(unsafe.Pointer(pIdx7)).FpNext } - if szThreshold != 0 { - _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab11, int32(OP_OpenRead)) - _sqlite3VdbeAddOp3(tls, v, int32(OP_IfSmaller), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), int32(szThreshold)) + /* If table pTab has not been used in a way that would benefit from + ** having analysis statistics during the current session, then skip it, + ** unless the 0x10000 MASK bit is set. */ + if (*TTable)(unsafe.Pointer(pTab12)).FtabFlags&uint32(TF_MaybeReanalyze) != uint32(0) { + /* Check for size change if stat1 has been used for a query */ + } else { + if opMask&uint32(0x10000) != 0 { + /* Check for size change if 0x10000 is set */ + } else { + if (*TTable)(unsafe.Pointer(pTab12)).FpIndex != uintptr(0) && int32(szThreshold) < 0 { + /* Do analysis if unanalyzed indexes exists */ + } else { + /* Otherwise, we can skip this table */ + goto _73 + } + } + } + nCheck++ + if nCheck == int32(2) { + /* If ANALYZE might be invoked two or more times, hold a write + ** transaction for efficiency */ + _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) + } + nBtree += nIndex + int32(1) + /* Reanalyze if the table is 10 times larger or smaller than + ** the last analysis. Unconditional reanalysis if there are + ** unanalyzed indexes. */ + _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab12, int32(OP_OpenRead)) + if int32(szThreshold) >= 0 { + iRange = int16(33) /* 10x size change */ + if int32(szThreshold) >= int32(iRange) { + v75 = int32(szThreshold) - int32(iRange) + } else { + v75 = -int32(1) + } + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IfSizeBetween), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), v75, int32(szThreshold)+int32(iRange)) + } else { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1))) } - zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18557, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab11)).FzName)) + zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18644, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab12)).FzName)) if opMask&uint32(0x01) != 0 { r11 = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, r11, 0, zSubSql, -int32(6)) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), r11, int32(1)) } else { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), 0, 0, 0, zSubSql, -int32(6)) + if nLimit != 0 { + v76 = int32(0x02) + } else { + v76 = 00 + } + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), v76, nLimit, 0, zSubSql, -int32(6)) } - goto _69 - _69: + goto _73 + _73: ; k4 = (*THashElem)(unsafe.Pointer(k4)).Fnext } - goto _67 - _67: + goto _71 + _71: ; iDb++ } _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) + /* In a schema with a large number of tables and indexes, scale back + ** the analysis_limit to avoid excess run-time in the worst case. + */ + if !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && nLimit > 0 && nBtree > int32(100) { + nLimit = int32(100) * nLimit / nBtree + if nLimit < int32(100) { + nLimit = int32(100) + } + aOp5 = _sqlite3VdbeGetOp(tls, v, 0) + iEnd = _sqlite3VdbeCurrentAddr(tls, v) + iAddr1 = 0 + for { + if !(iAddr1 < iEnd) { + break + } + if int32((*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fopcode) == int32(OP_SqlExec) { + (*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fp2 = nLimit + } + goto _77 + _77: + ; + iAddr1++ + } + } break /* ** PRAGMA busy_timeout @@ -115082,6 +116021,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** instructions to the VM. */ if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_NoColumns1) != 0 && zRight != 0 { } + goto pragma_out pragma_out: ; _sqlite3DbFree(tls, db, zLeft) @@ -115213,34 +116153,34 @@ var _encnames1 = [9]struct { Fenc Tu8 }{ 0: { - FzName: __ccgo_ts + 18466, + FzName: __ccgo_ts + 18553, Fenc: uint8(SQLITE_UTF8), }, 1: { - FzName: __ccgo_ts + 18471, + FzName: __ccgo_ts + 18558, Fenc: uint8(SQLITE_UTF8), }, 2: { - FzName: __ccgo_ts + 18477, + FzName: __ccgo_ts + 18564, Fenc: uint8(SQLITE_UTF16LE), }, 3: { - FzName: __ccgo_ts + 18486, + FzName: __ccgo_ts + 18573, Fenc: uint8(SQLITE_UTF16BE), }, 4: { - FzName: __ccgo_ts + 18495, + FzName: __ccgo_ts + 18582, Fenc: uint8(SQLITE_UTF16LE), }, 5: { - FzName: __ccgo_ts + 18503, + FzName: __ccgo_ts + 18590, Fenc: uint8(SQLITE_UTF16BE), }, 6: { - FzName: __ccgo_ts + 18511, + FzName: __ccgo_ts + 18598, }, 7: { - FzName: __ccgo_ts + 18518, + FzName: __ccgo_ts + 18605, }, 8: {}, } @@ -115336,14 +116276,14 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg _ = argc _ = argv _sqlite3StrAccumInit(tls, bp, uintptr(0), bp+32, int32(200), 0) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18575) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18662) i = 0 j = int32((*TPragmaName)(unsafe.Pointer(pPragma)).FiPragCName) for { if !(i < int32((*TPragmaName)(unsafe.Pointer(pPragma)).FnPragCName)) { break } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18590, libc.VaList(bp+240, int32(cSep), _pragCName[j])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18677, libc.VaList(bp+240, int32(cSep), _pragCName[j])) cSep = int8(',') goto _1 _1: @@ -115352,19 +116292,19 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg j++ } if i == 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18597, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18684, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) i++ } j = 0 if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_Result1) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18603) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18690) j++ } if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&(libc.Int32FromInt32(PragFlg_SchemaOpt)|libc.Int32FromInt32(PragFlg_SchemaReq)) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18615) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18702) j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5108, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5172, int32(1)) _sqlite3StrAccumFinish(tls, bp) rc = Xsqlite3_declare_vtab(tls, db, bp+32) if rc == SQLITE_OK { @@ -115379,7 +116319,7 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg (*TPragmaVtab)(unsafe.Pointer(pTab)).FnHidden = uint8(j) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) } *(*uintptr)(unsafe.Pointer(ppVtab)) = pTab return rc @@ -115425,14 +116365,14 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) { break } - if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { goto _1 } if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fop) != int32(SQLITE_INDEX_CONSTRAINT_EQ) { goto _1 } - if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { - goto _1 + if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + return int32(SQLITE_CONSTRAINT) } j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn - int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) seen[j] = i + int32(1) @@ -115450,16 +116390,13 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 j = seen[0] - int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) - if seen[int32(1)] == 0 { - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(1000) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(1000) - return SQLITE_OK - } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(20) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(20) - j = seen[int32(1)] - int32(1) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + if seen[int32(1)] != 0 { + j = seen[int32(1)] - int32(1) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + } return SQLITE_OK } @@ -115487,6 +116424,7 @@ func _pragmaVtabCursorClear(tls *libc.TLS, pCsr uintptr) { _ = i Xsqlite3_finalize(tls, (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma) (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma = uintptr(0) + (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FiRowid = 0 i = 0 for { if !(i < int32(libc.Uint64FromInt64(16)/libc.Uint64FromInt64(8))) { @@ -115562,7 +116500,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr } zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if zText != 0 { - *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+40, zText)) + *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+40, zText)) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -115574,13 +116512,13 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr j++ } _sqlite3StrAccumInit(tls, bp, uintptr(0), uintptr(0), 0, *(*int32)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb + 136 + 1*4))) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18630) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18717) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18638, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18725, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) } Xsqlite3_str_appendall(tls, bp, (*TPragmaName)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).FpName)).FzName) if *(*uintptr)(unsafe.Pointer(pCsr + 24)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18642, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18729, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) } zSql = _sqlite3StrAccumFinish(tls, bp) if zSql == uintptr(0) { @@ -115589,7 +116527,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr rc = Xsqlite3_prepare_v2(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), pCsr+8, uintptr(0)) Xsqlite3_free(tls, zSql) if rc != SQLITE_OK { - (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) + (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) return rc } return _pragmaVtabNext(tls, pVtabCursor) @@ -115715,24 +116653,24 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) /* A error message has already been generated. Do not overwrite it */ } else { if (*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(libc.Int32FromInt32(INITFLAG_AlterMask)) != 0 { - *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18676, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) + *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18763, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) (*TInitData)(unsafe.Pointer(pData)).Frc = int32(SQLITE_ERROR) } else { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_WriteSchema) != 0 { - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140891)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141840)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) } else { - v1 = __ccgo_ts + 5110 + v1 = __ccgo_ts + 5174 } zObj = v1 - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18704, libc.VaList(bp+8, zObj)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18791, libc.VaList(bp+8, zObj)) if zExtra != 0 && *(*int8)(unsafe.Pointer(zExtra)) != 0 { - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18735, libc.VaList(bp+8, z, zExtra)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18822, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140898)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141847)) } } } @@ -115740,9 +116678,9 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) } var _azAlterType = [3]uintptr{ - 0: __ccgo_ts + 18646, - 1: __ccgo_ts + 18653, - 2: __ccgo_ts + 18665, + 0: __ccgo_ts + 18733, + 1: __ccgo_ts + 18740, + 2: __ccgo_ts + 18752, } // C documentation @@ -115818,7 +116756,7 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(iDb) if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), db+192) == 0 || (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage && (*TInitData)(unsafe.Pointer(pData)).FmxPage > uint32(0) { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14518) + _corruptSchema(tls, pData, argv, __ccgo_ts+14611) } } libc.SetBitFieldPtr8Uint32(db+192+8, libc.Uint32FromInt32(0), 0, 0x1) @@ -115851,11 +116789,11 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr } else { pIndex = _sqlite3FindIndex(tls, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName) if pIndex == uintptr(0) { - _corruptSchema(tls, pData, argv, __ccgo_ts+18743) + _corruptSchema(tls, pData, argv, __ccgo_ts+18830) } else { if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), pIndex+88) == 0 || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum < uint32(2) || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage || _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14518) + _corruptSchema(tls, pData, argv, __ccgo_ts+14611) } } } @@ -115894,18 +116832,18 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** table name will be inserted automatically by the parser so we can just ** use the abbreviation "x" here. The parser will also automatically tag ** the schema table as read-only. */ - (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9060 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9185 if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6535 + v2 = __ccgo_ts + 6599 } else { - v2 = __ccgo_ts + 6068 + v2 = __ccgo_ts + 6132 } v1 = v2 zSchemaTabName = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(2)] = (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8132 - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18756 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8257 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18843 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(5)] = uintptr(0) (*(*TInitData)(unsafe.Pointer(bp + 72))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 72))).FiDb = iDb @@ -115994,7 +116932,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl } else { /* If opening an attached database, the encoding much match ENC(db) */ if (*(*[5]int32)(unsafe.Pointer(bp + 48)))[libc.Int32FromInt32(BTREE_TEXT_ENCODING)-libc.Int32FromInt32(1)]&int32(3) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12097) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12222) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -116020,7 +116958,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = uint8(1) } if int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) > int32(SQLITE_MAX_FILE_FORMAT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18828) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18915) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -116035,7 +116973,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl /* Read the schema information out of the schema tables */ (*(*TInitData)(unsafe.Pointer(bp + 72))).FmxPage = _sqlite3BtreeLastPage(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18852, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18939, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) rc = Xsqlite3_exec(tls, db, zSql, __ccgo_fp(_sqlite3InitCallback), bp+72, uintptr(0)) @@ -116072,12 +117010,14 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** curMain and calling sqlite3BtreeEnter(). For an error that occurs ** before that point, jump to error_out. */ + goto initone_error_out initone_error_out: ; if openedTransaction != 0 { _sqlite3BtreeCommit(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) } _sqlite3BtreeLeave(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) + goto error_out error_out: ; if rc != 0 { @@ -116332,7 +117272,12 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup - pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + if _sqlite3FaultSim(tls, int32(300)) != 0 { + pCleanup = uintptr(0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) + } else { + pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + } if pCleanup != 0 { (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup @@ -116363,7 +117308,7 @@ func _sqlite3ParseObjectInit(tls *libc.TLS, pParse uintptr, db uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FpParse = pParse (*TParse)(unsafe.Pointer(pParse)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1634, 0) } } @@ -116397,7 +117342,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } else { } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1634, 0) v1 = libc.Int32FromInt32(SQLITE_NOMEM) rc = v1 (*Tsqlite3)(unsafe.Pointer(db)).FerrCode = v1 @@ -116446,7 +117391,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep rc = _sqlite3BtreeSchemaLocked(tls, pBt) if rc != 0 { zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FzDbSName - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18886, libc.VaList(bp+432, zDb)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18973, libc.VaList(bp+432, zDb)) goto end_prepare } } @@ -116462,7 +117407,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep if nBytes >= 0 && (nBytes == 0 || int32(*(*int8)(unsafe.Pointer(zSql + uintptr(nBytes-int32(1))))) != 0) { mxLen = *(*int32)(unsafe.Pointer(db + 136 + 1*4)) if nBytes > mxLen { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+18916, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+19003, 0) rc = _sqlite3ApiExit(tls, db, int32(SQLITE_TOOBIG)) goto end_prepare } @@ -116496,7 +117441,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } rc = (*(*TParse)(unsafe.Pointer(bp))).Frc if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3797, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3861, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) } else { _sqlite3Error(tls, db, rc) @@ -116512,6 +117457,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep (*(*TParse)(unsafe.Pointer(bp))).FpTriggerPrg = (*TTriggerPrg)(unsafe.Pointer(pT)).FpNext _sqlite3DbFree(tls, db, pT) } + goto end_prepare end_prepare: ; _sqlite3ParseObjectReset(tls, bp) @@ -116525,7 +117471,7 @@ func _sqlite3LockAndPrepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int3 cnt = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141699)) + return _sqlite3MisuseError(tls, int32(142654)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -116659,7 +117605,7 @@ func _sqlite3Prepare16(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, pr rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141848)) + return _sqlite3MisuseError(tls, int32(142803)) } if nBytes >= 0 { z = zSql @@ -117065,15 +118011,15 @@ func _sqlite3JoinType(tls *libc.TLS, pParse uintptr, pA uintptr, pB uintptr, pC i++ } if jointype&(libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER)) == libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER) || jointype&int32(JT_ERROR) != 0 || jointype&(libc.Int32FromInt32(JT_OUTER)|libc.Int32FromInt32(JT_LEFT)|libc.Int32FromInt32(JT_RIGHT)) == int32(JT_OUTER) { - zSp1 = __ccgo_ts + 11204 - zSp2 = __ccgo_ts + 11204 + zSp1 = __ccgo_ts + 11329 + zSp2 = __ccgo_ts + 11329 if pB == uintptr(0) { zSp1++ } if pC == uintptr(0) { zSp2++ } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18935, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19022, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) jointype = int32(JT_INNER) } return jointype @@ -117364,7 +118310,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { if int32((*TSrcItem)(unsafe.Pointer(pRight)).Ffg.Fjointype)&int32(JT_NATURAL) != 0 { pUsing = uintptr(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x400>>10)) != 0 || *(*uintptr)(unsafe.Pointer(pRight + 72)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18965, libc.VaList(bp+16, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19052, libc.VaList(bp+16, 0)) return int32(1) } j = 0 @@ -117414,7 +118360,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { zName1 = (*(*TIdList_item)(unsafe.Pointer(pList + 8 + uintptr(j)*16))).FzName iRightCol = _sqlite3ColumnIndex(tls, pRightTab, zName1) if iRightCol < 0 || _tableAndColumnIndex(tls, pSrc, 0, i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19015, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19102, libc.VaList(bp+16, zName1)) return int32(1) } pE1 = _sqlite3CreateColumnExpr(tls, db, pSrc, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) @@ -117436,7 +118382,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { pFuncArgs = uintptr(0) /* Arguments to the coalesce() */ for _tableAndColumnIndex(tls, pSrc, *(*int32)(unsafe.Pointer(bp))+int32(1), i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) != 0 { if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 60 + 4))&0x400>>10)) == 0 || _sqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 72)), zName1) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19079, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19166, libc.VaList(bp+16, zName1)) break } pFuncArgs = _sqlite3ExprListAppend(tls, pParse, pFuncArgs, pE1) @@ -117480,7 +118426,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { } var _tkCoalesce = TToken{ - Fz: __ccgo_ts + 6732, + Fz: __ccgo_ts + 6796, Fn: uint32(8), } @@ -118256,13 +119202,13 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { _ = z switch id { case int32(TK_ALL): - z = __ccgo_ts + 19116 + z = __ccgo_ts + 19203 case int32(TK_INTERSECT): - z = __ccgo_ts + 19126 + z = __ccgo_ts + 19213 case int32(TK_EXCEPT): - z = __ccgo_ts + 19136 + z = __ccgo_ts + 19223 default: - z = __ccgo_ts + 19143 + z = __ccgo_ts + 19230 break } return z @@ -118283,7 +119229,7 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { func _explainTempTable(tls *libc.TLS, pParse uintptr, zUsage uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19149, libc.VaList(bp+8, zUsage)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19236, libc.VaList(bp+8, zUsage)) } /* @@ -118317,12 +119263,17 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, iParm = (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm /* True if sorter record includes seq. no. */ nRefKey = 0 aOutEx = (*TSelect)(unsafe.Pointer(p)).FpEList + 8 - if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat > 0 { - v1 = __ccgo_ts + 19172 + nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat == 0 || nKey == int32(1) { + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat != 0 { + v1 = __ccgo_ts + 19259 + } else { + v1 = __ccgo_ts + 1664 + } + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19273, libc.VaList(bp+8, v1)) } else { - v1 = __ccgo_ts + 1650 + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19304, libc.VaList(bp+8, nKey)) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19187, libc.VaList(bp+8, v1)) if (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut != 0 { _sqlite3VdbeAddOp2(tls, v, int32(OP_Gosub), (*TSortCtx)(unsafe.Pointer(pSort)).FregReturn, (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut) _sqlite3VdbeGoto(tls, v, addrBreak) @@ -118344,7 +119295,6 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, regRow = _sqlite3GetTempRange(tls, pParse, nColumn) } } - nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat if int32((*TSortCtx)(unsafe.Pointer(pSort)).FsortFlags)&int32(SORTFLAG_UseSorter) != 0 { v3 = pParse + 56 *(*int32)(unsafe.Pointer(v3))++ @@ -118562,7 +119512,7 @@ func _columnTypeImpl(tls *libc.TLS, pNC uintptr, pExpr uintptr, pzOrigDb uintptr } if iCol < 0 { zType = __ccgo_ts + 1138 - *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16696 + *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16783 } else { *(*uintptr)(unsafe.Pointer(bp + 16)) = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, uintptr(0)) @@ -118708,13 +119658,13 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) iCol = int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) } if iCol < 0 { - zCol = __ccgo_ts + 16696 + zCol = __ccgo_ts + 16783 } else { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } if fullName != 0 { zName1 = uintptr(0) - zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12383, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) + zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12508, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zName1, __ccgo_fp(_sqlite3OomClear)) } else { _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zCol, uintptr(-libc.Int32FromInt32(1))) @@ -118722,7 +119672,7 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } else { z = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32))).FzEName if z == uintptr(0) { - v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19218, libc.VaList(bp+8, i+int32(1))) + v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19350, libc.VaList(bp+8, i+int32(1))) } else { v2 = _sqlite3DbStrDup(tls, db, z) } @@ -118814,7 +119764,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if iCol >= 0 { v3 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } else { - v3 = __ccgo_ts + 16696 + v3 = __ccgo_ts + 16783 } zName = v3 } else { @@ -118829,7 +119779,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if zName != 0 && !(_sqlite3IsTrueOrFalse(tls, zName) != 0) { zName = _sqlite3DbStrDup(tls, db, zName) } else { - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19218, libc.VaList(bp+40, i+int32(1))) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19350, libc.VaList(bp+40, i+int32(1))) } /* Make sure the column name is unique. If the name is not unique, ** append an integer to the name so that it becomes unique. @@ -118865,7 +119815,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, } *(*Tu32)(unsafe.Pointer(bp))++ v8 = *(*Tu32)(unsafe.Pointer(bp)) - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19227, libc.VaList(bp+40, nName, zName, v8)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19359, libc.VaList(bp+40, nName, zName, v8)) _sqlite3ProgressCheck(tls, pParse) if *(*Tu32)(unsafe.Pointer(bp)) > uint32(3) { Xsqlite3_randomness(tls, int32(4), bp) @@ -118925,9 +119875,9 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS defer tls.Free(64) var a, db, p, pCol, pColl, pS2, zType, p4, p5 uintptr var i, j, m int32 - var m1, n Ti64 + var k, n Ti64 var _ /* sNC at bp+0 */ TNameContext - _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, m, m1, n, p, pCol, pColl, pS2, zType, p4, p5 + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, k, m, n, p, pCol, pColl, pS2, zType, p4, p5 db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { return @@ -118944,17 +119894,22 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS if !(i < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } + m = 0 + pS2 = pSelect *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags) & libc.Int32FromInt32(COLFLAG_NOINSERT)) p = (*(*TExprList_item)(unsafe.Pointer(a + uintptr(i)*32))).FpExpr /* pCol->szEst = ... // Column size est for SELECT tables never used */ (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, p) + for int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) && (*TSelect)(unsafe.Pointer(pS2)).FpNext != uintptr(0) { + m |= _sqlite3ExprDataType(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext + (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + } if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) { (*TColumn)(unsafe.Pointer(pCol)).Faffinity = aff } - if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && (*TSelect)(unsafe.Pointer(pSelect)).FpNext != 0 { - m = 0 - m = 0 - pS2 = (*TSelect)(unsafe.Pointer(pSelect)).FpNext + if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && ((*TSelect)(unsafe.Pointer(pS2)).FpNext != 0 || pS2 != pSelect) { + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext for { if !(pS2 != 0) { break @@ -118979,7 +119934,7 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS zType = _columnTypeImpl(tls, bp, p, uintptr(0), uintptr(0), uintptr(0)) if zType == uintptr(0) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) != int32(_sqlite3AffinityType(tls, zType, uintptr(0))) { if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_NUMERIC) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_FLEXNUM) { - zType = __ccgo_ts + 19235 + zType = __ccgo_ts + 19367 } else { zType = uintptr(0) j = int32(1) @@ -118999,13 +119954,13 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS } } if zType != 0 { - m1 = int64(_sqlite3Strlen30(tls, zType)) + k = int64(_sqlite3Strlen30(tls, zType)) n = int64(_sqlite3Strlen30(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) - (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+m1+int64(2))) + (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+k+int64(2))) p4 = pCol + 14 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) & ^(libc.Int32FromInt32(COLFLAG_HASTYPE) | libc.Int32FromInt32(COLFLAG_HASCOLL))) if (*TColumn)(unsafe.Pointer(pCol)).FzCnName != 0 { - libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(m1+int64(1))) + libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(k+int64(1))) p5 = pCol + 14 *(*Tu16)(unsafe.Pointer(p5)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p5))) | libc.Int32FromInt32(COLFLAG_HASTYPE)) } @@ -119294,7 +120249,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest iDistinct = 0 /* To ensure unique results if UNION */ eDest = int32(SRT_Fifo) /* Registers used by LIMIT and OFFSET */ if (*TSelect)(unsafe.Pointer(p)).FpWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19239, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19371, 0) return } /* Obtain authorization to do a recursive query */ @@ -119387,7 +120342,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest break } if (*TSelect)(unsafe.Pointer(pFirstRec)).FselFlags&uint32(SF_Aggregate) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19288, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19420, 0) goto end_of_recursive_query } (*TSelect)(unsafe.Pointer(pFirstRec)).Fop = uint8(TK_ALL) @@ -119402,7 +120357,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest /* Store the results of the setup-query in Queue. */ pSetup = (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior (*TSelect)(unsafe.Pointer(pSetup)).FpNext = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19330, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19462, 0) rc = _sqlite3Select(tls, pParse, pSetup, bp) (*TSelect)(unsafe.Pointer(pSetup)).FpNext = p if rc != 0 { @@ -119430,12 +120385,13 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest ** the value for the recursive-table. Store the results in the Queue. */ (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19336, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19468, 0) _sqlite3Select(tls, pParse, p, bp) (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = pSetup /* Keep running the loop until the Queue is empty */ _sqlite3VdbeGoto(tls, v, addrTop) _sqlite3VdbeResolveLabel(tls, v, addrBreak) + goto end_of_recursive_query end_of_recursive_query: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSelect)(unsafe.Pointer(p)).FpOrderBy) @@ -119482,11 +120438,11 @@ func _multiSelectValues(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) nRow += bShowAll } if nRow == int32(1) { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } else { - v1 = __ccgo_ts + 19351 + v1 = __ccgo_ts + 19483 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19353, libc.VaList(bp+8, nRow, v1)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19485, libc.VaList(bp+8, nRow, v1)) for p != 0 { _selectInnerLoop(tls, pParse, p, -int32(1), uintptr(0), uintptr(0), pDest, int32(1), int32(1)) if !(bShowAll != 0) { @@ -119594,8 +120550,8 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in return _multiSelectOrderBy(tls, pParse, p, pDest) } else { if (*TSelect)(unsafe.Pointer(pPrior)).FpPrior == uintptr(0) { - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19376, 0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19391, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19508, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19523, 0) } /* Generate code for the left and right SELECT statements. */ @@ -119620,7 +120576,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in _sqlite3VdbeAddOp3(tls, v, int32(OP_OffsetLimit), (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TSelect)(unsafe.Pointer(p)).FiOffset+int32(1), (*TSelect)(unsafe.Pointer(p)).FiOffset) } } - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19116, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19203, 0) rc = _sqlite3Select(tls, pParse, p, bp) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -119672,7 +120628,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 48))).FeDest = op - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19410, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19542, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+48) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -119730,7 +120686,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit1 = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 88))).FiSDParm = tab2 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19410, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19542, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+88) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -119832,6 +120788,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in } _sqlite3KeyInfoUnref(tls, pKeyInfo) } + goto multi_select_end multi_select_end: ; (*TSelectDest)(unsafe.Pointer(pDest)).FiSdst = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst @@ -119852,9 +120809,9 @@ func _sqlite3SelectWrongNumTermsError(tls *libc.TLS, pParse uintptr, p uintptr) bp := tls.Alloc(16) defer tls.Free(16) if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Values) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19431, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19563, 0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19477, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19609, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) } } @@ -120223,8 +121180,8 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr (*TSelect)(unsafe.Pointer(pSplit)).FpPrior = uintptr(0) (*TSelect)(unsafe.Pointer(pPrior)).FpNext = uintptr(0) (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy = _sqlite3ExprListDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pOrderBy, 0) - _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7369) - _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7369) + _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7494) + _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7494) /* Compute the limit registers */ _computeLimitRegisters(tls, pParse, p, labelEnd) if (*TSelect)(unsafe.Pointer(p)).FiLimit != 0 && op == int32(TK_ALL) { @@ -120268,14 +121225,14 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr regOutB = v21 _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), regAddrA) _sqlite3SelectDestInit(tls, bp+40, int32(SRT_Coroutine), regAddrB) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19559, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19691, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) /* Generate a coroutine to evaluate the SELECT statement to the ** left of the compound operator - the "A" select. */ addrSelectA = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regAddrA, 0, addrSelectA) (*TSelect)(unsafe.Pointer(pPrior)).FiLimit = regLimitA - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19570, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19702, 0) _sqlite3Select(tls, pParse, pPrior, bp) _sqlite3VdbeEndCoroutine(tls, v, regAddrA) _sqlite3VdbeJumpHere(tls, v, addr1) @@ -120288,7 +121245,7 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr savedOffset = (*TSelect)(unsafe.Pointer(p)).FiOffset (*TSelect)(unsafe.Pointer(p)).FiLimit = regLimitB (*TSelect)(unsafe.Pointer(p)).FiOffset = 0 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19575, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19707, 0) _sqlite3Select(tls, pParse, p, bp+40) (*TSelect)(unsafe.Pointer(p)).FiLimit = savedLimit (*TSelect)(unsafe.Pointer(p)).FiOffset = savedOffset @@ -120503,7 +121460,7 @@ func _substExpr(tls *libc.TLS, pSubst uintptr, pExpr uintptr) (r uintptr) { if pColl != 0 { v1 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v1 = __ccgo_ts + 5088 + v1 = __ccgo_ts + 5152 } pExpr = _sqlite3ExprAddCollateString(tls, (*TSubstContext)(unsafe.Pointer(pSubst)).FpParse, pExpr, v1) } @@ -121539,10 +122496,10 @@ func _findConstInWhere(tls *libc.TLS, pConst uintptr, pExpr uintptr) { } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft - if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pLeft) != 0 { + if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pLeft) != 0 { _constInsert(tls, pConst, pRight, pLeft, pExpr) } - if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pRight) != 0 { + if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pRight) != 0 { _constInsert(tls, pConst, pLeft, pRight, pExpr) } } @@ -121775,6 +122732,18 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** The hope is that the terms added to the inner query will make it more // ** efficient. // ** +// ** NAME AMBIGUITY +// ** +// ** This optimization is called the "WHERE-clause push-down optimization". +// ** +// ** Do not confuse this optimization with another unrelated optimization +// ** with a similar name: The "MySQL push-down optimization" causes WHERE +// ** clause terms that can be evaluated using only the index and without +// ** reference to the table are run first, so that if they are false, +// ** unnecessary table seeks are avoided. +// ** +// ** RULES +// ** // ** Do not attempt this optimization if: // ** // ** (1) (** This restriction was removed on 2017-09-29. We used to @@ -121840,10 +122809,10 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** (9c) There is a RIGHT JOIN (or FULL JOIN) in between the ON/USING // ** clause and the subquery. // ** -// ** Without this restriction, the push-down optimization might move -// ** the ON/USING filter expression from the left side of a RIGHT JOIN -// ** over to the right side, which leads to incorrect answers. See -// ** also restriction (6) in sqlite3ExprIsSingleTableConstraint(). +// ** Without this restriction, the WHERE-clause push-down optimization +// ** might move the ON/USING filter expression from the left side of a +// ** RIGHT JOIN over to the right side, which leads to incorrect answers. +// ** See also restriction (6) in sqlite3ExprIsSingleTableConstraint(). // ** // ** (10) The inner query is not the right-hand table of a RIGHT JOIN. // ** @@ -121936,7 +122905,7 @@ func _pushDownWhereTerms(tls *libc.TLS, pParse uintptr, pSubq uintptr, pWhere ui nChng += _pushDownWhereTerms(tls, pParse, pSubq, (*TExpr)(unsafe.Pointer(pWhere)).FpRight, pSrcList, iSrc) pWhere = (*TExpr)(unsafe.Pointer(pWhere)).FpLeft } - if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc) != 0 { + if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc, int32(1)) != 0 { nChng++ *(*Tu32)(unsafe.Pointer(pSubq + 4)) |= uint32(SF_PushDown) for pSubq != 0 { @@ -122106,13 +123075,13 @@ func _minMaxQuery(tls *libc.TLS, db uintptr, pFunc uintptr, ppMinMax uintptr) (r return uint8(eRet) } zFunc = *(*uintptr)(unsafe.Pointer(pFunc + 8)) - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15552) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15645) == 0 { eRet = int32(WHERE_ORDERBY_MIN) if _sqlite3ExprCanBeNull(tls, (*(*TExprList_item)(unsafe.Pointer(pEList + 8))).FpExpr) != 0 { sortFlags = uint8(KEYINFO_ORDER_BIGNULL) } } else { - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15556) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15649) == 0 { eRet = int32(WHERE_ORDERBY_MAX) sortFlags = uint8(KEYINFO_ORDER_DESC) } else { @@ -122200,7 +123169,7 @@ func _sqlite3IndexedByLookup(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r in pIdx = (*TIndex)(unsafe.Pointer(pIdx)).FpNext } if !(pIdx != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19581, libc.VaList(bp+8, zIndexedBy, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19713, libc.VaList(bp+8, zIndexedBy, 0)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) return int32(SQLITE_ERROR) } @@ -122324,7 +123293,7 @@ func _cannotBeFunction(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x4>>2)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19599, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19731, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) return int32(1) } return 0 @@ -122499,7 +123468,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } *(*Tu32)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect + 4)) |= uint32(SF_CopyCte) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x2>>1)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19622, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19754, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) return int32(2) } libc.SetBitFieldPtr16Uint32(pFrom+60+4, libc.Uint32FromInt32(1), 8, 0x100) @@ -122523,7 +123492,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ libc.SetBitFieldPtr16Uint32(pItem+60+4, libc.Uint32FromInt32(1), 6, 0x40) if (*TSelect)(unsafe.Pointer(pRecTerm)).FselFlags&uint32(SF_Recursive) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19642, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19774, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) return int32(2) } *(*Tu32)(unsafe.Pointer(pRecTerm + 4)) |= uint32(SF_Recursive) @@ -122545,7 +123514,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } pRecTerm = (*TSelect)(unsafe.Pointer(pRecTerm)).FpPrior } - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19685 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19817 pSavedWith = (*TParse)(unsafe.Pointer(pParse)).FpWith (*TParse)(unsafe.Pointer(pParse)).FpWith = *(*uintptr)(unsafe.Pointer(bp)) if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { @@ -122576,7 +123545,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom pEList = (*TSelect)(unsafe.Pointer(pLeft)).FpEList if (*TCte)(unsafe.Pointer(pCte)).FpCols != 0 { if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr != (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19708, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19840, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) (*TParse)(unsafe.Pointer(pParse)).FpWith = pSavedWith return int32(2) } @@ -122585,9 +123554,9 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom _sqlite3ColumnsFromExprList(tls, pParse, pEList, pTab+54, pTab+8) if bMayRecursive != 0 { if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19746 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19878 } else { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19780 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19912 } _sqlite3WalkSelect(tls, pWalker, pSel) } @@ -122646,7 +123615,7 @@ func _sqlite3ExpandSubquery(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int if (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias != 0 { (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3DbStrDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias) } else { - (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19818, libc.VaList(bp+8, pFrom)) + (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19950, libc.VaList(bp+8, pFrom)) } for (*TSelect)(unsafe.Pointer(pSel)).FpPrior != 0 { pSel = (*TSelect)(unsafe.Pointer(pSel)).FpPrior @@ -122802,7 +123771,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { return int32(WRC_Abort) } if (*TTable)(unsafe.Pointer(pTab)).FnTabRef >= uint32(0xffff) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19822, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19954, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) (*TSrcItem)(unsafe.Pointer(pFrom)).FpTab = uintptr(0) return int32(WRC_Abort) } @@ -122817,7 +123786,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_EnableView) == uint64(0) && (*TTable)(unsafe.Pointer(pTab)).FpSchema != (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19861, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19993, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } (*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect = _sqlite3SelectDup(tls, db, (*(*struct { FpSelect uintptr @@ -122832,7 +123801,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).Fp)).FeVtabRisk) > libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15111, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15204, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } } nCol = (*TTable)(unsafe.Pointer(pTab)).FnCol @@ -122954,7 +123923,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if iDb >= 0 { v10 = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName } else { - v10 = __ccgo_ts + 6592 + v10 = __ccgo_ts + 6656 } zSchemaName = v10 } @@ -122971,7 +123940,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { pNew = _sqlite3ExprListAppend(tls, pParse, pNew, pRight) if pNew != 0 { pX = pNew + 8 + uintptr((*TExprList)(unsafe.Pointer(pNew)).FnExpr-int32(1))*32 - (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19892, libc.VaList(bp+8, zUName)) + (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20024, libc.VaList(bp+8, zUName)) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(ENAME_TAB), 0, 0x3) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(1), 7, 0x80) } @@ -123050,7 +124019,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if pNestedFrom != 0 && libc.Bool(libc.Bool(!(libc.Int32FromInt32(ViewCanHaveRowid) != 0)) || j < (*TExprList)(unsafe.Pointer(pNestedFrom)).FnExpr) { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, (*(*TExprList_item)(unsafe.Pointer(pNestedFrom + 8 + uintptr(j)*32))).FzEName) } else { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19897, libc.VaList(bp+8, zSchemaName, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20029, libc.VaList(bp+8, zSchemaName, zTabName, zName)) } if j == int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) { v13 = int32(ENAME_ROWID) @@ -123063,7 +124032,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } } else { if longNames != 0 { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12383, libc.VaList(bp+8, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12508, libc.VaList(bp+8, zTabName, zName)) libc.SetBitFieldPtr16Uint32(pX1+16+4, libc.Uint32FromInt32(ENAME_NAME), 0, 0x3) } else { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, zName) @@ -123083,9 +124052,9 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if !(tableSeen != 0) { if zTName != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19906, libc.VaList(bp+8, zTName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20038, libc.VaList(bp+8, zTName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19924, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20056, 0) } } } @@ -123099,7 +124068,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if (*TSelect)(unsafe.Pointer(p)).FpEList != 0 { if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpEList)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19944, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20076, 0) return int32(WRC_Abort) } if elistFlags&uint32(libc.Int32FromInt32(EP_HasFunc)|libc.Int32FromInt32(EP_Subquery)) != uint32(0) { @@ -123440,12 +124409,12 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct >= 0 { pE = (*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFExpr if *(*uintptr)(unsafe.Pointer(pE + 32)) == uintptr(0) || (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pE + 32)))).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19975, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20107, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct = -int32(1) } else { pKeyInfo = _sqlite3KeyInfoFromExprList(tls, pParse, *(*uintptr)(unsafe.Pointer(pE + 32)), 0, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistAddr = _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct, 0, 0, pKeyInfo, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20026, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20158, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } } if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab >= 0 { @@ -123466,7 +124435,7 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { (*TKeyInfo)(unsafe.Pointer(pKeyInfo1)).FnKeyField++ } _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab, (*TExprList)(unsafe.Pointer(pOBList)).FnExpr+nExtra, 0, pKeyInfo1, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20059, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20191, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } goto _1 _1: @@ -123771,16 +124740,16 @@ func _explainSimpleCount(tls *libc.TLS, pParse uintptr, pTab uintptr, pIdx uintp if int32((*TParse)(unsafe.Pointer(pParse)).Fexplain) == int32(2) { bCover = libc.BoolInt32(pIdx != uintptr(0) && ((*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) || !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == libc.Int32FromInt32(SQLITE_IDXTYPE_PRIMARYKEY)))) if bCover != 0 { - v1 = __ccgo_ts + 20092 + v1 = __ccgo_ts + 20224 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } if bCover != 0 { v2 = (*TIndex)(unsafe.Pointer(pIdx)).FzName } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20115, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20247, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) } } @@ -123812,7 +124781,7 @@ func _havingToWhereExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 ** statements AggInfo structure. */ if _sqlite3ExprIsConstantOrGroupBy(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, pExpr, (*TSelect)(unsafe.Pointer(pS)).FpGroupBy) != 0 && libc.BoolInt32((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse)) == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb - pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8132) + pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8257) if pNew != 0 { pWhere = (*TSelect)(unsafe.Pointer(pS)).FpWhere t = *(*TExpr)(unsafe.Pointer(pNew)) @@ -123968,7 +124937,7 @@ func _countOfViewOptimization(tls *libc.TLS, pParse uintptr, p uintptr) (r int32 if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { return 0 } /* Result is an aggregate */ - if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15846) != 0 { + if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15939) != 0 { return 0 } /* Is count() */ if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != uintptr(0) { @@ -124231,7 +125200,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { v1 = (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p0)).FpTab)).FzName } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20127, libc.VaList(bp+176, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20259, libc.VaList(bp+176, v1)) goto select_end } /* Clear the SF_UFSrcCheck flag. The check has already been performed, @@ -124332,7 +125301,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Catch mismatch in the declared columns of a view and the number of ** columns in the SELECT on the RHS */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) != (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20181, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20313, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) goto select_end } /* Do not attempt the usual optimizations (flattening and ORDER BY @@ -124469,12 +125438,12 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r ** string for the fake column name seems safer. */ if (*TSrcItem)(unsafe.Pointer(pItem1)).FcolUsed == uint64(0) && (*TSrcItem)(unsafe.Pointer(pItem1)).FzName != uintptr(0) { - _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1650, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) + _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1664, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) } /* Generate code for all sub-queries in the FROM clause */ pSub1 = (*TSrcItem)(unsafe.Pointer(pItem1)).FpSelect - if pSub1 == uintptr(0) { + if pSub1 == uintptr(0) || (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub != 0 { goto _10 } /* The code for a subquery should only be generated once. */ @@ -124513,7 +125482,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn, 0, addrTop) (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub = addrTop _sqlite3SelectDestInit(tls, bp+72, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20221, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20353, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow libc.SetBitFieldPtr16Uint32(pItem1+60+4, libc.Uint32FromInt32(1), 5, 0x20) @@ -124561,7 +125530,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { } _sqlite3SelectDestInit(tls, bp+72, int32(SRT_EphemTab), (*TSrcItem)(unsafe.Pointer(pItem1)).FiCursor) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20236, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20368, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow if onceAddr != 0 { @@ -124971,11 +125940,11 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r groupBySort = 0 } else { if (*(*TDistinctCtx)(unsafe.Pointer(bp))).FisTnct != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Distinct) == uint32(0) { - v44 = __ccgo_ts + 20252 + v44 = __ccgo_ts + 20384 } else { - v44 = __ccgo_ts + 20261 + v44 = __ccgo_ts + 20393 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19149, libc.VaList(bp+176, v44)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19236, libc.VaList(bp+176, v44)) groupBySort = int32(1) nGroupBy = (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr nCol = nGroupBy @@ -125294,7 +126263,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeResolveLabel(tls, v, addrEnd) } /* endif aggregate query */ if int32((*(*TDistinctCtx)(unsafe.Pointer(bp))).FeTnctType) == int32(WHERE_DISTINCT_UNORDERED) { - _explainTempTable(tls, pParse, __ccgo_ts+20252) + _explainTempTable(tls, pParse, __ccgo_ts+20384) } /* If there is an ORDER BY clause, then we need to sort the results ** and send them to the callback one by one. @@ -125311,6 +126280,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Control jumps to here if an error is encountered above, or upon ** successful coding of the SELECT. */ + goto select_end select_end: ; _sqlite3ExprListDelete(tls, db, *(*uintptr)(unsafe.Pointer(bp + 64))) @@ -125399,7 +126369,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr if !(i < nCol) { break } - z = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) + z = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) if z == uintptr(0) { goto malloc_failed } @@ -125415,7 +126385,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr } else { if int32((*TTabResult)(unsafe.Pointer(p)).FnColumn) != nCol { Xsqlite3_free(tls, (*TTabResult)(unsafe.Pointer(p)).FzErrMsg) - (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20270, 0) + (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20402, 0) (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) return int32(1) } @@ -125450,6 +126420,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr (*TTabResult)(unsafe.Pointer(p)).FnRow++ } return 0 + goto malloc_failed malloc_failed: ; (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) @@ -125504,7 +126475,7 @@ func Xsqlite3_get_table(tls *libc.TLS, db uintptr, zSql uintptr, pazResult uintp if (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg != 0 { if pzErrMsg != 0 { Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pzErrMsg))) - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) } Xsqlite3_free(tls, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg) } @@ -125666,7 +126637,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if isTemp != 0 { /* If TEMP was specified, then the trigger name may not be qualified. */ if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20335, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20467, 0) goto trigger_cleanup } iDb = int32(1) @@ -125706,7 +126677,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto trigger_cleanup } - _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20381, *(*uintptr)(unsafe.Pointer(bp))) + _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20513, *(*uintptr)(unsafe.Pointer(bp))) if _sqlite3FixSrcList(tls, bp+8, pTableName) != 0 { goto trigger_cleanup } @@ -125716,11 +126687,11 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_orphan_error } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20389, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20521, 0) goto trigger_orphan_error } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, db) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20430, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20562, 0) goto trigger_orphan_error } /* Check that the trigger name is not reserved and that no trigger of the @@ -125729,13 +126700,13 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if zName == uintptr(0) { goto trigger_cleanup } - if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20381, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { + if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20513, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { goto trigger_cleanup } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema+56, zName) != 0 { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20470, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20602, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) } @@ -125743,8 +126714,8 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 } } /* Do not create a trigger on a system table */ - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6527, int32(7)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20496, 0) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6591, int32(7)) == 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20628, 0) goto trigger_cleanup } /* INSTEAD of triggers are only for views and views only support INSTEAD @@ -125752,15 +126723,15 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && tr_tm != int32(TK_INSTEAD) { if tr_tm == int32(TK_BEFORE) { - v1 = __ccgo_ts + 20534 + v1 = __ccgo_ts + 20666 } else { - v1 = __ccgo_ts + 20541 + v1 = __ccgo_ts + 20673 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20547, libc.VaList(bp+112, v1, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20679, libc.VaList(bp+112, v1, pTableName+8)) goto trigger_orphan_error } if !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) && tr_tm == int32(TK_INSTEAD) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20584, libc.VaList(bp+112, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20716, libc.VaList(bp+112, pTableName+8)) goto trigger_orphan_error } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -125780,9 +126751,9 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iTabDb == int32(1) { - v3 = __ccgo_ts + 6535 + v3 = __ccgo_ts + 6599 } else { - v3 = __ccgo_ts + 6068 + v3 = __ccgo_ts + 6132 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto trigger_cleanup @@ -125823,6 +126794,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 (*TTrigger)(unsafe.Pointer(pTrigger)).FpColumns = pColumns pColumns = uintptr(0) (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger = pTrigger + goto trigger_cleanup trigger_cleanup: ; _sqlite3DbFree(tls, db, zName) @@ -125834,6 +126806,7 @@ trigger_cleanup: } else { } return + goto trigger_orphan_error trigger_orphan_error: ; if int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) == int32(1) { @@ -125880,7 +126853,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl pStepList = (*TTriggerStep)(unsafe.Pointer(pStepList)).FpNext } _sqlite3TokenInit(tls, bp+96, (*TTrigger)(unsafe.Pointer(pTrig)).FzName) - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20381, bp+96) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20513, bp+96) if _sqlite3FixTriggerStep(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).Fstep_list) != 0 || _sqlite3FixExpr(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).FpWhen) != 0 { goto triggerfinish_cleanup } @@ -125902,7 +126875,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl break } if (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget != uintptr(0) && _sqlite3ShadowTableName(tls, db, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20630, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20762, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) goto triggerfinish_cleanup } goto _1 @@ -125918,10 +126891,10 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) z = _sqlite3DbStrNDup(tls, db, (*TToken)(unsafe.Pointer(pAll)).Fz, uint64((*TToken)(unsafe.Pointer(pAll)).Fn)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20678, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20810, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) _sqlite3DbFree(tls, db, z) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20753, libc.VaList(bp+120, zName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20885, libc.VaList(bp+120, zName)), uint16(0)) } } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { @@ -125938,6 +126911,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } } } + goto triggerfinish_cleanup triggerfinish_cleanup: ; _sqlite3DeleteTrigger(tls, db, pTrig) @@ -126188,7 +127162,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int } if !(pTrigger != 0) { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20782, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20914, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, zDb) } @@ -126196,6 +127170,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int goto drop_trigger_cleanup } _sqlite3DropTriggerPtr(tls, pParse, pTrigger) + goto drop_trigger_cleanup drop_trigger_cleanup: ; _sqlite3SrcListDelete(tls, db, pName) @@ -126229,9 +127204,9 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { code = int32(SQLITE_DROP_TRIGGER) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6535 + v1 = __ccgo_ts + 6599 } else { - v1 = __ccgo_ts + 6068 + v1 = __ccgo_ts + 6132 } zTab = v1 if iDb == int32(1) { @@ -126246,7 +127221,7 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { v2 = _sqlite3GetVdbe(tls, pParse) v = v2 if v2 != uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20802, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20934, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropTrigger), iDb, 0, 0, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName, 0) } @@ -126379,11 +127354,11 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { if op != int32(TK_INSERT) { if op == int32(TK_DELETE) { - v1 = __ccgo_ts + 20864 + v1 = __ccgo_ts + 20996 } else { - v1 = __ccgo_ts + 20871 + v1 = __ccgo_ts + 21003 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20878, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21010, libc.VaList(bp+8, v1)) } (*TTrigger)(unsafe.Pointer(p)).Ftr_tm = uint8(TRIGGER_BEFORE) } else { @@ -126400,6 +127375,7 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, p = (*TTrigger)(unsafe.Pointer(p)).FpNext } } + goto exit_triggers_exist exit_triggers_exist: ; if pMask != 0 { @@ -126483,7 +127459,7 @@ func _isAsteriskTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pTerm)).FpRight)).Fop) != int32(TK_ASTERISK) { return 0 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20926, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21058, 0) return int32(1) } @@ -126548,6 +127524,79 @@ func _sqlite3ExpandReturning(tls *libc.TLS, pParse uintptr, pList uintptr, pTab return pNew } +// C documentation +// +// /* If the Expr node is a subquery or an EXISTS operator or an IN operator that +// ** uses a subquery, and if the subquery is SF_Correlated, then mark the +// ** expression as EP_VarSelect. +// */ +func _sqlite3ReturningSubqueryVarSelect(tls *libc.TLS, NotUsed uintptr, pExpr uintptr) (r int32) { + _ = NotUsed + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) && (*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FselFlags&uint32(SF_Correlated) != uint32(0) { + *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** If the SELECT references the table pWalker->u.pTab, then do two things: +// ** +// ** (1) Mark the SELECT as as SF_Correlated. +// ** (2) Set pWalker->eCode to non-zero so that the caller will know +// ** that (1) has happened. +// */ +func _sqlite3ReturningSubqueryCorrelated(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + var i int32 + var pSrc uintptr + _, _ = i, pSrc + pSrc = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + i = 0 + for { + if !(i < (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) { + break + } + if (*(*TSrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104))).FpTab == *(*uintptr)(unsafe.Pointer(pWalker + 40)) { + *(*Tu32)(unsafe.Pointer(pSelect + 4)) |= uint32(SF_Correlated) + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + break + } + goto _1 + _1: + ; + i++ + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Scan the expression list that is the argument to RETURNING looking +// ** for subqueries that depend on the table which is being modified in the +// ** statement that is hosting the RETURNING clause (pTab). Mark all such +// ** subqueries as SF_Correlated. If the subqueries are part of an +// ** expression, mark the expression as EP_VarSelect. +// ** +// ** https://sqlite.org/forum/forumpost/2c83569ce8945d39 +// */ +func _sqlite3ProcessReturningSubqueries(tls *libc.TLS, pEList uintptr, pTab uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ExprWalkNoop) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3ReturningSubqueryCorrelated) + *(*uintptr)(unsafe.Pointer(bp + 40)) = pTab + _sqlite3WalkExprList(tls, bp, pEList) + if (*(*TWalker)(unsafe.Pointer(bp))).FeCode != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ReturningSubqueryVarSelect) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) + _sqlite3WalkExprList(tls, bp, pEList) + } +} + // C documentation // // /* @@ -126582,6 +127631,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab (*(*TSelect)(unsafe.Pointer(bp))).FpSrc = bp + 128 (*(*TSrcList)(unsafe.Pointer(bp + 128))).FnSrc = int32(1) (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FpTab = pTab + (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FzName = (*TTable)(unsafe.Pointer(pTab)).FzName /* tag-20240424-1 */ (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FiCursor = -int32(1) _sqlite3SelectPrep(tls, pParse, bp, uintptr(0)) if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { @@ -126606,6 +127656,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab if _sqlite3ResolveExprListNames(tls, bp+240, pNew) == SQLITE_OK && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) { nCol = (*TExprList)(unsafe.Pointer(pNew)).FnExpr reg = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(1) + _sqlite3ProcessReturningSubqueries(tls, pNew, pTab) *(*int32)(unsafe.Pointer(pParse + 56)) += nCol + int32(2) (*TReturning)(unsafe.Pointer(pReturning)).FiRetReg = reg i = 0 @@ -126674,7 +127725,7 @@ func _codeTriggerProgram(tls *libc.TLS, pParse uintptr, pStepList uintptr, orcon } (*TParse)(unsafe.Pointer(pParse)).FeOrconf = uint8(v2) if (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6265, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6329, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) } switch int32((*TTriggerStep)(unsafe.Pointer(pStep)).Fop) { case int32(TK_UPDATE): @@ -126776,7 +127827,7 @@ func _codeRowTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab uintp v = _sqlite3GetVdbe(tls, bp+56) if v != 0 { if (*TTrigger)(unsafe.Pointer(pTrigger)).FzName != 0 { - _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+20968, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) + _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+21100, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) } /* If one was specified, code the WHEN clause. If it evaluates to false ** (or NULL) the sub-vdbe is immediately halted by jumping to the @@ -127465,7 +128516,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui chngPk = uint8(1) } else { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20982, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21114, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto update_cleanup } } @@ -127485,13 +128536,13 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui pRowidExpr = (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FpExpr iRowidExpr = i } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21018, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21150, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto update_cleanup } } if j < 0 { - v11 = __ccgo_ts + 7907 + v11 = __ccgo_ts + 8032 } else { v11 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName } @@ -128173,8 +129224,9 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui ** that information. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21037) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21169) } + goto update_cleanup update_cleanup: ; _sqlite3AuthContextPop(tls, bp) @@ -128606,9 +129658,9 @@ func _sqlite3UpsertAnalyzeTarget(tls *libc.TLS, pParse uintptr, pTabList uintptr if nClause == 0 && (*TUpsert)(unsafe.Pointer(pUpsert)).FpNextUpsert == uintptr(0) { (*(*[16]int8)(unsafe.Pointer(bp + 200)))[0] = 0 } else { - Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21050, libc.VaList(bp+224, nClause+int32(1))) + Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21182, libc.VaList(bp+224, nClause+int32(1))) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21054, libc.VaList(bp+224, bp+200)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21186, libc.VaList(bp+224, bp+200)) return int32(SQLITE_ERROR) } goto _1 @@ -128711,7 +129763,7 @@ func _sqlite3UpsertDoUpdate(tls *libc.TLS, pParse uintptr, pUpsert uintptr, pTab i++ } i = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), iDataCur, 0, iPk, nPk) - _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12472, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12597, -int32(1)) _sqlite3MayAbort(tls, pParse) _sqlite3VdbeJumpHere(tls, v, i) } @@ -128793,7 +129845,7 @@ func _execSql(tls *libc.TLS, db uintptr, pzErrMsg uintptr, zSql uintptr) (r int3 ** corrupt the sqlite_schema.sql field with other kinds of statements ** then run VACUUM to get those statements to execute at inappropriate ** times. */ - if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21127, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21131, uint64(3)) == 0) { + if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21259, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21263, uint64(3)) == 0) { rc = _execSql(tls, db, pzErrMsg, zSubSql) if rc != SQLITE_OK { break @@ -128893,6 +129945,7 @@ func _sqlite3Vacuum(tls *libc.TLS, pParse uintptr, _pNm uintptr, pInto uintptr) _sqlite3VdbeAddOp2(tls, v, int32(OP_Vacuum), iDb, iIntoReg) _sqlite3VdbeUsesBtree(tls, v, iDb) } + goto build_vacuum_end build_vacuum_end: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pInto) @@ -128920,24 +129973,24 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p pDb = uintptr(0) /* Name of output file */ pgflags = uint32(PAGER_SYNCHRONOUS_OFF) /* sync flags for output db */ if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21135) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21267) return int32(SQLITE_ERROR) /* IMP: R-12218-18073 */ } if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive > int32(1) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21175) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21307) return int32(SQLITE_ERROR) /* IMP: R-15610-35227 */ } saved_openFlags = (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags if pOut != 0 { if Xsqlite3_value_type(tls, pOut) != int32(SQLITE_TEXT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21218) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21350) return int32(SQLITE_ERROR) } zOut = Xsqlite3_value_text(tls, pOut) *(*uint32)(unsafe.Pointer(db + 76)) &= uint32(^libc.Int32FromInt32(SQLITE_OPEN_READONLY)) *(*uint32)(unsafe.Pointer(db + 76)) |= uint32(libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE)) } else { - zOut = __ccgo_ts + 1650 + zOut = __ccgo_ts + 1664 } /* Save the current value of the database flags so that it can be ** restored before returning. Then set the writable-schema flag, and @@ -128969,7 +130022,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** to write the journal header file. */ nDb = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21236, libc.VaList(bp+24, zOut)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21368, libc.VaList(bp+24, zOut)) (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags = saved_openFlags if rc != SQLITE_OK { goto end_of_vacuum @@ -128981,7 +130034,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p *(*Ti64)(unsafe.Pointer(bp)) = 0 if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != uintptr(0) && (_sqlite3OsFileSize(tls, id, bp) != SQLITE_OK || *(*Ti64)(unsafe.Pointer(bp)) > 0) { rc = int32(SQLITE_ERROR) - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21259) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21391) goto end_of_vacuum } *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_VacuumInto) @@ -128998,7 +130051,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** file. This is done before the sqlite3BtreeGetPageSize(pMain) call below, ** to ensure that we do not try to change the page-size on a WAL database. */ - rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14881) + rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14974) if rc != SQLITE_OK { goto end_of_vacuum } @@ -129029,11 +130082,11 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** in the temporary database. */ (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(nDb) /* force new CREATE statements into vacuum_db */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21286, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21418, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21394, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21526, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } @@ -129042,7 +130095,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** an "INSERT INTO vacuum_db.xxx SELECT * FROM main.xxx;" to copy ** the contents to the temporary database. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21448, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21580, libc.VaList(bp+24, zDbMain)) *(*Tu32)(unsafe.Pointer(db + 44)) &= uint32(^libc.Int32FromInt32(DBFLAG_Vacuum)) if rc != SQLITE_OK { goto end_of_vacuum @@ -129052,7 +130105,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** associated storage, so all we have to do is copy their entries ** from the schema table. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21599, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21731, libc.VaList(bp+24, zDbMain)) if rc != 0 { goto end_of_vacuum } @@ -129091,6 +130144,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p nRes = _sqlite3BtreeGetRequestedReserve(tls, pTemp) rc = _sqlite3BtreeSetPageSize(tls, pMain, _sqlite3BtreeGetPageSize(tls, pTemp), nRes, int32(1)) } + goto end_of_vacuum end_of_vacuum: ; /* Restore the original value of db->flags */ @@ -129578,7 +130632,7 @@ func _addModuleArgument(tls *libc.TLS, pParse uintptr, pTable uintptr, zArg uint FazArg uintptr Fp uintptr })(unsafe.Pointer(pTable + 64))).FnArg+int32(3) >= *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12702, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12827, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) } azModuleArg = _sqlite3DbRealloc(tls, db, (*(*struct { FnArg int32 @@ -129701,7 +130755,7 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { if pEnd != 0 { (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fn = uint32(int32(int64((*TToken)(unsafe.Pointer(pEnd)).Fz)-int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz))) + (*TToken)(unsafe.Pointer(pEnd)).Fn } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21729, libc.VaList(bp+8, pParse+272)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21861, libc.VaList(bp+8, pParse+272)) /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. @@ -129711,11 +130765,11 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { ** by sqlite3StartTable(). */ iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+21753, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+21885, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) v = _sqlite3GetVdbe(tls, pParse) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) - zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21852, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) + zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21984, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, zWhere, uint16(0)) _sqlite3DbFree(tls, db, zStmt) v2 = pParse + 56 @@ -129802,7 +130856,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, break } if (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab == pTab { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21871, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22003, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(SQLITE_LOCKED) } goto _1 @@ -129844,9 +130898,9 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, } if SQLITE_OK != rc { if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21913, libc.VaList(bp+48, zModuleName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22045, libc.VaList(bp+48, zModuleName)) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3797, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3861, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) } _sqlite3DbFree(tls, db, pVTable) @@ -129859,8 +130913,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*TModule)(unsafe.Pointer(pMod)).FnRefModule++ (*TVTable)(unsafe.Pointer(pVTable)).FnRef = int32(1) if (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared == 0 { - zFormat = __ccgo_ts + 21943 - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + zFormat = __ccgo_ts + 22075 + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, zModuleName)) _sqlite3VtabUnlock(tls, pVTable) rc = int32(SQLITE_ERROR) } else { @@ -129885,7 +130939,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(iCol < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } - zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1650) + zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1664) i = 0 nType = _sqlite3Strlen30(tls, zType) i = 0 @@ -129893,7 +130947,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(i < nType) { break } - if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16587, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { + if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16674, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { break } goto _3 @@ -129974,13 +131028,13 @@ func _sqlite3VtabCallConnect(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).FazArg)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21989, libc.VaList(bp+16, zModule)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22121, libc.VaList(bp+16, zModule)) rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxConnect, bp) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3797, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3861, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) (*TParse)(unsafe.Pointer(pParse)).Frc = rc } _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) @@ -130061,7 +131115,7 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, ** error. Otherwise, do nothing. */ if pMod == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxDestroy == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21989, libc.VaList(bp+8, zMod)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22121, libc.VaList(bp+8, zMod)) rc = int32(SQLITE_ERROR) } else { rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate, pzErr) @@ -130087,18 +131141,42 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r int32) { bp := tls.Alloc(448) defer tls.Free(448) - var initBusy, rc int32 - var pCtx, pIdx, pNew, pTab, v2 uintptr - var v1 Ti16 + var i, initBusy, rc int32 + var pCtx, pIdx, pNew, pTab, z, v3 uintptr + var v2 Ti16 var _ /* sParse at bp+0 */ TParse - _, _, _, _, _, _, _, _ = initBusy, pCtx, pIdx, pNew, pTab, rc, v1, v2 + var _ /* tokenType at bp+424 */ int32 + _, _, _, _, _, _, _, _, _, _ = i, initBusy, pCtx, pIdx, pNew, pTab, rc, z, v2, v3 rc = SQLITE_OK + /* Verify that the first two keywords in the CREATE TABLE statement + ** really are "CREATE" and "TABLE". If this is not the case, then + ** sqlite3_declare_vtab() is being misused. + */ + z = zCreateTable + i = 0 + for { + if !(_aKeyword1[i] != 0) { + break + } + *(*int32)(unsafe.Pointer(bp + 424)) = 0 + for cond := true; cond; cond = *(*int32)(unsafe.Pointer(bp + 424)) == int32(TK_SPACE) { + z += uintptr(_sqlite3GetToken(tls, z, bp+424)) + } + if *(*int32)(unsafe.Pointer(bp + 424)) != int32(_aKeyword1[i]) { + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+22140, 0) + return int32(SQLITE_ERROR) + } + goto _1 + _1: + ; + i++ + } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pCtx = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(pCtx != 0) || (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared != 0 { - _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(155155))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(156227))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(155157)) + return _sqlite3MisuseError(tls, int32(156229)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -130110,7 +131188,7 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i initBusy = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) (*(*TParse)(unsafe.Pointer(bp))).FnQueryLoop = int16(1) - if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) && (*(*TParse)(unsafe.Pointer(bp))).FpNewTable != uintptr(0) && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && int32((*TTable)(unsafe.Pointer((*(*TParse)(unsafe.Pointer(bp))).FpNewTable)).FeTabType) == TABTYP_NORM { + if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) { if !((*TTable)(unsafe.Pointer(pTab)).FaCol != 0) { pNew = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable (*TTable)(unsafe.Pointer(pTab)).FaCol = (*TTable)(unsafe.Pointer(pNew)).FaCol @@ -130119,9 +131197,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpDfltList) - v1 = (*TTable)(unsafe.Pointer(pNew)).FnCol - (*TTable)(unsafe.Pointer(pTab)).FnCol = v1 - (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v1 + v2 = (*TTable)(unsafe.Pointer(pNew)).FnCol + (*TTable)(unsafe.Pointer(pTab)).FnCol = v2 + (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v2 *(*Tu32)(unsafe.Pointer(pTab + 48)) |= (*TTable)(unsafe.Pointer(pNew)).FtabFlags & uint32(libc.Int32FromInt32(TF_WithoutRowid)|libc.Int32FromInt32(TF_NoVisibleRowid)) (*TTable)(unsafe.Pointer(pNew)).FnCol = 0 (*TTable)(unsafe.Pointer(pNew)).FaCol = uintptr(0) @@ -130140,11 +131218,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared = int32(1) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - v2 = __ccgo_ts + 3797 + v3 = __ccgo_ts + 3861 } else { - v2 = uintptr(0) + v3 = uintptr(0) } - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v2, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v3, libc.VaList(bp+440, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) rc = int32(SQLITE_ERROR) } @@ -130160,6 +131238,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i return rc } +var _aKeyword1 = [3]Tu8{ + 0: uint8(TK_CREATE), + 1: uint8(TK_TABLE), +} + // C documentation // // /* @@ -130611,7 +131694,7 @@ func _sqlite3VtabEponymousTableInit(tls *libc.TLS, pParse uintptr, pMod uintptr) _addModuleArgument(tls, pParse, pTab, _sqlite3DbStrDup(tls, db, (*TTable)(unsafe.Pointer(pTab)).FzName)) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer(pModule)).FxConnect, bp) if rc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3797, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3861, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3VtabEponymousTableClear(tls, db, pMod) } @@ -130675,7 +131758,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) p = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(p != 0) { - rc = _sqlite3MisuseError(tls, int32(155651)) + rc = _sqlite3MisuseError(tls, int32(156723)) } else { ap = va switch op { @@ -130688,7 +131771,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in case int32(SQLITE_VTAB_USES_ALL_SCHEMAS): (*TVTable)(unsafe.Pointer((*TVtabCtx)(unsafe.Pointer(p)).FpVTable)).FbAllSchemas = uint8(1) default: - rc = _sqlite3MisuseError(tls, int32(155673)) + rc = _sqlite3MisuseError(tls, int32(156745)) break } _ = ap @@ -131410,10 +132493,10 @@ type WhereInfo1 = TWhereInfo1 func _explainIndexColumnName(tls *libc.TLS, pIdx uintptr, i int32) (r uintptr) { i = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) if i == -int32(2) { - return __ccgo_ts + 22008 + return __ccgo_ts + 22153 } if i == -int32(1) { - return __ccgo_ts + 16696 + return __ccgo_ts + 16783 } return (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(i)*16))).FzCnName } @@ -131432,10 +132515,10 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, var i int32 _ = i if bAnd != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22015, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22160, int32(5)) } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22021, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22166, int32(1)) } i = 0 for { @@ -131443,7 +132526,7 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13092, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13217, int32(1)) } Xsqlite3_str_appendall(tls, pStr, _explainIndexColumnName(tls, pIdx, iTerm+i)) goto _1 @@ -131452,11 +132535,11 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5108, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5172, int32(1)) } Xsqlite3_str_append(tls, pStr, zOp, int32(1)) if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22021, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22166, int32(1)) } i = 0 for { @@ -131464,16 +132547,16 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13092, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13217, int32(1)) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5110, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5174, int32(1)) goto _2 _2: ; i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5108, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5172, int32(1)) } } @@ -131506,7 +132589,7 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { if int32(nEq) == 0 && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) == uint32(0) { return } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22023, int32(2)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22168, int32(2)) i = 0 for { if !(i < int32(nEq)) { @@ -131514,12 +132597,12 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } z = _explainIndexColumnName(tls, pIndex, i) if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22015, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22160, int32(5)) } if i >= int32(nSkip) { - v2 = __ccgo_ts + 22026 + v2 = __ccgo_ts + 22171 } else { - v2 = __ccgo_ts + 22031 + v2 = __ccgo_ts + 22176 } Xsqlite3_str_appendf(tls, pStr, v2, libc.VaList(bp+8, z)) goto _1 @@ -131529,13 +132612,13 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } j = i if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_BTM_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22039) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22184) i = int32(1) } if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_TOP_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22041) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22186) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5108, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5172, int32(1)) } // C documentation @@ -131578,47 +132661,47 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if isSearch != 0 { - v2 = __ccgo_ts + 22043 + v2 = __ccgo_ts + 22188 } else { - v2 = __ccgo_ts + 22050 + v2 = __ccgo_ts + 22195 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22055, libc.VaList(bp+144, v2, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22200, libc.VaList(bp+144, v2, pItem)) if flags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_VIRTUALTABLE)) == uint32(0) { zFmt = uintptr(0) pIdx = (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex if !((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) && int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { if isSearch != 0 { - zFmt = __ccgo_ts + 11255 + zFmt = __ccgo_ts + 11380 } } else { if flags&uint32(WHERE_PARTIALIDX) != 0 { - zFmt = __ccgo_ts + 22061 + zFmt = __ccgo_ts + 22206 } else { if flags&uint32(WHERE_AUTO_INDEX) != 0 { - zFmt = __ccgo_ts + 22094 + zFmt = __ccgo_ts + 22239 } else { if flags&uint32(WHERE_IDX_ONLY) != 0 { - zFmt = __ccgo_ts + 22119 + zFmt = __ccgo_ts + 22264 } else { - zFmt = __ccgo_ts + 22137 + zFmt = __ccgo_ts + 22282 } } } } if zFmt != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22146, int32(7)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22291, int32(7)) Xsqlite3_str_appendf(tls, bp, zFmt, libc.VaList(bp+144, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) _explainIndexRange(tls, bp, pLoop) } } else { if flags&uint32(WHERE_IPK) != uint32(0) && flags&uint32(WHERE_CONSTRAINT) != uint32(0) { - zRowid = __ccgo_ts + 16696 - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22154, libc.VaList(bp+144, zRowid)) + zRowid = __ccgo_ts + 16783 + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22299, libc.VaList(bp+144, zRowid)) if flags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != 0 { cRangeOp = int8('=') } else { if flags&uint32(WHERE_BOTH_LIMIT) == uint32(WHERE_BOTH_LIMIT) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22185, libc.VaList(bp+144, zRowid)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22330, libc.VaList(bp+144, zRowid)) cRangeOp = int8('<') } else { if flags&uint32(WHERE_BTM_LIMIT) != 0 { @@ -131628,10 +132711,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22195, libc.VaList(bp+144, int32(cRangeOp))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22340, libc.VaList(bp+144, int32(cRangeOp))) } else { if flags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22200, libc.VaList(bp+144, (*(*struct { + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22345, libc.VaList(bp+144, (*(*struct { FidxNum int32 F__ccgo4 uint8 FisOrdered Ti8 @@ -131650,7 +132733,7 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } if int32((*TSrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&int32(JT_LEFT) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22227, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22372, 0) } zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) @@ -131684,14 +132767,14 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Initial space for EQP output string */ _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22238, libc.VaList(bp+144, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22383, libc.VaList(bp+144, pItem)) pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_IPK) != 0 { pTab = (*TSrcItem)(unsafe.Pointer(pItem)).FpTab if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22026, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22171, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) } else { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22259, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22404, 0) } } else { i = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) @@ -131701,16 +132784,16 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp } z = _explainIndexColumnName(tls, (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex, i) if i > int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22015, int32(5)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22160, int32(5)) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22026, libc.VaList(bp+144, z)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22171, libc.VaList(bp+144, z)) goto _1 _1: ; i++ } } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5108, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5172, int32(1)) zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) return ret @@ -132541,6 +133624,35 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 } } +// C documentation +// +// /* +// ** Loop pLoop is a WHERE_INDEXED level that uses at least one IN(...) +// ** operator. Return true if level pLoop is guaranteed to visit only one +// ** row for each key generated for the index. +// */ +func _whereLoopIsOneRow(tls *libc.TLS, pLoop uintptr) (r int32) { + var ii int32 + _ = ii + if (*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FonError != 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) == 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq) == int32((*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FnKeyCol) { + ii = 0 + for { + if !(ii < int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq)) { + break + } + if int32((*TWhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(ii)*8)))).FeOperator)&(libc.Int32FromInt32(WO_IS)|libc.Int32FromInt32(WO_ISNULL)) != 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) + } + return 0 +} + // C documentation // // /* @@ -133229,7 +134341,10 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** a LEFT JOIN: */ } /* Record the instruction used to terminate the loop. */ - if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 { + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 || (*(*struct { + FnIn int32 + FaInLoop uintptr + })(unsafe.Pointer(pLevel + 72))).FnIn != 0 && regBignull == 0 && _whereLoopIsOneRow(tls, pLoop) != 0 { (*TWhereLevel)(unsafe.Pointer(pLevel)).Fop = uint8(OP_Noop) } else { if bRev != 0 { @@ -133402,7 +134517,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** eliminating duplicates from other WHERE clauses, the action for each ** sub-WHERE clause is to to invoke the main loop body as a subroutine. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22267, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22412, 0) ii = 0 for { if !(ii < (*TWhereClause)(unsafe.Pointer(pOrWc)).FnTerm) { @@ -133425,7 +134540,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI pOrExpr = pAndExpr } /* Loop through table entries that match term pOrTerm. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22282, libc.VaList(bp+96, ii+int32(1))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22427, libc.VaList(bp+96, ii+int32(1))) pSubWInfo = _sqlite3WhereBegin(tls, pParse, pOrTab, pOrExpr, uintptr(0), uintptr(0), uintptr(0), uint16(WHERE_OR_SUBCLAUSE), iCovCur) if pSubWInfo != 0 { addrExplain = _sqlite3WhereExplainOneScan(tls, pParse, pOrTab, pSubWInfo+856, uint16(0)) @@ -133588,6 +134703,12 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** iLoop==3: Code all remaining expressions. ** ** An effort is made to skip unnecessary iterations of the loop. + ** + ** This optimization of causing simple query restrictions to occur before + ** more complex one is call the "push-down" optimization in MySQL. Here + ** in SQLite, the name is "MySQL push-down", since there is also another + ** totally unrelated optimization called "WHERE-clause push-down". + ** Sometimes the qualifier is omitted, resulting in an ambiguity, so beware. */ if pIdx != 0 { v60 = int32(1) @@ -133784,6 +134905,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** to the results of the OUTER JOIN. The following loop generates the ** appropriate WHERE clause constraint checks. tag-20220513a. */ + goto code_outer_join_constraints code_outer_join_constraints: ; pTerm = (*TWhereClause)(unsafe.Pointer(pWC)).Fa @@ -133886,9 +135008,9 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe defer tls.Free(128) var addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, nPk, r, v3 int32 var mAll TBitmask - var pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr + var pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr var _ /* sFrom at bp+0 */ TSrcList - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pRJ = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpRJ @@ -133897,13 +135019,17 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop pTabItem = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 mAll = uint64(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22291, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22436, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) k = 0 for { if !(k < iLevel) { break } + pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*104 mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x20>>5)) != 0 { + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pRight)).FpSelect)).FpEList)).FnExpr-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiTabCur) iIdxCur = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiIdxCur if iIdxCur != 0 { @@ -134401,19 +135527,19 @@ var _aOp = [4]struct { FeOp2 uint8 }{ 0: { - FzOp: __ccgo_ts + 16545, + FzOp: __ccgo_ts + 16632, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_MATCH), }, 1: { - FzOp: __ccgo_ts + 15876, + FzOp: __ccgo_ts + 15969, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_GLOB), }, 2: { - FzOp: __ccgo_ts + 15355, + FzOp: __ccgo_ts + 15448, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_LIKE), }, 3: { - FzOp: __ccgo_ts + 22305, + FzOp: __ccgo_ts + 22450, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_REGEXP), }, } @@ -135047,7 +136173,7 @@ func _exprMightBeIndexed2(tls *libc.TLS, pFrom uintptr, aiCurCol uintptr, pExpr if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) != -int32(2) { goto _4 } - if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_STRING) { + if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && !(_sqlite3ExprIsConstant(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr) != 0) { *(*int32)(unsafe.Pointer(aiCurCol)) = iCur *(*int32)(unsafe.Pointer(aiCurCol + 1*4)) = -int32(2) return int32(1) @@ -135200,7 +136326,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { extraRight = x - uint64(1) /* ON clause terms may not be used with an index ** on left table of a LEFT JOIN. Ticket #3015 */ if prereqAll>>libc.Int32FromInt32(1) >= x { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22312, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22457, 0) return } } else { @@ -135212,7 +136338,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { ** if there is a RIGHT or FULL JOIN in the query. This makes SQLite ** more like other systems, and also preserves legacy. */ if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc > 0 && int32((*(*TSrcItem)(unsafe.Pointer(pSrc + 8))).Ffg.Fjointype)&int32(JT_LTORJ) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22312, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22457, 0) return } *(*Tu32)(unsafe.Pointer(pExpr + 4)) &= uint32(^libc.Int32FromInt32(EP_InnerON)) @@ -135296,7 +136422,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { } else { if op == int32(TK_ISNULL) && !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != libc.Uint32FromInt32(0)) && 0 == _sqlite3ExprCanBeNull(tls, pLeft) { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_TRUEFALSE) /* See tag-20230504-1 */ - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 7893 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 8018 *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_IsFalse)) (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqAll = uint64(0) (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator = uint16(0) @@ -135392,7 +136518,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { *(*Tu8)(unsafe.Pointer(pC)) = uint8(int32(c1) + int32(1)) } if *(*int32)(unsafe.Pointer(bp + 12)) != 0 { - v13 = __ccgo_ts + 22353 + v13 = __ccgo_ts + 22498 } else { v13 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } @@ -135662,6 +136788,9 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FleftCursor != iCsr { return } + if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FprereqRight != uint64(0) { + return + } goto _1 _1: ; @@ -135691,10 +136820,12 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { } } /* All conditions are met. Add the terms to the where-clause object. */ - _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) - if (*TSelect)(unsafe.Pointer(p)).FiOffset > 0 { + if (*TSelect)(unsafe.Pointer(p)).FiOffset != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiOffset, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpRight, iCsr, int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } + if (*TSelect)(unsafe.Pointer(p)).FiOffset == 0 || (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { + _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) + } } } @@ -135918,7 +137049,7 @@ func _sqlite3WhereTabFuncArgs(tls *libc.TLS, pParse uintptr, pItem uintptr, pWC k++ } if k >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22360, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22505, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) return } pColRef = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_COLUMN), uintptr(0), 0) @@ -136250,6 +137381,7 @@ func _whereOrInsert(tls *libc.TLS, pSet uintptr, prereq TBitmask, rRun TLogEst, return 0 } } + goto whereOrInsert_done whereOrInsert_done: ; (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq = prereq @@ -136351,6 +137483,48 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { return uintptr(0) } +// C documentation +// +// /* +// ** Term pTerm is guaranteed to be a WO_IN term. It may be a component term +// ** of a vector IN expression of the form "(x, y, ...) IN (SELECT ...)". +// ** This function checks to see if the term is compatible with an index +// ** column with affinity idxaff (one of the SQLITE_AFF_XYZ values). If so, +// ** it returns a pointer to the name of the collation sequence (e.g. "BINARY" +// ** or "NOCASE") used by the comparison in pTerm. If it is not compatible +// ** with affinity idxaff, NULL is returned. +// */ +func _indexInAffinityOk(tls *libc.TLS, pParse uintptr, pTerm uintptr, idxaff Tu8) (r uintptr) { + bp := tls.Alloc(80) + defer tls.Free(80) + var iField int32 + var pRet, pX, v1 uintptr + var _ /* inexpr at bp+0 */ TExpr + _, _, _, _ = iField, pRet, pX, v1 + pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr + if _sqlite3ExprIsVector(tls, (*TExpr)(unsafe.Pointer(pX)).FpLeft) != 0 { + iField = (*(*struct { + FleftColumn int32 + FiField int32 + })(unsafe.Pointer(pTerm + 32))).FiField - int32(1) + (*(*TExpr)(unsafe.Pointer(bp))).Fflags = uint32(0) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_EQ) + (*(*TExpr)(unsafe.Pointer(bp))).FpLeft = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pX)).FpLeft + 32)) + 8 + uintptr(iField)*32))).FpExpr + (*(*TExpr)(unsafe.Pointer(bp))).FpRight = (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pX + 32)))).FpEList + 8 + uintptr(iField)*32))).FpExpr + pX = bp + } + if _sqlite3IndexAffinityOk(tls, pX, int8(idxaff)) != 0 { + pRet = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pRet != 0 { + v1 = (*TCollSeq)(unsafe.Pointer(pRet)).FzName + } else { + v1 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + return v1 + } + return uintptr(0) +} + // C documentation // // /* @@ -136361,10 +137535,10 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { var iColumn Ti16 var iCur, j, k int32 - var pColl, pParse, pTerm, pWC, pX, v2 uintptr - var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, v2, v3, v5 /* The term being tested */ - k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ + var pColl, pParse, pTerm, pWC, pX, zCollName, v2, v5 uintptr + var v3, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, zCollName, v2, v3, v5, v6 /* The term being tested */ + k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ pWC = (*TWhereScan)(unsafe.Pointer(pScan)).FpWC for int32(1) != 0 { iColumn = *(*Ti16)(unsafe.Pointer(pScan + 88 + uintptr(int32((*TWhereScan)(unsafe.Pointer(pScan)).FiEquiv)-int32(1))*2)) @@ -136408,21 +137582,31 @@ func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { if (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName != 0 && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_ISNULL) == 0 { pParse = (*TWhereInfo)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr - if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { - goto _1 - } - pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) - if pColl == uintptr(0) { - pColl = (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FpDfltColl + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_IN) != 0 { + zCollName = _indexInAffinityOk(tls, pParse, pTerm, uint8((*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff)) + if !(zCollName != 0) { + goto _1 + } + } else { + if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { + goto _1 + } + pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pColl != 0 { + v5 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName + } else { + v5 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + zCollName = v5 } - if _sqlite3StrICmp(tls, (*TCollSeq)(unsafe.Pointer(pColl)).FzName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { + if _sqlite3StrICmp(tls, zCollName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { goto _1 } } - if v5 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v5 { + if v6 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v6 { pX = (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight } - if v5 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { + if v6 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { goto _1 } (*TWhereScan)(unsafe.Pointer(pScan)).FpWC = pWC @@ -136910,7 +138094,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea /* Make the automatic index a partial index if there are terms in the ** WHERE clause (or the ON clause of a LEFT join) that constrain which ** rows of the target table (pSrc) that can be used. */ - if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)) != 0 { + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom), 0) != 0 { pPartial = _sqlite3ExprAnd(tls, pParse, pPartial, _sqlite3ExprDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr, 0)) } if _termCanDriveIndex(tls, pTerm, pSrc, notReady) != 0 { @@ -136925,7 +138109,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea } cMask = v2 if !(sentWarning != 0) { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_WARNING)|libc.Int32FromInt32(1)<>14)) != 0) { eDistinct = int32(2) + libc.BoolInt32(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_SORTBYGROUP) != 0) } else { if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_GROUPBY) != 0 { @@ -137395,7 +138580,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB */ pIdxInfo = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(96)+(libc.Uint64FromInt64(12)+libc.Uint64FromInt64(8))*uint64(nTerm)+uint64(8)*uint64(nOrderBy)+uint64(40)+uint64(8)*uint64(nTerm)) if pIdxInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1634, 0) return uintptr(0) } pHidden = pIdxInfo + 1*96 @@ -137480,7 +138665,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB break } pExpr1 = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr - if _sqlite3ExprIsConstant(tls, pExpr1) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr1) != 0 { goto _11 } (*(*Tsqlite3_index_orderby)(unsafe.Pointer(pIdxOrderBy + uintptr(j)*8))).FiColumn = int32((*TExpr)(unsafe.Pointer(pExpr1)).FiColumn) @@ -137555,9 +138740,9 @@ func _vtabBestIndex(tls *libc.TLS, pParse uintptr, pTab uintptr, p uintptr) (r i _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) } else { if !((*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3797, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3861, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3797, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3861, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) } } } @@ -138894,7 +140079,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x4>>2)) != 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) } - if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 && int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x2>>1)) == 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ) | libc.Int32FromInt32(WO_IN) | libc.Int32FromInt32(WO_IS)) } } @@ -139133,10 +140318,13 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } } } - /* Set rCostIdx to the cost of visiting selected rows in index. Add - ** it to pNew->rRun, which is currently set to the cost of the index - ** seek only. Then, if this is a non-covering index, add the cost of - ** visiting the rows in the main table. */ + /* Set rCostIdx to the estimated cost of visiting selected rows in the + ** index. The estimate is the sum of two values: + ** 1. The cost of doing one search-by-key to find the first matching + ** entry + ** 2. Stepping forward in the index pNew->nOut times to find all + ** additional matching entries. + */ if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_IPK) { /* The pProbe->szIdxRow is low for an IPK table since the interior ** pages are small. Thus szIdxRow gives a good estimate of seek cost. @@ -139146,7 +140334,14 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } else { rCostIdx = int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut) + int32(1) + int32(15)*int32((*TIndex)(unsafe.Pointer(pProbe)).FszIdxRow)/int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FszTabRow)) } - (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + rCostIdx = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + /* Estimate the cost of running the loop. If all data is coming + ** from the index, then this is just the cost of doing the index + ** lookup and scan. But if some data is coming out of the main table, + ** we also have to add in the cost of doing pNew->nOut searches to + ** locate the row in the main table that corresponds to the index entry. + */ + (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = rCostIdx if (*TWhereLoop)(unsafe.Pointer(pNew)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IDX_ONLY)|libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_EXPRIDX)) == uint32(0) { (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun, int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut)+int32(16))) } @@ -139251,7 +140446,7 @@ func _indexMightHelpWithOrderBy(tls *libc.TLS, pBuilder uintptr, pIndex uintptr, if pExpr == uintptr(0) { goto _2 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { + if (int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) || int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_COLUMN)) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) < 0 { return int32(1) } @@ -139586,7 +140781,7 @@ func _wherePartIdxExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, pPart uintpt if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) != int32(TK_COLUMN) { return } - if !(_sqlite3ExprIsConstant(tls, pRight) != 0) { + if !(_sqlite3ExprIsConstant(tls, uintptr(0), pRight) != 0) { return } if !(_sqlite3IsBinary(tls, _sqlite3ExprCompareCollSeq(tls, pParse, pPart)) != 0) { @@ -139915,7 +141110,7 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in ** unique index is used (making the index functionally non-unique) ** then the sqlite_stat1 data becomes important for scoring the ** plan */ - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) } _sqlite3Stat4ProbeFree(tls, (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec) (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = 0 @@ -139943,6 +141138,31 @@ func _isLimitTerm(tls *libc.TLS, pTerm uintptr) (r int32) { return libc.BoolInt32(int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) >= int32(SQLITE_INDEX_CONSTRAINT_LIMIT) && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) <= int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } +// C documentation +// +// /* +// ** Return true if the first nCons constraints in the pUsage array are +// ** marked as in-use (have argvIndex>0). False otherwise. +// */ +func _allConstraintsUsed(tls *libc.TLS, aUsage uintptr, nCons int32) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < nCons) { + break + } + if (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer(aUsage + uintptr(ii)*8))).FargvIndex <= 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + // C documentation // // /* @@ -140037,7 +141257,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if v3 >= 0 { j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).FiTermOffset if iTerm >= nConstraint || j < 0 || j >= (*TWhereClause)(unsafe.Pointer(pWC)).FnTerm || *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(iTerm)*8)) != uintptr(0) || int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22433, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22578, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } pTerm1 = (*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(j)*56 @@ -140082,12 +141302,16 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, *(*int32)(unsafe.Pointer(pbIn)) = int32(1) } } - if _isLimitTerm(tls, pTerm1) != 0 && *(*int32)(unsafe.Pointer(pbIn)) != 0 { + /* Unless pbRetryLimit is non-NULL, there should be no LIMIT/OFFSET + ** terms. And if there are any, they should follow all other terms. */ + if _isLimitTerm(tls, pTerm1) != 0 && (*(*int32)(unsafe.Pointer(pbIn)) != 0 || !(_allConstraintsUsed(tls, pUsage, i) != 0)) { /* If there is an IN(...) term handled as an == (separate call to ** xFilter for each value on the RHS of the IN) and a LIMIT or - ** OFFSET term handled as well, the plan is unusable. Set output - ** variable *pbRetryLimit to true to tell the caller to retry with - ** LIMIT and OFFSET disabled. */ + ** OFFSET term handled as well, the plan is unusable. Similarly, + ** if there is a LIMIT/OFFSET and there are other unused terms, + ** the plan cannot be used. In these cases set variable *pbRetryLimit + ** to true to tell the caller to retry with LIMIT and OFFSET + ** disabled. */ if (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FneedToFreeIdxStr != 0 { Xsqlite3_free(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = uintptr(0) @@ -140112,7 +141336,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(i)*8)) == uintptr(0) { /* The non-zero argvIdx values must be contiguous. Raise an ** error if they are not */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22433, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22578, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } goto _6 @@ -140264,7 +141488,7 @@ func Xsqlite3_vtab_rhs_value(tls *libc.TLS, pIdxInfo uintptr, iCons int32, ppVal pVal = uintptr(0) rc = SQLITE_OK if iCons < 0 || iCons >= (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint { - rc = _sqlite3MisuseError(tls, int32(165251)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(166453)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = (*TWhereClause)(unsafe.Pointer((*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC)).Fa + uintptr((*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset)*56 @@ -140702,7 +141926,7 @@ func _whereLoopAddAll(tls *libc.TLS, pBuilder uintptr) (r int32) { if rc != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { if rc == int32(SQLITE_DONE) { /* We hit the query planner search limit set by iPlanLimit */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22459, 0) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22604, 0) rc = SQLITE_OK } else { break @@ -141084,7 +142308,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, } p = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr mTerm = _sqlite3WhereExprUsage(tls, pWInfo+592, p) - if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, p) != 0) { + if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, uintptr(0), p) != 0) { goto _9 } if mTerm & ^orderDistinctMask == uint64(0) { @@ -141494,7 +142718,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) iLoop++ } if nFrom == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22494, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22639, 0) _sqlite3DbFreeNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pSpace) return int32(SQLITE_ERROR) } @@ -141543,9 +142767,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) if int32((*TWherePath)(unsafe.Pointer(pFrom)).FisOrdered) == (*TExprList)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_ORDERED) } - if (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy != 0 && int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) > (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr { - (*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = int8((*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr) - } + /* vvv--- See check-in [12ad822d9b827777] on 2023-03-16 ---vvv */ } else { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FrevMask = (*TWherePath)(unsafe.Pointer(pFrom)).FrevLoop if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) <= 0 { @@ -141582,6 +142804,97 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) return SQLITE_OK } +// C documentation +// +// /* +// ** This routine implements a heuristic designed to improve query planning. +// ** This routine is called in between the first and second call to +// ** wherePathSolver(). Hence the name "Interstage" "Heuristic". +// ** +// ** The first call to wherePathSolver() (hereafter just "solver()") computes +// ** the best path without regard to the order of the outputs. The second call +// ** to the solver() builds upon the first call to try to find an alternative +// ** path that satisfies the ORDER BY clause. +// ** +// ** This routine looks at the results of the first solver() run, and for +// ** every FROM clause term in the resulting query plan that uses an equality +// ** constraint against an index, disable other WhereLoops for that same +// ** FROM clause term that would try to do a full-table scan. This prevents +// ** an index search from being converted into a full-table scan in order to +// ** satisfy an ORDER BY clause, since even though we might get slightly better +// ** performance using the full-scan without sorting if the output size +// ** estimates are very precise, we might also get severe performance +// ** degradation using the full-scan if the output size estimate is too large. +// ** It is better to err on the side of caution. +// ** +// ** Except, if the first solver() call generated a full-table scan in an outer +// ** loop then stop this analysis at the first full-scan, since the second +// ** solver() run might try to swap that full-scan for another in order to +// ** get the output into the correct order. In other words, we allow a +// ** rewrite like this: +// ** +// ** First Solver() Second Solver() +// ** |-- SCAN t1 |-- SCAN t2 +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** The purpose of this routine is to disallow rewrites such as: +// ** +// ** First Solver() Second Solver() +// ** |-- SEARCH t1 |-- SCAN t2 <--- bad! +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** See test cases in test/whereN.test for the real-world query that +// ** originally provoked this heuristic. +// */ +func _whereInterstageHeuristic(tls *libc.TLS, pWInfo uintptr) { + var i int32 + var iTab Tu8 + var p, pLoop uintptr + _, _, _, _ = i, iTab, p, pLoop + i = 0 + for { + if !(i < int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)) { + break + } + p = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(i)*104))).FpWLoop + if p == uintptr(0) { + break + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { + goto _1 + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_NULL)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != uint32(0) { + iTab = (*TWhereLoop)(unsafe.Pointer(p)).FiTab + pLoop = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpLoops + for { + if !(pLoop != 0) { + break + } + if int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab) != int32(iTab) { + goto _2 + } + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_CONSTRAINT)|libc.Int32FromInt32(WHERE_AUTO_INDEX)) != uint32(0) { + /* Auto-index and index-constrained loops allowed to remain */ + goto _2 + } + (*TWhereLoop)(unsafe.Pointer(pLoop)).Fprereq = uint64(-libc.Int32FromInt32(1)) /* Prevent 2nd solver() from using this one */ + goto _2 + _2: + ; + pLoop = (*TWhereLoop)(unsafe.Pointer(pLoop)).FpNextLoop + } + } else { + break + } + goto _1 + _1: + ; + i++ + } +} + // C documentation // // /* @@ -141890,7 +143203,7 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasStat1) == uint32(0) { break } - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) if i >= int32(1) && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&reqFlags == reqFlags && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_INDEXED)) != uint32(0) { if int32(nSearch) > int32((*TTable)(unsafe.Pointer(pTab)).FnRowLogEst) { *(*Tu32)(unsafe.Pointer(pLoop + 48)) |= uint32(WHERE_BLOOMFILTER) @@ -141905,6 +143218,68 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { } } +// C documentation +// +// /* +// ** Expression Node callback for sqlite3ExprCanReturnSubtype(). +// ** +// ** Only a function call is able to return a subtype. So if the node +// ** is not a function call, return WRC_Prune immediately. +// ** +// ** A function call is able to return a subtype if it has the +// ** SQLITE_RESULT_SUBTYPE property. +// ** +// ** Assume that every function is able to pass-through a subtype from +// ** one of its argument (using sqlite3_result_value()). Most functions +// ** are not this way, but we don't have a mechanism to distinguish those +// ** that are from those that are not, so assume they all work this way. +// ** That means that if one of its arguments is another function and that +// ** other function is able to return a subtype, then this function is +// ** able to return a subtype. +// */ +func _exprNodeCanReturnSubtype(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef uintptr + var n, v1 int32 + _, _, _, _ = db, n, pDef, v1 + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_FUNCTION) { + return int32(WRC_Prune) + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { + v1 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr + } else { + v1 = 0 + } + n = v1 + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + return int32(WRC_Prune) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Return TRUE if expression pExpr is able to return a subtype. +// ** +// ** A TRUE return does not guarantee that a subtype will be returned. +// ** It only indicates that a subtype return is possible. False positives +// ** are acceptable as they only disable an optimization. False negatives, +// ** on the other hand, can lead to incorrect answers. +// */ +func _sqlite3ExprCanReturnSubtype(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeCanReturnSubtype) + _sqlite3WalkExpr(tls, bp, pExpr) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) +} + // C documentation // // /* @@ -141919,9 +143294,9 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { // ** references to the corresponding column of the index. // */ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur int32, pTabItem uintptr) { - var db, p, pArg, pDef, pExpr, pTab uintptr - var i, j, n, v2 int32 - _, _, _, _, _, _, _, _, _, _ = db, i, j, n, p, pArg, pDef, pExpr, pTab, v2 + var i, j int32 + var p, pArg, pExpr, pTab uintptr + _, _, _, _, _, _ = i, j, p, pArg, pExpr, pTab pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable i = 0 for { @@ -141938,21 +143313,14 @@ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur i goto _1 } } - if _sqlite3ExprIsConstant(tls, pExpr) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) != 0 { goto _1 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) { - db = (*TParse)(unsafe.Pointer(pParse)).Fdb - if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { - v2 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr - } else { - v2 = 0 - } - n = v2 - pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) - if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { - goto _1 - } + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) && _sqlite3ExprCanReturnSubtype(tls, pParse, pExpr) != 0 { + /* Functions that might set a subtype should not be replaced by the + ** value taken from an expression index since the index omits the + ** subtype. https://sqlite.org/forum/forumpost/68d284c86b082c3e */ + goto _1 } p = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(32)) if p == uintptr(0) { @@ -142124,7 +143492,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** bits in a Bitmask */ if (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc > int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22512, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22657, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) return uintptr(0) } /* This function normally generates a nested loop for all tables in @@ -142196,7 +143564,9 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if int32(wctrlFlags)&int32(WHERE_WANT_DISTINCT) != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_DistinctOpt)) == uint32(0) { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_UNIQUE) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22540, 0) + if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FselFlags&uint32(SF_MultiValue) == uint32(0) { + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22685, 0) + } } else { /* Assign a bit from the bitmask to every term in the FROM clause. ** @@ -142328,6 +143698,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy != 0 { + _whereInterstageHeuristic(tls, pWInfo) _wherePathSolver(tls, pWInfo, int16(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut)+int32(1))) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto whereBeginError @@ -142612,6 +143983,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiEndWhere = _sqlite3VdbeCurrentAddr(tls, v) return pWInfo /* Jump here if malloc fails */ + goto whereBeginError whereBeginError: ; if pWInfo != 0 { @@ -142635,10 +144007,10 @@ whereBeginError: // ** sqlite3WhereBegin() for additional information. // */ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { - var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, r1, ws, x, v4, v7 int32 - var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr + var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, r1, ws, x, v4, v7 int32 + var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pTabList = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList @@ -142779,6 +144151,12 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { ws = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags) addr = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfPos), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin) if ws&int32(WHERE_IDX_ONLY) == 0 { + pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 + if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x20>>5)) != 0 { + n1 = (*TSrcItem)(unsafe.Pointer(pSrc)).FregResult + m = int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FnCol) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, n1, n1+m-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur) } if ws&int32(WHERE_INDEXED) != 0 || ws&int32(WHERE_MULTI_OR) != 0 && *(*uintptr)(unsafe.Pointer(&(*TWhereLevel)(unsafe.Pointer(pLevel)).Fu)) != 0 { @@ -143192,9 +144570,10 @@ func _nth_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) _ = nArg _ = apArg return + goto error_out error_out: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22558, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22703, -int32(1)) } func _nth_valueFinalizeFunc(tls *libc.TLS, pCtx uintptr) { @@ -143376,7 +144755,7 @@ func _ntileStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { if (*TNtileCtx)(unsafe.Pointer(p)).FnTotal == 0 { (*TNtileCtx)(unsafe.Pointer(p)).FnParam = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apArg))) if (*TNtileCtx)(unsafe.Pointer(p)).FnParam <= 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22614, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22759, -int32(1)) } } (*TNtileCtx)(unsafe.Pointer(p)).FnTotal++ @@ -143702,7 +145081,7 @@ func _windowFind(tls *libc.TLS, pParse uintptr, pList uintptr, zName uintptr) (r p = (*TWindow)(unsafe.Pointer(p)).FpNextWin } if p == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22659, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22804, libc.VaList(bp+8, zName)) } return p } @@ -143753,12 +145132,12 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin _sqlite3WindowChain(tls, pParse, pWin, pList) } if int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) == int32(TK_RANGE) && ((*TWindow)(unsafe.Pointer(pWin)).FpStart != 0 || (*TWindow)(unsafe.Pointer(pWin)).FpEnd != 0) && ((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy == uintptr(0) || (*TExprList)(unsafe.Pointer((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy)).FnExpr != int32(1)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22678, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22823, 0) } else { if (*TFuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TWindow)(unsafe.Pointer(pWin)).FpFilter != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22749, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22894, 0) } else { aUp = [8]struct { FzFunc uintptr @@ -143831,7 +145210,7 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin (*TWindow)(unsafe.Pointer(pWin)).FeEnd = uint8(aUp[i].FeEnd) (*TWindow)(unsafe.Pointer(pWin)).FeExclude = uint8(0) if int32((*TWindow)(unsafe.Pointer(pWin)).FeStart) == int32(TK_FOLLOWING) { - (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8132) + (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8257) } break } @@ -144113,7 +145492,7 @@ func _disallowAggregatesInOrderByCb(tls *libc.TLS, pWalker uintptr, pExpr uintpt bp := tls.Alloc(16) defer tls.Free(16) if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_FUNCTION) && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22812, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) + _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22957, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) } return WRC_Continue } @@ -144254,7 +145633,7 @@ func _sqlite3WindowRewrite(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { ** keep everything legal in this case. */ if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1724)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1784)) } pSub = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(bp)), pSrc, pWhere, pGroupBy, pHaving, pSort, uint32(0), uintptr(0)) (*TSelect)(unsafe.Pointer(p)).FpSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), uintptr(0), uintptr(0)) @@ -144358,7 +145737,7 @@ func _sqlite3WindowListDelete(tls *libc.TLS, db uintptr, p uintptr) { // ** variable values in the expression tree. // */ func _sqlite3WindowOffsetExpr(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r uintptr) { - if 0 == _sqlite3ExprIsConstant(tls, pExpr) { + if 0 == _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) { if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameExprUnmap(tls, pParse, pExpr) } @@ -144399,7 +145778,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 ** frame boundary. */ if eStart == int32(TK_CURRENT) && eEnd == int32(TK_PRECEDING) || eStart == int32(TK_FOLLOWING) && (eEnd == int32(TK_PRECEDING) || eEnd == int32(TK_CURRENT)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22838, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22983, 0) goto windowAllocErr } pWin = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) @@ -144417,6 +145796,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 (*TWindow)(unsafe.Pointer(pWin)).FpEnd = _sqlite3WindowOffsetExpr(tls, pParse, pEnd) (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3WindowOffsetExpr(tls, pParse, pStart) return pWin + goto windowAllocErr windowAllocErr: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pEnd) @@ -144466,18 +145846,18 @@ func _sqlite3WindowChain(tls *libc.TLS, pParse uintptr, pWin uintptr, pList uint zErr = uintptr(0) /* Check for errors */ if (*TWindow)(unsafe.Pointer(pWin)).FpPartition != 0 { - zErr = __ccgo_ts + 22870 + zErr = __ccgo_ts + 23015 } else { if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 && (*TWindow)(unsafe.Pointer(pWin)).FpOrderBy != 0 { - zErr = __ccgo_ts + 22887 + zErr = __ccgo_ts + 23032 } else { if int32((*TWindow)(unsafe.Pointer(pExist)).FbImplicitFrame) == 0 { - zErr = __ccgo_ts + 22903 + zErr = __ccgo_ts + 23048 } } } if zErr != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22923, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23068, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) } else { (*TWindow)(unsafe.Pointer(pWin)).FpPartition = _sqlite3ExprListDup(tls, db, (*TWindow)(unsafe.Pointer(pExist)).FpPartition, 0) if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 { @@ -144501,7 +145881,7 @@ func _sqlite3WindowAttach(tls *libc.TLS, pParse uintptr, p uintptr, pWin uintptr *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(libc.Int32FromInt32(EP_WinFunc) | libc.Int32FromInt32(EP_FullSize)) (*TWindow)(unsafe.Pointer(pWin)).FpOwner = p if (*TExpr)(unsafe.Pointer(p)).Fflags&uint32(EP_Distinct) != 0 && int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) != int32(TK_FILTER) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22956, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23101, 0) } } else { _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pWin) @@ -144700,7 +146080,7 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regZero) if eCond >= int32(WINDOW_STARTING_NUM) { regString = _sqlite3GetTempReg(tls, pParse) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1650, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1664, -int32(1)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, _sqlite3VdbeCurrentAddr(tls, v)+int32(2), reg) _sqlite3VdbeChangeP5(tls, v, uint16(libc.Int32FromInt32(SQLITE_AFF_NUMERIC)|libc.Int32FromInt32(SQLITE_JUMPIFNULL))) } else { @@ -144719,11 +146099,11 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { } var _azErr = [5]uintptr{ - 0: __ccgo_ts + 23003, - 1: __ccgo_ts + 23056, - 2: __ccgo_ts + 22558, - 3: __ccgo_ts + 23107, - 4: __ccgo_ts + 23159, + 0: __ccgo_ts + 23148, + 1: __ccgo_ts + 23201, + 2: __ccgo_ts + 22703, + 3: __ccgo_ts + 23252, + 4: __ccgo_ts + 23304, } var _aOp1 = [5]int32{ @@ -145475,7 +146855,7 @@ func _windowCodeRangeTest(tls *libc.TLS, p uintptr, op int32, csr1 int32, regVal ** the add/subtract is skipped for these, as required. If reg1 is a NULL, ** then the arithmetic is performed, but since adding or subtracting from ** NULL is always NULL anyway, this case is handled as required too. */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1650, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1664, -int32(1)) addrGe = _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, 0, reg1) if op == int32(OP_Ge) && arith == int32(OP_Add) || op == int32(OP_Le) && arith == int32(OP_Subtract) { _sqlite3VdbeAddOp3(tls, v, op, reg2, lbl, reg1) @@ -146503,11 +147883,11 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { cnt++ if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != 0 || (*TSelect)(unsafe.Pointer(pLoop)).FpLimit != 0 { if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != uintptr(0) { - v1 = __ccgo_ts + 23209 + v1 = __ccgo_ts + 23354 } else { - v1 = __ccgo_ts + 23218 + v1 = __ccgo_ts + 23363 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23224, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23369, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) break } } @@ -146516,7 +147896,7 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { mxSelect = v2 } if v3 && v2 > 0 && cnt > mxSelect { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23266, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23411, 0) } } } @@ -146536,6 +147916,23 @@ func _attachWithToSelect(tls *libc.TLS, pParse uintptr, pSelect uintptr, pWith u return pSelect } +// C documentation +// +// /* Memory allocator for parser stack resizing. This is a thin wrapper around +// ** sqlite3_realloc() that includes a call to sqlite3FaultSim() to facilitate +// ** testing. +// */ +func _parserStackRealloc(tls *libc.TLS, pOld uintptr, newSize Tsqlite3_uint64) (r uintptr) { + var v1 uintptr + _ = v1 + if _sqlite3FaultSim(tls, int32(700)) != 0 { + v1 = uintptr(0) + } else { + v1 = Xsqlite3_realloc(tls, pOld, int32(newSize)) + } + return v1 +} + // C documentation // // /* Construct a new Expr object from a single token */ @@ -146605,7 +148002,7 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId _ = p p = _sqlite3ExprListAppend(tls, pParse, pPrior, uintptr(0)) if (hasCollate != 0 || sortOrder != -int32(1)) && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23300, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23445, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) } _sqlite3ExprListSetName(tls, pParse, p, pIdToken, int32(1)) return p @@ -146655,6 +148052,9 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser // ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser // ** sqlite3ParserCTX_* As sqlite3ParserARG_ except for %extra_context +// ** YYREALLOC Name of the realloc() function to use +// ** YYFREE Name of the free() function to use +// ** YYDYNSTACK True if stack space should be extended on heap // ** YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** YYNSTATE the combined number of states. @@ -146668,31 +148068,33 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** YY_NO_ACTION The yy_action[] code for no-op // ** YY_MIN_REDUCE Minimum value for reduce actions // ** YY_MAX_REDUCE Maximum value for reduce actions +// ** YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type TYYMINORTYPE = struct { Fyy0 [0]TToken - Fyy33 [0]uintptr - Fyy41 [0]uintptr - Fyy47 [0]uintptr - Fyy131 [0]uintptr - Fyy180 [0]TTrigEvent - Fyy231 [0]struct { + Fyy14 [0]uintptr + Fyy59 [0]uintptr + Fyy67 [0]uintptr + Fyy122 [0]uintptr + Fyy132 [0]uintptr + Fyy144 [0]int32 + Fyy168 [0]uintptr + Fyy203 [0]uintptr + Fyy211 [0]uintptr + Fyy269 [0]TOnOrUsing + Fyy286 [0]TTrigEvent + Fyy383 [0]struct { Fvalue int32 Fmask int32 } - Fyy254 [0]uintptr - Fyy285 [0]Tu32 - Fyy322 [0]uintptr - Fyy385 [0]uintptr - Fyy394 [0]int32 - Fyy444 [0]uintptr - Fyy516 [0]Tu8 - Fyy521 [0]uintptr - Fyy522 [0]uintptr - Fyy528 [0]uintptr - Fyy561 [0]TOnOrUsing - Fyy595 [0]TFrameBound + Fyy391 [0]Tu32 + Fyy427 [0]uintptr + Fyy454 [0]uintptr + Fyy462 [0]Tu8 + Fyy509 [0]TFrameBound + Fyy555 [0]uintptr Fyyinit int32 F__ccgo_pad20 [12]byte } @@ -146710,6 +148112,13 @@ type YYMINORTYPE = TYYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -146762,2152 +148171,2194 @@ type YYMINORTYPE = TYYMINORTYPE // ** yy_default[] Default action for each state. // ** // *********** Begin parsing tables **********************************************/ -var _yy_action = [2100]uint16{ - 0: uint16(572), - 1: uint16(210), - 2: uint16(572), - 3: uint16(119), - 4: uint16(116), - 5: uint16(231), - 6: uint16(572), - 7: uint16(119), - 8: uint16(116), - 9: uint16(231), - 10: uint16(572), - 11: uint16(1317), - 12: uint16(379), - 13: uint16(1296), - 14: uint16(410), - 15: uint16(566), - 16: uint16(566), - 17: uint16(566), - 18: uint16(572), - 19: uint16(411), - 20: uint16(380), - 21: uint16(1317), - 22: uint16(1279), - 23: uint16(42), - 24: uint16(42), - 25: uint16(42), - 26: uint16(42), - 27: uint16(210), - 28: uint16(1529), - 29: uint16(72), - 30: uint16(72), - 31: uint16(974), - 32: uint16(421), - 33: uint16(42), - 34: uint16(42), - 35: uint16(495), - 36: uint16(305), - 37: uint16(281), - 38: uint16(305), - 39: uint16(975), - 40: uint16(399), - 41: uint16(72), - 42: uint16(72), - 43: uint16(126), - 44: uint16(127), - 45: uint16(81), - 46: uint16(1217), - 47: uint16(1217), - 48: uint16(1054), - 49: uint16(1057), - 50: uint16(1044), - 51: uint16(1044), - 52: uint16(124), - 53: uint16(124), - 54: uint16(125), - 55: uint16(125), - 56: uint16(125), - 57: uint16(125), - 58: uint16(480), - 59: uint16(411), - 60: uint16(1244), - 61: uint16(1), - 62: uint16(1), - 63: uint16(578), - 64: uint16(2), - 65: uint16(1248), - 66: uint16(554), - 67: uint16(119), - 68: uint16(116), - 69: uint16(231), - 70: uint16(319), - 71: uint16(484), - 72: uint16(147), - 73: uint16(484), - 74: uint16(528), - 75: uint16(119), - 76: uint16(116), - 77: uint16(231), - 78: uint16(533), - 79: uint16(1330), - 80: uint16(419), - 81: uint16(527), - 82: uint16(143), - 83: uint16(126), - 84: uint16(127), - 85: uint16(81), - 86: uint16(1217), - 87: uint16(1217), - 88: uint16(1054), - 89: uint16(1057), - 90: uint16(1044), - 91: uint16(1044), - 92: uint16(124), - 93: uint16(124), - 94: uint16(125), - 95: uint16(125), - 96: uint16(125), - 97: uint16(125), - 98: uint16(119), - 99: uint16(116), - 100: uint16(231), - 101: uint16(329), - 102: uint16(123), - 103: uint16(123), - 104: uint16(123), - 105: uint16(123), - 106: uint16(122), - 107: uint16(122), - 108: uint16(121), - 109: uint16(121), - 110: uint16(121), - 111: uint16(120), - 112: uint16(117), - 113: uint16(448), - 114: uint16(286), - 115: uint16(286), - 116: uint16(286), - 117: uint16(286), - 118: uint16(446), - 119: uint16(446), - 120: uint16(446), - 121: uint16(1568), - 122: uint16(378), - 123: uint16(1570), - 124: uint16(1193), - 125: uint16(377), - 126: uint16(1164), - 127: uint16(569), - 128: uint16(1164), - 129: uint16(569), - 130: uint16(411), - 131: uint16(1568), - 132: uint16(541), - 133: uint16(261), - 134: uint16(228), - 135: uint16(448), - 136: uint16(102), - 137: uint16(146), - 138: uint16(453), - 139: uint16(318), - 140: uint16(563), - 141: uint16(242), - 142: uint16(123), - 143: uint16(123), - 144: uint16(123), - 145: uint16(123), - 146: uint16(122), - 147: uint16(122), - 148: uint16(121), - 149: uint16(121), - 150: uint16(121), - 151: uint16(120), - 152: uint16(117), - 153: uint16(448), - 154: uint16(126), - 155: uint16(127), - 156: uint16(81), - 157: uint16(1217), - 158: uint16(1217), - 159: uint16(1054), - 160: uint16(1057), - 161: uint16(1044), - 162: uint16(1044), - 163: uint16(124), - 164: uint16(124), - 165: uint16(125), - 166: uint16(125), - 167: uint16(125), - 168: uint16(125), - 169: uint16(143), - 170: uint16(296), - 171: uint16(1193), - 172: uint16(341), - 173: uint16(452), - 174: uint16(121), - 175: uint16(121), - 176: uint16(121), - 177: uint16(120), - 178: uint16(117), - 179: uint16(448), - 180: uint16(128), - 181: uint16(1193), - 182: uint16(1194), - 183: uint16(1193), - 184: uint16(149), - 185: uint16(445), - 186: uint16(444), - 187: uint16(572), - 188: uint16(120), - 189: uint16(117), - 190: uint16(448), - 191: uint16(125), - 192: uint16(125), - 193: uint16(125), - 194: uint16(125), - 195: uint16(118), - 196: uint16(123), - 197: uint16(123), - 198: uint16(123), - 199: uint16(123), - 200: uint16(122), - 201: uint16(122), - 202: uint16(121), - 203: uint16(121), - 204: uint16(121), - 205: uint16(120), - 206: uint16(117), - 207: uint16(448), - 208: uint16(458), - 209: uint16(114), - 210: uint16(13), - 211: uint16(13), - 212: uint16(550), - 213: uint16(123), - 214: uint16(123), - 215: uint16(123), - 216: uint16(123), - 217: uint16(122), - 218: uint16(122), - 219: uint16(121), - 220: uint16(121), - 221: uint16(121), - 222: uint16(120), - 223: uint16(117), - 224: uint16(448), - 225: uint16(424), - 226: uint16(318), - 227: uint16(563), - 228: uint16(1193), - 229: uint16(1194), - 230: uint16(1193), - 231: uint16(150), - 232: uint16(1225), - 233: uint16(411), - 234: uint16(1225), - 235: uint16(125), - 236: uint16(125), - 237: uint16(125), - 238: uint16(125), - 239: uint16(123), - 240: uint16(123), - 241: uint16(123), - 242: uint16(123), - 243: uint16(122), - 244: uint16(122), - 245: uint16(121), - 246: uint16(121), - 247: uint16(121), - 248: uint16(120), - 249: uint16(117), - 250: uint16(448), - 251: uint16(469), - 252: uint16(344), - 253: uint16(1041), - 254: uint16(1041), - 255: uint16(1055), - 256: uint16(1058), - 257: uint16(126), - 258: uint16(127), - 259: uint16(81), - 260: uint16(1217), - 261: uint16(1217), - 262: uint16(1054), - 263: uint16(1057), - 264: uint16(1044), - 265: uint16(1044), - 266: uint16(124), - 267: uint16(124), - 268: uint16(125), - 269: uint16(125), - 270: uint16(125), - 271: uint16(125), - 272: uint16(1282), - 273: uint16(526), - 274: uint16(224), - 275: uint16(1193), - 276: uint16(572), - 277: uint16(411), - 278: uint16(226), - 279: uint16(519), - 280: uint16(177), - 281: uint16(83), - 282: uint16(84), - 283: uint16(123), - 284: uint16(123), - 285: uint16(123), - 286: uint16(123), - 287: uint16(122), - 288: uint16(122), - 289: uint16(121), - 290: uint16(121), - 291: uint16(121), - 292: uint16(120), - 293: uint16(117), - 294: uint16(448), - 295: uint16(1010), - 296: uint16(16), - 297: uint16(16), - 298: uint16(1193), - 299: uint16(134), - 300: uint16(134), - 301: uint16(126), - 302: uint16(127), - 303: uint16(81), - 304: uint16(1217), - 305: uint16(1217), - 306: uint16(1054), - 307: uint16(1057), - 308: uint16(1044), - 309: uint16(1044), - 310: uint16(124), - 311: uint16(124), - 312: uint16(125), - 313: uint16(125), - 314: uint16(125), - 315: uint16(125), - 316: uint16(123), - 317: uint16(123), - 318: uint16(123), - 319: uint16(123), - 320: uint16(122), - 321: uint16(122), - 322: uint16(121), - 323: uint16(121), - 324: uint16(121), - 325: uint16(120), - 326: uint16(117), - 327: uint16(448), - 328: uint16(1045), - 329: uint16(550), - 330: uint16(1193), - 331: uint16(375), - 332: uint16(1193), - 333: uint16(1194), - 334: uint16(1193), - 335: uint16(254), - 336: uint16(1438), - 337: uint16(401), - 338: uint16(508), - 339: uint16(505), - 340: uint16(504), - 341: uint16(112), - 342: uint16(564), - 343: uint16(570), +var _yy_action = [2142]uint16{ + 0: uint16(576), + 1: uint16(128), + 2: uint16(125), + 3: uint16(232), + 4: uint16(1622), + 5: uint16(549), + 6: uint16(576), + 7: uint16(1290), + 8: uint16(1281), + 9: uint16(576), + 10: uint16(328), + 11: uint16(576), + 12: uint16(1300), + 13: uint16(212), + 14: uint16(576), + 15: uint16(128), + 16: uint16(125), + 17: uint16(232), + 18: uint16(578), + 19: uint16(412), + 20: uint16(578), + 21: uint16(391), + 22: uint16(1542), + 23: uint16(51), + 24: uint16(51), + 25: uint16(523), + 26: uint16(405), + 27: uint16(1293), + 28: uint16(529), + 29: uint16(51), + 30: uint16(51), + 31: uint16(983), + 32: uint16(51), + 33: uint16(51), + 34: uint16(81), + 35: uint16(81), + 36: uint16(1107), + 37: uint16(61), + 38: uint16(61), + 39: uint16(984), + 40: uint16(1107), + 41: uint16(1292), + 42: uint16(380), + 43: uint16(135), + 44: uint16(136), + 45: uint16(90), + 46: uint16(1228), + 47: uint16(1228), + 48: uint16(1063), + 49: uint16(1066), + 50: uint16(1053), + 51: uint16(1053), + 52: uint16(133), + 53: uint16(133), + 54: uint16(134), + 55: uint16(134), + 56: uint16(134), + 57: uint16(134), + 58: uint16(1577), + 59: uint16(412), + 60: uint16(287), + 61: uint16(287), + 62: uint16(7), + 63: uint16(287), + 64: uint16(287), + 65: uint16(422), + 66: uint16(1050), + 67: uint16(1050), + 68: uint16(1064), + 69: uint16(1067), + 70: uint16(289), + 71: uint16(556), + 72: uint16(492), + 73: uint16(573), + 74: uint16(524), + 75: uint16(561), + 76: uint16(573), + 77: uint16(497), + 78: uint16(561), + 79: uint16(482), + 80: uint16(530), + 81: uint16(262), + 82: uint16(229), + 83: uint16(135), + 84: uint16(136), + 85: uint16(90), + 86: uint16(1228), + 87: uint16(1228), + 88: uint16(1063), + 89: uint16(1066), + 90: uint16(1053), + 91: uint16(1053), + 92: uint16(133), + 93: uint16(133), + 94: uint16(134), + 95: uint16(134), + 96: uint16(134), + 97: uint16(134), + 98: uint16(128), + 99: uint16(125), + 100: uint16(232), + 101: uint16(1506), + 102: uint16(132), + 103: uint16(132), + 104: uint16(132), + 105: uint16(132), + 106: uint16(131), + 107: uint16(131), + 108: uint16(130), + 109: uint16(130), + 110: uint16(130), + 111: uint16(129), + 112: uint16(126), + 113: uint16(450), + 114: uint16(1204), + 115: uint16(1255), + 116: uint16(1), + 117: uint16(1), + 118: uint16(582), + 119: uint16(2), + 120: uint16(1259), + 121: uint16(1571), + 122: uint16(420), + 123: uint16(1582), + 124: uint16(379), + 125: uint16(320), + 126: uint16(1174), + 127: uint16(153), + 128: uint16(1174), + 129: uint16(1584), + 130: uint16(412), + 131: uint16(378), + 132: uint16(1582), + 133: uint16(543), + 134: uint16(1341), + 135: uint16(330), + 136: uint16(111), + 137: uint16(570), + 138: uint16(570), + 139: uint16(570), + 140: uint16(293), + 141: uint16(1054), + 142: uint16(132), + 143: uint16(132), + 144: uint16(132), + 145: uint16(132), + 146: uint16(131), + 147: uint16(131), + 148: uint16(130), + 149: uint16(130), + 150: uint16(130), + 151: uint16(129), + 152: uint16(126), + 153: uint16(450), + 154: uint16(135), + 155: uint16(136), + 156: uint16(90), + 157: uint16(1228), + 158: uint16(1228), + 159: uint16(1063), + 160: uint16(1066), + 161: uint16(1053), + 162: uint16(1053), + 163: uint16(133), + 164: uint16(133), + 165: uint16(134), + 166: uint16(134), + 167: uint16(134), + 168: uint16(134), + 169: uint16(287), + 170: uint16(287), + 171: uint16(1204), + 172: uint16(1205), + 173: uint16(1204), + 174: uint16(255), + 175: uint16(287), + 176: uint16(287), + 177: uint16(510), + 178: uint16(507), + 179: uint16(506), + 180: uint16(137), + 181: uint16(455), + 182: uint16(573), + 183: uint16(212), + 184: uint16(561), + 185: uint16(447), + 186: uint16(446), + 187: uint16(505), + 188: uint16(573), + 189: uint16(1616), + 190: uint16(561), + 191: uint16(134), + 192: uint16(134), + 193: uint16(134), + 194: uint16(134), + 195: uint16(127), + 196: uint16(400), + 197: uint16(243), + 198: uint16(132), + 199: uint16(132), + 200: uint16(132), + 201: uint16(132), + 202: uint16(131), + 203: uint16(131), + 204: uint16(130), + 205: uint16(130), + 206: uint16(130), + 207: uint16(129), + 208: uint16(126), + 209: uint16(450), + 210: uint16(282), + 211: uint16(471), + 212: uint16(345), + 213: uint16(132), + 214: uint16(132), + 215: uint16(132), + 216: uint16(132), + 217: uint16(131), + 218: uint16(131), + 219: uint16(130), + 220: uint16(130), + 221: uint16(130), + 222: uint16(129), + 223: uint16(126), + 224: uint16(450), + 225: uint16(574), + 226: uint16(155), + 227: uint16(936), + 228: uint16(936), + 229: uint16(454), + 230: uint16(227), + 231: uint16(521), + 232: uint16(1236), + 233: uint16(412), + 234: uint16(1236), + 235: uint16(134), + 236: uint16(134), + 237: uint16(134), + 238: uint16(134), + 239: uint16(132), + 240: uint16(132), + 241: uint16(132), + 242: uint16(132), + 243: uint16(131), + 244: uint16(131), + 245: uint16(130), + 246: uint16(130), + 247: uint16(130), + 248: uint16(129), + 249: uint16(126), + 250: uint16(450), + 251: uint16(130), + 252: uint16(130), + 253: uint16(130), + 254: uint16(129), + 255: uint16(126), + 256: uint16(450), + 257: uint16(135), + 258: uint16(136), + 259: uint16(90), + 260: uint16(1228), + 261: uint16(1228), + 262: uint16(1063), + 263: uint16(1066), + 264: uint16(1053), + 265: uint16(1053), + 266: uint16(133), + 267: uint16(133), + 268: uint16(134), + 269: uint16(134), + 270: uint16(134), + 271: uint16(134), + 272: uint16(128), + 273: uint16(125), + 274: uint16(232), + 275: uint16(450), + 276: uint16(576), + 277: uint16(412), + 278: uint16(397), + 279: uint16(1249), + 280: uint16(180), + 281: uint16(92), + 282: uint16(93), + 283: uint16(132), + 284: uint16(132), + 285: uint16(132), + 286: uint16(132), + 287: uint16(131), + 288: uint16(131), + 289: uint16(130), + 290: uint16(130), + 291: uint16(130), + 292: uint16(129), + 293: uint16(126), + 294: uint16(450), + 295: uint16(381), + 296: uint16(387), + 297: uint16(1204), + 298: uint16(383), + 299: uint16(81), + 300: uint16(81), + 301: uint16(135), + 302: uint16(136), + 303: uint16(90), + 304: uint16(1228), + 305: uint16(1228), + 306: uint16(1063), + 307: uint16(1066), + 308: uint16(1053), + 309: uint16(1053), + 310: uint16(133), + 311: uint16(133), + 312: uint16(134), + 313: uint16(134), + 314: uint16(134), + 315: uint16(134), + 316: uint16(132), + 317: uint16(132), + 318: uint16(132), + 319: uint16(132), + 320: uint16(131), + 321: uint16(131), + 322: uint16(130), + 323: uint16(130), + 324: uint16(130), + 325: uint16(129), + 326: uint16(126), + 327: uint16(450), + 328: uint16(131), + 329: uint16(131), + 330: uint16(130), + 331: uint16(130), + 332: uint16(130), + 333: uint16(129), + 334: uint16(126), + 335: uint16(450), + 336: uint16(556), + 337: uint16(1204), + 338: uint16(302), + 339: uint16(319), + 340: uint16(567), + 341: uint16(121), + 342: uint16(568), + 343: uint16(480), 344: uint16(4), - 345: uint16(929), - 346: uint16(929), - 347: uint16(435), - 348: uint16(503), - 349: uint16(342), - 350: uint16(464), - 351: uint16(330), - 352: uint16(362), - 353: uint16(396), - 354: uint16(1238), - 355: uint16(1193), - 356: uint16(1194), - 357: uint16(1193), - 358: uint16(567), - 359: uint16(572), - 360: uint16(123), - 361: uint16(123), - 362: uint16(123), - 363: uint16(123), - 364: uint16(122), - 365: uint16(122), - 366: uint16(121), - 367: uint16(121), - 368: uint16(121), - 369: uint16(120), - 370: uint16(117), - 371: uint16(448), - 372: uint16(286), - 373: uint16(286), - 374: uint16(371), - 375: uint16(1581), - 376: uint16(1607), - 377: uint16(445), - 378: uint16(444), - 379: uint16(155), - 380: uint16(411), - 381: uint16(449), - 382: uint16(72), - 383: uint16(72), - 384: uint16(1289), - 385: uint16(569), - 386: uint16(1222), - 387: uint16(1193), - 388: uint16(1194), - 389: uint16(1193), - 390: uint16(86), - 391: uint16(1224), - 392: uint16(273), - 393: uint16(561), - 394: uint16(547), - 395: uint16(520), - 396: uint16(520), - 397: uint16(572), - 398: uint16(99), - 399: uint16(1223), - 400: uint16(6), - 401: uint16(1281), - 402: uint16(476), - 403: uint16(143), - 404: uint16(126), - 405: uint16(127), - 406: uint16(81), - 407: uint16(1217), - 408: uint16(1217), - 409: uint16(1054), - 410: uint16(1057), - 411: uint16(1044), - 412: uint16(1044), - 413: uint16(124), - 414: uint16(124), - 415: uint16(125), - 416: uint16(125), - 417: uint16(125), - 418: uint16(125), - 419: uint16(554), - 420: uint16(13), - 421: uint16(13), - 422: uint16(1031), - 423: uint16(511), - 424: uint16(1225), - 425: uint16(1193), - 426: uint16(1225), - 427: uint16(553), - 428: uint16(110), - 429: uint16(110), - 430: uint16(224), - 431: uint16(572), - 432: uint16(1239), - 433: uint16(177), - 434: uint16(572), - 435: uint16(429), - 436: uint16(111), - 437: uint16(199), - 438: uint16(449), - 439: uint16(573), - 440: uint16(449), - 441: uint16(432), - 442: uint16(1555), - 443: uint16(1019), - 444: uint16(327), - 445: uint16(555), - 446: uint16(1193), - 447: uint16(272), - 448: uint16(289), - 449: uint16(370), - 450: uint16(514), - 451: uint16(365), - 452: uint16(513), - 453: uint16(259), - 454: uint16(72), - 455: uint16(72), - 456: uint16(547), - 457: uint16(72), - 458: uint16(72), - 459: uint16(361), - 460: uint16(318), - 461: uint16(563), - 462: uint16(1613), - 463: uint16(123), - 464: uint16(123), - 465: uint16(123), - 466: uint16(123), - 467: uint16(122), - 468: uint16(122), - 469: uint16(121), - 470: uint16(121), - 471: uint16(121), - 472: uint16(120), - 473: uint16(117), - 474: uint16(448), - 475: uint16(1019), - 476: uint16(1019), - 477: uint16(1021), - 478: uint16(1022), - 479: uint16(28), - 480: uint16(286), - 481: uint16(286), - 482: uint16(1193), - 483: uint16(1194), - 484: uint16(1193), - 485: uint16(1159), - 486: uint16(572), - 487: uint16(1612), - 488: uint16(411), - 489: uint16(904), - 490: uint16(192), - 491: uint16(554), - 492: uint16(358), - 493: uint16(569), - 494: uint16(554), - 495: uint16(940), - 496: uint16(537), - 497: uint16(521), - 498: uint16(1159), - 499: uint16(437), - 500: uint16(415), - 501: uint16(1159), - 502: uint16(556), - 503: uint16(1193), - 504: uint16(1194), - 505: uint16(1193), - 506: uint16(572), - 507: uint16(548), - 508: uint16(548), - 509: uint16(52), - 510: uint16(52), - 511: uint16(216), - 512: uint16(126), - 513: uint16(127), - 514: uint16(81), - 515: uint16(1217), - 516: uint16(1217), - 517: uint16(1054), - 518: uint16(1057), - 519: uint16(1044), - 520: uint16(1044), - 521: uint16(124), - 522: uint16(124), - 523: uint16(125), - 524: uint16(125), - 525: uint16(125), - 526: uint16(125), - 527: uint16(1193), - 528: uint16(478), - 529: uint16(136), - 530: uint16(136), - 531: uint16(411), - 532: uint16(286), - 533: uint16(286), - 534: uint16(1493), - 535: uint16(509), - 536: uint16(122), - 537: uint16(122), - 538: uint16(121), - 539: uint16(121), - 540: uint16(121), - 541: uint16(120), - 542: uint16(117), - 543: uint16(448), - 544: uint16(1010), - 545: uint16(569), - 546: uint16(522), - 547: uint16(219), - 548: uint16(545), - 549: uint16(545), - 550: uint16(318), - 551: uint16(563), - 552: uint16(143), - 553: uint16(6), - 554: uint16(536), - 555: uint16(126), - 556: uint16(127), - 557: uint16(81), - 558: uint16(1217), - 559: uint16(1217), - 560: uint16(1054), - 561: uint16(1057), - 562: uint16(1044), - 563: uint16(1044), - 564: uint16(124), - 565: uint16(124), - 566: uint16(125), - 567: uint16(125), - 568: uint16(125), - 569: uint16(125), - 570: uint16(1557), - 571: uint16(123), - 572: uint16(123), - 573: uint16(123), - 574: uint16(123), - 575: uint16(122), - 576: uint16(122), - 577: uint16(121), - 578: uint16(121), - 579: uint16(121), - 580: uint16(120), - 581: uint16(117), - 582: uint16(448), - 583: uint16(489), - 584: uint16(1193), - 585: uint16(1194), - 586: uint16(1193), - 587: uint16(486), - 588: uint16(283), - 589: uint16(1270), - 590: uint16(960), - 591: uint16(254), - 592: uint16(1193), - 593: uint16(375), - 594: uint16(508), - 595: uint16(505), - 596: uint16(504), - 597: uint16(1193), - 598: uint16(342), - 599: uint16(574), - 600: uint16(1193), - 601: uint16(574), - 602: uint16(411), - 603: uint16(294), - 604: uint16(503), - 605: uint16(960), - 606: uint16(879), - 607: uint16(193), - 608: uint16(484), - 609: uint16(318), - 610: uint16(563), - 611: uint16(386), - 612: uint16(292), - 613: uint16(382), - 614: uint16(123), - 615: uint16(123), - 616: uint16(123), - 617: uint16(123), - 618: uint16(122), - 619: uint16(122), - 620: uint16(121), - 621: uint16(121), - 622: uint16(121), - 623: uint16(120), - 624: uint16(117), - 625: uint16(448), - 626: uint16(126), - 627: uint16(127), - 628: uint16(81), - 629: uint16(1217), - 630: uint16(1217), - 631: uint16(1054), - 632: uint16(1057), - 633: uint16(1044), - 634: uint16(1044), - 635: uint16(124), - 636: uint16(124), - 637: uint16(125), - 638: uint16(125), - 639: uint16(125), - 640: uint16(125), - 641: uint16(411), - 642: uint16(396), - 643: uint16(1139), - 644: uint16(1193), - 645: uint16(872), - 646: uint16(101), - 647: uint16(286), - 648: uint16(286), - 649: uint16(1193), - 650: uint16(1194), - 651: uint16(1193), - 652: uint16(375), - 653: uint16(1096), - 654: uint16(1193), - 655: uint16(1194), - 656: uint16(1193), - 657: uint16(1193), - 658: uint16(1194), - 659: uint16(1193), - 660: uint16(569), - 661: uint16(459), - 662: uint16(33), - 663: uint16(375), - 664: uint16(235), - 665: uint16(126), - 666: uint16(127), - 667: uint16(81), - 668: uint16(1217), - 669: uint16(1217), - 670: uint16(1054), - 671: uint16(1057), - 672: uint16(1044), - 673: uint16(1044), - 674: uint16(124), - 675: uint16(124), - 676: uint16(125), - 677: uint16(125), - 678: uint16(125), - 679: uint16(125), - 680: uint16(1437), - 681: uint16(962), - 682: uint16(572), - 683: uint16(230), - 684: uint16(961), - 685: uint16(123), - 686: uint16(123), - 687: uint16(123), - 688: uint16(123), - 689: uint16(122), - 690: uint16(122), - 691: uint16(121), - 692: uint16(121), - 693: uint16(121), - 694: uint16(120), - 695: uint16(117), - 696: uint16(448), - 697: uint16(1159), - 698: uint16(230), - 699: uint16(1193), - 700: uint16(158), - 701: uint16(1193), - 702: uint16(1194), - 703: uint16(1193), - 704: uint16(1556), - 705: uint16(13), - 706: uint16(13), - 707: uint16(303), - 708: uint16(960), - 709: uint16(1233), - 710: uint16(1159), - 711: uint16(154), - 712: uint16(411), - 713: uint16(1159), - 714: uint16(375), - 715: uint16(1584), - 716: uint16(1177), - 717: uint16(5), - 718: uint16(371), - 719: uint16(1581), - 720: uint16(431), - 721: uint16(1239), - 722: uint16(3), - 723: uint16(960), - 724: uint16(123), - 725: uint16(123), - 726: uint16(123), - 727: uint16(123), - 728: uint16(122), - 729: uint16(122), - 730: uint16(121), - 731: uint16(121), - 732: uint16(121), - 733: uint16(120), - 734: uint16(117), - 735: uint16(448), - 736: uint16(126), - 737: uint16(127), - 738: uint16(81), - 739: uint16(1217), - 740: uint16(1217), - 741: uint16(1054), - 742: uint16(1057), - 743: uint16(1044), - 744: uint16(1044), - 745: uint16(124), - 746: uint16(124), - 747: uint16(125), - 748: uint16(125), - 749: uint16(125), - 750: uint16(125), - 751: uint16(411), - 752: uint16(210), - 753: uint16(571), - 754: uint16(1193), - 755: uint16(1032), - 756: uint16(1193), - 757: uint16(1194), - 758: uint16(1193), - 759: uint16(1193), - 760: uint16(390), - 761: uint16(855), - 762: uint16(156), - 763: uint16(1555), - 764: uint16(376), - 765: uint16(404), - 766: uint16(1101), - 767: uint16(1101), - 768: uint16(492), - 769: uint16(572), - 770: uint16(469), - 771: uint16(344), - 772: uint16(1322), - 773: uint16(1322), - 774: uint16(1555), - 775: uint16(126), - 776: uint16(127), - 777: uint16(81), - 778: uint16(1217), - 779: uint16(1217), - 780: uint16(1054), - 781: uint16(1057), - 782: uint16(1044), - 783: uint16(1044), - 784: uint16(124), - 785: uint16(124), - 786: uint16(125), - 787: uint16(125), - 788: uint16(125), - 789: uint16(125), - 790: uint16(130), - 791: uint16(572), - 792: uint16(13), - 793: uint16(13), - 794: uint16(532), - 795: uint16(123), - 796: uint16(123), - 797: uint16(123), - 798: uint16(123), - 799: uint16(122), - 800: uint16(122), - 801: uint16(121), - 802: uint16(121), - 803: uint16(121), - 804: uint16(120), - 805: uint16(117), - 806: uint16(448), - 807: uint16(304), - 808: uint16(572), - 809: uint16(457), - 810: uint16(229), - 811: uint16(1193), - 812: uint16(1194), - 813: uint16(1193), - 814: uint16(13), - 815: uint16(13), - 816: uint16(1193), - 817: uint16(1194), - 818: uint16(1193), - 819: uint16(1300), - 820: uint16(467), - 821: uint16(1270), - 822: uint16(411), - 823: uint16(1320), - 824: uint16(1320), - 825: uint16(1555), - 826: uint16(1015), - 827: uint16(457), - 828: uint16(456), - 829: uint16(436), - 830: uint16(301), - 831: uint16(72), - 832: uint16(72), - 833: uint16(1268), - 834: uint16(123), - 835: uint16(123), - 836: uint16(123), - 837: uint16(123), - 838: uint16(122), - 839: uint16(122), - 840: uint16(121), - 841: uint16(121), - 842: uint16(121), - 843: uint16(120), - 844: uint16(117), - 845: uint16(448), - 846: uint16(126), - 847: uint16(127), - 848: uint16(81), - 849: uint16(1217), - 850: uint16(1217), - 851: uint16(1054), - 852: uint16(1057), - 853: uint16(1044), - 854: uint16(1044), - 855: uint16(124), - 856: uint16(124), - 857: uint16(125), - 858: uint16(125), - 859: uint16(125), - 860: uint16(125), - 861: uint16(411), - 862: uint16(384), - 863: uint16(1076), - 864: uint16(1159), - 865: uint16(286), - 866: uint16(286), - 867: uint16(421), - 868: uint16(314), - 869: uint16(280), - 870: uint16(280), - 871: uint16(287), - 872: uint16(287), - 873: uint16(461), - 874: uint16(408), - 875: uint16(407), - 876: uint16(1539), - 877: uint16(1159), - 878: uint16(569), - 879: uint16(572), - 880: uint16(1159), - 881: uint16(1196), - 882: uint16(569), - 883: uint16(409), - 884: uint16(569), - 885: uint16(126), - 886: uint16(127), - 887: uint16(81), - 888: uint16(1217), - 889: uint16(1217), - 890: uint16(1054), - 891: uint16(1057), - 892: uint16(1044), - 893: uint16(1044), - 894: uint16(124), - 895: uint16(124), - 896: uint16(125), - 897: uint16(125), - 898: uint16(125), - 899: uint16(125), - 900: uint16(457), - 901: uint16(1485), - 902: uint16(13), - 903: uint16(13), - 904: uint16(1541), - 905: uint16(123), - 906: uint16(123), - 907: uint16(123), - 908: uint16(123), - 909: uint16(122), - 910: uint16(122), - 911: uint16(121), - 912: uint16(121), - 913: uint16(121), - 914: uint16(120), - 915: uint16(117), - 916: uint16(448), - 917: uint16(202), - 918: uint16(572), - 919: uint16(462), - 920: uint16(1587), - 921: uint16(578), - 922: uint16(2), - 923: uint16(1248), - 924: uint16(843), - 925: uint16(844), - 926: uint16(845), - 927: uint16(1563), - 928: uint16(319), - 929: uint16(409), - 930: uint16(147), - 931: uint16(6), - 932: uint16(411), - 933: uint16(257), - 934: uint16(256), - 935: uint16(255), - 936: uint16(208), - 937: uint16(1330), - 938: uint16(9), - 939: uint16(1196), - 940: uint16(264), - 941: uint16(72), - 942: uint16(72), - 943: uint16(1436), - 944: uint16(123), - 945: uint16(123), - 946: uint16(123), - 947: uint16(123), - 948: uint16(122), - 949: uint16(122), - 950: uint16(121), - 951: uint16(121), - 952: uint16(121), - 953: uint16(120), - 954: uint16(117), - 955: uint16(448), - 956: uint16(126), - 957: uint16(127), - 958: uint16(81), - 959: uint16(1217), - 960: uint16(1217), - 961: uint16(1054), - 962: uint16(1057), - 963: uint16(1044), - 964: uint16(1044), - 965: uint16(124), - 966: uint16(124), - 967: uint16(125), - 968: uint16(125), - 969: uint16(125), - 970: uint16(125), - 971: uint16(572), - 972: uint16(286), - 973: uint16(286), - 974: uint16(572), - 975: uint16(1213), - 976: uint16(411), - 977: uint16(577), - 978: uint16(315), - 979: uint16(1248), - 980: uint16(421), - 981: uint16(371), - 982: uint16(1581), - 983: uint16(356), - 984: uint16(319), - 985: uint16(569), - 986: uint16(147), - 987: uint16(495), - 988: uint16(529), - 989: uint16(1644), - 990: uint16(397), - 991: uint16(935), - 992: uint16(495), - 993: uint16(1330), - 994: uint16(71), - 995: uint16(71), - 996: uint16(934), - 997: uint16(72), - 998: uint16(72), - 999: uint16(242), - 1000: uint16(1328), - 1001: uint16(105), - 1002: uint16(81), - 1003: uint16(1217), - 1004: uint16(1217), - 1005: uint16(1054), - 1006: uint16(1057), - 1007: uint16(1044), - 1008: uint16(1044), - 1009: uint16(124), - 1010: uint16(124), - 1011: uint16(125), - 1012: uint16(125), - 1013: uint16(125), - 1014: uint16(125), - 1015: uint16(123), - 1016: uint16(123), - 1017: uint16(123), - 1018: uint16(123), - 1019: uint16(122), - 1020: uint16(122), - 1021: uint16(121), - 1022: uint16(121), - 1023: uint16(121), - 1024: uint16(120), - 1025: uint16(117), - 1026: uint16(448), - 1027: uint16(1117), - 1028: uint16(286), - 1029: uint16(286), - 1030: uint16(1422), - 1031: uint16(452), - 1032: uint16(1528), - 1033: uint16(1213), - 1034: uint16(443), - 1035: uint16(286), - 1036: uint16(286), - 1037: uint16(1492), - 1038: uint16(1355), - 1039: uint16(313), - 1040: uint16(478), - 1041: uint16(569), - 1042: uint16(1118), - 1043: uint16(454), - 1044: uint16(351), - 1045: uint16(495), - 1046: uint16(354), - 1047: uint16(1266), - 1048: uint16(569), - 1049: uint16(209), - 1050: uint16(572), - 1051: uint16(418), - 1052: uint16(179), - 1053: uint16(572), - 1054: uint16(1031), - 1055: uint16(242), - 1056: uint16(385), - 1057: uint16(1119), - 1058: uint16(523), - 1059: uint16(123), - 1060: uint16(123), - 1061: uint16(123), - 1062: uint16(123), - 1063: uint16(122), - 1064: uint16(122), - 1065: uint16(121), - 1066: uint16(121), - 1067: uint16(121), - 1068: uint16(120), - 1069: uint16(117), - 1070: uint16(448), - 1071: uint16(1020), - 1072: uint16(108), - 1073: uint16(72), - 1074: uint16(72), - 1075: uint16(1019), - 1076: uint16(13), - 1077: uint16(13), - 1078: uint16(915), - 1079: uint16(572), - 1080: uint16(1498), - 1081: uint16(572), - 1082: uint16(286), - 1083: uint16(286), - 1084: uint16(98), - 1085: uint16(530), - 1086: uint16(1537), - 1087: uint16(452), - 1088: uint16(916), - 1089: uint16(1334), - 1090: uint16(1329), - 1091: uint16(203), - 1092: uint16(411), - 1093: uint16(286), - 1094: uint16(286), - 1095: uint16(569), - 1096: uint16(152), - 1097: uint16(211), - 1098: uint16(1498), - 1099: uint16(1500), - 1100: uint16(426), - 1101: uint16(569), - 1102: uint16(56), - 1103: uint16(56), - 1104: uint16(57), - 1105: uint16(57), - 1106: uint16(569), - 1107: uint16(1019), - 1108: uint16(1019), - 1109: uint16(1021), - 1110: uint16(447), - 1111: uint16(572), - 1112: uint16(411), - 1113: uint16(531), - 1114: uint16(12), - 1115: uint16(297), - 1116: uint16(126), - 1117: uint16(127), - 1118: uint16(81), - 1119: uint16(1217), - 1120: uint16(1217), - 1121: uint16(1054), - 1122: uint16(1057), - 1123: uint16(1044), - 1124: uint16(1044), - 1125: uint16(124), - 1126: uint16(124), - 1127: uint16(125), - 1128: uint16(125), - 1129: uint16(125), - 1130: uint16(125), - 1131: uint16(572), - 1132: uint16(411), - 1133: uint16(867), - 1134: uint16(15), - 1135: uint16(15), - 1136: uint16(126), - 1137: uint16(127), - 1138: uint16(81), - 1139: uint16(1217), - 1140: uint16(1217), - 1141: uint16(1054), - 1142: uint16(1057), - 1143: uint16(1044), - 1144: uint16(1044), - 1145: uint16(124), - 1146: uint16(124), - 1147: uint16(125), - 1148: uint16(125), - 1149: uint16(125), - 1150: uint16(125), - 1151: uint16(373), - 1152: uint16(529), - 1153: uint16(264), - 1154: uint16(44), - 1155: uint16(44), - 1156: uint16(126), - 1157: uint16(115), - 1158: uint16(81), - 1159: uint16(1217), - 1160: uint16(1217), - 1161: uint16(1054), - 1162: uint16(1057), - 1163: uint16(1044), - 1164: uint16(1044), - 1165: uint16(124), - 1166: uint16(124), - 1167: uint16(125), - 1168: uint16(125), - 1169: uint16(125), - 1170: uint16(125), - 1171: uint16(1498), - 1172: uint16(478), - 1173: uint16(1271), - 1174: uint16(417), - 1175: uint16(123), - 1176: uint16(123), - 1177: uint16(123), - 1178: uint16(123), - 1179: uint16(122), - 1180: uint16(122), - 1181: uint16(121), - 1182: uint16(121), - 1183: uint16(121), - 1184: uint16(120), - 1185: uint16(117), - 1186: uint16(448), - 1187: uint16(205), - 1188: uint16(1213), - 1189: uint16(495), - 1190: uint16(430), - 1191: uint16(867), - 1192: uint16(468), - 1193: uint16(322), - 1194: uint16(495), - 1195: uint16(123), - 1196: uint16(123), - 1197: uint16(123), - 1198: uint16(123), - 1199: uint16(122), - 1200: uint16(122), - 1201: uint16(121), - 1202: uint16(121), - 1203: uint16(121), - 1204: uint16(120), - 1205: uint16(117), - 1206: uint16(448), - 1207: uint16(572), - 1208: uint16(557), - 1209: uint16(1140), - 1210: uint16(1642), - 1211: uint16(1422), - 1212: uint16(1642), - 1213: uint16(543), - 1214: uint16(572), - 1215: uint16(123), - 1216: uint16(123), - 1217: uint16(123), - 1218: uint16(123), - 1219: uint16(122), - 1220: uint16(122), - 1221: uint16(121), - 1222: uint16(121), - 1223: uint16(121), - 1224: uint16(120), - 1225: uint16(117), - 1226: uint16(448), - 1227: uint16(572), - 1228: uint16(1422), - 1229: uint16(572), - 1230: uint16(13), - 1231: uint16(13), - 1232: uint16(542), - 1233: uint16(323), - 1234: uint16(1325), - 1235: uint16(411), - 1236: uint16(334), - 1237: uint16(58), - 1238: uint16(58), - 1239: uint16(349), - 1240: uint16(1422), - 1241: uint16(1170), - 1242: uint16(326), - 1243: uint16(286), - 1244: uint16(286), - 1245: uint16(549), - 1246: uint16(1213), - 1247: uint16(300), - 1248: uint16(895), - 1249: uint16(530), - 1250: uint16(45), - 1251: uint16(45), - 1252: uint16(59), - 1253: uint16(59), - 1254: uint16(1140), - 1255: uint16(1643), - 1256: uint16(569), - 1257: uint16(1643), - 1258: uint16(565), - 1259: uint16(417), - 1260: uint16(127), - 1261: uint16(81), - 1262: uint16(1217), - 1263: uint16(1217), - 1264: uint16(1054), - 1265: uint16(1057), - 1266: uint16(1044), - 1267: uint16(1044), - 1268: uint16(124), - 1269: uint16(124), - 1270: uint16(125), - 1271: uint16(125), - 1272: uint16(125), - 1273: uint16(125), - 1274: uint16(1367), - 1275: uint16(373), - 1276: uint16(500), - 1277: uint16(290), - 1278: uint16(1193), - 1279: uint16(512), - 1280: uint16(1366), - 1281: uint16(427), - 1282: uint16(394), - 1283: uint16(394), - 1284: uint16(393), - 1285: uint16(275), - 1286: uint16(391), - 1287: uint16(896), - 1288: uint16(1138), - 1289: uint16(852), - 1290: uint16(478), - 1291: uint16(258), - 1292: uint16(1422), - 1293: uint16(1170), - 1294: uint16(463), - 1295: uint16(1159), - 1296: uint16(12), - 1297: uint16(331), - 1298: uint16(428), - 1299: uint16(333), - 1300: uint16(1117), - 1301: uint16(460), - 1302: uint16(236), - 1303: uint16(258), - 1304: uint16(325), - 1305: uint16(460), - 1306: uint16(544), - 1307: uint16(1544), - 1308: uint16(1159), - 1309: uint16(1098), - 1310: uint16(491), - 1311: uint16(1159), - 1312: uint16(324), - 1313: uint16(1098), - 1314: uint16(440), - 1315: uint16(1118), - 1316: uint16(335), - 1317: uint16(516), - 1318: uint16(123), - 1319: uint16(123), - 1320: uint16(123), - 1321: uint16(123), - 1322: uint16(122), - 1323: uint16(122), - 1324: uint16(121), - 1325: uint16(121), - 1326: uint16(121), - 1327: uint16(120), - 1328: uint16(117), - 1329: uint16(448), - 1330: uint16(1119), - 1331: uint16(318), - 1332: uint16(563), - 1333: uint16(1138), - 1334: uint16(572), - 1335: uint16(1193), - 1336: uint16(1194), - 1337: uint16(1193), - 1338: uint16(112), - 1339: uint16(564), - 1340: uint16(201), + 345: uint16(555), + 346: uint16(1149), + 347: uint16(1657), + 348: uint16(1628), + 349: uint16(1657), + 350: uint16(45), + 351: uint16(128), + 352: uint16(125), + 353: uint16(232), + 354: uint16(1204), + 355: uint16(1205), + 356: uint16(1204), + 357: uint16(1250), + 358: uint16(571), + 359: uint16(1169), + 360: uint16(132), + 361: uint16(132), + 362: uint16(132), + 363: uint16(132), + 364: uint16(131), + 365: uint16(131), + 366: uint16(130), + 367: uint16(130), + 368: uint16(130), + 369: uint16(129), + 370: uint16(126), + 371: uint16(450), + 372: uint16(1169), + 373: uint16(287), + 374: uint16(287), + 375: uint16(1169), + 376: uint16(1019), + 377: uint16(576), + 378: uint16(422), + 379: uint16(1019), + 380: uint16(412), + 381: uint16(451), + 382: uint16(1602), + 383: uint16(582), + 384: uint16(2), + 385: uint16(1259), + 386: uint16(573), + 387: uint16(44), + 388: uint16(561), + 389: uint16(95), + 390: uint16(320), + 391: uint16(110), + 392: uint16(153), + 393: uint16(565), + 394: uint16(1204), + 395: uint16(1205), + 396: uint16(1204), + 397: uint16(522), + 398: uint16(522), + 399: uint16(1341), + 400: uint16(81), + 401: uint16(81), + 402: uint16(7), + 403: uint16(44), + 404: uint16(135), + 405: uint16(136), + 406: uint16(90), + 407: uint16(1228), + 408: uint16(1228), + 409: uint16(1063), + 410: uint16(1066), + 411: uint16(1053), + 412: uint16(1053), + 413: uint16(133), + 414: uint16(133), + 415: uint16(134), + 416: uint16(134), + 417: uint16(134), + 418: uint16(134), + 419: uint16(295), + 420: uint16(1149), + 421: uint16(1658), + 422: uint16(1040), + 423: uint16(1658), + 424: uint16(1204), + 425: uint16(1147), + 426: uint16(319), + 427: uint16(567), + 428: uint16(119), + 429: uint16(119), + 430: uint16(343), + 431: uint16(466), + 432: uint16(331), + 433: uint16(343), + 434: uint16(287), + 435: uint16(287), + 436: uint16(120), + 437: uint16(556), + 438: uint16(451), + 439: uint16(577), + 440: uint16(451), + 441: uint16(1169), + 442: uint16(1169), + 443: uint16(1028), + 444: uint16(319), + 445: uint16(567), + 446: uint16(438), + 447: uint16(573), + 448: uint16(210), + 449: uint16(561), + 450: uint16(1339), + 451: uint16(1451), + 452: uint16(546), + 453: uint16(531), + 454: uint16(1169), + 455: uint16(1169), + 456: uint16(1598), + 457: uint16(1169), + 458: uint16(1169), + 459: uint16(416), + 460: uint16(319), + 461: uint16(567), + 462: uint16(243), + 463: uint16(132), + 464: uint16(132), + 465: uint16(132), + 466: uint16(132), + 467: uint16(131), + 468: uint16(131), + 469: uint16(130), + 470: uint16(130), + 471: uint16(130), + 472: uint16(129), + 473: uint16(126), + 474: uint16(450), + 475: uint16(1028), + 476: uint16(1028), + 477: uint16(1030), + 478: uint16(1031), + 479: uint16(35), + 480: uint16(44), + 481: uint16(1204), + 482: uint16(1205), + 483: uint16(1204), + 484: uint16(472), + 485: uint16(287), + 486: uint16(287), + 487: uint16(1328), + 488: uint16(412), + 489: uint16(1307), + 490: uint16(372), + 491: uint16(1595), + 492: uint16(359), + 493: uint16(225), + 494: uint16(454), + 495: uint16(1204), + 496: uint16(195), + 497: uint16(1328), + 498: uint16(573), + 499: uint16(1147), + 500: uint16(561), + 501: uint16(1333), + 502: uint16(1333), + 503: uint16(274), + 504: uint16(576), + 505: uint16(1188), + 506: uint16(576), + 507: uint16(340), + 508: uint16(46), + 509: uint16(196), + 510: uint16(537), + 511: uint16(217), + 512: uint16(135), + 513: uint16(136), + 514: uint16(90), + 515: uint16(1228), + 516: uint16(1228), + 517: uint16(1063), + 518: uint16(1066), + 519: uint16(1053), + 520: uint16(1053), + 521: uint16(133), + 522: uint16(133), + 523: uint16(134), + 524: uint16(134), + 525: uint16(134), + 526: uint16(134), + 527: uint16(19), + 528: uint16(19), + 529: uint16(19), + 530: uint16(19), + 531: uint16(412), + 532: uint16(581), + 533: uint16(1204), + 534: uint16(1259), + 535: uint16(511), + 536: uint16(1204), + 537: uint16(319), + 538: uint16(567), + 539: uint16(320), + 540: uint16(944), + 541: uint16(153), + 542: uint16(425), + 543: uint16(491), + 544: uint16(430), + 545: uint16(943), + 546: uint16(1204), + 547: uint16(488), + 548: uint16(1341), + 549: uint16(1450), + 550: uint16(532), + 551: uint16(1277), + 552: uint16(1204), + 553: uint16(1205), + 554: uint16(1204), + 555: uint16(135), + 556: uint16(136), + 557: uint16(90), + 558: uint16(1228), + 559: uint16(1228), + 560: uint16(1063), + 561: uint16(1066), + 562: uint16(1053), + 563: uint16(1053), + 564: uint16(133), + 565: uint16(133), + 566: uint16(134), + 567: uint16(134), + 568: uint16(134), + 569: uint16(134), + 570: uint16(575), + 571: uint16(132), + 572: uint16(132), + 573: uint16(132), + 574: uint16(132), + 575: uint16(131), + 576: uint16(131), + 577: uint16(130), + 578: uint16(130), + 579: uint16(130), + 580: uint16(129), + 581: uint16(126), + 582: uint16(450), + 583: uint16(287), + 584: uint16(287), + 585: uint16(528), + 586: uint16(287), + 587: uint16(287), + 588: uint16(372), + 589: uint16(1595), + 590: uint16(1204), + 591: uint16(1205), + 592: uint16(1204), + 593: uint16(1204), + 594: uint16(1205), + 595: uint16(1204), + 596: uint16(573), + 597: uint16(486), + 598: uint16(561), + 599: uint16(573), + 600: uint16(889), + 601: uint16(561), + 602: uint16(412), + 603: uint16(1204), + 604: uint16(1205), + 605: uint16(1204), + 606: uint16(886), + 607: uint16(40), + 608: uint16(22), + 609: uint16(22), + 610: uint16(220), + 611: uint16(243), + 612: uint16(525), + 613: uint16(1449), + 614: uint16(132), + 615: uint16(132), + 616: uint16(132), + 617: uint16(132), + 618: uint16(131), + 619: uint16(131), + 620: uint16(130), + 621: uint16(130), + 622: uint16(130), + 623: uint16(129), + 624: uint16(126), + 625: uint16(450), + 626: uint16(135), + 627: uint16(136), + 628: uint16(90), + 629: uint16(1228), + 630: uint16(1228), + 631: uint16(1063), + 632: uint16(1066), + 633: uint16(1053), + 634: uint16(1053), + 635: uint16(133), + 636: uint16(133), + 637: uint16(134), + 638: uint16(134), + 639: uint16(134), + 640: uint16(134), + 641: uint16(412), + 642: uint16(180), + 643: uint16(454), + 644: uint16(1204), + 645: uint16(879), + 646: uint16(255), + 647: uint16(287), + 648: uint16(287), + 649: uint16(510), + 650: uint16(507), + 651: uint16(506), + 652: uint16(372), + 653: uint16(1595), + 654: uint16(1568), + 655: uint16(1331), + 656: uint16(1331), + 657: uint16(576), + 658: uint16(889), + 659: uint16(505), + 660: uint16(573), + 661: uint16(44), + 662: uint16(561), + 663: uint16(559), + 664: uint16(1207), + 665: uint16(135), + 666: uint16(136), + 667: uint16(90), + 668: uint16(1228), + 669: uint16(1228), + 670: uint16(1063), + 671: uint16(1066), + 672: uint16(1053), + 673: uint16(1053), + 674: uint16(133), + 675: uint16(133), + 676: uint16(134), + 677: uint16(134), + 678: uint16(134), + 679: uint16(134), + 680: uint16(81), + 681: uint16(81), + 682: uint16(422), + 683: uint16(576), + 684: uint16(377), + 685: uint16(132), + 686: uint16(132), + 687: uint16(132), + 688: uint16(132), + 689: uint16(131), + 690: uint16(131), + 691: uint16(130), + 692: uint16(130), + 693: uint16(130), + 694: uint16(129), + 695: uint16(126), + 696: uint16(450), + 697: uint16(297), + 698: uint16(287), + 699: uint16(287), + 700: uint16(460), + 701: uint16(1204), + 702: uint16(1205), + 703: uint16(1204), + 704: uint16(1204), + 705: uint16(534), + 706: uint16(19), + 707: uint16(19), + 708: uint16(448), + 709: uint16(448), + 710: uint16(448), + 711: uint16(573), + 712: uint16(412), + 713: uint16(561), + 714: uint16(230), + 715: uint16(436), + 716: uint16(1187), + 717: uint16(535), + 718: uint16(319), + 719: uint16(567), + 720: uint16(363), + 721: uint16(432), + 722: uint16(1207), + 723: uint16(1435), + 724: uint16(132), + 725: uint16(132), + 726: uint16(132), + 727: uint16(132), + 728: uint16(131), + 729: uint16(131), + 730: uint16(130), + 731: uint16(130), + 732: uint16(130), + 733: uint16(129), + 734: uint16(126), + 735: uint16(450), + 736: uint16(135), + 737: uint16(136), + 738: uint16(90), + 739: uint16(1228), + 740: uint16(1228), + 741: uint16(1063), + 742: uint16(1066), + 743: uint16(1053), + 744: uint16(1053), + 745: uint16(133), + 746: uint16(133), + 747: uint16(134), + 748: uint16(134), + 749: uint16(134), + 750: uint16(134), + 751: uint16(412), + 752: uint16(211), + 753: uint16(949), + 754: uint16(1169), + 755: uint16(1041), + 756: uint16(1110), + 757: uint16(1110), + 758: uint16(494), + 759: uint16(547), + 760: uint16(547), + 761: uint16(1204), + 762: uint16(1205), + 763: uint16(1204), + 764: uint16(7), + 765: uint16(539), + 766: uint16(1570), + 767: uint16(1169), + 768: uint16(376), + 769: uint16(576), + 770: uint16(1169), + 771: uint16(5), + 772: uint16(1204), + 773: uint16(486), + 774: uint16(3), + 775: uint16(135), + 776: uint16(136), + 777: uint16(90), + 778: uint16(1228), + 779: uint16(1228), + 780: uint16(1063), + 781: uint16(1066), + 782: uint16(1053), + 783: uint16(1053), + 784: uint16(133), + 785: uint16(133), + 786: uint16(134), + 787: uint16(134), + 788: uint16(134), + 789: uint16(134), + 790: uint16(576), + 791: uint16(513), + 792: uint16(19), + 793: uint16(19), + 794: uint16(427), + 795: uint16(132), + 796: uint16(132), + 797: uint16(132), + 798: uint16(132), + 799: uint16(131), + 800: uint16(131), + 801: uint16(130), + 802: uint16(130), + 803: uint16(130), + 804: uint16(129), + 805: uint16(126), + 806: uint16(450), + 807: uint16(305), + 808: uint16(1204), + 809: uint16(433), + 810: uint16(225), + 811: uint16(1204), + 812: uint16(385), + 813: uint16(19), + 814: uint16(19), + 815: uint16(273), + 816: uint16(290), + 817: uint16(371), + 818: uint16(516), + 819: uint16(366), + 820: uint16(515), + 821: uint16(260), + 822: uint16(412), + 823: uint16(538), + 824: uint16(1568), + 825: uint16(549), + 826: uint16(1024), + 827: uint16(362), + 828: uint16(437), + 829: uint16(1204), + 830: uint16(1205), + 831: uint16(1204), + 832: uint16(902), + 833: uint16(1552), + 834: uint16(132), + 835: uint16(132), + 836: uint16(132), + 837: uint16(132), + 838: uint16(131), + 839: uint16(131), + 840: uint16(130), + 841: uint16(130), + 842: uint16(130), + 843: uint16(129), + 844: uint16(126), + 845: uint16(450), + 846: uint16(135), + 847: uint16(136), + 848: uint16(90), + 849: uint16(1228), + 850: uint16(1228), + 851: uint16(1063), + 852: uint16(1066), + 853: uint16(1053), + 854: uint16(1053), + 855: uint16(133), + 856: uint16(133), + 857: uint16(134), + 858: uint16(134), + 859: uint16(134), + 860: uint16(134), + 861: uint16(412), + 862: uint16(1435), + 863: uint16(514), + 864: uint16(1281), + 865: uint16(1204), + 866: uint16(1205), + 867: uint16(1204), + 868: uint16(1204), + 869: uint16(1205), + 870: uint16(1204), + 871: uint16(903), + 872: uint16(48), + 873: uint16(342), + 874: uint16(1568), + 875: uint16(1568), + 876: uint16(1279), + 877: uint16(1627), + 878: uint16(1568), + 879: uint16(911), + 880: uint16(576), + 881: uint16(129), + 882: uint16(126), + 883: uint16(450), + 884: uint16(110), + 885: uint16(135), + 886: uint16(136), + 887: uint16(90), + 888: uint16(1228), + 889: uint16(1228), + 890: uint16(1063), + 891: uint16(1066), + 892: uint16(1053), + 893: uint16(1053), + 894: uint16(133), + 895: uint16(133), + 896: uint16(134), + 897: uint16(134), + 898: uint16(134), + 899: uint16(134), + 900: uint16(265), + 901: uint16(576), + 902: uint16(459), + 903: uint16(19), + 904: uint16(19), + 905: uint16(132), + 906: uint16(132), + 907: uint16(132), + 908: uint16(132), + 909: uint16(131), + 910: uint16(131), + 911: uint16(130), + 912: uint16(130), + 913: uint16(130), + 914: uint16(129), + 915: uint16(126), + 916: uint16(450), + 917: uint16(1345), + 918: uint16(204), + 919: uint16(576), + 920: uint16(459), + 921: uint16(458), + 922: uint16(50), + 923: uint16(47), + 924: uint16(19), + 925: uint16(19), + 926: uint16(49), + 927: uint16(434), + 928: uint16(1105), + 929: uint16(573), + 930: uint16(497), + 931: uint16(561), + 932: uint16(412), + 933: uint16(428), + 934: uint16(108), + 935: uint16(1224), + 936: uint16(1569), + 937: uint16(1554), + 938: uint16(376), + 939: uint16(205), + 940: uint16(550), + 941: uint16(550), + 942: uint16(81), + 943: uint16(81), + 944: uint16(132), + 945: uint16(132), + 946: uint16(132), + 947: uint16(132), + 948: uint16(131), + 949: uint16(131), + 950: uint16(130), + 951: uint16(130), + 952: uint16(130), + 953: uint16(129), + 954: uint16(126), + 955: uint16(450), + 956: uint16(135), + 957: uint16(136), + 958: uint16(90), + 959: uint16(1228), + 960: uint16(1228), + 961: uint16(1063), + 962: uint16(1066), + 963: uint16(1053), + 964: uint16(1053), + 965: uint16(133), + 966: uint16(133), + 967: uint16(134), + 968: uint16(134), + 969: uint16(134), + 970: uint16(134), + 971: uint16(480), + 972: uint16(576), + 973: uint16(1204), + 974: uint16(576), + 975: uint16(1541), + 976: uint16(412), + 977: uint16(1435), + 978: uint16(969), + 979: uint16(315), + 980: uint16(1659), + 981: uint16(398), + 982: uint16(284), + 983: uint16(497), + 984: uint16(969), + 985: uint16(893), + 986: uint16(1569), + 987: uint16(1569), + 988: uint16(376), + 989: uint16(376), + 990: uint16(1569), + 991: uint16(461), + 992: uint16(376), + 993: uint16(1224), + 994: uint16(459), + 995: uint16(80), + 996: uint16(80), + 997: uint16(81), + 998: uint16(81), + 999: uint16(497), + 1000: uint16(374), + 1001: uint16(114), + 1002: uint16(90), + 1003: uint16(1228), + 1004: uint16(1228), + 1005: uint16(1063), + 1006: uint16(1066), + 1007: uint16(1053), + 1008: uint16(1053), + 1009: uint16(133), + 1010: uint16(133), + 1011: uint16(134), + 1012: uint16(134), + 1013: uint16(134), + 1014: uint16(134), + 1015: uint16(132), + 1016: uint16(132), + 1017: uint16(132), + 1018: uint16(132), + 1019: uint16(131), + 1020: uint16(131), + 1021: uint16(130), + 1022: uint16(130), + 1023: uint16(130), + 1024: uint16(129), + 1025: uint16(126), + 1026: uint16(450), + 1027: uint16(1204), + 1028: uint16(1505), + 1029: uint16(576), + 1030: uint16(1204), + 1031: uint16(1205), + 1032: uint16(1204), + 1033: uint16(1366), + 1034: uint16(316), + 1035: uint16(486), + 1036: uint16(281), + 1037: uint16(281), + 1038: uint16(497), + 1039: uint16(431), + 1040: uint16(557), + 1041: uint16(288), + 1042: uint16(288), + 1043: uint16(402), + 1044: uint16(1340), + 1045: uint16(471), + 1046: uint16(345), + 1047: uint16(298), + 1048: uint16(429), + 1049: uint16(573), + 1050: uint16(576), + 1051: uint16(561), + 1052: uint16(81), + 1053: uint16(81), + 1054: uint16(573), + 1055: uint16(374), + 1056: uint16(561), + 1057: uint16(971), + 1058: uint16(386), + 1059: uint16(132), + 1060: uint16(132), + 1061: uint16(132), + 1062: uint16(132), + 1063: uint16(131), + 1064: uint16(131), + 1065: uint16(130), + 1066: uint16(130), + 1067: uint16(130), + 1068: uint16(129), + 1069: uint16(126), + 1070: uint16(450), + 1071: uint16(231), + 1072: uint16(117), + 1073: uint16(81), + 1074: uint16(81), + 1075: uint16(287), + 1076: uint16(287), + 1077: uint16(231), + 1078: uint16(287), + 1079: uint16(287), + 1080: uint16(576), + 1081: uint16(1511), + 1082: uint16(576), + 1083: uint16(1336), + 1084: uint16(1204), + 1085: uint16(1205), + 1086: uint16(1204), + 1087: uint16(139), + 1088: uint16(573), + 1089: uint16(556), + 1090: uint16(561), + 1091: uint16(573), + 1092: uint16(412), + 1093: uint16(561), + 1094: uint16(441), + 1095: uint16(456), + 1096: uint16(969), + 1097: uint16(213), + 1098: uint16(558), + 1099: uint16(1511), + 1100: uint16(1513), + 1101: uint16(1550), + 1102: uint16(969), + 1103: uint16(143), + 1104: uint16(143), + 1105: uint16(145), + 1106: uint16(145), + 1107: uint16(1368), + 1108: uint16(314), + 1109: uint16(478), + 1110: uint16(444), + 1111: uint16(970), + 1112: uint16(412), + 1113: uint16(850), + 1114: uint16(851), + 1115: uint16(852), + 1116: uint16(135), + 1117: uint16(136), + 1118: uint16(90), + 1119: uint16(1228), + 1120: uint16(1228), + 1121: uint16(1063), + 1122: uint16(1066), + 1123: uint16(1053), + 1124: uint16(1053), + 1125: uint16(133), + 1126: uint16(133), + 1127: uint16(134), + 1128: uint16(134), + 1129: uint16(134), + 1130: uint16(134), + 1131: uint16(357), + 1132: uint16(412), + 1133: uint16(397), + 1134: uint16(1148), + 1135: uint16(304), + 1136: uint16(135), + 1137: uint16(136), + 1138: uint16(90), + 1139: uint16(1228), + 1140: uint16(1228), + 1141: uint16(1063), + 1142: uint16(1066), + 1143: uint16(1053), + 1144: uint16(1053), + 1145: uint16(133), + 1146: uint16(133), + 1147: uint16(134), + 1148: uint16(134), + 1149: uint16(134), + 1150: uint16(134), + 1151: uint16(1575), + 1152: uint16(323), + 1153: uint16(6), + 1154: uint16(862), + 1155: uint16(7), + 1156: uint16(135), + 1157: uint16(124), + 1158: uint16(90), + 1159: uint16(1228), + 1160: uint16(1228), + 1161: uint16(1063), + 1162: uint16(1066), + 1163: uint16(1053), + 1164: uint16(1053), + 1165: uint16(133), + 1166: uint16(133), + 1167: uint16(134), + 1168: uint16(134), + 1169: uint16(134), + 1170: uint16(134), + 1171: uint16(409), + 1172: uint16(408), + 1173: uint16(1511), + 1174: uint16(212), + 1175: uint16(132), + 1176: uint16(132), + 1177: uint16(132), + 1178: uint16(132), + 1179: uint16(131), + 1180: uint16(131), + 1181: uint16(130), + 1182: uint16(130), + 1183: uint16(130), + 1184: uint16(129), + 1185: uint16(126), + 1186: uint16(450), + 1187: uint16(411), + 1188: uint16(118), + 1189: uint16(1204), + 1190: uint16(116), + 1191: uint16(10), + 1192: uint16(352), + 1193: uint16(265), + 1194: uint16(355), + 1195: uint16(132), + 1196: uint16(132), + 1197: uint16(132), + 1198: uint16(132), + 1199: uint16(131), + 1200: uint16(131), + 1201: uint16(130), + 1202: uint16(130), + 1203: uint16(130), + 1204: uint16(129), + 1205: uint16(126), + 1206: uint16(450), + 1207: uint16(576), + 1208: uint16(324), + 1209: uint16(306), + 1210: uint16(576), + 1211: uint16(306), + 1212: uint16(1250), + 1213: uint16(469), + 1214: uint16(158), + 1215: uint16(132), + 1216: uint16(132), + 1217: uint16(132), + 1218: uint16(132), + 1219: uint16(131), + 1220: uint16(131), + 1221: uint16(130), + 1222: uint16(130), + 1223: uint16(130), + 1224: uint16(129), + 1225: uint16(126), + 1226: uint16(450), + 1227: uint16(207), + 1228: uint16(1224), + 1229: uint16(1126), + 1230: uint16(65), + 1231: uint16(65), + 1232: uint16(470), + 1233: uint16(66), + 1234: uint16(66), + 1235: uint16(412), + 1236: uint16(447), + 1237: uint16(446), + 1238: uint16(882), + 1239: uint16(531), + 1240: uint16(335), + 1241: uint16(258), + 1242: uint16(257), + 1243: uint16(256), + 1244: uint16(1127), + 1245: uint16(1233), + 1246: uint16(1204), + 1247: uint16(1205), + 1248: uint16(1204), + 1249: uint16(327), + 1250: uint16(1235), + 1251: uint16(874), + 1252: uint16(159), + 1253: uint16(576), + 1254: uint16(16), + 1255: uint16(480), + 1256: uint16(1085), + 1257: uint16(1040), + 1258: uint16(1234), + 1259: uint16(1128), + 1260: uint16(136), + 1261: uint16(90), + 1262: uint16(1228), + 1263: uint16(1228), + 1264: uint16(1063), + 1265: uint16(1066), + 1266: uint16(1053), + 1267: uint16(1053), + 1268: uint16(133), + 1269: uint16(133), + 1270: uint16(134), + 1271: uint16(134), + 1272: uint16(134), + 1273: uint16(134), + 1274: uint16(1029), + 1275: uint16(576), + 1276: uint16(81), + 1277: uint16(81), + 1278: uint16(1028), + 1279: uint16(1040), + 1280: uint16(922), + 1281: uint16(576), + 1282: uint16(463), + 1283: uint16(1236), + 1284: uint16(576), + 1285: uint16(1236), + 1286: uint16(1224), + 1287: uint16(502), + 1288: uint16(107), + 1289: uint16(1435), + 1290: uint16(923), + 1291: uint16(6), + 1292: uint16(576), + 1293: uint16(410), + 1294: uint16(1498), + 1295: uint16(882), + 1296: uint16(1029), + 1297: uint16(480), + 1298: uint16(21), + 1299: uint16(21), + 1300: uint16(1028), + 1301: uint16(332), + 1302: uint16(1380), + 1303: uint16(334), + 1304: uint16(53), + 1305: uint16(53), + 1306: uint16(497), + 1307: uint16(81), + 1308: uint16(81), + 1309: uint16(874), + 1310: uint16(1028), + 1311: uint16(1028), + 1312: uint16(1030), + 1313: uint16(445), + 1314: uint16(259), + 1315: uint16(19), + 1316: uint16(19), + 1317: uint16(533), + 1318: uint16(132), + 1319: uint16(132), + 1320: uint16(132), + 1321: uint16(132), + 1322: uint16(131), + 1323: uint16(131), + 1324: uint16(130), + 1325: uint16(130), + 1326: uint16(130), + 1327: uint16(129), + 1328: uint16(126), + 1329: uint16(450), + 1330: uint16(551), + 1331: uint16(301), + 1332: uint16(1028), + 1333: uint16(1028), + 1334: uint16(1030), + 1335: uint16(107), + 1336: uint16(532), + 1337: uint16(545), + 1338: uint16(121), + 1339: uint16(568), + 1340: uint16(1188), 1341: uint16(4), - 1342: uint16(238), - 1343: uint16(433), - 1344: uint16(935), - 1345: uint16(490), - 1346: uint16(285), - 1347: uint16(228), - 1348: uint16(1517), - 1349: uint16(934), - 1350: uint16(170), - 1351: uint16(560), - 1352: uint16(572), - 1353: uint16(142), - 1354: uint16(1516), - 1355: uint16(567), - 1356: uint16(572), - 1357: uint16(60), - 1358: uint16(60), - 1359: uint16(572), - 1360: uint16(416), - 1361: uint16(572), - 1362: uint16(441), - 1363: uint16(572), - 1364: uint16(535), - 1365: uint16(302), - 1366: uint16(875), - 1367: uint16(8), - 1368: uint16(487), - 1369: uint16(572), - 1370: uint16(237), - 1371: uint16(572), - 1372: uint16(416), - 1373: uint16(572), - 1374: uint16(485), - 1375: uint16(61), - 1376: uint16(61), - 1377: uint16(572), - 1378: uint16(449), - 1379: uint16(62), - 1380: uint16(62), - 1381: uint16(332), - 1382: uint16(63), - 1383: uint16(63), - 1384: uint16(46), - 1385: uint16(46), - 1386: uint16(47), - 1387: uint16(47), - 1388: uint16(361), - 1389: uint16(572), - 1390: uint16(561), - 1391: uint16(572), - 1392: uint16(48), - 1393: uint16(48), - 1394: uint16(50), - 1395: uint16(50), - 1396: uint16(51), - 1397: uint16(51), - 1398: uint16(572), - 1399: uint16(295), - 1400: uint16(64), - 1401: uint16(64), - 1402: uint16(482), - 1403: uint16(295), - 1404: uint16(539), - 1405: uint16(412), - 1406: uint16(471), - 1407: uint16(1031), - 1408: uint16(572), - 1409: uint16(538), - 1410: uint16(318), - 1411: uint16(563), - 1412: uint16(65), - 1413: uint16(65), - 1414: uint16(66), - 1415: uint16(66), - 1416: uint16(409), - 1417: uint16(475), - 1418: uint16(572), - 1419: uint16(1031), - 1420: uint16(572), - 1421: uint16(14), - 1422: uint16(14), - 1423: uint16(875), - 1424: uint16(1020), - 1425: uint16(110), - 1426: uint16(110), - 1427: uint16(409), - 1428: uint16(1019), - 1429: uint16(572), - 1430: uint16(474), - 1431: uint16(67), - 1432: uint16(67), - 1433: uint16(111), - 1434: uint16(455), - 1435: uint16(449), - 1436: uint16(573), - 1437: uint16(449), - 1438: uint16(98), - 1439: uint16(317), - 1440: uint16(1019), - 1441: uint16(132), - 1442: uint16(132), - 1443: uint16(133), - 1444: uint16(133), - 1445: uint16(572), - 1446: uint16(1561), - 1447: uint16(572), - 1448: uint16(974), - 1449: uint16(409), - 1450: uint16(6), - 1451: uint16(1562), - 1452: uint16(68), - 1453: uint16(68), - 1454: uint16(1560), - 1455: uint16(6), - 1456: uint16(975), - 1457: uint16(572), - 1458: uint16(6), - 1459: uint16(1559), - 1460: uint16(1019), - 1461: uint16(1019), - 1462: uint16(1021), - 1463: uint16(6), - 1464: uint16(346), - 1465: uint16(218), - 1466: uint16(101), - 1467: uint16(531), - 1468: uint16(53), - 1469: uint16(53), - 1470: uint16(69), - 1471: uint16(69), - 1472: uint16(1019), - 1473: uint16(1019), - 1474: uint16(1021), - 1475: uint16(1022), - 1476: uint16(28), - 1477: uint16(1586), - 1478: uint16(1181), - 1479: uint16(451), - 1480: uint16(70), - 1481: uint16(70), - 1482: uint16(290), - 1483: uint16(87), - 1484: uint16(215), - 1485: uint16(31), - 1486: uint16(1363), - 1487: uint16(394), - 1488: uint16(394), - 1489: uint16(393), - 1490: uint16(275), - 1491: uint16(391), - 1492: uint16(350), - 1493: uint16(109), - 1494: uint16(852), - 1495: uint16(107), - 1496: uint16(572), - 1497: uint16(112), - 1498: uint16(564), - 1499: uint16(483), - 1500: uint16(4), - 1501: uint16(1212), - 1502: uint16(572), - 1503: uint16(239), - 1504: uint16(153), - 1505: uint16(572), - 1506: uint16(39), - 1507: uint16(236), - 1508: uint16(1299), - 1509: uint16(325), - 1510: uint16(112), - 1511: uint16(564), - 1512: uint16(1298), - 1513: uint16(4), - 1514: uint16(567), - 1515: uint16(572), - 1516: uint16(32), - 1517: uint16(324), - 1518: uint16(572), - 1519: uint16(54), - 1520: uint16(54), - 1521: uint16(572), - 1522: uint16(1135), - 1523: uint16(353), - 1524: uint16(398), - 1525: uint16(165), - 1526: uint16(165), - 1527: uint16(567), - 1528: uint16(166), - 1529: uint16(166), - 1530: uint16(572), - 1531: uint16(291), - 1532: uint16(355), - 1533: uint16(572), - 1534: uint16(17), - 1535: uint16(357), - 1536: uint16(572), - 1537: uint16(449), - 1538: uint16(77), - 1539: uint16(77), - 1540: uint16(1313), - 1541: uint16(55), - 1542: uint16(55), - 1543: uint16(1297), - 1544: uint16(73), - 1545: uint16(73), - 1546: uint16(572), - 1547: uint16(238), - 1548: uint16(470), - 1549: uint16(561), - 1550: uint16(449), - 1551: uint16(472), - 1552: uint16(364), - 1553: uint16(135), - 1554: uint16(135), - 1555: uint16(170), - 1556: uint16(74), - 1557: uint16(74), - 1558: uint16(142), - 1559: uint16(163), - 1560: uint16(163), - 1561: uint16(374), - 1562: uint16(561), - 1563: uint16(539), - 1564: uint16(572), - 1565: uint16(321), - 1566: uint16(572), - 1567: uint16(886), - 1568: uint16(540), - 1569: uint16(137), - 1570: uint16(137), - 1571: uint16(339), - 1572: uint16(1353), - 1573: uint16(422), - 1574: uint16(298), - 1575: uint16(237), - 1576: uint16(539), - 1577: uint16(572), - 1578: uint16(1031), - 1579: uint16(572), - 1580: uint16(340), - 1581: uint16(538), - 1582: uint16(101), - 1583: uint16(369), - 1584: uint16(110), - 1585: uint16(110), - 1586: uint16(162), - 1587: uint16(131), - 1588: uint16(131), - 1589: uint16(164), - 1590: uint16(164), - 1591: uint16(1031), - 1592: uint16(111), - 1593: uint16(368), - 1594: uint16(449), - 1595: uint16(573), - 1596: uint16(449), + 1342: uint16(1126), + 1343: uint16(1576), + 1344: uint16(449), + 1345: uint16(576), + 1346: uint16(462), + 1347: uint16(7), + 1348: uint16(1282), + 1349: uint16(418), + 1350: uint16(462), + 1351: uint16(350), + 1352: uint16(1435), + 1353: uint16(576), + 1354: uint16(518), + 1355: uint16(571), + 1356: uint16(544), + 1357: uint16(1127), + 1358: uint16(121), + 1359: uint16(568), + 1360: uint16(442), + 1361: uint16(4), + 1362: uint16(1188), + 1363: uint16(464), + 1364: uint16(533), + 1365: uint16(1180), + 1366: uint16(1223), + 1367: uint16(9), + 1368: uint16(67), + 1369: uint16(67), + 1370: uint16(487), + 1371: uint16(576), + 1372: uint16(1128), + 1373: uint16(303), + 1374: uint16(410), + 1375: uint16(571), + 1376: uint16(54), + 1377: uint16(54), + 1378: uint16(451), + 1379: uint16(576), + 1380: uint16(123), + 1381: uint16(944), + 1382: uint16(576), + 1383: uint16(417), + 1384: uint16(576), + 1385: uint16(333), + 1386: uint16(943), + 1387: uint16(1379), + 1388: uint16(576), + 1389: uint16(236), + 1390: uint16(565), + 1391: uint16(576), + 1392: uint16(1574), + 1393: uint16(564), + 1394: uint16(68), + 1395: uint16(68), + 1396: uint16(7), + 1397: uint16(576), + 1398: uint16(451), + 1399: uint16(362), + 1400: uint16(419), + 1401: uint16(182), + 1402: uint16(69), + 1403: uint16(69), + 1404: uint16(541), + 1405: uint16(70), + 1406: uint16(70), + 1407: uint16(71), + 1408: uint16(71), + 1409: uint16(540), + 1410: uint16(565), + 1411: uint16(72), + 1412: uint16(72), + 1413: uint16(484), + 1414: uint16(55), + 1415: uint16(55), + 1416: uint16(473), + 1417: uint16(1180), + 1418: uint16(296), + 1419: uint16(1040), + 1420: uint16(56), + 1421: uint16(56), + 1422: uint16(296), + 1423: uint16(493), + 1424: uint16(541), + 1425: uint16(119), + 1426: uint16(119), + 1427: uint16(410), + 1428: uint16(1573), + 1429: uint16(542), + 1430: uint16(569), + 1431: uint16(418), + 1432: uint16(7), + 1433: uint16(120), + 1434: uint16(1244), + 1435: uint16(451), + 1436: uint16(577), + 1437: uint16(451), + 1438: uint16(465), + 1439: uint16(1040), + 1440: uint16(1028), + 1441: uint16(576), + 1442: uint16(1557), + 1443: uint16(552), + 1444: uint16(476), + 1445: uint16(119), + 1446: uint16(119), + 1447: uint16(527), + 1448: uint16(259), + 1449: uint16(121), + 1450: uint16(568), + 1451: uint16(240), + 1452: uint16(4), + 1453: uint16(120), + 1454: uint16(576), + 1455: uint16(451), + 1456: uint16(577), + 1457: uint16(451), + 1458: uint16(576), + 1459: uint16(477), + 1460: uint16(1028), + 1461: uint16(576), + 1462: uint16(156), + 1463: uint16(576), + 1464: uint16(57), + 1465: uint16(57), + 1466: uint16(571), + 1467: uint16(576), + 1468: uint16(286), + 1469: uint16(229), + 1470: uint16(410), + 1471: uint16(336), + 1472: uint16(1028), + 1473: uint16(1028), + 1474: uint16(1030), + 1475: uint16(1031), + 1476: uint16(35), + 1477: uint16(59), + 1478: uint16(59), + 1479: uint16(219), + 1480: uint16(983), + 1481: uint16(60), + 1482: uint16(60), + 1483: uint16(220), + 1484: uint16(73), + 1485: uint16(73), + 1486: uint16(74), + 1487: uint16(74), + 1488: uint16(984), + 1489: uint16(451), + 1490: uint16(75), + 1491: uint16(75), + 1492: uint16(1028), + 1493: uint16(1028), + 1494: uint16(1030), + 1495: uint16(1031), + 1496: uint16(35), + 1497: uint16(96), + 1498: uint16(216), + 1499: uint16(291), + 1500: uint16(552), + 1501: uint16(565), + 1502: uint16(1188), + 1503: uint16(318), + 1504: uint16(395), + 1505: uint16(395), + 1506: uint16(394), + 1507: uint16(276), + 1508: uint16(392), + 1509: uint16(576), + 1510: uint16(485), + 1511: uint16(859), + 1512: uint16(474), + 1513: uint16(1311), + 1514: uint16(410), + 1515: uint16(541), + 1516: uint16(576), + 1517: uint16(417), + 1518: uint16(1530), + 1519: uint16(1144), + 1520: uint16(540), + 1521: uint16(399), + 1522: uint16(1188), + 1523: uint16(292), + 1524: uint16(237), + 1525: uint16(1153), + 1526: uint16(326), + 1527: uint16(38), + 1528: uint16(23), + 1529: uint16(576), + 1530: uint16(1040), + 1531: uint16(576), + 1532: uint16(20), + 1533: uint16(20), + 1534: uint16(325), + 1535: uint16(299), + 1536: uint16(119), + 1537: uint16(119), + 1538: uint16(164), + 1539: uint16(76), + 1540: uint16(76), + 1541: uint16(1529), + 1542: uint16(121), + 1543: uint16(568), + 1544: uint16(120), + 1545: uint16(4), + 1546: uint16(451), + 1547: uint16(577), + 1548: uint16(451), + 1549: uint16(203), + 1550: uint16(576), + 1551: uint16(1028), + 1552: uint16(141), + 1553: uint16(141), + 1554: uint16(142), + 1555: uint16(142), + 1556: uint16(576), + 1557: uint16(322), + 1558: uint16(39), + 1559: uint16(571), + 1560: uint16(341), + 1561: uint16(1021), + 1562: uint16(110), + 1563: uint16(264), + 1564: uint16(239), + 1565: uint16(901), + 1566: uint16(900), + 1567: uint16(423), + 1568: uint16(242), + 1569: uint16(908), + 1570: uint16(909), + 1571: uint16(370), + 1572: uint16(173), + 1573: uint16(77), + 1574: uint16(77), + 1575: uint16(43), + 1576: uint16(479), + 1577: uint16(1310), + 1578: uint16(264), + 1579: uint16(62), + 1580: uint16(62), + 1581: uint16(369), + 1582: uint16(451), + 1583: uint16(1028), + 1584: uint16(1028), + 1585: uint16(1030), + 1586: uint16(1031), + 1587: uint16(35), + 1588: uint16(1601), + 1589: uint16(1192), + 1590: uint16(453), + 1591: uint16(1092), + 1592: uint16(238), + 1593: uint16(291), + 1594: uint16(565), + 1595: uint16(163), + 1596: uint16(1309), 1597: uint16(110), - 1598: uint16(110), - 1599: uint16(1019), - 1600: uint16(157), - 1601: uint16(157), - 1602: uint16(141), - 1603: uint16(141), - 1604: uint16(572), - 1605: uint16(111), - 1606: uint16(572), - 1607: uint16(449), - 1608: uint16(573), - 1609: uint16(449), - 1610: uint16(412), - 1611: uint16(288), - 1612: uint16(1019), - 1613: uint16(572), - 1614: uint16(882), - 1615: uint16(318), - 1616: uint16(563), - 1617: uint16(572), - 1618: uint16(219), - 1619: uint16(572), - 1620: uint16(241), - 1621: uint16(1012), - 1622: uint16(477), - 1623: uint16(263), - 1624: uint16(263), - 1625: uint16(894), - 1626: uint16(893), - 1627: uint16(140), - 1628: uint16(140), - 1629: uint16(138), - 1630: uint16(138), - 1631: uint16(1019), - 1632: uint16(1019), - 1633: uint16(1021), - 1634: uint16(1022), - 1635: uint16(28), - 1636: uint16(139), - 1637: uint16(139), - 1638: uint16(525), - 1639: uint16(455), - 1640: uint16(76), - 1641: uint16(76), - 1642: uint16(78), - 1643: uint16(78), - 1644: uint16(1019), - 1645: uint16(1019), - 1646: uint16(1021), - 1647: uint16(1022), - 1648: uint16(28), - 1649: uint16(1181), - 1650: uint16(451), - 1651: uint16(572), - 1652: uint16(1083), - 1653: uint16(290), - 1654: uint16(112), - 1655: uint16(564), - 1656: uint16(1575), - 1657: uint16(4), - 1658: uint16(394), - 1659: uint16(394), - 1660: uint16(393), - 1661: uint16(275), - 1662: uint16(391), - 1663: uint16(572), - 1664: uint16(1023), - 1665: uint16(852), - 1666: uint16(572), - 1667: uint16(479), - 1668: uint16(345), - 1669: uint16(263), - 1670: uint16(101), - 1671: uint16(567), - 1672: uint16(882), - 1673: uint16(1376), - 1674: uint16(75), - 1675: uint16(75), - 1676: uint16(1421), - 1677: uint16(501), - 1678: uint16(236), - 1679: uint16(260), - 1680: uint16(325), - 1681: uint16(112), - 1682: uint16(564), - 1683: uint16(359), - 1684: uint16(4), - 1685: uint16(101), - 1686: uint16(43), - 1687: uint16(43), - 1688: uint16(324), - 1689: uint16(49), - 1690: uint16(49), - 1691: uint16(901), - 1692: uint16(902), - 1693: uint16(161), - 1694: uint16(449), - 1695: uint16(101), - 1696: uint16(977), - 1697: uint16(978), - 1698: uint16(567), - 1699: uint16(1079), - 1700: uint16(1349), - 1701: uint16(260), - 1702: uint16(965), - 1703: uint16(932), - 1704: uint16(263), - 1705: uint16(114), - 1706: uint16(561), - 1707: uint16(1095), - 1708: uint16(517), - 1709: uint16(1095), - 1710: uint16(1083), - 1711: uint16(1094), - 1712: uint16(865), - 1713: uint16(1094), - 1714: uint16(151), - 1715: uint16(933), - 1716: uint16(1144), - 1717: uint16(114), - 1718: uint16(238), - 1719: uint16(1361), - 1720: uint16(558), - 1721: uint16(449), - 1722: uint16(1023), - 1723: uint16(559), - 1724: uint16(1426), - 1725: uint16(1278), - 1726: uint16(170), - 1727: uint16(1269), - 1728: uint16(1257), - 1729: uint16(142), - 1730: uint16(1601), - 1731: uint16(1256), - 1732: uint16(1258), - 1733: uint16(561), - 1734: uint16(1594), - 1735: uint16(1031), - 1736: uint16(496), - 1737: uint16(278), - 1738: uint16(213), - 1739: uint16(1346), - 1740: uint16(310), - 1741: uint16(110), - 1742: uint16(110), - 1743: uint16(939), - 1744: uint16(311), - 1745: uint16(312), - 1746: uint16(237), - 1747: uint16(11), - 1748: uint16(234), - 1749: uint16(111), - 1750: uint16(221), - 1751: uint16(449), - 1752: uint16(573), - 1753: uint16(449), - 1754: uint16(293), - 1755: uint16(395), - 1756: uint16(1019), - 1757: uint16(1408), - 1758: uint16(337), - 1759: uint16(1403), - 1760: uint16(1396), - 1761: uint16(338), - 1762: uint16(1031), - 1763: uint16(299), - 1764: uint16(343), - 1765: uint16(1413), - 1766: uint16(1412), - 1767: uint16(481), - 1768: uint16(110), - 1769: uint16(110), - 1770: uint16(506), - 1771: uint16(402), - 1772: uint16(225), - 1773: uint16(1296), - 1774: uint16(206), - 1775: uint16(367), - 1776: uint16(111), - 1777: uint16(1358), - 1778: uint16(449), - 1779: uint16(573), - 1780: uint16(449), - 1781: uint16(412), - 1782: uint16(1359), - 1783: uint16(1019), - 1784: uint16(1489), - 1785: uint16(1488), - 1786: uint16(318), - 1787: uint16(563), - 1788: uint16(1019), - 1789: uint16(1019), - 1790: uint16(1021), - 1791: uint16(1022), - 1792: uint16(28), - 1793: uint16(562), - 1794: uint16(207), - 1795: uint16(220), - 1796: uint16(80), - 1797: uint16(564), - 1798: uint16(389), - 1799: uint16(4), - 1800: uint16(1597), - 1801: uint16(1357), - 1802: uint16(552), - 1803: uint16(1356), - 1804: uint16(1233), - 1805: uint16(181), - 1806: uint16(267), - 1807: uint16(232), - 1808: uint16(1536), - 1809: uint16(1534), - 1810: uint16(455), - 1811: uint16(1230), - 1812: uint16(420), - 1813: uint16(567), - 1814: uint16(82), - 1815: uint16(1019), - 1816: uint16(1019), - 1817: uint16(1021), - 1818: uint16(1022), - 1819: uint16(28), - 1820: uint16(86), - 1821: uint16(217), - 1822: uint16(85), - 1823: uint16(1494), - 1824: uint16(190), - 1825: uint16(175), - 1826: uint16(183), - 1827: uint16(465), - 1828: uint16(185), - 1829: uint16(466), - 1830: uint16(36), - 1831: uint16(1409), - 1832: uint16(186), - 1833: uint16(187), - 1834: uint16(188), - 1835: uint16(499), - 1836: uint16(449), - 1837: uint16(244), - 1838: uint16(37), - 1839: uint16(99), - 1840: uint16(400), - 1841: uint16(1415), - 1842: uint16(1414), - 1843: uint16(488), - 1844: uint16(1417), - 1845: uint16(194), - 1846: uint16(473), - 1847: uint16(403), - 1848: uint16(561), - 1849: uint16(1483), - 1850: uint16(248), - 1851: uint16(92), - 1852: uint16(1505), - 1853: uint16(494), - 1854: uint16(198), - 1855: uint16(279), - 1856: uint16(112), - 1857: uint16(564), - 1858: uint16(250), - 1859: uint16(4), - 1860: uint16(348), - 1861: uint16(497), - 1862: uint16(405), - 1863: uint16(352), - 1864: uint16(1259), - 1865: uint16(251), - 1866: uint16(252), - 1867: uint16(515), - 1868: uint16(1316), - 1869: uint16(434), - 1870: uint16(1315), - 1871: uint16(1314), - 1872: uint16(94), - 1873: uint16(567), - 1874: uint16(1307), - 1875: uint16(886), - 1876: uint16(1306), - 1877: uint16(1031), - 1878: uint16(226), - 1879: uint16(406), - 1880: uint16(1611), - 1881: uint16(1610), - 1882: uint16(438), - 1883: uint16(110), - 1884: uint16(110), - 1885: uint16(1580), - 1886: uint16(1286), - 1887: uint16(524), - 1888: uint16(439), - 1889: uint16(308), - 1890: uint16(266), - 1891: uint16(111), - 1892: uint16(1285), - 1893: uint16(449), - 1894: uint16(573), - 1895: uint16(449), - 1896: uint16(449), - 1897: uint16(309), - 1898: uint16(1019), - 1899: uint16(366), - 1900: uint16(1284), - 1901: uint16(1609), - 1902: uint16(265), - 1903: uint16(1566), - 1904: uint16(1565), - 1905: uint16(442), - 1906: uint16(372), - 1907: uint16(1381), - 1908: uint16(561), - 1909: uint16(129), - 1910: uint16(550), - 1911: uint16(1380), - 1912: uint16(10), - 1913: uint16(1470), - 1914: uint16(383), - 1915: uint16(106), - 1916: uint16(316), - 1917: uint16(551), - 1918: uint16(100), - 1919: uint16(35), - 1920: uint16(534), - 1921: uint16(575), - 1922: uint16(212), - 1923: uint16(1339), - 1924: uint16(381), - 1925: uint16(387), - 1926: uint16(1187), - 1927: uint16(1338), - 1928: uint16(274), - 1929: uint16(276), - 1930: uint16(1019), - 1931: uint16(1019), - 1932: uint16(1021), - 1933: uint16(1022), - 1934: uint16(28), - 1935: uint16(277), - 1936: uint16(413), - 1937: uint16(1031), - 1938: uint16(576), - 1939: uint16(1254), - 1940: uint16(388), - 1941: uint16(1521), - 1942: uint16(1249), - 1943: uint16(110), - 1944: uint16(110), - 1945: uint16(167), - 1946: uint16(1522), - 1947: uint16(168), - 1948: uint16(148), - 1949: uint16(1520), - 1950: uint16(1519), - 1951: uint16(111), - 1952: uint16(306), - 1953: uint16(449), - 1954: uint16(573), - 1955: uint16(449), - 1956: uint16(222), - 1957: uint16(223), - 1958: uint16(1019), - 1959: uint16(839), - 1960: uint16(169), - 1961: uint16(79), - 1962: uint16(450), - 1963: uint16(214), - 1964: uint16(414), - 1965: uint16(233), - 1966: uint16(320), - 1967: uint16(145), - 1968: uint16(1093), - 1969: uint16(1091), - 1970: uint16(328), - 1971: uint16(182), - 1972: uint16(171), - 1973: uint16(1212), - 1974: uint16(918), - 1975: uint16(184), - 1976: uint16(240), - 1977: uint16(336), - 1978: uint16(243), - 1979: uint16(1107), - 1980: uint16(189), - 1981: uint16(172), - 1982: uint16(173), - 1983: uint16(423), - 1984: uint16(425), - 1985: uint16(88), - 1986: uint16(180), - 1987: uint16(191), - 1988: uint16(89), - 1989: uint16(90), - 1990: uint16(1019), - 1991: uint16(1019), - 1992: uint16(1021), - 1993: uint16(1022), - 1994: uint16(28), - 1995: uint16(91), - 1996: uint16(174), - 1997: uint16(1110), - 1998: uint16(245), - 1999: uint16(1106), - 2000: uint16(246), - 2001: uint16(159), - 2002: uint16(18), - 2003: uint16(247), - 2004: uint16(347), - 2005: uint16(1099), - 2006: uint16(263), - 2007: uint16(195), - 2008: uint16(1227), - 2009: uint16(493), - 2010: uint16(249), - 2011: uint16(196), - 2012: uint16(38), - 2013: uint16(854), - 2014: uint16(498), - 2015: uint16(368), - 2016: uint16(253), - 2017: uint16(360), - 2018: uint16(897), - 2019: uint16(197), - 2020: uint16(502), - 2021: uint16(93), - 2022: uint16(19), - 2023: uint16(20), - 2024: uint16(507), - 2025: uint16(884), - 2026: uint16(363), - 2027: uint16(510), - 2028: uint16(95), - 2029: uint16(307), - 2030: uint16(160), - 2031: uint16(96), - 2032: uint16(518), - 2033: uint16(97), - 2034: uint16(1175), - 2035: uint16(1060), - 2036: uint16(1146), - 2037: uint16(40), - 2038: uint16(21), - 2039: uint16(227), - 2040: uint16(176), - 2041: uint16(1145), - 2042: uint16(282), - 2043: uint16(284), - 2044: uint16(969), - 2045: uint16(200), - 2046: uint16(963), - 2047: uint16(114), - 2048: uint16(262), - 2049: uint16(1165), - 2050: uint16(22), - 2051: uint16(23), - 2052: uint16(24), - 2053: uint16(1161), - 2054: uint16(1169), - 2055: uint16(25), - 2056: uint16(1163), - 2057: uint16(1150), - 2058: uint16(34), - 2059: uint16(26), - 2060: uint16(1168), - 2061: uint16(546), - 2062: uint16(27), - 2063: uint16(204), - 2064: uint16(101), - 2065: uint16(103), - 2066: uint16(104), - 2067: uint16(1074), - 2068: uint16(7), - 2069: uint16(1061), - 2070: uint16(1059), - 2071: uint16(1063), - 2072: uint16(1116), - 2073: uint16(1064), - 2074: uint16(1115), - 2075: uint16(268), - 2076: uint16(269), - 2077: uint16(29), - 2078: uint16(41), - 2079: uint16(270), - 2080: uint16(1024), - 2081: uint16(866), - 2082: uint16(113), - 2083: uint16(30), - 2084: uint16(568), - 2085: uint16(392), - 2086: uint16(1183), - 2087: uint16(144), - 2088: uint16(178), - 2089: uint16(1182), - 2090: uint16(271), - 2091: uint16(928), - 2092: uint16(1245), - 2093: uint16(1245), - 2094: uint16(1245), - 2095: uint16(1245), - 2096: uint16(1245), - 2097: uint16(1245), - 2098: uint16(1245), - 2099: uint16(1602), -} -var _yy_lookahead = [2285]uint16{ - 0: uint16(193), - 1: uint16(193), - 2: uint16(193), - 3: uint16(274), - 4: uint16(275), - 5: uint16(276), - 6: uint16(193), - 7: uint16(274), - 8: uint16(275), - 9: uint16(276), - 10: uint16(193), - 11: uint16(223), - 12: uint16(219), - 13: uint16(225), - 14: uint16(206), - 15: uint16(210), - 16: uint16(211), - 17: uint16(212), - 18: uint16(193), + 1598: uint16(395), + 1599: uint16(395), + 1600: uint16(394), + 1601: uint16(276), + 1602: uint16(392), + 1603: uint16(986), + 1604: uint16(987), + 1605: uint16(859), + 1606: uint16(481), + 1607: uint16(346), + 1608: uint16(264), + 1609: uint16(110), + 1610: uint16(1032), + 1611: uint16(489), + 1612: uint16(576), + 1613: uint16(1188), + 1614: uint16(503), + 1615: uint16(1088), + 1616: uint16(261), + 1617: uint16(261), + 1618: uint16(237), + 1619: uint16(576), + 1620: uint16(326), + 1621: uint16(121), + 1622: uint16(568), + 1623: uint16(1040), + 1624: uint16(4), + 1625: uint16(347), + 1626: uint16(1376), + 1627: uint16(413), + 1628: uint16(325), + 1629: uint16(119), + 1630: uint16(119), + 1631: uint16(948), + 1632: uint16(319), + 1633: uint16(567), + 1634: uint16(351), + 1635: uint16(78), + 1636: uint16(78), + 1637: uint16(120), + 1638: uint16(571), + 1639: uint16(451), + 1640: uint16(577), + 1641: uint16(451), + 1642: uint16(79), + 1643: uint16(79), + 1644: uint16(1028), + 1645: uint16(354), + 1646: uint16(356), + 1647: uint16(576), + 1648: uint16(360), + 1649: uint16(1092), + 1650: uint16(110), + 1651: uint16(576), + 1652: uint16(974), + 1653: uint16(942), + 1654: uint16(264), + 1655: uint16(123), + 1656: uint16(457), + 1657: uint16(358), + 1658: uint16(239), + 1659: uint16(576), + 1660: uint16(519), + 1661: uint16(451), + 1662: uint16(939), + 1663: uint16(1104), + 1664: uint16(123), + 1665: uint16(1104), + 1666: uint16(173), + 1667: uint16(576), + 1668: uint16(1032), + 1669: uint16(43), + 1670: uint16(63), + 1671: uint16(63), + 1672: uint16(1324), + 1673: uint16(565), + 1674: uint16(168), + 1675: uint16(168), + 1676: uint16(1028), + 1677: uint16(1028), + 1678: uint16(1030), + 1679: uint16(1031), + 1680: uint16(35), + 1681: uint16(576), + 1682: uint16(169), + 1683: uint16(169), + 1684: uint16(1308), + 1685: uint16(872), + 1686: uint16(238), + 1687: uint16(157), + 1688: uint16(1589), + 1689: uint16(576), + 1690: uint16(86), + 1691: uint16(86), + 1692: uint16(365), + 1693: uint16(89), + 1694: uint16(568), + 1695: uint16(375), + 1696: uint16(4), + 1697: uint16(1103), + 1698: uint16(941), + 1699: uint16(1103), + 1700: uint16(123), + 1701: uint16(576), + 1702: uint16(1040), + 1703: uint16(1389), + 1704: uint16(64), + 1705: uint16(64), + 1706: uint16(1188), + 1707: uint16(1434), + 1708: uint16(119), + 1709: uint16(119), + 1710: uint16(571), + 1711: uint16(576), + 1712: uint16(82), + 1713: uint16(82), + 1714: uint16(563), + 1715: uint16(576), + 1716: uint16(120), + 1717: uint16(165), + 1718: uint16(451), + 1719: uint16(577), + 1720: uint16(451), + 1721: uint16(413), + 1722: uint16(1362), + 1723: uint16(1028), + 1724: uint16(144), + 1725: uint16(144), + 1726: uint16(319), + 1727: uint16(567), + 1728: uint16(576), + 1729: uint16(1374), + 1730: uint16(562), + 1731: uint16(498), + 1732: uint16(279), + 1733: uint16(451), + 1734: uint16(83), + 1735: uint16(83), + 1736: uint16(1439), + 1737: uint16(576), + 1738: uint16(166), + 1739: uint16(166), + 1740: uint16(576), + 1741: uint16(1289), + 1742: uint16(554), + 1743: uint16(576), + 1744: uint16(1280), + 1745: uint16(565), + 1746: uint16(576), + 1747: uint16(12), + 1748: uint16(576), + 1749: uint16(1268), + 1750: uint16(457), + 1751: uint16(146), + 1752: uint16(146), + 1753: uint16(1267), + 1754: uint16(576), + 1755: uint16(1028), + 1756: uint16(1028), + 1757: uint16(1030), + 1758: uint16(1031), + 1759: uint16(35), + 1760: uint16(140), + 1761: uint16(140), + 1762: uint16(1269), + 1763: uint16(167), + 1764: uint16(167), + 1765: uint16(1609), + 1766: uint16(160), + 1767: uint16(160), + 1768: uint16(1359), + 1769: uint16(150), + 1770: uint16(150), + 1771: uint16(149), + 1772: uint16(149), + 1773: uint16(311), + 1774: uint16(1040), + 1775: uint16(576), + 1776: uint16(312), + 1777: uint16(147), + 1778: uint16(147), + 1779: uint16(313), + 1780: uint16(119), + 1781: uint16(119), + 1782: uint16(222), + 1783: uint16(235), + 1784: uint16(576), + 1785: uint16(1188), + 1786: uint16(396), + 1787: uint16(576), + 1788: uint16(120), + 1789: uint16(576), + 1790: uint16(451), + 1791: uint16(577), + 1792: uint16(451), + 1793: uint16(1192), + 1794: uint16(453), + 1795: uint16(1028), + 1796: uint16(508), + 1797: uint16(291), + 1798: uint16(148), + 1799: uint16(148), + 1800: uint16(1421), + 1801: uint16(1612), + 1802: uint16(395), + 1803: uint16(395), + 1804: uint16(394), + 1805: uint16(276), + 1806: uint16(392), + 1807: uint16(85), + 1808: uint16(85), + 1809: uint16(859), + 1810: uint16(87), + 1811: uint16(87), + 1812: uint16(84), + 1813: uint16(84), + 1814: uint16(553), + 1815: uint16(576), + 1816: uint16(294), + 1817: uint16(576), + 1818: uint16(1426), + 1819: uint16(338), + 1820: uint16(339), + 1821: uint16(1425), + 1822: uint16(237), + 1823: uint16(300), + 1824: uint16(326), + 1825: uint16(1416), + 1826: uint16(1409), + 1827: uint16(1028), + 1828: uint16(1028), + 1829: uint16(1030), + 1830: uint16(1031), + 1831: uint16(35), + 1832: uint16(325), + 1833: uint16(344), + 1834: uint16(403), + 1835: uint16(483), + 1836: uint16(226), + 1837: uint16(1307), + 1838: uint16(52), + 1839: uint16(52), + 1840: uint16(58), + 1841: uint16(58), + 1842: uint16(368), + 1843: uint16(1371), + 1844: uint16(1502), + 1845: uint16(566), + 1846: uint16(1501), + 1847: uint16(121), + 1848: uint16(568), + 1849: uint16(221), + 1850: uint16(4), + 1851: uint16(208), + 1852: uint16(268), + 1853: uint16(209), + 1854: uint16(390), + 1855: uint16(1244), + 1856: uint16(1549), + 1857: uint16(1188), + 1858: uint16(1372), + 1859: uint16(1370), + 1860: uint16(1369), + 1861: uint16(1547), + 1862: uint16(239), + 1863: uint16(184), + 1864: uint16(571), + 1865: uint16(233), + 1866: uint16(421), + 1867: uint16(1241), + 1868: uint16(95), + 1869: uint16(218), + 1870: uint16(173), + 1871: uint16(1507), + 1872: uint16(193), + 1873: uint16(43), + 1874: uint16(91), + 1875: uint16(94), + 1876: uint16(178), + 1877: uint16(186), + 1878: uint16(467), + 1879: uint16(188), + 1880: uint16(468), + 1881: uint16(1422), + 1882: uint16(13), + 1883: uint16(189), + 1884: uint16(190), + 1885: uint16(191), + 1886: uint16(501), + 1887: uint16(451), + 1888: uint16(245), + 1889: uint16(108), + 1890: uint16(238), + 1891: uint16(401), + 1892: uint16(1428), + 1893: uint16(1427), + 1894: uint16(1430), + 1895: uint16(475), + 1896: uint16(404), + 1897: uint16(1496), + 1898: uint16(197), + 1899: uint16(565), + 1900: uint16(14), + 1901: uint16(490), + 1902: uint16(249), + 1903: uint16(101), + 1904: uint16(1518), + 1905: uint16(496), + 1906: uint16(349), + 1907: uint16(280), + 1908: uint16(251), + 1909: uint16(201), + 1910: uint16(353), + 1911: uint16(499), + 1912: uint16(252), + 1913: uint16(406), + 1914: uint16(1270), + 1915: uint16(253), + 1916: uint16(517), + 1917: uint16(1327), + 1918: uint16(1326), + 1919: uint16(435), + 1920: uint16(1325), + 1921: uint16(1318), + 1922: uint16(103), + 1923: uint16(893), + 1924: uint16(1296), + 1925: uint16(413), + 1926: uint16(227), + 1927: uint16(407), + 1928: uint16(1040), + 1929: uint16(1626), + 1930: uint16(319), + 1931: uint16(567), + 1932: uint16(1625), + 1933: uint16(1297), + 1934: uint16(119), + 1935: uint16(119), + 1936: uint16(439), + 1937: uint16(367), + 1938: uint16(1317), + 1939: uint16(1295), + 1940: uint16(1624), + 1941: uint16(526), + 1942: uint16(120), + 1943: uint16(440), + 1944: uint16(451), + 1945: uint16(577), + 1946: uint16(451), + 1947: uint16(1594), + 1948: uint16(309), + 1949: uint16(1028), + 1950: uint16(310), + 1951: uint16(373), + 1952: uint16(266), + 1953: uint16(267), + 1954: uint16(457), + 1955: uint16(1580), + 1956: uint16(1579), + 1957: uint16(443), + 1958: uint16(138), + 1959: uint16(1394), + 1960: uint16(552), + 1961: uint16(1393), + 1962: uint16(11), + 1963: uint16(1483), + 1964: uint16(384), + 1965: uint16(115), + 1966: uint16(317), + 1967: uint16(1350), + 1968: uint16(109), + 1969: uint16(536), + 1970: uint16(42), + 1971: uint16(579), + 1972: uint16(382), + 1973: uint16(214), + 1974: uint16(1349), + 1975: uint16(388), + 1976: uint16(1198), + 1977: uint16(389), + 1978: uint16(275), + 1979: uint16(277), + 1980: uint16(278), + 1981: uint16(1028), + 1982: uint16(1028), + 1983: uint16(1030), + 1984: uint16(1031), + 1985: uint16(35), + 1986: uint16(580), + 1987: uint16(1265), + 1988: uint16(414), + 1989: uint16(1260), + 1990: uint16(170), + 1991: uint16(415), + 1992: uint16(183), + 1993: uint16(1534), + 1994: uint16(1535), + 1995: uint16(1533), + 1996: uint16(171), + 1997: uint16(154), + 1998: uint16(307), + 1999: uint16(1532), + 2000: uint16(846), + 2001: uint16(223), + 2002: uint16(224), + 2003: uint16(88), + 2004: uint16(452), + 2005: uint16(215), + 2006: uint16(172), + 2007: uint16(321), + 2008: uint16(234), + 2009: uint16(1102), + 2010: uint16(152), + 2011: uint16(1188), + 2012: uint16(1100), + 2013: uint16(329), + 2014: uint16(185), + 2015: uint16(174), + 2016: uint16(1223), + 2017: uint16(925), + 2018: uint16(187), + 2019: uint16(241), + 2020: uint16(337), + 2021: uint16(244), + 2022: uint16(1116), + 2023: uint16(192), + 2024: uint16(175), + 2025: uint16(176), + 2026: uint16(424), + 2027: uint16(426), + 2028: uint16(97), + 2029: uint16(194), + 2030: uint16(98), + 2031: uint16(99), + 2032: uint16(100), + 2033: uint16(177), + 2034: uint16(1119), + 2035: uint16(1115), + 2036: uint16(246), + 2037: uint16(247), + 2038: uint16(161), + 2039: uint16(24), + 2040: uint16(248), + 2041: uint16(348), + 2042: uint16(1238), + 2043: uint16(264), + 2044: uint16(1108), + 2045: uint16(250), + 2046: uint16(495), + 2047: uint16(199), + 2048: uint16(198), + 2049: uint16(15), + 2050: uint16(861), + 2051: uint16(500), + 2052: uint16(369), + 2053: uint16(254), + 2054: uint16(504), + 2055: uint16(509), + 2056: uint16(512), + 2057: uint16(200), + 2058: uint16(102), + 2059: uint16(25), + 2060: uint16(179), + 2061: uint16(361), + 2062: uint16(26), + 2063: uint16(364), + 2064: uint16(104), + 2065: uint16(891), + 2066: uint16(308), + 2067: uint16(162), + 2068: uint16(105), + 2069: uint16(904), + 2070: uint16(520), + 2071: uint16(106), + 2072: uint16(1185), + 2073: uint16(1069), + 2074: uint16(1155), + 2075: uint16(17), + 2076: uint16(228), + 2077: uint16(27), + 2078: uint16(1154), + 2079: uint16(283), + 2080: uint16(285), + 2081: uint16(263), + 2082: uint16(978), + 2083: uint16(202), + 2084: uint16(972), + 2085: uint16(123), + 2086: uint16(28), + 2087: uint16(1175), + 2088: uint16(29), + 2089: uint16(30), + 2090: uint16(1179), + 2091: uint16(1171), + 2092: uint16(31), + 2093: uint16(1173), + 2094: uint16(1160), + 2095: uint16(41), + 2096: uint16(32), + 2097: uint16(206), + 2098: uint16(548), + 2099: uint16(33), + 2100: uint16(110), + 2101: uint16(1178), + 2102: uint16(1083), + 2103: uint16(8), + 2104: uint16(112), + 2105: uint16(1070), + 2106: uint16(113), + 2107: uint16(1068), + 2108: uint16(1072), + 2109: uint16(34), + 2110: uint16(1073), + 2111: uint16(560), + 2112: uint16(1125), + 2113: uint16(269), + 2114: uint16(1124), + 2115: uint16(270), + 2116: uint16(36), + 2117: uint16(18), + 2118: uint16(1194), + 2119: uint16(1033), + 2120: uint16(873), + 2121: uint16(151), + 2122: uint16(122), + 2123: uint16(37), + 2124: uint16(393), + 2125: uint16(271), + 2126: uint16(272), + 2127: uint16(572), + 2128: uint16(181), + 2129: uint16(1193), + 2130: uint16(1256), + 2131: uint16(1256), + 2132: uint16(1256), + 2133: uint16(935), + 2134: uint16(1256), + 2135: uint16(1256), + 2136: uint16(1256), + 2137: uint16(1256), + 2138: uint16(1256), + 2139: uint16(1256), + 2140: uint16(1256), + 2141: uint16(1617), +} +var _yy_lookahead = [2328]uint16{ + 0: uint16(194), + 1: uint16(276), + 2: uint16(277), + 3: uint16(278), + 4: uint16(216), + 5: uint16(194), + 6: uint16(194), + 7: uint16(217), + 8: uint16(194), + 9: uint16(194), + 10: uint16(194), + 11: uint16(194), + 12: uint16(224), + 13: uint16(194), + 14: uint16(194), + 15: uint16(276), + 16: uint16(277), + 17: uint16(278), + 18: uint16(204), 19: uint16(19), - 20: uint16(219), - 21: uint16(233), - 22: uint16(216), - 23: uint16(216), - 24: uint16(217), - 25: uint16(216), - 26: uint16(217), - 27: uint16(193), - 28: uint16(295), - 29: uint16(216), - 30: uint16(217), + 20: uint16(206), + 21: uint16(202), + 22: uint16(297), + 23: uint16(217), + 24: uint16(218), + 25: uint16(205), + 26: uint16(207), + 27: uint16(217), + 28: uint16(205), + 29: uint16(217), + 30: uint16(218), 31: uint16(31), - 32: uint16(193), - 33: uint16(216), + 32: uint16(217), + 33: uint16(218), 34: uint16(217), - 35: uint16(193), - 36: uint16(228), - 37: uint16(213), - 38: uint16(230), + 35: uint16(218), + 36: uint16(29), + 37: uint16(217), + 38: uint16(218), 39: uint16(39), - 40: uint16(206), - 41: uint16(216), - 42: uint16(217), + 40: uint16(33), + 41: uint16(217), + 42: uint16(220), 43: uint16(43), 44: uint16(44), 45: uint16(45), @@ -148923,31 +150374,31 @@ var _yy_lookahead = [2285]uint16{ 55: uint16(55), 56: uint16(56), 57: uint16(57), - 58: uint16(193), + 58: uint16(312), 59: uint16(19), - 60: uint16(185), - 61: uint16(186), - 62: uint16(187), - 63: uint16(188), - 64: uint16(189), - 65: uint16(190), - 66: uint16(253), - 67: uint16(274), - 68: uint16(275), - 69: uint16(276), - 70: uint16(195), - 71: uint16(193), - 72: uint16(197), - 73: uint16(193), - 74: uint16(261), - 75: uint16(274), - 76: uint16(275), - 77: uint16(276), - 78: uint16(253), - 79: uint16(204), - 80: uint16(238), - 81: uint16(204), - 82: uint16(81), + 60: uint16(240), + 61: uint16(241), + 62: uint16(316), + 63: uint16(240), + 64: uint16(241), + 65: uint16(194), + 66: uint16(46), + 67: uint16(47), + 68: uint16(48), + 69: uint16(49), + 70: uint16(22), + 71: uint16(254), + 72: uint16(65), + 73: uint16(253), + 74: uint16(254), + 75: uint16(255), + 76: uint16(253), + 77: uint16(194), + 78: uint16(255), + 79: uint16(194), + 80: uint16(263), + 81: uint16(258), + 82: uint16(259), 83: uint16(43), 84: uint16(44), 85: uint16(45), @@ -148963,10 +150414,10 @@ var _yy_lookahead = [2285]uint16{ 95: uint16(55), 96: uint16(56), 97: uint16(57), - 98: uint16(274), - 99: uint16(275), - 100: uint16(276), - 101: uint16(262), + 98: uint16(276), + 99: uint16(277), + 100: uint16(278), + 101: uint16(285), 102: uint16(102), 103: uint16(103), 104: uint16(104), @@ -148979,34 +150430,34 @@ var _yy_lookahead = [2285]uint16{ 111: uint16(111), 112: uint16(112), 113: uint16(113), - 114: uint16(239), - 115: uint16(240), - 116: uint16(239), - 117: uint16(240), - 118: uint16(210), - 119: uint16(211), - 120: uint16(212), - 121: uint16(314), - 122: uint16(315), - 123: uint16(314), - 124: uint16(59), - 125: uint16(316), + 114: uint16(59), + 115: uint16(186), + 116: uint16(187), + 117: uint16(188), + 118: uint16(189), + 119: uint16(190), + 120: uint16(191), + 121: uint16(310), + 122: uint16(239), + 123: uint16(317), + 124: uint16(318), + 125: uint16(196), 126: uint16(86), - 127: uint16(252), + 127: uint16(198), 128: uint16(88), - 129: uint16(252), + 129: uint16(317), 130: uint16(19), - 131: uint16(314), - 132: uint16(315), - 133: uint16(256), - 134: uint16(257), - 135: uint16(113), + 131: uint16(319), + 132: uint16(317), + 133: uint16(318), + 134: uint16(205), + 135: uint16(264), 136: uint16(25), - 137: uint16(72), - 138: uint16(296), - 139: uint16(138), - 140: uint16(139), - 141: uint16(266), + 137: uint16(211), + 138: uint16(212), + 139: uint16(213), + 140: uint16(205), + 141: uint16(121), 142: uint16(102), 143: uint16(103), 144: uint16(104), @@ -149034,50 +150485,50 @@ var _yy_lookahead = [2285]uint16{ 166: uint16(55), 167: uint16(56), 168: uint16(57), - 169: uint16(81), - 170: uint16(292), - 171: uint16(59), - 172: uint16(292), - 173: uint16(298), - 174: uint16(108), - 175: uint16(109), - 176: uint16(110), - 177: uint16(111), - 178: uint16(112), - 179: uint16(113), + 169: uint16(240), + 170: uint16(241), + 171: uint16(116), + 172: uint16(117), + 173: uint16(118), + 174: uint16(119), + 175: uint16(240), + 176: uint16(241), + 177: uint16(122), + 178: uint16(123), + 179: uint16(124), 180: uint16(69), - 181: uint16(116), - 182: uint16(117), - 183: uint16(118), - 184: uint16(72), + 181: uint16(298), + 182: uint16(253), + 183: uint16(194), + 184: uint16(255), 185: uint16(106), 186: uint16(107), - 187: uint16(193), - 188: uint16(111), - 189: uint16(112), - 190: uint16(113), + 187: uint16(132), + 188: uint16(253), + 189: uint16(141), + 190: uint16(255), 191: uint16(54), 192: uint16(55), 193: uint16(56), 194: uint16(57), 195: uint16(58), - 196: uint16(102), - 197: uint16(103), - 198: uint16(104), - 199: uint16(105), - 200: uint16(106), - 201: uint16(107), - 202: uint16(108), - 203: uint16(109), - 204: uint16(110), - 205: uint16(111), - 206: uint16(112), - 207: uint16(113), - 208: uint16(120), - 209: uint16(25), - 210: uint16(216), - 211: uint16(217), - 212: uint16(145), + 196: uint16(207), + 197: uint16(268), + 198: uint16(102), + 199: uint16(103), + 200: uint16(104), + 201: uint16(105), + 202: uint16(106), + 203: uint16(107), + 204: uint16(108), + 205: uint16(109), + 206: uint16(110), + 207: uint16(111), + 208: uint16(112), + 209: uint16(113), + 210: uint16(214), + 211: uint16(128), + 212: uint16(129), 213: uint16(102), 214: uint16(103), 215: uint16(104), @@ -149090,13 +150541,13 @@ var _yy_lookahead = [2285]uint16{ 222: uint16(111), 223: uint16(112), 224: uint16(113), - 225: uint16(231), - 226: uint16(138), - 227: uint16(139), - 228: uint16(116), - 229: uint16(117), - 230: uint16(118), - 231: uint16(164), + 225: uint16(134), + 226: uint16(25), + 227: uint16(136), + 228: uint16(137), + 229: uint16(300), + 230: uint16(165), + 231: uint16(166), 232: uint16(153), 233: uint16(19), 234: uint16(155), @@ -149116,12 +150567,12 @@ var _yy_lookahead = [2285]uint16{ 248: uint16(111), 249: uint16(112), 250: uint16(113), - 251: uint16(128), - 252: uint16(129), - 253: uint16(46), - 254: uint16(47), - 255: uint16(48), - 256: uint16(49), + 251: uint16(108), + 252: uint16(109), + 253: uint16(110), + 254: uint16(111), + 255: uint16(112), + 256: uint16(113), 257: uint16(43), 258: uint16(44), 259: uint16(45), @@ -149137,15 +150588,15 @@ var _yy_lookahead = [2285]uint16{ 269: uint16(55), 270: uint16(56), 271: uint16(57), - 272: uint16(216), - 273: uint16(193), - 274: uint16(25), - 275: uint16(59), - 276: uint16(193), + 272: uint16(276), + 273: uint16(277), + 274: uint16(278), + 275: uint16(113), + 276: uint16(194), 277: uint16(19), - 278: uint16(165), - 279: uint16(166), - 280: uint16(193), + 278: uint16(22), + 279: uint16(23), + 280: uint16(194), 281: uint16(67), 282: uint16(24), 283: uint16(102), @@ -149160,12 +150611,12 @@ var _yy_lookahead = [2285]uint16{ 292: uint16(111), 293: uint16(112), 294: uint16(113), - 295: uint16(73), - 296: uint16(216), - 297: uint16(217), - 298: uint16(59), - 299: uint16(216), - 300: uint16(217), + 295: uint16(220), + 296: uint16(250), + 297: uint16(59), + 298: uint16(252), + 299: uint16(217), + 300: uint16(218), 301: uint16(43), 302: uint16(44), 303: uint16(45), @@ -149193,38 +150644,38 @@ var _yy_lookahead = [2285]uint16{ 325: uint16(111), 326: uint16(112), 327: uint16(113), - 328: uint16(121), - 329: uint16(145), - 330: uint16(59), - 331: uint16(193), - 332: uint16(116), - 333: uint16(117), - 334: uint16(118), - 335: uint16(119), - 336: uint16(273), - 337: uint16(204), - 338: uint16(122), - 339: uint16(123), - 340: uint16(124), + 328: uint16(106), + 329: uint16(107), + 330: uint16(108), + 331: uint16(109), + 332: uint16(110), + 333: uint16(111), + 334: uint16(112), + 335: uint16(113), + 336: uint16(254), + 337: uint16(59), + 338: uint16(205), + 339: uint16(138), + 340: uint16(139), 341: uint16(19), 342: uint16(20), - 343: uint16(134), + 343: uint16(194), 344: uint16(22), - 345: uint16(136), - 346: uint16(137), - 347: uint16(19), - 348: uint16(132), - 349: uint16(127), - 350: uint16(128), - 351: uint16(129), - 352: uint16(24), - 353: uint16(22), - 354: uint16(23), - 355: uint16(116), - 356: uint16(117), - 357: uint16(118), + 345: uint16(263), + 346: uint16(22), + 347: uint16(23), + 348: uint16(231), + 349: uint16(25), + 350: uint16(72), + 351: uint16(276), + 352: uint16(277), + 353: uint16(278), + 354: uint16(116), + 355: uint16(117), + 356: uint16(118), + 357: uint16(101), 358: uint16(36), - 359: uint16(193), + 359: uint16(76), 360: uint16(102), 361: uint16(103), 362: uint16(104), @@ -149237,37 +150688,37 @@ var _yy_lookahead = [2285]uint16{ 369: uint16(111), 370: uint16(112), 371: uint16(113), - 372: uint16(239), + 372: uint16(89), 373: uint16(240), - 374: uint16(311), - 375: uint16(312), - 376: uint16(215), - 377: uint16(106), - 378: uint16(107), - 379: uint16(241), + 374: uint16(241), + 375: uint16(92), + 376: uint16(73), + 377: uint16(194), + 378: uint16(194), + 379: uint16(73), 380: uint16(19), 381: uint16(59), - 382: uint16(216), - 383: uint16(217), - 384: uint16(223), - 385: uint16(252), - 386: uint16(115), - 387: uint16(116), - 388: uint16(117), - 389: uint16(118), - 390: uint16(151), - 391: uint16(120), - 392: uint16(26), + 382: uint16(188), + 383: uint16(189), + 384: uint16(190), + 385: uint16(191), + 386: uint16(253), + 387: uint16(81), + 388: uint16(255), + 389: uint16(151), + 390: uint16(196), + 391: uint16(25), + 392: uint16(198), 393: uint16(71), - 394: uint16(193), - 395: uint16(308), - 396: uint16(309), - 397: uint16(193), - 398: uint16(149), - 399: uint16(128), - 400: uint16(313), - 401: uint16(216), - 402: uint16(269), + 394: uint16(116), + 395: uint16(117), + 396: uint16(118), + 397: uint16(311), + 398: uint16(312), + 399: uint16(205), + 400: uint16(217), + 401: uint16(218), + 402: uint16(316), 403: uint16(81), 404: uint16(43), 405: uint16(44), @@ -149284,50 +150735,50 @@ var _yy_lookahead = [2285]uint16{ 416: uint16(55), 417: uint16(56), 418: uint16(57), - 419: uint16(253), - 420: uint16(216), - 421: uint16(217), + 419: uint16(270), + 420: uint16(22), + 421: uint16(23), 422: uint16(100), - 423: uint16(95), - 424: uint16(153), - 425: uint16(59), - 426: uint16(155), - 427: uint16(261), + 423: uint16(25), + 424: uint16(59), + 425: uint16(101), + 426: uint16(138), + 427: uint16(139), 428: uint16(106), 429: uint16(107), - 430: uint16(25), - 431: uint16(193), - 432: uint16(101), - 433: uint16(193), - 434: uint16(193), - 435: uint16(231), + 430: uint16(127), + 431: uint16(128), + 432: uint16(129), + 433: uint16(127), + 434: uint16(240), + 435: uint16(241), 436: uint16(114), - 437: uint16(25), + 437: uint16(254), 438: uint16(116), 439: uint16(117), 440: uint16(118), - 441: uint16(113), - 442: uint16(304), + 441: uint16(76), + 442: uint16(76), 443: uint16(121), - 444: uint16(193), - 445: uint16(204), - 446: uint16(59), - 447: uint16(119), - 448: uint16(120), - 449: uint16(121), - 450: uint16(122), - 451: uint16(123), - 452: uint16(124), - 453: uint16(125), - 454: uint16(216), - 455: uint16(217), - 456: uint16(193), - 457: uint16(216), - 458: uint16(217), - 459: uint16(131), + 444: uint16(138), + 445: uint16(139), + 446: uint16(263), + 447: uint16(253), + 448: uint16(264), + 449: uint16(255), + 450: uint16(205), + 451: uint16(275), + 452: uint16(87), + 453: uint16(19), + 454: uint16(89), + 455: uint16(89), + 456: uint16(194), + 457: uint16(92), + 458: uint16(92), + 459: uint16(199), 460: uint16(138), 461: uint16(139), - 462: uint16(230), + 462: uint16(268), 463: uint16(102), 464: uint16(103), 465: uint16(104), @@ -149345,37 +150796,37 @@ var _yy_lookahead = [2285]uint16{ 477: uint16(155), 478: uint16(156), 479: uint16(157), - 480: uint16(239), - 481: uint16(240), - 482: uint16(116), - 483: uint16(117), - 484: uint16(118), - 485: uint16(76), - 486: uint16(193), - 487: uint16(23), + 480: uint16(81), + 481: uint16(116), + 482: uint16(117), + 483: uint16(118), + 484: uint16(129), + 485: uint16(240), + 486: uint16(241), + 487: uint16(224), 488: uint16(19), - 489: uint16(25), - 490: uint16(22), - 491: uint16(253), + 489: uint16(226), + 490: uint16(314), + 491: uint16(315), 492: uint16(23), - 493: uint16(252), - 494: uint16(253), - 495: uint16(108), - 496: uint16(87), - 497: uint16(204), - 498: uint16(89), - 499: uint16(261), - 500: uint16(198), - 501: uint16(92), - 502: uint16(261), - 503: uint16(116), - 504: uint16(117), - 505: uint16(118), - 506: uint16(193), - 507: uint16(306), - 508: uint16(307), - 509: uint16(216), - 510: uint16(217), + 493: uint16(25), + 494: uint16(300), + 495: uint16(59), + 496: uint16(22), + 497: uint16(234), + 498: uint16(253), + 499: uint16(101), + 500: uint16(255), + 501: uint16(236), + 502: uint16(237), + 503: uint16(26), + 504: uint16(194), + 505: uint16(183), + 506: uint16(194), + 507: uint16(152), + 508: uint16(72), + 509: uint16(22), + 510: uint16(145), 511: uint16(150), 512: uint16(43), 513: uint16(44), @@ -149392,34 +150843,34 @@ var _yy_lookahead = [2285]uint16{ 524: uint16(55), 525: uint16(56), 526: uint16(57), - 527: uint16(59), - 528: uint16(193), - 529: uint16(216), - 530: uint16(217), + 527: uint16(217), + 528: uint16(218), + 529: uint16(217), + 530: uint16(218), 531: uint16(19), - 532: uint16(239), - 533: uint16(240), - 534: uint16(283), + 532: uint16(189), + 533: uint16(59), + 534: uint16(191), 535: uint16(23), - 536: uint16(106), - 537: uint16(107), - 538: uint16(108), - 539: uint16(109), - 540: uint16(110), - 541: uint16(111), - 542: uint16(112), - 543: uint16(113), - 544: uint16(73), - 545: uint16(252), - 546: uint16(253), - 547: uint16(142), - 548: uint16(308), - 549: uint16(309), - 550: uint16(138), - 551: uint16(139), - 552: uint16(81), - 553: uint16(313), - 554: uint16(145), + 536: uint16(59), + 537: uint16(138), + 538: uint16(139), + 539: uint16(196), + 540: uint16(135), + 541: uint16(198), + 542: uint16(232), + 543: uint16(283), + 544: uint16(232), + 545: uint16(140), + 546: uint16(59), + 547: uint16(287), + 548: uint16(205), + 549: uint16(275), + 550: uint16(116), + 551: uint16(205), + 552: uint16(116), + 553: uint16(117), + 554: uint16(118), 555: uint16(43), 556: uint16(44), 557: uint16(45), @@ -149435,7 +150886,7 @@ var _yy_lookahead = [2285]uint16{ 567: uint16(55), 568: uint16(56), 569: uint16(57), - 570: uint16(307), + 570: uint16(194), 571: uint16(102), 572: uint16(103), 573: uint16(104), @@ -149448,37 +150899,37 @@ var _yy_lookahead = [2285]uint16{ 580: uint16(111), 581: uint16(112), 582: uint16(113), - 583: uint16(281), - 584: uint16(116), - 585: uint16(117), - 586: uint16(118), - 587: uint16(285), - 588: uint16(23), - 589: uint16(193), - 590: uint16(25), - 591: uint16(119), - 592: uint16(59), - 593: uint16(193), - 594: uint16(122), - 595: uint16(123), - 596: uint16(124), - 597: uint16(59), - 598: uint16(127), - 599: uint16(203), + 583: uint16(240), + 584: uint16(241), + 585: uint16(194), + 586: uint16(240), + 587: uint16(241), + 588: uint16(314), + 589: uint16(315), + 590: uint16(116), + 591: uint16(117), + 592: uint16(118), + 593: uint16(116), + 594: uint16(117), + 595: uint16(118), + 596: uint16(253), + 597: uint16(194), + 598: uint16(255), + 599: uint16(253), 600: uint16(59), - 601: uint16(205), + 601: uint16(255), 602: uint16(19), - 603: uint16(268), - 604: uint16(132), - 605: uint16(25), + 603: uint16(116), + 604: uint16(117), + 605: uint16(118), 606: uint16(23), 607: uint16(22), - 608: uint16(193), - 609: uint16(138), - 610: uint16(139), - 611: uint16(249), - 612: uint16(204), - 613: uint16(251), + 608: uint16(217), + 609: uint16(218), + 610: uint16(142), + 611: uint16(268), + 612: uint16(205), + 613: uint16(275), 614: uint16(102), 615: uint16(103), 616: uint16(104), @@ -149507,29 +150958,29 @@ var _yy_lookahead = [2285]uint16{ 639: uint16(56), 640: uint16(57), 641: uint16(19), - 642: uint16(22), - 643: uint16(23), + 642: uint16(194), + 643: uint16(300), 644: uint16(59), 645: uint16(23), - 646: uint16(25), - 647: uint16(239), - 648: uint16(240), - 649: uint16(116), - 650: uint16(117), - 651: uint16(118), - 652: uint16(193), - 653: uint16(11), - 654: uint16(116), - 655: uint16(117), - 656: uint16(118), - 657: uint16(116), + 646: uint16(119), + 647: uint16(240), + 648: uint16(241), + 649: uint16(122), + 650: uint16(123), + 651: uint16(124), + 652: uint16(314), + 653: uint16(315), + 654: uint16(194), + 655: uint16(236), + 656: uint16(237), + 657: uint16(194), 658: uint16(117), - 659: uint16(118), - 660: uint16(252), - 661: uint16(269), - 662: uint16(22), - 663: uint16(193), - 664: uint16(15), + 659: uint16(132), + 660: uint16(253), + 661: uint16(81), + 662: uint16(255), + 663: uint16(205), + 664: uint16(59), 665: uint16(43), 666: uint16(44), 667: uint16(45), @@ -149545,11 +150996,11 @@ var _yy_lookahead = [2285]uint16{ 677: uint16(55), 678: uint16(56), 679: uint16(57), - 680: uint16(273), - 681: uint16(143), - 682: uint16(193), - 683: uint16(118), - 684: uint16(143), + 680: uint16(217), + 681: uint16(218), + 682: uint16(194), + 683: uint16(194), + 684: uint16(194), 685: uint16(102), 686: uint16(103), 687: uint16(104), @@ -149562,33 +151013,33 @@ var _yy_lookahead = [2285]uint16{ 694: uint16(111), 695: uint16(112), 696: uint16(113), - 697: uint16(76), - 698: uint16(118), - 699: uint16(59), - 700: uint16(241), + 697: uint16(294), + 698: uint16(240), + 699: uint16(241), + 700: uint16(120), 701: uint16(116), 702: uint16(117), 703: uint16(118), - 704: uint16(304), - 705: uint16(216), + 704: uint16(59), + 705: uint16(194), 706: uint16(217), - 707: uint16(292), - 708: uint16(143), - 709: uint16(60), - 710: uint16(89), - 711: uint16(241), + 707: uint16(218), + 708: uint16(211), + 709: uint16(212), + 710: uint16(213), + 711: uint16(253), 712: uint16(19), - 713: uint16(92), - 714: uint16(193), - 715: uint16(193), + 713: uint16(255), + 714: uint16(194), + 715: uint16(19), 716: uint16(23), - 717: uint16(22), - 718: uint16(311), - 719: uint16(312), - 720: uint16(231), - 721: uint16(101), - 722: uint16(22), - 723: uint16(143), + 717: uint16(254), + 718: uint16(138), + 719: uint16(139), + 720: uint16(24), + 721: uint16(232), + 722: uint16(117), + 723: uint16(194), 724: uint16(102), 725: uint16(103), 726: uint16(104), @@ -149617,29 +151068,29 @@ var _yy_lookahead = [2285]uint16{ 749: uint16(56), 750: uint16(57), 751: uint16(19), - 752: uint16(193), - 753: uint16(193), - 754: uint16(59), + 752: uint16(264), + 753: uint16(108), + 754: uint16(76), 755: uint16(23), - 756: uint16(116), - 757: uint16(117), - 758: uint16(118), - 759: uint16(59), - 760: uint16(201), - 761: uint16(21), - 762: uint16(241), - 763: uint16(304), - 764: uint16(193), - 765: uint16(206), - 766: uint16(127), - 767: uint16(128), - 768: uint16(129), - 769: uint16(193), - 770: uint16(128), - 771: uint16(129), - 772: uint16(235), - 773: uint16(236), - 774: uint16(304), + 756: uint16(127), + 757: uint16(128), + 758: uint16(129), + 759: uint16(311), + 760: uint16(312), + 761: uint16(116), + 762: uint16(117), + 763: uint16(118), + 764: uint16(316), + 765: uint16(87), + 766: uint16(306), + 767: uint16(89), + 768: uint16(308), + 769: uint16(194), + 770: uint16(92), + 771: uint16(22), + 772: uint16(59), + 773: uint16(194), + 774: uint16(22), 775: uint16(43), 776: uint16(44), 777: uint16(45), @@ -149655,11 +151106,11 @@ var _yy_lookahead = [2285]uint16{ 787: uint16(55), 788: uint16(56), 789: uint16(57), - 790: uint16(22), - 791: uint16(193), - 792: uint16(216), - 793: uint16(217), - 794: uint16(193), + 790: uint16(194), + 791: uint16(95), + 792: uint16(217), + 793: uint16(218), + 794: uint16(265), 795: uint16(102), 796: uint16(103), 797: uint16(104), @@ -149672,33 +151123,33 @@ var _yy_lookahead = [2285]uint16{ 804: uint16(111), 805: uint16(112), 806: uint16(113), - 807: uint16(231), - 808: uint16(193), - 809: uint16(193), - 810: uint16(193), - 811: uint16(116), - 812: uint16(117), - 813: uint16(118), - 814: uint16(216), - 815: uint16(217), - 816: uint16(116), - 817: uint16(117), - 818: uint16(118), - 819: uint16(226), - 820: uint16(80), - 821: uint16(193), + 807: uint16(232), + 808: uint16(59), + 809: uint16(113), + 810: uint16(25), + 811: uint16(59), + 812: uint16(194), + 813: uint16(217), + 814: uint16(218), + 815: uint16(119), + 816: uint16(120), + 817: uint16(121), + 818: uint16(122), + 819: uint16(123), + 820: uint16(124), + 821: uint16(125), 822: uint16(19), - 823: uint16(235), - 824: uint16(236), - 825: uint16(304), + 823: uint16(145), + 824: uint16(194), + 825: uint16(194), 826: uint16(23), - 827: uint16(211), - 828: uint16(212), - 829: uint16(231), - 830: uint16(204), - 831: uint16(216), - 832: uint16(217), - 833: uint16(205), + 827: uint16(131), + 828: uint16(232), + 829: uint16(116), + 830: uint16(117), + 831: uint16(118), + 832: uint16(35), + 833: uint16(194), 834: uint16(102), 835: uint16(103), 836: uint16(104), @@ -149727,29 +151178,29 @@ var _yy_lookahead = [2285]uint16{ 859: uint16(56), 860: uint16(57), 861: uint16(19), - 862: uint16(193), - 863: uint16(123), - 864: uint16(76), - 865: uint16(239), - 866: uint16(240), - 867: uint16(193), - 868: uint16(253), - 869: uint16(239), - 870: uint16(240), - 871: uint16(239), - 872: uint16(240), - 873: uint16(244), - 874: uint16(106), - 875: uint16(107), - 876: uint16(193), - 877: uint16(89), - 878: uint16(252), - 879: uint16(193), - 880: uint16(92), - 881: uint16(59), - 882: uint16(252), - 883: uint16(254), - 884: uint16(252), + 862: uint16(194), + 863: uint16(66), + 864: uint16(194), + 865: uint16(116), + 866: uint16(117), + 867: uint16(118), + 868: uint16(116), + 869: uint16(117), + 870: uint16(118), + 871: uint16(74), + 872: uint16(242), + 873: uint16(294), + 874: uint16(194), + 875: uint16(194), + 876: uint16(206), + 877: uint16(23), + 878: uint16(194), + 879: uint16(25), + 880: uint16(194), + 881: uint16(111), + 882: uint16(112), + 883: uint16(113), + 884: uint16(25), 885: uint16(43), 886: uint16(44), 887: uint16(45), @@ -149765,11 +151216,11 @@ var _yy_lookahead = [2285]uint16{ 897: uint16(55), 898: uint16(56), 899: uint16(57), - 900: uint16(284), - 901: uint16(161), - 902: uint16(216), + 900: uint16(24), + 901: uint16(194), + 902: uint16(194), 903: uint16(217), - 904: uint16(193), + 904: uint16(218), 905: uint16(102), 906: uint16(103), 907: uint16(104), @@ -149782,33 +151233,33 @@ var _yy_lookahead = [2285]uint16{ 914: uint16(111), 915: uint16(112), 916: uint16(113), - 917: uint16(231), - 918: uint16(193), - 919: uint16(244), - 920: uint16(187), - 921: uint16(188), - 922: uint16(189), - 923: uint16(190), - 924: uint16(7), - 925: uint16(8), - 926: uint16(9), - 927: uint16(309), - 928: uint16(195), - 929: uint16(254), - 930: uint16(197), - 931: uint16(313), + 917: uint16(241), + 918: uint16(232), + 919: uint16(194), + 920: uint16(212), + 921: uint16(213), + 922: uint16(242), + 923: uint16(242), + 924: uint16(217), + 925: uint16(218), + 926: uint16(242), + 927: uint16(130), + 928: uint16(11), + 929: uint16(253), + 930: uint16(194), + 931: uint16(255), 932: uint16(19), - 933: uint16(127), - 934: uint16(128), - 935: uint16(129), - 936: uint16(262), - 937: uint16(204), - 938: uint16(22), - 939: uint16(117), - 940: uint16(24), - 941: uint16(216), + 933: uint16(265), + 934: uint16(149), + 935: uint16(59), + 936: uint16(306), + 937: uint16(194), + 938: uint16(308), + 939: uint16(232), + 940: uint16(309), + 941: uint16(310), 942: uint16(217), - 943: uint16(273), + 943: uint16(218), 944: uint16(102), 945: uint16(103), 946: uint16(104), @@ -149836,36 +151287,36 @@ var _yy_lookahead = [2285]uint16{ 968: uint16(55), 969: uint16(56), 970: uint16(57), - 971: uint16(193), - 972: uint16(239), - 973: uint16(240), - 974: uint16(193), - 975: uint16(59), + 971: uint16(194), + 972: uint16(194), + 973: uint16(59), + 974: uint16(194), + 975: uint16(239), 976: uint16(19), - 977: uint16(188), - 978: uint16(253), - 979: uint16(190), - 980: uint16(193), - 981: uint16(311), - 982: uint16(312), - 983: uint16(16), - 984: uint16(195), - 985: uint16(252), - 986: uint16(197), - 987: uint16(193), - 988: uint16(19), - 989: uint16(301), - 990: uint16(302), - 991: uint16(135), - 992: uint16(193), - 993: uint16(204), - 994: uint16(216), + 977: uint16(194), + 978: uint16(25), + 979: uint16(254), + 980: uint16(303), + 981: uint16(304), + 982: uint16(23), + 983: uint16(194), + 984: uint16(25), + 985: uint16(126), + 986: uint16(306), + 987: uint16(306), + 988: uint16(308), + 989: uint16(308), + 990: uint16(306), + 991: uint16(271), + 992: uint16(308), + 993: uint16(117), + 994: uint16(286), 995: uint16(217), - 996: uint16(140), - 997: uint16(216), - 998: uint16(217), - 999: uint16(266), - 1000: uint16(204), + 996: uint16(218), + 997: uint16(217), + 998: uint16(218), + 999: uint16(194), + 1000: uint16(194), 1001: uint16(159), 1002: uint16(45), 1003: uint16(46), @@ -149892,38 +151343,38 @@ var _yy_lookahead = [2285]uint16{ 1024: uint16(111), 1025: uint16(112), 1026: uint16(113), - 1027: uint16(12), + 1027: uint16(59), 1028: uint16(239), - 1029: uint16(240), - 1030: uint16(193), - 1031: uint16(298), - 1032: uint16(238), - 1033: uint16(117), - 1034: uint16(253), - 1035: uint16(239), + 1029: uint16(194), + 1030: uint16(116), + 1031: uint16(117), + 1032: uint16(118), + 1033: uint16(260), + 1034: uint16(254), + 1035: uint16(194), 1036: uint16(240), - 1037: uint16(238), - 1038: uint16(259), - 1039: uint16(260), - 1040: uint16(193), - 1041: uint16(252), - 1042: uint16(27), - 1043: uint16(193), - 1044: uint16(77), - 1045: uint16(193), - 1046: uint16(79), - 1047: uint16(204), - 1048: uint16(252), - 1049: uint16(262), - 1050: uint16(193), - 1051: uint16(299), - 1052: uint16(300), - 1053: uint16(193), - 1054: uint16(100), - 1055: uint16(266), - 1056: uint16(278), - 1057: uint16(42), - 1058: uint16(204), + 1037: uint16(241), + 1038: uint16(194), + 1039: uint16(233), + 1040: uint16(205), + 1041: uint16(240), + 1042: uint16(241), + 1043: uint16(205), + 1044: uint16(239), + 1045: uint16(128), + 1046: uint16(129), + 1047: uint16(270), + 1048: uint16(265), + 1049: uint16(253), + 1050: uint16(194), + 1051: uint16(255), + 1052: uint16(217), + 1053: uint16(218), + 1054: uint16(253), + 1055: uint16(194), + 1056: uint16(255), + 1057: uint16(143), + 1058: uint16(280), 1059: uint16(102), 1060: uint16(103), 1061: uint16(104), @@ -149936,51 +151387,51 @@ var _yy_lookahead = [2285]uint16{ 1068: uint16(111), 1069: uint16(112), 1070: uint16(113), - 1071: uint16(117), + 1071: uint16(118), 1072: uint16(159), - 1073: uint16(216), - 1074: uint16(217), - 1075: uint16(121), - 1076: uint16(216), - 1077: uint16(217), - 1078: uint16(63), - 1079: uint16(193), - 1080: uint16(193), - 1081: uint16(193), - 1082: uint16(239), - 1083: uint16(240), - 1084: uint16(115), - 1085: uint16(116), - 1086: uint16(193), - 1087: uint16(298), - 1088: uint16(73), - 1089: uint16(240), - 1090: uint16(238), - 1091: uint16(231), + 1073: uint16(217), + 1074: uint16(218), + 1075: uint16(240), + 1076: uint16(241), + 1077: uint16(118), + 1078: uint16(240), + 1079: uint16(241), + 1080: uint16(194), + 1081: uint16(194), + 1082: uint16(194), + 1083: uint16(239), + 1084: uint16(116), + 1085: uint16(117), + 1086: uint16(118), + 1087: uint16(22), + 1088: uint16(253), + 1089: uint16(254), + 1090: uint16(255), + 1091: uint16(253), 1092: uint16(19), - 1093: uint16(239), - 1094: uint16(240), - 1095: uint16(252), - 1096: uint16(22), + 1093: uint16(255), + 1094: uint16(233), + 1095: uint16(194), + 1096: uint16(143), 1097: uint16(24), - 1098: uint16(211), + 1098: uint16(263), 1099: uint16(212), - 1100: uint16(263), - 1101: uint16(252), - 1102: uint16(216), + 1100: uint16(213), + 1101: uint16(194), + 1102: uint16(143), 1103: uint16(217), - 1104: uint16(216), + 1104: uint16(218), 1105: uint16(217), - 1106: uint16(252), - 1107: uint16(153), - 1108: uint16(154), - 1109: uint16(155), - 1110: uint16(253), - 1111: uint16(193), + 1106: uint16(218), + 1107: uint16(261), + 1108: uint16(262), + 1109: uint16(271), + 1110: uint16(254), + 1111: uint16(143), 1112: uint16(19), - 1113: uint16(144), - 1114: uint16(213), - 1115: uint16(268), + 1113: uint16(7), + 1114: uint16(8), + 1115: uint16(9), 1116: uint16(43), 1117: uint16(44), 1118: uint16(45), @@ -149996,11 +151447,11 @@ var _yy_lookahead = [2285]uint16{ 1128: uint16(55), 1129: uint16(56), 1130: uint16(57), - 1131: uint16(193), + 1131: uint16(16), 1132: uint16(19), - 1133: uint16(59), - 1134: uint16(216), - 1135: uint16(217), + 1133: uint16(22), + 1134: uint16(23), + 1135: uint16(294), 1136: uint16(43), 1137: uint16(44), 1138: uint16(45), @@ -150016,11 +151467,11 @@ var _yy_lookahead = [2285]uint16{ 1148: uint16(55), 1149: uint16(56), 1150: uint16(57), - 1151: uint16(193), - 1152: uint16(19), - 1153: uint16(24), - 1154: uint16(216), - 1155: uint16(217), + 1151: uint16(312), + 1152: uint16(194), + 1153: uint16(214), + 1154: uint16(21), + 1155: uint16(316), 1156: uint16(43), 1157: uint16(44), 1158: uint16(45), @@ -150036,10 +151487,10 @@ var _yy_lookahead = [2285]uint16{ 1168: uint16(55), 1169: uint16(56), 1170: uint16(57), - 1171: uint16(284), - 1172: uint16(193), - 1173: uint16(208), - 1174: uint16(209), + 1171: uint16(106), + 1172: uint16(107), + 1173: uint16(286), + 1174: uint16(194), 1175: uint16(102), 1176: uint16(103), 1177: uint16(104), @@ -150052,14 +151503,14 @@ var _yy_lookahead = [2285]uint16{ 1184: uint16(111), 1185: uint16(112), 1186: uint16(113), - 1187: uint16(286), - 1188: uint16(59), - 1189: uint16(193), - 1190: uint16(232), - 1191: uint16(117), - 1192: uint16(291), - 1193: uint16(193), - 1194: uint16(193), + 1187: uint16(207), + 1188: uint16(158), + 1189: uint16(59), + 1190: uint16(160), + 1191: uint16(22), + 1192: uint16(77), + 1193: uint16(24), + 1194: uint16(79), 1195: uint16(102), 1196: uint16(103), 1197: uint16(104), @@ -150072,14 +151523,14 @@ var _yy_lookahead = [2285]uint16{ 1204: uint16(111), 1205: uint16(112), 1206: uint16(113), - 1207: uint16(193), - 1208: uint16(204), - 1209: uint16(22), - 1210: uint16(23), - 1211: uint16(193), - 1212: uint16(25), - 1213: uint16(66), - 1214: uint16(193), + 1207: uint16(194), + 1208: uint16(194), + 1209: uint16(229), + 1210: uint16(194), + 1211: uint16(231), + 1212: uint16(101), + 1213: uint16(80), + 1214: uint16(22), 1215: uint16(102), 1216: uint16(103), 1217: uint16(104), @@ -150092,39 +151543,39 @@ var _yy_lookahead = [2285]uint16{ 1224: uint16(111), 1225: uint16(112), 1226: uint16(113), - 1227: uint16(193), - 1228: uint16(193), - 1229: uint16(193), - 1230: uint16(216), - 1231: uint16(217), - 1232: uint16(85), - 1233: uint16(193), - 1234: uint16(238), + 1227: uint16(288), + 1228: uint16(59), + 1229: uint16(12), + 1230: uint16(217), + 1231: uint16(218), + 1232: uint16(293), + 1233: uint16(217), + 1234: uint16(218), 1235: uint16(19), - 1236: uint16(16), - 1237: uint16(216), - 1238: uint16(217), - 1239: uint16(238), - 1240: uint16(193), - 1241: uint16(94), - 1242: uint16(193), - 1243: uint16(239), - 1244: uint16(240), - 1245: uint16(231), - 1246: uint16(117), - 1247: uint16(268), - 1248: uint16(35), - 1249: uint16(116), - 1250: uint16(216), - 1251: uint16(217), - 1252: uint16(216), - 1253: uint16(217), - 1254: uint16(22), - 1255: uint16(23), - 1256: uint16(252), - 1257: uint16(25), - 1258: uint16(208), - 1259: uint16(209), + 1236: uint16(106), + 1237: uint16(107), + 1238: uint16(59), + 1239: uint16(19), + 1240: uint16(16), + 1241: uint16(127), + 1242: uint16(128), + 1243: uint16(129), + 1244: uint16(27), + 1245: uint16(115), + 1246: uint16(116), + 1247: uint16(117), + 1248: uint16(118), + 1249: uint16(194), + 1250: uint16(120), + 1251: uint16(59), + 1252: uint16(22), + 1253: uint16(194), + 1254: uint16(24), + 1255: uint16(194), + 1256: uint16(123), + 1257: uint16(100), + 1258: uint16(128), + 1259: uint16(42), 1260: uint16(44), 1261: uint16(45), 1262: uint16(46), @@ -150139,50 +151590,50 @@ var _yy_lookahead = [2285]uint16{ 1271: uint16(55), 1272: uint16(56), 1273: uint16(57), - 1274: uint16(193), - 1275: uint16(193), - 1276: uint16(19), - 1277: uint16(5), - 1278: uint16(59), - 1279: uint16(66), - 1280: uint16(193), - 1281: uint16(263), - 1282: uint16(10), - 1283: uint16(11), - 1284: uint16(12), - 1285: uint16(13), - 1286: uint16(14), - 1287: uint16(74), - 1288: uint16(101), - 1289: uint16(17), - 1290: uint16(193), - 1291: uint16(46), - 1292: uint16(193), - 1293: uint16(146), - 1294: uint16(193), - 1295: uint16(76), - 1296: uint16(213), - 1297: uint16(77), - 1298: uint16(263), - 1299: uint16(79), - 1300: uint16(12), - 1301: uint16(260), - 1302: uint16(30), - 1303: uint16(46), - 1304: uint16(32), - 1305: uint16(264), - 1306: uint16(87), - 1307: uint16(193), - 1308: uint16(89), - 1309: uint16(29), - 1310: uint16(263), - 1311: uint16(92), - 1312: uint16(40), - 1313: uint16(33), - 1314: uint16(232), - 1315: uint16(27), - 1316: uint16(193), - 1317: uint16(108), + 1274: uint16(117), + 1275: uint16(194), + 1276: uint16(217), + 1277: uint16(218), + 1278: uint16(121), + 1279: uint16(100), + 1280: uint16(63), + 1281: uint16(194), + 1282: uint16(245), + 1283: uint16(153), + 1284: uint16(194), + 1285: uint16(155), + 1286: uint16(117), + 1287: uint16(19), + 1288: uint16(115), + 1289: uint16(194), + 1290: uint16(73), + 1291: uint16(214), + 1292: uint16(194), + 1293: uint16(256), + 1294: uint16(161), + 1295: uint16(116), + 1296: uint16(117), + 1297: uint16(194), + 1298: uint16(217), + 1299: uint16(218), + 1300: uint16(121), + 1301: uint16(77), + 1302: uint16(194), + 1303: uint16(79), + 1304: uint16(217), + 1305: uint16(218), + 1306: uint16(194), + 1307: uint16(217), + 1308: uint16(218), + 1309: uint16(117), + 1310: uint16(153), + 1311: uint16(154), + 1312: uint16(155), + 1313: uint16(254), + 1314: uint16(46), + 1315: uint16(217), + 1316: uint16(218), + 1317: uint16(144), 1318: uint16(102), 1319: uint16(103), 1320: uint16(104), @@ -150195,1025 +151646,1068 @@ var _yy_lookahead = [2285]uint16{ 1327: uint16(111), 1328: uint16(112), 1329: uint16(113), - 1330: uint16(42), - 1331: uint16(138), - 1332: uint16(139), - 1333: uint16(101), - 1334: uint16(193), - 1335: uint16(116), - 1336: uint16(117), - 1337: uint16(118), + 1330: uint16(232), + 1331: uint16(270), + 1332: uint16(153), + 1333: uint16(154), + 1334: uint16(155), + 1335: uint16(115), + 1336: uint16(116), + 1337: uint16(66), 1338: uint16(19), 1339: uint16(20), - 1340: uint16(255), + 1340: uint16(183), 1341: uint16(22), - 1342: uint16(70), - 1343: uint16(130), - 1344: uint16(135), - 1345: uint16(65), - 1346: uint16(256), - 1347: uint16(257), - 1348: uint16(193), - 1349: uint16(140), - 1350: uint16(78), - 1351: uint16(63), - 1352: uint16(193), - 1353: uint16(81), - 1354: uint16(193), + 1342: uint16(12), + 1343: uint16(312), + 1344: uint16(254), + 1345: uint16(194), + 1346: uint16(262), + 1347: uint16(316), + 1348: uint16(209), + 1349: uint16(210), + 1350: uint16(266), + 1351: uint16(239), + 1352: uint16(194), + 1353: uint16(194), + 1354: uint16(108), 1355: uint16(36), - 1356: uint16(193), - 1357: uint16(216), - 1358: uint16(217), - 1359: uint16(193), - 1360: uint16(115), - 1361: uint16(193), - 1362: uint16(263), - 1363: uint16(193), - 1364: uint16(145), - 1365: uint16(268), - 1366: uint16(59), + 1356: uint16(85), + 1357: uint16(27), + 1358: uint16(19), + 1359: uint16(20), + 1360: uint16(265), + 1361: uint16(22), + 1362: uint16(183), + 1363: uint16(245), + 1364: uint16(144), + 1365: uint16(94), + 1366: uint16(25), 1367: uint16(48), - 1368: uint16(193), - 1369: uint16(193), - 1370: uint16(98), - 1371: uint16(193), - 1372: uint16(115), - 1373: uint16(193), - 1374: uint16(291), - 1375: uint16(216), + 1368: uint16(217), + 1369: uint16(218), + 1370: uint16(293), + 1371: uint16(194), + 1372: uint16(42), + 1373: uint16(270), + 1374: uint16(256), + 1375: uint16(36), 1376: uint16(217), - 1377: uint16(193), + 1377: uint16(218), 1378: uint16(59), - 1379: uint16(216), - 1380: uint16(217), - 1381: uint16(161), - 1382: uint16(216), - 1383: uint16(217), - 1384: uint16(216), - 1385: uint16(217), - 1386: uint16(216), - 1387: uint16(217), - 1388: uint16(131), - 1389: uint16(193), + 1379: uint16(194), + 1380: uint16(25), + 1381: uint16(135), + 1382: uint16(194), + 1383: uint16(115), + 1384: uint16(194), + 1385: uint16(161), + 1386: uint16(140), + 1387: uint16(194), + 1388: uint16(194), + 1389: uint16(15), 1390: uint16(71), - 1391: uint16(193), - 1392: uint16(216), - 1393: uint16(217), - 1394: uint16(216), - 1395: uint16(217), - 1396: uint16(216), - 1397: uint16(217), - 1398: uint16(193), - 1399: uint16(260), - 1400: uint16(216), - 1401: uint16(217), - 1402: uint16(19), - 1403: uint16(264), + 1391: uint16(194), + 1392: uint16(312), + 1393: uint16(63), + 1394: uint16(217), + 1395: uint16(218), + 1396: uint16(316), + 1397: uint16(194), + 1398: uint16(59), + 1399: uint16(131), + 1400: uint16(301), + 1401: uint16(302), + 1402: uint16(217), + 1403: uint16(218), 1404: uint16(85), - 1405: uint16(133), - 1406: uint16(244), - 1407: uint16(100), - 1408: uint16(193), + 1405: uint16(217), + 1406: uint16(218), + 1407: uint16(217), + 1408: uint16(218), 1409: uint16(90), - 1410: uint16(138), - 1411: uint16(139), - 1412: uint16(216), - 1413: uint16(217), - 1414: uint16(216), - 1415: uint16(217), - 1416: uint16(254), - 1417: uint16(244), - 1418: uint16(193), + 1410: uint16(71), + 1411: uint16(217), + 1412: uint16(218), + 1413: uint16(19), + 1414: uint16(217), + 1415: uint16(218), + 1416: uint16(245), + 1417: uint16(146), + 1418: uint16(262), 1419: uint16(100), - 1420: uint16(193), - 1421: uint16(216), - 1422: uint16(217), - 1423: uint16(116), - 1424: uint16(117), + 1420: uint16(217), + 1421: uint16(218), + 1422: uint16(266), + 1423: uint16(265), + 1424: uint16(85), 1425: uint16(106), 1426: uint16(107), - 1427: uint16(254), - 1428: uint16(121), - 1429: uint16(193), - 1430: uint16(115), - 1431: uint16(216), - 1432: uint16(217), + 1427: uint16(256), + 1428: uint16(312), + 1429: uint16(90), + 1430: uint16(209), + 1431: uint16(210), + 1432: uint16(316), 1433: uint16(114), - 1434: uint16(162), + 1434: uint16(60), 1435: uint16(116), 1436: uint16(117), 1437: uint16(118), - 1438: uint16(115), - 1439: uint16(244), + 1438: uint16(194), + 1439: uint16(100), 1440: uint16(121), - 1441: uint16(216), - 1442: uint16(217), - 1443: uint16(216), - 1444: uint16(217), - 1445: uint16(193), - 1446: uint16(309), - 1447: uint16(193), - 1448: uint16(31), - 1449: uint16(254), - 1450: uint16(313), - 1451: uint16(309), - 1452: uint16(216), - 1453: uint16(217), - 1454: uint16(309), - 1455: uint16(313), - 1456: uint16(39), - 1457: uint16(193), - 1458: uint16(313), - 1459: uint16(309), - 1460: uint16(153), - 1461: uint16(154), - 1462: uint16(155), - 1463: uint16(313), - 1464: uint16(193), - 1465: uint16(150), - 1466: uint16(25), - 1467: uint16(144), - 1468: uint16(216), - 1469: uint16(217), - 1470: uint16(216), - 1471: uint16(217), + 1441: uint16(194), + 1442: uint16(194), + 1443: uint16(145), + 1444: uint16(115), + 1445: uint16(106), + 1446: uint16(107), + 1447: uint16(19), + 1448: uint16(46), + 1449: uint16(19), + 1450: uint16(20), + 1451: uint16(24), + 1452: uint16(22), + 1453: uint16(114), + 1454: uint16(194), + 1455: uint16(116), + 1456: uint16(117), + 1457: uint16(118), + 1458: uint16(194), + 1459: uint16(245), + 1460: uint16(121), + 1461: uint16(194), + 1462: uint16(164), + 1463: uint16(194), + 1464: uint16(217), + 1465: uint16(218), + 1466: uint16(36), + 1467: uint16(194), + 1468: uint16(258), + 1469: uint16(259), + 1470: uint16(256), + 1471: uint16(194), 1472: uint16(153), 1473: uint16(154), 1474: uint16(155), 1475: uint16(156), 1476: uint16(157), - 1478: uint16(1), - 1479: uint16(2), - 1480: uint16(216), + 1477: uint16(217), + 1478: uint16(218), + 1479: uint16(150), + 1480: uint16(31), 1481: uint16(217), - 1482: uint16(5), - 1483: uint16(149), - 1484: uint16(150), - 1485: uint16(22), - 1486: uint16(193), - 1487: uint16(10), - 1488: uint16(11), - 1489: uint16(12), - 1490: uint16(13), - 1491: uint16(14), - 1492: uint16(193), - 1493: uint16(158), - 1494: uint16(17), - 1495: uint16(160), - 1496: uint16(193), - 1497: uint16(19), - 1498: uint16(20), - 1499: uint16(116), - 1500: uint16(22), - 1501: uint16(25), - 1502: uint16(193), - 1503: uint16(24), - 1504: uint16(22), - 1505: uint16(193), - 1506: uint16(24), - 1507: uint16(30), - 1508: uint16(226), - 1509: uint16(32), - 1510: uint16(19), - 1511: uint16(20), - 1512: uint16(226), - 1513: uint16(22), - 1514: uint16(36), - 1515: uint16(193), - 1516: uint16(53), - 1517: uint16(40), - 1518: uint16(193), - 1519: uint16(216), - 1520: uint16(217), - 1521: uint16(193), - 1522: uint16(23), - 1523: uint16(193), - 1524: uint16(25), - 1525: uint16(216), - 1526: uint16(217), - 1527: uint16(36), - 1528: uint16(216), - 1529: uint16(217), - 1530: uint16(193), - 1531: uint16(99), - 1532: uint16(193), - 1533: uint16(193), - 1534: uint16(22), - 1535: uint16(193), - 1536: uint16(193), - 1537: uint16(59), - 1538: uint16(216), + 1482: uint16(218), + 1483: uint16(142), + 1484: uint16(217), + 1485: uint16(218), + 1486: uint16(217), + 1487: uint16(218), + 1488: uint16(39), + 1489: uint16(59), + 1490: uint16(217), + 1491: uint16(218), + 1492: uint16(153), + 1493: uint16(154), + 1494: uint16(155), + 1495: uint16(156), + 1496: uint16(157), + 1497: uint16(149), + 1498: uint16(150), + 1499: uint16(5), + 1500: uint16(145), + 1501: uint16(71), + 1502: uint16(183), + 1503: uint16(245), + 1504: uint16(10), + 1505: uint16(11), + 1506: uint16(12), + 1507: uint16(13), + 1508: uint16(14), + 1509: uint16(194), + 1510: uint16(116), + 1511: uint16(17), + 1512: uint16(129), + 1513: uint16(227), + 1514: uint16(256), + 1515: uint16(85), + 1516: uint16(194), + 1517: uint16(115), + 1518: uint16(194), + 1519: uint16(23), + 1520: uint16(90), + 1521: uint16(25), + 1522: uint16(183), + 1523: uint16(99), + 1524: uint16(30), + 1525: uint16(97), + 1526: uint16(32), + 1527: uint16(22), + 1528: uint16(22), + 1529: uint16(194), + 1530: uint16(100), + 1531: uint16(194), + 1532: uint16(217), + 1533: uint16(218), + 1534: uint16(40), + 1535: uint16(152), + 1536: uint16(106), + 1537: uint16(107), + 1538: uint16(23), 1539: uint16(217), - 1540: uint16(193), - 1541: uint16(216), - 1542: uint16(217), - 1543: uint16(193), - 1544: uint16(216), - 1545: uint16(217), - 1546: uint16(193), - 1547: uint16(70), - 1548: uint16(129), - 1549: uint16(71), - 1550: uint16(59), - 1551: uint16(129), - 1552: uint16(193), - 1553: uint16(216), + 1540: uint16(218), + 1541: uint16(194), + 1542: uint16(19), + 1543: uint16(20), + 1544: uint16(114), + 1545: uint16(22), + 1546: uint16(116), + 1547: uint16(117), + 1548: uint16(118), + 1549: uint16(257), + 1550: uint16(194), + 1551: uint16(121), + 1552: uint16(217), + 1553: uint16(218), 1554: uint16(217), - 1555: uint16(78), - 1556: uint16(216), - 1557: uint16(217), - 1558: uint16(81), - 1559: uint16(216), - 1560: uint16(217), - 1561: uint16(193), - 1562: uint16(71), - 1563: uint16(85), - 1564: uint16(193), - 1565: uint16(133), - 1566: uint16(193), - 1567: uint16(126), - 1568: uint16(90), - 1569: uint16(216), - 1570: uint16(217), - 1571: uint16(152), - 1572: uint16(258), - 1573: uint16(61), - 1574: uint16(152), - 1575: uint16(98), - 1576: uint16(85), - 1577: uint16(193), - 1578: uint16(100), - 1579: uint16(193), - 1580: uint16(23), - 1581: uint16(90), - 1582: uint16(25), - 1583: uint16(121), - 1584: uint16(106), - 1585: uint16(107), - 1586: uint16(23), - 1587: uint16(216), - 1588: uint16(217), - 1589: uint16(216), - 1590: uint16(217), - 1591: uint16(100), - 1592: uint16(114), - 1593: uint16(131), - 1594: uint16(116), - 1595: uint16(117), - 1596: uint16(118), - 1597: uint16(106), - 1598: uint16(107), - 1599: uint16(121), - 1600: uint16(216), - 1601: uint16(217), - 1602: uint16(216), - 1603: uint16(217), - 1604: uint16(193), - 1605: uint16(114), - 1606: uint16(193), - 1607: uint16(116), - 1608: uint16(117), - 1609: uint16(118), - 1610: uint16(133), - 1611: uint16(22), - 1612: uint16(121), - 1613: uint16(193), - 1614: uint16(59), - 1615: uint16(138), - 1616: uint16(139), - 1617: uint16(193), - 1618: uint16(142), - 1619: uint16(193), - 1620: uint16(141), - 1621: uint16(23), - 1622: uint16(23), - 1623: uint16(25), - 1624: uint16(25), - 1625: uint16(120), - 1626: uint16(121), - 1627: uint16(216), - 1628: uint16(217), - 1629: uint16(216), - 1630: uint16(217), - 1631: uint16(153), - 1632: uint16(154), - 1633: uint16(155), - 1634: uint16(156), - 1635: uint16(157), - 1636: uint16(216), - 1637: uint16(217), - 1638: uint16(19), - 1639: uint16(162), - 1640: uint16(216), - 1641: uint16(217), - 1642: uint16(216), - 1643: uint16(217), - 1644: uint16(153), - 1645: uint16(154), - 1646: uint16(155), - 1647: uint16(156), - 1648: uint16(157), - 1649: uint16(1), - 1650: uint16(2), - 1651: uint16(193), - 1652: uint16(59), - 1653: uint16(5), - 1654: uint16(19), - 1655: uint16(20), - 1656: uint16(318), - 1657: uint16(22), - 1658: uint16(10), - 1659: uint16(11), - 1660: uint16(12), - 1661: uint16(13), - 1662: uint16(14), - 1663: uint16(193), - 1664: uint16(59), - 1665: uint16(17), - 1666: uint16(193), - 1667: uint16(23), - 1668: uint16(23), - 1669: uint16(25), - 1670: uint16(25), - 1671: uint16(36), - 1672: uint16(117), - 1673: uint16(193), - 1674: uint16(216), - 1675: uint16(217), - 1676: uint16(193), - 1677: uint16(23), - 1678: uint16(30), - 1679: uint16(25), - 1680: uint16(32), - 1681: uint16(19), - 1682: uint16(20), - 1683: uint16(23), - 1684: uint16(22), - 1685: uint16(25), - 1686: uint16(216), - 1687: uint16(217), - 1688: uint16(40), - 1689: uint16(216), + 1555: uint16(218), + 1556: uint16(194), + 1557: uint16(133), + 1558: uint16(53), + 1559: uint16(36), + 1560: uint16(23), + 1561: uint16(23), + 1562: uint16(25), + 1563: uint16(25), + 1564: uint16(70), + 1565: uint16(120), + 1566: uint16(121), + 1567: uint16(61), + 1568: uint16(141), + 1569: uint16(7), + 1570: uint16(8), + 1571: uint16(121), + 1572: uint16(78), + 1573: uint16(217), + 1574: uint16(218), + 1575: uint16(81), + 1576: uint16(23), + 1577: uint16(227), + 1578: uint16(25), + 1579: uint16(217), + 1580: uint16(218), + 1581: uint16(131), + 1582: uint16(59), + 1583: uint16(153), + 1584: uint16(154), + 1585: uint16(155), + 1586: uint16(156), + 1587: uint16(157), + 1589: uint16(1), + 1590: uint16(2), + 1591: uint16(59), + 1592: uint16(98), + 1593: uint16(5), + 1594: uint16(71), + 1595: uint16(23), + 1596: uint16(227), + 1597: uint16(25), + 1598: uint16(10), + 1599: uint16(11), + 1600: uint16(12), + 1601: uint16(13), + 1602: uint16(14), + 1603: uint16(83), + 1604: uint16(84), + 1605: uint16(17), + 1606: uint16(23), + 1607: uint16(23), + 1608: uint16(25), + 1609: uint16(25), + 1610: uint16(59), + 1611: uint16(194), + 1612: uint16(194), + 1613: uint16(183), + 1614: uint16(23), + 1615: uint16(23), + 1616: uint16(25), + 1617: uint16(25), + 1618: uint16(30), + 1619: uint16(194), + 1620: uint16(32), + 1621: uint16(19), + 1622: uint16(20), + 1623: uint16(100), + 1624: uint16(22), + 1625: uint16(194), + 1626: uint16(194), + 1627: uint16(133), + 1628: uint16(40), + 1629: uint16(106), + 1630: uint16(107), + 1631: uint16(108), + 1632: uint16(138), + 1633: uint16(139), + 1634: uint16(194), + 1635: uint16(217), + 1636: uint16(218), + 1637: uint16(114), + 1638: uint16(36), + 1639: uint16(116), + 1640: uint16(117), + 1641: uint16(118), + 1642: uint16(217), + 1643: uint16(218), + 1644: uint16(121), + 1645: uint16(194), + 1646: uint16(194), + 1647: uint16(194), + 1648: uint16(23), + 1649: uint16(117), + 1650: uint16(25), + 1651: uint16(194), + 1652: uint16(23), + 1653: uint16(23), + 1654: uint16(25), + 1655: uint16(25), + 1656: uint16(162), + 1657: uint16(194), + 1658: uint16(70), + 1659: uint16(194), + 1660: uint16(145), + 1661: uint16(59), + 1662: uint16(23), + 1663: uint16(153), + 1664: uint16(25), + 1665: uint16(155), + 1666: uint16(78), + 1667: uint16(194), + 1668: uint16(117), + 1669: uint16(81), + 1670: uint16(217), + 1671: uint16(218), + 1672: uint16(194), + 1673: uint16(71), + 1674: uint16(217), + 1675: uint16(218), + 1676: uint16(153), + 1677: uint16(154), + 1678: uint16(155), + 1679: uint16(156), + 1680: uint16(157), + 1681: uint16(194), + 1682: uint16(217), + 1683: uint16(218), + 1684: uint16(194), + 1685: uint16(23), + 1686: uint16(98), + 1687: uint16(25), + 1688: uint16(321), + 1689: uint16(194), 1690: uint16(217), - 1691: uint16(7), - 1692: uint16(8), - 1693: uint16(23), - 1694: uint16(59), - 1695: uint16(25), - 1696: uint16(83), - 1697: uint16(84), - 1698: uint16(36), - 1699: uint16(23), - 1700: uint16(193), - 1701: uint16(25), - 1702: uint16(23), - 1703: uint16(23), - 1704: uint16(25), - 1705: uint16(25), - 1706: uint16(71), - 1707: uint16(153), - 1708: uint16(145), - 1709: uint16(155), - 1710: uint16(117), - 1711: uint16(153), - 1712: uint16(23), - 1713: uint16(155), - 1714: uint16(25), - 1715: uint16(23), - 1716: uint16(97), - 1717: uint16(25), - 1718: uint16(70), - 1719: uint16(193), - 1720: uint16(193), - 1721: uint16(59), - 1722: uint16(117), - 1723: uint16(236), - 1724: uint16(193), - 1725: uint16(193), - 1726: uint16(78), - 1727: uint16(193), - 1728: uint16(193), - 1729: uint16(81), - 1730: uint16(141), - 1731: uint16(193), - 1732: uint16(193), - 1733: uint16(71), - 1734: uint16(193), - 1735: uint16(100), - 1736: uint16(288), - 1737: uint16(287), - 1738: uint16(242), - 1739: uint16(255), - 1740: uint16(255), - 1741: uint16(106), - 1742: uint16(107), - 1743: uint16(108), - 1744: uint16(255), - 1745: uint16(255), - 1746: uint16(98), - 1747: uint16(243), - 1748: uint16(297), - 1749: uint16(114), - 1750: uint16(214), - 1751: uint16(116), - 1752: uint16(117), - 1753: uint16(118), - 1754: uint16(245), - 1755: uint16(191), - 1756: uint16(121), - 1757: uint16(271), - 1758: uint16(293), - 1759: uint16(267), - 1760: uint16(267), - 1761: uint16(246), - 1762: uint16(100), - 1763: uint16(246), - 1764: uint16(245), - 1765: uint16(271), - 1766: uint16(271), - 1767: uint16(293), - 1768: uint16(106), - 1769: uint16(107), - 1770: uint16(220), - 1771: uint16(271), - 1772: uint16(229), - 1773: uint16(225), - 1774: uint16(249), - 1775: uint16(219), - 1776: uint16(114), - 1777: uint16(259), - 1778: uint16(116), - 1779: uint16(117), - 1780: uint16(118), - 1781: uint16(133), - 1782: uint16(259), - 1783: uint16(121), - 1784: uint16(219), - 1785: uint16(219), - 1786: uint16(138), - 1787: uint16(139), - 1788: uint16(153), - 1789: uint16(154), - 1790: uint16(155), - 1791: uint16(156), - 1792: uint16(157), - 1793: uint16(280), - 1794: uint16(249), - 1795: uint16(243), - 1796: uint16(19), - 1797: uint16(20), - 1798: uint16(245), - 1799: uint16(22), - 1800: uint16(196), - 1801: uint16(259), - 1802: uint16(140), - 1803: uint16(259), - 1804: uint16(60), - 1805: uint16(297), - 1806: uint16(141), - 1807: uint16(297), - 1808: uint16(200), - 1809: uint16(200), - 1810: uint16(162), - 1811: uint16(38), - 1812: uint16(200), - 1813: uint16(36), - 1814: uint16(294), - 1815: uint16(153), - 1816: uint16(154), - 1817: uint16(155), - 1818: uint16(156), - 1819: uint16(157), - 1820: uint16(151), - 1821: uint16(150), - 1822: uint16(294), - 1823: uint16(283), - 1824: uint16(22), - 1825: uint16(43), - 1826: uint16(234), - 1827: uint16(18), - 1828: uint16(237), - 1829: uint16(200), - 1830: uint16(270), - 1831: uint16(272), - 1832: uint16(237), - 1833: uint16(237), - 1834: uint16(237), - 1835: uint16(18), - 1836: uint16(59), - 1837: uint16(199), - 1838: uint16(270), - 1839: uint16(149), - 1840: uint16(246), - 1841: uint16(272), - 1842: uint16(272), - 1843: uint16(200), - 1844: uint16(234), - 1845: uint16(234), - 1846: uint16(246), - 1847: uint16(246), - 1848: uint16(71), - 1849: uint16(246), - 1850: uint16(199), - 1851: uint16(158), - 1852: uint16(290), - 1853: uint16(62), - 1854: uint16(22), - 1855: uint16(200), - 1856: uint16(19), - 1857: uint16(20), - 1858: uint16(199), - 1859: uint16(22), - 1860: uint16(289), - 1861: uint16(221), - 1862: uint16(221), - 1863: uint16(200), - 1864: uint16(200), - 1865: uint16(199), - 1866: uint16(199), - 1867: uint16(115), - 1868: uint16(218), - 1869: uint16(64), - 1870: uint16(218), - 1871: uint16(218), + 1691: uint16(218), + 1692: uint16(194), + 1693: uint16(19), + 1694: uint16(20), + 1695: uint16(194), + 1696: uint16(22), + 1697: uint16(153), + 1698: uint16(23), + 1699: uint16(155), + 1700: uint16(25), + 1701: uint16(194), + 1702: uint16(100), + 1703: uint16(194), + 1704: uint16(217), + 1705: uint16(218), + 1706: uint16(183), + 1707: uint16(194), + 1708: uint16(106), + 1709: uint16(107), + 1710: uint16(36), + 1711: uint16(194), + 1712: uint16(217), + 1713: uint16(218), + 1714: uint16(237), + 1715: uint16(194), + 1716: uint16(114), + 1717: uint16(243), + 1718: uint16(116), + 1719: uint16(117), + 1720: uint16(118), + 1721: uint16(133), + 1722: uint16(194), + 1723: uint16(121), + 1724: uint16(217), + 1725: uint16(218), + 1726: uint16(138), + 1727: uint16(139), + 1728: uint16(194), + 1729: uint16(194), + 1730: uint16(194), + 1731: uint16(290), + 1732: uint16(289), + 1733: uint16(59), + 1734: uint16(217), + 1735: uint16(218), + 1736: uint16(194), + 1737: uint16(194), + 1738: uint16(217), + 1739: uint16(218), + 1740: uint16(194), + 1741: uint16(194), + 1742: uint16(140), + 1743: uint16(194), + 1744: uint16(194), + 1745: uint16(71), + 1746: uint16(194), + 1747: uint16(244), + 1748: uint16(194), + 1749: uint16(194), + 1750: uint16(162), + 1751: uint16(217), + 1752: uint16(218), + 1753: uint16(194), + 1754: uint16(194), + 1755: uint16(153), + 1756: uint16(154), + 1757: uint16(155), + 1758: uint16(156), + 1759: uint16(157), + 1760: uint16(217), + 1761: uint16(218), + 1762: uint16(194), + 1763: uint16(217), + 1764: uint16(218), + 1765: uint16(194), + 1766: uint16(217), + 1767: uint16(218), + 1768: uint16(257), + 1769: uint16(217), + 1770: uint16(218), + 1771: uint16(217), + 1772: uint16(218), + 1773: uint16(257), + 1774: uint16(100), + 1775: uint16(194), + 1776: uint16(257), + 1777: uint16(217), + 1778: uint16(218), + 1779: uint16(257), + 1780: uint16(106), + 1781: uint16(107), + 1782: uint16(215), + 1783: uint16(299), + 1784: uint16(194), + 1785: uint16(183), + 1786: uint16(192), + 1787: uint16(194), + 1788: uint16(114), + 1789: uint16(194), + 1790: uint16(116), + 1791: uint16(117), + 1792: uint16(118), + 1793: uint16(1), + 1794: uint16(2), + 1795: uint16(121), + 1796: uint16(221), + 1797: uint16(5), + 1798: uint16(217), + 1799: uint16(218), + 1800: uint16(273), + 1801: uint16(197), + 1802: uint16(10), + 1803: uint16(11), + 1804: uint16(12), + 1805: uint16(13), + 1806: uint16(14), + 1807: uint16(217), + 1808: uint16(218), + 1809: uint16(17), + 1810: uint16(217), + 1811: uint16(218), + 1812: uint16(217), + 1813: uint16(218), + 1814: uint16(140), + 1815: uint16(194), + 1816: uint16(246), + 1817: uint16(194), + 1818: uint16(273), + 1819: uint16(295), + 1820: uint16(247), + 1821: uint16(273), + 1822: uint16(30), + 1823: uint16(247), + 1824: uint16(32), + 1825: uint16(269), + 1826: uint16(269), + 1827: uint16(153), + 1828: uint16(154), + 1829: uint16(155), + 1830: uint16(156), + 1831: uint16(157), + 1832: uint16(40), + 1833: uint16(246), + 1834: uint16(273), + 1835: uint16(295), + 1836: uint16(230), + 1837: uint16(226), + 1838: uint16(217), + 1839: uint16(218), + 1840: uint16(217), + 1841: uint16(218), + 1842: uint16(220), + 1843: uint16(261), + 1844: uint16(220), + 1845: uint16(282), + 1846: uint16(220), + 1847: uint16(19), + 1848: uint16(20), + 1849: uint16(244), + 1850: uint16(22), + 1851: uint16(250), + 1852: uint16(141), + 1853: uint16(250), + 1854: uint16(246), + 1855: uint16(60), + 1856: uint16(201), + 1857: uint16(183), + 1858: uint16(261), + 1859: uint16(261), + 1860: uint16(261), + 1861: uint16(201), + 1862: uint16(70), + 1863: uint16(299), + 1864: uint16(36), + 1865: uint16(299), + 1866: uint16(201), + 1867: uint16(38), + 1868: uint16(151), + 1869: uint16(150), + 1870: uint16(78), + 1871: uint16(285), 1872: uint16(22), - 1873: uint16(36), - 1874: uint16(227), - 1875: uint16(126), - 1876: uint16(227), - 1877: uint16(100), - 1878: uint16(165), - 1879: uint16(221), - 1880: uint16(224), - 1881: uint16(224), - 1882: uint16(24), - 1883: uint16(106), - 1884: uint16(107), - 1885: uint16(312), - 1886: uint16(218), - 1887: uint16(305), - 1888: uint16(113), - 1889: uint16(282), - 1890: uint16(91), - 1891: uint16(114), - 1892: uint16(220), - 1893: uint16(116), - 1894: uint16(117), - 1895: uint16(118), - 1896: uint16(59), - 1897: uint16(282), - 1898: uint16(121), - 1899: uint16(218), - 1900: uint16(218), - 1901: uint16(218), + 1873: uint16(81), + 1874: uint16(296), + 1875: uint16(296), + 1876: uint16(43), + 1877: uint16(235), + 1878: uint16(18), + 1879: uint16(238), + 1880: uint16(201), + 1881: uint16(274), + 1882: uint16(272), + 1883: uint16(238), + 1884: uint16(238), + 1885: uint16(238), + 1886: uint16(18), + 1887: uint16(59), + 1888: uint16(200), + 1889: uint16(149), + 1890: uint16(98), + 1891: uint16(247), + 1892: uint16(274), + 1893: uint16(274), + 1894: uint16(235), + 1895: uint16(247), + 1896: uint16(247), + 1897: uint16(247), + 1898: uint16(235), + 1899: uint16(71), + 1900: uint16(272), + 1901: uint16(201), 1902: uint16(200), - 1903: uint16(317), - 1904: uint16(317), - 1905: uint16(82), - 1906: uint16(221), - 1907: uint16(265), - 1908: uint16(71), - 1909: uint16(148), - 1910: uint16(145), - 1911: uint16(265), - 1912: uint16(22), - 1913: uint16(277), - 1914: uint16(200), - 1915: uint16(158), - 1916: uint16(279), - 1917: uint16(140), - 1918: uint16(147), - 1919: uint16(25), - 1920: uint16(146), - 1921: uint16(202), - 1922: uint16(248), - 1923: uint16(250), - 1924: uint16(249), - 1925: uint16(247), - 1926: uint16(13), - 1927: uint16(250), - 1928: uint16(194), - 1929: uint16(194), - 1930: uint16(153), - 1931: uint16(154), - 1932: uint16(155), - 1933: uint16(156), - 1934: uint16(157), - 1935: uint16(6), - 1936: uint16(303), - 1937: uint16(100), - 1938: uint16(192), - 1939: uint16(192), - 1940: uint16(246), - 1941: uint16(213), - 1942: uint16(192), - 1943: uint16(106), - 1944: uint16(107), - 1945: uint16(207), - 1946: uint16(213), - 1947: uint16(207), - 1948: uint16(222), - 1949: uint16(213), - 1950: uint16(213), - 1951: uint16(114), - 1952: uint16(222), - 1953: uint16(116), - 1954: uint16(117), - 1955: uint16(118), - 1956: uint16(214), - 1957: uint16(214), - 1958: uint16(121), - 1959: uint16(4), - 1960: uint16(207), - 1961: uint16(213), - 1962: uint16(3), - 1963: uint16(22), - 1964: uint16(303), - 1965: uint16(15), - 1966: uint16(163), - 1967: uint16(16), - 1968: uint16(23), - 1969: uint16(23), - 1970: uint16(139), - 1971: uint16(151), - 1972: uint16(130), - 1973: uint16(25), - 1974: uint16(20), - 1975: uint16(142), - 1976: uint16(24), - 1977: uint16(16), - 1978: uint16(144), - 1979: uint16(1), - 1980: uint16(142), - 1981: uint16(130), - 1982: uint16(130), - 1983: uint16(61), - 1984: uint16(37), - 1985: uint16(53), - 1986: uint16(300), - 1987: uint16(151), - 1988: uint16(53), - 1989: uint16(53), - 1990: uint16(153), - 1991: uint16(154), - 1992: uint16(155), - 1993: uint16(156), - 1994: uint16(157), - 1995: uint16(53), - 1996: uint16(130), - 1997: uint16(116), - 1998: uint16(34), - 1999: uint16(1), - 2000: uint16(141), - 2001: uint16(5), - 2002: uint16(22), - 2003: uint16(115), - 2004: uint16(161), - 2005: uint16(68), - 2006: uint16(25), - 2007: uint16(68), - 2008: uint16(75), - 2009: uint16(41), - 2010: uint16(141), - 2011: uint16(115), - 2012: uint16(24), - 2013: uint16(20), - 2014: uint16(19), - 2015: uint16(131), - 2016: uint16(125), - 2017: uint16(23), - 2018: uint16(28), - 2019: uint16(22), - 2020: uint16(67), - 2021: uint16(22), - 2022: uint16(22), - 2023: uint16(22), - 2024: uint16(67), - 2025: uint16(59), - 2026: uint16(24), - 2027: uint16(96), - 2028: uint16(22), - 2029: uint16(67), - 2030: uint16(23), - 2031: uint16(149), - 2032: uint16(22), - 2033: uint16(25), - 2034: uint16(23), - 2035: uint16(23), - 2036: uint16(23), - 2037: uint16(22), - 2038: uint16(34), - 2039: uint16(141), - 2040: uint16(37), - 2041: uint16(97), - 2042: uint16(23), - 2043: uint16(23), - 2044: uint16(116), - 2045: uint16(22), - 2046: uint16(143), - 2047: uint16(25), - 2048: uint16(34), - 2049: uint16(75), - 2050: uint16(34), - 2051: uint16(34), - 2052: uint16(34), - 2053: uint16(88), - 2054: uint16(75), - 2055: uint16(34), - 2056: uint16(86), - 2057: uint16(23), + 1903: uint16(158), + 1904: uint16(292), + 1905: uint16(62), + 1906: uint16(291), + 1907: uint16(201), + 1908: uint16(200), + 1909: uint16(22), + 1910: uint16(201), + 1911: uint16(222), + 1912: uint16(200), + 1913: uint16(222), + 1914: uint16(201), + 1915: uint16(200), + 1916: uint16(115), + 1917: uint16(219), + 1918: uint16(219), + 1919: uint16(64), + 1920: uint16(219), + 1921: uint16(228), + 1922: uint16(22), + 1923: uint16(126), + 1924: uint16(221), + 1925: uint16(133), + 1926: uint16(165), + 1927: uint16(222), + 1928: uint16(100), + 1929: uint16(225), + 1930: uint16(138), + 1931: uint16(139), + 1932: uint16(225), + 1933: uint16(219), + 1934: uint16(106), + 1935: uint16(107), + 1936: uint16(24), + 1937: uint16(219), + 1938: uint16(228), + 1939: uint16(219), + 1940: uint16(219), + 1941: uint16(307), + 1942: uint16(114), + 1943: uint16(113), + 1944: uint16(116), + 1945: uint16(117), + 1946: uint16(118), + 1947: uint16(315), + 1948: uint16(284), + 1949: uint16(121), + 1950: uint16(284), + 1951: uint16(222), + 1952: uint16(201), + 1953: uint16(91), + 1954: uint16(162), + 1955: uint16(320), + 1956: uint16(320), + 1957: uint16(82), + 1958: uint16(148), + 1959: uint16(267), + 1960: uint16(145), + 1961: uint16(267), + 1962: uint16(22), + 1963: uint16(279), + 1964: uint16(201), + 1965: uint16(158), + 1966: uint16(281), + 1967: uint16(251), + 1968: uint16(147), + 1969: uint16(146), + 1970: uint16(25), + 1971: uint16(203), + 1972: uint16(250), + 1973: uint16(249), + 1974: uint16(251), + 1975: uint16(248), + 1976: uint16(13), + 1977: uint16(247), + 1978: uint16(195), + 1979: uint16(195), + 1980: uint16(6), + 1981: uint16(153), + 1982: uint16(154), + 1983: uint16(155), + 1984: uint16(156), + 1985: uint16(157), + 1986: uint16(193), + 1987: uint16(193), + 1988: uint16(305), + 1989: uint16(193), + 1990: uint16(208), + 1991: uint16(305), + 1992: uint16(302), + 1993: uint16(214), + 1994: uint16(214), + 1995: uint16(214), + 1996: uint16(208), + 1997: uint16(223), + 1998: uint16(223), + 1999: uint16(214), + 2000: uint16(4), + 2001: uint16(215), + 2002: uint16(215), + 2003: uint16(214), + 2004: uint16(3), + 2005: uint16(22), + 2006: uint16(208), + 2007: uint16(163), + 2008: uint16(15), + 2009: uint16(23), + 2010: uint16(16), + 2011: uint16(183), + 2012: uint16(23), + 2013: uint16(139), + 2014: uint16(151), + 2015: uint16(130), + 2016: uint16(25), + 2017: uint16(20), + 2018: uint16(142), + 2019: uint16(24), + 2020: uint16(16), + 2021: uint16(144), + 2022: uint16(1), + 2023: uint16(142), + 2024: uint16(130), + 2025: uint16(130), + 2026: uint16(61), + 2027: uint16(37), + 2028: uint16(53), + 2029: uint16(151), + 2030: uint16(53), + 2031: uint16(53), + 2032: uint16(53), + 2033: uint16(130), + 2034: uint16(116), + 2035: uint16(1), + 2036: uint16(34), + 2037: uint16(141), + 2038: uint16(5), + 2039: uint16(22), + 2040: uint16(115), + 2041: uint16(161), + 2042: uint16(75), + 2043: uint16(25), + 2044: uint16(68), + 2045: uint16(141), + 2046: uint16(41), + 2047: uint16(115), + 2048: uint16(68), + 2049: uint16(24), + 2050: uint16(20), + 2051: uint16(19), + 2052: uint16(131), + 2053: uint16(125), + 2054: uint16(67), + 2055: uint16(67), + 2056: uint16(96), + 2057: uint16(22), 2058: uint16(22), - 2059: uint16(34), - 2060: uint16(93), - 2061: uint16(24), - 2062: uint16(34), - 2063: uint16(25), - 2064: uint16(25), - 2065: uint16(142), - 2066: uint16(142), + 2059: uint16(22), + 2060: uint16(37), + 2061: uint16(23), + 2062: uint16(22), + 2063: uint16(24), + 2064: uint16(22), + 2065: uint16(59), + 2066: uint16(67), 2067: uint16(23), - 2068: uint16(44), - 2069: uint16(23), - 2070: uint16(23), - 2071: uint16(23), + 2068: uint16(149), + 2069: uint16(28), + 2070: uint16(22), + 2071: uint16(25), 2072: uint16(23), - 2073: uint16(11), + 2073: uint16(23), 2074: uint16(23), - 2075: uint16(25), - 2076: uint16(22), - 2077: uint16(22), - 2078: uint16(22), - 2079: uint16(141), + 2075: uint16(22), + 2076: uint16(141), + 2077: uint16(34), + 2078: uint16(97), + 2079: uint16(23), 2080: uint16(23), - 2081: uint16(23), - 2082: uint16(22), + 2081: uint16(34), + 2082: uint16(116), 2083: uint16(22), - 2084: uint16(25), - 2085: uint16(15), - 2086: uint16(1), - 2087: uint16(23), - 2088: uint16(25), - 2089: uint16(1), - 2090: uint16(141), - 2091: uint16(135), - 2092: uint16(319), - 2093: uint16(319), - 2094: uint16(319), - 2095: uint16(319), - 2096: uint16(319), - 2097: uint16(319), - 2098: uint16(319), - 2099: uint16(141), - 2100: uint16(319), - 2101: uint16(319), - 2102: uint16(319), - 2103: uint16(319), - 2104: uint16(319), - 2105: uint16(319), - 2106: uint16(319), - 2107: uint16(319), - 2108: uint16(319), - 2109: uint16(319), - 2110: uint16(319), - 2111: uint16(319), - 2112: uint16(319), - 2113: uint16(319), - 2114: uint16(319), - 2115: uint16(319), - 2116: uint16(319), - 2117: uint16(319), - 2118: uint16(319), - 2119: uint16(319), - 2120: uint16(319), - 2121: uint16(319), - 2122: uint16(319), - 2123: uint16(319), - 2124: uint16(319), - 2125: uint16(319), - 2126: uint16(319), - 2127: uint16(319), - 2128: uint16(319), - 2129: uint16(319), - 2130: uint16(319), - 2131: uint16(319), - 2132: uint16(319), - 2133: uint16(319), - 2134: uint16(319), - 2135: uint16(319), - 2136: uint16(319), - 2137: uint16(319), - 2138: uint16(319), - 2139: uint16(319), - 2140: uint16(319), - 2141: uint16(319), - 2142: uint16(319), - 2143: uint16(319), - 2144: uint16(319), - 2145: uint16(319), - 2146: uint16(319), - 2147: uint16(319), - 2148: uint16(319), - 2149: uint16(319), - 2150: uint16(319), - 2151: uint16(319), - 2152: uint16(319), - 2153: uint16(319), - 2154: uint16(319), - 2155: uint16(319), - 2156: uint16(319), - 2157: uint16(319), - 2158: uint16(319), - 2159: uint16(319), - 2160: uint16(319), - 2161: uint16(319), - 2162: uint16(319), - 2163: uint16(319), - 2164: uint16(319), - 2165: uint16(319), - 2166: uint16(319), - 2167: uint16(319), - 2168: uint16(319), - 2169: uint16(319), - 2170: uint16(319), - 2171: uint16(319), - 2172: uint16(319), - 2173: uint16(319), - 2174: uint16(319), - 2175: uint16(319), - 2176: uint16(319), - 2177: uint16(319), - 2178: uint16(319), - 2179: uint16(319), - 2180: uint16(319), - 2181: uint16(319), - 2182: uint16(319), - 2183: uint16(319), - 2184: uint16(319), - 2185: uint16(319), - 2186: uint16(319), - 2187: uint16(319), - 2188: uint16(319), - 2189: uint16(319), - 2190: uint16(319), - 2191: uint16(319), - 2192: uint16(319), - 2193: uint16(319), - 2194: uint16(319), - 2195: uint16(319), - 2196: uint16(319), - 2197: uint16(319), - 2198: uint16(319), - 2199: uint16(319), - 2200: uint16(319), - 2201: uint16(319), - 2202: uint16(319), - 2203: uint16(319), - 2204: uint16(319), - 2205: uint16(319), - 2206: uint16(319), - 2207: uint16(319), - 2208: uint16(319), - 2209: uint16(319), - 2210: uint16(319), - 2211: uint16(319), - 2212: uint16(319), - 2213: uint16(319), - 2214: uint16(319), - 2215: uint16(319), - 2216: uint16(319), - 2217: uint16(319), - 2218: uint16(319), - 2219: uint16(319), - 2220: uint16(319), - 2221: uint16(319), - 2222: uint16(319), - 2223: uint16(319), - 2224: uint16(319), - 2225: uint16(319), - 2226: uint16(319), - 2227: uint16(319), - 2228: uint16(319), - 2229: uint16(319), - 2230: uint16(319), - 2231: uint16(319), - 2232: uint16(319), - 2233: uint16(319), - 2234: uint16(319), - 2235: uint16(319), - 2236: uint16(319), - 2237: uint16(319), - 2238: uint16(319), - 2239: uint16(319), - 2240: uint16(319), - 2241: uint16(319), - 2242: uint16(319), - 2243: uint16(319), - 2244: uint16(319), - 2245: uint16(319), - 2246: uint16(319), - 2247: uint16(319), - 2248: uint16(319), - 2249: uint16(319), - 2250: uint16(319), - 2251: uint16(319), - 2252: uint16(319), - 2253: uint16(319), - 2254: uint16(319), - 2255: uint16(319), - 2256: uint16(319), - 2257: uint16(319), - 2258: uint16(319), - 2259: uint16(319), - 2260: uint16(319), - 2261: uint16(319), - 2262: uint16(319), - 2263: uint16(319), - 2264: uint16(319), - 2265: uint16(319), - 2266: uint16(319), - 2267: uint16(319), - 2268: uint16(319), - 2269: uint16(319), - 2270: uint16(319), - 2271: uint16(319), - 2272: uint16(319), - 2273: uint16(319), - 2274: uint16(319), - 2275: uint16(319), - 2276: uint16(319), - 2277: uint16(319), - 2278: uint16(319), - 2279: uint16(319), - 2280: uint16(319), - 2281: uint16(319), - 2282: uint16(319), - 2283: uint16(319), - 2284: uint16(319), -} -var _yy_shift_ofst = [579]uint16{ - 0: uint16(1648), - 1: uint16(1477), - 2: uint16(1272), + 2084: uint16(143), + 2085: uint16(25), + 2086: uint16(34), + 2087: uint16(75), + 2088: uint16(34), + 2089: uint16(34), + 2090: uint16(75), + 2091: uint16(88), + 2092: uint16(34), + 2093: uint16(86), + 2094: uint16(23), + 2095: uint16(22), + 2096: uint16(34), + 2097: uint16(25), + 2098: uint16(24), + 2099: uint16(34), + 2100: uint16(25), + 2101: uint16(93), + 2102: uint16(23), + 2103: uint16(44), + 2104: uint16(142), + 2105: uint16(23), + 2106: uint16(142), + 2107: uint16(23), + 2108: uint16(23), + 2109: uint16(22), + 2110: uint16(11), + 2111: uint16(25), + 2112: uint16(23), + 2113: uint16(25), + 2114: uint16(23), + 2115: uint16(22), + 2116: uint16(22), + 2117: uint16(22), + 2118: uint16(1), + 2119: uint16(23), + 2120: uint16(23), + 2121: uint16(23), + 2122: uint16(22), + 2123: uint16(22), + 2124: uint16(15), + 2125: uint16(141), + 2126: uint16(141), + 2127: uint16(25), + 2128: uint16(25), + 2129: uint16(1), + 2130: uint16(322), + 2131: uint16(322), + 2132: uint16(322), + 2133: uint16(135), + 2134: uint16(322), + 2135: uint16(322), + 2136: uint16(322), + 2137: uint16(322), + 2138: uint16(322), + 2139: uint16(322), + 2140: uint16(322), + 2141: uint16(141), + 2142: uint16(322), + 2143: uint16(322), + 2144: uint16(322), + 2145: uint16(322), + 2146: uint16(322), + 2147: uint16(322), + 2148: uint16(322), + 2149: uint16(322), + 2150: uint16(322), + 2151: uint16(322), + 2152: uint16(322), + 2153: uint16(322), + 2154: uint16(322), + 2155: uint16(322), + 2156: uint16(322), + 2157: uint16(322), + 2158: uint16(322), + 2159: uint16(322), + 2160: uint16(322), + 2161: uint16(322), + 2162: uint16(322), + 2163: uint16(322), + 2164: uint16(322), + 2165: uint16(322), + 2166: uint16(322), + 2167: uint16(322), + 2168: uint16(322), + 2169: uint16(322), + 2170: uint16(322), + 2171: uint16(322), + 2172: uint16(322), + 2173: uint16(322), + 2174: uint16(322), + 2175: uint16(322), + 2176: uint16(322), + 2177: uint16(322), + 2178: uint16(322), + 2179: uint16(322), + 2180: uint16(322), + 2181: uint16(322), + 2182: uint16(322), + 2183: uint16(322), + 2184: uint16(322), + 2185: uint16(322), + 2186: uint16(322), + 2187: uint16(322), + 2188: uint16(322), + 2189: uint16(322), + 2190: uint16(322), + 2191: uint16(322), + 2192: uint16(322), + 2193: uint16(322), + 2194: uint16(322), + 2195: uint16(322), + 2196: uint16(322), + 2197: uint16(322), + 2198: uint16(322), + 2199: uint16(322), + 2200: uint16(322), + 2201: uint16(322), + 2202: uint16(322), + 2203: uint16(322), + 2204: uint16(322), + 2205: uint16(322), + 2206: uint16(322), + 2207: uint16(322), + 2208: uint16(322), + 2209: uint16(322), + 2210: uint16(322), + 2211: uint16(322), + 2212: uint16(322), + 2213: uint16(322), + 2214: uint16(322), + 2215: uint16(322), + 2216: uint16(322), + 2217: uint16(322), + 2218: uint16(322), + 2219: uint16(322), + 2220: uint16(322), + 2221: uint16(322), + 2222: uint16(322), + 2223: uint16(322), + 2224: uint16(322), + 2225: uint16(322), + 2226: uint16(322), + 2227: uint16(322), + 2228: uint16(322), + 2229: uint16(322), + 2230: uint16(322), + 2231: uint16(322), + 2232: uint16(322), + 2233: uint16(322), + 2234: uint16(322), + 2235: uint16(322), + 2236: uint16(322), + 2237: uint16(322), + 2238: uint16(322), + 2239: uint16(322), + 2240: uint16(322), + 2241: uint16(322), + 2242: uint16(322), + 2243: uint16(322), + 2244: uint16(322), + 2245: uint16(322), + 2246: uint16(322), + 2247: uint16(322), + 2248: uint16(322), + 2249: uint16(322), + 2250: uint16(322), + 2251: uint16(322), + 2252: uint16(322), + 2253: uint16(322), + 2254: uint16(322), + 2255: uint16(322), + 2256: uint16(322), + 2257: uint16(322), + 2258: uint16(322), + 2259: uint16(322), + 2260: uint16(322), + 2261: uint16(322), + 2262: uint16(322), + 2263: uint16(322), + 2264: uint16(322), + 2265: uint16(322), + 2266: uint16(322), + 2267: uint16(322), + 2268: uint16(322), + 2269: uint16(322), + 2270: uint16(322), + 2271: uint16(322), + 2272: uint16(322), + 2273: uint16(322), + 2274: uint16(322), + 2275: uint16(322), + 2276: uint16(322), + 2277: uint16(322), + 2278: uint16(322), + 2279: uint16(322), + 2280: uint16(322), + 2281: uint16(322), + 2282: uint16(322), + 2283: uint16(322), + 2284: uint16(322), + 2285: uint16(322), + 2286: uint16(322), + 2287: uint16(322), + 2288: uint16(322), + 2289: uint16(322), + 2290: uint16(322), + 2291: uint16(322), + 2292: uint16(322), + 2293: uint16(322), + 2294: uint16(322), + 2295: uint16(322), + 2296: uint16(322), + 2297: uint16(322), + 2298: uint16(322), + 2299: uint16(322), + 2300: uint16(322), + 2301: uint16(322), + 2302: uint16(322), + 2303: uint16(322), + 2304: uint16(322), + 2305: uint16(322), + 2306: uint16(322), + 2307: uint16(322), + 2308: uint16(322), + 2309: uint16(322), + 2310: uint16(322), + 2311: uint16(322), + 2312: uint16(322), + 2313: uint16(322), + 2314: uint16(322), + 2315: uint16(322), + 2316: uint16(322), + 2317: uint16(322), + 2318: uint16(322), + 2319: uint16(322), + 2320: uint16(322), + 2321: uint16(322), + 2322: uint16(322), + 2323: uint16(322), + 2324: uint16(322), + 2325: uint16(322), + 2326: uint16(322), + 2327: uint16(322), +} +var _yy_shift_ofst = [583]uint16{ + 0: uint16(1792), + 1: uint16(1588), + 2: uint16(1494), 3: uint16(322), 4: uint16(322), - 5: uint16(1), - 6: uint16(1319), - 7: uint16(1478), - 8: uint16(1491), - 9: uint16(1837), - 10: uint16(1837), - 11: uint16(1837), - 12: uint16(471), - 15: uint16(214), - 16: uint16(1093), - 17: uint16(1837), - 18: uint16(1837), - 19: uint16(1837), - 20: uint16(1837), - 21: uint16(1837), - 22: uint16(1837), - 23: uint16(1837), - 24: uint16(1837), - 25: uint16(1837), - 26: uint16(1837), - 27: uint16(1837), - 28: uint16(1837), - 29: uint16(1837), - 30: uint16(1837), - 31: uint16(271), - 32: uint16(271), - 33: uint16(1219), - 34: uint16(1219), - 35: uint16(216), - 36: uint16(88), - 37: uint16(1), - 38: uint16(1), - 39: uint16(1), - 40: uint16(1), - 41: uint16(1), - 42: uint16(40), - 43: uint16(111), - 44: uint16(258), - 45: uint16(361), - 46: uint16(469), - 47: uint16(512), - 48: uint16(583), - 49: uint16(622), - 50: uint16(693), - 51: uint16(732), - 52: uint16(803), - 53: uint16(842), - 54: uint16(913), - 55: uint16(1073), - 56: uint16(1093), - 57: uint16(1093), - 58: uint16(1093), - 59: uint16(1093), - 60: uint16(1093), - 61: uint16(1093), - 62: uint16(1093), - 63: uint16(1093), - 64: uint16(1093), + 5: uint16(399), + 6: uint16(306), + 7: uint16(1319), + 8: uint16(1339), + 9: uint16(1430), + 10: uint16(1828), + 11: uint16(1828), + 12: uint16(1828), + 13: uint16(580), + 14: uint16(399), + 15: uint16(399), + 16: uint16(399), + 17: uint16(399), + 18: uint16(399), + 21: uint16(214), + 22: uint16(1093), + 23: uint16(1828), + 24: uint16(1828), + 25: uint16(1828), + 26: uint16(1828), + 27: uint16(1828), + 28: uint16(1828), + 29: uint16(1828), + 30: uint16(1828), + 31: uint16(1828), + 32: uint16(1828), + 33: uint16(1828), + 34: uint16(1828), + 35: uint16(1828), + 36: uint16(1828), + 37: uint16(1828), + 38: uint16(1130), + 39: uint16(1130), + 40: uint16(365), + 41: uint16(365), + 42: uint16(55), + 43: uint16(278), + 44: uint16(436), + 45: uint16(713), + 46: uint16(713), + 47: uint16(201), + 48: uint16(201), + 49: uint16(201), + 50: uint16(201), + 51: uint16(40), + 52: uint16(111), + 53: uint16(258), + 54: uint16(361), + 55: uint16(469), + 56: uint16(512), + 57: uint16(583), + 58: uint16(622), + 59: uint16(693), + 60: uint16(732), + 61: uint16(803), + 62: uint16(842), + 63: uint16(913), + 64: uint16(1073), 65: uint16(1093), 66: uint16(1093), 67: uint16(1093), @@ -151223,1505 +152717,1514 @@ var _yy_shift_ofst = [579]uint16{ 71: uint16(1093), 72: uint16(1093), 73: uint16(1093), - 74: uint16(1113), + 74: uint16(1093), 75: uint16(1093), - 76: uint16(1216), - 77: uint16(957), - 78: uint16(957), - 79: uint16(1635), - 80: uint16(1662), - 81: uint16(1777), - 82: uint16(1837), - 83: uint16(1837), - 84: uint16(1837), - 85: uint16(1837), - 86: uint16(1837), - 87: uint16(1837), - 88: uint16(1837), - 89: uint16(1837), - 90: uint16(1837), - 91: uint16(1837), - 92: uint16(1837), - 93: uint16(1837), - 94: uint16(1837), - 95: uint16(1837), - 96: uint16(1837), - 97: uint16(1837), - 98: uint16(1837), - 99: uint16(1837), - 100: uint16(1837), - 101: uint16(1837), - 102: uint16(1837), - 103: uint16(1837), - 104: uint16(1837), - 105: uint16(1837), - 106: uint16(1837), - 107: uint16(1837), - 108: uint16(1837), - 109: uint16(1837), - 110: uint16(1837), - 111: uint16(1837), - 112: uint16(1837), - 113: uint16(1837), - 114: uint16(1837), - 115: uint16(1837), - 116: uint16(1837), - 117: uint16(1837), - 118: uint16(1837), - 119: uint16(1837), - 120: uint16(1837), - 121: uint16(1837), - 122: uint16(1837), - 123: uint16(1837), - 124: uint16(1837), - 125: uint16(1837), - 126: uint16(1837), - 127: uint16(1837), - 128: uint16(1837), - 129: uint16(1837), - 130: uint16(1837), - 131: uint16(137), - 132: uint16(181), - 133: uint16(181), - 134: uint16(181), - 135: uint16(181), - 136: uint16(181), - 137: uint16(181), - 138: uint16(181), - 139: uint16(94), - 140: uint16(430), - 141: uint16(66), - 142: uint16(65), - 143: uint16(112), - 144: uint16(366), - 145: uint16(533), - 146: uint16(533), - 147: uint16(740), - 148: uint16(1257), - 149: uint16(533), - 150: uint16(533), - 151: uint16(79), - 152: uint16(79), - 153: uint16(533), - 154: uint16(412), - 155: uint16(412), - 156: uint16(412), - 157: uint16(77), - 158: uint16(412), - 159: uint16(123), - 160: uint16(113), - 161: uint16(113), - 162: uint16(113), - 163: uint16(22), - 164: uint16(22), - 165: uint16(2100), - 166: uint16(2100), - 167: uint16(328), - 168: uint16(328), - 169: uint16(328), - 170: uint16(239), - 171: uint16(468), - 172: uint16(468), - 173: uint16(468), - 174: uint16(468), - 175: uint16(1015), - 176: uint16(1015), - 177: uint16(409), - 178: uint16(366), - 179: uint16(1187), - 180: uint16(1232), - 181: uint16(533), - 182: uint16(533), - 183: uint16(533), - 184: uint16(533), - 185: uint16(533), - 186: uint16(533), - 187: uint16(533), - 188: uint16(533), - 189: uint16(533), - 190: uint16(533), - 191: uint16(533), - 192: uint16(533), - 193: uint16(533), - 194: uint16(533), - 195: uint16(533), - 196: uint16(533), - 197: uint16(533), - 198: uint16(533), - 199: uint16(533), - 200: uint16(533), - 201: uint16(969), - 202: uint16(621), - 203: uint16(621), - 204: uint16(533), - 205: uint16(642), - 206: uint16(788), - 207: uint16(788), - 208: uint16(1133), - 209: uint16(1133), - 210: uint16(822), - 211: uint16(822), - 212: uint16(67), - 213: uint16(1193), - 214: uint16(2100), - 215: uint16(2100), - 216: uint16(2100), - 217: uint16(2100), - 218: uint16(2100), - 219: uint16(2100), - 220: uint16(2100), - 221: uint16(1307), - 222: uint16(954), - 223: uint16(954), - 224: uint16(585), - 225: uint16(472), - 226: uint16(640), - 227: uint16(387), - 228: uint16(695), - 229: uint16(538), - 230: uint16(541), - 231: uint16(700), - 232: uint16(533), - 233: uint16(533), - 234: uint16(533), - 235: uint16(533), - 236: uint16(533), - 237: uint16(533), - 238: uint16(533), - 239: uint16(533), - 240: uint16(533), - 241: uint16(533), - 242: uint16(222), - 243: uint16(533), - 244: uint16(533), - 245: uint16(533), - 246: uint16(533), - 247: uint16(533), - 248: uint16(533), - 249: uint16(533), - 250: uint16(533), - 251: uint16(533), - 252: uint16(533), - 253: uint16(533), - 254: uint16(533), - 255: uint16(1213), - 256: uint16(1213), - 257: uint16(1213), - 258: uint16(533), - 259: uint16(533), - 260: uint16(533), - 261: uint16(565), - 262: uint16(533), - 263: uint16(533), - 264: uint16(533), - 265: uint16(916), - 266: uint16(1147), - 267: uint16(533), - 268: uint16(533), - 269: uint16(1288), - 270: uint16(533), - 271: uint16(533), - 272: uint16(533), - 273: uint16(533), - 274: uint16(533), - 275: uint16(533), - 276: uint16(533), - 277: uint16(533), - 278: uint16(639), - 279: uint16(1280), - 280: uint16(209), - 281: uint16(1129), - 282: uint16(1129), - 283: uint16(1129), - 284: uint16(1129), - 285: uint16(580), - 286: uint16(209), - 287: uint16(209), - 288: uint16(1209), - 289: uint16(768), - 290: uint16(917), - 291: uint16(649), - 292: uint16(1315), - 293: uint16(1334), - 294: uint16(405), - 295: uint16(1334), - 296: uint16(1383), - 297: uint16(249), - 298: uint16(1315), - 299: uint16(1315), - 300: uint16(249), - 301: uint16(1315), - 302: uint16(405), - 303: uint16(1383), - 304: uint16(1441), - 305: uint16(464), - 306: uint16(1245), - 307: uint16(1417), - 308: uint16(1417), - 309: uint16(1417), - 310: uint16(1323), - 311: uint16(1323), - 312: uint16(1323), - 313: uint16(1323), - 314: uint16(184), - 315: uint16(184), - 316: uint16(1335), - 317: uint16(1476), - 318: uint16(856), - 319: uint16(1482), - 320: uint16(1744), - 321: uint16(1744), - 322: uint16(1665), - 323: uint16(1665), - 324: uint16(1773), - 325: uint16(1773), - 326: uint16(1665), - 327: uint16(1669), - 328: uint16(1671), - 329: uint16(1802), - 330: uint16(1782), - 331: uint16(1809), - 332: uint16(1809), - 333: uint16(1809), - 334: uint16(1809), - 335: uint16(1665), - 336: uint16(1817), - 337: uint16(1690), - 338: uint16(1671), - 339: uint16(1671), - 340: uint16(1690), - 341: uint16(1802), - 342: uint16(1782), - 343: uint16(1690), - 344: uint16(1782), - 345: uint16(1690), - 346: uint16(1665), - 347: uint16(1817), - 348: uint16(1693), - 349: uint16(1791), - 350: uint16(1665), - 351: uint16(1817), - 352: uint16(1832), - 353: uint16(1665), - 354: uint16(1817), - 355: uint16(1665), - 356: uint16(1817), - 357: uint16(1832), - 358: uint16(1752), - 359: uint16(1752), - 360: uint16(1752), - 361: uint16(1805), - 362: uint16(1850), - 363: uint16(1850), - 364: uint16(1832), - 365: uint16(1752), - 366: uint16(1749), - 367: uint16(1752), - 368: uint16(1805), - 369: uint16(1752), - 370: uint16(1752), - 371: uint16(1713), - 372: uint16(1858), - 373: uint16(1775), - 374: uint16(1775), - 375: uint16(1832), - 376: uint16(1665), - 377: uint16(1799), - 378: uint16(1799), - 379: uint16(1823), - 380: uint16(1823), - 381: uint16(1761), - 382: uint16(1765), - 383: uint16(1890), - 384: uint16(1665), - 385: uint16(1757), - 386: uint16(1761), - 387: uint16(1771), - 388: uint16(1774), - 389: uint16(1690), - 390: uint16(1894), - 391: uint16(1913), - 392: uint16(1913), - 393: uint16(1929), - 394: uint16(1929), - 395: uint16(1929), - 396: uint16(2100), - 397: uint16(2100), - 398: uint16(2100), - 399: uint16(2100), - 400: uint16(2100), - 401: uint16(2100), - 402: uint16(2100), - 403: uint16(2100), - 404: uint16(2100), - 405: uint16(2100), - 406: uint16(2100), - 407: uint16(2100), - 408: uint16(2100), - 409: uint16(2100), - 410: uint16(2100), - 411: uint16(207), - 412: uint16(1220), - 413: uint16(331), - 414: uint16(620), - 415: uint16(967), - 416: uint16(806), - 417: uint16(1074), - 418: uint16(1499), - 419: uint16(1432), - 420: uint16(1463), - 421: uint16(1479), - 422: uint16(1419), - 423: uint16(1422), - 424: uint16(1557), - 425: uint16(1512), - 426: uint16(1598), - 427: uint16(1599), - 428: uint16(1644), - 429: uint16(1645), - 430: uint16(1654), - 431: uint16(1660), - 432: uint16(1555), - 433: uint16(1505), - 434: uint16(1684), - 435: uint16(1462), - 436: uint16(1670), - 437: uint16(1563), - 438: uint16(1619), - 439: uint16(1593), - 440: uint16(1676), - 441: uint16(1679), - 442: uint16(1613), - 443: uint16(1680), - 444: uint16(1554), - 445: uint16(1558), - 446: uint16(1689), - 447: uint16(1692), - 448: uint16(1605), - 449: uint16(1589), - 450: uint16(1955), - 451: uint16(1959), - 452: uint16(1941), - 453: uint16(1803), - 454: uint16(1950), - 455: uint16(1951), - 456: uint16(1945), - 457: uint16(1946), - 458: uint16(1831), - 459: uint16(1820), - 460: uint16(1842), - 461: uint16(1948), - 462: uint16(1948), - 463: uint16(1952), - 464: uint16(1833), - 465: uint16(1954), - 466: uint16(1834), - 467: uint16(1961), - 468: uint16(1978), - 469: uint16(1838), - 470: uint16(1851), - 471: uint16(1948), - 472: uint16(1852), - 473: uint16(1922), - 474: uint16(1947), - 475: uint16(1948), - 476: uint16(1836), - 477: uint16(1932), - 478: uint16(1935), - 479: uint16(1936), - 480: uint16(1942), - 481: uint16(1866), - 482: uint16(1881), - 483: uint16(1964), - 484: uint16(1859), - 485: uint16(1998), - 486: uint16(1996), - 487: uint16(1980), - 488: uint16(1888), - 489: uint16(1843), - 490: uint16(1937), - 491: uint16(1981), - 492: uint16(1939), - 493: uint16(1933), - 494: uint16(1968), - 495: uint16(1869), - 496: uint16(1896), - 497: uint16(1988), - 498: uint16(1993), - 499: uint16(1995), - 500: uint16(1884), - 501: uint16(1891), - 502: uint16(1997), - 503: uint16(1953), - 504: uint16(1999), - 505: uint16(2000), - 506: uint16(1994), - 507: uint16(2001), - 508: uint16(1957), - 509: uint16(1966), - 510: uint16(2002), - 511: uint16(1931), - 512: uint16(1990), - 513: uint16(2006), - 514: uint16(1962), - 515: uint16(2003), - 516: uint16(2007), - 517: uint16(2004), - 518: uint16(1882), - 519: uint16(2010), - 520: uint16(2011), - 521: uint16(2012), - 522: uint16(2008), - 523: uint16(2013), - 524: uint16(2015), - 525: uint16(1944), - 526: uint16(1898), - 527: uint16(2019), - 528: uint16(2020), - 529: uint16(1928), - 530: uint16(2014), - 531: uint16(2023), - 532: uint16(1903), - 533: uint16(2022), - 534: uint16(2016), - 535: uint16(2017), - 536: uint16(2018), - 537: uint16(2021), - 538: uint16(1965), - 539: uint16(1974), - 540: uint16(1970), - 541: uint16(2024), - 542: uint16(1979), - 543: uint16(1967), - 544: uint16(2025), - 545: uint16(2034), - 546: uint16(2036), - 547: uint16(2037), - 548: uint16(2038), - 549: uint16(2039), - 550: uint16(2028), - 551: uint16(1923), - 552: uint16(1924), - 553: uint16(2044), - 554: uint16(2022), - 555: uint16(2046), - 556: uint16(2047), - 557: uint16(2048), - 558: uint16(2049), - 559: uint16(2050), - 560: uint16(2051), - 561: uint16(2054), - 562: uint16(2062), - 563: uint16(2055), - 564: uint16(2056), - 565: uint16(2057), - 566: uint16(2058), - 567: uint16(2060), - 568: uint16(2061), - 569: uint16(2059), - 570: uint16(1956), - 571: uint16(1938), - 572: uint16(1949), - 573: uint16(1958), - 574: uint16(2063), - 575: uint16(2064), - 576: uint16(2070), - 577: uint16(2085), - 578: uint16(2088), -} -var _yy_reduce_ofst = [411]int16{ - 0: int16(-int32(125)), - 1: int16(733), - 2: int16(789), - 3: int16(241), - 4: int16(293), - 5: int16(-int32(123)), - 6: int16(-int32(193)), - 7: int16(-int32(191)), - 8: int16(-int32(183)), - 9: int16(-int32(187)), - 10: int16(166), - 11: int16(238), - 12: int16(133), - 13: int16(-int32(207)), - 14: int16(-int32(199)), - 15: int16(-int32(267)), - 16: int16(-int32(176)), - 17: int16(-int32(6)), - 18: int16(204), - 19: int16(489), - 20: int16(576), - 21: int16(598), - 22: int16(-int32(175)), - 23: int16(686), - 24: int16(860), - 25: int16(615), - 26: int16(725), - 27: int16(1014), - 28: int16(778), - 29: int16(781), - 30: int16(857), - 31: int16(616), - 32: int16(887), - 33: int16(87), - 34: int16(240), - 35: int16(-int32(192)), - 36: int16(408), - 37: int16(626), - 38: int16(796), - 39: int16(843), - 40: int16(854), - 41: int16(1004), - 42: int16(-int32(271)), - 43: int16(-int32(271)), - 44: int16(-int32(271)), - 45: int16(-int32(271)), - 46: int16(-int32(271)), - 47: int16(-int32(271)), - 48: int16(-int32(271)), - 49: int16(-int32(271)), - 50: int16(-int32(271)), - 51: int16(-int32(271)), - 52: int16(-int32(271)), - 53: int16(-int32(271)), - 54: int16(-int32(271)), - 55: int16(-int32(271)), - 56: int16(-int32(271)), - 57: int16(-int32(271)), - 58: int16(-int32(271)), - 59: int16(-int32(271)), - 60: int16(-int32(271)), - 61: int16(-int32(271)), - 62: int16(-int32(271)), - 63: int16(-int32(271)), - 64: int16(-int32(271)), - 65: int16(-int32(271)), - 66: int16(-int32(271)), - 67: int16(-int32(271)), - 68: int16(-int32(271)), - 69: int16(-int32(271)), - 70: int16(-int32(271)), - 71: int16(-int32(271)), - 72: int16(-int32(271)), - 73: int16(-int32(271)), - 74: int16(-int32(271)), - 75: int16(-int32(271)), - 76: int16(-int32(271)), - 77: int16(-int32(271)), - 78: int16(-int32(271)), - 79: int16(80), - 80: int16(83), - 81: int16(313), - 82: int16(886), - 83: int16(888), - 84: int16(918), - 85: int16(938), - 86: int16(1021), - 87: int16(1034), - 88: int16(1036), - 89: int16(1141), - 90: int16(1159), - 91: int16(1163), - 92: int16(1166), - 93: int16(1168), - 94: int16(1170), - 95: int16(1176), - 96: int16(1178), - 97: int16(1180), - 98: int16(1184), - 99: int16(1196), - 100: int16(1198), - 101: int16(1205), - 102: int16(1215), - 103: int16(1225), - 104: int16(1227), - 105: int16(1236), - 106: int16(1252), - 107: int16(1254), - 108: int16(1264), - 109: int16(1303), - 110: int16(1309), - 111: int16(1312), - 112: int16(1322), - 113: int16(1325), - 114: int16(1328), - 115: int16(1337), - 116: int16(1340), - 117: int16(1343), - 118: int16(1353), - 119: int16(1371), - 120: int16(1373), - 121: int16(1384), - 122: int16(1386), - 123: int16(1411), - 124: int16(1413), - 125: int16(1420), - 126: int16(1424), - 127: int16(1426), - 128: int16(1458), - 129: int16(1470), - 130: int16(1473), - 131: int16(-int32(271)), - 132: int16(-int32(271)), - 133: int16(-int32(271)), - 134: int16(-int32(271)), - 135: int16(-int32(271)), - 136: int16(-int32(271)), - 137: int16(-int32(271)), - 138: int16(-int32(271)), - 139: int16(-int32(271)), - 140: int16(-int32(271)), - 141: int16(-int32(271)), - 142: int16(138), - 143: int16(459), - 144: int16(396), - 145: int16(-int32(158)), - 146: int16(470), - 147: int16(302), - 148: int16(-int32(212)), - 149: int16(521), - 150: int16(201), - 151: int16(-int32(195)), - 152: int16(-int32(92)), - 153: int16(559), - 154: int16(630), - 155: int16(632), - 156: int16(630), - 157: int16(-int32(271)), - 158: int16(632), - 159: int16(901), - 160: int16(63), - 161: int16(407), - 162: int16(670), - 163: int16(-int32(271)), - 164: int16(-int32(271)), - 165: int16(-int32(271)), - 166: int16(-int32(271)), - 167: int16(161), - 168: int16(161), - 169: int16(161), - 170: int16(251), - 171: int16(335), - 172: int16(847), - 173: int16(979), - 174: int16(1097), - 175: int16(537), - 176: int16(588), - 177: int16(618), - 178: int16(628), - 179: int16(688), - 180: int16(688), - 181: int16(-int32(166)), - 182: int16(-int32(161)), - 183: int16(674), - 184: int16(787), - 185: int16(794), - 186: int16(799), - 187: int16(852), - 188: int16(996), - 189: int16(-int32(122)), - 190: int16(837), - 191: int16(-int32(120)), - 192: int16(1018), - 193: int16(1035), - 194: int16(415), - 195: int16(1047), - 196: int16(1001), - 197: int16(958), - 198: int16(1082), - 199: int16(400), - 200: int16(1099), - 201: int16(779), - 202: int16(1137), - 203: int16(1142), - 204: int16(263), - 205: int16(1083), - 206: int16(1145), - 207: int16(1150), - 208: int16(1041), - 209: int16(1139), - 210: int16(965), - 211: int16(1050), - 212: int16(362), - 213: int16(849), - 214: int16(752), - 215: int16(629), - 216: int16(675), - 217: int16(1162), - 218: int16(1173), - 219: int16(1090), - 220: int16(1195), - 221: int16(-int32(194)), - 222: int16(56), - 223: int16(185), - 224: int16(-int32(135)), - 225: int16(232), - 226: int16(522), - 227: int16(560), - 228: int16(571), - 229: int16(601), - 230: int16(617), - 231: int16(669), - 232: int16(683), - 233: int16(711), - 234: int16(850), - 235: int16(893), - 236: int16(1000), - 237: int16(1040), - 238: int16(1049), - 239: int16(1081), - 240: int16(1087), - 241: int16(1101), - 242: int16(392), - 243: int16(1114), - 244: int16(1123), - 245: int16(1155), - 246: int16(1161), - 247: int16(1175), - 248: int16(1271), - 249: int16(1293), - 250: int16(1299), - 251: int16(1330), - 252: int16(1339), - 253: int16(1342), - 254: int16(1347), - 255: int16(593), - 256: int16(1282), - 257: int16(1286), - 258: int16(1350), - 259: int16(1359), - 260: int16(1368), - 261: int16(1314), - 262: int16(1480), - 263: int16(1483), - 264: int16(1507), - 265: int16(1085), - 266: int16(1338), - 267: int16(1526), - 268: int16(1527), - 269: int16(1487), - 270: int16(1531), - 271: int16(560), - 272: int16(1532), - 273: int16(1534), - 274: int16(1535), - 275: int16(1538), - 276: int16(1539), - 277: int16(1541), - 278: int16(1448), - 279: int16(1450), - 280: int16(1496), - 281: int16(1484), - 282: int16(1485), - 283: int16(1489), - 284: int16(1490), - 285: int16(1314), - 286: int16(1496), - 287: int16(1496), - 288: int16(1504), - 289: int16(1536), - 290: int16(1564), - 291: int16(1451), - 292: int16(1486), - 293: int16(1492), - 294: int16(1509), - 295: int16(1493), - 296: int16(1465), - 297: int16(1515), - 298: int16(1494), - 299: int16(1495), - 300: int16(1517), - 301: int16(1500), - 302: int16(1519), - 303: int16(1474), - 304: int16(1550), - 305: int16(1543), - 306: int16(1548), - 307: int16(1556), - 308: int16(1565), - 309: int16(1566), - 310: int16(1518), - 311: int16(1523), - 312: int16(1542), - 313: int16(1544), - 314: int16(1525), - 315: int16(1545), - 316: int16(1513), - 317: int16(1553), - 318: int16(1552), - 319: int16(1604), - 320: int16(1508), - 321: int16(1510), - 322: int16(1608), - 323: int16(1609), - 324: int16(1520), - 325: int16(1528), - 326: int16(1612), - 327: int16(1540), - 328: int16(1559), - 329: int16(1560), - 330: int16(1592), - 331: int16(1591), - 332: int16(1595), - 333: int16(1596), - 334: int16(1597), - 335: int16(1629), - 336: int16(1638), - 337: int16(1594), - 338: int16(1569), - 339: int16(1570), - 340: int16(1600), - 341: int16(1568), - 342: int16(1610), - 343: int16(1601), - 344: int16(1611), - 345: int16(1603), - 346: int16(1643), - 347: int16(1651), - 348: int16(1562), - 349: int16(1571), - 350: int16(1655), - 351: int16(1659), - 352: int16(1640), - 353: int16(1663), - 354: int16(1666), - 355: int16(1664), - 356: int16(1667), - 357: int16(1641), - 358: int16(1650), - 359: int16(1652), - 360: int16(1653), - 361: int16(1647), - 362: int16(1656), - 363: int16(1657), - 364: int16(1658), - 365: int16(1668), - 366: int16(1672), - 367: int16(1681), - 368: int16(1649), - 369: int16(1682), - 370: int16(1683), - 371: int16(1573), - 372: int16(1582), - 373: int16(1607), - 374: int16(1615), - 375: int16(1685), - 376: int16(1702), - 377: int16(1586), - 378: int16(1587), - 379: int16(1642), - 380: int16(1646), - 381: int16(1673), - 382: int16(1675), - 383: int16(1636), - 384: int16(1714), - 385: int16(1637), - 386: int16(1677), - 387: int16(1674), - 388: int16(1678), - 389: int16(1694), - 390: int16(1719), - 391: int16(1734), - 392: int16(1735), - 393: int16(1746), - 394: int16(1747), - 395: int16(1750), - 396: int16(1633), - 397: int16(1661), + 76: uint16(1093), + 77: uint16(1093), + 78: uint16(1093), + 79: uint16(1093), + 80: uint16(1093), + 81: uint16(1093), + 82: uint16(1093), + 83: uint16(1113), + 84: uint16(1093), + 85: uint16(1216), + 86: uint16(957), + 87: uint16(957), + 88: uint16(1523), + 89: uint16(1602), + 90: uint16(1674), + 91: uint16(1828), + 92: uint16(1828), + 93: uint16(1828), + 94: uint16(1828), + 95: uint16(1828), + 96: uint16(1828), + 97: uint16(1828), + 98: uint16(1828), + 99: uint16(1828), + 100: uint16(1828), + 101: uint16(1828), + 102: uint16(1828), + 103: uint16(1828), + 104: uint16(1828), + 105: uint16(1828), + 106: uint16(1828), + 107: uint16(1828), + 108: uint16(1828), + 109: uint16(1828), + 110: uint16(1828), + 111: uint16(1828), + 112: uint16(1828), + 113: uint16(1828), + 114: uint16(1828), + 115: uint16(1828), + 116: uint16(1828), + 117: uint16(1828), + 118: uint16(1828), + 119: uint16(1828), + 120: uint16(1828), + 121: uint16(1828), + 122: uint16(1828), + 123: uint16(1828), + 124: uint16(1828), + 125: uint16(1828), + 126: uint16(1828), + 127: uint16(1828), + 128: uint16(1828), + 129: uint16(1828), + 130: uint16(1828), + 131: uint16(1828), + 132: uint16(1828), + 133: uint16(1828), + 134: uint16(1828), + 135: uint16(1828), + 136: uint16(1828), + 137: uint16(1828), + 138: uint16(1828), + 139: uint16(1828), + 140: uint16(137), + 141: uint16(181), + 142: uint16(181), + 143: uint16(181), + 144: uint16(181), + 145: uint16(181), + 146: uint16(181), + 147: uint16(181), + 148: uint16(96), + 149: uint16(222), + 150: uint16(143), + 151: uint16(477), + 152: uint16(713), + 153: uint16(1133), + 154: uint16(1268), + 155: uint16(713), + 156: uint16(713), + 157: uint16(79), + 158: uint16(79), + 159: uint16(713), + 160: uint16(770), + 161: uint16(83), + 162: uint16(65), + 163: uint16(65), + 164: uint16(65), + 165: uint16(288), + 166: uint16(162), + 167: uint16(162), + 168: uint16(2142), + 169: uint16(2142), + 170: uint16(696), + 171: uint16(696), + 172: uint16(696), + 173: uint16(238), + 174: uint16(474), + 175: uint16(474), + 176: uint16(474), + 177: uint16(474), + 178: uint16(1217), + 179: uint16(1217), + 180: uint16(678), + 181: uint16(477), + 182: uint16(324), + 183: uint16(398), + 184: uint16(713), + 185: uint16(713), + 186: uint16(713), + 187: uint16(713), + 188: uint16(713), + 189: uint16(713), + 190: uint16(713), + 191: uint16(713), + 192: uint16(713), + 193: uint16(713), + 194: uint16(713), + 195: uint16(713), + 196: uint16(713), + 197: uint16(713), + 198: uint16(713), + 199: uint16(713), + 200: uint16(713), + 201: uint16(713), + 202: uint16(713), + 203: uint16(1220), + 204: uint16(366), + 205: uint16(366), + 206: uint16(713), + 207: uint16(917), + 208: uint16(283), + 209: uint16(283), + 210: uint16(434), + 211: uint16(434), + 212: uint16(605), + 213: uint16(605), + 214: uint16(1298), + 215: uint16(2142), + 216: uint16(2142), + 217: uint16(2142), + 218: uint16(2142), + 219: uint16(2142), + 220: uint16(2142), + 221: uint16(2142), + 222: uint16(1179), + 223: uint16(1157), + 224: uint16(1157), + 225: uint16(487), + 226: uint16(527), + 227: uint16(585), + 228: uint16(645), + 229: uint16(749), + 230: uint16(914), + 231: uint16(968), + 232: uint16(752), + 233: uint16(713), + 234: uint16(713), + 235: uint16(713), + 236: uint16(713), + 237: uint16(713), + 238: uint16(713), + 239: uint16(713), + 240: uint16(713), + 241: uint16(713), + 242: uint16(713), + 243: uint16(303), + 244: uint16(713), + 245: uint16(713), + 246: uint16(713), + 247: uint16(713), + 248: uint16(713), + 249: uint16(713), + 250: uint16(713), + 251: uint16(713), + 252: uint16(713), + 253: uint16(713), + 254: uint16(713), + 255: uint16(713), + 256: uint16(797), + 257: uint16(797), + 258: uint16(797), + 259: uint16(713), + 260: uint16(713), + 261: uint16(713), + 262: uint16(959), + 263: uint16(713), + 264: uint16(713), + 265: uint16(713), + 266: uint16(1169), + 267: uint16(1271), + 268: uint16(713), + 269: uint16(713), + 270: uint16(1330), + 271: uint16(713), + 272: uint16(713), + 273: uint16(713), + 274: uint16(713), + 275: uint16(713), + 276: uint16(713), + 277: uint16(713), + 278: uint16(713), + 279: uint16(629), + 280: uint16(7), + 281: uint16(91), + 282: uint16(876), + 283: uint16(876), + 284: uint16(876), + 285: uint16(876), + 286: uint16(953), + 287: uint16(91), + 288: uint16(91), + 289: uint16(1246), + 290: uint16(1065), + 291: uint16(1106), + 292: uint16(1374), + 293: uint16(1329), + 294: uint16(1348), + 295: uint16(468), + 296: uint16(1348), + 297: uint16(1394), + 298: uint16(785), + 299: uint16(1329), + 300: uint16(1329), + 301: uint16(785), + 302: uint16(1329), + 303: uint16(468), + 304: uint16(1394), + 305: uint16(859), + 306: uint16(854), + 307: uint16(1402), + 308: uint16(1449), + 309: uint16(1449), + 310: uint16(1449), + 311: uint16(1173), + 312: uint16(1173), + 313: uint16(1173), + 314: uint16(1173), + 315: uint16(1355), + 316: uint16(1355), + 317: uint16(1030), + 318: uint16(1341), + 319: uint16(405), + 320: uint16(1230), + 321: uint16(1795), + 322: uint16(1795), + 323: uint16(1711), + 324: uint16(1711), + 325: uint16(1829), + 326: uint16(1829), + 327: uint16(1711), + 328: uint16(1717), + 329: uint16(1719), + 330: uint16(1850), + 331: uint16(1833), + 332: uint16(1860), + 333: uint16(1860), + 334: uint16(1860), + 335: uint16(1860), + 336: uint16(1711), + 337: uint16(1868), + 338: uint16(1740), + 339: uint16(1719), + 340: uint16(1719), + 341: uint16(1740), + 342: uint16(1850), + 343: uint16(1833), + 344: uint16(1740), + 345: uint16(1833), + 346: uint16(1740), + 347: uint16(1711), + 348: uint16(1868), + 349: uint16(1745), + 350: uint16(1843), + 351: uint16(1711), + 352: uint16(1868), + 353: uint16(1887), + 354: uint16(1711), + 355: uint16(1868), + 356: uint16(1711), + 357: uint16(1868), + 358: uint16(1887), + 359: uint16(1801), + 360: uint16(1801), + 361: uint16(1801), + 362: uint16(1855), + 363: uint16(1900), + 364: uint16(1900), + 365: uint16(1887), + 366: uint16(1801), + 367: uint16(1797), + 368: uint16(1801), + 369: uint16(1855), + 370: uint16(1801), + 371: uint16(1801), + 372: uint16(1761), + 373: uint16(1912), + 374: uint16(1830), + 375: uint16(1830), + 376: uint16(1887), + 377: uint16(1711), + 378: uint16(1862), + 379: uint16(1862), + 380: uint16(1875), + 381: uint16(1875), + 382: uint16(1810), + 383: uint16(1815), + 384: uint16(1940), + 385: uint16(1711), + 386: uint16(1807), + 387: uint16(1810), + 388: uint16(1821), + 389: uint16(1823), + 390: uint16(1740), + 391: uint16(1945), + 392: uint16(1963), + 393: uint16(1963), + 394: uint16(1974), + 395: uint16(1974), + 396: uint16(1974), + 397: uint16(2142), + 398: uint16(2142), + 399: uint16(2142), + 400: uint16(2142), + 401: uint16(2142), + 402: uint16(2142), + 403: uint16(2142), + 404: uint16(2142), + 405: uint16(2142), + 406: uint16(2142), + 407: uint16(2142), + 408: uint16(2142), + 409: uint16(2142), + 410: uint16(2142), + 411: uint16(2142), + 412: uint16(20), + 413: uint16(1224), + 414: uint16(256), + 415: uint16(1111), + 416: uint16(1115), + 417: uint16(1114), + 418: uint16(1192), + 419: uint16(1496), + 420: uint16(1424), + 421: uint16(1505), + 422: uint16(1427), + 423: uint16(355), + 424: uint16(1383), + 425: uint16(1537), + 426: uint16(1506), + 427: uint16(1538), + 428: uint16(1553), + 429: uint16(1583), + 430: uint16(1584), + 431: uint16(1591), + 432: uint16(1625), + 433: uint16(541), + 434: uint16(1445), + 435: uint16(1562), + 436: uint16(1450), + 437: uint16(1572), + 438: uint16(1515), + 439: uint16(1428), + 440: uint16(1532), + 441: uint16(1592), + 442: uint16(1629), + 443: uint16(1520), + 444: uint16(1630), + 445: uint16(1639), + 446: uint16(1510), + 447: uint16(1544), + 448: uint16(1662), + 449: uint16(1675), + 450: uint16(1551), + 451: uint16(48), + 452: uint16(1996), + 453: uint16(2001), + 454: uint16(1983), + 455: uint16(1844), + 456: uint16(1993), + 457: uint16(1994), + 458: uint16(1986), + 459: uint16(1989), + 460: uint16(1874), + 461: uint16(1863), + 462: uint16(1885), + 463: uint16(1991), + 464: uint16(1991), + 465: uint16(1995), + 466: uint16(1876), + 467: uint16(1997), + 468: uint16(1877), + 469: uint16(2004), + 470: uint16(2021), + 471: uint16(1881), + 472: uint16(1894), + 473: uint16(1991), + 474: uint16(1895), + 475: uint16(1965), + 476: uint16(1990), + 477: uint16(1991), + 478: uint16(1878), + 479: uint16(1975), + 480: uint16(1977), + 481: uint16(1978), + 482: uint16(1979), + 483: uint16(1903), + 484: uint16(1918), + 485: uint16(2002), + 486: uint16(1896), + 487: uint16(2034), + 488: uint16(2033), + 489: uint16(2017), + 490: uint16(1925), + 491: uint16(1880), + 492: uint16(1976), + 493: uint16(2018), + 494: uint16(1980), + 495: uint16(1967), + 496: uint16(2005), + 497: uint16(1904), + 498: uint16(1932), + 499: uint16(2025), + 500: uint16(2030), + 501: uint16(2032), + 502: uint16(1921), + 503: uint16(1928), + 504: uint16(2035), + 505: uint16(1987), + 506: uint16(2036), + 507: uint16(2037), + 508: uint16(2038), + 509: uint16(2040), + 510: uint16(1988), + 511: uint16(2006), + 512: uint16(2039), + 513: uint16(1960), + 514: uint16(2041), + 515: uint16(2042), + 516: uint16(1999), + 517: uint16(2023), + 518: uint16(2044), + 519: uint16(2043), + 520: uint16(1919), + 521: uint16(2048), + 522: uint16(2049), + 523: uint16(2050), + 524: uint16(2046), + 525: uint16(2051), + 526: uint16(2053), + 527: uint16(1981), + 528: uint16(1935), + 529: uint16(2056), + 530: uint16(2057), + 531: uint16(1966), + 532: uint16(2047), + 533: uint16(2061), + 534: uint16(1941), + 535: uint16(2060), + 536: uint16(2052), + 537: uint16(2054), + 538: uint16(2055), + 539: uint16(2058), + 540: uint16(2003), + 541: uint16(2012), + 542: uint16(2007), + 543: uint16(2059), + 544: uint16(2015), + 545: uint16(2008), + 546: uint16(2062), + 547: uint16(2071), + 548: uint16(2073), + 549: uint16(2074), + 550: uint16(2072), + 551: uint16(2075), + 552: uint16(2065), + 553: uint16(1962), + 554: uint16(1964), + 555: uint16(2079), + 556: uint16(2060), + 557: uint16(2082), + 558: uint16(2084), + 559: uint16(2085), + 560: uint16(2087), + 561: uint16(2086), + 562: uint16(2089), + 563: uint16(2088), + 564: uint16(2091), + 565: uint16(2093), + 566: uint16(2099), + 567: uint16(2094), + 568: uint16(2095), + 569: uint16(2096), + 570: uint16(2097), + 571: uint16(2100), + 572: uint16(2101), + 573: uint16(2102), + 574: uint16(1998), + 575: uint16(1984), + 576: uint16(1985), + 577: uint16(2000), + 578: uint16(2103), + 579: uint16(2098), + 580: uint16(2109), + 581: uint16(2117), + 582: uint16(2128), +} +var _yy_reduce_ofst = [412]int16{ + 0: int16(-int32(71)), + 1: int16(194), + 2: int16(343), + 3: int16(835), + 4: int16(-int32(180)), + 5: int16(-int32(177)), + 6: int16(838), + 7: int16(-int32(194)), + 8: int16(-int32(188)), + 9: int16(-int32(185)), + 10: int16(-int32(183)), + 11: int16(82), + 12: int16(183), + 13: int16(-int32(65)), + 14: int16(133), + 15: int16(245), + 16: int16(346), + 17: int16(407), + 18: int16(458), + 19: int16(-int32(178)), + 20: int16(75), + 21: int16(-int32(275)), + 22: int16(-int32(4)), + 23: int16(310), + 24: int16(312), + 25: int16(489), + 26: int16(575), + 27: int16(596), + 28: int16(463), + 29: int16(686), + 30: int16(707), + 31: int16(725), + 32: int16(780), + 33: int16(1098), + 34: int16(856), + 35: int16(778), + 36: int16(1059), + 37: int16(1090), + 38: int16(708), + 39: int16(887), + 40: int16(86), + 41: int16(448), + 42: int16(980), + 43: int16(630), + 44: int16(680), + 45: int16(681), + 46: int16(684), + 47: int16(796), + 48: int16(801), + 49: int16(796), + 50: int16(801), + 51: int16(-int32(261)), + 52: int16(-int32(261)), + 53: int16(-int32(261)), + 54: int16(-int32(261)), + 55: int16(-int32(261)), + 56: int16(-int32(261)), + 57: int16(-int32(261)), + 58: int16(-int32(261)), + 59: int16(-int32(261)), + 60: int16(-int32(261)), + 61: int16(-int32(261)), + 62: int16(-int32(261)), + 63: int16(-int32(261)), + 64: int16(-int32(261)), + 65: int16(-int32(261)), + 66: int16(-int32(261)), + 67: int16(-int32(261)), + 68: int16(-int32(261)), + 69: int16(-int32(261)), + 70: int16(-int32(261)), + 71: int16(-int32(261)), + 72: int16(-int32(261)), + 73: int16(-int32(261)), + 74: int16(-int32(261)), + 75: int16(-int32(261)), + 76: int16(-int32(261)), + 77: int16(-int32(261)), + 78: int16(-int32(261)), + 79: int16(-int32(261)), + 80: int16(-int32(261)), + 81: int16(-int32(261)), + 82: int16(-int32(261)), + 83: int16(-int32(261)), + 84: int16(-int32(261)), + 85: int16(-int32(261)), + 86: int16(-int32(261)), + 87: int16(-int32(261)), + 88: int16(391), + 89: int16(886), + 90: int16(888), + 91: int16(1013), + 92: int16(1016), + 93: int16(1081), + 94: int16(1087), + 95: int16(1151), + 96: int16(1159), + 97: int16(1177), + 98: int16(1185), + 99: int16(1188), + 100: int16(1190), + 101: int16(1194), + 102: int16(1197), + 103: int16(1203), + 104: int16(1247), + 105: int16(1260), + 106: int16(1264), + 107: int16(1267), + 108: int16(1269), + 109: int16(1273), + 110: int16(1315), + 111: int16(1322), + 112: int16(1335), + 113: int16(1337), + 114: int16(1356), + 115: int16(1362), + 116: int16(1418), + 117: int16(1425), + 118: int16(1453), + 119: int16(1457), + 120: int16(1465), + 121: int16(1473), + 122: int16(1487), + 123: int16(1495), + 124: int16(1507), + 125: int16(1517), + 126: int16(1521), + 127: int16(1534), + 128: int16(1543), + 129: int16(1546), + 130: int16(1549), + 131: int16(1552), + 132: int16(1554), + 133: int16(1560), + 134: int16(1581), + 135: int16(1590), + 136: int16(1593), + 137: int16(1595), + 138: int16(1621), + 139: int16(1623), + 140: int16(-int32(261)), + 141: int16(-int32(261)), + 142: int16(-int32(261)), + 143: int16(-int32(261)), + 144: int16(-int32(261)), + 145: int16(-int32(261)), + 146: int16(-int32(261)), + 147: int16(-int32(261)), + 148: int16(-int32(261)), + 149: int16(-int32(261)), + 150: int16(-int32(261)), + 151: int16(-int32(186)), + 152: int16(-int32(117)), + 153: int16(260), + 154: int16(263), + 155: int16(460), + 156: int16(631), + 157: int16(-int32(74)), + 158: int16(497), + 159: int16(-int32(181)), + 160: int16(-int32(261)), + 161: int16(939), + 162: int16(176), + 163: int16(274), + 164: int16(338), + 165: int16(676), + 166: int16(-int32(261)), + 167: int16(-int32(261)), + 168: int16(-int32(261)), + 169: int16(-int32(261)), + 170: int16(-int32(212)), + 171: int16(-int32(212)), + 172: int16(-int32(212)), + 173: int16(-int32(184)), + 174: int16(149), + 175: int16(777), + 176: int16(1061), + 177: int16(1103), + 178: int16(265), + 179: int16(419), + 180: int16(-int32(254)), + 181: int16(670), + 182: int16(677), + 183: int16(677), + 184: int16(-int32(11)), + 185: int16(-int32(129)), + 186: int16(184), + 187: int16(488), + 188: int16(736), + 189: int16(789), + 190: int16(805), + 191: int16(844), + 192: int16(403), + 193: int16(529), + 194: int16(579), + 195: int16(668), + 196: int16(783), + 197: int16(841), + 198: int16(1158), + 199: int16(1112), + 200: int16(806), + 201: int16(861), + 202: int16(1095), + 203: int16(846), + 204: int16(839), + 205: int16(1031), + 206: int16(-int32(189)), + 207: int16(1077), + 208: int16(1080), + 209: int16(1116), + 210: int16(1084), + 211: int16(1156), + 212: int16(1139), + 213: int16(1221), + 214: int16(46), + 215: int16(1099), + 216: int16(1037), + 217: int16(1118), + 218: int16(1171), + 219: int16(1214), + 220: int16(1210), + 221: int16(1258), + 222: int16(-int32(210)), + 223: int16(-int32(190)), + 224: int16(-int32(176)), + 225: int16(-int32(115)), + 226: int16(117), + 227: int16(262), + 228: int16(376), + 229: int16(490), + 230: int16(511), + 231: int16(520), + 232: int16(618), + 233: int16(639), + 234: int16(743), + 235: int16(901), + 236: int16(907), + 237: int16(958), + 238: int16(1014), + 239: int16(1055), + 240: int16(1108), + 241: int16(1193), + 242: int16(1244), + 243: int16(720), + 244: int16(1248), + 245: int16(1277), + 246: int16(1324), + 247: int16(1347), + 248: int16(1417), + 249: int16(1431), + 250: int16(1432), + 251: int16(1440), + 252: int16(1451), + 253: int16(1452), + 254: int16(1463), + 255: int16(1478), + 256: int16(1286), + 257: int16(1350), + 258: int16(1369), + 259: int16(1490), + 260: int16(1498), + 261: int16(1501), + 262: int16(773), + 263: int16(1509), + 264: int16(1513), + 265: int16(1528), + 266: int16(1292), + 267: int16(1367), + 268: int16(1535), + 269: int16(1536), + 270: int16(1477), + 271: int16(1542), + 272: int16(376), + 273: int16(1547), + 274: int16(1550), + 275: int16(1555), + 276: int16(1559), + 277: int16(1568), + 278: int16(1571), + 279: int16(1441), + 280: int16(1443), + 281: int16(1474), + 282: int16(1511), + 283: int16(1516), + 284: int16(1519), + 285: int16(1522), + 286: int16(773), + 287: int16(1474), + 288: int16(1474), + 289: int16(1503), + 290: int16(1567), + 291: int16(1594), + 292: int16(1484), + 293: int16(1527), + 294: int16(1556), + 295: int16(1570), + 296: int16(1557), + 297: int16(1524), + 298: int16(1573), + 299: int16(1545), + 300: int16(1548), + 301: int16(1576), + 302: int16(1561), + 303: int16(1587), + 304: int16(1540), + 305: int16(1575), + 306: int16(1606), + 307: int16(1611), + 308: int16(1622), + 309: int16(1624), + 310: int16(1626), + 311: int16(1582), + 312: int16(1597), + 313: int16(1598), + 314: int16(1599), + 315: int16(1601), + 316: int16(1603), + 317: int16(1563), + 318: int16(1608), + 319: int16(1605), + 320: int16(1604), + 321: int16(1564), + 322: int16(1566), + 323: int16(1655), + 324: int16(1660), + 325: int16(1578), + 326: int16(1579), + 327: int16(1665), + 328: int16(1586), + 329: int16(1607), + 330: int16(1610), + 331: int16(1642), + 332: int16(1641), + 333: int16(1645), + 334: int16(1646), + 335: int16(1647), + 336: int16(1679), + 337: int16(1688), + 338: int16(1644), + 339: int16(1618), + 340: int16(1619), + 341: int16(1648), + 342: int16(1628), + 343: int16(1659), + 344: int16(1649), + 345: int16(1663), + 346: int16(1650), + 347: int16(1700), + 348: int16(1702), + 349: int16(1612), + 350: int16(1615), + 351: int16(1706), + 352: int16(1708), + 353: int16(1689), + 354: int16(1709), + 355: int16(1712), + 356: int16(1713), + 357: int16(1715), + 358: int16(1691), + 359: int16(1698), + 360: int16(1699), + 361: int16(1701), + 362: int16(1693), + 363: int16(1704), + 364: int16(1707), + 365: int16(1705), + 366: int16(1714), + 367: int16(1703), + 368: int16(1718), + 369: int16(1710), + 370: int16(1720), + 371: int16(1721), + 372: int16(1632), + 373: int16(1634), + 374: int16(1664), + 375: int16(1666), + 376: int16(1729), + 377: int16(1751), + 378: int16(1635), + 379: int16(1636), + 380: int16(1692), + 381: int16(1694), + 382: int16(1716), + 383: int16(1722), + 384: int16(1684), + 385: int16(1763), + 386: int16(1685), + 387: int16(1723), + 388: int16(1724), + 389: int16(1727), + 390: int16(1730), + 391: int16(1768), + 392: int16(1783), + 393: int16(1784), + 394: int16(1793), + 395: int16(1794), + 396: int16(1796), + 397: int16(1683), 398: int16(1686), - 399: int16(1738), - 400: int16(1728), - 401: int16(1733), - 402: int16(1736), - 403: int16(1737), - 404: int16(1740), - 405: int16(1726), - 406: int16(1730), - 407: int16(1742), - 408: int16(1743), - 409: int16(1748), - 410: int16(1753), -} -var _yy_default = [579]uint16{ - 0: uint16(1648), - 1: uint16(1648), - 2: uint16(1648), - 3: uint16(1478), - 4: uint16(1243), - 5: uint16(1354), - 6: uint16(1243), - 7: uint16(1243), - 8: uint16(1243), - 9: uint16(1478), - 10: uint16(1478), - 11: uint16(1478), - 12: uint16(1243), - 13: uint16(1384), - 14: uint16(1384), - 15: uint16(1531), - 16: uint16(1276), - 17: uint16(1243), - 18: uint16(1243), - 19: uint16(1243), - 20: uint16(1243), - 21: uint16(1243), - 22: uint16(1243), - 23: uint16(1243), - 24: uint16(1243), - 25: uint16(1243), - 26: uint16(1243), - 27: uint16(1243), - 28: uint16(1477), - 29: uint16(1243), - 30: uint16(1243), - 31: uint16(1243), - 32: uint16(1243), - 33: uint16(1564), - 34: uint16(1564), - 35: uint16(1243), - 36: uint16(1243), - 37: uint16(1243), - 38: uint16(1243), - 39: uint16(1243), - 40: uint16(1243), - 41: uint16(1243), - 42: uint16(1243), - 43: uint16(1393), - 44: uint16(1243), - 45: uint16(1400), - 46: uint16(1243), - 47: uint16(1243), - 48: uint16(1243), - 49: uint16(1243), - 50: uint16(1243), - 51: uint16(1479), - 52: uint16(1480), - 53: uint16(1243), - 54: uint16(1243), - 55: uint16(1243), - 56: uint16(1530), - 57: uint16(1532), - 58: uint16(1495), - 59: uint16(1407), - 60: uint16(1406), - 61: uint16(1405), - 62: uint16(1404), - 63: uint16(1513), - 64: uint16(1372), - 65: uint16(1398), - 66: uint16(1391), - 67: uint16(1395), - 68: uint16(1474), - 69: uint16(1475), - 70: uint16(1473), - 71: uint16(1626), - 72: uint16(1480), - 73: uint16(1479), - 74: uint16(1243), - 75: uint16(1394), - 76: uint16(1442), - 77: uint16(1458), - 78: uint16(1441), - 79: uint16(1243), - 80: uint16(1243), - 81: uint16(1243), - 82: uint16(1243), - 83: uint16(1243), - 84: uint16(1243), - 85: uint16(1243), - 86: uint16(1243), - 87: uint16(1243), - 88: uint16(1243), - 89: uint16(1243), - 90: uint16(1243), - 91: uint16(1243), - 92: uint16(1243), - 93: uint16(1243), - 94: uint16(1243), - 95: uint16(1243), - 96: uint16(1243), - 97: uint16(1243), - 98: uint16(1243), - 99: uint16(1243), - 100: uint16(1243), - 101: uint16(1243), - 102: uint16(1243), - 103: uint16(1243), - 104: uint16(1243), - 105: uint16(1243), - 106: uint16(1243), - 107: uint16(1243), - 108: uint16(1243), - 109: uint16(1243), - 110: uint16(1243), - 111: uint16(1243), - 112: uint16(1243), - 113: uint16(1243), - 114: uint16(1243), - 115: uint16(1243), - 116: uint16(1243), - 117: uint16(1243), - 118: uint16(1243), - 119: uint16(1243), - 120: uint16(1243), - 121: uint16(1243), - 122: uint16(1243), - 123: uint16(1243), - 124: uint16(1243), - 125: uint16(1243), - 126: uint16(1243), - 127: uint16(1243), - 128: uint16(1243), - 129: uint16(1243), - 130: uint16(1243), - 131: uint16(1450), - 132: uint16(1457), - 133: uint16(1456), - 134: uint16(1455), - 135: uint16(1464), - 136: uint16(1454), - 137: uint16(1451), - 138: uint16(1444), - 139: uint16(1443), - 140: uint16(1445), - 141: uint16(1446), - 142: uint16(1243), - 143: uint16(1243), - 144: uint16(1267), - 145: uint16(1243), - 146: uint16(1243), - 147: uint16(1264), - 148: uint16(1318), - 149: uint16(1243), - 150: uint16(1243), - 151: uint16(1243), - 152: uint16(1243), - 153: uint16(1243), - 154: uint16(1550), - 155: uint16(1549), - 156: uint16(1243), - 157: uint16(1447), - 158: uint16(1243), - 159: uint16(1276), - 160: uint16(1435), - 161: uint16(1434), - 162: uint16(1433), - 163: uint16(1461), - 164: uint16(1448), - 165: uint16(1460), - 166: uint16(1459), - 167: uint16(1538), - 168: uint16(1600), - 169: uint16(1599), - 170: uint16(1496), - 171: uint16(1243), - 172: uint16(1243), - 173: uint16(1243), - 174: uint16(1243), - 175: uint16(1243), - 176: uint16(1243), - 177: uint16(1564), - 178: uint16(1243), - 179: uint16(1243), - 180: uint16(1243), - 181: uint16(1243), - 182: uint16(1243), - 183: uint16(1243), - 184: uint16(1243), - 185: uint16(1243), - 186: uint16(1243), - 187: uint16(1243), - 188: uint16(1243), - 189: uint16(1243), - 190: uint16(1243), - 191: uint16(1243), - 192: uint16(1243), - 193: uint16(1243), - 194: uint16(1243), - 195: uint16(1243), - 196: uint16(1243), - 197: uint16(1243), - 198: uint16(1243), - 199: uint16(1243), - 200: uint16(1243), - 201: uint16(1374), - 202: uint16(1564), - 203: uint16(1564), - 204: uint16(1243), - 205: uint16(1276), - 206: uint16(1564), - 207: uint16(1564), - 208: uint16(1375), - 209: uint16(1375), - 210: uint16(1272), - 211: uint16(1272), - 212: uint16(1378), - 213: uint16(1243), - 214: uint16(1545), - 215: uint16(1345), - 216: uint16(1345), - 217: uint16(1345), - 218: uint16(1345), - 219: uint16(1354), - 220: uint16(1345), - 221: uint16(1243), - 222: uint16(1243), - 223: uint16(1243), - 224: uint16(1243), - 225: uint16(1243), - 226: uint16(1243), - 227: uint16(1243), - 228: uint16(1243), - 229: uint16(1243), - 230: uint16(1243), - 231: uint16(1243), - 232: uint16(1243), - 233: uint16(1243), - 234: uint16(1243), - 235: uint16(1243), - 236: uint16(1535), - 237: uint16(1533), - 238: uint16(1243), - 239: uint16(1243), - 240: uint16(1243), - 241: uint16(1243), - 242: uint16(1243), - 243: uint16(1243), - 244: uint16(1243), - 245: uint16(1243), - 246: uint16(1243), - 247: uint16(1243), - 248: uint16(1243), - 249: uint16(1243), - 250: uint16(1243), - 251: uint16(1243), - 252: uint16(1243), - 253: uint16(1243), - 254: uint16(1243), - 255: uint16(1243), - 256: uint16(1243), - 257: uint16(1243), - 258: uint16(1243), - 259: uint16(1243), - 260: uint16(1243), - 261: uint16(1243), - 262: uint16(1243), - 263: uint16(1243), - 264: uint16(1243), - 265: uint16(1350), - 266: uint16(1243), - 267: uint16(1243), - 268: uint16(1243), - 269: uint16(1243), - 270: uint16(1243), - 271: uint16(1243), - 272: uint16(1243), - 273: uint16(1243), - 274: uint16(1243), - 275: uint16(1243), - 276: uint16(1243), - 277: uint16(1593), - 278: uint16(1243), - 279: uint16(1508), - 280: uint16(1332), - 281: uint16(1350), - 282: uint16(1350), - 283: uint16(1350), - 284: uint16(1350), - 285: uint16(1352), - 286: uint16(1333), - 287: uint16(1331), - 288: uint16(1344), - 289: uint16(1277), - 290: uint16(1250), - 291: uint16(1640), - 292: uint16(1410), - 293: uint16(1399), - 294: uint16(1351), - 295: uint16(1399), - 296: uint16(1637), - 297: uint16(1397), + 399: int16(1690), + 400: int16(1782), + 401: int16(1779), + 402: int16(1780), + 403: int16(1781), + 404: int16(1785), + 405: int16(1788), + 406: int16(1774), + 407: int16(1775), + 408: int16(1786), + 409: int16(1787), + 410: int16(1789), + 411: int16(1798), +} +var _yy_default = [583]uint16{ + 0: uint16(1663), + 1: uint16(1663), + 2: uint16(1663), + 3: uint16(1491), + 4: uint16(1254), + 5: uint16(1367), + 6: uint16(1254), + 7: uint16(1254), + 8: uint16(1254), + 9: uint16(1254), + 10: uint16(1491), + 11: uint16(1491), + 12: uint16(1491), + 13: uint16(1254), + 14: uint16(1254), + 15: uint16(1254), + 16: uint16(1254), + 17: uint16(1254), + 18: uint16(1254), + 19: uint16(1397), + 20: uint16(1397), + 21: uint16(1544), + 22: uint16(1287), + 23: uint16(1254), + 24: uint16(1254), + 25: uint16(1254), + 26: uint16(1254), + 27: uint16(1254), + 28: uint16(1254), + 29: uint16(1254), + 30: uint16(1254), + 31: uint16(1254), + 32: uint16(1254), + 33: uint16(1254), + 34: uint16(1254), + 35: uint16(1490), + 36: uint16(1254), + 37: uint16(1254), + 38: uint16(1254), + 39: uint16(1254), + 40: uint16(1578), + 41: uint16(1578), + 42: uint16(1254), + 43: uint16(1254), + 44: uint16(1254), + 45: uint16(1254), + 46: uint16(1254), + 47: uint16(1563), + 48: uint16(1562), + 49: uint16(1254), + 50: uint16(1254), + 51: uint16(1254), + 52: uint16(1406), + 53: uint16(1254), + 54: uint16(1413), + 55: uint16(1254), + 56: uint16(1254), + 57: uint16(1254), + 58: uint16(1254), + 59: uint16(1254), + 60: uint16(1492), + 61: uint16(1493), + 62: uint16(1254), + 63: uint16(1254), + 64: uint16(1254), + 65: uint16(1543), + 66: uint16(1545), + 67: uint16(1508), + 68: uint16(1420), + 69: uint16(1419), + 70: uint16(1418), + 71: uint16(1417), + 72: uint16(1526), + 73: uint16(1385), + 74: uint16(1411), + 75: uint16(1404), + 76: uint16(1408), + 77: uint16(1487), + 78: uint16(1488), + 79: uint16(1486), + 80: uint16(1641), + 81: uint16(1493), + 82: uint16(1492), + 83: uint16(1254), + 84: uint16(1407), + 85: uint16(1455), + 86: uint16(1471), + 87: uint16(1454), + 88: uint16(1254), + 89: uint16(1254), + 90: uint16(1254), + 91: uint16(1254), + 92: uint16(1254), + 93: uint16(1254), + 94: uint16(1254), + 95: uint16(1254), + 96: uint16(1254), + 97: uint16(1254), + 98: uint16(1254), + 99: uint16(1254), + 100: uint16(1254), + 101: uint16(1254), + 102: uint16(1254), + 103: uint16(1254), + 104: uint16(1254), + 105: uint16(1254), + 106: uint16(1254), + 107: uint16(1254), + 108: uint16(1254), + 109: uint16(1254), + 110: uint16(1254), + 111: uint16(1254), + 112: uint16(1254), + 113: uint16(1254), + 114: uint16(1254), + 115: uint16(1254), + 116: uint16(1254), + 117: uint16(1254), + 118: uint16(1254), + 119: uint16(1254), + 120: uint16(1254), + 121: uint16(1254), + 122: uint16(1254), + 123: uint16(1254), + 124: uint16(1254), + 125: uint16(1254), + 126: uint16(1254), + 127: uint16(1254), + 128: uint16(1254), + 129: uint16(1254), + 130: uint16(1254), + 131: uint16(1254), + 132: uint16(1254), + 133: uint16(1254), + 134: uint16(1254), + 135: uint16(1254), + 136: uint16(1254), + 137: uint16(1254), + 138: uint16(1254), + 139: uint16(1254), + 140: uint16(1463), + 141: uint16(1470), + 142: uint16(1469), + 143: uint16(1468), + 144: uint16(1477), + 145: uint16(1467), + 146: uint16(1464), + 147: uint16(1457), + 148: uint16(1456), + 149: uint16(1458), + 150: uint16(1459), + 151: uint16(1278), + 152: uint16(1254), + 153: uint16(1275), + 154: uint16(1329), + 155: uint16(1254), + 156: uint16(1254), + 157: uint16(1254), + 158: uint16(1254), + 159: uint16(1254), + 160: uint16(1460), + 161: uint16(1287), + 162: uint16(1448), + 163: uint16(1447), + 164: uint16(1446), + 165: uint16(1254), + 166: uint16(1474), + 167: uint16(1461), + 168: uint16(1473), + 169: uint16(1472), + 170: uint16(1551), + 171: uint16(1615), + 172: uint16(1614), + 173: uint16(1509), + 174: uint16(1254), + 175: uint16(1254), + 176: uint16(1254), + 177: uint16(1254), + 178: uint16(1254), + 179: uint16(1254), + 180: uint16(1578), + 181: uint16(1254), + 182: uint16(1254), + 183: uint16(1254), + 184: uint16(1254), + 185: uint16(1254), + 186: uint16(1254), + 187: uint16(1254), + 188: uint16(1254), + 189: uint16(1254), + 190: uint16(1254), + 191: uint16(1254), + 192: uint16(1254), + 193: uint16(1254), + 194: uint16(1254), + 195: uint16(1254), + 196: uint16(1254), + 197: uint16(1254), + 198: uint16(1254), + 199: uint16(1254), + 200: uint16(1254), + 201: uint16(1254), + 202: uint16(1254), + 203: uint16(1387), + 204: uint16(1578), + 205: uint16(1578), + 206: uint16(1254), + 207: uint16(1287), + 208: uint16(1578), + 209: uint16(1578), + 210: uint16(1388), + 211: uint16(1388), + 212: uint16(1283), + 213: uint16(1283), + 214: uint16(1391), + 215: uint16(1558), + 216: uint16(1358), + 217: uint16(1358), + 218: uint16(1358), + 219: uint16(1358), + 220: uint16(1367), + 221: uint16(1358), + 222: uint16(1254), + 223: uint16(1254), + 224: uint16(1254), + 225: uint16(1254), + 226: uint16(1254), + 227: uint16(1254), + 228: uint16(1254), + 229: uint16(1254), + 230: uint16(1254), + 231: uint16(1254), + 232: uint16(1254), + 233: uint16(1254), + 234: uint16(1254), + 235: uint16(1254), + 236: uint16(1254), + 237: uint16(1548), + 238: uint16(1546), + 239: uint16(1254), + 240: uint16(1254), + 241: uint16(1254), + 242: uint16(1254), + 243: uint16(1254), + 244: uint16(1254), + 245: uint16(1254), + 246: uint16(1254), + 247: uint16(1254), + 248: uint16(1254), + 249: uint16(1254), + 250: uint16(1254), + 251: uint16(1254), + 252: uint16(1254), + 253: uint16(1254), + 254: uint16(1254), + 255: uint16(1254), + 256: uint16(1254), + 257: uint16(1254), + 258: uint16(1254), + 259: uint16(1254), + 260: uint16(1254), + 261: uint16(1254), + 262: uint16(1254), + 263: uint16(1254), + 264: uint16(1254), + 265: uint16(1254), + 266: uint16(1363), + 267: uint16(1254), + 268: uint16(1254), + 269: uint16(1254), + 270: uint16(1254), + 271: uint16(1254), + 272: uint16(1254), + 273: uint16(1254), + 274: uint16(1254), + 275: uint16(1254), + 276: uint16(1254), + 277: uint16(1254), + 278: uint16(1608), + 279: uint16(1254), + 280: uint16(1521), + 281: uint16(1343), + 282: uint16(1363), + 283: uint16(1363), + 284: uint16(1363), + 285: uint16(1363), + 286: uint16(1365), + 287: uint16(1344), + 288: uint16(1342), + 289: uint16(1357), + 290: uint16(1288), + 291: uint16(1261), + 292: uint16(1655), + 293: uint16(1423), + 294: uint16(1412), + 295: uint16(1364), + 296: uint16(1412), + 297: uint16(1652), 298: uint16(1410), - 299: uint16(1410), - 300: uint16(1397), + 299: uint16(1423), + 300: uint16(1423), 301: uint16(1410), - 302: uint16(1351), - 303: uint16(1637), - 304: uint16(1293), - 305: uint16(1615), - 306: uint16(1288), - 307: uint16(1384), - 308: uint16(1384), - 309: uint16(1384), - 310: uint16(1374), - 311: uint16(1374), - 312: uint16(1374), - 313: uint16(1374), - 314: uint16(1378), - 315: uint16(1378), - 316: uint16(1476), - 317: uint16(1351), - 318: uint16(1344), - 319: uint16(1243), - 320: uint16(1640), - 321: uint16(1640), - 322: uint16(1360), - 323: uint16(1360), - 324: uint16(1639), - 325: uint16(1639), - 326: uint16(1360), - 327: uint16(1496), - 328: uint16(1623), - 329: uint16(1419), - 330: uint16(1321), - 331: uint16(1327), - 332: uint16(1327), - 333: uint16(1327), - 334: uint16(1327), - 335: uint16(1360), - 336: uint16(1261), - 337: uint16(1397), - 338: uint16(1623), - 339: uint16(1623), - 340: uint16(1397), - 341: uint16(1419), - 342: uint16(1321), - 343: uint16(1397), - 344: uint16(1321), - 345: uint16(1397), - 346: uint16(1360), - 347: uint16(1261), - 348: uint16(1512), - 349: uint16(1634), - 350: uint16(1360), - 351: uint16(1261), - 352: uint16(1486), - 353: uint16(1360), - 354: uint16(1261), - 355: uint16(1360), - 356: uint16(1261), - 357: uint16(1486), - 358: uint16(1319), - 359: uint16(1319), - 360: uint16(1319), - 361: uint16(1308), - 362: uint16(1243), - 363: uint16(1243), - 364: uint16(1486), - 365: uint16(1319), - 366: uint16(1293), - 367: uint16(1319), - 368: uint16(1308), + 302: uint16(1423), + 303: uint16(1364), + 304: uint16(1652), + 305: uint16(1304), + 306: uint16(1630), + 307: uint16(1299), + 308: uint16(1397), + 309: uint16(1397), + 310: uint16(1397), + 311: uint16(1387), + 312: uint16(1387), + 313: uint16(1387), + 314: uint16(1387), + 315: uint16(1391), + 316: uint16(1391), + 317: uint16(1489), + 318: uint16(1364), + 319: uint16(1357), + 320: uint16(1254), + 321: uint16(1655), + 322: uint16(1655), + 323: uint16(1373), + 324: uint16(1373), + 325: uint16(1654), + 326: uint16(1654), + 327: uint16(1373), + 328: uint16(1509), + 329: uint16(1638), + 330: uint16(1432), + 331: uint16(1332), + 332: uint16(1338), + 333: uint16(1338), + 334: uint16(1338), + 335: uint16(1338), + 336: uint16(1373), + 337: uint16(1272), + 338: uint16(1410), + 339: uint16(1638), + 340: uint16(1638), + 341: uint16(1410), + 342: uint16(1432), + 343: uint16(1332), + 344: uint16(1410), + 345: uint16(1332), + 346: uint16(1410), + 347: uint16(1373), + 348: uint16(1272), + 349: uint16(1525), + 350: uint16(1649), + 351: uint16(1373), + 352: uint16(1272), + 353: uint16(1499), + 354: uint16(1373), + 355: uint16(1272), + 356: uint16(1373), + 357: uint16(1272), + 358: uint16(1499), + 359: uint16(1330), + 360: uint16(1330), + 361: uint16(1330), + 362: uint16(1319), + 363: uint16(1254), + 364: uint16(1254), + 365: uint16(1499), + 366: uint16(1330), + 367: uint16(1304), + 368: uint16(1330), 369: uint16(1319), - 370: uint16(1319), - 371: uint16(1582), - 372: uint16(1243), - 373: uint16(1490), - 374: uint16(1490), - 375: uint16(1486), - 376: uint16(1360), - 377: uint16(1574), - 378: uint16(1574), - 379: uint16(1387), - 380: uint16(1387), - 381: uint16(1392), - 382: uint16(1378), - 383: uint16(1481), - 384: uint16(1360), - 385: uint16(1243), - 386: uint16(1392), - 387: uint16(1390), - 388: uint16(1388), - 389: uint16(1397), - 390: uint16(1311), - 391: uint16(1596), - 392: uint16(1596), - 393: uint16(1592), - 394: uint16(1592), - 395: uint16(1592), - 396: uint16(1645), - 397: uint16(1645), - 398: uint16(1545), - 399: uint16(1608), - 400: uint16(1276), - 401: uint16(1276), - 402: uint16(1276), - 403: uint16(1276), - 404: uint16(1608), - 405: uint16(1295), - 406: uint16(1295), - 407: uint16(1277), - 408: uint16(1277), - 409: uint16(1276), - 410: uint16(1608), - 411: uint16(1243), - 412: uint16(1243), - 413: uint16(1243), - 414: uint16(1243), - 415: uint16(1243), - 416: uint16(1243), - 417: uint16(1603), - 418: uint16(1243), - 419: uint16(1540), - 420: uint16(1497), - 421: uint16(1364), - 422: uint16(1243), - 423: uint16(1243), - 424: uint16(1243), - 425: uint16(1243), - 426: uint16(1243), - 427: uint16(1243), - 428: uint16(1243), - 429: uint16(1243), - 430: uint16(1243), - 431: uint16(1243), - 432: uint16(1243), - 433: uint16(1243), - 434: uint16(1243), - 435: uint16(1243), - 436: uint16(1243), - 437: uint16(1243), - 438: uint16(1551), - 439: uint16(1243), - 440: uint16(1243), - 441: uint16(1243), - 442: uint16(1243), - 443: uint16(1243), - 444: uint16(1243), - 445: uint16(1243), - 446: uint16(1243), - 447: uint16(1243), - 448: uint16(1243), - 449: uint16(1424), - 450: uint16(1243), - 451: uint16(1246), - 452: uint16(1542), - 453: uint16(1243), - 454: uint16(1243), - 455: uint16(1243), - 456: uint16(1243), - 457: uint16(1243), - 458: uint16(1243), - 459: uint16(1243), - 460: uint16(1243), - 461: uint16(1401), - 462: uint16(1402), - 463: uint16(1365), - 464: uint16(1243), - 465: uint16(1243), - 466: uint16(1243), - 467: uint16(1243), - 468: uint16(1243), - 469: uint16(1243), - 470: uint16(1243), - 471: uint16(1416), - 472: uint16(1243), - 473: uint16(1243), - 474: uint16(1243), - 475: uint16(1411), - 476: uint16(1243), - 477: uint16(1243), - 478: uint16(1243), - 479: uint16(1243), - 480: uint16(1243), - 481: uint16(1243), - 482: uint16(1243), - 483: uint16(1243), - 484: uint16(1636), - 485: uint16(1243), - 486: uint16(1243), - 487: uint16(1243), - 488: uint16(1243), - 489: uint16(1243), - 490: uint16(1243), - 491: uint16(1511), - 492: uint16(1510), - 493: uint16(1243), - 494: uint16(1243), - 495: uint16(1362), - 496: uint16(1243), - 497: uint16(1243), - 498: uint16(1243), - 499: uint16(1243), - 500: uint16(1243), - 501: uint16(1243), - 502: uint16(1243), - 503: uint16(1243), - 504: uint16(1243), - 505: uint16(1243), - 506: uint16(1243), - 507: uint16(1243), - 508: uint16(1243), - 509: uint16(1291), - 510: uint16(1243), - 511: uint16(1243), - 512: uint16(1243), - 513: uint16(1243), - 514: uint16(1243), - 515: uint16(1243), - 516: uint16(1243), - 517: uint16(1243), - 518: uint16(1243), - 519: uint16(1243), - 520: uint16(1243), - 521: uint16(1243), - 522: uint16(1243), - 523: uint16(1243), - 524: uint16(1243), - 525: uint16(1243), - 526: uint16(1243), - 527: uint16(1243), - 528: uint16(1243), - 529: uint16(1243), - 530: uint16(1243), - 531: uint16(1243), - 532: uint16(1243), - 533: uint16(1389), - 534: uint16(1243), - 535: uint16(1243), - 536: uint16(1243), - 537: uint16(1243), - 538: uint16(1243), - 539: uint16(1243), - 540: uint16(1243), - 541: uint16(1243), - 542: uint16(1243), - 543: uint16(1243), - 544: uint16(1243), - 545: uint16(1243), - 546: uint16(1243), - 547: uint16(1243), - 548: uint16(1579), - 549: uint16(1379), - 550: uint16(1243), - 551: uint16(1243), - 552: uint16(1243), - 553: uint16(1243), - 554: uint16(1627), - 555: uint16(1243), - 556: uint16(1243), - 557: uint16(1243), - 558: uint16(1243), - 559: uint16(1243), - 560: uint16(1243), - 561: uint16(1243), - 562: uint16(1243), - 563: uint16(1243), - 564: uint16(1243), - 565: uint16(1243), - 566: uint16(1243), - 567: uint16(1243), - 568: uint16(1243), - 569: uint16(1619), - 570: uint16(1335), - 571: uint16(1425), - 572: uint16(1243), - 573: uint16(1428), - 574: uint16(1265), - 575: uint16(1243), - 576: uint16(1255), - 577: uint16(1243), - 578: uint16(1243), + 370: uint16(1330), + 371: uint16(1330), + 372: uint16(1596), + 373: uint16(1254), + 374: uint16(1503), + 375: uint16(1503), + 376: uint16(1499), + 377: uint16(1373), + 378: uint16(1588), + 379: uint16(1588), + 380: uint16(1400), + 381: uint16(1400), + 382: uint16(1405), + 383: uint16(1391), + 384: uint16(1494), + 385: uint16(1373), + 386: uint16(1254), + 387: uint16(1405), + 388: uint16(1403), + 389: uint16(1401), + 390: uint16(1410), + 391: uint16(1322), + 392: uint16(1611), + 393: uint16(1611), + 394: uint16(1607), + 395: uint16(1607), + 396: uint16(1607), + 397: uint16(1660), + 398: uint16(1660), + 399: uint16(1558), + 400: uint16(1623), + 401: uint16(1287), + 402: uint16(1287), + 403: uint16(1287), + 404: uint16(1287), + 405: uint16(1623), + 406: uint16(1306), + 407: uint16(1306), + 408: uint16(1288), + 409: uint16(1288), + 410: uint16(1287), + 411: uint16(1623), + 412: uint16(1254), + 413: uint16(1254), + 414: uint16(1254), + 415: uint16(1254), + 416: uint16(1254), + 417: uint16(1254), + 418: uint16(1618), + 419: uint16(1254), + 420: uint16(1553), + 421: uint16(1510), + 422: uint16(1377), + 423: uint16(1254), + 424: uint16(1254), + 425: uint16(1254), + 426: uint16(1254), + 427: uint16(1254), + 428: uint16(1254), + 429: uint16(1254), + 430: uint16(1254), + 431: uint16(1254), + 432: uint16(1254), + 433: uint16(1254), + 434: uint16(1254), + 435: uint16(1254), + 436: uint16(1254), + 437: uint16(1254), + 438: uint16(1254), + 439: uint16(1564), + 440: uint16(1254), + 441: uint16(1254), + 442: uint16(1254), + 443: uint16(1254), + 444: uint16(1254), + 445: uint16(1254), + 446: uint16(1254), + 447: uint16(1254), + 448: uint16(1254), + 449: uint16(1254), + 450: uint16(1254), + 451: uint16(1437), + 452: uint16(1254), + 453: uint16(1257), + 454: uint16(1555), + 455: uint16(1254), + 456: uint16(1254), + 457: uint16(1254), + 458: uint16(1254), + 459: uint16(1254), + 460: uint16(1254), + 461: uint16(1254), + 462: uint16(1254), + 463: uint16(1414), + 464: uint16(1415), + 465: uint16(1378), + 466: uint16(1254), + 467: uint16(1254), + 468: uint16(1254), + 469: uint16(1254), + 470: uint16(1254), + 471: uint16(1254), + 472: uint16(1254), + 473: uint16(1429), + 474: uint16(1254), + 475: uint16(1254), + 476: uint16(1254), + 477: uint16(1424), + 478: uint16(1254), + 479: uint16(1254), + 480: uint16(1254), + 481: uint16(1254), + 482: uint16(1254), + 483: uint16(1254), + 484: uint16(1254), + 485: uint16(1254), + 486: uint16(1651), + 487: uint16(1254), + 488: uint16(1254), + 489: uint16(1254), + 490: uint16(1254), + 491: uint16(1254), + 492: uint16(1254), + 493: uint16(1524), + 494: uint16(1523), + 495: uint16(1254), + 496: uint16(1254), + 497: uint16(1375), + 498: uint16(1254), + 499: uint16(1254), + 500: uint16(1254), + 501: uint16(1254), + 502: uint16(1254), + 503: uint16(1254), + 504: uint16(1254), + 505: uint16(1254), + 506: uint16(1254), + 507: uint16(1254), + 508: uint16(1254), + 509: uint16(1254), + 510: uint16(1254), + 511: uint16(1302), + 512: uint16(1254), + 513: uint16(1254), + 514: uint16(1254), + 515: uint16(1254), + 516: uint16(1254), + 517: uint16(1254), + 518: uint16(1254), + 519: uint16(1254), + 520: uint16(1254), + 521: uint16(1254), + 522: uint16(1254), + 523: uint16(1254), + 524: uint16(1254), + 525: uint16(1254), + 526: uint16(1254), + 527: uint16(1254), + 528: uint16(1254), + 529: uint16(1254), + 530: uint16(1254), + 531: uint16(1254), + 532: uint16(1254), + 533: uint16(1254), + 534: uint16(1254), + 535: uint16(1402), + 536: uint16(1254), + 537: uint16(1254), + 538: uint16(1254), + 539: uint16(1254), + 540: uint16(1254), + 541: uint16(1254), + 542: uint16(1254), + 543: uint16(1254), + 544: uint16(1254), + 545: uint16(1254), + 546: uint16(1254), + 547: uint16(1254), + 548: uint16(1254), + 549: uint16(1254), + 550: uint16(1593), + 551: uint16(1392), + 552: uint16(1254), + 553: uint16(1254), + 554: uint16(1254), + 555: uint16(1254), + 556: uint16(1642), + 557: uint16(1254), + 558: uint16(1254), + 559: uint16(1254), + 560: uint16(1254), + 561: uint16(1352), + 562: uint16(1254), + 563: uint16(1254), + 564: uint16(1254), + 565: uint16(1254), + 566: uint16(1254), + 567: uint16(1254), + 568: uint16(1254), + 569: uint16(1254), + 570: uint16(1254), + 571: uint16(1254), + 572: uint16(1254), + 573: uint16(1634), + 574: uint16(1346), + 575: uint16(1438), + 576: uint16(1254), + 577: uint16(1441), + 578: uint16(1276), + 579: uint16(1254), + 580: uint16(1266), + 581: uint16(1254), + 582: uint16(1254), } /********** End of lemon-generated parsing tables *****************************/ @@ -152742,7 +154245,7 @@ var _yy_default = [579]uint16{ // ** to revert to identifiers if they keyword does not apply in the context where // ** it appears. // */ -var _yyFallback = [185]uint16{ +var _yyFallback = [186]uint16{ 2: uint16(59), 3: uint16(59), 4: uint16(59), @@ -152855,8 +154358,9 @@ type yyStackEntry = TyyStackEntry type TyyParser1 = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser1 = TyyParser1 @@ -152864,14 +154368,46 @@ type yyParser1 = TyyParser1 type TyyParser = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser = TyyParser /* #include */ +// C documentation +// +// /* +// ** Try to increase the size of the parser stack. Return the number +// ** of errors. Return 0 on success. +// */ +func _yyGrowStack(tls *libc.TLS, p uintptr) (r int32) { + var idx, newSize, oldSize int32 + var pNew uintptr + _, _, _, _ = idx, newSize, oldSize, pNew + oldSize = int32(1) + int32((int64((*TyyParser)(unsafe.Pointer(p)).FyystackEnd)-int64((*TyyParser)(unsafe.Pointer(p)).Fyystack))/24) + newSize = oldSize*int32(2) + int32(100) + idx = int32((int64((*TyyParser)(unsafe.Pointer(p)).Fyytos) - int64((*TyyParser)(unsafe.Pointer(p)).Fyystack)) / 24) + if (*TyyParser)(unsafe.Pointer(p)).Fyystack == p+32 { + pNew = _parserStackRealloc(tls, uintptr(0), uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + libc.Xmemcpy(tls, pNew, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(oldSize)*uint64(24)) + } else { + pNew = _parserStackRealloc(tls, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + } + (*TyyParser)(unsafe.Pointer(p)).Fyystack = pNew + (*TyyParser)(unsafe.Pointer(p)).Fyytos = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(idx)*24 + (*TyyParser)(unsafe.Pointer(p)).FyystackEnd = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(newSize-int32(1))*24 + return 0 +} + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -152887,10 +154423,11 @@ func _sqlite3ParserInit(tls *libc.TLS, yypRawParser uintptr, pParse uintptr) { _ = yypParser yypParser = yypRawParser (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = yypParser + 16 - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fstateno = uint16(0) - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fmajor = uint16(0) - (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = yypParser + 16 + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack = yypParser + 32 + (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fstateno = uint16(0) + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fmajor = uint16(0) } // C documentation @@ -152918,103 +154455,105 @@ func _yy_destructor(tls *libc.TLS, yypParser uintptr, yymajor uint16, yypminor u ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case int32(204): /* select */ + case int32(205): /* select */ + fallthrough + case int32(240): /* selectnowith */ fallthrough - case int32(239): /* selectnowith */ + case int32(241): /* oneselect */ fallthrough - case int32(240): /* oneselect */ + case int32(253): /* values */ fallthrough - case int32(252): /* values */ + case int32(255): /* mvalues */ _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(216): /* term */ + case int32(217): /* term */ fallthrough - case int32(217): /* expr */ + case int32(218): /* expr */ fallthrough - case int32(246): /* where_opt */ + case int32(247): /* where_opt */ fallthrough - case int32(248): /* having_opt */ + case int32(249): /* having_opt */ fallthrough - case int32(267): /* where_opt_ret */ + case int32(269): /* where_opt_ret */ fallthrough - case int32(278): /* case_operand */ + case int32(280): /* case_operand */ fallthrough - case int32(280): /* case_else */ + case int32(282): /* case_else */ fallthrough - case int32(283): /* vinto */ + case int32(285): /* vinto */ fallthrough - case int32(290): /* when_clause */ + case int32(292): /* when_clause */ fallthrough - case int32(295): /* key_opt */ + case int32(297): /* key_opt */ fallthrough - case int32(311): /* filter_clause */ + case int32(314): /* filter_clause */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(221): /* eidlist_opt */ + case int32(222): /* eidlist_opt */ fallthrough - case int32(231): /* sortlist */ + case int32(232): /* sortlist */ fallthrough - case int32(232): /* eidlist */ + case int32(233): /* eidlist */ fallthrough - case int32(244): /* selcollist */ + case int32(245): /* selcollist */ fallthrough - case int32(247): /* groupby_opt */ + case int32(248): /* groupby_opt */ fallthrough - case int32(249): /* orderby_opt */ + case int32(250): /* orderby_opt */ fallthrough - case int32(253): /* nexprlist */ + case int32(254): /* nexprlist */ fallthrough - case int32(254): /* sclp */ + case int32(256): /* sclp */ fallthrough - case int32(261): /* exprlist */ + case int32(263): /* exprlist */ fallthrough - case int32(268): /* setlist */ + case int32(270): /* setlist */ fallthrough - case int32(277): /* paren_exprlist */ + case int32(279): /* paren_exprlist */ fallthrough - case int32(279): /* case_exprlist */ + case int32(281): /* case_exprlist */ fallthrough - case int32(310): /* part_opt */ + case int32(313): /* part_opt */ _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(238): /* fullname */ + case int32(239): /* fullname */ fallthrough - case int32(245): /* from */ + case int32(246): /* from */ fallthrough - case int32(256): /* seltablist */ + case int32(258): /* seltablist */ fallthrough - case int32(257): /* stl_prefix */ + case int32(259): /* stl_prefix */ fallthrough - case int32(262): /* xfullname */ + case int32(264): /* xfullname */ _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(241): /* wqlist */ + case int32(242): /* wqlist */ _sqlite3WithDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(251): /* window_clause */ + case int32(252): /* window_clause */ fallthrough - case int32(306): /* windowdefn_list */ + case int32(309): /* windowdefn_list */ _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(263): /* idlist */ + case int32(265): /* idlist */ fallthrough - case int32(270): /* idlist_opt */ + case int32(272): /* idlist_opt */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(273): /* filter_over */ + case int32(275): /* filter_over */ fallthrough - case int32(307): /* windowdefn */ + case int32(310): /* windowdefn */ fallthrough - case int32(308): /* window */ + case int32(311): /* window */ fallthrough - case int32(309): /* frame_opt */ + case int32(312): /* frame_opt */ fallthrough - case int32(312): /* over_clause */ + case int32(315): /* over_clause */ _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(286): /* trigger_cmd_list */ + case int32(288): /* trigger_cmd_list */ fallthrough - case int32(291): /* trigger_cmd */ + case int32(293): /* trigger_cmd */ _sqlite3DeleteTriggerStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(288): /* trigger_event */ + case int32(290): /* trigger_event */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TTrigEvent)(unsafe.Pointer(yypminor))).Fb) - case int32(314): /* frame_bound */ + case int32(317): /* frame_bound */ fallthrough - case int32(315): /* frame_bound_s */ + case int32(318): /* frame_bound_s */ fallthrough - case int32(316): /* frame_bound_e */ + case int32(319): /* frame_bound_e */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TFrameBound)(unsafe.Pointer(yypminor))).FpExpr) break /********* End destructor definitions *****************************************/ @@ -153048,11 +154587,20 @@ func _yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var pParser, yytos uintptr + _, _ = pParser, yytos pParser = p - for (*TyyParser)(unsafe.Pointer(pParser)).Fyytos > pParser+16 { - _yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling yy_pop_parser_stack() for each + ** element left in the stack */ + yytos = (*TyyParser)(unsafe.Pointer(pParser)).Fyytos + for yytos > (*TyyParser)(unsafe.Pointer(pParser)).Fyystack { + if int32((*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor) >= int32(YY_MIN_DSTRCTR) { + _yy_destructor(tls, pParser, (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor, yytos+8) + } + yytos -= 24 + } + if (*TyyParser)(unsafe.Pointer(pParser)).Fyystack != pParser+32 { + Xsqlite3_free(tls, (*TyyParser)(unsafe.Pointer(pParser)).Fyystack) } } @@ -153133,13 +154681,13 @@ func _yyStackOverflow(tls *libc.TLS, yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse - for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > yypParser+16 { + for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack { _yy_pop_parser_stack(tls, yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23338, 0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) /******** End %stack_overflow code ********************************************/ /* Suppress warning about unused %extra_argument var */ (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse @@ -153158,15 +154706,18 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint var yytos uintptr _ = yytos (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos += 24 - if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 - _yyStackOverflow(tls, yypParser) - return + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + if yytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { + if _yyGrowStack(tls, yypParser) != 0 { + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 + _yyStackOverflow(tls, yypParser) + return + } + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos } if int32(yyNewState) > int32(YY_MAX_SHIFT) { yyNewState = uint16(int32(yyNewState) + (libc.Int32FromInt32(YY_MIN_REDUCE) - libc.Int32FromInt32(YY_MIN_SHIFTREDUCE))) } - yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos (*TyyStackEntry)(unsafe.Pointer(yytos)).Fstateno = yyNewState (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor = yyMajor *(*TToken)(unsafe.Pointer(yytos + 8)) = yyMinor @@ -153176,419 +154727,423 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint // // /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side // ** of that rule */ -var _yyRuleInfoLhs = [405]uint16{ - 0: uint16(189), - 1: uint16(189), - 2: uint16(188), - 3: uint16(190), - 4: uint16(191), - 5: uint16(191), - 6: uint16(191), - 7: uint16(191), - 8: uint16(190), - 9: uint16(190), - 10: uint16(190), - 11: uint16(190), - 12: uint16(190), - 13: uint16(195), - 14: uint16(197), - 15: uint16(199), - 16: uint16(199), - 17: uint16(198), - 18: uint16(198), - 19: uint16(196), - 20: uint16(196), - 21: uint16(203), - 22: uint16(203), - 23: uint16(205), - 24: uint16(205), - 25: uint16(206), - 26: uint16(208), - 27: uint16(208), - 28: uint16(208), - 29: uint16(209), - 30: uint16(213), - 31: uint16(214), - 32: uint16(215), - 33: uint16(215), - 34: uint16(215), - 35: uint16(215), - 36: uint16(215), - 37: uint16(215), - 38: uint16(215), - 39: uint16(215), - 40: uint16(215), - 41: uint16(215), - 42: uint16(215), - 43: uint16(215), - 44: uint16(215), - 45: uint16(224), - 46: uint16(224), - 47: uint16(220), - 48: uint16(220), - 49: uint16(222), - 50: uint16(222), - 51: uint16(225), - 52: uint16(225), - 53: uint16(225), - 54: uint16(225), - 55: uint16(226), - 56: uint16(226), - 57: uint16(226), - 58: uint16(226), - 59: uint16(226), - 60: uint16(223), - 61: uint16(223), - 62: uint16(227), - 63: uint16(227), - 64: uint16(227), - 65: uint16(202), - 66: uint16(229), - 67: uint16(230), - 68: uint16(230), - 69: uint16(230), - 70: uint16(230), - 71: uint16(230), - 72: uint16(233), - 73: uint16(218), - 74: uint16(218), - 75: uint16(234), - 76: uint16(234), - 77: uint16(235), - 78: uint16(235), - 79: uint16(190), - 80: uint16(237), - 81: uint16(237), - 82: uint16(190), - 83: uint16(190), - 84: uint16(190), - 85: uint16(204), - 86: uint16(204), - 87: uint16(204), - 88: uint16(239), - 89: uint16(242), - 90: uint16(242), - 91: uint16(242), - 92: uint16(240), - 93: uint16(240), - 94: uint16(252), - 95: uint16(252), - 96: uint16(243), - 97: uint16(243), - 98: uint16(243), - 99: uint16(254), +var _yyRuleInfoLhs = [409]uint16{ + 0: uint16(190), + 1: uint16(190), + 2: uint16(189), + 3: uint16(191), + 4: uint16(192), + 5: uint16(192), + 6: uint16(192), + 7: uint16(192), + 8: uint16(191), + 9: uint16(191), + 10: uint16(191), + 11: uint16(191), + 12: uint16(191), + 13: uint16(196), + 14: uint16(198), + 15: uint16(200), + 16: uint16(200), + 17: uint16(199), + 18: uint16(199), + 19: uint16(197), + 20: uint16(197), + 21: uint16(204), + 22: uint16(204), + 23: uint16(206), + 24: uint16(206), + 25: uint16(207), + 26: uint16(209), + 27: uint16(209), + 28: uint16(209), + 29: uint16(210), + 30: uint16(214), + 31: uint16(215), + 32: uint16(216), + 33: uint16(216), + 34: uint16(216), + 35: uint16(216), + 36: uint16(216), + 37: uint16(216), + 38: uint16(216), + 39: uint16(216), + 40: uint16(216), + 41: uint16(216), + 42: uint16(216), + 43: uint16(216), + 44: uint16(216), + 45: uint16(225), + 46: uint16(225), + 47: uint16(221), + 48: uint16(221), + 49: uint16(223), + 50: uint16(223), + 51: uint16(226), + 52: uint16(226), + 53: uint16(226), + 54: uint16(226), + 55: uint16(227), + 56: uint16(227), + 57: uint16(227), + 58: uint16(227), + 59: uint16(227), + 60: uint16(224), + 61: uint16(224), + 62: uint16(228), + 63: uint16(228), + 64: uint16(228), + 65: uint16(203), + 66: uint16(230), + 67: uint16(231), + 68: uint16(231), + 69: uint16(231), + 70: uint16(231), + 71: uint16(231), + 72: uint16(234), + 73: uint16(219), + 74: uint16(219), + 75: uint16(235), + 76: uint16(235), + 77: uint16(236), + 78: uint16(236), + 79: uint16(191), + 80: uint16(238), + 81: uint16(238), + 82: uint16(191), + 83: uint16(191), + 84: uint16(191), + 85: uint16(205), + 86: uint16(205), + 87: uint16(205), + 88: uint16(240), + 89: uint16(243), + 90: uint16(243), + 91: uint16(243), + 92: uint16(241), + 93: uint16(241), + 94: uint16(253), + 95: uint16(241), + 96: uint16(255), + 97: uint16(255), + 98: uint16(244), + 99: uint16(244), 100: uint16(244), - 101: uint16(244), - 102: uint16(244), - 103: uint16(255), - 104: uint16(255), - 105: uint16(245), - 106: uint16(245), - 107: uint16(257), - 108: uint16(257), - 109: uint16(256), - 110: uint16(256), - 111: uint16(256), - 112: uint16(256), - 113: uint16(256), - 114: uint16(200), - 115: uint16(200), - 116: uint16(238), - 117: uint16(238), - 118: uint16(262), - 119: uint16(262), - 120: uint16(262), - 121: uint16(262), - 122: uint16(258), - 123: uint16(258), - 124: uint16(258), - 125: uint16(258), - 126: uint16(259), - 127: uint16(259), - 128: uint16(259), - 129: uint16(264), - 130: uint16(260), - 131: uint16(260), - 132: uint16(249), - 133: uint16(249), - 134: uint16(231), - 135: uint16(231), - 136: uint16(219), - 137: uint16(219), - 138: uint16(219), - 139: uint16(265), - 140: uint16(265), - 141: uint16(265), - 142: uint16(247), - 143: uint16(247), + 101: uint16(256), + 102: uint16(245), + 103: uint16(245), + 104: uint16(245), + 105: uint16(257), + 106: uint16(257), + 107: uint16(246), + 108: uint16(246), + 109: uint16(259), + 110: uint16(259), + 111: uint16(258), + 112: uint16(258), + 113: uint16(258), + 114: uint16(258), + 115: uint16(258), + 116: uint16(201), + 117: uint16(201), + 118: uint16(239), + 119: uint16(239), + 120: uint16(264), + 121: uint16(264), + 122: uint16(264), + 123: uint16(264), + 124: uint16(260), + 125: uint16(260), + 126: uint16(260), + 127: uint16(260), + 128: uint16(261), + 129: uint16(261), + 130: uint16(261), + 131: uint16(266), + 132: uint16(262), + 133: uint16(262), + 134: uint16(250), + 135: uint16(250), + 136: uint16(232), + 137: uint16(232), + 138: uint16(220), + 139: uint16(220), + 140: uint16(220), + 141: uint16(267), + 142: uint16(267), + 143: uint16(267), 144: uint16(248), 145: uint16(248), - 146: uint16(250), - 147: uint16(250), - 148: uint16(250), - 149: uint16(250), - 150: uint16(190), - 151: uint16(246), - 152: uint16(246), - 153: uint16(267), - 154: uint16(267), - 155: uint16(267), - 156: uint16(267), - 157: uint16(190), - 158: uint16(268), - 159: uint16(268), - 160: uint16(268), - 161: uint16(268), - 162: uint16(190), - 163: uint16(190), - 164: uint16(271), - 165: uint16(271), - 166: uint16(271), - 167: uint16(271), - 168: uint16(271), - 169: uint16(271), - 170: uint16(272), - 171: uint16(269), - 172: uint16(269), - 173: uint16(270), - 174: uint16(270), - 175: uint16(263), - 176: uint16(263), - 177: uint16(217), - 178: uint16(217), - 179: uint16(217), - 180: uint16(217), - 181: uint16(216), - 182: uint16(216), - 183: uint16(216), + 146: uint16(249), + 147: uint16(249), + 148: uint16(251), + 149: uint16(251), + 150: uint16(251), + 151: uint16(251), + 152: uint16(191), + 153: uint16(247), + 154: uint16(247), + 155: uint16(269), + 156: uint16(269), + 157: uint16(269), + 158: uint16(269), + 159: uint16(191), + 160: uint16(270), + 161: uint16(270), + 162: uint16(270), + 163: uint16(270), + 164: uint16(191), + 165: uint16(191), + 166: uint16(273), + 167: uint16(273), + 168: uint16(273), + 169: uint16(273), + 170: uint16(273), + 171: uint16(273), + 172: uint16(274), + 173: uint16(271), + 174: uint16(271), + 175: uint16(272), + 176: uint16(272), + 177: uint16(265), + 178: uint16(265), + 179: uint16(218), + 180: uint16(218), + 181: uint16(218), + 182: uint16(218), + 183: uint16(217), 184: uint16(217), 185: uint16(217), - 186: uint16(217), - 187: uint16(217), - 188: uint16(217), - 189: uint16(217), - 190: uint16(217), - 191: uint16(217), - 192: uint16(217), - 193: uint16(216), - 194: uint16(217), + 186: uint16(218), + 187: uint16(218), + 188: uint16(218), + 189: uint16(218), + 190: uint16(218), + 191: uint16(218), + 192: uint16(218), + 193: uint16(218), + 194: uint16(218), 195: uint16(217), - 196: uint16(217), - 197: uint16(217), - 198: uint16(217), - 199: uint16(217), - 200: uint16(217), - 201: uint16(217), - 202: uint16(217), - 203: uint16(274), - 204: uint16(217), - 205: uint16(217), - 206: uint16(217), - 207: uint16(217), - 208: uint16(217), - 209: uint16(217), - 210: uint16(217), - 211: uint16(217), - 212: uint16(217), - 213: uint16(217), - 214: uint16(217), - 215: uint16(217), - 216: uint16(275), - 217: uint16(275), - 218: uint16(217), - 219: uint16(276), - 220: uint16(276), - 221: uint16(217), - 222: uint16(217), - 223: uint16(217), - 224: uint16(217), - 225: uint16(217), - 226: uint16(217), - 227: uint16(279), - 228: uint16(279), - 229: uint16(280), - 230: uint16(280), - 231: uint16(278), - 232: uint16(261), - 233: uint16(253), - 234: uint16(253), - 235: uint16(277), - 236: uint16(277), - 237: uint16(190), - 238: uint16(281), - 239: uint16(281), - 240: uint16(221), - 241: uint16(221), - 242: uint16(232), - 243: uint16(232), - 244: uint16(282), - 245: uint16(282), - 246: uint16(190), - 247: uint16(190), - 248: uint16(190), - 249: uint16(283), - 250: uint16(283), - 251: uint16(190), - 252: uint16(190), - 253: uint16(190), - 254: uint16(190), - 255: uint16(190), - 256: uint16(211), - 257: uint16(212), - 258: uint16(190), - 259: uint16(285), - 260: uint16(287), + 196: uint16(218), + 197: uint16(218), + 198: uint16(218), + 199: uint16(218), + 200: uint16(218), + 201: uint16(218), + 202: uint16(218), + 203: uint16(218), + 204: uint16(218), + 205: uint16(276), + 206: uint16(218), + 207: uint16(218), + 208: uint16(218), + 209: uint16(218), + 210: uint16(218), + 211: uint16(218), + 212: uint16(218), + 213: uint16(218), + 214: uint16(218), + 215: uint16(218), + 216: uint16(218), + 217: uint16(218), + 218: uint16(277), + 219: uint16(277), + 220: uint16(218), + 221: uint16(278), + 222: uint16(278), + 223: uint16(218), + 224: uint16(218), + 225: uint16(218), + 226: uint16(218), + 227: uint16(218), + 228: uint16(218), + 229: uint16(281), + 230: uint16(281), + 231: uint16(282), + 232: uint16(282), + 233: uint16(280), + 234: uint16(263), + 235: uint16(254), + 236: uint16(254), + 237: uint16(279), + 238: uint16(279), + 239: uint16(191), + 240: uint16(283), + 241: uint16(283), + 242: uint16(222), + 243: uint16(222), + 244: uint16(233), + 245: uint16(233), + 246: uint16(284), + 247: uint16(284), + 248: uint16(191), + 249: uint16(191), + 250: uint16(191), + 251: uint16(285), + 252: uint16(285), + 253: uint16(191), + 254: uint16(191), + 255: uint16(191), + 256: uint16(191), + 257: uint16(191), + 258: uint16(212), + 259: uint16(213), + 260: uint16(191), 261: uint16(287), - 262: uint16(287), - 263: uint16(288), - 264: uint16(288), - 265: uint16(288), + 262: uint16(289), + 263: uint16(289), + 264: uint16(289), + 265: uint16(290), 266: uint16(290), 267: uint16(290), - 268: uint16(286), - 269: uint16(286), - 270: uint16(292), - 271: uint16(293), - 272: uint16(293), - 273: uint16(291), - 274: uint16(291), - 275: uint16(291), - 276: uint16(291), - 277: uint16(217), - 278: uint16(217), - 279: uint16(236), - 280: uint16(236), - 281: uint16(236), - 282: uint16(190), - 283: uint16(190), - 284: uint16(190), - 285: uint16(295), - 286: uint16(295), - 287: uint16(190), - 288: uint16(190), - 289: uint16(190), - 290: uint16(190), - 291: uint16(190), - 292: uint16(190), - 293: uint16(190), - 294: uint16(296), - 295: uint16(190), - 296: uint16(190), - 297: uint16(190), - 298: uint16(298), - 299: uint16(300), - 300: uint16(301), - 301: uint16(301), - 302: uint16(302), - 303: uint16(266), - 304: uint16(266), - 305: uint16(305), - 306: uint16(305), - 307: uint16(305), - 308: uint16(304), - 309: uint16(241), - 310: uint16(241), - 311: uint16(306), - 312: uint16(307), - 313: uint16(308), - 314: uint16(308), - 315: uint16(308), - 316: uint16(308), - 317: uint16(308), - 318: uint16(309), - 319: uint16(309), - 320: uint16(309), - 321: uint16(313), - 322: uint16(315), - 323: uint16(315), + 268: uint16(292), + 269: uint16(292), + 270: uint16(288), + 271: uint16(288), + 272: uint16(294), + 273: uint16(295), + 274: uint16(295), + 275: uint16(293), + 276: uint16(293), + 277: uint16(293), + 278: uint16(293), + 279: uint16(218), + 280: uint16(218), + 281: uint16(237), + 282: uint16(237), + 283: uint16(237), + 284: uint16(191), + 285: uint16(191), + 286: uint16(191), + 287: uint16(297), + 288: uint16(297), + 289: uint16(191), + 290: uint16(191), + 291: uint16(191), + 292: uint16(191), + 293: uint16(191), + 294: uint16(191), + 295: uint16(191), + 296: uint16(298), + 297: uint16(191), + 298: uint16(191), + 299: uint16(191), + 300: uint16(300), + 301: uint16(302), + 302: uint16(303), + 303: uint16(303), + 304: uint16(304), + 305: uint16(268), + 306: uint16(268), + 307: uint16(307), + 308: uint16(307), + 309: uint16(307), + 310: uint16(306), + 311: uint16(308), + 312: uint16(242), + 313: uint16(242), + 314: uint16(309), + 315: uint16(310), + 316: uint16(311), + 317: uint16(311), + 318: uint16(311), + 319: uint16(311), + 320: uint16(311), + 321: uint16(312), + 322: uint16(312), + 323: uint16(312), 324: uint16(316), - 325: uint16(316), - 326: uint16(314), - 327: uint16(314), - 328: uint16(317), + 325: uint16(318), + 326: uint16(318), + 327: uint16(319), + 328: uint16(319), 329: uint16(317), - 330: uint16(318), - 331: uint16(318), - 332: uint16(318), - 333: uint16(251), - 334: uint16(273), - 335: uint16(273), - 336: uint16(273), - 337: uint16(312), - 338: uint16(312), - 339: uint16(311), - 340: uint16(185), - 341: uint16(186), - 342: uint16(186), - 343: uint16(187), - 344: uint16(187), + 330: uint16(317), + 331: uint16(320), + 332: uint16(320), + 333: uint16(321), + 334: uint16(321), + 335: uint16(321), + 336: uint16(252), + 337: uint16(275), + 338: uint16(275), + 339: uint16(275), + 340: uint16(315), + 341: uint16(315), + 342: uint16(314), + 343: uint16(217), + 344: uint16(186), 345: uint16(187), - 346: uint16(192), - 347: uint16(192), - 348: uint16(192), - 349: uint16(194), - 350: uint16(194), - 351: uint16(190), - 352: uint16(203), - 353: uint16(201), - 354: uint16(201), - 355: uint16(193), - 356: uint16(193), - 357: uint16(208), - 358: uint16(209), - 359: uint16(210), - 360: uint16(210), - 361: uint16(207), - 362: uint16(207), - 363: uint16(215), - 364: uint16(215), - 365: uint16(215), - 366: uint16(202), - 367: uint16(228), - 368: uint16(228), - 369: uint16(229), - 370: uint16(233), - 371: uint16(235), - 372: uint16(239), - 373: uint16(240), - 374: uint16(254), - 375: uint16(255), - 376: uint16(264), - 377: uint16(272), - 378: uint16(217), - 379: uint16(274), - 380: uint16(278), - 381: uint16(261), - 382: uint16(284), - 383: uint16(284), - 384: uint16(284), - 385: uint16(284), - 386: uint16(284), - 387: uint16(211), - 388: uint16(289), - 389: uint16(289), - 390: uint16(292), - 391: uint16(293), - 392: uint16(294), - 393: uint16(294), - 394: uint16(297), - 395: uint16(297), - 396: uint16(299), - 397: uint16(299), - 398: uint16(300), - 399: uint16(303), - 400: uint16(303), - 401: uint16(303), - 402: uint16(266), - 403: uint16(306), - 404: uint16(308), + 346: uint16(187), + 347: uint16(188), + 348: uint16(188), + 349: uint16(188), + 350: uint16(193), + 351: uint16(193), + 352: uint16(193), + 353: uint16(195), + 354: uint16(195), + 355: uint16(191), + 356: uint16(204), + 357: uint16(202), + 358: uint16(202), + 359: uint16(194), + 360: uint16(194), + 361: uint16(209), + 362: uint16(210), + 363: uint16(211), + 364: uint16(211), + 365: uint16(208), + 366: uint16(208), + 367: uint16(216), + 368: uint16(216), + 369: uint16(216), + 370: uint16(203), + 371: uint16(229), + 372: uint16(229), + 373: uint16(230), + 374: uint16(234), + 375: uint16(236), + 376: uint16(240), + 377: uint16(241), + 378: uint16(256), + 379: uint16(257), + 380: uint16(266), + 381: uint16(274), + 382: uint16(218), + 383: uint16(276), + 384: uint16(280), + 385: uint16(263), + 386: uint16(286), + 387: uint16(286), + 388: uint16(286), + 389: uint16(286), + 390: uint16(286), + 391: uint16(212), + 392: uint16(291), + 393: uint16(291), + 394: uint16(294), + 395: uint16(295), + 396: uint16(296), + 397: uint16(296), + 398: uint16(299), + 399: uint16(299), + 400: uint16(301), + 401: uint16(301), + 402: uint16(302), + 403: uint16(305), + 404: uint16(305), + 405: uint16(305), + 406: uint16(268), + 407: uint16(309), + 408: uint16(311), } // C documentation // // /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number // ** of symbols on the right-hand side of that rule. */ -var _yyRuleInfoNRhs = [405]int8{ +var _yyRuleInfoNRhs = [409]int8{ 0: int8(-int32(1)), 1: int8(-int32(3)), 2: int8(-int32(1)), @@ -153669,273 +155224,277 @@ var _yyRuleInfoNRhs = [405]int8{ 92: int8(-int32(9)), 93: int8(-int32(10)), 94: int8(-int32(4)), - 95: int8(-int32(5)), - 96: int8(-int32(1)), - 97: int8(-int32(1)), - 100: int8(-int32(5)), - 101: int8(-int32(3)), + 95: int8(-int32(1)), + 96: int8(-int32(5)), + 97: int8(-int32(5)), + 98: int8(-int32(1)), + 99: int8(-int32(1)), 102: int8(-int32(5)), - 103: int8(-int32(2)), - 106: int8(-int32(2)), - 107: int8(-int32(2)), - 109: int8(-int32(5)), - 110: int8(-int32(6)), - 111: int8(-int32(8)), + 103: int8(-int32(3)), + 104: int8(-int32(5)), + 105: int8(-int32(2)), + 108: int8(-int32(2)), + 109: int8(-int32(2)), + 111: int8(-int32(5)), 112: int8(-int32(6)), - 113: int8(-int32(6)), - 115: int8(-int32(2)), - 116: int8(-int32(1)), - 117: int8(-int32(3)), + 113: int8(-int32(8)), + 114: int8(-int32(6)), + 115: int8(-int32(6)), + 117: int8(-int32(2)), 118: int8(-int32(1)), 119: int8(-int32(3)), - 120: int8(-int32(5)), + 120: int8(-int32(1)), 121: int8(-int32(3)), - 122: int8(-int32(1)), - 123: int8(-int32(2)), - 124: int8(-int32(3)), - 125: int8(-int32(4)), - 126: int8(-int32(2)), + 122: int8(-int32(5)), + 123: int8(-int32(3)), + 124: int8(-int32(1)), + 125: int8(-int32(2)), + 126: int8(-int32(3)), 127: int8(-int32(4)), - 130: int8(-int32(3)), - 131: int8(-int32(2)), - 133: int8(-int32(3)), - 134: int8(-int32(5)), + 128: int8(-int32(2)), + 129: int8(-int32(4)), + 132: int8(-int32(3)), + 133: int8(-int32(2)), 135: int8(-int32(3)), - 136: int8(-int32(1)), - 137: int8(-int32(1)), - 139: int8(-int32(2)), - 140: int8(-int32(2)), - 143: int8(-int32(3)), - 145: int8(-int32(2)), + 136: int8(-int32(5)), + 137: int8(-int32(3)), + 138: int8(-int32(1)), + 139: int8(-int32(1)), + 141: int8(-int32(2)), + 142: int8(-int32(2)), + 145: int8(-int32(3)), 147: int8(-int32(2)), - 148: int8(-int32(4)), - 149: int8(-int32(4)), - 150: int8(-int32(6)), - 152: int8(-int32(2)), + 149: int8(-int32(2)), + 150: int8(-int32(4)), + 151: int8(-int32(4)), + 152: int8(-int32(6)), 154: int8(-int32(2)), - 155: int8(-int32(2)), - 156: int8(-int32(4)), - 157: int8(-int32(9)), - 158: int8(-int32(5)), - 159: int8(-int32(7)), - 160: int8(-int32(3)), - 161: int8(-int32(5)), - 162: int8(-int32(7)), - 163: int8(-int32(8)), - 165: int8(-int32(2)), - 166: int8(-int32(12)), - 167: int8(-int32(9)), - 168: int8(-int32(5)), - 169: int8(-int32(8)), - 170: int8(-int32(2)), - 171: int8(-int32(2)), - 172: int8(-int32(1)), - 174: int8(-int32(3)), - 175: int8(-int32(3)), - 176: int8(-int32(1)), + 156: int8(-int32(2)), + 157: int8(-int32(2)), + 158: int8(-int32(4)), + 159: int8(-int32(9)), + 160: int8(-int32(5)), + 161: int8(-int32(7)), + 162: int8(-int32(3)), + 163: int8(-int32(5)), + 164: int8(-int32(7)), + 165: int8(-int32(8)), + 167: int8(-int32(2)), + 168: int8(-int32(12)), + 169: int8(-int32(9)), + 170: int8(-int32(5)), + 171: int8(-int32(8)), + 172: int8(-int32(2)), + 173: int8(-int32(2)), + 174: int8(-int32(1)), + 176: int8(-int32(3)), 177: int8(-int32(3)), 178: int8(-int32(1)), 179: int8(-int32(3)), - 180: int8(-int32(5)), - 181: int8(-int32(1)), - 182: int8(-int32(1)), + 180: int8(-int32(1)), + 181: int8(-int32(3)), + 182: int8(-int32(5)), 183: int8(-int32(1)), 184: int8(-int32(1)), - 185: int8(-int32(3)), - 186: int8(-int32(6)), - 187: int8(-int32(5)), - 188: int8(-int32(8)), - 189: int8(-int32(4)), - 190: int8(-int32(6)), - 191: int8(-int32(9)), - 192: int8(-int32(5)), - 193: int8(-int32(1)), + 185: int8(-int32(1)), + 186: int8(-int32(1)), + 187: int8(-int32(3)), + 188: int8(-int32(6)), + 189: int8(-int32(5)), + 190: int8(-int32(8)), + 191: int8(-int32(4)), + 192: int8(-int32(6)), + 193: int8(-int32(9)), 194: int8(-int32(5)), - 195: int8(-int32(3)), - 196: int8(-int32(3)), + 195: int8(-int32(1)), + 196: int8(-int32(5)), 197: int8(-int32(3)), 198: int8(-int32(3)), 199: int8(-int32(3)), 200: int8(-int32(3)), 201: int8(-int32(3)), 202: int8(-int32(3)), - 203: int8(-int32(2)), + 203: int8(-int32(3)), 204: int8(-int32(3)), - 205: int8(-int32(5)), - 206: int8(-int32(2)), - 207: int8(-int32(3)), - 208: int8(-int32(3)), - 209: int8(-int32(4)), - 210: int8(-int32(6)), - 211: int8(-int32(5)), - 212: int8(-int32(2)), - 213: int8(-int32(2)), + 205: int8(-int32(2)), + 206: int8(-int32(3)), + 207: int8(-int32(5)), + 208: int8(-int32(2)), + 209: int8(-int32(3)), + 210: int8(-int32(3)), + 211: int8(-int32(4)), + 212: int8(-int32(6)), + 213: int8(-int32(5)), 214: int8(-int32(2)), - 215: int8(-int32(3)), - 216: int8(-int32(1)), - 217: int8(-int32(2)), - 218: int8(-int32(5)), - 219: int8(-int32(1)), - 220: int8(-int32(2)), - 221: int8(-int32(5)), - 222: int8(-int32(3)), + 215: int8(-int32(2)), + 216: int8(-int32(2)), + 217: int8(-int32(3)), + 218: int8(-int32(1)), + 219: int8(-int32(2)), + 220: int8(-int32(5)), + 221: int8(-int32(1)), + 222: int8(-int32(2)), 223: int8(-int32(5)), - 224: int8(-int32(5)), - 225: int8(-int32(4)), + 224: int8(-int32(3)), + 225: int8(-int32(5)), 226: int8(-int32(5)), - 227: int8(-int32(5)), - 228: int8(-int32(4)), - 229: int8(-int32(2)), - 233: int8(-int32(3)), - 234: int8(-int32(1)), - 236: int8(-int32(3)), - 237: int8(-int32(12)), - 238: int8(-int32(1)), - 241: int8(-int32(3)), - 242: int8(-int32(5)), + 227: int8(-int32(4)), + 228: int8(-int32(5)), + 229: int8(-int32(5)), + 230: int8(-int32(4)), + 231: int8(-int32(2)), + 235: int8(-int32(3)), + 236: int8(-int32(1)), + 238: int8(-int32(3)), + 239: int8(-int32(12)), + 240: int8(-int32(1)), 243: int8(-int32(3)), - 245: int8(-int32(2)), - 246: int8(-int32(4)), + 244: int8(-int32(5)), + 245: int8(-int32(3)), 247: int8(-int32(2)), - 248: int8(-int32(3)), + 248: int8(-int32(4)), 249: int8(-int32(2)), - 251: int8(-int32(3)), - 252: int8(-int32(5)), - 253: int8(-int32(6)), + 250: int8(-int32(3)), + 251: int8(-int32(2)), + 253: int8(-int32(3)), 254: int8(-int32(5)), 255: int8(-int32(6)), - 256: int8(-int32(2)), - 257: int8(-int32(2)), - 258: int8(-int32(5)), - 259: int8(-int32(11)), - 260: int8(-int32(1)), - 261: int8(-int32(2)), - 263: int8(-int32(1)), - 264: int8(-int32(1)), - 265: int8(-int32(3)), - 267: int8(-int32(2)), - 268: int8(-int32(3)), + 256: int8(-int32(5)), + 257: int8(-int32(6)), + 258: int8(-int32(2)), + 259: int8(-int32(2)), + 260: int8(-int32(5)), + 261: int8(-int32(11)), + 262: int8(-int32(1)), + 263: int8(-int32(2)), + 265: int8(-int32(1)), + 266: int8(-int32(1)), + 267: int8(-int32(3)), 269: int8(-int32(2)), 270: int8(-int32(3)), - 271: int8(-int32(3)), - 272: int8(-int32(2)), - 273: int8(-int32(9)), - 274: int8(-int32(8)), - 275: int8(-int32(6)), - 276: int8(-int32(3)), - 277: int8(-int32(4)), - 278: int8(-int32(6)), - 279: int8(-int32(1)), - 280: int8(-int32(1)), + 271: int8(-int32(2)), + 272: int8(-int32(3)), + 273: int8(-int32(3)), + 274: int8(-int32(2)), + 275: int8(-int32(9)), + 276: int8(-int32(8)), + 277: int8(-int32(6)), + 278: int8(-int32(3)), + 279: int8(-int32(4)), + 280: int8(-int32(6)), 281: int8(-int32(1)), - 282: int8(-int32(4)), - 283: int8(-int32(6)), - 284: int8(-int32(3)), - 286: int8(-int32(2)), - 287: int8(-int32(1)), - 288: int8(-int32(3)), + 282: int8(-int32(1)), + 283: int8(-int32(1)), + 284: int8(-int32(4)), + 285: int8(-int32(6)), + 286: int8(-int32(3)), + 288: int8(-int32(2)), 289: int8(-int32(1)), 290: int8(-int32(3)), - 291: int8(-int32(6)), - 292: int8(-int32(7)), + 291: int8(-int32(1)), + 292: int8(-int32(3)), 293: int8(-int32(6)), - 294: int8(-int32(1)), - 295: int8(-int32(8)), + 294: int8(-int32(7)), + 295: int8(-int32(6)), 296: int8(-int32(1)), - 297: int8(-int32(4)), - 298: int8(-int32(8)), - 300: int8(-int32(1)), - 301: int8(-int32(3)), + 297: int8(-int32(8)), + 298: int8(-int32(1)), + 299: int8(-int32(4)), + 300: int8(-int32(8)), 302: int8(-int32(1)), - 303: int8(-int32(2)), - 304: int8(-int32(3)), - 305: int8(-int32(1)), - 306: int8(-int32(2)), - 307: int8(-int32(3)), - 308: int8(-int32(6)), - 309: int8(-int32(1)), - 310: int8(-int32(3)), - 311: int8(-int32(3)), - 312: int8(-int32(5)), - 313: int8(-int32(5)), - 314: int8(-int32(6)), - 315: int8(-int32(4)), + 303: int8(-int32(3)), + 304: int8(-int32(1)), + 305: int8(-int32(2)), + 306: int8(-int32(3)), + 307: int8(-int32(1)), + 308: int8(-int32(2)), + 309: int8(-int32(3)), + 310: int8(-int32(6)), + 311: int8(-int32(1)), + 312: int8(-int32(1)), + 313: int8(-int32(3)), + 314: int8(-int32(3)), + 315: int8(-int32(5)), 316: int8(-int32(5)), - 317: int8(-int32(2)), - 319: int8(-int32(3)), - 320: int8(-int32(6)), - 321: int8(-int32(1)), - 322: int8(-int32(1)), - 323: int8(-int32(2)), + 317: int8(-int32(6)), + 318: int8(-int32(4)), + 319: int8(-int32(5)), + 320: int8(-int32(2)), + 322: int8(-int32(3)), + 323: int8(-int32(6)), 324: int8(-int32(1)), - 325: int8(-int32(2)), + 325: int8(-int32(1)), 326: int8(-int32(2)), - 327: int8(-int32(2)), + 327: int8(-int32(1)), + 328: int8(-int32(2)), 329: int8(-int32(2)), 330: int8(-int32(2)), - 331: int8(-int32(2)), - 332: int8(-int32(1)), + 332: int8(-int32(2)), 333: int8(-int32(2)), 334: int8(-int32(2)), 335: int8(-int32(1)), - 336: int8(-int32(1)), - 337: int8(-int32(4)), - 338: int8(-int32(2)), - 339: int8(-int32(5)), - 340: int8(-int32(1)), + 336: int8(-int32(2)), + 337: int8(-int32(2)), + 338: int8(-int32(1)), + 339: int8(-int32(1)), + 340: int8(-int32(4)), 341: int8(-int32(2)), - 342: int8(-int32(1)), + 342: int8(-int32(5)), 343: int8(-int32(1)), - 344: int8(-int32(2)), - 345: int8(-int32(3)), + 344: int8(-int32(1)), + 345: int8(-int32(2)), + 346: int8(-int32(1)), 347: int8(-int32(1)), 348: int8(-int32(2)), - 349: int8(-int32(1)), - 351: int8(-int32(2)), - 352: int8(-int32(1)), - 353: int8(-int32(4)), - 354: int8(-int32(2)), - 355: int8(-int32(1)), + 349: int8(-int32(3)), + 351: int8(-int32(1)), + 352: int8(-int32(2)), + 353: int8(-int32(1)), + 355: int8(-int32(2)), 356: int8(-int32(1)), - 357: int8(-int32(1)), - 358: int8(-int32(1)), + 357: int8(-int32(4)), + 358: int8(-int32(2)), 359: int8(-int32(1)), 360: int8(-int32(1)), - 361: int8(-int32(2)), - 363: int8(-int32(2)), - 364: int8(-int32(4)), + 361: int8(-int32(1)), + 362: int8(-int32(1)), + 363: int8(-int32(1)), + 364: int8(-int32(1)), 365: int8(-int32(2)), - 366: int8(-int32(2)), - 367: int8(-int32(3)), - 368: int8(-int32(1)), - 370: int8(-int32(1)), - 371: int8(-int32(1)), + 367: int8(-int32(2)), + 368: int8(-int32(4)), + 369: int8(-int32(2)), + 370: int8(-int32(2)), + 371: int8(-int32(3)), 372: int8(-int32(1)), - 373: int8(-int32(1)), - 374: int8(-int32(2)), + 374: int8(-int32(1)), 375: int8(-int32(1)), 376: int8(-int32(1)), - 378: int8(-int32(1)), + 377: int8(-int32(1)), + 378: int8(-int32(2)), 379: int8(-int32(1)), 380: int8(-int32(1)), - 381: int8(-int32(1)), 382: int8(-int32(1)), 383: int8(-int32(1)), 384: int8(-int32(1)), 385: int8(-int32(1)), 386: int8(-int32(1)), 387: int8(-int32(1)), - 389: int8(-int32(3)), + 388: int8(-int32(1)), + 389: int8(-int32(1)), 390: int8(-int32(1)), - 392: int8(-int32(1)), - 395: int8(-int32(1)), + 391: int8(-int32(1)), + 393: int8(-int32(3)), + 394: int8(-int32(1)), 396: int8(-int32(1)), - 397: int8(-int32(3)), - 398: int8(-int32(2)), - 400: int8(-int32(4)), - 401: int8(-int32(2)), - 403: int8(-int32(1)), - 404: int8(-int32(1)), + 399: int8(-int32(1)), + 400: int8(-int32(1)), + 401: int8(-int32(3)), + 402: int8(-int32(2)), + 404: int8(-int32(4)), + 405: int8(-int32(2)), + 407: int8(-int32(1)), + 408: int8(-int32(1)), } // C documentation @@ -153953,18 +155512,19 @@ var _yyRuleInfoNRhs = [405]int8{ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int32, yyLookaheadToken TToken, pParse uintptr) (r uint16) { bp := tls.Alloc(144) defer tls.Free(144) - var bNot, bNot1, nExpr, yygoto, yysize, v344 int32 + var bNot, bNot1, nExpr, yygoto, yysize int32 var n Tu32 - var p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v343, v345, v346, v347, v348 uintptr + var op Tu8 + var p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v347, v348, v349, v350, v351 uintptr var yyact uint16 - var v349 TToken + var v352 TToken var _ /* all at bp+104 */ TToken var _ /* as at bp+72 */ TToken var _ /* dest at bp+16 */ TSelectDest var _ /* t at bp+88 */ TToken var _ /* x at bp+56 */ TToken var _ /* yylhsminor at bp+0 */ TYYMINORTYPE - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v343, v344, v345, v346, v347, v348, v349 /* Amount to pop the stack */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, op, p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v347, v348, v349, v350, v351, v352 /* Amount to pop the stack */ _ = yyLookahead _ = yyLookaheadToken yymsp = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos @@ -153985,7 +155545,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _7 case uint32(7): goto _8 - case uint32(321): + case uint32(324): goto _9 case uint32(9): goto _10 @@ -154013,9 +155573,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _21 case uint32(81): goto _22 - case uint32(98): + case uint32(100): goto _23 - case uint32(244): + case uint32(246): goto _24 case uint32(16): goto _25 @@ -154039,7 +155599,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _34 case uint32(26): goto _35 - case uint32(104): + case uint32(106): goto _36 case uint32(27): goto _37 @@ -154113,17 +155673,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _71 case uint32(61): goto _72 - case uint32(171): + case uint32(173): goto _73 case uint32(80): goto _74 case uint32(63): goto _75 - case uint32(217): + case uint32(219): goto _76 - case uint32(220): + case uint32(222): goto _77 - case uint32(245): + case uint32(247): goto _78 case uint32(64): goto _79 @@ -154145,7 +155705,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _87 case uint32(77): goto _88 - case uint32(172): + case uint32(174): goto _89 case uint32(78): goto _90 @@ -154179,47 +155739,47 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _104 case uint32(95): goto _105 - case uint32(96): - goto _106 case uint32(97): + goto _106 + case uint32(96): goto _107 - case uint32(132): + case uint32(98): goto _108 case uint32(99): goto _109 - case uint32(142): + case uint32(134): goto _110 - case uint32(232): + case uint32(101): goto _111 - case uint32(235): + case uint32(144): goto _112 - case uint32(240): + case uint32(234): goto _113 - case uint32(100): + case uint32(237): goto _114 - case uint32(101): + case uint32(242): goto _115 case uint32(102): goto _116 - case uint32(115): - goto _117 case uint32(103): + goto _117 + case uint32(104): goto _118 - case uint32(256): + case uint32(117): goto _119 - case uint32(257): + case uint32(105): goto _120 - case uint32(108): + case uint32(258): goto _121 - case uint32(105): + case uint32(259): goto _122 - case uint32(106): + case uint32(110): goto _123 case uint32(107): goto _124 - case uint32(109): + case uint32(108): goto _125 - case uint32(110): + case uint32(109): goto _126 case uint32(111): goto _127 @@ -154227,13 +155787,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _128 case uint32(113): goto _129 - case uint32(129): - goto _130 case uint32(114): + goto _130 + case uint32(115): goto _131 - case uint32(116): + case uint32(131): goto _132 - case uint32(117): + case uint32(116): goto _133 case uint32(118): goto _134 @@ -154257,15 +155817,15 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _143 case uint32(128): goto _144 - case uint32(130): + case uint32(129): goto _145 - case uint32(131): + case uint32(130): goto _146 - case uint32(143): + case uint32(132): goto _147 case uint32(133): goto _148 - case uint32(134): + case uint32(145): goto _149 case uint32(135): goto _150 @@ -154273,49 +155833,49 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _151 case uint32(137): goto _152 - case uint32(141): - goto _153 case uint32(138): - goto _154 + goto _153 case uint32(139): + goto _154 + case uint32(143): goto _155 case uint32(140): goto _156 - case uint32(146): + case uint32(141): goto _157 - case uint32(144): + case uint32(142): goto _158 - case uint32(151): + case uint32(148): goto _159 - case uint32(153): + case uint32(146): goto _160 - case uint32(230): + case uint32(153): goto _161 - case uint32(231): + case uint32(155): goto _162 - case uint32(250): + case uint32(232): goto _163 - case uint32(152): + case uint32(233): goto _164 - case uint32(145): + case uint32(252): goto _165 case uint32(154): goto _166 - case uint32(229): + case uint32(147): goto _167 - case uint32(249): + case uint32(156): goto _168 - case uint32(147): + case uint32(231): goto _169 - case uint32(148): + case uint32(251): goto _170 case uint32(149): goto _171 case uint32(150): goto _172 - case uint32(155): + case uint32(151): goto _173 - case uint32(156): + case uint32(152): goto _174 case uint32(157): goto _175 @@ -154345,9 +155905,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _187 case uint32(170): goto _188 - case uint32(173): + case uint32(171): goto _189 - case uint32(174): + case uint32(172): goto _190 case uint32(175): goto _191 @@ -154361,13 +155921,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _195 case uint32(180): goto _196 - case uint32(182): - goto _197 case uint32(181): + goto _197 + case uint32(182): goto _198 - case uint32(183): - goto _199 case uint32(184): + goto _199 + case uint32(183): goto _200 case uint32(185): goto _201 @@ -154391,13 +155951,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _210 case uint32(195): goto _211 - case uint32(197): - goto _212 case uint32(196): + goto _212 + case uint32(197): goto _213 - case uint32(198): - goto _214 case uint32(199): + goto _214 + case uint32(198): goto _215 case uint32(200): goto _216 @@ -154423,23 +155983,23 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _226 case uint32(211): goto _227 - case uint32(213): - goto _228 case uint32(212): + goto _228 + case uint32(213): goto _229 - case uint32(214): - goto _230 case uint32(215): + goto _230 + case uint32(214): goto _231 - case uint32(219): - goto _232 case uint32(216): + goto _232 + case uint32(217): goto _233 - case uint32(218): - goto _234 case uint32(221): + goto _234 + case uint32(218): goto _235 - case uint32(222): + case uint32(220): goto _236 case uint32(223): goto _237 @@ -154453,35 +156013,35 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _241 case uint32(228): goto _242 - case uint32(233): + case uint32(229): goto _243 - case uint32(234): + case uint32(230): goto _244 - case uint32(241): + case uint32(235): goto _245 case uint32(236): goto _246 - case uint32(237): + case uint32(243): goto _247 - case uint32(280): - goto _248 case uint32(238): - goto _249 + goto _248 case uint32(239): + goto _249 + case uint32(282): goto _250 - case uint32(242): + case uint32(240): goto _251 - case uint32(243): + case uint32(241): goto _252 - case uint32(246): + case uint32(244): goto _253 - case uint32(247): + case uint32(245): goto _254 case uint32(248): goto _255 - case uint32(251): + case uint32(249): goto _256 - case uint32(252): + case uint32(250): goto _257 case uint32(253): goto _258 @@ -154489,9 +156049,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _259 case uint32(255): goto _260 - case uint32(258): + case uint32(256): goto _261 - case uint32(259): + case uint32(257): goto _262 case uint32(260): goto _263 @@ -154499,21 +156059,21 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _264 case uint32(262): goto _265 - case uint32(264): - goto _266 case uint32(263): + goto _266 + case uint32(264): goto _267 - case uint32(265): + case uint32(266): goto _268 - case uint32(285): + case uint32(265): goto _269 - case uint32(266): + case uint32(267): goto _270 - case uint32(286): + case uint32(287): goto _271 - case uint32(267): - goto _272 case uint32(268): + goto _272 + case uint32(288): goto _273 case uint32(269): goto _274 @@ -154537,17 +156097,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _283 case uint32(279): goto _284 - case uint32(281): + case uint32(280): goto _285 - case uint32(282): + case uint32(281): goto _286 case uint32(283): goto _287 case uint32(284): goto _288 - case uint32(287): + case uint32(285): goto _289 - case uint32(288): + case uint32(286): goto _290 case uint32(289): goto _291 @@ -154571,19 +156131,19 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _300 case uint32(299): goto _301 - case uint32(301): - goto _302 case uint32(300): + goto _302 + case uint32(301): goto _303 - case uint32(302): + case uint32(303): goto _304 - case uint32(304): + case uint32(302): goto _305 - case uint32(303): + case uint32(304): goto _306 - case uint32(305): - goto _307 case uint32(306): + goto _307 + case uint32(305): goto _308 case uint32(307): goto _309 @@ -154613,31 +156173,31 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _321 case uint32(320): goto _322 - case uint32(324): + case uint32(321): goto _323 case uint32(322): goto _324 - case uint32(325): - goto _325 case uint32(323): - goto _326 + goto _325 case uint32(327): + goto _326 + case uint32(325): goto _327 - case uint32(326): - goto _328 case uint32(328): + goto _328 + case uint32(326): goto _329 - case uint32(329): + case uint32(330): goto _330 - case uint32(331): + case uint32(329): goto _331 - case uint32(330): + case uint32(331): goto _332 case uint32(332): goto _333 - case uint32(333): - goto _334 case uint32(334): + goto _334 + case uint32(333): goto _335 case uint32(335): goto _336 @@ -154649,34 +156209,42 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _339 case uint32(339): goto _340 - default: + case uint32(340): goto _341 + case uint32(341): + goto _342 + case uint32(342): + goto _343 + case uint32(343): + goto _344 + default: + goto _345 } - goto _342 + goto _346 _1: ; /* explain ::= EXPLAIN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(1) } - goto _342 + goto _346 _2: ; /* explain ::= EXPLAIN QUERY PLAN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(2) } - goto _342 + goto _346 _3: ; /* cmdx ::= cmd */ _sqlite3FinishCoding(tls, pParse) - goto _342 + goto _346 _4: ; /* cmd ::= BEGIN transtype trans_opt */ _sqlite3BeginTransaction(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _5: ; /* transtype ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_DEFERRED) - goto _342 + goto _346 _7: ; /* transtype ::= DEFERRED */ _6: @@ -154686,33 +156254,33 @@ _8: _9: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 + goto _346 _11: ; /* cmd ::= COMMIT|END trans_opt */ _10: ; _sqlite3EndTransaction(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor)) - goto _342 + goto _346 _12: ; /* cmd ::= SAVEPOINT nm */ _sqlite3Savepoint(tls, pParse, SAVEPOINT_BEGIN, yymsp+8) - goto _342 + goto _346 _13: ; /* cmd ::= RELEASE savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_RELEASE), yymsp+8) - goto _342 + goto _346 _14: ; /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_ROLLBACK), yymsp+8) - goto _342 + goto _346 _15: ; /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ _sqlite3StartTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), 0, 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _16: ; /* createkw ::= CREATE */ _disableLookaside(tls, pParse) - goto _342 + goto _346 _18: ; /* ifnotexists ::= */ _17: @@ -154730,56 +156298,56 @@ _23: _24: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = 0 - goto _342 + goto _346 _25: ; /* ifnotexists ::= IF NOT EXISTS */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(1) - goto _342 + goto _346 _26: ; /* temp ::= TEMP */ *(*int32)(unsafe.Pointer(yymsp + 8)) = libc.BoolInt32(int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0) - goto _342 + goto _346 _27: ; /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ _sqlite3EndTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*Tu32)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 + goto _346 _28: ; /* create_table_args ::= AS select */ _sqlite3EndTable(tls, pParse, uintptr(0), uintptr(0), uint32(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _29: ; /* table_option_set ::= */ *(*Tu32)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint32(0) - goto _342 + goto _346 _30: ; /* table_option_set ::= table_option_set COMMA table_option */ *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) | *(*Tu32)(unsafe.Pointer(yymsp + 8)) *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _31: ; /* table_option ::= WITHOUT nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16696, int32(5)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16783, int32(5)) == 0 { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) } else { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23360, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23483, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } - goto _342 + goto _346 _32: ; /* table_option ::= nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16609, int32(6)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16696, int32(6)) == 0 { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(TF_Strict) } else { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23360, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23483, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } *(*Tu32)(unsafe.Pointer(yymsp + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _33: ; /* columnname ::= nm typetoken */ _sqlite3AddColumn(tls, pParse, *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*TToken)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _35: ; /* typetoken ::= */ _34: @@ -154788,50 +156356,50 @@ _36: ; *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 + goto _346 _37: ; /* typetoken ::= typename LP signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) - goto _342 + goto _346 _38: ; /* typetoken ::= typename LP signed COMMA signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))))) - goto _342 + goto _346 _39: ; /* typename ::= typename ID|STRING */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) + uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) - goto _342 + goto _346 _40: ; /* scanpt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken.Fz - goto _342 + goto _346 _41: ; /* scantok ::= */ *(*TToken)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken - goto _342 + goto _346 _43: ; /* ccons ::= CONSTRAINT nm */ _42: ; (*TParse)(unsafe.Pointer(pParse)).FconstraintName = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _44: ; /* ccons ::= DEFAULT scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _45: ; /* ccons ::= DEFAULT LP expr RP */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))+uintptr(1), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _46: ; /* ccons ::= DEFAULT PLUS scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _47: ; /* ccons ::= DEFAULT MINUS scantok term */ p = _sqlite3PExpr(tls, pParse, int32(TK_UMINUS), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) _sqlite3AddDefaultValue(tls, pParse, p, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _48: ; /* ccons ::= DEFAULT scantok ID|INDEXED */ p1 = _tokenExpr(tls, pParse, int32(TK_STRING), *(*TToken)(unsafe.Pointer(yymsp + 8))) @@ -154839,99 +156407,99 @@ _48: _sqlite3ExprIdToTrueFalse(tls, p1) } _sqlite3AddDefaultValue(tls, pParse, p1, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - goto _342 + goto _346 _49: ; /* ccons ::= NOT NULL onconf */ _sqlite3AddNotNull(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _50: ; /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ _sqlite3AddPrimaryKey(tls, pParse, uintptr(0), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _51: ; /* ccons ::= UNIQUE onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _52: ; /* ccons ::= CHECK LP expr RP */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _53: ; /* ccons ::= REFERENCES nm eidlist_opt refargs */ _sqlite3CreateForeignKey(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _54: ; /* ccons ::= defer_subclause */ _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _55: ; /* ccons ::= COLLATE ID|STRING */ _sqlite3AddCollateType(tls, pParse, yymsp+8) - goto _342 + goto _346 _56: ; /* generated ::= LP expr RP */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 + goto _346 _57: ; /* generated ::= LP expr RP ID */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 + goto _346 _58: ; /* autoinc ::= AUTOINCR */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(1) - goto _342 + goto _346 _59: ; /* refargs ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = libc.Int32FromInt32(OE_None) * libc.Int32FromInt32(0x0101) /* EV: R-19803-45884 */ - goto _342 + goto _346 _60: ; /* refargs ::= refargs refarg */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) & ^*(*int32)(unsafe.Pointer(yymsp + 8 + 4)) | *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _61: ; /* refarg ::= MATCH nm */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _62: ; /* refarg ::= ON INSERT refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _63: ; /* refarg ::= ON DELETE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x0000ff) - goto _342 + goto _346 _64: ; /* refarg ::= ON UPDATE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) << int32(8) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x00ff00) - goto _342 + goto _346 _65: ; /* refact ::= SET NULL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetNull) /* EV: R-33326-45252 */ - goto _342 + goto _346 _66: ; /* refact ::= SET DEFAULT */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetDflt) /* EV: R-33326-45252 */ - goto _342 + goto _346 _67: ; /* refact ::= CASCADE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Cascade) /* EV: R-33326-45252 */ - goto _342 + goto _346 _68: ; /* refact ::= RESTRICT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Restrict) /* EV: R-33326-45252 */ - goto _342 + goto _346 _69: ; /* refact ::= NO ACTION */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = OE_None /* EV: R-33326-45252 */ - goto _342 + goto _346 _70: ; /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 - goto _342 + goto _346 _72: ; /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ _71: @@ -154939,7 +156507,7 @@ _71: _73: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _75: ; /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ _74: @@ -154951,64 +156519,64 @@ _77: _78: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(1) - goto _342 + goto _346 _79: ; /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 - goto _342 + goto _346 _80: ; /* tconscomma ::= COMMA */ (*TParse)(unsafe.Pointer(pParse)).FconstraintName.Fn = uint32(0) - goto _342 + goto _346 _81: ; /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ _sqlite3AddPrimaryKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), 0) - goto _342 + goto _346 _82: ; /* tcons ::= UNIQUE LP sortlist RP onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _83: ; /* tcons ::= CHECK LP expr RP onconf */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _84: ; /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ _sqlite3CreateForeignKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _86: ; /* onconf ::= */ _85: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(OE_Default) - goto _342 + goto _346 _87: ; /* onconf ::= ON CONFLICT resolvetype */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _88: ; /* resolvetype ::= IGNORE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Ignore) - goto _342 + goto _346 _90: ; /* resolvetype ::= REPLACE */ _89: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Replace) - goto _342 + goto _346 _91: ; /* cmd ::= DROP TABLE ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _92: ; /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ _sqlite3CreateView(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) - goto _342 + goto _346 _93: ; /* cmd ::= DROP VIEW ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), int32(1), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _94: ; /* cmd ::= select */ *(*TSelectDest)(unsafe.Pointer(bp + 16)) = TSelectDest{ @@ -155016,22 +156584,22 @@ _94: } _sqlite3Select(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), bp+16) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _95: ; /* select ::= WITH wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _96: ; /* select ::= WITH RECURSIVE wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _97: ; /* select ::= selectnowith */ p2 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) if p2 != 0 { _parserDoubleLinkSelect(tls, pParse, p2) } - goto _342 + goto _346 _98: ; /* selectnowith ::= selectnowith multiselect_op oneselect */ pRhs = *(*uintptr)(unsafe.Pointer(yymsp + 8)) @@ -155056,21 +156624,21 @@ _98: _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pLhs) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = pRhs - goto _342 + goto _346 _100: ; /* multiselect_op ::= UNION */ _99: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-OP*/ - goto _342 + goto _346 _101: ; /* multiselect_op ::= UNION ALL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_ALL) - goto _342 + goto _346 _102: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _103: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(9))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -155079,116 +156647,111 @@ _103: } else { _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) } - goto _342 + goto _346 _104: ; /* values ::= VALUES LP nexprlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) - goto _342 + goto _346 _105: - ; /* values ::= values COMMA LP nexprlist RP */ - pLeft = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) - pRight = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(libc.Int32FromInt32(SF_Values)|libc.Int32FromInt32(SF_MultiValue)), uintptr(0)) - if pLeft != 0 { - *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) - } - if pRight != 0 { - (*TSelect)(unsafe.Pointer(pRight)).Fop = uint8(TK_ALL) - (*TSelect)(unsafe.Pointer(pRight)).FpPrior = pLeft - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pRight - } else { - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pLeft - } - goto _342 + ; /* oneselect ::= mvalues */ + _sqlite3MultiValuesEnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_107: + ; /* mvalues ::= values COMMA LP nexprlist RP */ _106: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3MultiValues(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_108: ; /* distinct ::= DISTINCT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_Distinct) - goto _342 -_107: + goto _346 +_109: ; /* distinct ::= ALL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_All) - goto _342 -_109: + goto _346 +_111: ; /* sclp ::= */ -_108: - ; _110: ; -_111: - ; _112: ; _113: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 _114: + ; +_115: + ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 +_116: ; /* selcollist ::= sclp scanpt expr scanpt as */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) > uint32(0) { _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+8, int32(1)) } _sqlite3ExprListSetSpan(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_115: + goto _346 +_117: ; /* selcollist ::= sclp scanpt STAR */ p3 = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_ASTERISK), uintptr(0)) _sqlite3ExprSetErrorOffset(tls, p3, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), p3) - goto _342 -_116: + goto _346 +_118: ; /* selcollist ::= sclp scanpt nm DOT STAR */ - pRight1 = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) - _sqlite3ExprSetErrorOffset(tls, pRight1, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) - pLeft1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft1, pRight1) + pRight = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) + _sqlite3ExprSetErrorOffset(tls, pRight, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) + pLeft = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) + pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft, pRight) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pDot) - goto _342 -_118: + goto _346 +_120: ; /* as ::= AS nm */ -_117: - ; _119: ; -_120: +_121: ; - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 _122: + ; + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) + goto _346 +_124: ; /* from ::= */ -_121: +_123: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_123: + goto _346 +_125: ; /* from ::= FROM seltablist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) _sqlite3SrcListShiftJoinType(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_124: + goto _346 +_126: ; /* stl_prefix ::= seltablist joinop */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 && (*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc > 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8 + uintptr((*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc-int32(1))*104))).Ffg.Fjointype = uint8(*(*int32)(unsafe.Pointer(yymsp + 8))) } - goto _342 -_125: + goto _346 +_127: ; /* seltablist ::= stl_prefix nm dbnm as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) - goto _342 -_126: + goto _346 +_128: ; /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_127: + goto _346 +_129: ; /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListFuncArgs(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) - goto _342 -_128: + goto _346 +_130: ; /* seltablist ::= stl_prefix LP select RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_129: + goto _346 +_131: ; /* seltablist ::= stl_prefix LP seltablist RP as on_using */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) == uintptr(0) && *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) == uint32(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8)) == uintptr(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) @@ -155210,9 +156773,9 @@ _129: libc.SetBitFieldPtr16Uint32(pOld+60+4, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pNew+60+4, libc.Uint32FromInt32(1), 2, 0x4) } - v343 = libc.UintptrFromInt32(0) - (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v343 - (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v343 + v347 = libc.UintptrFromInt32(0) + (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v347 + (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v347 (*TSrcItem)(unsafe.Pointer(pOld)).FpSelect = uintptr(0) } _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) @@ -155222,189 +156785,189 @@ _129: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, pSubquery, yymsp+8) } } - goto _342 -_131: + goto _346 +_133: ; /* dbnm ::= */ -_130: +_132: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) - goto _342 -_132: + goto _346 +_134: ; /* fullname ::= nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_133: + goto _346 +_135: ; /* fullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_134: + goto _346 +_136: ; /* xfullname ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) /*A-overwrites-X*/ - goto _342 -_135: + goto _346 +_137: ; /* xfullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) /*A-overwrites-X*/ - goto _342 -_136: + goto _346 +_138: ; /* xfullname ::= nm DOT nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_137: + goto _346 +_139: ; /* xfullname ::= nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0)) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_138: + goto _346 +_140: ; /* joinop ::= COMMA|JOIN */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(JT_INNER) - goto _342 -_139: + goto _346 +_141: ; /* joinop ::= JOIN_KW JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), uintptr(0)) /*X-overwrites-A*/ - goto _342 -_140: + goto _346 +_142: ; /* joinop ::= JOIN_KW nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0)) /*X-overwrites-A*/ - goto _342 -_141: + goto _346 +_143: ; /* joinop ::= JOIN_KW nm nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) /*X-overwrites-A*/ - goto _342 -_142: + goto _346 +_144: ; /* on_using ::= ON expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uintptr(0) - goto _342 -_143: + goto _346 +_145: ; /* on_using ::= USING LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_144: + goto _346 +_146: ; /* on_using ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uintptr(0) - goto _342 -_145: + goto _346 +_147: ; /* indexed_by ::= INDEXED BY nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 -_146: + goto _346 +_148: ; /* indexed_by ::= NOT INDEXED */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(1) - goto _342 -_148: + goto _346 +_150: ; /* orderby_opt ::= ORDER BY sortlist */ -_147: +_149: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_149: + goto _346 +_151: ; /* sortlist ::= sortlist COMMA expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_150: + goto _346 +_152: ; /* sortlist ::= expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) /*A-overwrites-Y*/ _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_151: + goto _346 +_153: ; /* sortorder ::= ASC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = SQLITE_SO_ASC - goto _342 -_152: + goto _346 +_154: ; /* sortorder ::= DESC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_154: + goto _346 +_156: ; /* sortorder ::= */ -_153: +_155: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = -int32(1) - goto _342 -_155: + goto _346 +_157: ; /* nulls ::= NULLS FIRST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = SQLITE_SO_ASC - goto _342 -_156: + goto _346 +_158: ; /* nulls ::= NULLS LAST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_158: + goto _346 +_160: ; /* having_opt ::= */ -_157: - ; _159: ; -_160: - ; _161: ; _162: ; _163: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_165: - ; /* having_opt ::= HAVING expr */ _164: ; -_166: +_165: ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 _167: + ; /* having_opt ::= HAVING expr */ +_166: ; _168: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 _169: + ; +_170: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + goto _346 +_171: ; /* limit_opt ::= LIMIT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 -_170: + goto _346 +_172: ; /* limit_opt ::= LIMIT expr OFFSET expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_171: + goto _346 +_173: ; /* limit_opt ::= LIMIT expr COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 -_172: + goto _346 +_174: ; /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) _sqlite3DeleteFrom(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0)) - goto _342 -_173: + goto _346 +_175: ; /* where_opt_ret ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) - goto _342 -_174: + goto _346 +_176: ; /* where_opt_ret ::= WHERE expr RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) - goto _342 -_175: + goto _346 +_177: ; /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) - _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23387) + _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23510) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { pFromClause = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) if (*TSrcList)(unsafe.Pointer(pFromClause)).FnSrc > int32(1) { @@ -155416,95 +156979,95 @@ _175: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendList(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), pFromClause) } _sqlite3Update(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_176: + goto _346 +_178: ; /* setlist ::= setlist COMMA nm EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) - goto _342 -_177: + goto _346 +_179: ; /* setlist ::= setlist COMMA LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_178: + goto _346 +_180: ; /* setlist ::= nm EQ expr */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_179: + goto _346 +_181: ; /* setlist ::= LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_180: + goto _346 +_182: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_181: + goto _346 +_183: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0)) - goto _342 -_182: + goto _346 +_184: ; /* upsert ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_183: + goto _346 +_185: ; /* upsert ::= RETURNING selcollist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_184: + goto _346 +_186: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(11))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_185: + goto _346 +_187: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_186: + goto _346 +_188: ; /* upsert ::= ON CONFLICT DO NOTHING returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_187: + goto _346 +_189: ; /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_188: + goto _346 +_190: ; /* returning ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_189: + goto _346 +_191: ; /* idlist_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_190: + goto _346 +_192: ; /* idlist_opt ::= LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_191: + goto _346 +_193: ; /* idlist ::= idlist COMMA nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3IdListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 -_192: + goto _346 +_194: ; /* idlist ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3IdListAppend(tls, pParse, uintptr(0), yymsp+8) /*A-overwrites-Y*/ - goto _342 -_193: + goto _346 +_195: ; /* expr ::= LP expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_194: + goto _346 +_196: ; /* expr ::= ID|INDEXED|JOIN_KW */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_195: + goto _346 +_197: ; /* expr ::= nm DOT nm */ temp1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) temp2 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp1, temp2) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_196: + goto _346 +_198: ; /* expr ::= nm DOT nm DOT nm */ temp11 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) temp21 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) @@ -155515,22 +157078,22 @@ _196: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp11, temp4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_198: + goto _346 +_200: ; /* term ::= NULL|FLOAT|BLOB */ -_197: +_199: ; *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_199: + goto _346 +_201: ; /* term ::= INTEGER */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), yymsp+8, int32(1)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 52)) = int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8))) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_200: + goto _346 +_202: ; /* expr ::= VARIABLE */ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8))))) == int32('#') && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)) + 1)))])&int32(0x04) != 0) { n = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) @@ -155542,7 +157105,7 @@ _200: ** in the virtual machine. #N is the N-th register. */ *(*TToken)(unsafe.Pointer(bp + 88)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) /*A-overwrites-X*/ if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23396, libc.VaList(bp+128, bp+88)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23519, libc.VaList(bp+128, bp+88)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = uintptr(0) } else { *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_REGISTER), uintptr(0), uintptr(0)) @@ -155551,57 +157114,57 @@ _200: } } } - goto _342 -_201: + goto _346 +_203: ; /* expr ::= expr COLLATE ID|STRING */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAddCollateToken(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8, int32(1)) - goto _342 -_202: + goto _346 +_204: ; /* expr ::= CAST LP expr AS typetoken RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_CAST), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) _sqlite3ExprAttachSubtrees(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) - goto _342 -_203: + goto _346 +_205: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_204: + goto _346 +_206: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_205: + goto _346 +_207: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_206: + goto _346 +_208: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_207: + goto _346 +_209: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_208: + goto _346 +_210: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, 0) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_209: + goto _346 +_211: ; /* term ::= CTIME_KW */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_210: + goto _346 +_212: ; /* expr ::= LP nexprlist COMMA expr RP */ pList = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_VECTOR), uintptr(0), uintptr(0)) @@ -155613,33 +157176,33 @@ _210: } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) } - goto _342 -_211: + goto _346 +_213: ; /* expr ::= expr AND expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_213: + goto _346 +_215: ; /* expr ::= expr OR expr */ -_212: - ; _214: ; -_215: - ; _216: ; _217: ; _218: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 _219: + ; +_220: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_221: ; /* likeop ::= NOT LIKE_KW|MATCH */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) |= uint32(0x80000000) /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/ - goto _342 -_220: + goto _346 +_222: ; /* expr ::= expr likeop expr */ bNot = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -155652,8 +157215,8 @@ _220: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_221: + goto _346 +_223: ; /* expr ::= expr likeop expr ESCAPE expr */ bNot1 = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -155667,65 +157230,67 @@ _221: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_222: + goto _346 +_224: ; /* expr ::= expr ISNULL|NOTNULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_223: + goto _346 +_225: ; /* expr ::= expr NOT NULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOTNULL), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uintptr(0)) - goto _342 -_224: + goto _346 +_226: ; /* expr ::= expr IS expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_225: + goto _346 +_227: ; /* expr ::= expr IS NOT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_226: + goto _346 +_228: ; /* expr ::= expr IS NOT DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_227: + goto _346 +_229: ; /* expr ::= expr IS DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_229: + goto _346 +_231: ; /* expr ::= NOT expr */ -_228: +_230: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) /*A-overwrites-B*/ - goto _342 -_230: + goto _346 +_232: ; /* expr ::= PLUS|MINUS expr */ - if int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) == int32(TK_PLUS) { - v344 = int32(TK_UPLUS) + p4 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + op = uint8(int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) + (libc.Int32FromInt32(TK_UPLUS) - libc.Int32FromInt32(TK_PLUS))) + if p4 != 0 && int32((*TExpr)(unsafe.Pointer(p4)).Fop) == int32(TK_UPLUS) { + (*TExpr)(unsafe.Pointer(p4)).Fop = op + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = p4 } else { - v344 = int32(TK_UMINUS) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(op), p4, uintptr(0)) + /*A-overwrites-B*/ } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, v344, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - /*A-overwrites-B*/ - goto _342 -_231: + goto _346 +_233: ; /* expr ::= expr PTR expr */ pList3 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList3 = _sqlite3ExprListAppend(tls, pParse, pList3, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, pList3, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_233: + goto _346 +_235: ; /* between_op ::= BETWEEN */ -_232: +_234: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = 0 - goto _342 -_234: + goto _346 +_236: ; /* expr ::= expr between_op expr AND expr */ pList4 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList4 = _sqlite3ExprListAppend(tls, pParse, pList4, *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -155738,8 +157303,8 @@ _234: if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_235: + goto _346 +_237: ; /* expr ::= expr in_op LP exprlist RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) == uintptr(0) { /* Expressions of the form @@ -155752,17 +157317,17 @@ _235: */ _sqlite3ExprUnmapAndDelete(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { - v345 = __ccgo_ts + 7888 + v348 = __ccgo_ts + 8013 } else { - v345 = __ccgo_ts + 7893 + v348 = __ccgo_ts + 8018 } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v345) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v348) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { _sqlite3ExprIdToTrueFalse(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } } else { pRHS = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr - if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { + if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pParse, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr = uintptr(0) _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) pRHS = _sqlite3PExpr(tls, pParse, int32(TK_UPLUS), pRHS, uintptr(0)) @@ -155796,460 +157361,464 @@ _235: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } } - goto _342 -_236: + goto _346 +_238: ; /* expr ::= LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_SELECT), uintptr(0), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_237: + goto _346 +_239: ; /* expr ::= expr in_op LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_238: + goto _346 +_240: ; /* expr ::= expr in_op nm dbnm paren_exprlist */ pSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) pSelect = _sqlite3SelectNew(tls, pParse, uintptr(0), pSrc, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { if pSelect != 0 { - v346 = pSrc + v349 = pSrc } else { - v346 = uintptr(0) + v349 = uintptr(0) } - _sqlite3SrcListFuncArgs(tls, pParse, v346, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + _sqlite3SrcListFuncArgs(tls, pParse, v349, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pSelect) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_239: + goto _346 +_241: ; /* expr ::= EXISTS LP select RP */ - v347 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v347 - p4 = v347 - _sqlite3PExprAddSelect(tls, pParse, p4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_240: + v350 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v350 + p5 = v350 + _sqlite3PExprAddSelect(tls, pParse, p5, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_242: ; /* expr ::= CASE case_operand case_exprlist case_else END */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_CASE), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { - v348 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + v351 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } else { - v348 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + v351 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) } - *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v348 + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v351 _sqlite3ExprSetHeightAndFlags(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } - goto _342 -_241: + goto _346 +_243: ; /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_242: + goto _346 +_244: ; /* case_exprlist ::= WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_243: + goto _346 +_245: ; /* nexprlist ::= nexprlist COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_244: + goto _346 +_246: ; /* nexprlist ::= expr */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_246: + goto _346 +_248: ; /* paren_exprlist ::= LP exprlist RP */ -_245: +_247: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_247: + goto _346 +_249: ; /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ _sqlite3CreateIndex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, uintptr(0)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(11))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8)), SQLITE_SO_ASC, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), uint8(SQLITE_IDXTYPE_APPDEF)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && (*TParse)(unsafe.Pointer(pParse)).FpNewIndex != 0 { _sqlite3RenameTokenMap(tls, pParse, (*TIndex)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpNewIndex)).FzName, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) } - goto _342 -_249: + goto _346 +_251: ; /* uniqueflag ::= UNIQUE */ -_248: +_250: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Abort) - goto _342 -_250: + goto _346 +_252: ; /* uniqueflag ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = OE_None - goto _342 -_251: + goto _346 +_253: ; /* eidlist ::= eidlist COMMA nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_252: + goto _346 +_254: ; /* eidlist ::= nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_253: + goto _346 +_255: ; /* cmd ::= DROP INDEX ifexists fullname */ _sqlite3DropIndex(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_254: + goto _346 +_256: ; /* cmd ::= VACUUM vinto */ _sqlite3Vacuum(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_255: + goto _346 +_257: ; /* cmd ::= VACUUM nm vinto */ _sqlite3Vacuum(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_256: + goto _346 +_258: ; /* cmd ::= PRAGMA nm dbnm */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, uintptr(0), 0) - goto _342 -_257: + goto _346 +_259: ; /* cmd ::= PRAGMA nm dbnm EQ nmnum */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, 0) - goto _342 -_258: + goto _346 +_260: ; /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) - goto _342 -_259: + goto _346 +_261: ; /* cmd ::= PRAGMA nm dbnm EQ minus_num */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, int32(1)) - goto _342 -_260: + goto _346 +_262: ; /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) - goto _342 -_261: + goto _346 +_263: ; /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ (*(*TToken)(unsafe.Pointer(bp + 104))).Fz = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) (*(*TToken)(unsafe.Pointer(bp + 104))).Fn = uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) + *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) _sqlite3FinishTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), bp+104) - goto _342 -_262: + goto _346 +_264: ; /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ _sqlite3BeginTrigger(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8 + 8)) == uint32(0) { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) } else { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) } - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v349 /*A-overwrites-T*/ - goto _342 -_263: + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v352 /*A-overwrites-T*/ + goto _346 +_265: ; /* trigger_time ::= BEFORE|AFTER */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_264: + goto _346 +_266: ; /* trigger_time ::= INSTEAD OF */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_INSTEAD) - goto _342 -_265: + goto _346 +_267: ; /* trigger_time ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_BEFORE) - goto _342 -_267: + goto _346 +_269: ; /* trigger_event ::= DELETE|INSERT */ -_266: +_268: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) = uintptr(0) - goto _342 -_268: + goto _346 +_270: ; /* trigger_event ::= UPDATE OF idlist */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(TK_UPDATE) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_270: + goto _346 +_272: ; /* when_clause ::= */ -_269: +_271: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_272: + goto _346 +_274: ; /* when_clause ::= WHEN expr */ -_271: +_273: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_273: + goto _346 +_275: ; /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ (*TTriggerStep)(unsafe.Pointer((*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast)).FpNext = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_274: + goto _346 +_276: ; /* trigger_cmd_list ::= trigger_cmd SEMI */ (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_275: + goto _346 +_277: ; /* trnm ::= nm DOT nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23420, 0) - goto _342 -_276: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23543, 0) + goto _346 +_278: ; /* tridxby ::= INDEXED BY nm */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23515, 0) - goto _342 -_277: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23638, 0) + goto _346 +_279: ; /* tridxby ::= NOT INDEXED */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23599, 0) - goto _342 -_278: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23722, 0) + goto _346 +_280: ; /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerUpdateStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_279: + goto _346 +_281: ; /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_280: + goto _346 +_282: ; /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerDeleteStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_281: + goto _346 +_283: ; /* trigger_cmd ::= scanpt select scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_282: + goto _346 +_284: ; /* expr ::= RAISE LP IGNORE RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_RAISE), uintptr(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)))).FaffExpr = int8(OE_Ignore) } - goto _342 -_283: + goto _346 +_285: ; /* expr ::= RAISE LP raisetype COMMA nm RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_RAISE), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)))).FaffExpr = int8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) } - goto _342 -_284: + goto _346 +_286: ; /* raisetype ::= ROLLBACK */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Rollback) - goto _342 -_285: + goto _346 +_287: ; /* raisetype ::= FAIL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Fail) - goto _342 -_286: + goto _346 +_288: ; /* cmd ::= DROP TRIGGER ifexists fullname */ _sqlite3DropTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_287: + goto _346 +_289: ; /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ _sqlite3Attach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_288: + goto _346 +_290: ; /* cmd ::= DETACH database_kw_opt expr */ _sqlite3Detach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_289: + goto _346 +_291: ; /* cmd ::= REINDEX */ _sqlite3Reindex(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_290: + goto _346 +_292: ; /* cmd ::= REINDEX nm dbnm */ _sqlite3Reindex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_291: + goto _346 +_293: ; /* cmd ::= ANALYZE */ _sqlite3Analyze(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_292: + goto _346 +_294: ; /* cmd ::= ANALYZE nm dbnm */ _sqlite3Analyze(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_293: + goto _346 +_295: ; /* cmd ::= ALTER TABLE fullname RENAME TO nm */ _sqlite3AlterRenameTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_294: + goto _346 +_296: ; /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(int32(int64((*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fz)-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) + (*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fn _sqlite3AlterFinishAddColumn(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_295: + goto _346 +_297: ; /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ _sqlite3AlterDropColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_296: + goto _346 +_298: ; /* add_column_fullname ::= fullname */ _disableLookaside(tls, pParse) _sqlite3AlterBeginAddColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_297: + goto _346 +_299: ; /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ _sqlite3AlterRenameColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) - goto _342 -_298: + goto _346 +_300: ; /* cmd ::= create_vtab */ _sqlite3VtabFinishParse(tls, pParse, uintptr(0)) - goto _342 -_299: + goto _346 +_301: ; /* cmd ::= create_vtab LP vtabarglist RP */ _sqlite3VtabFinishParse(tls, pParse, yymsp+8) - goto _342 -_300: + goto _346 +_302: ; /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ _sqlite3VtabBeginParse(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) - goto _342 -_301: + goto _346 +_303: ; /* vtabarg ::= */ _sqlite3VtabArgInit(tls, pParse) - goto _342 -_303: + goto _346 +_305: ; /* vtabargtoken ::= ANY */ -_302: - ; _304: ; - _sqlite3VtabArgExtend(tls, pParse, yymsp+8) - goto _342 _306: + ; + _sqlite3VtabArgExtend(tls, pParse, yymsp+8) + goto _346 +_308: ; /* with ::= WITH wqlist */ -_305: +_307: ; _sqlite3WithPush(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint8(1)) - goto _342 -_307: + goto _346 +_309: ; /* wqas ::= AS */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8(M10d_Any) - goto _342 -_308: + goto _346 +_310: ; /* wqas ::= AS MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8(M10d_Yes) - goto _342 -_309: + goto _346 +_311: ; /* wqas ::= AS NOT MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = uint8(M10d_No) - goto _342 -_310: - ; /* wqitem ::= nm eidlist_opt wqas LP select RP */ + goto _346 +_312: + ; /* wqitem ::= withnm eidlist_opt wqas LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3CteNew(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) /*A-overwrites-X*/ - goto _342 -_311: + goto _346 +_313: + ; /* withnm ::= nm */ + (*TParse)(unsafe.Pointer(pParse)).FbHasWith = uint8(1) + goto _346 +_314: ; /* wqlist ::= wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3WithAdd(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_312: + goto _346 +_315: ; /* wqlist ::= wqlist COMMA wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3WithAdd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_313: + goto _346 +_316: ; /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ _sqlite3WindowChain(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpNextWin = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_314: + goto _346 +_317: ; /* windowdefn ::= nm AS LP window RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)))) } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_315: + goto _346 +_318: ; /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_316: + goto _346 +_319: ; /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_317: + goto _346 +_320: ; /* window ::= ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_318: + goto _346 +_321: ; /* window ::= nm ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_319: + goto _346 +_322: ; /* window ::= nm frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_320: + goto _346 +_323: ; /* frame_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = _sqlite3WindowAlloc(tls, pParse, 0, int32(TK_UNBOUNDED), uintptr(0), int32(TK_CURRENT), uintptr(0), uint8(0)) - goto _342 -_321: + goto _346 +_324: ; /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), int32(TK_CURRENT), uintptr(0), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_322: + goto _346 +_325: ; /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_324: + goto _346 +_327: ; /* frame_bound_s ::= frame_bound */ -_323: +_326: ; *(*TFrameBound)(unsafe.Pointer(bp)) = *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_326: + goto _346 +_329: ; /* frame_bound_s ::= UNBOUNDED PRECEDING */ -_325: +_328: ; -_327: +_330: ; (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = uintptr(0) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_328: + goto _346 +_331: ; /* frame_bound ::= expr PRECEDING|FOLLOWING */ (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_329: + goto _346 +_332: ; /* frame_exclude_opt ::= */ *(*Tu8)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint8(0) - goto _342 -_330: + goto _346 +_333: ; /* frame_exclude_opt ::= EXCLUDE frame_exclude */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*Tu8)(unsafe.Pointer(yymsp + 8)) - goto _342 -_332: + goto _346 +_335: ; /* frame_exclude ::= NO OTHERS */ -_331: +_334: ; *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) /*A-overwrites-X*/ - goto _342 -_333: + goto _346 +_336: ; /* frame_exclude ::= GROUP|TIES */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_334: + goto _346 +_337: ; /* window_clause ::= WINDOW windowdefn_list */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_335: + goto _346 +_338: ; /* filter_over ::= filter_clause over_clause */ if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpFilter = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) @@ -156258,13 +157827,13 @@ _335: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_336: + goto _346 +_339: ; /* filter_over ::= over_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_337: + goto _346 +_340: ; /* filter_over ::= filter_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { @@ -156274,27 +157843,33 @@ _337: _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_338: + goto _346 +_341: ; /* over_clause ::= OVER LP window RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_339: + goto _346 +_342: ; /* over_clause ::= OVER nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) } - goto _342 -_340: + goto _346 +_343: ; /* filter_clause ::= FILTER LP WHERE expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_341: + goto _346 +_344: + ; /* term ::= QNUMBER */ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) + _sqlite3DequoteNumber(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp))))) + *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + goto _346 +_345: ; - goto _342 + goto _346 /********** End reduce actions ************************************************/ -_342: +_346: ; yygoto = int32(_yyRuleInfoLhs[yyruleno]) yysize = int32(_yyRuleInfoNRhs[yyruleno]) @@ -156328,9 +157903,9 @@ func _yy_syntax_error(tls *libc.TLS, yypParser uintptr, yymajor int32, _yyminor /************ Begin %syntax_error code ****************************************/ _ = yymajor /* Silence some compiler warnings */ if *(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp))).Fz)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23396, libc.VaList(bp+24, bp)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23519, libc.VaList(bp+24, bp)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23684, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23807, 0) } /************ End %syntax_error code ******************************************/ /* Suppress warning about unused %extra_argument variable */ @@ -156395,8 +157970,10 @@ func _sqlite3Parser(tls *libc.TLS, yyp uintptr, yymajor int32, yyminor TToken) { ** enough on the stack to push the LHS value */ if int32(_yyRuleInfoNRhs[yyruleno]) == 0 { if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos >= (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - _yyStackOverflow(tls, yypParser) - break + if _yyGrowStack(tls, yypParser) != 0 { + _yyStackOverflow(tls, yypParser) + break + } } } yyact = _yy_reduce(tls, yypParser, yyruleno, yymajor, yyminor, pParse) @@ -158545,9 +160122,9 @@ func _analyzeFilterKeyword(tls *libc.TLS, _z uintptr, lastToken int32) (r int32) // ** Store the token type in *tokenType before returning. // */ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { - var c, delim, i, n, v10, v14, v16, v19, v20, v3, v5, v7, v8 int32 - var v15, v6 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v14, v15, v16, v19, v20, v3, v5, v6, v7, v8 + var c, delim, i, n, v10, v16, v18, v21, v22, v3, v5, v7, v8 int32 + var v17, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v16, v17, v18, v21, v22, v3, v5, v6, v7, v8 switch int32(_aiClass[*(*uint8)(unsafe.Pointer(z))]) { /* Switch on the character-class of the first byte ** of the token. See the comment on the CC_ defines ** above. */ @@ -158745,39 +160322,83 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('X')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + 2))])&int32(0x08) != 0 { i = int32(3) for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { + if !(int32(1) != 0) { break } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } goto _11 _11: ; i++ } - return i - } - i = 0 - for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _12 - _12: - ; - i++ - } - if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { - i++ - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + } else { + i = 0 + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _12 + _12: + ; i++ } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) - } - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { - i += int32(2) - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } i++ + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _13 + _13: + ; + i++ + } + } + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } + i += int32(2) + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _14 + _14: + ; + i++ + } } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) } for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x46) != 0 { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_ILLEGAL) @@ -158788,24 +160409,24 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { i = int32(1) c = int32(*(*uint8)(unsafe.Pointer(z))) for { - if v15 = c != int32(']'); v15 { - v14 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v14 + if v17 = c != int32(']'); v17 { + v16 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v16 } - if !(v15 && v14 != 0) { + if !(v17 && v16 != 0) { break } - goto _13 - _13: + goto _15 + _15: ; i++ } if c == int32(']') { - v16 = int32(TK_ID) + v18 = int32(TK_ID) } else { - v16 = int32(TK_ILLEGAL) + v18 = int32(TK_ILLEGAL) } - *(*int32)(unsafe.Pointer(tokenType)) = v16 + *(*int32)(unsafe.Pointer(tokenType)) = v18 return i case int32(CC_VARNUM): *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) @@ -158814,8 +160435,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { break } - goto _17 - _17: + goto _19 + _19: ; i++ } @@ -158827,9 +160448,9 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) i = int32(1) for { - v19 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v19 - if !(v19 != 0) { + v21 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v21 + if !(v21 != 0) { break } if int32(_sqlite3CtypeMap[uint8(c)])&int32(0x46) != 0 { @@ -158838,12 +160459,12 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if c == int32('(') && n > 0 { for { i++ - goto _21 - _21: + goto _23 + _23: ; - v20 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v20 - if !(v20 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { + v22 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v22 + if !(v22 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { break } } @@ -158861,8 +160482,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { } } } - goto _18 - _18: + goto _20 + _20: ; i++ } @@ -158880,8 +160501,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_aiClass[*(*uint8)(unsafe.Pointer(z + uintptr(i)))]) <= int32(CC_KYWD)) { break } - goto _22 - _22: + goto _24 + _24: ; i++ } @@ -158902,8 +160523,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { break } - goto _23 - _23: + goto _25 + _25: ; i++ } @@ -158957,7 +160578,7 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { var lastTokenParsed, mxSqlLen, n, nErr int32 var _ /* sEngine at bp+8 */ TyyParser var _ /* tokenType at bp+0 */ int32 - var _ /* x at bp+2432 */ TToken + var _ /* x at bp+2440 */ TToken _, _, _, _, _, _, _ = db, lastTokenParsed, mxSqlLen, n, nErr, pEngine, pParentParse nErr = 0 /* The LEMON-generated LALR(1) parser */ n = 0 /* type of the next token */ @@ -159015,10 +160636,12 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp)) == int32(TK_FILTER) { *(*int32)(unsafe.Pointer(bp)) = _analyzeFilterKeyword(tls, zSql+6, lastTokenParsed) } else { - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fz = zSql - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fn = uint32(n) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23701, libc.VaList(bp+2456, bp+2432)) - break + if *(*int32)(unsafe.Pointer(bp)) != int32(TK_QNUMBER) { + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fz = zSql + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fn = uint32(n) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23824, libc.VaList(bp+2464, bp+2440)) + break + } } } } @@ -159039,9 +160662,9 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { } if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg != 0 || (*TParse)(unsafe.Pointer(pParse)).Frc != SQLITE_OK && (*TParse)(unsafe.Pointer(pParse)).Frc != int32(SQLITE_DONE) { if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg == uintptr(0) { - (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3797, libc.VaList(bp+2456, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) + (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3861, libc.VaList(bp+2464, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) } - Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23726, libc.VaList(bp+2456, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) + Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23849, libc.VaList(bp+2464, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) nErr++ } (*TParse)(unsafe.Pointer(pParse)).FzTail = zSql @@ -159233,7 +160856,7 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('c'): fallthrough case int32('C'): - if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23737, int32(6)) == 0 { + if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23860, int32(6)) == 0 { token = uint8(tkCREATE) } else { token = uint8(tkOTHER) @@ -159241,13 +160864,13 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('t'): fallthrough case int32('T'): - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20381, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20513, int32(7)) == 0 { token = uint8(tkTRIGGER) } else { - if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23744, int32(4)) == 0 { + if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23867, int32(4)) == 0 { token = uint8(tkTEMP) } else { - if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23749, int32(9)) == 0 { + if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23872, int32(9)) == 0 { token = uint8(tkTEMP) } else { token = uint8(tkOTHER) @@ -159257,10 +160880,10 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('e'): fallthrough case int32('E'): - if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23759, int32(3)) == 0 { + if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23882, int32(3)) == 0 { token = uint8(tkEND) } else { - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23763, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23886, int32(7)) == 0 { token = uint8(tkEXPLAIN) } else { token = uint8(tkOTHER) @@ -159520,8 +161143,6 @@ func _hasHighPrecisionDouble(tls *libc.TLS, rc int32) (r int32) { // ** without blocking. // */ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { - ng := runtime.GOMAXPROCS(1) - defer func() { runtime.GOMAXPROCS(ng) }() var pMainMtx uintptr var rc int32 _, _ = pMainMtx, rc /* Result code */ @@ -159533,7 +161154,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** must be complete. So isInit must not be set until the very end ** of this routine. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { return SQLITE_OK } /* Make sure the mutex subsystem is initialized. If unable to @@ -159593,7 +161214,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** call to sqlite3PcacheInitialize(). */ Xsqlite3_mutex_enter(tls, _sqlite3Config.FpInitMutex) - if _sqlite3Config.FisInit == 0 && _sqlite3Config.FinProgress == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 && _sqlite3Config.FinProgress == 0 { _sqlite3Config.FinProgress = int32(1) libc.Xmemset(tls, uintptr(unsafe.Pointer(&_sqlite3BuiltinFunctions)), 0, uint64(184)) _sqlite3RegisterBuiltinFunctions(tls) @@ -159609,7 +161230,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { } if rc == SQLITE_OK { _sqlite3PCacheBufferSetup(tls, _sqlite3Config.FpPage, _sqlite3Config.FszPage, _sqlite3Config.FnPage) - _sqlite3Config.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, int32(1)) } _sqlite3Config.FinProgress = 0 } @@ -159634,7 +161255,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { */ /* Experimentally determine if high-precision floating point is ** available. */ - _sqlite3Config.FbUseLongDouble = uint8(_hasHighPrecisionDouble(tls, rc)) + // disabled return rc } @@ -159649,10 +161270,10 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { // ** when this routine is invoked, then this routine is a harmless no-op. // */ func Xsqlite3_shutdown(tls *libc.TLS) (r int32) { - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { Xsqlite3_os_end(tls) Xsqlite3_reset_auto_extension(tls) - _sqlite3Config.FisInit = 0 + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, 0) } if _sqlite3Config.FisPCacheInit != 0 { _sqlite3PcacheShutdown(tls) @@ -159700,9 +161321,9 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { ** the SQLite library is in use. Except, a few selected opcodes ** are allowed. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)<= 0 && rc < int32(libc.Uint64FromInt64(232)/libc.Uint64FromInt64(8)) && _aMsg[rc] != uintptr(0) { @@ -160840,31 +162461,31 @@ func _sqlite3ErrStr(tls *libc.TLS, rc int32) (r uintptr) { } var _aMsg = [29]uintptr{ - 0: __ccgo_ts + 23839, - 1: __ccgo_ts + 23852, - 3: __ccgo_ts + 23868, - 4: __ccgo_ts + 23893, - 5: __ccgo_ts + 23907, - 6: __ccgo_ts + 23926, - 7: __ccgo_ts + 1620, - 8: __ccgo_ts + 23951, - 9: __ccgo_ts + 23988, - 10: __ccgo_ts + 24000, - 11: __ccgo_ts + 24015, - 12: __ccgo_ts + 24048, - 13: __ccgo_ts + 24066, - 14: __ccgo_ts + 24091, - 15: __ccgo_ts + 24120, - 17: __ccgo_ts + 6023, - 18: __ccgo_ts + 5425, - 19: __ccgo_ts + 24137, - 20: __ccgo_ts + 24155, - 21: __ccgo_ts + 24173, - 23: __ccgo_ts + 24207, - 25: __ccgo_ts + 24228, - 26: __ccgo_ts + 24254, - 27: __ccgo_ts + 24277, - 28: __ccgo_ts + 24298, + 0: __ccgo_ts + 23962, + 1: __ccgo_ts + 23975, + 3: __ccgo_ts + 23991, + 4: __ccgo_ts + 24016, + 5: __ccgo_ts + 24030, + 6: __ccgo_ts + 24049, + 7: __ccgo_ts + 1634, + 8: __ccgo_ts + 24074, + 9: __ccgo_ts + 24111, + 10: __ccgo_ts + 24123, + 11: __ccgo_ts + 24138, + 12: __ccgo_ts + 24171, + 13: __ccgo_ts + 24189, + 14: __ccgo_ts + 24214, + 15: __ccgo_ts + 24243, + 17: __ccgo_ts + 6087, + 18: __ccgo_ts + 5489, + 19: __ccgo_ts + 24260, + 20: __ccgo_ts + 24278, + 21: __ccgo_ts + 24296, + 23: __ccgo_ts + 24330, + 25: __ccgo_ts + 24351, + 26: __ccgo_ts + 24377, + 27: __ccgo_ts + 24400, + 28: __ccgo_ts + 24421, } // C documentation @@ -161043,7 +162664,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i var p, v1 uintptr _, _, _, _ = extraFlags, p, rc, v1 if zFunctionName == uintptr(0) || xSFunc != uintptr(0) && xFinal != uintptr(0) || libc.BoolInt32(xFinal == uintptr(0)) != libc.BoolInt32(xStep == uintptr(0)) || libc.BoolInt32(xValue == uintptr(0)) != libc.BoolInt32(xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { - return _sqlite3MisuseError(tls, int32(180244)) + return _sqlite3MisuseError(tls, int32(181689)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -161086,7 +162707,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i p = _sqlite3FindFunction(tls, db, zFunctionName, nArg, uint8(enc), uint8(0)) if p != 0 && (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) == uint32(enc) && int32((*TFuncDef)(unsafe.Pointer(p)).FnArg) == nArg { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24395, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24518, 0) return int32(SQLITE_BUSY) } else { _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -161156,6 +162777,7 @@ func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, en (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } + goto out out: ; rc = _sqlite3ApiExit(tls, db, rc) @@ -161211,7 +162833,7 @@ func _sqlite3InvalidFunction(tls *libc.TLS, context uintptr, NotUsed int32, NotU zName = Xsqlite3_user_data(tls, context) _ = NotUsed _ = NotUsed2 - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24458, libc.VaList(bp+8, zName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24581, libc.VaList(bp+8, zName)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -161242,7 +162864,7 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i if rc != 0 { return SQLITE_OK } - zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, zName)) + zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, zName)) if zCopy == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -161486,7 +163108,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in if eMode < SQLITE_CHECKPOINT_PASSIVE || eMode > int32(SQLITE_CHECKPOINT_TRUNCATE) { /* EVIDENCE-OF: R-03996-12088 The M parameter must be a valid checkpoint ** mode: */ - return _sqlite3MisuseError(tls, int32(180859)) + return _sqlite3MisuseError(tls, int32(182304)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*int8)(unsafe.Pointer(zDb)) != 0 { @@ -161496,7 +163118,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in } if iDb < 0 { rc = int32(SQLITE_ERROR) - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24509, libc.VaList(bp+8, zDb)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24632, libc.VaList(bp+8, zDb)) } else { (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0 rc = _sqlite3Checkpoint(tls, db, iDb, eMode, pnLog, pnCkpt) @@ -161618,7 +163240,7 @@ func Xsqlite3_errmsg(tls *libc.TLS, db uintptr) (r uintptr) { return _sqlite3ErrStr(tls, int32(SQLITE_NOMEM)) } if !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(180995))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(182440))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -161750,7 +163372,7 @@ var _misuse = [34]Tu16{ // */ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181074)) + return _sqlite3MisuseError(tls, int32(182519)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -161760,7 +163382,7 @@ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { func Xsqlite3_extended_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181083)) + return _sqlite3MisuseError(tls, int32(182528)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -161809,7 +163431,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui enc2 = int32(SQLITE_UTF16LE) } if enc2 < int32(SQLITE_UTF8) || enc2 > int32(SQLITE_UTF16BE) { - return _sqlite3MisuseError(tls, int32(181131)) + return _sqlite3MisuseError(tls, int32(182576)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -161818,7 +163440,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui pColl = _sqlite3FindCollSeq(tls, db, uint8(enc2), zName, 0) if pColl != 0 && (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp != 0 { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24530, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24653, 0) return int32(SQLITE_BUSY) } _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -161965,7 +163587,7 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u flags = *(*uint32)(unsafe.Pointer(pFlags)) zVfs = zDefaultVfs nUri = _sqlite3Strlen30(tls, zUri) - if (flags&uint32(SQLITE_OPEN_URI) != 0 || *(*Tu8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Config)) + 6)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24598, uint64(5)) == 0 { /* Input character index */ + if (flags&uint32(SQLITE_OPEN_URI) != 0 || *(*Tu8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Config)) + 6)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24721, uint64(5)) == 0 { /* Input character index */ iOut = 0 /* Output character index */ nByte = uint64(nUri + int32(8)) /* Bytes of space to allocate */ /* Make sure the SQLITE_OPEN_URI flag is set to indicate to the VFS xOpen @@ -161995,8 +163617,8 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u for *(*int8)(unsafe.Pointer(zUri + uintptr(iIn))) != 0 && int32(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn)))) != int32('/') { iIn++ } - if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24604, zUri+7, uint64(9)) != 0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24614, libc.VaList(bp+8, iIn-int32(7), zUri+7)) + if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24727, zUri+7, uint64(9)) != 0) { + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24737, libc.VaList(bp+8, iIn-int32(7), zUri+7)) rc = int32(SQLITE_ERROR) goto parse_uri_out } @@ -162085,24 +163707,24 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u nOpt = _sqlite3Strlen30(tls, zOpt) zVal = zOpt + uintptr(nOpt+int32(1)) nVal = _sqlite3Strlen30(tls, zVal) - if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24642, zOpt, uint64(3)) == 0 { + if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24765, zOpt, uint64(3)) == 0 { zVfs = zVal } else { aMode = uintptr(0) zModeType = uintptr(0) mask = 0 limit = 0 - if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24646, zOpt, uint64(5)) == 0 { + if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24769, zOpt, uint64(5)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_SHAREDCACHE) | libc.Int32FromInt32(SQLITE_OPEN_PRIVATECACHE) aMode = uintptr(unsafe.Pointer(&_aCacheMode)) limit = mask - zModeType = __ccgo_ts + 24646 + zModeType = __ccgo_ts + 24769 } - if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24667, zOpt, uint64(4)) == 0 { + if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24790, zOpt, uint64(4)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_READONLY) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_MEMORY) aMode = uintptr(unsafe.Pointer(&_aOpenMode)) limit = int32(uint32(mask) & flags) - zModeType = __ccgo_ts + 3406 + zModeType = __ccgo_ts + 3470 } if aMode != 0 { mode = 0 @@ -162131,12 +163753,12 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u i++ } if mode == 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24682, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24805, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_ERROR) goto parse_uri_out } if mode & ^libc.Int32FromInt32(SQLITE_OPEN_MEMORY) > limit { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24702, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24825, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_PERM) goto parse_uri_out } @@ -162160,9 +163782,10 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u } *(*uintptr)(unsafe.Pointer(ppVfs)) = Xsqlite3_vfs_find(tls, zVfs) if *(*uintptr)(unsafe.Pointer(ppVfs)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24726, libc.VaList(bp+8, zVfs)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24849, libc.VaList(bp+8, zVfs)) rc = int32(SQLITE_ERROR) } + goto parse_uri_out parse_uri_out: ; if rc != SQLITE_OK { @@ -162179,11 +163802,11 @@ var _aCacheMode = [3]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24652, + Fz: __ccgo_ts + 24775, Fmode: int32(SQLITE_OPEN_SHAREDCACHE), }, 1: { - Fz: __ccgo_ts + 24659, + Fz: __ccgo_ts + 24782, Fmode: int32(SQLITE_OPEN_PRIVATECACHE), }, 2: {}, @@ -162194,19 +163817,19 @@ var _aOpenMode = [5]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24672, + Fz: __ccgo_ts + 24795, Fmode: int32(SQLITE_OPEN_READONLY), }, 1: { - Fz: __ccgo_ts + 24675, + Fz: __ccgo_ts + 24798, Fmode: int32(SQLITE_OPEN_READWRITE), }, 2: { - Fz: __ccgo_ts + 24678, + Fz: __ccgo_ts + 24801, Fmode: libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE), }, 3: { - Fz: __ccgo_ts + 17766, + Fz: __ccgo_ts + 17853, Fmode: int32(SQLITE_OPEN_MEMORY), }, 4: {}, @@ -162334,8 +163957,8 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16BE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16LE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+22353, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+24742, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+22498, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+24865, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto opendb_out } @@ -162356,7 +163979,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* READWRITE */ /* READWRITE | CREATE */ if int32(1)<<(*(*uint32)(unsafe.Pointer(bp))&uint32(7))&int32(0x46) == 0 { - rc = _sqlite3MisuseError(tls, int32(181803)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(183248)) /* IMP: R-18321-05872 */ } else { rc = _sqlite3ParseUri(tls, zVfs, zFilename, bp, db, bp+8, bp+16) } @@ -162365,7 +163988,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _sqlite3OomFault(tls, db) } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { - v2 = __ccgo_ts + 3797 + v2 = __ccgo_ts + 3861 } else { v2 = uintptr(0) } @@ -162392,9 +164015,9 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* The default safety_level for the main database is FULL; for the temp ** database it is OFF. This matches the pager layer defaults. */ - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6587 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6651 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).Fsafety_level = uint8(libc.Int32FromInt32(SQLITE_DEFAULT_SYNCHRONOUS) + libc.Int32FromInt32(1)) - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 23744 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 23867 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).Fsafety_level = uint8(PAGER_SYNCHRONOUS_OFF) (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState = uint8(SQLITE_STATE_OPEN) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -162439,6 +164062,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* Enable the lookaside-malloc subsystem */ _setupLookaside(tls, db, uintptr(0), _sqlite3Config.FszLookaside, _sqlite3Config.FnLookaside) Xsqlite3_wal_autocheckpoint(tls, db, int32(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT)) + goto opendb_out opendb_out: ; if db != 0 { @@ -162487,7 +164111,7 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc } if zFilename == uintptr(0) { - zFilename = __ccgo_ts + 24748 + zFilename = __ccgo_ts + 24871 } pVal = _sqlite3ValueNew(tls, uintptr(0)) _sqlite3ValueSetStr(tls, pVal, -int32(1), zFilename, uint8(SQLITE_UTF16LE), libc.UintptrFromInt32(0)) @@ -162704,20 +164328,20 @@ func Xsqlite3_get_autocommit(tls *libc.TLS, db uintptr) (r int32) { func _sqlite3ReportError(tls *libc.TLS, iErr int32, lineno int32, zType uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) - Xsqlite3_log(tls, iErr, __ccgo_ts+24751, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) + Xsqlite3_log(tls, iErr, __ccgo_ts+24874, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) return iErr } func _sqlite3CorruptError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24776) + return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24899) } func _sqlite3MisuseError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24796) + return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24919) } func _sqlite3CantopenError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24803) + return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24926) } // C documentation @@ -162823,6 +164447,7 @@ func Xsqlite3_table_column_metadata(tls *libc.TLS, db uintptr, zDbName uintptr, if !(zCollSeq != 0) { zCollSeq = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } + goto error_out error_out: ; _sqlite3BtreeLeaveAll(tls, db) @@ -162847,11 +164472,11 @@ error_out: } if SQLITE_OK == rc && !(pTab != 0) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24820, libc.VaList(bp+16, zTableName, zColumnName)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24943, libc.VaList(bp+16, zTableName, zColumnName)) rc = int32(SQLITE_ERROR) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v3 = __ccgo_ts + 3797 + v3 = __ccgo_ts + 3861 } else { v3 = uintptr(0) } @@ -163286,7 +164911,7 @@ func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) (r int32) { */ fallthrough case int32(SQLITE_TESTCTRL_ISINIT): - if _sqlite3Config.FisInit == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 { rc = int32(SQLITE_ERROR) } break @@ -163875,7 +165500,7 @@ func Xsqlite3_compileoption_used(tls *libc.TLS, zOptName uintptr) (r int32) { var _ /* nOpt at bp+0 */ int32 _, _, _ = azCompileOpt, i, n azCompileOpt = _sqlite3CompileOptions(tls, bp) - if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24848, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24971, int32(7)) == 0 { zOptName += uintptr(7) } n = _sqlite3Strlen30(tls, zOptName) @@ -164093,7 +165718,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui } _leaveMutex(tls) if rc != 0 { - v2 = __ccgo_ts + 24856 + v2 = __ccgo_ts + 24979 } else { v2 = uintptr(0) } @@ -164973,23 +166598,23 @@ func _sqlite3ConnectionClosed(tls *libc.TLS, db uintptr) { // ** string must correspond to the JSONB_* integer above. // */ var _jsonbType = [17]uintptr{ - 0: __ccgo_ts + 1636, - 1: __ccgo_ts + 7888, - 2: __ccgo_ts + 7893, - 3: __ccgo_ts + 6308, - 4: __ccgo_ts + 6308, - 5: __ccgo_ts + 6303, - 6: __ccgo_ts + 6303, - 7: __ccgo_ts + 8199, - 8: __ccgo_ts + 8199, - 9: __ccgo_ts + 8199, - 10: __ccgo_ts + 8199, - 11: __ccgo_ts + 24879, - 12: __ccgo_ts + 24885, - 13: __ccgo_ts + 1650, - 14: __ccgo_ts + 1650, - 15: __ccgo_ts + 1650, - 16: __ccgo_ts + 1650, + 0: __ccgo_ts + 1650, + 1: __ccgo_ts + 8013, + 2: __ccgo_ts + 8018, + 3: __ccgo_ts + 6372, + 4: __ccgo_ts + 6372, + 5: __ccgo_ts + 6367, + 6: __ccgo_ts + 6367, + 7: __ccgo_ts + 8324, + 8: __ccgo_ts + 8324, + 9: __ccgo_ts + 8324, + 10: __ccgo_ts + 8324, + 11: __ccgo_ts + 25002, + 12: __ccgo_ts + 25008, + 13: __ccgo_ts + 1664, + 14: __ccgo_ts + 1664, + 15: __ccgo_ts + 1664, + 16: __ccgo_ts + 1664, } // C documentation @@ -165752,6 +167377,38 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { _jsonAppendChar(tls, p, int8(',')) } +// C documentation +// +// /* c is a control character. Append the canonical JSON representation +// ** of that control character to p. +// ** +// ** This routine assumes that the output buffer has already been enlarged +// ** sufficiently to hold the worst-case encoding plus a nul terminator. +// */ +func _jsonAppendControlChar(tls *libc.TLS, p uintptr, c Tu8) { + if _aSpecial[c] != 0 { + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = int8('\\') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = _aSpecial[c] + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(2) + } else { + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = int8('\\') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = int8('u') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(2)))) = int8('0') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(3)))) = int8('0') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(4)))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 25015 + uintptr(int32(c)>>int32(4)))) + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(5)))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 25015 + uintptr(int32(c)&int32(0xf)))) + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(6) + } +} + +var _aSpecial = [32]int8{ + 8: int8('b'), + 9: int8('t'), + 10: int8('n'), + 12: int8('f'), + 13: int8('r'), +} + // C documentation // // /* Append the N-byte string in zIn to the end of the JsonString string @@ -165765,9 +167422,9 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { var c Tu8 var k Tu32 - var z, v10, v12, v14, v16, v18, v2, v20, v22, v24, v6, v8 uintptr - var v1, v11, v13, v15, v17, v19, v21, v23, v5, v7, v9 Tu64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v5, v6, v7, v8, v9 + var z, v10, v2, v4, v6, v8 uintptr + var v1, v3, v5, v7, v9 Tu64 + _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v2, v3, v4, v5, v6, v7, v8, v9 z = zIn if z == uintptr(0) { return @@ -165824,80 +167481,38 @@ func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { N -= k } c = *(*Tu8)(unsafe.Pointer(z)) - if !(int32(c) == int32('"') || int32(c) == int32('\\')) { - goto _3 - } - json_simple_escape: - ; - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { - return - } - v6 = p + 24 - v5 = *(*Tu64)(unsafe.Pointer(v6)) - *(*Tu64)(unsafe.Pointer(v6))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = int8('\\') - v8 = p + 24 - v7 = *(*Tu64)(unsafe.Pointer(v8)) - *(*Tu64)(unsafe.Pointer(v8))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = int8(c) - goto _4 - _3: - ; - if int32(c) == int32('\'') { - v10 = p + 24 - v9 = *(*Tu64)(unsafe.Pointer(v10)) - *(*Tu64)(unsafe.Pointer(v10))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = int8(c) - } else { - if _aSpecial[c] != 0 { - c = uint8(_aSpecial[c]) - goto json_simple_escape - } - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + if int32(c) == int32('"') || int32(c) == int32('\\') { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { return } - v12 = p + 24 - v11 = *(*Tu64)(unsafe.Pointer(v12)) - *(*Tu64)(unsafe.Pointer(v12))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v11))) = int8('\\') - v14 = p + 24 - v13 = *(*Tu64)(unsafe.Pointer(v14)) - *(*Tu64)(unsafe.Pointer(v14))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v13))) = int8('u') - v16 = p + 24 - v15 = *(*Tu64)(unsafe.Pointer(v16)) - *(*Tu64)(unsafe.Pointer(v16))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v15))) = int8('0') - v18 = p + 24 - v17 = *(*Tu64)(unsafe.Pointer(v18)) - *(*Tu64)(unsafe.Pointer(v18))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v17))) = int8('0') - v20 = p + 24 - v19 = *(*Tu64)(unsafe.Pointer(v20)) - *(*Tu64)(unsafe.Pointer(v20))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v19))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 24892 + uintptr(int32(c)>>int32(4)))) - v22 = p + 24 - v21 = *(*Tu64)(unsafe.Pointer(v22)) - *(*Tu64)(unsafe.Pointer(v22))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v21))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 24892 + uintptr(int32(c)&int32(0xf)))) + v4 = p + 24 + v3 = *(*Tu64)(unsafe.Pointer(v4)) + *(*Tu64)(unsafe.Pointer(v4))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v3))) = int8('\\') + v6 = p + 24 + v5 = *(*Tu64)(unsafe.Pointer(v6)) + *(*Tu64)(unsafe.Pointer(v6))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = int8(c) + } else { + if int32(c) == int32('\'') { + v8 = p + 24 + v7 = *(*Tu64)(unsafe.Pointer(v8)) + *(*Tu64)(unsafe.Pointer(v8))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = int8(c) + } else { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + return + } + _jsonAppendControlChar(tls, p, c) + } } - _4: - ; z++ N-- } - v24 = p + 24 - v23 = *(*Tu64)(unsafe.Pointer(v24)) - *(*Tu64)(unsafe.Pointer(v24))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v23))) = int8('"') -} - -var _aSpecial = [32]int8{ - 8: int8('b'), - 9: int8('t'), - 10: int8('n'), - 12: int8('f'), - 13: int8('r'), + v10 = p + 24 + v9 = *(*Tu64)(unsafe.Pointer(v10)) + *(*Tu64)(unsafe.Pointer(v10))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = int8('"') } // C documentation @@ -165915,9 +167530,9 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _, _, _, _ = n, n1, z, z1 switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_NULL): - _jsonAppendRawNZ(tls, p, __ccgo_ts+1636, uint32(4)) + _jsonAppendRawNZ(tls, p, __ccgo_ts+1650, uint32(4)) case int32(SQLITE_FLOAT): - _jsonPrintf(tls, int32(100), p, __ccgo_ts+15325, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) + _jsonPrintf(tls, int32(100), p, __ccgo_ts+15418, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) case int32(SQLITE_INTEGER): z = Xsqlite3_value_text(tls, pValue) n = uint32(Xsqlite3_value_bytes(tls, pValue)) @@ -165938,7 +167553,7 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _jsonTranslateBlobToText(tls, bp, uint32(0), p) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr) == 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24909, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25032, -int32(1)) (*TJsonString)(unsafe.Pointer(p)).FeErr = uint8(JSTRING_ERR) _jsonStringReset(tls, p) } @@ -165992,7 +167607,7 @@ func _jsonReturnString(tls *libc.TLS, p uintptr, pParse uintptr, ctx uintptr) { Xsqlite3_result_error_nomem(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr)&int32(JSTRING_MALFORMED) != 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25061, -int32(1)) } } } @@ -166239,6 +167854,7 @@ func _json5Whitespace(tls *libc.TLS, zIn uintptr) (r int32) { goto whitespace_done } } + goto whitespace_done whitespace_done: ; return n @@ -166274,8 +167890,8 @@ var _aNanInfName = [5]TNanInfName{ Fn: int8(3), FeType: int8(JSONB_FLOAT), FnRepl: int8(7), - FzMatch: __ccgo_ts + 24953, - FzRepl: __ccgo_ts + 24957, + FzMatch: __ccgo_ts + 25076, + FzRepl: __ccgo_ts + 25080, }, 1: { Fc1: int8('i'), @@ -166283,32 +167899,32 @@ var _aNanInfName = [5]TNanInfName{ Fn: int8(8), FeType: int8(JSONB_FLOAT), FnRepl: int8(7), - FzMatch: __ccgo_ts + 24965, - FzRepl: __ccgo_ts + 24957, + FzMatch: __ccgo_ts + 25088, + FzRepl: __ccgo_ts + 25080, }, 2: { Fc1: int8('n'), Fc2: int8('N'), Fn: int8(3), FnRepl: int8(4), - FzMatch: __ccgo_ts + 1641, - FzRepl: __ccgo_ts + 1636, + FzMatch: __ccgo_ts + 1655, + FzRepl: __ccgo_ts + 1650, }, 3: { Fc1: int8('q'), Fc2: int8('Q'), Fn: int8(4), FnRepl: int8(4), - FzMatch: __ccgo_ts + 24974, - FzRepl: __ccgo_ts + 1636, + FzMatch: __ccgo_ts + 25097, + FzRepl: __ccgo_ts + 1650, }, 4: { Fc1: int8('s'), Fc2: int8('S'), Fn: int8(4), FnRepl: int8(4), - FzMatch: __ccgo_ts + 24979, - FzRepl: __ccgo_ts + 1636, + FzMatch: __ccgo_ts + 25102, + FzRepl: __ccgo_ts + 1650, }, } @@ -166323,7 +167939,7 @@ func _jsonWrongNumArgs(tls *libc.TLS, pCtx uintptr, zFuncName uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24984, libc.VaList(bp+8, zFuncName)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25107, libc.VaList(bp+8, zFuncName)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) } @@ -166772,30 +168388,37 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept return j + uint32(1) } } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) <= int32(0x1f) { + /* Control characters in JSON5 string literals are ok */ + if int32(x) == int32(JSONB_TEXTJ) { + return j + uint32(1) + } } else { - if libc.Xstrchr(tls, __ccgo_ts+25027, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { - j++ + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { + return j + uint32(1) } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { - if j+uint32(5) >= k { - return j + uint32(1) - } - if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { - return j + uint32(1) - } + if libc.Xstrchr(tls, __ccgo_ts+25150, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { j++ } else { - if int32(x) != int32(JSONB_TEXT5) { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { + if j+uint32(5) >= k { + return j + uint32(1) + } + if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { + return j + uint32(1) + } + j++ } else { - *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) - szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) - if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + if int32(x) != int32(JSONB_TEXT5) { return j + uint32(1) + } else { + *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) + szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) + if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + return j + uint32(1) + } + j += szC - uint32(1) } - j += szC - uint32(1) } } } @@ -166891,6 +168514,7 @@ func _jsonTranslateTextToBlob(tls *libc.TLS, pParse uintptr, i Tu32) (r int32) { var _ /* op at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cDelim, iBlob, iStart, iThis, j, k, k1, nn, opcode, seenE, t, x, z, v40, v41, v43, v44, v46, v48 z = (*TJsonParse)(unsafe.Pointer(pParse)).FzJson + goto json_parse_restart json_parse_restart: ; switch int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))) { @@ -167045,6 +168669,7 @@ _1: } j = (*TJsonParse)(unsafe.Pointer(pParse)).FiErr + uint32(1) } + goto parse_object_value parse_object_value: ; x = _jsonTranslateTextToBlob(tls, pParse, j) @@ -167171,6 +168796,7 @@ _3: ; /* Parse string */ opcode = uint8(JSONB_TEXT) + goto parse_string parse_string: ; cDelim = *(*int8)(unsafe.Pointer(z + uintptr(i))) @@ -167219,9 +168845,14 @@ parse_string: } } else { if int32(c) <= int32(0x1f) { - /* Control characters are not allowed in strings */ - (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j - return -int32(1) + if int32(c) == 0 { + (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j + return -int32(1) + } + /* Control characters are not allowed in canonical JSON string + ** literals, but are allowed in JSON5 string literals. */ + opcode = uint8(JSONB_TEXT5) + (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) } else { if int32(c) == int32('"') { opcode = uint8(JSONB_TEXT5) @@ -167235,7 +168866,7 @@ parse_string: return int32(j + uint32(1)) _5: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7888, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8013, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_TRUE)) return int32(i + uint32(4)) } @@ -167243,7 +168874,7 @@ _5: return -int32(1) _6: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7893, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(5)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8018, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(5)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_FALSE)) return int32(i + uint32(5)) } @@ -167288,6 +168919,7 @@ _8: ; /* Parse number */ t = uint8(0x00) /* Bit 0x01: JSON5. Bit 0x02: FLOAT */ + goto parse_number parse_number: ; seenE = uint8(0) @@ -167319,14 +168951,14 @@ parse_number: /* JSON5 allows for "+Infinity" and "-Infinity" using exactly ** that case. SQLite also allows these in any case and it allows ** "+inf" and "-inf". */ - if (int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+24953, int32(3)) == 0 { + if (int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+25076, int32(3)) == 0 { (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) if int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == int32('-') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25036) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25159) } else { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25043) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25166) } - if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25049, int32(5)) == 0 { + if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25172, int32(5)) == 0 { v48 = int32(9) } else { v48 = int32(4) @@ -167365,6 +168997,7 @@ parse_number: } } } + goto parse_number_2 parse_number_2: ; j = i + uint32(1) @@ -167423,6 +169056,7 @@ parse_number_2: return -int32(1) } } + goto parse_number_finish parse_number_finish: ; if int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == int32('+') { @@ -167485,7 +169119,7 @@ _29: return -int32(1) _37: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1636, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1650, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) return int32(i + uint32(4)) } @@ -167509,7 +169143,7 @@ _38: goto _51 } if int32(_aNanInfName[k1].FeType) == int32(JSONB_FLOAT) { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25043) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25166) } else { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) } @@ -167554,7 +169188,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 i += _json5Whitespace(tls, zJson+uintptr(i)) if *(*int8)(unsafe.Pointer(zJson + uintptr(i))) != 0 { if pCtx != 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25061, -int32(1)) } _jsonParseReset(tls, pParse) return int32(1) @@ -167567,7 +169201,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 if (*TJsonParse)(unsafe.Pointer(pParse)).Foom != 0 { Xsqlite3_result_error_nomem(tls, pCtx) } else { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25061, -int32(1)) } } _jsonParseReset(tls, pParse) @@ -167730,15 +169364,15 @@ func _jsonTranslateBlobToText(tls *libc.TLS, pParse uintptr, i Tu32, pOut uintpt goto _16 _2: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1636, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1650, uint32(4)) return i + uint32(1) _3: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7888, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8013, uint32(4)) return i + uint32(1) _4: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7893, uint32(5)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8018, uint32(5)) return i + uint32(1) _6: ; @@ -167787,9 +169421,9 @@ _7: k++ } if bOverflow != 0 { - v19 = __ccgo_ts + 24957 + v19 = __ccgo_ts + 25080 } else { - v19 = __ccgo_ts + 11755 + v19 = __ccgo_ts + 11880 } _jsonPrintf(tls, int32(100), pOut, v19, libc.VaList(bp+16, u)) goto _16 @@ -167837,7 +169471,7 @@ _11: for sz2 > uint32(0) { k2 = uint32(0) for { - if !(k2 < sz2 && int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('\\') && int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('"')) { + if !(k2 < sz2 && (_jsonIsOk[uint8(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2))))] != 0 || int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) == int32('\''))) { break } goto _21 @@ -167854,7 +169488,16 @@ _11: sz2 -= k2 } if int32(*(*int8)(unsafe.Pointer(zIn2))) == int32('"') { - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25055, uint32(2)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25178, uint32(2)) + zIn2++ + sz2-- + continue + } + if int32(*(*int8)(unsafe.Pointer(zIn2))) <= int32(0x1f) { + if (*TJsonString)(unsafe.Pointer(pOut)).FnUsed+uint64(7) > (*TJsonString)(unsafe.Pointer(pOut)).FnAlloc && _jsonStringGrow(tls, pOut, uint32(7)) != 0 { + break + } + _jsonAppendControlChar(tls, pOut, uint8(*(*int8)(unsafe.Pointer(zIn2)))) zIn2++ sz2-- continue @@ -167868,7 +169511,7 @@ _11: case int32('\''): _jsonAppendChar(tls, pOut, int8('\'')) case int32('v'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25058, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25181, uint32(6)) case int32('x'): if sz2 < uint32(4) { p23 = pOut + 33 @@ -167876,12 +169519,12 @@ _11: sz2 = uint32(2) break } - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25065, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25188, uint32(4)) _jsonAppendRawNZ(tls, pOut, zIn2+2, uint32(2)) zIn2 += uintptr(2) sz2 -= uint32(2) case int32('0'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25070, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25193, uint32(6)) case int32('\r'): if sz2 > uint32(2) && int32(*(*int8)(unsafe.Pointer(zIn2 + 2))) == int32('\n') { zIn2++ @@ -167959,6 +169602,7 @@ _14: goto _16 _15: ; + goto malformed_jsonb malformed_jsonb: ; p29 = pOut + 33 @@ -167969,6 +169613,140 @@ _16: return i + n + *(*Tu32)(unsafe.Pointer(bp)) } +// C documentation +// +// /* Context for recursion of json_pretty() +// */ +type TJsonPretty = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty = TJsonPretty + +type TJsonPretty1 = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty1 = TJsonPretty1 + +// C documentation +// +// /* Append indentation to the pretty JSON under construction */ +func _jsonPrettyIndent(tls *libc.TLS, pPretty uintptr) { + var jj Tu32 + _ = jj + jj = uint32(0) + for { + if !(jj < (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent) { + break + } + _jsonAppendRaw(tls, (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut, (*TJsonPretty)(unsafe.Pointer(pPretty)).FzIndent, (*TJsonPretty)(unsafe.Pointer(pPretty)).FszIndent) + goto _1 + _1: + ; + jj++ + } +} + +// C documentation +// +// /* +// ** Translate the binary JSONB representation of JSON beginning at +// ** pParse->aBlob[i] into a JSON text string. Append the JSON +// ** text onto the end of pOut. Return the index in pParse->aBlob[] +// ** of the first byte past the end of the element that is translated. +// ** +// ** This is a variant of jsonTranslateBlobToText() that "pretty-prints" +// ** the output. Extra whitespace is inserted to make the JSON easier +// ** for humans to read. +// ** +// ** If an error is detected in the BLOB input, the pOut->eErr flag +// ** might get set to JSTRING_MALFORMED. But not all BLOB input errors +// ** are detected. So a malformed JSONB input might either result +// ** in an error, or in incorrect JSON. +// ** +// ** The pOut->eErr JSTRING_OOM flag is set on a OOM. +// */ +func _jsonTranslateBlobToPrettyText(tls *libc.TLS, pPretty uintptr, i Tu32) (r Tu32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var iEnd, j, n Tu32 + var pOut, pParse, p1, p2 uintptr + var _ /* sz at bp+0 */ Tu32 + _, _, _, _, _, _, _ = iEnd, j, n, pOut, pParse, p1, p2 + pParse = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpParse + pOut = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut + n = _jsonbPayloadSize(tls, pParse, i, bp) + if n == uint32(0) { + p1 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + return (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob + uint32(1) + } + switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { + case int32(JSONB_ARRAY): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, int8('[')) + if j < iEnd { + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25200, uint32(2)) + } + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, int8(']')) + i = iEnd + case int32(JSONB_OBJECT): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, int8('{')) + if j < iEnd { + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToText(tls, pParse, j, pOut) + if j > iEnd { + p2 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p2)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p2))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25203, uint32(2)) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25200, uint32(2)) + } + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, int8('}')) + i = iEnd + default: + i = _jsonTranslateBlobToText(tls, pParse, i, pOut) + break + } + return i +} + // C documentation // // /* Return true if the input pJson @@ -168686,7 +170464,7 @@ func _jsonReturnFromBlob(tls *libc.TLS, pParse uintptr, i Tu32, pCtx uintptr, te db = Xsqlite3_context_db_handle(tls, pCtx) n = _jsonbPayloadSize(tls, pParse, i, bp) if n == uint32(0) { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25061, -int32(1)) return } switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { @@ -168795,6 +170573,7 @@ _6: if *(*Tu32)(unsafe.Pointer(bp)) == uint32(0) { goto returnfromblob_malformed } + goto to_double to_double: ; z1 = _sqlite3DbStrNDup(tls, db, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(i+n), uint64(int32(*(*Tu32)(unsafe.Pointer(bp))))) @@ -168913,13 +170692,15 @@ _14: _15: ; return + goto returnfromblob_oom returnfromblob_oom: ; Xsqlite3_result_error_nomem(tls, pCtx) return + goto returnfromblob_malformed returnfromblob_malformed: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25061, -int32(1)) return } @@ -168960,7 +170741,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob = Xsqlite3_value_blob(tls, pArg) (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob = uint32(Xsqlite3_value_bytes(tls, pArg)) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24909, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25032, -int32(1)) return int32(1) } case int32(SQLITE_TEXT): @@ -168973,7 +170754,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FzJson = zJson (*TJsonParse)(unsafe.Pointer(pParse)).FnJson = nJson if _jsonConvertTextToBlob(tls, pParse, ctx) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25061, -int32(1)) _sqlite3DbFree(tls, (*TJsonParse)(unsafe.Pointer(pParse)).Fdb, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob) libc.Xmemset(tls, pParse, 0, uint64(72)) return int32(1) @@ -168992,10 +170773,10 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin return int32(1) } if int32(*(*int8)(unsafe.Pointer(z))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25043) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25166) } else { if int32(*(*int8)(unsafe.Pointer(z))) == int32('-') && int32(*(*int8)(unsafe.Pointer(z + 1))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25036) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25159) } else { _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(n), z) } @@ -169034,7 +170815,7 @@ func _jsonBadPathError(tls *libc.TLS, ctx uintptr, zPath uintptr) (r uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25077, libc.VaList(bp+8, zPath)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25206, libc.VaList(bp+8, zPath)) if ctx == uintptr(0) { return zMsg } @@ -169126,11 +170907,12 @@ func _jsonInsertIntoBlob(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr, e _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto jsonInsertIntoBlob_patherror jsonInsertIntoBlob_patherror: ; _jsonParseFree(tls, p) if rc == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25061, -int32(1)) } else { _jsonBadPathError(tls, ctx, zPath) } @@ -169214,6 +170996,7 @@ func _jsonParseFuncArg(tls *libc.TLS, ctx uintptr, pArg uintptr, flgs Tu32) (r u } } db = Xsqlite3_context_db_handle(tls, ctx) + goto rebuild_from_cache rebuild_from_cache: ; p = _sqlite3DbMallocZero(tls, db, uint64(72)) @@ -169303,6 +171086,7 @@ rebuild_from_cache: } } return p + goto json_pfa_malformed json_pfa_malformed: ; if flgs&uint32(JSON_KEEPERROR) != 0 { @@ -169310,9 +171094,10 @@ json_pfa_malformed: return p } else { _jsonParseFree(tls, p) - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25061, -int32(1)) return uintptr(0) } + goto json_pfa_oom json_pfa_oom: ; _jsonParseFree(tls, pFromCache) @@ -169444,7 +171229,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if int32(*(*int8)(unsafe.Pointer(zPath))) == int32('$') { v1 = zPath + uintptr(1) } else { - v1 = __ccgo_ts + 25095 + v1 = __ccgo_ts + 25224 } i = _jsonLookupStep(tls, p, uint32(0), v1, uint32(0)) if i >= uint32(JSON_LOOKUP_PATHERROR) { @@ -169454,7 +171239,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25061, -int32(1)) } } eErr = uint8(1) @@ -169472,25 +171257,6 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) _jsonParseFree(tls, p) } -// C documentation -// -// /* True if the string is all digits */ -func _jsonAllDigits(tls *libc.TLS, z uintptr, n int32) (r int32) { - var i int32 - _ = i - i = 0 - for { - if !(i < n && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))])&int32(0x04) != 0) { - break - } - goto _1 - _1: - ; - i++ - } - return libc.BoolInt32(i == n) -} - // C documentation // // /* True if the string is all alphanumerics and underscores */ @@ -169577,21 +171343,21 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { ** [NUMBER] ==> $[NUMBER] // Not PG. Purely for convenience */ _jsonStringInit(tls, bp, ctx) - if _jsonAllDigits(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25097, uint32(1)) + if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) == int32(SQLITE_INTEGER) { + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25226, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+5163, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+5227, uint32(2)) } else { if _jsonAllAlphanum(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1663, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1677, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { if int32(*(*int8)(unsafe.Pointer(zPath))) == int32('[') && nPath >= int32(3) && int32(*(*int8)(unsafe.Pointer(zPath + uintptr(nPath-int32(1))))) == int32(']') { _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25099, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25228, uint32(2)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25102, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25231, uint32(1)) } } } @@ -169627,11 +171393,11 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { goto json_extract_error /* Return NULL if not found */ } else { _jsonAppendSeparator(tls, bp) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1636, uint32(4)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1650, uint32(4)) } } else { if j == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25061, -int32(1)) goto json_extract_error } else { _jsonBadPathError(tls, ctx, zPath) @@ -169651,6 +171417,7 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } } + goto json_extract_error json_extract_error: ; _jsonStringReset(tls, bp) @@ -169898,7 +171665,7 @@ func _jsonPatchFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == int32(JSON_MERGE_OOM) { Xsqlite3_result_error_nomem(tls, ctx) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25061, -int32(1)) } } _jsonParseFree(tls, pPatch) @@ -169922,7 +171689,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { var _ /* jx at bp+0 */ TJsonString _, _, _ = i, n, z if argc&int32(1) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25104, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25233, -int32(1)) return } _jsonStringInit(tls, bp, ctx) @@ -169933,7 +171700,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { break } if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) != int32(SQLITE_TEXT) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25155, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25284, -int32(1)) _jsonStringReset(tls, bp) return } @@ -170005,7 +171772,7 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25061, -int32(1)) } } goto json_remove_done @@ -170018,9 +171785,11 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto json_remove_patherror json_remove_patherror: ; _jsonBadPathError(tls, ctx, zPath) + goto json_remove_done json_remove_done: ; _jsonParseFree(tls, p) @@ -170040,7 +171809,7 @@ func _jsonReplaceFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { return } if argc&int32(1) == 0 { - _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15798) + _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15891) return } _jsonInsertIntoBlob(tls, ctx, argc, argv, int32(JEDIT_REPL)) @@ -170071,9 +171840,9 @@ func _jsonSetFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { } if argc&int32(1) == 0 { if bIsSet != 0 { - v1 = __ccgo_ts + 25189 + v1 = __ccgo_ts + 25318 } else { - v1 = __ccgo_ts + 25193 + v1 = __ccgo_ts + 25322 } _jsonWrongNumArgs(tls, ctx, v1) return @@ -170121,7 +171890,7 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25061, -int32(1)) } } goto json_type_done @@ -170130,11 +171899,54 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { i = uint32(0) } Xsqlite3_result_text(tls, ctx, _jsonbType[int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(p)).FaBlob + uintptr(i))))&int32(0x0f)], -int32(1), libc.UintptrFromInt32(0)) + goto json_type_done json_type_done: ; _jsonParseFree(tls, p) } +// C documentation +// +// /* +// ** json_pretty(JSON) +// ** json_pretty(JSON, INDENT) +// ** +// ** Return text that is a pretty-printed rendering of the input JSON. +// ** If the argument is not valid JSON, return NULL. +// ** +// ** The INDENT argument is text that is used for indentation. If omitted, +// ** it defaults to four spaces (the same as PostgreSQL). +// */ +func _jsonPrettyFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { + bp := tls.Alloc(176) + defer tls.Free(176) + var v1 uintptr + var v2 bool + var _ /* s at bp+0 */ TJsonString + var _ /* x at bp+136 */ TJsonPretty + _, _ = v1, v2 /* Pretty printing context */ + libc.Xmemset(tls, bp+136, 0, uint64(32)) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse = _jsonParseFuncArg(tls, ctx, *(*uintptr)(unsafe.Pointer(argv)), uint32(0)) + if (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse == uintptr(0) { + return + } + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpOut = bp + _jsonStringInit(tls, bp, ctx) + if v2 = argc == int32(1); !v2 { + v1 = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = v1 + } + if v2 || v1 == uintptr(0) { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = __ccgo_ts + 25329 + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(4) + } else { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(libc.Xstrlen(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent)) + } + _jsonTranslateBlobToPrettyText(tls, bp+136, uint32(0)) + _jsonReturnString(tls, bp, uintptr(0), uintptr(0)) + _jsonParseFree(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse) +} + // C documentation // // /* @@ -170209,7 +172021,7 @@ func _jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if argc == int32(2) { f = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if f < int64(1) || f > int64(15) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25200, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25334, -int32(1)) return } flags = uint8(f & int64(0x0f)) @@ -170400,7 +172212,7 @@ func _jsonArrayCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25257, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25391, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -170549,7 +172361,7 @@ func _jsonObjectCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25260, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25394, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -170652,7 +172464,7 @@ func _jsonEachConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv _ = argv _ = argc _ = pAux - rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25263) + rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25397) if rc == SQLITE_OK { pNew = _sqlite3DbMallocZero(tls, db, uint64(32)) *(*uintptr)(unsafe.Pointer(ppVtab)) = pNew @@ -170786,7 +172598,7 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { var _ /* sz at bp+0 */ Tu32 _, _, _, _, _ = i, k, n, needQuote, z if int32((*TJsonEachCursor)(unsafe.Pointer(p)).FeType) == int32(JSONB_ARRAY) { - _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25346, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) + _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25480, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) } else { *(*Tu32)(unsafe.Pointer(bp)) = uint32(0) needQuote = 0 @@ -170812,9 +172624,9 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { } } if needQuote != 0 { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25353, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25487, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } else { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25361, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25495, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } } } @@ -171200,7 +173012,7 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a i = v5 (*TJsonEachCursor)(unsafe.Pointer(p)).FeType = uint8(0) (*TJsonEachCursor)(unsafe.Pointer(p)).FnRoot = uint32(1) - _jsonAppendRaw(tls, p+56, __ccgo_ts+25367, uint32(1)) + _jsonAppendRaw(tls, p+56, __ccgo_ts+25501, uint32(1)) } (*TJsonEachCursor)(unsafe.Pointer(p)).FnParent = uint32(0) n = _jsonbPayloadSize(tls, p+192, i, bp) @@ -171220,10 +173032,11 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent))).FiValue = i } return SQLITE_OK + goto json_each_malformed_input json_each_malformed_input: ; Xsqlite3_free(tls, (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg) - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24938, 0) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25061, 0) _jsonEachCursorReset(tls, p) if (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg != 0 { v6 = int32(SQLITE_ERROR) @@ -171277,183 +173090,193 @@ func init() { // ** Register JSON functions. // */ func _sqlite3RegisterJsonFunctions(tls *libc.TLS) { - _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2304)/libc.Uint64FromInt64(72))) + _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2448)/libc.Uint64FromInt64(72))) } -var _aJsonFunc = [32]TFuncDef{ +var _aJsonFunc = [34]TFuncDef{ 0: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25369, + FzName: __ccgo_ts + 25503, }, 1: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25374, + FzName: __ccgo_ts + 25508, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25380, + FzName: __ccgo_ts + 25514, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25391, + FzName: __ccgo_ts + 25525, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25403, + FzName: __ccgo_ts + 25537, }, 5: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25403, + FzName: __ccgo_ts + 25537, }, 6: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25421, + FzName: __ccgo_ts + 25555, }, 7: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25441, + FzName: __ccgo_ts + 25575, }, 8: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25454, + FzName: __ccgo_ts + 25588, }, 9: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_JSON) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25468, + FzName: __ccgo_ts + 25602, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_SQL) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25471, + FzName: __ccgo_ts + 25605, }, 11: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25475, + FzName: __ccgo_ts + 25609, }, 12: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25487, + FzName: __ccgo_ts + 25621, }, 13: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25500, + FzName: __ccgo_ts + 25634, }, 14: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25512, + FzName: __ccgo_ts + 25646, }, 15: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25525, + FzName: __ccgo_ts + 25659, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25536, + FzName: __ccgo_ts + 25670, }, 17: { FnArg: int8(1), - FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25548, + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25682, }, 18: { + FnArg: int8(2), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25682, + }, + 19: { + FnArg: int8(1), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25694, + }, + 20: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25559, + FzName: __ccgo_ts + 25705, }, - 19: { + 21: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25571, + FzName: __ccgo_ts + 25717, }, - 20: { + 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25584, + FzName: __ccgo_ts + 25730, }, - 21: { + 23: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25597, + FzName: __ccgo_ts + 25743, }, - 22: { + 24: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25611, + FzName: __ccgo_ts + 25757, }, - 23: { + 25: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25620, + FzName: __ccgo_ts + 25766, }, - 24: { + 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25630, + FzName: __ccgo_ts + 25776, }, - 25: { + 27: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25630, + FzName: __ccgo_ts + 25776, }, - 26: { + 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25640, + FzName: __ccgo_ts + 25786, }, - 27: { + 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25640, + FzName: __ccgo_ts + 25786, }, - 28: { + 30: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25651, + FzName: __ccgo_ts + 25797, }, - 29: { + 31: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25668, + FzName: __ccgo_ts + 25814, }, - 30: { + 32: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25686, + FzName: __ccgo_ts + 25832, }, - 31: { + 33: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25704, + FzName: __ccgo_ts + 25850, }, } @@ -171476,33 +173299,35 @@ func init() { *(*uintptr)(unsafe.Add(p, 1032)) = __ccgo_fp(_jsonObjectFunc) *(*uintptr)(unsafe.Add(p, 1104)) = __ccgo_fp(_jsonPatchFunc) *(*uintptr)(unsafe.Add(p, 1176)) = __ccgo_fp(_jsonPatchFunc) - *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonQuoteFunc) - *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2048)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2056)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2064)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2120)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2128)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2136)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonQuoteFunc) + *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2208)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2280)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2328)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2336)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2344)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2352)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2400)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2408)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2416)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2424)) = __ccgo_fp(_jsonGroupInverse) } // C documentation @@ -171534,11 +173359,11 @@ var _aMod = [2]struct { FpModule uintptr }{ 0: { - FzName: __ccgo_ts + 25723, + FzName: __ccgo_ts + 25869, FpModule: uintptr(unsafe.Pointer(&_jsonEachModule)), }, 1: { - FzName: __ccgo_ts + 25733, + FzName: __ccgo_ts + 25879, FpModule: uintptr(unsafe.Pointer(&_jsonTreeModule)), }, } @@ -172185,7 +174010,7 @@ func _nodeAcquire(tls *libc.TLS, pRtree uintptr, iNode Ti64, pParent uintptr, pp } } if (*TRtree)(unsafe.Pointer(pRtree)).FpNodeBlob == uintptr(0) { - rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25743, iNode, 0, pRtree+112) + rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25889, iNode, 0, pRtree+112) } if rc != 0 { *(*uintptr)(unsafe.Pointer(ppNode)) = uintptr(0) @@ -172490,7 +174315,7 @@ func _rtreeDestroy(tls *libc.TLS, pVtab uintptr) (r int32) { var rc int32 _, _, _ = pRtree, rc, zCreate pRtree = pVtab - zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25748, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25894, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if !(zCreate != 0) { rc = int32(SQLITE_NOMEM) } else { @@ -173412,7 +175237,7 @@ func _findLeafNode(tls *libc.TLS, pRtree uintptr, iRowid Ti64, ppLeaf uintptr, p func _deserializeGeometry(tls *libc.TLS, pValue uintptr, pCons uintptr) (r int32) { var pBlob, pInfo, pSrc uintptr _, _, _ = pBlob, pInfo, pSrc /* Callback information */ - pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25830) + pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25976) if pSrc == uintptr(0) { return int32(SQLITE_ERROR) } @@ -173467,7 +175292,7 @@ func _rtreeFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintp iRowid = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) *(*Ti64)(unsafe.Pointer(bp + 24)) = 0 eType = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv))) - if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv))) == float64(iRowid) { + if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && 0 == _sqlite3IntFloatCompare(tls, iRowid, Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))) { rc = _findLeafNode(tls, pRtree, iRowid, bp+16, bp+24) } else { rc = SQLITE_OK @@ -174517,6 +176342,7 @@ func _SplitNode(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iHe rc = _nodeRelease(tls, pRtree, pLeft) pLeft = uintptr(0) } + goto splitnode_out splitnode_out: ; _nodeRelease(tls, pRtree, pRight) @@ -174946,7 +176772,7 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) var _ /* pStmt at bp+0 */ uintptr _, _, _, _, _, _ = rc, zCol, zCol1, zCol2, zSql, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25844, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25990, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if zSql != 0 { rc = Xsqlite3_prepare_v2(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, -int32(1), bp, uintptr(0)) } else { @@ -174956,11 +176782,11 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) if rc == SQLITE_OK { if iCol == 0 { zCol = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25864, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26010, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) } else { zCol1 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol) zCol2 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol+int32(1)) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25896, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26042, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) } } Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -175122,6 +176948,7 @@ func _rtreeUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pRow rc = Xsqlite3_reset(tls, pUp) } } + goto constraint constraint: ; _rtreeRelease(tls, pRtree) @@ -175173,7 +177000,7 @@ func _rtreeRename(tls *libc.TLS, pVtab uintptr, zNewName uintptr) (r int32) { _, _, _ = pRtree, rc, zSql pRtree = pVtab rc = int32(SQLITE_NOMEM) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25933, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26079, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) if zSql != 0 { _nodeBlobReset(tls, pRtree) rc = Xsqlite3_exec(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, uintptr(0), uintptr(0), uintptr(0)) @@ -175227,9 +177054,9 @@ func _rtreeQueryStat1(tls *libc.TLS, db uintptr, pRtree uintptr) (r int32) { var v2 int64 var _ /* p at bp+0 */ uintptr _, _, _, _, _, _ = nRow, rc, zFmt, zSql, v1, v2 - zFmt = __ccgo_ts + 26078 + zFmt = __ccgo_ts + 26224 nRow = int64(RTREE_MIN_ROWEST) - rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11584, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11709, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc != SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FnRowEst = int64(RTREE_DEFAULT_ROWEST) if rc == int32(SQLITE_ERROR) { @@ -175287,9 +177114,9 @@ func _rtreeShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName1 = [3]uintptr{ - 0: __ccgo_ts + 26134, - 1: __ccgo_ts + 5486, - 2: __ccgo_ts + 16696, + 0: __ccgo_ts + 26280, + 1: __ccgo_ts + 5550, + 2: __ccgo_ts + 16783, } var _rtreeModule = Tsqlite3_module{ @@ -175333,21 +177160,21 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref (*TRtree)(unsafe.Pointer(pRtree)).Fdb = db if isCreate != 0 { p = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26548, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26694, libc.VaList(bp+8, zDb, zPrefix)) ii = 0 for { if !(ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26610, libc.VaList(bp+8, ii)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26756, libc.VaList(bp+8, ii)) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26615, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26679, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26749, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26761, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26825, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26895, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) zCreate = Xsqlite3_str_finish(tls, p) if !(zCreate != 0) { return int32(SQLITE_NOMEM) @@ -175377,7 +177204,7 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } else { /* An UPSERT is very slightly slower than REPLACE, but it is needed ** if there are auxiliary columns */ - zFormat = __ccgo_ts + 26798 + zFormat = __ccgo_ts + 26944 } zSql = Xsqlite3_mprintf(tls, zFormat, libc.VaList(bp+8, zDb, zPrefix)) if zSql != 0 { @@ -175392,31 +177219,31 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref i++ } if (*TRtree)(unsafe.Pointer(pRtree)).FnAux != 0 && rc != int32(SQLITE_NOMEM) { - (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+26906, libc.VaList(bp+8, zDb, zPrefix)) + (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+27052, libc.VaList(bp+8, zDb, zPrefix)) if (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { p1 = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26951, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27097, libc.VaList(bp+8, zDb, zPrefix)) ii1 = 0 for { if !(ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } if ii1 != 0 { - Xsqlite3_str_append(tls, p1, __ccgo_ts+13092, int32(1)) + Xsqlite3_str_append(tls, p1, __ccgo_ts+13217, int32(1)) } if ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull) { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26978, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27124, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) } else { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27000, libc.VaList(bp+8, ii1, ii1+int32(2))) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27146, libc.VaList(bp+8, ii1, ii1+int32(2))) } goto _3 _3: ; ii1++ } - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27008, 0) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27154, 0) zSql1 = Xsqlite3_str_finish(tls, p1) if zSql1 == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -175430,14 +177257,14 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } var _azSql = [8]uintptr{ - 0: __ccgo_ts + 26139, - 1: __ccgo_ts + 26192, - 2: __ccgo_ts + 26237, - 3: __ccgo_ts + 26289, - 4: __ccgo_ts + 26343, - 5: __ccgo_ts + 26388, - 6: __ccgo_ts + 26446, - 7: __ccgo_ts + 26501, + 0: __ccgo_ts + 26285, + 1: __ccgo_ts + 26338, + 2: __ccgo_ts + 26383, + 3: __ccgo_ts + 26435, + 4: __ccgo_ts + 26489, + 5: __ccgo_ts + 26534, + 6: __ccgo_ts + 26592, + 7: __ccgo_ts + 26647, } // C documentation @@ -175495,7 +177322,7 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE _, _ = rc, zSql if isCreate != 0 { *(*int32)(unsafe.Pointer(bp)) = 0 - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27024, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27170, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) rc = _getIntFromStmt(tls, db, zSql, bp) if rc == SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = *(*int32)(unsafe.Pointer(bp)) - int32(64) @@ -175503,17 +177330,17 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = int32(4) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*int32(RTREE_MAXCELLS) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } } else { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27044, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27190, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) rc = _getIntFromStmt(tls, db, zSql, pRtree+32) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } else { if (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize < libc.Int32FromInt32(512)-libc.Int32FromInt32(64) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< libc.Int32FromInt32(RTREE_MAX_AUX_COLUMN)+libc.Int32FromInt32(3) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) return int32(SQLITE_ERROR) } Xsqlite3_vtab_config(tls, db, int32(SQLITE_VTAB_CONSTRAINT_SUPPORT), libc.VaList(bp+8, int32(1))) @@ -175590,13 +177417,13 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27287, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27433, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27293, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27439, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) ii = int32(4) for { if !(ii < argc) { @@ -175605,7 +177432,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt zArg = *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)) if int32(*(*int8)(unsafe.Pointer(zArg))) == int32('+') { (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27317, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27463, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) } else { if int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux) > 0 { break @@ -175619,19 +177446,19 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27344, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27490, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) } else { if ii < argc { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, aErrMsg[int32(4)])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, aErrMsg[int32(4)])) rc = int32(SQLITE_ERROR) } else { v3 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v3 if SQLITE_OK != v3 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } } @@ -175654,7 +177481,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } } if iErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, aErrMsg[iErr])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, aErrMsg[iErr])) goto rtreeInit_fail } (*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell = uint8(int32(8) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)*int32(4)) @@ -175665,11 +177492,12 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto rtreeInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto rtreeInit_fail rtreeInit_fail: ; if rc == SQLITE_OK { @@ -175680,8 +177508,8 @@ rtreeInit_fail: } var _azFormat = [2]uintptr{ - 0: __ccgo_ts + 27323, - 1: __ccgo_ts + 27334, + 0: __ccgo_ts + 27469, + 1: __ccgo_ts + 27480, } // C documentation @@ -175739,21 +177567,21 @@ func _rtreenode(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { } _nodeGetCell(tls, bp+40, bp, ii, bp+1008) if ii > 0 { - Xsqlite3_str_append(tls, pOut, __ccgo_ts+11204, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+11329, int32(1)) } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27347, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27493, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) jj = 0 for { if !(jj < int32((*(*TRtree)(unsafe.Pointer(bp + 40))).FnDim2)) { break } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27353, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27499, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) goto _2 _2: ; jj++ } - Xsqlite3_str_append(tls, pOut, __ccgo_ts+27357, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+27503, int32(1)) goto _1 _1: ; @@ -175780,7 +177608,7 @@ func _rtreedepth(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { _ = zBlob _ = nArg if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apArg))) != int32(SQLITE_BLOB) || Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(apArg))) < int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+27359, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+27505, -int32(1)) } else { zBlob = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(apArg))) if zBlob != 0 { @@ -175898,11 +177726,11 @@ func _rtreeCheckAppendMsg(tls *libc.TLS, pCheck uintptr, zFmt uintptr, va uintpt (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } else { if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport != 0 { - v1 = __ccgo_ts + 4205 + v1 = __ccgo_ts + 4269 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27392, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27538, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport == uintptr(0) { (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } @@ -175936,7 +177764,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt _, _, _ = nNode, pNode, pRet pRet = uintptr(0) /* Return value */ if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode == uintptr(0) { - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27399, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27545, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) } if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { Xsqlite3_bind_int64(tls, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, int32(1), iNode) @@ -175953,7 +177781,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt } _rtreeCheckReset(tls, pCheck, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && pRet == uintptr(0) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27444, libc.VaList(bp+8, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27590, libc.VaList(bp+8, iNode)) } } return pRet @@ -175982,8 +177810,8 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i var rc int32 _, _, _, _, _, _ = azSql, ii, pStmt, rc, v1, v2 azSql = [2]uintptr{ - 0: __ccgo_ts + 27476, - 1: __ccgo_ts + 27530, + 0: __ccgo_ts + 27622, + 1: __ccgo_ts + 27676, } if *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) = _rtreeCheckPrepare(tls, pCheck, azSql[bLeaf], libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) @@ -175996,21 +177824,21 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i rc = Xsqlite3_step(tls, pStmt) if rc == int32(SQLITE_DONE) { if bLeaf != 0 { - v1 = __ccgo_ts + 27578 + v1 = __ccgo_ts + 27724 } else { - v1 = __ccgo_ts + 27586 + v1 = __ccgo_ts + 27732 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27595, libc.VaList(bp+8, iKey, iVal, v1)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27741, libc.VaList(bp+8, iKey, iVal, v1)) } else { if rc == int32(SQLITE_ROW) { ii = Xsqlite3_column_int64(tls, pStmt, 0) if ii != iVal { if bLeaf != 0 { - v2 = __ccgo_ts + 27578 + v2 = __ccgo_ts + 27724 } else { - v2 = __ccgo_ts + 27586 + v2 = __ccgo_ts + 27732 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27640, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27786, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) } } } @@ -176055,7 +177883,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 v2 = libc.BoolInt32(*(*TRtreeValue)(unsafe.Pointer(bp)) > *(*TRtreeValue)(unsafe.Pointer(bp + 4))) } if v2 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27698, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27844, libc.VaList(bp+24, i, iCell, iNode)) } if pParent != 0 { _readCoord(tls, pParent+uintptr(libc.Int32FromInt32(4)*libc.Int32FromInt32(2)*i), bp+8) @@ -176073,7 +177901,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 } } if v5 || v4 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27746, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27892, libc.VaList(bp+24, i, iCell, iNode)) } } goto _1 @@ -176106,19 +177934,19 @@ func _rtreeCheckNode(tls *libc.TLS, pCheck uintptr, iDepth int32, aParent uintpt aNode = _rtreeCheckGetNode(tls, pCheck, iNode, bp) if aNode != 0 { if *(*int32)(unsafe.Pointer(bp)) < int32(4) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27813, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27959, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) } else { /* Used to iterate through cells */ if aParent == uintptr(0) { iDepth = _readInt16(tls, aNode) if iDepth > int32(RTREE_MAX_DEPTH) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27847, libc.VaList(bp+16, iDepth)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27993, libc.VaList(bp+16, iDepth)) Xsqlite3_free(tls, aNode) return } } nCell = _readInt16(tls, aNode+2) if int32(4)+nCell*(int32(8)+(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnDim*int32(2)*int32(4)) > *(*int32)(unsafe.Pointer(bp)) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27877, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28023, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) } else { i = 0 for { @@ -176163,12 +177991,12 @@ func _rtreeCheckCount(tls *libc.TLS, pCheck uintptr, zTbl uintptr, nExpect Ti64) var pCount uintptr _, _ = nActual, pCount if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { - pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27932, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) + pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+28078, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) if pCount != 0 { if Xsqlite3_step(tls, pCount) == int32(SQLITE_ROW) { nActual = Xsqlite3_column_int64(tls, pCount, 0) if nActual != nExpect { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27963, libc.VaList(bp+8, zTbl, nExpect, nActual)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28109, libc.VaList(bp+8, zTbl, nExpect, nActual)) } } (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = Xsqlite3_finalize(tls, pCount) @@ -176197,7 +178025,7 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzDb = zDb (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzTab = zTab /* Find the number of auxiliary columns */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28030, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28176, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { nAux = Xsqlite3_column_count(tls, pStmt) - int32(2) Xsqlite3_finalize(tls, pStmt) @@ -176207,11 +178035,11 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe } } /* Find number of dimensions in the rtree table. */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25844, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25990, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim = (Xsqlite3_column_count(tls, pStmt) - int32(1) - nAux) / int32(2) if (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim < int32(1) { - _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28058, 0) + _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28204, 0) } else { if int32(SQLITE_ROW) == Xsqlite3_step(tls, pStmt) { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FbInt = libc.BoolInt32(Xsqlite3_column_type(tls, pStmt, int32(1)) == int32(SQLITE_INTEGER)) @@ -176227,8 +178055,8 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe if (*(*TRtreeCheck)(unsafe.Pointer(bp))).Frc == SQLITE_OK { _rtreeCheckNode(tls, bp, 0, uintptr(0), int64(1)) } - _rtreeCheckCount(tls, bp, __ccgo_ts+28089, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) - _rtreeCheckCount(tls, bp, __ccgo_ts+28096, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28235, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28242, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) } /* Finalize SQL statements used by the integrity-check */ Xsqlite3_finalize(tls, (*(*TRtreeCheck)(unsafe.Pointer(bp))).FpGetNode) @@ -176255,7 +178083,7 @@ func _rtreeIntegrity(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zName uintpt _ = isQuick rc = _rtreeCheckTable(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, pzErr) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28104, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28250, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) if *(*uintptr)(unsafe.Pointer(pzErr)) == uintptr(0) { rc = int32(SQLITE_NOMEM) } @@ -176306,13 +178134,13 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { var _ /* zReport at bp+0 */ uintptr _, _, _, _ = rc, zDb, zTab, v1 if nArg != int32(1) && nArg != int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+28123, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+28269, -int32(1)) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zDb = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg))) if nArg == int32(1) { zTab = zDb - zDb = __ccgo_ts + 6587 + zDb = __ccgo_ts + 6651 } else { zTab = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8))) } @@ -176321,7 +178149,7 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(bp)) } else { - v1 = __ccgo_ts + 18463 + v1 = __ccgo_ts + 18550 } Xsqlite3_result_text(tls, ctx, v1, -int32(1), uintptr(-libc.Int32FromInt32(1))) } else { @@ -176654,6 +178482,7 @@ func _geopolyParseJson(tls *libc.TLS, z uintptr, pRc uintptr) (r uintptr) { rc = int32(SQLITE_ERROR) } } + goto parse_json_err parse_json_err: ; if pRc != 0 { @@ -176787,19 +178616,19 @@ func _geopolyJsonFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if p != 0 { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) - Xsqlite3_str_append(tls, x, __ccgo_ts+25097, int32(1)) + Xsqlite3_str_append(tls, x, __ccgo_ts+25226, int32(1)) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28174, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28320, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28185, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28331, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -176828,20 +178657,20 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) cSep = int8('\'') - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28196, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28342, 0) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28214, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28360, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) cSep = int8(' ') goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28222, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28368, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) i = int32(1) for { if !(i < argc) { @@ -176849,14 +178678,14 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if z != 0 && *(*int8)(unsafe.Pointer(z)) != 0 { - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28230, libc.VaList(bp+8, z)) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28376, libc.VaList(bp+8, z)) } goto _2 _2: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28234, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28380, 0) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -177161,6 +178990,7 @@ func _geopolyBBox(tls *libc.TLS, context uintptr, pPoly uintptr, aCoord uintptr, if !(aCoord == uintptr(0)) { goto _6 } + goto geopolyBboxFill geopolyBboxFill: ; pOut = Xsqlite3_realloc64(tls, p, libc.Uint64FromInt64(40)+libc.Uint64FromInt64(4)*libc.Uint64FromInt32(2)*uint64(libc.Int32FromInt32(4)-libc.Int32FromInt32(4))) @@ -177264,8 +179094,8 @@ func _geopolyBBoxStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if pBBox == uintptr(0) { return } - if (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit == 0 { - (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit = int32(1) + if libc.AtomicLoadPInt32(pBBox) == 0 { + libc.AtomicStorePInt32(pBBox, int32(1)) libc.Xmemcpy(tls, pBBox+4, bp, libc.Uint64FromInt64(4)*libc.Uint64FromInt32(4)) } else { if *(*TRtreeValue)(unsafe.Pointer(bp)) < *(*TRtreeValue)(unsafe.Pointer(pBBox + 4)) { @@ -177892,6 +179722,7 @@ func _geopolyOverlap(tls *libc.TLS, p1 uintptr, p2 uintptr) (r int32) { } } } + goto geopolyOverlapDone geopolyOverlapDone: ; Xsqlite3_free(tls, p) @@ -177983,13 +179814,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27287, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27433, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28247, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28393, 0) (*TRtree)(unsafe.Pointer(pRtree)).FnAux = uint8(1) /* Add one for _shape */ (*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull = uint8(1) /* The _shape column is always not-null */ ii = int32(3) @@ -177998,13 +179829,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint break } (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28269, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28415, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27344, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27490, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) @@ -178012,7 +179843,7 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint v2 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v2 if SQLITE_OK != v2 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } Xsqlite3_free(tls, zSql) @@ -178027,11 +179858,12 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto geopolyInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto geopolyInit_fail geopolyInit_fail: ; if rc == SQLITE_OK { @@ -178180,6 +180012,7 @@ func _geopolyFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uin *(*int32)(unsafe.Pointer(bp + 8)) = _rtreeStepToLeaf(tls, pCsr) } } + goto geopoly_filter_end geopoly_filter_end: ; _nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp))) @@ -178237,7 +180070,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iRowidTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(1) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16696 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16783 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).Fomit = uint8(1) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(30) @@ -178247,7 +180080,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iFuncTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = idxNum - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28273 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28419 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).Fomit = uint8(0) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(300) @@ -178255,7 +180088,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { return SQLITE_OK } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(4) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28279 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28425 (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(3e+06) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(100000) return SQLITE_OK @@ -178375,7 +180208,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR _geopolyBBox(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(aData + 2*8)), bp+8+8, bp) if *(*int32)(unsafe.Pointer(bp)) != 0 { if *(*int32)(unsafe.Pointer(bp)) == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28288, 0) + (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28434, 0) } goto geopoly_update_end } @@ -178462,6 +180295,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, pUp) } } + goto geopoly_update_end geopoly_update_end: ; _rtreeRelease(tls, pRtree) @@ -178477,12 +180311,12 @@ geopoly_update_end: func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28328) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28474) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28344) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28490) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) @@ -178553,7 +180387,7 @@ func _sqlite3_geopoly_init(tls *libc.TLS, db uintptr) (r int32) { i++ } if rc == SQLITE_OK { - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28521, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28667, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) } return rc } @@ -178567,61 +180401,61 @@ var _aFunc = [12]struct { 0: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28359, + FzName: __ccgo_ts + 28505, }, 1: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28372, + FzName: __ccgo_ts + 28518, }, 2: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28385, + FzName: __ccgo_ts + 28531, }, 3: { FnArg: int8(-int32(1)), FbPure: uint8(1), - FzName: __ccgo_ts + 28398, + FzName: __ccgo_ts + 28544, }, 4: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28344, + FzName: __ccgo_ts + 28490, }, 5: { FnArg: int8(3), FbPure: uint8(1), - FzName: __ccgo_ts + 28410, + FzName: __ccgo_ts + 28556, }, 6: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28328, + FzName: __ccgo_ts + 28474, }, 7: { FnArg: int8(1), - FzName: __ccgo_ts + 28433, + FzName: __ccgo_ts + 28579, }, 8: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28447, + FzName: __ccgo_ts + 28593, }, 9: { FnArg: int8(7), FbPure: uint8(1), - FzName: __ccgo_ts + 28460, + FzName: __ccgo_ts + 28606, }, 10: { FnArg: int8(4), FbPure: uint8(1), - FzName: __ccgo_ts + 28474, + FzName: __ccgo_ts + 28620, }, 11: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28490, + FzName: __ccgo_ts + 28636, }, } @@ -178647,7 +180481,7 @@ var _aAgg = [1]struct { FzName uintptr }{ 0: { - FzName: __ccgo_ts + 28502, + FzName: __ccgo_ts + 28648, }, } @@ -178672,20 +180506,20 @@ func _sqlite3RtreeInit(tls *libc.TLS, db uintptr) (r int32) { var rc, utf8 int32 _, _, _, _ = c, c1, rc, utf8 utf8 = int32(SQLITE_UTF8) - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28529, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28675, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28539, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28685, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28550, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28696, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { c = libc.UintptrFromInt32(RTREE_COORD_REAL32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28273, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28419, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) } if rc == SQLITE_OK { c1 = libc.UintptrFromInt32(RTREE_COORD_INT32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28561, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28707, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) } if rc == SQLITE_OK { rc = _sqlite3_geopoly_init(tls, db) @@ -178787,7 +180621,7 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { Xsqlite3_result_error_nomem(tls, ctx) _rtreeMatchArgFree(tls, pBlob) } else { - Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25830, __ccgo_fp(_rtreeMatchArgFree)) + Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25976, __ccgo_fp(_rtreeMatchArgFree)) } } } @@ -180004,7 +181838,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt /* Figure out the size of the output */ nOut = _rbuDeltaOutputSize(tls, aDelta, nDelta) if nOut < 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+28571, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28717, -int32(1)) return } aOut = Xsqlite3_malloc(tls, nOut+int32(1)) @@ -180014,7 +181848,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt nOut2 = _rbuDeltaApply(tls, aOrig, nOrig, aDelta, nDelta, aOut) if nOut2 != nOut { Xsqlite3_free(tls, aOut) - Xsqlite3_result_error(tls, context, __ccgo_ts+28571, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28717, -int32(1)) } else { Xsqlite3_result_blob(tls, context, aOut, nOut, __ccgo_fp(Xsqlite3_free)) } @@ -180040,7 +181874,7 @@ func _prepareAndCollectError(tls *libc.TLS, db uintptr, ppStmt uintptr, pzErrmsg _ = rc rc = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), ppStmt, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) } return rc @@ -180063,7 +181897,7 @@ func _resetAndCollectError(tls *libc.TLS, pStmt uintptr, pzErrmsg uintptr) (r in _ = rc rc = Xsqlite3_reset(tls, pStmt) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) } return rc } @@ -180195,7 +182029,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { /* Free any SQLite statements used while processing the previous object */ _rbuObjIterClearStatements(tls, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28592, uintptr(0), uintptr(0), p+64) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28738, uintptr(0), uintptr(0), p+64) } if rc == SQLITE_OK { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 { @@ -180205,6 +182039,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { if rc != int32(SQLITE_ROW) { rc = _resetAndCollectError(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, p+64) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = uintptr(0) + (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = uintptr(0) } else { (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, 0) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, int32(1)) @@ -180283,7 +182118,7 @@ func _rbuTargetNameFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { Xsqlite3_result_text(tls, pCtx, zIn, -int32(1), libc.UintptrFromInt32(0)) } } else { - if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25743, zIn, uint64(4)) == 0 { + if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25889, zIn, uint64(4)) == 0 { i = int32(4) for { if !(int32(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))) <= int32('9')) { @@ -180320,13 +182155,13 @@ func _rbuObjIterFirst(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { _, _ = rc, v1 libc.Xmemset(tls, pIter, 0, uint64(192)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 28763 + v1 = __ccgo_ts + 28909 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+28804, libc.VaList(bp+8, v1))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+28950, libc.VaList(bp+8, v1))) if rc == SQLITE_OK { - rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+28954) + rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+29100) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup = int32(1) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -180493,7 +182328,7 @@ func _rbuFinalize(tls *libc.TLS, p uintptr, pStmt uintptr) { rc = Xsqlite3_finalize(tls, pStmt) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && rc != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } @@ -180554,7 +182389,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu *(*[4]uintptr)(unsafe.Pointer(bp)) = [4]uintptr{} *(*int32)(unsafe.Pointer(peType)) = RBU_PK_NOTABLE *(*int32)(unsafe.Pointer(piPk)) = 0 - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29079, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29225, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK || Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0]) != int32(SQLITE_ROW) { /* Either an error, or no such table. */ goto rbuTableType_end @@ -180564,7 +182399,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } *(*int32)(unsafe.Pointer(piTnum)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0], int32(1)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29198, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29344, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { goto rbuTableType_end } @@ -180572,7 +182407,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu zOrig = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(3)) zIdx = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(1)) if zOrig != 0 && zIdx != 0 && int32(*(*Tu8)(unsafe.Pointer(zOrig))) == int32('p') { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29219, libc.VaList(bp+40, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29365, libc.VaList(bp+40, zIdx))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)]) == int32(SQLITE_ROW) { *(*int32)(unsafe.Pointer(piPk)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)], 0) @@ -180584,7 +182419,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29270, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29416, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { for Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)]) == int32(SQLITE_ROW) { if Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)], int32(5)) > 0 { @@ -180594,6 +182429,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu } *(*int32)(unsafe.Pointer(peType)) = int32(RBU_PK_NONE) } + goto rbuTableType_end rbuTableType_end: ; i = uint32(0) @@ -180627,7 +182463,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { bIndex = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { libc.Xmemcpy(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk, uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29291, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29437, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FnIndex = 0 for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -180640,7 +182476,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { if bPartial != 0 { libc.Xmemset(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, int32(0x01), uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29319, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29465, libc.VaList(bp+24, zIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) if iCid >= 0 { @@ -180693,7 +182529,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 _rbuTableType(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, pIter+72, bp+8, pIter+108) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NOTABLE { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+19906, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+20038, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc @@ -180704,7 +182540,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 /* Populate the azTblCol[] and nTblCol variables based on the columns ** of the input table. Ignore any input table columns that begin with ** "rbu_". */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29348, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29494, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { nCol = Xsqlite3_column_count(tls, *(*uintptr)(unsafe.Pointer(bp))) _rbuAllocateIterArrays(tls, p, pIter, nCol) @@ -180715,7 +182551,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 break } zName = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), i) - if Xsqlite3_strnicmp(tls, __ccgo_ts+29367, zName, int32(4)) != 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+29513, zName, int32(4)) != 0 { zCopy = _rbuStrndup(tls, zName, p+56) *(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)*4)) = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol v3 = pIter + 16 @@ -180723,7 +182559,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 *(*int32)(unsafe.Pointer(v3))++ *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(v2)*8)) = zCopy } else { - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29372, zName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29518, zName) { bRbuRowid = int32(1) } } @@ -180737,17 +182573,17 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && bRbuRowid != libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) if bRbuRowid != 0 { - v4 = __ccgo_ts + 29382 + v4 = __ccgo_ts + 29528 } else { - v4 = __ccgo_ts + 29395 + v4 = __ccgo_ts + 29541 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29404, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29550, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) } /* Check that all non-HIDDEN columns in the destination table are also ** present in the input table. Populate the abTblPk[], azTblType[] and ** aiTblOrder[] arrays at the same time. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29433, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29579, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zName1 = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -180769,7 +182605,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 } if i == (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29455, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29601, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) } else { iPk = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) bNotNull = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) @@ -180808,15 +182644,15 @@ func _rbuObjIterGetCollist(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) var z, zList, zSep uintptr _, _, _, _ = i, z, zList, zSep zList = uintptr(0) - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } z = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+29482, libc.VaList(bp+8, zList, zSep, z)) - zSep = __ccgo_ts + 14992 + zList = _rbuMPrintf(tls, p, __ccgo_ts+29628, libc.VaList(bp+8, zList, zSep, z)) + zSep = __ccgo_ts + 15085 goto _1 _1: ; @@ -180841,7 +182677,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, _, _, _, _, _ = i, iPk, zCol, zRet, zSep iPk = int32(1) zRet = uintptr(0) - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 for int32(1) != 0 { i = 0 for { @@ -180850,7 +182686,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, } if int32(*(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == iPk { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29491, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29637, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) zSep = zSeparator break } @@ -180898,21 +182734,21 @@ func _rbuVacuumTableStart(tls *libc.TLS, p uintptr, pIter uintptr, bRowid int32, *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zRet = uintptr(0) if bRowid != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29504, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29650, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iMax = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29536, libc.VaList(bp+16, iMax)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29682, libc.VaList(bp+16, iMax)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1650, __ccgo_ts+14992, __ccgo_ts+29559) - zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29565, __ccgo_ts+29572, __ccgo_ts+5108) - zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1650, __ccgo_ts+14992, __ccgo_ts+1650) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1664, __ccgo_ts+15085, __ccgo_ts+29705) + zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29711, __ccgo_ts+29718, __ccgo_ts+5172) + zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1664, __ccgo_ts+15085, __ccgo_ts+1664) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29580, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29726, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zVal = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29622, libc.VaList(bp+16, zList, zVal)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29768, libc.VaList(bp+16, zList, zVal)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } @@ -180961,10 +182797,10 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { zVector = uintptr(0) zRet = uintptr(0) bFailed = 0 - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 iCol = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29319, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29465, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(4)) @@ -180986,15 +182822,15 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { - zCol = __ccgo_ts + 29642 + zCol = __ccgo_ts + 29788 } } else { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) } - zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29650, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29671, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) - zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29707, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) - zSep = __ccgo_ts + 14992 + zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29796, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29817, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) + zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29853, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) + zSep = __ccgo_ts + 15085 iCol++ } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) @@ -181003,9 +182839,9 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29734, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29880, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 iCol = 0 for { if !(iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol) { @@ -181020,19 +182856,20 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { break } } - zVector = _rbuMPrintf(tls, p, __ccgo_ts+29782, libc.VaList(bp+24, zVector, zSep, zQuoted)) - zSep = __ccgo_ts + 14992 + zVector = _rbuMPrintf(tls, p, __ccgo_ts+29928, libc.VaList(bp+24, zVector, zSep, zQuoted)) + zSep = __ccgo_ts + 15085 goto _2 _2: ; iCol++ } if !(bFailed != 0) { - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29789, libc.VaList(bp+24, zLhs, zVector)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29935, libc.VaList(bp+24, zLhs, zVector)) } } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } + goto index_start_out index_start_out: ; Xsqlite3_free(tls, zOrder) @@ -181081,11 +182918,11 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zImpPK = uintptr(0) /* String to return via *pzImposterPK */ zWhere = uintptr(0) /* String to return via *pzWhere */ nBind = 0 /* Value to return via *pnBind */ - zCom = __ccgo_ts + 1650 /* Set to ", " later on */ - zAnd = __ccgo_ts + 1650 /* Set to " AND " later on */ + zCom = __ccgo_ts + 1664 /* Set to ", " later on */ + zAnd = __ccgo_ts + 1664 /* Set to " AND " later on */ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_xinfo = ? */ if rc == SQLITE_OK { - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29319, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29465, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -181094,8 +182931,8 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = uintptr(0) if iCid == -int32(2) { iSeq = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29801, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) - zType = __ccgo_ts + 1650 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29947, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) + zType = __ccgo_ts + 1664 } else { if iCid < 0 { /* An integer primary key. If the table has an explicit IPK, use @@ -181114,9 +182951,9 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - zCol = __ccgo_ts + 29642 + zCol = __ccgo_ts + 29788 } else { - zCol = __ccgo_ts + 29372 + zCol = __ccgo_ts + 29518 } } zType = __ccgo_ts + 1138 @@ -181124,24 +182961,24 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) zType = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)) } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29823, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29969, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) } if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbUnique == 0 || Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) != 0 { if bDesc != 0 { - v2 = __ccgo_ts + 29559 + v2 = __ccgo_ts + 29705 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } zOrder = v2 - zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29843, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) + zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29989, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) } - zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+29864, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) - zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+29897, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) + zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+30010, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) + zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+30043, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) if zRet == uintptr(0) || zImpPK == uintptr(0) || zImpCols == uintptr(0) || zWhere == uintptr(0) { rc = int32(SQLITE_NOMEM) } - zCom = __ccgo_ts + 14992 - zAnd = __ccgo_ts + 22015 + zCom = __ccgo_ts + 15085 + zAnd = __ccgo_ts + 22160 nBind++ } rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -181187,7 +183024,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr _, _, _, _ = i, zCol, zList, zS zList = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zS = __ccgo_ts + 1650 + zS = __ccgo_ts + 1664 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -181195,11 +183032,11 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed + uintptr(i))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29921, libc.VaList(bp+8, zList, zS, zObj, zCol)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30067, libc.VaList(bp+8, zList, zS, zObj, zCol)) } else { - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29933, libc.VaList(bp+8, zList, zS)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30079, libc.VaList(bp+8, zList, zS)) } - zS = __ccgo_ts + 14992 + zS = __ccgo_ts + 15085 if zList == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) break @@ -181211,7 +183048,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } /* For a table with implicit rowids, append "old._rowid_" to the list. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29942, libc.VaList(bp+8, zList, zObj)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30088, libc.VaList(bp+8, zList, zObj)) } } return zList @@ -181237,27 +183074,27 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _ = i, i1, zCol, zList, zSep, zSep1 zList = uintptr(0) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29957, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30103, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29971, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) - zSep = __ccgo_ts + 22015 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30117, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) + zSep = __ccgo_ts + 22160 } goto _1 _1: ; i++ } - zList = _rbuMPrintf(tls, p, __ccgo_ts+29983, libc.VaList(bp+8, zList)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30129, libc.VaList(bp+8, zList)) } else { - zSep1 = __ccgo_ts + 1650 + zSep1 = __ccgo_ts + 1664 i1 = 0 for { if !(i1 < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -181265,8 +183102,8 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i1))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i1)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+30033, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) - zSep1 = __ccgo_ts + 22015 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30179, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) + zSep1 = __ccgo_ts + 22160 } goto _2 _2: @@ -181289,7 +183126,7 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { // */ func _rbuBadControlError(tls *libc.TLS, p uintptr) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30046, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30192, 0) } // C documentation @@ -181323,7 +183160,7 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt if int32(libc.Xstrlen(tls, zMask)) != (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { _rbuBadControlError(tls, p) } else { - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -181331,16 +183168,16 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt } c = *(*int8)(unsafe.Pointer(zMask + uintptr(*(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(i)*4))))) if int32(c) == int32('x') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30033, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14992 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30179, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15085 } else { if int32(c) == int32('d') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30072, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14992 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30218, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15085 } else { if int32(c) == int32('f') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30102, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14992 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30248, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15085 } } } @@ -181424,16 +183261,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _, _ = z, zCol, zDesc, zIdx, zOrig, zSep, v1 z = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zSep = __ccgo_ts + 30139 + zSep = __ccgo_ts + 30285 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_list = (pIter->zTbl) */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA index_xinfo = */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29291, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29437, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zOrig = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) - if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16584) == 0 { + if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16671) == 0 { zIdx = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29319, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29465, libc.VaList(bp+24, zIdx))) } break } @@ -181444,16 +183281,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { /* int iCid = sqlite3_column_int(pXInfo, 0); */ zCol = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(2)) if Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) != 0 { - v1 = __ccgo_ts + 29559 + v1 = __ccgo_ts + 29705 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } zDesc = v1 - z = _rbuMPrintf(tls, p, __ccgo_ts+30152, libc.VaList(bp+24, z, zSep, zCol, zDesc)) - zSep = __ccgo_ts + 14992 + z = _rbuMPrintf(tls, p, __ccgo_ts+30298, libc.VaList(bp+24, z, zSep, zCol, zDesc)) + zSep = __ccgo_ts + 15085 } } - z = _rbuMPrintf(tls, p, __ccgo_ts+30163, libc.VaList(bp+24, z)) + z = _rbuMPrintf(tls, p, __ccgo_ts+30309, libc.VaList(bp+24, z)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } return z @@ -181493,13 +183330,13 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* SELECT name ... WHERE rootpage = $tnum */ zIdx = uintptr(0) /* Name of PK index */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA main.index_xinfo = $zIdx */ - zComma = __ccgo_ts + 1650 + zComma = __ccgo_ts + 1664 zCols = uintptr(0) /* Used to build up list of table cols */ zPk = uintptr(0) /* Used to build up table PK declaration */ /* Figure out the name of the primary key index for the current table. ** This is needed for the argument to "PRAGMA index_xinfo". Set ** zIdx to point to a nul-terminated string containing this name. */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30167) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30313) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), tnum) if int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -181507,7 +183344,7 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { } } if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29319, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29465, libc.VaList(bp+24, zIdx))) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { @@ -181516,21 +183353,21 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) bDesc = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(4)) - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30217, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30363, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) if bDesc != 0 { - v1 = __ccgo_ts + 29559 + v1 = __ccgo_ts + 29705 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - zPk = _rbuMPrintf(tls, p, __ccgo_ts+30239, libc.VaList(bp+24, zPk, zComma, iCid, v1)) - zComma = __ccgo_ts + 14992 + zPk = _rbuMPrintf(tls, p, __ccgo_ts+30385, libc.VaList(bp+24, zPk, zComma, iCid, v1)) + zComma = __ccgo_ts + 15085 } } - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30249, libc.VaList(bp+24, zCols)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30395, libc.VaList(bp+24, zCols)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30264, libc.VaList(bp+24, zCols, zPk)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30410, libc.VaList(bp+24, zCols, zPk)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, 0, 0)) } } @@ -181565,30 +183402,30 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { _, _, _, _, _, _, _, _, _ = iCol, tnum, zCol, zComma, zPk, zPk1, zSql, v2, v3 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { tnum = (*TRbuObjIter)(unsafe.Pointer(pIter)).FiTnum - zComma = __ccgo_ts + 1650 + zComma = __ccgo_ts + 1664 zSql = uintptr(0) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, 0, int32(1))) iCol = 0 for { if !((*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } - zPk = __ccgo_ts + 1650 + zPk = __ccgo_ts + 1664 zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCol)*8)) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_IPK) && *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(iCol))) != 0 { /* If the target table column is an "INTEGER PRIMARY KEY", add ** "PRIMARY KEY" to the imposter table column declaration. */ - zPk = __ccgo_ts + 30326 + zPk = __ccgo_ts + 30472 } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iCol))) != 0 { - v2 = __ccgo_ts + 30339 + v2 = __ccgo_ts + 30485 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30349, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) - zComma = __ccgo_ts + 14992 + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30495, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) + zComma = __ccgo_ts + 15085 goto _1 _1: ; @@ -181597,17 +183434,17 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { zPk1 = _rbuWithoutRowidPK(tls, p, pIter) if zPk1 != 0 { - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30376, libc.VaList(bp+16, zSql, zPk1)) + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30522, libc.VaList(bp+16, zSql, zPk1)) } } - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, int32(1), tnum)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, int32(1), tnum)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { - v3 = __ccgo_ts + 30383 + v3 = __ccgo_ts + 30529 } else { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30398, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, 0, 0)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30544, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, 0, 0)) } } @@ -181633,7 +183470,7 @@ func _rbuObjIterPrepareTmpInsert(tls *libc.TLS, p uintptr, pIter uintptr, zColli bRbuRowid = libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) zBind = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1)+bRbuRowid) if zBind != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30430, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30576, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) } } @@ -181679,7 +183516,7 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt *(*int32)(unsafe.Pointer(bp + 8)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc zRet = uintptr(0) if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30487) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30633) } if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3_bind_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx, -int32(1), libc.UintptrFromInt32(0)) @@ -181848,7 +183685,7 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zIdx = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx zLimit = uintptr(0) if nOffset != 0 { - zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30553, libc.VaList(bp+40, nOffset)) + zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30699, libc.VaList(bp+40, nOffset)) if !(zLimit != 0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } @@ -181865,18 +183702,18 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zCollist = _rbuObjIterGetIndexCols(tls, p, pIter, bp, bp+8, bp+16, bp+24) zBind = _rbuObjIterGetBindlist(tls, p, *(*int32)(unsafe.Pointer(bp + 24))) /* Create the imposter table used to write to this index. */ - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, 0, int32(1))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30573, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30719, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, 0, 0)) /* Create the statement to insert index entries */ (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = *(*int32)(unsafe.Pointer(bp + 24)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30638, libc.VaList(bp+40, zTbl, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30784, libc.VaList(bp+40, zTbl, zBind))) } /* And to delete index entries */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30674, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30820, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) } /* Create the SELECT statement to read keys in sorted order */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -181891,26 +183728,26 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } if zStart != 0 { if zPart != 0 { - v2 = __ccgo_ts + 30708 + v2 = __ccgo_ts + 30854 } else { - v2 = __ccgo_ts + 30712 + v2 = __ccgo_ts + 30858 } v1 = v2 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30718, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30864, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) Xsqlite3_free(tls, zStart) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30779, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30925, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) } else { if zPart != 0 { - v3 = __ccgo_ts + 30708 + v3 = __ccgo_ts + 30854 } else { - v3 = __ccgo_ts + 30712 + v3 = __ccgo_ts + 30858 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30840, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30986, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -181929,62 +183766,62 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zTbl1 = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl /* Imposter table name */ zBindings = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+bRbuRowid) zWhere1 = _rbuObjIterGetWhere(tls, p, pIter) - zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6598) - zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6594) + zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6662) + zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6658) zCollist = _rbuObjIterGetCollist(tls, p, pIter) (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol /* Create the imposter table or tables (if required). */ _rbuCreateImposterTable(tls, p, pIter) _rbuCreateImposterTable2(tls, p, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) { - v4 = __ccgo_ts + 1650 + v4 = __ccgo_ts + 1664 } else { - v4 = __ccgo_ts + 30999 + v4 = __ccgo_ts + 31145 } zWrite = v4 /* Create the INSERT statement to write to the target PK b-tree */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if bRbuRowid != 0 { - v5 = __ccgo_ts + 31008 + v5 = __ccgo_ts + 31154 } else { - v5 = __ccgo_ts + 1650 + v5 = __ccgo_ts + 1664 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31018, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31164, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) } /* Create the DELETE statement to write to the target PK b-tree. ** Because it only performs INSERT operations, this is not required for ** an rbu vacuum handle. */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31054, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31200, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) } if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zRbuRowid = __ccgo_ts + 1650 + zRbuRowid = __ccgo_ts + 1664 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zRbuRowid = __ccgo_ts + 31082 + zRbuRowid = __ccgo_ts + 31228 } /* Create the rbu_tmp_xxx table and the triggers to populate it. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - v6 = __ccgo_ts + 31094 + v6 = __ccgo_ts + 31240 } else { - v6 = __ccgo_ts + 1650 + v6 = __ccgo_ts + 1664 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31111, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31187, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31257, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31333, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31486, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31632, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) } _rbuObjIterPrepareTmpInsert(tls, p, pIter, zCollist, zRbuRowid) } /* Create the SELECT statement to read keys from data_xxx */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zRbuRowid1 = __ccgo_ts + 1650 + zRbuRowid1 = __ccgo_ts + 1664 zStart1 = uintptr(0) zOrder = uintptr(0) if bRbuRowid != 0 { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v7 = __ccgo_ts + 31585 + v7 = __ccgo_ts + 31731 } else { - v7 = __ccgo_ts + 31595 + v7 = __ccgo_ts + 31741 } zRbuRowid1 = v7 } @@ -181997,28 +183834,28 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } } if bRbuRowid != 0 { - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29642, 0) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29788, 0) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1650, __ccgo_ts+14992, __ccgo_ts+1650) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1664, __ccgo_ts+15085, __ccgo_ts+1664) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v8 = __ccgo_ts + 31606 + v8 = __ccgo_ts + 31752 } else { - v8 = __ccgo_ts + 1650 + v8 = __ccgo_ts + 1664 } if zStart1 != 0 { v9 = zStart1 } else { - v9 = __ccgo_ts + 1650 + v9 = __ccgo_ts + 1664 } if zOrder != 0 { - v10 = __ccgo_ts + 23209 + v10 = __ccgo_ts + 23354 } else { - v10 = __ccgo_ts + 1650 + v10 = __ccgo_ts + 1664 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31612, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31758, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) } Xsqlite3_free(tls, zStart1) Xsqlite3_free(tls, zOrder) @@ -182104,11 +183941,11 @@ func _rbuGetUpdateStmt(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintptr, p (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpNext = (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate = pUp if zSet != 0 { - zPrefix = __ccgo_ts + 1650 + zPrefix = __ccgo_ts + 1664 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { - zPrefix = __ccgo_ts + 30999 + zPrefix = __ccgo_ts + 31145 } - zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31660, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) + zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31806, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pUp+8, p+64, zUpdate) *(*uintptr)(unsafe.Pointer(ppStmt)) = (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate } @@ -182135,7 +183972,7 @@ func _rbuOpenDbhandle(tls *libc.TLS, p uintptr, zName uintptr, bUseVfs int32) (r } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_open_v2(tls, zName, bp, flags, v1) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) Xsqlite3_close(tls, *(*uintptr)(unsafe.Pointer(bp))) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) } @@ -182182,7 +184019,7 @@ func _rbuLoadState(tls *libc.TLS, p uintptr) (r uintptr) { if pRet == uintptr(0) { return uintptr(0) } - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31690, libc.VaList(bp+24, p+48))) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31836, libc.VaList(bp+24, p+48))) for *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { switch Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) { case int32(RBU_STATE_STAGE): @@ -182241,27 +184078,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu = _rbuOpenDbhandle(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, int32(1)) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain = dbMain if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6587, int32(SQLITE_FCNTL_RBUCNT), p) + Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6651, int32(SQLITE_FCNTL_RBUCNT), p) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState == uintptr(0) { - zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6587) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31720, libc.VaList(bp+8, zFile, zFile)) + zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6651) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31866, libc.VaList(bp+8, zFile, zFile)) } } /* If using separate RBU and state databases, attach the state database to ** the RBU db handle now. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState != 0 { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31748, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) - libc.Xmemcpy(tls, p+48, __ccgo_ts+3420, uint64(4)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31894, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+3484, uint64(4)) } else { - libc.Xmemcpy(tls, p+48, __ccgo_ts+6587, uint64(4)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+6651, uint64(4)) } /* If it has not already been created, create the rbu_state table */ - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31766, libc.VaList(bp+8, p+48)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31912, libc.VaList(bp+8, p+48)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { bOpen = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FnRbu = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FpRbuFd = uintptr(0) - rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6587, int32(SQLITE_FCNTL_RBUCNT), p) + rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6651, int32(SQLITE_FCNTL_RBUCNT), p) if rc != int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc } @@ -182294,10 +184131,10 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) return } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31832, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31978, 0) } else { zExtra = uintptr(0) - if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24598, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { + if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24721, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { zExtra = (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu + 5 for *(*int8)(unsafe.Pointer(zExtra)) != 0 { v1 = zExtra @@ -182311,16 +184148,16 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if zExtra == uintptr(0) { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } else { - v2 = __ccgo_ts + 31864 + v2 = __ccgo_ts + 32010 } if zExtra == uintptr(0) { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } else { v3 = zExtra } - zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+31866, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6587), v2, v3)) + zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+32012, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6651), v2, v3)) if zTarget == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) return @@ -182331,27 +184168,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31898, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32044, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31913, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32059, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31930, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32076, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, int32(SQLITE_FCNTL_RBU), p) } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31946, 0) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32092, 0) /* Mark the database file just opened as an RBU target database. If ** this call returns SQLITE_NOTFOUND, then the RBU vfs is not in use. ** This is an error. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, int32(SQLITE_FCNTL_RBU), p) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31974, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32120, 0) } } @@ -182401,7 +184238,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxShmMap})))(tls, pDb, 0, libc.Int32FromInt32(32)*libc.Int32FromInt32(1024), 0, bp) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - iRet = int64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))<= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+32974, zState+uintptr(n-int32(7)), uint64(7)) { + if n >= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+33120, zState+uintptr(n-int32(7)), uint64(7)) { return _rbuMisuseError(tls) } } @@ -183621,7 +185458,7 @@ func _rbuEditErrmsg(tls *libc.TLS, p uintptr) { if !(uint64(i) < nErrmsg-uint64(8)) { break } - if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+30999, uint64(8)) == 0 { + if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31145, uint64(8)) == 0 { nDel = int32(8) for int32(*(*int8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) >= int32('0') && int32(*(*int8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) <= int32('9') { nDel++ @@ -183649,7 +185486,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { if p != 0 { /* Commit the transaction to the *-oal file. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14896, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14989, uintptr(0), uintptr(0), p+64) } /* Sync the db file if currently doing an incremental checkpoint */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { @@ -183658,7 +185495,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { } _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14896, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14989, uintptr(0), uintptr(0), p+64) } /* Close any open statement handles. */ _rbuObjIterFinalize(tls, p+80) @@ -183668,7 +185505,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { ** specifying the current target and state databases to start a new ** vacuum from scratch. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu != 0 { - rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32982, uintptr(0), uintptr(0), uintptr(0)) + rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33128, uintptr(0), uintptr(0), uintptr(0)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_DONE) && rc2 != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc2 } @@ -183769,7 +185606,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14896, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14989, uintptr(0), uintptr(0), uintptr(0)) } } /* Sync the db file */ @@ -183782,19 +185619,19 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { rc = (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14896, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14989, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 14881 + v1 = __ccgo_ts + 14974 } else { - v1 = __ccgo_ts + 32934 + v1 = __ccgo_ts + 33080 } zBegin = v1 rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, zBegin, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32934, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33080, uintptr(0), uintptr(0), uintptr(0)) } } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -184360,7 +186197,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r rc = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xControl})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, int32(SQLITE_FCNTL_ZIPVFS), bp) if rc == SQLITE_OK { rc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33009, 0) + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33155, 0) } else { if rc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpTargetFd = p @@ -184386,7 +186223,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r if rc == SQLITE_OK && op == int32(SQLITE_FCNTL_VFSNAME) { pRbuVfs = (*Trbu_file)(unsafe.Pointer(p)).FpRbuVfs zIn = *(*uintptr)(unsafe.Pointer(pArg)) - zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33032, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) + zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33178, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) *(*uintptr)(unsafe.Pointer(pArg)) = zOut if zOut == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -184581,7 +186418,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag if pDb != 0 { if (*Trbu_file)(unsafe.Pointer(pDb)).FpRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FeStage == int32(RBU_STAGE_OAL) { if (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FzTarget == uintptr(0) { - zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6587) + zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6651) zOpen = Xsqlite3_filename_wal(tls, zOpen) } nOpen = libc.Xstrlen(tls, zOpen) @@ -184595,7 +186432,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag } else { (*Trbu_file)(unsafe.Pointer(pFd)).FpRbu = (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).FpRbu } - if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33043, 0) != 0 { + if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33189, 0) != 0 { oflags = libc.Int32FromInt32(SQLITE_OPEN_TEMP_DB) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_EXCLUSIVE) | libc.Int32FromInt32(SQLITE_OPEN_DELETEONCLOSE) zOpen = uintptr(0) } @@ -185148,7 +186985,7 @@ func _statConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint _sqlite3TokenInit(tls, bp, *(*uintptr)(unsafe.Pointer(argv + 3*8))) iDb = _sqlite3FindDb(tls, db, bp) if iDb < 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12193, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12318, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) return int32(SQLITE_ERROR) } } else { @@ -185538,6 +187375,7 @@ func _statDecodePage(tls *libc.TLS, pBt uintptr, p uintptr) (r int32) { } } return SQLITE_OK + goto statPageIsCorrupt statPageIsCorrupt: ; (*TStatPage)(unsafe.Pointer(p)).Fflags = uint8(0) @@ -185628,6 +187466,7 @@ func _statNext(tls *libc.TLS, pCursor uintptr) (r int32) { pPager = _sqlite3BtreePager(tls, pBt) Xsqlite3_free(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath) (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = uintptr(0) + goto statNextRestart statNextRestart: ; if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage < 0 { @@ -185645,7 +187484,7 @@ statNextRestart: (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiPgno = iRoot (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33054, 0) + v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33200, 0) z = v1 (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FzPath = v1 if z == uintptr(0) { @@ -185683,8 +187522,8 @@ statNextRestart: if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { (*TStatCursor)(unsafe.Pointer(pCsr)).FzName = Xsqlite3_column_text(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FpStmt, 0) (*TStatCursor)(unsafe.Pointer(pCsr)).FiPageno = *(*Tu32)(unsafe.Pointer((*TStatCell)(unsafe.Pointer(pCell)).FaOvfl + uintptr(iOvfl)*4)) - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33056 - v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33065, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33202 + v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33211, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) z = v2 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v2 if z == uintptr(0) { @@ -185713,7 +187552,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage++ if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage >= int32(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(222551)) + return _sqlite3CorruptError(tls, int32(224206)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -185724,7 +187563,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnPage++ (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33077, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) + v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33223, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) z = v4 (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FzPath = v4 if z == uintptr(0) { @@ -185747,13 +187586,13 @@ statNextRestart: case int32(0x05): /* table internal */ fallthrough case int32(0x02): /* index internal */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33085 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33231 case int32(0x0D): /* table leaf */ fallthrough case int32(0x0A): /* index leaf */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33094 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33240 default: - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33099 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33245 break } *(*int32)(unsafe.Pointer(pCsr + 2108)) += (*TStatPage)(unsafe.Pointer(p1)).FnCell @@ -185762,7 +187601,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnMxPayload = (*TStatPage)(unsafe.Pointer(p1)).FnMxPayload } if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) + v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) z = v5 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v5 if z == uintptr(0) { @@ -185851,12 +187690,12 @@ func _statFilter(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uintptr, a (*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg = uint8(0) } pSql = Xsqlite3_str_new(tls, (*TStatTable)(unsafe.Pointer(pTab)).Fdb) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33109, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33255, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) if zName != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33264, libc.VaList(bp+8, zName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33410, libc.VaList(bp+8, zName)) } if idxNum&int32(0x08) != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33278, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33424, 0) } zSql = Xsqlite3_str_finish(tls, pSql) if zSql == uintptr(0) { @@ -185933,7 +187772,7 @@ func _statRowid(tls *libc.TLS, pCursor uintptr, pRowid uintptr) (r int32) { // ** Invoke this routine to register the "dbstat" virtual table module // */ func _sqlite3DbstatRegister(tls *libc.TLS, db uintptr) (r int32) { - return Xsqlite3_create_module(tls, db, __ccgo_ts+33293, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) + return Xsqlite3_create_module(tls, db, __ccgo_ts+33439, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) } var _dbstat_module = Tsqlite3_module{} @@ -187204,20 +189043,20 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, *(*uintptr)(unsafe.Pointer(pazDflt)) = uintptr(0) } nThis = _sqlite3Strlen30(tls, zThis) - if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11584, zThis) { + if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11709, zThis) { rc = Xsqlite3_table_column_metadata(tls, db, zDb, zThis, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { /* For sqlite_stat1, pretend that (tbl,idx) is the PRIMARY KEY. */ - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33300, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33446, 0) } else { if rc == int32(SQLITE_ERROR) { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1650, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1664, 0) } else { return rc } } } else { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33421, libc.VaList(bp+16, zDb, zThis)) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33567, libc.VaList(bp+16, zDb, zThis)) } if !(zPragma != 0) { return int32(SQLITE_NOMEM) @@ -187241,7 +189080,7 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, bRowid = 0 } nDbCol += bRowid - nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+29642)) + nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+29788)) rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp))) if rc == SQLITE_OK { nByte = Tsqlite3_int64(uint64(nByte) + uint64(nDbCol)*(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(2)+libc.Uint64FromInt64(1)+libc.Uint64FromInt32(1)+libc.Uint64FromInt32(1))) @@ -187265,8 +189104,8 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, } i = 0 if bRowid != 0 { - nName = libc.Xstrlen(tls, __ccgo_ts+29642) - libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29642, nName+uint64(1)) + nName = libc.Xstrlen(tls, __ccgo_ts+29788) + libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29788, nName+uint64(1)) *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)) = pAlloc pAlloc += uintptr(nName + uint64(1)) *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) = uint8(1) @@ -187358,7 +189197,7 @@ func _sessionInitTable(tls *libc.TLS, pSession uintptr, pTab uintptr, db uintptr ; i++ } - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11584, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11709, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 = int32(1) } if pSession != 0 && (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize != 0 { @@ -187647,10 +189486,10 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin _, _, _, _ = ii, zDflt, zSep, v2 *(*TSessionBuffer)(unsafe.Pointer(bp)) = TSessionBuffer{} *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK - zSep = __ccgo_ts + 11204 + zSep = __ccgo_ts + 11329 ii = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33450, 0) + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33596, 0) ii = 0 for { if !(ii < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol) { @@ -187659,11 +189498,11 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin if *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) != 0 { v2 = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) } else { - v2 = __ccgo_ts + 1651 + v2 = __ccgo_ts + 1665 } zDflt = v2 - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5078, libc.VaList(bp+32, zSep, zDflt)) - zSep = __ccgo_ts + 14992 + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5142, libc.VaList(bp+32, zSep, zDflt)) + zSep = __ccgo_ts + 15085 goto _1 _1: ; @@ -187981,7 +189820,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u rc = int32(SQLITE_NOMEM) goto error_out } - _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1650, uint8(0), libc.UintptrFromInt32(0)) + _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1664, uint8(0), libc.UintptrFromInt32(0)) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpZeroBlob = p } } @@ -188098,6 +189937,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u } } /* If an error has occurred, mark the session object as failed. */ + goto error_out error_out: ; if (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 != 0 { @@ -188301,7 +190141,7 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr var i int32 var zRet, zSep uintptr _, _, _ = i, zRet, zSep - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 zRet = uintptr(0) i = 0 for { @@ -188309,8 +190149,8 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr break } if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33457, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 22015 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33603, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 22160 if zRet == uintptr(0) { break } @@ -188329,7 +190169,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint var bHave, i int32 var zRet, zSep uintptr _, _, _, _ = bHave, i, zRet, zSep - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 zRet = uintptr(0) bHave = 0 i = 0 @@ -188339,8 +190179,8 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if int32(*(*Tu8)(unsafe.Pointer(abPK + uintptr(i)))) == 0 { bHave = int32(1) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33491, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 33532 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33637, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 33678 if zRet == uintptr(0) { break } @@ -188351,7 +190191,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint i++ } if bHave == 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1724, 0) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1784, 0) } return zRet } @@ -188362,12 +190202,12 @@ func _sessionSelectFindNew(tls *libc.TLS, zDb1 uintptr, zDb2 uintptr, bRowid int var zRet, zSel, v1 uintptr _, _, _ = zRet, zSel, v1 if bRowid != 0 { - v1 = __ccgo_ts + 33537 + v1 = __ccgo_ts + 33683 } else { - v1 = __ccgo_ts + 6592 + v1 = __ccgo_ts + 6656 } zSel = v1 - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33548, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33694, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) return zRet } @@ -188428,11 +190268,11 @@ func _sessionAllCols(tls *libc.TLS, zDb uintptr, pTab uintptr) (r uintptr) { break } if zRet != 0 { - v2 = __ccgo_ts + 14992 + v2 = __ccgo_ts + 15085 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33627, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33773, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) if !(zRet != 0) { break } @@ -188460,7 +190300,7 @@ func _sessionDiffFindModified(tls *libc.TLS, pSession uintptr, pTab uintptr, zFr } else { z1 = _sessionAllCols(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, pTab) z2 = _sessionAllCols(tls, zFrom, pTab) - zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33646, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) + zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33792, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) if zStmt == uintptr(0) || z1 == uintptr(0) || z2 == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -188560,7 +190400,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if bMismatch != 0 { if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33703, 0) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33849, 0) } rc = int32(SQLITE_SCHEMA) } @@ -188586,6 +190426,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u } Xsqlite3_free(tls, zExpr) } + goto diff_out diff_out: ; _sessionPreupdateHooks(tls, pSession) @@ -188891,7 +190732,7 @@ func _sessionAppendInteger(tls *libc.TLS, p uintptr, iVal int32, pRc uintptr) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* aBuf at bp+0 */ [24]int8 - Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5140, libc.VaList(bp+32, iVal)) + Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5204, libc.VaList(bp+32, iVal)) _sessionAppendStr(tls, p, bp, pRc) } @@ -189182,23 +191023,23 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt _, _, _, _, _, _, _ = i, nSql, zCols, zSep, zSql, v1, v3 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK zSql = uintptr(0) - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 if bRowid != 0 { - v1 = __ccgo_ts + 33537 + v1 = __ccgo_ts + 33683 } else { - v1 = __ccgo_ts + 6592 + v1 = __ccgo_ts + 6656 } zCols = v1 nSql = -int32(1) *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 24)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 40)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+33730, bp) - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11584, zTab) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+33734, bp) - _sessionAppendStr(tls, bp+24, __ccgo_ts+33758, bp) - _sessionAppendStr(tls, bp+40, __ccgo_ts+33767, bp) - zCols = __ccgo_ts + 33812 + _sessionAppendStr(tls, bp+8, __ccgo_ts+33876, bp) + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11709, zTab) { + _sessionAppendStr(tls, bp+8, __ccgo_ts+33880, bp) + _sessionAppendStr(tls, bp+24, __ccgo_ts+33904, bp) + _sessionAppendStr(tls, bp+40, __ccgo_ts+33913, bp) + zCols = __ccgo_ts + 33958 } else { i = 0 for { @@ -189208,11 +191049,11 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { _sessionAppendStr(tls, bp+24, zSep, bp) _sessionAppendStr(tls, bp+40, zSep, bp) - zSep = __ccgo_ts + 14992 + zSep = __ccgo_ts + 15085 _sessionAppendIdent(tls, bp+24, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), bp) - _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+33826, libc.VaList(bp+64, i+int32(1))) + _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+33972, libc.VaList(bp+64, i+int32(1))) } else { - _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+33830, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+33976, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) } goto _2 _2: @@ -189224,9 +191065,9 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if bIgnoreNoop != 0 { v3 = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf } else { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+33857, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+34003, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) if zSql == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } @@ -189367,7 +191208,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, if (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc != 0 { return (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc } - *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+33899, uintptr(0), uintptr(0), uintptr(0)) + *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+34045, uintptr(0), uintptr(0), uintptr(0)) if *(*int32)(unsafe.Pointer(bp + 16)) != SQLITE_OK { return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -189473,7 +191314,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } } Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf) - Xsqlite3_exec(tls, db, __ccgo_ts+33919, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34065, uintptr(0), uintptr(0), uintptr(0)) Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db)) return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -189890,7 +191731,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, int32(9)) if rc == SQLITE_OK { if (*TSessionInput)(unsafe.Pointer(pIn)).FiNext >= (*TSessionInput)(unsafe.Pointer(pIn)).FnData { - rc = _sqlite3CorruptError(tls, int32(226700)) + rc = _sqlite3CorruptError(tls, int32(228355)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -189914,7 +191755,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, *(*int32)(unsafe.Pointer(bp))) if rc == SQLITE_OK { if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext { - rc = _sqlite3CorruptError(tls, int32(226720)) + rc = _sqlite3CorruptError(tls, int32(228375)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -189929,7 +191770,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap } if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) { if (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext < int32(8) { - rc = _sqlite3CorruptError(tls, int32(226730)) + rc = _sqlite3CorruptError(tls, int32(228385)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -189985,7 +191826,7 @@ func _sessionChangesetBufferTblhdr(tls *libc.TLS, pIn uintptr, pnByte uintptr) ( ** large value for nCol may cause nRead to wrap around and become ** negative. Leading to a crash. */ if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > int32(65536) { - rc = _sqlite3CorruptError(tls, int32(226778)) + rc = _sqlite3CorruptError(tls, int32(228433)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -190090,7 +191931,7 @@ func _sessionChangesetReadTblhdr(tls *libc.TLS, p uintptr) (r int32) { (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FnBuf = 0 _sessionBufferGrow(tls, p+72, int64(nByte), bp) } else { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(226866)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(228521)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -190161,12 +192002,12 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK { return (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc } + _sessionDiscardData(tls, p) + (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext /* If the iterator is already at the end of the changeset, return DONE. */ if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext >= (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FnData { return int32(SQLITE_DONE) } - _sessionDiscardData(tls, p) - (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext v3 = p + 8 v2 = *(*int32)(unsafe.Pointer(v3)) *(*int32)(unsafe.Pointer(v3))++ @@ -190196,7 +192037,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FzTab == uintptr(0) || (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset != 0 && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbInvert != 0 { /* The first record in the changeset is not a table header. Must be a ** corrupt changeset. */ - v7 = _sqlite3CorruptError(tls, int32(226952)) + v7 = _sqlite3CorruptError(tls, int32(228607)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -190206,7 +192047,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = int32(*(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr(v8)))) if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_DELETE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_INSERT) { - v10 = _sqlite3CorruptError(tls, int32(226958)) + v10 = _sqlite3CorruptError(tls, int32(228613)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -190285,7 +192126,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if *(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i+(*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*8)) if *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) == uintptr(0) { - v16 = _sqlite3CorruptError(tls, int32(227002)) + v16 = _sqlite3CorruptError(tls, int32(228657)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -190695,7 +192536,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(227367)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(229022)) goto finished_invert } if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { @@ -190715,6 +192556,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } + goto finished_invert finished_invert: ; Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf) @@ -190897,18 +192739,18 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 } if pUp == uintptr(0) { nByte = int32(uint64(24) * uint64(nU32) * uint64(4)) - bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11584) == 0) + bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11709) == 0) pUp = Xsqlite3_malloc(tls, nByte) if pUp == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } else { - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 libc.Xmemset(tls, bp+8, 0, uint64(16)) (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask = pUp + 1*24 libc.Xmemcpy(tls, (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, uint64(nU32)*uint64(4)) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33937, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34083, bp) _sessionAppendIdent(tls, bp+8, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33950, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34096, bp) /* Create the assignments part of the UPDATE */ ii = 0 for { @@ -190918,9 +192760,9 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if int32(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii)))) == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol+ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33956, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34102, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(1), bp) - zSep = __ccgo_ts + 14992 + zSep = __ccgo_ts + 15085 } goto _2 _2: @@ -190928,8 +192770,8 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 ii++ } /* Create the WHERE clause part of the UPDATE */ - zSep = __ccgo_ts + 1650 - _sessionAppendStr(tls, bp+8, __ccgo_ts+33961, bp) + zSep = __ccgo_ts + 1664 + _sessionAppendStr(tls, bp+8, __ccgo_ts+34107, bp) ii = 0 for { if !(ii < (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol) { @@ -190938,13 +192780,13 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if *(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii))) != 0 || bPatchset == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr(ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) if bStat1 != 0 && ii == int32(1) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+33969, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34115, bp) } else { _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34044, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34190, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(2), bp) } - zSep = __ccgo_ts + 22015 + zSep = __ccgo_ts + 22160 } goto _3 _3: @@ -191027,13 +192869,13 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in var _ /* buf at bp+8 */ TSessionBuffer var _ /* rc at bp+0 */ int32 _, _, _ = i, nPk, zSep - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} nPk = 0 - _sessionAppendStr(tls, bp+8, __ccgo_ts+34050, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34196, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33961, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34107, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -191043,9 +192885,9 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in nPk++ _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33956, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34102, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 22015 + zSep = __ccgo_ts + 22160 } goto _1 _1: @@ -191053,10 +192895,10 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in i++ } if nPk < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol { - _sessionAppendStr(tls, bp+8, __ccgo_ts+34068, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34214, bp) _sessionAppendInteger(tls, bp+8, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol+int32(1), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33532, bp) - zSep = __ccgo_ts + 1650 + _sessionAppendStr(tls, bp+8, __ccgo_ts+33678, bp) + zSep = __ccgo_ts + 1664 i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -191065,16 +192907,16 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in if !(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0) { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34044, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34190, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 34076 + zSep = __ccgo_ts + 34222 } goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5108, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5172, bp) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+8, uintptr(0)) @@ -191100,7 +192942,7 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in // */ func _sessionSelectRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r int32) { /* TODO */ - return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6587, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) + return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6651, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) } // C documentation @@ -191123,16 +192965,16 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+34081, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34227, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+22021, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+22166, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } if i != 0 { - _sessionAppendStr(tls, bp+8, __ccgo_ts+14992, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+15085, bp) } _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) goto _1 @@ -191140,19 +192982,19 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34099, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34245, bp) i = int32(1) for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34110, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34256, bp) goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5108, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5172, bp) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+16, uintptr(0)) } @@ -191175,12 +193017,12 @@ func _sessionPrepare(tls *libc.TLS, db uintptr, pp uintptr, zSql uintptr) (r int func _sessionStat1Sql(tls *libc.TLS, db uintptr, p uintptr) (r int32) { var rc int32 _ = rc - rc = _sessionSelectRow(tls, db, __ccgo_ts+11584, p) + rc = _sessionSelectRow(tls, db, __ccgo_ts+11709, p) if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34114) + rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34260) } if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34227) + rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34373) } return rc } @@ -191246,7 +193088,7 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(227849)) + rc = _sqlite3CorruptError(tls, int32(229504)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -191662,7 +193504,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34371, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34517, uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { rc = _sessionBindRow(tls, pIter, __ccgo_fp(Xsqlite3changeset_new), (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FabPK, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) Xsqlite3_bind_int(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol+int32(1), int32(1)) @@ -191675,7 +193517,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34392, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34538, uintptr(0), uintptr(0), uintptr(0)) } } } @@ -191769,10 +193611,10 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbIgnoreNoop = libc.BoolUint8(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_IGNORENOOP) != 0)) Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, db)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34411, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34557, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34437, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34583, uintptr(0), uintptr(0), uintptr(0)) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) @@ -191803,7 +193645,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui ** non-zero, proceed. */ schemaMismatch = libc.BoolInt32(xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { - *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) + *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { rc = int32(SQLITE_NOMEM) break @@ -191813,7 +193655,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } else { nMinCol = 0 Xsqlite3changeset_pk(tls, pIter, bp+152, uintptr(0)) - rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6587, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) + rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6651, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) if rc != SQLITE_OK { break } @@ -191832,18 +193674,18 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol == 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34467, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34613, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol < *(*int32)(unsafe.Pointer(bp + 136)) { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34511, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34657, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) } else { if *(*int32)(unsafe.Pointer(bp + 136)) < nMinCol || libc.Xmemcmp(tls, (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FabPK, *(*uintptr)(unsafe.Pointer(bp + 152)), uint64(*(*int32)(unsafe.Pointer(bp + 136)))) != 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34582, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34728, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol = *(*int32)(unsafe.Pointer(bp + 136)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11584) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11709) { v2 = _sessionStat1Sql(tls, db, bp+8) rc = v2 if v2 != 0 { @@ -191900,13 +193742,13 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } } } - Xsqlite3_exec(tls, db, __ccgo_ts+34642, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34788, uintptr(0), uintptr(0), uintptr(0)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34672, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34818, uintptr(0), uintptr(0), uintptr(0)) } else { - Xsqlite3_exec(tls, db, __ccgo_ts+34696, uintptr(0), uintptr(0), uintptr(0)) - Xsqlite3_exec(tls, db, __ccgo_ts+34672, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34842, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34818, uintptr(0), uintptr(0), uintptr(0)) } } if rc == SQLITE_OK && bPatchset == 0 && (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbRebase != 0 { @@ -191998,6 +193840,7 @@ type Tsqlite3_changegroup1 = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -192354,116 +194197,143 @@ func _sessionChangesetExtendRecord(tls *libc.TLS, pGrp uintptr, pTab uintptr, nC // C documentation // // /* -// ** Add all changes in the changeset traversed by the iterator passed as -// ** the first argument to the changegroup hash tables. +// ** Locate or create a SessionTable object that may be used to add the +// ** change currently pointed to by iterator pIter to changegroup pGrp. +// ** If successful, set output variable (*ppTab) to point to the table +// ** object and return SQLITE_OK. Otherwise, if some error occurs, return +// ** an SQLite error code and leave (*ppTab) set to NULL. // */ -func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { - bp := tls.Alloc(80) - defer tls.Free(80) - var bPkOnly1, bPkOnly2, iHash, nNew, rc int32 - var pExist, pTab, pp, ppTab uintptr - var _ /* aRec at bp+0 */ uintptr - var _ /* abPK at bp+64 */ uintptr - var _ /* bIndirect at bp+48 */ int32 - var _ /* nCol at bp+40 */ int32 - var _ /* nRec at bp+8 */ int32 - var _ /* op at bp+44 */ int32 - var _ /* pChange at bp+56 */ uintptr - var _ /* rec at bp+16 */ TSessionBuffer - var _ /* zNew at bp+32 */ uintptr - _, _, _, _, _, _, _, _, _ = bPkOnly1, bPkOnly2, iHash, nNew, pExist, pTab, pp, ppTab, rc +func _sessionChangesetFindTable(tls *libc.TLS, pGrp uintptr, zTab uintptr, pIter uintptr, ppTab uintptr) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var nTab, rc int32 + var pTab, ppNew uintptr + var _ /* abPK at bp+0 */ uintptr + var _ /* nCol at bp+8 */ int32 + _, _, _, _ = nTab, pTab, ppNew, rc rc = SQLITE_OK pTab = uintptr(0) - *(*TSessionBuffer)(unsafe.Pointer(bp + 16)) = TSessionBuffer{} - for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { - pExist = uintptr(0) - /* Ensure that only changesets, or only patchsets, but not a mixture - ** of both, are being combined. It is an error to try to combine a - ** changeset and a patchset. */ - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset - } else { - if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { - rc = int32(SQLITE_ERROR) - break - } + nTab = int32(libc.Xstrlen(tls, zTab)) + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(ppTab)) = uintptr(0) + Xsqlite3changeset_pk(tls, pIter, bp, bp+8) + /* Search the list for an existing table */ + pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList + for { + if !(pTab != 0) { + break } - Xsqlite3changeset_op(tls, pIter, bp+32, bp+40, bp+44, bp+48) - if !(pTab != 0) || Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), (*TSessionTable)(unsafe.Pointer(pTab)).FzName) != 0 { - /* Search the list for a matching table */ - nNew = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)))) - Xsqlite3changeset_pk(tls, pIter, bp+64, uintptr(0)) - pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList - for { - if !(pTab != 0) { - break - } - if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), nNew+int32(1)) { - break - } - goto _1 - _1: - ; - pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext - } - if !(pTab != 0) { - pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 40)))+uint64(nNew)+uint64(1)) - if !(pTab != 0) { - rc = int32(SQLITE_NOMEM) - break - } - libc.Xmemset(tls, pTab, 0, uint64(80)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 40)) - (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp + 64)), uint64(*(*int32)(unsafe.Pointer(bp + 40)))) - (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 40))) - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), uint64(nNew+int32(1))) - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 - rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) - if rc != 0 { - Xsqlite3_free(tls, pTab) - break - } - } - /* The new object must be linked on to the end of the list, not - ** simply added to the start of it. This is to ensure that the - ** tables within the output of sqlite3changegroup_output() are in - ** the right order. */ - ppTab = pGrp + 8 - for { - if !(*(*uintptr)(unsafe.Pointer(ppTab)) != 0) { - break - } - goto _2 - _2: - ; - ppTab = *(*uintptr)(unsafe.Pointer(ppTab)) - } - *(*uintptr)(unsafe.Pointer(ppTab)) = pTab - } - if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*uintptr)(unsafe.Pointer(bp + 64))) != 0) { - rc = int32(SQLITE_SCHEMA) - break - } + if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, nTab+int32(1)) { + break + } + goto _1 + _1: + ; + pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext + } + /* If one was not found above, create a new table now */ + if !(pTab != 0) { + pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 8)))+uint64(nTab)+uint64(1)) + if !(pTab != 0) { + return int32(SQLITE_NOMEM) } - if *(*int32)(unsafe.Pointer(bp + 40)) < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol { - rc = _sessionChangesetExtendRecord(tls, pGrp, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*int32)(unsafe.Pointer(bp + 44)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+16) + libc.Xmemset(tls, pTab, 0, uint64(80)) + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 8)) + (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp)), uint64(*(*int32)(unsafe.Pointer(bp + 8)))) + (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 8))) + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, uint64(nTab+int32(1))) + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 + rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) if rc != 0 { + Xsqlite3_free(tls, pTab) + return rc + } + } + /* The new object must be linked on to the end of the list, not + ** simply added to the start of it. This is to ensure that the + ** tables within the output of sqlite3changegroup_output() are in + ** the right order. */ + ppNew = pGrp + 8 + for { + if !(*(*uintptr)(unsafe.Pointer(ppNew)) != 0) { break } - *(*uintptr)(unsafe.Pointer(bp)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf - *(*int32)(unsafe.Pointer(bp + 8)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf + goto _2 + _2: + ; + ppNew = *(*uintptr)(unsafe.Pointer(ppNew)) } - if _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pTab) != 0 { - rc = int32(SQLITE_NOMEM) - break + *(*uintptr)(unsafe.Pointer(ppNew)) = pTab + } + /* Check that the table is compatible. */ + if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 8)), *(*uintptr)(unsafe.Pointer(bp))) != 0) { + rc = int32(SQLITE_SCHEMA) + } + *(*uintptr)(unsafe.Pointer(ppTab)) = pTab + return rc +} + +// C documentation +// +// /* +// ** Add the change currently indicated by iterator pIter to the hash table +// ** belonging to changegroup pGrp. +// */ +func _sessionOneChangeToHash(tls *libc.TLS, pGrp uintptr, pIter uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var aRec, pBuf, pExist, pp uintptr + var bPkOnly1, bPkOnly2, iHash, nRec, rc int32 + var _ /* bIndirect at bp+8 */ int32 + var _ /* nCol at bp+0 */ int32 + var _ /* op at bp+4 */ int32 + var _ /* pChange at bp+16 */ uintptr + var _ /* pTab at bp+24 */ uintptr + var _ /* zTab at bp+32 */ uintptr + _, _, _, _, _, _, _, _, _ = aRec, bPkOnly1, bPkOnly2, iHash, nRec, pBuf, pExist, pp, rc + rc = SQLITE_OK + *(*int32)(unsafe.Pointer(bp)) = 0 + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + iHash = 0 + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0) + pExist = uintptr(0) + pp = uintptr(0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0) + aRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FaData + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent+int32(2)) + nRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent - int32(2) + /* Ensure that only changesets, or only patchsets, but not a mixture + ** of both, are being combined. It is an error to try to combine a + ** changeset and a patchset. */ + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset + } else { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { + rc = int32(SQLITE_ERROR) } - iHash = int32(_sessionChangeHash(tls, pTab, libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)), *(*uintptr)(unsafe.Pointer(bp)), (*TSessionTable)(unsafe.Pointer(pTab)).FnChange)) + } + if rc == SQLITE_OK { + *(*uintptr)(unsafe.Pointer(bp + 32)) = uintptr(0) + Xsqlite3changeset_op(tls, pIter, bp+32, bp, bp+4, bp+8) + rc = _sessionChangesetFindTable(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 32)), pIter, bp+24) + } + if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) < (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnCol { + pBuf = pGrp + 16 + rc = _sessionChangesetExtendRecord(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 24)), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), aRec, nRec, pBuf) + aRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FaBuf + nRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FnBuf + } + if rc == SQLITE_OK && _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp + 24))) != 0 { + rc = int32(SQLITE_NOMEM) + } + if rc == SQLITE_OK { /* Search for existing entry. If found, remove it from the hash table. - ** Code below may link it back in. - */ - pp = (*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8 + ** Code below may link it back in. */ + iHash = int32(_sessionChangeHash(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)), aRec, (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnChange)) + pp = (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8 for { if !(*(*uintptr)(unsafe.Pointer(pp)) != 0) { break @@ -192472,30 +194342,54 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase bPkOnly2 = 0 if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 { bPkOnly1 = libc.BoolInt32(int32((*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).Fop) == int32(SQLITE_DELETE)) - bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)) + bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)) } - if _sessionChangeEqual(tls, pTab, bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, *(*uintptr)(unsafe.Pointer(bp))) != 0 { + if _sessionChangeEqual(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, aRec) != 0 { pExist = *(*uintptr)(unsafe.Pointer(pp)) *(*uintptr)(unsafe.Pointer(pp)) = (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry-- + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry-- break } - goto _3 - _3: + goto _1 + _1: ; pp = *(*uintptr)(unsafe.Pointer(pp)) + 24 } - rc = _sessionChangeMerge(tls, pTab, bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 44)), *(*int32)(unsafe.Pointer(bp + 48)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+56) - if rc != 0 { + } + if rc == SQLITE_OK { + rc = _sessionChangeMerge(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 4)), *(*int32)(unsafe.Pointer(bp + 8)), aRec, nRec, bp+16) + } + if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { + (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) + *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 16)) + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry++ + } + if rc == SQLITE_OK { + rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc + } + return rc +} + +// C documentation +// +// /* +// ** Add all changes in the changeset traversed by the iterator passed as +// ** the first argument to the changegroup hash tables. +// */ +func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var rc int32 + var _ /* aRec at bp+0 */ uintptr + var _ /* nRec at bp+8 */ int32 + _ = rc + rc = SQLITE_OK + for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { + rc = _sessionOneChangeToHash(tls, pGrp, pIter, bRebase) + if rc != SQLITE_OK { break } - if *(*uintptr)(unsafe.Pointer(bp + 56)) != 0 { - (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 56)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) - *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 56)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry++ - } } - Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf) if rc == SQLITE_OK { rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc } @@ -192605,11 +194499,11 @@ func Xsqlite3changegroup_new(tls *libc.TLS, pp uintptr) (r int32) { var rc int32 _, _ = p, rc rc = SQLITE_OK /* New object */ - p = Xsqlite3_malloc(tls, int32(32)) + p = Xsqlite3_malloc(tls, int32(48)) if p == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, p, 0, uint64(32)) + libc.Xmemset(tls, p, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(pp)) = p return rc @@ -192631,7 +194525,7 @@ func Xsqlite3changegroup_schema(tls *libc.TLS, pGrp uintptr, db uintptr, zDb uin ** or after sqlite3changegroup_schema() has already been called. */ rc = int32(SQLITE_MISUSE) } else { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, zDb)) + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, zDb)) if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -192661,6 +194555,19 @@ func Xsqlite3changegroup_add(tls *libc.TLS, pGrp uintptr, nData int32, pData uin return rc } +// C documentation +// +// /* +// ** Add a single change to a changeset-group. +// */ +func Xsqlite3changegroup_add_change(tls *libc.TLS, pGrp uintptr, pIter uintptr) (r int32) { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent == (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc != SQLITE_OK || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbInvert != 0 { + /* Iterator does not point to any valid entry or is an INVERT iterator. */ + return int32(SQLITE_ERROR) + } + return _sessionOneChangeToHash(tls, pGrp, pIter, 0) +} + // C documentation // // /* @@ -192708,6 +194615,7 @@ func Xsqlite3changegroup_delete(tls *libc.TLS, pGrp uintptr) { if pGrp != 0 { Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList) + Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Frec.FaBuf) Xsqlite3_free(tls, pGrp) } } @@ -193072,11 +194980,11 @@ func Xsqlite3rebaser_create(tls *libc.TLS, ppNew uintptr) (r int32) { var rc int32 _, _ = pNew, rc rc = SQLITE_OK - pNew = Xsqlite3_malloc(tls, int32(32)) + pNew = Xsqlite3_malloc(tls, int32(48)) if pNew == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, pNew, 0, uint64(32)) + libc.Xmemset(tls, pNew, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(ppNew)) = pNew return rc @@ -193150,6 +195058,7 @@ func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn u func Xsqlite3rebaser_delete(tls *libc.TLS, p uintptr) { if p != 0 { _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.FpList) + Xsqlite3_free(tls, (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.Frec.FaBuf) Xsqlite3_free(tls, p) } } @@ -193781,6 +195690,9 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** sqlite3Fts5ParserARG_STORE Code to store %extra_argument into fts5yypParser // ** sqlite3Fts5ParserARG_FETCH Code to extract %extra_argument from fts5yypParser // ** sqlite3Fts5ParserCTX_* As sqlite3Fts5ParserARG_ except for %extra_context +// ** fts5YYREALLOC Name of the realloc() function to use +// ** fts5YYFREE Name of the free() function to use +// ** fts5YYDYNSTACK True if stack space should be extended on heap // ** fts5YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** fts5YYNSTATE the combined number of states. @@ -193794,6 +195706,8 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** fts5YY_NO_ACTION The fts5yy_action[] code for no-op // ** fts5YY_MIN_REDUCE Minimum value for reduce actions // ** fts5YY_MAX_REDUCE Maximum value for reduce actions +// ** fts5YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** fts5YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type Tfts5YYMINORTYPE = struct { @@ -193820,6 +195734,13 @@ type fts5YYMINORTYPE = Tfts5YYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -194249,8 +196170,9 @@ type fts5yyStackEntry = Tfts5yyStackEntry type Tfts5yyParser1 = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser1 = Tfts5yyParser1 @@ -194258,14 +196180,19 @@ type fts5yyParser1 = Tfts5yyParser1 type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser = Tfts5yyParser /* #include */ +/* For builds that do no have a growable stack, fts5yyGrowStack always +** returns an error. + */ + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3Fts5ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -194280,10 +196207,11 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { var fts5yypParser uintptr _ = fts5yypParser fts5yypParser = fts5yypRawParser - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = fts5yypParser + 16 - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fstateno = uint8(0) - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fmajor = uint8(0) - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = fts5yypParser + 16 + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack = fts5yypParser + 32 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fstateno = uint8(0) + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fmajor = uint8(0) } // C documentation @@ -194303,7 +196231,7 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2424)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -194385,11 +196313,17 @@ func _fts5yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var fts5yytos, pParser uintptr + _, _ = fts5yytos, pParser pParser = p - for (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos > pParser+16 { - _fts5yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling fts5yy_pop_parser_stack() for each + ** element left in the stack */ + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos + for fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yystack { + if int32((*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor) >= int32(fts5YY_MIN_DSTRCTR) { + _fts5yy_destructor(tls, pParser, (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor, fts5yytos+8) + } + fts5yytos -= 24 } } @@ -194477,13 +196411,13 @@ func _fts5yyStackOverflow(tls *libc.TLS, fts5yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse - for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > fts5yypParser+16 { + for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack { _fts5yy_pop_parser_stack(tls, fts5yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34724, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34870, 0) /******** End %stack_overflow code ********************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument var */ } @@ -194501,15 +196435,18 @@ func _fts5yy_shift(tls *libc.TLS, fts5yypParser uintptr, fts5yyNewState uint8, f var fts5yytos uintptr _ = fts5yytos (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos += 24 - if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 - _fts5yyStackOverflow(tls, fts5yypParser) - return + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + if fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { + if int32(1) != 0 { + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 + _fts5yyStackOverflow(tls, fts5yypParser) + return + } + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos } if int32(fts5yyNewState) > int32(fts5YY_MAX_SHIFT) { fts5yyNewState = uint8(int32(fts5yyNewState) + (libc.Int32FromInt32(fts5YY_MIN_REDUCE) - libc.Int32FromInt32(fts5YY_MIN_SHIFTREDUCE))) } - fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fstateno = fts5yyNewState (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor = fts5yyMajor *(*TFts5Token)(unsafe.Pointer(fts5yytos + 8)) = fts5yyMinor @@ -194836,7 +196773,7 @@ func _fts5yy_syntax_error(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor int3 pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse /************ Begin %syntax_error code ****************************************/ _ = fts5yymajor /* Silence a compiler warning */ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34752, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34898, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) /************ End %syntax_error code ******************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument variable */ } @@ -194898,8 +196835,10 @@ func _sqlite3Fts5Parser(tls *libc.TLS, fts5yyp uintptr, fts5yymajor int32, fts5y ** enough on the stack to push the LHS value */ if int32(_fts5yyRuleInfoNRhs[fts5yyruleno]) == 0 { if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos >= (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - _fts5yyStackOverflow(tls, fts5yypParser) - break + if int32(1) != 0 { + _fts5yyStackOverflow(tls, fts5yypParser) + break + } } } fts5yyact = _fts5yy_reduce(tls, fts5yypParser, fts5yyruleno, fts5yymajor, fts5yyminor) @@ -195132,7 +197071,7 @@ func _fts5HighlightAppend(tls *libc.TLS, pRc uintptr, p uintptr, z uintptr, n in if n < 0 { n = int32(libc.Xstrlen(tls, z)) } - (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34783, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) + (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34929, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) if (*THighlightContext)(unsafe.Pointer(p)).FzOut == uintptr(0) { *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) } @@ -195229,7 +197168,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint var _ /* rc at bp+104 */ int32 _, _ = iCol, zErr if nVal != int32(3) { - zErr = __ccgo_ts + 34790 + zErr = __ccgo_ts + 34936 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -195240,7 +197179,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint (*(*THighlightContext)(unsafe.Pointer(bp))).FiRangeEnd = -int32(1) *(*int32)(unsafe.Pointer(bp + 104)) = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnText})))(tls, pFts, iCol, bp+24, bp+32) if *(*int32)(unsafe.Pointer(bp + 104)) == int32(SQLITE_RANGE) { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1650, -int32(1), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1664, -int32(1), libc.UintptrFromInt32(0)) *(*int32)(unsafe.Pointer(bp + 104)) = SQLITE_OK } else { if (*(*THighlightContext)(unsafe.Pointer(bp))).FzIn != 0 { @@ -195441,7 +197380,7 @@ func _fts5ValueToText(tls *libc.TLS, pVal uintptr) (r uintptr) { if zRet != 0 { v1 = zRet } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } return v1 } @@ -195475,7 +197414,7 @@ func _fts5SnippetFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintpt nBestScore = 0 /* Score of best snippet */ *(*int32)(unsafe.Pointer(bp + 112)) = 0 if nVal != int32(5) { - zErr = __ccgo_ts + 34840 + zErr = __ccgo_ts + 34986 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -195855,15 +197794,15 @@ func _sqlite3Fts5AuxInit(tls *libc.TLS, pApi uintptr) (r int32) { FxDestroy uintptr }{ 0: { - FzFunc: __ccgo_ts + 34888, + FzFunc: __ccgo_ts + 35034, FxFunc: __ccgo_fp(_fts5SnippetFunction), }, 1: { - FzFunc: __ccgo_ts + 34896, + FzFunc: __ccgo_ts + 35042, FxFunc: __ccgo_fp(_fts5HighlightFunction), }, 2: { - FzFunc: __ccgo_ts + 34906, + FzFunc: __ccgo_ts + 35052, FxFunc: __ccgo_fp(_fts5Bm25Function), }, } @@ -196523,7 +198462,7 @@ func _fts5ConfigSkipLiteral(tls *libc.TLS, pIn uintptr) (r uintptr) { case int32('n'): fallthrough case int32('N'): - if Xsqlite3_strnicmp(tls, __ccgo_ts+1636, p, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+1650, p, int32(4)) == 0 { p = p + 4 } else { p = uintptr(0) @@ -196727,7 +198666,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _, _, _, _, _, _, _, _, _, _, _, _ = azArg, bFirst, nArg, nByte, nCmd, nPre, p, p1, p2, pDel, pSpace, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK nCmd = int32(libc.Xstrlen(tls, zCmd)) - if Xsqlite3_strnicmp(tls, __ccgo_ts+34911, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35057, zCmd, nCmd) == 0 { nByte = int32(libc.Uint64FromInt64(4) * libc.Uint64FromInt32(FTS5_MAX_PREFIX_INDEXES)) bFirst = int32(1) if (*TFts5Config)(unsafe.Pointer(pConfig)).FaPrefix == uintptr(0) { @@ -196753,12 +198692,12 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } } if int32(*(*int8)(unsafe.Pointer(p))) < int32('0') || int32(*(*int8)(unsafe.Pointer(p))) > int32('9') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34918, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35064, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } if (*TFts5Config)(unsafe.Pointer(pConfig)).FnPrefix == int32(FTS5_MAX_PREFIX_INDEXES) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34949, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35095, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -196767,7 +198706,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC p++ } if nPre <= 0 || nPre >= int32(1000) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34982, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35128, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -196777,7 +198716,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35019, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35165, zCmd, nCmd) == 0 { p1 = zArg nArg = int64(libc.Xstrlen(tls, zArg) + uint64(1)) azArg = _sqlite3Fts5MallocZero(tls, bp, int64(uint64(8)*uint64(nArg))) @@ -196785,7 +198724,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC pSpace = pDel if azArg != 0 && pSpace != 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35028, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35174, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { nArg = 0 @@ -196812,7 +198751,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC nArg++ } if p1 == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35061, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35207, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5GetTokenizer(tls, pGlobal, azArg, int32(nArg), pConfig, pzErr) @@ -196823,58 +198762,58 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC Xsqlite3_free(tls, pDel) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35095, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35241, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent != FTS5_CONTENT_NORMAL { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35103, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35249, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if *(*int8)(unsafe.Pointer(zArg)) != 0 { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_EXTERNAL) - (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35135, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) + (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35281, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_NONE) } } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35141, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35287, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35160, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35306, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35203, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35349, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35217, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35363, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, zArg, -int32(1)) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35255, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35401, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35266, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35412, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+5501, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+5565, zCmd, nCmd) == 0 { *(*[4]TFts5Enum)(unsafe.Pointer(bp + 8)) = [4]TFts5Enum{ 0: { - FzName: __ccgo_ts + 8220, + FzName: __ccgo_ts + 8345, FeVal: int32(FTS5_DETAIL_NONE), }, 1: { - FzName: __ccgo_ts + 17749, + FzName: __ccgo_ts + 17836, }, 2: { - FzName: __ccgo_ts + 35301, + FzName: __ccgo_ts + 35447, FeVal: int32(FTS5_DETAIL_COLUMNS), }, 3: {}, @@ -196882,20 +198821,20 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC v2 = _fts5ConfigSetEnum(tls, bp+8, zArg, pConfig+96) *(*int32)(unsafe.Pointer(bp)) = v2 if v2 != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35309, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35455, 0) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35340, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35486, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35350, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35496, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbTokendata = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35384, libc.VaList(bp+80, nCmd, zCmd)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35530, libc.VaList(bp+80, nCmd, zCmd)) return int32(SQLITE_ERROR) } @@ -196967,15 +198906,15 @@ func _fts5ConfigParseColumn(tls *libc.TLS, p uintptr, zCol uintptr, zArg uintptr var v2 uintptr _, _, _ = rc, v1, v2 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35412) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16696) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35417, libc.VaList(bp+8, zCol)) + if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35558) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16783) { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35563, libc.VaList(bp+8, zCol)) rc = int32(SQLITE_ERROR) } else { if zArg != 0 { - if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35447) { + if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35593) { *(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FabUnindexed + uintptr((*TFts5Config)(unsafe.Pointer(p)).FnCol))) = uint8(1) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35457, libc.VaList(bp+8, zArg)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35603, libc.VaList(bp+8, zArg)) rc = int32(SQLITE_ERROR) } } @@ -197001,7 +198940,7 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TFts5Buffer)(unsafe.Pointer(bp + 8)) = TFts5Buffer{} - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35488, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35634, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) if (*TFts5Config)(unsafe.Pointer(p)).FeContent != int32(FTS5_CONTENT_NONE) { i = 0 for { @@ -197009,9 +198948,9 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { break } if (*TFts5Config)(unsafe.Pointer(p)).FeContent == int32(FTS5_CONTENT_EXTERNAL) { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35493, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35639, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) } else { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35500, libc.VaList(bp+32, i)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35646, libc.VaList(bp+32, i)) } goto _1 _1: @@ -197071,8 +199010,8 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in (*TFts5Config)(unsafe.Pointer(pRet)).FzName = _sqlite3Fts5Strndup(tls, bp, *(*uintptr)(unsafe.Pointer(azArg + 2*8)), -int32(1)) (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize = int32(1) (*TFts5Config)(unsafe.Pointer(pRet)).FeDetail = FTS5_DETAIL_FULL - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35412) == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35508, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35558) == 0 { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35654, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } i = int32(3) @@ -197103,19 +199042,19 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { if z == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35537, libc.VaList(bp+40, zOrig)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35683, libc.VaList(bp+40, zOrig)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bOption != 0 { if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { v4 = *(*uintptr)(unsafe.Pointer(bp + 8)) } else { - v4 = __ccgo_ts + 1650 + v4 = __ccgo_ts + 1664 } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { v5 = *(*uintptr)(unsafe.Pointer(bp + 16)) } else { - v5 = __ccgo_ts + 1650 + v5 = __ccgo_ts + 1664 } *(*int32)(unsafe.Pointer(bp)) = _fts5ConfigParseSpecial(tls, pGlobal, pRet, v4, v5, pzErr) } else { @@ -197133,7 +199072,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } /* We only allow contentless_delete=1 if the table is indeed contentless. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FeContent != int32(FTS5_CONTENT_NONE) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35557, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35703, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* We only allow contentless_delete=1 if columnsize=0 is not present. @@ -197141,7 +199080,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in ** This restriction may be removed at some point. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35607, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35753, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* If a tokenizer= option was successfully parsed, the tokenizer has @@ -197154,18 +199093,18 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContent == uintptr(0) { zTail = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pRet)).FeContent == FTS5_CONTENT_NORMAL { - zTail = __ccgo_ts + 35095 + zTail = __ccgo_ts + 35241 } else { if (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize != 0 { - zTail = __ccgo_ts + 35662 + zTail = __ccgo_ts + 35808 } } if zTail != 0 { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35670, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35816, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid == uintptr(0) { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16696, -int32(1)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16783, -int32(1)) } /* Formulate the zContentExprlist text */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -197229,25 +199168,25 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { var _ /* rc at bp+0 */ int32 _, _, _, _ = i, zSep, zSql, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35681, 0) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35827, 0) i = 0 for { if !(zSql != 0 && i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } if i == 0 { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } else { - v2 = __ccgo_ts + 14992 + v2 = __ccgo_ts + 15085 } zSep = v2 - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35697, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35843, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) goto _1 _1: ; i++ } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35704, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35412)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35850, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35558)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_declare_vtab(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql) Xsqlite3_free(tls, zSql) @@ -197393,7 +199332,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV var _ /* zRankArgs at bp+8 */ uintptr _, _, _, _, _, _, _, _, _, _ = bVal, nAutomerge, nCrisisMerge, nHashSize, nUsermerge, nVal, pgsz, rc, zIn, v1 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35730) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35876) { pgsz = 0 if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { pgsz = Xsqlite3_value_int(tls, pVal) @@ -197404,7 +199343,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).Fpgsz = pgsz } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35735) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35881) { nHashSize = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nHashSize = Xsqlite3_value_int(tls, pVal) @@ -197415,7 +199354,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnHashSize = nHashSize } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35744) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35890) { nAutomerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nAutomerge = Xsqlite3_value_int(tls, pVal) @@ -197429,7 +199368,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnAutomerge = nAutomerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35754) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35900) { nUsermerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nUsermerge = Xsqlite3_value_int(tls, pVal) @@ -197440,7 +199379,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnUsermerge = nUsermerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35764) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35910) { nCrisisMerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nCrisisMerge = Xsqlite3_value_int(tls, pVal) @@ -197457,7 +199396,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnCrisisMerge = nCrisisMerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35776) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35922) { nVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nVal = Xsqlite3_value_int(tls, pVal) @@ -197472,7 +199411,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } (*TFts5Config)(unsafe.Pointer(pConfig)).FnDeleteMerge = nVal } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35412) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35558) { zIn = Xsqlite3_value_text(tls, pVal) rc = _sqlite3Fts5ConfigParseRank(tls, zIn, bp, bp+8) if rc == SQLITE_OK { @@ -197487,7 +199426,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35788) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35934) { bVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { bVal = Xsqlite3_value_int(tls, pVal) @@ -197529,7 +199468,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in var _ /* p at bp+0 */ uintptr var _ /* rc at bp+8 */ int32 _, _, _, _, _ = iVersion, pVal, zK, zSelect, zSql - zSelect = __ccgo_ts + 35802 + zSelect = __ccgo_ts + 35948 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_OK iVersion = 0 @@ -197549,7 +199488,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in for int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zK = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) pVal = Xsqlite3_column_value(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) - if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35834) { + if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35980) { iVersion = Xsqlite3_value_int(tls, pVal) } else { *(*int32)(unsafe.Pointer(bp + 12)) = 0 @@ -197561,7 +199500,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && iVersion != int32(FTS5_CURRENT_VERSION) && iVersion != int32(FTS5_CURRENT_VERSION_SECUREDELETE) { *(*int32)(unsafe.Pointer(bp + 8)) = int32(SQLITE_ERROR) if (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg != 0 { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35842, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35988, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = iVersion @@ -197782,7 +199721,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr } } if int32(*(*int8)(unsafe.Pointer(z2))) == int32('\000') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35913, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36059, 0) return FTS5_EOF } goto _1 @@ -197793,7 +199732,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z2) - int64(z)) default: if _sqlite3Fts5IsBareword(tls, *(*int8)(unsafe.Pointer(z))) == 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35933, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36079, libc.VaList(bp+8, z)) return FTS5_EOF } tok = int32(FTS5_STRING) @@ -197808,13 +199747,13 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr z21++ } (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z21) - int64(z)) - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35964, uint64(2)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36110, uint64(2)) == 0 { tok = int32(FTS5_OR) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35967, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36113, uint64(3)) == 0 { tok = int32(FTS5_NOT) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30708, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30854, uint64(3)) == 0 { tok = int32(FTS5_AND) } break @@ -198229,6 +200168,7 @@ func _fts5ExprSynonymList(tls *libc.TLS, pTerm uintptr, iRowid Ti64, pBuf uintpt *(*int32)(unsafe.Pointer(pn)) = (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn } } + goto synonym_poslist_out synonym_poslist_out: ; if aIter != bp { @@ -198361,6 +200301,7 @@ func _fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMat i++ } } + goto ismatch_out ismatch_out: ; *(*int32)(unsafe.Pointer(pbMatch)) = libc.BoolInt32((*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn > 0) @@ -198567,6 +200508,7 @@ func _fts5ExprNearIsMatch(tls *libc.TLS, pRc uintptr, pNear uintptr) (r int32) { goto ismatch_out } } + goto ismatch_out ismatch_out: ; bRet = libc.BoolInt32((*TFts5Buffer)(unsafe.Pointer((*(*TFts5NearTrimmer)(unsafe.Pointer(a))).FpOut)).Fn > 0) @@ -199883,8 +201825,8 @@ func _sqlite3Fts5ExprClonePhrase(tls *libc.TLS, pExpr uintptr, iPhrase int32, pp func _sqlite3Fts5ParseNear(tls *libc.TLS, pParse uintptr, pTok uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+35971, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34752, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) + if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+36117, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34898, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) } } @@ -199904,7 +201846,7 @@ func _sqlite3Fts5ParseSetDistance(tls *libc.TLS, pParse uintptr, pNear uintptr, } c = *(*int8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i))) if int32(c) < int32('0') || int32(c) > int32('9') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35976, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36122, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) return } nNear = nNear*int32(10) + (int32(*(*int8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i)))) - int32('0')) @@ -200042,7 +201984,7 @@ func _sqlite3Fts5ParseColset(tls *libc.TLS, pParse uintptr, pColset uintptr, p u iCol++ } if iCol == (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21018, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21150, libc.VaList(bp+8, z)) } else { pRet = _fts5ParseColset(tls, pParse, pColset, iCol) } @@ -200166,7 +202108,7 @@ func _sqlite3Fts5ParseSetColset(tls *libc.TLS, pParse uintptr, pExpr uintptr, pC var _ /* pFree at bp+0 */ uintptr *(*uintptr)(unsafe.Pointer(bp)) = pColset if (*TFts5Config)(unsafe.Pointer((*TFts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FeDetail == int32(FTS5_DETAIL_NONE) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36005, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36151, 0) } else { _fts5ParseSetColset(tls, pParse, pExpr, pColset, bp) } @@ -200359,11 +202301,11 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin pPhrase = *(*uintptr)(unsafe.Pointer(pNear + 24)) if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase != int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 0 && (*(*TFts5ExprTerm)(unsafe.Pointer(pPhrase + 32))).FbFirst != 0 { if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase == int32(1) { - v2 = __ccgo_ts + 36058 + v2 = __ccgo_ts + 36204 } else { - v2 = __ccgo_ts + 35971 + v2 = __ccgo_ts + 36117 } - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36065, libc.VaList(bp+8, v2)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36211, libc.VaList(bp+8, v2)) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -200372,7 +202314,7 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin _fts5ExprAddChildren(tls, pRet, pLeft) _fts5ExprAddChildren(tls, pRet, pRight) if (*TFts5ExprNode)(unsafe.Pointer(pRet)).FiHeight > int32(SQLITE_FTS5_MAX_EXPR_DEPTH) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36115, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36261, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -202520,7 +204462,7 @@ func _fts5DataRead(tls *libc.TLS, p uintptr, iRowid Ti64) (r uintptr) { ** to the requested entry. */ if (*TFts5Index)(unsafe.Pointer(p)).FpReader == uintptr(0) && rc == SQLITE_OK { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36168, iRowid, 0, p+72) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36314, iRowid, 0, p+72) } /* If either of the sqlite3_blob_open() or sqlite3_blob_reopen() calls ** above returned SQLITE_ERROR, return SQLITE_CORRUPT_VTAB instead. @@ -202613,7 +204555,7 @@ func _fts5DataWrite(tls *libc.TLS, p uintptr, iRowid Ti64, pData uintptr, nData } if (*TFts5Index)(unsafe.Pointer(p)).FpWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36174, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36320, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return } @@ -202642,7 +204584,7 @@ func _fts5DataDelete(tls *libc.TLS, p uintptr, iFirst Ti64, iLast Ti64) { } if (*TFts5Index)(unsafe.Pointer(p)).FpDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36225, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36371, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if _fts5IndexPrepareStmt(tls, p, p+88, zSql) != 0 { return } @@ -202676,7 +204618,7 @@ func _fts5DataRemoveSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { } if (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36274, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36420, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter, int32(1), iSegid) @@ -202845,7 +204787,7 @@ func _fts5StructureDecode(tls *libc.TLS, pData uintptr, nData int32, piCookie ui } i = int32(4) /* Check if this is a V2 structure record. Set bStructureV2 if it is. */ - if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36314, uint64(4)) { + if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36460, uint64(4)) { i += int32(4) bStructureV2 = int32(1) } @@ -203036,7 +204978,7 @@ func _fts5IndexDataVersion(tls *libc.TLS, p uintptr) (r Ti64) { iVersion = 0 if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*TFts5Index)(unsafe.Pointer(p)).FpDataVersion == uintptr(0) { - (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36319, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) + (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36465, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return 0 } @@ -203120,7 +205062,7 @@ func _fts5StructureWrite(tls *libc.TLS, p uintptr, pStruct uintptr) { _sqlite3Fts5Put32(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, iCookie) (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = int32(4) if (*TFts5Structure)(unsafe.Pointer(pStruct)).FnOriginCntr > uint64(0) { - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36314, uint64(4)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36460, uint64(4)) *(*int32)(unsafe.Pointer(bp + 8)) += int32(4) } *(*int32)(unsafe.Pointer(bp + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), uint64((*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel)) @@ -204070,6 +206012,7 @@ func _fts5SegIterNext_None(tls *libc.TLS, p uintptr, pIter uintptr, pbNewTerm ui } _fts5SegIterLoadNPos(tls, p, pIter) return + goto next_none_eof next_none_eof: ; _fts5DataRelease(tls, (*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf) @@ -204432,6 +206375,7 @@ func _fts5LeafSeek(tls *libc.TLS, p uintptr, bGe int32, pIter uintptr, pTerm uin *(*Tu32)(unsafe.Pointer(bp)) += uint32(_sqlite3Fts5GetVarint32(tls, a+uintptr(*(*Tu32)(unsafe.Pointer(bp))), bp+4)) } } + goto search_failed search_failed: ; if bGe == 0 { @@ -204463,6 +206407,7 @@ search_failed: } } } + goto search_success search_success: ; if int64(*(*Tu32)(unsafe.Pointer(bp)))+int64(*(*Tu32)(unsafe.Pointer(bp + 8))) > int64(n) || *(*Tu32)(unsafe.Pointer(bp + 8)) < uint32(1) { @@ -204492,7 +206437,7 @@ func _fts5IdxSelectStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36342, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36488, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect } @@ -204581,7 +206526,7 @@ func _fts5IdxNextStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36426, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36572, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect } @@ -205667,6 +207612,7 @@ func _fts5IterSetOutputs_Col100(tls *libc.TLS, pIter uintptr, pSeg uintptr) { iPrevOut = iPrev } } + goto setoutputs_col_out setoutputs_col_out: ; (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*TFts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp @@ -205884,6 +207830,7 @@ func _fts5MultiIterNew(tls *libc.TLS, p uintptr, pStruct uintptr, flags int32, p _fts5MultiIterFree(tls, pNew) *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) } + goto fts5MultiIterNew_post_check fts5MultiIterNew_post_check: ; return @@ -206195,7 +208142,7 @@ func _fts5WriteFlushBtree(tls *libc.TLS, p uintptr, pWriter uintptr) { if (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn > 0 { v1 = (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fp } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } z = v1 /* The following was already done in fts5WriteInit(): */ @@ -206550,7 +208497,7 @@ func _fts5WriteInit(tls *libc.TLS, p uintptr, pWriter uintptr, iSegid int32) { _sqlite3Fts5BufferSize(tls, p+60, pWriter+8+8, uint32(nBuffer)) if (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36508, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36654, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { /* Initialize the 4-byte leaf-page header to 0x00. */ @@ -207040,7 +208987,7 @@ func _fts5SecureDeleteIdxEntry(tls *libc.TLS, p uintptr, iSegid int32, iPgno int defer tls.Free(32) if iPgno != int32(1) { if (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx == uintptr(0) { - _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36565, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36711, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx, int32(1), iSegid) @@ -208530,7 +210477,7 @@ func _sqlite3Fts5IndexReinit(tls *libc.TLS, p uintptr) (r int32) { if (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FbContentlessDelete != 0 { (*(*TFts5Structure)(unsafe.Pointer(bp))).FnOriginCntr = uint64(1) } - _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1650, 0) + _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1664, 0) _fts5StructureWrite(tls, p, bp) return _fts5IndexReturn(tls, p) } @@ -208557,11 +210504,11 @@ func _sqlite3Fts5IndexOpen(tls *libc.TLS, pConfig uintptr, bCreate int32, pp uin if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Index)(unsafe.Pointer(p)).FpConfig = pConfig (*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit = int32(FTS5_WORK_UNIT) - (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36626, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36772, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl != 0 && bCreate != 0 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25743, __ccgo_ts+36634, 0, pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25889, __ccgo_ts+36780, 0, pzErr) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11795, __ccgo_ts+36669, int32(1), pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11920, __ccgo_ts+36815, int32(1), pzErr) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5IndexReinit(tls, p) @@ -209095,7 +211042,7 @@ func _fts5SetupTokendataIter(tls *libc.TLS, p uintptr, pToken uintptr, nToken in pNew = _fts5MultiIterAlloc(tls, p, (*TFts5Structure)(unsafe.Pointer(pStruct)).FnSegment) if pSmall != 0 { _sqlite3Fts5BufferSet(tls, p+60, bp, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fn, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+36713) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+36859) } else { _sqlite3Fts5BufferSet(tls, p+60, bp, nToken, pToken) } @@ -209615,7 +211562,7 @@ func _sqlite3Fts5IndexSetCookie(tls *libc.TLS, p uintptr, iNew int32) (r int32) pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig /* Binary representation of iNew */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) _sqlite3Fts5Put32(tls, bp, iNew) - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36168, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36314, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) if rc == SQLITE_OK { Xsqlite3_blob_write(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), bp, int32(4), 0) rc = Xsqlite3_blob_close(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) @@ -210209,7 +212156,7 @@ func _fts5IndexIntegrityCheckSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { if (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst == 0 { return } - _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36715, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) + _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36861, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) /* Iterate through the b-tree hierarchy. */ for (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { /* Data for this leaf */ zIdxTerm = Xsqlite3_column_blob(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -210440,7 +212387,7 @@ func _sqlite3Fts5IndexIntegrityCheck(tls *libc.TLS, p uintptr, cksum Tu64, bUseC } else { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = 0 _fts5SegiterPoslist(tls, p, *(*uintptr)(unsafe.Pointer(bp + 16))+104+uintptr((*(*TFts5CResult)(unsafe.Pointer((*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaFirst + 1*4))).FiFirst)*128, uintptr(0), bp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+36801) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+36947) for 0 == _sqlite3Fts5PoslistNext64(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn, bp+40, bp+32) { iCol = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) >> libc.Int32FromInt32(32)) iTokOff = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) & libc.Int64FromInt32(0x7FFFFFFF)) @@ -211028,7 +212975,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) bSeenMatch = 0 bSeenRank = 0 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36806, 0) + (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36952, 0) return int32(SQLITE_ERROR) } idxStr = Xsqlite3_malloc(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint*int32(8)+int32(1)) @@ -211067,7 +213014,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v3 = iIdxStr iIdxStr++ *(*int8)(unsafe.Pointer(idxStr + uintptr(v3))) = int8('M') - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5140, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5204, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) } } @@ -211087,7 +213034,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v6 = int32('G') } *(*int8)(unsafe.Pointer(idxStr + uintptr(v5))) = int8(v6) - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5140, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5204, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) iCons++ v7 = iCons @@ -211525,7 +213472,7 @@ func _fts5NextMethod(tls *libc.TLS, pCursor uintptr) (r int32) { *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_EOF) rc = Xsqlite3_reset(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpStmt) if rc != SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } } else { rc = SQLITE_OK @@ -211552,7 +213499,7 @@ func _fts5PrepareStatement(tls *libc.TLS, ppStmt uintptr, pConfig uintptr, zFmt } else { rc = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } Xsqlite3_free(tls, zSql) } @@ -211587,21 +213534,21 @@ func _fts5CursorFirstSorted(tls *libc.TLS, pTab uintptr, pCsr uintptr, bDesc int ** ** If SQLite a built-in statement cache, this wouldn't be a problem. */ if zRankArgs != 0 { - v1 = __ccgo_ts + 14992 + v1 = __ccgo_ts + 15085 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } if zRankArgs != 0 { v2 = zRankArgs } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } if bDesc != 0 { - v3 = __ccgo_ts + 36845 + v3 = __ccgo_ts + 36991 } else { - v3 = __ccgo_ts + 36850 + v3 = __ccgo_ts + 36996 } - rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+36854, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) + rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+37000, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpSorter = pSorter if rc == SQLITE_OK { (*TFts5FullTable)(unsafe.Pointer(pTab)).FpSortCsr = pCsr @@ -211659,14 +213606,14 @@ func _fts5SpecialMatch(tls *libc.TLS, pTab uintptr, pCsr uintptr, zQuery uintptr n++ } (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan = int32(FTS5_PLAN_SPECIAL) - if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+36909, z, n) { + if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+37055, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = int64(_sqlite3Fts5IndexReads(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)) } else { - if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5483, z, n) { + if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5547, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId } else { /* An unrecognized directive. Return an error message. */ - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36915, libc.VaList(bp+8, n, z)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37061, libc.VaList(bp+8, n, z)) rc = int32(SQLITE_ERROR) } } @@ -211716,7 +213663,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { zRank = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank zRankArgs = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs if zRankArgs != 0 { - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36943, libc.VaList(bp+24, zRankArgs)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37089, libc.VaList(bp+24, zRankArgs)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp+8, uintptr(0)) @@ -211749,7 +213696,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { pAux = _fts5FindAuxiliary(tls, pTab, zRank) if pAux == uintptr(0) { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36953, libc.VaList(bp+24, zRank)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37099, libc.VaList(bp+24, zRank)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -211783,7 +213730,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_FREE_ZRANK) } else { if rc == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36974, libc.VaList(bp+24, z)) + (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37120, libc.VaList(bp+24, z)) } } } else { @@ -211791,7 +213738,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRank (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRankArgs } else { - (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 34906 + (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 35052 (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = uintptr(0) } } @@ -211842,7 +213789,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint iIdxStr = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36806, 0) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36952, 0) return int32(SQLITE_ERROR) } if (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan != 0 { @@ -211864,7 +213811,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint case int32('M'): zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8))) if zText == uintptr(0) { - zText = __ccgo_ts + 1650 + zText = __ccgo_ts + 1664 } iCol = 0 for cond := true; cond; cond = int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) <= int32('9') { @@ -211986,7 +213933,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent == uintptr(0) { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37007, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37153, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) rc = int32(SQLITE_ERROR) } else { /* This is either a full-table scan (ePlan==FTS5_PLAN_SCAN) or a lookup @@ -212010,6 +213957,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } } + goto filter_out filter_out: ; _sqlite3Fts5ExprFree(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -212123,7 +214071,7 @@ func _fts5SeekCursor(tls *libc.TLS, pCsr uintptr, bErrormsg int32) (r int32) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< int32(1) { - v1 = __ccgo_ts + 20871 + v1 = __ccgo_ts + 21003 } else { - v1 = __ccgo_ts + 37285 + v1 = __ccgo_ts + 37431 } - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37297, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37443, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if nArg == int32(1) { @@ -212380,7 +214328,7 @@ func _fts5UpdateMethod(tls *libc.TLS, pVtab uintptr, nArg int32, apVal uintptr, } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && bUpdateOrDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FbSecureDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion == int32(FTS5_CURRENT_VERSION) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35834, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35980, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = int32(FTS5_CURRENT_VERSION_SECUREDELETE) } @@ -213176,7 +215124,7 @@ func _fts5ApiCallback(tls *libc.TLS, context uintptr, argc int32, argv uintptr) iCsrId = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) pCsr = _fts5CursorFromCsrid(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal, iCsrId) if pCsr == uintptr(0) || (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan == 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37334, libc.VaList(bp+8, iCsrId)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37480, libc.VaList(bp+8, iCsrId)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } else { @@ -213367,7 +215315,7 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg = uintptr(0) } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 && Xsqlite3_vtab_nochange(tls, pCtx) != 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37355, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37501, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -213609,7 +215557,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr pMod = _fts5LocateTokenizer(tls, pGlobal, v1) if pMod == uintptr(0) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37426, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37572, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) } else { if azArg != 0 { v2 = azArg + 1*8 @@ -213625,7 +215573,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr (*TFts5Config)(unsafe.Pointer(pConfig)).FpTokApi = pMod + 16 if rc != SQLITE_OK { if pzErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37448, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37594, 0) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FePattern = _sqlite3Fts5TokenizerPattern(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pMod)).Fx.FxCreate, (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok) @@ -213680,7 +215628,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { _, _ = pGlobal, ppApi pGlobal = Xsqlite3_user_data(tls, pCtx) _ = nArg - ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37479) + ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37625) if ppApi != 0 { *(*uintptr)(unsafe.Pointer(ppApi)) = pGlobal } @@ -213694,7 +215642,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { func _fts5SourceIdFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apUnused uintptr) { _ = nArg _ = apUnused - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37492, -int32(1), uintptr(-libc.Int32FromInt32(1))) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37638, -int32(1), uintptr(-libc.Int32FromInt32(1))) } // C documentation @@ -213723,11 +215671,11 @@ func _fts5ShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName2 = [5]uintptr{ - 0: __ccgo_ts + 37583, - 1: __ccgo_ts + 35095, - 2: __ccgo_ts + 25743, - 3: __ccgo_ts + 35662, - 4: __ccgo_ts + 11795, + 0: __ccgo_ts + 37729, + 1: __ccgo_ts + 35241, + 2: __ccgo_ts + 25889, + 3: __ccgo_ts + 35808, + 4: __ccgo_ts + 11920, } // C documentation @@ -213741,20 +215689,26 @@ func _fts5IntegrityMethod(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zTabnam bp := tls.Alloc(32) defer tls.Free(32) var pTab uintptr - var rc int32 - _, _ = pTab, rc + var rc, v1 int32 + _, _, _ = pTab, rc, v1 pTab = pVtab _ = isQuick rc = _sqlite3Fts5StorageIntegrity(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, 0) if rc&int32(0xff) == int32(SQLITE_CORRUPT) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37590, libc.VaList(bp+8, zSchema, zTabname)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37736, libc.VaList(bp+8, zSchema, zTabname)) + if *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { + v1 = SQLITE_OK + } else { + v1 = int32(SQLITE_NOMEM) + } + rc = v1 } else { if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37636, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37782, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) } } _sqlite3Fts5IndexCloseReader(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex) - return SQLITE_OK + return rc } func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { @@ -213773,7 +215727,7 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateFunction = __ccgo_fp(_fts5CreateAux) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateTokenizer = __ccgo_fp(_fts5CreateTokenizer) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxFindTokenizer = __ccgo_fp(_fts5FindTokenizer) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37699, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37845, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) if rc == SQLITE_OK { rc = _sqlite3Fts5IndexInit(tls, db) } @@ -213790,10 +215744,10 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { rc = _sqlite3Fts5VocabInit(tls, pGlobal, db) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37699, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37845, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37704, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37850, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) } } /* If SQLITE_FTS5_ENABLE_TEST_MI is defined, assume that the file @@ -213896,17 +215850,17 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, ** statements to operate on it. */ if *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(eStmt)*8)) == uintptr(0) { azStmt = [11]uintptr{ - 0: __ccgo_ts + 37719, - 1: __ccgo_ts + 37787, - 2: __ccgo_ts + 37856, - 3: __ccgo_ts + 37889, - 4: __ccgo_ts + 37928, - 5: __ccgo_ts + 37968, - 6: __ccgo_ts + 38007, - 7: __ccgo_ts + 38050, - 8: __ccgo_ts + 38089, - 9: __ccgo_ts + 38133, - 10: __ccgo_ts + 38173, + 0: __ccgo_ts + 37865, + 1: __ccgo_ts + 37933, + 2: __ccgo_ts + 38002, + 3: __ccgo_ts + 38035, + 4: __ccgo_ts + 38074, + 5: __ccgo_ts + 38114, + 6: __ccgo_ts + 38153, + 7: __ccgo_ts + 38196, + 8: __ccgo_ts + 38235, + 9: __ccgo_ts + 38279, + 10: __ccgo_ts + 38319, } pC = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig zSql = uintptr(0) @@ -213943,16 +215897,16 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, } case int32(FTS5_STMT_REPLACE_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v2 = __ccgo_ts + 38196 + v2 = __ccgo_ts + 38342 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName, v2)) case int32(FTS5_STMT_LOOKUP_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v3 = __ccgo_ts + 38199 + v3 = __ccgo_ts + 38345 } else { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, v3, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName)) default: @@ -213971,7 +215925,7 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, (*TFts5Config)(unsafe.Pointer((*TFts5Storage)(unsafe.Pointer(p)).FpConfig)).FbLock-- Xsqlite3_free(tls, zSql) if rc != SQLITE_OK && pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) } } } @@ -214008,12 +215962,12 @@ func _sqlite3Fts5DropAll(tls *libc.TLS, pConfig uintptr) (r int32) { defer tls.Free(64) var rc int32 _ = rc - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38207, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38353, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38311, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38457, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38349, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38495, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } return rc } @@ -214022,7 +215976,7 @@ func _fts5StorageRenameOne(tls *libc.TLS, pConfig uintptr, pRc uintptr, zTail ui bp := tls.Alloc(48) defer tls.Free(48) if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38387, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) + *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38533, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) } } @@ -214034,14 +215988,14 @@ func _sqlite3Fts5StorageRename(tls *libc.TLS, pStorage uintptr, zName uintptr) ( _ = pConfig pConfig = (*TFts5Storage)(unsafe.Pointer(pStorage)).FpConfig *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageSync(tls, pStorage) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25743, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11795, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37583, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25889, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11920, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37729, zName) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35662, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35808, zName) } if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35095, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35241, zName) } return *(*int32)(unsafe.Pointer(bp)) } @@ -214061,13 +216015,13 @@ func _sqlite3Fts5CreateTable(tls *libc.TLS, pConfig uintptr, zPost uintptr, zDef _, _ = rc, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if bWithout != 0 { - v1 = __ccgo_ts + 30383 + v1 = __ccgo_ts + 30529 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38429, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38575, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38459, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38605, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -214108,36 +216062,36 @@ func _sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCr if zDefn == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38503, 0) + Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38649, 0) iOff = int32(libc.Xstrlen(tls, zDefn)) i = 0 for { if !(i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } - Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38526, libc.VaList(bp+8, i)) + Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38672, libc.VaList(bp+8, i)) iOff += int32(libc.Xstrlen(tls, zDefn+uintptr(iOff))) goto _2 _2: ; i++ } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35095, zDefn, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35241, zDefn, 0, pzErr) } Xsqlite3_free(tls, zDefn) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - zCols = __ccgo_ts + 38532 + zCols = __ccgo_ts + 38678 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 { - zCols = __ccgo_ts + 38564 + zCols = __ccgo_ts + 38710 } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35662, zCols, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35808, zCols, 0, pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37583, __ccgo_ts+38612, int32(1), pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37729, __ccgo_ts+38758, int32(1), pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35834, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35980, uintptr(0), int32(FTS5_CURRENT_VERSION)) } } if rc != 0 { @@ -214479,9 +216433,9 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig (*TFts5Storage)(unsafe.Pointer(p)).FbTotalsValid = 0 /* Delete the contents of the %_data and %_docsize tables. */ - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38629, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38775, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38679, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38825, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } /* Reinitialize the %_data table. This call creates the initial structure ** and averages records. */ @@ -214489,7 +216443,7 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3Fts5IndexReinit(tls, (*TFts5Storage)(unsafe.Pointer(p)).FpIndex) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35834, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35980, uintptr(0), int32(FTS5_CURRENT_VERSION)) } return rc } @@ -214703,7 +216657,7 @@ func _fts5StorageCount(tls *libc.TLS, p uintptr, zSuffix uintptr, pnRow uintptr) var _ /* pCnt at bp+0 */ uintptr _, _, _ = pConfig, rc, zSql pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38708, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38854, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -214913,14 +216867,14 @@ func _sqlite3Fts5StorageIntegrity(tls *libc.TLS, p uintptr, iArg int32) (r int32 ** number of rows. */ if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { *(*Ti64)(unsafe.Pointer(bp + 48)) = 0 - rc = _fts5StorageCount(tls, p, __ccgo_ts+35095, bp+48) + rc = _fts5StorageCount(tls, p, __ccgo_ts+35241, bp+48) if rc == SQLITE_OK && *(*Ti64)(unsafe.Pointer(bp + 48)) != (*TFts5Storage)(unsafe.Pointer(p)).FnTotalRow { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<= int32('A') && int32(*(*uint8)(unsafe.Pointer(zCsr))) <= int32('Z') { @@ -215841,6 +217797,7 @@ _5: goto _2 _1: ; + goto tokenize_done tokenize_done: ; if rc == int32(SQLITE_DONE) { @@ -215904,7 +217861,7 @@ func _fts5PorterCreate(tls *libc.TLS, pCtx uintptr, azArg uintptr, nArg int32, p pApi = pCtx rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zBase = __ccgo_ts + 38800 + zBase = __ccgo_ts + 38946 if nArg > 0 { zBase = *(*uintptr)(unsafe.Pointer(azArg)) } @@ -216119,64 +218076,64 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38810, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38956, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38813, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38959, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38818, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38964, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('e'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38823, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38969, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38826, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38972, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('l'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38829, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38975, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38834, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38980, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38839, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38985, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38843, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38989, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38849, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38995, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38854, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39000, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -216185,49 +218142,49 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38858, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39004, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1_and_S_or_T(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38862, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39008, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } } case int32('s'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38865, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39011, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('t'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38869, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39015, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38873, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39019, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38877, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39023, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38881, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39027, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('z'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38885, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39031, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -216244,20 +218201,20 @@ func _fts5PorterStep1B2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38889, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38869, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39035, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39015, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('b'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38892, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38895, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39038, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39041, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38899, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38885, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39045, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39031, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } @@ -216273,75 +218230,75 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38902, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39048, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38869, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39015, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38910, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39056, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38917, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39063, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(4) } } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38922, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39068, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38818, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38964, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38927, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39073, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38813, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38959, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } } case int32('e'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38932, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39078, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38885, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39031, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('g'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38937, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39083, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15909, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15988, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('l'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38942, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39088, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38895, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39041, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38946, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39092, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38810, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38956, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38951, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39097, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38854, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39000, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38957, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39103, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38961, uint64(1)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39107, uint64(1)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(1) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38963, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39109, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38877, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39023, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } @@ -216350,48 +218307,48 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38969, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39115, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38885, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39031, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38977, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39123, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38869, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39015, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38983, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39129, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38869, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39015, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } } } case int32('s'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38988, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39134, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38810, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38956, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38994, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39140, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38881, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39027, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39002, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39148, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39010, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39156, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39014, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39160, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38877, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39023, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } @@ -216399,21 +218356,21 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39022, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39168, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38810, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38956, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39028, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39174, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38881, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39027, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39034, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39180, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38895, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39041, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(3) } } @@ -216431,48 +218388,48 @@ func _fts5PorterStep3(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39041, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39187, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38826, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38972, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } case int32('s'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39046, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39192, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39051, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39197, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38826, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38972, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39057, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39203, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38826, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38972, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39010, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39156, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39063, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39209, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } case int32('z'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39069, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39215, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38810, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38956, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } @@ -216488,13 +218445,13 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('e'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39075, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39221, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39079, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39225, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(2) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39082, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39228, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) ret = int32(1) @@ -216502,7 +218459,7 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39085, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39231, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) ret = int32(1) @@ -216587,6 +218544,7 @@ func _fts5PorterCb(tls *libc.TLS, pCtx uintptr, tflags int32, pToken uintptr, nT *(*int32)(unsafe.Pointer(bp))-- } return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, aBuf, *(*int32)(unsafe.Pointer(bp)), iStart, iEnd) + goto pass_through pass_through: ; return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, pToken, nToken, iStart, iEnd) @@ -216662,14 +218620,14 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p break } zArg = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+int32(1))*8)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39089) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39235) { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || *(*int8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { (*TTrigramTokenizer)(unsafe.Pointer(pNew)).FbFold = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('0')) } } else { - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38782) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38928) { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('2') || *(*int8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { @@ -216943,7 +218901,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { Fx Tfts5_tokenizer }{ 0: { - FzName: __ccgo_ts + 38800, + FzName: __ccgo_ts + 38946, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5UnicodeCreate), FxDelete: __ccgo_fp(_fts5UnicodeDelete), @@ -216951,7 +218909,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 1: { - FzName: __ccgo_ts + 39104, + FzName: __ccgo_ts + 39250, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5AsciiCreate), FxDelete: __ccgo_fp(_fts5AsciiDelete), @@ -216959,7 +218917,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 2: { - FzName: __ccgo_ts + 39110, + FzName: __ccgo_ts + 39256, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5PorterCreate), FxDelete: __ccgo_fp(_fts5PorterDelete), @@ -216967,7 +218925,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 3: { - FzName: __ccgo_ts + 39117, + FzName: __ccgo_ts + 39263, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5TriCreate), FxDelete: __ccgo_fp(_fts5TriDelete), @@ -222501,16 +224459,16 @@ func _fts5VocabTableType(tls *libc.TLS, zType uintptr, pzErr uintptr, peType uin zCopy = _sqlite3Fts5Strndup(tls, bp, zType, -int32(1)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { _sqlite3Fts5Dequote(tls, zCopy) - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39125) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39271) == 0 { *(*int32)(unsafe.Pointer(peType)) = FTS5_VOCAB_COL } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39129) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39275) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_ROW) } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39133) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39279) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_INSTANCE) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39142, libc.VaList(bp+16, zCopy)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39288, libc.VaList(bp+16, zCopy)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -222579,15 +224537,15 @@ func _fts5VocabInitVtab(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg var _ /* rc at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _ = azSchema, bDb, nByte, nDb, nTab, pRet, zDb, zTab, zType, v1, v2, v3 azSchema = [3]uintptr{ - 0: __ccgo_ts + 39176, - 1: __ccgo_ts + 39216, - 2: __ccgo_ts + 39251, + 0: __ccgo_ts + 39322, + 1: __ccgo_ts + 39362, + 2: __ccgo_ts + 39397, } pRet = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+23744, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) + bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+23867, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) if argc != int32(5) && bDb == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39294, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39440, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bDb != 0 { @@ -222757,10 +224715,10 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) zSql = uintptr(0) if (*TFts5VocabTable)(unsafe.Pointer(pTab)).FbBusy != 0 { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39327, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39473, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) return int32(SQLITE_ERROR) } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39358, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39504, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, (*TFts5VocabTable)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), bp+8, uintptr(0)) } @@ -222779,7 +224737,7 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39409, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39555, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } else { @@ -223081,7 +225039,7 @@ func _fts5VocabFilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, zUnuse if pLe != 0 { zCopy = Xsqlite3_value_text(tls, pLe) if zCopy == uintptr(0) { - zCopy = __ccgo_ts + 1650 + zCopy = __ccgo_ts + 1664 } (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm = Xsqlite3_value_bytes(tls, pLe) (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm = Xsqlite3_malloc(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm+int32(1)) @@ -223205,7 +225163,7 @@ func _sqlite3Fts5VocabInit(tls *libc.TLS, pGlobal uintptr, db uintptr) (r int32) var p uintptr _ = p p = pGlobal - return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39435, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) + return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39581, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) } var _fts5Vocab = Tsqlite3_module{ @@ -223258,7 +225216,7 @@ func init() { // /************** End of stmt.c ************************************************/ // /* Return the source-id for this library */ func Xsqlite3_sourceid(tls *libc.TLS) (r uintptr) { - return __ccgo_ts + 39445 + return __ccgo_ts + 39591 } type TAggInfo_col = struct { @@ -223540,11 +225498,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]int8{'3', '.', '4', '5', '.', '3'} +var Xsqlite3_version = [7]int8{'3', '.', '4', '6', '.', '0'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=0\x00COMPILER=clang-16.0.6\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%04d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00(subquery-%u)\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSmaller\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00PRAGMA \"%w\".integrity_check(%Q)\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00ceiling\x00floor\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00wrong # of entries in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00RIGHT PART OF \x00USE TEMP B-TREE FOR %sORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00parser stack overflow\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=0\x00COMPILER=clang-16.0.6\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00ceiling\x00floor\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%04d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00%u-ROW VALUES CLAUSE\x00(subquery-%u)\x00unrecognized token: \"%s\"\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSizeBetween\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: \"%s\" - should this be a string literal in single-quotes?\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00SCAN %S\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00wrong # of entries in index \x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00LAST TERM OF \x00USE TEMP B-TREE FOR %sORDER BY\x00USE TEMP B-TREE FOR LAST %d TERMS OF ORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00syntax error\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00,\n\x00: \x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00 \x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_pretty\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00" type Sqlite3_int64 = sqlite3_int64 type Sqlite3_mutex_methods = sqlite3_mutex_methods diff --git a/vendor/modernc.org/sqlite/lib/sqlite_freebsd_arm64.go b/vendor/modernc.org/sqlite/lib/sqlite_freebsd_arm64.go index a500656c..ce9ed9cc 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_freebsd_arm64.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_freebsd_arm64.go @@ -1,4 +1,4 @@ -// Code generated for freebsd/arm64 by 'generator --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -import runtime -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -extended-errors -o sqlite3.go sqlite3.c -I/tmp/libsqlite3/sqlite-amalgamation-3450300/ccgo -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -ltcl8.6 -eval-all-macros', DO NOT EDIT. +// Code generated for freebsd/arm64 by 'generator --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libz/include/freebsd/arm64 -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libtcl8.6/include/freebsd/arm64 -extended-errors -o sqlite3.go sqlite3.c -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -ltcl8.6 -eval-all-macros', DO NOT EDIT. //go:build freebsd && arm64 // +build freebsd,arm64 @@ -10,8 +10,6 @@ import ( "unsafe" "modernc.org/libc" - - "runtime" ) var ( @@ -847,6 +845,7 @@ const OPFLG_IN1 = 2 const OPFLG_IN2 = 4 const OPFLG_IN3 = 8 const OPFLG_JUMP = 1 +const OPFLG_JUMP0 = 128 const OPFLG_NCYCLE = 64 const OPFLG_OUT2 = 16 const OPFLG_OUT3 = 32 @@ -924,7 +923,7 @@ const OP_IfNotOpen = 25 const OP_IfNotZero = 60 const OP_IfNullRow = 20 const OP_IfPos = 59 -const OP_IfSmaller = 33 +const OP_IfSizeBetween = 33 const OP_IncrVacuum = 62 const OP_Init = 8 const OP_InitCoroutine = 11 @@ -1354,6 +1353,7 @@ const SF_ComplexResult = 262144 const SF_Compound = 256 const SF_Converted = 65536 const SF_CopyCte = 67108864 +const SF_Correlated = 536870912 const SF_Distinct = 1 const SF_Expanded = 64 const SF_FixedLimit = 16384 @@ -1577,6 +1577,7 @@ const SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT = -1 const SQLITE_DEFAULT_LOOKASIDE = 40 const SQLITE_DEFAULT_MEMSTATUS = 0 const SQLITE_DEFAULT_MMAP_SIZE = 0 +const SQLITE_DEFAULT_OPTIMIZE_LIMIT = 2000 const SQLITE_DEFAULT_PAGE_SIZE = 4096 const SQLITE_DEFAULT_PCACHE_INITSZ = 20 const SQLITE_DEFAULT_PROXYDIR_PERMISSIONS = 493 @@ -1594,6 +1595,7 @@ const SQLITE_DESERIALIZE_READONLY = 4 const SQLITE_DESERIALIZE_RESIZEABLE = 2 const SQLITE_DETACH = 25 const SQLITE_DETERMINISTIC = 2048 +const SQLITE_DIGIT_SEPARATOR = 95 const SQLITE_DIRECTONLY = 524288 const SQLITE_DIRECT_OVERFLOW_READ = 1 const SQLITE_DONE = 101 @@ -2018,7 +2020,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355" +const SQLITE_SOURCE_ID = "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2126,8 +2128,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.45.3" -const SQLITE_VERSION_NUMBER = 3045003 +const SQLITE_VERSION = "3.46.0" +const SQLITE_VERSION_NUMBER = 3046000 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -2225,11 +2227,11 @@ const TF_HasStat1 = 16 const TF_HasStat4 = 8192 const TF_HasStored = 64 const TF_HasVirtual = 32 +const TF_MaybeReanalyze = 256 const TF_NoVisibleRowid = 512 const TF_OOOHidden = 1024 const TF_Readonly = 1 const TF_Shadow = 4096 -const TF_StatsUsed = 256 const TF_Strict = 65536 const TF_WithoutRowid = 128 const TIMER_ABSTIME = 1 @@ -2337,7 +2339,7 @@ const TK_ID = 59 const TK_IF = 18 const TK_IF_NULL_ROW = 179 const TK_IGNORE = 63 -const TK_ILLEGAL = 184 +const TK_ILLEGAL = 185 const TK_IMMEDIATE = 8 const TK_IN = 49 const TK_INDEX = 161 @@ -2385,6 +2387,7 @@ const TK_PRAGMA = 70 const TK_PRECEDING = 88 const TK_PRIMARY = 122 const TK_PTR = 112 +const TK_QNUMBER = 183 const TK_QUERY = 3 const TK_RAISE = 71 const TK_RANGE = 89 @@ -2409,7 +2412,7 @@ const TK_SELECT_COLUMN = 178 const TK_SEMI = 1 const TK_SET = 130 const TK_SLASH = 109 -const TK_SPACE = 183 +const TK_SPACE = 184 const TK_SPAN = 181 const TK_STAR = 108 const TK_STRING = 117 @@ -2422,12 +2425,12 @@ const TK_TRANSACTION = 6 const TK_TRIGGER = 77 const TK_TRUEFALSE = 170 const TK_TRUTH = 175 -const TK_UMINUS = 173 +const TK_UMINUS = 174 const TK_UNBOUNDED = 90 const TK_UNION = 134 const TK_UNIQUE = 123 const TK_UPDATE = 129 -const TK_UPLUS = 174 +const TK_UPLUS = 173 const TK_USING = 144 const TK_VACUUM = 78 const TK_VALUES = 139 @@ -2585,31 +2588,37 @@ const W_OK = 2 const XN_EXPR = -2 const XN_ROWID = -1 const X_OK = 1 +const YYDYNSTACK = 1 const YYFALLBACK = 1 +const YYFREE = 0 +const YYGROWABLESTACK = 1 const YYMALLOCARGTYPE = 0 -const YYNOCODE = 319 +const YYNOCODE = 322 const YYNOERRORRECOVERY = 1 -const YYNRULE = 405 -const YYNRULE_WITH_ACTION = 340 -const YYNSTATE = 579 -const YYNTOKEN = 185 +const YYNRULE = 409 +const YYNRULE_WITH_ACTION = 344 +const YYNSTATE = 583 +const YYNTOKEN = 186 const YYPARSEFREENEVERNULL = 1 +const YYREALLOC = 0 const YYSTACKDEPTH = 100 const YYWILDCARD = 101 -const YY_ACCEPT_ACTION = 1244 -const YY_ACTTAB_COUNT = 2100 -const YY_ERROR_ACTION = 1243 -const YY_MAX_REDUCE = 1650 -const YY_MAX_SHIFT = 578 -const YY_MAX_SHIFTREDUCE = 1242 -const YY_MIN_REDUCE = 1246 -const YY_MIN_SHIFTREDUCE = 838 -const YY_NO_ACTION = 1245 -const YY_REDUCE_COUNT = 410 -const YY_REDUCE_MAX = 1753 -const YY_REDUCE_MIN = -271 -const YY_SHIFT_COUNT = 578 -const YY_SHIFT_MAX = 2088 +const YY_ACCEPT_ACTION = 1255 +const YY_ACTTAB_COUNT = 2142 +const YY_ERROR_ACTION = 1254 +const YY_MAX_DSTRCTR = 319 +const YY_MAX_REDUCE = 1665 +const YY_MAX_SHIFT = 582 +const YY_MAX_SHIFTREDUCE = 1253 +const YY_MIN_DSTRCTR = 205 +const YY_MIN_REDUCE = 1257 +const YY_MIN_SHIFTREDUCE = 845 +const YY_NO_ACTION = 1256 +const YY_REDUCE_COUNT = 411 +const YY_REDUCE_MAX = 1798 +const YY_REDUCE_MIN = -275 +const YY_SHIFT_COUNT = 582 +const YY_SHIFT_MAX = 2128 const YY_SHIFT_MIN = 0 const _BYTE_ORDER = 1234 const _CS_PATH = 1 @@ -3320,6 +3329,9 @@ const fds_bits = 0 const first_valueInvFunc = 0 const first_valueValueFunc = 0 const fts5GetVarint = 0 +const fts5YYDYNSTACK = 0 +const fts5YYFREE = 0 +const fts5YYGROWABLESTACK = 0 const fts5YYMALLOCARGTYPE = 0 const fts5YYNFTS5TOKEN = 16 const fts5YYNOCODE = 27 @@ -3328,13 +3340,16 @@ const fts5YYNRULE = 28 const fts5YYNRULE_WITH_ACTION = 28 const fts5YYNSTATE = 35 const fts5YYPARSEFREENOTNULL = 1 +const fts5YYREALLOC = 0 const fts5YYSTACKDEPTH = 100 const fts5YY_ACCEPT_ACTION = 81 const fts5YY_ACTTAB_COUNT = 105 const fts5YY_ERROR_ACTION = 80 +const fts5YY_MAX_DSTRCTR = 24 const fts5YY_MAX_REDUCE = 110 const fts5YY_MAX_SHIFT = 34 const fts5YY_MAX_SHIFTREDUCE = 79 +const fts5YY_MIN_DSTRCTR = 16 const fts5YY_MIN_REDUCE = 83 const fts5YY_MIN_SHIFTREDUCE = 52 const fts5YY_NO_ACTION = 82 @@ -3945,11 +3960,11 @@ type sqlite3_file1 = Tsqlite3_file1 // ** // ** xLock() upgrades the database file lock. In other words, xLock() moves the // ** database file lock in the direction NONE toward EXCLUSIVE. The argument to -// ** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +// ** xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never // ** SQLITE_LOCK_NONE. If the database file lock is already at or above the // ** requested lock, then the call to xLock() is a no-op. // ** xUnlock() downgrades the database file lock to either SHARED or NONE. -// * If the lock is already at or below the requested lock state, then the call +// ** If the lock is already at or below the requested lock state, then the call // ** to xUnlock() is a no-op. // ** The xCheckReservedLock() method checks whether any database connection, // ** either in this process or in some other process, is holding a RESERVED, @@ -5729,6 +5744,7 @@ type Tsqlite3_changegroup = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -6055,8 +6071,8 @@ type Fts5PhraseIter1 = TFts5PhraseIter1 ** EXTENSION API FUNCTIONS ** ** xUserData(pFts): -** Return a copy of the context pointer the extension function was -** registered with. +** Return a copy of the pUserData pointer passed to the xCreateFunction() +** API when the extension function was registered. ** ** xColumnTotalSize(pFts, iCol, pnToken): ** If parameter iCol is less than zero, set output variable *pnToken @@ -7214,7 +7230,7 @@ type uptr = Tuptr ** 0x00000010 Display sqlite3_index_info xBestIndex calls ** 0x00000020 Range an equality scan metrics ** 0x00000040 IN operator decisions -** 0x00000080 WhereLoop cost adjustements +** 0x00000080 WhereLoop cost adjustments ** 0x00000100 ** 0x00000200 Covering index decisions ** 0x00000400 OR optimization @@ -7726,6 +7742,7 @@ type TParse = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -7945,6 +7962,7 @@ type TSrcItem = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -10221,10 +10239,12 @@ type IdList1 = TIdList1 ** ** Union member validity: ** -** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc -** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy -** u2.pIBIndex fg.isIndexedBy && !fg.isCte -** u2.pCteUse fg.isCte && !fg.isIndexedBy +** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc +** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy +** u1.nRow !fg.isTabFunc && !fg.isIndexedBy +** +** u2.pIBIndex fg.isIndexedBy && !fg.isCte +** u2.pCteUse fg.isCte && !fg.isIndexedBy */ type TSrcItem1 = struct { FpSchema uintptr @@ -10250,6 +10270,7 @@ type TSrcItem1 = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -10653,6 +10674,7 @@ type TParse1 = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -12015,12 +12037,12 @@ var _sqlite3WhereTrace = uint32(0) var _sqlite3OpcodeProperty = [190]uint8{ 4: uint8(0x10), 6: uint8(0x41), - 8: uint8(0x01), + 8: uint8(0x81), 9: uint8(0x01), 10: uint8(0x01), - 11: uint8(0x01), - 12: uint8(0x03), - 13: uint8(0x03), + 11: uint8(0x81), + 12: uint8(0x83), + 13: uint8(0x83), 14: uint8(0x01), 15: uint8(0x01), 16: uint8(0x03), @@ -12028,22 +12050,22 @@ var _sqlite3OpcodeProperty = [190]uint8{ 18: uint8(0x01), 19: uint8(0x12), 20: uint8(0x01), - 21: uint8(0x49), - 22: uint8(0x49), - 23: uint8(0x49), - 24: uint8(0x49), + 21: uint8(0xc9), + 22: uint8(0xc9), + 23: uint8(0xc9), + 24: uint8(0xc9), 25: uint8(0x01), 26: uint8(0x49), 27: uint8(0x49), 28: uint8(0x49), 29: uint8(0x49), - 30: uint8(0x49), + 30: uint8(0xc9), 31: uint8(0x49), - 32: uint8(0x41), + 32: uint8(0xc1), 33: uint8(0x01), 34: uint8(0x41), 35: uint8(0x41), - 36: uint8(0x41), + 36: uint8(0xc1), 37: uint8(0x01), 38: uint8(0x41), 39: uint8(0x41), @@ -12055,7 +12077,7 @@ var _sqlite3OpcodeProperty = [190]uint8{ 45: uint8(0x41), 46: uint8(0x23), 47: uint8(0x0b), - 48: uint8(0x01), + 48: uint8(0x81), 49: uint8(0x01), 50: uint8(0x03), 51: uint8(0x03), @@ -12910,7 +12932,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= int32(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(23890)) + return _sqlite3MisuseError(tls, int32(23961)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -13258,43 +13280,37 @@ type tm = Ttm // ** A structure for holding a single date and time. // */ type TDateTime = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD uint8 - FrawS uint8 - FvalidYMD uint8 - FvalidHMS uint8 - FvalidTZ uint8 - FtzSet uint8 - FisError uint8 - FuseSubsec uint8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD uint8 + FvalidYMD uint8 + FvalidHMS uint8 + FnFloor uint8 + F__ccgo44 uint8 } type DateTime = TDateTime type TDateTime1 = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD uint8 - FrawS uint8 - FvalidYMD uint8 - FvalidHMS uint8 - FvalidTZ uint8 - FtzSet uint8 - FisError uint8 - FuseSubsec uint8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD uint8 + FvalidYMD uint8 + FvalidHMS uint8 + FnFloor uint8 + F__ccgo44 uint8 } type DateTime1 = TDateTime1 @@ -13363,6 +13379,7 @@ func _getDigits(tls *libc.TLS, zDate uintptr, zFormat uintptr, va uintptr) (r in cnt++ zFormat += uintptr(4) } + goto end_getDigits end_getDigits: ; _ = ap @@ -13419,6 +13436,8 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } else { if c == int32('Z') || c == int32('z') { zDate++ + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) goto zulu_time } else { return libc.BoolInt32(c != 0) @@ -13431,12 +13450,12 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } zDate += uintptr(5) (*TDateTime)(unsafe.Pointer(p)).Ftz = sgn * (*(*int32)(unsafe.Pointer(bp + 4)) + *(*int32)(unsafe.Pointer(bp))*int32(60)) + goto zulu_time zulu_time: ; for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(zDate))])&int32(0x01) != 0 { zDate++ } - (*TDateTime)(unsafe.Pointer(p)).FtzSet = uint8(1) return libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zDate))) != 0) } @@ -13453,11 +13472,10 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var ms, rScale float64 - var v1 int32 var _ /* h at bp+0 */ int32 var _ /* m at bp+4 */ int32 var _ /* s at bp+8 */ int32 - _, _, _ = ms, rScale, v1 + _, _ = ms, rScale ms = float64(0) if _getDigits(tls, zDate, __ccgo_ts+1164, libc.VaList(bp+24, bp, bp+4)) != int32(2) { return int32(1) @@ -13483,7 +13501,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 8)) = 0 } (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) (*TDateTime)(unsafe.Pointer(p)).Fh = *(*int32)(unsafe.Pointer(bp)) (*TDateTime)(unsafe.Pointer(p)).Fm = *(*int32)(unsafe.Pointer(bp + 4)) @@ -13491,12 +13509,6 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { if _parseTimezone(tls, zDate, p) != 0 { return int32(1) } - if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { - v1 = int32(1) - } else { - v1 = 0 - } - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(v1) return 0 } @@ -13507,7 +13519,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { // */ func _datetimeError(tls *libc.TLS, p uintptr) { libc.Xmemset(tls, p, 0, uint64(48)) - (*TDateTime)(unsafe.Pointer(p)).FisError = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 1, 0x2) } // C documentation @@ -13533,7 +13545,7 @@ func _computeJD(tls *libc.TLS, p uintptr) { M = int32(1) D = int32(1) } - if Y < -int32(4713) || Y > int32(9999) || (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Y < -int32(4713) || Y > int32(9999) || int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { _datetimeError(tls, p) return } @@ -13549,11 +13561,41 @@ func _computeJD(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) if (*TDateTime)(unsafe.Pointer(p)).FvalidHMS != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) += int64((*TDateTime)(unsafe.Pointer(p)).Fh*int32(3600000)+(*TDateTime)(unsafe.Pointer(p)).Fm*int32(60000)) + int64((*TDateTime)(unsafe.Pointer(p)).Fs*libc.Float64FromInt32(1000)+libc.Float64FromFloat64(0.5)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64((*TDateTime)(unsafe.Pointer(p)).Ftz * int32(60000)) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + } + } +} + +// C documentation +// +// /* +// ** Given the YYYY-MM-DD information current in p, determine if there +// ** is day-of-month overflow and set nFloor to the number of days that +// ** would need to be subtracted from the date in order to bring the +// ** date back to the end of the month. +// */ +func _computeFloor(tls *libc.TLS, p uintptr) { + if (*TDateTime)(unsafe.Pointer(p)).FD <= int32(28) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } else { + if int32(1)<<(*TDateTime)(unsafe.Pointer(p)).FM&int32(0x15aa) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FM != int32(2) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = libc.BoolUint8((*TDateTime)(unsafe.Pointer(p)).FD == libc.Int32FromInt32(31)) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FY%int32(4) != 0 || (*TDateTime)(unsafe.Pointer(p)).FY%int32(100) == 0 && (*TDateTime)(unsafe.Pointer(p)).FY%int32(400) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8((*TDateTime)(unsafe.Pointer(p)).FD - int32(28)) + } else { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8((*TDateTime)(unsafe.Pointer(p)).FD - int32(29)) + } + } } } } @@ -13612,12 +13654,15 @@ func _parseYyyyMmDd(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FY = v1 (*TDateTime)(unsafe.Pointer(p)).FM = *(*int32)(unsafe.Pointer(bp + 4)) (*TDateTime)(unsafe.Pointer(p)).FD = *(*int32)(unsafe.Pointer(bp + 8)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + _computeFloor(tls, p) + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { _computeJD(tls, p) } return 0 } +/* Forward declaration */ + // C documentation // // /* @@ -13629,6 +13674,9 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) (*TDateTime)(unsafe.Pointer(p)).FiJD = _sqlite3StmtCurrentTime(tls, context) if (*TDateTime)(unsafe.Pointer(p)).FiJD > 0 { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + _clearYMD_HMS_TZ(tls, p) return 0 } else { return int32(1) @@ -13646,7 +13694,7 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) // */ func _setRawDateNumber(tls *libc.TLS, p uintptr, r float64) { (*TDateTime)(unsafe.Pointer(p)).Fs = r - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 0, 0x1) if r >= float64(0) && r < float64(5.3734845e+06) { (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r*libc.Float64FromFloat64(8.64e+07) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) @@ -13689,7 +13737,7 @@ func _parseDateOrTime(tls *libc.TLS, context uintptr, zDate uintptr, p uintptr) return 0 } else { if (_sqlite3StrICmp(tls, zDate, __ccgo_ts+1192) == 0 || _sqlite3StrICmp(tls, zDate, __ccgo_ts+1199) == 0) && _sqlite3NotPureFunc(tls, context) != 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) return _setDateTimeToCurrent(tls, context, p) } } @@ -13781,7 +13829,7 @@ func _computeHMS(tls *libc.TLS, p uintptr) { day_min = day_ms / int32(60000) (*TDateTime)(unsafe.Pointer(p)).Fm = day_min % int32(60) (*TDateTime)(unsafe.Pointer(p)).Fh = day_min / int32(60) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) } @@ -13803,7 +13851,7 @@ func _computeYMD_HMS(tls *libc.TLS, p uintptr) { func _clearYMD_HMS_TZ(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 } /* @@ -13904,9 +13952,9 @@ func _toLocaltime(tls *libc.TLS, p uintptr, pCtx uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FisError = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 1, 0x2) return SQLITE_OK } @@ -13954,13 +14002,13 @@ var _aXformType = [6]struct { FnName: uint8(5), FzName: [7]uint8{'m', 'o', 'n', 't', 'h'}, FrLimit: float32(176546), - FrXform: float32(2.592e+06), + FrXform: float32(libc.Float64FromFloat64(30) * libc.Float64FromFloat64(86400)), }, 5: { FnName: uint8(4), FzName: [7]uint8{'y', 'e', 'a', 'r'}, FrLimit: float32(14713), - FrXform: float32(3.1536e+07), + FrXform: float32(libc.Float64FromFloat64(365) * libc.Float64FromFloat64(86400)), }, } @@ -13974,15 +14022,15 @@ var _aXformType = [6]struct { func _autoAdjustDate(tls *libc.TLS, p uintptr) { var r float64 _ = r - if !((*TDateTime)(unsafe.Pointer(p)).FrawS != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + if !(int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } else { if (*TDateTime)(unsafe.Pointer(p)).Fs >= float64(int64(-libc.Int32FromInt32(21086676))*libc.Int64FromInt32(10000)) && (*TDateTime)(unsafe.Pointer(p)).Fs <= float64(libc.Int64FromInt32(25340230)*libc.Int64FromInt32(10000)+libc.Int64FromInt32(799)) { r = (*TDateTime)(unsafe.Pointer(p)).Fs*float64(1000) + float64(2.1086676e+14) _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } } @@ -13999,14 +14047,20 @@ func _autoAdjustDate(tls *libc.TLS, p uintptr) { // ** NNN.NNNN seconds // ** NNN months // ** NNN years +// ** +/-YYYY-MM-DD HH:MM:SS.SSS +// ** ceiling +// ** floor // ** start of month // ** start of year // ** start of week // ** start of day // ** weekday N // ** unixepoch +// ** auto // ** localtime // ** utc +// ** subsec +// ** subsecond // ** // ** Return 0 on success and 1 if there is any kind of error. If the error // ** is in a system call (i.e. localtime()), then an error message is written @@ -14017,12 +14071,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, bp := tls.Alloc(160) defer tls.Free(160) var Z, day Tsqlite3_int64 - var cnt, i, rc, x, y, v12, v2, v5, v7, v9 int32 - var iErr, iGuess, iOrigJD, v1 Ti64 - var rRounder, v10 float64 + var cnt, i, rc, x, y, v1, v10, v13, v3, v6, v8 int32 + var iErr, iGuess, iOrigJD, v2 Ti64 + var rRounder, v11 float64 var z0 uint8 var z2 uintptr - var v3, v6 bool + var v4, v7 bool var _ /* D at bp+64 */ int32 var _ /* M at bp+60 */ int32 var _ /* Y at bp+56 */ int32 @@ -14031,7 +14085,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, var _ /* new at bp+8 */ TDateTime var _ /* r at bp+0 */ float64 var _ /* tx at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v12, v2, v3, v5, v6, v7, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v11, v13, v2, v3, v4, v6, v7, v8 rc = int32(1) switch int32(_sqlite3UpperToLower[*(*uint8)(unsafe.Pointer(z))]) { case int32('a'): @@ -14048,6 +14102,33 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _autoAdjustDate(tls, p) rc = 0 } + case int32('c'): + /* + ** ceiling + ** + ** Resolve day-of-month overflow by rolling forward into the next + ** month. As this is the default action, this modifier is really + ** a no-op that is only included for symmetry. See "floor". + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1237) == 0 { + _computeJD(tls, p) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } + case int32('f'): + /* + ** floor + ** + ** Resolve day-of-month overflow by rolling back to the end of the + ** previous month. + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1245) == 0 { + _computeJD(tls, p) + *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64(int32((*TDateTime)(unsafe.Pointer(p)).FnFloor) * int32(86400000)) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + } case int32('j'): /* ** julianday @@ -14057,13 +14138,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** value in the allowed range of julian day numbers understood by ** SQLite (0..5373484.5) then the result will be NULL. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1237) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1251) == 0 { if idx > int32(1) { return int32(1) } /* IMP: R-31176-64601 */ - if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { rc = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } case int32('l'): @@ -14072,8 +14153,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Assuming the current time value is UTC (a.k.a. GMT), shift it to ** show local time. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1247) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - rc = _toLocaltime(tls, p, pCtx) + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1261) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x10>>4)) != 0 { + v1 = SQLITE_OK + } else { + v1 = _toLocaltime(tls, p, pCtx) + } + rc = v1 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 4, 0x10) } case int32('u'): /* @@ -14082,7 +14170,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Treat the current value of p->s as the number of ** seconds since 1970. Convert to a real julian day number. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1257) == 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1271) == 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { if idx > int32(1) { return int32(1) } /* IMP: R-49255-55373 */ @@ -14091,17 +14179,17 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(*(*float64)(unsafe.Pointer(bp)) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) rc = 0 } } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1267) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - if int32((*TDateTime)(unsafe.Pointer(p)).FtzSet) == 0 { /* Guess at the corresponding utc time */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1281) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x8>>3)) == 0 { /* Guess at the corresponding utc time */ cnt = 0 /* Guess is off by this much */ _computeJD(tls, p) - v1 = (*TDateTime)(unsafe.Pointer(p)).FiJD - iOrigJD = v1 - iGuess = v1 + v2 = (*TDateTime)(unsafe.Pointer(p)).FiJD + iOrigJD = v2 + iGuess = v2 iErr = 0 for { libc.Xmemset(tls, bp+8, 0, uint64(48)) @@ -14114,21 +14202,22 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, bp+8) iErr = (*(*TDateTime)(unsafe.Pointer(bp + 8))).FiJD - iOrigJD - goto _4 - _4: + goto _5 + _5: ; - if v3 = iErr != 0; v3 { - v2 = cnt + if v4 = iErr != 0; v4 { + v3 = cnt cnt++ } - if !(v3 && v2 < int32(3)) { + if !(v4 && v3 < int32(3)) { break } } libc.Xmemset(tls, p, 0, uint64(48)) (*TDateTime)(unsafe.Pointer(p)).FiJD = iGuess (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FtzSet = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) } rc = SQLITE_OK } @@ -14141,13 +14230,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** weekday N where 0==Sunday, 1==Monday, and so forth. If the ** date is already on the appropriate weekday, this is a no-op. */ - if v6 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1271, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v6 { - v5 = int32(*(*float64)(unsafe.Pointer(bp))) - n = v5 + if v7 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1285, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v7 { + v6 = int32(*(*float64)(unsafe.Pointer(bp))) + n = v6 } - if v6 && float64(v5) == *(*float64)(unsafe.Pointer(bp)) { + if v7 && float64(v6) == *(*float64)(unsafe.Pointer(bp)) { _computeYMD_HMS(tls, p) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) _computeJD(tls, p) Z = ((*TDateTime)(unsafe.Pointer(p)).FiJD + int64(129600000)) / int64(86400000) % int64(7) @@ -14171,9 +14260,9 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Show subsecond precision in the output of datetime() and ** unixepoch() and strftime('%s'). */ - if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1280, int32(9)) != 0 { + if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1294, int32(9)) != 0 { if Xsqlite3_stricmp(tls, z, __ccgo_ts+1192) == 0 || Xsqlite3_stricmp(tls, z, __ccgo_ts+1199) == 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) rc = 0 } break @@ -14184,23 +14273,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z += uintptr(9) _computeYMD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) - v7 = libc.Int32FromInt32(0) - (*TDateTime)(unsafe.Pointer(p)).Fm = v7 - (*TDateTime)(unsafe.Pointer(p)).Fh = v7 + v8 = libc.Int32FromInt32(0) + (*TDateTime)(unsafe.Pointer(p)).Fm = v8 + (*TDateTime)(unsafe.Pointer(p)).Fh = v8 (*TDateTime)(unsafe.Pointer(p)).Fs = float64(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1290) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1304) == 0 { (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1296) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1310) == 0 { (*TDateTime)(unsafe.Pointer(p)).FM = int32(1) (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1301) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1315) == 0 { rc = 0 } } @@ -14242,15 +14331,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } if int32(*(*uint8)(unsafe.Pointer(z + uintptr(n)))) == int32('-') { - if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1305, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1319, libc.VaList(bp+136, bp+56)) == int32(1) { break } - if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1309, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1323, libc.VaList(bp+136, bp+56)) == int32(1) { break } } - goto _8 - _8: + goto _9 + _9: ; n++ } @@ -14266,11 +14355,11 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } /* Must start with +/- */ if n == int32(5) { - if _getDigits(tls, z+1, __ccgo_ts+1313, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1327, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } } else { - if _getDigits(tls, z+1, __ccgo_ts+1325, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1339, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } z++ @@ -14292,13 +14381,14 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, *(*int32)(unsafe.Pointer(p + 12)) += *(*int32)(unsafe.Pointer(bp + 60)) } if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v9 + x = v10 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) _computeJD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) @@ -14342,7 +14432,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z++ } n = _sqlite3Strlen30(tls, z) - if n > int32(10) || n < int32(3) { + if n < int32(3) || n > int32(10) { break } if int32(_sqlite3UpperToLower[*(*uint8)(unsafe.Pointer(z + uintptr(n-int32(1))))]) == int32('s') { @@ -14350,11 +14440,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, p) if *(*float64)(unsafe.Pointer(bp)) < libc.Float64FromInt32(0) { - v10 = -libc.Float64FromFloat64(0.5) + v11 = -libc.Float64FromFloat64(0.5) } else { - v10 = +libc.Float64FromFloat64(0.5) + v11 = +libc.Float64FromFloat64(0.5) } - rRounder = v10 + rRounder = v11 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) i = 0 for { if !(i < int32(libc.Uint64FromInt64(96)/libc.Uint64FromInt64(16))) { @@ -14366,19 +14457,21 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 12)) += int32(*(*float64)(unsafe.Pointer(bp))) if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v12 + x = v13 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) case int32(5): /* Special processing to add years */ y = int32(*(*float64)(unsafe.Pointer(bp))) _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 8)) += y + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) break @@ -14388,8 +14481,8 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, rc = 0 break } - goto _11 - _11: + goto _12 + _12: ; i++ } @@ -14448,7 +14541,7 @@ func _isDate(tls *libc.TLS, context uintptr, argc int32, argv uintptr, p uintptr i++ } _computeJD(tls, p) - if (*TDateTime)(unsafe.Pointer(p)).FisError != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x2>>1)) != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { return int32(1) } if argc == int32(1) && (*TDateTime)(unsafe.Pointer(p)).FvalidYMD != 0 && (*TDateTime)(unsafe.Pointer(p)).FD > int32(28) { @@ -14495,7 +14588,7 @@ func _unixepochFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _ /* x at bp+0 */ TDateTime if _isDate(tls, context, argc, argv, bp) == 0 { _computeJD(tls, bp) - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { Xsqlite3_result_double(tls, context, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000)) } else { Xsqlite3_result_int64(tls, context, (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/int64(1000)-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000)) @@ -14540,7 +14633,7 @@ func _datetimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(15)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(16)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(17)] = uint8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(18)] = uint8(int32('0') + s/int32(10000)%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(19)] = uint8(int32('0') + s/int32(1000)%int32(10)) @@ -14588,7 +14681,7 @@ func _timeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(3)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(4)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(5)] = uint8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(6)] = uint8(int32('0') + s/int32(10000)%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(7)] = uint8(int32('0') + s/int32(1000)%int32(10)) @@ -14649,6 +14742,57 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } +// C documentation +// +// /* +// ** Compute the number of days after the most recent January 1. +// ** +// ** In other words, compute the zero-based day number for the +// ** current year: +// ** +// ** Jan01 = 0, Jan02 = 1, ..., Jan31 = 30, Feb01 = 31, ... +// ** Dec31 = 364 or 365. +// */ +func _daysAfterJan01(tls *libc.TLS, pDate uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* jan01 at bp+0 */ TDateTime + *(*TDateTime)(unsafe.Pointer(bp)) = *(*TDateTime)(unsafe.Pointer(pDate)) + (*(*TDateTime)(unsafe.Pointer(bp))).FvalidJD = uint8(0) + (*(*TDateTime)(unsafe.Pointer(bp))).FM = int32(1) + (*(*TDateTime)(unsafe.Pointer(bp))).FD = int32(1) + _computeJD(tls, bp) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD - (*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Monday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Monday, 1=Tuesday, 2=Wednesday, ..., 6=Sunday. +// */ +func _daysAfterMonday(tls *libc.TLS, pDate uintptr) (r int32) { + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(43200000))/libc.Int64FromInt32(86400000)) % int32(7) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Sunday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Sunday, 1=Monday, 2=Tues, ..., 6=Saturday +// */ +func _daysAfterSunday(tls *libc.TLS, pDate uintptr) (r int32) { + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)) % int32(7) +} + // C documentation // // /* @@ -14656,33 +14800,48 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { // ** // ** Return a string described by FORMAT. Conversions as follows: // ** -// ** %d day of month +// ** %d day of month 01-31 +// ** %e day of month 1-31 // ** %f ** fractional seconds SS.SSS +// ** %F ISO date. YYYY-MM-DD +// ** %G ISO year corresponding to %V 0000-9999. +// ** %g 2-digit ISO year corresponding to %V 00-99 // ** %H hour 00-24 -// ** %j day of year 000-366 +// ** %k hour 0-24 (leading zero converted to space) +// ** %I hour 01-12 +// ** %j day of year 001-366 // ** %J ** julian day number +// ** %l hour 1-12 (leading zero converted to space) // ** %m month 01-12 // ** %M minute 00-59 +// ** %p "am" or "pm" +// ** %P "AM" or "PM" +// ** %R time as HH:MM // ** %s seconds since 1970-01-01 // ** %S seconds 00-59 -// ** %w day of week 0-6 Sunday==0 -// ** %W week of year 00-53 +// ** %T time as HH:MM:SS +// ** %u day of week 1-7 Monday==1, Sunday==7 +// ** %w day of week 0-6 Sunday==0, Monday==1 +// ** %U week of year 00-53 (First Sunday is start of week 01) +// ** %V week of year 01-53 (First week containing Thursday is week 01) +// ** %W week of year 00-53 (First Monday is start of week 01) // ** %Y year 0000-9999 // ** %% % // */ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { - bp := tls.Alloc(160) - defer tls.Free(160) + bp := tls.Alloc(208) + defer tls.Free(208) var c, cf uint8 var db, zFmt, v3, v4, v5, v6, v7 uintptr - var h, nDay, wd int32 + var h int32 var i, j, v2 Tsize_t var iS Ti64 var s float64 var _ /* sRes at bp+48 */ Tsqlite3_str var _ /* x at bp+0 */ TDateTime + var _ /* y at bp+128 */ TDateTime var _ /* y at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, nDay, s, wd, zFmt, v2, v3, v4, v5, v6, v7 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, s, zFmt, v2, v3, v4, v5, v6, v7 if argc == 0 { return } @@ -14715,28 +14874,41 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { fallthrough case int32('e'): if int32(cf) == int32('d') { - v3 = __ccgo_ts + 1337 + v3 = __ccgo_ts + 1351 } else { - v3 = __ccgo_ts + 1342 + v3 = __ccgo_ts + 1356 } - Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) - case int32('f'): + Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('f'): /* Fractional seconds. (Non-standard) */ s = (*(*TDateTime)(unsafe.Pointer(bp))).Fs if s > float64(59.999) { s = float64(59.999) } - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1346, libc.VaList(bp+136, s)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1360, libc.VaList(bp+184, s)) case int32('F'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1353, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1367, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('G'): /* Fall thru */ + fallthrough + case int32('g'): + *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Move y so that it is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidYMD = uint8(0) + _computeYMD(tls, bp+80) + if int32(cf) == int32('g') { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY%int32(100))) + } else { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1382, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY)) + } case int32('H'): fallthrough case int32('k'): if int32(cf) == int32('H') { - v4 = __ccgo_ts + 1337 + v4 = __ccgo_ts + 1351 } else { - v4 = __ccgo_ts + 1342 + v4 = __ccgo_ts + 1356 } - Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) + Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) case int32('I'): /* Fall thru */ fallthrough case int32('l'): @@ -14748,73 +14920,71 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { h = int32(12) } if int32(cf) == int32('I') { - v5 = __ccgo_ts + 1337 - } else { - v5 = __ccgo_ts + 1342 - } - Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+136, h)) - case int32('W'): /* Fall thru */ - fallthrough - case int32('j'): /* Number of days since 1st day of year */ - *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidJD = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FM = int32(1) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FD = int32(1) - _computeJD(tls, bp+80) - nDay = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) - if int32(cf) == int32('W') { /* 0=Monday, 1=Tuesday, ... 6=Sunday */ - wd = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000) % libc.Int64FromInt32(7)) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1337, libc.VaList(bp+136, (nDay+int32(7)-wd)/int32(7))) + v5 = __ccgo_ts + 1351 } else { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1368, libc.VaList(bp+136, nDay+int32(1))) + v5 = __ccgo_ts + 1356 } - case int32('J'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1373, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) + Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+184, h)) + case int32('j'): /* Day of year. Jan01==1, Jan02==2, and so forth */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1387, libc.VaList(bp+184, _daysAfterJan01(tls, bp)+int32(1))) + case int32('J'): /* Julian day number. (Non-standard) */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1392, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) case int32('m'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1337, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) case int32('M'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1337, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('p'): /* Fall thru */ fallthrough case int32('P'): if (*(*TDateTime)(unsafe.Pointer(bp))).Fh >= int32(12) { if int32(cf) == int32('p') { - v6 = __ccgo_ts + 1379 + v6 = __ccgo_ts + 1398 } else { - v6 = __ccgo_ts + 1382 + v6 = __ccgo_ts + 1401 } Xsqlite3_str_append(tls, bp+48, v6, int32(2)) } else { if int32(cf) == int32('p') { - v7 = __ccgo_ts + 1385 + v7 = __ccgo_ts + 1404 } else { - v7 = __ccgo_ts + 1388 + v7 = __ccgo_ts + 1407 } Xsqlite3_str_append(tls, bp+48, v7, int32(2)) } case int32('R'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1391, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1410, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('s'): - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1401, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1420, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) } else { iS = (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/libc.Int64FromInt32(1000) - libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1406, libc.VaList(bp+136, iS)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1425, libc.VaList(bp+184, iS)) } case int32('S'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1337, libc.VaList(bp+136, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) case int32('T'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1411, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) - case int32('u'): /* Fall thru */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1430, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + case int32('u'): /* Day of week. 1 to 7. Monday==1, Sunday==7 */ fallthrough - case int32('w'): - c = uint8(int32(uint8(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)%libc.Int64FromInt32(7))) + int32('0')) + case int32('w'): /* Day of week. 0 to 6. Sunday==0, Monday==1 */ + c = uint8(int32(uint8(_daysAfterSunday(tls, bp))) + int32('0')) if int32(c) == int32('0') && int32(cf) == int32('u') { c = uint8('7') } Xsqlite3_str_appendchar(tls, bp+48, int32(1), c) + case int32('U'): /* Week num. 00-53. First Sun of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterSunday(tls, bp)+int32(7))/int32(7))) + case int32('V'): /* Week num. 01-53. First week with a Thur is week 01 */ + *(*TDateTime)(unsafe.Pointer(bp + 128)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Adjust y so that is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FvalidYMD = uint8(0) + _computeYMD(tls, bp+128) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, _daysAfterJan01(tls, bp+128)/int32(7)+int32(1))) + case int32('W'): /* Week num. 00-53. First Mon of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterMonday(tls, bp)+int32(7))/int32(7))) case int32('Y'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1426, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1382, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) case int32('%'): Xsqlite3_str_appendchar(tls, bp+48, int32(1), uint8('%')) default: @@ -14967,12 +15137,10 @@ func _timediffFunc(tls *libc.TLS, context uintptr, NotUsed1 int32, argv uintptr) p2 = bp *(*Tsqlite3_int64)(unsafe.Pointer(p2)) = Tsqlite3_int64(uint64(*(*Tsqlite3_int64)(unsafe.Pointer(p2))) + libc.Uint64FromInt32(1486995408)*libc.Uint64FromInt32(100000)) } - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidYMD = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidHMS = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidTZ = uint8(0) + _clearYMD_HMS_TZ(tls, bp) _computeYMD_HMS(tls, bp) _sqlite3StrAccumInit(tls, bp+96, uintptr(0), uintptr(0), 0, int32(100)) - Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1431, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) + Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1445, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) _sqlite3ResultStrAccum(tls, context, bp+96) } @@ -15005,55 +15173,55 @@ var _aDateTimeFuncs = [10]TFuncDef{ FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1237, + FzName: __ccgo_ts + 1251, }, 1: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1257, + FzName: __ccgo_ts + 1271, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1465, + FzName: __ccgo_ts + 1479, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1470, + FzName: __ccgo_ts + 1484, }, 4: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1475, + FzName: __ccgo_ts + 1489, }, 5: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1484, + FzName: __ccgo_ts + 1498, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1493, + FzName: __ccgo_ts + 1507, }, 7: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1502, + FzName: __ccgo_ts + 1516, }, 8: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1515, + FzName: __ccgo_ts + 1529, }, 9: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1533, + FzName: __ccgo_ts + 1547, }, } @@ -15724,7 +15892,7 @@ func _sqlite3MemMalloc(tls *libc.TLS, nByte int32) (r uintptr) { *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1546, libc.VaList(bp+8, nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1560, libc.VaList(bp+8, nByte)) } return p } @@ -15786,7 +15954,7 @@ func _sqlite3MemRealloc(tls *libc.TLS, pPrior uintptr, nByte int32) (r uintptr) *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1584, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1598, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) } return p } @@ -17154,7 +17322,7 @@ func _sqlite3OomFault(tls *libc.TLS, db uintptr) (r uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++ (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = uint16(0) if (*Tsqlite3)(unsafe.Pointer(db)).FpParse != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1634, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) pParse = (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).FpOuterParse for { @@ -17576,7 +17744,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li v3 = int32(*(*uint8)(unsafe.Pointer(v4))) c = v3 if v3 == 0 { - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1634, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1648, int32(1)) break } /* Find out what flags are present */ @@ -17991,9 +18159,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial != 0 { if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial) == int32(2) { if flag_zeropad != 0 { - v57 = __ccgo_ts + 1636 + v57 = __ccgo_ts + 1650 } else { - v57 = __ccgo_ts + 1641 + v57 = __ccgo_ts + 1655 } bufpt = v57 length = _sqlite3Strlen30(tls, bufpt) @@ -18004,7 +18172,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP = int32(1000) (*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fn = int32(1) } else { - libc.Xmemcpy(tls, bp, __ccgo_ts+1645, uint64(5)) + libc.Xmemcpy(tls, bp, __ccgo_ts+1659, uint64(5)) bufpt = bp if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fsign) == int32('-') { /* no-op */ @@ -18026,14 +18194,12 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li prefix = flag_prefix } exp = (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP - int32(1) - if int32(xtype) == int32(etGENERIC) && precision > 0 { - precision-- - } /* ** If the field type is etGENERIC, then convert to either etEXP ** or etFLOAT, as appropriate. */ if int32(xtype) == int32(etGENERIC) { + precision-- flag_rtz = libc.BoolUint8(!(flag_alternateform != 0)) if exp < -int32(4) || exp > precision { xtype = uint8(etEXP) @@ -18339,7 +18505,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li bufpt = libc.VaUintptr(&ap) } if bufpt == uintptr(0) { - bufpt = __ccgo_ts + 1650 + bufpt = __ccgo_ts + 1664 } else { if int32(xtype) == int32(etDYNSTRING) { if (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnChar == uint32(0) && (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FmxAlloc != 0 && width == 0 && precision < 0 && int32((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FaccError) == 0 { @@ -18392,6 +18558,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } else { length = int32(0x7fffffff) & int32(libc.Xstrlen(tls, bufpt)) } + goto adjust_width_for_utf8 adjust_width_for_utf8: ; if flag_altform2 != 0 && width > 0 { @@ -18426,9 +18593,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li isnull = libc.BoolInt32(escarg == uintptr(0)) if isnull != 0 { if int32(xtype) == int32(etSQLESCAPE2) { - v98 = __ccgo_ts + 1651 + v98 = __ccgo_ts + 1665 } else { - v98 = __ccgo_ts + 1656 + v98 = __ccgo_ts + 1670 } escarg = v98 } @@ -18546,7 +18713,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*TSrcItem)(unsafe.Pointer(pItem)).FzName != 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1663, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1677, int32(1)) } Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzName) } else { @@ -18554,10 +18721,15 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzAlias) } else { pSel = (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect + /* Because of tag-20240424-1 */ if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_NestedFrom) != 0 { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1665, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1679, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) } else { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1675, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_MultiValue) != 0 { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1689, libc.VaList(bp+128, *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pItem)).Fu1)))) + } else { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1710, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + } } } } @@ -18836,7 +19008,7 @@ func _sqlite3ResultStrAccum(tls *libc.TLS, pCtx uintptr, p uintptr) { if int32((*TStrAccum)(unsafe.Pointer(p)).FprintfFlags)&int32(SQLITE_PRINTF_MALLOCED) != 0 { Xsqlite3_result_text(tls, pCtx, (*TStrAccum)(unsafe.Pointer(p)).FzText, int32((*TStrAccum)(unsafe.Pointer(p)).FnChar), __ccgo_fp(_sqlite3OomClear)) } else { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1650, 0, libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1664, 0, libc.UintptrFromInt32(0)) Xsqlite3_str_reset(tls, p) } } @@ -20131,6 +20303,7 @@ func _sqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc Tu8) (r in (*TMem)(unsafe.Pointer(pMem)).Fz = zOut (*TMem)(unsafe.Pointer(pMem)).FzMalloc = (*TMem)(unsafe.Pointer(pMem)).Fz (*TMem)(unsafe.Pointer(pMem)).FszMalloc = _sqlite3DbMallocSize(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).Fz) + goto translate_out translate_out: ; return SQLITE_OK @@ -20647,6 +20820,60 @@ func _sqlite3DequoteExpr(tls *libc.TLS, p uintptr) { _sqlite3Dequote(tls, *(*uintptr)(unsafe.Pointer(p + 8))) } +// C documentation +// +// /* +// ** Expression p is a QNUMBER (quoted number). Dequote the value in p->u.zToken +// ** and set the type to INTEGER or FLOAT. "Quoted" integers or floats are those +// ** that contain '_' characters that must be removed before further processing. +// */ +func _sqlite3DequoteNumber(tls *libc.TLS, pParse uintptr, p uintptr) { + bp := tls.Alloc(32) + defer tls.Free(32) + var bHex int32 + var pIn, pOut, v1, v3 uintptr + var _ /* iValue at bp+0 */ int32 + _, _, _, _, _ = bHex, pIn, pOut, v1, v3 + if p != 0 { + pIn = *(*uintptr)(unsafe.Pointer(p + 8)) + pOut = *(*uintptr)(unsafe.Pointer(p + 8)) + bHex = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(pIn + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(pIn + 1))) == int32('X'))) + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + for { + if int32(*(*uint8)(unsafe.Pointer(pIn))) != int32('_') { + v3 = pOut + pOut++ + *(*uint8)(unsafe.Pointer(v3)) = *(*uint8)(unsafe.Pointer(pIn)) + if int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('E') || int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('.') { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_FLOAT) + } + } else { + if bHex == 0 && (!(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1))))])&libc.Int32FromInt32(0x04) != 0) || !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + 1))])&libc.Int32FromInt32(0x04) != 0)) || bHex == int32(1) && (!(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1))))])&libc.Int32FromInt32(0x08) != 0) || !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + 1))])&libc.Int32FromInt32(0x08) != 0)) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1724, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(p + 8)))) + } + } + goto _2 + _2: + ; + v1 = pIn + pIn++ + if !(*(*uint8)(unsafe.Pointer(v1)) != 0) { + break + } + } + if bHex != 0 { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + } + /* tag-20240227-a: If after dequoting, the number is an integer that + ** fits in 32 bits, then it must be converted into EP_IntValue. Other + ** parts of the code expect this. See also tag-20240227-b. */ + if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_INTEGER) && _sqlite3GetInt32(tls, *(*uintptr)(unsafe.Pointer(p + 8)), bp) != 0 { + *(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(p)).Fu)) = *(*int32)(unsafe.Pointer(bp)) + *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(EP_IntValue) + } + } +} + // C documentation // // /* @@ -21006,6 +21233,7 @@ func _sqlite3AtoF(tls *libc.TLS, z uintptr, pResult uintptr, length int32, enc T for z < zEnd && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z))])&int32(0x01) != 0 { z += uintptr(incr) } + goto do_atof_calc do_atof_calc: ; /* Zero is a special case */ @@ -21111,6 +21339,7 @@ do_atof_calc: if sign < 0 { *(*float64)(unsafe.Pointer(pResult)) = -*(*float64)(unsafe.Pointer(pResult)) } + goto atof_return atof_return: ; /* return true if number and no extra non-whitespace characters after */ @@ -21195,7 +21424,7 @@ func _compare2pow63(tls *libc.TLS, zNum uintptr, incr int32) (r int32) { _, _, _ = c, i, pow63 c = 0 /* 012345678901234567 */ - pow63 = __ccgo_ts + 1689 + pow63 = __ccgo_ts + 1749 i = 0 for { if !(c == 0 && i < int32(18)) { @@ -21422,7 +21651,7 @@ func _sqlite3DecOrHexToI64(tls *libc.TLS, z uintptr, pOut uintptr) (r int32) { } return 0 } else { - n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1708)) + n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1768)) if *(*uint8)(unsafe.Pointer(z + uintptr(n))) != 0 { n++ } @@ -21580,7 +21809,7 @@ func _sqlite3FpDecode(tls *libc.TLS, p uintptr, _r float64, iRound int32, mxRoun (*TFpDecode)(unsafe.Pointer(p)).Fsign = uint8('+') (*TFpDecode)(unsafe.Pointer(p)).Fn = int32(1) (*TFpDecode)(unsafe.Pointer(p)).FiDP = int32(1) - (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1724 + (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1784 return } else { (*TFpDecode)(unsafe.Pointer(p)).Fsign = uint8('+') @@ -22124,7 +22353,7 @@ func _sqlite3HexToBlob(tls *libc.TLS, db uintptr, z uintptr, n int32) (r uintptr func _logBadConnection(tls *libc.TLS, zType uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1726, libc.VaList(bp+8, zType)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1786, libc.VaList(bp+8, zType)) } // C documentation @@ -22147,13 +22376,13 @@ func _sqlite3SafetyCheckOk(tls *libc.TLS, db uintptr) (r int32) { var eOpenState Tu8 _ = eOpenState if db == uintptr(0) { - _logBadConnection(tls, __ccgo_ts+1651) + _logBadConnection(tls, __ccgo_ts+1665) return 0 } eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_OPEN) { if _sqlite3SafetyCheckSickOrOk(tls, db) != 0 { - _logBadConnection(tls, __ccgo_ts+1771) + _logBadConnection(tls, __ccgo_ts+1831) } return 0 } else { @@ -22167,7 +22396,7 @@ func _sqlite3SafetyCheckSickOrOk(tls *libc.TLS, db uintptr) (r int32) { _ = eOpenState eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_SICK) && int32(eOpenState) != int32(SQLITE_STATE_OPEN) && int32(eOpenState) != int32(SQLITE_STATE_BUSY) { - _logBadConnection(tls, __ccgo_ts+1780) + _logBadConnection(tls, __ccgo_ts+1840) return 0 } else { return int32(1) @@ -22871,196 +23100,196 @@ func _sqlite3OpcodeName(tls *libc.TLS, i int32) (r uintptr) { } var _azName = [190]uintptr{ - 0: __ccgo_ts + 1788, - 1: __ccgo_ts + 1798, - 2: __ccgo_ts + 1809, - 3: __ccgo_ts + 1821, - 4: __ccgo_ts + 1832, - 5: __ccgo_ts + 1844, - 6: __ccgo_ts + 1851, - 7: __ccgo_ts + 1859, - 8: __ccgo_ts + 1867, - 9: __ccgo_ts + 1872, - 10: __ccgo_ts + 1877, - 11: __ccgo_ts + 1883, - 12: __ccgo_ts + 1897, - 13: __ccgo_ts + 1903, - 14: __ccgo_ts + 1913, - 15: __ccgo_ts + 1918, - 16: __ccgo_ts + 1923, - 17: __ccgo_ts + 1926, - 18: __ccgo_ts + 1932, - 19: __ccgo_ts + 1939, - 20: __ccgo_ts + 1943, - 21: __ccgo_ts + 1953, - 22: __ccgo_ts + 1960, - 23: __ccgo_ts + 1967, - 24: __ccgo_ts + 1974, - 25: __ccgo_ts + 1981, - 26: __ccgo_ts + 1991, - 27: __ccgo_ts + 2000, - 28: __ccgo_ts + 2011, - 29: __ccgo_ts + 2020, - 30: __ccgo_ts + 2026, - 31: __ccgo_ts + 2036, - 32: __ccgo_ts + 2046, - 33: __ccgo_ts + 2051, - 34: __ccgo_ts + 2061, - 35: __ccgo_ts + 2072, - 36: __ccgo_ts + 2077, - 37: __ccgo_ts + 2084, - 38: __ccgo_ts + 2095, - 39: __ccgo_ts + 2100, - 40: __ccgo_ts + 2105, - 41: __ccgo_ts + 2111, - 42: __ccgo_ts + 2117, - 43: __ccgo_ts + 2123, - 44: __ccgo_ts + 2126, - 45: __ccgo_ts + 2130, - 46: __ccgo_ts + 2136, - 47: __ccgo_ts + 2147, - 48: __ccgo_ts + 2158, - 49: __ccgo_ts + 2166, - 50: __ccgo_ts + 2175, - 51: __ccgo_ts + 2182, - 52: __ccgo_ts + 2190, - 53: __ccgo_ts + 2193, - 54: __ccgo_ts + 2196, - 55: __ccgo_ts + 2199, - 56: __ccgo_ts + 2202, - 57: __ccgo_ts + 2205, - 58: __ccgo_ts + 2208, - 59: __ccgo_ts + 2215, - 60: __ccgo_ts + 2221, - 61: __ccgo_ts + 2231, - 62: __ccgo_ts + 2244, - 63: __ccgo_ts + 2255, - 64: __ccgo_ts + 2261, - 65: __ccgo_ts + 2268, - 66: __ccgo_ts + 2277, - 67: __ccgo_ts + 2286, - 68: __ccgo_ts + 2293, - 69: __ccgo_ts + 2306, - 70: __ccgo_ts + 2317, - 71: __ccgo_ts + 2322, - 72: __ccgo_ts + 2330, - 73: __ccgo_ts + 2336, - 74: __ccgo_ts + 2343, - 75: __ccgo_ts + 2355, - 76: __ccgo_ts + 2360, - 77: __ccgo_ts + 2369, - 78: __ccgo_ts + 2374, - 79: __ccgo_ts + 2383, - 80: __ccgo_ts + 2388, - 81: __ccgo_ts + 2393, - 82: __ccgo_ts + 2399, - 83: __ccgo_ts + 2407, - 84: __ccgo_ts + 2415, - 85: __ccgo_ts + 2425, - 86: __ccgo_ts + 2433, - 87: __ccgo_ts + 2440, - 88: __ccgo_ts + 2453, - 89: __ccgo_ts + 2458, - 90: __ccgo_ts + 2470, - 91: __ccgo_ts + 2478, - 92: __ccgo_ts + 2485, - 93: __ccgo_ts + 2496, - 94: __ccgo_ts + 2503, - 95: __ccgo_ts + 2510, - 96: __ccgo_ts + 2520, - 97: __ccgo_ts + 2529, - 98: __ccgo_ts + 2540, - 99: __ccgo_ts + 2546, - 100: __ccgo_ts + 2557, - 101: __ccgo_ts + 2567, - 102: __ccgo_ts + 2577, - 103: __ccgo_ts + 2584, - 104: __ccgo_ts + 2590, - 105: __ccgo_ts + 2600, - 106: __ccgo_ts + 2611, - 107: __ccgo_ts + 2615, - 108: __ccgo_ts + 2624, - 109: __ccgo_ts + 2633, - 110: __ccgo_ts + 2640, - 111: __ccgo_ts + 2650, - 112: __ccgo_ts + 2657, - 113: __ccgo_ts + 2666, - 114: __ccgo_ts + 2676, - 115: __ccgo_ts + 2683, - 116: __ccgo_ts + 2691, - 117: __ccgo_ts + 2705, - 118: __ccgo_ts + 2713, - 119: __ccgo_ts + 2727, - 120: __ccgo_ts + 2738, - 121: __ccgo_ts + 2751, - 122: __ccgo_ts + 2762, - 123: __ccgo_ts + 2768, - 124: __ccgo_ts + 2780, - 125: __ccgo_ts + 2789, - 126: __ccgo_ts + 2797, - 127: __ccgo_ts + 2806, - 128: __ccgo_ts + 2815, - 129: __ccgo_ts + 2822, - 130: __ccgo_ts + 2830, - 131: __ccgo_ts + 2837, - 132: __ccgo_ts + 2848, - 133: __ccgo_ts + 2862, - 134: __ccgo_ts + 2873, - 135: __ccgo_ts + 2881, - 136: __ccgo_ts + 2887, - 137: __ccgo_ts + 2895, - 138: __ccgo_ts + 2903, - 139: __ccgo_ts + 2913, - 140: __ccgo_ts + 2926, - 141: __ccgo_ts + 2936, - 142: __ccgo_ts + 2949, - 143: __ccgo_ts + 2958, - 144: __ccgo_ts + 2969, - 145: __ccgo_ts + 2977, - 146: __ccgo_ts + 2983, - 147: __ccgo_ts + 2995, - 148: __ccgo_ts + 3007, - 149: __ccgo_ts + 3015, - 150: __ccgo_ts + 3027, - 151: __ccgo_ts + 3040, - 152: __ccgo_ts + 3050, - 153: __ccgo_ts + 3060, - 154: __ccgo_ts + 3065, - 155: __ccgo_ts + 3077, - 156: __ccgo_ts + 3089, - 157: __ccgo_ts + 3099, - 158: __ccgo_ts + 3105, - 159: __ccgo_ts + 3115, - 160: __ccgo_ts + 3122, - 161: __ccgo_ts + 3134, - 162: __ccgo_ts + 3145, - 163: __ccgo_ts + 3153, - 164: __ccgo_ts + 3162, - 165: __ccgo_ts + 3171, - 166: __ccgo_ts + 3180, - 167: __ccgo_ts + 3187, - 168: __ccgo_ts + 3198, - 169: __ccgo_ts + 3211, - 170: __ccgo_ts + 3221, - 171: __ccgo_ts + 3228, - 172: __ccgo_ts + 3236, - 173: __ccgo_ts + 3245, - 174: __ccgo_ts + 3251, - 175: __ccgo_ts + 3258, - 176: __ccgo_ts + 3266, - 177: __ccgo_ts + 3274, - 178: __ccgo_ts + 3282, - 179: __ccgo_ts + 3292, - 180: __ccgo_ts + 3301, - 181: __ccgo_ts + 3312, - 182: __ccgo_ts + 3323, - 183: __ccgo_ts + 3334, - 184: __ccgo_ts + 3344, - 185: __ccgo_ts + 3350, - 186: __ccgo_ts + 3361, - 187: __ccgo_ts + 3372, - 188: __ccgo_ts + 3377, - 189: __ccgo_ts + 3385, + 0: __ccgo_ts + 1848, + 1: __ccgo_ts + 1858, + 2: __ccgo_ts + 1869, + 3: __ccgo_ts + 1881, + 4: __ccgo_ts + 1892, + 5: __ccgo_ts + 1904, + 6: __ccgo_ts + 1911, + 7: __ccgo_ts + 1919, + 8: __ccgo_ts + 1927, + 9: __ccgo_ts + 1932, + 10: __ccgo_ts + 1937, + 11: __ccgo_ts + 1943, + 12: __ccgo_ts + 1957, + 13: __ccgo_ts + 1963, + 14: __ccgo_ts + 1973, + 15: __ccgo_ts + 1978, + 16: __ccgo_ts + 1983, + 17: __ccgo_ts + 1986, + 18: __ccgo_ts + 1992, + 19: __ccgo_ts + 1999, + 20: __ccgo_ts + 2003, + 21: __ccgo_ts + 2013, + 22: __ccgo_ts + 2020, + 23: __ccgo_ts + 2027, + 24: __ccgo_ts + 2034, + 25: __ccgo_ts + 2041, + 26: __ccgo_ts + 2051, + 27: __ccgo_ts + 2060, + 28: __ccgo_ts + 2071, + 29: __ccgo_ts + 2080, + 30: __ccgo_ts + 2086, + 31: __ccgo_ts + 2096, + 32: __ccgo_ts + 2106, + 33: __ccgo_ts + 2111, + 34: __ccgo_ts + 2125, + 35: __ccgo_ts + 2136, + 36: __ccgo_ts + 2141, + 37: __ccgo_ts + 2148, + 38: __ccgo_ts + 2159, + 39: __ccgo_ts + 2164, + 40: __ccgo_ts + 2169, + 41: __ccgo_ts + 2175, + 42: __ccgo_ts + 2181, + 43: __ccgo_ts + 2187, + 44: __ccgo_ts + 2190, + 45: __ccgo_ts + 2194, + 46: __ccgo_ts + 2200, + 47: __ccgo_ts + 2211, + 48: __ccgo_ts + 2222, + 49: __ccgo_ts + 2230, + 50: __ccgo_ts + 2239, + 51: __ccgo_ts + 2246, + 52: __ccgo_ts + 2254, + 53: __ccgo_ts + 2257, + 54: __ccgo_ts + 2260, + 55: __ccgo_ts + 2263, + 56: __ccgo_ts + 2266, + 57: __ccgo_ts + 2269, + 58: __ccgo_ts + 2272, + 59: __ccgo_ts + 2279, + 60: __ccgo_ts + 2285, + 61: __ccgo_ts + 2295, + 62: __ccgo_ts + 2308, + 63: __ccgo_ts + 2319, + 64: __ccgo_ts + 2325, + 65: __ccgo_ts + 2332, + 66: __ccgo_ts + 2341, + 67: __ccgo_ts + 2350, + 68: __ccgo_ts + 2357, + 69: __ccgo_ts + 2370, + 70: __ccgo_ts + 2381, + 71: __ccgo_ts + 2386, + 72: __ccgo_ts + 2394, + 73: __ccgo_ts + 2400, + 74: __ccgo_ts + 2407, + 75: __ccgo_ts + 2419, + 76: __ccgo_ts + 2424, + 77: __ccgo_ts + 2433, + 78: __ccgo_ts + 2438, + 79: __ccgo_ts + 2447, + 80: __ccgo_ts + 2452, + 81: __ccgo_ts + 2457, + 82: __ccgo_ts + 2463, + 83: __ccgo_ts + 2471, + 84: __ccgo_ts + 2479, + 85: __ccgo_ts + 2489, + 86: __ccgo_ts + 2497, + 87: __ccgo_ts + 2504, + 88: __ccgo_ts + 2517, + 89: __ccgo_ts + 2522, + 90: __ccgo_ts + 2534, + 91: __ccgo_ts + 2542, + 92: __ccgo_ts + 2549, + 93: __ccgo_ts + 2560, + 94: __ccgo_ts + 2567, + 95: __ccgo_ts + 2574, + 96: __ccgo_ts + 2584, + 97: __ccgo_ts + 2593, + 98: __ccgo_ts + 2604, + 99: __ccgo_ts + 2610, + 100: __ccgo_ts + 2621, + 101: __ccgo_ts + 2631, + 102: __ccgo_ts + 2641, + 103: __ccgo_ts + 2648, + 104: __ccgo_ts + 2654, + 105: __ccgo_ts + 2664, + 106: __ccgo_ts + 2675, + 107: __ccgo_ts + 2679, + 108: __ccgo_ts + 2688, + 109: __ccgo_ts + 2697, + 110: __ccgo_ts + 2704, + 111: __ccgo_ts + 2714, + 112: __ccgo_ts + 2721, + 113: __ccgo_ts + 2730, + 114: __ccgo_ts + 2740, + 115: __ccgo_ts + 2747, + 116: __ccgo_ts + 2755, + 117: __ccgo_ts + 2769, + 118: __ccgo_ts + 2777, + 119: __ccgo_ts + 2791, + 120: __ccgo_ts + 2802, + 121: __ccgo_ts + 2815, + 122: __ccgo_ts + 2826, + 123: __ccgo_ts + 2832, + 124: __ccgo_ts + 2844, + 125: __ccgo_ts + 2853, + 126: __ccgo_ts + 2861, + 127: __ccgo_ts + 2870, + 128: __ccgo_ts + 2879, + 129: __ccgo_ts + 2886, + 130: __ccgo_ts + 2894, + 131: __ccgo_ts + 2901, + 132: __ccgo_ts + 2912, + 133: __ccgo_ts + 2926, + 134: __ccgo_ts + 2937, + 135: __ccgo_ts + 2945, + 136: __ccgo_ts + 2951, + 137: __ccgo_ts + 2959, + 138: __ccgo_ts + 2967, + 139: __ccgo_ts + 2977, + 140: __ccgo_ts + 2990, + 141: __ccgo_ts + 3000, + 142: __ccgo_ts + 3013, + 143: __ccgo_ts + 3022, + 144: __ccgo_ts + 3033, + 145: __ccgo_ts + 3041, + 146: __ccgo_ts + 3047, + 147: __ccgo_ts + 3059, + 148: __ccgo_ts + 3071, + 149: __ccgo_ts + 3079, + 150: __ccgo_ts + 3091, + 151: __ccgo_ts + 3104, + 152: __ccgo_ts + 3114, + 153: __ccgo_ts + 3124, + 154: __ccgo_ts + 3129, + 155: __ccgo_ts + 3141, + 156: __ccgo_ts + 3153, + 157: __ccgo_ts + 3163, + 158: __ccgo_ts + 3169, + 159: __ccgo_ts + 3179, + 160: __ccgo_ts + 3186, + 161: __ccgo_ts + 3198, + 162: __ccgo_ts + 3209, + 163: __ccgo_ts + 3217, + 164: __ccgo_ts + 3226, + 165: __ccgo_ts + 3235, + 166: __ccgo_ts + 3244, + 167: __ccgo_ts + 3251, + 168: __ccgo_ts + 3262, + 169: __ccgo_ts + 3275, + 170: __ccgo_ts + 3285, + 171: __ccgo_ts + 3292, + 172: __ccgo_ts + 3300, + 173: __ccgo_ts + 3309, + 174: __ccgo_ts + 3315, + 175: __ccgo_ts + 3322, + 176: __ccgo_ts + 3330, + 177: __ccgo_ts + 3338, + 178: __ccgo_ts + 3346, + 179: __ccgo_ts + 3356, + 180: __ccgo_ts + 3365, + 181: __ccgo_ts + 3376, + 182: __ccgo_ts + 3387, + 183: __ccgo_ts + 3398, + 184: __ccgo_ts + 3408, + 185: __ccgo_ts + 3414, + 186: __ccgo_ts + 3425, + 187: __ccgo_ts + 3436, + 188: __ccgo_ts + 3441, + 189: __ccgo_ts + 3449, } type Tpthread_once = struct { @@ -23816,91 +24045,91 @@ type unix_syscall = Tunix_syscall // */ var _aSyscall = [29]Tunix_syscall{ 0: { - FzName: __ccgo_ts + 3395, + FzName: __ccgo_ts + 3459, }, 1: { - FzName: __ccgo_ts + 3400, + FzName: __ccgo_ts + 3464, }, 2: { - FzName: __ccgo_ts + 3406, + FzName: __ccgo_ts + 3470, }, 3: { - FzName: __ccgo_ts + 3413, + FzName: __ccgo_ts + 3477, }, 4: { - FzName: __ccgo_ts + 3420, + FzName: __ccgo_ts + 3484, }, 5: { - FzName: __ccgo_ts + 3425, + FzName: __ccgo_ts + 3489, }, 6: { - FzName: __ccgo_ts + 3431, + FzName: __ccgo_ts + 3495, }, 7: { - FzName: __ccgo_ts + 3441, + FzName: __ccgo_ts + 3505, }, 8: { - FzName: __ccgo_ts + 3447, + FzName: __ccgo_ts + 3511, }, 9: { - FzName: __ccgo_ts + 3452, + FzName: __ccgo_ts + 3516, }, 10: { - FzName: __ccgo_ts + 3458, + FzName: __ccgo_ts + 3522, }, 11: { - FzName: __ccgo_ts + 3466, + FzName: __ccgo_ts + 3530, }, 12: { - FzName: __ccgo_ts + 3472, + FzName: __ccgo_ts + 3536, }, 13: { - FzName: __ccgo_ts + 3479, + FzName: __ccgo_ts + 3543, }, 14: { - FzName: __ccgo_ts + 3488, + FzName: __ccgo_ts + 3552, }, 15: { - FzName: __ccgo_ts + 3495, + FzName: __ccgo_ts + 3559, }, 16: { - FzName: __ccgo_ts + 3505, + FzName: __ccgo_ts + 3569, }, 17: { - FzName: __ccgo_ts + 3512, + FzName: __ccgo_ts + 3576, }, 18: { - FzName: __ccgo_ts + 3526, + FzName: __ccgo_ts + 3590, }, 19: { - FzName: __ccgo_ts + 3532, + FzName: __ccgo_ts + 3596, }, 20: { - FzName: __ccgo_ts + 3538, + FzName: __ccgo_ts + 3602, }, 21: { - FzName: __ccgo_ts + 3545, + FzName: __ccgo_ts + 3609, }, 22: { - FzName: __ccgo_ts + 3553, + FzName: __ccgo_ts + 3617, }, 23: { - FzName: __ccgo_ts + 3558, + FzName: __ccgo_ts + 3622, }, 24: { - FzName: __ccgo_ts + 3565, + FzName: __ccgo_ts + 3629, }, 25: { - FzName: __ccgo_ts + 3572, + FzName: __ccgo_ts + 3636, }, 26: { - FzName: __ccgo_ts + 3584, + FzName: __ccgo_ts + 3648, }, 27: { - FzName: __ccgo_ts + 3593, + FzName: __ccgo_ts + 3657, }, 28: { - FzName: __ccgo_ts + 3599, + FzName: __ccgo_ts + 3663, }, } @@ -24135,9 +24364,9 @@ func _robust_open(tls *libc.TLS, z uintptr, f int32, m Tmode_t) (r int32) { (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(16)].FpCurrent})))(tls, z) } (*(*func(*libc.TLS, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(1)].FpCurrent})))(tls, fd) - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3605, libc.VaList(bp+232, z, fd)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3669, libc.VaList(bp+232, z, fd)) fd = -int32(1) - if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3648, O_RDONLY, int32(m)) < 0 { + if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3712, O_RDONLY, int32(m)) < 0 { break } } @@ -24453,11 +24682,11 @@ func _unixLogErrorAtLine(tls *libc.TLS, errcode int32, zFunc uintptr, zPath uint ** equivalent to errno. Otherwise, use strerror_r(). */ /* This is a threadsafe build, but strerror_r() is not available. */ - zErr = __ccgo_ts + 1650 + zErr = __ccgo_ts + 1664 if zPath == uintptr(0) { - zPath = __ccgo_ts + 1650 + zPath = __ccgo_ts + 1664 } - Xsqlite3_log(tls, errcode, __ccgo_ts+3658, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) + Xsqlite3_log(tls, errcode, __ccgo_ts+3722, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) return errcode } @@ -24485,7 +24714,7 @@ func _robust_close(tls *libc.TLS, pFile uintptr, h int32, lineno int32) { } else { v1 = uintptr(0) } - _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(16)< uint64(1) { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3742, libc.VaList(bp+232, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3806, libc.VaList(bp+232, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } if _fileHasMoved(tls, pFile) != 0 { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3769, libc.VaList(bp+232, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3833, libc.VaList(bp+232, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } } @@ -24978,6 +25207,7 @@ func _unixLock(tls *libc.TLS, id uintptr, eFileLock int32) (r int32) { (*TunixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock) (*TunixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(eFileLock) } + goto end_lock end_lock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -25101,6 +25331,7 @@ func _posixUnlock(tls *libc.TLS, id uintptr, eFileLock int32, handleNFSUnlock in _closePendingFds(tls, pFile) } } + goto end_unlock end_unlock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -25141,7 +25372,7 @@ func _closeUnixFile(tls *libc.TLS, id uintptr) (r int32) { pFile = id _unixUnmapfile(tls, pFile) if (*TunixFile)(unsafe.Pointer(pFile)).Fh >= 0 { - _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40172)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40505)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -25761,7 +25992,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { var _ /* zDirname at bp+0 */ [513]uint8 _, _ = fd, ii fd = -int32(1) - Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3797, libc.VaList(bp+528, zFilename)) + Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3861, libc.VaList(bp+528, zFilename)) ii = int32(libc.Xstrlen(tls, bp)) for { if !(ii > 0 && int32((*(*[513]uint8)(unsafe.Pointer(bp)))[ii]) != int32('/')) { @@ -25787,7 +26018,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(41778)), __ccgo_ts+3512, bp, int32(41778)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42111)), __ccgo_ts+3576, bp, int32(42111)) } // C documentation @@ -25824,7 +26055,7 @@ func _unixSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { rc = _full_fsync(tls, (*TunixFile)(unsafe.Pointer(pFile)).Fh, isFullsync, isDataOnly) if rc != 0 { _storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__error(tls)))) - return _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(4)<= nSize { iWrite = nSize - int64(1) } - nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1650, int32(1)) + nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1664, int32(1)) if nWrite != int32(1) { return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(3)<= 0 { - _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42583)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42916)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -26430,7 +26661,7 @@ func _unixLockSharedMemory(tls *libc.TLS, pDbFd uintptr, pShmNode uintptr) (r in ** help detect if a -shm file truncation is legitimate or is the work ** or a rogue process. */ if rc == SQLITE_OK && _robust_ftruncate(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(3)) != 0 { - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(18)< iRegion { @@ -26997,7 +27230,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { var pNew, pOrig, pReq, zErr uintptr var v1 Tsqlite3_int64 _, _, _, _, _, _, _, _, _, _ = flags, h, nOrig, nReuse, pNew, pOrig, pReq, szSyspage, zErr, v1 - zErr = __ccgo_ts + 3553 + zErr = __ccgo_ts + 3617 h = (*TunixFile)(unsafe.Pointer(pFd)).Fh /* File descriptor open on db file */ pOrig = (*TunixFile)(unsafe.Pointer(pFd)).FpMapRegion /* Pointer to current file mapping */ nOrig = (*TunixFile)(unsafe.Pointer(pFd)).FmmapSizeActual /* Size of pOrig region in bytes */ @@ -27032,7 +27265,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { if pNew == uintptr(-libc.Int32FromInt32(1)) { pNew = uintptr(0) nNew = 0 - _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43401)) + _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43734)) /* If the mmap() above failed, assume that all subsequent mmap() calls ** will probably fail too. Fall back to using xRead/xWrite exclusively ** in this case. */ @@ -27368,11 +27601,11 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam } else { v1 = uintptr(0) } - if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3831, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { + if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3895, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { p2 = pNew + 30 *(*uint16)(unsafe.Pointer(p2)) = uint16(int32(*(*uint16)(unsafe.Pointer(p2))) | libc.Int32FromInt32(UNIXFILE_PSOW)) } - if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3836) == 0 { + if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3900) == 0 { p3 = pNew + 30 *(*uint16)(unsafe.Pointer(p3)) = uint16(int32(*(*uint16)(unsafe.Pointer(p3))) | libc.Int32FromInt32(UNIXFILE_EXCL)) } @@ -27403,7 +27636,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam ** implicit assumption here is that if fstat() fails, things are in ** such bad shape that dropping a lock or two doesn't matter much. */ - _robust_close(tls, pNew, h, int32(43909)) + _robust_close(tls, pNew, h, int32(44242)) h = -int32(1) } _unixLeaveMutex(tls) @@ -27414,7 +27647,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam if zLockFile == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3846, libc.VaList(bp+8, zFilename)) + Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3910, libc.VaList(bp+8, zFilename)) } (*TunixFile)(unsafe.Pointer(pNew)).FlockingContext = zLockFile } @@ -27422,7 +27655,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam _storeLastErrno(tls, pNew, 0) if rc != SQLITE_OK { if h >= 0 { - _robust_close(tls, pNew, h, int32(43994)) + _robust_close(tls, pNew, h, int32(44327)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -27437,10 +27670,10 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam // ** Directories to consider for temp files. // */ var _azTempDirs = [6]uintptr{ - 2: __ccgo_ts + 3854, - 3: __ccgo_ts + 3863, - 4: __ccgo_ts + 3872, - 5: __ccgo_ts + 1663, + 2: __ccgo_ts + 3918, + 3: __ccgo_ts + 3927, + 4: __ccgo_ts + 3936, + 5: __ccgo_ts + 1677, } // C documentation @@ -27449,8 +27682,8 @@ var _azTempDirs = [6]uintptr{ // ** Initialize first two members of azTempDirs[] array. // */ func _unixTempFileInit(tls *libc.TLS) { - _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3877) - _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3891) + _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3941) + _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3955) } // C documentation @@ -27512,7 +27745,7 @@ func _unixGetTempname(tls *libc.TLS, nBuf int32, zBuf uintptr) (r int32) { for cond := true; cond; cond = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(2)].FpCurrent})))(tls, zBuf, 0) == 0 { Xsqlite3_randomness(tls, int32(8), bp) *(*uint8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2)))) = uint8(0) - Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3898, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) + Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3962, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) if v2 = int32(*(*uint8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2))))) != 0; !v2 { v1 = iLimit iLimit++ @@ -27684,7 +27917,7 @@ func _findCreateFileMode(tls *libc.TLS, zPath uintptr, flags int32, pMode uintpt ** filename, check for the "modeof" parameter. If present, interpret ** its value as a filename and try to copy the mode, uid and gid from ** that file. */ - z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3915) + z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3979) if z != 0 { rc = _getFileMode(tls, z, pMode, pUid, pGid) } @@ -27722,12 +27955,12 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags bp := tls.Alloc(528) defer tls.Free(528) var ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, rc, rc2 int32 - var p, pUnused, zName uintptr + var p, pReadonly, pUnused, zName uintptr var _ /* gid at bp+520 */ Tgid_t var _ /* openMode at bp+514 */ Tmode_t var _ /* uid at bp+516 */ Tuid_t var _ /* zTmpname at bp+0 */ [514]uint8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pUnused, rc, rc2, zName + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pReadonly, pUnused, rc, rc2, zName p = pFile fd = -int32(1) /* File descriptor returned by open() */ openFlags = 0 /* Flags to pass to open() */ @@ -27822,17 +28055,24 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } else { if *(*int32)(unsafe.Pointer(libc.X__error(tls))) != int32(EISDIR) && isReadWrite != 0 { /* Failed to open the file for read/write access. Try read-only. */ + pReadonly = uintptr(0) flags &= ^(libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE)) openFlags &= ^(libc.Int32FromInt32(O_RDWR) | libc.Int32FromInt32(O_CREAT)) flags |= int32(SQLITE_OPEN_READONLY) openFlags |= O_RDONLY isReadonly = int32(1) - fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 514))) + pReadonly = _findReusableFd(tls, zName, flags) + if pReadonly != 0 { + fd = (*TUnixUnusedFd)(unsafe.Pointer(pReadonly)).Ffd + Xsqlite3_free(tls, pReadonly) + } else { + fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 514))) + } } } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44435)), __ccgo_ts+3395, zName, int32(44435)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44775)), __ccgo_ts+3459, zName, int32(44775)) if rc == SQLITE_OK { rc = rc2 } @@ -27882,6 +28122,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags ctrlFlags |= int32(UNIXFILE_URI) } rc = _fillInUnixFile(tls, pVfs, fd, pFile, zPath, ctrlFlags) + goto open_finished open_finished: ; if rc != SQLITE_OK { @@ -27908,7 +28149,7 @@ func _unixDelete(tls *libc.TLS, NotUsed uintptr, zPath uintptr, dirSync int32) ( if *(*int32)(unsafe.Pointer(libc.X__error(tls))) == int32(ENOENT) { rc = libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(23)< int32(SQLITE_MAX_SYMLINK) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(44686)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45026)) return } got = (*(*func(*libc.TLS, uintptr, uintptr, Tsize_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls, zIn, bp+224, libc.Uint64FromInt64(1026)-libc.Uint64FromInt32(2)) if got <= 0 || got >= libc.Int64FromInt64(1026)-libc.Int64FromInt32(2) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44691)), __ccgo_ts+3584, zIn, int32(44691)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45031)), __ccgo_ts+3648, zIn, int32(45031)) return } (*(*[1026]uint8)(unsafe.Pointer(bp + 224)))[got] = uint8(0) @@ -28106,14 +28347,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if int32(*(*uint8)(unsafe.Pointer(zPath))) != int32('/') { if (*(*func(*libc.TLS, uintptr, Tsize_t) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(3)].FpCurrent})))(tls, bp+24, libc.Uint64FromInt64(1026)-libc.Uint64FromInt32(2)) == uintptr(0) { - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44749)), __ccgo_ts+3413, zPath, int32(44749)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45089)), __ccgo_ts+3477, zPath, int32(45089)) } _appendAllPathElements(tls, bp, bp+24) } _appendAllPathElements(tls, bp, zPath) *(*uint8)(unsafe.Pointer(zOut + uintptr((*(*TDbPath)(unsafe.Pointer(bp))).FnUsed))) = uint8(0) if (*(*TDbPath)(unsafe.Pointer(bp))).Frc != 0 || (*(*TDbPath)(unsafe.Pointer(bp))).FnUsed < int32(2) { - return _sqlite3CantopenError(tls, int32(44755)) + return _sqlite3CantopenError(tls, int32(45095)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<= (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4)/libc.Uint64FromInt32(2) { @@ -29970,6 +30213,7 @@ bitvec_set_rehash: return rc } } + goto bitvec_set_end bitvec_set_end: ; (*TBitvec)(unsafe.Pointer(p)).FnSet++ @@ -30202,6 +30446,7 @@ func _sqlite3BitvecBuiltinTest(tls *libc.TLS, sz int32, aOp uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp))++ } /* Free allocated structure */ + goto bitvec_end bitvec_end: ; Xsqlite3_free(tls, pTmpSpace) @@ -31441,7 +31686,7 @@ func _sqlite3PCacheBufferSetup(tls *libc.TLS, pBuf uintptr, sz int32, n int32) { var p uintptr var v1, v2, v3, v4 int32 _, _, _, _, _ = p, v1, v2, v3, v4 - if _pcache1_g.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80) != 0 { if pBuf == uintptr(0) { v1 = libc.Int32FromInt32(0) n = v1 @@ -31962,7 +32207,7 @@ func _pcache1Init(tls *libc.TLS, NotUsed uintptr) (r int32) { _pcache1_g.FnInitPage = 0 } _pcache1_g.Fgrp.FmxPinned = uint32(10) - _pcache1_g.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80, int32(1)) return SQLITE_OK } @@ -35459,6 +35704,7 @@ func _pager_delsuper(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) { } _sqlite3OsClose(tls, pSuper) rc = _sqlite3OsDelete(tls, pVfs, zSuper, 0) + goto delsuper_out delsuper_out: ; Xsqlite3_free(tls, zFree) @@ -35786,6 +36032,7 @@ func _pager_playback(tls *libc.TLS, pPager uintptr, isHot int32) (r int32) { } } /*NOTREACHED*/ + goto end_playback end_playback: ; if rc == SQLITE_OK { @@ -35828,7 +36075,7 @@ end_playback: rc = _pager_delsuper(tls, pPager, zSuper) } if isHot != 0 && nPlayback != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(2)< int64(1) { _sqlite3PagerUnrefNotNull(tls, pPgOld) - return _sqlite3CorruptError(tls, int32(63973)) + return _sqlite3CorruptError(tls, int32(64313)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | int32((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -39931,7 +40182,7 @@ func _sqlite3PagerCheckpoint(tls *libc.TLS, pPager uintptr, db uintptr, eMode in ** sqlite3_wal_checkpoint() call, but it happens very rarely. ** https://sqlite.org/forum/forumpost/fd0f19d229156939 */ - Xsqlite3_exec(tls, db, __ccgo_ts+4111, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+4175, uintptr(0), uintptr(0), uintptr(0)) } if (*TPager)(unsafe.Pointer(pPager)).FpWal != 0 { if eMode == SQLITE_CHECKPOINT_PASSIVE { @@ -41372,7 +41623,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(65899)) + return _sqlite3CorruptError(tls, int32(66239)) } goto _1 _1: @@ -41460,7 +41711,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { ** are able to understand */ version = _sqlite3Get4byte(tls, bp+8+4) if version != uint32(WAL_MAX_VERSION) { - rc = _sqlite3CantopenError(tls, int32(66031)) + rc = _sqlite3CantopenError(tls, int32(66371)) goto finished } /* Malloc a buffer to read frames into. */ @@ -41555,6 +41806,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { } Xsqlite3_free(tls, aFrame) } + goto finished finished: ; if rc == SQLITE_OK { @@ -41598,9 +41850,10 @@ finished: ** checkpointing the log file. */ if (*TWal)(unsafe.Pointer(pWal)).Fhdr.FnPage != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(1)< int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(71032)) + rc = _sqlite3CorruptError(tls, int32(71421)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } @@ -46154,7 +46416,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, } /* The super-journal page number must never be used as a pointer map page */ if key == uint32(0) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71230)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71619)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -46167,12 +46429,12 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, /* The first byte of the extra data is the MemPage.isInit byte. ** If that byte is set, it means this page is also being used ** as a btree page. */ - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71243)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71632)) goto ptrmap_exit } offset = int32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71248)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71637)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -46185,6 +46447,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _sqlite3Put4byte(tls, pPtrmap+uintptr(offset+int32(1)), parent) } } + goto ptrmap_exit ptrmap_exit: ; _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -46215,7 +46478,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = int32(libc.Uint32FromInt32(5) * (key - uint32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(71293)) + return _sqlite3CorruptError(tls, int32(71682)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -46223,7 +46486,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if int32(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || int32(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(71301)) + return _sqlite3CorruptError(tls, int32(71690)) } return SQLITE_OK } @@ -46643,7 +46906,7 @@ func _ptrmapPutOvflPtr(tls *libc.TLS, pPage uintptr, pSrc uintptr, pCell uintptr (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if uint64(pCell) < uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) && uint64(pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal)) > uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71741)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72130)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(int32((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -46683,12 +46946,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71799)) + return _sqlite3CorruptError(tls, int32(72188)) } if iFree != 0 { iFree2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71802)) + return _sqlite3CorruptError(tls, int32(72191)) } if 0 == iFree2 || int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -46696,21 +46959,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(71810)) + return _sqlite3CorruptError(tls, int32(72199)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(71813)) + return _sqlite3CorruptError(tls, int32(72202)) } sz2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(71815)) + return _sqlite3CorruptError(tls, int32(72204)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), uint64(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(71819)) + return _sqlite3CorruptError(tls, int32(72208)) } } cbrk = top + sz @@ -46757,12 +47020,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { ** if PRAGMA cell_size_check=ON. */ if pc > iCellLast { - return _sqlite3CorruptError(tls, int32(71852)) + return _sqlite3CorruptError(tls, int32(72241)) } size = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, src+uintptr(pc))) cbrk -= size if cbrk < iCellStart || pc+size > usableSize { - return _sqlite3CorruptError(tls, int32(71858)) + return _sqlite3CorruptError(tls, int32(72247)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = uint8(cbrk) @@ -46774,10 +47037,11 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { } } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))) = uint8(0) + goto defragment_out defragment_out: ; if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(71872)) + return _sqlite3CorruptError(tls, int32(72261)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = uint8(cbrk) @@ -46837,7 +47101,7 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint } else { if x+pc > maxPC { /* This slot extends off the end of the usable part of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71929)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72318)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -46854,14 +47118,14 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint if pc <= iAddr { if pc != 0 { /* The next slot in the chain comes before the current slot */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71944)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72333)) } return uintptr(0) } } if pc > maxPC+nByte-int32(4) { /* The free slot chain extends off the end of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71951)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72340)) } return uintptr(0) } @@ -46904,11 +47168,11 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r if top == 0 && (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize == uint32(65536) { top = int32(65536) } else { - return _sqlite3CorruptError(tls, int32(71999)) + return _sqlite3CorruptError(tls, int32(72388)) } } else { if top > int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(72002)) + return _sqlite3CorruptError(tls, int32(72391)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -46922,7 +47186,7 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r g2 = v1 *(*int32)(unsafe.Pointer(pIdx)) = v1 if g2 <= gap { - return _sqlite3CorruptError(tls, int32(72019)) + return _sqlite3CorruptError(tls, int32(72408)) } else { return SQLITE_OK } @@ -47005,12 +47269,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if int32(iFreeBlk) == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(72098)) + return _sqlite3CorruptError(tls, int32(72487)) } iPtr = iFreeBlk } if uint32(iFreeBlk) > (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(72103)) + return _sqlite3CorruptError(tls, int32(72492)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -47021,11 +47285,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if iFreeBlk != 0 && iEnd+uint32(3) >= uint32(iFreeBlk) { nFrag = uint8(uint32(iFreeBlk) - iEnd) if iEnd > uint32(iFreeBlk) { - return _sqlite3CorruptError(tls, int32(72115)) + return _sqlite3CorruptError(tls, int32(72504)) } iEnd = uint32(int32(iFreeBlk) + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iFreeBlk)+int32(2)))))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - return _sqlite3CorruptError(tls, int32(72118)) + return _sqlite3CorruptError(tls, int32(72507)) } iSize = uint16(iEnd - uint32(iStart)) iFreeBlk = uint16(int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= int32(iStart) { if iPtrEnd > int32(iStart) { - return _sqlite3CorruptError(tls, int32(72131)) + return _sqlite3CorruptError(tls, int32(72520)) } nFrag = Tu8(int32(nFrag) + (int32(iStart) - iPtrEnd)) iSize = uint16(iEnd - uint32(iPtr)) @@ -47046,7 +47310,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) } } if int32(nFrag) > int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(72137)) + return _sqlite3CorruptError(tls, int32(72526)) } p2 = data + uintptr(int32(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - int32(nFrag)) @@ -47063,10 +47327,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) ** so just extend the cell content area rather than create another ** freelist entry */ if int32(iStart) < int32(x) { - return _sqlite3CorruptError(tls, int32(72151)) + return _sqlite3CorruptError(tls, int32(72540)) } if int32(iPtr) != int32(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(72152)) + return _sqlite3CorruptError(tls, int32(72541)) } *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)))) = uint8(int32(iFreeBlk) >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)) + 1)) = uint8(iFreeBlk) @@ -47127,7 +47391,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtrIdxLeaf) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72206)) + return _sqlite3CorruptError(tls, int32(72595)) } } } else { @@ -47153,7 +47417,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtr) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72230)) + return _sqlite3CorruptError(tls, int32(72619)) } } } @@ -47192,12 +47456,12 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-55530-52930 In a well-formed b-tree page, there will ** always be at least one cell before the first freeblock. */ - return _sqlite3CorruptError(tls, int32(72281)) + return _sqlite3CorruptError(tls, int32(72670)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(72286)) + return _sqlite3CorruptError(tls, int32(72675)) } next = uint32(int32(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(72296)) + return _sqlite3CorruptError(tls, int32(72685)) } if uint32(pc)+size > uint32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(72300)) + return _sqlite3CorruptError(tls, int32(72689)) } } /* At this point, nFree contains the sum of the offset to the start @@ -47224,7 +47488,7 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { ** area, according to the page header, lies within the page. */ if nFree > usableSize || nFree < iCellFirst { - return _sqlite3CorruptError(tls, int32(72312)) + return _sqlite3CorruptError(tls, int32(72701)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16(nFree - iCellFirst)) return SQLITE_OK @@ -47255,11 +47519,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = int32(*(*Tu8)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))< iCellLast { - return _sqlite3CorruptError(tls, int32(72343)) + return _sqlite3CorruptError(tls, int32(72732)) } sz = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, data+uintptr(pc))) if pc+sz > usableSize { - return _sqlite3CorruptError(tls, int32(72348)) + return _sqlite3CorruptError(tls, int32(72737)) } goto _1 _1: @@ -47288,7 +47552,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-28594-02890 The one-byte flag at offset 0 indicating ** the b-tree page type. */ if _decodeFlags(tls, pPage, int32(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(72380)) + return _sqlite3CorruptError(tls, int32(72769)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -47301,7 +47565,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = uint16(int32(*(*Tu8)(unsafe.Pointer(data + 3)))< ((*TBtShared)(unsafe.Pointer(pBt)).FpageSize-uint32(8))/uint32(6) { /* To many cells for a single page. The page must be corrupt */ - return _sqlite3CorruptError(tls, int32(72394)) + return _sqlite3CorruptError(tls, int32(72783)) } /* EVIDENCE-OF: R-24089-57979 If a page contains no cells (which is only ** possible for a root page of a table that contains no rows) then the @@ -47454,7 +47718,7 @@ func _getAndInitPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, bRe _, _ = pPage, rc if pgno > _btreePagecount(tls, pBt) { *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72537)) + return _sqlite3CorruptError(tls, int32(72926)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -47516,7 +47780,7 @@ func _btreeGetUnusedPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FpDbPage) > int32(1) { _releasePage(tls, *(*uintptr)(unsafe.Pointer(ppPage))) *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72609)) + return _sqlite3CorruptError(tls, int32(72998)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -47604,7 +47868,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt /* Set the variable isMemdb to true for an in-memory database, or ** false for a file-based database. */ - isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4192) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) + isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4256) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) /* flags fit in 8 bits */ /* Only a BTREE_SINGLE database can be BTREE_UNORDERED */ /* A BTREE_SINGLE database is always a temporary and/or ephemeral */ @@ -47828,6 +48092,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt } } *(*uintptr)(unsafe.Pointer(ppBtree)) = p + goto btree_open_out btree_open_out: ; if rc != SQLITE_OK { @@ -48389,7 +48654,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { ** The original design allowed these amounts to vary, but as of ** version 3.6.0, we require them to be fixed. */ - if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4201, uint64(3)) != 0 { + if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4265, uint64(3)) != 0 { goto page1_init_failed } /* EVIDENCE-OF: R-51873-39618 The page size for a database file is @@ -48427,7 +48692,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { } if nPage > *(*Tu32)(unsafe.Pointer(bp + 8)) { if _sqlite3WritableSchema(tls, (*TBtShared)(unsafe.Pointer(pBt)).Fdb) == 0 { - rc = _sqlite3CorruptError(tls, int32(73547)) + rc = _sqlite3CorruptError(tls, int32(73936)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -48481,6 +48746,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 = *(*uintptr)(unsafe.Pointer(bp)) (*TBtShared)(unsafe.Pointer(pBt)).FnPage = nPage return SQLITE_OK + goto page1_init_failed page1_init_failed: ; _releasePageOne(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -48750,6 +49016,7 @@ func _btreeBeginTrans(tls *libc.TLS, p uintptr, wrflag int32, pSchemaVersion uin } } } + goto trans_begun trans_begun: ; if rc == SQLITE_OK { @@ -48866,7 +49133,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if int32(eType) == int32(PTRMAP_OVERFLOW2) { /* The pointer is always the first 4 bytes of the page in this case. */ if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData) != iFrom { - return _sqlite3CorruptError(tls, int32(73995)) + return _sqlite3CorruptError(tls, int32(74384)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -48890,7 +49157,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74014)) + return _sqlite3CorruptError(tls, int32(74403)) } if iFrom == _sqlite3Get4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4)) { _sqlite3Put4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4), iTo) @@ -48899,7 +49166,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } } else { if pCell+uintptr(4) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74023)) + return _sqlite3CorruptError(tls, int32(74412)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -48913,7 +49180,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if int32(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(74035)) + return _sqlite3CorruptError(tls, int32(74424)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -48943,7 +49210,7 @@ func _relocatePage(tls *libc.TLS, pBt uintptr, pDbPage uintptr, eType Tu8, iPtrP iDbPage = (*TMemPage)(unsafe.Pointer(pDbPage)).Fpgno pPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager if iDbPage < uint32(3) { - return _sqlite3CorruptError(tls, int32(74070)) + return _sqlite3CorruptError(tls, int32(74459)) } /* Move page iDbPage from its current location to page number iFreePage */ *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3PagerMovepage(tls, pPager, (*TMemPage)(unsafe.Pointer(pDbPage)).FpDbPage, iFreePage, isCommit) @@ -49039,7 +49306,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(74168)) + return _sqlite3CorruptError(tls, int32(74557)) } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -49077,7 +49344,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if *(*TPgno)(unsafe.Pointer(bp + 24)) > dbSize { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) - return _sqlite3CorruptError(tls, int32(74220)) + return _sqlite3CorruptError(tls, int32(74609)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -49144,7 +49411,7 @@ func _sqlite3BtreeIncrVacuum(tls *libc.TLS, p uintptr) (r int32) { nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) nFin = _finalDbSize(tls, pBt, nOrig, nFree) if nOrig < nFin || nFree >= nOrig { - rc = _sqlite3CorruptError(tls, int32(74288)) + rc = _sqlite3CorruptError(tls, int32(74677)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -49187,7 +49454,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { ** is either a pointer-map page or the pending-byte page. If one ** is encountered, this indicates corruption. */ - return _sqlite3CorruptError(tls, int32(74339)) + return _sqlite3CorruptError(tls, int32(74728)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -49217,7 +49484,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(74366)) + return _sqlite3CorruptError(tls, int32(74755)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -49683,7 +49950,7 @@ func _btreeCursor(tls *libc.TLS, p uintptr, iTable TPgno, wrFlag int32, pKeyInfo /* Assert that the caller has opened the required transaction. */ if iTable <= uint32(1) { if iTable < uint32(1) { - return _sqlite3CorruptError(tls, int32(74830)) + return _sqlite3CorruptError(tls, int32(75219)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -50075,7 +50342,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin pBt = (*TBtCursor)(unsafe.Pointer(pCur)).FpBt /* Btree this cursor belongs to */ pBufStart = pBuf /* Start of original out buffer */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(75235)) + return _sqlite3CorruptError(tls, int32(75624)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -50085,7 +50352,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin ** &aPayload[pCur->info.nLocal] > &pPage->aData[pBt->usableSize] ** but is recast into its current form to avoid integer overflow problems */ - return _sqlite3CorruptError(tls, int32(75250)) + return _sqlite3CorruptError(tls, int32(75639)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -50113,7 +50380,11 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_ValidOvfl) == 0 { nOvfl = int32(((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnPayload - uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) + ovflSize - uint32(1)) / ovflSize) if (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow == uintptr(0) || nOvfl*libc.Int32FromInt64(4) > _sqlite3MallocSize(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow) { - aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + if _sqlite3FaultSim(tls, int32(413)) != 0 { + aNew = uintptr(0) + } else { + aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + } if aNew == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -50124,6 +50395,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin p1 = pCur + 1 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(BTCF_ValidOvfl)) } else { + /* Sanity check the validity of the overflow page cache */ /* If the overflow page-list cache has been allocated and the ** entry for the first required overflow page is valid, skip ** directly to it. @@ -50137,7 +50409,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin for *(*TPgno)(unsafe.Pointer(bp)) != 0 { /* If required, populate the overflow page-list cache. */ if *(*TPgno)(unsafe.Pointer(bp)) > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(75312)) + return _sqlite3CorruptError(tls, int32(75710)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -50211,7 +50483,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin } if rc == SQLITE_OK && amt > uint32(0) { /* Overflow chain ends prematurely */ - return _sqlite3CorruptError(tls, int32(75396)) + return _sqlite3CorruptError(tls, int32(75794)) } return rc } @@ -50346,7 +50618,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { var v3, p1 uintptr _, _, _, _ = rc, v2, v3, p1 if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(75534)) + return _sqlite3CorruptError(tls, int32(75932)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -50358,7 +50630,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(75548)) + rc = _sqlite3CorruptError(tls, int32(75946)) } if rc != 0 { v3 = pCur + 84 @@ -50474,8 +50746,9 @@ func _moveToRoot(tls *libc.TLS, pCur uintptr) (r int32) { ** in such a way that page pRoot is linked into a second b-tree table ** (or the freelist). */ if int32((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != int32((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(75683)) + return _sqlite3CorruptError(tls, int32(76081)) } + goto skip_init skip_init: ; (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(0) @@ -50487,7 +50760,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(75695)) + return _sqlite3CorruptError(tls, int32(76093)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -50721,7 +50994,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(75937)) + return _sqlite3CorruptError(tls, int32(76342)) } } } @@ -50764,6 +51037,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh rc = SQLITE_OK goto moveto_table_finish } + goto moveto_table_next_layer moveto_table_next_layer: ; if lwr >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { @@ -50779,6 +51053,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh goto _1 _1: } + goto moveto_table_finish moveto_table_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -50923,7 +51198,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes p3 = pCur + 1 *(*Tu8)(unsafe.Pointer(p3)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p3))) & ^libc.Int32FromInt32(BTCF_ValidOvfl)) if !((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76133)) + return _sqlite3CorruptError(tls, int32(76538)) } goto bypass_moveto_root /* Start search on the current page */ } @@ -50937,6 +51212,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes } return rc } + goto bypass_moveto_root bypass_moveto_root: ; for { @@ -50985,7 +51261,7 @@ bypass_moveto_root: /* Invalid key size: 0x80 0x80 0x01 */ /* Minimum legal index key size */ if nCell < int32(2) || uint32(nCell)/(*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FusableSize > (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(76220)) + rc = _sqlite3CorruptError(tls, int32(76625)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, uint64(nCell+nOverrun)) @@ -51016,7 +51292,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(76252)) + rc = _sqlite3CorruptError(tls, int32(76657)) } goto moveto_index_finish } @@ -51049,7 +51325,7 @@ bypass_moveto_root: p9 = pCur + 1 *(*Tu8)(unsafe.Pointer(p9)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p9))) & ^(libc.Int32FromInt32(BTCF_ValidNKey) | libc.Int32FromInt32(BTCF_ValidOvfl))) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(76283)) + return _sqlite3CorruptError(tls, int32(76688)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = uint16(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -51058,7 +51334,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76294)) + rc = _sqlite3CorruptError(tls, int32(76699)) } if rc != 0 { v11 = pCur + 84 @@ -51072,6 +51348,7 @@ bypass_moveto_root: goto _4 _4: } + goto moveto_index_finish moveto_index_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -51106,11 +51383,11 @@ func _sqlite3BtreeRowCountEst(tls *libc.TLS, pCur uintptr) (r Ti64) { var i Tu8 var n Ti64 _, _ = i, n - /* Currently this interface is only called by the OP_IfSmaller - ** opcode, and it that case the cursor will always be valid and - ** will always point to a leaf node. */ + /* Currently this interface is only called by the OP_IfSizeBetween + ** opcode and the OP_Count opcode with P3=1. In either case, + ** the cursor will always be valid unless the btree is empty. */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID { - return int64(-int32(1)) + return 0 } if int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).Fleaf) == 0 { return int64(-int32(1)) @@ -51186,7 +51463,7 @@ func _btreeNext(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76395)) + return _sqlite3CorruptError(tls, int32(76800)) } if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -51296,7 +51573,7 @@ func _btreePrevious(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76488)) + return _sqlite3CorruptError(tls, int32(76893)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -51384,7 +51661,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt ** stores the total number of pages on the freelist. */ n = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+36) if n >= mxPage { - return _sqlite3CorruptError(tls, int32(76578)) + return _sqlite3CorruptError(tls, int32(76983)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -51439,7 +51716,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(76634)) + rc = _sqlite3CorruptError(tls, int32(77039)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -51465,7 +51742,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { if k > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/libc.Uint32FromInt32(4)-libc.Uint32FromInt32(2) { /* Value of k is out of range. Database corruption */ - rc = _sqlite3CorruptError(tls, int32(76663)) + rc = _sqlite3CorruptError(tls, int32(77068)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -51492,7 +51769,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { iNewTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+8) if iNewTrunk > mxPage { - rc = _sqlite3CorruptError(tls, int32(76697)) + rc = _sqlite3CorruptError(tls, int32(77102)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -51563,7 +51840,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } iPage = _sqlite3Get4byte(tls, aData+uintptr(uint32(8)+closest*uint32(4))) if iPage > mxPage || iPage < uint32(2) { - rc = _sqlite3CorruptError(tls, int32(76762)) + rc = _sqlite3CorruptError(tls, int32(77167)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -51663,6 +51940,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) } } + goto end_allocate_page end_allocate_page: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -51700,7 +51978,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in iTrunk = uint32(0) /* Page number of free-list trunk page */ pPage1 = (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 /* Initial number of pages on free-list */ if iPage < uint32(2) || iPage > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(76889)) + return _sqlite3CorruptError(tls, int32(77294)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -51751,7 +52029,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in if nFree != uint32(0) { /* Initial number of leaf cells on trunk page */ iTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32) if iTrunk > _btreePagecount(tls, pBt) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76936)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77341)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -51760,7 +52038,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in } nLeaf = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+4) if nLeaf > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(2) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76947)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77352)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -51815,6 +52093,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData, iTrunk) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData+4, uint32(0)) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32, iPage) + goto freepage_out freepage_out: ; if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -51849,7 +52128,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp _, _, _, _, _, _, _, _ = nOvfl, ovflPageSize, ovflPgno, pBt, rc, v1, v2, v3 if pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { /* Cell extends past end of page */ - return _sqlite3CorruptError(tls, int32(77036)) + return _sqlite3CorruptError(tls, int32(77441)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -51867,7 +52146,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp /* 0 is not a legal page number and page 1 cannot be an ** overflow page. Therefore if ovflPgno<2 or past the end of the ** file the database must be corrupt. */ - return _sqlite3CorruptError(tls, int32(77053)) + return _sqlite3CorruptError(tls, int32(77458)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -51890,7 +52169,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp ** caller is iterating through or using in some other way, this ** can be problematic. */ - rc = _sqlite3CorruptError(tls, int32(77073)) + rc = _sqlite3CorruptError(tls, int32(77478)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -52111,7 +52390,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = uint32(int32(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77329)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77734)) return } rc = _freeSpace(tls, pPage, uint16(pc), uint16(sz)) @@ -52505,12 +52784,12 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg sz = *(*Tu16)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FszCell + uintptr(i)*2)) if uint64(pCell) >= uint64(aData+uintptr(j)) && uint64(pCell) < uint64(pEnd) { if uint64(pCell+uintptr(sz)) > uint64(pEnd) { - return _sqlite3CorruptError(tls, int32(77718)) + return _sqlite3CorruptError(tls, int32(78123)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(77723)) + return _sqlite3CorruptError(tls, int32(78128)) } } pData -= uintptr(sz) @@ -52518,7 +52797,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = uint8(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(77729)) + return _sqlite3CorruptError(tls, int32(78134)) } libc.Xmemmove(tls, pData, pCell, uint64(sz)) i++ @@ -52613,7 +52892,7 @@ func _pageInsertArray(tls *libc.TLS, pPg uintptr, pBegin uintptr, ppData uintptr ** database. But they might for a corrupt database. Hence use memmove() ** since memcpy() sends SIGABORT with overlapping buffers on OpenBSD */ if uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))+uintptr(sz)) > uint64(pEnd) && uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))) < uint64(pEnd) { - _sqlite3CorruptError(tls, int32(77814)) + _sqlite3CorruptError(tls, int32(78219)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), uint64(sz)) @@ -52761,7 +53040,7 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p if iOld < iNew { nShift = _pageFreeArray(tls, pPg, iOld, iNew-iOld, pCArray) if nShift > nCell { - return _sqlite3CorruptError(tls, int32(77936)) + return _sqlite3CorruptError(tls, int32(78341)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), uint64(nCell*int32(2))) nCell -= nShift @@ -52827,11 +53106,12 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)))) = uint8((int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)) + 1)) = uint8(int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) return SQLITE_OK + goto editpage_fail editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(78010)) + return _sqlite3CorruptError(tls, int32(78415)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -52876,7 +53156,7 @@ func _balance_quick(tls *libc.TLS, pParent uintptr, pPage uintptr, pSpace uintpt _, _, _, _, _, _, _ = pBt, pOut, pStop, v1, v2, v3, v4 pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt /* Page number of pNew */ if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(78050)) + return _sqlite3CorruptError(tls, int32(78455)) } /* dbfuzz001.test */ /* Allocate a new page. This page will become the right-sibling of ** pPage. Make the parent page writable, so that the new divider cell @@ -53237,7 +53517,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78471)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78876)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -53260,7 +53540,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa libc.Xmemset(tls, (*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell+uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*2, 0, uint64(2)*uint64(limit+int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78495)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78900)) goto balance_cleanup } limit = int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -53391,7 +53671,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa if i+int32(1) >= k { k = i + int32(2) if k > libc.Int32FromInt32(NB)+libc.Int32FromInt32(2) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78596)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79001)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -53434,7 +53714,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v10 = 0 } if cntNew[i] <= v10 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78629)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79034)) goto balance_cleanup } } @@ -53493,7 +53773,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v15 = 0 } if cntNew[i-int32(1)] <= v15 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78673)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79078)) goto balance_cleanup } goto _11 @@ -53525,7 +53805,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) nNew++ if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) != int32(1)+libc.BoolInt32(i == iParentIdx-nxDiv) && *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78706)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79111)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -53755,7 +54035,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa } pSrcEnd = *(*uintptr)(unsafe.Pointer(bp + 112 + 32 + uintptr(k)*8)) if uint64(pCell1) < uint64(pSrcEnd) && uint64(pCell1+uintptr(sz2)) > uint64(pSrcEnd) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78906)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79311)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -53890,6 +54170,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa /* ** Cleanup before returning. */ + goto balance_cleanup balance_cleanup: ; _sqlite3DbFree(tls, uintptr(0), (*(*TCellArray)(unsafe.Pointer(bp + 112))).FapCell) @@ -54000,7 +54281,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && int32((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(79138)) + return _sqlite3CorruptError(tls, int32(79543)) } goto _1 _1: @@ -54073,7 +54354,7 @@ func _balance(tls *libc.TLS, pCur uintptr) (r int32) { /* The page being written is not a root page, and there is currently ** more than one reference to it. This only happens if the page is one ** of its own ancestor pages. Corruption. */ - rc = _sqlite3CorruptError(tls, int32(79198)) + rc = _sqlite3CorruptError(tls, int32(79603)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = int32(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -54232,7 +54513,7 @@ func _btreeOverwriteOverflowCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int return rc } if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1) || (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FisInit != 0 { - rc = _sqlite3CorruptError(tls, int32(79362)) + rc = _sqlite3CorruptError(tls, int32(79767)) } else { if uint32(iOffset)+ovflPageSize < uint32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -54263,7 +54544,7 @@ func _btreeOverwriteCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int32) { nTotal = (*TBtreePayload)(unsafe.Pointer(pX)).FnData + (*TBtreePayload)(unsafe.Pointer(pX)).FnZero /* Total bytes of to write */ pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage /* Page being written */ if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload+uintptr((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd || (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FcellOffset) { - return _sqlite3CorruptError(tls, int32(79390)) + return _sqlite3CorruptError(tls, int32(79795)) } if int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -54348,7 +54629,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** Which can only happen if the SQLITE_NoSchemaError flag was set when ** the schema was loaded. This cannot be asserted though, as a user might ** set the flag, load the schema, and then unset the flag. */ - return _sqlite3CorruptError(tls, int32(79471)) + return _sqlite3CorruptError(tls, int32(79876)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -54440,7 +54721,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79594)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79999)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -54476,7 +54757,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) if *(*int32)(unsafe.Pointer(bp + 4)) == 0 { if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79636)) + return _sqlite3CorruptError(tls, int32(80041)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -54506,10 +54787,10 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry. */ /* clearCell never fails when nLocal==nPayload */ if oldCell < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+uintptr(10) { - return _sqlite3CorruptError(tls, int32(79663)) + return _sqlite3CorruptError(tls, int32(80068)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79666)) + return _sqlite3CorruptError(tls, int32(80071)) } libc.Xmemcpy(tls, oldCell, newCell, uint64(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -54574,6 +54855,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s (*TBtCursor)(unsafe.Pointer(pCur)).FnKey = (*TBtreePayload)(unsafe.Pointer(pX)).FnKey } } + goto end_insert end_insert: ; return *(*int32)(unsafe.Pointer(bp)) @@ -54626,7 +54908,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T nIn = uint32((*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnLocal) aIn = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload if aIn+uintptr(nIn) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79768)) + return _sqlite3CorruptError(tls, int32(80173)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -54648,7 +54930,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T } if nRem > nIn { if aIn+uintptr(nIn)+uintptr(4) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79793)) + return _sqlite3CorruptError(tls, int32(80198)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -54748,21 +55030,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(79889)) + return _sqlite3CorruptError(tls, int32(80294)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(79898)) + return _sqlite3CorruptError(tls, int32(80303)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&(int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCellIdx))))< _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80112)) + return _sqlite3CorruptError(tls, int32(80517)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -55007,7 +55289,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags } *(*int32)(unsafe.Pointer(bp + 12)) = _ptrmapGet(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 8)), bp+32, bp+36) if int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80160)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80565)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -55088,14 +55370,14 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int var _ /* rc at bp+8 */ int32 _, _, _, _ = hdr, i, pCell, v2 if pgno > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80250)) + return _sqlite3CorruptError(tls, int32(80655)) } *(*int32)(unsafe.Pointer(bp + 8)) = _getAndInitPage(tls, pBt, pgno, bp, 0) if *(*int32)(unsafe.Pointer(bp + 8)) != 0 { return *(*int32)(unsafe.Pointer(bp + 8)) } if int32((*TBtShared)(unsafe.Pointer(pBt)).FopenFlags)&int32(BTREE_SINGLE) == 0 && _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1)+libc.BoolInt32(pgno == uint32(1)) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80257)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80662)) goto cleardatabasepage_out } hdr = int32((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -55146,6 +55428,7 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _zeroPage(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData + uintptr(hdr))))|int32(PTF_LEAF)) } } + goto cleardatabasepage_out cleardatabasepage_out: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -55231,7 +55514,7 @@ func _btreeDropTable(tls *libc.TLS, p uintptr, iTable TPgno, piMoved uintptr) (r *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) pBt = (*TBtree)(unsafe.Pointer(p)).FpBt if iTable > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80361)) + return _sqlite3CorruptError(tls, int32(80766)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, int32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -55496,7 +55779,7 @@ func _checkAppendMsg(tls *libc.TLS, pCheck uintptr, zFormat uintptr, va uintptr) (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr++ ap = va if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FerrMsg.FnChar != 0 { - Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4205, int32(1)) + Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4269, int32(1)) } if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx != 0 { Xsqlite3_str_appendf(tls, pCheck+72, (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx, libc.VaList(bp+8, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv0, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv2)) @@ -55544,11 +55827,11 @@ func _checkRef(tls *libc.TLS, pCheck uintptr, iPage TPgno) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if iPage > (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnCkPage || iPage == uint32(0) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4207, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4271, libc.VaList(bp+8, iPage)) return int32(1) } if _getPageReferenced(tls, pCheck, iPage) != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4230, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4294, libc.VaList(bp+8, iPage)) return int32(1) } _setPageReferenced(tls, pCheck, iPage) @@ -55574,11 +55857,11 @@ func _checkPtrmap(tls *libc.TLS, pCheck uintptr, iChild TPgno, eType Tu8, iParen if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FusableSize/uint32(4)-uint32(2) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4360, libc.VaList(bp+16, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4424, libc.VaList(bp+16, iPage)) N-- } else { i = 0 @@ -55650,11 +55933,11 @@ func _checkList(tls *libc.TLS, pCheck uintptr, isFreeList int32, iPage TPgno, N } if N != 0 && nErrAtStart == (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr { if isFreeList != 0 { - v2 = __ccgo_ts + 4399 + v2 = __ccgo_ts + 4463 } else { - v2 = __ccgo_ts + 4404 + v2 = __ccgo_ts + 4468 } - _checkAppendMsg(tls, pCheck, __ccgo_ts+4425, libc.VaList(bp+16, v2, expected-N, expected)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4489, libc.VaList(bp+16, v2, expected-N, expected)) } } @@ -55790,12 +56073,12 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr if _checkRef(tls, pCheck, iPage) != 0 { return 0 } - (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4451 + (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4515 (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = iPage v1 = _btreeGetPage(tls, pBt, iPage, bp+8, 0) rc = v1 if v1 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4469, libc.VaList(bp+56, rc)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4533, libc.VaList(bp+56, rc)) if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< usableSize-uint32(4) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4623, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4687, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) doCoverageCheck = 0 goto _4 } pCell = data + uintptr(pc) (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FxParseCell})))(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), pCell, bp+24) if pc+uint32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnSize) > usableSize { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4653, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4717, 0) doCoverageCheck = 0 goto _4 } @@ -55877,7 +56163,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr v5 = libc.BoolInt32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey >= *(*Ti64)(unsafe.Pointer(bp))) } if v5 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4677, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4741, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) } *(*Ti64)(unsafe.Pointer(bp)) = (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey keyCanBeEqual = 0 /* Only the first key on the page may ==maxKey */ @@ -55900,7 +56186,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr d2 = _checkTreePage(tls, pCheck, uint32(pgno), bp, *(*Ti64)(unsafe.Pointer(bp))) keyCanBeEqual = 0 if d2 != depth { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4701, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4765, 0) depth = d2 } } else { @@ -55977,7 +56263,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr prev = contentOffset - uint32(1) /* Implied first min-heap entry */ for _btreeHeapPull(tls, heap, bp+16) != 0 { if prev&uint32(0xffff) >= *(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4726, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4790, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) break } else { nFrag = int32(uint32(nFrag) + (*(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) - prev&libc.Uint32FromInt32(0xffff) - libc.Uint32FromInt32(1))) @@ -55991,9 +56277,10 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr ** number of fragmented free bytes within the cell content area. */ if *(*Tu32)(unsafe.Pointer(heap)) == uint32(0) && nFrag != int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4763, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4827, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) } } + goto end_of_check end_of_check: ; if !(doCoverageCheck != 0) { @@ -56030,16 +56317,16 @@ end_of_check: // ** the unverified btrees. Except, if aRoot[1] is 1, then the freelist // ** checks are still performed. // */ -func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { - bp := tls.Alloc(256) - defer tls.Free(256) +func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, aCnt uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { + bp := tls.Alloc(272) + defer tls.Free(272) var bCkFreelist, bPartial int32 var i, mx, mxInHdr TPgno var pBt uintptr var savedDbFlags Tu64 - var _ /* notUsed at bp+224 */ Ti64 + var _ /* notUsed at bp+232 */ Ti64 var _ /* sCheck at bp+0 */ TIntegrityCk - var _ /* zErr at bp+120 */ [100]uint8 + var _ /* zErr at bp+128 */ [100]uint8 _, _, _, _, _, _, _ = bCkFreelist, bPartial, i, mx, mxInHdr, pBt, savedDbFlags pBt = (*TBtree)(unsafe.Pointer(p)).FpBt savedDbFlags = (*Tsqlite3)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags @@ -56053,13 +56340,13 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } } _sqlite3BtreeEnter(tls, p) - libc.Xmemset(tls, bp, 0, uint64(120)) + libc.Xmemset(tls, bp, 0, uint64(128)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fdb = db (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt = pBt (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage = _btreePagecount(tls, (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr = mxErr - _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+120, int32(100), int32(SQLITE_MAX_LENGTH)) + _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+128, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FerrMsg.FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage == uint32(0) { goto integrity_ck_cleanup @@ -56081,7 +56368,7 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin /* Check the integrity of the freelist */ if bCkFreelist != 0 { - (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4815 + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4879 _checkList(tls, bp, int32(1), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+32), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = uintptr(0) } @@ -56105,11 +56392,11 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } mxInHdr = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+52) if mx != mxInHdr { - _checkAppendMsg(tls, bp, __ccgo_ts+4826, libc.VaList(bp+240, mx, mxInHdr)) + _checkAppendMsg(tls, bp, __ccgo_ts+4890, libc.VaList(bp+248, mx, mxInHdr)) } } else { if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+64) != uint32(0) { - _checkAppendMsg(tls, bp, __ccgo_ts+4871, 0) + _checkAppendMsg(tls, bp, __ccgo_ts+4935, 0) } } } @@ -56119,14 +56406,15 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin if !(int32(i) < nRoot && (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr != 0) { break } - if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) == uint32(0) { - goto _2 - } - if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { - _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnRow = 0 + if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) != 0 { + if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { + _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + } + (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fv0 = *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) + _checkTreePage(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), bp+232, libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)< nRec || iHdr >= *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84303)) + iHdr = uint32(uint8(v1)) + if *(*Tu32)(unsafe.Pointer(bp + 4)) > uint32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84745)) } - iField = *(*int32)(unsafe.Pointer(bp + 4)) + iField = int64(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 for { if !(i <= iCol) { @@ -59113,19 +59436,19 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } else { v3 = int32(_sqlite3GetVarint32(tls, a+uintptr(iHdr), bp)) } - iHdr += int32(uint8(v3)) - if iHdr > *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84309)) + iHdr += uint32(uint8(v3)) + if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84751)) } - szField = int32(_sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp)))) - iField += szField + szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) + iField += int64(szField) goto _2 _2: ; i++ } - if iField > nRec { - return _sqlite3CorruptError(tls, int32(84315)) + if iField > int64(nRec) { + return _sqlite3CorruptError(tls, int32(84757)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -59135,7 +59458,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC return int32(SQLITE_NOMEM) } } - _sqlite3VdbeSerialGet(tls, a+uintptr(iField-szField), *(*Tu32)(unsafe.Pointer(bp)), pMem) + _sqlite3VdbeSerialGet(tls, a+uintptr(iField-int64(szField)), *(*Tu32)(unsafe.Pointer(bp)), pMem) (*TMem)(unsafe.Pointer(pMem)).Fenc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc return SQLITE_OK } @@ -59554,6 +59877,7 @@ func _sqlite3VdbeMultiLoad(tls *libc.TLS, p uintptr, iDest int32, zTypes uintptr i++ } _sqlite3VdbeAddOp2(tls, p, int32(OP_ResultRow), iDest, i) + goto skip_op_resultrow skip_op_resultrow: ; _ = ap @@ -59922,6 +60246,9 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { /* True because of tag-20230419-1 */ (*TOp)(unsafe.Pointer(pOp)).Fp2 = *(*int32)(unsafe.Pointer(aLabel + uintptr(^(*TOp)(unsafe.Pointer(pOp)).Fp2)*4)) } + /* OPFLG_JUMP opcodes never have P2==0, though OPFLG_JUMP0 opcodes + ** might */ + /* Jumps never go off the end of the bytecode array */ break } /* The mkopcodeh.tcl script has so arranged things that the only @@ -59930,6 +60257,7 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { } pOp -= 24 } + goto resolve_p2_values_loop_exit resolve_p2_values_loop_exit: ; if aLabel != 0 { @@ -60433,7 +60761,7 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { switch int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) { case -int32(8): pKeyInfo = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5083, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5147, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) j = 0 for { if !(j < int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)) { @@ -60443,66 +60771,66 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { if pColl != 0 { v2 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } zColl = v2 - if libc.Xstrcmp(tls, zColl, __ccgo_ts+5088) == 0 { - zColl = __ccgo_ts + 5095 + if libc.Xstrcmp(tls, zColl, __ccgo_ts+5152) == 0 { + zColl = __ccgo_ts + 5159 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_DESC) != 0 { - v3 = __ccgo_ts + 5076 + v3 = __ccgo_ts + 5140 } else { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_BIGNULL) != 0 { - v4 = __ccgo_ts + 5097 + v4 = __ccgo_ts + 5161 } else { - v4 = __ccgo_ts + 1650 + v4 = __ccgo_ts + 1664 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5100, libc.VaList(bp+40, v3, v4, zColl)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5164, libc.VaList(bp+40, v3, v4, zColl)) goto _1 _1: ; j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5108, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5172, int32(1)) case -int32(2): pColl1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5124, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5188, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) case -int32(7): pDef = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5133, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5197, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) case -int32(15): pDef1 = (*Tsqlite3_context)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpFunc - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5133, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5197, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) case -int32(13): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1406, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1425, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(3): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5140, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5204, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) case -int32(12): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1373, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1392, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(10): pMem = *(*uintptr)(unsafe.Pointer(pOp + 16)) if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Str) != 0 { zP4 = (*TMem)(unsafe.Pointer(pMem)).Fz } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1406, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1425, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1373, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1392, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Null) != 0 { - zP4 = __ccgo_ts + 1651 + zP4 = __ccgo_ts + 1665 } else { - zP4 = __ccgo_ts + 5143 + zP4 = __ccgo_ts + 5207 } } } } case -int32(11): pVtab = (*TVTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5150, libc.VaList(bp+40, pVtab)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5214, libc.VaList(bp+40, pVtab)) case -int32(14): ai = *(*uintptr)(unsafe.Pointer(pOp + 16)) n = *(*Tu32)(unsafe.Pointer(ai)) /* The first element of an INTARRAY is always the @@ -60517,15 +60845,15 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } else { v6 = int32(',') } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5158, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5222, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) goto _5 _5: ; i++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5163, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5227, int32(1)) case -int32(4): - zP4 = __ccgo_ts + 5165 + zP4 = __ccgo_ts + 5229 case -int32(5): zP4 = (*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FzName default: @@ -60541,10 +60869,10 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } var _encnames = [4]uintptr{ - 0: __ccgo_ts + 5110, - 1: __ccgo_ts + 5112, - 2: __ccgo_ts + 5114, - 3: __ccgo_ts + 5119, + 0: __ccgo_ts + 5174, + 1: __ccgo_ts + 5176, + 2: __ccgo_ts + 5178, + 3: __ccgo_ts + 5183, } // C documentation @@ -61495,7 +61823,7 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { retryCount = 0 /* Select a super-journal file name */ nMainFile = _sqlite3Strlen30(tls, zMainFile) - zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5173, libc.VaList(bp+24, 0, zMainFile, 0)) + zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5237, libc.VaList(bp+24, 0, zMainFile, 0)) if zSuper == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -61503,18 +61831,18 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { for cond := true; cond; cond = rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 8)) != 0 { if retryCount != 0 { if retryCount > int32(100) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5185, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5249, libc.VaList(bp+24, zSuper)) _sqlite3OsDelete(tls, pVfs, zSuper, 0) break } else { if retryCount == int32(1) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5199, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5263, libc.VaList(bp+24, zSuper)) } } } retryCount++ Xsqlite3_randomness(tls, int32(4), bp+12) - Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5214, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) + Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5278, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) /* The antipenultimate character of the super-journal name must ** be "9" to avoid name collisions when using 8+3 filenames. */ rc = _sqlite3OsAccess(tls, pVfs, zSuper, SQLITE_ACCESS_EXISTS, bp+8) @@ -61745,7 +62073,7 @@ func _sqlite3VdbeCheckFk(tls *libc.TLS, p uintptr, deferred int32) (r int32) { if deferred != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredCons+(*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons > 0 || !(deferred != 0) && (*TVdbe)(unsafe.Pointer(p)).FnFkConstraint > 0 { (*TVdbe)(unsafe.Pointer(p)).Frc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(3)< y { return +libc.Int32FromInt32(1) } - s = float64(i) - if s < r { + if float64(i) < r { v2 = -int32(1) } else { - v2 = libc.BoolInt32(s > r) + v2 = libc.BoolInt32(float64(i) > r) } return v2 } @@ -63054,7 +63381,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89131))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89580))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -63144,7 +63471,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || int32((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89212))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89661))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -63179,7 +63506,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = int32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+uint32(nStr) > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89242))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89691))) return 0 /* Corruption */ } else { if int32((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -63233,7 +63560,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += uint32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89293))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89742))) return 0 /* Corrupt index */ } } @@ -63347,6 +63674,7 @@ func _vdbeRecordCompareString(tls *libc.TLS, nKey1 int32, pKey1 uintptr, pPKey2 _, _, _, _, _, _ = aKey1, nCmp, nStr, res, szHdr, v1 aKey1 = pKey1 *(*int32)(unsafe.Pointer(bp)) = int32(int8(*(*Tu8)(unsafe.Pointer(aKey1 + 1)))) + goto vrcs_restart vrcs_restart: ; if *(*int32)(unsafe.Pointer(bp)) < int32(12) { @@ -63364,7 +63692,7 @@ vrcs_restart: szHdr = int32(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89456))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89905))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -63512,10 +63840,11 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr return SQLITE_OK /* Jump here if database corruption is detected after m has been ** allocated. Free the m object and return SQLITE_CORRUPT. */ + goto idx_rowid_corruption idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(89614)) + return _sqlite3CorruptError(tls, int32(90063)) } // C documentation @@ -63546,7 +63875,7 @@ func _sqlite3VdbeIdxKeyCompare(tls *libc.TLS, db uintptr, pC uintptr, pUnpacked ** that btreeParseCellPtr() and sqlite3GetVarint32() are implemented */ if nCellKey <= 0 || nCellKey > int64(0x7fffffff) { *(*int32)(unsafe.Pointer(res)) = 0 - return _sqlite3CorruptError(tls, int32(89647)) + return _sqlite3CorruptError(tls, int32(90096)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(nCellKey), bp) @@ -63697,15 +64026,15 @@ func _sqlite3NotPureFunc(tls *libc.TLS, pCtx uintptr) (r int32) { pOp = (*TVdbe)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe)).FaOp + uintptr((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FiOp)*24 if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_PureFunc) { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_IsCheck) != 0 { - zContext = __ccgo_ts + 5257 + zContext = __ccgo_ts + 5321 } else { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_GenCol) != 0 { - zContext = __ccgo_ts + 5276 + zContext = __ccgo_ts + 5340 } else { - zContext = __ccgo_ts + 5295 + zContext = __ccgo_ts + 5359 } } - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5304, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5368, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) return 0 @@ -63879,7 +64208,7 @@ func Xsqlite3_expired(tls *libc.TLS, pStmt uintptr) (r int32) { // */ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { if (*TVdbe)(unsafe.Pointer(p)).Fdb == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5340, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5404, 0) return int32(1) } else { return 0 @@ -63889,7 +64218,7 @@ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { func _vdbeSafetyNotNull(tls *libc.TLS, p uintptr) (r int32) { if p == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5385, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5449, 0) return int32(1) } else { return _vdbeSafety(tls, p) @@ -63947,7 +64276,7 @@ func Xsqlite3_finalize(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt db = (*TVdbe)(unsafe.Pointer(v)).Fdb if _vdbeSafety(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90035)) + return _sqlite3MisuseError(tls, int32(90484)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -64450,7 +64779,7 @@ func Xsqlite3_result_error_code(tls *libc.TLS, pCtx uintptr, errCode int32) { // /* Force an SQLITE_TOOBIG error. */ func Xsqlite3_result_error_toobig(tls *libc.TLS, pCtx uintptr) { (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = int32(SQLITE_TOOBIG) - _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5425, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) + _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5489, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) } // C documentation @@ -64529,6 +64858,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { _, _ = db, rc db = (*TVdbe)(unsafe.Pointer(p)).Fdb if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_RUN_STATE) { + goto restart_step restart_step: ; if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) == int32(VDBE_READY_STATE) { @@ -64626,6 +64956,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { rc = (*TVdbe)(unsafe.Pointer(p)).Frc } } + goto end_of_step end_of_step: ; /* There are only a limited number of result codes allowed from the @@ -64649,7 +64980,7 @@ func Xsqlite3_step(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt /* the prepared statement */ cnt = 0 /* The database connection */ if _vdbeSafetyNotNull(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90829)) + return _sqlite3MisuseError(tls, int32(91278)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -64779,7 +65110,7 @@ func _valueFromValueList(tls *libc.TLS, pVal uintptr, ppOut uintptr, bNext int32 _, _, _, _, _, _, _ = iOff, pOut, pRhs, rc, sz, zBuf, v1 *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) if pVal == uintptr(0) { - return _sqlite3MisuseError(tls, int32(90950)) + return _sqlite3MisuseError(tls, int32(91399)) } if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -65001,6 +65332,7 @@ func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, (*TAuxData)(unsafe.Pointer(pAuxData)).FpAux = pAux (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = xDelete return + goto failed failed: ; if xDelete != 0 { @@ -65238,18 +65570,18 @@ func Xsqlite3_column_type(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { // ** Column names appropriate for EXPLAIN or EXPLAIN QUERY PLAN. // */ var _azExplainColNames8 = [12]uintptr{ - 0: __ccgo_ts + 5448, - 1: __ccgo_ts + 5453, - 2: __ccgo_ts + 5460, - 3: __ccgo_ts + 5463, - 4: __ccgo_ts + 5466, - 5: __ccgo_ts + 5469, - 6: __ccgo_ts + 5472, - 7: __ccgo_ts + 5475, - 8: __ccgo_ts + 5483, - 9: __ccgo_ts + 5486, - 10: __ccgo_ts + 5493, - 11: __ccgo_ts + 5501, + 0: __ccgo_ts + 5512, + 1: __ccgo_ts + 5517, + 2: __ccgo_ts + 5524, + 3: __ccgo_ts + 5527, + 4: __ccgo_ts + 5530, + 5: __ccgo_ts + 5533, + 6: __ccgo_ts + 5536, + 7: __ccgo_ts + 5539, + 8: __ccgo_ts + 5547, + 9: __ccgo_ts + 5550, + 10: __ccgo_ts + 5557, + 11: __ccgo_ts + 5565, } var _azExplainColNames16data = [60]Tu16{ 0: uint16('a'), @@ -65383,6 +65715,7 @@ func _columnName(tls *libc.TLS, pStmt uintptr, N int32, useUtf16 int32, useType ret = uintptr(0) } } + goto columnName_end columnName_end: ; Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -65492,14 +65825,14 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { var v2 bool _, _, _ = pVar, v1, v2 if _vdbeSafetyNotNull(tls, p) != 0 { - return _sqlite3MisuseError(tls, int32(91554)) + return _sqlite3MisuseError(tls, int32(92003)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(91558))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(92007))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5508, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(91562)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5572, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) + return _sqlite3MisuseError(tls, int32(92011)) } if i >= uint32((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -66063,7 +66396,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp /* Test that this call is being made from within an SQLITE_DELETE or ** SQLITE_UPDATE pre-update callback, and that iIdx is within range. */ if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_INSERT) { - rc = _sqlite3MisuseError(tls, int32(92098)) + rc = _sqlite3MisuseError(tls, int32(92547)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -66109,6 +66442,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } } + goto preupdate_old_out preupdate_old_out: ; _sqlite3Error(tls, db, rc) @@ -66192,7 +66526,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp rc = SQLITE_OK p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(92221)) + rc = _sqlite3MisuseError(tls, int32(92670)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -66258,6 +66592,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } *(*uintptr)(unsafe.Pointer(ppValue)) = pMem + goto preupdate_new_out preupdate_new_out: ; _sqlite3Error(tls, db, rc) @@ -66365,7 +66700,7 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr break } } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5548, int32(3)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5612, int32(3)) Xsqlite3_str_append(tls, bp+8, zStart, int32(int64(zRawSql)-int64(zStart))) } } else { @@ -66397,13 +66732,13 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr nextIndex = v2 pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(*(*int32)(unsafe.Pointer(bp))-int32(1))*56 if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Null) != 0 { - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1651, int32(4)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1665, int32(4)) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1406, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1425, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5069, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5133, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Str) != 0 { /* Number of bytes of the string text to include in output */ enc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc @@ -66418,28 +66753,28 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr pVar = bp + 40 } nOut = (*TMem)(unsafe.Pointer(pVar)).Fn - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5552, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5616, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) if int32(enc) != int32(SQLITE_UTF8) { _sqlite3VdbeMemRelease(tls, bp+40) } } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Zero) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5559, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5623, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) } else { /* Number of bytes of the blob to include in output */ - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5572, int32(2)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5636, int32(2)) nOut1 = (*TMem)(unsafe.Pointer(pVar)).Fn i = 0 for { if !(i < nOut1) { break } - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5575, libc.VaList(bp+104, int32(*(*uint8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5639, libc.VaList(bp+104, int32(*(*uint8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) goto _3 _3: ; i++ } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5580, int32(1)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5644, int32(1)) } } } @@ -67039,7 +67374,7 @@ var _azTypes = [5]uintptr{ 1: __ccgo_ts + 1146, 2: __ccgo_ts + 1151, 3: __ccgo_ts + 1129, - 4: __ccgo_ts + 1651, + 4: __ccgo_ts + 1665, } // C documentation @@ -67053,7 +67388,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { defer tls.Free(976) var aCol, aMem, aOffset, aOp, aPermute, aRoot, apArg, apArg1, db, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pnErr, t1, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v240, v241, v242, v250, v251, v252, v253, v255, v263, v278, v279, v286, v288, v297, v298, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 uintptr var affinity uint8 - var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 + var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, savedAnalysisLimit, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 var colCacheCtr, iAddr, iMap, iPrior, idx, len11, n3, p22, p23, serialType, serial_type, v213, v214, v216, v221, v222 Tu32 var encoding, isWriteLock, mTrace, op, p5, resetSchemaOnFault, vtabOnConflict, v225 Tu8 var flags1, flags11, flags2, flags3, flags31, newType, nullFlag, type1, type2, typeMask, v190 Tu16 @@ -67110,7 +67445,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { var _ /* z at bp+688 */ uintptr var _ /* zErr at bp+632 */ uintptr var _ /* zErr at bp+792 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, savedAnalysisLimit, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 aOp = (*TVdbe)(unsafe.Pointer(p)).FaOp /* Copy of p->aOp */ pOp = aOp /* Current operation */ rc = SQLITE_OK /* Value to return */ @@ -67380,7 +67715,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto _109 case int32(OP_SeekEnd): goto _110 - case int32(OP_IfSmaller): + case int32(OP_IfSizeBetween): goto _111 case int32(OP_Sort): goto _112 @@ -67582,6 +67917,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { */ _2: ; /* jump */ + goto jump_to_p2_and_check_for_interrupt jump_to_p2_and_check_for_interrupt: ; pOp = aOp + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp2-int32(1))*24 @@ -67595,6 +67931,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** way for performance, to avoid having to run the interrupt and progress ** checks on every opcode. This helps sqlite3_step() to run about 1.5% ** faster according to "valgrind --tool=cachegrind" */ + goto check_for_interrupt check_for_interrupt: ; if libc.AtomicLoadPInt32(db+432) != 0 { @@ -67672,7 +68009,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: EndCoroutine */ _5: - ; /* jump */ + ; /* jump0 */ pOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 *(*Ti64)(unsafe.Pointer(pOut)) = int64((*TOp)(unsafe.Pointer(pOp)).Fp3 - int32(1)) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Int) @@ -67681,6 +68018,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* Most jump operations do a goto to this spot in order to update ** the pOp pointer. */ + goto jump_to_p2 jump_to_p2: ; /* There are never any jumps to instruction 0 */ @@ -67691,7 +68029,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** ** The instruction at the address in register P1 is a Yield. ** Jump to the P2 parameter of that Yield. - ** After the jump, register P1 becomes undefined. + ** After the jump, the value register P1 is left with a value + ** such that subsequent OP_Yields go back to the this same + ** OP_EndCoroutine instruction. ** ** See also: InitCoroutine */ @@ -67699,8 +68039,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 pCaller = aOp + uintptr(*(*Ti64)(unsafe.Pointer(pIn1)))*24 + *(*Ti64)(unsafe.Pointer(pIn1)) = int64(int32((int64(pOp)-int64((*TVdbe)(unsafe.Pointer(p)).FaOp))/24) - int32(1)) pOp = aOp + uintptr((*TVdbeOp)(unsafe.Pointer(pCaller)).Fp2-int32(1))*24 - (*TMem)(unsafe.Pointer(pIn1)).Fflags = uint16(MEM_Undefined) goto _187 /* Opcode: Yield P1 P2 * * * ** @@ -67797,15 +68137,15 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TVdbe)(unsafe.Pointer(p)).FerrorAction = uint8((*TOp)(unsafe.Pointer(pOp)).Fp2) if (*TVdbe)(unsafe.Pointer(p)).Frc != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+5616, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) + _sqlite3VdbeError(tls, p, __ccgo_ts+5680, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) if *(*uintptr)(unsafe.Pointer(pOp + 16)) != 0 { - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5637, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5701, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } } else { - _sqlite3VdbeError(tls, p, __ccgo_ts+3797, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3861, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } pcx = int32((int64(pOp) - int64(aOp)) / 24) - Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5644, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) + Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5708, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) } rc = _sqlite3VdbeHalt(tls, p) if rc == int32(SQLITE_BUSY) { @@ -67997,13 +68337,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } (*TMem)(unsafe.Pointer(pOut)).Fenc = encoding goto _187 - /* Opcode: Variable P1 P2 * P4 * - ** Synopsis: r[P2]=parameter(P1,P4) + /* Opcode: Variable P1 P2 * * * + ** Synopsis: r[P2]=parameter(P1) ** ** Transfer the values of bound parameter P1 into register P2 - ** - ** If the parameter is named, then its name appears in P4. - ** The P4 value is used by sqlite3_bind_parameter_name(). */ _19: ; /* Value being transferred */ @@ -68294,6 +68631,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(int32(type1)&int32(type2)&int32(MEM_Int) != 0) { goto _200 } + goto int_math int_math: ; iA = *(*Ti64)(unsafe.Pointer(pIn1)) @@ -68346,6 +68684,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if int32(type1)&int32(type2)&int32(MEM_Int) != 0 { goto int_math } + goto fp_math fp_math: ; rA = _sqlite3VdbeRealValue(tls, pIn1) @@ -68385,6 +68724,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _201: ; goto _187 + goto arithmetic_result_is_null arithmetic_result_is_null: ; _sqlite3VdbeMemSetNull(tls, pOut) @@ -68523,7 +68863,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** raise an SQLITE_MISMATCH exception. */ _38: - ; /* jump, in1 */ + ; /* jump0, in1 */ pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 if int32((*TMem)(unsafe.Pointer(pIn1)).Fflags)&int32(MEM_Int) == 0 { _applyAffinity(tls, pIn1, uint8(SQLITE_AFF_NUMERIC), encoding) @@ -69252,6 +69592,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* PseudoTable input register */ pC3 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) p22 = uint32((*TOp)(unsafe.Pointer(pOp)).Fp2) + goto op_column_restart op_column_restart: ; aOffset = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaOffset @@ -69378,6 +69719,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { zData = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaRow } /* Fill in pC->aType[i] and aOffset[i] values through the p2-th field. */ + goto op_column_read_header op_column_read_header: ; i1 = int32((*TVdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed) @@ -69515,16 +69857,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } } + goto op_column_out op_column_out: ; goto _187 + goto op_column_corrupt op_column_corrupt: ; if (*(*TOp)(unsafe.Pointer(aOp))).Fp3 > 0 { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(95863)) + rc = _sqlite3CorruptError(tls, int32(96311)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -69624,9 +69968,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { i2++ } goto _187 + goto vdbe_type_error vdbe_type_error: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5668, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) + _sqlite3VdbeError(tls, p, __ccgo_ts+5732, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(12)< 0 && p12 == int32(SAVEPOINT_RELEASE) { /* It is not possible to release (commit) a savepoint if there are ** active write statements. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5782, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5846, 0) rc = int32(SQLITE_BUSY) } else { /* Determine whether or not this is a transaction savepoint. If so, @@ -70222,7 +70567,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If this instruction implements a COMMIT and other VMs are writing ** return an error indicating that the other VMs must complete first. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5836, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5900, 0) rc = int32(SQLITE_BUSY) goto abort_due_to_error } else { @@ -70252,12 +70597,12 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto vdbe_return } else { if !(desiredAutoCommit != 0) { - v250 = __ccgo_ts + 5891 + v250 = __ccgo_ts + 5955 } else { if iRollback != 0 { - v251 = __ccgo_ts + 5939 + v251 = __ccgo_ts + 6003 } else { - v251 = __ccgo_ts + 5982 + v251 = __ccgo_ts + 6046 } v250 = v251 } @@ -70349,7 +70694,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** SQL statement was prepared. */ _sqlite3DbFree(tls, db, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg) - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6023) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6087) /* If the schema-cookie from the database file matches the cookie ** stored with the in-memory representation of the schema, do ** not reload the schema from the database file. @@ -70587,6 +70932,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** and report database corruption if they were not, but this check has ** since moved into the btree layer. */ (*TVdbeCursor)(unsafe.Pointer(pCur)).FisTable = libc.BoolUint8(int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) != -int32(8)) + goto open_cursor_set_hints open_cursor_set_hints: ; _sqlite3BtreeCursorHintFlags(tls, *(*uintptr)(unsafe.Pointer(pCur + 48)), uint32(int32((*TOp)(unsafe.Pointer(pOp)).Fp5)&(libc.Int32FromInt32(OPFLAG_BULKCSR)|libc.Int32FromInt32(OPFLAG_SEEKEQ)))) @@ -70666,7 +71012,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** form sqlite3BtreeInsert() where the length of the data is zero. */ /* Only used when number of columns is zero */ (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fn = 0 - (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1650 + (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1664 } pCx1 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) if pCx1 != 0 && !(int32(TBool(*(*uint8)(unsafe.Pointer(pCx1 + 8))&0x8>>3)) != 0) && (*TOp)(unsafe.Pointer(pOp)).Fp2 <= int32((*TVdbeCursor)(unsafe.Pointer(pCx1)).FnField) { @@ -70771,7 +71117,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** is the only cursor opcode that works with a pseudo-table. ** ** P3 is the number of fields in the records that will be stored by - ** the pseudo-table. + ** the pseudo-table. If P2 is 0 or negative then the pseudo-cursor + ** will return NULL for every column. */ _83: ; @@ -70889,11 +71236,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: Found, NotFound, SeekGt, SeekGe, SeekLt */ _88: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _87: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _86: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _85: ; /* Only interested in == results */ pC5 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) @@ -71023,6 +71370,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 112)) = _sqlite3BtreeEof(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48))) } } + goto seek_not_found seek_not_found: ; if *(*int32)(unsafe.Pointer(bp + 112)) != 0 { @@ -71128,6 +71476,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(*(*int32)(unsafe.Pointer(bp + 160)) > 0 && int32((*TOp)(unsafe.Pointer(pOp)).Fp5) == 0) { goto _259 } + goto seekscan_search_fail seekscan_search_fail: ; /* Jump to SeekGE.P2, ending the loop */ @@ -71440,6 +71789,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* jump, in3, ncycle */ pIn3 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 iKey1 = uint64(*(*Ti64)(unsafe.Pointer(pIn3))) + goto notExistsWithKey notExistsWithKey: ; pC10 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) @@ -71453,7 +71803,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TVdbeCursor)(unsafe.Pointer(pC10)).FseekResult = *(*int32)(unsafe.Pointer(bp + 248)) if *(*int32)(unsafe.Pointer(bp + 248)) != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp2 == 0 { - rc = _sqlite3CorruptError(tls, int32(98111)) + rc = _sqlite3CorruptError(tls, int32(98565)) } else { goto jump_to_p2 } @@ -72053,10 +72403,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } goto _187 - /* Opcode: IfSmaller P1 P2 P3 * * + /* Opcode: IfSizeBetween P1 P2 P3 P4 * ** - ** Estimate the number of rows in the table P1. Jump to P2 if that - ** estimate is less than approximately 2**(0.1*P3). + ** Let N be the approximate number of rows in the table or index + ** with cursor P1 and let X be 10*log2(N) if N is positive or -1 + ** if N is zero. + ** + ** Jump to P2 if X is in between P3 and P4, inclusive. */ _111: ; @@ -72066,12 +72419,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { goto abort_due_to_error } - if *(*int32)(unsafe.Pointer(bp + 396)) == 0 { + if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { + sz = int64(-int32(1)) /* -Infinity encoding */ + } else { sz = _sqlite3BtreeRowCountEst(tls, pCrsr5) - if sz >= 0 && int32(_sqlite3LogEst(tls, uint64(sz))) < (*TOp)(unsafe.Pointer(pOp)).Fp3 { - *(*int32)(unsafe.Pointer(bp + 396)) = int32(1) - } + sz = int64(_sqlite3LogEst(tls, uint64(sz))) } + *(*int32)(unsafe.Pointer(bp + 396)) = libc.BoolInt32(sz >= int64((*TOp)(unsafe.Pointer(pOp)).Fp3) && sz <= int64((*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { goto jump_to_p2 } @@ -72208,6 +72562,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* jump, ncycle */ pC22 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) rc = _sqlite3BtreeNext(tls, *(*uintptr)(unsafe.Pointer(pC22 + 48)), (*TOp)(unsafe.Pointer(pOp)).Fp3) + goto next_tail next_tail: ; (*TVdbeCursor)(unsafe.Pointer(pC22)).FcacheStatus = uint32(CACHE_STALE) @@ -72340,7 +72695,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } else { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 && !(_sqlite3WritableSchema(tls, db) != 0) { - rc = _sqlite3ReportError(tls, libc.Int32FromInt32(SQLITE_CORRUPT)|libc.Int32FromInt32(3)< int64(0x7fffffff) { - rc = _sqlite3CorruptError(tls, int32(99398)) + rc = _sqlite3CorruptError(tls, int32(99862)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -72637,11 +72992,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } *(*Ti64)(unsafe.Pointer(pOut)) = int64(*(*TPgno)(unsafe.Pointer(bp + 624))) goto _187 - /* Opcode: SqlExec * * * P4 * + /* Opcode: SqlExec P1 P2 * P4 * ** ** Run the SQL statement or statements specified in the P4 string. - ** Disable Auth and Trace callbacks while those statements are running if - ** P1 is true. + ** + ** The P1 parameter is a bitmask of options: + ** + ** 0x0001 Disable Auth and Trace callbacks while the statements + ** in P4 are running. + ** + ** 0x0002 Set db->nAnalysisLimit to P2 while the statements in + ** P4 are running. + ** */ _132: ; @@ -72649,16 +73011,21 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*uintptr)(unsafe.Pointer(bp + 632)) = uintptr(0) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth mTrace = (*Tsqlite3)(unsafe.Pointer(db)).FmTrace - if (*TOp)(unsafe.Pointer(pOp)).Fp1 != 0 { + savedAnalysisLimit = (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0001) != 0 { (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(0) } + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0002) != 0 { + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = (*TOp)(unsafe.Pointer(pOp)).Fp2 + } rc = Xsqlite3_exec(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16)), uintptr(0), uintptr(0), bp+632) (*Tsqlite3)(unsafe.Pointer(db)).FnSqlExec-- (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = mTrace + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = savedAnalysisLimit if *(*uintptr)(unsafe.Pointer(bp + 632)) != 0 || rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3797, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3861, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 632))) if rc == int32(SQLITE_NOMEM) { goto no_mem @@ -72689,13 +73056,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_SchemaChange) libc.SetBitFieldPtr16Uint32(p+200, libc.Uint32FromInt32(0), 0, 0x3) } else { - zSchema = __ccgo_ts + 6068 + zSchema = __ccgo_ts + 6132 (*(*TInitData)(unsafe.Pointer(bp + 640))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 640))).FiDb = iDb3 (*(*TInitData)(unsafe.Pointer(bp + 640))).FpzErrMsg = p + 168 (*(*TInitData)(unsafe.Pointer(bp + 640))).FmInitFlags = uint32(0) (*(*TInitData)(unsafe.Pointer(bp + 640))).FmxPage = _sqlite3BtreeLastPage(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6082, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6146, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -72710,7 +73077,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* The OP_ParseSchema opcode with a non-NULL P4 argument should parse ** at least one SQL statement. Any less than that indicates that ** the sqlite_schema table is corrupt. */ - rc = _sqlite3CorruptError(tls, int32(99678)) + rc = _sqlite3CorruptError(tls, int32(100155)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -72776,11 +73143,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* Opcode: IntegrityCk P1 P2 P3 P4 P5 ** ** Do an analysis of the currently open database. Store in - ** register P1 the text of an error message describing any problems. - ** If no problems are found, store a NULL in register P1. + ** register (P1+1) the text of an error message describing any problems. + ** If no problems are found, store a NULL in register (P1+1). ** - ** The register P3 contains one less than the maximum number of allowed errors. - ** At most reg(P3) errors will be reported. + ** The register (P1) contains one less than the maximum number of allowed + ** errors. At most reg(P1) errors will be reported. ** In other words, the analysis stops as soon as reg(P1) errors are ** seen. Reg(P1) is updated with the number of errors remaining. ** @@ -72796,9 +73163,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* Register keeping track of errors remaining */ nRoot = (*TOp)(unsafe.Pointer(pOp)).Fp2 aRoot = *(*uintptr)(unsafe.Pointer(pOp + 16)) - pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 - pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 - rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) + pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 + pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1+int32(1))*56 + rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, aMem+uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) _sqlite3VdbeMemSetNull(tls, pIn1) if *(*int32)(unsafe.Pointer(bp + 680)) == 0 { } else { @@ -72904,7 +73271,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** P1 contains the address of the memory cell that contains the first memory ** cell in an array of values used as arguments to the sub-program. P2 ** contains the address to jump to if the sub-program throws an IGNORE - ** exception using the RAISE() function. Register P3 contains the address + ** exception using the RAISE() function. P2 might be zero, if there is + ** no possibility that an IGNORE exception will be raised. + ** Register P3 contains the address ** of a memory cell in this (the parent) VM that is used to allocate the ** memory required by the sub-vdbe at runtime. ** @@ -72945,7 +73314,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } if (*TVdbe)(unsafe.Pointer(p)).FnFrame >= *(*int32)(unsafe.Pointer(db + 136 + 10*4)) { rc = int32(SQLITE_ERROR) - _sqlite3VdbeError(tls, p, __ccgo_ts+6125, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6189, 0) goto abort_due_to_error } /* Register pRt is used to store the memory required to save the state @@ -73309,7 +73678,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* IMP: R-24505-23230 */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3797, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3861, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError } if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FskipFlag != 0 { @@ -73365,7 +73734,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3VdbeMemFinalize(tls, pMem3, *(*uintptr)(unsafe.Pointer(pOp + 16))) } if rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3797, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3861, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) goto abort_due_to_error } _sqlite3VdbeChangeEncoding(tls, pMem3, int32(encoding)) @@ -73444,11 +73813,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeRead > int32(1) { rc = int32(SQLITE_ERROR) if eNew == int32(PAGER_JOURNALMODE_WAL) { - v286 = __ccgo_ts + 6162 + v286 = __ccgo_ts + 6226 } else { - v286 = __ccgo_ts + 6167 + v286 = __ccgo_ts + 6231 } - _sqlite3VdbeError(tls, p, __ccgo_ts+6174, libc.VaList(bp+944, v286)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6238, libc.VaList(bp+944, v286)) goto abort_due_to_error } else { if eOld == int32(PAGER_JOURNALMODE_WAL) { @@ -73601,7 +73970,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { if rc&int32(0xFF) == int32(SQLITE_LOCKED) { z1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - _sqlite3VdbeError(tls, p, __ccgo_ts+6226, libc.VaList(bp+944, z1)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6290, libc.VaList(bp+944, z1)) } goto abort_due_to_error } @@ -73763,7 +74132,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TValueList)(unsafe.Pointer(pRhs)).FpOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 pOut = _out2Prerelease(tls, p, pOp) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6255, __ccgo_fp(_sqlite3VdbeValueListFree)) + _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6319, __ccgo_fp(_sqlite3VdbeValueListFree)) goto _187 /* Opcode: VFilter P1 P2 P3 P4 * ** Synopsis: iplan=r[P3] zplan='P4' @@ -73859,7 +74228,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_module)(unsafe.Pointer(pModule4)).FxColumn})))(tls, *(*uintptr)(unsafe.Pointer(pCur5 + 48)), bp+800, (*TOp)(unsafe.Pointer(pOp)).Fp2) _sqlite3VtabImportErrmsg(tls, p, pVtab4) if (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3797, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3861, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) rc = (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError } _sqlite3VdbeChangeEncoding(tls, pDest2, int32(encoding)) @@ -74113,7 +74482,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If the function returned an error, throw an exception */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3797, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3861, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError } _sqlite3VdbeDeleteAuxData(tls, db, p+296, (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FiOp, (*TOp)(unsafe.Pointer(pOp)).Fp1) @@ -74264,7 +74633,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { Xsqlite3_free(tls, z2) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeExec > int32(1) { - z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6265, libc.VaList(bp+944, zTrace)) + z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6329, libc.VaList(bp+944, zTrace)) (*(*func(*libc.TLS, Tu32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*Tsqlite3)(unsafe.Pointer(db)).Ftrace))})))(tls, uint32(SQLITE_TRACE_STMT), (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg, p, z3) _sqlite3DbFree(tls, db, z3) } else { @@ -74329,21 +74698,22 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If we reach this point, it means that execution is finished with ** an error of some kind. */ + goto abort_due_to_error abort_due_to_error: ; if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)<= nProgressLimit && (*Tsqlite3)(unsafe.Pointer(db)).FxProgress != uintptr(0) { @@ -74378,22 +74749,25 @@ vdbe_return: /* Jump to here if a string or blob larger than SQLITE_MAX_LENGTH ** is encountered. */ + goto too_big too_big: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5425, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5489, 0) rc = int32(SQLITE_TOOBIG) goto abort_due_to_error /* Jump to here if a malloc() fails. */ + goto no_mem no_mem: ; _sqlite3OomFault(tls, db) - _sqlite3VdbeError(tls, p, __ccgo_ts+1620, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+1634, 0) rc = int32(SQLITE_NOMEM) goto abort_due_to_error /* Jump to here if the sqlite3_interrupt() API sets the interrupt ** flag. */ + goto abort_due_to_interrupt abort_due_to_interrupt: ; rc = int32(SQLITE_INTERRUPT) @@ -74402,10 +74776,10 @@ abort_due_to_interrupt: } var _azType = [4]uintptr{ - 0: __ccgo_ts + 5582, - 1: __ccgo_ts + 5591, - 2: __ccgo_ts + 5598, - 3: __ccgo_ts + 5604, + 0: __ccgo_ts + 5646, + 1: __ccgo_ts + 5655, + 2: __ccgo_ts + 5662, + 3: __ccgo_ts + 5668, } var _and_logic = [9]uint8{ @@ -74556,16 +74930,16 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr type1 = v1 if type1 < uint32(12) { if type1 == uint32(0) { - v2 = __ccgo_ts + 1636 + v2 = __ccgo_ts + 1650 } else { if type1 == uint32(7) { - v3 = __ccgo_ts + 6303 + v3 = __ccgo_ts + 6367 } else { - v3 = __ccgo_ts + 6308 + v3 = __ccgo_ts + 6372 } v2 = v3 } - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6316, libc.VaList(bp+8, v2)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6380, libc.VaList(bp+8, v2)) rc = int32(SQLITE_ERROR) Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) @@ -74583,10 +74957,10 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr rc = Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) if rc == SQLITE_OK { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6345, libc.VaList(bp+8, iRow)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6409, libc.VaList(bp+8, iRow)) rc = int32(SQLITE_ERROR) } else { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) } } } @@ -74626,15 +75000,15 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, pTab = _sqlite3LocateTable(tls, bp+8, uint32(0), zTable, zDb) if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6365, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6429, libc.VaList(bp+440, zTable)) } if pTab != 0 && !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6395, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6459, libc.VaList(bp+440, zTable)) } if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6431, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6495, libc.VaList(bp+440, zTable)) } if !(pTab != 0) { if (*(*TParse)(unsafe.Pointer(bp + 8))).FzErrMsg != 0 { @@ -74664,7 +75038,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6452, libc.VaList(bp+440, zColumn)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6516, libc.VaList(bp+440, zColumn)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -74690,7 +75064,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, break } if (*(*TsColMap)(unsafe.Pointer(pFKey + 64 + uintptr(j)*16))).FiFrom == iCol { - zFault = __ccgo_ts + 6473 + zFault = __ccgo_ts + 6537 } goto _3 _3: @@ -74715,7 +75089,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } /* FIXME: Be smarter about indexes that use expressions */ if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == iCol || int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == -int32(2) { - zFault = __ccgo_ts + 6485 + zFault = __ccgo_ts + 6549 } goto _5 _5: @@ -74729,7 +75103,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if zFault != 0 { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6493, libc.VaList(bp+440, zFault)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6557, libc.VaList(bp+440, zFault)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -74789,6 +75163,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } _sqlite3ParseObjectReset(tls, bp+8) } + goto blob_open_out blob_open_out: ; if rc == SQLITE_OK && int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { @@ -74800,7 +75175,7 @@ blob_open_out: _sqlite3DbFree(tls, db, pBlob) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v7 = __ccgo_ts + 3797 + v7 = __ccgo_ts + 3861 } else { v7 = libc.UintptrFromInt32(0) } @@ -74890,7 +75265,7 @@ func _blobReadWrite(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset in _, _, _, _, _ = db, iKey, p, rc, v p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102190)) + return _sqlite3MisuseError(tls, int32(102671)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -74989,7 +75364,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r _, _, _, _ = db, p, rc, v1 p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102290)) + return _sqlite3MisuseError(tls, int32(102771)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -75003,7 +75378,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r rc = _blobSeekToRow(tls, p, iRow, bp) if rc != SQLITE_OK { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v1 = __ccgo_ts + 3797 + v1 = __ccgo_ts + 3861 } else { v1 = libc.UintptrFromInt32(0) } @@ -79119,25 +79494,25 @@ func _extendFJMatch(tls *libc.TLS, pParse uintptr, ppList uintptr, pMatch uintpt func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema uintptr) (r int32) { var zLegacy uintptr _ = zLegacy - if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6527, int32(7)) != 0 { + if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6591, int32(7)) != 0 { return 0 } zLegacy = (*TTable)(unsafe.Pointer(pTab)).FzName - if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6535+7) == 0 { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6554+7) == 0 { + if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6599+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6618+7) == 0 { return int32(1) } if pSchema == uintptr(0) { return 0 } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6068+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6132+7) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6573+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6637+7) == 0 { return int32(1) } } else { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6573+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6637+7) == 0 { return int32(1) } } @@ -79173,26 +79548,27 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema // ** If the name cannot be resolved unambiguously, leave an error message // ** in pParse and return WRC_Abort. Return WRC_Prune on success. // */ -func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol uintptr, pNC uintptr, pExpr uintptr) (r int32) { +func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRight uintptr, pNC uintptr, pExpr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var cnt, cntTab, eNewExprOp, hit, i, iCol, j, nSubquery, op, v5 int32 - var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10 uintptr + var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10 uintptr var hCol, hCol1 Tu8 var v7, v8 uint32 var _ /* bRowid at bp+8 */ int32 var _ /* pFJMatch at bp+0 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10, v5, v7, v8 /* Loop counters */ - cnt = 0 /* Number of matching column names */ - cntTab = 0 /* Number of potential "rowid" matches */ - nSubquery = 0 /* How many levels of subquery */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ - pMatch = uintptr(0) /* The matching pSrcList item */ - pTopNC = pNC /* First namecontext in the list */ - pSchema = uintptr(0) /* Schema of the expression */ - eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ - pTab = uintptr(0) /* A column of pTab */ - *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10, v5, v7, v8 /* Loop counters */ + cnt = 0 /* Number of matching column names */ + cntTab = 0 /* Number of potential "rowid" matches */ + nSubquery = 0 /* How many levels of subquery */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ + pMatch = uintptr(0) /* The matching pSrcList item */ + pTopNC = pNC /* First namecontext in the list */ + pSchema = uintptr(0) /* Schema of the expression */ + eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ + pTab = uintptr(0) /* A column of pTab */ + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + zCol = *(*uintptr)(unsafe.Pointer(pRight + 8)) /* the name context cannot be NULL. */ /* The Z in X.Y.Z cannot be NULL */ /* Initialize the node to no-match */ @@ -79223,7 +79599,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ; i++ } - if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6587, zDb) == 0 { + if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6651, zDb) == 0 { /* This branch is taken when the main database has been renamed ** using SQLITE_DBCONFIG_MAINDBNAME. */ pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema @@ -79316,7 +79692,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TTable)(unsafe.Pointer(pTab)).FpSchema != pSchema { goto _2 } - if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6592) != 0 { + if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6656) != 0 { goto _2 } } @@ -79428,16 +79804,16 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != uintptr(0) { op = int32((*TParse)(unsafe.Pointer(pParse)).FeTriggerOp) if (*TParse)(unsafe.Pointer(pParse)).FbReturning != 0 { - if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0) { + if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0 || _isValidSchemaTableName(tls, zTab, (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab, uintptr(0)) != 0) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = libc.BoolInt32(op != int32(TK_DELETE)) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } } else { - if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6594, zTab) == 0 { + if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6658, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(1) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } else { - if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6598, zTab) == 0 { + if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6662, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = 0 pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } @@ -79446,7 +79822,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UUpsert) != 0 && zTab != uintptr(0) { pUpsert = *(*uintptr)(unsafe.Pointer(pNC + 16)) - if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6602, zTab) == 0 { + if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6666, zTab) == 0 { pTab = (*(*TSrcItem)(unsafe.Pointer((*TUpsert)(unsafe.Pointer(pUpsert)).FpUpsertSrc + 8))).FpTab (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(EXCLUDED_TABLE_NUMBER) } @@ -79562,15 +79938,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if int32(uint32(*(*uint16)(unsafe.Pointer(pEList + 8 + uintptr(j)*32 + 16 + 4))&0x3>>0)) == ENAME_NAME && Xsqlite3_stricmp(tls, zAs, zCol) == 0 { pOrig = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(j)*32))).FpExpr if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 && (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6611, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6675, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Win)) != uint32(0) && ((*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 || pNC != pTopNC) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6642, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6706, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if _sqlite3ExprVectorSize(tls, pOrig) != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6679, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6743, 0) return int32(WRC_Abort) } _resolveAlias(tls, pParse, pEList, j, pExpr, nSubquery) @@ -79622,7 +79998,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** a huge amount of legacy SQL that uses it. So for now, we just ** issue a warning. */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6697, libc.VaList(bp+24, zCol)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6761, libc.VaList(bp+24, zCol)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_STRING) libc.Xmemset(tls, pExpr+64, 0, uint64(8)) return int32(WRC_Prune) @@ -79651,7 +80027,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } _extendFJMatch(tls, pParse, bp, pMatch, (*TExpr)(unsafe.Pointer(pExpr)).FiColumn) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_FUNCTION) - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6732 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6796 *(*uintptr)(unsafe.Pointer(pExpr + 32)) = *(*uintptr)(unsafe.Pointer(bp)) cnt = int32(1) goto lookupname_end @@ -79661,18 +80037,22 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } } if cnt == 0 { - v10 = __ccgo_ts + 6741 + v10 = __ccgo_ts + 6805 } else { - v10 = __ccgo_ts + 6756 + v10 = __ccgo_ts + 6820 } zErr = v10 if zDb != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6778, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6842, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) } else { if zTab != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6791, libc.VaList(bp+24, zErr, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6855, libc.VaList(bp+24, zErr, zTab, zCol)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6801, libc.VaList(bp+24, zErr, zCol)) + if cnt == 0 && (*TExpr)(unsafe.Pointer(pRight)).Fflags&uint32(libc.Int32FromInt32(EP_DblQuoted)) != uint32(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6865, libc.VaList(bp+24, zErr, zCol)) + } else { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6926, libc.VaList(bp+24, zErr, zCol)) + } } } _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -79702,10 +80082,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** If a generated column is referenced, set bits for every column ** of the table. */ - if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 && cnt == int32(1) && pMatch != uintptr(0) { - *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + if pMatch != 0 { + if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { + *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + } else { + libc.SetBitFieldPtr16Uint32(pMatch+60+4, libc.Uint32FromInt32(1), 14, 0x4000) + } } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(eNewExprOp) + goto lookupname_end lookupname_end: ; if cnt == int32(1) { @@ -79795,19 +80180,19 @@ func _notValidImpl(tls *libc.TLS, pParse uintptr, pNC uintptr, zMsg uintptr, pEx defer tls.Free(32) var zIn uintptr _ = zIn - zIn = __ccgo_ts + 6808 + zIn = __ccgo_ts + 6933 if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IdxExpr) != 0 { - zIn = __ccgo_ts + 6836 + zIn = __ccgo_ts + 6961 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IsCheck) != 0 { - zIn = __ccgo_ts + 6854 + zIn = __ccgo_ts + 6979 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_GenCol) != 0 { - zIn = __ccgo_ts + 6872 + zIn = __ccgo_ts + 6997 } } } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6890, libc.VaList(bp+8, zMsg, zIn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7015, libc.VaList(bp+8, zMsg, zIn)) if pExpr != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } @@ -79855,8 +80240,8 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { var anRef [8]int32 var auth, i, is_agg, n, nLeft, nRef, nRight, no_such_func, rc, savedAllowFlags, wrong_num_args, v12, v4, v6, v7 int32 var enc Tu8 - var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zColumn, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zColumn, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 + var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 pNC = *(*uintptr)(unsafe.Pointer(pWalker + 40)) pParse = (*TNameContext)(unsafe.Pointer(pNC)).FpParse switch int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) { @@ -79975,11 +80360,11 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_ID) { zDb = uintptr(0) zTable = uintptr(0) - zColumn = *(*uintptr)(unsafe.Pointer(pExpr + 8)) + pRight = pExpr } else { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+6910, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7035, uintptr(0), pExpr) } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_ID) { @@ -79990,13 +80375,12 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { pRight = (*TExpr)(unsafe.Pointer(pRight)).FpRight } zTable = *(*uintptr)(unsafe.Pointer(pLeft + 8)) - zColumn = *(*uintptr)(unsafe.Pointer(pRight + 8)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameTokenRemap(tls, pParse, pExpr, pRight) _sqlite3RenameTokenRemap(tls, pParse, pExpr+64, pLeft) } } - return _lookupName(tls, pParse, zDb, zTable, zColumn, pNC, pExpr) + return _lookupName(tls, pParse, zDb, zTable, pRight, pNC, pExpr) /* Resolve function names */ fallthrough @@ -80035,7 +80419,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if n == int32(2) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = _exprProbability(tls, (*(*TExprList_item)(unsafe.Pointer(pList + 8 + 1*32))).FpExpr) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6927, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7052, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } } else { @@ -80059,7 +80443,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { auth = _sqlite3AuthCheck(tls, pParse, int32(SQLITE_FUNCTION), uintptr(0), (*TFuncDef)(unsafe.Pointer(pDef)).FzName, uintptr(0)) if auth != SQLITE_OK { if auth == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6991, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7116, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) @@ -80080,7 +80464,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { ** in a CHECK constraint. SQLServer, MySQL, and PostgreSQL all ** all this. */ if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7027, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7152, uintptr(0), pExpr) } } else { /* Must fit in 8 bits */ @@ -80104,29 +80488,29 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { } if 0 == libc.BoolInt32(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME)) { if pDef != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FxValue == uintptr(0) && pWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7055, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7180, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 || is_agg != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 && !(pWin != 0) || is_agg != 0 && pWin != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 { if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 || pWin != 0 { - zType = __ccgo_ts + 7098 + zType = __ccgo_ts + 7223 } else { - zType = __ccgo_ts + 7105 + zType = __ccgo_ts + 7230 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7115, libc.VaList(bp+8, zType, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7240, libc.VaList(bp+8, zType, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ is_agg = 0 } else { if no_such_func != 0 && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7143, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7268, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if wrong_num_args != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7165, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7290, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7209, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7334, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { @@ -80150,7 +80534,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { *(*int32)(unsafe.Pointer(pNC + 40)) &= ^(libc.Int32FromInt32(NC_AllowWin) | v7) } } else { - if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { is_agg = int32(1) } } @@ -80211,18 +80595,19 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) { nRef = (*TNameContext)(unsafe.Pointer(pNC)).FnRef if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_SelfRef) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7257, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7382, pExpr, pExpr) } else { _sqlite3WalkSelect(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 32))) } if nRef != (*TNameContext)(unsafe.Pointer(pNC)).FnRef { *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 4)) |= uint32(SF_Correlated) } *(*int32)(unsafe.Pointer(pNC + 40)) |= int32(NC_Subquery) } case int32(TK_VARIABLE): if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IsCheck)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7268, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7393, pExpr, pExpr) } case int32(TK_IS): fallthrough @@ -80268,7 +80653,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { nRight = _sqlite3ExprVectorSize(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight) } if nLeft != nRight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6679, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6743, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } break @@ -80393,7 +80778,7 @@ func _resolveOrderByTermToExprList(tls *libc.TLS, pParse uintptr, pSelect uintpt func _resolveOutOfRangeError(tls *libc.TLS, pParse uintptr, zType uintptr, i int32, mx int32, pError uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7279, libc.VaList(bp+8, i, zType, mx)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7404, libc.VaList(bp+8, i, zType, mx)) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pError) } @@ -80428,7 +80813,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7335, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7460, 0) return int32(1) } i = 0 @@ -80466,7 +80851,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } if _sqlite3ExprIsInteger(tls, pE, bp) != 0 { if *(*int32)(unsafe.Pointer(bp)) <= 0 || *(*int32)(unsafe.Pointer(bp)) > (*TExprList)(unsafe.Pointer(pEList)).FnExpr { - _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7369, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) + _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7494, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) return int32(1) } } else { @@ -80536,7 +80921,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r break } if int32(uint32(*(*uint16)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32 + 16 + 4))&0x4>>2)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7375, libc.VaList(bp+16, i+int32(1))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7500, libc.VaList(bp+16, i+int32(1))) return int32(1) } goto _3 @@ -80570,7 +80955,7 @@ func _sqlite3ResolveOrderGroupBy(tls *libc.TLS, pParse uintptr, pSelect uintptr, return 0 } if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7436, libc.VaList(bp+8, zType)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7561, libc.VaList(bp+8, zType)) return int32(1) } pEList = (*TSelect)(unsafe.Pointer(pSelect)).FpEList @@ -80816,6 +81201,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } pItem = (*TSelect)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*104 + /* Test of tag-20240424-1*/ if (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FselFlags&uint32(SF_Resolved) == uint32(0) { if pOuterNC != 0 { v3 = (*TNameContext)(unsafe.Pointer(pOuterNC)).FnRef @@ -80882,7 +81268,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { (*(*TNameContext)(unsafe.Pointer(bp))).FncFlags |= int32(NC_UEList) if (*TSelect)(unsafe.Pointer(p)).FpHaving != 0 { if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Aggregate) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7467, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7592, 0) return int32(WRC_Abort) } if _sqlite3ResolveExprNames(tls, bp, (*TSelect)(unsafe.Pointer(p)).FpHaving) != 0 { @@ -80949,7 +81335,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** is not detected until much later, and so we need to go ahead and ** resolve those symbols on the incorrect ORDER BY for consistency. */ - if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7369) != 0 { + if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7494) != 0 { return int32(WRC_Abort) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -80960,7 +81346,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** the GROUP BY clause does not contain aggregate functions. */ if pGroupBy != 0 { - if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7506) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { + if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7631) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(WRC_Abort) } i = 0 @@ -80970,7 +81356,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } if (*TExpr)(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(pItem2)).FpExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7512, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7637, 0) return int32(WRC_Abort) } goto _6 @@ -81951,7 +82337,7 @@ func _codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32 return } if nLeft != _sqlite3ExprVectorSize(tls, pRight) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6679, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6743, 0) return } if int32(op) == int32(TK_LE) { @@ -82030,7 +82416,7 @@ func _sqlite3ExprCheckHeight(tls *libc.TLS, pParse uintptr, nHeight int32) (r in rc = SQLITE_OK mxHeight = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 3*4)) if nHeight > mxHeight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7571, libc.VaList(bp+8, mxHeight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7696, libc.VaList(bp+8, mxHeight)) rc = int32(SQLITE_ERROR) } return rc @@ -82196,11 +82582,12 @@ func _sqlite3ExprSetErrorOffset(tls *libc.TLS, pExpr uintptr, iOfst int32) { // ** appear to be quoted. If the quotes were of the form "..." (double-quotes) // ** then the EP_DblQuoted flag is set on the expression node. // ** -// ** Special case: If op==TK_INTEGER and pToken points to a string that -// ** can be translated into a 32-bit integer, then the token is not -// ** stored in u.zToken. Instead, the integer values is written -// ** into u.iValue and the EP_IntValue flag is set. No extra storage +// ** Special case (tag-20240227-a): If op==TK_INTEGER and pToken points to +// ** a string that can be translated into a 32-bit integer, then the token is +// ** not stored in u.zToken. Instead, the integer values is written +// ** into u.iValue and the EP_IntValue flag is set. No extra storage // ** is allocated to hold the integer text and the dequote flag is ignored. +// ** See also tag-20240227-b. // */ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequote int32) (r uintptr) { bp := tls.Alloc(16) @@ -82213,7 +82600,7 @@ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequ *(*int32)(unsafe.Pointer(bp)) = 0 if pToken != 0 { if op != int32(TK_INTEGER) || (*TToken)(unsafe.Pointer(pToken)).Fz == uintptr(0) || _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pToken)).Fz, bp) == 0 { - nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) + nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) /* tag-20240227-a */ } } pNew = _sqlite3DbMallocRawNN(tls, db, uint64(72)+uint64(nExtra)) @@ -82374,11 +82761,11 @@ func _sqlite3ExprListToValues(tls *libc.TLS, pParse uintptr, nElem int32, pEList } if nExprElem != nElem { if nExprElem > int32(1) { - v2 = __ccgo_ts + 7619 + v2 = __ccgo_ts + 7744 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7621, libc.VaList(bp+8, nExprElem, v2, nElem)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7746, libc.VaList(bp+8, nExprElem, v2, nElem)) break } pSel = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(pExpr + 32)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) @@ -82427,7 +82814,7 @@ func _sqlite3ExprAnd(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintpt if f&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_InnerON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { _sqlite3ExprDeferredDelete(tls, pParse, pLeft) _sqlite3ExprDeferredDelete(tls, pParse, pRight) - return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1724) + return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1784) } else { return _sqlite3PExpr(tls, pParse, int32(TK_AND), pLeft, pRight) } @@ -82455,7 +82842,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u } *(*int32)(unsafe.Pointer(pNew + 52)) = int32(int64((*TToken)(unsafe.Pointer(pToken)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) if pList != 0 && (*TExprList)(unsafe.Pointer(pList)).FnExpr > *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 6*4)) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7665, libc.VaList(bp+8, pToken)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7790, libc.VaList(bp+8, pToken)) } *(*uintptr)(unsafe.Pointer(pNew + 32)) = pList *(*Tu32)(unsafe.Pointer(pNew + 4)) |= uint32(libc.Int32FromInt32(EP_HasFunc)) @@ -82475,7 +82862,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u func _sqlite3ExprOrderByAggregateError(tls *libc.TLS, pParse uintptr, p uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7699, libc.VaList(bp+8, p)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7824, libc.VaList(bp+8, p)) } // C documentation @@ -82546,7 +82933,7 @@ func _sqlite3ExprFunctionUsable(tls *libc.TLS, pParse uintptr, pExpr uintptr, pD ** SQLITE_DBCONFIG_TRUSTED_SCHEMA is off (meaning ** that the schema is possibly tainted). */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7749, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7874, libc.VaList(bp+8, pExpr)) } } } @@ -82598,7 +82985,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n bOk = libc.BoolInt32(0 == _sqlite3Atoi64(tls, z+1, bp, int32(n-uint32(1)), uint8(SQLITE_UTF8))) } if bOk == 0 || *(*Ti64)(unsafe.Pointer(bp)) < int64(1) || *(*Ti64)(unsafe.Pointer(bp)) > int64(*(*int32)(unsafe.Pointer(db + 136 + 9*4))) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7769, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7894, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) return } @@ -82631,7 +83018,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n } (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = x if int32(x) > *(*int32)(unsafe.Pointer(db + 136 + 9*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7812, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7937, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } } @@ -82642,11 +83029,13 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n // ** Recursively delete an expression tree. // */ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { + var pLeft uintptr + _ = pLeft + goto exprDeleteRestart +exprDeleteRestart: + ; if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)|libc.Int32FromInt32(EP_Leaf)) != libc.Uint32FromInt32(0)) { /* The Expr.x union is never used at the same time as Expr.pRight */ - if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { - _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpLeft) - } if (*TExpr)(unsafe.Pointer(p)).FpRight != 0 { _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpRight) } else { @@ -82659,6 +83048,17 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { } } } + if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { + pLeft = (*TExpr)(unsafe.Pointer(p)).FpLeft + if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) && !((*TExpr)(unsafe.Pointer(pLeft)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { + /* Avoid unnecessary recursion on unary operators */ + _sqlite3DbNNFreeNN(tls, db, p) + p = pLeft + goto exprDeleteRestart + } else { + _sqlite3ExprDeleteNN(tls, db, pLeft) + } + } } if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { _sqlite3DbNNFreeNN(tls, db, p) @@ -82705,11 +83105,11 @@ func _sqlite3ClearOnOrUsing(tls *libc.TLS, db uintptr, p uintptr) { // ** // ** The pExpr might be deleted immediately on an OOM error. // ** -// ** The deferred delete is (currently) implemented by adding the -// ** pExpr to the pParse->pConstExpr list with a register number of 0. +// ** Return 0 if the delete was successfully deferred. Return non-zero +// ** if the delete happened immediately because of an OOM. // */ -func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) { - _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr) +func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + return libc.BoolInt32(uintptr(0) == _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr)) } // C documentation @@ -83198,16 +83598,20 @@ func _sqlite3SrcListDup(tls *libc.TLS, db uintptr, p uintptr, flags int32) (r ui (*TSrcItem)(unsafe.Pointer(pNewItem)).FiCursor = (*TSrcItem)(unsafe.Pointer(pOldItem)).FiCursor (*TSrcItem)(unsafe.Pointer(pNewItem)).FaddrFillSub = (*TSrcItem)(unsafe.Pointer(pOldItem)).FaddrFillSub (*TSrcItem)(unsafe.Pointer(pNewItem)).FregReturn = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregReturn + (*TSrcItem)(unsafe.Pointer(pNewItem)).FregResult = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregResult if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x2>>1)) != 0 { *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3DbStrDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88))) + } else { + if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { + *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) + } else { + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pNewItem)).Fu1)) = *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pOldItem)).Fu1)) + } } (*TSrcItem)(unsafe.Pointer(pNewItem)).Fu2 = (*TSrcItem)(unsafe.Pointer(pOldItem)).Fu2 if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x100>>8)) != 0 { (*TCteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNewItem + 96)))).FnUse++ } - if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { - *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) - } v4 = (*TSrcItem)(unsafe.Pointer(pOldItem)).FpTab (*TSrcItem)(unsafe.Pointer(pNewItem)).FpTab = v4 pTab = v4 @@ -83469,7 +83873,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, n = v2 } if v3 && (*TIdList)(unsafe.Pointer(pColumns)).FnId != v2 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7835, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7960, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) goto vector_append_error } i = 0 @@ -83501,6 +83905,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, ** the RHS and LHS sizes match during code generation. */ (*TExpr)(unsafe.Pointer(pFirst)).FiTable = (*TIdList)(unsafe.Pointer(pColumns)).FnId } + goto vector_append_error vector_append_error: ; _sqlite3ExprUnmapAndDelete(tls, pParse, pExpr) @@ -83597,7 +84002,7 @@ func _sqlite3ExprListCheckLength(tls *libc.TLS, pParse uintptr, pEList uintptr, _ = mx mx = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 2*4)) if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr > mx { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7865, libc.VaList(bp+8, zObject)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7990, libc.VaList(bp+8, zObject)) } } @@ -83695,10 +84100,10 @@ func _sqlite3SelectWalkFail(tls *libc.TLS, pWalker uintptr, NotUsed uintptr) (r // ** anything else 0 // */ func _sqlite3IsTrueOrFalse(tls *libc.TLS, zIn uintptr) (r Tu32) { - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7888) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8013) == 0 { return uint32(EP_IsTrue) } - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7893) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8018) == 0 { return uint32(EP_IsFalse) } return uint32(0) @@ -83780,6 +84185,51 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { return pExpr } +// C documentation +// +// /* +// ** pExpr is a TK_FUNCTION node. Try to determine whether or not the +// ** function is a constant function. A function is constant if all of +// ** the following are true: +// ** +// ** (1) It is a scalar function (not an aggregate or window function) +// ** (2) It has either the SQLITE_FUNC_CONSTANT or SQLITE_FUNC_SLOCHNG +// ** property. +// ** (3) All of its arguments are constants +// ** +// ** This routine sets pWalker->eCode to 0 if pExpr is not a constant. +// ** It makes no changes to pWalker->eCode if pExpr is constant. In +// ** every case, it returns WRC_Abort. +// ** +// ** Called as a service subroutine from exprNodeIsConstant(). +// */ +func _exprNodeIsConstantFunction(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef, pList, v1 uintptr + var n int32 + var v2 bool + _, _, _, _, _, _ = db, n, pDef, pList, v1, v2 /* The database */ + if v2 = (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)) != uint32(0); !v2 { + v1 = *(*uintptr)(unsafe.Pointer(pExpr + 32)) + pList = v1 + } + if v2 || v1 == uintptr(0) { + n = 0 + } else { + n = (*TExprList)(unsafe.Pointer(pList)).FnExpr + _sqlite3WalkExprList(tls, pWalker, pList) + if int32((*TWalker)(unsafe.Pointer(pWalker)).FeCode) == 0 { + return int32(WRC_Abort) + } + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)|libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG)) == uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) +} + // C documentation // // /* @@ -83827,8 +84277,12 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 } return WRC_Continue } else { - (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) - return int32(WRC_Abort) + if (*TWalker)(unsafe.Pointer(pWalker)).FpParse != 0 { + return _exprNodeIsConstantFunction(tls, pWalker, pExpr) + } else { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } } fallthrough case int32(TK_ID): @@ -83855,6 +84309,8 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 case int32(TK_REGISTER): fallthrough case int32(TK_DOT): + fallthrough + case int32(TK_RAISE): (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) return int32(WRC_Abort) case int32(TK_VARIABLE): @@ -83880,14 +84336,14 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 return r } -func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32) { +func _exprIsConst(tls *libc.TLS, pParse uintptr, p uintptr, initFlag int32) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* w at bp+0 */ TWalker (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(initFlag) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) - *(*int32)(unsafe.Pointer(bp + 40)) = iCur _sqlite3WalkExpr(tls, bp, p) return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } @@ -83901,9 +84357,15 @@ func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32 // ** For the purposes of this function, a double-quoted string (ex: "abc") // ** is considered a variable but a single-quoted string (ex: 'abc') is // ** a constant. +// ** +// ** The pParse parameter may be NULL. But if it is NULL, there is no way +// ** to determine if function calls are constant or not, and hence all +// ** function calls will be considered to be non-constant. If pParse is +// ** not NULL, then a function call might be constant, depending on the +// ** function and on its parameters. // */ -func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(1), 0) +func _sqlite3ExprIsConstant(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(1)) } // C documentation @@ -83921,8 +84383,24 @@ func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { // ** can be added to the pParse->pConstExpr list and evaluated once when // ** the prepared statement starts up. See sqlite3ExprCodeRunJustOnce(). // */ -func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(2), 0) +func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(2)) +} + +// C documentation +// +// /* +// ** This routine examines sub-SELECT statements as an expression is being +// ** walked as part of sqlite3ExprIsTableConstant(). Sub-SELECTs are considered +// ** constant as long as they are uncorrelated - meaning that they do not +// ** contain any terms from outer contexts. +// */ +func _exprSelectWalkTableConstant(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + if (*TSelect)(unsafe.Pointer(pSelect)).FselFlags&uint32(SF_Correlated) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) } // C documentation @@ -83932,9 +84410,25 @@ func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { // ** for any single row of the table with cursor iCur. In other words, the // ** expression must not refer to any non-deterministic function nor any // ** table other than iCur. +// ** +// ** Consider uncorrelated subqueries to be constants if the bAllowSubq +// ** parameter is true. // */ -func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) { - return _exprIsConst(tls, p, int32(3), iCur) +func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32, bAllowSubq int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(3) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = uintptr(0) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) + if bAllowSubq != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_exprSelectWalkTableConstant) + } else { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) + } + *(*int32)(unsafe.Pointer(bp + 40)) = iCur + _sqlite3WalkExpr(tls, bp, p) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } // C documentation @@ -83954,7 +84448,10 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** // ** (1) pExpr cannot refer to any table other than pSrc->iCursor. // ** -// ** (2) pExpr cannot use subqueries or non-deterministic functions. +// ** (2a) pExpr cannot use subqueries unless the bAllowSubq parameter is +// ** true and the subquery is non-correlated +// ** +// ** (2b) pExpr cannot use non-deterministic functions. // ** // ** (3) pSrc cannot be part of the left operand for a RIGHT JOIN. // ** (Is there some way to relax this constraint?) @@ -83980,7 +84477,7 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** which leads to incorrect answers. See also restriction (9) // ** on push-down. // */ -func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32) (r int32) { +func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32, bAllowSubq int32) (r int32) { var jj int32 var pSrc uintptr _, _ = jj, pSrc @@ -84018,7 +84515,8 @@ func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList jj++ } } - return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor) /* rules (1), (2) */ + /* Rules (1), (2a), and (2b) handled by the following: */ + return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor, bAllowSubq) } // C documentation @@ -84116,7 +84614,7 @@ func _sqlite3ExprIsConstantOrGroupBy(tls *libc.TLS, pParse uintptr, p uintptr, p // ** a constant. // */ func _sqlite3ExprIsConstantOrFunction(tls *libc.TLS, p uintptr, isInit Tu8) (r int32) { - return _exprIsConst(tls, p, int32(4)+int32(isInit), 0) + return _exprIsConst(tls, uintptr(0), p, int32(4)+int32(isInit)) } // C documentation @@ -84255,13 +84753,13 @@ func _sqlite3ExprNeedsNoAffinityChange(tls *libc.TLS, p uintptr, aff uint8) (r i // ** Return TRUE if the given string is a row-id column name. // */ func _sqlite3IsRowid(tls *libc.TLS, z uintptr) (r int32) { - if _sqlite3StrICmp(tls, z, __ccgo_ts+7899) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8024) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7907) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8032) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7913) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8038) == 0 { return int32(1) } return 0 @@ -84279,9 +84777,9 @@ func _sqlite3RowidAlias(tls *libc.TLS, pTab uintptr) (r uintptr) { var iCol, ii int32 _, _, _ = azOpt, iCol, ii azOpt = [3]uintptr{ - 0: __ccgo_ts + 7899, - 1: __ccgo_ts + 7907, - 2: __ccgo_ts + 7913, + 0: __ccgo_ts + 8024, + 1: __ccgo_ts + 8032, + 2: __ccgo_ts + 8038, } ii = 0 for { @@ -84401,13 +84899,13 @@ func _sqlite3SetHasNullFlag(tls *libc.TLS, v uintptr, iCur int32, regHasNull int // ** The argument is an IN operator with a list (not a subquery) on the // ** right-hand side. Return TRUE if that list is constant. // */ -func _sqlite3InRhsIsConstant(tls *libc.TLS, pIn uintptr) (r int32) { +func _sqlite3InRhsIsConstant(tls *libc.TLS, pParse uintptr, pIn uintptr) (r int32) { var pLHS uintptr var res int32 _, _ = pLHS, res pLHS = (*TExpr)(unsafe.Pointer(pIn)).FpLeft (*TExpr)(unsafe.Pointer(pIn)).FpLeft = uintptr(0) - res = _sqlite3ExprIsConstant(tls, pIn) + res = _sqlite3ExprIsConstant(tls, pParse, pIn) (*TExpr)(unsafe.Pointer(pIn)).FpLeft = pLHS return res } @@ -84563,7 +85061,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 iAddr = _sqlite3VdbeAddOp0(tls, v, int32(OP_Once)) _sqlite3OpenTable(tls, pParse, iTab, iDb, pTab, int32(OP_OpenRead)) eType = int32(IN_INDEX_ROWID) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+7917, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+8042, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) _sqlite3VdbeJumpHere(tls, v, iAddr) } else { /* Iterator variable */ affinity_ok = int32(1) @@ -84663,7 +85161,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 if colUsed == libc.Uint64FromInt32(1)<0 so that the new limit is either 1 or 0 */ db = (*TParse)(unsafe.Pointer(pParse)).Fdb - pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1724) + pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1784) if pLimit != 0 { (*TExpr)(unsafe.Pointer(pLimit)).FaffExpr = uint8(SQLITE_AFF_NUMERIC) pLimit = _sqlite3PExpr(tls, pParse, int32(TK_NE), _sqlite3ExprDup(tls, db, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft, 0), pLimit) @@ -85154,7 +85652,7 @@ func _sqlite3CodeSubselect(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int3 (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft = pLimit } else { /* If there is no pre-existing limit add a limit of 1 */ - pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8132) + pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8257) (*TSelect)(unsafe.Pointer(pSel)).FpLimit = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), pLimit, uintptr(0)) } (*TSelect)(unsafe.Pointer(pSel)).FiLimit = 0 @@ -85477,11 +85975,13 @@ func _sqlite3ExprCodeIN(tls *libc.TLS, pParse uintptr, pExpr uintptr, destIfFals } /* Jumps here in order to return true. */ _sqlite3VdbeJumpHere(tls, v, addrTruthOp) + goto sqlite3ExprCodeIN_finished sqlite3ExprCodeIN_finished: ; if rLhs != rLhsOrig { _sqlite3ReleaseTempReg(tls, pParse, rLhs) } + goto sqlite3ExprCodeIN_oom_error sqlite3ExprCodeIN_oom_error: ; _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiMap) @@ -85539,13 +86039,13 @@ func _codeInteger(tls *libc.TLS, pParse uintptr, pExpr uintptr, negFlag int32, i z = *(*uintptr)(unsafe.Pointer(pExpr + 8)) c = _sqlite3DecOrHexToI64(tls, z, bp) if c == int32(3) && !(negFlag != 0) || c == int32(2) || negFlag != 0 && *(*Ti64)(unsafe.Pointer(bp)) == int64(-libc.Int32FromInt32(1))-(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<= (*TAggInfo)(unsafe.Pointer(pInfo)).FnFunc { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8225, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8350, libc.VaList(bp+160, pExpr)) } else { return (*TAggInfo)(unsafe.Pointer(pInfo)).FiFirstReg + (*TAggInfo)(unsafe.Pointer(pInfo)).FnColumn + int32((*TExpr)(unsafe.Pointer(pExpr)).FiAgg) } @@ -86269,7 +86765,7 @@ expr_code_doover: if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { return (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FregResult } - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { /* SQL functions can be expensive. So try to avoid running them ** multiple times if we know they always give the same result */ return _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) @@ -86284,7 +86780,7 @@ expr_code_doover: zId = *(*uintptr)(unsafe.Pointer(pExpr + 8)) pDef = _sqlite3FindFunction(tls, db, zId, nFarg, enc, uint8(0)) if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8252, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8377, libc.VaList(bp+160, pExpr)) break } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_INLINE) != uint32(0) && pFarg != uintptr(0) { @@ -86299,7 +86795,7 @@ expr_code_doover: if !(i < nFarg) { break } - if i < int32(32) && _sqlite3ExprIsConstant(tls, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { + if i < int32(32) && _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { constMask |= libc.Uint32FromInt32(1) << i } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_NEEDCOLL) != uint32(0) && !(pColl != 0) { @@ -86389,7 +86885,7 @@ expr_code_doover: } n1 = _sqlite3ExprVectorSize(tls, pLeft2) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != n1 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7835, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7960, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) } return (*TExpr)(unsafe.Pointer(pLeft2)).FiTable + int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) case int32(TK_IN): @@ -86421,8 +86917,9 @@ expr_code_doover: if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Collate)) != libc.Uint32FromInt32(0)) { /* A TK_COLLATE Expr node without the EP_Collate tag is a so-called ** "SOFT-COLLATE" that is added to constraints that are pushed down - ** from outer queries into sub-queries by the push-down optimization. - ** Clear subtypes as subtypes may not cross a subquery boundary. + ** from outer queries into sub-queries by the WHERE-clause push-down + ** optimization. Clear subtypes as subtypes may not cross a subquery + ** boundary. */ _sqlite3ExprCode(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, target) _sqlite3VdbeAddOp1(tls, v, int32(OP_ClrSubtype), target) @@ -86451,7 +86948,7 @@ expr_code_doover: _sqlite3VdbeAddOp1(tls, v, int32(OP_RealAffinity), target) } case int32(TK_VECTOR): - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6679, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6743, 0) break /* TK_IF_NULL_ROW Expr nodes are inserted ahead of expressions ** that derive from the right-hand table of a LEFT JOIN. The @@ -86566,7 +87063,7 @@ expr_code_doover: _sqlite3VdbeResolveLabel(tls, v, endLabel) case int32(TK_RAISE): if !((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != 0) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8276, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8401, 0) return 0 } if int32((*TExpr)(unsafe.Pointer(pExpr)).FaffExpr) == int32(OE_Abort) { @@ -86686,7 +87183,7 @@ func _sqlite3ExprCodeTemp(tls *libc.TLS, pParse uintptr, pExpr uintptr, pReg uin var r1, r2 int32 _, _ = r1, r2 pExpr = _sqlite3ExprSkipCollateAndLikely(tls, pExpr) - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { *(*int32)(unsafe.Pointer(pReg)) = 0 r2 = _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) } else { @@ -86756,7 +87253,7 @@ func _sqlite3ExprCodeCopy(tls *libc.TLS, pParse uintptr, pExpr uintptr, target i // ** might choose to code the expression at initialization time. // */ func _sqlite3ExprCodeFactorable(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) { - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target) } else { _sqlite3ExprCodeCopy(tls, pParse, pExpr, target) @@ -86825,7 +87322,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ _sqlite3VdbeAddOp2(tls, v, int32(copyOp), j+srcReg-int32(1), target+i) } } else { - if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target+i) } else { inReg = _sqlite3ExprCodeTarget(tls, pParse, pExpr, target+i) @@ -87089,6 +87586,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsTrue)) == uint32(EP_IsTrue) { @@ -87294,6 +87792,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) { @@ -88120,17 +88619,15 @@ func _agginfoPersistExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnColumn && (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } else { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnFunc && (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } @@ -88249,6 +88746,7 @@ func _findOrCreateAggInfoColumn(tls *libc.TLS, pParse uintptr, pAggInfo uintptr, *(*Tu16)(unsafe.Pointer(v4))++ (*TAggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = int16(v3) } + goto fix_up_expr fix_up_expr: ; (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo = pAggInfo @@ -88679,8 +89177,8 @@ func _sqlite3FirstAvailableRegister(tls *libc.TLS, pParse uintptr, iMin int32) ( func _isAlterableTable(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) - if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6527, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8326, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6591, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8451, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -88699,9 +89197,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, bp := tls.Alloc(48) defer tls.Free(48) (*TParse)(unsafe.Pointer(pParse)).FcolNamesSet = uint8(1) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8354, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8479, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8529, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8654, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) } } @@ -88717,9 +89215,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, func _renameFixQuotes(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8703, libc.VaList(bp+8, zDb, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8828, libc.VaList(bp+8, zDb, zDb)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8850, 0) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8975, 0) } } @@ -88775,7 +89273,7 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName ** in database iDb. If so, this is an error. */ if _sqlite3FindTable(tls, db, zName, zDb) != 0 || _sqlite3FindIndex(tls, db, zName, zDb) != 0 || _sqlite3IsShadowTableOf(tls, db, pTab, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9001, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9126, libc.VaList(bp+8, zName)) goto exit_rename_table } /* Make sure it is not a system table being altered, or a reserved name @@ -88784,11 +89282,11 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { goto exit_rename_table } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9060, zName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9185, zName) { goto exit_rename_table } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9066, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9191, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_rename_table } /* Invoke the authorization callback. */ @@ -88818,21 +89316,21 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName nTabName = _sqlite3Utf8CharLen(tls, zTabName, -int32(1)) /* Rewrite all CREATE TABLE, INDEX, TRIGGER or VIEW statements in ** the schema to use the new table name. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9093, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9218, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) /* Update the tbl_name and name columns of the sqlite_schema table ** as required. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9277, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9402, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) /* If the sqlite_sequence table exists in this database, then update ** it with the new table name. */ - if _sqlite3FindTable(tls, db, __ccgo_ts+9582, zDb) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9598, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if _sqlite3FindTable(tls, db, __ccgo_ts+9707, zDb) != 0 { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9723, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* If the table being renamed is not itself part of the temp database, ** edit view and trigger definitions within the temp database ** as required. */ if iDb != int32(1) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9656, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9781, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) } /* If this is a virtual table, invoke the xRename() function if ** one is defined. The xRename() callback will modify the names @@ -88848,7 +89346,8 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp4(tls, v, int32(OP_VRename), i, 0, 0, pVTab, -int32(11)) } _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+9921, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+10046, 0) + goto exit_rename_table exit_rename_table: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -88864,7 +89363,7 @@ exit_rename_table: func _sqlite3ErrorIfNotEmpty(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zErr uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9934, libc.VaList(bp+8, zErr, zDb, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10059, libc.VaList(bp+8, zErr, zDb, zTab)) } // C documentation @@ -88904,11 +89403,11 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** column must not be NULL. */ if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9972, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10097, 0) return } if (*TTable)(unsafe.Pointer(pNew)).FpIndex != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10004, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10129, 0) return } if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) == 0 { @@ -88924,10 +89423,10 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpFKey != 0 && pDflt != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10031) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10156) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && !(pDflt != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10090) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10215) } /* Ensure the default expression is something that sqlite3ValueFromExpr() ** can handle (i.e. not CURRENT_TIME etc.) @@ -88939,13 +89438,13 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr return } if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10143) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10268) } _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp))) } } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_STORED) != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10189) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10314) } } /* Modify the CREATE TABLE statement. */ @@ -88959,7 +89458,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr } /* substr() operations on characters, but addColOffset is in bytes. So we ** have to use printf() to translate between these units: */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10216, libc.VaList(bp+16, zDb, (*(*struct { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10341, libc.VaList(bp+16, zDb, (*(*struct { FaddColOffset int32 FpFKey uintptr FpDfltList uintptr @@ -88987,7 +89486,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterAdd)) /* Verify that constraints are still satisfied */ if (*TTable)(unsafe.Pointer(pNew)).FpCheck != uintptr(0) || int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Strict) != uint32(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10362, libc.VaList(bp+16, zTab, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10487, libc.VaList(bp+16, zTab, zDb)) } } } @@ -89025,12 +89524,12 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { goto exit_begin_add_column } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10715, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10840, 0) goto exit_begin_add_column } /* Make sure this is not an attempt to ALTER a view. */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10749, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10874, 0) goto exit_begin_add_column } if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { @@ -89054,7 +89553,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { (*TTable)(unsafe.Pointer(pNew)).FnCol = (*TTable)(unsafe.Pointer(pTab)).FnCol nAlloc = (int32((*TTable)(unsafe.Pointer(pNew)).FnCol)-int32(1))/int32(8)*int32(8) + int32(8) (*TTable)(unsafe.Pointer(pNew)).FaCol = _sqlite3DbMallocZero(tls, db, uint64(16)*uint64(nAlloc)) - (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10779, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10904, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !((*TTable)(unsafe.Pointer(pNew)).FaCol != 0) || !((*TTable)(unsafe.Pointer(pNew)).FzName != 0) { goto exit_begin_add_column } @@ -89091,6 +89590,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pTab + 64))).FaddColOffset + goto exit_begin_add_column exit_begin_add_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -89114,18 +89614,18 @@ func _isRealTable(tls *libc.TLS, pParse uintptr, pTab uintptr, bDrop int32) (r i _, _ = zType, v1 zType = uintptr(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10798 + zType = __ccgo_ts + 10923 } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 10803 + zType = __ccgo_ts + 10928 } if zType != 0 { if bDrop != 0 { - v1 = __ccgo_ts + 10817 + v1 = __ccgo_ts + 10942 } else { - v1 = __ccgo_ts + 10834 + v1 = __ccgo_ts + 10959 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10852, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10977, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -89186,11 +89686,11 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld iCol++ } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10870, libc.VaList(bp+8, pOld)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10995, libc.VaList(bp+8, pOld)) goto exit_rename_column } /* Ensure the schema contains no double-quoted strings */ - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1650, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1664, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1))) /* Do the rename operation using a recursive UPDATE statement that ** uses the sqlite_rename_column() SQL function to compute the new @@ -89202,11 +89702,12 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld goto exit_rename_column } bQuote = int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pNew)).Fz))]) & int32(0x80) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10891, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11073, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11016, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11198, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iSchema, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+9921, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+10046, int32(1)) + goto exit_rename_column exit_rename_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -89681,11 +90182,11 @@ func _renameColumnParseError(tls *libc.TLS, pCtx uintptr, zWhen uintptr, pType u zT = Xsqlite3_value_text(tls, pType) zN = Xsqlite3_value_text(tls, pObject) if *(*uint8)(unsafe.Pointer(zWhen)) != 0 { - v1 = __ccgo_ts + 11204 + v1 = __ccgo_ts + 11329 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11206, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) + zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11331, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, zErr) } @@ -89762,8 +90263,8 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin if zSql == uintptr(0) { return int32(SQLITE_NOMEM) } - if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11229, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(116682)) + if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11354, int32(7)) != 0 { + return _sqlite3CorruptError(tls, int32(117285)) } if bTemp != 0 { v1 = int32(1) @@ -89779,7 +90280,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin rc = int32(SQLITE_NOMEM) } if rc == SQLITE_OK && ((*TParse)(unsafe.Pointer(p)).FpNewTable == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewIndex == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewTrigger == uintptr(0)) { - rc = _sqlite3CorruptError(tls, int32(116693)) + rc = _sqlite3CorruptError(tls, int32(117296)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -89818,7 +90319,7 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, ** ALTER TABLE statement was quoted (bQuote==1), then set zNew to ** point to zQuot so that all substitutions are made using the ** quoted version of the new column name. */ - zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11237, libc.VaList(bp+8, zNew)) + zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11362, libc.VaList(bp+8, zNew)) if zQuot == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -89863,11 +90364,11 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, *(*uint8)(unsafe.Pointer(zBuf1 + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn))) = uint8(0) _sqlite3Dequote(tls, zBuf1) if int32(*(*uint8)(unsafe.Pointer((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn)))) == int32('\'') { - v1 = __ccgo_ts + 11204 + v1 = __ccgo_ts + 11329 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11243, libc.VaList(bp+8, zBuf1, v1)) + Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11368, libc.VaList(bp+8, zBuf1, v1)) zReplace = zBuf2 nReplace = uint32(_sqlite3Strlen30(tls, zReplace)) } @@ -90344,6 +90845,7 @@ func _renameColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintp } } rc = _renameEditSql(tls, context, bp, zSql, zNew, bQuote) + goto renameColumnFunc_done renameColumnFunc_done: ; if rc != SQLITE_OK { @@ -90351,7 +90853,7 @@ renameColumnFunc_done: Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv))) } else { if (*(*TParse)(unsafe.Pointer(bp + 32))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1650, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) + _renameColumnParseError(tls, context, __ccgo_ts+1664, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -90577,7 +91079,7 @@ func _renameTableFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintpt Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv + 3*8))) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1650, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) + _renameColumnParseError(tls, context, __ccgo_ts+1664, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -90839,7 +91341,7 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr pTab = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable if pTab == uintptr(0) || int32((*TTable)(unsafe.Pointer(pTab)).FnCol) == int32(1) || iCol >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { /* This can happen if the sqlite_schema table is corrupt */ - rc = _sqlite3CorruptError(tls, int32(117652)) + rc = _sqlite3CorruptError(tls, int32(118255)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -90856,9 +91358,10 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr (*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz-- } } - zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11248, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) + zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11373, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) Xsqlite3_result_text(tls, context, zNew, -int32(1), uintptr(-libc.Int32FromInt32(1))) Xsqlite3_free(tls, zNew) + goto drop_column_done drop_column_done: ; _renameParseCleanup(tls, bp) @@ -90882,8 +91385,9 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName bp := tls.Alloc(48) defer tls.Free(48) var addr, i, iCol, iColPos, iCur, iDb, iPos, nField, reg, regOut, regRec, v2, v4, v7 int32 + var aff uint8 var db, pPk, pTab, v, zCol, zDb, v1, v3, v5, v8 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, aff, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Database containing pTab ("main" etc.) */ zCol = uintptr(0) /* Index of column zCol in pTab->aCol[] */ /* Look up the table being altered. */ @@ -90909,23 +91413,23 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName } iCol = _sqlite3ColumnIndex(tls, pTab, zCol) if iCol < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10870, libc.VaList(bp+8, pName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10995, libc.VaList(bp+8, pName)) goto exit_drop_column } /* Do not allow the user to drop a PRIMARY KEY column or a column ** constrained by a UNIQUE constraint. */ if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_PRIMKEY)|libc.Int32FromInt32(COLFLAG_UNIQUE)) != 0 { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - v1 = __ccgo_ts + 11255 + v1 = __ccgo_ts + 11380 } else { - v1 = __ccgo_ts + 5591 + v1 = __ccgo_ts + 5655 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11267, libc.VaList(bp+8, v1, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11392, libc.VaList(bp+8, v1, zCol)) goto exit_drop_column } /* Do not allow the number of columns to go to zero */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) <= int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11295, libc.VaList(bp+8, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11420, libc.VaList(bp+8, zCol)) goto exit_drop_column } /* Edit the sqlite_schema table */ @@ -90935,12 +91439,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_ALTER_TABLE), zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol) != 0 { goto exit_drop_column } - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1650, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1664, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1))) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11343, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11468, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterDrop)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11464, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11589, int32(1)) /* Edit rows of table on disk */ if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 && int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { pPk = uintptr(0) @@ -90998,7 +91502,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if i == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regOut) } else { + aff = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity + if int32(aff) == int32(SQLITE_AFF_REAL) { + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = uint8(SQLITE_AFF_NUMERIC) + } _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, i, regOut) + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = aff } nField++ } @@ -91023,6 +91532,7 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iCur, addr+int32(1)) _sqlite3VdbeJumpHere(tls, v, addr) } + goto exit_drop_column exit_drop_column: ; _sqlite3DbFree(tls, db, zCol) @@ -91042,27 +91552,27 @@ var _aAlterTableFuncs = [5]TFuncDef{ 0: { FnArg: int8(9), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11482, + FzName: __ccgo_ts + 11607, }, 1: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11503, + FzName: __ccgo_ts + 11628, }, 2: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11523, + FzName: __ccgo_ts + 11648, }, 3: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11542, + FzName: __ccgo_ts + 11667, }, 4: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11561, + FzName: __ccgo_ts + 11686, }, } @@ -91273,7 +91783,7 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW ** side-effect of the CREATE TABLE statement is to leave the rootpage ** of the new table in register pParse->regRoot. This is important ** because the OpenWrite opcode below will be needing it. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11664, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11789, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) aRoot[i] = uint32((*TParse)(unsafe.Pointer(pParse)).FregRoot) aCreateTbl[i] = uint8(OPFLAG_P2ISREG) } @@ -91284,10 +91794,10 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW aRoot[i] = (*TTable)(unsafe.Pointer(pStat)).Ftnum _sqlite3TableLock(tls, pParse, iDb, aRoot[i], uint8(1), zTab) if zWhere != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11687, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11812, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11717, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11842, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) } else { /* The sqlite_stat[134] table already exists. Delete all rows. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Clear), int32(aRoot[i]), iDb) @@ -91319,15 +91829,15 @@ var _aTable = [3]struct { FzCols uintptr }{ 0: { - FzName: __ccgo_ts + 11584, - FzCols: __ccgo_ts + 11597, + FzName: __ccgo_ts + 11709, + FzCols: __ccgo_ts + 11722, }, 1: { - FzName: __ccgo_ts + 11610, - FzCols: __ccgo_ts + 11623, + FzName: __ccgo_ts + 11735, + FzCols: __ccgo_ts + 11748, }, 2: { - FzName: __ccgo_ts + 11651, + FzName: __ccgo_ts + 11776, }, } @@ -91629,7 +92139,7 @@ func _statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statInitFuncdef = TFuncDef{ FnArg: int8(4), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11735, + FzName: __ccgo_ts + 11860, } func init() { @@ -91775,6 +92285,7 @@ func _sampleInsert(tls *libc.TLS, p uintptr, pNew uintptr, nEqZero int32) { (*TStatAccum)(unsafe.Pointer(p)).FnSample++ /* Zero the first nEqZero entries in the anEq[] array. */ libc.Xmemset(tls, (*TStatSample)(unsafe.Pointer(pSample)).FanEq, 0, uint64(8)*uint64(nEqZero)) + goto find_new_min find_new_min: ; if (*TStatAccum)(unsafe.Pointer(p)).FnSample >= (*TStatAccum)(unsafe.Pointer(p)).FmxSample { @@ -92002,7 +92513,7 @@ func _statPush(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statPushFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(2) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11745, + FzName: __ccgo_ts + 11870, } func init() { @@ -92052,7 +92563,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } else { v1 = (*TStatAccum)(unsafe.Pointer(p)).FnRow } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11755, libc.VaList(bp+72, v1)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11880, libc.VaList(bp+72, v1)) i = 0 for { if !(i < (*TStatAccum)(unsafe.Pointer(p)).FnKeyCol) { @@ -92063,7 +92574,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if iVal == uint64(2) && (*TStatAccum)(unsafe.Pointer(p)).FnRow*uint64(10) <= nDistinct*uint64(11) { iVal = uint64(1) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11760, libc.VaList(bp+72, iVal)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11885, libc.VaList(bp+72, iVal)) goto _2 _2: ; @@ -92102,7 +92613,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if !(i1 < (*TStatAccum)(unsafe.Pointer(p)).FnCol) { break } - Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+11766, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) + Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+11891, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) goto _3 _3: ; @@ -92120,7 +92631,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statGetFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(1) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11772, + FzName: __ccgo_ts + 11897, } func init() { @@ -92141,9 +92652,9 @@ func _callStatGet(tls *libc.TLS, pParse uintptr, regStat int32, iParam int32, re // */ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr, iStatCur int32, iMem int32, iTab int32) { var aGotoChng, db, pColl, pIdx, pPk, pStat1, pX, v, zIdxName uintptr - var addrIsNull, addrNext, addrNextRow, addrRewind, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 + var addrGotoEnd, addrIsNull, addrNext, addrNextRow, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 var needTableCnt, seekOp Tu8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrIsNull, addrNext, addrNextRow, addrRewind, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrGotoEnd, addrIsNull, addrNext, addrNextRow, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Loop counter */ jZeroRows = -int32(1) /* Index of database containing pTab */ needTableCnt = uint8(1) @@ -92186,7 +92697,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Do not gather statistics on views or virtual tables */ return } - if Xsqlite3_strlike(tls, __ccgo_ts+11781, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { + if Xsqlite3_strlike(tls, __ccgo_ts+11906, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { /* Do not gather statistics on system tables */ return } @@ -92200,7 +92711,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint return } (*TTable)(unsafe.Pointer(pStat1)).FzName = pStat1 + 1*104 - libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11584, uint64(13)) + libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11709, uint64(13)) (*TTable)(unsafe.Pointer(pStat1)).FnCol = int16(3) (*TTable)(unsafe.Pointer(pStat1)).FiPKey = int16(-int32(1)) _sqlite3VdbeAddOp4(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Noop), 0, 0, 0, pStat1, -int32(6)) @@ -92254,9 +92765,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* ** Pseudo-code for loop that calls stat_push(): ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() ** goto chng_addr_0; ** ** next_row: @@ -92290,32 +92806,29 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Open a read-only cursor on the index being analyzed. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenRead), iIdxCur, int32((*TIndex)(unsafe.Pointer(pIdx)).Ftnum), iDb) _sqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx) - /* Invoke the stat_init() function. The arguments are: + /* Implementation of the following: ** + ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() + ** goto chng_addr_0; + */ + _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + /* Arguments to stat_init(): ** (1) the number of columns in the index including the rowid ** (or for a WITHOUT ROWID table, the number of PK columns), ** (2) the number of columns in the key without the rowid/pk - ** (3) estimated number of rows in the index, - */ + ** (3) estimated number of rows in the index. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), nCol, regStat+int32(1)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol), regRowid) - if (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0) { - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iIdxCur, regTemp) - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - } else { - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, int32(1)) - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) != uint32(0))) _sqlite3VdbeAddFunctionCall(tls, pParse, 0, regStat+int32(1), regStat, int32(4), uintptr(unsafe.Pointer(&_statInitFuncdef)), 0) - /* Implementation of the following: - ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; - ** regChng = 0 - ** goto next_push_0; - ** - */ + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regChng) addrNextRow = _sqlite3VdbeCurrentAddr(tls, v) if nColTest > 0 { @@ -92424,8 +92937,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iIdxCur, addrNextRow) } /* Add the entry to the stat1 table. */ + if (*TIndex)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 { + /* Partial indexes might get a zero-entry in sqlite_stat1. But + ** an empty table is omitted from sqlite_stat1. */ + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + addrGotoEnd = 0 + } _callStatGet(tls, pParse, regStat, STAT_GET_STAT1, regStat1) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11791, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11916, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP4(tls, v, -int32(1), pStat1, -int32(5)) @@ -92444,6 +92963,11 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint v18 = int32(OP_NotFound) } seekOp = uint8(v18) + /* No STAT4 data is generated if the number of rows is zero */ + if addrGotoEnd == 0 { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Cast), regStat1, int32(SQLITE_AFF_INTEGER)) + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) + } if doOnce != 0 { mxCol = nCol /* Compute the maximum number of columns in any index */ @@ -92496,7 +93020,9 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeJumpHere(tls, v, addrIsNull) } /* End of analysis */ - _sqlite3VdbeJumpHere(tls, v, addrRewind) + if addrGotoEnd != 0 { + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + } goto _13 _13: ; @@ -92509,7 +93035,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iTabCur, regStat1) jZeroRows = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regIdxname) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11791, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11916, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND)) @@ -92581,9 +93107,9 @@ func _analyzeTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr iStatCur = (*TParse)(unsafe.Pointer(pParse)).FnTab *(*int32)(unsafe.Pointer(pParse + 52)) += int32(3) if pOnlyIdx != 0 { - _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11795) + _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11920) } else { - _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11799) + _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11924) } _analyzeOneTable(tls, pParse, pTab, pOnlyIdx, iStatCur, (*TParse)(unsafe.Pointer(pParse)).FnMem+int32(1), (*TParse)(unsafe.Pointer(pParse)).FnTab) _loadAnalysis(tls, pParse, iDb) @@ -92712,7 +93238,7 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, _, _, _, _, _, _ = c, i, sz, v, z, v2 z = zIntArray if z == uintptr(0) { - z = __ccgo_ts + 1650 + z = __ccgo_ts + 1664 } i = 0 for { @@ -92747,17 +93273,17 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 6, 0x40) for *(*uint8)(unsafe.Pointer(z)) != 0 { - if Xsqlite3_strglob(tls, __ccgo_ts+11803, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11928, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 2, 0x4) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11814, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11939, z) == 0 { sz = _sqlite3Atoi(tls, z+uintptr(3)) if sz < int32(2) { sz = int32(2) } (*TIndex)(unsafe.Pointer(pIndex)).FszIdxRow = _sqlite3LogEst(tls, uint64(sz)) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11824, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11949, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 6, 0x40) } } @@ -93133,11 +93659,11 @@ func _loadStat4(tls *libc.TLS, db uintptr, zDb uintptr) (r int32) { _, _, _, _ = pStat4, rc, v1, v2 rc = SQLITE_OK if v2 = (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0); v2 { - v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11610, zDb) + v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11735, zDb) pStat4 = v1 } if v2 && v1 != uintptr(0) && int32((*TTable)(unsafe.Pointer(pStat4)).FeTabType) == TABTYP_NORM { - rc = _loadStatTbl(tls, db, __ccgo_ts+11836, __ccgo_ts+11905, zDb) + rc = _loadStatTbl(tls, db, __ccgo_ts+11961, __ccgo_ts+12030, zDb) } return rc } @@ -93203,10 +93729,10 @@ func _sqlite3AnalysisLoad(tls *libc.TLS, db uintptr, iDb int32) (r int32) { /* Load new statistics out of the sqlite_stat1 table */ (*(*TanalysisInfo)(unsafe.Pointer(bp))).Fdb = db (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName - v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11584, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) + v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11709, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) pStat1 = v3 if v3 != 0 && int32((*TTable)(unsafe.Pointer(pStat1)).FeTabType) == TABTYP_NORM { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+11957, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+12082, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -93319,7 +93845,7 @@ func _resolveAttachExpr(tls *libc.TLS, pName uintptr, pExpr uintptr) (r int32) { // ** database iDb attached to handle db. // */ func _sqlite3DbIsNamed(tls *libc.TLS, db uintptr, iDb int32, zName uintptr) (r int32) { - return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6587, zName) == 0) + return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6651, zName) == 0) } // C documentation @@ -93361,21 +93887,21 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { zFile = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) zName = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if zFile == uintptr(0) { - zFile = __ccgo_ts + 1650 + zFile = __ccgo_ts + 1664 } if zName == uintptr(0) { - zName = __ccgo_ts + 1650 + zName = __ccgo_ts + 1664 } if int32(uint32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x4>>2)) != 0 { /* This is not a real ATTACH. Instead, this routine is being called ** from sqlite3_deserialize() to close database db->init.iDb and ** reopen it as a MemDB */ *(*uintptr)(unsafe.Pointer(bp + 40)) = uintptr(0) - *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+3969) + *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+4033) if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { return } - rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+11998, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) + rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12123, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) if rc == SQLITE_OK { pNewSchema = _sqlite3SchemaGet(tls, db, *(*uintptr)(unsafe.Pointer(bp + 40))) if pNewSchema != 0 { @@ -93406,7 +93932,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { ** * Specified database name already being used. */ if (*Tsqlite3)(unsafe.Pointer(db)).FnDb >= *(*int32)(unsafe.Pointer(db + 136 + 7*4))+int32(2) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12001, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12126, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) goto attach_error } i = 0 @@ -93415,7 +93941,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { break } if _sqlite3DbIsNamed(tls, db, i, zName) != 0 { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12038, libc.VaList(bp+56, zName)) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12163, libc.VaList(bp+56, zName)) goto attach_error } goto _1 @@ -93463,7 +93989,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FnoSharedCache = uint8(0) if rc == int32(SQLITE_CONSTRAINT) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12068, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12193, 0) } else { if rc == SQLITE_OK { (*TDb)(unsafe.Pointer(pNew)).FpSchema = _sqlite3SchemaGet(tls, db, (*TDb)(unsafe.Pointer(pNew)).FpBt) @@ -93471,7 +93997,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { rc = int32(SQLITE_NOMEM) } else { if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Ffile_format != 0 && int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Fenc) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12097, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12222, 0) rc = int32(SQLITE_ERROR) } } @@ -93515,16 +94041,17 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)<= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12193, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12318, libc.VaList(bp+136, zName)) goto detach_error } if i < int32(2) { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12214, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12339, libc.VaList(bp+136, zName)) goto detach_error } if _sqlite3BtreeTxnState(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != SQLITE_TXN_NONE || _sqlite3BtreeIsInBackup(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != 0 { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12240, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12365, libc.VaList(bp+136, zName)) goto detach_error } /* If any TEMP triggers reference the schema being detached, move those @@ -93605,6 +94132,7 @@ func _detachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*TDb)(unsafe.Pointer(pDb)).FpSchema = uintptr(0) _sqlite3CollapseDatabaseArray(tls, db) return + goto detach_error detach_error: ; Xsqlite3_result_error(tls, context, bp, -int32(1)) @@ -93659,6 +94187,7 @@ func _codeAttach(tls *libc.TLS, pParse uintptr, type1 int32, pFunc uintptr, pAut */ _sqlite3VdbeAddOp1(tls, v, int32(OP_Expire), libc.BoolInt32(type1 == int32(SQLITE_ATTACH))) } + goto attach_end attach_end: ; _sqlite3ExprDelete(tls, db, pFilename) @@ -93680,7 +94209,7 @@ func _sqlite3Detach(tls *libc.TLS, pParse uintptr, pDbname uintptr) { var _detach_func = TFuncDef{ FnArg: int8(1), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12262, + FzName: __ccgo_ts + 12387, } func init() { @@ -93702,7 +94231,7 @@ func _sqlite3Attach(tls *libc.TLS, pParse uintptr, p uintptr, pDbname uintptr, p var _attach_func = TFuncDef{ FnArg: int8(3), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12276, + FzName: __ccgo_ts + 12401, } func init() { @@ -93728,7 +94257,7 @@ func _fixExprCb(tls *libc.TLS, p uintptr, pExpr uintptr) (r int32) { if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer((*TDbFixer)(unsafe.Pointer(pFix)).FpParse)).Fdb)).Finit1.Fbusy != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } else { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12290, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12415, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) return int32(WRC_Abort) } } @@ -93762,7 +94291,7 @@ func _fixSelectCb(tls *libc.TLS, p uintptr, pSelect uintptr) (r int32) { if int32((*TDbFixer)(unsafe.Pointer(pFix)).FbTemp) == 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { if iDb != _sqlite3FindDbName(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12314, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12439, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) return int32(WRC_Abort) } _sqlite3DbFree(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) @@ -93978,7 +94507,7 @@ func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uint // ** user-supplied authorization function returned an illegal value. // */ func _sqliteAuthBadReturnCode(tls *libc.TLS, pParse uintptr) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12360, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12485, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) } @@ -94006,11 +94535,11 @@ func _sqlite3AuthReadCol(tls *libc.TLS, pParse uintptr, zTab uintptr, zCol uintp } rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, int32(SQLITE_READ), zTab, zCol, zDb, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12383, libc.VaList(bp+8, zTab, zCol)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12508, libc.VaList(bp+8, zTab, zCol)) if (*Tsqlite3)(unsafe.Pointer(db)).FnDb > int32(2) || iDb != 0 { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12389, libc.VaList(bp+8, zDb, z)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12514, libc.VaList(bp+8, zDb, z)) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12395, libc.VaList(bp+8, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12520, libc.VaList(bp+8, z)) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != int32(SQLITE_IGNORE) && rc != SQLITE_OK { @@ -94070,7 +94599,7 @@ func _sqlite3AuthRead(tls *libc.TLS, pParse uintptr, pExpr uintptr, pSchema uint if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName } else { - zCol = __ccgo_ts + 7907 + zCol = __ccgo_ts + 8032 } } if int32(SQLITE_IGNORE) == _sqlite3AuthReadCol(tls, pParse, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol, iDb) { @@ -94105,7 +94634,7 @@ func _sqlite3AuthCheck(tls *libc.TLS, pParse uintptr, code int32, zArg1 uintptr, ** parameters can be either NULL or a string. */ rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, code, zArg1, zArg2, zArg3, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12422, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12547, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != SQLITE_OK && rc != int32(SQLITE_IGNORE) { @@ -94526,21 +95055,21 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp if i >= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { /* No match against the official names. But always match "main" ** to schema 0 as a legacy fallback. */ - if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6587) == 0 { + if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6651) == 0 { i = 0 } else { return uintptr(0) } } p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, zName) - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6527, int32(7)) == 0 { + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6591, int32(7)) == 0 { if i == int32(1) { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6554+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6573+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6068+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6535) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6618+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6637+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6132+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6599) } } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6573+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6068) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6637+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6132) } } } @@ -94570,12 +95099,12 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp ; i++ } - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6527, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6573+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6068) + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6591, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6637+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6132) } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6554+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6535) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6618+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6599) } } } @@ -94613,7 +95142,7 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt ** can be an eponymous virtual table. */ if int32((*TParse)(unsafe.Pointer(pParse)).FprepFlags)&int32(SQLITE_PREPARE_NO_VTAB) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 { pMod = _sqlite3HashFind(tls, db+576, zName) - if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12437, int32(7)) == 0 { + if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12562, int32(7)) == 0 { pMod = _sqlite3PragmaVtabRegister(tls, db, zName) } if pMod != 0 && _sqlite3VtabEponymousTableInit(tls, pParse, pMod) != 0 { @@ -94631,15 +95160,15 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt } if p == uintptr(0) { if flags&uint32(LOCATE_VIEW) != 0 { - v1 = __ccgo_ts + 12445 + v1 = __ccgo_ts + 12570 } else { - v1 = __ccgo_ts + 12458 + v1 = __ccgo_ts + 12583 } zMsg = v1 if zDbase != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6791, libc.VaList(bp+8, zMsg, zDbase, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6855, libc.VaList(bp+8, zMsg, zDbase, zName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6801, libc.VaList(bp+8, zMsg, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6926, libc.VaList(bp+8, zMsg, zName)) } } else { } @@ -94677,12 +95206,12 @@ func _sqlite3LocateTableItem(tls *libc.TLS, pParse uintptr, flags Tu32, p uintpt // ** names into the new preferred names, as appropriate. // */ func _sqlite3PreferredTableName(tls *libc.TLS, zName uintptr) (r uintptr) { - if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6527, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6068+7) == 0 { - return __ccgo_ts + 6573 + if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6591, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6132+7) == 0 { + return __ccgo_ts + 6637 } - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6535+7) == 0 { - return __ccgo_ts + 6554 + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6599+7) == 0 { + return __ccgo_ts + 6618 } } return zName @@ -95207,7 +95736,7 @@ func _sqlite3OpenSchemaTable(tls *libc.TLS, p uintptr, iDb int32) { var v uintptr _ = v v = _sqlite3GetVdbe(tls, p) - _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6068) + _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6132) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_OpenWrite), 0, int32(SCHEMA_ROOT), iDb, int32(5)) if (*TParse)(unsafe.Pointer(p)).FnTab == 0 { (*TParse)(unsafe.Pointer(p)).FnTab = int32(1) @@ -95239,7 +95768,7 @@ func _sqlite3FindDbName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) { } /* "main" is always an acceptable alias for the primary database ** even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME. */ - if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6587, zName) { + if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6651, zName) { break } goto _1 @@ -95297,13 +95826,13 @@ func _sqlite3TwoPartName(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12472, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12597, 0) return -int32(1) } *(*uintptr)(unsafe.Pointer(pUnqual)) = pName2 iDb = _sqlite3FindDb(tls, db, pName1) if iDb < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12489, libc.VaList(bp+8, pName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12614, libc.VaList(bp+8, pName1)) return -int32(1) } } else { @@ -95347,12 +95876,12 @@ func _sqlite3CheckObjectName(tls *libc.TLS, pParse uintptr, zName uintptr, zType } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if Xsqlite3_stricmp(tls, zType, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit))) != 0 || Xsqlite3_stricmp(tls, zName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 1*8))) != 0 || Xsqlite3_stricmp(tls, zTblName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 2*8))) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1650, 0) /* corruptSchema() will supply the error */ + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1664, 0) /* corruptSchema() will supply the error */ return int32(SQLITE_ERROR) } } else { - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6527, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12509, libc.VaList(bp+8, zName)) + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6591, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12634, libc.VaList(bp+8, zName)) return int32(SQLITE_ERROR) } } @@ -95567,9 +96096,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Special case: Parsing the sqlite_schema or sqlite_temp_schema schema */ iDb = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6535 + v1 = __ccgo_ts + 6599 } else { - v1 = __ccgo_ts + 6068 + v1 = __ccgo_ts + 6132 } zName = _sqlite3DbStrDup(tls, db, v1) *(*uintptr)(unsafe.Pointer(bp)) = pName1 @@ -95582,7 +96111,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 && (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) && iDb != int32(1) { /* If creating a temp table, the name may not be qualified. Unless ** the database name is "temp" anyway. */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12551, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12676, 0) return } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 { @@ -95598,9 +96127,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui return } if isView != 0 { - v2 = __ccgo_ts + 10798 + v2 = __ccgo_ts + 10923 } else { - v2 = __ccgo_ts + 9060 + v2 = __ccgo_ts + 9185 } if _sqlite3CheckObjectName(tls, pParse, zName, v2, zName) != 0 { goto begin_table_error @@ -95610,9 +96139,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui } zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp == int32(1) { - v3 = __ccgo_ts + 6535 + v3 = __ccgo_ts + 6599 } else { - v3 = __ccgo_ts + 6068 + v3 = __ccgo_ts + 6132 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto begin_table_error @@ -95636,11 +96165,11 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if pTable != 0 { if !(noErr != 0) { if int32((*TTable)(unsafe.Pointer(pTable)).FeTabType) == int32(TABTYP_VIEW) { - v4 = __ccgo_ts + 10798 + v4 = __ccgo_ts + 10923 } else { - v4 = __ccgo_ts + 9060 + v4 = __ccgo_ts + 9185 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12592, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12717, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) _sqlite3ForceNotReadOnly(tls, pParse) @@ -95648,7 +96177,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui goto begin_table_error } if _sqlite3FindIndex(tls, db, zName, zDb1) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12613, libc.VaList(bp+16, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12738, libc.VaList(bp+16, zName)) goto begin_table_error } } @@ -95736,6 +96265,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Normal (non-error) return. */ return /* If an error occurs, we jump here */ + goto begin_table_error begin_table_error: ; (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) @@ -95799,7 +96329,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { _, _, _ = db, pHash, pRet db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12648, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12773, 0) } else { } (*TParse)(unsafe.Pointer(pParse)).FbReturning = uint8(1) @@ -95815,7 +96345,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return } - Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+12682, libc.VaList(bp+8, pParse)) + Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+12807, libc.VaList(bp+8, pParse)) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.FzName = pRet + 196 (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Fop = uint8(TK_RETURNING) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Ftr_tm = uint8(TRIGGER_AFTER) @@ -95862,7 +96392,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok return } if int32((*TTable)(unsafe.Pointer(p)).FnCol)+int32(1) > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12702, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12827, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) return } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -95872,12 +96402,12 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok ** by the parser, we can sometimes end up with a typename that ends ** with "generated always". Check for this case and omit the surplus ** text. */ - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12725, int32(6)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12850, int32(6)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(6) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- } - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12732, int32(9)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12857, int32(9)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(9) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- @@ -95926,7 +96456,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok break } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FhName) == int32(hName) && _sqlite3StrICmp(tls, z, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FzCnName) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12742, libc.VaList(bp+40, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12867, libc.VaList(bp+40, z)) _sqlite3DbFree(tls, db, z) return } @@ -96134,10 +96664,10 @@ func _sqlite3AddDefaultValue(tls *libc.TLS, pParse uintptr, pExpr uintptr, zStar isInit = libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) != int32(1)) pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(p)).FnCol)-int32(1))*16 if !(_sqlite3ExprIsConstantOrFunction(tls, pExpr, uint8(isInit)) != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12768, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12893, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12813, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12938, 0) } else { libc.Xmemset(tls, bp, 0, uint64(72)) (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_SPAN) @@ -96195,7 +96725,7 @@ func _makeColumnPartOfPrimaryKey(tls *libc.TLS, pParse uintptr, pCol uintptr) { p1 = pCol + 14 *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(COLFLAG_PRIMKEY)) if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12854, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12979, 0) } } @@ -96232,7 +96762,7 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError goto primary_key_exit } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasPrimaryKey) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12906, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13031, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto primary_key_exit } *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_HasPrimaryKey) @@ -96288,12 +96818,13 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError _sqlite3HasExplicitNulls(tls, pParse, pList) } else { if autoInc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12947, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13072, 0) } else { _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), pList, onError, uintptr(0), uintptr(0), sortOrder, 0, uint8(SQLITE_IDXTYPE_PRIMARYKEY)) pList = uintptr(0) } } + goto primary_key_exit primary_key_exit: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) @@ -96403,17 +96934,17 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui } pCol = (*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-int32(1))*16 if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) == int32(PARSE_MODE_DECLARE_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13003, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13128, 0) goto generated_done } if int32((*TColumn)(unsafe.Pointer(pCol)).FiDflt) > 0 { goto generated_error } if pType != 0 { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13046, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13171, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { /* no-op */ } else { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13054, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13179, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { eType = uint8(COLFLAG_STORED) } else { goto generated_error @@ -96442,9 +96973,11 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui _sqlite3ColumnSetExpr(tls, pParse, pTab, pCol, pExpr) pExpr = uintptr(0) goto generated_done + goto generated_error generated_error: ; - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13061, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13186, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + goto generated_done generated_done: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -96606,13 +97139,13 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { } n += _identLength(tls, (*TTable)(unsafe.Pointer(p)).FzName) if n < int32(50) { - zSep = __ccgo_ts + 1650 - zSep2 = __ccgo_ts + 13092 - zEnd = __ccgo_ts + 5108 + zSep = __ccgo_ts + 1664 + zSep2 = __ccgo_ts + 13217 + zEnd = __ccgo_ts + 5172 } else { - zSep = __ccgo_ts + 13094 - zSep2 = __ccgo_ts + 13098 - zEnd = __ccgo_ts + 13103 + zSep = __ccgo_ts + 13219 + zSep2 = __ccgo_ts + 13223 + zEnd = __ccgo_ts + 13228 } n += int32(35) + int32(6)*int32((*TTable)(unsafe.Pointer(p)).FnCol) zStmt = _sqlite3DbMallocRaw(tls, uintptr(0), uint64(n)) @@ -96620,7 +97153,7 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { _sqlite3OomFault(tls, db) return uintptr(0) } - Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13106, 0) + Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13231, 0) *(*int32)(unsafe.Pointer(bp)) = _sqlite3Strlen30(tls, zStmt) _identPut(tls, zStmt, bp, (*TTable)(unsafe.Pointer(p)).FzName) v2 = *(*int32)(unsafe.Pointer(bp)) @@ -96646,17 +97179,17 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { i++ pCol += 16 } - Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3797, libc.VaList(bp+16, zEnd)) + Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3861, libc.VaList(bp+16, zEnd)) return zStmt } var _azType1 = [6]uintptr{ - 0: __ccgo_ts + 1650, - 1: __ccgo_ts + 13120, - 2: __ccgo_ts + 13126, - 3: __ccgo_ts + 13131, - 4: __ccgo_ts + 13136, - 5: __ccgo_ts + 13126, + 0: __ccgo_ts + 1664, + 1: __ccgo_ts + 13245, + 2: __ccgo_ts + 13251, + 3: __ccgo_ts + 13256, + 4: __ccgo_ts + 13261, + 5: __ccgo_ts + 13251, } // C documentation @@ -97230,13 +97763,13 @@ func _sqlite3ShadowTableName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr, tabOpts Tu32, pSelect uintptr) { bp := tls.Alloc(112) defer tls.Free(112) - var addrInsLoop, addrTop, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v4, v6, v8 int32 + var addrInsLoop, addrTop, iCsr, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v10, v4, v6, v8 int32 var colFlags Tu32 - var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v5, v7, v9 uintptr - var v10 Ti16 + var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v13, v5, v7, v9 uintptr + var v12 Ti16 var _ /* dest at bp+0 */ TSelectDest - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v4, v5, v6, v7, v8, v9 /* The new table */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iCsr, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v12, v13, v4, v5, v6, v7, v8, v9 /* The new table */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ if pEnd == uintptr(0) && pSelect == uintptr(0) { return } @@ -97258,7 +97791,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if pSelect != 0 || !(int32((*TTable)(unsafe.Pointer(p)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) && (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1650, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1664, 0) return } (*TTable)(unsafe.Pointer(p)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum @@ -97285,9 +97818,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(ii)*16 if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf0>>4)) == COLTYPE_CUSTOM { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_HASTYPE) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13142, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1650))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13267, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1664))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13175, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13300, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } return } else { @@ -97308,11 +97841,11 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* Special processing for WITHOUT ROWID Tables */ if tabOpts&uint32(TF_WithoutRowid) != 0 { if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13202, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13327, 0) return } if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasPrimaryKey) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13252, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13377, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) return } *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) @@ -97359,7 +97892,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ii1++ } if nNG == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13284, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13409, 0) return } } @@ -97393,12 +97926,12 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if int32((*TTable)(unsafe.Pointer(p)).FeTabType) == TABTYP_NORM { /* A regular table */ - zType = __ccgo_ts + 9060 - zType2 = __ccgo_ts + 13328 + zType = __ccgo_ts + 9185 + zType2 = __ccgo_ts + 13453 } else { /* A view */ - zType = __ccgo_ts + 10798 - zType2 = __ccgo_ts + 13334 + zType = __ccgo_ts + 10923 + zType2 = __ccgo_ts + 13459 } /* If this is a CREATE TABLE xx AS SELECT ..., execute the SELECT ** statement to populate the new table. The root-page number for the @@ -97413,28 +97946,31 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** a schema-lock excludes all other database users, the write-lock would ** be redundant. */ - if pSelect != 0 { /* A table that describes the SELECT results */ + if pSelect != 0 { /* Write cursor on the new table */ if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) (*TParse)(unsafe.Pointer(pParse)).FnErr++ return } - v5 = pParse + 56 - *(*int32)(unsafe.Pointer(v5))++ + v5 = pParse + 52 v4 = *(*int32)(unsafe.Pointer(v5)) - regYield = v4 + *(*int32)(unsafe.Pointer(v5))++ + iCsr = v4 v7 = pParse + 56 *(*int32)(unsafe.Pointer(v7))++ v6 = *(*int32)(unsafe.Pointer(v7)) - regRec = v6 + regYield = v6 v9 = pParse + 56 *(*int32)(unsafe.Pointer(v9))++ v8 = *(*int32)(unsafe.Pointer(v9)) - regRowid = v8 + regRec = v8 + v11 = pParse + 56 + *(*int32)(unsafe.Pointer(v11))++ + v10 = *(*int32)(unsafe.Pointer(v11)) + regRowid = v10 _sqlite3MayAbort(tls, pParse) - _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), int32(1), (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) + _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), iCsr, (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_P2ISREG)) - (*TParse)(unsafe.Pointer(pParse)).FnTab = int32(2) addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { @@ -97444,9 +97980,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr if pSelTab == uintptr(0) { return } - v10 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol - (*TTable)(unsafe.Pointer(p)).FnNVCol = v10 - (*TTable)(unsafe.Pointer(p)).FnCol = v10 + v12 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol + (*TTable)(unsafe.Pointer(p)).FnNVCol = v12 + (*TTable)(unsafe.Pointer(p)).FnCol = v12 (*TTable)(unsafe.Pointer(p)).FaCol = (*TTable)(unsafe.Pointer(pSelTab)).FaCol (*TTable)(unsafe.Pointer(pSelTab)).FnCol = 0 (*TTable)(unsafe.Pointer(pSelTab)).FaCol = uintptr(0) @@ -97461,33 +97997,33 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr addrInsLoop = _sqlite3VdbeAddOp1(tls, v, int32(OP_Yield), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSDParm) _sqlite3VdbeAddOp3(tls, v, int32(OP_MakeRecord), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst, (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst, regRec) _sqlite3TableAffinity(tls, v, p, 0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), int32(1), regRowid) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), int32(1), regRec, regRowid) + _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iCsr, regRowid) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iCsr, regRec, regRowid) _sqlite3VdbeGoto(tls, v, addrInsLoop) _sqlite3VdbeJumpHere(tls, v, addrInsLoop) - _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), int32(1)) + _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), iCsr) } /* Compute the complete text of the CREATE statement */ if pSelect != 0 { zStmt = _createTableStmt(tls, db, p) } else { if tabOpts != 0 { - v11 = pParse + 288 + v13 = pParse + 288 } else { - v11 = pEnd + v13 = pEnd } - pEnd2 = v11 + pEnd2 = v13 n = int32(int64((*TToken)(unsafe.Pointer(pEnd2)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) if int32(*(*uint8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pEnd2)).Fz))) != int32(';') { n = int32(uint32(n) + (*TToken)(unsafe.Pointer(pEnd2)).Fn) } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13339, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13464, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) } /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13354, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13479, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) _sqlite3DbFree(tls, db, zStmt) _sqlite3ChangeCookie(tls, pParse, iDb) /* Check to see if we need to create an sqlite_sequence table for @@ -97496,17 +98032,16 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != uint32(0) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != libc.Int32FromInt32(PARSE_MODE_NORMAL)) { pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).FpSeqTab == uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13452, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13577, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) } } /* Reparse everything to update our internal data structures */ - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13494, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13619, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) /* Test for cycles in generated columns and illegal expressions ** in CHECK constraints and in DEFAULT clauses. */ if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasGenerated) != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13528, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(0x0001), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13653, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13549, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } /* Add the table to the in-memory representation of the database. */ @@ -97523,7 +98058,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* If this is the magic sqlite_sequence table used by autoincrement, ** then record a pointer to this table in the main database structure ** so that INSERT can find the table easily. */ - if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9582) == 0 { + if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9707) == 0 { (*TSchema)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FpSchema)).FpSeqTab = p } } @@ -97556,7 +98091,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*uintptr)(unsafe.Pointer(bp + 112)) = uintptr(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if int32((*TParse)(unsafe.Pointer(pParse)).FnVar) > 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13581, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13674, 0) goto create_view_fail } _sqlite3StartTable(tls, pParse, pName1, pName2, isTemp, int32(1), 0, noErr) @@ -97573,7 +98108,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(TF_NoVisibleRowid) /* Never allow rowid in view */ _sqlite3TwoPartName(tls, pParse, pName1, pName2, bp+112) iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(p)).FpSchema) - _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+10798, *(*uintptr)(unsafe.Pointer(bp + 112))) + _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+10923, *(*uintptr)(unsafe.Pointer(bp + 112))) if _sqlite3FixSelect(tls, bp+16, pSelect) != 0 { goto create_view_fail } @@ -97615,6 +98150,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui (*(*TToken)(unsafe.Pointer(bp))).Fn = uint32(1) /* Use sqlite3EndTable() to add the view to the schema table */ _sqlite3EndTable(tls, pParse, uintptr(0), bp, uint32(0), uintptr(0)) + goto create_view_fail create_view_fail: ; _sqlite3SelectDelete(tls, db, pSelect) @@ -97668,7 +98204,7 @@ func _viewGetColumnNames(tls *libc.TLS, pParse uintptr, pTable uintptr) (r int32 ** SELECT * FROM temp.ex1; */ if int32((*TTable)(unsafe.Pointer(pTable)).FnCol) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13617, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13710, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) return int32(1) } /* If we get this far, it means we need to compute the table names. @@ -97852,7 +98388,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { v = _sqlite3GetVdbe(tls, pParse) r1 = _sqlite3GetTempReg(tls, pParse) if iTable < int32(2) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13647, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13740, 0) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Destroy), iTable, r1, iDb) _sqlite3MayAbort(tls, pParse) @@ -97865,7 +98401,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { ** is in register NNN. See grammar rules associated with the TK_REGISTER ** token for additional information. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13662, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13755, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) _sqlite3ReleaseTempReg(tls, pParse, r1) } @@ -97948,9 +98484,9 @@ func _sqlite3ClearStatTables(tls *libc.TLS, pParse uintptr, iDb int32, zType uin if !(i <= int32(4)) { break } - Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13729, libc.VaList(bp+32, i)) + Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13822, libc.VaList(bp+32, i)) if _sqlite3FindTable(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, bp, zDbName) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11687, libc.VaList(bp+32, zDbName, bp, zType, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11812, libc.VaList(bp+32, zDbName, bp, zType, zName)) } goto _1 _1: @@ -97991,7 +98527,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** move as a result of the drop (can happen in auto-vacuum mode). */ if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13743, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13836, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* Drop all entries in the schema table that refer to the ** table. The program name loops through the schema table and deletes @@ -98000,7 +98536,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** created in the temp database that refers to a table in another ** database. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13788, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13881, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !(isView != 0) && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { _destroyTable(tls, pParse, pTab) } @@ -98035,11 +98571,11 @@ func _sqlite3ReadOnlyShadowTables(tls *libc.TLS, db uintptr) (r int32) { // ** Return true if it is not allowed to drop the given table // */ func _tableMayNotBeDropped(tls *libc.TLS, db uintptr, pTab uintptr) (r int32) { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6527, int32(7)) == 0 { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3420, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6591, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3484, int32(4)) == 0 { return 0 } - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7268, int32(10)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7393, int32(10)) == 0 { return 0 } return int32(1) @@ -98094,9 +98630,9 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6535 + v1 = __ccgo_ts + 6599 } else { - v1 = __ccgo_ts + 6068 + v1 = __ccgo_ts + 6132 } zTab = v1 zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName @@ -98129,18 +98665,18 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if _tableMayNotBeDropped(tls, db, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13855, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13948, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Ensure DROP TABLE is not used on a view, and DROP VIEW is not used ** on a table. */ if isView != 0 && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13883, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13976, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } if !(isView != 0) && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13917, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14010, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Generate code to remove the table from the schema table @@ -98150,11 +98686,12 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) if !(isView != 0) { - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11799, (*TTable)(unsafe.Pointer(pTab)).FzName) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11924, (*TTable)(unsafe.Pointer(pTab)).FzName) _sqlite3FkDropTable(tls, pParse, pName, pTab) } _sqlite3CodeDropTable(tls, pParse, pTab, iDb, isView) } + goto exit_drop_table exit_drop_table: ; _sqlite3SrcListDelete(tls, db, pName) @@ -98197,13 +98734,13 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p goto fk_end } if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13949, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14042, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) goto fk_end } nCol = int32(1) } else { if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14012, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14105, 0) goto fk_end } else { nCol = (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr @@ -98266,7 +98803,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p j++ } if j >= int32((*TTable)(unsafe.Pointer(p)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14106, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14199, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) goto fk_end } if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { @@ -98318,6 +98855,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p FpDfltList uintptr })(unsafe.Pointer(p + 64))).FpFKey = pFKey pFKey = uintptr(0) + goto fk_end fk_end: ; _sqlite3DbFree(tls, db, pFKey) @@ -98525,11 +99063,11 @@ func _sqlite3HasExplicitNulls(tls *libc.TLS, pParse uintptr, pList uintptr) (r i if int32(uint32(*(*uint16)(unsafe.Pointer(pList + 8 + uintptr(i)*32 + 16 + 4))&0x20>>5)) != 0 { sf = (*(*TExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32))).Ffg.FsortFlags if int32(sf) == 0 || int32(sf) == int32(3) { - v2 = __ccgo_ts + 14152 + v2 = __ccgo_ts + 14245 } else { - v2 = __ccgo_ts + 14158 + v2 = __ccgo_ts + 14251 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14163, libc.VaList(bp+8, v2)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14256, libc.VaList(bp+8, v2)) return int32(1) } goto _1 @@ -98607,7 +99145,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = int32(1) } } - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14191, *(*uintptr)(unsafe.Pointer(bp + 96))) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14284, *(*uintptr)(unsafe.Pointer(bp + 96))) if _sqlite3FixSrcList(tls, bp, pTblName) != 0 { /* Because the parser constructs pTblName from a single identifier, ** sqlite3FixSrcList can never fail. */ @@ -98617,7 +99155,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } if iDb == int32(1) && (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema != (*TTable)(unsafe.Pointer(pTab)).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14197, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14290, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { @@ -98631,16 +99169,16 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6527, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14247, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6591, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14340, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14275, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14368, 0) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14300, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14393, 0) goto exit_create_index } /* @@ -98661,19 +99199,19 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if zName == uintptr(0) { goto exit_create_index } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14191, (*TTable)(unsafe.Pointer(pTab)).FzName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14284, (*TTable)(unsafe.Pointer(pTab)).FzName) { goto exit_create_index } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if !((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0) { if _sqlite3FindTable(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14334, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14427, libc.VaList(bp+136, zName)) goto exit_create_index } } if _sqlite3FindIndex(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { if !(ifNotExist != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14368, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14461, libc.VaList(bp+136, zName)) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) _sqlite3ForceNotReadOnly(tls, pParse) @@ -98694,7 +99232,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pLoop = (*TIndex)(unsafe.Pointer(pLoop)).FpNext n++ } - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14392, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14485, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) if zName == uintptr(0) { goto exit_create_index } @@ -98712,9 +99250,9 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { zDb = (*TDb)(unsafe.Pointer(pDb)).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6535 + v2 = __ccgo_ts + 6599 } else { - v2 = __ccgo_ts + 6068 + v2 = __ccgo_ts + 6132 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v2, uintptr(0), zDb) != 0 { goto exit_create_index @@ -98742,7 +99280,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } _sqlite3ExprListSetSortOrder(tls, pList, sortOrder, -int32(1)) } else { - _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14191) + _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14284) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { goto exit_create_index } @@ -98826,7 +99364,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pCExpr = _sqlite3ExprSkipCollate(tls, (*TExprList_item)(unsafe.Pointer(pListItem)).FpExpr) if int32((*TExpr)(unsafe.Pointer(pCExpr)).Fop) != int32(TK_COLUMN) { if pTab == (*TParse)(unsafe.Pointer(pParse)).FpNewTable { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14415, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14508, 0) goto exit_create_index } if (*TIndex)(unsafe.Pointer(pIndex)).FaColExpr == uintptr(0) { @@ -98973,7 +99511,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u ** explicitly specified behavior for the index. */ if !(int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) || int32((*TIndex)(unsafe.Pointer(pIndex)).FonError) == int32(OE_Default)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14476, libc.VaList(bp+136, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14569, libc.VaList(bp+136, 0)) } if int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) { (*TIndex)(unsafe.Pointer(pIdx)).FonError = (*TIndex)(unsafe.Pointer(pIndex)).FonError @@ -99003,8 +99541,8 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != uintptr(0) { (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14518, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125123)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14611, 0) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125741)) goto exit_create_index } } @@ -99044,11 +99582,11 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* A named index with an explicit CREATE INDEX statement */ if onError == OE_None { - v13 = __ccgo_ts + 1650 + v13 = __ccgo_ts + 1664 } else { - v13 = __ccgo_ts + 14535 + v13 = __ccgo_ts + 14628 } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14543, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14636, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) } else { /* An automatic index created by a PRIMARY KEY or UNIQUE constraint */ /* zStmt = sqlite3MPrintf(""); */ @@ -99056,7 +99594,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* Add an entry in sqlite_schema for this index */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14563, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14656, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) _sqlite3DbFree(tls, db, zStmt) /* Fill the index with data and reparse the schema. Code an OP_Expire ** to invalidate all pre-compiled statements. @@ -99064,7 +99602,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != 0 { _sqlite3RefillIndex(tls, pParse, pIndex, iMem) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14622, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14715, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Expire), 0, int32(1)) } _sqlite3VdbeJumpHere(tls, v, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum)) @@ -99082,6 +99620,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } } /* Clean up before exiting */ + goto exit_create_index exit_create_index: ; if pIndex != 0 { @@ -99226,7 +99765,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pIndex = _sqlite3FindIndex(tls, db, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzName, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) if pIndex == uintptr(0) { if !(ifExists != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14649, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14742, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) _sqlite3ForceNotReadOnly(tls, pParse) @@ -99235,7 +99774,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in goto exit_drop_index } if int32(uint32(*(*uint16)(unsafe.Pointer(pIndex + 100))&0x3>>0)) != SQLITE_IDXTYPE_APPDEF { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14667, libc.VaList(bp+8, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14760, libc.VaList(bp+8, 0)) goto exit_drop_index } iDb = _sqlite3SchemaToIndex(tls, db, (*TIndex)(unsafe.Pointer(pIndex)).FpSchema) @@ -99243,9 +99782,9 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pTab = (*TIndex)(unsafe.Pointer(pIndex)).FpTable zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6535 + v1 = __ccgo_ts + 6599 } else { - v1 = __ccgo_ts + 6068 + v1 = __ccgo_ts + 6132 } zTab = v1 if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_DELETE), zTab, uintptr(0), zDb) != 0 { @@ -99261,12 +99800,13 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in v = _sqlite3GetVdbe(tls, pParse) if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14740, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11795, (*TIndex)(unsafe.Pointer(pIndex)).FzName) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14833, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11920, (*TIndex)(unsafe.Pointer(pIndex)).FzName) _sqlite3ChangeCookie(tls, pParse, iDb) _destroyRootPage(tls, pParse, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum), iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropIndex), iDb, 0, 0, (*TIndex)(unsafe.Pointer(pIndex)).FzName, 0) } + goto exit_drop_index exit_drop_index: ; _sqlite3SrcListDelete(tls, db, pName) @@ -99452,7 +99992,7 @@ func _sqlite3SrcListEnlarge(tls *libc.TLS, pParse uintptr, pSrc uintptr, nExtra nAlloc = int64(2)*int64((*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) + int64(nExtra) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc+nExtra >= int32(SQLITE_MAX_SRCLIST) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14800, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14893, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) return uintptr(0) } if nAlloc > int64(SQLITE_MAX_SRCLIST) { @@ -99684,11 +100224,11 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa db = (*TParse)(unsafe.Pointer(pParse)).Fdb if !(p != 0) && pOnUsing != uintptr(0) && ((*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 || (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpUsing != 0) { if (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 { - v1 = __ccgo_ts + 14836 + v1 = __ccgo_ts + 14929 } else { - v1 = __ccgo_ts + 14839 + v1 = __ccgo_ts + 14932 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14845, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14938, libc.VaList(bp+8, v1)) goto append_from_error } p = _sqlite3SrcListAppend(tls, pParse, p, pTable, pDatabase) @@ -99725,6 +100265,7 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa } } return p + goto append_from_error append_from_error: ; _sqlite3ClearOnOrUsing(tls, db, pOnUsing) @@ -99885,7 +100426,7 @@ func _sqlite3BeginTransaction(tls *libc.TLS, pParse uintptr, type1 int32) { var eTxnType, i int32 _, _, _, _, _ = db, eTxnType, i, pBt, v db = (*TParse)(unsafe.Pointer(pParse)).Fdb - if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14881, uintptr(0), uintptr(0)) != 0 { + if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14974, uintptr(0), uintptr(0)) != 0 { return } v = _sqlite3GetVdbe(tls, pParse) @@ -99932,9 +100473,9 @@ func _sqlite3EndTransaction(tls *libc.TLS, pParse uintptr, eType int32) { _, _, _ = isRollback, v, v1 isRollback = libc.BoolInt32(eType == int32(TK_ROLLBACK)) if isRollback != 0 { - v1 = __ccgo_ts + 14887 + v1 = __ccgo_ts + 14980 } else { - v1 = __ccgo_ts + 14896 + v1 = __ccgo_ts + 14989 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), v1, uintptr(0), uintptr(0)) != 0 { return @@ -99966,9 +100507,9 @@ func _sqlite3Savepoint(tls *libc.TLS, pParse uintptr, op int32, pName uintptr) { } var _az = [3]uintptr{ - 0: __ccgo_ts + 14881, - 1: __ccgo_ts + 14903, - 2: __ccgo_ts + 14887, + 0: __ccgo_ts + 14974, + 1: __ccgo_ts + 14996, + 2: __ccgo_ts + 14980, } // C documentation @@ -99988,7 +100529,7 @@ func _sqlite3OpenTempDatabase(tls *libc.TLS, pParse uintptr) (r int32) { if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt == uintptr(0) && !((*TParse)(unsafe.Pointer(pParse)).Fexplain != 0) { rc = _sqlite3BtreeOpen(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), db, bp, 0, _flags) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14911, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15004, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = rc return int32(1) } @@ -100172,7 +100713,7 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable _sqlite3StrAccumInit(tls, bp, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), 0, *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136))) if (*TIndex)(unsafe.Pointer(pIdx)).FaColExpr != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+14981, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+15074, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) } else { j = 0 for { @@ -100181,10 +100722,10 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx } zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)))*16))).FzCnName if j != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+14992, int32(2)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+15085, int32(2)) } Xsqlite3_str_appendall(tls, bp, (*TTable)(unsafe.Pointer(pTab)).FzName) - Xsqlite3_str_append(tls, bp, __ccgo_ts+1663, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+1677, int32(1)) Xsqlite3_str_appendall(tls, bp, zCol) goto _1 _1: @@ -100213,10 +100754,10 @@ func _sqlite3RowidConstraint(tls *libc.TLS, pParse uintptr, onError int32, pTab var zMsg uintptr _, _ = rc, zMsg if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12383, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12508, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(6)< libc.BoolInt32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15111, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15204, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } return 0 } @@ -101319,11 +101860,11 @@ func _sqlite3IsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr, pTrigger ui bp := tls.Alloc(16) defer tls.Free(16) if _tabIsReadOnly(tls, pParse, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15144, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15237, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && (pTrigger == uintptr(0) || (*TTrigger)(unsafe.Pointer(pTrigger)).FbReturning != 0 && (*TTrigger)(unsafe.Pointer(pTrigger)).FpNext == uintptr(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15173, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15266, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -101726,8 +102267,9 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** invoke the callback function. */ if memCnt != 0 { - _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15211) + _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15304) } + goto delete_from_cleanup delete_from_cleanup: ; _sqlite3AuthContextPop(tls, bp+8) @@ -101873,7 +102415,7 @@ func _sqlite3GenerateRowDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, pTri v3 = 0 } _sqlite3VdbeAddOp2(tls, v, int32(OP_Delete), iDataCur, v3) - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11584) { + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11709) { _sqlite3VdbeAppendP4(tls, v, pTab, -int32(5)) } if int32(eMode) != ONEPASS_OFF { @@ -102177,11 +102719,11 @@ func _typeofFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } var _azType2 = [5]uintptr{ - 0: __ccgo_ts + 6308, - 1: __ccgo_ts + 6303, - 2: __ccgo_ts + 8199, - 3: __ccgo_ts + 8194, - 4: __ccgo_ts + 1636, + 0: __ccgo_ts + 6372, + 1: __ccgo_ts + 6367, + 2: __ccgo_ts + 8324, + 3: __ccgo_ts + 8319, + 4: __ccgo_ts + 1650, } // C documentation @@ -102295,7 +102837,7 @@ func _absFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { /* IMP: R-31676-45509 If X is the integer -9223372036854775808 ** then abs(X) throws an integer overflow error since there is no ** equivalent positive 64-bit two complement value. */ - Xsqlite3_result_error(tls, context, __ccgo_ts+15224, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15317, -int32(1)) return } iVal = -iVal @@ -102390,11 +102932,13 @@ func _instrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } Xsqlite3_result_int(tls, context, N) + goto endInstr endInstr: ; Xsqlite3_value_free(tls, pC1) Xsqlite3_value_free(tls, pC2) return + goto endInstrOOM endInstrOOM: ; Xsqlite3_result_error_nomem(tls, context) @@ -102608,7 +103152,7 @@ func _roundFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } *(*float64)(unsafe.Pointer(bp)) = float64(int64(*(*float64)(unsafe.Pointer(bp)) + v1)) } else { - zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15241, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) + zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15334, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) if zBuf == uintptr(0) { Xsqlite3_result_error_nomem(tls, context) return @@ -103188,7 +103732,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { */ nPat = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) if nPat > *(*int32)(unsafe.Pointer(db + 136 + 8*4)) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15247, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15340, -int32(1)) return } if argc == int32(3) { @@ -103200,7 +103744,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { return } if _sqlite3Utf8CharLen(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), -int32(1)) != int32(1) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15280, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15373, -int32(1)) return } escape = _sqlite3Utf8Read(tls, bp+8) @@ -103282,7 +103826,7 @@ func _errlogFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { defer tls.Free(16) _ = argc _ = context - Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) + Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) } // C documentation @@ -103369,17 +103913,17 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_FLOAT): r1 = Xsqlite3_value_double(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15325, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15418, libc.VaList(bp+16, r1)) zVal = Xsqlite3_str_value(tls, pStr) if zVal != 0 { _sqlite3AtoF(tls, zVal, bp, int32((*TStrAccum)(unsafe.Pointer(pStr)).FnChar), uint8(SQLITE_UTF8)) if r1 != *(*float64)(unsafe.Pointer(bp)) { Xsqlite3_str_reset(tls, pStr) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15333, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15426, libc.VaList(bp+16, r1)) } } case int32(SQLITE_INTEGER): - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1406, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1425, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) case int32(SQLITE_BLOB): zBlob = Xsqlite3_value_blob(tls, pValue) nBlob = int64(Xsqlite3_value_bytes(tls, pValue)) @@ -103407,9 +103951,9 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { } case int32(SQLITE_TEXT): zArg = Xsqlite3_value_text(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15341, libc.VaList(bp+16, zArg)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15434, libc.VaList(bp+16, zArg)) default: - Xsqlite3_str_append(tls, pStr, __ccgo_ts+1651, int32(4)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+1665, int32(4)) break } } @@ -103646,7 +104190,7 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { var v3 uint32 var _ /* zHex at bp+0 */ uintptr _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, ch, d, nHex, nPass, p, pBlob, zPass, v1, v2, v3, v4, v5, v6 - zPass = __ccgo_ts + 1650 + zPass = __ccgo_ts + 1664 nPass = 0 *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) nHex = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) @@ -103698,10 +104242,12 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { *(*Tu8)(unsafe.Pointer(v6)) = uint8(int32(_sqlite3HexToInt(tls, int32(c)))< 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fapprox != 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fovrfl != 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+15224, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15317, -int32(1)) } else { if !(_sqlite3IsOverflow(tls, (*TSumCtx)(unsafe.Pointer(p)).FrErr) != 0) { Xsqlite3_result_double(tls, context, (*TSumCtx)(unsafe.Pointer(p)).FrSum+(*TSumCtx)(unsafe.Pointer(p)).FrErr) @@ -104709,7 +105255,7 @@ func _groupConcatValue(tls *libc.TLS, context uintptr) { func _sqlite3RegisterPerConnectionBuiltinFunctions(tls *libc.TLS, db uintptr) { var rc int32 _ = rc - rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15349, int32(2)) + rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15442, int32(2)) if rc == int32(SQLITE_NOMEM) { _sqlite3OomFault(tls, db) } @@ -104738,8 +105284,8 @@ func _sqlite3RegisterLikeFunctions(tls *libc.TLS, db uintptr, caseSensitive int3 if !(nArg <= int32(3)) { break } - _sqlite3CreateFunc(tls, db, __ccgo_ts+15355, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15355, nArg, uint8(SQLITE_UTF8), uint8(0)) + _sqlite3CreateFunc(tls, db, __ccgo_ts+15448, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15448, nArg, uint8(SQLITE_UTF8), uint8(0)) *(*Tu32)(unsafe.Pointer(pDef + 4)) |= uint32(flags) *(*Tu32)(unsafe.Pointer(pDef + 4)) &= uint32(^libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)) goto _1 @@ -105045,562 +105591,562 @@ var _aBuiltinFunc = [110]TFuncDef{ FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_implies_nonnull_row))), - FzName: __ccgo_ts + 15360, + FzName: __ccgo_ts + 15453, }, 1: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_compare))), - FzName: __ccgo_ts + 15380, + FzName: __ccgo_ts + 15473, }, 2: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_implies_expr))), - FzName: __ccgo_ts + 15393, + FzName: __ccgo_ts + 15486, }, 3: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_affinity))), - FzName: __ccgo_ts + 15411, + FzName: __ccgo_ts + 15504, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15420, + FzName: __ccgo_ts + 15513, }, 5: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15428, + FzName: __ccgo_ts + 15521, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15428, + FzName: __ccgo_ts + 15521, }, 7: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15443, + FzName: __ccgo_ts + 15536, }, 8: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15469, + FzName: __ccgo_ts + 15562, }, 9: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15494, + FzName: __ccgo_ts + 15587, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15503, + FzName: __ccgo_ts + 15596, }, 11: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15514, + FzName: __ccgo_ts + 15607, }, 12: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_sqlite_offset))), - FzName: __ccgo_ts + 15521, + FzName: __ccgo_ts + 15614, }, 13: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15535, + FzName: __ccgo_ts + 15628, }, 14: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15535, + FzName: __ccgo_ts + 15628, }, 15: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15541, + FzName: __ccgo_ts + 15634, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15541, + FzName: __ccgo_ts + 15634, }, 17: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15547, + FzName: __ccgo_ts + 15640, }, 18: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15547, + FzName: __ccgo_ts + 15640, }, 19: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15552, + FzName: __ccgo_ts + 15645, }, 20: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15552, + FzName: __ccgo_ts + 15645, }, 21: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15552, + FzName: __ccgo_ts + 15645, }, 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15556, + FzName: __ccgo_ts + 15649, }, 23: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15556, + FzName: __ccgo_ts + 15649, }, 24: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15556, + FzName: __ccgo_ts + 15649, }, 25: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15560, + FzName: __ccgo_ts + 15653, }, 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15567, + FzName: __ccgo_ts + 15660, }, 27: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_LENGTH)), - FzName: __ccgo_ts + 15575, + FzName: __ccgo_ts + 15668, }, 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_BYTELEN)), - FzName: __ccgo_ts + 15582, + FzName: __ccgo_ts + 15675, }, 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15595, + FzName: __ccgo_ts + 15688, }, 30: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15601, + FzName: __ccgo_ts + 15694, }, 31: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15608, + FzName: __ccgo_ts + 15701, }, 32: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15615, + FzName: __ccgo_ts + 15708, }, 33: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15623, + FzName: __ccgo_ts + 15716, }, 34: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15628, + FzName: __ccgo_ts + 15721, }, 35: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15632, + FzName: __ccgo_ts + 15725, }, 36: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15632, + FzName: __ccgo_ts + 15725, }, 37: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15638, + FzName: __ccgo_ts + 15731, }, 38: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15644, + FzName: __ccgo_ts + 15737, }, 39: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15650, + FzName: __ccgo_ts + 15743, }, 40: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15654, + FzName: __ccgo_ts + 15747, }, 41: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15654, + FzName: __ccgo_ts + 15747, }, 42: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15660, + FzName: __ccgo_ts + 15753, }, 43: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15660, + FzName: __ccgo_ts + 15753, }, 44: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15667, + FzName: __ccgo_ts + 15760, }, 45: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15667, + FzName: __ccgo_ts + 15760, }, 46: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15667, + FzName: __ccgo_ts + 15760, }, 47: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15677, + FzName: __ccgo_ts + 15770, }, 48: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15684, + FzName: __ccgo_ts + 15777, }, 49: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15691, + FzName: __ccgo_ts + 15784, }, 50: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15702, + FzName: __ccgo_ts + 15795, }, 51: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15709, + FzName: __ccgo_ts + 15802, }, 52: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15724, + FzName: __ccgo_ts + 15817, }, 53: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15741, + FzName: __ccgo_ts + 15834, }, 54: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15752, + FzName: __ccgo_ts + 15845, }, 55: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15758, + FzName: __ccgo_ts + 15851, }, 56: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15776, + FzName: __ccgo_ts + 15869, }, 57: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15784, + FzName: __ccgo_ts + 15877, }, 58: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15798, + FzName: __ccgo_ts + 15891, }, 59: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15806, + FzName: __ccgo_ts + 15899, }, 60: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15815, + FzName: __ccgo_ts + 15908, }, 61: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15815, + FzName: __ccgo_ts + 15908, }, 62: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15822, + FzName: __ccgo_ts + 15915, }, 63: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15822, + FzName: __ccgo_ts + 15915, }, 64: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15832, + FzName: __ccgo_ts + 15925, }, 65: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15836, + FzName: __ccgo_ts + 15929, }, 66: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15842, + FzName: __ccgo_ts + 15935, }, 67: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_COUNT) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15846, + FzName: __ccgo_ts + 15939, }, 68: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15846, + FzName: __ccgo_ts + 15939, }, 69: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15852, + FzName: __ccgo_ts + 15945, }, 70: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15852, + FzName: __ccgo_ts + 15945, }, 71: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15865, + FzName: __ccgo_ts + 15958, }, 72: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE) | libc.Int32FromInt32(SQLITE_FUNC_CASE)), FpUserData: uintptr(unsafe.Pointer(&_globInfo)), - FzName: __ccgo_ts + 15876, + FzName: __ccgo_ts + 15969, }, 73: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15355, + FzName: __ccgo_ts + 15448, }, 74: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15355, + FzName: __ccgo_ts + 15448, }, 75: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6732, + FzName: __ccgo_ts + 6796, }, 76: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6732, + FzName: __ccgo_ts + 6796, }, 77: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15881, + FzName: __ccgo_ts + 15974, }, 78: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15886, + FzName: __ccgo_ts + 1237, }, 79: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15894, + FzName: __ccgo_ts + 1245, }, 80: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15900, + FzName: __ccgo_ts + 15979, }, 81: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15906, + FzName: __ccgo_ts + 15985, }, 82: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15909, + FzName: __ccgo_ts + 15988, }, 83: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15913, + FzName: __ccgo_ts + 15992, }, 84: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15919, + FzName: __ccgo_ts + 15998, }, 85: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15909, + FzName: __ccgo_ts + 15988, }, 86: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15924, + FzName: __ccgo_ts + 16003, }, 87: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15928, + FzName: __ccgo_ts + 16007, }, 88: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15932, + FzName: __ccgo_ts + 16011, }, 89: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15938, + FzName: __ccgo_ts + 16017, }, 90: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15942, + FzName: __ccgo_ts + 16021, }, 91: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15947, + FzName: __ccgo_ts + 16026, }, 92: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15952, + FzName: __ccgo_ts + 16031, }, 93: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15957, + FzName: __ccgo_ts + 16036, }, 94: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15963, + FzName: __ccgo_ts + 16042, }, 95: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15967, + FzName: __ccgo_ts + 16046, }, 96: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15971, + FzName: __ccgo_ts + 16050, }, 97: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15975, + FzName: __ccgo_ts + 16054, }, 98: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15980, + FzName: __ccgo_ts + 16059, }, 99: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15985, + FzName: __ccgo_ts + 16064, }, 100: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15990, + FzName: __ccgo_ts + 16069, }, 101: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15996, + FzName: __ccgo_ts + 16075, }, 102: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16002, + FzName: __ccgo_ts + 16081, }, 103: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16008, + FzName: __ccgo_ts + 16087, }, 104: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16013, + FzName: __ccgo_ts + 16092, }, 105: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16021, + FzName: __ccgo_ts + 16100, }, 106: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16029, + FzName: __ccgo_ts + 16108, }, 107: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16032, + FzName: __ccgo_ts + 16111, }, 108: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 6732, + FzName: __ccgo_ts + 6796, }, 109: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_iif))), - FzName: __ccgo_ts + 16037, + FzName: __ccgo_ts + 16116, }, } @@ -106077,7 +106623,7 @@ func _sqlite3FkLocateIndex(tls *libc.TLS, pParse uintptr, pParent uintptr, pFKey } if !(pIdx != 0) { if !((*TParse)(unsafe.Pointer(pParse)).FdisableTriggers != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16041, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16120, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) } _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiCol) return int32(1) @@ -107188,11 +107734,11 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr break } *(*TToken)(unsafe.Pointer(bp + 16)) = TToken{ - Fz: __ccgo_ts + 6598, + Fz: __ccgo_ts + 6662, Fn: uint32(3), } /* Literal "old" token */ *(*TToken)(unsafe.Pointer(bp + 32)) = TToken{ - Fz: __ccgo_ts + 6594, + Fz: __ccgo_ts + 6658, Fn: uint32(3), } /* tFromCol = OLD.tToCol */ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -107256,7 +107802,7 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr nFrom = _sqlite3Strlen30(tls, zFrom) if action == int32(OE_Restrict) { iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5227) + pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5291) if pRaise != 0 { (*TExpr)(unsafe.Pointer(pRaise)).FaffExpr = uint8(OE_Abort) } @@ -107837,7 +108383,7 @@ func _sqlite3ComputeGeneratedColumns(tls *libc.TLS, pParse uintptr, iRegStore in } } if pRedo != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8164, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8289, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) } (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 } @@ -108098,6 +108644,219 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { } } +// C documentation +// +// /* +// ** If argument pVal is a Select object returned by an sqlite3MultiValues() +// ** that was able to use the co-routine optimization, finish coding the +// ** co-routine. +// */ +func _sqlite3MultiValuesEnd(tls *libc.TLS, pParse uintptr, pVal uintptr) { + var pItem uintptr + _ = pItem + if pVal != 0 && (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pVal)).FpSrc)).FnSrc > 0 { + pItem = (*TSelect)(unsafe.Pointer(pVal)).FpSrc + 8 + _sqlite3VdbeEndCoroutine(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn) + _sqlite3VdbeJumpHere(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FaddrFillSub-int32(1)) + } +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are constant. +// */ +func _exprListIsConstant(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + if 0 == _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are both constant and have no affinity. +// */ +func _exprListIsNoAffinity(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + var pExpr uintptr + _, _ = ii, pExpr + if _exprListIsConstant(tls, pParse, pRow) == 0 { + return 0 + } + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + pExpr = (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr + if 0 != int32(_sqlite3ExprAffinity(tls, pExpr)) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** This function is called by the parser for the second and subsequent +// ** rows of a multi-row VALUES clause. Argument pLeft is the part of +// ** the VALUES clause already parsed, argument pRow is the vector of values +// ** for the new row. The Select object returned represents the complete +// ** VALUES clause, including the new row. +// ** +// ** There are two ways in which this may be achieved - by incremental +// ** coding of a co-routine (the "co-routine" method) or by returning a +// ** Select object equivalent to the following (the "UNION ALL" method): +// ** +// ** "pLeft UNION ALL SELECT pRow" +// ** +// ** If the VALUES clause contains a lot of rows, this compound Select +// ** object may consume a lot of memory. +// ** +// ** When the co-routine method is used, each row that will be returned +// ** by the VALUES clause is coded into part of a co-routine as it is +// ** passed to this function. The returned Select object is equivalent to: +// ** +// ** SELECT * FROM ( +// ** Select object to read co-routine +// ** ) +// ** +// ** The co-routine method is used in most cases. Exceptions are: +// ** +// ** a) If the current statement has a WITH clause. This is to avoid +// ** statements like: +// ** +// ** WITH cte AS ( VALUES('x'), ('y') ... ) +// ** SELECT * FROM cte AS a, cte AS b; +// ** +// ** This will not work, as the co-routine uses a hard-coded register +// ** for its OP_Yield instructions, and so it is not possible for two +// ** cursors to iterate through it concurrently. +// ** +// ** b) The schema is currently being parsed (i.e. the VALUES clause is part +// ** of a schema item like a VIEW or TRIGGER). In this case there is no VM +// ** being generated when parsing is taking place, and so generating +// ** a co-routine is not possible. +// ** +// ** c) There are non-constant expressions in the VALUES clause (e.g. +// ** the VALUES clause is part of a correlated sub-query). +// ** +// ** d) One or more of the values in the first row of the VALUES clause +// ** has an affinity (i.e. is a CAST expression). This causes problems +// ** because the complex rules SQLite uses (see function +// ** sqlite3SubqueryColumnTypes() in select.c) to determine the effective +// ** affinity of such a column for all rows require access to all values in +// ** the column simultaneously. +// */ +func _sqlite3MultiValues(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRow uintptr) (r uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var f, v1 int32 + var p, pRet, pSelect, v, v2 uintptr + var _ /* dest at bp+0 */ TSelectDest + _, _, _, _, _, _, _ = f, p, pRet, pSelect, v, v1, v2 + if (*TParse)(unsafe.Pointer(pParse)).FbHasWith != 0 || (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy != 0 || _exprListIsConstant(tls, pParse, pRow) == 0 || (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 && _exprListIsNoAffinity(tls, pParse, (*TSelect)(unsafe.Pointer(pLeft)).FpEList) == 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { + /* The co-routine method cannot be used. Fall back to UNION ALL. */ + pSelect = uintptr(0) + f = libc.Int32FromInt32(SF_Values) | libc.Int32FromInt32(SF_MultiValue) + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc != 0 { + _sqlite3MultiValuesEnd(tls, pParse, pLeft) + f = int32(SF_Values) + } else { + if (*TSelect)(unsafe.Pointer(pLeft)).FpPrior != 0 { + /* In this case set the SF_MultiValue flag only if it was set on pLeft */ + f = int32(uint32(f) & (*TSelect)(unsafe.Pointer(pLeft)).FselFlags) + } + } + pSelect = _sqlite3SelectNew(tls, pParse, pRow, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(f), uintptr(0)) + *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) + if pSelect != 0 { + (*TSelect)(unsafe.Pointer(pSelect)).Fop = uint8(TK_ALL) + (*TSelect)(unsafe.Pointer(pSelect)).FpPrior = pLeft + pLeft = pSelect + } + } else { + p = uintptr(0) /* SrcItem that reads from co-routine */ + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 { + /* Co-routine has not yet been started and the special Select object + ** that accesses the co-routine has not yet been created. This block + ** does both those things. */ + v = _sqlite3GetVdbe(tls, pParse) + pRet = _sqlite3SelectNew(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) + /* Ensure the database schema has been read. This is to ensure we have + ** the correct text encoding. */ + if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmDbFlags&uint32(DBFLAG_SchemaKnownOk) == uint32(0) { + _sqlite3ReadSchema(tls, pParse) + } + if pRet != 0 { + (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pRet)).FpSrc)).FnSrc = int32(1) + (*TSelect)(unsafe.Pointer(pRet)).FpPrior = (*TSelect)(unsafe.Pointer(pLeft)).FpPrior + (*TSelect)(unsafe.Pointer(pRet)).Fop = (*TSelect)(unsafe.Pointer(pLeft)).Fop + (*TSelect)(unsafe.Pointer(pLeft)).FpPrior = uintptr(0) + (*TSelect)(unsafe.Pointer(pLeft)).Fop = uint8(TK_SELECT) + p = (*TSelect)(unsafe.Pointer(pRet)).FpSrc + 8 + (*TSrcItem)(unsafe.Pointer(p)).FpSelect = pLeft + libc.SetBitFieldPtr16Uint32(p+60+4, libc.Uint32FromInt32(1), 5, 0x20) + (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + v2 = pParse + 56 + *(*int32)(unsafe.Pointer(v2))++ + v1 = *(*int32)(unsafe.Pointer(v2)) + (*TSrcItem)(unsafe.Pointer(p)).FregReturn = v1 + (*TSrcItem)(unsafe.Pointer(p)).FiCursor = -int32(1) + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1)) = uint32(2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn, 0, (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub) + _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + /* Allocate registers for the output of the co-routine. Do so so + ** that there are two unused registers immediately before those + ** used by the co-routine. This allows the code in sqlite3Insert() + ** to use these registers directly, instead of copying the output + ** of the co-routine to a separate array for processing. */ + (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(3) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpEList)).FnExpr + *(*int32)(unsafe.Pointer(pParse + 56)) += int32(2) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst + *(*Tu32)(unsafe.Pointer(pLeft + 4)) |= uint32(SF_MultiValue) + _sqlite3Select(tls, pParse, pLeft, bp) + (*TSrcItem)(unsafe.Pointer(p)).FregResult = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst + pLeft = pRet + } + } else { + p = (*TSelect)(unsafe.Pointer(pLeft)).FpSrc + 8 + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1))++ + } + if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { + if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p)).FpSelect)).FpEList)).FnExpr != (*TExprList)(unsafe.Pointer(pRow)).FnExpr { + _sqlite3SelectWrongNumTermsError(tls, pParse, (*TSrcItem)(unsafe.Pointer(p)).FpSelect) + } else { + _sqlite3ExprCodeExprList(tls, pParse, pRow, (*TSrcItem)(unsafe.Pointer(p)).FregResult, 0, uint8(0)) + _sqlite3VdbeAddOp1(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Yield), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + } + } + _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pRow) + } + return pLeft +} + // C documentation // // /* @@ -108200,27 +108959,27 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uintptr, pColumn uintptr, onError int32, pUpsert uintptr) { bp := tls.Alloc(160) defer tls.Free(160) - var aRegIdx, db, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, v, v13, v16, v18, v6, v9 uintptr - var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v12, v15, v17, v19, v23, v24, v5, v7, v8 int32 + var aRegIdx, db, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, v, v10, v14, v17, v19, v7 uintptr + var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v13, v16, v18, v20, v24, v25, v5, v6, v8, v9 int32 var appendFlag, bIdListInOrder, useTempTable, withoutRowid Tu8 - var colFlags, v21 Tu32 + var colFlags, v22 Tu32 var _ /* dest at bp+8 */ TSelectDest var _ /* iDataCur at bp+0 */ int32 var _ /* iIdxCur at bp+4 */ int32 var _ /* isReplace at bp+112 */ int32 var _ /* sNC at bp+56 */ TNameContext var _ /* tmask at bp+48 */ int32 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v12, v13, v15, v16, v17, v18, v19, v21, v23, v24, v5, v6, v7, v8, v9 /* Number of columns in the data */ - nHidden = 0 /* Number of hidden columns if TABLE is virtual */ - *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ - *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ - ipkColumn = -int32(1) /* Label for the end of the insertion loop */ - srcTab = 0 /* Data comes from this temporary cursor if >=0 */ - addrInsTop = 0 /* Jump to label "D" */ - addrCont = 0 /* Index of database holding TABLE */ - useTempTable = uint8(0) /* Store SELECT results in intermediate table */ - appendFlag = uint8(0) /* True if IDLIST is in table order */ - pList = uintptr(0) /* Register in which to store next column */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v10, v13, v14, v16, v17, v18, v19, v20, v22, v24, v25, v5, v6, v7, v8, v9 /* Number of columns in the data */ + nHidden = 0 /* Number of hidden columns if TABLE is virtual */ + *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ + *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ + ipkColumn = -int32(1) /* Label for the end of the insertion loop */ + srcTab = 0 /* Data comes from this temporary cursor if >=0 */ + addrInsTop = 0 /* Jump to label "D" */ + addrCont = 0 /* Index of database holding TABLE */ + useTempTable = uint8(0) /* Store SELECT results in intermediate table */ + appendFlag = uint8(0) /* True if IDLIST is in table order */ + pList = uintptr(0) /* Register in which to store next column */ /* Register allocations */ regFromSelect = 0 /* Base register for data coming from SELECT */ regAutoinc = 0 /* Register holding the AUTOINCREMENT counter */ @@ -108358,7 +109117,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_STORED)|libc.Int32FromInt32(COLFLAG_VIRTUAL)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16086, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16165, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto insert_cleanup } break @@ -108373,7 +109132,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i bIdListInOrder = uint8(0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16127, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16206, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto insert_cleanup } @@ -108390,28 +109149,46 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** co-routine is the common header to the 3rd and 4th templates. */ if pSelect != 0 { /* Result code */ - v6 = pParse + 56 - *(*int32)(unsafe.Pointer(v6))++ - v5 = *(*int32)(unsafe.Pointer(v6)) - regYield = v5 - addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) - _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) - _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) - if bIdListInOrder != 0 { - v7 = regData - } else { - v7 = 0 - } - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v7 - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) - rc = _sqlite3Select(tls, pParse, pSelect, bp+8) - regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst - if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { - goto insert_cleanup + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc)).FnSrc == int32(1) && int32(uint32(*(*uint16)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + 60 + 4))&0x20>>5)) != 0 && (*TSelect)(unsafe.Pointer(pSelect)).FpPrior == uintptr(0) { + pItem = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSDParm = (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn + regFromSelect = (*TSrcItem)(unsafe.Pointer(pItem)).FregResult + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FpEList)).FnExpr + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+16238, libc.VaList(bp+128, pItem)) + if bIdListInOrder != 0 && nColumn == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { + regData = regFromSelect + regRowid = regData - int32(1) + if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { + v5 = int32(1) + } else { + v5 = 0 + } + regIns = regRowid - v5 + } + } else { + v7 = pParse + 56 + *(*int32)(unsafe.Pointer(v7))++ + v6 = *(*int32)(unsafe.Pointer(v7)) /* Top of the co-routine */ + regYield = v6 + addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) + _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) + if bIdListInOrder != 0 { + v8 = regData + } else { + v8 = 0 + } + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) + rc = _sqlite3Select(tls, pParse, pSelect, bp+8) + regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst + if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { + goto insert_cleanup + } + _sqlite3VdbeEndCoroutine(tls, v, regYield) + _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr } - _sqlite3VdbeEndCoroutine(tls, v, regYield) - _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ - nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr /* Set useTempTable to TRUE if the result of the SELECT statement ** should be written into a temporary table (template 4). Set to ** FALSE if each output row of the SELECT can be written directly into @@ -108425,10 +109202,10 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin useTempTable = uint8(1) } if useTempTable != 0 { /* Label "L" */ - v9 = pParse + 52 - v8 = *(*int32)(unsafe.Pointer(v9)) - *(*int32)(unsafe.Pointer(v9))++ - srcTab = v8 + v10 = pParse + 52 + v9 = *(*int32)(unsafe.Pointer(v10)) + *(*int32)(unsafe.Pointer(v10))++ + srcTab = v9 regRec = _sqlite3GetTempReg(tls, pParse) regTempRowid = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp2(tls, v, int32(OP_OpenEphemeral), srcTab, nColumn) @@ -108469,8 +109246,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { ipkColumn-- } - goto _10 - _10: + goto _11 + _11: ; i-- } @@ -108487,28 +109264,28 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_NOINSERT) != 0 { nHidden++ } - goto _11 - _11: + goto _12 + _12: ; i++ } } if nColumn != int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16159, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16246, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) goto insert_cleanup } } if pColumn != uintptr(0) && nColumn != (*TIdList)(unsafe.Pointer(pColumn)).FnId { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16211, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16298, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) goto insert_cleanup } /* Initialize the count of rows to be inserted */ if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&(uint64(libc.Int32FromInt32(0x00001))<= 0 { /* tag-20191021-001: If the INTEGER PRIMARY KEY is being generated by the ** SELECT, go ahead and copy the value into the rowid slot now, so that @@ -108621,18 +109398,18 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** using excess space. The file format definition requires this extra ** NULL - we cannot optimize further by skipping the column completely */ _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) - goto _20 + goto _21 } - v21 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) - colFlags = v21 - if v21&uint32(COLFLAG_NOINSERT) != uint32(0) { + v22 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) + colFlags = v22 + if v22&uint32(COLFLAG_NOINSERT) != uint32(0) { nHidden++ if colFlags&uint32(COLFLAG_VIRTUAL) != uint32(0) { /* Virtual columns do not participate in OP_MakeRecord. So back up ** iRegStore by one slot to compensate for the iRegStore++ in the ** outer for() loop */ iRegStore-- - goto _20 + goto _21 } else { if colFlags&uint32(COLFLAG_STORED) != uint32(0) { /* Stored columns are computed later. But if there are BEFORE @@ -108642,13 +109419,13 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if *(*int32)(unsafe.Pointer(bp + 48))&int32(TRIGGER_BEFORE) != 0 { _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) } - goto _20 + goto _21 } else { if pColumn == uintptr(0) { /* Hidden columns that are not explicitly named in the INSERT ** get there default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } } } @@ -108659,8 +109436,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if !(j < (*TIdList)(unsafe.Pointer(pColumn)).FnId && *(*int32)(unsafe.Pointer(pColumn + 8 + uintptr(j)*16 + 8)) != i) { break } - goto _22 - _22: + goto _23 + _23: ; j++ } @@ -108668,14 +109445,14 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin /* A column not named in the insert column list gets its ** default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } k = j } else { if nColumn == 0 { /* This is INSERT INTO ... DEFAULT VALUES. Load the default value. */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } else { k = i - nHidden } @@ -108692,16 +109469,16 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin y = _sqlite3ExprCodeTarget(tls, pParse, pX, iRegStore) if y != iRegStore { if (*TExpr)(unsafe.Pointer(pX)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) { - v23 = int32(OP_Copy) + v24 = int32(OP_Copy) } else { - v23 = int32(OP_SCopy) + v24 = int32(OP_SCopy) } - _sqlite3VdbeAddOp2(tls, v, v23, y, iRegStore) + _sqlite3VdbeAddOp2(tls, v, v24, y, iRegStore) } } } - goto _20 - _20: + goto _21 + _21: ; i++ iRegStore++ @@ -108812,11 +109589,11 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VtabMakeWritable(tls, pParse, pTab) _sqlite3VdbeAddOp4(tls, v, int32(OP_VUpdate), int32(1), int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+int32(2), regIns, pVTab, -int32(11)) if onError == int32(OE_Default) { - v24 = int32(OE_Abort) + v25 = int32(OE_Abort) } else { - v24 = onError + v25 = onError } - _sqlite3VdbeChangeP5(tls, v, uint16(v24)) + _sqlite3VdbeChangeP5(tls, v, uint16(v25)) _sqlite3MayAbort(tls, pParse) } else { *(*int32)(unsafe.Pointer(bp + 112)) = 0 /* True to use OPFLAG_SEEKRESULT */ @@ -108859,6 +109636,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VdbeJumpHere(tls, v, addrInsTop) } } + goto insert_end insert_end: ; /* Update the sqlite_sequence table by storing the content of the @@ -108874,8 +109652,9 @@ insert_end: ** invoke the callback function. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16303) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16390) } + goto insert_cleanup insert_cleanup: ; _sqlite3SrcListDelete(tls, db, pTabList) @@ -109266,7 +110045,7 @@ func _sqlite3GenerateConstraintChecks(tls *libc.TLS, pParse uintptr, pTab uintpt case int32(OE_Rollback): fallthrough case int32(OE_Fail): - zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12383, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12508, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) _sqlite3VdbeAddOp3(tls, v, int32(OP_HaltIfNull), libc.Int32FromInt32(SQLITE_CONSTRAINT)|libc.Int32FromInt32(5)<= 0 && !(int32(*(*uint8)(unsafe.Pointer(zFile + uintptr(iFile)))) == libc.Int32FromUint8('/'))) { @@ -111499,7 +112279,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp iFile-- } iFile++ - if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16352, int32(3)) == 0 { + if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16439, int32(3)) == 0 { iFile += int32(3) } iEntry = int32(8) @@ -111519,7 +112299,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp ; iFile++ } - libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16356, uint64(6)) + libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16443, uint64(6)) zEntry = zAltEntry xInit = _sqlite3OsDlSym(tls, pVfs, handle, zEntry) } @@ -111531,7 +112311,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v7 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16362, libc.VaList(bp+16, zEntry, zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16449, libc.VaList(bp+16, zEntry, zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -111546,7 +112326,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp return SQLITE_OK } if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16405, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16492, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3OsDlClose(tls, pVfs, handle) @@ -111567,6 +112347,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*int32)(unsafe.Pointer(v9))++ *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaExtension + uintptr(v8)*8)) = handle return SQLITE_OK + goto extension_not_found extension_not_found: ; if pzErrMsg != 0 { @@ -111576,7 +112357,7 @@ extension_not_found: *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v10 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16437, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16524, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -111585,7 +112366,7 @@ extension_not_found: /* Shared library endings to try if zFile cannot be loaded as written */ var _azEndings = [1]uintptr{ - 0: __ccgo_ts + 16317, + 0: __ccgo_ts + 16404, } func Xsqlite3_load_extension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintptr, pzErrMsg uintptr) (r int32) { @@ -111818,7 +112599,7 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { rc = v2 } if v3 && v2 != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16474, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16561, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) go1 = 0 } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -111872,63 +112653,63 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { // ** result column is different from the name of the pragma // */ var _pragCName = [57]uintptr{ - 0: __ccgo_ts + 5483, - 1: __ccgo_ts + 16513, - 2: __ccgo_ts + 9060, - 3: __ccgo_ts + 16517, - 4: __ccgo_ts + 16522, - 5: __ccgo_ts + 16525, - 6: __ccgo_ts + 16535, - 7: __ccgo_ts + 16545, - 8: __ccgo_ts + 16551, - 9: __ccgo_ts + 16555, - 10: __ccgo_ts + 16560, - 11: __ccgo_ts + 16565, - 12: __ccgo_ts + 16573, - 13: __ccgo_ts + 16584, - 14: __ccgo_ts + 16587, - 15: __ccgo_ts + 16594, - 16: __ccgo_ts + 16555, - 17: __ccgo_ts + 16560, - 18: __ccgo_ts + 16601, - 19: __ccgo_ts + 16606, - 20: __ccgo_ts + 16609, - 21: __ccgo_ts + 16616, - 22: __ccgo_ts + 16551, - 23: __ccgo_ts + 16555, - 24: __ccgo_ts + 16622, - 25: __ccgo_ts + 16627, - 26: __ccgo_ts + 16632, - 27: __ccgo_ts + 16555, - 28: __ccgo_ts + 16636, - 29: __ccgo_ts + 16560, - 30: __ccgo_ts + 16644, - 31: __ccgo_ts + 16648, - 32: __ccgo_ts + 16653, - 33: __ccgo_ts + 11799, - 34: __ccgo_ts + 11795, - 35: __ccgo_ts + 16659, - 36: __ccgo_ts + 16664, - 37: __ccgo_ts + 16669, - 38: __ccgo_ts + 16513, - 39: __ccgo_ts + 16555, - 40: __ccgo_ts + 16674, - 41: __ccgo_ts + 16681, - 42: __ccgo_ts + 16688, - 43: __ccgo_ts + 9060, - 44: __ccgo_ts + 16696, - 45: __ccgo_ts + 5486, - 46: __ccgo_ts + 16702, - 47: __ccgo_ts + 16513, - 48: __ccgo_ts + 16555, - 49: __ccgo_ts + 16707, - 50: __ccgo_ts + 16712, - 51: __ccgo_ts + 15909, - 52: __ccgo_ts + 16717, - 53: __ccgo_ts + 16730, - 54: __ccgo_ts + 16739, - 55: __ccgo_ts + 16746, - 56: __ccgo_ts + 16757, + 0: __ccgo_ts + 5547, + 1: __ccgo_ts + 16600, + 2: __ccgo_ts + 9185, + 3: __ccgo_ts + 16604, + 4: __ccgo_ts + 16609, + 5: __ccgo_ts + 16612, + 6: __ccgo_ts + 16622, + 7: __ccgo_ts + 16632, + 8: __ccgo_ts + 16638, + 9: __ccgo_ts + 16642, + 10: __ccgo_ts + 16647, + 11: __ccgo_ts + 16652, + 12: __ccgo_ts + 16660, + 13: __ccgo_ts + 16671, + 14: __ccgo_ts + 16674, + 15: __ccgo_ts + 16681, + 16: __ccgo_ts + 16642, + 17: __ccgo_ts + 16647, + 18: __ccgo_ts + 16688, + 19: __ccgo_ts + 16693, + 20: __ccgo_ts + 16696, + 21: __ccgo_ts + 16703, + 22: __ccgo_ts + 16638, + 23: __ccgo_ts + 16642, + 24: __ccgo_ts + 16709, + 25: __ccgo_ts + 16714, + 26: __ccgo_ts + 16719, + 27: __ccgo_ts + 16642, + 28: __ccgo_ts + 16723, + 29: __ccgo_ts + 16647, + 30: __ccgo_ts + 16731, + 31: __ccgo_ts + 16735, + 32: __ccgo_ts + 16740, + 33: __ccgo_ts + 11924, + 34: __ccgo_ts + 11920, + 35: __ccgo_ts + 16746, + 36: __ccgo_ts + 16751, + 37: __ccgo_ts + 16756, + 38: __ccgo_ts + 16600, + 39: __ccgo_ts + 16642, + 40: __ccgo_ts + 16761, + 41: __ccgo_ts + 16768, + 42: __ccgo_ts + 16775, + 43: __ccgo_ts + 9185, + 44: __ccgo_ts + 16783, + 45: __ccgo_ts + 5550, + 46: __ccgo_ts + 16789, + 47: __ccgo_ts + 16600, + 48: __ccgo_ts + 16642, + 49: __ccgo_ts + 16794, + 50: __ccgo_ts + 16799, + 51: __ccgo_ts + 15988, + 52: __ccgo_ts + 16804, + 53: __ccgo_ts + 16817, + 54: __ccgo_ts + 16826, + 55: __ccgo_ts + 16833, + 56: __ccgo_ts + 16844, } // C documentation @@ -111947,191 +112728,191 @@ type PragmaName = TPragmaName var _aPragmaName = [66]TPragmaName{ 0: { - FzName: __ccgo_ts + 16765, + FzName: __ccgo_ts + 16852, FePragTyp: uint8(PragTyp_ANALYSIS_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 1: { - FzName: __ccgo_ts + 16780, + FzName: __ccgo_ts + 16867, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_APPLICATION_ID), }, 2: { - FzName: __ccgo_ts + 16795, + FzName: __ccgo_ts + 16882, FePragTyp: uint8(PragTyp_AUTO_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 3: { - FzName: __ccgo_ts + 16807, + FzName: __ccgo_ts + 16894, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_AutoIndex), }, 4: { - FzName: __ccgo_ts + 16823, + FzName: __ccgo_ts + 16910, FePragTyp: uint8(PragTyp_BUSY_TIMEOUT), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(56), FnPragCName: uint8(1), }, 5: { - FzName: __ccgo_ts + 16746, + FzName: __ccgo_ts + 16833, FePragTyp: uint8(PragTyp_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 6: { - FzName: __ccgo_ts + 16836, + FzName: __ccgo_ts + 16923, FePragTyp: uint8(PragTyp_CACHE_SPILL), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 7: { - FzName: __ccgo_ts + 16848, + FzName: __ccgo_ts + 16935, FePragTyp: uint8(PragTyp_CASE_SENSITIVE_LIKE), FmPragFlg: uint8(PragFlg_NoColumns), }, 8: { - FzName: __ccgo_ts + 16868, + FzName: __ccgo_ts + 16955, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CellSizeCk), }, 9: { - FzName: __ccgo_ts + 16884, + FzName: __ccgo_ts + 16971, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CkptFullFSync), }, 10: { - FzName: __ccgo_ts + 16905, + FzName: __ccgo_ts + 16992, FePragTyp: uint8(PragTyp_COLLATION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(38), FnPragCName: uint8(2), }, 11: { - FzName: __ccgo_ts + 16920, + FzName: __ccgo_ts + 17007, FePragTyp: uint8(PragTyp_COMPILE_OPTIONS), FmPragFlg: uint8(PragFlg_Result0), }, 12: { - FzName: __ccgo_ts + 16936, + FzName: __ccgo_ts + 17023, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00001)) << libc.Int32FromInt32(32), }, 13: { - FzName: __ccgo_ts + 16950, + FzName: __ccgo_ts + 17037, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_DATA_VERSION), }, 14: { - FzName: __ccgo_ts + 16963, + FzName: __ccgo_ts + 17050, FePragTyp: uint8(PragTyp_DATABASE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(47), FnPragCName: uint8(3), }, 15: { - FzName: __ccgo_ts + 16977, + FzName: __ccgo_ts + 17064, FePragTyp: uint8(PragTyp_DEFAULT_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiPragCName: uint8(55), FnPragCName: uint8(1), }, 16: { - FzName: __ccgo_ts + 16996, + FzName: __ccgo_ts + 17083, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_DeferFKs), }, 17: { - FzName: __ccgo_ts + 17015, + FzName: __ccgo_ts + 17102, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_NullCallback), }, 18: { - FzName: __ccgo_ts + 17038, + FzName: __ccgo_ts + 17125, FePragTyp: uint8(PragTyp_ENCODING), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 19: { - FzName: __ccgo_ts + 17047, + FzName: __ccgo_ts + 17134, FePragTyp: uint8(PragTyp_FOREIGN_KEY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(43), FnPragCName: uint8(4), }, 20: { - FzName: __ccgo_ts + 17065, + FzName: __ccgo_ts + 17152, FePragTyp: uint8(PragTyp_FOREIGN_KEY_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FnPragCName: uint8(8), }, 21: { - FzName: __ccgo_ts + 17082, + FzName: __ccgo_ts + 17169, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ForeignKeys), }, 22: { - FzName: __ccgo_ts + 17095, + FzName: __ccgo_ts + 17182, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), }, 23: { - FzName: __ccgo_ts + 17110, + FzName: __ccgo_ts + 17197, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullColNames), }, 24: { - FzName: __ccgo_ts + 17128, + FzName: __ccgo_ts + 17215, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullFSync), }, 25: { - FzName: __ccgo_ts + 17138, + FzName: __ccgo_ts + 17225, FePragTyp: uint8(PragTyp_FUNCTION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(27), FnPragCName: uint8(6), }, 26: { - FzName: __ccgo_ts + 17152, + FzName: __ccgo_ts + 17239, FePragTyp: uint8(PragTyp_HARD_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 27: { - FzName: __ccgo_ts + 17168, + FzName: __ccgo_ts + 17255, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_IgnoreChecks), }, 28: { - FzName: __ccgo_ts + 17193, + FzName: __ccgo_ts + 17280, FePragTyp: uint8(PragTyp_INCREMENTAL_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_NoColumns)), }, 29: { - FzName: __ccgo_ts + 17212, + FzName: __ccgo_ts + 17299, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), FnPragCName: uint8(3), }, 30: { - FzName: __ccgo_ts + 17223, + FzName: __ccgo_ts + 17310, FePragTyp: uint8(PragTyp_INDEX_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(38), FnPragCName: uint8(5), }, 31: { - FzName: __ccgo_ts + 17234, + FzName: __ccgo_ts + 17321, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), @@ -112139,146 +112920,146 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 32: { - FzName: __ccgo_ts + 17246, + FzName: __ccgo_ts + 17333, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 33: { - FzName: __ccgo_ts + 17262, + FzName: __ccgo_ts + 17349, FePragTyp: uint8(PragTyp_JOURNAL_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 34: { - FzName: __ccgo_ts + 17275, + FzName: __ccgo_ts + 17362, FePragTyp: uint8(PragTyp_JOURNAL_SIZE_LIMIT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 35: { - FzName: __ccgo_ts + 17294, + FzName: __ccgo_ts + 17381, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_LegacyAlter), }, 36: { - FzName: __ccgo_ts + 17313, + FzName: __ccgo_ts + 17400, FePragTyp: uint8(PragTyp_LOCKING_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 37: { - FzName: __ccgo_ts + 17326, + FzName: __ccgo_ts + 17413, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 38: { - FzName: __ccgo_ts + 17341, + FzName: __ccgo_ts + 17428, FePragTyp: uint8(PragTyp_MMAP_SIZE), }, 39: { - FzName: __ccgo_ts + 17351, + FzName: __ccgo_ts + 17438, FePragTyp: uint8(PragTyp_MODULE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 40: { - FzName: __ccgo_ts + 17363, + FzName: __ccgo_ts + 17450, FePragTyp: uint8(PragTyp_OPTIMIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_NeedSchema)), }, 41: { - FzName: __ccgo_ts + 17372, + FzName: __ccgo_ts + 17459, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 42: { - FzName: __ccgo_ts + 17383, + FzName: __ccgo_ts + 17470, FePragTyp: uint8(PragTyp_PAGE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 43: { - FzName: __ccgo_ts + 17393, + FzName: __ccgo_ts + 17480, FePragTyp: uint8(PragTyp_PRAGMA_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 44: { - FzName: __ccgo_ts + 17405, + FzName: __ccgo_ts + 17492, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_QueryOnly), }, 45: { - FzName: __ccgo_ts + 17416, + FzName: __ccgo_ts + 17503, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 46: { - FzName: __ccgo_ts + 17428, + FzName: __ccgo_ts + 17515, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00004)) << libc.Int32FromInt32(32), }, 47: { - FzName: __ccgo_ts + 17445, + FzName: __ccgo_ts + 17532, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_RecTriggers), }, 48: { - FzName: __ccgo_ts + 17464, + FzName: __ccgo_ts + 17551, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ReverseOrder), }, 49: { - FzName: __ccgo_ts + 17490, + FzName: __ccgo_ts + 17577, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_SCHEMA_VERSION), }, 50: { - FzName: __ccgo_ts + 17505, + FzName: __ccgo_ts + 17592, FePragTyp: uint8(PragTyp_SECURE_DELETE), FmPragFlg: uint8(PragFlg_Result0), }, 51: { - FzName: __ccgo_ts + 17519, + FzName: __ccgo_ts + 17606, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ShortColNames), }, 52: { - FzName: __ccgo_ts + 17538, + FzName: __ccgo_ts + 17625, FePragTyp: uint8(PragTyp_SHRINK_MEMORY), FmPragFlg: uint8(PragFlg_NoColumns), }, 53: { - FzName: __ccgo_ts + 17552, + FzName: __ccgo_ts + 17639, FePragTyp: uint8(PragTyp_SOFT_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 54: { - FzName: __ccgo_ts + 17568, + FzName: __ccgo_ts + 17655, FePragTyp: uint8(PragTyp_SYNCHRONOUS), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 55: { - FzName: __ccgo_ts + 17580, + FzName: __ccgo_ts + 17667, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), FnPragCName: uint8(6), }, 56: { - FzName: __ccgo_ts + 17591, + FzName: __ccgo_ts + 17678, FePragTyp: uint8(PragTyp_TABLE_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1)), FiPragCName: uint8(15), FnPragCName: uint8(6), }, 57: { - FzName: __ccgo_ts + 17602, + FzName: __ccgo_ts + 17689, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), @@ -112286,45 +113067,45 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 58: { - FzName: __ccgo_ts + 17614, + FzName: __ccgo_ts + 17701, FePragTyp: uint8(PragTyp_TEMP_STORE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 59: { - FzName: __ccgo_ts + 17625, + FzName: __ccgo_ts + 17712, FePragTyp: uint8(PragTyp_TEMP_STORE_DIRECTORY), FmPragFlg: uint8(PragFlg_NoColumns1), }, 60: { - FzName: __ccgo_ts + 17646, + FzName: __ccgo_ts + 17733, FePragTyp: uint8(PragTyp_THREADS), FmPragFlg: uint8(PragFlg_Result0), }, 61: { - FzName: __ccgo_ts + 17654, + FzName: __ccgo_ts + 17741, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_TrustedSchema), }, 62: { - FzName: __ccgo_ts + 17669, + FzName: __ccgo_ts + 17756, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_USER_VERSION), }, 63: { - FzName: __ccgo_ts + 17682, + FzName: __ccgo_ts + 17769, FePragTyp: uint8(PragTyp_WAL_AUTOCHECKPOINT), }, 64: { - FzName: __ccgo_ts + 17701, + FzName: __ccgo_ts + 17788, FePragTyp: uint8(PragTyp_WAL_CHECKPOINT), FmPragFlg: uint8(PragFlg_NeedSchema), FiPragCName: uint8(50), FnPragCName: uint8(3), }, 65: { - FzName: __ccgo_ts + 17716, + FzName: __ccgo_ts + 17803, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(SQLITE_WriteSchema) | libc.Int32FromInt32(SQLITE_NoSchemaError)), @@ -112336,6 +113117,31 @@ var _aPragmaName = [66]TPragmaName{ /************** End of pragma.h **********************************************/ /************** Continuing where we left off in pragma.c *********************/ +/* +** When the 0x10 bit of PRAGMA optimize is set, any ANALYZE commands +** will be run with an analysis_limit set to the lessor of the value of +** the following macro or to the actual analysis_limit if it is non-zero, +** in order to prevent PRAGMA optimize from running for too long. +** +** The value of 2000 is chosen emperically so that the worst-case run-time +** for PRAGMA optimize does not exceed 100 milliseconds against a variety +** of test databases on a RaspberryPI-4 compiled using -Os and without +** -DSQLITE_DEBUG. Of course, your mileage may vary. For the purpose of +** this paragraph, "worst-case" means that ANALYZE ends up being +** run on every table in the database. The worst case typically only +** happens if PRAGMA optimize is run on a database file for which ANALYZE +** has not been previously run and the 0x10000 flag is included so that +** all tables are analyzed. The usual case for PRAGMA optimize is that +** no ANALYZE commands will be run at all, or if any ANALYZE happens it +** will be against a single table, so that expected timing for PRAGMA +** optimize on a PI-4 is more like 1 millisecond or less with the 0x10000 +** flag or less than 100 microseconds without the 0x10000 flag. +** +** An analysis limit of 2000 is almost always sufficient for the query +** planner to fully characterize an index. The additional accuracy from +** a larger analysis is not usually helpful. + */ + // C documentation // // /* @@ -112425,10 +113231,10 @@ func _sqlite3GetBoolean(tls *libc.TLS, z uintptr, dflt Tu8) (r Tu8) { // */ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { if z != 0 { - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17732) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17819) { return int32(PAGER_LOCKINGMODE_EXCLUSIVE) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17742) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17829) { return PAGER_LOCKINGMODE_NORMAL } } @@ -112446,13 +113252,13 @@ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { func _getAutoVacuum(tls *libc.TLS, z uintptr) (r int32) { var i, v1 int32 _, _ = i, v1 - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8220) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8345) { return BTREE_AUTOVACUUM_NONE } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17749) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17836) { return int32(BTREE_AUTOVACUUM_FULL) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17754) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17841) { return int32(BTREE_AUTOVACUUM_INCR) } i = _sqlite3Atoi(tls, z) @@ -112475,10 +113281,10 @@ func _getTempStore(tls *libc.TLS, z uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(z))) <= int32('2') { return int32(*(*uint8)(unsafe.Pointer(z))) - int32('0') } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+16707) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+16794) == 0 { return int32(1) } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+17766) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+17853) == 0 { return int32(2) } else { return 0 @@ -112500,7 +113306,7 @@ func _invalidateTempStorage(tls *libc.TLS, pParse uintptr) (r int32) { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt != uintptr(0) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || _sqlite3BtreeTxnState(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) != SQLITE_TXN_NONE { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17773, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17860, 0) return int32(SQLITE_ERROR) } _sqlite3BtreeClose(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) @@ -112630,15 +113436,15 @@ func _actionName(tls *libc.TLS, action Tu8) (r uintptr) { _ = zName switch int32(action) { case int32(OE_SetNull): - zName = __ccgo_ts + 17835 + zName = __ccgo_ts + 17922 case int32(OE_SetDflt): - zName = __ccgo_ts + 17844 + zName = __ccgo_ts + 17931 case int32(OE_Cascade): - zName = __ccgo_ts + 17856 + zName = __ccgo_ts + 17943 case int32(OE_Restrict): - zName = __ccgo_ts + 17864 + zName = __ccgo_ts + 17951 default: - zName = __ccgo_ts + 17873 + zName = __ccgo_ts + 17960 break } return zName @@ -112659,12 +113465,12 @@ func _sqlite3JournalModename(tls *libc.TLS, eMode int32) (r uintptr) { } var _azModeName = [6]uintptr{ - 0: __ccgo_ts + 17883, - 1: __ccgo_ts + 17890, - 2: __ccgo_ts + 17898, - 3: __ccgo_ts + 17902, - 4: __ccgo_ts + 17766, - 5: __ccgo_ts + 17911, + 0: __ccgo_ts + 17970, + 1: __ccgo_ts + 17977, + 2: __ccgo_ts + 17985, + 3: __ccgo_ts + 17989, + 4: __ccgo_ts + 17853, + 5: __ccgo_ts + 17998, } // C documentation @@ -112726,15 +113532,15 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s goto _1 } if (*TFuncDef)(unsafe.Pointer(p)).FxValue != uintptr(0) { - zType = __ccgo_ts + 17936 + zType = __ccgo_ts + 18023 } else { if (*TFuncDef)(unsafe.Pointer(p)).FxFinalize != uintptr(0) { - zType = __ccgo_ts + 17938 + zType = __ccgo_ts + 18025 } else { - zType = __ccgo_ts + 7619 + zType = __ccgo_ts + 7744 } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+17940, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18027, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) goto _1 _1: ; @@ -112743,9 +113549,9 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s } var _azEnc = [4]uintptr{ - 1: __ccgo_ts + 17915, - 2: __ccgo_ts + 17920, - 3: __ccgo_ts + 17928, + 1: __ccgo_ts + 18002, + 2: __ccgo_ts + 18007, + 3: __ccgo_ts + 18015, } // C documentation @@ -112786,15 +113592,15 @@ func _integrityCheckResultRow(tls *libc.TLS, v uintptr) (r int32) { func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pValue uintptr, minusFlag int32) { bp := tls.Alloc(240) defer tls.Free(240) - var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, mxIdx, n, nHidden, nIdx, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v60, v62, v63, v64, v65, v68 int32 - var aOp, aOp1, aOp2, aOp3, aOp4, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v61, v66, v8 uintptr + var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v48, v50, v64, v66, v67, v68, v69, v72, v75, v76 int32 + var aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v65, v70, v8 uintptr var azOrigin [3]uintptr var cnum Ti16 var enc Tu8 var iPrior Tsqlite3_int64 + var iRange, szThreshold TLogEst var mask Tu64 var opMask Tu32 - var szThreshold TLogEst var _ /* N at bp+136 */ Tsqlite3_int64 var _ /* N at bp+144 */ Tsqlite3_int64 var _ /* N at bp+152 */ Tsqlite3_int64 @@ -112815,7 +113621,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p var _ /* size at bp+60 */ int32 var _ /* sz at bp+64 */ Tsqlite3_int64 var _ /* x at bp+40 */ Ti64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iPrior, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, mxIdx, n, nHidden, nIdx, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v5, v60, v61, v62, v63, v64, v65, v66, v68, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iPrior, iRange, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v48, v5, v50, v64, v65, v66, v67, v68, v69, v70, v72, v75, v76, v8 zLeft = uintptr(0) /* Nul-terminated UTF-8 string */ zRight = uintptr(0) /* Nul-terminated UTF-8 string , or NULL */ zDb = uintptr(0) /* return value form SQLITE_FCNTL_PRAGMA */ @@ -112844,7 +113650,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p return } if minusFlag != 0 { - zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+17947, libc.VaList(bp+176, pValue)) + zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+18034, libc.VaList(bp+176, pValue)) } else { zRight = _sqlite3NameFromToken(tls, db, pValue) } @@ -112887,7 +113693,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } if rc != int32(SQLITE_NOTFOUND) { if (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0] != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3797, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3861, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) Xsqlite3_free(tls, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0]) } (*TParse)(unsafe.Pointer(pParse)).FnErr++ @@ -112991,7 +113797,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pBt1 = (*TDb)(unsafe.Pointer(pDb)).FpBt b = -int32(1) if zRight != 0 { - if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+17951) == 0 { + if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18038) == 0 { b = int32(2) } else { b = int32(_sqlite3GetBoolean(tls, zRight, uint8(0))) @@ -113062,7 +113868,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p */ fallthrough case int32(PragTyp_LOCKING_MODE): - zRet = __ccgo_ts + 17742 + zRet = __ccgo_ts + 17829 eMode = _getLockingMode(tls, zRight) if (*TToken)(unsafe.Pointer(pId2)).Fn == uint32(0) && eMode == -int32(1) { /* Simple "PRAGMA locking_mode;" statement. This is a query for @@ -113090,7 +113896,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p eMode = _sqlite3PagerLockingMode(tls, pPager, eMode) } if eMode == int32(PAGER_LOCKINGMODE_EXCLUSIVE) { - zRet = __ccgo_ts + 17732 + zRet = __ccgo_ts + 17819 } _returnSingleText(tls, v, zRet) break @@ -113380,7 +114186,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if *(*uint8)(unsafe.Pointer(zRight)) != 0 { rc = _sqlite3OsAccess(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, zRight, int32(SQLITE_ACCESS_READWRITE), bp+72) if rc != SQLITE_OK || *(*int32)(unsafe.Pointer(bp + 72)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17956, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18043, 0) Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) goto pragma_out } @@ -113390,7 +114196,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } Xsqlite3_free(tls, Xsqlite3_temp_directory) if *(*uint8)(unsafe.Pointer(zRight)) != 0 { - Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+176, zRight)) + Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+176, zRight)) } else { Xsqlite3_temp_directory = uintptr(0) } @@ -113412,7 +114218,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _returnSingleInt(tls, v, int64(int32((*TDb)(unsafe.Pointer(pDb)).Fsafety_level)-int32(1))) } else { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17981, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18068, 0) } else { if iDb != int32(1) { iLevel = (int32(_getSafetyLevel(tls, zRight, 0, uint8(1))) + int32(1)) & int32(PAGER_SYNCHRONOUS_MASK) @@ -113445,7 +114251,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if mask == uint64(SQLITE_DeferFKs) { (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = 0 } - if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18034) == 0 { + if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18121) == 0 { /* IMP: R-60817-01178 If the argument is "RESET" then schema ** writing is disabled (as with "PRAGMA writable_schema=OFF") and, ** in addition, the schema is reloaded. */ @@ -113525,9 +114331,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pColExpr = _sqlite3ColumnExpr(tls, pTab, pCol) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - v14 = __ccgo_ts + 18040 + v14 = __ccgo_ts + 18127 } else { - v14 = __ccgo_ts + 18048 + v14 = __ccgo_ts + 18135 } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 { v15 = int32(1) @@ -113539,7 +114345,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v16 = *(*uintptr)(unsafe.Pointer(pColExpr + 8)) } - _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1650), v15, v16, k, isHidden)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1664), v15, v16, k, isHidden)) goto _12 _12: ; @@ -113598,7 +114404,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pTab1 = (*THashElem)(unsafe.Pointer(k1)).Fdata if int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) == 0 { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18055, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18142, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 80)) = uintptr(0) Xsqlite3_prepare(tls, db, zSql, -int32(1), bp+80, uintptr(0)) @@ -113606,7 +114412,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3DbFree(tls, db, zSql) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1634, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) } pHash = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FpSchema + 8 @@ -113628,19 +114434,19 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _20 } if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10798 + zType = __ccgo_ts + 10923 } else { if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 13046 + zType = __ccgo_ts + 13171 } else { if (*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Shadow) != 0 { - zType = __ccgo_ts + 18071 + zType = __ccgo_ts + 18158 } else { - zType = __ccgo_ts + 9060 + zType = __ccgo_ts + 9185 } } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18078, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18165, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) goto _20 _20: ; @@ -113687,9 +114493,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v22 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab3)).FaCol + uintptr(cnum)*16))).FzCnName } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18085, libc.VaList(bp+176, i1, int32(cnum), v22)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18172, libc.VaList(bp+176, i1, int32(cnum), v22)) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18090, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) + _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18177, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) } _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), int32(1), (*TParse)(unsafe.Pointer(pParse)).FnMem) goto _21 @@ -113713,11 +114519,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } azOrigin = [3]uintptr{ - 0: __ccgo_ts + 18095, - 1: __ccgo_ts + 18097, - 2: __ccgo_ts + 16584, + 0: __ccgo_ts + 18182, + 1: __ccgo_ts + 18184, + 2: __ccgo_ts + 16671, } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18099, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18186, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) goto _23 _23: ; @@ -113736,7 +114542,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt == uintptr(0) { goto _24 } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18105, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18192, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) goto _24 _24: ; @@ -113753,7 +114559,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pColl = (*THashElem)(unsafe.Pointer(p)).Fdata v26 = i4 i4++ - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18109, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18196, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) goto _25 _25: ; @@ -113803,7 +114609,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } pMod = (*THashElem)(unsafe.Pointer(j1)).Fdata - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7619, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7744, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) goto _30 _30: ; @@ -113815,7 +114621,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i6 < int32(libc.Uint64FromInt64(1584)/libc.Uint64FromInt64(24))) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7619, libc.VaList(bp+176, _aPragmaName[i6].FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7744, libc.VaList(bp+176, _aPragmaName[i6].FzName)) goto _31 _31: ; @@ -113841,7 +114647,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(j2 < (*TFKey)(unsafe.Pointer(pFK)).FnCol) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18112, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18121)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18199, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18208)) goto _32 _32: ; @@ -113982,7 +114788,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regResult+int32(1)) } - _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18126, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) + _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18213, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), regResult, int32(4)) _sqlite3VdbeResolveLabel(tls, v, addrOk) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 96))) @@ -114050,7 +114856,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p /* Set the maximum error count */ *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) if zRight != 0 { - if _sqlite3GetInt32(tls, zRight, bp+104) != 0 { + if _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pValue)).Fz, bp+104) != 0 { if *(*int32)(unsafe.Pointer(bp + 104)) <= 0 { *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) } @@ -114070,8 +114876,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i9 < (*Tsqlite3)(unsafe.Pointer(db)).FnDb) { break } /* Array of root page numbers of all btrees */ - cnt = 0 /* Number of entries in aRoot[] */ - mxIdx = 0 /* Maximum number of indexes for any table */ + cnt = 0 /* Number of entries in aRoot[] */ if libc.Bool(OMIT_TEMPDB != 0) && i9 == int32(1) { goto _40 } @@ -114112,9 +114917,6 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pIdx3 = (*TIndex)(unsafe.Pointer(pIdx3)).FpNext nIdx++ } - if nIdx > mxIdx { - mxIdx = nIdx - } goto _41 _41: ; @@ -114170,16 +114972,78 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } *(*int32)(unsafe.Pointer(aRoot)) = cnt /* Make sure sufficient number of registers have been allocated */ - _sqlite3TouchRegister(tls, pParse, int32(8)+mxIdx) + _sqlite3TouchRegister(tls, pParse, int32(8)+cnt) _sqlite3ClearTempRegCache(tls, pParse) /* Do the b-tree integrity checks */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(2), cnt, int32(1), aRoot, -int32(14)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(1), cnt, int32(8), aRoot, -int32(14)) _sqlite3VdbeChangeP5(tls, v, uint16(uint8(i9))) addr1 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(2)) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18130, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18217, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(2), int32(3), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, addr1) + /* Check that the indexes all have the right number of rows */ + if pObjTab != 0 { + v48 = int32(1) + } else { + v48 = 0 + } + cnt = v48 + _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18241) + x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst + for { + if !(x2 != 0) { + break + } + iTab = 0 + pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab9 { + goto _49 + } + if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + v50 = cnt + cnt++ + iTab = v50 + } else { + iTab = cnt + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx5 + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { + break + } + iTab++ + goto _51 + _51: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + } + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if (*TIndex)(unsafe.Pointer(pIdx5)).FpPartIdxWhere == uintptr(0) { + addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+cnt, 0, int32(8)+iTab) + _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) + _integrityCheckResultRow(tls, v) + _sqlite3VdbeJumpHere(tls, v, addr1) + } + cnt++ + goto _52 + _52: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + goto _49 + _49: + ; + x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext + } /* Make sure all the indices are constructed correctly. */ x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst @@ -114187,39 +115051,39 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata pPrior = uintptr(0) r1 = -int32(1) /* Maximum non-virtual column number */ - if pObjTab != 0 && pObjTab != pTab9 { - goto _48 + if pObjTab != 0 && pObjTab != pTab10 { + goto _53 } - if !(int32((*TTable)(unsafe.Pointer(pTab9)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { - goto _48 + if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _53 } - if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { pPk1 = uintptr(0) r2 = 0 } else { - pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab9) + pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab10) r2 = _sqlite3GetTempRange(tls, pParse, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), int32(1), r2, r2+int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)-int32(1)) } - _sqlite3OpenTableAndIndices(tls, pParse, pTab9, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) + _sqlite3OpenTableAndIndices(tls, pParse, pTab10, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) /* reg[7] counts the number of entries in the table. ** reg[8+i] counts the number of entries in the i-th index */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(7)) j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(8)+j4) /* index entries counter */ - goto _49 - _49: + goto _54 + _54: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), *(*int32)(unsafe.Pointer(bp + 108)), 0) @@ -114229,29 +115093,29 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** will also prepopulate the cursor column cache that is used ** by the OP_IsType code, so it is a required step. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { mxCol = -int32(1) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { + if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { mxCol++ } - goto _50 - _50: + goto _55 + _55: ; j4++ } - if mxCol == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { + if mxCol == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { mxCol-- } } else { /* COLFLAG_VIRTUAL columns are not included in the WITHOUT ROWID ** PK index column-count, so there is no need to account for them ** in this case. */ - mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab9))).FnColumn) - int32(1) + mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab10))).FnColumn) - int32(1) } if mxCol >= 0 { _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 108)), mxCol, int32(3)) @@ -114261,7 +115125,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if pPk1 != 0 { a1 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 108)), 0, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), r2) - zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18154, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18270, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a1) @@ -114272,8 +115136,8 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprCodeLoadIndexColumn(tls, pParse, pPk1, *(*int32)(unsafe.Pointer(bp + 108)), j4, r2+j4) - goto _51 - _51: + goto _56 + _56: ; j4++ } @@ -114288,15 +115152,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** (4) Datatype for numeric columns in non-STRICT tables must not ** be a TEXT value that can be losslessly converted to numeric. */ - bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_Strict) != uint32(0)) + bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_Strict) != uint32(0)) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - pCol1 = (*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ - if j4 == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { - goto _52 + pCol1 = (*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ + if j4 == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { + goto _57 } if bStrict != 0 { doTypeCheck = libc.BoolInt32(int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4)) > int32(COLTYPE_ANY)) @@ -114304,28 +115168,28 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p doTypeCheck = libc.BoolInt32(int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) > int32(SQLITE_AFF_BLOB)) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf>>0)) == 0 && !(doTypeCheck != 0) { - goto _52 + goto _57 } /* Compute the operands that will be needed for OP_IsType */ p4 = int32(SQLITE_NULL) if int32((*TColumn)(unsafe.Pointer(pCol1)).FcolFlags)&int32(COLFLAG_VIRTUAL) != 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) p11 = -int32(1) p3 = int32(3) } else { if (*TColumn)(unsafe.Pointer(pCol1)).FiDflt != 0 { *(*uintptr)(unsafe.Pointer(bp + 120)) = uintptr(0) - _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab9, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol1)).Faffinity, bp+120) + _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab10, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol1)).Faffinity, bp+120) if *(*uintptr)(unsafe.Pointer(bp + 120)) != 0 { p4 = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) } } p11 = *(*int32)(unsafe.Pointer(bp + 108)) - if !((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { - p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab9), int16(j4))) + if !((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { + p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab10), int16(j4))) } else { - p3 = int32(_sqlite3TableColumnToStorage(tls, pTab9, int16(j4))) + p3 = int32(_sqlite3TableColumnToStorage(tls, pTab10, int16(j4))) } } labelError = _sqlite3VdbeMakeLabel(tls, pParse) @@ -114342,10 +115206,10 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** is REAL, we have to load the actual data using OP_Column ** to reliably determine if the value is a NULL. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), p11, p3, int32(3)) - _sqlite3ColumnDefault(tls, v, pTab9, j4, int32(3)) + _sqlite3ColumnDefault(tls, v, pTab10, j4, int32(3)) jmp3 = _sqlite3VdbeAddOp2(tls, v, int32(OP_NotNull), int32(3), labelOk) } - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18190, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18306, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) if doTypeCheck != 0 { _sqlite3VdbeGoto(tls, v, labelError) @@ -114358,7 +115222,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if bStrict != 0 && doTypeCheck != 0 { _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(_aStdTypeMask[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)])) - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18210, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18326, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) == int32(SQLITE_AFF_TEXT) { @@ -114366,7 +115230,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** NULL, TEXT, or BLOB. */ _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18232, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18348, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) >= int32(SQLITE_AFF_NUMERIC) { @@ -114375,12 +115239,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1b)) /* NULL, INT, FLOAT, or BLOB */ if p11 >= 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18255, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18371, -int32(1)) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), -int32(1), labelOk, int32(3), p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18257, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18373, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } } @@ -114388,14 +115252,14 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeResolveLabel(tls, v, labelError) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, labelOk) - goto _52 - _52: + goto _57 + _57: ; j4++ } /* Verify CHECK constraints */ - if (*TTable)(unsafe.Pointer(pTab9)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { - pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab9)).FpCheck, 0) + if (*TTable)(unsafe.Pointer(pTab10)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { + pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab10)).FpCheck, 0) if int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { addrCkFault = _sqlite3VdbeMakeLabel(tls, pParse) addrCkOk = _sqlite3VdbeMakeLabel(tls, pParse) @@ -114406,15 +115270,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprIfFalse(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8 + uintptr(k3)*32))).FpExpr, addrCkFault, 0) - goto _53 - _53: + goto _58 + _58: ; k3-- } _sqlite3ExprIfTrue(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8))).FpExpr, addrCkOk, int32(SQLITE_JUMPIFNULL)) _sqlite3VdbeResolveLabel(tls, v, addrCkFault) (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 - zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18277, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18393, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr2, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, addrCkOk) @@ -114424,25 +115288,25 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(isQuick != 0) { /* Omit the remaining tests for quick_check */ /* Validate index entries for the current row */ j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } ckUniq = _sqlite3VdbeMakeLabel(tls, pParse) - if pPk1 == pIdx5 { - goto _54 + if pPk1 == pIdx6 { + goto _59 } - r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx5, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) - pPrior = pIdx5 + r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx6, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) + pPrior = pIdx6 _sqlite3VdbeAddOp2(tls, v, int32(OP_AddImm), int32(8)+j4, int32(1)) /* increment entry count */ /* Verify that an index entry exists for the current table row */ - jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18307) + jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18423) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18312) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18428) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) - jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx6)).FzName) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) jmp4 = _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, jmp21) @@ -114450,12 +115314,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** that extracts the rowid off the end of the index record. ** But it only works correctly if index record does not have ** any extra bytes at the end. Verify that this is the case. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { _sqlite3VdbeAddOp2(tls, v, int32(OP_IdxRowid), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)-int32(1)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18333) + jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)-int32(1)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18449) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18369) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18485) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp7) } @@ -114464,100 +115328,75 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p label6 = 0 kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { - goto _55 + if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { + goto _60 } if label6 == 0 { label6 = _sqlite3VdbeMakeLabel(tls, pParse) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 112))+j4, kk, int32(3)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ne), int32(3), label6, r1+kk) - goto _55 - _55: + goto _60 + _60: ; kk++ } if label6 != 0 { jmp6 = _sqlite3VdbeAddOp0(tls, v, int32(OP_Goto)) _sqlite3VdbeResolveLabel(tls, v, label6) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18307) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18423) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18380) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18496) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp6) } /* For UNIQUE indexes, verify that only one entry exists with the ** current key. The entry is unique if (1) any column is NULL ** or (2) the next entry has a different key */ - if int32((*TIndex)(unsafe.Pointer(pIdx5)).FonError) != OE_None { + if int32((*TIndex)(unsafe.Pointer(pIdx6)).FonError) != OE_None { uniqOk = _sqlite3VdbeMakeLabel(tls, pParse) kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FaiColumn + uintptr(kk)*2))) - if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { - goto _56 + iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FaiColumn + uintptr(kk)*2))) + if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { + goto _61 } _sqlite3VdbeAddOp2(tls, v, int32(OP_IsNull), r1+kk, uniqOk) - goto _56 - _56: + goto _61 + _61: ; kk++ } jmp61 = _sqlite3VdbeAddOp1(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 112))+j4) _sqlite3VdbeGoto(tls, v, uniqOk) _sqlite3VdbeJumpHere(tls, v, jmp61) - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18407) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18523) _sqlite3VdbeGoto(tls, v, jmp5) _sqlite3VdbeResolveLabel(tls, v, uniqOk) } _sqlite3VdbeJumpHere(tls, v, jmp4) _sqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp + 128))) - goto _54 - _54: + goto _59 + _59: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } } _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 108)), loopTop) _sqlite3VdbeJumpHere(tls, v, loopTop-int32(1)) - if !(isQuick != 0) { - _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18434) - j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex - for { - if !(pIdx5 != 0) { - break - } - if pPk1 == pIdx5 { - goto _57 - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+j4, 0, int32(3)) - _sqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL)) - _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) - _integrityCheckResultRow(tls, v) - _sqlite3VdbeJumpHere(tls, v, addr1) - goto _57 - _57: - ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext - j4++ - } - if pPk1 != 0 { - _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) - } + if pPk1 != 0 { + _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) } - goto _48 - _48: + goto _53 + _53: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -114569,60 +115408,60 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata - if pObjTab != 0 && pObjTab != pTab10 { - goto _58 + pTab11 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab11 { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == TABTYP_NORM { - goto _58 + if int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == TABTYP_NORM { + goto _62 } - if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { - goto _58 + if !(int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FnCol) <= 0 { + if int32((*TTable)(unsafe.Pointer(pTab11)).FnCol) <= 0 { zMod = *(*uintptr)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).FazArg)) + })(unsafe.Pointer(pTab11 + 64))).FazArg)) if _sqlite3HashFind(tls, db+576, zMod) == uintptr(0) { - goto _58 + goto _62 } } - _sqlite3ViewGetColumnNames(tls, pParse, pTab10) + _sqlite3ViewGetColumnNames(tls, pParse, pTab11) if (*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp == uintptr(0) { - goto _58 + })(unsafe.Pointer(pTab11 + 64))).Fp == uintptr(0) { + goto _62 } pVTab = (*TVTable)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp)).FpVtab + })(unsafe.Pointer(pTab11 + 64))).Fp)).FpVtab if pVTab == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FiVersion < int32(4) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FxIntegrity == uintptr(0) { - goto _58 + goto _62 } _sqlite3VdbeAddOp3(tls, v, int32(OP_VCheck), i9, int32(3), isQuick) - (*TTable)(unsafe.Pointer(pTab10)).FnTabRef++ - _sqlite3VdbeAppendP4(tls, v, pTab10, -int32(16)) + (*TTable)(unsafe.Pointer(pTab11)).FnTabRef++ + _sqlite3VdbeAppendP4(tls, v, pTab11, -int32(16)) a11 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a11) - goto _58 - goto _58 - _58: + goto _62 + goto _62 + _62: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -114635,7 +115474,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if aOp2 != 0 { (*(*TVdbeOp)(unsafe.Pointer(aOp2))).Fp2 = int32(1) - *(*int32)(unsafe.Pointer(bp + 104)) (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 2*24))).Fp4type = int8(-libc.Int32FromInt32(1)) - *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18463 + *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18550 (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 5*24))).Fp4type = int8(-libc.Int32FromInt32(1)) *(*uintptr)(unsafe.Pointer(aOp2 + 5*24 + 16)) = _sqlite3ErrStr(tls, int32(SQLITE_CORRUPT)) } @@ -114693,20 +115532,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc != 0 { - v60 = int32((*struct { + v64 = int32((*struct { FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc) } else { - v60 = int32(SQLITE_UTF16LE) + v64 = int32(SQLITE_UTF16LE) } - enc = uint8(v60) + enc = uint8(v64) (*TSchema)(unsafe.Pointer((*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema)).Fenc = enc _sqlite3SetTextEncoding(tls, db, enc) break } - goto _59 - _59: + goto _63 + _63: ; pEnc += 16 } @@ -114714,7 +115553,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).FzName != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18524, libc.VaList(bp+176, zRight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18611, libc.VaList(bp+176, zRight)) } } } @@ -114792,11 +115631,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p i10 = 0 (*TParse)(unsafe.Pointer(pParse)).FnMem = int32(1) for { - v62 = i10 + v66 = i10 i10++ - v61 = Xsqlite3_compileoption_get(tls, v62) - zOpt = v61 - if !(v61 != uintptr(0)) { + v65 = Xsqlite3_compileoption_get(tls, v66) + zOpt = v65 + if !(v65 != uintptr(0)) { break } _sqlite3VdbeLoadString(tls, v, int32(1), zOpt) @@ -114812,20 +115651,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p fallthrough case int32(PragTyp_WAL_CHECKPOINT): if (*TToken)(unsafe.Pointer(pId2)).Fz != 0 { - v63 = iDb + v67 = iDb } else { - v63 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) + v67 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) } - iBt = v63 + iBt = v67 eMode2 = SQLITE_CHECKPOINT_PASSIVE if zRight != 0 { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17749) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17836) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_FULL) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18549) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18636) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_RESTART) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17902) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17989) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_TRUNCATE) } } @@ -114849,11 +115688,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p Xsqlite3_wal_autocheckpoint(tls, db, _sqlite3Atoi(tls, zRight)) } if (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback == __ccgo_fp(_sqlite3WalDefaultHook) { - v64 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) + v68 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) } else { - v64 = 0 + v68 = 0 } - _returnSingleInt(tls, v, int64(v64)) + _returnSingleInt(tls, v, int64(v68)) break /* ** PRAGMA shrink_memory @@ -114881,47 +115720,68 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** ** The optional argument is a bitmask of optimizations to perform: ** - ** 0x0001 Debugging mode. Do not actually perform any optimizations - ** but instead return one line of text for each optimization - ** that would have been done. Off by default. + ** 0x00001 Debugging mode. Do not actually perform any optimizations + ** but instead return one line of text for each optimization + ** that would have been done. Off by default. ** - ** 0x0002 Run ANALYZE on tables that might benefit. On by default. - ** See below for additional information. + ** 0x00002 Run ANALYZE on tables that might benefit. On by default. + ** See below for additional information. ** - ** 0x0004 (Not yet implemented) Record usage and performance - ** information from the current session in the - ** database file so that it will be available to "optimize" - ** pragmas run by future database connections. + ** 0x00010 Run all ANALYZE operations using an analysis_limit that + ** is the lessor of the current analysis_limit and the + ** SQLITE_DEFAULT_OPTIMIZE_LIMIT compile-time option. + ** The default value of SQLITE_DEFAULT_OPTIMIZE_LIMIT is + ** currently (2024-02-19) set to 2000, which is such that + ** the worst case run-time for PRAGMA optimize on a 100MB + ** database will usually be less than 100 milliseconds on + ** a RaspberryPI-4 class machine. On by default. ** - ** 0x0008 (Not yet implemented) Create indexes that might have - ** been helpful to recent queries + ** 0x10000 Look at tables to see if they need to be reanalyzed + ** due to growth or shrinkage even if they have not been + ** queried during the current connection. Off by default. ** - ** The default MASK is and always shall be 0xfffe. 0xfffe means perform all - ** of the optimizations listed above except Debug Mode, including new - ** optimizations that have not yet been invented. If new optimizations are - ** ever added that should be off by default, those off-by-default - ** optimizations will have bitmasks of 0x10000 or larger. + ** The default MASK is and always shall be 0x0fffe. In the current + ** implementation, the default mask only covers the 0x00002 optimization, + ** though additional optimizations that are covered by 0x0fffe might be + ** added in the future. Optimizations that are off by default and must + ** be explicitly requested have masks of 0x10000 or greater. ** ** DETERMINATION OF WHEN TO RUN ANALYZE ** ** In the current implementation, a table is analyzed if only if all of ** the following are true: ** - ** (1) MASK bit 0x02 is set. + ** (1) MASK bit 0x00002 is set. ** - ** (2) The query planner used sqlite_stat1-style statistics for one or - ** more indexes of the table at some point during the lifetime of - ** the current connection. + ** (2) The table is an ordinary table, not a virtual table or view. ** - ** (3) One or more indexes of the table are currently unanalyzed OR - ** the number of rows in the table has increased by 25 times or more - ** since the last time ANALYZE was run. + ** (3) The table name does not begin with "sqlite_". + ** + ** (4) One or more of the following is true: + ** (4a) The 0x10000 MASK bit is set. + ** (4b) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. + ** (4c) The query planner used sqlite_stat1-style statistics for one + ** or more indexes of the table at some point during the lifetime + ** of the current connection. + ** + ** (5) One or more of the following is true: + ** (5a) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. (Same as 4a) + ** (5b) The number of rows in the table has increased or decreased by + ** 10-fold. In other words, the current size of the table is + ** 10 times larger than the size in sqlite_stat1 or else the + ** current size is less than 1/10th the size in sqlite_stat1. ** ** The rules for when tables are analyzed are likely to change in - ** future releases. + ** future releases. Future versions of SQLite might accept a string + ** literal argument to this pragma that contains a mnemonic description + ** of the options rather than a bitmap. */ fallthrough - case int32(PragTyp_OPTIMIZE): /* Mask of operations to perform */ + case int32(PragTyp_OPTIMIZE): /* Analysis limit to use */ + nCheck = 0 /* Number of tables to be optimized */ + nBtree = 0 /* Number of indexes on the current table */ if zRight != 0 { opMask = uint32(_sqlite3Atoi(tls, zRight)) if opMask&uint32(0x02) == uint32(0) { @@ -114930,22 +115790,31 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { opMask = uint32(0xfffe) } - v66 = pParse + 52 - v65 = *(*int32)(unsafe.Pointer(v66)) - *(*int32)(unsafe.Pointer(v66))++ - iTabCur = v65 + if opMask&uint32(0x10) == uint32(0) { + nLimit = 0 + } else { + if (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit > 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit < int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) { + nLimit = 0 + } else { + nLimit = int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) + } + } + v70 = pParse + 52 + v69 = *(*int32)(unsafe.Pointer(v70)) + *(*int32)(unsafe.Pointer(v70))++ + iTabCur = v69 if zDb != 0 { - v68 = iDb + v72 = iDb } else { - v68 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) + v72 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) } - iDbLast = v68 + iDbLast = v72 for { if !(iDb <= iDbLast) { break } if iDb == int32(1) { - goto _67 + goto _71 } _sqlite3CodeVerifySchema(tls, pParse, iDb) pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema @@ -114954,52 +115823,122 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(k4 != 0) { break } - pTab11 = (*THashElem)(unsafe.Pointer(k4)).Fdata - /* If table pTab has not been used in a way that would benefit from - ** having analysis statistics during the current session, then skip it. - ** This also has the effect of skipping virtual tables and views */ - if (*TTable)(unsafe.Pointer(pTab11)).FtabFlags&uint32(TF_StatsUsed) == uint32(0) { - goto _69 - } - /* Reanalyze if the table is 25 times larger than the last analysis */ - szThreshold = int16(int32((*TTable)(unsafe.Pointer(pTab11)).FnRowLogEst) + int32(46)) - pIdx6 = (*TTable)(unsafe.Pointer(pTab11)).FpIndex + pTab12 = (*THashElem)(unsafe.Pointer(k4)).Fdata + /* This only works for ordinary tables */ + if !(int32((*TTable)(unsafe.Pointer(pTab12)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _73 + } + /* Do not scan system tables */ + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab12)).FzName, __ccgo_ts+6591, int32(7)) { + goto _73 + } + /* Find the size of the table as last recorded in sqlite_stat1. + ** If any index is unanalyzed, then the threshold is -1 to + ** indicate a new, unanalyzed index + */ + szThreshold = (*TTable)(unsafe.Pointer(pTab12)).FnRowLogEst + nIndex = 0 + pIdx7 = (*TTable)(unsafe.Pointer(pTab12)).FpIndex for { - if !(pIdx6 != 0) { + if !(pIdx7 != 0) { break } - if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx6 + 100))&0x80>>7)) != 0) { - szThreshold = 0 /* Always analyze if any index lacks statistics */ - break + nIndex++ + if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx7 + 100))&0x80>>7)) != 0) { + szThreshold = int16(-int32(1)) /* Always analyze if any index lacks statistics */ } - goto _70 - _70: + goto _74 + _74: ; - pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext + pIdx7 = (*TIndex)(unsafe.Pointer(pIdx7)).FpNext } - if szThreshold != 0 { - _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab11, int32(OP_OpenRead)) - _sqlite3VdbeAddOp3(tls, v, int32(OP_IfSmaller), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), int32(szThreshold)) + /* If table pTab has not been used in a way that would benefit from + ** having analysis statistics during the current session, then skip it, + ** unless the 0x10000 MASK bit is set. */ + if (*TTable)(unsafe.Pointer(pTab12)).FtabFlags&uint32(TF_MaybeReanalyze) != uint32(0) { + /* Check for size change if stat1 has been used for a query */ + } else { + if opMask&uint32(0x10000) != 0 { + /* Check for size change if 0x10000 is set */ + } else { + if (*TTable)(unsafe.Pointer(pTab12)).FpIndex != uintptr(0) && int32(szThreshold) < 0 { + /* Do analysis if unanalyzed indexes exists */ + } else { + /* Otherwise, we can skip this table */ + goto _73 + } + } + } + nCheck++ + if nCheck == int32(2) { + /* If ANALYZE might be invoked two or more times, hold a write + ** transaction for efficiency */ + _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) + } + nBtree += nIndex + int32(1) + /* Reanalyze if the table is 10 times larger or smaller than + ** the last analysis. Unconditional reanalysis if there are + ** unanalyzed indexes. */ + _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab12, int32(OP_OpenRead)) + if int32(szThreshold) >= 0 { + iRange = int16(33) /* 10x size change */ + if int32(szThreshold) >= int32(iRange) { + v75 = int32(szThreshold) - int32(iRange) + } else { + v75 = -int32(1) + } + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IfSizeBetween), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), v75, int32(szThreshold)+int32(iRange)) + } else { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1))) } - zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18557, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab11)).FzName)) + zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18644, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab12)).FzName)) if opMask&uint32(0x01) != 0 { r11 = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, r11, 0, zSubSql, -int32(6)) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), r11, int32(1)) } else { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), 0, 0, 0, zSubSql, -int32(6)) + if nLimit != 0 { + v76 = int32(0x02) + } else { + v76 = 00 + } + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), v76, nLimit, 0, zSubSql, -int32(6)) } - goto _69 - _69: + goto _73 + _73: ; k4 = (*THashElem)(unsafe.Pointer(k4)).Fnext } - goto _67 - _67: + goto _71 + _71: ; iDb++ } _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) + /* In a schema with a large number of tables and indexes, scale back + ** the analysis_limit to avoid excess run-time in the worst case. + */ + if !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && nLimit > 0 && nBtree > int32(100) { + nLimit = int32(100) * nLimit / nBtree + if nLimit < int32(100) { + nLimit = int32(100) + } + aOp5 = _sqlite3VdbeGetOp(tls, v, 0) + iEnd = _sqlite3VdbeCurrentAddr(tls, v) + iAddr1 = 0 + for { + if !(iAddr1 < iEnd) { + break + } + if int32((*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fopcode) == int32(OP_SqlExec) { + (*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fp2 = nLimit + } + goto _77 + _77: + ; + iAddr1++ + } + } break /* ** PRAGMA busy_timeout @@ -115093,6 +116032,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** instructions to the VM. */ if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_NoColumns1) != 0 && zRight != 0 { } + goto pragma_out pragma_out: ; _sqlite3DbFree(tls, db, zLeft) @@ -115224,34 +116164,34 @@ var _encnames1 = [9]struct { Fenc Tu8 }{ 0: { - FzName: __ccgo_ts + 18466, + FzName: __ccgo_ts + 18553, Fenc: uint8(SQLITE_UTF8), }, 1: { - FzName: __ccgo_ts + 18471, + FzName: __ccgo_ts + 18558, Fenc: uint8(SQLITE_UTF8), }, 2: { - FzName: __ccgo_ts + 18477, + FzName: __ccgo_ts + 18564, Fenc: uint8(SQLITE_UTF16LE), }, 3: { - FzName: __ccgo_ts + 18486, + FzName: __ccgo_ts + 18573, Fenc: uint8(SQLITE_UTF16BE), }, 4: { - FzName: __ccgo_ts + 18495, + FzName: __ccgo_ts + 18582, Fenc: uint8(SQLITE_UTF16LE), }, 5: { - FzName: __ccgo_ts + 18503, + FzName: __ccgo_ts + 18590, Fenc: uint8(SQLITE_UTF16BE), }, 6: { - FzName: __ccgo_ts + 18511, + FzName: __ccgo_ts + 18598, }, 7: { - FzName: __ccgo_ts + 18518, + FzName: __ccgo_ts + 18605, }, 8: {}, } @@ -115347,14 +116287,14 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg _ = argc _ = argv _sqlite3StrAccumInit(tls, bp, uintptr(0), bp+32, int32(200), 0) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18575) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18662) i = 0 j = int32((*TPragmaName)(unsafe.Pointer(pPragma)).FiPragCName) for { if !(i < int32((*TPragmaName)(unsafe.Pointer(pPragma)).FnPragCName)) { break } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18590, libc.VaList(bp+240, int32(cSep), _pragCName[j])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18677, libc.VaList(bp+240, int32(cSep), _pragCName[j])) cSep = uint8(',') goto _1 _1: @@ -115363,19 +116303,19 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg j++ } if i == 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18597, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18684, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) i++ } j = 0 if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_Result1) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18603) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18690) j++ } if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&(libc.Int32FromInt32(PragFlg_SchemaOpt)|libc.Int32FromInt32(PragFlg_SchemaReq)) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18615) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18702) j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5108, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5172, int32(1)) _sqlite3StrAccumFinish(tls, bp) rc = Xsqlite3_declare_vtab(tls, db, bp+32) if rc == SQLITE_OK { @@ -115390,7 +116330,7 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg (*TPragmaVtab)(unsafe.Pointer(pTab)).FnHidden = uint8(j) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) } *(*uintptr)(unsafe.Pointer(ppVtab)) = pTab return rc @@ -115436,14 +116376,14 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) { break } - if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { goto _1 } if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fop) != int32(SQLITE_INDEX_CONSTRAINT_EQ) { goto _1 } - if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { - goto _1 + if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + return int32(SQLITE_CONSTRAINT) } j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn - int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) seen[j] = i + int32(1) @@ -115461,16 +116401,13 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 j = seen[0] - int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) - if seen[int32(1)] == 0 { - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(1000) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(1000) - return SQLITE_OK - } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(20) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(20) - j = seen[int32(1)] - int32(1) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + if seen[int32(1)] != 0 { + j = seen[int32(1)] - int32(1) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + } return SQLITE_OK } @@ -115498,6 +116435,7 @@ func _pragmaVtabCursorClear(tls *libc.TLS, pCsr uintptr) { _ = i Xsqlite3_finalize(tls, (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma) (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma = uintptr(0) + (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FiRowid = 0 i = 0 for { if !(i < int32(libc.Uint64FromInt64(16)/libc.Uint64FromInt64(8))) { @@ -115573,7 +116511,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr } zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if zText != 0 { - *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+40, zText)) + *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+40, zText)) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -115585,13 +116523,13 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr j++ } _sqlite3StrAccumInit(tls, bp, uintptr(0), uintptr(0), 0, *(*int32)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb + 136 + 1*4))) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18630) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18717) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18638, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18725, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) } Xsqlite3_str_appendall(tls, bp, (*TPragmaName)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).FpName)).FzName) if *(*uintptr)(unsafe.Pointer(pCsr + 24)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18642, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18729, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) } zSql = _sqlite3StrAccumFinish(tls, bp) if zSql == uintptr(0) { @@ -115600,7 +116538,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr rc = Xsqlite3_prepare_v2(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), pCsr+8, uintptr(0)) Xsqlite3_free(tls, zSql) if rc != SQLITE_OK { - (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) + (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) return rc } return _pragmaVtabNext(tls, pVtabCursor) @@ -115726,24 +116664,24 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) /* A error message has already been generated. Do not overwrite it */ } else { if (*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(libc.Int32FromInt32(INITFLAG_AlterMask)) != 0 { - *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18676, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) + *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18763, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) (*TInitData)(unsafe.Pointer(pData)).Frc = int32(SQLITE_ERROR) } else { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_WriteSchema) != 0 { - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140891)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141840)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) } else { - v1 = __ccgo_ts + 5110 + v1 = __ccgo_ts + 5174 } zObj = v1 - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18704, libc.VaList(bp+8, zObj)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18791, libc.VaList(bp+8, zObj)) if zExtra != 0 && *(*uint8)(unsafe.Pointer(zExtra)) != 0 { - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18735, libc.VaList(bp+8, z, zExtra)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18822, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140898)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141847)) } } } @@ -115751,9 +116689,9 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) } var _azAlterType = [3]uintptr{ - 0: __ccgo_ts + 18646, - 1: __ccgo_ts + 18653, - 2: __ccgo_ts + 18665, + 0: __ccgo_ts + 18733, + 1: __ccgo_ts + 18740, + 2: __ccgo_ts + 18752, } // C documentation @@ -115829,7 +116767,7 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(iDb) if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), db+192) == 0 || (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage && (*TInitData)(unsafe.Pointer(pData)).FmxPage > uint32(0) { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14518) + _corruptSchema(tls, pData, argv, __ccgo_ts+14611) } } libc.SetBitFieldPtr8Uint32(db+192+8, libc.Uint32FromInt32(0), 0, 0x1) @@ -115862,11 +116800,11 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr } else { pIndex = _sqlite3FindIndex(tls, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName) if pIndex == uintptr(0) { - _corruptSchema(tls, pData, argv, __ccgo_ts+18743) + _corruptSchema(tls, pData, argv, __ccgo_ts+18830) } else { if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), pIndex+88) == 0 || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum < uint32(2) || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage || _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14518) + _corruptSchema(tls, pData, argv, __ccgo_ts+14611) } } } @@ -115905,18 +116843,18 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** table name will be inserted automatically by the parser so we can just ** use the abbreviation "x" here. The parser will also automatically tag ** the schema table as read-only. */ - (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9060 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9185 if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6535 + v2 = __ccgo_ts + 6599 } else { - v2 = __ccgo_ts + 6068 + v2 = __ccgo_ts + 6132 } v1 = v2 zSchemaTabName = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(2)] = (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8132 - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18756 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8257 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18843 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(5)] = uintptr(0) (*(*TInitData)(unsafe.Pointer(bp + 72))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 72))).FiDb = iDb @@ -116005,7 +116943,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl } else { /* If opening an attached database, the encoding much match ENC(db) */ if (*(*[5]int32)(unsafe.Pointer(bp + 48)))[libc.Int32FromInt32(BTREE_TEXT_ENCODING)-libc.Int32FromInt32(1)]&int32(3) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12097) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12222) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -116031,7 +116969,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = uint8(1) } if int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) > int32(SQLITE_MAX_FILE_FORMAT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18828) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18915) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -116046,7 +116984,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl /* Read the schema information out of the schema tables */ (*(*TInitData)(unsafe.Pointer(bp + 72))).FmxPage = _sqlite3BtreeLastPage(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18852, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18939, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) rc = Xsqlite3_exec(tls, db, zSql, __ccgo_fp(_sqlite3InitCallback), bp+72, uintptr(0)) @@ -116083,12 +117021,14 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** curMain and calling sqlite3BtreeEnter(). For an error that occurs ** before that point, jump to error_out. */ + goto initone_error_out initone_error_out: ; if openedTransaction != 0 { _sqlite3BtreeCommit(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) } _sqlite3BtreeLeave(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) + goto error_out error_out: ; if rc != 0 { @@ -116343,7 +117283,12 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup - pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + if _sqlite3FaultSim(tls, int32(300)) != 0 { + pCleanup = uintptr(0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) + } else { + pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + } if pCleanup != 0 { (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup @@ -116374,7 +117319,7 @@ func _sqlite3ParseObjectInit(tls *libc.TLS, pParse uintptr, db uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FpParse = pParse (*TParse)(unsafe.Pointer(pParse)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1634, 0) } } @@ -116408,7 +117353,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } else { } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1634, 0) v1 = libc.Int32FromInt32(SQLITE_NOMEM) rc = v1 (*Tsqlite3)(unsafe.Pointer(db)).FerrCode = v1 @@ -116457,7 +117402,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep rc = _sqlite3BtreeSchemaLocked(tls, pBt) if rc != 0 { zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FzDbSName - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18886, libc.VaList(bp+432, zDb)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18973, libc.VaList(bp+432, zDb)) goto end_prepare } } @@ -116473,7 +117418,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep if nBytes >= 0 && (nBytes == 0 || int32(*(*uint8)(unsafe.Pointer(zSql + uintptr(nBytes-int32(1))))) != 0) { mxLen = *(*int32)(unsafe.Pointer(db + 136 + 1*4)) if nBytes > mxLen { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+18916, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+19003, 0) rc = _sqlite3ApiExit(tls, db, int32(SQLITE_TOOBIG)) goto end_prepare } @@ -116507,7 +117452,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } rc = (*(*TParse)(unsafe.Pointer(bp))).Frc if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3797, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3861, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) } else { _sqlite3Error(tls, db, rc) @@ -116523,6 +117468,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep (*(*TParse)(unsafe.Pointer(bp))).FpTriggerPrg = (*TTriggerPrg)(unsafe.Pointer(pT)).FpNext _sqlite3DbFree(tls, db, pT) } + goto end_prepare end_prepare: ; _sqlite3ParseObjectReset(tls, bp) @@ -116536,7 +117482,7 @@ func _sqlite3LockAndPrepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int3 cnt = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141699)) + return _sqlite3MisuseError(tls, int32(142654)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -116670,7 +117616,7 @@ func _sqlite3Prepare16(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, pr rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141848)) + return _sqlite3MisuseError(tls, int32(142803)) } if nBytes >= 0 { z = zSql @@ -117076,15 +118022,15 @@ func _sqlite3JoinType(tls *libc.TLS, pParse uintptr, pA uintptr, pB uintptr, pC i++ } if jointype&(libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER)) == libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER) || jointype&int32(JT_ERROR) != 0 || jointype&(libc.Int32FromInt32(JT_OUTER)|libc.Int32FromInt32(JT_LEFT)|libc.Int32FromInt32(JT_RIGHT)) == int32(JT_OUTER) { - zSp1 = __ccgo_ts + 11204 - zSp2 = __ccgo_ts + 11204 + zSp1 = __ccgo_ts + 11329 + zSp2 = __ccgo_ts + 11329 if pB == uintptr(0) { zSp1++ } if pC == uintptr(0) { zSp2++ } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18935, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19022, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) jointype = int32(JT_INNER) } return jointype @@ -117375,7 +118321,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { if int32((*TSrcItem)(unsafe.Pointer(pRight)).Ffg.Fjointype)&int32(JT_NATURAL) != 0 { pUsing = uintptr(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x400>>10)) != 0 || *(*uintptr)(unsafe.Pointer(pRight + 72)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18965, libc.VaList(bp+16, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19052, libc.VaList(bp+16, 0)) return int32(1) } j = 0 @@ -117425,7 +118371,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { zName1 = (*(*TIdList_item)(unsafe.Pointer(pList + 8 + uintptr(j)*16))).FzName iRightCol = _sqlite3ColumnIndex(tls, pRightTab, zName1) if iRightCol < 0 || _tableAndColumnIndex(tls, pSrc, 0, i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19015, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19102, libc.VaList(bp+16, zName1)) return int32(1) } pE1 = _sqlite3CreateColumnExpr(tls, db, pSrc, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) @@ -117447,7 +118393,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { pFuncArgs = uintptr(0) /* Arguments to the coalesce() */ for _tableAndColumnIndex(tls, pSrc, *(*int32)(unsafe.Pointer(bp))+int32(1), i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) != 0 { if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 60 + 4))&0x400>>10)) == 0 || _sqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 72)), zName1) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19079, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19166, libc.VaList(bp+16, zName1)) break } pFuncArgs = _sqlite3ExprListAppend(tls, pParse, pFuncArgs, pE1) @@ -117491,7 +118437,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { } var _tkCoalesce = TToken{ - Fz: __ccgo_ts + 6732, + Fz: __ccgo_ts + 6796, Fn: uint32(8), } @@ -118267,13 +119213,13 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { _ = z switch id { case int32(TK_ALL): - z = __ccgo_ts + 19116 + z = __ccgo_ts + 19203 case int32(TK_INTERSECT): - z = __ccgo_ts + 19126 + z = __ccgo_ts + 19213 case int32(TK_EXCEPT): - z = __ccgo_ts + 19136 + z = __ccgo_ts + 19223 default: - z = __ccgo_ts + 19143 + z = __ccgo_ts + 19230 break } return z @@ -118294,7 +119240,7 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { func _explainTempTable(tls *libc.TLS, pParse uintptr, zUsage uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19149, libc.VaList(bp+8, zUsage)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19236, libc.VaList(bp+8, zUsage)) } /* @@ -118328,12 +119274,17 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, iParm = (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm /* True if sorter record includes seq. no. */ nRefKey = 0 aOutEx = (*TSelect)(unsafe.Pointer(p)).FpEList + 8 - if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat > 0 { - v1 = __ccgo_ts + 19172 + nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat == 0 || nKey == int32(1) { + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat != 0 { + v1 = __ccgo_ts + 19259 + } else { + v1 = __ccgo_ts + 1664 + } + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19273, libc.VaList(bp+8, v1)) } else { - v1 = __ccgo_ts + 1650 + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19304, libc.VaList(bp+8, nKey)) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19187, libc.VaList(bp+8, v1)) if (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut != 0 { _sqlite3VdbeAddOp2(tls, v, int32(OP_Gosub), (*TSortCtx)(unsafe.Pointer(pSort)).FregReturn, (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut) _sqlite3VdbeGoto(tls, v, addrBreak) @@ -118355,7 +119306,6 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, regRow = _sqlite3GetTempRange(tls, pParse, nColumn) } } - nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat if int32((*TSortCtx)(unsafe.Pointer(pSort)).FsortFlags)&int32(SORTFLAG_UseSorter) != 0 { v3 = pParse + 56 *(*int32)(unsafe.Pointer(v3))++ @@ -118573,7 +119523,7 @@ func _columnTypeImpl(tls *libc.TLS, pNC uintptr, pExpr uintptr, pzOrigDb uintptr } if iCol < 0 { zType = __ccgo_ts + 1138 - *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16696 + *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16783 } else { *(*uintptr)(unsafe.Pointer(bp + 16)) = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, uintptr(0)) @@ -118719,13 +119669,13 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) iCol = int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) } if iCol < 0 { - zCol = __ccgo_ts + 16696 + zCol = __ccgo_ts + 16783 } else { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } if fullName != 0 { zName1 = uintptr(0) - zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12383, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) + zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12508, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zName1, __ccgo_fp(_sqlite3OomClear)) } else { _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zCol, uintptr(-libc.Int32FromInt32(1))) @@ -118733,7 +119683,7 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } else { z = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32))).FzEName if z == uintptr(0) { - v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19218, libc.VaList(bp+8, i+int32(1))) + v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19350, libc.VaList(bp+8, i+int32(1))) } else { v2 = _sqlite3DbStrDup(tls, db, z) } @@ -118825,7 +119775,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if iCol >= 0 { v3 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } else { - v3 = __ccgo_ts + 16696 + v3 = __ccgo_ts + 16783 } zName = v3 } else { @@ -118840,7 +119790,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if zName != 0 && !(_sqlite3IsTrueOrFalse(tls, zName) != 0) { zName = _sqlite3DbStrDup(tls, db, zName) } else { - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19218, libc.VaList(bp+40, i+int32(1))) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19350, libc.VaList(bp+40, i+int32(1))) } /* Make sure the column name is unique. If the name is not unique, ** append an integer to the name so that it becomes unique. @@ -118876,7 +119826,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, } *(*Tu32)(unsafe.Pointer(bp))++ v8 = *(*Tu32)(unsafe.Pointer(bp)) - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19227, libc.VaList(bp+40, nName, zName, v8)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19359, libc.VaList(bp+40, nName, zName, v8)) _sqlite3ProgressCheck(tls, pParse) if *(*Tu32)(unsafe.Pointer(bp)) > uint32(3) { Xsqlite3_randomness(tls, int32(4), bp) @@ -118936,9 +119886,9 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS defer tls.Free(64) var a, db, p, pCol, pColl, pS2, zType, p4, p5 uintptr var i, j, m int32 - var m1, n Ti64 + var k, n Ti64 var _ /* sNC at bp+0 */ TNameContext - _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, m, m1, n, p, pCol, pColl, pS2, zType, p4, p5 + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, k, m, n, p, pCol, pColl, pS2, zType, p4, p5 db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { return @@ -118955,17 +119905,22 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS if !(i < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } + m = 0 + pS2 = pSelect *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags) & libc.Int32FromInt32(COLFLAG_NOINSERT)) p = (*(*TExprList_item)(unsafe.Pointer(a + uintptr(i)*32))).FpExpr /* pCol->szEst = ... // Column size est for SELECT tables never used */ (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, p) + for int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) && (*TSelect)(unsafe.Pointer(pS2)).FpNext != uintptr(0) { + m |= _sqlite3ExprDataType(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext + (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + } if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) { (*TColumn)(unsafe.Pointer(pCol)).Faffinity = aff } - if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && (*TSelect)(unsafe.Pointer(pSelect)).FpNext != 0 { - m = 0 - m = 0 - pS2 = (*TSelect)(unsafe.Pointer(pSelect)).FpNext + if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && ((*TSelect)(unsafe.Pointer(pS2)).FpNext != 0 || pS2 != pSelect) { + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext for { if !(pS2 != 0) { break @@ -118990,7 +119945,7 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS zType = _columnTypeImpl(tls, bp, p, uintptr(0), uintptr(0), uintptr(0)) if zType == uintptr(0) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) != int32(_sqlite3AffinityType(tls, zType, uintptr(0))) { if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_NUMERIC) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_FLEXNUM) { - zType = __ccgo_ts + 19235 + zType = __ccgo_ts + 19367 } else { zType = uintptr(0) j = int32(1) @@ -119010,13 +119965,13 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS } } if zType != 0 { - m1 = int64(_sqlite3Strlen30(tls, zType)) + k = int64(_sqlite3Strlen30(tls, zType)) n = int64(_sqlite3Strlen30(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) - (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+m1+int64(2))) + (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+k+int64(2))) p4 = pCol + 14 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) & ^(libc.Int32FromInt32(COLFLAG_HASTYPE) | libc.Int32FromInt32(COLFLAG_HASCOLL))) if (*TColumn)(unsafe.Pointer(pCol)).FzCnName != 0 { - libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(m1+int64(1))) + libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(k+int64(1))) p5 = pCol + 14 *(*Tu16)(unsafe.Pointer(p5)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p5))) | libc.Int32FromInt32(COLFLAG_HASTYPE)) } @@ -119305,7 +120260,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest iDistinct = 0 /* To ensure unique results if UNION */ eDest = int32(SRT_Fifo) /* Registers used by LIMIT and OFFSET */ if (*TSelect)(unsafe.Pointer(p)).FpWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19239, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19371, 0) return } /* Obtain authorization to do a recursive query */ @@ -119398,7 +120353,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest break } if (*TSelect)(unsafe.Pointer(pFirstRec)).FselFlags&uint32(SF_Aggregate) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19288, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19420, 0) goto end_of_recursive_query } (*TSelect)(unsafe.Pointer(pFirstRec)).Fop = uint8(TK_ALL) @@ -119413,7 +120368,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest /* Store the results of the setup-query in Queue. */ pSetup = (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior (*TSelect)(unsafe.Pointer(pSetup)).FpNext = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19330, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19462, 0) rc = _sqlite3Select(tls, pParse, pSetup, bp) (*TSelect)(unsafe.Pointer(pSetup)).FpNext = p if rc != 0 { @@ -119441,12 +120396,13 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest ** the value for the recursive-table. Store the results in the Queue. */ (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19336, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19468, 0) _sqlite3Select(tls, pParse, p, bp) (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = pSetup /* Keep running the loop until the Queue is empty */ _sqlite3VdbeGoto(tls, v, addrTop) _sqlite3VdbeResolveLabel(tls, v, addrBreak) + goto end_of_recursive_query end_of_recursive_query: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSelect)(unsafe.Pointer(p)).FpOrderBy) @@ -119493,11 +120449,11 @@ func _multiSelectValues(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) nRow += bShowAll } if nRow == int32(1) { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } else { - v1 = __ccgo_ts + 19351 + v1 = __ccgo_ts + 19483 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19353, libc.VaList(bp+8, nRow, v1)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19485, libc.VaList(bp+8, nRow, v1)) for p != 0 { _selectInnerLoop(tls, pParse, p, -int32(1), uintptr(0), uintptr(0), pDest, int32(1), int32(1)) if !(bShowAll != 0) { @@ -119605,8 +120561,8 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in return _multiSelectOrderBy(tls, pParse, p, pDest) } else { if (*TSelect)(unsafe.Pointer(pPrior)).FpPrior == uintptr(0) { - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19376, 0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19391, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19508, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19523, 0) } /* Generate code for the left and right SELECT statements. */ @@ -119631,7 +120587,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in _sqlite3VdbeAddOp3(tls, v, int32(OP_OffsetLimit), (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TSelect)(unsafe.Pointer(p)).FiOffset+int32(1), (*TSelect)(unsafe.Pointer(p)).FiOffset) } } - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19116, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19203, 0) rc = _sqlite3Select(tls, pParse, p, bp) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -119683,7 +120639,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 48))).FeDest = op - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19410, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19542, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+48) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -119741,7 +120697,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit1 = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 88))).FiSDParm = tab2 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19410, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19542, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+88) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -119843,6 +120799,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in } _sqlite3KeyInfoUnref(tls, pKeyInfo) } + goto multi_select_end multi_select_end: ; (*TSelectDest)(unsafe.Pointer(pDest)).FiSdst = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst @@ -119863,9 +120820,9 @@ func _sqlite3SelectWrongNumTermsError(tls *libc.TLS, pParse uintptr, p uintptr) bp := tls.Alloc(16) defer tls.Free(16) if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Values) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19431, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19563, 0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19477, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19609, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) } } @@ -120234,8 +121191,8 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr (*TSelect)(unsafe.Pointer(pSplit)).FpPrior = uintptr(0) (*TSelect)(unsafe.Pointer(pPrior)).FpNext = uintptr(0) (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy = _sqlite3ExprListDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pOrderBy, 0) - _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7369) - _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7369) + _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7494) + _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7494) /* Compute the limit registers */ _computeLimitRegisters(tls, pParse, p, labelEnd) if (*TSelect)(unsafe.Pointer(p)).FiLimit != 0 && op == int32(TK_ALL) { @@ -120279,14 +121236,14 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr regOutB = v21 _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), regAddrA) _sqlite3SelectDestInit(tls, bp+40, int32(SRT_Coroutine), regAddrB) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19559, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19691, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) /* Generate a coroutine to evaluate the SELECT statement to the ** left of the compound operator - the "A" select. */ addrSelectA = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regAddrA, 0, addrSelectA) (*TSelect)(unsafe.Pointer(pPrior)).FiLimit = regLimitA - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19570, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19702, 0) _sqlite3Select(tls, pParse, pPrior, bp) _sqlite3VdbeEndCoroutine(tls, v, regAddrA) _sqlite3VdbeJumpHere(tls, v, addr1) @@ -120299,7 +121256,7 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr savedOffset = (*TSelect)(unsafe.Pointer(p)).FiOffset (*TSelect)(unsafe.Pointer(p)).FiLimit = regLimitB (*TSelect)(unsafe.Pointer(p)).FiOffset = 0 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19575, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19707, 0) _sqlite3Select(tls, pParse, p, bp+40) (*TSelect)(unsafe.Pointer(p)).FiLimit = savedLimit (*TSelect)(unsafe.Pointer(p)).FiOffset = savedOffset @@ -120514,7 +121471,7 @@ func _substExpr(tls *libc.TLS, pSubst uintptr, pExpr uintptr) (r uintptr) { if pColl != 0 { v1 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v1 = __ccgo_ts + 5088 + v1 = __ccgo_ts + 5152 } pExpr = _sqlite3ExprAddCollateString(tls, (*TSubstContext)(unsafe.Pointer(pSubst)).FpParse, pExpr, v1) } @@ -121550,10 +122507,10 @@ func _findConstInWhere(tls *libc.TLS, pConst uintptr, pExpr uintptr) { } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft - if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pLeft) != 0 { + if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pLeft) != 0 { _constInsert(tls, pConst, pRight, pLeft, pExpr) } - if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pRight) != 0 { + if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pRight) != 0 { _constInsert(tls, pConst, pLeft, pRight, pExpr) } } @@ -121786,6 +122743,18 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** The hope is that the terms added to the inner query will make it more // ** efficient. // ** +// ** NAME AMBIGUITY +// ** +// ** This optimization is called the "WHERE-clause push-down optimization". +// ** +// ** Do not confuse this optimization with another unrelated optimization +// ** with a similar name: The "MySQL push-down optimization" causes WHERE +// ** clause terms that can be evaluated using only the index and without +// ** reference to the table are run first, so that if they are false, +// ** unnecessary table seeks are avoided. +// ** +// ** RULES +// ** // ** Do not attempt this optimization if: // ** // ** (1) (** This restriction was removed on 2017-09-29. We used to @@ -121851,10 +122820,10 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** (9c) There is a RIGHT JOIN (or FULL JOIN) in between the ON/USING // ** clause and the subquery. // ** -// ** Without this restriction, the push-down optimization might move -// ** the ON/USING filter expression from the left side of a RIGHT JOIN -// ** over to the right side, which leads to incorrect answers. See -// ** also restriction (6) in sqlite3ExprIsSingleTableConstraint(). +// ** Without this restriction, the WHERE-clause push-down optimization +// ** might move the ON/USING filter expression from the left side of a +// ** RIGHT JOIN over to the right side, which leads to incorrect answers. +// ** See also restriction (6) in sqlite3ExprIsSingleTableConstraint(). // ** // ** (10) The inner query is not the right-hand table of a RIGHT JOIN. // ** @@ -121947,7 +122916,7 @@ func _pushDownWhereTerms(tls *libc.TLS, pParse uintptr, pSubq uintptr, pWhere ui nChng += _pushDownWhereTerms(tls, pParse, pSubq, (*TExpr)(unsafe.Pointer(pWhere)).FpRight, pSrcList, iSrc) pWhere = (*TExpr)(unsafe.Pointer(pWhere)).FpLeft } - if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc) != 0 { + if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc, int32(1)) != 0 { nChng++ *(*Tu32)(unsafe.Pointer(pSubq + 4)) |= uint32(SF_PushDown) for pSubq != 0 { @@ -122117,13 +123086,13 @@ func _minMaxQuery(tls *libc.TLS, db uintptr, pFunc uintptr, ppMinMax uintptr) (r return uint8(eRet) } zFunc = *(*uintptr)(unsafe.Pointer(pFunc + 8)) - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15552) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15645) == 0 { eRet = int32(WHERE_ORDERBY_MIN) if _sqlite3ExprCanBeNull(tls, (*(*TExprList_item)(unsafe.Pointer(pEList + 8))).FpExpr) != 0 { sortFlags = uint8(KEYINFO_ORDER_BIGNULL) } } else { - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15556) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15649) == 0 { eRet = int32(WHERE_ORDERBY_MAX) sortFlags = uint8(KEYINFO_ORDER_DESC) } else { @@ -122211,7 +123180,7 @@ func _sqlite3IndexedByLookup(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r in pIdx = (*TIndex)(unsafe.Pointer(pIdx)).FpNext } if !(pIdx != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19581, libc.VaList(bp+8, zIndexedBy, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19713, libc.VaList(bp+8, zIndexedBy, 0)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) return int32(SQLITE_ERROR) } @@ -122335,7 +123304,7 @@ func _cannotBeFunction(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x4>>2)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19599, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19731, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) return int32(1) } return 0 @@ -122510,7 +123479,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } *(*Tu32)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect + 4)) |= uint32(SF_CopyCte) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x2>>1)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19622, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19754, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) return int32(2) } libc.SetBitFieldPtr16Uint32(pFrom+60+4, libc.Uint32FromInt32(1), 8, 0x100) @@ -122534,7 +123503,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ libc.SetBitFieldPtr16Uint32(pItem+60+4, libc.Uint32FromInt32(1), 6, 0x40) if (*TSelect)(unsafe.Pointer(pRecTerm)).FselFlags&uint32(SF_Recursive) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19642, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19774, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) return int32(2) } *(*Tu32)(unsafe.Pointer(pRecTerm + 4)) |= uint32(SF_Recursive) @@ -122556,7 +123525,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } pRecTerm = (*TSelect)(unsafe.Pointer(pRecTerm)).FpPrior } - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19685 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19817 pSavedWith = (*TParse)(unsafe.Pointer(pParse)).FpWith (*TParse)(unsafe.Pointer(pParse)).FpWith = *(*uintptr)(unsafe.Pointer(bp)) if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { @@ -122587,7 +123556,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom pEList = (*TSelect)(unsafe.Pointer(pLeft)).FpEList if (*TCte)(unsafe.Pointer(pCte)).FpCols != 0 { if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr != (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19708, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19840, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) (*TParse)(unsafe.Pointer(pParse)).FpWith = pSavedWith return int32(2) } @@ -122596,9 +123565,9 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom _sqlite3ColumnsFromExprList(tls, pParse, pEList, pTab+54, pTab+8) if bMayRecursive != 0 { if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19746 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19878 } else { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19780 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19912 } _sqlite3WalkSelect(tls, pWalker, pSel) } @@ -122657,7 +123626,7 @@ func _sqlite3ExpandSubquery(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int if (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias != 0 { (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3DbStrDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias) } else { - (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19818, libc.VaList(bp+8, pFrom)) + (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19950, libc.VaList(bp+8, pFrom)) } for (*TSelect)(unsafe.Pointer(pSel)).FpPrior != 0 { pSel = (*TSelect)(unsafe.Pointer(pSel)).FpPrior @@ -122813,7 +123782,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { return int32(WRC_Abort) } if (*TTable)(unsafe.Pointer(pTab)).FnTabRef >= uint32(0xffff) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19822, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19954, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) (*TSrcItem)(unsafe.Pointer(pFrom)).FpTab = uintptr(0) return int32(WRC_Abort) } @@ -122828,7 +123797,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_EnableView) == uint64(0) && (*TTable)(unsafe.Pointer(pTab)).FpSchema != (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19861, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19993, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } (*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect = _sqlite3SelectDup(tls, db, (*(*struct { FpSelect uintptr @@ -122843,7 +123812,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).Fp)).FeVtabRisk) > libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15111, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15204, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } } nCol = (*TTable)(unsafe.Pointer(pTab)).FnCol @@ -122965,7 +123934,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if iDb >= 0 { v10 = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName } else { - v10 = __ccgo_ts + 6592 + v10 = __ccgo_ts + 6656 } zSchemaName = v10 } @@ -122982,7 +123951,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { pNew = _sqlite3ExprListAppend(tls, pParse, pNew, pRight) if pNew != 0 { pX = pNew + 8 + uintptr((*TExprList)(unsafe.Pointer(pNew)).FnExpr-int32(1))*32 - (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19892, libc.VaList(bp+8, zUName)) + (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20024, libc.VaList(bp+8, zUName)) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(ENAME_TAB), 0, 0x3) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(1), 7, 0x80) } @@ -123061,7 +124030,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if pNestedFrom != 0 && libc.Bool(libc.Bool(!(libc.Int32FromInt32(ViewCanHaveRowid) != 0)) || j < (*TExprList)(unsafe.Pointer(pNestedFrom)).FnExpr) { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, (*(*TExprList_item)(unsafe.Pointer(pNestedFrom + 8 + uintptr(j)*32))).FzEName) } else { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19897, libc.VaList(bp+8, zSchemaName, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20029, libc.VaList(bp+8, zSchemaName, zTabName, zName)) } if j == int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) { v13 = int32(ENAME_ROWID) @@ -123074,7 +124043,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } } else { if longNames != 0 { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12383, libc.VaList(bp+8, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12508, libc.VaList(bp+8, zTabName, zName)) libc.SetBitFieldPtr16Uint32(pX1+16+4, libc.Uint32FromInt32(ENAME_NAME), 0, 0x3) } else { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, zName) @@ -123094,9 +124063,9 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if !(tableSeen != 0) { if zTName != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19906, libc.VaList(bp+8, zTName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20038, libc.VaList(bp+8, zTName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19924, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20056, 0) } } } @@ -123110,7 +124079,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if (*TSelect)(unsafe.Pointer(p)).FpEList != 0 { if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpEList)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19944, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20076, 0) return int32(WRC_Abort) } if elistFlags&uint32(libc.Int32FromInt32(EP_HasFunc)|libc.Int32FromInt32(EP_Subquery)) != uint32(0) { @@ -123451,12 +124420,12 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct >= 0 { pE = (*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFExpr if *(*uintptr)(unsafe.Pointer(pE + 32)) == uintptr(0) || (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pE + 32)))).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19975, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20107, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct = -int32(1) } else { pKeyInfo = _sqlite3KeyInfoFromExprList(tls, pParse, *(*uintptr)(unsafe.Pointer(pE + 32)), 0, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistAddr = _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct, 0, 0, pKeyInfo, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20026, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20158, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } } if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab >= 0 { @@ -123477,7 +124446,7 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { (*TKeyInfo)(unsafe.Pointer(pKeyInfo1)).FnKeyField++ } _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab, (*TExprList)(unsafe.Pointer(pOBList)).FnExpr+nExtra, 0, pKeyInfo1, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20059, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20191, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } goto _1 _1: @@ -123782,16 +124751,16 @@ func _explainSimpleCount(tls *libc.TLS, pParse uintptr, pTab uintptr, pIdx uintp if int32((*TParse)(unsafe.Pointer(pParse)).Fexplain) == int32(2) { bCover = libc.BoolInt32(pIdx != uintptr(0) && ((*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) || !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == libc.Int32FromInt32(SQLITE_IDXTYPE_PRIMARYKEY)))) if bCover != 0 { - v1 = __ccgo_ts + 20092 + v1 = __ccgo_ts + 20224 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } if bCover != 0 { v2 = (*TIndex)(unsafe.Pointer(pIdx)).FzName } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20115, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20247, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) } } @@ -123823,7 +124792,7 @@ func _havingToWhereExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 ** statements AggInfo structure. */ if _sqlite3ExprIsConstantOrGroupBy(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, pExpr, (*TSelect)(unsafe.Pointer(pS)).FpGroupBy) != 0 && libc.BoolInt32((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse)) == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb - pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8132) + pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8257) if pNew != 0 { pWhere = (*TSelect)(unsafe.Pointer(pS)).FpWhere t = *(*TExpr)(unsafe.Pointer(pNew)) @@ -123979,7 +124948,7 @@ func _countOfViewOptimization(tls *libc.TLS, pParse uintptr, p uintptr) (r int32 if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { return 0 } /* Result is an aggregate */ - if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15846) != 0 { + if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15939) != 0 { return 0 } /* Is count() */ if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != uintptr(0) { @@ -124242,7 +125211,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { v1 = (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p0)).FpTab)).FzName } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20127, libc.VaList(bp+176, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20259, libc.VaList(bp+176, v1)) goto select_end } /* Clear the SF_UFSrcCheck flag. The check has already been performed, @@ -124343,7 +125312,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Catch mismatch in the declared columns of a view and the number of ** columns in the SELECT on the RHS */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) != (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20181, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20313, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) goto select_end } /* Do not attempt the usual optimizations (flattening and ORDER BY @@ -124480,12 +125449,12 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r ** string for the fake column name seems safer. */ if (*TSrcItem)(unsafe.Pointer(pItem1)).FcolUsed == uint64(0) && (*TSrcItem)(unsafe.Pointer(pItem1)).FzName != uintptr(0) { - _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1650, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) + _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1664, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) } /* Generate code for all sub-queries in the FROM clause */ pSub1 = (*TSrcItem)(unsafe.Pointer(pItem1)).FpSelect - if pSub1 == uintptr(0) { + if pSub1 == uintptr(0) || (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub != 0 { goto _10 } /* The code for a subquery should only be generated once. */ @@ -124524,7 +125493,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn, 0, addrTop) (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub = addrTop _sqlite3SelectDestInit(tls, bp+72, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20221, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20353, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow libc.SetBitFieldPtr16Uint32(pItem1+60+4, libc.Uint32FromInt32(1), 5, 0x20) @@ -124572,7 +125541,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { } _sqlite3SelectDestInit(tls, bp+72, int32(SRT_EphemTab), (*TSrcItem)(unsafe.Pointer(pItem1)).FiCursor) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20236, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20368, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow if onceAddr != 0 { @@ -124982,11 +125951,11 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r groupBySort = 0 } else { if (*(*TDistinctCtx)(unsafe.Pointer(bp))).FisTnct != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Distinct) == uint32(0) { - v44 = __ccgo_ts + 20252 + v44 = __ccgo_ts + 20384 } else { - v44 = __ccgo_ts + 20261 + v44 = __ccgo_ts + 20393 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19149, libc.VaList(bp+176, v44)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19236, libc.VaList(bp+176, v44)) groupBySort = int32(1) nGroupBy = (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr nCol = nGroupBy @@ -125305,7 +126274,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeResolveLabel(tls, v, addrEnd) } /* endif aggregate query */ if int32((*(*TDistinctCtx)(unsafe.Pointer(bp))).FeTnctType) == int32(WHERE_DISTINCT_UNORDERED) { - _explainTempTable(tls, pParse, __ccgo_ts+20252) + _explainTempTable(tls, pParse, __ccgo_ts+20384) } /* If there is an ORDER BY clause, then we need to sort the results ** and send them to the callback one by one. @@ -125322,6 +126291,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Control jumps to here if an error is encountered above, or upon ** successful coding of the SELECT. */ + goto select_end select_end: ; _sqlite3ExprListDelete(tls, db, *(*uintptr)(unsafe.Pointer(bp + 64))) @@ -125410,7 +126380,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr if !(i < nCol) { break } - z = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) + z = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) if z == uintptr(0) { goto malloc_failed } @@ -125426,7 +126396,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr } else { if int32((*TTabResult)(unsafe.Pointer(p)).FnColumn) != nCol { Xsqlite3_free(tls, (*TTabResult)(unsafe.Pointer(p)).FzErrMsg) - (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20270, 0) + (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20402, 0) (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) return int32(1) } @@ -125461,6 +126431,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr (*TTabResult)(unsafe.Pointer(p)).FnRow++ } return 0 + goto malloc_failed malloc_failed: ; (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) @@ -125515,7 +126486,7 @@ func Xsqlite3_get_table(tls *libc.TLS, db uintptr, zSql uintptr, pazResult uintp if (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg != 0 { if pzErrMsg != 0 { Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pzErrMsg))) - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) } Xsqlite3_free(tls, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg) } @@ -125677,7 +126648,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if isTemp != 0 { /* If TEMP was specified, then the trigger name may not be qualified. */ if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20335, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20467, 0) goto trigger_cleanup } iDb = int32(1) @@ -125717,7 +126688,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto trigger_cleanup } - _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20381, *(*uintptr)(unsafe.Pointer(bp))) + _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20513, *(*uintptr)(unsafe.Pointer(bp))) if _sqlite3FixSrcList(tls, bp+8, pTableName) != 0 { goto trigger_cleanup } @@ -125727,11 +126698,11 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_orphan_error } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20389, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20521, 0) goto trigger_orphan_error } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, db) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20430, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20562, 0) goto trigger_orphan_error } /* Check that the trigger name is not reserved and that no trigger of the @@ -125740,13 +126711,13 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if zName == uintptr(0) { goto trigger_cleanup } - if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20381, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { + if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20513, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { goto trigger_cleanup } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema+56, zName) != 0 { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20470, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20602, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) } @@ -125754,8 +126725,8 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 } } /* Do not create a trigger on a system table */ - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6527, int32(7)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20496, 0) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6591, int32(7)) == 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20628, 0) goto trigger_cleanup } /* INSTEAD of triggers are only for views and views only support INSTEAD @@ -125763,15 +126734,15 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && tr_tm != int32(TK_INSTEAD) { if tr_tm == int32(TK_BEFORE) { - v1 = __ccgo_ts + 20534 + v1 = __ccgo_ts + 20666 } else { - v1 = __ccgo_ts + 20541 + v1 = __ccgo_ts + 20673 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20547, libc.VaList(bp+112, v1, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20679, libc.VaList(bp+112, v1, pTableName+8)) goto trigger_orphan_error } if !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) && tr_tm == int32(TK_INSTEAD) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20584, libc.VaList(bp+112, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20716, libc.VaList(bp+112, pTableName+8)) goto trigger_orphan_error } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -125791,9 +126762,9 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iTabDb == int32(1) { - v3 = __ccgo_ts + 6535 + v3 = __ccgo_ts + 6599 } else { - v3 = __ccgo_ts + 6068 + v3 = __ccgo_ts + 6132 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto trigger_cleanup @@ -125834,6 +126805,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 (*TTrigger)(unsafe.Pointer(pTrigger)).FpColumns = pColumns pColumns = uintptr(0) (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger = pTrigger + goto trigger_cleanup trigger_cleanup: ; _sqlite3DbFree(tls, db, zName) @@ -125845,6 +126817,7 @@ trigger_cleanup: } else { } return + goto trigger_orphan_error trigger_orphan_error: ; if int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) == int32(1) { @@ -125891,7 +126864,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl pStepList = (*TTriggerStep)(unsafe.Pointer(pStepList)).FpNext } _sqlite3TokenInit(tls, bp+96, (*TTrigger)(unsafe.Pointer(pTrig)).FzName) - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20381, bp+96) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20513, bp+96) if _sqlite3FixTriggerStep(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).Fstep_list) != 0 || _sqlite3FixExpr(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).FpWhen) != 0 { goto triggerfinish_cleanup } @@ -125913,7 +126886,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl break } if (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget != uintptr(0) && _sqlite3ShadowTableName(tls, db, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20630, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20762, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) goto triggerfinish_cleanup } goto _1 @@ -125929,10 +126902,10 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) z = _sqlite3DbStrNDup(tls, db, (*TToken)(unsafe.Pointer(pAll)).Fz, uint64((*TToken)(unsafe.Pointer(pAll)).Fn)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20678, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20810, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) _sqlite3DbFree(tls, db, z) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20753, libc.VaList(bp+120, zName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20885, libc.VaList(bp+120, zName)), uint16(0)) } } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { @@ -125949,6 +126922,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } } } + goto triggerfinish_cleanup triggerfinish_cleanup: ; _sqlite3DeleteTrigger(tls, db, pTrig) @@ -126199,7 +127173,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int } if !(pTrigger != 0) { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20782, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20914, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, zDb) } @@ -126207,6 +127181,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int goto drop_trigger_cleanup } _sqlite3DropTriggerPtr(tls, pParse, pTrigger) + goto drop_trigger_cleanup drop_trigger_cleanup: ; _sqlite3SrcListDelete(tls, db, pName) @@ -126240,9 +127215,9 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { code = int32(SQLITE_DROP_TRIGGER) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6535 + v1 = __ccgo_ts + 6599 } else { - v1 = __ccgo_ts + 6068 + v1 = __ccgo_ts + 6132 } zTab = v1 if iDb == int32(1) { @@ -126257,7 +127232,7 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { v2 = _sqlite3GetVdbe(tls, pParse) v = v2 if v2 != uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20802, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20934, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropTrigger), iDb, 0, 0, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName, 0) } @@ -126390,11 +127365,11 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { if op != int32(TK_INSERT) { if op == int32(TK_DELETE) { - v1 = __ccgo_ts + 20864 + v1 = __ccgo_ts + 20996 } else { - v1 = __ccgo_ts + 20871 + v1 = __ccgo_ts + 21003 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20878, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21010, libc.VaList(bp+8, v1)) } (*TTrigger)(unsafe.Pointer(p)).Ftr_tm = uint8(TRIGGER_BEFORE) } else { @@ -126411,6 +127386,7 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, p = (*TTrigger)(unsafe.Pointer(p)).FpNext } } + goto exit_triggers_exist exit_triggers_exist: ; if pMask != 0 { @@ -126494,7 +127470,7 @@ func _isAsteriskTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pTerm)).FpRight)).Fop) != int32(TK_ASTERISK) { return 0 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20926, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21058, 0) return int32(1) } @@ -126559,6 +127535,79 @@ func _sqlite3ExpandReturning(tls *libc.TLS, pParse uintptr, pList uintptr, pTab return pNew } +// C documentation +// +// /* If the Expr node is a subquery or an EXISTS operator or an IN operator that +// ** uses a subquery, and if the subquery is SF_Correlated, then mark the +// ** expression as EP_VarSelect. +// */ +func _sqlite3ReturningSubqueryVarSelect(tls *libc.TLS, NotUsed uintptr, pExpr uintptr) (r int32) { + _ = NotUsed + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) && (*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FselFlags&uint32(SF_Correlated) != uint32(0) { + *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** If the SELECT references the table pWalker->u.pTab, then do two things: +// ** +// ** (1) Mark the SELECT as as SF_Correlated. +// ** (2) Set pWalker->eCode to non-zero so that the caller will know +// ** that (1) has happened. +// */ +func _sqlite3ReturningSubqueryCorrelated(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + var i int32 + var pSrc uintptr + _, _ = i, pSrc + pSrc = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + i = 0 + for { + if !(i < (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) { + break + } + if (*(*TSrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104))).FpTab == *(*uintptr)(unsafe.Pointer(pWalker + 40)) { + *(*Tu32)(unsafe.Pointer(pSelect + 4)) |= uint32(SF_Correlated) + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + break + } + goto _1 + _1: + ; + i++ + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Scan the expression list that is the argument to RETURNING looking +// ** for subqueries that depend on the table which is being modified in the +// ** statement that is hosting the RETURNING clause (pTab). Mark all such +// ** subqueries as SF_Correlated. If the subqueries are part of an +// ** expression, mark the expression as EP_VarSelect. +// ** +// ** https://sqlite.org/forum/forumpost/2c83569ce8945d39 +// */ +func _sqlite3ProcessReturningSubqueries(tls *libc.TLS, pEList uintptr, pTab uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ExprWalkNoop) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3ReturningSubqueryCorrelated) + *(*uintptr)(unsafe.Pointer(bp + 40)) = pTab + _sqlite3WalkExprList(tls, bp, pEList) + if (*(*TWalker)(unsafe.Pointer(bp))).FeCode != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ReturningSubqueryVarSelect) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) + _sqlite3WalkExprList(tls, bp, pEList) + } +} + // C documentation // // /* @@ -126593,6 +127642,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab (*(*TSelect)(unsafe.Pointer(bp))).FpSrc = bp + 128 (*(*TSrcList)(unsafe.Pointer(bp + 128))).FnSrc = int32(1) (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FpTab = pTab + (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FzName = (*TTable)(unsafe.Pointer(pTab)).FzName /* tag-20240424-1 */ (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FiCursor = -int32(1) _sqlite3SelectPrep(tls, pParse, bp, uintptr(0)) if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { @@ -126617,6 +127667,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab if _sqlite3ResolveExprListNames(tls, bp+240, pNew) == SQLITE_OK && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) { nCol = (*TExprList)(unsafe.Pointer(pNew)).FnExpr reg = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(1) + _sqlite3ProcessReturningSubqueries(tls, pNew, pTab) *(*int32)(unsafe.Pointer(pParse + 56)) += nCol + int32(2) (*TReturning)(unsafe.Pointer(pReturning)).FiRetReg = reg i = 0 @@ -126685,7 +127736,7 @@ func _codeTriggerProgram(tls *libc.TLS, pParse uintptr, pStepList uintptr, orcon } (*TParse)(unsafe.Pointer(pParse)).FeOrconf = uint8(v2) if (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6265, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6329, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) } switch int32((*TTriggerStep)(unsafe.Pointer(pStep)).Fop) { case int32(TK_UPDATE): @@ -126787,7 +127838,7 @@ func _codeRowTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab uintp v = _sqlite3GetVdbe(tls, bp+56) if v != 0 { if (*TTrigger)(unsafe.Pointer(pTrigger)).FzName != 0 { - _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+20968, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) + _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+21100, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) } /* If one was specified, code the WHEN clause. If it evaluates to false ** (or NULL) the sub-vdbe is immediately halted by jumping to the @@ -127476,7 +128527,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui chngPk = uint8(1) } else { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20982, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21114, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto update_cleanup } } @@ -127496,13 +128547,13 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui pRowidExpr = (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FpExpr iRowidExpr = i } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21018, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21150, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto update_cleanup } } if j < 0 { - v11 = __ccgo_ts + 7907 + v11 = __ccgo_ts + 8032 } else { v11 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName } @@ -128184,8 +129235,9 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui ** that information. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21037) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21169) } + goto update_cleanup update_cleanup: ; _sqlite3AuthContextPop(tls, bp) @@ -128617,9 +129669,9 @@ func _sqlite3UpsertAnalyzeTarget(tls *libc.TLS, pParse uintptr, pTabList uintptr if nClause == 0 && (*TUpsert)(unsafe.Pointer(pUpsert)).FpNextUpsert == uintptr(0) { (*(*[16]uint8)(unsafe.Pointer(bp + 200)))[0] = uint8(0) } else { - Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21050, libc.VaList(bp+224, nClause+int32(1))) + Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21182, libc.VaList(bp+224, nClause+int32(1))) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21054, libc.VaList(bp+224, bp+200)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21186, libc.VaList(bp+224, bp+200)) return int32(SQLITE_ERROR) } goto _1 @@ -128722,7 +129774,7 @@ func _sqlite3UpsertDoUpdate(tls *libc.TLS, pParse uintptr, pUpsert uintptr, pTab i++ } i = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), iDataCur, 0, iPk, nPk) - _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12472, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12597, -int32(1)) _sqlite3MayAbort(tls, pParse) _sqlite3VdbeJumpHere(tls, v, i) } @@ -128804,7 +129856,7 @@ func _execSql(tls *libc.TLS, db uintptr, pzErrMsg uintptr, zSql uintptr) (r int3 ** corrupt the sqlite_schema.sql field with other kinds of statements ** then run VACUUM to get those statements to execute at inappropriate ** times. */ - if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21127, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21131, uint64(3)) == 0) { + if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21259, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21263, uint64(3)) == 0) { rc = _execSql(tls, db, pzErrMsg, zSubSql) if rc != SQLITE_OK { break @@ -128904,6 +129956,7 @@ func _sqlite3Vacuum(tls *libc.TLS, pParse uintptr, _pNm uintptr, pInto uintptr) _sqlite3VdbeAddOp2(tls, v, int32(OP_Vacuum), iDb, iIntoReg) _sqlite3VdbeUsesBtree(tls, v, iDb) } + goto build_vacuum_end build_vacuum_end: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pInto) @@ -128931,24 +129984,24 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p pDb = uintptr(0) /* Name of output file */ pgflags = uint32(PAGER_SYNCHRONOUS_OFF) /* sync flags for output db */ if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21135) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21267) return int32(SQLITE_ERROR) /* IMP: R-12218-18073 */ } if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive > int32(1) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21175) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21307) return int32(SQLITE_ERROR) /* IMP: R-15610-35227 */ } saved_openFlags = (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags if pOut != 0 { if Xsqlite3_value_type(tls, pOut) != int32(SQLITE_TEXT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21218) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21350) return int32(SQLITE_ERROR) } zOut = Xsqlite3_value_text(tls, pOut) *(*uint32)(unsafe.Pointer(db + 76)) &= uint32(^libc.Int32FromInt32(SQLITE_OPEN_READONLY)) *(*uint32)(unsafe.Pointer(db + 76)) |= uint32(libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE)) } else { - zOut = __ccgo_ts + 1650 + zOut = __ccgo_ts + 1664 } /* Save the current value of the database flags so that it can be ** restored before returning. Then set the writable-schema flag, and @@ -128980,7 +130033,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** to write the journal header file. */ nDb = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21236, libc.VaList(bp+24, zOut)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21368, libc.VaList(bp+24, zOut)) (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags = saved_openFlags if rc != SQLITE_OK { goto end_of_vacuum @@ -128992,7 +130045,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p *(*Ti64)(unsafe.Pointer(bp)) = 0 if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != uintptr(0) && (_sqlite3OsFileSize(tls, id, bp) != SQLITE_OK || *(*Ti64)(unsafe.Pointer(bp)) > 0) { rc = int32(SQLITE_ERROR) - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21259) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21391) goto end_of_vacuum } *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_VacuumInto) @@ -129009,7 +130062,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** file. This is done before the sqlite3BtreeGetPageSize(pMain) call below, ** to ensure that we do not try to change the page-size on a WAL database. */ - rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14881) + rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14974) if rc != SQLITE_OK { goto end_of_vacuum } @@ -129040,11 +130093,11 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** in the temporary database. */ (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(nDb) /* force new CREATE statements into vacuum_db */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21286, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21418, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21394, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21526, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } @@ -129053,7 +130106,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** an "INSERT INTO vacuum_db.xxx SELECT * FROM main.xxx;" to copy ** the contents to the temporary database. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21448, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21580, libc.VaList(bp+24, zDbMain)) *(*Tu32)(unsafe.Pointer(db + 44)) &= uint32(^libc.Int32FromInt32(DBFLAG_Vacuum)) if rc != SQLITE_OK { goto end_of_vacuum @@ -129063,7 +130116,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** associated storage, so all we have to do is copy their entries ** from the schema table. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21599, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21731, libc.VaList(bp+24, zDbMain)) if rc != 0 { goto end_of_vacuum } @@ -129102,6 +130155,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p nRes = _sqlite3BtreeGetRequestedReserve(tls, pTemp) rc = _sqlite3BtreeSetPageSize(tls, pMain, _sqlite3BtreeGetPageSize(tls, pTemp), nRes, int32(1)) } + goto end_of_vacuum end_of_vacuum: ; /* Restore the original value of db->flags */ @@ -129589,7 +130643,7 @@ func _addModuleArgument(tls *libc.TLS, pParse uintptr, pTable uintptr, zArg uint FazArg uintptr Fp uintptr })(unsafe.Pointer(pTable + 64))).FnArg+int32(3) >= *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12702, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12827, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) } azModuleArg = _sqlite3DbRealloc(tls, db, (*(*struct { FnArg int32 @@ -129712,7 +130766,7 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { if pEnd != 0 { (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fn = uint32(int32(int64((*TToken)(unsafe.Pointer(pEnd)).Fz)-int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz))) + (*TToken)(unsafe.Pointer(pEnd)).Fn } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21729, libc.VaList(bp+8, pParse+272)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21861, libc.VaList(bp+8, pParse+272)) /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. @@ -129722,11 +130776,11 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { ** by sqlite3StartTable(). */ iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+21753, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+21885, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) v = _sqlite3GetVdbe(tls, pParse) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) - zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21852, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) + zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21984, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, zWhere, uint16(0)) _sqlite3DbFree(tls, db, zStmt) v2 = pParse + 56 @@ -129813,7 +130867,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, break } if (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab == pTab { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21871, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22003, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(SQLITE_LOCKED) } goto _1 @@ -129855,9 +130909,9 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, } if SQLITE_OK != rc { if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21913, libc.VaList(bp+48, zModuleName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22045, libc.VaList(bp+48, zModuleName)) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3797, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3861, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) } _sqlite3DbFree(tls, db, pVTable) @@ -129870,8 +130924,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*TModule)(unsafe.Pointer(pMod)).FnRefModule++ (*TVTable)(unsafe.Pointer(pVTable)).FnRef = int32(1) if (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared == 0 { - zFormat = __ccgo_ts + 21943 - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + zFormat = __ccgo_ts + 22075 + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, zModuleName)) _sqlite3VtabUnlock(tls, pVTable) rc = int32(SQLITE_ERROR) } else { @@ -129896,7 +130950,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(iCol < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } - zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1650) + zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1664) i = 0 nType = _sqlite3Strlen30(tls, zType) i = 0 @@ -129904,7 +130958,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(i < nType) { break } - if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16587, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { + if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16674, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { break } goto _3 @@ -129985,13 +131039,13 @@ func _sqlite3VtabCallConnect(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).FazArg)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21989, libc.VaList(bp+16, zModule)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22121, libc.VaList(bp+16, zModule)) rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxConnect, bp) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3797, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3861, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) (*TParse)(unsafe.Pointer(pParse)).Frc = rc } _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) @@ -130072,7 +131126,7 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, ** error. Otherwise, do nothing. */ if pMod == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxDestroy == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21989, libc.VaList(bp+8, zMod)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22121, libc.VaList(bp+8, zMod)) rc = int32(SQLITE_ERROR) } else { rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate, pzErr) @@ -130098,18 +131152,42 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r int32) { bp := tls.Alloc(448) defer tls.Free(448) - var initBusy, rc int32 - var pCtx, pIdx, pNew, pTab, v2 uintptr - var v1 Ti16 + var i, initBusy, rc int32 + var pCtx, pIdx, pNew, pTab, z, v3 uintptr + var v2 Ti16 var _ /* sParse at bp+0 */ TParse - _, _, _, _, _, _, _, _ = initBusy, pCtx, pIdx, pNew, pTab, rc, v1, v2 + var _ /* tokenType at bp+424 */ int32 + _, _, _, _, _, _, _, _, _, _ = i, initBusy, pCtx, pIdx, pNew, pTab, rc, z, v2, v3 rc = SQLITE_OK + /* Verify that the first two keywords in the CREATE TABLE statement + ** really are "CREATE" and "TABLE". If this is not the case, then + ** sqlite3_declare_vtab() is being misused. + */ + z = zCreateTable + i = 0 + for { + if !(_aKeyword1[i] != 0) { + break + } + *(*int32)(unsafe.Pointer(bp + 424)) = 0 + for cond := true; cond; cond = *(*int32)(unsafe.Pointer(bp + 424)) == int32(TK_SPACE) { + z += uintptr(_sqlite3GetToken(tls, z, bp+424)) + } + if *(*int32)(unsafe.Pointer(bp + 424)) != int32(_aKeyword1[i]) { + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+22140, 0) + return int32(SQLITE_ERROR) + } + goto _1 + _1: + ; + i++ + } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pCtx = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(pCtx != 0) || (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared != 0 { - _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(155155))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(156227))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(155157)) + return _sqlite3MisuseError(tls, int32(156229)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -130121,7 +131199,7 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i initBusy = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) (*(*TParse)(unsafe.Pointer(bp))).FnQueryLoop = int16(1) - if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) && (*(*TParse)(unsafe.Pointer(bp))).FpNewTable != uintptr(0) && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && int32((*TTable)(unsafe.Pointer((*(*TParse)(unsafe.Pointer(bp))).FpNewTable)).FeTabType) == TABTYP_NORM { + if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) { if !((*TTable)(unsafe.Pointer(pTab)).FaCol != 0) { pNew = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable (*TTable)(unsafe.Pointer(pTab)).FaCol = (*TTable)(unsafe.Pointer(pNew)).FaCol @@ -130130,9 +131208,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpDfltList) - v1 = (*TTable)(unsafe.Pointer(pNew)).FnCol - (*TTable)(unsafe.Pointer(pTab)).FnCol = v1 - (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v1 + v2 = (*TTable)(unsafe.Pointer(pNew)).FnCol + (*TTable)(unsafe.Pointer(pTab)).FnCol = v2 + (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v2 *(*Tu32)(unsafe.Pointer(pTab + 48)) |= (*TTable)(unsafe.Pointer(pNew)).FtabFlags & uint32(libc.Int32FromInt32(TF_WithoutRowid)|libc.Int32FromInt32(TF_NoVisibleRowid)) (*TTable)(unsafe.Pointer(pNew)).FnCol = 0 (*TTable)(unsafe.Pointer(pNew)).FaCol = uintptr(0) @@ -130151,11 +131229,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared = int32(1) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - v2 = __ccgo_ts + 3797 + v3 = __ccgo_ts + 3861 } else { - v2 = uintptr(0) + v3 = uintptr(0) } - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v2, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v3, libc.VaList(bp+440, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) rc = int32(SQLITE_ERROR) } @@ -130171,6 +131249,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i return rc } +var _aKeyword1 = [3]Tu8{ + 0: uint8(TK_CREATE), + 1: uint8(TK_TABLE), +} + // C documentation // // /* @@ -130622,7 +131705,7 @@ func _sqlite3VtabEponymousTableInit(tls *libc.TLS, pParse uintptr, pMod uintptr) _addModuleArgument(tls, pParse, pTab, _sqlite3DbStrDup(tls, db, (*TTable)(unsafe.Pointer(pTab)).FzName)) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer(pModule)).FxConnect, bp) if rc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3797, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3861, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3VtabEponymousTableClear(tls, db, pMod) } @@ -130686,7 +131769,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) p = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(p != 0) { - rc = _sqlite3MisuseError(tls, int32(155651)) + rc = _sqlite3MisuseError(tls, int32(156723)) } else { ap = va switch op { @@ -130699,7 +131782,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in case int32(SQLITE_VTAB_USES_ALL_SCHEMAS): (*TVTable)(unsafe.Pointer((*TVtabCtx)(unsafe.Pointer(p)).FpVTable)).FbAllSchemas = uint8(1) default: - rc = _sqlite3MisuseError(tls, int32(155673)) + rc = _sqlite3MisuseError(tls, int32(156745)) break } _ = ap @@ -131421,10 +132504,10 @@ type WhereInfo1 = TWhereInfo1 func _explainIndexColumnName(tls *libc.TLS, pIdx uintptr, i int32) (r uintptr) { i = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) if i == -int32(2) { - return __ccgo_ts + 22008 + return __ccgo_ts + 22153 } if i == -int32(1) { - return __ccgo_ts + 16696 + return __ccgo_ts + 16783 } return (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(i)*16))).FzCnName } @@ -131443,10 +132526,10 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, var i int32 _ = i if bAnd != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22015, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22160, int32(5)) } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22021, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22166, int32(1)) } i = 0 for { @@ -131454,7 +132537,7 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13092, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13217, int32(1)) } Xsqlite3_str_appendall(tls, pStr, _explainIndexColumnName(tls, pIdx, iTerm+i)) goto _1 @@ -131463,11 +132546,11 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5108, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5172, int32(1)) } Xsqlite3_str_append(tls, pStr, zOp, int32(1)) if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22021, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22166, int32(1)) } i = 0 for { @@ -131475,16 +132558,16 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13092, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13217, int32(1)) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5110, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5174, int32(1)) goto _2 _2: ; i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5108, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5172, int32(1)) } } @@ -131517,7 +132600,7 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { if int32(nEq) == 0 && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) == uint32(0) { return } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22023, int32(2)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22168, int32(2)) i = 0 for { if !(i < int32(nEq)) { @@ -131525,12 +132608,12 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } z = _explainIndexColumnName(tls, pIndex, i) if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22015, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22160, int32(5)) } if i >= int32(nSkip) { - v2 = __ccgo_ts + 22026 + v2 = __ccgo_ts + 22171 } else { - v2 = __ccgo_ts + 22031 + v2 = __ccgo_ts + 22176 } Xsqlite3_str_appendf(tls, pStr, v2, libc.VaList(bp+8, z)) goto _1 @@ -131540,13 +132623,13 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } j = i if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_BTM_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22039) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22184) i = int32(1) } if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_TOP_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22041) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22186) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5108, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5172, int32(1)) } // C documentation @@ -131589,47 +132672,47 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if isSearch != 0 { - v2 = __ccgo_ts + 22043 + v2 = __ccgo_ts + 22188 } else { - v2 = __ccgo_ts + 22050 + v2 = __ccgo_ts + 22195 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22055, libc.VaList(bp+144, v2, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22200, libc.VaList(bp+144, v2, pItem)) if flags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_VIRTUALTABLE)) == uint32(0) { zFmt = uintptr(0) pIdx = (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex if !((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) && int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { if isSearch != 0 { - zFmt = __ccgo_ts + 11255 + zFmt = __ccgo_ts + 11380 } } else { if flags&uint32(WHERE_PARTIALIDX) != 0 { - zFmt = __ccgo_ts + 22061 + zFmt = __ccgo_ts + 22206 } else { if flags&uint32(WHERE_AUTO_INDEX) != 0 { - zFmt = __ccgo_ts + 22094 + zFmt = __ccgo_ts + 22239 } else { if flags&uint32(WHERE_IDX_ONLY) != 0 { - zFmt = __ccgo_ts + 22119 + zFmt = __ccgo_ts + 22264 } else { - zFmt = __ccgo_ts + 22137 + zFmt = __ccgo_ts + 22282 } } } } if zFmt != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22146, int32(7)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22291, int32(7)) Xsqlite3_str_appendf(tls, bp, zFmt, libc.VaList(bp+144, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) _explainIndexRange(tls, bp, pLoop) } } else { if flags&uint32(WHERE_IPK) != uint32(0) && flags&uint32(WHERE_CONSTRAINT) != uint32(0) { - zRowid = __ccgo_ts + 16696 - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22154, libc.VaList(bp+144, zRowid)) + zRowid = __ccgo_ts + 16783 + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22299, libc.VaList(bp+144, zRowid)) if flags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != 0 { cRangeOp = uint8('=') } else { if flags&uint32(WHERE_BOTH_LIMIT) == uint32(WHERE_BOTH_LIMIT) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22185, libc.VaList(bp+144, zRowid)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22330, libc.VaList(bp+144, zRowid)) cRangeOp = uint8('<') } else { if flags&uint32(WHERE_BTM_LIMIT) != 0 { @@ -131639,10 +132722,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22195, libc.VaList(bp+144, int32(cRangeOp))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22340, libc.VaList(bp+144, int32(cRangeOp))) } else { if flags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22200, libc.VaList(bp+144, (*(*struct { + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22345, libc.VaList(bp+144, (*(*struct { FidxNum int32 F__ccgo4 uint8 FisOrdered Ti8 @@ -131661,7 +132744,7 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } if int32((*TSrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&int32(JT_LEFT) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22227, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22372, 0) } zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) @@ -131695,14 +132778,14 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Initial space for EQP output string */ _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22238, libc.VaList(bp+144, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22383, libc.VaList(bp+144, pItem)) pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_IPK) != 0 { pTab = (*TSrcItem)(unsafe.Pointer(pItem)).FpTab if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22026, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22171, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) } else { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22259, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22404, 0) } } else { i = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) @@ -131712,16 +132795,16 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp } z = _explainIndexColumnName(tls, (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex, i) if i > int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22015, int32(5)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22160, int32(5)) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22026, libc.VaList(bp+144, z)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22171, libc.VaList(bp+144, z)) goto _1 _1: ; i++ } } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5108, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5172, int32(1)) zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) return ret @@ -132552,6 +133635,35 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 } } +// C documentation +// +// /* +// ** Loop pLoop is a WHERE_INDEXED level that uses at least one IN(...) +// ** operator. Return true if level pLoop is guaranteed to visit only one +// ** row for each key generated for the index. +// */ +func _whereLoopIsOneRow(tls *libc.TLS, pLoop uintptr) (r int32) { + var ii int32 + _ = ii + if (*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FonError != 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) == 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq) == int32((*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FnKeyCol) { + ii = 0 + for { + if !(ii < int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq)) { + break + } + if int32((*TWhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(ii)*8)))).FeOperator)&(libc.Int32FromInt32(WO_IS)|libc.Int32FromInt32(WO_ISNULL)) != 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) + } + return 0 +} + // C documentation // // /* @@ -133240,7 +134352,10 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** a LEFT JOIN: */ } /* Record the instruction used to terminate the loop. */ - if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 { + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 || (*(*struct { + FnIn int32 + FaInLoop uintptr + })(unsafe.Pointer(pLevel + 72))).FnIn != 0 && regBignull == 0 && _whereLoopIsOneRow(tls, pLoop) != 0 { (*TWhereLevel)(unsafe.Pointer(pLevel)).Fop = uint8(OP_Noop) } else { if bRev != 0 { @@ -133413,7 +134528,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** eliminating duplicates from other WHERE clauses, the action for each ** sub-WHERE clause is to to invoke the main loop body as a subroutine. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22267, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22412, 0) ii = 0 for { if !(ii < (*TWhereClause)(unsafe.Pointer(pOrWc)).FnTerm) { @@ -133436,7 +134551,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI pOrExpr = pAndExpr } /* Loop through table entries that match term pOrTerm. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22282, libc.VaList(bp+96, ii+int32(1))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22427, libc.VaList(bp+96, ii+int32(1))) pSubWInfo = _sqlite3WhereBegin(tls, pParse, pOrTab, pOrExpr, uintptr(0), uintptr(0), uintptr(0), uint16(WHERE_OR_SUBCLAUSE), iCovCur) if pSubWInfo != 0 { addrExplain = _sqlite3WhereExplainOneScan(tls, pParse, pOrTab, pSubWInfo+856, uint16(0)) @@ -133599,6 +134714,12 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** iLoop==3: Code all remaining expressions. ** ** An effort is made to skip unnecessary iterations of the loop. + ** + ** This optimization of causing simple query restrictions to occur before + ** more complex one is call the "push-down" optimization in MySQL. Here + ** in SQLite, the name is "MySQL push-down", since there is also another + ** totally unrelated optimization called "WHERE-clause push-down". + ** Sometimes the qualifier is omitted, resulting in an ambiguity, so beware. */ if pIdx != 0 { v60 = int32(1) @@ -133795,6 +134916,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** to the results of the OUTER JOIN. The following loop generates the ** appropriate WHERE clause constraint checks. tag-20220513a. */ + goto code_outer_join_constraints code_outer_join_constraints: ; pTerm = (*TWhereClause)(unsafe.Pointer(pWC)).Fa @@ -133897,9 +135019,9 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe defer tls.Free(128) var addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, nPk, r, v3 int32 var mAll TBitmask - var pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr + var pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr var _ /* sFrom at bp+0 */ TSrcList - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pRJ = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpRJ @@ -133908,13 +135030,17 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop pTabItem = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 mAll = uint64(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22291, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22436, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) k = 0 for { if !(k < iLevel) { break } + pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*104 mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x20>>5)) != 0 { + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pRight)).FpSelect)).FpEList)).FnExpr-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiTabCur) iIdxCur = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiIdxCur if iIdxCur != 0 { @@ -134412,19 +135538,19 @@ var _aOp = [4]struct { FeOp2 uint8 }{ 0: { - FzOp: __ccgo_ts + 16545, + FzOp: __ccgo_ts + 16632, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_MATCH), }, 1: { - FzOp: __ccgo_ts + 15876, + FzOp: __ccgo_ts + 15969, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_GLOB), }, 2: { - FzOp: __ccgo_ts + 15355, + FzOp: __ccgo_ts + 15448, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_LIKE), }, 3: { - FzOp: __ccgo_ts + 22305, + FzOp: __ccgo_ts + 22450, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_REGEXP), }, } @@ -135058,7 +136184,7 @@ func _exprMightBeIndexed2(tls *libc.TLS, pFrom uintptr, aiCurCol uintptr, pExpr if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) != -int32(2) { goto _4 } - if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_STRING) { + if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && !(_sqlite3ExprIsConstant(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr) != 0) { *(*int32)(unsafe.Pointer(aiCurCol)) = iCur *(*int32)(unsafe.Pointer(aiCurCol + 1*4)) = -int32(2) return int32(1) @@ -135211,7 +136337,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { extraRight = x - uint64(1) /* ON clause terms may not be used with an index ** on left table of a LEFT JOIN. Ticket #3015 */ if prereqAll>>libc.Int32FromInt32(1) >= x { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22312, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22457, 0) return } } else { @@ -135223,7 +136349,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { ** if there is a RIGHT or FULL JOIN in the query. This makes SQLite ** more like other systems, and also preserves legacy. */ if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc > 0 && int32((*(*TSrcItem)(unsafe.Pointer(pSrc + 8))).Ffg.Fjointype)&int32(JT_LTORJ) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22312, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22457, 0) return } *(*Tu32)(unsafe.Pointer(pExpr + 4)) &= uint32(^libc.Int32FromInt32(EP_InnerON)) @@ -135307,7 +136433,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { } else { if op == int32(TK_ISNULL) && !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != libc.Uint32FromInt32(0)) && 0 == _sqlite3ExprCanBeNull(tls, pLeft) { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_TRUEFALSE) /* See tag-20230504-1 */ - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 7893 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 8018 *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_IsFalse)) (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqAll = uint64(0) (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator = uint16(0) @@ -135403,7 +136529,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { *(*Tu8)(unsafe.Pointer(pC)) = uint8(int32(c1) + int32(1)) } if *(*int32)(unsafe.Pointer(bp + 12)) != 0 { - v13 = __ccgo_ts + 22353 + v13 = __ccgo_ts + 22498 } else { v13 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } @@ -135673,6 +136799,9 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FleftCursor != iCsr { return } + if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FprereqRight != uint64(0) { + return + } goto _1 _1: ; @@ -135702,10 +136831,12 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { } } /* All conditions are met. Add the terms to the where-clause object. */ - _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) - if (*TSelect)(unsafe.Pointer(p)).FiOffset > 0 { + if (*TSelect)(unsafe.Pointer(p)).FiOffset != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiOffset, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpRight, iCsr, int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } + if (*TSelect)(unsafe.Pointer(p)).FiOffset == 0 || (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { + _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) + } } } @@ -135929,7 +137060,7 @@ func _sqlite3WhereTabFuncArgs(tls *libc.TLS, pParse uintptr, pItem uintptr, pWC k++ } if k >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22360, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22505, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) return } pColRef = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_COLUMN), uintptr(0), 0) @@ -136261,6 +137392,7 @@ func _whereOrInsert(tls *libc.TLS, pSet uintptr, prereq TBitmask, rRun TLogEst, return 0 } } + goto whereOrInsert_done whereOrInsert_done: ; (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq = prereq @@ -136362,6 +137494,48 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { return uintptr(0) } +// C documentation +// +// /* +// ** Term pTerm is guaranteed to be a WO_IN term. It may be a component term +// ** of a vector IN expression of the form "(x, y, ...) IN (SELECT ...)". +// ** This function checks to see if the term is compatible with an index +// ** column with affinity idxaff (one of the SQLITE_AFF_XYZ values). If so, +// ** it returns a pointer to the name of the collation sequence (e.g. "BINARY" +// ** or "NOCASE") used by the comparison in pTerm. If it is not compatible +// ** with affinity idxaff, NULL is returned. +// */ +func _indexInAffinityOk(tls *libc.TLS, pParse uintptr, pTerm uintptr, idxaff Tu8) (r uintptr) { + bp := tls.Alloc(80) + defer tls.Free(80) + var iField int32 + var pRet, pX, v1 uintptr + var _ /* inexpr at bp+0 */ TExpr + _, _, _, _ = iField, pRet, pX, v1 + pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr + if _sqlite3ExprIsVector(tls, (*TExpr)(unsafe.Pointer(pX)).FpLeft) != 0 { + iField = (*(*struct { + FleftColumn int32 + FiField int32 + })(unsafe.Pointer(pTerm + 32))).FiField - int32(1) + (*(*TExpr)(unsafe.Pointer(bp))).Fflags = uint32(0) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_EQ) + (*(*TExpr)(unsafe.Pointer(bp))).FpLeft = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pX)).FpLeft + 32)) + 8 + uintptr(iField)*32))).FpExpr + (*(*TExpr)(unsafe.Pointer(bp))).FpRight = (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pX + 32)))).FpEList + 8 + uintptr(iField)*32))).FpExpr + pX = bp + } + if _sqlite3IndexAffinityOk(tls, pX, idxaff) != 0 { + pRet = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pRet != 0 { + v1 = (*TCollSeq)(unsafe.Pointer(pRet)).FzName + } else { + v1 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + return v1 + } + return uintptr(0) +} + // C documentation // // /* @@ -136372,10 +137546,10 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { var iColumn Ti16 var iCur, j, k int32 - var pColl, pParse, pTerm, pWC, pX, v2 uintptr - var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, v2, v3, v5 /* The term being tested */ - k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ + var pColl, pParse, pTerm, pWC, pX, zCollName, v2, v5 uintptr + var v3, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, zCollName, v2, v3, v5, v6 /* The term being tested */ + k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ pWC = (*TWhereScan)(unsafe.Pointer(pScan)).FpWC for int32(1) != 0 { iColumn = *(*Ti16)(unsafe.Pointer(pScan + 88 + uintptr(int32((*TWhereScan)(unsafe.Pointer(pScan)).FiEquiv)-int32(1))*2)) @@ -136419,21 +137593,31 @@ func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { if (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName != 0 && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_ISNULL) == 0 { pParse = (*TWhereInfo)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr - if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { - goto _1 - } - pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) - if pColl == uintptr(0) { - pColl = (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FpDfltColl + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_IN) != 0 { + zCollName = _indexInAffinityOk(tls, pParse, pTerm, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) + if !(zCollName != 0) { + goto _1 + } + } else { + if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { + goto _1 + } + pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pColl != 0 { + v5 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName + } else { + v5 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + zCollName = v5 } - if _sqlite3StrICmp(tls, (*TCollSeq)(unsafe.Pointer(pColl)).FzName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { + if _sqlite3StrICmp(tls, zCollName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { goto _1 } } - if v5 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v5 { + if v6 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v6 { pX = (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight } - if v5 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { + if v6 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { goto _1 } (*TWhereScan)(unsafe.Pointer(pScan)).FpWC = pWC @@ -136921,7 +138105,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea /* Make the automatic index a partial index if there are terms in the ** WHERE clause (or the ON clause of a LEFT join) that constrain which ** rows of the target table (pSrc) that can be used. */ - if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)) != 0 { + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom), 0) != 0 { pPartial = _sqlite3ExprAnd(tls, pParse, pPartial, _sqlite3ExprDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr, 0)) } if _termCanDriveIndex(tls, pTerm, pSrc, notReady) != 0 { @@ -136936,7 +138120,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea } cMask = v2 if !(sentWarning != 0) { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_WARNING)|libc.Int32FromInt32(1)<>14)) != 0) { eDistinct = int32(2) + libc.BoolInt32(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_SORTBYGROUP) != 0) } else { if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_GROUPBY) != 0 { @@ -137406,7 +138591,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB */ pIdxInfo = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(96)+(libc.Uint64FromInt64(12)+libc.Uint64FromInt64(8))*uint64(nTerm)+uint64(8)*uint64(nOrderBy)+uint64(40)+uint64(8)*uint64(nTerm)) if pIdxInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1620, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1634, 0) return uintptr(0) } pHidden = pIdxInfo + 1*96 @@ -137491,7 +138676,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB break } pExpr1 = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr - if _sqlite3ExprIsConstant(tls, pExpr1) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr1) != 0 { goto _11 } (*(*Tsqlite3_index_orderby)(unsafe.Pointer(pIdxOrderBy + uintptr(j)*8))).FiColumn = int32((*TExpr)(unsafe.Pointer(pExpr1)).FiColumn) @@ -137566,9 +138751,9 @@ func _vtabBestIndex(tls *libc.TLS, pParse uintptr, pTab uintptr, p uintptr) (r i _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) } else { if !((*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3797, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3861, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3797, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3861, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) } } } @@ -138905,7 +140090,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x4>>2)) != 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) } - if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 && int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x2>>1)) == 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ) | libc.Int32FromInt32(WO_IN) | libc.Int32FromInt32(WO_IS)) } } @@ -139144,10 +140329,13 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } } } - /* Set rCostIdx to the cost of visiting selected rows in index. Add - ** it to pNew->rRun, which is currently set to the cost of the index - ** seek only. Then, if this is a non-covering index, add the cost of - ** visiting the rows in the main table. */ + /* Set rCostIdx to the estimated cost of visiting selected rows in the + ** index. The estimate is the sum of two values: + ** 1. The cost of doing one search-by-key to find the first matching + ** entry + ** 2. Stepping forward in the index pNew->nOut times to find all + ** additional matching entries. + */ if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_IPK) { /* The pProbe->szIdxRow is low for an IPK table since the interior ** pages are small. Thus szIdxRow gives a good estimate of seek cost. @@ -139157,7 +140345,14 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } else { rCostIdx = int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut) + int32(1) + int32(15)*int32((*TIndex)(unsafe.Pointer(pProbe)).FszIdxRow)/int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FszTabRow)) } - (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + rCostIdx = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + /* Estimate the cost of running the loop. If all data is coming + ** from the index, then this is just the cost of doing the index + ** lookup and scan. But if some data is coming out of the main table, + ** we also have to add in the cost of doing pNew->nOut searches to + ** locate the row in the main table that corresponds to the index entry. + */ + (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = rCostIdx if (*TWhereLoop)(unsafe.Pointer(pNew)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IDX_ONLY)|libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_EXPRIDX)) == uint32(0) { (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun, int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut)+int32(16))) } @@ -139262,7 +140457,7 @@ func _indexMightHelpWithOrderBy(tls *libc.TLS, pBuilder uintptr, pIndex uintptr, if pExpr == uintptr(0) { goto _2 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { + if (int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) || int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_COLUMN)) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) < 0 { return int32(1) } @@ -139597,7 +140792,7 @@ func _wherePartIdxExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, pPart uintpt if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) != int32(TK_COLUMN) { return } - if !(_sqlite3ExprIsConstant(tls, pRight) != 0) { + if !(_sqlite3ExprIsConstant(tls, uintptr(0), pRight) != 0) { return } if !(_sqlite3IsBinary(tls, _sqlite3ExprCompareCollSeq(tls, pParse, pPart)) != 0) { @@ -139926,7 +141121,7 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in ** unique index is used (making the index functionally non-unique) ** then the sqlite_stat1 data becomes important for scoring the ** plan */ - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) } _sqlite3Stat4ProbeFree(tls, (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec) (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = 0 @@ -139954,6 +141149,31 @@ func _isLimitTerm(tls *libc.TLS, pTerm uintptr) (r int32) { return libc.BoolInt32(int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) >= int32(SQLITE_INDEX_CONSTRAINT_LIMIT) && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) <= int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } +// C documentation +// +// /* +// ** Return true if the first nCons constraints in the pUsage array are +// ** marked as in-use (have argvIndex>0). False otherwise. +// */ +func _allConstraintsUsed(tls *libc.TLS, aUsage uintptr, nCons int32) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < nCons) { + break + } + if (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer(aUsage + uintptr(ii)*8))).FargvIndex <= 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + // C documentation // // /* @@ -140048,7 +141268,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if v3 >= 0 { j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).FiTermOffset if iTerm >= nConstraint || j < 0 || j >= (*TWhereClause)(unsafe.Pointer(pWC)).FnTerm || *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(iTerm)*8)) != uintptr(0) || int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22433, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22578, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } pTerm1 = (*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(j)*56 @@ -140093,12 +141313,16 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, *(*int32)(unsafe.Pointer(pbIn)) = int32(1) } } - if _isLimitTerm(tls, pTerm1) != 0 && *(*int32)(unsafe.Pointer(pbIn)) != 0 { + /* Unless pbRetryLimit is non-NULL, there should be no LIMIT/OFFSET + ** terms. And if there are any, they should follow all other terms. */ + if _isLimitTerm(tls, pTerm1) != 0 && (*(*int32)(unsafe.Pointer(pbIn)) != 0 || !(_allConstraintsUsed(tls, pUsage, i) != 0)) { /* If there is an IN(...) term handled as an == (separate call to ** xFilter for each value on the RHS of the IN) and a LIMIT or - ** OFFSET term handled as well, the plan is unusable. Set output - ** variable *pbRetryLimit to true to tell the caller to retry with - ** LIMIT and OFFSET disabled. */ + ** OFFSET term handled as well, the plan is unusable. Similarly, + ** if there is a LIMIT/OFFSET and there are other unused terms, + ** the plan cannot be used. In these cases set variable *pbRetryLimit + ** to true to tell the caller to retry with LIMIT and OFFSET + ** disabled. */ if (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FneedToFreeIdxStr != 0 { Xsqlite3_free(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = uintptr(0) @@ -140123,7 +141347,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(i)*8)) == uintptr(0) { /* The non-zero argvIdx values must be contiguous. Raise an ** error if they are not */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22433, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22578, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } goto _6 @@ -140275,7 +141499,7 @@ func Xsqlite3_vtab_rhs_value(tls *libc.TLS, pIdxInfo uintptr, iCons int32, ppVal pVal = uintptr(0) rc = SQLITE_OK if iCons < 0 || iCons >= (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint { - rc = _sqlite3MisuseError(tls, int32(165251)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(166453)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = (*TWhereClause)(unsafe.Pointer((*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC)).Fa + uintptr((*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset)*56 @@ -140713,7 +141937,7 @@ func _whereLoopAddAll(tls *libc.TLS, pBuilder uintptr) (r int32) { if rc != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { if rc == int32(SQLITE_DONE) { /* We hit the query planner search limit set by iPlanLimit */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22459, 0) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22604, 0) rc = SQLITE_OK } else { break @@ -141095,7 +142319,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, } p = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr mTerm = _sqlite3WhereExprUsage(tls, pWInfo+592, p) - if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, p) != 0) { + if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, uintptr(0), p) != 0) { goto _9 } if mTerm & ^orderDistinctMask == uint64(0) { @@ -141505,7 +142729,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) iLoop++ } if nFrom == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22494, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22639, 0) _sqlite3DbFreeNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pSpace) return int32(SQLITE_ERROR) } @@ -141554,9 +142778,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) if int32((*TWherePath)(unsafe.Pointer(pFrom)).FisOrdered) == (*TExprList)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_ORDERED) } - if (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy != 0 && int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) > (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr { - (*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = int8((*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr) - } + /* vvv--- See check-in [12ad822d9b827777] on 2023-03-16 ---vvv */ } else { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FrevMask = (*TWherePath)(unsafe.Pointer(pFrom)).FrevLoop if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) <= 0 { @@ -141593,6 +142815,97 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) return SQLITE_OK } +// C documentation +// +// /* +// ** This routine implements a heuristic designed to improve query planning. +// ** This routine is called in between the first and second call to +// ** wherePathSolver(). Hence the name "Interstage" "Heuristic". +// ** +// ** The first call to wherePathSolver() (hereafter just "solver()") computes +// ** the best path without regard to the order of the outputs. The second call +// ** to the solver() builds upon the first call to try to find an alternative +// ** path that satisfies the ORDER BY clause. +// ** +// ** This routine looks at the results of the first solver() run, and for +// ** every FROM clause term in the resulting query plan that uses an equality +// ** constraint against an index, disable other WhereLoops for that same +// ** FROM clause term that would try to do a full-table scan. This prevents +// ** an index search from being converted into a full-table scan in order to +// ** satisfy an ORDER BY clause, since even though we might get slightly better +// ** performance using the full-scan without sorting if the output size +// ** estimates are very precise, we might also get severe performance +// ** degradation using the full-scan if the output size estimate is too large. +// ** It is better to err on the side of caution. +// ** +// ** Except, if the first solver() call generated a full-table scan in an outer +// ** loop then stop this analysis at the first full-scan, since the second +// ** solver() run might try to swap that full-scan for another in order to +// ** get the output into the correct order. In other words, we allow a +// ** rewrite like this: +// ** +// ** First Solver() Second Solver() +// ** |-- SCAN t1 |-- SCAN t2 +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** The purpose of this routine is to disallow rewrites such as: +// ** +// ** First Solver() Second Solver() +// ** |-- SEARCH t1 |-- SCAN t2 <--- bad! +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** See test cases in test/whereN.test for the real-world query that +// ** originally provoked this heuristic. +// */ +func _whereInterstageHeuristic(tls *libc.TLS, pWInfo uintptr) { + var i int32 + var iTab Tu8 + var p, pLoop uintptr + _, _, _, _ = i, iTab, p, pLoop + i = 0 + for { + if !(i < int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)) { + break + } + p = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(i)*104))).FpWLoop + if p == uintptr(0) { + break + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { + goto _1 + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_NULL)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != uint32(0) { + iTab = (*TWhereLoop)(unsafe.Pointer(p)).FiTab + pLoop = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpLoops + for { + if !(pLoop != 0) { + break + } + if int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab) != int32(iTab) { + goto _2 + } + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_CONSTRAINT)|libc.Int32FromInt32(WHERE_AUTO_INDEX)) != uint32(0) { + /* Auto-index and index-constrained loops allowed to remain */ + goto _2 + } + (*TWhereLoop)(unsafe.Pointer(pLoop)).Fprereq = uint64(-libc.Int32FromInt32(1)) /* Prevent 2nd solver() from using this one */ + goto _2 + _2: + ; + pLoop = (*TWhereLoop)(unsafe.Pointer(pLoop)).FpNextLoop + } + } else { + break + } + goto _1 + _1: + ; + i++ + } +} + // C documentation // // /* @@ -141901,7 +143214,7 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasStat1) == uint32(0) { break } - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) if i >= int32(1) && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&reqFlags == reqFlags && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_INDEXED)) != uint32(0) { if int32(nSearch) > int32((*TTable)(unsafe.Pointer(pTab)).FnRowLogEst) { *(*Tu32)(unsafe.Pointer(pLoop + 48)) |= uint32(WHERE_BLOOMFILTER) @@ -141916,6 +143229,68 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { } } +// C documentation +// +// /* +// ** Expression Node callback for sqlite3ExprCanReturnSubtype(). +// ** +// ** Only a function call is able to return a subtype. So if the node +// ** is not a function call, return WRC_Prune immediately. +// ** +// ** A function call is able to return a subtype if it has the +// ** SQLITE_RESULT_SUBTYPE property. +// ** +// ** Assume that every function is able to pass-through a subtype from +// ** one of its argument (using sqlite3_result_value()). Most functions +// ** are not this way, but we don't have a mechanism to distinguish those +// ** that are from those that are not, so assume they all work this way. +// ** That means that if one of its arguments is another function and that +// ** other function is able to return a subtype, then this function is +// ** able to return a subtype. +// */ +func _exprNodeCanReturnSubtype(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef uintptr + var n, v1 int32 + _, _, _, _ = db, n, pDef, v1 + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_FUNCTION) { + return int32(WRC_Prune) + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { + v1 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr + } else { + v1 = 0 + } + n = v1 + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + return int32(WRC_Prune) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Return TRUE if expression pExpr is able to return a subtype. +// ** +// ** A TRUE return does not guarantee that a subtype will be returned. +// ** It only indicates that a subtype return is possible. False positives +// ** are acceptable as they only disable an optimization. False negatives, +// ** on the other hand, can lead to incorrect answers. +// */ +func _sqlite3ExprCanReturnSubtype(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeCanReturnSubtype) + _sqlite3WalkExpr(tls, bp, pExpr) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) +} + // C documentation // // /* @@ -141930,9 +143305,9 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { // ** references to the corresponding column of the index. // */ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur int32, pTabItem uintptr) { - var db, p, pArg, pDef, pExpr, pTab uintptr - var i, j, n, v2 int32 - _, _, _, _, _, _, _, _, _, _ = db, i, j, n, p, pArg, pDef, pExpr, pTab, v2 + var i, j int32 + var p, pArg, pExpr, pTab uintptr + _, _, _, _, _, _ = i, j, p, pArg, pExpr, pTab pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable i = 0 for { @@ -141949,21 +143324,14 @@ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur i goto _1 } } - if _sqlite3ExprIsConstant(tls, pExpr) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) != 0 { goto _1 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) { - db = (*TParse)(unsafe.Pointer(pParse)).Fdb - if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { - v2 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr - } else { - v2 = 0 - } - n = v2 - pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) - if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { - goto _1 - } + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) && _sqlite3ExprCanReturnSubtype(tls, pParse, pExpr) != 0 { + /* Functions that might set a subtype should not be replaced by the + ** value taken from an expression index since the index omits the + ** subtype. https://sqlite.org/forum/forumpost/68d284c86b082c3e */ + goto _1 } p = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(32)) if p == uintptr(0) { @@ -142135,7 +143503,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** bits in a Bitmask */ if (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc > int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22512, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22657, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) return uintptr(0) } /* This function normally generates a nested loop for all tables in @@ -142207,7 +143575,9 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if int32(wctrlFlags)&int32(WHERE_WANT_DISTINCT) != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_DistinctOpt)) == uint32(0) { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_UNIQUE) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22540, 0) + if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FselFlags&uint32(SF_MultiValue) == uint32(0) { + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22685, 0) + } } else { /* Assign a bit from the bitmask to every term in the FROM clause. ** @@ -142339,6 +143709,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy != 0 { + _whereInterstageHeuristic(tls, pWInfo) _wherePathSolver(tls, pWInfo, int16(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut)+int32(1))) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto whereBeginError @@ -142623,6 +143994,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiEndWhere = _sqlite3VdbeCurrentAddr(tls, v) return pWInfo /* Jump here if malloc fails */ + goto whereBeginError whereBeginError: ; if pWInfo != 0 { @@ -142646,10 +144018,10 @@ whereBeginError: // ** sqlite3WhereBegin() for additional information. // */ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { - var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, r1, ws, x, v4, v7 int32 - var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr + var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, r1, ws, x, v4, v7 int32 + var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pTabList = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList @@ -142790,6 +144162,12 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { ws = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags) addr = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfPos), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin) if ws&int32(WHERE_IDX_ONLY) == 0 { + pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 + if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x20>>5)) != 0 { + n1 = (*TSrcItem)(unsafe.Pointer(pSrc)).FregResult + m = int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FnCol) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, n1, n1+m-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur) } if ws&int32(WHERE_INDEXED) != 0 || ws&int32(WHERE_MULTI_OR) != 0 && *(*uintptr)(unsafe.Pointer(&(*TWhereLevel)(unsafe.Pointer(pLevel)).Fu)) != 0 { @@ -143203,9 +144581,10 @@ func _nth_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) _ = nArg _ = apArg return + goto error_out error_out: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22558, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22703, -int32(1)) } func _nth_valueFinalizeFunc(tls *libc.TLS, pCtx uintptr) { @@ -143387,7 +144766,7 @@ func _ntileStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { if (*TNtileCtx)(unsafe.Pointer(p)).FnTotal == 0 { (*TNtileCtx)(unsafe.Pointer(p)).FnParam = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apArg))) if (*TNtileCtx)(unsafe.Pointer(p)).FnParam <= 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22614, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22759, -int32(1)) } } (*TNtileCtx)(unsafe.Pointer(p)).FnTotal++ @@ -143713,7 +145092,7 @@ func _windowFind(tls *libc.TLS, pParse uintptr, pList uintptr, zName uintptr) (r p = (*TWindow)(unsafe.Pointer(p)).FpNextWin } if p == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22659, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22804, libc.VaList(bp+8, zName)) } return p } @@ -143764,12 +145143,12 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin _sqlite3WindowChain(tls, pParse, pWin, pList) } if int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) == int32(TK_RANGE) && ((*TWindow)(unsafe.Pointer(pWin)).FpStart != 0 || (*TWindow)(unsafe.Pointer(pWin)).FpEnd != 0) && ((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy == uintptr(0) || (*TExprList)(unsafe.Pointer((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy)).FnExpr != int32(1)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22678, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22823, 0) } else { if (*TFuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TWindow)(unsafe.Pointer(pWin)).FpFilter != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22749, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22894, 0) } else { aUp = [8]struct { FzFunc uintptr @@ -143842,7 +145221,7 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin (*TWindow)(unsafe.Pointer(pWin)).FeEnd = uint8(aUp[i].FeEnd) (*TWindow)(unsafe.Pointer(pWin)).FeExclude = uint8(0) if int32((*TWindow)(unsafe.Pointer(pWin)).FeStart) == int32(TK_FOLLOWING) { - (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8132) + (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8257) } break } @@ -144124,7 +145503,7 @@ func _disallowAggregatesInOrderByCb(tls *libc.TLS, pWalker uintptr, pExpr uintpt bp := tls.Alloc(16) defer tls.Free(16) if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_FUNCTION) && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22812, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) + _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22957, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) } return WRC_Continue } @@ -144265,7 +145644,7 @@ func _sqlite3WindowRewrite(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { ** keep everything legal in this case. */ if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1724)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1784)) } pSub = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(bp)), pSrc, pWhere, pGroupBy, pHaving, pSort, uint32(0), uintptr(0)) (*TSelect)(unsafe.Pointer(p)).FpSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), uintptr(0), uintptr(0)) @@ -144369,7 +145748,7 @@ func _sqlite3WindowListDelete(tls *libc.TLS, db uintptr, p uintptr) { // ** variable values in the expression tree. // */ func _sqlite3WindowOffsetExpr(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r uintptr) { - if 0 == _sqlite3ExprIsConstant(tls, pExpr) { + if 0 == _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) { if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameExprUnmap(tls, pParse, pExpr) } @@ -144410,7 +145789,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 ** frame boundary. */ if eStart == int32(TK_CURRENT) && eEnd == int32(TK_PRECEDING) || eStart == int32(TK_FOLLOWING) && (eEnd == int32(TK_PRECEDING) || eEnd == int32(TK_CURRENT)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22838, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22983, 0) goto windowAllocErr } pWin = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) @@ -144428,6 +145807,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 (*TWindow)(unsafe.Pointer(pWin)).FpEnd = _sqlite3WindowOffsetExpr(tls, pParse, pEnd) (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3WindowOffsetExpr(tls, pParse, pStart) return pWin + goto windowAllocErr windowAllocErr: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pEnd) @@ -144477,18 +145857,18 @@ func _sqlite3WindowChain(tls *libc.TLS, pParse uintptr, pWin uintptr, pList uint zErr = uintptr(0) /* Check for errors */ if (*TWindow)(unsafe.Pointer(pWin)).FpPartition != 0 { - zErr = __ccgo_ts + 22870 + zErr = __ccgo_ts + 23015 } else { if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 && (*TWindow)(unsafe.Pointer(pWin)).FpOrderBy != 0 { - zErr = __ccgo_ts + 22887 + zErr = __ccgo_ts + 23032 } else { if int32((*TWindow)(unsafe.Pointer(pExist)).FbImplicitFrame) == 0 { - zErr = __ccgo_ts + 22903 + zErr = __ccgo_ts + 23048 } } } if zErr != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22923, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23068, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) } else { (*TWindow)(unsafe.Pointer(pWin)).FpPartition = _sqlite3ExprListDup(tls, db, (*TWindow)(unsafe.Pointer(pExist)).FpPartition, 0) if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 { @@ -144512,7 +145892,7 @@ func _sqlite3WindowAttach(tls *libc.TLS, pParse uintptr, p uintptr, pWin uintptr *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(libc.Int32FromInt32(EP_WinFunc) | libc.Int32FromInt32(EP_FullSize)) (*TWindow)(unsafe.Pointer(pWin)).FpOwner = p if (*TExpr)(unsafe.Pointer(p)).Fflags&uint32(EP_Distinct) != 0 && int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) != int32(TK_FILTER) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22956, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23101, 0) } } else { _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pWin) @@ -144711,7 +146091,7 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regZero) if eCond >= int32(WINDOW_STARTING_NUM) { regString = _sqlite3GetTempReg(tls, pParse) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1650, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1664, -int32(1)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, _sqlite3VdbeCurrentAddr(tls, v)+int32(2), reg) _sqlite3VdbeChangeP5(tls, v, uint16(libc.Int32FromInt32(SQLITE_AFF_NUMERIC)|libc.Int32FromInt32(SQLITE_JUMPIFNULL))) } else { @@ -144730,11 +146110,11 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { } var _azErr = [5]uintptr{ - 0: __ccgo_ts + 23003, - 1: __ccgo_ts + 23056, - 2: __ccgo_ts + 22558, - 3: __ccgo_ts + 23107, - 4: __ccgo_ts + 23159, + 0: __ccgo_ts + 23148, + 1: __ccgo_ts + 23201, + 2: __ccgo_ts + 22703, + 3: __ccgo_ts + 23252, + 4: __ccgo_ts + 23304, } var _aOp1 = [5]int32{ @@ -145486,7 +146866,7 @@ func _windowCodeRangeTest(tls *libc.TLS, p uintptr, op int32, csr1 int32, regVal ** the add/subtract is skipped for these, as required. If reg1 is a NULL, ** then the arithmetic is performed, but since adding or subtracting from ** NULL is always NULL anyway, this case is handled as required too. */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1650, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1664, -int32(1)) addrGe = _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, 0, reg1) if op == int32(OP_Ge) && arith == int32(OP_Add) || op == int32(OP_Le) && arith == int32(OP_Subtract) { _sqlite3VdbeAddOp3(tls, v, op, reg2, lbl, reg1) @@ -146514,11 +147894,11 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { cnt++ if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != 0 || (*TSelect)(unsafe.Pointer(pLoop)).FpLimit != 0 { if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != uintptr(0) { - v1 = __ccgo_ts + 23209 + v1 = __ccgo_ts + 23354 } else { - v1 = __ccgo_ts + 23218 + v1 = __ccgo_ts + 23363 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23224, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23369, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) break } } @@ -146527,7 +147907,7 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { mxSelect = v2 } if v3 && v2 > 0 && cnt > mxSelect { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23266, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23411, 0) } } } @@ -146547,6 +147927,23 @@ func _attachWithToSelect(tls *libc.TLS, pParse uintptr, pSelect uintptr, pWith u return pSelect } +// C documentation +// +// /* Memory allocator for parser stack resizing. This is a thin wrapper around +// ** sqlite3_realloc() that includes a call to sqlite3FaultSim() to facilitate +// ** testing. +// */ +func _parserStackRealloc(tls *libc.TLS, pOld uintptr, newSize Tsqlite3_uint64) (r uintptr) { + var v1 uintptr + _ = v1 + if _sqlite3FaultSim(tls, int32(700)) != 0 { + v1 = uintptr(0) + } else { + v1 = Xsqlite3_realloc(tls, pOld, int32(newSize)) + } + return v1 +} + // C documentation // // /* Construct a new Expr object from a single token */ @@ -146616,7 +148013,7 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId _ = p p = _sqlite3ExprListAppend(tls, pParse, pPrior, uintptr(0)) if (hasCollate != 0 || sortOrder != -int32(1)) && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23300, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23445, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) } _sqlite3ExprListSetName(tls, pParse, p, pIdToken, int32(1)) return p @@ -146666,6 +148063,9 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser // ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser // ** sqlite3ParserCTX_* As sqlite3ParserARG_ except for %extra_context +// ** YYREALLOC Name of the realloc() function to use +// ** YYFREE Name of the free() function to use +// ** YYDYNSTACK True if stack space should be extended on heap // ** YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** YYNSTATE the combined number of states. @@ -146679,31 +148079,33 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** YY_NO_ACTION The yy_action[] code for no-op // ** YY_MIN_REDUCE Minimum value for reduce actions // ** YY_MAX_REDUCE Maximum value for reduce actions +// ** YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type TYYMINORTYPE = struct { Fyy0 [0]TToken - Fyy33 [0]uintptr - Fyy41 [0]uintptr - Fyy47 [0]uintptr - Fyy131 [0]uintptr - Fyy180 [0]TTrigEvent - Fyy231 [0]struct { + Fyy14 [0]uintptr + Fyy59 [0]uintptr + Fyy67 [0]uintptr + Fyy122 [0]uintptr + Fyy132 [0]uintptr + Fyy144 [0]int32 + Fyy168 [0]uintptr + Fyy203 [0]uintptr + Fyy211 [0]uintptr + Fyy269 [0]TOnOrUsing + Fyy286 [0]TTrigEvent + Fyy383 [0]struct { Fvalue int32 Fmask int32 } - Fyy254 [0]uintptr - Fyy285 [0]Tu32 - Fyy322 [0]uintptr - Fyy385 [0]uintptr - Fyy394 [0]int32 - Fyy444 [0]uintptr - Fyy516 [0]Tu8 - Fyy521 [0]uintptr - Fyy522 [0]uintptr - Fyy528 [0]uintptr - Fyy561 [0]TOnOrUsing - Fyy595 [0]TFrameBound + Fyy391 [0]Tu32 + Fyy427 [0]uintptr + Fyy454 [0]uintptr + Fyy462 [0]Tu8 + Fyy509 [0]TFrameBound + Fyy555 [0]uintptr Fyyinit int32 F__ccgo_pad20 [12]byte } @@ -146721,6 +148123,13 @@ type YYMINORTYPE = TYYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -146773,2152 +148182,2194 @@ type YYMINORTYPE = TYYMINORTYPE // ** yy_default[] Default action for each state. // ** // *********** Begin parsing tables **********************************************/ -var _yy_action = [2100]uint16{ - 0: uint16(572), - 1: uint16(210), - 2: uint16(572), - 3: uint16(119), - 4: uint16(116), - 5: uint16(231), - 6: uint16(572), - 7: uint16(119), - 8: uint16(116), - 9: uint16(231), - 10: uint16(572), - 11: uint16(1317), - 12: uint16(379), - 13: uint16(1296), - 14: uint16(410), - 15: uint16(566), - 16: uint16(566), - 17: uint16(566), - 18: uint16(572), - 19: uint16(411), - 20: uint16(380), - 21: uint16(1317), - 22: uint16(1279), - 23: uint16(42), - 24: uint16(42), - 25: uint16(42), - 26: uint16(42), - 27: uint16(210), - 28: uint16(1529), - 29: uint16(72), - 30: uint16(72), - 31: uint16(974), - 32: uint16(421), - 33: uint16(42), - 34: uint16(42), - 35: uint16(495), - 36: uint16(305), - 37: uint16(281), - 38: uint16(305), - 39: uint16(975), - 40: uint16(399), - 41: uint16(72), - 42: uint16(72), - 43: uint16(126), - 44: uint16(127), - 45: uint16(81), - 46: uint16(1217), - 47: uint16(1217), - 48: uint16(1054), - 49: uint16(1057), - 50: uint16(1044), - 51: uint16(1044), - 52: uint16(124), - 53: uint16(124), - 54: uint16(125), - 55: uint16(125), - 56: uint16(125), - 57: uint16(125), - 58: uint16(480), - 59: uint16(411), - 60: uint16(1244), - 61: uint16(1), - 62: uint16(1), - 63: uint16(578), - 64: uint16(2), - 65: uint16(1248), - 66: uint16(554), - 67: uint16(119), - 68: uint16(116), - 69: uint16(231), - 70: uint16(319), - 71: uint16(484), - 72: uint16(147), - 73: uint16(484), - 74: uint16(528), - 75: uint16(119), - 76: uint16(116), - 77: uint16(231), - 78: uint16(533), - 79: uint16(1330), - 80: uint16(419), - 81: uint16(527), - 82: uint16(143), - 83: uint16(126), - 84: uint16(127), - 85: uint16(81), - 86: uint16(1217), - 87: uint16(1217), - 88: uint16(1054), - 89: uint16(1057), - 90: uint16(1044), - 91: uint16(1044), - 92: uint16(124), - 93: uint16(124), - 94: uint16(125), - 95: uint16(125), - 96: uint16(125), - 97: uint16(125), - 98: uint16(119), - 99: uint16(116), - 100: uint16(231), - 101: uint16(329), - 102: uint16(123), - 103: uint16(123), - 104: uint16(123), - 105: uint16(123), - 106: uint16(122), - 107: uint16(122), - 108: uint16(121), - 109: uint16(121), - 110: uint16(121), - 111: uint16(120), - 112: uint16(117), - 113: uint16(448), - 114: uint16(286), - 115: uint16(286), - 116: uint16(286), - 117: uint16(286), - 118: uint16(446), - 119: uint16(446), - 120: uint16(446), - 121: uint16(1568), - 122: uint16(378), - 123: uint16(1570), - 124: uint16(1193), - 125: uint16(377), - 126: uint16(1164), - 127: uint16(569), - 128: uint16(1164), - 129: uint16(569), - 130: uint16(411), - 131: uint16(1568), - 132: uint16(541), - 133: uint16(261), - 134: uint16(228), - 135: uint16(448), - 136: uint16(102), - 137: uint16(146), - 138: uint16(453), - 139: uint16(318), - 140: uint16(563), - 141: uint16(242), - 142: uint16(123), - 143: uint16(123), - 144: uint16(123), - 145: uint16(123), - 146: uint16(122), - 147: uint16(122), - 148: uint16(121), - 149: uint16(121), - 150: uint16(121), - 151: uint16(120), - 152: uint16(117), - 153: uint16(448), - 154: uint16(126), - 155: uint16(127), - 156: uint16(81), - 157: uint16(1217), - 158: uint16(1217), - 159: uint16(1054), - 160: uint16(1057), - 161: uint16(1044), - 162: uint16(1044), - 163: uint16(124), - 164: uint16(124), - 165: uint16(125), - 166: uint16(125), - 167: uint16(125), - 168: uint16(125), - 169: uint16(143), - 170: uint16(296), - 171: uint16(1193), - 172: uint16(341), - 173: uint16(452), - 174: uint16(121), - 175: uint16(121), - 176: uint16(121), - 177: uint16(120), - 178: uint16(117), - 179: uint16(448), - 180: uint16(128), - 181: uint16(1193), - 182: uint16(1194), - 183: uint16(1193), - 184: uint16(149), - 185: uint16(445), - 186: uint16(444), - 187: uint16(572), - 188: uint16(120), - 189: uint16(117), - 190: uint16(448), - 191: uint16(125), - 192: uint16(125), - 193: uint16(125), - 194: uint16(125), - 195: uint16(118), - 196: uint16(123), - 197: uint16(123), - 198: uint16(123), - 199: uint16(123), - 200: uint16(122), - 201: uint16(122), - 202: uint16(121), - 203: uint16(121), - 204: uint16(121), - 205: uint16(120), - 206: uint16(117), - 207: uint16(448), - 208: uint16(458), - 209: uint16(114), - 210: uint16(13), - 211: uint16(13), - 212: uint16(550), - 213: uint16(123), - 214: uint16(123), - 215: uint16(123), - 216: uint16(123), - 217: uint16(122), - 218: uint16(122), - 219: uint16(121), - 220: uint16(121), - 221: uint16(121), - 222: uint16(120), - 223: uint16(117), - 224: uint16(448), - 225: uint16(424), - 226: uint16(318), - 227: uint16(563), - 228: uint16(1193), - 229: uint16(1194), - 230: uint16(1193), - 231: uint16(150), - 232: uint16(1225), - 233: uint16(411), - 234: uint16(1225), - 235: uint16(125), - 236: uint16(125), - 237: uint16(125), - 238: uint16(125), - 239: uint16(123), - 240: uint16(123), - 241: uint16(123), - 242: uint16(123), - 243: uint16(122), - 244: uint16(122), - 245: uint16(121), - 246: uint16(121), - 247: uint16(121), - 248: uint16(120), - 249: uint16(117), - 250: uint16(448), - 251: uint16(469), - 252: uint16(344), - 253: uint16(1041), - 254: uint16(1041), - 255: uint16(1055), - 256: uint16(1058), - 257: uint16(126), - 258: uint16(127), - 259: uint16(81), - 260: uint16(1217), - 261: uint16(1217), - 262: uint16(1054), - 263: uint16(1057), - 264: uint16(1044), - 265: uint16(1044), - 266: uint16(124), - 267: uint16(124), - 268: uint16(125), - 269: uint16(125), - 270: uint16(125), - 271: uint16(125), - 272: uint16(1282), - 273: uint16(526), - 274: uint16(224), - 275: uint16(1193), - 276: uint16(572), - 277: uint16(411), - 278: uint16(226), - 279: uint16(519), - 280: uint16(177), - 281: uint16(83), - 282: uint16(84), - 283: uint16(123), - 284: uint16(123), - 285: uint16(123), - 286: uint16(123), - 287: uint16(122), - 288: uint16(122), - 289: uint16(121), - 290: uint16(121), - 291: uint16(121), - 292: uint16(120), - 293: uint16(117), - 294: uint16(448), - 295: uint16(1010), - 296: uint16(16), - 297: uint16(16), - 298: uint16(1193), - 299: uint16(134), - 300: uint16(134), - 301: uint16(126), - 302: uint16(127), - 303: uint16(81), - 304: uint16(1217), - 305: uint16(1217), - 306: uint16(1054), - 307: uint16(1057), - 308: uint16(1044), - 309: uint16(1044), - 310: uint16(124), - 311: uint16(124), - 312: uint16(125), - 313: uint16(125), - 314: uint16(125), - 315: uint16(125), - 316: uint16(123), - 317: uint16(123), - 318: uint16(123), - 319: uint16(123), - 320: uint16(122), - 321: uint16(122), - 322: uint16(121), - 323: uint16(121), - 324: uint16(121), - 325: uint16(120), - 326: uint16(117), - 327: uint16(448), - 328: uint16(1045), - 329: uint16(550), - 330: uint16(1193), - 331: uint16(375), - 332: uint16(1193), - 333: uint16(1194), - 334: uint16(1193), - 335: uint16(254), - 336: uint16(1438), - 337: uint16(401), - 338: uint16(508), - 339: uint16(505), - 340: uint16(504), - 341: uint16(112), - 342: uint16(564), - 343: uint16(570), +var _yy_action = [2142]uint16{ + 0: uint16(576), + 1: uint16(128), + 2: uint16(125), + 3: uint16(232), + 4: uint16(1622), + 5: uint16(549), + 6: uint16(576), + 7: uint16(1290), + 8: uint16(1281), + 9: uint16(576), + 10: uint16(328), + 11: uint16(576), + 12: uint16(1300), + 13: uint16(212), + 14: uint16(576), + 15: uint16(128), + 16: uint16(125), + 17: uint16(232), + 18: uint16(578), + 19: uint16(412), + 20: uint16(578), + 21: uint16(391), + 22: uint16(1542), + 23: uint16(51), + 24: uint16(51), + 25: uint16(523), + 26: uint16(405), + 27: uint16(1293), + 28: uint16(529), + 29: uint16(51), + 30: uint16(51), + 31: uint16(983), + 32: uint16(51), + 33: uint16(51), + 34: uint16(81), + 35: uint16(81), + 36: uint16(1107), + 37: uint16(61), + 38: uint16(61), + 39: uint16(984), + 40: uint16(1107), + 41: uint16(1292), + 42: uint16(380), + 43: uint16(135), + 44: uint16(136), + 45: uint16(90), + 46: uint16(1228), + 47: uint16(1228), + 48: uint16(1063), + 49: uint16(1066), + 50: uint16(1053), + 51: uint16(1053), + 52: uint16(133), + 53: uint16(133), + 54: uint16(134), + 55: uint16(134), + 56: uint16(134), + 57: uint16(134), + 58: uint16(1577), + 59: uint16(412), + 60: uint16(287), + 61: uint16(287), + 62: uint16(7), + 63: uint16(287), + 64: uint16(287), + 65: uint16(422), + 66: uint16(1050), + 67: uint16(1050), + 68: uint16(1064), + 69: uint16(1067), + 70: uint16(289), + 71: uint16(556), + 72: uint16(492), + 73: uint16(573), + 74: uint16(524), + 75: uint16(561), + 76: uint16(573), + 77: uint16(497), + 78: uint16(561), + 79: uint16(482), + 80: uint16(530), + 81: uint16(262), + 82: uint16(229), + 83: uint16(135), + 84: uint16(136), + 85: uint16(90), + 86: uint16(1228), + 87: uint16(1228), + 88: uint16(1063), + 89: uint16(1066), + 90: uint16(1053), + 91: uint16(1053), + 92: uint16(133), + 93: uint16(133), + 94: uint16(134), + 95: uint16(134), + 96: uint16(134), + 97: uint16(134), + 98: uint16(128), + 99: uint16(125), + 100: uint16(232), + 101: uint16(1506), + 102: uint16(132), + 103: uint16(132), + 104: uint16(132), + 105: uint16(132), + 106: uint16(131), + 107: uint16(131), + 108: uint16(130), + 109: uint16(130), + 110: uint16(130), + 111: uint16(129), + 112: uint16(126), + 113: uint16(450), + 114: uint16(1204), + 115: uint16(1255), + 116: uint16(1), + 117: uint16(1), + 118: uint16(582), + 119: uint16(2), + 120: uint16(1259), + 121: uint16(1571), + 122: uint16(420), + 123: uint16(1582), + 124: uint16(379), + 125: uint16(320), + 126: uint16(1174), + 127: uint16(153), + 128: uint16(1174), + 129: uint16(1584), + 130: uint16(412), + 131: uint16(378), + 132: uint16(1582), + 133: uint16(543), + 134: uint16(1341), + 135: uint16(330), + 136: uint16(111), + 137: uint16(570), + 138: uint16(570), + 139: uint16(570), + 140: uint16(293), + 141: uint16(1054), + 142: uint16(132), + 143: uint16(132), + 144: uint16(132), + 145: uint16(132), + 146: uint16(131), + 147: uint16(131), + 148: uint16(130), + 149: uint16(130), + 150: uint16(130), + 151: uint16(129), + 152: uint16(126), + 153: uint16(450), + 154: uint16(135), + 155: uint16(136), + 156: uint16(90), + 157: uint16(1228), + 158: uint16(1228), + 159: uint16(1063), + 160: uint16(1066), + 161: uint16(1053), + 162: uint16(1053), + 163: uint16(133), + 164: uint16(133), + 165: uint16(134), + 166: uint16(134), + 167: uint16(134), + 168: uint16(134), + 169: uint16(287), + 170: uint16(287), + 171: uint16(1204), + 172: uint16(1205), + 173: uint16(1204), + 174: uint16(255), + 175: uint16(287), + 176: uint16(287), + 177: uint16(510), + 178: uint16(507), + 179: uint16(506), + 180: uint16(137), + 181: uint16(455), + 182: uint16(573), + 183: uint16(212), + 184: uint16(561), + 185: uint16(447), + 186: uint16(446), + 187: uint16(505), + 188: uint16(573), + 189: uint16(1616), + 190: uint16(561), + 191: uint16(134), + 192: uint16(134), + 193: uint16(134), + 194: uint16(134), + 195: uint16(127), + 196: uint16(400), + 197: uint16(243), + 198: uint16(132), + 199: uint16(132), + 200: uint16(132), + 201: uint16(132), + 202: uint16(131), + 203: uint16(131), + 204: uint16(130), + 205: uint16(130), + 206: uint16(130), + 207: uint16(129), + 208: uint16(126), + 209: uint16(450), + 210: uint16(282), + 211: uint16(471), + 212: uint16(345), + 213: uint16(132), + 214: uint16(132), + 215: uint16(132), + 216: uint16(132), + 217: uint16(131), + 218: uint16(131), + 219: uint16(130), + 220: uint16(130), + 221: uint16(130), + 222: uint16(129), + 223: uint16(126), + 224: uint16(450), + 225: uint16(574), + 226: uint16(155), + 227: uint16(936), + 228: uint16(936), + 229: uint16(454), + 230: uint16(227), + 231: uint16(521), + 232: uint16(1236), + 233: uint16(412), + 234: uint16(1236), + 235: uint16(134), + 236: uint16(134), + 237: uint16(134), + 238: uint16(134), + 239: uint16(132), + 240: uint16(132), + 241: uint16(132), + 242: uint16(132), + 243: uint16(131), + 244: uint16(131), + 245: uint16(130), + 246: uint16(130), + 247: uint16(130), + 248: uint16(129), + 249: uint16(126), + 250: uint16(450), + 251: uint16(130), + 252: uint16(130), + 253: uint16(130), + 254: uint16(129), + 255: uint16(126), + 256: uint16(450), + 257: uint16(135), + 258: uint16(136), + 259: uint16(90), + 260: uint16(1228), + 261: uint16(1228), + 262: uint16(1063), + 263: uint16(1066), + 264: uint16(1053), + 265: uint16(1053), + 266: uint16(133), + 267: uint16(133), + 268: uint16(134), + 269: uint16(134), + 270: uint16(134), + 271: uint16(134), + 272: uint16(128), + 273: uint16(125), + 274: uint16(232), + 275: uint16(450), + 276: uint16(576), + 277: uint16(412), + 278: uint16(397), + 279: uint16(1249), + 280: uint16(180), + 281: uint16(92), + 282: uint16(93), + 283: uint16(132), + 284: uint16(132), + 285: uint16(132), + 286: uint16(132), + 287: uint16(131), + 288: uint16(131), + 289: uint16(130), + 290: uint16(130), + 291: uint16(130), + 292: uint16(129), + 293: uint16(126), + 294: uint16(450), + 295: uint16(381), + 296: uint16(387), + 297: uint16(1204), + 298: uint16(383), + 299: uint16(81), + 300: uint16(81), + 301: uint16(135), + 302: uint16(136), + 303: uint16(90), + 304: uint16(1228), + 305: uint16(1228), + 306: uint16(1063), + 307: uint16(1066), + 308: uint16(1053), + 309: uint16(1053), + 310: uint16(133), + 311: uint16(133), + 312: uint16(134), + 313: uint16(134), + 314: uint16(134), + 315: uint16(134), + 316: uint16(132), + 317: uint16(132), + 318: uint16(132), + 319: uint16(132), + 320: uint16(131), + 321: uint16(131), + 322: uint16(130), + 323: uint16(130), + 324: uint16(130), + 325: uint16(129), + 326: uint16(126), + 327: uint16(450), + 328: uint16(131), + 329: uint16(131), + 330: uint16(130), + 331: uint16(130), + 332: uint16(130), + 333: uint16(129), + 334: uint16(126), + 335: uint16(450), + 336: uint16(556), + 337: uint16(1204), + 338: uint16(302), + 339: uint16(319), + 340: uint16(567), + 341: uint16(121), + 342: uint16(568), + 343: uint16(480), 344: uint16(4), - 345: uint16(929), - 346: uint16(929), - 347: uint16(435), - 348: uint16(503), - 349: uint16(342), - 350: uint16(464), - 351: uint16(330), - 352: uint16(362), - 353: uint16(396), - 354: uint16(1238), - 355: uint16(1193), - 356: uint16(1194), - 357: uint16(1193), - 358: uint16(567), - 359: uint16(572), - 360: uint16(123), - 361: uint16(123), - 362: uint16(123), - 363: uint16(123), - 364: uint16(122), - 365: uint16(122), - 366: uint16(121), - 367: uint16(121), - 368: uint16(121), - 369: uint16(120), - 370: uint16(117), - 371: uint16(448), - 372: uint16(286), - 373: uint16(286), - 374: uint16(371), - 375: uint16(1581), - 376: uint16(1607), - 377: uint16(445), - 378: uint16(444), - 379: uint16(155), - 380: uint16(411), - 381: uint16(449), - 382: uint16(72), - 383: uint16(72), - 384: uint16(1289), - 385: uint16(569), - 386: uint16(1222), - 387: uint16(1193), - 388: uint16(1194), - 389: uint16(1193), - 390: uint16(86), - 391: uint16(1224), - 392: uint16(273), - 393: uint16(561), - 394: uint16(547), - 395: uint16(520), - 396: uint16(520), - 397: uint16(572), - 398: uint16(99), - 399: uint16(1223), - 400: uint16(6), - 401: uint16(1281), - 402: uint16(476), - 403: uint16(143), - 404: uint16(126), - 405: uint16(127), - 406: uint16(81), - 407: uint16(1217), - 408: uint16(1217), - 409: uint16(1054), - 410: uint16(1057), - 411: uint16(1044), - 412: uint16(1044), - 413: uint16(124), - 414: uint16(124), - 415: uint16(125), - 416: uint16(125), - 417: uint16(125), - 418: uint16(125), - 419: uint16(554), - 420: uint16(13), - 421: uint16(13), - 422: uint16(1031), - 423: uint16(511), - 424: uint16(1225), - 425: uint16(1193), - 426: uint16(1225), - 427: uint16(553), - 428: uint16(110), - 429: uint16(110), - 430: uint16(224), - 431: uint16(572), - 432: uint16(1239), - 433: uint16(177), - 434: uint16(572), - 435: uint16(429), - 436: uint16(111), - 437: uint16(199), - 438: uint16(449), - 439: uint16(573), - 440: uint16(449), - 441: uint16(432), - 442: uint16(1555), - 443: uint16(1019), - 444: uint16(327), - 445: uint16(555), - 446: uint16(1193), - 447: uint16(272), - 448: uint16(289), - 449: uint16(370), - 450: uint16(514), - 451: uint16(365), - 452: uint16(513), - 453: uint16(259), - 454: uint16(72), - 455: uint16(72), - 456: uint16(547), - 457: uint16(72), - 458: uint16(72), - 459: uint16(361), - 460: uint16(318), - 461: uint16(563), - 462: uint16(1613), - 463: uint16(123), - 464: uint16(123), - 465: uint16(123), - 466: uint16(123), - 467: uint16(122), - 468: uint16(122), - 469: uint16(121), - 470: uint16(121), - 471: uint16(121), - 472: uint16(120), - 473: uint16(117), - 474: uint16(448), - 475: uint16(1019), - 476: uint16(1019), - 477: uint16(1021), - 478: uint16(1022), - 479: uint16(28), - 480: uint16(286), - 481: uint16(286), - 482: uint16(1193), - 483: uint16(1194), - 484: uint16(1193), - 485: uint16(1159), - 486: uint16(572), - 487: uint16(1612), - 488: uint16(411), - 489: uint16(904), - 490: uint16(192), - 491: uint16(554), - 492: uint16(358), - 493: uint16(569), - 494: uint16(554), - 495: uint16(940), - 496: uint16(537), - 497: uint16(521), - 498: uint16(1159), - 499: uint16(437), - 500: uint16(415), - 501: uint16(1159), - 502: uint16(556), - 503: uint16(1193), - 504: uint16(1194), - 505: uint16(1193), - 506: uint16(572), - 507: uint16(548), - 508: uint16(548), - 509: uint16(52), - 510: uint16(52), - 511: uint16(216), - 512: uint16(126), - 513: uint16(127), - 514: uint16(81), - 515: uint16(1217), - 516: uint16(1217), - 517: uint16(1054), - 518: uint16(1057), - 519: uint16(1044), - 520: uint16(1044), - 521: uint16(124), - 522: uint16(124), - 523: uint16(125), - 524: uint16(125), - 525: uint16(125), - 526: uint16(125), - 527: uint16(1193), - 528: uint16(478), - 529: uint16(136), - 530: uint16(136), - 531: uint16(411), - 532: uint16(286), - 533: uint16(286), - 534: uint16(1493), - 535: uint16(509), - 536: uint16(122), - 537: uint16(122), - 538: uint16(121), - 539: uint16(121), - 540: uint16(121), - 541: uint16(120), - 542: uint16(117), - 543: uint16(448), - 544: uint16(1010), - 545: uint16(569), - 546: uint16(522), - 547: uint16(219), - 548: uint16(545), - 549: uint16(545), - 550: uint16(318), - 551: uint16(563), - 552: uint16(143), - 553: uint16(6), - 554: uint16(536), - 555: uint16(126), - 556: uint16(127), - 557: uint16(81), - 558: uint16(1217), - 559: uint16(1217), - 560: uint16(1054), - 561: uint16(1057), - 562: uint16(1044), - 563: uint16(1044), - 564: uint16(124), - 565: uint16(124), - 566: uint16(125), - 567: uint16(125), - 568: uint16(125), - 569: uint16(125), - 570: uint16(1557), - 571: uint16(123), - 572: uint16(123), - 573: uint16(123), - 574: uint16(123), - 575: uint16(122), - 576: uint16(122), - 577: uint16(121), - 578: uint16(121), - 579: uint16(121), - 580: uint16(120), - 581: uint16(117), - 582: uint16(448), - 583: uint16(489), - 584: uint16(1193), - 585: uint16(1194), - 586: uint16(1193), - 587: uint16(486), - 588: uint16(283), - 589: uint16(1270), - 590: uint16(960), - 591: uint16(254), - 592: uint16(1193), - 593: uint16(375), - 594: uint16(508), - 595: uint16(505), - 596: uint16(504), - 597: uint16(1193), - 598: uint16(342), - 599: uint16(574), - 600: uint16(1193), - 601: uint16(574), - 602: uint16(411), - 603: uint16(294), - 604: uint16(503), - 605: uint16(960), - 606: uint16(879), - 607: uint16(193), - 608: uint16(484), - 609: uint16(318), - 610: uint16(563), - 611: uint16(386), - 612: uint16(292), - 613: uint16(382), - 614: uint16(123), - 615: uint16(123), - 616: uint16(123), - 617: uint16(123), - 618: uint16(122), - 619: uint16(122), - 620: uint16(121), - 621: uint16(121), - 622: uint16(121), - 623: uint16(120), - 624: uint16(117), - 625: uint16(448), - 626: uint16(126), - 627: uint16(127), - 628: uint16(81), - 629: uint16(1217), - 630: uint16(1217), - 631: uint16(1054), - 632: uint16(1057), - 633: uint16(1044), - 634: uint16(1044), - 635: uint16(124), - 636: uint16(124), - 637: uint16(125), - 638: uint16(125), - 639: uint16(125), - 640: uint16(125), - 641: uint16(411), - 642: uint16(396), - 643: uint16(1139), - 644: uint16(1193), - 645: uint16(872), - 646: uint16(101), - 647: uint16(286), - 648: uint16(286), - 649: uint16(1193), - 650: uint16(1194), - 651: uint16(1193), - 652: uint16(375), - 653: uint16(1096), - 654: uint16(1193), - 655: uint16(1194), - 656: uint16(1193), - 657: uint16(1193), - 658: uint16(1194), - 659: uint16(1193), - 660: uint16(569), - 661: uint16(459), - 662: uint16(33), - 663: uint16(375), - 664: uint16(235), - 665: uint16(126), - 666: uint16(127), - 667: uint16(81), - 668: uint16(1217), - 669: uint16(1217), - 670: uint16(1054), - 671: uint16(1057), - 672: uint16(1044), - 673: uint16(1044), - 674: uint16(124), - 675: uint16(124), - 676: uint16(125), - 677: uint16(125), - 678: uint16(125), - 679: uint16(125), - 680: uint16(1437), - 681: uint16(962), - 682: uint16(572), - 683: uint16(230), - 684: uint16(961), - 685: uint16(123), - 686: uint16(123), - 687: uint16(123), - 688: uint16(123), - 689: uint16(122), - 690: uint16(122), - 691: uint16(121), - 692: uint16(121), - 693: uint16(121), - 694: uint16(120), - 695: uint16(117), - 696: uint16(448), - 697: uint16(1159), - 698: uint16(230), - 699: uint16(1193), - 700: uint16(158), - 701: uint16(1193), - 702: uint16(1194), - 703: uint16(1193), - 704: uint16(1556), - 705: uint16(13), - 706: uint16(13), - 707: uint16(303), - 708: uint16(960), - 709: uint16(1233), - 710: uint16(1159), - 711: uint16(154), - 712: uint16(411), - 713: uint16(1159), - 714: uint16(375), - 715: uint16(1584), - 716: uint16(1177), - 717: uint16(5), - 718: uint16(371), - 719: uint16(1581), - 720: uint16(431), - 721: uint16(1239), - 722: uint16(3), - 723: uint16(960), - 724: uint16(123), - 725: uint16(123), - 726: uint16(123), - 727: uint16(123), - 728: uint16(122), - 729: uint16(122), - 730: uint16(121), - 731: uint16(121), - 732: uint16(121), - 733: uint16(120), - 734: uint16(117), - 735: uint16(448), - 736: uint16(126), - 737: uint16(127), - 738: uint16(81), - 739: uint16(1217), - 740: uint16(1217), - 741: uint16(1054), - 742: uint16(1057), - 743: uint16(1044), - 744: uint16(1044), - 745: uint16(124), - 746: uint16(124), - 747: uint16(125), - 748: uint16(125), - 749: uint16(125), - 750: uint16(125), - 751: uint16(411), - 752: uint16(210), - 753: uint16(571), - 754: uint16(1193), - 755: uint16(1032), - 756: uint16(1193), - 757: uint16(1194), - 758: uint16(1193), - 759: uint16(1193), - 760: uint16(390), - 761: uint16(855), - 762: uint16(156), - 763: uint16(1555), - 764: uint16(376), - 765: uint16(404), - 766: uint16(1101), - 767: uint16(1101), - 768: uint16(492), - 769: uint16(572), - 770: uint16(469), - 771: uint16(344), - 772: uint16(1322), - 773: uint16(1322), - 774: uint16(1555), - 775: uint16(126), - 776: uint16(127), - 777: uint16(81), - 778: uint16(1217), - 779: uint16(1217), - 780: uint16(1054), - 781: uint16(1057), - 782: uint16(1044), - 783: uint16(1044), - 784: uint16(124), - 785: uint16(124), - 786: uint16(125), - 787: uint16(125), - 788: uint16(125), - 789: uint16(125), - 790: uint16(130), - 791: uint16(572), - 792: uint16(13), - 793: uint16(13), - 794: uint16(532), - 795: uint16(123), - 796: uint16(123), - 797: uint16(123), - 798: uint16(123), - 799: uint16(122), - 800: uint16(122), - 801: uint16(121), - 802: uint16(121), - 803: uint16(121), - 804: uint16(120), - 805: uint16(117), - 806: uint16(448), - 807: uint16(304), - 808: uint16(572), - 809: uint16(457), - 810: uint16(229), - 811: uint16(1193), - 812: uint16(1194), - 813: uint16(1193), - 814: uint16(13), - 815: uint16(13), - 816: uint16(1193), - 817: uint16(1194), - 818: uint16(1193), - 819: uint16(1300), - 820: uint16(467), - 821: uint16(1270), - 822: uint16(411), - 823: uint16(1320), - 824: uint16(1320), - 825: uint16(1555), - 826: uint16(1015), - 827: uint16(457), - 828: uint16(456), - 829: uint16(436), - 830: uint16(301), - 831: uint16(72), - 832: uint16(72), - 833: uint16(1268), - 834: uint16(123), - 835: uint16(123), - 836: uint16(123), - 837: uint16(123), - 838: uint16(122), - 839: uint16(122), - 840: uint16(121), - 841: uint16(121), - 842: uint16(121), - 843: uint16(120), - 844: uint16(117), - 845: uint16(448), - 846: uint16(126), - 847: uint16(127), - 848: uint16(81), - 849: uint16(1217), - 850: uint16(1217), - 851: uint16(1054), - 852: uint16(1057), - 853: uint16(1044), - 854: uint16(1044), - 855: uint16(124), - 856: uint16(124), - 857: uint16(125), - 858: uint16(125), - 859: uint16(125), - 860: uint16(125), - 861: uint16(411), - 862: uint16(384), - 863: uint16(1076), - 864: uint16(1159), - 865: uint16(286), - 866: uint16(286), - 867: uint16(421), - 868: uint16(314), - 869: uint16(280), - 870: uint16(280), - 871: uint16(287), - 872: uint16(287), - 873: uint16(461), - 874: uint16(408), - 875: uint16(407), - 876: uint16(1539), - 877: uint16(1159), - 878: uint16(569), - 879: uint16(572), - 880: uint16(1159), - 881: uint16(1196), - 882: uint16(569), - 883: uint16(409), - 884: uint16(569), - 885: uint16(126), - 886: uint16(127), - 887: uint16(81), - 888: uint16(1217), - 889: uint16(1217), - 890: uint16(1054), - 891: uint16(1057), - 892: uint16(1044), - 893: uint16(1044), - 894: uint16(124), - 895: uint16(124), - 896: uint16(125), - 897: uint16(125), - 898: uint16(125), - 899: uint16(125), - 900: uint16(457), - 901: uint16(1485), - 902: uint16(13), - 903: uint16(13), - 904: uint16(1541), - 905: uint16(123), - 906: uint16(123), - 907: uint16(123), - 908: uint16(123), - 909: uint16(122), - 910: uint16(122), - 911: uint16(121), - 912: uint16(121), - 913: uint16(121), - 914: uint16(120), - 915: uint16(117), - 916: uint16(448), - 917: uint16(202), - 918: uint16(572), - 919: uint16(462), - 920: uint16(1587), - 921: uint16(578), - 922: uint16(2), - 923: uint16(1248), - 924: uint16(843), - 925: uint16(844), - 926: uint16(845), - 927: uint16(1563), - 928: uint16(319), - 929: uint16(409), - 930: uint16(147), - 931: uint16(6), - 932: uint16(411), - 933: uint16(257), - 934: uint16(256), - 935: uint16(255), - 936: uint16(208), - 937: uint16(1330), - 938: uint16(9), - 939: uint16(1196), - 940: uint16(264), - 941: uint16(72), - 942: uint16(72), - 943: uint16(1436), - 944: uint16(123), - 945: uint16(123), - 946: uint16(123), - 947: uint16(123), - 948: uint16(122), - 949: uint16(122), - 950: uint16(121), - 951: uint16(121), - 952: uint16(121), - 953: uint16(120), - 954: uint16(117), - 955: uint16(448), - 956: uint16(126), - 957: uint16(127), - 958: uint16(81), - 959: uint16(1217), - 960: uint16(1217), - 961: uint16(1054), - 962: uint16(1057), - 963: uint16(1044), - 964: uint16(1044), - 965: uint16(124), - 966: uint16(124), - 967: uint16(125), - 968: uint16(125), - 969: uint16(125), - 970: uint16(125), - 971: uint16(572), - 972: uint16(286), - 973: uint16(286), - 974: uint16(572), - 975: uint16(1213), - 976: uint16(411), - 977: uint16(577), - 978: uint16(315), - 979: uint16(1248), - 980: uint16(421), - 981: uint16(371), - 982: uint16(1581), - 983: uint16(356), - 984: uint16(319), - 985: uint16(569), - 986: uint16(147), - 987: uint16(495), - 988: uint16(529), - 989: uint16(1644), - 990: uint16(397), - 991: uint16(935), - 992: uint16(495), - 993: uint16(1330), - 994: uint16(71), - 995: uint16(71), - 996: uint16(934), - 997: uint16(72), - 998: uint16(72), - 999: uint16(242), - 1000: uint16(1328), - 1001: uint16(105), - 1002: uint16(81), - 1003: uint16(1217), - 1004: uint16(1217), - 1005: uint16(1054), - 1006: uint16(1057), - 1007: uint16(1044), - 1008: uint16(1044), - 1009: uint16(124), - 1010: uint16(124), - 1011: uint16(125), - 1012: uint16(125), - 1013: uint16(125), - 1014: uint16(125), - 1015: uint16(123), - 1016: uint16(123), - 1017: uint16(123), - 1018: uint16(123), - 1019: uint16(122), - 1020: uint16(122), - 1021: uint16(121), - 1022: uint16(121), - 1023: uint16(121), - 1024: uint16(120), - 1025: uint16(117), - 1026: uint16(448), - 1027: uint16(1117), - 1028: uint16(286), - 1029: uint16(286), - 1030: uint16(1422), - 1031: uint16(452), - 1032: uint16(1528), - 1033: uint16(1213), - 1034: uint16(443), - 1035: uint16(286), - 1036: uint16(286), - 1037: uint16(1492), - 1038: uint16(1355), - 1039: uint16(313), - 1040: uint16(478), - 1041: uint16(569), - 1042: uint16(1118), - 1043: uint16(454), - 1044: uint16(351), - 1045: uint16(495), - 1046: uint16(354), - 1047: uint16(1266), - 1048: uint16(569), - 1049: uint16(209), - 1050: uint16(572), - 1051: uint16(418), - 1052: uint16(179), - 1053: uint16(572), - 1054: uint16(1031), - 1055: uint16(242), - 1056: uint16(385), - 1057: uint16(1119), - 1058: uint16(523), - 1059: uint16(123), - 1060: uint16(123), - 1061: uint16(123), - 1062: uint16(123), - 1063: uint16(122), - 1064: uint16(122), - 1065: uint16(121), - 1066: uint16(121), - 1067: uint16(121), - 1068: uint16(120), - 1069: uint16(117), - 1070: uint16(448), - 1071: uint16(1020), - 1072: uint16(108), - 1073: uint16(72), - 1074: uint16(72), - 1075: uint16(1019), - 1076: uint16(13), - 1077: uint16(13), - 1078: uint16(915), - 1079: uint16(572), - 1080: uint16(1498), - 1081: uint16(572), - 1082: uint16(286), - 1083: uint16(286), - 1084: uint16(98), - 1085: uint16(530), - 1086: uint16(1537), - 1087: uint16(452), - 1088: uint16(916), - 1089: uint16(1334), - 1090: uint16(1329), - 1091: uint16(203), - 1092: uint16(411), - 1093: uint16(286), - 1094: uint16(286), - 1095: uint16(569), - 1096: uint16(152), - 1097: uint16(211), - 1098: uint16(1498), - 1099: uint16(1500), - 1100: uint16(426), - 1101: uint16(569), - 1102: uint16(56), - 1103: uint16(56), - 1104: uint16(57), - 1105: uint16(57), - 1106: uint16(569), - 1107: uint16(1019), - 1108: uint16(1019), - 1109: uint16(1021), - 1110: uint16(447), - 1111: uint16(572), - 1112: uint16(411), - 1113: uint16(531), - 1114: uint16(12), - 1115: uint16(297), - 1116: uint16(126), - 1117: uint16(127), - 1118: uint16(81), - 1119: uint16(1217), - 1120: uint16(1217), - 1121: uint16(1054), - 1122: uint16(1057), - 1123: uint16(1044), - 1124: uint16(1044), - 1125: uint16(124), - 1126: uint16(124), - 1127: uint16(125), - 1128: uint16(125), - 1129: uint16(125), - 1130: uint16(125), - 1131: uint16(572), - 1132: uint16(411), - 1133: uint16(867), - 1134: uint16(15), - 1135: uint16(15), - 1136: uint16(126), - 1137: uint16(127), - 1138: uint16(81), - 1139: uint16(1217), - 1140: uint16(1217), - 1141: uint16(1054), - 1142: uint16(1057), - 1143: uint16(1044), - 1144: uint16(1044), - 1145: uint16(124), - 1146: uint16(124), - 1147: uint16(125), - 1148: uint16(125), - 1149: uint16(125), - 1150: uint16(125), - 1151: uint16(373), - 1152: uint16(529), - 1153: uint16(264), - 1154: uint16(44), - 1155: uint16(44), - 1156: uint16(126), - 1157: uint16(115), - 1158: uint16(81), - 1159: uint16(1217), - 1160: uint16(1217), - 1161: uint16(1054), - 1162: uint16(1057), - 1163: uint16(1044), - 1164: uint16(1044), - 1165: uint16(124), - 1166: uint16(124), - 1167: uint16(125), - 1168: uint16(125), - 1169: uint16(125), - 1170: uint16(125), - 1171: uint16(1498), - 1172: uint16(478), - 1173: uint16(1271), - 1174: uint16(417), - 1175: uint16(123), - 1176: uint16(123), - 1177: uint16(123), - 1178: uint16(123), - 1179: uint16(122), - 1180: uint16(122), - 1181: uint16(121), - 1182: uint16(121), - 1183: uint16(121), - 1184: uint16(120), - 1185: uint16(117), - 1186: uint16(448), - 1187: uint16(205), - 1188: uint16(1213), - 1189: uint16(495), - 1190: uint16(430), - 1191: uint16(867), - 1192: uint16(468), - 1193: uint16(322), - 1194: uint16(495), - 1195: uint16(123), - 1196: uint16(123), - 1197: uint16(123), - 1198: uint16(123), - 1199: uint16(122), - 1200: uint16(122), - 1201: uint16(121), - 1202: uint16(121), - 1203: uint16(121), - 1204: uint16(120), - 1205: uint16(117), - 1206: uint16(448), - 1207: uint16(572), - 1208: uint16(557), - 1209: uint16(1140), - 1210: uint16(1642), - 1211: uint16(1422), - 1212: uint16(1642), - 1213: uint16(543), - 1214: uint16(572), - 1215: uint16(123), - 1216: uint16(123), - 1217: uint16(123), - 1218: uint16(123), - 1219: uint16(122), - 1220: uint16(122), - 1221: uint16(121), - 1222: uint16(121), - 1223: uint16(121), - 1224: uint16(120), - 1225: uint16(117), - 1226: uint16(448), - 1227: uint16(572), - 1228: uint16(1422), - 1229: uint16(572), - 1230: uint16(13), - 1231: uint16(13), - 1232: uint16(542), - 1233: uint16(323), - 1234: uint16(1325), - 1235: uint16(411), - 1236: uint16(334), - 1237: uint16(58), - 1238: uint16(58), - 1239: uint16(349), - 1240: uint16(1422), - 1241: uint16(1170), - 1242: uint16(326), - 1243: uint16(286), - 1244: uint16(286), - 1245: uint16(549), - 1246: uint16(1213), - 1247: uint16(300), - 1248: uint16(895), - 1249: uint16(530), - 1250: uint16(45), - 1251: uint16(45), - 1252: uint16(59), - 1253: uint16(59), - 1254: uint16(1140), - 1255: uint16(1643), - 1256: uint16(569), - 1257: uint16(1643), - 1258: uint16(565), - 1259: uint16(417), - 1260: uint16(127), - 1261: uint16(81), - 1262: uint16(1217), - 1263: uint16(1217), - 1264: uint16(1054), - 1265: uint16(1057), - 1266: uint16(1044), - 1267: uint16(1044), - 1268: uint16(124), - 1269: uint16(124), - 1270: uint16(125), - 1271: uint16(125), - 1272: uint16(125), - 1273: uint16(125), - 1274: uint16(1367), - 1275: uint16(373), - 1276: uint16(500), - 1277: uint16(290), - 1278: uint16(1193), - 1279: uint16(512), - 1280: uint16(1366), - 1281: uint16(427), - 1282: uint16(394), - 1283: uint16(394), - 1284: uint16(393), - 1285: uint16(275), - 1286: uint16(391), - 1287: uint16(896), - 1288: uint16(1138), - 1289: uint16(852), - 1290: uint16(478), - 1291: uint16(258), - 1292: uint16(1422), - 1293: uint16(1170), - 1294: uint16(463), - 1295: uint16(1159), - 1296: uint16(12), - 1297: uint16(331), - 1298: uint16(428), - 1299: uint16(333), - 1300: uint16(1117), - 1301: uint16(460), - 1302: uint16(236), - 1303: uint16(258), - 1304: uint16(325), - 1305: uint16(460), - 1306: uint16(544), - 1307: uint16(1544), - 1308: uint16(1159), - 1309: uint16(1098), - 1310: uint16(491), - 1311: uint16(1159), - 1312: uint16(324), - 1313: uint16(1098), - 1314: uint16(440), - 1315: uint16(1118), - 1316: uint16(335), - 1317: uint16(516), - 1318: uint16(123), - 1319: uint16(123), - 1320: uint16(123), - 1321: uint16(123), - 1322: uint16(122), - 1323: uint16(122), - 1324: uint16(121), - 1325: uint16(121), - 1326: uint16(121), - 1327: uint16(120), - 1328: uint16(117), - 1329: uint16(448), - 1330: uint16(1119), - 1331: uint16(318), - 1332: uint16(563), - 1333: uint16(1138), - 1334: uint16(572), - 1335: uint16(1193), - 1336: uint16(1194), - 1337: uint16(1193), - 1338: uint16(112), - 1339: uint16(564), - 1340: uint16(201), + 345: uint16(555), + 346: uint16(1149), + 347: uint16(1657), + 348: uint16(1628), + 349: uint16(1657), + 350: uint16(45), + 351: uint16(128), + 352: uint16(125), + 353: uint16(232), + 354: uint16(1204), + 355: uint16(1205), + 356: uint16(1204), + 357: uint16(1250), + 358: uint16(571), + 359: uint16(1169), + 360: uint16(132), + 361: uint16(132), + 362: uint16(132), + 363: uint16(132), + 364: uint16(131), + 365: uint16(131), + 366: uint16(130), + 367: uint16(130), + 368: uint16(130), + 369: uint16(129), + 370: uint16(126), + 371: uint16(450), + 372: uint16(1169), + 373: uint16(287), + 374: uint16(287), + 375: uint16(1169), + 376: uint16(1019), + 377: uint16(576), + 378: uint16(422), + 379: uint16(1019), + 380: uint16(412), + 381: uint16(451), + 382: uint16(1602), + 383: uint16(582), + 384: uint16(2), + 385: uint16(1259), + 386: uint16(573), + 387: uint16(44), + 388: uint16(561), + 389: uint16(95), + 390: uint16(320), + 391: uint16(110), + 392: uint16(153), + 393: uint16(565), + 394: uint16(1204), + 395: uint16(1205), + 396: uint16(1204), + 397: uint16(522), + 398: uint16(522), + 399: uint16(1341), + 400: uint16(81), + 401: uint16(81), + 402: uint16(7), + 403: uint16(44), + 404: uint16(135), + 405: uint16(136), + 406: uint16(90), + 407: uint16(1228), + 408: uint16(1228), + 409: uint16(1063), + 410: uint16(1066), + 411: uint16(1053), + 412: uint16(1053), + 413: uint16(133), + 414: uint16(133), + 415: uint16(134), + 416: uint16(134), + 417: uint16(134), + 418: uint16(134), + 419: uint16(295), + 420: uint16(1149), + 421: uint16(1658), + 422: uint16(1040), + 423: uint16(1658), + 424: uint16(1204), + 425: uint16(1147), + 426: uint16(319), + 427: uint16(567), + 428: uint16(119), + 429: uint16(119), + 430: uint16(343), + 431: uint16(466), + 432: uint16(331), + 433: uint16(343), + 434: uint16(287), + 435: uint16(287), + 436: uint16(120), + 437: uint16(556), + 438: uint16(451), + 439: uint16(577), + 440: uint16(451), + 441: uint16(1169), + 442: uint16(1169), + 443: uint16(1028), + 444: uint16(319), + 445: uint16(567), + 446: uint16(438), + 447: uint16(573), + 448: uint16(210), + 449: uint16(561), + 450: uint16(1339), + 451: uint16(1451), + 452: uint16(546), + 453: uint16(531), + 454: uint16(1169), + 455: uint16(1169), + 456: uint16(1598), + 457: uint16(1169), + 458: uint16(1169), + 459: uint16(416), + 460: uint16(319), + 461: uint16(567), + 462: uint16(243), + 463: uint16(132), + 464: uint16(132), + 465: uint16(132), + 466: uint16(132), + 467: uint16(131), + 468: uint16(131), + 469: uint16(130), + 470: uint16(130), + 471: uint16(130), + 472: uint16(129), + 473: uint16(126), + 474: uint16(450), + 475: uint16(1028), + 476: uint16(1028), + 477: uint16(1030), + 478: uint16(1031), + 479: uint16(35), + 480: uint16(44), + 481: uint16(1204), + 482: uint16(1205), + 483: uint16(1204), + 484: uint16(472), + 485: uint16(287), + 486: uint16(287), + 487: uint16(1328), + 488: uint16(412), + 489: uint16(1307), + 490: uint16(372), + 491: uint16(1595), + 492: uint16(359), + 493: uint16(225), + 494: uint16(454), + 495: uint16(1204), + 496: uint16(195), + 497: uint16(1328), + 498: uint16(573), + 499: uint16(1147), + 500: uint16(561), + 501: uint16(1333), + 502: uint16(1333), + 503: uint16(274), + 504: uint16(576), + 505: uint16(1188), + 506: uint16(576), + 507: uint16(340), + 508: uint16(46), + 509: uint16(196), + 510: uint16(537), + 511: uint16(217), + 512: uint16(135), + 513: uint16(136), + 514: uint16(90), + 515: uint16(1228), + 516: uint16(1228), + 517: uint16(1063), + 518: uint16(1066), + 519: uint16(1053), + 520: uint16(1053), + 521: uint16(133), + 522: uint16(133), + 523: uint16(134), + 524: uint16(134), + 525: uint16(134), + 526: uint16(134), + 527: uint16(19), + 528: uint16(19), + 529: uint16(19), + 530: uint16(19), + 531: uint16(412), + 532: uint16(581), + 533: uint16(1204), + 534: uint16(1259), + 535: uint16(511), + 536: uint16(1204), + 537: uint16(319), + 538: uint16(567), + 539: uint16(320), + 540: uint16(944), + 541: uint16(153), + 542: uint16(425), + 543: uint16(491), + 544: uint16(430), + 545: uint16(943), + 546: uint16(1204), + 547: uint16(488), + 548: uint16(1341), + 549: uint16(1450), + 550: uint16(532), + 551: uint16(1277), + 552: uint16(1204), + 553: uint16(1205), + 554: uint16(1204), + 555: uint16(135), + 556: uint16(136), + 557: uint16(90), + 558: uint16(1228), + 559: uint16(1228), + 560: uint16(1063), + 561: uint16(1066), + 562: uint16(1053), + 563: uint16(1053), + 564: uint16(133), + 565: uint16(133), + 566: uint16(134), + 567: uint16(134), + 568: uint16(134), + 569: uint16(134), + 570: uint16(575), + 571: uint16(132), + 572: uint16(132), + 573: uint16(132), + 574: uint16(132), + 575: uint16(131), + 576: uint16(131), + 577: uint16(130), + 578: uint16(130), + 579: uint16(130), + 580: uint16(129), + 581: uint16(126), + 582: uint16(450), + 583: uint16(287), + 584: uint16(287), + 585: uint16(528), + 586: uint16(287), + 587: uint16(287), + 588: uint16(372), + 589: uint16(1595), + 590: uint16(1204), + 591: uint16(1205), + 592: uint16(1204), + 593: uint16(1204), + 594: uint16(1205), + 595: uint16(1204), + 596: uint16(573), + 597: uint16(486), + 598: uint16(561), + 599: uint16(573), + 600: uint16(889), + 601: uint16(561), + 602: uint16(412), + 603: uint16(1204), + 604: uint16(1205), + 605: uint16(1204), + 606: uint16(886), + 607: uint16(40), + 608: uint16(22), + 609: uint16(22), + 610: uint16(220), + 611: uint16(243), + 612: uint16(525), + 613: uint16(1449), + 614: uint16(132), + 615: uint16(132), + 616: uint16(132), + 617: uint16(132), + 618: uint16(131), + 619: uint16(131), + 620: uint16(130), + 621: uint16(130), + 622: uint16(130), + 623: uint16(129), + 624: uint16(126), + 625: uint16(450), + 626: uint16(135), + 627: uint16(136), + 628: uint16(90), + 629: uint16(1228), + 630: uint16(1228), + 631: uint16(1063), + 632: uint16(1066), + 633: uint16(1053), + 634: uint16(1053), + 635: uint16(133), + 636: uint16(133), + 637: uint16(134), + 638: uint16(134), + 639: uint16(134), + 640: uint16(134), + 641: uint16(412), + 642: uint16(180), + 643: uint16(454), + 644: uint16(1204), + 645: uint16(879), + 646: uint16(255), + 647: uint16(287), + 648: uint16(287), + 649: uint16(510), + 650: uint16(507), + 651: uint16(506), + 652: uint16(372), + 653: uint16(1595), + 654: uint16(1568), + 655: uint16(1331), + 656: uint16(1331), + 657: uint16(576), + 658: uint16(889), + 659: uint16(505), + 660: uint16(573), + 661: uint16(44), + 662: uint16(561), + 663: uint16(559), + 664: uint16(1207), + 665: uint16(135), + 666: uint16(136), + 667: uint16(90), + 668: uint16(1228), + 669: uint16(1228), + 670: uint16(1063), + 671: uint16(1066), + 672: uint16(1053), + 673: uint16(1053), + 674: uint16(133), + 675: uint16(133), + 676: uint16(134), + 677: uint16(134), + 678: uint16(134), + 679: uint16(134), + 680: uint16(81), + 681: uint16(81), + 682: uint16(422), + 683: uint16(576), + 684: uint16(377), + 685: uint16(132), + 686: uint16(132), + 687: uint16(132), + 688: uint16(132), + 689: uint16(131), + 690: uint16(131), + 691: uint16(130), + 692: uint16(130), + 693: uint16(130), + 694: uint16(129), + 695: uint16(126), + 696: uint16(450), + 697: uint16(297), + 698: uint16(287), + 699: uint16(287), + 700: uint16(460), + 701: uint16(1204), + 702: uint16(1205), + 703: uint16(1204), + 704: uint16(1204), + 705: uint16(534), + 706: uint16(19), + 707: uint16(19), + 708: uint16(448), + 709: uint16(448), + 710: uint16(448), + 711: uint16(573), + 712: uint16(412), + 713: uint16(561), + 714: uint16(230), + 715: uint16(436), + 716: uint16(1187), + 717: uint16(535), + 718: uint16(319), + 719: uint16(567), + 720: uint16(363), + 721: uint16(432), + 722: uint16(1207), + 723: uint16(1435), + 724: uint16(132), + 725: uint16(132), + 726: uint16(132), + 727: uint16(132), + 728: uint16(131), + 729: uint16(131), + 730: uint16(130), + 731: uint16(130), + 732: uint16(130), + 733: uint16(129), + 734: uint16(126), + 735: uint16(450), + 736: uint16(135), + 737: uint16(136), + 738: uint16(90), + 739: uint16(1228), + 740: uint16(1228), + 741: uint16(1063), + 742: uint16(1066), + 743: uint16(1053), + 744: uint16(1053), + 745: uint16(133), + 746: uint16(133), + 747: uint16(134), + 748: uint16(134), + 749: uint16(134), + 750: uint16(134), + 751: uint16(412), + 752: uint16(211), + 753: uint16(949), + 754: uint16(1169), + 755: uint16(1041), + 756: uint16(1110), + 757: uint16(1110), + 758: uint16(494), + 759: uint16(547), + 760: uint16(547), + 761: uint16(1204), + 762: uint16(1205), + 763: uint16(1204), + 764: uint16(7), + 765: uint16(539), + 766: uint16(1570), + 767: uint16(1169), + 768: uint16(376), + 769: uint16(576), + 770: uint16(1169), + 771: uint16(5), + 772: uint16(1204), + 773: uint16(486), + 774: uint16(3), + 775: uint16(135), + 776: uint16(136), + 777: uint16(90), + 778: uint16(1228), + 779: uint16(1228), + 780: uint16(1063), + 781: uint16(1066), + 782: uint16(1053), + 783: uint16(1053), + 784: uint16(133), + 785: uint16(133), + 786: uint16(134), + 787: uint16(134), + 788: uint16(134), + 789: uint16(134), + 790: uint16(576), + 791: uint16(513), + 792: uint16(19), + 793: uint16(19), + 794: uint16(427), + 795: uint16(132), + 796: uint16(132), + 797: uint16(132), + 798: uint16(132), + 799: uint16(131), + 800: uint16(131), + 801: uint16(130), + 802: uint16(130), + 803: uint16(130), + 804: uint16(129), + 805: uint16(126), + 806: uint16(450), + 807: uint16(305), + 808: uint16(1204), + 809: uint16(433), + 810: uint16(225), + 811: uint16(1204), + 812: uint16(385), + 813: uint16(19), + 814: uint16(19), + 815: uint16(273), + 816: uint16(290), + 817: uint16(371), + 818: uint16(516), + 819: uint16(366), + 820: uint16(515), + 821: uint16(260), + 822: uint16(412), + 823: uint16(538), + 824: uint16(1568), + 825: uint16(549), + 826: uint16(1024), + 827: uint16(362), + 828: uint16(437), + 829: uint16(1204), + 830: uint16(1205), + 831: uint16(1204), + 832: uint16(902), + 833: uint16(1552), + 834: uint16(132), + 835: uint16(132), + 836: uint16(132), + 837: uint16(132), + 838: uint16(131), + 839: uint16(131), + 840: uint16(130), + 841: uint16(130), + 842: uint16(130), + 843: uint16(129), + 844: uint16(126), + 845: uint16(450), + 846: uint16(135), + 847: uint16(136), + 848: uint16(90), + 849: uint16(1228), + 850: uint16(1228), + 851: uint16(1063), + 852: uint16(1066), + 853: uint16(1053), + 854: uint16(1053), + 855: uint16(133), + 856: uint16(133), + 857: uint16(134), + 858: uint16(134), + 859: uint16(134), + 860: uint16(134), + 861: uint16(412), + 862: uint16(1435), + 863: uint16(514), + 864: uint16(1281), + 865: uint16(1204), + 866: uint16(1205), + 867: uint16(1204), + 868: uint16(1204), + 869: uint16(1205), + 870: uint16(1204), + 871: uint16(903), + 872: uint16(48), + 873: uint16(342), + 874: uint16(1568), + 875: uint16(1568), + 876: uint16(1279), + 877: uint16(1627), + 878: uint16(1568), + 879: uint16(911), + 880: uint16(576), + 881: uint16(129), + 882: uint16(126), + 883: uint16(450), + 884: uint16(110), + 885: uint16(135), + 886: uint16(136), + 887: uint16(90), + 888: uint16(1228), + 889: uint16(1228), + 890: uint16(1063), + 891: uint16(1066), + 892: uint16(1053), + 893: uint16(1053), + 894: uint16(133), + 895: uint16(133), + 896: uint16(134), + 897: uint16(134), + 898: uint16(134), + 899: uint16(134), + 900: uint16(265), + 901: uint16(576), + 902: uint16(459), + 903: uint16(19), + 904: uint16(19), + 905: uint16(132), + 906: uint16(132), + 907: uint16(132), + 908: uint16(132), + 909: uint16(131), + 910: uint16(131), + 911: uint16(130), + 912: uint16(130), + 913: uint16(130), + 914: uint16(129), + 915: uint16(126), + 916: uint16(450), + 917: uint16(1345), + 918: uint16(204), + 919: uint16(576), + 920: uint16(459), + 921: uint16(458), + 922: uint16(50), + 923: uint16(47), + 924: uint16(19), + 925: uint16(19), + 926: uint16(49), + 927: uint16(434), + 928: uint16(1105), + 929: uint16(573), + 930: uint16(497), + 931: uint16(561), + 932: uint16(412), + 933: uint16(428), + 934: uint16(108), + 935: uint16(1224), + 936: uint16(1569), + 937: uint16(1554), + 938: uint16(376), + 939: uint16(205), + 940: uint16(550), + 941: uint16(550), + 942: uint16(81), + 943: uint16(81), + 944: uint16(132), + 945: uint16(132), + 946: uint16(132), + 947: uint16(132), + 948: uint16(131), + 949: uint16(131), + 950: uint16(130), + 951: uint16(130), + 952: uint16(130), + 953: uint16(129), + 954: uint16(126), + 955: uint16(450), + 956: uint16(135), + 957: uint16(136), + 958: uint16(90), + 959: uint16(1228), + 960: uint16(1228), + 961: uint16(1063), + 962: uint16(1066), + 963: uint16(1053), + 964: uint16(1053), + 965: uint16(133), + 966: uint16(133), + 967: uint16(134), + 968: uint16(134), + 969: uint16(134), + 970: uint16(134), + 971: uint16(480), + 972: uint16(576), + 973: uint16(1204), + 974: uint16(576), + 975: uint16(1541), + 976: uint16(412), + 977: uint16(1435), + 978: uint16(969), + 979: uint16(315), + 980: uint16(1659), + 981: uint16(398), + 982: uint16(284), + 983: uint16(497), + 984: uint16(969), + 985: uint16(893), + 986: uint16(1569), + 987: uint16(1569), + 988: uint16(376), + 989: uint16(376), + 990: uint16(1569), + 991: uint16(461), + 992: uint16(376), + 993: uint16(1224), + 994: uint16(459), + 995: uint16(80), + 996: uint16(80), + 997: uint16(81), + 998: uint16(81), + 999: uint16(497), + 1000: uint16(374), + 1001: uint16(114), + 1002: uint16(90), + 1003: uint16(1228), + 1004: uint16(1228), + 1005: uint16(1063), + 1006: uint16(1066), + 1007: uint16(1053), + 1008: uint16(1053), + 1009: uint16(133), + 1010: uint16(133), + 1011: uint16(134), + 1012: uint16(134), + 1013: uint16(134), + 1014: uint16(134), + 1015: uint16(132), + 1016: uint16(132), + 1017: uint16(132), + 1018: uint16(132), + 1019: uint16(131), + 1020: uint16(131), + 1021: uint16(130), + 1022: uint16(130), + 1023: uint16(130), + 1024: uint16(129), + 1025: uint16(126), + 1026: uint16(450), + 1027: uint16(1204), + 1028: uint16(1505), + 1029: uint16(576), + 1030: uint16(1204), + 1031: uint16(1205), + 1032: uint16(1204), + 1033: uint16(1366), + 1034: uint16(316), + 1035: uint16(486), + 1036: uint16(281), + 1037: uint16(281), + 1038: uint16(497), + 1039: uint16(431), + 1040: uint16(557), + 1041: uint16(288), + 1042: uint16(288), + 1043: uint16(402), + 1044: uint16(1340), + 1045: uint16(471), + 1046: uint16(345), + 1047: uint16(298), + 1048: uint16(429), + 1049: uint16(573), + 1050: uint16(576), + 1051: uint16(561), + 1052: uint16(81), + 1053: uint16(81), + 1054: uint16(573), + 1055: uint16(374), + 1056: uint16(561), + 1057: uint16(971), + 1058: uint16(386), + 1059: uint16(132), + 1060: uint16(132), + 1061: uint16(132), + 1062: uint16(132), + 1063: uint16(131), + 1064: uint16(131), + 1065: uint16(130), + 1066: uint16(130), + 1067: uint16(130), + 1068: uint16(129), + 1069: uint16(126), + 1070: uint16(450), + 1071: uint16(231), + 1072: uint16(117), + 1073: uint16(81), + 1074: uint16(81), + 1075: uint16(287), + 1076: uint16(287), + 1077: uint16(231), + 1078: uint16(287), + 1079: uint16(287), + 1080: uint16(576), + 1081: uint16(1511), + 1082: uint16(576), + 1083: uint16(1336), + 1084: uint16(1204), + 1085: uint16(1205), + 1086: uint16(1204), + 1087: uint16(139), + 1088: uint16(573), + 1089: uint16(556), + 1090: uint16(561), + 1091: uint16(573), + 1092: uint16(412), + 1093: uint16(561), + 1094: uint16(441), + 1095: uint16(456), + 1096: uint16(969), + 1097: uint16(213), + 1098: uint16(558), + 1099: uint16(1511), + 1100: uint16(1513), + 1101: uint16(1550), + 1102: uint16(969), + 1103: uint16(143), + 1104: uint16(143), + 1105: uint16(145), + 1106: uint16(145), + 1107: uint16(1368), + 1108: uint16(314), + 1109: uint16(478), + 1110: uint16(444), + 1111: uint16(970), + 1112: uint16(412), + 1113: uint16(850), + 1114: uint16(851), + 1115: uint16(852), + 1116: uint16(135), + 1117: uint16(136), + 1118: uint16(90), + 1119: uint16(1228), + 1120: uint16(1228), + 1121: uint16(1063), + 1122: uint16(1066), + 1123: uint16(1053), + 1124: uint16(1053), + 1125: uint16(133), + 1126: uint16(133), + 1127: uint16(134), + 1128: uint16(134), + 1129: uint16(134), + 1130: uint16(134), + 1131: uint16(357), + 1132: uint16(412), + 1133: uint16(397), + 1134: uint16(1148), + 1135: uint16(304), + 1136: uint16(135), + 1137: uint16(136), + 1138: uint16(90), + 1139: uint16(1228), + 1140: uint16(1228), + 1141: uint16(1063), + 1142: uint16(1066), + 1143: uint16(1053), + 1144: uint16(1053), + 1145: uint16(133), + 1146: uint16(133), + 1147: uint16(134), + 1148: uint16(134), + 1149: uint16(134), + 1150: uint16(134), + 1151: uint16(1575), + 1152: uint16(323), + 1153: uint16(6), + 1154: uint16(862), + 1155: uint16(7), + 1156: uint16(135), + 1157: uint16(124), + 1158: uint16(90), + 1159: uint16(1228), + 1160: uint16(1228), + 1161: uint16(1063), + 1162: uint16(1066), + 1163: uint16(1053), + 1164: uint16(1053), + 1165: uint16(133), + 1166: uint16(133), + 1167: uint16(134), + 1168: uint16(134), + 1169: uint16(134), + 1170: uint16(134), + 1171: uint16(409), + 1172: uint16(408), + 1173: uint16(1511), + 1174: uint16(212), + 1175: uint16(132), + 1176: uint16(132), + 1177: uint16(132), + 1178: uint16(132), + 1179: uint16(131), + 1180: uint16(131), + 1181: uint16(130), + 1182: uint16(130), + 1183: uint16(130), + 1184: uint16(129), + 1185: uint16(126), + 1186: uint16(450), + 1187: uint16(411), + 1188: uint16(118), + 1189: uint16(1204), + 1190: uint16(116), + 1191: uint16(10), + 1192: uint16(352), + 1193: uint16(265), + 1194: uint16(355), + 1195: uint16(132), + 1196: uint16(132), + 1197: uint16(132), + 1198: uint16(132), + 1199: uint16(131), + 1200: uint16(131), + 1201: uint16(130), + 1202: uint16(130), + 1203: uint16(130), + 1204: uint16(129), + 1205: uint16(126), + 1206: uint16(450), + 1207: uint16(576), + 1208: uint16(324), + 1209: uint16(306), + 1210: uint16(576), + 1211: uint16(306), + 1212: uint16(1250), + 1213: uint16(469), + 1214: uint16(158), + 1215: uint16(132), + 1216: uint16(132), + 1217: uint16(132), + 1218: uint16(132), + 1219: uint16(131), + 1220: uint16(131), + 1221: uint16(130), + 1222: uint16(130), + 1223: uint16(130), + 1224: uint16(129), + 1225: uint16(126), + 1226: uint16(450), + 1227: uint16(207), + 1228: uint16(1224), + 1229: uint16(1126), + 1230: uint16(65), + 1231: uint16(65), + 1232: uint16(470), + 1233: uint16(66), + 1234: uint16(66), + 1235: uint16(412), + 1236: uint16(447), + 1237: uint16(446), + 1238: uint16(882), + 1239: uint16(531), + 1240: uint16(335), + 1241: uint16(258), + 1242: uint16(257), + 1243: uint16(256), + 1244: uint16(1127), + 1245: uint16(1233), + 1246: uint16(1204), + 1247: uint16(1205), + 1248: uint16(1204), + 1249: uint16(327), + 1250: uint16(1235), + 1251: uint16(874), + 1252: uint16(159), + 1253: uint16(576), + 1254: uint16(16), + 1255: uint16(480), + 1256: uint16(1085), + 1257: uint16(1040), + 1258: uint16(1234), + 1259: uint16(1128), + 1260: uint16(136), + 1261: uint16(90), + 1262: uint16(1228), + 1263: uint16(1228), + 1264: uint16(1063), + 1265: uint16(1066), + 1266: uint16(1053), + 1267: uint16(1053), + 1268: uint16(133), + 1269: uint16(133), + 1270: uint16(134), + 1271: uint16(134), + 1272: uint16(134), + 1273: uint16(134), + 1274: uint16(1029), + 1275: uint16(576), + 1276: uint16(81), + 1277: uint16(81), + 1278: uint16(1028), + 1279: uint16(1040), + 1280: uint16(922), + 1281: uint16(576), + 1282: uint16(463), + 1283: uint16(1236), + 1284: uint16(576), + 1285: uint16(1236), + 1286: uint16(1224), + 1287: uint16(502), + 1288: uint16(107), + 1289: uint16(1435), + 1290: uint16(923), + 1291: uint16(6), + 1292: uint16(576), + 1293: uint16(410), + 1294: uint16(1498), + 1295: uint16(882), + 1296: uint16(1029), + 1297: uint16(480), + 1298: uint16(21), + 1299: uint16(21), + 1300: uint16(1028), + 1301: uint16(332), + 1302: uint16(1380), + 1303: uint16(334), + 1304: uint16(53), + 1305: uint16(53), + 1306: uint16(497), + 1307: uint16(81), + 1308: uint16(81), + 1309: uint16(874), + 1310: uint16(1028), + 1311: uint16(1028), + 1312: uint16(1030), + 1313: uint16(445), + 1314: uint16(259), + 1315: uint16(19), + 1316: uint16(19), + 1317: uint16(533), + 1318: uint16(132), + 1319: uint16(132), + 1320: uint16(132), + 1321: uint16(132), + 1322: uint16(131), + 1323: uint16(131), + 1324: uint16(130), + 1325: uint16(130), + 1326: uint16(130), + 1327: uint16(129), + 1328: uint16(126), + 1329: uint16(450), + 1330: uint16(551), + 1331: uint16(301), + 1332: uint16(1028), + 1333: uint16(1028), + 1334: uint16(1030), + 1335: uint16(107), + 1336: uint16(532), + 1337: uint16(545), + 1338: uint16(121), + 1339: uint16(568), + 1340: uint16(1188), 1341: uint16(4), - 1342: uint16(238), - 1343: uint16(433), - 1344: uint16(935), - 1345: uint16(490), - 1346: uint16(285), - 1347: uint16(228), - 1348: uint16(1517), - 1349: uint16(934), - 1350: uint16(170), - 1351: uint16(560), - 1352: uint16(572), - 1353: uint16(142), - 1354: uint16(1516), - 1355: uint16(567), - 1356: uint16(572), - 1357: uint16(60), - 1358: uint16(60), - 1359: uint16(572), - 1360: uint16(416), - 1361: uint16(572), - 1362: uint16(441), - 1363: uint16(572), - 1364: uint16(535), - 1365: uint16(302), - 1366: uint16(875), - 1367: uint16(8), - 1368: uint16(487), - 1369: uint16(572), - 1370: uint16(237), - 1371: uint16(572), - 1372: uint16(416), - 1373: uint16(572), - 1374: uint16(485), - 1375: uint16(61), - 1376: uint16(61), - 1377: uint16(572), - 1378: uint16(449), - 1379: uint16(62), - 1380: uint16(62), - 1381: uint16(332), - 1382: uint16(63), - 1383: uint16(63), - 1384: uint16(46), - 1385: uint16(46), - 1386: uint16(47), - 1387: uint16(47), - 1388: uint16(361), - 1389: uint16(572), - 1390: uint16(561), - 1391: uint16(572), - 1392: uint16(48), - 1393: uint16(48), - 1394: uint16(50), - 1395: uint16(50), - 1396: uint16(51), - 1397: uint16(51), - 1398: uint16(572), - 1399: uint16(295), - 1400: uint16(64), - 1401: uint16(64), - 1402: uint16(482), - 1403: uint16(295), - 1404: uint16(539), - 1405: uint16(412), - 1406: uint16(471), - 1407: uint16(1031), - 1408: uint16(572), - 1409: uint16(538), - 1410: uint16(318), - 1411: uint16(563), - 1412: uint16(65), - 1413: uint16(65), - 1414: uint16(66), - 1415: uint16(66), - 1416: uint16(409), - 1417: uint16(475), - 1418: uint16(572), - 1419: uint16(1031), - 1420: uint16(572), - 1421: uint16(14), - 1422: uint16(14), - 1423: uint16(875), - 1424: uint16(1020), - 1425: uint16(110), - 1426: uint16(110), - 1427: uint16(409), - 1428: uint16(1019), - 1429: uint16(572), - 1430: uint16(474), - 1431: uint16(67), - 1432: uint16(67), - 1433: uint16(111), - 1434: uint16(455), - 1435: uint16(449), - 1436: uint16(573), - 1437: uint16(449), - 1438: uint16(98), - 1439: uint16(317), - 1440: uint16(1019), - 1441: uint16(132), - 1442: uint16(132), - 1443: uint16(133), - 1444: uint16(133), - 1445: uint16(572), - 1446: uint16(1561), - 1447: uint16(572), - 1448: uint16(974), - 1449: uint16(409), - 1450: uint16(6), - 1451: uint16(1562), - 1452: uint16(68), - 1453: uint16(68), - 1454: uint16(1560), - 1455: uint16(6), - 1456: uint16(975), - 1457: uint16(572), - 1458: uint16(6), - 1459: uint16(1559), - 1460: uint16(1019), - 1461: uint16(1019), - 1462: uint16(1021), - 1463: uint16(6), - 1464: uint16(346), - 1465: uint16(218), - 1466: uint16(101), - 1467: uint16(531), - 1468: uint16(53), - 1469: uint16(53), - 1470: uint16(69), - 1471: uint16(69), - 1472: uint16(1019), - 1473: uint16(1019), - 1474: uint16(1021), - 1475: uint16(1022), - 1476: uint16(28), - 1477: uint16(1586), - 1478: uint16(1181), - 1479: uint16(451), - 1480: uint16(70), - 1481: uint16(70), - 1482: uint16(290), - 1483: uint16(87), - 1484: uint16(215), - 1485: uint16(31), - 1486: uint16(1363), - 1487: uint16(394), - 1488: uint16(394), - 1489: uint16(393), - 1490: uint16(275), - 1491: uint16(391), - 1492: uint16(350), - 1493: uint16(109), - 1494: uint16(852), - 1495: uint16(107), - 1496: uint16(572), - 1497: uint16(112), - 1498: uint16(564), - 1499: uint16(483), - 1500: uint16(4), - 1501: uint16(1212), - 1502: uint16(572), - 1503: uint16(239), - 1504: uint16(153), - 1505: uint16(572), - 1506: uint16(39), - 1507: uint16(236), - 1508: uint16(1299), - 1509: uint16(325), - 1510: uint16(112), - 1511: uint16(564), - 1512: uint16(1298), - 1513: uint16(4), - 1514: uint16(567), - 1515: uint16(572), - 1516: uint16(32), - 1517: uint16(324), - 1518: uint16(572), - 1519: uint16(54), - 1520: uint16(54), - 1521: uint16(572), - 1522: uint16(1135), - 1523: uint16(353), - 1524: uint16(398), - 1525: uint16(165), - 1526: uint16(165), - 1527: uint16(567), - 1528: uint16(166), - 1529: uint16(166), - 1530: uint16(572), - 1531: uint16(291), - 1532: uint16(355), - 1533: uint16(572), - 1534: uint16(17), - 1535: uint16(357), - 1536: uint16(572), - 1537: uint16(449), - 1538: uint16(77), - 1539: uint16(77), - 1540: uint16(1313), - 1541: uint16(55), - 1542: uint16(55), - 1543: uint16(1297), - 1544: uint16(73), - 1545: uint16(73), - 1546: uint16(572), - 1547: uint16(238), - 1548: uint16(470), - 1549: uint16(561), - 1550: uint16(449), - 1551: uint16(472), - 1552: uint16(364), - 1553: uint16(135), - 1554: uint16(135), - 1555: uint16(170), - 1556: uint16(74), - 1557: uint16(74), - 1558: uint16(142), - 1559: uint16(163), - 1560: uint16(163), - 1561: uint16(374), - 1562: uint16(561), - 1563: uint16(539), - 1564: uint16(572), - 1565: uint16(321), - 1566: uint16(572), - 1567: uint16(886), - 1568: uint16(540), - 1569: uint16(137), - 1570: uint16(137), - 1571: uint16(339), - 1572: uint16(1353), - 1573: uint16(422), - 1574: uint16(298), - 1575: uint16(237), - 1576: uint16(539), - 1577: uint16(572), - 1578: uint16(1031), - 1579: uint16(572), - 1580: uint16(340), - 1581: uint16(538), - 1582: uint16(101), - 1583: uint16(369), - 1584: uint16(110), - 1585: uint16(110), - 1586: uint16(162), - 1587: uint16(131), - 1588: uint16(131), - 1589: uint16(164), - 1590: uint16(164), - 1591: uint16(1031), - 1592: uint16(111), - 1593: uint16(368), - 1594: uint16(449), - 1595: uint16(573), - 1596: uint16(449), + 1342: uint16(1126), + 1343: uint16(1576), + 1344: uint16(449), + 1345: uint16(576), + 1346: uint16(462), + 1347: uint16(7), + 1348: uint16(1282), + 1349: uint16(418), + 1350: uint16(462), + 1351: uint16(350), + 1352: uint16(1435), + 1353: uint16(576), + 1354: uint16(518), + 1355: uint16(571), + 1356: uint16(544), + 1357: uint16(1127), + 1358: uint16(121), + 1359: uint16(568), + 1360: uint16(442), + 1361: uint16(4), + 1362: uint16(1188), + 1363: uint16(464), + 1364: uint16(533), + 1365: uint16(1180), + 1366: uint16(1223), + 1367: uint16(9), + 1368: uint16(67), + 1369: uint16(67), + 1370: uint16(487), + 1371: uint16(576), + 1372: uint16(1128), + 1373: uint16(303), + 1374: uint16(410), + 1375: uint16(571), + 1376: uint16(54), + 1377: uint16(54), + 1378: uint16(451), + 1379: uint16(576), + 1380: uint16(123), + 1381: uint16(944), + 1382: uint16(576), + 1383: uint16(417), + 1384: uint16(576), + 1385: uint16(333), + 1386: uint16(943), + 1387: uint16(1379), + 1388: uint16(576), + 1389: uint16(236), + 1390: uint16(565), + 1391: uint16(576), + 1392: uint16(1574), + 1393: uint16(564), + 1394: uint16(68), + 1395: uint16(68), + 1396: uint16(7), + 1397: uint16(576), + 1398: uint16(451), + 1399: uint16(362), + 1400: uint16(419), + 1401: uint16(182), + 1402: uint16(69), + 1403: uint16(69), + 1404: uint16(541), + 1405: uint16(70), + 1406: uint16(70), + 1407: uint16(71), + 1408: uint16(71), + 1409: uint16(540), + 1410: uint16(565), + 1411: uint16(72), + 1412: uint16(72), + 1413: uint16(484), + 1414: uint16(55), + 1415: uint16(55), + 1416: uint16(473), + 1417: uint16(1180), + 1418: uint16(296), + 1419: uint16(1040), + 1420: uint16(56), + 1421: uint16(56), + 1422: uint16(296), + 1423: uint16(493), + 1424: uint16(541), + 1425: uint16(119), + 1426: uint16(119), + 1427: uint16(410), + 1428: uint16(1573), + 1429: uint16(542), + 1430: uint16(569), + 1431: uint16(418), + 1432: uint16(7), + 1433: uint16(120), + 1434: uint16(1244), + 1435: uint16(451), + 1436: uint16(577), + 1437: uint16(451), + 1438: uint16(465), + 1439: uint16(1040), + 1440: uint16(1028), + 1441: uint16(576), + 1442: uint16(1557), + 1443: uint16(552), + 1444: uint16(476), + 1445: uint16(119), + 1446: uint16(119), + 1447: uint16(527), + 1448: uint16(259), + 1449: uint16(121), + 1450: uint16(568), + 1451: uint16(240), + 1452: uint16(4), + 1453: uint16(120), + 1454: uint16(576), + 1455: uint16(451), + 1456: uint16(577), + 1457: uint16(451), + 1458: uint16(576), + 1459: uint16(477), + 1460: uint16(1028), + 1461: uint16(576), + 1462: uint16(156), + 1463: uint16(576), + 1464: uint16(57), + 1465: uint16(57), + 1466: uint16(571), + 1467: uint16(576), + 1468: uint16(286), + 1469: uint16(229), + 1470: uint16(410), + 1471: uint16(336), + 1472: uint16(1028), + 1473: uint16(1028), + 1474: uint16(1030), + 1475: uint16(1031), + 1476: uint16(35), + 1477: uint16(59), + 1478: uint16(59), + 1479: uint16(219), + 1480: uint16(983), + 1481: uint16(60), + 1482: uint16(60), + 1483: uint16(220), + 1484: uint16(73), + 1485: uint16(73), + 1486: uint16(74), + 1487: uint16(74), + 1488: uint16(984), + 1489: uint16(451), + 1490: uint16(75), + 1491: uint16(75), + 1492: uint16(1028), + 1493: uint16(1028), + 1494: uint16(1030), + 1495: uint16(1031), + 1496: uint16(35), + 1497: uint16(96), + 1498: uint16(216), + 1499: uint16(291), + 1500: uint16(552), + 1501: uint16(565), + 1502: uint16(1188), + 1503: uint16(318), + 1504: uint16(395), + 1505: uint16(395), + 1506: uint16(394), + 1507: uint16(276), + 1508: uint16(392), + 1509: uint16(576), + 1510: uint16(485), + 1511: uint16(859), + 1512: uint16(474), + 1513: uint16(1311), + 1514: uint16(410), + 1515: uint16(541), + 1516: uint16(576), + 1517: uint16(417), + 1518: uint16(1530), + 1519: uint16(1144), + 1520: uint16(540), + 1521: uint16(399), + 1522: uint16(1188), + 1523: uint16(292), + 1524: uint16(237), + 1525: uint16(1153), + 1526: uint16(326), + 1527: uint16(38), + 1528: uint16(23), + 1529: uint16(576), + 1530: uint16(1040), + 1531: uint16(576), + 1532: uint16(20), + 1533: uint16(20), + 1534: uint16(325), + 1535: uint16(299), + 1536: uint16(119), + 1537: uint16(119), + 1538: uint16(164), + 1539: uint16(76), + 1540: uint16(76), + 1541: uint16(1529), + 1542: uint16(121), + 1543: uint16(568), + 1544: uint16(120), + 1545: uint16(4), + 1546: uint16(451), + 1547: uint16(577), + 1548: uint16(451), + 1549: uint16(203), + 1550: uint16(576), + 1551: uint16(1028), + 1552: uint16(141), + 1553: uint16(141), + 1554: uint16(142), + 1555: uint16(142), + 1556: uint16(576), + 1557: uint16(322), + 1558: uint16(39), + 1559: uint16(571), + 1560: uint16(341), + 1561: uint16(1021), + 1562: uint16(110), + 1563: uint16(264), + 1564: uint16(239), + 1565: uint16(901), + 1566: uint16(900), + 1567: uint16(423), + 1568: uint16(242), + 1569: uint16(908), + 1570: uint16(909), + 1571: uint16(370), + 1572: uint16(173), + 1573: uint16(77), + 1574: uint16(77), + 1575: uint16(43), + 1576: uint16(479), + 1577: uint16(1310), + 1578: uint16(264), + 1579: uint16(62), + 1580: uint16(62), + 1581: uint16(369), + 1582: uint16(451), + 1583: uint16(1028), + 1584: uint16(1028), + 1585: uint16(1030), + 1586: uint16(1031), + 1587: uint16(35), + 1588: uint16(1601), + 1589: uint16(1192), + 1590: uint16(453), + 1591: uint16(1092), + 1592: uint16(238), + 1593: uint16(291), + 1594: uint16(565), + 1595: uint16(163), + 1596: uint16(1309), 1597: uint16(110), - 1598: uint16(110), - 1599: uint16(1019), - 1600: uint16(157), - 1601: uint16(157), - 1602: uint16(141), - 1603: uint16(141), - 1604: uint16(572), - 1605: uint16(111), - 1606: uint16(572), - 1607: uint16(449), - 1608: uint16(573), - 1609: uint16(449), - 1610: uint16(412), - 1611: uint16(288), - 1612: uint16(1019), - 1613: uint16(572), - 1614: uint16(882), - 1615: uint16(318), - 1616: uint16(563), - 1617: uint16(572), - 1618: uint16(219), - 1619: uint16(572), - 1620: uint16(241), - 1621: uint16(1012), - 1622: uint16(477), - 1623: uint16(263), - 1624: uint16(263), - 1625: uint16(894), - 1626: uint16(893), - 1627: uint16(140), - 1628: uint16(140), - 1629: uint16(138), - 1630: uint16(138), - 1631: uint16(1019), - 1632: uint16(1019), - 1633: uint16(1021), - 1634: uint16(1022), - 1635: uint16(28), - 1636: uint16(139), - 1637: uint16(139), - 1638: uint16(525), - 1639: uint16(455), - 1640: uint16(76), - 1641: uint16(76), - 1642: uint16(78), - 1643: uint16(78), - 1644: uint16(1019), - 1645: uint16(1019), - 1646: uint16(1021), - 1647: uint16(1022), - 1648: uint16(28), - 1649: uint16(1181), - 1650: uint16(451), - 1651: uint16(572), - 1652: uint16(1083), - 1653: uint16(290), - 1654: uint16(112), - 1655: uint16(564), - 1656: uint16(1575), - 1657: uint16(4), - 1658: uint16(394), - 1659: uint16(394), - 1660: uint16(393), - 1661: uint16(275), - 1662: uint16(391), - 1663: uint16(572), - 1664: uint16(1023), - 1665: uint16(852), - 1666: uint16(572), - 1667: uint16(479), - 1668: uint16(345), - 1669: uint16(263), - 1670: uint16(101), - 1671: uint16(567), - 1672: uint16(882), - 1673: uint16(1376), - 1674: uint16(75), - 1675: uint16(75), - 1676: uint16(1421), - 1677: uint16(501), - 1678: uint16(236), - 1679: uint16(260), - 1680: uint16(325), - 1681: uint16(112), - 1682: uint16(564), - 1683: uint16(359), - 1684: uint16(4), - 1685: uint16(101), - 1686: uint16(43), - 1687: uint16(43), - 1688: uint16(324), - 1689: uint16(49), - 1690: uint16(49), - 1691: uint16(901), - 1692: uint16(902), - 1693: uint16(161), - 1694: uint16(449), - 1695: uint16(101), - 1696: uint16(977), - 1697: uint16(978), - 1698: uint16(567), - 1699: uint16(1079), - 1700: uint16(1349), - 1701: uint16(260), - 1702: uint16(965), - 1703: uint16(932), - 1704: uint16(263), - 1705: uint16(114), - 1706: uint16(561), - 1707: uint16(1095), - 1708: uint16(517), - 1709: uint16(1095), - 1710: uint16(1083), - 1711: uint16(1094), - 1712: uint16(865), - 1713: uint16(1094), - 1714: uint16(151), - 1715: uint16(933), - 1716: uint16(1144), - 1717: uint16(114), - 1718: uint16(238), - 1719: uint16(1361), - 1720: uint16(558), - 1721: uint16(449), - 1722: uint16(1023), - 1723: uint16(559), - 1724: uint16(1426), - 1725: uint16(1278), - 1726: uint16(170), - 1727: uint16(1269), - 1728: uint16(1257), - 1729: uint16(142), - 1730: uint16(1601), - 1731: uint16(1256), - 1732: uint16(1258), - 1733: uint16(561), - 1734: uint16(1594), - 1735: uint16(1031), - 1736: uint16(496), - 1737: uint16(278), - 1738: uint16(213), - 1739: uint16(1346), - 1740: uint16(310), - 1741: uint16(110), - 1742: uint16(110), - 1743: uint16(939), - 1744: uint16(311), - 1745: uint16(312), - 1746: uint16(237), - 1747: uint16(11), - 1748: uint16(234), - 1749: uint16(111), - 1750: uint16(221), - 1751: uint16(449), - 1752: uint16(573), - 1753: uint16(449), - 1754: uint16(293), - 1755: uint16(395), - 1756: uint16(1019), - 1757: uint16(1408), - 1758: uint16(337), - 1759: uint16(1403), - 1760: uint16(1396), - 1761: uint16(338), - 1762: uint16(1031), - 1763: uint16(299), - 1764: uint16(343), - 1765: uint16(1413), - 1766: uint16(1412), - 1767: uint16(481), - 1768: uint16(110), - 1769: uint16(110), - 1770: uint16(506), - 1771: uint16(402), - 1772: uint16(225), - 1773: uint16(1296), - 1774: uint16(206), - 1775: uint16(367), - 1776: uint16(111), - 1777: uint16(1358), - 1778: uint16(449), - 1779: uint16(573), - 1780: uint16(449), - 1781: uint16(412), - 1782: uint16(1359), - 1783: uint16(1019), - 1784: uint16(1489), - 1785: uint16(1488), - 1786: uint16(318), - 1787: uint16(563), - 1788: uint16(1019), - 1789: uint16(1019), - 1790: uint16(1021), - 1791: uint16(1022), - 1792: uint16(28), - 1793: uint16(562), - 1794: uint16(207), - 1795: uint16(220), - 1796: uint16(80), - 1797: uint16(564), - 1798: uint16(389), - 1799: uint16(4), - 1800: uint16(1597), - 1801: uint16(1357), - 1802: uint16(552), - 1803: uint16(1356), - 1804: uint16(1233), - 1805: uint16(181), - 1806: uint16(267), - 1807: uint16(232), - 1808: uint16(1536), - 1809: uint16(1534), - 1810: uint16(455), - 1811: uint16(1230), - 1812: uint16(420), - 1813: uint16(567), - 1814: uint16(82), - 1815: uint16(1019), - 1816: uint16(1019), - 1817: uint16(1021), - 1818: uint16(1022), - 1819: uint16(28), - 1820: uint16(86), - 1821: uint16(217), - 1822: uint16(85), - 1823: uint16(1494), - 1824: uint16(190), - 1825: uint16(175), - 1826: uint16(183), - 1827: uint16(465), - 1828: uint16(185), - 1829: uint16(466), - 1830: uint16(36), - 1831: uint16(1409), - 1832: uint16(186), - 1833: uint16(187), - 1834: uint16(188), - 1835: uint16(499), - 1836: uint16(449), - 1837: uint16(244), - 1838: uint16(37), - 1839: uint16(99), - 1840: uint16(400), - 1841: uint16(1415), - 1842: uint16(1414), - 1843: uint16(488), - 1844: uint16(1417), - 1845: uint16(194), - 1846: uint16(473), - 1847: uint16(403), - 1848: uint16(561), - 1849: uint16(1483), - 1850: uint16(248), - 1851: uint16(92), - 1852: uint16(1505), - 1853: uint16(494), - 1854: uint16(198), - 1855: uint16(279), - 1856: uint16(112), - 1857: uint16(564), - 1858: uint16(250), - 1859: uint16(4), - 1860: uint16(348), - 1861: uint16(497), - 1862: uint16(405), - 1863: uint16(352), - 1864: uint16(1259), - 1865: uint16(251), - 1866: uint16(252), - 1867: uint16(515), - 1868: uint16(1316), - 1869: uint16(434), - 1870: uint16(1315), - 1871: uint16(1314), - 1872: uint16(94), - 1873: uint16(567), - 1874: uint16(1307), - 1875: uint16(886), - 1876: uint16(1306), - 1877: uint16(1031), - 1878: uint16(226), - 1879: uint16(406), - 1880: uint16(1611), - 1881: uint16(1610), - 1882: uint16(438), - 1883: uint16(110), - 1884: uint16(110), - 1885: uint16(1580), - 1886: uint16(1286), - 1887: uint16(524), - 1888: uint16(439), - 1889: uint16(308), - 1890: uint16(266), - 1891: uint16(111), - 1892: uint16(1285), - 1893: uint16(449), - 1894: uint16(573), - 1895: uint16(449), - 1896: uint16(449), - 1897: uint16(309), - 1898: uint16(1019), - 1899: uint16(366), - 1900: uint16(1284), - 1901: uint16(1609), - 1902: uint16(265), - 1903: uint16(1566), - 1904: uint16(1565), - 1905: uint16(442), - 1906: uint16(372), - 1907: uint16(1381), - 1908: uint16(561), - 1909: uint16(129), - 1910: uint16(550), - 1911: uint16(1380), - 1912: uint16(10), - 1913: uint16(1470), - 1914: uint16(383), - 1915: uint16(106), - 1916: uint16(316), - 1917: uint16(551), - 1918: uint16(100), - 1919: uint16(35), - 1920: uint16(534), - 1921: uint16(575), - 1922: uint16(212), - 1923: uint16(1339), - 1924: uint16(381), - 1925: uint16(387), - 1926: uint16(1187), - 1927: uint16(1338), - 1928: uint16(274), - 1929: uint16(276), - 1930: uint16(1019), - 1931: uint16(1019), - 1932: uint16(1021), - 1933: uint16(1022), - 1934: uint16(28), - 1935: uint16(277), - 1936: uint16(413), - 1937: uint16(1031), - 1938: uint16(576), - 1939: uint16(1254), - 1940: uint16(388), - 1941: uint16(1521), - 1942: uint16(1249), - 1943: uint16(110), - 1944: uint16(110), - 1945: uint16(167), - 1946: uint16(1522), - 1947: uint16(168), - 1948: uint16(148), - 1949: uint16(1520), - 1950: uint16(1519), - 1951: uint16(111), - 1952: uint16(306), - 1953: uint16(449), - 1954: uint16(573), - 1955: uint16(449), - 1956: uint16(222), - 1957: uint16(223), - 1958: uint16(1019), - 1959: uint16(839), - 1960: uint16(169), - 1961: uint16(79), - 1962: uint16(450), - 1963: uint16(214), - 1964: uint16(414), - 1965: uint16(233), - 1966: uint16(320), - 1967: uint16(145), - 1968: uint16(1093), - 1969: uint16(1091), - 1970: uint16(328), - 1971: uint16(182), - 1972: uint16(171), - 1973: uint16(1212), - 1974: uint16(918), - 1975: uint16(184), - 1976: uint16(240), - 1977: uint16(336), - 1978: uint16(243), - 1979: uint16(1107), - 1980: uint16(189), - 1981: uint16(172), - 1982: uint16(173), - 1983: uint16(423), - 1984: uint16(425), - 1985: uint16(88), - 1986: uint16(180), - 1987: uint16(191), - 1988: uint16(89), - 1989: uint16(90), - 1990: uint16(1019), - 1991: uint16(1019), - 1992: uint16(1021), - 1993: uint16(1022), - 1994: uint16(28), - 1995: uint16(91), - 1996: uint16(174), - 1997: uint16(1110), - 1998: uint16(245), - 1999: uint16(1106), - 2000: uint16(246), - 2001: uint16(159), - 2002: uint16(18), - 2003: uint16(247), - 2004: uint16(347), - 2005: uint16(1099), - 2006: uint16(263), - 2007: uint16(195), - 2008: uint16(1227), - 2009: uint16(493), - 2010: uint16(249), - 2011: uint16(196), - 2012: uint16(38), - 2013: uint16(854), - 2014: uint16(498), - 2015: uint16(368), - 2016: uint16(253), - 2017: uint16(360), - 2018: uint16(897), - 2019: uint16(197), - 2020: uint16(502), - 2021: uint16(93), - 2022: uint16(19), - 2023: uint16(20), - 2024: uint16(507), - 2025: uint16(884), - 2026: uint16(363), - 2027: uint16(510), - 2028: uint16(95), - 2029: uint16(307), - 2030: uint16(160), - 2031: uint16(96), - 2032: uint16(518), - 2033: uint16(97), - 2034: uint16(1175), - 2035: uint16(1060), - 2036: uint16(1146), - 2037: uint16(40), - 2038: uint16(21), - 2039: uint16(227), - 2040: uint16(176), - 2041: uint16(1145), - 2042: uint16(282), - 2043: uint16(284), - 2044: uint16(969), - 2045: uint16(200), - 2046: uint16(963), - 2047: uint16(114), - 2048: uint16(262), - 2049: uint16(1165), - 2050: uint16(22), - 2051: uint16(23), - 2052: uint16(24), - 2053: uint16(1161), - 2054: uint16(1169), - 2055: uint16(25), - 2056: uint16(1163), - 2057: uint16(1150), - 2058: uint16(34), - 2059: uint16(26), - 2060: uint16(1168), - 2061: uint16(546), - 2062: uint16(27), - 2063: uint16(204), - 2064: uint16(101), - 2065: uint16(103), - 2066: uint16(104), - 2067: uint16(1074), - 2068: uint16(7), - 2069: uint16(1061), - 2070: uint16(1059), - 2071: uint16(1063), - 2072: uint16(1116), - 2073: uint16(1064), - 2074: uint16(1115), - 2075: uint16(268), - 2076: uint16(269), - 2077: uint16(29), - 2078: uint16(41), - 2079: uint16(270), - 2080: uint16(1024), - 2081: uint16(866), - 2082: uint16(113), - 2083: uint16(30), - 2084: uint16(568), - 2085: uint16(392), - 2086: uint16(1183), - 2087: uint16(144), - 2088: uint16(178), - 2089: uint16(1182), - 2090: uint16(271), - 2091: uint16(928), - 2092: uint16(1245), - 2093: uint16(1245), - 2094: uint16(1245), - 2095: uint16(1245), - 2096: uint16(1245), - 2097: uint16(1245), - 2098: uint16(1245), - 2099: uint16(1602), -} -var _yy_lookahead = [2285]uint16{ - 0: uint16(193), - 1: uint16(193), - 2: uint16(193), - 3: uint16(274), - 4: uint16(275), - 5: uint16(276), - 6: uint16(193), - 7: uint16(274), - 8: uint16(275), - 9: uint16(276), - 10: uint16(193), - 11: uint16(223), - 12: uint16(219), - 13: uint16(225), - 14: uint16(206), - 15: uint16(210), - 16: uint16(211), - 17: uint16(212), - 18: uint16(193), + 1598: uint16(395), + 1599: uint16(395), + 1600: uint16(394), + 1601: uint16(276), + 1602: uint16(392), + 1603: uint16(986), + 1604: uint16(987), + 1605: uint16(859), + 1606: uint16(481), + 1607: uint16(346), + 1608: uint16(264), + 1609: uint16(110), + 1610: uint16(1032), + 1611: uint16(489), + 1612: uint16(576), + 1613: uint16(1188), + 1614: uint16(503), + 1615: uint16(1088), + 1616: uint16(261), + 1617: uint16(261), + 1618: uint16(237), + 1619: uint16(576), + 1620: uint16(326), + 1621: uint16(121), + 1622: uint16(568), + 1623: uint16(1040), + 1624: uint16(4), + 1625: uint16(347), + 1626: uint16(1376), + 1627: uint16(413), + 1628: uint16(325), + 1629: uint16(119), + 1630: uint16(119), + 1631: uint16(948), + 1632: uint16(319), + 1633: uint16(567), + 1634: uint16(351), + 1635: uint16(78), + 1636: uint16(78), + 1637: uint16(120), + 1638: uint16(571), + 1639: uint16(451), + 1640: uint16(577), + 1641: uint16(451), + 1642: uint16(79), + 1643: uint16(79), + 1644: uint16(1028), + 1645: uint16(354), + 1646: uint16(356), + 1647: uint16(576), + 1648: uint16(360), + 1649: uint16(1092), + 1650: uint16(110), + 1651: uint16(576), + 1652: uint16(974), + 1653: uint16(942), + 1654: uint16(264), + 1655: uint16(123), + 1656: uint16(457), + 1657: uint16(358), + 1658: uint16(239), + 1659: uint16(576), + 1660: uint16(519), + 1661: uint16(451), + 1662: uint16(939), + 1663: uint16(1104), + 1664: uint16(123), + 1665: uint16(1104), + 1666: uint16(173), + 1667: uint16(576), + 1668: uint16(1032), + 1669: uint16(43), + 1670: uint16(63), + 1671: uint16(63), + 1672: uint16(1324), + 1673: uint16(565), + 1674: uint16(168), + 1675: uint16(168), + 1676: uint16(1028), + 1677: uint16(1028), + 1678: uint16(1030), + 1679: uint16(1031), + 1680: uint16(35), + 1681: uint16(576), + 1682: uint16(169), + 1683: uint16(169), + 1684: uint16(1308), + 1685: uint16(872), + 1686: uint16(238), + 1687: uint16(157), + 1688: uint16(1589), + 1689: uint16(576), + 1690: uint16(86), + 1691: uint16(86), + 1692: uint16(365), + 1693: uint16(89), + 1694: uint16(568), + 1695: uint16(375), + 1696: uint16(4), + 1697: uint16(1103), + 1698: uint16(941), + 1699: uint16(1103), + 1700: uint16(123), + 1701: uint16(576), + 1702: uint16(1040), + 1703: uint16(1389), + 1704: uint16(64), + 1705: uint16(64), + 1706: uint16(1188), + 1707: uint16(1434), + 1708: uint16(119), + 1709: uint16(119), + 1710: uint16(571), + 1711: uint16(576), + 1712: uint16(82), + 1713: uint16(82), + 1714: uint16(563), + 1715: uint16(576), + 1716: uint16(120), + 1717: uint16(165), + 1718: uint16(451), + 1719: uint16(577), + 1720: uint16(451), + 1721: uint16(413), + 1722: uint16(1362), + 1723: uint16(1028), + 1724: uint16(144), + 1725: uint16(144), + 1726: uint16(319), + 1727: uint16(567), + 1728: uint16(576), + 1729: uint16(1374), + 1730: uint16(562), + 1731: uint16(498), + 1732: uint16(279), + 1733: uint16(451), + 1734: uint16(83), + 1735: uint16(83), + 1736: uint16(1439), + 1737: uint16(576), + 1738: uint16(166), + 1739: uint16(166), + 1740: uint16(576), + 1741: uint16(1289), + 1742: uint16(554), + 1743: uint16(576), + 1744: uint16(1280), + 1745: uint16(565), + 1746: uint16(576), + 1747: uint16(12), + 1748: uint16(576), + 1749: uint16(1268), + 1750: uint16(457), + 1751: uint16(146), + 1752: uint16(146), + 1753: uint16(1267), + 1754: uint16(576), + 1755: uint16(1028), + 1756: uint16(1028), + 1757: uint16(1030), + 1758: uint16(1031), + 1759: uint16(35), + 1760: uint16(140), + 1761: uint16(140), + 1762: uint16(1269), + 1763: uint16(167), + 1764: uint16(167), + 1765: uint16(1609), + 1766: uint16(160), + 1767: uint16(160), + 1768: uint16(1359), + 1769: uint16(150), + 1770: uint16(150), + 1771: uint16(149), + 1772: uint16(149), + 1773: uint16(311), + 1774: uint16(1040), + 1775: uint16(576), + 1776: uint16(312), + 1777: uint16(147), + 1778: uint16(147), + 1779: uint16(313), + 1780: uint16(119), + 1781: uint16(119), + 1782: uint16(222), + 1783: uint16(235), + 1784: uint16(576), + 1785: uint16(1188), + 1786: uint16(396), + 1787: uint16(576), + 1788: uint16(120), + 1789: uint16(576), + 1790: uint16(451), + 1791: uint16(577), + 1792: uint16(451), + 1793: uint16(1192), + 1794: uint16(453), + 1795: uint16(1028), + 1796: uint16(508), + 1797: uint16(291), + 1798: uint16(148), + 1799: uint16(148), + 1800: uint16(1421), + 1801: uint16(1612), + 1802: uint16(395), + 1803: uint16(395), + 1804: uint16(394), + 1805: uint16(276), + 1806: uint16(392), + 1807: uint16(85), + 1808: uint16(85), + 1809: uint16(859), + 1810: uint16(87), + 1811: uint16(87), + 1812: uint16(84), + 1813: uint16(84), + 1814: uint16(553), + 1815: uint16(576), + 1816: uint16(294), + 1817: uint16(576), + 1818: uint16(1426), + 1819: uint16(338), + 1820: uint16(339), + 1821: uint16(1425), + 1822: uint16(237), + 1823: uint16(300), + 1824: uint16(326), + 1825: uint16(1416), + 1826: uint16(1409), + 1827: uint16(1028), + 1828: uint16(1028), + 1829: uint16(1030), + 1830: uint16(1031), + 1831: uint16(35), + 1832: uint16(325), + 1833: uint16(344), + 1834: uint16(403), + 1835: uint16(483), + 1836: uint16(226), + 1837: uint16(1307), + 1838: uint16(52), + 1839: uint16(52), + 1840: uint16(58), + 1841: uint16(58), + 1842: uint16(368), + 1843: uint16(1371), + 1844: uint16(1502), + 1845: uint16(566), + 1846: uint16(1501), + 1847: uint16(121), + 1848: uint16(568), + 1849: uint16(221), + 1850: uint16(4), + 1851: uint16(208), + 1852: uint16(268), + 1853: uint16(209), + 1854: uint16(390), + 1855: uint16(1244), + 1856: uint16(1549), + 1857: uint16(1188), + 1858: uint16(1372), + 1859: uint16(1370), + 1860: uint16(1369), + 1861: uint16(1547), + 1862: uint16(239), + 1863: uint16(184), + 1864: uint16(571), + 1865: uint16(233), + 1866: uint16(421), + 1867: uint16(1241), + 1868: uint16(95), + 1869: uint16(218), + 1870: uint16(173), + 1871: uint16(1507), + 1872: uint16(193), + 1873: uint16(43), + 1874: uint16(91), + 1875: uint16(94), + 1876: uint16(178), + 1877: uint16(186), + 1878: uint16(467), + 1879: uint16(188), + 1880: uint16(468), + 1881: uint16(1422), + 1882: uint16(13), + 1883: uint16(189), + 1884: uint16(190), + 1885: uint16(191), + 1886: uint16(501), + 1887: uint16(451), + 1888: uint16(245), + 1889: uint16(108), + 1890: uint16(238), + 1891: uint16(401), + 1892: uint16(1428), + 1893: uint16(1427), + 1894: uint16(1430), + 1895: uint16(475), + 1896: uint16(404), + 1897: uint16(1496), + 1898: uint16(197), + 1899: uint16(565), + 1900: uint16(14), + 1901: uint16(490), + 1902: uint16(249), + 1903: uint16(101), + 1904: uint16(1518), + 1905: uint16(496), + 1906: uint16(349), + 1907: uint16(280), + 1908: uint16(251), + 1909: uint16(201), + 1910: uint16(353), + 1911: uint16(499), + 1912: uint16(252), + 1913: uint16(406), + 1914: uint16(1270), + 1915: uint16(253), + 1916: uint16(517), + 1917: uint16(1327), + 1918: uint16(1326), + 1919: uint16(435), + 1920: uint16(1325), + 1921: uint16(1318), + 1922: uint16(103), + 1923: uint16(893), + 1924: uint16(1296), + 1925: uint16(413), + 1926: uint16(227), + 1927: uint16(407), + 1928: uint16(1040), + 1929: uint16(1626), + 1930: uint16(319), + 1931: uint16(567), + 1932: uint16(1625), + 1933: uint16(1297), + 1934: uint16(119), + 1935: uint16(119), + 1936: uint16(439), + 1937: uint16(367), + 1938: uint16(1317), + 1939: uint16(1295), + 1940: uint16(1624), + 1941: uint16(526), + 1942: uint16(120), + 1943: uint16(440), + 1944: uint16(451), + 1945: uint16(577), + 1946: uint16(451), + 1947: uint16(1594), + 1948: uint16(309), + 1949: uint16(1028), + 1950: uint16(310), + 1951: uint16(373), + 1952: uint16(266), + 1953: uint16(267), + 1954: uint16(457), + 1955: uint16(1580), + 1956: uint16(1579), + 1957: uint16(443), + 1958: uint16(138), + 1959: uint16(1394), + 1960: uint16(552), + 1961: uint16(1393), + 1962: uint16(11), + 1963: uint16(1483), + 1964: uint16(384), + 1965: uint16(115), + 1966: uint16(317), + 1967: uint16(1350), + 1968: uint16(109), + 1969: uint16(536), + 1970: uint16(42), + 1971: uint16(579), + 1972: uint16(382), + 1973: uint16(214), + 1974: uint16(1349), + 1975: uint16(388), + 1976: uint16(1198), + 1977: uint16(389), + 1978: uint16(275), + 1979: uint16(277), + 1980: uint16(278), + 1981: uint16(1028), + 1982: uint16(1028), + 1983: uint16(1030), + 1984: uint16(1031), + 1985: uint16(35), + 1986: uint16(580), + 1987: uint16(1265), + 1988: uint16(414), + 1989: uint16(1260), + 1990: uint16(170), + 1991: uint16(415), + 1992: uint16(183), + 1993: uint16(1534), + 1994: uint16(1535), + 1995: uint16(1533), + 1996: uint16(171), + 1997: uint16(154), + 1998: uint16(307), + 1999: uint16(1532), + 2000: uint16(846), + 2001: uint16(223), + 2002: uint16(224), + 2003: uint16(88), + 2004: uint16(452), + 2005: uint16(215), + 2006: uint16(172), + 2007: uint16(321), + 2008: uint16(234), + 2009: uint16(1102), + 2010: uint16(152), + 2011: uint16(1188), + 2012: uint16(1100), + 2013: uint16(329), + 2014: uint16(185), + 2015: uint16(174), + 2016: uint16(1223), + 2017: uint16(925), + 2018: uint16(187), + 2019: uint16(241), + 2020: uint16(337), + 2021: uint16(244), + 2022: uint16(1116), + 2023: uint16(192), + 2024: uint16(175), + 2025: uint16(176), + 2026: uint16(424), + 2027: uint16(426), + 2028: uint16(97), + 2029: uint16(194), + 2030: uint16(98), + 2031: uint16(99), + 2032: uint16(100), + 2033: uint16(177), + 2034: uint16(1119), + 2035: uint16(1115), + 2036: uint16(246), + 2037: uint16(247), + 2038: uint16(161), + 2039: uint16(24), + 2040: uint16(248), + 2041: uint16(348), + 2042: uint16(1238), + 2043: uint16(264), + 2044: uint16(1108), + 2045: uint16(250), + 2046: uint16(495), + 2047: uint16(199), + 2048: uint16(198), + 2049: uint16(15), + 2050: uint16(861), + 2051: uint16(500), + 2052: uint16(369), + 2053: uint16(254), + 2054: uint16(504), + 2055: uint16(509), + 2056: uint16(512), + 2057: uint16(200), + 2058: uint16(102), + 2059: uint16(25), + 2060: uint16(179), + 2061: uint16(361), + 2062: uint16(26), + 2063: uint16(364), + 2064: uint16(104), + 2065: uint16(891), + 2066: uint16(308), + 2067: uint16(162), + 2068: uint16(105), + 2069: uint16(904), + 2070: uint16(520), + 2071: uint16(106), + 2072: uint16(1185), + 2073: uint16(1069), + 2074: uint16(1155), + 2075: uint16(17), + 2076: uint16(228), + 2077: uint16(27), + 2078: uint16(1154), + 2079: uint16(283), + 2080: uint16(285), + 2081: uint16(263), + 2082: uint16(978), + 2083: uint16(202), + 2084: uint16(972), + 2085: uint16(123), + 2086: uint16(28), + 2087: uint16(1175), + 2088: uint16(29), + 2089: uint16(30), + 2090: uint16(1179), + 2091: uint16(1171), + 2092: uint16(31), + 2093: uint16(1173), + 2094: uint16(1160), + 2095: uint16(41), + 2096: uint16(32), + 2097: uint16(206), + 2098: uint16(548), + 2099: uint16(33), + 2100: uint16(110), + 2101: uint16(1178), + 2102: uint16(1083), + 2103: uint16(8), + 2104: uint16(112), + 2105: uint16(1070), + 2106: uint16(113), + 2107: uint16(1068), + 2108: uint16(1072), + 2109: uint16(34), + 2110: uint16(1073), + 2111: uint16(560), + 2112: uint16(1125), + 2113: uint16(269), + 2114: uint16(1124), + 2115: uint16(270), + 2116: uint16(36), + 2117: uint16(18), + 2118: uint16(1194), + 2119: uint16(1033), + 2120: uint16(873), + 2121: uint16(151), + 2122: uint16(122), + 2123: uint16(37), + 2124: uint16(393), + 2125: uint16(271), + 2126: uint16(272), + 2127: uint16(572), + 2128: uint16(181), + 2129: uint16(1193), + 2130: uint16(1256), + 2131: uint16(1256), + 2132: uint16(1256), + 2133: uint16(935), + 2134: uint16(1256), + 2135: uint16(1256), + 2136: uint16(1256), + 2137: uint16(1256), + 2138: uint16(1256), + 2139: uint16(1256), + 2140: uint16(1256), + 2141: uint16(1617), +} +var _yy_lookahead = [2328]uint16{ + 0: uint16(194), + 1: uint16(276), + 2: uint16(277), + 3: uint16(278), + 4: uint16(216), + 5: uint16(194), + 6: uint16(194), + 7: uint16(217), + 8: uint16(194), + 9: uint16(194), + 10: uint16(194), + 11: uint16(194), + 12: uint16(224), + 13: uint16(194), + 14: uint16(194), + 15: uint16(276), + 16: uint16(277), + 17: uint16(278), + 18: uint16(204), 19: uint16(19), - 20: uint16(219), - 21: uint16(233), - 22: uint16(216), - 23: uint16(216), - 24: uint16(217), - 25: uint16(216), - 26: uint16(217), - 27: uint16(193), - 28: uint16(295), - 29: uint16(216), - 30: uint16(217), + 20: uint16(206), + 21: uint16(202), + 22: uint16(297), + 23: uint16(217), + 24: uint16(218), + 25: uint16(205), + 26: uint16(207), + 27: uint16(217), + 28: uint16(205), + 29: uint16(217), + 30: uint16(218), 31: uint16(31), - 32: uint16(193), - 33: uint16(216), + 32: uint16(217), + 33: uint16(218), 34: uint16(217), - 35: uint16(193), - 36: uint16(228), - 37: uint16(213), - 38: uint16(230), + 35: uint16(218), + 36: uint16(29), + 37: uint16(217), + 38: uint16(218), 39: uint16(39), - 40: uint16(206), - 41: uint16(216), - 42: uint16(217), + 40: uint16(33), + 41: uint16(217), + 42: uint16(220), 43: uint16(43), 44: uint16(44), 45: uint16(45), @@ -148934,31 +150385,31 @@ var _yy_lookahead = [2285]uint16{ 55: uint16(55), 56: uint16(56), 57: uint16(57), - 58: uint16(193), + 58: uint16(312), 59: uint16(19), - 60: uint16(185), - 61: uint16(186), - 62: uint16(187), - 63: uint16(188), - 64: uint16(189), - 65: uint16(190), - 66: uint16(253), - 67: uint16(274), - 68: uint16(275), - 69: uint16(276), - 70: uint16(195), - 71: uint16(193), - 72: uint16(197), - 73: uint16(193), - 74: uint16(261), - 75: uint16(274), - 76: uint16(275), - 77: uint16(276), - 78: uint16(253), - 79: uint16(204), - 80: uint16(238), - 81: uint16(204), - 82: uint16(81), + 60: uint16(240), + 61: uint16(241), + 62: uint16(316), + 63: uint16(240), + 64: uint16(241), + 65: uint16(194), + 66: uint16(46), + 67: uint16(47), + 68: uint16(48), + 69: uint16(49), + 70: uint16(22), + 71: uint16(254), + 72: uint16(65), + 73: uint16(253), + 74: uint16(254), + 75: uint16(255), + 76: uint16(253), + 77: uint16(194), + 78: uint16(255), + 79: uint16(194), + 80: uint16(263), + 81: uint16(258), + 82: uint16(259), 83: uint16(43), 84: uint16(44), 85: uint16(45), @@ -148974,10 +150425,10 @@ var _yy_lookahead = [2285]uint16{ 95: uint16(55), 96: uint16(56), 97: uint16(57), - 98: uint16(274), - 99: uint16(275), - 100: uint16(276), - 101: uint16(262), + 98: uint16(276), + 99: uint16(277), + 100: uint16(278), + 101: uint16(285), 102: uint16(102), 103: uint16(103), 104: uint16(104), @@ -148990,34 +150441,34 @@ var _yy_lookahead = [2285]uint16{ 111: uint16(111), 112: uint16(112), 113: uint16(113), - 114: uint16(239), - 115: uint16(240), - 116: uint16(239), - 117: uint16(240), - 118: uint16(210), - 119: uint16(211), - 120: uint16(212), - 121: uint16(314), - 122: uint16(315), - 123: uint16(314), - 124: uint16(59), - 125: uint16(316), + 114: uint16(59), + 115: uint16(186), + 116: uint16(187), + 117: uint16(188), + 118: uint16(189), + 119: uint16(190), + 120: uint16(191), + 121: uint16(310), + 122: uint16(239), + 123: uint16(317), + 124: uint16(318), + 125: uint16(196), 126: uint16(86), - 127: uint16(252), + 127: uint16(198), 128: uint16(88), - 129: uint16(252), + 129: uint16(317), 130: uint16(19), - 131: uint16(314), - 132: uint16(315), - 133: uint16(256), - 134: uint16(257), - 135: uint16(113), + 131: uint16(319), + 132: uint16(317), + 133: uint16(318), + 134: uint16(205), + 135: uint16(264), 136: uint16(25), - 137: uint16(72), - 138: uint16(296), - 139: uint16(138), - 140: uint16(139), - 141: uint16(266), + 137: uint16(211), + 138: uint16(212), + 139: uint16(213), + 140: uint16(205), + 141: uint16(121), 142: uint16(102), 143: uint16(103), 144: uint16(104), @@ -149045,50 +150496,50 @@ var _yy_lookahead = [2285]uint16{ 166: uint16(55), 167: uint16(56), 168: uint16(57), - 169: uint16(81), - 170: uint16(292), - 171: uint16(59), - 172: uint16(292), - 173: uint16(298), - 174: uint16(108), - 175: uint16(109), - 176: uint16(110), - 177: uint16(111), - 178: uint16(112), - 179: uint16(113), + 169: uint16(240), + 170: uint16(241), + 171: uint16(116), + 172: uint16(117), + 173: uint16(118), + 174: uint16(119), + 175: uint16(240), + 176: uint16(241), + 177: uint16(122), + 178: uint16(123), + 179: uint16(124), 180: uint16(69), - 181: uint16(116), - 182: uint16(117), - 183: uint16(118), - 184: uint16(72), + 181: uint16(298), + 182: uint16(253), + 183: uint16(194), + 184: uint16(255), 185: uint16(106), 186: uint16(107), - 187: uint16(193), - 188: uint16(111), - 189: uint16(112), - 190: uint16(113), + 187: uint16(132), + 188: uint16(253), + 189: uint16(141), + 190: uint16(255), 191: uint16(54), 192: uint16(55), 193: uint16(56), 194: uint16(57), 195: uint16(58), - 196: uint16(102), - 197: uint16(103), - 198: uint16(104), - 199: uint16(105), - 200: uint16(106), - 201: uint16(107), - 202: uint16(108), - 203: uint16(109), - 204: uint16(110), - 205: uint16(111), - 206: uint16(112), - 207: uint16(113), - 208: uint16(120), - 209: uint16(25), - 210: uint16(216), - 211: uint16(217), - 212: uint16(145), + 196: uint16(207), + 197: uint16(268), + 198: uint16(102), + 199: uint16(103), + 200: uint16(104), + 201: uint16(105), + 202: uint16(106), + 203: uint16(107), + 204: uint16(108), + 205: uint16(109), + 206: uint16(110), + 207: uint16(111), + 208: uint16(112), + 209: uint16(113), + 210: uint16(214), + 211: uint16(128), + 212: uint16(129), 213: uint16(102), 214: uint16(103), 215: uint16(104), @@ -149101,13 +150552,13 @@ var _yy_lookahead = [2285]uint16{ 222: uint16(111), 223: uint16(112), 224: uint16(113), - 225: uint16(231), - 226: uint16(138), - 227: uint16(139), - 228: uint16(116), - 229: uint16(117), - 230: uint16(118), - 231: uint16(164), + 225: uint16(134), + 226: uint16(25), + 227: uint16(136), + 228: uint16(137), + 229: uint16(300), + 230: uint16(165), + 231: uint16(166), 232: uint16(153), 233: uint16(19), 234: uint16(155), @@ -149127,12 +150578,12 @@ var _yy_lookahead = [2285]uint16{ 248: uint16(111), 249: uint16(112), 250: uint16(113), - 251: uint16(128), - 252: uint16(129), - 253: uint16(46), - 254: uint16(47), - 255: uint16(48), - 256: uint16(49), + 251: uint16(108), + 252: uint16(109), + 253: uint16(110), + 254: uint16(111), + 255: uint16(112), + 256: uint16(113), 257: uint16(43), 258: uint16(44), 259: uint16(45), @@ -149148,15 +150599,15 @@ var _yy_lookahead = [2285]uint16{ 269: uint16(55), 270: uint16(56), 271: uint16(57), - 272: uint16(216), - 273: uint16(193), - 274: uint16(25), - 275: uint16(59), - 276: uint16(193), + 272: uint16(276), + 273: uint16(277), + 274: uint16(278), + 275: uint16(113), + 276: uint16(194), 277: uint16(19), - 278: uint16(165), - 279: uint16(166), - 280: uint16(193), + 278: uint16(22), + 279: uint16(23), + 280: uint16(194), 281: uint16(67), 282: uint16(24), 283: uint16(102), @@ -149171,12 +150622,12 @@ var _yy_lookahead = [2285]uint16{ 292: uint16(111), 293: uint16(112), 294: uint16(113), - 295: uint16(73), - 296: uint16(216), - 297: uint16(217), - 298: uint16(59), - 299: uint16(216), - 300: uint16(217), + 295: uint16(220), + 296: uint16(250), + 297: uint16(59), + 298: uint16(252), + 299: uint16(217), + 300: uint16(218), 301: uint16(43), 302: uint16(44), 303: uint16(45), @@ -149204,38 +150655,38 @@ var _yy_lookahead = [2285]uint16{ 325: uint16(111), 326: uint16(112), 327: uint16(113), - 328: uint16(121), - 329: uint16(145), - 330: uint16(59), - 331: uint16(193), - 332: uint16(116), - 333: uint16(117), - 334: uint16(118), - 335: uint16(119), - 336: uint16(273), - 337: uint16(204), - 338: uint16(122), - 339: uint16(123), - 340: uint16(124), + 328: uint16(106), + 329: uint16(107), + 330: uint16(108), + 331: uint16(109), + 332: uint16(110), + 333: uint16(111), + 334: uint16(112), + 335: uint16(113), + 336: uint16(254), + 337: uint16(59), + 338: uint16(205), + 339: uint16(138), + 340: uint16(139), 341: uint16(19), 342: uint16(20), - 343: uint16(134), + 343: uint16(194), 344: uint16(22), - 345: uint16(136), - 346: uint16(137), - 347: uint16(19), - 348: uint16(132), - 349: uint16(127), - 350: uint16(128), - 351: uint16(129), - 352: uint16(24), - 353: uint16(22), - 354: uint16(23), - 355: uint16(116), - 356: uint16(117), - 357: uint16(118), + 345: uint16(263), + 346: uint16(22), + 347: uint16(23), + 348: uint16(231), + 349: uint16(25), + 350: uint16(72), + 351: uint16(276), + 352: uint16(277), + 353: uint16(278), + 354: uint16(116), + 355: uint16(117), + 356: uint16(118), + 357: uint16(101), 358: uint16(36), - 359: uint16(193), + 359: uint16(76), 360: uint16(102), 361: uint16(103), 362: uint16(104), @@ -149248,37 +150699,37 @@ var _yy_lookahead = [2285]uint16{ 369: uint16(111), 370: uint16(112), 371: uint16(113), - 372: uint16(239), + 372: uint16(89), 373: uint16(240), - 374: uint16(311), - 375: uint16(312), - 376: uint16(215), - 377: uint16(106), - 378: uint16(107), - 379: uint16(241), + 374: uint16(241), + 375: uint16(92), + 376: uint16(73), + 377: uint16(194), + 378: uint16(194), + 379: uint16(73), 380: uint16(19), 381: uint16(59), - 382: uint16(216), - 383: uint16(217), - 384: uint16(223), - 385: uint16(252), - 386: uint16(115), - 387: uint16(116), - 388: uint16(117), - 389: uint16(118), - 390: uint16(151), - 391: uint16(120), - 392: uint16(26), + 382: uint16(188), + 383: uint16(189), + 384: uint16(190), + 385: uint16(191), + 386: uint16(253), + 387: uint16(81), + 388: uint16(255), + 389: uint16(151), + 390: uint16(196), + 391: uint16(25), + 392: uint16(198), 393: uint16(71), - 394: uint16(193), - 395: uint16(308), - 396: uint16(309), - 397: uint16(193), - 398: uint16(149), - 399: uint16(128), - 400: uint16(313), - 401: uint16(216), - 402: uint16(269), + 394: uint16(116), + 395: uint16(117), + 396: uint16(118), + 397: uint16(311), + 398: uint16(312), + 399: uint16(205), + 400: uint16(217), + 401: uint16(218), + 402: uint16(316), 403: uint16(81), 404: uint16(43), 405: uint16(44), @@ -149295,50 +150746,50 @@ var _yy_lookahead = [2285]uint16{ 416: uint16(55), 417: uint16(56), 418: uint16(57), - 419: uint16(253), - 420: uint16(216), - 421: uint16(217), + 419: uint16(270), + 420: uint16(22), + 421: uint16(23), 422: uint16(100), - 423: uint16(95), - 424: uint16(153), - 425: uint16(59), - 426: uint16(155), - 427: uint16(261), + 423: uint16(25), + 424: uint16(59), + 425: uint16(101), + 426: uint16(138), + 427: uint16(139), 428: uint16(106), 429: uint16(107), - 430: uint16(25), - 431: uint16(193), - 432: uint16(101), - 433: uint16(193), - 434: uint16(193), - 435: uint16(231), + 430: uint16(127), + 431: uint16(128), + 432: uint16(129), + 433: uint16(127), + 434: uint16(240), + 435: uint16(241), 436: uint16(114), - 437: uint16(25), + 437: uint16(254), 438: uint16(116), 439: uint16(117), 440: uint16(118), - 441: uint16(113), - 442: uint16(304), + 441: uint16(76), + 442: uint16(76), 443: uint16(121), - 444: uint16(193), - 445: uint16(204), - 446: uint16(59), - 447: uint16(119), - 448: uint16(120), - 449: uint16(121), - 450: uint16(122), - 451: uint16(123), - 452: uint16(124), - 453: uint16(125), - 454: uint16(216), - 455: uint16(217), - 456: uint16(193), - 457: uint16(216), - 458: uint16(217), - 459: uint16(131), + 444: uint16(138), + 445: uint16(139), + 446: uint16(263), + 447: uint16(253), + 448: uint16(264), + 449: uint16(255), + 450: uint16(205), + 451: uint16(275), + 452: uint16(87), + 453: uint16(19), + 454: uint16(89), + 455: uint16(89), + 456: uint16(194), + 457: uint16(92), + 458: uint16(92), + 459: uint16(199), 460: uint16(138), 461: uint16(139), - 462: uint16(230), + 462: uint16(268), 463: uint16(102), 464: uint16(103), 465: uint16(104), @@ -149356,37 +150807,37 @@ var _yy_lookahead = [2285]uint16{ 477: uint16(155), 478: uint16(156), 479: uint16(157), - 480: uint16(239), - 481: uint16(240), - 482: uint16(116), - 483: uint16(117), - 484: uint16(118), - 485: uint16(76), - 486: uint16(193), - 487: uint16(23), + 480: uint16(81), + 481: uint16(116), + 482: uint16(117), + 483: uint16(118), + 484: uint16(129), + 485: uint16(240), + 486: uint16(241), + 487: uint16(224), 488: uint16(19), - 489: uint16(25), - 490: uint16(22), - 491: uint16(253), + 489: uint16(226), + 490: uint16(314), + 491: uint16(315), 492: uint16(23), - 493: uint16(252), - 494: uint16(253), - 495: uint16(108), - 496: uint16(87), - 497: uint16(204), - 498: uint16(89), - 499: uint16(261), - 500: uint16(198), - 501: uint16(92), - 502: uint16(261), - 503: uint16(116), - 504: uint16(117), - 505: uint16(118), - 506: uint16(193), - 507: uint16(306), - 508: uint16(307), - 509: uint16(216), - 510: uint16(217), + 493: uint16(25), + 494: uint16(300), + 495: uint16(59), + 496: uint16(22), + 497: uint16(234), + 498: uint16(253), + 499: uint16(101), + 500: uint16(255), + 501: uint16(236), + 502: uint16(237), + 503: uint16(26), + 504: uint16(194), + 505: uint16(183), + 506: uint16(194), + 507: uint16(152), + 508: uint16(72), + 509: uint16(22), + 510: uint16(145), 511: uint16(150), 512: uint16(43), 513: uint16(44), @@ -149403,34 +150854,34 @@ var _yy_lookahead = [2285]uint16{ 524: uint16(55), 525: uint16(56), 526: uint16(57), - 527: uint16(59), - 528: uint16(193), - 529: uint16(216), - 530: uint16(217), + 527: uint16(217), + 528: uint16(218), + 529: uint16(217), + 530: uint16(218), 531: uint16(19), - 532: uint16(239), - 533: uint16(240), - 534: uint16(283), + 532: uint16(189), + 533: uint16(59), + 534: uint16(191), 535: uint16(23), - 536: uint16(106), - 537: uint16(107), - 538: uint16(108), - 539: uint16(109), - 540: uint16(110), - 541: uint16(111), - 542: uint16(112), - 543: uint16(113), - 544: uint16(73), - 545: uint16(252), - 546: uint16(253), - 547: uint16(142), - 548: uint16(308), - 549: uint16(309), - 550: uint16(138), - 551: uint16(139), - 552: uint16(81), - 553: uint16(313), - 554: uint16(145), + 536: uint16(59), + 537: uint16(138), + 538: uint16(139), + 539: uint16(196), + 540: uint16(135), + 541: uint16(198), + 542: uint16(232), + 543: uint16(283), + 544: uint16(232), + 545: uint16(140), + 546: uint16(59), + 547: uint16(287), + 548: uint16(205), + 549: uint16(275), + 550: uint16(116), + 551: uint16(205), + 552: uint16(116), + 553: uint16(117), + 554: uint16(118), 555: uint16(43), 556: uint16(44), 557: uint16(45), @@ -149446,7 +150897,7 @@ var _yy_lookahead = [2285]uint16{ 567: uint16(55), 568: uint16(56), 569: uint16(57), - 570: uint16(307), + 570: uint16(194), 571: uint16(102), 572: uint16(103), 573: uint16(104), @@ -149459,37 +150910,37 @@ var _yy_lookahead = [2285]uint16{ 580: uint16(111), 581: uint16(112), 582: uint16(113), - 583: uint16(281), - 584: uint16(116), - 585: uint16(117), - 586: uint16(118), - 587: uint16(285), - 588: uint16(23), - 589: uint16(193), - 590: uint16(25), - 591: uint16(119), - 592: uint16(59), - 593: uint16(193), - 594: uint16(122), - 595: uint16(123), - 596: uint16(124), - 597: uint16(59), - 598: uint16(127), - 599: uint16(203), + 583: uint16(240), + 584: uint16(241), + 585: uint16(194), + 586: uint16(240), + 587: uint16(241), + 588: uint16(314), + 589: uint16(315), + 590: uint16(116), + 591: uint16(117), + 592: uint16(118), + 593: uint16(116), + 594: uint16(117), + 595: uint16(118), + 596: uint16(253), + 597: uint16(194), + 598: uint16(255), + 599: uint16(253), 600: uint16(59), - 601: uint16(205), + 601: uint16(255), 602: uint16(19), - 603: uint16(268), - 604: uint16(132), - 605: uint16(25), + 603: uint16(116), + 604: uint16(117), + 605: uint16(118), 606: uint16(23), 607: uint16(22), - 608: uint16(193), - 609: uint16(138), - 610: uint16(139), - 611: uint16(249), - 612: uint16(204), - 613: uint16(251), + 608: uint16(217), + 609: uint16(218), + 610: uint16(142), + 611: uint16(268), + 612: uint16(205), + 613: uint16(275), 614: uint16(102), 615: uint16(103), 616: uint16(104), @@ -149518,29 +150969,29 @@ var _yy_lookahead = [2285]uint16{ 639: uint16(56), 640: uint16(57), 641: uint16(19), - 642: uint16(22), - 643: uint16(23), + 642: uint16(194), + 643: uint16(300), 644: uint16(59), 645: uint16(23), - 646: uint16(25), - 647: uint16(239), - 648: uint16(240), - 649: uint16(116), - 650: uint16(117), - 651: uint16(118), - 652: uint16(193), - 653: uint16(11), - 654: uint16(116), - 655: uint16(117), - 656: uint16(118), - 657: uint16(116), + 646: uint16(119), + 647: uint16(240), + 648: uint16(241), + 649: uint16(122), + 650: uint16(123), + 651: uint16(124), + 652: uint16(314), + 653: uint16(315), + 654: uint16(194), + 655: uint16(236), + 656: uint16(237), + 657: uint16(194), 658: uint16(117), - 659: uint16(118), - 660: uint16(252), - 661: uint16(269), - 662: uint16(22), - 663: uint16(193), - 664: uint16(15), + 659: uint16(132), + 660: uint16(253), + 661: uint16(81), + 662: uint16(255), + 663: uint16(205), + 664: uint16(59), 665: uint16(43), 666: uint16(44), 667: uint16(45), @@ -149556,11 +151007,11 @@ var _yy_lookahead = [2285]uint16{ 677: uint16(55), 678: uint16(56), 679: uint16(57), - 680: uint16(273), - 681: uint16(143), - 682: uint16(193), - 683: uint16(118), - 684: uint16(143), + 680: uint16(217), + 681: uint16(218), + 682: uint16(194), + 683: uint16(194), + 684: uint16(194), 685: uint16(102), 686: uint16(103), 687: uint16(104), @@ -149573,33 +151024,33 @@ var _yy_lookahead = [2285]uint16{ 694: uint16(111), 695: uint16(112), 696: uint16(113), - 697: uint16(76), - 698: uint16(118), - 699: uint16(59), - 700: uint16(241), + 697: uint16(294), + 698: uint16(240), + 699: uint16(241), + 700: uint16(120), 701: uint16(116), 702: uint16(117), 703: uint16(118), - 704: uint16(304), - 705: uint16(216), + 704: uint16(59), + 705: uint16(194), 706: uint16(217), - 707: uint16(292), - 708: uint16(143), - 709: uint16(60), - 710: uint16(89), - 711: uint16(241), + 707: uint16(218), + 708: uint16(211), + 709: uint16(212), + 710: uint16(213), + 711: uint16(253), 712: uint16(19), - 713: uint16(92), - 714: uint16(193), - 715: uint16(193), + 713: uint16(255), + 714: uint16(194), + 715: uint16(19), 716: uint16(23), - 717: uint16(22), - 718: uint16(311), - 719: uint16(312), - 720: uint16(231), - 721: uint16(101), - 722: uint16(22), - 723: uint16(143), + 717: uint16(254), + 718: uint16(138), + 719: uint16(139), + 720: uint16(24), + 721: uint16(232), + 722: uint16(117), + 723: uint16(194), 724: uint16(102), 725: uint16(103), 726: uint16(104), @@ -149628,29 +151079,29 @@ var _yy_lookahead = [2285]uint16{ 749: uint16(56), 750: uint16(57), 751: uint16(19), - 752: uint16(193), - 753: uint16(193), - 754: uint16(59), + 752: uint16(264), + 753: uint16(108), + 754: uint16(76), 755: uint16(23), - 756: uint16(116), - 757: uint16(117), - 758: uint16(118), - 759: uint16(59), - 760: uint16(201), - 761: uint16(21), - 762: uint16(241), - 763: uint16(304), - 764: uint16(193), - 765: uint16(206), - 766: uint16(127), - 767: uint16(128), - 768: uint16(129), - 769: uint16(193), - 770: uint16(128), - 771: uint16(129), - 772: uint16(235), - 773: uint16(236), - 774: uint16(304), + 756: uint16(127), + 757: uint16(128), + 758: uint16(129), + 759: uint16(311), + 760: uint16(312), + 761: uint16(116), + 762: uint16(117), + 763: uint16(118), + 764: uint16(316), + 765: uint16(87), + 766: uint16(306), + 767: uint16(89), + 768: uint16(308), + 769: uint16(194), + 770: uint16(92), + 771: uint16(22), + 772: uint16(59), + 773: uint16(194), + 774: uint16(22), 775: uint16(43), 776: uint16(44), 777: uint16(45), @@ -149666,11 +151117,11 @@ var _yy_lookahead = [2285]uint16{ 787: uint16(55), 788: uint16(56), 789: uint16(57), - 790: uint16(22), - 791: uint16(193), - 792: uint16(216), - 793: uint16(217), - 794: uint16(193), + 790: uint16(194), + 791: uint16(95), + 792: uint16(217), + 793: uint16(218), + 794: uint16(265), 795: uint16(102), 796: uint16(103), 797: uint16(104), @@ -149683,33 +151134,33 @@ var _yy_lookahead = [2285]uint16{ 804: uint16(111), 805: uint16(112), 806: uint16(113), - 807: uint16(231), - 808: uint16(193), - 809: uint16(193), - 810: uint16(193), - 811: uint16(116), - 812: uint16(117), - 813: uint16(118), - 814: uint16(216), - 815: uint16(217), - 816: uint16(116), - 817: uint16(117), - 818: uint16(118), - 819: uint16(226), - 820: uint16(80), - 821: uint16(193), + 807: uint16(232), + 808: uint16(59), + 809: uint16(113), + 810: uint16(25), + 811: uint16(59), + 812: uint16(194), + 813: uint16(217), + 814: uint16(218), + 815: uint16(119), + 816: uint16(120), + 817: uint16(121), + 818: uint16(122), + 819: uint16(123), + 820: uint16(124), + 821: uint16(125), 822: uint16(19), - 823: uint16(235), - 824: uint16(236), - 825: uint16(304), + 823: uint16(145), + 824: uint16(194), + 825: uint16(194), 826: uint16(23), - 827: uint16(211), - 828: uint16(212), - 829: uint16(231), - 830: uint16(204), - 831: uint16(216), - 832: uint16(217), - 833: uint16(205), + 827: uint16(131), + 828: uint16(232), + 829: uint16(116), + 830: uint16(117), + 831: uint16(118), + 832: uint16(35), + 833: uint16(194), 834: uint16(102), 835: uint16(103), 836: uint16(104), @@ -149738,29 +151189,29 @@ var _yy_lookahead = [2285]uint16{ 859: uint16(56), 860: uint16(57), 861: uint16(19), - 862: uint16(193), - 863: uint16(123), - 864: uint16(76), - 865: uint16(239), - 866: uint16(240), - 867: uint16(193), - 868: uint16(253), - 869: uint16(239), - 870: uint16(240), - 871: uint16(239), - 872: uint16(240), - 873: uint16(244), - 874: uint16(106), - 875: uint16(107), - 876: uint16(193), - 877: uint16(89), - 878: uint16(252), - 879: uint16(193), - 880: uint16(92), - 881: uint16(59), - 882: uint16(252), - 883: uint16(254), - 884: uint16(252), + 862: uint16(194), + 863: uint16(66), + 864: uint16(194), + 865: uint16(116), + 866: uint16(117), + 867: uint16(118), + 868: uint16(116), + 869: uint16(117), + 870: uint16(118), + 871: uint16(74), + 872: uint16(242), + 873: uint16(294), + 874: uint16(194), + 875: uint16(194), + 876: uint16(206), + 877: uint16(23), + 878: uint16(194), + 879: uint16(25), + 880: uint16(194), + 881: uint16(111), + 882: uint16(112), + 883: uint16(113), + 884: uint16(25), 885: uint16(43), 886: uint16(44), 887: uint16(45), @@ -149776,11 +151227,11 @@ var _yy_lookahead = [2285]uint16{ 897: uint16(55), 898: uint16(56), 899: uint16(57), - 900: uint16(284), - 901: uint16(161), - 902: uint16(216), + 900: uint16(24), + 901: uint16(194), + 902: uint16(194), 903: uint16(217), - 904: uint16(193), + 904: uint16(218), 905: uint16(102), 906: uint16(103), 907: uint16(104), @@ -149793,33 +151244,33 @@ var _yy_lookahead = [2285]uint16{ 914: uint16(111), 915: uint16(112), 916: uint16(113), - 917: uint16(231), - 918: uint16(193), - 919: uint16(244), - 920: uint16(187), - 921: uint16(188), - 922: uint16(189), - 923: uint16(190), - 924: uint16(7), - 925: uint16(8), - 926: uint16(9), - 927: uint16(309), - 928: uint16(195), - 929: uint16(254), - 930: uint16(197), - 931: uint16(313), + 917: uint16(241), + 918: uint16(232), + 919: uint16(194), + 920: uint16(212), + 921: uint16(213), + 922: uint16(242), + 923: uint16(242), + 924: uint16(217), + 925: uint16(218), + 926: uint16(242), + 927: uint16(130), + 928: uint16(11), + 929: uint16(253), + 930: uint16(194), + 931: uint16(255), 932: uint16(19), - 933: uint16(127), - 934: uint16(128), - 935: uint16(129), - 936: uint16(262), - 937: uint16(204), - 938: uint16(22), - 939: uint16(117), - 940: uint16(24), - 941: uint16(216), + 933: uint16(265), + 934: uint16(149), + 935: uint16(59), + 936: uint16(306), + 937: uint16(194), + 938: uint16(308), + 939: uint16(232), + 940: uint16(309), + 941: uint16(310), 942: uint16(217), - 943: uint16(273), + 943: uint16(218), 944: uint16(102), 945: uint16(103), 946: uint16(104), @@ -149847,36 +151298,36 @@ var _yy_lookahead = [2285]uint16{ 968: uint16(55), 969: uint16(56), 970: uint16(57), - 971: uint16(193), - 972: uint16(239), - 973: uint16(240), - 974: uint16(193), - 975: uint16(59), + 971: uint16(194), + 972: uint16(194), + 973: uint16(59), + 974: uint16(194), + 975: uint16(239), 976: uint16(19), - 977: uint16(188), - 978: uint16(253), - 979: uint16(190), - 980: uint16(193), - 981: uint16(311), - 982: uint16(312), - 983: uint16(16), - 984: uint16(195), - 985: uint16(252), - 986: uint16(197), - 987: uint16(193), - 988: uint16(19), - 989: uint16(301), - 990: uint16(302), - 991: uint16(135), - 992: uint16(193), - 993: uint16(204), - 994: uint16(216), + 977: uint16(194), + 978: uint16(25), + 979: uint16(254), + 980: uint16(303), + 981: uint16(304), + 982: uint16(23), + 983: uint16(194), + 984: uint16(25), + 985: uint16(126), + 986: uint16(306), + 987: uint16(306), + 988: uint16(308), + 989: uint16(308), + 990: uint16(306), + 991: uint16(271), + 992: uint16(308), + 993: uint16(117), + 994: uint16(286), 995: uint16(217), - 996: uint16(140), - 997: uint16(216), - 998: uint16(217), - 999: uint16(266), - 1000: uint16(204), + 996: uint16(218), + 997: uint16(217), + 998: uint16(218), + 999: uint16(194), + 1000: uint16(194), 1001: uint16(159), 1002: uint16(45), 1003: uint16(46), @@ -149903,38 +151354,38 @@ var _yy_lookahead = [2285]uint16{ 1024: uint16(111), 1025: uint16(112), 1026: uint16(113), - 1027: uint16(12), + 1027: uint16(59), 1028: uint16(239), - 1029: uint16(240), - 1030: uint16(193), - 1031: uint16(298), - 1032: uint16(238), - 1033: uint16(117), - 1034: uint16(253), - 1035: uint16(239), + 1029: uint16(194), + 1030: uint16(116), + 1031: uint16(117), + 1032: uint16(118), + 1033: uint16(260), + 1034: uint16(254), + 1035: uint16(194), 1036: uint16(240), - 1037: uint16(238), - 1038: uint16(259), - 1039: uint16(260), - 1040: uint16(193), - 1041: uint16(252), - 1042: uint16(27), - 1043: uint16(193), - 1044: uint16(77), - 1045: uint16(193), - 1046: uint16(79), - 1047: uint16(204), - 1048: uint16(252), - 1049: uint16(262), - 1050: uint16(193), - 1051: uint16(299), - 1052: uint16(300), - 1053: uint16(193), - 1054: uint16(100), - 1055: uint16(266), - 1056: uint16(278), - 1057: uint16(42), - 1058: uint16(204), + 1037: uint16(241), + 1038: uint16(194), + 1039: uint16(233), + 1040: uint16(205), + 1041: uint16(240), + 1042: uint16(241), + 1043: uint16(205), + 1044: uint16(239), + 1045: uint16(128), + 1046: uint16(129), + 1047: uint16(270), + 1048: uint16(265), + 1049: uint16(253), + 1050: uint16(194), + 1051: uint16(255), + 1052: uint16(217), + 1053: uint16(218), + 1054: uint16(253), + 1055: uint16(194), + 1056: uint16(255), + 1057: uint16(143), + 1058: uint16(280), 1059: uint16(102), 1060: uint16(103), 1061: uint16(104), @@ -149947,51 +151398,51 @@ var _yy_lookahead = [2285]uint16{ 1068: uint16(111), 1069: uint16(112), 1070: uint16(113), - 1071: uint16(117), + 1071: uint16(118), 1072: uint16(159), - 1073: uint16(216), - 1074: uint16(217), - 1075: uint16(121), - 1076: uint16(216), - 1077: uint16(217), - 1078: uint16(63), - 1079: uint16(193), - 1080: uint16(193), - 1081: uint16(193), - 1082: uint16(239), - 1083: uint16(240), - 1084: uint16(115), - 1085: uint16(116), - 1086: uint16(193), - 1087: uint16(298), - 1088: uint16(73), - 1089: uint16(240), - 1090: uint16(238), - 1091: uint16(231), + 1073: uint16(217), + 1074: uint16(218), + 1075: uint16(240), + 1076: uint16(241), + 1077: uint16(118), + 1078: uint16(240), + 1079: uint16(241), + 1080: uint16(194), + 1081: uint16(194), + 1082: uint16(194), + 1083: uint16(239), + 1084: uint16(116), + 1085: uint16(117), + 1086: uint16(118), + 1087: uint16(22), + 1088: uint16(253), + 1089: uint16(254), + 1090: uint16(255), + 1091: uint16(253), 1092: uint16(19), - 1093: uint16(239), - 1094: uint16(240), - 1095: uint16(252), - 1096: uint16(22), + 1093: uint16(255), + 1094: uint16(233), + 1095: uint16(194), + 1096: uint16(143), 1097: uint16(24), - 1098: uint16(211), + 1098: uint16(263), 1099: uint16(212), - 1100: uint16(263), - 1101: uint16(252), - 1102: uint16(216), + 1100: uint16(213), + 1101: uint16(194), + 1102: uint16(143), 1103: uint16(217), - 1104: uint16(216), + 1104: uint16(218), 1105: uint16(217), - 1106: uint16(252), - 1107: uint16(153), - 1108: uint16(154), - 1109: uint16(155), - 1110: uint16(253), - 1111: uint16(193), + 1106: uint16(218), + 1107: uint16(261), + 1108: uint16(262), + 1109: uint16(271), + 1110: uint16(254), + 1111: uint16(143), 1112: uint16(19), - 1113: uint16(144), - 1114: uint16(213), - 1115: uint16(268), + 1113: uint16(7), + 1114: uint16(8), + 1115: uint16(9), 1116: uint16(43), 1117: uint16(44), 1118: uint16(45), @@ -150007,11 +151458,11 @@ var _yy_lookahead = [2285]uint16{ 1128: uint16(55), 1129: uint16(56), 1130: uint16(57), - 1131: uint16(193), + 1131: uint16(16), 1132: uint16(19), - 1133: uint16(59), - 1134: uint16(216), - 1135: uint16(217), + 1133: uint16(22), + 1134: uint16(23), + 1135: uint16(294), 1136: uint16(43), 1137: uint16(44), 1138: uint16(45), @@ -150027,11 +151478,11 @@ var _yy_lookahead = [2285]uint16{ 1148: uint16(55), 1149: uint16(56), 1150: uint16(57), - 1151: uint16(193), - 1152: uint16(19), - 1153: uint16(24), - 1154: uint16(216), - 1155: uint16(217), + 1151: uint16(312), + 1152: uint16(194), + 1153: uint16(214), + 1154: uint16(21), + 1155: uint16(316), 1156: uint16(43), 1157: uint16(44), 1158: uint16(45), @@ -150047,10 +151498,10 @@ var _yy_lookahead = [2285]uint16{ 1168: uint16(55), 1169: uint16(56), 1170: uint16(57), - 1171: uint16(284), - 1172: uint16(193), - 1173: uint16(208), - 1174: uint16(209), + 1171: uint16(106), + 1172: uint16(107), + 1173: uint16(286), + 1174: uint16(194), 1175: uint16(102), 1176: uint16(103), 1177: uint16(104), @@ -150063,14 +151514,14 @@ var _yy_lookahead = [2285]uint16{ 1184: uint16(111), 1185: uint16(112), 1186: uint16(113), - 1187: uint16(286), - 1188: uint16(59), - 1189: uint16(193), - 1190: uint16(232), - 1191: uint16(117), - 1192: uint16(291), - 1193: uint16(193), - 1194: uint16(193), + 1187: uint16(207), + 1188: uint16(158), + 1189: uint16(59), + 1190: uint16(160), + 1191: uint16(22), + 1192: uint16(77), + 1193: uint16(24), + 1194: uint16(79), 1195: uint16(102), 1196: uint16(103), 1197: uint16(104), @@ -150083,14 +151534,14 @@ var _yy_lookahead = [2285]uint16{ 1204: uint16(111), 1205: uint16(112), 1206: uint16(113), - 1207: uint16(193), - 1208: uint16(204), - 1209: uint16(22), - 1210: uint16(23), - 1211: uint16(193), - 1212: uint16(25), - 1213: uint16(66), - 1214: uint16(193), + 1207: uint16(194), + 1208: uint16(194), + 1209: uint16(229), + 1210: uint16(194), + 1211: uint16(231), + 1212: uint16(101), + 1213: uint16(80), + 1214: uint16(22), 1215: uint16(102), 1216: uint16(103), 1217: uint16(104), @@ -150103,39 +151554,39 @@ var _yy_lookahead = [2285]uint16{ 1224: uint16(111), 1225: uint16(112), 1226: uint16(113), - 1227: uint16(193), - 1228: uint16(193), - 1229: uint16(193), - 1230: uint16(216), - 1231: uint16(217), - 1232: uint16(85), - 1233: uint16(193), - 1234: uint16(238), + 1227: uint16(288), + 1228: uint16(59), + 1229: uint16(12), + 1230: uint16(217), + 1231: uint16(218), + 1232: uint16(293), + 1233: uint16(217), + 1234: uint16(218), 1235: uint16(19), - 1236: uint16(16), - 1237: uint16(216), - 1238: uint16(217), - 1239: uint16(238), - 1240: uint16(193), - 1241: uint16(94), - 1242: uint16(193), - 1243: uint16(239), - 1244: uint16(240), - 1245: uint16(231), - 1246: uint16(117), - 1247: uint16(268), - 1248: uint16(35), - 1249: uint16(116), - 1250: uint16(216), - 1251: uint16(217), - 1252: uint16(216), - 1253: uint16(217), - 1254: uint16(22), - 1255: uint16(23), - 1256: uint16(252), - 1257: uint16(25), - 1258: uint16(208), - 1259: uint16(209), + 1236: uint16(106), + 1237: uint16(107), + 1238: uint16(59), + 1239: uint16(19), + 1240: uint16(16), + 1241: uint16(127), + 1242: uint16(128), + 1243: uint16(129), + 1244: uint16(27), + 1245: uint16(115), + 1246: uint16(116), + 1247: uint16(117), + 1248: uint16(118), + 1249: uint16(194), + 1250: uint16(120), + 1251: uint16(59), + 1252: uint16(22), + 1253: uint16(194), + 1254: uint16(24), + 1255: uint16(194), + 1256: uint16(123), + 1257: uint16(100), + 1258: uint16(128), + 1259: uint16(42), 1260: uint16(44), 1261: uint16(45), 1262: uint16(46), @@ -150150,50 +151601,50 @@ var _yy_lookahead = [2285]uint16{ 1271: uint16(55), 1272: uint16(56), 1273: uint16(57), - 1274: uint16(193), - 1275: uint16(193), - 1276: uint16(19), - 1277: uint16(5), - 1278: uint16(59), - 1279: uint16(66), - 1280: uint16(193), - 1281: uint16(263), - 1282: uint16(10), - 1283: uint16(11), - 1284: uint16(12), - 1285: uint16(13), - 1286: uint16(14), - 1287: uint16(74), - 1288: uint16(101), - 1289: uint16(17), - 1290: uint16(193), - 1291: uint16(46), - 1292: uint16(193), - 1293: uint16(146), - 1294: uint16(193), - 1295: uint16(76), - 1296: uint16(213), - 1297: uint16(77), - 1298: uint16(263), - 1299: uint16(79), - 1300: uint16(12), - 1301: uint16(260), - 1302: uint16(30), - 1303: uint16(46), - 1304: uint16(32), - 1305: uint16(264), - 1306: uint16(87), - 1307: uint16(193), - 1308: uint16(89), - 1309: uint16(29), - 1310: uint16(263), - 1311: uint16(92), - 1312: uint16(40), - 1313: uint16(33), - 1314: uint16(232), - 1315: uint16(27), - 1316: uint16(193), - 1317: uint16(108), + 1274: uint16(117), + 1275: uint16(194), + 1276: uint16(217), + 1277: uint16(218), + 1278: uint16(121), + 1279: uint16(100), + 1280: uint16(63), + 1281: uint16(194), + 1282: uint16(245), + 1283: uint16(153), + 1284: uint16(194), + 1285: uint16(155), + 1286: uint16(117), + 1287: uint16(19), + 1288: uint16(115), + 1289: uint16(194), + 1290: uint16(73), + 1291: uint16(214), + 1292: uint16(194), + 1293: uint16(256), + 1294: uint16(161), + 1295: uint16(116), + 1296: uint16(117), + 1297: uint16(194), + 1298: uint16(217), + 1299: uint16(218), + 1300: uint16(121), + 1301: uint16(77), + 1302: uint16(194), + 1303: uint16(79), + 1304: uint16(217), + 1305: uint16(218), + 1306: uint16(194), + 1307: uint16(217), + 1308: uint16(218), + 1309: uint16(117), + 1310: uint16(153), + 1311: uint16(154), + 1312: uint16(155), + 1313: uint16(254), + 1314: uint16(46), + 1315: uint16(217), + 1316: uint16(218), + 1317: uint16(144), 1318: uint16(102), 1319: uint16(103), 1320: uint16(104), @@ -150206,1025 +151657,1068 @@ var _yy_lookahead = [2285]uint16{ 1327: uint16(111), 1328: uint16(112), 1329: uint16(113), - 1330: uint16(42), - 1331: uint16(138), - 1332: uint16(139), - 1333: uint16(101), - 1334: uint16(193), - 1335: uint16(116), - 1336: uint16(117), - 1337: uint16(118), + 1330: uint16(232), + 1331: uint16(270), + 1332: uint16(153), + 1333: uint16(154), + 1334: uint16(155), + 1335: uint16(115), + 1336: uint16(116), + 1337: uint16(66), 1338: uint16(19), 1339: uint16(20), - 1340: uint16(255), + 1340: uint16(183), 1341: uint16(22), - 1342: uint16(70), - 1343: uint16(130), - 1344: uint16(135), - 1345: uint16(65), - 1346: uint16(256), - 1347: uint16(257), - 1348: uint16(193), - 1349: uint16(140), - 1350: uint16(78), - 1351: uint16(63), - 1352: uint16(193), - 1353: uint16(81), - 1354: uint16(193), + 1342: uint16(12), + 1343: uint16(312), + 1344: uint16(254), + 1345: uint16(194), + 1346: uint16(262), + 1347: uint16(316), + 1348: uint16(209), + 1349: uint16(210), + 1350: uint16(266), + 1351: uint16(239), + 1352: uint16(194), + 1353: uint16(194), + 1354: uint16(108), 1355: uint16(36), - 1356: uint16(193), - 1357: uint16(216), - 1358: uint16(217), - 1359: uint16(193), - 1360: uint16(115), - 1361: uint16(193), - 1362: uint16(263), - 1363: uint16(193), - 1364: uint16(145), - 1365: uint16(268), - 1366: uint16(59), + 1356: uint16(85), + 1357: uint16(27), + 1358: uint16(19), + 1359: uint16(20), + 1360: uint16(265), + 1361: uint16(22), + 1362: uint16(183), + 1363: uint16(245), + 1364: uint16(144), + 1365: uint16(94), + 1366: uint16(25), 1367: uint16(48), - 1368: uint16(193), - 1369: uint16(193), - 1370: uint16(98), - 1371: uint16(193), - 1372: uint16(115), - 1373: uint16(193), - 1374: uint16(291), - 1375: uint16(216), + 1368: uint16(217), + 1369: uint16(218), + 1370: uint16(293), + 1371: uint16(194), + 1372: uint16(42), + 1373: uint16(270), + 1374: uint16(256), + 1375: uint16(36), 1376: uint16(217), - 1377: uint16(193), + 1377: uint16(218), 1378: uint16(59), - 1379: uint16(216), - 1380: uint16(217), - 1381: uint16(161), - 1382: uint16(216), - 1383: uint16(217), - 1384: uint16(216), - 1385: uint16(217), - 1386: uint16(216), - 1387: uint16(217), - 1388: uint16(131), - 1389: uint16(193), + 1379: uint16(194), + 1380: uint16(25), + 1381: uint16(135), + 1382: uint16(194), + 1383: uint16(115), + 1384: uint16(194), + 1385: uint16(161), + 1386: uint16(140), + 1387: uint16(194), + 1388: uint16(194), + 1389: uint16(15), 1390: uint16(71), - 1391: uint16(193), - 1392: uint16(216), - 1393: uint16(217), - 1394: uint16(216), - 1395: uint16(217), - 1396: uint16(216), - 1397: uint16(217), - 1398: uint16(193), - 1399: uint16(260), - 1400: uint16(216), - 1401: uint16(217), - 1402: uint16(19), - 1403: uint16(264), + 1391: uint16(194), + 1392: uint16(312), + 1393: uint16(63), + 1394: uint16(217), + 1395: uint16(218), + 1396: uint16(316), + 1397: uint16(194), + 1398: uint16(59), + 1399: uint16(131), + 1400: uint16(301), + 1401: uint16(302), + 1402: uint16(217), + 1403: uint16(218), 1404: uint16(85), - 1405: uint16(133), - 1406: uint16(244), - 1407: uint16(100), - 1408: uint16(193), + 1405: uint16(217), + 1406: uint16(218), + 1407: uint16(217), + 1408: uint16(218), 1409: uint16(90), - 1410: uint16(138), - 1411: uint16(139), - 1412: uint16(216), - 1413: uint16(217), - 1414: uint16(216), - 1415: uint16(217), - 1416: uint16(254), - 1417: uint16(244), - 1418: uint16(193), + 1410: uint16(71), + 1411: uint16(217), + 1412: uint16(218), + 1413: uint16(19), + 1414: uint16(217), + 1415: uint16(218), + 1416: uint16(245), + 1417: uint16(146), + 1418: uint16(262), 1419: uint16(100), - 1420: uint16(193), - 1421: uint16(216), - 1422: uint16(217), - 1423: uint16(116), - 1424: uint16(117), + 1420: uint16(217), + 1421: uint16(218), + 1422: uint16(266), + 1423: uint16(265), + 1424: uint16(85), 1425: uint16(106), 1426: uint16(107), - 1427: uint16(254), - 1428: uint16(121), - 1429: uint16(193), - 1430: uint16(115), - 1431: uint16(216), - 1432: uint16(217), + 1427: uint16(256), + 1428: uint16(312), + 1429: uint16(90), + 1430: uint16(209), + 1431: uint16(210), + 1432: uint16(316), 1433: uint16(114), - 1434: uint16(162), + 1434: uint16(60), 1435: uint16(116), 1436: uint16(117), 1437: uint16(118), - 1438: uint16(115), - 1439: uint16(244), + 1438: uint16(194), + 1439: uint16(100), 1440: uint16(121), - 1441: uint16(216), - 1442: uint16(217), - 1443: uint16(216), - 1444: uint16(217), - 1445: uint16(193), - 1446: uint16(309), - 1447: uint16(193), - 1448: uint16(31), - 1449: uint16(254), - 1450: uint16(313), - 1451: uint16(309), - 1452: uint16(216), - 1453: uint16(217), - 1454: uint16(309), - 1455: uint16(313), - 1456: uint16(39), - 1457: uint16(193), - 1458: uint16(313), - 1459: uint16(309), - 1460: uint16(153), - 1461: uint16(154), - 1462: uint16(155), - 1463: uint16(313), - 1464: uint16(193), - 1465: uint16(150), - 1466: uint16(25), - 1467: uint16(144), - 1468: uint16(216), - 1469: uint16(217), - 1470: uint16(216), - 1471: uint16(217), + 1441: uint16(194), + 1442: uint16(194), + 1443: uint16(145), + 1444: uint16(115), + 1445: uint16(106), + 1446: uint16(107), + 1447: uint16(19), + 1448: uint16(46), + 1449: uint16(19), + 1450: uint16(20), + 1451: uint16(24), + 1452: uint16(22), + 1453: uint16(114), + 1454: uint16(194), + 1455: uint16(116), + 1456: uint16(117), + 1457: uint16(118), + 1458: uint16(194), + 1459: uint16(245), + 1460: uint16(121), + 1461: uint16(194), + 1462: uint16(164), + 1463: uint16(194), + 1464: uint16(217), + 1465: uint16(218), + 1466: uint16(36), + 1467: uint16(194), + 1468: uint16(258), + 1469: uint16(259), + 1470: uint16(256), + 1471: uint16(194), 1472: uint16(153), 1473: uint16(154), 1474: uint16(155), 1475: uint16(156), 1476: uint16(157), - 1478: uint16(1), - 1479: uint16(2), - 1480: uint16(216), + 1477: uint16(217), + 1478: uint16(218), + 1479: uint16(150), + 1480: uint16(31), 1481: uint16(217), - 1482: uint16(5), - 1483: uint16(149), - 1484: uint16(150), - 1485: uint16(22), - 1486: uint16(193), - 1487: uint16(10), - 1488: uint16(11), - 1489: uint16(12), - 1490: uint16(13), - 1491: uint16(14), - 1492: uint16(193), - 1493: uint16(158), - 1494: uint16(17), - 1495: uint16(160), - 1496: uint16(193), - 1497: uint16(19), - 1498: uint16(20), - 1499: uint16(116), - 1500: uint16(22), - 1501: uint16(25), - 1502: uint16(193), - 1503: uint16(24), - 1504: uint16(22), - 1505: uint16(193), - 1506: uint16(24), - 1507: uint16(30), - 1508: uint16(226), - 1509: uint16(32), - 1510: uint16(19), - 1511: uint16(20), - 1512: uint16(226), - 1513: uint16(22), - 1514: uint16(36), - 1515: uint16(193), - 1516: uint16(53), - 1517: uint16(40), - 1518: uint16(193), - 1519: uint16(216), - 1520: uint16(217), - 1521: uint16(193), - 1522: uint16(23), - 1523: uint16(193), - 1524: uint16(25), - 1525: uint16(216), - 1526: uint16(217), - 1527: uint16(36), - 1528: uint16(216), - 1529: uint16(217), - 1530: uint16(193), - 1531: uint16(99), - 1532: uint16(193), - 1533: uint16(193), - 1534: uint16(22), - 1535: uint16(193), - 1536: uint16(193), - 1537: uint16(59), - 1538: uint16(216), + 1482: uint16(218), + 1483: uint16(142), + 1484: uint16(217), + 1485: uint16(218), + 1486: uint16(217), + 1487: uint16(218), + 1488: uint16(39), + 1489: uint16(59), + 1490: uint16(217), + 1491: uint16(218), + 1492: uint16(153), + 1493: uint16(154), + 1494: uint16(155), + 1495: uint16(156), + 1496: uint16(157), + 1497: uint16(149), + 1498: uint16(150), + 1499: uint16(5), + 1500: uint16(145), + 1501: uint16(71), + 1502: uint16(183), + 1503: uint16(245), + 1504: uint16(10), + 1505: uint16(11), + 1506: uint16(12), + 1507: uint16(13), + 1508: uint16(14), + 1509: uint16(194), + 1510: uint16(116), + 1511: uint16(17), + 1512: uint16(129), + 1513: uint16(227), + 1514: uint16(256), + 1515: uint16(85), + 1516: uint16(194), + 1517: uint16(115), + 1518: uint16(194), + 1519: uint16(23), + 1520: uint16(90), + 1521: uint16(25), + 1522: uint16(183), + 1523: uint16(99), + 1524: uint16(30), + 1525: uint16(97), + 1526: uint16(32), + 1527: uint16(22), + 1528: uint16(22), + 1529: uint16(194), + 1530: uint16(100), + 1531: uint16(194), + 1532: uint16(217), + 1533: uint16(218), + 1534: uint16(40), + 1535: uint16(152), + 1536: uint16(106), + 1537: uint16(107), + 1538: uint16(23), 1539: uint16(217), - 1540: uint16(193), - 1541: uint16(216), - 1542: uint16(217), - 1543: uint16(193), - 1544: uint16(216), - 1545: uint16(217), - 1546: uint16(193), - 1547: uint16(70), - 1548: uint16(129), - 1549: uint16(71), - 1550: uint16(59), - 1551: uint16(129), - 1552: uint16(193), - 1553: uint16(216), + 1540: uint16(218), + 1541: uint16(194), + 1542: uint16(19), + 1543: uint16(20), + 1544: uint16(114), + 1545: uint16(22), + 1546: uint16(116), + 1547: uint16(117), + 1548: uint16(118), + 1549: uint16(257), + 1550: uint16(194), + 1551: uint16(121), + 1552: uint16(217), + 1553: uint16(218), 1554: uint16(217), - 1555: uint16(78), - 1556: uint16(216), - 1557: uint16(217), - 1558: uint16(81), - 1559: uint16(216), - 1560: uint16(217), - 1561: uint16(193), - 1562: uint16(71), - 1563: uint16(85), - 1564: uint16(193), - 1565: uint16(133), - 1566: uint16(193), - 1567: uint16(126), - 1568: uint16(90), - 1569: uint16(216), - 1570: uint16(217), - 1571: uint16(152), - 1572: uint16(258), - 1573: uint16(61), - 1574: uint16(152), - 1575: uint16(98), - 1576: uint16(85), - 1577: uint16(193), - 1578: uint16(100), - 1579: uint16(193), - 1580: uint16(23), - 1581: uint16(90), - 1582: uint16(25), - 1583: uint16(121), - 1584: uint16(106), - 1585: uint16(107), - 1586: uint16(23), - 1587: uint16(216), - 1588: uint16(217), - 1589: uint16(216), - 1590: uint16(217), - 1591: uint16(100), - 1592: uint16(114), - 1593: uint16(131), - 1594: uint16(116), - 1595: uint16(117), - 1596: uint16(118), - 1597: uint16(106), - 1598: uint16(107), - 1599: uint16(121), - 1600: uint16(216), - 1601: uint16(217), - 1602: uint16(216), - 1603: uint16(217), - 1604: uint16(193), - 1605: uint16(114), - 1606: uint16(193), - 1607: uint16(116), - 1608: uint16(117), - 1609: uint16(118), - 1610: uint16(133), - 1611: uint16(22), - 1612: uint16(121), - 1613: uint16(193), - 1614: uint16(59), - 1615: uint16(138), - 1616: uint16(139), - 1617: uint16(193), - 1618: uint16(142), - 1619: uint16(193), - 1620: uint16(141), - 1621: uint16(23), - 1622: uint16(23), - 1623: uint16(25), - 1624: uint16(25), - 1625: uint16(120), - 1626: uint16(121), - 1627: uint16(216), - 1628: uint16(217), - 1629: uint16(216), - 1630: uint16(217), - 1631: uint16(153), - 1632: uint16(154), - 1633: uint16(155), - 1634: uint16(156), - 1635: uint16(157), - 1636: uint16(216), - 1637: uint16(217), - 1638: uint16(19), - 1639: uint16(162), - 1640: uint16(216), - 1641: uint16(217), - 1642: uint16(216), - 1643: uint16(217), - 1644: uint16(153), - 1645: uint16(154), - 1646: uint16(155), - 1647: uint16(156), - 1648: uint16(157), - 1649: uint16(1), - 1650: uint16(2), - 1651: uint16(193), - 1652: uint16(59), - 1653: uint16(5), - 1654: uint16(19), - 1655: uint16(20), - 1656: uint16(318), - 1657: uint16(22), - 1658: uint16(10), - 1659: uint16(11), - 1660: uint16(12), - 1661: uint16(13), - 1662: uint16(14), - 1663: uint16(193), - 1664: uint16(59), - 1665: uint16(17), - 1666: uint16(193), - 1667: uint16(23), - 1668: uint16(23), - 1669: uint16(25), - 1670: uint16(25), - 1671: uint16(36), - 1672: uint16(117), - 1673: uint16(193), - 1674: uint16(216), - 1675: uint16(217), - 1676: uint16(193), - 1677: uint16(23), - 1678: uint16(30), - 1679: uint16(25), - 1680: uint16(32), - 1681: uint16(19), - 1682: uint16(20), - 1683: uint16(23), - 1684: uint16(22), - 1685: uint16(25), - 1686: uint16(216), - 1687: uint16(217), - 1688: uint16(40), - 1689: uint16(216), + 1555: uint16(218), + 1556: uint16(194), + 1557: uint16(133), + 1558: uint16(53), + 1559: uint16(36), + 1560: uint16(23), + 1561: uint16(23), + 1562: uint16(25), + 1563: uint16(25), + 1564: uint16(70), + 1565: uint16(120), + 1566: uint16(121), + 1567: uint16(61), + 1568: uint16(141), + 1569: uint16(7), + 1570: uint16(8), + 1571: uint16(121), + 1572: uint16(78), + 1573: uint16(217), + 1574: uint16(218), + 1575: uint16(81), + 1576: uint16(23), + 1577: uint16(227), + 1578: uint16(25), + 1579: uint16(217), + 1580: uint16(218), + 1581: uint16(131), + 1582: uint16(59), + 1583: uint16(153), + 1584: uint16(154), + 1585: uint16(155), + 1586: uint16(156), + 1587: uint16(157), + 1589: uint16(1), + 1590: uint16(2), + 1591: uint16(59), + 1592: uint16(98), + 1593: uint16(5), + 1594: uint16(71), + 1595: uint16(23), + 1596: uint16(227), + 1597: uint16(25), + 1598: uint16(10), + 1599: uint16(11), + 1600: uint16(12), + 1601: uint16(13), + 1602: uint16(14), + 1603: uint16(83), + 1604: uint16(84), + 1605: uint16(17), + 1606: uint16(23), + 1607: uint16(23), + 1608: uint16(25), + 1609: uint16(25), + 1610: uint16(59), + 1611: uint16(194), + 1612: uint16(194), + 1613: uint16(183), + 1614: uint16(23), + 1615: uint16(23), + 1616: uint16(25), + 1617: uint16(25), + 1618: uint16(30), + 1619: uint16(194), + 1620: uint16(32), + 1621: uint16(19), + 1622: uint16(20), + 1623: uint16(100), + 1624: uint16(22), + 1625: uint16(194), + 1626: uint16(194), + 1627: uint16(133), + 1628: uint16(40), + 1629: uint16(106), + 1630: uint16(107), + 1631: uint16(108), + 1632: uint16(138), + 1633: uint16(139), + 1634: uint16(194), + 1635: uint16(217), + 1636: uint16(218), + 1637: uint16(114), + 1638: uint16(36), + 1639: uint16(116), + 1640: uint16(117), + 1641: uint16(118), + 1642: uint16(217), + 1643: uint16(218), + 1644: uint16(121), + 1645: uint16(194), + 1646: uint16(194), + 1647: uint16(194), + 1648: uint16(23), + 1649: uint16(117), + 1650: uint16(25), + 1651: uint16(194), + 1652: uint16(23), + 1653: uint16(23), + 1654: uint16(25), + 1655: uint16(25), + 1656: uint16(162), + 1657: uint16(194), + 1658: uint16(70), + 1659: uint16(194), + 1660: uint16(145), + 1661: uint16(59), + 1662: uint16(23), + 1663: uint16(153), + 1664: uint16(25), + 1665: uint16(155), + 1666: uint16(78), + 1667: uint16(194), + 1668: uint16(117), + 1669: uint16(81), + 1670: uint16(217), + 1671: uint16(218), + 1672: uint16(194), + 1673: uint16(71), + 1674: uint16(217), + 1675: uint16(218), + 1676: uint16(153), + 1677: uint16(154), + 1678: uint16(155), + 1679: uint16(156), + 1680: uint16(157), + 1681: uint16(194), + 1682: uint16(217), + 1683: uint16(218), + 1684: uint16(194), + 1685: uint16(23), + 1686: uint16(98), + 1687: uint16(25), + 1688: uint16(321), + 1689: uint16(194), 1690: uint16(217), - 1691: uint16(7), - 1692: uint16(8), - 1693: uint16(23), - 1694: uint16(59), - 1695: uint16(25), - 1696: uint16(83), - 1697: uint16(84), - 1698: uint16(36), - 1699: uint16(23), - 1700: uint16(193), - 1701: uint16(25), - 1702: uint16(23), - 1703: uint16(23), - 1704: uint16(25), - 1705: uint16(25), - 1706: uint16(71), - 1707: uint16(153), - 1708: uint16(145), - 1709: uint16(155), - 1710: uint16(117), - 1711: uint16(153), - 1712: uint16(23), - 1713: uint16(155), - 1714: uint16(25), - 1715: uint16(23), - 1716: uint16(97), - 1717: uint16(25), - 1718: uint16(70), - 1719: uint16(193), - 1720: uint16(193), - 1721: uint16(59), - 1722: uint16(117), - 1723: uint16(236), - 1724: uint16(193), - 1725: uint16(193), - 1726: uint16(78), - 1727: uint16(193), - 1728: uint16(193), - 1729: uint16(81), - 1730: uint16(141), - 1731: uint16(193), - 1732: uint16(193), - 1733: uint16(71), - 1734: uint16(193), - 1735: uint16(100), - 1736: uint16(288), - 1737: uint16(287), - 1738: uint16(242), - 1739: uint16(255), - 1740: uint16(255), - 1741: uint16(106), - 1742: uint16(107), - 1743: uint16(108), - 1744: uint16(255), - 1745: uint16(255), - 1746: uint16(98), - 1747: uint16(243), - 1748: uint16(297), - 1749: uint16(114), - 1750: uint16(214), - 1751: uint16(116), - 1752: uint16(117), - 1753: uint16(118), - 1754: uint16(245), - 1755: uint16(191), - 1756: uint16(121), - 1757: uint16(271), - 1758: uint16(293), - 1759: uint16(267), - 1760: uint16(267), - 1761: uint16(246), - 1762: uint16(100), - 1763: uint16(246), - 1764: uint16(245), - 1765: uint16(271), - 1766: uint16(271), - 1767: uint16(293), - 1768: uint16(106), - 1769: uint16(107), - 1770: uint16(220), - 1771: uint16(271), - 1772: uint16(229), - 1773: uint16(225), - 1774: uint16(249), - 1775: uint16(219), - 1776: uint16(114), - 1777: uint16(259), - 1778: uint16(116), - 1779: uint16(117), - 1780: uint16(118), - 1781: uint16(133), - 1782: uint16(259), - 1783: uint16(121), - 1784: uint16(219), - 1785: uint16(219), - 1786: uint16(138), - 1787: uint16(139), - 1788: uint16(153), - 1789: uint16(154), - 1790: uint16(155), - 1791: uint16(156), - 1792: uint16(157), - 1793: uint16(280), - 1794: uint16(249), - 1795: uint16(243), - 1796: uint16(19), - 1797: uint16(20), - 1798: uint16(245), - 1799: uint16(22), - 1800: uint16(196), - 1801: uint16(259), - 1802: uint16(140), - 1803: uint16(259), - 1804: uint16(60), - 1805: uint16(297), - 1806: uint16(141), - 1807: uint16(297), - 1808: uint16(200), - 1809: uint16(200), - 1810: uint16(162), - 1811: uint16(38), - 1812: uint16(200), - 1813: uint16(36), - 1814: uint16(294), - 1815: uint16(153), - 1816: uint16(154), - 1817: uint16(155), - 1818: uint16(156), - 1819: uint16(157), - 1820: uint16(151), - 1821: uint16(150), - 1822: uint16(294), - 1823: uint16(283), - 1824: uint16(22), - 1825: uint16(43), - 1826: uint16(234), - 1827: uint16(18), - 1828: uint16(237), - 1829: uint16(200), - 1830: uint16(270), - 1831: uint16(272), - 1832: uint16(237), - 1833: uint16(237), - 1834: uint16(237), - 1835: uint16(18), - 1836: uint16(59), - 1837: uint16(199), - 1838: uint16(270), - 1839: uint16(149), - 1840: uint16(246), - 1841: uint16(272), - 1842: uint16(272), - 1843: uint16(200), - 1844: uint16(234), - 1845: uint16(234), - 1846: uint16(246), - 1847: uint16(246), - 1848: uint16(71), - 1849: uint16(246), - 1850: uint16(199), - 1851: uint16(158), - 1852: uint16(290), - 1853: uint16(62), - 1854: uint16(22), - 1855: uint16(200), - 1856: uint16(19), - 1857: uint16(20), - 1858: uint16(199), - 1859: uint16(22), - 1860: uint16(289), - 1861: uint16(221), - 1862: uint16(221), - 1863: uint16(200), - 1864: uint16(200), - 1865: uint16(199), - 1866: uint16(199), - 1867: uint16(115), - 1868: uint16(218), - 1869: uint16(64), - 1870: uint16(218), - 1871: uint16(218), + 1691: uint16(218), + 1692: uint16(194), + 1693: uint16(19), + 1694: uint16(20), + 1695: uint16(194), + 1696: uint16(22), + 1697: uint16(153), + 1698: uint16(23), + 1699: uint16(155), + 1700: uint16(25), + 1701: uint16(194), + 1702: uint16(100), + 1703: uint16(194), + 1704: uint16(217), + 1705: uint16(218), + 1706: uint16(183), + 1707: uint16(194), + 1708: uint16(106), + 1709: uint16(107), + 1710: uint16(36), + 1711: uint16(194), + 1712: uint16(217), + 1713: uint16(218), + 1714: uint16(237), + 1715: uint16(194), + 1716: uint16(114), + 1717: uint16(243), + 1718: uint16(116), + 1719: uint16(117), + 1720: uint16(118), + 1721: uint16(133), + 1722: uint16(194), + 1723: uint16(121), + 1724: uint16(217), + 1725: uint16(218), + 1726: uint16(138), + 1727: uint16(139), + 1728: uint16(194), + 1729: uint16(194), + 1730: uint16(194), + 1731: uint16(290), + 1732: uint16(289), + 1733: uint16(59), + 1734: uint16(217), + 1735: uint16(218), + 1736: uint16(194), + 1737: uint16(194), + 1738: uint16(217), + 1739: uint16(218), + 1740: uint16(194), + 1741: uint16(194), + 1742: uint16(140), + 1743: uint16(194), + 1744: uint16(194), + 1745: uint16(71), + 1746: uint16(194), + 1747: uint16(244), + 1748: uint16(194), + 1749: uint16(194), + 1750: uint16(162), + 1751: uint16(217), + 1752: uint16(218), + 1753: uint16(194), + 1754: uint16(194), + 1755: uint16(153), + 1756: uint16(154), + 1757: uint16(155), + 1758: uint16(156), + 1759: uint16(157), + 1760: uint16(217), + 1761: uint16(218), + 1762: uint16(194), + 1763: uint16(217), + 1764: uint16(218), + 1765: uint16(194), + 1766: uint16(217), + 1767: uint16(218), + 1768: uint16(257), + 1769: uint16(217), + 1770: uint16(218), + 1771: uint16(217), + 1772: uint16(218), + 1773: uint16(257), + 1774: uint16(100), + 1775: uint16(194), + 1776: uint16(257), + 1777: uint16(217), + 1778: uint16(218), + 1779: uint16(257), + 1780: uint16(106), + 1781: uint16(107), + 1782: uint16(215), + 1783: uint16(299), + 1784: uint16(194), + 1785: uint16(183), + 1786: uint16(192), + 1787: uint16(194), + 1788: uint16(114), + 1789: uint16(194), + 1790: uint16(116), + 1791: uint16(117), + 1792: uint16(118), + 1793: uint16(1), + 1794: uint16(2), + 1795: uint16(121), + 1796: uint16(221), + 1797: uint16(5), + 1798: uint16(217), + 1799: uint16(218), + 1800: uint16(273), + 1801: uint16(197), + 1802: uint16(10), + 1803: uint16(11), + 1804: uint16(12), + 1805: uint16(13), + 1806: uint16(14), + 1807: uint16(217), + 1808: uint16(218), + 1809: uint16(17), + 1810: uint16(217), + 1811: uint16(218), + 1812: uint16(217), + 1813: uint16(218), + 1814: uint16(140), + 1815: uint16(194), + 1816: uint16(246), + 1817: uint16(194), + 1818: uint16(273), + 1819: uint16(295), + 1820: uint16(247), + 1821: uint16(273), + 1822: uint16(30), + 1823: uint16(247), + 1824: uint16(32), + 1825: uint16(269), + 1826: uint16(269), + 1827: uint16(153), + 1828: uint16(154), + 1829: uint16(155), + 1830: uint16(156), + 1831: uint16(157), + 1832: uint16(40), + 1833: uint16(246), + 1834: uint16(273), + 1835: uint16(295), + 1836: uint16(230), + 1837: uint16(226), + 1838: uint16(217), + 1839: uint16(218), + 1840: uint16(217), + 1841: uint16(218), + 1842: uint16(220), + 1843: uint16(261), + 1844: uint16(220), + 1845: uint16(282), + 1846: uint16(220), + 1847: uint16(19), + 1848: uint16(20), + 1849: uint16(244), + 1850: uint16(22), + 1851: uint16(250), + 1852: uint16(141), + 1853: uint16(250), + 1854: uint16(246), + 1855: uint16(60), + 1856: uint16(201), + 1857: uint16(183), + 1858: uint16(261), + 1859: uint16(261), + 1860: uint16(261), + 1861: uint16(201), + 1862: uint16(70), + 1863: uint16(299), + 1864: uint16(36), + 1865: uint16(299), + 1866: uint16(201), + 1867: uint16(38), + 1868: uint16(151), + 1869: uint16(150), + 1870: uint16(78), + 1871: uint16(285), 1872: uint16(22), - 1873: uint16(36), - 1874: uint16(227), - 1875: uint16(126), - 1876: uint16(227), - 1877: uint16(100), - 1878: uint16(165), - 1879: uint16(221), - 1880: uint16(224), - 1881: uint16(224), - 1882: uint16(24), - 1883: uint16(106), - 1884: uint16(107), - 1885: uint16(312), - 1886: uint16(218), - 1887: uint16(305), - 1888: uint16(113), - 1889: uint16(282), - 1890: uint16(91), - 1891: uint16(114), - 1892: uint16(220), - 1893: uint16(116), - 1894: uint16(117), - 1895: uint16(118), - 1896: uint16(59), - 1897: uint16(282), - 1898: uint16(121), - 1899: uint16(218), - 1900: uint16(218), - 1901: uint16(218), + 1873: uint16(81), + 1874: uint16(296), + 1875: uint16(296), + 1876: uint16(43), + 1877: uint16(235), + 1878: uint16(18), + 1879: uint16(238), + 1880: uint16(201), + 1881: uint16(274), + 1882: uint16(272), + 1883: uint16(238), + 1884: uint16(238), + 1885: uint16(238), + 1886: uint16(18), + 1887: uint16(59), + 1888: uint16(200), + 1889: uint16(149), + 1890: uint16(98), + 1891: uint16(247), + 1892: uint16(274), + 1893: uint16(274), + 1894: uint16(235), + 1895: uint16(247), + 1896: uint16(247), + 1897: uint16(247), + 1898: uint16(235), + 1899: uint16(71), + 1900: uint16(272), + 1901: uint16(201), 1902: uint16(200), - 1903: uint16(317), - 1904: uint16(317), - 1905: uint16(82), - 1906: uint16(221), - 1907: uint16(265), - 1908: uint16(71), - 1909: uint16(148), - 1910: uint16(145), - 1911: uint16(265), - 1912: uint16(22), - 1913: uint16(277), - 1914: uint16(200), - 1915: uint16(158), - 1916: uint16(279), - 1917: uint16(140), - 1918: uint16(147), - 1919: uint16(25), - 1920: uint16(146), - 1921: uint16(202), - 1922: uint16(248), - 1923: uint16(250), - 1924: uint16(249), - 1925: uint16(247), - 1926: uint16(13), - 1927: uint16(250), - 1928: uint16(194), - 1929: uint16(194), - 1930: uint16(153), - 1931: uint16(154), - 1932: uint16(155), - 1933: uint16(156), - 1934: uint16(157), - 1935: uint16(6), - 1936: uint16(303), - 1937: uint16(100), - 1938: uint16(192), - 1939: uint16(192), - 1940: uint16(246), - 1941: uint16(213), - 1942: uint16(192), - 1943: uint16(106), - 1944: uint16(107), - 1945: uint16(207), - 1946: uint16(213), - 1947: uint16(207), - 1948: uint16(222), - 1949: uint16(213), - 1950: uint16(213), - 1951: uint16(114), - 1952: uint16(222), - 1953: uint16(116), - 1954: uint16(117), - 1955: uint16(118), - 1956: uint16(214), - 1957: uint16(214), - 1958: uint16(121), - 1959: uint16(4), - 1960: uint16(207), - 1961: uint16(213), - 1962: uint16(3), - 1963: uint16(22), - 1964: uint16(303), - 1965: uint16(15), - 1966: uint16(163), - 1967: uint16(16), - 1968: uint16(23), - 1969: uint16(23), - 1970: uint16(139), - 1971: uint16(151), - 1972: uint16(130), - 1973: uint16(25), - 1974: uint16(20), - 1975: uint16(142), - 1976: uint16(24), - 1977: uint16(16), - 1978: uint16(144), - 1979: uint16(1), - 1980: uint16(142), - 1981: uint16(130), - 1982: uint16(130), - 1983: uint16(61), - 1984: uint16(37), - 1985: uint16(53), - 1986: uint16(300), - 1987: uint16(151), - 1988: uint16(53), - 1989: uint16(53), - 1990: uint16(153), - 1991: uint16(154), - 1992: uint16(155), - 1993: uint16(156), - 1994: uint16(157), - 1995: uint16(53), - 1996: uint16(130), - 1997: uint16(116), - 1998: uint16(34), - 1999: uint16(1), - 2000: uint16(141), - 2001: uint16(5), - 2002: uint16(22), - 2003: uint16(115), - 2004: uint16(161), - 2005: uint16(68), - 2006: uint16(25), - 2007: uint16(68), - 2008: uint16(75), - 2009: uint16(41), - 2010: uint16(141), - 2011: uint16(115), - 2012: uint16(24), - 2013: uint16(20), - 2014: uint16(19), - 2015: uint16(131), - 2016: uint16(125), - 2017: uint16(23), - 2018: uint16(28), - 2019: uint16(22), - 2020: uint16(67), - 2021: uint16(22), - 2022: uint16(22), - 2023: uint16(22), - 2024: uint16(67), - 2025: uint16(59), - 2026: uint16(24), - 2027: uint16(96), - 2028: uint16(22), - 2029: uint16(67), - 2030: uint16(23), - 2031: uint16(149), - 2032: uint16(22), - 2033: uint16(25), - 2034: uint16(23), - 2035: uint16(23), - 2036: uint16(23), - 2037: uint16(22), - 2038: uint16(34), - 2039: uint16(141), - 2040: uint16(37), - 2041: uint16(97), - 2042: uint16(23), - 2043: uint16(23), - 2044: uint16(116), - 2045: uint16(22), - 2046: uint16(143), - 2047: uint16(25), - 2048: uint16(34), - 2049: uint16(75), - 2050: uint16(34), - 2051: uint16(34), - 2052: uint16(34), - 2053: uint16(88), - 2054: uint16(75), - 2055: uint16(34), - 2056: uint16(86), - 2057: uint16(23), + 1903: uint16(158), + 1904: uint16(292), + 1905: uint16(62), + 1906: uint16(291), + 1907: uint16(201), + 1908: uint16(200), + 1909: uint16(22), + 1910: uint16(201), + 1911: uint16(222), + 1912: uint16(200), + 1913: uint16(222), + 1914: uint16(201), + 1915: uint16(200), + 1916: uint16(115), + 1917: uint16(219), + 1918: uint16(219), + 1919: uint16(64), + 1920: uint16(219), + 1921: uint16(228), + 1922: uint16(22), + 1923: uint16(126), + 1924: uint16(221), + 1925: uint16(133), + 1926: uint16(165), + 1927: uint16(222), + 1928: uint16(100), + 1929: uint16(225), + 1930: uint16(138), + 1931: uint16(139), + 1932: uint16(225), + 1933: uint16(219), + 1934: uint16(106), + 1935: uint16(107), + 1936: uint16(24), + 1937: uint16(219), + 1938: uint16(228), + 1939: uint16(219), + 1940: uint16(219), + 1941: uint16(307), + 1942: uint16(114), + 1943: uint16(113), + 1944: uint16(116), + 1945: uint16(117), + 1946: uint16(118), + 1947: uint16(315), + 1948: uint16(284), + 1949: uint16(121), + 1950: uint16(284), + 1951: uint16(222), + 1952: uint16(201), + 1953: uint16(91), + 1954: uint16(162), + 1955: uint16(320), + 1956: uint16(320), + 1957: uint16(82), + 1958: uint16(148), + 1959: uint16(267), + 1960: uint16(145), + 1961: uint16(267), + 1962: uint16(22), + 1963: uint16(279), + 1964: uint16(201), + 1965: uint16(158), + 1966: uint16(281), + 1967: uint16(251), + 1968: uint16(147), + 1969: uint16(146), + 1970: uint16(25), + 1971: uint16(203), + 1972: uint16(250), + 1973: uint16(249), + 1974: uint16(251), + 1975: uint16(248), + 1976: uint16(13), + 1977: uint16(247), + 1978: uint16(195), + 1979: uint16(195), + 1980: uint16(6), + 1981: uint16(153), + 1982: uint16(154), + 1983: uint16(155), + 1984: uint16(156), + 1985: uint16(157), + 1986: uint16(193), + 1987: uint16(193), + 1988: uint16(305), + 1989: uint16(193), + 1990: uint16(208), + 1991: uint16(305), + 1992: uint16(302), + 1993: uint16(214), + 1994: uint16(214), + 1995: uint16(214), + 1996: uint16(208), + 1997: uint16(223), + 1998: uint16(223), + 1999: uint16(214), + 2000: uint16(4), + 2001: uint16(215), + 2002: uint16(215), + 2003: uint16(214), + 2004: uint16(3), + 2005: uint16(22), + 2006: uint16(208), + 2007: uint16(163), + 2008: uint16(15), + 2009: uint16(23), + 2010: uint16(16), + 2011: uint16(183), + 2012: uint16(23), + 2013: uint16(139), + 2014: uint16(151), + 2015: uint16(130), + 2016: uint16(25), + 2017: uint16(20), + 2018: uint16(142), + 2019: uint16(24), + 2020: uint16(16), + 2021: uint16(144), + 2022: uint16(1), + 2023: uint16(142), + 2024: uint16(130), + 2025: uint16(130), + 2026: uint16(61), + 2027: uint16(37), + 2028: uint16(53), + 2029: uint16(151), + 2030: uint16(53), + 2031: uint16(53), + 2032: uint16(53), + 2033: uint16(130), + 2034: uint16(116), + 2035: uint16(1), + 2036: uint16(34), + 2037: uint16(141), + 2038: uint16(5), + 2039: uint16(22), + 2040: uint16(115), + 2041: uint16(161), + 2042: uint16(75), + 2043: uint16(25), + 2044: uint16(68), + 2045: uint16(141), + 2046: uint16(41), + 2047: uint16(115), + 2048: uint16(68), + 2049: uint16(24), + 2050: uint16(20), + 2051: uint16(19), + 2052: uint16(131), + 2053: uint16(125), + 2054: uint16(67), + 2055: uint16(67), + 2056: uint16(96), + 2057: uint16(22), 2058: uint16(22), - 2059: uint16(34), - 2060: uint16(93), - 2061: uint16(24), - 2062: uint16(34), - 2063: uint16(25), - 2064: uint16(25), - 2065: uint16(142), - 2066: uint16(142), + 2059: uint16(22), + 2060: uint16(37), + 2061: uint16(23), + 2062: uint16(22), + 2063: uint16(24), + 2064: uint16(22), + 2065: uint16(59), + 2066: uint16(67), 2067: uint16(23), - 2068: uint16(44), - 2069: uint16(23), - 2070: uint16(23), - 2071: uint16(23), + 2068: uint16(149), + 2069: uint16(28), + 2070: uint16(22), + 2071: uint16(25), 2072: uint16(23), - 2073: uint16(11), + 2073: uint16(23), 2074: uint16(23), - 2075: uint16(25), - 2076: uint16(22), - 2077: uint16(22), - 2078: uint16(22), - 2079: uint16(141), + 2075: uint16(22), + 2076: uint16(141), + 2077: uint16(34), + 2078: uint16(97), + 2079: uint16(23), 2080: uint16(23), - 2081: uint16(23), - 2082: uint16(22), + 2081: uint16(34), + 2082: uint16(116), 2083: uint16(22), - 2084: uint16(25), - 2085: uint16(15), - 2086: uint16(1), - 2087: uint16(23), - 2088: uint16(25), - 2089: uint16(1), - 2090: uint16(141), - 2091: uint16(135), - 2092: uint16(319), - 2093: uint16(319), - 2094: uint16(319), - 2095: uint16(319), - 2096: uint16(319), - 2097: uint16(319), - 2098: uint16(319), - 2099: uint16(141), - 2100: uint16(319), - 2101: uint16(319), - 2102: uint16(319), - 2103: uint16(319), - 2104: uint16(319), - 2105: uint16(319), - 2106: uint16(319), - 2107: uint16(319), - 2108: uint16(319), - 2109: uint16(319), - 2110: uint16(319), - 2111: uint16(319), - 2112: uint16(319), - 2113: uint16(319), - 2114: uint16(319), - 2115: uint16(319), - 2116: uint16(319), - 2117: uint16(319), - 2118: uint16(319), - 2119: uint16(319), - 2120: uint16(319), - 2121: uint16(319), - 2122: uint16(319), - 2123: uint16(319), - 2124: uint16(319), - 2125: uint16(319), - 2126: uint16(319), - 2127: uint16(319), - 2128: uint16(319), - 2129: uint16(319), - 2130: uint16(319), - 2131: uint16(319), - 2132: uint16(319), - 2133: uint16(319), - 2134: uint16(319), - 2135: uint16(319), - 2136: uint16(319), - 2137: uint16(319), - 2138: uint16(319), - 2139: uint16(319), - 2140: uint16(319), - 2141: uint16(319), - 2142: uint16(319), - 2143: uint16(319), - 2144: uint16(319), - 2145: uint16(319), - 2146: uint16(319), - 2147: uint16(319), - 2148: uint16(319), - 2149: uint16(319), - 2150: uint16(319), - 2151: uint16(319), - 2152: uint16(319), - 2153: uint16(319), - 2154: uint16(319), - 2155: uint16(319), - 2156: uint16(319), - 2157: uint16(319), - 2158: uint16(319), - 2159: uint16(319), - 2160: uint16(319), - 2161: uint16(319), - 2162: uint16(319), - 2163: uint16(319), - 2164: uint16(319), - 2165: uint16(319), - 2166: uint16(319), - 2167: uint16(319), - 2168: uint16(319), - 2169: uint16(319), - 2170: uint16(319), - 2171: uint16(319), - 2172: uint16(319), - 2173: uint16(319), - 2174: uint16(319), - 2175: uint16(319), - 2176: uint16(319), - 2177: uint16(319), - 2178: uint16(319), - 2179: uint16(319), - 2180: uint16(319), - 2181: uint16(319), - 2182: uint16(319), - 2183: uint16(319), - 2184: uint16(319), - 2185: uint16(319), - 2186: uint16(319), - 2187: uint16(319), - 2188: uint16(319), - 2189: uint16(319), - 2190: uint16(319), - 2191: uint16(319), - 2192: uint16(319), - 2193: uint16(319), - 2194: uint16(319), - 2195: uint16(319), - 2196: uint16(319), - 2197: uint16(319), - 2198: uint16(319), - 2199: uint16(319), - 2200: uint16(319), - 2201: uint16(319), - 2202: uint16(319), - 2203: uint16(319), - 2204: uint16(319), - 2205: uint16(319), - 2206: uint16(319), - 2207: uint16(319), - 2208: uint16(319), - 2209: uint16(319), - 2210: uint16(319), - 2211: uint16(319), - 2212: uint16(319), - 2213: uint16(319), - 2214: uint16(319), - 2215: uint16(319), - 2216: uint16(319), - 2217: uint16(319), - 2218: uint16(319), - 2219: uint16(319), - 2220: uint16(319), - 2221: uint16(319), - 2222: uint16(319), - 2223: uint16(319), - 2224: uint16(319), - 2225: uint16(319), - 2226: uint16(319), - 2227: uint16(319), - 2228: uint16(319), - 2229: uint16(319), - 2230: uint16(319), - 2231: uint16(319), - 2232: uint16(319), - 2233: uint16(319), - 2234: uint16(319), - 2235: uint16(319), - 2236: uint16(319), - 2237: uint16(319), - 2238: uint16(319), - 2239: uint16(319), - 2240: uint16(319), - 2241: uint16(319), - 2242: uint16(319), - 2243: uint16(319), - 2244: uint16(319), - 2245: uint16(319), - 2246: uint16(319), - 2247: uint16(319), - 2248: uint16(319), - 2249: uint16(319), - 2250: uint16(319), - 2251: uint16(319), - 2252: uint16(319), - 2253: uint16(319), - 2254: uint16(319), - 2255: uint16(319), - 2256: uint16(319), - 2257: uint16(319), - 2258: uint16(319), - 2259: uint16(319), - 2260: uint16(319), - 2261: uint16(319), - 2262: uint16(319), - 2263: uint16(319), - 2264: uint16(319), - 2265: uint16(319), - 2266: uint16(319), - 2267: uint16(319), - 2268: uint16(319), - 2269: uint16(319), - 2270: uint16(319), - 2271: uint16(319), - 2272: uint16(319), - 2273: uint16(319), - 2274: uint16(319), - 2275: uint16(319), - 2276: uint16(319), - 2277: uint16(319), - 2278: uint16(319), - 2279: uint16(319), - 2280: uint16(319), - 2281: uint16(319), - 2282: uint16(319), - 2283: uint16(319), - 2284: uint16(319), -} -var _yy_shift_ofst = [579]uint16{ - 0: uint16(1648), - 1: uint16(1477), - 2: uint16(1272), + 2084: uint16(143), + 2085: uint16(25), + 2086: uint16(34), + 2087: uint16(75), + 2088: uint16(34), + 2089: uint16(34), + 2090: uint16(75), + 2091: uint16(88), + 2092: uint16(34), + 2093: uint16(86), + 2094: uint16(23), + 2095: uint16(22), + 2096: uint16(34), + 2097: uint16(25), + 2098: uint16(24), + 2099: uint16(34), + 2100: uint16(25), + 2101: uint16(93), + 2102: uint16(23), + 2103: uint16(44), + 2104: uint16(142), + 2105: uint16(23), + 2106: uint16(142), + 2107: uint16(23), + 2108: uint16(23), + 2109: uint16(22), + 2110: uint16(11), + 2111: uint16(25), + 2112: uint16(23), + 2113: uint16(25), + 2114: uint16(23), + 2115: uint16(22), + 2116: uint16(22), + 2117: uint16(22), + 2118: uint16(1), + 2119: uint16(23), + 2120: uint16(23), + 2121: uint16(23), + 2122: uint16(22), + 2123: uint16(22), + 2124: uint16(15), + 2125: uint16(141), + 2126: uint16(141), + 2127: uint16(25), + 2128: uint16(25), + 2129: uint16(1), + 2130: uint16(322), + 2131: uint16(322), + 2132: uint16(322), + 2133: uint16(135), + 2134: uint16(322), + 2135: uint16(322), + 2136: uint16(322), + 2137: uint16(322), + 2138: uint16(322), + 2139: uint16(322), + 2140: uint16(322), + 2141: uint16(141), + 2142: uint16(322), + 2143: uint16(322), + 2144: uint16(322), + 2145: uint16(322), + 2146: uint16(322), + 2147: uint16(322), + 2148: uint16(322), + 2149: uint16(322), + 2150: uint16(322), + 2151: uint16(322), + 2152: uint16(322), + 2153: uint16(322), + 2154: uint16(322), + 2155: uint16(322), + 2156: uint16(322), + 2157: uint16(322), + 2158: uint16(322), + 2159: uint16(322), + 2160: uint16(322), + 2161: uint16(322), + 2162: uint16(322), + 2163: uint16(322), + 2164: uint16(322), + 2165: uint16(322), + 2166: uint16(322), + 2167: uint16(322), + 2168: uint16(322), + 2169: uint16(322), + 2170: uint16(322), + 2171: uint16(322), + 2172: uint16(322), + 2173: uint16(322), + 2174: uint16(322), + 2175: uint16(322), + 2176: uint16(322), + 2177: uint16(322), + 2178: uint16(322), + 2179: uint16(322), + 2180: uint16(322), + 2181: uint16(322), + 2182: uint16(322), + 2183: uint16(322), + 2184: uint16(322), + 2185: uint16(322), + 2186: uint16(322), + 2187: uint16(322), + 2188: uint16(322), + 2189: uint16(322), + 2190: uint16(322), + 2191: uint16(322), + 2192: uint16(322), + 2193: uint16(322), + 2194: uint16(322), + 2195: uint16(322), + 2196: uint16(322), + 2197: uint16(322), + 2198: uint16(322), + 2199: uint16(322), + 2200: uint16(322), + 2201: uint16(322), + 2202: uint16(322), + 2203: uint16(322), + 2204: uint16(322), + 2205: uint16(322), + 2206: uint16(322), + 2207: uint16(322), + 2208: uint16(322), + 2209: uint16(322), + 2210: uint16(322), + 2211: uint16(322), + 2212: uint16(322), + 2213: uint16(322), + 2214: uint16(322), + 2215: uint16(322), + 2216: uint16(322), + 2217: uint16(322), + 2218: uint16(322), + 2219: uint16(322), + 2220: uint16(322), + 2221: uint16(322), + 2222: uint16(322), + 2223: uint16(322), + 2224: uint16(322), + 2225: uint16(322), + 2226: uint16(322), + 2227: uint16(322), + 2228: uint16(322), + 2229: uint16(322), + 2230: uint16(322), + 2231: uint16(322), + 2232: uint16(322), + 2233: uint16(322), + 2234: uint16(322), + 2235: uint16(322), + 2236: uint16(322), + 2237: uint16(322), + 2238: uint16(322), + 2239: uint16(322), + 2240: uint16(322), + 2241: uint16(322), + 2242: uint16(322), + 2243: uint16(322), + 2244: uint16(322), + 2245: uint16(322), + 2246: uint16(322), + 2247: uint16(322), + 2248: uint16(322), + 2249: uint16(322), + 2250: uint16(322), + 2251: uint16(322), + 2252: uint16(322), + 2253: uint16(322), + 2254: uint16(322), + 2255: uint16(322), + 2256: uint16(322), + 2257: uint16(322), + 2258: uint16(322), + 2259: uint16(322), + 2260: uint16(322), + 2261: uint16(322), + 2262: uint16(322), + 2263: uint16(322), + 2264: uint16(322), + 2265: uint16(322), + 2266: uint16(322), + 2267: uint16(322), + 2268: uint16(322), + 2269: uint16(322), + 2270: uint16(322), + 2271: uint16(322), + 2272: uint16(322), + 2273: uint16(322), + 2274: uint16(322), + 2275: uint16(322), + 2276: uint16(322), + 2277: uint16(322), + 2278: uint16(322), + 2279: uint16(322), + 2280: uint16(322), + 2281: uint16(322), + 2282: uint16(322), + 2283: uint16(322), + 2284: uint16(322), + 2285: uint16(322), + 2286: uint16(322), + 2287: uint16(322), + 2288: uint16(322), + 2289: uint16(322), + 2290: uint16(322), + 2291: uint16(322), + 2292: uint16(322), + 2293: uint16(322), + 2294: uint16(322), + 2295: uint16(322), + 2296: uint16(322), + 2297: uint16(322), + 2298: uint16(322), + 2299: uint16(322), + 2300: uint16(322), + 2301: uint16(322), + 2302: uint16(322), + 2303: uint16(322), + 2304: uint16(322), + 2305: uint16(322), + 2306: uint16(322), + 2307: uint16(322), + 2308: uint16(322), + 2309: uint16(322), + 2310: uint16(322), + 2311: uint16(322), + 2312: uint16(322), + 2313: uint16(322), + 2314: uint16(322), + 2315: uint16(322), + 2316: uint16(322), + 2317: uint16(322), + 2318: uint16(322), + 2319: uint16(322), + 2320: uint16(322), + 2321: uint16(322), + 2322: uint16(322), + 2323: uint16(322), + 2324: uint16(322), + 2325: uint16(322), + 2326: uint16(322), + 2327: uint16(322), +} +var _yy_shift_ofst = [583]uint16{ + 0: uint16(1792), + 1: uint16(1588), + 2: uint16(1494), 3: uint16(322), 4: uint16(322), - 5: uint16(1), - 6: uint16(1319), - 7: uint16(1478), - 8: uint16(1491), - 9: uint16(1837), - 10: uint16(1837), - 11: uint16(1837), - 12: uint16(471), - 15: uint16(214), - 16: uint16(1093), - 17: uint16(1837), - 18: uint16(1837), - 19: uint16(1837), - 20: uint16(1837), - 21: uint16(1837), - 22: uint16(1837), - 23: uint16(1837), - 24: uint16(1837), - 25: uint16(1837), - 26: uint16(1837), - 27: uint16(1837), - 28: uint16(1837), - 29: uint16(1837), - 30: uint16(1837), - 31: uint16(271), - 32: uint16(271), - 33: uint16(1219), - 34: uint16(1219), - 35: uint16(216), - 36: uint16(88), - 37: uint16(1), - 38: uint16(1), - 39: uint16(1), - 40: uint16(1), - 41: uint16(1), - 42: uint16(40), - 43: uint16(111), - 44: uint16(258), - 45: uint16(361), - 46: uint16(469), - 47: uint16(512), - 48: uint16(583), - 49: uint16(622), - 50: uint16(693), - 51: uint16(732), - 52: uint16(803), - 53: uint16(842), - 54: uint16(913), - 55: uint16(1073), - 56: uint16(1093), - 57: uint16(1093), - 58: uint16(1093), - 59: uint16(1093), - 60: uint16(1093), - 61: uint16(1093), - 62: uint16(1093), - 63: uint16(1093), - 64: uint16(1093), + 5: uint16(399), + 6: uint16(306), + 7: uint16(1319), + 8: uint16(1339), + 9: uint16(1430), + 10: uint16(1828), + 11: uint16(1828), + 12: uint16(1828), + 13: uint16(580), + 14: uint16(399), + 15: uint16(399), + 16: uint16(399), + 17: uint16(399), + 18: uint16(399), + 21: uint16(214), + 22: uint16(1093), + 23: uint16(1828), + 24: uint16(1828), + 25: uint16(1828), + 26: uint16(1828), + 27: uint16(1828), + 28: uint16(1828), + 29: uint16(1828), + 30: uint16(1828), + 31: uint16(1828), + 32: uint16(1828), + 33: uint16(1828), + 34: uint16(1828), + 35: uint16(1828), + 36: uint16(1828), + 37: uint16(1828), + 38: uint16(1130), + 39: uint16(1130), + 40: uint16(365), + 41: uint16(365), + 42: uint16(55), + 43: uint16(278), + 44: uint16(436), + 45: uint16(713), + 46: uint16(713), + 47: uint16(201), + 48: uint16(201), + 49: uint16(201), + 50: uint16(201), + 51: uint16(40), + 52: uint16(111), + 53: uint16(258), + 54: uint16(361), + 55: uint16(469), + 56: uint16(512), + 57: uint16(583), + 58: uint16(622), + 59: uint16(693), + 60: uint16(732), + 61: uint16(803), + 62: uint16(842), + 63: uint16(913), + 64: uint16(1073), 65: uint16(1093), 66: uint16(1093), 67: uint16(1093), @@ -151234,1505 +152728,1514 @@ var _yy_shift_ofst = [579]uint16{ 71: uint16(1093), 72: uint16(1093), 73: uint16(1093), - 74: uint16(1113), + 74: uint16(1093), 75: uint16(1093), - 76: uint16(1216), - 77: uint16(957), - 78: uint16(957), - 79: uint16(1635), - 80: uint16(1662), - 81: uint16(1777), - 82: uint16(1837), - 83: uint16(1837), - 84: uint16(1837), - 85: uint16(1837), - 86: uint16(1837), - 87: uint16(1837), - 88: uint16(1837), - 89: uint16(1837), - 90: uint16(1837), - 91: uint16(1837), - 92: uint16(1837), - 93: uint16(1837), - 94: uint16(1837), - 95: uint16(1837), - 96: uint16(1837), - 97: uint16(1837), - 98: uint16(1837), - 99: uint16(1837), - 100: uint16(1837), - 101: uint16(1837), - 102: uint16(1837), - 103: uint16(1837), - 104: uint16(1837), - 105: uint16(1837), - 106: uint16(1837), - 107: uint16(1837), - 108: uint16(1837), - 109: uint16(1837), - 110: uint16(1837), - 111: uint16(1837), - 112: uint16(1837), - 113: uint16(1837), - 114: uint16(1837), - 115: uint16(1837), - 116: uint16(1837), - 117: uint16(1837), - 118: uint16(1837), - 119: uint16(1837), - 120: uint16(1837), - 121: uint16(1837), - 122: uint16(1837), - 123: uint16(1837), - 124: uint16(1837), - 125: uint16(1837), - 126: uint16(1837), - 127: uint16(1837), - 128: uint16(1837), - 129: uint16(1837), - 130: uint16(1837), - 131: uint16(137), - 132: uint16(181), - 133: uint16(181), - 134: uint16(181), - 135: uint16(181), - 136: uint16(181), - 137: uint16(181), - 138: uint16(181), - 139: uint16(94), - 140: uint16(430), - 141: uint16(66), - 142: uint16(65), - 143: uint16(112), - 144: uint16(366), - 145: uint16(533), - 146: uint16(533), - 147: uint16(740), - 148: uint16(1257), - 149: uint16(533), - 150: uint16(533), - 151: uint16(79), - 152: uint16(79), - 153: uint16(533), - 154: uint16(412), - 155: uint16(412), - 156: uint16(412), - 157: uint16(77), - 158: uint16(412), - 159: uint16(123), - 160: uint16(113), - 161: uint16(113), - 162: uint16(113), - 163: uint16(22), - 164: uint16(22), - 165: uint16(2100), - 166: uint16(2100), - 167: uint16(328), - 168: uint16(328), - 169: uint16(328), - 170: uint16(239), - 171: uint16(468), - 172: uint16(468), - 173: uint16(468), - 174: uint16(468), - 175: uint16(1015), - 176: uint16(1015), - 177: uint16(409), - 178: uint16(366), - 179: uint16(1187), - 180: uint16(1232), - 181: uint16(533), - 182: uint16(533), - 183: uint16(533), - 184: uint16(533), - 185: uint16(533), - 186: uint16(533), - 187: uint16(533), - 188: uint16(533), - 189: uint16(533), - 190: uint16(533), - 191: uint16(533), - 192: uint16(533), - 193: uint16(533), - 194: uint16(533), - 195: uint16(533), - 196: uint16(533), - 197: uint16(533), - 198: uint16(533), - 199: uint16(533), - 200: uint16(533), - 201: uint16(969), - 202: uint16(621), - 203: uint16(621), - 204: uint16(533), - 205: uint16(642), - 206: uint16(788), - 207: uint16(788), - 208: uint16(1133), - 209: uint16(1133), - 210: uint16(822), - 211: uint16(822), - 212: uint16(67), - 213: uint16(1193), - 214: uint16(2100), - 215: uint16(2100), - 216: uint16(2100), - 217: uint16(2100), - 218: uint16(2100), - 219: uint16(2100), - 220: uint16(2100), - 221: uint16(1307), - 222: uint16(954), - 223: uint16(954), - 224: uint16(585), - 225: uint16(472), - 226: uint16(640), - 227: uint16(387), - 228: uint16(695), - 229: uint16(538), - 230: uint16(541), - 231: uint16(700), - 232: uint16(533), - 233: uint16(533), - 234: uint16(533), - 235: uint16(533), - 236: uint16(533), - 237: uint16(533), - 238: uint16(533), - 239: uint16(533), - 240: uint16(533), - 241: uint16(533), - 242: uint16(222), - 243: uint16(533), - 244: uint16(533), - 245: uint16(533), - 246: uint16(533), - 247: uint16(533), - 248: uint16(533), - 249: uint16(533), - 250: uint16(533), - 251: uint16(533), - 252: uint16(533), - 253: uint16(533), - 254: uint16(533), - 255: uint16(1213), - 256: uint16(1213), - 257: uint16(1213), - 258: uint16(533), - 259: uint16(533), - 260: uint16(533), - 261: uint16(565), - 262: uint16(533), - 263: uint16(533), - 264: uint16(533), - 265: uint16(916), - 266: uint16(1147), - 267: uint16(533), - 268: uint16(533), - 269: uint16(1288), - 270: uint16(533), - 271: uint16(533), - 272: uint16(533), - 273: uint16(533), - 274: uint16(533), - 275: uint16(533), - 276: uint16(533), - 277: uint16(533), - 278: uint16(639), - 279: uint16(1280), - 280: uint16(209), - 281: uint16(1129), - 282: uint16(1129), - 283: uint16(1129), - 284: uint16(1129), - 285: uint16(580), - 286: uint16(209), - 287: uint16(209), - 288: uint16(1209), - 289: uint16(768), - 290: uint16(917), - 291: uint16(649), - 292: uint16(1315), - 293: uint16(1334), - 294: uint16(405), - 295: uint16(1334), - 296: uint16(1383), - 297: uint16(249), - 298: uint16(1315), - 299: uint16(1315), - 300: uint16(249), - 301: uint16(1315), - 302: uint16(405), - 303: uint16(1383), - 304: uint16(1441), - 305: uint16(464), - 306: uint16(1245), - 307: uint16(1417), - 308: uint16(1417), - 309: uint16(1417), - 310: uint16(1323), - 311: uint16(1323), - 312: uint16(1323), - 313: uint16(1323), - 314: uint16(184), - 315: uint16(184), - 316: uint16(1335), - 317: uint16(1476), - 318: uint16(856), - 319: uint16(1482), - 320: uint16(1744), - 321: uint16(1744), - 322: uint16(1665), - 323: uint16(1665), - 324: uint16(1773), - 325: uint16(1773), - 326: uint16(1665), - 327: uint16(1669), - 328: uint16(1671), - 329: uint16(1802), - 330: uint16(1782), - 331: uint16(1809), - 332: uint16(1809), - 333: uint16(1809), - 334: uint16(1809), - 335: uint16(1665), - 336: uint16(1817), - 337: uint16(1690), - 338: uint16(1671), - 339: uint16(1671), - 340: uint16(1690), - 341: uint16(1802), - 342: uint16(1782), - 343: uint16(1690), - 344: uint16(1782), - 345: uint16(1690), - 346: uint16(1665), - 347: uint16(1817), - 348: uint16(1693), - 349: uint16(1791), - 350: uint16(1665), - 351: uint16(1817), - 352: uint16(1832), - 353: uint16(1665), - 354: uint16(1817), - 355: uint16(1665), - 356: uint16(1817), - 357: uint16(1832), - 358: uint16(1752), - 359: uint16(1752), - 360: uint16(1752), - 361: uint16(1805), - 362: uint16(1850), - 363: uint16(1850), - 364: uint16(1832), - 365: uint16(1752), - 366: uint16(1749), - 367: uint16(1752), - 368: uint16(1805), - 369: uint16(1752), - 370: uint16(1752), - 371: uint16(1713), - 372: uint16(1858), - 373: uint16(1775), - 374: uint16(1775), - 375: uint16(1832), - 376: uint16(1665), - 377: uint16(1799), - 378: uint16(1799), - 379: uint16(1823), - 380: uint16(1823), - 381: uint16(1761), - 382: uint16(1765), - 383: uint16(1890), - 384: uint16(1665), - 385: uint16(1757), - 386: uint16(1761), - 387: uint16(1771), - 388: uint16(1774), - 389: uint16(1690), - 390: uint16(1894), - 391: uint16(1913), - 392: uint16(1913), - 393: uint16(1929), - 394: uint16(1929), - 395: uint16(1929), - 396: uint16(2100), - 397: uint16(2100), - 398: uint16(2100), - 399: uint16(2100), - 400: uint16(2100), - 401: uint16(2100), - 402: uint16(2100), - 403: uint16(2100), - 404: uint16(2100), - 405: uint16(2100), - 406: uint16(2100), - 407: uint16(2100), - 408: uint16(2100), - 409: uint16(2100), - 410: uint16(2100), - 411: uint16(207), - 412: uint16(1220), - 413: uint16(331), - 414: uint16(620), - 415: uint16(967), - 416: uint16(806), - 417: uint16(1074), - 418: uint16(1499), - 419: uint16(1432), - 420: uint16(1463), - 421: uint16(1479), - 422: uint16(1419), - 423: uint16(1422), - 424: uint16(1557), - 425: uint16(1512), - 426: uint16(1598), - 427: uint16(1599), - 428: uint16(1644), - 429: uint16(1645), - 430: uint16(1654), - 431: uint16(1660), - 432: uint16(1555), - 433: uint16(1505), - 434: uint16(1684), - 435: uint16(1462), - 436: uint16(1670), - 437: uint16(1563), - 438: uint16(1619), - 439: uint16(1593), - 440: uint16(1676), - 441: uint16(1679), - 442: uint16(1613), - 443: uint16(1680), - 444: uint16(1554), - 445: uint16(1558), - 446: uint16(1689), - 447: uint16(1692), - 448: uint16(1605), - 449: uint16(1589), - 450: uint16(1955), - 451: uint16(1959), - 452: uint16(1941), - 453: uint16(1803), - 454: uint16(1950), - 455: uint16(1951), - 456: uint16(1945), - 457: uint16(1946), - 458: uint16(1831), - 459: uint16(1820), - 460: uint16(1842), - 461: uint16(1948), - 462: uint16(1948), - 463: uint16(1952), - 464: uint16(1833), - 465: uint16(1954), - 466: uint16(1834), - 467: uint16(1961), - 468: uint16(1978), - 469: uint16(1838), - 470: uint16(1851), - 471: uint16(1948), - 472: uint16(1852), - 473: uint16(1922), - 474: uint16(1947), - 475: uint16(1948), - 476: uint16(1836), - 477: uint16(1932), - 478: uint16(1935), - 479: uint16(1936), - 480: uint16(1942), - 481: uint16(1866), - 482: uint16(1881), - 483: uint16(1964), - 484: uint16(1859), - 485: uint16(1998), - 486: uint16(1996), - 487: uint16(1980), - 488: uint16(1888), - 489: uint16(1843), - 490: uint16(1937), - 491: uint16(1981), - 492: uint16(1939), - 493: uint16(1933), - 494: uint16(1968), - 495: uint16(1869), - 496: uint16(1896), - 497: uint16(1988), - 498: uint16(1993), - 499: uint16(1995), - 500: uint16(1884), - 501: uint16(1891), - 502: uint16(1997), - 503: uint16(1953), - 504: uint16(1999), - 505: uint16(2000), - 506: uint16(1994), - 507: uint16(2001), - 508: uint16(1957), - 509: uint16(1966), - 510: uint16(2002), - 511: uint16(1931), - 512: uint16(1990), - 513: uint16(2006), - 514: uint16(1962), - 515: uint16(2003), - 516: uint16(2007), - 517: uint16(2004), - 518: uint16(1882), - 519: uint16(2010), - 520: uint16(2011), - 521: uint16(2012), - 522: uint16(2008), - 523: uint16(2013), - 524: uint16(2015), - 525: uint16(1944), - 526: uint16(1898), - 527: uint16(2019), - 528: uint16(2020), - 529: uint16(1928), - 530: uint16(2014), - 531: uint16(2023), - 532: uint16(1903), - 533: uint16(2022), - 534: uint16(2016), - 535: uint16(2017), - 536: uint16(2018), - 537: uint16(2021), - 538: uint16(1965), - 539: uint16(1974), - 540: uint16(1970), - 541: uint16(2024), - 542: uint16(1979), - 543: uint16(1967), - 544: uint16(2025), - 545: uint16(2034), - 546: uint16(2036), - 547: uint16(2037), - 548: uint16(2038), - 549: uint16(2039), - 550: uint16(2028), - 551: uint16(1923), - 552: uint16(1924), - 553: uint16(2044), - 554: uint16(2022), - 555: uint16(2046), - 556: uint16(2047), - 557: uint16(2048), - 558: uint16(2049), - 559: uint16(2050), - 560: uint16(2051), - 561: uint16(2054), - 562: uint16(2062), - 563: uint16(2055), - 564: uint16(2056), - 565: uint16(2057), - 566: uint16(2058), - 567: uint16(2060), - 568: uint16(2061), - 569: uint16(2059), - 570: uint16(1956), - 571: uint16(1938), - 572: uint16(1949), - 573: uint16(1958), - 574: uint16(2063), - 575: uint16(2064), - 576: uint16(2070), - 577: uint16(2085), - 578: uint16(2088), -} -var _yy_reduce_ofst = [411]int16{ - 0: int16(-int32(125)), - 1: int16(733), - 2: int16(789), - 3: int16(241), - 4: int16(293), - 5: int16(-int32(123)), - 6: int16(-int32(193)), - 7: int16(-int32(191)), - 8: int16(-int32(183)), - 9: int16(-int32(187)), - 10: int16(166), - 11: int16(238), - 12: int16(133), - 13: int16(-int32(207)), - 14: int16(-int32(199)), - 15: int16(-int32(267)), - 16: int16(-int32(176)), - 17: int16(-int32(6)), - 18: int16(204), - 19: int16(489), - 20: int16(576), - 21: int16(598), - 22: int16(-int32(175)), - 23: int16(686), - 24: int16(860), - 25: int16(615), - 26: int16(725), - 27: int16(1014), - 28: int16(778), - 29: int16(781), - 30: int16(857), - 31: int16(616), - 32: int16(887), - 33: int16(87), - 34: int16(240), - 35: int16(-int32(192)), - 36: int16(408), - 37: int16(626), - 38: int16(796), - 39: int16(843), - 40: int16(854), - 41: int16(1004), - 42: int16(-int32(271)), - 43: int16(-int32(271)), - 44: int16(-int32(271)), - 45: int16(-int32(271)), - 46: int16(-int32(271)), - 47: int16(-int32(271)), - 48: int16(-int32(271)), - 49: int16(-int32(271)), - 50: int16(-int32(271)), - 51: int16(-int32(271)), - 52: int16(-int32(271)), - 53: int16(-int32(271)), - 54: int16(-int32(271)), - 55: int16(-int32(271)), - 56: int16(-int32(271)), - 57: int16(-int32(271)), - 58: int16(-int32(271)), - 59: int16(-int32(271)), - 60: int16(-int32(271)), - 61: int16(-int32(271)), - 62: int16(-int32(271)), - 63: int16(-int32(271)), - 64: int16(-int32(271)), - 65: int16(-int32(271)), - 66: int16(-int32(271)), - 67: int16(-int32(271)), - 68: int16(-int32(271)), - 69: int16(-int32(271)), - 70: int16(-int32(271)), - 71: int16(-int32(271)), - 72: int16(-int32(271)), - 73: int16(-int32(271)), - 74: int16(-int32(271)), - 75: int16(-int32(271)), - 76: int16(-int32(271)), - 77: int16(-int32(271)), - 78: int16(-int32(271)), - 79: int16(80), - 80: int16(83), - 81: int16(313), - 82: int16(886), - 83: int16(888), - 84: int16(918), - 85: int16(938), - 86: int16(1021), - 87: int16(1034), - 88: int16(1036), - 89: int16(1141), - 90: int16(1159), - 91: int16(1163), - 92: int16(1166), - 93: int16(1168), - 94: int16(1170), - 95: int16(1176), - 96: int16(1178), - 97: int16(1180), - 98: int16(1184), - 99: int16(1196), - 100: int16(1198), - 101: int16(1205), - 102: int16(1215), - 103: int16(1225), - 104: int16(1227), - 105: int16(1236), - 106: int16(1252), - 107: int16(1254), - 108: int16(1264), - 109: int16(1303), - 110: int16(1309), - 111: int16(1312), - 112: int16(1322), - 113: int16(1325), - 114: int16(1328), - 115: int16(1337), - 116: int16(1340), - 117: int16(1343), - 118: int16(1353), - 119: int16(1371), - 120: int16(1373), - 121: int16(1384), - 122: int16(1386), - 123: int16(1411), - 124: int16(1413), - 125: int16(1420), - 126: int16(1424), - 127: int16(1426), - 128: int16(1458), - 129: int16(1470), - 130: int16(1473), - 131: int16(-int32(271)), - 132: int16(-int32(271)), - 133: int16(-int32(271)), - 134: int16(-int32(271)), - 135: int16(-int32(271)), - 136: int16(-int32(271)), - 137: int16(-int32(271)), - 138: int16(-int32(271)), - 139: int16(-int32(271)), - 140: int16(-int32(271)), - 141: int16(-int32(271)), - 142: int16(138), - 143: int16(459), - 144: int16(396), - 145: int16(-int32(158)), - 146: int16(470), - 147: int16(302), - 148: int16(-int32(212)), - 149: int16(521), - 150: int16(201), - 151: int16(-int32(195)), - 152: int16(-int32(92)), - 153: int16(559), - 154: int16(630), - 155: int16(632), - 156: int16(630), - 157: int16(-int32(271)), - 158: int16(632), - 159: int16(901), - 160: int16(63), - 161: int16(407), - 162: int16(670), - 163: int16(-int32(271)), - 164: int16(-int32(271)), - 165: int16(-int32(271)), - 166: int16(-int32(271)), - 167: int16(161), - 168: int16(161), - 169: int16(161), - 170: int16(251), - 171: int16(335), - 172: int16(847), - 173: int16(979), - 174: int16(1097), - 175: int16(537), - 176: int16(588), - 177: int16(618), - 178: int16(628), - 179: int16(688), - 180: int16(688), - 181: int16(-int32(166)), - 182: int16(-int32(161)), - 183: int16(674), - 184: int16(787), - 185: int16(794), - 186: int16(799), - 187: int16(852), - 188: int16(996), - 189: int16(-int32(122)), - 190: int16(837), - 191: int16(-int32(120)), - 192: int16(1018), - 193: int16(1035), - 194: int16(415), - 195: int16(1047), - 196: int16(1001), - 197: int16(958), - 198: int16(1082), - 199: int16(400), - 200: int16(1099), - 201: int16(779), - 202: int16(1137), - 203: int16(1142), - 204: int16(263), - 205: int16(1083), - 206: int16(1145), - 207: int16(1150), - 208: int16(1041), - 209: int16(1139), - 210: int16(965), - 211: int16(1050), - 212: int16(362), - 213: int16(849), - 214: int16(752), - 215: int16(629), - 216: int16(675), - 217: int16(1162), - 218: int16(1173), - 219: int16(1090), - 220: int16(1195), - 221: int16(-int32(194)), - 222: int16(56), - 223: int16(185), - 224: int16(-int32(135)), - 225: int16(232), - 226: int16(522), - 227: int16(560), - 228: int16(571), - 229: int16(601), - 230: int16(617), - 231: int16(669), - 232: int16(683), - 233: int16(711), - 234: int16(850), - 235: int16(893), - 236: int16(1000), - 237: int16(1040), - 238: int16(1049), - 239: int16(1081), - 240: int16(1087), - 241: int16(1101), - 242: int16(392), - 243: int16(1114), - 244: int16(1123), - 245: int16(1155), - 246: int16(1161), - 247: int16(1175), - 248: int16(1271), - 249: int16(1293), - 250: int16(1299), - 251: int16(1330), - 252: int16(1339), - 253: int16(1342), - 254: int16(1347), - 255: int16(593), - 256: int16(1282), - 257: int16(1286), - 258: int16(1350), - 259: int16(1359), - 260: int16(1368), - 261: int16(1314), - 262: int16(1480), - 263: int16(1483), - 264: int16(1507), - 265: int16(1085), - 266: int16(1338), - 267: int16(1526), - 268: int16(1527), - 269: int16(1487), - 270: int16(1531), - 271: int16(560), - 272: int16(1532), - 273: int16(1534), - 274: int16(1535), - 275: int16(1538), - 276: int16(1539), - 277: int16(1541), - 278: int16(1448), - 279: int16(1450), - 280: int16(1496), - 281: int16(1484), - 282: int16(1485), - 283: int16(1489), - 284: int16(1490), - 285: int16(1314), - 286: int16(1496), - 287: int16(1496), - 288: int16(1504), - 289: int16(1536), - 290: int16(1564), - 291: int16(1451), - 292: int16(1486), - 293: int16(1492), - 294: int16(1509), - 295: int16(1493), - 296: int16(1465), - 297: int16(1515), - 298: int16(1494), - 299: int16(1495), - 300: int16(1517), - 301: int16(1500), - 302: int16(1519), - 303: int16(1474), - 304: int16(1550), - 305: int16(1543), - 306: int16(1548), - 307: int16(1556), - 308: int16(1565), - 309: int16(1566), - 310: int16(1518), - 311: int16(1523), - 312: int16(1542), - 313: int16(1544), - 314: int16(1525), - 315: int16(1545), - 316: int16(1513), - 317: int16(1553), - 318: int16(1552), - 319: int16(1604), - 320: int16(1508), - 321: int16(1510), - 322: int16(1608), - 323: int16(1609), - 324: int16(1520), - 325: int16(1528), - 326: int16(1612), - 327: int16(1540), - 328: int16(1559), - 329: int16(1560), - 330: int16(1592), - 331: int16(1591), - 332: int16(1595), - 333: int16(1596), - 334: int16(1597), - 335: int16(1629), - 336: int16(1638), - 337: int16(1594), - 338: int16(1569), - 339: int16(1570), - 340: int16(1600), - 341: int16(1568), - 342: int16(1610), - 343: int16(1601), - 344: int16(1611), - 345: int16(1603), - 346: int16(1643), - 347: int16(1651), - 348: int16(1562), - 349: int16(1571), - 350: int16(1655), - 351: int16(1659), - 352: int16(1640), - 353: int16(1663), - 354: int16(1666), - 355: int16(1664), - 356: int16(1667), - 357: int16(1641), - 358: int16(1650), - 359: int16(1652), - 360: int16(1653), - 361: int16(1647), - 362: int16(1656), - 363: int16(1657), - 364: int16(1658), - 365: int16(1668), - 366: int16(1672), - 367: int16(1681), - 368: int16(1649), - 369: int16(1682), - 370: int16(1683), - 371: int16(1573), - 372: int16(1582), - 373: int16(1607), - 374: int16(1615), - 375: int16(1685), - 376: int16(1702), - 377: int16(1586), - 378: int16(1587), - 379: int16(1642), - 380: int16(1646), - 381: int16(1673), - 382: int16(1675), - 383: int16(1636), - 384: int16(1714), - 385: int16(1637), - 386: int16(1677), - 387: int16(1674), - 388: int16(1678), - 389: int16(1694), - 390: int16(1719), - 391: int16(1734), - 392: int16(1735), - 393: int16(1746), - 394: int16(1747), - 395: int16(1750), - 396: int16(1633), - 397: int16(1661), + 76: uint16(1093), + 77: uint16(1093), + 78: uint16(1093), + 79: uint16(1093), + 80: uint16(1093), + 81: uint16(1093), + 82: uint16(1093), + 83: uint16(1113), + 84: uint16(1093), + 85: uint16(1216), + 86: uint16(957), + 87: uint16(957), + 88: uint16(1523), + 89: uint16(1602), + 90: uint16(1674), + 91: uint16(1828), + 92: uint16(1828), + 93: uint16(1828), + 94: uint16(1828), + 95: uint16(1828), + 96: uint16(1828), + 97: uint16(1828), + 98: uint16(1828), + 99: uint16(1828), + 100: uint16(1828), + 101: uint16(1828), + 102: uint16(1828), + 103: uint16(1828), + 104: uint16(1828), + 105: uint16(1828), + 106: uint16(1828), + 107: uint16(1828), + 108: uint16(1828), + 109: uint16(1828), + 110: uint16(1828), + 111: uint16(1828), + 112: uint16(1828), + 113: uint16(1828), + 114: uint16(1828), + 115: uint16(1828), + 116: uint16(1828), + 117: uint16(1828), + 118: uint16(1828), + 119: uint16(1828), + 120: uint16(1828), + 121: uint16(1828), + 122: uint16(1828), + 123: uint16(1828), + 124: uint16(1828), + 125: uint16(1828), + 126: uint16(1828), + 127: uint16(1828), + 128: uint16(1828), + 129: uint16(1828), + 130: uint16(1828), + 131: uint16(1828), + 132: uint16(1828), + 133: uint16(1828), + 134: uint16(1828), + 135: uint16(1828), + 136: uint16(1828), + 137: uint16(1828), + 138: uint16(1828), + 139: uint16(1828), + 140: uint16(137), + 141: uint16(181), + 142: uint16(181), + 143: uint16(181), + 144: uint16(181), + 145: uint16(181), + 146: uint16(181), + 147: uint16(181), + 148: uint16(96), + 149: uint16(222), + 150: uint16(143), + 151: uint16(477), + 152: uint16(713), + 153: uint16(1133), + 154: uint16(1268), + 155: uint16(713), + 156: uint16(713), + 157: uint16(79), + 158: uint16(79), + 159: uint16(713), + 160: uint16(770), + 161: uint16(83), + 162: uint16(65), + 163: uint16(65), + 164: uint16(65), + 165: uint16(288), + 166: uint16(162), + 167: uint16(162), + 168: uint16(2142), + 169: uint16(2142), + 170: uint16(696), + 171: uint16(696), + 172: uint16(696), + 173: uint16(238), + 174: uint16(474), + 175: uint16(474), + 176: uint16(474), + 177: uint16(474), + 178: uint16(1217), + 179: uint16(1217), + 180: uint16(678), + 181: uint16(477), + 182: uint16(324), + 183: uint16(398), + 184: uint16(713), + 185: uint16(713), + 186: uint16(713), + 187: uint16(713), + 188: uint16(713), + 189: uint16(713), + 190: uint16(713), + 191: uint16(713), + 192: uint16(713), + 193: uint16(713), + 194: uint16(713), + 195: uint16(713), + 196: uint16(713), + 197: uint16(713), + 198: uint16(713), + 199: uint16(713), + 200: uint16(713), + 201: uint16(713), + 202: uint16(713), + 203: uint16(1220), + 204: uint16(366), + 205: uint16(366), + 206: uint16(713), + 207: uint16(917), + 208: uint16(283), + 209: uint16(283), + 210: uint16(434), + 211: uint16(434), + 212: uint16(605), + 213: uint16(605), + 214: uint16(1298), + 215: uint16(2142), + 216: uint16(2142), + 217: uint16(2142), + 218: uint16(2142), + 219: uint16(2142), + 220: uint16(2142), + 221: uint16(2142), + 222: uint16(1179), + 223: uint16(1157), + 224: uint16(1157), + 225: uint16(487), + 226: uint16(527), + 227: uint16(585), + 228: uint16(645), + 229: uint16(749), + 230: uint16(914), + 231: uint16(968), + 232: uint16(752), + 233: uint16(713), + 234: uint16(713), + 235: uint16(713), + 236: uint16(713), + 237: uint16(713), + 238: uint16(713), + 239: uint16(713), + 240: uint16(713), + 241: uint16(713), + 242: uint16(713), + 243: uint16(303), + 244: uint16(713), + 245: uint16(713), + 246: uint16(713), + 247: uint16(713), + 248: uint16(713), + 249: uint16(713), + 250: uint16(713), + 251: uint16(713), + 252: uint16(713), + 253: uint16(713), + 254: uint16(713), + 255: uint16(713), + 256: uint16(797), + 257: uint16(797), + 258: uint16(797), + 259: uint16(713), + 260: uint16(713), + 261: uint16(713), + 262: uint16(959), + 263: uint16(713), + 264: uint16(713), + 265: uint16(713), + 266: uint16(1169), + 267: uint16(1271), + 268: uint16(713), + 269: uint16(713), + 270: uint16(1330), + 271: uint16(713), + 272: uint16(713), + 273: uint16(713), + 274: uint16(713), + 275: uint16(713), + 276: uint16(713), + 277: uint16(713), + 278: uint16(713), + 279: uint16(629), + 280: uint16(7), + 281: uint16(91), + 282: uint16(876), + 283: uint16(876), + 284: uint16(876), + 285: uint16(876), + 286: uint16(953), + 287: uint16(91), + 288: uint16(91), + 289: uint16(1246), + 290: uint16(1065), + 291: uint16(1106), + 292: uint16(1374), + 293: uint16(1329), + 294: uint16(1348), + 295: uint16(468), + 296: uint16(1348), + 297: uint16(1394), + 298: uint16(785), + 299: uint16(1329), + 300: uint16(1329), + 301: uint16(785), + 302: uint16(1329), + 303: uint16(468), + 304: uint16(1394), + 305: uint16(859), + 306: uint16(854), + 307: uint16(1402), + 308: uint16(1449), + 309: uint16(1449), + 310: uint16(1449), + 311: uint16(1173), + 312: uint16(1173), + 313: uint16(1173), + 314: uint16(1173), + 315: uint16(1355), + 316: uint16(1355), + 317: uint16(1030), + 318: uint16(1341), + 319: uint16(405), + 320: uint16(1230), + 321: uint16(1795), + 322: uint16(1795), + 323: uint16(1711), + 324: uint16(1711), + 325: uint16(1829), + 326: uint16(1829), + 327: uint16(1711), + 328: uint16(1717), + 329: uint16(1719), + 330: uint16(1850), + 331: uint16(1833), + 332: uint16(1860), + 333: uint16(1860), + 334: uint16(1860), + 335: uint16(1860), + 336: uint16(1711), + 337: uint16(1868), + 338: uint16(1740), + 339: uint16(1719), + 340: uint16(1719), + 341: uint16(1740), + 342: uint16(1850), + 343: uint16(1833), + 344: uint16(1740), + 345: uint16(1833), + 346: uint16(1740), + 347: uint16(1711), + 348: uint16(1868), + 349: uint16(1745), + 350: uint16(1843), + 351: uint16(1711), + 352: uint16(1868), + 353: uint16(1887), + 354: uint16(1711), + 355: uint16(1868), + 356: uint16(1711), + 357: uint16(1868), + 358: uint16(1887), + 359: uint16(1801), + 360: uint16(1801), + 361: uint16(1801), + 362: uint16(1855), + 363: uint16(1900), + 364: uint16(1900), + 365: uint16(1887), + 366: uint16(1801), + 367: uint16(1797), + 368: uint16(1801), + 369: uint16(1855), + 370: uint16(1801), + 371: uint16(1801), + 372: uint16(1761), + 373: uint16(1912), + 374: uint16(1830), + 375: uint16(1830), + 376: uint16(1887), + 377: uint16(1711), + 378: uint16(1862), + 379: uint16(1862), + 380: uint16(1875), + 381: uint16(1875), + 382: uint16(1810), + 383: uint16(1815), + 384: uint16(1940), + 385: uint16(1711), + 386: uint16(1807), + 387: uint16(1810), + 388: uint16(1821), + 389: uint16(1823), + 390: uint16(1740), + 391: uint16(1945), + 392: uint16(1963), + 393: uint16(1963), + 394: uint16(1974), + 395: uint16(1974), + 396: uint16(1974), + 397: uint16(2142), + 398: uint16(2142), + 399: uint16(2142), + 400: uint16(2142), + 401: uint16(2142), + 402: uint16(2142), + 403: uint16(2142), + 404: uint16(2142), + 405: uint16(2142), + 406: uint16(2142), + 407: uint16(2142), + 408: uint16(2142), + 409: uint16(2142), + 410: uint16(2142), + 411: uint16(2142), + 412: uint16(20), + 413: uint16(1224), + 414: uint16(256), + 415: uint16(1111), + 416: uint16(1115), + 417: uint16(1114), + 418: uint16(1192), + 419: uint16(1496), + 420: uint16(1424), + 421: uint16(1505), + 422: uint16(1427), + 423: uint16(355), + 424: uint16(1383), + 425: uint16(1537), + 426: uint16(1506), + 427: uint16(1538), + 428: uint16(1553), + 429: uint16(1583), + 430: uint16(1584), + 431: uint16(1591), + 432: uint16(1625), + 433: uint16(541), + 434: uint16(1445), + 435: uint16(1562), + 436: uint16(1450), + 437: uint16(1572), + 438: uint16(1515), + 439: uint16(1428), + 440: uint16(1532), + 441: uint16(1592), + 442: uint16(1629), + 443: uint16(1520), + 444: uint16(1630), + 445: uint16(1639), + 446: uint16(1510), + 447: uint16(1544), + 448: uint16(1662), + 449: uint16(1675), + 450: uint16(1551), + 451: uint16(48), + 452: uint16(1996), + 453: uint16(2001), + 454: uint16(1983), + 455: uint16(1844), + 456: uint16(1993), + 457: uint16(1994), + 458: uint16(1986), + 459: uint16(1989), + 460: uint16(1874), + 461: uint16(1863), + 462: uint16(1885), + 463: uint16(1991), + 464: uint16(1991), + 465: uint16(1995), + 466: uint16(1876), + 467: uint16(1997), + 468: uint16(1877), + 469: uint16(2004), + 470: uint16(2021), + 471: uint16(1881), + 472: uint16(1894), + 473: uint16(1991), + 474: uint16(1895), + 475: uint16(1965), + 476: uint16(1990), + 477: uint16(1991), + 478: uint16(1878), + 479: uint16(1975), + 480: uint16(1977), + 481: uint16(1978), + 482: uint16(1979), + 483: uint16(1903), + 484: uint16(1918), + 485: uint16(2002), + 486: uint16(1896), + 487: uint16(2034), + 488: uint16(2033), + 489: uint16(2017), + 490: uint16(1925), + 491: uint16(1880), + 492: uint16(1976), + 493: uint16(2018), + 494: uint16(1980), + 495: uint16(1967), + 496: uint16(2005), + 497: uint16(1904), + 498: uint16(1932), + 499: uint16(2025), + 500: uint16(2030), + 501: uint16(2032), + 502: uint16(1921), + 503: uint16(1928), + 504: uint16(2035), + 505: uint16(1987), + 506: uint16(2036), + 507: uint16(2037), + 508: uint16(2038), + 509: uint16(2040), + 510: uint16(1988), + 511: uint16(2006), + 512: uint16(2039), + 513: uint16(1960), + 514: uint16(2041), + 515: uint16(2042), + 516: uint16(1999), + 517: uint16(2023), + 518: uint16(2044), + 519: uint16(2043), + 520: uint16(1919), + 521: uint16(2048), + 522: uint16(2049), + 523: uint16(2050), + 524: uint16(2046), + 525: uint16(2051), + 526: uint16(2053), + 527: uint16(1981), + 528: uint16(1935), + 529: uint16(2056), + 530: uint16(2057), + 531: uint16(1966), + 532: uint16(2047), + 533: uint16(2061), + 534: uint16(1941), + 535: uint16(2060), + 536: uint16(2052), + 537: uint16(2054), + 538: uint16(2055), + 539: uint16(2058), + 540: uint16(2003), + 541: uint16(2012), + 542: uint16(2007), + 543: uint16(2059), + 544: uint16(2015), + 545: uint16(2008), + 546: uint16(2062), + 547: uint16(2071), + 548: uint16(2073), + 549: uint16(2074), + 550: uint16(2072), + 551: uint16(2075), + 552: uint16(2065), + 553: uint16(1962), + 554: uint16(1964), + 555: uint16(2079), + 556: uint16(2060), + 557: uint16(2082), + 558: uint16(2084), + 559: uint16(2085), + 560: uint16(2087), + 561: uint16(2086), + 562: uint16(2089), + 563: uint16(2088), + 564: uint16(2091), + 565: uint16(2093), + 566: uint16(2099), + 567: uint16(2094), + 568: uint16(2095), + 569: uint16(2096), + 570: uint16(2097), + 571: uint16(2100), + 572: uint16(2101), + 573: uint16(2102), + 574: uint16(1998), + 575: uint16(1984), + 576: uint16(1985), + 577: uint16(2000), + 578: uint16(2103), + 579: uint16(2098), + 580: uint16(2109), + 581: uint16(2117), + 582: uint16(2128), +} +var _yy_reduce_ofst = [412]int16{ + 0: int16(-int32(71)), + 1: int16(194), + 2: int16(343), + 3: int16(835), + 4: int16(-int32(180)), + 5: int16(-int32(177)), + 6: int16(838), + 7: int16(-int32(194)), + 8: int16(-int32(188)), + 9: int16(-int32(185)), + 10: int16(-int32(183)), + 11: int16(82), + 12: int16(183), + 13: int16(-int32(65)), + 14: int16(133), + 15: int16(245), + 16: int16(346), + 17: int16(407), + 18: int16(458), + 19: int16(-int32(178)), + 20: int16(75), + 21: int16(-int32(275)), + 22: int16(-int32(4)), + 23: int16(310), + 24: int16(312), + 25: int16(489), + 26: int16(575), + 27: int16(596), + 28: int16(463), + 29: int16(686), + 30: int16(707), + 31: int16(725), + 32: int16(780), + 33: int16(1098), + 34: int16(856), + 35: int16(778), + 36: int16(1059), + 37: int16(1090), + 38: int16(708), + 39: int16(887), + 40: int16(86), + 41: int16(448), + 42: int16(980), + 43: int16(630), + 44: int16(680), + 45: int16(681), + 46: int16(684), + 47: int16(796), + 48: int16(801), + 49: int16(796), + 50: int16(801), + 51: int16(-int32(261)), + 52: int16(-int32(261)), + 53: int16(-int32(261)), + 54: int16(-int32(261)), + 55: int16(-int32(261)), + 56: int16(-int32(261)), + 57: int16(-int32(261)), + 58: int16(-int32(261)), + 59: int16(-int32(261)), + 60: int16(-int32(261)), + 61: int16(-int32(261)), + 62: int16(-int32(261)), + 63: int16(-int32(261)), + 64: int16(-int32(261)), + 65: int16(-int32(261)), + 66: int16(-int32(261)), + 67: int16(-int32(261)), + 68: int16(-int32(261)), + 69: int16(-int32(261)), + 70: int16(-int32(261)), + 71: int16(-int32(261)), + 72: int16(-int32(261)), + 73: int16(-int32(261)), + 74: int16(-int32(261)), + 75: int16(-int32(261)), + 76: int16(-int32(261)), + 77: int16(-int32(261)), + 78: int16(-int32(261)), + 79: int16(-int32(261)), + 80: int16(-int32(261)), + 81: int16(-int32(261)), + 82: int16(-int32(261)), + 83: int16(-int32(261)), + 84: int16(-int32(261)), + 85: int16(-int32(261)), + 86: int16(-int32(261)), + 87: int16(-int32(261)), + 88: int16(391), + 89: int16(886), + 90: int16(888), + 91: int16(1013), + 92: int16(1016), + 93: int16(1081), + 94: int16(1087), + 95: int16(1151), + 96: int16(1159), + 97: int16(1177), + 98: int16(1185), + 99: int16(1188), + 100: int16(1190), + 101: int16(1194), + 102: int16(1197), + 103: int16(1203), + 104: int16(1247), + 105: int16(1260), + 106: int16(1264), + 107: int16(1267), + 108: int16(1269), + 109: int16(1273), + 110: int16(1315), + 111: int16(1322), + 112: int16(1335), + 113: int16(1337), + 114: int16(1356), + 115: int16(1362), + 116: int16(1418), + 117: int16(1425), + 118: int16(1453), + 119: int16(1457), + 120: int16(1465), + 121: int16(1473), + 122: int16(1487), + 123: int16(1495), + 124: int16(1507), + 125: int16(1517), + 126: int16(1521), + 127: int16(1534), + 128: int16(1543), + 129: int16(1546), + 130: int16(1549), + 131: int16(1552), + 132: int16(1554), + 133: int16(1560), + 134: int16(1581), + 135: int16(1590), + 136: int16(1593), + 137: int16(1595), + 138: int16(1621), + 139: int16(1623), + 140: int16(-int32(261)), + 141: int16(-int32(261)), + 142: int16(-int32(261)), + 143: int16(-int32(261)), + 144: int16(-int32(261)), + 145: int16(-int32(261)), + 146: int16(-int32(261)), + 147: int16(-int32(261)), + 148: int16(-int32(261)), + 149: int16(-int32(261)), + 150: int16(-int32(261)), + 151: int16(-int32(186)), + 152: int16(-int32(117)), + 153: int16(260), + 154: int16(263), + 155: int16(460), + 156: int16(631), + 157: int16(-int32(74)), + 158: int16(497), + 159: int16(-int32(181)), + 160: int16(-int32(261)), + 161: int16(939), + 162: int16(176), + 163: int16(274), + 164: int16(338), + 165: int16(676), + 166: int16(-int32(261)), + 167: int16(-int32(261)), + 168: int16(-int32(261)), + 169: int16(-int32(261)), + 170: int16(-int32(212)), + 171: int16(-int32(212)), + 172: int16(-int32(212)), + 173: int16(-int32(184)), + 174: int16(149), + 175: int16(777), + 176: int16(1061), + 177: int16(1103), + 178: int16(265), + 179: int16(419), + 180: int16(-int32(254)), + 181: int16(670), + 182: int16(677), + 183: int16(677), + 184: int16(-int32(11)), + 185: int16(-int32(129)), + 186: int16(184), + 187: int16(488), + 188: int16(736), + 189: int16(789), + 190: int16(805), + 191: int16(844), + 192: int16(403), + 193: int16(529), + 194: int16(579), + 195: int16(668), + 196: int16(783), + 197: int16(841), + 198: int16(1158), + 199: int16(1112), + 200: int16(806), + 201: int16(861), + 202: int16(1095), + 203: int16(846), + 204: int16(839), + 205: int16(1031), + 206: int16(-int32(189)), + 207: int16(1077), + 208: int16(1080), + 209: int16(1116), + 210: int16(1084), + 211: int16(1156), + 212: int16(1139), + 213: int16(1221), + 214: int16(46), + 215: int16(1099), + 216: int16(1037), + 217: int16(1118), + 218: int16(1171), + 219: int16(1214), + 220: int16(1210), + 221: int16(1258), + 222: int16(-int32(210)), + 223: int16(-int32(190)), + 224: int16(-int32(176)), + 225: int16(-int32(115)), + 226: int16(117), + 227: int16(262), + 228: int16(376), + 229: int16(490), + 230: int16(511), + 231: int16(520), + 232: int16(618), + 233: int16(639), + 234: int16(743), + 235: int16(901), + 236: int16(907), + 237: int16(958), + 238: int16(1014), + 239: int16(1055), + 240: int16(1108), + 241: int16(1193), + 242: int16(1244), + 243: int16(720), + 244: int16(1248), + 245: int16(1277), + 246: int16(1324), + 247: int16(1347), + 248: int16(1417), + 249: int16(1431), + 250: int16(1432), + 251: int16(1440), + 252: int16(1451), + 253: int16(1452), + 254: int16(1463), + 255: int16(1478), + 256: int16(1286), + 257: int16(1350), + 258: int16(1369), + 259: int16(1490), + 260: int16(1498), + 261: int16(1501), + 262: int16(773), + 263: int16(1509), + 264: int16(1513), + 265: int16(1528), + 266: int16(1292), + 267: int16(1367), + 268: int16(1535), + 269: int16(1536), + 270: int16(1477), + 271: int16(1542), + 272: int16(376), + 273: int16(1547), + 274: int16(1550), + 275: int16(1555), + 276: int16(1559), + 277: int16(1568), + 278: int16(1571), + 279: int16(1441), + 280: int16(1443), + 281: int16(1474), + 282: int16(1511), + 283: int16(1516), + 284: int16(1519), + 285: int16(1522), + 286: int16(773), + 287: int16(1474), + 288: int16(1474), + 289: int16(1503), + 290: int16(1567), + 291: int16(1594), + 292: int16(1484), + 293: int16(1527), + 294: int16(1556), + 295: int16(1570), + 296: int16(1557), + 297: int16(1524), + 298: int16(1573), + 299: int16(1545), + 300: int16(1548), + 301: int16(1576), + 302: int16(1561), + 303: int16(1587), + 304: int16(1540), + 305: int16(1575), + 306: int16(1606), + 307: int16(1611), + 308: int16(1622), + 309: int16(1624), + 310: int16(1626), + 311: int16(1582), + 312: int16(1597), + 313: int16(1598), + 314: int16(1599), + 315: int16(1601), + 316: int16(1603), + 317: int16(1563), + 318: int16(1608), + 319: int16(1605), + 320: int16(1604), + 321: int16(1564), + 322: int16(1566), + 323: int16(1655), + 324: int16(1660), + 325: int16(1578), + 326: int16(1579), + 327: int16(1665), + 328: int16(1586), + 329: int16(1607), + 330: int16(1610), + 331: int16(1642), + 332: int16(1641), + 333: int16(1645), + 334: int16(1646), + 335: int16(1647), + 336: int16(1679), + 337: int16(1688), + 338: int16(1644), + 339: int16(1618), + 340: int16(1619), + 341: int16(1648), + 342: int16(1628), + 343: int16(1659), + 344: int16(1649), + 345: int16(1663), + 346: int16(1650), + 347: int16(1700), + 348: int16(1702), + 349: int16(1612), + 350: int16(1615), + 351: int16(1706), + 352: int16(1708), + 353: int16(1689), + 354: int16(1709), + 355: int16(1712), + 356: int16(1713), + 357: int16(1715), + 358: int16(1691), + 359: int16(1698), + 360: int16(1699), + 361: int16(1701), + 362: int16(1693), + 363: int16(1704), + 364: int16(1707), + 365: int16(1705), + 366: int16(1714), + 367: int16(1703), + 368: int16(1718), + 369: int16(1710), + 370: int16(1720), + 371: int16(1721), + 372: int16(1632), + 373: int16(1634), + 374: int16(1664), + 375: int16(1666), + 376: int16(1729), + 377: int16(1751), + 378: int16(1635), + 379: int16(1636), + 380: int16(1692), + 381: int16(1694), + 382: int16(1716), + 383: int16(1722), + 384: int16(1684), + 385: int16(1763), + 386: int16(1685), + 387: int16(1723), + 388: int16(1724), + 389: int16(1727), + 390: int16(1730), + 391: int16(1768), + 392: int16(1783), + 393: int16(1784), + 394: int16(1793), + 395: int16(1794), + 396: int16(1796), + 397: int16(1683), 398: int16(1686), - 399: int16(1738), - 400: int16(1728), - 401: int16(1733), - 402: int16(1736), - 403: int16(1737), - 404: int16(1740), - 405: int16(1726), - 406: int16(1730), - 407: int16(1742), - 408: int16(1743), - 409: int16(1748), - 410: int16(1753), -} -var _yy_default = [579]uint16{ - 0: uint16(1648), - 1: uint16(1648), - 2: uint16(1648), - 3: uint16(1478), - 4: uint16(1243), - 5: uint16(1354), - 6: uint16(1243), - 7: uint16(1243), - 8: uint16(1243), - 9: uint16(1478), - 10: uint16(1478), - 11: uint16(1478), - 12: uint16(1243), - 13: uint16(1384), - 14: uint16(1384), - 15: uint16(1531), - 16: uint16(1276), - 17: uint16(1243), - 18: uint16(1243), - 19: uint16(1243), - 20: uint16(1243), - 21: uint16(1243), - 22: uint16(1243), - 23: uint16(1243), - 24: uint16(1243), - 25: uint16(1243), - 26: uint16(1243), - 27: uint16(1243), - 28: uint16(1477), - 29: uint16(1243), - 30: uint16(1243), - 31: uint16(1243), - 32: uint16(1243), - 33: uint16(1564), - 34: uint16(1564), - 35: uint16(1243), - 36: uint16(1243), - 37: uint16(1243), - 38: uint16(1243), - 39: uint16(1243), - 40: uint16(1243), - 41: uint16(1243), - 42: uint16(1243), - 43: uint16(1393), - 44: uint16(1243), - 45: uint16(1400), - 46: uint16(1243), - 47: uint16(1243), - 48: uint16(1243), - 49: uint16(1243), - 50: uint16(1243), - 51: uint16(1479), - 52: uint16(1480), - 53: uint16(1243), - 54: uint16(1243), - 55: uint16(1243), - 56: uint16(1530), - 57: uint16(1532), - 58: uint16(1495), - 59: uint16(1407), - 60: uint16(1406), - 61: uint16(1405), - 62: uint16(1404), - 63: uint16(1513), - 64: uint16(1372), - 65: uint16(1398), - 66: uint16(1391), - 67: uint16(1395), - 68: uint16(1474), - 69: uint16(1475), - 70: uint16(1473), - 71: uint16(1626), - 72: uint16(1480), - 73: uint16(1479), - 74: uint16(1243), - 75: uint16(1394), - 76: uint16(1442), - 77: uint16(1458), - 78: uint16(1441), - 79: uint16(1243), - 80: uint16(1243), - 81: uint16(1243), - 82: uint16(1243), - 83: uint16(1243), - 84: uint16(1243), - 85: uint16(1243), - 86: uint16(1243), - 87: uint16(1243), - 88: uint16(1243), - 89: uint16(1243), - 90: uint16(1243), - 91: uint16(1243), - 92: uint16(1243), - 93: uint16(1243), - 94: uint16(1243), - 95: uint16(1243), - 96: uint16(1243), - 97: uint16(1243), - 98: uint16(1243), - 99: uint16(1243), - 100: uint16(1243), - 101: uint16(1243), - 102: uint16(1243), - 103: uint16(1243), - 104: uint16(1243), - 105: uint16(1243), - 106: uint16(1243), - 107: uint16(1243), - 108: uint16(1243), - 109: uint16(1243), - 110: uint16(1243), - 111: uint16(1243), - 112: uint16(1243), - 113: uint16(1243), - 114: uint16(1243), - 115: uint16(1243), - 116: uint16(1243), - 117: uint16(1243), - 118: uint16(1243), - 119: uint16(1243), - 120: uint16(1243), - 121: uint16(1243), - 122: uint16(1243), - 123: uint16(1243), - 124: uint16(1243), - 125: uint16(1243), - 126: uint16(1243), - 127: uint16(1243), - 128: uint16(1243), - 129: uint16(1243), - 130: uint16(1243), - 131: uint16(1450), - 132: uint16(1457), - 133: uint16(1456), - 134: uint16(1455), - 135: uint16(1464), - 136: uint16(1454), - 137: uint16(1451), - 138: uint16(1444), - 139: uint16(1443), - 140: uint16(1445), - 141: uint16(1446), - 142: uint16(1243), - 143: uint16(1243), - 144: uint16(1267), - 145: uint16(1243), - 146: uint16(1243), - 147: uint16(1264), - 148: uint16(1318), - 149: uint16(1243), - 150: uint16(1243), - 151: uint16(1243), - 152: uint16(1243), - 153: uint16(1243), - 154: uint16(1550), - 155: uint16(1549), - 156: uint16(1243), - 157: uint16(1447), - 158: uint16(1243), - 159: uint16(1276), - 160: uint16(1435), - 161: uint16(1434), - 162: uint16(1433), - 163: uint16(1461), - 164: uint16(1448), - 165: uint16(1460), - 166: uint16(1459), - 167: uint16(1538), - 168: uint16(1600), - 169: uint16(1599), - 170: uint16(1496), - 171: uint16(1243), - 172: uint16(1243), - 173: uint16(1243), - 174: uint16(1243), - 175: uint16(1243), - 176: uint16(1243), - 177: uint16(1564), - 178: uint16(1243), - 179: uint16(1243), - 180: uint16(1243), - 181: uint16(1243), - 182: uint16(1243), - 183: uint16(1243), - 184: uint16(1243), - 185: uint16(1243), - 186: uint16(1243), - 187: uint16(1243), - 188: uint16(1243), - 189: uint16(1243), - 190: uint16(1243), - 191: uint16(1243), - 192: uint16(1243), - 193: uint16(1243), - 194: uint16(1243), - 195: uint16(1243), - 196: uint16(1243), - 197: uint16(1243), - 198: uint16(1243), - 199: uint16(1243), - 200: uint16(1243), - 201: uint16(1374), - 202: uint16(1564), - 203: uint16(1564), - 204: uint16(1243), - 205: uint16(1276), - 206: uint16(1564), - 207: uint16(1564), - 208: uint16(1375), - 209: uint16(1375), - 210: uint16(1272), - 211: uint16(1272), - 212: uint16(1378), - 213: uint16(1243), - 214: uint16(1545), - 215: uint16(1345), - 216: uint16(1345), - 217: uint16(1345), - 218: uint16(1345), - 219: uint16(1354), - 220: uint16(1345), - 221: uint16(1243), - 222: uint16(1243), - 223: uint16(1243), - 224: uint16(1243), - 225: uint16(1243), - 226: uint16(1243), - 227: uint16(1243), - 228: uint16(1243), - 229: uint16(1243), - 230: uint16(1243), - 231: uint16(1243), - 232: uint16(1243), - 233: uint16(1243), - 234: uint16(1243), - 235: uint16(1243), - 236: uint16(1535), - 237: uint16(1533), - 238: uint16(1243), - 239: uint16(1243), - 240: uint16(1243), - 241: uint16(1243), - 242: uint16(1243), - 243: uint16(1243), - 244: uint16(1243), - 245: uint16(1243), - 246: uint16(1243), - 247: uint16(1243), - 248: uint16(1243), - 249: uint16(1243), - 250: uint16(1243), - 251: uint16(1243), - 252: uint16(1243), - 253: uint16(1243), - 254: uint16(1243), - 255: uint16(1243), - 256: uint16(1243), - 257: uint16(1243), - 258: uint16(1243), - 259: uint16(1243), - 260: uint16(1243), - 261: uint16(1243), - 262: uint16(1243), - 263: uint16(1243), - 264: uint16(1243), - 265: uint16(1350), - 266: uint16(1243), - 267: uint16(1243), - 268: uint16(1243), - 269: uint16(1243), - 270: uint16(1243), - 271: uint16(1243), - 272: uint16(1243), - 273: uint16(1243), - 274: uint16(1243), - 275: uint16(1243), - 276: uint16(1243), - 277: uint16(1593), - 278: uint16(1243), - 279: uint16(1508), - 280: uint16(1332), - 281: uint16(1350), - 282: uint16(1350), - 283: uint16(1350), - 284: uint16(1350), - 285: uint16(1352), - 286: uint16(1333), - 287: uint16(1331), - 288: uint16(1344), - 289: uint16(1277), - 290: uint16(1250), - 291: uint16(1640), - 292: uint16(1410), - 293: uint16(1399), - 294: uint16(1351), - 295: uint16(1399), - 296: uint16(1637), - 297: uint16(1397), + 399: int16(1690), + 400: int16(1782), + 401: int16(1779), + 402: int16(1780), + 403: int16(1781), + 404: int16(1785), + 405: int16(1788), + 406: int16(1774), + 407: int16(1775), + 408: int16(1786), + 409: int16(1787), + 410: int16(1789), + 411: int16(1798), +} +var _yy_default = [583]uint16{ + 0: uint16(1663), + 1: uint16(1663), + 2: uint16(1663), + 3: uint16(1491), + 4: uint16(1254), + 5: uint16(1367), + 6: uint16(1254), + 7: uint16(1254), + 8: uint16(1254), + 9: uint16(1254), + 10: uint16(1491), + 11: uint16(1491), + 12: uint16(1491), + 13: uint16(1254), + 14: uint16(1254), + 15: uint16(1254), + 16: uint16(1254), + 17: uint16(1254), + 18: uint16(1254), + 19: uint16(1397), + 20: uint16(1397), + 21: uint16(1544), + 22: uint16(1287), + 23: uint16(1254), + 24: uint16(1254), + 25: uint16(1254), + 26: uint16(1254), + 27: uint16(1254), + 28: uint16(1254), + 29: uint16(1254), + 30: uint16(1254), + 31: uint16(1254), + 32: uint16(1254), + 33: uint16(1254), + 34: uint16(1254), + 35: uint16(1490), + 36: uint16(1254), + 37: uint16(1254), + 38: uint16(1254), + 39: uint16(1254), + 40: uint16(1578), + 41: uint16(1578), + 42: uint16(1254), + 43: uint16(1254), + 44: uint16(1254), + 45: uint16(1254), + 46: uint16(1254), + 47: uint16(1563), + 48: uint16(1562), + 49: uint16(1254), + 50: uint16(1254), + 51: uint16(1254), + 52: uint16(1406), + 53: uint16(1254), + 54: uint16(1413), + 55: uint16(1254), + 56: uint16(1254), + 57: uint16(1254), + 58: uint16(1254), + 59: uint16(1254), + 60: uint16(1492), + 61: uint16(1493), + 62: uint16(1254), + 63: uint16(1254), + 64: uint16(1254), + 65: uint16(1543), + 66: uint16(1545), + 67: uint16(1508), + 68: uint16(1420), + 69: uint16(1419), + 70: uint16(1418), + 71: uint16(1417), + 72: uint16(1526), + 73: uint16(1385), + 74: uint16(1411), + 75: uint16(1404), + 76: uint16(1408), + 77: uint16(1487), + 78: uint16(1488), + 79: uint16(1486), + 80: uint16(1641), + 81: uint16(1493), + 82: uint16(1492), + 83: uint16(1254), + 84: uint16(1407), + 85: uint16(1455), + 86: uint16(1471), + 87: uint16(1454), + 88: uint16(1254), + 89: uint16(1254), + 90: uint16(1254), + 91: uint16(1254), + 92: uint16(1254), + 93: uint16(1254), + 94: uint16(1254), + 95: uint16(1254), + 96: uint16(1254), + 97: uint16(1254), + 98: uint16(1254), + 99: uint16(1254), + 100: uint16(1254), + 101: uint16(1254), + 102: uint16(1254), + 103: uint16(1254), + 104: uint16(1254), + 105: uint16(1254), + 106: uint16(1254), + 107: uint16(1254), + 108: uint16(1254), + 109: uint16(1254), + 110: uint16(1254), + 111: uint16(1254), + 112: uint16(1254), + 113: uint16(1254), + 114: uint16(1254), + 115: uint16(1254), + 116: uint16(1254), + 117: uint16(1254), + 118: uint16(1254), + 119: uint16(1254), + 120: uint16(1254), + 121: uint16(1254), + 122: uint16(1254), + 123: uint16(1254), + 124: uint16(1254), + 125: uint16(1254), + 126: uint16(1254), + 127: uint16(1254), + 128: uint16(1254), + 129: uint16(1254), + 130: uint16(1254), + 131: uint16(1254), + 132: uint16(1254), + 133: uint16(1254), + 134: uint16(1254), + 135: uint16(1254), + 136: uint16(1254), + 137: uint16(1254), + 138: uint16(1254), + 139: uint16(1254), + 140: uint16(1463), + 141: uint16(1470), + 142: uint16(1469), + 143: uint16(1468), + 144: uint16(1477), + 145: uint16(1467), + 146: uint16(1464), + 147: uint16(1457), + 148: uint16(1456), + 149: uint16(1458), + 150: uint16(1459), + 151: uint16(1278), + 152: uint16(1254), + 153: uint16(1275), + 154: uint16(1329), + 155: uint16(1254), + 156: uint16(1254), + 157: uint16(1254), + 158: uint16(1254), + 159: uint16(1254), + 160: uint16(1460), + 161: uint16(1287), + 162: uint16(1448), + 163: uint16(1447), + 164: uint16(1446), + 165: uint16(1254), + 166: uint16(1474), + 167: uint16(1461), + 168: uint16(1473), + 169: uint16(1472), + 170: uint16(1551), + 171: uint16(1615), + 172: uint16(1614), + 173: uint16(1509), + 174: uint16(1254), + 175: uint16(1254), + 176: uint16(1254), + 177: uint16(1254), + 178: uint16(1254), + 179: uint16(1254), + 180: uint16(1578), + 181: uint16(1254), + 182: uint16(1254), + 183: uint16(1254), + 184: uint16(1254), + 185: uint16(1254), + 186: uint16(1254), + 187: uint16(1254), + 188: uint16(1254), + 189: uint16(1254), + 190: uint16(1254), + 191: uint16(1254), + 192: uint16(1254), + 193: uint16(1254), + 194: uint16(1254), + 195: uint16(1254), + 196: uint16(1254), + 197: uint16(1254), + 198: uint16(1254), + 199: uint16(1254), + 200: uint16(1254), + 201: uint16(1254), + 202: uint16(1254), + 203: uint16(1387), + 204: uint16(1578), + 205: uint16(1578), + 206: uint16(1254), + 207: uint16(1287), + 208: uint16(1578), + 209: uint16(1578), + 210: uint16(1388), + 211: uint16(1388), + 212: uint16(1283), + 213: uint16(1283), + 214: uint16(1391), + 215: uint16(1558), + 216: uint16(1358), + 217: uint16(1358), + 218: uint16(1358), + 219: uint16(1358), + 220: uint16(1367), + 221: uint16(1358), + 222: uint16(1254), + 223: uint16(1254), + 224: uint16(1254), + 225: uint16(1254), + 226: uint16(1254), + 227: uint16(1254), + 228: uint16(1254), + 229: uint16(1254), + 230: uint16(1254), + 231: uint16(1254), + 232: uint16(1254), + 233: uint16(1254), + 234: uint16(1254), + 235: uint16(1254), + 236: uint16(1254), + 237: uint16(1548), + 238: uint16(1546), + 239: uint16(1254), + 240: uint16(1254), + 241: uint16(1254), + 242: uint16(1254), + 243: uint16(1254), + 244: uint16(1254), + 245: uint16(1254), + 246: uint16(1254), + 247: uint16(1254), + 248: uint16(1254), + 249: uint16(1254), + 250: uint16(1254), + 251: uint16(1254), + 252: uint16(1254), + 253: uint16(1254), + 254: uint16(1254), + 255: uint16(1254), + 256: uint16(1254), + 257: uint16(1254), + 258: uint16(1254), + 259: uint16(1254), + 260: uint16(1254), + 261: uint16(1254), + 262: uint16(1254), + 263: uint16(1254), + 264: uint16(1254), + 265: uint16(1254), + 266: uint16(1363), + 267: uint16(1254), + 268: uint16(1254), + 269: uint16(1254), + 270: uint16(1254), + 271: uint16(1254), + 272: uint16(1254), + 273: uint16(1254), + 274: uint16(1254), + 275: uint16(1254), + 276: uint16(1254), + 277: uint16(1254), + 278: uint16(1608), + 279: uint16(1254), + 280: uint16(1521), + 281: uint16(1343), + 282: uint16(1363), + 283: uint16(1363), + 284: uint16(1363), + 285: uint16(1363), + 286: uint16(1365), + 287: uint16(1344), + 288: uint16(1342), + 289: uint16(1357), + 290: uint16(1288), + 291: uint16(1261), + 292: uint16(1655), + 293: uint16(1423), + 294: uint16(1412), + 295: uint16(1364), + 296: uint16(1412), + 297: uint16(1652), 298: uint16(1410), - 299: uint16(1410), - 300: uint16(1397), + 299: uint16(1423), + 300: uint16(1423), 301: uint16(1410), - 302: uint16(1351), - 303: uint16(1637), - 304: uint16(1293), - 305: uint16(1615), - 306: uint16(1288), - 307: uint16(1384), - 308: uint16(1384), - 309: uint16(1384), - 310: uint16(1374), - 311: uint16(1374), - 312: uint16(1374), - 313: uint16(1374), - 314: uint16(1378), - 315: uint16(1378), - 316: uint16(1476), - 317: uint16(1351), - 318: uint16(1344), - 319: uint16(1243), - 320: uint16(1640), - 321: uint16(1640), - 322: uint16(1360), - 323: uint16(1360), - 324: uint16(1639), - 325: uint16(1639), - 326: uint16(1360), - 327: uint16(1496), - 328: uint16(1623), - 329: uint16(1419), - 330: uint16(1321), - 331: uint16(1327), - 332: uint16(1327), - 333: uint16(1327), - 334: uint16(1327), - 335: uint16(1360), - 336: uint16(1261), - 337: uint16(1397), - 338: uint16(1623), - 339: uint16(1623), - 340: uint16(1397), - 341: uint16(1419), - 342: uint16(1321), - 343: uint16(1397), - 344: uint16(1321), - 345: uint16(1397), - 346: uint16(1360), - 347: uint16(1261), - 348: uint16(1512), - 349: uint16(1634), - 350: uint16(1360), - 351: uint16(1261), - 352: uint16(1486), - 353: uint16(1360), - 354: uint16(1261), - 355: uint16(1360), - 356: uint16(1261), - 357: uint16(1486), - 358: uint16(1319), - 359: uint16(1319), - 360: uint16(1319), - 361: uint16(1308), - 362: uint16(1243), - 363: uint16(1243), - 364: uint16(1486), - 365: uint16(1319), - 366: uint16(1293), - 367: uint16(1319), - 368: uint16(1308), + 302: uint16(1423), + 303: uint16(1364), + 304: uint16(1652), + 305: uint16(1304), + 306: uint16(1630), + 307: uint16(1299), + 308: uint16(1397), + 309: uint16(1397), + 310: uint16(1397), + 311: uint16(1387), + 312: uint16(1387), + 313: uint16(1387), + 314: uint16(1387), + 315: uint16(1391), + 316: uint16(1391), + 317: uint16(1489), + 318: uint16(1364), + 319: uint16(1357), + 320: uint16(1254), + 321: uint16(1655), + 322: uint16(1655), + 323: uint16(1373), + 324: uint16(1373), + 325: uint16(1654), + 326: uint16(1654), + 327: uint16(1373), + 328: uint16(1509), + 329: uint16(1638), + 330: uint16(1432), + 331: uint16(1332), + 332: uint16(1338), + 333: uint16(1338), + 334: uint16(1338), + 335: uint16(1338), + 336: uint16(1373), + 337: uint16(1272), + 338: uint16(1410), + 339: uint16(1638), + 340: uint16(1638), + 341: uint16(1410), + 342: uint16(1432), + 343: uint16(1332), + 344: uint16(1410), + 345: uint16(1332), + 346: uint16(1410), + 347: uint16(1373), + 348: uint16(1272), + 349: uint16(1525), + 350: uint16(1649), + 351: uint16(1373), + 352: uint16(1272), + 353: uint16(1499), + 354: uint16(1373), + 355: uint16(1272), + 356: uint16(1373), + 357: uint16(1272), + 358: uint16(1499), + 359: uint16(1330), + 360: uint16(1330), + 361: uint16(1330), + 362: uint16(1319), + 363: uint16(1254), + 364: uint16(1254), + 365: uint16(1499), + 366: uint16(1330), + 367: uint16(1304), + 368: uint16(1330), 369: uint16(1319), - 370: uint16(1319), - 371: uint16(1582), - 372: uint16(1243), - 373: uint16(1490), - 374: uint16(1490), - 375: uint16(1486), - 376: uint16(1360), - 377: uint16(1574), - 378: uint16(1574), - 379: uint16(1387), - 380: uint16(1387), - 381: uint16(1392), - 382: uint16(1378), - 383: uint16(1481), - 384: uint16(1360), - 385: uint16(1243), - 386: uint16(1392), - 387: uint16(1390), - 388: uint16(1388), - 389: uint16(1397), - 390: uint16(1311), - 391: uint16(1596), - 392: uint16(1596), - 393: uint16(1592), - 394: uint16(1592), - 395: uint16(1592), - 396: uint16(1645), - 397: uint16(1645), - 398: uint16(1545), - 399: uint16(1608), - 400: uint16(1276), - 401: uint16(1276), - 402: uint16(1276), - 403: uint16(1276), - 404: uint16(1608), - 405: uint16(1295), - 406: uint16(1295), - 407: uint16(1277), - 408: uint16(1277), - 409: uint16(1276), - 410: uint16(1608), - 411: uint16(1243), - 412: uint16(1243), - 413: uint16(1243), - 414: uint16(1243), - 415: uint16(1243), - 416: uint16(1243), - 417: uint16(1603), - 418: uint16(1243), - 419: uint16(1540), - 420: uint16(1497), - 421: uint16(1364), - 422: uint16(1243), - 423: uint16(1243), - 424: uint16(1243), - 425: uint16(1243), - 426: uint16(1243), - 427: uint16(1243), - 428: uint16(1243), - 429: uint16(1243), - 430: uint16(1243), - 431: uint16(1243), - 432: uint16(1243), - 433: uint16(1243), - 434: uint16(1243), - 435: uint16(1243), - 436: uint16(1243), - 437: uint16(1243), - 438: uint16(1551), - 439: uint16(1243), - 440: uint16(1243), - 441: uint16(1243), - 442: uint16(1243), - 443: uint16(1243), - 444: uint16(1243), - 445: uint16(1243), - 446: uint16(1243), - 447: uint16(1243), - 448: uint16(1243), - 449: uint16(1424), - 450: uint16(1243), - 451: uint16(1246), - 452: uint16(1542), - 453: uint16(1243), - 454: uint16(1243), - 455: uint16(1243), - 456: uint16(1243), - 457: uint16(1243), - 458: uint16(1243), - 459: uint16(1243), - 460: uint16(1243), - 461: uint16(1401), - 462: uint16(1402), - 463: uint16(1365), - 464: uint16(1243), - 465: uint16(1243), - 466: uint16(1243), - 467: uint16(1243), - 468: uint16(1243), - 469: uint16(1243), - 470: uint16(1243), - 471: uint16(1416), - 472: uint16(1243), - 473: uint16(1243), - 474: uint16(1243), - 475: uint16(1411), - 476: uint16(1243), - 477: uint16(1243), - 478: uint16(1243), - 479: uint16(1243), - 480: uint16(1243), - 481: uint16(1243), - 482: uint16(1243), - 483: uint16(1243), - 484: uint16(1636), - 485: uint16(1243), - 486: uint16(1243), - 487: uint16(1243), - 488: uint16(1243), - 489: uint16(1243), - 490: uint16(1243), - 491: uint16(1511), - 492: uint16(1510), - 493: uint16(1243), - 494: uint16(1243), - 495: uint16(1362), - 496: uint16(1243), - 497: uint16(1243), - 498: uint16(1243), - 499: uint16(1243), - 500: uint16(1243), - 501: uint16(1243), - 502: uint16(1243), - 503: uint16(1243), - 504: uint16(1243), - 505: uint16(1243), - 506: uint16(1243), - 507: uint16(1243), - 508: uint16(1243), - 509: uint16(1291), - 510: uint16(1243), - 511: uint16(1243), - 512: uint16(1243), - 513: uint16(1243), - 514: uint16(1243), - 515: uint16(1243), - 516: uint16(1243), - 517: uint16(1243), - 518: uint16(1243), - 519: uint16(1243), - 520: uint16(1243), - 521: uint16(1243), - 522: uint16(1243), - 523: uint16(1243), - 524: uint16(1243), - 525: uint16(1243), - 526: uint16(1243), - 527: uint16(1243), - 528: uint16(1243), - 529: uint16(1243), - 530: uint16(1243), - 531: uint16(1243), - 532: uint16(1243), - 533: uint16(1389), - 534: uint16(1243), - 535: uint16(1243), - 536: uint16(1243), - 537: uint16(1243), - 538: uint16(1243), - 539: uint16(1243), - 540: uint16(1243), - 541: uint16(1243), - 542: uint16(1243), - 543: uint16(1243), - 544: uint16(1243), - 545: uint16(1243), - 546: uint16(1243), - 547: uint16(1243), - 548: uint16(1579), - 549: uint16(1379), - 550: uint16(1243), - 551: uint16(1243), - 552: uint16(1243), - 553: uint16(1243), - 554: uint16(1627), - 555: uint16(1243), - 556: uint16(1243), - 557: uint16(1243), - 558: uint16(1243), - 559: uint16(1243), - 560: uint16(1243), - 561: uint16(1243), - 562: uint16(1243), - 563: uint16(1243), - 564: uint16(1243), - 565: uint16(1243), - 566: uint16(1243), - 567: uint16(1243), - 568: uint16(1243), - 569: uint16(1619), - 570: uint16(1335), - 571: uint16(1425), - 572: uint16(1243), - 573: uint16(1428), - 574: uint16(1265), - 575: uint16(1243), - 576: uint16(1255), - 577: uint16(1243), - 578: uint16(1243), + 370: uint16(1330), + 371: uint16(1330), + 372: uint16(1596), + 373: uint16(1254), + 374: uint16(1503), + 375: uint16(1503), + 376: uint16(1499), + 377: uint16(1373), + 378: uint16(1588), + 379: uint16(1588), + 380: uint16(1400), + 381: uint16(1400), + 382: uint16(1405), + 383: uint16(1391), + 384: uint16(1494), + 385: uint16(1373), + 386: uint16(1254), + 387: uint16(1405), + 388: uint16(1403), + 389: uint16(1401), + 390: uint16(1410), + 391: uint16(1322), + 392: uint16(1611), + 393: uint16(1611), + 394: uint16(1607), + 395: uint16(1607), + 396: uint16(1607), + 397: uint16(1660), + 398: uint16(1660), + 399: uint16(1558), + 400: uint16(1623), + 401: uint16(1287), + 402: uint16(1287), + 403: uint16(1287), + 404: uint16(1287), + 405: uint16(1623), + 406: uint16(1306), + 407: uint16(1306), + 408: uint16(1288), + 409: uint16(1288), + 410: uint16(1287), + 411: uint16(1623), + 412: uint16(1254), + 413: uint16(1254), + 414: uint16(1254), + 415: uint16(1254), + 416: uint16(1254), + 417: uint16(1254), + 418: uint16(1618), + 419: uint16(1254), + 420: uint16(1553), + 421: uint16(1510), + 422: uint16(1377), + 423: uint16(1254), + 424: uint16(1254), + 425: uint16(1254), + 426: uint16(1254), + 427: uint16(1254), + 428: uint16(1254), + 429: uint16(1254), + 430: uint16(1254), + 431: uint16(1254), + 432: uint16(1254), + 433: uint16(1254), + 434: uint16(1254), + 435: uint16(1254), + 436: uint16(1254), + 437: uint16(1254), + 438: uint16(1254), + 439: uint16(1564), + 440: uint16(1254), + 441: uint16(1254), + 442: uint16(1254), + 443: uint16(1254), + 444: uint16(1254), + 445: uint16(1254), + 446: uint16(1254), + 447: uint16(1254), + 448: uint16(1254), + 449: uint16(1254), + 450: uint16(1254), + 451: uint16(1437), + 452: uint16(1254), + 453: uint16(1257), + 454: uint16(1555), + 455: uint16(1254), + 456: uint16(1254), + 457: uint16(1254), + 458: uint16(1254), + 459: uint16(1254), + 460: uint16(1254), + 461: uint16(1254), + 462: uint16(1254), + 463: uint16(1414), + 464: uint16(1415), + 465: uint16(1378), + 466: uint16(1254), + 467: uint16(1254), + 468: uint16(1254), + 469: uint16(1254), + 470: uint16(1254), + 471: uint16(1254), + 472: uint16(1254), + 473: uint16(1429), + 474: uint16(1254), + 475: uint16(1254), + 476: uint16(1254), + 477: uint16(1424), + 478: uint16(1254), + 479: uint16(1254), + 480: uint16(1254), + 481: uint16(1254), + 482: uint16(1254), + 483: uint16(1254), + 484: uint16(1254), + 485: uint16(1254), + 486: uint16(1651), + 487: uint16(1254), + 488: uint16(1254), + 489: uint16(1254), + 490: uint16(1254), + 491: uint16(1254), + 492: uint16(1254), + 493: uint16(1524), + 494: uint16(1523), + 495: uint16(1254), + 496: uint16(1254), + 497: uint16(1375), + 498: uint16(1254), + 499: uint16(1254), + 500: uint16(1254), + 501: uint16(1254), + 502: uint16(1254), + 503: uint16(1254), + 504: uint16(1254), + 505: uint16(1254), + 506: uint16(1254), + 507: uint16(1254), + 508: uint16(1254), + 509: uint16(1254), + 510: uint16(1254), + 511: uint16(1302), + 512: uint16(1254), + 513: uint16(1254), + 514: uint16(1254), + 515: uint16(1254), + 516: uint16(1254), + 517: uint16(1254), + 518: uint16(1254), + 519: uint16(1254), + 520: uint16(1254), + 521: uint16(1254), + 522: uint16(1254), + 523: uint16(1254), + 524: uint16(1254), + 525: uint16(1254), + 526: uint16(1254), + 527: uint16(1254), + 528: uint16(1254), + 529: uint16(1254), + 530: uint16(1254), + 531: uint16(1254), + 532: uint16(1254), + 533: uint16(1254), + 534: uint16(1254), + 535: uint16(1402), + 536: uint16(1254), + 537: uint16(1254), + 538: uint16(1254), + 539: uint16(1254), + 540: uint16(1254), + 541: uint16(1254), + 542: uint16(1254), + 543: uint16(1254), + 544: uint16(1254), + 545: uint16(1254), + 546: uint16(1254), + 547: uint16(1254), + 548: uint16(1254), + 549: uint16(1254), + 550: uint16(1593), + 551: uint16(1392), + 552: uint16(1254), + 553: uint16(1254), + 554: uint16(1254), + 555: uint16(1254), + 556: uint16(1642), + 557: uint16(1254), + 558: uint16(1254), + 559: uint16(1254), + 560: uint16(1254), + 561: uint16(1352), + 562: uint16(1254), + 563: uint16(1254), + 564: uint16(1254), + 565: uint16(1254), + 566: uint16(1254), + 567: uint16(1254), + 568: uint16(1254), + 569: uint16(1254), + 570: uint16(1254), + 571: uint16(1254), + 572: uint16(1254), + 573: uint16(1634), + 574: uint16(1346), + 575: uint16(1438), + 576: uint16(1254), + 577: uint16(1441), + 578: uint16(1276), + 579: uint16(1254), + 580: uint16(1266), + 581: uint16(1254), + 582: uint16(1254), } /********** End of lemon-generated parsing tables *****************************/ @@ -152753,7 +154256,7 @@ var _yy_default = [579]uint16{ // ** to revert to identifiers if they keyword does not apply in the context where // ** it appears. // */ -var _yyFallback = [185]uint16{ +var _yyFallback = [186]uint16{ 2: uint16(59), 3: uint16(59), 4: uint16(59), @@ -152866,8 +154369,9 @@ type yyStackEntry = TyyStackEntry type TyyParser1 = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser1 = TyyParser1 @@ -152875,14 +154379,46 @@ type yyParser1 = TyyParser1 type TyyParser = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser = TyyParser /* #include */ +// C documentation +// +// /* +// ** Try to increase the size of the parser stack. Return the number +// ** of errors. Return 0 on success. +// */ +func _yyGrowStack(tls *libc.TLS, p uintptr) (r int32) { + var idx, newSize, oldSize int32 + var pNew uintptr + _, _, _, _ = idx, newSize, oldSize, pNew + oldSize = int32(1) + int32((int64((*TyyParser)(unsafe.Pointer(p)).FyystackEnd)-int64((*TyyParser)(unsafe.Pointer(p)).Fyystack))/24) + newSize = oldSize*int32(2) + int32(100) + idx = int32((int64((*TyyParser)(unsafe.Pointer(p)).Fyytos) - int64((*TyyParser)(unsafe.Pointer(p)).Fyystack)) / 24) + if (*TyyParser)(unsafe.Pointer(p)).Fyystack == p+32 { + pNew = _parserStackRealloc(tls, uintptr(0), uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + libc.Xmemcpy(tls, pNew, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(oldSize)*uint64(24)) + } else { + pNew = _parserStackRealloc(tls, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + } + (*TyyParser)(unsafe.Pointer(p)).Fyystack = pNew + (*TyyParser)(unsafe.Pointer(p)).Fyytos = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(idx)*24 + (*TyyParser)(unsafe.Pointer(p)).FyystackEnd = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(newSize-int32(1))*24 + return 0 +} + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -152898,10 +154434,11 @@ func _sqlite3ParserInit(tls *libc.TLS, yypRawParser uintptr, pParse uintptr) { _ = yypParser yypParser = yypRawParser (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = yypParser + 16 - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fstateno = uint16(0) - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fmajor = uint16(0) - (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = yypParser + 16 + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack = yypParser + 32 + (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fstateno = uint16(0) + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fmajor = uint16(0) } // C documentation @@ -152929,103 +154466,105 @@ func _yy_destructor(tls *libc.TLS, yypParser uintptr, yymajor uint16, yypminor u ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case int32(204): /* select */ + case int32(205): /* select */ + fallthrough + case int32(240): /* selectnowith */ fallthrough - case int32(239): /* selectnowith */ + case int32(241): /* oneselect */ fallthrough - case int32(240): /* oneselect */ + case int32(253): /* values */ fallthrough - case int32(252): /* values */ + case int32(255): /* mvalues */ _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(216): /* term */ + case int32(217): /* term */ fallthrough - case int32(217): /* expr */ + case int32(218): /* expr */ fallthrough - case int32(246): /* where_opt */ + case int32(247): /* where_opt */ fallthrough - case int32(248): /* having_opt */ + case int32(249): /* having_opt */ fallthrough - case int32(267): /* where_opt_ret */ + case int32(269): /* where_opt_ret */ fallthrough - case int32(278): /* case_operand */ + case int32(280): /* case_operand */ fallthrough - case int32(280): /* case_else */ + case int32(282): /* case_else */ fallthrough - case int32(283): /* vinto */ + case int32(285): /* vinto */ fallthrough - case int32(290): /* when_clause */ + case int32(292): /* when_clause */ fallthrough - case int32(295): /* key_opt */ + case int32(297): /* key_opt */ fallthrough - case int32(311): /* filter_clause */ + case int32(314): /* filter_clause */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(221): /* eidlist_opt */ + case int32(222): /* eidlist_opt */ fallthrough - case int32(231): /* sortlist */ + case int32(232): /* sortlist */ fallthrough - case int32(232): /* eidlist */ + case int32(233): /* eidlist */ fallthrough - case int32(244): /* selcollist */ + case int32(245): /* selcollist */ fallthrough - case int32(247): /* groupby_opt */ + case int32(248): /* groupby_opt */ fallthrough - case int32(249): /* orderby_opt */ + case int32(250): /* orderby_opt */ fallthrough - case int32(253): /* nexprlist */ + case int32(254): /* nexprlist */ fallthrough - case int32(254): /* sclp */ + case int32(256): /* sclp */ fallthrough - case int32(261): /* exprlist */ + case int32(263): /* exprlist */ fallthrough - case int32(268): /* setlist */ + case int32(270): /* setlist */ fallthrough - case int32(277): /* paren_exprlist */ + case int32(279): /* paren_exprlist */ fallthrough - case int32(279): /* case_exprlist */ + case int32(281): /* case_exprlist */ fallthrough - case int32(310): /* part_opt */ + case int32(313): /* part_opt */ _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(238): /* fullname */ + case int32(239): /* fullname */ fallthrough - case int32(245): /* from */ + case int32(246): /* from */ fallthrough - case int32(256): /* seltablist */ + case int32(258): /* seltablist */ fallthrough - case int32(257): /* stl_prefix */ + case int32(259): /* stl_prefix */ fallthrough - case int32(262): /* xfullname */ + case int32(264): /* xfullname */ _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(241): /* wqlist */ + case int32(242): /* wqlist */ _sqlite3WithDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(251): /* window_clause */ + case int32(252): /* window_clause */ fallthrough - case int32(306): /* windowdefn_list */ + case int32(309): /* windowdefn_list */ _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(263): /* idlist */ + case int32(265): /* idlist */ fallthrough - case int32(270): /* idlist_opt */ + case int32(272): /* idlist_opt */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(273): /* filter_over */ + case int32(275): /* filter_over */ fallthrough - case int32(307): /* windowdefn */ + case int32(310): /* windowdefn */ fallthrough - case int32(308): /* window */ + case int32(311): /* window */ fallthrough - case int32(309): /* frame_opt */ + case int32(312): /* frame_opt */ fallthrough - case int32(312): /* over_clause */ + case int32(315): /* over_clause */ _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(286): /* trigger_cmd_list */ + case int32(288): /* trigger_cmd_list */ fallthrough - case int32(291): /* trigger_cmd */ + case int32(293): /* trigger_cmd */ _sqlite3DeleteTriggerStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(288): /* trigger_event */ + case int32(290): /* trigger_event */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TTrigEvent)(unsafe.Pointer(yypminor))).Fb) - case int32(314): /* frame_bound */ + case int32(317): /* frame_bound */ fallthrough - case int32(315): /* frame_bound_s */ + case int32(318): /* frame_bound_s */ fallthrough - case int32(316): /* frame_bound_e */ + case int32(319): /* frame_bound_e */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TFrameBound)(unsafe.Pointer(yypminor))).FpExpr) break /********* End destructor definitions *****************************************/ @@ -153059,11 +154598,20 @@ func _yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var pParser, yytos uintptr + _, _ = pParser, yytos pParser = p - for (*TyyParser)(unsafe.Pointer(pParser)).Fyytos > pParser+16 { - _yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling yy_pop_parser_stack() for each + ** element left in the stack */ + yytos = (*TyyParser)(unsafe.Pointer(pParser)).Fyytos + for yytos > (*TyyParser)(unsafe.Pointer(pParser)).Fyystack { + if int32((*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor) >= int32(YY_MIN_DSTRCTR) { + _yy_destructor(tls, pParser, (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor, yytos+8) + } + yytos -= 24 + } + if (*TyyParser)(unsafe.Pointer(pParser)).Fyystack != pParser+32 { + Xsqlite3_free(tls, (*TyyParser)(unsafe.Pointer(pParser)).Fyystack) } } @@ -153144,13 +154692,13 @@ func _yyStackOverflow(tls *libc.TLS, yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse - for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > yypParser+16 { + for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack { _yy_pop_parser_stack(tls, yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23338, 0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) /******** End %stack_overflow code ********************************************/ /* Suppress warning about unused %extra_argument var */ (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse @@ -153169,15 +154717,18 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint var yytos uintptr _ = yytos (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos += 24 - if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 - _yyStackOverflow(tls, yypParser) - return + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + if yytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { + if _yyGrowStack(tls, yypParser) != 0 { + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 + _yyStackOverflow(tls, yypParser) + return + } + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos } if int32(yyNewState) > int32(YY_MAX_SHIFT) { yyNewState = uint16(int32(yyNewState) + (libc.Int32FromInt32(YY_MIN_REDUCE) - libc.Int32FromInt32(YY_MIN_SHIFTREDUCE))) } - yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos (*TyyStackEntry)(unsafe.Pointer(yytos)).Fstateno = yyNewState (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor = yyMajor *(*TToken)(unsafe.Pointer(yytos + 8)) = yyMinor @@ -153187,419 +154738,423 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint // // /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side // ** of that rule */ -var _yyRuleInfoLhs = [405]uint16{ - 0: uint16(189), - 1: uint16(189), - 2: uint16(188), - 3: uint16(190), - 4: uint16(191), - 5: uint16(191), - 6: uint16(191), - 7: uint16(191), - 8: uint16(190), - 9: uint16(190), - 10: uint16(190), - 11: uint16(190), - 12: uint16(190), - 13: uint16(195), - 14: uint16(197), - 15: uint16(199), - 16: uint16(199), - 17: uint16(198), - 18: uint16(198), - 19: uint16(196), - 20: uint16(196), - 21: uint16(203), - 22: uint16(203), - 23: uint16(205), - 24: uint16(205), - 25: uint16(206), - 26: uint16(208), - 27: uint16(208), - 28: uint16(208), - 29: uint16(209), - 30: uint16(213), - 31: uint16(214), - 32: uint16(215), - 33: uint16(215), - 34: uint16(215), - 35: uint16(215), - 36: uint16(215), - 37: uint16(215), - 38: uint16(215), - 39: uint16(215), - 40: uint16(215), - 41: uint16(215), - 42: uint16(215), - 43: uint16(215), - 44: uint16(215), - 45: uint16(224), - 46: uint16(224), - 47: uint16(220), - 48: uint16(220), - 49: uint16(222), - 50: uint16(222), - 51: uint16(225), - 52: uint16(225), - 53: uint16(225), - 54: uint16(225), - 55: uint16(226), - 56: uint16(226), - 57: uint16(226), - 58: uint16(226), - 59: uint16(226), - 60: uint16(223), - 61: uint16(223), - 62: uint16(227), - 63: uint16(227), - 64: uint16(227), - 65: uint16(202), - 66: uint16(229), - 67: uint16(230), - 68: uint16(230), - 69: uint16(230), - 70: uint16(230), - 71: uint16(230), - 72: uint16(233), - 73: uint16(218), - 74: uint16(218), - 75: uint16(234), - 76: uint16(234), - 77: uint16(235), - 78: uint16(235), - 79: uint16(190), - 80: uint16(237), - 81: uint16(237), - 82: uint16(190), - 83: uint16(190), - 84: uint16(190), - 85: uint16(204), - 86: uint16(204), - 87: uint16(204), - 88: uint16(239), - 89: uint16(242), - 90: uint16(242), - 91: uint16(242), - 92: uint16(240), - 93: uint16(240), - 94: uint16(252), - 95: uint16(252), - 96: uint16(243), - 97: uint16(243), - 98: uint16(243), - 99: uint16(254), +var _yyRuleInfoLhs = [409]uint16{ + 0: uint16(190), + 1: uint16(190), + 2: uint16(189), + 3: uint16(191), + 4: uint16(192), + 5: uint16(192), + 6: uint16(192), + 7: uint16(192), + 8: uint16(191), + 9: uint16(191), + 10: uint16(191), + 11: uint16(191), + 12: uint16(191), + 13: uint16(196), + 14: uint16(198), + 15: uint16(200), + 16: uint16(200), + 17: uint16(199), + 18: uint16(199), + 19: uint16(197), + 20: uint16(197), + 21: uint16(204), + 22: uint16(204), + 23: uint16(206), + 24: uint16(206), + 25: uint16(207), + 26: uint16(209), + 27: uint16(209), + 28: uint16(209), + 29: uint16(210), + 30: uint16(214), + 31: uint16(215), + 32: uint16(216), + 33: uint16(216), + 34: uint16(216), + 35: uint16(216), + 36: uint16(216), + 37: uint16(216), + 38: uint16(216), + 39: uint16(216), + 40: uint16(216), + 41: uint16(216), + 42: uint16(216), + 43: uint16(216), + 44: uint16(216), + 45: uint16(225), + 46: uint16(225), + 47: uint16(221), + 48: uint16(221), + 49: uint16(223), + 50: uint16(223), + 51: uint16(226), + 52: uint16(226), + 53: uint16(226), + 54: uint16(226), + 55: uint16(227), + 56: uint16(227), + 57: uint16(227), + 58: uint16(227), + 59: uint16(227), + 60: uint16(224), + 61: uint16(224), + 62: uint16(228), + 63: uint16(228), + 64: uint16(228), + 65: uint16(203), + 66: uint16(230), + 67: uint16(231), + 68: uint16(231), + 69: uint16(231), + 70: uint16(231), + 71: uint16(231), + 72: uint16(234), + 73: uint16(219), + 74: uint16(219), + 75: uint16(235), + 76: uint16(235), + 77: uint16(236), + 78: uint16(236), + 79: uint16(191), + 80: uint16(238), + 81: uint16(238), + 82: uint16(191), + 83: uint16(191), + 84: uint16(191), + 85: uint16(205), + 86: uint16(205), + 87: uint16(205), + 88: uint16(240), + 89: uint16(243), + 90: uint16(243), + 91: uint16(243), + 92: uint16(241), + 93: uint16(241), + 94: uint16(253), + 95: uint16(241), + 96: uint16(255), + 97: uint16(255), + 98: uint16(244), + 99: uint16(244), 100: uint16(244), - 101: uint16(244), - 102: uint16(244), - 103: uint16(255), - 104: uint16(255), - 105: uint16(245), - 106: uint16(245), - 107: uint16(257), - 108: uint16(257), - 109: uint16(256), - 110: uint16(256), - 111: uint16(256), - 112: uint16(256), - 113: uint16(256), - 114: uint16(200), - 115: uint16(200), - 116: uint16(238), - 117: uint16(238), - 118: uint16(262), - 119: uint16(262), - 120: uint16(262), - 121: uint16(262), - 122: uint16(258), - 123: uint16(258), - 124: uint16(258), - 125: uint16(258), - 126: uint16(259), - 127: uint16(259), - 128: uint16(259), - 129: uint16(264), - 130: uint16(260), - 131: uint16(260), - 132: uint16(249), - 133: uint16(249), - 134: uint16(231), - 135: uint16(231), - 136: uint16(219), - 137: uint16(219), - 138: uint16(219), - 139: uint16(265), - 140: uint16(265), - 141: uint16(265), - 142: uint16(247), - 143: uint16(247), + 101: uint16(256), + 102: uint16(245), + 103: uint16(245), + 104: uint16(245), + 105: uint16(257), + 106: uint16(257), + 107: uint16(246), + 108: uint16(246), + 109: uint16(259), + 110: uint16(259), + 111: uint16(258), + 112: uint16(258), + 113: uint16(258), + 114: uint16(258), + 115: uint16(258), + 116: uint16(201), + 117: uint16(201), + 118: uint16(239), + 119: uint16(239), + 120: uint16(264), + 121: uint16(264), + 122: uint16(264), + 123: uint16(264), + 124: uint16(260), + 125: uint16(260), + 126: uint16(260), + 127: uint16(260), + 128: uint16(261), + 129: uint16(261), + 130: uint16(261), + 131: uint16(266), + 132: uint16(262), + 133: uint16(262), + 134: uint16(250), + 135: uint16(250), + 136: uint16(232), + 137: uint16(232), + 138: uint16(220), + 139: uint16(220), + 140: uint16(220), + 141: uint16(267), + 142: uint16(267), + 143: uint16(267), 144: uint16(248), 145: uint16(248), - 146: uint16(250), - 147: uint16(250), - 148: uint16(250), - 149: uint16(250), - 150: uint16(190), - 151: uint16(246), - 152: uint16(246), - 153: uint16(267), - 154: uint16(267), - 155: uint16(267), - 156: uint16(267), - 157: uint16(190), - 158: uint16(268), - 159: uint16(268), - 160: uint16(268), - 161: uint16(268), - 162: uint16(190), - 163: uint16(190), - 164: uint16(271), - 165: uint16(271), - 166: uint16(271), - 167: uint16(271), - 168: uint16(271), - 169: uint16(271), - 170: uint16(272), - 171: uint16(269), - 172: uint16(269), - 173: uint16(270), - 174: uint16(270), - 175: uint16(263), - 176: uint16(263), - 177: uint16(217), - 178: uint16(217), - 179: uint16(217), - 180: uint16(217), - 181: uint16(216), - 182: uint16(216), - 183: uint16(216), + 146: uint16(249), + 147: uint16(249), + 148: uint16(251), + 149: uint16(251), + 150: uint16(251), + 151: uint16(251), + 152: uint16(191), + 153: uint16(247), + 154: uint16(247), + 155: uint16(269), + 156: uint16(269), + 157: uint16(269), + 158: uint16(269), + 159: uint16(191), + 160: uint16(270), + 161: uint16(270), + 162: uint16(270), + 163: uint16(270), + 164: uint16(191), + 165: uint16(191), + 166: uint16(273), + 167: uint16(273), + 168: uint16(273), + 169: uint16(273), + 170: uint16(273), + 171: uint16(273), + 172: uint16(274), + 173: uint16(271), + 174: uint16(271), + 175: uint16(272), + 176: uint16(272), + 177: uint16(265), + 178: uint16(265), + 179: uint16(218), + 180: uint16(218), + 181: uint16(218), + 182: uint16(218), + 183: uint16(217), 184: uint16(217), 185: uint16(217), - 186: uint16(217), - 187: uint16(217), - 188: uint16(217), - 189: uint16(217), - 190: uint16(217), - 191: uint16(217), - 192: uint16(217), - 193: uint16(216), - 194: uint16(217), + 186: uint16(218), + 187: uint16(218), + 188: uint16(218), + 189: uint16(218), + 190: uint16(218), + 191: uint16(218), + 192: uint16(218), + 193: uint16(218), + 194: uint16(218), 195: uint16(217), - 196: uint16(217), - 197: uint16(217), - 198: uint16(217), - 199: uint16(217), - 200: uint16(217), - 201: uint16(217), - 202: uint16(217), - 203: uint16(274), - 204: uint16(217), - 205: uint16(217), - 206: uint16(217), - 207: uint16(217), - 208: uint16(217), - 209: uint16(217), - 210: uint16(217), - 211: uint16(217), - 212: uint16(217), - 213: uint16(217), - 214: uint16(217), - 215: uint16(217), - 216: uint16(275), - 217: uint16(275), - 218: uint16(217), - 219: uint16(276), - 220: uint16(276), - 221: uint16(217), - 222: uint16(217), - 223: uint16(217), - 224: uint16(217), - 225: uint16(217), - 226: uint16(217), - 227: uint16(279), - 228: uint16(279), - 229: uint16(280), - 230: uint16(280), - 231: uint16(278), - 232: uint16(261), - 233: uint16(253), - 234: uint16(253), - 235: uint16(277), - 236: uint16(277), - 237: uint16(190), - 238: uint16(281), - 239: uint16(281), - 240: uint16(221), - 241: uint16(221), - 242: uint16(232), - 243: uint16(232), - 244: uint16(282), - 245: uint16(282), - 246: uint16(190), - 247: uint16(190), - 248: uint16(190), - 249: uint16(283), - 250: uint16(283), - 251: uint16(190), - 252: uint16(190), - 253: uint16(190), - 254: uint16(190), - 255: uint16(190), - 256: uint16(211), - 257: uint16(212), - 258: uint16(190), - 259: uint16(285), - 260: uint16(287), + 196: uint16(218), + 197: uint16(218), + 198: uint16(218), + 199: uint16(218), + 200: uint16(218), + 201: uint16(218), + 202: uint16(218), + 203: uint16(218), + 204: uint16(218), + 205: uint16(276), + 206: uint16(218), + 207: uint16(218), + 208: uint16(218), + 209: uint16(218), + 210: uint16(218), + 211: uint16(218), + 212: uint16(218), + 213: uint16(218), + 214: uint16(218), + 215: uint16(218), + 216: uint16(218), + 217: uint16(218), + 218: uint16(277), + 219: uint16(277), + 220: uint16(218), + 221: uint16(278), + 222: uint16(278), + 223: uint16(218), + 224: uint16(218), + 225: uint16(218), + 226: uint16(218), + 227: uint16(218), + 228: uint16(218), + 229: uint16(281), + 230: uint16(281), + 231: uint16(282), + 232: uint16(282), + 233: uint16(280), + 234: uint16(263), + 235: uint16(254), + 236: uint16(254), + 237: uint16(279), + 238: uint16(279), + 239: uint16(191), + 240: uint16(283), + 241: uint16(283), + 242: uint16(222), + 243: uint16(222), + 244: uint16(233), + 245: uint16(233), + 246: uint16(284), + 247: uint16(284), + 248: uint16(191), + 249: uint16(191), + 250: uint16(191), + 251: uint16(285), + 252: uint16(285), + 253: uint16(191), + 254: uint16(191), + 255: uint16(191), + 256: uint16(191), + 257: uint16(191), + 258: uint16(212), + 259: uint16(213), + 260: uint16(191), 261: uint16(287), - 262: uint16(287), - 263: uint16(288), - 264: uint16(288), - 265: uint16(288), + 262: uint16(289), + 263: uint16(289), + 264: uint16(289), + 265: uint16(290), 266: uint16(290), 267: uint16(290), - 268: uint16(286), - 269: uint16(286), - 270: uint16(292), - 271: uint16(293), - 272: uint16(293), - 273: uint16(291), - 274: uint16(291), - 275: uint16(291), - 276: uint16(291), - 277: uint16(217), - 278: uint16(217), - 279: uint16(236), - 280: uint16(236), - 281: uint16(236), - 282: uint16(190), - 283: uint16(190), - 284: uint16(190), - 285: uint16(295), - 286: uint16(295), - 287: uint16(190), - 288: uint16(190), - 289: uint16(190), - 290: uint16(190), - 291: uint16(190), - 292: uint16(190), - 293: uint16(190), - 294: uint16(296), - 295: uint16(190), - 296: uint16(190), - 297: uint16(190), - 298: uint16(298), - 299: uint16(300), - 300: uint16(301), - 301: uint16(301), - 302: uint16(302), - 303: uint16(266), - 304: uint16(266), - 305: uint16(305), - 306: uint16(305), - 307: uint16(305), - 308: uint16(304), - 309: uint16(241), - 310: uint16(241), - 311: uint16(306), - 312: uint16(307), - 313: uint16(308), - 314: uint16(308), - 315: uint16(308), - 316: uint16(308), - 317: uint16(308), - 318: uint16(309), - 319: uint16(309), - 320: uint16(309), - 321: uint16(313), - 322: uint16(315), - 323: uint16(315), + 268: uint16(292), + 269: uint16(292), + 270: uint16(288), + 271: uint16(288), + 272: uint16(294), + 273: uint16(295), + 274: uint16(295), + 275: uint16(293), + 276: uint16(293), + 277: uint16(293), + 278: uint16(293), + 279: uint16(218), + 280: uint16(218), + 281: uint16(237), + 282: uint16(237), + 283: uint16(237), + 284: uint16(191), + 285: uint16(191), + 286: uint16(191), + 287: uint16(297), + 288: uint16(297), + 289: uint16(191), + 290: uint16(191), + 291: uint16(191), + 292: uint16(191), + 293: uint16(191), + 294: uint16(191), + 295: uint16(191), + 296: uint16(298), + 297: uint16(191), + 298: uint16(191), + 299: uint16(191), + 300: uint16(300), + 301: uint16(302), + 302: uint16(303), + 303: uint16(303), + 304: uint16(304), + 305: uint16(268), + 306: uint16(268), + 307: uint16(307), + 308: uint16(307), + 309: uint16(307), + 310: uint16(306), + 311: uint16(308), + 312: uint16(242), + 313: uint16(242), + 314: uint16(309), + 315: uint16(310), + 316: uint16(311), + 317: uint16(311), + 318: uint16(311), + 319: uint16(311), + 320: uint16(311), + 321: uint16(312), + 322: uint16(312), + 323: uint16(312), 324: uint16(316), - 325: uint16(316), - 326: uint16(314), - 327: uint16(314), - 328: uint16(317), + 325: uint16(318), + 326: uint16(318), + 327: uint16(319), + 328: uint16(319), 329: uint16(317), - 330: uint16(318), - 331: uint16(318), - 332: uint16(318), - 333: uint16(251), - 334: uint16(273), - 335: uint16(273), - 336: uint16(273), - 337: uint16(312), - 338: uint16(312), - 339: uint16(311), - 340: uint16(185), - 341: uint16(186), - 342: uint16(186), - 343: uint16(187), - 344: uint16(187), + 330: uint16(317), + 331: uint16(320), + 332: uint16(320), + 333: uint16(321), + 334: uint16(321), + 335: uint16(321), + 336: uint16(252), + 337: uint16(275), + 338: uint16(275), + 339: uint16(275), + 340: uint16(315), + 341: uint16(315), + 342: uint16(314), + 343: uint16(217), + 344: uint16(186), 345: uint16(187), - 346: uint16(192), - 347: uint16(192), - 348: uint16(192), - 349: uint16(194), - 350: uint16(194), - 351: uint16(190), - 352: uint16(203), - 353: uint16(201), - 354: uint16(201), - 355: uint16(193), - 356: uint16(193), - 357: uint16(208), - 358: uint16(209), - 359: uint16(210), - 360: uint16(210), - 361: uint16(207), - 362: uint16(207), - 363: uint16(215), - 364: uint16(215), - 365: uint16(215), - 366: uint16(202), - 367: uint16(228), - 368: uint16(228), - 369: uint16(229), - 370: uint16(233), - 371: uint16(235), - 372: uint16(239), - 373: uint16(240), - 374: uint16(254), - 375: uint16(255), - 376: uint16(264), - 377: uint16(272), - 378: uint16(217), - 379: uint16(274), - 380: uint16(278), - 381: uint16(261), - 382: uint16(284), - 383: uint16(284), - 384: uint16(284), - 385: uint16(284), - 386: uint16(284), - 387: uint16(211), - 388: uint16(289), - 389: uint16(289), - 390: uint16(292), - 391: uint16(293), - 392: uint16(294), - 393: uint16(294), - 394: uint16(297), - 395: uint16(297), - 396: uint16(299), - 397: uint16(299), - 398: uint16(300), - 399: uint16(303), - 400: uint16(303), - 401: uint16(303), - 402: uint16(266), - 403: uint16(306), - 404: uint16(308), + 346: uint16(187), + 347: uint16(188), + 348: uint16(188), + 349: uint16(188), + 350: uint16(193), + 351: uint16(193), + 352: uint16(193), + 353: uint16(195), + 354: uint16(195), + 355: uint16(191), + 356: uint16(204), + 357: uint16(202), + 358: uint16(202), + 359: uint16(194), + 360: uint16(194), + 361: uint16(209), + 362: uint16(210), + 363: uint16(211), + 364: uint16(211), + 365: uint16(208), + 366: uint16(208), + 367: uint16(216), + 368: uint16(216), + 369: uint16(216), + 370: uint16(203), + 371: uint16(229), + 372: uint16(229), + 373: uint16(230), + 374: uint16(234), + 375: uint16(236), + 376: uint16(240), + 377: uint16(241), + 378: uint16(256), + 379: uint16(257), + 380: uint16(266), + 381: uint16(274), + 382: uint16(218), + 383: uint16(276), + 384: uint16(280), + 385: uint16(263), + 386: uint16(286), + 387: uint16(286), + 388: uint16(286), + 389: uint16(286), + 390: uint16(286), + 391: uint16(212), + 392: uint16(291), + 393: uint16(291), + 394: uint16(294), + 395: uint16(295), + 396: uint16(296), + 397: uint16(296), + 398: uint16(299), + 399: uint16(299), + 400: uint16(301), + 401: uint16(301), + 402: uint16(302), + 403: uint16(305), + 404: uint16(305), + 405: uint16(305), + 406: uint16(268), + 407: uint16(309), + 408: uint16(311), } // C documentation // // /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number // ** of symbols on the right-hand side of that rule. */ -var _yyRuleInfoNRhs = [405]int8{ +var _yyRuleInfoNRhs = [409]int8{ 0: int8(-int32(1)), 1: int8(-int32(3)), 2: int8(-int32(1)), @@ -153680,273 +155235,277 @@ var _yyRuleInfoNRhs = [405]int8{ 92: int8(-int32(9)), 93: int8(-int32(10)), 94: int8(-int32(4)), - 95: int8(-int32(5)), - 96: int8(-int32(1)), - 97: int8(-int32(1)), - 100: int8(-int32(5)), - 101: int8(-int32(3)), + 95: int8(-int32(1)), + 96: int8(-int32(5)), + 97: int8(-int32(5)), + 98: int8(-int32(1)), + 99: int8(-int32(1)), 102: int8(-int32(5)), - 103: int8(-int32(2)), - 106: int8(-int32(2)), - 107: int8(-int32(2)), - 109: int8(-int32(5)), - 110: int8(-int32(6)), - 111: int8(-int32(8)), + 103: int8(-int32(3)), + 104: int8(-int32(5)), + 105: int8(-int32(2)), + 108: int8(-int32(2)), + 109: int8(-int32(2)), + 111: int8(-int32(5)), 112: int8(-int32(6)), - 113: int8(-int32(6)), - 115: int8(-int32(2)), - 116: int8(-int32(1)), - 117: int8(-int32(3)), + 113: int8(-int32(8)), + 114: int8(-int32(6)), + 115: int8(-int32(6)), + 117: int8(-int32(2)), 118: int8(-int32(1)), 119: int8(-int32(3)), - 120: int8(-int32(5)), + 120: int8(-int32(1)), 121: int8(-int32(3)), - 122: int8(-int32(1)), - 123: int8(-int32(2)), - 124: int8(-int32(3)), - 125: int8(-int32(4)), - 126: int8(-int32(2)), + 122: int8(-int32(5)), + 123: int8(-int32(3)), + 124: int8(-int32(1)), + 125: int8(-int32(2)), + 126: int8(-int32(3)), 127: int8(-int32(4)), - 130: int8(-int32(3)), - 131: int8(-int32(2)), - 133: int8(-int32(3)), - 134: int8(-int32(5)), + 128: int8(-int32(2)), + 129: int8(-int32(4)), + 132: int8(-int32(3)), + 133: int8(-int32(2)), 135: int8(-int32(3)), - 136: int8(-int32(1)), - 137: int8(-int32(1)), - 139: int8(-int32(2)), - 140: int8(-int32(2)), - 143: int8(-int32(3)), - 145: int8(-int32(2)), + 136: int8(-int32(5)), + 137: int8(-int32(3)), + 138: int8(-int32(1)), + 139: int8(-int32(1)), + 141: int8(-int32(2)), + 142: int8(-int32(2)), + 145: int8(-int32(3)), 147: int8(-int32(2)), - 148: int8(-int32(4)), - 149: int8(-int32(4)), - 150: int8(-int32(6)), - 152: int8(-int32(2)), + 149: int8(-int32(2)), + 150: int8(-int32(4)), + 151: int8(-int32(4)), + 152: int8(-int32(6)), 154: int8(-int32(2)), - 155: int8(-int32(2)), - 156: int8(-int32(4)), - 157: int8(-int32(9)), - 158: int8(-int32(5)), - 159: int8(-int32(7)), - 160: int8(-int32(3)), - 161: int8(-int32(5)), - 162: int8(-int32(7)), - 163: int8(-int32(8)), - 165: int8(-int32(2)), - 166: int8(-int32(12)), - 167: int8(-int32(9)), - 168: int8(-int32(5)), - 169: int8(-int32(8)), - 170: int8(-int32(2)), - 171: int8(-int32(2)), - 172: int8(-int32(1)), - 174: int8(-int32(3)), - 175: int8(-int32(3)), - 176: int8(-int32(1)), + 156: int8(-int32(2)), + 157: int8(-int32(2)), + 158: int8(-int32(4)), + 159: int8(-int32(9)), + 160: int8(-int32(5)), + 161: int8(-int32(7)), + 162: int8(-int32(3)), + 163: int8(-int32(5)), + 164: int8(-int32(7)), + 165: int8(-int32(8)), + 167: int8(-int32(2)), + 168: int8(-int32(12)), + 169: int8(-int32(9)), + 170: int8(-int32(5)), + 171: int8(-int32(8)), + 172: int8(-int32(2)), + 173: int8(-int32(2)), + 174: int8(-int32(1)), + 176: int8(-int32(3)), 177: int8(-int32(3)), 178: int8(-int32(1)), 179: int8(-int32(3)), - 180: int8(-int32(5)), - 181: int8(-int32(1)), - 182: int8(-int32(1)), + 180: int8(-int32(1)), + 181: int8(-int32(3)), + 182: int8(-int32(5)), 183: int8(-int32(1)), 184: int8(-int32(1)), - 185: int8(-int32(3)), - 186: int8(-int32(6)), - 187: int8(-int32(5)), - 188: int8(-int32(8)), - 189: int8(-int32(4)), - 190: int8(-int32(6)), - 191: int8(-int32(9)), - 192: int8(-int32(5)), - 193: int8(-int32(1)), + 185: int8(-int32(1)), + 186: int8(-int32(1)), + 187: int8(-int32(3)), + 188: int8(-int32(6)), + 189: int8(-int32(5)), + 190: int8(-int32(8)), + 191: int8(-int32(4)), + 192: int8(-int32(6)), + 193: int8(-int32(9)), 194: int8(-int32(5)), - 195: int8(-int32(3)), - 196: int8(-int32(3)), + 195: int8(-int32(1)), + 196: int8(-int32(5)), 197: int8(-int32(3)), 198: int8(-int32(3)), 199: int8(-int32(3)), 200: int8(-int32(3)), 201: int8(-int32(3)), 202: int8(-int32(3)), - 203: int8(-int32(2)), + 203: int8(-int32(3)), 204: int8(-int32(3)), - 205: int8(-int32(5)), - 206: int8(-int32(2)), - 207: int8(-int32(3)), - 208: int8(-int32(3)), - 209: int8(-int32(4)), - 210: int8(-int32(6)), - 211: int8(-int32(5)), - 212: int8(-int32(2)), - 213: int8(-int32(2)), + 205: int8(-int32(2)), + 206: int8(-int32(3)), + 207: int8(-int32(5)), + 208: int8(-int32(2)), + 209: int8(-int32(3)), + 210: int8(-int32(3)), + 211: int8(-int32(4)), + 212: int8(-int32(6)), + 213: int8(-int32(5)), 214: int8(-int32(2)), - 215: int8(-int32(3)), - 216: int8(-int32(1)), - 217: int8(-int32(2)), - 218: int8(-int32(5)), - 219: int8(-int32(1)), - 220: int8(-int32(2)), - 221: int8(-int32(5)), - 222: int8(-int32(3)), + 215: int8(-int32(2)), + 216: int8(-int32(2)), + 217: int8(-int32(3)), + 218: int8(-int32(1)), + 219: int8(-int32(2)), + 220: int8(-int32(5)), + 221: int8(-int32(1)), + 222: int8(-int32(2)), 223: int8(-int32(5)), - 224: int8(-int32(5)), - 225: int8(-int32(4)), + 224: int8(-int32(3)), + 225: int8(-int32(5)), 226: int8(-int32(5)), - 227: int8(-int32(5)), - 228: int8(-int32(4)), - 229: int8(-int32(2)), - 233: int8(-int32(3)), - 234: int8(-int32(1)), - 236: int8(-int32(3)), - 237: int8(-int32(12)), - 238: int8(-int32(1)), - 241: int8(-int32(3)), - 242: int8(-int32(5)), + 227: int8(-int32(4)), + 228: int8(-int32(5)), + 229: int8(-int32(5)), + 230: int8(-int32(4)), + 231: int8(-int32(2)), + 235: int8(-int32(3)), + 236: int8(-int32(1)), + 238: int8(-int32(3)), + 239: int8(-int32(12)), + 240: int8(-int32(1)), 243: int8(-int32(3)), - 245: int8(-int32(2)), - 246: int8(-int32(4)), + 244: int8(-int32(5)), + 245: int8(-int32(3)), 247: int8(-int32(2)), - 248: int8(-int32(3)), + 248: int8(-int32(4)), 249: int8(-int32(2)), - 251: int8(-int32(3)), - 252: int8(-int32(5)), - 253: int8(-int32(6)), + 250: int8(-int32(3)), + 251: int8(-int32(2)), + 253: int8(-int32(3)), 254: int8(-int32(5)), 255: int8(-int32(6)), - 256: int8(-int32(2)), - 257: int8(-int32(2)), - 258: int8(-int32(5)), - 259: int8(-int32(11)), - 260: int8(-int32(1)), - 261: int8(-int32(2)), - 263: int8(-int32(1)), - 264: int8(-int32(1)), - 265: int8(-int32(3)), - 267: int8(-int32(2)), - 268: int8(-int32(3)), + 256: int8(-int32(5)), + 257: int8(-int32(6)), + 258: int8(-int32(2)), + 259: int8(-int32(2)), + 260: int8(-int32(5)), + 261: int8(-int32(11)), + 262: int8(-int32(1)), + 263: int8(-int32(2)), + 265: int8(-int32(1)), + 266: int8(-int32(1)), + 267: int8(-int32(3)), 269: int8(-int32(2)), 270: int8(-int32(3)), - 271: int8(-int32(3)), - 272: int8(-int32(2)), - 273: int8(-int32(9)), - 274: int8(-int32(8)), - 275: int8(-int32(6)), - 276: int8(-int32(3)), - 277: int8(-int32(4)), - 278: int8(-int32(6)), - 279: int8(-int32(1)), - 280: int8(-int32(1)), + 271: int8(-int32(2)), + 272: int8(-int32(3)), + 273: int8(-int32(3)), + 274: int8(-int32(2)), + 275: int8(-int32(9)), + 276: int8(-int32(8)), + 277: int8(-int32(6)), + 278: int8(-int32(3)), + 279: int8(-int32(4)), + 280: int8(-int32(6)), 281: int8(-int32(1)), - 282: int8(-int32(4)), - 283: int8(-int32(6)), - 284: int8(-int32(3)), - 286: int8(-int32(2)), - 287: int8(-int32(1)), - 288: int8(-int32(3)), + 282: int8(-int32(1)), + 283: int8(-int32(1)), + 284: int8(-int32(4)), + 285: int8(-int32(6)), + 286: int8(-int32(3)), + 288: int8(-int32(2)), 289: int8(-int32(1)), 290: int8(-int32(3)), - 291: int8(-int32(6)), - 292: int8(-int32(7)), + 291: int8(-int32(1)), + 292: int8(-int32(3)), 293: int8(-int32(6)), - 294: int8(-int32(1)), - 295: int8(-int32(8)), + 294: int8(-int32(7)), + 295: int8(-int32(6)), 296: int8(-int32(1)), - 297: int8(-int32(4)), - 298: int8(-int32(8)), - 300: int8(-int32(1)), - 301: int8(-int32(3)), + 297: int8(-int32(8)), + 298: int8(-int32(1)), + 299: int8(-int32(4)), + 300: int8(-int32(8)), 302: int8(-int32(1)), - 303: int8(-int32(2)), - 304: int8(-int32(3)), - 305: int8(-int32(1)), - 306: int8(-int32(2)), - 307: int8(-int32(3)), - 308: int8(-int32(6)), - 309: int8(-int32(1)), - 310: int8(-int32(3)), - 311: int8(-int32(3)), - 312: int8(-int32(5)), - 313: int8(-int32(5)), - 314: int8(-int32(6)), - 315: int8(-int32(4)), + 303: int8(-int32(3)), + 304: int8(-int32(1)), + 305: int8(-int32(2)), + 306: int8(-int32(3)), + 307: int8(-int32(1)), + 308: int8(-int32(2)), + 309: int8(-int32(3)), + 310: int8(-int32(6)), + 311: int8(-int32(1)), + 312: int8(-int32(1)), + 313: int8(-int32(3)), + 314: int8(-int32(3)), + 315: int8(-int32(5)), 316: int8(-int32(5)), - 317: int8(-int32(2)), - 319: int8(-int32(3)), - 320: int8(-int32(6)), - 321: int8(-int32(1)), - 322: int8(-int32(1)), - 323: int8(-int32(2)), + 317: int8(-int32(6)), + 318: int8(-int32(4)), + 319: int8(-int32(5)), + 320: int8(-int32(2)), + 322: int8(-int32(3)), + 323: int8(-int32(6)), 324: int8(-int32(1)), - 325: int8(-int32(2)), + 325: int8(-int32(1)), 326: int8(-int32(2)), - 327: int8(-int32(2)), + 327: int8(-int32(1)), + 328: int8(-int32(2)), 329: int8(-int32(2)), 330: int8(-int32(2)), - 331: int8(-int32(2)), - 332: int8(-int32(1)), + 332: int8(-int32(2)), 333: int8(-int32(2)), 334: int8(-int32(2)), 335: int8(-int32(1)), - 336: int8(-int32(1)), - 337: int8(-int32(4)), - 338: int8(-int32(2)), - 339: int8(-int32(5)), - 340: int8(-int32(1)), + 336: int8(-int32(2)), + 337: int8(-int32(2)), + 338: int8(-int32(1)), + 339: int8(-int32(1)), + 340: int8(-int32(4)), 341: int8(-int32(2)), - 342: int8(-int32(1)), + 342: int8(-int32(5)), 343: int8(-int32(1)), - 344: int8(-int32(2)), - 345: int8(-int32(3)), + 344: int8(-int32(1)), + 345: int8(-int32(2)), + 346: int8(-int32(1)), 347: int8(-int32(1)), 348: int8(-int32(2)), - 349: int8(-int32(1)), - 351: int8(-int32(2)), - 352: int8(-int32(1)), - 353: int8(-int32(4)), - 354: int8(-int32(2)), - 355: int8(-int32(1)), + 349: int8(-int32(3)), + 351: int8(-int32(1)), + 352: int8(-int32(2)), + 353: int8(-int32(1)), + 355: int8(-int32(2)), 356: int8(-int32(1)), - 357: int8(-int32(1)), - 358: int8(-int32(1)), + 357: int8(-int32(4)), + 358: int8(-int32(2)), 359: int8(-int32(1)), 360: int8(-int32(1)), - 361: int8(-int32(2)), - 363: int8(-int32(2)), - 364: int8(-int32(4)), + 361: int8(-int32(1)), + 362: int8(-int32(1)), + 363: int8(-int32(1)), + 364: int8(-int32(1)), 365: int8(-int32(2)), - 366: int8(-int32(2)), - 367: int8(-int32(3)), - 368: int8(-int32(1)), - 370: int8(-int32(1)), - 371: int8(-int32(1)), + 367: int8(-int32(2)), + 368: int8(-int32(4)), + 369: int8(-int32(2)), + 370: int8(-int32(2)), + 371: int8(-int32(3)), 372: int8(-int32(1)), - 373: int8(-int32(1)), - 374: int8(-int32(2)), + 374: int8(-int32(1)), 375: int8(-int32(1)), 376: int8(-int32(1)), - 378: int8(-int32(1)), + 377: int8(-int32(1)), + 378: int8(-int32(2)), 379: int8(-int32(1)), 380: int8(-int32(1)), - 381: int8(-int32(1)), 382: int8(-int32(1)), 383: int8(-int32(1)), 384: int8(-int32(1)), 385: int8(-int32(1)), 386: int8(-int32(1)), 387: int8(-int32(1)), - 389: int8(-int32(3)), + 388: int8(-int32(1)), + 389: int8(-int32(1)), 390: int8(-int32(1)), - 392: int8(-int32(1)), - 395: int8(-int32(1)), + 391: int8(-int32(1)), + 393: int8(-int32(3)), + 394: int8(-int32(1)), 396: int8(-int32(1)), - 397: int8(-int32(3)), - 398: int8(-int32(2)), - 400: int8(-int32(4)), - 401: int8(-int32(2)), - 403: int8(-int32(1)), - 404: int8(-int32(1)), + 399: int8(-int32(1)), + 400: int8(-int32(1)), + 401: int8(-int32(3)), + 402: int8(-int32(2)), + 404: int8(-int32(4)), + 405: int8(-int32(2)), + 407: int8(-int32(1)), + 408: int8(-int32(1)), } // C documentation @@ -153964,18 +155523,19 @@ var _yyRuleInfoNRhs = [405]int8{ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int32, yyLookaheadToken TToken, pParse uintptr) (r uint16) { bp := tls.Alloc(144) defer tls.Free(144) - var bNot, bNot1, nExpr, yygoto, yysize, v344 int32 + var bNot, bNot1, nExpr, yygoto, yysize int32 var n Tu32 - var p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v343, v345, v346, v347, v348 uintptr + var op Tu8 + var p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v347, v348, v349, v350, v351 uintptr var yyact uint16 - var v349 TToken + var v352 TToken var _ /* all at bp+104 */ TToken var _ /* as at bp+72 */ TToken var _ /* dest at bp+16 */ TSelectDest var _ /* t at bp+88 */ TToken var _ /* x at bp+56 */ TToken var _ /* yylhsminor at bp+0 */ TYYMINORTYPE - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v343, v344, v345, v346, v347, v348, v349 /* Amount to pop the stack */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, op, p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v347, v348, v349, v350, v351, v352 /* Amount to pop the stack */ _ = yyLookahead _ = yyLookaheadToken yymsp = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos @@ -153996,7 +155556,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _7 case uint32(7): goto _8 - case uint32(321): + case uint32(324): goto _9 case uint32(9): goto _10 @@ -154024,9 +155584,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _21 case uint32(81): goto _22 - case uint32(98): + case uint32(100): goto _23 - case uint32(244): + case uint32(246): goto _24 case uint32(16): goto _25 @@ -154050,7 +155610,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _34 case uint32(26): goto _35 - case uint32(104): + case uint32(106): goto _36 case uint32(27): goto _37 @@ -154124,17 +155684,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _71 case uint32(61): goto _72 - case uint32(171): + case uint32(173): goto _73 case uint32(80): goto _74 case uint32(63): goto _75 - case uint32(217): + case uint32(219): goto _76 - case uint32(220): + case uint32(222): goto _77 - case uint32(245): + case uint32(247): goto _78 case uint32(64): goto _79 @@ -154156,7 +155716,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _87 case uint32(77): goto _88 - case uint32(172): + case uint32(174): goto _89 case uint32(78): goto _90 @@ -154190,47 +155750,47 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _104 case uint32(95): goto _105 - case uint32(96): - goto _106 case uint32(97): + goto _106 + case uint32(96): goto _107 - case uint32(132): + case uint32(98): goto _108 case uint32(99): goto _109 - case uint32(142): + case uint32(134): goto _110 - case uint32(232): + case uint32(101): goto _111 - case uint32(235): + case uint32(144): goto _112 - case uint32(240): + case uint32(234): goto _113 - case uint32(100): + case uint32(237): goto _114 - case uint32(101): + case uint32(242): goto _115 case uint32(102): goto _116 - case uint32(115): - goto _117 case uint32(103): + goto _117 + case uint32(104): goto _118 - case uint32(256): + case uint32(117): goto _119 - case uint32(257): + case uint32(105): goto _120 - case uint32(108): + case uint32(258): goto _121 - case uint32(105): + case uint32(259): goto _122 - case uint32(106): + case uint32(110): goto _123 case uint32(107): goto _124 - case uint32(109): + case uint32(108): goto _125 - case uint32(110): + case uint32(109): goto _126 case uint32(111): goto _127 @@ -154238,13 +155798,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _128 case uint32(113): goto _129 - case uint32(129): - goto _130 case uint32(114): + goto _130 + case uint32(115): goto _131 - case uint32(116): + case uint32(131): goto _132 - case uint32(117): + case uint32(116): goto _133 case uint32(118): goto _134 @@ -154268,15 +155828,15 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _143 case uint32(128): goto _144 - case uint32(130): + case uint32(129): goto _145 - case uint32(131): + case uint32(130): goto _146 - case uint32(143): + case uint32(132): goto _147 case uint32(133): goto _148 - case uint32(134): + case uint32(145): goto _149 case uint32(135): goto _150 @@ -154284,49 +155844,49 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _151 case uint32(137): goto _152 - case uint32(141): - goto _153 case uint32(138): - goto _154 + goto _153 case uint32(139): + goto _154 + case uint32(143): goto _155 case uint32(140): goto _156 - case uint32(146): + case uint32(141): goto _157 - case uint32(144): + case uint32(142): goto _158 - case uint32(151): + case uint32(148): goto _159 - case uint32(153): + case uint32(146): goto _160 - case uint32(230): + case uint32(153): goto _161 - case uint32(231): + case uint32(155): goto _162 - case uint32(250): + case uint32(232): goto _163 - case uint32(152): + case uint32(233): goto _164 - case uint32(145): + case uint32(252): goto _165 case uint32(154): goto _166 - case uint32(229): + case uint32(147): goto _167 - case uint32(249): + case uint32(156): goto _168 - case uint32(147): + case uint32(231): goto _169 - case uint32(148): + case uint32(251): goto _170 case uint32(149): goto _171 case uint32(150): goto _172 - case uint32(155): + case uint32(151): goto _173 - case uint32(156): + case uint32(152): goto _174 case uint32(157): goto _175 @@ -154356,9 +155916,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _187 case uint32(170): goto _188 - case uint32(173): + case uint32(171): goto _189 - case uint32(174): + case uint32(172): goto _190 case uint32(175): goto _191 @@ -154372,13 +155932,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _195 case uint32(180): goto _196 - case uint32(182): - goto _197 case uint32(181): + goto _197 + case uint32(182): goto _198 - case uint32(183): - goto _199 case uint32(184): + goto _199 + case uint32(183): goto _200 case uint32(185): goto _201 @@ -154402,13 +155962,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _210 case uint32(195): goto _211 - case uint32(197): - goto _212 case uint32(196): + goto _212 + case uint32(197): goto _213 - case uint32(198): - goto _214 case uint32(199): + goto _214 + case uint32(198): goto _215 case uint32(200): goto _216 @@ -154434,23 +155994,23 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _226 case uint32(211): goto _227 - case uint32(213): - goto _228 case uint32(212): + goto _228 + case uint32(213): goto _229 - case uint32(214): - goto _230 case uint32(215): + goto _230 + case uint32(214): goto _231 - case uint32(219): - goto _232 case uint32(216): + goto _232 + case uint32(217): goto _233 - case uint32(218): - goto _234 case uint32(221): + goto _234 + case uint32(218): goto _235 - case uint32(222): + case uint32(220): goto _236 case uint32(223): goto _237 @@ -154464,35 +156024,35 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _241 case uint32(228): goto _242 - case uint32(233): + case uint32(229): goto _243 - case uint32(234): + case uint32(230): goto _244 - case uint32(241): + case uint32(235): goto _245 case uint32(236): goto _246 - case uint32(237): + case uint32(243): goto _247 - case uint32(280): - goto _248 case uint32(238): - goto _249 + goto _248 case uint32(239): + goto _249 + case uint32(282): goto _250 - case uint32(242): + case uint32(240): goto _251 - case uint32(243): + case uint32(241): goto _252 - case uint32(246): + case uint32(244): goto _253 - case uint32(247): + case uint32(245): goto _254 case uint32(248): goto _255 - case uint32(251): + case uint32(249): goto _256 - case uint32(252): + case uint32(250): goto _257 case uint32(253): goto _258 @@ -154500,9 +156060,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _259 case uint32(255): goto _260 - case uint32(258): + case uint32(256): goto _261 - case uint32(259): + case uint32(257): goto _262 case uint32(260): goto _263 @@ -154510,21 +156070,21 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _264 case uint32(262): goto _265 - case uint32(264): - goto _266 case uint32(263): + goto _266 + case uint32(264): goto _267 - case uint32(265): + case uint32(266): goto _268 - case uint32(285): + case uint32(265): goto _269 - case uint32(266): + case uint32(267): goto _270 - case uint32(286): + case uint32(287): goto _271 - case uint32(267): - goto _272 case uint32(268): + goto _272 + case uint32(288): goto _273 case uint32(269): goto _274 @@ -154548,17 +156108,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _283 case uint32(279): goto _284 - case uint32(281): + case uint32(280): goto _285 - case uint32(282): + case uint32(281): goto _286 case uint32(283): goto _287 case uint32(284): goto _288 - case uint32(287): + case uint32(285): goto _289 - case uint32(288): + case uint32(286): goto _290 case uint32(289): goto _291 @@ -154582,19 +156142,19 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _300 case uint32(299): goto _301 - case uint32(301): - goto _302 case uint32(300): + goto _302 + case uint32(301): goto _303 - case uint32(302): + case uint32(303): goto _304 - case uint32(304): + case uint32(302): goto _305 - case uint32(303): + case uint32(304): goto _306 - case uint32(305): - goto _307 case uint32(306): + goto _307 + case uint32(305): goto _308 case uint32(307): goto _309 @@ -154624,31 +156184,31 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _321 case uint32(320): goto _322 - case uint32(324): + case uint32(321): goto _323 case uint32(322): goto _324 - case uint32(325): - goto _325 case uint32(323): - goto _326 + goto _325 case uint32(327): + goto _326 + case uint32(325): goto _327 - case uint32(326): - goto _328 case uint32(328): + goto _328 + case uint32(326): goto _329 - case uint32(329): + case uint32(330): goto _330 - case uint32(331): + case uint32(329): goto _331 - case uint32(330): + case uint32(331): goto _332 case uint32(332): goto _333 - case uint32(333): - goto _334 case uint32(334): + goto _334 + case uint32(333): goto _335 case uint32(335): goto _336 @@ -154660,34 +156220,42 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _339 case uint32(339): goto _340 - default: + case uint32(340): goto _341 + case uint32(341): + goto _342 + case uint32(342): + goto _343 + case uint32(343): + goto _344 + default: + goto _345 } - goto _342 + goto _346 _1: ; /* explain ::= EXPLAIN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(1) } - goto _342 + goto _346 _2: ; /* explain ::= EXPLAIN QUERY PLAN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(2) } - goto _342 + goto _346 _3: ; /* cmdx ::= cmd */ _sqlite3FinishCoding(tls, pParse) - goto _342 + goto _346 _4: ; /* cmd ::= BEGIN transtype trans_opt */ _sqlite3BeginTransaction(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _5: ; /* transtype ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_DEFERRED) - goto _342 + goto _346 _7: ; /* transtype ::= DEFERRED */ _6: @@ -154697,33 +156265,33 @@ _8: _9: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 + goto _346 _11: ; /* cmd ::= COMMIT|END trans_opt */ _10: ; _sqlite3EndTransaction(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor)) - goto _342 + goto _346 _12: ; /* cmd ::= SAVEPOINT nm */ _sqlite3Savepoint(tls, pParse, SAVEPOINT_BEGIN, yymsp+8) - goto _342 + goto _346 _13: ; /* cmd ::= RELEASE savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_RELEASE), yymsp+8) - goto _342 + goto _346 _14: ; /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_ROLLBACK), yymsp+8) - goto _342 + goto _346 _15: ; /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ _sqlite3StartTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), 0, 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _16: ; /* createkw ::= CREATE */ _disableLookaside(tls, pParse) - goto _342 + goto _346 _18: ; /* ifnotexists ::= */ _17: @@ -154741,56 +156309,56 @@ _23: _24: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = 0 - goto _342 + goto _346 _25: ; /* ifnotexists ::= IF NOT EXISTS */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(1) - goto _342 + goto _346 _26: ; /* temp ::= TEMP */ *(*int32)(unsafe.Pointer(yymsp + 8)) = libc.BoolInt32(int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0) - goto _342 + goto _346 _27: ; /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ _sqlite3EndTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*Tu32)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 + goto _346 _28: ; /* create_table_args ::= AS select */ _sqlite3EndTable(tls, pParse, uintptr(0), uintptr(0), uint32(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _29: ; /* table_option_set ::= */ *(*Tu32)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint32(0) - goto _342 + goto _346 _30: ; /* table_option_set ::= table_option_set COMMA table_option */ *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) | *(*Tu32)(unsafe.Pointer(yymsp + 8)) *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _31: ; /* table_option ::= WITHOUT nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16696, int32(5)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16783, int32(5)) == 0 { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) } else { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23360, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23483, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } - goto _342 + goto _346 _32: ; /* table_option ::= nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16609, int32(6)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16696, int32(6)) == 0 { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(TF_Strict) } else { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23360, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23483, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } *(*Tu32)(unsafe.Pointer(yymsp + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _33: ; /* columnname ::= nm typetoken */ _sqlite3AddColumn(tls, pParse, *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*TToken)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _35: ; /* typetoken ::= */ _34: @@ -154799,50 +156367,50 @@ _36: ; *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 + goto _346 _37: ; /* typetoken ::= typename LP signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) - goto _342 + goto _346 _38: ; /* typetoken ::= typename LP signed COMMA signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))))) - goto _342 + goto _346 _39: ; /* typename ::= typename ID|STRING */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) + uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) - goto _342 + goto _346 _40: ; /* scanpt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken.Fz - goto _342 + goto _346 _41: ; /* scantok ::= */ *(*TToken)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken - goto _342 + goto _346 _43: ; /* ccons ::= CONSTRAINT nm */ _42: ; (*TParse)(unsafe.Pointer(pParse)).FconstraintName = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _44: ; /* ccons ::= DEFAULT scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _45: ; /* ccons ::= DEFAULT LP expr RP */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))+uintptr(1), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _46: ; /* ccons ::= DEFAULT PLUS scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _47: ; /* ccons ::= DEFAULT MINUS scantok term */ p = _sqlite3PExpr(tls, pParse, int32(TK_UMINUS), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) _sqlite3AddDefaultValue(tls, pParse, p, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _48: ; /* ccons ::= DEFAULT scantok ID|INDEXED */ p1 = _tokenExpr(tls, pParse, int32(TK_STRING), *(*TToken)(unsafe.Pointer(yymsp + 8))) @@ -154850,99 +156418,99 @@ _48: _sqlite3ExprIdToTrueFalse(tls, p1) } _sqlite3AddDefaultValue(tls, pParse, p1, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - goto _342 + goto _346 _49: ; /* ccons ::= NOT NULL onconf */ _sqlite3AddNotNull(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _50: ; /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ _sqlite3AddPrimaryKey(tls, pParse, uintptr(0), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _51: ; /* ccons ::= UNIQUE onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _52: ; /* ccons ::= CHECK LP expr RP */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _53: ; /* ccons ::= REFERENCES nm eidlist_opt refargs */ _sqlite3CreateForeignKey(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _54: ; /* ccons ::= defer_subclause */ _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _55: ; /* ccons ::= COLLATE ID|STRING */ _sqlite3AddCollateType(tls, pParse, yymsp+8) - goto _342 + goto _346 _56: ; /* generated ::= LP expr RP */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 + goto _346 _57: ; /* generated ::= LP expr RP ID */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 + goto _346 _58: ; /* autoinc ::= AUTOINCR */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(1) - goto _342 + goto _346 _59: ; /* refargs ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = libc.Int32FromInt32(OE_None) * libc.Int32FromInt32(0x0101) /* EV: R-19803-45884 */ - goto _342 + goto _346 _60: ; /* refargs ::= refargs refarg */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) & ^*(*int32)(unsafe.Pointer(yymsp + 8 + 4)) | *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _61: ; /* refarg ::= MATCH nm */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _62: ; /* refarg ::= ON INSERT refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _63: ; /* refarg ::= ON DELETE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x0000ff) - goto _342 + goto _346 _64: ; /* refarg ::= ON UPDATE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) << int32(8) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x00ff00) - goto _342 + goto _346 _65: ; /* refact ::= SET NULL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetNull) /* EV: R-33326-45252 */ - goto _342 + goto _346 _66: ; /* refact ::= SET DEFAULT */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetDflt) /* EV: R-33326-45252 */ - goto _342 + goto _346 _67: ; /* refact ::= CASCADE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Cascade) /* EV: R-33326-45252 */ - goto _342 + goto _346 _68: ; /* refact ::= RESTRICT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Restrict) /* EV: R-33326-45252 */ - goto _342 + goto _346 _69: ; /* refact ::= NO ACTION */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = OE_None /* EV: R-33326-45252 */ - goto _342 + goto _346 _70: ; /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 - goto _342 + goto _346 _72: ; /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ _71: @@ -154950,7 +156518,7 @@ _71: _73: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _75: ; /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ _74: @@ -154962,64 +156530,64 @@ _77: _78: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(1) - goto _342 + goto _346 _79: ; /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 - goto _342 + goto _346 _80: ; /* tconscomma ::= COMMA */ (*TParse)(unsafe.Pointer(pParse)).FconstraintName.Fn = uint32(0) - goto _342 + goto _346 _81: ; /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ _sqlite3AddPrimaryKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), 0) - goto _342 + goto _346 _82: ; /* tcons ::= UNIQUE LP sortlist RP onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _83: ; /* tcons ::= CHECK LP expr RP onconf */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _84: ; /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ _sqlite3CreateForeignKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _86: ; /* onconf ::= */ _85: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(OE_Default) - goto _342 + goto _346 _87: ; /* onconf ::= ON CONFLICT resolvetype */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _88: ; /* resolvetype ::= IGNORE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Ignore) - goto _342 + goto _346 _90: ; /* resolvetype ::= REPLACE */ _89: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Replace) - goto _342 + goto _346 _91: ; /* cmd ::= DROP TABLE ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _92: ; /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ _sqlite3CreateView(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) - goto _342 + goto _346 _93: ; /* cmd ::= DROP VIEW ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), int32(1), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _94: ; /* cmd ::= select */ *(*TSelectDest)(unsafe.Pointer(bp + 16)) = TSelectDest{ @@ -155027,22 +156595,22 @@ _94: } _sqlite3Select(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), bp+16) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _95: ; /* select ::= WITH wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _96: ; /* select ::= WITH RECURSIVE wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _97: ; /* select ::= selectnowith */ p2 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) if p2 != 0 { _parserDoubleLinkSelect(tls, pParse, p2) } - goto _342 + goto _346 _98: ; /* selectnowith ::= selectnowith multiselect_op oneselect */ pRhs = *(*uintptr)(unsafe.Pointer(yymsp + 8)) @@ -155067,21 +156635,21 @@ _98: _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pLhs) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = pRhs - goto _342 + goto _346 _100: ; /* multiselect_op ::= UNION */ _99: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-OP*/ - goto _342 + goto _346 _101: ; /* multiselect_op ::= UNION ALL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_ALL) - goto _342 + goto _346 _102: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _103: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(9))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -155090,116 +156658,111 @@ _103: } else { _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) } - goto _342 + goto _346 _104: ; /* values ::= VALUES LP nexprlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) - goto _342 + goto _346 _105: - ; /* values ::= values COMMA LP nexprlist RP */ - pLeft = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) - pRight = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(libc.Int32FromInt32(SF_Values)|libc.Int32FromInt32(SF_MultiValue)), uintptr(0)) - if pLeft != 0 { - *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) - } - if pRight != 0 { - (*TSelect)(unsafe.Pointer(pRight)).Fop = uint8(TK_ALL) - (*TSelect)(unsafe.Pointer(pRight)).FpPrior = pLeft - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pRight - } else { - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pLeft - } - goto _342 + ; /* oneselect ::= mvalues */ + _sqlite3MultiValuesEnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_107: + ; /* mvalues ::= values COMMA LP nexprlist RP */ _106: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3MultiValues(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_108: ; /* distinct ::= DISTINCT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_Distinct) - goto _342 -_107: + goto _346 +_109: ; /* distinct ::= ALL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_All) - goto _342 -_109: + goto _346 +_111: ; /* sclp ::= */ -_108: - ; _110: ; -_111: - ; _112: ; _113: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 _114: + ; +_115: + ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 +_116: ; /* selcollist ::= sclp scanpt expr scanpt as */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) > uint32(0) { _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+8, int32(1)) } _sqlite3ExprListSetSpan(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_115: + goto _346 +_117: ; /* selcollist ::= sclp scanpt STAR */ p3 = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_ASTERISK), uintptr(0)) _sqlite3ExprSetErrorOffset(tls, p3, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), p3) - goto _342 -_116: + goto _346 +_118: ; /* selcollist ::= sclp scanpt nm DOT STAR */ - pRight1 = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) - _sqlite3ExprSetErrorOffset(tls, pRight1, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) - pLeft1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft1, pRight1) + pRight = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) + _sqlite3ExprSetErrorOffset(tls, pRight, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) + pLeft = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) + pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft, pRight) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pDot) - goto _342 -_118: + goto _346 +_120: ; /* as ::= AS nm */ -_117: - ; _119: ; -_120: +_121: ; - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 _122: + ; + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) + goto _346 +_124: ; /* from ::= */ -_121: +_123: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_123: + goto _346 +_125: ; /* from ::= FROM seltablist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) _sqlite3SrcListShiftJoinType(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_124: + goto _346 +_126: ; /* stl_prefix ::= seltablist joinop */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 && (*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc > 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8 + uintptr((*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc-int32(1))*104))).Ffg.Fjointype = uint8(*(*int32)(unsafe.Pointer(yymsp + 8))) } - goto _342 -_125: + goto _346 +_127: ; /* seltablist ::= stl_prefix nm dbnm as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) - goto _342 -_126: + goto _346 +_128: ; /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_127: + goto _346 +_129: ; /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListFuncArgs(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) - goto _342 -_128: + goto _346 +_130: ; /* seltablist ::= stl_prefix LP select RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_129: + goto _346 +_131: ; /* seltablist ::= stl_prefix LP seltablist RP as on_using */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) == uintptr(0) && *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) == uint32(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8)) == uintptr(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) @@ -155221,9 +156784,9 @@ _129: libc.SetBitFieldPtr16Uint32(pOld+60+4, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pNew+60+4, libc.Uint32FromInt32(1), 2, 0x4) } - v343 = libc.UintptrFromInt32(0) - (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v343 - (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v343 + v347 = libc.UintptrFromInt32(0) + (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v347 + (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v347 (*TSrcItem)(unsafe.Pointer(pOld)).FpSelect = uintptr(0) } _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) @@ -155233,189 +156796,189 @@ _129: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, pSubquery, yymsp+8) } } - goto _342 -_131: + goto _346 +_133: ; /* dbnm ::= */ -_130: +_132: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) - goto _342 -_132: + goto _346 +_134: ; /* fullname ::= nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_133: + goto _346 +_135: ; /* fullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_134: + goto _346 +_136: ; /* xfullname ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) /*A-overwrites-X*/ - goto _342 -_135: + goto _346 +_137: ; /* xfullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) /*A-overwrites-X*/ - goto _342 -_136: + goto _346 +_138: ; /* xfullname ::= nm DOT nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_137: + goto _346 +_139: ; /* xfullname ::= nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0)) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_138: + goto _346 +_140: ; /* joinop ::= COMMA|JOIN */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(JT_INNER) - goto _342 -_139: + goto _346 +_141: ; /* joinop ::= JOIN_KW JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), uintptr(0)) /*X-overwrites-A*/ - goto _342 -_140: + goto _346 +_142: ; /* joinop ::= JOIN_KW nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0)) /*X-overwrites-A*/ - goto _342 -_141: + goto _346 +_143: ; /* joinop ::= JOIN_KW nm nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) /*X-overwrites-A*/ - goto _342 -_142: + goto _346 +_144: ; /* on_using ::= ON expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uintptr(0) - goto _342 -_143: + goto _346 +_145: ; /* on_using ::= USING LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_144: + goto _346 +_146: ; /* on_using ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uintptr(0) - goto _342 -_145: + goto _346 +_147: ; /* indexed_by ::= INDEXED BY nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 -_146: + goto _346 +_148: ; /* indexed_by ::= NOT INDEXED */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(1) - goto _342 -_148: + goto _346 +_150: ; /* orderby_opt ::= ORDER BY sortlist */ -_147: +_149: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_149: + goto _346 +_151: ; /* sortlist ::= sortlist COMMA expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_150: + goto _346 +_152: ; /* sortlist ::= expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) /*A-overwrites-Y*/ _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_151: + goto _346 +_153: ; /* sortorder ::= ASC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = SQLITE_SO_ASC - goto _342 -_152: + goto _346 +_154: ; /* sortorder ::= DESC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_154: + goto _346 +_156: ; /* sortorder ::= */ -_153: +_155: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = -int32(1) - goto _342 -_155: + goto _346 +_157: ; /* nulls ::= NULLS FIRST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = SQLITE_SO_ASC - goto _342 -_156: + goto _346 +_158: ; /* nulls ::= NULLS LAST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_158: + goto _346 +_160: ; /* having_opt ::= */ -_157: - ; _159: ; -_160: - ; _161: ; _162: ; _163: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_165: - ; /* having_opt ::= HAVING expr */ _164: ; -_166: +_165: ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 _167: + ; /* having_opt ::= HAVING expr */ +_166: ; _168: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 _169: + ; +_170: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + goto _346 +_171: ; /* limit_opt ::= LIMIT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 -_170: + goto _346 +_172: ; /* limit_opt ::= LIMIT expr OFFSET expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_171: + goto _346 +_173: ; /* limit_opt ::= LIMIT expr COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 -_172: + goto _346 +_174: ; /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) _sqlite3DeleteFrom(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0)) - goto _342 -_173: + goto _346 +_175: ; /* where_opt_ret ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) - goto _342 -_174: + goto _346 +_176: ; /* where_opt_ret ::= WHERE expr RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) - goto _342 -_175: + goto _346 +_177: ; /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) - _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23387) + _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23510) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { pFromClause = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) if (*TSrcList)(unsafe.Pointer(pFromClause)).FnSrc > int32(1) { @@ -155427,95 +156990,95 @@ _175: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendList(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), pFromClause) } _sqlite3Update(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_176: + goto _346 +_178: ; /* setlist ::= setlist COMMA nm EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) - goto _342 -_177: + goto _346 +_179: ; /* setlist ::= setlist COMMA LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_178: + goto _346 +_180: ; /* setlist ::= nm EQ expr */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_179: + goto _346 +_181: ; /* setlist ::= LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_180: + goto _346 +_182: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_181: + goto _346 +_183: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0)) - goto _342 -_182: + goto _346 +_184: ; /* upsert ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_183: + goto _346 +_185: ; /* upsert ::= RETURNING selcollist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_184: + goto _346 +_186: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(11))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_185: + goto _346 +_187: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_186: + goto _346 +_188: ; /* upsert ::= ON CONFLICT DO NOTHING returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_187: + goto _346 +_189: ; /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_188: + goto _346 +_190: ; /* returning ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_189: + goto _346 +_191: ; /* idlist_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_190: + goto _346 +_192: ; /* idlist_opt ::= LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_191: + goto _346 +_193: ; /* idlist ::= idlist COMMA nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3IdListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 -_192: + goto _346 +_194: ; /* idlist ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3IdListAppend(tls, pParse, uintptr(0), yymsp+8) /*A-overwrites-Y*/ - goto _342 -_193: + goto _346 +_195: ; /* expr ::= LP expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_194: + goto _346 +_196: ; /* expr ::= ID|INDEXED|JOIN_KW */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_195: + goto _346 +_197: ; /* expr ::= nm DOT nm */ temp1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) temp2 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp1, temp2) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_196: + goto _346 +_198: ; /* expr ::= nm DOT nm DOT nm */ temp11 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) temp21 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) @@ -155526,22 +157089,22 @@ _196: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp11, temp4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_198: + goto _346 +_200: ; /* term ::= NULL|FLOAT|BLOB */ -_197: +_199: ; *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_199: + goto _346 +_201: ; /* term ::= INTEGER */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), yymsp+8, int32(1)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 52)) = int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8))) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_200: + goto _346 +_202: ; /* expr ::= VARIABLE */ if !(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8))))) == int32('#') && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)) + 1))])&int32(0x04) != 0) { n = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) @@ -155553,7 +157116,7 @@ _200: ** in the virtual machine. #N is the N-th register. */ *(*TToken)(unsafe.Pointer(bp + 88)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) /*A-overwrites-X*/ if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23396, libc.VaList(bp+128, bp+88)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23519, libc.VaList(bp+128, bp+88)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = uintptr(0) } else { *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_REGISTER), uintptr(0), uintptr(0)) @@ -155562,57 +157125,57 @@ _200: } } } - goto _342 -_201: + goto _346 +_203: ; /* expr ::= expr COLLATE ID|STRING */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAddCollateToken(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8, int32(1)) - goto _342 -_202: + goto _346 +_204: ; /* expr ::= CAST LP expr AS typetoken RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_CAST), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) _sqlite3ExprAttachSubtrees(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) - goto _342 -_203: + goto _346 +_205: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_204: + goto _346 +_206: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_205: + goto _346 +_207: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_206: + goto _346 +_208: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_207: + goto _346 +_209: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_208: + goto _346 +_210: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, 0) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_209: + goto _346 +_211: ; /* term ::= CTIME_KW */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_210: + goto _346 +_212: ; /* expr ::= LP nexprlist COMMA expr RP */ pList = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_VECTOR), uintptr(0), uintptr(0)) @@ -155624,33 +157187,33 @@ _210: } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) } - goto _342 -_211: + goto _346 +_213: ; /* expr ::= expr AND expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_213: + goto _346 +_215: ; /* expr ::= expr OR expr */ -_212: - ; _214: ; -_215: - ; _216: ; _217: ; _218: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 _219: + ; +_220: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_221: ; /* likeop ::= NOT LIKE_KW|MATCH */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) |= uint32(0x80000000) /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/ - goto _342 -_220: + goto _346 +_222: ; /* expr ::= expr likeop expr */ bNot = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -155663,8 +157226,8 @@ _220: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_221: + goto _346 +_223: ; /* expr ::= expr likeop expr ESCAPE expr */ bNot1 = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -155678,65 +157241,67 @@ _221: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_222: + goto _346 +_224: ; /* expr ::= expr ISNULL|NOTNULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_223: + goto _346 +_225: ; /* expr ::= expr NOT NULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOTNULL), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uintptr(0)) - goto _342 -_224: + goto _346 +_226: ; /* expr ::= expr IS expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_225: + goto _346 +_227: ; /* expr ::= expr IS NOT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_226: + goto _346 +_228: ; /* expr ::= expr IS NOT DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_227: + goto _346 +_229: ; /* expr ::= expr IS DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_229: + goto _346 +_231: ; /* expr ::= NOT expr */ -_228: +_230: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) /*A-overwrites-B*/ - goto _342 -_230: + goto _346 +_232: ; /* expr ::= PLUS|MINUS expr */ - if int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) == int32(TK_PLUS) { - v344 = int32(TK_UPLUS) + p4 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + op = uint8(int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) + (libc.Int32FromInt32(TK_UPLUS) - libc.Int32FromInt32(TK_PLUS))) + if p4 != 0 && int32((*TExpr)(unsafe.Pointer(p4)).Fop) == int32(TK_UPLUS) { + (*TExpr)(unsafe.Pointer(p4)).Fop = op + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = p4 } else { - v344 = int32(TK_UMINUS) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(op), p4, uintptr(0)) + /*A-overwrites-B*/ } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, v344, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - /*A-overwrites-B*/ - goto _342 -_231: + goto _346 +_233: ; /* expr ::= expr PTR expr */ pList3 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList3 = _sqlite3ExprListAppend(tls, pParse, pList3, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, pList3, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_233: + goto _346 +_235: ; /* between_op ::= BETWEEN */ -_232: +_234: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = 0 - goto _342 -_234: + goto _346 +_236: ; /* expr ::= expr between_op expr AND expr */ pList4 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList4 = _sqlite3ExprListAppend(tls, pParse, pList4, *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -155749,8 +157314,8 @@ _234: if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_235: + goto _346 +_237: ; /* expr ::= expr in_op LP exprlist RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) == uintptr(0) { /* Expressions of the form @@ -155763,17 +157328,17 @@ _235: */ _sqlite3ExprUnmapAndDelete(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { - v345 = __ccgo_ts + 7888 + v348 = __ccgo_ts + 8013 } else { - v345 = __ccgo_ts + 7893 + v348 = __ccgo_ts + 8018 } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v345) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v348) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { _sqlite3ExprIdToTrueFalse(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } } else { pRHS = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr - if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { + if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pParse, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr = uintptr(0) _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) pRHS = _sqlite3PExpr(tls, pParse, int32(TK_UPLUS), pRHS, uintptr(0)) @@ -155807,460 +157372,464 @@ _235: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } } - goto _342 -_236: + goto _346 +_238: ; /* expr ::= LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_SELECT), uintptr(0), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_237: + goto _346 +_239: ; /* expr ::= expr in_op LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_238: + goto _346 +_240: ; /* expr ::= expr in_op nm dbnm paren_exprlist */ pSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) pSelect = _sqlite3SelectNew(tls, pParse, uintptr(0), pSrc, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { if pSelect != 0 { - v346 = pSrc + v349 = pSrc } else { - v346 = uintptr(0) + v349 = uintptr(0) } - _sqlite3SrcListFuncArgs(tls, pParse, v346, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + _sqlite3SrcListFuncArgs(tls, pParse, v349, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pSelect) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_239: + goto _346 +_241: ; /* expr ::= EXISTS LP select RP */ - v347 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v347 - p4 = v347 - _sqlite3PExprAddSelect(tls, pParse, p4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_240: + v350 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v350 + p5 = v350 + _sqlite3PExprAddSelect(tls, pParse, p5, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_242: ; /* expr ::= CASE case_operand case_exprlist case_else END */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_CASE), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { - v348 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + v351 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } else { - v348 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + v351 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) } - *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v348 + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v351 _sqlite3ExprSetHeightAndFlags(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } - goto _342 -_241: + goto _346 +_243: ; /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_242: + goto _346 +_244: ; /* case_exprlist ::= WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_243: + goto _346 +_245: ; /* nexprlist ::= nexprlist COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_244: + goto _346 +_246: ; /* nexprlist ::= expr */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_246: + goto _346 +_248: ; /* paren_exprlist ::= LP exprlist RP */ -_245: +_247: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_247: + goto _346 +_249: ; /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ _sqlite3CreateIndex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, uintptr(0)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(11))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8)), SQLITE_SO_ASC, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), uint8(SQLITE_IDXTYPE_APPDEF)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && (*TParse)(unsafe.Pointer(pParse)).FpNewIndex != 0 { _sqlite3RenameTokenMap(tls, pParse, (*TIndex)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpNewIndex)).FzName, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) } - goto _342 -_249: + goto _346 +_251: ; /* uniqueflag ::= UNIQUE */ -_248: +_250: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Abort) - goto _342 -_250: + goto _346 +_252: ; /* uniqueflag ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = OE_None - goto _342 -_251: + goto _346 +_253: ; /* eidlist ::= eidlist COMMA nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_252: + goto _346 +_254: ; /* eidlist ::= nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_253: + goto _346 +_255: ; /* cmd ::= DROP INDEX ifexists fullname */ _sqlite3DropIndex(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_254: + goto _346 +_256: ; /* cmd ::= VACUUM vinto */ _sqlite3Vacuum(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_255: + goto _346 +_257: ; /* cmd ::= VACUUM nm vinto */ _sqlite3Vacuum(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_256: + goto _346 +_258: ; /* cmd ::= PRAGMA nm dbnm */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, uintptr(0), 0) - goto _342 -_257: + goto _346 +_259: ; /* cmd ::= PRAGMA nm dbnm EQ nmnum */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, 0) - goto _342 -_258: + goto _346 +_260: ; /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) - goto _342 -_259: + goto _346 +_261: ; /* cmd ::= PRAGMA nm dbnm EQ minus_num */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, int32(1)) - goto _342 -_260: + goto _346 +_262: ; /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) - goto _342 -_261: + goto _346 +_263: ; /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ (*(*TToken)(unsafe.Pointer(bp + 104))).Fz = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) (*(*TToken)(unsafe.Pointer(bp + 104))).Fn = uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) + *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) _sqlite3FinishTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), bp+104) - goto _342 -_262: + goto _346 +_264: ; /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ _sqlite3BeginTrigger(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8 + 8)) == uint32(0) { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) } else { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) } - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v349 /*A-overwrites-T*/ - goto _342 -_263: + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v352 /*A-overwrites-T*/ + goto _346 +_265: ; /* trigger_time ::= BEFORE|AFTER */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_264: + goto _346 +_266: ; /* trigger_time ::= INSTEAD OF */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_INSTEAD) - goto _342 -_265: + goto _346 +_267: ; /* trigger_time ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_BEFORE) - goto _342 -_267: + goto _346 +_269: ; /* trigger_event ::= DELETE|INSERT */ -_266: +_268: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) = uintptr(0) - goto _342 -_268: + goto _346 +_270: ; /* trigger_event ::= UPDATE OF idlist */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(TK_UPDATE) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_270: + goto _346 +_272: ; /* when_clause ::= */ -_269: +_271: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_272: + goto _346 +_274: ; /* when_clause ::= WHEN expr */ -_271: +_273: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_273: + goto _346 +_275: ; /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ (*TTriggerStep)(unsafe.Pointer((*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast)).FpNext = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_274: + goto _346 +_276: ; /* trigger_cmd_list ::= trigger_cmd SEMI */ (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_275: + goto _346 +_277: ; /* trnm ::= nm DOT nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23420, 0) - goto _342 -_276: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23543, 0) + goto _346 +_278: ; /* tridxby ::= INDEXED BY nm */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23515, 0) - goto _342 -_277: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23638, 0) + goto _346 +_279: ; /* tridxby ::= NOT INDEXED */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23599, 0) - goto _342 -_278: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23722, 0) + goto _346 +_280: ; /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerUpdateStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_279: + goto _346 +_281: ; /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_280: + goto _346 +_282: ; /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerDeleteStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_281: + goto _346 +_283: ; /* trigger_cmd ::= scanpt select scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_282: + goto _346 +_284: ; /* expr ::= RAISE LP IGNORE RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_RAISE), uintptr(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)))).FaffExpr = uint8(OE_Ignore) } - goto _342 -_283: + goto _346 +_285: ; /* expr ::= RAISE LP raisetype COMMA nm RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_RAISE), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)))).FaffExpr = uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) } - goto _342 -_284: + goto _346 +_286: ; /* raisetype ::= ROLLBACK */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Rollback) - goto _342 -_285: + goto _346 +_287: ; /* raisetype ::= FAIL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Fail) - goto _342 -_286: + goto _346 +_288: ; /* cmd ::= DROP TRIGGER ifexists fullname */ _sqlite3DropTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_287: + goto _346 +_289: ; /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ _sqlite3Attach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_288: + goto _346 +_290: ; /* cmd ::= DETACH database_kw_opt expr */ _sqlite3Detach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_289: + goto _346 +_291: ; /* cmd ::= REINDEX */ _sqlite3Reindex(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_290: + goto _346 +_292: ; /* cmd ::= REINDEX nm dbnm */ _sqlite3Reindex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_291: + goto _346 +_293: ; /* cmd ::= ANALYZE */ _sqlite3Analyze(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_292: + goto _346 +_294: ; /* cmd ::= ANALYZE nm dbnm */ _sqlite3Analyze(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_293: + goto _346 +_295: ; /* cmd ::= ALTER TABLE fullname RENAME TO nm */ _sqlite3AlterRenameTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_294: + goto _346 +_296: ; /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(int32(int64((*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fz)-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) + (*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fn _sqlite3AlterFinishAddColumn(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_295: + goto _346 +_297: ; /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ _sqlite3AlterDropColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_296: + goto _346 +_298: ; /* add_column_fullname ::= fullname */ _disableLookaside(tls, pParse) _sqlite3AlterBeginAddColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_297: + goto _346 +_299: ; /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ _sqlite3AlterRenameColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) - goto _342 -_298: + goto _346 +_300: ; /* cmd ::= create_vtab */ _sqlite3VtabFinishParse(tls, pParse, uintptr(0)) - goto _342 -_299: + goto _346 +_301: ; /* cmd ::= create_vtab LP vtabarglist RP */ _sqlite3VtabFinishParse(tls, pParse, yymsp+8) - goto _342 -_300: + goto _346 +_302: ; /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ _sqlite3VtabBeginParse(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) - goto _342 -_301: + goto _346 +_303: ; /* vtabarg ::= */ _sqlite3VtabArgInit(tls, pParse) - goto _342 -_303: + goto _346 +_305: ; /* vtabargtoken ::= ANY */ -_302: - ; _304: ; - _sqlite3VtabArgExtend(tls, pParse, yymsp+8) - goto _342 _306: + ; + _sqlite3VtabArgExtend(tls, pParse, yymsp+8) + goto _346 +_308: ; /* with ::= WITH wqlist */ -_305: +_307: ; _sqlite3WithPush(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint8(1)) - goto _342 -_307: + goto _346 +_309: ; /* wqas ::= AS */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8(M10d_Any) - goto _342 -_308: + goto _346 +_310: ; /* wqas ::= AS MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8(M10d_Yes) - goto _342 -_309: + goto _346 +_311: ; /* wqas ::= AS NOT MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = uint8(M10d_No) - goto _342 -_310: - ; /* wqitem ::= nm eidlist_opt wqas LP select RP */ + goto _346 +_312: + ; /* wqitem ::= withnm eidlist_opt wqas LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3CteNew(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) /*A-overwrites-X*/ - goto _342 -_311: + goto _346 +_313: + ; /* withnm ::= nm */ + (*TParse)(unsafe.Pointer(pParse)).FbHasWith = uint8(1) + goto _346 +_314: ; /* wqlist ::= wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3WithAdd(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_312: + goto _346 +_315: ; /* wqlist ::= wqlist COMMA wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3WithAdd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_313: + goto _346 +_316: ; /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ _sqlite3WindowChain(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpNextWin = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_314: + goto _346 +_317: ; /* windowdefn ::= nm AS LP window RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)))) } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_315: + goto _346 +_318: ; /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_316: + goto _346 +_319: ; /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_317: + goto _346 +_320: ; /* window ::= ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_318: + goto _346 +_321: ; /* window ::= nm ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_319: + goto _346 +_322: ; /* window ::= nm frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_320: + goto _346 +_323: ; /* frame_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = _sqlite3WindowAlloc(tls, pParse, 0, int32(TK_UNBOUNDED), uintptr(0), int32(TK_CURRENT), uintptr(0), uint8(0)) - goto _342 -_321: + goto _346 +_324: ; /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), int32(TK_CURRENT), uintptr(0), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_322: + goto _346 +_325: ; /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_324: + goto _346 +_327: ; /* frame_bound_s ::= frame_bound */ -_323: +_326: ; *(*TFrameBound)(unsafe.Pointer(bp)) = *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_326: + goto _346 +_329: ; /* frame_bound_s ::= UNBOUNDED PRECEDING */ -_325: +_328: ; -_327: +_330: ; (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = uintptr(0) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_328: + goto _346 +_331: ; /* frame_bound ::= expr PRECEDING|FOLLOWING */ (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_329: + goto _346 +_332: ; /* frame_exclude_opt ::= */ *(*Tu8)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint8(0) - goto _342 -_330: + goto _346 +_333: ; /* frame_exclude_opt ::= EXCLUDE frame_exclude */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*Tu8)(unsafe.Pointer(yymsp + 8)) - goto _342 -_332: + goto _346 +_335: ; /* frame_exclude ::= NO OTHERS */ -_331: +_334: ; *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) /*A-overwrites-X*/ - goto _342 -_333: + goto _346 +_336: ; /* frame_exclude ::= GROUP|TIES */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_334: + goto _346 +_337: ; /* window_clause ::= WINDOW windowdefn_list */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_335: + goto _346 +_338: ; /* filter_over ::= filter_clause over_clause */ if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpFilter = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) @@ -156269,13 +157838,13 @@ _335: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_336: + goto _346 +_339: ; /* filter_over ::= over_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_337: + goto _346 +_340: ; /* filter_over ::= filter_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { @@ -156285,27 +157854,33 @@ _337: _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_338: + goto _346 +_341: ; /* over_clause ::= OVER LP window RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_339: + goto _346 +_342: ; /* over_clause ::= OVER nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) } - goto _342 -_340: + goto _346 +_343: ; /* filter_clause ::= FILTER LP WHERE expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_341: + goto _346 +_344: + ; /* term ::= QNUMBER */ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) + _sqlite3DequoteNumber(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp))))) + *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + goto _346 +_345: ; - goto _342 + goto _346 /********** End reduce actions ************************************************/ -_342: +_346: ; yygoto = int32(_yyRuleInfoLhs[yyruleno]) yysize = int32(_yyRuleInfoNRhs[yyruleno]) @@ -156339,9 +157914,9 @@ func _yy_syntax_error(tls *libc.TLS, yypParser uintptr, yymajor int32, _yyminor /************ Begin %syntax_error code ****************************************/ _ = yymajor /* Silence some compiler warnings */ if *(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp))).Fz)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23396, libc.VaList(bp+24, bp)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23519, libc.VaList(bp+24, bp)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23684, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23807, 0) } /************ End %syntax_error code ******************************************/ /* Suppress warning about unused %extra_argument variable */ @@ -156406,8 +157981,10 @@ func _sqlite3Parser(tls *libc.TLS, yyp uintptr, yymajor int32, yyminor TToken) { ** enough on the stack to push the LHS value */ if int32(_yyRuleInfoNRhs[yyruleno]) == 0 { if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos >= (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - _yyStackOverflow(tls, yypParser) - break + if _yyGrowStack(tls, yypParser) != 0 { + _yyStackOverflow(tls, yypParser) + break + } } } yyact = _yy_reduce(tls, yypParser, yyruleno, yymajor, yyminor, pParse) @@ -158556,9 +160133,9 @@ func _analyzeFilterKeyword(tls *libc.TLS, _z uintptr, lastToken int32) (r int32) // ** Store the token type in *tokenType before returning. // */ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { - var c, delim, i, n, v10, v14, v16, v19, v20, v3, v5, v7, v8 int32 - var v15, v6 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v14, v15, v16, v19, v20, v3, v5, v6, v7, v8 + var c, delim, i, n, v10, v16, v18, v21, v22, v3, v5, v7, v8 int32 + var v17, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v16, v17, v18, v21, v22, v3, v5, v6, v7, v8 switch int32(_aiClass[*(*uint8)(unsafe.Pointer(z))]) { /* Switch on the character-class of the first byte ** of the token. See the comment on the CC_ defines ** above. */ @@ -158756,39 +160333,83 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('X')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + 2))])&int32(0x08) != 0 { i = int32(3) for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { + if !(int32(1) != 0) { break } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } goto _11 _11: ; i++ } - return i - } - i = 0 - for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _12 - _12: - ; - i++ - } - if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { - i++ - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + } else { + i = 0 + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _12 + _12: + ; i++ } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) - } - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { - i += int32(2) - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } i++ + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _13 + _13: + ; + i++ + } + } + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } + i += int32(2) + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _14 + _14: + ; + i++ + } } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) } for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x46) != 0 { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_ILLEGAL) @@ -158799,24 +160420,24 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { i = int32(1) c = int32(*(*uint8)(unsafe.Pointer(z))) for { - if v15 = c != int32(']'); v15 { - v14 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v14 + if v17 = c != int32(']'); v17 { + v16 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v16 } - if !(v15 && v14 != 0) { + if !(v17 && v16 != 0) { break } - goto _13 - _13: + goto _15 + _15: ; i++ } if c == int32(']') { - v16 = int32(TK_ID) + v18 = int32(TK_ID) } else { - v16 = int32(TK_ILLEGAL) + v18 = int32(TK_ILLEGAL) } - *(*int32)(unsafe.Pointer(tokenType)) = v16 + *(*int32)(unsafe.Pointer(tokenType)) = v18 return i case int32(CC_VARNUM): *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) @@ -158825,8 +160446,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { break } - goto _17 - _17: + goto _19 + _19: ; i++ } @@ -158838,9 +160459,9 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) i = int32(1) for { - v19 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v19 - if !(v19 != 0) { + v21 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v21 + if !(v21 != 0) { break } if int32(_sqlite3CtypeMap[uint8(c)])&int32(0x46) != 0 { @@ -158849,12 +160470,12 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if c == int32('(') && n > 0 { for { i++ - goto _21 - _21: + goto _23 + _23: ; - v20 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v20 - if !(v20 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { + v22 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v22 + if !(v22 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { break } } @@ -158872,8 +160493,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { } } } - goto _18 - _18: + goto _20 + _20: ; i++ } @@ -158891,8 +160512,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_aiClass[*(*uint8)(unsafe.Pointer(z + uintptr(i)))]) <= int32(CC_KYWD)) { break } - goto _22 - _22: + goto _24 + _24: ; i++ } @@ -158913,8 +160534,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { break } - goto _23 - _23: + goto _25 + _25: ; i++ } @@ -158968,7 +160589,7 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { var lastTokenParsed, mxSqlLen, n, nErr int32 var _ /* sEngine at bp+8 */ TyyParser var _ /* tokenType at bp+0 */ int32 - var _ /* x at bp+2432 */ TToken + var _ /* x at bp+2440 */ TToken _, _, _, _, _, _, _ = db, lastTokenParsed, mxSqlLen, n, nErr, pEngine, pParentParse nErr = 0 /* The LEMON-generated LALR(1) parser */ n = 0 /* type of the next token */ @@ -159026,10 +160647,12 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp)) == int32(TK_FILTER) { *(*int32)(unsafe.Pointer(bp)) = _analyzeFilterKeyword(tls, zSql+6, lastTokenParsed) } else { - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fz = zSql - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fn = uint32(n) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23701, libc.VaList(bp+2456, bp+2432)) - break + if *(*int32)(unsafe.Pointer(bp)) != int32(TK_QNUMBER) { + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fz = zSql + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fn = uint32(n) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23824, libc.VaList(bp+2464, bp+2440)) + break + } } } } @@ -159050,9 +160673,9 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { } if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg != 0 || (*TParse)(unsafe.Pointer(pParse)).Frc != SQLITE_OK && (*TParse)(unsafe.Pointer(pParse)).Frc != int32(SQLITE_DONE) { if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg == uintptr(0) { - (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3797, libc.VaList(bp+2456, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) + (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3861, libc.VaList(bp+2464, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) } - Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23726, libc.VaList(bp+2456, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) + Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23849, libc.VaList(bp+2464, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) nErr++ } (*TParse)(unsafe.Pointer(pParse)).FzTail = zSql @@ -159244,7 +160867,7 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('c'): fallthrough case int32('C'): - if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23737, int32(6)) == 0 { + if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23860, int32(6)) == 0 { token = uint8(tkCREATE) } else { token = uint8(tkOTHER) @@ -159252,13 +160875,13 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('t'): fallthrough case int32('T'): - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20381, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20513, int32(7)) == 0 { token = uint8(tkTRIGGER) } else { - if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23744, int32(4)) == 0 { + if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23867, int32(4)) == 0 { token = uint8(tkTEMP) } else { - if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23749, int32(9)) == 0 { + if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23872, int32(9)) == 0 { token = uint8(tkTEMP) } else { token = uint8(tkOTHER) @@ -159268,10 +160891,10 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('e'): fallthrough case int32('E'): - if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23759, int32(3)) == 0 { + if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23882, int32(3)) == 0 { token = uint8(tkEND) } else { - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23763, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23886, int32(7)) == 0 { token = uint8(tkEXPLAIN) } else { token = uint8(tkOTHER) @@ -159531,8 +161154,6 @@ func _hasHighPrecisionDouble(tls *libc.TLS, rc int32) (r int32) { // ** without blocking. // */ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { - ng := runtime.GOMAXPROCS(1) - defer func() { runtime.GOMAXPROCS(ng) }() var pMainMtx uintptr var rc int32 _, _ = pMainMtx, rc /* Result code */ @@ -159544,7 +161165,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** must be complete. So isInit must not be set until the very end ** of this routine. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { return SQLITE_OK } /* Make sure the mutex subsystem is initialized. If unable to @@ -159604,7 +161225,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** call to sqlite3PcacheInitialize(). */ Xsqlite3_mutex_enter(tls, _sqlite3Config.FpInitMutex) - if _sqlite3Config.FisInit == 0 && _sqlite3Config.FinProgress == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 && _sqlite3Config.FinProgress == 0 { _sqlite3Config.FinProgress = int32(1) libc.Xmemset(tls, uintptr(unsafe.Pointer(&_sqlite3BuiltinFunctions)), 0, uint64(184)) _sqlite3RegisterBuiltinFunctions(tls) @@ -159620,7 +161241,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { } if rc == SQLITE_OK { _sqlite3PCacheBufferSetup(tls, _sqlite3Config.FpPage, _sqlite3Config.FszPage, _sqlite3Config.FnPage) - _sqlite3Config.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, int32(1)) } _sqlite3Config.FinProgress = 0 } @@ -159645,7 +161266,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { */ /* Experimentally determine if high-precision floating point is ** available. */ - _sqlite3Config.FbUseLongDouble = uint8(_hasHighPrecisionDouble(tls, rc)) + // disabled return rc } @@ -159660,10 +161281,10 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { // ** when this routine is invoked, then this routine is a harmless no-op. // */ func Xsqlite3_shutdown(tls *libc.TLS) (r int32) { - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { Xsqlite3_os_end(tls) Xsqlite3_reset_auto_extension(tls) - _sqlite3Config.FisInit = 0 + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, 0) } if _sqlite3Config.FisPCacheInit != 0 { _sqlite3PcacheShutdown(tls) @@ -159711,9 +161332,9 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { ** the SQLite library is in use. Except, a few selected opcodes ** are allowed. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)<= 0 && rc < int32(libc.Uint64FromInt64(232)/libc.Uint64FromInt64(8)) && _aMsg[rc] != uintptr(0) { @@ -160851,31 +162472,31 @@ func _sqlite3ErrStr(tls *libc.TLS, rc int32) (r uintptr) { } var _aMsg = [29]uintptr{ - 0: __ccgo_ts + 23839, - 1: __ccgo_ts + 23852, - 3: __ccgo_ts + 23868, - 4: __ccgo_ts + 23893, - 5: __ccgo_ts + 23907, - 6: __ccgo_ts + 23926, - 7: __ccgo_ts + 1620, - 8: __ccgo_ts + 23951, - 9: __ccgo_ts + 23988, - 10: __ccgo_ts + 24000, - 11: __ccgo_ts + 24015, - 12: __ccgo_ts + 24048, - 13: __ccgo_ts + 24066, - 14: __ccgo_ts + 24091, - 15: __ccgo_ts + 24120, - 17: __ccgo_ts + 6023, - 18: __ccgo_ts + 5425, - 19: __ccgo_ts + 24137, - 20: __ccgo_ts + 24155, - 21: __ccgo_ts + 24173, - 23: __ccgo_ts + 24207, - 25: __ccgo_ts + 24228, - 26: __ccgo_ts + 24254, - 27: __ccgo_ts + 24277, - 28: __ccgo_ts + 24298, + 0: __ccgo_ts + 23962, + 1: __ccgo_ts + 23975, + 3: __ccgo_ts + 23991, + 4: __ccgo_ts + 24016, + 5: __ccgo_ts + 24030, + 6: __ccgo_ts + 24049, + 7: __ccgo_ts + 1634, + 8: __ccgo_ts + 24074, + 9: __ccgo_ts + 24111, + 10: __ccgo_ts + 24123, + 11: __ccgo_ts + 24138, + 12: __ccgo_ts + 24171, + 13: __ccgo_ts + 24189, + 14: __ccgo_ts + 24214, + 15: __ccgo_ts + 24243, + 17: __ccgo_ts + 6087, + 18: __ccgo_ts + 5489, + 19: __ccgo_ts + 24260, + 20: __ccgo_ts + 24278, + 21: __ccgo_ts + 24296, + 23: __ccgo_ts + 24330, + 25: __ccgo_ts + 24351, + 26: __ccgo_ts + 24377, + 27: __ccgo_ts + 24400, + 28: __ccgo_ts + 24421, } // C documentation @@ -161054,7 +162675,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i var p, v1 uintptr _, _, _, _ = extraFlags, p, rc, v1 if zFunctionName == uintptr(0) || xSFunc != uintptr(0) && xFinal != uintptr(0) || libc.BoolInt32(xFinal == uintptr(0)) != libc.BoolInt32(xStep == uintptr(0)) || libc.BoolInt32(xValue == uintptr(0)) != libc.BoolInt32(xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { - return _sqlite3MisuseError(tls, int32(180244)) + return _sqlite3MisuseError(tls, int32(181689)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -161097,7 +162718,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i p = _sqlite3FindFunction(tls, db, zFunctionName, nArg, uint8(enc), uint8(0)) if p != 0 && (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) == uint32(enc) && int32((*TFuncDef)(unsafe.Pointer(p)).FnArg) == nArg { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24395, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24518, 0) return int32(SQLITE_BUSY) } else { _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -161167,6 +162788,7 @@ func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, en (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } + goto out out: ; rc = _sqlite3ApiExit(tls, db, rc) @@ -161222,7 +162844,7 @@ func _sqlite3InvalidFunction(tls *libc.TLS, context uintptr, NotUsed int32, NotU zName = Xsqlite3_user_data(tls, context) _ = NotUsed _ = NotUsed2 - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24458, libc.VaList(bp+8, zName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24581, libc.VaList(bp+8, zName)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -161253,7 +162875,7 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i if rc != 0 { return SQLITE_OK } - zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, zName)) + zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, zName)) if zCopy == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -161497,7 +163119,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in if eMode < SQLITE_CHECKPOINT_PASSIVE || eMode > int32(SQLITE_CHECKPOINT_TRUNCATE) { /* EVIDENCE-OF: R-03996-12088 The M parameter must be a valid checkpoint ** mode: */ - return _sqlite3MisuseError(tls, int32(180859)) + return _sqlite3MisuseError(tls, int32(182304)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*uint8)(unsafe.Pointer(zDb)) != 0 { @@ -161507,7 +163129,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in } if iDb < 0 { rc = int32(SQLITE_ERROR) - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24509, libc.VaList(bp+8, zDb)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24632, libc.VaList(bp+8, zDb)) } else { (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0 rc = _sqlite3Checkpoint(tls, db, iDb, eMode, pnLog, pnCkpt) @@ -161629,7 +163251,7 @@ func Xsqlite3_errmsg(tls *libc.TLS, db uintptr) (r uintptr) { return _sqlite3ErrStr(tls, int32(SQLITE_NOMEM)) } if !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(180995))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(182440))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -161761,7 +163383,7 @@ var _misuse = [34]Tu16{ // */ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181074)) + return _sqlite3MisuseError(tls, int32(182519)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -161771,7 +163393,7 @@ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { func Xsqlite3_extended_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181083)) + return _sqlite3MisuseError(tls, int32(182528)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -161820,7 +163442,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui enc2 = int32(SQLITE_UTF16LE) } if enc2 < int32(SQLITE_UTF8) || enc2 > int32(SQLITE_UTF16BE) { - return _sqlite3MisuseError(tls, int32(181131)) + return _sqlite3MisuseError(tls, int32(182576)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -161829,7 +163451,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui pColl = _sqlite3FindCollSeq(tls, db, uint8(enc2), zName, 0) if pColl != 0 && (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp != 0 { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24530, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24653, 0) return int32(SQLITE_BUSY) } _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -161976,7 +163598,7 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u flags = *(*uint32)(unsafe.Pointer(pFlags)) zVfs = zDefaultVfs nUri = _sqlite3Strlen30(tls, zUri) - if (flags&uint32(SQLITE_OPEN_URI) != 0 || *(*Tu8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Config)) + 6)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24598, uint64(5)) == 0 { /* Input character index */ + if (flags&uint32(SQLITE_OPEN_URI) != 0 || *(*Tu8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Config)) + 6)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24721, uint64(5)) == 0 { /* Input character index */ iOut = 0 /* Output character index */ nByte = uint64(nUri + int32(8)) /* Bytes of space to allocate */ /* Make sure the SQLITE_OPEN_URI flag is set to indicate to the VFS xOpen @@ -162006,8 +163628,8 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u for *(*uint8)(unsafe.Pointer(zUri + uintptr(iIn))) != 0 && int32(*(*uint8)(unsafe.Pointer(zUri + uintptr(iIn)))) != int32('/') { iIn++ } - if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24604, zUri+7, uint64(9)) != 0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24614, libc.VaList(bp+8, iIn-int32(7), zUri+7)) + if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24727, zUri+7, uint64(9)) != 0) { + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24737, libc.VaList(bp+8, iIn-int32(7), zUri+7)) rc = int32(SQLITE_ERROR) goto parse_uri_out } @@ -162096,24 +163718,24 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u nOpt = _sqlite3Strlen30(tls, zOpt) zVal = zOpt + uintptr(nOpt+int32(1)) nVal = _sqlite3Strlen30(tls, zVal) - if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24642, zOpt, uint64(3)) == 0 { + if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24765, zOpt, uint64(3)) == 0 { zVfs = zVal } else { aMode = uintptr(0) zModeType = uintptr(0) mask = 0 limit = 0 - if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24646, zOpt, uint64(5)) == 0 { + if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24769, zOpt, uint64(5)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_SHAREDCACHE) | libc.Int32FromInt32(SQLITE_OPEN_PRIVATECACHE) aMode = uintptr(unsafe.Pointer(&_aCacheMode)) limit = mask - zModeType = __ccgo_ts + 24646 + zModeType = __ccgo_ts + 24769 } - if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24667, zOpt, uint64(4)) == 0 { + if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24790, zOpt, uint64(4)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_READONLY) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_MEMORY) aMode = uintptr(unsafe.Pointer(&_aOpenMode)) limit = int32(uint32(mask) & flags) - zModeType = __ccgo_ts + 3406 + zModeType = __ccgo_ts + 3470 } if aMode != 0 { mode = 0 @@ -162142,12 +163764,12 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u i++ } if mode == 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24682, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24805, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_ERROR) goto parse_uri_out } if mode & ^libc.Int32FromInt32(SQLITE_OPEN_MEMORY) > limit { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24702, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24825, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_PERM) goto parse_uri_out } @@ -162171,9 +163793,10 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u } *(*uintptr)(unsafe.Pointer(ppVfs)) = Xsqlite3_vfs_find(tls, zVfs) if *(*uintptr)(unsafe.Pointer(ppVfs)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24726, libc.VaList(bp+8, zVfs)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24849, libc.VaList(bp+8, zVfs)) rc = int32(SQLITE_ERROR) } + goto parse_uri_out parse_uri_out: ; if rc != SQLITE_OK { @@ -162190,11 +163813,11 @@ var _aCacheMode = [3]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24652, + Fz: __ccgo_ts + 24775, Fmode: int32(SQLITE_OPEN_SHAREDCACHE), }, 1: { - Fz: __ccgo_ts + 24659, + Fz: __ccgo_ts + 24782, Fmode: int32(SQLITE_OPEN_PRIVATECACHE), }, 2: {}, @@ -162205,19 +163828,19 @@ var _aOpenMode = [5]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24672, + Fz: __ccgo_ts + 24795, Fmode: int32(SQLITE_OPEN_READONLY), }, 1: { - Fz: __ccgo_ts + 24675, + Fz: __ccgo_ts + 24798, Fmode: int32(SQLITE_OPEN_READWRITE), }, 2: { - Fz: __ccgo_ts + 24678, + Fz: __ccgo_ts + 24801, Fmode: libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE), }, 3: { - Fz: __ccgo_ts + 17766, + Fz: __ccgo_ts + 17853, Fmode: int32(SQLITE_OPEN_MEMORY), }, 4: {}, @@ -162345,8 +163968,8 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16BE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16LE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+22353, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+24742, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+22498, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+24865, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto opendb_out } @@ -162367,7 +163990,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* READWRITE */ /* READWRITE | CREATE */ if int32(1)<<(*(*uint32)(unsafe.Pointer(bp))&uint32(7))&int32(0x46) == 0 { - rc = _sqlite3MisuseError(tls, int32(181803)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(183248)) /* IMP: R-18321-05872 */ } else { rc = _sqlite3ParseUri(tls, zVfs, zFilename, bp, db, bp+8, bp+16) } @@ -162376,7 +163999,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _sqlite3OomFault(tls, db) } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { - v2 = __ccgo_ts + 3797 + v2 = __ccgo_ts + 3861 } else { v2 = uintptr(0) } @@ -162403,9 +164026,9 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* The default safety_level for the main database is FULL; for the temp ** database it is OFF. This matches the pager layer defaults. */ - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6587 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6651 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).Fsafety_level = uint8(libc.Int32FromInt32(SQLITE_DEFAULT_SYNCHRONOUS) + libc.Int32FromInt32(1)) - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 23744 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 23867 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).Fsafety_level = uint8(PAGER_SYNCHRONOUS_OFF) (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState = uint8(SQLITE_STATE_OPEN) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -162450,6 +164073,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* Enable the lookaside-malloc subsystem */ _setupLookaside(tls, db, uintptr(0), _sqlite3Config.FszLookaside, _sqlite3Config.FnLookaside) Xsqlite3_wal_autocheckpoint(tls, db, int32(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT)) + goto opendb_out opendb_out: ; if db != 0 { @@ -162498,7 +164122,7 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc } if zFilename == uintptr(0) { - zFilename = __ccgo_ts + 24748 + zFilename = __ccgo_ts + 24871 } pVal = _sqlite3ValueNew(tls, uintptr(0)) _sqlite3ValueSetStr(tls, pVal, -int32(1), zFilename, uint8(SQLITE_UTF16LE), libc.UintptrFromInt32(0)) @@ -162715,20 +164339,20 @@ func Xsqlite3_get_autocommit(tls *libc.TLS, db uintptr) (r int32) { func _sqlite3ReportError(tls *libc.TLS, iErr int32, lineno int32, zType uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) - Xsqlite3_log(tls, iErr, __ccgo_ts+24751, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) + Xsqlite3_log(tls, iErr, __ccgo_ts+24874, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) return iErr } func _sqlite3CorruptError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24776) + return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24899) } func _sqlite3MisuseError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24796) + return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24919) } func _sqlite3CantopenError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24803) + return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24926) } // C documentation @@ -162834,6 +164458,7 @@ func Xsqlite3_table_column_metadata(tls *libc.TLS, db uintptr, zDbName uintptr, if !(zCollSeq != 0) { zCollSeq = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } + goto error_out error_out: ; _sqlite3BtreeLeaveAll(tls, db) @@ -162858,11 +164483,11 @@ error_out: } if SQLITE_OK == rc && !(pTab != 0) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24820, libc.VaList(bp+16, zTableName, zColumnName)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24943, libc.VaList(bp+16, zTableName, zColumnName)) rc = int32(SQLITE_ERROR) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v3 = __ccgo_ts + 3797 + v3 = __ccgo_ts + 3861 } else { v3 = uintptr(0) } @@ -163297,7 +164922,7 @@ func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) (r int32) { */ fallthrough case int32(SQLITE_TESTCTRL_ISINIT): - if _sqlite3Config.FisInit == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 { rc = int32(SQLITE_ERROR) } break @@ -163886,7 +165511,7 @@ func Xsqlite3_compileoption_used(tls *libc.TLS, zOptName uintptr) (r int32) { var _ /* nOpt at bp+0 */ int32 _, _, _ = azCompileOpt, i, n azCompileOpt = _sqlite3CompileOptions(tls, bp) - if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24848, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24971, int32(7)) == 0 { zOptName += uintptr(7) } n = _sqlite3Strlen30(tls, zOptName) @@ -164104,7 +165729,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui } _leaveMutex(tls) if rc != 0 { - v2 = __ccgo_ts + 24856 + v2 = __ccgo_ts + 24979 } else { v2 = uintptr(0) } @@ -164984,23 +166609,23 @@ func _sqlite3ConnectionClosed(tls *libc.TLS, db uintptr) { // ** string must correspond to the JSONB_* integer above. // */ var _jsonbType = [17]uintptr{ - 0: __ccgo_ts + 1636, - 1: __ccgo_ts + 7888, - 2: __ccgo_ts + 7893, - 3: __ccgo_ts + 6308, - 4: __ccgo_ts + 6308, - 5: __ccgo_ts + 6303, - 6: __ccgo_ts + 6303, - 7: __ccgo_ts + 8199, - 8: __ccgo_ts + 8199, - 9: __ccgo_ts + 8199, - 10: __ccgo_ts + 8199, - 11: __ccgo_ts + 24879, - 12: __ccgo_ts + 24885, - 13: __ccgo_ts + 1650, - 14: __ccgo_ts + 1650, - 15: __ccgo_ts + 1650, - 16: __ccgo_ts + 1650, + 0: __ccgo_ts + 1650, + 1: __ccgo_ts + 8013, + 2: __ccgo_ts + 8018, + 3: __ccgo_ts + 6372, + 4: __ccgo_ts + 6372, + 5: __ccgo_ts + 6367, + 6: __ccgo_ts + 6367, + 7: __ccgo_ts + 8324, + 8: __ccgo_ts + 8324, + 9: __ccgo_ts + 8324, + 10: __ccgo_ts + 8324, + 11: __ccgo_ts + 25002, + 12: __ccgo_ts + 25008, + 13: __ccgo_ts + 1664, + 14: __ccgo_ts + 1664, + 15: __ccgo_ts + 1664, + 16: __ccgo_ts + 1664, } // C documentation @@ -165763,6 +167388,38 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { _jsonAppendChar(tls, p, uint8(',')) } +// C documentation +// +// /* c is a control character. Append the canonical JSON representation +// ** of that control character to p. +// ** +// ** This routine assumes that the output buffer has already been enlarged +// ** sufficiently to hold the worst-case encoding plus a nul terminator. +// */ +func _jsonAppendControlChar(tls *libc.TLS, p uintptr, c Tu8) { + if _aSpecial[c] != 0 { + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = uint8('\\') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = _aSpecial[c] + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(2) + } else { + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = uint8('\\') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = uint8('u') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(2)))) = uint8('0') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(3)))) = uint8('0') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(4)))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 25015 + uintptr(int32(c)>>int32(4)))) + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(5)))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 25015 + uintptr(int32(c)&int32(0xf)))) + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(6) + } +} + +var _aSpecial = [32]uint8{ + 8: uint8('b'), + 9: uint8('t'), + 10: uint8('n'), + 12: uint8('f'), + 13: uint8('r'), +} + // C documentation // // /* Append the N-byte string in zIn to the end of the JsonString string @@ -165776,9 +167433,9 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { var c Tu8 var k Tu32 - var z, v10, v12, v14, v16, v18, v2, v20, v22, v24, v6, v8 uintptr - var v1, v11, v13, v15, v17, v19, v21, v23, v5, v7, v9 Tu64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v5, v6, v7, v8, v9 + var z, v10, v2, v4, v6, v8 uintptr + var v1, v3, v5, v7, v9 Tu64 + _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v2, v3, v4, v5, v6, v7, v8, v9 z = zIn if z == uintptr(0) { return @@ -165835,80 +167492,38 @@ func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { N -= k } c = *(*Tu8)(unsafe.Pointer(z)) - if !(int32(c) == int32('"') || int32(c) == int32('\\')) { - goto _3 - } - json_simple_escape: - ; - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { - return - } - v6 = p + 24 - v5 = *(*Tu64)(unsafe.Pointer(v6)) - *(*Tu64)(unsafe.Pointer(v6))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = uint8('\\') - v8 = p + 24 - v7 = *(*Tu64)(unsafe.Pointer(v8)) - *(*Tu64)(unsafe.Pointer(v8))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = c - goto _4 - _3: - ; - if int32(c) == int32('\'') { - v10 = p + 24 - v9 = *(*Tu64)(unsafe.Pointer(v10)) - *(*Tu64)(unsafe.Pointer(v10))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = c - } else { - if _aSpecial[c] != 0 { - c = _aSpecial[c] - goto json_simple_escape - } - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + if int32(c) == int32('"') || int32(c) == int32('\\') { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { return } - v12 = p + 24 - v11 = *(*Tu64)(unsafe.Pointer(v12)) - *(*Tu64)(unsafe.Pointer(v12))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v11))) = uint8('\\') - v14 = p + 24 - v13 = *(*Tu64)(unsafe.Pointer(v14)) - *(*Tu64)(unsafe.Pointer(v14))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v13))) = uint8('u') - v16 = p + 24 - v15 = *(*Tu64)(unsafe.Pointer(v16)) - *(*Tu64)(unsafe.Pointer(v16))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v15))) = uint8('0') - v18 = p + 24 - v17 = *(*Tu64)(unsafe.Pointer(v18)) - *(*Tu64)(unsafe.Pointer(v18))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v17))) = uint8('0') - v20 = p + 24 - v19 = *(*Tu64)(unsafe.Pointer(v20)) - *(*Tu64)(unsafe.Pointer(v20))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v19))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 24892 + uintptr(int32(c)>>int32(4)))) - v22 = p + 24 - v21 = *(*Tu64)(unsafe.Pointer(v22)) - *(*Tu64)(unsafe.Pointer(v22))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v21))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 24892 + uintptr(int32(c)&int32(0xf)))) + v4 = p + 24 + v3 = *(*Tu64)(unsafe.Pointer(v4)) + *(*Tu64)(unsafe.Pointer(v4))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v3))) = uint8('\\') + v6 = p + 24 + v5 = *(*Tu64)(unsafe.Pointer(v6)) + *(*Tu64)(unsafe.Pointer(v6))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = c + } else { + if int32(c) == int32('\'') { + v8 = p + 24 + v7 = *(*Tu64)(unsafe.Pointer(v8)) + *(*Tu64)(unsafe.Pointer(v8))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = c + } else { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + return + } + _jsonAppendControlChar(tls, p, c) + } } - _4: - ; z++ N-- } - v24 = p + 24 - v23 = *(*Tu64)(unsafe.Pointer(v24)) - *(*Tu64)(unsafe.Pointer(v24))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v23))) = uint8('"') -} - -var _aSpecial = [32]uint8{ - 8: uint8('b'), - 9: uint8('t'), - 10: uint8('n'), - 12: uint8('f'), - 13: uint8('r'), + v10 = p + 24 + v9 = *(*Tu64)(unsafe.Pointer(v10)) + *(*Tu64)(unsafe.Pointer(v10))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = uint8('"') } // C documentation @@ -165926,9 +167541,9 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _, _, _, _ = n, n1, z, z1 switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_NULL): - _jsonAppendRawNZ(tls, p, __ccgo_ts+1636, uint32(4)) + _jsonAppendRawNZ(tls, p, __ccgo_ts+1650, uint32(4)) case int32(SQLITE_FLOAT): - _jsonPrintf(tls, int32(100), p, __ccgo_ts+15325, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) + _jsonPrintf(tls, int32(100), p, __ccgo_ts+15418, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) case int32(SQLITE_INTEGER): z = Xsqlite3_value_text(tls, pValue) n = uint32(Xsqlite3_value_bytes(tls, pValue)) @@ -165949,7 +167564,7 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _jsonTranslateBlobToText(tls, bp, uint32(0), p) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr) == 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24909, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25032, -int32(1)) (*TJsonString)(unsafe.Pointer(p)).FeErr = uint8(JSTRING_ERR) _jsonStringReset(tls, p) } @@ -166003,7 +167618,7 @@ func _jsonReturnString(tls *libc.TLS, p uintptr, pParse uintptr, ctx uintptr) { Xsqlite3_result_error_nomem(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr)&int32(JSTRING_MALFORMED) != 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25061, -int32(1)) } } } @@ -166250,6 +167865,7 @@ func _json5Whitespace(tls *libc.TLS, zIn uintptr) (r int32) { goto whitespace_done } } + goto whitespace_done whitespace_done: ; return n @@ -166285,8 +167901,8 @@ var _aNanInfName = [5]TNanInfName{ Fn: uint8(3), FeType: uint8(JSONB_FLOAT), FnRepl: uint8(7), - FzMatch: __ccgo_ts + 24953, - FzRepl: __ccgo_ts + 24957, + FzMatch: __ccgo_ts + 25076, + FzRepl: __ccgo_ts + 25080, }, 1: { Fc1: uint8('i'), @@ -166294,32 +167910,32 @@ var _aNanInfName = [5]TNanInfName{ Fn: uint8(8), FeType: uint8(JSONB_FLOAT), FnRepl: uint8(7), - FzMatch: __ccgo_ts + 24965, - FzRepl: __ccgo_ts + 24957, + FzMatch: __ccgo_ts + 25088, + FzRepl: __ccgo_ts + 25080, }, 2: { Fc1: uint8('n'), Fc2: uint8('N'), Fn: uint8(3), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 1641, - FzRepl: __ccgo_ts + 1636, + FzMatch: __ccgo_ts + 1655, + FzRepl: __ccgo_ts + 1650, }, 3: { Fc1: uint8('q'), Fc2: uint8('Q'), Fn: uint8(4), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 24974, - FzRepl: __ccgo_ts + 1636, + FzMatch: __ccgo_ts + 25097, + FzRepl: __ccgo_ts + 1650, }, 4: { Fc1: uint8('s'), Fc2: uint8('S'), Fn: uint8(4), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 24979, - FzRepl: __ccgo_ts + 1636, + FzMatch: __ccgo_ts + 25102, + FzRepl: __ccgo_ts + 1650, }, } @@ -166334,7 +167950,7 @@ func _jsonWrongNumArgs(tls *libc.TLS, pCtx uintptr, zFuncName uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24984, libc.VaList(bp+8, zFuncName)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25107, libc.VaList(bp+8, zFuncName)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) } @@ -166783,30 +168399,37 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept return j + uint32(1) } } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) <= int32(0x1f) { + /* Control characters in JSON5 string literals are ok */ + if int32(x) == int32(JSONB_TEXTJ) { + return j + uint32(1) + } } else { - if libc.Xstrchr(tls, __ccgo_ts+25027, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { - j++ + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { + return j + uint32(1) } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { - if j+uint32(5) >= k { - return j + uint32(1) - } - if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { - return j + uint32(1) - } + if libc.Xstrchr(tls, __ccgo_ts+25150, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { j++ } else { - if int32(x) != int32(JSONB_TEXT5) { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { + if j+uint32(5) >= k { + return j + uint32(1) + } + if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { + return j + uint32(1) + } + j++ } else { - *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) - szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) - if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + if int32(x) != int32(JSONB_TEXT5) { return j + uint32(1) + } else { + *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) + szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) + if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + return j + uint32(1) + } + j += szC - uint32(1) } - j += szC - uint32(1) } } } @@ -166902,6 +168525,7 @@ func _jsonTranslateTextToBlob(tls *libc.TLS, pParse uintptr, i Tu32) (r int32) { var _ /* op at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cDelim, iBlob, iStart, iThis, j, k, k1, nn, opcode, seenE, t, x, z, v40, v41, v43, v44, v46, v48 z = (*TJsonParse)(unsafe.Pointer(pParse)).FzJson + goto json_parse_restart json_parse_restart: ; switch int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) { @@ -167056,6 +168680,7 @@ _1: } j = (*TJsonParse)(unsafe.Pointer(pParse)).FiErr + uint32(1) } + goto parse_object_value parse_object_value: ; x = _jsonTranslateTextToBlob(tls, pParse, j) @@ -167182,6 +168807,7 @@ _3: ; /* Parse string */ opcode = uint8(JSONB_TEXT) + goto parse_string parse_string: ; cDelim = *(*uint8)(unsafe.Pointer(z + uintptr(i))) @@ -167230,9 +168856,14 @@ parse_string: } } else { if int32(c) <= int32(0x1f) { - /* Control characters are not allowed in strings */ - (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j - return -int32(1) + if int32(c) == 0 { + (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j + return -int32(1) + } + /* Control characters are not allowed in canonical JSON string + ** literals, but are allowed in JSON5 string literals. */ + opcode = uint8(JSONB_TEXT5) + (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) } else { if int32(c) == int32('"') { opcode = uint8(JSONB_TEXT5) @@ -167246,7 +168877,7 @@ parse_string: return int32(j + uint32(1)) _5: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7888, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8013, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_TRUE)) return int32(i + uint32(4)) } @@ -167254,7 +168885,7 @@ _5: return -int32(1) _6: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7893, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(5))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8018, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(5))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_FALSE)) return int32(i + uint32(5)) } @@ -167299,6 +168930,7 @@ _8: ; /* Parse number */ t = uint8(0x00) /* Bit 0x01: JSON5. Bit 0x02: FLOAT */ + goto parse_number parse_number: ; seenE = uint8(0) @@ -167330,14 +168962,14 @@ parse_number: /* JSON5 allows for "+Infinity" and "-Infinity" using exactly ** that case. SQLite also allows these in any case and it allows ** "+inf" and "-inf". */ - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+24953, int32(3)) == 0 { + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+25076, int32(3)) == 0 { (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('-') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25036) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25159) } else { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25043) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25166) } - if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25049, int32(5)) == 0 { + if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25172, int32(5)) == 0 { v48 = int32(9) } else { v48 = int32(4) @@ -167376,6 +169008,7 @@ parse_number: } } } + goto parse_number_2 parse_number_2: ; j = i + uint32(1) @@ -167434,6 +169067,7 @@ parse_number_2: return -int32(1) } } + goto parse_number_finish parse_number_finish: ; if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('+') { @@ -167496,7 +169130,7 @@ _29: return -int32(1) _37: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1636, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1650, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) return int32(i + uint32(4)) } @@ -167520,7 +169154,7 @@ _38: goto _51 } if int32(_aNanInfName[k1].FeType) == int32(JSONB_FLOAT) { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25043) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25166) } else { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) } @@ -167565,7 +169199,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 i += _json5Whitespace(tls, zJson+uintptr(i)) if *(*uint8)(unsafe.Pointer(zJson + uintptr(i))) != 0 { if pCtx != 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25061, -int32(1)) } _jsonParseReset(tls, pParse) return int32(1) @@ -167578,7 +169212,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 if (*TJsonParse)(unsafe.Pointer(pParse)).Foom != 0 { Xsqlite3_result_error_nomem(tls, pCtx) } else { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25061, -int32(1)) } } _jsonParseReset(tls, pParse) @@ -167741,15 +169375,15 @@ func _jsonTranslateBlobToText(tls *libc.TLS, pParse uintptr, i Tu32, pOut uintpt goto _16 _2: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1636, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1650, uint32(4)) return i + uint32(1) _3: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7888, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8013, uint32(4)) return i + uint32(1) _4: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7893, uint32(5)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8018, uint32(5)) return i + uint32(1) _6: ; @@ -167798,9 +169432,9 @@ _7: k++ } if bOverflow != 0 { - v19 = __ccgo_ts + 24957 + v19 = __ccgo_ts + 25080 } else { - v19 = __ccgo_ts + 11755 + v19 = __ccgo_ts + 11880 } _jsonPrintf(tls, int32(100), pOut, v19, libc.VaList(bp+16, u)) goto _16 @@ -167848,7 +169482,7 @@ _11: for sz2 > uint32(0) { k2 = uint32(0) for { - if !(k2 < sz2 && int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('\\') && int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('"')) { + if !(k2 < sz2 && (_jsonIsOk[*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))] != 0 || int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) == int32('\''))) { break } goto _21 @@ -167865,7 +169499,16 @@ _11: sz2 -= k2 } if int32(*(*uint8)(unsafe.Pointer(zIn2))) == int32('"') { - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25055, uint32(2)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25178, uint32(2)) + zIn2++ + sz2-- + continue + } + if int32(*(*uint8)(unsafe.Pointer(zIn2))) <= int32(0x1f) { + if (*TJsonString)(unsafe.Pointer(pOut)).FnUsed+uint64(7) > (*TJsonString)(unsafe.Pointer(pOut)).FnAlloc && _jsonStringGrow(tls, pOut, uint32(7)) != 0 { + break + } + _jsonAppendControlChar(tls, pOut, *(*uint8)(unsafe.Pointer(zIn2))) zIn2++ sz2-- continue @@ -167879,7 +169522,7 @@ _11: case int32('\''): _jsonAppendChar(tls, pOut, uint8('\'')) case int32('v'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25058, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25181, uint32(6)) case int32('x'): if sz2 < uint32(4) { p23 = pOut + 33 @@ -167887,12 +169530,12 @@ _11: sz2 = uint32(2) break } - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25065, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25188, uint32(4)) _jsonAppendRawNZ(tls, pOut, zIn2+2, uint32(2)) zIn2 += uintptr(2) sz2 -= uint32(2) case int32('0'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25070, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25193, uint32(6)) case int32('\r'): if sz2 > uint32(2) && int32(*(*uint8)(unsafe.Pointer(zIn2 + 2))) == int32('\n') { zIn2++ @@ -167970,6 +169613,7 @@ _14: goto _16 _15: ; + goto malformed_jsonb malformed_jsonb: ; p29 = pOut + 33 @@ -167980,6 +169624,140 @@ _16: return i + n + *(*Tu32)(unsafe.Pointer(bp)) } +// C documentation +// +// /* Context for recursion of json_pretty() +// */ +type TJsonPretty = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty = TJsonPretty + +type TJsonPretty1 = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty1 = TJsonPretty1 + +// C documentation +// +// /* Append indentation to the pretty JSON under construction */ +func _jsonPrettyIndent(tls *libc.TLS, pPretty uintptr) { + var jj Tu32 + _ = jj + jj = uint32(0) + for { + if !(jj < (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent) { + break + } + _jsonAppendRaw(tls, (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut, (*TJsonPretty)(unsafe.Pointer(pPretty)).FzIndent, (*TJsonPretty)(unsafe.Pointer(pPretty)).FszIndent) + goto _1 + _1: + ; + jj++ + } +} + +// C documentation +// +// /* +// ** Translate the binary JSONB representation of JSON beginning at +// ** pParse->aBlob[i] into a JSON text string. Append the JSON +// ** text onto the end of pOut. Return the index in pParse->aBlob[] +// ** of the first byte past the end of the element that is translated. +// ** +// ** This is a variant of jsonTranslateBlobToText() that "pretty-prints" +// ** the output. Extra whitespace is inserted to make the JSON easier +// ** for humans to read. +// ** +// ** If an error is detected in the BLOB input, the pOut->eErr flag +// ** might get set to JSTRING_MALFORMED. But not all BLOB input errors +// ** are detected. So a malformed JSONB input might either result +// ** in an error, or in incorrect JSON. +// ** +// ** The pOut->eErr JSTRING_OOM flag is set on a OOM. +// */ +func _jsonTranslateBlobToPrettyText(tls *libc.TLS, pPretty uintptr, i Tu32) (r Tu32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var iEnd, j, n Tu32 + var pOut, pParse, p1, p2 uintptr + var _ /* sz at bp+0 */ Tu32 + _, _, _, _, _, _, _ = iEnd, j, n, pOut, pParse, p1, p2 + pParse = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpParse + pOut = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut + n = _jsonbPayloadSize(tls, pParse, i, bp) + if n == uint32(0) { + p1 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + return (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob + uint32(1) + } + switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { + case int32(JSONB_ARRAY): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, uint8('[')) + if j < iEnd { + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25200, uint32(2)) + } + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, uint8(']')) + i = iEnd + case int32(JSONB_OBJECT): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, uint8('{')) + if j < iEnd { + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToText(tls, pParse, j, pOut) + if j > iEnd { + p2 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p2)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p2))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25203, uint32(2)) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25200, uint32(2)) + } + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, uint8('}')) + i = iEnd + default: + i = _jsonTranslateBlobToText(tls, pParse, i, pOut) + break + } + return i +} + // C documentation // // /* Return true if the input pJson @@ -168697,7 +170475,7 @@ func _jsonReturnFromBlob(tls *libc.TLS, pParse uintptr, i Tu32, pCtx uintptr, te db = Xsqlite3_context_db_handle(tls, pCtx) n = _jsonbPayloadSize(tls, pParse, i, bp) if n == uint32(0) { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25061, -int32(1)) return } switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { @@ -168806,6 +170584,7 @@ _6: if *(*Tu32)(unsafe.Pointer(bp)) == uint32(0) { goto returnfromblob_malformed } + goto to_double to_double: ; z1 = _sqlite3DbStrNDup(tls, db, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(i+n), uint64(int32(*(*Tu32)(unsafe.Pointer(bp))))) @@ -168924,13 +170703,15 @@ _14: _15: ; return + goto returnfromblob_oom returnfromblob_oom: ; Xsqlite3_result_error_nomem(tls, pCtx) return + goto returnfromblob_malformed returnfromblob_malformed: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25061, -int32(1)) return } @@ -168971,7 +170752,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob = Xsqlite3_value_blob(tls, pArg) (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob = uint32(Xsqlite3_value_bytes(tls, pArg)) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24909, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25032, -int32(1)) return int32(1) } case int32(SQLITE_TEXT): @@ -168984,7 +170765,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FzJson = zJson (*TJsonParse)(unsafe.Pointer(pParse)).FnJson = nJson if _jsonConvertTextToBlob(tls, pParse, ctx) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25061, -int32(1)) _sqlite3DbFree(tls, (*TJsonParse)(unsafe.Pointer(pParse)).Fdb, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob) libc.Xmemset(tls, pParse, 0, uint64(72)) return int32(1) @@ -169003,10 +170784,10 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin return int32(1) } if int32(*(*uint8)(unsafe.Pointer(z))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25043) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25166) } else { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('-') && int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25036) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25159) } else { _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(n), z) } @@ -169045,7 +170826,7 @@ func _jsonBadPathError(tls *libc.TLS, ctx uintptr, zPath uintptr) (r uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25077, libc.VaList(bp+8, zPath)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25206, libc.VaList(bp+8, zPath)) if ctx == uintptr(0) { return zMsg } @@ -169137,11 +170918,12 @@ func _jsonInsertIntoBlob(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr, e _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto jsonInsertIntoBlob_patherror jsonInsertIntoBlob_patherror: ; _jsonParseFree(tls, p) if rc == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25061, -int32(1)) } else { _jsonBadPathError(tls, ctx, zPath) } @@ -169225,6 +171007,7 @@ func _jsonParseFuncArg(tls *libc.TLS, ctx uintptr, pArg uintptr, flgs Tu32) (r u } } db = Xsqlite3_context_db_handle(tls, ctx) + goto rebuild_from_cache rebuild_from_cache: ; p = _sqlite3DbMallocZero(tls, db, uint64(72)) @@ -169314,6 +171097,7 @@ rebuild_from_cache: } } return p + goto json_pfa_malformed json_pfa_malformed: ; if flgs&uint32(JSON_KEEPERROR) != 0 { @@ -169321,9 +171105,10 @@ json_pfa_malformed: return p } else { _jsonParseFree(tls, p) - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25061, -int32(1)) return uintptr(0) } + goto json_pfa_oom json_pfa_oom: ; _jsonParseFree(tls, pFromCache) @@ -169455,7 +171240,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if int32(*(*uint8)(unsafe.Pointer(zPath))) == int32('$') { v1 = zPath + uintptr(1) } else { - v1 = __ccgo_ts + 25095 + v1 = __ccgo_ts + 25224 } i = _jsonLookupStep(tls, p, uint32(0), v1, uint32(0)) if i >= uint32(JSON_LOOKUP_PATHERROR) { @@ -169465,7 +171250,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25061, -int32(1)) } } eErr = uint8(1) @@ -169483,25 +171268,6 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) _jsonParseFree(tls, p) } -// C documentation -// -// /* True if the string is all digits */ -func _jsonAllDigits(tls *libc.TLS, z uintptr, n int32) (r int32) { - var i int32 - _ = i - i = 0 - for { - if !(i < n && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _1 - _1: - ; - i++ - } - return libc.BoolInt32(i == n) -} - // C documentation // // /* True if the string is all alphanumerics and underscores */ @@ -169588,21 +171354,21 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { ** [NUMBER] ==> $[NUMBER] // Not PG. Purely for convenience */ _jsonStringInit(tls, bp, ctx) - if _jsonAllDigits(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25097, uint32(1)) + if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) == int32(SQLITE_INTEGER) { + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25226, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+5163, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+5227, uint32(2)) } else { if _jsonAllAlphanum(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1663, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1677, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { if int32(*(*uint8)(unsafe.Pointer(zPath))) == int32('[') && nPath >= int32(3) && int32(*(*uint8)(unsafe.Pointer(zPath + uintptr(nPath-int32(1))))) == int32(']') { _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25099, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25228, uint32(2)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25102, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25231, uint32(1)) } } } @@ -169638,11 +171404,11 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { goto json_extract_error /* Return NULL if not found */ } else { _jsonAppendSeparator(tls, bp) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1636, uint32(4)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1650, uint32(4)) } } else { if j == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25061, -int32(1)) goto json_extract_error } else { _jsonBadPathError(tls, ctx, zPath) @@ -169662,6 +171428,7 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } } + goto json_extract_error json_extract_error: ; _jsonStringReset(tls, bp) @@ -169909,7 +171676,7 @@ func _jsonPatchFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == int32(JSON_MERGE_OOM) { Xsqlite3_result_error_nomem(tls, ctx) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25061, -int32(1)) } } _jsonParseFree(tls, pPatch) @@ -169933,7 +171700,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { var _ /* jx at bp+0 */ TJsonString _, _, _ = i, n, z if argc&int32(1) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25104, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25233, -int32(1)) return } _jsonStringInit(tls, bp, ctx) @@ -169944,7 +171711,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { break } if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) != int32(SQLITE_TEXT) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25155, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25284, -int32(1)) _jsonStringReset(tls, bp) return } @@ -170016,7 +171783,7 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25061, -int32(1)) } } goto json_remove_done @@ -170029,9 +171796,11 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto json_remove_patherror json_remove_patherror: ; _jsonBadPathError(tls, ctx, zPath) + goto json_remove_done json_remove_done: ; _jsonParseFree(tls, p) @@ -170051,7 +171820,7 @@ func _jsonReplaceFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { return } if argc&int32(1) == 0 { - _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15798) + _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15891) return } _jsonInsertIntoBlob(tls, ctx, argc, argv, int32(JEDIT_REPL)) @@ -170082,9 +171851,9 @@ func _jsonSetFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { } if argc&int32(1) == 0 { if bIsSet != 0 { - v1 = __ccgo_ts + 25189 + v1 = __ccgo_ts + 25318 } else { - v1 = __ccgo_ts + 25193 + v1 = __ccgo_ts + 25322 } _jsonWrongNumArgs(tls, ctx, v1) return @@ -170132,7 +171901,7 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24938, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25061, -int32(1)) } } goto json_type_done @@ -170141,11 +171910,54 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { i = uint32(0) } Xsqlite3_result_text(tls, ctx, _jsonbType[int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(p)).FaBlob + uintptr(i))))&int32(0x0f)], -int32(1), libc.UintptrFromInt32(0)) + goto json_type_done json_type_done: ; _jsonParseFree(tls, p) } +// C documentation +// +// /* +// ** json_pretty(JSON) +// ** json_pretty(JSON, INDENT) +// ** +// ** Return text that is a pretty-printed rendering of the input JSON. +// ** If the argument is not valid JSON, return NULL. +// ** +// ** The INDENT argument is text that is used for indentation. If omitted, +// ** it defaults to four spaces (the same as PostgreSQL). +// */ +func _jsonPrettyFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { + bp := tls.Alloc(176) + defer tls.Free(176) + var v1 uintptr + var v2 bool + var _ /* s at bp+0 */ TJsonString + var _ /* x at bp+136 */ TJsonPretty + _, _ = v1, v2 /* Pretty printing context */ + libc.Xmemset(tls, bp+136, 0, uint64(32)) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse = _jsonParseFuncArg(tls, ctx, *(*uintptr)(unsafe.Pointer(argv)), uint32(0)) + if (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse == uintptr(0) { + return + } + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpOut = bp + _jsonStringInit(tls, bp, ctx) + if v2 = argc == int32(1); !v2 { + v1 = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = v1 + } + if v2 || v1 == uintptr(0) { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = __ccgo_ts + 25329 + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(4) + } else { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(libc.Xstrlen(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent)) + } + _jsonTranslateBlobToPrettyText(tls, bp+136, uint32(0)) + _jsonReturnString(tls, bp, uintptr(0), uintptr(0)) + _jsonParseFree(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse) +} + // C documentation // // /* @@ -170220,7 +172032,7 @@ func _jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if argc == int32(2) { f = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if f < int64(1) || f > int64(15) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25200, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25334, -int32(1)) return } flags = uint8(f & int64(0x0f)) @@ -170411,7 +172223,7 @@ func _jsonArrayCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25257, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25391, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -170560,7 +172372,7 @@ func _jsonObjectCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25260, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25394, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -170663,7 +172475,7 @@ func _jsonEachConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv _ = argv _ = argc _ = pAux - rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25263) + rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25397) if rc == SQLITE_OK { pNew = _sqlite3DbMallocZero(tls, db, uint64(32)) *(*uintptr)(unsafe.Pointer(ppVtab)) = pNew @@ -170797,7 +172609,7 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { var _ /* sz at bp+0 */ Tu32 _, _, _, _, _ = i, k, n, needQuote, z if int32((*TJsonEachCursor)(unsafe.Pointer(p)).FeType) == int32(JSONB_ARRAY) { - _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25346, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) + _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25480, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) } else { *(*Tu32)(unsafe.Pointer(bp)) = uint32(0) needQuote = 0 @@ -170823,9 +172635,9 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { } } if needQuote != 0 { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25353, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25487, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } else { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25361, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25495, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } } } @@ -171211,7 +173023,7 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a i = v5 (*TJsonEachCursor)(unsafe.Pointer(p)).FeType = uint8(0) (*TJsonEachCursor)(unsafe.Pointer(p)).FnRoot = uint32(1) - _jsonAppendRaw(tls, p+56, __ccgo_ts+25367, uint32(1)) + _jsonAppendRaw(tls, p+56, __ccgo_ts+25501, uint32(1)) } (*TJsonEachCursor)(unsafe.Pointer(p)).FnParent = uint32(0) n = _jsonbPayloadSize(tls, p+192, i, bp) @@ -171231,10 +173043,11 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent))).FiValue = i } return SQLITE_OK + goto json_each_malformed_input json_each_malformed_input: ; Xsqlite3_free(tls, (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg) - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24938, 0) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25061, 0) _jsonEachCursorReset(tls, p) if (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg != 0 { v6 = int32(SQLITE_ERROR) @@ -171288,183 +173101,193 @@ func init() { // ** Register JSON functions. // */ func _sqlite3RegisterJsonFunctions(tls *libc.TLS) { - _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2304)/libc.Uint64FromInt64(72))) + _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2448)/libc.Uint64FromInt64(72))) } -var _aJsonFunc = [32]TFuncDef{ +var _aJsonFunc = [34]TFuncDef{ 0: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25369, + FzName: __ccgo_ts + 25503, }, 1: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25374, + FzName: __ccgo_ts + 25508, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25380, + FzName: __ccgo_ts + 25514, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25391, + FzName: __ccgo_ts + 25525, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25403, + FzName: __ccgo_ts + 25537, }, 5: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25403, + FzName: __ccgo_ts + 25537, }, 6: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25421, + FzName: __ccgo_ts + 25555, }, 7: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25441, + FzName: __ccgo_ts + 25575, }, 8: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25454, + FzName: __ccgo_ts + 25588, }, 9: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_JSON) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25468, + FzName: __ccgo_ts + 25602, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_SQL) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25471, + FzName: __ccgo_ts + 25605, }, 11: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25475, + FzName: __ccgo_ts + 25609, }, 12: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25487, + FzName: __ccgo_ts + 25621, }, 13: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25500, + FzName: __ccgo_ts + 25634, }, 14: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25512, + FzName: __ccgo_ts + 25646, }, 15: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25525, + FzName: __ccgo_ts + 25659, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25536, + FzName: __ccgo_ts + 25670, }, 17: { FnArg: int8(1), - FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25548, + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25682, }, 18: { + FnArg: int8(2), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25682, + }, + 19: { + FnArg: int8(1), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25694, + }, + 20: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25559, + FzName: __ccgo_ts + 25705, }, - 19: { + 21: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25571, + FzName: __ccgo_ts + 25717, }, - 20: { + 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25584, + FzName: __ccgo_ts + 25730, }, - 21: { + 23: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25597, + FzName: __ccgo_ts + 25743, }, - 22: { + 24: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25611, + FzName: __ccgo_ts + 25757, }, - 23: { + 25: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25620, + FzName: __ccgo_ts + 25766, }, - 24: { + 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25630, + FzName: __ccgo_ts + 25776, }, - 25: { + 27: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25630, + FzName: __ccgo_ts + 25776, }, - 26: { + 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25640, + FzName: __ccgo_ts + 25786, }, - 27: { + 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25640, + FzName: __ccgo_ts + 25786, }, - 28: { + 30: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25651, + FzName: __ccgo_ts + 25797, }, - 29: { + 31: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25668, + FzName: __ccgo_ts + 25814, }, - 30: { + 32: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25686, + FzName: __ccgo_ts + 25832, }, - 31: { + 33: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25704, + FzName: __ccgo_ts + 25850, }, } @@ -171487,33 +173310,35 @@ func init() { *(*uintptr)(unsafe.Add(p, 1032)) = __ccgo_fp(_jsonObjectFunc) *(*uintptr)(unsafe.Add(p, 1104)) = __ccgo_fp(_jsonPatchFunc) *(*uintptr)(unsafe.Add(p, 1176)) = __ccgo_fp(_jsonPatchFunc) - *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonQuoteFunc) - *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2048)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2056)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2064)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2120)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2128)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2136)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonQuoteFunc) + *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2208)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2280)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2328)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2336)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2344)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2352)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2400)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2408)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2416)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2424)) = __ccgo_fp(_jsonGroupInverse) } // C documentation @@ -171545,11 +173370,11 @@ var _aMod = [2]struct { FpModule uintptr }{ 0: { - FzName: __ccgo_ts + 25723, + FzName: __ccgo_ts + 25869, FpModule: uintptr(unsafe.Pointer(&_jsonEachModule)), }, 1: { - FzName: __ccgo_ts + 25733, + FzName: __ccgo_ts + 25879, FpModule: uintptr(unsafe.Pointer(&_jsonTreeModule)), }, } @@ -172196,7 +174021,7 @@ func _nodeAcquire(tls *libc.TLS, pRtree uintptr, iNode Ti64, pParent uintptr, pp } } if (*TRtree)(unsafe.Pointer(pRtree)).FpNodeBlob == uintptr(0) { - rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25743, iNode, 0, pRtree+112) + rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25889, iNode, 0, pRtree+112) } if rc != 0 { *(*uintptr)(unsafe.Pointer(ppNode)) = uintptr(0) @@ -172501,7 +174326,7 @@ func _rtreeDestroy(tls *libc.TLS, pVtab uintptr) (r int32) { var rc int32 _, _, _ = pRtree, rc, zCreate pRtree = pVtab - zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25748, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25894, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if !(zCreate != 0) { rc = int32(SQLITE_NOMEM) } else { @@ -173423,7 +175248,7 @@ func _findLeafNode(tls *libc.TLS, pRtree uintptr, iRowid Ti64, ppLeaf uintptr, p func _deserializeGeometry(tls *libc.TLS, pValue uintptr, pCons uintptr) (r int32) { var pBlob, pInfo, pSrc uintptr _, _, _ = pBlob, pInfo, pSrc /* Callback information */ - pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25830) + pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25976) if pSrc == uintptr(0) { return int32(SQLITE_ERROR) } @@ -173478,7 +175303,7 @@ func _rtreeFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintp iRowid = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) *(*Ti64)(unsafe.Pointer(bp + 24)) = 0 eType = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv))) - if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv))) == float64(iRowid) { + if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && 0 == _sqlite3IntFloatCompare(tls, iRowid, Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))) { rc = _findLeafNode(tls, pRtree, iRowid, bp+16, bp+24) } else { rc = SQLITE_OK @@ -174528,6 +176353,7 @@ func _SplitNode(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iHe rc = _nodeRelease(tls, pRtree, pLeft) pLeft = uintptr(0) } + goto splitnode_out splitnode_out: ; _nodeRelease(tls, pRtree, pRight) @@ -174957,7 +176783,7 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) var _ /* pStmt at bp+0 */ uintptr _, _, _, _, _, _ = rc, zCol, zCol1, zCol2, zSql, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25844, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25990, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if zSql != 0 { rc = Xsqlite3_prepare_v2(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, -int32(1), bp, uintptr(0)) } else { @@ -174967,11 +176793,11 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) if rc == SQLITE_OK { if iCol == 0 { zCol = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25864, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26010, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) } else { zCol1 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol) zCol2 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol+int32(1)) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25896, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26042, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) } } Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -175133,6 +176959,7 @@ func _rtreeUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pRow rc = Xsqlite3_reset(tls, pUp) } } + goto constraint constraint: ; _rtreeRelease(tls, pRtree) @@ -175184,7 +177011,7 @@ func _rtreeRename(tls *libc.TLS, pVtab uintptr, zNewName uintptr) (r int32) { _, _, _ = pRtree, rc, zSql pRtree = pVtab rc = int32(SQLITE_NOMEM) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25933, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26079, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) if zSql != 0 { _nodeBlobReset(tls, pRtree) rc = Xsqlite3_exec(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, uintptr(0), uintptr(0), uintptr(0)) @@ -175238,9 +177065,9 @@ func _rtreeQueryStat1(tls *libc.TLS, db uintptr, pRtree uintptr) (r int32) { var v2 int64 var _ /* p at bp+0 */ uintptr _, _, _, _, _, _ = nRow, rc, zFmt, zSql, v1, v2 - zFmt = __ccgo_ts + 26078 + zFmt = __ccgo_ts + 26224 nRow = int64(RTREE_MIN_ROWEST) - rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11584, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11709, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc != SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FnRowEst = int64(RTREE_DEFAULT_ROWEST) if rc == int32(SQLITE_ERROR) { @@ -175298,9 +177125,9 @@ func _rtreeShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName1 = [3]uintptr{ - 0: __ccgo_ts + 26134, - 1: __ccgo_ts + 5486, - 2: __ccgo_ts + 16696, + 0: __ccgo_ts + 26280, + 1: __ccgo_ts + 5550, + 2: __ccgo_ts + 16783, } var _rtreeModule = Tsqlite3_module{ @@ -175344,21 +177171,21 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref (*TRtree)(unsafe.Pointer(pRtree)).Fdb = db if isCreate != 0 { p = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26548, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26694, libc.VaList(bp+8, zDb, zPrefix)) ii = 0 for { if !(ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26610, libc.VaList(bp+8, ii)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26756, libc.VaList(bp+8, ii)) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26615, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26679, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26749, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26761, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26825, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26895, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) zCreate = Xsqlite3_str_finish(tls, p) if !(zCreate != 0) { return int32(SQLITE_NOMEM) @@ -175388,7 +177215,7 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } else { /* An UPSERT is very slightly slower than REPLACE, but it is needed ** if there are auxiliary columns */ - zFormat = __ccgo_ts + 26798 + zFormat = __ccgo_ts + 26944 } zSql = Xsqlite3_mprintf(tls, zFormat, libc.VaList(bp+8, zDb, zPrefix)) if zSql != 0 { @@ -175403,31 +177230,31 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref i++ } if (*TRtree)(unsafe.Pointer(pRtree)).FnAux != 0 && rc != int32(SQLITE_NOMEM) { - (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+26906, libc.VaList(bp+8, zDb, zPrefix)) + (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+27052, libc.VaList(bp+8, zDb, zPrefix)) if (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { p1 = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26951, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27097, libc.VaList(bp+8, zDb, zPrefix)) ii1 = 0 for { if !(ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } if ii1 != 0 { - Xsqlite3_str_append(tls, p1, __ccgo_ts+13092, int32(1)) + Xsqlite3_str_append(tls, p1, __ccgo_ts+13217, int32(1)) } if ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull) { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26978, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27124, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) } else { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27000, libc.VaList(bp+8, ii1, ii1+int32(2))) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27146, libc.VaList(bp+8, ii1, ii1+int32(2))) } goto _3 _3: ; ii1++ } - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27008, 0) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27154, 0) zSql1 = Xsqlite3_str_finish(tls, p1) if zSql1 == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -175441,14 +177268,14 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } var _azSql = [8]uintptr{ - 0: __ccgo_ts + 26139, - 1: __ccgo_ts + 26192, - 2: __ccgo_ts + 26237, - 3: __ccgo_ts + 26289, - 4: __ccgo_ts + 26343, - 5: __ccgo_ts + 26388, - 6: __ccgo_ts + 26446, - 7: __ccgo_ts + 26501, + 0: __ccgo_ts + 26285, + 1: __ccgo_ts + 26338, + 2: __ccgo_ts + 26383, + 3: __ccgo_ts + 26435, + 4: __ccgo_ts + 26489, + 5: __ccgo_ts + 26534, + 6: __ccgo_ts + 26592, + 7: __ccgo_ts + 26647, } // C documentation @@ -175506,7 +177333,7 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE _, _ = rc, zSql if isCreate != 0 { *(*int32)(unsafe.Pointer(bp)) = 0 - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27024, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27170, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) rc = _getIntFromStmt(tls, db, zSql, bp) if rc == SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = *(*int32)(unsafe.Pointer(bp)) - int32(64) @@ -175514,17 +177341,17 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = int32(4) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*int32(RTREE_MAXCELLS) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } } else { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27044, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27190, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) rc = _getIntFromStmt(tls, db, zSql, pRtree+32) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } else { if (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize < libc.Int32FromInt32(512)-libc.Int32FromInt32(64) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< libc.Int32FromInt32(RTREE_MAX_AUX_COLUMN)+libc.Int32FromInt32(3) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) return int32(SQLITE_ERROR) } Xsqlite3_vtab_config(tls, db, int32(SQLITE_VTAB_CONSTRAINT_SUPPORT), libc.VaList(bp+8, int32(1))) @@ -175601,13 +177428,13 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27287, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27433, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27293, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27439, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) ii = int32(4) for { if !(ii < argc) { @@ -175616,7 +177443,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt zArg = *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)) if int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('+') { (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27317, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27463, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) } else { if int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux) > 0 { break @@ -175630,19 +177457,19 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27344, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27490, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) } else { if ii < argc { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, aErrMsg[int32(4)])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, aErrMsg[int32(4)])) rc = int32(SQLITE_ERROR) } else { v3 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v3 if SQLITE_OK != v3 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } } @@ -175665,7 +177492,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } } if iErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, aErrMsg[iErr])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, aErrMsg[iErr])) goto rtreeInit_fail } (*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell = uint8(int32(8) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)*int32(4)) @@ -175676,11 +177503,12 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto rtreeInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto rtreeInit_fail rtreeInit_fail: ; if rc == SQLITE_OK { @@ -175691,8 +177519,8 @@ rtreeInit_fail: } var _azFormat = [2]uintptr{ - 0: __ccgo_ts + 27323, - 1: __ccgo_ts + 27334, + 0: __ccgo_ts + 27469, + 1: __ccgo_ts + 27480, } // C documentation @@ -175750,21 +177578,21 @@ func _rtreenode(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { } _nodeGetCell(tls, bp+40, bp, ii, bp+1008) if ii > 0 { - Xsqlite3_str_append(tls, pOut, __ccgo_ts+11204, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+11329, int32(1)) } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27347, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27493, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) jj = 0 for { if !(jj < int32((*(*TRtree)(unsafe.Pointer(bp + 40))).FnDim2)) { break } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27353, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27499, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) goto _2 _2: ; jj++ } - Xsqlite3_str_append(tls, pOut, __ccgo_ts+27357, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+27503, int32(1)) goto _1 _1: ; @@ -175791,7 +177619,7 @@ func _rtreedepth(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { _ = zBlob _ = nArg if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apArg))) != int32(SQLITE_BLOB) || Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(apArg))) < int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+27359, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+27505, -int32(1)) } else { zBlob = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(apArg))) if zBlob != 0 { @@ -175909,11 +177737,11 @@ func _rtreeCheckAppendMsg(tls *libc.TLS, pCheck uintptr, zFmt uintptr, va uintpt (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } else { if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport != 0 { - v1 = __ccgo_ts + 4205 + v1 = __ccgo_ts + 4269 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27392, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27538, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport == uintptr(0) { (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } @@ -175947,7 +177775,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt _, _, _ = nNode, pNode, pRet pRet = uintptr(0) /* Return value */ if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode == uintptr(0) { - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27399, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27545, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) } if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { Xsqlite3_bind_int64(tls, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, int32(1), iNode) @@ -175964,7 +177792,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt } _rtreeCheckReset(tls, pCheck, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && pRet == uintptr(0) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27444, libc.VaList(bp+8, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27590, libc.VaList(bp+8, iNode)) } } return pRet @@ -175993,8 +177821,8 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i var rc int32 _, _, _, _, _, _ = azSql, ii, pStmt, rc, v1, v2 azSql = [2]uintptr{ - 0: __ccgo_ts + 27476, - 1: __ccgo_ts + 27530, + 0: __ccgo_ts + 27622, + 1: __ccgo_ts + 27676, } if *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) = _rtreeCheckPrepare(tls, pCheck, azSql[bLeaf], libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) @@ -176007,21 +177835,21 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i rc = Xsqlite3_step(tls, pStmt) if rc == int32(SQLITE_DONE) { if bLeaf != 0 { - v1 = __ccgo_ts + 27578 + v1 = __ccgo_ts + 27724 } else { - v1 = __ccgo_ts + 27586 + v1 = __ccgo_ts + 27732 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27595, libc.VaList(bp+8, iKey, iVal, v1)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27741, libc.VaList(bp+8, iKey, iVal, v1)) } else { if rc == int32(SQLITE_ROW) { ii = Xsqlite3_column_int64(tls, pStmt, 0) if ii != iVal { if bLeaf != 0 { - v2 = __ccgo_ts + 27578 + v2 = __ccgo_ts + 27724 } else { - v2 = __ccgo_ts + 27586 + v2 = __ccgo_ts + 27732 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27640, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27786, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) } } } @@ -176066,7 +177894,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 v2 = libc.BoolInt32(*(*TRtreeValue)(unsafe.Pointer(bp)) > *(*TRtreeValue)(unsafe.Pointer(bp + 4))) } if v2 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27698, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27844, libc.VaList(bp+24, i, iCell, iNode)) } if pParent != 0 { _readCoord(tls, pParent+uintptr(libc.Int32FromInt32(4)*libc.Int32FromInt32(2)*i), bp+8) @@ -176084,7 +177912,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 } } if v5 || v4 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27746, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27892, libc.VaList(bp+24, i, iCell, iNode)) } } goto _1 @@ -176117,19 +177945,19 @@ func _rtreeCheckNode(tls *libc.TLS, pCheck uintptr, iDepth int32, aParent uintpt aNode = _rtreeCheckGetNode(tls, pCheck, iNode, bp) if aNode != 0 { if *(*int32)(unsafe.Pointer(bp)) < int32(4) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27813, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27959, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) } else { /* Used to iterate through cells */ if aParent == uintptr(0) { iDepth = _readInt16(tls, aNode) if iDepth > int32(RTREE_MAX_DEPTH) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27847, libc.VaList(bp+16, iDepth)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27993, libc.VaList(bp+16, iDepth)) Xsqlite3_free(tls, aNode) return } } nCell = _readInt16(tls, aNode+2) if int32(4)+nCell*(int32(8)+(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnDim*int32(2)*int32(4)) > *(*int32)(unsafe.Pointer(bp)) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27877, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28023, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) } else { i = 0 for { @@ -176174,12 +178002,12 @@ func _rtreeCheckCount(tls *libc.TLS, pCheck uintptr, zTbl uintptr, nExpect Ti64) var pCount uintptr _, _ = nActual, pCount if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { - pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27932, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) + pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+28078, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) if pCount != 0 { if Xsqlite3_step(tls, pCount) == int32(SQLITE_ROW) { nActual = Xsqlite3_column_int64(tls, pCount, 0) if nActual != nExpect { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27963, libc.VaList(bp+8, zTbl, nExpect, nActual)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28109, libc.VaList(bp+8, zTbl, nExpect, nActual)) } } (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = Xsqlite3_finalize(tls, pCount) @@ -176208,7 +178036,7 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzDb = zDb (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzTab = zTab /* Find the number of auxiliary columns */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28030, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28176, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { nAux = Xsqlite3_column_count(tls, pStmt) - int32(2) Xsqlite3_finalize(tls, pStmt) @@ -176218,11 +178046,11 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe } } /* Find number of dimensions in the rtree table. */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25844, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25990, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim = (Xsqlite3_column_count(tls, pStmt) - int32(1) - nAux) / int32(2) if (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim < int32(1) { - _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28058, 0) + _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28204, 0) } else { if int32(SQLITE_ROW) == Xsqlite3_step(tls, pStmt) { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FbInt = libc.BoolInt32(Xsqlite3_column_type(tls, pStmt, int32(1)) == int32(SQLITE_INTEGER)) @@ -176238,8 +178066,8 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe if (*(*TRtreeCheck)(unsafe.Pointer(bp))).Frc == SQLITE_OK { _rtreeCheckNode(tls, bp, 0, uintptr(0), int64(1)) } - _rtreeCheckCount(tls, bp, __ccgo_ts+28089, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) - _rtreeCheckCount(tls, bp, __ccgo_ts+28096, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28235, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28242, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) } /* Finalize SQL statements used by the integrity-check */ Xsqlite3_finalize(tls, (*(*TRtreeCheck)(unsafe.Pointer(bp))).FpGetNode) @@ -176266,7 +178094,7 @@ func _rtreeIntegrity(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zName uintpt _ = isQuick rc = _rtreeCheckTable(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, pzErr) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28104, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28250, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) if *(*uintptr)(unsafe.Pointer(pzErr)) == uintptr(0) { rc = int32(SQLITE_NOMEM) } @@ -176317,13 +178145,13 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { var _ /* zReport at bp+0 */ uintptr _, _, _, _ = rc, zDb, zTab, v1 if nArg != int32(1) && nArg != int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+28123, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+28269, -int32(1)) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zDb = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg))) if nArg == int32(1) { zTab = zDb - zDb = __ccgo_ts + 6587 + zDb = __ccgo_ts + 6651 } else { zTab = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8))) } @@ -176332,7 +178160,7 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(bp)) } else { - v1 = __ccgo_ts + 18463 + v1 = __ccgo_ts + 18550 } Xsqlite3_result_text(tls, ctx, v1, -int32(1), uintptr(-libc.Int32FromInt32(1))) } else { @@ -176665,6 +178493,7 @@ func _geopolyParseJson(tls *libc.TLS, z uintptr, pRc uintptr) (r uintptr) { rc = int32(SQLITE_ERROR) } } + goto parse_json_err parse_json_err: ; if pRc != 0 { @@ -176798,19 +178627,19 @@ func _geopolyJsonFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if p != 0 { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) - Xsqlite3_str_append(tls, x, __ccgo_ts+25097, int32(1)) + Xsqlite3_str_append(tls, x, __ccgo_ts+25226, int32(1)) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28174, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28320, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28185, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28331, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -176839,20 +178668,20 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) cSep = uint8('\'') - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28196, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28342, 0) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28214, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28360, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) cSep = uint8(' ') goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28222, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28368, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) i = int32(1) for { if !(i < argc) { @@ -176860,14 +178689,14 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if z != 0 && *(*uint8)(unsafe.Pointer(z)) != 0 { - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28230, libc.VaList(bp+8, z)) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28376, libc.VaList(bp+8, z)) } goto _2 _2: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28234, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28380, 0) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -177172,6 +179001,7 @@ func _geopolyBBox(tls *libc.TLS, context uintptr, pPoly uintptr, aCoord uintptr, if !(aCoord == uintptr(0)) { goto _6 } + goto geopolyBboxFill geopolyBboxFill: ; pOut = Xsqlite3_realloc64(tls, p, libc.Uint64FromInt64(40)+libc.Uint64FromInt64(4)*libc.Uint64FromInt32(2)*uint64(libc.Int32FromInt32(4)-libc.Int32FromInt32(4))) @@ -177275,8 +179105,8 @@ func _geopolyBBoxStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if pBBox == uintptr(0) { return } - if (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit == 0 { - (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit = int32(1) + if libc.AtomicLoadPInt32(pBBox) == 0 { + libc.AtomicStorePInt32(pBBox, int32(1)) libc.Xmemcpy(tls, pBBox+4, bp, libc.Uint64FromInt64(4)*libc.Uint64FromInt32(4)) } else { if *(*TRtreeValue)(unsafe.Pointer(bp)) < *(*TRtreeValue)(unsafe.Pointer(pBBox + 4)) { @@ -177903,6 +179733,7 @@ func _geopolyOverlap(tls *libc.TLS, p1 uintptr, p2 uintptr) (r int32) { } } } + goto geopolyOverlapDone geopolyOverlapDone: ; Xsqlite3_free(tls, p) @@ -177994,13 +179825,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27287, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27433, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28247, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28393, 0) (*TRtree)(unsafe.Pointer(pRtree)).FnAux = uint8(1) /* Add one for _shape */ (*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull = uint8(1) /* The _shape column is always not-null */ ii = int32(3) @@ -178009,13 +179840,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint break } (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28269, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28415, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27344, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27490, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) @@ -178023,7 +179854,7 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint v2 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v2 if SQLITE_OK != v2 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } Xsqlite3_free(tls, zSql) @@ -178038,11 +179869,12 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto geopolyInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto geopolyInit_fail geopolyInit_fail: ; if rc == SQLITE_OK { @@ -178191,6 +180023,7 @@ func _geopolyFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uin *(*int32)(unsafe.Pointer(bp + 8)) = _rtreeStepToLeaf(tls, pCsr) } } + goto geopoly_filter_end geopoly_filter_end: ; _nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp))) @@ -178248,7 +180081,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iRowidTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(1) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16696 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16783 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).Fomit = uint8(1) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(30) @@ -178258,7 +180091,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iFuncTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = idxNum - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28273 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28419 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).Fomit = uint8(0) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(300) @@ -178266,7 +180099,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { return SQLITE_OK } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(4) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28279 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28425 (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(3e+06) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(100000) return SQLITE_OK @@ -178386,7 +180219,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR _geopolyBBox(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(aData + 2*8)), bp+8+8, bp) if *(*int32)(unsafe.Pointer(bp)) != 0 { if *(*int32)(unsafe.Pointer(bp)) == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28288, 0) + (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28434, 0) } goto geopoly_update_end } @@ -178473,6 +180306,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, pUp) } } + goto geopoly_update_end geopoly_update_end: ; _rtreeRelease(tls, pRtree) @@ -178488,12 +180322,12 @@ geopoly_update_end: func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28328) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28474) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28344) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28490) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) @@ -178564,7 +180398,7 @@ func _sqlite3_geopoly_init(tls *libc.TLS, db uintptr) (r int32) { i++ } if rc == SQLITE_OK { - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28521, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28667, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) } return rc } @@ -178578,61 +180412,61 @@ var _aFunc = [12]struct { 0: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28359, + FzName: __ccgo_ts + 28505, }, 1: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28372, + FzName: __ccgo_ts + 28518, }, 2: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28385, + FzName: __ccgo_ts + 28531, }, 3: { FnArg: int8(-int32(1)), FbPure: uint8(1), - FzName: __ccgo_ts + 28398, + FzName: __ccgo_ts + 28544, }, 4: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28344, + FzName: __ccgo_ts + 28490, }, 5: { FnArg: int8(3), FbPure: uint8(1), - FzName: __ccgo_ts + 28410, + FzName: __ccgo_ts + 28556, }, 6: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28328, + FzName: __ccgo_ts + 28474, }, 7: { FnArg: int8(1), - FzName: __ccgo_ts + 28433, + FzName: __ccgo_ts + 28579, }, 8: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28447, + FzName: __ccgo_ts + 28593, }, 9: { FnArg: int8(7), FbPure: uint8(1), - FzName: __ccgo_ts + 28460, + FzName: __ccgo_ts + 28606, }, 10: { FnArg: int8(4), FbPure: uint8(1), - FzName: __ccgo_ts + 28474, + FzName: __ccgo_ts + 28620, }, 11: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28490, + FzName: __ccgo_ts + 28636, }, } @@ -178658,7 +180492,7 @@ var _aAgg = [1]struct { FzName uintptr }{ 0: { - FzName: __ccgo_ts + 28502, + FzName: __ccgo_ts + 28648, }, } @@ -178683,20 +180517,20 @@ func _sqlite3RtreeInit(tls *libc.TLS, db uintptr) (r int32) { var rc, utf8 int32 _, _, _, _ = c, c1, rc, utf8 utf8 = int32(SQLITE_UTF8) - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28529, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28675, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28539, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28685, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28550, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28696, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { c = libc.UintptrFromInt32(RTREE_COORD_REAL32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28273, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28419, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) } if rc == SQLITE_OK { c1 = libc.UintptrFromInt32(RTREE_COORD_INT32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28561, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28707, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) } if rc == SQLITE_OK { rc = _sqlite3_geopoly_init(tls, db) @@ -178798,7 +180632,7 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { Xsqlite3_result_error_nomem(tls, ctx) _rtreeMatchArgFree(tls, pBlob) } else { - Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25830, __ccgo_fp(_rtreeMatchArgFree)) + Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25976, __ccgo_fp(_rtreeMatchArgFree)) } } } @@ -180015,7 +181849,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt /* Figure out the size of the output */ nOut = _rbuDeltaOutputSize(tls, aDelta, nDelta) if nOut < 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+28571, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28717, -int32(1)) return } aOut = Xsqlite3_malloc(tls, nOut+int32(1)) @@ -180025,7 +181859,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt nOut2 = _rbuDeltaApply(tls, aOrig, nOrig, aDelta, nDelta, aOut) if nOut2 != nOut { Xsqlite3_free(tls, aOut) - Xsqlite3_result_error(tls, context, __ccgo_ts+28571, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28717, -int32(1)) } else { Xsqlite3_result_blob(tls, context, aOut, nOut, __ccgo_fp(Xsqlite3_free)) } @@ -180051,7 +181885,7 @@ func _prepareAndCollectError(tls *libc.TLS, db uintptr, ppStmt uintptr, pzErrmsg _ = rc rc = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), ppStmt, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) } return rc @@ -180074,7 +181908,7 @@ func _resetAndCollectError(tls *libc.TLS, pStmt uintptr, pzErrmsg uintptr) (r in _ = rc rc = Xsqlite3_reset(tls, pStmt) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) } return rc } @@ -180206,7 +182040,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { /* Free any SQLite statements used while processing the previous object */ _rbuObjIterClearStatements(tls, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28592, uintptr(0), uintptr(0), p+64) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28738, uintptr(0), uintptr(0), p+64) } if rc == SQLITE_OK { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 { @@ -180216,6 +182050,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { if rc != int32(SQLITE_ROW) { rc = _resetAndCollectError(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, p+64) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = uintptr(0) + (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = uintptr(0) } else { (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, 0) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, int32(1)) @@ -180294,7 +182129,7 @@ func _rbuTargetNameFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { Xsqlite3_result_text(tls, pCtx, zIn, -int32(1), libc.UintptrFromInt32(0)) } } else { - if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25743, zIn, uint64(4)) == 0 { + if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25889, zIn, uint64(4)) == 0 { i = int32(4) for { if !(int32(*(*uint8)(unsafe.Pointer(zIn + uintptr(i)))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(zIn + uintptr(i)))) <= int32('9')) { @@ -180331,13 +182166,13 @@ func _rbuObjIterFirst(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { _, _ = rc, v1 libc.Xmemset(tls, pIter, 0, uint64(192)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 28763 + v1 = __ccgo_ts + 28909 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+28804, libc.VaList(bp+8, v1))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+28950, libc.VaList(bp+8, v1))) if rc == SQLITE_OK { - rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+28954) + rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+29100) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup = int32(1) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -180504,7 +182339,7 @@ func _rbuFinalize(tls *libc.TLS, p uintptr, pStmt uintptr) { rc = Xsqlite3_finalize(tls, pStmt) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && rc != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } @@ -180565,7 +182400,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu *(*[4]uintptr)(unsafe.Pointer(bp)) = [4]uintptr{} *(*int32)(unsafe.Pointer(peType)) = RBU_PK_NOTABLE *(*int32)(unsafe.Pointer(piPk)) = 0 - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29079, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29225, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK || Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0]) != int32(SQLITE_ROW) { /* Either an error, or no such table. */ goto rbuTableType_end @@ -180575,7 +182410,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } *(*int32)(unsafe.Pointer(piTnum)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0], int32(1)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29198, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29344, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { goto rbuTableType_end } @@ -180583,7 +182418,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu zOrig = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(3)) zIdx = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(1)) if zOrig != 0 && zIdx != 0 && int32(*(*Tu8)(unsafe.Pointer(zOrig))) == int32('p') { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29219, libc.VaList(bp+40, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29365, libc.VaList(bp+40, zIdx))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)]) == int32(SQLITE_ROW) { *(*int32)(unsafe.Pointer(piPk)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)], 0) @@ -180595,7 +182430,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29270, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29416, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { for Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)]) == int32(SQLITE_ROW) { if Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)], int32(5)) > 0 { @@ -180605,6 +182440,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu } *(*int32)(unsafe.Pointer(peType)) = int32(RBU_PK_NONE) } + goto rbuTableType_end rbuTableType_end: ; i = uint32(0) @@ -180638,7 +182474,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { bIndex = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { libc.Xmemcpy(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk, uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29291, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29437, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FnIndex = 0 for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -180651,7 +182487,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { if bPartial != 0 { libc.Xmemset(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, int32(0x01), uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29319, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29465, libc.VaList(bp+24, zIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) if iCid >= 0 { @@ -180704,7 +182540,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 _rbuTableType(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, pIter+72, bp+8, pIter+108) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NOTABLE { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+19906, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+20038, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc @@ -180715,7 +182551,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 /* Populate the azTblCol[] and nTblCol variables based on the columns ** of the input table. Ignore any input table columns that begin with ** "rbu_". */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29348, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29494, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { nCol = Xsqlite3_column_count(tls, *(*uintptr)(unsafe.Pointer(bp))) _rbuAllocateIterArrays(tls, p, pIter, nCol) @@ -180726,7 +182562,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 break } zName = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), i) - if Xsqlite3_strnicmp(tls, __ccgo_ts+29367, zName, int32(4)) != 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+29513, zName, int32(4)) != 0 { zCopy = _rbuStrndup(tls, zName, p+56) *(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)*4)) = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol v3 = pIter + 16 @@ -180734,7 +182570,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 *(*int32)(unsafe.Pointer(v3))++ *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(v2)*8)) = zCopy } else { - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29372, zName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29518, zName) { bRbuRowid = int32(1) } } @@ -180748,17 +182584,17 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && bRbuRowid != libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) if bRbuRowid != 0 { - v4 = __ccgo_ts + 29382 + v4 = __ccgo_ts + 29528 } else { - v4 = __ccgo_ts + 29395 + v4 = __ccgo_ts + 29541 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29404, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29550, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) } /* Check that all non-HIDDEN columns in the destination table are also ** present in the input table. Populate the abTblPk[], azTblType[] and ** aiTblOrder[] arrays at the same time. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29433, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29579, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zName1 = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -180780,7 +182616,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 } if i == (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29455, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29601, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) } else { iPk = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) bNotNull = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) @@ -180819,15 +182655,15 @@ func _rbuObjIterGetCollist(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) var z, zList, zSep uintptr _, _, _, _ = i, z, zList, zSep zList = uintptr(0) - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } z = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+29482, libc.VaList(bp+8, zList, zSep, z)) - zSep = __ccgo_ts + 14992 + zList = _rbuMPrintf(tls, p, __ccgo_ts+29628, libc.VaList(bp+8, zList, zSep, z)) + zSep = __ccgo_ts + 15085 goto _1 _1: ; @@ -180852,7 +182688,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, _, _, _, _, _ = i, iPk, zCol, zRet, zSep iPk = int32(1) zRet = uintptr(0) - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 for int32(1) != 0 { i = 0 for { @@ -180861,7 +182697,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, } if int32(*(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == iPk { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29491, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29637, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) zSep = zSeparator break } @@ -180909,21 +182745,21 @@ func _rbuVacuumTableStart(tls *libc.TLS, p uintptr, pIter uintptr, bRowid int32, *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zRet = uintptr(0) if bRowid != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29504, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29650, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iMax = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29536, libc.VaList(bp+16, iMax)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29682, libc.VaList(bp+16, iMax)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1650, __ccgo_ts+14992, __ccgo_ts+29559) - zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29565, __ccgo_ts+29572, __ccgo_ts+5108) - zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1650, __ccgo_ts+14992, __ccgo_ts+1650) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1664, __ccgo_ts+15085, __ccgo_ts+29705) + zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29711, __ccgo_ts+29718, __ccgo_ts+5172) + zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1664, __ccgo_ts+15085, __ccgo_ts+1664) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29580, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29726, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zVal = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29622, libc.VaList(bp+16, zList, zVal)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29768, libc.VaList(bp+16, zList, zVal)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } @@ -180972,10 +182808,10 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { zVector = uintptr(0) zRet = uintptr(0) bFailed = 0 - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 iCol = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29319, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29465, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(4)) @@ -180997,15 +182833,15 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { - zCol = __ccgo_ts + 29642 + zCol = __ccgo_ts + 29788 } } else { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) } - zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29650, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29671, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) - zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29707, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) - zSep = __ccgo_ts + 14992 + zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29796, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29817, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) + zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29853, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) + zSep = __ccgo_ts + 15085 iCol++ } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) @@ -181014,9 +182850,9 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29734, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29880, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 iCol = 0 for { if !(iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol) { @@ -181031,19 +182867,20 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { break } } - zVector = _rbuMPrintf(tls, p, __ccgo_ts+29782, libc.VaList(bp+24, zVector, zSep, zQuoted)) - zSep = __ccgo_ts + 14992 + zVector = _rbuMPrintf(tls, p, __ccgo_ts+29928, libc.VaList(bp+24, zVector, zSep, zQuoted)) + zSep = __ccgo_ts + 15085 goto _2 _2: ; iCol++ } if !(bFailed != 0) { - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29789, libc.VaList(bp+24, zLhs, zVector)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29935, libc.VaList(bp+24, zLhs, zVector)) } } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } + goto index_start_out index_start_out: ; Xsqlite3_free(tls, zOrder) @@ -181092,11 +182929,11 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zImpPK = uintptr(0) /* String to return via *pzImposterPK */ zWhere = uintptr(0) /* String to return via *pzWhere */ nBind = 0 /* Value to return via *pnBind */ - zCom = __ccgo_ts + 1650 /* Set to ", " later on */ - zAnd = __ccgo_ts + 1650 /* Set to " AND " later on */ + zCom = __ccgo_ts + 1664 /* Set to ", " later on */ + zAnd = __ccgo_ts + 1664 /* Set to " AND " later on */ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_xinfo = ? */ if rc == SQLITE_OK { - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29319, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29465, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -181105,8 +182942,8 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = uintptr(0) if iCid == -int32(2) { iSeq = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29801, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) - zType = __ccgo_ts + 1650 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29947, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) + zType = __ccgo_ts + 1664 } else { if iCid < 0 { /* An integer primary key. If the table has an explicit IPK, use @@ -181125,9 +182962,9 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - zCol = __ccgo_ts + 29642 + zCol = __ccgo_ts + 29788 } else { - zCol = __ccgo_ts + 29372 + zCol = __ccgo_ts + 29518 } } zType = __ccgo_ts + 1138 @@ -181135,24 +182972,24 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) zType = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)) } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29823, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29969, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) } if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbUnique == 0 || Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) != 0 { if bDesc != 0 { - v2 = __ccgo_ts + 29559 + v2 = __ccgo_ts + 29705 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } zOrder = v2 - zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29843, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) + zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29989, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) } - zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+29864, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) - zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+29897, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) + zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+30010, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) + zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+30043, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) if zRet == uintptr(0) || zImpPK == uintptr(0) || zImpCols == uintptr(0) || zWhere == uintptr(0) { rc = int32(SQLITE_NOMEM) } - zCom = __ccgo_ts + 14992 - zAnd = __ccgo_ts + 22015 + zCom = __ccgo_ts + 15085 + zAnd = __ccgo_ts + 22160 nBind++ } rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -181198,7 +183035,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr _, _, _, _ = i, zCol, zList, zS zList = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zS = __ccgo_ts + 1650 + zS = __ccgo_ts + 1664 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -181206,11 +183043,11 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed + uintptr(i))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29921, libc.VaList(bp+8, zList, zS, zObj, zCol)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30067, libc.VaList(bp+8, zList, zS, zObj, zCol)) } else { - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29933, libc.VaList(bp+8, zList, zS)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30079, libc.VaList(bp+8, zList, zS)) } - zS = __ccgo_ts + 14992 + zS = __ccgo_ts + 15085 if zList == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) break @@ -181222,7 +183059,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } /* For a table with implicit rowids, append "old._rowid_" to the list. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29942, libc.VaList(bp+8, zList, zObj)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30088, libc.VaList(bp+8, zList, zObj)) } } return zList @@ -181248,27 +183085,27 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _ = i, i1, zCol, zList, zSep, zSep1 zList = uintptr(0) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29957, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30103, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29971, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) - zSep = __ccgo_ts + 22015 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30117, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) + zSep = __ccgo_ts + 22160 } goto _1 _1: ; i++ } - zList = _rbuMPrintf(tls, p, __ccgo_ts+29983, libc.VaList(bp+8, zList)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30129, libc.VaList(bp+8, zList)) } else { - zSep1 = __ccgo_ts + 1650 + zSep1 = __ccgo_ts + 1664 i1 = 0 for { if !(i1 < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -181276,8 +183113,8 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i1))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i1)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+30033, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) - zSep1 = __ccgo_ts + 22015 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30179, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) + zSep1 = __ccgo_ts + 22160 } goto _2 _2: @@ -181300,7 +183137,7 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { // */ func _rbuBadControlError(tls *libc.TLS, p uintptr) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30046, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30192, 0) } // C documentation @@ -181334,7 +183171,7 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt if int32(libc.Xstrlen(tls, zMask)) != (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { _rbuBadControlError(tls, p) } else { - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -181342,16 +183179,16 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt } c = *(*uint8)(unsafe.Pointer(zMask + uintptr(*(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(i)*4))))) if int32(c) == int32('x') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30033, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14992 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30179, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15085 } else { if int32(c) == int32('d') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30072, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14992 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30218, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15085 } else { if int32(c) == int32('f') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30102, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14992 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30248, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15085 } } } @@ -181435,16 +183272,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _, _ = z, zCol, zDesc, zIdx, zOrig, zSep, v1 z = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zSep = __ccgo_ts + 30139 + zSep = __ccgo_ts + 30285 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_list = (pIter->zTbl) */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA index_xinfo = */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29291, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29437, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zOrig = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) - if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16584) == 0 { + if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16671) == 0 { zIdx = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29319, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29465, libc.VaList(bp+24, zIdx))) } break } @@ -181455,16 +183292,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { /* int iCid = sqlite3_column_int(pXInfo, 0); */ zCol = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(2)) if Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) != 0 { - v1 = __ccgo_ts + 29559 + v1 = __ccgo_ts + 29705 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } zDesc = v1 - z = _rbuMPrintf(tls, p, __ccgo_ts+30152, libc.VaList(bp+24, z, zSep, zCol, zDesc)) - zSep = __ccgo_ts + 14992 + z = _rbuMPrintf(tls, p, __ccgo_ts+30298, libc.VaList(bp+24, z, zSep, zCol, zDesc)) + zSep = __ccgo_ts + 15085 } } - z = _rbuMPrintf(tls, p, __ccgo_ts+30163, libc.VaList(bp+24, z)) + z = _rbuMPrintf(tls, p, __ccgo_ts+30309, libc.VaList(bp+24, z)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } return z @@ -181504,13 +183341,13 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* SELECT name ... WHERE rootpage = $tnum */ zIdx = uintptr(0) /* Name of PK index */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA main.index_xinfo = $zIdx */ - zComma = __ccgo_ts + 1650 + zComma = __ccgo_ts + 1664 zCols = uintptr(0) /* Used to build up list of table cols */ zPk = uintptr(0) /* Used to build up table PK declaration */ /* Figure out the name of the primary key index for the current table. ** This is needed for the argument to "PRAGMA index_xinfo". Set ** zIdx to point to a nul-terminated string containing this name. */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30167) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30313) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), tnum) if int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -181518,7 +183355,7 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { } } if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29319, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29465, libc.VaList(bp+24, zIdx))) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { @@ -181527,21 +183364,21 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) bDesc = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(4)) - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30217, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30363, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) if bDesc != 0 { - v1 = __ccgo_ts + 29559 + v1 = __ccgo_ts + 29705 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - zPk = _rbuMPrintf(tls, p, __ccgo_ts+30239, libc.VaList(bp+24, zPk, zComma, iCid, v1)) - zComma = __ccgo_ts + 14992 + zPk = _rbuMPrintf(tls, p, __ccgo_ts+30385, libc.VaList(bp+24, zPk, zComma, iCid, v1)) + zComma = __ccgo_ts + 15085 } } - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30249, libc.VaList(bp+24, zCols)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30395, libc.VaList(bp+24, zCols)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30264, libc.VaList(bp+24, zCols, zPk)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30410, libc.VaList(bp+24, zCols, zPk)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, 0, 0)) } } @@ -181576,30 +183413,30 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { _, _, _, _, _, _, _, _, _ = iCol, tnum, zCol, zComma, zPk, zPk1, zSql, v2, v3 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { tnum = (*TRbuObjIter)(unsafe.Pointer(pIter)).FiTnum - zComma = __ccgo_ts + 1650 + zComma = __ccgo_ts + 1664 zSql = uintptr(0) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, 0, int32(1))) iCol = 0 for { if !((*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } - zPk = __ccgo_ts + 1650 + zPk = __ccgo_ts + 1664 zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCol)*8)) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_IPK) && *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(iCol))) != 0 { /* If the target table column is an "INTEGER PRIMARY KEY", add ** "PRIMARY KEY" to the imposter table column declaration. */ - zPk = __ccgo_ts + 30326 + zPk = __ccgo_ts + 30472 } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iCol))) != 0 { - v2 = __ccgo_ts + 30339 + v2 = __ccgo_ts + 30485 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30349, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) - zComma = __ccgo_ts + 14992 + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30495, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) + zComma = __ccgo_ts + 15085 goto _1 _1: ; @@ -181608,17 +183445,17 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { zPk1 = _rbuWithoutRowidPK(tls, p, pIter) if zPk1 != 0 { - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30376, libc.VaList(bp+16, zSql, zPk1)) + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30522, libc.VaList(bp+16, zSql, zPk1)) } } - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, int32(1), tnum)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, int32(1), tnum)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { - v3 = __ccgo_ts + 30383 + v3 = __ccgo_ts + 30529 } else { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30398, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, 0, 0)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30544, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, 0, 0)) } } @@ -181644,7 +183481,7 @@ func _rbuObjIterPrepareTmpInsert(tls *libc.TLS, p uintptr, pIter uintptr, zColli bRbuRowid = libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) zBind = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1)+bRbuRowid) if zBind != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30430, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30576, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) } } @@ -181690,7 +183527,7 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt *(*int32)(unsafe.Pointer(bp + 8)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc zRet = uintptr(0) if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30487) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30633) } if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3_bind_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx, -int32(1), libc.UintptrFromInt32(0)) @@ -181859,7 +183696,7 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zIdx = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx zLimit = uintptr(0) if nOffset != 0 { - zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30553, libc.VaList(bp+40, nOffset)) + zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30699, libc.VaList(bp+40, nOffset)) if !(zLimit != 0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } @@ -181876,18 +183713,18 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zCollist = _rbuObjIterGetIndexCols(tls, p, pIter, bp, bp+8, bp+16, bp+24) zBind = _rbuObjIterGetBindlist(tls, p, *(*int32)(unsafe.Pointer(bp + 24))) /* Create the imposter table used to write to this index. */ - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, 0, int32(1))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30573, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30719, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, 0, 0)) /* Create the statement to insert index entries */ (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = *(*int32)(unsafe.Pointer(bp + 24)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30638, libc.VaList(bp+40, zTbl, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30784, libc.VaList(bp+40, zTbl, zBind))) } /* And to delete index entries */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30674, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30820, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) } /* Create the SELECT statement to read keys in sorted order */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -181902,26 +183739,26 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } if zStart != 0 { if zPart != 0 { - v2 = __ccgo_ts + 30708 + v2 = __ccgo_ts + 30854 } else { - v2 = __ccgo_ts + 30712 + v2 = __ccgo_ts + 30858 } v1 = v2 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30718, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30864, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) Xsqlite3_free(tls, zStart) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30779, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30925, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) } else { if zPart != 0 { - v3 = __ccgo_ts + 30708 + v3 = __ccgo_ts + 30854 } else { - v3 = __ccgo_ts + 30712 + v3 = __ccgo_ts + 30858 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30840, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30986, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -181940,62 +183777,62 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zTbl1 = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl /* Imposter table name */ zBindings = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+bRbuRowid) zWhere1 = _rbuObjIterGetWhere(tls, p, pIter) - zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6598) - zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6594) + zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6662) + zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6658) zCollist = _rbuObjIterGetCollist(tls, p, pIter) (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol /* Create the imposter table or tables (if required). */ _rbuCreateImposterTable(tls, p, pIter) _rbuCreateImposterTable2(tls, p, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) { - v4 = __ccgo_ts + 1650 + v4 = __ccgo_ts + 1664 } else { - v4 = __ccgo_ts + 30999 + v4 = __ccgo_ts + 31145 } zWrite = v4 /* Create the INSERT statement to write to the target PK b-tree */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if bRbuRowid != 0 { - v5 = __ccgo_ts + 31008 + v5 = __ccgo_ts + 31154 } else { - v5 = __ccgo_ts + 1650 + v5 = __ccgo_ts + 1664 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31018, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31164, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) } /* Create the DELETE statement to write to the target PK b-tree. ** Because it only performs INSERT operations, this is not required for ** an rbu vacuum handle. */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31054, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31200, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) } if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zRbuRowid = __ccgo_ts + 1650 + zRbuRowid = __ccgo_ts + 1664 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zRbuRowid = __ccgo_ts + 31082 + zRbuRowid = __ccgo_ts + 31228 } /* Create the rbu_tmp_xxx table and the triggers to populate it. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - v6 = __ccgo_ts + 31094 + v6 = __ccgo_ts + 31240 } else { - v6 = __ccgo_ts + 1650 + v6 = __ccgo_ts + 1664 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31111, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31187, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31257, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31333, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31486, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31632, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) } _rbuObjIterPrepareTmpInsert(tls, p, pIter, zCollist, zRbuRowid) } /* Create the SELECT statement to read keys from data_xxx */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zRbuRowid1 = __ccgo_ts + 1650 + zRbuRowid1 = __ccgo_ts + 1664 zStart1 = uintptr(0) zOrder = uintptr(0) if bRbuRowid != 0 { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v7 = __ccgo_ts + 31585 + v7 = __ccgo_ts + 31731 } else { - v7 = __ccgo_ts + 31595 + v7 = __ccgo_ts + 31741 } zRbuRowid1 = v7 } @@ -182008,28 +183845,28 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } } if bRbuRowid != 0 { - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29642, 0) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29788, 0) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1650, __ccgo_ts+14992, __ccgo_ts+1650) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1664, __ccgo_ts+15085, __ccgo_ts+1664) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v8 = __ccgo_ts + 31606 + v8 = __ccgo_ts + 31752 } else { - v8 = __ccgo_ts + 1650 + v8 = __ccgo_ts + 1664 } if zStart1 != 0 { v9 = zStart1 } else { - v9 = __ccgo_ts + 1650 + v9 = __ccgo_ts + 1664 } if zOrder != 0 { - v10 = __ccgo_ts + 23209 + v10 = __ccgo_ts + 23354 } else { - v10 = __ccgo_ts + 1650 + v10 = __ccgo_ts + 1664 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31612, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31758, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) } Xsqlite3_free(tls, zStart1) Xsqlite3_free(tls, zOrder) @@ -182115,11 +183952,11 @@ func _rbuGetUpdateStmt(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintptr, p (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpNext = (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate = pUp if zSet != 0 { - zPrefix = __ccgo_ts + 1650 + zPrefix = __ccgo_ts + 1664 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { - zPrefix = __ccgo_ts + 30999 + zPrefix = __ccgo_ts + 31145 } - zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31660, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) + zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31806, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pUp+8, p+64, zUpdate) *(*uintptr)(unsafe.Pointer(ppStmt)) = (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate } @@ -182146,7 +183983,7 @@ func _rbuOpenDbhandle(tls *libc.TLS, p uintptr, zName uintptr, bUseVfs int32) (r } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_open_v2(tls, zName, bp, flags, v1) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) Xsqlite3_close(tls, *(*uintptr)(unsafe.Pointer(bp))) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) } @@ -182193,7 +184030,7 @@ func _rbuLoadState(tls *libc.TLS, p uintptr) (r uintptr) { if pRet == uintptr(0) { return uintptr(0) } - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31690, libc.VaList(bp+24, p+48))) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31836, libc.VaList(bp+24, p+48))) for *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { switch Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) { case int32(RBU_STATE_STAGE): @@ -182252,27 +184089,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu = _rbuOpenDbhandle(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, int32(1)) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain = dbMain if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6587, int32(SQLITE_FCNTL_RBUCNT), p) + Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6651, int32(SQLITE_FCNTL_RBUCNT), p) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState == uintptr(0) { - zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6587) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31720, libc.VaList(bp+8, zFile, zFile)) + zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6651) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31866, libc.VaList(bp+8, zFile, zFile)) } } /* If using separate RBU and state databases, attach the state database to ** the RBU db handle now. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState != 0 { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31748, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) - libc.Xmemcpy(tls, p+48, __ccgo_ts+3420, uint64(4)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31894, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+3484, uint64(4)) } else { - libc.Xmemcpy(tls, p+48, __ccgo_ts+6587, uint64(4)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+6651, uint64(4)) } /* If it has not already been created, create the rbu_state table */ - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31766, libc.VaList(bp+8, p+48)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31912, libc.VaList(bp+8, p+48)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { bOpen = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FnRbu = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FpRbuFd = uintptr(0) - rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6587, int32(SQLITE_FCNTL_RBUCNT), p) + rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6651, int32(SQLITE_FCNTL_RBUCNT), p) if rc != int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc } @@ -182305,10 +184142,10 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) return } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31832, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31978, 0) } else { zExtra = uintptr(0) - if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24598, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { + if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24721, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { zExtra = (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu + 5 for *(*uint8)(unsafe.Pointer(zExtra)) != 0 { v1 = zExtra @@ -182322,16 +184159,16 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if zExtra == uintptr(0) { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } else { - v2 = __ccgo_ts + 31864 + v2 = __ccgo_ts + 32010 } if zExtra == uintptr(0) { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } else { v3 = zExtra } - zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+31866, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6587), v2, v3)) + zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+32012, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6651), v2, v3)) if zTarget == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) return @@ -182342,27 +184179,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31898, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32044, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31913, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32059, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31930, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32076, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, int32(SQLITE_FCNTL_RBU), p) } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31946, 0) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32092, 0) /* Mark the database file just opened as an RBU target database. If ** this call returns SQLITE_NOTFOUND, then the RBU vfs is not in use. ** This is an error. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6587, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6651, int32(SQLITE_FCNTL_RBU), p) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31974, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32120, 0) } } @@ -182412,7 +184249,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxShmMap})))(tls, pDb, 0, libc.Int32FromInt32(32)*libc.Int32FromInt32(1024), 0, bp) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - iRet = int64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))<= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+32974, zState+uintptr(n-int32(7)), uint64(7)) { + if n >= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+33120, zState+uintptr(n-int32(7)), uint64(7)) { return _rbuMisuseError(tls) } } @@ -183632,7 +185469,7 @@ func _rbuEditErrmsg(tls *libc.TLS, p uintptr) { if !(uint64(i) < nErrmsg-uint64(8)) { break } - if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+30999, uint64(8)) == 0 { + if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31145, uint64(8)) == 0 { nDel = int32(8) for int32(*(*uint8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) <= int32('9') { nDel++ @@ -183660,7 +185497,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { if p != 0 { /* Commit the transaction to the *-oal file. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14896, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14989, uintptr(0), uintptr(0), p+64) } /* Sync the db file if currently doing an incremental checkpoint */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { @@ -183669,7 +185506,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { } _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14896, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14989, uintptr(0), uintptr(0), p+64) } /* Close any open statement handles. */ _rbuObjIterFinalize(tls, p+80) @@ -183679,7 +185516,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { ** specifying the current target and state databases to start a new ** vacuum from scratch. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu != 0 { - rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32982, uintptr(0), uintptr(0), uintptr(0)) + rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33128, uintptr(0), uintptr(0), uintptr(0)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_DONE) && rc2 != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc2 } @@ -183780,7 +185617,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14896, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14989, uintptr(0), uintptr(0), uintptr(0)) } } /* Sync the db file */ @@ -183793,19 +185630,19 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { rc = (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14896, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14989, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 14881 + v1 = __ccgo_ts + 14974 } else { - v1 = __ccgo_ts + 32934 + v1 = __ccgo_ts + 33080 } zBegin = v1 rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, zBegin, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32934, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33080, uintptr(0), uintptr(0), uintptr(0)) } } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -184371,7 +186208,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r rc = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xControl})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, int32(SQLITE_FCNTL_ZIPVFS), bp) if rc == SQLITE_OK { rc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33009, 0) + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33155, 0) } else { if rc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpTargetFd = p @@ -184397,7 +186234,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r if rc == SQLITE_OK && op == int32(SQLITE_FCNTL_VFSNAME) { pRbuVfs = (*Trbu_file)(unsafe.Pointer(p)).FpRbuVfs zIn = *(*uintptr)(unsafe.Pointer(pArg)) - zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33032, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) + zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33178, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) *(*uintptr)(unsafe.Pointer(pArg)) = zOut if zOut == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -184592,7 +186429,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag if pDb != 0 { if (*Trbu_file)(unsafe.Pointer(pDb)).FpRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FeStage == int32(RBU_STAGE_OAL) { if (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FzTarget == uintptr(0) { - zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6587) + zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6651) zOpen = Xsqlite3_filename_wal(tls, zOpen) } nOpen = libc.Xstrlen(tls, zOpen) @@ -184606,7 +186443,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag } else { (*Trbu_file)(unsafe.Pointer(pFd)).FpRbu = (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).FpRbu } - if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33043, 0) != 0 { + if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33189, 0) != 0 { oflags = libc.Int32FromInt32(SQLITE_OPEN_TEMP_DB) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_EXCLUSIVE) | libc.Int32FromInt32(SQLITE_OPEN_DELETEONCLOSE) zOpen = uintptr(0) } @@ -185159,7 +186996,7 @@ func _statConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint _sqlite3TokenInit(tls, bp, *(*uintptr)(unsafe.Pointer(argv + 3*8))) iDb = _sqlite3FindDb(tls, db, bp) if iDb < 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12193, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12318, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) return int32(SQLITE_ERROR) } } else { @@ -185549,6 +187386,7 @@ func _statDecodePage(tls *libc.TLS, pBt uintptr, p uintptr) (r int32) { } } return SQLITE_OK + goto statPageIsCorrupt statPageIsCorrupt: ; (*TStatPage)(unsafe.Pointer(p)).Fflags = uint8(0) @@ -185639,6 +187477,7 @@ func _statNext(tls *libc.TLS, pCursor uintptr) (r int32) { pPager = _sqlite3BtreePager(tls, pBt) Xsqlite3_free(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath) (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = uintptr(0) + goto statNextRestart statNextRestart: ; if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage < 0 { @@ -185656,7 +187495,7 @@ statNextRestart: (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiPgno = iRoot (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33054, 0) + v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33200, 0) z = v1 (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FzPath = v1 if z == uintptr(0) { @@ -185694,8 +187533,8 @@ statNextRestart: if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { (*TStatCursor)(unsafe.Pointer(pCsr)).FzName = Xsqlite3_column_text(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FpStmt, 0) (*TStatCursor)(unsafe.Pointer(pCsr)).FiPageno = *(*Tu32)(unsafe.Pointer((*TStatCell)(unsafe.Pointer(pCell)).FaOvfl + uintptr(iOvfl)*4)) - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33056 - v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33065, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33202 + v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33211, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) z = v2 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v2 if z == uintptr(0) { @@ -185724,7 +187563,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage++ if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage >= int32(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(222551)) + return _sqlite3CorruptError(tls, int32(224206)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -185735,7 +187574,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnPage++ (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33077, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) + v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33223, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) z = v4 (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FzPath = v4 if z == uintptr(0) { @@ -185758,13 +187597,13 @@ statNextRestart: case int32(0x05): /* table internal */ fallthrough case int32(0x02): /* index internal */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33085 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33231 case int32(0x0D): /* table leaf */ fallthrough case int32(0x0A): /* index leaf */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33094 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33240 default: - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33099 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33245 break } *(*int32)(unsafe.Pointer(pCsr + 2108)) += (*TStatPage)(unsafe.Pointer(p1)).FnCell @@ -185773,7 +187612,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnMxPayload = (*TStatPage)(unsafe.Pointer(p1)).FnMxPayload } if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) + v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) z = v5 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v5 if z == uintptr(0) { @@ -185862,12 +187701,12 @@ func _statFilter(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uintptr, a (*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg = uint8(0) } pSql = Xsqlite3_str_new(tls, (*TStatTable)(unsafe.Pointer(pTab)).Fdb) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33109, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33255, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) if zName != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33264, libc.VaList(bp+8, zName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33410, libc.VaList(bp+8, zName)) } if idxNum&int32(0x08) != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33278, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33424, 0) } zSql = Xsqlite3_str_finish(tls, pSql) if zSql == uintptr(0) { @@ -185944,7 +187783,7 @@ func _statRowid(tls *libc.TLS, pCursor uintptr, pRowid uintptr) (r int32) { // ** Invoke this routine to register the "dbstat" virtual table module // */ func _sqlite3DbstatRegister(tls *libc.TLS, db uintptr) (r int32) { - return Xsqlite3_create_module(tls, db, __ccgo_ts+33293, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) + return Xsqlite3_create_module(tls, db, __ccgo_ts+33439, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) } var _dbstat_module = Tsqlite3_module{} @@ -187215,20 +189054,20 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, *(*uintptr)(unsafe.Pointer(pazDflt)) = uintptr(0) } nThis = _sqlite3Strlen30(tls, zThis) - if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11584, zThis) { + if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11709, zThis) { rc = Xsqlite3_table_column_metadata(tls, db, zDb, zThis, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { /* For sqlite_stat1, pretend that (tbl,idx) is the PRIMARY KEY. */ - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33300, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33446, 0) } else { if rc == int32(SQLITE_ERROR) { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1650, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1664, 0) } else { return rc } } } else { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33421, libc.VaList(bp+16, zDb, zThis)) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33567, libc.VaList(bp+16, zDb, zThis)) } if !(zPragma != 0) { return int32(SQLITE_NOMEM) @@ -187252,7 +189091,7 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, bRowid = 0 } nDbCol += bRowid - nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+29642)) + nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+29788)) rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp))) if rc == SQLITE_OK { nByte = Tsqlite3_int64(uint64(nByte) + uint64(nDbCol)*(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(2)+libc.Uint64FromInt64(1)+libc.Uint64FromInt32(1)+libc.Uint64FromInt32(1))) @@ -187276,8 +189115,8 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, } i = 0 if bRowid != 0 { - nName = libc.Xstrlen(tls, __ccgo_ts+29642) - libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29642, nName+uint64(1)) + nName = libc.Xstrlen(tls, __ccgo_ts+29788) + libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29788, nName+uint64(1)) *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)) = pAlloc pAlloc += uintptr(nName + uint64(1)) *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) = uint8(1) @@ -187369,7 +189208,7 @@ func _sessionInitTable(tls *libc.TLS, pSession uintptr, pTab uintptr, db uintptr ; i++ } - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11584, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11709, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 = int32(1) } if pSession != 0 && (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize != 0 { @@ -187658,10 +189497,10 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin _, _, _, _ = ii, zDflt, zSep, v2 *(*TSessionBuffer)(unsafe.Pointer(bp)) = TSessionBuffer{} *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK - zSep = __ccgo_ts + 11204 + zSep = __ccgo_ts + 11329 ii = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33450, 0) + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33596, 0) ii = 0 for { if !(ii < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol) { @@ -187670,11 +189509,11 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin if *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) != 0 { v2 = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) } else { - v2 = __ccgo_ts + 1651 + v2 = __ccgo_ts + 1665 } zDflt = v2 - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5078, libc.VaList(bp+32, zSep, zDflt)) - zSep = __ccgo_ts + 14992 + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5142, libc.VaList(bp+32, zSep, zDflt)) + zSep = __ccgo_ts + 15085 goto _1 _1: ; @@ -187992,7 +189831,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u rc = int32(SQLITE_NOMEM) goto error_out } - _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1650, uint8(0), libc.UintptrFromInt32(0)) + _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1664, uint8(0), libc.UintptrFromInt32(0)) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpZeroBlob = p } } @@ -188109,6 +189948,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u } } /* If an error has occurred, mark the session object as failed. */ + goto error_out error_out: ; if (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 != 0 { @@ -188312,7 +190152,7 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr var i int32 var zRet, zSep uintptr _, _, _ = i, zRet, zSep - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 zRet = uintptr(0) i = 0 for { @@ -188320,8 +190160,8 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr break } if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33457, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 22015 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33603, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 22160 if zRet == uintptr(0) { break } @@ -188340,7 +190180,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint var bHave, i int32 var zRet, zSep uintptr _, _, _, _ = bHave, i, zRet, zSep - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 zRet = uintptr(0) bHave = 0 i = 0 @@ -188350,8 +190190,8 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if int32(*(*Tu8)(unsafe.Pointer(abPK + uintptr(i)))) == 0 { bHave = int32(1) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33491, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 33532 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33637, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 33678 if zRet == uintptr(0) { break } @@ -188362,7 +190202,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint i++ } if bHave == 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1724, 0) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1784, 0) } return zRet } @@ -188373,12 +190213,12 @@ func _sessionSelectFindNew(tls *libc.TLS, zDb1 uintptr, zDb2 uintptr, bRowid int var zRet, zSel, v1 uintptr _, _, _ = zRet, zSel, v1 if bRowid != 0 { - v1 = __ccgo_ts + 33537 + v1 = __ccgo_ts + 33683 } else { - v1 = __ccgo_ts + 6592 + v1 = __ccgo_ts + 6656 } zSel = v1 - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33548, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33694, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) return zRet } @@ -188439,11 +190279,11 @@ func _sessionAllCols(tls *libc.TLS, zDb uintptr, pTab uintptr) (r uintptr) { break } if zRet != 0 { - v2 = __ccgo_ts + 14992 + v2 = __ccgo_ts + 15085 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33627, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33773, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) if !(zRet != 0) { break } @@ -188471,7 +190311,7 @@ func _sessionDiffFindModified(tls *libc.TLS, pSession uintptr, pTab uintptr, zFr } else { z1 = _sessionAllCols(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, pTab) z2 = _sessionAllCols(tls, zFrom, pTab) - zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33646, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) + zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33792, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) if zStmt == uintptr(0) || z1 == uintptr(0) || z2 == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -188571,7 +190411,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if bMismatch != 0 { if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33703, 0) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33849, 0) } rc = int32(SQLITE_SCHEMA) } @@ -188597,6 +190437,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u } Xsqlite3_free(tls, zExpr) } + goto diff_out diff_out: ; _sessionPreupdateHooks(tls, pSession) @@ -188902,7 +190743,7 @@ func _sessionAppendInteger(tls *libc.TLS, p uintptr, iVal int32, pRc uintptr) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* aBuf at bp+0 */ [24]uint8 - Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5140, libc.VaList(bp+32, iVal)) + Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5204, libc.VaList(bp+32, iVal)) _sessionAppendStr(tls, p, bp, pRc) } @@ -189193,23 +191034,23 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt _, _, _, _, _, _, _ = i, nSql, zCols, zSep, zSql, v1, v3 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK zSql = uintptr(0) - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 if bRowid != 0 { - v1 = __ccgo_ts + 33537 + v1 = __ccgo_ts + 33683 } else { - v1 = __ccgo_ts + 6592 + v1 = __ccgo_ts + 6656 } zCols = v1 nSql = -int32(1) *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 24)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 40)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+33730, bp) - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11584, zTab) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+33734, bp) - _sessionAppendStr(tls, bp+24, __ccgo_ts+33758, bp) - _sessionAppendStr(tls, bp+40, __ccgo_ts+33767, bp) - zCols = __ccgo_ts + 33812 + _sessionAppendStr(tls, bp+8, __ccgo_ts+33876, bp) + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11709, zTab) { + _sessionAppendStr(tls, bp+8, __ccgo_ts+33880, bp) + _sessionAppendStr(tls, bp+24, __ccgo_ts+33904, bp) + _sessionAppendStr(tls, bp+40, __ccgo_ts+33913, bp) + zCols = __ccgo_ts + 33958 } else { i = 0 for { @@ -189219,11 +191060,11 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { _sessionAppendStr(tls, bp+24, zSep, bp) _sessionAppendStr(tls, bp+40, zSep, bp) - zSep = __ccgo_ts + 14992 + zSep = __ccgo_ts + 15085 _sessionAppendIdent(tls, bp+24, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), bp) - _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+33826, libc.VaList(bp+64, i+int32(1))) + _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+33972, libc.VaList(bp+64, i+int32(1))) } else { - _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+33830, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+33976, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) } goto _2 _2: @@ -189235,9 +191076,9 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if bIgnoreNoop != 0 { v3 = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf } else { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+33857, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+34003, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) if zSql == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } @@ -189378,7 +191219,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, if (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc != 0 { return (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc } - *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+33899, uintptr(0), uintptr(0), uintptr(0)) + *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+34045, uintptr(0), uintptr(0), uintptr(0)) if *(*int32)(unsafe.Pointer(bp + 16)) != SQLITE_OK { return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -189484,7 +191325,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } } Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf) - Xsqlite3_exec(tls, db, __ccgo_ts+33919, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34065, uintptr(0), uintptr(0), uintptr(0)) Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db)) return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -189901,7 +191742,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, int32(9)) if rc == SQLITE_OK { if (*TSessionInput)(unsafe.Pointer(pIn)).FiNext >= (*TSessionInput)(unsafe.Pointer(pIn)).FnData { - rc = _sqlite3CorruptError(tls, int32(226700)) + rc = _sqlite3CorruptError(tls, int32(228355)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -189925,7 +191766,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, *(*int32)(unsafe.Pointer(bp))) if rc == SQLITE_OK { if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext { - rc = _sqlite3CorruptError(tls, int32(226720)) + rc = _sqlite3CorruptError(tls, int32(228375)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -189940,7 +191781,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap } if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) { if (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext < int32(8) { - rc = _sqlite3CorruptError(tls, int32(226730)) + rc = _sqlite3CorruptError(tls, int32(228385)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -189996,7 +191837,7 @@ func _sessionChangesetBufferTblhdr(tls *libc.TLS, pIn uintptr, pnByte uintptr) ( ** large value for nCol may cause nRead to wrap around and become ** negative. Leading to a crash. */ if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > int32(65536) { - rc = _sqlite3CorruptError(tls, int32(226778)) + rc = _sqlite3CorruptError(tls, int32(228433)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -190101,7 +191942,7 @@ func _sessionChangesetReadTblhdr(tls *libc.TLS, p uintptr) (r int32) { (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FnBuf = 0 _sessionBufferGrow(tls, p+72, int64(nByte), bp) } else { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(226866)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(228521)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -190172,12 +192013,12 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK { return (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc } + _sessionDiscardData(tls, p) + (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext /* If the iterator is already at the end of the changeset, return DONE. */ if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext >= (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FnData { return int32(SQLITE_DONE) } - _sessionDiscardData(tls, p) - (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext v3 = p + 8 v2 = *(*int32)(unsafe.Pointer(v3)) *(*int32)(unsafe.Pointer(v3))++ @@ -190207,7 +192048,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FzTab == uintptr(0) || (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset != 0 && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbInvert != 0 { /* The first record in the changeset is not a table header. Must be a ** corrupt changeset. */ - v7 = _sqlite3CorruptError(tls, int32(226952)) + v7 = _sqlite3CorruptError(tls, int32(228607)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -190217,7 +192058,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = int32(*(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr(v8)))) if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_DELETE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_INSERT) { - v10 = _sqlite3CorruptError(tls, int32(226958)) + v10 = _sqlite3CorruptError(tls, int32(228613)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -190296,7 +192137,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if *(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i+(*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*8)) if *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) == uintptr(0) { - v16 = _sqlite3CorruptError(tls, int32(227002)) + v16 = _sqlite3CorruptError(tls, int32(228657)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -190706,7 +192547,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(227367)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(229022)) goto finished_invert } if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { @@ -190726,6 +192567,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } + goto finished_invert finished_invert: ; Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf) @@ -190908,18 +192750,18 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 } if pUp == uintptr(0) { nByte = int32(uint64(24) * uint64(nU32) * uint64(4)) - bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11584) == 0) + bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11709) == 0) pUp = Xsqlite3_malloc(tls, nByte) if pUp == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } else { - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 libc.Xmemset(tls, bp+8, 0, uint64(16)) (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask = pUp + 1*24 libc.Xmemcpy(tls, (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, uint64(nU32)*uint64(4)) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33937, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34083, bp) _sessionAppendIdent(tls, bp+8, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33950, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34096, bp) /* Create the assignments part of the UPDATE */ ii = 0 for { @@ -190929,9 +192771,9 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if int32(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii)))) == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol+ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33956, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34102, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(1), bp) - zSep = __ccgo_ts + 14992 + zSep = __ccgo_ts + 15085 } goto _2 _2: @@ -190939,8 +192781,8 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 ii++ } /* Create the WHERE clause part of the UPDATE */ - zSep = __ccgo_ts + 1650 - _sessionAppendStr(tls, bp+8, __ccgo_ts+33961, bp) + zSep = __ccgo_ts + 1664 + _sessionAppendStr(tls, bp+8, __ccgo_ts+34107, bp) ii = 0 for { if !(ii < (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol) { @@ -190949,13 +192791,13 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if *(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii))) != 0 || bPatchset == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr(ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) if bStat1 != 0 && ii == int32(1) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+33969, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34115, bp) } else { _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34044, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34190, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(2), bp) } - zSep = __ccgo_ts + 22015 + zSep = __ccgo_ts + 22160 } goto _3 _3: @@ -191038,13 +192880,13 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in var _ /* buf at bp+8 */ TSessionBuffer var _ /* rc at bp+0 */ int32 _, _, _ = i, nPk, zSep - zSep = __ccgo_ts + 1650 + zSep = __ccgo_ts + 1664 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} nPk = 0 - _sessionAppendStr(tls, bp+8, __ccgo_ts+34050, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34196, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33961, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34107, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -191054,9 +192896,9 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in nPk++ _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33956, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34102, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 22015 + zSep = __ccgo_ts + 22160 } goto _1 _1: @@ -191064,10 +192906,10 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in i++ } if nPk < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol { - _sessionAppendStr(tls, bp+8, __ccgo_ts+34068, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34214, bp) _sessionAppendInteger(tls, bp+8, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol+int32(1), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33532, bp) - zSep = __ccgo_ts + 1650 + _sessionAppendStr(tls, bp+8, __ccgo_ts+33678, bp) + zSep = __ccgo_ts + 1664 i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -191076,16 +192918,16 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in if !(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0) { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34044, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34190, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 34076 + zSep = __ccgo_ts + 34222 } goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5108, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5172, bp) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+8, uintptr(0)) @@ -191111,7 +192953,7 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in // */ func _sessionSelectRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r int32) { /* TODO */ - return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6587, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) + return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6651, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) } // C documentation @@ -191134,16 +192976,16 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+34081, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34227, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+22021, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+22166, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } if i != 0 { - _sessionAppendStr(tls, bp+8, __ccgo_ts+14992, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+15085, bp) } _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) goto _1 @@ -191151,19 +192993,19 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34099, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34245, bp) i = int32(1) for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34110, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34256, bp) goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5108, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5172, bp) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+16, uintptr(0)) } @@ -191186,12 +193028,12 @@ func _sessionPrepare(tls *libc.TLS, db uintptr, pp uintptr, zSql uintptr) (r int func _sessionStat1Sql(tls *libc.TLS, db uintptr, p uintptr) (r int32) { var rc int32 _ = rc - rc = _sessionSelectRow(tls, db, __ccgo_ts+11584, p) + rc = _sessionSelectRow(tls, db, __ccgo_ts+11709, p) if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34114) + rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34260) } if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34227) + rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34373) } return rc } @@ -191257,7 +193099,7 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(227849)) + rc = _sqlite3CorruptError(tls, int32(229504)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -191673,7 +193515,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34371, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34517, uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { rc = _sessionBindRow(tls, pIter, __ccgo_fp(Xsqlite3changeset_new), (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FabPK, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) Xsqlite3_bind_int(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol+int32(1), int32(1)) @@ -191686,7 +193528,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34392, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34538, uintptr(0), uintptr(0), uintptr(0)) } } } @@ -191780,10 +193622,10 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbIgnoreNoop = libc.BoolUint8(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_IGNORENOOP) != 0)) Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, db)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34411, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34557, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34437, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34583, uintptr(0), uintptr(0), uintptr(0)) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) @@ -191814,7 +193656,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui ** non-zero, proceed. */ schemaMismatch = libc.BoolInt32(xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { - *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) + *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { rc = int32(SQLITE_NOMEM) break @@ -191824,7 +193666,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } else { nMinCol = 0 Xsqlite3changeset_pk(tls, pIter, bp+152, uintptr(0)) - rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6587, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) + rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6651, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) if rc != SQLITE_OK { break } @@ -191843,18 +193685,18 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol == 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34467, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34613, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol < *(*int32)(unsafe.Pointer(bp + 136)) { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34511, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34657, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) } else { if *(*int32)(unsafe.Pointer(bp + 136)) < nMinCol || libc.Xmemcmp(tls, (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FabPK, *(*uintptr)(unsafe.Pointer(bp + 152)), uint64(*(*int32)(unsafe.Pointer(bp + 136)))) != 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34582, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34728, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol = *(*int32)(unsafe.Pointer(bp + 136)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11584) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11709) { v2 = _sessionStat1Sql(tls, db, bp+8) rc = v2 if v2 != 0 { @@ -191911,13 +193753,13 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } } } - Xsqlite3_exec(tls, db, __ccgo_ts+34642, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34788, uintptr(0), uintptr(0), uintptr(0)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34672, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34818, uintptr(0), uintptr(0), uintptr(0)) } else { - Xsqlite3_exec(tls, db, __ccgo_ts+34696, uintptr(0), uintptr(0), uintptr(0)) - Xsqlite3_exec(tls, db, __ccgo_ts+34672, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34842, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34818, uintptr(0), uintptr(0), uintptr(0)) } } if rc == SQLITE_OK && bPatchset == 0 && (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbRebase != 0 { @@ -192009,6 +193851,7 @@ type Tsqlite3_changegroup1 = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -192365,116 +194208,143 @@ func _sessionChangesetExtendRecord(tls *libc.TLS, pGrp uintptr, pTab uintptr, nC // C documentation // // /* -// ** Add all changes in the changeset traversed by the iterator passed as -// ** the first argument to the changegroup hash tables. +// ** Locate or create a SessionTable object that may be used to add the +// ** change currently pointed to by iterator pIter to changegroup pGrp. +// ** If successful, set output variable (*ppTab) to point to the table +// ** object and return SQLITE_OK. Otherwise, if some error occurs, return +// ** an SQLite error code and leave (*ppTab) set to NULL. // */ -func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { - bp := tls.Alloc(80) - defer tls.Free(80) - var bPkOnly1, bPkOnly2, iHash, nNew, rc int32 - var pExist, pTab, pp, ppTab uintptr - var _ /* aRec at bp+0 */ uintptr - var _ /* abPK at bp+64 */ uintptr - var _ /* bIndirect at bp+48 */ int32 - var _ /* nCol at bp+40 */ int32 - var _ /* nRec at bp+8 */ int32 - var _ /* op at bp+44 */ int32 - var _ /* pChange at bp+56 */ uintptr - var _ /* rec at bp+16 */ TSessionBuffer - var _ /* zNew at bp+32 */ uintptr - _, _, _, _, _, _, _, _, _ = bPkOnly1, bPkOnly2, iHash, nNew, pExist, pTab, pp, ppTab, rc +func _sessionChangesetFindTable(tls *libc.TLS, pGrp uintptr, zTab uintptr, pIter uintptr, ppTab uintptr) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var nTab, rc int32 + var pTab, ppNew uintptr + var _ /* abPK at bp+0 */ uintptr + var _ /* nCol at bp+8 */ int32 + _, _, _, _ = nTab, pTab, ppNew, rc rc = SQLITE_OK pTab = uintptr(0) - *(*TSessionBuffer)(unsafe.Pointer(bp + 16)) = TSessionBuffer{} - for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { - pExist = uintptr(0) - /* Ensure that only changesets, or only patchsets, but not a mixture - ** of both, are being combined. It is an error to try to combine a - ** changeset and a patchset. */ - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset - } else { - if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { - rc = int32(SQLITE_ERROR) - break - } + nTab = int32(libc.Xstrlen(tls, zTab)) + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(ppTab)) = uintptr(0) + Xsqlite3changeset_pk(tls, pIter, bp, bp+8) + /* Search the list for an existing table */ + pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList + for { + if !(pTab != 0) { + break } - Xsqlite3changeset_op(tls, pIter, bp+32, bp+40, bp+44, bp+48) - if !(pTab != 0) || Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), (*TSessionTable)(unsafe.Pointer(pTab)).FzName) != 0 { - /* Search the list for a matching table */ - nNew = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)))) - Xsqlite3changeset_pk(tls, pIter, bp+64, uintptr(0)) - pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList - for { - if !(pTab != 0) { - break - } - if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), nNew+int32(1)) { - break - } - goto _1 - _1: - ; - pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext - } - if !(pTab != 0) { - pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 40)))+uint64(nNew)+uint64(1)) - if !(pTab != 0) { - rc = int32(SQLITE_NOMEM) - break - } - libc.Xmemset(tls, pTab, 0, uint64(80)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 40)) - (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp + 64)), uint64(*(*int32)(unsafe.Pointer(bp + 40)))) - (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 40))) - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), uint64(nNew+int32(1))) - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 - rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) - if rc != 0 { - Xsqlite3_free(tls, pTab) - break - } - } - /* The new object must be linked on to the end of the list, not - ** simply added to the start of it. This is to ensure that the - ** tables within the output of sqlite3changegroup_output() are in - ** the right order. */ - ppTab = pGrp + 8 - for { - if !(*(*uintptr)(unsafe.Pointer(ppTab)) != 0) { - break - } - goto _2 - _2: - ; - ppTab = *(*uintptr)(unsafe.Pointer(ppTab)) - } - *(*uintptr)(unsafe.Pointer(ppTab)) = pTab - } - if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*uintptr)(unsafe.Pointer(bp + 64))) != 0) { - rc = int32(SQLITE_SCHEMA) - break - } + if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, nTab+int32(1)) { + break + } + goto _1 + _1: + ; + pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext + } + /* If one was not found above, create a new table now */ + if !(pTab != 0) { + pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 8)))+uint64(nTab)+uint64(1)) + if !(pTab != 0) { + return int32(SQLITE_NOMEM) } - if *(*int32)(unsafe.Pointer(bp + 40)) < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol { - rc = _sessionChangesetExtendRecord(tls, pGrp, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*int32)(unsafe.Pointer(bp + 44)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+16) + libc.Xmemset(tls, pTab, 0, uint64(80)) + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 8)) + (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp)), uint64(*(*int32)(unsafe.Pointer(bp + 8)))) + (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 8))) + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, uint64(nTab+int32(1))) + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 + rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) if rc != 0 { + Xsqlite3_free(tls, pTab) + return rc + } + } + /* The new object must be linked on to the end of the list, not + ** simply added to the start of it. This is to ensure that the + ** tables within the output of sqlite3changegroup_output() are in + ** the right order. */ + ppNew = pGrp + 8 + for { + if !(*(*uintptr)(unsafe.Pointer(ppNew)) != 0) { break } - *(*uintptr)(unsafe.Pointer(bp)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf - *(*int32)(unsafe.Pointer(bp + 8)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf + goto _2 + _2: + ; + ppNew = *(*uintptr)(unsafe.Pointer(ppNew)) } - if _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pTab) != 0 { - rc = int32(SQLITE_NOMEM) - break + *(*uintptr)(unsafe.Pointer(ppNew)) = pTab + } + /* Check that the table is compatible. */ + if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 8)), *(*uintptr)(unsafe.Pointer(bp))) != 0) { + rc = int32(SQLITE_SCHEMA) + } + *(*uintptr)(unsafe.Pointer(ppTab)) = pTab + return rc +} + +// C documentation +// +// /* +// ** Add the change currently indicated by iterator pIter to the hash table +// ** belonging to changegroup pGrp. +// */ +func _sessionOneChangeToHash(tls *libc.TLS, pGrp uintptr, pIter uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var aRec, pBuf, pExist, pp uintptr + var bPkOnly1, bPkOnly2, iHash, nRec, rc int32 + var _ /* bIndirect at bp+8 */ int32 + var _ /* nCol at bp+0 */ int32 + var _ /* op at bp+4 */ int32 + var _ /* pChange at bp+16 */ uintptr + var _ /* pTab at bp+24 */ uintptr + var _ /* zTab at bp+32 */ uintptr + _, _, _, _, _, _, _, _, _ = aRec, bPkOnly1, bPkOnly2, iHash, nRec, pBuf, pExist, pp, rc + rc = SQLITE_OK + *(*int32)(unsafe.Pointer(bp)) = 0 + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + iHash = 0 + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0) + pExist = uintptr(0) + pp = uintptr(0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0) + aRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FaData + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent+int32(2)) + nRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent - int32(2) + /* Ensure that only changesets, or only patchsets, but not a mixture + ** of both, are being combined. It is an error to try to combine a + ** changeset and a patchset. */ + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset + } else { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { + rc = int32(SQLITE_ERROR) } - iHash = int32(_sessionChangeHash(tls, pTab, libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)), *(*uintptr)(unsafe.Pointer(bp)), (*TSessionTable)(unsafe.Pointer(pTab)).FnChange)) + } + if rc == SQLITE_OK { + *(*uintptr)(unsafe.Pointer(bp + 32)) = uintptr(0) + Xsqlite3changeset_op(tls, pIter, bp+32, bp, bp+4, bp+8) + rc = _sessionChangesetFindTable(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 32)), pIter, bp+24) + } + if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) < (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnCol { + pBuf = pGrp + 16 + rc = _sessionChangesetExtendRecord(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 24)), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), aRec, nRec, pBuf) + aRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FaBuf + nRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FnBuf + } + if rc == SQLITE_OK && _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp + 24))) != 0 { + rc = int32(SQLITE_NOMEM) + } + if rc == SQLITE_OK { /* Search for existing entry. If found, remove it from the hash table. - ** Code below may link it back in. - */ - pp = (*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8 + ** Code below may link it back in. */ + iHash = int32(_sessionChangeHash(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)), aRec, (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnChange)) + pp = (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8 for { if !(*(*uintptr)(unsafe.Pointer(pp)) != 0) { break @@ -192483,30 +194353,54 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase bPkOnly2 = 0 if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 { bPkOnly1 = libc.BoolInt32(int32((*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).Fop) == int32(SQLITE_DELETE)) - bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)) + bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)) } - if _sessionChangeEqual(tls, pTab, bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, *(*uintptr)(unsafe.Pointer(bp))) != 0 { + if _sessionChangeEqual(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, aRec) != 0 { pExist = *(*uintptr)(unsafe.Pointer(pp)) *(*uintptr)(unsafe.Pointer(pp)) = (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry-- + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry-- break } - goto _3 - _3: + goto _1 + _1: ; pp = *(*uintptr)(unsafe.Pointer(pp)) + 24 } - rc = _sessionChangeMerge(tls, pTab, bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 44)), *(*int32)(unsafe.Pointer(bp + 48)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+56) - if rc != 0 { + } + if rc == SQLITE_OK { + rc = _sessionChangeMerge(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 4)), *(*int32)(unsafe.Pointer(bp + 8)), aRec, nRec, bp+16) + } + if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { + (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) + *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 16)) + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry++ + } + if rc == SQLITE_OK { + rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc + } + return rc +} + +// C documentation +// +// /* +// ** Add all changes in the changeset traversed by the iterator passed as +// ** the first argument to the changegroup hash tables. +// */ +func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var rc int32 + var _ /* aRec at bp+0 */ uintptr + var _ /* nRec at bp+8 */ int32 + _ = rc + rc = SQLITE_OK + for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { + rc = _sessionOneChangeToHash(tls, pGrp, pIter, bRebase) + if rc != SQLITE_OK { break } - if *(*uintptr)(unsafe.Pointer(bp + 56)) != 0 { - (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 56)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) - *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 56)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry++ - } } - Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf) if rc == SQLITE_OK { rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc } @@ -192616,11 +194510,11 @@ func Xsqlite3changegroup_new(tls *libc.TLS, pp uintptr) (r int32) { var rc int32 _, _ = p, rc rc = SQLITE_OK /* New object */ - p = Xsqlite3_malloc(tls, int32(32)) + p = Xsqlite3_malloc(tls, int32(48)) if p == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, p, 0, uint64(32)) + libc.Xmemset(tls, p, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(pp)) = p return rc @@ -192642,7 +194536,7 @@ func Xsqlite3changegroup_schema(tls *libc.TLS, pGrp uintptr, db uintptr, zDb uin ** or after sqlite3changegroup_schema() has already been called. */ rc = int32(SQLITE_MISUSE) } else { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, zDb)) + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, zDb)) if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -192672,6 +194566,19 @@ func Xsqlite3changegroup_add(tls *libc.TLS, pGrp uintptr, nData int32, pData uin return rc } +// C documentation +// +// /* +// ** Add a single change to a changeset-group. +// */ +func Xsqlite3changegroup_add_change(tls *libc.TLS, pGrp uintptr, pIter uintptr) (r int32) { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent == (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc != SQLITE_OK || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbInvert != 0 { + /* Iterator does not point to any valid entry or is an INVERT iterator. */ + return int32(SQLITE_ERROR) + } + return _sessionOneChangeToHash(tls, pGrp, pIter, 0) +} + // C documentation // // /* @@ -192719,6 +194626,7 @@ func Xsqlite3changegroup_delete(tls *libc.TLS, pGrp uintptr) { if pGrp != 0 { Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList) + Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Frec.FaBuf) Xsqlite3_free(tls, pGrp) } } @@ -193083,11 +194991,11 @@ func Xsqlite3rebaser_create(tls *libc.TLS, ppNew uintptr) (r int32) { var rc int32 _, _ = pNew, rc rc = SQLITE_OK - pNew = Xsqlite3_malloc(tls, int32(32)) + pNew = Xsqlite3_malloc(tls, int32(48)) if pNew == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, pNew, 0, uint64(32)) + libc.Xmemset(tls, pNew, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(ppNew)) = pNew return rc @@ -193161,6 +195069,7 @@ func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn u func Xsqlite3rebaser_delete(tls *libc.TLS, p uintptr) { if p != 0 { _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.FpList) + Xsqlite3_free(tls, (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.Frec.FaBuf) Xsqlite3_free(tls, p) } } @@ -193792,6 +195701,9 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** sqlite3Fts5ParserARG_STORE Code to store %extra_argument into fts5yypParser // ** sqlite3Fts5ParserARG_FETCH Code to extract %extra_argument from fts5yypParser // ** sqlite3Fts5ParserCTX_* As sqlite3Fts5ParserARG_ except for %extra_context +// ** fts5YYREALLOC Name of the realloc() function to use +// ** fts5YYFREE Name of the free() function to use +// ** fts5YYDYNSTACK True if stack space should be extended on heap // ** fts5YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** fts5YYNSTATE the combined number of states. @@ -193805,6 +195717,8 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** fts5YY_NO_ACTION The fts5yy_action[] code for no-op // ** fts5YY_MIN_REDUCE Minimum value for reduce actions // ** fts5YY_MAX_REDUCE Maximum value for reduce actions +// ** fts5YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** fts5YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type Tfts5YYMINORTYPE = struct { @@ -193831,6 +195745,13 @@ type fts5YYMINORTYPE = Tfts5YYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -194260,8 +196181,9 @@ type fts5yyStackEntry = Tfts5yyStackEntry type Tfts5yyParser1 = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser1 = Tfts5yyParser1 @@ -194269,14 +196191,19 @@ type fts5yyParser1 = Tfts5yyParser1 type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser = Tfts5yyParser /* #include */ +/* For builds that do no have a growable stack, fts5yyGrowStack always +** returns an error. + */ + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3Fts5ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -194291,10 +196218,11 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { var fts5yypParser uintptr _ = fts5yypParser fts5yypParser = fts5yypRawParser - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = fts5yypParser + 16 - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fstateno = uint8(0) - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fmajor = uint8(0) - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = fts5yypParser + 16 + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack = fts5yypParser + 32 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fstateno = uint8(0) + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fmajor = uint8(0) } // C documentation @@ -194314,7 +196242,7 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2424)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -194396,11 +196324,17 @@ func _fts5yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var fts5yytos, pParser uintptr + _, _ = fts5yytos, pParser pParser = p - for (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos > pParser+16 { - _fts5yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling fts5yy_pop_parser_stack() for each + ** element left in the stack */ + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos + for fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yystack { + if int32((*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor) >= int32(fts5YY_MIN_DSTRCTR) { + _fts5yy_destructor(tls, pParser, (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor, fts5yytos+8) + } + fts5yytos -= 24 } } @@ -194488,13 +196422,13 @@ func _fts5yyStackOverflow(tls *libc.TLS, fts5yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse - for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > fts5yypParser+16 { + for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack { _fts5yy_pop_parser_stack(tls, fts5yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34724, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34870, 0) /******** End %stack_overflow code ********************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument var */ } @@ -194512,15 +196446,18 @@ func _fts5yy_shift(tls *libc.TLS, fts5yypParser uintptr, fts5yyNewState uint8, f var fts5yytos uintptr _ = fts5yytos (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos += 24 - if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 - _fts5yyStackOverflow(tls, fts5yypParser) - return + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + if fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { + if int32(1) != 0 { + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 + _fts5yyStackOverflow(tls, fts5yypParser) + return + } + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos } if int32(fts5yyNewState) > int32(fts5YY_MAX_SHIFT) { fts5yyNewState = uint8(int32(fts5yyNewState) + (libc.Int32FromInt32(fts5YY_MIN_REDUCE) - libc.Int32FromInt32(fts5YY_MIN_SHIFTREDUCE))) } - fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fstateno = fts5yyNewState (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor = fts5yyMajor *(*TFts5Token)(unsafe.Pointer(fts5yytos + 8)) = fts5yyMinor @@ -194847,7 +196784,7 @@ func _fts5yy_syntax_error(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor int3 pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse /************ Begin %syntax_error code ****************************************/ _ = fts5yymajor /* Silence a compiler warning */ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34752, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34898, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) /************ End %syntax_error code ******************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument variable */ } @@ -194909,8 +196846,10 @@ func _sqlite3Fts5Parser(tls *libc.TLS, fts5yyp uintptr, fts5yymajor int32, fts5y ** enough on the stack to push the LHS value */ if int32(_fts5yyRuleInfoNRhs[fts5yyruleno]) == 0 { if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos >= (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - _fts5yyStackOverflow(tls, fts5yypParser) - break + if int32(1) != 0 { + _fts5yyStackOverflow(tls, fts5yypParser) + break + } } } fts5yyact = _fts5yy_reduce(tls, fts5yypParser, fts5yyruleno, fts5yymajor, fts5yyminor) @@ -195143,7 +197082,7 @@ func _fts5HighlightAppend(tls *libc.TLS, pRc uintptr, p uintptr, z uintptr, n in if n < 0 { n = int32(libc.Xstrlen(tls, z)) } - (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34783, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) + (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34929, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) if (*THighlightContext)(unsafe.Pointer(p)).FzOut == uintptr(0) { *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) } @@ -195240,7 +197179,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint var _ /* rc at bp+104 */ int32 _, _ = iCol, zErr if nVal != int32(3) { - zErr = __ccgo_ts + 34790 + zErr = __ccgo_ts + 34936 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -195251,7 +197190,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint (*(*THighlightContext)(unsafe.Pointer(bp))).FiRangeEnd = -int32(1) *(*int32)(unsafe.Pointer(bp + 104)) = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnText})))(tls, pFts, iCol, bp+24, bp+32) if *(*int32)(unsafe.Pointer(bp + 104)) == int32(SQLITE_RANGE) { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1650, -int32(1), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1664, -int32(1), libc.UintptrFromInt32(0)) *(*int32)(unsafe.Pointer(bp + 104)) = SQLITE_OK } else { if (*(*THighlightContext)(unsafe.Pointer(bp))).FzIn != 0 { @@ -195452,7 +197391,7 @@ func _fts5ValueToText(tls *libc.TLS, pVal uintptr) (r uintptr) { if zRet != 0 { v1 = zRet } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } return v1 } @@ -195486,7 +197425,7 @@ func _fts5SnippetFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintpt nBestScore = 0 /* Score of best snippet */ *(*int32)(unsafe.Pointer(bp + 112)) = 0 if nVal != int32(5) { - zErr = __ccgo_ts + 34840 + zErr = __ccgo_ts + 34986 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -195866,15 +197805,15 @@ func _sqlite3Fts5AuxInit(tls *libc.TLS, pApi uintptr) (r int32) { FxDestroy uintptr }{ 0: { - FzFunc: __ccgo_ts + 34888, + FzFunc: __ccgo_ts + 35034, FxFunc: __ccgo_fp(_fts5SnippetFunction), }, 1: { - FzFunc: __ccgo_ts + 34896, + FzFunc: __ccgo_ts + 35042, FxFunc: __ccgo_fp(_fts5HighlightFunction), }, 2: { - FzFunc: __ccgo_ts + 34906, + FzFunc: __ccgo_ts + 35052, FxFunc: __ccgo_fp(_fts5Bm25Function), }, } @@ -196534,7 +198473,7 @@ func _fts5ConfigSkipLiteral(tls *libc.TLS, pIn uintptr) (r uintptr) { case int32('n'): fallthrough case int32('N'): - if Xsqlite3_strnicmp(tls, __ccgo_ts+1636, p, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+1650, p, int32(4)) == 0 { p = p + 4 } else { p = uintptr(0) @@ -196738,7 +198677,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _, _, _, _, _, _, _, _, _, _, _, _ = azArg, bFirst, nArg, nByte, nCmd, nPre, p, p1, p2, pDel, pSpace, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK nCmd = int32(libc.Xstrlen(tls, zCmd)) - if Xsqlite3_strnicmp(tls, __ccgo_ts+34911, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35057, zCmd, nCmd) == 0 { nByte = int32(libc.Uint64FromInt64(4) * libc.Uint64FromInt32(FTS5_MAX_PREFIX_INDEXES)) bFirst = int32(1) if (*TFts5Config)(unsafe.Pointer(pConfig)).FaPrefix == uintptr(0) { @@ -196764,12 +198703,12 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } } if int32(*(*uint8)(unsafe.Pointer(p))) < int32('0') || int32(*(*uint8)(unsafe.Pointer(p))) > int32('9') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34918, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35064, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } if (*TFts5Config)(unsafe.Pointer(pConfig)).FnPrefix == int32(FTS5_MAX_PREFIX_INDEXES) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34949, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35095, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -196778,7 +198717,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC p++ } if nPre <= 0 || nPre >= int32(1000) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34982, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35128, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -196788,7 +198727,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35019, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35165, zCmd, nCmd) == 0 { p1 = zArg nArg = int64(libc.Xstrlen(tls, zArg) + uint64(1)) azArg = _sqlite3Fts5MallocZero(tls, bp, int64(uint64(8)*uint64(nArg))) @@ -196796,7 +198735,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC pSpace = pDel if azArg != 0 && pSpace != 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35028, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35174, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { nArg = 0 @@ -196823,7 +198762,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC nArg++ } if p1 == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35061, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35207, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5GetTokenizer(tls, pGlobal, azArg, int32(nArg), pConfig, pzErr) @@ -196834,58 +198773,58 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC Xsqlite3_free(tls, pDel) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35095, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35241, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent != FTS5_CONTENT_NORMAL { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35103, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35249, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if *(*uint8)(unsafe.Pointer(zArg)) != 0 { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_EXTERNAL) - (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35135, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) + (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35281, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_NONE) } } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35141, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35287, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35160, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35306, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35203, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35349, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35217, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35363, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, zArg, -int32(1)) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35255, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35401, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35266, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35412, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+5501, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+5565, zCmd, nCmd) == 0 { *(*[4]TFts5Enum)(unsafe.Pointer(bp + 8)) = [4]TFts5Enum{ 0: { - FzName: __ccgo_ts + 8220, + FzName: __ccgo_ts + 8345, FeVal: int32(FTS5_DETAIL_NONE), }, 1: { - FzName: __ccgo_ts + 17749, + FzName: __ccgo_ts + 17836, }, 2: { - FzName: __ccgo_ts + 35301, + FzName: __ccgo_ts + 35447, FeVal: int32(FTS5_DETAIL_COLUMNS), }, 3: {}, @@ -196893,20 +198832,20 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC v2 = _fts5ConfigSetEnum(tls, bp+8, zArg, pConfig+96) *(*int32)(unsafe.Pointer(bp)) = v2 if v2 != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35309, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35455, 0) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35340, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35486, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35350, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35496, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbTokendata = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35384, libc.VaList(bp+80, nCmd, zCmd)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35530, libc.VaList(bp+80, nCmd, zCmd)) return int32(SQLITE_ERROR) } @@ -196978,15 +198917,15 @@ func _fts5ConfigParseColumn(tls *libc.TLS, p uintptr, zCol uintptr, zArg uintptr var v2 uintptr _, _, _ = rc, v1, v2 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35412) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16696) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35417, libc.VaList(bp+8, zCol)) + if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35558) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16783) { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35563, libc.VaList(bp+8, zCol)) rc = int32(SQLITE_ERROR) } else { if zArg != 0 { - if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35447) { + if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35593) { *(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FabUnindexed + uintptr((*TFts5Config)(unsafe.Pointer(p)).FnCol))) = uint8(1) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35457, libc.VaList(bp+8, zArg)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35603, libc.VaList(bp+8, zArg)) rc = int32(SQLITE_ERROR) } } @@ -197012,7 +198951,7 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TFts5Buffer)(unsafe.Pointer(bp + 8)) = TFts5Buffer{} - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35488, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35634, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) if (*TFts5Config)(unsafe.Pointer(p)).FeContent != int32(FTS5_CONTENT_NONE) { i = 0 for { @@ -197020,9 +198959,9 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { break } if (*TFts5Config)(unsafe.Pointer(p)).FeContent == int32(FTS5_CONTENT_EXTERNAL) { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35493, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35639, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) } else { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35500, libc.VaList(bp+32, i)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35646, libc.VaList(bp+32, i)) } goto _1 _1: @@ -197082,8 +199021,8 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in (*TFts5Config)(unsafe.Pointer(pRet)).FzName = _sqlite3Fts5Strndup(tls, bp, *(*uintptr)(unsafe.Pointer(azArg + 2*8)), -int32(1)) (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize = int32(1) (*TFts5Config)(unsafe.Pointer(pRet)).FeDetail = FTS5_DETAIL_FULL - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35412) == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35508, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35558) == 0 { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35654, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } i = int32(3) @@ -197114,19 +199053,19 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { if z == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35537, libc.VaList(bp+40, zOrig)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35683, libc.VaList(bp+40, zOrig)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bOption != 0 { if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { v4 = *(*uintptr)(unsafe.Pointer(bp + 8)) } else { - v4 = __ccgo_ts + 1650 + v4 = __ccgo_ts + 1664 } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { v5 = *(*uintptr)(unsafe.Pointer(bp + 16)) } else { - v5 = __ccgo_ts + 1650 + v5 = __ccgo_ts + 1664 } *(*int32)(unsafe.Pointer(bp)) = _fts5ConfigParseSpecial(tls, pGlobal, pRet, v4, v5, pzErr) } else { @@ -197144,7 +199083,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } /* We only allow contentless_delete=1 if the table is indeed contentless. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FeContent != int32(FTS5_CONTENT_NONE) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35557, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35703, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* We only allow contentless_delete=1 if columnsize=0 is not present. @@ -197152,7 +199091,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in ** This restriction may be removed at some point. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35607, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35753, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* If a tokenizer= option was successfully parsed, the tokenizer has @@ -197165,18 +199104,18 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContent == uintptr(0) { zTail = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pRet)).FeContent == FTS5_CONTENT_NORMAL { - zTail = __ccgo_ts + 35095 + zTail = __ccgo_ts + 35241 } else { if (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize != 0 { - zTail = __ccgo_ts + 35662 + zTail = __ccgo_ts + 35808 } } if zTail != 0 { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35670, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35816, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid == uintptr(0) { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16696, -int32(1)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16783, -int32(1)) } /* Formulate the zContentExprlist text */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -197240,25 +199179,25 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { var _ /* rc at bp+0 */ int32 _, _, _, _ = i, zSep, zSql, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35681, 0) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35827, 0) i = 0 for { if !(zSql != 0 && i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } if i == 0 { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } else { - v2 = __ccgo_ts + 14992 + v2 = __ccgo_ts + 15085 } zSep = v2 - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35697, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35843, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) goto _1 _1: ; i++ } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35704, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35412)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35850, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35558)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_declare_vtab(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql) Xsqlite3_free(tls, zSql) @@ -197404,7 +199343,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV var _ /* zRankArgs at bp+8 */ uintptr _, _, _, _, _, _, _, _, _, _ = bVal, nAutomerge, nCrisisMerge, nHashSize, nUsermerge, nVal, pgsz, rc, zIn, v1 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35730) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35876) { pgsz = 0 if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { pgsz = Xsqlite3_value_int(tls, pVal) @@ -197415,7 +199354,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).Fpgsz = pgsz } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35735) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35881) { nHashSize = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nHashSize = Xsqlite3_value_int(tls, pVal) @@ -197426,7 +199365,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnHashSize = nHashSize } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35744) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35890) { nAutomerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nAutomerge = Xsqlite3_value_int(tls, pVal) @@ -197440,7 +199379,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnAutomerge = nAutomerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35754) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35900) { nUsermerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nUsermerge = Xsqlite3_value_int(tls, pVal) @@ -197451,7 +199390,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnUsermerge = nUsermerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35764) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35910) { nCrisisMerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nCrisisMerge = Xsqlite3_value_int(tls, pVal) @@ -197468,7 +199407,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnCrisisMerge = nCrisisMerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35776) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35922) { nVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nVal = Xsqlite3_value_int(tls, pVal) @@ -197483,7 +199422,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } (*TFts5Config)(unsafe.Pointer(pConfig)).FnDeleteMerge = nVal } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35412) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35558) { zIn = Xsqlite3_value_text(tls, pVal) rc = _sqlite3Fts5ConfigParseRank(tls, zIn, bp, bp+8) if rc == SQLITE_OK { @@ -197498,7 +199437,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35788) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35934) { bVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { bVal = Xsqlite3_value_int(tls, pVal) @@ -197540,7 +199479,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in var _ /* p at bp+0 */ uintptr var _ /* rc at bp+8 */ int32 _, _, _, _, _ = iVersion, pVal, zK, zSelect, zSql - zSelect = __ccgo_ts + 35802 + zSelect = __ccgo_ts + 35948 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_OK iVersion = 0 @@ -197560,7 +199499,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in for int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zK = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) pVal = Xsqlite3_column_value(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) - if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35834) { + if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35980) { iVersion = Xsqlite3_value_int(tls, pVal) } else { *(*int32)(unsafe.Pointer(bp + 12)) = 0 @@ -197572,7 +199511,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && iVersion != int32(FTS5_CURRENT_VERSION) && iVersion != int32(FTS5_CURRENT_VERSION_SECUREDELETE) { *(*int32)(unsafe.Pointer(bp + 8)) = int32(SQLITE_ERROR) if (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg != 0 { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35842, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35988, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = iVersion @@ -197793,7 +199732,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr } } if int32(*(*uint8)(unsafe.Pointer(z2))) == int32('\000') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35913, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36059, 0) return FTS5_EOF } goto _1 @@ -197804,7 +199743,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z2) - int64(z)) default: if _sqlite3Fts5IsBareword(tls, *(*uint8)(unsafe.Pointer(z))) == 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35933, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36079, libc.VaList(bp+8, z)) return FTS5_EOF } tok = int32(FTS5_STRING) @@ -197819,13 +199758,13 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr z21++ } (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z21) - int64(z)) - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35964, uint64(2)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36110, uint64(2)) == 0 { tok = int32(FTS5_OR) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35967, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36113, uint64(3)) == 0 { tok = int32(FTS5_NOT) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30708, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30854, uint64(3)) == 0 { tok = int32(FTS5_AND) } break @@ -198240,6 +200179,7 @@ func _fts5ExprSynonymList(tls *libc.TLS, pTerm uintptr, iRowid Ti64, pBuf uintpt *(*int32)(unsafe.Pointer(pn)) = (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn } } + goto synonym_poslist_out synonym_poslist_out: ; if aIter != bp { @@ -198372,6 +200312,7 @@ func _fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMat i++ } } + goto ismatch_out ismatch_out: ; *(*int32)(unsafe.Pointer(pbMatch)) = libc.BoolInt32((*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn > 0) @@ -198578,6 +200519,7 @@ func _fts5ExprNearIsMatch(tls *libc.TLS, pRc uintptr, pNear uintptr) (r int32) { goto ismatch_out } } + goto ismatch_out ismatch_out: ; bRet = libc.BoolInt32((*TFts5Buffer)(unsafe.Pointer((*(*TFts5NearTrimmer)(unsafe.Pointer(a))).FpOut)).Fn > 0) @@ -199894,8 +201836,8 @@ func _sqlite3Fts5ExprClonePhrase(tls *libc.TLS, pExpr uintptr, iPhrase int32, pp func _sqlite3Fts5ParseNear(tls *libc.TLS, pParse uintptr, pTok uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+35971, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34752, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) + if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+36117, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34898, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) } } @@ -199915,7 +201857,7 @@ func _sqlite3Fts5ParseSetDistance(tls *libc.TLS, pParse uintptr, pNear uintptr, } c = *(*uint8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i))) if int32(c) < int32('0') || int32(c) > int32('9') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35976, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36122, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) return } nNear = nNear*int32(10) + (int32(*(*uint8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i)))) - int32('0')) @@ -200053,7 +201995,7 @@ func _sqlite3Fts5ParseColset(tls *libc.TLS, pParse uintptr, pColset uintptr, p u iCol++ } if iCol == (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21018, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21150, libc.VaList(bp+8, z)) } else { pRet = _fts5ParseColset(tls, pParse, pColset, iCol) } @@ -200177,7 +202119,7 @@ func _sqlite3Fts5ParseSetColset(tls *libc.TLS, pParse uintptr, pExpr uintptr, pC var _ /* pFree at bp+0 */ uintptr *(*uintptr)(unsafe.Pointer(bp)) = pColset if (*TFts5Config)(unsafe.Pointer((*TFts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FeDetail == int32(FTS5_DETAIL_NONE) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36005, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36151, 0) } else { _fts5ParseSetColset(tls, pParse, pExpr, pColset, bp) } @@ -200370,11 +202312,11 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin pPhrase = *(*uintptr)(unsafe.Pointer(pNear + 24)) if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase != int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 0 && (*(*TFts5ExprTerm)(unsafe.Pointer(pPhrase + 32))).FbFirst != 0 { if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase == int32(1) { - v2 = __ccgo_ts + 36058 + v2 = __ccgo_ts + 36204 } else { - v2 = __ccgo_ts + 35971 + v2 = __ccgo_ts + 36117 } - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36065, libc.VaList(bp+8, v2)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36211, libc.VaList(bp+8, v2)) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -200383,7 +202325,7 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin _fts5ExprAddChildren(tls, pRet, pLeft) _fts5ExprAddChildren(tls, pRet, pRight) if (*TFts5ExprNode)(unsafe.Pointer(pRet)).FiHeight > int32(SQLITE_FTS5_MAX_EXPR_DEPTH) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36115, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36261, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -202531,7 +204473,7 @@ func _fts5DataRead(tls *libc.TLS, p uintptr, iRowid Ti64) (r uintptr) { ** to the requested entry. */ if (*TFts5Index)(unsafe.Pointer(p)).FpReader == uintptr(0) && rc == SQLITE_OK { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36168, iRowid, 0, p+72) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36314, iRowid, 0, p+72) } /* If either of the sqlite3_blob_open() or sqlite3_blob_reopen() calls ** above returned SQLITE_ERROR, return SQLITE_CORRUPT_VTAB instead. @@ -202624,7 +204566,7 @@ func _fts5DataWrite(tls *libc.TLS, p uintptr, iRowid Ti64, pData uintptr, nData } if (*TFts5Index)(unsafe.Pointer(p)).FpWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36174, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36320, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return } @@ -202653,7 +204595,7 @@ func _fts5DataDelete(tls *libc.TLS, p uintptr, iFirst Ti64, iLast Ti64) { } if (*TFts5Index)(unsafe.Pointer(p)).FpDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36225, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36371, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if _fts5IndexPrepareStmt(tls, p, p+88, zSql) != 0 { return } @@ -202687,7 +204629,7 @@ func _fts5DataRemoveSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { } if (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36274, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36420, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter, int32(1), iSegid) @@ -202856,7 +204798,7 @@ func _fts5StructureDecode(tls *libc.TLS, pData uintptr, nData int32, piCookie ui } i = int32(4) /* Check if this is a V2 structure record. Set bStructureV2 if it is. */ - if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36314, uint64(4)) { + if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36460, uint64(4)) { i += int32(4) bStructureV2 = int32(1) } @@ -203047,7 +204989,7 @@ func _fts5IndexDataVersion(tls *libc.TLS, p uintptr) (r Ti64) { iVersion = 0 if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*TFts5Index)(unsafe.Pointer(p)).FpDataVersion == uintptr(0) { - (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36319, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) + (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36465, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return 0 } @@ -203131,7 +205073,7 @@ func _fts5StructureWrite(tls *libc.TLS, p uintptr, pStruct uintptr) { _sqlite3Fts5Put32(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, iCookie) (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = int32(4) if (*TFts5Structure)(unsafe.Pointer(pStruct)).FnOriginCntr > uint64(0) { - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36314, uint64(4)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36460, uint64(4)) *(*int32)(unsafe.Pointer(bp + 8)) += int32(4) } *(*int32)(unsafe.Pointer(bp + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), uint64((*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel)) @@ -204081,6 +206023,7 @@ func _fts5SegIterNext_None(tls *libc.TLS, p uintptr, pIter uintptr, pbNewTerm ui } _fts5SegIterLoadNPos(tls, p, pIter) return + goto next_none_eof next_none_eof: ; _fts5DataRelease(tls, (*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf) @@ -204443,6 +206386,7 @@ func _fts5LeafSeek(tls *libc.TLS, p uintptr, bGe int32, pIter uintptr, pTerm uin *(*Tu32)(unsafe.Pointer(bp)) += uint32(_sqlite3Fts5GetVarint32(tls, a+uintptr(*(*Tu32)(unsafe.Pointer(bp))), bp+4)) } } + goto search_failed search_failed: ; if bGe == 0 { @@ -204474,6 +206418,7 @@ search_failed: } } } + goto search_success search_success: ; if int64(*(*Tu32)(unsafe.Pointer(bp)))+int64(*(*Tu32)(unsafe.Pointer(bp + 8))) > int64(n) || *(*Tu32)(unsafe.Pointer(bp + 8)) < uint32(1) { @@ -204503,7 +206448,7 @@ func _fts5IdxSelectStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36342, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36488, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect } @@ -204592,7 +206537,7 @@ func _fts5IdxNextStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36426, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36572, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect } @@ -205678,6 +207623,7 @@ func _fts5IterSetOutputs_Col100(tls *libc.TLS, pIter uintptr, pSeg uintptr) { iPrevOut = iPrev } } + goto setoutputs_col_out setoutputs_col_out: ; (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*TFts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp @@ -205895,6 +207841,7 @@ func _fts5MultiIterNew(tls *libc.TLS, p uintptr, pStruct uintptr, flags int32, p _fts5MultiIterFree(tls, pNew) *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) } + goto fts5MultiIterNew_post_check fts5MultiIterNew_post_check: ; return @@ -206206,7 +208153,7 @@ func _fts5WriteFlushBtree(tls *libc.TLS, p uintptr, pWriter uintptr) { if (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn > 0 { v1 = (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fp } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } z = v1 /* The following was already done in fts5WriteInit(): */ @@ -206561,7 +208508,7 @@ func _fts5WriteInit(tls *libc.TLS, p uintptr, pWriter uintptr, iSegid int32) { _sqlite3Fts5BufferSize(tls, p+60, pWriter+8+8, uint32(nBuffer)) if (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36508, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36654, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { /* Initialize the 4-byte leaf-page header to 0x00. */ @@ -207051,7 +208998,7 @@ func _fts5SecureDeleteIdxEntry(tls *libc.TLS, p uintptr, iSegid int32, iPgno int defer tls.Free(32) if iPgno != int32(1) { if (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx == uintptr(0) { - _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36565, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36711, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx, int32(1), iSegid) @@ -208541,7 +210488,7 @@ func _sqlite3Fts5IndexReinit(tls *libc.TLS, p uintptr) (r int32) { if (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FbContentlessDelete != 0 { (*(*TFts5Structure)(unsafe.Pointer(bp))).FnOriginCntr = uint64(1) } - _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1650, 0) + _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1664, 0) _fts5StructureWrite(tls, p, bp) return _fts5IndexReturn(tls, p) } @@ -208568,11 +210515,11 @@ func _sqlite3Fts5IndexOpen(tls *libc.TLS, pConfig uintptr, bCreate int32, pp uin if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Index)(unsafe.Pointer(p)).FpConfig = pConfig (*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit = int32(FTS5_WORK_UNIT) - (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36626, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36772, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl != 0 && bCreate != 0 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25743, __ccgo_ts+36634, 0, pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25889, __ccgo_ts+36780, 0, pzErr) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11795, __ccgo_ts+36669, int32(1), pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11920, __ccgo_ts+36815, int32(1), pzErr) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5IndexReinit(tls, p) @@ -209106,7 +211053,7 @@ func _fts5SetupTokendataIter(tls *libc.TLS, p uintptr, pToken uintptr, nToken in pNew = _fts5MultiIterAlloc(tls, p, (*TFts5Structure)(unsafe.Pointer(pStruct)).FnSegment) if pSmall != 0 { _sqlite3Fts5BufferSet(tls, p+60, bp, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fn, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+36713) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+36859) } else { _sqlite3Fts5BufferSet(tls, p+60, bp, nToken, pToken) } @@ -209626,7 +211573,7 @@ func _sqlite3Fts5IndexSetCookie(tls *libc.TLS, p uintptr, iNew int32) (r int32) pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig /* Binary representation of iNew */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) _sqlite3Fts5Put32(tls, bp, iNew) - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36168, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36314, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) if rc == SQLITE_OK { Xsqlite3_blob_write(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), bp, int32(4), 0) rc = Xsqlite3_blob_close(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) @@ -210220,7 +212167,7 @@ func _fts5IndexIntegrityCheckSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { if (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst == 0 { return } - _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36715, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) + _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36861, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) /* Iterate through the b-tree hierarchy. */ for (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { /* Data for this leaf */ zIdxTerm = Xsqlite3_column_blob(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -210451,7 +212398,7 @@ func _sqlite3Fts5IndexIntegrityCheck(tls *libc.TLS, p uintptr, cksum Tu64, bUseC } else { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = 0 _fts5SegiterPoslist(tls, p, *(*uintptr)(unsafe.Pointer(bp + 16))+104+uintptr((*(*TFts5CResult)(unsafe.Pointer((*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaFirst + 1*4))).FiFirst)*128, uintptr(0), bp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+36801) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+36947) for 0 == _sqlite3Fts5PoslistNext64(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn, bp+40, bp+32) { iCol = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) >> libc.Int32FromInt32(32)) iTokOff = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) & libc.Int64FromInt32(0x7FFFFFFF)) @@ -211039,7 +212986,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) bSeenMatch = 0 bSeenRank = 0 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36806, 0) + (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36952, 0) return int32(SQLITE_ERROR) } idxStr = Xsqlite3_malloc(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint*int32(8)+int32(1)) @@ -211078,7 +213025,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v3 = iIdxStr iIdxStr++ *(*uint8)(unsafe.Pointer(idxStr + uintptr(v3))) = uint8('M') - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5140, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5204, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) } } @@ -211098,7 +213045,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v6 = int32('G') } *(*uint8)(unsafe.Pointer(idxStr + uintptr(v5))) = uint8(v6) - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5140, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5204, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) iCons++ v7 = iCons @@ -211536,7 +213483,7 @@ func _fts5NextMethod(tls *libc.TLS, pCursor uintptr) (r int32) { *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_EOF) rc = Xsqlite3_reset(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpStmt) if rc != SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } } else { rc = SQLITE_OK @@ -211563,7 +213510,7 @@ func _fts5PrepareStatement(tls *libc.TLS, ppStmt uintptr, pConfig uintptr, zFmt } else { rc = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } Xsqlite3_free(tls, zSql) } @@ -211598,21 +213545,21 @@ func _fts5CursorFirstSorted(tls *libc.TLS, pTab uintptr, pCsr uintptr, bDesc int ** ** If SQLite a built-in statement cache, this wouldn't be a problem. */ if zRankArgs != 0 { - v1 = __ccgo_ts + 14992 + v1 = __ccgo_ts + 15085 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } if zRankArgs != 0 { v2 = zRankArgs } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } if bDesc != 0 { - v3 = __ccgo_ts + 36845 + v3 = __ccgo_ts + 36991 } else { - v3 = __ccgo_ts + 36850 + v3 = __ccgo_ts + 36996 } - rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+36854, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) + rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+37000, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpSorter = pSorter if rc == SQLITE_OK { (*TFts5FullTable)(unsafe.Pointer(pTab)).FpSortCsr = pCsr @@ -211670,14 +213617,14 @@ func _fts5SpecialMatch(tls *libc.TLS, pTab uintptr, pCsr uintptr, zQuery uintptr n++ } (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan = int32(FTS5_PLAN_SPECIAL) - if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+36909, z, n) { + if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+37055, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = int64(_sqlite3Fts5IndexReads(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)) } else { - if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5483, z, n) { + if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5547, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId } else { /* An unrecognized directive. Return an error message. */ - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36915, libc.VaList(bp+8, n, z)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37061, libc.VaList(bp+8, n, z)) rc = int32(SQLITE_ERROR) } } @@ -211727,7 +213674,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { zRank = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank zRankArgs = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs if zRankArgs != 0 { - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36943, libc.VaList(bp+24, zRankArgs)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37089, libc.VaList(bp+24, zRankArgs)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp+8, uintptr(0)) @@ -211760,7 +213707,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { pAux = _fts5FindAuxiliary(tls, pTab, zRank) if pAux == uintptr(0) { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36953, libc.VaList(bp+24, zRank)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37099, libc.VaList(bp+24, zRank)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -211794,7 +213741,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_FREE_ZRANK) } else { if rc == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36974, libc.VaList(bp+24, z)) + (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37120, libc.VaList(bp+24, z)) } } } else { @@ -211802,7 +213749,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRank (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRankArgs } else { - (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 34906 + (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 35052 (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = uintptr(0) } } @@ -211853,7 +213800,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint iIdxStr = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36806, 0) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36952, 0) return int32(SQLITE_ERROR) } if (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan != 0 { @@ -211875,7 +213822,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint case int32('M'): zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8))) if zText == uintptr(0) { - zText = __ccgo_ts + 1650 + zText = __ccgo_ts + 1664 } iCol = 0 for cond := true; cond; cond = int32(*(*uint8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) <= int32('9') { @@ -211997,7 +213944,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent == uintptr(0) { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37007, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37153, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) rc = int32(SQLITE_ERROR) } else { /* This is either a full-table scan (ePlan==FTS5_PLAN_SCAN) or a lookup @@ -212021,6 +213968,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } } + goto filter_out filter_out: ; _sqlite3Fts5ExprFree(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -212134,7 +214082,7 @@ func _fts5SeekCursor(tls *libc.TLS, pCsr uintptr, bErrormsg int32) (r int32) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< int32(1) { - v1 = __ccgo_ts + 20871 + v1 = __ccgo_ts + 21003 } else { - v1 = __ccgo_ts + 37285 + v1 = __ccgo_ts + 37431 } - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37297, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37443, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if nArg == int32(1) { @@ -212391,7 +214339,7 @@ func _fts5UpdateMethod(tls *libc.TLS, pVtab uintptr, nArg int32, apVal uintptr, } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && bUpdateOrDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FbSecureDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion == int32(FTS5_CURRENT_VERSION) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35834, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35980, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = int32(FTS5_CURRENT_VERSION_SECUREDELETE) } @@ -213187,7 +215135,7 @@ func _fts5ApiCallback(tls *libc.TLS, context uintptr, argc int32, argv uintptr) iCsrId = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) pCsr = _fts5CursorFromCsrid(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal, iCsrId) if pCsr == uintptr(0) || (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan == 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37334, libc.VaList(bp+8, iCsrId)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37480, libc.VaList(bp+8, iCsrId)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } else { @@ -213378,7 +215326,7 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg = uintptr(0) } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 && Xsqlite3_vtab_nochange(tls, pCtx) != 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37355, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37501, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -213620,7 +215568,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr pMod = _fts5LocateTokenizer(tls, pGlobal, v1) if pMod == uintptr(0) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37426, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37572, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) } else { if azArg != 0 { v2 = azArg + 1*8 @@ -213636,7 +215584,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr (*TFts5Config)(unsafe.Pointer(pConfig)).FpTokApi = pMod + 16 if rc != SQLITE_OK { if pzErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37448, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37594, 0) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FePattern = _sqlite3Fts5TokenizerPattern(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pMod)).Fx.FxCreate, (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok) @@ -213691,7 +215639,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { _, _ = pGlobal, ppApi pGlobal = Xsqlite3_user_data(tls, pCtx) _ = nArg - ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37479) + ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37625) if ppApi != 0 { *(*uintptr)(unsafe.Pointer(ppApi)) = pGlobal } @@ -213705,7 +215653,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { func _fts5SourceIdFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apUnused uintptr) { _ = nArg _ = apUnused - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37492, -int32(1), uintptr(-libc.Int32FromInt32(1))) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37638, -int32(1), uintptr(-libc.Int32FromInt32(1))) } // C documentation @@ -213734,11 +215682,11 @@ func _fts5ShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName2 = [5]uintptr{ - 0: __ccgo_ts + 37583, - 1: __ccgo_ts + 35095, - 2: __ccgo_ts + 25743, - 3: __ccgo_ts + 35662, - 4: __ccgo_ts + 11795, + 0: __ccgo_ts + 37729, + 1: __ccgo_ts + 35241, + 2: __ccgo_ts + 25889, + 3: __ccgo_ts + 35808, + 4: __ccgo_ts + 11920, } // C documentation @@ -213752,20 +215700,26 @@ func _fts5IntegrityMethod(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zTabnam bp := tls.Alloc(32) defer tls.Free(32) var pTab uintptr - var rc int32 - _, _ = pTab, rc + var rc, v1 int32 + _, _, _ = pTab, rc, v1 pTab = pVtab _ = isQuick rc = _sqlite3Fts5StorageIntegrity(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, 0) if rc&int32(0xff) == int32(SQLITE_CORRUPT) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37590, libc.VaList(bp+8, zSchema, zTabname)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37736, libc.VaList(bp+8, zSchema, zTabname)) + if *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { + v1 = SQLITE_OK + } else { + v1 = int32(SQLITE_NOMEM) + } + rc = v1 } else { if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37636, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37782, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) } } _sqlite3Fts5IndexCloseReader(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex) - return SQLITE_OK + return rc } func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { @@ -213784,7 +215738,7 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateFunction = __ccgo_fp(_fts5CreateAux) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateTokenizer = __ccgo_fp(_fts5CreateTokenizer) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxFindTokenizer = __ccgo_fp(_fts5FindTokenizer) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37699, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37845, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) if rc == SQLITE_OK { rc = _sqlite3Fts5IndexInit(tls, db) } @@ -213801,10 +215755,10 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { rc = _sqlite3Fts5VocabInit(tls, pGlobal, db) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37699, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37845, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37704, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37850, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) } } /* If SQLITE_FTS5_ENABLE_TEST_MI is defined, assume that the file @@ -213907,17 +215861,17 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, ** statements to operate on it. */ if *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(eStmt)*8)) == uintptr(0) { azStmt = [11]uintptr{ - 0: __ccgo_ts + 37719, - 1: __ccgo_ts + 37787, - 2: __ccgo_ts + 37856, - 3: __ccgo_ts + 37889, - 4: __ccgo_ts + 37928, - 5: __ccgo_ts + 37968, - 6: __ccgo_ts + 38007, - 7: __ccgo_ts + 38050, - 8: __ccgo_ts + 38089, - 9: __ccgo_ts + 38133, - 10: __ccgo_ts + 38173, + 0: __ccgo_ts + 37865, + 1: __ccgo_ts + 37933, + 2: __ccgo_ts + 38002, + 3: __ccgo_ts + 38035, + 4: __ccgo_ts + 38074, + 5: __ccgo_ts + 38114, + 6: __ccgo_ts + 38153, + 7: __ccgo_ts + 38196, + 8: __ccgo_ts + 38235, + 9: __ccgo_ts + 38279, + 10: __ccgo_ts + 38319, } pC = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig zSql = uintptr(0) @@ -213954,16 +215908,16 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, } case int32(FTS5_STMT_REPLACE_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v2 = __ccgo_ts + 38196 + v2 = __ccgo_ts + 38342 } else { - v2 = __ccgo_ts + 1650 + v2 = __ccgo_ts + 1664 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName, v2)) case int32(FTS5_STMT_LOOKUP_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v3 = __ccgo_ts + 38199 + v3 = __ccgo_ts + 38345 } else { - v3 = __ccgo_ts + 1650 + v3 = __ccgo_ts + 1664 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, v3, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName)) default: @@ -213982,7 +215936,7 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, (*TFts5Config)(unsafe.Pointer((*TFts5Storage)(unsafe.Pointer(p)).FpConfig)).FbLock-- Xsqlite3_free(tls, zSql) if rc != SQLITE_OK && pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3797, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3861, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) } } } @@ -214019,12 +215973,12 @@ func _sqlite3Fts5DropAll(tls *libc.TLS, pConfig uintptr) (r int32) { defer tls.Free(64) var rc int32 _ = rc - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38207, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38353, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38311, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38457, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38349, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38495, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } return rc } @@ -214033,7 +215987,7 @@ func _fts5StorageRenameOne(tls *libc.TLS, pConfig uintptr, pRc uintptr, zTail ui bp := tls.Alloc(48) defer tls.Free(48) if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38387, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) + *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38533, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) } } @@ -214045,14 +215999,14 @@ func _sqlite3Fts5StorageRename(tls *libc.TLS, pStorage uintptr, zName uintptr) ( _ = pConfig pConfig = (*TFts5Storage)(unsafe.Pointer(pStorage)).FpConfig *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageSync(tls, pStorage) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25743, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11795, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37583, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25889, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11920, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37729, zName) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35662, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35808, zName) } if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35095, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35241, zName) } return *(*int32)(unsafe.Pointer(bp)) } @@ -214072,13 +216026,13 @@ func _sqlite3Fts5CreateTable(tls *libc.TLS, pConfig uintptr, zPost uintptr, zDef _, _ = rc, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if bWithout != 0 { - v1 = __ccgo_ts + 30383 + v1 = __ccgo_ts + 30529 } else { - v1 = __ccgo_ts + 1650 + v1 = __ccgo_ts + 1664 } - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38429, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38575, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38459, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38605, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -214119,36 +216073,36 @@ func _sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCr if zDefn == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38503, 0) + Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38649, 0) iOff = int32(libc.Xstrlen(tls, zDefn)) i = 0 for { if !(i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } - Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38526, libc.VaList(bp+8, i)) + Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38672, libc.VaList(bp+8, i)) iOff += int32(libc.Xstrlen(tls, zDefn+uintptr(iOff))) goto _2 _2: ; i++ } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35095, zDefn, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35241, zDefn, 0, pzErr) } Xsqlite3_free(tls, zDefn) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - zCols = __ccgo_ts + 38532 + zCols = __ccgo_ts + 38678 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 { - zCols = __ccgo_ts + 38564 + zCols = __ccgo_ts + 38710 } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35662, zCols, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35808, zCols, 0, pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37583, __ccgo_ts+38612, int32(1), pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37729, __ccgo_ts+38758, int32(1), pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35834, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35980, uintptr(0), int32(FTS5_CURRENT_VERSION)) } } if rc != 0 { @@ -214490,9 +216444,9 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig (*TFts5Storage)(unsafe.Pointer(p)).FbTotalsValid = 0 /* Delete the contents of the %_data and %_docsize tables. */ - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38629, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38775, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38679, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38825, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } /* Reinitialize the %_data table. This call creates the initial structure ** and averages records. */ @@ -214500,7 +216454,7 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3Fts5IndexReinit(tls, (*TFts5Storage)(unsafe.Pointer(p)).FpIndex) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35834, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35980, uintptr(0), int32(FTS5_CURRENT_VERSION)) } return rc } @@ -214714,7 +216668,7 @@ func _fts5StorageCount(tls *libc.TLS, p uintptr, zSuffix uintptr, pnRow uintptr) var _ /* pCnt at bp+0 */ uintptr _, _, _ = pConfig, rc, zSql pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38708, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38854, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -214924,14 +216878,14 @@ func _sqlite3Fts5StorageIntegrity(tls *libc.TLS, p uintptr, iArg int32) (r int32 ** number of rows. */ if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { *(*Ti64)(unsafe.Pointer(bp + 48)) = 0 - rc = _fts5StorageCount(tls, p, __ccgo_ts+35095, bp+48) + rc = _fts5StorageCount(tls, p, __ccgo_ts+35241, bp+48) if rc == SQLITE_OK && *(*Ti64)(unsafe.Pointer(bp + 48)) != (*TFts5Storage)(unsafe.Pointer(p)).FnTotalRow { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<= int32('A') && int32(*(*uint8)(unsafe.Pointer(zCsr))) <= int32('Z') { @@ -215852,6 +217808,7 @@ _5: goto _2 _1: ; + goto tokenize_done tokenize_done: ; if rc == int32(SQLITE_DONE) { @@ -215915,7 +217872,7 @@ func _fts5PorterCreate(tls *libc.TLS, pCtx uintptr, azArg uintptr, nArg int32, p pApi = pCtx rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zBase = __ccgo_ts + 38800 + zBase = __ccgo_ts + 38946 if nArg > 0 { zBase = *(*uintptr)(unsafe.Pointer(azArg)) } @@ -216130,64 +218087,64 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38810, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38956, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38813, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38959, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38818, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38964, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('e'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38823, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38969, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38826, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38972, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('l'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38829, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38975, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38834, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38980, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38839, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38985, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38843, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38989, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38849, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38995, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38854, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39000, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -216196,49 +218153,49 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38858, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39004, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1_and_S_or_T(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38862, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39008, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } } case int32('s'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38865, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39011, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('t'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38869, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39015, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38873, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39019, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38877, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39023, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38881, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39027, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('z'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38885, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39031, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -216255,20 +218212,20 @@ func _fts5PorterStep1B2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38889, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38869, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39035, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39015, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('b'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38892, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38895, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39038, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39041, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38899, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38885, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39045, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39031, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } @@ -216284,75 +218241,75 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38902, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39048, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38869, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39015, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38910, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39056, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38917, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39063, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(4) } } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38922, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39068, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38818, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38964, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38927, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39073, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38813, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38959, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } } case int32('e'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38932, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39078, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38885, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39031, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('g'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38937, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39083, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15909, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15988, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('l'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38942, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39088, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38895, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39041, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38946, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39092, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38810, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38956, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38951, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39097, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38854, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39000, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38957, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39103, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38961, uint64(1)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39107, uint64(1)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(1) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38963, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39109, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38877, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39023, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } @@ -216361,48 +218318,48 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38969, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39115, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38885, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39031, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38977, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39123, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38869, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39015, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38983, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39129, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38869, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39015, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } } } case int32('s'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38988, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39134, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38810, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38956, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38994, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39140, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38881, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39027, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39002, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39148, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39010, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39156, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39014, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39160, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38877, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39023, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } @@ -216410,21 +218367,21 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39022, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39168, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38810, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38956, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39028, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39174, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38881, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39027, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39034, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39180, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38895, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39041, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(3) } } @@ -216442,48 +218399,48 @@ func _fts5PorterStep3(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39041, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39187, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38826, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38972, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } case int32('s'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39046, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39192, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39051, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39197, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38826, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38972, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39057, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39203, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38826, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38972, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39010, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39156, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39063, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39209, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } case int32('z'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39069, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39215, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38810, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38956, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } @@ -216499,13 +218456,13 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('e'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39075, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39221, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39079, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39225, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(2) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39082, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39228, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) ret = int32(1) @@ -216513,7 +218470,7 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39085, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39231, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) ret = int32(1) @@ -216598,6 +218555,7 @@ func _fts5PorterCb(tls *libc.TLS, pCtx uintptr, tflags int32, pToken uintptr, nT *(*int32)(unsafe.Pointer(bp))-- } return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, aBuf, *(*int32)(unsafe.Pointer(bp)), iStart, iEnd) + goto pass_through pass_through: ; return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, pToken, nToken, iStart, iEnd) @@ -216673,14 +218631,14 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p break } zArg = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+int32(1))*8)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39089) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39235) { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || *(*uint8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { (*TTrigramTokenizer)(unsafe.Pointer(pNew)).FbFold = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('0')) } } else { - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38782) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38928) { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('2') || *(*uint8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { @@ -216954,7 +218912,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { Fx Tfts5_tokenizer }{ 0: { - FzName: __ccgo_ts + 38800, + FzName: __ccgo_ts + 38946, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5UnicodeCreate), FxDelete: __ccgo_fp(_fts5UnicodeDelete), @@ -216962,7 +218920,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 1: { - FzName: __ccgo_ts + 39104, + FzName: __ccgo_ts + 39250, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5AsciiCreate), FxDelete: __ccgo_fp(_fts5AsciiDelete), @@ -216970,7 +218928,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 2: { - FzName: __ccgo_ts + 39110, + FzName: __ccgo_ts + 39256, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5PorterCreate), FxDelete: __ccgo_fp(_fts5PorterDelete), @@ -216978,7 +218936,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 3: { - FzName: __ccgo_ts + 39117, + FzName: __ccgo_ts + 39263, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5TriCreate), FxDelete: __ccgo_fp(_fts5TriDelete), @@ -222512,16 +224470,16 @@ func _fts5VocabTableType(tls *libc.TLS, zType uintptr, pzErr uintptr, peType uin zCopy = _sqlite3Fts5Strndup(tls, bp, zType, -int32(1)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { _sqlite3Fts5Dequote(tls, zCopy) - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39125) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39271) == 0 { *(*int32)(unsafe.Pointer(peType)) = FTS5_VOCAB_COL } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39129) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39275) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_ROW) } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39133) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39279) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_INSTANCE) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39142, libc.VaList(bp+16, zCopy)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39288, libc.VaList(bp+16, zCopy)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -222590,15 +224548,15 @@ func _fts5VocabInitVtab(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg var _ /* rc at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _ = azSchema, bDb, nByte, nDb, nTab, pRet, zDb, zTab, zType, v1, v2, v3 azSchema = [3]uintptr{ - 0: __ccgo_ts + 39176, - 1: __ccgo_ts + 39216, - 2: __ccgo_ts + 39251, + 0: __ccgo_ts + 39322, + 1: __ccgo_ts + 39362, + 2: __ccgo_ts + 39397, } pRet = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+23744, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) + bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+23867, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) if argc != int32(5) && bDb == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39294, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39440, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bDb != 0 { @@ -222768,10 +224726,10 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) zSql = uintptr(0) if (*TFts5VocabTable)(unsafe.Pointer(pTab)).FbBusy != 0 { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39327, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39473, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) return int32(SQLITE_ERROR) } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39358, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39504, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, (*TFts5VocabTable)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), bp+8, uintptr(0)) } @@ -222790,7 +224748,7 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39409, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39555, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } else { @@ -223092,7 +225050,7 @@ func _fts5VocabFilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, zUnuse if pLe != 0 { zCopy = Xsqlite3_value_text(tls, pLe) if zCopy == uintptr(0) { - zCopy = __ccgo_ts + 1650 + zCopy = __ccgo_ts + 1664 } (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm = Xsqlite3_value_bytes(tls, pLe) (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm = Xsqlite3_malloc(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm+int32(1)) @@ -223216,7 +225174,7 @@ func _sqlite3Fts5VocabInit(tls *libc.TLS, pGlobal uintptr, db uintptr) (r int32) var p uintptr _ = p p = pGlobal - return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39435, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) + return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39581, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) } var _fts5Vocab = Tsqlite3_module{ @@ -223269,7 +225227,7 @@ func init() { // /************** End of stmt.c ************************************************/ // /* Return the source-id for this library */ func Xsqlite3_sourceid(tls *libc.TLS) (r uintptr) { - return __ccgo_ts + 39445 + return __ccgo_ts + 39591 } type TAggInfo_col = struct { @@ -223551,11 +225509,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]uint8{'3', '.', '4', '5', '.', '3'} +var Xsqlite3_version = [7]uint8{'3', '.', '4', '6', '.', '0'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=0\x00COMPILER=clang-16.0.6\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%04d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00(subquery-%u)\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSmaller\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00PRAGMA \"%w\".integrity_check(%Q)\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00ceiling\x00floor\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00wrong # of entries in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00RIGHT PART OF \x00USE TEMP B-TREE FOR %sORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00parser stack overflow\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=0\x00COMPILER=clang-16.0.6\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00ceiling\x00floor\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%04d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00%u-ROW VALUES CLAUSE\x00(subquery-%u)\x00unrecognized token: \"%s\"\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSizeBetween\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: \"%s\" - should this be a string literal in single-quotes?\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00SCAN %S\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00wrong # of entries in index \x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00LAST TERM OF \x00USE TEMP B-TREE FOR %sORDER BY\x00USE TEMP B-TREE FOR LAST %d TERMS OF ORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00syntax error\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00,\n\x00: \x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00 \x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_pretty\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00" type Sqlite3_int64 = sqlite3_int64 type Sqlite3_mutex_methods = sqlite3_mutex_methods diff --git a/vendor/modernc.org/sqlite/lib/sqlite_linux_386.go b/vendor/modernc.org/sqlite/lib/sqlite_linux_386.go index 1035949c..a454f237 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_linux_386.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_linux_386.go @@ -1,4 +1,4 @@ -// Code generated for linux/386 by 'generator -mlong-double-64 --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -import runtime -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -extended-errors -o sqlite3.go sqlite3.c -I/tmp/libsqlite3/sqlite-amalgamation-3450300/ccgo -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. +// Code generated for linux/386 by 'generator -mlong-double-64 --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libz/include/linux/386 -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libtcl8.6/include/linux/386 -extended-errors -o sqlite3.go sqlite3.c -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. //go:build linux && 386 // +build linux,386 @@ -10,8 +10,6 @@ import ( "unsafe" "modernc.org/libc" - - "runtime" ) var ( @@ -1063,6 +1061,7 @@ const OPFLG_IN1 = 2 const OPFLG_IN2 = 4 const OPFLG_IN3 = 8 const OPFLG_JUMP = 1 +const OPFLG_JUMP0 = 128 const OPFLG_NCYCLE = 64 const OPFLG_OUT2 = 16 const OPFLG_OUT3 = 32 @@ -1140,7 +1139,7 @@ const OP_IfNotOpen = 25 const OP_IfNotZero = 60 const OP_IfNullRow = 20 const OP_IfPos = 59 -const OP_IfSmaller = 33 +const OP_IfSizeBetween = 33 const OP_IncrVacuum = 62 const OP_Init = 8 const OP_InitCoroutine = 11 @@ -1544,6 +1543,7 @@ const SF_ComplexResult = 262144 const SF_Compound = 256 const SF_Converted = 65536 const SF_CopyCte = 67108864 +const SF_Correlated = 536870912 const SF_Distinct = 1 const SF_Expanded = 64 const SF_FixedLimit = 16384 @@ -1818,6 +1818,7 @@ const SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT = -1 const SQLITE_DEFAULT_LOOKASIDE = 40 const SQLITE_DEFAULT_MEMSTATUS = 0 const SQLITE_DEFAULT_MMAP_SIZE = 0 +const SQLITE_DEFAULT_OPTIMIZE_LIMIT = 2000 const SQLITE_DEFAULT_PAGE_SIZE = 4096 const SQLITE_DEFAULT_PCACHE_INITSZ = 20 const SQLITE_DEFAULT_PROXYDIR_PERMISSIONS = 493 @@ -1835,6 +1836,7 @@ const SQLITE_DESERIALIZE_READONLY = 4 const SQLITE_DESERIALIZE_RESIZEABLE = 2 const SQLITE_DETACH = 25 const SQLITE_DETERMINISTIC = 2048 +const SQLITE_DIGIT_SEPARATOR = 95 const SQLITE_DIRECTONLY = 524288 const SQLITE_DIRECT_OVERFLOW_READ = 1 const SQLITE_DONE = 101 @@ -2259,7 +2261,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355" +const SQLITE_SOURCE_ID = "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2367,8 +2369,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.45.3" -const SQLITE_VERSION_NUMBER = 3045003 +const SQLITE_VERSION = "3.46.0" +const SQLITE_VERSION_NUMBER = 3046000 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -2529,11 +2531,11 @@ const TF_HasStat1 = 16 const TF_HasStat4 = 8192 const TF_HasStored = 64 const TF_HasVirtual = 32 +const TF_MaybeReanalyze = 256 const TF_NoVisibleRowid = 512 const TF_OOOHidden = 1024 const TF_Readonly = 1 const TF_Shadow = 4096 -const TF_StatsUsed = 256 const TF_Strict = 65536 const TF_WithoutRowid = 128 const TIMER_ABSTIME = 1 @@ -2690,7 +2692,7 @@ const TK_ID = 59 const TK_IF = 18 const TK_IF_NULL_ROW = 179 const TK_IGNORE = 63 -const TK_ILLEGAL = 184 +const TK_ILLEGAL = 185 const TK_IMMEDIATE = 8 const TK_IN = 49 const TK_INDEX = 161 @@ -2738,6 +2740,7 @@ const TK_PRAGMA = 70 const TK_PRECEDING = 88 const TK_PRIMARY = 122 const TK_PTR = 112 +const TK_QNUMBER = 183 const TK_QUERY = 3 const TK_RAISE = 71 const TK_RANGE = 89 @@ -2762,7 +2765,7 @@ const TK_SELECT_COLUMN = 178 const TK_SEMI = 1 const TK_SET = 130 const TK_SLASH = 109 -const TK_SPACE = 183 +const TK_SPACE = 184 const TK_SPAN = 181 const TK_STAR = 108 const TK_STRING = 117 @@ -2775,12 +2778,12 @@ const TK_TRANSACTION = 6 const TK_TRIGGER = 77 const TK_TRUEFALSE = 170 const TK_TRUTH = 175 -const TK_UMINUS = 173 +const TK_UMINUS = 174 const TK_UNBOUNDED = 90 const TK_UNION = 134 const TK_UNIQUE = 123 const TK_UPDATE = 129 -const TK_UPLUS = 174 +const TK_UPLUS = 173 const TK_USING = 144 const TK_VACUUM = 78 const TK_VALUES = 139 @@ -2936,31 +2939,37 @@ const W_OK = 2 const XN_EXPR = -2 const XN_ROWID = -1 const X_OK = 1 +const YYDYNSTACK = 1 const YYFALLBACK = 1 +const YYFREE = 0 +const YYGROWABLESTACK = 1 const YYMALLOCARGTYPE = 0 -const YYNOCODE = 319 +const YYNOCODE = 322 const YYNOERRORRECOVERY = 1 -const YYNRULE = 405 -const YYNRULE_WITH_ACTION = 340 -const YYNSTATE = 579 -const YYNTOKEN = 185 +const YYNRULE = 409 +const YYNRULE_WITH_ACTION = 344 +const YYNSTATE = 583 +const YYNTOKEN = 186 const YYPARSEFREENEVERNULL = 1 +const YYREALLOC = 0 const YYSTACKDEPTH = 100 const YYWILDCARD = 101 -const YY_ACCEPT_ACTION = 1244 -const YY_ACTTAB_COUNT = 2100 -const YY_ERROR_ACTION = 1243 -const YY_MAX_REDUCE = 1650 -const YY_MAX_SHIFT = 578 -const YY_MAX_SHIFTREDUCE = 1242 -const YY_MIN_REDUCE = 1246 -const YY_MIN_SHIFTREDUCE = 838 -const YY_NO_ACTION = 1245 -const YY_REDUCE_COUNT = 410 -const YY_REDUCE_MAX = 1753 -const YY_REDUCE_MIN = -271 -const YY_SHIFT_COUNT = 578 -const YY_SHIFT_MAX = 2088 +const YY_ACCEPT_ACTION = 1255 +const YY_ACTTAB_COUNT = 2142 +const YY_ERROR_ACTION = 1254 +const YY_MAX_DSTRCTR = 319 +const YY_MAX_REDUCE = 1665 +const YY_MAX_SHIFT = 582 +const YY_MAX_SHIFTREDUCE = 1253 +const YY_MIN_DSTRCTR = 205 +const YY_MIN_REDUCE = 1257 +const YY_MIN_SHIFTREDUCE = 845 +const YY_NO_ACTION = 1256 +const YY_REDUCE_COUNT = 411 +const YY_REDUCE_MAX = 1798 +const YY_REDUCE_MIN = -275 +const YY_SHIFT_COUNT = 582 +const YY_SHIFT_MAX = 2128 const YY_SHIFT_MIN = 0 const _ALLOCA_H = 1 const _ASSERT_H = 1 @@ -3624,6 +3633,9 @@ const fdatasync = 0 const first_valueInvFunc = 0 const first_valueValueFunc = 0 const fts5GetVarint = 0 +const fts5YYDYNSTACK = 0 +const fts5YYFREE = 0 +const fts5YYGROWABLESTACK = 0 const fts5YYMALLOCARGTYPE = 0 const fts5YYNFTS5TOKEN = 16 const fts5YYNOCODE = 27 @@ -3632,13 +3644,16 @@ const fts5YYNRULE = 28 const fts5YYNRULE_WITH_ACTION = 28 const fts5YYNSTATE = 35 const fts5YYPARSEFREENOTNULL = 1 +const fts5YYREALLOC = 0 const fts5YYSTACKDEPTH = 100 const fts5YY_ACCEPT_ACTION = 81 const fts5YY_ACTTAB_COUNT = 105 const fts5YY_ERROR_ACTION = 80 +const fts5YY_MAX_DSTRCTR = 24 const fts5YY_MAX_REDUCE = 110 const fts5YY_MAX_SHIFT = 34 const fts5YY_MAX_SHIFTREDUCE = 79 +const fts5YY_MIN_DSTRCTR = 16 const fts5YY_MIN_REDUCE = 83 const fts5YY_MIN_SHIFTREDUCE = 52 const fts5YY_NO_ACTION = 82 @@ -4061,11 +4076,11 @@ type sqlite3_file1 = Tsqlite3_file1 // ** // ** xLock() upgrades the database file lock. In other words, xLock() moves the // ** database file lock in the direction NONE toward EXCLUSIVE. The argument to -// ** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +// ** xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never // ** SQLITE_LOCK_NONE. If the database file lock is already at or above the // ** requested lock, then the call to xLock() is a no-op. // ** xUnlock() downgrades the database file lock to either SHARED or NONE. -// * If the lock is already at or below the requested lock state, then the call +// ** If the lock is already at or below the requested lock state, then the call // ** to xUnlock() is a no-op. // ** The xCheckReservedLock() method checks whether any database connection, // ** either in this process or in some other process, is holding a RESERVED, @@ -5845,6 +5860,7 @@ type Tsqlite3_changegroup = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -6171,8 +6187,8 @@ type Fts5PhraseIter1 = TFts5PhraseIter1 ** EXTENSION API FUNCTIONS ** ** xUserData(pFts): -** Return a copy of the context pointer the extension function was -** registered with. +** Return a copy of the pUserData pointer passed to the xCreateFunction() +** API when the extension function was registered. ** ** xColumnTotalSize(pFts, iCol, pnToken): ** If parameter iCol is less than zero, set output variable *pnToken @@ -7934,7 +7950,7 @@ type uptr = Tuptr ** 0x00000010 Display sqlite3_index_info xBestIndex calls ** 0x00000020 Range an equality scan metrics ** 0x00000040 IN operator decisions -** 0x00000080 WhereLoop cost adjustements +** 0x00000080 WhereLoop cost adjustments ** 0x00000100 ** 0x00000200 Covering index decisions ** 0x00000400 OR optimization @@ -8447,6 +8463,7 @@ type TParse = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -8665,6 +8682,7 @@ type TSrcItem = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -10944,10 +10962,12 @@ type IdList1 = TIdList1 ** ** Union member validity: ** -** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc -** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy -** u2.pIBIndex fg.isIndexedBy && !fg.isCte -** u2.pCteUse fg.isCte && !fg.isIndexedBy +** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc +** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy +** u1.nRow !fg.isTabFunc && !fg.isIndexedBy +** +** u2.pIBIndex fg.isIndexedBy && !fg.isCte +** u2.pCteUse fg.isCte && !fg.isIndexedBy */ type TSrcItem1 = struct { FpSchema uintptr @@ -10973,6 +10993,7 @@ type TSrcItem1 = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -11376,6 +11397,7 @@ type TParse1 = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -12737,12 +12759,12 @@ var _sqlite3WhereTrace = uint32(0) var _sqlite3OpcodeProperty = [190]uint8{ 4: uint8(0x10), 6: uint8(0x41), - 8: uint8(0x01), + 8: uint8(0x81), 9: uint8(0x01), 10: uint8(0x01), - 11: uint8(0x01), - 12: uint8(0x03), - 13: uint8(0x03), + 11: uint8(0x81), + 12: uint8(0x83), + 13: uint8(0x83), 14: uint8(0x01), 15: uint8(0x01), 16: uint8(0x03), @@ -12750,22 +12772,22 @@ var _sqlite3OpcodeProperty = [190]uint8{ 18: uint8(0x01), 19: uint8(0x12), 20: uint8(0x01), - 21: uint8(0x49), - 22: uint8(0x49), - 23: uint8(0x49), - 24: uint8(0x49), + 21: uint8(0xc9), + 22: uint8(0xc9), + 23: uint8(0xc9), + 24: uint8(0xc9), 25: uint8(0x01), 26: uint8(0x49), 27: uint8(0x49), 28: uint8(0x49), 29: uint8(0x49), - 30: uint8(0x49), + 30: uint8(0xc9), 31: uint8(0x49), - 32: uint8(0x41), + 32: uint8(0xc1), 33: uint8(0x01), 34: uint8(0x41), 35: uint8(0x41), - 36: uint8(0x41), + 36: uint8(0xc1), 37: uint8(0x01), 38: uint8(0x41), 39: uint8(0x41), @@ -12777,7 +12799,7 @@ var _sqlite3OpcodeProperty = [190]uint8{ 45: uint8(0x41), 46: uint8(0x23), 47: uint8(0x0b), - 48: uint8(0x01), + 48: uint8(0x81), 49: uint8(0x01), 50: uint8(0x03), 51: uint8(0x03), @@ -13647,7 +13669,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= int32(libc.Uint32FromInt64(40)/libc.Uint32FromInt64(4)) { - return _sqlite3MisuseError(tls, int32(23890)) + return _sqlite3MisuseError(tls, int32(23961)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -14010,43 +14032,37 @@ type itimerspec = Titimerspec // ** A structure for holding a single date and time. // */ type TDateTime = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD int8 - FrawS int8 - FvalidYMD int8 - FvalidHMS int8 - FvalidTZ int8 - FtzSet int8 - FisError int8 - FuseSubsec int8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD int8 + FvalidYMD int8 + FvalidHMS int8 + FnFloor int8 + F__ccgo44 uint8 } type DateTime = TDateTime type TDateTime1 = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD int8 - FrawS int8 - FvalidYMD int8 - FvalidHMS int8 - FvalidTZ int8 - FtzSet int8 - FisError int8 - FuseSubsec int8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD int8 + FvalidYMD int8 + FvalidHMS int8 + FnFloor int8 + F__ccgo44 uint8 } type DateTime1 = TDateTime1 @@ -14116,6 +14132,7 @@ func _getDigits(tls *libc.TLS, zDate uintptr, zFormat uintptr, va uintptr) (r in cnt++ zFormat += uintptr(4) } + goto end_getDigits end_getDigits: ; _ = ap @@ -14172,6 +14189,8 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } else { if c == int32('Z') || c == int32('z') { zDate++ + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) goto zulu_time } else { return libc.BoolInt32(c != 0) @@ -14184,12 +14203,12 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } zDate += uintptr(5) (*TDateTime)(unsafe.Pointer(p)).Ftz = sgn * (*(*int32)(unsafe.Pointer(bp + 4)) + *(*int32)(unsafe.Pointer(bp))*int32(60)) + goto zulu_time zulu_time: ; for int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zDate)))])&int32(0x01) != 0 { zDate++ } - (*TDateTime)(unsafe.Pointer(p)).FtzSet = int8(1) return libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zDate))) != 0) } @@ -14206,11 +14225,10 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var ms, rScale float64 - var v1 int32 var _ /* h at bp+0 */ int32 var _ /* m at bp+4 */ int32 var _ /* s at bp+8 */ int32 - _, _, _ = ms, rScale, v1 + _, _ = ms, rScale ms = float64(0) if _getDigits(tls, zDate, __ccgo_ts+1162, libc.VaList(bp+24, bp, bp+4)) != int32(2) { return int32(1) @@ -14236,7 +14254,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 8)) = 0 } (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) (*TDateTime)(unsafe.Pointer(p)).Fh = *(*int32)(unsafe.Pointer(bp)) (*TDateTime)(unsafe.Pointer(p)).Fm = *(*int32)(unsafe.Pointer(bp + 4)) @@ -14244,12 +14262,6 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { if _parseTimezone(tls, zDate, p) != 0 { return int32(1) } - if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { - v1 = int32(1) - } else { - v1 = 0 - } - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = int8(v1) return 0 } @@ -14260,7 +14272,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { // */ func _datetimeError(tls *libc.TLS, p uintptr) { libc.Xmemset(tls, p, 0, uint32(48)) - (*TDateTime)(unsafe.Pointer(p)).FisError = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 1, 0x2) } // C documentation @@ -14286,7 +14298,7 @@ func _computeJD(tls *libc.TLS, p uintptr) { M = int32(1) D = int32(1) } - if Y < -int32(4713) || Y > int32(9999) || (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Y < -int32(4713) || Y > int32(9999) || int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { _datetimeError(tls, p) return } @@ -14302,11 +14314,44 @@ func _computeJD(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) if (*TDateTime)(unsafe.Pointer(p)).FvalidHMS != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) += int64((*TDateTime)(unsafe.Pointer(p)).Fh*int32(3600000)+(*TDateTime)(unsafe.Pointer(p)).Fm*int32(60000)) + int64((*TDateTime)(unsafe.Pointer(p)).Fs*libc.Float64FromInt32(1000)+libc.Float64FromFloat64(0.5)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64((*TDateTime)(unsafe.Pointer(p)).Ftz * int32(60000)) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + } + } +} + +// C documentation +// +// /* +// ** Given the YYYY-MM-DD information current in p, determine if there +// ** is day-of-month overflow and set nFloor to the number of days that +// ** would need to be subtracted from the date in order to bring the +// ** date back to the end of the month. +// */ +func _computeFloor(tls *libc.TLS, p uintptr) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if (*TDateTime)(unsafe.Pointer(p)).FD <= int32(28) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } else { + if int32(1)<<(*TDateTime)(unsafe.Pointer(p)).FM&int32(0x15aa) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } else { + if (*TDateTime)(unsafe.Pointer(p)).FM != int32(2) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = libc.BoolInt8((*TDateTime)(unsafe.Pointer(p)).FD == libc.Int32FromInt32(31)) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FY%int32(4) != 0 || (*TDateTime)(unsafe.Pointer(p)).FY%int32(100) == 0 && (*TDateTime)(unsafe.Pointer(p)).FY%int32(400) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = int8((*TDateTime)(unsafe.Pointer(p)).FD - int32(28)) + } else { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = int8((*TDateTime)(unsafe.Pointer(p)).FD - int32(29)) + } + } } } } @@ -14365,12 +14410,15 @@ func _parseYyyyMmDd(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FY = v1 (*TDateTime)(unsafe.Pointer(p)).FM = *(*int32)(unsafe.Pointer(bp + 4)) (*TDateTime)(unsafe.Pointer(p)).FD = *(*int32)(unsafe.Pointer(bp + 8)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + _computeFloor(tls, p) + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { _computeJD(tls, p) } return 0 } +/* Forward declaration */ + // C documentation // // /* @@ -14382,6 +14430,9 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) (*TDateTime)(unsafe.Pointer(p)).FiJD = _sqlite3StmtCurrentTime(tls, context) if (*TDateTime)(unsafe.Pointer(p)).FiJD > 0 { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + _clearYMD_HMS_TZ(tls, p) return 0 } else { return int32(1) @@ -14399,7 +14450,7 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) // */ func _setRawDateNumber(tls *libc.TLS, p uintptr, r float64) { (*TDateTime)(unsafe.Pointer(p)).Fs = r - (*TDateTime)(unsafe.Pointer(p)).FrawS = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 0, 0x1) if r >= float64(0) && r < float64(5.3734845e+06) { (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r*libc.Float64FromFloat64(8.64e+07) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) @@ -14442,7 +14493,7 @@ func _parseDateOrTime(tls *libc.TLS, context uintptr, zDate uintptr, p uintptr) return 0 } else { if (_sqlite3StrICmp(tls, zDate, __ccgo_ts+1190) == 0 || _sqlite3StrICmp(tls, zDate, __ccgo_ts+1197) == 0) && _sqlite3NotPureFunc(tls, context) != 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) return _setDateTimeToCurrent(tls, context, p) } } @@ -14534,7 +14585,7 @@ func _computeHMS(tls *libc.TLS, p uintptr) { day_min = day_ms / int32(60000) (*TDateTime)(unsafe.Pointer(p)).Fm = day_min % int32(60) (*TDateTime)(unsafe.Pointer(p)).Fh = day_min / int32(60) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) } @@ -14556,7 +14607,7 @@ func _computeYMD_HMS(tls *libc.TLS, p uintptr) { func _clearYMD_HMS_TZ(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 } /* @@ -14657,9 +14708,9 @@ func _toLocaltime(tls *libc.TLS, p uintptr, pCtx uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = int8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 - (*TDateTime)(unsafe.Pointer(p)).FisError = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 1, 0x2) return SQLITE_OK } @@ -14707,13 +14758,13 @@ var _aXformType = [6]struct { FnName: uint8(5), FzName: [7]int8{'m', 'o', 'n', 't', 'h'}, FrLimit: float32(176546), - FrXform: float32(2.592e+06), + FrXform: float32(libc.Float64FromFloat64(30) * libc.Float64FromFloat64(86400)), }, 5: { FnName: uint8(4), FzName: [7]int8{'y', 'e', 'a', 'r'}, FrLimit: float32(14713), - FrXform: float32(3.1536e+07), + FrXform: float32(libc.Float64FromFloat64(365) * libc.Float64FromFloat64(86400)), }, } @@ -14727,15 +14778,15 @@ var _aXformType = [6]struct { func _autoAdjustDate(tls *libc.TLS, p uintptr) { var r float64 _ = r - if !((*TDateTime)(unsafe.Pointer(p)).FrawS != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + if !(int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } else { if (*TDateTime)(unsafe.Pointer(p)).Fs >= float64(int64(-libc.Int32FromInt32(21086676))*libc.Int64FromInt32(10000)) && (*TDateTime)(unsafe.Pointer(p)).Fs <= float64(libc.Int64FromInt32(25340230)*libc.Int64FromInt32(10000)+libc.Int64FromInt32(799)) { r = (*TDateTime)(unsafe.Pointer(p)).Fs*float64(1000) + float64(2.1086676e+14) _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } } @@ -14752,14 +14803,20 @@ func _autoAdjustDate(tls *libc.TLS, p uintptr) { // ** NNN.NNNN seconds // ** NNN months // ** NNN years +// ** +/-YYYY-MM-DD HH:MM:SS.SSS +// ** ceiling +// ** floor // ** start of month // ** start of year // ** start of week // ** start of day // ** weekday N // ** unixepoch +// ** auto // ** localtime // ** utc +// ** subsec +// ** subsecond // ** // ** Return 0 on success and 1 if there is any kind of error. If the error // ** is in a system call (i.e. localtime()), then an error message is written @@ -14770,12 +14827,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, bp := tls.Alloc(160) defer tls.Free(160) var Z, day Tsqlite3_int64 - var cnt, i, rc, x, y, v12, v2, v5, v7, v9 int32 - var iErr, iGuess, iOrigJD, v1 Ti64 - var rRounder, v10 float64 + var cnt, i, rc, x, y, v1, v10, v13, v3, v6, v8 int32 + var iErr, iGuess, iOrigJD, v2 Ti64 + var rRounder, v11 float64 var z0 int8 var z2 uintptr - var v3, v6 bool + var v4, v7 bool var _ /* D at bp+64 */ int32 var _ /* M at bp+60 */ int32 var _ /* Y at bp+56 */ int32 @@ -14784,7 +14841,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, var _ /* new at bp+8 */ TDateTime var _ /* r at bp+0 */ float64 var _ /* tx at bp+76 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v12, v2, v3, v5, v6, v7, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v11, v13, v2, v3, v4, v6, v7, v8 rc = int32(1) switch int32(_sqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z)))]) { case int32('a'): @@ -14801,6 +14858,33 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _autoAdjustDate(tls, p) rc = 0 } + case int32('c'): + /* + ** ceiling + ** + ** Resolve day-of-month overflow by rolling forward into the next + ** month. As this is the default action, this modifier is really + ** a no-op that is only included for symmetry. See "floor". + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1235) == 0 { + _computeJD(tls, p) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } + case int32('f'): + /* + ** floor + ** + ** Resolve day-of-month overflow by rolling back to the end of the + ** previous month. + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1243) == 0 { + _computeJD(tls, p) + *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64(int32((*TDateTime)(unsafe.Pointer(p)).FnFloor) * int32(86400000)) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + } case int32('j'): /* ** julianday @@ -14810,13 +14894,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** value in the allowed range of julian day numbers understood by ** SQLite (0..5373484.5) then the result will be NULL. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1235) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1249) == 0 { if idx > int32(1) { return int32(1) } /* IMP: R-31176-64601 */ - if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { rc = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } case int32('l'): @@ -14825,8 +14909,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Assuming the current time value is UTC (a.k.a. GMT), shift it to ** show local time. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1245) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - rc = _toLocaltime(tls, p, pCtx) + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1259) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x10>>4)) != 0 { + v1 = SQLITE_OK + } else { + v1 = _toLocaltime(tls, p, pCtx) + } + rc = v1 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 4, 0x10) } case int32('u'): /* @@ -14835,7 +14926,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Treat the current value of p->s as the number of ** seconds since 1970. Convert to a real julian day number. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1255) == 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1269) == 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { if idx > int32(1) { return int32(1) } /* IMP: R-49255-55373 */ @@ -14844,17 +14935,17 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(*(*float64)(unsafe.Pointer(bp)) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) rc = 0 } } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1265) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - if int32((*TDateTime)(unsafe.Pointer(p)).FtzSet) == 0 { /* Guess at the corresponding utc time */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1279) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x8>>3)) == 0 { /* Guess at the corresponding utc time */ cnt = 0 /* Guess is off by this much */ _computeJD(tls, p) - v1 = (*TDateTime)(unsafe.Pointer(p)).FiJD - iOrigJD = v1 - iGuess = v1 + v2 = (*TDateTime)(unsafe.Pointer(p)).FiJD + iOrigJD = v2 + iGuess = v2 iErr = 0 for { libc.Xmemset(tls, bp+8, 0, uint32(48)) @@ -14867,21 +14958,22 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, bp+8) iErr = (*(*TDateTime)(unsafe.Pointer(bp + 8))).FiJD - iOrigJD - goto _4 - _4: + goto _5 + _5: ; - if v3 = iErr != 0; v3 { - v2 = cnt + if v4 = iErr != 0; v4 { + v3 = cnt cnt++ } - if !(v3 && v2 < int32(3)) { + if !(v4 && v3 < int32(3)) { break } } libc.Xmemset(tls, p, 0, uint32(48)) (*TDateTime)(unsafe.Pointer(p)).FiJD = iGuess (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FtzSet = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) } rc = SQLITE_OK } @@ -14894,13 +14986,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** weekday N where 0==Sunday, 1==Monday, and so forth. If the ** date is already on the appropriate weekday, this is a no-op. */ - if v6 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1269, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v6 { - v5 = int32(*(*float64)(unsafe.Pointer(bp))) - n = v5 + if v7 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1283, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v7 { + v6 = int32(*(*float64)(unsafe.Pointer(bp))) + n = v6 } - if v6 && float64(v5) == *(*float64)(unsafe.Pointer(bp)) { + if v7 && float64(v6) == *(*float64)(unsafe.Pointer(bp)) { _computeYMD_HMS(tls, p) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 _computeJD(tls, p) Z = ((*TDateTime)(unsafe.Pointer(p)).FiJD + int64(129600000)) / int64(86400000) % int64(7) @@ -14924,9 +15016,9 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Show subsecond precision in the output of datetime() and ** unixepoch() and strftime('%s'). */ - if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1278, int32(9)) != 0 { + if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1292, int32(9)) != 0 { if Xsqlite3_stricmp(tls, z, __ccgo_ts+1190) == 0 || Xsqlite3_stricmp(tls, z, __ccgo_ts+1197) == 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) rc = 0 } break @@ -14937,23 +15029,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z += uintptr(9) _computeYMD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) - v7 = libc.Int32FromInt32(0) - (*TDateTime)(unsafe.Pointer(p)).Fm = v7 - (*TDateTime)(unsafe.Pointer(p)).Fh = v7 + v8 = libc.Int32FromInt32(0) + (*TDateTime)(unsafe.Pointer(p)).Fm = v8 + (*TDateTime)(unsafe.Pointer(p)).Fh = v8 (*TDateTime)(unsafe.Pointer(p)).Fs = float64(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1288) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1302) == 0 { (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1294) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1308) == 0 { (*TDateTime)(unsafe.Pointer(p)).FM = int32(1) (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1299) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1313) == 0 { rc = 0 } } @@ -14995,15 +15087,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } if int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) == int32('-') { - if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1303, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1317, libc.VaList(bp+136, bp+56)) == int32(1) { break } - if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1307, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1321, libc.VaList(bp+136, bp+56)) == int32(1) { break } } - goto _8 - _8: + goto _9 + _9: ; n++ } @@ -15020,12 +15112,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } /* Must start with +/- */ if n == int32(5) { - if _getDigits(tls, z+1, __ccgo_ts+1311, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1325, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } } else { _ = libc.Int32FromInt32(0) - if _getDigits(tls, z+1, __ccgo_ts+1323, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1337, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } z++ @@ -15047,13 +15139,14 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, *(*int32)(unsafe.Pointer(p + 12)) += *(*int32)(unsafe.Pointer(bp + 60)) } if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v9 + x = v10 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) _computeJD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 @@ -15097,7 +15190,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z++ } n = _sqlite3Strlen30(tls, z) - if n > int32(10) || n < int32(3) { + if n < int32(3) || n > int32(10) { break } if int32(_sqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z + uintptr(n-int32(1)))))]) == int32('s') { @@ -15106,11 +15199,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeJD(tls, p) _ = libc.Int32FromInt32(0) if *(*float64)(unsafe.Pointer(bp)) < libc.Float64FromInt32(0) { - v10 = -libc.Float64FromFloat64(0.5) + v11 = -libc.Float64FromFloat64(0.5) } else { - v10 = +libc.Float64FromFloat64(0.5) + v11 = +libc.Float64FromFloat64(0.5) } - rRounder = v10 + rRounder = v11 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 i = 0 for { if !(i < int32(libc.Uint32FromInt64(96)/libc.Uint32FromInt64(16))) { @@ -15123,20 +15217,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 12)) += int32(*(*float64)(unsafe.Pointer(bp))) if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v12 + x = v13 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) case int32(5): /* Special processing to add years */ y = int32(*(*float64)(unsafe.Pointer(bp))) _ = libc.Int32FromInt32(0) _computeYMD_HMS(tls, p) + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(p + 8)) += y + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) break @@ -15146,8 +15243,8 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, rc = 0 break } - goto _11 - _11: + goto _12 + _12: ; i++ } @@ -15206,7 +15303,7 @@ func _isDate(tls *libc.TLS, context uintptr, argc int32, argv uintptr, p uintptr i++ } _computeJD(tls, p) - if (*TDateTime)(unsafe.Pointer(p)).FisError != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x2>>1)) != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { return int32(1) } if argc == int32(1) && (*TDateTime)(unsafe.Pointer(p)).FvalidYMD != 0 && (*TDateTime)(unsafe.Pointer(p)).FD > int32(28) { @@ -15254,7 +15351,7 @@ func _unixepochFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _ /* x at bp+0 */ TDateTime if _isDate(tls, context, argc, argv, bp) == 0 { _computeJD(tls, bp) - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { Xsqlite3_result_double(tls, context, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000)) } else { Xsqlite3_result_int64(tls, context, (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/int64(1000)-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000)) @@ -15299,7 +15396,7 @@ func _datetimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(15)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(16)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(17)] = int8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(18)] = int8(int32('0') + s/int32(10000)%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(19)] = int8(int32('0') + s/int32(1000)%int32(10)) @@ -15347,7 +15444,7 @@ func _timeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(3)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(4)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(5)] = int8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(6)] = int8(int32('0') + s/int32(10000)%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(7)] = int8(int32('0') + s/int32(1000)%int32(10)) @@ -15408,6 +15505,62 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } +// C documentation +// +// /* +// ** Compute the number of days after the most recent January 1. +// ** +// ** In other words, compute the zero-based day number for the +// ** current year: +// ** +// ** Jan01 = 0, Jan02 = 1, ..., Jan31 = 30, Feb01 = 31, ... +// ** Dec31 = 364 or 365. +// */ +func _daysAfterJan01(tls *libc.TLS, pDate uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* jan01 at bp+0 */ TDateTime + *(*TDateTime)(unsafe.Pointer(bp)) = *(*TDateTime)(unsafe.Pointer(pDate)) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + (*(*TDateTime)(unsafe.Pointer(bp))).FvalidJD = 0 + (*(*TDateTime)(unsafe.Pointer(bp))).FM = int32(1) + (*(*TDateTime)(unsafe.Pointer(bp))).FD = int32(1) + _computeJD(tls, bp) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD - (*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Monday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Monday, 1=Tuesday, 2=Wednesday, ..., 6=Sunday. +// */ +func _daysAfterMonday(tls *libc.TLS, pDate uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(43200000))/libc.Int64FromInt32(86400000)) % int32(7) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Sunday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Sunday, 1=Monday, 2=Tues, ..., 6=Saturday +// */ +func _daysAfterSunday(tls *libc.TLS, pDate uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)) % int32(7) +} + // C documentation // // /* @@ -15415,33 +15568,48 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { // ** // ** Return a string described by FORMAT. Conversions as follows: // ** -// ** %d day of month +// ** %d day of month 01-31 +// ** %e day of month 1-31 // ** %f ** fractional seconds SS.SSS +// ** %F ISO date. YYYY-MM-DD +// ** %G ISO year corresponding to %V 0000-9999. +// ** %g 2-digit ISO year corresponding to %V 00-99 // ** %H hour 00-24 -// ** %j day of year 000-366 +// ** %k hour 0-24 (leading zero converted to space) +// ** %I hour 01-12 +// ** %j day of year 001-366 // ** %J ** julian day number +// ** %l hour 1-12 (leading zero converted to space) // ** %m month 01-12 // ** %M minute 00-59 +// ** %p "am" or "pm" +// ** %P "AM" or "PM" +// ** %R time as HH:MM // ** %s seconds since 1970-01-01 // ** %S seconds 00-59 -// ** %w day of week 0-6 Sunday==0 -// ** %W week of year 00-53 +// ** %T time as HH:MM:SS +// ** %u day of week 1-7 Monday==1, Sunday==7 +// ** %w day of week 0-6 Sunday==0, Monday==1 +// ** %U week of year 00-53 (First Sunday is start of week 01) +// ** %V week of year 01-53 (First week containing Thursday is week 01) +// ** %W week of year 00-53 (First Monday is start of week 01) // ** %Y year 0000-9999 // ** %% % // */ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { - bp := tls.Alloc(160) - defer tls.Free(160) + bp := tls.Alloc(208) + defer tls.Free(208) var c, cf int8 var db, zFmt, v3, v4, v5, v6, v7 uintptr - var h, nDay, wd int32 + var h int32 var i, j, v2 Tsize_t var iS Ti64 var s float64 var _ /* sRes at bp+48 */ Tsqlite3_str var _ /* x at bp+0 */ TDateTime + var _ /* y at bp+120 */ TDateTime var _ /* y at bp+72 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, nDay, s, wd, zFmt, v2, v3, v4, v5, v6, v7 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, s, zFmt, v2, v3, v4, v5, v6, v7 if argc == 0 { return } @@ -15474,28 +15642,42 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { fallthrough case int32('e'): if int32(cf) == int32('d') { - v3 = __ccgo_ts + 1335 + v3 = __ccgo_ts + 1349 } else { - v3 = __ccgo_ts + 1340 + v3 = __ccgo_ts + 1354 } - Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+128, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) - case int32('f'): + Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('f'): /* Fractional seconds. (Non-standard) */ s = (*(*TDateTime)(unsafe.Pointer(bp))).Fs if s > float64(59.999) { s = float64(59.999) } - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1344, libc.VaList(bp+128, s)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+176, s)) case int32('F'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+128, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1365, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('G'): /* Fall thru */ + fallthrough + case int32('g'): + *(*TDateTime)(unsafe.Pointer(bp + 72)) = *(*TDateTime)(unsafe.Pointer(bp)) + _ = libc.Int32FromInt32(0) + /* Move y so that it is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 72))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 72))).FvalidYMD = 0 + _computeYMD(tls, bp+72) + if int32(cf) == int32('g') { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp + 72))).FY%int32(100))) + } else { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1380, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp + 72))).FY)) + } case int32('H'): fallthrough case int32('k'): if int32(cf) == int32('H') { - v4 = __ccgo_ts + 1335 + v4 = __ccgo_ts + 1349 } else { - v4 = __ccgo_ts + 1340 + v4 = __ccgo_ts + 1354 } - Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+128, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) + Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) case int32('I'): /* Fall thru */ fallthrough case int32('l'): @@ -15507,73 +15689,72 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { h = int32(12) } if int32(cf) == int32('I') { - v5 = __ccgo_ts + 1335 + v5 = __ccgo_ts + 1349 } else { - v5 = __ccgo_ts + 1340 + v5 = __ccgo_ts + 1354 } - Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+128, h)) - case int32('W'): /* Fall thru */ - fallthrough - case int32('j'): /* Number of days since 1st day of year */ - *(*TDateTime)(unsafe.Pointer(bp + 72)) = *(*TDateTime)(unsafe.Pointer(bp)) - (*(*TDateTime)(unsafe.Pointer(bp + 72))).FvalidJD = 0 - (*(*TDateTime)(unsafe.Pointer(bp + 72))).FM = int32(1) - (*(*TDateTime)(unsafe.Pointer(bp + 72))).FD = int32(1) - _computeJD(tls, bp+72) - nDay = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD - (*(*TDateTime)(unsafe.Pointer(bp + 72))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) - if int32(cf) == int32('W') { /* 0=Monday, 1=Tuesday, ... 6=Sunday */ - wd = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000) % libc.Int64FromInt32(7)) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1335, libc.VaList(bp+128, (nDay+int32(7)-wd)/int32(7))) - } else { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1366, libc.VaList(bp+128, nDay+int32(1))) - } - case int32('J'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1371, libc.VaList(bp+128, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) + Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+176, h)) + case int32('j'): /* Day of year. Jan01==1, Jan02==2, and so forth */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1385, libc.VaList(bp+176, _daysAfterJan01(tls, bp)+int32(1))) + case int32('J'): /* Julian day number. (Non-standard) */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1390, libc.VaList(bp+176, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) case int32('m'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1335, libc.VaList(bp+128, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) case int32('M'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1335, libc.VaList(bp+128, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('p'): /* Fall thru */ fallthrough case int32('P'): if (*(*TDateTime)(unsafe.Pointer(bp))).Fh >= int32(12) { if int32(cf) == int32('p') { - v6 = __ccgo_ts + 1377 + v6 = __ccgo_ts + 1396 } else { - v6 = __ccgo_ts + 1380 + v6 = __ccgo_ts + 1399 } Xsqlite3_str_append(tls, bp+48, v6, int32(2)) } else { if int32(cf) == int32('p') { - v7 = __ccgo_ts + 1383 + v7 = __ccgo_ts + 1402 } else { - v7 = __ccgo_ts + 1386 + v7 = __ccgo_ts + 1405 } Xsqlite3_str_append(tls, bp+48, v7, int32(2)) } case int32('R'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1389, libc.VaList(bp+128, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1408, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('s'): - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1399, libc.VaList(bp+128, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1418, libc.VaList(bp+176, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) } else { iS = (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/libc.Int64FromInt32(1000) - libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1404, libc.VaList(bp+128, iS)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1423, libc.VaList(bp+176, iS)) } case int32('S'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1335, libc.VaList(bp+128, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+176, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) case int32('T'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1409, libc.VaList(bp+128, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) - case int32('u'): /* Fall thru */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1428, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + case int32('u'): /* Day of week. 1 to 7. Monday==1, Sunday==7 */ fallthrough - case int32('w'): - c = int8(int32(int8(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)%libc.Int64FromInt32(7))) + int32('0')) + case int32('w'): /* Day of week. 0 to 6. Sunday==0, Monday==1 */ + c = int8(int32(int8(_daysAfterSunday(tls, bp))) + int32('0')) if int32(c) == int32('0') && int32(cf) == int32('u') { c = int8('7') } Xsqlite3_str_appendchar(tls, bp+48, int32(1), c) + case int32('U'): /* Week num. 00-53. First Sun of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+176, (_daysAfterJan01(tls, bp)-_daysAfterSunday(tls, bp)+int32(7))/int32(7))) + case int32('V'): /* Week num. 01-53. First week with a Thur is week 01 */ + *(*TDateTime)(unsafe.Pointer(bp + 120)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Adjust y so that is the Thursday in the same week as x */ + _ = libc.Int32FromInt32(0) + (*(*TDateTime)(unsafe.Pointer(bp + 120))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 120))).FvalidYMD = 0 + _computeYMD(tls, bp+120) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+176, _daysAfterJan01(tls, bp+120)/int32(7)+int32(1))) + case int32('W'): /* Week num. 00-53. First Mon of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+176, (_daysAfterJan01(tls, bp)-_daysAfterMonday(tls, bp)+int32(7))/int32(7))) case int32('Y'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1424, libc.VaList(bp+128, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1380, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) case int32('%'): Xsqlite3_str_appendchar(tls, bp+48, int32(1), int8('%')) default: @@ -15726,12 +15907,10 @@ func _timediffFunc(tls *libc.TLS, context uintptr, NotUsed1 int32, argv uintptr) p2 = bp *(*Tsqlite3_int64)(unsafe.Pointer(p2)) = Tsqlite3_int64(uint64(*(*Tsqlite3_int64)(unsafe.Pointer(p2))) + libc.Uint64FromInt32(1486995408)*libc.Uint64FromInt32(100000)) } - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidYMD = 0 - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidHMS = 0 - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidTZ = 0 + _clearYMD_HMS_TZ(tls, bp) _computeYMD_HMS(tls, bp) _sqlite3StrAccumInit(tls, bp+96, uintptr(0), uintptr(0), 0, int32(100)) - Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1429, libc.VaList(bp+128, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) + Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1443, libc.VaList(bp+128, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) _sqlite3ResultStrAccum(tls, context, bp+96) } @@ -15764,55 +15943,55 @@ var _aDateTimeFuncs = [10]TFuncDef{ FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1235, + FzName: __ccgo_ts + 1249, }, 1: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1255, + FzName: __ccgo_ts + 1269, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1463, + FzName: __ccgo_ts + 1477, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1468, + FzName: __ccgo_ts + 1482, }, 4: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1473, + FzName: __ccgo_ts + 1487, }, 5: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1482, + FzName: __ccgo_ts + 1496, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1491, + FzName: __ccgo_ts + 1505, }, 7: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1500, + FzName: __ccgo_ts + 1514, }, 8: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1513, + FzName: __ccgo_ts + 1527, }, 9: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1531, + FzName: __ccgo_ts + 1545, }, } @@ -16494,7 +16673,7 @@ func _sqlite3MemMalloc(tls *libc.TLS, nByte int32) (r uintptr) { *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1544, libc.VaList(bp+8, nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1558, libc.VaList(bp+8, nByte)) } return p } @@ -16559,7 +16738,7 @@ func _sqlite3MemRealloc(tls *libc.TLS, pPrior uintptr, nByte int32) (r uintptr) *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1582, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1596, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) } return p } @@ -17975,7 +18154,7 @@ func _sqlite3OomFault(tls *libc.TLS, db uintptr) (r uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++ (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = uint16(0) if (*Tsqlite3)(unsafe.Pointer(db)).FpParse != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1632, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) pParse = (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).FpOuterParse for { @@ -18402,7 +18581,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li v3 = int32(*(*int8)(unsafe.Pointer(v4))) c = v3 if v3 == 0 { - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1632, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1646, int32(1)) break } /* Find out what flags are present */ @@ -18819,9 +18998,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial != 0 { if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial) == int32(2) { if flag_zeropad != 0 { - v57 = __ccgo_ts + 1634 + v57 = __ccgo_ts + 1648 } else { - v57 = __ccgo_ts + 1639 + v57 = __ccgo_ts + 1653 } bufpt = v57 length = _sqlite3Strlen30(tls, bufpt) @@ -18832,7 +19011,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP = int32(1000) (*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fn = int32(1) } else { - libc.Xmemcpy(tls, bp, __ccgo_ts+1643, uint32(5)) + libc.Xmemcpy(tls, bp, __ccgo_ts+1657, uint32(5)) bufpt = bp if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fsign) == int32('-') { /* no-op */ @@ -18854,14 +19033,13 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li prefix = int8(flag_prefix) } exp = (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP - int32(1) - if int32(xtype) == int32(etGENERIC) && precision > 0 { - precision-- - } /* ** If the field type is etGENERIC, then convert to either etEXP ** or etFLOAT, as appropriate. */ if int32(xtype) == int32(etGENERIC) { + _ = libc.Int32FromInt32(0) + precision-- flag_rtz = libc.BoolUint8(!(flag_alternateform != 0)) if exp < -int32(4) || exp > precision { xtype = uint8(etEXP) @@ -19168,7 +19346,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li bufpt = libc.VaUintptr(&ap) } if bufpt == uintptr(0) { - bufpt = __ccgo_ts + 1648 + bufpt = __ccgo_ts + 1662 } else { if int32(xtype) == int32(etDYNSTRING) { if (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnChar == uint32(0) && (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FmxAlloc != 0 && width == 0 && precision < 0 && int32((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FaccError) == 0 { @@ -19222,6 +19400,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } else { length = int32(0x7fffffff) & int32(libc.Xstrlen(tls, bufpt)) } + goto adjust_width_for_utf8 adjust_width_for_utf8: ; if flag_altform2 != 0 && width > 0 { @@ -19256,9 +19435,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li isnull = libc.BoolInt32(escarg == uintptr(0)) if isnull != 0 { if int32(xtype) == int32(etSQLESCAPE2) { - v98 = __ccgo_ts + 1649 + v98 = __ccgo_ts + 1663 } else { - v98 = __ccgo_ts + 1654 + v98 = __ccgo_ts + 1668 } escarg = v98 } @@ -19378,7 +19557,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*TSrcItem)(unsafe.Pointer(pItem)).FzName != 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1661, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1675, int32(1)) } Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzName) } else { @@ -19386,11 +19565,16 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzAlias) } else { pSel = (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect - _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* Because of tag-20240424-1 */ if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_NestedFrom) != 0 { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1663, libc.VaList(bp+120, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1677, libc.VaList(bp+120, (*TSelect)(unsafe.Pointer(pSel)).FselId)) } else { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1673, libc.VaList(bp+120, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_MultiValue) != 0 { + _ = libc.Int32FromInt32(0) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1687, libc.VaList(bp+120, *(*Tu32)(unsafe.Pointer(pItem + 60)))) + } else { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1708, libc.VaList(bp+120, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + } } } } @@ -19679,7 +19863,7 @@ func _sqlite3ResultStrAccum(tls *libc.TLS, pCtx uintptr, p uintptr) { if int32((*TStrAccum)(unsafe.Pointer(p)).FprintfFlags)&int32(SQLITE_PRINTF_MALLOCED) != 0 { Xsqlite3_result_text(tls, pCtx, (*TStrAccum)(unsafe.Pointer(p)).FzText, int32((*TStrAccum)(unsafe.Pointer(p)).FnChar), __ccgo_fp(_sqlite3OomClear)) } else { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1648, 0, libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1662, 0, libc.UintptrFromInt32(0)) Xsqlite3_str_reset(tls, p) } } @@ -20994,6 +21178,7 @@ func _sqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc Tu8) (r in (*TMem)(unsafe.Pointer(pMem)).Fz = zOut (*TMem)(unsafe.Pointer(pMem)).FzMalloc = (*TMem)(unsafe.Pointer(pMem)).Fz (*TMem)(unsafe.Pointer(pMem)).FszMalloc = _sqlite3DbMallocSize(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).Fz) + goto translate_out translate_out: ; return SQLITE_OK @@ -21571,6 +21756,62 @@ func _sqlite3DequoteExpr(tls *libc.TLS, p uintptr) { _sqlite3Dequote(tls, *(*uintptr)(unsafe.Pointer(p + 8))) } +// C documentation +// +// /* +// ** Expression p is a QNUMBER (quoted number). Dequote the value in p->u.zToken +// ** and set the type to INTEGER or FLOAT. "Quoted" integers or floats are those +// ** that contain '_' characters that must be removed before further processing. +// */ +func _sqlite3DequoteNumber(tls *libc.TLS, pParse uintptr, p uintptr) { + bp := tls.Alloc(32) + defer tls.Free(32) + var bHex int32 + var pIn, pOut, v1, v3 uintptr + var _ /* iValue at bp+0 */ int32 + _, _, _, _, _ = bHex, pIn, pOut, v1, v3 + _ = libc.Int32FromInt32(0) + if p != 0 { + pIn = *(*uintptr)(unsafe.Pointer(p + 8)) + pOut = *(*uintptr)(unsafe.Pointer(p + 8)) + bHex = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(pIn))) == int32('0') && (int32(*(*int8)(unsafe.Pointer(pIn + 1))) == int32('x') || int32(*(*int8)(unsafe.Pointer(pIn + 1))) == int32('X'))) + _ = libc.Int32FromInt32(0) + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + for { + if int32(*(*int8)(unsafe.Pointer(pIn))) != int32('_') { + v3 = pOut + pOut++ + *(*int8)(unsafe.Pointer(v3)) = *(*int8)(unsafe.Pointer(pIn)) + if int32(*(*int8)(unsafe.Pointer(pIn))) == int32('e') || int32(*(*int8)(unsafe.Pointer(pIn))) == int32('E') || int32(*(*int8)(unsafe.Pointer(pIn))) == int32('.') { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_FLOAT) + } + } else { + if bHex == 0 && (!(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1)))))])&libc.Int32FromInt32(0x04) != 0) || !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + 1)))])&libc.Int32FromInt32(0x04) != 0)) || bHex == int32(1) && (!(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1)))))])&libc.Int32FromInt32(0x08) != 0) || !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + 1)))])&libc.Int32FromInt32(0x08) != 0)) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1722, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(p + 8)))) + } + } + goto _2 + _2: + ; + v1 = pIn + pIn++ + if !(*(*int8)(unsafe.Pointer(v1)) != 0) { + break + } + } + if bHex != 0 { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + } + /* tag-20240227-a: If after dequoting, the number is an integer that + ** fits in 32 bits, then it must be converted into EP_IntValue. Other + ** parts of the code expect this. See also tag-20240227-b. */ + if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_INTEGER) && _sqlite3GetInt32(tls, *(*uintptr)(unsafe.Pointer(p + 8)), bp) != 0 { + *(*int32)(unsafe.Pointer(p + 8)) = *(*int32)(unsafe.Pointer(bp)) + *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(EP_IntValue) + } + } +} + // C documentation // // /* @@ -21932,6 +22173,7 @@ func _sqlite3AtoF(tls *libc.TLS, z uintptr, pResult uintptr, length int32, enc T for z < zEnd && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z)))])&int32(0x01) != 0 { z += uintptr(incr) } + goto do_atof_calc do_atof_calc: ; /* Zero is a special case */ @@ -22039,6 +22281,7 @@ do_atof_calc: *(*float64)(unsafe.Pointer(pResult)) = -*(*float64)(unsafe.Pointer(pResult)) } _ = libc.Int32FromInt32(0) + goto atof_return atof_return: ; /* return true if number and no extra non-whitespace characters after */ @@ -22123,7 +22366,7 @@ func _compare2pow63(tls *libc.TLS, zNum uintptr, incr int32) (r int32) { _, _, _ = c, i, pow63 c = 0 /* 012345678901234567 */ - pow63 = __ccgo_ts + 1687 + pow63 = __ccgo_ts + 1747 i = 0 for { if !(c == 0 && i < int32(18)) { @@ -22355,7 +22598,7 @@ func _sqlite3DecOrHexToI64(tls *libc.TLS, z uintptr, pOut uintptr) (r int32) { } return 0 } else { - n = int32(libc.Uint32FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1706)) + n = int32(libc.Uint32FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1766)) if *(*int8)(unsafe.Pointer(z + uintptr(n))) != 0 { n++ } @@ -22513,7 +22756,7 @@ func _sqlite3FpDecode(tls *libc.TLS, p uintptr, _r float64, iRound int32, mxRoun (*TFpDecode)(unsafe.Pointer(p)).Fsign = int8('+') (*TFpDecode)(unsafe.Pointer(p)).Fn = int32(1) (*TFpDecode)(unsafe.Pointer(p)).FiDP = int32(1) - (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1722 + (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1782 return } else { (*TFpDecode)(unsafe.Pointer(p)).Fsign = int8('+') @@ -23074,7 +23317,7 @@ func _sqlite3HexToBlob(tls *libc.TLS, db uintptr, z uintptr, n int32) (r uintptr func _logBadConnection(tls *libc.TLS, zType uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1724, libc.VaList(bp+8, zType)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1784, libc.VaList(bp+8, zType)) } // C documentation @@ -23097,13 +23340,13 @@ func _sqlite3SafetyCheckOk(tls *libc.TLS, db uintptr) (r int32) { var eOpenState Tu8 _ = eOpenState if db == uintptr(0) { - _logBadConnection(tls, __ccgo_ts+1649) + _logBadConnection(tls, __ccgo_ts+1663) return 0 } eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_OPEN) { if _sqlite3SafetyCheckSickOrOk(tls, db) != 0 { - _logBadConnection(tls, __ccgo_ts+1769) + _logBadConnection(tls, __ccgo_ts+1829) } return 0 } else { @@ -23117,7 +23360,7 @@ func _sqlite3SafetyCheckSickOrOk(tls *libc.TLS, db uintptr) (r int32) { _ = eOpenState eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_SICK) && int32(eOpenState) != int32(SQLITE_STATE_OPEN) && int32(eOpenState) != int32(SQLITE_STATE_BUSY) { - _logBadConnection(tls, __ccgo_ts+1778) + _logBadConnection(tls, __ccgo_ts+1838) return 0 } else { return int32(1) @@ -23776,196 +24019,196 @@ func _sqlite3OpcodeName(tls *libc.TLS, i int32) (r uintptr) { } var _azName = [190]uintptr{ - 0: __ccgo_ts + 1786, - 1: __ccgo_ts + 1796, - 2: __ccgo_ts + 1807, - 3: __ccgo_ts + 1819, - 4: __ccgo_ts + 1830, - 5: __ccgo_ts + 1842, - 6: __ccgo_ts + 1849, - 7: __ccgo_ts + 1857, - 8: __ccgo_ts + 1865, - 9: __ccgo_ts + 1870, - 10: __ccgo_ts + 1875, - 11: __ccgo_ts + 1881, - 12: __ccgo_ts + 1895, - 13: __ccgo_ts + 1901, - 14: __ccgo_ts + 1911, - 15: __ccgo_ts + 1916, - 16: __ccgo_ts + 1921, - 17: __ccgo_ts + 1924, - 18: __ccgo_ts + 1930, - 19: __ccgo_ts + 1937, - 20: __ccgo_ts + 1941, - 21: __ccgo_ts + 1951, - 22: __ccgo_ts + 1958, - 23: __ccgo_ts + 1965, - 24: __ccgo_ts + 1972, - 25: __ccgo_ts + 1979, - 26: __ccgo_ts + 1989, - 27: __ccgo_ts + 1998, - 28: __ccgo_ts + 2009, - 29: __ccgo_ts + 2018, - 30: __ccgo_ts + 2024, - 31: __ccgo_ts + 2034, - 32: __ccgo_ts + 2044, - 33: __ccgo_ts + 2049, - 34: __ccgo_ts + 2059, - 35: __ccgo_ts + 2070, - 36: __ccgo_ts + 2075, - 37: __ccgo_ts + 2082, - 38: __ccgo_ts + 2093, - 39: __ccgo_ts + 2098, - 40: __ccgo_ts + 2103, - 41: __ccgo_ts + 2109, - 42: __ccgo_ts + 2115, - 43: __ccgo_ts + 2121, - 44: __ccgo_ts + 2124, - 45: __ccgo_ts + 2128, - 46: __ccgo_ts + 2134, - 47: __ccgo_ts + 2145, - 48: __ccgo_ts + 2156, - 49: __ccgo_ts + 2164, - 50: __ccgo_ts + 2173, - 51: __ccgo_ts + 2180, - 52: __ccgo_ts + 2188, - 53: __ccgo_ts + 2191, - 54: __ccgo_ts + 2194, - 55: __ccgo_ts + 2197, - 56: __ccgo_ts + 2200, - 57: __ccgo_ts + 2203, - 58: __ccgo_ts + 2206, - 59: __ccgo_ts + 2213, - 60: __ccgo_ts + 2219, - 61: __ccgo_ts + 2229, - 62: __ccgo_ts + 2242, - 63: __ccgo_ts + 2253, - 64: __ccgo_ts + 2259, - 65: __ccgo_ts + 2266, - 66: __ccgo_ts + 2275, - 67: __ccgo_ts + 2284, - 68: __ccgo_ts + 2291, - 69: __ccgo_ts + 2304, - 70: __ccgo_ts + 2315, - 71: __ccgo_ts + 2320, - 72: __ccgo_ts + 2328, - 73: __ccgo_ts + 2334, - 74: __ccgo_ts + 2341, - 75: __ccgo_ts + 2353, - 76: __ccgo_ts + 2358, - 77: __ccgo_ts + 2367, - 78: __ccgo_ts + 2372, - 79: __ccgo_ts + 2381, - 80: __ccgo_ts + 2386, - 81: __ccgo_ts + 2391, - 82: __ccgo_ts + 2397, - 83: __ccgo_ts + 2405, - 84: __ccgo_ts + 2413, - 85: __ccgo_ts + 2423, - 86: __ccgo_ts + 2431, - 87: __ccgo_ts + 2438, - 88: __ccgo_ts + 2451, - 89: __ccgo_ts + 2456, - 90: __ccgo_ts + 2468, - 91: __ccgo_ts + 2476, - 92: __ccgo_ts + 2483, - 93: __ccgo_ts + 2494, - 94: __ccgo_ts + 2501, - 95: __ccgo_ts + 2508, - 96: __ccgo_ts + 2518, - 97: __ccgo_ts + 2527, - 98: __ccgo_ts + 2538, - 99: __ccgo_ts + 2544, - 100: __ccgo_ts + 2555, - 101: __ccgo_ts + 2565, - 102: __ccgo_ts + 2575, - 103: __ccgo_ts + 2582, - 104: __ccgo_ts + 2588, - 105: __ccgo_ts + 2598, - 106: __ccgo_ts + 2609, - 107: __ccgo_ts + 2613, - 108: __ccgo_ts + 2622, - 109: __ccgo_ts + 2631, - 110: __ccgo_ts + 2638, - 111: __ccgo_ts + 2648, - 112: __ccgo_ts + 2655, - 113: __ccgo_ts + 2664, - 114: __ccgo_ts + 2674, - 115: __ccgo_ts + 2681, - 116: __ccgo_ts + 2689, - 117: __ccgo_ts + 2703, - 118: __ccgo_ts + 2711, - 119: __ccgo_ts + 2725, - 120: __ccgo_ts + 2736, - 121: __ccgo_ts + 2749, - 122: __ccgo_ts + 2760, - 123: __ccgo_ts + 2766, - 124: __ccgo_ts + 2778, - 125: __ccgo_ts + 2787, - 126: __ccgo_ts + 2795, - 127: __ccgo_ts + 2804, - 128: __ccgo_ts + 2813, - 129: __ccgo_ts + 2820, - 130: __ccgo_ts + 2828, - 131: __ccgo_ts + 2835, - 132: __ccgo_ts + 2846, - 133: __ccgo_ts + 2860, - 134: __ccgo_ts + 2871, - 135: __ccgo_ts + 2879, - 136: __ccgo_ts + 2885, - 137: __ccgo_ts + 2893, - 138: __ccgo_ts + 2901, - 139: __ccgo_ts + 2911, - 140: __ccgo_ts + 2924, - 141: __ccgo_ts + 2934, - 142: __ccgo_ts + 2947, - 143: __ccgo_ts + 2956, - 144: __ccgo_ts + 2967, - 145: __ccgo_ts + 2975, - 146: __ccgo_ts + 2981, - 147: __ccgo_ts + 2993, - 148: __ccgo_ts + 3005, - 149: __ccgo_ts + 3013, - 150: __ccgo_ts + 3025, - 151: __ccgo_ts + 3038, - 152: __ccgo_ts + 3048, - 153: __ccgo_ts + 3058, - 154: __ccgo_ts + 3063, - 155: __ccgo_ts + 3075, - 156: __ccgo_ts + 3087, - 157: __ccgo_ts + 3097, - 158: __ccgo_ts + 3103, - 159: __ccgo_ts + 3113, - 160: __ccgo_ts + 3120, - 161: __ccgo_ts + 3132, - 162: __ccgo_ts + 3143, - 163: __ccgo_ts + 3151, - 164: __ccgo_ts + 3160, - 165: __ccgo_ts + 3169, - 166: __ccgo_ts + 3178, - 167: __ccgo_ts + 3185, - 168: __ccgo_ts + 3196, - 169: __ccgo_ts + 3209, - 170: __ccgo_ts + 3219, - 171: __ccgo_ts + 3226, - 172: __ccgo_ts + 3234, - 173: __ccgo_ts + 3243, - 174: __ccgo_ts + 3249, - 175: __ccgo_ts + 3256, - 176: __ccgo_ts + 3264, - 177: __ccgo_ts + 3272, - 178: __ccgo_ts + 3280, - 179: __ccgo_ts + 3290, - 180: __ccgo_ts + 3299, - 181: __ccgo_ts + 3310, - 182: __ccgo_ts + 3321, - 183: __ccgo_ts + 3332, - 184: __ccgo_ts + 3342, - 185: __ccgo_ts + 3348, - 186: __ccgo_ts + 3359, - 187: __ccgo_ts + 3370, - 188: __ccgo_ts + 3375, - 189: __ccgo_ts + 3383, + 0: __ccgo_ts + 1846, + 1: __ccgo_ts + 1856, + 2: __ccgo_ts + 1867, + 3: __ccgo_ts + 1879, + 4: __ccgo_ts + 1890, + 5: __ccgo_ts + 1902, + 6: __ccgo_ts + 1909, + 7: __ccgo_ts + 1917, + 8: __ccgo_ts + 1925, + 9: __ccgo_ts + 1930, + 10: __ccgo_ts + 1935, + 11: __ccgo_ts + 1941, + 12: __ccgo_ts + 1955, + 13: __ccgo_ts + 1961, + 14: __ccgo_ts + 1971, + 15: __ccgo_ts + 1976, + 16: __ccgo_ts + 1981, + 17: __ccgo_ts + 1984, + 18: __ccgo_ts + 1990, + 19: __ccgo_ts + 1997, + 20: __ccgo_ts + 2001, + 21: __ccgo_ts + 2011, + 22: __ccgo_ts + 2018, + 23: __ccgo_ts + 2025, + 24: __ccgo_ts + 2032, + 25: __ccgo_ts + 2039, + 26: __ccgo_ts + 2049, + 27: __ccgo_ts + 2058, + 28: __ccgo_ts + 2069, + 29: __ccgo_ts + 2078, + 30: __ccgo_ts + 2084, + 31: __ccgo_ts + 2094, + 32: __ccgo_ts + 2104, + 33: __ccgo_ts + 2109, + 34: __ccgo_ts + 2123, + 35: __ccgo_ts + 2134, + 36: __ccgo_ts + 2139, + 37: __ccgo_ts + 2146, + 38: __ccgo_ts + 2157, + 39: __ccgo_ts + 2162, + 40: __ccgo_ts + 2167, + 41: __ccgo_ts + 2173, + 42: __ccgo_ts + 2179, + 43: __ccgo_ts + 2185, + 44: __ccgo_ts + 2188, + 45: __ccgo_ts + 2192, + 46: __ccgo_ts + 2198, + 47: __ccgo_ts + 2209, + 48: __ccgo_ts + 2220, + 49: __ccgo_ts + 2228, + 50: __ccgo_ts + 2237, + 51: __ccgo_ts + 2244, + 52: __ccgo_ts + 2252, + 53: __ccgo_ts + 2255, + 54: __ccgo_ts + 2258, + 55: __ccgo_ts + 2261, + 56: __ccgo_ts + 2264, + 57: __ccgo_ts + 2267, + 58: __ccgo_ts + 2270, + 59: __ccgo_ts + 2277, + 60: __ccgo_ts + 2283, + 61: __ccgo_ts + 2293, + 62: __ccgo_ts + 2306, + 63: __ccgo_ts + 2317, + 64: __ccgo_ts + 2323, + 65: __ccgo_ts + 2330, + 66: __ccgo_ts + 2339, + 67: __ccgo_ts + 2348, + 68: __ccgo_ts + 2355, + 69: __ccgo_ts + 2368, + 70: __ccgo_ts + 2379, + 71: __ccgo_ts + 2384, + 72: __ccgo_ts + 2392, + 73: __ccgo_ts + 2398, + 74: __ccgo_ts + 2405, + 75: __ccgo_ts + 2417, + 76: __ccgo_ts + 2422, + 77: __ccgo_ts + 2431, + 78: __ccgo_ts + 2436, + 79: __ccgo_ts + 2445, + 80: __ccgo_ts + 2450, + 81: __ccgo_ts + 2455, + 82: __ccgo_ts + 2461, + 83: __ccgo_ts + 2469, + 84: __ccgo_ts + 2477, + 85: __ccgo_ts + 2487, + 86: __ccgo_ts + 2495, + 87: __ccgo_ts + 2502, + 88: __ccgo_ts + 2515, + 89: __ccgo_ts + 2520, + 90: __ccgo_ts + 2532, + 91: __ccgo_ts + 2540, + 92: __ccgo_ts + 2547, + 93: __ccgo_ts + 2558, + 94: __ccgo_ts + 2565, + 95: __ccgo_ts + 2572, + 96: __ccgo_ts + 2582, + 97: __ccgo_ts + 2591, + 98: __ccgo_ts + 2602, + 99: __ccgo_ts + 2608, + 100: __ccgo_ts + 2619, + 101: __ccgo_ts + 2629, + 102: __ccgo_ts + 2639, + 103: __ccgo_ts + 2646, + 104: __ccgo_ts + 2652, + 105: __ccgo_ts + 2662, + 106: __ccgo_ts + 2673, + 107: __ccgo_ts + 2677, + 108: __ccgo_ts + 2686, + 109: __ccgo_ts + 2695, + 110: __ccgo_ts + 2702, + 111: __ccgo_ts + 2712, + 112: __ccgo_ts + 2719, + 113: __ccgo_ts + 2728, + 114: __ccgo_ts + 2738, + 115: __ccgo_ts + 2745, + 116: __ccgo_ts + 2753, + 117: __ccgo_ts + 2767, + 118: __ccgo_ts + 2775, + 119: __ccgo_ts + 2789, + 120: __ccgo_ts + 2800, + 121: __ccgo_ts + 2813, + 122: __ccgo_ts + 2824, + 123: __ccgo_ts + 2830, + 124: __ccgo_ts + 2842, + 125: __ccgo_ts + 2851, + 126: __ccgo_ts + 2859, + 127: __ccgo_ts + 2868, + 128: __ccgo_ts + 2877, + 129: __ccgo_ts + 2884, + 130: __ccgo_ts + 2892, + 131: __ccgo_ts + 2899, + 132: __ccgo_ts + 2910, + 133: __ccgo_ts + 2924, + 134: __ccgo_ts + 2935, + 135: __ccgo_ts + 2943, + 136: __ccgo_ts + 2949, + 137: __ccgo_ts + 2957, + 138: __ccgo_ts + 2965, + 139: __ccgo_ts + 2975, + 140: __ccgo_ts + 2988, + 141: __ccgo_ts + 2998, + 142: __ccgo_ts + 3011, + 143: __ccgo_ts + 3020, + 144: __ccgo_ts + 3031, + 145: __ccgo_ts + 3039, + 146: __ccgo_ts + 3045, + 147: __ccgo_ts + 3057, + 148: __ccgo_ts + 3069, + 149: __ccgo_ts + 3077, + 150: __ccgo_ts + 3089, + 151: __ccgo_ts + 3102, + 152: __ccgo_ts + 3112, + 153: __ccgo_ts + 3122, + 154: __ccgo_ts + 3127, + 155: __ccgo_ts + 3139, + 156: __ccgo_ts + 3151, + 157: __ccgo_ts + 3161, + 158: __ccgo_ts + 3167, + 159: __ccgo_ts + 3177, + 160: __ccgo_ts + 3184, + 161: __ccgo_ts + 3196, + 162: __ccgo_ts + 3207, + 163: __ccgo_ts + 3215, + 164: __ccgo_ts + 3224, + 165: __ccgo_ts + 3233, + 166: __ccgo_ts + 3242, + 167: __ccgo_ts + 3249, + 168: __ccgo_ts + 3260, + 169: __ccgo_ts + 3273, + 170: __ccgo_ts + 3283, + 171: __ccgo_ts + 3290, + 172: __ccgo_ts + 3298, + 173: __ccgo_ts + 3307, + 174: __ccgo_ts + 3313, + 175: __ccgo_ts + 3320, + 176: __ccgo_ts + 3328, + 177: __ccgo_ts + 3336, + 178: __ccgo_ts + 3344, + 179: __ccgo_ts + 3354, + 180: __ccgo_ts + 3363, + 181: __ccgo_ts + 3374, + 182: __ccgo_ts + 3385, + 183: __ccgo_ts + 3396, + 184: __ccgo_ts + 3406, + 185: __ccgo_ts + 3412, + 186: __ccgo_ts + 3423, + 187: __ccgo_ts + 3434, + 188: __ccgo_ts + 3439, + 189: __ccgo_ts + 3447, } type Tstat = struct { @@ -24709,91 +24952,91 @@ type unix_syscall = Tunix_syscall // */ var _aSyscall = [29]Tunix_syscall{ 0: { - FzName: __ccgo_ts + 3393, + FzName: __ccgo_ts + 3457, }, 1: { - FzName: __ccgo_ts + 3398, + FzName: __ccgo_ts + 3462, }, 2: { - FzName: __ccgo_ts + 3404, + FzName: __ccgo_ts + 3468, }, 3: { - FzName: __ccgo_ts + 3411, + FzName: __ccgo_ts + 3475, }, 4: { - FzName: __ccgo_ts + 3418, + FzName: __ccgo_ts + 3482, }, 5: { - FzName: __ccgo_ts + 3423, + FzName: __ccgo_ts + 3487, }, 6: { - FzName: __ccgo_ts + 3429, + FzName: __ccgo_ts + 3493, }, 7: { - FzName: __ccgo_ts + 3439, + FzName: __ccgo_ts + 3503, }, 8: { - FzName: __ccgo_ts + 3445, + FzName: __ccgo_ts + 3509, }, 9: { - FzName: __ccgo_ts + 3450, + FzName: __ccgo_ts + 3514, }, 10: { - FzName: __ccgo_ts + 3456, + FzName: __ccgo_ts + 3520, }, 11: { - FzName: __ccgo_ts + 3464, + FzName: __ccgo_ts + 3528, }, 12: { - FzName: __ccgo_ts + 3470, + FzName: __ccgo_ts + 3534, }, 13: { - FzName: __ccgo_ts + 3477, + FzName: __ccgo_ts + 3541, }, 14: { - FzName: __ccgo_ts + 3486, + FzName: __ccgo_ts + 3550, }, 15: { - FzName: __ccgo_ts + 3493, + FzName: __ccgo_ts + 3557, }, 16: { - FzName: __ccgo_ts + 3503, + FzName: __ccgo_ts + 3567, }, 17: { - FzName: __ccgo_ts + 3510, + FzName: __ccgo_ts + 3574, }, 18: { - FzName: __ccgo_ts + 3524, + FzName: __ccgo_ts + 3588, }, 19: { - FzName: __ccgo_ts + 3530, + FzName: __ccgo_ts + 3594, }, 20: { - FzName: __ccgo_ts + 3536, + FzName: __ccgo_ts + 3600, }, 21: { - FzName: __ccgo_ts + 3543, + FzName: __ccgo_ts + 3607, }, 22: { - FzName: __ccgo_ts + 3551, + FzName: __ccgo_ts + 3615, }, 23: { - FzName: __ccgo_ts + 3556, + FzName: __ccgo_ts + 3620, }, 24: { - FzName: __ccgo_ts + 3563, + FzName: __ccgo_ts + 3627, }, 25: { - FzName: __ccgo_ts + 3570, + FzName: __ccgo_ts + 3634, }, 26: { - FzName: __ccgo_ts + 3582, + FzName: __ccgo_ts + 3646, }, 27: { - FzName: __ccgo_ts + 3591, + FzName: __ccgo_ts + 3655, }, 28: { - FzName: __ccgo_ts + 3597, + FzName: __ccgo_ts + 3661, }, } @@ -25032,9 +25275,9 @@ func _robust_open(tls *libc.TLS, z uintptr, f int32, m Tmode_t) (r int32) { (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(16)].FpCurrent})))(tls, z) } (*(*func(*libc.TLS, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(1)].FpCurrent})))(tls, fd) - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3603, libc.VaList(bp+104, z, fd)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3667, libc.VaList(bp+104, z, fd)) fd = -int32(1) - if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3646, O_RDONLY, int32(m)) < 0 { + if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3710, O_RDONLY, int32(m)) < 0 { break } } @@ -25352,11 +25595,11 @@ func _unixLogErrorAtLine(tls *libc.TLS, errcode int32, zFunc uintptr, zPath uint ** equivalent to errno. Otherwise, use strerror_r(). */ /* This is a threadsafe build, but strerror_r() is not available. */ - zErr = __ccgo_ts + 1648 + zErr = __ccgo_ts + 1662 if zPath == uintptr(0) { - zPath = __ccgo_ts + 1648 + zPath = __ccgo_ts + 1662 } - Xsqlite3_log(tls, errcode, __ccgo_ts+3656, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) + Xsqlite3_log(tls, errcode, __ccgo_ts+3720, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) return errcode } @@ -25384,7 +25627,7 @@ func _robust_close(tls *libc.TLS, pFile uintptr, h int32, lineno int32) { } else { v1 = uintptr(0) } - _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(16)< uint32(1) { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3740, libc.VaList(bp+104, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3804, libc.VaList(bp+104, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } if _fileHasMoved(tls, pFile) != 0 { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3767, libc.VaList(bp+104, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3831, libc.VaList(bp+104, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } } @@ -25904,6 +26147,7 @@ func _unixLock(tls *libc.TLS, id uintptr, eFileLock int32) (r int32) { (*TunixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock) (*TunixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(eFileLock) } + goto end_lock end_lock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -26035,6 +26279,7 @@ func _posixUnlock(tls *libc.TLS, id uintptr, eFileLock int32, handleNFSUnlock in _closePendingFds(tls, pFile) } } + goto end_unlock end_unlock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -26076,7 +26321,7 @@ func _closeUnixFile(tls *libc.TLS, id uintptr) (r int32) { pFile = id _unixUnmapfile(tls, pFile) if (*TunixFile)(unsafe.Pointer(pFile)).Fh >= 0 { - _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40172)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40505)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -26703,7 +26948,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { var _ /* zDirname at bp+0 */ [513]int8 _, _ = fd, ii fd = -int32(1) - Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3795, libc.VaList(bp+528, zFilename)) + Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3859, libc.VaList(bp+528, zFilename)) ii = int32(libc.Xstrlen(tls, bp)) for { if !(ii > 0 && int32((*(*[513]int8)(unsafe.Pointer(bp)))[ii]) != int32('/')) { @@ -26729,7 +26974,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(41778)), __ccgo_ts+3510, bp, int32(41778)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42111)), __ccgo_ts+3574, bp, int32(42111)) } // C documentation @@ -26768,7 +27013,7 @@ func _unixSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { rc = _full_fsync(tls, (*TunixFile)(unsafe.Pointer(pFile)).Fh, isFullsync, isDataOnly) if rc != 0 { _storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))) - return _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(4)<= nSize { iWrite = nSize - int64(1) } - nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1648, int32(1)) + nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1662, int32(1)) if nWrite != int32(1) { return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(3)<= 0 { - _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42583)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42916)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -27391,7 +27636,7 @@ func _unixLockSharedMemory(tls *libc.TLS, pDbFd uintptr, pShmNode uintptr) (r in ** help detect if a -shm file truncation is legitimate or is the work ** or a rogue process. */ if rc == SQLITE_OK && _robust_ftruncate(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(3)) != 0 { - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(18)< iRegion { @@ -27990,7 +28237,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { var pNew, pOrig, pReq, zErr uintptr var v1 Tsqlite3_int64 _, _, _, _, _, _, _, _, _ = flags, h, nOrig, nReuse, pNew, pOrig, pReq, zErr, v1 - zErr = __ccgo_ts + 3551 + zErr = __ccgo_ts + 3615 h = (*TunixFile)(unsafe.Pointer(pFd)).Fh /* File descriptor open on db file */ pOrig = (*TunixFile)(unsafe.Pointer(pFd)).FpMapRegion /* Pointer to current file mapping */ nOrig = (*TunixFile)(unsafe.Pointer(pFd)).FmmapSizeActual /* Size of pOrig region in bytes */ @@ -28010,7 +28257,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { (*(*func(*libc.TLS, uintptr, Tsize_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, pReq, uint32(nOrig-nReuse)) } pNew = (*(*func(*libc.TLS, uintptr, Tsize_t, Tsize_t, int32, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(24)].FpCurrent})))(tls, pOrig, uint32(nReuse), uint32(nNew), int32(MREMAP_MAYMOVE), 0) - zErr = __ccgo_ts + 3563 + zErr = __ccgo_ts + 3627 /* The attempt to extend the existing mapping failed. Free it. */ if pNew == uintptr(-libc.Int32FromInt32(1)) || pNew == uintptr(0) { (*(*func(*libc.TLS, uintptr, Tsize_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, pOrig, uint32(nReuse)) @@ -28023,7 +28270,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { if pNew == uintptr(-libc.Int32FromInt32(1)) { pNew = uintptr(0) nNew = 0 - _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43401)) + _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43734)) /* If the mmap() above failed, assume that all subsequent mmap() calls ** will probably fail too. Fall back to using xRead/xWrite exclusively ** in this case. */ @@ -28367,11 +28614,11 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam } else { v1 = uintptr(0) } - if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3829, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { + if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3893, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { p2 = pNew + 18 *(*uint16)(unsafe.Pointer(p2)) = uint16(int32(*(*uint16)(unsafe.Pointer(p2))) | libc.Int32FromInt32(UNIXFILE_PSOW)) } - if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3834) == 0 { + if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3898) == 0 { p3 = pNew + 18 *(*uint16)(unsafe.Pointer(p3)) = uint16(int32(*(*uint16)(unsafe.Pointer(p3))) | libc.Int32FromInt32(UNIXFILE_EXCL)) } @@ -28402,7 +28649,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam ** implicit assumption here is that if fstat() fails, things are in ** such bad shape that dropping a lock or two doesn't matter much. */ - _robust_close(tls, pNew, h, int32(43909)) + _robust_close(tls, pNew, h, int32(44242)) h = -int32(1) } _unixLeaveMutex(tls) @@ -28414,7 +28661,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam if zLockFile == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3844, libc.VaList(bp+8, zFilename)) + Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3908, libc.VaList(bp+8, zFilename)) } (*TunixFile)(unsafe.Pointer(pNew)).FlockingContext = zLockFile } @@ -28422,7 +28669,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam _storeLastErrno(tls, pNew, 0) if rc != SQLITE_OK { if h >= 0 { - _robust_close(tls, pNew, h, int32(43994)) + _robust_close(tls, pNew, h, int32(44327)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -28437,10 +28684,10 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam // ** Directories to consider for temp files. // */ var _azTempDirs = [6]uintptr{ - 2: __ccgo_ts + 3852, - 3: __ccgo_ts + 3861, - 4: __ccgo_ts + 3870, - 5: __ccgo_ts + 1661, + 2: __ccgo_ts + 3916, + 3: __ccgo_ts + 3925, + 4: __ccgo_ts + 3934, + 5: __ccgo_ts + 1675, } // C documentation @@ -28449,8 +28696,8 @@ var _azTempDirs = [6]uintptr{ // ** Initialize first two members of azTempDirs[] array. // */ func _unixTempFileInit(tls *libc.TLS) { - _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3875) - _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3889) + _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3939) + _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3953) } // C documentation @@ -28513,7 +28760,7 @@ func _unixGetTempname(tls *libc.TLS, nBuf int32, zBuf uintptr) (r int32) { Xsqlite3_randomness(tls, int32(8), bp) _ = libc.Int32FromInt32(0) *(*int8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2)))) = 0 - Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3896, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) + Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3960, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) if v2 = int32(*(*int8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2))))) != 0; !v2 { v1 = iLimit iLimit++ @@ -28686,7 +28933,7 @@ func _findCreateFileMode(tls *libc.TLS, zPath uintptr, flags int32, pMode uintpt ** filename, check for the "modeof" parameter. If present, interpret ** its value as a filename and try to copy the mode, uid and gid from ** that file. */ - z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3913) + z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3977) if z != 0 { rc = _getFileMode(tls, z, pMode, pUid, pGid) } @@ -28724,12 +28971,12 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags bp := tls.Alloc(528) defer tls.Free(528) var ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, rc, rc2 int32 - var p, pUnused, zName uintptr + var p, pReadonly, pUnused, zName uintptr var _ /* gid at bp+524 */ Tgid_t var _ /* openMode at bp+516 */ Tmode_t var _ /* uid at bp+520 */ Tuid_t var _ /* zTmpname at bp+0 */ [514]int8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pUnused, rc, rc2, zName + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pReadonly, pUnused, rc, rc2, zName p = pFile fd = -int32(1) /* File descriptor returned by open() */ openFlags = 0 /* Flags to pass to open() */ @@ -28839,17 +29086,24 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } else { if *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) != int32(EISDIR) && isReadWrite != 0 { /* Failed to open the file for read/write access. Try read-only. */ + pReadonly = uintptr(0) flags &= ^(libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE)) openFlags &= ^(libc.Int32FromInt32(O_RDWR) | libc.Int32FromInt32(O_CREAT)) flags |= int32(SQLITE_OPEN_READONLY) openFlags |= O_RDONLY isReadonly = int32(1) - fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 516))) + pReadonly = _findReusableFd(tls, zName, flags) + if pReadonly != 0 { + fd = (*TUnixUnusedFd)(unsafe.Pointer(pReadonly)).Ffd + Xsqlite3_free(tls, pReadonly) + } else { + fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 516))) + } } } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44435)), __ccgo_ts+3393, zName, int32(44435)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44775)), __ccgo_ts+3457, zName, int32(44775)) if rc == SQLITE_OK { rc = rc2 } @@ -28901,6 +29155,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } _ = libc.Int32FromInt32(0) rc = _fillInUnixFile(tls, pVfs, fd, pFile, zPath, ctrlFlags) + goto open_finished open_finished: ; if rc != SQLITE_OK { @@ -28927,7 +29182,7 @@ func _unixDelete(tls *libc.TLS, NotUsed uintptr, zPath uintptr, dirSync int32) ( if *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) == int32(ENOENT) { rc = libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(23)< int32(SQLITE_MAX_SYMLINK) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(44686)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45026)) return } got = (*(*func(*libc.TLS, uintptr, uintptr, Tsize_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls, zIn, bp+96, libc.Uint32FromInt64(4098)-libc.Uint32FromInt32(2)) if got <= 0 || got >= libc.Int32FromInt64(4098)-libc.Int32FromInt32(2) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44691)), __ccgo_ts+3582, zIn, int32(44691)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45031)), __ccgo_ts+3646, zIn, int32(45031)) return } (*(*[4098]int8)(unsafe.Pointer(bp + 96)))[got] = 0 @@ -29131,14 +29386,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if int32(*(*int8)(unsafe.Pointer(zPath))) != int32('/') { if (*(*func(*libc.TLS, uintptr, Tsize_t) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(3)].FpCurrent})))(tls, bp+20, libc.Uint32FromInt64(4098)-libc.Uint32FromInt32(2)) == uintptr(0) { - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44749)), __ccgo_ts+3411, zPath, int32(44749)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45089)), __ccgo_ts+3475, zPath, int32(45089)) } _appendAllPathElements(tls, bp, bp+20) } _appendAllPathElements(tls, bp, zPath) *(*int8)(unsafe.Pointer(zOut + uintptr((*(*TDbPath)(unsafe.Pointer(bp))).FnUsed))) = 0 if (*(*TDbPath)(unsafe.Pointer(bp))).Frc != 0 || (*(*TDbPath)(unsafe.Pointer(bp))).FnUsed < int32(2) { - return _sqlite3CantopenError(tls, int32(44755)) + return _sqlite3CantopenError(tls, int32(45095)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<= (libc.Uint32FromInt32(BITVEC_SZ)-libc.Uint32FromInt32(3)*libc.Uint32FromInt64(4))/libc.Uint32FromInt64(4)*libc.Uint32FromInt64(4)/libc.Uint32FromInt64(4)/libc.Uint32FromInt32(2) { @@ -31025,6 +31282,7 @@ bitvec_set_rehash: return rc } } + goto bitvec_set_end bitvec_set_end: ; (*TBitvec)(unsafe.Pointer(p)).FnSet++ @@ -31258,6 +31516,7 @@ func _sqlite3BitvecBuiltinTest(tls *libc.TLS, sz int32, aOp uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp))++ } /* Free allocated structure */ + goto bitvec_end bitvec_end: ; Xsqlite3_free(tls, pTmpSpace) @@ -32546,7 +32805,7 @@ func _sqlite3PCacheBufferSetup(tls *libc.TLS, pBuf uintptr, sz int32, n int32) { var p uintptr var v1, v2, v3, v4 int32 _, _, _, _, _ = p, v1, v2, v3, v4 - if _pcache1_g.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_pcache1_g))+52) != 0 { if pBuf == uintptr(0) { v1 = libc.Int32FromInt32(0) n = v1 @@ -33096,7 +33355,7 @@ func _pcache1Init(tls *libc.TLS, NotUsed uintptr) (r int32) { _pcache1_g.FnInitPage = 0 } _pcache1_g.Fgrp.FmxPinned = uint32(10) - _pcache1_g.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_pcache1_g))+52, int32(1)) return SQLITE_OK } @@ -36679,6 +36938,7 @@ func _pager_delsuper(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) { } _sqlite3OsClose(tls, pSuper) rc = _sqlite3OsDelete(tls, pVfs, zSuper, 0) + goto delsuper_out delsuper_out: ; Xsqlite3_free(tls, zFree) @@ -37015,6 +37275,7 @@ func _pager_playback(tls *libc.TLS, pPager uintptr, isHot int32) (r int32) { } /*NOTREACHED*/ _ = libc.Int32FromInt32(0) + goto end_playback end_playback: ; if rc == SQLITE_OK { @@ -37058,7 +37319,7 @@ end_playback: rc = _pager_delsuper(tls, pPager, zSuper) } if isHot != 0 && nPlayback != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(2)< int64(1) { _sqlite3PagerUnrefNotNull(tls, pPgOld) - return _sqlite3CorruptError(tls, int32(63973)) + return _sqlite3CorruptError(tls, int32(64313)) } p4 = pPg + 28 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | int32((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -41392,7 +41657,7 @@ func _sqlite3PagerCheckpoint(tls *libc.TLS, pPager uintptr, db uintptr, eMode in ** sqlite3_wal_checkpoint() call, but it happens very rarely. ** https://sqlite.org/forum/forumpost/fd0f19d229156939 */ - Xsqlite3_exec(tls, db, __ccgo_ts+4109, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+4173, uintptr(0), uintptr(0), uintptr(0)) } if (*TPager)(unsafe.Pointer(pPager)).FpWal != 0 { if eMode == SQLITE_CHECKPOINT_PASSIVE { @@ -42873,7 +43138,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(65899)) + return _sqlite3CorruptError(tls, int32(66239)) } goto _1 _1: @@ -42965,7 +43230,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { ** are able to understand */ version = _sqlite3Get4byte(tls, bp+8+4) if version != uint32(WAL_MAX_VERSION) { - rc = _sqlite3CantopenError(tls, int32(66031)) + rc = _sqlite3CantopenError(tls, int32(66371)) goto finished } /* Malloc a buffer to read frames into. */ @@ -43062,6 +43327,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { } Xsqlite3_free(tls, aFrame) } + goto finished finished: ; if rc == SQLITE_OK { @@ -43106,9 +43372,10 @@ finished: ** checkpointing the log file. */ if (*TWal)(unsafe.Pointer(pWal)).Fhdr.FnPage != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(1)< int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(71032)) + rc = _sqlite3CorruptError(tls, int32(71421)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } @@ -47863,7 +48139,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if key == uint32(0) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71230)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71619)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -47876,12 +48152,12 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, /* The first byte of the extra data is the MemPage.isInit byte. ** If that byte is set, it means this page is also being used ** as a btree page. */ - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71243)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71632)) goto ptrmap_exit } offset = int32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71248)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71637)) goto ptrmap_exit } _ = libc.Int32FromInt32(0) @@ -47895,6 +48171,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _sqlite3Put4byte(tls, pPtrmap+uintptr(offset+int32(1)), parent) } } + goto ptrmap_exit ptrmap_exit: ; _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -47926,7 +48203,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = int32(libc.Uint32FromInt32(5) * (key - uint32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(71293)) + return _sqlite3CorruptError(tls, int32(71682)) } _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -47936,7 +48213,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if int32(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || int32(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(71301)) + return _sqlite3CorruptError(tls, int32(71690)) } return SQLITE_OK } @@ -48375,7 +48652,7 @@ func _ptrmapPutOvflPtr(tls *libc.TLS, pPage uintptr, pSrc uintptr, pCell uintptr (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if uint32(pCell) < uint32((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) && uint32(pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal)) > uint32((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71741)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72130)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(int32((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -48421,12 +48698,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71799)) + return _sqlite3CorruptError(tls, int32(72188)) } if iFree != 0 { iFree2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71802)) + return _sqlite3CorruptError(tls, int32(72191)) } if 0 == iFree2 || int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -48434,21 +48711,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(71810)) + return _sqlite3CorruptError(tls, int32(72199)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(71813)) + return _sqlite3CorruptError(tls, int32(72202)) } sz2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(71815)) + return _sqlite3CorruptError(tls, int32(72204)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), uint32(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(71819)) + return _sqlite3CorruptError(tls, int32(72208)) } } cbrk = top + sz @@ -48496,13 +48773,13 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { ** if PRAGMA cell_size_check=ON. */ if pc > iCellLast { - return _sqlite3CorruptError(tls, int32(71852)) + return _sqlite3CorruptError(tls, int32(72241)) } _ = libc.Int32FromInt32(0) size = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, src+uintptr(pc))) cbrk -= size if cbrk < iCellStart || pc+size > usableSize { - return _sqlite3CorruptError(tls, int32(71858)) + return _sqlite3CorruptError(tls, int32(72247)) } _ = libc.Int32FromInt32(0) *(*Tu8)(unsafe.Pointer(pAddr1)) = uint8(cbrk >> libc.Int32FromInt32(8)) @@ -48515,11 +48792,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { } } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))) = uint8(0) + goto defragment_out defragment_out: ; _ = libc.Int32FromInt32(0) if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(71872)) + return _sqlite3CorruptError(tls, int32(72261)) } _ = libc.Int32FromInt32(0) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = uint8(cbrk >> libc.Int32FromInt32(8)) @@ -48582,7 +48860,7 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint } else { if x+pc > maxPC { /* This slot extends off the end of the usable part of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71929)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72318)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -48599,14 +48877,14 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint if pc <= iAddr { if pc != 0 { /* The next slot in the chain comes before the current slot */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71944)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72333)) } return uintptr(0) } } if pc > maxPC+nByte-int32(4) { /* The free slot chain extends off the end of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71951)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72340)) } return uintptr(0) } @@ -48657,11 +48935,11 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r if top == 0 && (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize == uint32(65536) { top = int32(65536) } else { - return _sqlite3CorruptError(tls, int32(71999)) + return _sqlite3CorruptError(tls, int32(72388)) } } else { if top > int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(72002)) + return _sqlite3CorruptError(tls, int32(72391)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -48676,7 +48954,7 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r g2 = v1 *(*int32)(unsafe.Pointer(pIdx)) = v1 if g2 <= gap { - return _sqlite3CorruptError(tls, int32(72019)) + return _sqlite3CorruptError(tls, int32(72408)) } else { return SQLITE_OK } @@ -48769,12 +49047,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if int32(iFreeBlk) == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(72098)) + return _sqlite3CorruptError(tls, int32(72487)) } iPtr = iFreeBlk } if uint32(iFreeBlk) > (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(72103)) + return _sqlite3CorruptError(tls, int32(72492)) } _ = libc.Int32FromInt32(0) /* At this point: @@ -48786,11 +49064,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if iFreeBlk != 0 && iEnd+uint32(3) >= uint32(iFreeBlk) { nFrag = uint8(uint32(iFreeBlk) - iEnd) if iEnd > uint32(iFreeBlk) { - return _sqlite3CorruptError(tls, int32(72115)) + return _sqlite3CorruptError(tls, int32(72504)) } iEnd = uint32(int32(iFreeBlk) + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iFreeBlk)+int32(2)))))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - return _sqlite3CorruptError(tls, int32(72118)) + return _sqlite3CorruptError(tls, int32(72507)) } iSize = uint16(iEnd - uint32(iStart)) iFreeBlk = uint16(int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= int32(iStart) { if iPtrEnd > int32(iStart) { - return _sqlite3CorruptError(tls, int32(72131)) + return _sqlite3CorruptError(tls, int32(72520)) } nFrag = Tu8(int32(nFrag) + (int32(iStart) - iPtrEnd)) iSize = uint16(iEnd - uint32(iPtr)) @@ -48811,7 +49089,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) } } if int32(nFrag) > int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(72137)) + return _sqlite3CorruptError(tls, int32(72526)) } p2 = data + uintptr(int32(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - int32(nFrag)) @@ -48828,10 +49106,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) ** so just extend the cell content area rather than create another ** freelist entry */ if int32(iStart) < int32(x) { - return _sqlite3CorruptError(tls, int32(72151)) + return _sqlite3CorruptError(tls, int32(72540)) } if int32(iPtr) != int32(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(72152)) + return _sqlite3CorruptError(tls, int32(72541)) } *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)))) = uint8(int32(iFreeBlk) >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)) + 1)) = uint8(iFreeBlk) @@ -48894,7 +49172,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtrIdxLeaf) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72206)) + return _sqlite3CorruptError(tls, int32(72595)) } } } else { @@ -48920,7 +49198,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtr) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72230)) + return _sqlite3CorruptError(tls, int32(72619)) } } } @@ -48967,12 +49245,12 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-55530-52930 In a well-formed b-tree page, there will ** always be at least one cell before the first freeblock. */ - return _sqlite3CorruptError(tls, int32(72281)) + return _sqlite3CorruptError(tls, int32(72670)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(72286)) + return _sqlite3CorruptError(tls, int32(72675)) } next = uint32(int32(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(72296)) + return _sqlite3CorruptError(tls, int32(72685)) } if uint32(pc)+size > uint32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(72300)) + return _sqlite3CorruptError(tls, int32(72689)) } } /* At this point, nFree contains the sum of the offset to the start @@ -48999,7 +49277,7 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { ** area, according to the page header, lies within the page. */ if nFree > usableSize || nFree < iCellFirst { - return _sqlite3CorruptError(tls, int32(72312)) + return _sqlite3CorruptError(tls, int32(72701)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16(nFree - iCellFirst)) return SQLITE_OK @@ -49030,11 +49308,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))) if pc < iCellFirst || pc > iCellLast { - return _sqlite3CorruptError(tls, int32(72343)) + return _sqlite3CorruptError(tls, int32(72732)) } sz = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, data+uintptr(pc))) if pc+sz > usableSize { - return _sqlite3CorruptError(tls, int32(72348)) + return _sqlite3CorruptError(tls, int32(72737)) } goto _1 _1: @@ -49070,7 +49348,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-28594-02890 The one-byte flag at offset 0 indicating ** the b-tree page type. */ if _decodeFlags(tls, pPage, int32(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(72380)) + return _sqlite3CorruptError(tls, int32(72769)) } _ = libc.Int32FromInt32(0) (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) @@ -49084,7 +49362,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = uint16(int32(*(*Tu8)(unsafe.Pointer(data + 3)))< ((*TBtShared)(unsafe.Pointer(pBt)).FpageSize-uint32(8))/uint32(6) { /* To many cells for a single page. The page must be corrupt */ - return _sqlite3CorruptError(tls, int32(72394)) + return _sqlite3CorruptError(tls, int32(72783)) } /* EVIDENCE-OF: R-24089-57979 If a page contains no cells (which is only ** possible for a root page of a table that contains no rows) then the @@ -49250,7 +49528,7 @@ func _getAndInitPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, bRe _ = libc.Int32FromInt32(0) if pgno > _btreePagecount(tls, pBt) { *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72537)) + return _sqlite3CorruptError(tls, int32(72926)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -49327,7 +49605,7 @@ func _btreeGetUnusedPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FpDbPage) > int32(1) { _releasePage(tls, *(*uintptr)(unsafe.Pointer(ppPage))) *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72609)) + return _sqlite3CorruptError(tls, int32(72998)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -49419,7 +49697,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt /* Set the variable isMemdb to true for an in-memory database, or ** false for a file-based database. */ - isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4190) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) + isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4254) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -49654,6 +49932,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt } } *(*uintptr)(unsafe.Pointer(ppBtree)) = p + goto btree_open_out btree_open_out: ; if rc != SQLITE_OK { @@ -50239,7 +50518,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { ** The original design allowed these amounts to vary, but as of ** version 3.6.0, we require them to be fixed. */ - if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4199, uint32(3)) != 0 { + if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4263, uint32(3)) != 0 { goto page1_init_failed } /* EVIDENCE-OF: R-51873-39618 The page size for a database file is @@ -50278,7 +50557,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { } if nPage > *(*Tu32)(unsafe.Pointer(bp + 4)) { if _sqlite3WritableSchema(tls, (*TBtShared)(unsafe.Pointer(pBt)).Fdb) == 0 { - rc = _sqlite3CorruptError(tls, int32(73547)) + rc = _sqlite3CorruptError(tls, int32(73936)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 4)) @@ -50333,6 +50612,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 = *(*uintptr)(unsafe.Pointer(bp)) (*TBtShared)(unsafe.Pointer(pBt)).FnPage = nPage return SQLITE_OK + goto page1_init_failed page1_init_failed: ; _releasePageOne(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -50617,6 +50897,7 @@ func _btreeBeginTrans(tls *libc.TLS, p uintptr, wrflag int32, pSchemaVersion uin } } } + goto trans_begun trans_begun: ; if rc == SQLITE_OK { @@ -50738,7 +51019,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if int32(eType) == int32(PTRMAP_OVERFLOW2) { /* The pointer is always the first 4 bytes of the page in this case. */ if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData) != iFrom { - return _sqlite3CorruptError(tls, int32(73995)) + return _sqlite3CorruptError(tls, int32(74384)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -50762,7 +51043,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74014)) + return _sqlite3CorruptError(tls, int32(74403)) } if iFrom == _sqlite3Get4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4)) { _sqlite3Put4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4), iTo) @@ -50771,7 +51052,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } } else { if pCell+uintptr(4) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74023)) + return _sqlite3CorruptError(tls, int32(74412)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -50785,7 +51066,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if int32(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(74035)) + return _sqlite3CorruptError(tls, int32(74424)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -50818,7 +51099,7 @@ func _relocatePage(tls *libc.TLS, pBt uintptr, pDbPage uintptr, eType Tu8, iPtrP _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iDbPage < uint32(3) { - return _sqlite3CorruptError(tls, int32(74070)) + return _sqlite3CorruptError(tls, int32(74459)) } /* Move page iDbPage from its current location to page number iFreePage */ *(*int32)(unsafe.Pointer(bp + 4)) = _sqlite3PagerMovepage(tls, pPager, (*TMemPage)(unsafe.Pointer(pDbPage)).FpDbPage, iFreePage, isCommit) @@ -50916,7 +51197,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(74168)) + return _sqlite3CorruptError(tls, int32(74557)) } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -50955,7 +51236,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 24))) if *(*TPgno)(unsafe.Pointer(bp + 16)) > dbSize { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 20))) - return _sqlite3CorruptError(tls, int32(74220)) + return _sqlite3CorruptError(tls, int32(74609)) } } _ = libc.Int32FromInt32(0) @@ -51024,7 +51305,7 @@ func _sqlite3BtreeIncrVacuum(tls *libc.TLS, p uintptr) (r int32) { nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) nFin = _finalDbSize(tls, pBt, nOrig, nFree) if nOrig < nFin || nFree >= nOrig { - rc = _sqlite3CorruptError(tls, int32(74288)) + rc = _sqlite3CorruptError(tls, int32(74677)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -51070,7 +51351,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { ** is either a pointer-map page or the pending-byte page. If one ** is encountered, this indicates corruption. */ - return _sqlite3CorruptError(tls, int32(74339)) + return _sqlite3CorruptError(tls, int32(74728)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -51100,7 +51381,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(74366)) + return _sqlite3CorruptError(tls, int32(74755)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -51598,7 +51879,7 @@ func _btreeCursor(tls *libc.TLS, p uintptr, iTable TPgno, wrFlag int32, pKeyInfo _ = libc.Int32FromInt32(0) if iTable <= uint32(1) { if iTable < uint32(1) { - return _sqlite3CorruptError(tls, int32(74830)) + return _sqlite3CorruptError(tls, int32(75219)) } else { if _btreePagecount(tls, pBt) == uint32(0) { _ = libc.Int32FromInt32(0) @@ -52012,7 +52293,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(75235)) + return _sqlite3CorruptError(tls, int32(75624)) } _ = libc.Int32FromInt32(0) _getCellInfo(tls, pCur) @@ -52025,7 +52306,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin ** &aPayload[pCur->info.nLocal] > &pPage->aData[pBt->usableSize] ** but is recast into its current form to avoid integer overflow problems */ - return _sqlite3CorruptError(tls, int32(75250)) + return _sqlite3CorruptError(tls, int32(75639)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -52053,7 +52334,11 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_ValidOvfl) == 0 { nOvfl = int32(((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnPayload - uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) + ovflSize - uint32(1)) / ovflSize) if (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow == uintptr(0) || nOvfl*libc.Int32FromInt64(4) > _sqlite3MallocSize(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow) { - aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(uint32(nOvfl*int32(2))*uint32(4))) + if _sqlite3FaultSim(tls, int32(413)) != 0 { + aNew = uintptr(0) + } else { + aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(uint32(nOvfl*int32(2))*uint32(4))) + } if aNew == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -52064,6 +52349,9 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin p1 = pCur + 1 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(BTCF_ValidOvfl)) } else { + /* Sanity check the validity of the overflow page cache */ + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* If the overflow page-list cache has been allocated and the ** entry for the first required overflow page is valid, skip ** directly to it. @@ -52078,7 +52366,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin for *(*TPgno)(unsafe.Pointer(bp)) != 0 { /* If required, populate the overflow page-list cache. */ if *(*TPgno)(unsafe.Pointer(bp)) > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(75312)) + return _sqlite3CorruptError(tls, int32(75710)) } _ = libc.Int32FromInt32(0) *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) @@ -52155,7 +52443,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin } if rc == SQLITE_OK && amt > uint32(0) { /* Overflow chain ends prematurely */ - return _sqlite3CorruptError(tls, int32(75396)) + return _sqlite3CorruptError(tls, int32(75794)) } return rc } @@ -52308,7 +52596,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(75534)) + return _sqlite3CorruptError(tls, int32(75932)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -52321,7 +52609,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(75548)) + rc = _sqlite3CorruptError(tls, int32(75946)) } if rc != 0 { v3 = pCur + 60 @@ -52451,8 +52739,9 @@ func _moveToRoot(tls *libc.TLS, pCur uintptr) (r int32) { ** (or the freelist). */ _ = libc.Int32FromInt32(0) if int32((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != int32((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(75683)) + return _sqlite3CorruptError(tls, int32(76081)) } + goto skip_init skip_init: ; (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(0) @@ -52464,7 +52753,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(75695)) + return _sqlite3CorruptError(tls, int32(76093)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -52613,6 +52902,7 @@ func _sqlite3BtreeLast(tls *libc.TLS, pCur uintptr, pRes uintptr) (r int32) { _ = libc.Int32FromInt32(0) /* If the cursor already points to the last entry, this is a no-op. */ if CURSOR_VALID == int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) && int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_AtLast) != 0 { + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pRes)) = 0 return SQLITE_OK } @@ -52666,6 +52956,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh } if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey < intKey { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_AtLast) != 0 { + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pRes)) = -int32(1) return SQLITE_OK } @@ -52728,7 +53019,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(75937)) + return _sqlite3CorruptError(tls, int32(76342)) } } } @@ -52776,6 +53067,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh rc = SQLITE_OK goto moveto_table_finish } + goto moveto_table_next_layer moveto_table_next_layer: ; if lwr >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { @@ -52791,6 +53083,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh goto _1 _1: } + goto moveto_table_finish moveto_table_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -52942,7 +53235,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes p3 = pCur + 1 *(*Tu8)(unsafe.Pointer(p3)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p3))) & ^libc.Int32FromInt32(BTCF_ValidOvfl)) if !((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76133)) + return _sqlite3CorruptError(tls, int32(76538)) } goto bypass_moveto_root /* Start search on the current page */ } @@ -52957,6 +53250,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes } return rc } + goto bypass_moveto_root bypass_moveto_root: ; _ = libc.Int32FromInt32(0) @@ -53013,7 +53307,7 @@ bypass_moveto_root: /* Invalid key size: 0x80 0x80 0x01 */ /* Minimum legal index key size */ if nCell < int32(2) || uint32(nCell)/(*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FusableSize > (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(76220)) + rc = _sqlite3CorruptError(tls, int32(76625)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, uint64(nCell+nOverrun)) @@ -53046,7 +53340,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(76252)) + rc = _sqlite3CorruptError(tls, int32(76657)) } goto moveto_index_finish } @@ -53083,7 +53377,7 @@ bypass_moveto_root: p9 = pCur + 1 *(*Tu8)(unsafe.Pointer(p9)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p9))) & ^(libc.Int32FromInt32(BTCF_ValidNKey) | libc.Int32FromInt32(BTCF_ValidOvfl))) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(76283)) + return _sqlite3CorruptError(tls, int32(76688)) } *(*Tu16)(unsafe.Pointer(pCur + 64 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = uint16(lwr) *(*uintptr)(unsafe.Pointer(pCur + 112 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*4)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -53092,7 +53386,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+108, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76294)) + rc = _sqlite3CorruptError(tls, int32(76699)) } if rc != 0 { v11 = pCur + 60 @@ -53106,6 +53400,7 @@ bypass_moveto_root: goto _4 _4: } + goto moveto_index_finish moveto_index_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -53143,11 +53438,11 @@ func _sqlite3BtreeRowCountEst(tls *libc.TLS, pCur uintptr) (r Ti64) { _, _ = i, n _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - /* Currently this interface is only called by the OP_IfSmaller - ** opcode, and it that case the cursor will always be valid and - ** will always point to a leaf node. */ + /* Currently this interface is only called by the OP_IfSizeBetween + ** opcode and the OP_Count opcode with P3=1. In either case, + ** the cursor will always be valid unless the btree is empty. */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID { - return int64(-int32(1)) + return 0 } if int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).Fleaf) == 0 { return int64(-int32(1)) @@ -53225,7 +53520,7 @@ func _btreeNext(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76395)) + return _sqlite3CorruptError(tls, int32(76800)) } if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -53340,7 +53635,7 @@ func _btreePrevious(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76488)) + return _sqlite3CorruptError(tls, int32(76893)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -53434,7 +53729,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt ** stores the total number of pages on the freelist. */ n = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+36) if n >= mxPage { - return _sqlite3CorruptError(tls, int32(76578)) + return _sqlite3CorruptError(tls, int32(76983)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -53491,7 +53786,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(76634)) + rc = _sqlite3CorruptError(tls, int32(77039)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -53520,7 +53815,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { if k > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/libc.Uint32FromInt32(4)-libc.Uint32FromInt32(2) { /* Value of k is out of range. Database corruption */ - rc = _sqlite3CorruptError(tls, int32(76663)) + rc = _sqlite3CorruptError(tls, int32(77068)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -53547,7 +53842,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { iNewTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+8) if iNewTrunk > mxPage { - rc = _sqlite3CorruptError(tls, int32(76697)) + rc = _sqlite3CorruptError(tls, int32(77102)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+8, 0) @@ -53619,7 +53914,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } iPage = _sqlite3Get4byte(tls, aData+uintptr(uint32(8)+closest*uint32(4))) if iPage > mxPage || iPage < uint32(2) { - rc = _sqlite3CorruptError(tls, int32(76762)) + rc = _sqlite3CorruptError(tls, int32(77167)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -53722,6 +54017,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } } _ = libc.Int32FromInt32(0) + goto end_allocate_page end_allocate_page: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -53764,7 +54060,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iPage < uint32(2) || iPage > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(76889)) + return _sqlite3CorruptError(tls, int32(77294)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 4)) = pMemPage @@ -53815,7 +54111,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in if nFree != uint32(0) { /* Initial number of leaf cells on trunk page */ iTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32) if iTrunk > _btreePagecount(tls, pBt) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(76936)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(77341)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 8)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -53825,7 +54121,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in nLeaf = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+4) _ = libc.Int32FromInt32(0) if nLeaf > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(2) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(76947)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(77352)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -53880,6 +54176,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 4)))).FaData, iTrunk) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 4)))).FaData+4, uint32(0)) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32, iPage) + goto freepage_out freepage_out: ; if *(*uintptr)(unsafe.Pointer(bp + 4)) != 0 { @@ -53916,7 +54213,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp _ = libc.Int32FromInt32(0) if pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { /* Cell extends past end of page */ - return _sqlite3CorruptError(tls, int32(77036)) + return _sqlite3CorruptError(tls, int32(77441)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -53936,7 +54233,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp /* 0 is not a legal page number and page 1 cannot be an ** overflow page. Therefore if ovflPgno<2 or past the end of the ** file the database must be corrupt. */ - return _sqlite3CorruptError(tls, int32(77053)) + return _sqlite3CorruptError(tls, int32(77458)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+4, bp) @@ -53959,7 +54256,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp ** caller is iterating through or using in some other way, this ** can be problematic. */ - rc = _sqlite3CorruptError(tls, int32(77073)) + rc = _sqlite3CorruptError(tls, int32(77478)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 4)), ovflPgno) } @@ -54195,7 +54492,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = uint32(int32(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77329)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77734)) return } rc = _freeSpace(tls, pPage, uint16(pc), uint16(sz)) @@ -54630,12 +54927,12 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg _ = libc.Int32FromInt32(0) if uint32(pCell) >= uint32(aData+uintptr(j)) && uint32(pCell) < uint32(pEnd) { if uint32(pCell+uintptr(sz)) > uint32(pEnd) { - return _sqlite3CorruptError(tls, int32(77718)) + return _sqlite3CorruptError(tls, int32(78123)) } pCell = pTmp + uintptr(int32(pCell)-int32(aData)) } else { if uint32(pCell+uintptr(sz)) > uint32(pSrcEnd) && uint32(pCell) < uint32(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(77723)) + return _sqlite3CorruptError(tls, int32(78128)) } } pData -= uintptr(sz) @@ -54643,7 +54940,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = uint8(int32(pData) - int32(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(77729)) + return _sqlite3CorruptError(tls, int32(78134)) } libc.Xmemmove(tls, pData, pCell, uint32(sz)) _ = libc.Int32FromInt32(0) @@ -54742,7 +55039,7 @@ func _pageInsertArray(tls *libc.TLS, pPg uintptr, pBegin uintptr, ppData uintptr _ = libc.Int32FromInt32(0) if uint32(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*4))+uintptr(sz)) > uint32(pEnd) && uint32(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*4))) < uint32(pEnd) { _ = libc.Int32FromInt32(0) - _sqlite3CorruptError(tls, int32(77814)) + _sqlite3CorruptError(tls, int32(78219)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*4)), uint32(sz)) @@ -54892,7 +55189,7 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p if iOld < iNew { nShift = _pageFreeArray(tls, pPg, iOld, iNew-iOld, pCArray) if nShift > nCell { - return _sqlite3CorruptError(tls, int32(77936)) + return _sqlite3CorruptError(tls, int32(78341)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), uint32(nCell*int32(2))) nCell -= nShift @@ -54962,11 +55259,12 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)))) = uint8((int32(*(*uintptr)(unsafe.Pointer(bp))) - int32(aData)) >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)) + 1)) = uint8(int32(*(*uintptr)(unsafe.Pointer(bp))) - int32(aData)) return SQLITE_OK + goto editpage_fail editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(78010)) + return _sqlite3CorruptError(tls, int32(78415)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -55014,7 +55312,7 @@ func _balance_quick(tls *libc.TLS, pParent uintptr, pPage uintptr, pSpace uintpt _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(78050)) + return _sqlite3CorruptError(tls, int32(78455)) } /* dbfuzz001.test */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -55390,7 +55688,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 4)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78471)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78876)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -55413,7 +55711,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa libc.Xmemset(tls, (*(*TCellArray)(unsafe.Pointer(bp + 68))).FszCell+uintptr((*(*TCellArray)(unsafe.Pointer(bp + 68))).FnCell)*2, 0, uint32(2)*uint32(limit+int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78495)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78900)) goto balance_cleanup } limit = int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -55556,7 +55854,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa if i+int32(1) >= k { k = i + int32(2) if k > libc.Int32FromInt32(NB)+libc.Int32FromInt32(2) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78596)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79001)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 36)))[k-int32(1)] = 0 @@ -55599,7 +55897,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v10 = 0 } if cntNew[i] <= v10 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78629)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79034)) goto balance_cleanup } } @@ -55660,7 +55958,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v15 = 0 } if cntNew[i-int32(1)] <= v15 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78673)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79078)) goto balance_cleanup } goto _11 @@ -55693,7 +55991,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 132)))).FpDbPage) nNew++ if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 132)))).FpDbPage) != int32(1)+libc.BoolInt32(i == iParentIdx-nxDiv) && *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78706)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79111)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -55936,7 +56234,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa } pSrcEnd = *(*uintptr)(unsafe.Pointer(bp + 68 + 16 + uintptr(k)*4)) if uint32(pCell1) < uint32(pSrcEnd) && uint32(pCell1+uintptr(sz2)) > uint32(pSrcEnd) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78906)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79311)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -56085,6 +56383,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa /* ** Cleanup before returning. */ + goto balance_cleanup balance_cleanup: ; _sqlite3DbFree(tls, uintptr(0), (*(*TCellArray)(unsafe.Pointer(bp + 68))).FapCell) @@ -56200,7 +56499,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && int32((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(79138)) + return _sqlite3CorruptError(tls, int32(79543)) } goto _1 _1: @@ -56275,7 +56574,7 @@ func _balance(tls *libc.TLS, pCur uintptr) (r int32) { /* The page being written is not a root page, and there is currently ** more than one reference to it. This only happens if the page is one ** of its own ancestor pages. Corruption. */ - rc = _sqlite3CorruptError(tls, int32(79198)) + rc = _sqlite3CorruptError(tls, int32(79603)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 112 + uintptr(iPage-int32(1))*4)) iIdx = int32(*(*Tu16)(unsafe.Pointer(pCur + 64 + uintptr(iPage-int32(1))*2))) @@ -56438,7 +56737,7 @@ func _btreeOverwriteOverflowCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int return rc } if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1) || (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FisInit != 0 { - rc = _sqlite3CorruptError(tls, int32(79362)) + rc = _sqlite3CorruptError(tls, int32(79767)) } else { if uint32(iOffset)+ovflPageSize < uint32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -56469,7 +56768,7 @@ func _btreeOverwriteCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int32) { nTotal = (*TBtreePayload)(unsafe.Pointer(pX)).FnData + (*TBtreePayload)(unsafe.Pointer(pX)).FnZero /* Total bytes of to write */ pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage /* Page being written */ if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload+uintptr((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd || (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FcellOffset) { - return _sqlite3CorruptError(tls, int32(79390)) + return _sqlite3CorruptError(tls, int32(79795)) } if int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -56556,7 +56855,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** Which can only happen if the SQLITE_NoSchemaError flag was set when ** the schema was loaded. This cannot be asserted though, as a user might ** set the flag, load the schema, and then unset the flag. */ - return _sqlite3CorruptError(tls, int32(79471)) + return _sqlite3CorruptError(tls, int32(79876)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -56659,7 +56958,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79594)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79999)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -56701,7 +57000,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if *(*int32)(unsafe.Pointer(bp + 4)) == 0 { _ = libc.Int32FromInt32(0) if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79636)) + return _sqlite3CorruptError(tls, int32(80041)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -56731,10 +57030,10 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry. */ _ = libc.Int32FromInt32(0) /* clearCell never fails when nLocal==nPayload */ if oldCell < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+uintptr(10) { - return _sqlite3CorruptError(tls, int32(79663)) + return _sqlite3CorruptError(tls, int32(80068)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79666)) + return _sqlite3CorruptError(tls, int32(80071)) } libc.Xmemcpy(tls, oldCell, newCell, uint32(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -56806,6 +57105,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s } } _ = libc.Int32FromInt32(0) + goto end_insert end_insert: ; return *(*int32)(unsafe.Pointer(bp)) @@ -56858,7 +57158,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T nIn = uint32((*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnLocal) aIn = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload if aIn+uintptr(nIn) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79768)) + return _sqlite3CorruptError(tls, int32(80173)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -56880,7 +57180,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T } if nRem > nIn { if aIn+uintptr(nIn)+uintptr(4) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79793)) + return _sqlite3CorruptError(tls, int32(80198)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -56989,7 +57289,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(79889)) + return _sqlite3CorruptError(tls, int32(80294)) } } _ = libc.Int32FromInt32(0) @@ -56997,14 +57297,14 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { iCellIdx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(79898)) + return _sqlite3CorruptError(tls, int32(80303)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCellIdx)))))) if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 && _btreeComputeFreeSpace(tls, pPage) != 0 { - return _sqlite3CorruptError(tls, int32(79902)) + return _sqlite3CorruptError(tls, int32(80307)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79905)) + return _sqlite3CorruptError(tls, int32(80310)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -57099,7 +57399,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { } pCell = (*TMemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(int32(2)*(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FnCell)-int32(1)))))))) if pCell < (*TMemPage)(unsafe.Pointer(pLeaf)).FaData+4 { - return _sqlite3CorruptError(tls, int32(79996)) + return _sqlite3CorruptError(tls, int32(80401)) } nCell = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pLeaf)).FxCellSize})))(tls, pLeaf, pCell)) _ = libc.Int32FromInt32(0) @@ -57219,7 +57519,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags */ _sqlite3BtreeGetMeta(tls, p, int32(BTREE_LARGEST_ROOT_PAGE), bp+4) if *(*TPgno)(unsafe.Pointer(bp + 4)) > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80112)) + return _sqlite3CorruptError(tls, int32(80517)) } *(*TPgno)(unsafe.Pointer(bp + 4))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -57261,7 +57561,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags } *(*int32)(unsafe.Pointer(bp + 8)) = _ptrmapGet(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 4)), bp+20, bp+24) if int32(*(*Tu8)(unsafe.Pointer(bp + 20))) == int32(PTRMAP_ROOTPAGE) || int32(*(*Tu8)(unsafe.Pointer(bp + 20))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80160)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80565)) } if *(*int32)(unsafe.Pointer(bp + 8)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -57348,14 +57648,14 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _, _, _, _ = hdr, i, pCell, v2 _ = libc.Int32FromInt32(0) if pgno > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80250)) + return _sqlite3CorruptError(tls, int32(80655)) } *(*int32)(unsafe.Pointer(bp + 4)) = _getAndInitPage(tls, pBt, pgno, bp, 0) if *(*int32)(unsafe.Pointer(bp + 4)) != 0 { return *(*int32)(unsafe.Pointer(bp + 4)) } if int32((*TBtShared)(unsafe.Pointer(pBt)).FopenFlags)&int32(BTREE_SINGLE) == 0 && _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1)+libc.BoolInt32(pgno == uint32(1)) { - *(*int32)(unsafe.Pointer(bp + 4)) = _sqlite3CorruptError(tls, int32(80257)) + *(*int32)(unsafe.Pointer(bp + 4)) = _sqlite3CorruptError(tls, int32(80662)) goto cleardatabasepage_out } hdr = int32((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -57406,6 +57706,7 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _zeroPage(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData + uintptr(hdr))))|int32(PTF_LEAF)) } } + goto cleardatabasepage_out cleardatabasepage_out: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -57495,7 +57796,7 @@ func _btreeDropTable(tls *libc.TLS, p uintptr, iTable TPgno, piMoved uintptr) (r _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iTable > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80361)) + return _sqlite3CorruptError(tls, int32(80766)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, int32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -57771,7 +58072,7 @@ func _checkAppendMsg(tls *libc.TLS, pCheck uintptr, zFormat uintptr, va uintptr) (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr++ ap = va if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FerrMsg.FnChar != 0 { - Xsqlite3_str_append(tls, pCheck+48, __ccgo_ts+4203, int32(1)) + Xsqlite3_str_append(tls, pCheck+48, __ccgo_ts+4267, int32(1)) } if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx != 0 { Xsqlite3_str_appendf(tls, pCheck+48, (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx, libc.VaList(bp+8, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv0, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv2)) @@ -57823,11 +58124,11 @@ func _checkRef(tls *libc.TLS, pCheck uintptr, iPage TPgno) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if iPage > (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnCkPage || iPage == uint32(0) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4205, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4269, libc.VaList(bp+8, iPage)) return int32(1) } if _getPageReferenced(tls, pCheck, iPage) != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4228, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4292, libc.VaList(bp+8, iPage)) return int32(1) } _setPageReferenced(tls, pCheck, iPage) @@ -57853,11 +58154,11 @@ func _checkPtrmap(tls *libc.TLS, pCheck uintptr, iChild TPgno, eType Tu8, iParen if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FusableSize/uint32(4)-uint32(2) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4358, libc.VaList(bp+16, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4422, libc.VaList(bp+16, iPage)) N-- } else { i = 0 @@ -57929,11 +58230,11 @@ func _checkList(tls *libc.TLS, pCheck uintptr, isFreeList int32, iPage TPgno, N } if N != 0 && nErrAtStart == (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr { if isFreeList != 0 { - v2 = __ccgo_ts + 4397 + v2 = __ccgo_ts + 4461 } else { - v2 = __ccgo_ts + 4402 + v2 = __ccgo_ts + 4466 } - _checkAppendMsg(tls, pCheck, __ccgo_ts+4423, libc.VaList(bp+16, v2, expected-N, expected)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4487, libc.VaList(bp+16, v2, expected-N, expected)) } } @@ -58070,12 +58371,12 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr if _checkRef(tls, pCheck, iPage) != 0 { return 0 } - (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4449 + (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4513 (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = iPage v1 = _btreeGetPage(tls, pBt, iPage, bp+8, 0) rc = v1 if v1 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4467, libc.VaList(bp+48, rc)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4531, libc.VaList(bp+48, rc)) if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< usableSize-uint32(4) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4621, libc.VaList(bp+48, pc, contentOffset, usableSize-uint32(4))) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4685, libc.VaList(bp+48, pc, contentOffset, usableSize-uint32(4))) doCoverageCheck = 0 goto _4 } pCell = data + uintptr(pc) (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FxParseCell})))(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), pCell, bp+16) if pc+uint32((*(*TCellInfo)(unsafe.Pointer(bp + 16))).FnSize) > usableSize { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4651, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4715, 0) doCoverageCheck = 0 goto _4 } @@ -58161,7 +58465,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr v5 = libc.BoolInt32((*(*TCellInfo)(unsafe.Pointer(bp + 16))).FnKey >= *(*Ti64)(unsafe.Pointer(bp))) } if v5 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4675, libc.VaList(bp+48, (*(*TCellInfo)(unsafe.Pointer(bp + 16))).FnKey)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4739, libc.VaList(bp+48, (*(*TCellInfo)(unsafe.Pointer(bp + 16))).FnKey)) } *(*Ti64)(unsafe.Pointer(bp)) = (*(*TCellInfo)(unsafe.Pointer(bp + 16))).FnKey keyCanBeEqual = 0 /* Only the first key on the page may ==maxKey */ @@ -58185,7 +58489,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr d2 = _checkTreePage(tls, pCheck, uint32(pgno), bp, *(*Ti64)(unsafe.Pointer(bp))) keyCanBeEqual = 0 if d2 != depth { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4699, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4763, 0) depth = d2 } } else { @@ -58222,6 +58526,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr i-- } } + _ = libc.Int32FromInt32(0) /* Add the freeblocks to the min-heap ** ** EVIDENCE-OF: R-20690-50594 The second field of the b-tree page header @@ -58262,7 +58567,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr prev = contentOffset - uint32(1) /* Implied first min-heap entry */ for _btreeHeapPull(tls, heap, bp+12) != 0 { if prev&uint32(0xffff) >= *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(16) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4724, libc.VaList(bp+48, *(*Tu32)(unsafe.Pointer(bp + 12))>>int32(16), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4788, libc.VaList(bp+48, *(*Tu32)(unsafe.Pointer(bp + 12))>>int32(16), iPage)) break } else { nFrag = int32(uint32(nFrag) + (*(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(16) - prev&libc.Uint32FromInt32(0xffff) - libc.Uint32FromInt32(1))) @@ -58276,9 +58581,10 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr ** number of fragmented free bytes within the cell content area. */ if *(*Tu32)(unsafe.Pointer(heap)) == uint32(0) && nFrag != int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4761, libc.VaList(bp+48, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4825, libc.VaList(bp+48, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) } } + goto end_of_check end_of_check: ; if !(doCoverageCheck != 0) { @@ -58315,22 +58621,23 @@ end_of_check: // ** the unverified btrees. Except, if aRoot[1] is 1, then the freelist // ** checks are still performed. // */ -func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { +func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, aCnt uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { bp := tls.Alloc(224) defer tls.Free(224) var bCkFreelist, bPartial int32 var i, mx, mxInHdr TPgno var pBt uintptr var savedDbFlags Tu64 - var _ /* notUsed at bp+184 */ Ti64 + var _ /* notUsed at bp+192 */ Ti64 var _ /* sCheck at bp+0 */ TIntegrityCk - var _ /* zErr at bp+80 */ [100]int8 + var _ /* zErr at bp+88 */ [100]int8 _, _, _, _, _, _, _ = bCkFreelist, bPartial, i, mx, mxInHdr, pBt, savedDbFlags pBt = (*TBtree)(unsafe.Pointer(p)).FpBt savedDbFlags = (*Tsqlite3)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags bPartial = 0 /* True if not checking all btrees */ bCkFreelist = int32(1) /* True to scan the freelist */ _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* aRoot[0]==0 means this is a partial check */ if *(*TPgno)(unsafe.Pointer(aRoot)) == uint32(0) { _ = libc.Int32FromInt32(0) @@ -58342,13 +58649,13 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin _sqlite3BtreeEnter(tls, p) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - libc.Xmemset(tls, bp, 0, uint32(80)) + libc.Xmemset(tls, bp, 0, uint32(88)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fdb = db (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt = pBt (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage = _btreePagecount(tls, (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr = mxErr - _sqlite3StrAccumInit(tls, bp+48, uintptr(0), bp+80, int32(100), int32(SQLITE_MAX_LENGTH)) + _sqlite3StrAccumInit(tls, bp+48, uintptr(0), bp+88, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FerrMsg.FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage == uint32(0) { goto integrity_ck_cleanup @@ -58370,7 +58677,7 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin /* Check the integrity of the freelist */ if bCkFreelist != 0 { - (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4813 + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4877 _checkList(tls, bp, int32(1), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+32), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = uintptr(0) } @@ -58394,11 +58701,11 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } mxInHdr = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+52) if mx != mxInHdr { - _checkAppendMsg(tls, bp, __ccgo_ts+4824, libc.VaList(bp+200, mx, mxInHdr)) + _checkAppendMsg(tls, bp, __ccgo_ts+4888, libc.VaList(bp+208, mx, mxInHdr)) } } else { if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+64) != uint32(0) { - _checkAppendMsg(tls, bp, __ccgo_ts+4869, 0) + _checkAppendMsg(tls, bp, __ccgo_ts+4933, 0) } } } @@ -58408,14 +58715,15 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin if !(int32(i) < nRoot && (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr != 0) { break } - if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) == uint32(0) { - goto _2 - } - if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { - _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnRow = 0 + if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) != 0 { + if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { + _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + } + (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fv0 = *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) + _checkTreePage(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), bp+192, libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)< nRec || iHdr >= *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84303)) + iHdr = uint32(uint8(v1)) + if *(*Tu32)(unsafe.Pointer(bp + 4)) > uint32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84745)) } - iField = *(*int32)(unsafe.Pointer(bp + 4)) + iField = int64(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 for { if !(i <= iCol) { @@ -61590,19 +61934,19 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } else { v3 = int32(_sqlite3GetVarint32(tls, a+uintptr(iHdr), bp)) } - iHdr += int32(uint8(v3)) - if iHdr > *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84309)) + iHdr += uint32(uint8(v3)) + if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84751)) } - szField = int32(_sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp)))) - iField += szField + szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) + iField += int64(szField) goto _2 _2: ; i++ } - if iField > nRec { - return _sqlite3CorruptError(tls, int32(84315)) + if iField > int64(nRec) { + return _sqlite3CorruptError(tls, int32(84757)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -61612,7 +61956,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC return int32(SQLITE_NOMEM) } } - _sqlite3VdbeSerialGet(tls, a+uintptr(iField-szField), *(*Tu32)(unsafe.Pointer(bp)), pMem) + _sqlite3VdbeSerialGet(tls, a+uintptr(iField-int64(szField)), *(*Tu32)(unsafe.Pointer(bp)), pMem) (*TMem)(unsafe.Pointer(pMem)).Fenc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc return SQLITE_OK } @@ -62048,6 +62392,7 @@ func _sqlite3VdbeMultiLoad(tls *libc.TLS, p uintptr, iDest int32, zTypes uintptr i++ } _sqlite3VdbeAddOp2(tls, p, int32(OP_ResultRow), iDest, i) + goto skip_op_resultrow skip_op_resultrow: ; _ = ap @@ -62426,6 +62771,11 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { _ = libc.Int32FromInt32(0) /* True because of tag-20230419-1 */ (*TOp)(unsafe.Pointer(pOp)).Fp2 = *(*int32)(unsafe.Pointer(aLabel + uintptr(^(*TOp)(unsafe.Pointer(pOp)).Fp2)*4)) } + /* OPFLG_JUMP opcodes never have P2==0, though OPFLG_JUMP0 opcodes + ** might */ + _ = libc.Int32FromInt32(0) + /* Jumps never go off the end of the bytecode array */ + _ = libc.Int32FromInt32(0) break } /* The mkopcodeh.tcl script has so arranged things that the only @@ -62436,6 +62786,7 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { _ = libc.Int32FromInt32(0) pOp -= 20 } + goto resolve_p2_values_loop_exit resolve_p2_values_loop_exit: ; if aLabel != 0 { @@ -62976,7 +63327,7 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { case -int32(8): pKeyInfo = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5081, libc.VaList(bp+32, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5145, libc.VaList(bp+32, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) j = 0 for { if !(j < int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)) { @@ -62986,68 +63337,68 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { if pColl != 0 { v2 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } zColl = v2 - if libc.Xstrcmp(tls, zColl, __ccgo_ts+5086) == 0 { - zColl = __ccgo_ts + 5093 + if libc.Xstrcmp(tls, zColl, __ccgo_ts+5150) == 0 { + zColl = __ccgo_ts + 5157 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_DESC) != 0 { - v3 = __ccgo_ts + 5074 + v3 = __ccgo_ts + 5138 } else { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_BIGNULL) != 0 { - v4 = __ccgo_ts + 5095 + v4 = __ccgo_ts + 5159 } else { - v4 = __ccgo_ts + 1648 + v4 = __ccgo_ts + 1662 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5098, libc.VaList(bp+32, v3, v4, zColl)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5162, libc.VaList(bp+32, v3, v4, zColl)) goto _1 _1: ; j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5170, int32(1)) case -int32(2): pColl1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5122, libc.VaList(bp+32, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5186, libc.VaList(bp+32, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) case -int32(7): pDef = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5131, libc.VaList(bp+32, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5195, libc.VaList(bp+32, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) case -int32(15): pDef1 = (*Tsqlite3_context)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpFunc - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5131, libc.VaList(bp+32, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5195, libc.VaList(bp+32, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) case -int32(13): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1404, libc.VaList(bp+32, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1423, libc.VaList(bp+32, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(3): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5138, libc.VaList(bp+32, *(*int32)(unsafe.Pointer(pOp + 16)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5202, libc.VaList(bp+32, *(*int32)(unsafe.Pointer(pOp + 16)))) case -int32(12): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1371, libc.VaList(bp+32, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1390, libc.VaList(bp+32, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(10): pMem = *(*uintptr)(unsafe.Pointer(pOp + 16)) if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Str) != 0 { zP4 = (*TMem)(unsafe.Pointer(pMem)).Fz } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1404, libc.VaList(bp+32, *(*Ti64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1423, libc.VaList(bp+32, *(*Ti64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1371, libc.VaList(bp+32, *(*float64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1390, libc.VaList(bp+32, *(*float64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Null) != 0 { - zP4 = __ccgo_ts + 1649 + zP4 = __ccgo_ts + 1663 } else { _ = libc.Int32FromInt32(0) - zP4 = __ccgo_ts + 5141 + zP4 = __ccgo_ts + 5205 } } } } case -int32(11): pVtab = (*TVTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5148, libc.VaList(bp+32, pVtab)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5212, libc.VaList(bp+32, pVtab)) case -int32(14): ai = *(*uintptr)(unsafe.Pointer(pOp + 16)) n = *(*Tu32)(unsafe.Pointer(ai)) /* The first element of an INTARRAY is always the @@ -63062,15 +63413,15 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } else { v6 = int32(',') } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5156, libc.VaList(bp+32, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5220, libc.VaList(bp+32, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) goto _5 _5: ; i++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5161, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5225, int32(1)) case -int32(4): - zP4 = __ccgo_ts + 5163 + zP4 = __ccgo_ts + 5227 case -int32(5): zP4 = (*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FzName default: @@ -63086,10 +63437,10 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } var _encnames = [4]uintptr{ - 0: __ccgo_ts + 5108, - 1: __ccgo_ts + 5110, - 2: __ccgo_ts + 5112, - 3: __ccgo_ts + 5117, + 0: __ccgo_ts + 5172, + 1: __ccgo_ts + 5174, + 2: __ccgo_ts + 5176, + 3: __ccgo_ts + 5181, } // C documentation @@ -64081,7 +64432,7 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { retryCount = 0 /* Select a super-journal file name */ nMainFile = _sqlite3Strlen30(tls, zMainFile) - zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5171, libc.VaList(bp+24, 0, zMainFile, 0)) + zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5235, libc.VaList(bp+24, 0, zMainFile, 0)) if zSuper == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -64089,18 +64440,18 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { for cond := true; cond; cond = rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 4)) != 0 { if retryCount != 0 { if retryCount > int32(100) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5183, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5247, libc.VaList(bp+24, zSuper)) _sqlite3OsDelete(tls, pVfs, zSuper, 0) break } else { if retryCount == int32(1) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5197, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5261, libc.VaList(bp+24, zSuper)) } } } retryCount++ Xsqlite3_randomness(tls, int32(4), bp+8) - Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5212, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 8))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 8))&uint32(0xff))) + Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5276, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 8))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 8))&uint32(0xff))) /* The antipenultimate character of the super-journal name must ** be "9" to avoid name collisions when using 8+3 filenames. */ _ = libc.Int32FromInt32(0) @@ -64337,7 +64688,7 @@ func _sqlite3VdbeCheckFk(tls *libc.TLS, p uintptr, deferred int32) (r int32) { if deferred != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredCons+(*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons > 0 || !(deferred != 0) && (*TVdbe)(unsafe.Pointer(p)).FnFkConstraint > 0 { (*TVdbe)(unsafe.Pointer(p)).Frc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(3)< y { return +libc.Int32FromInt32(1) } - s = float64(i) - if s < r { + if float64(i) < r { v2 = -int32(1) } else { - v2 = libc.BoolInt32(s > r) + v2 = libc.BoolInt32(float64(i) > r) } return v2 } @@ -65683,7 +66033,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89131))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89580))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -65778,7 +66128,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || int32((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89212))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89661))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 20 + uintptr(i)*4)) != 0 { @@ -65814,7 +66164,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = int32((*(*Tu32)(unsafe.Pointer(bp + 48)) - uint32(12)) / uint32(2)) if d1+uint32(nStr) > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89242))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89691))) return 0 /* Corruption */ } else { if int32((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -65870,7 +66220,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += uint32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 48))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89293))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89742))) return 0 /* Corrupt index */ } } @@ -65992,6 +66342,7 @@ func _vdbeRecordCompareString(tls *libc.TLS, nKey1 int32, pKey1 uintptr, pPKey2 _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(bp)) = int32(int8(*(*Tu8)(unsafe.Pointer(aKey1 + 1)))) + goto vrcs_restart vrcs_restart: ; if *(*int32)(unsafe.Pointer(bp)) < int32(12) { @@ -66010,7 +66361,7 @@ vrcs_restart: szHdr = int32(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89456))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89905))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -66163,10 +66514,11 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr return SQLITE_OK /* Jump here if database corruption is detected after m has been ** allocated. Free the m object and return SQLITE_CORRUPT. */ + goto idx_rowid_corruption idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(89614)) + return _sqlite3CorruptError(tls, int32(90063)) } // C documentation @@ -66199,7 +66551,7 @@ func _sqlite3VdbeIdxKeyCompare(tls *libc.TLS, db uintptr, pC uintptr, pUnpacked ** that btreeParseCellPtr() and sqlite3GetVarint32() are implemented */ if nCellKey <= 0 || nCellKey > int64(0x7fffffff) { *(*int32)(unsafe.Pointer(res)) = 0 - return _sqlite3CorruptError(tls, int32(89647)) + return _sqlite3CorruptError(tls, int32(90096)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(nCellKey), bp) @@ -66355,15 +66707,15 @@ func _sqlite3NotPureFunc(tls *libc.TLS, pCtx uintptr) (r int32) { pOp = (*TVdbe)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe)).FaOp + uintptr((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FiOp)*20 if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_PureFunc) { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_IsCheck) != 0 { - zContext = __ccgo_ts + 5255 + zContext = __ccgo_ts + 5319 } else { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_GenCol) != 0 { - zContext = __ccgo_ts + 5274 + zContext = __ccgo_ts + 5338 } else { - zContext = __ccgo_ts + 5293 + zContext = __ccgo_ts + 5357 } } - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5302, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5366, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) return 0 @@ -66542,7 +66894,7 @@ func Xsqlite3_expired(tls *libc.TLS, pStmt uintptr) (r int32) { // */ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { if (*TVdbe)(unsafe.Pointer(p)).Fdb == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5338, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5402, 0) return int32(1) } else { return 0 @@ -66552,7 +66904,7 @@ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { func _vdbeSafetyNotNull(tls *libc.TLS, p uintptr) (r int32) { if p == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5383, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5447, 0) return int32(1) } else { return _vdbeSafety(tls, p) @@ -66614,7 +66966,7 @@ func Xsqlite3_finalize(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt db = (*TVdbe)(unsafe.Pointer(v)).Fdb if _vdbeSafety(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90035)) + return _sqlite3MisuseError(tls, int32(90484)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -67145,7 +67497,7 @@ func Xsqlite3_result_error_code(tls *libc.TLS, pCtx uintptr, errCode int32) { func Xsqlite3_result_error_toobig(tls *libc.TLS, pCtx uintptr) { _ = libc.Int32FromInt32(0) (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = int32(SQLITE_TOOBIG) - _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5423, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) + _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5487, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) } // C documentation @@ -67227,6 +67579,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) db = (*TVdbe)(unsafe.Pointer(p)).Fdb if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_RUN_STATE) { + goto restart_step restart_step: ; if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) == int32(VDBE_READY_STATE) { @@ -67330,6 +67683,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { rc = (*TVdbe)(unsafe.Pointer(p)).Frc } } + goto end_of_step end_of_step: ; /* There are only a limited number of result codes allowed from the @@ -67354,7 +67708,7 @@ func Xsqlite3_step(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt /* the prepared statement */ cnt = 0 /* The database connection */ if _vdbeSafetyNotNull(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90829)) + return _sqlite3MisuseError(tls, int32(91278)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -67488,7 +67842,7 @@ func _valueFromValueList(tls *libc.TLS, pVal uintptr, ppOut uintptr, bNext int32 _, _, _, _, _, _, _ = iOff, pOut, pRhs, rc, sz, zBuf, v1 *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) if pVal == uintptr(0) { - return _sqlite3MisuseError(tls, int32(90950)) + return _sqlite3MisuseError(tls, int32(91399)) } if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -67719,6 +68073,7 @@ func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, (*TAuxData)(unsafe.Pointer(pAuxData)).FpAux = pAux (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = xDelete return + goto failed failed: ; if xDelete != 0 { @@ -67960,18 +68315,18 @@ func Xsqlite3_column_type(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { // ** Column names appropriate for EXPLAIN or EXPLAIN QUERY PLAN. // */ var _azExplainColNames8 = [12]uintptr{ - 0: __ccgo_ts + 5446, - 1: __ccgo_ts + 5451, - 2: __ccgo_ts + 5458, - 3: __ccgo_ts + 5461, - 4: __ccgo_ts + 5464, - 5: __ccgo_ts + 5467, - 6: __ccgo_ts + 5470, - 7: __ccgo_ts + 5473, - 8: __ccgo_ts + 5481, - 9: __ccgo_ts + 5484, - 10: __ccgo_ts + 5491, - 11: __ccgo_ts + 5499, + 0: __ccgo_ts + 5510, + 1: __ccgo_ts + 5515, + 2: __ccgo_ts + 5522, + 3: __ccgo_ts + 5525, + 4: __ccgo_ts + 5528, + 5: __ccgo_ts + 5531, + 6: __ccgo_ts + 5534, + 7: __ccgo_ts + 5537, + 8: __ccgo_ts + 5545, + 9: __ccgo_ts + 5548, + 10: __ccgo_ts + 5555, + 11: __ccgo_ts + 5563, } var _azExplainColNames16data = [60]Tu16{ 0: uint16('a'), @@ -68107,6 +68462,7 @@ func _columnName(tls *libc.TLS, pStmt uintptr, N int32, useUtf16 int32, useType ret = uintptr(0) } } + goto columnName_end columnName_end: ; Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -68216,14 +68572,14 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { var v2 bool _, _, _ = pVar, v1, v2 if _vdbeSafetyNotNull(tls, p) != 0 { - return _sqlite3MisuseError(tls, int32(91554)) + return _sqlite3MisuseError(tls, int32(92003)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(91558))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(92007))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5506, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(91562)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5570, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) + return _sqlite3MisuseError(tls, int32(92011)) } if i >= uint32((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -68797,7 +69153,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp /* Test that this call is being made from within an SQLITE_DELETE or ** SQLITE_UPDATE pre-update callback, and that iIdx is within range. */ if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_INSERT) { - rc = _sqlite3MisuseError(tls, int32(92098)) + rc = _sqlite3MisuseError(tls, int32(92547)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -68844,6 +69200,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } } + goto preupdate_old_out preupdate_old_out: ; _sqlite3Error(tls, db, rc) @@ -68927,7 +69284,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp rc = SQLITE_OK p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(92221)) + rc = _sqlite3MisuseError(tls, int32(92670)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -68995,6 +69352,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } *(*uintptr)(unsafe.Pointer(ppValue)) = pMem + goto preupdate_new_out preupdate_new_out: ; _sqlite3Error(tls, db, rc) @@ -69103,7 +69461,7 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr break } } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5546, int32(3)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5610, int32(3)) _ = libc.Int32FromInt32(0) Xsqlite3_str_append(tls, bp+8, zStart, int32(zRawSql)-int32(zStart)) } @@ -69142,13 +69500,13 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr _ = libc.Int32FromInt32(0) pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(*(*int32)(unsafe.Pointer(bp))-int32(1))*40 if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Null) != 0 { - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1649, int32(4)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1663, int32(4)) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1404, libc.VaList(bp+80, *(*Ti64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1423, libc.VaList(bp+80, *(*Ti64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5067, libc.VaList(bp+80, *(*float64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5131, libc.VaList(bp+80, *(*float64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Str) != 0 { /* Number of bytes of the string text to include in output */ enc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc @@ -69163,29 +69521,29 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr pVar = bp + 32 } nOut = (*TMem)(unsafe.Pointer(pVar)).Fn - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5550, libc.VaList(bp+80, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5614, libc.VaList(bp+80, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) if int32(enc) != int32(SQLITE_UTF8) { _sqlite3VdbeMemRelease(tls, bp+32) } } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Zero) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5557, libc.VaList(bp+80, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5621, libc.VaList(bp+80, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) } else { /* Number of bytes of the blob to include in output */ _ = libc.Int32FromInt32(0) - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5570, int32(2)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5634, int32(2)) nOut1 = (*TMem)(unsafe.Pointer(pVar)).Fn i = 0 for { if !(i < nOut1) { break } - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5573, libc.VaList(bp+80, int32(*(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5637, libc.VaList(bp+80, int32(*(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) goto _3 _3: ; i++ } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5578, int32(1)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5642, int32(1)) } } } @@ -69800,7 +70158,7 @@ var _azTypes = [5]uintptr{ 1: __ccgo_ts + 1144, 2: __ccgo_ts + 1149, 3: __ccgo_ts + 1127, - 4: __ccgo_ts + 1649, + 4: __ccgo_ts + 1663, } // C documentation @@ -69814,7 +70172,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { defer tls.Free(704) var aCol, aMem, aOffset, aOp, aPermute, aRoot, apArg, apArg1, db, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pnErr, t1, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v240, v241, v242, v250, v251, v252, v253, v255, v263, v278, v279, v286, v288, v297, v298, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 uintptr var affinity int8 - var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 + var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, savedAnalysisLimit, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 var colCacheCtr, iAddr, iMap, iPrior, idx, len11, n3, p22, p23, serialType, serial_type, v213, v214, v216, v221, v222 Tu32 var encoding, isWriteLock, mTrace, op, p5, resetSchemaOnFault, vtabOnConflict, v225 Tu8 var flags1, flags11, flags2, flags3, flags31, newType, nullFlag, type1, type2, typeMask, v190 Tu16 @@ -69871,7 +70229,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { var _ /* z at bp+496 */ uintptr var _ /* zErr at bp+460 */ uintptr var _ /* zErr at bp+576 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, savedAnalysisLimit, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 aOp = (*TVdbe)(unsafe.Pointer(p)).FaOp /* Copy of p->aOp */ pOp = aOp /* Current operation */ rc = SQLITE_OK /* Value to return */ @@ -70147,7 +70505,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto _109 case int32(OP_SeekEnd): goto _110 - case int32(OP_IfSmaller): + case int32(OP_IfSizeBetween): goto _111 case int32(OP_Sort): goto _112 @@ -70349,6 +70707,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { */ _2: ; /* jump */ + goto jump_to_p2_and_check_for_interrupt jump_to_p2_and_check_for_interrupt: ; pOp = aOp + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp2-int32(1))*20 @@ -70362,6 +70721,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** way for performance, to avoid having to run the interrupt and progress ** checks on every opcode. This helps sqlite3_step() to run about 1.5% ** faster according to "valgrind --tool=cachegrind" */ + goto check_for_interrupt check_for_interrupt: ; if libc.AtomicLoadNInt32(db+304, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0 { @@ -70442,7 +70802,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: EndCoroutine */ _5: - ; /* jump */ + ; /* jump0 */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -70455,6 +70815,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* Most jump operations do a goto to this spot in order to update ** the pOp pointer. */ + goto jump_to_p2 jump_to_p2: ; _ = libc.Int32FromInt32(0) /* There are never any jumps to instruction 0 */ @@ -70465,7 +70826,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** ** The instruction at the address in register P1 is a Yield. ** Jump to the P2 parameter of that Yield. - ** After the jump, register P1 becomes undefined. + ** After the jump, the value register P1 is left with a value + ** such that subsequent OP_Yields go back to the this same + ** OP_EndCoroutine instruction. ** ** See also: InitCoroutine */ @@ -70477,8 +70840,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pCaller = aOp + uintptr(*(*Ti64)(unsafe.Pointer(pIn1)))*20 _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) + *(*Ti64)(unsafe.Pointer(pIn1)) = int64((int32(pOp)-int32((*TVdbe)(unsafe.Pointer(p)).FaOp))/20 - int32(1)) pOp = aOp + uintptr((*TVdbeOp)(unsafe.Pointer(pCaller)).Fp2-int32(1))*20 - (*TMem)(unsafe.Pointer(pIn1)).Fflags = uint16(MEM_Undefined) goto _187 /* Opcode: Yield P1 P2 * * * ** @@ -70577,15 +70940,15 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) if (*TVdbe)(unsafe.Pointer(p)).Frc != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+5614, libc.VaList(bp+672, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) + _sqlite3VdbeError(tls, p, __ccgo_ts+5678, libc.VaList(bp+672, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) if *(*uintptr)(unsafe.Pointer(pOp + 16)) != 0 { - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5635, libc.VaList(bp+672, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5699, libc.VaList(bp+672, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } } else { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+672, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+672, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } pcx = (int32(pOp) - int32(aOp)) / 20 - Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5642, libc.VaList(bp+672, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) + Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5706, libc.VaList(bp+672, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) } rc = _sqlite3VdbeHalt(tls, p) _ = libc.Int32FromInt32(0) @@ -70790,18 +71153,14 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } (*TMem)(unsafe.Pointer(pOut)).Fenc = encoding goto _187 - /* Opcode: Variable P1 P2 * P4 * - ** Synopsis: r[P2]=parameter(P1,P4) + /* Opcode: Variable P1 P2 * * * + ** Synopsis: r[P2]=parameter(P1) ** ** Transfer the values of bound parameter P1 into register P2 - ** - ** If the parameter is named, then its name appears in P4. - ** The P4 value is used by sqlite3_bind_parameter_name(). */ _19: ; /* Value being transferred */ _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1-int32(1))*40 if _sqlite3VdbeMemTooBig(tls, pVar) != 0 { goto too_big @@ -71103,6 +71462,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(int32(type1)&int32(type2)&int32(MEM_Int) != 0) { goto _200 } + goto int_math int_math: ; iA = *(*Ti64)(unsafe.Pointer(pIn1)) @@ -71155,6 +71515,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if int32(type1)&int32(type2)&int32(MEM_Int) != 0 { goto int_math } + goto fp_math fp_math: ; rA = _sqlite3VdbeRealValue(tls, pIn1) @@ -71194,6 +71555,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _201: ; goto _187 + goto arithmetic_result_is_null arithmetic_result_is_null: ; _sqlite3VdbeMemSetNull(tls, pOut) @@ -71335,7 +71697,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** raise an SQLITE_MISMATCH exception. */ _38: - ; /* jump, in1 */ + ; /* jump0, in1 */ pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*40 if int32((*TMem)(unsafe.Pointer(pIn1)).Fflags)&int32(MEM_Int) == 0 { _applyAffinity(tls, pIn1, int8(SQLITE_AFF_NUMERIC), encoding) @@ -72106,6 +72468,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) pC3 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*4)) p22 = uint32((*TOp)(unsafe.Pointer(pOp)).Fp2) + goto op_column_restart op_column_restart: ; _ = libc.Int32FromInt32(0) @@ -72245,6 +72608,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { zData = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaRow } /* Fill in pC->aType[i] and aOffset[i] values through the p2-th field. */ + goto op_column_read_header op_column_read_header: ; i1 = int32((*TVdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed) @@ -72387,16 +72751,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } } + goto op_column_out op_column_out: ; goto _187 + goto op_column_corrupt op_column_corrupt: ; if (*(*TOp)(unsafe.Pointer(aOp))).Fp3 > 0 { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*20 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(95863)) + rc = _sqlite3CorruptError(tls, int32(96311)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -72502,9 +72868,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } _ = libc.Int32FromInt32(0) goto _187 + goto vdbe_type_error vdbe_type_error: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5666, libc.VaList(bp+672, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*12 + 4))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*12))).FzCnName)) + _sqlite3VdbeError(tls, p, __ccgo_ts+5730, libc.VaList(bp+672, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*12 + 4))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*12))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(12)< 0 && p12 == int32(SAVEPOINT_RELEASE) { /* It is not possible to release (commit) a savepoint if there are ** active write statements. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5780, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5844, 0) rc = int32(SQLITE_BUSY) } else { /* Determine whether or not this is a transaction savepoint. If so, @@ -73137,7 +73504,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If this instruction implements a COMMIT and other VMs are writing ** return an error indicating that the other VMs must complete first. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5834, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5898, 0) rc = int32(SQLITE_BUSY) goto abort_due_to_error } else { @@ -73167,12 +73534,12 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto vdbe_return } else { if !(desiredAutoCommit != 0) { - v250 = __ccgo_ts + 5889 + v250 = __ccgo_ts + 5953 } else { if iRollback != 0 { - v251 = __ccgo_ts + 5937 + v251 = __ccgo_ts + 6001 } else { - v251 = __ccgo_ts + 5980 + v251 = __ccgo_ts + 6044 } v250 = v251 } @@ -73274,7 +73641,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** SQL statement was prepared. */ _sqlite3DbFree(tls, db, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg) - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6021) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6085) /* If the schema-cookie from the database file matches the cookie ** stored with the in-memory representation of the schema, do ** not reload the schema from the database file. @@ -73544,6 +73911,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** and report database corruption if they were not, but this check has ** since moved into the btree layer. */ (*TVdbeCursor)(unsafe.Pointer(pCur)).FisTable = libc.BoolUint8(int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) != -int32(8)) + goto open_cursor_set_hints open_cursor_set_hints: ; _ = libc.Int32FromInt32(0) @@ -73631,7 +73999,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*40))).Fn = 0 - (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*40))).Fz = __ccgo_ts + 1648 + (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*40))).Fz = __ccgo_ts + 1662 } pCx1 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*4)) if pCx1 != 0 && !(int32(TBool(*(*uint8)(unsafe.Pointer(pCx1 + 8))&0x8>>3)) != 0) && (*TOp)(unsafe.Pointer(pOp)).Fp2 <= int32((*TVdbeCursor)(unsafe.Pointer(pCx1)).FnField) { @@ -73747,7 +74115,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** is the only cursor opcode that works with a pseudo-table. ** ** P3 is the number of fields in the records that will be stored by - ** the pseudo-table. + ** the pseudo-table. If P2 is 0 or negative then the pseudo-cursor + ** will return NULL for every column. */ _83: ; @@ -73869,11 +74238,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: Found, NotFound, SeekGt, SeekGe, SeekLt */ _88: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _87: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _86: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _85: ; /* Only interested in == results */ _ = libc.Int32FromInt32(0) @@ -74036,6 +74405,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 96)) = _sqlite3BtreeEof(tls, *(*uintptr)(unsafe.Pointer(pC5 + 36))) } } + goto seek_not_found seek_not_found: ; _ = libc.Int32FromInt32(0) @@ -74150,6 +74520,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(*(*int32)(unsafe.Pointer(bp + 128)) > 0 && int32((*TOp)(unsafe.Pointer(pOp)).Fp5) == 0) { goto _259 } + goto seekscan_search_fail seekscan_search_fail: ; /* Jump to SeekGE.P2, ending the loop */ @@ -74477,6 +74848,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) iKey1 = uint64(*(*Ti64)(unsafe.Pointer(pIn3))) + goto notExistsWithKey notExistsWithKey: ; pC10 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*4)) @@ -74496,7 +74868,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp + 188)) != 0 { _ = libc.Int32FromInt32(0) if (*TOp)(unsafe.Pointer(pOp)).Fp2 == 0 { - rc = _sqlite3CorruptError(tls, int32(98111)) + rc = _sqlite3CorruptError(tls, int32(98565)) } else { goto jump_to_p2 } @@ -75171,14 +75543,20 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } goto _187 - /* Opcode: IfSmaller P1 P2 P3 * * + /* Opcode: IfSizeBetween P1 P2 P3 P4 * + ** + ** Let N be the approximate number of rows in the table or index + ** with cursor P1 and let X be 10*log2(N) if N is positive or -1 + ** if N is zero. ** - ** Estimate the number of rows in the table P1. Jump to P2 if that - ** estimate is less than approximately 2**(0.1*P3). + ** Jump to P2 if X is in between P3 and P4, inclusive. */ _111: ; _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) pC20 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*4)) _ = libc.Int32FromInt32(0) pCrsr5 = *(*uintptr)(unsafe.Pointer(pC20 + 36)) @@ -75187,12 +75565,14 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { goto abort_due_to_error } - if *(*int32)(unsafe.Pointer(bp + 292)) == 0 { + if *(*int32)(unsafe.Pointer(bp + 292)) != 0 { + sz = int64(-int32(1)) /* -Infinity encoding */ + } else { sz = _sqlite3BtreeRowCountEst(tls, pCrsr5) - if sz >= 0 && int32(_sqlite3LogEst(tls, uint64(sz))) < (*TOp)(unsafe.Pointer(pOp)).Fp3 { - *(*int32)(unsafe.Pointer(bp + 292)) = int32(1) - } + _ = libc.Int32FromInt32(0) + sz = int64(_sqlite3LogEst(tls, uint64(sz))) } + *(*int32)(unsafe.Pointer(bp + 292)) = libc.BoolInt32(sz >= int64((*TOp)(unsafe.Pointer(pOp)).Fp3) && sz <= int64(*(*int32)(unsafe.Pointer(pOp + 16)))) if *(*int32)(unsafe.Pointer(bp + 292)) != 0 { goto jump_to_p2 } @@ -75348,6 +75728,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) rc = _sqlite3BtreeNext(tls, *(*uintptr)(unsafe.Pointer(pC22 + 36)), (*TOp)(unsafe.Pointer(pOp)).Fp3) + goto next_tail next_tail: ; (*TVdbeCursor)(unsafe.Pointer(pC22)).FcacheStatus = uint32(CACHE_STALE) @@ -75498,7 +75879,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } else { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 && !(_sqlite3WritableSchema(tls, db) != 0) { - rc = _sqlite3ReportError(tls, libc.Int32FromInt32(SQLITE_CORRUPT)|libc.Int32FromInt32(3)< int64(0x7fffffff) { - rc = _sqlite3CorruptError(tls, int32(99398)) + rc = _sqlite3CorruptError(tls, int32(99862)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+404, db, uint16(0)) @@ -75844,11 +76225,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } *(*Ti64)(unsafe.Pointer(pOut)) = int64(*(*TPgno)(unsafe.Pointer(bp + 456))) goto _187 - /* Opcode: SqlExec * * * P4 * + /* Opcode: SqlExec P1 P2 * P4 * ** ** Run the SQL statement or statements specified in the P4 string. - ** Disable Auth and Trace callbacks while those statements are running if - ** P1 is true. + ** + ** The P1 parameter is a bitmask of options: + ** + ** 0x0001 Disable Auth and Trace callbacks while the statements + ** in P4 are running. + ** + ** 0x0002 Set db->nAnalysisLimit to P2 while the statements in + ** P4 are running. + ** */ _132: ; @@ -75856,16 +76244,21 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*uintptr)(unsafe.Pointer(bp + 460)) = uintptr(0) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth mTrace = (*Tsqlite3)(unsafe.Pointer(db)).FmTrace - if (*TOp)(unsafe.Pointer(pOp)).Fp1 != 0 { + savedAnalysisLimit = (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0001) != 0 { (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(0) } + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0002) != 0 { + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = (*TOp)(unsafe.Pointer(pOp)).Fp2 + } rc = Xsqlite3_exec(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16)), uintptr(0), uintptr(0), bp+460) (*Tsqlite3)(unsafe.Pointer(db)).FnSqlExec-- (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = mTrace + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = savedAnalysisLimit if *(*uintptr)(unsafe.Pointer(bp + 460)) != 0 || rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+672, *(*uintptr)(unsafe.Pointer(bp + 460)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+672, *(*uintptr)(unsafe.Pointer(bp + 460)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 460))) if rc == int32(SQLITE_NOMEM) { goto no_mem @@ -75898,13 +76291,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*Tu32)(unsafe.Pointer(db + 24)) |= uint32(DBFLAG_SchemaChange) libc.SetBitFieldPtr16Uint32(p+144, libc.Uint32FromInt32(0), 0, 0x3) } else { - zSchema = __ccgo_ts + 6066 + zSchema = __ccgo_ts + 6130 (*(*TInitData)(unsafe.Pointer(bp + 464))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 464))).FiDb = iDb3 (*(*TInitData)(unsafe.Pointer(bp + 464))).FpzErrMsg = p + 120 (*(*TInitData)(unsafe.Pointer(bp + 464))).FmInitFlags = uint32(0) (*(*TInitData)(unsafe.Pointer(bp + 464))).FmxPage = _sqlite3BtreeLastPage(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*16))).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6080, libc.VaList(bp+672, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*16))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6144, libc.VaList(bp+672, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*16))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -75921,7 +76314,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* The OP_ParseSchema opcode with a non-NULL P4 argument should parse ** at least one SQL statement. Any less than that indicates that ** the sqlite_schema table is corrupt. */ - rc = _sqlite3CorruptError(tls, int32(99678)) + rc = _sqlite3CorruptError(tls, int32(100155)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -75988,11 +76381,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* Opcode: IntegrityCk P1 P2 P3 P4 P5 ** ** Do an analysis of the currently open database. Store in - ** register P1 the text of an error message describing any problems. - ** If no problems are found, store a NULL in register P1. + ** register (P1+1) the text of an error message describing any problems. + ** If no problems are found, store a NULL in register (P1+1). ** - ** The register P3 contains one less than the maximum number of allowed errors. - ** At most reg(P3) errors will be reported. + ** The register (P1) contains one less than the maximum number of allowed + ** errors. At most reg(P1) errors will be reported. ** In other words, the analysis stops as soon as reg(P1) errors are ** seen. Reg(P1) is updated with the number of errors remaining. ** @@ -76007,18 +76400,20 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _138: ; /* Register keeping track of errors remaining */ _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) nRoot = (*TOp)(unsafe.Pointer(pOp)).Fp2 aRoot = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*40 _ = libc.Int32FromInt32(0) + pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*40 _ = libc.Int32FromInt32(0) - pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*40 + _ = libc.Int32FromInt32(0) + pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1+int32(1))*40 _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*16))).FpBt, aRoot+1*4, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+492, bp+496) + rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*16))).FpBt, aRoot+1*4, aMem+uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*40, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+492, bp+496) _sqlite3VdbeMemSetNull(tls, pIn1) if *(*int32)(unsafe.Pointer(bp + 492)) == 0 { _ = libc.Int32FromInt32(0) @@ -76132,7 +76527,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** P1 contains the address of the memory cell that contains the first memory ** cell in an array of values used as arguments to the sub-program. P2 ** contains the address to jump to if the sub-program throws an IGNORE - ** exception using the RAISE() function. Register P3 contains the address + ** exception using the RAISE() function. P2 might be zero, if there is + ** no possibility that an IGNORE exception will be raised. + ** Register P3 contains the address ** of a memory cell in this (the parent) VM that is used to allocate the ** memory required by the sub-vdbe at runtime. ** @@ -76174,7 +76571,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } if (*TVdbe)(unsafe.Pointer(p)).FnFrame >= *(*int32)(unsafe.Pointer(db + 116 + 10*4)) { rc = int32(SQLITE_ERROR) - _sqlite3VdbeError(tls, p, __ccgo_ts+6123, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6187, 0) goto abort_due_to_error } /* Register pRt is used to store the memory required to save the state @@ -76558,7 +76955,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* IMP: R-24505-23230 */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+672, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+672, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError } if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FskipFlag != 0 { @@ -76620,7 +77017,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3VdbeMemFinalize(tls, pMem3, *(*uintptr)(unsafe.Pointer(pOp + 16))) } if rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+672, Xsqlite3_value_text(tls, pMem3))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+672, Xsqlite3_value_text(tls, pMem3))) goto abort_due_to_error } _sqlite3VdbeChangeEncoding(tls, pMem3, int32(encoding)) @@ -76705,11 +77102,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeRead > int32(1) { rc = int32(SQLITE_ERROR) if eNew == int32(PAGER_JOURNALMODE_WAL) { - v286 = __ccgo_ts + 6160 + v286 = __ccgo_ts + 6224 } else { - v286 = __ccgo_ts + 6165 + v286 = __ccgo_ts + 6229 } - _sqlite3VdbeError(tls, p, __ccgo_ts+6172, libc.VaList(bp+672, v286)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6236, libc.VaList(bp+672, v286)) goto abort_due_to_error } else { if eOld == int32(PAGER_JOURNALMODE_WAL) { @@ -76877,7 +77274,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { if rc&int32(0xFF) == int32(SQLITE_LOCKED) { z1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - _sqlite3VdbeError(tls, p, __ccgo_ts+6224, libc.VaList(bp+672, z1)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6288, libc.VaList(bp+672, z1)) } goto abort_due_to_error } @@ -77055,7 +77452,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TValueList)(unsafe.Pointer(pRhs)).FpOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*40 pOut = _out2Prerelease(tls, p, pOp) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6253, __ccgo_fp(_sqlite3VdbeValueListFree)) + _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6317, __ccgo_fp(_sqlite3VdbeValueListFree)) goto _187 /* Opcode: VFilter P1 P2 P3 P4 * ** Synopsis: iplan=r[P3] zplan='P4' @@ -77160,7 +77557,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_module)(unsafe.Pointer(pModule4)).FxColumn})))(tls, *(*uintptr)(unsafe.Pointer(pCur5 + 36)), bp+580, (*TOp)(unsafe.Pointer(pOp)).Fp2) _sqlite3VtabImportErrmsg(tls, p, pVtab4) if (*(*Tsqlite3_context)(unsafe.Pointer(bp + 580))).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+672, Xsqlite3_value_text(tls, pDest2))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+672, Xsqlite3_value_text(tls, pDest2))) rc = (*(*Tsqlite3_context)(unsafe.Pointer(bp + 580))).FisError } _sqlite3VdbeChangeEncoding(tls, pDest2, int32(encoding)) @@ -77429,7 +77826,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If the function returned an error, throw an exception */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+672, Xsqlite3_value_text(tls, pOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+672, Xsqlite3_value_text(tls, pOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError } _sqlite3VdbeDeleteAuxData(tls, db, p+220, (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FiOp, (*TOp)(unsafe.Pointer(pOp)).Fp1) @@ -77591,7 +77988,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { Xsqlite3_free(tls, z2) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeExec > int32(1) { - z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6263, libc.VaList(bp+672, zTrace)) + z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6327, libc.VaList(bp+672, zTrace)) (*(*func(*libc.TLS, Tu32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*Tsqlite3)(unsafe.Pointer(db)).Ftrace))})))(tls, uint32(SQLITE_TRACE_STMT), (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg, p, z3) _sqlite3DbFree(tls, db, z3) } else { @@ -77658,22 +78055,23 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If we reach this point, it means that execution is finished with ** an error of some kind. */ + goto abort_due_to_error abort_due_to_error: ; if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)<= nProgressLimit && (*Tsqlite3)(unsafe.Pointer(db)).FxProgress != uintptr(0) { @@ -77709,22 +78108,25 @@ vdbe_return: /* Jump to here if a string or blob larger than SQLITE_MAX_LENGTH ** is encountered. */ + goto too_big too_big: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5423, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5487, 0) rc = int32(SQLITE_TOOBIG) goto abort_due_to_error /* Jump to here if a malloc() fails. */ + goto no_mem no_mem: ; _sqlite3OomFault(tls, db) - _sqlite3VdbeError(tls, p, __ccgo_ts+1618, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+1632, 0) rc = int32(SQLITE_NOMEM) goto abort_due_to_error /* Jump to here if the sqlite3_interrupt() API sets the interrupt ** flag. */ + goto abort_due_to_interrupt abort_due_to_interrupt: ; _ = libc.Int32FromInt32(0) @@ -77734,10 +78136,10 @@ abort_due_to_interrupt: } var _azType = [4]uintptr{ - 0: __ccgo_ts + 5580, - 1: __ccgo_ts + 5589, - 2: __ccgo_ts + 5596, - 3: __ccgo_ts + 5602, + 0: __ccgo_ts + 5644, + 1: __ccgo_ts + 5653, + 2: __ccgo_ts + 5660, + 3: __ccgo_ts + 5666, } var _and_logic = [9]uint8{ @@ -77891,16 +78293,16 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr type1 = v1 if type1 < uint32(12) { if type1 == uint32(0) { - v2 = __ccgo_ts + 1634 + v2 = __ccgo_ts + 1648 } else { if type1 == uint32(7) { - v3 = __ccgo_ts + 6301 + v3 = __ccgo_ts + 6365 } else { - v3 = __ccgo_ts + 6306 + v3 = __ccgo_ts + 6370 } v2 = v3 } - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6314, libc.VaList(bp+8, v2)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6378, libc.VaList(bp+8, v2)) rc = int32(SQLITE_ERROR) Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) @@ -77918,10 +78320,10 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr rc = Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) if rc == SQLITE_OK { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6343, libc.VaList(bp+8, iRow)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6407, libc.VaList(bp+8, iRow)) rc = int32(SQLITE_ERROR) } else { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) } } } @@ -77963,15 +78365,15 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, pTab = _sqlite3LocateTable(tls, bp+4, uint32(0), zTable, zDb) if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+4, __ccgo_ts+6363, libc.VaList(bp+296, zTable)) + _sqlite3ErrorMsg(tls, bp+4, __ccgo_ts+6427, libc.VaList(bp+296, zTable)) } if pTab != 0 && !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+4, __ccgo_ts+6393, libc.VaList(bp+296, zTable)) + _sqlite3ErrorMsg(tls, bp+4, __ccgo_ts+6457, libc.VaList(bp+296, zTable)) } if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+4, __ccgo_ts+6429, libc.VaList(bp+296, zTable)) + _sqlite3ErrorMsg(tls, bp+4, __ccgo_ts+6493, libc.VaList(bp+296, zTable)) } if !(pTab != 0) { if (*(*TParse)(unsafe.Pointer(bp + 4))).FzErrMsg != 0 { @@ -78001,7 +78403,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6450, libc.VaList(bp+296, zColumn)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6514, libc.VaList(bp+296, zColumn)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -78028,7 +78430,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, break } if (*(*TsColMap)(unsafe.Pointer(pFKey + 36 + uintptr(j)*8))).FiFrom == iCol { - zFault = __ccgo_ts + 6471 + zFault = __ccgo_ts + 6535 } goto _3 _3: @@ -78053,7 +78455,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } /* FIXME: Be smarter about indexes that use expressions */ if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == iCol || int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == -int32(2) { - zFault = __ccgo_ts + 6483 + zFault = __ccgo_ts + 6547 } goto _5 _5: @@ -78067,7 +78469,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if zFault != 0 { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6491, libc.VaList(bp+296, zFault)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6555, libc.VaList(bp+296, zFault)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -78130,6 +78532,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } _sqlite3ParseObjectReset(tls, bp+4) } + goto blob_open_out blob_open_out: ; if rc == SQLITE_OK && int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { @@ -78141,7 +78544,7 @@ blob_open_out: _sqlite3DbFree(tls, db, pBlob) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v7 = __ccgo_ts + 3795 + v7 = __ccgo_ts + 3859 } else { v7 = libc.UintptrFromInt32(0) } @@ -78231,7 +78634,7 @@ func _blobReadWrite(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset in _, _, _, _, _ = db, iKey, p, rc, v p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102190)) + return _sqlite3MisuseError(tls, int32(102671)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -78333,7 +78736,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r _, _, _, _ = db, p, rc, v1 p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102290)) + return _sqlite3MisuseError(tls, int32(102771)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -78347,7 +78750,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r rc = _blobSeekToRow(tls, p, iRow, bp) if rc != SQLITE_OK { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v1 = __ccgo_ts + 3795 + v1 = __ccgo_ts + 3859 } else { v1 = libc.UintptrFromInt32(0) } @@ -82564,25 +82967,25 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema _ = zLegacy _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6525, int32(7)) != 0 { + if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6589, int32(7)) != 0 { return 0 } zLegacy = (*TTable)(unsafe.Pointer(pTab)).FzName - if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6533+7) == 0 { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6552+7) == 0 { + if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6597+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6616+7) == 0 { return int32(1) } if pSchema == uintptr(0) { return 0 } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6066+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6130+7) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6571+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6635+7) == 0 { return int32(1) } } else { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6571+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6635+7) == 0 { return int32(1) } } @@ -82618,28 +83021,29 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema // ** If the name cannot be resolved unambiguously, leave an error message // ** in pParse and return WRC_Abort. Return WRC_Prune on success. // */ -func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol uintptr, pNC uintptr, pExpr uintptr) (r int32) { +func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRight uintptr, pNC uintptr, pExpr uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var cnt, cntTab, eNewExprOp, hit, i, iCol, j, nSubquery, op, v5 int32 - var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10 uintptr + var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10 uintptr var hCol, hCol1 Tu8 var v7, v8 uint32 var _ /* bRowid at bp+4 */ int32 var _ /* pFJMatch at bp+0 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10, v5, v7, v8 /* Loop counters */ - cnt = 0 /* Number of matching column names */ - cntTab = 0 /* Number of potential "rowid" matches */ - nSubquery = 0 /* How many levels of subquery */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ - pMatch = uintptr(0) /* The matching pSrcList item */ - pTopNC = pNC /* First namecontext in the list */ - pSchema = uintptr(0) /* Schema of the expression */ - eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ - pTab = uintptr(0) /* A column of pTab */ - *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ - _ = libc.Int32FromInt32(0) /* the name context cannot be NULL. */ - _ = libc.Int32FromInt32(0) /* The Z in X.Y.Z cannot be NULL */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10, v5, v7, v8 /* Loop counters */ + cnt = 0 /* Number of matching column names */ + cntTab = 0 /* Number of potential "rowid" matches */ + nSubquery = 0 /* How many levels of subquery */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ + pMatch = uintptr(0) /* The matching pSrcList item */ + pTopNC = pNC /* First namecontext in the list */ + pSchema = uintptr(0) /* Schema of the expression */ + eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ + pTab = uintptr(0) /* A column of pTab */ + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + zCol = *(*uintptr)(unsafe.Pointer(pRight + 8)) + _ = libc.Int32FromInt32(0) /* the name context cannot be NULL. */ + _ = libc.Int32FromInt32(0) /* The Z in X.Y.Z cannot be NULL */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) /* Initialize the node to no-match */ @@ -82671,7 +83075,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ; i++ } - if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6585, zDb) == 0 { + if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6649, zDb) == 0 { /* This branch is taken when the main database has been renamed ** using SQLITE_DBCONFIG_MAINDBNAME. */ pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema @@ -82773,7 +83177,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TTable)(unsafe.Pointer(pTab)).FpSchema != pSchema { goto _2 } - if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6590) != 0 { + if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6654) != 0 { goto _2 } } @@ -82888,16 +83292,16 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol op = int32((*TParse)(unsafe.Pointer(pParse)).FeTriggerOp) _ = libc.Int32FromInt32(0) if (*TParse)(unsafe.Pointer(pParse)).FbReturning != 0 { - if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0) { + if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0 || _isValidSchemaTableName(tls, zTab, (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab, uintptr(0)) != 0) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = libc.BoolInt32(op != int32(TK_DELETE)) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } } else { - if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6592, zTab) == 0 { + if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6656, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(1) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } else { - if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6596, zTab) == 0 { + if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6660, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = 0 pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } @@ -82906,7 +83310,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UUpsert) != 0 && zTab != uintptr(0) { pUpsert = *(*uintptr)(unsafe.Pointer(pNC + 8)) - if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6600, zTab) == 0 { + if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6664, zTab) == 0 { pTab = (*(*TSrcItem)(unsafe.Pointer((*TUpsert)(unsafe.Pointer(pUpsert)).FpUpsertSrc + 8))).FpTab (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(EXCLUDED_TABLE_NUMBER) } @@ -83028,15 +83432,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol _ = libc.Int32FromInt32(0) pOrig = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(j)*20))).FpExpr if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 && (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6609, libc.VaList(bp+16, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6673, libc.VaList(bp+16, zAs)) return int32(WRC_Abort) } if (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Win)) != uint32(0) && ((*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 || pNC != pTopNC) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6640, libc.VaList(bp+16, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6704, libc.VaList(bp+16, zAs)) return int32(WRC_Abort) } if _sqlite3ExprVectorSize(tls, pOrig) != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6677, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6741, 0) return int32(WRC_Abort) } _resolveAlias(tls, pParse, pEList, j, pExpr, nSubquery) @@ -83090,7 +83494,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** a huge amount of legacy SQL that uses it. So for now, we just ** issue a warning. */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6695, libc.VaList(bp+16, zCol)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6759, libc.VaList(bp+16, zCol)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_STRING) libc.Xmemset(tls, pExpr+44, 0, uint32(8)) return int32(WRC_Prune) @@ -83121,7 +83525,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } _extendFJMatch(tls, pParse, bp, pMatch, (*TExpr)(unsafe.Pointer(pExpr)).FiColumn) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_FUNCTION) - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6730 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6794 *(*uintptr)(unsafe.Pointer(pExpr + 20)) = *(*uintptr)(unsafe.Pointer(bp)) cnt = int32(1) goto lookupname_end @@ -83131,18 +83535,22 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } } if cnt == 0 { - v10 = __ccgo_ts + 6739 + v10 = __ccgo_ts + 6803 } else { - v10 = __ccgo_ts + 6754 + v10 = __ccgo_ts + 6818 } zErr = v10 if zDb != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6776, libc.VaList(bp+16, zErr, zDb, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6840, libc.VaList(bp+16, zErr, zDb, zTab, zCol)) } else { if zTab != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6789, libc.VaList(bp+16, zErr, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6853, libc.VaList(bp+16, zErr, zTab, zCol)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6799, libc.VaList(bp+16, zErr, zCol)) + if cnt == 0 && (*TExpr)(unsafe.Pointer(pRight)).Fflags&uint32(libc.Int32FromInt32(EP_DblQuoted)) != uint32(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6863, libc.VaList(bp+16, zErr, zCol)) + } else { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6924, libc.VaList(bp+16, zErr, zCol)) + } } } _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -83173,10 +83581,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** If a generated column is referenced, set bits for every column ** of the table. */ - if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 && cnt == int32(1) && pMatch != uintptr(0) { - *(*TBitmask)(unsafe.Pointer(pMatch + 52)) |= _sqlite3ExprColUsed(tls, pExpr) + if pMatch != 0 { + if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { + *(*TBitmask)(unsafe.Pointer(pMatch + 52)) |= _sqlite3ExprColUsed(tls, pExpr) + } else { + libc.SetBitFieldPtr16Uint32(pMatch+36+4, libc.Uint32FromInt32(1), 14, 0x4000) + } } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(eNewExprOp) + goto lookupname_end lookupname_end: ; if cnt == int32(1) { @@ -83269,19 +83682,19 @@ func _notValidImpl(tls *libc.TLS, pParse uintptr, pNC uintptr, zMsg uintptr, pEx defer tls.Free(32) var zIn uintptr _ = zIn - zIn = __ccgo_ts + 6806 + zIn = __ccgo_ts + 6931 if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IdxExpr) != 0 { - zIn = __ccgo_ts + 6834 + zIn = __ccgo_ts + 6959 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IsCheck) != 0 { - zIn = __ccgo_ts + 6852 + zIn = __ccgo_ts + 6977 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_GenCol) != 0 { - zIn = __ccgo_ts + 6870 + zIn = __ccgo_ts + 6995 } } } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6888, libc.VaList(bp+8, zMsg, zIn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7013, libc.VaList(bp+8, zMsg, zIn)) if pExpr != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } @@ -83331,8 +83744,8 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { var anRef [8]int32 var auth, i, is_agg, n, nLeft, nRef, nRight, no_such_func, rc, savedAllowFlags, wrong_num_args, v12, v4, v6, v7 int32 var enc Tu8 - var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zColumn, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zColumn, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 + var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 pNC = *(*uintptr)(unsafe.Pointer(pWalker + 24)) _ = libc.Int32FromInt32(0) pParse = (*TNameContext)(unsafe.Pointer(pNC)).FpParse @@ -83457,12 +83870,12 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { zDb = uintptr(0) zTable = uintptr(0) _ = libc.Int32FromInt32(0) - zColumn = *(*uintptr)(unsafe.Pointer(pExpr + 8)) + pRight = pExpr } else { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+6908, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7033, uintptr(0), pExpr) } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_ID) { @@ -83476,14 +83889,13 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { } _ = libc.Int32FromInt32(0) zTable = *(*uintptr)(unsafe.Pointer(pLeft + 8)) - zColumn = *(*uintptr)(unsafe.Pointer(pRight + 8)) _ = libc.Int32FromInt32(0) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameTokenRemap(tls, pParse, pExpr, pRight) _sqlite3RenameTokenRemap(tls, pParse, pExpr+44, pLeft) } } - return _lookupName(tls, pParse, zDb, zTable, zColumn, pNC, pExpr) + return _lookupName(tls, pParse, zDb, zTable, pRight, pNC, pExpr) /* Resolve function names */ fallthrough @@ -83524,7 +83936,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if n == int32(2) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = _exprProbability(tls, (*(*TExprList_item)(unsafe.Pointer(pList + 8 + 1*20))).FpExpr) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6925, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7050, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } } else { @@ -83548,7 +83960,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { auth = _sqlite3AuthCheck(tls, pParse, int32(SQLITE_FUNCTION), uintptr(0), (*TFuncDef)(unsafe.Pointer(pDef)).FzName, uintptr(0)) if auth != SQLITE_OK { if auth == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6989, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7114, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) @@ -83570,7 +83982,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { ** all this. */ _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7025, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7150, uintptr(0), pExpr) } } else { _ = libc.Int32FromInt32(0) /* Must fit in 8 bits */ @@ -83595,29 +84007,29 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if 0 == libc.BoolInt32(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME)) { _ = libc.Int32FromInt32(0) if pDef != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FxValue == uintptr(0) && pWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7053, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7178, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 || is_agg != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 && !(pWin != 0) || is_agg != 0 && pWin != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 { if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 || pWin != 0 { - zType = __ccgo_ts + 7096 + zType = __ccgo_ts + 7221 } else { - zType = __ccgo_ts + 7103 + zType = __ccgo_ts + 7228 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7113, libc.VaList(bp+8, zType, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7238, libc.VaList(bp+8, zType, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ is_agg = 0 } else { if no_such_func != 0 && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7141, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7266, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if wrong_num_args != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7163, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7288, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7207, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7332, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { @@ -83641,7 +84053,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { *(*int32)(unsafe.Pointer(pNC + 24)) &= ^(libc.Int32FromInt32(NC_AllowWin) | v7) } } else { - if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { is_agg = int32(1) } } @@ -83707,21 +84119,23 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { case int32(TK_IN): if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) { nRef = (*TNameContext)(unsafe.Pointer(pNC)).FnRef + _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_SelfRef) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7255, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7380, pExpr, pExpr) } else { _sqlite3WalkSelect(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 20))) } _ = libc.Int32FromInt32(0) if nRef != (*TNameContext)(unsafe.Pointer(pNC)).FnRef { *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 20)) + 4)) |= uint32(SF_Correlated) } *(*int32)(unsafe.Pointer(pNC + 24)) |= int32(NC_Subquery) } case int32(TK_VARIABLE): _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IsCheck)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7266, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7391, pExpr, pExpr) } case int32(TK_IS): fallthrough @@ -83771,7 +84185,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { nRight = _sqlite3ExprVectorSize(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight) } if nLeft != nRight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6677, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6741, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } break @@ -83899,7 +84313,7 @@ func _resolveOrderByTermToExprList(tls *libc.TLS, pParse uintptr, pSelect uintpt func _resolveOutOfRangeError(tls *libc.TLS, pParse uintptr, zType uintptr, i int32, mx int32, pError uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7277, libc.VaList(bp+8, i, zType, mx)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7402, libc.VaList(bp+8, i, zType, mx)) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pError) } @@ -83934,7 +84348,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 116 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7333, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7458, 0) return int32(1) } i = 0 @@ -83973,7 +84387,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } if _sqlite3ExprIsInteger(tls, pE, bp) != 0 { if *(*int32)(unsafe.Pointer(bp)) <= 0 || *(*int32)(unsafe.Pointer(bp)) > (*TExprList)(unsafe.Pointer(pEList)).FnExpr { - _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7367, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) + _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7492, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) return int32(1) } } else { @@ -84046,7 +84460,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r break } if int32(uint32(*(*uint16)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*20 + 8 + 4))&0x4>>2)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7373, libc.VaList(bp+16, i+int32(1))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7498, libc.VaList(bp+16, i+int32(1))) return int32(1) } goto _3 @@ -84080,7 +84494,7 @@ func _sqlite3ResolveOrderGroupBy(tls *libc.TLS, pParse uintptr, pSelect uintptr, return 0 } if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 116 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7434, libc.VaList(bp+8, zType)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7559, libc.VaList(bp+8, zType)) return int32(1) } pEList = (*TSelect)(unsafe.Pointer(pSelect)).FpEList @@ -84332,6 +84746,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } pItem = (*TSelect)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*68 + _ = libc.Int32FromInt32(0) /* Test of tag-20240424-1*/ if (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FselFlags&uint32(SF_Resolved) == uint32(0) { if pOuterNC != 0 { v3 = (*TNameContext)(unsafe.Pointer(pOuterNC)).FnRef @@ -84404,7 +84819,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { (*(*TNameContext)(unsafe.Pointer(bp))).FncFlags |= int32(NC_UEList) if (*TSelect)(unsafe.Pointer(p)).FpHaving != 0 { if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Aggregate) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7465, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7590, 0) return int32(WRC_Abort) } if _sqlite3ResolveExprNames(tls, bp, (*TSelect)(unsafe.Pointer(p)).FpHaving) != 0 { @@ -84471,7 +84886,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** is not detected until much later, and so we need to go ahead and ** resolve those symbols on the incorrect ORDER BY for consistency. */ - if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7367) != 0 { + if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7492) != 0 { return int32(WRC_Abort) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -84482,7 +84897,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** the GROUP BY clause does not contain aggregate functions. */ if pGroupBy != 0 { - if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7504) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { + if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7629) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(WRC_Abort) } i = 0 @@ -84492,7 +84907,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } if (*TExpr)(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(pItem2)).FpExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7510, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7635, 0) return int32(WRC_Abort) } goto _6 @@ -85523,7 +85938,7 @@ func _codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32 return } if nLeft != _sqlite3ExprVectorSize(tls, pRight) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6677, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6741, 0) return } _ = libc.Int32FromInt32(0) @@ -85608,7 +86023,7 @@ func _sqlite3ExprCheckHeight(tls *libc.TLS, pParse uintptr, nHeight int32) (r in rc = SQLITE_OK mxHeight = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 116 + 3*4)) if nHeight > mxHeight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7569, libc.VaList(bp+8, mxHeight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7694, libc.VaList(bp+8, mxHeight)) rc = int32(SQLITE_ERROR) } return rc @@ -85774,11 +86189,12 @@ func _sqlite3ExprSetErrorOffset(tls *libc.TLS, pExpr uintptr, iOfst int32) { // ** appear to be quoted. If the quotes were of the form "..." (double-quotes) // ** then the EP_DblQuoted flag is set on the expression node. // ** -// ** Special case: If op==TK_INTEGER and pToken points to a string that -// ** can be translated into a 32-bit integer, then the token is not -// ** stored in u.zToken. Instead, the integer values is written -// ** into u.iValue and the EP_IntValue flag is set. No extra storage +// ** Special case (tag-20240227-a): If op==TK_INTEGER and pToken points to +// ** a string that can be translated into a 32-bit integer, then the token is +// ** not stored in u.zToken. Instead, the integer values is written +// ** into u.iValue and the EP_IntValue flag is set. No extra storage // ** is allocated to hold the integer text and the dequote flag is ignored. +// ** See also tag-20240227-b. // */ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequote int32) (r uintptr) { bp := tls.Alloc(16) @@ -85792,7 +86208,7 @@ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequ _ = libc.Int32FromInt32(0) if pToken != 0 { if op != int32(TK_INTEGER) || (*TToken)(unsafe.Pointer(pToken)).Fz == uintptr(0) || _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pToken)).Fz, bp) == 0 { - nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) + nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) /* tag-20240227-a */ _ = libc.Int32FromInt32(0) } } @@ -85961,11 +86377,11 @@ func _sqlite3ExprListToValues(tls *libc.TLS, pParse uintptr, nElem int32, pEList } if nExprElem != nElem { if nExprElem > int32(1) { - v2 = __ccgo_ts + 7617 + v2 = __ccgo_ts + 7742 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7619, libc.VaList(bp+8, nExprElem, v2, nElem)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7744, libc.VaList(bp+8, nExprElem, v2, nElem)) break } _ = libc.Int32FromInt32(0) @@ -86015,7 +86431,7 @@ func _sqlite3ExprAnd(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintpt if f&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_InnerON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { _sqlite3ExprDeferredDelete(tls, pParse, pLeft) _sqlite3ExprDeferredDelete(tls, pParse, pRight) - return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1722) + return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1782) } else { return _sqlite3PExpr(tls, pParse, int32(TK_AND), pLeft, pRight) } @@ -86045,7 +86461,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pNew + 36)) = int32((*TToken)(unsafe.Pointer(pToken)).Fz) - int32((*TParse)(unsafe.Pointer(pParse)).FzTail) if pList != 0 && (*TExprList)(unsafe.Pointer(pList)).FnExpr > *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 116 + 6*4)) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7663, libc.VaList(bp+8, pToken)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7788, libc.VaList(bp+8, pToken)) } *(*uintptr)(unsafe.Pointer(pNew + 20)) = pList *(*Tu32)(unsafe.Pointer(pNew + 4)) |= uint32(libc.Int32FromInt32(EP_HasFunc)) @@ -86066,7 +86482,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u func _sqlite3ExprOrderByAggregateError(tls *libc.TLS, pParse uintptr, p uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7697, libc.VaList(bp+8, p)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7822, libc.VaList(bp+8, p)) } // C documentation @@ -86145,7 +86561,7 @@ func _sqlite3ExprFunctionUsable(tls *libc.TLS, pParse uintptr, pExpr uintptr, pD ** SQLITE_DBCONFIG_TRUSTED_SCHEMA is off (meaning ** that the schema is possibly tainted). */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7747, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7872, libc.VaList(bp+8, pExpr)) } } } @@ -86202,7 +86618,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n bOk = libc.BoolInt32(0 == _sqlite3Atoi64(tls, z+1, bp, int32(n-uint32(1)), uint8(SQLITE_UTF8))) } if bOk == 0 || *(*Ti64)(unsafe.Pointer(bp)) < int64(1) || *(*Ti64)(unsafe.Pointer(bp)) > int64(*(*int32)(unsafe.Pointer(db + 116 + 9*4))) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7767, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 116 + 9*4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7892, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 116 + 9*4)))) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) return } @@ -86235,7 +86651,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n } (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = x if int32(x) > *(*int32)(unsafe.Pointer(db + 116 + 9*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7810, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7935, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } } @@ -86246,8 +86662,13 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n // ** Recursively delete an expression tree. // */ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { + var pLeft uintptr + _ = pLeft _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) + goto exprDeleteRestart +exprDeleteRestart: + ; _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -86255,9 +86676,6 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)|libc.Int32FromInt32(EP_Leaf)) != libc.Uint32FromInt32(0)) { /* The Expr.x union is never used at the same time as Expr.pRight */ _ = libc.Int32FromInt32(0) - if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { - _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpLeft) - } if (*TExpr)(unsafe.Pointer(p)).FpRight != 0 { _ = libc.Int32FromInt32(0) _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpRight) @@ -86272,6 +86690,17 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { } } } + if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { + pLeft = (*TExpr)(unsafe.Pointer(p)).FpLeft + if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) && !((*TExpr)(unsafe.Pointer(pLeft)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { + /* Avoid unnecessary recursion on unary operators */ + _sqlite3DbNNFreeNN(tls, db, p) + p = pLeft + goto exprDeleteRestart + } else { + _sqlite3ExprDeleteNN(tls, db, pLeft) + } + } } if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { _sqlite3DbNNFreeNN(tls, db, p) @@ -86318,11 +86747,11 @@ func _sqlite3ClearOnOrUsing(tls *libc.TLS, db uintptr, p uintptr) { // ** // ** The pExpr might be deleted immediately on an OOM error. // ** -// ** The deferred delete is (currently) implemented by adding the -// ** pExpr to the pParse->pConstExpr list with a register number of 0. +// ** Return 0 if the delete was successfully deferred. Return non-zero +// ** if the delete happened immediately because of an OOM. // */ -func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) { - _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr) +func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + return libc.BoolInt32(uintptr(0) == _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr)) } // C documentation @@ -86841,16 +87270,20 @@ func _sqlite3SrcListDup(tls *libc.TLS, db uintptr, p uintptr, flags int32) (r ui (*TSrcItem)(unsafe.Pointer(pNewItem)).FiCursor = (*TSrcItem)(unsafe.Pointer(pOldItem)).FiCursor (*TSrcItem)(unsafe.Pointer(pNewItem)).FaddrFillSub = (*TSrcItem)(unsafe.Pointer(pOldItem)).FaddrFillSub (*TSrcItem)(unsafe.Pointer(pNewItem)).FregReturn = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregReturn + (*TSrcItem)(unsafe.Pointer(pNewItem)).FregResult = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregResult if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 36 + 4))&0x2>>1)) != 0 { *(*uintptr)(unsafe.Pointer(pNewItem + 60)) = _sqlite3DbStrDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 60))) + } else { + if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 36 + 4))&0x4>>2)) != 0 { + *(*uintptr)(unsafe.Pointer(pNewItem + 60)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 60)), flags) + } else { + *(*Tu32)(unsafe.Pointer(pNewItem + 60)) = *(*Tu32)(unsafe.Pointer(pOldItem + 60)) + } } (*TSrcItem)(unsafe.Pointer(pNewItem)).Fu2 = (*TSrcItem)(unsafe.Pointer(pOldItem)).Fu2 if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 36 + 4))&0x100>>8)) != 0 { (*TCteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNewItem + 64)))).FnUse++ } - if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 36 + 4))&0x4>>2)) != 0 { - *(*uintptr)(unsafe.Pointer(pNewItem + 60)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 60)), flags) - } v4 = (*TSrcItem)(unsafe.Pointer(pOldItem)).FpTab (*TSrcItem)(unsafe.Pointer(pNewItem)).FpTab = v4 pTab = v4 @@ -87116,7 +87549,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, n = v2 } if v3 && (*TIdList)(unsafe.Pointer(pColumns)).FnId != v2 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7833, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7958, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) goto vector_append_error } i = 0 @@ -87152,6 +87585,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, ** the RHS and LHS sizes match during code generation. */ (*TExpr)(unsafe.Pointer(pFirst)).FiTable = (*TIdList)(unsafe.Pointer(pColumns)).FnId } + goto vector_append_error vector_append_error: ; _sqlite3ExprUnmapAndDelete(tls, pParse, pExpr) @@ -87260,7 +87694,7 @@ func _sqlite3ExprListCheckLength(tls *libc.TLS, pParse uintptr, pEList uintptr, _ = mx mx = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 116 + 2*4)) if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr > mx { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7863, libc.VaList(bp+8, zObject)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7988, libc.VaList(bp+8, zObject)) } } @@ -87362,10 +87796,10 @@ func _sqlite3SelectWalkFail(tls *libc.TLS, pWalker uintptr, NotUsed uintptr) (r // ** anything else 0 // */ func _sqlite3IsTrueOrFalse(tls *libc.TLS, zIn uintptr) (r Tu32) { - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7886) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8011) == 0 { return uint32(EP_IsTrue) } - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7891) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8016) == 0 { return uint32(EP_IsFalse) } return uint32(0) @@ -87452,6 +87886,52 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { return pExpr } +// C documentation +// +// /* +// ** pExpr is a TK_FUNCTION node. Try to determine whether or not the +// ** function is a constant function. A function is constant if all of +// ** the following are true: +// ** +// ** (1) It is a scalar function (not an aggregate or window function) +// ** (2) It has either the SQLITE_FUNC_CONSTANT or SQLITE_FUNC_SLOCHNG +// ** property. +// ** (3) All of its arguments are constants +// ** +// ** This routine sets pWalker->eCode to 0 if pExpr is not a constant. +// ** It makes no changes to pWalker->eCode if pExpr is constant. In +// ** every case, it returns WRC_Abort. +// ** +// ** Called as a service subroutine from exprNodeIsConstant(). +// */ +func _exprNodeIsConstantFunction(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef, pList, v1 uintptr + var n int32 + var v2 bool + _, _, _, _, _, _ = db, n, pDef, pList, v1, v2 /* The database */ + _ = libc.Int32FromInt32(0) + if v2 = (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)) != uint32(0); !v2 { + v1 = *(*uintptr)(unsafe.Pointer(pExpr + 20)) + pList = v1 + } + if v2 || v1 == uintptr(0) { + n = 0 + } else { + n = (*TExprList)(unsafe.Pointer(pList)).FnExpr + _sqlite3WalkExprList(tls, pWalker, pList) + if int32((*TWalker)(unsafe.Pointer(pWalker)).FeCode) == 0 { + return int32(WRC_Abort) + } + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)|libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG)) == uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) +} + // C documentation // // /* @@ -87481,6 +87961,7 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { // ** malformed schema error. // */ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + _ = libc.Int32FromInt32(0) /* If pWalker->eCode is 2 then any term of the expression that comes from ** the ON or USING clauses of an outer join disqualifies the expression ** from being considered constant. */ @@ -87499,8 +87980,12 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 } return WRC_Continue } else { - (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) - return int32(WRC_Abort) + if (*TWalker)(unsafe.Pointer(pWalker)).FpParse != 0 { + return _exprNodeIsConstantFunction(tls, pWalker, pExpr) + } else { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } } fallthrough case int32(TK_ID): @@ -87527,6 +88012,8 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 case int32(TK_REGISTER): fallthrough case int32(TK_DOT): + fallthrough + case int32(TK_RAISE): (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) return int32(WRC_Abort) case int32(TK_VARIABLE): @@ -87552,14 +88039,14 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 return r } -func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32) { +func _exprIsConst(tls *libc.TLS, pParse uintptr, p uintptr, initFlag int32) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var _ /* w at bp+0 */ TWalker (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(initFlag) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) - *(*int32)(unsafe.Pointer(bp + 24)) = iCur _sqlite3WalkExpr(tls, bp, p) return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } @@ -87573,9 +88060,15 @@ func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32 // ** For the purposes of this function, a double-quoted string (ex: "abc") // ** is considered a variable but a single-quoted string (ex: 'abc') is // ** a constant. +// ** +// ** The pParse parameter may be NULL. But if it is NULL, there is no way +// ** to determine if function calls are constant or not, and hence all +// ** function calls will be considered to be non-constant. If pParse is +// ** not NULL, then a function call might be constant, depending on the +// ** function and on its parameters. // */ -func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(1), 0) +func _sqlite3ExprIsConstant(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(1)) } // C documentation @@ -87593,8 +88086,26 @@ func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { // ** can be added to the pParse->pConstExpr list and evaluated once when // ** the prepared statement starts up. See sqlite3ExprCodeRunJustOnce(). // */ -func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(2), 0) +func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(2)) +} + +// C documentation +// +// /* +// ** This routine examines sub-SELECT statements as an expression is being +// ** walked as part of sqlite3ExprIsTableConstant(). Sub-SELECTs are considered +// ** constant as long as they are uncorrelated - meaning that they do not +// ** contain any terms from outer contexts. +// */ +func _exprSelectWalkTableConstant(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if (*TSelect)(unsafe.Pointer(pSelect)).FselFlags&uint32(SF_Correlated) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) } // C documentation @@ -87604,9 +88115,25 @@ func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { // ** for any single row of the table with cursor iCur. In other words, the // ** expression must not refer to any non-deterministic function nor any // ** table other than iCur. +// ** +// ** Consider uncorrelated subqueries to be constants if the bAllowSubq +// ** parameter is true. // */ -func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) { - return _exprIsConst(tls, p, int32(3), iCur) +func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32, bAllowSubq int32) (r int32) { + bp := tls.Alloc(32) + defer tls.Free(32) + var _ /* w at bp+0 */ TWalker + (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(3) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = uintptr(0) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) + if bAllowSubq != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_exprSelectWalkTableConstant) + } else { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) + } + *(*int32)(unsafe.Pointer(bp + 24)) = iCur + _sqlite3WalkExpr(tls, bp, p) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } // C documentation @@ -87626,7 +88153,10 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** // ** (1) pExpr cannot refer to any table other than pSrc->iCursor. // ** -// ** (2) pExpr cannot use subqueries or non-deterministic functions. +// ** (2a) pExpr cannot use subqueries unless the bAllowSubq parameter is +// ** true and the subquery is non-correlated +// ** +// ** (2b) pExpr cannot use non-deterministic functions. // ** // ** (3) pSrc cannot be part of the left operand for a RIGHT JOIN. // ** (Is there some way to relax this constraint?) @@ -87652,7 +88182,7 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** which leads to incorrect answers. See also restriction (9) // ** on push-down. // */ -func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32) (r int32) { +func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32, bAllowSubq int32) (r int32) { var jj int32 var pSrc uintptr _, _ = jj, pSrc @@ -87690,7 +88220,8 @@ func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList jj++ } } - return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor) /* rules (1), (2) */ + /* Rules (1), (2a), and (2b) handled by the following: */ + return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor, bAllowSubq) } // C documentation @@ -87789,7 +88320,7 @@ func _sqlite3ExprIsConstantOrGroupBy(tls *libc.TLS, pParse uintptr, p uintptr, p // */ func _sqlite3ExprIsConstantOrFunction(tls *libc.TLS, p uintptr, isInit Tu8) (r int32) { _ = libc.Int32FromInt32(0) - return _exprIsConst(tls, p, int32(4)+int32(isInit), 0) + return _exprIsConst(tls, uintptr(0), p, int32(4)+int32(isInit)) } // C documentation @@ -87933,13 +88464,13 @@ func _sqlite3ExprNeedsNoAffinityChange(tls *libc.TLS, p uintptr, aff int8) (r in // ** Return TRUE if the given string is a row-id column name. // */ func _sqlite3IsRowid(tls *libc.TLS, z uintptr) (r int32) { - if _sqlite3StrICmp(tls, z, __ccgo_ts+7897) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8022) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7905) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8030) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7911) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8036) == 0 { return int32(1) } return 0 @@ -87957,9 +88488,9 @@ func _sqlite3RowidAlias(tls *libc.TLS, pTab uintptr) (r uintptr) { var iCol, ii int32 _, _, _ = azOpt, iCol, ii azOpt = [3]uintptr{ - 0: __ccgo_ts + 7897, - 1: __ccgo_ts + 7905, - 2: __ccgo_ts + 7911, + 0: __ccgo_ts + 8022, + 1: __ccgo_ts + 8030, + 2: __ccgo_ts + 8036, } _ = libc.Int32FromInt32(0) ii = 0 @@ -88083,14 +88614,14 @@ func _sqlite3SetHasNullFlag(tls *libc.TLS, v uintptr, iCur int32, regHasNull int // ** The argument is an IN operator with a list (not a subquery) on the // ** right-hand side. Return TRUE if that list is constant. // */ -func _sqlite3InRhsIsConstant(tls *libc.TLS, pIn uintptr) (r int32) { +func _sqlite3InRhsIsConstant(tls *libc.TLS, pParse uintptr, pIn uintptr) (r int32) { var pLHS uintptr var res int32 _, _ = pLHS, res _ = libc.Int32FromInt32(0) pLHS = (*TExpr)(unsafe.Pointer(pIn)).FpLeft (*TExpr)(unsafe.Pointer(pIn)).FpLeft = uintptr(0) - res = _sqlite3ExprIsConstant(tls, pIn) + res = _sqlite3ExprIsConstant(tls, pParse, pIn) (*TExpr)(unsafe.Pointer(pIn)).FpLeft = pLHS return res } @@ -88248,7 +88779,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 iAddr = _sqlite3VdbeAddOp0(tls, v, int32(OP_Once)) _sqlite3OpenTable(tls, pParse, iTab, iDb, pTab, int32(OP_OpenRead)) eType = int32(IN_INDEX_ROWID) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+7915, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+8040, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) _sqlite3VdbeJumpHere(tls, v, iAddr) } else { /* Iterator variable */ affinity_ok = int32(1) @@ -88351,7 +88882,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 if colUsed == libc.Uint64FromInt32(1)<0 so that the new limit is either 1 or 0 */ db = (*TParse)(unsafe.Pointer(pParse)).Fdb - pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1722) + pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1782) if pLimit != 0 { (*TExpr)(unsafe.Pointer(pLimit)).FaffExpr = int8(SQLITE_AFF_NUMERIC) pLimit = _sqlite3PExpr(tls, pParse, int32(TK_NE), _sqlite3ExprDup(tls, db, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft, 0), pLimit) @@ -88862,7 +89393,7 @@ func _sqlite3CodeSubselect(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int3 (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft = pLimit } else { /* If there is no pre-existing limit add a limit of 1 */ - pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8130) + pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8255) (*TSelect)(unsafe.Pointer(pSel)).FpLimit = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), pLimit, uintptr(0)) } (*TSelect)(unsafe.Pointer(pSel)).FiLimit = 0 @@ -89192,11 +89723,13 @@ func _sqlite3ExprCodeIN(tls *libc.TLS, pParse uintptr, pExpr uintptr, destIfFals } /* Jumps here in order to return true. */ _sqlite3VdbeJumpHere(tls, v, addrTruthOp) + goto sqlite3ExprCodeIN_finished sqlite3ExprCodeIN_finished: ; if rLhs != rLhsOrig { _sqlite3ReleaseTempReg(tls, pParse, rLhs) } + goto sqlite3ExprCodeIN_oom_error sqlite3ExprCodeIN_oom_error: ; _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiMap) @@ -89256,13 +89789,13 @@ func _codeInteger(tls *libc.TLS, pParse uintptr, pExpr uintptr, negFlag int32, i _ = libc.Int32FromInt32(0) c = _sqlite3DecOrHexToI64(tls, z, bp) if c == int32(3) && !(negFlag != 0) || c == int32(2) || negFlag != 0 && *(*Ti64)(unsafe.Pointer(bp)) == int64(-libc.Int32FromInt32(1))-(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<= (*TAggInfo)(unsafe.Pointer(pInfo)).FnFunc { _ = libc.Int32FromInt32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8223, libc.VaList(bp+120, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8348, libc.VaList(bp+120, pExpr)) } else { _ = libc.Int32FromInt32(0) return (*TAggInfo)(unsafe.Pointer(pInfo)).FiFirstReg + (*TAggInfo)(unsafe.Pointer(pInfo)).FnColumn + int32((*TExpr)(unsafe.Pointer(pExpr)).FiAgg) @@ -90062,7 +90590,7 @@ expr_code_doover: if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { return (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fy)))).FregResult } - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { /* SQL functions can be expensive. So try to avoid running them ** multiple times if we know they always give the same result */ return _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) @@ -90080,7 +90608,7 @@ expr_code_doover: zId = *(*uintptr)(unsafe.Pointer(pExpr + 8)) pDef = _sqlite3FindFunction(tls, db, zId, nFarg, enc, uint8(0)) if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8250, libc.VaList(bp+120, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8375, libc.VaList(bp+120, pExpr)) break } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_INLINE) != uint32(0) && pFarg != uintptr(0) { @@ -90097,7 +90625,7 @@ expr_code_doover: if !(i < nFarg) { break } - if i < int32(32) && _sqlite3ExprIsConstant(tls, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*20))).FpExpr) != 0 { + if i < int32(32) && _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*20))).FpExpr) != 0 { constMask |= libc.Uint32FromInt32(1) << i } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_NEEDCOLL) != uint32(0) && !(pColl != 0) { @@ -90194,7 +90722,7 @@ expr_code_doover: _ = libc.Int32FromInt32(0) n1 = _sqlite3ExprVectorSize(tls, pLeft2) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != n1 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7833, libc.VaList(bp+120, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7958, libc.VaList(bp+120, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) } return (*TExpr)(unsafe.Pointer(pLeft2)).FiTable + int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) case int32(TK_IN): @@ -90226,8 +90754,9 @@ expr_code_doover: if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Collate)) != libc.Uint32FromInt32(0)) { /* A TK_COLLATE Expr node without the EP_Collate tag is a so-called ** "SOFT-COLLATE" that is added to constraints that are pushed down - ** from outer queries into sub-queries by the push-down optimization. - ** Clear subtypes as subtypes may not cross a subquery boundary. + ** from outer queries into sub-queries by the WHERE-clause push-down + ** optimization. Clear subtypes as subtypes may not cross a subquery + ** boundary. */ _ = libc.Int32FromInt32(0) _sqlite3ExprCode(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, target) @@ -90262,7 +90791,7 @@ expr_code_doover: _sqlite3VdbeAddOp1(tls, v, int32(OP_RealAffinity), target) } case int32(TK_VECTOR): - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6677, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6741, 0) break /* TK_IF_NULL_ROW Expr nodes are inserted ahead of expressions ** that derive from the right-hand table of a LEFT JOIN. The @@ -90384,7 +90913,7 @@ expr_code_doover: case int32(TK_RAISE): _ = libc.Int32FromInt32(0) if !((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != 0) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8274, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8399, 0) return 0 } if int32((*TExpr)(unsafe.Pointer(pExpr)).FaffExpr) == int32(OE_Abort) { @@ -90508,7 +91037,7 @@ func _sqlite3ExprCodeTemp(tls *libc.TLS, pParse uintptr, pExpr uintptr, pReg uin var r1, r2 int32 _, _ = r1, r2 pExpr = _sqlite3ExprSkipCollateAndLikely(tls, pExpr) - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { *(*int32)(unsafe.Pointer(pReg)) = 0 r2 = _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) } else { @@ -90581,7 +91110,7 @@ func _sqlite3ExprCodeCopy(tls *libc.TLS, pParse uintptr, pExpr uintptr, target i // ** might choose to code the expression at initialization time. // */ func _sqlite3ExprCodeFactorable(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) { - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target) } else { _sqlite3ExprCodeCopy(tls, pParse, pExpr, target) @@ -90652,7 +91181,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ _sqlite3VdbeAddOp2(tls, v, int32(copyOp), j+srcReg-int32(1), target+i) } } else { - if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target+i) } else { inReg = _sqlite3ExprCodeTarget(tls, pParse, pExpr, target+i) @@ -90927,6 +91456,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsTrue)) == uint32(EP_IsTrue) { @@ -91148,6 +91678,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) { @@ -91995,18 +92526,16 @@ func _agginfoPersistExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnColumn && (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*16))).FpCExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*16))).FpCExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } else { _ = libc.Int32FromInt32(0) if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnFunc && (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*24))).FpFExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*24))).FpFExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } @@ -92128,6 +92657,7 @@ func _findOrCreateAggInfoColumn(tls *libc.TLS, pParse uintptr, pAggInfo uintptr, *(*Tu16)(unsafe.Pointer(v4))++ (*TAggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = int16(v3) } + goto fix_up_expr fix_up_expr: ; _ = libc.Int32FromInt32(0) @@ -92575,8 +93105,8 @@ func _sqlite3FirstAvailableRegister(tls *libc.TLS, pParse uintptr, iMin int32) ( func _isAlterableTable(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) - if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6525, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8324, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6589, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8449, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -92595,9 +93125,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, bp := tls.Alloc(48) defer tls.Free(48) (*TParse)(unsafe.Pointer(pParse)).FcolNamesSet = uint8(1) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8352, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8477, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8527, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8652, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) } } @@ -92613,9 +93143,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, func _renameFixQuotes(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8701, libc.VaList(bp+8, zDb, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8826, libc.VaList(bp+8, zDb, zDb)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8848, 0) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8973, 0) } } @@ -92673,7 +93203,7 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName ** in database iDb. If so, this is an error. */ if _sqlite3FindTable(tls, db, zName, zDb) != 0 || _sqlite3FindIndex(tls, db, zName, zDb) != 0 || _sqlite3IsShadowTableOf(tls, db, pTab, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8999, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9124, libc.VaList(bp+8, zName)) goto exit_rename_table } /* Make sure it is not a system table being altered, or a reserved name @@ -92682,11 +93212,11 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { goto exit_rename_table } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9058, zName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9183, zName) { goto exit_rename_table } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9064, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9189, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_rename_table } /* Invoke the authorization callback. */ @@ -92716,21 +93246,21 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName nTabName = _sqlite3Utf8CharLen(tls, zTabName, -int32(1)) /* Rewrite all CREATE TABLE, INDEX, TRIGGER or VIEW statements in ** the schema to use the new table name. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9091, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9216, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) /* Update the tbl_name and name columns of the sqlite_schema table ** as required. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9275, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9400, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) /* If the sqlite_sequence table exists in this database, then update ** it with the new table name. */ - if _sqlite3FindTable(tls, db, __ccgo_ts+9580, zDb) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9596, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if _sqlite3FindTable(tls, db, __ccgo_ts+9705, zDb) != 0 { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9721, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* If the table being renamed is not itself part of the temp database, ** edit view and trigger definitions within the temp database ** as required. */ if iDb != int32(1) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9654, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9779, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) } /* If this is a virtual table, invoke the xRename() function if ** one is defined. The xRename() callback will modify the names @@ -92746,7 +93276,8 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp4(tls, v, int32(OP_VRename), i, 0, 0, pVTab, -int32(11)) } _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+9919, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+10044, 0) + goto exit_rename_table exit_rename_table: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -92762,7 +93293,7 @@ exit_rename_table: func _sqlite3ErrorIfNotEmpty(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zErr uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9932, libc.VaList(bp+8, zErr, zDb, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10057, libc.VaList(bp+8, zErr, zDb, zTab)) } // C documentation @@ -92807,11 +93338,11 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** column must not be NULL. */ if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9970, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10095, 0) return } if (*TTable)(unsafe.Pointer(pNew)).FpIndex != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10002, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10127, 0) return } if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) == 0 { @@ -92829,10 +93360,10 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 44))).FpFKey != 0 && pDflt != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10029) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10154) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 4))&0xf>>0)) != 0 && !(pDflt != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10088) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10213) } /* Ensure the default expression is something that sqlite3ValueFromExpr() ** can handle (i.e. not CURRENT_TIME etc.) @@ -92846,13 +93377,13 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr return } if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10141) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10266) } _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp))) } } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_STORED) != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10187) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10312) } } /* Modify the CREATE TABLE statement. */ @@ -92868,7 +93399,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** have to use printf() to translate between these units: */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10214, libc.VaList(bp+16, zDb, (*(*struct { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10339, libc.VaList(bp+16, zDb, (*(*struct { FaddColOffset int32 FpFKey uintptr FpDfltList uintptr @@ -92896,7 +93427,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterAdd)) /* Verify that constraints are still satisfied */ if (*TTable)(unsafe.Pointer(pNew)).FpCheck != uintptr(0) || int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 4))&0xf>>0)) != 0 && int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Strict) != uint32(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10360, libc.VaList(bp+16, zTab, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10485, libc.VaList(bp+16, zTab, zDb)) } } } @@ -92936,12 +93467,12 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { goto exit_begin_add_column } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10713, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10838, 0) goto exit_begin_add_column } /* Make sure this is not an attempt to ALTER a view. */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10747, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10872, 0) goto exit_begin_add_column } if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { @@ -92969,7 +93500,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { nAlloc = (int32((*TTable)(unsafe.Pointer(pNew)).FnCol)-int32(1))/int32(8)*int32(8) + int32(8) _ = libc.Int32FromInt32(0) (*TTable)(unsafe.Pointer(pNew)).FaCol = _sqlite3DbMallocZero(tls, db, uint64(uint32(12)*uint32(nAlloc))) - (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10777, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10902, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !((*TTable)(unsafe.Pointer(pNew)).FaCol != 0) || !((*TTable)(unsafe.Pointer(pNew)).FzName != 0) { _ = libc.Int32FromInt32(0) goto exit_begin_add_column @@ -93009,6 +93540,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { FpDfltList uintptr })(unsafe.Pointer(pTab + 44))).FaddColOffset _ = libc.Int32FromInt32(0) + goto exit_begin_add_column exit_begin_add_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -93032,18 +93564,18 @@ func _isRealTable(tls *libc.TLS, pParse uintptr, pTab uintptr, bDrop int32) (r i _, _ = zType, v1 zType = uintptr(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10796 + zType = __ccgo_ts + 10921 } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 10801 + zType = __ccgo_ts + 10926 } if zType != 0 { if bDrop != 0 { - v1 = __ccgo_ts + 10815 + v1 = __ccgo_ts + 10940 } else { - v1 = __ccgo_ts + 10832 + v1 = __ccgo_ts + 10957 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10850, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10975, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -93105,11 +93637,11 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld iCol++ } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10868, libc.VaList(bp+8, pOld)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10993, libc.VaList(bp+8, pOld)) goto exit_rename_column } /* Ensure the schema contains no double-quoted strings */ - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1648, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1662, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1))) /* Do the rename operation using a recursive UPDATE statement that ** uses the sqlite_rename_column() SQL function to compute the new @@ -93122,11 +93654,12 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld } _ = libc.Int32FromInt32(0) bQuote = int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pNew)).Fz)))]) & int32(0x80) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10889, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11071, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11014, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11196, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iSchema, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+9919, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+10044, int32(1)) + goto exit_rename_column exit_rename_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -93604,11 +94137,11 @@ func _renameColumnParseError(tls *libc.TLS, pCtx uintptr, zWhen uintptr, pType u zT = Xsqlite3_value_text(tls, pType) zN = Xsqlite3_value_text(tls, pObject) if *(*int8)(unsafe.Pointer(zWhen)) != 0 { - v1 = __ccgo_ts + 11202 + v1 = __ccgo_ts + 11327 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11204, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) + zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11329, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, zErr) } @@ -93685,8 +94218,8 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin if zSql == uintptr(0) { return int32(SQLITE_NOMEM) } - if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11227, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(116682)) + if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11352, int32(7)) != 0 { + return _sqlite3CorruptError(tls, int32(117285)) } if bTemp != 0 { v1 = int32(1) @@ -93702,7 +94235,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin rc = int32(SQLITE_NOMEM) } if rc == SQLITE_OK && ((*TParse)(unsafe.Pointer(p)).FpNewTable == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewIndex == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewTrigger == uintptr(0)) { - rc = _sqlite3CorruptError(tls, int32(116693)) + rc = _sqlite3CorruptError(tls, int32(117296)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -93741,7 +94274,7 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, ** ALTER TABLE statement was quoted (bQuote==1), then set zNew to ** point to zQuot so that all substitutions are made using the ** quoted version of the new column name. */ - zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11235, libc.VaList(bp+8, zNew)) + zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11360, libc.VaList(bp+8, zNew)) if zQuot == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -93787,11 +94320,11 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, *(*int8)(unsafe.Pointer(zBuf1 + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn))) = 0 _sqlite3Dequote(tls, zBuf1) if int32(*(*int8)(unsafe.Pointer((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn)))) == int32('\'') { - v1 = __ccgo_ts + 11202 + v1 = __ccgo_ts + 11327 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11241, libc.VaList(bp+8, zBuf1, v1)) + Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11366, libc.VaList(bp+8, zBuf1, v1)) zReplace = zBuf2 nReplace = uint32(_sqlite3Strlen30(tls, zReplace)) } @@ -94275,6 +94808,7 @@ func _renameColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintp } _ = libc.Int32FromInt32(0) rc = _renameEditSql(tls, context, bp, zSql, zNew, bQuote) + goto renameColumnFunc_done renameColumnFunc_done: ; if rc != SQLITE_OK { @@ -94282,7 +94816,7 @@ renameColumnFunc_done: Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv))) } else { if (*(*TParse)(unsafe.Pointer(bp + 20))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1648, *(*uintptr)(unsafe.Pointer(argv + 1*4)), *(*uintptr)(unsafe.Pointer(argv + 2*4)), bp+20) + _renameColumnParseError(tls, context, __ccgo_ts+1662, *(*uintptr)(unsafe.Pointer(argv + 1*4)), *(*uintptr)(unsafe.Pointer(argv + 2*4)), bp+20) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -94511,7 +95045,7 @@ func _renameTableFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintpt Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv + 3*4))) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1648, *(*uintptr)(unsafe.Pointer(argv + 1*4)), *(*uintptr)(unsafe.Pointer(argv + 2*4)), bp) + _renameColumnParseError(tls, context, __ccgo_ts+1662, *(*uintptr)(unsafe.Pointer(argv + 1*4)), *(*uintptr)(unsafe.Pointer(argv + 2*4)), bp) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -94773,7 +95307,7 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr pTab = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable if pTab == uintptr(0) || int32((*TTable)(unsafe.Pointer(pTab)).FnCol) == int32(1) || iCol >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { /* This can happen if the sqlite_schema table is corrupt */ - rc = _sqlite3CorruptError(tls, int32(117652)) + rc = _sqlite3CorruptError(tls, int32(118255)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*12))).FzCnName) @@ -94791,9 +95325,10 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr (*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz-- } } - zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11246, libc.VaList(bp+296, int32((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int32(zSql), zSql, zEnd)) + zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11371, libc.VaList(bp+296, int32((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int32(zSql), zSql, zEnd)) Xsqlite3_result_text(tls, context, zNew, -int32(1), uintptr(-libc.Int32FromInt32(1))) Xsqlite3_free(tls, zNew) + goto drop_column_done drop_column_done: ; _renameParseCleanup(tls, bp) @@ -94817,8 +95352,9 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName bp := tls.Alloc(48) defer tls.Free(48) var addr, i, iCol, iColPos, iCur, iDb, iPos, nField, reg, regOut, regRec, v2, v4, v7 int32 + var aff int8 var db, pPk, pTab, v, zCol, zDb, v1, v3, v5, v8 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, aff, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Database containing pTab ("main" etc.) */ zCol = uintptr(0) /* Index of column zCol in pTab->aCol[] */ /* Look up the table being altered. */ @@ -94847,23 +95383,23 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName } iCol = _sqlite3ColumnIndex(tls, pTab, zCol) if iCol < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10868, libc.VaList(bp+8, pName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10993, libc.VaList(bp+8, pName)) goto exit_drop_column } /* Do not allow the user to drop a PRIMARY KEY column or a column ** constrained by a UNIQUE constraint. */ if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*12))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_PRIMKEY)|libc.Int32FromInt32(COLFLAG_UNIQUE)) != 0 { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*12))).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - v1 = __ccgo_ts + 11253 + v1 = __ccgo_ts + 11378 } else { - v1 = __ccgo_ts + 5589 + v1 = __ccgo_ts + 5653 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11265, libc.VaList(bp+8, v1, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11390, libc.VaList(bp+8, v1, zCol)) goto exit_drop_column } /* Do not allow the number of columns to go to zero */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) <= int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11293, libc.VaList(bp+8, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11418, libc.VaList(bp+8, zCol)) goto exit_drop_column } /* Edit the sqlite_schema table */ @@ -94874,12 +95410,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_ALTER_TABLE), zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol) != 0 { goto exit_drop_column } - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1648, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1662, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1))) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11341, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11466, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterDrop)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11462, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11587, int32(1)) /* Edit rows of table on disk */ if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 && int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*12))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { pPk = uintptr(0) @@ -94937,7 +95473,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if i == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regOut) } else { + aff = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*12))).Faffinity + if int32(aff) == int32(SQLITE_AFF_REAL) { + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*12))).Faffinity = int8(SQLITE_AFF_NUMERIC) + } _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, i, regOut) + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*12))).Faffinity = aff } nField++ } @@ -94962,6 +95503,7 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iCur, addr+int32(1)) _sqlite3VdbeJumpHere(tls, v, addr) } + goto exit_drop_column exit_drop_column: ; _sqlite3DbFree(tls, db, zCol) @@ -94981,27 +95523,27 @@ var _aAlterTableFuncs = [5]TFuncDef{ 0: { FnArg: int8(9), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11480, + FzName: __ccgo_ts + 11605, }, 1: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11501, + FzName: __ccgo_ts + 11626, }, 2: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11521, + FzName: __ccgo_ts + 11646, }, 3: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11540, + FzName: __ccgo_ts + 11665, }, 4: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11559, + FzName: __ccgo_ts + 11684, }, } @@ -95214,7 +95756,7 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW ** side-effect of the CREATE TABLE statement is to leave the rootpage ** of the new table in register pParse->regRoot. This is important ** because the OpenWrite opcode below will be needing it. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11662, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11787, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) aRoot[i] = uint32((*TParse)(unsafe.Pointer(pParse)).FregRoot) aCreateTbl[i] = uint8(OPFLAG_P2ISREG) } @@ -95225,10 +95767,10 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW aRoot[i] = (*TTable)(unsafe.Pointer(pStat)).Ftnum _sqlite3TableLock(tls, pParse, iDb, aRoot[i], uint8(1), zTab) if zWhere != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11685, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11810, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11715, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11840, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) } else { /* The sqlite_stat[134] table already exists. Delete all rows. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Clear), int32(aRoot[i]), iDb) @@ -95261,15 +95803,15 @@ var _aTable = [3]struct { FzCols uintptr }{ 0: { - FzName: __ccgo_ts + 11582, - FzCols: __ccgo_ts + 11595, + FzName: __ccgo_ts + 11707, + FzCols: __ccgo_ts + 11720, }, 1: { - FzName: __ccgo_ts + 11608, - FzCols: __ccgo_ts + 11621, + FzName: __ccgo_ts + 11733, + FzCols: __ccgo_ts + 11746, }, 2: { - FzName: __ccgo_ts + 11649, + FzName: __ccgo_ts + 11774, }, } @@ -95578,7 +96120,7 @@ func _statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statInitFuncdef = TFuncDef{ FnArg: int8(4), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11733, + FzName: __ccgo_ts + 11858, } func init() { @@ -95732,6 +96274,7 @@ func _sampleInsert(tls *libc.TLS, p uintptr, pNew uintptr, nEqZero int32) { (*TStatAccum)(unsafe.Pointer(p)).FnSample++ /* Zero the first nEqZero entries in the anEq[] array. */ libc.Xmemset(tls, (*TStatSample)(unsafe.Pointer(pSample)).FanEq, 0, uint32(8)*uint32(nEqZero)) + goto find_new_min find_new_min: ; if (*TStatAccum)(unsafe.Pointer(p)).FnSample >= (*TStatAccum)(unsafe.Pointer(p)).FmxSample { @@ -95963,7 +96506,7 @@ func _statPush(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statPushFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(2) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11743, + FzName: __ccgo_ts + 11868, } func init() { @@ -96016,7 +96559,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } else { v1 = (*TStatAccum)(unsafe.Pointer(p)).FnRow } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11753, libc.VaList(bp+56, v1)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11878, libc.VaList(bp+56, v1)) i = 0 for { if !(i < (*TStatAccum)(unsafe.Pointer(p)).FnKeyCol) { @@ -96027,7 +96570,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if iVal == uint64(2) && (*TStatAccum)(unsafe.Pointer(p)).FnRow*uint64(10) <= nDistinct*uint64(11) { iVal = uint64(1) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11758, libc.VaList(bp+56, iVal)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11883, libc.VaList(bp+56, iVal)) _ = libc.Int32FromInt32(0) goto _2 _2: @@ -96068,7 +96611,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if !(i1 < (*TStatAccum)(unsafe.Pointer(p)).FnCol) { break } - Xsqlite3_str_appendf(tls, bp+24, __ccgo_ts+11764, libc.VaList(bp+56, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) + Xsqlite3_str_appendf(tls, bp+24, __ccgo_ts+11889, libc.VaList(bp+56, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) goto _3 _3: ; @@ -96086,7 +96629,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statGetFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(1) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11770, + FzName: __ccgo_ts + 11895, } func init() { @@ -96108,9 +96651,9 @@ func _callStatGet(tls *libc.TLS, pParse uintptr, regStat int32, iParam int32, re // */ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr, iStatCur int32, iMem int32, iTab int32) { var aGotoChng, db, pColl, pIdx, pPk, pStat1, pX, v, zIdxName uintptr - var addrIsNull, addrNext, addrNextRow, addrRewind, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 + var addrGotoEnd, addrIsNull, addrNext, addrNextRow, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 var needTableCnt, seekOp Tu8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrIsNull, addrNext, addrNextRow, addrRewind, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrGotoEnd, addrIsNull, addrNext, addrNextRow, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Loop counter */ jZeroRows = -int32(1) /* Index of database containing pTab */ needTableCnt = uint8(1) @@ -96154,7 +96697,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Do not gather statistics on views or virtual tables */ return } - if Xsqlite3_strlike(tls, __ccgo_ts+11779, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { + if Xsqlite3_strlike(tls, __ccgo_ts+11904, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { /* Do not gather statistics on system tables */ return } @@ -96171,7 +96714,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint return } (*TTable)(unsafe.Pointer(pStat1)).FzName = pStat1 + 1*64 - libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11582, uint32(13)) + libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11707, uint32(13)) (*TTable)(unsafe.Pointer(pStat1)).FnCol = int16(3) (*TTable)(unsafe.Pointer(pStat1)).FiPKey = int16(-int32(1)) _sqlite3VdbeAddOp4(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Noop), 0, 0, 0, pStat1, -int32(6)) @@ -96225,9 +96768,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* ** Pseudo-code for loop that calls stat_push(): ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() ** goto chng_addr_0; ** ** next_row: @@ -96262,34 +96810,31 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _ = libc.Int32FromInt32(0) _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenRead), iIdxCur, int32((*TIndex)(unsafe.Pointer(pIdx)).Ftnum), iDb) _sqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx) - /* Invoke the stat_init() function. The arguments are: + /* Implementation of the following: ** + ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() + ** goto chng_addr_0; + */ + _ = libc.Int32FromInt32(0) + _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + /* Arguments to stat_init(): ** (1) the number of columns in the index including the rowid ** (or for a WITHOUT ROWID table, the number of PK columns), ** (2) the number of columns in the key without the rowid/pk - ** (3) estimated number of rows in the index, - */ + ** (3) estimated number of rows in the index. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), nCol, regStat+int32(1)) _ = libc.Int32FromInt32(0) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol), regRowid) - if (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0) { - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iIdxCur, regTemp) - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - } else { - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, int32(1)) - } - _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) != uint32(0))) _sqlite3VdbeAddFunctionCall(tls, pParse, 0, regStat+int32(1), regStat, int32(4), uintptr(unsafe.Pointer(&_statInitFuncdef)), 0) - /* Implementation of the following: - ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; - ** regChng = 0 - ** goto next_push_0; - ** - */ + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regChng) addrNextRow = _sqlite3VdbeCurrentAddr(tls, v) if nColTest > 0 { @@ -96401,9 +96946,15 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iIdxCur, addrNextRow) } /* Add the entry to the stat1 table. */ + if (*TIndex)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 { + /* Partial indexes might get a zero-entry in sqlite_stat1. But + ** an empty table is omitted from sqlite_stat1. */ + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + addrGotoEnd = 0 + } _callStatGet(tls, pParse, regStat, STAT_GET_STAT1, regStat1) _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11789, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11914, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP4(tls, v, -int32(1), pStat1, -int32(5)) @@ -96422,6 +96973,11 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint v18 = int32(OP_NotFound) } seekOp = uint8(v18) + /* No STAT4 data is generated if the number of rows is zero */ + if addrGotoEnd == 0 { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Cast), regStat1, int32(SQLITE_AFF_INTEGER)) + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) + } if doOnce != 0 { mxCol = nCol /* Compute the maximum number of columns in any index */ @@ -96476,7 +97032,9 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeJumpHere(tls, v, addrIsNull) } /* End of analysis */ - _sqlite3VdbeJumpHere(tls, v, addrRewind) + if addrGotoEnd != 0 { + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + } goto _13 _13: ; @@ -96490,7 +97048,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint jZeroRows = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regIdxname) _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11789, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11914, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND)) @@ -96565,9 +97123,9 @@ func _analyzeTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr iStatCur = (*TParse)(unsafe.Pointer(pParse)).FnTab *(*int32)(unsafe.Pointer(pParse + 40)) += int32(3) if pOnlyIdx != 0 { - _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11793) + _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11918) } else { - _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11797) + _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11922) } _analyzeOneTable(tls, pParse, pTab, pOnlyIdx, iStatCur, (*TParse)(unsafe.Pointer(pParse)).FnMem+int32(1), (*TParse)(unsafe.Pointer(pParse)).FnTab) _loadAnalysis(tls, pParse, iDb) @@ -96698,7 +97256,7 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, _, _, _, _, _, _ = c, i, sz, v, z, v2 z = zIntArray if z == uintptr(0) { - z = __ccgo_ts + 1648 + z = __ccgo_ts + 1662 } i = 0 for { @@ -96733,17 +97291,17 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, libc.SetBitFieldPtr16Uint32(pIndex+56, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pIndex+56, libc.Uint32FromInt32(0), 6, 0x40) for *(*int8)(unsafe.Pointer(z)) != 0 { - if Xsqlite3_strglob(tls, __ccgo_ts+11801, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11926, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+56, libc.Uint32FromInt32(1), 2, 0x4) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11812, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11937, z) == 0 { sz = _sqlite3Atoi(tls, z+uintptr(3)) if sz < int32(2) { sz = int32(2) } (*TIndex)(unsafe.Pointer(pIndex)).FszIdxRow = _sqlite3LogEst(tls, uint64(sz)) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11822, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11947, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+56, libc.Uint32FromInt32(1), 6, 0x40) } } @@ -97127,11 +97685,11 @@ func _loadStat4(tls *libc.TLS, db uintptr, zDb uintptr) (r int32) { rc = SQLITE_OK _ = libc.Int32FromInt32(0) if v2 = (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0); v2 { - v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11608, zDb) + v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11733, zDb) pStat4 = v1 } if v2 && v1 != uintptr(0) && int32((*TTable)(unsafe.Pointer(pStat4)).FeTabType) == TABTYP_NORM { - rc = _loadStatTbl(tls, db, __ccgo_ts+11834, __ccgo_ts+11903, zDb) + rc = _loadStatTbl(tls, db, __ccgo_ts+11959, __ccgo_ts+12028, zDb) } return rc } @@ -97200,10 +97758,10 @@ func _sqlite3AnalysisLoad(tls *libc.TLS, db uintptr, iDb int32) (r int32) { /* Load new statistics out of the sqlite_stat1 table */ (*(*TanalysisInfo)(unsafe.Pointer(bp))).Fdb = db (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName - v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11582, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) + v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11707, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) pStat1 = v3 if v3 != 0 && int32((*TTable)(unsafe.Pointer(pStat1)).FeTabType) == TABTYP_NORM { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+11955, libc.VaList(bp+16, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+12080, libc.VaList(bp+16, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -97317,7 +97875,7 @@ func _resolveAttachExpr(tls *libc.TLS, pName uintptr, pExpr uintptr) (r int32) { // ** database iDb attached to handle db. // */ func _sqlite3DbIsNamed(tls *libc.TLS, db uintptr, iDb int32, zName uintptr) (r int32) { - return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6585, zName) == 0) + return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6649, zName) == 0) } // C documentation @@ -97359,21 +97917,21 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { zFile = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) zName = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*4))) if zFile == uintptr(0) { - zFile = __ccgo_ts + 1648 + zFile = __ccgo_ts + 1662 } if zName == uintptr(0) { - zName = __ccgo_ts + 1648 + zName = __ccgo_ts + 1662 } if int32(uint32(*(*uint8)(unsafe.Pointer(db + 168 + 8))&0x4>>2)) != 0 { /* This is not a real ATTACH. Instead, this routine is being called ** from sqlite3_deserialize() to close database db->init.iDb and ** reopen it as a MemDB */ *(*uintptr)(unsafe.Pointer(bp + 20)) = uintptr(0) - *(*uintptr)(unsafe.Pointer(bp + 16)) = Xsqlite3_vfs_find(tls, __ccgo_ts+3967) + *(*uintptr)(unsafe.Pointer(bp + 16)) = Xsqlite3_vfs_find(tls, __ccgo_ts+4031) if *(*uintptr)(unsafe.Pointer(bp + 16)) == uintptr(0) { return } - rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), __ccgo_ts+11996, db, bp+20, 0, int32(SQLITE_OPEN_MAIN_DB)) + rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), __ccgo_ts+12121, db, bp+20, 0, int32(SQLITE_OPEN_MAIN_DB)) if rc == SQLITE_OK { pNewSchema = _sqlite3SchemaGet(tls, db, *(*uintptr)(unsafe.Pointer(bp + 20))) if pNewSchema != 0 { @@ -97404,7 +97962,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { ** * Specified database name already being used. */ if (*Tsqlite3)(unsafe.Pointer(db)).FnDb >= *(*int32)(unsafe.Pointer(db + 116 + 7*4))+int32(2) { - *(*uintptr)(unsafe.Pointer(bp + 12)) = _sqlite3MPrintf(tls, db, __ccgo_ts+11999, libc.VaList(bp+32, *(*int32)(unsafe.Pointer(db + 116 + 7*4)))) + *(*uintptr)(unsafe.Pointer(bp + 12)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12124, libc.VaList(bp+32, *(*int32)(unsafe.Pointer(db + 116 + 7*4)))) goto attach_error } i = 0 @@ -97414,7 +97972,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } _ = libc.Int32FromInt32(0) if _sqlite3DbIsNamed(tls, db, i, zName) != 0 { - *(*uintptr)(unsafe.Pointer(bp + 12)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12036, libc.VaList(bp+32, zName)) + *(*uintptr)(unsafe.Pointer(bp + 12)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12161, libc.VaList(bp+32, zName)) goto attach_error } goto _1 @@ -97463,7 +98021,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FnoSharedCache = uint8(0) if rc == int32(SQLITE_CONSTRAINT) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(bp + 12)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12066, 0) + *(*uintptr)(unsafe.Pointer(bp + 12)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12191, 0) } else { if rc == SQLITE_OK { (*TDb)(unsafe.Pointer(pNew)).FpSchema = _sqlite3SchemaGet(tls, db, (*TDb)(unsafe.Pointer(pNew)).FpBt) @@ -97471,7 +98029,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { rc = int32(SQLITE_NOMEM) } else { if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Ffile_format != 0 && int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Fenc) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - *(*uintptr)(unsafe.Pointer(bp + 12)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12095, 0) + *(*uintptr)(unsafe.Pointer(bp + 12)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12220, 0) rc = int32(SQLITE_ERROR) } } @@ -97517,16 +98075,17 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)<= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12191, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12316, libc.VaList(bp+136, zName)) goto detach_error } if i < int32(2) { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12212, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12337, libc.VaList(bp+136, zName)) goto detach_error } if _sqlite3BtreeTxnState(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != SQLITE_TXN_NONE || _sqlite3BtreeIsInBackup(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != 0 { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12238, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12363, libc.VaList(bp+136, zName)) goto detach_error } /* If any TEMP triggers reference the schema being detached, move those @@ -97608,6 +98167,7 @@ func _detachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*TDb)(unsafe.Pointer(pDb)).FpSchema = uintptr(0) _sqlite3CollapseDatabaseArray(tls, db) return + goto detach_error detach_error: ; Xsqlite3_result_error(tls, context, bp, -int32(1)) @@ -97664,6 +98224,7 @@ func _codeAttach(tls *libc.TLS, pParse uintptr, type1 int32, pFunc uintptr, pAut */ _sqlite3VdbeAddOp1(tls, v, int32(OP_Expire), libc.BoolInt32(type1 == int32(SQLITE_ATTACH))) } + goto attach_end attach_end: ; _sqlite3ExprDelete(tls, db, pFilename) @@ -97685,7 +98246,7 @@ func _sqlite3Detach(tls *libc.TLS, pParse uintptr, pDbname uintptr) { var _detach_func = TFuncDef{ FnArg: int8(1), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12260, + FzName: __ccgo_ts + 12385, } func init() { @@ -97707,7 +98268,7 @@ func _sqlite3Attach(tls *libc.TLS, pParse uintptr, p uintptr, pDbname uintptr, p var _attach_func = TFuncDef{ FnArg: int8(3), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12274, + FzName: __ccgo_ts + 12399, } func init() { @@ -97733,7 +98294,7 @@ func _fixExprCb(tls *libc.TLS, p uintptr, pExpr uintptr) (r int32) { if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer((*TDbFixer)(unsafe.Pointer(pFix)).FpParse)).Fdb)).Finit1.Fbusy != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } else { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12288, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12413, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) return int32(WRC_Abort) } } @@ -97767,7 +98328,7 @@ func _fixSelectCb(tls *libc.TLS, p uintptr, pSelect uintptr) (r int32) { if int32((*TDbFixer)(unsafe.Pointer(pFix)).FbTemp) == 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { if iDb != _sqlite3FindDbName(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12312, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12437, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) return int32(WRC_Abort) } _sqlite3DbFree(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) @@ -97984,7 +98545,7 @@ func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uint // ** user-supplied authorization function returned an illegal value. // */ func _sqliteAuthBadReturnCode(tls *libc.TLS, pParse uintptr) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12358, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12483, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) } @@ -98012,11 +98573,11 @@ func _sqlite3AuthReadCol(tls *libc.TLS, pParse uintptr, zTab uintptr, zCol uintp } rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, int32(SQLITE_READ), zTab, zCol, zDb, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12381, libc.VaList(bp+8, zTab, zCol)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12506, libc.VaList(bp+8, zTab, zCol)) if (*Tsqlite3)(unsafe.Pointer(db)).FnDb > int32(2) || iDb != 0 { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12387, libc.VaList(bp+8, zDb, z)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12512, libc.VaList(bp+8, zDb, z)) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12393, libc.VaList(bp+8, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12518, libc.VaList(bp+8, z)) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != int32(SQLITE_IGNORE) && rc != SQLITE_OK { @@ -98082,7 +98643,7 @@ func _sqlite3AuthRead(tls *libc.TLS, pParse uintptr, pExpr uintptr, pSchema uint _ = libc.Int32FromInt32(0) zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*12))).FzCnName } else { - zCol = __ccgo_ts + 7905 + zCol = __ccgo_ts + 8030 } } _ = libc.Int32FromInt32(0) @@ -98119,7 +98680,7 @@ func _sqlite3AuthCheck(tls *libc.TLS, pParse uintptr, code int32, zArg1 uintptr, ** parameters can be either NULL or a string. */ rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, code, zArg1, zArg2, zArg3, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12420, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12545, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != SQLITE_OK && rc != int32(SQLITE_IGNORE) { @@ -98554,21 +99115,21 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp if i >= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { /* No match against the official names. But always match "main" ** to schema 0 as a legacy fallback. */ - if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6585) == 0 { + if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6649) == 0 { i = 0 } else { return uintptr(0) } } p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*16))).FpSchema+8, zName) - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6525, int32(7)) == 0 { + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6589, int32(7)) == 0 { if i == int32(1) { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6552+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6571+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6066+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpSchema+8, __ccgo_ts+6533) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6616+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6635+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6130+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpSchema+8, __ccgo_ts+6597) } } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6571+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*16))).FpSchema+8, __ccgo_ts+6066) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6635+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*16))).FpSchema+8, __ccgo_ts+6130) } } } @@ -98599,12 +99160,12 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp ; i++ } - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6525, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6571+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6066) + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6589, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6635+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6130) } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6552+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpSchema+8, __ccgo_ts+6533) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6616+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpSchema+8, __ccgo_ts+6597) } } } @@ -98642,7 +99203,7 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt ** can be an eponymous virtual table. */ if int32((*TParse)(unsafe.Pointer(pParse)).FprepFlags)&int32(SQLITE_PREPARE_NO_VTAB) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 { pMod = _sqlite3HashFind(tls, db+396, zName) - if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12435, int32(7)) == 0 { + if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12560, int32(7)) == 0 { pMod = _sqlite3PragmaVtabRegister(tls, db, zName) } if pMod != 0 && _sqlite3VtabEponymousTableInit(tls, pParse, pMod) != 0 { @@ -98660,15 +99221,15 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt } if p == uintptr(0) { if flags&uint32(LOCATE_VIEW) != 0 { - v1 = __ccgo_ts + 12443 + v1 = __ccgo_ts + 12568 } else { - v1 = __ccgo_ts + 12456 + v1 = __ccgo_ts + 12581 } zMsg = v1 if zDbase != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6789, libc.VaList(bp+8, zMsg, zDbase, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6853, libc.VaList(bp+8, zMsg, zDbase, zName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6799, libc.VaList(bp+8, zMsg, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6924, libc.VaList(bp+8, zMsg, zName)) } } else { _ = libc.Int32FromInt32(0) @@ -98708,12 +99269,12 @@ func _sqlite3LocateTableItem(tls *libc.TLS, pParse uintptr, flags Tu32, p uintpt // ** names into the new preferred names, as appropriate. // */ func _sqlite3PreferredTableName(tls *libc.TLS, zName uintptr) (r uintptr) { - if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6525, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6066+7) == 0 { - return __ccgo_ts + 6571 + if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6589, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6130+7) == 0 { + return __ccgo_ts + 6635 } - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6533+7) == 0 { - return __ccgo_ts + 6552 + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6597+7) == 0 { + return __ccgo_ts + 6616 } } return zName @@ -99259,7 +99820,7 @@ func _sqlite3OpenSchemaTable(tls *libc.TLS, p uintptr, iDb int32) { var v uintptr _ = v v = _sqlite3GetVdbe(tls, p) - _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6066) + _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6130) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_OpenWrite), 0, int32(SCHEMA_ROOT), iDb, int32(5)) if (*TParse)(unsafe.Pointer(p)).FnTab == 0 { (*TParse)(unsafe.Pointer(p)).FnTab = int32(1) @@ -99291,7 +99852,7 @@ func _sqlite3FindDbName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) { } /* "main" is always an acceptable alias for the primary database ** even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME. */ - if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6585, zName) { + if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6649, zName) { break } goto _1 @@ -99350,13 +99911,13 @@ func _sqlite3TwoPartName(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u _ = libc.Int32FromInt32(0) if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12470, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12595, 0) return -int32(1) } *(*uintptr)(unsafe.Pointer(pUnqual)) = pName2 iDb = _sqlite3FindDb(tls, db, pName1) if iDb < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12487, libc.VaList(bp+8, pName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12612, libc.VaList(bp+8, pName1)) return -int32(1) } } else { @@ -99401,12 +99962,12 @@ func _sqlite3CheckObjectName(tls *libc.TLS, pParse uintptr, zName uintptr, zType } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if Xsqlite3_stricmp(tls, zType, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit))) != 0 || Xsqlite3_stricmp(tls, zName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 1*4))) != 0 || Xsqlite3_stricmp(tls, zTblName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 2*4))) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1648, 0) /* corruptSchema() will supply the error */ + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1662, 0) /* corruptSchema() will supply the error */ return int32(SQLITE_ERROR) } } else { - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6525, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12507, libc.VaList(bp+8, zName)) + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6589, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12632, libc.VaList(bp+8, zName)) return int32(SQLITE_ERROR) } } @@ -99622,9 +100183,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Special case: Parsing the sqlite_schema or sqlite_temp_schema schema */ iDb = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6533 + v1 = __ccgo_ts + 6597 } else { - v1 = __ccgo_ts + 6066 + v1 = __ccgo_ts + 6130 } zName = _sqlite3DbStrDup(tls, db, v1) *(*uintptr)(unsafe.Pointer(bp)) = pName1 @@ -99637,7 +100198,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 && (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) && iDb != int32(1) { /* If creating a temp table, the name may not be qualified. Unless ** the database name is "temp" anyway. */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12549, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12674, 0) return } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 { @@ -99653,9 +100214,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui return } if isView != 0 { - v2 = __ccgo_ts + 10796 + v2 = __ccgo_ts + 10921 } else { - v2 = __ccgo_ts + 9058 + v2 = __ccgo_ts + 9183 } if _sqlite3CheckObjectName(tls, pParse, zName, v2, zName) != 0 { goto begin_table_error @@ -99667,9 +100228,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui _ = libc.Int32FromInt32(0) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp == int32(1) { - v3 = __ccgo_ts + 6533 + v3 = __ccgo_ts + 6597 } else { - v3 = __ccgo_ts + 6066 + v3 = __ccgo_ts + 6130 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto begin_table_error @@ -99693,11 +100254,11 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if pTable != 0 { if !(noErr != 0) { if int32((*TTable)(unsafe.Pointer(pTable)).FeTabType) == int32(TABTYP_VIEW) { - v4 = __ccgo_ts + 10796 + v4 = __ccgo_ts + 10921 } else { - v4 = __ccgo_ts + 9058 + v4 = __ccgo_ts + 9183 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12590, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12715, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -99706,7 +100267,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui goto begin_table_error } if _sqlite3FindIndex(tls, db, zName, zDb1) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12611, libc.VaList(bp+16, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12736, libc.VaList(bp+16, zName)) goto begin_table_error } } @@ -99798,6 +100359,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Normal (non-error) return. */ return /* If an error occurs, we jump here */ + goto begin_table_error begin_table_error: ; (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) @@ -99861,7 +100423,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { _, _, _ = db, pHash, pRet db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12646, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12771, 0) } else { _ = libc.Int32FromInt32(0) } @@ -99878,7 +100440,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return } - Xsqlite3_snprintf(tls, int32(40), pRet+104, __ccgo_ts+12680, libc.VaList(bp+8, pParse)) + Xsqlite3_snprintf(tls, int32(40), pRet+104, __ccgo_ts+12805, libc.VaList(bp+8, pParse)) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.FzName = pRet + 104 (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Fop = uint8(TK_RETURNING) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Ftr_tm = uint8(TRIGGER_AFTER) @@ -99926,7 +100488,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok return } if int32((*TTable)(unsafe.Pointer(p)).FnCol)+int32(1) > *(*int32)(unsafe.Pointer(db + 116 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12700, libc.VaList(bp+24, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12825, libc.VaList(bp+24, (*TTable)(unsafe.Pointer(p)).FzName)) return } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -99936,12 +100498,12 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok ** by the parser, we can sometimes end up with a typename that ends ** with "generated always". Check for this case and omit the surplus ** text. */ - if (*(*TToken)(unsafe.Pointer(bp + 8))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 8))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 8))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12723, int32(6)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 8))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 8))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 8))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12848, int32(6)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 8))).Fn -= uint32(6) for (*(*TToken)(unsafe.Pointer(bp + 8))).Fn > uint32(0) && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 8))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 8))).Fn-uint32(1)))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 8))).Fn-- } - if (*(*TToken)(unsafe.Pointer(bp + 8))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 8))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 8))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12730, int32(9)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 8))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 8))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 8))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12855, int32(9)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 8))).Fn -= uint32(9) for (*(*TToken)(unsafe.Pointer(bp + 8))).Fn > uint32(0) && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 8))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 8))).Fn-uint32(1)))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 8))).Fn-- @@ -99990,7 +100552,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok break } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*12))).FhName) == int32(hName) && _sqlite3StrICmp(tls, z, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*12))).FzCnName) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12740, libc.VaList(bp+24, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12865, libc.VaList(bp+24, z)) _sqlite3DbFree(tls, db, z) return } @@ -100200,10 +100762,10 @@ func _sqlite3AddDefaultValue(tls *libc.TLS, pParse uintptr, pExpr uintptr, zStar isInit = libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) != int32(1)) pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(p)).FnCol)-int32(1))*12 if !(_sqlite3ExprIsConstantOrFunction(tls, pExpr, uint8(isInit)) != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12766, libc.VaList(bp+64, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12891, libc.VaList(bp+64, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12811, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12936, 0) } else { libc.Xmemset(tls, bp, 0, uint32(52)) (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_SPAN) @@ -100261,7 +100823,7 @@ func _makeColumnPartOfPrimaryKey(tls *libc.TLS, pParse uintptr, pCol uintptr) { p1 = pCol + 10 *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(COLFLAG_PRIMKEY)) if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12852, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12977, 0) } } @@ -100298,7 +100860,7 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError goto primary_key_exit } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasPrimaryKey) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12904, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13029, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto primary_key_exit } *(*Tu32)(unsafe.Pointer(pTab + 28)) |= uint32(TF_HasPrimaryKey) @@ -100357,12 +100919,13 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError _sqlite3HasExplicitNulls(tls, pParse, pList) } else { if autoInc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12945, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13070, 0) } else { _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), pList, onError, uintptr(0), uintptr(0), sortOrder, 0, uint8(SQLITE_IDXTYPE_PRIMARYKEY)) pList = uintptr(0) } } + goto primary_key_exit primary_key_exit: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) @@ -100473,17 +101036,17 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui } pCol = (*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-int32(1))*12 if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) == int32(PARSE_MODE_DECLARE_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13001, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13126, 0) goto generated_done } if int32((*TColumn)(unsafe.Pointer(pCol)).FiDflt) > 0 { goto generated_error } if pType != 0 { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13044, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13169, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { /* no-op */ } else { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13052, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13177, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { eType = uint8(COLFLAG_STORED) } else { goto generated_error @@ -100514,9 +101077,11 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui _sqlite3ColumnSetExpr(tls, pParse, pTab, pCol, pExpr) pExpr = uintptr(0) goto generated_done + goto generated_error generated_error: ; - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13059, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13184, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + goto generated_done generated_done: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -100679,13 +101244,13 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { } n += _identLength(tls, (*TTable)(unsafe.Pointer(p)).FzName) if n < int32(50) { - zSep = __ccgo_ts + 1648 - zSep2 = __ccgo_ts + 13090 - zEnd = __ccgo_ts + 5106 + zSep = __ccgo_ts + 1662 + zSep2 = __ccgo_ts + 13215 + zEnd = __ccgo_ts + 5170 } else { - zSep = __ccgo_ts + 13092 - zSep2 = __ccgo_ts + 13096 - zEnd = __ccgo_ts + 13101 + zSep = __ccgo_ts + 13217 + zSep2 = __ccgo_ts + 13221 + zEnd = __ccgo_ts + 13226 } n += int32(35) + int32(6)*int32((*TTable)(unsafe.Pointer(p)).FnCol) zStmt = _sqlite3DbMallocRaw(tls, uintptr(0), uint64(n)) @@ -100693,7 +101258,7 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { _sqlite3OomFault(tls, db) return uintptr(0) } - Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13104, 0) + Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13229, 0) *(*int32)(unsafe.Pointer(bp)) = _sqlite3Strlen30(tls, zStmt) _identPut(tls, zStmt, bp, (*TTable)(unsafe.Pointer(p)).FzName) v2 = *(*int32)(unsafe.Pointer(bp)) @@ -100723,17 +101288,17 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { i++ pCol += 12 } - Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3795, libc.VaList(bp+16, zEnd)) + Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3859, libc.VaList(bp+16, zEnd)) return zStmt } var _azType1 = [6]uintptr{ - 0: __ccgo_ts + 1648, - 1: __ccgo_ts + 13118, - 2: __ccgo_ts + 13124, - 3: __ccgo_ts + 13129, - 4: __ccgo_ts + 13134, - 5: __ccgo_ts + 13124, + 0: __ccgo_ts + 1662, + 1: __ccgo_ts + 13243, + 2: __ccgo_ts + 13249, + 3: __ccgo_ts + 13254, + 4: __ccgo_ts + 13259, + 5: __ccgo_ts + 13249, } // C documentation @@ -101332,13 +101897,13 @@ func _sqlite3ShadowTableName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr, tabOpts Tu32, pSelect uintptr) { bp := tls.Alloc(96) defer tls.Free(96) - var addrInsLoop, addrTop, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v4, v6, v8 int32 + var addrInsLoop, addrTop, iCsr, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v10, v4, v6, v8 int32 var colFlags Tu32 - var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v5, v7, v9 uintptr - var v10 Ti16 + var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v13, v5, v7, v9 uintptr + var v12 Ti16 var _ /* dest at bp+0 */ TSelectDest - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v4, v5, v6, v7, v8, v9 /* The new table */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iCsr, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v12, v13, v4, v5, v6, v7, v8, v9 /* The new table */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ if pEnd == uintptr(0) && pSelect == uintptr(0) { return } @@ -101360,7 +101925,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if pSelect != 0 || !(int32((*TTable)(unsafe.Pointer(p)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) && (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1648, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1662, 0) return } (*TTable)(unsafe.Pointer(p)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum @@ -101387,9 +101952,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(ii)*12 if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 4))&0xf0>>4)) == COLTYPE_CUSTOM { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_HASTYPE) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13140, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1648))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13265, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1662))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13173, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13298, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } return } else { @@ -101412,11 +101977,11 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* Special processing for WITHOUT ROWID Tables */ if tabOpts&uint32(TF_WithoutRowid) != 0 { if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13200, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13325, 0) return } if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasPrimaryKey) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13250, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13375, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) return } *(*Tu32)(unsafe.Pointer(p + 28)) |= uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) @@ -101463,7 +102028,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ii1++ } if nNG == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13282, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13407, 0) return } } @@ -101497,12 +102062,12 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if int32((*TTable)(unsafe.Pointer(p)).FeTabType) == TABTYP_NORM { /* A regular table */ - zType = __ccgo_ts + 9058 - zType2 = __ccgo_ts + 13326 + zType = __ccgo_ts + 9183 + zType2 = __ccgo_ts + 13451 } else { /* A view */ - zType = __ccgo_ts + 10796 - zType2 = __ccgo_ts + 13332 + zType = __ccgo_ts + 10921 + zType2 = __ccgo_ts + 13457 } /* If this is a CREATE TABLE xx AS SELECT ..., execute the SELECT ** statement to populate the new table. The root-page number for the @@ -101517,29 +102082,31 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** a schema-lock excludes all other database users, the write-lock would ** be redundant. */ - if pSelect != 0 { /* A table that describes the SELECT results */ + if pSelect != 0 { /* Write cursor on the new table */ if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) (*TParse)(unsafe.Pointer(pParse)).FnErr++ return } - v5 = pParse + 44 - *(*int32)(unsafe.Pointer(v5))++ + v5 = pParse + 40 v4 = *(*int32)(unsafe.Pointer(v5)) - regYield = v4 + *(*int32)(unsafe.Pointer(v5))++ + iCsr = v4 v7 = pParse + 44 *(*int32)(unsafe.Pointer(v7))++ v6 = *(*int32)(unsafe.Pointer(v7)) - regRec = v6 + regYield = v6 v9 = pParse + 44 *(*int32)(unsafe.Pointer(v9))++ v8 = *(*int32)(unsafe.Pointer(v9)) - regRowid = v8 - _ = libc.Int32FromInt32(0) + regRec = v8 + v11 = pParse + 44 + *(*int32)(unsafe.Pointer(v11))++ + v10 = *(*int32)(unsafe.Pointer(v11)) + regRowid = v10 _sqlite3MayAbort(tls, pParse) - _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), int32(1), (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) + _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), iCsr, (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_P2ISREG)) - (*TParse)(unsafe.Pointer(pParse)).FnTab = int32(2) addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { @@ -101550,9 +102117,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr return } _ = libc.Int32FromInt32(0) - v10 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol - (*TTable)(unsafe.Pointer(p)).FnNVCol = v10 - (*TTable)(unsafe.Pointer(p)).FnCol = v10 + v12 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol + (*TTable)(unsafe.Pointer(p)).FnNVCol = v12 + (*TTable)(unsafe.Pointer(p)).FnCol = v12 (*TTable)(unsafe.Pointer(p)).FaCol = (*TTable)(unsafe.Pointer(pSelTab)).FaCol (*TTable)(unsafe.Pointer(pSelTab)).FnCol = 0 (*TTable)(unsafe.Pointer(pSelTab)).FaCol = uintptr(0) @@ -101567,33 +102134,33 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr addrInsLoop = _sqlite3VdbeAddOp1(tls, v, int32(OP_Yield), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSDParm) _sqlite3VdbeAddOp3(tls, v, int32(OP_MakeRecord), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst, (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst, regRec) _sqlite3TableAffinity(tls, v, p, 0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), int32(1), regRowid) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), int32(1), regRec, regRowid) + _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iCsr, regRowid) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iCsr, regRec, regRowid) _sqlite3VdbeGoto(tls, v, addrInsLoop) _sqlite3VdbeJumpHere(tls, v, addrInsLoop) - _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), int32(1)) + _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), iCsr) } /* Compute the complete text of the CREATE statement */ if pSelect != 0 { zStmt = _createTableStmt(tls, db, p) } else { if tabOpts != 0 { - v11 = pParse + 208 + v13 = pParse + 208 } else { - v11 = pEnd + v13 = pEnd } - pEnd2 = v11 + pEnd2 = v13 n = int32((*TToken)(unsafe.Pointer(pEnd2)).Fz) - int32((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz) if int32(*(*int8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pEnd2)).Fz))) != int32(';') { n = int32(uint32(n) + (*TToken)(unsafe.Pointer(pEnd2)).Fn) } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13337, libc.VaList(bp+40, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13462, libc.VaList(bp+40, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) } /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13352, libc.VaList(bp+40, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13477, libc.VaList(bp+40, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) _sqlite3DbFree(tls, db, zStmt) _sqlite3ChangeCookie(tls, pParse, iDb) /* Check to see if we need to create an sqlite_sequence table for @@ -101603,17 +102170,16 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16 _ = libc.Int32FromInt32(0) if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).FpSeqTab == uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13450, libc.VaList(bp+40, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13575, libc.VaList(bp+40, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) } } /* Reparse everything to update our internal data structures */ - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13492, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13617, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) /* Test for cycles in generated columns and illegal expressions ** in CHECK constraints and in DEFAULT clauses. */ if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasGenerated) != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13526, libc.VaList(bp+40, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(0x0001), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13651, libc.VaList(bp+40, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13547, libc.VaList(bp+40, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } /* Add the table to the in-memory representation of the database. */ @@ -101633,7 +102199,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** then record a pointer to this table in the main database structure ** so that INSERT can find the table easily. */ _ = libc.Int32FromInt32(0) - if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9580) == 0 { + if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9705) == 0 { _ = libc.Int32FromInt32(0) (*TSchema)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FpSchema)).FpSeqTab = p } @@ -101668,7 +102234,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*uintptr)(unsafe.Pointer(bp + 60)) = uintptr(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if int32((*TParse)(unsafe.Pointer(pParse)).FnVar) > 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13579, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13672, 0) goto create_view_fail } _sqlite3StartTable(tls, pParse, pName1, pName2, isTemp, int32(1), 0, noErr) @@ -101685,7 +102251,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*Tu32)(unsafe.Pointer(p + 28)) |= uint32(TF_NoVisibleRowid) /* Never allow rowid in view */ _sqlite3TwoPartName(tls, pParse, pName1, pName2, bp+60) iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(p)).FpSchema) - _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+10796, *(*uintptr)(unsafe.Pointer(bp + 60))) + _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+10921, *(*uintptr)(unsafe.Pointer(bp + 60))) if _sqlite3FixSelect(tls, bp+8, pSelect) != 0 { goto create_view_fail } @@ -101729,6 +102295,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui (*(*TToken)(unsafe.Pointer(bp))).Fn = uint32(1) /* Use sqlite3EndTable() to add the view to the schema table */ _sqlite3EndTable(tls, pParse, uintptr(0), bp, uint32(0), uintptr(0)) + goto create_view_fail create_view_fail: ; _sqlite3SelectDelete(tls, db, pSelect) @@ -101784,7 +102351,7 @@ func _viewGetColumnNames(tls *libc.TLS, pParse uintptr, pTable uintptr) (r int32 ** SELECT * FROM temp.ex1; */ if int32((*TTable)(unsafe.Pointer(pTable)).FnCol) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13615, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13708, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) return int32(1) } _ = libc.Int32FromInt32(0) @@ -101976,7 +102543,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { v = _sqlite3GetVdbe(tls, pParse) r1 = _sqlite3GetTempReg(tls, pParse) if iTable < int32(2) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13645, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13738, 0) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Destroy), iTable, r1, iDb) _sqlite3MayAbort(tls, pParse) @@ -101989,7 +102556,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { ** is in register NNN. See grammar rules associated with the TK_REGISTER ** token for additional information. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13660, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*16))).FzDbSName, iTable, r1, r1)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13753, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*16))).FzDbSName, iTable, r1, r1)) _sqlite3ReleaseTempReg(tls, pParse, r1) } @@ -102074,9 +102641,9 @@ func _sqlite3ClearStatTables(tls *libc.TLS, pParse uintptr, iDb int32, zType uin if !(i <= int32(4)) { break } - Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13727, libc.VaList(bp+32, i)) + Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13820, libc.VaList(bp+32, i)) if _sqlite3FindTable(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, bp, zDbName) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11685, libc.VaList(bp+32, zDbName, bp, zType, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11810, libc.VaList(bp+32, zDbName, bp, zType, zName)) } goto _1 _1: @@ -102119,7 +102686,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** move as a result of the drop (can happen in auto-vacuum mode). */ if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13741, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13834, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* Drop all entries in the schema table that refer to the ** table. The program name loops through the schema table and deletes @@ -102128,7 +102695,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** created in the temp database that refers to a table in another ** database. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13786, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13879, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !(isView != 0) && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { _destroyTable(tls, pParse, pTab) } @@ -102163,11 +102730,11 @@ func _sqlite3ReadOnlyShadowTables(tls *libc.TLS, db uintptr) (r int32) { // ** Return true if it is not allowed to drop the given table // */ func _tableMayNotBeDropped(tls *libc.TLS, db uintptr, pTab uintptr) (r int32) { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6525, int32(7)) == 0 { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3418, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6589, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3482, int32(4)) == 0 { return 0 } - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7266, int32(10)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7391, int32(10)) == 0 { return 0 } return int32(1) @@ -102226,9 +102793,9 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6533 + v1 = __ccgo_ts + 6597 } else { - v1 = __ccgo_ts + 6066 + v1 = __ccgo_ts + 6130 } zTab = v1 zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName @@ -102261,18 +102828,18 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if _tableMayNotBeDropped(tls, db, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13853, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13946, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Ensure DROP TABLE is not used on a view, and DROP VIEW is not used ** on a table. */ if isView != 0 && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13881, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13974, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } if !(isView != 0) && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13915, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14008, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Generate code to remove the table from the schema table @@ -102282,11 +102849,12 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) if !(isView != 0) { - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11797, (*TTable)(unsafe.Pointer(pTab)).FzName) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11922, (*TTable)(unsafe.Pointer(pTab)).FzName) _sqlite3FkDropTable(tls, pParse, pName, pTab) } _sqlite3CodeDropTable(tls, pParse, pTab, iDb, isView) } + goto exit_drop_table exit_drop_table: ; _sqlite3SrcListDelete(tls, db, pName) @@ -102330,13 +102898,13 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p goto fk_end } if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13947, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*12))).FzCnName, pTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14040, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*12))).FzCnName, pTo)) goto fk_end } nCol = int32(1) } else { if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14010, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14103, 0) goto fk_end } else { nCol = (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr @@ -102400,7 +102968,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p j++ } if j >= int32((*TTable)(unsafe.Pointer(p)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14104, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*20))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14197, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*20))).FzEName)) goto fk_end } if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { @@ -102455,6 +103023,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p FpDfltList uintptr })(unsafe.Pointer(p + 44))).FpFKey = pFKey pFKey = uintptr(0) + goto fk_end fk_end: ; _sqlite3DbFree(tls, db, pFKey) @@ -102663,11 +103232,11 @@ func _sqlite3HasExplicitNulls(tls *libc.TLS, pParse uintptr, pList uintptr) (r i if int32(uint32(*(*uint16)(unsafe.Pointer(pList + 8 + uintptr(i)*20 + 8 + 4))&0x20>>5)) != 0 { sf = (*(*TExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*20))).Ffg.FsortFlags if int32(sf) == 0 || int32(sf) == int32(3) { - v2 = __ccgo_ts + 14150 + v2 = __ccgo_ts + 14243 } else { - v2 = __ccgo_ts + 14156 + v2 = __ccgo_ts + 14249 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14161, libc.VaList(bp+8, v2)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14254, libc.VaList(bp+8, v2)) return int32(1) } goto _1 @@ -102749,7 +103318,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = int32(1) } } - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14189, *(*uintptr)(unsafe.Pointer(bp + 52))) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14282, *(*uintptr)(unsafe.Pointer(bp + 52))) if _sqlite3FixSrcList(tls, bp, pTblName) != 0 { /* Because the parser constructs pTblName from a single identifier, ** sqlite3FixSrcList can never fail. */ @@ -102761,7 +103330,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } if iDb == int32(1) && (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FpSchema != (*TTable)(unsafe.Pointer(pTab)).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14195, libc.VaList(bp+80, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14288, libc.VaList(bp+80, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { @@ -102778,16 +103347,16 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16 _ = libc.Int32FromInt32(0) - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6525, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14245, libc.VaList(bp+80, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6589, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14338, libc.VaList(bp+80, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14273, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14366, 0) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14298, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14391, 0) goto exit_create_index } /* @@ -102809,19 +103378,19 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } _ = libc.Int32FromInt32(0) - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14189, (*TTable)(unsafe.Pointer(pTab)).FzName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14282, (*TTable)(unsafe.Pointer(pTab)).FzName) { goto exit_create_index } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if !((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0) { if _sqlite3FindTable(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14332, libc.VaList(bp+80, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14425, libc.VaList(bp+80, zName)) goto exit_create_index } } if _sqlite3FindIndex(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { if !(ifNotExist != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14366, libc.VaList(bp+80, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14459, libc.VaList(bp+80, zName)) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -102843,7 +103412,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pLoop = (*TIndex)(unsafe.Pointer(pLoop)).FpNext n++ } - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14390, libc.VaList(bp+80, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14483, libc.VaList(bp+80, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) if zName == uintptr(0) { goto exit_create_index } @@ -102861,9 +103430,9 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { zDb = (*TDb)(unsafe.Pointer(pDb)).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6533 + v2 = __ccgo_ts + 6597 } else { - v2 = __ccgo_ts + 6066 + v2 = __ccgo_ts + 6130 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v2, uintptr(0), zDb) != 0 { goto exit_create_index @@ -102892,7 +103461,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u _ = libc.Int32FromInt32(0) _sqlite3ExprListSetSortOrder(tls, pList, sortOrder, -int32(1)) } else { - _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14189) + _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14282) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { goto exit_create_index } @@ -102982,7 +103551,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pCExpr = _sqlite3ExprSkipCollate(tls, (*TExprList_item)(unsafe.Pointer(pListItem)).FpExpr) if int32((*TExpr)(unsafe.Pointer(pCExpr)).Fop) != int32(TK_COLUMN) { if pTab == (*TParse)(unsafe.Pointer(pParse)).FpNewTable { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14413, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14506, 0) goto exit_create_index } if (*TIndex)(unsafe.Pointer(pIndex)).FaColExpr == uintptr(0) { @@ -103139,7 +103708,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u ** explicitly specified behavior for the index. */ if !(int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) || int32((*TIndex)(unsafe.Pointer(pIndex)).FonError) == int32(OE_Default)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14474, libc.VaList(bp+80, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14567, libc.VaList(bp+80, 0)) } if int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) { (*TIndex)(unsafe.Pointer(pIdx)).FonError = (*TIndex)(unsafe.Pointer(pIndex)).FonError @@ -103172,8 +103741,8 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != uintptr(0) { (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14516, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125123)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14609, 0) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125741)) goto exit_create_index } } @@ -103214,11 +103783,11 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* A named index with an explicit CREATE INDEX statement */ if onError == OE_None { - v13 = __ccgo_ts + 1648 + v13 = __ccgo_ts + 1662 } else { - v13 = __ccgo_ts + 14533 + v13 = __ccgo_ts + 14626 } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14541, libc.VaList(bp+80, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 52)))).Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14634, libc.VaList(bp+80, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 52)))).Fz)) } else { /* An automatic index created by a PRIMARY KEY or UNIQUE constraint */ /* zStmt = sqlite3MPrintf(""); */ @@ -103226,7 +103795,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* Add an entry in sqlite_schema for this index */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14561, libc.VaList(bp+80, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14654, libc.VaList(bp+80, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) _sqlite3DbFree(tls, db, zStmt) /* Fill the index with data and reparse the schema. Code an OP_Expire ** to invalidate all pre-compiled statements. @@ -103234,7 +103803,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != 0 { _sqlite3RefillIndex(tls, pParse, pIndex, iMem) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14620, libc.VaList(bp+80, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14713, libc.VaList(bp+80, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Expire), 0, int32(1)) } _sqlite3VdbeJumpHere(tls, v, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum)) @@ -103253,6 +103822,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } } /* Clean up before exiting */ + goto exit_create_index exit_create_index: ; if pIndex != 0 { @@ -103403,7 +103973,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pIndex = _sqlite3FindIndex(tls, db, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzName, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) if pIndex == uintptr(0) { if !(ifExists != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14647, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14740, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) _sqlite3ForceNotReadOnly(tls, pParse) @@ -103412,7 +103982,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in goto exit_drop_index } if int32(uint32(*(*uint16)(unsafe.Pointer(pIndex + 56))&0x3>>0)) != SQLITE_IDXTYPE_APPDEF { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14665, libc.VaList(bp+8, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14758, libc.VaList(bp+8, 0)) goto exit_drop_index } iDb = _sqlite3SchemaToIndex(tls, db, (*TIndex)(unsafe.Pointer(pIndex)).FpSchema) @@ -103420,9 +103990,9 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pTab = (*TIndex)(unsafe.Pointer(pIndex)).FpTable zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6533 + v1 = __ccgo_ts + 6597 } else { - v1 = __ccgo_ts + 6066 + v1 = __ccgo_ts + 6130 } zTab = v1 if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_DELETE), zTab, uintptr(0), zDb) != 0 { @@ -103438,12 +104008,13 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in v = _sqlite3GetVdbe(tls, pParse) if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14738, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11793, (*TIndex)(unsafe.Pointer(pIndex)).FzName) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14831, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11918, (*TIndex)(unsafe.Pointer(pIndex)).FzName) _sqlite3ChangeCookie(tls, pParse, iDb) _destroyRootPage(tls, pParse, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum), iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropIndex), iDb, 0, 0, (*TIndex)(unsafe.Pointer(pIndex)).FzName, 0) } + goto exit_drop_index exit_drop_index: ; _sqlite3SrcListDelete(tls, db, pName) @@ -103635,7 +104206,7 @@ func _sqlite3SrcListEnlarge(tls *libc.TLS, pParse uintptr, pSrc uintptr, nExtra nAlloc = int64(2)*int64((*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) + int64(nExtra) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc+nExtra >= int32(SQLITE_MAX_SRCLIST) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14798, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14891, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) return uintptr(0) } if nAlloc > int64(SQLITE_MAX_SRCLIST) { @@ -103872,11 +104443,11 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa db = (*TParse)(unsafe.Pointer(pParse)).Fdb if !(p != 0) && pOnUsing != uintptr(0) && ((*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 || (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpUsing != 0) { if (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 { - v1 = __ccgo_ts + 14834 + v1 = __ccgo_ts + 14927 } else { - v1 = __ccgo_ts + 14837 + v1 = __ccgo_ts + 14930 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14843, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14936, libc.VaList(bp+8, v1)) goto append_from_error } p = _sqlite3SrcListAppend(tls, pParse, p, pTable, pDatabase) @@ -103919,6 +104490,7 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa } } return p + goto append_from_error append_from_error: ; _ = libc.Int32FromInt32(0) @@ -104092,7 +104664,7 @@ func _sqlite3BeginTransaction(tls *libc.TLS, pParse uintptr, type1 int32) { _ = libc.Int32FromInt32(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb _ = libc.Int32FromInt32(0) - if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14879, uintptr(0), uintptr(0)) != 0 { + if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14972, uintptr(0), uintptr(0)) != 0 { return } v = _sqlite3GetVdbe(tls, pParse) @@ -104142,9 +104714,9 @@ func _sqlite3EndTransaction(tls *libc.TLS, pParse uintptr, eType int32) { _ = libc.Int32FromInt32(0) isRollback = libc.BoolInt32(eType == int32(TK_ROLLBACK)) if isRollback != 0 { - v1 = __ccgo_ts + 14885 + v1 = __ccgo_ts + 14978 } else { - v1 = __ccgo_ts + 14894 + v1 = __ccgo_ts + 14987 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), v1, uintptr(0), uintptr(0)) != 0 { return @@ -104177,9 +104749,9 @@ func _sqlite3Savepoint(tls *libc.TLS, pParse uintptr, op int32, pName uintptr) { } var _az = [3]uintptr{ - 0: __ccgo_ts + 14879, - 1: __ccgo_ts + 14901, - 2: __ccgo_ts + 14885, + 0: __ccgo_ts + 14972, + 1: __ccgo_ts + 14994, + 2: __ccgo_ts + 14978, } // C documentation @@ -104199,7 +104771,7 @@ func _sqlite3OpenTempDatabase(tls *libc.TLS, pParse uintptr) (r int32) { if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpBt == uintptr(0) && !((*TParse)(unsafe.Pointer(pParse)).Fexplain != 0) { rc = _sqlite3BtreeOpen(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), db, bp, 0, _flags) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14909, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15002, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = rc return int32(1) } @@ -104390,7 +104962,7 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable _sqlite3StrAccumInit(tls, bp, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), 0, *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 116))) if (*TIndex)(unsafe.Pointer(pIdx)).FaColExpr != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+14979, libc.VaList(bp+32, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+15072, libc.VaList(bp+32, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) } else { j = 0 for { @@ -104400,10 +104972,10 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx _ = libc.Int32FromInt32(0) zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)))*12))).FzCnName if j != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+14990, int32(2)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+15083, int32(2)) } Xsqlite3_str_appendall(tls, bp, (*TTable)(unsafe.Pointer(pTab)).FzName) - Xsqlite3_str_append(tls, bp, __ccgo_ts+1661, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+1675, int32(1)) Xsqlite3_str_appendall(tls, bp, zCol) goto _1 _1: @@ -104432,10 +105004,10 @@ func _sqlite3RowidConstraint(tls *libc.TLS, pParse uintptr, onError int32, pTab var zMsg uintptr _, _ = rc, zMsg if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12381, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*12))).FzCnName)) + zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12506, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*12))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(6)< libc.BoolInt32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15109, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15202, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } return 0 } @@ -105564,11 +106136,11 @@ func _sqlite3IsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr, pTrigger ui bp := tls.Alloc(16) defer tls.Free(16) if _tabIsReadOnly(tls, pParse, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15142, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15235, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && (pTrigger == uintptr(0) || (*TTrigger)(unsafe.Pointer(pTrigger)).FbReturning != 0 && (*TTrigger)(unsafe.Pointer(pTrigger)).FpNext == uintptr(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15171, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15264, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -105993,8 +106565,9 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** invoke the callback function. */ if memCnt != 0 { - _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15209) + _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15302) } + goto delete_from_cleanup delete_from_cleanup: ; _sqlite3AuthContextPop(tls, bp+8) @@ -106141,7 +106714,7 @@ func _sqlite3GenerateRowDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, pTri v3 = 0 } _sqlite3VdbeAddOp2(tls, v, int32(OP_Delete), iDataCur, v3) - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11582) { + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11707) { _sqlite3VdbeAppendP4(tls, v, pTab, -int32(5)) } if int32(eMode) != ONEPASS_OFF { @@ -106459,11 +107032,11 @@ func _typeofFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } var _azType2 = [5]uintptr{ - 0: __ccgo_ts + 6306, - 1: __ccgo_ts + 6301, - 2: __ccgo_ts + 8197, - 3: __ccgo_ts + 8192, - 4: __ccgo_ts + 1634, + 0: __ccgo_ts + 6370, + 1: __ccgo_ts + 6365, + 2: __ccgo_ts + 8322, + 3: __ccgo_ts + 8317, + 4: __ccgo_ts + 1648, } // C documentation @@ -106580,7 +107153,7 @@ func _absFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { /* IMP: R-31676-45509 If X is the integer -9223372036854775808 ** then abs(X) throws an integer overflow error since there is no ** equivalent positive 64-bit two complement value. */ - Xsqlite3_result_error(tls, context, __ccgo_ts+15222, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15315, -int32(1)) return } iVal = -iVal @@ -106675,11 +107248,13 @@ func _instrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } Xsqlite3_result_int(tls, context, N) + goto endInstr endInstr: ; Xsqlite3_value_free(tls, pC1) Xsqlite3_value_free(tls, pC2) return + goto endInstrOOM endInstrOOM: ; Xsqlite3_result_error_nomem(tls, context) @@ -106897,7 +107472,7 @@ func _roundFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } *(*float64)(unsafe.Pointer(bp)) = float64(int64(*(*float64)(unsafe.Pointer(bp)) + v1)) } else { - zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15239, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) + zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15332, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) if zBuf == uintptr(0) { Xsqlite3_result_error_nomem(tls, context) return @@ -107481,7 +108056,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { */ nPat = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) if nPat > *(*int32)(unsafe.Pointer(db + 116 + 8*4)) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15245, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15338, -int32(1)) return } if argc == int32(3) { @@ -107493,7 +108068,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { return } if _sqlite3Utf8CharLen(tls, *(*uintptr)(unsafe.Pointer(bp + 4)), -int32(1)) != int32(1) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15278, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15371, -int32(1)) return } escape = _sqlite3Utf8Read(tls, bp+4) @@ -107575,7 +108150,7 @@ func _errlogFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { defer tls.Free(16) _ = argc _ = context - Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*4))))) + Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*4))))) } // C documentation @@ -107665,17 +108240,17 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_FLOAT): r1 = Xsqlite3_value_double(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15323, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15416, libc.VaList(bp+16, r1)) zVal = Xsqlite3_str_value(tls, pStr) if zVal != 0 { _sqlite3AtoF(tls, zVal, bp, int32((*TStrAccum)(unsafe.Pointer(pStr)).FnChar), uint8(SQLITE_UTF8)) if r1 != *(*float64)(unsafe.Pointer(bp)) { Xsqlite3_str_reset(tls, pStr) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15331, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15424, libc.VaList(bp+16, r1)) } } case int32(SQLITE_INTEGER): - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1404, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1423, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) case int32(SQLITE_BLOB): zBlob = Xsqlite3_value_blob(tls, pValue) nBlob = int64(Xsqlite3_value_bytes(tls, pValue)) @@ -107703,10 +108278,10 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { } case int32(SQLITE_TEXT): zArg = Xsqlite3_value_text(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15339, libc.VaList(bp+16, zArg)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15432, libc.VaList(bp+16, zArg)) default: _ = libc.Int32FromInt32(0) - Xsqlite3_str_append(tls, pStr, __ccgo_ts+1649, int32(4)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+1663, int32(4)) break } } @@ -107945,7 +108520,7 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { var v3 uint32 var _ /* zHex at bp+0 */ uintptr _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, ch, d, nHex, nPass, p, pBlob, zPass, v1, v2, v3, v4, v5, v6 - zPass = __ccgo_ts + 1648 + zPass = __ccgo_ts + 1662 nPass = 0 *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) nHex = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) @@ -108001,10 +108576,12 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { *(*Tu8)(unsafe.Pointer(v6)) = uint8(int32(_sqlite3HexToInt(tls, int32(c)))< 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fapprox != 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fovrfl != 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+15222, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15315, -int32(1)) } else { if !(_sqlite3IsOverflow(tls, (*TSumCtx)(unsafe.Pointer(p)).FrErr) != 0) { Xsqlite3_result_double(tls, context, (*TSumCtx)(unsafe.Pointer(p)).FrSum+(*TSumCtx)(unsafe.Pointer(p)).FrErr) @@ -109030,7 +109607,7 @@ func _groupConcatValue(tls *libc.TLS, context uintptr) { func _sqlite3RegisterPerConnectionBuiltinFunctions(tls *libc.TLS, db uintptr) { var rc int32 _ = rc - rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15347, int32(2)) + rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15440, int32(2)) _ = libc.Int32FromInt32(0) if rc == int32(SQLITE_NOMEM) { _sqlite3OomFault(tls, db) @@ -109060,8 +109637,8 @@ func _sqlite3RegisterLikeFunctions(tls *libc.TLS, db uintptr, caseSensitive int3 if !(nArg <= int32(3)) { break } - _sqlite3CreateFunc(tls, db, __ccgo_ts+15353, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15353, nArg, uint8(SQLITE_UTF8), uint8(0)) + _sqlite3CreateFunc(tls, db, __ccgo_ts+15446, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15446, nArg, uint8(SQLITE_UTF8), uint8(0)) *(*Tu32)(unsafe.Pointer(pDef + 4)) |= uint32(flags) *(*Tu32)(unsafe.Pointer(pDef + 4)) &= uint32(^libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)) goto _1 @@ -109381,562 +109958,562 @@ var _aBuiltinFunc = [110]TFuncDef{ FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_implies_nonnull_row)), - FzName: __ccgo_ts + 15358, + FzName: __ccgo_ts + 15451, }, 1: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_expr_compare)), - FzName: __ccgo_ts + 15378, + FzName: __ccgo_ts + 15471, }, 2: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_expr_implies_expr)), - FzName: __ccgo_ts + 15391, + FzName: __ccgo_ts + 15484, }, 3: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_affinity)), - FzName: __ccgo_ts + 15409, + FzName: __ccgo_ts + 15502, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15418, + FzName: __ccgo_ts + 15511, }, 5: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15426, + FzName: __ccgo_ts + 15519, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15426, + FzName: __ccgo_ts + 15519, }, 7: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15441, + FzName: __ccgo_ts + 15534, }, 8: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15467, + FzName: __ccgo_ts + 15560, }, 9: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_unlikely)), - FzName: __ccgo_ts + 15492, + FzName: __ccgo_ts + 15585, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_unlikely)), - FzName: __ccgo_ts + 15501, + FzName: __ccgo_ts + 15594, }, 11: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_unlikely)), - FzName: __ccgo_ts + 15512, + FzName: __ccgo_ts + 15605, }, 12: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_sqlite_offset)), - FzName: __ccgo_ts + 15519, + FzName: __ccgo_ts + 15612, }, 13: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(1)), - FzName: __ccgo_ts + 15533, + FzName: __ccgo_ts + 15626, }, 14: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(1)), - FzName: __ccgo_ts + 15533, + FzName: __ccgo_ts + 15626, }, 15: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(2)), - FzName: __ccgo_ts + 15539, + FzName: __ccgo_ts + 15632, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(2)), - FzName: __ccgo_ts + 15539, + FzName: __ccgo_ts + 15632, }, 17: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(3)), - FzName: __ccgo_ts + 15545, + FzName: __ccgo_ts + 15638, }, 18: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(3)), - FzName: __ccgo_ts + 15545, + FzName: __ccgo_ts + 15638, }, 19: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15550, + FzName: __ccgo_ts + 15643, }, 20: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15550, + FzName: __ccgo_ts + 15643, }, 21: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15550, + FzName: __ccgo_ts + 15643, }, 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(1)), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 23: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(1)), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 24: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), FpUserData: uintptr(libc.Int32FromInt32(1)), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 25: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15558, + FzName: __ccgo_ts + 15651, }, 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15565, + FzName: __ccgo_ts + 15658, }, 27: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_LENGTH)), - FzName: __ccgo_ts + 15573, + FzName: __ccgo_ts + 15666, }, 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_BYTELEN)), - FzName: __ccgo_ts + 15580, + FzName: __ccgo_ts + 15673, }, 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15593, + FzName: __ccgo_ts + 15686, }, 30: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15599, + FzName: __ccgo_ts + 15692, }, 31: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15606, + FzName: __ccgo_ts + 15699, }, 32: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15613, + FzName: __ccgo_ts + 15706, }, 33: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15621, + FzName: __ccgo_ts + 15714, }, 34: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15626, + FzName: __ccgo_ts + 15719, }, 35: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15630, + FzName: __ccgo_ts + 15723, }, 36: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15630, + FzName: __ccgo_ts + 15723, }, 37: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15636, + FzName: __ccgo_ts + 15729, }, 38: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15642, + FzName: __ccgo_ts + 15735, }, 39: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15648, + FzName: __ccgo_ts + 15741, }, 40: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15652, + FzName: __ccgo_ts + 15745, }, 41: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15652, + FzName: __ccgo_ts + 15745, }, 42: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15658, + FzName: __ccgo_ts + 15751, }, 43: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15658, + FzName: __ccgo_ts + 15751, }, 44: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15665, + FzName: __ccgo_ts + 15758, }, 45: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15665, + FzName: __ccgo_ts + 15758, }, 46: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15665, + FzName: __ccgo_ts + 15758, }, 47: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15675, + FzName: __ccgo_ts + 15768, }, 48: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15682, + FzName: __ccgo_ts + 15775, }, 49: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15689, + FzName: __ccgo_ts + 15782, }, 50: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15700, + FzName: __ccgo_ts + 15793, }, 51: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15707, + FzName: __ccgo_ts + 15800, }, 52: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15722, + FzName: __ccgo_ts + 15815, }, 53: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15739, + FzName: __ccgo_ts + 15832, }, 54: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15750, + FzName: __ccgo_ts + 15843, }, 55: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15756, + FzName: __ccgo_ts + 15849, }, 56: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15774, + FzName: __ccgo_ts + 15867, }, 57: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15782, + FzName: __ccgo_ts + 15875, }, 58: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15796, + FzName: __ccgo_ts + 15889, }, 59: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15804, + FzName: __ccgo_ts + 15897, }, 60: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15813, + FzName: __ccgo_ts + 15906, }, 61: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15813, + FzName: __ccgo_ts + 15906, }, 62: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15820, + FzName: __ccgo_ts + 15913, }, 63: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15820, + FzName: __ccgo_ts + 15913, }, 64: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15830, + FzName: __ccgo_ts + 15923, }, 65: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15834, + FzName: __ccgo_ts + 15927, }, 66: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15840, + FzName: __ccgo_ts + 15933, }, 67: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_COUNT) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15844, + FzName: __ccgo_ts + 15937, }, 68: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15844, + FzName: __ccgo_ts + 15937, }, 69: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15850, + FzName: __ccgo_ts + 15943, }, 70: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15850, + FzName: __ccgo_ts + 15943, }, 71: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15863, + FzName: __ccgo_ts + 15956, }, 72: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE) | libc.Int32FromInt32(SQLITE_FUNC_CASE)), FpUserData: uintptr(unsafe.Pointer(&_globInfo)), - FzName: __ccgo_ts + 15874, + FzName: __ccgo_ts + 15967, }, 73: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15353, + FzName: __ccgo_ts + 15446, }, 74: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15353, + FzName: __ccgo_ts + 15446, }, 75: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6730, + FzName: __ccgo_ts + 6794, }, 76: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6730, + FzName: __ccgo_ts + 6794, }, 77: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15879, + FzName: __ccgo_ts + 15972, }, 78: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15884, + FzName: __ccgo_ts + 1235, }, 79: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15892, + FzName: __ccgo_ts + 1243, }, 80: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15898, + FzName: __ccgo_ts + 15977, }, 81: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15904, + FzName: __ccgo_ts + 15983, }, 82: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(1)), - FzName: __ccgo_ts + 15907, + FzName: __ccgo_ts + 15986, }, 83: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(1)), - FzName: __ccgo_ts + 15911, + FzName: __ccgo_ts + 15990, }, 84: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(2)), - FzName: __ccgo_ts + 15917, + FzName: __ccgo_ts + 15996, }, 85: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15907, + FzName: __ccgo_ts + 15986, }, 86: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15922, + FzName: __ccgo_ts + 16001, }, 87: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15926, + FzName: __ccgo_ts + 16005, }, 88: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15930, + FzName: __ccgo_ts + 16009, }, 89: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15936, + FzName: __ccgo_ts + 16015, }, 90: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15940, + FzName: __ccgo_ts + 16019, }, 91: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15945, + FzName: __ccgo_ts + 16024, }, 92: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15950, + FzName: __ccgo_ts + 16029, }, 93: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15955, + FzName: __ccgo_ts + 16034, }, 94: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15961, + FzName: __ccgo_ts + 16040, }, 95: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15965, + FzName: __ccgo_ts + 16044, }, 96: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15969, + FzName: __ccgo_ts + 16048, }, 97: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15973, + FzName: __ccgo_ts + 16052, }, 98: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15978, + FzName: __ccgo_ts + 16057, }, 99: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15983, + FzName: __ccgo_ts + 16062, }, 100: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15988, + FzName: __ccgo_ts + 16067, }, 101: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15994, + FzName: __ccgo_ts + 16073, }, 102: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16000, + FzName: __ccgo_ts + 16079, }, 103: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16006, + FzName: __ccgo_ts + 16085, }, 104: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16011, + FzName: __ccgo_ts + 16090, }, 105: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16019, + FzName: __ccgo_ts + 16098, }, 106: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16027, + FzName: __ccgo_ts + 16106, }, 107: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16030, + FzName: __ccgo_ts + 16109, }, 108: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 6730, + FzName: __ccgo_ts + 6794, }, 109: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_iif)), - FzName: __ccgo_ts + 16035, + FzName: __ccgo_ts + 16114, }, } @@ -110417,7 +110994,7 @@ func _sqlite3FkLocateIndex(tls *libc.TLS, pParse uintptr, pParent uintptr, pFKey } if !(pIdx != 0) { if !((*TParse)(unsafe.Pointer(pParse)).FdisableTriggers != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16039, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16118, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) } _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiCol) return int32(1) @@ -111549,11 +112126,11 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr break } *(*TToken)(unsafe.Pointer(bp + 8)) = TToken{ - Fz: __ccgo_ts + 6596, + Fz: __ccgo_ts + 6660, Fn: uint32(3), } /* Literal "old" token */ *(*TToken)(unsafe.Pointer(bp + 16)) = TToken{ - Fz: __ccgo_ts + 6592, + Fz: __ccgo_ts + 6656, Fn: uint32(3), } /* tFromCol = OLD.tToCol */ if *(*uintptr)(unsafe.Pointer(bp + 4)) != 0 { @@ -111620,7 +112197,7 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr nFrom = _sqlite3Strlen30(tls, zFrom) if action == int32(OE_Restrict) { iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5225) + pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5289) if pRaise != 0 { (*TExpr)(unsafe.Pointer(pRaise)).FaffExpr = int8(OE_Abort) } @@ -112228,7 +112805,7 @@ func _sqlite3ComputeGeneratedColumns(tls *libc.TLS, pParse uintptr, iRegStore in } } if pRedo != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8162, libc.VaList(bp+40, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8287, libc.VaList(bp+40, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) } (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 } @@ -112495,6 +113072,226 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { } } +// C documentation +// +// /* +// ** If argument pVal is a Select object returned by an sqlite3MultiValues() +// ** that was able to use the co-routine optimization, finish coding the +// ** co-routine. +// */ +func _sqlite3MultiValuesEnd(tls *libc.TLS, pParse uintptr, pVal uintptr) { + var pItem uintptr + _ = pItem + if pVal != 0 && (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pVal)).FpSrc)).FnSrc > 0 { + pItem = (*TSelect)(unsafe.Pointer(pVal)).FpSrc + 8 + _sqlite3VdbeEndCoroutine(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn) + _sqlite3VdbeJumpHere(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FaddrFillSub-int32(1)) + } +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are constant. +// */ +func _exprListIsConstant(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + if 0 == _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*20))).FpExpr) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are both constant and have no affinity. +// */ +func _exprListIsNoAffinity(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + var pExpr uintptr + _, _ = ii, pExpr + if _exprListIsConstant(tls, pParse, pRow) == 0 { + return 0 + } + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + pExpr = (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*20))).FpExpr + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if 0 != int32(_sqlite3ExprAffinity(tls, pExpr)) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** This function is called by the parser for the second and subsequent +// ** rows of a multi-row VALUES clause. Argument pLeft is the part of +// ** the VALUES clause already parsed, argument pRow is the vector of values +// ** for the new row. The Select object returned represents the complete +// ** VALUES clause, including the new row. +// ** +// ** There are two ways in which this may be achieved - by incremental +// ** coding of a co-routine (the "co-routine" method) or by returning a +// ** Select object equivalent to the following (the "UNION ALL" method): +// ** +// ** "pLeft UNION ALL SELECT pRow" +// ** +// ** If the VALUES clause contains a lot of rows, this compound Select +// ** object may consume a lot of memory. +// ** +// ** When the co-routine method is used, each row that will be returned +// ** by the VALUES clause is coded into part of a co-routine as it is +// ** passed to this function. The returned Select object is equivalent to: +// ** +// ** SELECT * FROM ( +// ** Select object to read co-routine +// ** ) +// ** +// ** The co-routine method is used in most cases. Exceptions are: +// ** +// ** a) If the current statement has a WITH clause. This is to avoid +// ** statements like: +// ** +// ** WITH cte AS ( VALUES('x'), ('y') ... ) +// ** SELECT * FROM cte AS a, cte AS b; +// ** +// ** This will not work, as the co-routine uses a hard-coded register +// ** for its OP_Yield instructions, and so it is not possible for two +// ** cursors to iterate through it concurrently. +// ** +// ** b) The schema is currently being parsed (i.e. the VALUES clause is part +// ** of a schema item like a VIEW or TRIGGER). In this case there is no VM +// ** being generated when parsing is taking place, and so generating +// ** a co-routine is not possible. +// ** +// ** c) There are non-constant expressions in the VALUES clause (e.g. +// ** the VALUES clause is part of a correlated sub-query). +// ** +// ** d) One or more of the values in the first row of the VALUES clause +// ** has an affinity (i.e. is a CAST expression). This causes problems +// ** because the complex rules SQLite uses (see function +// ** sqlite3SubqueryColumnTypes() in select.c) to determine the effective +// ** affinity of such a column for all rows require access to all values in +// ** the column simultaneously. +// */ +func _sqlite3MultiValues(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRow uintptr) (r uintptr) { + bp := tls.Alloc(32) + defer tls.Free(32) + var f, v1 int32 + var p, pRet, pSelect, v, v2 uintptr + var _ /* dest at bp+0 */ TSelectDest + _, _, _, _, _, _, _ = f, p, pRet, pSelect, v, v1, v2 + if (*TParse)(unsafe.Pointer(pParse)).FbHasWith != 0 || (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy != 0 || _exprListIsConstant(tls, pParse, pRow) == 0 || (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 && _exprListIsNoAffinity(tls, pParse, (*TSelect)(unsafe.Pointer(pLeft)).FpEList) == 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { + /* The co-routine method cannot be used. Fall back to UNION ALL. */ + pSelect = uintptr(0) + f = libc.Int32FromInt32(SF_Values) | libc.Int32FromInt32(SF_MultiValue) + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc != 0 { + _sqlite3MultiValuesEnd(tls, pParse, pLeft) + f = int32(SF_Values) + } else { + if (*TSelect)(unsafe.Pointer(pLeft)).FpPrior != 0 { + /* In this case set the SF_MultiValue flag only if it was set on pLeft */ + f = int32(uint32(f) & (*TSelect)(unsafe.Pointer(pLeft)).FselFlags) + } + } + pSelect = _sqlite3SelectNew(tls, pParse, pRow, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(f), uintptr(0)) + *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) + if pSelect != 0 { + (*TSelect)(unsafe.Pointer(pSelect)).Fop = uint8(TK_ALL) + (*TSelect)(unsafe.Pointer(pSelect)).FpPrior = pLeft + pLeft = pSelect + } + } else { + p = uintptr(0) /* SrcItem that reads from co-routine */ + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 { + /* Co-routine has not yet been started and the special Select object + ** that accesses the co-routine has not yet been created. This block + ** does both those things. */ + v = _sqlite3GetVdbe(tls, pParse) + pRet = _sqlite3SelectNew(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) + /* Ensure the database schema has been read. This is to ensure we have + ** the correct text encoding. */ + if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmDbFlags&uint32(DBFLAG_SchemaKnownOk) == uint32(0) { + _sqlite3ReadSchema(tls, pParse) + } + if pRet != 0 { + (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pRet)).FpSrc)).FnSrc = int32(1) + (*TSelect)(unsafe.Pointer(pRet)).FpPrior = (*TSelect)(unsafe.Pointer(pLeft)).FpPrior + (*TSelect)(unsafe.Pointer(pRet)).Fop = (*TSelect)(unsafe.Pointer(pLeft)).Fop + (*TSelect)(unsafe.Pointer(pLeft)).FpPrior = uintptr(0) + (*TSelect)(unsafe.Pointer(pLeft)).Fop = uint8(TK_SELECT) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + p = (*TSelect)(unsafe.Pointer(pRet)).FpSrc + 8 + (*TSrcItem)(unsafe.Pointer(p)).FpSelect = pLeft + libc.SetBitFieldPtr16Uint32(p+36+4, libc.Uint32FromInt32(1), 5, 0x20) + (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + v2 = pParse + 44 + *(*int32)(unsafe.Pointer(v2))++ + v1 = *(*int32)(unsafe.Pointer(v2)) + (*TSrcItem)(unsafe.Pointer(p)).FregReturn = v1 + (*TSrcItem)(unsafe.Pointer(p)).FiCursor = -int32(1) + *(*Tu32)(unsafe.Pointer(p + 60)) = uint32(2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn, 0, (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub) + _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + /* Allocate registers for the output of the co-routine. Do so so + ** that there are two unused registers immediately before those + ** used by the co-routine. This allows the code in sqlite3Insert() + ** to use these registers directly, instead of copying the output + ** of the co-routine to a separate array for processing. */ + (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(3) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpEList)).FnExpr + *(*int32)(unsafe.Pointer(pParse + 44)) += int32(2) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst + *(*Tu32)(unsafe.Pointer(pLeft + 4)) |= uint32(SF_MultiValue) + _sqlite3Select(tls, pParse, pLeft, bp) + (*TSrcItem)(unsafe.Pointer(p)).FregResult = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst + _ = libc.Int32FromInt32(0) + pLeft = pRet + } + } else { + p = (*TSelect)(unsafe.Pointer(pLeft)).FpSrc + 8 + _ = libc.Int32FromInt32(0) + *(*Tu32)(unsafe.Pointer(p + 60))++ + } + if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { + _ = libc.Int32FromInt32(0) + if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p)).FpSelect)).FpEList)).FnExpr != (*TExprList)(unsafe.Pointer(pRow)).FnExpr { + _sqlite3SelectWrongNumTermsError(tls, pParse, (*TSrcItem)(unsafe.Pointer(p)).FpSelect) + } else { + _sqlite3ExprCodeExprList(tls, pParse, pRow, (*TSrcItem)(unsafe.Pointer(p)).FregResult, 0, uint8(0)) + _sqlite3VdbeAddOp1(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Yield), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + } + } + _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pRow) + } + return pLeft +} + // C documentation // // /* @@ -112597,27 +113394,27 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uintptr, pColumn uintptr, onError int32, pUpsert uintptr) { bp := tls.Alloc(112) defer tls.Free(112) - var aRegIdx, db, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, v, v13, v16, v18, v6, v9 uintptr - var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v12, v15, v17, v19, v23, v24, v5, v7, v8 int32 + var aRegIdx, db, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, v, v10, v14, v17, v19, v7 uintptr + var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v13, v16, v18, v20, v24, v25, v5, v6, v8, v9 int32 var appendFlag, bIdListInOrder, useTempTable, withoutRowid Tu8 - var colFlags, v21 Tu32 + var colFlags, v22 Tu32 var _ /* dest at bp+8 */ TSelectDest var _ /* iDataCur at bp+0 */ int32 var _ /* iIdxCur at bp+4 */ int32 var _ /* isReplace at bp+76 */ int32 var _ /* sNC at bp+40 */ TNameContext var _ /* tmask at bp+36 */ int32 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v12, v13, v15, v16, v17, v18, v19, v21, v23, v24, v5, v6, v7, v8, v9 /* Number of columns in the data */ - nHidden = 0 /* Number of hidden columns if TABLE is virtual */ - *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ - *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ - ipkColumn = -int32(1) /* Label for the end of the insertion loop */ - srcTab = 0 /* Data comes from this temporary cursor if >=0 */ - addrInsTop = 0 /* Jump to label "D" */ - addrCont = 0 /* Index of database holding TABLE */ - useTempTable = uint8(0) /* Store SELECT results in intermediate table */ - appendFlag = uint8(0) /* True if IDLIST is in table order */ - pList = uintptr(0) /* Register in which to store next column */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v10, v13, v14, v16, v17, v18, v19, v20, v22, v24, v25, v5, v6, v7, v8, v9 /* Number of columns in the data */ + nHidden = 0 /* Number of hidden columns if TABLE is virtual */ + *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ + *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ + ipkColumn = -int32(1) /* Label for the end of the insertion loop */ + srcTab = 0 /* Data comes from this temporary cursor if >=0 */ + addrInsTop = 0 /* Jump to label "D" */ + addrCont = 0 /* Index of database holding TABLE */ + useTempTable = uint8(0) /* Store SELECT results in intermediate table */ + appendFlag = uint8(0) /* True if IDLIST is in table order */ + pList = uintptr(0) /* Register in which to store next column */ /* Register allocations */ regFromSelect = 0 /* Base register for data coming from SELECT */ regAutoinc = 0 /* Register holding the AUTOINCREMENT counter */ @@ -112764,7 +113561,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _ = libc.Int32FromInt32(0) } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*12))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_STORED)|libc.Int32FromInt32(COLFLAG_VIRTUAL)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16084, libc.VaList(bp+88, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*12))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16163, libc.VaList(bp+88, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*12))).FzCnName)) goto insert_cleanup } break @@ -112779,7 +113576,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i bIdListInOrder = uint8(0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16125, libc.VaList(bp+88, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*8))).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16204, libc.VaList(bp+88, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*8))).FzName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto insert_cleanup } @@ -112796,31 +113593,49 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** co-routine is the common header to the 3rd and 4th templates. */ if pSelect != 0 { /* Result code */ - v6 = pParse + 44 - *(*int32)(unsafe.Pointer(v6))++ - v5 = *(*int32)(unsafe.Pointer(v6)) - regYield = v5 - addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) - _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) - _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) - if bIdListInOrder != 0 { - v7 = regData + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc)).FnSrc == int32(1) && int32(uint32(*(*uint16)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + 36 + 4))&0x20>>5)) != 0 && (*TSelect)(unsafe.Pointer(pSelect)).FpPrior == uintptr(0) { + pItem = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSDParm = (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn + regFromSelect = (*TSrcItem)(unsafe.Pointer(pItem)).FregResult + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FpEList)).FnExpr + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+16236, libc.VaList(bp+88, pItem)) + if bIdListInOrder != 0 && nColumn == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { + regData = regFromSelect + regRowid = regData - int32(1) + if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { + v5 = int32(1) + } else { + v5 = 0 + } + regIns = regRowid - v5 + } } else { - v7 = 0 - } - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v7 - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) - rc = _sqlite3Select(tls, pParse, pSelect, bp+8) - regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst - _ = libc.Int32FromInt32(0) - if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { - goto insert_cleanup + v7 = pParse + 44 + *(*int32)(unsafe.Pointer(v7))++ + v6 = *(*int32)(unsafe.Pointer(v7)) /* Top of the co-routine */ + regYield = v6 + addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) + _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) + if bIdListInOrder != 0 { + v8 = regData + } else { + v8 = 0 + } + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) + rc = _sqlite3Select(tls, pParse, pSelect, bp+8) + regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst + _ = libc.Int32FromInt32(0) + if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { + goto insert_cleanup + } + _ = libc.Int32FromInt32(0) + _sqlite3VdbeEndCoroutine(tls, v, regYield) + _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ + _ = libc.Int32FromInt32(0) + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr } - _ = libc.Int32FromInt32(0) - _sqlite3VdbeEndCoroutine(tls, v, regYield) - _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ - _ = libc.Int32FromInt32(0) - nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr /* Set useTempTable to TRUE if the result of the SELECT statement ** should be written into a temporary table (template 4). Set to ** FALSE if each output row of the SELECT can be written directly into @@ -112834,10 +113649,10 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin useTempTable = uint8(1) } if useTempTable != 0 { /* Label "L" */ - v9 = pParse + 40 - v8 = *(*int32)(unsafe.Pointer(v9)) - *(*int32)(unsafe.Pointer(v9))++ - srcTab = v8 + v10 = pParse + 40 + v9 = *(*int32)(unsafe.Pointer(v10)) + *(*int32)(unsafe.Pointer(v10))++ + srcTab = v9 regRec = _sqlite3GetTempReg(tls, pParse) regTempRowid = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp2(tls, v, int32(OP_OpenEphemeral), srcTab, nColumn) @@ -112879,8 +113694,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*12))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { ipkColumn-- } - goto _10 - _10: + goto _11 + _11: ; i-- } @@ -112900,28 +113715,28 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*12))).FcolFlags)&int32(COLFLAG_NOINSERT) != 0 { nHidden++ } - goto _11 - _11: + goto _12 + _12: ; i++ } } if nColumn != int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16157, libc.VaList(bp+88, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16244, libc.VaList(bp+88, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) goto insert_cleanup } } if pColumn != uintptr(0) && nColumn != (*TIdList)(unsafe.Pointer(pColumn)).FnId { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16209, libc.VaList(bp+88, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16296, libc.VaList(bp+88, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) goto insert_cleanup } /* Initialize the count of rows to be inserted */ if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&(uint64(libc.Int32FromInt32(0x00001))<= 0 { /* tag-20191021-001: If the INTEGER PRIMARY KEY is being generated by the ** SELECT, go ahead and copy the value into the rowid slot now, so that @@ -113037,18 +113852,18 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** using excess space. The file format definition requires this extra ** NULL - we cannot optimize further by skipping the column completely */ _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) - goto _20 + goto _21 } - v21 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*12))).FcolFlags) - colFlags = v21 - if v21&uint32(COLFLAG_NOINSERT) != uint32(0) { + v22 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*12))).FcolFlags) + colFlags = v22 + if v22&uint32(COLFLAG_NOINSERT) != uint32(0) { nHidden++ if colFlags&uint32(COLFLAG_VIRTUAL) != uint32(0) { /* Virtual columns do not participate in OP_MakeRecord. So back up ** iRegStore by one slot to compensate for the iRegStore++ in the ** outer for() loop */ iRegStore-- - goto _20 + goto _21 } else { if colFlags&uint32(COLFLAG_STORED) != uint32(0) { /* Stored columns are computed later. But if there are BEFORE @@ -113058,13 +113873,13 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if *(*int32)(unsafe.Pointer(bp + 36))&int32(TRIGGER_BEFORE) != 0 { _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) } - goto _20 + goto _21 } else { if pColumn == uintptr(0) { /* Hidden columns that are not explicitly named in the INSERT ** get there default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*12), iRegStore) - goto _20 + goto _21 } } } @@ -113076,8 +113891,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if !(j < (*TIdList)(unsafe.Pointer(pColumn)).FnId && *(*int32)(unsafe.Pointer(pColumn + 8 + uintptr(j)*8 + 4)) != i) { break } - goto _22 - _22: + goto _23 + _23: ; j++ } @@ -113085,14 +113900,14 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin /* A column not named in the insert column list gets its ** default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*12), iRegStore) - goto _20 + goto _21 } k = j } else { if nColumn == 0 { /* This is INSERT INTO ... DEFAULT VALUES. Load the default value. */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*12), iRegStore) - goto _20 + goto _21 } else { k = i - nHidden } @@ -113109,16 +113924,16 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin y = _sqlite3ExprCodeTarget(tls, pParse, pX, iRegStore) if y != iRegStore { if (*TExpr)(unsafe.Pointer(pX)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) { - v23 = int32(OP_Copy) + v24 = int32(OP_Copy) } else { - v23 = int32(OP_SCopy) + v24 = int32(OP_SCopy) } - _sqlite3VdbeAddOp2(tls, v, v23, y, iRegStore) + _sqlite3VdbeAddOp2(tls, v, v24, y, iRegStore) } } } - goto _20 - _20: + goto _21 + _21: ; i++ iRegStore++ @@ -113231,11 +114046,11 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VtabMakeWritable(tls, pParse, pTab) _sqlite3VdbeAddOp4(tls, v, int32(OP_VUpdate), int32(1), int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+int32(2), regIns, pVTab, -int32(11)) if onError == int32(OE_Default) { - v24 = int32(OE_Abort) + v25 = int32(OE_Abort) } else { - v24 = onError + v25 = onError } - _sqlite3VdbeChangeP5(tls, v, uint16(v24)) + _sqlite3VdbeChangeP5(tls, v, uint16(v25)) _sqlite3MayAbort(tls, pParse) } else { *(*int32)(unsafe.Pointer(bp + 76)) = 0 /* True to use OPFLAG_SEEKRESULT */ @@ -113278,6 +114093,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VdbeJumpHere(tls, v, addrInsTop) } } + goto insert_end insert_end: ; /* Update the sqlite_sequence table by storing the content of the @@ -113293,8 +114109,9 @@ insert_end: ** invoke the callback function. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16301) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16388) } + goto insert_cleanup insert_cleanup: ; _sqlite3SrcListDelete(tls, db, pTabList) @@ -113691,7 +114508,7 @@ func _sqlite3GenerateConstraintChecks(tls *libc.TLS, pParse uintptr, pTab uintpt case int32(OE_Rollback): fallthrough case int32(OE_Fail): - zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12381, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12506, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) _sqlite3VdbeAddOp3(tls, v, int32(OP_HaltIfNull), libc.Int32FromInt32(SQLITE_CONSTRAINT)|libc.Int32FromInt32(5)<= 0 && !(int32(*(*int8)(unsafe.Pointer(zFile + uintptr(iFile)))) == libc.Int32FromUint8('/'))) { @@ -115966,7 +116784,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp iFile-- } iFile++ - if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16350, int32(3)) == 0 { + if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16437, int32(3)) == 0 { iFile += int32(3) } iEntry = int32(8) @@ -115986,7 +116804,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp ; iFile++ } - libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16354, uint32(6)) + libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16441, uint32(6)) zEntry = zAltEntry xInit = _sqlite3OsDlSym(tls, pVfs, handle, zEntry) } @@ -115998,7 +116816,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v7 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16360, libc.VaList(bp+16, zEntry, zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16447, libc.VaList(bp+16, zEntry, zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -116013,7 +116831,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp return SQLITE_OK } if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16403, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16490, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3OsDlClose(tls, pVfs, handle) @@ -116034,6 +116852,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*int32)(unsafe.Pointer(v9))++ *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaExtension + uintptr(v8)*4)) = handle return SQLITE_OK + goto extension_not_found extension_not_found: ; if pzErrMsg != 0 { @@ -116043,7 +116862,7 @@ extension_not_found: *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v10 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16435, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16522, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -116052,7 +116871,7 @@ extension_not_found: /* Shared library endings to try if zFile cannot be loaded as written */ var _azEndings = [1]uintptr{ - 0: __ccgo_ts + 16315, + 0: __ccgo_ts + 16402, } func Xsqlite3_load_extension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintptr, pzErrMsg uintptr) (r int32) { @@ -116287,7 +117106,7 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { rc = v2 } if v3 && v2 != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16472, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16559, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) go1 = 0 } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -116341,63 +117160,63 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { // ** result column is different from the name of the pragma // */ var _pragCName = [57]uintptr{ - 0: __ccgo_ts + 5481, - 1: __ccgo_ts + 16511, - 2: __ccgo_ts + 9058, - 3: __ccgo_ts + 16515, - 4: __ccgo_ts + 16520, - 5: __ccgo_ts + 16523, - 6: __ccgo_ts + 16533, - 7: __ccgo_ts + 16543, - 8: __ccgo_ts + 16549, - 9: __ccgo_ts + 16553, - 10: __ccgo_ts + 16558, - 11: __ccgo_ts + 16563, - 12: __ccgo_ts + 16571, - 13: __ccgo_ts + 16582, - 14: __ccgo_ts + 16585, - 15: __ccgo_ts + 16592, - 16: __ccgo_ts + 16553, - 17: __ccgo_ts + 16558, - 18: __ccgo_ts + 16599, - 19: __ccgo_ts + 16604, - 20: __ccgo_ts + 16607, - 21: __ccgo_ts + 16614, - 22: __ccgo_ts + 16549, - 23: __ccgo_ts + 16553, - 24: __ccgo_ts + 16620, - 25: __ccgo_ts + 16625, - 26: __ccgo_ts + 16630, - 27: __ccgo_ts + 16553, - 28: __ccgo_ts + 16634, - 29: __ccgo_ts + 16558, - 30: __ccgo_ts + 16642, - 31: __ccgo_ts + 16646, - 32: __ccgo_ts + 16651, - 33: __ccgo_ts + 11797, - 34: __ccgo_ts + 11793, - 35: __ccgo_ts + 16657, - 36: __ccgo_ts + 16662, - 37: __ccgo_ts + 16667, - 38: __ccgo_ts + 16511, - 39: __ccgo_ts + 16553, - 40: __ccgo_ts + 16672, - 41: __ccgo_ts + 16679, - 42: __ccgo_ts + 16686, - 43: __ccgo_ts + 9058, - 44: __ccgo_ts + 16694, - 45: __ccgo_ts + 5484, - 46: __ccgo_ts + 16700, - 47: __ccgo_ts + 16511, - 48: __ccgo_ts + 16553, - 49: __ccgo_ts + 16705, - 50: __ccgo_ts + 16710, - 51: __ccgo_ts + 15907, - 52: __ccgo_ts + 16715, - 53: __ccgo_ts + 16728, - 54: __ccgo_ts + 16737, - 55: __ccgo_ts + 16744, - 56: __ccgo_ts + 16755, + 0: __ccgo_ts + 5545, + 1: __ccgo_ts + 16598, + 2: __ccgo_ts + 9183, + 3: __ccgo_ts + 16602, + 4: __ccgo_ts + 16607, + 5: __ccgo_ts + 16610, + 6: __ccgo_ts + 16620, + 7: __ccgo_ts + 16630, + 8: __ccgo_ts + 16636, + 9: __ccgo_ts + 16640, + 10: __ccgo_ts + 16645, + 11: __ccgo_ts + 16650, + 12: __ccgo_ts + 16658, + 13: __ccgo_ts + 16669, + 14: __ccgo_ts + 16672, + 15: __ccgo_ts + 16679, + 16: __ccgo_ts + 16640, + 17: __ccgo_ts + 16645, + 18: __ccgo_ts + 16686, + 19: __ccgo_ts + 16691, + 20: __ccgo_ts + 16694, + 21: __ccgo_ts + 16701, + 22: __ccgo_ts + 16636, + 23: __ccgo_ts + 16640, + 24: __ccgo_ts + 16707, + 25: __ccgo_ts + 16712, + 26: __ccgo_ts + 16717, + 27: __ccgo_ts + 16640, + 28: __ccgo_ts + 16721, + 29: __ccgo_ts + 16645, + 30: __ccgo_ts + 16729, + 31: __ccgo_ts + 16733, + 32: __ccgo_ts + 16738, + 33: __ccgo_ts + 11922, + 34: __ccgo_ts + 11918, + 35: __ccgo_ts + 16744, + 36: __ccgo_ts + 16749, + 37: __ccgo_ts + 16754, + 38: __ccgo_ts + 16598, + 39: __ccgo_ts + 16640, + 40: __ccgo_ts + 16759, + 41: __ccgo_ts + 16766, + 42: __ccgo_ts + 16773, + 43: __ccgo_ts + 9183, + 44: __ccgo_ts + 16781, + 45: __ccgo_ts + 5548, + 46: __ccgo_ts + 16787, + 47: __ccgo_ts + 16598, + 48: __ccgo_ts + 16640, + 49: __ccgo_ts + 16792, + 50: __ccgo_ts + 16797, + 51: __ccgo_ts + 15986, + 52: __ccgo_ts + 16802, + 53: __ccgo_ts + 16815, + 54: __ccgo_ts + 16824, + 55: __ccgo_ts + 16831, + 56: __ccgo_ts + 16842, } // C documentation @@ -116416,191 +117235,191 @@ type PragmaName = TPragmaName var _aPragmaName = [66]TPragmaName{ 0: { - FzName: __ccgo_ts + 16763, + FzName: __ccgo_ts + 16850, FePragTyp: uint8(PragTyp_ANALYSIS_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 1: { - FzName: __ccgo_ts + 16778, + FzName: __ccgo_ts + 16865, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_APPLICATION_ID), }, 2: { - FzName: __ccgo_ts + 16793, + FzName: __ccgo_ts + 16880, FePragTyp: uint8(PragTyp_AUTO_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 3: { - FzName: __ccgo_ts + 16805, + FzName: __ccgo_ts + 16892, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_AutoIndex), }, 4: { - FzName: __ccgo_ts + 16821, + FzName: __ccgo_ts + 16908, FePragTyp: uint8(PragTyp_BUSY_TIMEOUT), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(56), FnPragCName: uint8(1), }, 5: { - FzName: __ccgo_ts + 16744, + FzName: __ccgo_ts + 16831, FePragTyp: uint8(PragTyp_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 6: { - FzName: __ccgo_ts + 16834, + FzName: __ccgo_ts + 16921, FePragTyp: uint8(PragTyp_CACHE_SPILL), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 7: { - FzName: __ccgo_ts + 16846, + FzName: __ccgo_ts + 16933, FePragTyp: uint8(PragTyp_CASE_SENSITIVE_LIKE), FmPragFlg: uint8(PragFlg_NoColumns), }, 8: { - FzName: __ccgo_ts + 16866, + FzName: __ccgo_ts + 16953, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CellSizeCk), }, 9: { - FzName: __ccgo_ts + 16882, + FzName: __ccgo_ts + 16969, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CkptFullFSync), }, 10: { - FzName: __ccgo_ts + 16903, + FzName: __ccgo_ts + 16990, FePragTyp: uint8(PragTyp_COLLATION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(38), FnPragCName: uint8(2), }, 11: { - FzName: __ccgo_ts + 16918, + FzName: __ccgo_ts + 17005, FePragTyp: uint8(PragTyp_COMPILE_OPTIONS), FmPragFlg: uint8(PragFlg_Result0), }, 12: { - FzName: __ccgo_ts + 16934, + FzName: __ccgo_ts + 17021, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00001)) << libc.Int32FromInt32(32), }, 13: { - FzName: __ccgo_ts + 16948, + FzName: __ccgo_ts + 17035, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_DATA_VERSION), }, 14: { - FzName: __ccgo_ts + 16961, + FzName: __ccgo_ts + 17048, FePragTyp: uint8(PragTyp_DATABASE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(47), FnPragCName: uint8(3), }, 15: { - FzName: __ccgo_ts + 16975, + FzName: __ccgo_ts + 17062, FePragTyp: uint8(PragTyp_DEFAULT_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiPragCName: uint8(55), FnPragCName: uint8(1), }, 16: { - FzName: __ccgo_ts + 16994, + FzName: __ccgo_ts + 17081, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_DeferFKs), }, 17: { - FzName: __ccgo_ts + 17013, + FzName: __ccgo_ts + 17100, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_NullCallback), }, 18: { - FzName: __ccgo_ts + 17036, + FzName: __ccgo_ts + 17123, FePragTyp: uint8(PragTyp_ENCODING), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 19: { - FzName: __ccgo_ts + 17045, + FzName: __ccgo_ts + 17132, FePragTyp: uint8(PragTyp_FOREIGN_KEY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(43), FnPragCName: uint8(4), }, 20: { - FzName: __ccgo_ts + 17063, + FzName: __ccgo_ts + 17150, FePragTyp: uint8(PragTyp_FOREIGN_KEY_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FnPragCName: uint8(8), }, 21: { - FzName: __ccgo_ts + 17080, + FzName: __ccgo_ts + 17167, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ForeignKeys), }, 22: { - FzName: __ccgo_ts + 17093, + FzName: __ccgo_ts + 17180, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), }, 23: { - FzName: __ccgo_ts + 17108, + FzName: __ccgo_ts + 17195, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullColNames), }, 24: { - FzName: __ccgo_ts + 17126, + FzName: __ccgo_ts + 17213, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullFSync), }, 25: { - FzName: __ccgo_ts + 17136, + FzName: __ccgo_ts + 17223, FePragTyp: uint8(PragTyp_FUNCTION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(27), FnPragCName: uint8(6), }, 26: { - FzName: __ccgo_ts + 17150, + FzName: __ccgo_ts + 17237, FePragTyp: uint8(PragTyp_HARD_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 27: { - FzName: __ccgo_ts + 17166, + FzName: __ccgo_ts + 17253, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_IgnoreChecks), }, 28: { - FzName: __ccgo_ts + 17191, + FzName: __ccgo_ts + 17278, FePragTyp: uint8(PragTyp_INCREMENTAL_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_NoColumns)), }, 29: { - FzName: __ccgo_ts + 17210, + FzName: __ccgo_ts + 17297, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), FnPragCName: uint8(3), }, 30: { - FzName: __ccgo_ts + 17221, + FzName: __ccgo_ts + 17308, FePragTyp: uint8(PragTyp_INDEX_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(38), FnPragCName: uint8(5), }, 31: { - FzName: __ccgo_ts + 17232, + FzName: __ccgo_ts + 17319, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), @@ -116608,146 +117427,146 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 32: { - FzName: __ccgo_ts + 17244, + FzName: __ccgo_ts + 17331, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 33: { - FzName: __ccgo_ts + 17260, + FzName: __ccgo_ts + 17347, FePragTyp: uint8(PragTyp_JOURNAL_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 34: { - FzName: __ccgo_ts + 17273, + FzName: __ccgo_ts + 17360, FePragTyp: uint8(PragTyp_JOURNAL_SIZE_LIMIT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 35: { - FzName: __ccgo_ts + 17292, + FzName: __ccgo_ts + 17379, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_LegacyAlter), }, 36: { - FzName: __ccgo_ts + 17311, + FzName: __ccgo_ts + 17398, FePragTyp: uint8(PragTyp_LOCKING_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 37: { - FzName: __ccgo_ts + 17324, + FzName: __ccgo_ts + 17411, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 38: { - FzName: __ccgo_ts + 17339, + FzName: __ccgo_ts + 17426, FePragTyp: uint8(PragTyp_MMAP_SIZE), }, 39: { - FzName: __ccgo_ts + 17349, + FzName: __ccgo_ts + 17436, FePragTyp: uint8(PragTyp_MODULE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 40: { - FzName: __ccgo_ts + 17361, + FzName: __ccgo_ts + 17448, FePragTyp: uint8(PragTyp_OPTIMIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_NeedSchema)), }, 41: { - FzName: __ccgo_ts + 17370, + FzName: __ccgo_ts + 17457, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 42: { - FzName: __ccgo_ts + 17381, + FzName: __ccgo_ts + 17468, FePragTyp: uint8(PragTyp_PAGE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 43: { - FzName: __ccgo_ts + 17391, + FzName: __ccgo_ts + 17478, FePragTyp: uint8(PragTyp_PRAGMA_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 44: { - FzName: __ccgo_ts + 17403, + FzName: __ccgo_ts + 17490, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_QueryOnly), }, 45: { - FzName: __ccgo_ts + 17414, + FzName: __ccgo_ts + 17501, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 46: { - FzName: __ccgo_ts + 17426, + FzName: __ccgo_ts + 17513, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00004)) << libc.Int32FromInt32(32), }, 47: { - FzName: __ccgo_ts + 17443, + FzName: __ccgo_ts + 17530, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_RecTriggers), }, 48: { - FzName: __ccgo_ts + 17462, + FzName: __ccgo_ts + 17549, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ReverseOrder), }, 49: { - FzName: __ccgo_ts + 17488, + FzName: __ccgo_ts + 17575, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_SCHEMA_VERSION), }, 50: { - FzName: __ccgo_ts + 17503, + FzName: __ccgo_ts + 17590, FePragTyp: uint8(PragTyp_SECURE_DELETE), FmPragFlg: uint8(PragFlg_Result0), }, 51: { - FzName: __ccgo_ts + 17517, + FzName: __ccgo_ts + 17604, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ShortColNames), }, 52: { - FzName: __ccgo_ts + 17536, + FzName: __ccgo_ts + 17623, FePragTyp: uint8(PragTyp_SHRINK_MEMORY), FmPragFlg: uint8(PragFlg_NoColumns), }, 53: { - FzName: __ccgo_ts + 17550, + FzName: __ccgo_ts + 17637, FePragTyp: uint8(PragTyp_SOFT_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 54: { - FzName: __ccgo_ts + 17566, + FzName: __ccgo_ts + 17653, FePragTyp: uint8(PragTyp_SYNCHRONOUS), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 55: { - FzName: __ccgo_ts + 17578, + FzName: __ccgo_ts + 17665, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), FnPragCName: uint8(6), }, 56: { - FzName: __ccgo_ts + 17589, + FzName: __ccgo_ts + 17676, FePragTyp: uint8(PragTyp_TABLE_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1)), FiPragCName: uint8(15), FnPragCName: uint8(6), }, 57: { - FzName: __ccgo_ts + 17600, + FzName: __ccgo_ts + 17687, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), @@ -116755,45 +117574,45 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 58: { - FzName: __ccgo_ts + 17612, + FzName: __ccgo_ts + 17699, FePragTyp: uint8(PragTyp_TEMP_STORE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 59: { - FzName: __ccgo_ts + 17623, + FzName: __ccgo_ts + 17710, FePragTyp: uint8(PragTyp_TEMP_STORE_DIRECTORY), FmPragFlg: uint8(PragFlg_NoColumns1), }, 60: { - FzName: __ccgo_ts + 17644, + FzName: __ccgo_ts + 17731, FePragTyp: uint8(PragTyp_THREADS), FmPragFlg: uint8(PragFlg_Result0), }, 61: { - FzName: __ccgo_ts + 17652, + FzName: __ccgo_ts + 17739, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_TrustedSchema), }, 62: { - FzName: __ccgo_ts + 17667, + FzName: __ccgo_ts + 17754, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_USER_VERSION), }, 63: { - FzName: __ccgo_ts + 17680, + FzName: __ccgo_ts + 17767, FePragTyp: uint8(PragTyp_WAL_AUTOCHECKPOINT), }, 64: { - FzName: __ccgo_ts + 17699, + FzName: __ccgo_ts + 17786, FePragTyp: uint8(PragTyp_WAL_CHECKPOINT), FmPragFlg: uint8(PragFlg_NeedSchema), FiPragCName: uint8(50), FnPragCName: uint8(3), }, 65: { - FzName: __ccgo_ts + 17714, + FzName: __ccgo_ts + 17801, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(SQLITE_WriteSchema) | libc.Int32FromInt32(SQLITE_NoSchemaError)), @@ -116805,6 +117624,31 @@ var _aPragmaName = [66]TPragmaName{ /************** End of pragma.h **********************************************/ /************** Continuing where we left off in pragma.c *********************/ +/* +** When the 0x10 bit of PRAGMA optimize is set, any ANALYZE commands +** will be run with an analysis_limit set to the lessor of the value of +** the following macro or to the actual analysis_limit if it is non-zero, +** in order to prevent PRAGMA optimize from running for too long. +** +** The value of 2000 is chosen emperically so that the worst-case run-time +** for PRAGMA optimize does not exceed 100 milliseconds against a variety +** of test databases on a RaspberryPI-4 compiled using -Os and without +** -DSQLITE_DEBUG. Of course, your mileage may vary. For the purpose of +** this paragraph, "worst-case" means that ANALYZE ends up being +** run on every table in the database. The worst case typically only +** happens if PRAGMA optimize is run on a database file for which ANALYZE +** has not been previously run and the 0x10000 flag is included so that +** all tables are analyzed. The usual case for PRAGMA optimize is that +** no ANALYZE commands will be run at all, or if any ANALYZE happens it +** will be against a single table, so that expected timing for PRAGMA +** optimize on a PI-4 is more like 1 millisecond or less with the 0x10000 +** flag or less than 100 microseconds without the 0x10000 flag. +** +** An analysis limit of 2000 is almost always sufficient for the query +** planner to fully characterize an index. The additional accuracy from +** a larger analysis is not usually helpful. + */ + // C documentation // // /* @@ -116894,10 +117738,10 @@ func _sqlite3GetBoolean(tls *libc.TLS, z uintptr, dflt Tu8) (r Tu8) { // */ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { if z != 0 { - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17730) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17817) { return int32(PAGER_LOCKINGMODE_EXCLUSIVE) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17740) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17827) { return PAGER_LOCKINGMODE_NORMAL } } @@ -116915,13 +117759,13 @@ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { func _getAutoVacuum(tls *libc.TLS, z uintptr) (r int32) { var i, v1 int32 _, _ = i, v1 - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8218) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8343) { return BTREE_AUTOVACUUM_NONE } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17747) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17834) { return int32(BTREE_AUTOVACUUM_FULL) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17752) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17839) { return int32(BTREE_AUTOVACUUM_INCR) } i = _sqlite3Atoi(tls, z) @@ -116944,10 +117788,10 @@ func _getTempStore(tls *libc.TLS, z uintptr) (r int32) { if int32(*(*int8)(unsafe.Pointer(z))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(z))) <= int32('2') { return int32(*(*int8)(unsafe.Pointer(z))) - int32('0') } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+16705) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+16792) == 0 { return int32(1) } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+17764) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+17851) == 0 { return int32(2) } else { return 0 @@ -116969,7 +117813,7 @@ func _invalidateTempStorage(tls *libc.TLS, pParse uintptr) (r int32) { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpBt != uintptr(0) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || _sqlite3BtreeTxnState(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpBt) != SQLITE_TXN_NONE { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17771, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17858, 0) return int32(SQLITE_ERROR) } _sqlite3BtreeClose(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpBt) @@ -117104,15 +117948,15 @@ func _actionName(tls *libc.TLS, action Tu8) (r uintptr) { _ = zName switch int32(action) { case int32(OE_SetNull): - zName = __ccgo_ts + 17833 + zName = __ccgo_ts + 17920 case int32(OE_SetDflt): - zName = __ccgo_ts + 17842 + zName = __ccgo_ts + 17929 case int32(OE_Cascade): - zName = __ccgo_ts + 17854 + zName = __ccgo_ts + 17941 case int32(OE_Restrict): - zName = __ccgo_ts + 17862 + zName = __ccgo_ts + 17949 default: - zName = __ccgo_ts + 17871 + zName = __ccgo_ts + 17958 _ = libc.Int32FromInt32(0) break } @@ -117141,12 +117985,12 @@ func _sqlite3JournalModename(tls *libc.TLS, eMode int32) (r uintptr) { } var _azModeName = [6]uintptr{ - 0: __ccgo_ts + 17881, - 1: __ccgo_ts + 17888, - 2: __ccgo_ts + 17896, - 3: __ccgo_ts + 17900, - 4: __ccgo_ts + 17764, - 5: __ccgo_ts + 17909, + 0: __ccgo_ts + 17968, + 1: __ccgo_ts + 17975, + 2: __ccgo_ts + 17983, + 3: __ccgo_ts + 17987, + 4: __ccgo_ts + 17851, + 5: __ccgo_ts + 17996, } // C documentation @@ -117212,15 +118056,15 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s goto _1 } if (*TFuncDef)(unsafe.Pointer(p)).FxValue != uintptr(0) { - zType = __ccgo_ts + 17934 + zType = __ccgo_ts + 18021 } else { if (*TFuncDef)(unsafe.Pointer(p)).FxFinalize != uintptr(0) { - zType = __ccgo_ts + 17936 + zType = __ccgo_ts + 18023 } else { - zType = __ccgo_ts + 7617 + zType = __ccgo_ts + 7742 } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+17938, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18025, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) goto _1 _1: ; @@ -117229,9 +118073,9 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s } var _azEnc = [4]uintptr{ - 1: __ccgo_ts + 17913, - 2: __ccgo_ts + 17918, - 3: __ccgo_ts + 17926, + 1: __ccgo_ts + 18000, + 2: __ccgo_ts + 18005, + 3: __ccgo_ts + 18013, } // C documentation @@ -117272,15 +118116,15 @@ func _integrityCheckResultRow(tls *libc.TLS, v uintptr) (r int32) { func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pValue uintptr, minusFlag int32) { bp := tls.Alloc(208) defer tls.Free(208) - var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, mxIdx, n, nHidden, nIdx, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v60, v62, v63, v64, v65, v68 int32 - var aOp, aOp1, aOp2, aOp3, aOp4, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v61, v66, v8 uintptr + var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v48, v50, v64, v66, v67, v68, v69, v72, v75, v76 int32 + var aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v65, v70, v8 uintptr var azOrigin [3]uintptr var cnum Ti16 var enc Tu8 var iPrior Tsqlite3_int64 + var iRange, szThreshold TLogEst var mask Tu64 var opMask Tu32 - var szThreshold TLogEst var _ /* N at bp+104 */ Tsqlite3_int64 var _ /* N at bp+112 */ Tsqlite3_int64 var _ /* N at bp+120 */ Tsqlite3_int64 @@ -117301,7 +118145,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p var _ /* size at bp+44 */ int32 var _ /* sz at bp+48 */ Tsqlite3_int64 var _ /* x at bp+24 */ Ti64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iPrior, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, mxIdx, n, nHidden, nIdx, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v5, v60, v61, v62, v63, v64, v65, v66, v68, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iPrior, iRange, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v48, v5, v50, v64, v65, v66, v67, v68, v69, v70, v72, v75, v76, v8 zLeft = uintptr(0) /* Nul-terminated UTF-8 string */ zRight = uintptr(0) /* Nul-terminated UTF-8 string , or NULL */ zDb = uintptr(0) /* return value form SQLITE_FCNTL_PRAGMA */ @@ -117330,7 +118174,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p return } if minusFlag != 0 { - zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+17945, libc.VaList(bp+136, pValue)) + zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+18032, libc.VaList(bp+136, pValue)) } else { zRight = _sqlite3NameFromToken(tls, db, pValue) } @@ -117374,7 +118218,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } if rc != int32(SQLITE_NOTFOUND) { if (*(*[4]uintptr)(unsafe.Pointer(bp + 4)))[0] != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+136, (*(*[4]uintptr)(unsafe.Pointer(bp + 4)))[0])) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+136, (*(*[4]uintptr)(unsafe.Pointer(bp + 4)))[0])) Xsqlite3_free(tls, (*(*[4]uintptr)(unsafe.Pointer(bp + 4)))[0]) } (*TParse)(unsafe.Pointer(pParse)).FnErr++ @@ -117481,7 +118325,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p b = -int32(1) _ = libc.Int32FromInt32(0) if zRight != 0 { - if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+17949) == 0 { + if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18036) == 0 { b = int32(2) } else { b = int32(_sqlite3GetBoolean(tls, zRight, uint8(0))) @@ -117552,7 +118396,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p */ fallthrough case int32(PragTyp_LOCKING_MODE): - zRet = __ccgo_ts + 17740 + zRet = __ccgo_ts + 17827 eMode = _getLockingMode(tls, zRight) if (*TToken)(unsafe.Pointer(pId2)).Fn == uint32(0) && eMode == -int32(1) { /* Simple "PRAGMA locking_mode;" statement. This is a query for @@ -117582,7 +118426,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } _ = libc.Int32FromInt32(0) if eMode == int32(PAGER_LOCKINGMODE_EXCLUSIVE) { - zRet = __ccgo_ts + 17730 + zRet = __ccgo_ts + 17817 } _returnSingleText(tls, v, zRet) break @@ -117877,7 +118721,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if *(*int8)(unsafe.Pointer(zRight)) != 0 { rc = _sqlite3OsAccess(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, zRight, int32(SQLITE_ACCESS_READWRITE), bp+56) if rc != SQLITE_OK || *(*int32)(unsafe.Pointer(bp + 56)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17954, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18041, 0) Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) goto pragma_out } @@ -117887,7 +118731,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } Xsqlite3_free(tls, Xsqlite3_temp_directory) if *(*int8)(unsafe.Pointer(zRight)) != 0 { - Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+136, zRight)) + Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+136, zRight)) } else { Xsqlite3_temp_directory = uintptr(0) } @@ -117909,7 +118753,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _returnSingleInt(tls, v, int64(int32((*TDb)(unsafe.Pointer(pDb)).Fsafety_level)-int32(1))) } else { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17979, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18066, 0) } else { if iDb != int32(1) { iLevel = (int32(_getSafetyLevel(tls, zRight, 0, uint8(1))) + int32(1)) & int32(PAGER_SYNCHRONOUS_MASK) @@ -117942,7 +118786,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if mask == uint64(SQLITE_DeferFKs) { (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = 0 } - if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18032) == 0 { + if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18119) == 0 { /* IMP: R-60817-01178 If the argument is "RESET" then schema ** writing is disabled (as with "PRAGMA writable_schema=OFF") and, ** in addition, the schema is reloaded. */ @@ -118025,9 +118869,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - v14 = __ccgo_ts + 18038 + v14 = __ccgo_ts + 18125 } else { - v14 = __ccgo_ts + 18046 + v14 = __ccgo_ts + 18133 } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 4))&0xf>>0)) != 0 { v15 = int32(1) @@ -118039,7 +118883,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v16 = *(*uintptr)(unsafe.Pointer(pColExpr + 8)) } - _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+136, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1648), v15, v16, k, isHidden)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+136, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1662), v15, v16, k, isHidden)) goto _12 _12: ; @@ -118098,7 +118942,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pTab1 = (*THashElem)(unsafe.Pointer(k1)).Fdata if int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) == 0 { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18053, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab1)).FzName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18140, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab1)).FzName)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 60)) = uintptr(0) Xsqlite3_prepare(tls, db, zSql, -int32(1), bp+60, uintptr(0)) @@ -118106,7 +118950,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3DbFree(tls, db, zSql) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1632, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) } pHash = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*16))).FpSchema + 8 @@ -118128,19 +118972,19 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _20 } if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10796 + zType = __ccgo_ts + 10921 } else { if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 13044 + zType = __ccgo_ts + 13169 } else { if (*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Shadow) != 0 { - zType = __ccgo_ts + 18069 + zType = __ccgo_ts + 18156 } else { - zType = __ccgo_ts + 9058 + zType = __ccgo_ts + 9183 } } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18076, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*16))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18163, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*16))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) goto _20 _20: ; @@ -118188,9 +119032,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v22 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab3)).FaCol + uintptr(cnum)*12))).FzCnName } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18083, libc.VaList(bp+136, i1, int32(cnum), v22)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18170, libc.VaList(bp+136, i1, int32(cnum), v22)) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18088, libc.VaList(bp+136, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*4)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) + _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18175, libc.VaList(bp+136, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*4)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) } _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), int32(1), (*TParse)(unsafe.Pointer(pParse)).FnMem) goto _21 @@ -118214,11 +119058,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } azOrigin = [3]uintptr{ - 0: __ccgo_ts + 18093, - 1: __ccgo_ts + 18095, - 2: __ccgo_ts + 16582, + 0: __ccgo_ts + 18180, + 1: __ccgo_ts + 18182, + 2: __ccgo_ts + 16669, } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18097, libc.VaList(bp+136, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 56))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18184, libc.VaList(bp+136, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 56))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) goto _23 _23: ; @@ -118238,7 +119082,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _24 } _ = libc.Int32FromInt32(0) - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18103, libc.VaList(bp+136, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*16))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*16))).FpBt))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18190, libc.VaList(bp+136, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*16))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*16))).FpBt))) goto _24 _24: ; @@ -118255,7 +119099,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pColl = (*THashElem)(unsafe.Pointer(p)).Fdata v26 = i4 i4++ - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18107, libc.VaList(bp+136, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18194, libc.VaList(bp+136, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) goto _25 _25: ; @@ -118307,7 +119151,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } pMod = (*THashElem)(unsafe.Pointer(j1)).Fdata - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7617, libc.VaList(bp+136, (*TModule)(unsafe.Pointer(pMod)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7742, libc.VaList(bp+136, (*TModule)(unsafe.Pointer(pMod)).FzName)) goto _30 _30: ; @@ -118319,7 +119163,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i6 < int32(libc.Uint32FromInt64(1056)/libc.Uint32FromInt64(16))) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7617, libc.VaList(bp+136, _aPragmaName[i6].FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7742, libc.VaList(bp+136, _aPragmaName[i6].FzName)) goto _31 _31: ; @@ -118345,7 +119189,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(j2 < (*TFKey)(unsafe.Pointer(pFK)).FnCol) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18110, libc.VaList(bp+136, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 36 + uintptr(j2)*8))).FiFrom)*12))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 36 + uintptr(j2)*8))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 25 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 25))), __ccgo_ts+18119)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18197, libc.VaList(bp+136, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 36 + uintptr(j2)*8))).FiFrom)*12))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 36 + uintptr(j2)*8))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 25 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 25))), __ccgo_ts+18206)) goto _32 _32: ; @@ -118491,7 +119335,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regResult+int32(1)) } - _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18124, libc.VaList(bp+136, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) + _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18211, libc.VaList(bp+136, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), regResult, int32(4)) _sqlite3VdbeResolveLabel(tls, v, addrOk) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 68))) @@ -118561,7 +119405,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p /* Set the maximum error count */ *(*int32)(unsafe.Pointer(bp + 72)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) if zRight != 0 { - if _sqlite3GetInt32(tls, zRight, bp+72) != 0 { + if _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pValue)).Fz, bp+72) != 0 { if *(*int32)(unsafe.Pointer(bp + 72)) <= 0 { *(*int32)(unsafe.Pointer(bp + 72)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) } @@ -118581,8 +119425,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i9 < (*Tsqlite3)(unsafe.Pointer(db)).FnDb) { break } /* Array of root page numbers of all btrees */ - cnt = 0 /* Number of entries in aRoot[] */ - mxIdx = 0 /* Maximum number of indexes for any table */ + cnt = 0 /* Number of entries in aRoot[] */ if libc.Bool(OMIT_TEMPDB != 0) && i9 == int32(1) { goto _40 } @@ -118624,9 +119467,6 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pIdx3 = (*TIndex)(unsafe.Pointer(pIdx3)).FpNext nIdx++ } - if nIdx > mxIdx { - mxIdx = nIdx - } goto _41 _41: ; @@ -118682,16 +119522,78 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } *(*int32)(unsafe.Pointer(aRoot)) = cnt /* Make sure sufficient number of registers have been allocated */ - _sqlite3TouchRegister(tls, pParse, int32(8)+mxIdx) + _sqlite3TouchRegister(tls, pParse, int32(8)+cnt) _sqlite3ClearTempRegCache(tls, pParse) /* Do the b-tree integrity checks */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(2), cnt, int32(1), aRoot, -int32(14)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(1), cnt, int32(8), aRoot, -int32(14)) _sqlite3VdbeChangeP5(tls, v, uint16(uint8(i9))) addr1 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(2)) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18128, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*16))).FzDbSName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18215, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*16))).FzDbSName)), -int32(6)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(2), int32(3), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, addr1) + /* Check that the indexes all have the right number of rows */ + if pObjTab != 0 { + v48 = int32(1) + } else { + v48 = 0 + } + cnt = v48 + _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18239) + x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst + for { + if !(x2 != 0) { + break + } + iTab = 0 + pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab9 { + goto _49 + } + if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + v50 = cnt + cnt++ + iTab = v50 + } else { + iTab = cnt + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx5 + 56))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { + break + } + iTab++ + goto _51 + _51: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + } + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if (*TIndex)(unsafe.Pointer(pIdx5)).FpPartIdxWhere == uintptr(0) { + addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+cnt, 0, int32(8)+iTab) + _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) + _integrityCheckResultRow(tls, v) + _sqlite3VdbeJumpHere(tls, v, addr1) + } + cnt++ + goto _52 + _52: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + goto _49 + _49: + ; + x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext + } /* Make sure all the indices are constructed correctly. */ x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst @@ -118699,39 +119601,39 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata pPrior = uintptr(0) r1 = -int32(1) /* Maximum non-virtual column number */ - if pObjTab != 0 && pObjTab != pTab9 { - goto _48 + if pObjTab != 0 && pObjTab != pTab10 { + goto _53 } - if !(int32((*TTable)(unsafe.Pointer(pTab9)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { - goto _48 + if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _53 } - if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { pPk1 = uintptr(0) r2 = 0 } else { - pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab9) + pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab10) r2 = _sqlite3GetTempRange(tls, pParse, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), int32(1), r2, r2+int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)-int32(1)) } - _sqlite3OpenTableAndIndices(tls, pParse, pTab9, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+76, bp+80) + _sqlite3OpenTableAndIndices(tls, pParse, pTab10, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+76, bp+80) /* reg[7] counts the number of entries in the table. ** reg[8+i] counts the number of entries in the i-th index */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(7)) j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(8)+j4) /* index entries counter */ - goto _49 - _49: + goto _54 + _54: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } _ = libc.Int32FromInt32(0) @@ -118744,29 +119646,29 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** by the OP_IsType code, so it is a required step. */ _ = libc.Int32FromInt32(0) - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { mxCol = -int32(1) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*12))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { + if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*12))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { mxCol++ } - goto _50 - _50: + goto _55 + _55: ; j4++ } - if mxCol == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { + if mxCol == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { mxCol-- } } else { /* COLFLAG_VIRTUAL columns are not included in the WITHOUT ROWID ** PK index column-count, so there is no need to account for them ** in this case. */ - mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab9))).FnColumn) - int32(1) + mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab10))).FnColumn) - int32(1) } if mxCol >= 0 { _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 76)), mxCol, int32(3)) @@ -118776,7 +119678,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if pPk1 != 0 { a1 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 76)), 0, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), r2) - zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18152, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18268, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a1) @@ -118787,8 +119689,8 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprCodeLoadIndexColumn(tls, pParse, pPk1, *(*int32)(unsafe.Pointer(bp + 76)), j4, r2+j4) - goto _51 - _51: + goto _56 + _56: ; j4++ } @@ -118803,15 +119705,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** (4) Datatype for numeric columns in non-STRICT tables must not ** be a TEXT value that can be losslessly converted to numeric. */ - bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_Strict) != uint32(0)) + bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_Strict) != uint32(0)) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - pCol1 = (*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*12 /* Check datatypes (besides NOT NULL) */ - if j4 == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { - goto _52 + pCol1 = (*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*12 /* Check datatypes (besides NOT NULL) */ + if j4 == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { + goto _57 } if bStrict != 0 { doTypeCheck = libc.BoolInt32(int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 4))&0xf0>>4)) > int32(COLTYPE_ANY)) @@ -118819,28 +119721,28 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p doTypeCheck = libc.BoolInt32(int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) > int32(SQLITE_AFF_BLOB)) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 4))&0xf>>0)) == 0 && !(doTypeCheck != 0) { - goto _52 + goto _57 } /* Compute the operands that will be needed for OP_IsType */ p4 = int32(SQLITE_NULL) if int32((*TColumn)(unsafe.Pointer(pCol1)).FcolFlags)&int32(COLFLAG_VIRTUAL) != 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 76)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 76)), j4, int32(3)) p11 = -int32(1) p3 = int32(3) } else { if (*TColumn)(unsafe.Pointer(pCol1)).FiDflt != 0 { *(*uintptr)(unsafe.Pointer(bp + 84)) = uintptr(0) - _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab9, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8((*TColumn)(unsafe.Pointer(pCol1)).Faffinity), bp+84) + _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab10, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8((*TColumn)(unsafe.Pointer(pCol1)).Faffinity), bp+84) if *(*uintptr)(unsafe.Pointer(bp + 84)) != 0 { p4 = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp + 84))) _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 84))) } } p11 = *(*int32)(unsafe.Pointer(bp + 76)) - if !((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { - p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab9), int16(j4))) + if !((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { + p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab10), int16(j4))) } else { - p3 = int32(_sqlite3TableColumnToStorage(tls, pTab9, int16(j4))) + p3 = int32(_sqlite3TableColumnToStorage(tls, pTab10, int16(j4))) } } labelError = _sqlite3VdbeMakeLabel(tls, pParse) @@ -118857,10 +119759,10 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** is REAL, we have to load the actual data using OP_Column ** to reliably determine if the value is a NULL. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), p11, p3, int32(3)) - _sqlite3ColumnDefault(tls, v, pTab9, j4, int32(3)) + _sqlite3ColumnDefault(tls, v, pTab10, j4, int32(3)) jmp3 = _sqlite3VdbeAddOp2(tls, v, int32(OP_NotNull), int32(3), labelOk) } - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18188, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18304, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) if doTypeCheck != 0 { _sqlite3VdbeGoto(tls, v, labelError) @@ -118874,7 +119776,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _ = libc.Int32FromInt32(0) _sqlite3VdbeChangeP5(tls, v, uint16(_aStdTypeMask[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 4))&0xf0>>4))-int32(1)])) - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18208, libc.VaList(bp+136, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 4))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*12))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18324, libc.VaList(bp+136, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 4))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*12))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) == int32(SQLITE_AFF_TEXT) { @@ -118882,7 +119784,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** NULL, TEXT, or BLOB. */ _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18230, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*12))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18346, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*12))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) >= int32(SQLITE_AFF_NUMERIC) { @@ -118891,12 +119793,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1b)) /* NULL, INT, FLOAT, or BLOB */ if p11 >= 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 76)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 76)), j4, int32(3)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18253, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18369, -int32(1)) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), -int32(1), labelOk, int32(3), p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18255, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*12))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18371, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*12))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } } @@ -118904,14 +119806,14 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeResolveLabel(tls, v, labelError) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, labelOk) - goto _52 - _52: + goto _57 + _57: ; j4++ } /* Verify CHECK constraints */ - if (*TTable)(unsafe.Pointer(pTab9)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { - pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab9)).FpCheck, 0) + if (*TTable)(unsafe.Pointer(pTab10)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { + pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab10)).FpCheck, 0) if int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { addrCkFault = _sqlite3VdbeMakeLabel(tls, pParse) addrCkOk = _sqlite3VdbeMakeLabel(tls, pParse) @@ -118922,15 +119824,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprIfFalse(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8 + uintptr(k3)*20))).FpExpr, addrCkFault, 0) - goto _53 - _53: + goto _58 + _58: ; k3-- } _sqlite3ExprIfTrue(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8))).FpExpr, addrCkOk, int32(SQLITE_JUMPIFNULL)) _sqlite3VdbeResolveLabel(tls, v, addrCkFault) (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 - zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18275, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18391, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr2, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, addrCkOk) @@ -118940,25 +119842,25 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(isQuick != 0) { /* Omit the remaining tests for quick_check */ /* Validate index entries for the current row */ j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } ckUniq = _sqlite3VdbeMakeLabel(tls, pParse) - if pPk1 == pIdx5 { - goto _54 + if pPk1 == pIdx6 { + goto _59 } - r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx5, *(*int32)(unsafe.Pointer(bp + 76)), 0, 0, bp+88, pPrior, r1) - pPrior = pIdx5 + r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx6, *(*int32)(unsafe.Pointer(bp + 76)), 0, 0, bp+88, pPrior, r1) + pPrior = pIdx6 _sqlite3VdbeAddOp2(tls, v, int32(OP_AddImm), int32(8)+j4, int32(1)) /* increment entry count */ /* Verify that an index entry exists for the current table row */ - jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 80))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18305) + jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 80))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18421) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18310) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18426) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) - jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx6)).FzName) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) jmp4 = _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, jmp21) @@ -118966,12 +119868,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** that extracts the rowid off the end of the index record. ** But it only works correctly if index record does not have ** any extra bytes at the end. Verify that this is the case. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { _sqlite3VdbeAddOp2(tls, v, int32(OP_IdxRowid), *(*int32)(unsafe.Pointer(bp + 80))+j4, int32(3)) - jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)-int32(1)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18331) + jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)-int32(1)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18447) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18367) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18483) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp7) } @@ -118980,101 +119882,77 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p label6 = 0 kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FazColl + uintptr(kk)*4)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { - goto _55 + if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FazColl + uintptr(kk)*4)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { + goto _60 } if label6 == 0 { label6 = _sqlite3VdbeMakeLabel(tls, pParse) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 80))+j4, kk, int32(3)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ne), int32(3), label6, r1+kk) - goto _55 - _55: + goto _60 + _60: ; kk++ } if label6 != 0 { jmp6 = _sqlite3VdbeAddOp0(tls, v, int32(OP_Goto)) _sqlite3VdbeResolveLabel(tls, v, label6) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18305) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18421) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18378) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18494) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp6) } /* For UNIQUE indexes, verify that only one entry exists with the ** current key. The entry is unique if (1) any column is NULL ** or (2) the next entry has a different key */ - if int32((*TIndex)(unsafe.Pointer(pIdx5)).FonError) != OE_None { + if int32((*TIndex)(unsafe.Pointer(pIdx6)).FonError) != OE_None { uniqOk = _sqlite3VdbeMakeLabel(tls, pParse) kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FaiColumn + uintptr(kk)*2))) + iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FaiColumn + uintptr(kk)*2))) _ = libc.Int32FromInt32(0) - if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(iCol1)*12 + 4))&0xf>>0)) != 0 { - goto _56 + if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(iCol1)*12 + 4))&0xf>>0)) != 0 { + goto _61 } _sqlite3VdbeAddOp2(tls, v, int32(OP_IsNull), r1+kk, uniqOk) - goto _56 - _56: + goto _61 + _61: ; kk++ } jmp61 = _sqlite3VdbeAddOp1(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 80))+j4) _sqlite3VdbeGoto(tls, v, uniqOk) _sqlite3VdbeJumpHere(tls, v, jmp61) - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 80))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18405) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 80))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18521) _sqlite3VdbeGoto(tls, v, jmp5) _sqlite3VdbeResolveLabel(tls, v, uniqOk) } _sqlite3VdbeJumpHere(tls, v, jmp4) _sqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp + 88))) - goto _54 - _54: + goto _59 + _59: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } } _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 76)), loopTop) _sqlite3VdbeJumpHere(tls, v, loopTop-int32(1)) - if !(isQuick != 0) { - _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18432) - j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex - for { - if !(pIdx5 != 0) { - break - } - if pPk1 == pIdx5 { - goto _57 - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), *(*int32)(unsafe.Pointer(bp + 80))+j4, int32(3)) - addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+j4, 0, int32(3)) - _sqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL)) - _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) - _integrityCheckResultRow(tls, v) - _sqlite3VdbeJumpHere(tls, v, addr1) - goto _57 - _57: - ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext - j4++ - } - if pPk1 != 0 { - _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) - } + if pPk1 != 0 { + _ = libc.Int32FromInt32(0) + _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) } - goto _48 - _48: + goto _53 + _53: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -119086,60 +119964,60 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata - if pObjTab != 0 && pObjTab != pTab10 { - goto _58 + pTab11 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab11 { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == TABTYP_NORM { - goto _58 + if int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == TABTYP_NORM { + goto _62 } - if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { - goto _58 + if !(int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FnCol) <= 0 { + if int32((*TTable)(unsafe.Pointer(pTab11)).FnCol) <= 0 { zMod = *(*uintptr)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 44))).FazArg)) + })(unsafe.Pointer(pTab11 + 44))).FazArg)) if _sqlite3HashFind(tls, db+396, zMod) == uintptr(0) { - goto _58 + goto _62 } } - _sqlite3ViewGetColumnNames(tls, pParse, pTab10) + _sqlite3ViewGetColumnNames(tls, pParse, pTab11) if (*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 44))).Fp == uintptr(0) { - goto _58 + })(unsafe.Pointer(pTab11 + 44))).Fp == uintptr(0) { + goto _62 } pVTab = (*TVTable)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 44))).Fp)).FpVtab + })(unsafe.Pointer(pTab11 + 44))).Fp)).FpVtab if pVTab == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FiVersion < int32(4) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FxIntegrity == uintptr(0) { - goto _58 + goto _62 } _sqlite3VdbeAddOp3(tls, v, int32(OP_VCheck), i9, int32(3), isQuick) - (*TTable)(unsafe.Pointer(pTab10)).FnTabRef++ - _sqlite3VdbeAppendP4(tls, v, pTab10, -int32(16)) + (*TTable)(unsafe.Pointer(pTab11)).FnTabRef++ + _sqlite3VdbeAppendP4(tls, v, pTab11, -int32(16)) a11 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a11) - goto _58 - goto _58 - _58: + goto _62 + goto _62 + _62: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -119152,7 +120030,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if aOp2 != 0 { (*(*TVdbeOp)(unsafe.Pointer(aOp2))).Fp2 = int32(1) - *(*int32)(unsafe.Pointer(bp + 72)) (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 2*20))).Fp4type = int8(-libc.Int32FromInt32(1)) - *(*uintptr)(unsafe.Pointer(aOp2 + 2*20 + 16)) = __ccgo_ts + 18461 + *(*uintptr)(unsafe.Pointer(aOp2 + 2*20 + 16)) = __ccgo_ts + 18548 (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 5*20))).Fp4type = int8(-libc.Int32FromInt32(1)) *(*uintptr)(unsafe.Pointer(aOp2 + 5*20 + 16)) = _sqlite3ErrStr(tls, int32(SQLITE_CORRUPT)) } @@ -119213,20 +120091,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc != 0 { - v60 = int32((*struct { + v64 = int32((*struct { FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc) } else { - v60 = int32(SQLITE_UTF16LE) + v64 = int32(SQLITE_UTF16LE) } - enc = uint8(v60) + enc = uint8(v64) (*TSchema)(unsafe.Pointer((*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema)).Fenc = enc _sqlite3SetTextEncoding(tls, db, enc) break } - goto _59 - _59: + goto _63 + _63: ; pEnc += 8 } @@ -119234,7 +120112,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).FzName != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18522, libc.VaList(bp+136, zRight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18609, libc.VaList(bp+136, zRight)) } } } @@ -119312,11 +120190,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p i10 = 0 (*TParse)(unsafe.Pointer(pParse)).FnMem = int32(1) for { - v62 = i10 + v66 = i10 i10++ - v61 = Xsqlite3_compileoption_get(tls, v62) - zOpt = v61 - if !(v61 != uintptr(0)) { + v65 = Xsqlite3_compileoption_get(tls, v66) + zOpt = v65 + if !(v65 != uintptr(0)) { break } _sqlite3VdbeLoadString(tls, v, int32(1), zOpt) @@ -119332,20 +120210,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p fallthrough case int32(PragTyp_WAL_CHECKPOINT): if (*TToken)(unsafe.Pointer(pId2)).Fz != 0 { - v63 = iDb + v67 = iDb } else { - v63 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) + v67 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) } - iBt = v63 + iBt = v67 eMode2 = SQLITE_CHECKPOINT_PASSIVE if zRight != 0 { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17747) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17834) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_FULL) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18547) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18634) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_RESTART) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17900) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17987) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_TRUNCATE) } } @@ -119369,11 +120247,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p Xsqlite3_wal_autocheckpoint(tls, db, _sqlite3Atoi(tls, zRight)) } if (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback == __ccgo_fp(_sqlite3WalDefaultHook) { - v64 = int32((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg) + v68 = int32((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg) } else { - v64 = 0 + v68 = 0 } - _returnSingleInt(tls, v, int64(v64)) + _returnSingleInt(tls, v, int64(v68)) break /* ** PRAGMA shrink_memory @@ -119401,47 +120279,68 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** ** The optional argument is a bitmask of optimizations to perform: ** - ** 0x0001 Debugging mode. Do not actually perform any optimizations - ** but instead return one line of text for each optimization - ** that would have been done. Off by default. + ** 0x00001 Debugging mode. Do not actually perform any optimizations + ** but instead return one line of text for each optimization + ** that would have been done. Off by default. ** - ** 0x0002 Run ANALYZE on tables that might benefit. On by default. - ** See below for additional information. + ** 0x00002 Run ANALYZE on tables that might benefit. On by default. + ** See below for additional information. ** - ** 0x0004 (Not yet implemented) Record usage and performance - ** information from the current session in the - ** database file so that it will be available to "optimize" - ** pragmas run by future database connections. + ** 0x00010 Run all ANALYZE operations using an analysis_limit that + ** is the lessor of the current analysis_limit and the + ** SQLITE_DEFAULT_OPTIMIZE_LIMIT compile-time option. + ** The default value of SQLITE_DEFAULT_OPTIMIZE_LIMIT is + ** currently (2024-02-19) set to 2000, which is such that + ** the worst case run-time for PRAGMA optimize on a 100MB + ** database will usually be less than 100 milliseconds on + ** a RaspberryPI-4 class machine. On by default. ** - ** 0x0008 (Not yet implemented) Create indexes that might have - ** been helpful to recent queries + ** 0x10000 Look at tables to see if they need to be reanalyzed + ** due to growth or shrinkage even if they have not been + ** queried during the current connection. Off by default. ** - ** The default MASK is and always shall be 0xfffe. 0xfffe means perform all - ** of the optimizations listed above except Debug Mode, including new - ** optimizations that have not yet been invented. If new optimizations are - ** ever added that should be off by default, those off-by-default - ** optimizations will have bitmasks of 0x10000 or larger. + ** The default MASK is and always shall be 0x0fffe. In the current + ** implementation, the default mask only covers the 0x00002 optimization, + ** though additional optimizations that are covered by 0x0fffe might be + ** added in the future. Optimizations that are off by default and must + ** be explicitly requested have masks of 0x10000 or greater. ** ** DETERMINATION OF WHEN TO RUN ANALYZE ** ** In the current implementation, a table is analyzed if only if all of ** the following are true: ** - ** (1) MASK bit 0x02 is set. + ** (1) MASK bit 0x00002 is set. + ** + ** (2) The table is an ordinary table, not a virtual table or view. ** - ** (2) The query planner used sqlite_stat1-style statistics for one or - ** more indexes of the table at some point during the lifetime of - ** the current connection. + ** (3) The table name does not begin with "sqlite_". ** - ** (3) One or more indexes of the table are currently unanalyzed OR - ** the number of rows in the table has increased by 25 times or more - ** since the last time ANALYZE was run. + ** (4) One or more of the following is true: + ** (4a) The 0x10000 MASK bit is set. + ** (4b) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. + ** (4c) The query planner used sqlite_stat1-style statistics for one + ** or more indexes of the table at some point during the lifetime + ** of the current connection. + ** + ** (5) One or more of the following is true: + ** (5a) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. (Same as 4a) + ** (5b) The number of rows in the table has increased or decreased by + ** 10-fold. In other words, the current size of the table is + ** 10 times larger than the size in sqlite_stat1 or else the + ** current size is less than 1/10th the size in sqlite_stat1. ** ** The rules for when tables are analyzed are likely to change in - ** future releases. + ** future releases. Future versions of SQLite might accept a string + ** literal argument to this pragma that contains a mnemonic description + ** of the options rather than a bitmap. */ fallthrough - case int32(PragTyp_OPTIMIZE): /* Mask of operations to perform */ + case int32(PragTyp_OPTIMIZE): /* Analysis limit to use */ + nCheck = 0 /* Number of tables to be optimized */ + nBtree = 0 /* Number of indexes on the current table */ if zRight != 0 { opMask = uint32(_sqlite3Atoi(tls, zRight)) if opMask&uint32(0x02) == uint32(0) { @@ -119450,22 +120349,31 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { opMask = uint32(0xfffe) } - v66 = pParse + 40 - v65 = *(*int32)(unsafe.Pointer(v66)) - *(*int32)(unsafe.Pointer(v66))++ - iTabCur = v65 + if opMask&uint32(0x10) == uint32(0) { + nLimit = 0 + } else { + if (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit > 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit < int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) { + nLimit = 0 + } else { + nLimit = int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) + } + } + v70 = pParse + 40 + v69 = *(*int32)(unsafe.Pointer(v70)) + *(*int32)(unsafe.Pointer(v70))++ + iTabCur = v69 if zDb != 0 { - v68 = iDb + v72 = iDb } else { - v68 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) + v72 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) } - iDbLast = v68 + iDbLast = v72 for { if !(iDb <= iDbLast) { break } if iDb == int32(1) { - goto _67 + goto _71 } _sqlite3CodeVerifySchema(tls, pParse, iDb) pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FpSchema @@ -119474,53 +120382,122 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(k4 != 0) { break } - pTab11 = (*THashElem)(unsafe.Pointer(k4)).Fdata - /* If table pTab has not been used in a way that would benefit from - ** having analysis statistics during the current session, then skip it. - ** This also has the effect of skipping virtual tables and views */ - if (*TTable)(unsafe.Pointer(pTab11)).FtabFlags&uint32(TF_StatsUsed) == uint32(0) { - goto _69 + pTab12 = (*THashElem)(unsafe.Pointer(k4)).Fdata + /* This only works for ordinary tables */ + if !(int32((*TTable)(unsafe.Pointer(pTab12)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _73 } - /* Reanalyze if the table is 25 times larger than the last analysis */ - szThreshold = int16(int32((*TTable)(unsafe.Pointer(pTab11)).FnRowLogEst) + int32(46)) - _ = libc.Int32FromInt32(0) - pIdx6 = (*TTable)(unsafe.Pointer(pTab11)).FpIndex + /* Do not scan system tables */ + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab12)).FzName, __ccgo_ts+6589, int32(7)) { + goto _73 + } + /* Find the size of the table as last recorded in sqlite_stat1. + ** If any index is unanalyzed, then the threshold is -1 to + ** indicate a new, unanalyzed index + */ + szThreshold = (*TTable)(unsafe.Pointer(pTab12)).FnRowLogEst + nIndex = 0 + pIdx7 = (*TTable)(unsafe.Pointer(pTab12)).FpIndex for { - if !(pIdx6 != 0) { + if !(pIdx7 != 0) { break } - if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx6 + 56))&0x80>>7)) != 0) { - szThreshold = 0 /* Always analyze if any index lacks statistics */ - break + nIndex++ + if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx7 + 56))&0x80>>7)) != 0) { + szThreshold = int16(-int32(1)) /* Always analyze if any index lacks statistics */ } - goto _70 - _70: + goto _74 + _74: ; - pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext + pIdx7 = (*TIndex)(unsafe.Pointer(pIdx7)).FpNext + } + /* If table pTab has not been used in a way that would benefit from + ** having analysis statistics during the current session, then skip it, + ** unless the 0x10000 MASK bit is set. */ + if (*TTable)(unsafe.Pointer(pTab12)).FtabFlags&uint32(TF_MaybeReanalyze) != uint32(0) { + /* Check for size change if stat1 has been used for a query */ + } else { + if opMask&uint32(0x10000) != 0 { + /* Check for size change if 0x10000 is set */ + } else { + if (*TTable)(unsafe.Pointer(pTab12)).FpIndex != uintptr(0) && int32(szThreshold) < 0 { + /* Do analysis if unanalyzed indexes exists */ + } else { + /* Otherwise, we can skip this table */ + goto _73 + } + } } - if szThreshold != 0 { - _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab11, int32(OP_OpenRead)) - _sqlite3VdbeAddOp3(tls, v, int32(OP_IfSmaller), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), int32(szThreshold)) + nCheck++ + if nCheck == int32(2) { + /* If ANALYZE might be invoked two or more times, hold a write + ** transaction for efficiency */ + _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) + } + nBtree += nIndex + int32(1) + /* Reanalyze if the table is 10 times larger or smaller than + ** the last analysis. Unconditional reanalysis if there are + ** unanalyzed indexes. */ + _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab12, int32(OP_OpenRead)) + if int32(szThreshold) >= 0 { + iRange = int16(33) /* 10x size change */ + if int32(szThreshold) >= int32(iRange) { + v75 = int32(szThreshold) - int32(iRange) + } else { + v75 = -int32(1) + } + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IfSizeBetween), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), v75, int32(szThreshold)+int32(iRange)) + } else { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1))) } - zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18555, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTable)(unsafe.Pointer(pTab11)).FzName)) + zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18642, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTable)(unsafe.Pointer(pTab12)).FzName)) if opMask&uint32(0x01) != 0 { r11 = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, r11, 0, zSubSql, -int32(6)) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), r11, int32(1)) } else { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), 0, 0, 0, zSubSql, -int32(6)) + if nLimit != 0 { + v76 = int32(0x02) + } else { + v76 = 00 + } + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), v76, nLimit, 0, zSubSql, -int32(6)) } - goto _69 - _69: + goto _73 + _73: ; k4 = (*THashElem)(unsafe.Pointer(k4)).Fnext } - goto _67 - _67: + goto _71 + _71: ; iDb++ } _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) + /* In a schema with a large number of tables and indexes, scale back + ** the analysis_limit to avoid excess run-time in the worst case. + */ + if !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && nLimit > 0 && nBtree > int32(100) { + nLimit = int32(100) * nLimit / nBtree + if nLimit < int32(100) { + nLimit = int32(100) + } + aOp5 = _sqlite3VdbeGetOp(tls, v, 0) + iEnd = _sqlite3VdbeCurrentAddr(tls, v) + iAddr1 = 0 + for { + if !(iAddr1 < iEnd) { + break + } + if int32((*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*20))).Fopcode) == int32(OP_SqlExec) { + (*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*20))).Fp2 = nLimit + } + goto _77 + _77: + ; + iAddr1++ + } + } break /* ** PRAGMA busy_timeout @@ -119615,6 +120592,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** instructions to the VM. */ if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_NoColumns1) != 0 && zRight != 0 { } + goto pragma_out pragma_out: ; _sqlite3DbFree(tls, db, zLeft) @@ -119746,34 +120724,34 @@ var _encnames1 = [9]struct { Fenc Tu8 }{ 0: { - FzName: __ccgo_ts + 18464, + FzName: __ccgo_ts + 18551, Fenc: uint8(SQLITE_UTF8), }, 1: { - FzName: __ccgo_ts + 18469, + FzName: __ccgo_ts + 18556, Fenc: uint8(SQLITE_UTF8), }, 2: { - FzName: __ccgo_ts + 18475, + FzName: __ccgo_ts + 18562, Fenc: uint8(SQLITE_UTF16LE), }, 3: { - FzName: __ccgo_ts + 18484, + FzName: __ccgo_ts + 18571, Fenc: uint8(SQLITE_UTF16BE), }, 4: { - FzName: __ccgo_ts + 18493, + FzName: __ccgo_ts + 18580, Fenc: uint8(SQLITE_UTF16LE), }, 5: { - FzName: __ccgo_ts + 18501, + FzName: __ccgo_ts + 18588, Fenc: uint8(SQLITE_UTF16BE), }, 6: { - FzName: __ccgo_ts + 18509, + FzName: __ccgo_ts + 18596, }, 7: { - FzName: __ccgo_ts + 18516, + FzName: __ccgo_ts + 18603, }, 8: {}, } @@ -119869,14 +120847,14 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg _ = argc _ = argv _sqlite3StrAccumInit(tls, bp, uintptr(0), bp+24, int32(200), 0) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18573) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18660) i = 0 j = int32((*TPragmaName)(unsafe.Pointer(pPragma)).FiPragCName) for { if !(i < int32((*TPragmaName)(unsafe.Pointer(pPragma)).FnPragCName)) { break } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18588, libc.VaList(bp+232, int32(cSep), _pragCName[j])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18675, libc.VaList(bp+232, int32(cSep), _pragCName[j])) cSep = int8(',') goto _1 _1: @@ -119885,19 +120863,19 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg j++ } if i == 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18595, libc.VaList(bp+232, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18682, libc.VaList(bp+232, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) i++ } j = 0 if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_Result1) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18601) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18688) j++ } if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&(libc.Int32FromInt32(PragFlg_SchemaOpt)|libc.Int32FromInt32(PragFlg_SchemaReq)) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18613) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18700) j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5170, int32(1)) _sqlite3StrAccumFinish(tls, bp) _ = libc.Int32FromInt32(0) rc = Xsqlite3_declare_vtab(tls, db, bp+24) @@ -119913,7 +120891,7 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg (*TPragmaVtab)(unsafe.Pointer(pTab)).FnHidden = uint8(j) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+232, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+232, Xsqlite3_errmsg(tls, db))) } *(*uintptr)(unsafe.Pointer(ppVtab)) = pTab return rc @@ -119959,14 +120937,14 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) { break } - if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { goto _1 } if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fop) != int32(SQLITE_INDEX_CONSTRAINT_EQ) { goto _1 } - if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { - goto _1 + if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + return int32(SQLITE_CONSTRAINT) } j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn - int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) _ = libc.Int32FromInt32(0) @@ -119985,16 +120963,13 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 j = seen[0] - int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) - if seen[int32(1)] == 0 { - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(1000) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(1000) - return SQLITE_OK - } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(20) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(20) - j = seen[int32(1)] - int32(1) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + if seen[int32(1)] != 0 { + j = seen[int32(1)] - int32(1) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + } return SQLITE_OK } @@ -120022,6 +120997,7 @@ func _pragmaVtabCursorClear(tls *libc.TLS, pCsr uintptr) { _ = i Xsqlite3_finalize(tls, (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma) (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma = uintptr(0) + (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FiRowid = 0 i = 0 for { if !(i < int32(libc.Uint32FromInt64(8)/libc.Uint32FromInt64(4))) { @@ -120100,7 +121076,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if zText != 0 { - *(*uintptr)(unsafe.Pointer(pCsr + 16 + uintptr(j)*4)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+32, zText)) + *(*uintptr)(unsafe.Pointer(pCsr + 16 + uintptr(j)*4)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+32, zText)) if *(*uintptr)(unsafe.Pointer(pCsr + 16 + uintptr(j)*4)) == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -120112,13 +121088,13 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr j++ } _sqlite3StrAccumInit(tls, bp, uintptr(0), uintptr(0), 0, *(*int32)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb + 116 + 1*4))) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18628) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18715) if *(*uintptr)(unsafe.Pointer(pCsr + 16 + 1*4)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18636, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer(pCsr + 16 + 1*4)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18723, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer(pCsr + 16 + 1*4)))) } Xsqlite3_str_appendall(tls, bp, (*TPragmaName)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).FpName)).FzName) if *(*uintptr)(unsafe.Pointer(pCsr + 16)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18640, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer(pCsr + 16)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18727, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer(pCsr + 16)))) } zSql = _sqlite3StrAccumFinish(tls, bp) if zSql == uintptr(0) { @@ -120127,7 +121103,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr rc = Xsqlite3_prepare_v2(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), pCsr+4, uintptr(0)) Xsqlite3_free(tls, zSql) if rc != SQLITE_OK { - (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+32, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) + (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+32, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) return rc } return _pragmaVtabNext(tls, pVtabCursor) @@ -120255,24 +121231,24 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) /* A error message has already been generated. Do not overwrite it */ } else { if (*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(libc.Int32FromInt32(INITFLAG_AlterMask)) != 0 { - *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18674, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*4)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) + *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18761, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*4)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) (*TInitData)(unsafe.Pointer(pData)).Frc = int32(SQLITE_ERROR) } else { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_WriteSchema) != 0 { - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140891)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141840)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*4)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*4)) } else { - v1 = __ccgo_ts + 5108 + v1 = __ccgo_ts + 5172 } zObj = v1 - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18702, libc.VaList(bp+8, zObj)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18789, libc.VaList(bp+8, zObj)) if zExtra != 0 && *(*int8)(unsafe.Pointer(zExtra)) != 0 { - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18733, libc.VaList(bp+8, z, zExtra)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18820, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140898)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141847)) } } } @@ -120280,9 +121256,9 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) } var _azAlterType = [3]uintptr{ - 0: __ccgo_ts + 18644, - 1: __ccgo_ts + 18651, - 2: __ccgo_ts + 18663, + 0: __ccgo_ts + 18731, + 1: __ccgo_ts + 18738, + 2: __ccgo_ts + 18750, } // C documentation @@ -120362,7 +121338,7 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(iDb) if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*4)), db+168) == 0 || (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage && (*TInitData)(unsafe.Pointer(pData)).FmxPage > uint32(0) { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14516) + _corruptSchema(tls, pData, argv, __ccgo_ts+14609) } } libc.SetBitFieldPtr8Uint32(db+168+8, libc.Uint32FromInt32(0), 0, 0x1) @@ -120397,11 +121373,11 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr } else { pIndex = _sqlite3FindIndex(tls, db, *(*uintptr)(unsafe.Pointer(argv + 1*4)), (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName) if pIndex == uintptr(0) { - _corruptSchema(tls, pData, argv, __ccgo_ts+18741) + _corruptSchema(tls, pData, argv, __ccgo_ts+18828) } else { if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*4)), pIndex+44) == 0 || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum < uint32(2) || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage || _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14516) + _corruptSchema(tls, pData, argv, __ccgo_ts+14609) } } } @@ -120445,18 +121421,18 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** table name will be inserted automatically by the parser so we can just ** use the abbreviation "x" here. The parser will also automatically tag ** the schema table as read-only. */ - (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9058 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9183 if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6533 + v2 = __ccgo_ts + 6597 } else { - v2 = __ccgo_ts + 6066 + v2 = __ccgo_ts + 6130 } v1 = v2 zSchemaTabName = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(2)] = (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8130 - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18754 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8255 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18841 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(5)] = uintptr(0) (*(*TInitData)(unsafe.Pointer(bp + 44))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 44))).FiDb = iDb @@ -120546,7 +121522,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl } else { /* If opening an attached database, the encoding much match ENC(db) */ if (*(*[5]int32)(unsafe.Pointer(bp + 24)))[libc.Int32FromInt32(BTREE_TEXT_ENCODING)-libc.Int32FromInt32(1)]&int32(3) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12095) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12220) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -120572,7 +121548,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = uint8(1) } if int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) > int32(SQLITE_MAX_FILE_FORMAT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18826) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18913) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -120588,7 +121564,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl */ _ = libc.Int32FromInt32(0) (*(*TInitData)(unsafe.Pointer(bp + 44))).FmxPage = _sqlite3BtreeLastPage(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18850, libc.VaList(bp+80, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, zSchemaTabName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18937, libc.VaList(bp+80, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, zSchemaTabName)) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) rc = Xsqlite3_exec(tls, db, zSql, __ccgo_fp(_sqlite3InitCallback), bp+44, uintptr(0)) @@ -120626,12 +121602,14 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** curMain and calling sqlite3BtreeEnter(). For an error that occurs ** before that point, jump to error_out. */ + goto initone_error_out initone_error_out: ; if openedTransaction != 0 { _sqlite3BtreeCommit(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) } _sqlite3BtreeLeave(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) + goto error_out error_out: ; if rc != 0 { @@ -120903,7 +121881,12 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup - pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(12)) + if _sqlite3FaultSim(tls, int32(300)) != 0 { + pCleanup = uintptr(0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) + } else { + pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(12)) + } if pCleanup != 0 { (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup @@ -120935,7 +121918,7 @@ func _sqlite3ParseObjectInit(tls *libc.TLS, pParse uintptr, db uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FpParse = pParse (*TParse)(unsafe.Pointer(pParse)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1632, 0) } } @@ -120971,7 +121954,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } _ = libc.Int32FromInt32(0) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1632, 0) v1 = libc.Int32FromInt32(SQLITE_NOMEM) rc = v1 (*Tsqlite3)(unsafe.Pointer(db)).FerrCode = v1 @@ -121022,7 +122005,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep rc = _sqlite3BtreeSchemaLocked(tls, pBt) if rc != 0 { zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*16))).FzDbSName - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18884, libc.VaList(bp+296, zDb)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18971, libc.VaList(bp+296, zDb)) goto end_prepare } } @@ -121038,7 +122021,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep if nBytes >= 0 && (nBytes == 0 || int32(*(*int8)(unsafe.Pointer(zSql + uintptr(nBytes-int32(1))))) != 0) { mxLen = *(*int32)(unsafe.Pointer(db + 116 + 1*4)) if nBytes > mxLen { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+18914, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+19001, 0) rc = _sqlite3ApiExit(tls, db, int32(SQLITE_TOOBIG)) goto end_prepare } @@ -121074,7 +122057,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep _ = libc.Int32FromInt32(0) rc = (*(*TParse)(unsafe.Pointer(bp))).Frc if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3795, libc.VaList(bp+296, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3859, libc.VaList(bp+296, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) } else { _sqlite3Error(tls, db, rc) @@ -121091,6 +122074,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep (*(*TParse)(unsafe.Pointer(bp))).FpTriggerPrg = (*TTriggerPrg)(unsafe.Pointer(pT)).FpNext _sqlite3DbFree(tls, db, pT) } + goto end_prepare end_prepare: ; _sqlite3ParseObjectReset(tls, bp) @@ -121104,7 +122088,7 @@ func _sqlite3LockAndPrepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int3 cnt = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141699)) + return _sqlite3MisuseError(tls, int32(142654)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -121247,7 +122231,7 @@ func _sqlite3Prepare16(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, pr rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141848)) + return _sqlite3MisuseError(tls, int32(142803)) } if nBytes >= 0 { z = zSql @@ -121657,15 +122641,15 @@ func _sqlite3JoinType(tls *libc.TLS, pParse uintptr, pA uintptr, pB uintptr, pC i++ } if jointype&(libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER)) == libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER) || jointype&int32(JT_ERROR) != 0 || jointype&(libc.Int32FromInt32(JT_OUTER)|libc.Int32FromInt32(JT_LEFT)|libc.Int32FromInt32(JT_RIGHT)) == int32(JT_OUTER) { - zSp1 = __ccgo_ts + 11202 - zSp2 = __ccgo_ts + 11202 + zSp1 = __ccgo_ts + 11327 + zSp2 = __ccgo_ts + 11327 if pB == uintptr(0) { zSp1++ } if pC == uintptr(0) { zSp2++ } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18933, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19020, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) jointype = int32(JT_INNER) } return jointype @@ -121968,7 +122952,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { if int32((*TSrcItem)(unsafe.Pointer(pRight)).Ffg.Fjointype)&int32(JT_NATURAL) != 0 { pUsing = uintptr(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 36 + 4))&0x400>>10)) != 0 || *(*uintptr)(unsafe.Pointer(pRight + 48)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18963, libc.VaList(bp+16, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19050, libc.VaList(bp+16, 0)) return int32(1) } j = 0 @@ -122021,7 +123005,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { zName1 = (*(*TIdList_item)(unsafe.Pointer(pList + 8 + uintptr(j)*8))).FzName iRightCol = _sqlite3ColumnIndex(tls, pRightTab, zName1) if iRightCol < 0 || _tableAndColumnIndex(tls, pSrc, 0, i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 36 + 4))&0x1000>>12))) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19013, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19100, libc.VaList(bp+16, zName1)) return int32(1) } pE1 = _sqlite3CreateColumnExpr(tls, db, pSrc, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) @@ -122043,7 +123027,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { pFuncArgs = uintptr(0) /* Arguments to the coalesce() */ for _tableAndColumnIndex(tls, pSrc, *(*int32)(unsafe.Pointer(bp))+int32(1), i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 36 + 4))&0x1000>>12))) != 0 { if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*68 + 36 + 4))&0x400>>10)) == 0 || _sqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*68 + 48)), zName1) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19077, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19164, libc.VaList(bp+16, zName1)) break } pFuncArgs = _sqlite3ExprListAppend(tls, pParse, pFuncArgs, pE1) @@ -122089,7 +123073,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { } var _tkCoalesce = TToken{ - Fz: __ccgo_ts + 6730, + Fz: __ccgo_ts + 6794, Fn: uint32(8), } @@ -122889,13 +123873,13 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { _ = z switch id { case int32(TK_ALL): - z = __ccgo_ts + 19114 + z = __ccgo_ts + 19201 case int32(TK_INTERSECT): - z = __ccgo_ts + 19124 + z = __ccgo_ts + 19211 case int32(TK_EXCEPT): - z = __ccgo_ts + 19134 + z = __ccgo_ts + 19221 default: - z = __ccgo_ts + 19141 + z = __ccgo_ts + 19228 break } return z @@ -122916,7 +123900,7 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { func _explainTempTable(tls *libc.TLS, pParse uintptr, zUsage uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19147, libc.VaList(bp+8, zUsage)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19234, libc.VaList(bp+8, zUsage)) } /* @@ -122950,12 +123934,17 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, iParm = (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm /* True if sorter record includes seq. no. */ nRefKey = 0 aOutEx = (*TSelect)(unsafe.Pointer(p)).FpEList + 8 - if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat > 0 { - v1 = __ccgo_ts + 19170 + nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat == 0 || nKey == int32(1) { + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat != 0 { + v1 = __ccgo_ts + 19257 + } else { + v1 = __ccgo_ts + 1662 + } + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19271, libc.VaList(bp+8, v1)) } else { - v1 = __ccgo_ts + 1648 + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19302, libc.VaList(bp+8, nKey)) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19185, libc.VaList(bp+8, v1)) _ = libc.Int32FromInt32(0) if (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut != 0 { _sqlite3VdbeAddOp2(tls, v, int32(OP_Gosub), (*TSortCtx)(unsafe.Pointer(pSort)).FregReturn, (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut) @@ -122978,7 +123967,6 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, regRow = _sqlite3GetTempRange(tls, pParse, nColumn) } } - nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat if int32((*TSortCtx)(unsafe.Pointer(pSort)).FsortFlags)&int32(SORTFLAG_UseSorter) != 0 { v3 = pParse + 44 *(*int32)(unsafe.Pointer(v3))++ @@ -123204,7 +124192,7 @@ func _columnTypeImpl(tls *libc.TLS, pNC uintptr, pExpr uintptr, pzOrigDb uintptr _ = libc.Int32FromInt32(0) if iCol < 0 { zType = __ccgo_ts + 1136 - *(*uintptr)(unsafe.Pointer(bp + 8)) = __ccgo_ts + 16694 + *(*uintptr)(unsafe.Pointer(bp + 8)) = __ccgo_ts + 16781 } else { *(*uintptr)(unsafe.Pointer(bp + 8)) = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*12))).FzCnName zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*12, uintptr(0)) @@ -123357,13 +124345,13 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } _ = libc.Int32FromInt32(0) if iCol < 0 { - zCol = __ccgo_ts + 16694 + zCol = __ccgo_ts + 16781 } else { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*12))).FzCnName } if fullName != 0 { zName1 = uintptr(0) - zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12381, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) + zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12506, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zName1, __ccgo_fp(_sqlite3OomClear)) } else { _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zCol, uintptr(-libc.Int32FromInt32(1))) @@ -123371,7 +124359,7 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } else { z = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*20))).FzEName if z == uintptr(0) { - v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19216, libc.VaList(bp+8, i+int32(1))) + v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19348, libc.VaList(bp+8, i+int32(1))) } else { v2 = _sqlite3DbStrDup(tls, db, z) } @@ -123465,7 +124453,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if iCol >= 0 { v3 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*12))).FzCnName } else { - v3 = __ccgo_ts + 16694 + v3 = __ccgo_ts + 16781 } zName = v3 } else { @@ -123481,7 +124469,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if zName != 0 && !(_sqlite3IsTrueOrFalse(tls, zName) != 0) { zName = _sqlite3DbStrDup(tls, db, zName) } else { - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19216, libc.VaList(bp+32, i+int32(1))) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19348, libc.VaList(bp+32, i+int32(1))) } /* Make sure the column name is unique. If the name is not unique, ** append an integer to the name so that it becomes unique. @@ -123517,7 +124505,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, } *(*Tu32)(unsafe.Pointer(bp))++ v8 = *(*Tu32)(unsafe.Pointer(bp)) - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19225, libc.VaList(bp+32, nName, zName, v8)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19357, libc.VaList(bp+32, nName, zName, v8)) _sqlite3ProgressCheck(tls, pParse) if *(*Tu32)(unsafe.Pointer(bp)) > uint32(3) { Xsqlite3_randomness(tls, int32(4), bp) @@ -123577,9 +124565,9 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS defer tls.Free(48) var a, db, p, pCol, pColl, pS2, zType, p4, p5 uintptr var i, j, m int32 - var m1, n Ti64 + var k, n Ti64 var _ /* sNC at bp+0 */ TNameContext - _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, m, m1, n, p, pCol, pColl, pS2, zType, p4, p5 + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, k, m, n, p, pCol, pColl, pS2, zType, p4, p5 db = (*TParse)(unsafe.Pointer(pParse)).Fdb _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -123600,17 +124588,22 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS if !(i < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } + m = 0 + pS2 = pSelect *(*Tu32)(unsafe.Pointer(pTab + 28)) |= uint32(int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags) & libc.Int32FromInt32(COLFLAG_NOINSERT)) p = (*(*TExprList_item)(unsafe.Pointer(a + uintptr(i)*20))).FpExpr /* pCol->szEst = ... // Column size est for SELECT tables never used */ (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, p) + for int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) && (*TSelect)(unsafe.Pointer(pS2)).FpNext != uintptr(0) { + m |= _sqlite3ExprDataType(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*20))).FpExpr) + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext + (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*20))).FpExpr) + } if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) { (*TColumn)(unsafe.Pointer(pCol)).Faffinity = aff } - if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && (*TSelect)(unsafe.Pointer(pSelect)).FpNext != 0 { - m = 0 - m = 0 - pS2 = (*TSelect)(unsafe.Pointer(pSelect)).FpNext + if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && ((*TSelect)(unsafe.Pointer(pS2)).FpNext != 0 || pS2 != pSelect) { + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext for { if !(pS2 != 0) { break @@ -123635,7 +124628,7 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS zType = _columnTypeImpl(tls, bp, p, uintptr(0), uintptr(0), uintptr(0)) if zType == uintptr(0) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) != int32(_sqlite3AffinityType(tls, zType, uintptr(0))) { if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_NUMERIC) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_FLEXNUM) { - zType = __ccgo_ts + 19233 + zType = __ccgo_ts + 19365 } else { zType = uintptr(0) j = int32(1) @@ -123655,13 +124648,13 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS } } if zType != 0 { - m1 = int64(_sqlite3Strlen30(tls, zType)) + k = int64(_sqlite3Strlen30(tls, zType)) n = int64(_sqlite3Strlen30(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) - (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+m1+int64(2))) + (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+k+int64(2))) p4 = pCol + 10 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) & ^(libc.Int32FromInt32(COLFLAG_HASTYPE) | libc.Int32FromInt32(COLFLAG_HASCOLL))) if (*TColumn)(unsafe.Pointer(pCol)).FzCnName != 0 { - libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint32(m1+int64(1))) + libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint32(k+int64(1))) p5 = pCol + 10 *(*Tu16)(unsafe.Pointer(p5)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p5))) | libc.Int32FromInt32(COLFLAG_HASTYPE)) } @@ -123957,7 +124950,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest iDistinct = 0 /* To ensure unique results if UNION */ eDest = int32(SRT_Fifo) /* Registers used by LIMIT and OFFSET */ if (*TSelect)(unsafe.Pointer(p)).FpWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19237, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19369, 0) return } /* Obtain authorization to do a recursive query */ @@ -124050,7 +125043,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest break } if (*TSelect)(unsafe.Pointer(pFirstRec)).FselFlags&uint32(SF_Aggregate) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19286, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19418, 0) goto end_of_recursive_query } (*TSelect)(unsafe.Pointer(pFirstRec)).Fop = uint8(TK_ALL) @@ -124065,7 +125058,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest /* Store the results of the setup-query in Queue. */ pSetup = (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior (*TSelect)(unsafe.Pointer(pSetup)).FpNext = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19328, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19460, 0) rc = _sqlite3Select(tls, pParse, pSetup, bp) (*TSelect)(unsafe.Pointer(pSetup)).FpNext = p if rc != 0 { @@ -124093,13 +125086,14 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest ** the value for the recursive-table. Store the results in the Queue. */ (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19334, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19466, 0) _sqlite3Select(tls, pParse, p, bp) _ = libc.Int32FromInt32(0) (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = pSetup /* Keep running the loop until the Queue is empty */ _sqlite3VdbeGoto(tls, v, addrTop) _sqlite3VdbeResolveLabel(tls, v, addrBreak) + goto end_of_recursive_query end_of_recursive_query: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSelect)(unsafe.Pointer(p)).FpOrderBy) @@ -124151,11 +125145,11 @@ func _multiSelectValues(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) nRow += bShowAll } if nRow == int32(1) { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } else { - v1 = __ccgo_ts + 19349 + v1 = __ccgo_ts + 19481 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19351, libc.VaList(bp+8, nRow, v1)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19483, libc.VaList(bp+8, nRow, v1)) for p != 0 { _selectInnerLoop(tls, pParse, p, -int32(1), uintptr(0), uintptr(0), pDest, int32(1), int32(1)) if !(bShowAll != 0) { @@ -124270,8 +125264,8 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in return _multiSelectOrderBy(tls, pParse, p, pDest) } else { if (*TSelect)(unsafe.Pointer(pPrior)).FpPrior == uintptr(0) { - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19374, 0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19389, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19506, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19521, 0) } /* Generate code for the left and right SELECT statements. */ @@ -124297,7 +125291,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in _sqlite3VdbeAddOp3(tls, v, int32(OP_OffsetLimit), (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TSelect)(unsafe.Pointer(p)).FiOffset+int32(1), (*TSelect)(unsafe.Pointer(p)).FiOffset) } } - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19114, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19201, 0) rc = _sqlite3Select(tls, pParse, p, bp) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -124354,7 +125348,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 32))).FeDest = op - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19408, libc.VaList(bp+96, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19540, libc.VaList(bp+96, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+32) _ = libc.Int32FromInt32(0) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior @@ -124420,7 +125414,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit1 = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 60))).FiSDParm = tab2 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19408, libc.VaList(bp+96, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19540, libc.VaList(bp+96, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+60) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -124526,6 +125520,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in } _sqlite3KeyInfoUnref(tls, pKeyInfo) } + goto multi_select_end multi_select_end: ; (*TSelectDest)(unsafe.Pointer(pDest)).FiSdst = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst @@ -124546,9 +125541,9 @@ func _sqlite3SelectWrongNumTermsError(tls *libc.TLS, pParse uintptr, p uintptr) bp := tls.Alloc(16) defer tls.Free(16) if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Values) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19429, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19561, 0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19475, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19607, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) } } @@ -124934,8 +125929,8 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy = _sqlite3ExprListDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pOrderBy, 0) - _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7367) - _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7367) + _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7492) + _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7492) /* Compute the limit registers */ _computeLimitRegisters(tls, pParse, p, labelEnd) if (*TSelect)(unsafe.Pointer(p)).FiLimit != 0 && op == int32(TK_ALL) { @@ -124979,14 +125974,14 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr regOutB = v21 _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), regAddrA) _sqlite3SelectDestInit(tls, bp+28, int32(SRT_Coroutine), regAddrB) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19557, libc.VaList(bp+64, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19689, libc.VaList(bp+64, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) /* Generate a coroutine to evaluate the SELECT statement to the ** left of the compound operator - the "A" select. */ addrSelectA = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regAddrA, 0, addrSelectA) (*TSelect)(unsafe.Pointer(pPrior)).FiLimit = regLimitA - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19568, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19700, 0) _sqlite3Select(tls, pParse, pPrior, bp) _sqlite3VdbeEndCoroutine(tls, v, regAddrA) _sqlite3VdbeJumpHere(tls, v, addr1) @@ -124999,7 +125994,7 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr savedOffset = (*TSelect)(unsafe.Pointer(p)).FiOffset (*TSelect)(unsafe.Pointer(p)).FiLimit = regLimitB (*TSelect)(unsafe.Pointer(p)).FiOffset = 0 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19573, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19705, 0) _sqlite3Select(tls, pParse, p, bp+28) (*TSelect)(unsafe.Pointer(p)).FiLimit = savedLimit (*TSelect)(unsafe.Pointer(p)).FiOffset = savedOffset @@ -125217,7 +126212,7 @@ func _substExpr(tls *libc.TLS, pSubst uintptr, pExpr uintptr) (r uintptr) { if pColl != 0 { v1 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v1 = __ccgo_ts + 5086 + v1 = __ccgo_ts + 5150 } pExpr = _sqlite3ExprAddCollateString(tls, (*TSubstContext)(unsafe.Pointer(pSubst)).FpParse, pExpr, v1) } @@ -126281,10 +127276,10 @@ func _findConstInWhere(tls *libc.TLS, pConst uintptr, pExpr uintptr) { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pLeft) != 0 { + if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pLeft) != 0 { _constInsert(tls, pConst, pRight, pLeft, pExpr) } - if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pRight) != 0 { + if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pRight) != 0 { _constInsert(tls, pConst, pLeft, pRight, pExpr) } } @@ -126525,6 +127520,18 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** The hope is that the terms added to the inner query will make it more // ** efficient. // ** +// ** NAME AMBIGUITY +// ** +// ** This optimization is called the "WHERE-clause push-down optimization". +// ** +// ** Do not confuse this optimization with another unrelated optimization +// ** with a similar name: The "MySQL push-down optimization" causes WHERE +// ** clause terms that can be evaluated using only the index and without +// ** reference to the table are run first, so that if they are false, +// ** unnecessary table seeks are avoided. +// ** +// ** RULES +// ** // ** Do not attempt this optimization if: // ** // ** (1) (** This restriction was removed on 2017-09-29. We used to @@ -126590,10 +127597,10 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** (9c) There is a RIGHT JOIN (or FULL JOIN) in between the ON/USING // ** clause and the subquery. // ** -// ** Without this restriction, the push-down optimization might move -// ** the ON/USING filter expression from the left side of a RIGHT JOIN -// ** over to the right side, which leads to incorrect answers. See -// ** also restriction (6) in sqlite3ExprIsSingleTableConstraint(). +// ** Without this restriction, the WHERE-clause push-down optimization +// ** might move the ON/USING filter expression from the left side of a +// ** RIGHT JOIN over to the right side, which leads to incorrect answers. +// ** See also restriction (6) in sqlite3ExprIsSingleTableConstraint(). // ** // ** (10) The inner query is not the right-hand table of a RIGHT JOIN. // ** @@ -126688,7 +127695,7 @@ func _pushDownWhereTerms(tls *libc.TLS, pParse uintptr, pSubq uintptr, pWhere ui nChng += _pushDownWhereTerms(tls, pParse, pSubq, (*TExpr)(unsafe.Pointer(pWhere)).FpRight, pSrcList, iSrc) pWhere = (*TExpr)(unsafe.Pointer(pWhere)).FpLeft } - if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc) != 0 { + if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc, int32(1)) != 0 { nChng++ *(*Tu32)(unsafe.Pointer(pSubq + 4)) |= uint32(SF_PushDown) for pSubq != 0 { @@ -126867,13 +127874,13 @@ func _minMaxQuery(tls *libc.TLS, db uintptr, pFunc uintptr, ppMinMax uintptr) (r } _ = libc.Int32FromInt32(0) zFunc = *(*uintptr)(unsafe.Pointer(pFunc + 8)) - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15550) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15643) == 0 { eRet = int32(WHERE_ORDERBY_MIN) if _sqlite3ExprCanBeNull(tls, (*(*TExprList_item)(unsafe.Pointer(pEList + 8))).FpExpr) != 0 { sortFlags = uint8(KEYINFO_ORDER_BIGNULL) } } else { - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15554) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15647) == 0 { eRet = int32(WHERE_ORDERBY_MAX) sortFlags = uint8(KEYINFO_ORDER_DESC) } else { @@ -126969,7 +127976,7 @@ func _sqlite3IndexedByLookup(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r in pIdx = (*TIndex)(unsafe.Pointer(pIdx)).FpNext } if !(pIdx != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19579, libc.VaList(bp+8, zIndexedBy, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19711, libc.VaList(bp+8, zIndexedBy, 0)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) return int32(SQLITE_ERROR) } @@ -127096,7 +128103,7 @@ func _cannotBeFunction(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 36 + 4))&0x4>>2)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19597, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19729, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) return int32(1) } return 0 @@ -127278,7 +128285,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom *(*Tu32)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect + 4)) |= uint32(SF_CopyCte) _ = libc.Int32FromInt32(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 36 + 4))&0x2>>1)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19620, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 60)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19752, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 60)))) return int32(2) } libc.SetBitFieldPtr16Uint32(pFrom+36+4, libc.Uint32FromInt32(1), 8, 0x100) @@ -127303,7 +128310,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ libc.SetBitFieldPtr16Uint32(pItem+36+4, libc.Uint32FromInt32(1), 6, 0x40) if (*TSelect)(unsafe.Pointer(pRecTerm)).FselFlags&uint32(SF_Recursive) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19640, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19772, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) return int32(2) } *(*Tu32)(unsafe.Pointer(pRecTerm + 4)) |= uint32(SF_Recursive) @@ -127325,7 +128332,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } pRecTerm = (*TSelect)(unsafe.Pointer(pRecTerm)).FpPrior } - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19683 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19815 pSavedWith = (*TParse)(unsafe.Pointer(pParse)).FpWith (*TParse)(unsafe.Pointer(pParse)).FpWith = *(*uintptr)(unsafe.Pointer(bp)) if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { @@ -127361,7 +128368,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom pEList = (*TSelect)(unsafe.Pointer(pLeft)).FpEList if (*TCte)(unsafe.Pointer(pCte)).FpCols != 0 { if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr != (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19706, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19838, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) (*TParse)(unsafe.Pointer(pParse)).FpWith = pSavedWith return int32(2) } @@ -127370,9 +128377,9 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom _sqlite3ColumnsFromExprList(tls, pParse, pEList, pTab+34, pTab+4) if bMayRecursive != 0 { if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19744 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19876 } else { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19778 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19910 } _sqlite3WalkSelect(tls, pWalker, pSel) } @@ -127433,7 +128440,7 @@ func _sqlite3ExpandSubquery(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int if (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias != 0 { (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3DbStrDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias) } else { - (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19816, libc.VaList(bp+8, pFrom)) + (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19948, libc.VaList(bp+8, pFrom)) } for (*TSelect)(unsafe.Pointer(pSel)).FpPrior != 0 { pSel = (*TSelect)(unsafe.Pointer(pSel)).FpPrior @@ -127597,7 +128604,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { return int32(WRC_Abort) } if (*TTable)(unsafe.Pointer(pTab)).FnTabRef >= uint32(0xffff) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19820, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19952, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) (*TSrcItem)(unsafe.Pointer(pFrom)).FpTab = uintptr(0) return int32(WRC_Abort) } @@ -127613,7 +128620,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_EnableView) == uint64(0) && (*TTable)(unsafe.Pointer(pTab)).FpSchema != (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19859, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19991, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } (*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect = _sqlite3SelectDup(tls, db, (*(*struct { FpSelect uintptr @@ -127628,7 +128635,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 44))).Fp)).FeVtabRisk) > libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15109, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15202, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } } _ = libc.Int32FromInt32(0) @@ -127765,7 +128772,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if iDb >= 0 { v10 = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName } else { - v10 = __ccgo_ts + 6590 + v10 = __ccgo_ts + 6654 } zSchemaName = v10 } @@ -127783,7 +128790,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if pNew != 0 { pX = pNew + 8 + uintptr((*TExprList)(unsafe.Pointer(pNew)).FnExpr-int32(1))*20 _ = libc.Int32FromInt32(0) - (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19890, libc.VaList(bp+8, zUName)) + (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20022, libc.VaList(bp+8, zUName)) libc.SetBitFieldPtr16Uint32(pX+8+4, libc.Uint32FromInt32(ENAME_TAB), 0, 0x3) libc.SetBitFieldPtr16Uint32(pX+8+4, libc.Uint32FromInt32(1), 7, 0x80) } @@ -127865,7 +128872,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, (*(*TExprList_item)(unsafe.Pointer(pNestedFrom + 8 + uintptr(j)*20))).FzEName) } else { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19895, libc.VaList(bp+8, zSchemaName, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20027, libc.VaList(bp+8, zSchemaName, zTabName, zName)) } if j == int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) { v13 = int32(ENAME_ROWID) @@ -127878,7 +128885,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } } else { if longNames != 0 { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12381, libc.VaList(bp+8, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12506, libc.VaList(bp+8, zTabName, zName)) libc.SetBitFieldPtr16Uint32(pX1+8+4, libc.Uint32FromInt32(ENAME_NAME), 0, 0x3) } else { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, zName) @@ -127898,9 +128905,9 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if !(tableSeen != 0) { if zTName != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19904, libc.VaList(bp+8, zTName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20036, libc.VaList(bp+8, zTName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19922, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20054, 0) } } } @@ -127914,7 +128921,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if (*TSelect)(unsafe.Pointer(p)).FpEList != 0 { if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpEList)).FnExpr > *(*int32)(unsafe.Pointer(db + 116 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19942, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20074, 0) return int32(WRC_Abort) } if elistFlags&uint32(libc.Int32FromInt32(EP_HasFunc)|libc.Int32FromInt32(EP_Subquery)) != uint32(0) { @@ -128276,12 +129283,12 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { pE = (*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFExpr _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(pE + 20)) == uintptr(0) || (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pE + 20)))).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19973, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20105, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct = -int32(1) } else { pKeyInfo = _sqlite3KeyInfoFromExprList(tls, pParse, *(*uintptr)(unsafe.Pointer(pE + 20)), 0, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistAddr = _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct, 0, 0, pKeyInfo, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20024, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20156, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } } if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab >= 0 { @@ -128307,7 +129314,7 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { (*TKeyInfo)(unsafe.Pointer(pKeyInfo1)).FnKeyField++ } _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab, (*TExprList)(unsafe.Pointer(pOBList)).FnExpr+nExtra, 0, pKeyInfo1, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20057, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20189, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } goto _1 _1: @@ -128632,16 +129639,16 @@ func _explainSimpleCount(tls *libc.TLS, pParse uintptr, pTab uintptr, pIdx uintp if int32((*TParse)(unsafe.Pointer(pParse)).Fexplain) == int32(2) { bCover = libc.BoolInt32(pIdx != uintptr(0) && ((*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) || !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 56))&0x3>>0)) == libc.Int32FromInt32(SQLITE_IDXTYPE_PRIMARYKEY)))) if bCover != 0 { - v1 = __ccgo_ts + 20090 + v1 = __ccgo_ts + 20222 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } if bCover != 0 { v2 = (*TIndex)(unsafe.Pointer(pIdx)).FzName } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20113, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20245, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) } } @@ -128673,7 +129680,7 @@ func _havingToWhereExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 ** statements AggInfo structure. */ if _sqlite3ExprIsConstantOrGroupBy(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, pExpr, (*TSelect)(unsafe.Pointer(pS)).FpGroupBy) != 0 && libc.BoolInt32((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse)) == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb - pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8130) + pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8255) if pNew != 0 { pWhere = (*TSelect)(unsafe.Pointer(pS)).FpWhere t = *(*TExpr)(unsafe.Pointer(pNew)) @@ -128833,7 +129840,7 @@ func _countOfViewOptimization(tls *libc.TLS, pParse uintptr, p uintptr) (r int32 return 0 } /* Result is an aggregate */ _ = libc.Int32FromInt32(0) - if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15844) != 0 { + if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15937) != 0 { return 0 } /* Is count() */ _ = libc.Int32FromInt32(0) @@ -129106,7 +130113,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { v1 = (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p0)).FpTab)).FzName } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20125, libc.VaList(bp+128, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20257, libc.VaList(bp+128, v1)) goto select_end } /* Clear the SF_UFSrcCheck flag. The check has already been performed, @@ -129209,7 +130216,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Catch mismatch in the declared columns of a view and the number of ** columns in the SELECT on the RHS */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) != (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20179, libc.VaList(bp+128, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20311, libc.VaList(bp+128, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) goto select_end } /* Do not attempt the usual optimizations (flattening and ORDER BY @@ -129347,12 +130354,12 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r ** string for the fake column name seems safer. */ if (*TSrcItem)(unsafe.Pointer(pItem1)).FcolUsed == uint64(0) && (*TSrcItem)(unsafe.Pointer(pItem1)).FzName != uintptr(0) { - _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1648, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) + _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1662, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) } /* Generate code for all sub-queries in the FROM clause */ pSub1 = (*TSrcItem)(unsafe.Pointer(pItem1)).FpSelect - if pSub1 == uintptr(0) { + if pSub1 == uintptr(0) || (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub != 0 { goto _10 } /* The code for a subquery should only be generated once. */ @@ -129393,7 +130400,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn, 0, addrTop) (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub = addrTop _sqlite3SelectDestInit(tls, bp+56, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20219, libc.VaList(bp+128, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20351, libc.VaList(bp+128, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+56) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow libc.SetBitFieldPtr16Uint32(pItem1+36+4, libc.Uint32FromInt32(1), 5, 0x20) @@ -129441,7 +130448,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { } _sqlite3SelectDestInit(tls, bp+56, int32(SRT_EphemTab), (*TSrcItem)(unsafe.Pointer(pItem1)).FiCursor) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20234, libc.VaList(bp+128, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20366, libc.VaList(bp+128, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+56) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow if onceAddr != 0 { @@ -129859,11 +130866,11 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r groupBySort = 0 } else { if (*(*TDistinctCtx)(unsafe.Pointer(bp))).FisTnct != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Distinct) == uint32(0) { - v44 = __ccgo_ts + 20250 + v44 = __ccgo_ts + 20382 } else { - v44 = __ccgo_ts + 20259 + v44 = __ccgo_ts + 20391 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19147, libc.VaList(bp+128, v44)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19234, libc.VaList(bp+128, v44)) groupBySort = int32(1) nGroupBy = (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr nCol = nGroupBy @@ -130187,7 +131194,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeResolveLabel(tls, v, addrEnd) } /* endif aggregate query */ if int32((*(*TDistinctCtx)(unsafe.Pointer(bp))).FeTnctType) == int32(WHERE_DISTINCT_UNORDERED) { - _explainTempTable(tls, pParse, __ccgo_ts+20250) + _explainTempTable(tls, pParse, __ccgo_ts+20382) } /* If there is an ORDER BY clause, then we need to sort the results ** and send them to the callback one by one. @@ -130205,6 +131212,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Control jumps to here if an error is encountered above, or upon ** successful coding of the SELECT. */ + goto select_end select_end: ; _ = libc.Int32FromInt32(0) @@ -130295,7 +131303,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr if !(i < nCol) { break } - z = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*4)))) + z = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*4)))) if z == uintptr(0) { goto malloc_failed } @@ -130311,7 +131319,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr } else { if int32((*TTabResult)(unsafe.Pointer(p)).FnColumn) != nCol { Xsqlite3_free(tls, (*TTabResult)(unsafe.Pointer(p)).FzErrMsg) - (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20268, 0) + (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20400, 0) (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) return int32(1) } @@ -130346,6 +131354,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr (*TTabResult)(unsafe.Pointer(p)).FnRow++ } return 0 + goto malloc_failed malloc_failed: ; (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) @@ -130401,7 +131410,7 @@ func Xsqlite3_get_table(tls *libc.TLS, db uintptr, zSql uintptr, pazResult uintp if (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg != 0 { if pzErrMsg != 0 { Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pzErrMsg))) - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+40, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+40, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) } Xsqlite3_free(tls, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg) } @@ -130571,7 +131580,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if isTemp != 0 { /* If TEMP was specified, then the trigger name may not be qualified. */ if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20333, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20465, 0) goto trigger_cleanup } iDb = int32(1) @@ -130612,7 +131621,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } _ = libc.Int32FromInt32(0) - _sqlite3FixInit(tls, bp+4, pParse, iDb, __ccgo_ts+20379, *(*uintptr)(unsafe.Pointer(bp))) + _sqlite3FixInit(tls, bp+4, pParse, iDb, __ccgo_ts+20511, *(*uintptr)(unsafe.Pointer(bp))) if _sqlite3FixSrcList(tls, bp+4, pTableName) != 0 { goto trigger_cleanup } @@ -130622,11 +131631,11 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_orphan_error } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20387, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20519, 0) goto trigger_orphan_error } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, db) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20428, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20560, 0) goto trigger_orphan_error } /* Check that the trigger name is not reserved and that no trigger of the @@ -130636,14 +131645,14 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 _ = libc.Int32FromInt32(0) goto trigger_cleanup } - if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20379, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { + if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20511, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { goto trigger_cleanup } _ = libc.Int32FromInt32(0) if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FpSchema+40, zName) != 0 { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20468, libc.VaList(bp+64, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20600, libc.VaList(bp+64, *(*uintptr)(unsafe.Pointer(bp)))) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -130652,8 +131661,8 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 } } /* Do not create a trigger on a system table */ - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6525, int32(7)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20494, 0) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6589, int32(7)) == 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20626, 0) goto trigger_cleanup } /* INSTEAD of triggers are only for views and views only support INSTEAD @@ -130661,15 +131670,15 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && tr_tm != int32(TK_INSTEAD) { if tr_tm == int32(TK_BEFORE) { - v1 = __ccgo_ts + 20532 + v1 = __ccgo_ts + 20664 } else { - v1 = __ccgo_ts + 20539 + v1 = __ccgo_ts + 20671 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20545, libc.VaList(bp+64, v1, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20677, libc.VaList(bp+64, v1, pTableName+8)) goto trigger_orphan_error } if !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) && tr_tm == int32(TK_INSTEAD) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20582, libc.VaList(bp+64, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20714, libc.VaList(bp+64, pTableName+8)) goto trigger_orphan_error } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -130689,9 +131698,9 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iTabDb == int32(1) { - v3 = __ccgo_ts + 6533 + v3 = __ccgo_ts + 6597 } else { - v3 = __ccgo_ts + 6066 + v3 = __ccgo_ts + 6130 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto trigger_cleanup @@ -130733,6 +131742,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 pColumns = uintptr(0) _ = libc.Int32FromInt32(0) (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger = pTrigger + goto trigger_cleanup trigger_cleanup: ; _sqlite3DbFree(tls, db, zName) @@ -130745,6 +131755,7 @@ trigger_cleanup: _ = libc.Int32FromInt32(0) } return + goto trigger_orphan_error trigger_orphan_error: ; if int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) == int32(1) { @@ -130791,7 +131802,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl pStepList = (*TTriggerStep)(unsafe.Pointer(pStepList)).FpNext } _sqlite3TokenInit(tls, bp+56, (*TTrigger)(unsafe.Pointer(pTrig)).FzName) - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20379, bp+56) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20511, bp+56) if _sqlite3FixTriggerStep(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).Fstep_list) != 0 || _sqlite3FixExpr(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).FpWhen) != 0 { goto triggerfinish_cleanup } @@ -130814,7 +131825,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl break } if (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget != uintptr(0) && _sqlite3ShadowTableName(tls, db, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20628, libc.VaList(bp+72, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20760, libc.VaList(bp+72, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) goto triggerfinish_cleanup } goto _1 @@ -130830,10 +131841,10 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) z = _sqlite3DbStrNDup(tls, db, (*TToken)(unsafe.Pointer(pAll)).Fz, uint64((*TToken)(unsafe.Pointer(pAll)).Fn)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20676, libc.VaList(bp+72, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20808, libc.VaList(bp+72, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) _sqlite3DbFree(tls, db, z) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20751, libc.VaList(bp+72, zName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20883, libc.VaList(bp+72, zName)), uint16(0)) } } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { @@ -130853,6 +131864,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } } } + goto triggerfinish_cleanup triggerfinish_cleanup: ; _sqlite3DeleteTrigger(tls, db, pTrig) @@ -131108,7 +132120,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int } if !(pTrigger != 0) { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20780, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20912, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, zDb) } @@ -131116,6 +132128,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int goto drop_trigger_cleanup } _sqlite3DropTriggerPtr(tls, pParse, pTrigger) + goto drop_trigger_cleanup drop_trigger_cleanup: ; _sqlite3SrcListDelete(tls, db, pName) @@ -131151,9 +132164,9 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { code = int32(SQLITE_DROP_TRIGGER) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6533 + v1 = __ccgo_ts + 6597 } else { - v1 = __ccgo_ts + 6066 + v1 = __ccgo_ts + 6130 } zTab = v1 if iDb == int32(1) { @@ -131168,7 +132181,7 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { v2 = _sqlite3GetVdbe(tls, pParse) v = v2 if v2 != uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20800, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20932, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropTrigger), iDb, 0, 0, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName, 0) } @@ -131304,11 +132317,11 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { if op != int32(TK_INSERT) { if op == int32(TK_DELETE) { - v1 = __ccgo_ts + 20862 + v1 = __ccgo_ts + 20994 } else { - v1 = __ccgo_ts + 20869 + v1 = __ccgo_ts + 21001 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20876, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21008, libc.VaList(bp+8, v1)) } (*TTrigger)(unsafe.Pointer(p)).Ftr_tm = uint8(TRIGGER_BEFORE) } else { @@ -131325,6 +132338,7 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, p = (*TTrigger)(unsafe.Pointer(p)).FpNext } } + goto exit_triggers_exist exit_triggers_exist: ; if pMask != 0 { @@ -131414,7 +132428,7 @@ func _isAsteriskTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pTerm)).FpRight)).Fop) != int32(TK_ASTERISK) { return 0 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20924, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21056, 0) return int32(1) } @@ -131479,6 +132493,81 @@ func _sqlite3ExpandReturning(tls *libc.TLS, pParse uintptr, pList uintptr, pTab return pNew } +// C documentation +// +// /* If the Expr node is a subquery or an EXISTS operator or an IN operator that +// ** uses a subquery, and if the subquery is SF_Correlated, then mark the +// ** expression as EP_VarSelect. +// */ +func _sqlite3ReturningSubqueryVarSelect(tls *libc.TLS, NotUsed uintptr, pExpr uintptr) (r int32) { + _ = NotUsed + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) && (*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 20)))).FselFlags&uint32(SF_Correlated) != uint32(0) { + *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** If the SELECT references the table pWalker->u.pTab, then do two things: +// ** +// ** (1) Mark the SELECT as as SF_Correlated. +// ** (2) Set pWalker->eCode to non-zero so that the caller will know +// ** that (1) has happened. +// */ +func _sqlite3ReturningSubqueryCorrelated(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + var i int32 + var pSrc uintptr + _, _ = i, pSrc + _ = libc.Int32FromInt32(0) + pSrc = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + _ = libc.Int32FromInt32(0) + i = 0 + for { + if !(i < (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) { + break + } + if (*(*TSrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i)*68))).FpTab == *(*uintptr)(unsafe.Pointer(pWalker + 24)) { + *(*Tu32)(unsafe.Pointer(pSelect + 4)) |= uint32(SF_Correlated) + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + break + } + goto _1 + _1: + ; + i++ + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Scan the expression list that is the argument to RETURNING looking +// ** for subqueries that depend on the table which is being modified in the +// ** statement that is hosting the RETURNING clause (pTab). Mark all such +// ** subqueries as SF_Correlated. If the subqueries are part of an +// ** expression, mark the expression as EP_VarSelect. +// ** +// ** https://sqlite.org/forum/forumpost/2c83569ce8945d39 +// */ +func _sqlite3ProcessReturningSubqueries(tls *libc.TLS, pEList uintptr, pTab uintptr) { + bp := tls.Alloc(32) + defer tls.Free(32) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint32(28)) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ExprWalkNoop) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3ReturningSubqueryCorrelated) + *(*uintptr)(unsafe.Pointer(bp + 24)) = pTab + _sqlite3WalkExprList(tls, bp, pEList) + if (*(*TWalker)(unsafe.Pointer(bp))).FeCode != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ReturningSubqueryVarSelect) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) + _sqlite3WalkExprList(tls, bp, pEList) + } +} + // C documentation // // /* @@ -131515,6 +132604,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab (*(*TSelect)(unsafe.Pointer(bp))).FpSrc = bp + 76 (*(*TSrcList)(unsafe.Pointer(bp + 76))).FnSrc = int32(1) (*(*TSrcItem)(unsafe.Pointer(bp + 76 + 8))).FpTab = pTab + (*(*TSrcItem)(unsafe.Pointer(bp + 76 + 8))).FzName = (*TTable)(unsafe.Pointer(pTab)).FzName /* tag-20240424-1 */ (*(*TSrcItem)(unsafe.Pointer(bp + 76 + 8))).FiCursor = -int32(1) _sqlite3SelectPrep(tls, pParse, bp, uintptr(0)) if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { @@ -131540,6 +132630,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab if _sqlite3ResolveExprListNames(tls, bp+152, pNew) == SQLITE_OK && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) { nCol = (*TExprList)(unsafe.Pointer(pNew)).FnExpr reg = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(1) + _sqlite3ProcessReturningSubqueries(tls, pNew, pTab) *(*int32)(unsafe.Pointer(pParse + 44)) += nCol + int32(2) (*TReturning)(unsafe.Pointer(pReturning)).FiRetReg = reg i = 0 @@ -131612,7 +132703,7 @@ func _codeTriggerProgram(tls *libc.TLS, pParse uintptr, pStepList uintptr, orcon (*TParse)(unsafe.Pointer(pParse)).FeOrconf = uint8(v2) _ = libc.Int32FromInt32(0) if (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6263, libc.VaList(bp+40, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6327, libc.VaList(bp+40, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) } switch int32((*TTriggerStep)(unsafe.Pointer(pStep)).Fop) { case int32(TK_UPDATE): @@ -131719,7 +132810,7 @@ func _codeRowTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab uintp v = _sqlite3GetVdbe(tls, bp+36) if v != 0 { if (*TTrigger)(unsafe.Pointer(pTrigger)).FzName != 0 { - _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+20966, libc.VaList(bp+328, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) + _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+21098, libc.VaList(bp+328, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) } /* If one was specified, code the WHEN clause. If it evaluates to false ** (or NULL) the sub-vdbe is immediately halted by jumping to the @@ -132433,7 +133524,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui chngPk = uint8(1) } else { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*12))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20980, libc.VaList(bp+80, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*12))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21112, libc.VaList(bp+80, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*12))).FzCnName)) goto update_cleanup } } @@ -132453,13 +133544,13 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui pRowidExpr = (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*20))).FpExpr iRowidExpr = i } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21016, libc.VaList(bp+80, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*20))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21148, libc.VaList(bp+80, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*20))).FzEName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto update_cleanup } } if j < 0 { - v11 = __ccgo_ts + 7905 + v11 = __ccgo_ts + 8030 } else { v11 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*12))).FzCnName } @@ -133155,8 +134246,9 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui ** that information. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21035) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21167) } + goto update_cleanup update_cleanup: ; _sqlite3AuthContextPop(tls, bp) @@ -133603,9 +134695,9 @@ func _sqlite3UpsertAnalyzeTarget(tls *libc.TLS, pParse uintptr, pTabList uintptr if nClause == 0 && (*TUpsert)(unsafe.Pointer(pUpsert)).FpNextUpsert == uintptr(0) { (*(*[16]int8)(unsafe.Pointer(bp + 140)))[0] = 0 } else { - Xsqlite3_snprintf(tls, int32(16), bp+140, __ccgo_ts+21048, libc.VaList(bp+168, nClause+int32(1))) + Xsqlite3_snprintf(tls, int32(16), bp+140, __ccgo_ts+21180, libc.VaList(bp+168, nClause+int32(1))) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21052, libc.VaList(bp+168, bp+140)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21184, libc.VaList(bp+168, bp+140)) return int32(SQLITE_ERROR) } goto _1 @@ -133711,7 +134803,7 @@ func _sqlite3UpsertDoUpdate(tls *libc.TLS, pParse uintptr, pUpsert uintptr, pTab i++ } i = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), iDataCur, 0, iPk, nPk) - _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12470, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12595, -int32(1)) _sqlite3MayAbort(tls, pParse) _sqlite3VdbeJumpHere(tls, v, i) } @@ -133794,7 +134886,7 @@ func _execSql(tls *libc.TLS, db uintptr, pzErrMsg uintptr, zSql uintptr) (r int3 ** corrupt the sqlite_schema.sql field with other kinds of statements ** then run VACUUM to get those statements to execute at inappropriate ** times. */ - if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21125, uint32(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21129, uint32(3)) == 0) { + if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21257, uint32(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21261, uint32(3)) == 0) { rc = _execSql(tls, db, pzErrMsg, zSubSql) if rc != SQLITE_OK { break @@ -133895,6 +134987,7 @@ func _sqlite3Vacuum(tls *libc.TLS, pParse uintptr, _pNm uintptr, pInto uintptr) _sqlite3VdbeAddOp2(tls, v, int32(OP_Vacuum), iDb, iIntoReg) _sqlite3VdbeUsesBtree(tls, v, iDb) } + goto build_vacuum_end build_vacuum_end: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pInto) @@ -133922,24 +135015,24 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p pDb = uintptr(0) /* Name of output file */ pgflags = uint32(PAGER_SYNCHRONOUS_OFF) /* sync flags for output db */ if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21133) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21265) return int32(SQLITE_ERROR) /* IMP: R-12218-18073 */ } if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive > int32(1) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21173) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21305) return int32(SQLITE_ERROR) /* IMP: R-15610-35227 */ } saved_openFlags = (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags if pOut != 0 { if Xsqlite3_value_type(tls, pOut) != int32(SQLITE_TEXT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21216) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21348) return int32(SQLITE_ERROR) } zOut = Xsqlite3_value_text(tls, pOut) *(*uint32)(unsafe.Pointer(db + 56)) &= uint32(^libc.Int32FromInt32(SQLITE_OPEN_READONLY)) *(*uint32)(unsafe.Pointer(db + 56)) |= uint32(libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE)) } else { - zOut = __ccgo_ts + 1648 + zOut = __ccgo_ts + 1662 } /* Save the current value of the database flags so that it can be ** restored before returning. Then set the writable-schema flag, and @@ -133971,7 +135064,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** to write the journal header file. */ nDb = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21234, libc.VaList(bp+24, zOut)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21366, libc.VaList(bp+24, zOut)) (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags = saved_openFlags if rc != SQLITE_OK { goto end_of_vacuum @@ -133985,7 +135078,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p *(*Ti64)(unsafe.Pointer(bp)) = 0 if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != uintptr(0) && (_sqlite3OsFileSize(tls, id, bp) != SQLITE_OK || *(*Ti64)(unsafe.Pointer(bp)) > 0) { rc = int32(SQLITE_ERROR) - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21257) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21389) goto end_of_vacuum } *(*Tu32)(unsafe.Pointer(db + 24)) |= uint32(DBFLAG_VacuumInto) @@ -134002,7 +135095,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** file. This is done before the sqlite3BtreeGetPageSize(pMain) call below, ** to ensure that we do not try to change the page-size on a WAL database. */ - rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14879) + rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14972) if rc != SQLITE_OK { goto end_of_vacuum } @@ -134033,11 +135126,11 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** in the temporary database. */ (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(nDb) /* force new CREATE statements into vacuum_db */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21284, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21416, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21392, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21524, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } @@ -134046,7 +135139,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** an "INSERT INTO vacuum_db.xxx SELECT * FROM main.xxx;" to copy ** the contents to the temporary database. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21446, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21578, libc.VaList(bp+24, zDbMain)) _ = libc.Int32FromInt32(0) *(*Tu32)(unsafe.Pointer(db + 24)) &= uint32(^libc.Int32FromInt32(DBFLAG_Vacuum)) if rc != SQLITE_OK { @@ -134057,7 +135150,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** associated storage, so all we have to do is copy their entries ** from the schema table. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21597, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21729, libc.VaList(bp+24, zDbMain)) if rc != 0 { goto end_of_vacuum } @@ -134099,6 +135192,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p nRes = _sqlite3BtreeGetRequestedReserve(tls, pTemp) rc = _sqlite3BtreeSetPageSize(tls, pMain, _sqlite3BtreeGetPageSize(tls, pTemp), nRes, int32(1)) } + goto end_of_vacuum end_of_vacuum: ; /* Restore the original value of db->flags */ @@ -134604,7 +135698,7 @@ func _addModuleArgument(tls *libc.TLS, pParse uintptr, pTable uintptr, zArg uint FazArg uintptr Fp uintptr })(unsafe.Pointer(pTable + 44))).FnArg+int32(3) >= *(*int32)(unsafe.Pointer(db + 116 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12700, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12825, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) } azModuleArg = _sqlite3DbRealloc(tls, db, (*(*struct { FnArg int32 @@ -134731,7 +135825,7 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { if pEnd != 0 { (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fn = uint32(int32((*TToken)(unsafe.Pointer(pEnd)).Fz)-int32((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) + (*TToken)(unsafe.Pointer(pEnd)).Fn } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21727, libc.VaList(bp+8, pParse+200)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21859, libc.VaList(bp+8, pParse+200)) /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. @@ -134741,11 +135835,11 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { ** by sqlite3StartTable(). */ iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+21751, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+21883, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) v = _sqlite3GetVdbe(tls, pParse) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) - zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21850, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) + zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21982, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, zWhere, uint16(0)) _sqlite3DbFree(tls, db, zStmt) v2 = pParse + 44 @@ -134835,7 +135929,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, break } if (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab == pTab { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21869, libc.VaList(bp+32, (*TTable)(unsafe.Pointer(pTab)).FzName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22001, libc.VaList(bp+32, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(SQLITE_LOCKED) } goto _1 @@ -134872,6 +135966,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = bp (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+8, bp+16) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -134880,9 +135976,9 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, _ = libc.Int32FromInt32(0) if SQLITE_OK != rc { if *(*uintptr)(unsafe.Pointer(bp + 16)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21911, libc.VaList(bp+32, zModuleName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22043, libc.VaList(bp+32, zModuleName)) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3795, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer(bp + 16)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3859, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer(bp + 16)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) } _sqlite3DbFree(tls, db, pVTable) @@ -134895,8 +135991,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*TModule)(unsafe.Pointer(pMod)).FnRefModule++ (*TVTable)(unsafe.Pointer(pVTable)).FnRef = int32(1) if (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared == 0 { - zFormat = __ccgo_ts + 21941 - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+32, (*TTable)(unsafe.Pointer(pTab)).FzName)) + zFormat = __ccgo_ts + 22073 + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+32, zModuleName)) _sqlite3VtabUnlock(tls, pVTable) rc = int32(SQLITE_ERROR) } else { @@ -134921,7 +136017,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(iCol < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } - zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*12, __ccgo_ts+1648) + zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*12, __ccgo_ts+1662) i = 0 nType = _sqlite3Strlen30(tls, zType) i = 0 @@ -134929,7 +136025,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(i < nType) { break } - if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16585, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { + if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16672, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { break } goto _3 @@ -135013,13 +136109,13 @@ func _sqlite3VtabCallConnect(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 44))).FazArg)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21987, libc.VaList(bp+16, zModule)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22119, libc.VaList(bp+16, zModule)) rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxConnect, bp) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) (*TParse)(unsafe.Pointer(pParse)).Frc = rc } _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) @@ -135101,7 +136197,7 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, ** error. Otherwise, do nothing. */ if pMod == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxDestroy == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21987, libc.VaList(bp+8, zMod)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22119, libc.VaList(bp+8, zMod)) rc = int32(SQLITE_ERROR) } else { rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate, pzErr) @@ -135127,18 +136223,42 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r int32) { bp := tls.Alloc(304) defer tls.Free(304) - var initBusy, rc int32 - var pCtx, pIdx, pNew, pTab, v2 uintptr - var v1 Ti16 + var i, initBusy, rc int32 + var pCtx, pIdx, pNew, pTab, z, v3 uintptr + var v2 Ti16 var _ /* sParse at bp+0 */ TParse - _, _, _, _, _, _, _, _ = initBusy, pCtx, pIdx, pNew, pTab, rc, v1, v2 + var _ /* tokenType at bp+284 */ int32 + _, _, _, _, _, _, _, _, _, _ = i, initBusy, pCtx, pIdx, pNew, pTab, rc, z, v2, v3 rc = SQLITE_OK + /* Verify that the first two keywords in the CREATE TABLE statement + ** really are "CREATE" and "TABLE". If this is not the case, then + ** sqlite3_declare_vtab() is being misused. + */ + z = zCreateTable + i = 0 + for { + if !(_aKeyword1[i] != 0) { + break + } + *(*int32)(unsafe.Pointer(bp + 284)) = 0 + for cond := true; cond; cond = *(*int32)(unsafe.Pointer(bp + 284)) == int32(TK_SPACE) { + z += uintptr(_sqlite3GetToken(tls, z, bp+284)) + } + if *(*int32)(unsafe.Pointer(bp + 284)) != int32(_aKeyword1[i]) { + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+22138, 0) + return int32(SQLITE_ERROR) + } + goto _1 + _1: + ; + i++ + } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pCtx = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(pCtx != 0) || (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared != 0 { - _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(155155))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(156227))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(155157)) + return _sqlite3MisuseError(tls, int32(156229)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _ = libc.Int32FromInt32(0) @@ -135152,7 +136272,10 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i initBusy = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) (*(*TParse)(unsafe.Pointer(bp))).FnQueryLoop = int16(1) - if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) && (*(*TParse)(unsafe.Pointer(bp))).FpNewTable != uintptr(0) && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && int32((*TTable)(unsafe.Pointer((*(*TParse)(unsafe.Pointer(bp))).FpNewTable)).FeTabType) == TABTYP_NORM { + if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if !((*TTable)(unsafe.Pointer(pTab)).FaCol != 0) { pNew = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable @@ -135162,9 +136285,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 44))).FpDfltList) - v1 = (*TTable)(unsafe.Pointer(pNew)).FnCol - (*TTable)(unsafe.Pointer(pTab)).FnCol = v1 - (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v1 + v2 = (*TTable)(unsafe.Pointer(pNew)).FnCol + (*TTable)(unsafe.Pointer(pTab)).FnCol = v2 + (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v2 *(*Tu32)(unsafe.Pointer(pTab + 28)) |= (*TTable)(unsafe.Pointer(pNew)).FtabFlags & uint32(libc.Int32FromInt32(TF_WithoutRowid)|libc.Int32FromInt32(TF_NoVisibleRowid)) (*TTable)(unsafe.Pointer(pNew)).FnCol = 0 (*TTable)(unsafe.Pointer(pNew)).FaCol = uintptr(0) @@ -135186,11 +136309,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared = int32(1) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - v2 = __ccgo_ts + 3795 + v3 = __ccgo_ts + 3859 } else { - v2 = uintptr(0) + v3 = uintptr(0) } - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v2, libc.VaList(bp+296, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v3, libc.VaList(bp+296, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) rc = int32(SQLITE_ERROR) } @@ -135207,6 +136330,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i return rc } +var _aKeyword1 = [3]Tu8{ + 0: uint8(TK_CREATE), + 1: uint8(TK_TABLE), +} + // C documentation // // /* @@ -135668,7 +136796,7 @@ func _sqlite3VtabEponymousTableInit(tls *libc.TLS, pParse uintptr, pMod uintptr) _addModuleArgument(tls, pParse, pTab, _sqlite3DbStrDup(tls, db, (*TTable)(unsafe.Pointer(pTab)).FzName)) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer(pModule)).FxConnect, bp) if rc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3VtabEponymousTableClear(tls, db, pMod) } @@ -135735,7 +136863,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) p = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(p != 0) { - rc = _sqlite3MisuseError(tls, int32(155651)) + rc = _sqlite3MisuseError(tls, int32(156723)) } else { _ = libc.Int32FromInt32(0) ap = va @@ -135749,7 +136877,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in case int32(SQLITE_VTAB_USES_ALL_SCHEMAS): (*TVTable)(unsafe.Pointer((*TVtabCtx)(unsafe.Pointer(p)).FpVTable)).FbAllSchemas = uint8(1) default: - rc = _sqlite3MisuseError(tls, int32(155673)) + rc = _sqlite3MisuseError(tls, int32(156745)) break } _ = ap @@ -136471,10 +137599,10 @@ type WhereInfo1 = TWhereInfo1 func _explainIndexColumnName(tls *libc.TLS, pIdx uintptr, i int32) (r uintptr) { i = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) if i == -int32(2) { - return __ccgo_ts + 22006 + return __ccgo_ts + 22151 } if i == -int32(1) { - return __ccgo_ts + 16694 + return __ccgo_ts + 16781 } return (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(i)*12))).FzCnName } @@ -136494,10 +137622,10 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, _ = i _ = libc.Int32FromInt32(0) if bAnd != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22013, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22158, int32(5)) } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22019, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22164, int32(1)) } i = 0 for { @@ -136505,7 +137633,7 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13090, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13215, int32(1)) } Xsqlite3_str_appendall(tls, pStr, _explainIndexColumnName(tls, pIdx, iTerm+i)) goto _1 @@ -136514,11 +137642,11 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5170, int32(1)) } Xsqlite3_str_append(tls, pStr, zOp, int32(1)) if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22019, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22164, int32(1)) } i = 0 for { @@ -136526,16 +137654,16 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13090, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13215, int32(1)) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5108, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5172, int32(1)) goto _2 _2: ; i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5170, int32(1)) } } @@ -136568,7 +137696,7 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { if int32(nEq) == 0 && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) == uint32(0) { return } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22021, int32(2)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22166, int32(2)) i = 0 for { if !(i < int32(nEq)) { @@ -136576,12 +137704,12 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } z = _explainIndexColumnName(tls, pIndex, i) if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22013, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22158, int32(5)) } if i >= int32(nSkip) { - v2 = __ccgo_ts + 22024 + v2 = __ccgo_ts + 22169 } else { - v2 = __ccgo_ts + 22029 + v2 = __ccgo_ts + 22174 } Xsqlite3_str_appendf(tls, pStr, v2, libc.VaList(bp+8, z)) goto _1 @@ -136591,13 +137719,13 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } j = i if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_BTM_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22037) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22182) i = int32(1) } if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_TOP_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22039) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22184) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5170, int32(1)) } // C documentation @@ -136640,11 +137768,11 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _sqlite3StrAccumInit(tls, bp, db, bp+24, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if isSearch != 0 { - v2 = __ccgo_ts + 22041 + v2 = __ccgo_ts + 22186 } else { - v2 = __ccgo_ts + 22048 + v2 = __ccgo_ts + 22193 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22053, libc.VaList(bp+136, v2, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22198, libc.VaList(bp+136, v2, pItem)) if flags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_VIRTUALTABLE)) == uint32(0) { zFmt = uintptr(0) _ = libc.Int32FromInt32(0) @@ -136652,37 +137780,37 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _ = libc.Int32FromInt32(0) if !((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) && int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 56))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { if isSearch != 0 { - zFmt = __ccgo_ts + 11253 + zFmt = __ccgo_ts + 11378 } } else { if flags&uint32(WHERE_PARTIALIDX) != 0 { - zFmt = __ccgo_ts + 22059 + zFmt = __ccgo_ts + 22204 } else { if flags&uint32(WHERE_AUTO_INDEX) != 0 { - zFmt = __ccgo_ts + 22092 + zFmt = __ccgo_ts + 22237 } else { if flags&uint32(WHERE_IDX_ONLY) != 0 { - zFmt = __ccgo_ts + 22117 + zFmt = __ccgo_ts + 22262 } else { - zFmt = __ccgo_ts + 22135 + zFmt = __ccgo_ts + 22280 } } } } if zFmt != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22144, int32(7)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22289, int32(7)) Xsqlite3_str_appendf(tls, bp, zFmt, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) _explainIndexRange(tls, bp, pLoop) } } else { if flags&uint32(WHERE_IPK) != uint32(0) && flags&uint32(WHERE_CONSTRAINT) != uint32(0) { - zRowid = __ccgo_ts + 16694 - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22152, libc.VaList(bp+136, zRowid)) + zRowid = __ccgo_ts + 16781 + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22297, libc.VaList(bp+136, zRowid)) if flags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != 0 { cRangeOp = int8('=') } else { if flags&uint32(WHERE_BOTH_LIMIT) == uint32(WHERE_BOTH_LIMIT) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22183, libc.VaList(bp+136, zRowid)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22328, libc.VaList(bp+136, zRowid)) cRangeOp = int8('<') } else { if flags&uint32(WHERE_BTM_LIMIT) != 0 { @@ -136693,10 +137821,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22193, libc.VaList(bp+136, int32(cRangeOp))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22338, libc.VaList(bp+136, int32(cRangeOp))) } else { if flags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22198, libc.VaList(bp+136, (*(*struct { + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22343, libc.VaList(bp+136, (*(*struct { FidxNum int32 F__ccgo4 uint8 FisOrdered Ti8 @@ -136715,7 +137843,7 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } if int32((*TSrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&int32(JT_LEFT) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22225, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22370, 0) } zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) @@ -136749,14 +137877,14 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Initial space for EQP output string */ _sqlite3StrAccumInit(tls, bp, db, bp+24, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22236, libc.VaList(bp+136, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22381, libc.VaList(bp+136, pItem)) pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_IPK) != 0 { pTab = (*TSrcItem)(unsafe.Pointer(pItem)).FpTab if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22024, libc.VaList(bp+136, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*12))).FzCnName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22169, libc.VaList(bp+136, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*12))).FzCnName)) } else { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22257, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22402, 0) } } else { i = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) @@ -136766,16 +137894,16 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp } z = _explainIndexColumnName(tls, (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex, i) if i > int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22013, int32(5)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22158, int32(5)) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22024, libc.VaList(bp+136, z)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22169, libc.VaList(bp+136, z)) goto _1 _1: ; i++ } } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5170, int32(1)) zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) return ret @@ -137641,6 +138769,35 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 } } +// C documentation +// +// /* +// ** Loop pLoop is a WHERE_INDEXED level that uses at least one IN(...) +// ** operator. Return true if level pLoop is guaranteed to visit only one +// ** row for each key generated for the index. +// */ +func _whereLoopIsOneRow(tls *libc.TLS, pLoop uintptr) (r int32) { + var ii int32 + _ = ii + if (*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FonError != 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) == 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq) == int32((*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FnKeyCol) { + ii = 0 + for { + if !(ii < int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq)) { + break + } + if int32((*TWhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(ii)*4)))).FeOperator)&(libc.Int32FromInt32(WO_IS)|libc.Int32FromInt32(WO_ISNULL)) != 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) + } + return 0 +} + // C documentation // // /* @@ -138371,7 +139528,10 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI _ = libc.Int32FromInt32(0) } /* Record the instruction used to terminate the loop. */ - if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 { + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 || (*(*struct { + FnIn int32 + FaInLoop uintptr + })(unsafe.Pointer(pLevel + 64))).FnIn != 0 && regBignull == 0 && _whereLoopIsOneRow(tls, pLoop) != 0 { (*TWhereLevel)(unsafe.Pointer(pLevel)).Fop = uint8(OP_Noop) } else { if bRev != 0 { @@ -138548,7 +139708,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** eliminating duplicates from other WHERE clauses, the action for each ** sub-WHERE clause is to to invoke the main loop body as a subroutine. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22265, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22410, 0) ii = 0 for { if !(ii < (*TWhereClause)(unsafe.Pointer(pOrWc)).FnTerm) { @@ -138571,7 +139731,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI pOrExpr = pAndExpr } /* Loop through table entries that match term pOrTerm. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22280, libc.VaList(bp+72, ii+int32(1))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22425, libc.VaList(bp+72, ii+int32(1))) pSubWInfo = _sqlite3WhereBegin(tls, pParse, pOrTab, pOrExpr, uintptr(0), uintptr(0), uintptr(0), uint16(WHERE_OR_SUBCLAUSE), iCovCur) _ = libc.Int32FromInt32(0) if pSubWInfo != 0 { @@ -138742,6 +139902,12 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** iLoop==3: Code all remaining expressions. ** ** An effort is made to skip unnecessary iterations of the loop. + ** + ** This optimization of causing simple query restrictions to occur before + ** more complex one is call the "push-down" optimization in MySQL. Here + ** in SQLite, the name is "MySQL push-down", since there is also another + ** totally unrelated optimization called "WHERE-clause push-down". + ** Sometimes the qualifier is omitted, resulting in an ambiguity, so beware. */ if pIdx != 0 { v60 = int32(1) @@ -138943,6 +140109,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** to the results of the OUTER JOIN. The following loop generates the ** appropriate WHERE clause constraint checks. tag-20220513a. */ + goto code_outer_join_constraints code_outer_join_constraints: ; pTerm = (*TWhereClause)(unsafe.Pointer(pWC)).Fa @@ -139047,9 +140214,9 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe defer tls.Free(96) var addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, nPk, r, v3 int32 var mAll TBitmask - var pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr + var pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr var _ /* sFrom at bp+0 */ TSrcList - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pRJ = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpRJ @@ -139058,13 +140225,18 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop pTabItem = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*68 mAll = uint64(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22289, libc.VaList(bp+88, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22434, libc.VaList(bp+88, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) k = 0 for { if !(k < iLevel) { break } + _ = libc.Int32FromInt32(0) + pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 752 + uintptr(k)*84))).FiFrom)*68 mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 752 + uintptr(k)*84))).FpWLoop)).FmaskSelf + if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 36 + 4))&0x20>>5)) != 0 { + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pRight)).FpSelect)).FpEList)).FnExpr-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 752 + uintptr(k)*84))).FiTabCur) iIdxCur = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 752 + uintptr(k)*84))).FiIdxCur if iIdxCur != 0 { @@ -139599,19 +140771,19 @@ var _aOp = [4]struct { FeOp2 uint8 }{ 0: { - FzOp: __ccgo_ts + 16543, + FzOp: __ccgo_ts + 16630, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_MATCH), }, 1: { - FzOp: __ccgo_ts + 15874, + FzOp: __ccgo_ts + 15967, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_GLOB), }, 2: { - FzOp: __ccgo_ts + 15353, + FzOp: __ccgo_ts + 15446, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_LIKE), }, 3: { - FzOp: __ccgo_ts + 22303, + FzOp: __ccgo_ts + 22448, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_REGEXP), }, } @@ -140270,7 +141442,7 @@ func _exprMightBeIndexed2(tls *libc.TLS, pFrom uintptr, aiCurCol uintptr, pExpr goto _4 } _ = libc.Int32FromInt32(0) - if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*20))).FpExpr, iCur) == 0 && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_STRING) { + if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*20))).FpExpr, iCur) == 0 && !(_sqlite3ExprIsConstant(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*20))).FpExpr) != 0) { *(*int32)(unsafe.Pointer(aiCurCol)) = iCur *(*int32)(unsafe.Pointer(aiCurCol + 1*4)) = -int32(2) return int32(1) @@ -140430,7 +141602,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { extraRight = x - uint64(1) /* ON clause terms may not be used with an index ** on left table of a LEFT JOIN. Ticket #3015 */ if prereqAll>>libc.Int32FromInt32(1) >= x { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22310, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22455, 0) return } } else { @@ -140442,7 +141614,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { ** if there is a RIGHT or FULL JOIN in the query. This makes SQLite ** more like other systems, and also preserves legacy. */ if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc > 0 && int32((*(*TSrcItem)(unsafe.Pointer(pSrc + 8))).Ffg.Fjointype)&int32(JT_LTORJ) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22310, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22455, 0) return } *(*Tu32)(unsafe.Pointer(pExpr + 4)) &= uint32(^libc.Int32FromInt32(EP_InnerON)) @@ -140533,7 +141705,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { if op == int32(TK_ISNULL) && !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != libc.Uint32FromInt32(0)) && 0 == _sqlite3ExprCanBeNull(tls, pLeft) { _ = libc.Int32FromInt32(0) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_TRUEFALSE) /* See tag-20230504-1 */ - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 7891 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 8016 *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_IsFalse)) (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqAll = uint64(0) (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator = uint16(0) @@ -140636,7 +141808,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { *(*Tu8)(unsafe.Pointer(pC)) = uint8(int32(c1) + int32(1)) } if *(*int32)(unsafe.Pointer(bp + 8)) != 0 { - v13 = __ccgo_ts + 22351 + v13 = __ccgo_ts + 22496 } else { v13 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } @@ -140909,6 +142081,9 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*48))).FleftCursor != iCsr { return } + if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*48))).FprereqRight != uint64(0) { + return + } goto _1 _1: ; @@ -140939,10 +142114,12 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { } /* All conditions are met. Add the terms to the where-clause object. */ _ = libc.Int32FromInt32(0) - _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) - if (*TSelect)(unsafe.Pointer(p)).FiOffset > 0 { + if (*TSelect)(unsafe.Pointer(p)).FiOffset != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiOffset, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpRight, iCsr, int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } + if (*TSelect)(unsafe.Pointer(p)).FiOffset == 0 || (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { + _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) + } } } @@ -141174,7 +142351,7 @@ func _sqlite3WhereTabFuncArgs(tls *libc.TLS, pParse uintptr, pItem uintptr, pWC k++ } if k >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22358, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22503, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) return } pColRef = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_COLUMN), uintptr(0), 0) @@ -141509,6 +142686,7 @@ func _whereOrInsert(tls *libc.TLS, pSet uintptr, prereq TBitmask, rRun TLogEst, return 0 } } + goto whereOrInsert_done whereOrInsert_done: ; (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq = prereq @@ -141615,6 +142793,50 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { return uintptr(0) } +// C documentation +// +// /* +// ** Term pTerm is guaranteed to be a WO_IN term. It may be a component term +// ** of a vector IN expression of the form "(x, y, ...) IN (SELECT ...)". +// ** This function checks to see if the term is compatible with an index +// ** column with affinity idxaff (one of the SQLITE_AFF_XYZ values). If so, +// ** it returns a pointer to the name of the collation sequence (e.g. "BINARY" +// ** or "NOCASE") used by the comparison in pTerm. If it is not compatible +// ** with affinity idxaff, NULL is returned. +// */ +func _indexInAffinityOk(tls *libc.TLS, pParse uintptr, pTerm uintptr, idxaff Tu8) (r uintptr) { + bp := tls.Alloc(64) + defer tls.Free(64) + var iField int32 + var pRet, pX, v1 uintptr + var _ /* inexpr at bp+0 */ TExpr + _, _, _, _ = iField, pRet, pX, v1 + pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr + _ = libc.Int32FromInt32(0) + if _sqlite3ExprIsVector(tls, (*TExpr)(unsafe.Pointer(pX)).FpLeft) != 0 { + iField = (*(*struct { + FleftColumn int32 + FiField int32 + })(unsafe.Pointer(pTerm + 24))).FiField - int32(1) + (*(*TExpr)(unsafe.Pointer(bp))).Fflags = uint32(0) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_EQ) + (*(*TExpr)(unsafe.Pointer(bp))).FpLeft = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pX)).FpLeft + 20)) + 8 + uintptr(iField)*20))).FpExpr + _ = libc.Int32FromInt32(0) + (*(*TExpr)(unsafe.Pointer(bp))).FpRight = (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pX + 20)))).FpEList + 8 + uintptr(iField)*20))).FpExpr + pX = bp + } + if _sqlite3IndexAffinityOk(tls, pX, int8(idxaff)) != 0 { + pRet = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pRet != 0 { + v1 = (*TCollSeq)(unsafe.Pointer(pRet)).FzName + } else { + v1 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + return v1 + } + return uintptr(0) +} + // C documentation // // /* @@ -141625,10 +142847,10 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { var iColumn Ti16 var iCur, j, k int32 - var pColl, pParse, pTerm, pWC, pX, v2 uintptr - var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, v2, v3, v5 /* The term being tested */ - k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ + var pColl, pParse, pTerm, pWC, pX, zCollName, v2, v5 uintptr + var v3, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, zCollName, v2, v3, v5, v6 /* The term being tested */ + k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ _ = libc.Int32FromInt32(0) pWC = (*TWhereScan)(unsafe.Pointer(pScan)).FpWC for int32(1) != 0 { @@ -141676,22 +142898,32 @@ func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { if (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName != 0 && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_ISNULL) == 0 { pParse = (*TWhereInfo)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr - if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { - goto _1 - } - _ = libc.Int32FromInt32(0) - pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) - if pColl == uintptr(0) { - pColl = (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FpDfltColl + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_IN) != 0 { + zCollName = _indexInAffinityOk(tls, pParse, pTerm, uint8((*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff)) + if !(zCollName != 0) { + goto _1 + } + } else { + if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { + goto _1 + } + _ = libc.Int32FromInt32(0) + pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pColl != 0 { + v5 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName + } else { + v5 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + zCollName = v5 } - if _sqlite3StrICmp(tls, (*TCollSeq)(unsafe.Pointer(pColl)).FzName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { + if _sqlite3StrICmp(tls, zCollName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { goto _1 } } - if v5 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v5 { + if v6 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v6 { pX = (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight } - if v5 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 28)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 72))) { + if v6 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 28)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 72))) { goto _1 } (*TWhereScan)(unsafe.Pointer(pScan)).FpWC = pWC @@ -142185,7 +143417,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea /* Make the automatic index a partial index if there are terms in the ** WHERE clause (or the ON clause of a LEFT join) that constrain which ** rows of the target table (pSrc) that can be used. */ - if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)) != 0 { + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom), 0) != 0 { pPartial = _sqlite3ExprAnd(tls, pParse, pPartial, _sqlite3ExprDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr, 0)) } if _termCanDriveIndex(tls, pTerm, pSrc, notReady) != 0 { @@ -142201,7 +143433,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea } cMask = v2 if !(sentWarning != 0) { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_WARNING)|libc.Int32FromInt32(1)<>14)) != 0) { eDistinct = int32(2) + libc.BoolInt32(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_SORTBYGROUP) != 0) } else { if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_GROUPBY) != 0 { @@ -142696,7 +143929,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB */ pIdxInfo = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(uint32(64)+(libc.Uint32FromInt64(12)+libc.Uint32FromInt64(8))*uint32(nTerm)+uint32(8)*uint32(nOrderBy)+uint32(24)+uint32(4)*uint32(nTerm))) if pIdxInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1632, 0) return uintptr(0) } pHidden = pIdxInfo + 1*64 @@ -142788,7 +144021,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB break } pExpr1 = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*20))).FpExpr - if _sqlite3ExprIsConstant(tls, pExpr1) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr1) != 0 { goto _11 } _ = libc.Int32FromInt32(0) @@ -142867,9 +144100,9 @@ func _vtabBestIndex(tls *libc.TLS, pParse uintptr, pTab uintptr, p uintptr) (r i _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) } else { if !((*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) } } } @@ -144241,7 +145474,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 56))&0x4>>2)) != 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) } - if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 56))&0x100>>8)) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 56))&0x100>>8)) != 0 && int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 36 + 4))&0x2>>1)) == 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ) | libc.Int32FromInt32(WO_IN) | libc.Int32FromInt32(WO_IS)) } } @@ -144493,10 +145726,13 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } } } - /* Set rCostIdx to the cost of visiting selected rows in index. Add - ** it to pNew->rRun, which is currently set to the cost of the index - ** seek only. Then, if this is a non-covering index, add the cost of - ** visiting the rows in the main table. */ + /* Set rCostIdx to the estimated cost of visiting selected rows in the + ** index. The estimate is the sum of two values: + ** 1. The cost of doing one search-by-key to find the first matching + ** entry + ** 2. Stepping forward in the index pNew->nOut times to find all + ** additional matching entries. + */ _ = libc.Int32FromInt32(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 56))&0x3>>0)) == int32(SQLITE_IDXTYPE_IPK) { /* The pProbe->szIdxRow is low for an IPK table since the interior @@ -144507,7 +145743,14 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } else { rCostIdx = int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut) + int32(1) + int32(15)*int32((*TIndex)(unsafe.Pointer(pProbe)).FszIdxRow)/int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FszTabRow)) } - (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + rCostIdx = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + /* Estimate the cost of running the loop. If all data is coming + ** from the index, then this is just the cost of doing the index + ** lookup and scan. But if some data is coming out of the main table, + ** we also have to add in the cost of doing pNew->nOut searches to + ** locate the row in the main table that corresponds to the index entry. + */ + (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = rCostIdx if (*TWhereLoop)(unsafe.Pointer(pNew)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IDX_ONLY)|libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_EXPRIDX)) == uint32(0) { (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun, int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut)+int32(16))) } @@ -144613,7 +145856,7 @@ func _indexMightHelpWithOrderBy(tls *libc.TLS, pBuilder uintptr, pIndex uintptr, if pExpr == uintptr(0) { goto _2 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { + if (int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) || int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_COLUMN)) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) < 0 { return int32(1) } @@ -144950,7 +146193,7 @@ func _wherePartIdxExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, pPart uintpt if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) != int32(TK_COLUMN) { return } - if !(_sqlite3ExprIsConstant(tls, pRight) != 0) { + if !(_sqlite3ExprIsConstant(tls, uintptr(0), pRight) != 0) { return } if !(_sqlite3IsBinary(tls, _sqlite3ExprCompareCollSeq(tls, pParse, pPart)) != 0) { @@ -145285,7 +146528,7 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in ** unique index is used (making the index functionally non-unique) ** then the sqlite_stat1 data becomes important for scoring the ** plan */ - *(*Tu32)(unsafe.Pointer(pTab + 28)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 28)) |= uint32(TF_MaybeReanalyze) } _sqlite3Stat4ProbeFree(tls, (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec) (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = 0 @@ -145314,6 +146557,31 @@ func _isLimitTerm(tls *libc.TLS, pTerm uintptr) (r int32) { return libc.BoolInt32(int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) >= int32(SQLITE_INDEX_CONSTRAINT_LIMIT) && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) <= int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } +// C documentation +// +// /* +// ** Return true if the first nCons constraints in the pUsage array are +// ** marked as in-use (have argvIndex>0). False otherwise. +// */ +func _allConstraintsUsed(tls *libc.TLS, aUsage uintptr, nCons int32) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < nCons) { + break + } + if (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer(aUsage + uintptr(ii)*8))).FargvIndex <= 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + // C documentation // // /* @@ -145411,7 +146679,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if v3 >= 0 { j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).FiTermOffset if iTerm >= nConstraint || j < 0 || j >= (*TWhereClause)(unsafe.Pointer(pWC)).FnTerm || *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(iTerm)*4)) != uintptr(0) || int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22431, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22576, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } pTerm1 = (*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(j)*48 @@ -145458,13 +146726,19 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, _ = libc.Int32FromInt32(0) } } + /* Unless pbRetryLimit is non-NULL, there should be no LIMIT/OFFSET + ** terms. And if there are any, they should follow all other terms. */ + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if _isLimitTerm(tls, pTerm1) != 0 && *(*int32)(unsafe.Pointer(pbIn)) != 0 { + if _isLimitTerm(tls, pTerm1) != 0 && (*(*int32)(unsafe.Pointer(pbIn)) != 0 || !(_allConstraintsUsed(tls, pUsage, i) != 0)) { /* If there is an IN(...) term handled as an == (separate call to ** xFilter for each value on the RHS of the IN) and a LIMIT or - ** OFFSET term handled as well, the plan is unusable. Set output - ** variable *pbRetryLimit to true to tell the caller to retry with - ** LIMIT and OFFSET disabled. */ + ** OFFSET term handled as well, the plan is unusable. Similarly, + ** if there is a LIMIT/OFFSET and there are other unused terms, + ** the plan cannot be used. In these cases set variable *pbRetryLimit + ** to true to tell the caller to retry with LIMIT and OFFSET + ** disabled. */ if (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FneedToFreeIdxStr != 0 { Xsqlite3_free(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = uintptr(0) @@ -145489,7 +146763,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(i)*4)) == uintptr(0) { /* The non-zero argvIdx values must be contiguous. Raise an ** error if they are not */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22431, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22576, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } goto _6 @@ -145642,7 +146916,7 @@ func Xsqlite3_vtab_rhs_value(tls *libc.TLS, pIdxInfo uintptr, iCons int32, ppVal pVal = uintptr(0) rc = SQLITE_OK if iCons < 0 || iCons >= (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint { - rc = _sqlite3MisuseError(tls, int32(165251)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(166453)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 20 + uintptr(iCons)*4)) == uintptr(0) { pTerm = (*TWhereClause)(unsafe.Pointer((*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC)).Fa + uintptr((*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset)*48 @@ -146090,7 +147364,7 @@ func _whereLoopAddAll(tls *libc.TLS, pBuilder uintptr) (r int32) { if rc != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { if rc == int32(SQLITE_DONE) { /* We hit the query planner search limit set by iPlanLimit */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22457, 0) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22602, 0) rc = SQLITE_OK } else { break @@ -146479,7 +147753,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, } p = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*20))).FpExpr mTerm = _sqlite3WhereExprUsage(tls, pWInfo+488, p) - if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, p) != 0) { + if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, uintptr(0), p) != 0) { goto _9 } if mTerm & ^orderDistinctMask == uint64(0) { @@ -146900,7 +148174,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) iLoop++ } if nFrom == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22492, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22637, 0) _sqlite3DbFreeNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pSpace) return int32(SQLITE_ERROR) } @@ -146950,9 +148224,8 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) if int32((*TWherePath)(unsafe.Pointer(pFrom)).FisOrdered) == (*TExprList)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_ORDERED) } - if (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy != 0 && int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) > (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr { - (*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = int8((*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr) - } + /* vvv--- See check-in [12ad822d9b827777] on 2023-03-16 ---vvv */ + _ = libc.Int32FromInt32(0) } else { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FrevMask = (*TWherePath)(unsafe.Pointer(pFrom)).FrevLoop if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) <= 0 { @@ -146990,6 +148263,97 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) return SQLITE_OK } +// C documentation +// +// /* +// ** This routine implements a heuristic designed to improve query planning. +// ** This routine is called in between the first and second call to +// ** wherePathSolver(). Hence the name "Interstage" "Heuristic". +// ** +// ** The first call to wherePathSolver() (hereafter just "solver()") computes +// ** the best path without regard to the order of the outputs. The second call +// ** to the solver() builds upon the first call to try to find an alternative +// ** path that satisfies the ORDER BY clause. +// ** +// ** This routine looks at the results of the first solver() run, and for +// ** every FROM clause term in the resulting query plan that uses an equality +// ** constraint against an index, disable other WhereLoops for that same +// ** FROM clause term that would try to do a full-table scan. This prevents +// ** an index search from being converted into a full-table scan in order to +// ** satisfy an ORDER BY clause, since even though we might get slightly better +// ** performance using the full-scan without sorting if the output size +// ** estimates are very precise, we might also get severe performance +// ** degradation using the full-scan if the output size estimate is too large. +// ** It is better to err on the side of caution. +// ** +// ** Except, if the first solver() call generated a full-table scan in an outer +// ** loop then stop this analysis at the first full-scan, since the second +// ** solver() run might try to swap that full-scan for another in order to +// ** get the output into the correct order. In other words, we allow a +// ** rewrite like this: +// ** +// ** First Solver() Second Solver() +// ** |-- SCAN t1 |-- SCAN t2 +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** The purpose of this routine is to disallow rewrites such as: +// ** +// ** First Solver() Second Solver() +// ** |-- SEARCH t1 |-- SCAN t2 <--- bad! +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** See test cases in test/whereN.test for the real-world query that +// ** originally provoked this heuristic. +// */ +func _whereInterstageHeuristic(tls *libc.TLS, pWInfo uintptr) { + var i int32 + var iTab Tu8 + var p, pLoop uintptr + _, _, _, _ = i, iTab, p, pLoop + i = 0 + for { + if !(i < int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)) { + break + } + p = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 752 + uintptr(i)*84))).FpWLoop + if p == uintptr(0) { + break + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { + goto _1 + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_NULL)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != uint32(0) { + iTab = (*TWhereLoop)(unsafe.Pointer(p)).FiTab + pLoop = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpLoops + for { + if !(pLoop != 0) { + break + } + if int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab) != int32(iTab) { + goto _2 + } + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_CONSTRAINT)|libc.Int32FromInt32(WHERE_AUTO_INDEX)) != uint32(0) { + /* Auto-index and index-constrained loops allowed to remain */ + goto _2 + } + (*TWhereLoop)(unsafe.Pointer(pLoop)).Fprereq = uint64(-libc.Int32FromInt32(1)) /* Prevent 2nd solver() from using this one */ + goto _2 + _2: + ; + pLoop = (*TWhereLoop)(unsafe.Pointer(pLoop)).FpNextLoop + } + } else { + break + } + goto _1 + _1: + ; + i++ + } +} + // C documentation // // /* @@ -147308,7 +148672,7 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasStat1) == uint32(0) { break } - *(*Tu32)(unsafe.Pointer(pTab + 28)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 28)) |= uint32(TF_MaybeReanalyze) if i >= int32(1) && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&reqFlags == reqFlags && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_INDEXED)) != uint32(0) { if int32(nSearch) > int32((*TTable)(unsafe.Pointer(pTab)).FnRowLogEst) { *(*Tu32)(unsafe.Pointer(pLoop + 40)) |= uint32(WHERE_BLOOMFILTER) @@ -147323,6 +148687,69 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { } } +// C documentation +// +// /* +// ** Expression Node callback for sqlite3ExprCanReturnSubtype(). +// ** +// ** Only a function call is able to return a subtype. So if the node +// ** is not a function call, return WRC_Prune immediately. +// ** +// ** A function call is able to return a subtype if it has the +// ** SQLITE_RESULT_SUBTYPE property. +// ** +// ** Assume that every function is able to pass-through a subtype from +// ** one of its argument (using sqlite3_result_value()). Most functions +// ** are not this way, but we don't have a mechanism to distinguish those +// ** that are from those that are not, so assume they all work this way. +// ** That means that if one of its arguments is another function and that +// ** other function is able to return a subtype, then this function is +// ** able to return a subtype. +// */ +func _exprNodeCanReturnSubtype(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef uintptr + var n, v1 int32 + _, _, _, _ = db, n, pDef, v1 + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_FUNCTION) { + return int32(WRC_Prune) + } + _ = libc.Int32FromInt32(0) + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + if *(*uintptr)(unsafe.Pointer(pExpr + 20)) != 0 { + v1 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 20)))).FnExpr + } else { + v1 = 0 + } + n = v1 + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + return int32(WRC_Prune) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Return TRUE if expression pExpr is able to return a subtype. +// ** +// ** A TRUE return does not guarantee that a subtype will be returned. +// ** It only indicates that a subtype return is possible. False positives +// ** are acceptable as they only disable an optimization. False negatives, +// ** on the other hand, can lead to incorrect answers. +// */ +func _sqlite3ExprCanReturnSubtype(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + bp := tls.Alloc(32) + defer tls.Free(32) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint32(28)) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeCanReturnSubtype) + _sqlite3WalkExpr(tls, bp, pExpr) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) +} + // C documentation // // /* @@ -147337,9 +148764,9 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { // ** references to the corresponding column of the index. // */ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur int32, pTabItem uintptr) { - var db, p, pArg, pDef, pExpr, pTab uintptr - var i, j, n, v2 int32 - _, _, _, _, _, _, _, _, _, _ = db, i, j, n, p, pArg, pDef, pExpr, pTab, v2 + var i, j int32 + var p, pArg, pExpr, pTab uintptr + _, _, _, _, _, _ = i, j, p, pArg, pExpr, pTab _ = libc.Int32FromInt32(0) pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable i = 0 @@ -147357,22 +148784,14 @@ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur i goto _1 } } - if _sqlite3ExprIsConstant(tls, pExpr) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) != 0 { goto _1 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) { - db = (*TParse)(unsafe.Pointer(pParse)).Fdb - _ = libc.Int32FromInt32(0) - if *(*uintptr)(unsafe.Pointer(pExpr + 20)) != 0 { - v2 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 20)))).FnExpr - } else { - v2 = 0 - } - n = v2 - pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) - if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { - goto _1 - } + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) && _sqlite3ExprCanReturnSubtype(tls, pParse, pExpr) != 0 { + /* Functions that might set a subtype should not be replaced by the + ** value taken from an expression index since the index omits the + ** subtype. https://sqlite.org/forum/forumpost/68d284c86b082c3e */ + goto _1 } p = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) if p == uintptr(0) { @@ -147546,7 +148965,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** bits in a Bitmask */ if (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc > int32(libc.Uint32FromInt64(8)*libc.Uint32FromInt32(8)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22510, libc.VaList(bp+40, int32(libc.Uint32FromInt64(8)*libc.Uint32FromInt32(8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22655, libc.VaList(bp+40, int32(libc.Uint32FromInt64(8)*libc.Uint32FromInt32(8)))) return uintptr(0) } /* This function normally generates a nested loop for all tables in @@ -147619,7 +149038,9 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if int32(wctrlFlags)&int32(WHERE_WANT_DISTINCT) != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_DistinctOpt)) == uint32(0) { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_UNIQUE) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22538, 0) + if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FselFlags&uint32(SF_MultiValue) == uint32(0) { + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22683, 0) + } } else { /* Assign a bit from the bitmask to every term in the FROM clause. ** @@ -147753,6 +149174,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy != 0 { + _whereInterstageHeuristic(tls, pWInfo) _wherePathSolver(tls, pWInfo, int16(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut)+int32(1))) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto whereBeginError @@ -148051,6 +149473,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiEndWhere = _sqlite3VdbeCurrentAddr(tls, v) return pWInfo /* Jump here if malloc fails */ + goto whereBeginError whereBeginError: ; if pWInfo != 0 { @@ -148074,10 +149497,10 @@ whereBeginError: // ** sqlite3WhereBegin() for additional information. // */ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { - var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, r1, ws, x, v4, v7 int32 - var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr + var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, r1, ws, x, v4, v7 int32 + var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pTabList = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList @@ -148220,7 +149643,14 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { addr = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfPos), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin) _ = libc.Int32FromInt32(0) if ws&int32(WHERE_IDX_ONLY) == 0 { + pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*68 _ = libc.Int32FromInt32(0) + if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 36 + 4))&0x20>>5)) != 0 { + n1 = (*TSrcItem)(unsafe.Pointer(pSrc)).FregResult + _ = libc.Int32FromInt32(0) + m = int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FnCol) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, n1, n1+m-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur) } if ws&int32(WHERE_INDEXED) != 0 || ws&int32(WHERE_MULTI_OR) != 0 && *(*uintptr)(unsafe.Pointer(&(*TWhereLevel)(unsafe.Pointer(pLevel)).Fu)) != 0 { @@ -148269,6 +149699,7 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { ** OP_Rowid becomes OP_Null. */ if int32(uint32(*(*uint16)(unsafe.Pointer(pTabItem + 36 + 4))&0x20>>5)) != 0 { + _ = libc.Int32FromInt32(0) _translateColumnToCopy(tls, pParse, (*TWhereLevel)(unsafe.Pointer(pLevel)).FaddrBody, (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur, (*TSrcItem)(unsafe.Pointer(pTabItem)).FregResult, 0) goto _9 } @@ -148640,9 +150071,10 @@ func _nth_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) _ = nArg _ = apArg return + goto error_out error_out: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22556, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22701, -int32(1)) } func _nth_valueFinalizeFunc(tls *libc.TLS, pCtx uintptr) { @@ -148829,7 +150261,7 @@ func _ntileStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { if (*TNtileCtx)(unsafe.Pointer(p)).FnTotal == 0 { (*TNtileCtx)(unsafe.Pointer(p)).FnParam = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apArg))) if (*TNtileCtx)(unsafe.Pointer(p)).FnParam <= 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22612, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22757, -int32(1)) } } (*TNtileCtx)(unsafe.Pointer(p)).FnTotal++ @@ -149157,7 +150589,7 @@ func _windowFind(tls *libc.TLS, pParse uintptr, pList uintptr, zName uintptr) (r p = (*TWindow)(unsafe.Pointer(p)).FpNextWin } if p == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22657, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22802, libc.VaList(bp+8, zName)) } return p } @@ -149208,12 +150640,12 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin _sqlite3WindowChain(tls, pParse, pWin, pList) } if int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) == int32(TK_RANGE) && ((*TWindow)(unsafe.Pointer(pWin)).FpStart != 0 || (*TWindow)(unsafe.Pointer(pWin)).FpEnd != 0) && ((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy == uintptr(0) || (*TExprList)(unsafe.Pointer((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy)).FnExpr != int32(1)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22676, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22821, 0) } else { if (*TFuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TWindow)(unsafe.Pointer(pWin)).FpFilter != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22747, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22892, 0) } else { aUp = [8]struct { FzFunc uintptr @@ -149286,7 +150718,7 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin (*TWindow)(unsafe.Pointer(pWin)).FeEnd = uint8(aUp[i].FeEnd) (*TWindow)(unsafe.Pointer(pWin)).FeExclude = uint8(0) if int32((*TWindow)(unsafe.Pointer(pWin)).FeStart) == int32(TK_FOLLOWING) { - (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8130) + (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8255) } break } @@ -149574,7 +151006,7 @@ func _disallowAggregatesInOrderByCb(tls *libc.TLS, pWalker uintptr, pExpr uintpt defer tls.Free(16) if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_FUNCTION) && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { _ = libc.Int32FromInt32(0) - _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22810, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) + _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22955, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) } return WRC_Continue } @@ -149717,7 +151149,7 @@ func _sqlite3WindowRewrite(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { ** keep everything legal in this case. */ if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1722)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1782)) } pSub = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(bp)), pSrc, pWhere, pGroupBy, pHaving, pSort, uint32(0), uintptr(0)) (*TSelect)(unsafe.Pointer(p)).FpSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), uintptr(0), uintptr(0)) @@ -149822,7 +151254,7 @@ func _sqlite3WindowListDelete(tls *libc.TLS, db uintptr, p uintptr) { // ** variable values in the expression tree. // */ func _sqlite3WindowOffsetExpr(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r uintptr) { - if 0 == _sqlite3ExprIsConstant(tls, pExpr) { + if 0 == _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) { if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameExprUnmap(tls, pParse, pExpr) } @@ -149868,7 +151300,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 ** frame boundary. */ if eStart == int32(TK_CURRENT) && eEnd == int32(TK_PRECEDING) || eStart == int32(TK_FOLLOWING) && (eEnd == int32(TK_PRECEDING) || eEnd == int32(TK_CURRENT)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22836, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22981, 0) goto windowAllocErr } pWin = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(100)) @@ -149886,6 +151318,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 (*TWindow)(unsafe.Pointer(pWin)).FpEnd = _sqlite3WindowOffsetExpr(tls, pParse, pEnd) (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3WindowOffsetExpr(tls, pParse, pStart) return pWin + goto windowAllocErr windowAllocErr: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pEnd) @@ -149935,18 +151368,18 @@ func _sqlite3WindowChain(tls *libc.TLS, pParse uintptr, pWin uintptr, pList uint zErr = uintptr(0) /* Check for errors */ if (*TWindow)(unsafe.Pointer(pWin)).FpPartition != 0 { - zErr = __ccgo_ts + 22868 + zErr = __ccgo_ts + 23013 } else { if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 && (*TWindow)(unsafe.Pointer(pWin)).FpOrderBy != 0 { - zErr = __ccgo_ts + 22885 + zErr = __ccgo_ts + 23030 } else { if int32((*TWindow)(unsafe.Pointer(pExist)).FbImplicitFrame) == 0 { - zErr = __ccgo_ts + 22901 + zErr = __ccgo_ts + 23046 } } } if zErr != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22921, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23066, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) } else { (*TWindow)(unsafe.Pointer(pWin)).FpPartition = _sqlite3ExprListDup(tls, db, (*TWindow)(unsafe.Pointer(pExist)).FpPartition, 0) if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 { @@ -149974,7 +151407,7 @@ func _sqlite3WindowAttach(tls *libc.TLS, pParse uintptr, p uintptr, pWin uintptr *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(libc.Int32FromInt32(EP_WinFunc) | libc.Int32FromInt32(EP_FullSize)) (*TWindow)(unsafe.Pointer(pWin)).FpOwner = p if (*TExpr)(unsafe.Pointer(p)).Fflags&uint32(EP_Distinct) != 0 && int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) != int32(TK_FILTER) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22954, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23099, 0) } } else { _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pWin) @@ -150176,7 +151609,7 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regZero) if eCond >= int32(WINDOW_STARTING_NUM) { regString = _sqlite3GetTempReg(tls, pParse) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1648, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1662, -int32(1)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, _sqlite3VdbeCurrentAddr(tls, v)+int32(2), reg) _sqlite3VdbeChangeP5(tls, v, uint16(libc.Int32FromInt32(SQLITE_AFF_NUMERIC)|libc.Int32FromInt32(SQLITE_JUMPIFNULL))) _ = libc.Int32FromInt32(0) @@ -150197,11 +151630,11 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { } var _azErr = [5]uintptr{ - 0: __ccgo_ts + 23001, - 1: __ccgo_ts + 23054, - 2: __ccgo_ts + 22556, - 3: __ccgo_ts + 23105, - 4: __ccgo_ts + 23157, + 0: __ccgo_ts + 23146, + 1: __ccgo_ts + 23199, + 2: __ccgo_ts + 22701, + 3: __ccgo_ts + 23250, + 4: __ccgo_ts + 23302, } var _aOp1 = [5]int32{ @@ -150973,7 +152406,7 @@ func _windowCodeRangeTest(tls *libc.TLS, p uintptr, op int32, csr1 int32, regVal ** the add/subtract is skipped for these, as required. If reg1 is a NULL, ** then the arithmetic is performed, but since adding or subtracting from ** NULL is always NULL anyway, this case is handled as required too. */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1648, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1662, -int32(1)) addrGe = _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, 0, reg1) if op == int32(OP_Ge) && arith == int32(OP_Add) || op == int32(OP_Le) && arith == int32(OP_Subtract) { _sqlite3VdbeAddOp3(tls, v, op, reg2, lbl, reg1) @@ -152014,11 +153447,11 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { cnt++ if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != 0 || (*TSelect)(unsafe.Pointer(pLoop)).FpLimit != 0 { if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != uintptr(0) { - v1 = __ccgo_ts + 23207 + v1 = __ccgo_ts + 23352 } else { - v1 = __ccgo_ts + 23216 + v1 = __ccgo_ts + 23361 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23222, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23367, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) break } } @@ -152027,7 +153460,7 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { mxSelect = v2 } if v3 && v2 > 0 && cnt > mxSelect { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23264, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23409, 0) } } } @@ -152047,6 +153480,23 @@ func _attachWithToSelect(tls *libc.TLS, pParse uintptr, pSelect uintptr, pWith u return pSelect } +// C documentation +// +// /* Memory allocator for parser stack resizing. This is a thin wrapper around +// ** sqlite3_realloc() that includes a call to sqlite3FaultSim() to facilitate +// ** testing. +// */ +func _parserStackRealloc(tls *libc.TLS, pOld uintptr, newSize Tsqlite3_uint64) (r uintptr) { + var v1 uintptr + _ = v1 + if _sqlite3FaultSim(tls, int32(700)) != 0 { + v1 = uintptr(0) + } else { + v1 = Xsqlite3_realloc(tls, pOld, int32(newSize)) + } + return v1 +} + // C documentation // // /* Construct a new Expr object from a single token */ @@ -152116,7 +153566,7 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId _ = p p = _sqlite3ExprListAppend(tls, pParse, pPrior, uintptr(0)) if (hasCollate != 0 || sortOrder != -int32(1)) && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23298, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23443, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) } _sqlite3ExprListSetName(tls, pParse, p, pIdToken, int32(1)) return p @@ -152166,6 +153616,9 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser // ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser // ** sqlite3ParserCTX_* As sqlite3ParserARG_ except for %extra_context +// ** YYREALLOC Name of the realloc() function to use +// ** YYFREE Name of the free() function to use +// ** YYDYNSTACK True if stack space should be extended on heap // ** YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** YYNSTATE the combined number of states. @@ -152179,31 +153632,33 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** YY_NO_ACTION The yy_action[] code for no-op // ** YY_MIN_REDUCE Minimum value for reduce actions // ** YY_MAX_REDUCE Maximum value for reduce actions +// ** YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type TYYMINORTYPE = struct { Fyy0 [0]TToken - Fyy33 [0]uintptr - Fyy41 [0]uintptr - Fyy47 [0]uintptr - Fyy131 [0]uintptr - Fyy180 [0]TTrigEvent - Fyy231 [0]struct { + Fyy14 [0]uintptr + Fyy59 [0]uintptr + Fyy67 [0]uintptr + Fyy122 [0]uintptr + Fyy132 [0]uintptr + Fyy144 [0]int32 + Fyy168 [0]uintptr + Fyy203 [0]uintptr + Fyy211 [0]uintptr + Fyy269 [0]TOnOrUsing + Fyy286 [0]TTrigEvent + Fyy383 [0]struct { Fvalue int32 Fmask int32 } - Fyy254 [0]uintptr - Fyy285 [0]Tu32 - Fyy322 [0]uintptr - Fyy385 [0]uintptr - Fyy394 [0]int32 - Fyy444 [0]uintptr - Fyy516 [0]Tu8 - Fyy521 [0]uintptr - Fyy522 [0]uintptr - Fyy528 [0]uintptr - Fyy561 [0]TOnOrUsing - Fyy595 [0]TFrameBound + Fyy391 [0]Tu32 + Fyy427 [0]uintptr + Fyy454 [0]uintptr + Fyy462 [0]Tu8 + Fyy509 [0]TFrameBound + Fyy555 [0]uintptr Fyyinit int32 F__ccgo_pad20 [4]byte } @@ -152221,6 +153676,13 @@ type YYMINORTYPE = TYYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -152273,2152 +153735,2194 @@ type YYMINORTYPE = TYYMINORTYPE // ** yy_default[] Default action for each state. // ** // *********** Begin parsing tables **********************************************/ -var _yy_action = [2100]uint16{ - 0: uint16(572), - 1: uint16(210), - 2: uint16(572), - 3: uint16(119), - 4: uint16(116), - 5: uint16(231), - 6: uint16(572), - 7: uint16(119), - 8: uint16(116), - 9: uint16(231), - 10: uint16(572), - 11: uint16(1317), - 12: uint16(379), - 13: uint16(1296), - 14: uint16(410), - 15: uint16(566), - 16: uint16(566), - 17: uint16(566), - 18: uint16(572), - 19: uint16(411), - 20: uint16(380), - 21: uint16(1317), - 22: uint16(1279), - 23: uint16(42), - 24: uint16(42), - 25: uint16(42), - 26: uint16(42), - 27: uint16(210), - 28: uint16(1529), - 29: uint16(72), - 30: uint16(72), - 31: uint16(974), - 32: uint16(421), - 33: uint16(42), - 34: uint16(42), - 35: uint16(495), - 36: uint16(305), - 37: uint16(281), - 38: uint16(305), - 39: uint16(975), - 40: uint16(399), - 41: uint16(72), - 42: uint16(72), - 43: uint16(126), - 44: uint16(127), - 45: uint16(81), - 46: uint16(1217), - 47: uint16(1217), - 48: uint16(1054), - 49: uint16(1057), - 50: uint16(1044), - 51: uint16(1044), - 52: uint16(124), - 53: uint16(124), - 54: uint16(125), - 55: uint16(125), - 56: uint16(125), - 57: uint16(125), - 58: uint16(480), - 59: uint16(411), - 60: uint16(1244), - 61: uint16(1), - 62: uint16(1), - 63: uint16(578), - 64: uint16(2), - 65: uint16(1248), - 66: uint16(554), - 67: uint16(119), - 68: uint16(116), - 69: uint16(231), - 70: uint16(319), - 71: uint16(484), - 72: uint16(147), - 73: uint16(484), - 74: uint16(528), - 75: uint16(119), - 76: uint16(116), - 77: uint16(231), - 78: uint16(533), - 79: uint16(1330), - 80: uint16(419), - 81: uint16(527), - 82: uint16(143), - 83: uint16(126), - 84: uint16(127), - 85: uint16(81), - 86: uint16(1217), - 87: uint16(1217), - 88: uint16(1054), - 89: uint16(1057), - 90: uint16(1044), - 91: uint16(1044), - 92: uint16(124), - 93: uint16(124), - 94: uint16(125), - 95: uint16(125), - 96: uint16(125), - 97: uint16(125), - 98: uint16(119), - 99: uint16(116), - 100: uint16(231), - 101: uint16(329), - 102: uint16(123), - 103: uint16(123), - 104: uint16(123), - 105: uint16(123), - 106: uint16(122), - 107: uint16(122), - 108: uint16(121), - 109: uint16(121), - 110: uint16(121), - 111: uint16(120), - 112: uint16(117), - 113: uint16(448), - 114: uint16(286), - 115: uint16(286), - 116: uint16(286), - 117: uint16(286), - 118: uint16(446), - 119: uint16(446), - 120: uint16(446), - 121: uint16(1568), - 122: uint16(378), - 123: uint16(1570), - 124: uint16(1193), - 125: uint16(377), - 126: uint16(1164), - 127: uint16(569), - 128: uint16(1164), - 129: uint16(569), - 130: uint16(411), - 131: uint16(1568), - 132: uint16(541), - 133: uint16(261), - 134: uint16(228), - 135: uint16(448), - 136: uint16(102), - 137: uint16(146), - 138: uint16(453), - 139: uint16(318), - 140: uint16(563), - 141: uint16(242), - 142: uint16(123), - 143: uint16(123), - 144: uint16(123), - 145: uint16(123), - 146: uint16(122), - 147: uint16(122), - 148: uint16(121), - 149: uint16(121), - 150: uint16(121), - 151: uint16(120), - 152: uint16(117), - 153: uint16(448), - 154: uint16(126), - 155: uint16(127), - 156: uint16(81), - 157: uint16(1217), - 158: uint16(1217), - 159: uint16(1054), - 160: uint16(1057), - 161: uint16(1044), - 162: uint16(1044), - 163: uint16(124), - 164: uint16(124), - 165: uint16(125), - 166: uint16(125), - 167: uint16(125), - 168: uint16(125), - 169: uint16(143), - 170: uint16(296), - 171: uint16(1193), - 172: uint16(341), - 173: uint16(452), - 174: uint16(121), - 175: uint16(121), - 176: uint16(121), - 177: uint16(120), - 178: uint16(117), - 179: uint16(448), - 180: uint16(128), - 181: uint16(1193), - 182: uint16(1194), - 183: uint16(1193), - 184: uint16(149), - 185: uint16(445), - 186: uint16(444), - 187: uint16(572), - 188: uint16(120), - 189: uint16(117), - 190: uint16(448), - 191: uint16(125), - 192: uint16(125), - 193: uint16(125), - 194: uint16(125), - 195: uint16(118), - 196: uint16(123), - 197: uint16(123), - 198: uint16(123), - 199: uint16(123), - 200: uint16(122), - 201: uint16(122), - 202: uint16(121), - 203: uint16(121), - 204: uint16(121), - 205: uint16(120), - 206: uint16(117), - 207: uint16(448), - 208: uint16(458), - 209: uint16(114), - 210: uint16(13), - 211: uint16(13), - 212: uint16(550), - 213: uint16(123), - 214: uint16(123), - 215: uint16(123), - 216: uint16(123), - 217: uint16(122), - 218: uint16(122), - 219: uint16(121), - 220: uint16(121), - 221: uint16(121), - 222: uint16(120), - 223: uint16(117), - 224: uint16(448), - 225: uint16(424), - 226: uint16(318), - 227: uint16(563), - 228: uint16(1193), - 229: uint16(1194), - 230: uint16(1193), - 231: uint16(150), - 232: uint16(1225), - 233: uint16(411), - 234: uint16(1225), - 235: uint16(125), - 236: uint16(125), - 237: uint16(125), - 238: uint16(125), - 239: uint16(123), - 240: uint16(123), - 241: uint16(123), - 242: uint16(123), - 243: uint16(122), - 244: uint16(122), - 245: uint16(121), - 246: uint16(121), - 247: uint16(121), - 248: uint16(120), - 249: uint16(117), - 250: uint16(448), - 251: uint16(469), - 252: uint16(344), - 253: uint16(1041), - 254: uint16(1041), - 255: uint16(1055), - 256: uint16(1058), - 257: uint16(126), - 258: uint16(127), - 259: uint16(81), - 260: uint16(1217), - 261: uint16(1217), - 262: uint16(1054), - 263: uint16(1057), - 264: uint16(1044), - 265: uint16(1044), - 266: uint16(124), - 267: uint16(124), - 268: uint16(125), - 269: uint16(125), - 270: uint16(125), - 271: uint16(125), - 272: uint16(1282), - 273: uint16(526), - 274: uint16(224), - 275: uint16(1193), - 276: uint16(572), - 277: uint16(411), - 278: uint16(226), - 279: uint16(519), - 280: uint16(177), - 281: uint16(83), - 282: uint16(84), - 283: uint16(123), - 284: uint16(123), - 285: uint16(123), - 286: uint16(123), - 287: uint16(122), - 288: uint16(122), - 289: uint16(121), - 290: uint16(121), - 291: uint16(121), - 292: uint16(120), - 293: uint16(117), - 294: uint16(448), - 295: uint16(1010), - 296: uint16(16), - 297: uint16(16), - 298: uint16(1193), - 299: uint16(134), - 300: uint16(134), - 301: uint16(126), - 302: uint16(127), - 303: uint16(81), - 304: uint16(1217), - 305: uint16(1217), - 306: uint16(1054), - 307: uint16(1057), - 308: uint16(1044), - 309: uint16(1044), - 310: uint16(124), - 311: uint16(124), - 312: uint16(125), - 313: uint16(125), - 314: uint16(125), - 315: uint16(125), - 316: uint16(123), - 317: uint16(123), - 318: uint16(123), - 319: uint16(123), - 320: uint16(122), - 321: uint16(122), - 322: uint16(121), - 323: uint16(121), - 324: uint16(121), - 325: uint16(120), - 326: uint16(117), - 327: uint16(448), - 328: uint16(1045), - 329: uint16(550), - 330: uint16(1193), - 331: uint16(375), - 332: uint16(1193), - 333: uint16(1194), - 334: uint16(1193), - 335: uint16(254), - 336: uint16(1438), - 337: uint16(401), - 338: uint16(508), - 339: uint16(505), - 340: uint16(504), - 341: uint16(112), - 342: uint16(564), - 343: uint16(570), +var _yy_action = [2142]uint16{ + 0: uint16(576), + 1: uint16(128), + 2: uint16(125), + 3: uint16(232), + 4: uint16(1622), + 5: uint16(549), + 6: uint16(576), + 7: uint16(1290), + 8: uint16(1281), + 9: uint16(576), + 10: uint16(328), + 11: uint16(576), + 12: uint16(1300), + 13: uint16(212), + 14: uint16(576), + 15: uint16(128), + 16: uint16(125), + 17: uint16(232), + 18: uint16(578), + 19: uint16(412), + 20: uint16(578), + 21: uint16(391), + 22: uint16(1542), + 23: uint16(51), + 24: uint16(51), + 25: uint16(523), + 26: uint16(405), + 27: uint16(1293), + 28: uint16(529), + 29: uint16(51), + 30: uint16(51), + 31: uint16(983), + 32: uint16(51), + 33: uint16(51), + 34: uint16(81), + 35: uint16(81), + 36: uint16(1107), + 37: uint16(61), + 38: uint16(61), + 39: uint16(984), + 40: uint16(1107), + 41: uint16(1292), + 42: uint16(380), + 43: uint16(135), + 44: uint16(136), + 45: uint16(90), + 46: uint16(1228), + 47: uint16(1228), + 48: uint16(1063), + 49: uint16(1066), + 50: uint16(1053), + 51: uint16(1053), + 52: uint16(133), + 53: uint16(133), + 54: uint16(134), + 55: uint16(134), + 56: uint16(134), + 57: uint16(134), + 58: uint16(1577), + 59: uint16(412), + 60: uint16(287), + 61: uint16(287), + 62: uint16(7), + 63: uint16(287), + 64: uint16(287), + 65: uint16(422), + 66: uint16(1050), + 67: uint16(1050), + 68: uint16(1064), + 69: uint16(1067), + 70: uint16(289), + 71: uint16(556), + 72: uint16(492), + 73: uint16(573), + 74: uint16(524), + 75: uint16(561), + 76: uint16(573), + 77: uint16(497), + 78: uint16(561), + 79: uint16(482), + 80: uint16(530), + 81: uint16(262), + 82: uint16(229), + 83: uint16(135), + 84: uint16(136), + 85: uint16(90), + 86: uint16(1228), + 87: uint16(1228), + 88: uint16(1063), + 89: uint16(1066), + 90: uint16(1053), + 91: uint16(1053), + 92: uint16(133), + 93: uint16(133), + 94: uint16(134), + 95: uint16(134), + 96: uint16(134), + 97: uint16(134), + 98: uint16(128), + 99: uint16(125), + 100: uint16(232), + 101: uint16(1506), + 102: uint16(132), + 103: uint16(132), + 104: uint16(132), + 105: uint16(132), + 106: uint16(131), + 107: uint16(131), + 108: uint16(130), + 109: uint16(130), + 110: uint16(130), + 111: uint16(129), + 112: uint16(126), + 113: uint16(450), + 114: uint16(1204), + 115: uint16(1255), + 116: uint16(1), + 117: uint16(1), + 118: uint16(582), + 119: uint16(2), + 120: uint16(1259), + 121: uint16(1571), + 122: uint16(420), + 123: uint16(1582), + 124: uint16(379), + 125: uint16(320), + 126: uint16(1174), + 127: uint16(153), + 128: uint16(1174), + 129: uint16(1584), + 130: uint16(412), + 131: uint16(378), + 132: uint16(1582), + 133: uint16(543), + 134: uint16(1341), + 135: uint16(330), + 136: uint16(111), + 137: uint16(570), + 138: uint16(570), + 139: uint16(570), + 140: uint16(293), + 141: uint16(1054), + 142: uint16(132), + 143: uint16(132), + 144: uint16(132), + 145: uint16(132), + 146: uint16(131), + 147: uint16(131), + 148: uint16(130), + 149: uint16(130), + 150: uint16(130), + 151: uint16(129), + 152: uint16(126), + 153: uint16(450), + 154: uint16(135), + 155: uint16(136), + 156: uint16(90), + 157: uint16(1228), + 158: uint16(1228), + 159: uint16(1063), + 160: uint16(1066), + 161: uint16(1053), + 162: uint16(1053), + 163: uint16(133), + 164: uint16(133), + 165: uint16(134), + 166: uint16(134), + 167: uint16(134), + 168: uint16(134), + 169: uint16(287), + 170: uint16(287), + 171: uint16(1204), + 172: uint16(1205), + 173: uint16(1204), + 174: uint16(255), + 175: uint16(287), + 176: uint16(287), + 177: uint16(510), + 178: uint16(507), + 179: uint16(506), + 180: uint16(137), + 181: uint16(455), + 182: uint16(573), + 183: uint16(212), + 184: uint16(561), + 185: uint16(447), + 186: uint16(446), + 187: uint16(505), + 188: uint16(573), + 189: uint16(1616), + 190: uint16(561), + 191: uint16(134), + 192: uint16(134), + 193: uint16(134), + 194: uint16(134), + 195: uint16(127), + 196: uint16(400), + 197: uint16(243), + 198: uint16(132), + 199: uint16(132), + 200: uint16(132), + 201: uint16(132), + 202: uint16(131), + 203: uint16(131), + 204: uint16(130), + 205: uint16(130), + 206: uint16(130), + 207: uint16(129), + 208: uint16(126), + 209: uint16(450), + 210: uint16(282), + 211: uint16(471), + 212: uint16(345), + 213: uint16(132), + 214: uint16(132), + 215: uint16(132), + 216: uint16(132), + 217: uint16(131), + 218: uint16(131), + 219: uint16(130), + 220: uint16(130), + 221: uint16(130), + 222: uint16(129), + 223: uint16(126), + 224: uint16(450), + 225: uint16(574), + 226: uint16(155), + 227: uint16(936), + 228: uint16(936), + 229: uint16(454), + 230: uint16(227), + 231: uint16(521), + 232: uint16(1236), + 233: uint16(412), + 234: uint16(1236), + 235: uint16(134), + 236: uint16(134), + 237: uint16(134), + 238: uint16(134), + 239: uint16(132), + 240: uint16(132), + 241: uint16(132), + 242: uint16(132), + 243: uint16(131), + 244: uint16(131), + 245: uint16(130), + 246: uint16(130), + 247: uint16(130), + 248: uint16(129), + 249: uint16(126), + 250: uint16(450), + 251: uint16(130), + 252: uint16(130), + 253: uint16(130), + 254: uint16(129), + 255: uint16(126), + 256: uint16(450), + 257: uint16(135), + 258: uint16(136), + 259: uint16(90), + 260: uint16(1228), + 261: uint16(1228), + 262: uint16(1063), + 263: uint16(1066), + 264: uint16(1053), + 265: uint16(1053), + 266: uint16(133), + 267: uint16(133), + 268: uint16(134), + 269: uint16(134), + 270: uint16(134), + 271: uint16(134), + 272: uint16(128), + 273: uint16(125), + 274: uint16(232), + 275: uint16(450), + 276: uint16(576), + 277: uint16(412), + 278: uint16(397), + 279: uint16(1249), + 280: uint16(180), + 281: uint16(92), + 282: uint16(93), + 283: uint16(132), + 284: uint16(132), + 285: uint16(132), + 286: uint16(132), + 287: uint16(131), + 288: uint16(131), + 289: uint16(130), + 290: uint16(130), + 291: uint16(130), + 292: uint16(129), + 293: uint16(126), + 294: uint16(450), + 295: uint16(381), + 296: uint16(387), + 297: uint16(1204), + 298: uint16(383), + 299: uint16(81), + 300: uint16(81), + 301: uint16(135), + 302: uint16(136), + 303: uint16(90), + 304: uint16(1228), + 305: uint16(1228), + 306: uint16(1063), + 307: uint16(1066), + 308: uint16(1053), + 309: uint16(1053), + 310: uint16(133), + 311: uint16(133), + 312: uint16(134), + 313: uint16(134), + 314: uint16(134), + 315: uint16(134), + 316: uint16(132), + 317: uint16(132), + 318: uint16(132), + 319: uint16(132), + 320: uint16(131), + 321: uint16(131), + 322: uint16(130), + 323: uint16(130), + 324: uint16(130), + 325: uint16(129), + 326: uint16(126), + 327: uint16(450), + 328: uint16(131), + 329: uint16(131), + 330: uint16(130), + 331: uint16(130), + 332: uint16(130), + 333: uint16(129), + 334: uint16(126), + 335: uint16(450), + 336: uint16(556), + 337: uint16(1204), + 338: uint16(302), + 339: uint16(319), + 340: uint16(567), + 341: uint16(121), + 342: uint16(568), + 343: uint16(480), 344: uint16(4), - 345: uint16(929), - 346: uint16(929), - 347: uint16(435), - 348: uint16(503), - 349: uint16(342), - 350: uint16(464), - 351: uint16(330), - 352: uint16(362), - 353: uint16(396), - 354: uint16(1238), - 355: uint16(1193), - 356: uint16(1194), - 357: uint16(1193), - 358: uint16(567), - 359: uint16(572), - 360: uint16(123), - 361: uint16(123), - 362: uint16(123), - 363: uint16(123), - 364: uint16(122), - 365: uint16(122), - 366: uint16(121), - 367: uint16(121), - 368: uint16(121), - 369: uint16(120), - 370: uint16(117), - 371: uint16(448), - 372: uint16(286), - 373: uint16(286), - 374: uint16(371), - 375: uint16(1581), - 376: uint16(1607), - 377: uint16(445), - 378: uint16(444), - 379: uint16(155), - 380: uint16(411), - 381: uint16(449), - 382: uint16(72), - 383: uint16(72), - 384: uint16(1289), - 385: uint16(569), - 386: uint16(1222), - 387: uint16(1193), - 388: uint16(1194), - 389: uint16(1193), - 390: uint16(86), - 391: uint16(1224), - 392: uint16(273), - 393: uint16(561), - 394: uint16(547), - 395: uint16(520), - 396: uint16(520), - 397: uint16(572), - 398: uint16(99), - 399: uint16(1223), - 400: uint16(6), - 401: uint16(1281), - 402: uint16(476), - 403: uint16(143), - 404: uint16(126), - 405: uint16(127), - 406: uint16(81), - 407: uint16(1217), - 408: uint16(1217), - 409: uint16(1054), - 410: uint16(1057), - 411: uint16(1044), - 412: uint16(1044), - 413: uint16(124), - 414: uint16(124), - 415: uint16(125), - 416: uint16(125), - 417: uint16(125), - 418: uint16(125), - 419: uint16(554), - 420: uint16(13), - 421: uint16(13), - 422: uint16(1031), - 423: uint16(511), - 424: uint16(1225), - 425: uint16(1193), - 426: uint16(1225), - 427: uint16(553), - 428: uint16(110), - 429: uint16(110), - 430: uint16(224), - 431: uint16(572), - 432: uint16(1239), - 433: uint16(177), - 434: uint16(572), - 435: uint16(429), - 436: uint16(111), - 437: uint16(199), - 438: uint16(449), - 439: uint16(573), - 440: uint16(449), - 441: uint16(432), - 442: uint16(1555), - 443: uint16(1019), - 444: uint16(327), - 445: uint16(555), - 446: uint16(1193), - 447: uint16(272), - 448: uint16(289), - 449: uint16(370), - 450: uint16(514), - 451: uint16(365), - 452: uint16(513), - 453: uint16(259), - 454: uint16(72), - 455: uint16(72), - 456: uint16(547), - 457: uint16(72), - 458: uint16(72), - 459: uint16(361), - 460: uint16(318), - 461: uint16(563), - 462: uint16(1613), - 463: uint16(123), - 464: uint16(123), - 465: uint16(123), - 466: uint16(123), - 467: uint16(122), - 468: uint16(122), - 469: uint16(121), - 470: uint16(121), - 471: uint16(121), - 472: uint16(120), - 473: uint16(117), - 474: uint16(448), - 475: uint16(1019), - 476: uint16(1019), - 477: uint16(1021), - 478: uint16(1022), - 479: uint16(28), - 480: uint16(286), - 481: uint16(286), - 482: uint16(1193), - 483: uint16(1194), - 484: uint16(1193), - 485: uint16(1159), - 486: uint16(572), - 487: uint16(1612), - 488: uint16(411), - 489: uint16(904), - 490: uint16(192), - 491: uint16(554), - 492: uint16(358), - 493: uint16(569), - 494: uint16(554), - 495: uint16(940), - 496: uint16(537), - 497: uint16(521), - 498: uint16(1159), - 499: uint16(437), - 500: uint16(415), - 501: uint16(1159), - 502: uint16(556), - 503: uint16(1193), - 504: uint16(1194), - 505: uint16(1193), - 506: uint16(572), - 507: uint16(548), - 508: uint16(548), - 509: uint16(52), - 510: uint16(52), - 511: uint16(216), - 512: uint16(126), - 513: uint16(127), - 514: uint16(81), - 515: uint16(1217), - 516: uint16(1217), - 517: uint16(1054), - 518: uint16(1057), - 519: uint16(1044), - 520: uint16(1044), - 521: uint16(124), - 522: uint16(124), - 523: uint16(125), - 524: uint16(125), - 525: uint16(125), - 526: uint16(125), - 527: uint16(1193), - 528: uint16(478), - 529: uint16(136), - 530: uint16(136), - 531: uint16(411), - 532: uint16(286), - 533: uint16(286), - 534: uint16(1493), - 535: uint16(509), - 536: uint16(122), - 537: uint16(122), - 538: uint16(121), - 539: uint16(121), - 540: uint16(121), - 541: uint16(120), - 542: uint16(117), - 543: uint16(448), - 544: uint16(1010), - 545: uint16(569), - 546: uint16(522), - 547: uint16(219), - 548: uint16(545), - 549: uint16(545), - 550: uint16(318), - 551: uint16(563), - 552: uint16(143), - 553: uint16(6), - 554: uint16(536), - 555: uint16(126), - 556: uint16(127), - 557: uint16(81), - 558: uint16(1217), - 559: uint16(1217), - 560: uint16(1054), - 561: uint16(1057), - 562: uint16(1044), - 563: uint16(1044), - 564: uint16(124), - 565: uint16(124), - 566: uint16(125), - 567: uint16(125), - 568: uint16(125), - 569: uint16(125), - 570: uint16(1557), - 571: uint16(123), - 572: uint16(123), - 573: uint16(123), - 574: uint16(123), - 575: uint16(122), - 576: uint16(122), - 577: uint16(121), - 578: uint16(121), - 579: uint16(121), - 580: uint16(120), - 581: uint16(117), - 582: uint16(448), - 583: uint16(489), - 584: uint16(1193), - 585: uint16(1194), - 586: uint16(1193), - 587: uint16(486), - 588: uint16(283), - 589: uint16(1270), - 590: uint16(960), - 591: uint16(254), - 592: uint16(1193), - 593: uint16(375), - 594: uint16(508), - 595: uint16(505), - 596: uint16(504), - 597: uint16(1193), - 598: uint16(342), - 599: uint16(574), - 600: uint16(1193), - 601: uint16(574), - 602: uint16(411), - 603: uint16(294), - 604: uint16(503), - 605: uint16(960), - 606: uint16(879), - 607: uint16(193), - 608: uint16(484), - 609: uint16(318), - 610: uint16(563), - 611: uint16(386), - 612: uint16(292), - 613: uint16(382), - 614: uint16(123), - 615: uint16(123), - 616: uint16(123), - 617: uint16(123), - 618: uint16(122), - 619: uint16(122), - 620: uint16(121), - 621: uint16(121), - 622: uint16(121), - 623: uint16(120), - 624: uint16(117), - 625: uint16(448), - 626: uint16(126), - 627: uint16(127), - 628: uint16(81), - 629: uint16(1217), - 630: uint16(1217), - 631: uint16(1054), - 632: uint16(1057), - 633: uint16(1044), - 634: uint16(1044), - 635: uint16(124), - 636: uint16(124), - 637: uint16(125), - 638: uint16(125), - 639: uint16(125), - 640: uint16(125), - 641: uint16(411), - 642: uint16(396), - 643: uint16(1139), - 644: uint16(1193), - 645: uint16(872), - 646: uint16(101), - 647: uint16(286), - 648: uint16(286), - 649: uint16(1193), - 650: uint16(1194), - 651: uint16(1193), - 652: uint16(375), - 653: uint16(1096), - 654: uint16(1193), - 655: uint16(1194), - 656: uint16(1193), - 657: uint16(1193), - 658: uint16(1194), - 659: uint16(1193), - 660: uint16(569), - 661: uint16(459), - 662: uint16(33), - 663: uint16(375), - 664: uint16(235), - 665: uint16(126), - 666: uint16(127), - 667: uint16(81), - 668: uint16(1217), - 669: uint16(1217), - 670: uint16(1054), - 671: uint16(1057), - 672: uint16(1044), - 673: uint16(1044), - 674: uint16(124), - 675: uint16(124), - 676: uint16(125), - 677: uint16(125), - 678: uint16(125), - 679: uint16(125), - 680: uint16(1437), - 681: uint16(962), - 682: uint16(572), - 683: uint16(230), - 684: uint16(961), - 685: uint16(123), - 686: uint16(123), - 687: uint16(123), - 688: uint16(123), - 689: uint16(122), - 690: uint16(122), - 691: uint16(121), - 692: uint16(121), - 693: uint16(121), - 694: uint16(120), - 695: uint16(117), - 696: uint16(448), - 697: uint16(1159), - 698: uint16(230), - 699: uint16(1193), - 700: uint16(158), - 701: uint16(1193), - 702: uint16(1194), - 703: uint16(1193), - 704: uint16(1556), - 705: uint16(13), - 706: uint16(13), - 707: uint16(303), - 708: uint16(960), - 709: uint16(1233), - 710: uint16(1159), - 711: uint16(154), - 712: uint16(411), - 713: uint16(1159), - 714: uint16(375), - 715: uint16(1584), - 716: uint16(1177), - 717: uint16(5), - 718: uint16(371), - 719: uint16(1581), - 720: uint16(431), - 721: uint16(1239), - 722: uint16(3), - 723: uint16(960), - 724: uint16(123), - 725: uint16(123), - 726: uint16(123), - 727: uint16(123), - 728: uint16(122), - 729: uint16(122), - 730: uint16(121), - 731: uint16(121), - 732: uint16(121), - 733: uint16(120), - 734: uint16(117), - 735: uint16(448), - 736: uint16(126), - 737: uint16(127), - 738: uint16(81), - 739: uint16(1217), - 740: uint16(1217), - 741: uint16(1054), - 742: uint16(1057), - 743: uint16(1044), - 744: uint16(1044), - 745: uint16(124), - 746: uint16(124), - 747: uint16(125), - 748: uint16(125), - 749: uint16(125), - 750: uint16(125), - 751: uint16(411), - 752: uint16(210), - 753: uint16(571), - 754: uint16(1193), - 755: uint16(1032), - 756: uint16(1193), - 757: uint16(1194), - 758: uint16(1193), - 759: uint16(1193), - 760: uint16(390), - 761: uint16(855), - 762: uint16(156), - 763: uint16(1555), - 764: uint16(376), - 765: uint16(404), - 766: uint16(1101), - 767: uint16(1101), - 768: uint16(492), - 769: uint16(572), - 770: uint16(469), - 771: uint16(344), - 772: uint16(1322), - 773: uint16(1322), - 774: uint16(1555), - 775: uint16(126), - 776: uint16(127), - 777: uint16(81), - 778: uint16(1217), - 779: uint16(1217), - 780: uint16(1054), - 781: uint16(1057), - 782: uint16(1044), - 783: uint16(1044), - 784: uint16(124), - 785: uint16(124), - 786: uint16(125), - 787: uint16(125), - 788: uint16(125), - 789: uint16(125), - 790: uint16(130), - 791: uint16(572), - 792: uint16(13), - 793: uint16(13), - 794: uint16(532), - 795: uint16(123), - 796: uint16(123), - 797: uint16(123), - 798: uint16(123), - 799: uint16(122), - 800: uint16(122), - 801: uint16(121), - 802: uint16(121), - 803: uint16(121), - 804: uint16(120), - 805: uint16(117), - 806: uint16(448), - 807: uint16(304), - 808: uint16(572), - 809: uint16(457), - 810: uint16(229), - 811: uint16(1193), - 812: uint16(1194), - 813: uint16(1193), - 814: uint16(13), - 815: uint16(13), - 816: uint16(1193), - 817: uint16(1194), - 818: uint16(1193), - 819: uint16(1300), - 820: uint16(467), - 821: uint16(1270), - 822: uint16(411), - 823: uint16(1320), - 824: uint16(1320), - 825: uint16(1555), - 826: uint16(1015), - 827: uint16(457), - 828: uint16(456), - 829: uint16(436), - 830: uint16(301), - 831: uint16(72), - 832: uint16(72), - 833: uint16(1268), - 834: uint16(123), - 835: uint16(123), - 836: uint16(123), - 837: uint16(123), - 838: uint16(122), - 839: uint16(122), - 840: uint16(121), - 841: uint16(121), - 842: uint16(121), - 843: uint16(120), - 844: uint16(117), - 845: uint16(448), - 846: uint16(126), - 847: uint16(127), - 848: uint16(81), - 849: uint16(1217), - 850: uint16(1217), - 851: uint16(1054), - 852: uint16(1057), - 853: uint16(1044), - 854: uint16(1044), - 855: uint16(124), - 856: uint16(124), - 857: uint16(125), - 858: uint16(125), - 859: uint16(125), - 860: uint16(125), - 861: uint16(411), - 862: uint16(384), - 863: uint16(1076), - 864: uint16(1159), - 865: uint16(286), - 866: uint16(286), - 867: uint16(421), - 868: uint16(314), - 869: uint16(280), - 870: uint16(280), - 871: uint16(287), - 872: uint16(287), - 873: uint16(461), - 874: uint16(408), - 875: uint16(407), - 876: uint16(1539), - 877: uint16(1159), - 878: uint16(569), - 879: uint16(572), - 880: uint16(1159), - 881: uint16(1196), - 882: uint16(569), - 883: uint16(409), - 884: uint16(569), - 885: uint16(126), - 886: uint16(127), - 887: uint16(81), - 888: uint16(1217), - 889: uint16(1217), - 890: uint16(1054), - 891: uint16(1057), - 892: uint16(1044), - 893: uint16(1044), - 894: uint16(124), - 895: uint16(124), - 896: uint16(125), - 897: uint16(125), - 898: uint16(125), - 899: uint16(125), - 900: uint16(457), - 901: uint16(1485), - 902: uint16(13), - 903: uint16(13), - 904: uint16(1541), - 905: uint16(123), - 906: uint16(123), - 907: uint16(123), - 908: uint16(123), - 909: uint16(122), - 910: uint16(122), - 911: uint16(121), - 912: uint16(121), - 913: uint16(121), - 914: uint16(120), - 915: uint16(117), - 916: uint16(448), - 917: uint16(202), - 918: uint16(572), - 919: uint16(462), - 920: uint16(1587), - 921: uint16(578), - 922: uint16(2), - 923: uint16(1248), - 924: uint16(843), - 925: uint16(844), - 926: uint16(845), - 927: uint16(1563), - 928: uint16(319), - 929: uint16(409), - 930: uint16(147), - 931: uint16(6), - 932: uint16(411), - 933: uint16(257), - 934: uint16(256), - 935: uint16(255), - 936: uint16(208), - 937: uint16(1330), - 938: uint16(9), - 939: uint16(1196), - 940: uint16(264), - 941: uint16(72), - 942: uint16(72), - 943: uint16(1436), - 944: uint16(123), - 945: uint16(123), - 946: uint16(123), - 947: uint16(123), - 948: uint16(122), - 949: uint16(122), - 950: uint16(121), - 951: uint16(121), - 952: uint16(121), - 953: uint16(120), - 954: uint16(117), - 955: uint16(448), - 956: uint16(126), - 957: uint16(127), - 958: uint16(81), - 959: uint16(1217), - 960: uint16(1217), - 961: uint16(1054), - 962: uint16(1057), - 963: uint16(1044), - 964: uint16(1044), - 965: uint16(124), - 966: uint16(124), - 967: uint16(125), - 968: uint16(125), - 969: uint16(125), - 970: uint16(125), - 971: uint16(572), - 972: uint16(286), - 973: uint16(286), - 974: uint16(572), - 975: uint16(1213), - 976: uint16(411), - 977: uint16(577), - 978: uint16(315), - 979: uint16(1248), - 980: uint16(421), - 981: uint16(371), - 982: uint16(1581), - 983: uint16(356), - 984: uint16(319), - 985: uint16(569), - 986: uint16(147), - 987: uint16(495), - 988: uint16(529), - 989: uint16(1644), - 990: uint16(397), - 991: uint16(935), - 992: uint16(495), - 993: uint16(1330), - 994: uint16(71), - 995: uint16(71), - 996: uint16(934), - 997: uint16(72), - 998: uint16(72), - 999: uint16(242), - 1000: uint16(1328), - 1001: uint16(105), - 1002: uint16(81), - 1003: uint16(1217), - 1004: uint16(1217), - 1005: uint16(1054), - 1006: uint16(1057), - 1007: uint16(1044), - 1008: uint16(1044), - 1009: uint16(124), - 1010: uint16(124), - 1011: uint16(125), - 1012: uint16(125), - 1013: uint16(125), - 1014: uint16(125), - 1015: uint16(123), - 1016: uint16(123), - 1017: uint16(123), - 1018: uint16(123), - 1019: uint16(122), - 1020: uint16(122), - 1021: uint16(121), - 1022: uint16(121), - 1023: uint16(121), - 1024: uint16(120), - 1025: uint16(117), - 1026: uint16(448), - 1027: uint16(1117), - 1028: uint16(286), - 1029: uint16(286), - 1030: uint16(1422), - 1031: uint16(452), - 1032: uint16(1528), - 1033: uint16(1213), - 1034: uint16(443), - 1035: uint16(286), - 1036: uint16(286), - 1037: uint16(1492), - 1038: uint16(1355), - 1039: uint16(313), - 1040: uint16(478), - 1041: uint16(569), - 1042: uint16(1118), - 1043: uint16(454), - 1044: uint16(351), - 1045: uint16(495), - 1046: uint16(354), - 1047: uint16(1266), - 1048: uint16(569), - 1049: uint16(209), - 1050: uint16(572), - 1051: uint16(418), - 1052: uint16(179), - 1053: uint16(572), - 1054: uint16(1031), - 1055: uint16(242), - 1056: uint16(385), - 1057: uint16(1119), - 1058: uint16(523), - 1059: uint16(123), - 1060: uint16(123), - 1061: uint16(123), - 1062: uint16(123), - 1063: uint16(122), - 1064: uint16(122), - 1065: uint16(121), - 1066: uint16(121), - 1067: uint16(121), - 1068: uint16(120), - 1069: uint16(117), - 1070: uint16(448), - 1071: uint16(1020), - 1072: uint16(108), - 1073: uint16(72), - 1074: uint16(72), - 1075: uint16(1019), - 1076: uint16(13), - 1077: uint16(13), - 1078: uint16(915), - 1079: uint16(572), - 1080: uint16(1498), - 1081: uint16(572), - 1082: uint16(286), - 1083: uint16(286), - 1084: uint16(98), - 1085: uint16(530), - 1086: uint16(1537), - 1087: uint16(452), - 1088: uint16(916), - 1089: uint16(1334), - 1090: uint16(1329), - 1091: uint16(203), - 1092: uint16(411), - 1093: uint16(286), - 1094: uint16(286), - 1095: uint16(569), - 1096: uint16(152), - 1097: uint16(211), - 1098: uint16(1498), - 1099: uint16(1500), - 1100: uint16(426), - 1101: uint16(569), - 1102: uint16(56), - 1103: uint16(56), - 1104: uint16(57), - 1105: uint16(57), - 1106: uint16(569), - 1107: uint16(1019), - 1108: uint16(1019), - 1109: uint16(1021), - 1110: uint16(447), - 1111: uint16(572), - 1112: uint16(411), - 1113: uint16(531), - 1114: uint16(12), - 1115: uint16(297), - 1116: uint16(126), - 1117: uint16(127), - 1118: uint16(81), - 1119: uint16(1217), - 1120: uint16(1217), - 1121: uint16(1054), - 1122: uint16(1057), - 1123: uint16(1044), - 1124: uint16(1044), - 1125: uint16(124), - 1126: uint16(124), - 1127: uint16(125), - 1128: uint16(125), - 1129: uint16(125), - 1130: uint16(125), - 1131: uint16(572), - 1132: uint16(411), - 1133: uint16(867), - 1134: uint16(15), - 1135: uint16(15), - 1136: uint16(126), - 1137: uint16(127), - 1138: uint16(81), - 1139: uint16(1217), - 1140: uint16(1217), - 1141: uint16(1054), - 1142: uint16(1057), - 1143: uint16(1044), - 1144: uint16(1044), - 1145: uint16(124), - 1146: uint16(124), - 1147: uint16(125), - 1148: uint16(125), - 1149: uint16(125), - 1150: uint16(125), - 1151: uint16(373), - 1152: uint16(529), - 1153: uint16(264), - 1154: uint16(44), - 1155: uint16(44), - 1156: uint16(126), - 1157: uint16(115), - 1158: uint16(81), - 1159: uint16(1217), - 1160: uint16(1217), - 1161: uint16(1054), - 1162: uint16(1057), - 1163: uint16(1044), - 1164: uint16(1044), - 1165: uint16(124), - 1166: uint16(124), - 1167: uint16(125), - 1168: uint16(125), - 1169: uint16(125), - 1170: uint16(125), - 1171: uint16(1498), - 1172: uint16(478), - 1173: uint16(1271), - 1174: uint16(417), - 1175: uint16(123), - 1176: uint16(123), - 1177: uint16(123), - 1178: uint16(123), - 1179: uint16(122), - 1180: uint16(122), - 1181: uint16(121), - 1182: uint16(121), - 1183: uint16(121), - 1184: uint16(120), - 1185: uint16(117), - 1186: uint16(448), - 1187: uint16(205), - 1188: uint16(1213), - 1189: uint16(495), - 1190: uint16(430), - 1191: uint16(867), - 1192: uint16(468), - 1193: uint16(322), - 1194: uint16(495), - 1195: uint16(123), - 1196: uint16(123), - 1197: uint16(123), - 1198: uint16(123), - 1199: uint16(122), - 1200: uint16(122), - 1201: uint16(121), - 1202: uint16(121), - 1203: uint16(121), - 1204: uint16(120), - 1205: uint16(117), - 1206: uint16(448), - 1207: uint16(572), - 1208: uint16(557), - 1209: uint16(1140), - 1210: uint16(1642), - 1211: uint16(1422), - 1212: uint16(1642), - 1213: uint16(543), - 1214: uint16(572), - 1215: uint16(123), - 1216: uint16(123), - 1217: uint16(123), - 1218: uint16(123), - 1219: uint16(122), - 1220: uint16(122), - 1221: uint16(121), - 1222: uint16(121), - 1223: uint16(121), - 1224: uint16(120), - 1225: uint16(117), - 1226: uint16(448), - 1227: uint16(572), - 1228: uint16(1422), - 1229: uint16(572), - 1230: uint16(13), - 1231: uint16(13), - 1232: uint16(542), - 1233: uint16(323), - 1234: uint16(1325), - 1235: uint16(411), - 1236: uint16(334), - 1237: uint16(58), - 1238: uint16(58), - 1239: uint16(349), - 1240: uint16(1422), - 1241: uint16(1170), - 1242: uint16(326), - 1243: uint16(286), - 1244: uint16(286), - 1245: uint16(549), - 1246: uint16(1213), - 1247: uint16(300), - 1248: uint16(895), - 1249: uint16(530), - 1250: uint16(45), - 1251: uint16(45), - 1252: uint16(59), - 1253: uint16(59), - 1254: uint16(1140), - 1255: uint16(1643), - 1256: uint16(569), - 1257: uint16(1643), - 1258: uint16(565), - 1259: uint16(417), - 1260: uint16(127), - 1261: uint16(81), - 1262: uint16(1217), - 1263: uint16(1217), - 1264: uint16(1054), - 1265: uint16(1057), - 1266: uint16(1044), - 1267: uint16(1044), - 1268: uint16(124), - 1269: uint16(124), - 1270: uint16(125), - 1271: uint16(125), - 1272: uint16(125), - 1273: uint16(125), - 1274: uint16(1367), - 1275: uint16(373), - 1276: uint16(500), - 1277: uint16(290), - 1278: uint16(1193), - 1279: uint16(512), - 1280: uint16(1366), - 1281: uint16(427), - 1282: uint16(394), - 1283: uint16(394), - 1284: uint16(393), - 1285: uint16(275), - 1286: uint16(391), - 1287: uint16(896), - 1288: uint16(1138), - 1289: uint16(852), - 1290: uint16(478), - 1291: uint16(258), - 1292: uint16(1422), - 1293: uint16(1170), - 1294: uint16(463), - 1295: uint16(1159), - 1296: uint16(12), - 1297: uint16(331), - 1298: uint16(428), - 1299: uint16(333), - 1300: uint16(1117), - 1301: uint16(460), - 1302: uint16(236), - 1303: uint16(258), - 1304: uint16(325), - 1305: uint16(460), - 1306: uint16(544), - 1307: uint16(1544), - 1308: uint16(1159), - 1309: uint16(1098), - 1310: uint16(491), - 1311: uint16(1159), - 1312: uint16(324), - 1313: uint16(1098), - 1314: uint16(440), - 1315: uint16(1118), - 1316: uint16(335), - 1317: uint16(516), - 1318: uint16(123), - 1319: uint16(123), - 1320: uint16(123), - 1321: uint16(123), - 1322: uint16(122), - 1323: uint16(122), - 1324: uint16(121), - 1325: uint16(121), - 1326: uint16(121), - 1327: uint16(120), - 1328: uint16(117), - 1329: uint16(448), - 1330: uint16(1119), - 1331: uint16(318), - 1332: uint16(563), - 1333: uint16(1138), - 1334: uint16(572), - 1335: uint16(1193), - 1336: uint16(1194), - 1337: uint16(1193), - 1338: uint16(112), - 1339: uint16(564), - 1340: uint16(201), + 345: uint16(555), + 346: uint16(1149), + 347: uint16(1657), + 348: uint16(1628), + 349: uint16(1657), + 350: uint16(45), + 351: uint16(128), + 352: uint16(125), + 353: uint16(232), + 354: uint16(1204), + 355: uint16(1205), + 356: uint16(1204), + 357: uint16(1250), + 358: uint16(571), + 359: uint16(1169), + 360: uint16(132), + 361: uint16(132), + 362: uint16(132), + 363: uint16(132), + 364: uint16(131), + 365: uint16(131), + 366: uint16(130), + 367: uint16(130), + 368: uint16(130), + 369: uint16(129), + 370: uint16(126), + 371: uint16(450), + 372: uint16(1169), + 373: uint16(287), + 374: uint16(287), + 375: uint16(1169), + 376: uint16(1019), + 377: uint16(576), + 378: uint16(422), + 379: uint16(1019), + 380: uint16(412), + 381: uint16(451), + 382: uint16(1602), + 383: uint16(582), + 384: uint16(2), + 385: uint16(1259), + 386: uint16(573), + 387: uint16(44), + 388: uint16(561), + 389: uint16(95), + 390: uint16(320), + 391: uint16(110), + 392: uint16(153), + 393: uint16(565), + 394: uint16(1204), + 395: uint16(1205), + 396: uint16(1204), + 397: uint16(522), + 398: uint16(522), + 399: uint16(1341), + 400: uint16(81), + 401: uint16(81), + 402: uint16(7), + 403: uint16(44), + 404: uint16(135), + 405: uint16(136), + 406: uint16(90), + 407: uint16(1228), + 408: uint16(1228), + 409: uint16(1063), + 410: uint16(1066), + 411: uint16(1053), + 412: uint16(1053), + 413: uint16(133), + 414: uint16(133), + 415: uint16(134), + 416: uint16(134), + 417: uint16(134), + 418: uint16(134), + 419: uint16(295), + 420: uint16(1149), + 421: uint16(1658), + 422: uint16(1040), + 423: uint16(1658), + 424: uint16(1204), + 425: uint16(1147), + 426: uint16(319), + 427: uint16(567), + 428: uint16(119), + 429: uint16(119), + 430: uint16(343), + 431: uint16(466), + 432: uint16(331), + 433: uint16(343), + 434: uint16(287), + 435: uint16(287), + 436: uint16(120), + 437: uint16(556), + 438: uint16(451), + 439: uint16(577), + 440: uint16(451), + 441: uint16(1169), + 442: uint16(1169), + 443: uint16(1028), + 444: uint16(319), + 445: uint16(567), + 446: uint16(438), + 447: uint16(573), + 448: uint16(210), + 449: uint16(561), + 450: uint16(1339), + 451: uint16(1451), + 452: uint16(546), + 453: uint16(531), + 454: uint16(1169), + 455: uint16(1169), + 456: uint16(1598), + 457: uint16(1169), + 458: uint16(1169), + 459: uint16(416), + 460: uint16(319), + 461: uint16(567), + 462: uint16(243), + 463: uint16(132), + 464: uint16(132), + 465: uint16(132), + 466: uint16(132), + 467: uint16(131), + 468: uint16(131), + 469: uint16(130), + 470: uint16(130), + 471: uint16(130), + 472: uint16(129), + 473: uint16(126), + 474: uint16(450), + 475: uint16(1028), + 476: uint16(1028), + 477: uint16(1030), + 478: uint16(1031), + 479: uint16(35), + 480: uint16(44), + 481: uint16(1204), + 482: uint16(1205), + 483: uint16(1204), + 484: uint16(472), + 485: uint16(287), + 486: uint16(287), + 487: uint16(1328), + 488: uint16(412), + 489: uint16(1307), + 490: uint16(372), + 491: uint16(1595), + 492: uint16(359), + 493: uint16(225), + 494: uint16(454), + 495: uint16(1204), + 496: uint16(195), + 497: uint16(1328), + 498: uint16(573), + 499: uint16(1147), + 500: uint16(561), + 501: uint16(1333), + 502: uint16(1333), + 503: uint16(274), + 504: uint16(576), + 505: uint16(1188), + 506: uint16(576), + 507: uint16(340), + 508: uint16(46), + 509: uint16(196), + 510: uint16(537), + 511: uint16(217), + 512: uint16(135), + 513: uint16(136), + 514: uint16(90), + 515: uint16(1228), + 516: uint16(1228), + 517: uint16(1063), + 518: uint16(1066), + 519: uint16(1053), + 520: uint16(1053), + 521: uint16(133), + 522: uint16(133), + 523: uint16(134), + 524: uint16(134), + 525: uint16(134), + 526: uint16(134), + 527: uint16(19), + 528: uint16(19), + 529: uint16(19), + 530: uint16(19), + 531: uint16(412), + 532: uint16(581), + 533: uint16(1204), + 534: uint16(1259), + 535: uint16(511), + 536: uint16(1204), + 537: uint16(319), + 538: uint16(567), + 539: uint16(320), + 540: uint16(944), + 541: uint16(153), + 542: uint16(425), + 543: uint16(491), + 544: uint16(430), + 545: uint16(943), + 546: uint16(1204), + 547: uint16(488), + 548: uint16(1341), + 549: uint16(1450), + 550: uint16(532), + 551: uint16(1277), + 552: uint16(1204), + 553: uint16(1205), + 554: uint16(1204), + 555: uint16(135), + 556: uint16(136), + 557: uint16(90), + 558: uint16(1228), + 559: uint16(1228), + 560: uint16(1063), + 561: uint16(1066), + 562: uint16(1053), + 563: uint16(1053), + 564: uint16(133), + 565: uint16(133), + 566: uint16(134), + 567: uint16(134), + 568: uint16(134), + 569: uint16(134), + 570: uint16(575), + 571: uint16(132), + 572: uint16(132), + 573: uint16(132), + 574: uint16(132), + 575: uint16(131), + 576: uint16(131), + 577: uint16(130), + 578: uint16(130), + 579: uint16(130), + 580: uint16(129), + 581: uint16(126), + 582: uint16(450), + 583: uint16(287), + 584: uint16(287), + 585: uint16(528), + 586: uint16(287), + 587: uint16(287), + 588: uint16(372), + 589: uint16(1595), + 590: uint16(1204), + 591: uint16(1205), + 592: uint16(1204), + 593: uint16(1204), + 594: uint16(1205), + 595: uint16(1204), + 596: uint16(573), + 597: uint16(486), + 598: uint16(561), + 599: uint16(573), + 600: uint16(889), + 601: uint16(561), + 602: uint16(412), + 603: uint16(1204), + 604: uint16(1205), + 605: uint16(1204), + 606: uint16(886), + 607: uint16(40), + 608: uint16(22), + 609: uint16(22), + 610: uint16(220), + 611: uint16(243), + 612: uint16(525), + 613: uint16(1449), + 614: uint16(132), + 615: uint16(132), + 616: uint16(132), + 617: uint16(132), + 618: uint16(131), + 619: uint16(131), + 620: uint16(130), + 621: uint16(130), + 622: uint16(130), + 623: uint16(129), + 624: uint16(126), + 625: uint16(450), + 626: uint16(135), + 627: uint16(136), + 628: uint16(90), + 629: uint16(1228), + 630: uint16(1228), + 631: uint16(1063), + 632: uint16(1066), + 633: uint16(1053), + 634: uint16(1053), + 635: uint16(133), + 636: uint16(133), + 637: uint16(134), + 638: uint16(134), + 639: uint16(134), + 640: uint16(134), + 641: uint16(412), + 642: uint16(180), + 643: uint16(454), + 644: uint16(1204), + 645: uint16(879), + 646: uint16(255), + 647: uint16(287), + 648: uint16(287), + 649: uint16(510), + 650: uint16(507), + 651: uint16(506), + 652: uint16(372), + 653: uint16(1595), + 654: uint16(1568), + 655: uint16(1331), + 656: uint16(1331), + 657: uint16(576), + 658: uint16(889), + 659: uint16(505), + 660: uint16(573), + 661: uint16(44), + 662: uint16(561), + 663: uint16(559), + 664: uint16(1207), + 665: uint16(135), + 666: uint16(136), + 667: uint16(90), + 668: uint16(1228), + 669: uint16(1228), + 670: uint16(1063), + 671: uint16(1066), + 672: uint16(1053), + 673: uint16(1053), + 674: uint16(133), + 675: uint16(133), + 676: uint16(134), + 677: uint16(134), + 678: uint16(134), + 679: uint16(134), + 680: uint16(81), + 681: uint16(81), + 682: uint16(422), + 683: uint16(576), + 684: uint16(377), + 685: uint16(132), + 686: uint16(132), + 687: uint16(132), + 688: uint16(132), + 689: uint16(131), + 690: uint16(131), + 691: uint16(130), + 692: uint16(130), + 693: uint16(130), + 694: uint16(129), + 695: uint16(126), + 696: uint16(450), + 697: uint16(297), + 698: uint16(287), + 699: uint16(287), + 700: uint16(460), + 701: uint16(1204), + 702: uint16(1205), + 703: uint16(1204), + 704: uint16(1204), + 705: uint16(534), + 706: uint16(19), + 707: uint16(19), + 708: uint16(448), + 709: uint16(448), + 710: uint16(448), + 711: uint16(573), + 712: uint16(412), + 713: uint16(561), + 714: uint16(230), + 715: uint16(436), + 716: uint16(1187), + 717: uint16(535), + 718: uint16(319), + 719: uint16(567), + 720: uint16(363), + 721: uint16(432), + 722: uint16(1207), + 723: uint16(1435), + 724: uint16(132), + 725: uint16(132), + 726: uint16(132), + 727: uint16(132), + 728: uint16(131), + 729: uint16(131), + 730: uint16(130), + 731: uint16(130), + 732: uint16(130), + 733: uint16(129), + 734: uint16(126), + 735: uint16(450), + 736: uint16(135), + 737: uint16(136), + 738: uint16(90), + 739: uint16(1228), + 740: uint16(1228), + 741: uint16(1063), + 742: uint16(1066), + 743: uint16(1053), + 744: uint16(1053), + 745: uint16(133), + 746: uint16(133), + 747: uint16(134), + 748: uint16(134), + 749: uint16(134), + 750: uint16(134), + 751: uint16(412), + 752: uint16(211), + 753: uint16(949), + 754: uint16(1169), + 755: uint16(1041), + 756: uint16(1110), + 757: uint16(1110), + 758: uint16(494), + 759: uint16(547), + 760: uint16(547), + 761: uint16(1204), + 762: uint16(1205), + 763: uint16(1204), + 764: uint16(7), + 765: uint16(539), + 766: uint16(1570), + 767: uint16(1169), + 768: uint16(376), + 769: uint16(576), + 770: uint16(1169), + 771: uint16(5), + 772: uint16(1204), + 773: uint16(486), + 774: uint16(3), + 775: uint16(135), + 776: uint16(136), + 777: uint16(90), + 778: uint16(1228), + 779: uint16(1228), + 780: uint16(1063), + 781: uint16(1066), + 782: uint16(1053), + 783: uint16(1053), + 784: uint16(133), + 785: uint16(133), + 786: uint16(134), + 787: uint16(134), + 788: uint16(134), + 789: uint16(134), + 790: uint16(576), + 791: uint16(513), + 792: uint16(19), + 793: uint16(19), + 794: uint16(427), + 795: uint16(132), + 796: uint16(132), + 797: uint16(132), + 798: uint16(132), + 799: uint16(131), + 800: uint16(131), + 801: uint16(130), + 802: uint16(130), + 803: uint16(130), + 804: uint16(129), + 805: uint16(126), + 806: uint16(450), + 807: uint16(305), + 808: uint16(1204), + 809: uint16(433), + 810: uint16(225), + 811: uint16(1204), + 812: uint16(385), + 813: uint16(19), + 814: uint16(19), + 815: uint16(273), + 816: uint16(290), + 817: uint16(371), + 818: uint16(516), + 819: uint16(366), + 820: uint16(515), + 821: uint16(260), + 822: uint16(412), + 823: uint16(538), + 824: uint16(1568), + 825: uint16(549), + 826: uint16(1024), + 827: uint16(362), + 828: uint16(437), + 829: uint16(1204), + 830: uint16(1205), + 831: uint16(1204), + 832: uint16(902), + 833: uint16(1552), + 834: uint16(132), + 835: uint16(132), + 836: uint16(132), + 837: uint16(132), + 838: uint16(131), + 839: uint16(131), + 840: uint16(130), + 841: uint16(130), + 842: uint16(130), + 843: uint16(129), + 844: uint16(126), + 845: uint16(450), + 846: uint16(135), + 847: uint16(136), + 848: uint16(90), + 849: uint16(1228), + 850: uint16(1228), + 851: uint16(1063), + 852: uint16(1066), + 853: uint16(1053), + 854: uint16(1053), + 855: uint16(133), + 856: uint16(133), + 857: uint16(134), + 858: uint16(134), + 859: uint16(134), + 860: uint16(134), + 861: uint16(412), + 862: uint16(1435), + 863: uint16(514), + 864: uint16(1281), + 865: uint16(1204), + 866: uint16(1205), + 867: uint16(1204), + 868: uint16(1204), + 869: uint16(1205), + 870: uint16(1204), + 871: uint16(903), + 872: uint16(48), + 873: uint16(342), + 874: uint16(1568), + 875: uint16(1568), + 876: uint16(1279), + 877: uint16(1627), + 878: uint16(1568), + 879: uint16(911), + 880: uint16(576), + 881: uint16(129), + 882: uint16(126), + 883: uint16(450), + 884: uint16(110), + 885: uint16(135), + 886: uint16(136), + 887: uint16(90), + 888: uint16(1228), + 889: uint16(1228), + 890: uint16(1063), + 891: uint16(1066), + 892: uint16(1053), + 893: uint16(1053), + 894: uint16(133), + 895: uint16(133), + 896: uint16(134), + 897: uint16(134), + 898: uint16(134), + 899: uint16(134), + 900: uint16(265), + 901: uint16(576), + 902: uint16(459), + 903: uint16(19), + 904: uint16(19), + 905: uint16(132), + 906: uint16(132), + 907: uint16(132), + 908: uint16(132), + 909: uint16(131), + 910: uint16(131), + 911: uint16(130), + 912: uint16(130), + 913: uint16(130), + 914: uint16(129), + 915: uint16(126), + 916: uint16(450), + 917: uint16(1345), + 918: uint16(204), + 919: uint16(576), + 920: uint16(459), + 921: uint16(458), + 922: uint16(50), + 923: uint16(47), + 924: uint16(19), + 925: uint16(19), + 926: uint16(49), + 927: uint16(434), + 928: uint16(1105), + 929: uint16(573), + 930: uint16(497), + 931: uint16(561), + 932: uint16(412), + 933: uint16(428), + 934: uint16(108), + 935: uint16(1224), + 936: uint16(1569), + 937: uint16(1554), + 938: uint16(376), + 939: uint16(205), + 940: uint16(550), + 941: uint16(550), + 942: uint16(81), + 943: uint16(81), + 944: uint16(132), + 945: uint16(132), + 946: uint16(132), + 947: uint16(132), + 948: uint16(131), + 949: uint16(131), + 950: uint16(130), + 951: uint16(130), + 952: uint16(130), + 953: uint16(129), + 954: uint16(126), + 955: uint16(450), + 956: uint16(135), + 957: uint16(136), + 958: uint16(90), + 959: uint16(1228), + 960: uint16(1228), + 961: uint16(1063), + 962: uint16(1066), + 963: uint16(1053), + 964: uint16(1053), + 965: uint16(133), + 966: uint16(133), + 967: uint16(134), + 968: uint16(134), + 969: uint16(134), + 970: uint16(134), + 971: uint16(480), + 972: uint16(576), + 973: uint16(1204), + 974: uint16(576), + 975: uint16(1541), + 976: uint16(412), + 977: uint16(1435), + 978: uint16(969), + 979: uint16(315), + 980: uint16(1659), + 981: uint16(398), + 982: uint16(284), + 983: uint16(497), + 984: uint16(969), + 985: uint16(893), + 986: uint16(1569), + 987: uint16(1569), + 988: uint16(376), + 989: uint16(376), + 990: uint16(1569), + 991: uint16(461), + 992: uint16(376), + 993: uint16(1224), + 994: uint16(459), + 995: uint16(80), + 996: uint16(80), + 997: uint16(81), + 998: uint16(81), + 999: uint16(497), + 1000: uint16(374), + 1001: uint16(114), + 1002: uint16(90), + 1003: uint16(1228), + 1004: uint16(1228), + 1005: uint16(1063), + 1006: uint16(1066), + 1007: uint16(1053), + 1008: uint16(1053), + 1009: uint16(133), + 1010: uint16(133), + 1011: uint16(134), + 1012: uint16(134), + 1013: uint16(134), + 1014: uint16(134), + 1015: uint16(132), + 1016: uint16(132), + 1017: uint16(132), + 1018: uint16(132), + 1019: uint16(131), + 1020: uint16(131), + 1021: uint16(130), + 1022: uint16(130), + 1023: uint16(130), + 1024: uint16(129), + 1025: uint16(126), + 1026: uint16(450), + 1027: uint16(1204), + 1028: uint16(1505), + 1029: uint16(576), + 1030: uint16(1204), + 1031: uint16(1205), + 1032: uint16(1204), + 1033: uint16(1366), + 1034: uint16(316), + 1035: uint16(486), + 1036: uint16(281), + 1037: uint16(281), + 1038: uint16(497), + 1039: uint16(431), + 1040: uint16(557), + 1041: uint16(288), + 1042: uint16(288), + 1043: uint16(402), + 1044: uint16(1340), + 1045: uint16(471), + 1046: uint16(345), + 1047: uint16(298), + 1048: uint16(429), + 1049: uint16(573), + 1050: uint16(576), + 1051: uint16(561), + 1052: uint16(81), + 1053: uint16(81), + 1054: uint16(573), + 1055: uint16(374), + 1056: uint16(561), + 1057: uint16(971), + 1058: uint16(386), + 1059: uint16(132), + 1060: uint16(132), + 1061: uint16(132), + 1062: uint16(132), + 1063: uint16(131), + 1064: uint16(131), + 1065: uint16(130), + 1066: uint16(130), + 1067: uint16(130), + 1068: uint16(129), + 1069: uint16(126), + 1070: uint16(450), + 1071: uint16(231), + 1072: uint16(117), + 1073: uint16(81), + 1074: uint16(81), + 1075: uint16(287), + 1076: uint16(287), + 1077: uint16(231), + 1078: uint16(287), + 1079: uint16(287), + 1080: uint16(576), + 1081: uint16(1511), + 1082: uint16(576), + 1083: uint16(1336), + 1084: uint16(1204), + 1085: uint16(1205), + 1086: uint16(1204), + 1087: uint16(139), + 1088: uint16(573), + 1089: uint16(556), + 1090: uint16(561), + 1091: uint16(573), + 1092: uint16(412), + 1093: uint16(561), + 1094: uint16(441), + 1095: uint16(456), + 1096: uint16(969), + 1097: uint16(213), + 1098: uint16(558), + 1099: uint16(1511), + 1100: uint16(1513), + 1101: uint16(1550), + 1102: uint16(969), + 1103: uint16(143), + 1104: uint16(143), + 1105: uint16(145), + 1106: uint16(145), + 1107: uint16(1368), + 1108: uint16(314), + 1109: uint16(478), + 1110: uint16(444), + 1111: uint16(970), + 1112: uint16(412), + 1113: uint16(850), + 1114: uint16(851), + 1115: uint16(852), + 1116: uint16(135), + 1117: uint16(136), + 1118: uint16(90), + 1119: uint16(1228), + 1120: uint16(1228), + 1121: uint16(1063), + 1122: uint16(1066), + 1123: uint16(1053), + 1124: uint16(1053), + 1125: uint16(133), + 1126: uint16(133), + 1127: uint16(134), + 1128: uint16(134), + 1129: uint16(134), + 1130: uint16(134), + 1131: uint16(357), + 1132: uint16(412), + 1133: uint16(397), + 1134: uint16(1148), + 1135: uint16(304), + 1136: uint16(135), + 1137: uint16(136), + 1138: uint16(90), + 1139: uint16(1228), + 1140: uint16(1228), + 1141: uint16(1063), + 1142: uint16(1066), + 1143: uint16(1053), + 1144: uint16(1053), + 1145: uint16(133), + 1146: uint16(133), + 1147: uint16(134), + 1148: uint16(134), + 1149: uint16(134), + 1150: uint16(134), + 1151: uint16(1575), + 1152: uint16(323), + 1153: uint16(6), + 1154: uint16(862), + 1155: uint16(7), + 1156: uint16(135), + 1157: uint16(124), + 1158: uint16(90), + 1159: uint16(1228), + 1160: uint16(1228), + 1161: uint16(1063), + 1162: uint16(1066), + 1163: uint16(1053), + 1164: uint16(1053), + 1165: uint16(133), + 1166: uint16(133), + 1167: uint16(134), + 1168: uint16(134), + 1169: uint16(134), + 1170: uint16(134), + 1171: uint16(409), + 1172: uint16(408), + 1173: uint16(1511), + 1174: uint16(212), + 1175: uint16(132), + 1176: uint16(132), + 1177: uint16(132), + 1178: uint16(132), + 1179: uint16(131), + 1180: uint16(131), + 1181: uint16(130), + 1182: uint16(130), + 1183: uint16(130), + 1184: uint16(129), + 1185: uint16(126), + 1186: uint16(450), + 1187: uint16(411), + 1188: uint16(118), + 1189: uint16(1204), + 1190: uint16(116), + 1191: uint16(10), + 1192: uint16(352), + 1193: uint16(265), + 1194: uint16(355), + 1195: uint16(132), + 1196: uint16(132), + 1197: uint16(132), + 1198: uint16(132), + 1199: uint16(131), + 1200: uint16(131), + 1201: uint16(130), + 1202: uint16(130), + 1203: uint16(130), + 1204: uint16(129), + 1205: uint16(126), + 1206: uint16(450), + 1207: uint16(576), + 1208: uint16(324), + 1209: uint16(306), + 1210: uint16(576), + 1211: uint16(306), + 1212: uint16(1250), + 1213: uint16(469), + 1214: uint16(158), + 1215: uint16(132), + 1216: uint16(132), + 1217: uint16(132), + 1218: uint16(132), + 1219: uint16(131), + 1220: uint16(131), + 1221: uint16(130), + 1222: uint16(130), + 1223: uint16(130), + 1224: uint16(129), + 1225: uint16(126), + 1226: uint16(450), + 1227: uint16(207), + 1228: uint16(1224), + 1229: uint16(1126), + 1230: uint16(65), + 1231: uint16(65), + 1232: uint16(470), + 1233: uint16(66), + 1234: uint16(66), + 1235: uint16(412), + 1236: uint16(447), + 1237: uint16(446), + 1238: uint16(882), + 1239: uint16(531), + 1240: uint16(335), + 1241: uint16(258), + 1242: uint16(257), + 1243: uint16(256), + 1244: uint16(1127), + 1245: uint16(1233), + 1246: uint16(1204), + 1247: uint16(1205), + 1248: uint16(1204), + 1249: uint16(327), + 1250: uint16(1235), + 1251: uint16(874), + 1252: uint16(159), + 1253: uint16(576), + 1254: uint16(16), + 1255: uint16(480), + 1256: uint16(1085), + 1257: uint16(1040), + 1258: uint16(1234), + 1259: uint16(1128), + 1260: uint16(136), + 1261: uint16(90), + 1262: uint16(1228), + 1263: uint16(1228), + 1264: uint16(1063), + 1265: uint16(1066), + 1266: uint16(1053), + 1267: uint16(1053), + 1268: uint16(133), + 1269: uint16(133), + 1270: uint16(134), + 1271: uint16(134), + 1272: uint16(134), + 1273: uint16(134), + 1274: uint16(1029), + 1275: uint16(576), + 1276: uint16(81), + 1277: uint16(81), + 1278: uint16(1028), + 1279: uint16(1040), + 1280: uint16(922), + 1281: uint16(576), + 1282: uint16(463), + 1283: uint16(1236), + 1284: uint16(576), + 1285: uint16(1236), + 1286: uint16(1224), + 1287: uint16(502), + 1288: uint16(107), + 1289: uint16(1435), + 1290: uint16(923), + 1291: uint16(6), + 1292: uint16(576), + 1293: uint16(410), + 1294: uint16(1498), + 1295: uint16(882), + 1296: uint16(1029), + 1297: uint16(480), + 1298: uint16(21), + 1299: uint16(21), + 1300: uint16(1028), + 1301: uint16(332), + 1302: uint16(1380), + 1303: uint16(334), + 1304: uint16(53), + 1305: uint16(53), + 1306: uint16(497), + 1307: uint16(81), + 1308: uint16(81), + 1309: uint16(874), + 1310: uint16(1028), + 1311: uint16(1028), + 1312: uint16(1030), + 1313: uint16(445), + 1314: uint16(259), + 1315: uint16(19), + 1316: uint16(19), + 1317: uint16(533), + 1318: uint16(132), + 1319: uint16(132), + 1320: uint16(132), + 1321: uint16(132), + 1322: uint16(131), + 1323: uint16(131), + 1324: uint16(130), + 1325: uint16(130), + 1326: uint16(130), + 1327: uint16(129), + 1328: uint16(126), + 1329: uint16(450), + 1330: uint16(551), + 1331: uint16(301), + 1332: uint16(1028), + 1333: uint16(1028), + 1334: uint16(1030), + 1335: uint16(107), + 1336: uint16(532), + 1337: uint16(545), + 1338: uint16(121), + 1339: uint16(568), + 1340: uint16(1188), 1341: uint16(4), - 1342: uint16(238), - 1343: uint16(433), - 1344: uint16(935), - 1345: uint16(490), - 1346: uint16(285), - 1347: uint16(228), - 1348: uint16(1517), - 1349: uint16(934), - 1350: uint16(170), - 1351: uint16(560), - 1352: uint16(572), - 1353: uint16(142), - 1354: uint16(1516), - 1355: uint16(567), - 1356: uint16(572), - 1357: uint16(60), - 1358: uint16(60), - 1359: uint16(572), - 1360: uint16(416), - 1361: uint16(572), - 1362: uint16(441), - 1363: uint16(572), - 1364: uint16(535), - 1365: uint16(302), - 1366: uint16(875), - 1367: uint16(8), - 1368: uint16(487), - 1369: uint16(572), - 1370: uint16(237), - 1371: uint16(572), - 1372: uint16(416), - 1373: uint16(572), - 1374: uint16(485), - 1375: uint16(61), - 1376: uint16(61), - 1377: uint16(572), - 1378: uint16(449), - 1379: uint16(62), - 1380: uint16(62), - 1381: uint16(332), - 1382: uint16(63), - 1383: uint16(63), - 1384: uint16(46), - 1385: uint16(46), - 1386: uint16(47), - 1387: uint16(47), - 1388: uint16(361), - 1389: uint16(572), - 1390: uint16(561), - 1391: uint16(572), - 1392: uint16(48), - 1393: uint16(48), - 1394: uint16(50), - 1395: uint16(50), - 1396: uint16(51), - 1397: uint16(51), - 1398: uint16(572), - 1399: uint16(295), - 1400: uint16(64), - 1401: uint16(64), - 1402: uint16(482), - 1403: uint16(295), - 1404: uint16(539), - 1405: uint16(412), - 1406: uint16(471), - 1407: uint16(1031), - 1408: uint16(572), - 1409: uint16(538), - 1410: uint16(318), - 1411: uint16(563), - 1412: uint16(65), - 1413: uint16(65), - 1414: uint16(66), - 1415: uint16(66), - 1416: uint16(409), - 1417: uint16(475), - 1418: uint16(572), - 1419: uint16(1031), - 1420: uint16(572), - 1421: uint16(14), - 1422: uint16(14), - 1423: uint16(875), - 1424: uint16(1020), - 1425: uint16(110), - 1426: uint16(110), - 1427: uint16(409), - 1428: uint16(1019), - 1429: uint16(572), - 1430: uint16(474), - 1431: uint16(67), - 1432: uint16(67), - 1433: uint16(111), - 1434: uint16(455), - 1435: uint16(449), - 1436: uint16(573), - 1437: uint16(449), - 1438: uint16(98), - 1439: uint16(317), - 1440: uint16(1019), - 1441: uint16(132), - 1442: uint16(132), - 1443: uint16(133), - 1444: uint16(133), - 1445: uint16(572), - 1446: uint16(1561), - 1447: uint16(572), - 1448: uint16(974), - 1449: uint16(409), - 1450: uint16(6), - 1451: uint16(1562), - 1452: uint16(68), - 1453: uint16(68), - 1454: uint16(1560), - 1455: uint16(6), - 1456: uint16(975), - 1457: uint16(572), - 1458: uint16(6), - 1459: uint16(1559), - 1460: uint16(1019), - 1461: uint16(1019), - 1462: uint16(1021), - 1463: uint16(6), - 1464: uint16(346), - 1465: uint16(218), - 1466: uint16(101), - 1467: uint16(531), - 1468: uint16(53), - 1469: uint16(53), - 1470: uint16(69), - 1471: uint16(69), - 1472: uint16(1019), - 1473: uint16(1019), - 1474: uint16(1021), - 1475: uint16(1022), - 1476: uint16(28), - 1477: uint16(1586), - 1478: uint16(1181), - 1479: uint16(451), - 1480: uint16(70), - 1481: uint16(70), - 1482: uint16(290), - 1483: uint16(87), - 1484: uint16(215), - 1485: uint16(31), - 1486: uint16(1363), - 1487: uint16(394), - 1488: uint16(394), - 1489: uint16(393), - 1490: uint16(275), - 1491: uint16(391), - 1492: uint16(350), - 1493: uint16(109), - 1494: uint16(852), - 1495: uint16(107), - 1496: uint16(572), - 1497: uint16(112), - 1498: uint16(564), - 1499: uint16(483), - 1500: uint16(4), - 1501: uint16(1212), - 1502: uint16(572), - 1503: uint16(239), - 1504: uint16(153), - 1505: uint16(572), - 1506: uint16(39), - 1507: uint16(236), - 1508: uint16(1299), - 1509: uint16(325), - 1510: uint16(112), - 1511: uint16(564), - 1512: uint16(1298), - 1513: uint16(4), - 1514: uint16(567), - 1515: uint16(572), - 1516: uint16(32), - 1517: uint16(324), - 1518: uint16(572), - 1519: uint16(54), - 1520: uint16(54), - 1521: uint16(572), - 1522: uint16(1135), - 1523: uint16(353), - 1524: uint16(398), - 1525: uint16(165), - 1526: uint16(165), - 1527: uint16(567), - 1528: uint16(166), - 1529: uint16(166), - 1530: uint16(572), - 1531: uint16(291), - 1532: uint16(355), - 1533: uint16(572), - 1534: uint16(17), - 1535: uint16(357), - 1536: uint16(572), - 1537: uint16(449), - 1538: uint16(77), - 1539: uint16(77), - 1540: uint16(1313), - 1541: uint16(55), - 1542: uint16(55), - 1543: uint16(1297), - 1544: uint16(73), - 1545: uint16(73), - 1546: uint16(572), - 1547: uint16(238), - 1548: uint16(470), - 1549: uint16(561), - 1550: uint16(449), - 1551: uint16(472), - 1552: uint16(364), - 1553: uint16(135), - 1554: uint16(135), - 1555: uint16(170), - 1556: uint16(74), - 1557: uint16(74), - 1558: uint16(142), - 1559: uint16(163), - 1560: uint16(163), - 1561: uint16(374), - 1562: uint16(561), - 1563: uint16(539), - 1564: uint16(572), - 1565: uint16(321), - 1566: uint16(572), - 1567: uint16(886), - 1568: uint16(540), - 1569: uint16(137), - 1570: uint16(137), - 1571: uint16(339), - 1572: uint16(1353), - 1573: uint16(422), - 1574: uint16(298), - 1575: uint16(237), - 1576: uint16(539), - 1577: uint16(572), - 1578: uint16(1031), - 1579: uint16(572), - 1580: uint16(340), - 1581: uint16(538), - 1582: uint16(101), - 1583: uint16(369), - 1584: uint16(110), - 1585: uint16(110), - 1586: uint16(162), - 1587: uint16(131), - 1588: uint16(131), - 1589: uint16(164), - 1590: uint16(164), - 1591: uint16(1031), - 1592: uint16(111), - 1593: uint16(368), - 1594: uint16(449), - 1595: uint16(573), - 1596: uint16(449), + 1342: uint16(1126), + 1343: uint16(1576), + 1344: uint16(449), + 1345: uint16(576), + 1346: uint16(462), + 1347: uint16(7), + 1348: uint16(1282), + 1349: uint16(418), + 1350: uint16(462), + 1351: uint16(350), + 1352: uint16(1435), + 1353: uint16(576), + 1354: uint16(518), + 1355: uint16(571), + 1356: uint16(544), + 1357: uint16(1127), + 1358: uint16(121), + 1359: uint16(568), + 1360: uint16(442), + 1361: uint16(4), + 1362: uint16(1188), + 1363: uint16(464), + 1364: uint16(533), + 1365: uint16(1180), + 1366: uint16(1223), + 1367: uint16(9), + 1368: uint16(67), + 1369: uint16(67), + 1370: uint16(487), + 1371: uint16(576), + 1372: uint16(1128), + 1373: uint16(303), + 1374: uint16(410), + 1375: uint16(571), + 1376: uint16(54), + 1377: uint16(54), + 1378: uint16(451), + 1379: uint16(576), + 1380: uint16(123), + 1381: uint16(944), + 1382: uint16(576), + 1383: uint16(417), + 1384: uint16(576), + 1385: uint16(333), + 1386: uint16(943), + 1387: uint16(1379), + 1388: uint16(576), + 1389: uint16(236), + 1390: uint16(565), + 1391: uint16(576), + 1392: uint16(1574), + 1393: uint16(564), + 1394: uint16(68), + 1395: uint16(68), + 1396: uint16(7), + 1397: uint16(576), + 1398: uint16(451), + 1399: uint16(362), + 1400: uint16(419), + 1401: uint16(182), + 1402: uint16(69), + 1403: uint16(69), + 1404: uint16(541), + 1405: uint16(70), + 1406: uint16(70), + 1407: uint16(71), + 1408: uint16(71), + 1409: uint16(540), + 1410: uint16(565), + 1411: uint16(72), + 1412: uint16(72), + 1413: uint16(484), + 1414: uint16(55), + 1415: uint16(55), + 1416: uint16(473), + 1417: uint16(1180), + 1418: uint16(296), + 1419: uint16(1040), + 1420: uint16(56), + 1421: uint16(56), + 1422: uint16(296), + 1423: uint16(493), + 1424: uint16(541), + 1425: uint16(119), + 1426: uint16(119), + 1427: uint16(410), + 1428: uint16(1573), + 1429: uint16(542), + 1430: uint16(569), + 1431: uint16(418), + 1432: uint16(7), + 1433: uint16(120), + 1434: uint16(1244), + 1435: uint16(451), + 1436: uint16(577), + 1437: uint16(451), + 1438: uint16(465), + 1439: uint16(1040), + 1440: uint16(1028), + 1441: uint16(576), + 1442: uint16(1557), + 1443: uint16(552), + 1444: uint16(476), + 1445: uint16(119), + 1446: uint16(119), + 1447: uint16(527), + 1448: uint16(259), + 1449: uint16(121), + 1450: uint16(568), + 1451: uint16(240), + 1452: uint16(4), + 1453: uint16(120), + 1454: uint16(576), + 1455: uint16(451), + 1456: uint16(577), + 1457: uint16(451), + 1458: uint16(576), + 1459: uint16(477), + 1460: uint16(1028), + 1461: uint16(576), + 1462: uint16(156), + 1463: uint16(576), + 1464: uint16(57), + 1465: uint16(57), + 1466: uint16(571), + 1467: uint16(576), + 1468: uint16(286), + 1469: uint16(229), + 1470: uint16(410), + 1471: uint16(336), + 1472: uint16(1028), + 1473: uint16(1028), + 1474: uint16(1030), + 1475: uint16(1031), + 1476: uint16(35), + 1477: uint16(59), + 1478: uint16(59), + 1479: uint16(219), + 1480: uint16(983), + 1481: uint16(60), + 1482: uint16(60), + 1483: uint16(220), + 1484: uint16(73), + 1485: uint16(73), + 1486: uint16(74), + 1487: uint16(74), + 1488: uint16(984), + 1489: uint16(451), + 1490: uint16(75), + 1491: uint16(75), + 1492: uint16(1028), + 1493: uint16(1028), + 1494: uint16(1030), + 1495: uint16(1031), + 1496: uint16(35), + 1497: uint16(96), + 1498: uint16(216), + 1499: uint16(291), + 1500: uint16(552), + 1501: uint16(565), + 1502: uint16(1188), + 1503: uint16(318), + 1504: uint16(395), + 1505: uint16(395), + 1506: uint16(394), + 1507: uint16(276), + 1508: uint16(392), + 1509: uint16(576), + 1510: uint16(485), + 1511: uint16(859), + 1512: uint16(474), + 1513: uint16(1311), + 1514: uint16(410), + 1515: uint16(541), + 1516: uint16(576), + 1517: uint16(417), + 1518: uint16(1530), + 1519: uint16(1144), + 1520: uint16(540), + 1521: uint16(399), + 1522: uint16(1188), + 1523: uint16(292), + 1524: uint16(237), + 1525: uint16(1153), + 1526: uint16(326), + 1527: uint16(38), + 1528: uint16(23), + 1529: uint16(576), + 1530: uint16(1040), + 1531: uint16(576), + 1532: uint16(20), + 1533: uint16(20), + 1534: uint16(325), + 1535: uint16(299), + 1536: uint16(119), + 1537: uint16(119), + 1538: uint16(164), + 1539: uint16(76), + 1540: uint16(76), + 1541: uint16(1529), + 1542: uint16(121), + 1543: uint16(568), + 1544: uint16(120), + 1545: uint16(4), + 1546: uint16(451), + 1547: uint16(577), + 1548: uint16(451), + 1549: uint16(203), + 1550: uint16(576), + 1551: uint16(1028), + 1552: uint16(141), + 1553: uint16(141), + 1554: uint16(142), + 1555: uint16(142), + 1556: uint16(576), + 1557: uint16(322), + 1558: uint16(39), + 1559: uint16(571), + 1560: uint16(341), + 1561: uint16(1021), + 1562: uint16(110), + 1563: uint16(264), + 1564: uint16(239), + 1565: uint16(901), + 1566: uint16(900), + 1567: uint16(423), + 1568: uint16(242), + 1569: uint16(908), + 1570: uint16(909), + 1571: uint16(370), + 1572: uint16(173), + 1573: uint16(77), + 1574: uint16(77), + 1575: uint16(43), + 1576: uint16(479), + 1577: uint16(1310), + 1578: uint16(264), + 1579: uint16(62), + 1580: uint16(62), + 1581: uint16(369), + 1582: uint16(451), + 1583: uint16(1028), + 1584: uint16(1028), + 1585: uint16(1030), + 1586: uint16(1031), + 1587: uint16(35), + 1588: uint16(1601), + 1589: uint16(1192), + 1590: uint16(453), + 1591: uint16(1092), + 1592: uint16(238), + 1593: uint16(291), + 1594: uint16(565), + 1595: uint16(163), + 1596: uint16(1309), 1597: uint16(110), - 1598: uint16(110), - 1599: uint16(1019), - 1600: uint16(157), - 1601: uint16(157), - 1602: uint16(141), - 1603: uint16(141), - 1604: uint16(572), - 1605: uint16(111), - 1606: uint16(572), - 1607: uint16(449), - 1608: uint16(573), - 1609: uint16(449), - 1610: uint16(412), - 1611: uint16(288), - 1612: uint16(1019), - 1613: uint16(572), - 1614: uint16(882), - 1615: uint16(318), - 1616: uint16(563), - 1617: uint16(572), - 1618: uint16(219), - 1619: uint16(572), - 1620: uint16(241), - 1621: uint16(1012), - 1622: uint16(477), - 1623: uint16(263), - 1624: uint16(263), - 1625: uint16(894), - 1626: uint16(893), - 1627: uint16(140), - 1628: uint16(140), - 1629: uint16(138), - 1630: uint16(138), - 1631: uint16(1019), - 1632: uint16(1019), - 1633: uint16(1021), - 1634: uint16(1022), - 1635: uint16(28), - 1636: uint16(139), - 1637: uint16(139), - 1638: uint16(525), - 1639: uint16(455), - 1640: uint16(76), - 1641: uint16(76), - 1642: uint16(78), - 1643: uint16(78), - 1644: uint16(1019), - 1645: uint16(1019), - 1646: uint16(1021), - 1647: uint16(1022), - 1648: uint16(28), - 1649: uint16(1181), - 1650: uint16(451), - 1651: uint16(572), - 1652: uint16(1083), - 1653: uint16(290), - 1654: uint16(112), - 1655: uint16(564), - 1656: uint16(1575), - 1657: uint16(4), - 1658: uint16(394), - 1659: uint16(394), - 1660: uint16(393), - 1661: uint16(275), - 1662: uint16(391), - 1663: uint16(572), - 1664: uint16(1023), - 1665: uint16(852), - 1666: uint16(572), - 1667: uint16(479), - 1668: uint16(345), - 1669: uint16(263), - 1670: uint16(101), - 1671: uint16(567), - 1672: uint16(882), - 1673: uint16(1376), - 1674: uint16(75), - 1675: uint16(75), - 1676: uint16(1421), - 1677: uint16(501), - 1678: uint16(236), - 1679: uint16(260), - 1680: uint16(325), - 1681: uint16(112), - 1682: uint16(564), - 1683: uint16(359), - 1684: uint16(4), - 1685: uint16(101), - 1686: uint16(43), - 1687: uint16(43), - 1688: uint16(324), - 1689: uint16(49), - 1690: uint16(49), - 1691: uint16(901), - 1692: uint16(902), - 1693: uint16(161), - 1694: uint16(449), - 1695: uint16(101), - 1696: uint16(977), - 1697: uint16(978), - 1698: uint16(567), - 1699: uint16(1079), - 1700: uint16(1349), - 1701: uint16(260), - 1702: uint16(965), - 1703: uint16(932), - 1704: uint16(263), - 1705: uint16(114), - 1706: uint16(561), - 1707: uint16(1095), - 1708: uint16(517), - 1709: uint16(1095), - 1710: uint16(1083), - 1711: uint16(1094), - 1712: uint16(865), - 1713: uint16(1094), - 1714: uint16(151), - 1715: uint16(933), - 1716: uint16(1144), - 1717: uint16(114), - 1718: uint16(238), - 1719: uint16(1361), - 1720: uint16(558), - 1721: uint16(449), - 1722: uint16(1023), - 1723: uint16(559), - 1724: uint16(1426), - 1725: uint16(1278), - 1726: uint16(170), - 1727: uint16(1269), - 1728: uint16(1257), - 1729: uint16(142), - 1730: uint16(1601), - 1731: uint16(1256), - 1732: uint16(1258), - 1733: uint16(561), - 1734: uint16(1594), - 1735: uint16(1031), - 1736: uint16(496), - 1737: uint16(278), - 1738: uint16(213), - 1739: uint16(1346), - 1740: uint16(310), - 1741: uint16(110), - 1742: uint16(110), - 1743: uint16(939), - 1744: uint16(311), - 1745: uint16(312), - 1746: uint16(237), - 1747: uint16(11), - 1748: uint16(234), - 1749: uint16(111), - 1750: uint16(221), - 1751: uint16(449), - 1752: uint16(573), - 1753: uint16(449), - 1754: uint16(293), - 1755: uint16(395), - 1756: uint16(1019), - 1757: uint16(1408), - 1758: uint16(337), - 1759: uint16(1403), - 1760: uint16(1396), - 1761: uint16(338), - 1762: uint16(1031), - 1763: uint16(299), - 1764: uint16(343), - 1765: uint16(1413), - 1766: uint16(1412), - 1767: uint16(481), - 1768: uint16(110), - 1769: uint16(110), - 1770: uint16(506), - 1771: uint16(402), - 1772: uint16(225), - 1773: uint16(1296), - 1774: uint16(206), - 1775: uint16(367), - 1776: uint16(111), - 1777: uint16(1358), - 1778: uint16(449), - 1779: uint16(573), - 1780: uint16(449), - 1781: uint16(412), - 1782: uint16(1359), - 1783: uint16(1019), - 1784: uint16(1489), - 1785: uint16(1488), - 1786: uint16(318), - 1787: uint16(563), - 1788: uint16(1019), - 1789: uint16(1019), - 1790: uint16(1021), - 1791: uint16(1022), - 1792: uint16(28), - 1793: uint16(562), - 1794: uint16(207), - 1795: uint16(220), - 1796: uint16(80), - 1797: uint16(564), - 1798: uint16(389), - 1799: uint16(4), - 1800: uint16(1597), - 1801: uint16(1357), - 1802: uint16(552), - 1803: uint16(1356), - 1804: uint16(1233), - 1805: uint16(181), - 1806: uint16(267), - 1807: uint16(232), - 1808: uint16(1536), - 1809: uint16(1534), - 1810: uint16(455), - 1811: uint16(1230), - 1812: uint16(420), - 1813: uint16(567), - 1814: uint16(82), - 1815: uint16(1019), - 1816: uint16(1019), - 1817: uint16(1021), - 1818: uint16(1022), - 1819: uint16(28), - 1820: uint16(86), - 1821: uint16(217), - 1822: uint16(85), - 1823: uint16(1494), - 1824: uint16(190), - 1825: uint16(175), - 1826: uint16(183), - 1827: uint16(465), - 1828: uint16(185), - 1829: uint16(466), - 1830: uint16(36), - 1831: uint16(1409), - 1832: uint16(186), - 1833: uint16(187), - 1834: uint16(188), - 1835: uint16(499), - 1836: uint16(449), - 1837: uint16(244), - 1838: uint16(37), - 1839: uint16(99), - 1840: uint16(400), - 1841: uint16(1415), - 1842: uint16(1414), - 1843: uint16(488), - 1844: uint16(1417), - 1845: uint16(194), - 1846: uint16(473), - 1847: uint16(403), - 1848: uint16(561), - 1849: uint16(1483), - 1850: uint16(248), - 1851: uint16(92), - 1852: uint16(1505), - 1853: uint16(494), - 1854: uint16(198), - 1855: uint16(279), - 1856: uint16(112), - 1857: uint16(564), - 1858: uint16(250), - 1859: uint16(4), - 1860: uint16(348), - 1861: uint16(497), - 1862: uint16(405), - 1863: uint16(352), - 1864: uint16(1259), - 1865: uint16(251), - 1866: uint16(252), - 1867: uint16(515), - 1868: uint16(1316), - 1869: uint16(434), - 1870: uint16(1315), - 1871: uint16(1314), - 1872: uint16(94), - 1873: uint16(567), - 1874: uint16(1307), - 1875: uint16(886), - 1876: uint16(1306), - 1877: uint16(1031), - 1878: uint16(226), - 1879: uint16(406), - 1880: uint16(1611), - 1881: uint16(1610), - 1882: uint16(438), - 1883: uint16(110), - 1884: uint16(110), - 1885: uint16(1580), - 1886: uint16(1286), - 1887: uint16(524), - 1888: uint16(439), - 1889: uint16(308), - 1890: uint16(266), - 1891: uint16(111), - 1892: uint16(1285), - 1893: uint16(449), - 1894: uint16(573), - 1895: uint16(449), - 1896: uint16(449), - 1897: uint16(309), - 1898: uint16(1019), - 1899: uint16(366), - 1900: uint16(1284), - 1901: uint16(1609), - 1902: uint16(265), - 1903: uint16(1566), - 1904: uint16(1565), - 1905: uint16(442), - 1906: uint16(372), - 1907: uint16(1381), - 1908: uint16(561), - 1909: uint16(129), - 1910: uint16(550), - 1911: uint16(1380), - 1912: uint16(10), - 1913: uint16(1470), - 1914: uint16(383), - 1915: uint16(106), - 1916: uint16(316), - 1917: uint16(551), - 1918: uint16(100), - 1919: uint16(35), - 1920: uint16(534), - 1921: uint16(575), - 1922: uint16(212), - 1923: uint16(1339), - 1924: uint16(381), - 1925: uint16(387), - 1926: uint16(1187), - 1927: uint16(1338), - 1928: uint16(274), - 1929: uint16(276), - 1930: uint16(1019), - 1931: uint16(1019), - 1932: uint16(1021), - 1933: uint16(1022), - 1934: uint16(28), - 1935: uint16(277), - 1936: uint16(413), - 1937: uint16(1031), - 1938: uint16(576), - 1939: uint16(1254), - 1940: uint16(388), - 1941: uint16(1521), - 1942: uint16(1249), - 1943: uint16(110), - 1944: uint16(110), - 1945: uint16(167), - 1946: uint16(1522), - 1947: uint16(168), - 1948: uint16(148), - 1949: uint16(1520), - 1950: uint16(1519), - 1951: uint16(111), - 1952: uint16(306), - 1953: uint16(449), - 1954: uint16(573), - 1955: uint16(449), - 1956: uint16(222), - 1957: uint16(223), - 1958: uint16(1019), - 1959: uint16(839), - 1960: uint16(169), - 1961: uint16(79), - 1962: uint16(450), - 1963: uint16(214), - 1964: uint16(414), - 1965: uint16(233), - 1966: uint16(320), - 1967: uint16(145), - 1968: uint16(1093), - 1969: uint16(1091), - 1970: uint16(328), - 1971: uint16(182), - 1972: uint16(171), - 1973: uint16(1212), - 1974: uint16(918), - 1975: uint16(184), - 1976: uint16(240), - 1977: uint16(336), - 1978: uint16(243), - 1979: uint16(1107), - 1980: uint16(189), - 1981: uint16(172), - 1982: uint16(173), - 1983: uint16(423), - 1984: uint16(425), - 1985: uint16(88), - 1986: uint16(180), - 1987: uint16(191), - 1988: uint16(89), - 1989: uint16(90), - 1990: uint16(1019), - 1991: uint16(1019), - 1992: uint16(1021), - 1993: uint16(1022), - 1994: uint16(28), - 1995: uint16(91), - 1996: uint16(174), - 1997: uint16(1110), - 1998: uint16(245), - 1999: uint16(1106), - 2000: uint16(246), - 2001: uint16(159), - 2002: uint16(18), - 2003: uint16(247), - 2004: uint16(347), - 2005: uint16(1099), - 2006: uint16(263), - 2007: uint16(195), - 2008: uint16(1227), - 2009: uint16(493), - 2010: uint16(249), - 2011: uint16(196), - 2012: uint16(38), - 2013: uint16(854), - 2014: uint16(498), - 2015: uint16(368), - 2016: uint16(253), - 2017: uint16(360), - 2018: uint16(897), - 2019: uint16(197), - 2020: uint16(502), - 2021: uint16(93), - 2022: uint16(19), - 2023: uint16(20), - 2024: uint16(507), - 2025: uint16(884), - 2026: uint16(363), - 2027: uint16(510), - 2028: uint16(95), - 2029: uint16(307), - 2030: uint16(160), - 2031: uint16(96), - 2032: uint16(518), - 2033: uint16(97), - 2034: uint16(1175), - 2035: uint16(1060), - 2036: uint16(1146), - 2037: uint16(40), - 2038: uint16(21), - 2039: uint16(227), - 2040: uint16(176), - 2041: uint16(1145), - 2042: uint16(282), - 2043: uint16(284), - 2044: uint16(969), - 2045: uint16(200), - 2046: uint16(963), - 2047: uint16(114), - 2048: uint16(262), - 2049: uint16(1165), - 2050: uint16(22), - 2051: uint16(23), - 2052: uint16(24), - 2053: uint16(1161), - 2054: uint16(1169), - 2055: uint16(25), - 2056: uint16(1163), - 2057: uint16(1150), - 2058: uint16(34), - 2059: uint16(26), - 2060: uint16(1168), - 2061: uint16(546), - 2062: uint16(27), - 2063: uint16(204), - 2064: uint16(101), - 2065: uint16(103), - 2066: uint16(104), - 2067: uint16(1074), - 2068: uint16(7), - 2069: uint16(1061), - 2070: uint16(1059), - 2071: uint16(1063), - 2072: uint16(1116), - 2073: uint16(1064), - 2074: uint16(1115), - 2075: uint16(268), - 2076: uint16(269), - 2077: uint16(29), - 2078: uint16(41), - 2079: uint16(270), - 2080: uint16(1024), - 2081: uint16(866), - 2082: uint16(113), - 2083: uint16(30), - 2084: uint16(568), - 2085: uint16(392), - 2086: uint16(1183), - 2087: uint16(144), - 2088: uint16(178), - 2089: uint16(1182), - 2090: uint16(271), - 2091: uint16(928), - 2092: uint16(1245), - 2093: uint16(1245), - 2094: uint16(1245), - 2095: uint16(1245), - 2096: uint16(1245), - 2097: uint16(1245), - 2098: uint16(1245), - 2099: uint16(1602), -} -var _yy_lookahead = [2285]uint16{ - 0: uint16(193), - 1: uint16(193), - 2: uint16(193), - 3: uint16(274), - 4: uint16(275), - 5: uint16(276), - 6: uint16(193), - 7: uint16(274), - 8: uint16(275), - 9: uint16(276), - 10: uint16(193), - 11: uint16(223), - 12: uint16(219), - 13: uint16(225), - 14: uint16(206), - 15: uint16(210), - 16: uint16(211), - 17: uint16(212), - 18: uint16(193), + 1598: uint16(395), + 1599: uint16(395), + 1600: uint16(394), + 1601: uint16(276), + 1602: uint16(392), + 1603: uint16(986), + 1604: uint16(987), + 1605: uint16(859), + 1606: uint16(481), + 1607: uint16(346), + 1608: uint16(264), + 1609: uint16(110), + 1610: uint16(1032), + 1611: uint16(489), + 1612: uint16(576), + 1613: uint16(1188), + 1614: uint16(503), + 1615: uint16(1088), + 1616: uint16(261), + 1617: uint16(261), + 1618: uint16(237), + 1619: uint16(576), + 1620: uint16(326), + 1621: uint16(121), + 1622: uint16(568), + 1623: uint16(1040), + 1624: uint16(4), + 1625: uint16(347), + 1626: uint16(1376), + 1627: uint16(413), + 1628: uint16(325), + 1629: uint16(119), + 1630: uint16(119), + 1631: uint16(948), + 1632: uint16(319), + 1633: uint16(567), + 1634: uint16(351), + 1635: uint16(78), + 1636: uint16(78), + 1637: uint16(120), + 1638: uint16(571), + 1639: uint16(451), + 1640: uint16(577), + 1641: uint16(451), + 1642: uint16(79), + 1643: uint16(79), + 1644: uint16(1028), + 1645: uint16(354), + 1646: uint16(356), + 1647: uint16(576), + 1648: uint16(360), + 1649: uint16(1092), + 1650: uint16(110), + 1651: uint16(576), + 1652: uint16(974), + 1653: uint16(942), + 1654: uint16(264), + 1655: uint16(123), + 1656: uint16(457), + 1657: uint16(358), + 1658: uint16(239), + 1659: uint16(576), + 1660: uint16(519), + 1661: uint16(451), + 1662: uint16(939), + 1663: uint16(1104), + 1664: uint16(123), + 1665: uint16(1104), + 1666: uint16(173), + 1667: uint16(576), + 1668: uint16(1032), + 1669: uint16(43), + 1670: uint16(63), + 1671: uint16(63), + 1672: uint16(1324), + 1673: uint16(565), + 1674: uint16(168), + 1675: uint16(168), + 1676: uint16(1028), + 1677: uint16(1028), + 1678: uint16(1030), + 1679: uint16(1031), + 1680: uint16(35), + 1681: uint16(576), + 1682: uint16(169), + 1683: uint16(169), + 1684: uint16(1308), + 1685: uint16(872), + 1686: uint16(238), + 1687: uint16(157), + 1688: uint16(1589), + 1689: uint16(576), + 1690: uint16(86), + 1691: uint16(86), + 1692: uint16(365), + 1693: uint16(89), + 1694: uint16(568), + 1695: uint16(375), + 1696: uint16(4), + 1697: uint16(1103), + 1698: uint16(941), + 1699: uint16(1103), + 1700: uint16(123), + 1701: uint16(576), + 1702: uint16(1040), + 1703: uint16(1389), + 1704: uint16(64), + 1705: uint16(64), + 1706: uint16(1188), + 1707: uint16(1434), + 1708: uint16(119), + 1709: uint16(119), + 1710: uint16(571), + 1711: uint16(576), + 1712: uint16(82), + 1713: uint16(82), + 1714: uint16(563), + 1715: uint16(576), + 1716: uint16(120), + 1717: uint16(165), + 1718: uint16(451), + 1719: uint16(577), + 1720: uint16(451), + 1721: uint16(413), + 1722: uint16(1362), + 1723: uint16(1028), + 1724: uint16(144), + 1725: uint16(144), + 1726: uint16(319), + 1727: uint16(567), + 1728: uint16(576), + 1729: uint16(1374), + 1730: uint16(562), + 1731: uint16(498), + 1732: uint16(279), + 1733: uint16(451), + 1734: uint16(83), + 1735: uint16(83), + 1736: uint16(1439), + 1737: uint16(576), + 1738: uint16(166), + 1739: uint16(166), + 1740: uint16(576), + 1741: uint16(1289), + 1742: uint16(554), + 1743: uint16(576), + 1744: uint16(1280), + 1745: uint16(565), + 1746: uint16(576), + 1747: uint16(12), + 1748: uint16(576), + 1749: uint16(1268), + 1750: uint16(457), + 1751: uint16(146), + 1752: uint16(146), + 1753: uint16(1267), + 1754: uint16(576), + 1755: uint16(1028), + 1756: uint16(1028), + 1757: uint16(1030), + 1758: uint16(1031), + 1759: uint16(35), + 1760: uint16(140), + 1761: uint16(140), + 1762: uint16(1269), + 1763: uint16(167), + 1764: uint16(167), + 1765: uint16(1609), + 1766: uint16(160), + 1767: uint16(160), + 1768: uint16(1359), + 1769: uint16(150), + 1770: uint16(150), + 1771: uint16(149), + 1772: uint16(149), + 1773: uint16(311), + 1774: uint16(1040), + 1775: uint16(576), + 1776: uint16(312), + 1777: uint16(147), + 1778: uint16(147), + 1779: uint16(313), + 1780: uint16(119), + 1781: uint16(119), + 1782: uint16(222), + 1783: uint16(235), + 1784: uint16(576), + 1785: uint16(1188), + 1786: uint16(396), + 1787: uint16(576), + 1788: uint16(120), + 1789: uint16(576), + 1790: uint16(451), + 1791: uint16(577), + 1792: uint16(451), + 1793: uint16(1192), + 1794: uint16(453), + 1795: uint16(1028), + 1796: uint16(508), + 1797: uint16(291), + 1798: uint16(148), + 1799: uint16(148), + 1800: uint16(1421), + 1801: uint16(1612), + 1802: uint16(395), + 1803: uint16(395), + 1804: uint16(394), + 1805: uint16(276), + 1806: uint16(392), + 1807: uint16(85), + 1808: uint16(85), + 1809: uint16(859), + 1810: uint16(87), + 1811: uint16(87), + 1812: uint16(84), + 1813: uint16(84), + 1814: uint16(553), + 1815: uint16(576), + 1816: uint16(294), + 1817: uint16(576), + 1818: uint16(1426), + 1819: uint16(338), + 1820: uint16(339), + 1821: uint16(1425), + 1822: uint16(237), + 1823: uint16(300), + 1824: uint16(326), + 1825: uint16(1416), + 1826: uint16(1409), + 1827: uint16(1028), + 1828: uint16(1028), + 1829: uint16(1030), + 1830: uint16(1031), + 1831: uint16(35), + 1832: uint16(325), + 1833: uint16(344), + 1834: uint16(403), + 1835: uint16(483), + 1836: uint16(226), + 1837: uint16(1307), + 1838: uint16(52), + 1839: uint16(52), + 1840: uint16(58), + 1841: uint16(58), + 1842: uint16(368), + 1843: uint16(1371), + 1844: uint16(1502), + 1845: uint16(566), + 1846: uint16(1501), + 1847: uint16(121), + 1848: uint16(568), + 1849: uint16(221), + 1850: uint16(4), + 1851: uint16(208), + 1852: uint16(268), + 1853: uint16(209), + 1854: uint16(390), + 1855: uint16(1244), + 1856: uint16(1549), + 1857: uint16(1188), + 1858: uint16(1372), + 1859: uint16(1370), + 1860: uint16(1369), + 1861: uint16(1547), + 1862: uint16(239), + 1863: uint16(184), + 1864: uint16(571), + 1865: uint16(233), + 1866: uint16(421), + 1867: uint16(1241), + 1868: uint16(95), + 1869: uint16(218), + 1870: uint16(173), + 1871: uint16(1507), + 1872: uint16(193), + 1873: uint16(43), + 1874: uint16(91), + 1875: uint16(94), + 1876: uint16(178), + 1877: uint16(186), + 1878: uint16(467), + 1879: uint16(188), + 1880: uint16(468), + 1881: uint16(1422), + 1882: uint16(13), + 1883: uint16(189), + 1884: uint16(190), + 1885: uint16(191), + 1886: uint16(501), + 1887: uint16(451), + 1888: uint16(245), + 1889: uint16(108), + 1890: uint16(238), + 1891: uint16(401), + 1892: uint16(1428), + 1893: uint16(1427), + 1894: uint16(1430), + 1895: uint16(475), + 1896: uint16(404), + 1897: uint16(1496), + 1898: uint16(197), + 1899: uint16(565), + 1900: uint16(14), + 1901: uint16(490), + 1902: uint16(249), + 1903: uint16(101), + 1904: uint16(1518), + 1905: uint16(496), + 1906: uint16(349), + 1907: uint16(280), + 1908: uint16(251), + 1909: uint16(201), + 1910: uint16(353), + 1911: uint16(499), + 1912: uint16(252), + 1913: uint16(406), + 1914: uint16(1270), + 1915: uint16(253), + 1916: uint16(517), + 1917: uint16(1327), + 1918: uint16(1326), + 1919: uint16(435), + 1920: uint16(1325), + 1921: uint16(1318), + 1922: uint16(103), + 1923: uint16(893), + 1924: uint16(1296), + 1925: uint16(413), + 1926: uint16(227), + 1927: uint16(407), + 1928: uint16(1040), + 1929: uint16(1626), + 1930: uint16(319), + 1931: uint16(567), + 1932: uint16(1625), + 1933: uint16(1297), + 1934: uint16(119), + 1935: uint16(119), + 1936: uint16(439), + 1937: uint16(367), + 1938: uint16(1317), + 1939: uint16(1295), + 1940: uint16(1624), + 1941: uint16(526), + 1942: uint16(120), + 1943: uint16(440), + 1944: uint16(451), + 1945: uint16(577), + 1946: uint16(451), + 1947: uint16(1594), + 1948: uint16(309), + 1949: uint16(1028), + 1950: uint16(310), + 1951: uint16(373), + 1952: uint16(266), + 1953: uint16(267), + 1954: uint16(457), + 1955: uint16(1580), + 1956: uint16(1579), + 1957: uint16(443), + 1958: uint16(138), + 1959: uint16(1394), + 1960: uint16(552), + 1961: uint16(1393), + 1962: uint16(11), + 1963: uint16(1483), + 1964: uint16(384), + 1965: uint16(115), + 1966: uint16(317), + 1967: uint16(1350), + 1968: uint16(109), + 1969: uint16(536), + 1970: uint16(42), + 1971: uint16(579), + 1972: uint16(382), + 1973: uint16(214), + 1974: uint16(1349), + 1975: uint16(388), + 1976: uint16(1198), + 1977: uint16(389), + 1978: uint16(275), + 1979: uint16(277), + 1980: uint16(278), + 1981: uint16(1028), + 1982: uint16(1028), + 1983: uint16(1030), + 1984: uint16(1031), + 1985: uint16(35), + 1986: uint16(580), + 1987: uint16(1265), + 1988: uint16(414), + 1989: uint16(1260), + 1990: uint16(170), + 1991: uint16(415), + 1992: uint16(183), + 1993: uint16(1534), + 1994: uint16(1535), + 1995: uint16(1533), + 1996: uint16(171), + 1997: uint16(154), + 1998: uint16(307), + 1999: uint16(1532), + 2000: uint16(846), + 2001: uint16(223), + 2002: uint16(224), + 2003: uint16(88), + 2004: uint16(452), + 2005: uint16(215), + 2006: uint16(172), + 2007: uint16(321), + 2008: uint16(234), + 2009: uint16(1102), + 2010: uint16(152), + 2011: uint16(1188), + 2012: uint16(1100), + 2013: uint16(329), + 2014: uint16(185), + 2015: uint16(174), + 2016: uint16(1223), + 2017: uint16(925), + 2018: uint16(187), + 2019: uint16(241), + 2020: uint16(337), + 2021: uint16(244), + 2022: uint16(1116), + 2023: uint16(192), + 2024: uint16(175), + 2025: uint16(176), + 2026: uint16(424), + 2027: uint16(426), + 2028: uint16(97), + 2029: uint16(194), + 2030: uint16(98), + 2031: uint16(99), + 2032: uint16(100), + 2033: uint16(177), + 2034: uint16(1119), + 2035: uint16(1115), + 2036: uint16(246), + 2037: uint16(247), + 2038: uint16(161), + 2039: uint16(24), + 2040: uint16(248), + 2041: uint16(348), + 2042: uint16(1238), + 2043: uint16(264), + 2044: uint16(1108), + 2045: uint16(250), + 2046: uint16(495), + 2047: uint16(199), + 2048: uint16(198), + 2049: uint16(15), + 2050: uint16(861), + 2051: uint16(500), + 2052: uint16(369), + 2053: uint16(254), + 2054: uint16(504), + 2055: uint16(509), + 2056: uint16(512), + 2057: uint16(200), + 2058: uint16(102), + 2059: uint16(25), + 2060: uint16(179), + 2061: uint16(361), + 2062: uint16(26), + 2063: uint16(364), + 2064: uint16(104), + 2065: uint16(891), + 2066: uint16(308), + 2067: uint16(162), + 2068: uint16(105), + 2069: uint16(904), + 2070: uint16(520), + 2071: uint16(106), + 2072: uint16(1185), + 2073: uint16(1069), + 2074: uint16(1155), + 2075: uint16(17), + 2076: uint16(228), + 2077: uint16(27), + 2078: uint16(1154), + 2079: uint16(283), + 2080: uint16(285), + 2081: uint16(263), + 2082: uint16(978), + 2083: uint16(202), + 2084: uint16(972), + 2085: uint16(123), + 2086: uint16(28), + 2087: uint16(1175), + 2088: uint16(29), + 2089: uint16(30), + 2090: uint16(1179), + 2091: uint16(1171), + 2092: uint16(31), + 2093: uint16(1173), + 2094: uint16(1160), + 2095: uint16(41), + 2096: uint16(32), + 2097: uint16(206), + 2098: uint16(548), + 2099: uint16(33), + 2100: uint16(110), + 2101: uint16(1178), + 2102: uint16(1083), + 2103: uint16(8), + 2104: uint16(112), + 2105: uint16(1070), + 2106: uint16(113), + 2107: uint16(1068), + 2108: uint16(1072), + 2109: uint16(34), + 2110: uint16(1073), + 2111: uint16(560), + 2112: uint16(1125), + 2113: uint16(269), + 2114: uint16(1124), + 2115: uint16(270), + 2116: uint16(36), + 2117: uint16(18), + 2118: uint16(1194), + 2119: uint16(1033), + 2120: uint16(873), + 2121: uint16(151), + 2122: uint16(122), + 2123: uint16(37), + 2124: uint16(393), + 2125: uint16(271), + 2126: uint16(272), + 2127: uint16(572), + 2128: uint16(181), + 2129: uint16(1193), + 2130: uint16(1256), + 2131: uint16(1256), + 2132: uint16(1256), + 2133: uint16(935), + 2134: uint16(1256), + 2135: uint16(1256), + 2136: uint16(1256), + 2137: uint16(1256), + 2138: uint16(1256), + 2139: uint16(1256), + 2140: uint16(1256), + 2141: uint16(1617), +} +var _yy_lookahead = [2328]uint16{ + 0: uint16(194), + 1: uint16(276), + 2: uint16(277), + 3: uint16(278), + 4: uint16(216), + 5: uint16(194), + 6: uint16(194), + 7: uint16(217), + 8: uint16(194), + 9: uint16(194), + 10: uint16(194), + 11: uint16(194), + 12: uint16(224), + 13: uint16(194), + 14: uint16(194), + 15: uint16(276), + 16: uint16(277), + 17: uint16(278), + 18: uint16(204), 19: uint16(19), - 20: uint16(219), - 21: uint16(233), - 22: uint16(216), - 23: uint16(216), - 24: uint16(217), - 25: uint16(216), - 26: uint16(217), - 27: uint16(193), - 28: uint16(295), - 29: uint16(216), - 30: uint16(217), + 20: uint16(206), + 21: uint16(202), + 22: uint16(297), + 23: uint16(217), + 24: uint16(218), + 25: uint16(205), + 26: uint16(207), + 27: uint16(217), + 28: uint16(205), + 29: uint16(217), + 30: uint16(218), 31: uint16(31), - 32: uint16(193), - 33: uint16(216), + 32: uint16(217), + 33: uint16(218), 34: uint16(217), - 35: uint16(193), - 36: uint16(228), - 37: uint16(213), - 38: uint16(230), + 35: uint16(218), + 36: uint16(29), + 37: uint16(217), + 38: uint16(218), 39: uint16(39), - 40: uint16(206), - 41: uint16(216), - 42: uint16(217), + 40: uint16(33), + 41: uint16(217), + 42: uint16(220), 43: uint16(43), 44: uint16(44), 45: uint16(45), @@ -154434,31 +155938,31 @@ var _yy_lookahead = [2285]uint16{ 55: uint16(55), 56: uint16(56), 57: uint16(57), - 58: uint16(193), + 58: uint16(312), 59: uint16(19), - 60: uint16(185), - 61: uint16(186), - 62: uint16(187), - 63: uint16(188), - 64: uint16(189), - 65: uint16(190), - 66: uint16(253), - 67: uint16(274), - 68: uint16(275), - 69: uint16(276), - 70: uint16(195), - 71: uint16(193), - 72: uint16(197), - 73: uint16(193), - 74: uint16(261), - 75: uint16(274), - 76: uint16(275), - 77: uint16(276), - 78: uint16(253), - 79: uint16(204), - 80: uint16(238), - 81: uint16(204), - 82: uint16(81), + 60: uint16(240), + 61: uint16(241), + 62: uint16(316), + 63: uint16(240), + 64: uint16(241), + 65: uint16(194), + 66: uint16(46), + 67: uint16(47), + 68: uint16(48), + 69: uint16(49), + 70: uint16(22), + 71: uint16(254), + 72: uint16(65), + 73: uint16(253), + 74: uint16(254), + 75: uint16(255), + 76: uint16(253), + 77: uint16(194), + 78: uint16(255), + 79: uint16(194), + 80: uint16(263), + 81: uint16(258), + 82: uint16(259), 83: uint16(43), 84: uint16(44), 85: uint16(45), @@ -154474,10 +155978,10 @@ var _yy_lookahead = [2285]uint16{ 95: uint16(55), 96: uint16(56), 97: uint16(57), - 98: uint16(274), - 99: uint16(275), - 100: uint16(276), - 101: uint16(262), + 98: uint16(276), + 99: uint16(277), + 100: uint16(278), + 101: uint16(285), 102: uint16(102), 103: uint16(103), 104: uint16(104), @@ -154490,34 +155994,34 @@ var _yy_lookahead = [2285]uint16{ 111: uint16(111), 112: uint16(112), 113: uint16(113), - 114: uint16(239), - 115: uint16(240), - 116: uint16(239), - 117: uint16(240), - 118: uint16(210), - 119: uint16(211), - 120: uint16(212), - 121: uint16(314), - 122: uint16(315), - 123: uint16(314), - 124: uint16(59), - 125: uint16(316), + 114: uint16(59), + 115: uint16(186), + 116: uint16(187), + 117: uint16(188), + 118: uint16(189), + 119: uint16(190), + 120: uint16(191), + 121: uint16(310), + 122: uint16(239), + 123: uint16(317), + 124: uint16(318), + 125: uint16(196), 126: uint16(86), - 127: uint16(252), + 127: uint16(198), 128: uint16(88), - 129: uint16(252), + 129: uint16(317), 130: uint16(19), - 131: uint16(314), - 132: uint16(315), - 133: uint16(256), - 134: uint16(257), - 135: uint16(113), + 131: uint16(319), + 132: uint16(317), + 133: uint16(318), + 134: uint16(205), + 135: uint16(264), 136: uint16(25), - 137: uint16(72), - 138: uint16(296), - 139: uint16(138), - 140: uint16(139), - 141: uint16(266), + 137: uint16(211), + 138: uint16(212), + 139: uint16(213), + 140: uint16(205), + 141: uint16(121), 142: uint16(102), 143: uint16(103), 144: uint16(104), @@ -154545,50 +156049,50 @@ var _yy_lookahead = [2285]uint16{ 166: uint16(55), 167: uint16(56), 168: uint16(57), - 169: uint16(81), - 170: uint16(292), - 171: uint16(59), - 172: uint16(292), - 173: uint16(298), - 174: uint16(108), - 175: uint16(109), - 176: uint16(110), - 177: uint16(111), - 178: uint16(112), - 179: uint16(113), + 169: uint16(240), + 170: uint16(241), + 171: uint16(116), + 172: uint16(117), + 173: uint16(118), + 174: uint16(119), + 175: uint16(240), + 176: uint16(241), + 177: uint16(122), + 178: uint16(123), + 179: uint16(124), 180: uint16(69), - 181: uint16(116), - 182: uint16(117), - 183: uint16(118), - 184: uint16(72), + 181: uint16(298), + 182: uint16(253), + 183: uint16(194), + 184: uint16(255), 185: uint16(106), 186: uint16(107), - 187: uint16(193), - 188: uint16(111), - 189: uint16(112), - 190: uint16(113), + 187: uint16(132), + 188: uint16(253), + 189: uint16(141), + 190: uint16(255), 191: uint16(54), 192: uint16(55), 193: uint16(56), 194: uint16(57), 195: uint16(58), - 196: uint16(102), - 197: uint16(103), - 198: uint16(104), - 199: uint16(105), - 200: uint16(106), - 201: uint16(107), - 202: uint16(108), - 203: uint16(109), - 204: uint16(110), - 205: uint16(111), - 206: uint16(112), - 207: uint16(113), - 208: uint16(120), - 209: uint16(25), - 210: uint16(216), - 211: uint16(217), - 212: uint16(145), + 196: uint16(207), + 197: uint16(268), + 198: uint16(102), + 199: uint16(103), + 200: uint16(104), + 201: uint16(105), + 202: uint16(106), + 203: uint16(107), + 204: uint16(108), + 205: uint16(109), + 206: uint16(110), + 207: uint16(111), + 208: uint16(112), + 209: uint16(113), + 210: uint16(214), + 211: uint16(128), + 212: uint16(129), 213: uint16(102), 214: uint16(103), 215: uint16(104), @@ -154601,13 +156105,13 @@ var _yy_lookahead = [2285]uint16{ 222: uint16(111), 223: uint16(112), 224: uint16(113), - 225: uint16(231), - 226: uint16(138), - 227: uint16(139), - 228: uint16(116), - 229: uint16(117), - 230: uint16(118), - 231: uint16(164), + 225: uint16(134), + 226: uint16(25), + 227: uint16(136), + 228: uint16(137), + 229: uint16(300), + 230: uint16(165), + 231: uint16(166), 232: uint16(153), 233: uint16(19), 234: uint16(155), @@ -154627,12 +156131,12 @@ var _yy_lookahead = [2285]uint16{ 248: uint16(111), 249: uint16(112), 250: uint16(113), - 251: uint16(128), - 252: uint16(129), - 253: uint16(46), - 254: uint16(47), - 255: uint16(48), - 256: uint16(49), + 251: uint16(108), + 252: uint16(109), + 253: uint16(110), + 254: uint16(111), + 255: uint16(112), + 256: uint16(113), 257: uint16(43), 258: uint16(44), 259: uint16(45), @@ -154648,15 +156152,15 @@ var _yy_lookahead = [2285]uint16{ 269: uint16(55), 270: uint16(56), 271: uint16(57), - 272: uint16(216), - 273: uint16(193), - 274: uint16(25), - 275: uint16(59), - 276: uint16(193), + 272: uint16(276), + 273: uint16(277), + 274: uint16(278), + 275: uint16(113), + 276: uint16(194), 277: uint16(19), - 278: uint16(165), - 279: uint16(166), - 280: uint16(193), + 278: uint16(22), + 279: uint16(23), + 280: uint16(194), 281: uint16(67), 282: uint16(24), 283: uint16(102), @@ -154671,12 +156175,12 @@ var _yy_lookahead = [2285]uint16{ 292: uint16(111), 293: uint16(112), 294: uint16(113), - 295: uint16(73), - 296: uint16(216), - 297: uint16(217), - 298: uint16(59), - 299: uint16(216), - 300: uint16(217), + 295: uint16(220), + 296: uint16(250), + 297: uint16(59), + 298: uint16(252), + 299: uint16(217), + 300: uint16(218), 301: uint16(43), 302: uint16(44), 303: uint16(45), @@ -154704,38 +156208,38 @@ var _yy_lookahead = [2285]uint16{ 325: uint16(111), 326: uint16(112), 327: uint16(113), - 328: uint16(121), - 329: uint16(145), - 330: uint16(59), - 331: uint16(193), - 332: uint16(116), - 333: uint16(117), - 334: uint16(118), - 335: uint16(119), - 336: uint16(273), - 337: uint16(204), - 338: uint16(122), - 339: uint16(123), - 340: uint16(124), + 328: uint16(106), + 329: uint16(107), + 330: uint16(108), + 331: uint16(109), + 332: uint16(110), + 333: uint16(111), + 334: uint16(112), + 335: uint16(113), + 336: uint16(254), + 337: uint16(59), + 338: uint16(205), + 339: uint16(138), + 340: uint16(139), 341: uint16(19), 342: uint16(20), - 343: uint16(134), + 343: uint16(194), 344: uint16(22), - 345: uint16(136), - 346: uint16(137), - 347: uint16(19), - 348: uint16(132), - 349: uint16(127), - 350: uint16(128), - 351: uint16(129), - 352: uint16(24), - 353: uint16(22), - 354: uint16(23), - 355: uint16(116), - 356: uint16(117), - 357: uint16(118), + 345: uint16(263), + 346: uint16(22), + 347: uint16(23), + 348: uint16(231), + 349: uint16(25), + 350: uint16(72), + 351: uint16(276), + 352: uint16(277), + 353: uint16(278), + 354: uint16(116), + 355: uint16(117), + 356: uint16(118), + 357: uint16(101), 358: uint16(36), - 359: uint16(193), + 359: uint16(76), 360: uint16(102), 361: uint16(103), 362: uint16(104), @@ -154748,37 +156252,37 @@ var _yy_lookahead = [2285]uint16{ 369: uint16(111), 370: uint16(112), 371: uint16(113), - 372: uint16(239), + 372: uint16(89), 373: uint16(240), - 374: uint16(311), - 375: uint16(312), - 376: uint16(215), - 377: uint16(106), - 378: uint16(107), - 379: uint16(241), + 374: uint16(241), + 375: uint16(92), + 376: uint16(73), + 377: uint16(194), + 378: uint16(194), + 379: uint16(73), 380: uint16(19), 381: uint16(59), - 382: uint16(216), - 383: uint16(217), - 384: uint16(223), - 385: uint16(252), - 386: uint16(115), - 387: uint16(116), - 388: uint16(117), - 389: uint16(118), - 390: uint16(151), - 391: uint16(120), - 392: uint16(26), + 382: uint16(188), + 383: uint16(189), + 384: uint16(190), + 385: uint16(191), + 386: uint16(253), + 387: uint16(81), + 388: uint16(255), + 389: uint16(151), + 390: uint16(196), + 391: uint16(25), + 392: uint16(198), 393: uint16(71), - 394: uint16(193), - 395: uint16(308), - 396: uint16(309), - 397: uint16(193), - 398: uint16(149), - 399: uint16(128), - 400: uint16(313), - 401: uint16(216), - 402: uint16(269), + 394: uint16(116), + 395: uint16(117), + 396: uint16(118), + 397: uint16(311), + 398: uint16(312), + 399: uint16(205), + 400: uint16(217), + 401: uint16(218), + 402: uint16(316), 403: uint16(81), 404: uint16(43), 405: uint16(44), @@ -154795,50 +156299,50 @@ var _yy_lookahead = [2285]uint16{ 416: uint16(55), 417: uint16(56), 418: uint16(57), - 419: uint16(253), - 420: uint16(216), - 421: uint16(217), + 419: uint16(270), + 420: uint16(22), + 421: uint16(23), 422: uint16(100), - 423: uint16(95), - 424: uint16(153), - 425: uint16(59), - 426: uint16(155), - 427: uint16(261), + 423: uint16(25), + 424: uint16(59), + 425: uint16(101), + 426: uint16(138), + 427: uint16(139), 428: uint16(106), 429: uint16(107), - 430: uint16(25), - 431: uint16(193), - 432: uint16(101), - 433: uint16(193), - 434: uint16(193), - 435: uint16(231), + 430: uint16(127), + 431: uint16(128), + 432: uint16(129), + 433: uint16(127), + 434: uint16(240), + 435: uint16(241), 436: uint16(114), - 437: uint16(25), + 437: uint16(254), 438: uint16(116), 439: uint16(117), 440: uint16(118), - 441: uint16(113), - 442: uint16(304), + 441: uint16(76), + 442: uint16(76), 443: uint16(121), - 444: uint16(193), - 445: uint16(204), - 446: uint16(59), - 447: uint16(119), - 448: uint16(120), - 449: uint16(121), - 450: uint16(122), - 451: uint16(123), - 452: uint16(124), - 453: uint16(125), - 454: uint16(216), - 455: uint16(217), - 456: uint16(193), - 457: uint16(216), - 458: uint16(217), - 459: uint16(131), + 444: uint16(138), + 445: uint16(139), + 446: uint16(263), + 447: uint16(253), + 448: uint16(264), + 449: uint16(255), + 450: uint16(205), + 451: uint16(275), + 452: uint16(87), + 453: uint16(19), + 454: uint16(89), + 455: uint16(89), + 456: uint16(194), + 457: uint16(92), + 458: uint16(92), + 459: uint16(199), 460: uint16(138), 461: uint16(139), - 462: uint16(230), + 462: uint16(268), 463: uint16(102), 464: uint16(103), 465: uint16(104), @@ -154856,37 +156360,37 @@ var _yy_lookahead = [2285]uint16{ 477: uint16(155), 478: uint16(156), 479: uint16(157), - 480: uint16(239), - 481: uint16(240), - 482: uint16(116), - 483: uint16(117), - 484: uint16(118), - 485: uint16(76), - 486: uint16(193), - 487: uint16(23), + 480: uint16(81), + 481: uint16(116), + 482: uint16(117), + 483: uint16(118), + 484: uint16(129), + 485: uint16(240), + 486: uint16(241), + 487: uint16(224), 488: uint16(19), - 489: uint16(25), - 490: uint16(22), - 491: uint16(253), + 489: uint16(226), + 490: uint16(314), + 491: uint16(315), 492: uint16(23), - 493: uint16(252), - 494: uint16(253), - 495: uint16(108), - 496: uint16(87), - 497: uint16(204), - 498: uint16(89), - 499: uint16(261), - 500: uint16(198), - 501: uint16(92), - 502: uint16(261), - 503: uint16(116), - 504: uint16(117), - 505: uint16(118), - 506: uint16(193), - 507: uint16(306), - 508: uint16(307), - 509: uint16(216), - 510: uint16(217), + 493: uint16(25), + 494: uint16(300), + 495: uint16(59), + 496: uint16(22), + 497: uint16(234), + 498: uint16(253), + 499: uint16(101), + 500: uint16(255), + 501: uint16(236), + 502: uint16(237), + 503: uint16(26), + 504: uint16(194), + 505: uint16(183), + 506: uint16(194), + 507: uint16(152), + 508: uint16(72), + 509: uint16(22), + 510: uint16(145), 511: uint16(150), 512: uint16(43), 513: uint16(44), @@ -154903,34 +156407,34 @@ var _yy_lookahead = [2285]uint16{ 524: uint16(55), 525: uint16(56), 526: uint16(57), - 527: uint16(59), - 528: uint16(193), - 529: uint16(216), - 530: uint16(217), + 527: uint16(217), + 528: uint16(218), + 529: uint16(217), + 530: uint16(218), 531: uint16(19), - 532: uint16(239), - 533: uint16(240), - 534: uint16(283), + 532: uint16(189), + 533: uint16(59), + 534: uint16(191), 535: uint16(23), - 536: uint16(106), - 537: uint16(107), - 538: uint16(108), - 539: uint16(109), - 540: uint16(110), - 541: uint16(111), - 542: uint16(112), - 543: uint16(113), - 544: uint16(73), - 545: uint16(252), - 546: uint16(253), - 547: uint16(142), - 548: uint16(308), - 549: uint16(309), - 550: uint16(138), - 551: uint16(139), - 552: uint16(81), - 553: uint16(313), - 554: uint16(145), + 536: uint16(59), + 537: uint16(138), + 538: uint16(139), + 539: uint16(196), + 540: uint16(135), + 541: uint16(198), + 542: uint16(232), + 543: uint16(283), + 544: uint16(232), + 545: uint16(140), + 546: uint16(59), + 547: uint16(287), + 548: uint16(205), + 549: uint16(275), + 550: uint16(116), + 551: uint16(205), + 552: uint16(116), + 553: uint16(117), + 554: uint16(118), 555: uint16(43), 556: uint16(44), 557: uint16(45), @@ -154946,7 +156450,7 @@ var _yy_lookahead = [2285]uint16{ 567: uint16(55), 568: uint16(56), 569: uint16(57), - 570: uint16(307), + 570: uint16(194), 571: uint16(102), 572: uint16(103), 573: uint16(104), @@ -154959,37 +156463,37 @@ var _yy_lookahead = [2285]uint16{ 580: uint16(111), 581: uint16(112), 582: uint16(113), - 583: uint16(281), - 584: uint16(116), - 585: uint16(117), - 586: uint16(118), - 587: uint16(285), - 588: uint16(23), - 589: uint16(193), - 590: uint16(25), - 591: uint16(119), - 592: uint16(59), - 593: uint16(193), - 594: uint16(122), - 595: uint16(123), - 596: uint16(124), - 597: uint16(59), - 598: uint16(127), - 599: uint16(203), + 583: uint16(240), + 584: uint16(241), + 585: uint16(194), + 586: uint16(240), + 587: uint16(241), + 588: uint16(314), + 589: uint16(315), + 590: uint16(116), + 591: uint16(117), + 592: uint16(118), + 593: uint16(116), + 594: uint16(117), + 595: uint16(118), + 596: uint16(253), + 597: uint16(194), + 598: uint16(255), + 599: uint16(253), 600: uint16(59), - 601: uint16(205), + 601: uint16(255), 602: uint16(19), - 603: uint16(268), - 604: uint16(132), - 605: uint16(25), + 603: uint16(116), + 604: uint16(117), + 605: uint16(118), 606: uint16(23), 607: uint16(22), - 608: uint16(193), - 609: uint16(138), - 610: uint16(139), - 611: uint16(249), - 612: uint16(204), - 613: uint16(251), + 608: uint16(217), + 609: uint16(218), + 610: uint16(142), + 611: uint16(268), + 612: uint16(205), + 613: uint16(275), 614: uint16(102), 615: uint16(103), 616: uint16(104), @@ -155018,29 +156522,29 @@ var _yy_lookahead = [2285]uint16{ 639: uint16(56), 640: uint16(57), 641: uint16(19), - 642: uint16(22), - 643: uint16(23), + 642: uint16(194), + 643: uint16(300), 644: uint16(59), 645: uint16(23), - 646: uint16(25), - 647: uint16(239), - 648: uint16(240), - 649: uint16(116), - 650: uint16(117), - 651: uint16(118), - 652: uint16(193), - 653: uint16(11), - 654: uint16(116), - 655: uint16(117), - 656: uint16(118), - 657: uint16(116), + 646: uint16(119), + 647: uint16(240), + 648: uint16(241), + 649: uint16(122), + 650: uint16(123), + 651: uint16(124), + 652: uint16(314), + 653: uint16(315), + 654: uint16(194), + 655: uint16(236), + 656: uint16(237), + 657: uint16(194), 658: uint16(117), - 659: uint16(118), - 660: uint16(252), - 661: uint16(269), - 662: uint16(22), - 663: uint16(193), - 664: uint16(15), + 659: uint16(132), + 660: uint16(253), + 661: uint16(81), + 662: uint16(255), + 663: uint16(205), + 664: uint16(59), 665: uint16(43), 666: uint16(44), 667: uint16(45), @@ -155056,11 +156560,11 @@ var _yy_lookahead = [2285]uint16{ 677: uint16(55), 678: uint16(56), 679: uint16(57), - 680: uint16(273), - 681: uint16(143), - 682: uint16(193), - 683: uint16(118), - 684: uint16(143), + 680: uint16(217), + 681: uint16(218), + 682: uint16(194), + 683: uint16(194), + 684: uint16(194), 685: uint16(102), 686: uint16(103), 687: uint16(104), @@ -155073,33 +156577,33 @@ var _yy_lookahead = [2285]uint16{ 694: uint16(111), 695: uint16(112), 696: uint16(113), - 697: uint16(76), - 698: uint16(118), - 699: uint16(59), - 700: uint16(241), + 697: uint16(294), + 698: uint16(240), + 699: uint16(241), + 700: uint16(120), 701: uint16(116), 702: uint16(117), 703: uint16(118), - 704: uint16(304), - 705: uint16(216), + 704: uint16(59), + 705: uint16(194), 706: uint16(217), - 707: uint16(292), - 708: uint16(143), - 709: uint16(60), - 710: uint16(89), - 711: uint16(241), + 707: uint16(218), + 708: uint16(211), + 709: uint16(212), + 710: uint16(213), + 711: uint16(253), 712: uint16(19), - 713: uint16(92), - 714: uint16(193), - 715: uint16(193), + 713: uint16(255), + 714: uint16(194), + 715: uint16(19), 716: uint16(23), - 717: uint16(22), - 718: uint16(311), - 719: uint16(312), - 720: uint16(231), - 721: uint16(101), - 722: uint16(22), - 723: uint16(143), + 717: uint16(254), + 718: uint16(138), + 719: uint16(139), + 720: uint16(24), + 721: uint16(232), + 722: uint16(117), + 723: uint16(194), 724: uint16(102), 725: uint16(103), 726: uint16(104), @@ -155128,29 +156632,29 @@ var _yy_lookahead = [2285]uint16{ 749: uint16(56), 750: uint16(57), 751: uint16(19), - 752: uint16(193), - 753: uint16(193), - 754: uint16(59), + 752: uint16(264), + 753: uint16(108), + 754: uint16(76), 755: uint16(23), - 756: uint16(116), - 757: uint16(117), - 758: uint16(118), - 759: uint16(59), - 760: uint16(201), - 761: uint16(21), - 762: uint16(241), - 763: uint16(304), - 764: uint16(193), - 765: uint16(206), - 766: uint16(127), - 767: uint16(128), - 768: uint16(129), - 769: uint16(193), - 770: uint16(128), - 771: uint16(129), - 772: uint16(235), - 773: uint16(236), - 774: uint16(304), + 756: uint16(127), + 757: uint16(128), + 758: uint16(129), + 759: uint16(311), + 760: uint16(312), + 761: uint16(116), + 762: uint16(117), + 763: uint16(118), + 764: uint16(316), + 765: uint16(87), + 766: uint16(306), + 767: uint16(89), + 768: uint16(308), + 769: uint16(194), + 770: uint16(92), + 771: uint16(22), + 772: uint16(59), + 773: uint16(194), + 774: uint16(22), 775: uint16(43), 776: uint16(44), 777: uint16(45), @@ -155166,11 +156670,11 @@ var _yy_lookahead = [2285]uint16{ 787: uint16(55), 788: uint16(56), 789: uint16(57), - 790: uint16(22), - 791: uint16(193), - 792: uint16(216), - 793: uint16(217), - 794: uint16(193), + 790: uint16(194), + 791: uint16(95), + 792: uint16(217), + 793: uint16(218), + 794: uint16(265), 795: uint16(102), 796: uint16(103), 797: uint16(104), @@ -155183,33 +156687,33 @@ var _yy_lookahead = [2285]uint16{ 804: uint16(111), 805: uint16(112), 806: uint16(113), - 807: uint16(231), - 808: uint16(193), - 809: uint16(193), - 810: uint16(193), - 811: uint16(116), - 812: uint16(117), - 813: uint16(118), - 814: uint16(216), - 815: uint16(217), - 816: uint16(116), - 817: uint16(117), - 818: uint16(118), - 819: uint16(226), - 820: uint16(80), - 821: uint16(193), + 807: uint16(232), + 808: uint16(59), + 809: uint16(113), + 810: uint16(25), + 811: uint16(59), + 812: uint16(194), + 813: uint16(217), + 814: uint16(218), + 815: uint16(119), + 816: uint16(120), + 817: uint16(121), + 818: uint16(122), + 819: uint16(123), + 820: uint16(124), + 821: uint16(125), 822: uint16(19), - 823: uint16(235), - 824: uint16(236), - 825: uint16(304), + 823: uint16(145), + 824: uint16(194), + 825: uint16(194), 826: uint16(23), - 827: uint16(211), - 828: uint16(212), - 829: uint16(231), - 830: uint16(204), - 831: uint16(216), - 832: uint16(217), - 833: uint16(205), + 827: uint16(131), + 828: uint16(232), + 829: uint16(116), + 830: uint16(117), + 831: uint16(118), + 832: uint16(35), + 833: uint16(194), 834: uint16(102), 835: uint16(103), 836: uint16(104), @@ -155238,29 +156742,29 @@ var _yy_lookahead = [2285]uint16{ 859: uint16(56), 860: uint16(57), 861: uint16(19), - 862: uint16(193), - 863: uint16(123), - 864: uint16(76), - 865: uint16(239), - 866: uint16(240), - 867: uint16(193), - 868: uint16(253), - 869: uint16(239), - 870: uint16(240), - 871: uint16(239), - 872: uint16(240), - 873: uint16(244), - 874: uint16(106), - 875: uint16(107), - 876: uint16(193), - 877: uint16(89), - 878: uint16(252), - 879: uint16(193), - 880: uint16(92), - 881: uint16(59), - 882: uint16(252), - 883: uint16(254), - 884: uint16(252), + 862: uint16(194), + 863: uint16(66), + 864: uint16(194), + 865: uint16(116), + 866: uint16(117), + 867: uint16(118), + 868: uint16(116), + 869: uint16(117), + 870: uint16(118), + 871: uint16(74), + 872: uint16(242), + 873: uint16(294), + 874: uint16(194), + 875: uint16(194), + 876: uint16(206), + 877: uint16(23), + 878: uint16(194), + 879: uint16(25), + 880: uint16(194), + 881: uint16(111), + 882: uint16(112), + 883: uint16(113), + 884: uint16(25), 885: uint16(43), 886: uint16(44), 887: uint16(45), @@ -155276,11 +156780,11 @@ var _yy_lookahead = [2285]uint16{ 897: uint16(55), 898: uint16(56), 899: uint16(57), - 900: uint16(284), - 901: uint16(161), - 902: uint16(216), + 900: uint16(24), + 901: uint16(194), + 902: uint16(194), 903: uint16(217), - 904: uint16(193), + 904: uint16(218), 905: uint16(102), 906: uint16(103), 907: uint16(104), @@ -155293,33 +156797,33 @@ var _yy_lookahead = [2285]uint16{ 914: uint16(111), 915: uint16(112), 916: uint16(113), - 917: uint16(231), - 918: uint16(193), - 919: uint16(244), - 920: uint16(187), - 921: uint16(188), - 922: uint16(189), - 923: uint16(190), - 924: uint16(7), - 925: uint16(8), - 926: uint16(9), - 927: uint16(309), - 928: uint16(195), - 929: uint16(254), - 930: uint16(197), - 931: uint16(313), + 917: uint16(241), + 918: uint16(232), + 919: uint16(194), + 920: uint16(212), + 921: uint16(213), + 922: uint16(242), + 923: uint16(242), + 924: uint16(217), + 925: uint16(218), + 926: uint16(242), + 927: uint16(130), + 928: uint16(11), + 929: uint16(253), + 930: uint16(194), + 931: uint16(255), 932: uint16(19), - 933: uint16(127), - 934: uint16(128), - 935: uint16(129), - 936: uint16(262), - 937: uint16(204), - 938: uint16(22), - 939: uint16(117), - 940: uint16(24), - 941: uint16(216), + 933: uint16(265), + 934: uint16(149), + 935: uint16(59), + 936: uint16(306), + 937: uint16(194), + 938: uint16(308), + 939: uint16(232), + 940: uint16(309), + 941: uint16(310), 942: uint16(217), - 943: uint16(273), + 943: uint16(218), 944: uint16(102), 945: uint16(103), 946: uint16(104), @@ -155347,36 +156851,36 @@ var _yy_lookahead = [2285]uint16{ 968: uint16(55), 969: uint16(56), 970: uint16(57), - 971: uint16(193), - 972: uint16(239), - 973: uint16(240), - 974: uint16(193), - 975: uint16(59), + 971: uint16(194), + 972: uint16(194), + 973: uint16(59), + 974: uint16(194), + 975: uint16(239), 976: uint16(19), - 977: uint16(188), - 978: uint16(253), - 979: uint16(190), - 980: uint16(193), - 981: uint16(311), - 982: uint16(312), - 983: uint16(16), - 984: uint16(195), - 985: uint16(252), - 986: uint16(197), - 987: uint16(193), - 988: uint16(19), - 989: uint16(301), - 990: uint16(302), - 991: uint16(135), - 992: uint16(193), - 993: uint16(204), - 994: uint16(216), + 977: uint16(194), + 978: uint16(25), + 979: uint16(254), + 980: uint16(303), + 981: uint16(304), + 982: uint16(23), + 983: uint16(194), + 984: uint16(25), + 985: uint16(126), + 986: uint16(306), + 987: uint16(306), + 988: uint16(308), + 989: uint16(308), + 990: uint16(306), + 991: uint16(271), + 992: uint16(308), + 993: uint16(117), + 994: uint16(286), 995: uint16(217), - 996: uint16(140), - 997: uint16(216), - 998: uint16(217), - 999: uint16(266), - 1000: uint16(204), + 996: uint16(218), + 997: uint16(217), + 998: uint16(218), + 999: uint16(194), + 1000: uint16(194), 1001: uint16(159), 1002: uint16(45), 1003: uint16(46), @@ -155403,38 +156907,38 @@ var _yy_lookahead = [2285]uint16{ 1024: uint16(111), 1025: uint16(112), 1026: uint16(113), - 1027: uint16(12), + 1027: uint16(59), 1028: uint16(239), - 1029: uint16(240), - 1030: uint16(193), - 1031: uint16(298), - 1032: uint16(238), - 1033: uint16(117), - 1034: uint16(253), - 1035: uint16(239), + 1029: uint16(194), + 1030: uint16(116), + 1031: uint16(117), + 1032: uint16(118), + 1033: uint16(260), + 1034: uint16(254), + 1035: uint16(194), 1036: uint16(240), - 1037: uint16(238), - 1038: uint16(259), - 1039: uint16(260), - 1040: uint16(193), - 1041: uint16(252), - 1042: uint16(27), - 1043: uint16(193), - 1044: uint16(77), - 1045: uint16(193), - 1046: uint16(79), - 1047: uint16(204), - 1048: uint16(252), - 1049: uint16(262), - 1050: uint16(193), - 1051: uint16(299), - 1052: uint16(300), - 1053: uint16(193), - 1054: uint16(100), - 1055: uint16(266), - 1056: uint16(278), - 1057: uint16(42), - 1058: uint16(204), + 1037: uint16(241), + 1038: uint16(194), + 1039: uint16(233), + 1040: uint16(205), + 1041: uint16(240), + 1042: uint16(241), + 1043: uint16(205), + 1044: uint16(239), + 1045: uint16(128), + 1046: uint16(129), + 1047: uint16(270), + 1048: uint16(265), + 1049: uint16(253), + 1050: uint16(194), + 1051: uint16(255), + 1052: uint16(217), + 1053: uint16(218), + 1054: uint16(253), + 1055: uint16(194), + 1056: uint16(255), + 1057: uint16(143), + 1058: uint16(280), 1059: uint16(102), 1060: uint16(103), 1061: uint16(104), @@ -155447,51 +156951,51 @@ var _yy_lookahead = [2285]uint16{ 1068: uint16(111), 1069: uint16(112), 1070: uint16(113), - 1071: uint16(117), + 1071: uint16(118), 1072: uint16(159), - 1073: uint16(216), - 1074: uint16(217), - 1075: uint16(121), - 1076: uint16(216), - 1077: uint16(217), - 1078: uint16(63), - 1079: uint16(193), - 1080: uint16(193), - 1081: uint16(193), - 1082: uint16(239), - 1083: uint16(240), - 1084: uint16(115), - 1085: uint16(116), - 1086: uint16(193), - 1087: uint16(298), - 1088: uint16(73), - 1089: uint16(240), - 1090: uint16(238), - 1091: uint16(231), + 1073: uint16(217), + 1074: uint16(218), + 1075: uint16(240), + 1076: uint16(241), + 1077: uint16(118), + 1078: uint16(240), + 1079: uint16(241), + 1080: uint16(194), + 1081: uint16(194), + 1082: uint16(194), + 1083: uint16(239), + 1084: uint16(116), + 1085: uint16(117), + 1086: uint16(118), + 1087: uint16(22), + 1088: uint16(253), + 1089: uint16(254), + 1090: uint16(255), + 1091: uint16(253), 1092: uint16(19), - 1093: uint16(239), - 1094: uint16(240), - 1095: uint16(252), - 1096: uint16(22), + 1093: uint16(255), + 1094: uint16(233), + 1095: uint16(194), + 1096: uint16(143), 1097: uint16(24), - 1098: uint16(211), + 1098: uint16(263), 1099: uint16(212), - 1100: uint16(263), - 1101: uint16(252), - 1102: uint16(216), + 1100: uint16(213), + 1101: uint16(194), + 1102: uint16(143), 1103: uint16(217), - 1104: uint16(216), + 1104: uint16(218), 1105: uint16(217), - 1106: uint16(252), - 1107: uint16(153), - 1108: uint16(154), - 1109: uint16(155), - 1110: uint16(253), - 1111: uint16(193), + 1106: uint16(218), + 1107: uint16(261), + 1108: uint16(262), + 1109: uint16(271), + 1110: uint16(254), + 1111: uint16(143), 1112: uint16(19), - 1113: uint16(144), - 1114: uint16(213), - 1115: uint16(268), + 1113: uint16(7), + 1114: uint16(8), + 1115: uint16(9), 1116: uint16(43), 1117: uint16(44), 1118: uint16(45), @@ -155507,11 +157011,11 @@ var _yy_lookahead = [2285]uint16{ 1128: uint16(55), 1129: uint16(56), 1130: uint16(57), - 1131: uint16(193), + 1131: uint16(16), 1132: uint16(19), - 1133: uint16(59), - 1134: uint16(216), - 1135: uint16(217), + 1133: uint16(22), + 1134: uint16(23), + 1135: uint16(294), 1136: uint16(43), 1137: uint16(44), 1138: uint16(45), @@ -155527,11 +157031,11 @@ var _yy_lookahead = [2285]uint16{ 1148: uint16(55), 1149: uint16(56), 1150: uint16(57), - 1151: uint16(193), - 1152: uint16(19), - 1153: uint16(24), - 1154: uint16(216), - 1155: uint16(217), + 1151: uint16(312), + 1152: uint16(194), + 1153: uint16(214), + 1154: uint16(21), + 1155: uint16(316), 1156: uint16(43), 1157: uint16(44), 1158: uint16(45), @@ -155547,10 +157051,10 @@ var _yy_lookahead = [2285]uint16{ 1168: uint16(55), 1169: uint16(56), 1170: uint16(57), - 1171: uint16(284), - 1172: uint16(193), - 1173: uint16(208), - 1174: uint16(209), + 1171: uint16(106), + 1172: uint16(107), + 1173: uint16(286), + 1174: uint16(194), 1175: uint16(102), 1176: uint16(103), 1177: uint16(104), @@ -155563,14 +157067,14 @@ var _yy_lookahead = [2285]uint16{ 1184: uint16(111), 1185: uint16(112), 1186: uint16(113), - 1187: uint16(286), - 1188: uint16(59), - 1189: uint16(193), - 1190: uint16(232), - 1191: uint16(117), - 1192: uint16(291), - 1193: uint16(193), - 1194: uint16(193), + 1187: uint16(207), + 1188: uint16(158), + 1189: uint16(59), + 1190: uint16(160), + 1191: uint16(22), + 1192: uint16(77), + 1193: uint16(24), + 1194: uint16(79), 1195: uint16(102), 1196: uint16(103), 1197: uint16(104), @@ -155583,14 +157087,14 @@ var _yy_lookahead = [2285]uint16{ 1204: uint16(111), 1205: uint16(112), 1206: uint16(113), - 1207: uint16(193), - 1208: uint16(204), - 1209: uint16(22), - 1210: uint16(23), - 1211: uint16(193), - 1212: uint16(25), - 1213: uint16(66), - 1214: uint16(193), + 1207: uint16(194), + 1208: uint16(194), + 1209: uint16(229), + 1210: uint16(194), + 1211: uint16(231), + 1212: uint16(101), + 1213: uint16(80), + 1214: uint16(22), 1215: uint16(102), 1216: uint16(103), 1217: uint16(104), @@ -155603,39 +157107,39 @@ var _yy_lookahead = [2285]uint16{ 1224: uint16(111), 1225: uint16(112), 1226: uint16(113), - 1227: uint16(193), - 1228: uint16(193), - 1229: uint16(193), - 1230: uint16(216), - 1231: uint16(217), - 1232: uint16(85), - 1233: uint16(193), - 1234: uint16(238), + 1227: uint16(288), + 1228: uint16(59), + 1229: uint16(12), + 1230: uint16(217), + 1231: uint16(218), + 1232: uint16(293), + 1233: uint16(217), + 1234: uint16(218), 1235: uint16(19), - 1236: uint16(16), - 1237: uint16(216), - 1238: uint16(217), - 1239: uint16(238), - 1240: uint16(193), - 1241: uint16(94), - 1242: uint16(193), - 1243: uint16(239), - 1244: uint16(240), - 1245: uint16(231), - 1246: uint16(117), - 1247: uint16(268), - 1248: uint16(35), - 1249: uint16(116), - 1250: uint16(216), - 1251: uint16(217), - 1252: uint16(216), - 1253: uint16(217), - 1254: uint16(22), - 1255: uint16(23), - 1256: uint16(252), - 1257: uint16(25), - 1258: uint16(208), - 1259: uint16(209), + 1236: uint16(106), + 1237: uint16(107), + 1238: uint16(59), + 1239: uint16(19), + 1240: uint16(16), + 1241: uint16(127), + 1242: uint16(128), + 1243: uint16(129), + 1244: uint16(27), + 1245: uint16(115), + 1246: uint16(116), + 1247: uint16(117), + 1248: uint16(118), + 1249: uint16(194), + 1250: uint16(120), + 1251: uint16(59), + 1252: uint16(22), + 1253: uint16(194), + 1254: uint16(24), + 1255: uint16(194), + 1256: uint16(123), + 1257: uint16(100), + 1258: uint16(128), + 1259: uint16(42), 1260: uint16(44), 1261: uint16(45), 1262: uint16(46), @@ -155650,50 +157154,50 @@ var _yy_lookahead = [2285]uint16{ 1271: uint16(55), 1272: uint16(56), 1273: uint16(57), - 1274: uint16(193), - 1275: uint16(193), - 1276: uint16(19), - 1277: uint16(5), - 1278: uint16(59), - 1279: uint16(66), - 1280: uint16(193), - 1281: uint16(263), - 1282: uint16(10), - 1283: uint16(11), - 1284: uint16(12), - 1285: uint16(13), - 1286: uint16(14), - 1287: uint16(74), - 1288: uint16(101), - 1289: uint16(17), - 1290: uint16(193), - 1291: uint16(46), - 1292: uint16(193), - 1293: uint16(146), - 1294: uint16(193), - 1295: uint16(76), - 1296: uint16(213), - 1297: uint16(77), - 1298: uint16(263), - 1299: uint16(79), - 1300: uint16(12), - 1301: uint16(260), - 1302: uint16(30), - 1303: uint16(46), - 1304: uint16(32), - 1305: uint16(264), - 1306: uint16(87), - 1307: uint16(193), - 1308: uint16(89), - 1309: uint16(29), - 1310: uint16(263), - 1311: uint16(92), - 1312: uint16(40), - 1313: uint16(33), - 1314: uint16(232), - 1315: uint16(27), - 1316: uint16(193), - 1317: uint16(108), + 1274: uint16(117), + 1275: uint16(194), + 1276: uint16(217), + 1277: uint16(218), + 1278: uint16(121), + 1279: uint16(100), + 1280: uint16(63), + 1281: uint16(194), + 1282: uint16(245), + 1283: uint16(153), + 1284: uint16(194), + 1285: uint16(155), + 1286: uint16(117), + 1287: uint16(19), + 1288: uint16(115), + 1289: uint16(194), + 1290: uint16(73), + 1291: uint16(214), + 1292: uint16(194), + 1293: uint16(256), + 1294: uint16(161), + 1295: uint16(116), + 1296: uint16(117), + 1297: uint16(194), + 1298: uint16(217), + 1299: uint16(218), + 1300: uint16(121), + 1301: uint16(77), + 1302: uint16(194), + 1303: uint16(79), + 1304: uint16(217), + 1305: uint16(218), + 1306: uint16(194), + 1307: uint16(217), + 1308: uint16(218), + 1309: uint16(117), + 1310: uint16(153), + 1311: uint16(154), + 1312: uint16(155), + 1313: uint16(254), + 1314: uint16(46), + 1315: uint16(217), + 1316: uint16(218), + 1317: uint16(144), 1318: uint16(102), 1319: uint16(103), 1320: uint16(104), @@ -155706,1025 +157210,1068 @@ var _yy_lookahead = [2285]uint16{ 1327: uint16(111), 1328: uint16(112), 1329: uint16(113), - 1330: uint16(42), - 1331: uint16(138), - 1332: uint16(139), - 1333: uint16(101), - 1334: uint16(193), - 1335: uint16(116), - 1336: uint16(117), - 1337: uint16(118), + 1330: uint16(232), + 1331: uint16(270), + 1332: uint16(153), + 1333: uint16(154), + 1334: uint16(155), + 1335: uint16(115), + 1336: uint16(116), + 1337: uint16(66), 1338: uint16(19), 1339: uint16(20), - 1340: uint16(255), + 1340: uint16(183), 1341: uint16(22), - 1342: uint16(70), - 1343: uint16(130), - 1344: uint16(135), - 1345: uint16(65), - 1346: uint16(256), - 1347: uint16(257), - 1348: uint16(193), - 1349: uint16(140), - 1350: uint16(78), - 1351: uint16(63), - 1352: uint16(193), - 1353: uint16(81), - 1354: uint16(193), + 1342: uint16(12), + 1343: uint16(312), + 1344: uint16(254), + 1345: uint16(194), + 1346: uint16(262), + 1347: uint16(316), + 1348: uint16(209), + 1349: uint16(210), + 1350: uint16(266), + 1351: uint16(239), + 1352: uint16(194), + 1353: uint16(194), + 1354: uint16(108), 1355: uint16(36), - 1356: uint16(193), - 1357: uint16(216), - 1358: uint16(217), - 1359: uint16(193), - 1360: uint16(115), - 1361: uint16(193), - 1362: uint16(263), - 1363: uint16(193), - 1364: uint16(145), - 1365: uint16(268), - 1366: uint16(59), + 1356: uint16(85), + 1357: uint16(27), + 1358: uint16(19), + 1359: uint16(20), + 1360: uint16(265), + 1361: uint16(22), + 1362: uint16(183), + 1363: uint16(245), + 1364: uint16(144), + 1365: uint16(94), + 1366: uint16(25), 1367: uint16(48), - 1368: uint16(193), - 1369: uint16(193), - 1370: uint16(98), - 1371: uint16(193), - 1372: uint16(115), - 1373: uint16(193), - 1374: uint16(291), - 1375: uint16(216), + 1368: uint16(217), + 1369: uint16(218), + 1370: uint16(293), + 1371: uint16(194), + 1372: uint16(42), + 1373: uint16(270), + 1374: uint16(256), + 1375: uint16(36), 1376: uint16(217), - 1377: uint16(193), + 1377: uint16(218), 1378: uint16(59), - 1379: uint16(216), - 1380: uint16(217), - 1381: uint16(161), - 1382: uint16(216), - 1383: uint16(217), - 1384: uint16(216), - 1385: uint16(217), - 1386: uint16(216), - 1387: uint16(217), - 1388: uint16(131), - 1389: uint16(193), + 1379: uint16(194), + 1380: uint16(25), + 1381: uint16(135), + 1382: uint16(194), + 1383: uint16(115), + 1384: uint16(194), + 1385: uint16(161), + 1386: uint16(140), + 1387: uint16(194), + 1388: uint16(194), + 1389: uint16(15), 1390: uint16(71), - 1391: uint16(193), - 1392: uint16(216), - 1393: uint16(217), - 1394: uint16(216), - 1395: uint16(217), - 1396: uint16(216), - 1397: uint16(217), - 1398: uint16(193), - 1399: uint16(260), - 1400: uint16(216), - 1401: uint16(217), - 1402: uint16(19), - 1403: uint16(264), + 1391: uint16(194), + 1392: uint16(312), + 1393: uint16(63), + 1394: uint16(217), + 1395: uint16(218), + 1396: uint16(316), + 1397: uint16(194), + 1398: uint16(59), + 1399: uint16(131), + 1400: uint16(301), + 1401: uint16(302), + 1402: uint16(217), + 1403: uint16(218), 1404: uint16(85), - 1405: uint16(133), - 1406: uint16(244), - 1407: uint16(100), - 1408: uint16(193), + 1405: uint16(217), + 1406: uint16(218), + 1407: uint16(217), + 1408: uint16(218), 1409: uint16(90), - 1410: uint16(138), - 1411: uint16(139), - 1412: uint16(216), - 1413: uint16(217), - 1414: uint16(216), - 1415: uint16(217), - 1416: uint16(254), - 1417: uint16(244), - 1418: uint16(193), + 1410: uint16(71), + 1411: uint16(217), + 1412: uint16(218), + 1413: uint16(19), + 1414: uint16(217), + 1415: uint16(218), + 1416: uint16(245), + 1417: uint16(146), + 1418: uint16(262), 1419: uint16(100), - 1420: uint16(193), - 1421: uint16(216), - 1422: uint16(217), - 1423: uint16(116), - 1424: uint16(117), + 1420: uint16(217), + 1421: uint16(218), + 1422: uint16(266), + 1423: uint16(265), + 1424: uint16(85), 1425: uint16(106), 1426: uint16(107), - 1427: uint16(254), - 1428: uint16(121), - 1429: uint16(193), - 1430: uint16(115), - 1431: uint16(216), - 1432: uint16(217), + 1427: uint16(256), + 1428: uint16(312), + 1429: uint16(90), + 1430: uint16(209), + 1431: uint16(210), + 1432: uint16(316), 1433: uint16(114), - 1434: uint16(162), + 1434: uint16(60), 1435: uint16(116), 1436: uint16(117), 1437: uint16(118), - 1438: uint16(115), - 1439: uint16(244), + 1438: uint16(194), + 1439: uint16(100), 1440: uint16(121), - 1441: uint16(216), - 1442: uint16(217), - 1443: uint16(216), - 1444: uint16(217), - 1445: uint16(193), - 1446: uint16(309), - 1447: uint16(193), - 1448: uint16(31), - 1449: uint16(254), - 1450: uint16(313), - 1451: uint16(309), - 1452: uint16(216), - 1453: uint16(217), - 1454: uint16(309), - 1455: uint16(313), - 1456: uint16(39), - 1457: uint16(193), - 1458: uint16(313), - 1459: uint16(309), - 1460: uint16(153), - 1461: uint16(154), - 1462: uint16(155), - 1463: uint16(313), - 1464: uint16(193), - 1465: uint16(150), - 1466: uint16(25), - 1467: uint16(144), - 1468: uint16(216), - 1469: uint16(217), - 1470: uint16(216), - 1471: uint16(217), + 1441: uint16(194), + 1442: uint16(194), + 1443: uint16(145), + 1444: uint16(115), + 1445: uint16(106), + 1446: uint16(107), + 1447: uint16(19), + 1448: uint16(46), + 1449: uint16(19), + 1450: uint16(20), + 1451: uint16(24), + 1452: uint16(22), + 1453: uint16(114), + 1454: uint16(194), + 1455: uint16(116), + 1456: uint16(117), + 1457: uint16(118), + 1458: uint16(194), + 1459: uint16(245), + 1460: uint16(121), + 1461: uint16(194), + 1462: uint16(164), + 1463: uint16(194), + 1464: uint16(217), + 1465: uint16(218), + 1466: uint16(36), + 1467: uint16(194), + 1468: uint16(258), + 1469: uint16(259), + 1470: uint16(256), + 1471: uint16(194), 1472: uint16(153), 1473: uint16(154), 1474: uint16(155), 1475: uint16(156), 1476: uint16(157), - 1478: uint16(1), - 1479: uint16(2), - 1480: uint16(216), + 1477: uint16(217), + 1478: uint16(218), + 1479: uint16(150), + 1480: uint16(31), 1481: uint16(217), - 1482: uint16(5), - 1483: uint16(149), - 1484: uint16(150), - 1485: uint16(22), - 1486: uint16(193), - 1487: uint16(10), - 1488: uint16(11), - 1489: uint16(12), - 1490: uint16(13), - 1491: uint16(14), - 1492: uint16(193), - 1493: uint16(158), - 1494: uint16(17), - 1495: uint16(160), - 1496: uint16(193), - 1497: uint16(19), - 1498: uint16(20), - 1499: uint16(116), - 1500: uint16(22), - 1501: uint16(25), - 1502: uint16(193), - 1503: uint16(24), - 1504: uint16(22), - 1505: uint16(193), - 1506: uint16(24), - 1507: uint16(30), - 1508: uint16(226), - 1509: uint16(32), - 1510: uint16(19), - 1511: uint16(20), - 1512: uint16(226), - 1513: uint16(22), - 1514: uint16(36), - 1515: uint16(193), - 1516: uint16(53), - 1517: uint16(40), - 1518: uint16(193), - 1519: uint16(216), - 1520: uint16(217), - 1521: uint16(193), - 1522: uint16(23), - 1523: uint16(193), - 1524: uint16(25), - 1525: uint16(216), - 1526: uint16(217), - 1527: uint16(36), - 1528: uint16(216), - 1529: uint16(217), - 1530: uint16(193), - 1531: uint16(99), - 1532: uint16(193), - 1533: uint16(193), - 1534: uint16(22), - 1535: uint16(193), - 1536: uint16(193), - 1537: uint16(59), - 1538: uint16(216), + 1482: uint16(218), + 1483: uint16(142), + 1484: uint16(217), + 1485: uint16(218), + 1486: uint16(217), + 1487: uint16(218), + 1488: uint16(39), + 1489: uint16(59), + 1490: uint16(217), + 1491: uint16(218), + 1492: uint16(153), + 1493: uint16(154), + 1494: uint16(155), + 1495: uint16(156), + 1496: uint16(157), + 1497: uint16(149), + 1498: uint16(150), + 1499: uint16(5), + 1500: uint16(145), + 1501: uint16(71), + 1502: uint16(183), + 1503: uint16(245), + 1504: uint16(10), + 1505: uint16(11), + 1506: uint16(12), + 1507: uint16(13), + 1508: uint16(14), + 1509: uint16(194), + 1510: uint16(116), + 1511: uint16(17), + 1512: uint16(129), + 1513: uint16(227), + 1514: uint16(256), + 1515: uint16(85), + 1516: uint16(194), + 1517: uint16(115), + 1518: uint16(194), + 1519: uint16(23), + 1520: uint16(90), + 1521: uint16(25), + 1522: uint16(183), + 1523: uint16(99), + 1524: uint16(30), + 1525: uint16(97), + 1526: uint16(32), + 1527: uint16(22), + 1528: uint16(22), + 1529: uint16(194), + 1530: uint16(100), + 1531: uint16(194), + 1532: uint16(217), + 1533: uint16(218), + 1534: uint16(40), + 1535: uint16(152), + 1536: uint16(106), + 1537: uint16(107), + 1538: uint16(23), 1539: uint16(217), - 1540: uint16(193), - 1541: uint16(216), - 1542: uint16(217), - 1543: uint16(193), - 1544: uint16(216), - 1545: uint16(217), - 1546: uint16(193), - 1547: uint16(70), - 1548: uint16(129), - 1549: uint16(71), - 1550: uint16(59), - 1551: uint16(129), - 1552: uint16(193), - 1553: uint16(216), + 1540: uint16(218), + 1541: uint16(194), + 1542: uint16(19), + 1543: uint16(20), + 1544: uint16(114), + 1545: uint16(22), + 1546: uint16(116), + 1547: uint16(117), + 1548: uint16(118), + 1549: uint16(257), + 1550: uint16(194), + 1551: uint16(121), + 1552: uint16(217), + 1553: uint16(218), 1554: uint16(217), - 1555: uint16(78), - 1556: uint16(216), - 1557: uint16(217), - 1558: uint16(81), - 1559: uint16(216), - 1560: uint16(217), - 1561: uint16(193), - 1562: uint16(71), - 1563: uint16(85), - 1564: uint16(193), - 1565: uint16(133), - 1566: uint16(193), - 1567: uint16(126), - 1568: uint16(90), - 1569: uint16(216), - 1570: uint16(217), - 1571: uint16(152), - 1572: uint16(258), - 1573: uint16(61), - 1574: uint16(152), - 1575: uint16(98), - 1576: uint16(85), - 1577: uint16(193), - 1578: uint16(100), - 1579: uint16(193), - 1580: uint16(23), - 1581: uint16(90), - 1582: uint16(25), - 1583: uint16(121), - 1584: uint16(106), - 1585: uint16(107), - 1586: uint16(23), - 1587: uint16(216), - 1588: uint16(217), - 1589: uint16(216), - 1590: uint16(217), - 1591: uint16(100), - 1592: uint16(114), - 1593: uint16(131), - 1594: uint16(116), - 1595: uint16(117), - 1596: uint16(118), - 1597: uint16(106), - 1598: uint16(107), - 1599: uint16(121), - 1600: uint16(216), - 1601: uint16(217), - 1602: uint16(216), - 1603: uint16(217), - 1604: uint16(193), - 1605: uint16(114), - 1606: uint16(193), - 1607: uint16(116), - 1608: uint16(117), - 1609: uint16(118), - 1610: uint16(133), - 1611: uint16(22), - 1612: uint16(121), - 1613: uint16(193), - 1614: uint16(59), - 1615: uint16(138), - 1616: uint16(139), - 1617: uint16(193), - 1618: uint16(142), - 1619: uint16(193), - 1620: uint16(141), - 1621: uint16(23), - 1622: uint16(23), - 1623: uint16(25), - 1624: uint16(25), - 1625: uint16(120), - 1626: uint16(121), - 1627: uint16(216), - 1628: uint16(217), - 1629: uint16(216), - 1630: uint16(217), - 1631: uint16(153), - 1632: uint16(154), - 1633: uint16(155), - 1634: uint16(156), - 1635: uint16(157), - 1636: uint16(216), - 1637: uint16(217), - 1638: uint16(19), - 1639: uint16(162), - 1640: uint16(216), - 1641: uint16(217), - 1642: uint16(216), - 1643: uint16(217), - 1644: uint16(153), - 1645: uint16(154), - 1646: uint16(155), - 1647: uint16(156), - 1648: uint16(157), - 1649: uint16(1), - 1650: uint16(2), - 1651: uint16(193), - 1652: uint16(59), - 1653: uint16(5), - 1654: uint16(19), - 1655: uint16(20), - 1656: uint16(318), - 1657: uint16(22), - 1658: uint16(10), - 1659: uint16(11), - 1660: uint16(12), - 1661: uint16(13), - 1662: uint16(14), - 1663: uint16(193), - 1664: uint16(59), - 1665: uint16(17), - 1666: uint16(193), - 1667: uint16(23), - 1668: uint16(23), - 1669: uint16(25), - 1670: uint16(25), - 1671: uint16(36), - 1672: uint16(117), - 1673: uint16(193), - 1674: uint16(216), - 1675: uint16(217), - 1676: uint16(193), - 1677: uint16(23), - 1678: uint16(30), - 1679: uint16(25), - 1680: uint16(32), - 1681: uint16(19), - 1682: uint16(20), - 1683: uint16(23), - 1684: uint16(22), - 1685: uint16(25), - 1686: uint16(216), - 1687: uint16(217), - 1688: uint16(40), - 1689: uint16(216), + 1555: uint16(218), + 1556: uint16(194), + 1557: uint16(133), + 1558: uint16(53), + 1559: uint16(36), + 1560: uint16(23), + 1561: uint16(23), + 1562: uint16(25), + 1563: uint16(25), + 1564: uint16(70), + 1565: uint16(120), + 1566: uint16(121), + 1567: uint16(61), + 1568: uint16(141), + 1569: uint16(7), + 1570: uint16(8), + 1571: uint16(121), + 1572: uint16(78), + 1573: uint16(217), + 1574: uint16(218), + 1575: uint16(81), + 1576: uint16(23), + 1577: uint16(227), + 1578: uint16(25), + 1579: uint16(217), + 1580: uint16(218), + 1581: uint16(131), + 1582: uint16(59), + 1583: uint16(153), + 1584: uint16(154), + 1585: uint16(155), + 1586: uint16(156), + 1587: uint16(157), + 1589: uint16(1), + 1590: uint16(2), + 1591: uint16(59), + 1592: uint16(98), + 1593: uint16(5), + 1594: uint16(71), + 1595: uint16(23), + 1596: uint16(227), + 1597: uint16(25), + 1598: uint16(10), + 1599: uint16(11), + 1600: uint16(12), + 1601: uint16(13), + 1602: uint16(14), + 1603: uint16(83), + 1604: uint16(84), + 1605: uint16(17), + 1606: uint16(23), + 1607: uint16(23), + 1608: uint16(25), + 1609: uint16(25), + 1610: uint16(59), + 1611: uint16(194), + 1612: uint16(194), + 1613: uint16(183), + 1614: uint16(23), + 1615: uint16(23), + 1616: uint16(25), + 1617: uint16(25), + 1618: uint16(30), + 1619: uint16(194), + 1620: uint16(32), + 1621: uint16(19), + 1622: uint16(20), + 1623: uint16(100), + 1624: uint16(22), + 1625: uint16(194), + 1626: uint16(194), + 1627: uint16(133), + 1628: uint16(40), + 1629: uint16(106), + 1630: uint16(107), + 1631: uint16(108), + 1632: uint16(138), + 1633: uint16(139), + 1634: uint16(194), + 1635: uint16(217), + 1636: uint16(218), + 1637: uint16(114), + 1638: uint16(36), + 1639: uint16(116), + 1640: uint16(117), + 1641: uint16(118), + 1642: uint16(217), + 1643: uint16(218), + 1644: uint16(121), + 1645: uint16(194), + 1646: uint16(194), + 1647: uint16(194), + 1648: uint16(23), + 1649: uint16(117), + 1650: uint16(25), + 1651: uint16(194), + 1652: uint16(23), + 1653: uint16(23), + 1654: uint16(25), + 1655: uint16(25), + 1656: uint16(162), + 1657: uint16(194), + 1658: uint16(70), + 1659: uint16(194), + 1660: uint16(145), + 1661: uint16(59), + 1662: uint16(23), + 1663: uint16(153), + 1664: uint16(25), + 1665: uint16(155), + 1666: uint16(78), + 1667: uint16(194), + 1668: uint16(117), + 1669: uint16(81), + 1670: uint16(217), + 1671: uint16(218), + 1672: uint16(194), + 1673: uint16(71), + 1674: uint16(217), + 1675: uint16(218), + 1676: uint16(153), + 1677: uint16(154), + 1678: uint16(155), + 1679: uint16(156), + 1680: uint16(157), + 1681: uint16(194), + 1682: uint16(217), + 1683: uint16(218), + 1684: uint16(194), + 1685: uint16(23), + 1686: uint16(98), + 1687: uint16(25), + 1688: uint16(321), + 1689: uint16(194), 1690: uint16(217), - 1691: uint16(7), - 1692: uint16(8), - 1693: uint16(23), - 1694: uint16(59), - 1695: uint16(25), - 1696: uint16(83), - 1697: uint16(84), - 1698: uint16(36), - 1699: uint16(23), - 1700: uint16(193), - 1701: uint16(25), - 1702: uint16(23), - 1703: uint16(23), - 1704: uint16(25), - 1705: uint16(25), - 1706: uint16(71), - 1707: uint16(153), - 1708: uint16(145), - 1709: uint16(155), - 1710: uint16(117), - 1711: uint16(153), - 1712: uint16(23), - 1713: uint16(155), - 1714: uint16(25), - 1715: uint16(23), - 1716: uint16(97), - 1717: uint16(25), - 1718: uint16(70), - 1719: uint16(193), - 1720: uint16(193), - 1721: uint16(59), - 1722: uint16(117), - 1723: uint16(236), - 1724: uint16(193), - 1725: uint16(193), - 1726: uint16(78), - 1727: uint16(193), - 1728: uint16(193), - 1729: uint16(81), - 1730: uint16(141), - 1731: uint16(193), - 1732: uint16(193), - 1733: uint16(71), - 1734: uint16(193), - 1735: uint16(100), - 1736: uint16(288), - 1737: uint16(287), - 1738: uint16(242), - 1739: uint16(255), - 1740: uint16(255), - 1741: uint16(106), - 1742: uint16(107), - 1743: uint16(108), - 1744: uint16(255), - 1745: uint16(255), - 1746: uint16(98), - 1747: uint16(243), - 1748: uint16(297), - 1749: uint16(114), - 1750: uint16(214), - 1751: uint16(116), - 1752: uint16(117), - 1753: uint16(118), - 1754: uint16(245), - 1755: uint16(191), - 1756: uint16(121), - 1757: uint16(271), - 1758: uint16(293), - 1759: uint16(267), - 1760: uint16(267), - 1761: uint16(246), - 1762: uint16(100), - 1763: uint16(246), - 1764: uint16(245), - 1765: uint16(271), - 1766: uint16(271), - 1767: uint16(293), - 1768: uint16(106), - 1769: uint16(107), - 1770: uint16(220), - 1771: uint16(271), - 1772: uint16(229), - 1773: uint16(225), - 1774: uint16(249), - 1775: uint16(219), - 1776: uint16(114), - 1777: uint16(259), - 1778: uint16(116), - 1779: uint16(117), - 1780: uint16(118), - 1781: uint16(133), - 1782: uint16(259), - 1783: uint16(121), - 1784: uint16(219), - 1785: uint16(219), - 1786: uint16(138), - 1787: uint16(139), - 1788: uint16(153), - 1789: uint16(154), - 1790: uint16(155), - 1791: uint16(156), - 1792: uint16(157), - 1793: uint16(280), - 1794: uint16(249), - 1795: uint16(243), - 1796: uint16(19), - 1797: uint16(20), - 1798: uint16(245), - 1799: uint16(22), - 1800: uint16(196), - 1801: uint16(259), - 1802: uint16(140), - 1803: uint16(259), - 1804: uint16(60), - 1805: uint16(297), - 1806: uint16(141), - 1807: uint16(297), - 1808: uint16(200), - 1809: uint16(200), - 1810: uint16(162), - 1811: uint16(38), - 1812: uint16(200), - 1813: uint16(36), - 1814: uint16(294), - 1815: uint16(153), - 1816: uint16(154), - 1817: uint16(155), - 1818: uint16(156), - 1819: uint16(157), - 1820: uint16(151), - 1821: uint16(150), - 1822: uint16(294), - 1823: uint16(283), - 1824: uint16(22), - 1825: uint16(43), - 1826: uint16(234), - 1827: uint16(18), - 1828: uint16(237), - 1829: uint16(200), - 1830: uint16(270), - 1831: uint16(272), - 1832: uint16(237), - 1833: uint16(237), - 1834: uint16(237), - 1835: uint16(18), - 1836: uint16(59), - 1837: uint16(199), - 1838: uint16(270), - 1839: uint16(149), - 1840: uint16(246), - 1841: uint16(272), - 1842: uint16(272), - 1843: uint16(200), - 1844: uint16(234), - 1845: uint16(234), - 1846: uint16(246), - 1847: uint16(246), - 1848: uint16(71), - 1849: uint16(246), - 1850: uint16(199), - 1851: uint16(158), - 1852: uint16(290), - 1853: uint16(62), - 1854: uint16(22), - 1855: uint16(200), - 1856: uint16(19), - 1857: uint16(20), - 1858: uint16(199), - 1859: uint16(22), - 1860: uint16(289), - 1861: uint16(221), - 1862: uint16(221), - 1863: uint16(200), - 1864: uint16(200), - 1865: uint16(199), - 1866: uint16(199), - 1867: uint16(115), - 1868: uint16(218), - 1869: uint16(64), - 1870: uint16(218), - 1871: uint16(218), + 1691: uint16(218), + 1692: uint16(194), + 1693: uint16(19), + 1694: uint16(20), + 1695: uint16(194), + 1696: uint16(22), + 1697: uint16(153), + 1698: uint16(23), + 1699: uint16(155), + 1700: uint16(25), + 1701: uint16(194), + 1702: uint16(100), + 1703: uint16(194), + 1704: uint16(217), + 1705: uint16(218), + 1706: uint16(183), + 1707: uint16(194), + 1708: uint16(106), + 1709: uint16(107), + 1710: uint16(36), + 1711: uint16(194), + 1712: uint16(217), + 1713: uint16(218), + 1714: uint16(237), + 1715: uint16(194), + 1716: uint16(114), + 1717: uint16(243), + 1718: uint16(116), + 1719: uint16(117), + 1720: uint16(118), + 1721: uint16(133), + 1722: uint16(194), + 1723: uint16(121), + 1724: uint16(217), + 1725: uint16(218), + 1726: uint16(138), + 1727: uint16(139), + 1728: uint16(194), + 1729: uint16(194), + 1730: uint16(194), + 1731: uint16(290), + 1732: uint16(289), + 1733: uint16(59), + 1734: uint16(217), + 1735: uint16(218), + 1736: uint16(194), + 1737: uint16(194), + 1738: uint16(217), + 1739: uint16(218), + 1740: uint16(194), + 1741: uint16(194), + 1742: uint16(140), + 1743: uint16(194), + 1744: uint16(194), + 1745: uint16(71), + 1746: uint16(194), + 1747: uint16(244), + 1748: uint16(194), + 1749: uint16(194), + 1750: uint16(162), + 1751: uint16(217), + 1752: uint16(218), + 1753: uint16(194), + 1754: uint16(194), + 1755: uint16(153), + 1756: uint16(154), + 1757: uint16(155), + 1758: uint16(156), + 1759: uint16(157), + 1760: uint16(217), + 1761: uint16(218), + 1762: uint16(194), + 1763: uint16(217), + 1764: uint16(218), + 1765: uint16(194), + 1766: uint16(217), + 1767: uint16(218), + 1768: uint16(257), + 1769: uint16(217), + 1770: uint16(218), + 1771: uint16(217), + 1772: uint16(218), + 1773: uint16(257), + 1774: uint16(100), + 1775: uint16(194), + 1776: uint16(257), + 1777: uint16(217), + 1778: uint16(218), + 1779: uint16(257), + 1780: uint16(106), + 1781: uint16(107), + 1782: uint16(215), + 1783: uint16(299), + 1784: uint16(194), + 1785: uint16(183), + 1786: uint16(192), + 1787: uint16(194), + 1788: uint16(114), + 1789: uint16(194), + 1790: uint16(116), + 1791: uint16(117), + 1792: uint16(118), + 1793: uint16(1), + 1794: uint16(2), + 1795: uint16(121), + 1796: uint16(221), + 1797: uint16(5), + 1798: uint16(217), + 1799: uint16(218), + 1800: uint16(273), + 1801: uint16(197), + 1802: uint16(10), + 1803: uint16(11), + 1804: uint16(12), + 1805: uint16(13), + 1806: uint16(14), + 1807: uint16(217), + 1808: uint16(218), + 1809: uint16(17), + 1810: uint16(217), + 1811: uint16(218), + 1812: uint16(217), + 1813: uint16(218), + 1814: uint16(140), + 1815: uint16(194), + 1816: uint16(246), + 1817: uint16(194), + 1818: uint16(273), + 1819: uint16(295), + 1820: uint16(247), + 1821: uint16(273), + 1822: uint16(30), + 1823: uint16(247), + 1824: uint16(32), + 1825: uint16(269), + 1826: uint16(269), + 1827: uint16(153), + 1828: uint16(154), + 1829: uint16(155), + 1830: uint16(156), + 1831: uint16(157), + 1832: uint16(40), + 1833: uint16(246), + 1834: uint16(273), + 1835: uint16(295), + 1836: uint16(230), + 1837: uint16(226), + 1838: uint16(217), + 1839: uint16(218), + 1840: uint16(217), + 1841: uint16(218), + 1842: uint16(220), + 1843: uint16(261), + 1844: uint16(220), + 1845: uint16(282), + 1846: uint16(220), + 1847: uint16(19), + 1848: uint16(20), + 1849: uint16(244), + 1850: uint16(22), + 1851: uint16(250), + 1852: uint16(141), + 1853: uint16(250), + 1854: uint16(246), + 1855: uint16(60), + 1856: uint16(201), + 1857: uint16(183), + 1858: uint16(261), + 1859: uint16(261), + 1860: uint16(261), + 1861: uint16(201), + 1862: uint16(70), + 1863: uint16(299), + 1864: uint16(36), + 1865: uint16(299), + 1866: uint16(201), + 1867: uint16(38), + 1868: uint16(151), + 1869: uint16(150), + 1870: uint16(78), + 1871: uint16(285), 1872: uint16(22), - 1873: uint16(36), - 1874: uint16(227), - 1875: uint16(126), - 1876: uint16(227), - 1877: uint16(100), - 1878: uint16(165), - 1879: uint16(221), - 1880: uint16(224), - 1881: uint16(224), - 1882: uint16(24), - 1883: uint16(106), - 1884: uint16(107), - 1885: uint16(312), - 1886: uint16(218), - 1887: uint16(305), - 1888: uint16(113), - 1889: uint16(282), - 1890: uint16(91), - 1891: uint16(114), - 1892: uint16(220), - 1893: uint16(116), - 1894: uint16(117), - 1895: uint16(118), - 1896: uint16(59), - 1897: uint16(282), - 1898: uint16(121), - 1899: uint16(218), - 1900: uint16(218), - 1901: uint16(218), + 1873: uint16(81), + 1874: uint16(296), + 1875: uint16(296), + 1876: uint16(43), + 1877: uint16(235), + 1878: uint16(18), + 1879: uint16(238), + 1880: uint16(201), + 1881: uint16(274), + 1882: uint16(272), + 1883: uint16(238), + 1884: uint16(238), + 1885: uint16(238), + 1886: uint16(18), + 1887: uint16(59), + 1888: uint16(200), + 1889: uint16(149), + 1890: uint16(98), + 1891: uint16(247), + 1892: uint16(274), + 1893: uint16(274), + 1894: uint16(235), + 1895: uint16(247), + 1896: uint16(247), + 1897: uint16(247), + 1898: uint16(235), + 1899: uint16(71), + 1900: uint16(272), + 1901: uint16(201), 1902: uint16(200), - 1903: uint16(317), - 1904: uint16(317), - 1905: uint16(82), - 1906: uint16(221), - 1907: uint16(265), - 1908: uint16(71), - 1909: uint16(148), - 1910: uint16(145), - 1911: uint16(265), - 1912: uint16(22), - 1913: uint16(277), - 1914: uint16(200), - 1915: uint16(158), - 1916: uint16(279), - 1917: uint16(140), - 1918: uint16(147), - 1919: uint16(25), - 1920: uint16(146), - 1921: uint16(202), - 1922: uint16(248), - 1923: uint16(250), - 1924: uint16(249), - 1925: uint16(247), - 1926: uint16(13), - 1927: uint16(250), - 1928: uint16(194), - 1929: uint16(194), - 1930: uint16(153), - 1931: uint16(154), - 1932: uint16(155), - 1933: uint16(156), - 1934: uint16(157), - 1935: uint16(6), - 1936: uint16(303), - 1937: uint16(100), - 1938: uint16(192), - 1939: uint16(192), - 1940: uint16(246), - 1941: uint16(213), - 1942: uint16(192), - 1943: uint16(106), - 1944: uint16(107), - 1945: uint16(207), - 1946: uint16(213), - 1947: uint16(207), - 1948: uint16(222), - 1949: uint16(213), - 1950: uint16(213), - 1951: uint16(114), - 1952: uint16(222), - 1953: uint16(116), - 1954: uint16(117), - 1955: uint16(118), - 1956: uint16(214), - 1957: uint16(214), - 1958: uint16(121), - 1959: uint16(4), - 1960: uint16(207), - 1961: uint16(213), - 1962: uint16(3), - 1963: uint16(22), - 1964: uint16(303), - 1965: uint16(15), - 1966: uint16(163), - 1967: uint16(16), - 1968: uint16(23), - 1969: uint16(23), - 1970: uint16(139), - 1971: uint16(151), - 1972: uint16(130), - 1973: uint16(25), - 1974: uint16(20), - 1975: uint16(142), - 1976: uint16(24), - 1977: uint16(16), - 1978: uint16(144), - 1979: uint16(1), - 1980: uint16(142), - 1981: uint16(130), - 1982: uint16(130), - 1983: uint16(61), - 1984: uint16(37), - 1985: uint16(53), - 1986: uint16(300), - 1987: uint16(151), - 1988: uint16(53), - 1989: uint16(53), - 1990: uint16(153), - 1991: uint16(154), - 1992: uint16(155), - 1993: uint16(156), - 1994: uint16(157), - 1995: uint16(53), - 1996: uint16(130), - 1997: uint16(116), - 1998: uint16(34), - 1999: uint16(1), - 2000: uint16(141), - 2001: uint16(5), - 2002: uint16(22), - 2003: uint16(115), - 2004: uint16(161), - 2005: uint16(68), - 2006: uint16(25), - 2007: uint16(68), - 2008: uint16(75), - 2009: uint16(41), - 2010: uint16(141), - 2011: uint16(115), - 2012: uint16(24), - 2013: uint16(20), - 2014: uint16(19), - 2015: uint16(131), - 2016: uint16(125), - 2017: uint16(23), - 2018: uint16(28), - 2019: uint16(22), - 2020: uint16(67), - 2021: uint16(22), - 2022: uint16(22), - 2023: uint16(22), - 2024: uint16(67), - 2025: uint16(59), - 2026: uint16(24), - 2027: uint16(96), - 2028: uint16(22), - 2029: uint16(67), - 2030: uint16(23), - 2031: uint16(149), - 2032: uint16(22), - 2033: uint16(25), - 2034: uint16(23), - 2035: uint16(23), - 2036: uint16(23), - 2037: uint16(22), - 2038: uint16(34), - 2039: uint16(141), - 2040: uint16(37), - 2041: uint16(97), - 2042: uint16(23), - 2043: uint16(23), - 2044: uint16(116), - 2045: uint16(22), - 2046: uint16(143), - 2047: uint16(25), - 2048: uint16(34), - 2049: uint16(75), - 2050: uint16(34), - 2051: uint16(34), - 2052: uint16(34), - 2053: uint16(88), - 2054: uint16(75), - 2055: uint16(34), - 2056: uint16(86), - 2057: uint16(23), + 1903: uint16(158), + 1904: uint16(292), + 1905: uint16(62), + 1906: uint16(291), + 1907: uint16(201), + 1908: uint16(200), + 1909: uint16(22), + 1910: uint16(201), + 1911: uint16(222), + 1912: uint16(200), + 1913: uint16(222), + 1914: uint16(201), + 1915: uint16(200), + 1916: uint16(115), + 1917: uint16(219), + 1918: uint16(219), + 1919: uint16(64), + 1920: uint16(219), + 1921: uint16(228), + 1922: uint16(22), + 1923: uint16(126), + 1924: uint16(221), + 1925: uint16(133), + 1926: uint16(165), + 1927: uint16(222), + 1928: uint16(100), + 1929: uint16(225), + 1930: uint16(138), + 1931: uint16(139), + 1932: uint16(225), + 1933: uint16(219), + 1934: uint16(106), + 1935: uint16(107), + 1936: uint16(24), + 1937: uint16(219), + 1938: uint16(228), + 1939: uint16(219), + 1940: uint16(219), + 1941: uint16(307), + 1942: uint16(114), + 1943: uint16(113), + 1944: uint16(116), + 1945: uint16(117), + 1946: uint16(118), + 1947: uint16(315), + 1948: uint16(284), + 1949: uint16(121), + 1950: uint16(284), + 1951: uint16(222), + 1952: uint16(201), + 1953: uint16(91), + 1954: uint16(162), + 1955: uint16(320), + 1956: uint16(320), + 1957: uint16(82), + 1958: uint16(148), + 1959: uint16(267), + 1960: uint16(145), + 1961: uint16(267), + 1962: uint16(22), + 1963: uint16(279), + 1964: uint16(201), + 1965: uint16(158), + 1966: uint16(281), + 1967: uint16(251), + 1968: uint16(147), + 1969: uint16(146), + 1970: uint16(25), + 1971: uint16(203), + 1972: uint16(250), + 1973: uint16(249), + 1974: uint16(251), + 1975: uint16(248), + 1976: uint16(13), + 1977: uint16(247), + 1978: uint16(195), + 1979: uint16(195), + 1980: uint16(6), + 1981: uint16(153), + 1982: uint16(154), + 1983: uint16(155), + 1984: uint16(156), + 1985: uint16(157), + 1986: uint16(193), + 1987: uint16(193), + 1988: uint16(305), + 1989: uint16(193), + 1990: uint16(208), + 1991: uint16(305), + 1992: uint16(302), + 1993: uint16(214), + 1994: uint16(214), + 1995: uint16(214), + 1996: uint16(208), + 1997: uint16(223), + 1998: uint16(223), + 1999: uint16(214), + 2000: uint16(4), + 2001: uint16(215), + 2002: uint16(215), + 2003: uint16(214), + 2004: uint16(3), + 2005: uint16(22), + 2006: uint16(208), + 2007: uint16(163), + 2008: uint16(15), + 2009: uint16(23), + 2010: uint16(16), + 2011: uint16(183), + 2012: uint16(23), + 2013: uint16(139), + 2014: uint16(151), + 2015: uint16(130), + 2016: uint16(25), + 2017: uint16(20), + 2018: uint16(142), + 2019: uint16(24), + 2020: uint16(16), + 2021: uint16(144), + 2022: uint16(1), + 2023: uint16(142), + 2024: uint16(130), + 2025: uint16(130), + 2026: uint16(61), + 2027: uint16(37), + 2028: uint16(53), + 2029: uint16(151), + 2030: uint16(53), + 2031: uint16(53), + 2032: uint16(53), + 2033: uint16(130), + 2034: uint16(116), + 2035: uint16(1), + 2036: uint16(34), + 2037: uint16(141), + 2038: uint16(5), + 2039: uint16(22), + 2040: uint16(115), + 2041: uint16(161), + 2042: uint16(75), + 2043: uint16(25), + 2044: uint16(68), + 2045: uint16(141), + 2046: uint16(41), + 2047: uint16(115), + 2048: uint16(68), + 2049: uint16(24), + 2050: uint16(20), + 2051: uint16(19), + 2052: uint16(131), + 2053: uint16(125), + 2054: uint16(67), + 2055: uint16(67), + 2056: uint16(96), + 2057: uint16(22), 2058: uint16(22), - 2059: uint16(34), - 2060: uint16(93), - 2061: uint16(24), - 2062: uint16(34), - 2063: uint16(25), - 2064: uint16(25), - 2065: uint16(142), - 2066: uint16(142), + 2059: uint16(22), + 2060: uint16(37), + 2061: uint16(23), + 2062: uint16(22), + 2063: uint16(24), + 2064: uint16(22), + 2065: uint16(59), + 2066: uint16(67), 2067: uint16(23), - 2068: uint16(44), - 2069: uint16(23), - 2070: uint16(23), - 2071: uint16(23), + 2068: uint16(149), + 2069: uint16(28), + 2070: uint16(22), + 2071: uint16(25), 2072: uint16(23), - 2073: uint16(11), + 2073: uint16(23), 2074: uint16(23), - 2075: uint16(25), - 2076: uint16(22), - 2077: uint16(22), - 2078: uint16(22), - 2079: uint16(141), + 2075: uint16(22), + 2076: uint16(141), + 2077: uint16(34), + 2078: uint16(97), + 2079: uint16(23), 2080: uint16(23), - 2081: uint16(23), - 2082: uint16(22), + 2081: uint16(34), + 2082: uint16(116), 2083: uint16(22), - 2084: uint16(25), - 2085: uint16(15), - 2086: uint16(1), - 2087: uint16(23), - 2088: uint16(25), - 2089: uint16(1), - 2090: uint16(141), - 2091: uint16(135), - 2092: uint16(319), - 2093: uint16(319), - 2094: uint16(319), - 2095: uint16(319), - 2096: uint16(319), - 2097: uint16(319), - 2098: uint16(319), - 2099: uint16(141), - 2100: uint16(319), - 2101: uint16(319), - 2102: uint16(319), - 2103: uint16(319), - 2104: uint16(319), - 2105: uint16(319), - 2106: uint16(319), - 2107: uint16(319), - 2108: uint16(319), - 2109: uint16(319), - 2110: uint16(319), - 2111: uint16(319), - 2112: uint16(319), - 2113: uint16(319), - 2114: uint16(319), - 2115: uint16(319), - 2116: uint16(319), - 2117: uint16(319), - 2118: uint16(319), - 2119: uint16(319), - 2120: uint16(319), - 2121: uint16(319), - 2122: uint16(319), - 2123: uint16(319), - 2124: uint16(319), - 2125: uint16(319), - 2126: uint16(319), - 2127: uint16(319), - 2128: uint16(319), - 2129: uint16(319), - 2130: uint16(319), - 2131: uint16(319), - 2132: uint16(319), - 2133: uint16(319), - 2134: uint16(319), - 2135: uint16(319), - 2136: uint16(319), - 2137: uint16(319), - 2138: uint16(319), - 2139: uint16(319), - 2140: uint16(319), - 2141: uint16(319), - 2142: uint16(319), - 2143: uint16(319), - 2144: uint16(319), - 2145: uint16(319), - 2146: uint16(319), - 2147: uint16(319), - 2148: uint16(319), - 2149: uint16(319), - 2150: uint16(319), - 2151: uint16(319), - 2152: uint16(319), - 2153: uint16(319), - 2154: uint16(319), - 2155: uint16(319), - 2156: uint16(319), - 2157: uint16(319), - 2158: uint16(319), - 2159: uint16(319), - 2160: uint16(319), - 2161: uint16(319), - 2162: uint16(319), - 2163: uint16(319), - 2164: uint16(319), - 2165: uint16(319), - 2166: uint16(319), - 2167: uint16(319), - 2168: uint16(319), - 2169: uint16(319), - 2170: uint16(319), - 2171: uint16(319), - 2172: uint16(319), - 2173: uint16(319), - 2174: uint16(319), - 2175: uint16(319), - 2176: uint16(319), - 2177: uint16(319), - 2178: uint16(319), - 2179: uint16(319), - 2180: uint16(319), - 2181: uint16(319), - 2182: uint16(319), - 2183: uint16(319), - 2184: uint16(319), - 2185: uint16(319), - 2186: uint16(319), - 2187: uint16(319), - 2188: uint16(319), - 2189: uint16(319), - 2190: uint16(319), - 2191: uint16(319), - 2192: uint16(319), - 2193: uint16(319), - 2194: uint16(319), - 2195: uint16(319), - 2196: uint16(319), - 2197: uint16(319), - 2198: uint16(319), - 2199: uint16(319), - 2200: uint16(319), - 2201: uint16(319), - 2202: uint16(319), - 2203: uint16(319), - 2204: uint16(319), - 2205: uint16(319), - 2206: uint16(319), - 2207: uint16(319), - 2208: uint16(319), - 2209: uint16(319), - 2210: uint16(319), - 2211: uint16(319), - 2212: uint16(319), - 2213: uint16(319), - 2214: uint16(319), - 2215: uint16(319), - 2216: uint16(319), - 2217: uint16(319), - 2218: uint16(319), - 2219: uint16(319), - 2220: uint16(319), - 2221: uint16(319), - 2222: uint16(319), - 2223: uint16(319), - 2224: uint16(319), - 2225: uint16(319), - 2226: uint16(319), - 2227: uint16(319), - 2228: uint16(319), - 2229: uint16(319), - 2230: uint16(319), - 2231: uint16(319), - 2232: uint16(319), - 2233: uint16(319), - 2234: uint16(319), - 2235: uint16(319), - 2236: uint16(319), - 2237: uint16(319), - 2238: uint16(319), - 2239: uint16(319), - 2240: uint16(319), - 2241: uint16(319), - 2242: uint16(319), - 2243: uint16(319), - 2244: uint16(319), - 2245: uint16(319), - 2246: uint16(319), - 2247: uint16(319), - 2248: uint16(319), - 2249: uint16(319), - 2250: uint16(319), - 2251: uint16(319), - 2252: uint16(319), - 2253: uint16(319), - 2254: uint16(319), - 2255: uint16(319), - 2256: uint16(319), - 2257: uint16(319), - 2258: uint16(319), - 2259: uint16(319), - 2260: uint16(319), - 2261: uint16(319), - 2262: uint16(319), - 2263: uint16(319), - 2264: uint16(319), - 2265: uint16(319), - 2266: uint16(319), - 2267: uint16(319), - 2268: uint16(319), - 2269: uint16(319), - 2270: uint16(319), - 2271: uint16(319), - 2272: uint16(319), - 2273: uint16(319), - 2274: uint16(319), - 2275: uint16(319), - 2276: uint16(319), - 2277: uint16(319), - 2278: uint16(319), - 2279: uint16(319), - 2280: uint16(319), - 2281: uint16(319), - 2282: uint16(319), - 2283: uint16(319), - 2284: uint16(319), -} -var _yy_shift_ofst = [579]uint16{ - 0: uint16(1648), - 1: uint16(1477), - 2: uint16(1272), + 2084: uint16(143), + 2085: uint16(25), + 2086: uint16(34), + 2087: uint16(75), + 2088: uint16(34), + 2089: uint16(34), + 2090: uint16(75), + 2091: uint16(88), + 2092: uint16(34), + 2093: uint16(86), + 2094: uint16(23), + 2095: uint16(22), + 2096: uint16(34), + 2097: uint16(25), + 2098: uint16(24), + 2099: uint16(34), + 2100: uint16(25), + 2101: uint16(93), + 2102: uint16(23), + 2103: uint16(44), + 2104: uint16(142), + 2105: uint16(23), + 2106: uint16(142), + 2107: uint16(23), + 2108: uint16(23), + 2109: uint16(22), + 2110: uint16(11), + 2111: uint16(25), + 2112: uint16(23), + 2113: uint16(25), + 2114: uint16(23), + 2115: uint16(22), + 2116: uint16(22), + 2117: uint16(22), + 2118: uint16(1), + 2119: uint16(23), + 2120: uint16(23), + 2121: uint16(23), + 2122: uint16(22), + 2123: uint16(22), + 2124: uint16(15), + 2125: uint16(141), + 2126: uint16(141), + 2127: uint16(25), + 2128: uint16(25), + 2129: uint16(1), + 2130: uint16(322), + 2131: uint16(322), + 2132: uint16(322), + 2133: uint16(135), + 2134: uint16(322), + 2135: uint16(322), + 2136: uint16(322), + 2137: uint16(322), + 2138: uint16(322), + 2139: uint16(322), + 2140: uint16(322), + 2141: uint16(141), + 2142: uint16(322), + 2143: uint16(322), + 2144: uint16(322), + 2145: uint16(322), + 2146: uint16(322), + 2147: uint16(322), + 2148: uint16(322), + 2149: uint16(322), + 2150: uint16(322), + 2151: uint16(322), + 2152: uint16(322), + 2153: uint16(322), + 2154: uint16(322), + 2155: uint16(322), + 2156: uint16(322), + 2157: uint16(322), + 2158: uint16(322), + 2159: uint16(322), + 2160: uint16(322), + 2161: uint16(322), + 2162: uint16(322), + 2163: uint16(322), + 2164: uint16(322), + 2165: uint16(322), + 2166: uint16(322), + 2167: uint16(322), + 2168: uint16(322), + 2169: uint16(322), + 2170: uint16(322), + 2171: uint16(322), + 2172: uint16(322), + 2173: uint16(322), + 2174: uint16(322), + 2175: uint16(322), + 2176: uint16(322), + 2177: uint16(322), + 2178: uint16(322), + 2179: uint16(322), + 2180: uint16(322), + 2181: uint16(322), + 2182: uint16(322), + 2183: uint16(322), + 2184: uint16(322), + 2185: uint16(322), + 2186: uint16(322), + 2187: uint16(322), + 2188: uint16(322), + 2189: uint16(322), + 2190: uint16(322), + 2191: uint16(322), + 2192: uint16(322), + 2193: uint16(322), + 2194: uint16(322), + 2195: uint16(322), + 2196: uint16(322), + 2197: uint16(322), + 2198: uint16(322), + 2199: uint16(322), + 2200: uint16(322), + 2201: uint16(322), + 2202: uint16(322), + 2203: uint16(322), + 2204: uint16(322), + 2205: uint16(322), + 2206: uint16(322), + 2207: uint16(322), + 2208: uint16(322), + 2209: uint16(322), + 2210: uint16(322), + 2211: uint16(322), + 2212: uint16(322), + 2213: uint16(322), + 2214: uint16(322), + 2215: uint16(322), + 2216: uint16(322), + 2217: uint16(322), + 2218: uint16(322), + 2219: uint16(322), + 2220: uint16(322), + 2221: uint16(322), + 2222: uint16(322), + 2223: uint16(322), + 2224: uint16(322), + 2225: uint16(322), + 2226: uint16(322), + 2227: uint16(322), + 2228: uint16(322), + 2229: uint16(322), + 2230: uint16(322), + 2231: uint16(322), + 2232: uint16(322), + 2233: uint16(322), + 2234: uint16(322), + 2235: uint16(322), + 2236: uint16(322), + 2237: uint16(322), + 2238: uint16(322), + 2239: uint16(322), + 2240: uint16(322), + 2241: uint16(322), + 2242: uint16(322), + 2243: uint16(322), + 2244: uint16(322), + 2245: uint16(322), + 2246: uint16(322), + 2247: uint16(322), + 2248: uint16(322), + 2249: uint16(322), + 2250: uint16(322), + 2251: uint16(322), + 2252: uint16(322), + 2253: uint16(322), + 2254: uint16(322), + 2255: uint16(322), + 2256: uint16(322), + 2257: uint16(322), + 2258: uint16(322), + 2259: uint16(322), + 2260: uint16(322), + 2261: uint16(322), + 2262: uint16(322), + 2263: uint16(322), + 2264: uint16(322), + 2265: uint16(322), + 2266: uint16(322), + 2267: uint16(322), + 2268: uint16(322), + 2269: uint16(322), + 2270: uint16(322), + 2271: uint16(322), + 2272: uint16(322), + 2273: uint16(322), + 2274: uint16(322), + 2275: uint16(322), + 2276: uint16(322), + 2277: uint16(322), + 2278: uint16(322), + 2279: uint16(322), + 2280: uint16(322), + 2281: uint16(322), + 2282: uint16(322), + 2283: uint16(322), + 2284: uint16(322), + 2285: uint16(322), + 2286: uint16(322), + 2287: uint16(322), + 2288: uint16(322), + 2289: uint16(322), + 2290: uint16(322), + 2291: uint16(322), + 2292: uint16(322), + 2293: uint16(322), + 2294: uint16(322), + 2295: uint16(322), + 2296: uint16(322), + 2297: uint16(322), + 2298: uint16(322), + 2299: uint16(322), + 2300: uint16(322), + 2301: uint16(322), + 2302: uint16(322), + 2303: uint16(322), + 2304: uint16(322), + 2305: uint16(322), + 2306: uint16(322), + 2307: uint16(322), + 2308: uint16(322), + 2309: uint16(322), + 2310: uint16(322), + 2311: uint16(322), + 2312: uint16(322), + 2313: uint16(322), + 2314: uint16(322), + 2315: uint16(322), + 2316: uint16(322), + 2317: uint16(322), + 2318: uint16(322), + 2319: uint16(322), + 2320: uint16(322), + 2321: uint16(322), + 2322: uint16(322), + 2323: uint16(322), + 2324: uint16(322), + 2325: uint16(322), + 2326: uint16(322), + 2327: uint16(322), +} +var _yy_shift_ofst = [583]uint16{ + 0: uint16(1792), + 1: uint16(1588), + 2: uint16(1494), 3: uint16(322), 4: uint16(322), - 5: uint16(1), - 6: uint16(1319), - 7: uint16(1478), - 8: uint16(1491), - 9: uint16(1837), - 10: uint16(1837), - 11: uint16(1837), - 12: uint16(471), - 15: uint16(214), - 16: uint16(1093), - 17: uint16(1837), - 18: uint16(1837), - 19: uint16(1837), - 20: uint16(1837), - 21: uint16(1837), - 22: uint16(1837), - 23: uint16(1837), - 24: uint16(1837), - 25: uint16(1837), - 26: uint16(1837), - 27: uint16(1837), - 28: uint16(1837), - 29: uint16(1837), - 30: uint16(1837), - 31: uint16(271), - 32: uint16(271), - 33: uint16(1219), - 34: uint16(1219), - 35: uint16(216), - 36: uint16(88), - 37: uint16(1), - 38: uint16(1), - 39: uint16(1), - 40: uint16(1), - 41: uint16(1), - 42: uint16(40), - 43: uint16(111), - 44: uint16(258), - 45: uint16(361), - 46: uint16(469), - 47: uint16(512), - 48: uint16(583), - 49: uint16(622), - 50: uint16(693), - 51: uint16(732), - 52: uint16(803), - 53: uint16(842), - 54: uint16(913), - 55: uint16(1073), - 56: uint16(1093), - 57: uint16(1093), - 58: uint16(1093), - 59: uint16(1093), - 60: uint16(1093), - 61: uint16(1093), - 62: uint16(1093), - 63: uint16(1093), - 64: uint16(1093), + 5: uint16(399), + 6: uint16(306), + 7: uint16(1319), + 8: uint16(1339), + 9: uint16(1430), + 10: uint16(1828), + 11: uint16(1828), + 12: uint16(1828), + 13: uint16(580), + 14: uint16(399), + 15: uint16(399), + 16: uint16(399), + 17: uint16(399), + 18: uint16(399), + 21: uint16(214), + 22: uint16(1093), + 23: uint16(1828), + 24: uint16(1828), + 25: uint16(1828), + 26: uint16(1828), + 27: uint16(1828), + 28: uint16(1828), + 29: uint16(1828), + 30: uint16(1828), + 31: uint16(1828), + 32: uint16(1828), + 33: uint16(1828), + 34: uint16(1828), + 35: uint16(1828), + 36: uint16(1828), + 37: uint16(1828), + 38: uint16(1130), + 39: uint16(1130), + 40: uint16(365), + 41: uint16(365), + 42: uint16(55), + 43: uint16(278), + 44: uint16(436), + 45: uint16(713), + 46: uint16(713), + 47: uint16(201), + 48: uint16(201), + 49: uint16(201), + 50: uint16(201), + 51: uint16(40), + 52: uint16(111), + 53: uint16(258), + 54: uint16(361), + 55: uint16(469), + 56: uint16(512), + 57: uint16(583), + 58: uint16(622), + 59: uint16(693), + 60: uint16(732), + 61: uint16(803), + 62: uint16(842), + 63: uint16(913), + 64: uint16(1073), 65: uint16(1093), 66: uint16(1093), 67: uint16(1093), @@ -156734,1505 +158281,1514 @@ var _yy_shift_ofst = [579]uint16{ 71: uint16(1093), 72: uint16(1093), 73: uint16(1093), - 74: uint16(1113), + 74: uint16(1093), 75: uint16(1093), - 76: uint16(1216), - 77: uint16(957), - 78: uint16(957), - 79: uint16(1635), - 80: uint16(1662), - 81: uint16(1777), - 82: uint16(1837), - 83: uint16(1837), - 84: uint16(1837), - 85: uint16(1837), - 86: uint16(1837), - 87: uint16(1837), - 88: uint16(1837), - 89: uint16(1837), - 90: uint16(1837), - 91: uint16(1837), - 92: uint16(1837), - 93: uint16(1837), - 94: uint16(1837), - 95: uint16(1837), - 96: uint16(1837), - 97: uint16(1837), - 98: uint16(1837), - 99: uint16(1837), - 100: uint16(1837), - 101: uint16(1837), - 102: uint16(1837), - 103: uint16(1837), - 104: uint16(1837), - 105: uint16(1837), - 106: uint16(1837), - 107: uint16(1837), - 108: uint16(1837), - 109: uint16(1837), - 110: uint16(1837), - 111: uint16(1837), - 112: uint16(1837), - 113: uint16(1837), - 114: uint16(1837), - 115: uint16(1837), - 116: uint16(1837), - 117: uint16(1837), - 118: uint16(1837), - 119: uint16(1837), - 120: uint16(1837), - 121: uint16(1837), - 122: uint16(1837), - 123: uint16(1837), - 124: uint16(1837), - 125: uint16(1837), - 126: uint16(1837), - 127: uint16(1837), - 128: uint16(1837), - 129: uint16(1837), - 130: uint16(1837), - 131: uint16(137), - 132: uint16(181), - 133: uint16(181), - 134: uint16(181), - 135: uint16(181), - 136: uint16(181), - 137: uint16(181), - 138: uint16(181), - 139: uint16(94), - 140: uint16(430), - 141: uint16(66), - 142: uint16(65), - 143: uint16(112), - 144: uint16(366), - 145: uint16(533), - 146: uint16(533), - 147: uint16(740), - 148: uint16(1257), - 149: uint16(533), - 150: uint16(533), - 151: uint16(79), - 152: uint16(79), - 153: uint16(533), - 154: uint16(412), - 155: uint16(412), - 156: uint16(412), - 157: uint16(77), - 158: uint16(412), - 159: uint16(123), - 160: uint16(113), - 161: uint16(113), - 162: uint16(113), - 163: uint16(22), - 164: uint16(22), - 165: uint16(2100), - 166: uint16(2100), - 167: uint16(328), - 168: uint16(328), - 169: uint16(328), - 170: uint16(239), - 171: uint16(468), - 172: uint16(468), - 173: uint16(468), - 174: uint16(468), - 175: uint16(1015), - 176: uint16(1015), - 177: uint16(409), - 178: uint16(366), - 179: uint16(1187), - 180: uint16(1232), - 181: uint16(533), - 182: uint16(533), - 183: uint16(533), - 184: uint16(533), - 185: uint16(533), - 186: uint16(533), - 187: uint16(533), - 188: uint16(533), - 189: uint16(533), - 190: uint16(533), - 191: uint16(533), - 192: uint16(533), - 193: uint16(533), - 194: uint16(533), - 195: uint16(533), - 196: uint16(533), - 197: uint16(533), - 198: uint16(533), - 199: uint16(533), - 200: uint16(533), - 201: uint16(969), - 202: uint16(621), - 203: uint16(621), - 204: uint16(533), - 205: uint16(642), - 206: uint16(788), - 207: uint16(788), - 208: uint16(1133), - 209: uint16(1133), - 210: uint16(822), - 211: uint16(822), - 212: uint16(67), - 213: uint16(1193), - 214: uint16(2100), - 215: uint16(2100), - 216: uint16(2100), - 217: uint16(2100), - 218: uint16(2100), - 219: uint16(2100), - 220: uint16(2100), - 221: uint16(1307), - 222: uint16(954), - 223: uint16(954), - 224: uint16(585), - 225: uint16(472), - 226: uint16(640), - 227: uint16(387), - 228: uint16(695), - 229: uint16(538), - 230: uint16(541), - 231: uint16(700), - 232: uint16(533), - 233: uint16(533), - 234: uint16(533), - 235: uint16(533), - 236: uint16(533), - 237: uint16(533), - 238: uint16(533), - 239: uint16(533), - 240: uint16(533), - 241: uint16(533), - 242: uint16(222), - 243: uint16(533), - 244: uint16(533), - 245: uint16(533), - 246: uint16(533), - 247: uint16(533), - 248: uint16(533), - 249: uint16(533), - 250: uint16(533), - 251: uint16(533), - 252: uint16(533), - 253: uint16(533), - 254: uint16(533), - 255: uint16(1213), - 256: uint16(1213), - 257: uint16(1213), - 258: uint16(533), - 259: uint16(533), - 260: uint16(533), - 261: uint16(565), - 262: uint16(533), - 263: uint16(533), - 264: uint16(533), - 265: uint16(916), - 266: uint16(1147), - 267: uint16(533), - 268: uint16(533), - 269: uint16(1288), - 270: uint16(533), - 271: uint16(533), - 272: uint16(533), - 273: uint16(533), - 274: uint16(533), - 275: uint16(533), - 276: uint16(533), - 277: uint16(533), - 278: uint16(639), - 279: uint16(1280), - 280: uint16(209), - 281: uint16(1129), - 282: uint16(1129), - 283: uint16(1129), - 284: uint16(1129), - 285: uint16(580), - 286: uint16(209), - 287: uint16(209), - 288: uint16(1209), - 289: uint16(768), - 290: uint16(917), - 291: uint16(649), - 292: uint16(1315), - 293: uint16(1334), - 294: uint16(405), - 295: uint16(1334), - 296: uint16(1383), - 297: uint16(249), - 298: uint16(1315), - 299: uint16(1315), - 300: uint16(249), - 301: uint16(1315), - 302: uint16(405), - 303: uint16(1383), - 304: uint16(1441), - 305: uint16(464), - 306: uint16(1245), - 307: uint16(1417), - 308: uint16(1417), - 309: uint16(1417), - 310: uint16(1323), - 311: uint16(1323), - 312: uint16(1323), - 313: uint16(1323), - 314: uint16(184), - 315: uint16(184), - 316: uint16(1335), - 317: uint16(1476), - 318: uint16(856), - 319: uint16(1482), - 320: uint16(1744), - 321: uint16(1744), - 322: uint16(1665), - 323: uint16(1665), - 324: uint16(1773), - 325: uint16(1773), - 326: uint16(1665), - 327: uint16(1669), - 328: uint16(1671), - 329: uint16(1802), - 330: uint16(1782), - 331: uint16(1809), - 332: uint16(1809), - 333: uint16(1809), - 334: uint16(1809), - 335: uint16(1665), - 336: uint16(1817), - 337: uint16(1690), - 338: uint16(1671), - 339: uint16(1671), - 340: uint16(1690), - 341: uint16(1802), - 342: uint16(1782), - 343: uint16(1690), - 344: uint16(1782), - 345: uint16(1690), - 346: uint16(1665), - 347: uint16(1817), - 348: uint16(1693), - 349: uint16(1791), - 350: uint16(1665), - 351: uint16(1817), - 352: uint16(1832), - 353: uint16(1665), - 354: uint16(1817), - 355: uint16(1665), - 356: uint16(1817), - 357: uint16(1832), - 358: uint16(1752), - 359: uint16(1752), - 360: uint16(1752), - 361: uint16(1805), - 362: uint16(1850), - 363: uint16(1850), - 364: uint16(1832), - 365: uint16(1752), - 366: uint16(1749), - 367: uint16(1752), - 368: uint16(1805), - 369: uint16(1752), - 370: uint16(1752), - 371: uint16(1713), - 372: uint16(1858), - 373: uint16(1775), - 374: uint16(1775), - 375: uint16(1832), - 376: uint16(1665), - 377: uint16(1799), - 378: uint16(1799), - 379: uint16(1823), - 380: uint16(1823), - 381: uint16(1761), - 382: uint16(1765), - 383: uint16(1890), - 384: uint16(1665), - 385: uint16(1757), - 386: uint16(1761), - 387: uint16(1771), - 388: uint16(1774), - 389: uint16(1690), - 390: uint16(1894), - 391: uint16(1913), - 392: uint16(1913), - 393: uint16(1929), - 394: uint16(1929), - 395: uint16(1929), - 396: uint16(2100), - 397: uint16(2100), - 398: uint16(2100), - 399: uint16(2100), - 400: uint16(2100), - 401: uint16(2100), - 402: uint16(2100), - 403: uint16(2100), - 404: uint16(2100), - 405: uint16(2100), - 406: uint16(2100), - 407: uint16(2100), - 408: uint16(2100), - 409: uint16(2100), - 410: uint16(2100), - 411: uint16(207), - 412: uint16(1220), - 413: uint16(331), - 414: uint16(620), - 415: uint16(967), - 416: uint16(806), - 417: uint16(1074), - 418: uint16(1499), - 419: uint16(1432), - 420: uint16(1463), - 421: uint16(1479), - 422: uint16(1419), - 423: uint16(1422), - 424: uint16(1557), - 425: uint16(1512), - 426: uint16(1598), - 427: uint16(1599), - 428: uint16(1644), - 429: uint16(1645), - 430: uint16(1654), - 431: uint16(1660), - 432: uint16(1555), - 433: uint16(1505), - 434: uint16(1684), - 435: uint16(1462), - 436: uint16(1670), - 437: uint16(1563), - 438: uint16(1619), - 439: uint16(1593), - 440: uint16(1676), - 441: uint16(1679), - 442: uint16(1613), - 443: uint16(1680), - 444: uint16(1554), - 445: uint16(1558), - 446: uint16(1689), - 447: uint16(1692), - 448: uint16(1605), - 449: uint16(1589), - 450: uint16(1955), - 451: uint16(1959), - 452: uint16(1941), - 453: uint16(1803), - 454: uint16(1950), - 455: uint16(1951), - 456: uint16(1945), - 457: uint16(1946), - 458: uint16(1831), - 459: uint16(1820), - 460: uint16(1842), - 461: uint16(1948), - 462: uint16(1948), - 463: uint16(1952), - 464: uint16(1833), - 465: uint16(1954), - 466: uint16(1834), - 467: uint16(1961), - 468: uint16(1978), - 469: uint16(1838), - 470: uint16(1851), - 471: uint16(1948), - 472: uint16(1852), - 473: uint16(1922), - 474: uint16(1947), - 475: uint16(1948), - 476: uint16(1836), - 477: uint16(1932), - 478: uint16(1935), - 479: uint16(1936), - 480: uint16(1942), - 481: uint16(1866), - 482: uint16(1881), - 483: uint16(1964), - 484: uint16(1859), - 485: uint16(1998), - 486: uint16(1996), - 487: uint16(1980), - 488: uint16(1888), - 489: uint16(1843), - 490: uint16(1937), - 491: uint16(1981), - 492: uint16(1939), - 493: uint16(1933), - 494: uint16(1968), - 495: uint16(1869), - 496: uint16(1896), - 497: uint16(1988), - 498: uint16(1993), - 499: uint16(1995), - 500: uint16(1884), - 501: uint16(1891), - 502: uint16(1997), - 503: uint16(1953), - 504: uint16(1999), - 505: uint16(2000), - 506: uint16(1994), - 507: uint16(2001), - 508: uint16(1957), - 509: uint16(1966), - 510: uint16(2002), - 511: uint16(1931), - 512: uint16(1990), - 513: uint16(2006), - 514: uint16(1962), - 515: uint16(2003), - 516: uint16(2007), - 517: uint16(2004), - 518: uint16(1882), - 519: uint16(2010), - 520: uint16(2011), - 521: uint16(2012), - 522: uint16(2008), - 523: uint16(2013), - 524: uint16(2015), - 525: uint16(1944), - 526: uint16(1898), - 527: uint16(2019), - 528: uint16(2020), - 529: uint16(1928), - 530: uint16(2014), - 531: uint16(2023), - 532: uint16(1903), - 533: uint16(2022), - 534: uint16(2016), - 535: uint16(2017), - 536: uint16(2018), - 537: uint16(2021), - 538: uint16(1965), - 539: uint16(1974), - 540: uint16(1970), - 541: uint16(2024), - 542: uint16(1979), - 543: uint16(1967), - 544: uint16(2025), - 545: uint16(2034), - 546: uint16(2036), - 547: uint16(2037), - 548: uint16(2038), - 549: uint16(2039), - 550: uint16(2028), - 551: uint16(1923), - 552: uint16(1924), - 553: uint16(2044), - 554: uint16(2022), - 555: uint16(2046), - 556: uint16(2047), - 557: uint16(2048), - 558: uint16(2049), - 559: uint16(2050), - 560: uint16(2051), - 561: uint16(2054), - 562: uint16(2062), - 563: uint16(2055), - 564: uint16(2056), - 565: uint16(2057), - 566: uint16(2058), - 567: uint16(2060), - 568: uint16(2061), - 569: uint16(2059), - 570: uint16(1956), - 571: uint16(1938), - 572: uint16(1949), - 573: uint16(1958), - 574: uint16(2063), - 575: uint16(2064), - 576: uint16(2070), - 577: uint16(2085), - 578: uint16(2088), -} -var _yy_reduce_ofst = [411]int16{ - 0: int16(-int32(125)), - 1: int16(733), - 2: int16(789), - 3: int16(241), - 4: int16(293), - 5: int16(-int32(123)), - 6: int16(-int32(193)), - 7: int16(-int32(191)), - 8: int16(-int32(183)), - 9: int16(-int32(187)), - 10: int16(166), - 11: int16(238), - 12: int16(133), - 13: int16(-int32(207)), - 14: int16(-int32(199)), - 15: int16(-int32(267)), - 16: int16(-int32(176)), - 17: int16(-int32(6)), - 18: int16(204), - 19: int16(489), - 20: int16(576), - 21: int16(598), - 22: int16(-int32(175)), - 23: int16(686), - 24: int16(860), - 25: int16(615), - 26: int16(725), - 27: int16(1014), - 28: int16(778), - 29: int16(781), - 30: int16(857), - 31: int16(616), - 32: int16(887), - 33: int16(87), - 34: int16(240), - 35: int16(-int32(192)), - 36: int16(408), - 37: int16(626), - 38: int16(796), - 39: int16(843), - 40: int16(854), - 41: int16(1004), - 42: int16(-int32(271)), - 43: int16(-int32(271)), - 44: int16(-int32(271)), - 45: int16(-int32(271)), - 46: int16(-int32(271)), - 47: int16(-int32(271)), - 48: int16(-int32(271)), - 49: int16(-int32(271)), - 50: int16(-int32(271)), - 51: int16(-int32(271)), - 52: int16(-int32(271)), - 53: int16(-int32(271)), - 54: int16(-int32(271)), - 55: int16(-int32(271)), - 56: int16(-int32(271)), - 57: int16(-int32(271)), - 58: int16(-int32(271)), - 59: int16(-int32(271)), - 60: int16(-int32(271)), - 61: int16(-int32(271)), - 62: int16(-int32(271)), - 63: int16(-int32(271)), - 64: int16(-int32(271)), - 65: int16(-int32(271)), - 66: int16(-int32(271)), - 67: int16(-int32(271)), - 68: int16(-int32(271)), - 69: int16(-int32(271)), - 70: int16(-int32(271)), - 71: int16(-int32(271)), - 72: int16(-int32(271)), - 73: int16(-int32(271)), - 74: int16(-int32(271)), - 75: int16(-int32(271)), - 76: int16(-int32(271)), - 77: int16(-int32(271)), - 78: int16(-int32(271)), - 79: int16(80), - 80: int16(83), - 81: int16(313), - 82: int16(886), - 83: int16(888), - 84: int16(918), - 85: int16(938), - 86: int16(1021), - 87: int16(1034), - 88: int16(1036), - 89: int16(1141), - 90: int16(1159), - 91: int16(1163), - 92: int16(1166), - 93: int16(1168), - 94: int16(1170), - 95: int16(1176), - 96: int16(1178), - 97: int16(1180), - 98: int16(1184), - 99: int16(1196), - 100: int16(1198), - 101: int16(1205), - 102: int16(1215), - 103: int16(1225), - 104: int16(1227), - 105: int16(1236), - 106: int16(1252), - 107: int16(1254), - 108: int16(1264), - 109: int16(1303), - 110: int16(1309), - 111: int16(1312), - 112: int16(1322), - 113: int16(1325), - 114: int16(1328), - 115: int16(1337), - 116: int16(1340), - 117: int16(1343), - 118: int16(1353), - 119: int16(1371), - 120: int16(1373), - 121: int16(1384), - 122: int16(1386), - 123: int16(1411), - 124: int16(1413), - 125: int16(1420), - 126: int16(1424), - 127: int16(1426), - 128: int16(1458), - 129: int16(1470), - 130: int16(1473), - 131: int16(-int32(271)), - 132: int16(-int32(271)), - 133: int16(-int32(271)), - 134: int16(-int32(271)), - 135: int16(-int32(271)), - 136: int16(-int32(271)), - 137: int16(-int32(271)), - 138: int16(-int32(271)), - 139: int16(-int32(271)), - 140: int16(-int32(271)), - 141: int16(-int32(271)), - 142: int16(138), - 143: int16(459), - 144: int16(396), - 145: int16(-int32(158)), - 146: int16(470), - 147: int16(302), - 148: int16(-int32(212)), - 149: int16(521), - 150: int16(201), - 151: int16(-int32(195)), - 152: int16(-int32(92)), - 153: int16(559), - 154: int16(630), - 155: int16(632), - 156: int16(630), - 157: int16(-int32(271)), - 158: int16(632), - 159: int16(901), - 160: int16(63), - 161: int16(407), - 162: int16(670), - 163: int16(-int32(271)), - 164: int16(-int32(271)), - 165: int16(-int32(271)), - 166: int16(-int32(271)), - 167: int16(161), - 168: int16(161), - 169: int16(161), - 170: int16(251), - 171: int16(335), - 172: int16(847), - 173: int16(979), - 174: int16(1097), - 175: int16(537), - 176: int16(588), - 177: int16(618), - 178: int16(628), - 179: int16(688), - 180: int16(688), - 181: int16(-int32(166)), - 182: int16(-int32(161)), - 183: int16(674), - 184: int16(787), - 185: int16(794), - 186: int16(799), - 187: int16(852), - 188: int16(996), - 189: int16(-int32(122)), - 190: int16(837), - 191: int16(-int32(120)), - 192: int16(1018), - 193: int16(1035), - 194: int16(415), - 195: int16(1047), - 196: int16(1001), - 197: int16(958), - 198: int16(1082), - 199: int16(400), - 200: int16(1099), - 201: int16(779), - 202: int16(1137), - 203: int16(1142), - 204: int16(263), - 205: int16(1083), - 206: int16(1145), - 207: int16(1150), - 208: int16(1041), - 209: int16(1139), - 210: int16(965), - 211: int16(1050), - 212: int16(362), - 213: int16(849), - 214: int16(752), - 215: int16(629), - 216: int16(675), - 217: int16(1162), - 218: int16(1173), - 219: int16(1090), - 220: int16(1195), - 221: int16(-int32(194)), - 222: int16(56), - 223: int16(185), - 224: int16(-int32(135)), - 225: int16(232), - 226: int16(522), - 227: int16(560), - 228: int16(571), - 229: int16(601), - 230: int16(617), - 231: int16(669), - 232: int16(683), - 233: int16(711), - 234: int16(850), - 235: int16(893), - 236: int16(1000), - 237: int16(1040), - 238: int16(1049), - 239: int16(1081), - 240: int16(1087), - 241: int16(1101), - 242: int16(392), - 243: int16(1114), - 244: int16(1123), - 245: int16(1155), - 246: int16(1161), - 247: int16(1175), - 248: int16(1271), - 249: int16(1293), - 250: int16(1299), - 251: int16(1330), - 252: int16(1339), - 253: int16(1342), - 254: int16(1347), - 255: int16(593), - 256: int16(1282), - 257: int16(1286), - 258: int16(1350), - 259: int16(1359), - 260: int16(1368), - 261: int16(1314), - 262: int16(1480), - 263: int16(1483), - 264: int16(1507), - 265: int16(1085), - 266: int16(1338), - 267: int16(1526), - 268: int16(1527), - 269: int16(1487), - 270: int16(1531), - 271: int16(560), - 272: int16(1532), - 273: int16(1534), - 274: int16(1535), - 275: int16(1538), - 276: int16(1539), - 277: int16(1541), - 278: int16(1448), - 279: int16(1450), - 280: int16(1496), - 281: int16(1484), - 282: int16(1485), - 283: int16(1489), - 284: int16(1490), - 285: int16(1314), - 286: int16(1496), - 287: int16(1496), - 288: int16(1504), - 289: int16(1536), - 290: int16(1564), - 291: int16(1451), - 292: int16(1486), - 293: int16(1492), - 294: int16(1509), - 295: int16(1493), - 296: int16(1465), - 297: int16(1515), - 298: int16(1494), - 299: int16(1495), - 300: int16(1517), - 301: int16(1500), - 302: int16(1519), - 303: int16(1474), - 304: int16(1550), - 305: int16(1543), - 306: int16(1548), - 307: int16(1556), - 308: int16(1565), - 309: int16(1566), - 310: int16(1518), - 311: int16(1523), - 312: int16(1542), - 313: int16(1544), - 314: int16(1525), - 315: int16(1545), - 316: int16(1513), - 317: int16(1553), - 318: int16(1552), - 319: int16(1604), - 320: int16(1508), - 321: int16(1510), - 322: int16(1608), - 323: int16(1609), - 324: int16(1520), - 325: int16(1528), - 326: int16(1612), - 327: int16(1540), - 328: int16(1559), - 329: int16(1560), - 330: int16(1592), - 331: int16(1591), - 332: int16(1595), - 333: int16(1596), - 334: int16(1597), - 335: int16(1629), - 336: int16(1638), - 337: int16(1594), - 338: int16(1569), - 339: int16(1570), - 340: int16(1600), - 341: int16(1568), - 342: int16(1610), - 343: int16(1601), - 344: int16(1611), - 345: int16(1603), - 346: int16(1643), - 347: int16(1651), - 348: int16(1562), - 349: int16(1571), - 350: int16(1655), - 351: int16(1659), - 352: int16(1640), - 353: int16(1663), - 354: int16(1666), - 355: int16(1664), - 356: int16(1667), - 357: int16(1641), - 358: int16(1650), - 359: int16(1652), - 360: int16(1653), - 361: int16(1647), - 362: int16(1656), - 363: int16(1657), - 364: int16(1658), - 365: int16(1668), - 366: int16(1672), - 367: int16(1681), - 368: int16(1649), - 369: int16(1682), - 370: int16(1683), - 371: int16(1573), - 372: int16(1582), - 373: int16(1607), - 374: int16(1615), - 375: int16(1685), - 376: int16(1702), - 377: int16(1586), - 378: int16(1587), - 379: int16(1642), - 380: int16(1646), - 381: int16(1673), - 382: int16(1675), - 383: int16(1636), - 384: int16(1714), - 385: int16(1637), - 386: int16(1677), - 387: int16(1674), - 388: int16(1678), - 389: int16(1694), - 390: int16(1719), - 391: int16(1734), - 392: int16(1735), - 393: int16(1746), - 394: int16(1747), - 395: int16(1750), - 396: int16(1633), - 397: int16(1661), + 76: uint16(1093), + 77: uint16(1093), + 78: uint16(1093), + 79: uint16(1093), + 80: uint16(1093), + 81: uint16(1093), + 82: uint16(1093), + 83: uint16(1113), + 84: uint16(1093), + 85: uint16(1216), + 86: uint16(957), + 87: uint16(957), + 88: uint16(1523), + 89: uint16(1602), + 90: uint16(1674), + 91: uint16(1828), + 92: uint16(1828), + 93: uint16(1828), + 94: uint16(1828), + 95: uint16(1828), + 96: uint16(1828), + 97: uint16(1828), + 98: uint16(1828), + 99: uint16(1828), + 100: uint16(1828), + 101: uint16(1828), + 102: uint16(1828), + 103: uint16(1828), + 104: uint16(1828), + 105: uint16(1828), + 106: uint16(1828), + 107: uint16(1828), + 108: uint16(1828), + 109: uint16(1828), + 110: uint16(1828), + 111: uint16(1828), + 112: uint16(1828), + 113: uint16(1828), + 114: uint16(1828), + 115: uint16(1828), + 116: uint16(1828), + 117: uint16(1828), + 118: uint16(1828), + 119: uint16(1828), + 120: uint16(1828), + 121: uint16(1828), + 122: uint16(1828), + 123: uint16(1828), + 124: uint16(1828), + 125: uint16(1828), + 126: uint16(1828), + 127: uint16(1828), + 128: uint16(1828), + 129: uint16(1828), + 130: uint16(1828), + 131: uint16(1828), + 132: uint16(1828), + 133: uint16(1828), + 134: uint16(1828), + 135: uint16(1828), + 136: uint16(1828), + 137: uint16(1828), + 138: uint16(1828), + 139: uint16(1828), + 140: uint16(137), + 141: uint16(181), + 142: uint16(181), + 143: uint16(181), + 144: uint16(181), + 145: uint16(181), + 146: uint16(181), + 147: uint16(181), + 148: uint16(96), + 149: uint16(222), + 150: uint16(143), + 151: uint16(477), + 152: uint16(713), + 153: uint16(1133), + 154: uint16(1268), + 155: uint16(713), + 156: uint16(713), + 157: uint16(79), + 158: uint16(79), + 159: uint16(713), + 160: uint16(770), + 161: uint16(83), + 162: uint16(65), + 163: uint16(65), + 164: uint16(65), + 165: uint16(288), + 166: uint16(162), + 167: uint16(162), + 168: uint16(2142), + 169: uint16(2142), + 170: uint16(696), + 171: uint16(696), + 172: uint16(696), + 173: uint16(238), + 174: uint16(474), + 175: uint16(474), + 176: uint16(474), + 177: uint16(474), + 178: uint16(1217), + 179: uint16(1217), + 180: uint16(678), + 181: uint16(477), + 182: uint16(324), + 183: uint16(398), + 184: uint16(713), + 185: uint16(713), + 186: uint16(713), + 187: uint16(713), + 188: uint16(713), + 189: uint16(713), + 190: uint16(713), + 191: uint16(713), + 192: uint16(713), + 193: uint16(713), + 194: uint16(713), + 195: uint16(713), + 196: uint16(713), + 197: uint16(713), + 198: uint16(713), + 199: uint16(713), + 200: uint16(713), + 201: uint16(713), + 202: uint16(713), + 203: uint16(1220), + 204: uint16(366), + 205: uint16(366), + 206: uint16(713), + 207: uint16(917), + 208: uint16(283), + 209: uint16(283), + 210: uint16(434), + 211: uint16(434), + 212: uint16(605), + 213: uint16(605), + 214: uint16(1298), + 215: uint16(2142), + 216: uint16(2142), + 217: uint16(2142), + 218: uint16(2142), + 219: uint16(2142), + 220: uint16(2142), + 221: uint16(2142), + 222: uint16(1179), + 223: uint16(1157), + 224: uint16(1157), + 225: uint16(487), + 226: uint16(527), + 227: uint16(585), + 228: uint16(645), + 229: uint16(749), + 230: uint16(914), + 231: uint16(968), + 232: uint16(752), + 233: uint16(713), + 234: uint16(713), + 235: uint16(713), + 236: uint16(713), + 237: uint16(713), + 238: uint16(713), + 239: uint16(713), + 240: uint16(713), + 241: uint16(713), + 242: uint16(713), + 243: uint16(303), + 244: uint16(713), + 245: uint16(713), + 246: uint16(713), + 247: uint16(713), + 248: uint16(713), + 249: uint16(713), + 250: uint16(713), + 251: uint16(713), + 252: uint16(713), + 253: uint16(713), + 254: uint16(713), + 255: uint16(713), + 256: uint16(797), + 257: uint16(797), + 258: uint16(797), + 259: uint16(713), + 260: uint16(713), + 261: uint16(713), + 262: uint16(959), + 263: uint16(713), + 264: uint16(713), + 265: uint16(713), + 266: uint16(1169), + 267: uint16(1271), + 268: uint16(713), + 269: uint16(713), + 270: uint16(1330), + 271: uint16(713), + 272: uint16(713), + 273: uint16(713), + 274: uint16(713), + 275: uint16(713), + 276: uint16(713), + 277: uint16(713), + 278: uint16(713), + 279: uint16(629), + 280: uint16(7), + 281: uint16(91), + 282: uint16(876), + 283: uint16(876), + 284: uint16(876), + 285: uint16(876), + 286: uint16(953), + 287: uint16(91), + 288: uint16(91), + 289: uint16(1246), + 290: uint16(1065), + 291: uint16(1106), + 292: uint16(1374), + 293: uint16(1329), + 294: uint16(1348), + 295: uint16(468), + 296: uint16(1348), + 297: uint16(1394), + 298: uint16(785), + 299: uint16(1329), + 300: uint16(1329), + 301: uint16(785), + 302: uint16(1329), + 303: uint16(468), + 304: uint16(1394), + 305: uint16(859), + 306: uint16(854), + 307: uint16(1402), + 308: uint16(1449), + 309: uint16(1449), + 310: uint16(1449), + 311: uint16(1173), + 312: uint16(1173), + 313: uint16(1173), + 314: uint16(1173), + 315: uint16(1355), + 316: uint16(1355), + 317: uint16(1030), + 318: uint16(1341), + 319: uint16(405), + 320: uint16(1230), + 321: uint16(1795), + 322: uint16(1795), + 323: uint16(1711), + 324: uint16(1711), + 325: uint16(1829), + 326: uint16(1829), + 327: uint16(1711), + 328: uint16(1717), + 329: uint16(1719), + 330: uint16(1850), + 331: uint16(1833), + 332: uint16(1860), + 333: uint16(1860), + 334: uint16(1860), + 335: uint16(1860), + 336: uint16(1711), + 337: uint16(1868), + 338: uint16(1740), + 339: uint16(1719), + 340: uint16(1719), + 341: uint16(1740), + 342: uint16(1850), + 343: uint16(1833), + 344: uint16(1740), + 345: uint16(1833), + 346: uint16(1740), + 347: uint16(1711), + 348: uint16(1868), + 349: uint16(1745), + 350: uint16(1843), + 351: uint16(1711), + 352: uint16(1868), + 353: uint16(1887), + 354: uint16(1711), + 355: uint16(1868), + 356: uint16(1711), + 357: uint16(1868), + 358: uint16(1887), + 359: uint16(1801), + 360: uint16(1801), + 361: uint16(1801), + 362: uint16(1855), + 363: uint16(1900), + 364: uint16(1900), + 365: uint16(1887), + 366: uint16(1801), + 367: uint16(1797), + 368: uint16(1801), + 369: uint16(1855), + 370: uint16(1801), + 371: uint16(1801), + 372: uint16(1761), + 373: uint16(1912), + 374: uint16(1830), + 375: uint16(1830), + 376: uint16(1887), + 377: uint16(1711), + 378: uint16(1862), + 379: uint16(1862), + 380: uint16(1875), + 381: uint16(1875), + 382: uint16(1810), + 383: uint16(1815), + 384: uint16(1940), + 385: uint16(1711), + 386: uint16(1807), + 387: uint16(1810), + 388: uint16(1821), + 389: uint16(1823), + 390: uint16(1740), + 391: uint16(1945), + 392: uint16(1963), + 393: uint16(1963), + 394: uint16(1974), + 395: uint16(1974), + 396: uint16(1974), + 397: uint16(2142), + 398: uint16(2142), + 399: uint16(2142), + 400: uint16(2142), + 401: uint16(2142), + 402: uint16(2142), + 403: uint16(2142), + 404: uint16(2142), + 405: uint16(2142), + 406: uint16(2142), + 407: uint16(2142), + 408: uint16(2142), + 409: uint16(2142), + 410: uint16(2142), + 411: uint16(2142), + 412: uint16(20), + 413: uint16(1224), + 414: uint16(256), + 415: uint16(1111), + 416: uint16(1115), + 417: uint16(1114), + 418: uint16(1192), + 419: uint16(1496), + 420: uint16(1424), + 421: uint16(1505), + 422: uint16(1427), + 423: uint16(355), + 424: uint16(1383), + 425: uint16(1537), + 426: uint16(1506), + 427: uint16(1538), + 428: uint16(1553), + 429: uint16(1583), + 430: uint16(1584), + 431: uint16(1591), + 432: uint16(1625), + 433: uint16(541), + 434: uint16(1445), + 435: uint16(1562), + 436: uint16(1450), + 437: uint16(1572), + 438: uint16(1515), + 439: uint16(1428), + 440: uint16(1532), + 441: uint16(1592), + 442: uint16(1629), + 443: uint16(1520), + 444: uint16(1630), + 445: uint16(1639), + 446: uint16(1510), + 447: uint16(1544), + 448: uint16(1662), + 449: uint16(1675), + 450: uint16(1551), + 451: uint16(48), + 452: uint16(1996), + 453: uint16(2001), + 454: uint16(1983), + 455: uint16(1844), + 456: uint16(1993), + 457: uint16(1994), + 458: uint16(1986), + 459: uint16(1989), + 460: uint16(1874), + 461: uint16(1863), + 462: uint16(1885), + 463: uint16(1991), + 464: uint16(1991), + 465: uint16(1995), + 466: uint16(1876), + 467: uint16(1997), + 468: uint16(1877), + 469: uint16(2004), + 470: uint16(2021), + 471: uint16(1881), + 472: uint16(1894), + 473: uint16(1991), + 474: uint16(1895), + 475: uint16(1965), + 476: uint16(1990), + 477: uint16(1991), + 478: uint16(1878), + 479: uint16(1975), + 480: uint16(1977), + 481: uint16(1978), + 482: uint16(1979), + 483: uint16(1903), + 484: uint16(1918), + 485: uint16(2002), + 486: uint16(1896), + 487: uint16(2034), + 488: uint16(2033), + 489: uint16(2017), + 490: uint16(1925), + 491: uint16(1880), + 492: uint16(1976), + 493: uint16(2018), + 494: uint16(1980), + 495: uint16(1967), + 496: uint16(2005), + 497: uint16(1904), + 498: uint16(1932), + 499: uint16(2025), + 500: uint16(2030), + 501: uint16(2032), + 502: uint16(1921), + 503: uint16(1928), + 504: uint16(2035), + 505: uint16(1987), + 506: uint16(2036), + 507: uint16(2037), + 508: uint16(2038), + 509: uint16(2040), + 510: uint16(1988), + 511: uint16(2006), + 512: uint16(2039), + 513: uint16(1960), + 514: uint16(2041), + 515: uint16(2042), + 516: uint16(1999), + 517: uint16(2023), + 518: uint16(2044), + 519: uint16(2043), + 520: uint16(1919), + 521: uint16(2048), + 522: uint16(2049), + 523: uint16(2050), + 524: uint16(2046), + 525: uint16(2051), + 526: uint16(2053), + 527: uint16(1981), + 528: uint16(1935), + 529: uint16(2056), + 530: uint16(2057), + 531: uint16(1966), + 532: uint16(2047), + 533: uint16(2061), + 534: uint16(1941), + 535: uint16(2060), + 536: uint16(2052), + 537: uint16(2054), + 538: uint16(2055), + 539: uint16(2058), + 540: uint16(2003), + 541: uint16(2012), + 542: uint16(2007), + 543: uint16(2059), + 544: uint16(2015), + 545: uint16(2008), + 546: uint16(2062), + 547: uint16(2071), + 548: uint16(2073), + 549: uint16(2074), + 550: uint16(2072), + 551: uint16(2075), + 552: uint16(2065), + 553: uint16(1962), + 554: uint16(1964), + 555: uint16(2079), + 556: uint16(2060), + 557: uint16(2082), + 558: uint16(2084), + 559: uint16(2085), + 560: uint16(2087), + 561: uint16(2086), + 562: uint16(2089), + 563: uint16(2088), + 564: uint16(2091), + 565: uint16(2093), + 566: uint16(2099), + 567: uint16(2094), + 568: uint16(2095), + 569: uint16(2096), + 570: uint16(2097), + 571: uint16(2100), + 572: uint16(2101), + 573: uint16(2102), + 574: uint16(1998), + 575: uint16(1984), + 576: uint16(1985), + 577: uint16(2000), + 578: uint16(2103), + 579: uint16(2098), + 580: uint16(2109), + 581: uint16(2117), + 582: uint16(2128), +} +var _yy_reduce_ofst = [412]int16{ + 0: int16(-int32(71)), + 1: int16(194), + 2: int16(343), + 3: int16(835), + 4: int16(-int32(180)), + 5: int16(-int32(177)), + 6: int16(838), + 7: int16(-int32(194)), + 8: int16(-int32(188)), + 9: int16(-int32(185)), + 10: int16(-int32(183)), + 11: int16(82), + 12: int16(183), + 13: int16(-int32(65)), + 14: int16(133), + 15: int16(245), + 16: int16(346), + 17: int16(407), + 18: int16(458), + 19: int16(-int32(178)), + 20: int16(75), + 21: int16(-int32(275)), + 22: int16(-int32(4)), + 23: int16(310), + 24: int16(312), + 25: int16(489), + 26: int16(575), + 27: int16(596), + 28: int16(463), + 29: int16(686), + 30: int16(707), + 31: int16(725), + 32: int16(780), + 33: int16(1098), + 34: int16(856), + 35: int16(778), + 36: int16(1059), + 37: int16(1090), + 38: int16(708), + 39: int16(887), + 40: int16(86), + 41: int16(448), + 42: int16(980), + 43: int16(630), + 44: int16(680), + 45: int16(681), + 46: int16(684), + 47: int16(796), + 48: int16(801), + 49: int16(796), + 50: int16(801), + 51: int16(-int32(261)), + 52: int16(-int32(261)), + 53: int16(-int32(261)), + 54: int16(-int32(261)), + 55: int16(-int32(261)), + 56: int16(-int32(261)), + 57: int16(-int32(261)), + 58: int16(-int32(261)), + 59: int16(-int32(261)), + 60: int16(-int32(261)), + 61: int16(-int32(261)), + 62: int16(-int32(261)), + 63: int16(-int32(261)), + 64: int16(-int32(261)), + 65: int16(-int32(261)), + 66: int16(-int32(261)), + 67: int16(-int32(261)), + 68: int16(-int32(261)), + 69: int16(-int32(261)), + 70: int16(-int32(261)), + 71: int16(-int32(261)), + 72: int16(-int32(261)), + 73: int16(-int32(261)), + 74: int16(-int32(261)), + 75: int16(-int32(261)), + 76: int16(-int32(261)), + 77: int16(-int32(261)), + 78: int16(-int32(261)), + 79: int16(-int32(261)), + 80: int16(-int32(261)), + 81: int16(-int32(261)), + 82: int16(-int32(261)), + 83: int16(-int32(261)), + 84: int16(-int32(261)), + 85: int16(-int32(261)), + 86: int16(-int32(261)), + 87: int16(-int32(261)), + 88: int16(391), + 89: int16(886), + 90: int16(888), + 91: int16(1013), + 92: int16(1016), + 93: int16(1081), + 94: int16(1087), + 95: int16(1151), + 96: int16(1159), + 97: int16(1177), + 98: int16(1185), + 99: int16(1188), + 100: int16(1190), + 101: int16(1194), + 102: int16(1197), + 103: int16(1203), + 104: int16(1247), + 105: int16(1260), + 106: int16(1264), + 107: int16(1267), + 108: int16(1269), + 109: int16(1273), + 110: int16(1315), + 111: int16(1322), + 112: int16(1335), + 113: int16(1337), + 114: int16(1356), + 115: int16(1362), + 116: int16(1418), + 117: int16(1425), + 118: int16(1453), + 119: int16(1457), + 120: int16(1465), + 121: int16(1473), + 122: int16(1487), + 123: int16(1495), + 124: int16(1507), + 125: int16(1517), + 126: int16(1521), + 127: int16(1534), + 128: int16(1543), + 129: int16(1546), + 130: int16(1549), + 131: int16(1552), + 132: int16(1554), + 133: int16(1560), + 134: int16(1581), + 135: int16(1590), + 136: int16(1593), + 137: int16(1595), + 138: int16(1621), + 139: int16(1623), + 140: int16(-int32(261)), + 141: int16(-int32(261)), + 142: int16(-int32(261)), + 143: int16(-int32(261)), + 144: int16(-int32(261)), + 145: int16(-int32(261)), + 146: int16(-int32(261)), + 147: int16(-int32(261)), + 148: int16(-int32(261)), + 149: int16(-int32(261)), + 150: int16(-int32(261)), + 151: int16(-int32(186)), + 152: int16(-int32(117)), + 153: int16(260), + 154: int16(263), + 155: int16(460), + 156: int16(631), + 157: int16(-int32(74)), + 158: int16(497), + 159: int16(-int32(181)), + 160: int16(-int32(261)), + 161: int16(939), + 162: int16(176), + 163: int16(274), + 164: int16(338), + 165: int16(676), + 166: int16(-int32(261)), + 167: int16(-int32(261)), + 168: int16(-int32(261)), + 169: int16(-int32(261)), + 170: int16(-int32(212)), + 171: int16(-int32(212)), + 172: int16(-int32(212)), + 173: int16(-int32(184)), + 174: int16(149), + 175: int16(777), + 176: int16(1061), + 177: int16(1103), + 178: int16(265), + 179: int16(419), + 180: int16(-int32(254)), + 181: int16(670), + 182: int16(677), + 183: int16(677), + 184: int16(-int32(11)), + 185: int16(-int32(129)), + 186: int16(184), + 187: int16(488), + 188: int16(736), + 189: int16(789), + 190: int16(805), + 191: int16(844), + 192: int16(403), + 193: int16(529), + 194: int16(579), + 195: int16(668), + 196: int16(783), + 197: int16(841), + 198: int16(1158), + 199: int16(1112), + 200: int16(806), + 201: int16(861), + 202: int16(1095), + 203: int16(846), + 204: int16(839), + 205: int16(1031), + 206: int16(-int32(189)), + 207: int16(1077), + 208: int16(1080), + 209: int16(1116), + 210: int16(1084), + 211: int16(1156), + 212: int16(1139), + 213: int16(1221), + 214: int16(46), + 215: int16(1099), + 216: int16(1037), + 217: int16(1118), + 218: int16(1171), + 219: int16(1214), + 220: int16(1210), + 221: int16(1258), + 222: int16(-int32(210)), + 223: int16(-int32(190)), + 224: int16(-int32(176)), + 225: int16(-int32(115)), + 226: int16(117), + 227: int16(262), + 228: int16(376), + 229: int16(490), + 230: int16(511), + 231: int16(520), + 232: int16(618), + 233: int16(639), + 234: int16(743), + 235: int16(901), + 236: int16(907), + 237: int16(958), + 238: int16(1014), + 239: int16(1055), + 240: int16(1108), + 241: int16(1193), + 242: int16(1244), + 243: int16(720), + 244: int16(1248), + 245: int16(1277), + 246: int16(1324), + 247: int16(1347), + 248: int16(1417), + 249: int16(1431), + 250: int16(1432), + 251: int16(1440), + 252: int16(1451), + 253: int16(1452), + 254: int16(1463), + 255: int16(1478), + 256: int16(1286), + 257: int16(1350), + 258: int16(1369), + 259: int16(1490), + 260: int16(1498), + 261: int16(1501), + 262: int16(773), + 263: int16(1509), + 264: int16(1513), + 265: int16(1528), + 266: int16(1292), + 267: int16(1367), + 268: int16(1535), + 269: int16(1536), + 270: int16(1477), + 271: int16(1542), + 272: int16(376), + 273: int16(1547), + 274: int16(1550), + 275: int16(1555), + 276: int16(1559), + 277: int16(1568), + 278: int16(1571), + 279: int16(1441), + 280: int16(1443), + 281: int16(1474), + 282: int16(1511), + 283: int16(1516), + 284: int16(1519), + 285: int16(1522), + 286: int16(773), + 287: int16(1474), + 288: int16(1474), + 289: int16(1503), + 290: int16(1567), + 291: int16(1594), + 292: int16(1484), + 293: int16(1527), + 294: int16(1556), + 295: int16(1570), + 296: int16(1557), + 297: int16(1524), + 298: int16(1573), + 299: int16(1545), + 300: int16(1548), + 301: int16(1576), + 302: int16(1561), + 303: int16(1587), + 304: int16(1540), + 305: int16(1575), + 306: int16(1606), + 307: int16(1611), + 308: int16(1622), + 309: int16(1624), + 310: int16(1626), + 311: int16(1582), + 312: int16(1597), + 313: int16(1598), + 314: int16(1599), + 315: int16(1601), + 316: int16(1603), + 317: int16(1563), + 318: int16(1608), + 319: int16(1605), + 320: int16(1604), + 321: int16(1564), + 322: int16(1566), + 323: int16(1655), + 324: int16(1660), + 325: int16(1578), + 326: int16(1579), + 327: int16(1665), + 328: int16(1586), + 329: int16(1607), + 330: int16(1610), + 331: int16(1642), + 332: int16(1641), + 333: int16(1645), + 334: int16(1646), + 335: int16(1647), + 336: int16(1679), + 337: int16(1688), + 338: int16(1644), + 339: int16(1618), + 340: int16(1619), + 341: int16(1648), + 342: int16(1628), + 343: int16(1659), + 344: int16(1649), + 345: int16(1663), + 346: int16(1650), + 347: int16(1700), + 348: int16(1702), + 349: int16(1612), + 350: int16(1615), + 351: int16(1706), + 352: int16(1708), + 353: int16(1689), + 354: int16(1709), + 355: int16(1712), + 356: int16(1713), + 357: int16(1715), + 358: int16(1691), + 359: int16(1698), + 360: int16(1699), + 361: int16(1701), + 362: int16(1693), + 363: int16(1704), + 364: int16(1707), + 365: int16(1705), + 366: int16(1714), + 367: int16(1703), + 368: int16(1718), + 369: int16(1710), + 370: int16(1720), + 371: int16(1721), + 372: int16(1632), + 373: int16(1634), + 374: int16(1664), + 375: int16(1666), + 376: int16(1729), + 377: int16(1751), + 378: int16(1635), + 379: int16(1636), + 380: int16(1692), + 381: int16(1694), + 382: int16(1716), + 383: int16(1722), + 384: int16(1684), + 385: int16(1763), + 386: int16(1685), + 387: int16(1723), + 388: int16(1724), + 389: int16(1727), + 390: int16(1730), + 391: int16(1768), + 392: int16(1783), + 393: int16(1784), + 394: int16(1793), + 395: int16(1794), + 396: int16(1796), + 397: int16(1683), 398: int16(1686), - 399: int16(1738), - 400: int16(1728), - 401: int16(1733), - 402: int16(1736), - 403: int16(1737), - 404: int16(1740), - 405: int16(1726), - 406: int16(1730), - 407: int16(1742), - 408: int16(1743), - 409: int16(1748), - 410: int16(1753), -} -var _yy_default = [579]uint16{ - 0: uint16(1648), - 1: uint16(1648), - 2: uint16(1648), - 3: uint16(1478), - 4: uint16(1243), - 5: uint16(1354), - 6: uint16(1243), - 7: uint16(1243), - 8: uint16(1243), - 9: uint16(1478), - 10: uint16(1478), - 11: uint16(1478), - 12: uint16(1243), - 13: uint16(1384), - 14: uint16(1384), - 15: uint16(1531), - 16: uint16(1276), - 17: uint16(1243), - 18: uint16(1243), - 19: uint16(1243), - 20: uint16(1243), - 21: uint16(1243), - 22: uint16(1243), - 23: uint16(1243), - 24: uint16(1243), - 25: uint16(1243), - 26: uint16(1243), - 27: uint16(1243), - 28: uint16(1477), - 29: uint16(1243), - 30: uint16(1243), - 31: uint16(1243), - 32: uint16(1243), - 33: uint16(1564), - 34: uint16(1564), - 35: uint16(1243), - 36: uint16(1243), - 37: uint16(1243), - 38: uint16(1243), - 39: uint16(1243), - 40: uint16(1243), - 41: uint16(1243), - 42: uint16(1243), - 43: uint16(1393), - 44: uint16(1243), - 45: uint16(1400), - 46: uint16(1243), - 47: uint16(1243), - 48: uint16(1243), - 49: uint16(1243), - 50: uint16(1243), - 51: uint16(1479), - 52: uint16(1480), - 53: uint16(1243), - 54: uint16(1243), - 55: uint16(1243), - 56: uint16(1530), - 57: uint16(1532), - 58: uint16(1495), - 59: uint16(1407), - 60: uint16(1406), - 61: uint16(1405), - 62: uint16(1404), - 63: uint16(1513), - 64: uint16(1372), - 65: uint16(1398), - 66: uint16(1391), - 67: uint16(1395), - 68: uint16(1474), - 69: uint16(1475), - 70: uint16(1473), - 71: uint16(1626), - 72: uint16(1480), - 73: uint16(1479), - 74: uint16(1243), - 75: uint16(1394), - 76: uint16(1442), - 77: uint16(1458), - 78: uint16(1441), - 79: uint16(1243), - 80: uint16(1243), - 81: uint16(1243), - 82: uint16(1243), - 83: uint16(1243), - 84: uint16(1243), - 85: uint16(1243), - 86: uint16(1243), - 87: uint16(1243), - 88: uint16(1243), - 89: uint16(1243), - 90: uint16(1243), - 91: uint16(1243), - 92: uint16(1243), - 93: uint16(1243), - 94: uint16(1243), - 95: uint16(1243), - 96: uint16(1243), - 97: uint16(1243), - 98: uint16(1243), - 99: uint16(1243), - 100: uint16(1243), - 101: uint16(1243), - 102: uint16(1243), - 103: uint16(1243), - 104: uint16(1243), - 105: uint16(1243), - 106: uint16(1243), - 107: uint16(1243), - 108: uint16(1243), - 109: uint16(1243), - 110: uint16(1243), - 111: uint16(1243), - 112: uint16(1243), - 113: uint16(1243), - 114: uint16(1243), - 115: uint16(1243), - 116: uint16(1243), - 117: uint16(1243), - 118: uint16(1243), - 119: uint16(1243), - 120: uint16(1243), - 121: uint16(1243), - 122: uint16(1243), - 123: uint16(1243), - 124: uint16(1243), - 125: uint16(1243), - 126: uint16(1243), - 127: uint16(1243), - 128: uint16(1243), - 129: uint16(1243), - 130: uint16(1243), - 131: uint16(1450), - 132: uint16(1457), - 133: uint16(1456), - 134: uint16(1455), - 135: uint16(1464), - 136: uint16(1454), - 137: uint16(1451), - 138: uint16(1444), - 139: uint16(1443), - 140: uint16(1445), - 141: uint16(1446), - 142: uint16(1243), - 143: uint16(1243), - 144: uint16(1267), - 145: uint16(1243), - 146: uint16(1243), - 147: uint16(1264), - 148: uint16(1318), - 149: uint16(1243), - 150: uint16(1243), - 151: uint16(1243), - 152: uint16(1243), - 153: uint16(1243), - 154: uint16(1550), - 155: uint16(1549), - 156: uint16(1243), - 157: uint16(1447), - 158: uint16(1243), - 159: uint16(1276), - 160: uint16(1435), - 161: uint16(1434), - 162: uint16(1433), - 163: uint16(1461), - 164: uint16(1448), - 165: uint16(1460), - 166: uint16(1459), - 167: uint16(1538), - 168: uint16(1600), - 169: uint16(1599), - 170: uint16(1496), - 171: uint16(1243), - 172: uint16(1243), - 173: uint16(1243), - 174: uint16(1243), - 175: uint16(1243), - 176: uint16(1243), - 177: uint16(1564), - 178: uint16(1243), - 179: uint16(1243), - 180: uint16(1243), - 181: uint16(1243), - 182: uint16(1243), - 183: uint16(1243), - 184: uint16(1243), - 185: uint16(1243), - 186: uint16(1243), - 187: uint16(1243), - 188: uint16(1243), - 189: uint16(1243), - 190: uint16(1243), - 191: uint16(1243), - 192: uint16(1243), - 193: uint16(1243), - 194: uint16(1243), - 195: uint16(1243), - 196: uint16(1243), - 197: uint16(1243), - 198: uint16(1243), - 199: uint16(1243), - 200: uint16(1243), - 201: uint16(1374), - 202: uint16(1564), - 203: uint16(1564), - 204: uint16(1243), - 205: uint16(1276), - 206: uint16(1564), - 207: uint16(1564), - 208: uint16(1375), - 209: uint16(1375), - 210: uint16(1272), - 211: uint16(1272), - 212: uint16(1378), - 213: uint16(1243), - 214: uint16(1545), - 215: uint16(1345), - 216: uint16(1345), - 217: uint16(1345), - 218: uint16(1345), - 219: uint16(1354), - 220: uint16(1345), - 221: uint16(1243), - 222: uint16(1243), - 223: uint16(1243), - 224: uint16(1243), - 225: uint16(1243), - 226: uint16(1243), - 227: uint16(1243), - 228: uint16(1243), - 229: uint16(1243), - 230: uint16(1243), - 231: uint16(1243), - 232: uint16(1243), - 233: uint16(1243), - 234: uint16(1243), - 235: uint16(1243), - 236: uint16(1535), - 237: uint16(1533), - 238: uint16(1243), - 239: uint16(1243), - 240: uint16(1243), - 241: uint16(1243), - 242: uint16(1243), - 243: uint16(1243), - 244: uint16(1243), - 245: uint16(1243), - 246: uint16(1243), - 247: uint16(1243), - 248: uint16(1243), - 249: uint16(1243), - 250: uint16(1243), - 251: uint16(1243), - 252: uint16(1243), - 253: uint16(1243), - 254: uint16(1243), - 255: uint16(1243), - 256: uint16(1243), - 257: uint16(1243), - 258: uint16(1243), - 259: uint16(1243), - 260: uint16(1243), - 261: uint16(1243), - 262: uint16(1243), - 263: uint16(1243), - 264: uint16(1243), - 265: uint16(1350), - 266: uint16(1243), - 267: uint16(1243), - 268: uint16(1243), - 269: uint16(1243), - 270: uint16(1243), - 271: uint16(1243), - 272: uint16(1243), - 273: uint16(1243), - 274: uint16(1243), - 275: uint16(1243), - 276: uint16(1243), - 277: uint16(1593), - 278: uint16(1243), - 279: uint16(1508), - 280: uint16(1332), - 281: uint16(1350), - 282: uint16(1350), - 283: uint16(1350), - 284: uint16(1350), - 285: uint16(1352), - 286: uint16(1333), - 287: uint16(1331), - 288: uint16(1344), - 289: uint16(1277), - 290: uint16(1250), - 291: uint16(1640), - 292: uint16(1410), - 293: uint16(1399), - 294: uint16(1351), - 295: uint16(1399), - 296: uint16(1637), - 297: uint16(1397), + 399: int16(1690), + 400: int16(1782), + 401: int16(1779), + 402: int16(1780), + 403: int16(1781), + 404: int16(1785), + 405: int16(1788), + 406: int16(1774), + 407: int16(1775), + 408: int16(1786), + 409: int16(1787), + 410: int16(1789), + 411: int16(1798), +} +var _yy_default = [583]uint16{ + 0: uint16(1663), + 1: uint16(1663), + 2: uint16(1663), + 3: uint16(1491), + 4: uint16(1254), + 5: uint16(1367), + 6: uint16(1254), + 7: uint16(1254), + 8: uint16(1254), + 9: uint16(1254), + 10: uint16(1491), + 11: uint16(1491), + 12: uint16(1491), + 13: uint16(1254), + 14: uint16(1254), + 15: uint16(1254), + 16: uint16(1254), + 17: uint16(1254), + 18: uint16(1254), + 19: uint16(1397), + 20: uint16(1397), + 21: uint16(1544), + 22: uint16(1287), + 23: uint16(1254), + 24: uint16(1254), + 25: uint16(1254), + 26: uint16(1254), + 27: uint16(1254), + 28: uint16(1254), + 29: uint16(1254), + 30: uint16(1254), + 31: uint16(1254), + 32: uint16(1254), + 33: uint16(1254), + 34: uint16(1254), + 35: uint16(1490), + 36: uint16(1254), + 37: uint16(1254), + 38: uint16(1254), + 39: uint16(1254), + 40: uint16(1578), + 41: uint16(1578), + 42: uint16(1254), + 43: uint16(1254), + 44: uint16(1254), + 45: uint16(1254), + 46: uint16(1254), + 47: uint16(1563), + 48: uint16(1562), + 49: uint16(1254), + 50: uint16(1254), + 51: uint16(1254), + 52: uint16(1406), + 53: uint16(1254), + 54: uint16(1413), + 55: uint16(1254), + 56: uint16(1254), + 57: uint16(1254), + 58: uint16(1254), + 59: uint16(1254), + 60: uint16(1492), + 61: uint16(1493), + 62: uint16(1254), + 63: uint16(1254), + 64: uint16(1254), + 65: uint16(1543), + 66: uint16(1545), + 67: uint16(1508), + 68: uint16(1420), + 69: uint16(1419), + 70: uint16(1418), + 71: uint16(1417), + 72: uint16(1526), + 73: uint16(1385), + 74: uint16(1411), + 75: uint16(1404), + 76: uint16(1408), + 77: uint16(1487), + 78: uint16(1488), + 79: uint16(1486), + 80: uint16(1641), + 81: uint16(1493), + 82: uint16(1492), + 83: uint16(1254), + 84: uint16(1407), + 85: uint16(1455), + 86: uint16(1471), + 87: uint16(1454), + 88: uint16(1254), + 89: uint16(1254), + 90: uint16(1254), + 91: uint16(1254), + 92: uint16(1254), + 93: uint16(1254), + 94: uint16(1254), + 95: uint16(1254), + 96: uint16(1254), + 97: uint16(1254), + 98: uint16(1254), + 99: uint16(1254), + 100: uint16(1254), + 101: uint16(1254), + 102: uint16(1254), + 103: uint16(1254), + 104: uint16(1254), + 105: uint16(1254), + 106: uint16(1254), + 107: uint16(1254), + 108: uint16(1254), + 109: uint16(1254), + 110: uint16(1254), + 111: uint16(1254), + 112: uint16(1254), + 113: uint16(1254), + 114: uint16(1254), + 115: uint16(1254), + 116: uint16(1254), + 117: uint16(1254), + 118: uint16(1254), + 119: uint16(1254), + 120: uint16(1254), + 121: uint16(1254), + 122: uint16(1254), + 123: uint16(1254), + 124: uint16(1254), + 125: uint16(1254), + 126: uint16(1254), + 127: uint16(1254), + 128: uint16(1254), + 129: uint16(1254), + 130: uint16(1254), + 131: uint16(1254), + 132: uint16(1254), + 133: uint16(1254), + 134: uint16(1254), + 135: uint16(1254), + 136: uint16(1254), + 137: uint16(1254), + 138: uint16(1254), + 139: uint16(1254), + 140: uint16(1463), + 141: uint16(1470), + 142: uint16(1469), + 143: uint16(1468), + 144: uint16(1477), + 145: uint16(1467), + 146: uint16(1464), + 147: uint16(1457), + 148: uint16(1456), + 149: uint16(1458), + 150: uint16(1459), + 151: uint16(1278), + 152: uint16(1254), + 153: uint16(1275), + 154: uint16(1329), + 155: uint16(1254), + 156: uint16(1254), + 157: uint16(1254), + 158: uint16(1254), + 159: uint16(1254), + 160: uint16(1460), + 161: uint16(1287), + 162: uint16(1448), + 163: uint16(1447), + 164: uint16(1446), + 165: uint16(1254), + 166: uint16(1474), + 167: uint16(1461), + 168: uint16(1473), + 169: uint16(1472), + 170: uint16(1551), + 171: uint16(1615), + 172: uint16(1614), + 173: uint16(1509), + 174: uint16(1254), + 175: uint16(1254), + 176: uint16(1254), + 177: uint16(1254), + 178: uint16(1254), + 179: uint16(1254), + 180: uint16(1578), + 181: uint16(1254), + 182: uint16(1254), + 183: uint16(1254), + 184: uint16(1254), + 185: uint16(1254), + 186: uint16(1254), + 187: uint16(1254), + 188: uint16(1254), + 189: uint16(1254), + 190: uint16(1254), + 191: uint16(1254), + 192: uint16(1254), + 193: uint16(1254), + 194: uint16(1254), + 195: uint16(1254), + 196: uint16(1254), + 197: uint16(1254), + 198: uint16(1254), + 199: uint16(1254), + 200: uint16(1254), + 201: uint16(1254), + 202: uint16(1254), + 203: uint16(1387), + 204: uint16(1578), + 205: uint16(1578), + 206: uint16(1254), + 207: uint16(1287), + 208: uint16(1578), + 209: uint16(1578), + 210: uint16(1388), + 211: uint16(1388), + 212: uint16(1283), + 213: uint16(1283), + 214: uint16(1391), + 215: uint16(1558), + 216: uint16(1358), + 217: uint16(1358), + 218: uint16(1358), + 219: uint16(1358), + 220: uint16(1367), + 221: uint16(1358), + 222: uint16(1254), + 223: uint16(1254), + 224: uint16(1254), + 225: uint16(1254), + 226: uint16(1254), + 227: uint16(1254), + 228: uint16(1254), + 229: uint16(1254), + 230: uint16(1254), + 231: uint16(1254), + 232: uint16(1254), + 233: uint16(1254), + 234: uint16(1254), + 235: uint16(1254), + 236: uint16(1254), + 237: uint16(1548), + 238: uint16(1546), + 239: uint16(1254), + 240: uint16(1254), + 241: uint16(1254), + 242: uint16(1254), + 243: uint16(1254), + 244: uint16(1254), + 245: uint16(1254), + 246: uint16(1254), + 247: uint16(1254), + 248: uint16(1254), + 249: uint16(1254), + 250: uint16(1254), + 251: uint16(1254), + 252: uint16(1254), + 253: uint16(1254), + 254: uint16(1254), + 255: uint16(1254), + 256: uint16(1254), + 257: uint16(1254), + 258: uint16(1254), + 259: uint16(1254), + 260: uint16(1254), + 261: uint16(1254), + 262: uint16(1254), + 263: uint16(1254), + 264: uint16(1254), + 265: uint16(1254), + 266: uint16(1363), + 267: uint16(1254), + 268: uint16(1254), + 269: uint16(1254), + 270: uint16(1254), + 271: uint16(1254), + 272: uint16(1254), + 273: uint16(1254), + 274: uint16(1254), + 275: uint16(1254), + 276: uint16(1254), + 277: uint16(1254), + 278: uint16(1608), + 279: uint16(1254), + 280: uint16(1521), + 281: uint16(1343), + 282: uint16(1363), + 283: uint16(1363), + 284: uint16(1363), + 285: uint16(1363), + 286: uint16(1365), + 287: uint16(1344), + 288: uint16(1342), + 289: uint16(1357), + 290: uint16(1288), + 291: uint16(1261), + 292: uint16(1655), + 293: uint16(1423), + 294: uint16(1412), + 295: uint16(1364), + 296: uint16(1412), + 297: uint16(1652), 298: uint16(1410), - 299: uint16(1410), - 300: uint16(1397), + 299: uint16(1423), + 300: uint16(1423), 301: uint16(1410), - 302: uint16(1351), - 303: uint16(1637), - 304: uint16(1293), - 305: uint16(1615), - 306: uint16(1288), - 307: uint16(1384), - 308: uint16(1384), - 309: uint16(1384), - 310: uint16(1374), - 311: uint16(1374), - 312: uint16(1374), - 313: uint16(1374), - 314: uint16(1378), - 315: uint16(1378), - 316: uint16(1476), - 317: uint16(1351), - 318: uint16(1344), - 319: uint16(1243), - 320: uint16(1640), - 321: uint16(1640), - 322: uint16(1360), - 323: uint16(1360), - 324: uint16(1639), - 325: uint16(1639), - 326: uint16(1360), - 327: uint16(1496), - 328: uint16(1623), - 329: uint16(1419), - 330: uint16(1321), - 331: uint16(1327), - 332: uint16(1327), - 333: uint16(1327), - 334: uint16(1327), - 335: uint16(1360), - 336: uint16(1261), - 337: uint16(1397), - 338: uint16(1623), - 339: uint16(1623), - 340: uint16(1397), - 341: uint16(1419), - 342: uint16(1321), - 343: uint16(1397), - 344: uint16(1321), - 345: uint16(1397), - 346: uint16(1360), - 347: uint16(1261), - 348: uint16(1512), - 349: uint16(1634), - 350: uint16(1360), - 351: uint16(1261), - 352: uint16(1486), - 353: uint16(1360), - 354: uint16(1261), - 355: uint16(1360), - 356: uint16(1261), - 357: uint16(1486), - 358: uint16(1319), - 359: uint16(1319), - 360: uint16(1319), - 361: uint16(1308), - 362: uint16(1243), - 363: uint16(1243), - 364: uint16(1486), - 365: uint16(1319), - 366: uint16(1293), - 367: uint16(1319), - 368: uint16(1308), + 302: uint16(1423), + 303: uint16(1364), + 304: uint16(1652), + 305: uint16(1304), + 306: uint16(1630), + 307: uint16(1299), + 308: uint16(1397), + 309: uint16(1397), + 310: uint16(1397), + 311: uint16(1387), + 312: uint16(1387), + 313: uint16(1387), + 314: uint16(1387), + 315: uint16(1391), + 316: uint16(1391), + 317: uint16(1489), + 318: uint16(1364), + 319: uint16(1357), + 320: uint16(1254), + 321: uint16(1655), + 322: uint16(1655), + 323: uint16(1373), + 324: uint16(1373), + 325: uint16(1654), + 326: uint16(1654), + 327: uint16(1373), + 328: uint16(1509), + 329: uint16(1638), + 330: uint16(1432), + 331: uint16(1332), + 332: uint16(1338), + 333: uint16(1338), + 334: uint16(1338), + 335: uint16(1338), + 336: uint16(1373), + 337: uint16(1272), + 338: uint16(1410), + 339: uint16(1638), + 340: uint16(1638), + 341: uint16(1410), + 342: uint16(1432), + 343: uint16(1332), + 344: uint16(1410), + 345: uint16(1332), + 346: uint16(1410), + 347: uint16(1373), + 348: uint16(1272), + 349: uint16(1525), + 350: uint16(1649), + 351: uint16(1373), + 352: uint16(1272), + 353: uint16(1499), + 354: uint16(1373), + 355: uint16(1272), + 356: uint16(1373), + 357: uint16(1272), + 358: uint16(1499), + 359: uint16(1330), + 360: uint16(1330), + 361: uint16(1330), + 362: uint16(1319), + 363: uint16(1254), + 364: uint16(1254), + 365: uint16(1499), + 366: uint16(1330), + 367: uint16(1304), + 368: uint16(1330), 369: uint16(1319), - 370: uint16(1319), - 371: uint16(1582), - 372: uint16(1243), - 373: uint16(1490), - 374: uint16(1490), - 375: uint16(1486), - 376: uint16(1360), - 377: uint16(1574), - 378: uint16(1574), - 379: uint16(1387), - 380: uint16(1387), - 381: uint16(1392), - 382: uint16(1378), - 383: uint16(1481), - 384: uint16(1360), - 385: uint16(1243), - 386: uint16(1392), - 387: uint16(1390), - 388: uint16(1388), - 389: uint16(1397), - 390: uint16(1311), - 391: uint16(1596), - 392: uint16(1596), - 393: uint16(1592), - 394: uint16(1592), - 395: uint16(1592), - 396: uint16(1645), - 397: uint16(1645), - 398: uint16(1545), - 399: uint16(1608), - 400: uint16(1276), - 401: uint16(1276), - 402: uint16(1276), - 403: uint16(1276), - 404: uint16(1608), - 405: uint16(1295), - 406: uint16(1295), - 407: uint16(1277), - 408: uint16(1277), - 409: uint16(1276), - 410: uint16(1608), - 411: uint16(1243), - 412: uint16(1243), - 413: uint16(1243), - 414: uint16(1243), - 415: uint16(1243), - 416: uint16(1243), - 417: uint16(1603), - 418: uint16(1243), - 419: uint16(1540), - 420: uint16(1497), - 421: uint16(1364), - 422: uint16(1243), - 423: uint16(1243), - 424: uint16(1243), - 425: uint16(1243), - 426: uint16(1243), - 427: uint16(1243), - 428: uint16(1243), - 429: uint16(1243), - 430: uint16(1243), - 431: uint16(1243), - 432: uint16(1243), - 433: uint16(1243), - 434: uint16(1243), - 435: uint16(1243), - 436: uint16(1243), - 437: uint16(1243), - 438: uint16(1551), - 439: uint16(1243), - 440: uint16(1243), - 441: uint16(1243), - 442: uint16(1243), - 443: uint16(1243), - 444: uint16(1243), - 445: uint16(1243), - 446: uint16(1243), - 447: uint16(1243), - 448: uint16(1243), - 449: uint16(1424), - 450: uint16(1243), - 451: uint16(1246), - 452: uint16(1542), - 453: uint16(1243), - 454: uint16(1243), - 455: uint16(1243), - 456: uint16(1243), - 457: uint16(1243), - 458: uint16(1243), - 459: uint16(1243), - 460: uint16(1243), - 461: uint16(1401), - 462: uint16(1402), - 463: uint16(1365), - 464: uint16(1243), - 465: uint16(1243), - 466: uint16(1243), - 467: uint16(1243), - 468: uint16(1243), - 469: uint16(1243), - 470: uint16(1243), - 471: uint16(1416), - 472: uint16(1243), - 473: uint16(1243), - 474: uint16(1243), - 475: uint16(1411), - 476: uint16(1243), - 477: uint16(1243), - 478: uint16(1243), - 479: uint16(1243), - 480: uint16(1243), - 481: uint16(1243), - 482: uint16(1243), - 483: uint16(1243), - 484: uint16(1636), - 485: uint16(1243), - 486: uint16(1243), - 487: uint16(1243), - 488: uint16(1243), - 489: uint16(1243), - 490: uint16(1243), - 491: uint16(1511), - 492: uint16(1510), - 493: uint16(1243), - 494: uint16(1243), - 495: uint16(1362), - 496: uint16(1243), - 497: uint16(1243), - 498: uint16(1243), - 499: uint16(1243), - 500: uint16(1243), - 501: uint16(1243), - 502: uint16(1243), - 503: uint16(1243), - 504: uint16(1243), - 505: uint16(1243), - 506: uint16(1243), - 507: uint16(1243), - 508: uint16(1243), - 509: uint16(1291), - 510: uint16(1243), - 511: uint16(1243), - 512: uint16(1243), - 513: uint16(1243), - 514: uint16(1243), - 515: uint16(1243), - 516: uint16(1243), - 517: uint16(1243), - 518: uint16(1243), - 519: uint16(1243), - 520: uint16(1243), - 521: uint16(1243), - 522: uint16(1243), - 523: uint16(1243), - 524: uint16(1243), - 525: uint16(1243), - 526: uint16(1243), - 527: uint16(1243), - 528: uint16(1243), - 529: uint16(1243), - 530: uint16(1243), - 531: uint16(1243), - 532: uint16(1243), - 533: uint16(1389), - 534: uint16(1243), - 535: uint16(1243), - 536: uint16(1243), - 537: uint16(1243), - 538: uint16(1243), - 539: uint16(1243), - 540: uint16(1243), - 541: uint16(1243), - 542: uint16(1243), - 543: uint16(1243), - 544: uint16(1243), - 545: uint16(1243), - 546: uint16(1243), - 547: uint16(1243), - 548: uint16(1579), - 549: uint16(1379), - 550: uint16(1243), - 551: uint16(1243), - 552: uint16(1243), - 553: uint16(1243), - 554: uint16(1627), - 555: uint16(1243), - 556: uint16(1243), - 557: uint16(1243), - 558: uint16(1243), - 559: uint16(1243), - 560: uint16(1243), - 561: uint16(1243), - 562: uint16(1243), - 563: uint16(1243), - 564: uint16(1243), - 565: uint16(1243), - 566: uint16(1243), - 567: uint16(1243), - 568: uint16(1243), - 569: uint16(1619), - 570: uint16(1335), - 571: uint16(1425), - 572: uint16(1243), - 573: uint16(1428), - 574: uint16(1265), - 575: uint16(1243), - 576: uint16(1255), - 577: uint16(1243), - 578: uint16(1243), + 370: uint16(1330), + 371: uint16(1330), + 372: uint16(1596), + 373: uint16(1254), + 374: uint16(1503), + 375: uint16(1503), + 376: uint16(1499), + 377: uint16(1373), + 378: uint16(1588), + 379: uint16(1588), + 380: uint16(1400), + 381: uint16(1400), + 382: uint16(1405), + 383: uint16(1391), + 384: uint16(1494), + 385: uint16(1373), + 386: uint16(1254), + 387: uint16(1405), + 388: uint16(1403), + 389: uint16(1401), + 390: uint16(1410), + 391: uint16(1322), + 392: uint16(1611), + 393: uint16(1611), + 394: uint16(1607), + 395: uint16(1607), + 396: uint16(1607), + 397: uint16(1660), + 398: uint16(1660), + 399: uint16(1558), + 400: uint16(1623), + 401: uint16(1287), + 402: uint16(1287), + 403: uint16(1287), + 404: uint16(1287), + 405: uint16(1623), + 406: uint16(1306), + 407: uint16(1306), + 408: uint16(1288), + 409: uint16(1288), + 410: uint16(1287), + 411: uint16(1623), + 412: uint16(1254), + 413: uint16(1254), + 414: uint16(1254), + 415: uint16(1254), + 416: uint16(1254), + 417: uint16(1254), + 418: uint16(1618), + 419: uint16(1254), + 420: uint16(1553), + 421: uint16(1510), + 422: uint16(1377), + 423: uint16(1254), + 424: uint16(1254), + 425: uint16(1254), + 426: uint16(1254), + 427: uint16(1254), + 428: uint16(1254), + 429: uint16(1254), + 430: uint16(1254), + 431: uint16(1254), + 432: uint16(1254), + 433: uint16(1254), + 434: uint16(1254), + 435: uint16(1254), + 436: uint16(1254), + 437: uint16(1254), + 438: uint16(1254), + 439: uint16(1564), + 440: uint16(1254), + 441: uint16(1254), + 442: uint16(1254), + 443: uint16(1254), + 444: uint16(1254), + 445: uint16(1254), + 446: uint16(1254), + 447: uint16(1254), + 448: uint16(1254), + 449: uint16(1254), + 450: uint16(1254), + 451: uint16(1437), + 452: uint16(1254), + 453: uint16(1257), + 454: uint16(1555), + 455: uint16(1254), + 456: uint16(1254), + 457: uint16(1254), + 458: uint16(1254), + 459: uint16(1254), + 460: uint16(1254), + 461: uint16(1254), + 462: uint16(1254), + 463: uint16(1414), + 464: uint16(1415), + 465: uint16(1378), + 466: uint16(1254), + 467: uint16(1254), + 468: uint16(1254), + 469: uint16(1254), + 470: uint16(1254), + 471: uint16(1254), + 472: uint16(1254), + 473: uint16(1429), + 474: uint16(1254), + 475: uint16(1254), + 476: uint16(1254), + 477: uint16(1424), + 478: uint16(1254), + 479: uint16(1254), + 480: uint16(1254), + 481: uint16(1254), + 482: uint16(1254), + 483: uint16(1254), + 484: uint16(1254), + 485: uint16(1254), + 486: uint16(1651), + 487: uint16(1254), + 488: uint16(1254), + 489: uint16(1254), + 490: uint16(1254), + 491: uint16(1254), + 492: uint16(1254), + 493: uint16(1524), + 494: uint16(1523), + 495: uint16(1254), + 496: uint16(1254), + 497: uint16(1375), + 498: uint16(1254), + 499: uint16(1254), + 500: uint16(1254), + 501: uint16(1254), + 502: uint16(1254), + 503: uint16(1254), + 504: uint16(1254), + 505: uint16(1254), + 506: uint16(1254), + 507: uint16(1254), + 508: uint16(1254), + 509: uint16(1254), + 510: uint16(1254), + 511: uint16(1302), + 512: uint16(1254), + 513: uint16(1254), + 514: uint16(1254), + 515: uint16(1254), + 516: uint16(1254), + 517: uint16(1254), + 518: uint16(1254), + 519: uint16(1254), + 520: uint16(1254), + 521: uint16(1254), + 522: uint16(1254), + 523: uint16(1254), + 524: uint16(1254), + 525: uint16(1254), + 526: uint16(1254), + 527: uint16(1254), + 528: uint16(1254), + 529: uint16(1254), + 530: uint16(1254), + 531: uint16(1254), + 532: uint16(1254), + 533: uint16(1254), + 534: uint16(1254), + 535: uint16(1402), + 536: uint16(1254), + 537: uint16(1254), + 538: uint16(1254), + 539: uint16(1254), + 540: uint16(1254), + 541: uint16(1254), + 542: uint16(1254), + 543: uint16(1254), + 544: uint16(1254), + 545: uint16(1254), + 546: uint16(1254), + 547: uint16(1254), + 548: uint16(1254), + 549: uint16(1254), + 550: uint16(1593), + 551: uint16(1392), + 552: uint16(1254), + 553: uint16(1254), + 554: uint16(1254), + 555: uint16(1254), + 556: uint16(1642), + 557: uint16(1254), + 558: uint16(1254), + 559: uint16(1254), + 560: uint16(1254), + 561: uint16(1352), + 562: uint16(1254), + 563: uint16(1254), + 564: uint16(1254), + 565: uint16(1254), + 566: uint16(1254), + 567: uint16(1254), + 568: uint16(1254), + 569: uint16(1254), + 570: uint16(1254), + 571: uint16(1254), + 572: uint16(1254), + 573: uint16(1634), + 574: uint16(1346), + 575: uint16(1438), + 576: uint16(1254), + 577: uint16(1441), + 578: uint16(1276), + 579: uint16(1254), + 580: uint16(1266), + 581: uint16(1254), + 582: uint16(1254), } /********** End of lemon-generated parsing tables *****************************/ @@ -158253,7 +159809,7 @@ var _yy_default = [579]uint16{ // ** to revert to identifiers if they keyword does not apply in the context where // ** it appears. // */ -var _yyFallback = [185]uint16{ +var _yyFallback = [186]uint16{ 2: uint16(59), 3: uint16(59), 4: uint16(59), @@ -158366,8 +159922,9 @@ type yyStackEntry = TyyStackEntry type TyyParser1 = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser1 = TyyParser1 @@ -158375,14 +159932,46 @@ type yyParser1 = TyyParser1 type TyyParser = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser = TyyParser /* #include */ +// C documentation +// +// /* +// ** Try to increase the size of the parser stack. Return the number +// ** of errors. Return 0 on success. +// */ +func _yyGrowStack(tls *libc.TLS, p uintptr) (r int32) { + var idx, newSize, oldSize int32 + var pNew uintptr + _, _, _, _ = idx, newSize, oldSize, pNew + oldSize = int32(1) + (int32((*TyyParser)(unsafe.Pointer(p)).FyystackEnd)-int32((*TyyParser)(unsafe.Pointer(p)).Fyystack))/12 + newSize = oldSize*int32(2) + int32(100) + idx = (int32((*TyyParser)(unsafe.Pointer(p)).Fyytos) - int32((*TyyParser)(unsafe.Pointer(p)).Fyystack)) / 12 + if (*TyyParser)(unsafe.Pointer(p)).Fyystack == p+16 { + pNew = _parserStackRealloc(tls, uintptr(0), uint64(uint32(newSize)*uint32(12))) + if pNew == uintptr(0) { + return int32(1) + } + libc.Xmemcpy(tls, pNew, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint32(oldSize)*uint32(12)) + } else { + pNew = _parserStackRealloc(tls, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(uint32(newSize)*uint32(12))) + if pNew == uintptr(0) { + return int32(1) + } + } + (*TyyParser)(unsafe.Pointer(p)).Fyystack = pNew + (*TyyParser)(unsafe.Pointer(p)).Fyytos = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(idx)*12 + (*TyyParser)(unsafe.Pointer(p)).FyystackEnd = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(newSize-int32(1))*12 + return 0 +} + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -158398,10 +159987,11 @@ func _sqlite3ParserInit(tls *libc.TLS, yypRawParser uintptr, pParse uintptr) { _ = yypParser yypParser = yypRawParser (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = yypParser + 8 - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 8))).Fstateno = uint16(0) - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 8))).Fmajor = uint16(0) - (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = yypParser + 8 + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*12 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack = yypParser + 16 + (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*12 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fstateno = uint16(0) + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fmajor = uint16(0) } // C documentation @@ -158429,103 +160019,105 @@ func _yy_destructor(tls *libc.TLS, yypParser uintptr, yymajor uint16, yypminor u ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case int32(204): /* select */ + case int32(205): /* select */ + fallthrough + case int32(240): /* selectnowith */ fallthrough - case int32(239): /* selectnowith */ + case int32(241): /* oneselect */ fallthrough - case int32(240): /* oneselect */ + case int32(253): /* values */ fallthrough - case int32(252): /* values */ + case int32(255): /* mvalues */ _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(216): /* term */ + case int32(217): /* term */ fallthrough - case int32(217): /* expr */ + case int32(218): /* expr */ fallthrough - case int32(246): /* where_opt */ + case int32(247): /* where_opt */ fallthrough - case int32(248): /* having_opt */ + case int32(249): /* having_opt */ fallthrough - case int32(267): /* where_opt_ret */ + case int32(269): /* where_opt_ret */ fallthrough - case int32(278): /* case_operand */ + case int32(280): /* case_operand */ fallthrough - case int32(280): /* case_else */ + case int32(282): /* case_else */ fallthrough - case int32(283): /* vinto */ + case int32(285): /* vinto */ fallthrough - case int32(290): /* when_clause */ + case int32(292): /* when_clause */ fallthrough - case int32(295): /* key_opt */ + case int32(297): /* key_opt */ fallthrough - case int32(311): /* filter_clause */ + case int32(314): /* filter_clause */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(221): /* eidlist_opt */ + case int32(222): /* eidlist_opt */ fallthrough - case int32(231): /* sortlist */ + case int32(232): /* sortlist */ fallthrough - case int32(232): /* eidlist */ + case int32(233): /* eidlist */ fallthrough - case int32(244): /* selcollist */ + case int32(245): /* selcollist */ fallthrough - case int32(247): /* groupby_opt */ + case int32(248): /* groupby_opt */ fallthrough - case int32(249): /* orderby_opt */ + case int32(250): /* orderby_opt */ fallthrough - case int32(253): /* nexprlist */ + case int32(254): /* nexprlist */ fallthrough - case int32(254): /* sclp */ + case int32(256): /* sclp */ fallthrough - case int32(261): /* exprlist */ + case int32(263): /* exprlist */ fallthrough - case int32(268): /* setlist */ + case int32(270): /* setlist */ fallthrough - case int32(277): /* paren_exprlist */ + case int32(279): /* paren_exprlist */ fallthrough - case int32(279): /* case_exprlist */ + case int32(281): /* case_exprlist */ fallthrough - case int32(310): /* part_opt */ + case int32(313): /* part_opt */ _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(238): /* fullname */ + case int32(239): /* fullname */ fallthrough - case int32(245): /* from */ + case int32(246): /* from */ fallthrough - case int32(256): /* seltablist */ + case int32(258): /* seltablist */ fallthrough - case int32(257): /* stl_prefix */ + case int32(259): /* stl_prefix */ fallthrough - case int32(262): /* xfullname */ + case int32(264): /* xfullname */ _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(241): /* wqlist */ + case int32(242): /* wqlist */ _sqlite3WithDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(251): /* window_clause */ + case int32(252): /* window_clause */ fallthrough - case int32(306): /* windowdefn_list */ + case int32(309): /* windowdefn_list */ _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(263): /* idlist */ + case int32(265): /* idlist */ fallthrough - case int32(270): /* idlist_opt */ + case int32(272): /* idlist_opt */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(273): /* filter_over */ + case int32(275): /* filter_over */ fallthrough - case int32(307): /* windowdefn */ + case int32(310): /* windowdefn */ fallthrough - case int32(308): /* window */ + case int32(311): /* window */ fallthrough - case int32(309): /* frame_opt */ + case int32(312): /* frame_opt */ fallthrough - case int32(312): /* over_clause */ + case int32(315): /* over_clause */ _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(286): /* trigger_cmd_list */ + case int32(288): /* trigger_cmd_list */ fallthrough - case int32(291): /* trigger_cmd */ + case int32(293): /* trigger_cmd */ _sqlite3DeleteTriggerStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(288): /* trigger_event */ + case int32(290): /* trigger_event */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TTrigEvent)(unsafe.Pointer(yypminor))).Fb) - case int32(314): /* frame_bound */ + case int32(317): /* frame_bound */ fallthrough - case int32(315): /* frame_bound_s */ + case int32(318): /* frame_bound_s */ fallthrough - case int32(316): /* frame_bound_e */ + case int32(319): /* frame_bound_e */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TFrameBound)(unsafe.Pointer(yypminor))).FpExpr) break /********* End destructor definitions *****************************************/ @@ -158561,11 +160153,20 @@ func _yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var pParser, yytos uintptr + _, _ = pParser, yytos pParser = p - for (*TyyParser)(unsafe.Pointer(pParser)).Fyytos > pParser+8 { - _yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling yy_pop_parser_stack() for each + ** element left in the stack */ + yytos = (*TyyParser)(unsafe.Pointer(pParser)).Fyytos + for yytos > (*TyyParser)(unsafe.Pointer(pParser)).Fyystack { + if int32((*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor) >= int32(YY_MIN_DSTRCTR) { + _yy_destructor(tls, pParser, (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor, yytos+4) + } + yytos -= 12 + } + if (*TyyParser)(unsafe.Pointer(pParser)).Fyystack != pParser+16 { + Xsqlite3_free(tls, (*TyyParser)(unsafe.Pointer(pParser)).Fyystack) } } @@ -158660,13 +160261,13 @@ func _yyStackOverflow(tls *libc.TLS, yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse - for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > yypParser+8 { + for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack { _yy_pop_parser_stack(tls, yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23336, 0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) /******** End %stack_overflow code ********************************************/ /* Suppress warning about unused %extra_argument var */ (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse @@ -158685,15 +160286,19 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint var yytos uintptr _ = yytos (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos += 12 - if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 12 - _yyStackOverflow(tls, yypParser) - return + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + if yytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { + if _yyGrowStack(tls, yypParser) != 0 { + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 12 + _yyStackOverflow(tls, yypParser) + return + } + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + _ = libc.Int32FromInt32(0) } if int32(yyNewState) > int32(YY_MAX_SHIFT) { yyNewState = uint16(int32(yyNewState) + (libc.Int32FromInt32(YY_MIN_REDUCE) - libc.Int32FromInt32(YY_MIN_SHIFTREDUCE))) } - yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos (*TyyStackEntry)(unsafe.Pointer(yytos)).Fstateno = yyNewState (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor = yyMajor *(*TToken)(unsafe.Pointer(yytos + 4)) = yyMinor @@ -158703,419 +160308,423 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint // // /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side // ** of that rule */ -var _yyRuleInfoLhs = [405]uint16{ - 0: uint16(189), - 1: uint16(189), - 2: uint16(188), - 3: uint16(190), - 4: uint16(191), - 5: uint16(191), - 6: uint16(191), - 7: uint16(191), - 8: uint16(190), - 9: uint16(190), - 10: uint16(190), - 11: uint16(190), - 12: uint16(190), - 13: uint16(195), - 14: uint16(197), - 15: uint16(199), - 16: uint16(199), - 17: uint16(198), - 18: uint16(198), - 19: uint16(196), - 20: uint16(196), - 21: uint16(203), - 22: uint16(203), - 23: uint16(205), - 24: uint16(205), - 25: uint16(206), - 26: uint16(208), - 27: uint16(208), - 28: uint16(208), - 29: uint16(209), - 30: uint16(213), - 31: uint16(214), - 32: uint16(215), - 33: uint16(215), - 34: uint16(215), - 35: uint16(215), - 36: uint16(215), - 37: uint16(215), - 38: uint16(215), - 39: uint16(215), - 40: uint16(215), - 41: uint16(215), - 42: uint16(215), - 43: uint16(215), - 44: uint16(215), - 45: uint16(224), - 46: uint16(224), - 47: uint16(220), - 48: uint16(220), - 49: uint16(222), - 50: uint16(222), - 51: uint16(225), - 52: uint16(225), - 53: uint16(225), - 54: uint16(225), - 55: uint16(226), - 56: uint16(226), - 57: uint16(226), - 58: uint16(226), - 59: uint16(226), - 60: uint16(223), - 61: uint16(223), - 62: uint16(227), - 63: uint16(227), - 64: uint16(227), - 65: uint16(202), - 66: uint16(229), - 67: uint16(230), - 68: uint16(230), - 69: uint16(230), - 70: uint16(230), - 71: uint16(230), - 72: uint16(233), - 73: uint16(218), - 74: uint16(218), - 75: uint16(234), - 76: uint16(234), - 77: uint16(235), - 78: uint16(235), - 79: uint16(190), - 80: uint16(237), - 81: uint16(237), - 82: uint16(190), - 83: uint16(190), - 84: uint16(190), - 85: uint16(204), - 86: uint16(204), - 87: uint16(204), - 88: uint16(239), - 89: uint16(242), - 90: uint16(242), - 91: uint16(242), - 92: uint16(240), - 93: uint16(240), - 94: uint16(252), - 95: uint16(252), - 96: uint16(243), - 97: uint16(243), - 98: uint16(243), - 99: uint16(254), +var _yyRuleInfoLhs = [409]uint16{ + 0: uint16(190), + 1: uint16(190), + 2: uint16(189), + 3: uint16(191), + 4: uint16(192), + 5: uint16(192), + 6: uint16(192), + 7: uint16(192), + 8: uint16(191), + 9: uint16(191), + 10: uint16(191), + 11: uint16(191), + 12: uint16(191), + 13: uint16(196), + 14: uint16(198), + 15: uint16(200), + 16: uint16(200), + 17: uint16(199), + 18: uint16(199), + 19: uint16(197), + 20: uint16(197), + 21: uint16(204), + 22: uint16(204), + 23: uint16(206), + 24: uint16(206), + 25: uint16(207), + 26: uint16(209), + 27: uint16(209), + 28: uint16(209), + 29: uint16(210), + 30: uint16(214), + 31: uint16(215), + 32: uint16(216), + 33: uint16(216), + 34: uint16(216), + 35: uint16(216), + 36: uint16(216), + 37: uint16(216), + 38: uint16(216), + 39: uint16(216), + 40: uint16(216), + 41: uint16(216), + 42: uint16(216), + 43: uint16(216), + 44: uint16(216), + 45: uint16(225), + 46: uint16(225), + 47: uint16(221), + 48: uint16(221), + 49: uint16(223), + 50: uint16(223), + 51: uint16(226), + 52: uint16(226), + 53: uint16(226), + 54: uint16(226), + 55: uint16(227), + 56: uint16(227), + 57: uint16(227), + 58: uint16(227), + 59: uint16(227), + 60: uint16(224), + 61: uint16(224), + 62: uint16(228), + 63: uint16(228), + 64: uint16(228), + 65: uint16(203), + 66: uint16(230), + 67: uint16(231), + 68: uint16(231), + 69: uint16(231), + 70: uint16(231), + 71: uint16(231), + 72: uint16(234), + 73: uint16(219), + 74: uint16(219), + 75: uint16(235), + 76: uint16(235), + 77: uint16(236), + 78: uint16(236), + 79: uint16(191), + 80: uint16(238), + 81: uint16(238), + 82: uint16(191), + 83: uint16(191), + 84: uint16(191), + 85: uint16(205), + 86: uint16(205), + 87: uint16(205), + 88: uint16(240), + 89: uint16(243), + 90: uint16(243), + 91: uint16(243), + 92: uint16(241), + 93: uint16(241), + 94: uint16(253), + 95: uint16(241), + 96: uint16(255), + 97: uint16(255), + 98: uint16(244), + 99: uint16(244), 100: uint16(244), - 101: uint16(244), - 102: uint16(244), - 103: uint16(255), - 104: uint16(255), - 105: uint16(245), - 106: uint16(245), - 107: uint16(257), - 108: uint16(257), - 109: uint16(256), - 110: uint16(256), - 111: uint16(256), - 112: uint16(256), - 113: uint16(256), - 114: uint16(200), - 115: uint16(200), - 116: uint16(238), - 117: uint16(238), - 118: uint16(262), - 119: uint16(262), - 120: uint16(262), - 121: uint16(262), - 122: uint16(258), - 123: uint16(258), - 124: uint16(258), - 125: uint16(258), - 126: uint16(259), - 127: uint16(259), - 128: uint16(259), - 129: uint16(264), - 130: uint16(260), - 131: uint16(260), - 132: uint16(249), - 133: uint16(249), - 134: uint16(231), - 135: uint16(231), - 136: uint16(219), - 137: uint16(219), - 138: uint16(219), - 139: uint16(265), - 140: uint16(265), - 141: uint16(265), - 142: uint16(247), - 143: uint16(247), + 101: uint16(256), + 102: uint16(245), + 103: uint16(245), + 104: uint16(245), + 105: uint16(257), + 106: uint16(257), + 107: uint16(246), + 108: uint16(246), + 109: uint16(259), + 110: uint16(259), + 111: uint16(258), + 112: uint16(258), + 113: uint16(258), + 114: uint16(258), + 115: uint16(258), + 116: uint16(201), + 117: uint16(201), + 118: uint16(239), + 119: uint16(239), + 120: uint16(264), + 121: uint16(264), + 122: uint16(264), + 123: uint16(264), + 124: uint16(260), + 125: uint16(260), + 126: uint16(260), + 127: uint16(260), + 128: uint16(261), + 129: uint16(261), + 130: uint16(261), + 131: uint16(266), + 132: uint16(262), + 133: uint16(262), + 134: uint16(250), + 135: uint16(250), + 136: uint16(232), + 137: uint16(232), + 138: uint16(220), + 139: uint16(220), + 140: uint16(220), + 141: uint16(267), + 142: uint16(267), + 143: uint16(267), 144: uint16(248), 145: uint16(248), - 146: uint16(250), - 147: uint16(250), - 148: uint16(250), - 149: uint16(250), - 150: uint16(190), - 151: uint16(246), - 152: uint16(246), - 153: uint16(267), - 154: uint16(267), - 155: uint16(267), - 156: uint16(267), - 157: uint16(190), - 158: uint16(268), - 159: uint16(268), - 160: uint16(268), - 161: uint16(268), - 162: uint16(190), - 163: uint16(190), - 164: uint16(271), - 165: uint16(271), - 166: uint16(271), - 167: uint16(271), - 168: uint16(271), - 169: uint16(271), - 170: uint16(272), - 171: uint16(269), - 172: uint16(269), - 173: uint16(270), - 174: uint16(270), - 175: uint16(263), - 176: uint16(263), - 177: uint16(217), - 178: uint16(217), - 179: uint16(217), - 180: uint16(217), - 181: uint16(216), - 182: uint16(216), - 183: uint16(216), + 146: uint16(249), + 147: uint16(249), + 148: uint16(251), + 149: uint16(251), + 150: uint16(251), + 151: uint16(251), + 152: uint16(191), + 153: uint16(247), + 154: uint16(247), + 155: uint16(269), + 156: uint16(269), + 157: uint16(269), + 158: uint16(269), + 159: uint16(191), + 160: uint16(270), + 161: uint16(270), + 162: uint16(270), + 163: uint16(270), + 164: uint16(191), + 165: uint16(191), + 166: uint16(273), + 167: uint16(273), + 168: uint16(273), + 169: uint16(273), + 170: uint16(273), + 171: uint16(273), + 172: uint16(274), + 173: uint16(271), + 174: uint16(271), + 175: uint16(272), + 176: uint16(272), + 177: uint16(265), + 178: uint16(265), + 179: uint16(218), + 180: uint16(218), + 181: uint16(218), + 182: uint16(218), + 183: uint16(217), 184: uint16(217), 185: uint16(217), - 186: uint16(217), - 187: uint16(217), - 188: uint16(217), - 189: uint16(217), - 190: uint16(217), - 191: uint16(217), - 192: uint16(217), - 193: uint16(216), - 194: uint16(217), + 186: uint16(218), + 187: uint16(218), + 188: uint16(218), + 189: uint16(218), + 190: uint16(218), + 191: uint16(218), + 192: uint16(218), + 193: uint16(218), + 194: uint16(218), 195: uint16(217), - 196: uint16(217), - 197: uint16(217), - 198: uint16(217), - 199: uint16(217), - 200: uint16(217), - 201: uint16(217), - 202: uint16(217), - 203: uint16(274), - 204: uint16(217), - 205: uint16(217), - 206: uint16(217), - 207: uint16(217), - 208: uint16(217), - 209: uint16(217), - 210: uint16(217), - 211: uint16(217), - 212: uint16(217), - 213: uint16(217), - 214: uint16(217), - 215: uint16(217), - 216: uint16(275), - 217: uint16(275), - 218: uint16(217), - 219: uint16(276), - 220: uint16(276), - 221: uint16(217), - 222: uint16(217), - 223: uint16(217), - 224: uint16(217), - 225: uint16(217), - 226: uint16(217), - 227: uint16(279), - 228: uint16(279), - 229: uint16(280), - 230: uint16(280), - 231: uint16(278), - 232: uint16(261), - 233: uint16(253), - 234: uint16(253), - 235: uint16(277), - 236: uint16(277), - 237: uint16(190), - 238: uint16(281), - 239: uint16(281), - 240: uint16(221), - 241: uint16(221), - 242: uint16(232), - 243: uint16(232), - 244: uint16(282), - 245: uint16(282), - 246: uint16(190), - 247: uint16(190), - 248: uint16(190), - 249: uint16(283), - 250: uint16(283), - 251: uint16(190), - 252: uint16(190), - 253: uint16(190), - 254: uint16(190), - 255: uint16(190), - 256: uint16(211), - 257: uint16(212), - 258: uint16(190), - 259: uint16(285), - 260: uint16(287), + 196: uint16(218), + 197: uint16(218), + 198: uint16(218), + 199: uint16(218), + 200: uint16(218), + 201: uint16(218), + 202: uint16(218), + 203: uint16(218), + 204: uint16(218), + 205: uint16(276), + 206: uint16(218), + 207: uint16(218), + 208: uint16(218), + 209: uint16(218), + 210: uint16(218), + 211: uint16(218), + 212: uint16(218), + 213: uint16(218), + 214: uint16(218), + 215: uint16(218), + 216: uint16(218), + 217: uint16(218), + 218: uint16(277), + 219: uint16(277), + 220: uint16(218), + 221: uint16(278), + 222: uint16(278), + 223: uint16(218), + 224: uint16(218), + 225: uint16(218), + 226: uint16(218), + 227: uint16(218), + 228: uint16(218), + 229: uint16(281), + 230: uint16(281), + 231: uint16(282), + 232: uint16(282), + 233: uint16(280), + 234: uint16(263), + 235: uint16(254), + 236: uint16(254), + 237: uint16(279), + 238: uint16(279), + 239: uint16(191), + 240: uint16(283), + 241: uint16(283), + 242: uint16(222), + 243: uint16(222), + 244: uint16(233), + 245: uint16(233), + 246: uint16(284), + 247: uint16(284), + 248: uint16(191), + 249: uint16(191), + 250: uint16(191), + 251: uint16(285), + 252: uint16(285), + 253: uint16(191), + 254: uint16(191), + 255: uint16(191), + 256: uint16(191), + 257: uint16(191), + 258: uint16(212), + 259: uint16(213), + 260: uint16(191), 261: uint16(287), - 262: uint16(287), - 263: uint16(288), - 264: uint16(288), - 265: uint16(288), + 262: uint16(289), + 263: uint16(289), + 264: uint16(289), + 265: uint16(290), 266: uint16(290), 267: uint16(290), - 268: uint16(286), - 269: uint16(286), - 270: uint16(292), - 271: uint16(293), - 272: uint16(293), - 273: uint16(291), - 274: uint16(291), - 275: uint16(291), - 276: uint16(291), - 277: uint16(217), - 278: uint16(217), - 279: uint16(236), - 280: uint16(236), - 281: uint16(236), - 282: uint16(190), - 283: uint16(190), - 284: uint16(190), - 285: uint16(295), - 286: uint16(295), - 287: uint16(190), - 288: uint16(190), - 289: uint16(190), - 290: uint16(190), - 291: uint16(190), - 292: uint16(190), - 293: uint16(190), - 294: uint16(296), - 295: uint16(190), - 296: uint16(190), - 297: uint16(190), - 298: uint16(298), - 299: uint16(300), - 300: uint16(301), - 301: uint16(301), - 302: uint16(302), - 303: uint16(266), - 304: uint16(266), - 305: uint16(305), - 306: uint16(305), - 307: uint16(305), - 308: uint16(304), - 309: uint16(241), - 310: uint16(241), - 311: uint16(306), - 312: uint16(307), - 313: uint16(308), - 314: uint16(308), - 315: uint16(308), - 316: uint16(308), - 317: uint16(308), - 318: uint16(309), - 319: uint16(309), - 320: uint16(309), - 321: uint16(313), - 322: uint16(315), - 323: uint16(315), + 268: uint16(292), + 269: uint16(292), + 270: uint16(288), + 271: uint16(288), + 272: uint16(294), + 273: uint16(295), + 274: uint16(295), + 275: uint16(293), + 276: uint16(293), + 277: uint16(293), + 278: uint16(293), + 279: uint16(218), + 280: uint16(218), + 281: uint16(237), + 282: uint16(237), + 283: uint16(237), + 284: uint16(191), + 285: uint16(191), + 286: uint16(191), + 287: uint16(297), + 288: uint16(297), + 289: uint16(191), + 290: uint16(191), + 291: uint16(191), + 292: uint16(191), + 293: uint16(191), + 294: uint16(191), + 295: uint16(191), + 296: uint16(298), + 297: uint16(191), + 298: uint16(191), + 299: uint16(191), + 300: uint16(300), + 301: uint16(302), + 302: uint16(303), + 303: uint16(303), + 304: uint16(304), + 305: uint16(268), + 306: uint16(268), + 307: uint16(307), + 308: uint16(307), + 309: uint16(307), + 310: uint16(306), + 311: uint16(308), + 312: uint16(242), + 313: uint16(242), + 314: uint16(309), + 315: uint16(310), + 316: uint16(311), + 317: uint16(311), + 318: uint16(311), + 319: uint16(311), + 320: uint16(311), + 321: uint16(312), + 322: uint16(312), + 323: uint16(312), 324: uint16(316), - 325: uint16(316), - 326: uint16(314), - 327: uint16(314), - 328: uint16(317), + 325: uint16(318), + 326: uint16(318), + 327: uint16(319), + 328: uint16(319), 329: uint16(317), - 330: uint16(318), - 331: uint16(318), - 332: uint16(318), - 333: uint16(251), - 334: uint16(273), - 335: uint16(273), - 336: uint16(273), - 337: uint16(312), - 338: uint16(312), - 339: uint16(311), - 340: uint16(185), - 341: uint16(186), - 342: uint16(186), - 343: uint16(187), - 344: uint16(187), + 330: uint16(317), + 331: uint16(320), + 332: uint16(320), + 333: uint16(321), + 334: uint16(321), + 335: uint16(321), + 336: uint16(252), + 337: uint16(275), + 338: uint16(275), + 339: uint16(275), + 340: uint16(315), + 341: uint16(315), + 342: uint16(314), + 343: uint16(217), + 344: uint16(186), 345: uint16(187), - 346: uint16(192), - 347: uint16(192), - 348: uint16(192), - 349: uint16(194), - 350: uint16(194), - 351: uint16(190), - 352: uint16(203), - 353: uint16(201), - 354: uint16(201), - 355: uint16(193), - 356: uint16(193), - 357: uint16(208), - 358: uint16(209), - 359: uint16(210), - 360: uint16(210), - 361: uint16(207), - 362: uint16(207), - 363: uint16(215), - 364: uint16(215), - 365: uint16(215), - 366: uint16(202), - 367: uint16(228), - 368: uint16(228), - 369: uint16(229), - 370: uint16(233), - 371: uint16(235), - 372: uint16(239), - 373: uint16(240), - 374: uint16(254), - 375: uint16(255), - 376: uint16(264), - 377: uint16(272), - 378: uint16(217), - 379: uint16(274), - 380: uint16(278), - 381: uint16(261), - 382: uint16(284), - 383: uint16(284), - 384: uint16(284), - 385: uint16(284), - 386: uint16(284), - 387: uint16(211), - 388: uint16(289), - 389: uint16(289), - 390: uint16(292), - 391: uint16(293), - 392: uint16(294), - 393: uint16(294), - 394: uint16(297), - 395: uint16(297), - 396: uint16(299), - 397: uint16(299), - 398: uint16(300), - 399: uint16(303), - 400: uint16(303), - 401: uint16(303), - 402: uint16(266), - 403: uint16(306), - 404: uint16(308), + 346: uint16(187), + 347: uint16(188), + 348: uint16(188), + 349: uint16(188), + 350: uint16(193), + 351: uint16(193), + 352: uint16(193), + 353: uint16(195), + 354: uint16(195), + 355: uint16(191), + 356: uint16(204), + 357: uint16(202), + 358: uint16(202), + 359: uint16(194), + 360: uint16(194), + 361: uint16(209), + 362: uint16(210), + 363: uint16(211), + 364: uint16(211), + 365: uint16(208), + 366: uint16(208), + 367: uint16(216), + 368: uint16(216), + 369: uint16(216), + 370: uint16(203), + 371: uint16(229), + 372: uint16(229), + 373: uint16(230), + 374: uint16(234), + 375: uint16(236), + 376: uint16(240), + 377: uint16(241), + 378: uint16(256), + 379: uint16(257), + 380: uint16(266), + 381: uint16(274), + 382: uint16(218), + 383: uint16(276), + 384: uint16(280), + 385: uint16(263), + 386: uint16(286), + 387: uint16(286), + 388: uint16(286), + 389: uint16(286), + 390: uint16(286), + 391: uint16(212), + 392: uint16(291), + 393: uint16(291), + 394: uint16(294), + 395: uint16(295), + 396: uint16(296), + 397: uint16(296), + 398: uint16(299), + 399: uint16(299), + 400: uint16(301), + 401: uint16(301), + 402: uint16(302), + 403: uint16(305), + 404: uint16(305), + 405: uint16(305), + 406: uint16(268), + 407: uint16(309), + 408: uint16(311), } // C documentation // // /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number // ** of symbols on the right-hand side of that rule. */ -var _yyRuleInfoNRhs = [405]int8{ +var _yyRuleInfoNRhs = [409]int8{ 0: int8(-int32(1)), 1: int8(-int32(3)), 2: int8(-int32(1)), @@ -159196,273 +160805,277 @@ var _yyRuleInfoNRhs = [405]int8{ 92: int8(-int32(9)), 93: int8(-int32(10)), 94: int8(-int32(4)), - 95: int8(-int32(5)), - 96: int8(-int32(1)), - 97: int8(-int32(1)), - 100: int8(-int32(5)), - 101: int8(-int32(3)), + 95: int8(-int32(1)), + 96: int8(-int32(5)), + 97: int8(-int32(5)), + 98: int8(-int32(1)), + 99: int8(-int32(1)), 102: int8(-int32(5)), - 103: int8(-int32(2)), - 106: int8(-int32(2)), - 107: int8(-int32(2)), - 109: int8(-int32(5)), - 110: int8(-int32(6)), - 111: int8(-int32(8)), + 103: int8(-int32(3)), + 104: int8(-int32(5)), + 105: int8(-int32(2)), + 108: int8(-int32(2)), + 109: int8(-int32(2)), + 111: int8(-int32(5)), 112: int8(-int32(6)), - 113: int8(-int32(6)), - 115: int8(-int32(2)), - 116: int8(-int32(1)), - 117: int8(-int32(3)), + 113: int8(-int32(8)), + 114: int8(-int32(6)), + 115: int8(-int32(6)), + 117: int8(-int32(2)), 118: int8(-int32(1)), 119: int8(-int32(3)), - 120: int8(-int32(5)), + 120: int8(-int32(1)), 121: int8(-int32(3)), - 122: int8(-int32(1)), - 123: int8(-int32(2)), - 124: int8(-int32(3)), - 125: int8(-int32(4)), - 126: int8(-int32(2)), + 122: int8(-int32(5)), + 123: int8(-int32(3)), + 124: int8(-int32(1)), + 125: int8(-int32(2)), + 126: int8(-int32(3)), 127: int8(-int32(4)), - 130: int8(-int32(3)), - 131: int8(-int32(2)), - 133: int8(-int32(3)), - 134: int8(-int32(5)), + 128: int8(-int32(2)), + 129: int8(-int32(4)), + 132: int8(-int32(3)), + 133: int8(-int32(2)), 135: int8(-int32(3)), - 136: int8(-int32(1)), - 137: int8(-int32(1)), - 139: int8(-int32(2)), - 140: int8(-int32(2)), - 143: int8(-int32(3)), - 145: int8(-int32(2)), + 136: int8(-int32(5)), + 137: int8(-int32(3)), + 138: int8(-int32(1)), + 139: int8(-int32(1)), + 141: int8(-int32(2)), + 142: int8(-int32(2)), + 145: int8(-int32(3)), 147: int8(-int32(2)), - 148: int8(-int32(4)), - 149: int8(-int32(4)), - 150: int8(-int32(6)), - 152: int8(-int32(2)), + 149: int8(-int32(2)), + 150: int8(-int32(4)), + 151: int8(-int32(4)), + 152: int8(-int32(6)), 154: int8(-int32(2)), - 155: int8(-int32(2)), - 156: int8(-int32(4)), - 157: int8(-int32(9)), - 158: int8(-int32(5)), - 159: int8(-int32(7)), - 160: int8(-int32(3)), - 161: int8(-int32(5)), - 162: int8(-int32(7)), - 163: int8(-int32(8)), - 165: int8(-int32(2)), - 166: int8(-int32(12)), - 167: int8(-int32(9)), - 168: int8(-int32(5)), - 169: int8(-int32(8)), - 170: int8(-int32(2)), - 171: int8(-int32(2)), - 172: int8(-int32(1)), - 174: int8(-int32(3)), - 175: int8(-int32(3)), - 176: int8(-int32(1)), + 156: int8(-int32(2)), + 157: int8(-int32(2)), + 158: int8(-int32(4)), + 159: int8(-int32(9)), + 160: int8(-int32(5)), + 161: int8(-int32(7)), + 162: int8(-int32(3)), + 163: int8(-int32(5)), + 164: int8(-int32(7)), + 165: int8(-int32(8)), + 167: int8(-int32(2)), + 168: int8(-int32(12)), + 169: int8(-int32(9)), + 170: int8(-int32(5)), + 171: int8(-int32(8)), + 172: int8(-int32(2)), + 173: int8(-int32(2)), + 174: int8(-int32(1)), + 176: int8(-int32(3)), 177: int8(-int32(3)), 178: int8(-int32(1)), 179: int8(-int32(3)), - 180: int8(-int32(5)), - 181: int8(-int32(1)), - 182: int8(-int32(1)), + 180: int8(-int32(1)), + 181: int8(-int32(3)), + 182: int8(-int32(5)), 183: int8(-int32(1)), 184: int8(-int32(1)), - 185: int8(-int32(3)), - 186: int8(-int32(6)), - 187: int8(-int32(5)), - 188: int8(-int32(8)), - 189: int8(-int32(4)), - 190: int8(-int32(6)), - 191: int8(-int32(9)), - 192: int8(-int32(5)), - 193: int8(-int32(1)), + 185: int8(-int32(1)), + 186: int8(-int32(1)), + 187: int8(-int32(3)), + 188: int8(-int32(6)), + 189: int8(-int32(5)), + 190: int8(-int32(8)), + 191: int8(-int32(4)), + 192: int8(-int32(6)), + 193: int8(-int32(9)), 194: int8(-int32(5)), - 195: int8(-int32(3)), - 196: int8(-int32(3)), + 195: int8(-int32(1)), + 196: int8(-int32(5)), 197: int8(-int32(3)), 198: int8(-int32(3)), 199: int8(-int32(3)), 200: int8(-int32(3)), 201: int8(-int32(3)), 202: int8(-int32(3)), - 203: int8(-int32(2)), + 203: int8(-int32(3)), 204: int8(-int32(3)), - 205: int8(-int32(5)), - 206: int8(-int32(2)), - 207: int8(-int32(3)), - 208: int8(-int32(3)), - 209: int8(-int32(4)), - 210: int8(-int32(6)), - 211: int8(-int32(5)), - 212: int8(-int32(2)), - 213: int8(-int32(2)), + 205: int8(-int32(2)), + 206: int8(-int32(3)), + 207: int8(-int32(5)), + 208: int8(-int32(2)), + 209: int8(-int32(3)), + 210: int8(-int32(3)), + 211: int8(-int32(4)), + 212: int8(-int32(6)), + 213: int8(-int32(5)), 214: int8(-int32(2)), - 215: int8(-int32(3)), - 216: int8(-int32(1)), - 217: int8(-int32(2)), - 218: int8(-int32(5)), - 219: int8(-int32(1)), - 220: int8(-int32(2)), - 221: int8(-int32(5)), - 222: int8(-int32(3)), + 215: int8(-int32(2)), + 216: int8(-int32(2)), + 217: int8(-int32(3)), + 218: int8(-int32(1)), + 219: int8(-int32(2)), + 220: int8(-int32(5)), + 221: int8(-int32(1)), + 222: int8(-int32(2)), 223: int8(-int32(5)), - 224: int8(-int32(5)), - 225: int8(-int32(4)), + 224: int8(-int32(3)), + 225: int8(-int32(5)), 226: int8(-int32(5)), - 227: int8(-int32(5)), - 228: int8(-int32(4)), - 229: int8(-int32(2)), - 233: int8(-int32(3)), - 234: int8(-int32(1)), - 236: int8(-int32(3)), - 237: int8(-int32(12)), - 238: int8(-int32(1)), - 241: int8(-int32(3)), - 242: int8(-int32(5)), + 227: int8(-int32(4)), + 228: int8(-int32(5)), + 229: int8(-int32(5)), + 230: int8(-int32(4)), + 231: int8(-int32(2)), + 235: int8(-int32(3)), + 236: int8(-int32(1)), + 238: int8(-int32(3)), + 239: int8(-int32(12)), + 240: int8(-int32(1)), 243: int8(-int32(3)), - 245: int8(-int32(2)), - 246: int8(-int32(4)), + 244: int8(-int32(5)), + 245: int8(-int32(3)), 247: int8(-int32(2)), - 248: int8(-int32(3)), + 248: int8(-int32(4)), 249: int8(-int32(2)), - 251: int8(-int32(3)), - 252: int8(-int32(5)), - 253: int8(-int32(6)), + 250: int8(-int32(3)), + 251: int8(-int32(2)), + 253: int8(-int32(3)), 254: int8(-int32(5)), 255: int8(-int32(6)), - 256: int8(-int32(2)), - 257: int8(-int32(2)), - 258: int8(-int32(5)), - 259: int8(-int32(11)), - 260: int8(-int32(1)), - 261: int8(-int32(2)), - 263: int8(-int32(1)), - 264: int8(-int32(1)), - 265: int8(-int32(3)), - 267: int8(-int32(2)), - 268: int8(-int32(3)), + 256: int8(-int32(5)), + 257: int8(-int32(6)), + 258: int8(-int32(2)), + 259: int8(-int32(2)), + 260: int8(-int32(5)), + 261: int8(-int32(11)), + 262: int8(-int32(1)), + 263: int8(-int32(2)), + 265: int8(-int32(1)), + 266: int8(-int32(1)), + 267: int8(-int32(3)), 269: int8(-int32(2)), 270: int8(-int32(3)), - 271: int8(-int32(3)), - 272: int8(-int32(2)), - 273: int8(-int32(9)), - 274: int8(-int32(8)), - 275: int8(-int32(6)), - 276: int8(-int32(3)), - 277: int8(-int32(4)), - 278: int8(-int32(6)), - 279: int8(-int32(1)), - 280: int8(-int32(1)), + 271: int8(-int32(2)), + 272: int8(-int32(3)), + 273: int8(-int32(3)), + 274: int8(-int32(2)), + 275: int8(-int32(9)), + 276: int8(-int32(8)), + 277: int8(-int32(6)), + 278: int8(-int32(3)), + 279: int8(-int32(4)), + 280: int8(-int32(6)), 281: int8(-int32(1)), - 282: int8(-int32(4)), - 283: int8(-int32(6)), - 284: int8(-int32(3)), - 286: int8(-int32(2)), - 287: int8(-int32(1)), - 288: int8(-int32(3)), + 282: int8(-int32(1)), + 283: int8(-int32(1)), + 284: int8(-int32(4)), + 285: int8(-int32(6)), + 286: int8(-int32(3)), + 288: int8(-int32(2)), 289: int8(-int32(1)), 290: int8(-int32(3)), - 291: int8(-int32(6)), - 292: int8(-int32(7)), + 291: int8(-int32(1)), + 292: int8(-int32(3)), 293: int8(-int32(6)), - 294: int8(-int32(1)), - 295: int8(-int32(8)), + 294: int8(-int32(7)), + 295: int8(-int32(6)), 296: int8(-int32(1)), - 297: int8(-int32(4)), - 298: int8(-int32(8)), - 300: int8(-int32(1)), - 301: int8(-int32(3)), + 297: int8(-int32(8)), + 298: int8(-int32(1)), + 299: int8(-int32(4)), + 300: int8(-int32(8)), 302: int8(-int32(1)), - 303: int8(-int32(2)), - 304: int8(-int32(3)), - 305: int8(-int32(1)), - 306: int8(-int32(2)), - 307: int8(-int32(3)), - 308: int8(-int32(6)), - 309: int8(-int32(1)), - 310: int8(-int32(3)), - 311: int8(-int32(3)), - 312: int8(-int32(5)), - 313: int8(-int32(5)), - 314: int8(-int32(6)), - 315: int8(-int32(4)), + 303: int8(-int32(3)), + 304: int8(-int32(1)), + 305: int8(-int32(2)), + 306: int8(-int32(3)), + 307: int8(-int32(1)), + 308: int8(-int32(2)), + 309: int8(-int32(3)), + 310: int8(-int32(6)), + 311: int8(-int32(1)), + 312: int8(-int32(1)), + 313: int8(-int32(3)), + 314: int8(-int32(3)), + 315: int8(-int32(5)), 316: int8(-int32(5)), - 317: int8(-int32(2)), - 319: int8(-int32(3)), - 320: int8(-int32(6)), - 321: int8(-int32(1)), - 322: int8(-int32(1)), - 323: int8(-int32(2)), + 317: int8(-int32(6)), + 318: int8(-int32(4)), + 319: int8(-int32(5)), + 320: int8(-int32(2)), + 322: int8(-int32(3)), + 323: int8(-int32(6)), 324: int8(-int32(1)), - 325: int8(-int32(2)), + 325: int8(-int32(1)), 326: int8(-int32(2)), - 327: int8(-int32(2)), + 327: int8(-int32(1)), + 328: int8(-int32(2)), 329: int8(-int32(2)), 330: int8(-int32(2)), - 331: int8(-int32(2)), - 332: int8(-int32(1)), + 332: int8(-int32(2)), 333: int8(-int32(2)), 334: int8(-int32(2)), 335: int8(-int32(1)), - 336: int8(-int32(1)), - 337: int8(-int32(4)), - 338: int8(-int32(2)), - 339: int8(-int32(5)), - 340: int8(-int32(1)), + 336: int8(-int32(2)), + 337: int8(-int32(2)), + 338: int8(-int32(1)), + 339: int8(-int32(1)), + 340: int8(-int32(4)), 341: int8(-int32(2)), - 342: int8(-int32(1)), + 342: int8(-int32(5)), 343: int8(-int32(1)), - 344: int8(-int32(2)), - 345: int8(-int32(3)), + 344: int8(-int32(1)), + 345: int8(-int32(2)), + 346: int8(-int32(1)), 347: int8(-int32(1)), 348: int8(-int32(2)), - 349: int8(-int32(1)), - 351: int8(-int32(2)), - 352: int8(-int32(1)), - 353: int8(-int32(4)), - 354: int8(-int32(2)), - 355: int8(-int32(1)), + 349: int8(-int32(3)), + 351: int8(-int32(1)), + 352: int8(-int32(2)), + 353: int8(-int32(1)), + 355: int8(-int32(2)), 356: int8(-int32(1)), - 357: int8(-int32(1)), - 358: int8(-int32(1)), + 357: int8(-int32(4)), + 358: int8(-int32(2)), 359: int8(-int32(1)), 360: int8(-int32(1)), - 361: int8(-int32(2)), - 363: int8(-int32(2)), - 364: int8(-int32(4)), + 361: int8(-int32(1)), + 362: int8(-int32(1)), + 363: int8(-int32(1)), + 364: int8(-int32(1)), 365: int8(-int32(2)), - 366: int8(-int32(2)), - 367: int8(-int32(3)), - 368: int8(-int32(1)), - 370: int8(-int32(1)), - 371: int8(-int32(1)), + 367: int8(-int32(2)), + 368: int8(-int32(4)), + 369: int8(-int32(2)), + 370: int8(-int32(2)), + 371: int8(-int32(3)), 372: int8(-int32(1)), - 373: int8(-int32(1)), - 374: int8(-int32(2)), + 374: int8(-int32(1)), 375: int8(-int32(1)), 376: int8(-int32(1)), - 378: int8(-int32(1)), + 377: int8(-int32(1)), + 378: int8(-int32(2)), 379: int8(-int32(1)), 380: int8(-int32(1)), - 381: int8(-int32(1)), 382: int8(-int32(1)), 383: int8(-int32(1)), 384: int8(-int32(1)), 385: int8(-int32(1)), 386: int8(-int32(1)), 387: int8(-int32(1)), - 389: int8(-int32(3)), + 388: int8(-int32(1)), + 389: int8(-int32(1)), 390: int8(-int32(1)), - 392: int8(-int32(1)), - 395: int8(-int32(1)), + 391: int8(-int32(1)), + 393: int8(-int32(3)), + 394: int8(-int32(1)), 396: int8(-int32(1)), - 397: int8(-int32(3)), - 398: int8(-int32(2)), - 400: int8(-int32(4)), - 401: int8(-int32(2)), - 403: int8(-int32(1)), - 404: int8(-int32(1)), + 399: int8(-int32(1)), + 400: int8(-int32(1)), + 401: int8(-int32(3)), + 402: int8(-int32(2)), + 404: int8(-int32(4)), + 405: int8(-int32(2)), + 407: int8(-int32(1)), + 408: int8(-int32(1)), } // C documentation @@ -159480,18 +161093,19 @@ var _yyRuleInfoNRhs = [405]int8{ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int32, yyLookaheadToken TToken, pParse uintptr) (r uint16) { bp := tls.Alloc(96) defer tls.Free(96) - var bNot, bNot1, nExpr, yygoto, yysize, v344 int32 + var bNot, bNot1, nExpr, yygoto, yysize int32 var n Tu32 - var p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v343, v345, v346, v347, v348 uintptr + var op Tu8 + var p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v347, v348, v349, v350, v351 uintptr var yyact uint16 - var v349 TToken + var v352 TToken var _ /* all at bp+64 */ TToken var _ /* as at bp+48 */ TToken var _ /* dest at bp+8 */ TSelectDest var _ /* t at bp+56 */ TToken var _ /* x at bp+40 */ TToken var _ /* yylhsminor at bp+0 */ TYYMINORTYPE - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v343, v344, v345, v346, v347, v348, v349 /* Amount to pop the stack */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, op, p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v347, v348, v349, v350, v351, v352 /* Amount to pop the stack */ _ = yyLookahead _ = yyLookaheadToken yymsp = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos @@ -159512,7 +161126,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _7 case uint32(7): goto _8 - case uint32(321): + case uint32(324): goto _9 case uint32(9): goto _10 @@ -159540,9 +161154,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _21 case uint32(81): goto _22 - case uint32(98): + case uint32(100): goto _23 - case uint32(244): + case uint32(246): goto _24 case uint32(16): goto _25 @@ -159566,7 +161180,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _34 case uint32(26): goto _35 - case uint32(104): + case uint32(106): goto _36 case uint32(27): goto _37 @@ -159640,17 +161254,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _71 case uint32(61): goto _72 - case uint32(171): + case uint32(173): goto _73 case uint32(80): goto _74 case uint32(63): goto _75 - case uint32(217): + case uint32(219): goto _76 - case uint32(220): + case uint32(222): goto _77 - case uint32(245): + case uint32(247): goto _78 case uint32(64): goto _79 @@ -159672,7 +161286,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _87 case uint32(77): goto _88 - case uint32(172): + case uint32(174): goto _89 case uint32(78): goto _90 @@ -159706,47 +161320,47 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _104 case uint32(95): goto _105 - case uint32(96): - goto _106 case uint32(97): + goto _106 + case uint32(96): goto _107 - case uint32(132): + case uint32(98): goto _108 case uint32(99): goto _109 - case uint32(142): + case uint32(134): goto _110 - case uint32(232): + case uint32(101): goto _111 - case uint32(235): + case uint32(144): goto _112 - case uint32(240): + case uint32(234): goto _113 - case uint32(100): + case uint32(237): goto _114 - case uint32(101): + case uint32(242): goto _115 case uint32(102): goto _116 - case uint32(115): - goto _117 case uint32(103): + goto _117 + case uint32(104): goto _118 - case uint32(256): + case uint32(117): goto _119 - case uint32(257): + case uint32(105): goto _120 - case uint32(108): + case uint32(258): goto _121 - case uint32(105): + case uint32(259): goto _122 - case uint32(106): + case uint32(110): goto _123 case uint32(107): goto _124 - case uint32(109): + case uint32(108): goto _125 - case uint32(110): + case uint32(109): goto _126 case uint32(111): goto _127 @@ -159754,13 +161368,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _128 case uint32(113): goto _129 - case uint32(129): - goto _130 case uint32(114): + goto _130 + case uint32(115): goto _131 - case uint32(116): + case uint32(131): goto _132 - case uint32(117): + case uint32(116): goto _133 case uint32(118): goto _134 @@ -159784,15 +161398,15 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _143 case uint32(128): goto _144 - case uint32(130): + case uint32(129): goto _145 - case uint32(131): + case uint32(130): goto _146 - case uint32(143): + case uint32(132): goto _147 case uint32(133): goto _148 - case uint32(134): + case uint32(145): goto _149 case uint32(135): goto _150 @@ -159800,49 +161414,49 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _151 case uint32(137): goto _152 - case uint32(141): - goto _153 case uint32(138): - goto _154 + goto _153 case uint32(139): + goto _154 + case uint32(143): goto _155 case uint32(140): goto _156 - case uint32(146): + case uint32(141): goto _157 - case uint32(144): + case uint32(142): goto _158 - case uint32(151): + case uint32(148): goto _159 - case uint32(153): + case uint32(146): goto _160 - case uint32(230): + case uint32(153): goto _161 - case uint32(231): + case uint32(155): goto _162 - case uint32(250): + case uint32(232): goto _163 - case uint32(152): + case uint32(233): goto _164 - case uint32(145): + case uint32(252): goto _165 case uint32(154): goto _166 - case uint32(229): + case uint32(147): goto _167 - case uint32(249): + case uint32(156): goto _168 - case uint32(147): + case uint32(231): goto _169 - case uint32(148): + case uint32(251): goto _170 case uint32(149): goto _171 case uint32(150): goto _172 - case uint32(155): + case uint32(151): goto _173 - case uint32(156): + case uint32(152): goto _174 case uint32(157): goto _175 @@ -159872,9 +161486,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _187 case uint32(170): goto _188 - case uint32(173): + case uint32(171): goto _189 - case uint32(174): + case uint32(172): goto _190 case uint32(175): goto _191 @@ -159888,13 +161502,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _195 case uint32(180): goto _196 - case uint32(182): - goto _197 case uint32(181): + goto _197 + case uint32(182): goto _198 - case uint32(183): - goto _199 case uint32(184): + goto _199 + case uint32(183): goto _200 case uint32(185): goto _201 @@ -159918,13 +161532,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _210 case uint32(195): goto _211 - case uint32(197): - goto _212 case uint32(196): + goto _212 + case uint32(197): goto _213 - case uint32(198): - goto _214 case uint32(199): + goto _214 + case uint32(198): goto _215 case uint32(200): goto _216 @@ -159950,23 +161564,23 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _226 case uint32(211): goto _227 - case uint32(213): - goto _228 case uint32(212): + goto _228 + case uint32(213): goto _229 - case uint32(214): - goto _230 case uint32(215): + goto _230 + case uint32(214): goto _231 - case uint32(219): - goto _232 case uint32(216): + goto _232 + case uint32(217): goto _233 - case uint32(218): - goto _234 case uint32(221): + goto _234 + case uint32(218): goto _235 - case uint32(222): + case uint32(220): goto _236 case uint32(223): goto _237 @@ -159980,35 +161594,35 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _241 case uint32(228): goto _242 - case uint32(233): + case uint32(229): goto _243 - case uint32(234): + case uint32(230): goto _244 - case uint32(241): + case uint32(235): goto _245 case uint32(236): goto _246 - case uint32(237): + case uint32(243): goto _247 - case uint32(280): - goto _248 case uint32(238): - goto _249 + goto _248 case uint32(239): + goto _249 + case uint32(282): goto _250 - case uint32(242): + case uint32(240): goto _251 - case uint32(243): + case uint32(241): goto _252 - case uint32(246): + case uint32(244): goto _253 - case uint32(247): + case uint32(245): goto _254 case uint32(248): goto _255 - case uint32(251): + case uint32(249): goto _256 - case uint32(252): + case uint32(250): goto _257 case uint32(253): goto _258 @@ -160016,9 +161630,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _259 case uint32(255): goto _260 - case uint32(258): + case uint32(256): goto _261 - case uint32(259): + case uint32(257): goto _262 case uint32(260): goto _263 @@ -160026,21 +161640,21 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _264 case uint32(262): goto _265 - case uint32(264): - goto _266 case uint32(263): + goto _266 + case uint32(264): goto _267 - case uint32(265): + case uint32(266): goto _268 - case uint32(285): + case uint32(265): goto _269 - case uint32(266): + case uint32(267): goto _270 - case uint32(286): + case uint32(287): goto _271 - case uint32(267): - goto _272 case uint32(268): + goto _272 + case uint32(288): goto _273 case uint32(269): goto _274 @@ -160064,17 +161678,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _283 case uint32(279): goto _284 - case uint32(281): + case uint32(280): goto _285 - case uint32(282): + case uint32(281): goto _286 case uint32(283): goto _287 case uint32(284): goto _288 - case uint32(287): + case uint32(285): goto _289 - case uint32(288): + case uint32(286): goto _290 case uint32(289): goto _291 @@ -160098,19 +161712,19 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _300 case uint32(299): goto _301 - case uint32(301): - goto _302 case uint32(300): + goto _302 + case uint32(301): goto _303 - case uint32(302): + case uint32(303): goto _304 - case uint32(304): + case uint32(302): goto _305 - case uint32(303): + case uint32(304): goto _306 - case uint32(305): - goto _307 case uint32(306): + goto _307 + case uint32(305): goto _308 case uint32(307): goto _309 @@ -160140,31 +161754,31 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _321 case uint32(320): goto _322 - case uint32(324): + case uint32(321): goto _323 case uint32(322): goto _324 - case uint32(325): - goto _325 case uint32(323): - goto _326 + goto _325 case uint32(327): + goto _326 + case uint32(325): goto _327 - case uint32(326): - goto _328 case uint32(328): + goto _328 + case uint32(326): goto _329 - case uint32(329): + case uint32(330): goto _330 - case uint32(331): + case uint32(329): goto _331 - case uint32(330): + case uint32(331): goto _332 case uint32(332): goto _333 - case uint32(333): - goto _334 case uint32(334): + goto _334 + case uint32(333): goto _335 case uint32(335): goto _336 @@ -160176,34 +161790,42 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _339 case uint32(339): goto _340 - default: + case uint32(340): goto _341 + case uint32(341): + goto _342 + case uint32(342): + goto _343 + case uint32(343): + goto _344 + default: + goto _345 } - goto _342 + goto _346 _1: ; /* explain ::= EXPLAIN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(1) } - goto _342 + goto _346 _2: ; /* explain ::= EXPLAIN QUERY PLAN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(2) } - goto _342 + goto _346 _3: ; /* cmdx ::= cmd */ _sqlite3FinishCoding(tls, pParse) - goto _342 + goto _346 _4: ; /* cmd ::= BEGIN transtype trans_opt */ _sqlite3BeginTransaction(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 + goto _346 _5: ; /* transtype ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*12 + 4)) = int32(TK_DEFERRED) - goto _342 + goto _346 _7: ; /* transtype ::= DEFERRED */ _6: @@ -160213,33 +161835,33 @@ _8: _9: ; *(*int32)(unsafe.Pointer(yymsp + 4)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 + goto _346 _11: ; /* cmd ::= COMMIT|END trans_opt */ _10: ; _sqlite3EndTransaction(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12))).Fmajor)) - goto _342 + goto _346 _12: ; /* cmd ::= SAVEPOINT nm */ _sqlite3Savepoint(tls, pParse, SAVEPOINT_BEGIN, yymsp+4) - goto _342 + goto _346 _13: ; /* cmd ::= RELEASE savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_RELEASE), yymsp+4) - goto _342 + goto _346 _14: ; /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_ROLLBACK), yymsp+4) - goto _342 + goto _346 _15: ; /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ _sqlite3StartTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, yymsp+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), 0, 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) - goto _342 + goto _346 _16: ; /* createkw ::= CREATE */ _disableLookaside(tls, pParse) - goto _342 + goto _346 _18: ; /* ifnotexists ::= */ _17: @@ -160257,56 +161879,56 @@ _23: _24: ; *(*int32)(unsafe.Pointer(yymsp + 1*12 + 4)) = 0 - goto _342 + goto _346 _25: ; /* ifnotexists ::= IF NOT EXISTS */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = int32(1) - goto _342 + goto _346 _26: ; /* temp ::= TEMP */ *(*int32)(unsafe.Pointer(yymsp + 4)) = libc.BoolInt32(int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0) - goto _342 + goto _346 _27: ; /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ _sqlite3EndTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, *(*Tu32)(unsafe.Pointer(yymsp + 4)), uintptr(0)) - goto _342 + goto _346 _28: ; /* create_table_args ::= AS select */ _sqlite3EndTable(tls, pParse, uintptr(0), uintptr(0), uint32(0), *(*uintptr)(unsafe.Pointer(yymsp + 4))) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _29: ; /* table_option_set ::= */ *(*Tu32)(unsafe.Pointer(yymsp + 1*12 + 4)) = uint32(0) - goto _342 + goto _346 _30: ; /* table_option_set ::= table_option_set COMMA table_option */ *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) | *(*Tu32)(unsafe.Pointer(yymsp + 4)) *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _31: ; /* table_option ::= WITHOUT nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 4)), __ccgo_ts+16694, int32(5)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 4)), __ccgo_ts+16781, int32(5)) == 0 { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) } else { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23358, libc.VaList(bp+80, *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23481, libc.VaList(bp+80, *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4)))) } - goto _342 + goto _346 _32: ; /* table_option ::= nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 4)), __ccgo_ts+16607, int32(6)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 4)), __ccgo_ts+16694, int32(6)) == 0 { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(TF_Strict) } else { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23358, libc.VaList(bp+80, *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23481, libc.VaList(bp+80, *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4)))) } *(*Tu32)(unsafe.Pointer(yymsp + 4)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _33: ; /* columnname ::= nm typetoken */ _sqlite3AddColumn(tls, pParse, *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*TToken)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _35: ; /* typetoken ::= */ _34: @@ -160315,52 +161937,52 @@ _36: ; *(*uint32)(unsafe.Pointer(yymsp + 1*12 + 4 + 4)) = uint32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) - goto _342 + goto _346 _37: ; /* typetoken ::= typename LP signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4 + 4)) = uint32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 4))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 4 + 4)))) - int32(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)))) - goto _342 + goto _346 _38: ; /* typetoken ::= typename LP signed COMMA signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4 + 4)) = uint32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 4))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 4 + 4)))) - int32(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)))) - goto _342 + goto _346 _39: ; /* typename ::= typename ID|STRING */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) = *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)) + uint32(int32(*(*uintptr)(unsafe.Pointer(yymsp + 4)))-int32(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))) - goto _342 + goto _346 _40: ; /* scanpt ::= */ _ = libc.Int32FromInt32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = yyLookaheadToken.Fz - goto _342 + goto _346 _41: ; /* scantok ::= */ _ = libc.Int32FromInt32(0) *(*TToken)(unsafe.Pointer(yymsp + 1*12 + 4)) = yyLookaheadToken - goto _342 + goto _346 _43: ; /* ccons ::= CONSTRAINT nm */ _42: ; (*TParse)(unsafe.Pointer(pParse)).FconstraintName = *(*TToken)(unsafe.Pointer(yymsp + 4)) - goto _342 + goto _346 _44: ; /* ccons ::= DEFAULT scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)))) - goto _342 + goto _346 _45: ; /* ccons ::= DEFAULT LP expr RP */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))+uintptr(1), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _46: ; /* ccons ::= DEFAULT PLUS scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)))) - goto _342 + goto _346 _47: ; /* ccons ::= DEFAULT MINUS scantok term */ p = _sqlite3PExpr(tls, pParse, int32(TK_UMINUS), *(*uintptr)(unsafe.Pointer(yymsp + 4)), uintptr(0)) _sqlite3AddDefaultValue(tls, pParse, p, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)))) - goto _342 + goto _346 _48: ; /* ccons ::= DEFAULT scantok ID|INDEXED */ p1 = _tokenExpr(tls, pParse, int32(TK_STRING), *(*TToken)(unsafe.Pointer(yymsp + 4))) @@ -160368,99 +161990,99 @@ _48: _sqlite3ExprIdToTrueFalse(tls, p1) } _sqlite3AddDefaultValue(tls, pParse, p1, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 4 + 4)))) - goto _342 + goto _346 _49: ; /* ccons ::= NOT NULL onconf */ _sqlite3AddNotNull(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _50: ; /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ _sqlite3AddPrimaryKey(tls, pParse, uintptr(0), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) - goto _342 + goto _346 _51: ; /* ccons ::= UNIQUE onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), *(*int32)(unsafe.Pointer(yymsp + 4)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _52: ; /* ccons ::= CHECK LP expr RP */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _53: ; /* ccons ::= REFERENCES nm eidlist_opt refargs */ _sqlite3CreateForeignKey(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _54: ; /* ccons ::= defer_subclause */ _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _55: ; /* ccons ::= COLLATE ID|STRING */ _sqlite3AddCollateType(tls, pParse, yymsp+4) - goto _342 + goto _346 _56: ; /* generated ::= LP expr RP */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uintptr(0)) - goto _342 + goto _346 _57: ; /* generated ::= LP expr RP ID */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), yymsp+4) - goto _342 + goto _346 _58: ; /* autoinc ::= AUTOINCR */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(1) - goto _342 + goto _346 _59: ; /* refargs ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*12 + 4)) = libc.Int32FromInt32(OE_None) * libc.Int32FromInt32(0x0101) /* EV: R-19803-45884 */ - goto _342 + goto _346 _60: ; /* refargs ::= refargs refarg */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) & ^*(*int32)(unsafe.Pointer(yymsp + 4 + 4)) | *(*int32)(unsafe.Pointer(yymsp + 4)) - goto _342 + goto _346 _61: ; /* refarg ::= MATCH nm */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) = 0x000000 - goto _342 + goto _346 _62: ; /* refarg ::= ON INSERT refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4 + 4)) = 0x000000 - goto _342 + goto _346 _63: ; /* refarg ::= ON DELETE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*int32)(unsafe.Pointer(yymsp + 4)) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4 + 4)) = int32(0x0000ff) - goto _342 + goto _346 _64: ; /* refarg ::= ON UPDATE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*int32)(unsafe.Pointer(yymsp + 4)) << int32(8) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4 + 4)) = int32(0x00ff00) - goto _342 + goto _346 _65: ; /* refact ::= SET NULL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = int32(OE_SetNull) /* EV: R-33326-45252 */ - goto _342 + goto _346 _66: ; /* refact ::= SET DEFAULT */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = int32(OE_SetDflt) /* EV: R-33326-45252 */ - goto _342 + goto _346 _67: ; /* refact ::= CASCADE */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(OE_Cascade) /* EV: R-33326-45252 */ - goto _342 + goto _346 _68: ; /* refact ::= RESTRICT */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(OE_Restrict) /* EV: R-33326-45252 */ - goto _342 + goto _346 _69: ; /* refact ::= NO ACTION */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = OE_None /* EV: R-33326-45252 */ - goto _342 + goto _346 _70: ; /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = 0 - goto _342 + goto _346 _72: ; /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ _71: @@ -160468,7 +162090,7 @@ _71: _73: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*int32)(unsafe.Pointer(yymsp + 4)) - goto _342 + goto _346 _75: ; /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ _74: @@ -160480,64 +162102,64 @@ _77: _78: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = int32(1) - goto _342 + goto _346 _79: ; /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = 0 - goto _342 + goto _346 _80: ; /* tconscomma ::= COMMA */ (*TParse)(unsafe.Pointer(pParse)).FconstraintName.Fn = uint32(0) - goto _342 + goto _346 _81: ; /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ _sqlite3AddPrimaryKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), 0) - goto _342 + goto _346 _82: ; /* tcons ::= UNIQUE LP sortlist RP onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + 4)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _83: ; /* tcons ::= CHECK LP expr RP onconf */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 + goto _346 _84: ; /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ _sqlite3CreateForeignKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _86: ; /* onconf ::= */ _85: ; *(*int32)(unsafe.Pointer(yymsp + 1*12 + 4)) = int32(OE_Default) - goto _342 + goto _346 _87: ; /* onconf ::= ON CONFLICT resolvetype */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*int32)(unsafe.Pointer(yymsp + 4)) - goto _342 + goto _346 _88: ; /* resolvetype ::= IGNORE */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(OE_Ignore) - goto _342 + goto _346 _90: ; /* resolvetype ::= REPLACE */ _89: ; *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(OE_Replace) - goto _342 + goto _346 _91: ; /* cmd ::= DROP TABLE ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 + goto _346 _92: ; /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ _sqlite3CreateView(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(8))*12+4, yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4))) - goto _342 + goto _346 _93: ; /* cmd ::= DROP VIEW ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), int32(1), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 + goto _346 _94: ; /* cmd ::= select */ *(*TSelectDest)(unsafe.Pointer(bp + 8)) = TSelectDest{ @@ -160545,22 +162167,22 @@ _94: } _sqlite3Select(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), bp+8) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _95: ; /* select ::= WITH wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 + goto _346 _96: ; /* select ::= WITH RECURSIVE wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 + goto _346 _97: ; /* select ::= selectnowith */ p2 = *(*uintptr)(unsafe.Pointer(yymsp + 4)) if p2 != 0 { _parserDoubleLinkSelect(tls, pParse, p2) } - goto _342 + goto _346 _98: ; /* selectnowith ::= selectnowith multiselect_op oneselect */ pRhs = *(*uintptr)(unsafe.Pointer(yymsp + 4)) @@ -160585,21 +162207,21 @@ _98: _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pLhs) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = pRhs - goto _342 + goto _346 _100: ; /* multiselect_op ::= UNION */ _99: ; *(*int32)(unsafe.Pointer(yymsp + 4)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-OP*/ - goto _342 + goto _346 _101: ; /* multiselect_op ::= UNION ALL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = int32(TK_ALL) - goto _342 + goto _346 _102: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4))), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _103: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(9))*12 + 4)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4))), *(*uintptr)(unsafe.Pointer(yymsp + 4))) @@ -160608,116 +162230,111 @@ _103: } else { _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) } - goto _342 + goto _346 _104: ; /* values ::= VALUES LP nexprlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) - goto _342 + goto _346 _105: - ; /* values ::= values COMMA LP nexprlist RP */ - pLeft = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) - pRight = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(libc.Int32FromInt32(SF_Values)|libc.Int32FromInt32(SF_MultiValue)), uintptr(0)) - if pLeft != 0 { - *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) - } - if pRight != 0 { - (*TSelect)(unsafe.Pointer(pRight)).Fop = uint8(TK_ALL) - (*TSelect)(unsafe.Pointer(pRight)).FpPrior = pLeft - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = pRight - } else { - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = pLeft - } - goto _342 + ; /* oneselect ::= mvalues */ + _sqlite3MultiValuesEnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4))) + goto _346 +_107: + ; /* mvalues ::= values COMMA LP nexprlist RP */ _106: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3MultiValues(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) + goto _346 +_108: ; /* distinct ::= DISTINCT */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(SF_Distinct) - goto _342 -_107: + goto _346 +_109: ; /* distinct ::= ALL */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(SF_All) - goto _342 -_109: + goto _346 +_111: ; /* sclp ::= */ -_108: - ; _110: ; -_111: - ; _112: ; _113: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) - goto _342 _114: + ; +_115: + ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) + goto _346 +_116: ; /* selcollist ::= sclp scanpt expr scanpt as */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) if *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)) > uint32(0) { _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), yymsp+4, int32(1)) } _sqlite3ExprListSetSpan(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 -_115: + goto _346 +_117: ; /* selcollist ::= sclp scanpt STAR */ p3 = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_ASTERISK), uintptr(0)) _sqlite3ExprSetErrorOffset(tls, p3, int32(*(*uintptr)(unsafe.Pointer(yymsp + 4)))-int32((*TParse)(unsafe.Pointer(pParse)).FzTail)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), p3) - goto _342 -_116: + goto _346 +_118: ; /* selcollist ::= sclp scanpt nm DOT STAR */ - pRight1 = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) - _sqlite3ExprSetErrorOffset(tls, pRight1, int32(*(*uintptr)(unsafe.Pointer(yymsp + 4)))-int32((*TParse)(unsafe.Pointer(pParse)).FzTail)) - pLeft1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) - pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft1, pRight1) + pRight = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) + _sqlite3ExprSetErrorOffset(tls, pRight, int32(*(*uintptr)(unsafe.Pointer(yymsp + 4)))-int32((*TParse)(unsafe.Pointer(pParse)).FzTail)) + pLeft = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) + pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft, pRight) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), pDot) - goto _342 -_118: + goto _346 +_120: ; /* as ::= AS nm */ -_117: - ; _119: ; -_120: +_121: ; - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*TToken)(unsafe.Pointer(yymsp + 4)) - goto _342 _122: + ; + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*TToken)(unsafe.Pointer(yymsp + 4)) + goto _346 +_124: ; /* from ::= */ -_121: +_123: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) - goto _342 -_123: + goto _346 +_125: ; /* from ::= FROM seltablist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) _sqlite3SrcListShiftJoinType(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 -_124: + goto _346 +_126: ; /* stl_prefix ::= seltablist joinop */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) != 0 && (*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))).FnSrc > 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) + 8 + uintptr((*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))).FnSrc-int32(1))*68))).Ffg.Fjointype = uint8(*(*int32)(unsafe.Pointer(yymsp + 4))) } - goto _342 -_125: + goto _346 +_127: ; /* seltablist ::= stl_prefix nm dbnm as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, uintptr(0), yymsp+4) - goto _342 -_126: + goto _346 +_128: ; /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, uintptr(0), yymsp+4) _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(1))*12+4) - goto _342 -_127: + goto _346 +_129: ; /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(6))*12+4, yymsp+uintptr(-libc.Int32FromInt32(5))*12+4, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, uintptr(0), yymsp+4) _sqlite3SrcListFuncArgs(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4))) - goto _342 -_128: + goto _346 +_130: ; /* seltablist ::= stl_prefix LP select RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), yymsp+4) - goto _342 -_129: + goto _346 +_131: ; /* seltablist ::= stl_prefix LP seltablist RP as on_using */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) == uintptr(0) && *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) == uint32(0) && *(*uintptr)(unsafe.Pointer(yymsp + 4)) == uintptr(0) && *(*uintptr)(unsafe.Pointer(yymsp + 4 + 4)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) @@ -160739,9 +162356,9 @@ _129: libc.SetBitFieldPtr16Uint32(pOld+36+4, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pNew+36+4, libc.Uint32FromInt32(1), 2, 0x4) } - v343 = libc.UintptrFromInt32(0) - (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v343 - (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v343 + v347 = libc.UintptrFromInt32(0) + (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v347 + (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v347 (*TSrcItem)(unsafe.Pointer(pOld)).FpSelect = uintptr(0) } _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4))) @@ -160751,189 +162368,189 @@ _129: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, pSubquery, yymsp+4) } } - goto _342 -_131: + goto _346 +_133: ; /* dbnm ::= */ -_130: +_132: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + 1*12 + 4 + 4)) = uint32(0) - goto _342 -_132: + goto _346 +_134: ; /* fullname ::= nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+4, uintptr(0)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+4) } *(*uintptr)(unsafe.Pointer(yymsp + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_133: + goto _346 +_135: ; /* fullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+4) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+4) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_134: + goto _346 +_136: ; /* xfullname ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 4)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+4, uintptr(0)) /*A-overwrites-X*/ - goto _342 -_135: + goto _346 +_137: ; /* xfullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+4) /*A-overwrites-X*/ - goto _342 -_136: + goto _346 +_138: ; /* xfullname ::= nm DOT nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+4) } - goto _342 -_137: + goto _346 +_139: ; /* xfullname ::= nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, uintptr(0)) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+4) } - goto _342 -_138: + goto _346 +_140: ; /* joinop ::= COMMA|JOIN */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(JT_INNER) - goto _342 -_139: + goto _346 +_141: ; /* joinop ::= JOIN_KW JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, uintptr(0), uintptr(0)) /*X-overwrites-A*/ - goto _342 -_140: + goto _346 +_142: ; /* joinop ::= JOIN_KW nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, uintptr(0)) /*X-overwrites-A*/ - goto _342 -_141: + goto _346 +_143: ; /* joinop ::= JOIN_KW nm nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4) /*X-overwrites-A*/ - goto _342 -_142: + goto _346 +_144: ; /* on_using ::= ON expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) = uintptr(0) - goto _342 -_143: + goto _346 +_145: ; /* on_using ::= USING LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) - goto _342 -_144: + goto _346 +_146: ; /* on_using ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4 + 4)) = uintptr(0) - goto _342 -_145: + goto _346 +_147: ; /* indexed_by ::= INDEXED BY nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*TToken)(unsafe.Pointer(yymsp + 4)) - goto _342 -_146: + goto _346 +_148: ; /* indexed_by ::= NOT INDEXED */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) = uint32(1) - goto _342 -_148: + goto _346 +_150: ; /* orderby_opt ::= ORDER BY sortlist */ -_147: +_149: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) - goto _342 -_149: + goto _346 +_151: ; /* sortlist ::= sortlist COMMA expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + 4))) - goto _342 -_150: + goto _346 +_152: ; /* sortlist ::= expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) /*A-overwrites-Y*/ _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + 4))) - goto _342 -_151: + goto _346 +_153: ; /* sortorder ::= ASC */ *(*int32)(unsafe.Pointer(yymsp + 4)) = SQLITE_SO_ASC - goto _342 -_152: + goto _346 +_154: ; /* sortorder ::= DESC */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(SQLITE_SO_DESC) - goto _342 -_154: + goto _346 +_156: ; /* sortorder ::= */ -_153: +_155: ; *(*int32)(unsafe.Pointer(yymsp + 1*12 + 4)) = -int32(1) - goto _342 -_155: + goto _346 +_157: ; /* nulls ::= NULLS FIRST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = SQLITE_SO_ASC - goto _342 -_156: + goto _346 +_158: ; /* nulls ::= NULLS LAST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = int32(SQLITE_SO_DESC) - goto _342 -_158: + goto _346 +_160: ; /* having_opt ::= */ -_157: - ; _159: ; -_160: - ; _161: ; _162: ; _163: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) - goto _342 -_165: - ; /* having_opt ::= HAVING expr */ _164: ; -_166: +_165: ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) + goto _346 _167: + ; /* having_opt ::= HAVING expr */ +_166: ; _168: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) - goto _342 _169: + ; +_170: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) + goto _346 +_171: ; /* limit_opt ::= LIMIT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 4)), uintptr(0)) - goto _342 -_170: + goto _346 +_172: ; /* limit_opt ::= LIMIT expr OFFSET expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_171: + goto _346 +_173: ; /* limit_opt ::= LIMIT expr COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) - goto _342 -_172: + goto _346 +_174: ; /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(1))*12+4) _sqlite3DeleteFrom(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4)), uintptr(0), uintptr(0)) - goto _342 -_173: + goto _346 +_175: ; /* where_opt_ret ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = uintptr(0) - goto _342 -_174: + goto _346 +_176: ; /* where_opt_ret ::= WHERE expr RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) - goto _342 -_175: + goto _346 +_177: ; /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(4))*12+4) - _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), __ccgo_ts+23385) + _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), __ccgo_ts+23508) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) != 0 { pFromClause = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) if (*TSrcList)(unsafe.Pointer(pFromClause)).FnSrc > int32(1) { @@ -160945,95 +162562,95 @@ _175: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = _sqlite3SrcListAppendList(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), pFromClause) } _sqlite3Update(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_176: + goto _346 +_178: ; /* setlist ::= setlist COMMA nm EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, int32(1)) - goto _342 -_177: + goto _346 +_179: ; /* setlist ::= setlist COMMA LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)) = _sqlite3ExprListAppendVector(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_178: + goto _346 +_180: ; /* setlist ::= nm EQ expr */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 4))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, int32(1)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_179: + goto _346 +_181: ; /* setlist ::= LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3ExprListAppendVector(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_180: + goto _346 +_182: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_181: + goto _346 +_183: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)), uintptr(0)) - goto _342 -_182: + goto _346 +_184: ; /* upsert ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) - goto _342 -_183: + goto _346 +_185: ; /* upsert ::= RETURNING selcollist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = uintptr(0) _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_184: + goto _346 +_186: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(11))*12 + 4)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_185: + goto _346 +_187: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_186: + goto _346 +_188: ; /* upsert ::= ON CONFLICT DO NOTHING returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_187: + goto _346 +_189: ; /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uintptr(0)) - goto _342 -_188: + goto _346 +_190: ; /* returning ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_189: + goto _346 +_191: ; /* idlist_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) - goto _342 -_190: + goto _346 +_192: ; /* idlist_opt ::= LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) - goto _342 -_191: + goto _346 +_193: ; /* idlist ::= idlist COMMA nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3IdListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), yymsp+4) - goto _342 -_192: + goto _346 +_194: ; /* idlist ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 4)) = _sqlite3IdListAppend(tls, pParse, uintptr(0), yymsp+4) /*A-overwrites-Y*/ - goto _342 -_193: + goto _346 +_195: ; /* expr ::= LP expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) - goto _342 -_194: + goto _346 +_196: ; /* expr ::= ID|INDEXED|JOIN_KW */ *(*uintptr)(unsafe.Pointer(yymsp + 4)) = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 4))) /*A-overwrites-X*/ - goto _342 -_195: + goto _346 +_197: ; /* expr ::= nm DOT nm */ temp1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) temp2 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp1, temp2) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_196: + goto _346 +_198: ; /* expr ::= nm DOT nm DOT nm */ temp11 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4))) temp21 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) @@ -161044,22 +162661,22 @@ _196: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp11, temp4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_198: + goto _346 +_200: ; /* term ::= NULL|FLOAT|BLOB */ -_197: +_199: ; *(*uintptr)(unsafe.Pointer(yymsp + 4)) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 4))) /*A-overwrites-X*/ - goto _342 -_199: + goto _346 +_201: ; /* term ::= INTEGER */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), yymsp+4, int32(1)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 36)) = int32(*(*uintptr)(unsafe.Pointer(yymsp + 4))) - int32((*TParse)(unsafe.Pointer(pParse)).FzTail) } *(*uintptr)(unsafe.Pointer(yymsp + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_200: + goto _346 +_202: ; /* expr ::= VARIABLE */ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 4))))) == int32('#') && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 4)) + 1)))])&int32(0x04) != 0) { n = *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)) @@ -161072,7 +162689,7 @@ _200: *(*TToken)(unsafe.Pointer(bp + 56)) = *(*TToken)(unsafe.Pointer(yymsp + 4)) /*A-overwrites-X*/ _ = libc.Int32FromInt32(0) if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23394, libc.VaList(bp+80, bp+56)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23517, libc.VaList(bp+80, bp+56)) *(*uintptr)(unsafe.Pointer(yymsp + 4)) = uintptr(0) } else { *(*uintptr)(unsafe.Pointer(yymsp + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_REGISTER), uintptr(0), uintptr(0)) @@ -161081,57 +162698,57 @@ _200: } } } - goto _342 -_201: + goto _346 +_203: ; /* expr ::= expr COLLATE ID|STRING */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3ExprAddCollateToken(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), yymsp+4, int32(1)) - goto _342 -_202: + goto _346 +_204: ; /* expr ::= CAST LP expr AS typetoken RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_CAST), yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, int32(1)) _sqlite3ExprAttachSubtrees(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), uintptr(0)) - goto _342 -_203: + goto _346 +_205: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_204: + goto _346 +_206: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(7))*12+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_205: + goto _346 +_207: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_206: + goto _346 +_208: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(5))*12+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_207: + goto _346 +_209: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(8))*12+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 4))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_208: + goto _346 +_210: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, 0) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_209: + goto _346 +_211: ; /* term ::= CTIME_KW */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+4, 0) *(*uintptr)(unsafe.Pointer(yymsp + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_210: + goto _346 +_212: ; /* expr ::= LP nexprlist COMMA expr RP */ pList = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_VECTOR), uintptr(0), uintptr(0)) @@ -161143,33 +162760,33 @@ _210: } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) } - goto _342 -_211: + goto _346 +_213: ; /* expr ::= expr AND expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3ExprAnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_213: + goto _346 +_215: ; /* expr ::= expr OR expr */ -_212: - ; _214: ; -_215: - ; _216: ; _217: ; _218: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 _219: + ; +_220: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) + goto _346 +_221: ; /* likeop ::= NOT LIKE_KW|MATCH */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*TToken)(unsafe.Pointer(yymsp + 4)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) |= uint32(0x80000000) /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/ - goto _342 -_220: + goto _346 +_222: ; /* expr ::= expr likeop expr */ bNot = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) &= uint32(0x7fffffff) @@ -161182,8 +162799,8 @@ _220: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_221: + goto _346 +_223: ; /* expr ::= expr likeop expr ESCAPE expr */ bNot1 = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4 + 4)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4 + 4)) &= uint32(0x7fffffff) @@ -161197,65 +162814,69 @@ _221: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_222: + goto _346 +_224: ; /* expr ::= expr ISNULL|NOTNULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uintptr(0)) - goto _342 -_223: + goto _346 +_225: ; /* expr ::= expr NOT NULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_NOTNULL), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), uintptr(0)) - goto _342 -_224: + goto _346 +_226: ; /* expr ::= expr IS expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), int32(TK_ISNULL)) - goto _342 -_225: + goto _346 +_227: ; /* expr ::= expr IS NOT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), int32(TK_NOTNULL)) - goto _342 -_226: + goto _346 +_228: ; /* expr ::= expr IS NOT DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), int32(TK_ISNULL)) - goto _342 -_227: + goto _346 +_229: ; /* expr ::= expr IS DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), int32(TK_NOTNULL)) - goto _342 -_229: + goto _346 +_231: ; /* expr ::= NOT expr */ -_228: +_230: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + 4)), uintptr(0)) /*A-overwrites-B*/ - goto _342 -_230: + goto _346 +_232: ; /* expr ::= PLUS|MINUS expr */ - if int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12))).Fmajor) == int32(TK_PLUS) { - v344 = int32(TK_UPLUS) + p4 = *(*uintptr)(unsafe.Pointer(yymsp + 4)) + op = uint8(int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12))).Fmajor) + (libc.Int32FromInt32(TK_UPLUS) - libc.Int32FromInt32(TK_PLUS))) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if p4 != 0 && int32((*TExpr)(unsafe.Pointer(p4)).Fop) == int32(TK_UPLUS) { + (*TExpr)(unsafe.Pointer(p4)).Fop = op + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = p4 } else { - v344 = int32(TK_UMINUS) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(op), p4, uintptr(0)) + /*A-overwrites-B*/ } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = _sqlite3PExpr(tls, pParse, v344, *(*uintptr)(unsafe.Pointer(yymsp + 4)), uintptr(0)) - /*A-overwrites-B*/ - goto _342 -_231: + goto _346 +_233: ; /* expr ::= expr PTR expr */ pList3 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) pList3 = _sqlite3ExprListAppend(tls, pParse, pList3, *(*uintptr)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, pList3, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_233: + goto _346 +_235: ; /* between_op ::= BETWEEN */ -_232: +_234: ; *(*int32)(unsafe.Pointer(yymsp + 4)) = 0 - goto _342 -_234: + goto _346 +_236: ; /* expr ::= expr between_op expr AND expr */ pList4 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) pList4 = _sqlite3ExprListAppend(tls, pParse, pList4, *(*uintptr)(unsafe.Pointer(yymsp + 4))) @@ -161268,8 +162889,8 @@ _234: if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), uintptr(0)) } - goto _342 -_235: + goto _346 +_237: ; /* expr ::= expr in_op LP exprlist RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) == uintptr(0) { /* Expressions of the form @@ -161282,17 +162903,17 @@ _235: */ _sqlite3ExprUnmapAndDelete(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) != 0 { - v345 = __ccgo_ts + 7886 + v348 = __ccgo_ts + 8011 } else { - v345 = __ccgo_ts + 7891 + v348 = __ccgo_ts + 8016 } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v345) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v348) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) != 0 { _sqlite3ExprIdToTrueFalse(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4))) } } else { pRHS = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) + 8))).FpExpr - if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)))).Fop) != int32(TK_VECTOR) { + if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pParse, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)))).Fop) != int32(TK_VECTOR) { (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) + 8))).FpExpr = uintptr(0) _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) pRHS = _sqlite3PExpr(tls, pParse, int32(TK_UPLUS), pRHS, uintptr(0)) @@ -161326,463 +162947,467 @@ _235: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), uintptr(0)) } } - goto _342 -_236: + goto _346 +_238: ; /* expr ::= LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_SELECT), uintptr(0), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 -_237: + goto _346 +_239: ; /* expr ::= expr in_op LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), uintptr(0)) } - goto _342 -_238: + goto _346 +_240: ; /* expr ::= expr in_op nm dbnm paren_exprlist */ pSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4) pSelect = _sqlite3SelectNew(tls, pParse, uintptr(0), pSrc, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + 4)) != 0 { if pSelect != 0 { - v346 = pSrc + v349 = pSrc } else { - v346 = uintptr(0) + v349 = uintptr(0) } - _sqlite3SrcListFuncArgs(tls, pParse, v346, *(*uintptr)(unsafe.Pointer(yymsp + 4))) + _sqlite3SrcListFuncArgs(tls, pParse, v349, *(*uintptr)(unsafe.Pointer(yymsp + 4))) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), pSelect) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), uintptr(0)) } - goto _342 -_239: + goto _346 +_241: ; /* expr ::= EXISTS LP select RP */ - v347 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = v347 - p4 = v347 - _sqlite3PExprAddSelect(tls, pParse, p4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 -_240: + v350 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = v350 + p5 = v350 + _sqlite3PExprAddSelect(tls, pParse, p5, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) + goto _346 +_242: ; /* expr ::= CASE case_operand case_exprlist case_else END */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_CASE), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) != 0 { if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) != 0 { - v348 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) + v351 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) } else { - v348 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) + v351 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) } - *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) + 20)) = v348 + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) + 20)) = v351 _sqlite3ExprSetHeightAndFlags(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4))) } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) } - goto _342 -_241: + goto _346 +_243: ; /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_242: + goto _346 +_244: ; /* case_exprlist ::= WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_243: + goto _346 +_245: ; /* nexprlist ::= nexprlist COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_244: + goto _346 +_246: ; /* nexprlist ::= expr */ *(*uintptr)(unsafe.Pointer(yymsp + 4)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 4))) /*A-overwrites-Y*/ - goto _342 -_246: + goto _346 +_248: ; /* paren_exprlist ::= LP exprlist RP */ -_245: +_247: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) - goto _342 -_247: + goto _346 +_249: ; /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ _sqlite3CreateIndex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*12+4, yymsp+uintptr(-libc.Int32FromInt32(6))*12+4, _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, uintptr(0)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(11))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + 4)), SQLITE_SO_ASC, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4)), uint8(SQLITE_IDXTYPE_APPDEF)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && (*TParse)(unsafe.Pointer(pParse)).FpNewIndex != 0 { _sqlite3RenameTokenMap(tls, pParse, (*TIndex)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpNewIndex)).FzName, yymsp+uintptr(-libc.Int32FromInt32(4))*12+4) } - goto _342 -_249: + goto _346 +_251: ; /* uniqueflag ::= UNIQUE */ -_248: +_250: ; *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(OE_Abort) - goto _342 -_250: + goto _346 +_252: ; /* uniqueflag ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*12 + 4)) = OE_None - goto _342 -_251: + goto _346 +_253: ; /* eidlist ::= eidlist COMMA nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _parserAddExprIdListTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + 4))) - goto _342 -_252: + goto _346 +_254: ; /* eidlist ::= nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _parserAddExprIdListTerm(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + 4))) /*A-overwrites-Y*/ - goto _342 -_253: + goto _346 +_255: ; /* cmd ::= DROP INDEX ifexists fullname */ _sqlite3DropIndex(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 -_254: + goto _346 +_256: ; /* cmd ::= VACUUM vinto */ _sqlite3Vacuum(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_255: + goto _346 +_257: ; /* cmd ::= VACUUM nm vinto */ _sqlite3Vacuum(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_256: + goto _346 +_258: ; /* cmd ::= PRAGMA nm dbnm */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, yymsp+4, uintptr(0), 0) - goto _342 -_257: + goto _346 +_259: ; /* cmd ::= PRAGMA nm dbnm EQ nmnum */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+4, 0) - goto _342 -_258: + goto _346 +_260: ; /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, 0) - goto _342 -_259: + goto _346 +_261: ; /* cmd ::= PRAGMA nm dbnm EQ minus_num */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+4, int32(1)) - goto _342 -_260: + goto _346 +_262: ; /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, int32(1)) - goto _342 -_261: + goto _346 +_263: ; /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ (*(*TToken)(unsafe.Pointer(bp + 64))).Fz = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) (*(*TToken)(unsafe.Pointer(bp + 64))).Fn = uint32(int32(*(*uintptr)(unsafe.Pointer(yymsp + 4)))-int32(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)))) + *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)) _sqlite3FinishTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), bp+64) - goto _342 -_262: + goto _346 +_264: ; /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ _sqlite3BeginTrigger(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*12+4, yymsp+uintptr(-libc.Int32FromInt32(6))*12+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4))) if *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4 + 4)) == uint32(0) { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)) } else { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)) } - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*12 + 4)) = v349 /*A-overwrites-T*/ - goto _342 -_263: + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*12 + 4)) = v352 /*A-overwrites-T*/ + goto _346 +_265: ; /* trigger_time ::= BEFORE|AFTER */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_264: + goto _346 +_266: ; /* trigger_time ::= INSTEAD OF */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = int32(TK_INSTEAD) - goto _342 -_265: + goto _346 +_267: ; /* trigger_time ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*12 + 4)) = int32(TK_BEFORE) - goto _342 -_267: + goto _346 +_269: ; /* trigger_event ::= DELETE|INSERT */ -_266: +_268: ; *(*int32)(unsafe.Pointer(yymsp + 4)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ *(*uintptr)(unsafe.Pointer(yymsp + 4 + 4)) = uintptr(0) - goto _342 -_268: + goto _346 +_270: ; /* trigger_event ::= UPDATE OF idlist */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = int32(TK_UPDATE) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) - goto _342 -_270: + goto _346 +_272: ; /* when_clause ::= */ -_269: +_271: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) - goto _342 -_272: + goto _346 +_274: ; /* when_clause ::= WHEN expr */ -_271: +_273: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) - goto _342 -_273: + goto _346 +_275: ; /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ _ = libc.Int32FromInt32(0) (*TTriggerStep)(unsafe.Pointer((*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)))).FpLast)).FpNext = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) - goto _342 -_274: + goto _346 +_276: ; /* trigger_cmd_list ::= trigger_cmd SEMI */ _ = libc.Int32FromInt32(0) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) - goto _342 -_275: + goto _346 +_277: ; /* trnm ::= nm DOT nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*TToken)(unsafe.Pointer(yymsp + 4)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23418, 0) - goto _342 -_276: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23541, 0) + goto _346 +_278: ; /* tridxby ::= INDEXED BY nm */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23513, 0) - goto _342 -_277: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23636, 0) + goto _346 +_279: ; /* tridxby ::= NOT INDEXED */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23597, 0) - goto _342 -_278: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23720, 0) + goto _346 +_280: ; /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerUpdateStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(6))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_279: + goto _346 +_281: ; /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) /*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) /*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_280: + goto _346 +_282: ; /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerDeleteStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_281: + goto _346 +_283: ; /* trigger_cmd ::= scanpt select scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_282: + goto _346 +_284: ; /* expr ::= RAISE LP IGNORE RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_RAISE), uintptr(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)))).FaffExpr = int8(OE_Ignore) } - goto _342 -_283: + goto _346 +_285: ; /* expr ::= RAISE LP raisetype COMMA nm RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_RAISE), yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, int32(1)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)))).FaffExpr = int8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4))) } - goto _342 -_284: + goto _346 +_286: ; /* raisetype ::= ROLLBACK */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(OE_Rollback) - goto _342 -_285: + goto _346 +_287: ; /* raisetype ::= FAIL */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(OE_Fail) - goto _342 -_286: + goto _346 +_288: ; /* cmd ::= DROP TRIGGER ifexists fullname */ _sqlite3DropTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 -_287: + goto _346 +_289: ; /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ _sqlite3Attach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_288: + goto _346 +_290: ; /* cmd ::= DETACH database_kw_opt expr */ _sqlite3Detach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_289: + goto _346 +_291: ; /* cmd ::= REINDEX */ _sqlite3Reindex(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_290: + goto _346 +_292: ; /* cmd ::= REINDEX nm dbnm */ _sqlite3Reindex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, yymsp+4) - goto _342 -_291: + goto _346 +_293: ; /* cmd ::= ANALYZE */ _sqlite3Analyze(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_292: + goto _346 +_294: ; /* cmd ::= ANALYZE nm dbnm */ _sqlite3Analyze(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, yymsp+4) - goto _342 -_293: + goto _346 +_295: ; /* cmd ::= ALTER TABLE fullname RENAME TO nm */ _sqlite3AlterRenameTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), yymsp+4) - goto _342 -_294: + goto _346 +_296: ; /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) = uint32(int32((*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fz)-int32(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))) + (*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fn _sqlite3AlterFinishAddColumn(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4) - goto _342 -_295: + goto _346 +_297: ; /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ _sqlite3AlterDropColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), yymsp+4) - goto _342 -_296: + goto _346 +_298: ; /* add_column_fullname ::= fullname */ _disableLookaside(tls, pParse) _sqlite3AlterBeginAddColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_297: + goto _346 +_299: ; /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ _sqlite3AlterRenameColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+4) - goto _342 -_298: + goto _346 +_300: ; /* cmd ::= create_vtab */ _sqlite3VtabFinishParse(tls, pParse, uintptr(0)) - goto _342 -_299: + goto _346 +_301: ; /* cmd ::= create_vtab LP vtabarglist RP */ _sqlite3VtabFinishParse(tls, pParse, yymsp+4) - goto _342 -_300: + goto _346 +_302: ; /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ _sqlite3VtabBeginParse(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4))) - goto _342 -_301: + goto _346 +_303: ; /* vtabarg ::= */ _sqlite3VtabArgInit(tls, pParse) - goto _342 -_303: + goto _346 +_305: ; /* vtabargtoken ::= ANY */ -_302: - ; _304: ; - _sqlite3VtabArgExtend(tls, pParse, yymsp+4) - goto _342 _306: + ; + _sqlite3VtabArgExtend(tls, pParse, yymsp+4) + goto _346 +_308: ; /* with ::= WITH wqlist */ -_305: +_307: ; _sqlite3WithPush(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), uint8(1)) - goto _342 -_307: + goto _346 +_309: ; /* wqas ::= AS */ *(*Tu8)(unsafe.Pointer(yymsp + 4)) = uint8(M10d_Any) - goto _342 -_308: + goto _346 +_310: ; /* wqas ::= AS MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = uint8(M10d_Yes) - goto _342 -_309: + goto _346 +_311: ; /* wqas ::= AS NOT MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = uint8(M10d_No) - goto _342 -_310: - ; /* wqitem ::= nm eidlist_opt wqas LP select RP */ + goto _346 +_312: + ; /* wqitem ::= withnm eidlist_opt wqas LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = _sqlite3CteNew(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(5))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4))) /*A-overwrites-X*/ - goto _342 -_311: + goto _346 +_313: + ; /* withnm ::= nm */ + (*TParse)(unsafe.Pointer(pParse)).FbHasWith = uint8(1) + goto _346 +_314: ; /* wqlist ::= wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + 4)) = _sqlite3WithAdd(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 4))) /*A-overwrites-X*/ - goto _342 -_312: + goto _346 +_315: ; /* wqlist ::= wqlist COMMA wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3WithAdd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_313: + goto _346 +_316: ; /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ _ = libc.Int32FromInt32(0) _sqlite3WindowChain(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 4)))).FpNextWin = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_314: + goto _346 +_317: ; /* windowdefn ::= nm AS LP window RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), uint64(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4 + 4)))) } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_315: + goto _346 +_318: ; /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uintptr(0)) - goto _342 -_316: + goto _346 +_319: ; /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(5))*12+4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_317: + goto _346 +_320: ; /* window ::= ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uintptr(0)) - goto _342 -_318: + goto _346 +_321: ; /* window ::= nm ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(4))*12+4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_319: + goto _346 +_322: ; /* window ::= nm frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*12+4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_320: + goto _346 +_323: ; /* frame_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = _sqlite3WindowAlloc(tls, pParse, 0, int32(TK_UNBOUNDED), uintptr(0), int32(TK_CURRENT), uintptr(0), uint8(0)) - goto _342 -_321: + goto _346 +_324: ; /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)), int32(TK_CURRENT), uintptr(0), *(*Tu8)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_322: + goto _346 +_325: ; /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)), *(*Tu8)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_324: + goto _346 +_327: ; /* frame_bound_s ::= frame_bound */ -_323: +_326: ; *(*TFrameBound)(unsafe.Pointer(bp)) = *(*TFrameBound)(unsafe.Pointer(yymsp + 4)) *(*TFrameBound)(unsafe.Pointer(yymsp + 4)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_326: + goto _346 +_329: ; /* frame_bound_s ::= UNBOUNDED PRECEDING */ -_325: +_328: ; -_327: +_330: ; (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = uintptr(0) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_328: + goto _346 +_331: ; /* frame_bound ::= expr PRECEDING|FOLLOWING */ (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_329: + goto _346 +_332: ; /* frame_exclude_opt ::= */ *(*Tu8)(unsafe.Pointer(yymsp + 1*12 + 4)) = uint8(0) - goto _342 -_330: + goto _346 +_333: ; /* frame_exclude_opt ::= EXCLUDE frame_exclude */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*Tu8)(unsafe.Pointer(yymsp + 4)) - goto _342 -_332: + goto _346 +_335: ; /* frame_exclude ::= NO OTHERS */ -_331: +_334: ; *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12))).Fmajor) /*A-overwrites-X*/ - goto _342 -_333: + goto _346 +_336: ; /* frame_exclude ::= GROUP|TIES */ *(*Tu8)(unsafe.Pointer(yymsp + 4)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_334: + goto _346 +_337: ; /* window_clause ::= WINDOW windowdefn_list */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) - goto _342 -_335: + goto _346 +_338: ; /* filter_over ::= filter_clause over_clause */ if *(*uintptr)(unsafe.Pointer(yymsp + 4)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 4)))).FpFilter = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) @@ -161791,13 +163416,13 @@ _335: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_336: + goto _346 +_339: ; /* filter_over ::= over_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) *(*uintptr)(unsafe.Pointer(yymsp + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_337: + goto _346 +_340: ; /* filter_over ::= filter_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(100)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { @@ -161807,24 +163432,30 @@ _337: _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 4))) } *(*uintptr)(unsafe.Pointer(yymsp + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_338: + goto _346 +_341: ; /* over_clause ::= OVER LP window RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) _ = libc.Int32FromInt32(0) - goto _342 -_339: + goto _346 +_342: ; /* over_clause ::= OVER nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(100)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 4)), uint64(*(*uint32)(unsafe.Pointer(yymsp + 4 + 4)))) } - goto _342 -_340: + goto _346 +_343: ; /* filter_clause ::= FILTER LP WHERE expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) - goto _342 -_341: + goto _346 +_344: + ; /* term ::= QNUMBER */ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 4))) + _sqlite3DequoteNumber(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp))))) + *(*uintptr)(unsafe.Pointer(yymsp + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + goto _346 +_345: ; _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -161841,9 +163472,9 @@ _341: _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - goto _342 + goto _346 /********** End reduce actions ************************************************/ -_342: +_346: ; _ = libc.Int32FromInt32(0) yygoto = int32(_yyRuleInfoLhs[yyruleno]) @@ -161880,9 +163511,9 @@ func _yy_syntax_error(tls *libc.TLS, yypParser uintptr, yymajor int32, _yyminor /************ Begin %syntax_error code ****************************************/ _ = yymajor /* Silence some compiler warnings */ if *(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp))).Fz)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23394, libc.VaList(bp+16, bp)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23517, libc.VaList(bp+16, bp)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23682, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23805, 0) } /************ End %syntax_error code ******************************************/ /* Suppress warning about unused %extra_argument variable */ @@ -161951,8 +163582,10 @@ func _sqlite3Parser(tls *libc.TLS, yyp uintptr, yymajor int32, yyminor TToken) { ** enough on the stack to push the LHS value */ if int32(_yyRuleInfoNRhs[yyruleno]) == 0 { if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos >= (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - _yyStackOverflow(tls, yypParser) - break + if _yyGrowStack(tls, yypParser) != 0 { + _yyStackOverflow(tls, yypParser) + break + } } } yyact = _yy_reduce(tls, yypParser, yyruleno, yymajor, yyminor, pParse) @@ -164104,9 +165737,9 @@ func _analyzeFilterKeyword(tls *libc.TLS, _z uintptr, lastToken int32) (r int32) // ** Store the token type in *tokenType before returning. // */ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { - var c, delim, i, n, v10, v14, v16, v19, v20, v3, v5, v7, v8 int32 - var v15, v6 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v14, v15, v16, v19, v20, v3, v5, v6, v7, v8 + var c, delim, i, n, v10, v16, v18, v21, v22, v3, v5, v7, v8 int32 + var v17, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v16, v17, v18, v21, v22, v3, v5, v6, v7, v8 switch int32(_aiClass[*(*uint8)(unsafe.Pointer(z))]) { /* Switch on the character-class of the first byte ** of the token. See the comment on the CC_ defines ** above. */ @@ -164302,39 +165935,83 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('X')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + 2))])&int32(0x08) != 0 { i = int32(3) for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { + if !(int32(1) != 0) { break } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } goto _11 _11: ; i++ } - return i - } - i = 0 - for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _12 - _12: - ; - i++ - } - if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { - i++ - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + } else { + i = 0 + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _12 + _12: + ; i++ } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) - } - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { - i += int32(2) - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } i++ + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _13 + _13: + ; + i++ + } + } + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } + i += int32(2) + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _14 + _14: + ; + i++ + } } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) } for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x46) != 0 { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_ILLEGAL) @@ -164345,24 +166022,24 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { i = int32(1) c = int32(*(*uint8)(unsafe.Pointer(z))) for { - if v15 = c != int32(']'); v15 { - v14 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v14 + if v17 = c != int32(']'); v17 { + v16 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v16 } - if !(v15 && v14 != 0) { + if !(v17 && v16 != 0) { break } - goto _13 - _13: + goto _15 + _15: ; i++ } if c == int32(']') { - v16 = int32(TK_ID) + v18 = int32(TK_ID) } else { - v16 = int32(TK_ILLEGAL) + v18 = int32(TK_ILLEGAL) } - *(*int32)(unsafe.Pointer(tokenType)) = v16 + *(*int32)(unsafe.Pointer(tokenType)) = v18 return i case int32(CC_VARNUM): *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) @@ -164371,8 +166048,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { break } - goto _17 - _17: + goto _19 + _19: ; i++ } @@ -164384,9 +166061,9 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) i = int32(1) for { - v19 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v19 - if !(v19 != 0) { + v21 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v21 + if !(v21 != 0) { break } if int32(_sqlite3CtypeMap[uint8(c)])&int32(0x46) != 0 { @@ -164395,12 +166072,12 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if c == int32('(') && n > 0 { for { i++ - goto _21 - _21: + goto _23 + _23: ; - v20 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v20 - if !(v20 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { + v22 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v22 + if !(v22 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { break } } @@ -164418,8 +166095,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { } } } - goto _18 - _18: + goto _20 + _20: ; i++ } @@ -164437,8 +166114,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_aiClass[*(*uint8)(unsafe.Pointer(z + uintptr(i)))]) <= int32(CC_KYWD)) { break } - goto _22 - _22: + goto _24 + _24: ; i++ } @@ -164459,8 +166136,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { break } - goto _23 - _23: + goto _25 + _25: ; i++ } @@ -164506,13 +166183,13 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { // ** Run the parser on the given SQL string. // */ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { - bp := tls.Alloc(1248) - defer tls.Free(1248) + bp := tls.Alloc(1264) + defer tls.Free(1264) var db, pEngine, pParentParse uintptr var lastTokenParsed, mxSqlLen, n, nErr int32 var _ /* sEngine at bp+4 */ TyyParser var _ /* tokenType at bp+0 */ int32 - var _ /* x at bp+1216 */ TToken + var _ /* x at bp+1224 */ TToken _, _, _, _, _, _, _ = db, lastTokenParsed, mxSqlLen, n, nErr, pEngine, pParentParse nErr = 0 /* The LEMON-generated LALR(1) parser */ n = 0 /* type of the next token */ @@ -164579,10 +166256,12 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(bp)) = _analyzeFilterKeyword(tls, zSql+6, lastTokenParsed) } else { - (*(*TToken)(unsafe.Pointer(bp + 1216))).Fz = zSql - (*(*TToken)(unsafe.Pointer(bp + 1216))).Fn = uint32(n) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23699, libc.VaList(bp+1232, bp+1216)) - break + if *(*int32)(unsafe.Pointer(bp)) != int32(TK_QNUMBER) { + (*(*TToken)(unsafe.Pointer(bp + 1224))).Fz = zSql + (*(*TToken)(unsafe.Pointer(bp + 1224))).Fn = uint32(n) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23822, libc.VaList(bp+1240, bp+1224)) + break + } } } } @@ -164605,9 +166284,9 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { } if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg != 0 || (*TParse)(unsafe.Pointer(pParse)).Frc != SQLITE_OK && (*TParse)(unsafe.Pointer(pParse)).Frc != int32(SQLITE_DONE) { if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg == uintptr(0) { - (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3795, libc.VaList(bp+1232, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) + (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3859, libc.VaList(bp+1240, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) } - Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23724, libc.VaList(bp+1232, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) + Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23847, libc.VaList(bp+1240, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) nErr++ } (*TParse)(unsafe.Pointer(pParse)).FzTail = zSql @@ -164800,7 +166479,7 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('c'): fallthrough case int32('C'): - if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23735, int32(6)) == 0 { + if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23858, int32(6)) == 0 { token = uint8(tkCREATE) } else { token = uint8(tkOTHER) @@ -164808,13 +166487,13 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('t'): fallthrough case int32('T'): - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20379, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20511, int32(7)) == 0 { token = uint8(tkTRIGGER) } else { - if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23742, int32(4)) == 0 { + if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23865, int32(4)) == 0 { token = uint8(tkTEMP) } else { - if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23747, int32(9)) == 0 { + if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23870, int32(9)) == 0 { token = uint8(tkTEMP) } else { token = uint8(tkOTHER) @@ -164824,10 +166503,10 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('e'): fallthrough case int32('E'): - if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23757, int32(3)) == 0 { + if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23880, int32(3)) == 0 { token = uint8(tkEND) } else { - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23761, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23884, int32(7)) == 0 { token = uint8(tkEXPLAIN) } else { token = uint8(tkOTHER) @@ -165087,8 +166766,6 @@ func _hasHighPrecisionDouble(tls *libc.TLS, rc int32) (r int32) { // ** without blocking. // */ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { - ng := runtime.GOMAXPROCS(1) - defer func() { runtime.GOMAXPROCS(ng) }() var pMainMtx uintptr var rc int32 _, _ = pMainMtx, rc /* Result code */ @@ -165101,7 +166778,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** must be complete. So isInit must not be set until the very end ** of this routine. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+208) != 0 { return SQLITE_OK } /* Make sure the mutex subsystem is initialized. If unable to @@ -165161,7 +166838,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** call to sqlite3PcacheInitialize(). */ Xsqlite3_mutex_enter(tls, _sqlite3Config.FpInitMutex) - if _sqlite3Config.FisInit == 0 && _sqlite3Config.FinProgress == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+208) == 0 && _sqlite3Config.FinProgress == 0 { _sqlite3Config.FinProgress = int32(1) libc.Xmemset(tls, uintptr(unsafe.Pointer(&_sqlite3BuiltinFunctions)), 0, uint32(92)) _sqlite3RegisterBuiltinFunctions(tls) @@ -165177,7 +166854,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { } if rc == SQLITE_OK { _sqlite3PCacheBufferSetup(tls, _sqlite3Config.FpPage, _sqlite3Config.FszPage, _sqlite3Config.FnPage) - _sqlite3Config.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+208, int32(1)) } _sqlite3Config.FinProgress = 0 } @@ -165203,7 +166880,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { */ /* Experimentally determine if high-precision floating point is ** available. */ - _sqlite3Config.FbUseLongDouble = uint8(_hasHighPrecisionDouble(tls, rc)) + // disabled return rc } @@ -165218,10 +166895,10 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { // ** when this routine is invoked, then this routine is a harmless no-op. // */ func Xsqlite3_shutdown(tls *libc.TLS) (r int32) { - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+208) != 0 { Xsqlite3_os_end(tls) Xsqlite3_reset_auto_extension(tls) - _sqlite3Config.FisInit = 0 + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+208, 0) } if _sqlite3Config.FisPCacheInit != 0 { _sqlite3PcacheShutdown(tls) @@ -165269,9 +166946,9 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { ** the SQLite library is in use. Except, a few selected opcodes ** are allowed. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+208) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)<= 0 && rc < int32(libc.Uint32FromInt64(116)/libc.Uint32FromInt64(4)) && _aMsg[rc] != uintptr(0) { @@ -166421,31 +168098,31 @@ func _sqlite3ErrStr(tls *libc.TLS, rc int32) (r uintptr) { } var _aMsg = [29]uintptr{ - 0: __ccgo_ts + 23837, - 1: __ccgo_ts + 23850, - 3: __ccgo_ts + 23866, - 4: __ccgo_ts + 23891, - 5: __ccgo_ts + 23905, - 6: __ccgo_ts + 23924, - 7: __ccgo_ts + 1618, - 8: __ccgo_ts + 23949, - 9: __ccgo_ts + 23986, - 10: __ccgo_ts + 23998, - 11: __ccgo_ts + 24013, - 12: __ccgo_ts + 24046, - 13: __ccgo_ts + 24064, - 14: __ccgo_ts + 24089, - 15: __ccgo_ts + 24118, - 17: __ccgo_ts + 6021, - 18: __ccgo_ts + 5423, - 19: __ccgo_ts + 24135, - 20: __ccgo_ts + 24153, - 21: __ccgo_ts + 24171, - 23: __ccgo_ts + 24205, - 25: __ccgo_ts + 24226, - 26: __ccgo_ts + 24252, - 27: __ccgo_ts + 24275, - 28: __ccgo_ts + 24296, + 0: __ccgo_ts + 23960, + 1: __ccgo_ts + 23973, + 3: __ccgo_ts + 23989, + 4: __ccgo_ts + 24014, + 5: __ccgo_ts + 24028, + 6: __ccgo_ts + 24047, + 7: __ccgo_ts + 1632, + 8: __ccgo_ts + 24072, + 9: __ccgo_ts + 24109, + 10: __ccgo_ts + 24121, + 11: __ccgo_ts + 24136, + 12: __ccgo_ts + 24169, + 13: __ccgo_ts + 24187, + 14: __ccgo_ts + 24212, + 15: __ccgo_ts + 24241, + 17: __ccgo_ts + 6085, + 18: __ccgo_ts + 5487, + 19: __ccgo_ts + 24258, + 20: __ccgo_ts + 24276, + 21: __ccgo_ts + 24294, + 23: __ccgo_ts + 24328, + 25: __ccgo_ts + 24349, + 26: __ccgo_ts + 24375, + 27: __ccgo_ts + 24398, + 28: __ccgo_ts + 24419, } // C documentation @@ -166627,7 +168304,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if zFunctionName == uintptr(0) || xSFunc != uintptr(0) && xFinal != uintptr(0) || libc.BoolInt32(xFinal == uintptr(0)) != libc.BoolInt32(xStep == uintptr(0)) || libc.BoolInt32(xValue == uintptr(0)) != libc.BoolInt32(xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { - return _sqlite3MisuseError(tls, int32(180244)) + return _sqlite3MisuseError(tls, int32(181689)) } _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -166673,7 +168350,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i p = _sqlite3FindFunction(tls, db, zFunctionName, nArg, uint8(enc), uint8(0)) if p != 0 && (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) == uint32(enc) && int32((*TFuncDef)(unsafe.Pointer(p)).FnArg) == nArg { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24393, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24516, 0) _ = libc.Int32FromInt32(0) return int32(SQLITE_BUSY) } else { @@ -166746,6 +168423,7 @@ func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, en (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } + goto out out: ; rc = _sqlite3ApiExit(tls, db, rc) @@ -166802,7 +168480,7 @@ func _sqlite3InvalidFunction(tls *libc.TLS, context uintptr, NotUsed int32, NotU zName = Xsqlite3_user_data(tls, context) _ = NotUsed _ = NotUsed2 - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24456, libc.VaList(bp+8, zName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24579, libc.VaList(bp+8, zName)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -166833,7 +168511,7 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i if rc != 0 { return SQLITE_OK } - zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, zName)) + zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, zName)) if zCopy == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -167081,7 +168759,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in if eMode < SQLITE_CHECKPOINT_PASSIVE || eMode > int32(SQLITE_CHECKPOINT_TRUNCATE) { /* EVIDENCE-OF: R-03996-12088 The M parameter must be a valid checkpoint ** mode: */ - return _sqlite3MisuseError(tls, int32(180859)) + return _sqlite3MisuseError(tls, int32(182304)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*int8)(unsafe.Pointer(zDb)) != 0 { @@ -167091,7 +168769,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in } if iDb < 0 { rc = int32(SQLITE_ERROR) - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24507, libc.VaList(bp+8, zDb)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24630, libc.VaList(bp+8, zDb)) } else { (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0 rc = _sqlite3Checkpoint(tls, db, iDb, eMode, pnLog, pnCkpt) @@ -167216,7 +168894,7 @@ func Xsqlite3_errmsg(tls *libc.TLS, db uintptr) (r uintptr) { return _sqlite3ErrStr(tls, int32(SQLITE_NOMEM)) } if !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(180995))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(182440))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -167349,7 +169027,7 @@ var _misuse = [34]Tu16{ // */ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181074)) + return _sqlite3MisuseError(tls, int32(182519)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -167359,7 +169037,7 @@ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { func Xsqlite3_extended_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181083)) + return _sqlite3MisuseError(tls, int32(182528)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -167409,7 +169087,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui enc2 = int32(SQLITE_UTF16LE) } if enc2 < int32(SQLITE_UTF8) || enc2 > int32(SQLITE_UTF16BE) { - return _sqlite3MisuseError(tls, int32(181131)) + return _sqlite3MisuseError(tls, int32(182576)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -167418,7 +169096,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui pColl = _sqlite3FindCollSeq(tls, db, uint8(enc2), zName, 0) if pColl != 0 && (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp != 0 { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24528, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24651, 0) return int32(SQLITE_BUSY) } _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -167579,7 +169257,7 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u zVfs = zDefaultVfs nUri = _sqlite3Strlen30(tls, zUri) _ = libc.Int32FromInt32(0) - if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24596, uint32(5)) == 0 { /* Input character index */ + if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24719, uint32(5)) == 0 { /* Input character index */ iOut = 0 /* Output character index */ nByte = uint64(nUri + int32(8)) /* Bytes of space to allocate */ /* Make sure the SQLITE_OPEN_URI flag is set to indicate to the VFS xOpen @@ -167609,8 +169287,8 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u for *(*int8)(unsafe.Pointer(zUri + uintptr(iIn))) != 0 && int32(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn)))) != int32('/') { iIn++ } - if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24602, zUri+7, uint32(9)) != 0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24612, libc.VaList(bp+8, iIn-int32(7), zUri+7)) + if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24725, zUri+7, uint32(9)) != 0) { + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24735, libc.VaList(bp+8, iIn-int32(7), zUri+7)) rc = int32(SQLITE_ERROR) goto parse_uri_out } @@ -167700,24 +169378,24 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u nOpt = _sqlite3Strlen30(tls, zOpt) zVal = zOpt + uintptr(nOpt+int32(1)) nVal = _sqlite3Strlen30(tls, zVal) - if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24640, zOpt, uint32(3)) == 0 { + if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24763, zOpt, uint32(3)) == 0 { zVfs = zVal } else { aMode = uintptr(0) zModeType = uintptr(0) mask = 0 limit = 0 - if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24644, zOpt, uint32(5)) == 0 { + if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24767, zOpt, uint32(5)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_SHAREDCACHE) | libc.Int32FromInt32(SQLITE_OPEN_PRIVATECACHE) aMode = uintptr(unsafe.Pointer(&_aCacheMode)) limit = mask - zModeType = __ccgo_ts + 24644 + zModeType = __ccgo_ts + 24767 } - if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24665, zOpt, uint32(4)) == 0 { + if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24788, zOpt, uint32(4)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_READONLY) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_MEMORY) aMode = uintptr(unsafe.Pointer(&_aOpenMode)) limit = int32(uint32(mask) & flags) - zModeType = __ccgo_ts + 3404 + zModeType = __ccgo_ts + 3468 } if aMode != 0 { mode = 0 @@ -167746,12 +169424,12 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u i++ } if mode == 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24680, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24803, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_ERROR) goto parse_uri_out } if mode & ^libc.Int32FromInt32(SQLITE_OPEN_MEMORY) > limit { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24700, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24823, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_PERM) goto parse_uri_out } @@ -167775,9 +169453,10 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u } *(*uintptr)(unsafe.Pointer(ppVfs)) = Xsqlite3_vfs_find(tls, zVfs) if *(*uintptr)(unsafe.Pointer(ppVfs)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24724, libc.VaList(bp+8, zVfs)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24847, libc.VaList(bp+8, zVfs)) rc = int32(SQLITE_ERROR) } + goto parse_uri_out parse_uri_out: ; if rc != SQLITE_OK { @@ -167794,11 +169473,11 @@ var _aCacheMode = [3]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24650, + Fz: __ccgo_ts + 24773, Fmode: int32(SQLITE_OPEN_SHAREDCACHE), }, 1: { - Fz: __ccgo_ts + 24657, + Fz: __ccgo_ts + 24780, Fmode: int32(SQLITE_OPEN_PRIVATECACHE), }, 2: {}, @@ -167809,19 +169488,19 @@ var _aOpenMode = [5]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24670, + Fz: __ccgo_ts + 24793, Fmode: int32(SQLITE_OPEN_READONLY), }, 1: { - Fz: __ccgo_ts + 24673, + Fz: __ccgo_ts + 24796, Fmode: int32(SQLITE_OPEN_READWRITE), }, 2: { - Fz: __ccgo_ts + 24676, + Fz: __ccgo_ts + 24799, Fmode: libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE), }, 3: { - Fz: __ccgo_ts + 17764, + Fz: __ccgo_ts + 17851, Fmode: int32(SQLITE_OPEN_MEMORY), }, 4: {}, @@ -167950,8 +169629,8 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16BE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16LE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+22351, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+24740, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+22496, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+24863, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto opendb_out } @@ -167975,7 +169654,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* READWRITE */ /* READWRITE | CREATE */ if int32(1)<<(*(*uint32)(unsafe.Pointer(bp))&uint32(7))&int32(0x46) == 0 { - rc = _sqlite3MisuseError(tls, int32(181803)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(183248)) /* IMP: R-18321-05872 */ } else { rc = _sqlite3ParseUri(tls, zVfs, zFilename, bp, db, bp+4, bp+8) } @@ -167984,7 +169663,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _sqlite3OomFault(tls, db) } if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { - v2 = __ccgo_ts + 3795 + v2 = __ccgo_ts + 3859 } else { v2 = uintptr(0) } @@ -168012,9 +169691,9 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* The default safety_level for the main database is FULL; for the temp ** database it is OFF. This matches the pager layer defaults. */ - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6585 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6649 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).Fsafety_level = uint8(libc.Int32FromInt32(SQLITE_DEFAULT_SYNCHRONOUS) + libc.Int32FromInt32(1)) - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FzDbSName = __ccgo_ts + 23742 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FzDbSName = __ccgo_ts + 23865 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).Fsafety_level = uint8(PAGER_SYNCHRONOUS_OFF) (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState = uint8(SQLITE_STATE_OPEN) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -168059,6 +169738,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* Enable the lookaside-malloc subsystem */ _setupLookaside(tls, db, uintptr(0), _sqlite3Config.FszLookaside, _sqlite3Config.FnLookaside) Xsqlite3_wal_autocheckpoint(tls, db, int32(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT)) + goto opendb_out opendb_out: ; if db != 0 { @@ -168109,7 +169789,7 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc } if zFilename == uintptr(0) { - zFilename = __ccgo_ts + 24746 + zFilename = __ccgo_ts + 24869 } pVal = _sqlite3ValueNew(tls, uintptr(0)) _sqlite3ValueSetStr(tls, pVal, -int32(1), zFilename, uint8(SQLITE_UTF16LE), libc.UintptrFromInt32(0)) @@ -168330,20 +170010,20 @@ func Xsqlite3_get_autocommit(tls *libc.TLS, db uintptr) (r int32) { func _sqlite3ReportError(tls *libc.TLS, iErr int32, lineno int32, zType uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) - Xsqlite3_log(tls, iErr, __ccgo_ts+24749, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) + Xsqlite3_log(tls, iErr, __ccgo_ts+24872, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) return iErr } func _sqlite3CorruptError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24774) + return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24897) } func _sqlite3MisuseError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24794) + return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24917) } func _sqlite3CantopenError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24801) + return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24924) } // C documentation @@ -168449,6 +170129,7 @@ func Xsqlite3_table_column_metadata(tls *libc.TLS, db uintptr, zDbName uintptr, if !(zCollSeq != 0) { zCollSeq = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } + goto error_out error_out: ; _sqlite3BtreeLeaveAll(tls, db) @@ -168473,11 +170154,11 @@ error_out: } if SQLITE_OK == rc && !(pTab != 0) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24818, libc.VaList(bp+16, zTableName, zColumnName)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24941, libc.VaList(bp+16, zTableName, zColumnName)) rc = int32(SQLITE_ERROR) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v3 = __ccgo_ts + 3795 + v3 = __ccgo_ts + 3859 } else { v3 = uintptr(0) } @@ -168916,7 +170597,7 @@ func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) (r int32) { */ fallthrough case int32(SQLITE_TESTCTRL_ISINIT): - if _sqlite3Config.FisInit == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+208) == 0 { rc = int32(SQLITE_ERROR) } break @@ -169506,7 +171187,7 @@ func Xsqlite3_compileoption_used(tls *libc.TLS, zOptName uintptr) (r int32) { var _ /* nOpt at bp+0 */ int32 _, _, _ = azCompileOpt, i, n azCompileOpt = _sqlite3CompileOptions(tls, bp) - if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24846, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24969, int32(7)) == 0 { zOptName += uintptr(7) } n = _sqlite3Strlen30(tls, zOptName) @@ -169728,7 +171409,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui _leaveMutex(tls) _ = libc.Int32FromInt32(0) if rc != 0 { - v2 = __ccgo_ts + 24854 + v2 = __ccgo_ts + 24977 } else { v2 = uintptr(0) } @@ -170611,23 +172292,23 @@ func _sqlite3ConnectionClosed(tls *libc.TLS, db uintptr) { // ** string must correspond to the JSONB_* integer above. // */ var _jsonbType = [17]uintptr{ - 0: __ccgo_ts + 1634, - 1: __ccgo_ts + 7886, - 2: __ccgo_ts + 7891, - 3: __ccgo_ts + 6306, - 4: __ccgo_ts + 6306, - 5: __ccgo_ts + 6301, - 6: __ccgo_ts + 6301, - 7: __ccgo_ts + 8197, - 8: __ccgo_ts + 8197, - 9: __ccgo_ts + 8197, - 10: __ccgo_ts + 8197, - 11: __ccgo_ts + 24877, - 12: __ccgo_ts + 24883, - 13: __ccgo_ts + 1648, - 14: __ccgo_ts + 1648, - 15: __ccgo_ts + 1648, - 16: __ccgo_ts + 1648, + 0: __ccgo_ts + 1648, + 1: __ccgo_ts + 8011, + 2: __ccgo_ts + 8016, + 3: __ccgo_ts + 6370, + 4: __ccgo_ts + 6370, + 5: __ccgo_ts + 6365, + 6: __ccgo_ts + 6365, + 7: __ccgo_ts + 8322, + 8: __ccgo_ts + 8322, + 9: __ccgo_ts + 8322, + 10: __ccgo_ts + 8322, + 11: __ccgo_ts + 25000, + 12: __ccgo_ts + 25006, + 13: __ccgo_ts + 1662, + 14: __ccgo_ts + 1662, + 15: __ccgo_ts + 1662, + 16: __ccgo_ts + 1662, } // C documentation @@ -171398,6 +173079,46 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { _jsonAppendChar(tls, p, int8(',')) } +// C documentation +// +// /* c is a control character. Append the canonical JSON representation +// ** of that control character to p. +// ** +// ** This routine assumes that the output buffer has already been enlarged +// ** sufficiently to hold the worst-case encoding plus a nul terminator. +// */ +func _jsonAppendControlChar(tls *libc.TLS, p uintptr, c Tu8) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if _aSpecial[c] != 0 { + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = int8('\\') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = _aSpecial[c] + *(*Tu64)(unsafe.Pointer(p + 16)) += uint64(2) + } else { + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = int8('\\') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = int8('u') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(2)))) = int8('0') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(3)))) = int8('0') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(4)))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 25013 + uintptr(int32(c)>>int32(4)))) + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(5)))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 25013 + uintptr(int32(c)&int32(0xf)))) + *(*Tu64)(unsafe.Pointer(p + 16)) += uint64(6) + } +} + +var _aSpecial = [32]int8{ + 8: int8('b'), + 9: int8('t'), + 10: int8('n'), + 12: int8('f'), + 13: int8('r'), +} + // C documentation // // /* Append the N-byte string in zIn to the end of the JsonString string @@ -171411,9 +173132,9 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { var c Tu8 var k Tu32 - var z, v10, v12, v14, v16, v18, v2, v20, v22, v24, v6, v8 uintptr - var v1, v11, v13, v15, v17, v19, v21, v23, v5, v7, v9 Tu64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v5, v6, v7, v8, v9 + var z, v10, v2, v4, v6, v8 uintptr + var v1, v3, v5, v7, v9 Tu64 + _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v2, v3, v4, v5, v6, v7, v8, v9 z = zIn if z == uintptr(0) { return @@ -171470,90 +173191,41 @@ func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { N -= k } c = *(*Tu8)(unsafe.Pointer(z)) - if !(int32(c) == int32('"') || int32(c) == int32('\\')) { - goto _3 - } - json_simple_escape: - ; - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { - return - } - v6 = p + 16 - v5 = *(*Tu64)(unsafe.Pointer(v6)) - *(*Tu64)(unsafe.Pointer(v6))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = int8('\\') - v8 = p + 16 - v7 = *(*Tu64)(unsafe.Pointer(v8)) - *(*Tu64)(unsafe.Pointer(v8))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = int8(c) - goto _4 - _3: - ; - if int32(c) == int32('\'') { - v10 = p + 16 - v9 = *(*Tu64)(unsafe.Pointer(v10)) - *(*Tu64)(unsafe.Pointer(v10))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = int8(c) - } else { - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - if _aSpecial[c] != 0 { - c = uint8(_aSpecial[c]) - goto json_simple_escape - } - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + if int32(c) == int32('"') || int32(c) == int32('\\') { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { return } - v12 = p + 16 - v11 = *(*Tu64)(unsafe.Pointer(v12)) - *(*Tu64)(unsafe.Pointer(v12))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v11))) = int8('\\') - v14 = p + 16 - v13 = *(*Tu64)(unsafe.Pointer(v14)) - *(*Tu64)(unsafe.Pointer(v14))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v13))) = int8('u') - v16 = p + 16 - v15 = *(*Tu64)(unsafe.Pointer(v16)) - *(*Tu64)(unsafe.Pointer(v16))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v15))) = int8('0') - v18 = p + 16 - v17 = *(*Tu64)(unsafe.Pointer(v18)) - *(*Tu64)(unsafe.Pointer(v18))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v17))) = int8('0') - v20 = p + 16 - v19 = *(*Tu64)(unsafe.Pointer(v20)) - *(*Tu64)(unsafe.Pointer(v20))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v19))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 24890 + uintptr(int32(c)>>int32(4)))) - v22 = p + 16 - v21 = *(*Tu64)(unsafe.Pointer(v22)) - *(*Tu64)(unsafe.Pointer(v22))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v21))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 24890 + uintptr(int32(c)&int32(0xf)))) + v4 = p + 16 + v3 = *(*Tu64)(unsafe.Pointer(v4)) + *(*Tu64)(unsafe.Pointer(v4))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v3))) = int8('\\') + v6 = p + 16 + v5 = *(*Tu64)(unsafe.Pointer(v6)) + *(*Tu64)(unsafe.Pointer(v6))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = int8(c) + } else { + if int32(c) == int32('\'') { + v8 = p + 16 + v7 = *(*Tu64)(unsafe.Pointer(v8)) + *(*Tu64)(unsafe.Pointer(v8))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = int8(c) + } else { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + return + } + _jsonAppendControlChar(tls, p, c) + } } - _4: - ; z++ N-- } - v24 = p + 16 - v23 = *(*Tu64)(unsafe.Pointer(v24)) - *(*Tu64)(unsafe.Pointer(v24))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v23))) = int8('"') + v10 = p + 16 + v9 = *(*Tu64)(unsafe.Pointer(v10)) + *(*Tu64)(unsafe.Pointer(v10))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = int8('"') _ = libc.Int32FromInt32(0) } -var _aSpecial = [32]int8{ - 8: int8('b'), - 9: int8('t'), - 10: int8('n'), - 12: int8('f'), - 13: int8('r'), -} - // C documentation // // /* @@ -171569,9 +173241,9 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _, _, _, _ = n, n1, z, z1 switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_NULL): - _jsonAppendRawNZ(tls, p, __ccgo_ts+1634, uint32(4)) + _jsonAppendRawNZ(tls, p, __ccgo_ts+1648, uint32(4)) case int32(SQLITE_FLOAT): - _jsonPrintf(tls, int32(100), p, __ccgo_ts+15323, libc.VaList(bp+64, Xsqlite3_value_double(tls, pValue))) + _jsonPrintf(tls, int32(100), p, __ccgo_ts+15416, libc.VaList(bp+64, Xsqlite3_value_double(tls, pValue))) case int32(SQLITE_INTEGER): z = Xsqlite3_value_text(tls, pValue) n = uint32(Xsqlite3_value_bytes(tls, pValue)) @@ -171592,7 +173264,7 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _jsonTranslateBlobToText(tls, bp, uint32(0), p) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr) == 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24907, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25030, -int32(1)) (*TJsonString)(unsafe.Pointer(p)).FeErr = uint8(JSTRING_ERR) _jsonStringReset(tls, p) } @@ -171648,7 +173320,7 @@ func _jsonReturnString(tls *libc.TLS, p uintptr, pParse uintptr, ctx uintptr) { Xsqlite3_result_error_nomem(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr)&int32(JSTRING_MALFORMED) != 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25059, -int32(1)) } } } @@ -171896,6 +173568,7 @@ func _json5Whitespace(tls *libc.TLS, zIn uintptr) (r int32) { goto whitespace_done } } + goto whitespace_done whitespace_done: ; return n @@ -171931,8 +173604,8 @@ var _aNanInfName = [5]TNanInfName{ Fn: int8(3), FeType: int8(JSONB_FLOAT), FnRepl: int8(7), - FzMatch: __ccgo_ts + 24951, - FzRepl: __ccgo_ts + 24955, + FzMatch: __ccgo_ts + 25074, + FzRepl: __ccgo_ts + 25078, }, 1: { Fc1: int8('i'), @@ -171940,32 +173613,32 @@ var _aNanInfName = [5]TNanInfName{ Fn: int8(8), FeType: int8(JSONB_FLOAT), FnRepl: int8(7), - FzMatch: __ccgo_ts + 24963, - FzRepl: __ccgo_ts + 24955, + FzMatch: __ccgo_ts + 25086, + FzRepl: __ccgo_ts + 25078, }, 2: { Fc1: int8('n'), Fc2: int8('N'), Fn: int8(3), FnRepl: int8(4), - FzMatch: __ccgo_ts + 1639, - FzRepl: __ccgo_ts + 1634, + FzMatch: __ccgo_ts + 1653, + FzRepl: __ccgo_ts + 1648, }, 3: { Fc1: int8('q'), Fc2: int8('Q'), Fn: int8(4), FnRepl: int8(4), - FzMatch: __ccgo_ts + 24972, - FzRepl: __ccgo_ts + 1634, + FzMatch: __ccgo_ts + 25095, + FzRepl: __ccgo_ts + 1648, }, 4: { Fc1: int8('s'), Fc2: int8('S'), Fn: int8(4), FnRepl: int8(4), - FzMatch: __ccgo_ts + 24977, - FzRepl: __ccgo_ts + 1634, + FzMatch: __ccgo_ts + 25100, + FzRepl: __ccgo_ts + 1648, }, } @@ -171980,7 +173653,7 @@ func _jsonWrongNumArgs(tls *libc.TLS, pCtx uintptr, zFuncName uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24982, libc.VaList(bp+8, zFuncName)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25105, libc.VaList(bp+8, zFuncName)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) } @@ -172434,30 +174107,37 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept return j + uint32(1) } } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) <= int32(0x1f) { + /* Control characters in JSON5 string literals are ok */ + if int32(x) == int32(JSONB_TEXTJ) { + return j + uint32(1) + } } else { - if libc.Xstrchr(tls, __ccgo_ts+25025, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { - j++ + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { + return j + uint32(1) } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { - if j+uint32(5) >= k { - return j + uint32(1) - } - if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { - return j + uint32(1) - } + if libc.Xstrchr(tls, __ccgo_ts+25148, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { j++ } else { - if int32(x) != int32(JSONB_TEXT5) { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { + if j+uint32(5) >= k { + return j + uint32(1) + } + if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { + return j + uint32(1) + } + j++ } else { - *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) - szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) - if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + if int32(x) != int32(JSONB_TEXT5) { return j + uint32(1) + } else { + *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) + szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) + if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + return j + uint32(1) + } + j += szC - uint32(1) } - j += szC - uint32(1) } } } @@ -172555,6 +174235,7 @@ func _jsonTranslateTextToBlob(tls *libc.TLS, pParse uintptr, i Tu32) (r int32) { var _ /* op at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cDelim, iBlob, iStart, iThis, j, k, k1, nn, opcode, seenE, t, x, z, v40, v41, v43, v44, v46, v48 z = (*TJsonParse)(unsafe.Pointer(pParse)).FzJson + goto json_parse_restart json_parse_restart: ; switch int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))) { @@ -172710,6 +174391,7 @@ _1: } j = (*TJsonParse)(unsafe.Pointer(pParse)).FiErr + uint32(1) } + goto parse_object_value parse_object_value: ; x = _jsonTranslateTextToBlob(tls, pParse, j) @@ -172837,6 +174519,7 @@ _3: ; /* Parse string */ opcode = uint8(JSONB_TEXT) + goto parse_string parse_string: ; cDelim = *(*int8)(unsafe.Pointer(z + uintptr(i))) @@ -172885,9 +174568,14 @@ parse_string: } } else { if int32(c) <= int32(0x1f) { - /* Control characters are not allowed in strings */ - (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j - return -int32(1) + if int32(c) == 0 { + (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j + return -int32(1) + } + /* Control characters are not allowed in canonical JSON string + ** literals, but are allowed in JSON5 string literals. */ + opcode = uint8(JSONB_TEXT5) + (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) } else { if int32(c) == int32('"') { opcode = uint8(JSONB_TEXT5) @@ -172901,7 +174589,7 @@ parse_string: return int32(j + uint32(1)) _5: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7886, uint32(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8011, uint32(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_TRUE)) return int32(i + uint32(4)) } @@ -172909,7 +174597,7 @@ _5: return -int32(1) _6: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7891, uint32(5)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(5)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8016, uint32(5)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(5)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_FALSE)) return int32(i + uint32(5)) } @@ -172954,6 +174642,7 @@ _8: ; /* Parse number */ t = uint8(0x00) /* Bit 0x01: JSON5. Bit 0x02: FLOAT */ + goto parse_number parse_number: ; seenE = uint8(0) @@ -172989,14 +174678,14 @@ parse_number: /* JSON5 allows for "+Infinity" and "-Infinity" using exactly ** that case. SQLite also allows these in any case and it allows ** "+inf" and "-inf". */ - if (int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+24951, int32(3)) == 0 { + if (int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+25074, int32(3)) == 0 { (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) if int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == int32('-') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25034) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25157) } else { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25041) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25164) } - if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25047, int32(5)) == 0 { + if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25170, int32(5)) == 0 { v48 = int32(9) } else { v48 = int32(4) @@ -173035,6 +174724,7 @@ parse_number: } } } + goto parse_number_2 parse_number_2: ; j = i + uint32(1) @@ -173093,6 +174783,7 @@ parse_number_2: return -int32(1) } } + goto parse_number_finish parse_number_finish: ; _ = libc.Int32FromInt32(0) @@ -173158,11 +174849,10 @@ _29: return -int32(1) _37: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1634, uint32(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1648, uint32(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) return int32(i + uint32(4)) } - /* fall-through into the default case that checks for NaN */ _38: ; c = *(*int8)(unsafe.Pointer(z + uintptr(i))) @@ -173182,7 +174872,7 @@ _38: goto _51 } if int32(_aNanInfName[k1].FeType) == int32(JSONB_FLOAT) { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25041) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25164) } else { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) } @@ -173227,7 +174917,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 i += _json5Whitespace(tls, zJson+uintptr(i)) if *(*int8)(unsafe.Pointer(zJson + uintptr(i))) != 0 { if pCtx != 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25059, -int32(1)) } _jsonParseReset(tls, pParse) return int32(1) @@ -173240,7 +174930,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 if (*TJsonParse)(unsafe.Pointer(pParse)).Foom != 0 { Xsqlite3_result_error_nomem(tls, pCtx) } else { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25059, -int32(1)) } } _jsonParseReset(tls, pParse) @@ -173405,15 +175095,15 @@ func _jsonTranslateBlobToText(tls *libc.TLS, pParse uintptr, i Tu32, pOut uintpt goto _16 _2: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1634, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1648, uint32(4)) return i + uint32(1) _3: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7886, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8011, uint32(4)) return i + uint32(1) _4: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7891, uint32(5)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8016, uint32(5)) return i + uint32(1) _6: ; @@ -173462,9 +175152,9 @@ _7: k++ } if bOverflow != 0 { - v19 = __ccgo_ts + 24955 + v19 = __ccgo_ts + 25078 } else { - v19 = __ccgo_ts + 11753 + v19 = __ccgo_ts + 11878 } _jsonPrintf(tls, int32(100), pOut, v19, libc.VaList(bp+16, u)) goto _16 @@ -173512,7 +175202,7 @@ _11: for sz2 > uint32(0) { k2 = uint32(0) for { - if !(k2 < sz2 && int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('\\') && int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('"')) { + if !(k2 < sz2 && (_jsonIsOk[uint8(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2))))] != 0 || int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) == int32('\''))) { break } goto _21 @@ -173529,7 +175219,16 @@ _11: sz2 -= k2 } if int32(*(*int8)(unsafe.Pointer(zIn2))) == int32('"') { - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25053, uint32(2)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25176, uint32(2)) + zIn2++ + sz2-- + continue + } + if int32(*(*int8)(unsafe.Pointer(zIn2))) <= int32(0x1f) { + if (*TJsonString)(unsafe.Pointer(pOut)).FnUsed+uint64(7) > (*TJsonString)(unsafe.Pointer(pOut)).FnAlloc && _jsonStringGrow(tls, pOut, uint32(7)) != 0 { + break + } + _jsonAppendControlChar(tls, pOut, uint8(*(*int8)(unsafe.Pointer(zIn2)))) zIn2++ sz2-- continue @@ -173545,7 +175244,7 @@ _11: case int32('\''): _jsonAppendChar(tls, pOut, int8('\'')) case int32('v'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25056, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25179, uint32(6)) case int32('x'): if sz2 < uint32(4) { p23 = pOut + 25 @@ -173553,12 +175252,12 @@ _11: sz2 = uint32(2) break } - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25063, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25186, uint32(4)) _jsonAppendRawNZ(tls, pOut, zIn2+2, uint32(2)) zIn2 += uintptr(2) sz2 -= uint32(2) case int32('0'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25068, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25191, uint32(6)) case int32('\r'): if sz2 > uint32(2) && int32(*(*int8)(unsafe.Pointer(zIn2 + 2))) == int32('\n') { zIn2++ @@ -173637,6 +175336,7 @@ _14: goto _16 _15: ; + goto malformed_jsonb malformed_jsonb: ; p29 = pOut + 25 @@ -173647,6 +175347,140 @@ _16: return i + n + *(*Tu32)(unsafe.Pointer(bp)) } +// C documentation +// +// /* Context for recursion of json_pretty() +// */ +type TJsonPretty = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty = TJsonPretty + +type TJsonPretty1 = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty1 = TJsonPretty1 + +// C documentation +// +// /* Append indentation to the pretty JSON under construction */ +func _jsonPrettyIndent(tls *libc.TLS, pPretty uintptr) { + var jj Tu32 + _ = jj + jj = uint32(0) + for { + if !(jj < (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent) { + break + } + _jsonAppendRaw(tls, (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut, (*TJsonPretty)(unsafe.Pointer(pPretty)).FzIndent, (*TJsonPretty)(unsafe.Pointer(pPretty)).FszIndent) + goto _1 + _1: + ; + jj++ + } +} + +// C documentation +// +// /* +// ** Translate the binary JSONB representation of JSON beginning at +// ** pParse->aBlob[i] into a JSON text string. Append the JSON +// ** text onto the end of pOut. Return the index in pParse->aBlob[] +// ** of the first byte past the end of the element that is translated. +// ** +// ** This is a variant of jsonTranslateBlobToText() that "pretty-prints" +// ** the output. Extra whitespace is inserted to make the JSON easier +// ** for humans to read. +// ** +// ** If an error is detected in the BLOB input, the pOut->eErr flag +// ** might get set to JSTRING_MALFORMED. But not all BLOB input errors +// ** are detected. So a malformed JSONB input might either result +// ** in an error, or in incorrect JSON. +// ** +// ** The pOut->eErr JSTRING_OOM flag is set on a OOM. +// */ +func _jsonTranslateBlobToPrettyText(tls *libc.TLS, pPretty uintptr, i Tu32) (r Tu32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var iEnd, j, n Tu32 + var pOut, pParse, p1, p2 uintptr + var _ /* sz at bp+0 */ Tu32 + _, _, _, _, _, _, _ = iEnd, j, n, pOut, pParse, p1, p2 + pParse = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpParse + pOut = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut + n = _jsonbPayloadSize(tls, pParse, i, bp) + if n == uint32(0) { + p1 = pOut + 25 + *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + return (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob + uint32(1) + } + switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { + case int32(JSONB_ARRAY): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, int8('[')) + if j < iEnd { + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25198, uint32(2)) + } + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, int8(']')) + i = iEnd + case int32(JSONB_OBJECT): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, int8('{')) + if j < iEnd { + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToText(tls, pParse, j, pOut) + if j > iEnd { + p2 = pOut + 25 + *(*Tu8)(unsafe.Pointer(p2)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p2))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25201, uint32(2)) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25198, uint32(2)) + } + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, int8('}')) + i = iEnd + default: + i = _jsonTranslateBlobToText(tls, pParse, i, pOut) + break + } + return i +} + // C documentation // // /* Return true if the input pJson @@ -174374,7 +176208,7 @@ func _jsonReturnFromBlob(tls *libc.TLS, pParse uintptr, i Tu32, pCtx uintptr, te db = Xsqlite3_context_db_handle(tls, pCtx) n = _jsonbPayloadSize(tls, pParse, i, bp) if n == uint32(0) { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25059, -int32(1)) return } switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { @@ -174483,6 +176317,7 @@ _6: if *(*Tu32)(unsafe.Pointer(bp)) == uint32(0) { goto returnfromblob_malformed } + goto to_double to_double: ; z1 = _sqlite3DbStrNDup(tls, db, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(i+n), uint64(int32(*(*Tu32)(unsafe.Pointer(bp))))) @@ -174605,13 +176440,15 @@ _14: _15: ; return + goto returnfromblob_oom returnfromblob_oom: ; Xsqlite3_result_error_nomem(tls, pCtx) return + goto returnfromblob_malformed returnfromblob_malformed: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25059, -int32(1)) return } @@ -174652,7 +176489,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob = Xsqlite3_value_blob(tls, pArg) (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob = uint32(Xsqlite3_value_bytes(tls, pArg)) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24907, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25030, -int32(1)) return int32(1) } case int32(SQLITE_TEXT): @@ -174665,7 +176502,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FzJson = zJson (*TJsonParse)(unsafe.Pointer(pParse)).FnJson = nJson if _jsonConvertTextToBlob(tls, pParse, ctx) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) _sqlite3DbFree(tls, (*TJsonParse)(unsafe.Pointer(pParse)).Fdb, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob) libc.Xmemset(tls, pParse, 0, uint32(56)) return int32(1) @@ -174684,10 +176521,10 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin return int32(1) } if int32(*(*int8)(unsafe.Pointer(z))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25041) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25164) } else { if int32(*(*int8)(unsafe.Pointer(z))) == int32('-') && int32(*(*int8)(unsafe.Pointer(z + 1))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25034) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25157) } else { _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(n), z) } @@ -174726,7 +176563,7 @@ func _jsonBadPathError(tls *libc.TLS, ctx uintptr, zPath uintptr) (r uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25075, libc.VaList(bp+8, zPath)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25204, libc.VaList(bp+8, zPath)) if ctx == uintptr(0) { return zMsg } @@ -174819,11 +176656,12 @@ func _jsonInsertIntoBlob(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr, e _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto jsonInsertIntoBlob_patherror jsonInsertIntoBlob_patherror: ; _jsonParseFree(tls, p) if rc == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } else { _jsonBadPathError(tls, ctx, zPath) } @@ -174908,6 +176746,7 @@ func _jsonParseFuncArg(tls *libc.TLS, ctx uintptr, pArg uintptr, flgs Tu32) (r u } } db = Xsqlite3_context_db_handle(tls, ctx) + goto rebuild_from_cache rebuild_from_cache: ; p = _sqlite3DbMallocZero(tls, db, uint64(56)) @@ -174998,6 +176837,7 @@ rebuild_from_cache: } } return p + goto json_pfa_malformed json_pfa_malformed: ; if flgs&uint32(JSON_KEEPERROR) != 0 { @@ -175005,9 +176845,10 @@ json_pfa_malformed: return p } else { _jsonParseFree(tls, p) - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) return uintptr(0) } + goto json_pfa_oom json_pfa_oom: ; _jsonParseFree(tls, pFromCache) @@ -175139,7 +176980,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if int32(*(*int8)(unsafe.Pointer(zPath))) == int32('$') { v1 = zPath + uintptr(1) } else { - v1 = __ccgo_ts + 25093 + v1 = __ccgo_ts + 25222 } i = _jsonLookupStep(tls, p, uint32(0), v1, uint32(0)) if i >= uint32(JSON_LOOKUP_PATHERROR) { @@ -175149,7 +176990,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } } eErr = uint8(1) @@ -175167,25 +177008,6 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) _jsonParseFree(tls, p) } -// C documentation -// -// /* True if the string is all digits */ -func _jsonAllDigits(tls *libc.TLS, z uintptr, n int32) (r int32) { - var i int32 - _ = i - i = 0 - for { - if !(i < n && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))])&int32(0x04) != 0) { - break - } - goto _1 - _1: - ; - i++ - } - return libc.BoolInt32(i == n) -} - // C documentation // // /* True if the string is all alphanumerics and underscores */ @@ -175272,21 +177094,21 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { ** [NUMBER] ==> $[NUMBER] // Not PG. Purely for convenience */ _jsonStringInit(tls, bp, ctx) - if _jsonAllDigits(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25095, uint32(1)) + if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*4))) == int32(SQLITE_INTEGER) { + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25224, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+5161, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+5225, uint32(2)) } else { if _jsonAllAlphanum(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1661, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1675, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { if int32(*(*int8)(unsafe.Pointer(zPath))) == int32('[') && nPath >= int32(3) && int32(*(*int8)(unsafe.Pointer(zPath + uintptr(nPath-int32(1))))) == int32(']') { _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25097, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25226, uint32(2)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25100, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25229, uint32(1)) } } } @@ -175323,11 +177145,11 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { goto json_extract_error /* Return NULL if not found */ } else { _jsonAppendSeparator(tls, bp) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1634, uint32(4)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1648, uint32(4)) } } else { if j == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) goto json_extract_error } else { _jsonBadPathError(tls, ctx, zPath) @@ -175347,6 +177169,7 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } } + goto json_extract_error json_extract_error: ; _jsonStringReset(tls, bp) @@ -175597,7 +177420,7 @@ func _jsonPatchFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == int32(JSON_MERGE_OOM) { Xsqlite3_result_error_nomem(tls, ctx) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } } _jsonParseFree(tls, pPatch) @@ -175621,7 +177444,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { var _ /* jx at bp+0 */ TJsonString _, _, _ = i, n, z if argc&int32(1) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25102, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25231, -int32(1)) return } _jsonStringInit(tls, bp, ctx) @@ -175632,7 +177455,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { break } if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*4))) != int32(SQLITE_TEXT) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25153, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25282, -int32(1)) _jsonStringReset(tls, bp) return } @@ -175704,7 +177527,7 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } } goto json_remove_done @@ -175717,9 +177540,11 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto json_remove_patherror json_remove_patherror: ; _jsonBadPathError(tls, ctx, zPath) + goto json_remove_done json_remove_done: ; _jsonParseFree(tls, p) @@ -175739,7 +177564,7 @@ func _jsonReplaceFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { return } if argc&int32(1) == 0 { - _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15796) + _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15889) return } _jsonInsertIntoBlob(tls, ctx, argc, argv, int32(JEDIT_REPL)) @@ -175770,9 +177595,9 @@ func _jsonSetFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { } if argc&int32(1) == 0 { if bIsSet != 0 { - v1 = __ccgo_ts + 25187 + v1 = __ccgo_ts + 25316 } else { - v1 = __ccgo_ts + 25191 + v1 = __ccgo_ts + 25320 } _jsonWrongNumArgs(tls, ctx, v1) return @@ -175820,7 +177645,7 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } } goto json_type_done @@ -175829,11 +177654,54 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { i = uint32(0) } Xsqlite3_result_text(tls, ctx, _jsonbType[int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(p)).FaBlob + uintptr(i))))&int32(0x0f)], -int32(1), libc.UintptrFromInt32(0)) + goto json_type_done json_type_done: ; _jsonParseFree(tls, p) } +// C documentation +// +// /* +// ** json_pretty(JSON) +// ** json_pretty(JSON, INDENT) +// ** +// ** Return text that is a pretty-printed rendering of the input JSON. +// ** If the argument is not valid JSON, return NULL. +// ** +// ** The INDENT argument is text that is used for indentation. If omitted, +// ** it defaults to four spaces (the same as PostgreSQL). +// */ +func _jsonPrettyFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { + bp := tls.Alloc(160) + defer tls.Free(160) + var v1 uintptr + var v2 bool + var _ /* s at bp+0 */ TJsonString + var _ /* x at bp+128 */ TJsonPretty + _, _ = v1, v2 /* Pretty printing context */ + libc.Xmemset(tls, bp+128, 0, uint32(20)) + (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FpParse = _jsonParseFuncArg(tls, ctx, *(*uintptr)(unsafe.Pointer(argv)), uint32(0)) + if (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FpParse == uintptr(0) { + return + } + (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FpOut = bp + _jsonStringInit(tls, bp, ctx) + if v2 = argc == int32(1); !v2 { + v1 = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*4))) + (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FzIndent = v1 + } + if v2 || v1 == uintptr(0) { + (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FzIndent = __ccgo_ts + 25327 + (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FszIndent = uint32(4) + } else { + (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FszIndent = libc.Xstrlen(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FzIndent) + } + _jsonTranslateBlobToPrettyText(tls, bp+128, uint32(0)) + _jsonReturnString(tls, bp, uintptr(0), uintptr(0)) + _jsonParseFree(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FpParse) +} + // C documentation // // /* @@ -175908,7 +177776,7 @@ func _jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if argc == int32(2) { f = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + 1*4))) if f < int64(1) || f > int64(15) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25198, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25332, -int32(1)) return } flags = uint8(f & int64(0x0f)) @@ -176098,7 +177966,7 @@ func _jsonArrayCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25255, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25389, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -176247,7 +178115,7 @@ func _jsonObjectCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25258, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25392, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -176350,7 +178218,7 @@ func _jsonEachConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv _ = argv _ = argc _ = pAux - rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25261) + rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25395) if rc == SQLITE_OK { pNew = _sqlite3DbMallocZero(tls, db, uint64(16)) *(*uintptr)(unsafe.Pointer(ppVtab)) = pNew @@ -176486,7 +178354,7 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TJsonEachCursor)(unsafe.Pointer(p)).FeType) == int32(JSONB_ARRAY) { - _jsonPrintf(tls, int32(30), p+40, __ccgo_ts+25344, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) + _jsonPrintf(tls, int32(30), p+40, __ccgo_ts+25478, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) } else { *(*Tu32)(unsafe.Pointer(bp)) = uint32(0) needQuote = 0 @@ -176512,9 +178380,9 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { } } if needQuote != 0 { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+40, __ccgo_ts+25351, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+40, __ccgo_ts+25485, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } else { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+40, __ccgo_ts+25359, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+40, __ccgo_ts+25493, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } } } @@ -176904,7 +178772,7 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a i = v5 (*TJsonEachCursor)(unsafe.Pointer(p)).FeType = uint8(0) (*TJsonEachCursor)(unsafe.Pointer(p)).FnRoot = uint32(1) - _jsonAppendRaw(tls, p+40, __ccgo_ts+25365, uint32(1)) + _jsonAppendRaw(tls, p+40, __ccgo_ts+25499, uint32(1)) } (*TJsonEachCursor)(unsafe.Pointer(p)).FnParent = uint32(0) n = _jsonbPayloadSize(tls, p+168, i, bp) @@ -176924,10 +178792,11 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent))).FiValue = i } return SQLITE_OK + goto json_each_malformed_input json_each_malformed_input: ; Xsqlite3_free(tls, (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg) - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24936, 0) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25059, 0) _jsonEachCursorReset(tls, p) if (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg != 0 { v6 = int32(SQLITE_ERROR) @@ -176981,183 +178850,193 @@ func init() { // ** Register JSON functions. // */ func _sqlite3RegisterJsonFunctions(tls *libc.TLS) { - _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint32FromInt64(1280)/libc.Uint32FromInt64(40))) + _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint32FromInt64(1360)/libc.Uint32FromInt64(40))) } -var _aJsonFunc = [32]TFuncDef{ +var _aJsonFunc = [34]TFuncDef{ 0: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25367, + FzName: __ccgo_ts + 25501, }, 1: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25372, + FzName: __ccgo_ts + 25506, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25378, + FzName: __ccgo_ts + 25512, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25389, + FzName: __ccgo_ts + 25523, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25401, + FzName: __ccgo_ts + 25535, }, 5: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25401, + FzName: __ccgo_ts + 25535, }, 6: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25419, + FzName: __ccgo_ts + 25553, }, 7: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25439, + FzName: __ccgo_ts + 25573, }, 8: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25452, + FzName: __ccgo_ts + 25586, }, 9: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(JSON_JSON) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25466, + FzName: __ccgo_ts + 25600, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(JSON_SQL) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25469, + FzName: __ccgo_ts + 25603, }, 11: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25473, + FzName: __ccgo_ts + 25607, }, 12: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25485, + FzName: __ccgo_ts + 25619, }, 13: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25498, + FzName: __ccgo_ts + 25632, }, 14: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25510, + FzName: __ccgo_ts + 25644, }, 15: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25523, + FzName: __ccgo_ts + 25657, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25534, + FzName: __ccgo_ts + 25668, }, 17: { FnArg: int8(1), - FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25546, + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25680, }, 18: { + FnArg: int8(2), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25680, + }, + 19: { + FnArg: int8(1), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25692, + }, + 20: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25557, + FzName: __ccgo_ts + 25703, }, - 19: { + 21: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25569, + FzName: __ccgo_ts + 25715, }, - 20: { + 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25582, + FzName: __ccgo_ts + 25728, }, - 21: { + 23: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25595, + FzName: __ccgo_ts + 25741, }, - 22: { + 24: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25609, + FzName: __ccgo_ts + 25755, }, - 23: { + 25: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25618, + FzName: __ccgo_ts + 25764, }, - 24: { + 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25628, + FzName: __ccgo_ts + 25774, }, - 25: { + 27: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25628, + FzName: __ccgo_ts + 25774, }, - 26: { + 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25638, + FzName: __ccgo_ts + 25784, }, - 27: { + 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25638, + FzName: __ccgo_ts + 25784, }, - 28: { + 30: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25649, + FzName: __ccgo_ts + 25795, }, - 29: { + 31: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25666, + FzName: __ccgo_ts + 25812, }, - 30: { + 32: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25684, + FzName: __ccgo_ts + 25830, }, - 31: { + 33: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25702, + FzName: __ccgo_ts + 25848, }, } @@ -177180,33 +179059,35 @@ func init() { *(*uintptr)(unsafe.Add(p, 576)) = __ccgo_fp(_jsonObjectFunc) *(*uintptr)(unsafe.Add(p, 616)) = __ccgo_fp(_jsonPatchFunc) *(*uintptr)(unsafe.Add(p, 656)) = __ccgo_fp(_jsonPatchFunc) - *(*uintptr)(unsafe.Add(p, 696)) = __ccgo_fp(_jsonQuoteFunc) - *(*uintptr)(unsafe.Add(p, 736)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 776)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 816)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 856)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 896)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 936)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 976)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1016)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1056)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 1096)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 1136)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 1140)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 1144)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 1148)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 1176)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 1180)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 1184)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 1188)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 1216)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 1220)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 1224)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 696)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 736)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 776)) = __ccgo_fp(_jsonQuoteFunc) + *(*uintptr)(unsafe.Add(p, 816)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 856)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 896)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 936)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 976)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1016)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1056)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 1096)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 1136)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 1176)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 1216)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 1220)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 1224)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 1228)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 1256)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 1260)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 1264)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 1256)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 1260)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 1264)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 1268)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 1296)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 1300)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 1304)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 1308)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 1336)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 1340)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 1344)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 1348)) = __ccgo_fp(_jsonGroupInverse) } // C documentation @@ -177238,11 +179119,11 @@ var _aMod = [2]struct { FpModule uintptr }{ 0: { - FzName: __ccgo_ts + 25721, + FzName: __ccgo_ts + 25867, FpModule: uintptr(unsafe.Pointer(&_jsonEachModule)), }, 1: { - FzName: __ccgo_ts + 25731, + FzName: __ccgo_ts + 25877, FpModule: uintptr(unsafe.Pointer(&_jsonTreeModule)), }, } @@ -177895,7 +179776,7 @@ func _nodeAcquire(tls *libc.TLS, pRtree uintptr, iNode Ti64, pParent uintptr, pp } } if (*TRtree)(unsafe.Pointer(pRtree)).FpNodeBlob == uintptr(0) { - rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25741, iNode, 0, pRtree+72) + rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25887, iNode, 0, pRtree+72) } if rc != 0 { *(*uintptr)(unsafe.Pointer(ppNode)) = uintptr(0) @@ -178207,7 +180088,7 @@ func _rtreeDestroy(tls *libc.TLS, pVtab uintptr) (r int32) { var rc int32 _, _, _ = pRtree, rc, zCreate pRtree = pVtab - zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25746, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25892, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if !(zCreate != 0) { rc = int32(SQLITE_NOMEM) } else { @@ -179141,7 +181022,7 @@ func _findLeafNode(tls *libc.TLS, pRtree uintptr, iRowid Ti64, ppLeaf uintptr, p func _deserializeGeometry(tls *libc.TLS, pValue uintptr, pCons uintptr) (r int32) { var pBlob, pInfo, pSrc uintptr _, _, _ = pBlob, pInfo, pSrc /* Callback information */ - pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25828) + pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25974) if pSrc == uintptr(0) { return int32(SQLITE_ERROR) } @@ -179196,7 +181077,7 @@ func _rtreeFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintp iRowid = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) *(*Ti64)(unsafe.Pointer(bp + 16)) = 0 eType = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv))) - if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv))) == float64(iRowid) { + if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && 0 == _sqlite3IntFloatCompare(tls, iRowid, Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))) { rc = _findLeafNode(tls, pRtree, iRowid, bp+8, bp+16) } else { rc = SQLITE_OK @@ -180251,6 +182132,7 @@ func _SplitNode(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iHe rc = _nodeRelease(tls, pRtree, pLeft) pLeft = uintptr(0) } + goto splitnode_out splitnode_out: ; _nodeRelease(tls, pRtree, pRight) @@ -180684,7 +182566,7 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) _, _, _, _, _, _ = rc, zCol, zCol1, zCol2, zSql, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) _ = libc.Int32FromInt32(0) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25842, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25988, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if zSql != 0 { rc = Xsqlite3_prepare_v2(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, -int32(1), bp, uintptr(0)) } else { @@ -180694,11 +182576,11 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) if rc == SQLITE_OK { if iCol == 0 { zCol = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25862, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26008, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) } else { zCol1 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol) zCol2 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol+int32(1)) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25894, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26040, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) } } Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -180861,6 +182743,7 @@ func _rtreeUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pRow rc = Xsqlite3_reset(tls, pUp) } } + goto constraint constraint: ; _rtreeRelease(tls, pRtree) @@ -180876,6 +182759,7 @@ func _rtreeBeginTransaction(tls *libc.TLS, pVtab uintptr) (r int32) { var pRtree uintptr _ = pRtree pRtree = pVtab + _ = libc.Int32FromInt32(0) (*TRtree)(unsafe.Pointer(pRtree)).FinWrTrans = uint8(1) return SQLITE_OK } @@ -180912,7 +182796,7 @@ func _rtreeRename(tls *libc.TLS, pVtab uintptr, zNewName uintptr) (r int32) { _, _, _ = pRtree, rc, zSql pRtree = pVtab rc = int32(SQLITE_NOMEM) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25931, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26077, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) if zSql != 0 { _nodeBlobReset(tls, pRtree) rc = Xsqlite3_exec(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, uintptr(0), uintptr(0), uintptr(0)) @@ -180966,9 +182850,9 @@ func _rtreeQueryStat1(tls *libc.TLS, db uintptr, pRtree uintptr) (r int32) { var v2 int64 var _ /* p at bp+0 */ uintptr _, _, _, _, _, _ = nRow, rc, zFmt, zSql, v1, v2 - zFmt = __ccgo_ts + 26076 + zFmt = __ccgo_ts + 26222 nRow = int64(RTREE_MIN_ROWEST) - rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11582, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11707, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc != SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FnRowEst = int64(RTREE_DEFAULT_ROWEST) if rc == int32(SQLITE_ERROR) { @@ -181026,9 +182910,9 @@ func _rtreeShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName1 = [3]uintptr{ - 0: __ccgo_ts + 26132, - 1: __ccgo_ts + 5484, - 2: __ccgo_ts + 16694, + 0: __ccgo_ts + 26278, + 1: __ccgo_ts + 5548, + 2: __ccgo_ts + 16781, } var _rtreeModule = Tsqlite3_module{ @@ -181072,21 +182956,21 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref (*TRtree)(unsafe.Pointer(pRtree)).Fdb = db if isCreate != 0 { p = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26546, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26692, libc.VaList(bp+8, zDb, zPrefix)) ii = 0 for { if !(ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26608, libc.VaList(bp+8, ii)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26754, libc.VaList(bp+8, ii)) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26613, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26677, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26747, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26759, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26823, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26893, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) zCreate = Xsqlite3_str_finish(tls, p) if !(zCreate != 0) { return int32(SQLITE_NOMEM) @@ -181116,7 +183000,7 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } else { /* An UPSERT is very slightly slower than REPLACE, but it is needed ** if there are auxiliary columns */ - zFormat = __ccgo_ts + 26796 + zFormat = __ccgo_ts + 26942 } zSql = Xsqlite3_mprintf(tls, zFormat, libc.VaList(bp+8, zDb, zPrefix)) if zSql != 0 { @@ -181131,31 +183015,31 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref i++ } if (*TRtree)(unsafe.Pointer(pRtree)).FnAux != 0 && rc != int32(SQLITE_NOMEM) { - (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+26904, libc.VaList(bp+8, zDb, zPrefix)) + (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+27050, libc.VaList(bp+8, zDb, zPrefix)) if (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { p1 = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26949, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27095, libc.VaList(bp+8, zDb, zPrefix)) ii1 = 0 for { if !(ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } if ii1 != 0 { - Xsqlite3_str_append(tls, p1, __ccgo_ts+13090, int32(1)) + Xsqlite3_str_append(tls, p1, __ccgo_ts+13215, int32(1)) } if ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull) { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26976, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27122, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) } else { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26998, libc.VaList(bp+8, ii1, ii1+int32(2))) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27144, libc.VaList(bp+8, ii1, ii1+int32(2))) } goto _3 _3: ; ii1++ } - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27006, 0) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27152, 0) zSql1 = Xsqlite3_str_finish(tls, p1) if zSql1 == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -181169,14 +183053,14 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } var _azSql = [8]uintptr{ - 0: __ccgo_ts + 26137, - 1: __ccgo_ts + 26190, - 2: __ccgo_ts + 26235, - 3: __ccgo_ts + 26287, - 4: __ccgo_ts + 26341, - 5: __ccgo_ts + 26386, - 6: __ccgo_ts + 26444, - 7: __ccgo_ts + 26499, + 0: __ccgo_ts + 26283, + 1: __ccgo_ts + 26336, + 2: __ccgo_ts + 26381, + 3: __ccgo_ts + 26433, + 4: __ccgo_ts + 26487, + 5: __ccgo_ts + 26532, + 6: __ccgo_ts + 26590, + 7: __ccgo_ts + 26645, } // C documentation @@ -181234,7 +183118,7 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE _, _ = rc, zSql if isCreate != 0 { *(*int32)(unsafe.Pointer(bp)) = 0 - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27022, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27168, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) rc = _getIntFromStmt(tls, db, zSql, bp) if rc == SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = *(*int32)(unsafe.Pointer(bp)) - int32(64) @@ -181242,17 +183126,17 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = int32(4) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*int32(RTREE_MAXCELLS) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } } else { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27042, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27188, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) rc = _getIntFromStmt(tls, db, zSql, pRtree+16) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } else { if (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize < libc.Int32FromInt32(512)-libc.Int32FromInt32(64) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< libc.Int32FromInt32(RTREE_MAX_AUX_COLUMN)+libc.Int32FromInt32(3) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) return int32(SQLITE_ERROR) } Xsqlite3_vtab_config(tls, db, int32(SQLITE_VTAB_CONSTRAINT_SUPPORT), libc.VaList(bp+8, int32(1))) @@ -181329,13 +183213,13 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*4)), uint32(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*4)), uint32(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*4)), uint32(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27285, uint32(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27431, uint32(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27291, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*4))), *(*uintptr)(unsafe.Pointer(argv + 3*4)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27437, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*4))), *(*uintptr)(unsafe.Pointer(argv + 3*4)))) ii = int32(4) for { if !(ii < argc) { @@ -181344,7 +183228,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt zArg = *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*4)) if int32(*(*int8)(unsafe.Pointer(zArg))) == int32('+') { (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27315, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27461, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) } else { if int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux) > 0 { break @@ -181358,19 +183242,19 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27342, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27488, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) } else { if ii < argc { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, aErrMsg[int32(4)])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, aErrMsg[int32(4)])) rc = int32(SQLITE_ERROR) } else { v3 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v3 if SQLITE_OK != v3 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } } @@ -181393,7 +183277,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } } if iErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, aErrMsg[iErr])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, aErrMsg[iErr])) goto rtreeInit_fail } (*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell = uint8(int32(8) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)*int32(4)) @@ -181404,11 +183288,12 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*4)), *(*uintptr)(unsafe.Pointer(argv + 2*4)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto rtreeInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto rtreeInit_fail rtreeInit_fail: ; if rc == SQLITE_OK { @@ -181421,8 +183306,8 @@ rtreeInit_fail: } var _azFormat = [2]uintptr{ - 0: __ccgo_ts + 27321, - 1: __ccgo_ts + 27332, + 0: __ccgo_ts + 27467, + 1: __ccgo_ts + 27478, } // C documentation @@ -181480,21 +183365,21 @@ func _rtreenode(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { } _nodeGetCell(tls, bp+28, bp, ii, bp+528) if ii > 0 { - Xsqlite3_str_append(tls, pOut, __ccgo_ts+11202, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+11327, int32(1)) } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27345, libc.VaList(bp+584, (*(*TRtreeCell)(unsafe.Pointer(bp + 528))).FiRowid)) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27491, libc.VaList(bp+584, (*(*TRtreeCell)(unsafe.Pointer(bp + 528))).FiRowid)) jj = 0 for { if !(jj < int32((*(*TRtree)(unsafe.Pointer(bp + 28))).FnDim2)) { break } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27351, libc.VaList(bp+584, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 528 + 8 + uintptr(jj)*4))))) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27497, libc.VaList(bp+584, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 528 + 8 + uintptr(jj)*4))))) goto _2 _2: ; jj++ } - Xsqlite3_str_append(tls, pOut, __ccgo_ts+27355, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+27501, int32(1)) goto _1 _1: ; @@ -181521,7 +183406,7 @@ func _rtreedepth(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { _ = zBlob _ = nArg if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apArg))) != int32(SQLITE_BLOB) || Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(apArg))) < int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+27357, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+27503, -int32(1)) } else { zBlob = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(apArg))) if zBlob != 0 { @@ -181639,11 +183524,11 @@ func _rtreeCheckAppendMsg(tls *libc.TLS, pCheck uintptr, zFmt uintptr, va uintpt (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } else { if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport != 0 { - v1 = __ccgo_ts + 4203 + v1 = __ccgo_ts + 4267 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27390, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27536, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport == uintptr(0) { (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } @@ -181677,7 +183562,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt _, _, _ = nNode, pNode, pRet pRet = uintptr(0) /* Return value */ if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode == uintptr(0) { - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27397, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27543, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) } if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { Xsqlite3_bind_int64(tls, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, int32(1), iNode) @@ -181694,7 +183579,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt } _rtreeCheckReset(tls, pCheck, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && pRet == uintptr(0) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27442, libc.VaList(bp+8, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27588, libc.VaList(bp+8, iNode)) } } return pRet @@ -181723,8 +183608,8 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i var rc int32 _, _, _, _, _, _ = azSql, ii, pStmt, rc, v1, v2 azSql = [2]uintptr{ - 0: __ccgo_ts + 27474, - 1: __ccgo_ts + 27528, + 0: __ccgo_ts + 27620, + 1: __ccgo_ts + 27674, } _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(pCheck + 24 + uintptr(bLeaf)*4)) == uintptr(0) { @@ -181738,21 +183623,21 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i rc = Xsqlite3_step(tls, pStmt) if rc == int32(SQLITE_DONE) { if bLeaf != 0 { - v1 = __ccgo_ts + 27576 + v1 = __ccgo_ts + 27722 } else { - v1 = __ccgo_ts + 27584 + v1 = __ccgo_ts + 27730 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27593, libc.VaList(bp+8, iKey, iVal, v1)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27739, libc.VaList(bp+8, iKey, iVal, v1)) } else { if rc == int32(SQLITE_ROW) { ii = Xsqlite3_column_int64(tls, pStmt, 0) if ii != iVal { if bLeaf != 0 { - v2 = __ccgo_ts + 27576 + v2 = __ccgo_ts + 27722 } else { - v2 = __ccgo_ts + 27584 + v2 = __ccgo_ts + 27730 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27638, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27784, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) } } } @@ -181797,7 +183682,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 v2 = libc.BoolInt32(*(*TRtreeValue)(unsafe.Pointer(bp)) > *(*TRtreeValue)(unsafe.Pointer(bp + 4))) } if v2 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27696, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27842, libc.VaList(bp+24, i, iCell, iNode)) } if pParent != 0 { _readCoord(tls, pParent+uintptr(libc.Int32FromInt32(4)*libc.Int32FromInt32(2)*i), bp+8) @@ -181815,7 +183700,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 } } if v5 || v4 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27744, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27890, libc.VaList(bp+24, i, iCell, iNode)) } } goto _1 @@ -181850,19 +183735,19 @@ func _rtreeCheckNode(tls *libc.TLS, pCheck uintptr, iDepth int32, aParent uintpt aNode = _rtreeCheckGetNode(tls, pCheck, iNode, bp) if aNode != 0 { if *(*int32)(unsafe.Pointer(bp)) < int32(4) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27811, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27957, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) } else { /* Used to iterate through cells */ if aParent == uintptr(0) { iDepth = _readInt16(tls, aNode) if iDepth > int32(RTREE_MAX_DEPTH) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27845, libc.VaList(bp+16, iDepth)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27991, libc.VaList(bp+16, iDepth)) Xsqlite3_free(tls, aNode) return } } nCell = _readInt16(tls, aNode+2) if int32(4)+nCell*(int32(8)+(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnDim*int32(2)*int32(4)) > *(*int32)(unsafe.Pointer(bp)) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27875, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28021, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) } else { i = 0 for { @@ -181907,12 +183792,12 @@ func _rtreeCheckCount(tls *libc.TLS, pCheck uintptr, zTbl uintptr, nExpect Ti64) var pCount uintptr _, _ = nActual, pCount if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { - pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27930, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) + pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+28076, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) if pCount != 0 { if Xsqlite3_step(tls, pCount) == int32(SQLITE_ROW) { nActual = Xsqlite3_column_int64(tls, pCount, 0) if nActual != nExpect { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27961, libc.VaList(bp+8, zTbl, nExpect, nActual)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28107, libc.VaList(bp+8, zTbl, nExpect, nActual)) } } (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = Xsqlite3_finalize(tls, pCount) @@ -181941,7 +183826,7 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzDb = zDb (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzTab = zTab /* Find the number of auxiliary columns */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28028, libc.VaList(bp+64, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28174, libc.VaList(bp+64, zDb, zTab)) if pStmt != 0 { nAux = Xsqlite3_column_count(tls, pStmt) - int32(2) Xsqlite3_finalize(tls, pStmt) @@ -181951,11 +183836,11 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe } } /* Find number of dimensions in the rtree table. */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25842, libc.VaList(bp+64, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25988, libc.VaList(bp+64, zDb, zTab)) if pStmt != 0 { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim = (Xsqlite3_column_count(tls, pStmt) - int32(1) - nAux) / int32(2) if (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim < int32(1) { - _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28056, 0) + _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28202, 0) } else { if int32(SQLITE_ROW) == Xsqlite3_step(tls, pStmt) { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FbInt = libc.BoolInt32(Xsqlite3_column_type(tls, pStmt, int32(1)) == int32(SQLITE_INTEGER)) @@ -181971,8 +183856,8 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe if (*(*TRtreeCheck)(unsafe.Pointer(bp))).Frc == SQLITE_OK { _rtreeCheckNode(tls, bp, 0, uintptr(0), int64(1)) } - _rtreeCheckCount(tls, bp, __ccgo_ts+28087, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) - _rtreeCheckCount(tls, bp, __ccgo_ts+28094, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28233, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28240, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) } /* Finalize SQL statements used by the integrity-check */ Xsqlite3_finalize(tls, (*(*TRtreeCheck)(unsafe.Pointer(bp))).FpGetNode) @@ -182000,7 +183885,7 @@ func _rtreeIntegrity(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zName uintpt _ = isQuick rc = _rtreeCheckTable(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, pzErr) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28102, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28248, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) if *(*uintptr)(unsafe.Pointer(pzErr)) == uintptr(0) { rc = int32(SQLITE_NOMEM) } @@ -182051,13 +183936,13 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { var _ /* zReport at bp+0 */ uintptr _, _, _, _ = rc, zDb, zTab, v1 if nArg != int32(1) && nArg != int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+28121, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+28267, -int32(1)) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zDb = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg))) if nArg == int32(1) { zTab = zDb - zDb = __ccgo_ts + 6585 + zDb = __ccgo_ts + 6649 } else { zTab = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*4))) } @@ -182066,7 +183951,7 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(bp)) } else { - v1 = __ccgo_ts + 18461 + v1 = __ccgo_ts + 18548 } Xsqlite3_result_text(tls, ctx, v1, -int32(1), uintptr(-libc.Int32FromInt32(1))) } else { @@ -182399,6 +184284,7 @@ func _geopolyParseJson(tls *libc.TLS, z uintptr, pRc uintptr) (r uintptr) { rc = int32(SQLITE_ERROR) } } + goto parse_json_err parse_json_err: ; if pRc != 0 { @@ -182532,19 +184418,19 @@ func _geopolyJsonFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if p != 0 { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) - Xsqlite3_str_append(tls, x, __ccgo_ts+25095, int32(1)) + Xsqlite3_str_append(tls, x, __ccgo_ts+25224, int32(1)) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28172, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28318, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28183, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28329, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -182573,20 +184459,20 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) cSep = int8('\'') - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28194, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28340, 0) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28212, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28358, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) cSep = int8(' ') goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28220, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28366, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) i = int32(1) for { if !(i < argc) { @@ -182594,14 +184480,14 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*4))) if z != 0 && *(*int8)(unsafe.Pointer(z)) != 0 { - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28228, libc.VaList(bp+8, z)) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28374, libc.VaList(bp+8, z)) } goto _2 _2: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28232, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28378, 0) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -182907,6 +184793,7 @@ func _geopolyBBox(tls *libc.TLS, context uintptr, pPoly uintptr, aCoord uintptr, if !(aCoord == uintptr(0)) { goto _6 } + goto geopolyBboxFill geopolyBboxFill: ; pOut = Xsqlite3_realloc64(tls, p, uint64(libc.Uint32FromInt64(40)+libc.Uint32FromInt64(4)*libc.Uint32FromInt32(2)*uint32(libc.Int32FromInt32(4)-libc.Int32FromInt32(4)))) @@ -183010,8 +184897,8 @@ func _geopolyBBoxStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if pBBox == uintptr(0) { return } - if (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit == 0 { - (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit = int32(1) + if libc.AtomicLoadPInt32(pBBox) == 0 { + libc.AtomicStorePInt32(pBBox, int32(1)) libc.Xmemcpy(tls, pBBox+4, bp, libc.Uint32FromInt64(4)*libc.Uint32FromInt32(4)) } else { if *(*TRtreeValue)(unsafe.Pointer(bp)) < *(*TRtreeValue)(unsafe.Pointer(pBBox + 4)) { @@ -183638,6 +185525,7 @@ func _geopolyOverlap(tls *libc.TLS, p1 uintptr, p2 uintptr) (r int32) { } } } + goto geopolyOverlapDone geopolyOverlapDone: ; Xsqlite3_free(tls, p) @@ -183729,13 +185617,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*4)), uint32(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*4)), uint32(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*4)), uint32(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27285, uint32(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27431, uint32(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28245, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28391, 0) (*TRtree)(unsafe.Pointer(pRtree)).FnAux = uint8(1) /* Add one for _shape */ (*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull = uint8(1) /* The _shape column is always not-null */ ii = int32(3) @@ -183744,13 +185632,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint break } (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28267, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*4)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28413, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*4)))) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27342, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27488, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) @@ -183758,7 +185646,7 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint v2 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v2 if SQLITE_OK != v2 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } Xsqlite3_free(tls, zSql) @@ -183773,11 +185661,12 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*4)), *(*uintptr)(unsafe.Pointer(argv + 2*4)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto geopolyInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto geopolyInit_fail geopolyInit_fail: ; if rc == SQLITE_OK { @@ -183931,6 +185820,7 @@ func _geopolyFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uin *(*int32)(unsafe.Pointer(bp + 4)) = _rtreeStepToLeaf(tls, pCsr) } } + goto geopoly_filter_end geopoly_filter_end: ; _nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp))) @@ -183988,7 +185878,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iRowidTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(1) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16694 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16781 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).Fomit = uint8(1) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(30) @@ -183998,7 +185888,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iFuncTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = idxNum - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28271 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28417 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).Fomit = uint8(0) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(300) @@ -184006,7 +185896,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { return SQLITE_OK } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(4) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28277 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28423 (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(3e+06) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(100000) return SQLITE_OK @@ -184128,7 +186018,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR _geopolyBBox(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(aData + 2*4)), bp+4+8, bp) if *(*int32)(unsafe.Pointer(bp)) != 0 { if *(*int32)(unsafe.Pointer(bp)) == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28286, 0) + (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28432, 0) } goto geopoly_update_end } @@ -184216,6 +186106,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, pUp) } } + goto geopoly_update_end geopoly_update_end: ; _rtreeRelease(tls, pRtree) @@ -184231,12 +186122,12 @@ geopoly_update_end: func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28326) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28472) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28342) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28488) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) @@ -184307,7 +186198,7 @@ func _sqlite3_geopoly_init(tls *libc.TLS, db uintptr) (r int32) { i++ } if rc == SQLITE_OK { - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28519, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28665, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) } return rc } @@ -184321,61 +186212,61 @@ var _aFunc = [12]struct { 0: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28357, + FzName: __ccgo_ts + 28503, }, 1: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28370, + FzName: __ccgo_ts + 28516, }, 2: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28383, + FzName: __ccgo_ts + 28529, }, 3: { FnArg: int8(-int32(1)), FbPure: uint8(1), - FzName: __ccgo_ts + 28396, + FzName: __ccgo_ts + 28542, }, 4: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28342, + FzName: __ccgo_ts + 28488, }, 5: { FnArg: int8(3), FbPure: uint8(1), - FzName: __ccgo_ts + 28408, + FzName: __ccgo_ts + 28554, }, 6: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28326, + FzName: __ccgo_ts + 28472, }, 7: { FnArg: int8(1), - FzName: __ccgo_ts + 28431, + FzName: __ccgo_ts + 28577, }, 8: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28445, + FzName: __ccgo_ts + 28591, }, 9: { FnArg: int8(7), FbPure: uint8(1), - FzName: __ccgo_ts + 28458, + FzName: __ccgo_ts + 28604, }, 10: { FnArg: int8(4), FbPure: uint8(1), - FzName: __ccgo_ts + 28472, + FzName: __ccgo_ts + 28618, }, 11: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28488, + FzName: __ccgo_ts + 28634, }, } @@ -184401,7 +186292,7 @@ var _aAgg = [1]struct { FzName uintptr }{ 0: { - FzName: __ccgo_ts + 28500, + FzName: __ccgo_ts + 28646, }, } @@ -184426,20 +186317,20 @@ func _sqlite3RtreeInit(tls *libc.TLS, db uintptr) (r int32) { var rc, utf8 int32 _, _, _, _ = c, c1, rc, utf8 utf8 = int32(SQLITE_UTF8) - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28527, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28673, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28537, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28683, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28548, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28694, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { c = libc.UintptrFromInt32(RTREE_COORD_REAL32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28271, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28417, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) } if rc == SQLITE_OK { c1 = libc.UintptrFromInt32(RTREE_COORD_INT32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28559, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28705, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) } if rc == SQLITE_OK { rc = _sqlite3_geopoly_init(tls, db) @@ -184541,7 +186432,7 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { Xsqlite3_result_error_nomem(tls, ctx) _rtreeMatchArgFree(tls, pBlob) } else { - Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25828, __ccgo_fp(_rtreeMatchArgFree)) + Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25974, __ccgo_fp(_rtreeMatchArgFree)) } } } @@ -185758,7 +187649,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt /* Figure out the size of the output */ nOut = _rbuDeltaOutputSize(tls, aDelta, nDelta) if nOut < 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+28569, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28715, -int32(1)) return } aOut = Xsqlite3_malloc(tls, nOut+int32(1)) @@ -185768,7 +187659,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt nOut2 = _rbuDeltaApply(tls, aOrig, nOrig, aDelta, nDelta, aOut) if nOut2 != nOut { Xsqlite3_free(tls, aOut) - Xsqlite3_result_error(tls, context, __ccgo_ts+28569, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28715, -int32(1)) } else { Xsqlite3_result_blob(tls, context, aOut, nOut, __ccgo_fp(Xsqlite3_free)) } @@ -185794,7 +187685,7 @@ func _prepareAndCollectError(tls *libc.TLS, db uintptr, ppStmt uintptr, pzErrmsg _ = rc rc = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), ppStmt, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) } return rc @@ -185817,7 +187708,7 @@ func _resetAndCollectError(tls *libc.TLS, pStmt uintptr, pzErrmsg uintptr) (r in _ = rc rc = Xsqlite3_reset(tls, pStmt) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) } return rc } @@ -185950,7 +187841,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { /* Free any SQLite statements used while processing the previous object */ _rbuObjIterClearStatements(tls, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28590, uintptr(0), uintptr(0), p+36) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28736, uintptr(0), uintptr(0), p+36) } if rc == SQLITE_OK { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 { @@ -185960,6 +187851,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { if rc != int32(SQLITE_ROW) { rc = _resetAndCollectError(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, p+36) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = uintptr(0) + (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = uintptr(0) } else { (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, 0) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, int32(1)) @@ -186040,7 +187932,7 @@ func _rbuTargetNameFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { Xsqlite3_result_text(tls, pCtx, zIn, -int32(1), libc.UintptrFromInt32(0)) } } else { - if libc.Xstrlen(tls, zIn) > uint32(4) && libc.Xmemcmp(tls, __ccgo_ts+25741, zIn, uint32(4)) == 0 { + if libc.Xstrlen(tls, zIn) > uint32(4) && libc.Xmemcmp(tls, __ccgo_ts+25887, zIn, uint32(4)) == 0 { i = int32(4) for { if !(int32(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))) <= int32('9')) { @@ -186077,13 +187969,13 @@ func _rbuObjIterFirst(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { _, _ = rc, v1 libc.Xmemset(tls, pIter, 0, uint32(108)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 28761 + v1 = __ccgo_ts + 28907 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+28802, libc.VaList(bp+8, v1))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+28948, libc.VaList(bp+8, v1))) if rc == SQLITE_OK { - rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+4, p+36, __ccgo_ts+28952) + rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+4, p+36, __ccgo_ts+29098) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup = int32(1) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -186251,7 +188143,7 @@ func _rbuFinalize(tls *libc.TLS, p uintptr, pStmt uintptr) { rc = Xsqlite3_finalize(tls, pStmt) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && rc != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } @@ -186313,7 +188205,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu *(*int32)(unsafe.Pointer(peType)) = RBU_PK_NOTABLE *(*int32)(unsafe.Pointer(piPk)) = 0 _ = libc.Int32FromInt32(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29077, libc.VaList(bp+24, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29223, libc.VaList(bp+24, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK || Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0]) != int32(SQLITE_ROW) { /* Either an error, or no such table. */ goto rbuTableType_end @@ -186323,7 +188215,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } *(*int32)(unsafe.Pointer(piTnum)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0], int32(1)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29196, libc.VaList(bp+24, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29342, libc.VaList(bp+24, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { goto rbuTableType_end } @@ -186331,7 +188223,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu zOrig = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(3)) zIdx = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(1)) if zOrig != 0 && zIdx != 0 && int32(*(*Tu8)(unsafe.Pointer(zOrig))) == int32('p') { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29217, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29363, libc.VaList(bp+24, zIdx))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)]) == int32(SQLITE_ROW) { *(*int32)(unsafe.Pointer(piPk)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)], 0) @@ -186343,7 +188235,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29268, libc.VaList(bp+24, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29414, libc.VaList(bp+24, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { for Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)]) == int32(SQLITE_ROW) { if Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)], int32(5)) > 0 { @@ -186353,6 +188245,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu } *(*int32)(unsafe.Pointer(peType)) = int32(RBU_PK_NONE) } + goto rbuTableType_end rbuTableType_end: ; i = uint32(0) @@ -186386,7 +188279,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { bIndex = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { libc.Xmemcpy(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk, uint32(1)*uint32((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29289, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29435, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FnIndex = 0 for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -186399,7 +188292,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { if bPartial != 0 { libc.Xmemset(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, int32(0x01), uint32(1)*uint32((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+16, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+16, zIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 4)), int32(1)) if iCid >= 0 { @@ -186453,7 +188346,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 _rbuTableType(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, pIter+36, bp+4, pIter+60) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NOTABLE { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+19904, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+20036, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc @@ -186465,7 +188358,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 /* Populate the azTblCol[] and nTblCol variables based on the columns ** of the input table. Ignore any input table columns that begin with ** "rbu_". */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29346, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29492, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { nCol = Xsqlite3_column_count(tls, *(*uintptr)(unsafe.Pointer(bp))) _rbuAllocateIterArrays(tls, p, pIter, nCol) @@ -186476,7 +188369,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 break } zName = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), i) - if Xsqlite3_strnicmp(tls, __ccgo_ts+29365, zName, int32(4)) != 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+29511, zName, int32(4)) != 0 { zCopy = _rbuStrndup(tls, zName, p+32) *(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)*4)) = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol v3 = pIter + 8 @@ -186484,7 +188377,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 *(*int32)(unsafe.Pointer(v3))++ *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(v2)*4)) = zCopy } else { - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29370, zName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29516, zName) { bRbuRowid = int32(1) } } @@ -186498,17 +188391,17 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && bRbuRowid != libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) if bRbuRowid != 0 { - v4 = __ccgo_ts + 29380 + v4 = __ccgo_ts + 29526 } else { - v4 = __ccgo_ts + 29393 + v4 = __ccgo_ts + 29539 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29402, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29548, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) } /* Check that all non-HIDDEN columns in the destination table are also ** present in the input table. Populate the abTblPk[], azTblType[] and ** aiTblOrder[] arrays at the same time. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29431, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29577, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zName1 = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -186530,7 +188423,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 } if i == (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29453, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29599, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) } else { iPk = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) bNotNull = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) @@ -186572,15 +188465,15 @@ func _rbuObjIterGetCollist(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) var z, zList, zSep uintptr _, _, _, _ = i, z, zList, zSep zList = uintptr(0) - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } z = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+29480, libc.VaList(bp+8, zList, zSep, z)) - zSep = __ccgo_ts + 14990 + zList = _rbuMPrintf(tls, p, __ccgo_ts+29626, libc.VaList(bp+8, zList, zSep, z)) + zSep = __ccgo_ts + 15083 goto _1 _1: ; @@ -186605,7 +188498,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, _, _, _, _, _ = i, iPk, zCol, zRet, zSep iPk = int32(1) zRet = uintptr(0) - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 for int32(1) != 0 { i = 0 for { @@ -186614,7 +188507,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, } if int32(*(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == iPk { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29489, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29635, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) zSep = zSeparator break } @@ -186662,21 +188555,21 @@ func _rbuVacuumTableStart(tls *libc.TLS, p uintptr, pIter uintptr, bRowid int32, *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zRet = uintptr(0) if bRowid != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29502, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29648, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iMax = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29534, libc.VaList(bp+16, iMax)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29680, libc.VaList(bp+16, iMax)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1648, __ccgo_ts+14990, __ccgo_ts+29557) - zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29563, __ccgo_ts+29570, __ccgo_ts+5106) - zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1648, __ccgo_ts+14990, __ccgo_ts+1648) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1662, __ccgo_ts+15083, __ccgo_ts+29703) + zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29709, __ccgo_ts+29716, __ccgo_ts+5170) + zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1662, __ccgo_ts+15083, __ccgo_ts+1662) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29578, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29724, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zVal = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29620, libc.VaList(bp+16, zList, zVal)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29766, libc.VaList(bp+16, zList, zVal)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } @@ -186725,10 +188618,10 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { zVector = uintptr(0) zRet = uintptr(0) bFailed = 0 - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 iCol = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(4)) @@ -186751,15 +188644,15 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _ = libc.Int32FromInt32(0) zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)) } else { - zCol = __ccgo_ts + 29640 + zCol = __ccgo_ts + 29786 } } else { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*4)) } - zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29648, libc.VaList(bp+16, zLhs, zSep, zCol, zCollate)) - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29669, libc.VaList(bp+16, zOrder, zSep, iCol, zCol, zCollate)) - zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29705, libc.VaList(bp+16, zSelect, zSep, iCol, zCol)) - zSep = __ccgo_ts + 14990 + zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29794, libc.VaList(bp+16, zLhs, zSep, zCol, zCollate)) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29815, libc.VaList(bp+16, zOrder, zSep, iCol, zCol, zCollate)) + zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29851, libc.VaList(bp+16, zSelect, zSep, iCol, zCol)) + zSep = __ccgo_ts + 15083 iCol++ } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) @@ -186768,9 +188661,9 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29732, libc.VaList(bp+16, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29878, libc.VaList(bp+16, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) { - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 iCol = 0 for { if !(iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol) { @@ -186785,19 +188678,20 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { break } } - zVector = _rbuMPrintf(tls, p, __ccgo_ts+29780, libc.VaList(bp+16, zVector, zSep, zQuoted)) - zSep = __ccgo_ts + 14990 + zVector = _rbuMPrintf(tls, p, __ccgo_ts+29926, libc.VaList(bp+16, zVector, zSep, zQuoted)) + zSep = __ccgo_ts + 15083 goto _2 _2: ; iCol++ } if !(bFailed != 0) { - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29787, libc.VaList(bp+16, zLhs, zVector)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29933, libc.VaList(bp+16, zLhs, zVector)) } } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 4))) } + goto index_start_out index_start_out: ; Xsqlite3_free(tls, zOrder) @@ -186846,12 +188740,12 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zImpPK = uintptr(0) /* String to return via *pzImposterPK */ zWhere = uintptr(0) /* String to return via *pzWhere */ nBind = 0 /* Value to return via *pnBind */ - zCom = __ccgo_ts + 1648 /* Set to ", " later on */ - zAnd = __ccgo_ts + 1648 /* Set to " AND " later on */ + zCom = __ccgo_ts + 1662 /* Set to ", " later on */ + zAnd = __ccgo_ts + 1662 /* Set to " AND " later on */ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_xinfo = ? */ if rc == SQLITE_OK { _ = libc.Int32FromInt32(0) - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -186860,8 +188754,8 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = uintptr(0) if iCid == -int32(2) { iSeq = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29799, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*8))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*8))).FzSpan, zCollate)) - zType = __ccgo_ts + 1648 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29945, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*8))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*8))).FzSpan, zCollate)) + zType = __ccgo_ts + 1662 } else { if iCid < 0 { /* An integer primary key. If the table has an explicit IPK, use @@ -186881,9 +188775,9 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)) } else { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - zCol = __ccgo_ts + 29640 + zCol = __ccgo_ts + 29786 } else { - zCol = __ccgo_ts + 29370 + zCol = __ccgo_ts + 29516 } } zType = __ccgo_ts + 1136 @@ -186891,24 +188785,24 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*4)) zType = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*4)) } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29821, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29967, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) } if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbUnique == 0 || Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) != 0 { if bDesc != 0 { - v2 = __ccgo_ts + 29557 + v2 = __ccgo_ts + 29703 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } zOrder = v2 - zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29841, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) + zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29987, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) } - zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+29862, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) - zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+29895, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) + zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+30008, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) + zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+30041, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) if zRet == uintptr(0) || zImpPK == uintptr(0) || zImpCols == uintptr(0) || zWhere == uintptr(0) { rc = int32(SQLITE_NOMEM) } - zCom = __ccgo_ts + 14990 - zAnd = __ccgo_ts + 22013 + zCom = __ccgo_ts + 15083 + zAnd = __ccgo_ts + 22158 nBind++ } rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -186954,7 +188848,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr _, _, _, _ = i, zCol, zList, zS zList = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zS = __ccgo_ts + 1648 + zS = __ccgo_ts + 1662 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -186962,11 +188856,11 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed + uintptr(i))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)) - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29919, libc.VaList(bp+8, zList, zS, zObj, zCol)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30065, libc.VaList(bp+8, zList, zS, zObj, zCol)) } else { - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29931, libc.VaList(bp+8, zList, zS)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30077, libc.VaList(bp+8, zList, zS)) } - zS = __ccgo_ts + 14990 + zS = __ccgo_ts + 15083 if zList == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) break @@ -186978,7 +188872,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } /* For a table with implicit rowids, append "old._rowid_" to the list. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29940, libc.VaList(bp+8, zList, zObj)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30086, libc.VaList(bp+8, zList, zObj)) } } return zList @@ -187004,27 +188898,27 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _ = i, i1, zCol, zList, zSep, zSep1 zList = uintptr(0) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29955, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30101, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29969, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) - zSep = __ccgo_ts + 22013 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30115, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) + zSep = __ccgo_ts + 22158 } goto _1 _1: ; i++ } - zList = _rbuMPrintf(tls, p, __ccgo_ts+29981, libc.VaList(bp+8, zList)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30127, libc.VaList(bp+8, zList)) } else { - zSep1 = __ccgo_ts + 1648 + zSep1 = __ccgo_ts + 1662 i1 = 0 for { if !(i1 < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -187032,8 +188926,8 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i1))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i1)*4)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+30031, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) - zSep1 = __ccgo_ts + 22013 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30177, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) + zSep1 = __ccgo_ts + 22158 } goto _2 _2: @@ -187056,7 +188950,7 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { // */ func _rbuBadControlError(tls *libc.TLS, p uintptr) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30044, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30190, 0) } // C documentation @@ -187090,7 +188984,7 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt if int32(libc.Xstrlen(tls, zMask)) != (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { _rbuBadControlError(tls, p) } else { - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -187098,16 +188992,16 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt } c = *(*int8)(unsafe.Pointer(zMask + uintptr(*(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(i)*4))))) if int32(c) == int32('x') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30031, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), i+int32(1))) - zSep = __ccgo_ts + 14990 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30177, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), i+int32(1))) + zSep = __ccgo_ts + 15083 } else { if int32(c) == int32('d') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30070, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), i+int32(1))) - zSep = __ccgo_ts + 14990 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30216, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), i+int32(1))) + zSep = __ccgo_ts + 15083 } else { if int32(c) == int32('f') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30100, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), i+int32(1))) - zSep = __ccgo_ts + 14990 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30246, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), i+int32(1))) + zSep = __ccgo_ts + 15083 } } } @@ -187192,16 +189086,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { z = uintptr(0) _ = libc.Int32FromInt32(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zSep = __ccgo_ts + 30137 + zSep = __ccgo_ts + 30283 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_list = (pIter->zTbl) */ *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) /* PRAGMA index_xinfo = */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29289, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29435, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zOrig = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) - if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16582) == 0 { + if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16669) == 0 { zIdx = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+16, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+16, zIdx))) } break } @@ -187212,16 +189106,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { /* int iCid = sqlite3_column_int(pXInfo, 0); */ zCol = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 4)), int32(2)) if Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 4)), int32(3)) != 0 { - v1 = __ccgo_ts + 29557 + v1 = __ccgo_ts + 29703 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } zDesc = v1 - z = _rbuMPrintf(tls, p, __ccgo_ts+30150, libc.VaList(bp+16, z, zSep, zCol, zDesc)) - zSep = __ccgo_ts + 14990 + z = _rbuMPrintf(tls, p, __ccgo_ts+30296, libc.VaList(bp+16, z, zSep, zCol, zDesc)) + zSep = __ccgo_ts + 15083 } } - z = _rbuMPrintf(tls, p, __ccgo_ts+30161, libc.VaList(bp+16, z)) + z = _rbuMPrintf(tls, p, __ccgo_ts+30307, libc.VaList(bp+16, z)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 4))) } return z @@ -187261,13 +189155,13 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* SELECT name ... WHERE rootpage = $tnum */ zIdx = uintptr(0) /* Name of PK index */ *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) /* PRAGMA main.index_xinfo = $zIdx */ - zComma = __ccgo_ts + 1648 + zComma = __ccgo_ts + 1662 zCols = uintptr(0) /* Used to build up list of table cols */ zPk = uintptr(0) /* Used to build up table PK declaration */ /* Figure out the name of the primary key index for the current table. ** This is needed for the argument to "PRAGMA index_xinfo". Set ** zIdx to point to a nul-terminated string containing this name. */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, __ccgo_ts+30165) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, __ccgo_ts+30311) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), tnum) if int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -187275,7 +189169,7 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { } } if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+16, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+16, zIdx))) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) { @@ -187284,21 +189178,21 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 4)), int32(1)) bDesc = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 4)), int32(3)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 4)), int32(4)) - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30215, libc.VaList(bp+16, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*4)), zCollate)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30361, libc.VaList(bp+16, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*4)), zCollate)) if bDesc != 0 { - v1 = __ccgo_ts + 29557 + v1 = __ccgo_ts + 29703 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - zPk = _rbuMPrintf(tls, p, __ccgo_ts+30237, libc.VaList(bp+16, zPk, zComma, iCid, v1)) - zComma = __ccgo_ts + 14990 + zPk = _rbuMPrintf(tls, p, __ccgo_ts+30383, libc.VaList(bp+16, zPk, zComma, iCid, v1)) + zComma = __ccgo_ts + 15083 } } - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30247, libc.VaList(bp+16, zCols)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30393, libc.VaList(bp+16, zCols)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 4))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30262, libc.VaList(bp+16, zCols, zPk)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30408, libc.VaList(bp+16, zCols, zPk)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, 0)) } } @@ -187333,30 +189227,30 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { _, _, _, _, _, _, _, _, _ = iCol, tnum, zCol, zComma, zPk, zPk1, zSql, v2, v3 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { tnum = (*TRbuObjIter)(unsafe.Pointer(pIter)).FiTnum - zComma = __ccgo_ts + 1648 + zComma = __ccgo_ts + 1662 zSql = uintptr(0) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, int32(1))) iCol = 0 for { if !((*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } - zPk = __ccgo_ts + 1648 + zPk = __ccgo_ts + 1662 zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCol)*4)) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_IPK) && *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(iCol))) != 0 { /* If the target table column is an "INTEGER PRIMARY KEY", add ** "PRIMARY KEY" to the imposter table column declaration. */ - zPk = __ccgo_ts + 30324 + zPk = __ccgo_ts + 30470 } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iCol))) != 0 { - v2 = __ccgo_ts + 30337 + v2 = __ccgo_ts + 30483 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30347, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*4)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) - zComma = __ccgo_ts + 14990 + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30493, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*4)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) + zComma = __ccgo_ts + 15083 goto _1 _1: ; @@ -187365,17 +189259,17 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { zPk1 = _rbuWithoutRowidPK(tls, p, pIter) if zPk1 != 0 { - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30374, libc.VaList(bp+16, zSql, zPk1)) + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30520, libc.VaList(bp+16, zSql, zPk1)) } } - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(1), tnum)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(1), tnum)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { - v3 = __ccgo_ts + 30381 + v3 = __ccgo_ts + 30527 } else { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30396, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, 0)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30542, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, 0)) } } @@ -187402,7 +189296,7 @@ func _rbuObjIterPrepareTmpInsert(tls *libc.TLS, p uintptr, pIter uintptr, zColli zBind = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1)+bRbuRowid) if zBind != 0 { _ = libc.Int32FromInt32(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+88, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+30428, libc.VaList(bp+8, p+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+88, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+30574, libc.VaList(bp+8, p+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) } } @@ -187450,7 +189344,7 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt zRet = uintptr(0) _ = libc.Int32FromInt32(0) if *(*int32)(unsafe.Pointer(bp + 4)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp + 4)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, __ccgo_ts+30485) + *(*int32)(unsafe.Pointer(bp + 4)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, __ccgo_ts+30631) } if *(*int32)(unsafe.Pointer(bp + 4)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp + 4)) = Xsqlite3_bind_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx, -int32(1), libc.UintptrFromInt32(0)) @@ -187621,7 +189515,7 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zIdx = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx zLimit = uintptr(0) if nOffset != 0 { - zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30551, libc.VaList(bp+24, nOffset)) + zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30697, libc.VaList(bp+24, nOffset)) if !(zLimit != 0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } @@ -187639,18 +189533,18 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zCollist = _rbuObjIterGetIndexCols(tls, p, pIter, bp, bp+4, bp+8, bp+12) zBind = _rbuObjIterGetBindlist(tls, p, *(*int32)(unsafe.Pointer(bp + 12))) /* Create the imposter table used to write to this index. */ - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, int32(1))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30571, libc.VaList(bp+24, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 4)))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30717, libc.VaList(bp+24, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 4)))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, 0)) /* Create the statement to insert index entries */ (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = *(*int32)(unsafe.Pointer(bp + 12)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+80, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+30636, libc.VaList(bp+24, zTbl, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+80, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+30782, libc.VaList(bp+24, zTbl, zBind))) } /* And to delete index entries */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+84, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+30672, libc.VaList(bp+24, zTbl, *(*uintptr)(unsafe.Pointer(bp + 8))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+84, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+30818, libc.VaList(bp+24, zTbl, *(*uintptr)(unsafe.Pointer(bp + 8))))) } /* Create the SELECT statement to read keys in sorted order */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -187665,26 +189559,26 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } if zStart != 0 { if zPart != 0 { - v2 = __ccgo_ts + 30706 + v2 = __ccgo_ts + 30852 } else { - v2 = __ccgo_ts + 30710 + v2 = __ccgo_ts + 30856 } v1 = v2 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30716, libc.VaList(bp+24, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30862, libc.VaList(bp+24, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) Xsqlite3_free(tls, zStart) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30777, libc.VaList(bp+24, zCollist, p+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30923, libc.VaList(bp+24, zCollist, p+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) } else { if zPart != 0 { - v3 = __ccgo_ts + 30706 + v3 = __ccgo_ts + 30852 } else { - v3 = __ccgo_ts + 30710 + v3 = __ccgo_ts + 30856 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30838, libc.VaList(bp+24, zCollist, p+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30984, libc.VaList(bp+24, zCollist, p+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -187703,62 +189597,62 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zTbl1 = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl /* Imposter table name */ zBindings = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+bRbuRowid) zWhere1 = _rbuObjIterGetWhere(tls, p, pIter) - zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6596) - zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6592) + zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6660) + zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6656) zCollist = _rbuObjIterGetCollist(tls, p, pIter) (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol /* Create the imposter table or tables (if required). */ _rbuCreateImposterTable(tls, p, pIter) _rbuCreateImposterTable2(tls, p, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) { - v4 = __ccgo_ts + 1648 + v4 = __ccgo_ts + 1662 } else { - v4 = __ccgo_ts + 30997 + v4 = __ccgo_ts + 31143 } zWrite = v4 /* Create the INSERT statement to write to the target PK b-tree */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if bRbuRowid != 0 { - v5 = __ccgo_ts + 31006 + v5 = __ccgo_ts + 31152 } else { - v5 = __ccgo_ts + 1648 + v5 = __ccgo_ts + 1662 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+80, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31016, libc.VaList(bp+24, zWrite, zTbl1, zCollist, v5, zBindings))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+80, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31162, libc.VaList(bp+24, zWrite, zTbl1, zCollist, v5, zBindings))) } /* Create the DELETE statement to write to the target PK b-tree. ** Because it only performs INSERT operations, this is not required for ** an rbu vacuum handle. */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+84, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31052, libc.VaList(bp+24, zWrite, zTbl1, zWhere1))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+84, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31198, libc.VaList(bp+24, zWrite, zTbl1, zWhere1))) } if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zRbuRowid = __ccgo_ts + 1648 + zRbuRowid = __ccgo_ts + 1662 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zRbuRowid = __ccgo_ts + 31080 + zRbuRowid = __ccgo_ts + 31226 } /* Create the rbu_tmp_xxx table and the triggers to populate it. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - v6 = __ccgo_ts + 31092 + v6 = __ccgo_ts + 31238 } else { - v6 = __ccgo_ts + 1648 + v6 = __ccgo_ts + 1662 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31109, libc.VaList(bp+24, p+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31185, libc.VaList(bp+24, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31255, libc.VaList(bp+24, p+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31331, libc.VaList(bp+24, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31484, libc.VaList(bp+24, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31630, libc.VaList(bp+24, zWrite, zTbl1, zNewlist)) } _rbuObjIterPrepareTmpInsert(tls, p, pIter, zCollist, zRbuRowid) } /* Create the SELECT statement to read keys from data_xxx */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zRbuRowid1 = __ccgo_ts + 1648 + zRbuRowid1 = __ccgo_ts + 1662 zStart1 = uintptr(0) zOrder = uintptr(0) if bRbuRowid != 0 { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v7 = __ccgo_ts + 31583 + v7 = __ccgo_ts + 31729 } else { - v7 = __ccgo_ts + 31593 + v7 = __ccgo_ts + 31739 } zRbuRowid1 = v7 } @@ -187771,28 +189665,28 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } } if bRbuRowid != 0 { - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29640, 0) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29786, 0) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1648, __ccgo_ts+14990, __ccgo_ts+1648) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1662, __ccgo_ts+15083, __ccgo_ts+1662) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v8 = __ccgo_ts + 31604 + v8 = __ccgo_ts + 31750 } else { - v8 = __ccgo_ts + 1648 + v8 = __ccgo_ts + 1662 } if zStart1 != 0 { v9 = zStart1 } else { - v9 = __ccgo_ts + 1648 + v9 = __ccgo_ts + 1662 } if zOrder != 0 { - v10 = __ccgo_ts + 23207 + v10 = __ccgo_ts + 23352 } else { - v10 = __ccgo_ts + 1648 + v10 = __ccgo_ts + 1662 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+76, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31610, libc.VaList(bp+24, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+76, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31756, libc.VaList(bp+24, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) } Xsqlite3_free(tls, zStart1) Xsqlite3_free(tls, zOrder) @@ -187879,11 +189773,11 @@ func _rbuGetUpdateStmt(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintptr, p (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpNext = (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate = pUp if zSet != 0 { - zPrefix = __ccgo_ts + 1648 + zPrefix = __ccgo_ts + 1662 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { - zPrefix = __ccgo_ts + 30997 + zPrefix = __ccgo_ts + 31143 } - zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31658, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) + zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31804, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pUp+4, p+36, zUpdate) *(*uintptr)(unsafe.Pointer(ppStmt)) = (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate } @@ -187910,7 +189804,7 @@ func _rbuOpenDbhandle(tls *libc.TLS, p uintptr, zName uintptr, bUseVfs int32) (r } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_open_v2(tls, zName, bp, flags, v1) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) Xsqlite3_close(tls, *(*uintptr)(unsafe.Pointer(bp))) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) } @@ -187957,7 +189851,7 @@ func _rbuLoadState(tls *libc.TLS, p uintptr) (r uintptr) { if pRet == uintptr(0) { return uintptr(0) } - *(*int32)(unsafe.Pointer(bp + 4)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+31688, libc.VaList(bp+16, p+24))) + *(*int32)(unsafe.Pointer(bp + 4)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+31834, libc.VaList(bp+16, p+24))) for *(*int32)(unsafe.Pointer(bp + 4)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { switch Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) { case int32(RBU_STATE_STAGE): @@ -188019,27 +189913,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu = _rbuOpenDbhandle(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, int32(1)) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain = dbMain if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6585, int32(SQLITE_FCNTL_RBUCNT), p) + Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6649, int32(SQLITE_FCNTL_RBUCNT), p) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState == uintptr(0) { - zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6585) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31718, libc.VaList(bp+8, zFile, zFile)) + zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6649) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31864, libc.VaList(bp+8, zFile, zFile)) } } /* If using separate RBU and state databases, attach the state database to ** the RBU db handle now. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState != 0 { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31746, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) - libc.Xmemcpy(tls, p+24, __ccgo_ts+3418, uint32(4)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31892, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) + libc.Xmemcpy(tls, p+24, __ccgo_ts+3482, uint32(4)) } else { - libc.Xmemcpy(tls, p+24, __ccgo_ts+6585, uint32(4)) + libc.Xmemcpy(tls, p+24, __ccgo_ts+6649, uint32(4)) } /* If it has not already been created, create the rbu_state table */ - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31764, libc.VaList(bp+8, p+24)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31910, libc.VaList(bp+8, p+24)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { bOpen = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FnRbu = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FpRbuFd = uintptr(0) - rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6585, int32(SQLITE_FCNTL_RBUCNT), p) + rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6649, int32(SQLITE_FCNTL_RBUCNT), p) if rc != int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc } @@ -188072,10 +189966,10 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) return } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31830, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31976, 0) } else { zExtra = uintptr(0) - if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24596, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint32(5)) { + if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24719, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint32(5)) { zExtra = (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu + 5 for *(*int8)(unsafe.Pointer(zExtra)) != 0 { v1 = zExtra @@ -188089,16 +189983,16 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if zExtra == uintptr(0) { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } else { - v2 = __ccgo_ts + 31862 + v2 = __ccgo_ts + 32008 } if zExtra == uintptr(0) { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } else { v3 = zExtra } - zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+31864, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6585), v2, v3)) + zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+32010, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6649), v2, v3)) if zTarget == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) return @@ -188109,27 +190003,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31896, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32042, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31911, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32057, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31928, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32074, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(SQLITE_FCNTL_RBU), p) } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31944, 0) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32090, 0) /* Mark the database file just opened as an RBU target database. If ** this call returns SQLITE_NOTFOUND, then the RBU vfs is not in use. ** This is an error. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(SQLITE_FCNTL_RBU), p) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31972, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32118, 0) } } @@ -188179,7 +190073,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxShmMap})))(tls, pDb, 0, libc.Int32FromInt32(32)*libc.Int32FromInt32(1024), 0, bp) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - iRet = int64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))<= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+32972, zState+uintptr(n-int32(7)), uint32(7)) { + if n >= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+33118, zState+uintptr(n-int32(7)), uint32(7)) { return _rbuMisuseError(tls) } } @@ -189421,7 +191315,7 @@ func _rbuEditErrmsg(tls *libc.TLS, p uintptr) { if !(i < nErrmsg-uint32(8)) { break } - if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+30997, uint32(8)) == 0 { + if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31143, uint32(8)) == 0 { nDel = int32(8) for int32(*(*int8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) >= int32('0') && int32(*(*int8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) <= int32('9') { nDel++ @@ -189449,7 +191343,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { if p != 0 { /* Commit the transaction to the *-oal file. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14894, uintptr(0), uintptr(0), p+36) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14987, uintptr(0), uintptr(0), p+36) } /* Sync the db file if currently doing an incremental checkpoint */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { @@ -189458,7 +191352,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { } _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14894, uintptr(0), uintptr(0), p+36) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14987, uintptr(0), uintptr(0), p+36) } /* Close any open statement handles. */ _rbuObjIterFinalize(tls, p+48) @@ -189468,7 +191362,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { ** specifying the current target and state databases to start a new ** vacuum from scratch. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu != 0 { - rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32980, uintptr(0), uintptr(0), uintptr(0)) + rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33126, uintptr(0), uintptr(0), uintptr(0)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_DONE) && rc2 != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc2 } @@ -189583,7 +191477,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14894, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14987, uintptr(0), uintptr(0), uintptr(0)) } } /* Sync the db file */ @@ -189597,19 +191491,19 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14894, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14987, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 14879 + v1 = __ccgo_ts + 14972 } else { - v1 = __ccgo_ts + 32932 + v1 = __ccgo_ts + 33078 } zBegin = v1 rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, zBegin, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32932, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33078, uintptr(0), uintptr(0), uintptr(0)) } } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -190183,7 +192077,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r rc = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xControl})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, int32(SQLITE_FCNTL_ZIPVFS), bp) if rc == SQLITE_OK { rc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33007, 0) + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33153, 0) } else { if rc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpTargetFd = p @@ -190209,7 +192103,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r if rc == SQLITE_OK && op == int32(SQLITE_FCNTL_VFSNAME) { pRbuVfs = (*Trbu_file)(unsafe.Pointer(p)).FpRbuVfs zIn = *(*uintptr)(unsafe.Pointer(pArg)) - zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33030, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) + zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33176, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) *(*uintptr)(unsafe.Pointer(pArg)) = zOut if zOut == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -190410,7 +192304,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag if pDb != 0 { if (*Trbu_file)(unsafe.Pointer(pDb)).FpRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FeStage == int32(RBU_STAGE_OAL) { if (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FzTarget == uintptr(0) { - zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6585) + zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6649) zOpen = Xsqlite3_filename_wal(tls, zOpen) } nOpen = libc.Xstrlen(tls, zOpen) @@ -190424,7 +192318,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag } else { (*Trbu_file)(unsafe.Pointer(pFd)).FpRbu = (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).FpRbu } - if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33041, 0) != 0 { + if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33187, 0) != 0 { _ = libc.Int32FromInt32(0) oflags = libc.Int32FromInt32(SQLITE_OPEN_TEMP_DB) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_EXCLUSIVE) | libc.Int32FromInt32(SQLITE_OPEN_DELETEONCLOSE) zOpen = uintptr(0) @@ -190979,7 +192873,7 @@ func _statConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint _sqlite3TokenInit(tls, bp, *(*uintptr)(unsafe.Pointer(argv + 3*4))) iDb = _sqlite3FindDb(tls, db, bp) if iDb < 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12191, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(argv + 3*4)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12316, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(argv + 3*4)))) return int32(SQLITE_ERROR) } } else { @@ -191373,6 +193267,7 @@ func _statDecodePage(tls *libc.TLS, pBt uintptr, p uintptr) (r int32) { } } return SQLITE_OK + goto statPageIsCorrupt statPageIsCorrupt: ; (*TStatPage)(unsafe.Pointer(p)).Fflags = uint8(0) @@ -191463,6 +193358,7 @@ func _statNext(tls *libc.TLS, pCursor uintptr) (r int32) { pPager = _sqlite3BtreePager(tls, pBt) Xsqlite3_free(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath) (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = uintptr(0) + goto statNextRestart statNextRestart: ; if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage < 0 { @@ -191480,7 +193376,7 @@ statNextRestart: (*(*TStatPage)(unsafe.Pointer(pCsr + 16))).FiPgno = iRoot (*(*TStatPage)(unsafe.Pointer(pCsr + 16))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33052, 0) + v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33198, 0) z = v1 (*(*TStatPage)(unsafe.Pointer(pCsr + 16))).FzPath = v1 if z == uintptr(0) { @@ -191518,8 +193414,8 @@ statNextRestart: if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { (*TStatCursor)(unsafe.Pointer(pCsr)).FzName = Xsqlite3_column_text(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FpStmt, 0) (*TStatCursor)(unsafe.Pointer(pCsr)).FiPageno = *(*Tu32)(unsafe.Pointer((*TStatCell)(unsafe.Pointer(pCell)).FaOvfl + uintptr(iOvfl)*4)) - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33054 - v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33063, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33200 + v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33209, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) z = v2 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v2 if z == uintptr(0) { @@ -191548,7 +193444,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage++ if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage >= int32(libc.Uint32FromInt64(1280)/libc.Uint32FromInt64(40)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(222551)) + return _sqlite3CorruptError(tls, int32(224206)) } _ = libc.Int32FromInt32(0) if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { @@ -191560,7 +193456,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnPage++ (*(*TStatPage)(unsafe.Pointer(p + 1*40))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33075, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) + v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33221, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) z = v4 (*(*TStatPage)(unsafe.Pointer(p + 1*40))).FzPath = v4 if z == uintptr(0) { @@ -191583,13 +193479,13 @@ statNextRestart: case int32(0x05): /* table internal */ fallthrough case int32(0x02): /* index internal */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33083 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33229 case int32(0x0D): /* table leaf */ fallthrough case int32(0x0A): /* index leaf */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33092 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33238 default: - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33097 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33243 break } *(*int32)(unsafe.Pointer(pCsr + 1320)) += (*TStatPage)(unsafe.Pointer(p1)).FnCell @@ -191598,7 +193494,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnMxPayload = (*TStatPage)(unsafe.Pointer(p1)).FnMxPayload } if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) + v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) z = v5 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v5 if z == uintptr(0) { @@ -191687,12 +193583,12 @@ func _statFilter(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uintptr, a (*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg = uint8(0) } pSql = Xsqlite3_str_new(tls, (*TStatTable)(unsafe.Pointer(pTab)).Fdb) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33107, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*16))).FzDbSName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33253, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*16))).FzDbSName)) if zName != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33262, libc.VaList(bp+8, zName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33408, libc.VaList(bp+8, zName)) } if idxNum&int32(0x08) != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33276, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33422, 0) } zSql = Xsqlite3_str_finish(tls, pSql) if zSql == uintptr(0) { @@ -191769,7 +193665,7 @@ func _statRowid(tls *libc.TLS, pCursor uintptr, pRowid uintptr) (r int32) { // ** Invoke this routine to register the "dbstat" virtual table module // */ func _sqlite3DbstatRegister(tls *libc.TLS, db uintptr) (r int32) { - return Xsqlite3_create_module(tls, db, __ccgo_ts+33291, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) + return Xsqlite3_create_module(tls, db, __ccgo_ts+33437, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) } var _dbstat_module = Tsqlite3_module{} @@ -193058,20 +194954,20 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, *(*uintptr)(unsafe.Pointer(pazDflt)) = uintptr(0) } nThis = _sqlite3Strlen30(tls, zThis) - if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11582, zThis) { + if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11707, zThis) { rc = Xsqlite3_table_column_metadata(tls, db, zDb, zThis, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { /* For sqlite_stat1, pretend that (tbl,idx) is the PRIMARY KEY. */ - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33298, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33444, 0) } else { if rc == int32(SQLITE_ERROR) { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1648, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1662, 0) } else { return rc } } } else { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33419, libc.VaList(bp+16, zDb, zThis)) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33565, libc.VaList(bp+16, zDb, zThis)) } if !(zPragma != 0) { return int32(SQLITE_NOMEM) @@ -193095,7 +194991,7 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, bRowid = 0 } nDbCol += bRowid - nByte += int64(libc.Xstrlen(tls, __ccgo_ts+29640)) + nByte += int64(libc.Xstrlen(tls, __ccgo_ts+29786)) rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp))) if rc == SQLITE_OK { nByte += int64(uint32(nDbCol) * (libc.Uint32FromInt64(4)*libc.Uint32FromInt32(2) + libc.Uint32FromInt64(1) + libc.Uint32FromInt32(1) + libc.Uint32FromInt32(1))) @@ -193119,8 +195015,8 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, } i = 0 if bRowid != 0 { - nName = libc.Xstrlen(tls, __ccgo_ts+29640) - libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29640, nName+uint32(1)) + nName = libc.Xstrlen(tls, __ccgo_ts+29786) + libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29786, nName+uint32(1)) *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)) = pAlloc pAlloc += uintptr(nName + uint32(1)) *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) = uint8(1) @@ -193213,7 +195109,7 @@ func _sessionInitTable(tls *libc.TLS, pSession uintptr, pTab uintptr, db uintptr ; i++ } - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11582, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11707, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 = int32(1) } if pSession != 0 && (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize != 0 { @@ -193504,10 +195400,10 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin _, _, _, _ = ii, zDflt, zSep, v2 *(*TSessionBuffer)(unsafe.Pointer(bp)) = TSessionBuffer{} *(*int32)(unsafe.Pointer(bp + 12)) = SQLITE_OK - zSep = __ccgo_ts + 11202 + zSep = __ccgo_ts + 11327 ii = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) - _sessionAppendPrintf(tls, bp, bp+12, __ccgo_ts+33448, 0) + _sessionAppendPrintf(tls, bp, bp+12, __ccgo_ts+33594, 0) ii = 0 for { if !(ii < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol) { @@ -193516,11 +195412,11 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin if *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*4)) != 0 { v2 = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*4)) } else { - v2 = __ccgo_ts + 1649 + v2 = __ccgo_ts + 1663 } zDflt = v2 - _sessionAppendPrintf(tls, bp, bp+12, __ccgo_ts+5076, libc.VaList(bp+24, zSep, zDflt)) - zSep = __ccgo_ts + 14990 + _sessionAppendPrintf(tls, bp, bp+12, __ccgo_ts+5140, libc.VaList(bp+24, zSep, zDflt)) + zSep = __ccgo_ts + 15083 goto _1 _1: ; @@ -193839,7 +195735,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u rc = int32(SQLITE_NOMEM) goto error_out } - _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1648, uint8(0), libc.UintptrFromInt32(0)) + _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1662, uint8(0), libc.UintptrFromInt32(0)) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpZeroBlob = p } } @@ -193960,6 +195856,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u } } /* If an error has occurred, mark the session object as failed. */ + goto error_out error_out: ; if (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 != 0 { @@ -194169,7 +196066,7 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr var i int32 var zRet, zSep uintptr _, _, _ = i, zRet, zSep - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 zRet = uintptr(0) i = 0 for { @@ -194177,8 +196074,8 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr break } if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33455, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)))) - zSep = __ccgo_ts + 22013 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33601, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)))) + zSep = __ccgo_ts + 22158 if zRet == uintptr(0) { break } @@ -194197,7 +196094,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint var bHave, i int32 var zRet, zSep uintptr _, _, _, _ = bHave, i, zRet, zSep - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 zRet = uintptr(0) bHave = 0 i = 0 @@ -194207,8 +196104,8 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if int32(*(*Tu8)(unsafe.Pointer(abPK + uintptr(i)))) == 0 { bHave = int32(1) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33489, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)))) - zSep = __ccgo_ts + 33530 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33635, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)))) + zSep = __ccgo_ts + 33676 if zRet == uintptr(0) { break } @@ -194220,7 +196117,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if bHave == 0 { _ = libc.Int32FromInt32(0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1722, 0) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1782, 0) } return zRet } @@ -194231,12 +196128,12 @@ func _sessionSelectFindNew(tls *libc.TLS, zDb1 uintptr, zDb2 uintptr, bRowid int var zRet, zSel, v1 uintptr _, _, _ = zRet, zSel, v1 if bRowid != 0 { - v1 = __ccgo_ts + 33535 + v1 = __ccgo_ts + 33681 } else { - v1 = __ccgo_ts + 6590 + v1 = __ccgo_ts + 6654 } zSel = v1 - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33546, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33692, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) return zRet } @@ -194297,11 +196194,11 @@ func _sessionAllCols(tls *libc.TLS, zDb uintptr, pTab uintptr) (r uintptr) { break } if zRet != 0 { - v2 = __ccgo_ts + 14990 + v2 = __ccgo_ts + 15083 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33625, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*4)))) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33771, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*4)))) if !(zRet != 0) { break } @@ -194329,7 +196226,7 @@ func _sessionDiffFindModified(tls *libc.TLS, pSession uintptr, pTab uintptr, zFr } else { z1 = _sessionAllCols(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, pTab) z2 = _sessionAllCols(tls, zFrom, pTab) - zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33644, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) + zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33790, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) if zStmt == uintptr(0) || z1 == uintptr(0) || z2 == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -194429,7 +196326,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 28))) if bMismatch != 0 { if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33701, 0) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33847, 0) } rc = int32(SQLITE_SCHEMA) } @@ -194455,6 +196352,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u } Xsqlite3_free(tls, zExpr) } + goto diff_out diff_out: ; _sessionPreupdateHooks(tls, pSession) @@ -194760,7 +196658,7 @@ func _sessionAppendInteger(tls *libc.TLS, p uintptr, iVal int32, pRc uintptr) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* aBuf at bp+0 */ [24]int8 - Xsqlite3_snprintf(tls, int32(libc.Uint32FromInt64(24)-libc.Uint32FromInt32(1)), bp, __ccgo_ts+5138, libc.VaList(bp+32, iVal)) + Xsqlite3_snprintf(tls, int32(libc.Uint32FromInt64(24)-libc.Uint32FromInt32(1)), bp, __ccgo_ts+5202, libc.VaList(bp+32, iVal)) _sessionAppendStr(tls, p, bp, pRc) } @@ -195055,23 +196953,23 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt _, _, _, _, _, _, _ = i, nSql, zCols, zSep, zSql, v1, v3 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK zSql = uintptr(0) - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 if bRowid != 0 { - v1 = __ccgo_ts + 33535 + v1 = __ccgo_ts + 33681 } else { - v1 = __ccgo_ts + 6590 + v1 = __ccgo_ts + 6654 } zCols = v1 nSql = -int32(1) *(*TSessionBuffer)(unsafe.Pointer(bp + 4)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 16)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 28)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+4, __ccgo_ts+33728, bp) - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11582, zTab) { - _sessionAppendStr(tls, bp+4, __ccgo_ts+33732, bp) - _sessionAppendStr(tls, bp+16, __ccgo_ts+33756, bp) - _sessionAppendStr(tls, bp+28, __ccgo_ts+33765, bp) - zCols = __ccgo_ts + 33810 + _sessionAppendStr(tls, bp+4, __ccgo_ts+33874, bp) + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11707, zTab) { + _sessionAppendStr(tls, bp+4, __ccgo_ts+33878, bp) + _sessionAppendStr(tls, bp+16, __ccgo_ts+33902, bp) + _sessionAppendStr(tls, bp+28, __ccgo_ts+33911, bp) + zCols = __ccgo_ts + 33956 } else { i = 0 for { @@ -195081,11 +196979,11 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { _sessionAppendStr(tls, bp+16, zSep, bp) _sessionAppendStr(tls, bp+28, zSep, bp) - zSep = __ccgo_ts + 14990 + zSep = __ccgo_ts + 15083 _sessionAppendIdent(tls, bp+16, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)), bp) - _sessionAppendPrintf(tls, bp+28, bp, __ccgo_ts+33824, libc.VaList(bp+48, i+int32(1))) + _sessionAppendPrintf(tls, bp+28, bp, __ccgo_ts+33970, libc.VaList(bp+48, i+int32(1))) } else { - _sessionAppendPrintf(tls, bp+4, bp, __ccgo_ts+33828, libc.VaList(bp+48, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)))) + _sessionAppendPrintf(tls, bp+4, bp, __ccgo_ts+33974, libc.VaList(bp+48, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)))) } goto _2 _2: @@ -195097,9 +196995,9 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if bIgnoreNoop != 0 { v3 = (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf } else { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+33855, libc.VaList(bp+48, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 28))).FaBuf)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+34001, libc.VaList(bp+48, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 28))).FaBuf)) if zSql == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } @@ -195245,7 +197143,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, if (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc != 0 { return (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc } - *(*int32)(unsafe.Pointer(bp + 12)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+33897, uintptr(0), uintptr(0), uintptr(0)) + *(*int32)(unsafe.Pointer(bp + 12)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+34043, uintptr(0), uintptr(0), uintptr(0)) if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { return *(*int32)(unsafe.Pointer(bp + 12)) } @@ -195352,7 +197250,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } } Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf) - Xsqlite3_exec(tls, db, __ccgo_ts+33917, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34063, uintptr(0), uintptr(0), uintptr(0)) Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db)) return *(*int32)(unsafe.Pointer(bp + 12)) } @@ -195773,7 +197671,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, int32(9)) if rc == SQLITE_OK { if (*TSessionInput)(unsafe.Pointer(pIn)).FiNext >= (*TSessionInput)(unsafe.Pointer(pIn)).FnData { - rc = _sqlite3CorruptError(tls, int32(226700)) + rc = _sqlite3CorruptError(tls, int32(228355)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -195798,7 +197696,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, *(*int32)(unsafe.Pointer(bp))) if rc == SQLITE_OK { if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext { - rc = _sqlite3CorruptError(tls, int32(226720)) + rc = _sqlite3CorruptError(tls, int32(228375)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -195813,7 +197711,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap } if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) { if (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext < int32(8) { - rc = _sqlite3CorruptError(tls, int32(226730)) + rc = _sqlite3CorruptError(tls, int32(228385)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -195869,7 +197767,7 @@ func _sessionChangesetBufferTblhdr(tls *libc.TLS, pIn uintptr, pnByte uintptr) ( ** large value for nCol may cause nRead to wrap around and become ** negative. Leading to a crash. */ if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > int32(65536) { - rc = _sqlite3CorruptError(tls, int32(226778)) + rc = _sqlite3CorruptError(tls, int32(228433)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -195975,7 +197873,7 @@ func _sessionChangesetReadTblhdr(tls *libc.TLS, p uintptr) (r int32) { (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FnBuf = 0 _sessionBufferGrow(tls, p+44, int64(nByte), bp) } else { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(226866)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(228521)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -196048,12 +197946,12 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK { return (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc } + _sessionDiscardData(tls, p) + (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext /* If the iterator is already at the end of the changeset, return DONE. */ if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext >= (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FnData { return int32(SQLITE_DONE) } - _sessionDiscardData(tls, p) - (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext v3 = p + 8 v2 = *(*int32)(unsafe.Pointer(v3)) *(*int32)(unsafe.Pointer(v3))++ @@ -196084,7 +197982,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin /* The first record in the changeset is not a table header. Must be a ** corrupt changeset. */ _ = libc.Int32FromInt32(0) - v7 = _sqlite3CorruptError(tls, int32(226952)) + v7 = _sqlite3CorruptError(tls, int32(228607)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -196094,7 +197992,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = int32(*(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr(v8)))) if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_DELETE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_INSERT) { - v10 = _sqlite3CorruptError(tls, int32(226958)) + v10 = _sqlite3CorruptError(tls, int32(228613)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -196175,7 +198073,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin _ = libc.Int32FromInt32(0) *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*4)) = *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i+(*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*4)) if *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*4)) == uintptr(0) { - v16 = _sqlite3CorruptError(tls, int32(227002)) + v16 = _sqlite3CorruptError(tls, int32(228657)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -196586,7 +198484,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(227367)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(229022)) goto finished_invert } _ = libc.Int32FromInt32(0) @@ -196608,6 +198506,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf) } } + goto finished_invert finished_invert: ; Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf) @@ -196790,18 +198689,18 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 } if pUp == uintptr(0) { nByte = int32(uint32(12) * uint32(nU32) * uint32(4)) - bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11582) == 0) + bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11707) == 0) pUp = Xsqlite3_malloc(tls, nByte) if pUp == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } else { - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 libc.Xmemset(tls, bp+4, 0, uint32(12)) (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask = pUp + 1*12 libc.Xmemcpy(tls, (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, uint32(nU32)*uint32(4)) - _sessionAppendStr(tls, bp+4, __ccgo_ts+33935, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34081, bp) _sessionAppendIdent(tls, bp+4, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, bp) - _sessionAppendStr(tls, bp+4, __ccgo_ts+33948, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34094, bp) /* Create the assignments part of the UPDATE */ ii = 0 for { @@ -196811,9 +198710,9 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if int32(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii)))) == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol+ii)*4)) != 0 { _sessionAppendStr(tls, bp+4, zSep, bp) _sessionAppendIdent(tls, bp+4, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*4)), bp) - _sessionAppendStr(tls, bp+4, __ccgo_ts+33954, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34100, bp) _sessionAppendInteger(tls, bp+4, ii*int32(2)+int32(1), bp) - zSep = __ccgo_ts + 14990 + zSep = __ccgo_ts + 15083 } goto _2 _2: @@ -196821,8 +198720,8 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 ii++ } /* Create the WHERE clause part of the UPDATE */ - zSep = __ccgo_ts + 1648 - _sessionAppendStr(tls, bp+4, __ccgo_ts+33959, bp) + zSep = __ccgo_ts + 1662 + _sessionAppendStr(tls, bp+4, __ccgo_ts+34105, bp) ii = 0 for { if !(ii < (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol) { @@ -196832,13 +198731,13 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 _sessionAppendStr(tls, bp+4, zSep, bp) if bStat1 != 0 && ii == int32(1) { _ = libc.Int32FromInt32(0) - _sessionAppendStr(tls, bp+4, __ccgo_ts+33967, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34113, bp) } else { _sessionAppendIdent(tls, bp+4, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*4)), bp) - _sessionAppendStr(tls, bp+4, __ccgo_ts+34042, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34188, bp) _sessionAppendInteger(tls, bp+4, ii*int32(2)+int32(2), bp) } - zSep = __ccgo_ts + 22013 + zSep = __ccgo_ts + 22158 } goto _3 _3: @@ -196922,13 +198821,13 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in var _ /* buf at bp+4 */ TSessionBuffer var _ /* rc at bp+0 */ int32 _, _, _ = i, nPk, zSep - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 4)) = TSessionBuffer{} nPk = 0 - _sessionAppendStr(tls, bp+4, __ccgo_ts+34048, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34194, bp) _sessionAppendIdent(tls, bp+4, zTab, bp) - _sessionAppendStr(tls, bp+4, __ccgo_ts+33959, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34105, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -196938,9 +198837,9 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in nPk++ _sessionAppendStr(tls, bp+4, zSep, bp) _sessionAppendIdent(tls, bp+4, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*4)), bp) - _sessionAppendStr(tls, bp+4, __ccgo_ts+33954, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34100, bp) _sessionAppendInteger(tls, bp+4, i+int32(1), bp) - zSep = __ccgo_ts + 22013 + zSep = __ccgo_ts + 22158 } goto _1 _1: @@ -196948,10 +198847,10 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in i++ } if nPk < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol { - _sessionAppendStr(tls, bp+4, __ccgo_ts+34066, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34212, bp) _sessionAppendInteger(tls, bp+4, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol+int32(1), bp) - _sessionAppendStr(tls, bp+4, __ccgo_ts+33530, bp) - zSep = __ccgo_ts + 1648 + _sessionAppendStr(tls, bp+4, __ccgo_ts+33676, bp) + zSep = __ccgo_ts + 1662 i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -196960,16 +198859,16 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in if !(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0) { _sessionAppendStr(tls, bp+4, zSep, bp) _sessionAppendIdent(tls, bp+4, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*4)), bp) - _sessionAppendStr(tls, bp+4, __ccgo_ts+34042, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34188, bp) _sessionAppendInteger(tls, bp+4, i+int32(1), bp) - zSep = __ccgo_ts + 34074 + zSep = __ccgo_ts + 34220 } goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+4, __ccgo_ts+5106, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+5170, bp) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf, p+4, uintptr(0)) @@ -196995,7 +198894,7 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in // */ func _sessionSelectRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r int32) { /* TODO */ - return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6585, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+12) + return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6649, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+12) } // C documentation @@ -197018,16 +198917,16 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 4)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+4, __ccgo_ts+34079, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34225, bp) _sessionAppendIdent(tls, bp+4, zTab, bp) - _sessionAppendStr(tls, bp+4, __ccgo_ts+22019, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+22164, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } if i != 0 { - _sessionAppendStr(tls, bp+4, __ccgo_ts+14990, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+15083, bp) } _sessionAppendIdent(tls, bp+4, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*4)), bp) goto _1 @@ -197035,19 +198934,19 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in ; i++ } - _sessionAppendStr(tls, bp+4, __ccgo_ts+34097, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34243, bp) i = int32(1) for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } - _sessionAppendStr(tls, bp+4, __ccgo_ts+34108, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34254, bp) goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+4, __ccgo_ts+5106, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+5170, bp) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf, p+8, uintptr(0)) } @@ -197070,12 +198969,12 @@ func _sessionPrepare(tls *libc.TLS, db uintptr, pp uintptr, zSql uintptr) (r int func _sessionStat1Sql(tls *libc.TLS, db uintptr, p uintptr) (r int32) { var rc int32 _ = rc - rc = _sessionSelectRow(tls, db, __ccgo_ts+11582, p) + rc = _sessionSelectRow(tls, db, __ccgo_ts+11707, p) if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34112) + rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34258) } if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+4, __ccgo_ts+34225) + rc = _sessionPrepare(tls, db, p+4, __ccgo_ts+34371) } return rc } @@ -197142,7 +199041,7 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(227849)) + rc = _sqlite3CorruptError(tls, int32(229504)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -197570,7 +199469,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34369, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34515, uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { rc = _sessionBindRow(tls, pIter, __ccgo_fp(Xsqlite3changeset_new), (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FabPK, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) Xsqlite3_bind_int(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol+int32(1), int32(1)) @@ -197583,7 +199482,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34390, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34536, uintptr(0), uintptr(0), uintptr(0)) } } } @@ -197679,10 +199578,10 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 4))).FbIgnoreNoop = libc.BoolUint8(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_IGNORENOOP) != 0)) Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, db)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34409, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34555, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34435, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34581, uintptr(0), uintptr(0), uintptr(0)) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+92, bp+84, bp+88, uintptr(0)) @@ -197713,7 +199612,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui ** non-zero, proceed. */ schemaMismatch = libc.BoolInt32(xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 92)))) if schemaMismatch != 0 { - *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp + 92)))) + *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp + 92)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { rc = int32(SQLITE_NOMEM) break @@ -197723,7 +199622,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } else { nMinCol = 0 Xsqlite3changeset_pk(tls, pIter, bp+96, uintptr(0)) - rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6585, *(*uintptr)(unsafe.Pointer(bp + 92)), bp+4+16, bp, bp+4+20, uintptr(0), bp+4+24, bp+4+76) + rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6649, *(*uintptr)(unsafe.Pointer(bp + 92)), bp+4+16, bp, bp+4+20, uintptr(0), bp+4+24, bp+4+76) if rc != SQLITE_OK { break } @@ -197742,18 +199641,18 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 4))).FnCol == 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34465, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34611, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp)))) } else { if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 4))).FnCol < *(*int32)(unsafe.Pointer(bp + 84)) { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34509, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 4))).FnCol, *(*int32)(unsafe.Pointer(bp + 84)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34655, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 4))).FnCol, *(*int32)(unsafe.Pointer(bp + 84)))) } else { if *(*int32)(unsafe.Pointer(bp + 84)) < nMinCol || libc.Xmemcmp(tls, (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 4))).FabPK, *(*uintptr)(unsafe.Pointer(bp + 96)), uint32(*(*int32)(unsafe.Pointer(bp + 84)))) != 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34580, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34726, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp)))) } else { (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 4))).FnCol = *(*int32)(unsafe.Pointer(bp + 84)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11582) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11707) { v2 = _sessionStat1Sql(tls, db, bp+4) rc = v2 if v2 != 0 { @@ -197810,13 +199709,13 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } } } - Xsqlite3_exec(tls, db, __ccgo_ts+34640, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34786, uintptr(0), uintptr(0), uintptr(0)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34670, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34816, uintptr(0), uintptr(0), uintptr(0)) } else { - Xsqlite3_exec(tls, db, __ccgo_ts+34694, uintptr(0), uintptr(0), uintptr(0)) - Xsqlite3_exec(tls, db, __ccgo_ts+34670, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34840, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34816, uintptr(0), uintptr(0), uintptr(0)) } } _ = libc.Int32FromInt32(0) @@ -197910,6 +199809,7 @@ type Tsqlite3_changegroup1 = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -198276,118 +200176,145 @@ func _sessionChangesetExtendRecord(tls *libc.TLS, pGrp uintptr, pTab uintptr, nC // C documentation // // /* -// ** Add all changes in the changeset traversed by the iterator passed as -// ** the first argument to the changegroup hash tables. +// ** Locate or create a SessionTable object that may be used to add the +// ** change currently pointed to by iterator pIter to changegroup pGrp. +// ** If successful, set output variable (*ppTab) to point to the table +// ** object and return SQLITE_OK. Otherwise, if some error occurs, return +// ** an SQLite error code and leave (*ppTab) set to NULL. // */ -func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { - bp := tls.Alloc(48) - defer tls.Free(48) - var bPkOnly1, bPkOnly2, iHash, nNew, rc int32 - var pExist, pTab, pp, ppTab uintptr - var _ /* aRec at bp+0 */ uintptr - var _ /* abPK at bp+40 */ uintptr - var _ /* bIndirect at bp+32 */ int32 - var _ /* nCol at bp+24 */ int32 - var _ /* nRec at bp+4 */ int32 - var _ /* op at bp+28 */ int32 - var _ /* pChange at bp+36 */ uintptr - var _ /* rec at bp+8 */ TSessionBuffer - var _ /* zNew at bp+20 */ uintptr - _, _, _, _, _, _, _, _, _ = bPkOnly1, bPkOnly2, iHash, nNew, pExist, pTab, pp, ppTab, rc +func _sessionChangesetFindTable(tls *libc.TLS, pGrp uintptr, zTab uintptr, pIter uintptr, ppTab uintptr) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var nTab, rc int32 + var pTab, ppNew uintptr + var _ /* abPK at bp+0 */ uintptr + var _ /* nCol at bp+4 */ int32 + _, _, _, _ = nTab, pTab, ppNew, rc rc = SQLITE_OK pTab = uintptr(0) - *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} - for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+4, uintptr(0)) { - pExist = uintptr(0) - /* Ensure that only changesets, or only patchsets, but not a mixture - ** of both, are being combined. It is an error to try to combine a - ** changeset and a patchset. */ - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset - } else { - if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { - rc = int32(SQLITE_ERROR) - break - } + nTab = int32(libc.Xstrlen(tls, zTab)) + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + *(*uintptr)(unsafe.Pointer(ppTab)) = uintptr(0) + Xsqlite3changeset_pk(tls, pIter, bp, bp+4) + /* Search the list for an existing table */ + pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList + for { + if !(pTab != 0) { + break } - Xsqlite3changeset_op(tls, pIter, bp+20, bp+24, bp+28, bp+32) - if !(pTab != 0) || Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp + 20)), (*TSessionTable)(unsafe.Pointer(pTab)).FzName) != 0 { - /* Search the list for a matching table */ - nNew = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 20)))) - Xsqlite3changeset_pk(tls, pIter, bp+40, uintptr(0)) - pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList - for { - if !(pTab != 0) { - break - } - if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 20)), nNew+int32(1)) { - break - } - goto _1 - _1: - ; - pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext - } - if !(pTab != 0) { - pTab = Xsqlite3_malloc64(tls, uint64(uint32(48)+uint32(*(*int32)(unsafe.Pointer(bp + 24)))+uint32(nNew)+uint32(1))) - if !(pTab != 0) { - rc = int32(SQLITE_NOMEM) - break - } - libc.Xmemset(tls, pTab, 0, uint32(48)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 24)) - (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*48 - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp + 40)), uint32(*(*int32)(unsafe.Pointer(bp + 24)))) - (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 24))) - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 20)), uint32(nNew+int32(1))) - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 - rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) - if rc != 0 { - _ = libc.Int32FromInt32(0) - Xsqlite3_free(tls, pTab) - break - } - } - /* The new object must be linked on to the end of the list, not - ** simply added to the start of it. This is to ensure that the - ** tables within the output of sqlite3changegroup_output() are in - ** the right order. */ - ppTab = pGrp + 8 - for { - if !(*(*uintptr)(unsafe.Pointer(ppTab)) != 0) { - break - } - goto _2 - _2: - ; - ppTab = *(*uintptr)(unsafe.Pointer(ppTab)) - } - *(*uintptr)(unsafe.Pointer(ppTab)) = pTab - } - if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 24)), *(*uintptr)(unsafe.Pointer(bp + 40))) != 0) { - rc = int32(SQLITE_SCHEMA) - break - } + if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, nTab+int32(1)) { + break } - if *(*int32)(unsafe.Pointer(bp + 24)) < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol { - _ = libc.Int32FromInt32(0) - rc = _sessionChangesetExtendRecord(tls, pGrp, pTab, *(*int32)(unsafe.Pointer(bp + 24)), *(*int32)(unsafe.Pointer(bp + 28)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), bp+8) + goto _1 + _1: + ; + pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext + } + /* If one was not found above, create a new table now */ + if !(pTab != 0) { + pTab = Xsqlite3_malloc64(tls, uint64(uint32(48)+uint32(*(*int32)(unsafe.Pointer(bp + 4)))+uint32(nTab)+uint32(1))) + if !(pTab != 0) { + return int32(SQLITE_NOMEM) + } + libc.Xmemset(tls, pTab, 0, uint32(48)) + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 4)) + (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*48 + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp)), uint32(*(*int32)(unsafe.Pointer(bp + 4)))) + (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 4))) + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, uint32(nTab+int32(1))) + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 + rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) if rc != 0 { + _ = libc.Int32FromInt32(0) + Xsqlite3_free(tls, pTab) + return rc + } + } + /* The new object must be linked on to the end of the list, not + ** simply added to the start of it. This is to ensure that the + ** tables within the output of sqlite3changegroup_output() are in + ** the right order. */ + ppNew = pGrp + 8 + for { + if !(*(*uintptr)(unsafe.Pointer(ppNew)) != 0) { break } - *(*uintptr)(unsafe.Pointer(bp)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf - *(*int32)(unsafe.Pointer(bp + 4)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf + goto _2 + _2: + ; + ppNew = *(*uintptr)(unsafe.Pointer(ppNew)) } - if _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pTab) != 0 { - rc = int32(SQLITE_NOMEM) - break + *(*uintptr)(unsafe.Pointer(ppNew)) = pTab + } + /* Check that the table is compatible. */ + if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 4)), *(*uintptr)(unsafe.Pointer(bp))) != 0) { + rc = int32(SQLITE_SCHEMA) + } + *(*uintptr)(unsafe.Pointer(ppTab)) = pTab + return rc +} + +// C documentation +// +// /* +// ** Add the change currently indicated by iterator pIter to the hash table +// ** belonging to changegroup pGrp. +// */ +func _sessionOneChangeToHash(tls *libc.TLS, pGrp uintptr, pIter uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(32) + defer tls.Free(32) + var aRec, pBuf, pExist, pp uintptr + var bPkOnly1, bPkOnly2, iHash, nRec, rc int32 + var _ /* bIndirect at bp+8 */ int32 + var _ /* nCol at bp+0 */ int32 + var _ /* op at bp+4 */ int32 + var _ /* pChange at bp+12 */ uintptr + var _ /* pTab at bp+16 */ uintptr + var _ /* zTab at bp+20 */ uintptr + _, _, _, _, _, _, _, _, _ = aRec, bPkOnly1, bPkOnly2, iHash, nRec, pBuf, pExist, pp, rc + rc = SQLITE_OK + *(*int32)(unsafe.Pointer(bp)) = 0 + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + iHash = 0 + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(bp + 12)) = uintptr(0) + pExist = uintptr(0) + pp = uintptr(0) + *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0) + aRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FaData + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent+int32(2)) + nRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent - int32(2) + /* Ensure that only changesets, or only patchsets, but not a mixture + ** of both, are being combined. It is an error to try to combine a + ** changeset and a patchset. */ + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset + } else { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { + rc = int32(SQLITE_ERROR) } - iHash = int32(_sessionChangeHash(tls, pTab, libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 28)) == int32(SQLITE_DELETE)), *(*uintptr)(unsafe.Pointer(bp)), (*TSessionTable)(unsafe.Pointer(pTab)).FnChange)) + } + if rc == SQLITE_OK { + *(*uintptr)(unsafe.Pointer(bp + 20)) = uintptr(0) + Xsqlite3changeset_op(tls, pIter, bp+20, bp, bp+4, bp+8) + rc = _sessionChangesetFindTable(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 20)), pIter, bp+16) + } + if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) < (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FnCol { + pBuf = pGrp + 12 + rc = _sessionChangesetExtendRecord(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 16)), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), aRec, nRec, pBuf) + aRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FaBuf + nRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FnBuf + _ = libc.Int32FromInt32(0) + } + if rc == SQLITE_OK && _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp + 16))) != 0 { + rc = int32(SQLITE_NOMEM) + } + if rc == SQLITE_OK { /* Search for existing entry. If found, remove it from the hash table. - ** Code below may link it back in. - */ - pp = (*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*4 + ** Code below may link it back in. */ + iHash = int32(_sessionChangeHash(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)), aRec, (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FnChange)) + pp = (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FapChange + uintptr(iHash)*4 for { if !(*(*uintptr)(unsafe.Pointer(pp)) != 0) { break @@ -198396,30 +200323,54 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase bPkOnly2 = 0 if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 { bPkOnly1 = libc.BoolInt32(int32((*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).Fop) == int32(SQLITE_DELETE)) - bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 28)) == int32(SQLITE_DELETE)) + bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)) } - if _sessionChangeEqual(tls, pTab, bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, *(*uintptr)(unsafe.Pointer(bp))) != 0 { + if _sessionChangeEqual(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, aRec) != 0 { pExist = *(*uintptr)(unsafe.Pointer(pp)) *(*uintptr)(unsafe.Pointer(pp)) = (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry-- + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FnEntry-- break } - goto _3 - _3: + goto _1 + _1: ; pp = *(*uintptr)(unsafe.Pointer(pp)) + 16 } - rc = _sessionChangeMerge(tls, pTab, bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 28)), *(*int32)(unsafe.Pointer(bp + 32)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), bp+36) - if rc != 0 { + } + if rc == SQLITE_OK { + rc = _sessionChangeMerge(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 4)), *(*int32)(unsafe.Pointer(bp + 8)), aRec, nRec, bp+12) + } + if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp + 12)) != 0 { + (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FapChange + uintptr(iHash)*4)) + *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FapChange + uintptr(iHash)*4)) = *(*uintptr)(unsafe.Pointer(bp + 12)) + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FnEntry++ + } + if rc == SQLITE_OK { + rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc + } + return rc +} + +// C documentation +// +// /* +// ** Add all changes in the changeset traversed by the iterator passed as +// ** the first argument to the changegroup hash tables. +// */ +func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var rc int32 + var _ /* aRec at bp+0 */ uintptr + var _ /* nRec at bp+4 */ int32 + _ = rc + rc = SQLITE_OK + for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+4, uintptr(0)) { + rc = _sessionOneChangeToHash(tls, pGrp, pIter, bRebase) + if rc != SQLITE_OK { break } - if *(*uintptr)(unsafe.Pointer(bp + 36)) != 0 { - (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 36)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*4)) - *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*4)) = *(*uintptr)(unsafe.Pointer(bp + 36)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry++ - } } - Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf) if rc == SQLITE_OK { rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc } @@ -198530,11 +200481,11 @@ func Xsqlite3changegroup_new(tls *libc.TLS, pp uintptr) (r int32) { var rc int32 _, _ = p, rc rc = SQLITE_OK /* New object */ - p = Xsqlite3_malloc(tls, int32(20)) + p = Xsqlite3_malloc(tls, int32(32)) if p == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, p, 0, uint32(20)) + libc.Xmemset(tls, p, 0, uint32(32)) } *(*uintptr)(unsafe.Pointer(pp)) = p return rc @@ -198556,7 +200507,7 @@ func Xsqlite3changegroup_schema(tls *libc.TLS, pGrp uintptr, db uintptr, zDb uin ** or after sqlite3changegroup_schema() has already been called. */ rc = int32(SQLITE_MISUSE) } else { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, zDb)) + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, zDb)) if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -198586,6 +200537,19 @@ func Xsqlite3changegroup_add(tls *libc.TLS, pGrp uintptr, nData int32, pData uin return rc } +// C documentation +// +// /* +// ** Add a single change to a changeset-group. +// */ +func Xsqlite3changegroup_add_change(tls *libc.TLS, pGrp uintptr, pIter uintptr) (r int32) { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent == (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc != SQLITE_OK || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbInvert != 0 { + /* Iterator does not point to any valid entry or is an INVERT iterator. */ + return int32(SQLITE_ERROR) + } + return _sessionOneChangeToHash(tls, pGrp, pIter, 0) +} + // C documentation // // /* @@ -198633,6 +200597,7 @@ func Xsqlite3changegroup_delete(tls *libc.TLS, pGrp uintptr) { if pGrp != 0 { Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList) + Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Frec.FaBuf) Xsqlite3_free(tls, pGrp) } } @@ -199000,11 +200965,11 @@ func Xsqlite3rebaser_create(tls *libc.TLS, ppNew uintptr) (r int32) { var rc int32 _, _ = pNew, rc rc = SQLITE_OK - pNew = Xsqlite3_malloc(tls, int32(20)) + pNew = Xsqlite3_malloc(tls, int32(32)) if pNew == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, pNew, 0, uint32(20)) + libc.Xmemset(tls, pNew, 0, uint32(32)) } *(*uintptr)(unsafe.Pointer(ppNew)) = pNew return rc @@ -199078,6 +201043,7 @@ func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn u func Xsqlite3rebaser_delete(tls *libc.TLS, p uintptr) { if p != 0 { _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.FpList) + Xsqlite3_free(tls, (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.Frec.FaBuf) Xsqlite3_free(tls, p) } } @@ -199709,6 +201675,9 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** sqlite3Fts5ParserARG_STORE Code to store %extra_argument into fts5yypParser // ** sqlite3Fts5ParserARG_FETCH Code to extract %extra_argument from fts5yypParser // ** sqlite3Fts5ParserCTX_* As sqlite3Fts5ParserARG_ except for %extra_context +// ** fts5YYREALLOC Name of the realloc() function to use +// ** fts5YYFREE Name of the free() function to use +// ** fts5YYDYNSTACK True if stack space should be extended on heap // ** fts5YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** fts5YYNSTATE the combined number of states. @@ -199722,6 +201691,8 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** fts5YY_NO_ACTION The fts5yy_action[] code for no-op // ** fts5YY_MIN_REDUCE Minimum value for reduce actions // ** fts5YY_MAX_REDUCE Maximum value for reduce actions +// ** fts5YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** fts5YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type Tfts5YYMINORTYPE = struct { @@ -199748,6 +201719,13 @@ type fts5YYMINORTYPE = Tfts5YYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -200177,8 +202155,9 @@ type fts5yyStackEntry = Tfts5yyStackEntry type Tfts5yyParser1 = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser1 = Tfts5yyParser1 @@ -200186,14 +202165,19 @@ type fts5yyParser1 = Tfts5yyParser1 type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser = Tfts5yyParser /* #include */ +/* For builds that do no have a growable stack, fts5yyGrowStack always +** returns an error. + */ + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3Fts5ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -200208,10 +202192,11 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { var fts5yypParser uintptr _ = fts5yypParser fts5yypParser = fts5yypRawParser - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = fts5yypParser + 8 - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 8))).Fstateno = uint8(0) - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 8))).Fmajor = uint8(0) - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = fts5yypParser + 8 + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*12 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack = fts5yypParser + 16 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*12 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fstateno = uint8(0) + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fmajor = uint8(0) } // C documentation @@ -200231,7 +202216,7 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(1212)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(1216)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -200315,11 +202300,17 @@ func _fts5yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var fts5yytos, pParser uintptr + _, _ = fts5yytos, pParser pParser = p - for (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos > pParser+8 { - _fts5yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling fts5yy_pop_parser_stack() for each + ** element left in the stack */ + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos + for fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yystack { + if int32((*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor) >= int32(fts5YY_MIN_DSTRCTR) { + _fts5yy_destructor(tls, pParser, (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor, fts5yytos+4) + } + fts5yytos -= 12 } } @@ -200419,13 +202410,13 @@ func _fts5yyStackOverflow(tls *libc.TLS, fts5yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse - for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > fts5yypParser+8 { + for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack { _fts5yy_pop_parser_stack(tls, fts5yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34722, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34868, 0) /******** End %stack_overflow code ********************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument var */ } @@ -200443,15 +202434,19 @@ func _fts5yy_shift(tls *libc.TLS, fts5yypParser uintptr, fts5yyNewState uint8, f var fts5yytos uintptr _ = fts5yytos (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos += 12 - if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 12 - _fts5yyStackOverflow(tls, fts5yypParser) - return + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + if fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { + if int32(1) != 0 { + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 12 + _fts5yyStackOverflow(tls, fts5yypParser) + return + } + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + _ = libc.Int32FromInt32(0) } if int32(fts5yyNewState) > int32(fts5YY_MAX_SHIFT) { fts5yyNewState = uint8(int32(fts5yyNewState) + (libc.Int32FromInt32(fts5YY_MIN_REDUCE) - libc.Int32FromInt32(fts5YY_MIN_SHIFTREDUCE))) } - fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fstateno = fts5yyNewState (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor = fts5yyMajor *(*TFts5Token)(unsafe.Pointer(fts5yytos + 4)) = fts5yyMinor @@ -200781,7 +202776,7 @@ func _fts5yy_syntax_error(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor int3 pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse /************ Begin %syntax_error code ****************************************/ _ = fts5yymajor /* Silence a compiler warning */ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34750, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34896, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) /************ End %syntax_error code ******************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument variable */ } @@ -200847,8 +202842,10 @@ func _sqlite3Fts5Parser(tls *libc.TLS, fts5yyp uintptr, fts5yymajor int32, fts5y ** enough on the stack to push the LHS value */ if int32(_fts5yyRuleInfoNRhs[fts5yyruleno]) == 0 { if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos >= (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - _fts5yyStackOverflow(tls, fts5yypParser) - break + if int32(1) != 0 { + _fts5yyStackOverflow(tls, fts5yypParser) + break + } } } fts5yyact = _fts5yy_reduce(tls, fts5yypParser, fts5yyruleno, fts5yymajor, fts5yyminor) @@ -201089,7 +203086,7 @@ func _fts5HighlightAppend(tls *libc.TLS, pRc uintptr, p uintptr, z uintptr, n in if n < 0 { n = int32(libc.Xstrlen(tls, z)) } - (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34781, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) + (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34927, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) if (*THighlightContext)(unsafe.Pointer(p)).FzOut == uintptr(0) { *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) } @@ -201187,7 +203184,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint var _ /* rc at bp+68 */ int32 _, _ = iCol, zErr if nVal != int32(3) { - zErr = __ccgo_ts + 34788 + zErr = __ccgo_ts + 34934 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -201198,7 +203195,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint (*(*THighlightContext)(unsafe.Pointer(bp))).FiRangeEnd = -int32(1) *(*int32)(unsafe.Pointer(bp + 68)) = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnText})))(tls, pFts, iCol, bp+16, bp+20) if *(*int32)(unsafe.Pointer(bp + 68)) == int32(SQLITE_RANGE) { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1648, -int32(1), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1662, -int32(1), libc.UintptrFromInt32(0)) *(*int32)(unsafe.Pointer(bp + 68)) = SQLITE_OK } else { if (*(*THighlightContext)(unsafe.Pointer(bp))).FzIn != 0 { @@ -201399,7 +203396,7 @@ func _fts5ValueToText(tls *libc.TLS, pVal uintptr) (r uintptr) { if zRet != 0 { v1 = zRet } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } return v1 } @@ -201433,7 +203430,7 @@ func _fts5SnippetFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintpt nBestScore = 0 /* Score of best snippet */ *(*int32)(unsafe.Pointer(bp + 76)) = 0 if nVal != int32(5) { - zErr = __ccgo_ts + 34838 + zErr = __ccgo_ts + 34984 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -201814,15 +203811,15 @@ func _sqlite3Fts5AuxInit(tls *libc.TLS, pApi uintptr) (r int32) { FxDestroy uintptr }{ 0: { - FzFunc: __ccgo_ts + 34886, + FzFunc: __ccgo_ts + 35032, FxFunc: __ccgo_fp(_fts5SnippetFunction), }, 1: { - FzFunc: __ccgo_ts + 34894, + FzFunc: __ccgo_ts + 35040, FxFunc: __ccgo_fp(_fts5HighlightFunction), }, 2: { - FzFunc: __ccgo_ts + 34904, + FzFunc: __ccgo_ts + 35050, FxFunc: __ccgo_fp(_fts5Bm25Function), }, } @@ -202487,7 +204484,7 @@ func _fts5ConfigSkipLiteral(tls *libc.TLS, pIn uintptr) (r uintptr) { case int32('n'): fallthrough case int32('N'): - if Xsqlite3_strnicmp(tls, __ccgo_ts+1634, p, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+1648, p, int32(4)) == 0 { p = p + 4 } else { p = uintptr(0) @@ -202693,7 +204690,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _, _, _, _, _, _, _, _, _, _, _, _ = azArg, bFirst, nArg, nByte, nCmd, nPre, p, p1, p2, pDel, pSpace, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK nCmd = int32(libc.Xstrlen(tls, zCmd)) - if Xsqlite3_strnicmp(tls, __ccgo_ts+34909, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35055, zCmd, nCmd) == 0 { nByte = int32(libc.Uint32FromInt64(4) * libc.Uint32FromInt32(FTS5_MAX_PREFIX_INDEXES)) bFirst = int32(1) if (*TFts5Config)(unsafe.Pointer(pConfig)).FaPrefix == uintptr(0) { @@ -202719,12 +204716,12 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } } if int32(*(*int8)(unsafe.Pointer(p))) < int32('0') || int32(*(*int8)(unsafe.Pointer(p))) > int32('9') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34916, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35062, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } if (*TFts5Config)(unsafe.Pointer(pConfig)).FnPrefix == int32(FTS5_MAX_PREFIX_INDEXES) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34947, libc.VaList(bp+48, int32(FTS5_MAX_PREFIX_INDEXES))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35093, libc.VaList(bp+48, int32(FTS5_MAX_PREFIX_INDEXES))) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -202733,7 +204730,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC p++ } if nPre <= 0 || nPre >= int32(1000) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34980, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35126, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -202744,7 +204741,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _ = libc.Int32FromInt32(0) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35017, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35163, zCmd, nCmd) == 0 { p1 = zArg nArg = int64(libc.Xstrlen(tls, zArg) + uint32(1)) azArg = _sqlite3Fts5MallocZero(tls, bp, int64(4)*nArg) @@ -202752,7 +204749,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC pSpace = pDel if azArg != 0 && pSpace != 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35026, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35172, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { nArg = 0 @@ -202779,7 +204776,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC nArg++ } if p1 == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35059, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35205, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5GetTokenizer(tls, pGlobal, azArg, int32(nArg), pConfig, pzErr) @@ -202790,58 +204787,58 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC Xsqlite3_free(tls, pDel) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35093, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35239, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent != FTS5_CONTENT_NORMAL { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35101, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35247, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if *(*int8)(unsafe.Pointer(zArg)) != 0 { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_EXTERNAL) - (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35133, libc.VaList(bp+48, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) + (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35279, libc.VaList(bp+48, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_NONE) } } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35139, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35285, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35158, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35304, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35201, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35347, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35215, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35361, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, zArg, -int32(1)) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35253, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35399, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35264, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35410, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+5499, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+5563, zCmd, nCmd) == 0 { *(*[4]TFts5Enum)(unsafe.Pointer(bp + 4)) = [4]TFts5Enum{ 0: { - FzName: __ccgo_ts + 8218, + FzName: __ccgo_ts + 8343, FeVal: int32(FTS5_DETAIL_NONE), }, 1: { - FzName: __ccgo_ts + 17747, + FzName: __ccgo_ts + 17834, }, 2: { - FzName: __ccgo_ts + 35299, + FzName: __ccgo_ts + 35445, FeVal: int32(FTS5_DETAIL_COLUMNS), }, 3: {}, @@ -202849,20 +204846,20 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC v2 = _fts5ConfigSetEnum(tls, bp+4, zArg, pConfig+56) *(*int32)(unsafe.Pointer(bp)) = v2 if v2 != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35307, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35453, 0) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35338, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35484, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35348, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35494, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbTokendata = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35382, libc.VaList(bp+48, nCmd, zCmd)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35528, libc.VaList(bp+48, nCmd, zCmd)) return int32(SQLITE_ERROR) } @@ -202936,15 +204933,15 @@ func _fts5ConfigParseColumn(tls *libc.TLS, p uintptr, zCol uintptr, zArg uintptr var v2 uintptr _, _, _ = rc, v1, v2 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35410) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16694) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35415, libc.VaList(bp+8, zCol)) + if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35556) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16781) { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35561, libc.VaList(bp+8, zCol)) rc = int32(SQLITE_ERROR) } else { if zArg != 0 { - if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35445) { + if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35591) { *(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FabUnindexed + uintptr((*TFts5Config)(unsafe.Pointer(p)).FnCol))) = uint8(1) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35455, libc.VaList(bp+8, zArg)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35601, libc.VaList(bp+8, zArg)) rc = int32(SQLITE_ERROR) } } @@ -202970,7 +204967,7 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TFts5Buffer)(unsafe.Pointer(bp + 4)) = TFts5Buffer{} - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+4, __ccgo_ts+35486, libc.VaList(bp+24, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+4, __ccgo_ts+35632, libc.VaList(bp+24, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) if (*TFts5Config)(unsafe.Pointer(p)).FeContent != int32(FTS5_CONTENT_NONE) { i = 0 for { @@ -202978,9 +204975,9 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { break } if (*TFts5Config)(unsafe.Pointer(p)).FeContent == int32(FTS5_CONTENT_EXTERNAL) { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+4, __ccgo_ts+35491, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*4)))) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+4, __ccgo_ts+35637, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*4)))) } else { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+4, __ccgo_ts+35498, libc.VaList(bp+24, i)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+4, __ccgo_ts+35644, libc.VaList(bp+24, i)) } goto _1 _1: @@ -203041,8 +205038,8 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in (*TFts5Config)(unsafe.Pointer(pRet)).FzName = _sqlite3Fts5Strndup(tls, bp, *(*uintptr)(unsafe.Pointer(azArg + 2*4)), -int32(1)) (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize = int32(1) (*TFts5Config)(unsafe.Pointer(pRet)).FeDetail = FTS5_DETAIL_FULL - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35410) == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35506, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35556) == 0 { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35652, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } _ = libc.Int32FromInt32(0) @@ -203075,19 +205072,19 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { if z == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35535, libc.VaList(bp+32, zOrig)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35681, libc.VaList(bp+32, zOrig)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bOption != 0 { if *(*uintptr)(unsafe.Pointer(bp + 4)) != 0 { v4 = *(*uintptr)(unsafe.Pointer(bp + 4)) } else { - v4 = __ccgo_ts + 1648 + v4 = __ccgo_ts + 1662 } if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { v5 = *(*uintptr)(unsafe.Pointer(bp + 8)) } else { - v5 = __ccgo_ts + 1648 + v5 = __ccgo_ts + 1662 } *(*int32)(unsafe.Pointer(bp)) = _fts5ConfigParseSpecial(tls, pGlobal, pRet, v4, v5, pzErr) } else { @@ -203105,7 +205102,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } /* We only allow contentless_delete=1 if the table is indeed contentless. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FeContent != int32(FTS5_CONTENT_NONE) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35555, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35701, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* We only allow contentless_delete=1 if columnsize=0 is not present. @@ -203113,7 +205110,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in ** This restriction may be removed at some point. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35605, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35751, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* If a tokenizer= option was successfully parsed, the tokenizer has @@ -203127,18 +205124,18 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in zTail = uintptr(0) _ = libc.Int32FromInt32(0) if (*TFts5Config)(unsafe.Pointer(pRet)).FeContent == FTS5_CONTENT_NORMAL { - zTail = __ccgo_ts + 35093 + zTail = __ccgo_ts + 35239 } else { if (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize != 0 { - zTail = __ccgo_ts + 35660 + zTail = __ccgo_ts + 35806 } } if zTail != 0 { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35668, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35814, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid == uintptr(0) { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16694, -int32(1)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16781, -int32(1)) } /* Formulate the zContentExprlist text */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -203202,25 +205199,25 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { var _ /* rc at bp+0 */ int32 _, _, _, _ = i, zSep, zSql, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35679, 0) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35825, 0) i = 0 for { if !(zSql != 0 && i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } if i == 0 { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } else { - v2 = __ccgo_ts + 14990 + v2 = __ccgo_ts + 15083 } zSep = v2 - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35695, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*4)))) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35841, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*4)))) goto _1 _1: ; i++ } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35702, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35410)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35848, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35556)) _ = libc.Int32FromInt32(0) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_declare_vtab(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql) @@ -203368,7 +205365,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV var _ /* zRankArgs at bp+4 */ uintptr _, _, _, _, _, _, _, _, _, _ = bVal, nAutomerge, nCrisisMerge, nHashSize, nUsermerge, nVal, pgsz, rc, zIn, v1 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35728) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35874) { pgsz = 0 if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { pgsz = Xsqlite3_value_int(tls, pVal) @@ -203379,7 +205376,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).Fpgsz = pgsz } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35733) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35879) { nHashSize = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nHashSize = Xsqlite3_value_int(tls, pVal) @@ -203390,7 +205387,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnHashSize = nHashSize } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35742) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35888) { nAutomerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nAutomerge = Xsqlite3_value_int(tls, pVal) @@ -203404,7 +205401,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnAutomerge = nAutomerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35752) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35898) { nUsermerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nUsermerge = Xsqlite3_value_int(tls, pVal) @@ -203415,7 +205412,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnUsermerge = nUsermerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35762) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35908) { nCrisisMerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nCrisisMerge = Xsqlite3_value_int(tls, pVal) @@ -203432,7 +205429,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnCrisisMerge = nCrisisMerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35774) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35920) { nVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nVal = Xsqlite3_value_int(tls, pVal) @@ -203447,7 +205444,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } (*TFts5Config)(unsafe.Pointer(pConfig)).FnDeleteMerge = nVal } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35410) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35556) { zIn = Xsqlite3_value_text(tls, pVal) rc = _sqlite3Fts5ConfigParseRank(tls, zIn, bp, bp+4) if rc == SQLITE_OK { @@ -203462,7 +205459,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35786) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35932) { bVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { bVal = Xsqlite3_value_int(tls, pVal) @@ -203504,7 +205501,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in var _ /* p at bp+0 */ uintptr var _ /* rc at bp+4 */ int32 _, _, _, _, _ = iVersion, pVal, zK, zSelect, zSql - zSelect = __ccgo_ts + 35800 + zSelect = __ccgo_ts + 35946 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 4)) = SQLITE_OK iVersion = 0 @@ -203525,7 +205522,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in for int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zK = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) pVal = Xsqlite3_column_value(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) - if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35832) { + if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35978) { iVersion = Xsqlite3_value_int(tls, pVal) } else { *(*int32)(unsafe.Pointer(bp + 8)) = 0 @@ -203538,7 +205535,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in *(*int32)(unsafe.Pointer(bp + 4)) = int32(SQLITE_ERROR) if (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg != 0 { _ = libc.Int32FromInt32(0) - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35840, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35986, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = iVersion @@ -203760,7 +205757,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr } } if int32(*(*int8)(unsafe.Pointer(z2))) == int32('\000') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35911, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36057, 0) return FTS5_EOF } goto _1 @@ -203771,7 +205768,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(z2) - int32(z) default: if _sqlite3Fts5IsBareword(tls, *(*int8)(unsafe.Pointer(z))) == 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35931, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36077, libc.VaList(bp+8, z)) return FTS5_EOF } tok = int32(FTS5_STRING) @@ -203786,13 +205783,13 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr z21++ } (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(z21) - int32(z) - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35962, uint32(2)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36108, uint32(2)) == 0 { tok = int32(FTS5_OR) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35965, uint32(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36111, uint32(3)) == 0 { tok = int32(FTS5_NOT) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30706, uint32(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30852, uint32(3)) == 0 { tok = int32(FTS5_AND) } break @@ -204213,6 +206210,7 @@ func _fts5ExprSynonymList(tls *libc.TLS, pTerm uintptr, iRowid Ti64, pBuf uintpt *(*int32)(unsafe.Pointer(pn)) = (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn } } + goto synonym_poslist_out synonym_poslist_out: ; if aIter != bp { @@ -204345,6 +206343,7 @@ func _fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMat i++ } } + goto ismatch_out ismatch_out: ; *(*int32)(unsafe.Pointer(pbMatch)) = libc.BoolInt32((*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn > 0) @@ -204552,6 +206551,7 @@ func _fts5ExprNearIsMatch(tls *libc.TLS, pRc uintptr, pNear uintptr) (r int32) { goto ismatch_out } } + goto ismatch_out ismatch_out: ; bRet = libc.BoolInt32((*TFts5Buffer)(unsafe.Pointer((*(*TFts5NearTrimmer)(unsafe.Pointer(a))).FpOut)).Fn > 0) @@ -205897,8 +207897,8 @@ func _sqlite3Fts5ExprClonePhrase(tls *libc.TLS, pExpr uintptr, iPhrase int32, pp func _sqlite3Fts5ParseNear(tls *libc.TLS, pParse uintptr, pTok uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+35969, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint32(4)) != 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34750, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) + if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+36115, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint32(4)) != 0 { + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34896, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) } } @@ -205918,7 +207918,7 @@ func _sqlite3Fts5ParseSetDistance(tls *libc.TLS, pParse uintptr, pNear uintptr, } c = *(*int8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i))) if int32(c) < int32('0') || int32(c) > int32('9') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35974, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36120, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) return } nNear = nNear*int32(10) + (int32(*(*int8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i)))) - int32('0')) @@ -206058,7 +208058,7 @@ func _sqlite3Fts5ParseColset(tls *libc.TLS, pParse uintptr, pColset uintptr, p u iCol++ } if iCol == (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21016, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21148, libc.VaList(bp+8, z)) } else { pRet = _fts5ParseColset(tls, pParse, pColset, iCol) } @@ -206185,7 +208185,7 @@ func _sqlite3Fts5ParseSetColset(tls *libc.TLS, pParse uintptr, pExpr uintptr, pC var _ /* pFree at bp+0 */ uintptr *(*uintptr)(unsafe.Pointer(bp)) = pColset if (*TFts5Config)(unsafe.Pointer((*TFts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FeDetail == int32(FTS5_DETAIL_NONE) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36003, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36149, 0) } else { _fts5ParseSetColset(tls, pParse, pExpr, pColset, bp) } @@ -206382,11 +208382,11 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin pPhrase = *(*uintptr)(unsafe.Pointer(pNear + 12)) if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase != int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 0 && (*(*TFts5ExprTerm)(unsafe.Pointer(pPhrase + 20))).FbFirst != 0 { if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase == int32(1) { - v2 = __ccgo_ts + 36056 + v2 = __ccgo_ts + 36202 } else { - v2 = __ccgo_ts + 35969 + v2 = __ccgo_ts + 36115 } - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36063, libc.VaList(bp+8, v2)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36209, libc.VaList(bp+8, v2)) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -206395,7 +208395,7 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin _fts5ExprAddChildren(tls, pRet, pLeft) _fts5ExprAddChildren(tls, pRet, pRight) if (*TFts5ExprNode)(unsafe.Pointer(pRet)).FiHeight > int32(SQLITE_FTS5_MAX_EXPR_DEPTH) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36113, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36259, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -208564,7 +210564,7 @@ func _fts5DataRead(tls *libc.TLS, p uintptr, iRowid Ti64) (r uintptr) { ** to the requested entry. */ if (*TFts5Index)(unsafe.Pointer(p)).FpReader == uintptr(0) && rc == SQLITE_OK { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36166, iRowid, 0, p+48) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36312, iRowid, 0, p+48) } /* If either of the sqlite3_blob_open() or sqlite3_blob_reopen() calls ** above returned SQLITE_ERROR, return SQLITE_CORRUPT_VTAB instead. @@ -208658,7 +210658,7 @@ func _fts5DataWrite(tls *libc.TLS, p uintptr, iRowid Ti64, pData uintptr, nData } if (*TFts5Index)(unsafe.Pointer(p)).FpWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+52, Xsqlite3_mprintf(tls, __ccgo_ts+36172, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+52, Xsqlite3_mprintf(tls, __ccgo_ts+36318, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return } @@ -208687,7 +210687,7 @@ func _fts5DataDelete(tls *libc.TLS, p uintptr, iFirst Ti64, iLast Ti64) { } if (*TFts5Index)(unsafe.Pointer(p)).FpDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36223, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36369, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if _fts5IndexPrepareStmt(tls, p, p+56, zSql) != 0 { return } @@ -208721,7 +210721,7 @@ func _fts5DataRemoveSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { } if (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+36272, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+36418, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter, int32(1), iSegid) @@ -208891,7 +210891,7 @@ func _fts5StructureDecode(tls *libc.TLS, pData uintptr, nData int32, piCookie ui } i = int32(4) /* Check if this is a V2 structure record. Set bStructureV2 if it is. */ - if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36312, uint32(4)) { + if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36458, uint32(4)) { i += int32(4) bStructureV2 = int32(1) } @@ -209084,7 +211084,7 @@ func _fts5IndexDataVersion(tls *libc.TLS, p uintptr) (r Ti64) { iVersion = 0 if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*TFts5Index)(unsafe.Pointer(p)).FpDataVersion == uintptr(0) { - (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+84, Xsqlite3_mprintf(tls, __ccgo_ts+36317, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) + (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+84, Xsqlite3_mprintf(tls, __ccgo_ts+36463, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return 0 } @@ -209172,7 +211172,7 @@ func _fts5StructureWrite(tls *libc.TLS, p uintptr, pStruct uintptr) { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = int32(4) if (*TFts5Structure)(unsafe.Pointer(pStruct)).FnOriginCntr > uint64(0) { _ = libc.Int32FromInt32(0) - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36312, uint32(4)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36458, uint32(4)) *(*int32)(unsafe.Pointer(bp + 4)) += int32(4) } *(*int32)(unsafe.Pointer(bp + 4)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), uint64((*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel)) @@ -210150,6 +212150,7 @@ func _fts5SegIterNext_None(tls *libc.TLS, p uintptr, pIter uintptr, pbNewTerm ui } _fts5SegIterLoadNPos(tls, p, pIter) return + goto next_none_eof next_none_eof: ; _fts5DataRelease(tls, (*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf) @@ -210526,6 +212527,7 @@ func _fts5LeafSeek(tls *libc.TLS, p uintptr, bGe int32, pIter uintptr, pTerm uin *(*Tu32)(unsafe.Pointer(bp)) += uint32(_sqlite3Fts5GetVarint32(tls, a+uintptr(*(*Tu32)(unsafe.Pointer(bp))), bp+4)) } } + goto search_failed search_failed: ; if bGe == 0 { @@ -210557,6 +212559,7 @@ search_failed: } } } + goto search_success search_success: ; if int64(*(*Tu32)(unsafe.Pointer(bp)))+int64(*(*Tu32)(unsafe.Pointer(bp + 8))) > int64(n) || *(*Tu32)(unsafe.Pointer(bp + 8)) < uint32(1) { @@ -210586,7 +212589,7 @@ func _fts5IdxSelectStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+68, Xsqlite3_mprintf(tls, __ccgo_ts+36340, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+68, Xsqlite3_mprintf(tls, __ccgo_ts+36486, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect } @@ -210678,7 +212681,7 @@ func _fts5IdxNextStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+72, Xsqlite3_mprintf(tls, __ccgo_ts+36424, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+72, Xsqlite3_mprintf(tls, __ccgo_ts+36570, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect } @@ -211810,6 +213813,7 @@ func _fts5IterSetOutputs_Col100(tls *libc.TLS, pIter uintptr, pSeg uintptr) { iPrevOut = iPrev } } + goto setoutputs_col_out setoutputs_col_out: ; (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*TFts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp @@ -212035,6 +214039,7 @@ func _fts5MultiIterNew(tls *libc.TLS, p uintptr, pStruct uintptr, flags int32, p _fts5MultiIterFree(tls, pNew) *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) } + goto fts5MultiIterNew_post_check fts5MultiIterNew_post_check: ; _ = libc.Int32FromInt32(0) @@ -212354,7 +214359,7 @@ func _fts5WriteFlushBtree(tls *libc.TLS, p uintptr, pWriter uintptr) { if (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn > 0 { v1 = (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fp } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } z = v1 /* The following was already done in fts5WriteInit(): */ @@ -212723,7 +214728,7 @@ func _fts5WriteInit(tls *libc.TLS, p uintptr, pWriter uintptr, iSegid int32) { _sqlite3Fts5BufferSize(tls, p+40, pWriter+4+8, uint32(nBuffer)) if (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+60, Xsqlite3_mprintf(tls, __ccgo_ts+36506, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+60, Xsqlite3_mprintf(tls, __ccgo_ts+36652, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { /* Initialize the 4-byte leaf-page header to 0x00. */ @@ -213224,7 +215229,7 @@ func _fts5SecureDeleteIdxEntry(tls *libc.TLS, p uintptr, iSegid int32, iPgno int if iPgno != int32(1) { _ = libc.Int32FromInt32(0) if (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx == uintptr(0) { - _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36563, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36709, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx, int32(1), iSegid) @@ -214764,7 +216769,7 @@ func _sqlite3Fts5IndexReinit(tls *libc.TLS, p uintptr) (r int32) { if (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FbContentlessDelete != 0 { (*(*TFts5Structure)(unsafe.Pointer(bp))).FnOriginCntr = uint64(1) } - _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1648, 0) + _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1662, 0) _fts5StructureWrite(tls, p, bp) return _fts5IndexReturn(tls, p) } @@ -214791,11 +216796,11 @@ func _sqlite3Fts5IndexOpen(tls *libc.TLS, pConfig uintptr, bCreate int32, pp uin if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Index)(unsafe.Pointer(p)).FpConfig = pConfig (*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit = int32(FTS5_WORK_UNIT) - (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36624, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36770, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl != 0 && bCreate != 0 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25741, __ccgo_ts+36632, 0, pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25887, __ccgo_ts+36778, 0, pzErr) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11793, __ccgo_ts+36667, int32(1), pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11918, __ccgo_ts+36813, int32(1), pzErr) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5IndexReinit(tls, p) @@ -215334,7 +217339,7 @@ func _fts5SetupTokendataIter(tls *libc.TLS, p uintptr, pToken uintptr, nToken in pNew = _fts5MultiIterAlloc(tls, p, (*TFts5Structure)(unsafe.Pointer(pStruct)).FnSegment) if pSmall != 0 { _sqlite3Fts5BufferSet(tls, p+40, bp, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fn, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fp) - _sqlite3Fts5BufferAppendBlob(tls, p+40, bp, uint32(1), __ccgo_ts+36711) + _sqlite3Fts5BufferAppendBlob(tls, p+40, bp, uint32(1), __ccgo_ts+36857) } else { _sqlite3Fts5BufferSet(tls, p+40, bp, nToken, pToken) } @@ -215864,7 +217869,7 @@ func _sqlite3Fts5IndexSetCookie(tls *libc.TLS, p uintptr, iNew int32) (r int32) *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) _ = libc.Int32FromInt32(0) _sqlite3Fts5Put32(tls, bp, iNew) - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36166, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+4) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36312, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+4) if rc == SQLITE_OK { Xsqlite3_blob_write(tls, *(*uintptr)(unsafe.Pointer(bp + 4)), bp, int32(4), 0) rc = Xsqlite3_blob_close(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) @@ -216463,7 +218468,7 @@ func _fts5IndexIntegrityCheckSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { if (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst == 0 { return } - _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36713, libc.VaList(bp+24, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) + _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36859, libc.VaList(bp+24, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) /* Iterate through the b-tree hierarchy. */ for (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { /* Data for this leaf */ zIdxTerm = Xsqlite3_column_blob(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -216696,7 +218701,7 @@ func _sqlite3Fts5IndexIntegrityCheck(tls *libc.TLS, p uintptr, cksum Tu64, bUseC } else { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = 0 _fts5SegiterPoslist(tls, p, *(*uintptr)(unsafe.Pointer(bp + 12))+72+uintptr((*(*TFts5CResult)(unsafe.Pointer((*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12)))).FaFirst + 1*4))).FiFirst)*96, uintptr(0), bp) - _sqlite3Fts5BufferAppendBlob(tls, p+40, bp, uint32(4), __ccgo_ts+36799) + _sqlite3Fts5BufferAppendBlob(tls, p+40, bp, uint32(4), __ccgo_ts+36945) for 0 == _sqlite3Fts5PoslistNext64(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn, bp+32, bp+24) { iCol = int32(*(*Ti64)(unsafe.Pointer(bp + 24)) >> libc.Int32FromInt32(32)) iTokOff = int32(*(*Ti64)(unsafe.Pointer(bp + 24)) & libc.Int64FromInt32(0x7FFFFFFF)) @@ -217294,7 +219299,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36804, 0) + (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36950, 0) return int32(SQLITE_ERROR) } idxStr = Xsqlite3_malloc(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint*int32(8)+int32(1)) @@ -217334,7 +219339,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v3 = iIdxStr iIdxStr++ *(*int8)(unsafe.Pointer(idxStr + uintptr(v3))) = int8('M') - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5138, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5202, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) _ = libc.Int32FromInt32(0) } @@ -217356,7 +219361,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v6 = int32('G') } *(*int8)(unsafe.Pointer(idxStr + uintptr(v5))) = int8(v6) - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5138, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5202, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) iCons++ v7 = iCons @@ -217798,7 +219803,7 @@ func _fts5NextMethod(tls *libc.TLS, pCursor uintptr) (r int32) { *(*int32)(unsafe.Pointer(pCsr + 56)) |= int32(FTS5CSR_EOF) rc = Xsqlite3_reset(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpStmt) if rc != SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } } else { rc = SQLITE_OK @@ -217825,7 +219830,7 @@ func _fts5PrepareStatement(tls *libc.TLS, ppStmt uintptr, pConfig uintptr, zFmt } else { rc = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } Xsqlite3_free(tls, zSql) } @@ -217860,21 +219865,21 @@ func _fts5CursorFirstSorted(tls *libc.TLS, pTab uintptr, pCsr uintptr, bDesc int ** ** If SQLite a built-in statement cache, this wouldn't be a problem. */ if zRankArgs != 0 { - v1 = __ccgo_ts + 14990 + v1 = __ccgo_ts + 15083 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } if zRankArgs != 0 { v2 = zRankArgs } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } if bDesc != 0 { - v3 = __ccgo_ts + 36843 + v3 = __ccgo_ts + 36989 } else { - v3 = __ccgo_ts + 36848 + v3 = __ccgo_ts + 36994 } - rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+36852, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) + rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+36998, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpSorter = pSorter if rc == SQLITE_OK { _ = libc.Int32FromInt32(0) @@ -217934,14 +219939,14 @@ func _fts5SpecialMatch(tls *libc.TLS, pTab uintptr, pCsr uintptr, zQuery uintptr } _ = libc.Int32FromInt32(0) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan = int32(FTS5_PLAN_SPECIAL) - if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+36907, z, n) { + if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+37053, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = int64(_sqlite3Fts5IndexReads(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)) } else { - if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5481, z, n) { + if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5545, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId } else { /* An unrecognized directive. Return an error message. */ - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36913, libc.VaList(bp+8, n, z)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37059, libc.VaList(bp+8, n, z)) rc = int32(SQLITE_ERROR) } } @@ -217991,7 +219996,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { zRank = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank zRankArgs = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs if zRankArgs != 0 { - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36941, libc.VaList(bp+16, zRankArgs)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37087, libc.VaList(bp+16, zRankArgs)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp+4, uintptr(0)) @@ -218027,7 +220032,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { pAux = _fts5FindAuxiliary(tls, pTab, zRank) if pAux == uintptr(0) { _ = libc.Int32FromInt32(0) - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36951, libc.VaList(bp+16, zRank)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37097, libc.VaList(bp+16, zRank)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -218061,7 +220066,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui *(*int32)(unsafe.Pointer(pCsr + 56)) |= int32(FTS5CSR_FREE_ZRANK) } else { if rc == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36972, libc.VaList(bp+16, z)) + (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37118, libc.VaList(bp+16, z)) } } } else { @@ -218069,7 +220074,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRank (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRankArgs } else { - (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 34904 + (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 35050 (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = uintptr(0) } } @@ -218120,7 +220125,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint iIdxStr = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36804, 0) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36950, 0) return int32(SQLITE_ERROR) } if (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan != 0 { @@ -218150,7 +220155,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint case int32('M'): zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*4))) if zText == uintptr(0) { - zText = __ccgo_ts + 1648 + zText = __ccgo_ts + 1662 } iCol = 0 for cond := true; cond; cond = int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) <= int32('9') { @@ -218278,7 +220283,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent == uintptr(0) { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37005, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37151, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) rc = int32(SQLITE_ERROR) } else { /* This is either a full-table scan (ePlan==FTS5_PLAN_SCAN) or a lookup @@ -218303,6 +220308,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } } + goto filter_out filter_out: ; _sqlite3Fts5ExprFree(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -218421,7 +220427,7 @@ func _fts5SeekCursor(tls *libc.TLS, pCsr uintptr, bErrormsg int32) (r int32) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< int32(1) { - v1 = __ccgo_ts + 20869 + v1 = __ccgo_ts + 21001 } else { - v1 = __ccgo_ts + 37283 + v1 = __ccgo_ts + 37429 } - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37295, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37441, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if nArg == int32(1) { @@ -218686,7 +220692,7 @@ func _fts5UpdateMethod(tls *libc.TLS, pVtab uintptr, nArg int32, apVal uintptr, } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && bUpdateOrDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FbSecureDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion == int32(FTS5_CURRENT_VERSION) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35832, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35978, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = int32(FTS5_CURRENT_VERSION_SECUREDELETE) } @@ -219487,7 +221493,7 @@ func _fts5ApiCallback(tls *libc.TLS, context uintptr, argc int32, argv uintptr) iCsrId = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) pCsr = _fts5CursorFromCsrid(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal, iCsrId) if pCsr == uintptr(0) || (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan == 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37332, libc.VaList(bp+8, iCsrId)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37478, libc.VaList(bp+8, iCsrId)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } else { @@ -219679,7 +221685,7 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg = uintptr(0) } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 && Xsqlite3_vtab_nochange(tls, pCtx) != 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37353, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37499, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -219922,7 +221928,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr if pMod == uintptr(0) { _ = libc.Int32FromInt32(0) rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37424, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37570, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) } else { if azArg != 0 { v2 = azArg + 1*4 @@ -219938,7 +221944,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr (*TFts5Config)(unsafe.Pointer(pConfig)).FpTokApi = pMod + 8 if rc != SQLITE_OK { if pzErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37446, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37592, 0) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FePattern = _sqlite3Fts5TokenizerPattern(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pMod)).Fx.FxCreate, (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok) @@ -219994,7 +222000,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { pGlobal = Xsqlite3_user_data(tls, pCtx) _ = nArg _ = libc.Int32FromInt32(0) - ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37477) + ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37623) if ppApi != 0 { *(*uintptr)(unsafe.Pointer(ppApi)) = pGlobal } @@ -220009,7 +222015,7 @@ func _fts5SourceIdFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apUnused uintptr _ = libc.Int32FromInt32(0) _ = nArg _ = apUnused - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37490, -int32(1), uintptr(-libc.Int32FromInt32(1))) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37636, -int32(1), uintptr(-libc.Int32FromInt32(1))) } // C documentation @@ -220038,11 +222044,11 @@ func _fts5ShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName2 = [5]uintptr{ - 0: __ccgo_ts + 37581, - 1: __ccgo_ts + 35093, - 2: __ccgo_ts + 25741, - 3: __ccgo_ts + 35660, - 4: __ccgo_ts + 11793, + 0: __ccgo_ts + 37727, + 1: __ccgo_ts + 35239, + 2: __ccgo_ts + 25887, + 3: __ccgo_ts + 35806, + 4: __ccgo_ts + 11918, } // C documentation @@ -220056,21 +222062,27 @@ func _fts5IntegrityMethod(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zTabnam bp := tls.Alloc(32) defer tls.Free(32) var pTab uintptr - var rc int32 - _, _ = pTab, rc + var rc, v1 int32 + _, _, _ = pTab, rc, v1 pTab = pVtab _ = libc.Int32FromInt32(0) _ = isQuick rc = _sqlite3Fts5StorageIntegrity(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, 0) if rc&int32(0xff) == int32(SQLITE_CORRUPT) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37588, libc.VaList(bp+8, zSchema, zTabname)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37734, libc.VaList(bp+8, zSchema, zTabname)) + if *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { + v1 = SQLITE_OK + } else { + v1 = int32(SQLITE_NOMEM) + } + rc = v1 } else { if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37634, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37780, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) } } _sqlite3Fts5IndexCloseReader(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex) - return SQLITE_OK + return rc } func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { @@ -220089,7 +222101,7 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateFunction = __ccgo_fp(_fts5CreateAux) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateTokenizer = __ccgo_fp(_fts5CreateTokenizer) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxFindTokenizer = __ccgo_fp(_fts5FindTokenizer) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37697, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37843, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) if rc == SQLITE_OK { rc = _sqlite3Fts5IndexInit(tls, db) } @@ -220106,10 +222118,10 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { rc = _sqlite3Fts5VocabInit(tls, pGlobal, db) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37697, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37843, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37702, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37848, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) } } /* If SQLITE_FTS5_ENABLE_TEST_MI is defined, assume that the file @@ -220214,17 +222226,17 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(p + 24 + uintptr(eStmt)*4)) == uintptr(0) { azStmt = [11]uintptr{ - 0: __ccgo_ts + 37717, - 1: __ccgo_ts + 37785, - 2: __ccgo_ts + 37854, - 3: __ccgo_ts + 37887, - 4: __ccgo_ts + 37926, - 5: __ccgo_ts + 37966, - 6: __ccgo_ts + 38005, - 7: __ccgo_ts + 38048, - 8: __ccgo_ts + 38087, - 9: __ccgo_ts + 38131, - 10: __ccgo_ts + 38171, + 0: __ccgo_ts + 37863, + 1: __ccgo_ts + 37931, + 2: __ccgo_ts + 38000, + 3: __ccgo_ts + 38033, + 4: __ccgo_ts + 38072, + 5: __ccgo_ts + 38112, + 6: __ccgo_ts + 38151, + 7: __ccgo_ts + 38194, + 8: __ccgo_ts + 38233, + 9: __ccgo_ts + 38277, + 10: __ccgo_ts + 38317, } pC = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig zSql = uintptr(0) @@ -220261,16 +222273,16 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, } case int32(FTS5_STMT_REPLACE_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v2 = __ccgo_ts + 38194 + v2 = __ccgo_ts + 38340 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName, v2)) case int32(FTS5_STMT_LOOKUP_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v3 = __ccgo_ts + 38197 + v3 = __ccgo_ts + 38343 } else { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, v3, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName)) default: @@ -220289,7 +222301,7 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, (*TFts5Config)(unsafe.Pointer((*TFts5Storage)(unsafe.Pointer(p)).FpConfig)).FbLock-- Xsqlite3_free(tls, zSql) if rc != SQLITE_OK && pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) } } } @@ -220326,12 +222338,12 @@ func _sqlite3Fts5DropAll(tls *libc.TLS, pConfig uintptr) (r int32) { defer tls.Free(64) var rc int32 _ = rc - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38205, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38351, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38309, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38455, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38347, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38493, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } return rc } @@ -220340,7 +222352,7 @@ func _fts5StorageRenameOne(tls *libc.TLS, pConfig uintptr, pRc uintptr, zTail ui bp := tls.Alloc(48) defer tls.Free(48) if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38385, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) + *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38531, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) } } @@ -220352,14 +222364,14 @@ func _sqlite3Fts5StorageRename(tls *libc.TLS, pStorage uintptr, zName uintptr) ( _ = pConfig pConfig = (*TFts5Storage)(unsafe.Pointer(pStorage)).FpConfig *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageSync(tls, pStorage) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25741, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11793, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37581, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25887, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11918, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37727, zName) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35660, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35806, zName) } if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35093, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35239, zName) } return *(*int32)(unsafe.Pointer(bp)) } @@ -220379,13 +222391,13 @@ func _sqlite3Fts5CreateTable(tls *libc.TLS, pConfig uintptr, zPost uintptr, zDef _, _ = rc, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if bWithout != 0 { - v1 = __ccgo_ts + 30381 + v1 = __ccgo_ts + 30527 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38427, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38573, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38457, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38603, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -220426,36 +222438,36 @@ func _sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCr if zDefn == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38501, 0) + Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38647, 0) iOff = int32(libc.Xstrlen(tls, zDefn)) i = 0 for { if !(i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } - Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38524, libc.VaList(bp+8, i)) + Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38670, libc.VaList(bp+8, i)) iOff += int32(libc.Xstrlen(tls, zDefn+uintptr(iOff))) goto _2 _2: ; i++ } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35093, zDefn, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35239, zDefn, 0, pzErr) } Xsqlite3_free(tls, zDefn) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - zCols = __ccgo_ts + 38530 + zCols = __ccgo_ts + 38676 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 { - zCols = __ccgo_ts + 38562 + zCols = __ccgo_ts + 38708 } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35660, zCols, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35806, zCols, 0, pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37581, __ccgo_ts+38610, int32(1), pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37727, __ccgo_ts+38756, int32(1), pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35832, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35978, uintptr(0), int32(FTS5_CURRENT_VERSION)) } } if rc != 0 { @@ -220802,9 +222814,9 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig (*TFts5Storage)(unsafe.Pointer(p)).FbTotalsValid = 0 /* Delete the contents of the %_data and %_docsize tables. */ - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38627, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38773, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38677, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38823, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } /* Reinitialize the %_data table. This call creates the initial structure ** and averages records. */ @@ -220812,7 +222824,7 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3Fts5IndexReinit(tls, (*TFts5Storage)(unsafe.Pointer(p)).FpIndex) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35832, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35978, uintptr(0), int32(FTS5_CURRENT_VERSION)) } return rc } @@ -221026,7 +223038,7 @@ func _fts5StorageCount(tls *libc.TLS, p uintptr, zSuffix uintptr, pnRow uintptr) var _ /* pCnt at bp+0 */ uintptr _, _, _ = pConfig, rc, zSql pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38706, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38852, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -221237,14 +223249,14 @@ func _sqlite3Fts5StorageIntegrity(tls *libc.TLS, p uintptr, iArg int32) (r int32 ** number of rows. */ if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { *(*Ti64)(unsafe.Pointer(bp + 40)) = 0 - rc = _fts5StorageCount(tls, p, __ccgo_ts+35093, bp+40) + rc = _fts5StorageCount(tls, p, __ccgo_ts+35239, bp+40) if rc == SQLITE_OK && *(*Ti64)(unsafe.Pointer(bp + 40)) != (*TFts5Storage)(unsafe.Pointer(p)).FnTotalRow { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<= int32('A') && int32(*(*uint8)(unsafe.Pointer(zCsr))) <= int32('Z') { @@ -222174,6 +224188,7 @@ _5: goto _2 _1: ; + goto tokenize_done tokenize_done: ; if rc == int32(SQLITE_DONE) { @@ -222237,7 +224252,7 @@ func _fts5PorterCreate(tls *libc.TLS, pCtx uintptr, azArg uintptr, nArg int32, p pApi = pCtx rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zBase = __ccgo_ts + 38798 + zBase = __ccgo_ts + 38944 if nArg > 0 { zBase = *(*uintptr)(unsafe.Pointer(azArg)) } @@ -222454,64 +224469,64 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38808, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38954, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38811, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38957, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38816, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38962, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('e'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38821, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38967, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38824, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38970, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('l'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38827, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38973, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38832, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38978, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38837, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38983, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38841, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38987, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38847, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38993, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38852, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38998, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -222520,49 +224535,49 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38856, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39002, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1_and_S_or_T(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38860, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39006, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } } case int32('s'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38863, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39009, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('t'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38867, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39013, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38871, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39017, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38875, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39021, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38879, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39025, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('z'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38883, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39029, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -222579,20 +224594,20 @@ func _fts5PorterStep1B2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38887, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38867, uint32(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39033, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39013, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('b'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38890, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38893, uint32(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39036, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39039, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38897, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38883, uint32(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39043, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39029, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } @@ -222608,75 +224623,75 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38900, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39046, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38867, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39013, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38908, aBuf+uintptr(nBuf-int32(6)), uint32(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39054, aBuf+uintptr(nBuf-int32(6)), uint32(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38915, uint32(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39061, uint32(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(4) } } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38920, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39066, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38816, uint32(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38962, uint32(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38925, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39071, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38811, uint32(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38957, uint32(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } } case int32('e'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38930, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39076, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38883, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39029, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('g'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38935, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39081, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15907, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15986, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('l'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38940, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39086, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38893, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39039, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38944, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39090, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38808, uint32(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38954, uint32(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38949, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39095, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38852, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38998, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38955, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39101, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38959, uint32(1)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39105, uint32(1)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(1) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38961, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39107, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38875, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39021, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } @@ -222685,48 +224700,48 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38967, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39113, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38883, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39029, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38975, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39121, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38867, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39013, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38981, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39127, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38867, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39013, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } } } case int32('s'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38986, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39132, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38808, uint32(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38954, uint32(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38992, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39138, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38879, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39025, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39000, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39146, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39008, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39154, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39012, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39158, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38875, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39021, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } @@ -222734,21 +224749,21 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39020, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39166, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38808, uint32(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38954, uint32(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39026, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39172, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38879, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39025, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39032, aBuf+uintptr(nBuf-int32(6)), uint32(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39178, aBuf+uintptr(nBuf-int32(6)), uint32(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38893, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39039, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(3) } } @@ -222766,48 +224781,48 @@ func _fts5PorterStep3(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39039, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39185, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38824, uint32(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38970, uint32(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } case int32('s'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39044, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39190, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39049, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39195, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38824, uint32(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38970, uint32(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39055, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39201, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38824, uint32(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38970, uint32(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39008, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39154, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39061, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39207, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } case int32('z'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39067, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39213, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38808, uint32(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38954, uint32(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } @@ -222823,13 +224838,13 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('e'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39073, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39219, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39077, uint32(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39223, uint32(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(2) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39080, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39226, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) ret = int32(1) @@ -222837,7 +224852,7 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39083, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39229, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) ret = int32(1) @@ -222923,6 +224938,7 @@ func _fts5PorterCb(tls *libc.TLS, pCtx uintptr, tflags int32, pToken uintptr, nT *(*int32)(unsafe.Pointer(bp))-- } return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, aBuf, *(*int32)(unsafe.Pointer(bp)), iStart, iEnd) + goto pass_through pass_through: ; return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, pToken, nToken, iStart, iEnd) @@ -222998,14 +225014,14 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p break } zArg = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+int32(1))*4)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*4)), __ccgo_ts+39087) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*4)), __ccgo_ts+39233) { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || *(*int8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { (*TTrigramTokenizer)(unsafe.Pointer(pNew)).FbFold = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('0')) } } else { - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*4)), __ccgo_ts+38780) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*4)), __ccgo_ts+38926) { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('2') || *(*int8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { @@ -223280,7 +225296,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { Fx Tfts5_tokenizer }{ 0: { - FzName: __ccgo_ts + 38798, + FzName: __ccgo_ts + 38944, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5UnicodeCreate), FxDelete: __ccgo_fp(_fts5UnicodeDelete), @@ -223288,7 +225304,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 1: { - FzName: __ccgo_ts + 39102, + FzName: __ccgo_ts + 39248, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5AsciiCreate), FxDelete: __ccgo_fp(_fts5AsciiDelete), @@ -223296,7 +225312,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 2: { - FzName: __ccgo_ts + 39108, + FzName: __ccgo_ts + 39254, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5PorterCreate), FxDelete: __ccgo_fp(_fts5PorterDelete), @@ -223304,7 +225320,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 3: { - FzName: __ccgo_ts + 39115, + FzName: __ccgo_ts + 39261, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5TriCreate), FxDelete: __ccgo_fp(_fts5TriDelete), @@ -228849,16 +230865,16 @@ func _fts5VocabTableType(tls *libc.TLS, zType uintptr, pzErr uintptr, peType uin zCopy = _sqlite3Fts5Strndup(tls, bp, zType, -int32(1)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { _sqlite3Fts5Dequote(tls, zCopy) - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39123) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39269) == 0 { *(*int32)(unsafe.Pointer(peType)) = FTS5_VOCAB_COL } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39127) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39273) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_ROW) } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39131) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39277) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_INSTANCE) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39140, libc.VaList(bp+16, zCopy)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39286, libc.VaList(bp+16, zCopy)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -228927,15 +230943,15 @@ func _fts5VocabInitVtab(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg var _ /* rc at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _ = azSchema, bDb, nByte, nDb, nTab, pRet, zDb, zTab, zType, v1, v2, v3 azSchema = [3]uintptr{ - 0: __ccgo_ts + 39174, - 1: __ccgo_ts + 39214, - 2: __ccgo_ts + 39249, + 0: __ccgo_ts + 39320, + 1: __ccgo_ts + 39360, + 2: __ccgo_ts + 39395, } pRet = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*4))) == uint32(4) && libc.Xmemcmp(tls, __ccgo_ts+23742, *(*uintptr)(unsafe.Pointer(argv + 1*4)), uint32(4)) == 0) + bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*4))) == uint32(4) && libc.Xmemcmp(tls, __ccgo_ts+23865, *(*uintptr)(unsafe.Pointer(argv + 1*4)), uint32(4)) == 0) if argc != int32(5) && bDb == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39292, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39438, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bDb != 0 { @@ -229106,10 +231122,10 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) zSql = uintptr(0) if (*TFts5VocabTable)(unsafe.Pointer(pTab)).FbBusy != 0 { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39325, libc.VaList(bp+16, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39471, libc.VaList(bp+16, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) return int32(SQLITE_ERROR) } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39356, libc.VaList(bp+16, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39502, libc.VaList(bp+16, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, (*TFts5VocabTable)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), bp+4, uintptr(0)) } @@ -229129,7 +231145,7 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39407, libc.VaList(bp+16, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39553, libc.VaList(bp+16, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } else { @@ -229438,7 +231454,7 @@ func _fts5VocabFilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, zUnuse if pLe != 0 { zCopy = Xsqlite3_value_text(tls, pLe) if zCopy == uintptr(0) { - zCopy = __ccgo_ts + 1648 + zCopy = __ccgo_ts + 1662 } (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm = Xsqlite3_value_bytes(tls, pLe) (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm = Xsqlite3_malloc(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm+int32(1)) @@ -229566,7 +231582,7 @@ func _sqlite3Fts5VocabInit(tls *libc.TLS, pGlobal uintptr, db uintptr) (r int32) var p uintptr _ = p p = pGlobal - return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39433, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) + return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39579, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) } var _fts5Vocab = Tsqlite3_module{ @@ -229619,7 +231635,7 @@ func init() { // /************** End of stmt.c ************************************************/ // /* Return the source-id for this library */ func Xsqlite3_sourceid(tls *libc.TLS) (r uintptr) { - return __ccgo_ts + 39443 + return __ccgo_ts + 39589 } type TAggInfo_col = struct { @@ -229899,11 +231915,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]int8{'3', '.', '4', '5', '.', '3'} +var Xsqlite3_version = [7]int8{'3', '.', '4', '6', '.', '0'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-12.2.0\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%04d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00(subquery-%u)\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSmaller\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00PRAGMA \"%w\".integrity_check(%Q)\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00ceiling\x00floor\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00wrong # of entries in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00RIGHT PART OF \x00USE TEMP B-TREE FOR %sORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00parser stack overflow\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-12.2.0\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00ceiling\x00floor\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%04d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00%u-ROW VALUES CLAUSE\x00(subquery-%u)\x00unrecognized token: \"%s\"\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSizeBetween\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: \"%s\" - should this be a string literal in single-quotes?\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00SCAN %S\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00wrong # of entries in index \x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00LAST TERM OF \x00USE TEMP B-TREE FOR %sORDER BY\x00USE TEMP B-TREE FOR LAST %d TERMS OF ORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00syntax error\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00,\n\x00: \x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00 \x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_pretty\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00" type Sqlite3_int64 = sqlite3_int64 type Sqlite3_mutex_methods = sqlite3_mutex_methods diff --git a/vendor/modernc.org/sqlite/lib/sqlite_linux_amd64.go b/vendor/modernc.org/sqlite/lib/sqlite_linux_amd64.go index 915119ad..bc096baf 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_linux_amd64.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_linux_amd64.go @@ -1,4 +1,4 @@ -// Code generated for linux/amd64 by 'generator -mlong-double-64 --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -import runtime -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -extended-errors -o sqlite3.go sqlite3.c -I/tmp/libsqlite3/sqlite-amalgamation-3450300/ccgo -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. +// Code generated for linux/amd64 by 'generator -mlong-double-64 --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libz/include/linux/amd64 -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libtcl8.6/include/linux/amd64 -extended-errors -o sqlite3.go sqlite3.c -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. //go:build linux && amd64 // +build linux,amd64 @@ -10,8 +10,6 @@ import ( "unsafe" "modernc.org/libc" - - "runtime" ) var ( @@ -941,6 +939,7 @@ const OPFLG_IN1 = 2 const OPFLG_IN2 = 4 const OPFLG_IN3 = 8 const OPFLG_JUMP = 1 +const OPFLG_JUMP0 = 128 const OPFLG_NCYCLE = 64 const OPFLG_OUT2 = 16 const OPFLG_OUT3 = 32 @@ -1018,7 +1017,7 @@ const OP_IfNotOpen = 25 const OP_IfNotZero = 60 const OP_IfNullRow = 20 const OP_IfPos = 59 -const OP_IfSmaller = 33 +const OP_IfSizeBetween = 33 const OP_IncrVacuum = 62 const OP_Init = 8 const OP_InitCoroutine = 11 @@ -1447,6 +1446,7 @@ const SF_ComplexResult = 262144 const SF_Compound = 256 const SF_Converted = 65536 const SF_CopyCte = 67108864 +const SF_Correlated = 536870912 const SF_Distinct = 1 const SF_Expanded = 64 const SF_FixedLimit = 16384 @@ -1718,6 +1718,7 @@ const SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT = -1 const SQLITE_DEFAULT_LOOKASIDE = 40 const SQLITE_DEFAULT_MEMSTATUS = 0 const SQLITE_DEFAULT_MMAP_SIZE = 0 +const SQLITE_DEFAULT_OPTIMIZE_LIMIT = 2000 const SQLITE_DEFAULT_PAGE_SIZE = 4096 const SQLITE_DEFAULT_PCACHE_INITSZ = 20 const SQLITE_DEFAULT_PROXYDIR_PERMISSIONS = 493 @@ -1735,6 +1736,7 @@ const SQLITE_DESERIALIZE_READONLY = 4 const SQLITE_DESERIALIZE_RESIZEABLE = 2 const SQLITE_DETACH = 25 const SQLITE_DETERMINISTIC = 2048 +const SQLITE_DIGIT_SEPARATOR = 95 const SQLITE_DIRECTONLY = 524288 const SQLITE_DIRECT_OVERFLOW_READ = 1 const SQLITE_DONE = 101 @@ -2159,7 +2161,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355" +const SQLITE_SOURCE_ID = "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2268,8 +2270,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.45.3" -const SQLITE_VERSION_NUMBER = 3045003 +const SQLITE_VERSION = "3.46.0" +const SQLITE_VERSION_NUMBER = 3046000 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -2396,11 +2398,11 @@ const TF_HasStat1 = 16 const TF_HasStat4 = 8192 const TF_HasStored = 64 const TF_HasVirtual = 32 +const TF_MaybeReanalyze = 256 const TF_NoVisibleRowid = 512 const TF_OOOHidden = 1024 const TF_Readonly = 1 const TF_Shadow = 4096 -const TF_StatsUsed = 256 const TF_Strict = 65536 const TF_WithoutRowid = 128 const TIMER_ABSTIME = 1 @@ -2560,7 +2562,7 @@ const TK_ID = 59 const TK_IF = 18 const TK_IF_NULL_ROW = 179 const TK_IGNORE = 63 -const TK_ILLEGAL = 184 +const TK_ILLEGAL = 185 const TK_IMMEDIATE = 8 const TK_IN = 49 const TK_INDEX = 161 @@ -2608,6 +2610,7 @@ const TK_PRAGMA = 70 const TK_PRECEDING = 88 const TK_PRIMARY = 122 const TK_PTR = 112 +const TK_QNUMBER = 183 const TK_QUERY = 3 const TK_RAISE = 71 const TK_RANGE = 89 @@ -2632,7 +2635,7 @@ const TK_SELECT_COLUMN = 178 const TK_SEMI = 1 const TK_SET = 130 const TK_SLASH = 109 -const TK_SPACE = 183 +const TK_SPACE = 184 const TK_SPAN = 181 const TK_STAR = 108 const TK_STRING = 117 @@ -2645,12 +2648,12 @@ const TK_TRANSACTION = 6 const TK_TRIGGER = 77 const TK_TRUEFALSE = 170 const TK_TRUTH = 175 -const TK_UMINUS = 173 +const TK_UMINUS = 174 const TK_UNBOUNDED = 90 const TK_UNION = 134 const TK_UNIQUE = 123 const TK_UPDATE = 129 -const TK_UPLUS = 174 +const TK_UPLUS = 173 const TK_USING = 144 const TK_VACUUM = 78 const TK_VALUES = 139 @@ -2797,31 +2800,37 @@ const W_OK = 2 const XN_EXPR = -2 const XN_ROWID = -1 const X_OK = 1 +const YYDYNSTACK = 1 const YYFALLBACK = 1 +const YYFREE = 0 +const YYGROWABLESTACK = 1 const YYMALLOCARGTYPE = 0 -const YYNOCODE = 319 +const YYNOCODE = 322 const YYNOERRORRECOVERY = 1 -const YYNRULE = 405 -const YYNRULE_WITH_ACTION = 340 -const YYNSTATE = 579 -const YYNTOKEN = 185 +const YYNRULE = 409 +const YYNRULE_WITH_ACTION = 344 +const YYNSTATE = 583 +const YYNTOKEN = 186 const YYPARSEFREENEVERNULL = 1 +const YYREALLOC = 0 const YYSTACKDEPTH = 100 const YYWILDCARD = 101 -const YY_ACCEPT_ACTION = 1244 -const YY_ACTTAB_COUNT = 2100 -const YY_ERROR_ACTION = 1243 -const YY_MAX_REDUCE = 1650 -const YY_MAX_SHIFT = 578 -const YY_MAX_SHIFTREDUCE = 1242 -const YY_MIN_REDUCE = 1246 -const YY_MIN_SHIFTREDUCE = 838 -const YY_NO_ACTION = 1245 -const YY_REDUCE_COUNT = 410 -const YY_REDUCE_MAX = 1753 -const YY_REDUCE_MIN = -271 -const YY_SHIFT_COUNT = 578 -const YY_SHIFT_MAX = 2088 +const YY_ACCEPT_ACTION = 1255 +const YY_ACTTAB_COUNT = 2142 +const YY_ERROR_ACTION = 1254 +const YY_MAX_DSTRCTR = 319 +const YY_MAX_REDUCE = 1665 +const YY_MAX_SHIFT = 582 +const YY_MAX_SHIFTREDUCE = 1253 +const YY_MIN_DSTRCTR = 205 +const YY_MIN_REDUCE = 1257 +const YY_MIN_SHIFTREDUCE = 845 +const YY_NO_ACTION = 1256 +const YY_REDUCE_COUNT = 411 +const YY_REDUCE_MAX = 1798 +const YY_REDUCE_MIN = -275 +const YY_SHIFT_COUNT = 582 +const YY_SHIFT_MAX = 2128 const YY_SHIFT_MIN = 0 const _CS_GNU_LIBC_VERSION = 2 const _CS_GNU_LIBPTHREAD_VERSION = 3 @@ -3460,6 +3469,9 @@ const fdatasync = 0 const first_valueInvFunc = 0 const first_valueValueFunc = 0 const fts5GetVarint = 0 +const fts5YYDYNSTACK = 0 +const fts5YYFREE = 0 +const fts5YYGROWABLESTACK = 0 const fts5YYMALLOCARGTYPE = 0 const fts5YYNFTS5TOKEN = 16 const fts5YYNOCODE = 27 @@ -3468,13 +3480,16 @@ const fts5YYNRULE = 28 const fts5YYNRULE_WITH_ACTION = 28 const fts5YYNSTATE = 35 const fts5YYPARSEFREENOTNULL = 1 +const fts5YYREALLOC = 0 const fts5YYSTACKDEPTH = 100 const fts5YY_ACCEPT_ACTION = 81 const fts5YY_ACTTAB_COUNT = 105 const fts5YY_ERROR_ACTION = 80 +const fts5YY_MAX_DSTRCTR = 24 const fts5YY_MAX_REDUCE = 110 const fts5YY_MAX_SHIFT = 34 const fts5YY_MAX_SHIFTREDUCE = 79 +const fts5YY_MIN_DSTRCTR = 16 const fts5YY_MIN_REDUCE = 83 const fts5YY_MIN_SHIFTREDUCE = 52 const fts5YY_NO_ACTION = 82 @@ -3896,11 +3911,11 @@ type sqlite3_file1 = Tsqlite3_file1 // ** // ** xLock() upgrades the database file lock. In other words, xLock() moves the // ** database file lock in the direction NONE toward EXCLUSIVE. The argument to -// ** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +// ** xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never // ** SQLITE_LOCK_NONE. If the database file lock is already at or above the // ** requested lock, then the call to xLock() is a no-op. // ** xUnlock() downgrades the database file lock to either SHARED or NONE. -// * If the lock is already at or below the requested lock state, then the call +// ** If the lock is already at or below the requested lock state, then the call // ** to xUnlock() is a no-op. // ** The xCheckReservedLock() method checks whether any database connection, // ** either in this process or in some other process, is holding a RESERVED, @@ -6044,6 +6059,7 @@ type Tsqlite3_changegroup = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -6370,8 +6386,8 @@ type Fts5PhraseIter1 = TFts5PhraseIter1 ** EXTENSION API FUNCTIONS ** ** xUserData(pFts): -** Return a copy of the context pointer the extension function was -** registered with. +** Return a copy of the pUserData pointer passed to the xCreateFunction() +** API when the extension function was registered. ** ** xColumnTotalSize(pFts, iCol, pnToken): ** If parameter iCol is less than zero, set output variable *pnToken @@ -7452,7 +7468,7 @@ type uptr = Tuptr ** 0x00000010 Display sqlite3_index_info xBestIndex calls ** 0x00000020 Range an equality scan metrics ** 0x00000040 IN operator decisions -** 0x00000080 WhereLoop cost adjustements +** 0x00000080 WhereLoop cost adjustments ** 0x00000100 ** 0x00000200 Covering index decisions ** 0x00000400 OR optimization @@ -7964,6 +7980,7 @@ type TParse = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -8185,6 +8202,7 @@ type TSrcItem = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -10461,10 +10479,12 @@ type IdList1 = TIdList1 ** ** Union member validity: ** -** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc -** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy -** u2.pIBIndex fg.isIndexedBy && !fg.isCte -** u2.pCteUse fg.isCte && !fg.isIndexedBy +** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc +** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy +** u1.nRow !fg.isTabFunc && !fg.isIndexedBy +** +** u2.pIBIndex fg.isIndexedBy && !fg.isCte +** u2.pCteUse fg.isCte && !fg.isIndexedBy */ type TSrcItem1 = struct { FpSchema uintptr @@ -10490,6 +10510,7 @@ type TSrcItem1 = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -10893,6 +10914,7 @@ type TParse1 = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -12255,12 +12277,12 @@ var _sqlite3WhereTrace = uint32(0) var _sqlite3OpcodeProperty = [190]uint8{ 4: uint8(0x10), 6: uint8(0x41), - 8: uint8(0x01), + 8: uint8(0x81), 9: uint8(0x01), 10: uint8(0x01), - 11: uint8(0x01), - 12: uint8(0x03), - 13: uint8(0x03), + 11: uint8(0x81), + 12: uint8(0x83), + 13: uint8(0x83), 14: uint8(0x01), 15: uint8(0x01), 16: uint8(0x03), @@ -12268,22 +12290,22 @@ var _sqlite3OpcodeProperty = [190]uint8{ 18: uint8(0x01), 19: uint8(0x12), 20: uint8(0x01), - 21: uint8(0x49), - 22: uint8(0x49), - 23: uint8(0x49), - 24: uint8(0x49), + 21: uint8(0xc9), + 22: uint8(0xc9), + 23: uint8(0xc9), + 24: uint8(0xc9), 25: uint8(0x01), 26: uint8(0x49), 27: uint8(0x49), 28: uint8(0x49), 29: uint8(0x49), - 30: uint8(0x49), + 30: uint8(0xc9), 31: uint8(0x49), - 32: uint8(0x41), + 32: uint8(0xc1), 33: uint8(0x01), 34: uint8(0x41), 35: uint8(0x41), - 36: uint8(0x41), + 36: uint8(0xc1), 37: uint8(0x01), 38: uint8(0x41), 39: uint8(0x41), @@ -12295,7 +12317,7 @@ var _sqlite3OpcodeProperty = [190]uint8{ 45: uint8(0x41), 46: uint8(0x23), 47: uint8(0x0b), - 48: uint8(0x01), + 48: uint8(0x81), 49: uint8(0x01), 50: uint8(0x03), 51: uint8(0x03), @@ -13116,14 +13138,14 @@ func _sqlite3StatusValue(tls *libc.TLS, op int32) (r Tsqlite3_int64) { // ** mark is unchanged. N must be non-negative for StatusDown(). // */ func _sqlite3StatusUp(tls *libc.TLS, op int32, N int32) { - *(*Tsqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Stat)) + uintptr(op)*8)) += int64(N) + *(*Tsqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Stat)) + uintptr(op)*8)) += int64(int64(N)) if *(*Tsqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Stat)) + uintptr(op)*8)) > *(*Tsqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Stat)) + 80 + uintptr(op)*8)) { *(*Tsqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Stat)) + 80 + uintptr(op)*8)) = *(*Tsqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Stat)) + uintptr(op)*8)) } } func _sqlite3StatusDown(tls *libc.TLS, op int32, N int32) { - *(*Tsqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Stat)) + uintptr(op)*8)) -= int64(N) + *(*Tsqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Stat)) + uintptr(op)*8)) -= int64(int64(N)) } // C documentation @@ -13135,7 +13157,7 @@ func _sqlite3StatusDown(tls *libc.TLS, op int32, N int32) { func _sqlite3StatusHighwater(tls *libc.TLS, op int32, X int32) { var newValue Tsqlite3StatValueType _ = newValue - newValue = int64(X) + newValue = int64(int64(X)) if newValue > *(*Tsqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Stat)) + 80 + uintptr(op)*8)) { *(*Tsqlite3StatValueType)(unsafe.Pointer(uintptr(unsafe.Pointer(&_sqlite3Stat)) + 80 + uintptr(op)*8)) = newValue } @@ -13150,7 +13172,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= int32(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(23890)) + return _sqlite3MisuseError(tls, int32(23961)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -13498,43 +13520,37 @@ type itimerspec = Titimerspec // ** A structure for holding a single date and time. // */ type TDateTime = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD int8 - FrawS int8 - FvalidYMD int8 - FvalidHMS int8 - FvalidTZ int8 - FtzSet int8 - FisError int8 - FuseSubsec int8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD int8 + FvalidYMD int8 + FvalidHMS int8 + FnFloor int8 + F__ccgo44 uint8 } type DateTime = TDateTime type TDateTime1 = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD int8 - FrawS int8 - FvalidYMD int8 - FvalidHMS int8 - FvalidTZ int8 - FtzSet int8 - FisError int8 - FuseSubsec int8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD int8 + FvalidYMD int8 + FvalidHMS int8 + FnFloor int8 + F__ccgo44 uint8 } type DateTime1 = TDateTime1 @@ -13595,7 +13611,7 @@ func _getDigits(tls *libc.TLS, zDate uintptr, zFormat uintptr, va uintptr) (r in val = val*int32(10) + int32(*(*int8)(unsafe.Pointer(zDate))) - int32('0') zDate++ } - if val < int32(min) || val > int32(max) || int32(nextC) != 0 && int32(nextC) != int32(*(*int8)(unsafe.Pointer(zDate))) { + if val < int32(int32(min)) || val > int32(int32(max)) || int32(int32(nextC)) != 0 && int32(int32(nextC)) != int32(*(*int8)(unsafe.Pointer(zDate))) { goto end_getDigits } *(*int32)(unsafe.Pointer(libc.VaUintptr(&ap))) = val @@ -13603,6 +13619,7 @@ func _getDigits(tls *libc.TLS, zDate uintptr, zFormat uintptr, va uintptr) (r in cnt++ zFormat += uintptr(4) } + goto end_getDigits end_getDigits: ; _ = ap @@ -13659,6 +13676,8 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } else { if c == int32('Z') || c == int32('z') { zDate++ + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) goto zulu_time } else { return libc.BoolInt32(c != 0) @@ -13671,12 +13690,12 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } zDate += uintptr(5) (*TDateTime)(unsafe.Pointer(p)).Ftz = sgn * (*(*int32)(unsafe.Pointer(bp + 4)) + *(*int32)(unsafe.Pointer(bp))*int32(60)) + goto zulu_time zulu_time: ; for int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zDate)))])&int32(0x01) != 0 { zDate++ } - (*TDateTime)(unsafe.Pointer(p)).FtzSet = int8(1) return libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zDate))) != 0) } @@ -13693,11 +13712,10 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var ms, rScale float64 - var v1 int32 var _ /* h at bp+0 */ int32 var _ /* m at bp+4 */ int32 var _ /* s at bp+8 */ int32 - _, _, _ = ms, rScale, v1 + _, _ = ms, rScale ms = float64(0) if _getDigits(tls, zDate, __ccgo_ts+1166, libc.VaList(bp+24, bp, bp+4)) != int32(2) { return int32(1) @@ -13723,7 +13741,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 8)) = 0 } (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) (*TDateTime)(unsafe.Pointer(p)).Fh = *(*int32)(unsafe.Pointer(bp)) (*TDateTime)(unsafe.Pointer(p)).Fm = *(*int32)(unsafe.Pointer(bp + 4)) @@ -13731,12 +13749,6 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { if _parseTimezone(tls, zDate, p) != 0 { return int32(1) } - if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { - v1 = int32(1) - } else { - v1 = 0 - } - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = int8(v1) return 0 } @@ -13747,7 +13759,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { // */ func _datetimeError(tls *libc.TLS, p uintptr) { libc.Xmemset(tls, p, 0, uint64(48)) - (*TDateTime)(unsafe.Pointer(p)).FisError = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 1, 0x2) } // C documentation @@ -13773,7 +13785,7 @@ func _computeJD(tls *libc.TLS, p uintptr) { M = int32(1) D = int32(1) } - if Y < -int32(4713) || Y > int32(9999) || (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Y < -int32(4713) || Y > int32(9999) || int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { _datetimeError(tls, p) return } @@ -13789,11 +13801,41 @@ func _computeJD(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) if (*TDateTime)(unsafe.Pointer(p)).FvalidHMS != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) += int64((*TDateTime)(unsafe.Pointer(p)).Fh*int32(3600000)+(*TDateTime)(unsafe.Pointer(p)).Fm*int32(60000)) + int64((*TDateTime)(unsafe.Pointer(p)).Fs*libc.Float64FromInt32(1000)+libc.Float64FromFloat64(0.5)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64((*TDateTime)(unsafe.Pointer(p)).Ftz * int32(60000)) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + } + } +} + +// C documentation +// +// /* +// ** Given the YYYY-MM-DD information current in p, determine if there +// ** is day-of-month overflow and set nFloor to the number of days that +// ** would need to be subtracted from the date in order to bring the +// ** date back to the end of the month. +// */ +func _computeFloor(tls *libc.TLS, p uintptr) { + if (*TDateTime)(unsafe.Pointer(p)).FD <= int32(28) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } else { + if int32(1)<<(*TDateTime)(unsafe.Pointer(p)).FM&int32(0x15aa) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } else { + if (*TDateTime)(unsafe.Pointer(p)).FM != int32(2) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = libc.BoolInt8((*TDateTime)(unsafe.Pointer(p)).FD == libc.Int32FromInt32(31)) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FY%int32(4) != 0 || (*TDateTime)(unsafe.Pointer(p)).FY%int32(100) == 0 && (*TDateTime)(unsafe.Pointer(p)).FY%int32(400) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = int8((*TDateTime)(unsafe.Pointer(p)).FD - int32(28)) + } else { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = int8((*TDateTime)(unsafe.Pointer(p)).FD - int32(29)) + } + } } } } @@ -13852,12 +13894,15 @@ func _parseYyyyMmDd(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FY = v1 (*TDateTime)(unsafe.Pointer(p)).FM = *(*int32)(unsafe.Pointer(bp + 4)) (*TDateTime)(unsafe.Pointer(p)).FD = *(*int32)(unsafe.Pointer(bp + 8)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + _computeFloor(tls, p) + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { _computeJD(tls, p) } return 0 } +/* Forward declaration */ + // C documentation // // /* @@ -13869,6 +13914,9 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) (*TDateTime)(unsafe.Pointer(p)).FiJD = _sqlite3StmtCurrentTime(tls, context) if (*TDateTime)(unsafe.Pointer(p)).FiJD > 0 { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + _clearYMD_HMS_TZ(tls, p) return 0 } else { return int32(1) @@ -13886,7 +13934,7 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) // */ func _setRawDateNumber(tls *libc.TLS, p uintptr, r float64) { (*TDateTime)(unsafe.Pointer(p)).Fs = r - (*TDateTime)(unsafe.Pointer(p)).FrawS = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 0, 0x1) if r >= float64(0) && r < float64(5.3734845e+06) { (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r*libc.Float64FromFloat64(8.64e+07) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) @@ -13929,7 +13977,7 @@ func _parseDateOrTime(tls *libc.TLS, context uintptr, zDate uintptr, p uintptr) return 0 } else { if (_sqlite3StrICmp(tls, zDate, __ccgo_ts+1194) == 0 || _sqlite3StrICmp(tls, zDate, __ccgo_ts+1201) == 0) && _sqlite3NotPureFunc(tls, context) != 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) return _setDateTimeToCurrent(tls, context, p) } } @@ -13979,13 +14027,13 @@ func _computeYMD(tls *libc.TLS, p uintptr) { return } else { Z = int32(((*TDateTime)(unsafe.Pointer(p)).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) - A = int32((float64(Z) - libc.Float64FromFloat64(1.86721625e+06)) / libc.Float64FromFloat64(36524.25)) + A = int32((float64(float64(Z)) - libc.Float64FromFloat64(1.86721625e+06)) / libc.Float64FromFloat64(36524.25)) A = Z + int32(1) + A - A/int32(4) B = A + int32(1524) - C = int32((float64(B) - libc.Float64FromFloat64(122.1)) / libc.Float64FromFloat64(365.25)) + C = int32((float64(float64(B)) - libc.Float64FromFloat64(122.1)) / libc.Float64FromFloat64(365.25)) D = int32(36525) * (C & int32(32767)) / int32(100) E = int32(float64(B-D) / libc.Float64FromFloat64(30.6001)) - X1 = int32(libc.Float64FromFloat64(30.6001) * float64(E)) + X1 = int32(libc.Float64FromFloat64(30.6001) * float64(float64(E))) (*TDateTime)(unsafe.Pointer(p)).FD = B - D - X1 if E < int32(14) { v1 = E - int32(1) @@ -14021,7 +14069,7 @@ func _computeHMS(tls *libc.TLS, p uintptr) { day_min = day_ms / int32(60000) (*TDateTime)(unsafe.Pointer(p)).Fm = day_min % int32(60) (*TDateTime)(unsafe.Pointer(p)).Fh = day_min / int32(60) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) } @@ -14043,7 +14091,7 @@ func _computeYMD_HMS(tls *libc.TLS, p uintptr) { func _clearYMD_HMS_TZ(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 } /* @@ -14126,10 +14174,10 @@ func _toLocaltime(tls *libc.TLS, p uintptr, pCtx uintptr) (r int32) { (*(*TDateTime)(unsafe.Pointer(bp + 64))).FY += iYearDiff (*(*TDateTime)(unsafe.Pointer(bp + 64))).FvalidJD = 0 _computeJD(tls, bp+64) - *(*Ttime_t)(unsafe.Pointer(bp)) = (*(*TDateTime)(unsafe.Pointer(bp + 64))).FiJD/libc.Int64FromInt32(1000) - libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000) + *(*Ttime_t)(unsafe.Pointer(bp)) = int64((*(*TDateTime)(unsafe.Pointer(bp + 64))).FiJD/libc.Int64FromInt32(1000) - libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000)) } else { iYearDiff = 0 - *(*Ttime_t)(unsafe.Pointer(bp)) = (*TDateTime)(unsafe.Pointer(p)).FiJD/libc.Int64FromInt32(1000) - libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000) + *(*Ttime_t)(unsafe.Pointer(bp)) = int64((*TDateTime)(unsafe.Pointer(p)).FiJD/libc.Int64FromInt32(1000) - libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000)) } if _osLocaltime(tls, bp, bp+8) != 0 { Xsqlite3_result_error(tls, pCtx, __ccgo_ts+1211, -int32(1)) @@ -14144,9 +14192,9 @@ func _toLocaltime(tls *libc.TLS, p uintptr, pCtx uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = int8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 - (*TDateTime)(unsafe.Pointer(p)).FisError = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 1, 0x2) return SQLITE_OK } @@ -14194,13 +14242,13 @@ var _aXformType = [6]struct { FnName: uint8(5), FzName: [7]int8{'m', 'o', 'n', 't', 'h'}, FrLimit: float32(176546), - FrXform: float32(2.592e+06), + FrXform: float32(libc.Float64FromFloat64(30) * libc.Float64FromFloat64(86400)), }, 5: { FnName: uint8(4), FzName: [7]int8{'y', 'e', 'a', 'r'}, FrLimit: float32(14713), - FrXform: float32(3.1536e+07), + FrXform: float32(libc.Float64FromFloat64(365) * libc.Float64FromFloat64(86400)), }, } @@ -14214,15 +14262,15 @@ var _aXformType = [6]struct { func _autoAdjustDate(tls *libc.TLS, p uintptr) { var r float64 _ = r - if !((*TDateTime)(unsafe.Pointer(p)).FrawS != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + if !(int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } else { if (*TDateTime)(unsafe.Pointer(p)).Fs >= float64(int64(-libc.Int32FromInt32(21086676))*libc.Int64FromInt32(10000)) && (*TDateTime)(unsafe.Pointer(p)).Fs <= float64(libc.Int64FromInt32(25340230)*libc.Int64FromInt32(10000)+libc.Int64FromInt32(799)) { r = (*TDateTime)(unsafe.Pointer(p)).Fs*float64(1000) + float64(2.1086676e+14) _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } } @@ -14239,14 +14287,20 @@ func _autoAdjustDate(tls *libc.TLS, p uintptr) { // ** NNN.NNNN seconds // ** NNN months // ** NNN years +// ** +/-YYYY-MM-DD HH:MM:SS.SSS +// ** ceiling +// ** floor // ** start of month // ** start of year // ** start of week // ** start of day // ** weekday N // ** unixepoch +// ** auto // ** localtime // ** utc +// ** subsec +// ** subsecond // ** // ** Return 0 on success and 1 if there is any kind of error. If the error // ** is in a system call (i.e. localtime()), then an error message is written @@ -14257,12 +14311,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, bp := tls.Alloc(160) defer tls.Free(160) var Z, day Tsqlite3_int64 - var cnt, i, rc, x, y, v12, v2, v5, v7, v9 int32 - var iErr, iGuess, iOrigJD, v1 Ti64 - var rRounder, v10 float64 + var cnt, i, rc, x, y, v1, v10, v13, v3, v6, v8 int32 + var iErr, iGuess, iOrigJD, v2 Ti64 + var rRounder, v11 float64 var z0 int8 var z2 uintptr - var v3, v6 bool + var v4, v7 bool var _ /* D at bp+64 */ int32 var _ /* M at bp+60 */ int32 var _ /* Y at bp+56 */ int32 @@ -14271,7 +14325,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, var _ /* new at bp+8 */ TDateTime var _ /* r at bp+0 */ float64 var _ /* tx at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v12, v2, v3, v5, v6, v7, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v11, v13, v2, v3, v4, v6, v7, v8 rc = int32(1) switch int32(_sqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z)))]) { case int32('a'): @@ -14288,6 +14342,33 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _autoAdjustDate(tls, p) rc = 0 } + case int32('c'): + /* + ** ceiling + ** + ** Resolve day-of-month overflow by rolling forward into the next + ** month. As this is the default action, this modifier is really + ** a no-op that is only included for symmetry. See "floor". + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1239) == 0 { + _computeJD(tls, p) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } + case int32('f'): + /* + ** floor + ** + ** Resolve day-of-month overflow by rolling back to the end of the + ** previous month. + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1247) == 0 { + _computeJD(tls, p) + *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64(int32((*TDateTime)(unsafe.Pointer(p)).FnFloor) * int32(86400000)) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + } case int32('j'): /* ** julianday @@ -14297,13 +14378,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** value in the allowed range of julian day numbers understood by ** SQLite (0..5373484.5) then the result will be NULL. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1239) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1253) == 0 { if idx > int32(1) { return int32(1) } /* IMP: R-31176-64601 */ - if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { rc = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } case int32('l'): @@ -14312,8 +14393,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Assuming the current time value is UTC (a.k.a. GMT), shift it to ** show local time. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1249) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - rc = _toLocaltime(tls, p, pCtx) + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1263) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x10>>4)) != 0 { + v1 = SQLITE_OK + } else { + v1 = _toLocaltime(tls, p, pCtx) + } + rc = v1 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 4, 0x10) } case int32('u'): /* @@ -14322,7 +14410,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Treat the current value of p->s as the number of ** seconds since 1970. Convert to a real julian day number. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1259) == 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1273) == 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { if idx > int32(1) { return int32(1) } /* IMP: R-49255-55373 */ @@ -14331,17 +14419,17 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(*(*float64)(unsafe.Pointer(bp)) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) rc = 0 } } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1269) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - if int32((*TDateTime)(unsafe.Pointer(p)).FtzSet) == 0 { /* Guess at the corresponding utc time */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1283) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x8>>3)) == 0 { /* Guess at the corresponding utc time */ cnt = 0 /* Guess is off by this much */ _computeJD(tls, p) - v1 = (*TDateTime)(unsafe.Pointer(p)).FiJD - iOrigJD = v1 - iGuess = v1 + v2 = (*TDateTime)(unsafe.Pointer(p)).FiJD + iOrigJD = v2 + iGuess = v2 iErr = 0 for { libc.Xmemset(tls, bp+8, 0, uint64(48)) @@ -14354,21 +14442,22 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, bp+8) iErr = (*(*TDateTime)(unsafe.Pointer(bp + 8))).FiJD - iOrigJD - goto _4 - _4: + goto _5 + _5: ; - if v3 = iErr != 0; v3 { - v2 = cnt + if v4 = iErr != 0; v4 { + v3 = cnt cnt++ } - if !(v3 && v2 < int32(3)) { + if !(v4 && v3 < int32(3)) { break } } libc.Xmemset(tls, p, 0, uint64(48)) (*TDateTime)(unsafe.Pointer(p)).FiJD = iGuess (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FtzSet = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) } rc = SQLITE_OK } @@ -14381,20 +14470,20 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** weekday N where 0==Sunday, 1==Monday, and so forth. If the ** date is already on the appropriate weekday, this is a no-op. */ - if v6 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1273, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v6 { - v5 = int32(*(*float64)(unsafe.Pointer(bp))) - n = v5 + if v7 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1287, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v7 { + v6 = int32(*(*float64)(unsafe.Pointer(bp))) + n = v6 } - if v6 && float64(v5) == *(*float64)(unsafe.Pointer(bp)) { + if v7 && float64(v6) == *(*float64)(unsafe.Pointer(bp)) { _computeYMD_HMS(tls, p) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 _computeJD(tls, p) Z = ((*TDateTime)(unsafe.Pointer(p)).FiJD + int64(129600000)) / int64(86400000) % int64(7) - if Z > int64(n) { + if Z > int64(int64(n)) { Z -= int64(7) } - *(*Tsqlite3_int64)(unsafe.Pointer(p)) += (int64(n) - Z) * int64(86400000) + *(*Tsqlite3_int64)(unsafe.Pointer(p)) += (int64(int64(n)) - Z) * int64(86400000) _clearYMD_HMS_TZ(tls, p) rc = 0 } @@ -14411,9 +14500,9 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Show subsecond precision in the output of datetime() and ** unixepoch() and strftime('%s'). */ - if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1282, int32(9)) != 0 { + if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1296, int32(9)) != 0 { if Xsqlite3_stricmp(tls, z, __ccgo_ts+1194) == 0 || Xsqlite3_stricmp(tls, z, __ccgo_ts+1201) == 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) rc = 0 } break @@ -14424,23 +14513,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z += uintptr(9) _computeYMD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) - v7 = libc.Int32FromInt32(0) - (*TDateTime)(unsafe.Pointer(p)).Fm = v7 - (*TDateTime)(unsafe.Pointer(p)).Fh = v7 + v8 = libc.Int32FromInt32(0) + (*TDateTime)(unsafe.Pointer(p)).Fm = v8 + (*TDateTime)(unsafe.Pointer(p)).Fh = v8 (*TDateTime)(unsafe.Pointer(p)).Fs = float64(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1292) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1306) == 0 { (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1298) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1312) == 0 { (*TDateTime)(unsafe.Pointer(p)).FM = int32(1) (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1303) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1317) == 0 { rc = 0 } } @@ -14482,15 +14571,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } if int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) == int32('-') { - if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1307, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1321, libc.VaList(bp+136, bp+56)) == int32(1) { break } - if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1311, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1325, libc.VaList(bp+136, bp+56)) == int32(1) { break } } - goto _8 - _8: + goto _9 + _9: ; n++ } @@ -14502,15 +14591,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** specified number of years, months, and days. MM is limited to ** the range 0-11 and DD is limited to 0-30. */ - if int32(z0) != int32('+') && int32(z0) != int32('-') { + if int32(int32(z0)) != int32('+') && int32(int32(z0)) != int32('-') { break } /* Must start with +/- */ if n == int32(5) { - if _getDigits(tls, z+1, __ccgo_ts+1315, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1329, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } } else { - if _getDigits(tls, z+1, __ccgo_ts+1327, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1341, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } z++ @@ -14523,7 +14612,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } /* D range 0..30 */ _computeYMD_HMS(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - if int32(z0) == int32('-') { + if int32(int32(z0)) == int32('-') { *(*int32)(unsafe.Pointer(p + 8)) -= *(*int32)(unsafe.Pointer(bp + 56)) *(*int32)(unsafe.Pointer(p + 12)) -= *(*int32)(unsafe.Pointer(bp + 60)) *(*int32)(unsafe.Pointer(bp + 64)) = -*(*int32)(unsafe.Pointer(bp + 64)) @@ -14532,13 +14621,14 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, *(*int32)(unsafe.Pointer(p + 12)) += *(*int32)(unsafe.Pointer(bp + 60)) } if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v9 + x = v10 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) _computeJD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 @@ -14566,7 +14656,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD -= int64(43200000) day = (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD / int64(86400000) (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD -= day * int64(86400000) - if int32(z0) == int32('-') { + if int32(int32(z0)) == int32('-') { (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD = -(*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD } _computeJD(tls, p) @@ -14582,7 +14672,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z++ } n = _sqlite3Strlen30(tls, z) - if n > int32(10) || n < int32(3) { + if n < int32(3) || n > int32(10) { break } if int32(_sqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z + uintptr(n-int32(1)))))]) == int32('s') { @@ -14590,11 +14680,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, p) if *(*float64)(unsafe.Pointer(bp)) < libc.Float64FromInt32(0) { - v10 = -libc.Float64FromFloat64(0.5) + v11 = -libc.Float64FromFloat64(0.5) } else { - v10 = +libc.Float64FromFloat64(0.5) + v11 = +libc.Float64FromFloat64(0.5) } - rRounder = v10 + rRounder = v11 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 i = 0 for { if !(i < int32(libc.Uint64FromInt64(96)/libc.Uint64FromInt64(16))) { @@ -14606,19 +14697,21 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 12)) += int32(*(*float64)(unsafe.Pointer(bp))) if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v12 + x = v13 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) case int32(5): /* Special processing to add years */ y = int32(*(*float64)(unsafe.Pointer(bp))) _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 8)) += y + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) break @@ -14628,8 +14721,8 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, rc = 0 break } - goto _11 - _11: + goto _12 + _12: ; i++ } @@ -14688,7 +14781,7 @@ func _isDate(tls *libc.TLS, context uintptr, argc int32, argv uintptr, p uintptr i++ } _computeJD(tls, p) - if (*TDateTime)(unsafe.Pointer(p)).FisError != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x2>>1)) != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { return int32(1) } if argc == int32(1) && (*TDateTime)(unsafe.Pointer(p)).FvalidYMD != 0 && (*TDateTime)(unsafe.Pointer(p)).FD > int32(28) { @@ -14735,7 +14828,7 @@ func _unixepochFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _ /* x at bp+0 */ TDateTime if _isDate(tls, context, argc, argv, bp) == 0 { _computeJD(tls, bp) - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { Xsqlite3_result_double(tls, context, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000)) } else { Xsqlite3_result_int64(tls, context, (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/int64(1000)-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000)) @@ -14780,7 +14873,7 @@ func _datetimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(15)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(16)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(17)] = int8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(18)] = int8(int32('0') + s/int32(10000)%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(19)] = int8(int32('0') + s/int32(1000)%int32(10)) @@ -14828,7 +14921,7 @@ func _timeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(3)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(4)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(5)] = int8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(6)] = int8(int32('0') + s/int32(10000)%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(7)] = int8(int32('0') + s/int32(1000)%int32(10)) @@ -14889,6 +14982,57 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } +// C documentation +// +// /* +// ** Compute the number of days after the most recent January 1. +// ** +// ** In other words, compute the zero-based day number for the +// ** current year: +// ** +// ** Jan01 = 0, Jan02 = 1, ..., Jan31 = 30, Feb01 = 31, ... +// ** Dec31 = 364 or 365. +// */ +func _daysAfterJan01(tls *libc.TLS, pDate uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* jan01 at bp+0 */ TDateTime + *(*TDateTime)(unsafe.Pointer(bp)) = *(*TDateTime)(unsafe.Pointer(pDate)) + (*(*TDateTime)(unsafe.Pointer(bp))).FvalidJD = 0 + (*(*TDateTime)(unsafe.Pointer(bp))).FM = int32(1) + (*(*TDateTime)(unsafe.Pointer(bp))).FD = int32(1) + _computeJD(tls, bp) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD - (*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Monday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Monday, 1=Tuesday, 2=Wednesday, ..., 6=Sunday. +// */ +func _daysAfterMonday(tls *libc.TLS, pDate uintptr) (r int32) { + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(43200000))/libc.Int64FromInt32(86400000)) % int32(7) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Sunday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Sunday, 1=Monday, 2=Tues, ..., 6=Saturday +// */ +func _daysAfterSunday(tls *libc.TLS, pDate uintptr) (r int32) { + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)) % int32(7) +} + // C documentation // // /* @@ -14896,33 +15040,48 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { // ** // ** Return a string described by FORMAT. Conversions as follows: // ** -// ** %d day of month +// ** %d day of month 01-31 +// ** %e day of month 1-31 // ** %f ** fractional seconds SS.SSS +// ** %F ISO date. YYYY-MM-DD +// ** %G ISO year corresponding to %V 0000-9999. +// ** %g 2-digit ISO year corresponding to %V 00-99 // ** %H hour 00-24 -// ** %j day of year 000-366 +// ** %k hour 0-24 (leading zero converted to space) +// ** %I hour 01-12 +// ** %j day of year 001-366 // ** %J ** julian day number +// ** %l hour 1-12 (leading zero converted to space) // ** %m month 01-12 // ** %M minute 00-59 +// ** %p "am" or "pm" +// ** %P "AM" or "PM" +// ** %R time as HH:MM // ** %s seconds since 1970-01-01 // ** %S seconds 00-59 -// ** %w day of week 0-6 Sunday==0 -// ** %W week of year 00-53 +// ** %T time as HH:MM:SS +// ** %u day of week 1-7 Monday==1, Sunday==7 +// ** %w day of week 0-6 Sunday==0, Monday==1 +// ** %U week of year 00-53 (First Sunday is start of week 01) +// ** %V week of year 01-53 (First week containing Thursday is week 01) +// ** %W week of year 00-53 (First Monday is start of week 01) // ** %Y year 0000-9999 // ** %% % // */ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { - bp := tls.Alloc(160) - defer tls.Free(160) + bp := tls.Alloc(208) + defer tls.Free(208) var c, cf int8 var db, zFmt, v3, v4, v5, v6, v7 uintptr - var h, nDay, wd int32 + var h int32 var i, j, v2 Tsize_t var iS Ti64 var s float64 var _ /* sRes at bp+48 */ Tsqlite3_str var _ /* x at bp+0 */ TDateTime + var _ /* y at bp+128 */ TDateTime var _ /* y at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, nDay, s, wd, zFmt, v2, v3, v4, v5, v6, v7 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, s, zFmt, v2, v3, v4, v5, v6, v7 if argc == 0 { return } @@ -14950,33 +15109,46 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { i++ j = i + uint64(1) cf = *(*int8)(unsafe.Pointer(zFmt + uintptr(i))) - switch int32(cf) { + switch int32(int32(cf)) { case int32('d'): /* Fall thru */ fallthrough case int32('e'): - if int32(cf) == int32('d') { - v3 = __ccgo_ts + 1339 + if int32(int32(cf)) == int32('d') { + v3 = __ccgo_ts + 1353 } else { - v3 = __ccgo_ts + 1344 + v3 = __ccgo_ts + 1358 } - Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) - case int32('f'): + Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('f'): /* Fractional seconds. (Non-standard) */ s = (*(*TDateTime)(unsafe.Pointer(bp))).Fs if s > float64(59.999) { s = float64(59.999) } - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1348, libc.VaList(bp+136, s)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1362, libc.VaList(bp+184, s)) case int32('F'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1355, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1369, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('G'): /* Fall thru */ + fallthrough + case int32('g'): + *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Move y so that it is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidYMD = 0 + _computeYMD(tls, bp+80) + if int32(int32(cf)) == int32('g') { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1353, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY%int32(100))) + } else { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1384, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY)) + } case int32('H'): fallthrough case int32('k'): - if int32(cf) == int32('H') { - v4 = __ccgo_ts + 1339 + if int32(int32(cf)) == int32('H') { + v4 = __ccgo_ts + 1353 } else { - v4 = __ccgo_ts + 1344 + v4 = __ccgo_ts + 1358 } - Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) + Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) case int32('I'): /* Fall thru */ fallthrough case int32('l'): @@ -14987,74 +15159,72 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if h == 0 { h = int32(12) } - if int32(cf) == int32('I') { - v5 = __ccgo_ts + 1339 - } else { - v5 = __ccgo_ts + 1344 - } - Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+136, h)) - case int32('W'): /* Fall thru */ - fallthrough - case int32('j'): /* Number of days since 1st day of year */ - *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidJD = 0 - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FM = int32(1) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FD = int32(1) - _computeJD(tls, bp+80) - nDay = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) - if int32(cf) == int32('W') { /* 0=Monday, 1=Tuesday, ... 6=Sunday */ - wd = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000) % libc.Int64FromInt32(7)) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1339, libc.VaList(bp+136, (nDay+int32(7)-wd)/int32(7))) + if int32(int32(cf)) == int32('I') { + v5 = __ccgo_ts + 1353 } else { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1370, libc.VaList(bp+136, nDay+int32(1))) + v5 = __ccgo_ts + 1358 } - case int32('J'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1375, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) + Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+184, h)) + case int32('j'): /* Day of year. Jan01==1, Jan02==2, and so forth */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1389, libc.VaList(bp+184, _daysAfterJan01(tls, bp)+int32(1))) + case int32('J'): /* Julian day number. (Non-standard) */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1394, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) case int32('m'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1339, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1353, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) case int32('M'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1339, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1353, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('p'): /* Fall thru */ fallthrough case int32('P'): if (*(*TDateTime)(unsafe.Pointer(bp))).Fh >= int32(12) { - if int32(cf) == int32('p') { - v6 = __ccgo_ts + 1381 + if int32(int32(cf)) == int32('p') { + v6 = __ccgo_ts + 1400 } else { - v6 = __ccgo_ts + 1384 + v6 = __ccgo_ts + 1403 } Xsqlite3_str_append(tls, bp+48, v6, int32(2)) } else { - if int32(cf) == int32('p') { - v7 = __ccgo_ts + 1387 + if int32(int32(cf)) == int32('p') { + v7 = __ccgo_ts + 1406 } else { - v7 = __ccgo_ts + 1390 + v7 = __ccgo_ts + 1409 } Xsqlite3_str_append(tls, bp+48, v7, int32(2)) } case int32('R'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1393, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1412, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('s'): - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1403, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1422, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) } else { iS = (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/libc.Int64FromInt32(1000) - libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1408, libc.VaList(bp+136, iS)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1427, libc.VaList(bp+184, iS)) } case int32('S'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1339, libc.VaList(bp+136, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1353, libc.VaList(bp+184, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) case int32('T'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1413, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) - case int32('u'): /* Fall thru */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1432, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + case int32('u'): /* Day of week. 1 to 7. Monday==1, Sunday==7 */ fallthrough - case int32('w'): - c = int8(int32(int8(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)%libc.Int64FromInt32(7))) + int32('0')) - if int32(c) == int32('0') && int32(cf) == int32('u') { + case int32('w'): /* Day of week. 0 to 6. Sunday==0, Monday==1 */ + c = int8(int32(int8(_daysAfterSunday(tls, bp))) + int32('0')) + if int32(int32(c)) == int32('0') && int32(int32(cf)) == int32('u') { c = int8('7') } Xsqlite3_str_appendchar(tls, bp+48, int32(1), c) + case int32('U'): /* Week num. 00-53. First Sun of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1353, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterSunday(tls, bp)+int32(7))/int32(7))) + case int32('V'): /* Week num. 01-53. First week with a Thur is week 01 */ + *(*TDateTime)(unsafe.Pointer(bp + 128)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Adjust y so that is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FvalidYMD = 0 + _computeYMD(tls, bp+128) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1353, libc.VaList(bp+184, _daysAfterJan01(tls, bp+128)/int32(7)+int32(1))) + case int32('W'): /* Week num. 00-53. First Mon of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1353, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterMonday(tls, bp)+int32(7))/int32(7))) case int32('Y'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1428, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1384, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) case int32('%'): Xsqlite3_str_appendchar(tls, bp+48, int32(1), int8('%')) default: @@ -15207,12 +15377,10 @@ func _timediffFunc(tls *libc.TLS, context uintptr, NotUsed1 int32, argv uintptr) p2 = bp *(*Tsqlite3_int64)(unsafe.Pointer(p2)) = Tsqlite3_int64(uint64(*(*Tsqlite3_int64)(unsafe.Pointer(p2))) + libc.Uint64FromInt32(1486995408)*libc.Uint64FromInt32(100000)) } - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidYMD = 0 - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidHMS = 0 - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidTZ = 0 + _clearYMD_HMS_TZ(tls, bp) _computeYMD_HMS(tls, bp) _sqlite3StrAccumInit(tls, bp+96, uintptr(0), uintptr(0), 0, int32(100)) - Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1433, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) + Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1447, libc.VaList(bp+136, int32(int32(sign)), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) _sqlite3ResultStrAccum(tls, context, bp+96) } @@ -15245,55 +15413,55 @@ var _aDateTimeFuncs = [10]TFuncDef{ FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1239, + FzName: __ccgo_ts + 1253, }, 1: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1259, + FzName: __ccgo_ts + 1273, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1467, + FzName: __ccgo_ts + 1481, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1472, + FzName: __ccgo_ts + 1486, }, 4: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1477, + FzName: __ccgo_ts + 1491, }, 5: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1486, + FzName: __ccgo_ts + 1500, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1495, + FzName: __ccgo_ts + 1509, }, 7: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1504, + FzName: __ccgo_ts + 1518, }, 8: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1517, + FzName: __ccgo_ts + 1531, }, 9: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1535, + FzName: __ccgo_ts + 1549, }, } @@ -15545,11 +15713,11 @@ func _sqlite3OsDlClose(tls *libc.TLS, pVfs uintptr, pHandle uintptr) { func _sqlite3OsRandomness(tls *libc.TLS, pVfs uintptr, nByte int32, zBufOut uintptr) (r int32) { if _sqlite3Config.FiPrngSeed != 0 { - libc.Xmemset(tls, zBufOut, 0, uint64(nByte)) + libc.Xmemset(tls, zBufOut, 0, uint64(uint64(nByte))) if nByte > libc.Int32FromInt64(4) { nByte = int32(4) } - libc.Xmemcpy(tls, zBufOut, uintptr(unsafe.Pointer(&_sqlite3Config))+432, uint64(nByte)) + libc.Xmemcpy(tls, zBufOut, uintptr(unsafe.Pointer(&_sqlite3Config))+432, uint64(uint64(nByte))) return SQLITE_OK } else { return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FxRandomness})))(tls, pVfs, nByte, zBufOut) @@ -15961,10 +16129,10 @@ func _sqlite3MemMalloc(tls *libc.TLS, nByte int32) (r uintptr) { _ = p p = libc.Xmalloc(tls, uint64(nByte+int32(8))) if p != 0 { - *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) + *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(int64(nByte)) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1548, libc.VaList(bp+8, nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1562, libc.VaList(bp+8, nByte)) } return p } @@ -16023,10 +16191,10 @@ func _sqlite3MemRealloc(tls *libc.TLS, pPrior uintptr, nByte int32) (r uintptr) p -= 8 p = libc.Xrealloc(tls, p, uint64(nByte+libc.Int32FromInt32(8))) if p != 0 { - *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) + *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(int64(nByte)) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1586, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1600, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) } return p } @@ -16929,7 +17097,7 @@ func Xsqlite3_soft_heap_limit(tls *libc.TLS, n int32) { if n < 0 { n = 0 } - Xsqlite3_soft_heap_limit64(tls, int64(n)) + Xsqlite3_soft_heap_limit64(tls, int64(int64(n))) } // C documentation @@ -17076,12 +17244,12 @@ func _mallocWithAlarm(tls *libc.TLS, n int32, pp uintptr) { _sqlite3StatusHighwater(tls, int32(SQLITE_STATUS_MALLOC_SIZE), n) if _mem0.FalarmThreshold > 0 { nUsed = _sqlite3StatusValue(tls, SQLITE_STATUS_MEMORY_USED) - if nUsed >= _mem0.FalarmThreshold-int64(nFull) { + if nUsed >= _mem0.FalarmThreshold-int64(int64(nFull)) { libc.AtomicStoreNInt32(uintptr(unsafe.Pointer(&_mem0))+24, libc.Int32FromInt32(1), libc.Int32FromInt32(__ATOMIC_RELAXED)) _sqlite3MallocAlarm(tls, nFull) if _mem0.FhardLimit != 0 { nUsed = _sqlite3StatusValue(tls, SQLITE_STATUS_MEMORY_USED) - if nUsed >= _mem0.FhardLimit-int64(nFull) { + if nUsed >= _mem0.FhardLimit-int64(int64(nFull)) { *(*uintptr)(unsafe.Pointer(pp)) = uintptr(0) return } @@ -17133,10 +17301,10 @@ func _sqlite3Malloc(tls *libc.TLS, n Tu64) (r uintptr) { } else { if _sqlite3Config.FbMemstat != 0 { Xsqlite3_mutex_enter(tls, _mem0.Fmutex) - _mallocWithAlarm(tls, int32(n), bp) + _mallocWithAlarm(tls, int32(int32(n)), bp) Xsqlite3_mutex_leave(tls, _mem0.Fmutex) } else { - *(*uintptr)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, int32) uintptr)(unsafe.Pointer(&struct{ uintptr }{_sqlite3Config.Fm.FxMalloc})))(tls, int32(n)) + *(*uintptr)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, int32) uintptr)(unsafe.Pointer(&struct{ uintptr }{_sqlite3Config.Fm.FxMalloc})))(tls, int32(int32(n))) } } /* IMP: R-11148-40995 */ @@ -17159,7 +17327,7 @@ func Xsqlite3_malloc(tls *libc.TLS, n int32) (r uintptr) { if n <= 0 { v1 = uintptr(0) } else { - v1 = _sqlite3Malloc(tls, uint64(n)) + v1 = _sqlite3Malloc(tls, uint64(uint64(n))) } return v1 } @@ -17203,11 +17371,11 @@ func _lookasideMallocSize(tls *libc.TLS, db uintptr, p uintptr) (r int32) { func _sqlite3DbMallocSize(tls *libc.TLS, db uintptr, p uintptr) (r int32) { if db != 0 { - if uint64(p) < uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd) { - if uint64(p) >= uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpMiddle) { + if uint64(uint64(p)) < uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd) { + if uint64(uint64(p)) >= uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpMiddle) { return int32(LOOKASIDE_SMALL) } - if uint64(p) >= uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpStart) { + if uint64(uint64(p)) >= uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpStart) { return int32((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FszTrue) } } @@ -17267,14 +17435,14 @@ func _sqlite3DbFreeNN(tls *libc.TLS, db uintptr, p uintptr) { var pBuf, pBuf1 uintptr _, _ = pBuf, pBuf1 if db != 0 { - if uint64(p) < uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd) { - if uint64(p) >= uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpMiddle) { + if uint64(uint64(p)) < uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd) { + if uint64(uint64(p)) >= uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpMiddle) { pBuf = p (*TLookasideSlot)(unsafe.Pointer(pBuf)).FpNext = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallFree (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallFree = pBuf return } - if uint64(p) >= uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpStart) { + if uint64(uint64(p)) >= uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpStart) { pBuf1 = p (*TLookasideSlot)(unsafe.Pointer(pBuf1)).FpNext = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpFree (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpFree = pBuf1 @@ -17292,14 +17460,14 @@ func _sqlite3DbFreeNN(tls *libc.TLS, db uintptr, p uintptr) { func _sqlite3DbNNFreeNN(tls *libc.TLS, db uintptr, p uintptr) { var pBuf, pBuf1 uintptr _, _ = pBuf, pBuf1 - if uint64(p) < uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd) { - if uint64(p) >= uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpMiddle) { + if uint64(uint64(p)) < uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd) { + if uint64(uint64(p)) >= uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpMiddle) { pBuf = p (*TLookasideSlot)(unsafe.Pointer(pBuf)).FpNext = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallFree (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpSmallFree = pBuf return } - if uint64(p) >= uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpStart) { + if uint64(uint64(p)) >= uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpStart) { pBuf1 = p (*TLookasideSlot)(unsafe.Pointer(pBuf1)).FpNext = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpFree (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpFree = pBuf1 @@ -17345,28 +17513,28 @@ func _sqlite3Realloc(tls *libc.TLS, pOld uintptr, nBytes Tu64) (r uintptr) { /* IMPLEMENTATION-OF: R-46199-30249 SQLite guarantees that the second ** argument to xRealloc is always a value returned by a prior call to ** xRoundup. */ - nNew = (*(*func(*libc.TLS, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_sqlite3Config.Fm.FxRoundup})))(tls, int32(nBytes)) + nNew = (*(*func(*libc.TLS, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_sqlite3Config.Fm.FxRoundup})))(tls, int32(int32(nBytes))) if nOld == nNew { pNew = pOld } else { if _sqlite3Config.FbMemstat != 0 { Xsqlite3_mutex_enter(tls, _mem0.Fmutex) - _sqlite3StatusHighwater(tls, int32(SQLITE_STATUS_MALLOC_SIZE), int32(nBytes)) + _sqlite3StatusHighwater(tls, int32(SQLITE_STATUS_MALLOC_SIZE), int32(int32(nBytes))) nDiff = nNew - nOld if v2 = nDiff > 0; v2 { v1 = _sqlite3StatusValue(tls, SQLITE_STATUS_MEMORY_USED) nUsed = v1 } - if v2 && v1 >= _mem0.FalarmThreshold-int64(nDiff) { + if v2 && v1 >= _mem0.FalarmThreshold-int64(int64(nDiff)) { _sqlite3MallocAlarm(tls, nDiff) - if _mem0.FhardLimit > 0 && nUsed >= _mem0.FhardLimit-int64(nDiff) { + if _mem0.FhardLimit > 0 && nUsed >= _mem0.FhardLimit-int64(int64(nDiff)) { Xsqlite3_mutex_leave(tls, _mem0.Fmutex) return uintptr(0) } } pNew = (*(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(&struct{ uintptr }{_sqlite3Config.Fm.FxRealloc})))(tls, pOld, nNew) if pNew == uintptr(0) && _mem0.FalarmThreshold > 0 { - _sqlite3MallocAlarm(tls, int32(nBytes)) + _sqlite3MallocAlarm(tls, int32(int32(nBytes))) pNew = (*(*func(*libc.TLS, uintptr, int32) uintptr)(unsafe.Pointer(&struct{ uintptr }{_sqlite3Config.Fm.FxRealloc})))(tls, pOld, nNew) } if pNew != 0 { @@ -17395,7 +17563,7 @@ func Xsqlite3_realloc(tls *libc.TLS, pOld uintptr, n int32) (r uintptr) { if n < 0 { n = 0 } /* IMP: R-26507-47431 */ - return _sqlite3Realloc(tls, pOld, uint64(n)) + return _sqlite3Realloc(tls, pOld, uint64(uint64(n))) } func Xsqlite3_realloc64(tls *libc.TLS, pOld uintptr, n Tsqlite3_uint64) (r uintptr) { @@ -17415,7 +17583,7 @@ func _sqlite3MallocZero(tls *libc.TLS, n Tu64) (r uintptr) { _ = p p = _sqlite3Malloc(tls, n) if p != 0 { - libc.Xmemset(tls, p, 0, n) + libc.Xmemset(tls, p, 0, uint64(uint64(n))) } return p } @@ -17431,7 +17599,7 @@ func _sqlite3DbMallocZero(tls *libc.TLS, db uintptr, n Tu64) (r uintptr) { _ = p p = _sqlite3DbMallocRaw(tls, db, n) if p != 0 { - libc.Xmemset(tls, p, 0, n) + libc.Xmemset(tls, p, 0, uint64(uint64(n))) } return p } @@ -17545,13 +17713,13 @@ func _sqlite3DbRealloc(tls *libc.TLS, db uintptr, p uintptr, n Tu64) (r uintptr) if p == uintptr(0) { return _sqlite3DbMallocRawNN(tls, db, n) } - if uint64(p) < uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd) { - if uint64(p) >= uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpMiddle) { + if uint64(uint64(p)) < uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd) { + if uint64(uint64(p)) >= uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpMiddle) { if n <= uint64(LOOKASIDE_SMALL) { return p } } else { - if uint64(p) >= uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpStart) { + if uint64(uint64(p)) >= uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpStart) { if n <= uint64((*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FszTrue) { return p } @@ -17615,7 +17783,7 @@ func _sqlite3DbStrDup(tls *libc.TLS, db uintptr, z uintptr) (r uintptr) { return uintptr(0) } n = libc.Xstrlen(tls, z) + uint64(1) - zNew = _sqlite3DbMallocRaw(tls, db, n) + zNew = _sqlite3DbMallocRaw(tls, db, uint64(uint64(n))) if zNew != 0 { libc.Xmemcpy(tls, zNew, z, n) } @@ -17632,7 +17800,7 @@ func _sqlite3DbStrNDup(tls *libc.TLS, db uintptr, z uintptr, n Tu64) (r uintptr) } zNew = v1 if zNew != 0 { - libc.Xmemcpy(tls, zNew, z, n) + libc.Xmemcpy(tls, zNew, z, uint64(uint64(n))) *(*int8)(unsafe.Pointer(zNew + uintptr(n))) = 0 } return zNew @@ -17651,11 +17819,11 @@ func _sqlite3DbSpanDup(tls *libc.TLS, db uintptr, zStart uintptr, zEnd uintptr) for int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zStart)))])&int32(0x01) != 0 { zStart++ } - n = int32(int64(zEnd) - int64(zStart)) + n = int32(int64(int64(zEnd)) - int64(int64(zStart))) for int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zStart + uintptr(n-int32(1)))))])&int32(0x01) != 0 { n-- } - return _sqlite3DbStrNDup(tls, db, zStart, uint64(n)) + return _sqlite3DbStrNDup(tls, db, zStart, uint64(uint64(n))) } // C documentation @@ -17697,7 +17865,7 @@ func _sqlite3OomFault(tls *libc.TLS, db uintptr) (r uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++ (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = uint16(0) if (*Tsqlite3)(unsafe.Pointer(db)).FpParse != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1622, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1636, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) pParse = (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).FpOuterParse for { @@ -17977,8 +18145,8 @@ func _sqlite3StrAccumSetError(tls *libc.TLS, p uintptr, eError Tu8) { if (*TStrAccum)(unsafe.Pointer(p)).FmxAlloc != 0 { Xsqlite3_str_reset(tls, p) } - if int32(eError) == int32(SQLITE_TOOBIG) { - _sqlite3ErrorToParser(tls, (*TStrAccum)(unsafe.Pointer(p)).Fdb, int32(eError)) + if int32(int32(eError)) == int32(SQLITE_TOOBIG) { + _sqlite3ErrorToParser(tls, (*TStrAccum)(unsafe.Pointer(p)).Fdb, int32(int32(eError))) } } @@ -18047,7 +18215,7 @@ func _printfTempBuf(tls *libc.TLS, pAccum uintptr, n Tsqlite3_int64) (r uintptr) _sqlite3StrAccumSetError(tls, pAccum, uint8(SQLITE_TOOBIG)) return uintptr(0) } - z = _sqlite3DbMallocRaw(tls, (*Tsqlite3_str)(unsafe.Pointer(pAccum)).Fdb, uint64(n)) + z = _sqlite3DbMallocRaw(tls, (*Tsqlite3_str)(unsafe.Pointer(pAccum)).Fdb, uint64(uint64(n))) if z == uintptr(0) { _sqlite3StrAccumSetError(tls, pAccum, uint8(SQLITE_NOMEM)) } @@ -18087,7 +18255,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bArgList, base, bufpt, c, cThousand, ch, ch1, cset, done, e2, escarg, exp, flag_alternateform, flag_altform2, flag_dp, flag_leftjustify, flag_long, flag_prefix, flag_rtz, flag_zeropad, i, i1, iRound, idx, ii, infop, isnull, ix, j, j1, k, length, longvalue, n, n1, nCopyBytes, nOut, nPad, nPrior, needQuote, nn, pArgList, pExpr, pItem, pSel, pToken, pre, precision, prefix, px, q, realvalue, szBufNeeded, v, width, wx, x, x1, xtype, z, zExtra, zOut, v10, v100, v101, v102, v103, v104, v106, v107, v108, v109, v11, v110, v111, v12, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v3, v4, v45, v46, v47, v48, v49, v5, v51, v52, v54, v55, v56, v57, v58, v59, v6, v60, v61, v62, v64, v65, v66, v67, v68, v7, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v8, v80, v81, v82, v83, v85, v86, v87, v88, v89, v9, v90, v91, v93, v94, v96, v97, v98, p92 /* Thousands separator for %d and %u */ xtype = uint8(etINVALID) /* Size of the rendering buffer */ zExtra = uintptr(0) /* True if trailing zeros should be removed */ - pArgList = uintptr(0) /* Conversion buffer */ + pArgList = uintptr(0) /* Conversion buffer */ /* pAccum never starts out with an empty buffer that was obtained from ** malloc(). This precondition is required by the mprintf("%z...") ** optimization. */ @@ -18109,7 +18277,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li for cond := true; cond; cond = *(*int8)(unsafe.Pointer(fmt)) != 0 && int32(*(*int8)(unsafe.Pointer(fmt))) != int32('%') { fmt++ } - Xsqlite3_str_append(tls, pAccum, bufpt, int32(int64(fmt)-int64(bufpt))) + Xsqlite3_str_append(tls, pAccum, bufpt, int32(int64(int64(fmt))-int64(int64(bufpt)))) if int32(*(*int8)(unsafe.Pointer(fmt))) == 0 { break } @@ -18119,7 +18287,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li v3 = int32(*(*int8)(unsafe.Pointer(v4))) c = v3 if v3 == 0 { - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1636, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1650, int32(1)) break } /* Find out what flags are present */ @@ -18194,7 +18362,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if !(v16 >= int32('0') && c <= int32('9')) { break } - wx = wx*uint32(10) + uint32(c) - uint32('0') + wx = wx*uint32(10) + uint32(uint32(c)) - uint32('0') } width = int32(wx & uint32(0x7fffffff)) if c != int32('.') && c != int32('l') { @@ -18249,7 +18417,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } else { px = uint32(0) for c >= int32('0') && c <= int32('9') { - px = px*uint32(10) + uint32(c) - uint32('0') + px = px*uint32(10) + uint32(uint32(c)) - uint32('0') fmt++ v24 = fmt c = int32(*(*int8)(unsafe.Pointer(v24))) @@ -18311,7 +18479,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li ** xtype The class of the conversion. ** infop Pointer to the appropriate info struct. */ - switch int32(xtype) { + switch int32(int32(xtype)) { case int32(etPOINTER): goto _26 case etRADIX: @@ -18365,10 +18533,10 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li v = _getIntArg(tls, pArgList) } else { if flag_long != 0 { - if int32(flag_long) == int32(2) { + if int32(int32(flag_long)) == int32(2) { v = libc.VaInt64(&ap) } else { - v = libc.VaInt64(&ap) + v = int64(libc.VaInt64(&ap)) } } else { v = int64(libc.VaInt32(&ap)) @@ -18379,18 +18547,18 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li longvalue++ prefix = int8('-') } else { - longvalue = uint64(v) - prefix = int8(flag_prefix) + longvalue = uint64(uint64(v)) + prefix = int8(int8(flag_prefix)) } } else { if bArgList != 0 { longvalue = uint64(_getIntArg(tls, pArgList)) } else { if flag_long != 0 { - if int32(flag_long) == int32(2) { + if int32(int32(flag_long)) == int32(2) { longvalue = libc.VaUint64(&ap) } else { - longvalue = libc.VaUint64(&ap) + longvalue = uint64(libc.VaUint64(&ap)) } } else { longvalue = uint64(libc.VaUint32(&ap)) @@ -18401,27 +18569,27 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if longvalue == uint64(0) { flag_alternateform = uint8(0) } - if flag_zeropad != 0 && precision < width-libc.BoolInt32(int32(prefix) != 0) { - precision = width - libc.BoolInt32(int32(prefix) != 0) + if flag_zeropad != 0 && precision < width-libc.BoolInt32(int32(int32(prefix)) != 0) { + precision = width - libc.BoolInt32(int32(int32(prefix)) != 0) } if precision < libc.Int32FromInt32(SQLITE_PRINT_BUF_SIZE)-libc.Int32FromInt32(10)-libc.Int32FromInt32(SQLITE_PRINT_BUF_SIZE)/libc.Int32FromInt32(3) { nOut = int32(SQLITE_PRINT_BUF_SIZE) zOut = bp } else { - n = uint64(precision) + uint64(10) + n = uint64(uint64(precision)) + uint64(10) if cThousand != 0 { n += uint64(precision / int32(3)) } - v45 = _printfTempBuf(tls, pAccum, int64(n)) + v45 = _printfTempBuf(tls, pAccum, int64(int64(n))) zExtra = v45 zOut = v45 if zOut == uintptr(0) { return } - nOut = int32(n) + nOut = int32(int32(n)) } bufpt = zOut + uintptr(nOut-int32(1)) - if int32(xtype) == int32(etORDINAL) { + if int32(int32(xtype)) == int32(etORDINAL) { x = int32(longvalue % libc.Uint64FromInt32(10)) if x >= int32(4) || longvalue/uint64(10)%uint64(10) == uint64(1) { x = 0 @@ -18438,10 +18606,10 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li for cond := true; cond; cond = longvalue > uint64(0) { /* Convert to ascii */ bufpt-- v48 = bufpt - *(*int8)(unsafe.Pointer(v48)) = *(*int8)(unsafe.Pointer(cset + uintptr(longvalue%uint64(base)))) - longvalue = longvalue / uint64(base) + *(*int8)(unsafe.Pointer(v48)) = *(*int8)(unsafe.Pointer(cset + uintptr(longvalue%uint64(uint64(base))))) + longvalue = longvalue / uint64(uint64(base)) } - length = int32(t__predefined_ptrdiff_t(zOut+uintptr(nOut-int32(1))) - int64(bufpt)) + length = int32(t__predefined_ptrdiff_t(zOut+uintptr(nOut-int32(1))) - int64(int64(bufpt))) for precision > length { bufpt-- v49 = bufpt @@ -18462,7 +18630,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if ix == 0 { idx++ v51 = idx - *(*int8)(unsafe.Pointer(bufpt + uintptr(v51))) = int8(cThousand) + *(*int8)(unsafe.Pointer(bufpt + uintptr(v51))) = int8(int8(cThousand)) nn-- ix = int32(3) } @@ -18494,7 +18662,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li pre++ } } - length = int32(t__predefined_ptrdiff_t(zOut+uintptr(nOut-int32(1))) - int64(bufpt)) + length = int32(t__predefined_ptrdiff_t(zOut+uintptr(nOut-int32(1))) - int64(int64(bufpt))) goto _44 _32: ; @@ -18513,10 +18681,10 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if precision > int32(SQLITE_FP_PRECISION_LIMIT) { precision = int32(SQLITE_FP_PRECISION_LIMIT) } - if int32(xtype) == int32(etFLOAT) { + if int32(int32(xtype)) == int32(etFLOAT) { iRound = -precision } else { - if int32(xtype) == int32(etGENERIC) { + if int32(int32(xtype)) == int32(etGENERIC) { if precision == 0 { precision = int32(1) } @@ -18534,9 +18702,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial != 0 { if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial) == int32(2) { if flag_zeropad != 0 { - v57 = __ccgo_ts + 1638 + v57 = __ccgo_ts + 1652 } else { - v57 = __ccgo_ts + 1643 + v57 = __ccgo_ts + 1657 } bufpt = v57 length = _sqlite3Strlen30(tls, bufpt) @@ -18547,13 +18715,13 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP = int32(1000) (*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fn = int32(1) } else { - libc.Xmemcpy(tls, bp, __ccgo_ts+1647, uint64(5)) + libc.Xmemcpy(tls, bp, __ccgo_ts+1661, uint64(5)) bufpt = bp if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fsign) == int32('-') { /* no-op */ } else { if flag_prefix != 0 { - (*(*[70]int8)(unsafe.Pointer(bp)))[0] = int8(flag_prefix) + (*(*[70]int8)(unsafe.Pointer(bp)))[0] = int8(int8(flag_prefix)) } else { bufpt++ } @@ -18566,17 +18734,15 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fsign) == int32('-') { prefix = int8('-') } else { - prefix = int8(flag_prefix) + prefix = int8(int8(flag_prefix)) } exp = (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP - int32(1) - if int32(xtype) == int32(etGENERIC) && precision > 0 { - precision-- - } /* ** If the field type is etGENERIC, then convert to either etEXP ** or etFLOAT, as appropriate. */ - if int32(xtype) == int32(etGENERIC) { + if int32(int32(xtype)) == int32(etGENERIC) { + precision-- flag_rtz = libc.BoolUint8(!(flag_alternateform != 0)) if exp < -int32(4) || exp > precision { xtype = uint8(etEXP) @@ -18587,7 +18753,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } else { flag_rtz = flag_altform2 } - if int32(xtype) == int32(etEXP) { + if int32(int32(xtype)) == int32(etEXP) { e2 = 0 } else { e2 = (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP - int32(1) @@ -18599,7 +18765,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } else { v58 = 0 } - szBufNeeded = int64(v58) + int64(precision) + int64(width) + int64(15) + szBufNeeded = int64(v58) + int64(int64(precision)) + int64(int64(width)) + int64(15) if cThousand != 0 && e2 > 0 { szBufNeeded += int64((e2 + int32(2)) / int32(3)) } @@ -18617,7 +18783,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } else { v60 = 0 } - flag_dp = uint8(v60 | int32(flag_alternateform) | int32(flag_altform2)) + flag_dp = uint8(v60 | int32(int32(flag_alternateform)) | int32(int32(flag_altform2))) /* The sign in front of the number */ if prefix != 0 { v61 = bufpt @@ -18716,7 +18882,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } } /* Add the "eNNN" suffix */ - if int32(xtype) == int32(etEXP) { + if int32(int32(xtype)) == int32(etEXP) { exp = (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP - int32(1) v78 = bufpt bufpt++ @@ -18748,7 +18914,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li /* The converted number is in buf[] and zero terminated. Output it. ** Note that the number is in the usual order, not reversed as with ** integer conversions. */ - length = int32(int64(bufpt) - int64(zOut)) + length = int32(int64(int64(bufpt)) - int64(int64(zOut))) bufpt = zOut /* Special case: Add leading zeros if the flag_zeropad flag is ** set and we are not left justified */ @@ -18765,7 +18931,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li ; i-- } - i = libc.BoolInt32(int32(prefix) != 0) + i = libc.BoolInt32(int32(int32(prefix)) != 0) for { v85 = nPad nPad-- @@ -18856,14 +19022,14 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if nPrior > int64(precision-int32(1)) { nPrior = int64(precision - int32(1)) } - nCopyBytes = int64(length) * nPrior + nCopyBytes = int64(int64(length)) * nPrior if nCopyBytes+int64((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnChar) >= int64((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnAlloc) { _sqlite3StrAccumEnlarge(tls, pAccum, nCopyBytes) } if (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FaccError != 0 { break } - Xsqlite3_str_append(tls, pAccum, (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FzText+uintptr(int64((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnChar)-nCopyBytes), int32(nCopyBytes)) + Xsqlite3_str_append(tls, pAccum, (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FzText+uintptr(int64((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnChar)-nCopyBytes), int32(int32(nCopyBytes))) precision = int32(int64(precision) - nPrior) nPrior *= int64(2) } @@ -18882,9 +19048,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li bufpt = libc.VaUintptr(&ap) } if bufpt == uintptr(0) { - bufpt = __ccgo_ts + 1652 + bufpt = __ccgo_ts + 1666 } else { - if int32(xtype) == int32(etDYNSTRING) { + if int32(int32(xtype)) == int32(etDYNSTRING) { if (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnChar == uint32(0) && (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FmxAlloc != 0 && width == 0 && precision < 0 && int32((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FaccError) == 0 { /* Special optimization for sqlite3_mprintf("%z..."): ** Extend an existing memory allocation rather than creating @@ -18919,7 +19085,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } } } - length = int32(int64(z) - int64(bufpt)) + length = int32(int64(int64(z)) - int64(bufpt)) } else { length = 0 for { @@ -18935,6 +19101,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } else { length = int32(0x7fffffff) & int32(libc.Xstrlen(tls, bufpt)) } + goto adjust_width_for_utf8 adjust_width_for_utf8: ; if flag_altform2 != 0 && width > 0 { @@ -18955,7 +19122,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li ; /* %Q: Escape ' and enclose in '...' */ _38: ; - if int32(xtype) == int32(etSQLESCAPE3) { + if int32(int32(xtype)) == int32(etSQLESCAPE3) { v97 = int32('"') } else { v97 = int32('\'') @@ -18968,10 +19135,10 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } isnull = libc.BoolInt32(escarg == uintptr(0)) if isnull != 0 { - if int32(xtype) == int32(etSQLESCAPE2) { - v98 = __ccgo_ts + 1653 + if int32(int32(xtype)) == int32(etSQLESCAPE2) { + v98 = __ccgo_ts + 1667 } else { - v98 = __ccgo_ts + 1658 + v98 = __ccgo_ts + 1672 } escarg = v98 } @@ -18980,7 +19147,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li ** Because of the extra quoting characters inserted, the number ** of output characters may be larger than the precision. */ - k = int64(precision) + k = int64(int64(precision)) v100 = libc.Int64FromInt32(0) n1 = v100 i1 = v100 @@ -18992,10 +19159,10 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if !(v102 && int32(v101) != 0) { break } - if int32(ch1) == int32(q) { + if int32(int32(ch1)) == int32(int32(q)) { n1++ } - if flag_altform2 != 0 && int32(ch1)&int32(0xc0) == int32(0xc0) { + if flag_altform2 != 0 && int32(int32(ch1))&int32(0xc0) == int32(0xc0) { for int32(*(*int8)(unsafe.Pointer(escarg + uintptr(i1+int64(1)))))&int32(0xc0) == int32(0x80) { i1++ } @@ -19006,7 +19173,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li i1++ k-- } - needQuote = libc.BoolInt32(!(isnull != 0) && int32(xtype) == int32(etSQLESCAPE2)) + needQuote = libc.BoolInt32(!(isnull != 0) && int32(int32(xtype)) == int32(etSQLESCAPE2)) n1 += i1 + int64(3) if n1 > int64(SQLITE_PRINT_BUF_SIZE) { v103 = _printfTempBuf(tls, pAccum, n1) @@ -19035,7 +19202,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li v107 = *(*int8)(unsafe.Pointer(escarg + uintptr(i1))) ch1 = v107 *(*int8)(unsafe.Pointer(bufpt + uintptr(v106))) = v107 - if int32(ch1) == int32(q) { + if int32(int32(ch1)) == int32(int32(q)) { v108 = j1 j1++ *(*int8)(unsafe.Pointer(bufpt + uintptr(v108))) = ch1 @@ -19051,7 +19218,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li *(*int8)(unsafe.Pointer(bufpt + uintptr(v109))) = q } *(*int8)(unsafe.Pointer(bufpt + uintptr(j1))) = 0 - length = int32(j1) + length = int32(int32(j1)) goto adjust_width_for_utf8 _41: ; @@ -19089,7 +19256,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*TSrcItem)(unsafe.Pointer(pItem)).FzName != 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1665, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1679, int32(1)) } Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzName) } else { @@ -19097,10 +19264,15 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzAlias) } else { pSel = (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect + /* Because of tag-20240424-1 */ if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_NestedFrom) != 0 { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1667, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1681, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) } else { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1677, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_MultiValue) != 0 { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1691, libc.VaList(bp+128, *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pItem)).Fu1)))) + } else { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1712, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + } } } } @@ -19176,7 +19348,7 @@ func _sqlite3RecordErrorByteOffset(tls *libc.TLS, db uintptr, z uintptr) { } zEnd = zText + uintptr(libc.Xstrlen(tls, zText)) if uint64(z) >= uint64(zText) && uint64(z) < uint64(zEnd) { - (*Tsqlite3)(unsafe.Pointer(db)).FerrByteOffset = int32(int64(z) - int64(zText)) + (*Tsqlite3)(unsafe.Pointer(db)).FerrByteOffset = int32(int64(int64(z)) - int64(int64(zText))) } } @@ -19234,7 +19406,7 @@ func _sqlite3StrAccumEnlarge(tls *libc.TLS, p uintptr, N Ti64) (r int32) { _sqlite3StrAccumSetError(tls, p, uint8(SQLITE_TOOBIG)) return 0 } else { - (*TStrAccum)(unsafe.Pointer(p)).FnAlloc = uint32(int32(szNew)) + (*TStrAccum)(unsafe.Pointer(p)).FnAlloc = uint32(int32(int32(szNew))) } if (*TStrAccum)(unsafe.Pointer(p)).Fdb != 0 { zNew = _sqlite3DbRealloc(tls, (*TStrAccum)(unsafe.Pointer(p)).Fdb, zOld, uint64((*TStrAccum)(unsafe.Pointer(p)).FnAlloc)) @@ -19255,7 +19427,7 @@ func _sqlite3StrAccumEnlarge(tls *libc.TLS, p uintptr, N Ti64) (r int32) { return 0 } } - return int32(N) + return int32(int32(N)) } // C documentation @@ -19269,8 +19441,8 @@ func Xsqlite3_str_appendchar(tls *libc.TLS, p uintptr, N int32, c int8) { var v4 Tu32 var v5 uintptr _, _, _, _, _ = v1, v2, v3, v4, v5 - if v2 = int64((*Tsqlite3_str)(unsafe.Pointer(p)).FnChar)+int64(N) >= int64((*Tsqlite3_str)(unsafe.Pointer(p)).FnAlloc); v2 { - v1 = _sqlite3StrAccumEnlarge(tls, p, int64(N)) + if v2 = int64((*Tsqlite3_str)(unsafe.Pointer(p)).FnChar)+int64(int64(N)) >= int64((*Tsqlite3_str)(unsafe.Pointer(p)).FnAlloc); v2 { + v1 = _sqlite3StrAccumEnlarge(tls, p, int64(int64(N))) N = v1 } if v2 && v1 <= 0 { @@ -19300,10 +19472,10 @@ func Xsqlite3_str_appendchar(tls *libc.TLS, p uintptr, N int32, c int8) { // ** sqlite3_str_append() routine can use fast calling semantics. // */ func _enlargeAndAppend(tls *libc.TLS, p uintptr, z uintptr, N int32) { - N = _sqlite3StrAccumEnlarge(tls, p, int64(N)) + N = _sqlite3StrAccumEnlarge(tls, p, int64(int64(N))) if N > 0 { - libc.Xmemcpy(tls, (*TStrAccum)(unsafe.Pointer(p)).FzText+uintptr((*TStrAccum)(unsafe.Pointer(p)).FnChar), z, uint64(N)) - *(*Tu32)(unsafe.Pointer(p + 24)) += uint32(N) + libc.Xmemcpy(tls, (*TStrAccum)(unsafe.Pointer(p)).FzText+uintptr((*TStrAccum)(unsafe.Pointer(p)).FnChar), z, uint64(uint64(N))) + *(*Tu32)(unsafe.Pointer(p + 24)) += uint32(uint32(N)) } } @@ -19314,12 +19486,12 @@ func _enlargeAndAppend(tls *libc.TLS, p uintptr, z uintptr, N int32) { // ** size of the memory allocation for StrAccum if necessary. // */ func Xsqlite3_str_append(tls *libc.TLS, p uintptr, z uintptr, N int32) { - if (*Tsqlite3_str)(unsafe.Pointer(p)).FnChar+uint32(N) >= (*Tsqlite3_str)(unsafe.Pointer(p)).FnAlloc { + if (*Tsqlite3_str)(unsafe.Pointer(p)).FnChar+uint32(uint32(N)) >= (*Tsqlite3_str)(unsafe.Pointer(p)).FnAlloc { _enlargeAndAppend(tls, p, z, N) } else { if N != 0 { - *(*Tu32)(unsafe.Pointer(p + 24)) += uint32(N) - libc.Xmemcpy(tls, (*Tsqlite3_str)(unsafe.Pointer(p)).FzText+uintptr((*Tsqlite3_str)(unsafe.Pointer(p)).FnChar-uint32(N)), z, uint64(N)) + *(*Tu32)(unsafe.Pointer(p + 24)) += uint32(uint32(N)) + libc.Xmemcpy(tls, (*Tsqlite3_str)(unsafe.Pointer(p)).FzText+uintptr((*Tsqlite3_str)(unsafe.Pointer(p)).FnChar-uint32(uint32(N))), z, uint64(uint64(N))) } } } @@ -19379,7 +19551,7 @@ func _sqlite3ResultStrAccum(tls *libc.TLS, pCtx uintptr, p uintptr) { if int32((*TStrAccum)(unsafe.Pointer(p)).FprintfFlags)&int32(SQLITE_PRINTF_MALLOCED) != 0 { Xsqlite3_result_text(tls, pCtx, (*TStrAccum)(unsafe.Pointer(p)).FzText, int32((*TStrAccum)(unsafe.Pointer(p)).FnChar), __ccgo_fp(_sqlite3OomClear)) } else { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1652, 0, libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1666, 0, libc.UintptrFromInt32(0)) Xsqlite3_str_reset(tls, p) } } @@ -19489,8 +19661,8 @@ func Xsqlite3_str_reset(tls *libc.TLS, p uintptr) { func _sqlite3StrAccumInit(tls *libc.TLS, p uintptr, db uintptr, zBase uintptr, n int32, mx int32) { (*TStrAccum)(unsafe.Pointer(p)).FzText = zBase (*TStrAccum)(unsafe.Pointer(p)).Fdb = db - (*TStrAccum)(unsafe.Pointer(p)).FnAlloc = uint32(n) - (*TStrAccum)(unsafe.Pointer(p)).FmxAlloc = uint32(mx) + (*TStrAccum)(unsafe.Pointer(p)).FnAlloc = uint32(uint32(n)) + (*TStrAccum)(unsafe.Pointer(p)).FmxAlloc = uint32(uint32(mx)) (*TStrAccum)(unsafe.Pointer(p)).FnChar = uint32(0) (*TStrAccum)(unsafe.Pointer(p)).FaccError = uint8(0) (*TStrAccum)(unsafe.Pointer(p)).FprintfFlags = uint8(0) @@ -20052,7 +20224,7 @@ func Xsqlite3_randomness(tls *libc.TLS, N int32, pBuf uintptr) { } for int32(1) != 0 { if N <= int32(_sqlite3Prng.Fn) { - libc.Xmemcpy(tls, zBuf, uintptr(unsafe.Pointer(&_sqlite3Prng))+64+uintptr(int32(_sqlite3Prng.Fn)-N), uint64(N)) + libc.Xmemcpy(tls, zBuf, uintptr(unsafe.Pointer(&_sqlite3Prng))+64+uintptr(int32(_sqlite3Prng.Fn)-N), uint64(uint64(N))) p1 = uintptr(unsafe.Pointer(&_sqlite3Prng)) + 128 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) - N) break @@ -20428,7 +20600,7 @@ func _sqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc Tu8) (r in ** all that is required is to swap the byte order. This case is handled ** differently from the others. */ - if int32((*TMem)(unsafe.Pointer(pMem)).Fenc) != int32(SQLITE_UTF8) && int32(desiredEnc) != int32(SQLITE_UTF8) { + if int32((*TMem)(unsafe.Pointer(pMem)).Fenc) != int32(SQLITE_UTF8) && int32(int32(desiredEnc)) != int32(SQLITE_UTF8) { rc = _sqlite3VdbeMemMakeWriteable(tls, pMem) if rc != SQLITE_OK { return int32(SQLITE_NOMEM) @@ -20447,7 +20619,7 @@ func _sqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc Tu8) (r in goto translate_out } /* Set len to the maximum number of bytes required in the output buffer. */ - if int32(desiredEnc) == int32(SQLITE_UTF8) { + if int32(int32(desiredEnc)) == int32(SQLITE_UTF8) { /* When converting from UTF-16, the maximum growth results from ** translating a 2-byte character to a 4-byte UTF-8 character. ** A single byte is required for the output string @@ -20471,13 +20643,13 @@ func _sqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc Tu8) (r in */ zIn = (*TMem)(unsafe.Pointer(pMem)).Fz zTerm = zIn + uintptr((*TMem)(unsafe.Pointer(pMem)).Fn) - zOut = _sqlite3DbMallocRaw(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, uint64(len1)) + zOut = _sqlite3DbMallocRaw(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, uint64(uint64(len1))) if !(zOut != 0) { return int32(SQLITE_NOMEM) } z = zOut if int32((*TMem)(unsafe.Pointer(pMem)).Fenc) == int32(SQLITE_UTF8) { - if int32(desiredEnc) == int32(SQLITE_UTF16LE) { + if int32(int32(desiredEnc)) == int32(SQLITE_UTF16LE) { /* UTF-8 -> UTF-16 Little-endian */ for zIn < zTerm { v2 = zIn @@ -20556,7 +20728,7 @@ func _sqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc Tu8) (r in } } } - (*TMem)(unsafe.Pointer(pMem)).Fn = int32(int64(z) - int64(zOut)) + (*TMem)(unsafe.Pointer(pMem)).Fn = int32(int64(int64(z)) - int64(int64(zOut))) v18 = z z++ *(*uint8)(unsafe.Pointer(v18)) = uint8(0) @@ -20682,16 +20854,17 @@ func _sqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc Tu8) (r in } } } - (*TMem)(unsafe.Pointer(pMem)).Fn = int32(int64(z) - int64(zOut)) + (*TMem)(unsafe.Pointer(pMem)).Fn = int32(int64(int64(z)) - int64(int64(zOut))) } *(*uint8)(unsafe.Pointer(z)) = uint8(0) c = uint32(libc.Int32FromInt32(MEM_Str) | libc.Int32FromInt32(MEM_Term) | int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_AffMask)|libc.Int32FromInt32(MEM_Subtype))) _sqlite3VdbeMemRelease(tls, pMem) - (*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(c) + (*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(uint16(c)) (*TMem)(unsafe.Pointer(pMem)).Fenc = desiredEnc (*TMem)(unsafe.Pointer(pMem)).Fz = zOut (*TMem)(unsafe.Pointer(pMem)).FzMalloc = (*TMem)(unsafe.Pointer(pMem)).Fz (*TMem)(unsafe.Pointer(pMem)).FszMalloc = _sqlite3DbMallocSize(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).Fz) + goto translate_out translate_out: ; return SQLITE_OK @@ -20719,10 +20892,10 @@ func _sqlite3VdbeMemHandleBom(tls *libc.TLS, pMem uintptr) (r int32) { if (*TMem)(unsafe.Pointer(pMem)).Fn > int32(1) { b1 = *(*Tu8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pMem)).Fz)) b2 = *(*Tu8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pMem)).Fz + libc.UintptrFromInt32(1))) - if int32(b1) == int32(0xFE) && int32(b2) == int32(0xFF) { + if int32(int32(b1)) == int32(0xFE) && int32(int32(b2)) == int32(0xFF) { bom = uint8(SQLITE_UTF16BE) } - if int32(b1) == int32(0xFF) && int32(b2) == int32(0xFE) { + if int32(int32(b1)) == int32(0xFF) && int32(int32(b2)) == int32(0xFE) { bom = uint8(SQLITE_UTF16LE) } } @@ -20793,7 +20966,7 @@ func _sqlite3Utf16to8(tls *libc.TLS, db uintptr, z uintptr, nByte int32, enc Tu8 var _ /* m at bp+0 */ TMem libc.Xmemset(tls, bp, 0, uint64(56)) (*(*TMem)(unsafe.Pointer(bp))).Fdb = db - _sqlite3VdbeMemSetStr(tls, bp, z, int64(nByte), enc, libc.UintptrFromInt32(0)) + _sqlite3VdbeMemSetStr(tls, bp, z, int64(int64(nByte)), enc, libc.UintptrFromInt32(0)) _sqlite3VdbeChangeEncoding(tls, bp, int32(SQLITE_UTF8)) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { _sqlite3VdbeMemRelease(tls, bp) @@ -20826,7 +20999,7 @@ func _sqlite3Utf16ByteLen(tls *libc.TLS, zIn uintptr, nChar int32) (r int32) { } n++ } - return int32(int64(z)-int64(zIn)) - libc.BoolInt32(true) + return int32(int64(int64(z))-int64(zIn)) - libc.BoolInt32(true) } type Tfloat_t = float32 @@ -21168,14 +21341,14 @@ func _sqlite3Dequote(tls *libc.TLS, z uintptr) { if !(int32(_sqlite3CtypeMap[uint8(quote)])&libc.Int32FromInt32(0x80) != 0) { return } - if int32(quote) == int32('[') { + if int32(int32(quote)) == int32('[') { quote = int8(']') } i = int32(1) j = libc.Int32FromInt32(0) for { - if int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == int32(quote) { - if int32(*(*int8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32(quote) { + if int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == int32(int32(quote)) { + if int32(*(*int8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32(int32(quote)) { v2 = j j++ *(*int8)(unsafe.Pointer(z + uintptr(v2))) = quote @@ -21208,6 +21381,60 @@ func _sqlite3DequoteExpr(tls *libc.TLS, p uintptr) { _sqlite3Dequote(tls, *(*uintptr)(unsafe.Pointer(p + 8))) } +// C documentation +// +// /* +// ** Expression p is a QNUMBER (quoted number). Dequote the value in p->u.zToken +// ** and set the type to INTEGER or FLOAT. "Quoted" integers or floats are those +// ** that contain '_' characters that must be removed before further processing. +// */ +func _sqlite3DequoteNumber(tls *libc.TLS, pParse uintptr, p uintptr) { + bp := tls.Alloc(32) + defer tls.Free(32) + var bHex int32 + var pIn, pOut, v1, v3 uintptr + var _ /* iValue at bp+0 */ int32 + _, _, _, _, _ = bHex, pIn, pOut, v1, v3 + if p != 0 { + pIn = *(*uintptr)(unsafe.Pointer(p + 8)) + pOut = *(*uintptr)(unsafe.Pointer(p + 8)) + bHex = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(pIn))) == int32('0') && (int32(*(*int8)(unsafe.Pointer(pIn + 1))) == int32('x') || int32(*(*int8)(unsafe.Pointer(pIn + 1))) == int32('X'))) + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + for { + if int32(*(*int8)(unsafe.Pointer(pIn))) != int32('_') { + v3 = pOut + pOut++ + *(*int8)(unsafe.Pointer(v3)) = *(*int8)(unsafe.Pointer(pIn)) + if int32(*(*int8)(unsafe.Pointer(pIn))) == int32('e') || int32(*(*int8)(unsafe.Pointer(pIn))) == int32('E') || int32(*(*int8)(unsafe.Pointer(pIn))) == int32('.') { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_FLOAT) + } + } else { + if bHex == 0 && (!(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1)))))])&libc.Int32FromInt32(0x04) != 0) || !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + 1)))])&libc.Int32FromInt32(0x04) != 0)) || bHex == int32(1) && (!(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1)))))])&libc.Int32FromInt32(0x08) != 0) || !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + 1)))])&libc.Int32FromInt32(0x08) != 0)) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1726, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(p + 8)))) + } + } + goto _2 + _2: + ; + v1 = pIn + pIn++ + if !(*(*int8)(unsafe.Pointer(v1)) != 0) { + break + } + } + if bHex != 0 { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + } + /* tag-20240227-a: If after dequoting, the number is an integer that + ** fits in 32 bits, then it must be converted into EP_IntValue. Other + ** parts of the code expect this. See also tag-20240227-b. */ + if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_INTEGER) && _sqlite3GetInt32(tls, *(*uintptr)(unsafe.Pointer(p + 8)), bp) != 0 { + *(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(p)).Fu)) = *(*int32)(unsafe.Pointer(bp)) + *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(EP_IntValue) + } + } +} + // C documentation // // /* @@ -21446,25 +21673,25 @@ func _sqlite3AtoF(tls *libc.TLS, z uintptr, pResult uintptr, length int32, enc T var _ /* rr at bp+0 */ [2]float64 _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = d, e, eType, eValid, esign, i, incr, nDigit, r, s, s2, sign, zEnd, v2, v3, v4 /* sign * significand * (10 ^ (esign * exponent)) */ - sign = int32(1) /* sign of significand */ - s = uint64(0) /* significand */ - d = 0 /* adjust exponent for shifting decimal point */ - esign = int32(1) /* sign of exponent */ - e = 0 /* exponent */ - eValid = int32(1) /* True exponent is either not used or is well-formed */ - nDigit = 0 /* Number of digits processed */ - eType = int32(1) /* 1: pure integer, 2+: fractional -1 or less: bad UTF16 */ + sign = int32(1) /* sign of significand */ + s = uint64(0) /* significand */ + d = 0 /* adjust exponent for shifting decimal point */ + esign = int32(1) /* sign of exponent */ + e = 0 /* exponent */ + eValid = int32(1) /* True exponent is either not used or is well-formed */ + nDigit = 0 /* Number of digits processed */ + eType = int32(1) /* 1: pure integer, 2+: fractional -1 or less: bad UTF16 */ *(*float64)(unsafe.Pointer(pResult)) = float64(0) /* Default return value, in case of an error */ if length == 0 { return 0 } - if int32(enc) == int32(SQLITE_UTF8) { + if int32(int32(enc)) == int32(SQLITE_UTF8) { incr = int32(1) zEnd = z + uintptr(length) } else { incr = int32(2) length &= ^libc.Int32FromInt32(1) - i = int32(3) - int32(enc) + i = int32(3) - int32(int32(enc)) for { if !(i < length && int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == 0) { break @@ -21478,7 +21705,7 @@ func _sqlite3AtoF(tls *libc.TLS, z uintptr, pResult uintptr, length int32, enc T eType = -int32(100) } zEnd = z + uintptr(i^int32(1)) - z += uintptr(int32(enc) & libc.Int32FromInt32(1)) + z += uintptr(int32(int32(enc)) & libc.Int32FromInt32(1)) } /* skip leading spaces */ for z < zEnd && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z)))])&int32(0x01) != 0 { @@ -21567,6 +21794,7 @@ func _sqlite3AtoF(tls *libc.TLS, z uintptr, pResult uintptr, length int32, enc T for z < zEnd && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z)))])&int32(0x01) != 0 { z += uintptr(incr) } + goto do_atof_calc do_atof_calc: ; /* Zero is a special case */ @@ -21591,44 +21819,44 @@ do_atof_calc: e++ } if e == 0 { - *(*float64)(unsafe.Pointer(pResult)) = float64(s) + *(*float64)(unsafe.Pointer(pResult)) = float64(float64(s)) } else { if _sqlite3Config.FbUseLongDouble != 0 { - r = float64(s) + r = float64(float64(s)) if e > 0 { for e >= int32(100) { e -= int32(100) - r = r * libc.Float64FromFloat64(1e+100) + r = float64(float64(r) * libc.Float64FromFloat64(1e+100)) } for e >= int32(10) { e -= int32(10) - r = r * libc.Float64FromFloat64(1e+10) + r = float64(float64(r) * libc.Float64FromFloat64(1e+10)) } for e >= int32(1) { e -= int32(1) - r = r * libc.Float64FromFloat64(10) + r = float64(float64(r) * libc.Float64FromFloat64(10)) } } else { for e <= -int32(100) { e += int32(100) - r = r * libc.Float64FromFloat64(1e-100) + r = float64(float64(r) * libc.Float64FromFloat64(1e-100)) } for e <= -int32(10) { e += int32(10) - r = r * libc.Float64FromFloat64(1e-10) + r = float64(float64(r) * libc.Float64FromFloat64(1e-10)) } for e <= -int32(1) { e += int32(1) - r = r * libc.Float64FromFloat64(0.1) + r = float64(float64(r) * libc.Float64FromFloat64(0.1)) } } - if r > +libc.Float64FromFloat64(1.7976931348623157081452742373e+308) { + if float64(float64(r)) > +libc.Float64FromFloat64(1.7976931348623157081452742373e+308) { *(*float64)(unsafe.Pointer(pResult)) = float64(+libc.X__builtin_inff(tls)) } else { *(*float64)(unsafe.Pointer(pResult)) = r } } else { - (*(*[2]float64)(unsafe.Pointer(bp)))[0] = float64(s) + (*(*[2]float64)(unsafe.Pointer(bp)))[0] = float64(float64(s)) s2 = uint64((*(*[2]float64)(unsafe.Pointer(bp)))[0]) if s >= s2 { v4 = float64(s - s2) @@ -21672,6 +21900,7 @@ do_atof_calc: if sign < 0 { *(*float64)(unsafe.Pointer(pResult)) = -*(*float64)(unsafe.Pointer(pResult)) } + goto atof_return atof_return: ; /* return true if number and no extra non-whitespace characters after */ @@ -21713,7 +21942,7 @@ func _sqlite3Int64ToText(tls *libc.TLS, v Ti64, zOut uintptr) (r int32) { } x = v1 } else { - x = uint64(v) + x = uint64(uint64(v)) } i = int32(libc.Uint64FromInt64(22) - libc.Uint64FromInt32(2)) (*(*[22]int8)(unsafe.Pointer(bp)))[libc.Uint64FromInt64(22)-libc.Uint64FromInt32(1)] = 0 @@ -21730,8 +21959,8 @@ func _sqlite3Int64ToText(tls *libc.TLS, v Ti64, zOut uintptr) (r int32) { v2 = i (*(*[22]int8)(unsafe.Pointer(bp)))[v2] = int8('-') } - libc.Xmemcpy(tls, zOut, bp+uintptr(i), uint64(22)-uint64(i)) - return int32(libc.Uint64FromInt64(22) - libc.Uint64FromInt32(1) - uint64(i)) + libc.Xmemcpy(tls, zOut, bp+uintptr(i), uint64(22)-uint64(uint64(i))) + return int32(libc.Uint64FromInt64(22) - libc.Uint64FromInt32(1) - uint64(uint64(i))) } // C documentation @@ -21756,7 +21985,7 @@ func _compare2pow63(tls *libc.TLS, zNum uintptr, incr int32) (r int32) { _, _, _ = c, i, pow63 c = 0 /* 012345678901234567 */ - pow63 = __ccgo_ts + 1691 + pow63 = __ccgo_ts + 1751 i = 0 for { if !(c == 0 && i < int32(18)) { @@ -21804,12 +22033,12 @@ func _sqlite3Atoi64(tls *libc.TLS, zNum uintptr, pNum uintptr, length int32, enc c = 0 nonNum = 0 zEnd = zNum + uintptr(length) - if int32(enc) == int32(SQLITE_UTF8) { + if int32(int32(enc)) == int32(SQLITE_UTF8) { incr = int32(1) } else { incr = int32(2) length &= ^libc.Int32FromInt32(1) - i = int32(3) - int32(enc) + i = int32(3) - int32(int32(enc)) for { if !(i < length && int32(*(*int8)(unsafe.Pointer(zNum + uintptr(i)))) == 0) { break @@ -21821,7 +22050,7 @@ func _sqlite3Atoi64(tls *libc.TLS, zNum uintptr, pNum uintptr, length int32, enc } nonNum = libc.BoolInt32(i < length) zEnd = zNum + uintptr(i^int32(1)) - zNum += uintptr(int32(enc) & libc.Int32FromInt32(1)) + zNum += uintptr(int32(int32(enc)) & libc.Int32FromInt32(1)) } for zNum < zEnd && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zNum)))])&int32(0x01) != 0 { zNum += uintptr(incr) @@ -21849,7 +22078,7 @@ func _sqlite3Atoi64(tls *libc.TLS, zNum uintptr, pNum uintptr, length int32, enc if !(v4 && v3 >= int32('0') && c <= int32('9')) { break } - u = u*uint64(10) + uint64(c) - uint64('0') + u = u*uint64(10) + uint64(uint64(c)) - uint64('0') goto _2 _2: ; @@ -21868,9 +22097,9 @@ func _sqlite3Atoi64(tls *libc.TLS, zNum uintptr, pNum uintptr, length int32, enc *(*Ti64)(unsafe.Pointer(pNum)) = v5 } else { if neg != 0 { - *(*Ti64)(unsafe.Pointer(pNum)) = -int64(u) + *(*Ti64)(unsafe.Pointer(pNum)) = -int64(int64(u)) } else { - *(*Ti64)(unsafe.Pointer(pNum)) = int64(u) + *(*Ti64)(unsafe.Pointer(pNum)) = int64(int64(u)) } } rc = 0 @@ -21983,7 +22212,7 @@ func _sqlite3DecOrHexToI64(tls *libc.TLS, z uintptr, pOut uintptr) (r int32) { } return 0 } else { - n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1710)) + n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1770)) if *(*int8)(unsafe.Pointer(z + uintptr(n))) != 0 { n++ } @@ -22062,7 +22291,7 @@ func _sqlite3GetInt32(tls *libc.TLS, zNum uintptr, pValue uintptr) (r int32) { if !(v4 && v3 >= 0 && c <= int32(9)) { break } - v = v*int64(10) + int64(c) + v = v*int64(10) + int64(int64(c)) goto _2 _2: ; @@ -22076,13 +22305,13 @@ func _sqlite3GetInt32(tls *libc.TLS, zNum uintptr, pValue uintptr) (r int32) { if i > int32(10) { return 0 } - if v-int64(neg) > int64(2147483647) { + if v-int64(int64(neg)) > int64(2147483647) { return 0 } if neg != 0 { v = -v } - *(*int32)(unsafe.Pointer(pValue)) = int32(v) + *(*int32)(unsafe.Pointer(pValue)) = int32(int32(v)) return int32(1) } @@ -22141,7 +22370,7 @@ func _sqlite3FpDecode(tls *libc.TLS, p uintptr, _r float64, iRound int32, mxRoun (*TFpDecode)(unsafe.Pointer(p)).Fsign = int8('+') (*TFpDecode)(unsafe.Pointer(p)).Fn = int32(1) (*TFpDecode)(unsafe.Pointer(p)).FiDP = int32(1) - (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1726 + (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1786 return } else { (*TFpDecode)(unsafe.Pointer(p)).Fsign = int8('+') @@ -22161,33 +22390,33 @@ func _sqlite3FpDecode(tls *libc.TLS, p uintptr, _r float64, iRound int32, mxRoun if _sqlite3Config.FbUseLongDouble != 0 { rr = *(*float64)(unsafe.Pointer(bp)) if rr >= float64(1e+19) { - for rr >= libc.Float64FromFloat64(1e+119) { + for float64(float64(rr)) >= libc.Float64FromFloat64(1e+119) { exp += int32(100) - rr = rr * libc.Float64FromFloat64(1e-100) + rr = float64(float64(rr) * libc.Float64FromFloat64(1e-100)) } - for rr >= libc.Float64FromFloat64(1e+29) { + for float64(float64(rr)) >= libc.Float64FromFloat64(1e+29) { exp += int32(10) - rr = rr * libc.Float64FromFloat64(1e-10) + rr = float64(float64(rr) * libc.Float64FromFloat64(1e-10)) } - for rr >= libc.Float64FromFloat64(1e+19) { + for float64(float64(rr)) >= libc.Float64FromFloat64(1e+19) { exp++ - rr = rr * libc.Float64FromFloat64(0.1) + rr = float64(float64(rr) * libc.Float64FromFloat64(0.1)) } } else { - for rr < libc.Float64FromFloat64(1e-97) { + for float64(float64(rr)) < libc.Float64FromFloat64(1e-97) { exp -= int32(100) - rr = rr * libc.Float64FromFloat64(1e+100) + rr = float64(float64(rr) * libc.Float64FromFloat64(1e+100)) } - for rr < libc.Float64FromFloat64(1e+07) { + for float64(float64(rr)) < libc.Float64FromFloat64(1e+07) { exp -= int32(10) - rr = rr * libc.Float64FromFloat64(1e+10) + rr = float64(float64(rr) * libc.Float64FromFloat64(1e+10)) } - for rr < libc.Float64FromFloat64(1e+17) { + for float64(float64(rr)) < libc.Float64FromFloat64(1e+17) { exp-- - rr = rr * libc.Float64FromFloat64(10) + rr = float64(float64(rr) * libc.Float64FromFloat64(10)) } } - *(*Tu64)(unsafe.Pointer(bp + 8)) = uint64(rr) + *(*Tu64)(unsafe.Pointer(bp + 8)) = uint64(uint64(rr)) } else { (*(*[2]float64)(unsafe.Pointer(bp + 16)))[0] = *(*float64)(unsafe.Pointer(bp)) (*(*[2]float64)(unsafe.Pointer(bp + 16)))[int32(1)] = float64(0) @@ -22233,7 +22462,7 @@ func _sqlite3FpDecode(tls *libc.TLS, p uintptr, _r float64, iRound int32, mxRoun *(*int8)(unsafe.Pointer(p + 24 + uintptr(v2))) = int8(*(*Tu64)(unsafe.Pointer(bp + 8))%uint64(10) + uint64('0')) *(*Tu64)(unsafe.Pointer(bp + 8)) /= uint64(10) } - (*TFpDecode)(unsafe.Pointer(p)).Fn = int32(libc.Uint64FromInt64(24) - libc.Uint64FromInt32(1) - uint64(i)) + (*TFpDecode)(unsafe.Pointer(p)).Fn = int32(libc.Uint64FromInt64(24) - libc.Uint64FromInt32(1) - uint64(uint64(i))) (*TFpDecode)(unsafe.Pointer(p)).FiDP = (*TFpDecode)(unsafe.Pointer(p)).Fn + exp if iRound <= 0 { iRound = (*TFpDecode)(unsafe.Pointer(p)).FiDP - iRound @@ -22311,7 +22540,7 @@ func _sqlite3GetUInt32(tls *libc.TLS, z uintptr, pI uintptr) (r int32) { *(*Tu32)(unsafe.Pointer(pI)) = uint32(0) return 0 } - *(*Tu32)(unsafe.Pointer(pI)) = uint32(v) + *(*Tu32)(unsafe.Pointer(pI)) = uint32(uint32(v)) return int32(1) } @@ -22354,7 +22583,7 @@ func _putVarint64(tls *libc.TLS, p uintptr, v Tu64) (r int32) { var _ /* buf at bp+0 */ [10]Tu8 _, _, _, _, _ = i, j, n, v2, p3 if v&(libc.Uint64FromUint32(0xff000000)<>= uint64(8) i = int32(7) for { @@ -22446,7 +22675,7 @@ func _sqlite3GetVarint(tls *libc.TLS, p uintptr, v uintptr) (r Tu8) { b &= uint32(0x7f) b = b << int32(7) a |= b - *(*Tu64)(unsafe.Pointer(v)) = uint64(a) + *(*Tu64)(unsafe.Pointer(v)) = uint64(uint64(a)) return uint8(3) } /* CSE1 from below */ @@ -22461,7 +22690,7 @@ func _sqlite3GetVarint(tls *libc.TLS, p uintptr, v uintptr) (r Tu8) { /* a &= (0x7f<<14)|(0x7f); */ a = a << int32(7) a |= b - *(*Tu64)(unsafe.Pointer(v)) = uint64(a) + *(*Tu64)(unsafe.Pointer(v)) = uint64(uint64(a)) return uint8(4) } /* a: p0<<14 | p2 (masked) */ @@ -22484,7 +22713,7 @@ func _sqlite3GetVarint(tls *libc.TLS, p uintptr, v uintptr) (r Tu8) { b = b << int32(7) a |= b s = s >> int32(18) - *(*Tu64)(unsafe.Pointer(v)) = uint64(s)<> int32(18) - *(*Tu64)(unsafe.Pointer(v)) = uint64(s)<> int32(11) - *(*Tu64)(unsafe.Pointer(v)) = uint64(s)<> int32(4) - *(*Tu64)(unsafe.Pointer(v)) = uint64(s)<> int32(3) s |= b - *(*Tu64)(unsafe.Pointer(v)) = uint64(s)<= int32(b) { - if int32(a) > int32(b)+int32(49) { + if int32(int32(a)) >= int32(int32(b)) { + if int32(int32(a)) > int32(int32(b))+int32(49) { return a } - if int32(a) > int32(b)+int32(31) { - return int16(int32(a) + int32(1)) + if int32(int32(a)) > int32(int32(b))+int32(31) { + return int16(int32(int32(a)) + int32(1)) } - return int16(int32(a) + int32(_x[int32(a)-int32(b)])) + return int16(int32(int32(a)) + int32(_x[int32(int32(a))-int32(int32(b))])) } else { - if int32(b) > int32(a)+int32(49) { + if int32(int32(b)) > int32(int32(a))+int32(49) { return b } - if int32(b) > int32(a)+int32(31) { - return int16(int32(b) + int32(1)) + if int32(int32(b)) > int32(int32(a))+int32(31) { + return int16(int32(int32(b)) + int32(1)) } - return int16(int32(b) + int32(_x[int32(b)-int32(a)])) + return int16(int32(int32(b)) + int32(_x[int32(int32(b))-int32(int32(a))])) } return r } @@ -22863,9 +23092,9 @@ func _sqlite3LogEst(tls *libc.TLS, x Tu64) (r TLogEst) { } else { i = int32(60) - libc.X__builtin_clzll(tls, x) y = TLogEst(int32(y) + i*libc.Int32FromInt32(10)) - x >>= uint64(i) + x >>= uint64(uint64(i)) } - return int16(int32(_a[x&uint64(7)]) + int32(y) - int32(10)) + return int16(int32(_a[x&uint64(7)]) + int32(int32(y)) - int32(10)) } var _a = [8]TLogEst{ @@ -22899,7 +23128,7 @@ func _sqlite3LogEstFromDouble(tls *libc.TLS, _x float64) (r TLogEst) { } libc.Xmemcpy(tls, bp+8, bp, uint64(8)) e = int16(*(*Tu64)(unsafe.Pointer(bp + 8))>>libc.Int32FromInt32(52) - uint64(1022)) - return int16(int32(e) * int32(10)) + return int16(int32(int32(e)) * int32(10)) } // C documentation @@ -22911,7 +23140,7 @@ func _sqlite3LogEstToInt(tls *libc.TLS, x TLogEst) (r Tu64) { var n Tu64 var v1 uint64 _, _ = n, v1 - n = uint64(int32(x) % int32(10)) + n = uint64(int32(int32(x)) % int32(10)) x = TLogEst(int32(x) / libc.Int32FromInt32(10)) if n >= uint64(5) { n -= uint64(2) @@ -22920,13 +23149,13 @@ func _sqlite3LogEstToInt(tls *libc.TLS, x TLogEst) (r Tu64) { n -= uint64(1) } } - if int32(x) > int32(60) { + if int32(int32(x)) > int32(60) { return uint64(libc.Int64FromUint32(0xffffffff) | libc.Int64FromInt32(0x7fffffff)<= int32(3) { - v1 = (n + uint64(8)) << (int32(x) - int32(3)) + if int32(int32(x)) >= int32(3) { + v1 = (n + uint64(8)) << (int32(int32(x)) - int32(3)) } else { - v1 = (n + uint64(8)) >> (int32(3) - int32(x)) + v1 = (n + uint64(8)) >> (int32(3) - int32(int32(x))) } return v1 } @@ -22984,8 +23213,8 @@ func _sqlite3VListAdd(tls *libc.TLS, db uintptr, pIn uintptr, zName uintptr, nNa v1 = int64(10) } /* Enlarge the allocation */ - nAlloc = v1 + int64(nInt) - pOut = _sqlite3DbRealloc(tls, db, pIn, uint64(nAlloc)*uint64(4)) + nAlloc = v1 + int64(int64(nInt)) + pOut = _sqlite3DbRealloc(tls, db, pIn, uint64(uint64(nAlloc))*uint64(4)) if pOut == uintptr(0) { return pIn } @@ -22993,14 +23222,14 @@ func _sqlite3VListAdd(tls *libc.TLS, db uintptr, pIn uintptr, zName uintptr, nNa *(*TVList)(unsafe.Pointer(pOut + 1*4)) = int32(2) } pIn = pOut - *(*TVList)(unsafe.Pointer(pIn)) = int32(nAlloc) + *(*TVList)(unsafe.Pointer(pIn)) = int32(int32(nAlloc)) } i = *(*TVList)(unsafe.Pointer(pIn + 1*4)) *(*TVList)(unsafe.Pointer(pIn + uintptr(i)*4)) = iVal *(*TVList)(unsafe.Pointer(pIn + uintptr(i+int32(1))*4)) = nInt z = pIn + uintptr(i+int32(2))*4 *(*TVList)(unsafe.Pointer(pIn + 1*4)) = i + nInt - libc.Xmemcpy(tls, z, zName, uint64(nName)) + libc.Xmemcpy(tls, z, zName, uint64(uint64(nName))) *(*int8)(unsafe.Pointer(z + uintptr(nName))) = 0 return pIn } @@ -23046,7 +23275,7 @@ func _sqlite3VListNameToNum(tls *libc.TLS, pIn uintptr, zName uintptr, nName int i = int32(2) for cond := true; cond; cond = i < mx { z = pIn + uintptr(i+int32(2))*4 - if libc.Xstrncmp(tls, z, zName, uint64(nName)) == 0 && int32(*(*int8)(unsafe.Pointer(z + uintptr(nName)))) == 0 { + if libc.Xstrncmp(tls, z, zName, uint64(uint64(nName))) == 0 && int32(*(*int8)(unsafe.Pointer(z + uintptr(nName)))) == 0 { return *(*TVList)(unsafe.Pointer(pIn + uintptr(i)*4)) } i += *(*TVList)(unsafe.Pointer(pIn + uintptr(i+int32(1))*4)) @@ -23192,7 +23421,7 @@ func _rehash(tls *libc.TLS, pH uintptr, new_size uint32) (r int32) { var elem, new_ht, next_elem uintptr var h, v1 uint32 _, _, _, _, _ = elem, h, new_ht, next_elem, v1 /* For looping over existing elements */ - if uint64(new_size)*uint64(16) > uint64(SQLITE_MALLOC_SOFT_LIMIT) { + if uint64(uint64(new_size))*uint64(16) > uint64(SQLITE_MALLOC_SOFT_LIMIT) { new_size = uint32(libc.Uint64FromInt32(SQLITE_MALLOC_SOFT_LIMIT) / libc.Uint64FromInt64(16)) } if new_size == (*THash)(unsafe.Pointer(pH)).Fhtsize { @@ -23207,7 +23436,7 @@ func _rehash(tls *libc.TLS, pH uintptr, new_size uint32) (r int32) { ** may be larger than the requested amount). */ _sqlite3BeginBenignMalloc(tls) - new_ht = _sqlite3Malloc(tls, uint64(new_size)*uint64(16)) + new_ht = _sqlite3Malloc(tls, uint64(uint64(uint64(new_size))*uint64(16))) _sqlite3EndBenignMalloc(tls) if new_ht == uintptr(0) { return 0 @@ -23217,7 +23446,7 @@ func _rehash(tls *libc.TLS, pH uintptr, new_size uint32) (r int32) { v1 = uint32(uint64(_sqlite3MallocSize(tls, new_ht)) / libc.Uint64FromInt64(16)) new_size = v1 (*THash)(unsafe.Pointer(pH)).Fhtsize = v1 - libc.Xmemset(tls, new_ht, 0, uint64(new_size)*uint64(16)) + libc.Xmemset(tls, new_ht, 0, uint64(uint64(new_size))*uint64(16)) elem = (*THash)(unsafe.Pointer(pH)).Ffirst (*THash)(unsafe.Pointer(pH)).Ffirst = libc.UintptrFromInt32(0) for { @@ -23379,196 +23608,196 @@ func _sqlite3OpcodeName(tls *libc.TLS, i int32) (r uintptr) { } var _azName = [190]uintptr{ - 0: __ccgo_ts + 1790, - 1: __ccgo_ts + 1800, - 2: __ccgo_ts + 1811, - 3: __ccgo_ts + 1823, - 4: __ccgo_ts + 1834, - 5: __ccgo_ts + 1846, - 6: __ccgo_ts + 1853, - 7: __ccgo_ts + 1861, - 8: __ccgo_ts + 1869, - 9: __ccgo_ts + 1874, - 10: __ccgo_ts + 1879, - 11: __ccgo_ts + 1885, - 12: __ccgo_ts + 1899, - 13: __ccgo_ts + 1905, - 14: __ccgo_ts + 1915, - 15: __ccgo_ts + 1920, - 16: __ccgo_ts + 1925, - 17: __ccgo_ts + 1928, - 18: __ccgo_ts + 1934, - 19: __ccgo_ts + 1941, - 20: __ccgo_ts + 1945, - 21: __ccgo_ts + 1955, - 22: __ccgo_ts + 1962, - 23: __ccgo_ts + 1969, - 24: __ccgo_ts + 1976, - 25: __ccgo_ts + 1983, - 26: __ccgo_ts + 1993, - 27: __ccgo_ts + 2002, - 28: __ccgo_ts + 2013, - 29: __ccgo_ts + 2022, - 30: __ccgo_ts + 2028, - 31: __ccgo_ts + 2038, - 32: __ccgo_ts + 2048, - 33: __ccgo_ts + 2053, - 34: __ccgo_ts + 2063, - 35: __ccgo_ts + 2074, - 36: __ccgo_ts + 2079, - 37: __ccgo_ts + 2086, - 38: __ccgo_ts + 2097, - 39: __ccgo_ts + 2102, - 40: __ccgo_ts + 2107, - 41: __ccgo_ts + 2113, - 42: __ccgo_ts + 2119, - 43: __ccgo_ts + 2125, - 44: __ccgo_ts + 2128, - 45: __ccgo_ts + 2132, - 46: __ccgo_ts + 2138, - 47: __ccgo_ts + 2149, - 48: __ccgo_ts + 2160, - 49: __ccgo_ts + 2168, - 50: __ccgo_ts + 2177, - 51: __ccgo_ts + 2184, - 52: __ccgo_ts + 2192, - 53: __ccgo_ts + 2195, - 54: __ccgo_ts + 2198, - 55: __ccgo_ts + 2201, - 56: __ccgo_ts + 2204, - 57: __ccgo_ts + 2207, - 58: __ccgo_ts + 2210, - 59: __ccgo_ts + 2217, - 60: __ccgo_ts + 2223, - 61: __ccgo_ts + 2233, - 62: __ccgo_ts + 2246, - 63: __ccgo_ts + 2257, - 64: __ccgo_ts + 2263, - 65: __ccgo_ts + 2270, - 66: __ccgo_ts + 2279, - 67: __ccgo_ts + 2288, - 68: __ccgo_ts + 2295, - 69: __ccgo_ts + 2308, - 70: __ccgo_ts + 2319, - 71: __ccgo_ts + 2324, - 72: __ccgo_ts + 2332, - 73: __ccgo_ts + 2338, - 74: __ccgo_ts + 2345, - 75: __ccgo_ts + 2357, - 76: __ccgo_ts + 2362, - 77: __ccgo_ts + 2371, - 78: __ccgo_ts + 2376, - 79: __ccgo_ts + 2385, - 80: __ccgo_ts + 2390, - 81: __ccgo_ts + 2395, - 82: __ccgo_ts + 2401, - 83: __ccgo_ts + 2409, - 84: __ccgo_ts + 2417, - 85: __ccgo_ts + 2427, - 86: __ccgo_ts + 2435, - 87: __ccgo_ts + 2442, - 88: __ccgo_ts + 2455, - 89: __ccgo_ts + 2460, - 90: __ccgo_ts + 2472, - 91: __ccgo_ts + 2480, - 92: __ccgo_ts + 2487, - 93: __ccgo_ts + 2498, - 94: __ccgo_ts + 2505, - 95: __ccgo_ts + 2512, - 96: __ccgo_ts + 2522, - 97: __ccgo_ts + 2531, - 98: __ccgo_ts + 2542, - 99: __ccgo_ts + 2548, - 100: __ccgo_ts + 2559, - 101: __ccgo_ts + 2569, - 102: __ccgo_ts + 2579, - 103: __ccgo_ts + 2586, - 104: __ccgo_ts + 2592, - 105: __ccgo_ts + 2602, - 106: __ccgo_ts + 2613, - 107: __ccgo_ts + 2617, - 108: __ccgo_ts + 2626, - 109: __ccgo_ts + 2635, - 110: __ccgo_ts + 2642, - 111: __ccgo_ts + 2652, - 112: __ccgo_ts + 2659, - 113: __ccgo_ts + 2668, - 114: __ccgo_ts + 2678, - 115: __ccgo_ts + 2685, - 116: __ccgo_ts + 2693, - 117: __ccgo_ts + 2707, - 118: __ccgo_ts + 2715, - 119: __ccgo_ts + 2729, - 120: __ccgo_ts + 2740, - 121: __ccgo_ts + 2753, - 122: __ccgo_ts + 2764, - 123: __ccgo_ts + 2770, - 124: __ccgo_ts + 2782, - 125: __ccgo_ts + 2791, - 126: __ccgo_ts + 2799, - 127: __ccgo_ts + 2808, - 128: __ccgo_ts + 2817, - 129: __ccgo_ts + 2824, - 130: __ccgo_ts + 2832, - 131: __ccgo_ts + 2839, - 132: __ccgo_ts + 2850, - 133: __ccgo_ts + 2864, - 134: __ccgo_ts + 2875, - 135: __ccgo_ts + 2883, - 136: __ccgo_ts + 2889, - 137: __ccgo_ts + 2897, - 138: __ccgo_ts + 2905, - 139: __ccgo_ts + 2915, - 140: __ccgo_ts + 2928, - 141: __ccgo_ts + 2938, - 142: __ccgo_ts + 2951, - 143: __ccgo_ts + 2960, - 144: __ccgo_ts + 2971, - 145: __ccgo_ts + 2979, - 146: __ccgo_ts + 2985, - 147: __ccgo_ts + 2997, - 148: __ccgo_ts + 3009, - 149: __ccgo_ts + 3017, - 150: __ccgo_ts + 3029, - 151: __ccgo_ts + 3042, - 152: __ccgo_ts + 3052, - 153: __ccgo_ts + 3062, - 154: __ccgo_ts + 3067, - 155: __ccgo_ts + 3079, - 156: __ccgo_ts + 3091, - 157: __ccgo_ts + 3101, - 158: __ccgo_ts + 3107, - 159: __ccgo_ts + 3117, - 160: __ccgo_ts + 3124, - 161: __ccgo_ts + 3136, - 162: __ccgo_ts + 3147, - 163: __ccgo_ts + 3155, - 164: __ccgo_ts + 3164, - 165: __ccgo_ts + 3173, - 166: __ccgo_ts + 3182, - 167: __ccgo_ts + 3189, - 168: __ccgo_ts + 3200, - 169: __ccgo_ts + 3213, - 170: __ccgo_ts + 3223, - 171: __ccgo_ts + 3230, - 172: __ccgo_ts + 3238, - 173: __ccgo_ts + 3247, - 174: __ccgo_ts + 3253, - 175: __ccgo_ts + 3260, - 176: __ccgo_ts + 3268, - 177: __ccgo_ts + 3276, - 178: __ccgo_ts + 3284, - 179: __ccgo_ts + 3294, - 180: __ccgo_ts + 3303, - 181: __ccgo_ts + 3314, - 182: __ccgo_ts + 3325, - 183: __ccgo_ts + 3336, - 184: __ccgo_ts + 3346, - 185: __ccgo_ts + 3352, - 186: __ccgo_ts + 3363, - 187: __ccgo_ts + 3374, - 188: __ccgo_ts + 3379, - 189: __ccgo_ts + 3387, + 0: __ccgo_ts + 1850, + 1: __ccgo_ts + 1860, + 2: __ccgo_ts + 1871, + 3: __ccgo_ts + 1883, + 4: __ccgo_ts + 1894, + 5: __ccgo_ts + 1906, + 6: __ccgo_ts + 1913, + 7: __ccgo_ts + 1921, + 8: __ccgo_ts + 1929, + 9: __ccgo_ts + 1934, + 10: __ccgo_ts + 1939, + 11: __ccgo_ts + 1945, + 12: __ccgo_ts + 1959, + 13: __ccgo_ts + 1965, + 14: __ccgo_ts + 1975, + 15: __ccgo_ts + 1980, + 16: __ccgo_ts + 1985, + 17: __ccgo_ts + 1988, + 18: __ccgo_ts + 1994, + 19: __ccgo_ts + 2001, + 20: __ccgo_ts + 2005, + 21: __ccgo_ts + 2015, + 22: __ccgo_ts + 2022, + 23: __ccgo_ts + 2029, + 24: __ccgo_ts + 2036, + 25: __ccgo_ts + 2043, + 26: __ccgo_ts + 2053, + 27: __ccgo_ts + 2062, + 28: __ccgo_ts + 2073, + 29: __ccgo_ts + 2082, + 30: __ccgo_ts + 2088, + 31: __ccgo_ts + 2098, + 32: __ccgo_ts + 2108, + 33: __ccgo_ts + 2113, + 34: __ccgo_ts + 2127, + 35: __ccgo_ts + 2138, + 36: __ccgo_ts + 2143, + 37: __ccgo_ts + 2150, + 38: __ccgo_ts + 2161, + 39: __ccgo_ts + 2166, + 40: __ccgo_ts + 2171, + 41: __ccgo_ts + 2177, + 42: __ccgo_ts + 2183, + 43: __ccgo_ts + 2189, + 44: __ccgo_ts + 2192, + 45: __ccgo_ts + 2196, + 46: __ccgo_ts + 2202, + 47: __ccgo_ts + 2213, + 48: __ccgo_ts + 2224, + 49: __ccgo_ts + 2232, + 50: __ccgo_ts + 2241, + 51: __ccgo_ts + 2248, + 52: __ccgo_ts + 2256, + 53: __ccgo_ts + 2259, + 54: __ccgo_ts + 2262, + 55: __ccgo_ts + 2265, + 56: __ccgo_ts + 2268, + 57: __ccgo_ts + 2271, + 58: __ccgo_ts + 2274, + 59: __ccgo_ts + 2281, + 60: __ccgo_ts + 2287, + 61: __ccgo_ts + 2297, + 62: __ccgo_ts + 2310, + 63: __ccgo_ts + 2321, + 64: __ccgo_ts + 2327, + 65: __ccgo_ts + 2334, + 66: __ccgo_ts + 2343, + 67: __ccgo_ts + 2352, + 68: __ccgo_ts + 2359, + 69: __ccgo_ts + 2372, + 70: __ccgo_ts + 2383, + 71: __ccgo_ts + 2388, + 72: __ccgo_ts + 2396, + 73: __ccgo_ts + 2402, + 74: __ccgo_ts + 2409, + 75: __ccgo_ts + 2421, + 76: __ccgo_ts + 2426, + 77: __ccgo_ts + 2435, + 78: __ccgo_ts + 2440, + 79: __ccgo_ts + 2449, + 80: __ccgo_ts + 2454, + 81: __ccgo_ts + 2459, + 82: __ccgo_ts + 2465, + 83: __ccgo_ts + 2473, + 84: __ccgo_ts + 2481, + 85: __ccgo_ts + 2491, + 86: __ccgo_ts + 2499, + 87: __ccgo_ts + 2506, + 88: __ccgo_ts + 2519, + 89: __ccgo_ts + 2524, + 90: __ccgo_ts + 2536, + 91: __ccgo_ts + 2544, + 92: __ccgo_ts + 2551, + 93: __ccgo_ts + 2562, + 94: __ccgo_ts + 2569, + 95: __ccgo_ts + 2576, + 96: __ccgo_ts + 2586, + 97: __ccgo_ts + 2595, + 98: __ccgo_ts + 2606, + 99: __ccgo_ts + 2612, + 100: __ccgo_ts + 2623, + 101: __ccgo_ts + 2633, + 102: __ccgo_ts + 2643, + 103: __ccgo_ts + 2650, + 104: __ccgo_ts + 2656, + 105: __ccgo_ts + 2666, + 106: __ccgo_ts + 2677, + 107: __ccgo_ts + 2681, + 108: __ccgo_ts + 2690, + 109: __ccgo_ts + 2699, + 110: __ccgo_ts + 2706, + 111: __ccgo_ts + 2716, + 112: __ccgo_ts + 2723, + 113: __ccgo_ts + 2732, + 114: __ccgo_ts + 2742, + 115: __ccgo_ts + 2749, + 116: __ccgo_ts + 2757, + 117: __ccgo_ts + 2771, + 118: __ccgo_ts + 2779, + 119: __ccgo_ts + 2793, + 120: __ccgo_ts + 2804, + 121: __ccgo_ts + 2817, + 122: __ccgo_ts + 2828, + 123: __ccgo_ts + 2834, + 124: __ccgo_ts + 2846, + 125: __ccgo_ts + 2855, + 126: __ccgo_ts + 2863, + 127: __ccgo_ts + 2872, + 128: __ccgo_ts + 2881, + 129: __ccgo_ts + 2888, + 130: __ccgo_ts + 2896, + 131: __ccgo_ts + 2903, + 132: __ccgo_ts + 2914, + 133: __ccgo_ts + 2928, + 134: __ccgo_ts + 2939, + 135: __ccgo_ts + 2947, + 136: __ccgo_ts + 2953, + 137: __ccgo_ts + 2961, + 138: __ccgo_ts + 2969, + 139: __ccgo_ts + 2979, + 140: __ccgo_ts + 2992, + 141: __ccgo_ts + 3002, + 142: __ccgo_ts + 3015, + 143: __ccgo_ts + 3024, + 144: __ccgo_ts + 3035, + 145: __ccgo_ts + 3043, + 146: __ccgo_ts + 3049, + 147: __ccgo_ts + 3061, + 148: __ccgo_ts + 3073, + 149: __ccgo_ts + 3081, + 150: __ccgo_ts + 3093, + 151: __ccgo_ts + 3106, + 152: __ccgo_ts + 3116, + 153: __ccgo_ts + 3126, + 154: __ccgo_ts + 3131, + 155: __ccgo_ts + 3143, + 156: __ccgo_ts + 3155, + 157: __ccgo_ts + 3165, + 158: __ccgo_ts + 3171, + 159: __ccgo_ts + 3181, + 160: __ccgo_ts + 3188, + 161: __ccgo_ts + 3200, + 162: __ccgo_ts + 3211, + 163: __ccgo_ts + 3219, + 164: __ccgo_ts + 3228, + 165: __ccgo_ts + 3237, + 166: __ccgo_ts + 3246, + 167: __ccgo_ts + 3253, + 168: __ccgo_ts + 3264, + 169: __ccgo_ts + 3277, + 170: __ccgo_ts + 3287, + 171: __ccgo_ts + 3294, + 172: __ccgo_ts + 3302, + 173: __ccgo_ts + 3311, + 174: __ccgo_ts + 3317, + 175: __ccgo_ts + 3324, + 176: __ccgo_ts + 3332, + 177: __ccgo_ts + 3340, + 178: __ccgo_ts + 3348, + 179: __ccgo_ts + 3358, + 180: __ccgo_ts + 3367, + 181: __ccgo_ts + 3378, + 182: __ccgo_ts + 3389, + 183: __ccgo_ts + 3400, + 184: __ccgo_ts + 3410, + 185: __ccgo_ts + 3416, + 186: __ccgo_ts + 3427, + 187: __ccgo_ts + 3438, + 188: __ccgo_ts + 3443, + 189: __ccgo_ts + 3451, } type Tregister_t = int64 @@ -24104,91 +24333,91 @@ type unix_syscall = Tunix_syscall // */ var _aSyscall = [29]Tunix_syscall{ 0: { - FzName: __ccgo_ts + 3397, + FzName: __ccgo_ts + 3461, }, 1: { - FzName: __ccgo_ts + 3402, + FzName: __ccgo_ts + 3466, }, 2: { - FzName: __ccgo_ts + 3408, + FzName: __ccgo_ts + 3472, }, 3: { - FzName: __ccgo_ts + 3415, + FzName: __ccgo_ts + 3479, }, 4: { - FzName: __ccgo_ts + 3422, + FzName: __ccgo_ts + 3486, }, 5: { - FzName: __ccgo_ts + 3427, + FzName: __ccgo_ts + 3491, }, 6: { - FzName: __ccgo_ts + 3433, + FzName: __ccgo_ts + 3497, }, 7: { - FzName: __ccgo_ts + 3443, + FzName: __ccgo_ts + 3507, }, 8: { - FzName: __ccgo_ts + 3449, + FzName: __ccgo_ts + 3513, }, 9: { - FzName: __ccgo_ts + 3454, + FzName: __ccgo_ts + 3518, }, 10: { - FzName: __ccgo_ts + 3460, + FzName: __ccgo_ts + 3524, }, 11: { - FzName: __ccgo_ts + 3468, + FzName: __ccgo_ts + 3532, }, 12: { - FzName: __ccgo_ts + 3474, + FzName: __ccgo_ts + 3538, }, 13: { - FzName: __ccgo_ts + 3481, + FzName: __ccgo_ts + 3545, }, 14: { - FzName: __ccgo_ts + 3490, + FzName: __ccgo_ts + 3554, }, 15: { - FzName: __ccgo_ts + 3497, + FzName: __ccgo_ts + 3561, }, 16: { - FzName: __ccgo_ts + 3507, + FzName: __ccgo_ts + 3571, }, 17: { - FzName: __ccgo_ts + 3514, + FzName: __ccgo_ts + 3578, }, 18: { - FzName: __ccgo_ts + 3528, + FzName: __ccgo_ts + 3592, }, 19: { - FzName: __ccgo_ts + 3534, + FzName: __ccgo_ts + 3598, }, 20: { - FzName: __ccgo_ts + 3540, + FzName: __ccgo_ts + 3604, }, 21: { - FzName: __ccgo_ts + 3547, + FzName: __ccgo_ts + 3611, }, 22: { - FzName: __ccgo_ts + 3555, + FzName: __ccgo_ts + 3619, }, 23: { - FzName: __ccgo_ts + 3560, + FzName: __ccgo_ts + 3624, }, 24: { - FzName: __ccgo_ts + 3567, + FzName: __ccgo_ts + 3631, }, 25: { - FzName: __ccgo_ts + 3574, + FzName: __ccgo_ts + 3638, }, 26: { - FzName: __ccgo_ts + 3586, + FzName: __ccgo_ts + 3650, }, 27: { - FzName: __ccgo_ts + 3595, + FzName: __ccgo_ts + 3659, }, 28: { - FzName: __ccgo_ts + 3601, + FzName: __ccgo_ts + 3665, }, } @@ -24262,7 +24491,7 @@ func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc rc = SQLITE_OK i = uint32(0) for { - if !(uint64(i) < libc.Uint64FromInt64(696)/libc.Uint64FromInt64(24)) { + if !(uint64(uint64(i)) < libc.Uint64FromInt64(696)/libc.Uint64FromInt64(24)) { break } if _aSyscall[i].FpDefault != 0 { @@ -24279,7 +24508,7 @@ func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc */ i = uint32(0) for { - if !(uint64(i) < libc.Uint64FromInt64(696)/libc.Uint64FromInt64(24)) { + if !(uint64(uint64(i)) < libc.Uint64FromInt64(696)/libc.Uint64FromInt64(24)) { break } if libc.Xstrcmp(tls, zName, _aSyscall[i].FzName) == 0 { @@ -24315,7 +24544,7 @@ func _unixGetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr) (r Tsqli _ = pNotUsed i = uint32(0) for { - if !(uint64(i) < libc.Uint64FromInt64(696)/libc.Uint64FromInt64(24)) { + if !(uint64(uint64(i)) < libc.Uint64FromInt64(696)/libc.Uint64FromInt64(24)) { break } if libc.Xstrcmp(tls, zName, _aSyscall[i].FzName) == 0 { @@ -24413,7 +24642,7 @@ func _robust_open(tls *libc.TLS, z uintptr, f int32, m Tmode_t) (r int32) { } m2 = v1 for int32(1) != 0 { - fd = (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, z, f|int32(O_CLOEXEC), int32(m2)) + fd = (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, z, f|int32(O_CLOEXEC), int32(int32(m2))) if fd < 0 { if *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) == int32(EINTR) { continue @@ -24427,9 +24656,9 @@ func _robust_open(tls *libc.TLS, z uintptr, f int32, m Tmode_t) (r int32) { (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(16)].FpCurrent})))(tls, z) } (*(*func(*libc.TLS, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(1)].FpCurrent})))(tls, fd) - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3607, libc.VaList(bp+152, z, fd)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3671, libc.VaList(bp+152, z, fd)) fd = -int32(1) - if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3650, O_RDONLY, int32(m)) < 0 { + if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3714, O_RDONLY, int32(int32(m))) < 0 { break } } @@ -24494,7 +24723,7 @@ func _robust_ftruncate(tls *libc.TLS, h int32, sz Tsqlite3_int64) (r int32) { var rc int32 _ = rc for cond := true; cond; cond = rc < 0 && *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) == int32(EINTR) { - rc = (*(*func(*libc.TLS, int32, Toff_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(6)].FpCurrent})))(tls, h, sz) + rc = (*(*func(*libc.TLS, int32, Toff_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(6)].FpCurrent})))(tls, h, int64(int64(sz))) } return rc } @@ -24745,11 +24974,11 @@ func _unixLogErrorAtLine(tls *libc.TLS, errcode int32, zFunc uintptr, zPath uint ** equivalent to errno. Otherwise, use strerror_r(). */ /* This is a threadsafe build, but strerror_r() is not available. */ - zErr = __ccgo_ts + 1652 + zErr = __ccgo_ts + 1666 if zPath == uintptr(0) { - zPath = __ccgo_ts + 1652 + zPath = __ccgo_ts + 1666 } - Xsqlite3_log(tls, errcode, __ccgo_ts+3660, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) + Xsqlite3_log(tls, errcode, __ccgo_ts+3724, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) return errcode } @@ -24777,7 +25006,7 @@ func _robust_close(tls *libc.TLS, pFile uintptr, h int32, lineno int32) { } else { v1 = uintptr(0) } - _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(16)< uint64(1) { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3744, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3808, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } if _fileHasMoved(tls, pFile) != 0 { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3771, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3835, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } } @@ -25194,7 +25423,7 @@ func _unixLock(tls *libc.TLS, id uintptr, eFileLock int32) (r int32) { v1 = int32(F_WRLCK) } (*(*Tflock)(unsafe.Pointer(bp))).Fl_type = int16(v1) - (*(*Tflock)(unsafe.Pointer(bp))).Fl_start = int64(_sqlite3PendingByte) + (*(*Tflock)(unsafe.Pointer(bp))).Fl_start = int64(int64(_sqlite3PendingByte)) if _unixFileLock(tls, pFile, bp) != 0 { tErrno = *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) rc = _sqliteErrorFromPosixError(tls, tErrno, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(15)<= 0 { - _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40172)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40505)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -25616,7 +25847,7 @@ func _dotlockLock(tls *libc.TLS, id uintptr, eFileLock int32) (r int32) { ** to do is adjust our internal record of the lock level. */ if int32((*TunixFile)(unsafe.Pointer(pFile)).FeFileLock) > NO_LOCK { - (*TunixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock) + (*TunixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(uint8(eFileLock)) /* Always update the timestamp on the old file */ libc.Xutimes(tls, zLockFile, libc.UintptrFromInt32(0)) return SQLITE_OK @@ -25637,7 +25868,7 @@ func _dotlockLock(tls *libc.TLS, id uintptr, eFileLock int32) (r int32) { return rc } /* got it, set the type and return ok */ - (*TunixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock) + (*TunixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(uint8(eFileLock)) return rc } @@ -25790,7 +26021,7 @@ func _seekAndRead(tls *libc.TLS, id uintptr, offset Tsqlite3_int64, pBuf uintptr _, _ = got, prior prior = 0 for cond := true; cond; cond = got > 0 { - got = int32((*(*func(*libc.TLS, int32, uintptr, Tsize_t, Toff_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(9)].FpCurrent})))(tls, (*TunixFile)(unsafe.Pointer(id)).Fh, pBuf, uint64(cnt), offset)) + got = int32((*(*func(*libc.TLS, int32, uintptr, Tsize_t, Toff_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(9)].FpCurrent})))(tls, (*TunixFile)(unsafe.Pointer(id)).Fh, pBuf, uint64(uint64(cnt)), int64(int64(offset)))) if got == cnt { break } @@ -25805,7 +26036,7 @@ func _seekAndRead(tls *libc.TLS, id uintptr, offset Tsqlite3_int64, pBuf uintptr } else { if got > 0 { cnt -= got - offset += int64(got) + offset += int64(int64(got)) prior += got pBuf = uintptr(got) + pBuf } @@ -25831,15 +26062,15 @@ func _unixRead(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Tsqlit /* Deal with as much of this read request as possible by transferring ** data from the memory mapping using memcpy(). */ if offset < (*TunixFile)(unsafe.Pointer(pFile)).FmmapSize { - if offset+int64(amt) <= (*TunixFile)(unsafe.Pointer(pFile)).FmmapSize { - libc.Xmemcpy(tls, pBuf, (*TunixFile)(unsafe.Pointer(pFile)).FpMapRegion+uintptr(offset), uint64(amt)) + if offset+int64(int64(amt)) <= (*TunixFile)(unsafe.Pointer(pFile)).FmmapSize { + libc.Xmemcpy(tls, pBuf, (*TunixFile)(unsafe.Pointer(pFile)).FpMapRegion+uintptr(offset), uint64(uint64(amt))) return SQLITE_OK } else { nCopy = int32((*TunixFile)(unsafe.Pointer(pFile)).FmmapSize - offset) - libc.Xmemcpy(tls, pBuf, (*TunixFile)(unsafe.Pointer(pFile)).FpMapRegion+uintptr(offset), uint64(nCopy)) + libc.Xmemcpy(tls, pBuf, (*TunixFile)(unsafe.Pointer(pFile)).FpMapRegion+uintptr(offset), uint64(uint64(nCopy))) pBuf = pBuf + uintptr(nCopy) amt -= nCopy - offset += int64(nCopy) + offset += int64(int64(nCopy)) } } got = _seekAndRead(tls, pFile, offset, pBuf, amt) @@ -25888,7 +26119,7 @@ func _seekAndWriteFd(tls *libc.TLS, fd int32, iOff Ti64, pBuf uintptr, nBuf int3 rc = 0 /* Value returned by system call */ nBuf &= int32(0x1ffff) for cond := true; cond; cond = rc < 0 && *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) == int32(EINTR) { - rc = int32((*(*func(*libc.TLS, int32, uintptr, Tsize_t, Toff_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(12)].FpCurrent})))(tls, fd, pBuf, uint64(nBuf), iOff)) + rc = int32((*(*func(*libc.TLS, int32, uintptr, Tsize_t, Toff_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(12)].FpCurrent})))(tls, fd, pBuf, uint64(uint64(nBuf)), int64(int64(iOff)))) } if rc < 0 { *(*int32)(unsafe.Pointer(piErrno)) = *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) @@ -25930,7 +26161,7 @@ func _unixWrite(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Tsqli break } amt -= wrote - offset += int64(wrote) + offset += int64(int64(wrote)) pBuf = pBuf + uintptr(wrote) } if amt > wrote { @@ -26041,7 +26272,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { var _ /* zDirname at bp+0 */ [513]int8 _, _ = fd, ii fd = -int32(1) - Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3799, libc.VaList(bp+528, zFilename)) + Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3863, libc.VaList(bp+528, zFilename)) ii = int32(libc.Xstrlen(tls, bp)) for { if !(ii > 0 && int32((*(*[513]int8)(unsafe.Pointer(bp)))[ii]) != int32('/')) { @@ -26067,7 +26298,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(41778)), __ccgo_ts+3514, bp, int32(41778)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42111)), __ccgo_ts+3578, bp, int32(42111)) } // C documentation @@ -26104,7 +26335,7 @@ func _unixSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { rc = _full_fsync(tls, (*TunixFile)(unsafe.Pointer(pFile)).Fh, isFullsync, isDataOnly) if rc != 0 { _storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))) - return _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(4)< (*(*Tstat)(unsafe.Pointer(bp))).Fst_size { + if nSize > int64((*(*Tstat)(unsafe.Pointer(bp))).Fst_size) { /* If the OS does not have posix_fallocate(), fake it. Write a ** single byte to the last byte in each block that falls entirely ** within the extended region. Then, if required, a single byte @@ -26218,22 +26449,22 @@ func _fcntlSizeHint(tls *libc.TLS, pFile uintptr, nByte Ti64) (r int32) { */ nBlk = int32((*(*Tstat)(unsafe.Pointer(bp))).Fst_blksize) /* File-system block size */ nWrite = 0 /* Next offset to write to */ - iWrite = (*(*Tstat)(unsafe.Pointer(bp))).Fst_size/int64(nBlk)*int64(nBlk) + int64(nBlk) - int64(1) + iWrite = int64((*(*Tstat)(unsafe.Pointer(bp))).Fst_size/int64(int64(nBlk))*int64(int64(nBlk)) + int64(int64(nBlk)) - int64(1)) for { - if !(iWrite < nSize+int64(nBlk)-int64(1)) { + if !(iWrite < nSize+int64(int64(nBlk))-int64(1)) { break } if iWrite >= nSize { iWrite = nSize - int64(1) } - nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1652, int32(1)) + nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1666, int32(1)) if nWrite != int32(1) { return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(3)<= 0 { /* Initialize the locking parameters */ - (*(*Tflock)(unsafe.Pointer(bp))).Fl_type = int16(lockType) + (*(*Tflock)(unsafe.Pointer(bp))).Fl_type = int16(int16(lockType)) (*(*Tflock)(unsafe.Pointer(bp))).Fl_whence = 0 - (*(*Tflock)(unsafe.Pointer(bp))).Fl_start = int64(ofst) - (*(*Tflock)(unsafe.Pointer(bp))).Fl_len = int64(n) + (*(*Tflock)(unsafe.Pointer(bp))).Fl_start = int64(int64(ofst)) + (*(*Tflock)(unsafe.Pointer(bp))).Fl_len = int64(int64(n)) res = (*(*func(*libc.TLS, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(7)].FpCurrent})))(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int32(F_SETLK), libc.VaList(bp+40, bp)) if res == -int32(1) { rc = int32(SQLITE_BUSY) @@ -26647,7 +26878,7 @@ func _unixShmPurge(tls *libc.TLS, pFd uintptr) { } Xsqlite3_free(tls, (*TunixShmNode)(unsafe.Pointer(p)).FapRegion) if (*TunixShmNode)(unsafe.Pointer(p)).FhShm >= 0 { - _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42583)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42916)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -26710,7 +26941,7 @@ func _unixLockSharedMemory(tls *libc.TLS, pDbFd uintptr, pShmNode uintptr) (r in ** help detect if a -shm file truncation is legitimate or is the work ** or a rogue process. */ if rc == SQLITE_OK && _robust_ftruncate(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(3)) != 0 { - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(18)< iRegion { @@ -27069,7 +27302,7 @@ func _unixShmLock(tls *libc.TLS, fd uintptr, ofst int32, n int32, flags int32) ( ** The SQLite core never requests an exclusive lock that it already holds. ** This is assert()ed below. */ - if flags&int32(SQLITE_SHM_UNLOCK) != 0 && (int32((*TunixShm)(unsafe.Pointer(p)).FexclMask)|int32((*TunixShm)(unsafe.Pointer(p)).FsharedMask))&int32(mask) != 0 || flags == libc.Int32FromInt32(SQLITE_SHM_SHARED)|libc.Int32FromInt32(SQLITE_SHM_LOCK) && 0 == int32((*TunixShm)(unsafe.Pointer(p)).FsharedMask)&int32(mask) || flags == libc.Int32FromInt32(SQLITE_SHM_EXCLUSIVE)|libc.Int32FromInt32(SQLITE_SHM_LOCK) { + if flags&int32(SQLITE_SHM_UNLOCK) != 0 && (int32((*TunixShm)(unsafe.Pointer(p)).FexclMask)|int32((*TunixShm)(unsafe.Pointer(p)).FsharedMask))&int32(int32(mask)) != 0 || flags == libc.Int32FromInt32(SQLITE_SHM_SHARED)|libc.Int32FromInt32(SQLITE_SHM_LOCK) && 0 == int32((*TunixShm)(unsafe.Pointer(p)).FsharedMask)&int32(int32(mask)) || flags == libc.Int32FromInt32(SQLITE_SHM_EXCLUSIVE)|libc.Int32FromInt32(SQLITE_SHM_LOCK) { /* Take the required mutexes. In SETLK_TIMEOUT mode (blocking locks), if ** this is an attempt on an exclusive lock use sqlite3_mutex_try(). If any ** other thread is holding this mutex, then it is either holding or about @@ -27099,17 +27332,17 @@ func _unixShmLock(tls *libc.TLS, fd uintptr, ofst int32, n int32, flags int32) ( bUnlock = 0 *(*int32)(unsafe.Pointer(aLock + uintptr(ofst)*4))-- p1 = p + 18 - *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) & ^int32(mask)) + *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) & ^int32(int32(mask))) } } if bUnlock != 0 { rc = _unixShmSystemLock(tls, pDbFd, int32(F_UNLCK), ofst+(libc.Int32FromInt32(22)+libc.Int32FromInt32(SQLITE_SHM_NLOCK))*libc.Int32FromInt32(4), n) if rc == SQLITE_OK { - libc.Xmemset(tls, aLock+uintptr(ofst)*4, 0, uint64(4)*uint64(n)) + libc.Xmemset(tls, aLock+uintptr(ofst)*4, 0, uint64(4)*uint64(uint64(n))) p2 = p + 18 - *(*Tu16)(unsafe.Pointer(p2)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p2))) & ^int32(mask)) + *(*Tu16)(unsafe.Pointer(p2)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p2))) & ^int32(int32(mask))) p3 = p + 20 - *(*Tu16)(unsafe.Pointer(p3)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p3))) & ^int32(mask)) + *(*Tu16)(unsafe.Pointer(p3)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p3))) & ^int32(int32(mask))) } } } else { @@ -27126,7 +27359,7 @@ func _unixShmLock(tls *libc.TLS, fd uintptr, ofst int32, n int32, flags int32) ( /* Get the local shared locks */ if rc == SQLITE_OK { p4 = p + 18 - *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | int32(mask)) + *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | int32(int32(mask))) *(*int32)(unsafe.Pointer(aLock + uintptr(ofst)*4))++ } } else { @@ -27152,7 +27385,7 @@ func _unixShmLock(tls *libc.TLS, fd uintptr, ofst int32, n int32, flags int32) ( rc = _unixShmSystemLock(tls, pDbFd, int32(F_WRLCK), ofst+(libc.Int32FromInt32(22)+libc.Int32FromInt32(SQLITE_SHM_NLOCK))*libc.Int32FromInt32(4), n) if rc == SQLITE_OK { p6 = p + 20 - *(*Tu16)(unsafe.Pointer(p6)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p6))) | int32(mask)) + *(*Tu16)(unsafe.Pointer(p6)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p6))) | int32(int32(mask))) ii = ofst for { if !(ii < ofst+n) { @@ -27186,7 +27419,7 @@ func _unixShmLock(tls *libc.TLS, fd uintptr, ofst int32, n int32, flags int32) ( func _unixShmBarrier(tls *libc.TLS, fd uintptr) { _ = fd _sqlite3MemoryBarrier(tls) /* compiler-defined memory barrier */ - _unixEnterMutex(tls) /* Also mutex, for redundancy */ + _unixEnterMutex(tls) /* Also mutex, for redundancy */ _unixLeaveMutex(tls) } @@ -27277,7 +27510,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { var pNew, pOrig, pReq, zErr uintptr var v1 Tsqlite3_int64 _, _, _, _, _, _, _, _, _ = flags, h, nOrig, nReuse, pNew, pOrig, pReq, zErr, v1 - zErr = __ccgo_ts + 3555 + zErr = __ccgo_ts + 3619 h = (*TunixFile)(unsafe.Pointer(pFd)).Fh /* File descriptor open on db file */ pOrig = (*TunixFile)(unsafe.Pointer(pFd)).FpMapRegion /* Pointer to current file mapping */ nOrig = (*TunixFile)(unsafe.Pointer(pFd)).FmmapSizeActual /* Size of pOrig region in bytes */ @@ -27290,21 +27523,21 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { if nReuse != nOrig { (*(*func(*libc.TLS, uintptr, Tsize_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, pReq, uint64(nOrig-nReuse)) } - pNew = (*(*func(*libc.TLS, uintptr, Tsize_t, Tsize_t, int32, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(24)].FpCurrent})))(tls, pOrig, uint64(nReuse), uint64(nNew), int32(MREMAP_MAYMOVE), 0) - zErr = __ccgo_ts + 3567 + pNew = (*(*func(*libc.TLS, uintptr, Tsize_t, Tsize_t, int32, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(24)].FpCurrent})))(tls, pOrig, uint64(uint64(nReuse)), uint64(uint64(nNew)), int32(MREMAP_MAYMOVE), 0) + zErr = __ccgo_ts + 3631 /* The attempt to extend the existing mapping failed. Free it. */ if pNew == uintptr(-libc.Int32FromInt32(1)) || pNew == uintptr(0) { - (*(*func(*libc.TLS, uintptr, Tsize_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, pOrig, uint64(nReuse)) + (*(*func(*libc.TLS, uintptr, Tsize_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, pOrig, uint64(uint64(nReuse))) } } /* If pNew is still NULL, try to create an entirely new mapping. */ if pNew == uintptr(0) { - pNew = (*(*func(*libc.TLS, uintptr, Tsize_t, int32, int32, int32, Toff_t) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(22)].FpCurrent})))(tls, uintptr(0), uint64(nNew), flags, int32(MAP_SHARED), h, 0) + pNew = (*(*func(*libc.TLS, uintptr, Tsize_t, int32, int32, int32, Toff_t) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(22)].FpCurrent})))(tls, uintptr(0), uint64(uint64(nNew)), flags, int32(MAP_SHARED), h, 0) } if pNew == uintptr(-libc.Int32FromInt32(1)) { pNew = uintptr(0) nNew = 0 - _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43401)) + _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43734)) /* If the mmap() above failed, assume that all subsequent mmap() calls ** will probably fail too. Fall back to using xRead/xWrite exclusively ** in this case. */ @@ -27345,7 +27578,7 @@ func _unixMapfile(tls *libc.TLS, pFd uintptr, nMap Ti64) (r int32) { if (*(*func(*libc.TLS, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(5)].FpCurrent})))(tls, (*TunixFile)(unsafe.Pointer(pFd)).Fh, bp) != 0 { return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(7)< (*TunixFile)(unsafe.Pointer(pFd)).FmmapSizeMax { nMap = (*TunixFile)(unsafe.Pointer(pFd)).FmmapSizeMax @@ -27388,7 +27621,7 @@ func _unixFetch(tls *libc.TLS, fd uintptr, iOff Ti64, nAmt int32, pp uintptr) (r return rc } } - if (*TunixFile)(unsafe.Pointer(pFd)).FmmapSize >= iOff+int64(nAmt)+int64(nEofBuffer) { + if (*TunixFile)(unsafe.Pointer(pFd)).FmmapSize >= iOff+int64(int64(nAmt))+int64(int64(nEofBuffer)) { *(*uintptr)(unsafe.Pointer(pp)) = (*TunixFile)(unsafe.Pointer(pFd)).FpMapRegion + uintptr(iOff) (*TunixFile)(unsafe.Pointer(pFd)).FnFetchOut++ } @@ -27633,18 +27866,18 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam (*TunixFile)(unsafe.Pointer(pNew)).Fh = h (*TunixFile)(unsafe.Pointer(pNew)).FpVfs = pVfs (*TunixFile)(unsafe.Pointer(pNew)).FzPath = zFilename - (*TunixFile)(unsafe.Pointer(pNew)).FctrlFlags = uint16(uint8(ctrlFlags)) + (*TunixFile)(unsafe.Pointer(pNew)).FctrlFlags = uint16(uint8(uint8(ctrlFlags))) (*TunixFile)(unsafe.Pointer(pNew)).FmmapSizeMax = _sqlite3Config.FszMmap if ctrlFlags&int32(UNIXFILE_URI) != 0 { v1 = zFilename } else { v1 = uintptr(0) } - if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3833, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { + if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3897, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { p2 = pNew + 30 *(*uint16)(unsafe.Pointer(p2)) = uint16(int32(*(*uint16)(unsafe.Pointer(p2))) | libc.Int32FromInt32(UNIXFILE_PSOW)) } - if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3838) == 0 { + if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3902) == 0 { p3 = pNew + 30 *(*uint16)(unsafe.Pointer(p3)) = uint16(int32(*(*uint16)(unsafe.Pointer(p3))) | libc.Int32FromInt32(UNIXFILE_EXCL)) } @@ -27675,18 +27908,18 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam ** implicit assumption here is that if fstat() fails, things are in ** such bad shape that dropping a lock or two doesn't matter much. */ - _robust_close(tls, pNew, h, int32(43909)) + _robust_close(tls, pNew, h, int32(44242)) h = -int32(1) } _unixLeaveMutex(tls) } else { if pLockingStyle == uintptr(unsafe.Pointer(&_dotlockIoMethods)) { nFilename = int32(libc.Xstrlen(tls, zFilename)) + int32(6) - zLockFile = Xsqlite3_malloc64(tls, uint64(nFilename)) + zLockFile = Xsqlite3_malloc64(tls, uint64(uint64(nFilename))) if zLockFile == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3848, libc.VaList(bp+8, zFilename)) + Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3912, libc.VaList(bp+8, zFilename)) } (*TunixFile)(unsafe.Pointer(pNew)).FlockingContext = zLockFile } @@ -27694,7 +27927,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam _storeLastErrno(tls, pNew, 0) if rc != SQLITE_OK { if h >= 0 { - _robust_close(tls, pNew, h, int32(43994)) + _robust_close(tls, pNew, h, int32(44327)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -27709,10 +27942,10 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam // ** Directories to consider for temp files. // */ var _azTempDirs = [6]uintptr{ - 2: __ccgo_ts + 3856, - 3: __ccgo_ts + 3865, - 4: __ccgo_ts + 3874, - 5: __ccgo_ts + 1665, + 2: __ccgo_ts + 3920, + 3: __ccgo_ts + 3929, + 4: __ccgo_ts + 3938, + 5: __ccgo_ts + 1679, } // C documentation @@ -27721,8 +27954,8 @@ var _azTempDirs = [6]uintptr{ // ** Initialize first two members of azTempDirs[] array. // */ func _unixTempFileInit(tls *libc.TLS) { - _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3879) - _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3893) + _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3943) + _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3957) } // C documentation @@ -27744,7 +27977,7 @@ func _unixTempFileDir(tls *libc.TLS) (r uintptr) { if zDir != uintptr(0) && (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(4)].FpCurrent})))(tls, zDir, bp) == 0 && (*(*Tstat)(unsafe.Pointer(bp))).Fst_mode&uint32(S_IFMT) == uint32(S_IFDIR) && (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(2)].FpCurrent})))(tls, zDir, int32(03)) == 0 { return zDir } - if uint64(i) >= libc.Uint64FromInt64(48)/libc.Uint64FromInt64(8) { + if uint64(uint64(i)) >= libc.Uint64FromInt64(48)/libc.Uint64FromInt64(8) { break } v1 = i @@ -27784,7 +28017,7 @@ func _unixGetTempname(tls *libc.TLS, nBuf int32, zBuf uintptr) (r int32) { for cond := true; cond; cond = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(2)].FpCurrent})))(tls, zBuf, 0) == 0 { Xsqlite3_randomness(tls, int32(8), bp) *(*int8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2)))) = 0 - Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3900, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) + Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3964, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) if v2 = int32(*(*int8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2))))) != 0; !v2 { v1 = iLimit iLimit++ @@ -27835,7 +28068,7 @@ func _findReusableFd(tls *libc.TLS, zPath uintptr, flags int32) (r uintptr) { ** not searching for a reusable file descriptor are not dire. */ if _inodeList != uintptr(0) && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(4)].FpCurrent})))(tls, zPath, bp) { pInode = _inodeList - for pInode != 0 && ((*TunixInodeInfo)(unsafe.Pointer(pInode)).FfileId.Fdev != (*(*Tstat)(unsafe.Pointer(bp))).Fst_dev || (*TunixInodeInfo)(unsafe.Pointer(pInode)).FfileId.Fino != (*(*Tstat)(unsafe.Pointer(bp))).Fst_ino) { + for pInode != 0 && ((*TunixInodeInfo)(unsafe.Pointer(pInode)).FfileId.Fdev != (*(*Tstat)(unsafe.Pointer(bp))).Fst_dev || (*TunixInodeInfo)(unsafe.Pointer(pInode)).FfileId.Fino != uint64((*(*Tstat)(unsafe.Pointer(bp))).Fst_ino)) { pInode = (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpNext } if pInode != 0 { @@ -27940,7 +28173,7 @@ func _findCreateFileMode(tls *libc.TLS, zPath uintptr, flags int32, pMode uintpt nDb = _sqlite3Strlen30(tls, zPath) - int32(1) for nDb > 0 && int32(*(*int8)(unsafe.Pointer(zPath + uintptr(nDb)))) != int32('.') { if int32(*(*int8)(unsafe.Pointer(zPath + uintptr(nDb)))) == int32('-') { - libc.Xmemcpy(tls, bp, zPath, uint64(nDb)) + libc.Xmemcpy(tls, bp, zPath, uint64(uint64(nDb))) (*(*[513]int8)(unsafe.Pointer(bp)))[nDb] = int8('\000') rc = _getFileMode(tls, bp, pMode, pUid, pGid) break @@ -27956,7 +28189,7 @@ func _findCreateFileMode(tls *libc.TLS, zPath uintptr, flags int32, pMode uintpt ** filename, check for the "modeof" parameter. If present, interpret ** its value as a filename and try to copy the mode, uid and gid from ** that file. */ - z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3917) + z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3981) if z != 0 { rc = _getFileMode(tls, z, pMode, pUid, pGid) } @@ -27994,12 +28227,12 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags bp := tls.Alloc(528) defer tls.Free(528) var ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, rc, rc2 int32 - var p, pUnused, zName uintptr + var p, pReadonly, pUnused, zName uintptr var _ /* gid at bp+524 */ Tgid_t var _ /* openMode at bp+516 */ Tmode_t var _ /* uid at bp+520 */ Tuid_t var _ /* zTmpname at bp+0 */ [514]int8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pUnused, rc, rc2, zName + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pReadonly, pUnused, rc, rc2, zName p = pFile fd = -int32(1) /* File descriptor returned by open() */ openFlags = 0 /* Flags to pass to open() */ @@ -28094,17 +28327,24 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } else { if *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) != int32(EISDIR) && isReadWrite != 0 { /* Failed to open the file for read/write access. Try read-only. */ + pReadonly = uintptr(0) flags &= ^(libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE)) openFlags &= ^(libc.Int32FromInt32(O_RDWR) | libc.Int32FromInt32(O_CREAT)) flags |= int32(SQLITE_OPEN_READONLY) openFlags |= O_RDONLY isReadonly = int32(1) - fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 516))) + pReadonly = _findReusableFd(tls, zName, flags) + if pReadonly != 0 { + fd = (*TUnixUnusedFd)(unsafe.Pointer(pReadonly)).Ffd + Xsqlite3_free(tls, pReadonly) + } else { + fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 516))) + } } } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44435)), __ccgo_ts+3397, zName, int32(44435)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44775)), __ccgo_ts+3461, zName, int32(44775)) if rc == SQLITE_OK { rc = rc2 } @@ -28154,6 +28394,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags ctrlFlags |= int32(UNIXFILE_URI) } rc = _fillInUnixFile(tls, pVfs, fd, pFile, zPath, ctrlFlags) + goto open_finished open_finished: ; if rc != SQLITE_OK { @@ -28180,7 +28421,7 @@ func _unixDelete(tls *libc.TLS, NotUsed uintptr, zPath uintptr, dirSync int32) ( if *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) == int32(ENOENT) { rc = libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(23)< int32(SQLITE_MAX_SYMLINK) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(44686)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45026)) return } got = (*(*func(*libc.TLS, uintptr, uintptr, Tsize_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls, zIn, bp+144, libc.Uint64FromInt64(4098)-libc.Uint64FromInt32(2)) if got <= 0 || got >= libc.Int64FromInt64(4098)-libc.Int64FromInt32(2) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44691)), __ccgo_ts+3586, zIn, int32(44691)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45031)), __ccgo_ts+3650, zIn, int32(45031)) return } (*(*[4098]int8)(unsafe.Pointer(bp + 144)))[got] = 0 @@ -28378,14 +28619,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if int32(*(*int8)(unsafe.Pointer(zPath))) != int32('/') { if (*(*func(*libc.TLS, uintptr, Tsize_t) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(3)].FpCurrent})))(tls, bp+24, libc.Uint64FromInt64(4098)-libc.Uint64FromInt32(2)) == uintptr(0) { - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44749)), __ccgo_ts+3415, zPath, int32(44749)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45089)), __ccgo_ts+3479, zPath, int32(45089)) } _appendAllPathElements(tls, bp, bp+24) } _appendAllPathElements(tls, bp, zPath) *(*int8)(unsafe.Pointer(zOut + uintptr((*(*TDbPath)(unsafe.Pointer(bp))).FnUsed))) = 0 if (*(*TDbPath)(unsafe.Pointer(bp))).Frc != 0 || (*(*TDbPath)(unsafe.Pointer(bp))).FnUsed < int32(2) { - return _sqlite3CantopenError(tls, int32(44755)) + return _sqlite3CantopenError(tls, int32(45095)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)< (*TMemStore)(unsafe.Pointer(p)).Fsz { - libc.Xmemset(tls, zBuf, 0, uint64(iAmt)) + if iOfst+int64(int64(iAmt)) > (*TMemStore)(unsafe.Pointer(p)).Fsz { + libc.Xmemset(tls, zBuf, 0, uint64(uint64(iAmt))) if iOfst < (*TMemStore)(unsafe.Pointer(p)).Fsz { libc.Xmemcpy(tls, zBuf, (*TMemStore)(unsafe.Pointer(p)).FaData+uintptr(iOfst), uint64((*TMemStore)(unsafe.Pointer(p)).Fsz-iOfst)) } _memdbLeave(tls, p) return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(2)< (*TMemStore)(unsafe.Pointer(p)).FszMax { newSz = (*TMemStore)(unsafe.Pointer(p)).FszMax } - pNew = _sqlite3Realloc(tls, (*TMemStore)(unsafe.Pointer(p)).FaData, uint64(newSz)) + pNew = _sqlite3Realloc(tls, (*TMemStore)(unsafe.Pointer(p)).FaData, uint64(uint64(newSz))) if pNew == uintptr(0) { return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(12)< (*TMemStore)(unsafe.Pointer(p)).Fsz { - if v2 = iOfst+int64(iAmt) > (*TMemStore)(unsafe.Pointer(p)).FszAlloc; v2 { - v1 = _memdbEnlarge(tls, p, iOfst+int64(iAmt)) + if iOfst+int64(int64(iAmt)) > (*TMemStore)(unsafe.Pointer(p)).Fsz { + if v2 = iOfst+int64(int64(iAmt)) > (*TMemStore)(unsafe.Pointer(p)).FszAlloc; v2 { + v1 = _memdbEnlarge(tls, p, iOfst+int64(int64(iAmt))) rc = v1 } if v2 && v1 != SQLITE_OK { @@ -29316,9 +29557,9 @@ func _memdbWrite(tls *libc.TLS, pFile uintptr, z uintptr, iAmt int32, iOfst Tsql if iOfst > (*TMemStore)(unsafe.Pointer(p)).Fsz { libc.Xmemset(tls, (*TMemStore)(unsafe.Pointer(p)).FaData+uintptr((*TMemStore)(unsafe.Pointer(p)).Fsz), 0, uint64(iOfst-(*TMemStore)(unsafe.Pointer(p)).Fsz)) } - (*TMemStore)(unsafe.Pointer(p)).Fsz = iOfst + int64(iAmt) + (*TMemStore)(unsafe.Pointer(p)).Fsz = iOfst + int64(int64(iAmt)) } - libc.Xmemcpy(tls, (*TMemStore)(unsafe.Pointer(p)).FaData+uintptr(iOfst), z, uint64(iAmt)) + libc.Xmemcpy(tls, (*TMemStore)(unsafe.Pointer(p)).FaData+uintptr(iOfst), z, uint64(uint64(iAmt))) _memdbLeave(tls, p) return SQLITE_OK } @@ -29474,7 +29715,7 @@ func _memdbFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r rc = int32(SQLITE_NOTFOUND) _memdbEnter(tls, p) if op == int32(SQLITE_FCNTL_VFSNAME) { - *(*uintptr)(unsafe.Pointer(pArg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3977, libc.VaList(bp+8, (*TMemStore)(unsafe.Pointer(p)).FaData, (*TMemStore)(unsafe.Pointer(p)).Fsz)) + *(*uintptr)(unsafe.Pointer(pArg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4041, libc.VaList(bp+8, (*TMemStore)(unsafe.Pointer(p)).FaData, (*TMemStore)(unsafe.Pointer(p)).Fsz)) rc = SQLITE_OK } if op == int32(SQLITE_FCNTL_SIZE_LIMIT) { @@ -29512,7 +29753,7 @@ func _memdbFetch(tls *libc.TLS, pFile uintptr, iOfst Tsqlite3_int64, iAmt int32, _ = p p = (*TMemFile)(unsafe.Pointer(pFile)).FpStore _memdbEnter(tls, p) - if iOfst+int64(iAmt) > (*TMemStore)(unsafe.Pointer(p)).Fsz || (*TMemStore)(unsafe.Pointer(p)).FmFlags&uint32(SQLITE_DESERIALIZE_RESIZEABLE) != uint32(0) { + if iOfst+int64(int64(iAmt)) > (*TMemStore)(unsafe.Pointer(p)).Fsz || (*TMemStore)(unsafe.Pointer(p)).FmFlags&uint32(SQLITE_DESERIALIZE_RESIZEABLE) != uint32(0) { *(*uintptr)(unsafe.Pointer(pp)) = uintptr(0) } else { (*TMemStore)(unsafe.Pointer(p)).FnMmap++ @@ -29569,12 +29810,12 @@ func _memdbOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFd uintptr, flags i i++ } if p == uintptr(0) { - p = _sqlite3Malloc(tls, uint64(72)+uint64(szName)+uint64(3)) + p = _sqlite3Malloc(tls, uint64(uint64(72)+uint64(uint64(szName))+uint64(3))) if p == uintptr(0) { Xsqlite3_mutex_leave(tls, pVfsMutex) return int32(SQLITE_NOMEM) } - apNew = _sqlite3Realloc(tls, _memdb_g.FapMemStore, uint64(8)*uint64(_memdb_g.FnMemStore+libc.Int32FromInt32(1))) + apNew = _sqlite3Realloc(tls, _memdb_g.FapMemStore, uint64(uint64(8)*uint64(_memdb_g.FnMemStore+libc.Int32FromInt32(1)))) if apNew == uintptr(0) { Xsqlite3_free(tls, p) Xsqlite3_mutex_leave(tls, pVfsMutex) @@ -29649,7 +29890,7 @@ func _memdbFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, bp := tls.Alloc(16) defer tls.Free(16) _ = pVfs - Xsqlite3_snprintf(tls, nOut, zOut, __ccgo_ts+3799, libc.VaList(bp+8, zPath)) + Xsqlite3_snprintf(tls, nOut, zOut, __ccgo_ts+3863, libc.VaList(bp+8, zPath)) return SQLITE_OK } @@ -29796,7 +30037,7 @@ func Xsqlite3_serialize(tls *libc.TLS, db uintptr, zSchema uintptr, piSize uintp return uintptr(0) } szPage = _sqlite3BtreeGetPageSize(tls, pBt) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+3992, libc.VaList(bp+24, zSchema)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+4056, libc.VaList(bp+24, zSchema)) if zSql != 0 { v1 = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), bp, uintptr(0)) } else { @@ -29811,13 +30052,13 @@ func Xsqlite3_serialize(tls *libc.TLS, db uintptr, zSchema uintptr, piSize uintp if rc != int32(SQLITE_ROW) { pOut = uintptr(0) } else { - sz = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) * int64(szPage) + sz = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) * int64(int64(szPage)) if sz == 0 { Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp))) - Xsqlite3_exec(tls, db, __ccgo_ts+4015, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+4079, uintptr(0), uintptr(0), uintptr(0)) rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) if rc == int32(SQLITE_ROW) { - sz = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) * int64(szPage) + sz = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) * int64(int64(szPage)) } } if piSize != 0 { @@ -29826,7 +30067,7 @@ func Xsqlite3_serialize(tls *libc.TLS, db uintptr, zSchema uintptr, piSize uintp if mFlags&uint32(SQLITE_SERIALIZE_NOCOPY) != 0 { pOut = uintptr(0) } else { - pOut = Xsqlite3_malloc64(tls, uint64(sz)) + pOut = Xsqlite3_malloc64(tls, uint64(uint64(sz))) if pOut != 0 { nPage = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) pPager = _sqlite3BtreePager(tls, pBt) @@ -29836,12 +30077,12 @@ func Xsqlite3_serialize(tls *libc.TLS, db uintptr, zSchema uintptr, piSize uintp break } *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) - pTo = pOut + uintptr(int64(szPage)*int64(pgno-libc.Int32FromInt32(1))) - rc = _sqlite3PagerGet(tls, pPager, uint32(pgno), bp+8, 0) + pTo = pOut + uintptr(int64(int64(szPage))*int64(pgno-libc.Int32FromInt32(1))) + rc = _sqlite3PagerGet(tls, pPager, uint32(uint32(pgno)), bp+8, 0) if rc == SQLITE_OK { - libc.Xmemcpy(tls, pTo, _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp + 8))), uint64(szPage)) + libc.Xmemcpy(tls, pTo, _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp + 8))), uint64(uint64(szPage))) } else { - libc.Xmemset(tls, pTo, 0, uint64(szPage)) + libc.Xmemset(tls, pTo, 0, uint64(uint64(szPage))) } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) goto _2 @@ -29877,7 +30118,7 @@ func Xsqlite3_deserialize(tls *libc.TLS, db uintptr, zSchema uintptr, pData uint rc = int32(SQLITE_ERROR) goto end_deserialize } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+4040, libc.VaList(bp+16, zSchema)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+4104, libc.VaList(bp+16, zSchema)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -29887,7 +30128,7 @@ func Xsqlite3_deserialize(tls *libc.TLS, db uintptr, zSchema uintptr, pData uint if rc != 0 { goto end_deserialize } - (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(iDb) + (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(uint8(iDb)) libc.SetBitFieldPtr8Uint32(db+192+8, libc.Uint32FromInt32(1), 2, 0x4) rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) libc.SetBitFieldPtr8Uint32(db+192+8, libc.Uint32FromInt32(0), 2, 0x4) @@ -29911,6 +30152,7 @@ func Xsqlite3_deserialize(tls *libc.TLS, db uintptr, zSchema uintptr, pData uint (*TMemStore)(unsafe.Pointer(pStore)).FmFlags = mFlags rc = SQLITE_OK } + goto end_deserialize end_deserialize: ; Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -29950,10 +30192,10 @@ func _sqlite3MemdbInit(tls *libc.TLS) (r int32) { ** Windows x86 and SQLITE_MAX_MMAP_SIZE=0. We always leave ** it in, to be safe, but it is marked as NO_TEST since there ** is no way to reach it under most builds. */ - if uint64(sz) < uint64(24) { + if uint64(uint64(sz)) < uint64(24) { sz = uint32(24) } /*NO_TEST*/ - _memdb_vfs.FszOsFile = int32(sz) + _memdb_vfs.FszOsFile = int32(int32(sz)) return Xsqlite3_vfs_register(tls, uintptr(unsafe.Pointer(&_memdb_vfs)), 0) } @@ -30172,13 +30414,14 @@ func _sqlite3BitvecSet(tls *libc.TLS, p uintptr, i Tu32) (r int32) { return SQLITE_OK } h++ - if uint64(h) >= (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4) { + if uint64(uint64(h)) >= (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4) { h = uint32(0) } } /* we didn't find it in the hash. h points to the first */ /* available free spot. check to see if this is going to */ /* make our hash too "full". */ + goto bitvec_set_rehash bitvec_set_rehash: ; if uint64((*TBitvec)(unsafe.Pointer(p)).FnSet) >= (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4)/libc.Uint64FromInt32(2) { @@ -30192,7 +30435,7 @@ bitvec_set_rehash: rc = _sqlite3BitvecSet(tls, p, i) j = uint32(0) for { - if !(uint64(j) < (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4)) { + if !(uint64(uint64(j)) < (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4)) { break } if *(*Tu32)(unsafe.Pointer(aiValues + uintptr(j)*4)) != 0 { @@ -30207,6 +30450,7 @@ bitvec_set_rehash: return rc } } + goto bitvec_set_end bitvec_set_end: ; (*TBitvec)(unsafe.Pointer(p)).FnSet++ @@ -30249,7 +30493,7 @@ func _sqlite3BitvecClear(tls *libc.TLS, p uintptr, i Tu32, pBuf uintptr) { (*TBitvec)(unsafe.Pointer(p)).FnSet = uint32(0) j = uint32(0) for { - if !(uint64(j) < (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4)) { + if !(uint64(uint64(j)) < (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4)) { break } if *(*Tu32)(unsafe.Pointer(aiValues + uintptr(j)*4)) != 0 && *(*Tu32)(unsafe.Pointer(aiValues + uintptr(j)*4)) != i+uint32(1) { @@ -30257,7 +30501,7 @@ func _sqlite3BitvecClear(tls *libc.TLS, p uintptr, i Tu32, pBuf uintptr) { (*TBitvec)(unsafe.Pointer(p)).FnSet++ for *(*Tu32)(unsafe.Pointer(p + 16 + uintptr(h)*4)) != 0 { h++ - if uint64(h) >= (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4) { + if uint64(uint64(h)) >= (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4) { h = uint32(0) } } @@ -30285,7 +30529,7 @@ func _sqlite3BitvecDestroy(tls *libc.TLS, p uintptr) { if (*TBitvec)(unsafe.Pointer(p)).FiDivisor != 0 { i = uint32(0) for { - if !(uint64(i) < (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(8)) { + if !(uint64(uint64(i)) < (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(8)) { break } _sqlite3BitvecDestroy(tls, *(*uintptr)(unsafe.Pointer(p + 16 + uintptr(i)*8))) @@ -30359,7 +30603,7 @@ func _sqlite3BitvecBuiltinTest(tls *libc.TLS, sz int32, aOp uintptr) (r int32) { rc = -int32(1) /* Allocate the Bitvec to be tested and a linear array of ** bits to act as the reference */ - pBitvec = _sqlite3BitvecCreate(tls, uint32(sz)) + pBitvec = _sqlite3BitvecCreate(tls, uint32(uint32(sz))) pV = _sqlite3MallocZero(tls, uint64((sz+int32(7))/int32(8)+int32(1))) pTmpSpace = Xsqlite3_malloc64(tls, uint64(BITVEC_SZ)) if pBitvec == uintptr(0) || pV == uintptr(0) || pTmpSpace == uintptr(0) { @@ -30423,7 +30667,7 @@ func _sqlite3BitvecBuiltinTest(tls *libc.TLS, sz int32, aOp uintptr) (r int32) { ** match (rc==0). Change rc to non-zero if a discrepancy ** is found. */ - rc = int32(uint32(_sqlite3BitvecTest(tls, uintptr(0), uint32(0))+_sqlite3BitvecTest(tls, pBitvec, uint32(sz+int32(1)))+_sqlite3BitvecTest(tls, pBitvec, uint32(0))) + (_sqlite3BitvecSize(tls, pBitvec) - uint32(sz))) + rc = int32(uint32(_sqlite3BitvecTest(tls, uintptr(0), uint32(0))+_sqlite3BitvecTest(tls, pBitvec, uint32(sz+int32(1)))+_sqlite3BitvecTest(tls, pBitvec, uint32(0))) + (_sqlite3BitvecSize(tls, pBitvec) - uint32(uint32(sz)))) *(*int32)(unsafe.Pointer(bp)) = int32(1) for { if !(*(*int32)(unsafe.Pointer(bp)) <= sz) { @@ -30439,6 +30683,7 @@ func _sqlite3BitvecBuiltinTest(tls *libc.TLS, sz int32, aOp uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp))++ } /* Free allocated structure */ + goto bitvec_end bitvec_end: ; Xsqlite3_free(tls, pTmpSpace) @@ -30548,7 +30793,7 @@ func _pcacheManageDirtyList(tls *libc.TLS, pPage uintptr, addRemove Tu8) { var p uintptr _ = p p = (*TPgHdr)(unsafe.Pointer(pPage)).FpCache - if int32(addRemove)&int32(PCACHE_DIRTYLIST_REMOVE) != 0 { + if int32(int32(addRemove))&int32(PCACHE_DIRTYLIST_REMOVE) != 0 { /* Update the PCache1.pSynced variable if necessary. */ if (*TPCache)(unsafe.Pointer(p)).FpSynced == pPage { (*TPCache)(unsafe.Pointer(p)).FpSynced = (*TPgHdr)(unsafe.Pointer(pPage)).FpDirtyPrev @@ -30571,7 +30816,7 @@ func _pcacheManageDirtyList(tls *libc.TLS, pPage uintptr, addRemove Tu8) { } } } - if int32(addRemove)&int32(PCACHE_DIRTYLIST_ADD) != 0 { + if int32(int32(addRemove))&int32(PCACHE_DIRTYLIST_ADD) != 0 { (*TPgHdr)(unsafe.Pointer(pPage)).FpDirtyPrev = uintptr(0) (*TPgHdr)(unsafe.Pointer(pPage)).FpDirtyNext = (*TPCache)(unsafe.Pointer(p)).FpDirty if (*TPgHdr)(unsafe.Pointer(pPage)).FpDirtyNext != 0 { @@ -30628,7 +30873,7 @@ func _numberOfCachePages(tls *libc.TLS, p uintptr) (r int32) { if n > int64(1000000000) { n = int64(1000000000) } - return int32(n) + return int32(int32(n)) } return r } @@ -30685,7 +30930,7 @@ func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable i (*TPCache)(unsafe.Pointer(p)).FszPage = int32(1) (*TPCache)(unsafe.Pointer(p)).FszExtra = szExtra /* First 8 bytes will be zeroed */ - (*TPCache)(unsafe.Pointer(p)).FbPurgeable = uint8(bPurgeable) + (*TPCache)(unsafe.Pointer(p)).FbPurgeable = uint8(uint8(bPurgeable)) (*TPCache)(unsafe.Pointer(p)).FeCreate = uint8(2) (*TPCache)(unsafe.Pointer(p)).FxStress = xStress (*TPCache)(unsafe.Pointer(p)).FpStress = pStress @@ -31294,7 +31539,7 @@ func _sqlite3PcacheSetSpillsize(tls *libc.TLS, p uintptr, mxPage int32) (r int32 _ = res if mxPage != 0 { if mxPage < 0 { - mxPage = int32(int64(-libc.Int32FromInt32(1024)) * int64(mxPage) / int64((*TPCache)(unsafe.Pointer(p)).FszPage+(*TPCache)(unsafe.Pointer(p)).FszExtra)) + mxPage = int32(int64(-libc.Int32FromInt32(1024)) * int64(int64(mxPage)) / int64((*TPCache)(unsafe.Pointer(p)).FszPage+(*TPCache)(unsafe.Pointer(p)).FszExtra)) } (*TPCache)(unsafe.Pointer(p)).FszSpill = mxPage } @@ -31348,7 +31593,7 @@ func _sqlite3PCachePercentDirty(tls *libc.TLS, pCache uintptr) (r int32) { pDirty = (*TPgHdr)(unsafe.Pointer(pDirty)).FpDirtyNext } if nCache != 0 { - v2 = int32(int64(nDirty) * libc.Int64FromInt32(100) / int64(nCache)) + v2 = int32(int64(int64(nDirty)) * libc.Int64FromInt32(100) / int64(int64(nCache))) } else { v2 = 0 } @@ -31678,7 +31923,7 @@ func _sqlite3PCacheBufferSetup(tls *libc.TLS, pBuf uintptr, sz int32, n int32) { var p uintptr var v1, v2, v3, v4 int32 _, _, _, _, _ = p, v1, v2, v3, v4 - if _pcache1_g.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80) != 0 { if pBuf == uintptr(0) { v1 = libc.Int32FromInt32(0) n = v1 @@ -31743,7 +31988,7 @@ func _pcache1InitBulk(tls *libc.TLS, pCache uintptr) (r int32) { if szBulk > int64((*TPCache1)(unsafe.Pointer(pCache)).FszAlloc)*int64((*TPCache1)(unsafe.Pointer(pCache)).FnMax) { szBulk = int64((*TPCache1)(unsafe.Pointer(pCache)).FszAlloc) * int64((*TPCache1)(unsafe.Pointer(pCache)).FnMax) } - v1 = _sqlite3Malloc(tls, uint64(szBulk)) + v1 = _sqlite3Malloc(tls, uint64(uint64(szBulk))) (*TPCache1)(unsafe.Pointer(pCache)).FpBulk = v1 zBulk = v1 _sqlite3EndBenignMalloc(tls) @@ -31804,7 +32049,7 @@ func _pcache1Alloc(tls *libc.TLS, nByte int32) (r uintptr) { /* Memory is not available in the SQLITE_CONFIG_PAGECACHE pool. Get ** it from sqlite3Malloc instead. */ - p = _sqlite3Malloc(tls, uint64(nByte)) + p = _sqlite3Malloc(tls, uint64(uint64(nByte))) if p != 0 { sz = _sqlite3MallocSize(tls, p) Xsqlite3_mutex_enter(tls, _pcache1_g.Fmutex) @@ -31993,7 +32238,7 @@ func _pcache1ResizeHash(tls *libc.TLS, p uintptr) { if (*TPCache1)(unsafe.Pointer(p)).FnHash != 0 { _sqlite3BeginBenignMalloc(tls) } - apNew = _sqlite3MallocZero(tls, uint64(8)*uint64(nNew)) + apNew = _sqlite3MallocZero(tls, uint64(uint64(8)*uint64(uint64(nNew)))) if (*TPCache1)(unsafe.Pointer(p)).FnHash != 0 { _sqlite3EndBenignMalloc(tls) } @@ -32199,7 +32444,7 @@ func _pcache1Init(tls *libc.TLS, NotUsed uintptr) (r int32) { _pcache1_g.FnInitPage = 0 } _pcache1_g.Fgrp.FmxPinned = uint32(10) - _pcache1_g.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80, int32(1)) return SQLITE_OK } @@ -32227,7 +32472,7 @@ func _pcache1Create(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32 var sz, v2 int32 _, _, _, _, _ = pCache, pGroup, sz, v1, v2 /* Bytes of memory required to allocate the new cache */ sz = int32(uint64(88) + uint64(80)*uint64(_pcache1_g.FseparateCache)) - pCache = _sqlite3MallocZero(tls, uint64(sz)) + pCache = _sqlite3MallocZero(tls, uint64(uint64(sz))) if pCache != 0 { if _pcache1_g.FseparateCache != 0 { pGroup = pCache + 1*88 @@ -32285,7 +32530,7 @@ func _pcache1Cachesize(tls *libc.TLS, p uintptr, nMax int32) { if (*TPCache1)(unsafe.Pointer(pCache)).FbPurgeable != 0 { pGroup = (*TPCache1)(unsafe.Pointer(pCache)).FpGroup Xsqlite3_mutex_enter(tls, (*TPGroup)(unsafe.Pointer(pGroup)).Fmutex) - n = uint32(nMax) + n = uint32(uint32(nMax)) if n > uint32(0x7fff0000)-(*TPGroup)(unsafe.Pointer(pGroup)).FnMaxPage+(*TPCache1)(unsafe.Pointer(pCache)).FnMax { n = uint32(0x7fff0000) - (*TPGroup)(unsafe.Pointer(pGroup)).FnMaxPage + (*TPCache1)(unsafe.Pointer(pCache)).FnMax } @@ -32855,7 +33100,7 @@ func _sqlite3RowSetInit(tls *libc.TLS, db uintptr) (r uintptr) { (*TRowSet)(unsafe.Pointer(p)).FpLast = uintptr(0) (*TRowSet)(unsafe.Pointer(p)).FpForest = uintptr(0) (*TRowSet)(unsafe.Pointer(p)).FpFresh = uintptr((libc.Uint64FromInt64(56)+libc.Uint64FromInt32(7))&uint64(^libc.Int32FromInt32(7))) + p - (*TRowSet)(unsafe.Pointer(p)).FnFresh = uint16((uint64(N) - (libc.Uint64FromInt64(56)+libc.Uint64FromInt32(7))&uint64(^libc.Int32FromInt32(7))) / libc.Uint64FromInt64(24)) + (*TRowSet)(unsafe.Pointer(p)).FnFresh = uint16((uint64(uint64(N)) - (libc.Uint64FromInt64(56)+libc.Uint64FromInt32(7))&uint64(^libc.Int32FromInt32(7))) / libc.Uint64FromInt64(24)) (*TRowSet)(unsafe.Pointer(p)).FrsFlags = uint16(ROWSET_SORTED) (*TRowSet)(unsafe.Pointer(p)).FiBatch = 0 } @@ -33046,7 +33291,7 @@ func _rowSetEntrySort(tls *libc.TLS, pIn uintptr) (r uintptr) { pIn = (*(*[40]uintptr)(unsafe.Pointer(bp)))[0] i = uint32(1) for { - if !(uint64(i) < libc.Uint64FromInt64(320)/libc.Uint64FromInt64(8)) { + if !(uint64(uint64(i)) < libc.Uint64FromInt64(320)/libc.Uint64FromInt64(8)) { break } if (*(*[40]uintptr)(unsafe.Pointer(bp)))[i] == uintptr(0) { @@ -34282,7 +34527,7 @@ func _pagerUnlockDb(tls *libc.TLS, pPager uintptr, eLock int32) (r int32) { } rc = v1 if int32((*TPager)(unsafe.Pointer(pPager)).FeLock) != libc.Int32FromInt32(EXCLUSIVE_LOCK)+libc.Int32FromInt32(1) { - (*TPager)(unsafe.Pointer(pPager)).FeLock = uint8(eLock) + (*TPager)(unsafe.Pointer(pPager)).FeLock = uint8(uint8(eLock)) } } (*TPager)(unsafe.Pointer(pPager)).FchangeCountDone = (*TPager)(unsafe.Pointer(pPager)).FtempFile /* ticket fb3b3024ea238d5c */ @@ -34313,7 +34558,7 @@ func _pagerLockDb(tls *libc.TLS, pPager uintptr, eLock int32) (r int32) { } rc = v1 if rc == SQLITE_OK && (int32((*TPager)(unsafe.Pointer(pPager)).FeLock) != libc.Int32FromInt32(EXCLUSIVE_LOCK)+libc.Int32FromInt32(1) || eLock == int32(EXCLUSIVE_LOCK)) { - (*TPager)(unsafe.Pointer(pPager)).FeLock = uint8(eLock) + (*TPager)(unsafe.Pointer(pPager)).FeLock = uint8(uint8(eLock)) } } return rc @@ -34615,7 +34860,7 @@ func _writeJournalHdr(tls *libc.TLS, pPager uintptr) (r int32) { ** the memory prevents valgrind from complaining, so we are willing to ** take the performance hit. */ - libc.Xmemset(tls, zHeader+uintptr(libc.Uint64FromInt64(8)+libc.Uint64FromInt32(20)), 0, uint64(nHeader)-(libc.Uint64FromInt64(8)+libc.Uint64FromInt32(20))) + libc.Xmemset(tls, zHeader+uintptr(libc.Uint64FromInt64(8)+libc.Uint64FromInt32(20)), 0, uint64(uint64(nHeader))-(libc.Uint64FromInt64(8)+libc.Uint64FromInt32(20))) /* In theory, it is only necessary to write the 28 bytes that the ** journal header consumes to the journal file here. Then increment the ** Pager.journalOff variable by JOURNAL_HDR_SZ so that the next @@ -34638,8 +34883,8 @@ func _writeJournalHdr(tls *libc.TLS, pPager uintptr) (r int32) { if !(rc == SQLITE_OK && nWrite < (*TPager)(unsafe.Pointer(pPager)).FsectorSize) { break } - rc = _sqlite3OsWrite(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd, zHeader, int32(nHeader), (*TPager)(unsafe.Pointer(pPager)).FjournalOff) - *(*Ti64)(unsafe.Pointer(pPager + 96)) += int64(nHeader) + rc = _sqlite3OsWrite(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd, zHeader, int32(int32(nHeader)), (*TPager)(unsafe.Pointer(pPager)).FjournalOff) + *(*Ti64)(unsafe.Pointer(pPager + 96)) += int64(int64(nHeader)) goto _3 _3: ; @@ -34831,15 +35076,15 @@ func _writeSuperJournal(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) rc = v3 } if v6 = v4 || 0 != v3; !v6 { - v5 = _write32bits(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd, iHdrOff+int64(4)+int64(nSuper), uint32(nSuper)) + v5 = _write32bits(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd, iHdrOff+int64(4)+int64(int64(nSuper)), uint32(uint32(nSuper))) rc = v5 } if v8 = v6 || 0 != v5; !v8 { - v7 = _write32bits(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd, iHdrOff+int64(4)+int64(nSuper)+int64(4), cksum) + v7 = _write32bits(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd, iHdrOff+int64(4)+int64(int64(nSuper))+int64(4), cksum) rc = v7 } if v10 = v8 || 0 != v7; !v10 { - v9 = _sqlite3OsWrite(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd, uintptr(unsafe.Pointer(&_aJournalMagic)), int32(8), iHdrOff+int64(4)+int64(nSuper)+int64(8)) + v9 = _sqlite3OsWrite(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd, uintptr(unsafe.Pointer(&_aJournalMagic)), int32(8), iHdrOff+int64(4)+int64(int64(nSuper))+int64(8)) rc = v9 } if v10 || 0 != v9 { @@ -35649,7 +35894,7 @@ func _pager_delsuper(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) { goto delsuper_out } nSuperPtr = (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FmxPathname + int32(1) - zFree = _sqlite3Malloc(tls, uint64(int64(4)+*(*Ti64)(unsafe.Pointer(bp))+int64(nSuperPtr)+int64(2))) + zFree = _sqlite3Malloc(tls, uint64(int64(4)+*(*Ti64)(unsafe.Pointer(bp))+int64(int64(nSuperPtr))+int64(2))) if !(zFree != 0) { rc = int32(SQLITE_NOMEM) goto delsuper_out @@ -35670,7 +35915,7 @@ func _pager_delsuper(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) { *(*int8)(unsafe.Pointer(zSuperJournal + uintptr(*(*Ti64)(unsafe.Pointer(bp))))) = 0 *(*int8)(unsafe.Pointer(zSuperJournal + uintptr(*(*Ti64)(unsafe.Pointer(bp))+int64(1)))) = 0 zJournal = zSuperJournal - for int64(zJournal)-int64(zSuperJournal) < *(*Ti64)(unsafe.Pointer(bp)) { + for int64(int64(int64(zJournal))-int64(int64(zSuperJournal))) < *(*Ti64)(unsafe.Pointer(bp)) { rc = _sqlite3OsAccess(tls, pVfs, zJournal, SQLITE_ACCESS_EXISTS, bp+8) if rc != SQLITE_OK { goto delsuper_out @@ -35681,7 +35926,7 @@ func _pager_delsuper(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) { if rc != SQLITE_OK { goto delsuper_out } - rc = _readSuperJournal(tls, pJournal, zSuperPtr, uint32(nSuperPtr)) + rc = _readSuperJournal(tls, pJournal, zSuperPtr, uint32(uint32(nSuperPtr))) _sqlite3OsClose(tls, pJournal) if rc != SQLITE_OK { goto delsuper_out @@ -35696,6 +35941,7 @@ func _pager_delsuper(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) { } _sqlite3OsClose(tls, pSuper) rc = _sqlite3OsDelete(tls, pVfs, zSuper, 0) + goto delsuper_out delsuper_out: ; Xsqlite3_free(tls, zFree) @@ -35741,16 +35987,16 @@ func _pager_truncate(tls *libc.TLS, pPager uintptr, nPage TPgno) (r int32) { szPage = int32((*TPager)(unsafe.Pointer(pPager)).FpageSize) /* TODO: Is it safe to use Pager.dbFileSize here? */ rc = _sqlite3OsFileSize(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, bp) - *(*Ti64)(unsafe.Pointer(bp + 8)) = int64(szPage) * int64(nPage) + *(*Ti64)(unsafe.Pointer(bp + 8)) = int64(int64(szPage)) * int64(int64(nPage)) if rc == SQLITE_OK && *(*Ti64)(unsafe.Pointer(bp)) != *(*Ti64)(unsafe.Pointer(bp + 8)) { if *(*Ti64)(unsafe.Pointer(bp)) > *(*Ti64)(unsafe.Pointer(bp + 8)) { rc = _sqlite3OsTruncate(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, *(*Ti64)(unsafe.Pointer(bp + 8))) } else { - if *(*Ti64)(unsafe.Pointer(bp))+int64(szPage) <= *(*Ti64)(unsafe.Pointer(bp + 8)) { + if *(*Ti64)(unsafe.Pointer(bp))+int64(int64(szPage)) <= *(*Ti64)(unsafe.Pointer(bp + 8)) { pTmp = (*TPager)(unsafe.Pointer(pPager)).FpTmpSpace - libc.Xmemset(tls, pTmp, 0, uint64(szPage)) + libc.Xmemset(tls, pTmp, 0, uint64(uint64(szPage))) _sqlite3OsFileControlHint(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32(SQLITE_FCNTL_SIZE_HINT), bp+8) - rc = _sqlite3OsWrite(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, pTmp, szPage, *(*Ti64)(unsafe.Pointer(bp + 8))-int64(szPage)) + rc = _sqlite3OsWrite(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, pTmp, szPage, *(*Ti64)(unsafe.Pointer(bp + 8))-int64(int64(szPage))) } } if rc == SQLITE_OK { @@ -36023,6 +36269,7 @@ func _pager_playback(tls *libc.TLS, pPager uintptr, isHot int32) (r int32) { } } /*NOTREACHED*/ + goto end_playback end_playback: ; if rc == SQLITE_OK { @@ -36065,7 +36312,7 @@ end_playback: rc = _pager_delsuper(tls, pPager, zSuper) } if isHot != 0 && nPlayback != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(2)< (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FmxPathname { /* This branch is taken when the journal path required by ** the database being opened will be more than pVfs->mxPathname @@ -37791,7 +38038,7 @@ func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename u ** as it will not be possible to open the journal file or even ** check for a hot-journal before reading. */ - rc = _sqlite3CantopenError(tls, int32(61558)) + rc = _sqlite3CantopenError(tls, int32(61898)) } if rc != SQLITE_OK { _sqlite3DbFree(tls, uintptr(0), zPathname) @@ -37842,7 +38089,7 @@ func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename u ** specific formatting and order of the various filenames, so if the format ** changes here, be sure to change it there as well. */ - pPtr = _sqlite3MallocZero(tls, (libc.Uint64FromInt64(312)+libc.Uint64FromInt32(7))&uint64(^libc.Int32FromInt32(7))+uint64((pcacheSize+libc.Int32FromInt32(7)) & ^libc.Int32FromInt32(7))+uint64(((*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FszOsFile+libc.Int32FromInt32(7)) & ^libc.Int32FromInt32(7))+uint64(journalFileSize*int32(2))+uint64(__SIZEOF_POINTER__)+uint64(4)+uint64(nPathname)+uint64(1)+uint64(nUriByte)+uint64(nPathname)+uint64(8)+uint64(1)+uint64(nPathname)+uint64(4)+uint64(1)+uint64(3)) + pPtr = _sqlite3MallocZero(tls, uint64((libc.Uint64FromInt64(312)+libc.Uint64FromInt32(7))&uint64(^libc.Int32FromInt32(7))+uint64((pcacheSize+libc.Int32FromInt32(7)) & ^libc.Int32FromInt32(7))+uint64(((*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FszOsFile+libc.Int32FromInt32(7)) & ^libc.Int32FromInt32(7))+uint64(journalFileSize*int32(2))+uint64(__SIZEOF_POINTER__)+uint64(4)+uint64(uint64(nPathname))+uint64(1)+uint64(uint64(nUriByte))+uint64(uint64(nPathname))+uint64(8)+uint64(1)+uint64(uint64(nPathname))+uint64(4)+uint64(1)+uint64(3))) if !(pPtr != 0) { _sqlite3DbFree(tls, uintptr(0), zPathname) return int32(SQLITE_NOMEM) @@ -37863,10 +38110,10 @@ func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename u pPtr += uintptr(4) /* Skip zero prefix */ (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzFilename = pPtr if nPathname > 0 { - libc.Xmemcpy(tls, pPtr, zPathname, uint64(nPathname)) + libc.Xmemcpy(tls, pPtr, zPathname, uint64(uint64(nPathname))) pPtr += uintptr(nPathname + int32(1)) if zUri != 0 { - libc.Xmemcpy(tls, pPtr, zUri, uint64(nUriByte)) + libc.Xmemcpy(tls, pPtr, zUri, uint64(uint64(nUriByte))) pPtr += uintptr(nUriByte) } else { pPtr++ @@ -37875,9 +38122,9 @@ func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename u /* Fill in Pager.zJournal */ if nPathname > 0 { (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzJournal = pPtr - libc.Xmemcpy(tls, pPtr, zPathname, uint64(nPathname)) + libc.Xmemcpy(tls, pPtr, zPathname, uint64(uint64(nPathname))) pPtr += uintptr(nPathname) - libc.Xmemcpy(tls, pPtr, __ccgo_ts+4082, uint64(8)) + libc.Xmemcpy(tls, pPtr, __ccgo_ts+4146, uint64(8)) pPtr += uintptr(libc.Int32FromInt32(8) + libc.Int32FromInt32(1)) } else { (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzJournal = uintptr(0) @@ -37885,9 +38132,9 @@ func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename u /* Fill in Pager.zWal */ if nPathname > 0 { (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzWal = pPtr - libc.Xmemcpy(tls, pPtr, zPathname, uint64(nPathname)) + libc.Xmemcpy(tls, pPtr, zPathname, uint64(uint64(nPathname))) pPtr += uintptr(nPathname) - libc.Xmemcpy(tls, pPtr, __ccgo_ts+4091, uint64(4)) + libc.Xmemcpy(tls, pPtr, __ccgo_ts+4155, uint64(4)) pPtr += uintptr(libc.Int32FromInt32(4) + libc.Int32FromInt32(1)) } else { (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzWal = uintptr(0) @@ -37897,7 +38144,7 @@ func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename u _sqlite3DbFree(tls, uintptr(0), zPathname) } (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpVfs = pVfs - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FvfsFlags = uint32(vfsFlags) + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FvfsFlags = uint32(uint32(vfsFlags)) /* Open the pager file. */ if !(zFilename != 0 && *(*int8)(unsafe.Pointer(zFilename)) != 0) { @@ -37929,8 +38176,8 @@ func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename u } } } - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnoLock = uint8(Xsqlite3_uri_boolean(tls, (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzFilename, __ccgo_ts+4096, 0)) - if iDc&int32(SQLITE_IOCAP_IMMUTABLE) != 0 || Xsqlite3_uri_boolean(tls, (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzFilename, __ccgo_ts+4103, 0) != 0 { + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnoLock = uint8(Xsqlite3_uri_boolean(tls, (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzFilename, __ccgo_ts+4160, 0)) + if iDc&int32(SQLITE_IOCAP_IMMUTABLE) != 0 || Xsqlite3_uri_boolean(tls, (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzFilename, __ccgo_ts+4167, 0) != 0 { vfsFlags |= int32(SQLITE_OPEN_READONLY) goto act_like_temp_file } @@ -37948,6 +38195,7 @@ _2: ** ** This branch also runs for files marked as immutable. */ + goto act_like_temp_file act_like_temp_file: ; tempFile = int32(1) @@ -37981,7 +38229,7 @@ _3: Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) return rc } - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FuseJournal = uint8(useJournal) + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FuseJournal = uint8(uint8(useJournal)) /* pPager->stmtOpen = 0; */ /* pPager->stmtInUse = 0; */ /* pPager->nRef = 0; */ @@ -37991,16 +38239,16 @@ _3: (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FmxPgno = uint32(SQLITE_MAX_PAGE_COUNT) /* pPager->state = PAGER_UNLOCK; */ /* pPager->errMask = 0; */ - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FtempFile = uint8(tempFile) - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FexclusiveMode = uint8(tempFile) + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FtempFile = uint8(uint8(tempFile)) + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FexclusiveMode = uint8(uint8(tempFile)) (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FchangeCountDone = (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FtempFile - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FmemDb = uint8(memDb) - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FreadOnly = uint8(readOnly) + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FmemDb = uint8(uint8(memDb)) + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FreadOnly = uint8(uint8(readOnly)) _sqlite3PagerSetFlags(tls, *(*uintptr)(unsafe.Pointer(bp)), uint32(libc.Int32FromInt32(SQLITE_DEFAULT_SYNCHRONOUS)+libc.Int32FromInt32(1)|libc.Int32FromInt32(PAGER_CACHESPILL))) /* pPager->pFirst = 0; */ /* pPager->pFirstSynced = 0; */ /* pPager->pLast = 0; */ - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnExtra = uint16(nExtra) + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnExtra = uint16(uint16(nExtra)) (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FjournalSizeLimit = int64(-int32(1)) _setSectorSize(tls, *(*uintptr)(unsafe.Pointer(bp))) if !(useJournal != 0) { @@ -38268,7 +38516,7 @@ func _sqlite3PagerSharedLock(tls *libc.TLS, pPager uintptr) (r int32) { f = libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_MAIN_JOURNAL) rc = _sqlite3OsOpen(tls, pVfs, (*TPager)(unsafe.Pointer(pPager)).FzJournal, (*TPager)(unsafe.Pointer(pPager)).Fjfd, f, bp+8) if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 8))&int32(SQLITE_OPEN_READONLY) != 0 { - rc = _sqlite3CantopenError(tls, int32(62079)) + rc = _sqlite3CantopenError(tls, int32(62419)) _sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd) } } @@ -38345,6 +38593,7 @@ func _sqlite3PagerSharedLock(tls *libc.TLS, pPager uintptr) (r int32) { if int32((*TPager)(unsafe.Pointer(pPager)).FtempFile) == 0 && int32((*TPager)(unsafe.Pointer(pPager)).FeState) == PAGER_OPEN && rc == SQLITE_OK { rc = _pagerPagecount(tls, pPager, pPager+32) } + goto failed failed: ; if rc != SQLITE_OK { @@ -38442,7 +38691,7 @@ func _getPageNormal(tls *libc.TLS, pPager uintptr, pgno TPgno, ppPage uintptr, f _, _, _, _ = noContent, pPg, rc, v1 rc = SQLITE_OK if pgno == uint32(0) { - return _sqlite3CorruptError(tls, int32(62292)) + return _sqlite3CorruptError(tls, int32(62632)) } *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3PcacheFetch(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache, pgno, int32(3)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -38473,7 +38722,7 @@ func _getPageNormal(tls *libc.TLS, pPager uintptr, pgno TPgno, ppPage uintptr, f ** (2) Never try to fetch the locking page */ if pgno == (*TPager)(unsafe.Pointer(pPager)).FlckPgno { - rc = _sqlite3CorruptError(tls, int32(62324)) + rc = _sqlite3CorruptError(tls, int32(62664)) goto pager_acquire_err } (*TPgHdr)(unsafe.Pointer(pPg)).FpPager = pPager @@ -38510,6 +38759,7 @@ func _getPageNormal(tls *libc.TLS, pPager uintptr, pgno TPgno, ppPage uintptr, f } } return SQLITE_OK + goto pager_acquire_err pager_acquire_err: ; if pPg != 0 { @@ -38544,7 +38794,7 @@ func _getPageMMap(tls *libc.TLS, pPager uintptr, pgno TPgno, ppPage uintptr, fla ** test in the previous statement, and avoid testing pgno==0 in the ** common case where pgno is large. */ if pgno <= uint32(1) && pgno == uint32(0) { - return _sqlite3CorruptError(tls, int32(62407)) + return _sqlite3CorruptError(tls, int32(62747)) } if bMmapOk != 0 && (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) { rc = _sqlite3WalFindFrame(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, pgno, bp+8) @@ -38773,7 +39023,7 @@ func _sqlite3PagerBegin(tls *libc.TLS, pPager uintptr, exFlag int32, subjInMemor if (*TPager)(unsafe.Pointer(pPager)).FerrCode != 0 { return (*TPager)(unsafe.Pointer(pPager)).FerrCode } - (*TPager)(unsafe.Pointer(pPager)).FsubjInMemory = uint8(subjInMemory) + (*TPager)(unsafe.Pointer(pPager)).FsubjInMemory = uint8(uint8(subjInMemory)) if int32((*TPager)(unsafe.Pointer(pPager)).FeState) == int32(PAGER_READER) { if (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) { /* If the pager is configured to use locking_mode=exclusive, and an @@ -38986,7 +39236,7 @@ func _pagerWriteLargeSector(tls *libc.TLS, pPg uintptr) (r int32) { if pg1+nPagePerSector-uint32(1) > nPageCount { nPage = int32(nPageCount + uint32(1) - pg1) } else { - nPage = int32(nPagePerSector) + nPage = int32(int32(nPagePerSector)) } } ii = 0 @@ -38994,7 +39244,7 @@ func _pagerWriteLargeSector(tls *libc.TLS, pPg uintptr) (r int32) { if !(ii < nPage && rc == SQLITE_OK) { break } - pg = pg1 + uint32(ii) + pg = pg1 + uint32(uint32(ii)) if pg == (*TPgHdr)(unsafe.Pointer(pPg)).Fpgno || !(_sqlite3BitvecTest(tls, (*TPager)(unsafe.Pointer(pPager)).FpInJournal, pg) != 0) { if pg != (*TPager)(unsafe.Pointer(pPager)).FlckPgno { rc = _sqlite3PagerGet(tls, pPager, pg, bp, 0) @@ -39033,7 +39283,7 @@ func _pagerWriteLargeSector(tls *libc.TLS, pPg uintptr) (r int32) { if !(ii < nPage) { break } - pPage1 = _sqlite3PagerLookup(tls, pPager, pg1+uint32(ii)) + pPage1 = _sqlite3PagerLookup(tls, pPager, pg1+uint32(uint32(ii))) if pPage1 != 0 { p5 = pPage1 + 52 *(*Tu16)(unsafe.Pointer(p5)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p5))) | libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -39392,6 +39642,7 @@ func _sqlite3PagerCommitPhaseOne(tls *libc.TLS, pPager uintptr, zSuper uintptr, } } } + goto commit_phase_one_exit commit_phase_one_exit: ; if rc == SQLITE_OK && !((*TPager)(unsafe.Pointer(pPager)).FpWal != libc.UintptrFromInt32(0)) { @@ -39603,7 +39854,7 @@ func _pagerOpenSavepoint(tls *libc.TLS, pPager uintptr, nSavepoint int32) (r int ** if the allocation fails. Otherwise, zero the new portion in case a ** malloc failure occurs while populating it in the for(...) loop below. */ - aNew = _sqlite3Realloc(tls, (*TPager)(unsafe.Pointer(pPager)).FaSavepoint, uint64(56)*uint64(nSavepoint)) + aNew = _sqlite3Realloc(tls, (*TPager)(unsafe.Pointer(pPager)).FaSavepoint, uint64(uint64(56)*uint64(uint64(nSavepoint)))) if !(aNew != 0) { return int32(SQLITE_NOMEM) } @@ -39900,7 +40151,7 @@ func _sqlite3PagerMovepage(tls *libc.TLS, pPager uintptr, pPg uintptr, pgno TPgn if pPgOld != 0 { if (*TPgHdr)(unsafe.Pointer(pPgOld)).FnRef > int64(1) { _sqlite3PagerUnrefNotNull(tls, pPgOld) - return _sqlite3CorruptError(tls, int32(63973)) + return _sqlite3CorruptError(tls, int32(64313)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | int32((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -39985,7 +40236,7 @@ func _sqlite3PagerGetExtra(tls *libc.TLS, pPg uintptr) (r uintptr) { // */ func _sqlite3PagerLockingMode(tls *libc.TLS, pPager uintptr, eMode int32) (r int32) { if eMode >= 0 && !((*TPager)(unsafe.Pointer(pPager)).FtempFile != 0) && !(_sqlite3WalHeapMemory(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal) != 0) { - (*TPager)(unsafe.Pointer(pPager)).FexclusiveMode = uint8(eMode) + (*TPager)(unsafe.Pointer(pPager)).FexclusiveMode = uint8(uint8(eMode)) } return int32((*TPager)(unsafe.Pointer(pPager)).FexclusiveMode) } @@ -40027,17 +40278,17 @@ func _sqlite3PagerSetJournalMode(tls *libc.TLS, pPager uintptr, eMode int32) (r */ if (*TPager)(unsafe.Pointer(pPager)).FmemDb != 0 { if eMode != int32(PAGER_JOURNALMODE_MEMORY) && eMode != int32(PAGER_JOURNALMODE_OFF) { - eMode = int32(eOld) + eMode = int32(int32(eOld)) } } - if eMode != int32(eOld) { + if eMode != int32(int32(eOld)) { /* Change the journal mode. */ - (*TPager)(unsafe.Pointer(pPager)).FjournalMode = uint8(eMode) + (*TPager)(unsafe.Pointer(pPager)).FjournalMode = uint8(uint8(eMode)) /* When transitioning from TRUNCATE or PERSIST to any other journal ** mode except WAL, unless the pager is in locking_mode=exclusive mode, ** delete the journal file. */ - if !((*TPager)(unsafe.Pointer(pPager)).FexclusiveMode != 0) && int32(eOld)&int32(5) == int32(1) && eMode&int32(1) == 0 { + if !((*TPager)(unsafe.Pointer(pPager)).FexclusiveMode != 0) && int32(int32(eOld))&int32(5) == int32(1) && eMode&int32(1) == 0 { /* In this case we would like to delete the journal file. If it is ** not possible, then that is not a problem. Deleting the journal file ** here is an optimization only. @@ -40168,7 +40419,7 @@ func _sqlite3PagerCheckpoint(tls *libc.TLS, pPager uintptr, db uintptr, eMode in ** sqlite3_wal_checkpoint() call, but it happens very rarely. ** https://sqlite.org/forum/forumpost/fd0f19d229156939 */ - Xsqlite3_exec(tls, db, __ccgo_ts+4113, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+4177, uintptr(0), uintptr(0), uintptr(0)) } if (*TPager)(unsafe.Pointer(pPager)).FpWal != 0 { if eMode == SQLITE_CHECKPOINT_PASSIVE { @@ -40216,7 +40467,7 @@ func _pagerExclusiveLock(tls *libc.TLS, pPager uintptr) (r int32) { if rc != SQLITE_OK { /* If the attempt to grab the exclusive lock failed, release the ** pending lock that may have been obtained instead. */ - _pagerUnlockDb(tls, pPager, int32(eOrigLock)) + _pagerUnlockDb(tls, pPager, int32(int32(eOrigLock))) } return rc } @@ -41068,7 +41319,7 @@ func _walIndexPageRealloc(tls *libc.TLS, pWal uintptr, iPage int32, ppPage uintp /* Enlarge the pWal->apWiData[] array if required */ if (*TWal)(unsafe.Pointer(pWal)).FnWiData <= iPage { nByte = int64(uint64(8) * uint64(iPage+libc.Int32FromInt32(1))) - apNew = _sqlite3Realloc(tls, (*TWal)(unsafe.Pointer(pWal)).FapWiData, uint64(nByte)) + apNew = _sqlite3Realloc(tls, (*TWal)(unsafe.Pointer(pWal)).FapWiData, uint64(uint64(nByte))) if !(apNew != 0) { *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) return int32(SQLITE_NOMEM) @@ -41079,7 +41330,7 @@ func _walIndexPageRealloc(tls *libc.TLS, pWal uintptr, iPage int32, ppPage uintp } /* Request a pointer to the required page from the VFS */ if int32((*TWal)(unsafe.Pointer(pWal)).FexclusiveMode) == int32(WAL_HEAPMEMORY_MODE) { - *(*uintptr)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FapWiData + uintptr(iPage)*8)) = _sqlite3MallocZero(tls, libc.Uint64FromInt64(2)*uint64(libc.Int32FromInt32(HASHTABLE_NPAGE)*libc.Int32FromInt32(2))+libc.Uint64FromInt32(HASHTABLE_NPAGE)*libc.Uint64FromInt64(4)) + *(*uintptr)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FapWiData + uintptr(iPage)*8)) = _sqlite3MallocZero(tls, uint64(libc.Uint64FromInt64(2)*uint64(libc.Int32FromInt32(HASHTABLE_NPAGE)*libc.Int32FromInt32(2))+libc.Uint64FromInt32(HASHTABLE_NPAGE)*libc.Uint64FromInt64(4))) if !(*(*uintptr)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FapWiData + uintptr(iPage)*8)) != 0) { rc = int32(SQLITE_NOMEM) } @@ -41504,7 +41755,7 @@ func _walFramePgno(tls *libc.TLS, pWal uintptr, iFrame Tu32) (r Tu32) { _ = iHash iHash = _walFramePage(tls, iFrame) if iHash == 0 { - return *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FapWiData)) + uintptr((libc.Uint64FromInt64(48)*libc.Uint64FromInt32(2)+libc.Uint64FromInt64(40))/libc.Uint64FromInt64(4)+uint64(iFrame)-uint64(1))*4)) + return *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FapWiData)) + uintptr((libc.Uint64FromInt64(48)*libc.Uint64FromInt32(2)+libc.Uint64FromInt64(40))/libc.Uint64FromInt64(4)+uint64(uint64(iFrame))-uint64(1))*4)) } return *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FapWiData + uintptr(iHash)*8)) + uintptr((uint64(iFrame-uint32(1))-(libc.Uint64FromInt32(HASHTABLE_NPAGE)-(libc.Uint64FromInt64(48)*libc.Uint64FromInt32(2)+libc.Uint64FromInt64(40))/libc.Uint64FromInt64(4)))%uint64(HASHTABLE_NPAGE))*4)) } @@ -41562,7 +41813,7 @@ func _walCleanupHash(tls *libc.TLS, pWal uintptr) { ** frame numbers greater than pWal->hdr.mxFrame. */ nByte = int32(int64((*(*TWalHashLoc)(unsafe.Pointer(bp))).FaHash) - int64((*(*TWalHashLoc)(unsafe.Pointer(bp))).FaPgno+uintptr(iLimit)*4)) - libc.Xmemset(tls, (*(*TWalHashLoc)(unsafe.Pointer(bp))).FaPgno+uintptr(iLimit)*4, 0, uint64(nByte)) + libc.Xmemset(tls, (*(*TWalHashLoc)(unsafe.Pointer(bp))).FaPgno+uintptr(iLimit)*4, 0, uint64(uint64(nByte))) } // C documentation @@ -41588,7 +41839,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in */ if idx == int32(1) { nByte = int32(int64((*(*TWalHashLoc)(unsafe.Pointer(bp))).FaHash+uintptr(libc.Int32FromInt32(HASHTABLE_NPAGE)*libc.Int32FromInt32(2))*2) - int64((*(*TWalHashLoc)(unsafe.Pointer(bp))).FaPgno)) - libc.Xmemset(tls, (*(*TWalHashLoc)(unsafe.Pointer(bp))).FaPgno, 0, uint64(nByte)) + libc.Xmemset(tls, (*(*TWalHashLoc)(unsafe.Pointer(bp))).FaPgno, 0, uint64(uint64(nByte))) } /* If the entry in aPgno[] is already set, then the previous writer ** must have exited unexpectedly in the middle of a transaction (after @@ -41609,7 +41860,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(65899)) + return _sqlite3CorruptError(tls, int32(66239)) } goto _1 _1: @@ -41617,7 +41868,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in iKey = _walNextHash(tls, iKey) } *(*Tu32)(unsafe.Pointer((*(*TWalHashLoc)(unsafe.Pointer(bp))).FaPgno + uintptr(idx-int32(1))*4)) = iPage - libc.AtomicStoreNUint16((*(*TWalHashLoc)(unsafe.Pointer(bp))).FaHash+uintptr(iKey)*2, uint16(idx), libc.Int32FromInt32(__ATOMIC_RELAXED)) + libc.AtomicStoreNUint16((*(*TWalHashLoc)(unsafe.Pointer(bp))).FaHash+uintptr(iKey)*2, uint16(uint16(idx)), libc.Int32FromInt32(__ATOMIC_RELAXED)) } return rc } @@ -41685,7 +41936,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { goto finished } (*TWal)(unsafe.Pointer(pWal)).Fhdr.FbigEndCksum = uint8(magic & libc.Uint32FromInt32(0x00000001)) - (*TWal)(unsafe.Pointer(pWal)).FszPage = uint32(szPage) + (*TWal)(unsafe.Pointer(pWal)).FszPage = uint32(uint32(szPage)) (*TWal)(unsafe.Pointer(pWal)).FnCkpt = _sqlite3Get4byte(tls, bp+8+12) libc.Xmemcpy(tls, pWal+72+32, bp+8+16, uint64(8)) /* Verify that the WAL header checksum is correct */ @@ -41697,12 +41948,12 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { ** are able to understand */ version = _sqlite3Get4byte(tls, bp+8+4) if version != uint32(WAL_MAX_VERSION) { - rc = _sqlite3CantopenError(tls, int32(66031)) + rc = _sqlite3CantopenError(tls, int32(66371)) goto finished } /* Malloc a buffer to read frames into. */ szFrame = szPage + int32(WAL_FRAME_HDRSIZE) - aFrame = Xsqlite3_malloc64(tls, uint64(szFrame)+(libc.Uint64FromInt64(2)*uint64(libc.Int32FromInt32(HASHTABLE_NPAGE)*libc.Int32FromInt32(2))+libc.Uint64FromInt32(HASHTABLE_NPAGE)*libc.Uint64FromInt64(4))) + aFrame = Xsqlite3_malloc64(tls, uint64(uint64(uint64(szFrame))+(libc.Uint64FromInt64(2)*uint64(libc.Int32FromInt32(HASHTABLE_NPAGE)*libc.Int32FromInt32(2))+libc.Uint64FromInt32(HASHTABLE_NPAGE)*libc.Uint64FromInt64(4)))) if !(aFrame != 0) { rc = int32(SQLITE_NOMEM) goto recovery_error @@ -41710,7 +41961,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { aData = aFrame + 24 aPrivate = aData + uintptr(szPage) /* Read all frames from the log file. */ - iLastFrame = uint32((*(*Ti64)(unsafe.Pointer(bp)) - int64(WAL_HDRSIZE)) / int64(szFrame)) + iLastFrame = uint32((*(*Ti64)(unsafe.Pointer(bp)) - int64(WAL_HDRSIZE)) / int64(int64(szFrame))) iPg = uint32(0) for { if !(iPg <= uint32(_walFramePage(tls, iLastFrame))) { @@ -41728,7 +41979,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { v3 = libc.Uint64FromInt32(HASHTABLE_NPAGE) - (libc.Uint64FromInt64(48)*libc.Uint64FromInt32(2)+libc.Uint64FromInt64(40))/libc.Uint64FromInt64(4) + uint64((iPg-uint32(1))*uint32(HASHTABLE_NPAGE)) } iFirst = uint32(uint64(1) + v3) - rc = _walIndexPage(tls, pWal, int32(iPg), bp+40) + rc = _walIndexPage(tls, pWal, int32(int32(iPg)), bp+40) if *(*uintptr)(unsafe.Pointer(bp + 40)) == uintptr(0) { break } @@ -41772,7 +42023,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { v5 = uint64(0) } nHdr = uint32(v5) - nHdr32 = uint32(uint64(nHdr) / uint64(4)) + nHdr32 = uint32(uint64(uint64(nHdr)) / uint64(4)) /* Memcpy() should work fine here, on all reasonable implementations. ** Technically, memcpy() might change the destination to some ** intermediate value before setting to the final value, and that might @@ -41781,7 +42032,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { ** we know of actually does that, which is why we say that memcpy() ** is safe for this. Memcpy() is certainly a lot faster. */ - libc.Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(bp + 40))+uintptr(nHdr32)*4, aPrivate+uintptr(nHdr32)*4, libc.Uint64FromInt64(2)*uint64(libc.Int32FromInt32(HASHTABLE_NPAGE)*libc.Int32FromInt32(2))+libc.Uint64FromInt32(HASHTABLE_NPAGE)*libc.Uint64FromInt64(4)-uint64(nHdr)) + libc.Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(bp + 40))+uintptr(nHdr32)*4, aPrivate+uintptr(nHdr32)*4, libc.Uint64FromInt64(2)*uint64(libc.Int32FromInt32(HASHTABLE_NPAGE)*libc.Int32FromInt32(2))+libc.Uint64FromInt32(HASHTABLE_NPAGE)*libc.Uint64FromInt64(4)-uint64(uint64(nHdr))) if iFrame <= iLast { break } @@ -41792,6 +42043,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { } Xsqlite3_free(tls, aFrame) } + goto finished finished: ; if rc == SQLITE_OK { @@ -41835,9 +42087,10 @@ finished: ** checkpointing the log file. */ if (*TWal)(unsafe.Pointer(pWal)).Fhdr.FnPage != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(1)< uint32(HASHTABLE_NPAGE) { v1 = uint32(HASHTABLE_NPAGE) } else { v1 = iLast } - p = Xsqlite3_malloc64(tls, uint64(nByte)+uint64(2)*uint64(v1)) + p = Xsqlite3_malloc64(tls, uint64(uint64(nByte))+uint64(uint64(2)*uint64(v1))) if !(p != 0) { return int32(SQLITE_NOMEM) } - libc.Xmemset(tls, p, 0, uint64(nByte)) + libc.Xmemset(tls, p, 0, uint64(uint64(nByte))) (*TWalIterator)(unsafe.Pointer(p)).FnSegment = nSegment aTmp = p + uintptr(nByte) i = _walFramePage(tls, nBackfill+uint32(1)) @@ -42242,7 +42495,7 @@ func _walIteratorInit(tls *libc.TLS, pWal uintptr, nBackfill Tu32, pp uintptr) ( if !(j < *(*int32)(unsafe.Pointer(bp + 24))) { break } - *(*Tht_slot)(unsafe.Pointer(aIndex + uintptr(j)*2)) = uint16(j) + *(*Tht_slot)(unsafe.Pointer(aIndex + uintptr(j)*2)) = uint16(uint16(j)) goto _3 _3: ; @@ -42456,16 +42709,16 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy ** about the eventual size of the db file to the VFS layer. */ if rc == SQLITE_OK { - *(*Ti64)(unsafe.Pointer(bp + 16)) = int64(mxPage) * int64(szPage) /* Current size of database file */ + *(*Ti64)(unsafe.Pointer(bp + 16)) = int64(int64(mxPage)) * int64(int64(szPage)) /* Current size of database file */ _sqlite3OsFileControl(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_FCNTL_CKPT_START), uintptr(0)) rc = _sqlite3OsFileSize(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, bp+24) if rc == SQLITE_OK && *(*Ti64)(unsafe.Pointer(bp + 24)) < *(*Ti64)(unsafe.Pointer(bp + 16)) { - if *(*Ti64)(unsafe.Pointer(bp + 24))+int64(65536)+int64((*TWal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame)*int64(szPage) < *(*Ti64)(unsafe.Pointer(bp + 16)) { + if *(*Ti64)(unsafe.Pointer(bp + 24))+int64(65536)+int64((*TWal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame)*int64(int64(szPage)) < *(*Ti64)(unsafe.Pointer(bp + 16)) { /* If the size of the final database is larger than the current ** database plus the amount of data in the wal file, plus the ** maximum size of the pending-byte page (65536 bytes), then ** must be corruption somewhere. */ - rc = _sqlite3CorruptError(tls, int32(66841)) + rc = _sqlite3CorruptError(tls, int32(67181)) } else { _sqlite3OsFileControlHint(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_FCNTL_SIZE_HINT), bp+16) } @@ -42491,7 +42744,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy if rc != SQLITE_OK { break } - iOffset = int64(*(*Tu32)(unsafe.Pointer(bp + 8))-libc.Uint32FromInt32(1)) * int64(szPage) + iOffset = int64(*(*Tu32)(unsafe.Pointer(bp + 8))-libc.Uint32FromInt32(1)) * int64(int64(szPage)) rc = _sqlite3OsWrite(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, zBuf, szPage, iOffset) if rc != SQLITE_OK { break @@ -42501,7 +42754,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy /* If work was actually accomplished... */ if rc == SQLITE_OK { if mxSafeFrame == (*TWalIndexHdr)(unsafe.Pointer(_walIndexHdr(tls, pWal))).FmxFrame { - szDb = int64((*TWal)(unsafe.Pointer(pWal)).Fhdr.FnPage) * int64(szPage) + szDb = int64((*TWal)(unsafe.Pointer(pWal)).Fhdr.FnPage) * int64(int64(szPage)) rc = _sqlite3OsTruncate(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, szDb) if rc == SQLITE_OK { rc = _sqlite3OsSync(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, sync_flags>>int32(2)&int32(0x03)) @@ -42555,6 +42808,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } } } + goto walcheckpoint_out walcheckpoint_out: ; _walIteratorFree(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -42580,7 +42834,7 @@ func _walLimitSize(tls *libc.TLS, pWal uintptr, nMax Ti64) { } _sqlite3EndBenignMalloc(tls) if rx != 0 { - Xsqlite3_log(tls, rx, __ccgo_ts+4168, libc.VaList(bp+16, (*TWal)(unsafe.Pointer(pWal)).FzWalName)) + Xsqlite3_log(tls, rx, __ccgo_ts+4232, libc.VaList(bp+16, (*TWal)(unsafe.Pointer(pWal)).FzWalName)) } } @@ -42821,7 +43075,7 @@ func _walIndexReadHdr(tls *libc.TLS, pWal uintptr, pChanged uintptr) (r int32) { ** this version of SQLite cannot understand. */ if badHdr == 0 && (*TWal)(unsafe.Pointer(pWal)).Fhdr.FiVersion != uint32(WALINDEX_MAX_VERSION) { - rc = _sqlite3CantopenError(tls, int32(67285)) + rc = _sqlite3CantopenError(tls, int32(67625)) } if (*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 { if rc != SQLITE_OK { @@ -42968,7 +43222,7 @@ func _walBeginShmUnreliable(tls *libc.TLS, pWal uintptr, pChanged uintptr) (r in } /* Allocate a buffer to read frames into */ szFrame = int32((*TWal)(unsafe.Pointer(pWal)).FszPage + uint32(WAL_FRAME_HDRSIZE)) - aFrame = Xsqlite3_malloc64(tls, uint64(szFrame)) + aFrame = Xsqlite3_malloc64(tls, uint64(uint64(szFrame))) if aFrame == uintptr(0) { rc = int32(SQLITE_NOMEM) goto begin_unreliable_shm_out @@ -42982,7 +43236,7 @@ func _walBeginShmUnreliable(tls *libc.TLS, pWal uintptr, pChanged uintptr) (r in aSaveCksum[int32(1)] = *(*Tu32)(unsafe.Pointer(pWal + 72 + 24 + 1*4)) iOffset = libc.Int64FromInt32(WAL_HDRSIZE) + int64((*TWal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame+libc.Uint32FromInt32(1)-libc.Uint32FromInt32(1))*int64((*TWal)(unsafe.Pointer(pWal)).FszPage+libc.Uint32FromInt32(WAL_FRAME_HDRSIZE)) for { - if !(iOffset+int64(szFrame) <= *(*Ti64)(unsafe.Pointer(bp))) { + if !(iOffset+int64(int64(szFrame)) <= *(*Ti64)(unsafe.Pointer(bp))) { break } /* dbsize field from frame header */ /* Read and decode the next log frame. */ @@ -43003,10 +43257,11 @@ func _walBeginShmUnreliable(tls *libc.TLS, pWal uintptr, pChanged uintptr) (r in goto _3 _3: ; - iOffset += int64(szFrame) + iOffset += int64(int64(szFrame)) } *(*Tu32)(unsafe.Pointer(pWal + 72 + 24)) = aSaveCksum[0] *(*Tu32)(unsafe.Pointer(pWal + 72 + 24 + 1*4)) = aSaveCksum[int32(1)] + goto begin_unreliable_shm_out begin_unreliable_shm_out: ; Xsqlite3_free(tls, aFrame) @@ -43328,7 +43583,7 @@ func _walTryBeginRead(tls *libc.TLS, pWal uintptr, pChanged uintptr, useWal int3 _walUnlockShared(tls, pWal, int32(3)+mxI) return -int32(1) } else { - (*TWal)(unsafe.Pointer(pWal)).FreadLock = int16(mxI) + (*TWal)(unsafe.Pointer(pWal)).FreadLock = int16(int16(mxI)) } return rc } @@ -43363,14 +43618,14 @@ func _walSnapshotRecover(tls *libc.TLS, pWal uintptr, pBuf1 uintptr, pBuf2 uintp break } pgno = *(*Tu32)(unsafe.Pointer((*(*TWalHashLoc)(unsafe.Pointer(bp + 8))).FaPgno + uintptr(i-(*(*TWalHashLoc)(unsafe.Pointer(bp + 8))).FiZero-uint32(1))*4)) - iDbOff = int64(pgno-libc.Uint32FromInt32(1)) * int64(szPage) - if iDbOff+int64(szPage) <= *(*Ti64)(unsafe.Pointer(bp)) { + iDbOff = int64(pgno-libc.Uint32FromInt32(1)) * int64(int64(szPage)) + if iDbOff+int64(int64(szPage)) <= *(*Ti64)(unsafe.Pointer(bp)) { iWalOff = int64(WAL_HDRSIZE) + int64(i-libc.Uint32FromInt32(1))*int64(szPage+libc.Int32FromInt32(WAL_FRAME_HDRSIZE)) + int64(WAL_FRAME_HDRSIZE) rc = _sqlite3OsRead(tls, (*TWal)(unsafe.Pointer(pWal)).FpWalFd, pBuf1, szPage, iWalOff) if rc == SQLITE_OK { rc = _sqlite3OsRead(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, pBuf2, szPage, iDbOff) } - if rc != SQLITE_OK || 0 == libc.Xmemcmp(tls, pBuf1, pBuf2, uint64(szPage)) { + if rc != SQLITE_OK || 0 == libc.Xmemcmp(tls, pBuf1, pBuf2, uint64(uint64(szPage))) { break } } @@ -43630,7 +43885,7 @@ func _walFindFrame(tls *libc.TLS, pWal uintptr, pgno TPgno, piRead uintptr) (r i nCollide-- if v3 == 0 { *(*Tu32)(unsafe.Pointer(piRead)) = uint32(0) - return _sqlite3CorruptError(tls, int32(68129)) + return _sqlite3CorruptError(tls, int32(68469)) } iKey = _walNextHash(tls, iKey) } @@ -43948,13 +44203,13 @@ type WalWriter = TWalWriter func _walWriteToLog(tls *libc.TLS, p uintptr, pContent uintptr, iAmt int32, iOffset Tsqlite3_int64) (r int32) { var iFirstAmt, rc int32 _, _ = iFirstAmt, rc - if iOffset < (*TWalWriter)(unsafe.Pointer(p)).FiSyncPoint && iOffset+int64(iAmt) >= (*TWalWriter)(unsafe.Pointer(p)).FiSyncPoint { + if iOffset < (*TWalWriter)(unsafe.Pointer(p)).FiSyncPoint && iOffset+int64(int64(iAmt)) >= (*TWalWriter)(unsafe.Pointer(p)).FiSyncPoint { iFirstAmt = int32((*TWalWriter)(unsafe.Pointer(p)).FiSyncPoint - iOffset) rc = _sqlite3OsWrite(tls, (*TWalWriter)(unsafe.Pointer(p)).FpFd, pContent, iFirstAmt, iOffset) if rc != 0 { return rc } - iOffset += int64(iFirstAmt) + iOffset += int64(int64(iFirstAmt)) iAmt -= iFirstAmt pContent = uintptr(iFirstAmt) + pContent rc = _sqlite3OsSync(tls, (*TWalWriter)(unsafe.Pointer(p)).FpFd, (*TWalWriter)(unsafe.Pointer(p)).FsyncFlags&int32(0x03)) @@ -43979,13 +44234,13 @@ func _walWriteOneFrame(tls *libc.TLS, p uintptr, pPage uintptr, nTruncate int32, var _ /* aFrame at bp+0 */ [24]Tu8 _, _ = pData, rc /* Buffer to assemble frame-header in */ pData = (*TPgHdr)(unsafe.Pointer(pPage)).FpData - _walEncodeFrame(tls, (*TWalWriter)(unsafe.Pointer(p)).FpWal, (*TPgHdr)(unsafe.Pointer(pPage)).Fpgno, uint32(nTruncate), pData, bp) + _walEncodeFrame(tls, (*TWalWriter)(unsafe.Pointer(p)).FpWal, (*TPgHdr)(unsafe.Pointer(pPage)).Fpgno, uint32(uint32(nTruncate)), pData, bp) rc = _walWriteToLog(tls, p, bp, int32(24), iOffset) if rc != 0 { return rc } /* Write the page data */ - rc = _walWriteToLog(tls, p, pData, (*TWalWriter)(unsafe.Pointer(p)).FszPage, int64(uint64(iOffset)+uint64(24))) + rc = _walWriteToLog(tls, p, pData, (*TWalWriter)(unsafe.Pointer(p)).FszPage, int64(uint64(uint64(iOffset))+uint64(24))) return rc } @@ -44094,7 +44349,7 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc if iFrame == uint32(0) { /* Checksum for wal-header */ _sqlite3Put4byte(tls, bp+32, uint32(libc.Int32FromInt32(WAL_MAGIC)|libc.Int32FromInt32(SQLITE_BIGENDIAN))) _sqlite3Put4byte(tls, bp+32+4, uint32(WAL_MAX_VERSION)) - _sqlite3Put4byte(tls, bp+32+8, uint32(szPage)) + _sqlite3Put4byte(tls, bp+32+8, uint32(uint32(szPage))) _sqlite3Put4byte(tls, bp+32+12, (*TWal)(unsafe.Pointer(pWal)).FnCkpt) if (*TWal)(unsafe.Pointer(pWal)).FnCkpt == uint32(0) { Xsqlite3_randomness(tls, int32(8), pWal+72+32) @@ -44103,7 +44358,7 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc _walChecksumBytes(tls, int32(1), bp+32, libc.Int32FromInt32(WAL_HDRSIZE)-libc.Int32FromInt32(2)*libc.Int32FromInt32(4), uintptr(0), bp+64) _sqlite3Put4byte(tls, bp+32+24, (*(*[2]Tu32)(unsafe.Pointer(bp + 64)))[0]) _sqlite3Put4byte(tls, bp+32+28, (*(*[2]Tu32)(unsafe.Pointer(bp + 64)))[int32(1)]) - (*TWal)(unsafe.Pointer(pWal)).FszPage = uint32(szPage) + (*TWal)(unsafe.Pointer(pWal)).FszPage = uint32(uint32(szPage)) (*TWal)(unsafe.Pointer(pWal)).Fhdr.FbigEndCksum = uint8(SQLITE_BIGENDIAN) *(*Tu32)(unsafe.Pointer(pWal + 72 + 24)) = (*(*[2]Tu32)(unsafe.Pointer(bp + 64)))[0] *(*Tu32)(unsafe.Pointer(pWal + 72 + 24 + 1*4)) = (*(*[2]Tu32)(unsafe.Pointer(bp + 64)))[int32(1)] @@ -44127,7 +44382,7 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc } } if int32((*TWal)(unsafe.Pointer(pWal)).FszPage) != szPage { - return _sqlite3CorruptError(tls, int32(68652)) /* TH3 test case: cov1/corrupt155.test */ + return _sqlite3CorruptError(tls, int32(68992)) /* TH3 test case: cov1/corrupt155.test */ } /* Setup information needed to write frames into the WAL */ (*(*TWalWriter)(unsafe.Pointer(bp))).FpWal = pWal @@ -44177,7 +44432,7 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc return rc } pLast = p - iOffset += int64(szFrame) + iOffset += int64(int64(szFrame)) p5 = p + 52 *(*Tu16)(unsafe.Pointer(p5)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p5))) | libc.Int32FromInt32(PGHDR_WAL_APPEND)) goto _2 @@ -44210,14 +44465,14 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc bSync = int32(1) if (*TWal)(unsafe.Pointer(pWal)).FpadToSectorBoundary != 0 { sectorSize = _sqlite3SectorSize(tls, (*TWal)(unsafe.Pointer(pWal)).FpWalFd) - (*(*TWalWriter)(unsafe.Pointer(bp))).FiSyncPoint = (iOffset + int64(sectorSize) - int64(1)) / int64(sectorSize) * int64(sectorSize) + (*(*TWalWriter)(unsafe.Pointer(bp))).FiSyncPoint = (iOffset + int64(int64(sectorSize)) - int64(1)) / int64(int64(sectorSize)) * int64(int64(sectorSize)) bSync = libc.BoolInt32((*(*TWalWriter)(unsafe.Pointer(bp))).FiSyncPoint == iOffset) for iOffset < (*(*TWalWriter)(unsafe.Pointer(bp))).FiSyncPoint { - rc = _walWriteOneFrame(tls, bp, pLast, int32(nTruncate), iOffset) + rc = _walWriteOneFrame(tls, bp, pLast, int32(int32(nTruncate)), iOffset) if rc != 0 { return rc } - iOffset += int64(szFrame) + iOffset += int64(int64(szFrame)) nExtra++ } } @@ -44231,8 +44486,8 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc */ if isCommit != 0 && (*TWal)(unsafe.Pointer(pWal)).FtruncateOnCommit != 0 && (*TWal)(unsafe.Pointer(pWal)).FmxWalSize >= 0 { sz = (*TWal)(unsafe.Pointer(pWal)).FmxWalSize - if int64(WAL_HDRSIZE)+int64(iFrame+uint32(nExtra)+libc.Uint32FromInt32(1)-libc.Uint32FromInt32(1))*int64(szPage+libc.Int32FromInt32(WAL_FRAME_HDRSIZE)) > (*TWal)(unsafe.Pointer(pWal)).FmxWalSize { - sz = libc.Int64FromInt32(WAL_HDRSIZE) + int64(iFrame+uint32(nExtra)+libc.Uint32FromInt32(1)-libc.Uint32FromInt32(1))*int64(szPage+libc.Int32FromInt32(WAL_FRAME_HDRSIZE)) + if int64(WAL_HDRSIZE)+int64(iFrame+uint32(uint32(nExtra))+libc.Uint32FromInt32(1)-libc.Uint32FromInt32(1))*int64(szPage+libc.Int32FromInt32(WAL_FRAME_HDRSIZE)) > (*TWal)(unsafe.Pointer(pWal)).FmxWalSize { + sz = libc.Int64FromInt32(WAL_HDRSIZE) + int64(iFrame+uint32(uint32(nExtra))+libc.Uint32FromInt32(1)-libc.Uint32FromInt32(1))*int64(szPage+libc.Int32FromInt32(WAL_FRAME_HDRSIZE)) } _walLimitSize(tls, pWal, sz) (*TWal)(unsafe.Pointer(pWal)).FtruncateOnCommit = uint8(0) @@ -44376,7 +44631,7 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, /* Copy data from the log to the database file. */ if rc == SQLITE_OK { if (*TWal)(unsafe.Pointer(pWal)).Fhdr.FmxFrame != 0 && _walPagesize(tls, pWal) != nBuf { - rc = _sqlite3CorruptError(tls, int32(68912)) + rc = _sqlite3CorruptError(tls, int32(69252)) } else { rc = _walCheckpoint(tls, pWal, db, eMode2, xBusy2, pBusyArg, sync_flags, zBuf) } @@ -44428,7 +44683,7 @@ func _sqlite3WalCallback(tls *libc.TLS, pWal uintptr) (r int32) { ret = (*TWal)(unsafe.Pointer(pWal)).FiCallback (*TWal)(unsafe.Pointer(pWal)).FiCallback = uint32(0) } - return int32(ret) + return int32(int32(ret)) } // C documentation @@ -45313,6 +45568,7 @@ type TIntegrityCk = struct { FerrMsg TStrAccum Fheap uintptr Fdb uintptr + FnRow Ti64 } type IntegrityCk = TIntegrityCk @@ -45333,6 +45589,7 @@ type TIntegrityCk1 = struct { FerrMsg TStrAccum Fheap uintptr Fdb uintptr + FnRow Ti64 } type IntegrityCk1 = TIntegrityCk1 @@ -45518,7 +45775,7 @@ func _btreeEnterAll(tls *libc.TLS, db uintptr) { ; i++ } - (*Tsqlite3)(unsafe.Pointer(db)).FnoSharedCache = uint8(skipOk) + (*Tsqlite3)(unsafe.Pointer(db)).FnoSharedCache = uint8(uint8(skipOk)) } func _sqlite3BtreeEnterAll(tls *libc.TLS, db uintptr) { @@ -45659,6 +45916,11 @@ func Xsqlite3_enable_shared_cache(tls *libc.TLS, enable int32) (r int32) { ** with the page number and filename associated with the (MemPage*). */ +/* Default value for SHARED_LOCK_TRACE macro if shared-cache is disabled +** or if the lock tracking is disabled. This is always the value for +** release builds. + */ + // C documentation // // /* @@ -45700,9 +45962,9 @@ func _querySharedCacheTableLock(tls *libc.TLS, p uintptr, iTab TPgno, eLock Tu8) ** may hold a WRITE_LOCK on any table in this file (since there can ** only be a single writer). */ - if (*TBtLock)(unsafe.Pointer(pIter)).FpBtree != p && (*TBtLock)(unsafe.Pointer(pIter)).FiTable == iTab && int32((*TBtLock)(unsafe.Pointer(pIter)).FeLock) != int32(eLock) { + if (*TBtLock)(unsafe.Pointer(pIter)).FpBtree != p && (*TBtLock)(unsafe.Pointer(pIter)).FiTable == iTab && int32((*TBtLock)(unsafe.Pointer(pIter)).FeLock) != int32(int32(eLock)) { _sqlite3ConnectionBlocked(tls, (*TBtree)(unsafe.Pointer(p)).Fdb, (*TBtree)(unsafe.Pointer((*TBtLock)(unsafe.Pointer(pIter)).FpBtree)).Fdb) - if int32(eLock) == int32(WRITE_LOCK) { + if int32(int32(eLock)) == int32(WRITE_LOCK) { p2 = pBt + 40 *(*Tu16)(unsafe.Pointer(p2)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p2))) | libc.Int32FromInt32(BTS_PENDING)) } @@ -45778,7 +46040,7 @@ func _setSharedCacheTableLock(tls *libc.TLS, p uintptr, iTable TPgno, eLock Tu8) ** and the requested lock. This means if a write-lock was already held ** and a read-lock requested, we don't incorrectly downgrade the lock. */ - if int32(eLock) > int32((*TBtLock)(unsafe.Pointer(pLock)).FeLock) { + if int32(int32(eLock)) > int32((*TBtLock)(unsafe.Pointer(pLock)).FeLock) { (*TBtLock)(unsafe.Pointer(pLock)).FeLock = eLock } return SQLITE_OK @@ -46211,9 +46473,9 @@ func _btreeMoveto(tls *libc.TLS, pCur uintptr, pKey uintptr, nKey Ti64, bias int if pIdxKey == uintptr(0) { return int32(SQLITE_NOMEM) } - _sqlite3VdbeRecordUnpack(tls, pKeyInfo, int32(nKey), pKey, pIdxKey) + _sqlite3VdbeRecordUnpack(tls, pKeyInfo, int32(int32(nKey)), pKey, pIdxKey) if int32((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) == 0 || int32((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) > int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(71032)) + rc = _sqlite3CorruptError(tls, int32(71421)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } @@ -46336,7 +46598,7 @@ func _sqlite3BtreeCursorRestore(tls *libc.TLS, pCur uintptr, pDifferentRow uintp // ** Provide flag hints to the cursor. // */ func _sqlite3BtreeCursorHintFlags(tls *libc.TLS, pCur uintptr, x uint32) { - (*TBtCursor)(unsafe.Pointer(pCur)).Fhints = uint8(x) + (*TBtCursor)(unsafe.Pointer(pCur)).Fhints = uint8(uint8(x)) } // C documentation @@ -46358,9 +46620,9 @@ func _ptrmapPageno(tls *libc.TLS, pBt uintptr, pgno TPgno) (r TPgno) { return uint32(0) } nPagesPerMapPage = int32((*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(5) + uint32(1)) - iPtrMap = (pgno - uint32(2)) / uint32(nPagesPerMapPage) - ret = iPtrMap*uint32(nPagesPerMapPage) + uint32(2) - if ret == uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { + iPtrMap = (pgno - uint32(2)) / uint32(uint32(nPagesPerMapPage)) + ret = iPtrMap*uint32(uint32(nPagesPerMapPage)) + uint32(2) + if ret == uint32(uint32(_sqlite3PendingByte))/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { ret++ } return ret @@ -46391,7 +46653,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, } /* The super-journal page number must never be used as a pointer map page */ if key == uint32(0) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71230)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71619)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -46404,16 +46666,16 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, /* The first byte of the extra data is the MemPage.isInit byte. ** If that byte is set, it means this page is also being used ** as a btree page. */ - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71243)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71632)) goto ptrmap_exit } offset = int32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71248)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71637)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) - if int32(eType) != int32(*(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset)))) || _sqlite3Get4byte(tls, pPtrmap+uintptr(offset+int32(1))) != parent { + if int32(int32(eType)) != int32(*(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset)))) || _sqlite3Get4byte(tls, pPtrmap+uintptr(offset+int32(1))) != parent { v1 = _sqlite3PagerWrite(tls, *(*uintptr)(unsafe.Pointer(bp))) rc = v1 *(*int32)(unsafe.Pointer(pRC)) = v1 @@ -46422,6 +46684,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _sqlite3Put4byte(tls, pPtrmap+uintptr(offset+int32(1)), parent) } } + goto ptrmap_exit ptrmap_exit: ; _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -46444,15 +46707,15 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin var _ /* pDbPage at bp+0 */ uintptr _, _, _, _ = iPtrmap, offset, pPtrmap, rc iPtrmap = int32(_ptrmapPageno(tls, pBt, key)) - rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, uint32(iPtrmap), bp, 0) + rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, uint32(uint32(iPtrmap)), bp, 0) if rc != 0 { return rc } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) - offset = int32(libc.Uint32FromInt32(5) * (key - uint32(iPtrmap) - libc.Uint32FromInt32(1))) + offset = int32(libc.Uint32FromInt32(5) * (key - uint32(uint32(iPtrmap)) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(71293)) + return _sqlite3CorruptError(tls, int32(71682)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -46460,7 +46723,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if int32(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || int32(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(71301)) + return _sqlite3CorruptError(tls, int32(71690)) } return SQLITE_OK } @@ -46489,13 +46752,13 @@ func _btreeParseCellAdjustSizeForOverflow(tls *libc.TLS, pPage uintptr, pCell ui _, _, _ = maxLocal, minLocal, surplus /* Overflow payload available for local storage */ minLocal = int32((*TMemPage)(unsafe.Pointer(pPage)).FminLocal) maxLocal = int32((*TMemPage)(unsafe.Pointer(pPage)).FmaxLocal) - surplus = int32(uint32(minLocal) + ((*TCellInfo)(unsafe.Pointer(pInfo)).FnPayload-uint32(minLocal))%((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4))) + surplus = int32(uint32(uint32(minLocal)) + ((*TCellInfo)(unsafe.Pointer(pInfo)).FnPayload-uint32(uint32(minLocal)))%((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4))) if surplus <= maxLocal { - (*TCellInfo)(unsafe.Pointer(pInfo)).FnLocal = uint16(surplus) + (*TCellInfo)(unsafe.Pointer(pInfo)).FnLocal = uint16(uint16(surplus)) } else { - (*TCellInfo)(unsafe.Pointer(pInfo)).FnLocal = uint16(minLocal) + (*TCellInfo)(unsafe.Pointer(pInfo)).FnLocal = uint16(uint16(minLocal)) } - (*TCellInfo)(unsafe.Pointer(pInfo)).FnSize = uint16(int32(uint16(t__predefined_ptrdiff_t((*TCellInfo)(unsafe.Pointer(pInfo)).FpPayload+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnLocal))-int64(pCell))) + int32(4)) + (*TCellInfo)(unsafe.Pointer(pInfo)).FnSize = uint16(int32(uint16(t__predefined_ptrdiff_t((*TCellInfo)(unsafe.Pointer(pInfo)).FpPayload+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnLocal))-int64(int64(pCell)))) + int32(4)) } // C documentation @@ -46508,11 +46771,11 @@ func _btreePayloadToLocal(tls *libc.TLS, pPage uintptr, nPayload Ti64) (r int32) var maxLocal, minLocal, surplus, v1 int32 _, _, _, _ = maxLocal, minLocal, surplus, v1 /* Maximum amount of payload held locally */ maxLocal = int32((*TMemPage)(unsafe.Pointer(pPage)).FmaxLocal) - if nPayload <= int64(maxLocal) { - return int32(nPayload) + if nPayload <= int64(int64(maxLocal)) { + return int32(int32(nPayload)) } else { /* Overflow payload available for local storage */ minLocal = int32((*TMemPage)(unsafe.Pointer(pPage)).FminLocal) - surplus = int32(int64(minLocal) + (nPayload-int64(minLocal))%int64((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-libc.Uint32FromInt32(4))) + surplus = int32(int64(int64(minLocal)) + (nPayload-int64(int64(minLocal)))%int64((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-libc.Uint32FromInt32(4))) if surplus <= maxLocal { v1 = surplus } else { @@ -46588,43 +46851,43 @@ func _btreeParseCellPtr(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp v2 = *(*Tu8)(unsafe.Pointer(v3)) x = v2 *(*Tu64)(unsafe.Pointer(bp)) = *(*Tu64)(unsafe.Pointer(bp))<= int32(0x80) { + if int32(int32(x)) >= int32(0x80) { pIter++ v5 = pIter v4 = *(*Tu8)(unsafe.Pointer(v5)) x = v4 *(*Tu64)(unsafe.Pointer(bp)) = *(*Tu64)(unsafe.Pointer(bp))<= int32(0x80) { + if int32(int32(x)) >= int32(0x80) { pIter++ v7 = pIter v6 = *(*Tu8)(unsafe.Pointer(v7)) x = v6 *(*Tu64)(unsafe.Pointer(bp)) = *(*Tu64)(unsafe.Pointer(bp))<= int32(0x80) { + if int32(int32(x)) >= int32(0x80) { pIter++ v9 = pIter v8 = *(*Tu8)(unsafe.Pointer(v9)) x = v8 *(*Tu64)(unsafe.Pointer(bp)) = *(*Tu64)(unsafe.Pointer(bp))<= int32(0x80) { + if int32(int32(x)) >= int32(0x80) { pIter++ v11 = pIter v10 = *(*Tu8)(unsafe.Pointer(v11)) x = v10 *(*Tu64)(unsafe.Pointer(bp)) = *(*Tu64)(unsafe.Pointer(bp))<= int32(0x80) { + if int32(int32(x)) >= int32(0x80) { pIter++ v13 = pIter v12 = *(*Tu8)(unsafe.Pointer(v13)) x = v12 *(*Tu64)(unsafe.Pointer(bp)) = *(*Tu64)(unsafe.Pointer(bp))<= int32(0x80) { + if int32(int32(x)) >= int32(0x80) { pIter++ v15 = pIter v14 = *(*Tu8)(unsafe.Pointer(v15)) x = v14 *(*Tu64)(unsafe.Pointer(bp)) = *(*Tu64)(unsafe.Pointer(bp))<= int32(0x80) { + if int32(int32(x)) >= int32(0x80) { pIter++ v16 = pIter *(*Tu64)(unsafe.Pointer(bp)) = *(*Tu64)(unsafe.Pointer(bp))< uint32((*TMemPage)(unsafe.Pointer(pPage)).FmaxLocal) { - nSize = uint32(minLocal) + nSize = uint32(uint32(minLocal)) } - nSize += uint32(int32(4) + int32(uint16(int64(pIter)-int64(pCell)))) + nSize += uint32(int32(4) + int32(uint16(int64(int64(pIter))-int64(int64(pCell))))) } - return uint16(nSize) + return uint16(uint16(nSize)) } func _cellSizePtrIdxLeaf(tls *libc.TLS, pPage uintptr, pCell uintptr) (r Tu16) { @@ -46759,19 +47022,19 @@ func _cellSizePtrIdxLeaf(tls *libc.TLS, pPage uintptr, pCell uintptr) (r Tu16) { } pIter++ if nSize <= uint32((*TMemPage)(unsafe.Pointer(pPage)).FmaxLocal) { - nSize += uint32(int64(pIter) - int64(pCell)) + nSize += uint32(int64(int64(pIter)) - int64(int64(pCell))) if nSize < uint32(4) { nSize = uint32(4) } } else { minLocal = int32((*TMemPage)(unsafe.Pointer(pPage)).FminLocal) - nSize = uint32(minLocal) + (nSize-uint32(minLocal))%((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4)) + nSize = uint32(uint32(minLocal)) + (nSize-uint32(uint32(minLocal)))%((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4)) if nSize > uint32((*TMemPage)(unsafe.Pointer(pPage)).FmaxLocal) { - nSize = uint32(minLocal) + nSize = uint32(uint32(minLocal)) } - nSize += uint32(int32(4) + int32(uint16(int64(pIter)-int64(pCell)))) + nSize += uint32(int32(4) + int32(uint16(int64(int64(pIter))-int64(int64(pCell))))) } - return uint16(nSize) + return uint16(uint16(nSize)) } func _cellSizePtrNoPayload(tls *libc.TLS, pPage uintptr, pCell uintptr) (r Tu16) { @@ -46787,7 +47050,7 @@ func _cellSizePtrNoPayload(tls *libc.TLS, pPage uintptr, pCell uintptr) (r Tu16) break } } - return uint16(int64(pIter) - int64(pCell)) + return uint16(int64(int64(pIter)) - int64(int64(pCell))) } func _cellSizePtrTableLeaf(tls *libc.TLS, pPage uintptr, pCell uintptr) (r Tu16) { @@ -46845,19 +47108,19 @@ func _cellSizePtrTableLeaf(tls *libc.TLS, pPage uintptr, pCell uintptr) (r Tu16) pIter++ } if nSize <= uint32((*TMemPage)(unsafe.Pointer(pPage)).FmaxLocal) { - nSize += uint32(int64(pIter) - int64(pCell)) + nSize += uint32(int64(int64(pIter)) - int64(int64(pCell))) if nSize < uint32(4) { nSize = uint32(4) } } else { minLocal = int32((*TMemPage)(unsafe.Pointer(pPage)).FminLocal) - nSize = uint32(minLocal) + (nSize-uint32(minLocal))%((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4)) + nSize = uint32(uint32(minLocal)) + (nSize-uint32(uint32(minLocal)))%((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4)) if nSize > uint32((*TMemPage)(unsafe.Pointer(pPage)).FmaxLocal) { - nSize = uint32(minLocal) + nSize = uint32(uint32(minLocal)) } - nSize += uint32(int32(4) + int32(uint16(int64(pIter)-int64(pCell)))) + nSize += uint32(int32(4) + int32(uint16(int64(int64(pIter))-int64(int64(pCell))))) } - return uint16(nSize) + return uint16(uint16(nSize)) } // C documentation @@ -46880,7 +47143,7 @@ func _ptrmapPutOvflPtr(tls *libc.TLS, pPage uintptr, pSrc uintptr, pCell uintptr (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if uint64(pCell) < uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) && uint64(pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal)) > uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71741)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72130)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(int32((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -46920,12 +47183,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71799)) + return _sqlite3CorruptError(tls, int32(72188)) } if iFree != 0 { iFree2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71802)) + return _sqlite3CorruptError(tls, int32(72191)) } if 0 == iFree2 || int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -46933,21 +47196,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(71810)) + return _sqlite3CorruptError(tls, int32(72199)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(71813)) + return _sqlite3CorruptError(tls, int32(72202)) } sz2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(71815)) + return _sqlite3CorruptError(tls, int32(72204)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), uint64(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(71819)) + return _sqlite3CorruptError(tls, int32(72208)) } } cbrk = top + sz @@ -46981,7 +47244,7 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { iCellStart = int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))))< 0 { temp = _sqlite3PagerTempSpace(tls, (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FpPager) - libc.Xmemcpy(tls, temp, data, uint64(usableSize)) + libc.Xmemcpy(tls, temp, data, uint64(uint64(usableSize))) src = temp i = 0 for { @@ -46994,16 +47257,16 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { ** if PRAGMA cell_size_check=ON. */ if pc > iCellLast { - return _sqlite3CorruptError(tls, int32(71852)) + return _sqlite3CorruptError(tls, int32(72241)) } size = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, src+uintptr(pc))) cbrk -= size if cbrk < iCellStart || pc+size > usableSize { - return _sqlite3CorruptError(tls, int32(71858)) + return _sqlite3CorruptError(tls, int32(72247)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = uint8(cbrk) - libc.Xmemcpy(tls, data+uintptr(cbrk), src+uintptr(pc), uint64(size)) + libc.Xmemcpy(tls, data+uintptr(cbrk), src+uintptr(pc), uint64(uint64(size))) goto _2 _2: ; @@ -47011,10 +47274,11 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { } } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))) = uint8(0) + goto defragment_out defragment_out: ; if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(71872)) + return _sqlite3CorruptError(tls, int32(72261)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = uint8(cbrk) @@ -47044,12 +47308,12 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint var aData, pTmp, p2 uintptr var hdr, iAddr, maxPC, pc, size, x, v1 int32 _, _, _, _, _, _, _, _, _, _ = aData, hdr, iAddr, maxPC, pTmp, pc, size, x, v1, p2 - hdr = int32((*TMemPage)(unsafe.Pointer(pPg)).FhdrOffset) /* Offset to page header */ - aData = (*TMemPage)(unsafe.Pointer(pPg)).FaData /* Page data */ - iAddr = hdr + int32(1) /* Address of ptr to pc */ - pTmp = aData + uintptr(iAddr) /* Temporary ptr into aData[] */ - pc = int32(*(*Tu8)(unsafe.Pointer(pTmp)))< maxPC { /* This slot extends off the end of the usable part of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71929)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72318)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -47091,14 +47355,14 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint if pc <= iAddr { if pc != 0 { /* The next slot in the chain comes before the current slot */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71944)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72333)) } return uintptr(0) } } if pc > maxPC+nByte-int32(4) { /* The free slot chain extends off the end of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71951)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72340)) } return uintptr(0) } @@ -47141,11 +47405,11 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r if top == 0 && (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize == uint32(65536) { top = int32(65536) } else { - return _sqlite3CorruptError(tls, int32(71999)) + return _sqlite3CorruptError(tls, int32(72388)) } } else { if top > int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(72002)) + return _sqlite3CorruptError(tls, int32(72391)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -47155,11 +47419,11 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r if (*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(2)))) != 0 || *(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))) != 0) && gap+int32(2) <= top { pSpace = _pageFindSlot(tls, pPage, nByte, bp) if pSpace != 0 { - v1 = int32(int64(pSpace) - int64(data)) + v1 = int32(int64(int64(pSpace)) - int64(int64(data))) g2 = v1 *(*int32)(unsafe.Pointer(pIdx)) = v1 if g2 <= gap { - return _sqlite3CorruptError(tls, int32(72019)) + return _sqlite3CorruptError(tls, int32(72408)) } else { return SQLITE_OK } @@ -47221,33 +47485,33 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) _, _, _, _, _, _, _, _, _, _, _, _ = data, hdr, iEnd, iFreeBlk, iOrigSize, iPtr, iPtrEnd, nFrag, pTmp, x, v1, p2 /* Page header size. 0 or 100 */ nFrag = uint8(0) /* Reduction in fragmentation */ iOrigSize = iSize /* Offset to cell content area */ - iEnd = uint32(int32(iStart) + int32(iSize)) /* First byte past the iStart buffer */ + iEnd = uint32(int32(int32(iStart)) + int32(int32(iSize))) /* First byte past the iStart buffer */ data = (*TMemPage)(unsafe.Pointer(pPage)).FaData /* Temporary ptr into data[] */ /* Minimum cell size is 4 */ /* The list of freeblocks must be in ascending order. Find the ** spot on the list where iStart should be inserted. */ hdr = (*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset - iPtr = uint16(int32(hdr) + int32(1)) - if int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iPtr)+int32(1))))) == 0 && int32(*(*uint8)(unsafe.Pointer(data + uintptr(iPtr)))) == 0 { + iPtr = uint16(int32(int32(hdr)) + int32(1)) + if int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(int32(iPtr))+int32(1))))) == 0 && int32(*(*uint8)(unsafe.Pointer(data + uintptr(iPtr)))) == 0 { iFreeBlk = uint16(0) /* Shortcut for the case when the freelist is empty */ } else { for { v1 = uint16(int32(*(*uint8)(unsafe.Pointer(data + uintptr(iPtr))))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(72103)) + if uint32(uint32(iFreeBlk)) > (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4) { /* TH3: corrupt081.100 */ + return _sqlite3CorruptError(tls, int32(72492)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -47255,70 +47519,70 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) ** ** Check to see if iFreeBlk should be coalesced onto the end of iStart. */ - if iFreeBlk != 0 && iEnd+uint32(3) >= uint32(iFreeBlk) { - nFrag = uint8(uint32(iFreeBlk) - iEnd) - if iEnd > uint32(iFreeBlk) { - return _sqlite3CorruptError(tls, int32(72115)) + if iFreeBlk != 0 && iEnd+uint32(3) >= uint32(uint32(iFreeBlk)) { + nFrag = uint8(uint32(uint32(iFreeBlk)) - iEnd) + if iEnd > uint32(uint32(iFreeBlk)) { + return _sqlite3CorruptError(tls, int32(72504)) } - iEnd = uint32(int32(iFreeBlk) + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iFreeBlk)+int32(2)))))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - return _sqlite3CorruptError(tls, int32(72118)) + return _sqlite3CorruptError(tls, int32(72507)) } - iSize = uint16(iEnd - uint32(iStart)) + iSize = uint16(iEnd - uint32(uint32(iStart))) iFreeBlk = uint16(int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))< int32(hdr)+int32(1) { - iPtrEnd = int32(iPtr) + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iPtr)+int32(2)))))<= int32(iStart) { - if iPtrEnd > int32(iStart) { - return _sqlite3CorruptError(tls, int32(72131)) + if int32(int32(iPtr)) > int32(int32(hdr))+int32(1) { + iPtrEnd = int32(int32(iPtr)) + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(int32(iPtr))+int32(2)))))<= int32(int32(iStart)) { + if iPtrEnd > int32(int32(iStart)) { + return _sqlite3CorruptError(tls, int32(72520)) } - nFrag = Tu8(int32(nFrag) + (int32(iStart) - iPtrEnd)) - iSize = uint16(iEnd - uint32(iPtr)) + nFrag = Tu8(int32(nFrag) + (int32(int32(iStart)) - iPtrEnd)) + iSize = uint16(iEnd - uint32(uint32(iPtr))) iStart = iPtr } } - if int32(nFrag) > int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(72137)) + if int32(int32(nFrag)) > int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(int32(hdr))+int32(7))))) { + return _sqlite3CorruptError(tls, int32(72526)) } - p2 = data + uintptr(int32(hdr)+int32(7)) - *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - int32(nFrag)) + p2 = data + uintptr(int32(int32(hdr))+int32(7)) + *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - int32(int32(nFrag))) } - pTmp = data + uintptr(int32(hdr)+int32(5)) + pTmp = data + uintptr(int32(int32(hdr))+int32(5)) x = uint16(int32(*(*Tu8)(unsafe.Pointer(pTmp)))<> libc.Int32FromInt32(8)) - *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)) + 1)) = uint8(iFreeBlk) - *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(5)))) = uint8(iEnd >> libc.Int32FromInt32(8)) - *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(5)) + 1)) = uint8(iEnd) + *(*uint8)(unsafe.Pointer(data + uintptr(int32(int32(hdr))+int32(1)))) = uint8(int32(iFreeBlk) >> libc.Int32FromInt32(8)) + *(*uint8)(unsafe.Pointer(data + uintptr(int32(int32(hdr))+int32(1)) + 1)) = uint8(iFreeBlk) + *(*uint8)(unsafe.Pointer(data + uintptr(int32(int32(hdr))+int32(5)))) = uint8(iEnd >> libc.Int32FromInt32(8)) + *(*uint8)(unsafe.Pointer(data + uintptr(int32(int32(hdr))+int32(5)) + 1)) = uint8(iEnd) } else { /* Insert the new freeblock into the freelist */ *(*uint8)(unsafe.Pointer(data + uintptr(iPtr))) = uint8(int32(iStart) >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(iPtr) + 1)) = uint8(iStart) *(*uint8)(unsafe.Pointer(data + uintptr(iStart))) = uint8(int32(iFreeBlk) >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(iStart) + 1)) = uint8(iFreeBlk) - *(*uint8)(unsafe.Pointer(data + uintptr(int32(iStart)+int32(2)))) = uint8(int32(iSize) >> libc.Int32FromInt32(8)) - *(*uint8)(unsafe.Pointer(data + uintptr(int32(iStart)+int32(2)) + 1)) = uint8(iSize) + *(*uint8)(unsafe.Pointer(data + uintptr(int32(int32(iStart))+int32(2)))) = uint8(int32(iSize) >> libc.Int32FromInt32(8)) + *(*uint8)(unsafe.Pointer(data + uintptr(int32(int32(iStart))+int32(2)) + 1)) = uint8(iSize) } - *(*int32)(unsafe.Pointer(pPage + 20)) += int32(iOrigSize) + *(*int32)(unsafe.Pointer(pPage + 20)) += int32(int32(iOrigSize)) return SQLITE_OK } @@ -47364,7 +47628,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtrIdxLeaf) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72206)) + return _sqlite3CorruptError(tls, int32(72595)) } } } else { @@ -47390,7 +47654,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtr) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72230)) + return _sqlite3CorruptError(tls, int32(72619)) } } } @@ -47415,42 +47679,42 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-58015-48175 The two-byte integer at offset 5 designates ** the start of the cell content area. A zero value for this integer is ** interpreted as 65536. */ - top = (int32(*(*Tu8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(5)))))< 0 { if pc < top { /* EVIDENCE-OF: R-55530-52930 In a well-formed b-tree page, there will ** always be at least one cell before the first freeblock. */ - return _sqlite3CorruptError(tls, int32(72281)) + return _sqlite3CorruptError(tls, int32(72670)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(72286)) + return _sqlite3CorruptError(tls, int32(72675)) } next = uint32(int32(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(72296)) + return _sqlite3CorruptError(tls, int32(72685)) } - if uint32(pc)+size > uint32(usableSize) { + if uint32(uint32(pc))+size > uint32(uint32(usableSize)) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(72300)) + return _sqlite3CorruptError(tls, int32(72689)) } } /* At this point, nFree contains the sum of the offset to the start @@ -47461,7 +47725,7 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { ** area, according to the page header, lies within the page. */ if nFree > usableSize || nFree < iCellFirst { - return _sqlite3CorruptError(tls, int32(72312)) + return _sqlite3CorruptError(tls, int32(72701)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16(nFree - iCellFirst)) return SQLITE_OK @@ -47492,11 +47756,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))) if pc < iCellFirst || pc > iCellLast { - return _sqlite3CorruptError(tls, int32(72343)) + return _sqlite3CorruptError(tls, int32(72732)) } sz = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, data+uintptr(pc))) if pc+sz > usableSize { - return _sqlite3CorruptError(tls, int32(72348)) + return _sqlite3CorruptError(tls, int32(72737)) } goto _1 _1: @@ -47525,7 +47789,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-28594-02890 The one-byte flag at offset 0 indicating ** the b-tree page type. */ if _decodeFlags(tls, pPage, int32(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(72380)) + return _sqlite3CorruptError(tls, int32(72769)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -47538,7 +47802,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = uint16(int32(*(*Tu8)(unsafe.Pointer(data + 3)))< ((*TBtShared)(unsafe.Pointer(pBt)).FpageSize-uint32(8))/uint32(6) { /* To many cells for a single page. The page must be corrupt */ - return _sqlite3CorruptError(tls, int32(72394)) + return _sqlite3CorruptError(tls, int32(72783)) } /* EVIDENCE-OF: R-24089-57979 If a page contains no cells (which is only ** possible for a root page of a table that contains no rows) then the @@ -47568,20 +47832,20 @@ func _zeroPage(tls *libc.TLS, pPage uintptr, flags int32) { pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt hdr = (*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset if int32((*TBtShared)(unsafe.Pointer(pBt)).FbtsFlags)&int32(BTS_FAST_SECURE) != 0 { - libc.Xmemset(tls, data+uintptr(hdr), 0, uint64((*TBtShared)(unsafe.Pointer(pBt)).FusableSize-uint32(hdr))) + libc.Xmemset(tls, data+uintptr(hdr), 0, uint64((*TBtShared)(unsafe.Pointer(pBt)).FusableSize-uint32(uint32(hdr)))) } - *(*uint8)(unsafe.Pointer(data + uintptr(hdr))) = uint8(int8(flags)) + *(*uint8)(unsafe.Pointer(data + uintptr(hdr))) = uint8(int8(int8(flags))) if flags&int32(PTF_LEAF) == 0 { v1 = int32(12) } else { v1 = int32(8) } - first = uint16(int32(hdr) + v1) - libc.Xmemset(tls, data+uintptr(int32(hdr)+int32(1)), 0, uint64(4)) - *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(7)))) = uint8(0) - *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(5)))) = uint8((*TBtShared)(unsafe.Pointer(pBt)).FusableSize >> libc.Int32FromInt32(8)) - *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(5)) + 1)) = uint8((*TBtShared)(unsafe.Pointer(pBt)).FusableSize) - (*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16((*TBtShared)(unsafe.Pointer(pBt)).FusableSize - uint32(first))) + first = uint16(int32(int32(hdr)) + v1) + libc.Xmemset(tls, data+uintptr(int32(int32(hdr))+int32(1)), 0, uint64(4)) + *(*uint8)(unsafe.Pointer(data + uintptr(int32(int32(hdr))+int32(7)))) = uint8(0) + *(*uint8)(unsafe.Pointer(data + uintptr(int32(int32(hdr))+int32(5)))) = uint8((*TBtShared)(unsafe.Pointer(pBt)).FusableSize >> libc.Int32FromInt32(8)) + *(*uint8)(unsafe.Pointer(data + uintptr(int32(int32(hdr))+int32(5)) + 1)) = uint8((*TBtShared)(unsafe.Pointer(pBt)).FusableSize) + (*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16((*TBtShared)(unsafe.Pointer(pBt)).FusableSize - uint32(uint32(first)))) _decodeFlags(tls, pPage, flags) (*TMemPage)(unsafe.Pointer(pPage)).FcellOffset = first (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd = data + uintptr((*TBtShared)(unsafe.Pointer(pBt)).FpageSize) @@ -47691,7 +47955,7 @@ func _getAndInitPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, bRe _, _ = pPage, rc if pgno > _btreePagecount(tls, pBt) { *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72537)) + return _sqlite3CorruptError(tls, int32(72926)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -47753,7 +48017,7 @@ func _btreeGetUnusedPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FpDbPage) > int32(1) { _releasePage(tls, *(*uintptr)(unsafe.Pointer(ppPage))) *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72609)) + return _sqlite3CorruptError(tls, int32(72998)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -47841,7 +48105,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt /* Set the variable isMemdb to true for an in-memory database, or ** false for a file-based database. */ - isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4194) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) + isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4258) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) /* flags fit in 8 bits */ /* Only a BTREE_SINGLE database can be BTREE_UNORDERED */ /* A BTREE_SINGLE database is always a temporary and/or ephemeral */ @@ -47879,7 +48143,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt return int32(SQLITE_NOMEM) } if isMemdb != 0 { - libc.Xmemcpy(tls, zFullPathname, zFilename, uint64(nFilename)) + libc.Xmemcpy(tls, zFullPathname, zFilename, uint64(uint64(nFilename))) } else { rc = _sqlite3OsFullPathname(tls, pVfs, zFilename, nFullPathname, zFullPathname) if rc != 0 { @@ -47954,7 +48218,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt if rc != SQLITE_OK { goto btree_open_out } - (*TBtShared)(unsafe.Pointer(pBt)).FopenFlags = uint8(flags) + (*TBtShared)(unsafe.Pointer(pBt)).FopenFlags = uint8(uint8(flags)) (*TBtShared)(unsafe.Pointer(pBt)).Fdb = db _sqlite3PagerSetBusyHandler(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, __ccgo_fp(_btreeInvokeBusyHandler), pBt) (*TBtree)(unsafe.Pointer(p)).FpBt = pBt @@ -48001,11 +48265,11 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt } (*TBtShared)(unsafe.Pointer(pBt)).FincrVacuum = uint8(v7) } - rc = _sqlite3PagerSetPagesize(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pBt+52, int32(nReserve)) + rc = _sqlite3PagerSetPagesize(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pBt+52, int32(int32(nReserve))) if rc != 0 { goto btree_open_out } - (*TBtShared)(unsafe.Pointer(pBt)).FusableSize = (*TBtShared)(unsafe.Pointer(pBt)).FpageSize - uint32(nReserve) + (*TBtShared)(unsafe.Pointer(pBt)).FusableSize = (*TBtShared)(unsafe.Pointer(pBt)).FpageSize - uint32(uint32(nReserve)) /* 8-byte alignment of pageSize */ /* Add the new BtShared object to the linked list sharable BtShareds. */ @@ -48065,6 +48329,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt } } *(*uintptr)(unsafe.Pointer(ppBtree)) = p + goto btree_open_out btree_open_out: ; if rc != SQLITE_OK { @@ -48335,7 +48600,7 @@ func _sqlite3BtreeSetPageSize(tls *libc.TLS, p uintptr, pageSize int32, nReserve rc = SQLITE_OK pBt = (*TBtree)(unsafe.Pointer(p)).FpBt _sqlite3BtreeEnter(tls, p) - (*TBtShared)(unsafe.Pointer(pBt)).FnReserveWanted = uint8(nReserve) + (*TBtShared)(unsafe.Pointer(pBt)).FnReserveWanted = uint8(uint8(nReserve)) x = int32((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - (*TBtShared)(unsafe.Pointer(pBt)).FusableSize) if nReserve < x { nReserve = x @@ -48348,11 +48613,11 @@ func _sqlite3BtreeSetPageSize(tls *libc.TLS, p uintptr, pageSize int32, nReserve if nReserve > int32(32) && pageSize == int32(512) { pageSize = int32(1024) } - (*TBtShared)(unsafe.Pointer(pBt)).FpageSize = uint32(pageSize) + (*TBtShared)(unsafe.Pointer(pBt)).FpageSize = uint32(uint32(pageSize)) _freeTempSpace(tls, pBt) } rc = _sqlite3PagerSetPagesize(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pBt+52, nReserve) - (*TBtShared)(unsafe.Pointer(pBt)).FusableSize = (*TBtShared)(unsafe.Pointer(pBt)).FpageSize - uint32(uint16(nReserve)) + (*TBtShared)(unsafe.Pointer(pBt)).FusableSize = (*TBtShared)(unsafe.Pointer(pBt)).FpageSize - uint32(uint16(uint16(nReserve))) if iFix != 0 { p1 = pBt + 40 *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(BTS_PAGESIZE_FIXED)) @@ -48487,7 +48752,7 @@ func _sqlite3BtreeSetAutoVacuum(tls *libc.TLS, p uintptr, autoVacuum int32) (r i _, _, _, _, _, _, _ = av, pBt, rc, v1, v2, v3, v4 pBt = (*TBtree)(unsafe.Pointer(p)).FpBt rc = SQLITE_OK - av = uint8(autoVacuum) + av = uint8(uint8(autoVacuum)) _sqlite3BtreeEnter(tls, p) if v2 = int32((*TBtShared)(unsafe.Pointer(pBt)).FbtsFlags)&int32(BTS_PAGESIZE_FIXED) != 0; v2 { if av != 0 { @@ -48505,7 +48770,7 @@ func _sqlite3BtreeSetAutoVacuum(tls *libc.TLS, p uintptr, autoVacuum int32) (r i v3 = 0 } (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum = uint8(v3) - if int32(av) == int32(2) { + if int32(int32(av)) == int32(2) { v4 = int32(1) } else { v4 = 0 @@ -48626,7 +48891,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { ** The original design allowed these amounts to vary, but as of ** version 3.6.0, we require them to be fixed. */ - if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4203, uint64(3)) != 0 { + if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4267, uint64(3)) != 0 { goto page1_init_failed } /* EVIDENCE-OF: R-51873-39618 The page size for a database file is @@ -48664,7 +48929,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { } if nPage > *(*Tu32)(unsafe.Pointer(bp + 8)) { if _sqlite3WritableSchema(tls, (*TBtShared)(unsafe.Pointer(pBt)).Fdb) == 0 { - rc = _sqlite3CorruptError(tls, int32(73547)) + rc = _sqlite3CorruptError(tls, int32(73936)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -48718,6 +48983,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 = *(*uintptr)(unsafe.Pointer(bp)) (*TBtShared)(unsafe.Pointer(pBt)).FnPage = nPage return SQLITE_OK + goto page1_init_failed page1_init_failed: ; _releasePageOne(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -48987,6 +49253,7 @@ func _btreeBeginTrans(tls *libc.TLS, p uintptr, wrflag int32, pSchemaVersion uin } } } + goto trans_begun trans_begun: ; if rc == SQLITE_OK { @@ -49100,10 +49367,10 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT var pCell uintptr var _ /* info at bp+0 */ TCellInfo _, _, _, _, _ = i, nCell, pCell, rc, v1 - if int32(eType) == int32(PTRMAP_OVERFLOW2) { + if int32(int32(eType)) == int32(PTRMAP_OVERFLOW2) { /* The pointer is always the first 4 bytes of the page in this case. */ if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData) != iFrom { - return _sqlite3CorruptError(tls, int32(73995)) + return _sqlite3CorruptError(tls, int32(74384)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -49123,11 +49390,11 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT break } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*i)))))) - if int32(eType) == int32(PTRMAP_OVERFLOW1) { + if int32(int32(eType)) == int32(PTRMAP_OVERFLOW1) { (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74014)) + return _sqlite3CorruptError(tls, int32(74403)) } if iFrom == _sqlite3Get4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4)) { _sqlite3Put4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4), iTo) @@ -49136,7 +49403,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } } else { if pCell+uintptr(4) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74023)) + return _sqlite3CorruptError(tls, int32(74412)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -49149,8 +49416,8 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT i++ } if i == nCell { - if int32(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(74035)) + if int32(int32(eType)) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { + return _sqlite3CorruptError(tls, int32(74424)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -49180,7 +49447,7 @@ func _relocatePage(tls *libc.TLS, pBt uintptr, pDbPage uintptr, eType Tu8, iPtrP iDbPage = (*TMemPage)(unsafe.Pointer(pDbPage)).Fpgno pPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager if iDbPage < uint32(3) { - return _sqlite3CorruptError(tls, int32(74070)) + return _sqlite3CorruptError(tls, int32(74459)) } /* Move page iDbPage from its current location to page number iFreePage */ *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3PagerMovepage(tls, pPager, (*TMemPage)(unsafe.Pointer(pDbPage)).FpDbPage, iFreePage, isCommit) @@ -49196,7 +49463,7 @@ func _relocatePage(tls *libc.TLS, pBt uintptr, pDbPage uintptr, eType Tu8, iPtrP ** pointer to a subsequent overflow page. If this is the case, then ** the pointer map needs to be updated for the subsequent overflow page. */ - if int32(eType) == int32(PTRMAP_BTREE) || int32(eType) == int32(PTRMAP_ROOTPAGE) { + if int32(int32(eType)) == int32(PTRMAP_BTREE) || int32(int32(eType)) == int32(PTRMAP_ROOTPAGE) { *(*int32)(unsafe.Pointer(bp + 8)) = _setChildPtrmaps(tls, pDbPage) if *(*int32)(unsafe.Pointer(bp + 8)) != SQLITE_OK { return *(*int32)(unsafe.Pointer(bp + 8)) @@ -49214,7 +49481,7 @@ func _relocatePage(tls *libc.TLS, pBt uintptr, pDbPage uintptr, eType Tu8, iPtrP ** that it points at iFreePage. Also fix the pointer map entry for ** iPtrPage. */ - if int32(eType) != int32(PTRMAP_ROOTPAGE) { + if int32(int32(eType)) != int32(PTRMAP_ROOTPAGE) { *(*int32)(unsafe.Pointer(bp + 8)) = _btreeGetPage(tls, pBt, iPtrPage, bp, 0) if *(*int32)(unsafe.Pointer(bp + 8)) != SQLITE_OK { return *(*int32)(unsafe.Pointer(bp + 8)) @@ -49266,7 +49533,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom var _ /* pFreePg at bp+40 */ uintptr var _ /* pLastPg at bp+32 */ uintptr _, _, _, _, _ = dbSize, eMode, iNear, nFreeList, rc - if !(_ptrmapPageno(tls, pBt, iLastPg) == iLastPg) && iLastPg != uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { + if !(_ptrmapPageno(tls, pBt, iLastPg) == iLastPg) && iLastPg != uint32(uint32(_sqlite3PendingByte))/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { nFreeList = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) if nFreeList == uint32(0) { return int32(SQLITE_DONE) @@ -49276,7 +49543,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(74168)) + return _sqlite3CorruptError(tls, int32(74557)) } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -49314,7 +49581,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if *(*TPgno)(unsafe.Pointer(bp + 24)) > dbSize { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) - return _sqlite3CorruptError(tls, int32(74220)) + return _sqlite3CorruptError(tls, int32(74609)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -49325,7 +49592,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom } } if bCommit == 0 { - for cond := true; cond; cond = iLastPg == uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) || _ptrmapPageno(tls, pBt, iLastPg) == iLastPg { + for cond := true; cond; cond = iLastPg == uint32(uint32(_sqlite3PendingByte))/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) || _ptrmapPageno(tls, pBt, iLastPg) == iLastPg { iLastPg-- } (*TBtShared)(unsafe.Pointer(pBt)).FbDoTruncate = uint8(1) @@ -49346,12 +49613,12 @@ func _finalDbSize(tls *libc.TLS, pBt uintptr, nOrig TPgno, nFree TPgno) (r TPgno var nFin, nPtrmap TPgno _, _, _ = nEntry, nFin, nPtrmap /* Return value */ nEntry = int32((*TBtShared)(unsafe.Pointer(pBt)).FusableSize / uint32(5)) - nPtrmap = (nFree - nOrig + _ptrmapPageno(tls, pBt, nOrig) + uint32(nEntry)) / uint32(nEntry) + nPtrmap = (nFree - nOrig + _ptrmapPageno(tls, pBt, nOrig) + uint32(uint32(nEntry))) / uint32(uint32(nEntry)) nFin = nOrig - nFree - nPtrmap - if nOrig > uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) && nFin < uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { + if nOrig > uint32(uint32(_sqlite3PendingByte))/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) && nFin < uint32(uint32(_sqlite3PendingByte))/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { nFin-- } - for _ptrmapPageno(tls, pBt, nFin) == nFin || nFin == uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { + for _ptrmapPageno(tls, pBt, nFin) == nFin || nFin == uint32(uint32(_sqlite3PendingByte))/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { nFin-- } return nFin @@ -49381,7 +49648,7 @@ func _sqlite3BtreeIncrVacuum(tls *libc.TLS, p uintptr) (r int32) { nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) nFin = _finalDbSize(tls, pBt, nOrig, nFree) if nOrig < nFin || nFree >= nOrig { - rc = _sqlite3CorruptError(tls, int32(74288)) + rc = _sqlite3CorruptError(tls, int32(74677)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -49419,12 +49686,12 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { _invalidateAllOverflowCache(tls, pBt) if !((*TBtShared)(unsafe.Pointer(pBt)).FincrVacuum != 0) { /* Database size before freeing */ nOrig = _btreePagecount(tls, pBt) - if _ptrmapPageno(tls, pBt, nOrig) == nOrig || nOrig == uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { + if _ptrmapPageno(tls, pBt, nOrig) == nOrig || nOrig == uint32(uint32(_sqlite3PendingByte))/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { /* It is not possible to create a database for which the final page ** is either a pointer-map page or the pending-byte page. If one ** is encountered, this indicates corruption. */ - return _sqlite3CorruptError(tls, int32(74339)) + return _sqlite3CorruptError(tls, int32(74728)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -49454,7 +49721,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(74366)) + return _sqlite3CorruptError(tls, int32(74755)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -49920,7 +50187,7 @@ func _btreeCursor(tls *libc.TLS, p uintptr, iTable TPgno, wrFlag int32, pKeyInfo /* Assert that the caller has opened the required transaction. */ if iTable <= uint32(1) { if iTable < uint32(1) { - return _sqlite3CorruptError(tls, int32(74830)) + return _sqlite3CorruptError(tls, int32(75219)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -50120,7 +50387,7 @@ func _sqlite3BtreeCursorUnpin(tls *libc.TLS, pCur uintptr) { // */ func _sqlite3BtreeOffset(tls *libc.TLS, pCur uintptr) (r Ti64) { _getCellInfo(tls, pCur) - return int64((*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FpageSize)*(int64((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).Fpgno)-int64(1)) + (int64((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload) - int64((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FaData)) + return int64((*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FpageSize)*(int64((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).Fpgno)-int64(1)) + int64(int64((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload)-int64((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FaData)) } // C documentation @@ -50199,7 +50466,7 @@ func _getOverflowPage(tls *libc.TLS, pBt uintptr, ovfl TPgno, ppPage uintptr, pP */ if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 { iGuess = ovfl + uint32(1) - for _ptrmapPageno(tls, pBt, iGuess) == iGuess || iGuess == uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { + for _ptrmapPageno(tls, pBt, iGuess) == iGuess || iGuess == uint32(uint32(_sqlite3PendingByte))/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { iGuess++ } if iGuess <= _btreePagecount(tls, pBt) { @@ -50257,10 +50524,10 @@ func _copyPayload(tls *libc.TLS, pPayload uintptr, pBuf uintptr, nByte int32, eO if rc != SQLITE_OK { return rc } - libc.Xmemcpy(tls, pPayload, pBuf, uint64(nByte)) + libc.Xmemcpy(tls, pPayload, pBuf, uint64(uint64(nByte))) } else { /* Copy data from page to buffer (a read operation) */ - libc.Xmemcpy(tls, pBuf, pPayload, uint64(nByte)) + libc.Xmemcpy(tls, pBuf, pPayload, uint64(uint64(nByte))) } return SQLITE_OK } @@ -50312,28 +50579,28 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin pBt = (*TBtCursor)(unsafe.Pointer(pCur)).FpBt /* Btree this cursor belongs to */ pBufStart = pBuf /* Start of original out buffer */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(75235)) + return _sqlite3CorruptError(tls, int32(75624)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload - if uint64(int64(aPayload)-int64((*TMemPage)(unsafe.Pointer(pPage)).FaData)) > uint64((*TBtShared)(unsafe.Pointer(pBt)).FusableSize-uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal)) { + if uint64(int64(int64(aPayload))-int64((*TMemPage)(unsafe.Pointer(pPage)).FaData)) > uint64((*TBtShared)(unsafe.Pointer(pBt)).FusableSize-uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal)) { /* Trying to read or write past the end of the data is an error. The ** conditional above is really: ** &aPayload[pCur->info.nLocal] > &pPage->aData[pBt->usableSize] ** but is recast into its current form to avoid integer overflow problems */ - return _sqlite3CorruptError(tls, int32(75250)) + return _sqlite3CorruptError(tls, int32(75639)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { - a = int32(amt) - if uint32(a)+offset > uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { + a = int32(int32(amt)) + if uint32(uint32(a))+offset > uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { a = int32(uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) - offset) } rc = _copyPayload(tls, aPayload+uintptr(offset), pBuf, a, eOp, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) offset = uint32(0) pBuf += uintptr(a) - amt -= uint32(a) + amt -= uint32(uint32(a)) } else { offset -= uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) } @@ -50350,17 +50617,22 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_ValidOvfl) == 0 { nOvfl = int32(((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnPayload - uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) + ovflSize - uint32(1)) / ovflSize) if (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow == uintptr(0) || nOvfl*libc.Int32FromInt64(4) > _sqlite3MallocSize(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow) { - aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + if _sqlite3FaultSim(tls, int32(413)) != 0 { + aNew = uintptr(0) + } else { + aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(uint64(nOvfl*int32(2))*uint64(4))) + } if aNew == uintptr(0) { return int32(SQLITE_NOMEM) } else { (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow = aNew } } - libc.Xmemset(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, 0, uint64(nOvfl)*uint64(4)) + libc.Xmemset(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, 0, uint64(uint64(nOvfl))*uint64(4)) p1 = pCur + 1 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(BTCF_ValidOvfl)) } else { + /* Sanity check the validity of the overflow page cache */ /* If the overflow page-list cache has been allocated and the ** entry for the first required overflow page is valid, skip ** directly to it. @@ -50374,7 +50646,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin for *(*TPgno)(unsafe.Pointer(bp)) != 0 { /* If required, populate the overflow page-list cache. */ if *(*TPgno)(unsafe.Pointer(bp)) > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(75312)) + return _sqlite3CorruptError(tls, int32(75710)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -50394,8 +50666,8 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin /* Need to read this page properly. It contains some of the ** range of data that is being read (eOp==0) or written (eOp!=0). */ - a1 = int32(amt) - if uint32(a1)+offset > ovflSize { + a1 = int32(int32(amt)) + if uint32(uint32(a1))+offset > ovflSize { a1 = int32(ovflSize - offset) } /* If all the following are true: @@ -50434,7 +50706,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin offset = uint32(0) } } - amt -= uint32(a1) + amt -= uint32(uint32(a1)) if amt == uint32(0) { return rc } @@ -50448,7 +50720,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin } if rc == SQLITE_OK && amt > uint32(0) { /* Overflow chain ends prematurely */ - return _sqlite3CorruptError(tls, int32(75396)) + return _sqlite3CorruptError(tls, int32(75794)) } return rc } @@ -50542,7 +50814,7 @@ func _fetchPayload(tls *libc.TLS, pCur uintptr, pAmt uintptr) (r uintptr) { } amt = v1 } - *(*Tu32)(unsafe.Pointer(pAmt)) = uint32(amt) + *(*Tu32)(unsafe.Pointer(pAmt)) = uint32(uint32(amt)) return (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload } @@ -50583,7 +50855,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { var v3, p1 uintptr _, _, _, _ = rc, v2, v3, p1 if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(75534)) + return _sqlite3CorruptError(tls, int32(75932)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -50595,7 +50867,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(75548)) + rc = _sqlite3CorruptError(tls, int32(75946)) } if rc != 0 { v3 = pCur + 84 @@ -50711,8 +50983,9 @@ func _moveToRoot(tls *libc.TLS, pCur uintptr) (r int32) { ** in such a way that page pRoot is linked into a second b-tree table ** (or the freelist). */ if int32((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != int32((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(75683)) + return _sqlite3CorruptError(tls, int32(76081)) } + goto skip_init skip_init: ; (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(0) @@ -50724,7 +50997,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(75695)) + return _sqlite3CorruptError(tls, int32(76093)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -50958,7 +51231,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(75937)) + return _sqlite3CorruptError(tls, int32(76342)) } } } @@ -50977,7 +51250,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } } else { - (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx) + (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(uint16(idx)) if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { lwr = idx goto moveto_table_next_layer @@ -50996,11 +51269,12 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh _2: } if (*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0 { - (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx) + (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(uint16(idx)) *(*int32)(unsafe.Pointer(pRes)) = c rc = SQLITE_OK goto moveto_table_finish } + goto moveto_table_next_layer moveto_table_next_layer: ; if lwr >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { @@ -51008,7 +51282,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh } else { chldPg = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*lwr))))))) } - (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(lwr) + (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(uint16(lwr)) rc = _moveToChild(tls, pCur, chldPg) if rc != 0 { break @@ -51016,6 +51290,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh goto _1 _1: } + goto moveto_table_finish moveto_table_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -51160,7 +51435,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes p3 = pCur + 1 *(*Tu8)(unsafe.Pointer(p3)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p3))) & ^libc.Int32FromInt32(BTCF_ValidOvfl)) if !((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76133)) + return _sqlite3CorruptError(tls, int32(76538)) } goto bypass_moveto_root /* Start search on the current page */ } @@ -51174,6 +51449,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes } return rc } + goto bypass_moveto_root bypass_moveto_root: ; for { @@ -51221,8 +51497,8 @@ bypass_moveto_root: /* Invalid key size: 0x80 0x80 0x00 */ /* Invalid key size: 0x80 0x80 0x01 */ /* Minimum legal index key size */ - if nCell < int32(2) || uint32(nCell)/(*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FusableSize > (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(76220)) + if nCell < int32(2) || uint32(uint32(nCell))/(*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FusableSize > (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { + rc = _sqlite3CorruptError(tls, int32(76625)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, uint64(nCell+nOverrun)) @@ -51230,9 +51506,9 @@ bypass_moveto_root: rc = int32(SQLITE_NOMEM) goto moveto_index_finish } - (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx) - rc = _accessPayload(tls, pCur, uint32(0), uint32(nCell), pCellKey, 0) - libc.Xmemset(tls, pCellKey+uintptr(nCell), 0, uint64(nOverrun)) /* Fix uninit warnings */ + (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(uint16(idx)) + rc = _accessPayload(tls, pCur, uint32(0), uint32(uint32(nCell)), pCellKey, 0) + libc.Xmemset(tls, pCellKey+uintptr(nCell), 0, uint64(uint64(nOverrun))) /* Fix uninit warnings */ p8 = pCur + 1 *(*Tu8)(unsafe.Pointer(p8)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p8))) & ^libc.Int32FromInt32(BTCF_ValidOvfl)) if rc != 0 { @@ -51251,9 +51527,9 @@ bypass_moveto_root: } else { *(*int32)(unsafe.Pointer(pRes)) = 0 rc = SQLITE_OK - (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx) + (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(uint16(idx)) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(76252)) + rc = _sqlite3CorruptError(tls, int32(76657)) } goto moveto_index_finish } @@ -51266,7 +51542,7 @@ bypass_moveto_root: _5: } if (*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0 { - (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx) + (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(uint16(idx)) *(*int32)(unsafe.Pointer(pRes)) = c1 rc = SQLITE_OK goto moveto_index_finish @@ -51286,16 +51562,16 @@ bypass_moveto_root: p9 = pCur + 1 *(*Tu8)(unsafe.Pointer(p9)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p9))) & ^(libc.Int32FromInt32(BTCF_ValidNKey) | libc.Int32FromInt32(BTCF_ValidOvfl))) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(76283)) + return _sqlite3CorruptError(tls, int32(76688)) } - *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = uint16(lwr) + *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = uint16(uint16(lwr)) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(0) (*TBtCursor)(unsafe.Pointer(pCur)).FiPage++ rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76294)) + rc = _sqlite3CorruptError(tls, int32(76699)) } if rc != 0 { v11 = pCur + 84 @@ -51309,6 +51585,7 @@ bypass_moveto_root: goto _4 _4: } + goto moveto_index_finish moveto_index_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -51343,11 +51620,11 @@ func _sqlite3BtreeRowCountEst(tls *libc.TLS, pCur uintptr) (r Ti64) { var i Tu8 var n Ti64 _, _ = i, n - /* Currently this interface is only called by the OP_IfSmaller - ** opcode, and it that case the cursor will always be valid and - ** will always point to a leaf node. */ + /* Currently this interface is only called by the OP_IfSizeBetween + ** opcode and the OP_Count opcode with P3=1. In either case, + ** the cursor will always be valid unless the btree is empty. */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID { - return int64(-int32(1)) + return 0 } if int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).Fleaf) == 0 { return int64(-int32(1)) @@ -51355,7 +51632,7 @@ func _sqlite3BtreeRowCountEst(tls *libc.TLS, pCur uintptr) (r Ti64) { n = int64((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) i = uint8(0) for { - if !(int32(i) < int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)) { + if !(int32(int32(i)) < int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)) { break } n *= int64((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(i)*8)))).FnCell) @@ -51423,7 +51700,7 @@ func _btreeNext(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76395)) + return _sqlite3CorruptError(tls, int32(76800)) } if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -51533,7 +51810,7 @@ func _btreePrevious(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76488)) + return _sqlite3CorruptError(tls, int32(76893)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -51621,7 +51898,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt ** stores the total number of pages on the freelist. */ n = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+36) if n >= mxPage { - return _sqlite3CorruptError(tls, int32(76578)) + return _sqlite3CorruptError(tls, int32(76983)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -51630,7 +51907,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt ** shows that the page 'nearby' is somewhere on the free-list, then ** the entire-list will be searched for that page. */ - if int32(eMode) == int32(BTALLOC_EXACT) { + if int32(int32(eMode)) == int32(BTALLOC_EXACT) { if nearby <= mxPage { rc = _ptrmapGet(tls, pBt, nearby, bp+8, uintptr(0)) if rc != 0 { @@ -51641,7 +51918,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } } } else { - if int32(eMode) == int32(BTALLOC_LE) { + if int32(int32(eMode)) == int32(BTALLOC_LE) { searchList = uint8(1) } } @@ -51676,7 +51953,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(76634)) + rc = _sqlite3CorruptError(tls, int32(77039)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -51702,10 +51979,10 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { if k > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/libc.Uint32FromInt32(4)-libc.Uint32FromInt32(2) { /* Value of k is out of range. Database corruption */ - rc = _sqlite3CorruptError(tls, int32(76663)) + rc = _sqlite3CorruptError(tls, int32(77068)) goto end_allocate_page } else { - if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && int32(eMode) == int32(BTALLOC_LE)) { + if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && int32(int32(eMode)) == int32(BTALLOC_LE)) { /* The list is being searched and this trunk page is the page ** to allocate, regardless of whether it has leaves. */ @@ -51729,7 +52006,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { iNewTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+8) if iNewTrunk > mxPage { - rc = _sqlite3CorruptError(tls, int32(76697)) + rc = _sqlite3CorruptError(tls, int32(77102)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -51761,7 +52038,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt aData = (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData if nearby > uint32(0) { closest = uint32(0) - if int32(eMode) == int32(BTALLOC_LE) { + if int32(int32(eMode)) == int32(BTALLOC_LE) { i = uint32(0) for { if !(i < k) { @@ -51800,10 +52077,10 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } iPage = _sqlite3Get4byte(tls, aData+uintptr(uint32(8)+closest*uint32(4))) if iPage > mxPage || iPage < uint32(2) { - rc = _sqlite3CorruptError(tls, int32(76762)) + rc = _sqlite3CorruptError(tls, int32(77167)) goto end_allocate_page } - if !(searchList != 0) || (iPage == nearby || iPage < nearby && int32(eMode) == int32(BTALLOC_LE)) { + if !(searchList != 0) || (iPage == nearby || iPage < nearby && int32(int32(eMode)) == int32(BTALLOC_LE)) { *(*TPgno)(unsafe.Pointer(pPgno)) = iPage rc = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) if rc != 0 { @@ -51866,7 +52143,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt return rc } (*TBtShared)(unsafe.Pointer(pBt)).FnPage++ - if (*TBtShared)(unsafe.Pointer(pBt)).FnPage == uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { + if (*TBtShared)(unsafe.Pointer(pBt)).FnPage == uint32(uint32(_sqlite3PendingByte))/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { (*TBtShared)(unsafe.Pointer(pBt)).FnPage++ } if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && _ptrmapPageno(tls, pBt, (*TBtShared)(unsafe.Pointer(pBt)).FnPage) == (*TBtShared)(unsafe.Pointer(pBt)).FnPage { @@ -51884,7 +52161,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt return rc } (*TBtShared)(unsafe.Pointer(pBt)).FnPage++ - if (*TBtShared)(unsafe.Pointer(pBt)).FnPage == uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { + if (*TBtShared)(unsafe.Pointer(pBt)).FnPage == uint32(uint32(_sqlite3PendingByte))/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { (*TBtShared)(unsafe.Pointer(pBt)).FnPage++ } } @@ -51900,6 +52177,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) } } + goto end_allocate_page end_allocate_page: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -51937,7 +52215,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in iTrunk = uint32(0) /* Page number of free-list trunk page */ pPage1 = (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 /* Initial number of pages on free-list */ if iPage < uint32(2) || iPage > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(76889)) + return _sqlite3CorruptError(tls, int32(77294)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -51988,7 +52266,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in if nFree != uint32(0) { /* Initial number of leaf cells on trunk page */ iTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32) if iTrunk > _btreePagecount(tls, pBt) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76936)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77341)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -51997,7 +52275,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in } nLeaf = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+4) if nLeaf > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(2) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76947)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77352)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -52052,6 +52330,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData, iTrunk) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData+4, uint32(0)) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32, iPage) + goto freepage_out freepage_out: ; if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -52086,7 +52365,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp _, _, _, _, _, _, _, _ = nOvfl, ovflPageSize, ovflPgno, pBt, rc, v1, v2, v3 if pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { /* Cell extends past end of page */ - return _sqlite3CorruptError(tls, int32(77036)) + return _sqlite3CorruptError(tls, int32(77441)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -52104,7 +52383,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp /* 0 is not a legal page number and page 1 cannot be an ** overflow page. Therefore if ovflPgno<2 or past the end of the ** file the database must be corrupt. */ - return _sqlite3CorruptError(tls, int32(77053)) + return _sqlite3CorruptError(tls, int32(77458)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -52127,7 +52406,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp ** caller is iterating through or using in some other way, this ** can be problematic. */ - rc = _sqlite3CorruptError(tls, int32(77073)) + rc = _sqlite3CorruptError(tls, int32(77478)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -52215,7 +52494,7 @@ func _fillInCell(tls *libc.TLS, pPage uintptr, pCell uintptr, pX uintptr, pnSize *(*uint8)(unsafe.Pointer(pPayload + uintptr(nPayload))) = uint8(0) } *(*int32)(unsafe.Pointer(pnSize)) = n - libc.Xmemcpy(tls, pPayload, pSrc, uint64(nSrc)) + libc.Xmemcpy(tls, pPayload, pSrc, uint64(uint64(nSrc))) libc.Xmemset(tls, pPayload+uintptr(nSrc), 0, uint64(nPayload-nSrc)) return SQLITE_OK } @@ -52223,7 +52502,7 @@ func _fillInCell(tls *libc.TLS, pPage uintptr, pCell uintptr, pX uintptr, pnSize ** to spill onto overflow pages. */ mn = int32((*TMemPage)(unsafe.Pointer(pPage)).FminLocal) - n = int32(uint32(mn) + uint32(nPayload-mn)%((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4))) + n = int32(uint32(uint32(mn)) + uint32(nPayload-mn)%((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4))) if n > int32((*TMemPage)(unsafe.Pointer(pPage)).FmaxLocal) { n = mn } @@ -52256,13 +52535,13 @@ func _fillInCell(tls *libc.TLS, pPage uintptr, pCell uintptr, pX uintptr, pnSize /* If pPayload is part of the data area of pPage, then make sure pPage ** is still writeable */ if nSrc >= n { - libc.Xmemcpy(tls, pPayload, pSrc, uint64(n)) + libc.Xmemcpy(tls, pPayload, pSrc, uint64(uint64(n))) } else { if nSrc > 0 { n = nSrc - libc.Xmemcpy(tls, pPayload, pSrc, uint64(n)) + libc.Xmemcpy(tls, pPayload, pSrc, uint64(uint64(n))) } else { - libc.Xmemset(tls, pPayload, 0, uint64(n)) + libc.Xmemset(tls, pPayload, 0, uint64(uint64(n))) } } nPayload -= n @@ -52277,7 +52556,7 @@ func _fillInCell(tls *libc.TLS, pPage uintptr, pCell uintptr, pX uintptr, pnSize *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) pgnoPtrmap = *(*TPgno)(unsafe.Pointer(bp + 4)) /* Overflow page pointer-map entry page */ if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 { - for cond := true; cond; cond = _ptrmapPageno(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 4))) == *(*TPgno)(unsafe.Pointer(bp + 4)) || *(*TPgno)(unsafe.Pointer(bp + 4)) == uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { + for cond := true; cond; cond = _ptrmapPageno(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 4))) == *(*TPgno)(unsafe.Pointer(bp + 4)) || *(*TPgno)(unsafe.Pointer(bp + 4)) == uint32(uint32(_sqlite3PendingByte))/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { *(*TPgno)(unsafe.Pointer(bp + 4))++ } } @@ -52347,11 +52626,11 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { ptr = (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*idx) pc = uint32(int32(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77329)) + if pc+uint32(uint32(sz)) > (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77734)) return } - rc = _freeSpace(tls, pPage, uint16(pc), uint16(sz)) + rc = _freeSpace(tls, pPage, uint16(uint16(pc)), uint16(uint16(sz))) if rc != 0 { *(*int32)(unsafe.Pointer(pRC)) = rc return @@ -52405,7 +52684,7 @@ func _insertCell(tls *libc.TLS, pPage uintptr, i int32, pCell uintptr, sz int32, *(*int32)(unsafe.Pointer(bp)) = 0 /* The point in pPage->aCellIdx[] where no cell inserted */ if (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow != 0 || sz+int32(2) > (*TMemPage)(unsafe.Pointer(pPage)).FnFree { if pTemp != 0 { - libc.Xmemcpy(tls, pTemp, pCell, uint64(sz)) + libc.Xmemcpy(tls, pTemp, pCell, uint64(uint64(sz))) pCell = pTemp } _sqlite3Put4byte(tls, pCell, iChild) @@ -52417,7 +52696,7 @@ func _insertCell(tls *libc.TLS, pPage uintptr, i int32, pCell uintptr, sz int32, ** as a contingency. In other words, never need more than 3 overflow ** slots but 4 are allocated, just to be safe. */ *(*uintptr)(unsafe.Pointer(pPage + 40 + uintptr(j)*8)) = pCell - *(*Tu16)(unsafe.Pointer(pPage + 28 + uintptr(j)*2)) = uint16(i) + *(*Tu16)(unsafe.Pointer(pPage + 28 + uintptr(j)*2)) = uint16(uint16(i)) /* When multiple overflows occur, they are always sequential and in ** sorted order. This invariants arise because multiple overflows can ** only occur when inserting divider cells into the parent page during @@ -52502,7 +52781,7 @@ func _insertCellFast(tls *libc.TLS, pPage uintptr, i int32, pCell uintptr, sz in ** as a contingency. In other words, never need more than 3 overflow ** slots but 4 are allocated, just to be safe. */ *(*uintptr)(unsafe.Pointer(pPage + 40 + uintptr(j)*8)) = pCell - *(*Tu16)(unsafe.Pointer(pPage + 28 + uintptr(j)*2)) = uint16(i) + *(*Tu16)(unsafe.Pointer(pPage + 28 + uintptr(j)*2)) = uint16(uint16(i)) /* When multiple overflows occur, they are always sequential and in ** sorted order. This invariants arise because multiple overflows can ** only occur when inserting divider cells into the parent page during @@ -52523,7 +52802,7 @@ func _insertCellFast(tls *libc.TLS, pPage uintptr, i int32, pCell uintptr, sz in /* The allocateSpace() routine guarantees the following properties ** if it returns successfully */ *(*int32)(unsafe.Pointer(pPage + 20)) -= int32(uint16(libc.Int32FromInt32(2) + sz)) - libc.Xmemcpy(tls, data+uintptr(*(*int32)(unsafe.Pointer(bp))), pCell, uint64(sz)) + libc.Xmemcpy(tls, data+uintptr(*(*int32)(unsafe.Pointer(bp))), pCell, uint64(uint64(sz))) pIns = (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(i*int32(2)) libc.Xmemmove(tls, pIns+uintptr(2), pIns, uint64(int32(2)*(int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell)-i))) *(*Tu8)(unsafe.Pointer(pIns)) = uint8(*(*int32)(unsafe.Pointer(bp)) >> libc.Int32FromInt32(8)) @@ -52721,10 +53000,10 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg pCellptr = (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx pTmp = _sqlite3PagerTempSpace(tls, (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPg)).FpBt)).FpPager) /* Current pCArray->apEnd[k] value */ j = uint32(int32(*(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)))))< uint32(usableSize) { + if j > uint32(uint32(usableSize)) { j = uint32(0) } - libc.Xmemcpy(tls, pTmp+uintptr(j), aData+uintptr(j), uint64(uint32(usableSize)-j)) + libc.Xmemcpy(tls, pTmp+uintptr(j), aData+uintptr(j), uint64(uint32(uint32(usableSize))-j)) k = 0 for { if !(k < libc.Int32FromInt32(NB)*libc.Int32FromInt32(2) && *(*int32)(unsafe.Pointer(pCArray + 80 + uintptr(k)*4)) <= i) { @@ -52741,23 +53020,23 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg pCell = *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)) sz = *(*Tu16)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FszCell + uintptr(i)*2)) if uint64(pCell) >= uint64(aData+uintptr(j)) && uint64(pCell) < uint64(pEnd) { - if uint64(pCell+uintptr(sz)) > uint64(pEnd) { - return _sqlite3CorruptError(tls, int32(77718)) + if uint64(pCell+uintptr(sz)) > uint64(uint64(pEnd)) { + return _sqlite3CorruptError(tls, int32(78123)) } - pCell = pTmp + uintptr(int64(pCell)-int64(aData)) + pCell = pTmp + uintptr(int64(int64(pCell))-int64(int64(aData))) } else { - if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(77723)) + if uint64(pCell+uintptr(sz)) > uint64(uint64(pSrcEnd)) && uint64(pCell) < uint64(uint64(pSrcEnd)) { + return _sqlite3CorruptError(tls, int32(78128)) } } pData -= uintptr(sz) - *(*Tu8)(unsafe.Pointer(pCellptr)) = uint8((int64(pData) - int64(aData)) >> libc.Int32FromInt32(8)) - *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = uint8(int64(pData) - int64(aData)) + *(*Tu8)(unsafe.Pointer(pCellptr)) = uint8((int64(int64(pData)) - int64(int64(aData))) >> libc.Int32FromInt32(8)) + *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = uint8(int64(int64(pData)) - int64(int64(aData))) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(77729)) + return _sqlite3CorruptError(tls, int32(78134)) } - libc.Xmemmove(tls, pData, pCell, uint64(sz)) + libc.Xmemmove(tls, pData, pCell, uint64(uint64(sz))) i++ if i >= iEnd { break @@ -52768,14 +53047,14 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg } } /* The pPg->nFree field is now set incorrectly. The caller will fix it. */ - (*TMemPage)(unsafe.Pointer(pPg)).FnCell = uint16(nCell) + (*TMemPage)(unsafe.Pointer(pPg)).FnCell = uint16(uint16(nCell)) (*TMemPage)(unsafe.Pointer(pPg)).FnOverflow = uint8(0) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(1)))) = uint8(libc.Int32FromInt32(0) >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(1)) + 1)) = uint8(libc.Int32FromInt32(0)) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(3)))) = uint8(int32((*TMemPage)(unsafe.Pointer(pPg)).FnCell) >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(3)) + 1)) = uint8((*TMemPage)(unsafe.Pointer(pPg)).FnCell) - *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)))) = uint8((int64(pData) - int64(aData)) >> libc.Int32FromInt32(8)) - *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)) + 1)) = uint8(int64(pData) - int64(aData)) + *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)))) = uint8((int64(int64(pData)) - int64(int64(aData))) >> libc.Int32FromInt32(8)) + *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)) + 1)) = uint8(int64(int64(pData)) - int64(int64(aData))) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(7)))) = uint8(0x00) return SQLITE_OK } @@ -52840,7 +53119,7 @@ func _pageInsertArray(tls *libc.TLS, pPg uintptr, pBegin uintptr, ppData uintptr pSlot = v2 } if v3 || v2 == uintptr(0) { - if int64(pData)-int64(pBegin) < int64(sz) { + if int64(int64(pData))-int64(int64(pBegin)) < int64(int64(sz)) { return int32(1) } pData -= uintptr(sz) @@ -52849,13 +53128,13 @@ func _pageInsertArray(tls *libc.TLS, pPg uintptr, pBegin uintptr, ppData uintptr /* pSlot and pCArray->apCell[i] will never overlap on a well-formed ** database. But they might for a corrupt database. Hence use memmove() ** since memcpy() sends SIGABORT with overlapping buffers on OpenBSD */ - if uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))+uintptr(sz)) > uint64(pEnd) && uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))) < uint64(pEnd) { - _sqlite3CorruptError(tls, int32(77814)) + if uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))+uintptr(sz)) > uint64(uint64(pEnd)) && uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))) < uint64(uint64(pEnd)) { + _sqlite3CorruptError(tls, int32(78219)) return int32(1) } - libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), uint64(sz)) - *(*Tu8)(unsafe.Pointer(pCellptr)) = uint8((int64(pSlot) - int64(aData)) >> libc.Int32FromInt32(8)) - *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = uint8(int64(pSlot) - int64(aData)) + libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), uint64(uint64(sz))) + *(*Tu8)(unsafe.Pointer(pCellptr)) = uint8((int64(int64(pSlot)) - int64(int64(aData))) >> libc.Int32FromInt32(8)) + *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = uint8(int64(int64(pSlot)) - int64(int64(aData))) pCellptr += uintptr(2) i++ if i >= iEnd { @@ -52903,7 +53182,7 @@ func _pageFreeArray(tls *libc.TLS, pPg uintptr, iFirst int32, nCell int32, pCArr ** are to be freed have already been computing while deciding which ** cells need freeing */ sz = int32(*(*Tu16)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FszCell + uintptr(i)*2))) - iOfst = int32(uint16(int64(pCell) - int64(aData))) + iOfst = int32(uint16(int64(int64(pCell)) - int64(int64(aData)))) iAfter = iOfst + sz j = 0 for { @@ -52998,7 +53277,7 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p if iOld < iNew { nShift = _pageFreeArray(tls, pPg, iOld, iNew-iOld, pCArray) if nShift > nCell { - return _sqlite3CorruptError(tls, int32(77936)) + return _sqlite3CorruptError(tls, int32(78341)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), uint64(nCell*int32(2))) nCell -= nShift @@ -53057,18 +53336,19 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p if _pageInsertArray(tls, pPg, pBegin, bp, pCellptr, iNew+nCell, nNew-nCell, pCArray) != 0 { goto editpage_fail } - (*TMemPage)(unsafe.Pointer(pPg)).FnCell = uint16(nNew) + (*TMemPage)(unsafe.Pointer(pPg)).FnCell = uint16(uint16(nNew)) (*TMemPage)(unsafe.Pointer(pPg)).FnOverflow = uint8(0) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(3)))) = uint8(int32((*TMemPage)(unsafe.Pointer(pPg)).FnCell) >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(3)) + 1)) = uint8((*TMemPage)(unsafe.Pointer(pPg)).FnCell) - *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)))) = uint8((int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) >> libc.Int32FromInt32(8)) - *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)) + 1)) = uint8(int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) + *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)))) = uint8((int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(int64(aData))) >> libc.Int32FromInt32(8)) + *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)) + 1)) = uint8(int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(int64(aData))) return SQLITE_OK + goto editpage_fail editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(78010)) + return _sqlite3CorruptError(tls, int32(78415)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -53113,7 +53393,7 @@ func _balance_quick(tls *libc.TLS, pParent uintptr, pPage uintptr, pSpace uintpt _, _, _, _, _, _, _ = pBt, pOut, pStop, v1, v2, v3, v4 pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt /* Page number of pNew */ if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(78050)) + return _sqlite3CorruptError(tls, int32(78455)) } /* dbfuzz001.test */ /* Allocate a new page. This page will become the right-sibling of ** pPage. Make the parent page writable, so that the new divider cell @@ -53188,7 +53468,7 @@ func _balance_quick(tls *libc.TLS, pParent uintptr, pPage uintptr, pSpace uintpt } /* Insert the new divider cell into pParent. */ if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp + 8)) = _insertCell(tls, pParent, int32((*TMemPage)(unsafe.Pointer(pParent)).FnCell), pSpace, int32(int64(pOut)-int64(pSpace)), uintptr(0), (*TMemPage)(unsafe.Pointer(pPage)).Fpgno) + *(*int32)(unsafe.Pointer(bp + 8)) = _insertCell(tls, pParent, int32((*TMemPage)(unsafe.Pointer(pParent)).FnCell), pSpace, int32(int64(int64(pOut))-int64(int64(pSpace))), uintptr(0), (*TMemPage)(unsafe.Pointer(pPage)).Fpgno) } /* Set the right-child pointer of pParent to point to the new page. */ _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pParent)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pParent)).FhdrOffset)+int32(8)), *(*TPgno)(unsafe.Pointer(bp + 12))) @@ -53234,7 +53514,7 @@ func _copyNodeContent(tls *libc.TLS, pFrom uintptr, pTo uintptr, pRC uintptr) { iToHdr = v1 /* Copy the b-tree node content from page pFrom to page pTo. */ iData = int32(*(*Tu8)(unsafe.Pointer(aFrom + uintptr(iFromHdr+int32(5)))))< 0 { if limit < int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78495)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78900)) goto balance_cleanup } limit = int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -53506,7 +53786,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa if !(j < limit) { break } - *(*uintptr)(unsafe.Pointer((*(*TCellArray)(unsafe.Pointer(bp + 112))).FapCell + uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*8)) = aData + uintptr(int32(maskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(piCell))))) + *(*uintptr)(unsafe.Pointer((*(*TCellArray)(unsafe.Pointer(bp + 112))).FapCell + uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*8)) = aData + uintptr(int32(int32(maskPage))&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(piCell))))) piCell += uintptr(2) (*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell++ goto _3 @@ -53530,7 +53810,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa } piEnd = aData + uintptr((*TMemPage)(unsafe.Pointer(pOld)).FcellOffset) + uintptr(int32(2)*int32((*TMemPage)(unsafe.Pointer(pOld)).FnCell)) for piCell < piEnd { - *(*uintptr)(unsafe.Pointer((*(*TCellArray)(unsafe.Pointer(bp + 112))).FapCell + uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*8)) = aData + uintptr(int32(maskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(piCell))))) + *(*uintptr)(unsafe.Pointer((*(*TCellArray)(unsafe.Pointer(bp + 112))).FapCell + uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*8)) = aData + uintptr(int32(int32(maskPage))&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(piCell))))) piCell += uintptr(2) (*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell++ } @@ -53539,10 +53819,10 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa sz = uint16((*(*[5]int32)(unsafe.Pointer(bp + 72)))[i]) *(*Tu16)(unsafe.Pointer((*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell + uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*2)) = sz pTemp = aSpace1 + uintptr(iSpace1) - iSpace1 += int32(sz) - libc.Xmemcpy(tls, pTemp, apDiv[i], uint64(sz)) + iSpace1 += int32(int32(sz)) + libc.Xmemcpy(tls, pTemp, apDiv[i], uint64(uint64(sz))) *(*uintptr)(unsafe.Pointer((*(*TCellArray)(unsafe.Pointer(bp + 112))).FapCell + uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*8)) = pTemp + uintptr(leafCorrection) - *(*Tu16)(unsafe.Pointer((*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell + uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*2)) = uint16(int32(*(*Tu16)(unsafe.Pointer((*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell + uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*2))) - int32(leafCorrection)) + *(*Tu16)(unsafe.Pointer((*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell + uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*2)) = uint16(int32(*(*Tu16)(unsafe.Pointer((*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell + uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*2))) - int32(int32(leafCorrection))) if !((*TMemPage)(unsafe.Pointer(pOld)).Fleaf != 0) { /* The right pointer of the child page pOld becomes the left ** pointer of the divider cell */ @@ -53580,7 +53860,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** usableSpace: Number of bytes of space available on each sibling. ** */ - usableSpace = int32((*TBtShared)(unsafe.Pointer(pBt)).FusableSize - uint32(12) + uint32(leafCorrection)) + usableSpace = int32((*TBtShared)(unsafe.Pointer(pBt)).FusableSize - uint32(12) + uint32(uint32(leafCorrection))) v7 = libc.Int32FromInt32(0) k = v7 i = v7 @@ -53628,7 +53908,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa if i+int32(1) >= k { k = i + int32(2) if k > libc.Int32FromInt32(NB)+libc.Int32FromInt32(2) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78596)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79001)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -53671,7 +53951,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v10 = 0 } if cntNew[i] <= v10 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78629)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79034)) goto balance_cleanup } } @@ -53730,7 +54010,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v15 = 0 } if cntNew[i-int32(1)] <= v15 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78673)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79078)) goto balance_cleanup } goto _11 @@ -53762,7 +54042,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) nNew++ if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) != int32(1)+libc.BoolInt32(i == iParentIdx-nxDiv) && *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78706)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79111)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -53844,7 +54124,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa if iB != i { pgnoA = (*TMemPage)(unsafe.Pointer((*(*[5]uintptr)(unsafe.Pointer(bp + 32)))[i])).Fpgno pgnoB = (*TMemPage)(unsafe.Pointer((*(*[5]uintptr)(unsafe.Pointer(bp + 32)))[iB])).Fpgno - pgnoTemp = uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize + uint32(1) + pgnoTemp = uint32(uint32(_sqlite3PendingByte))/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize + uint32(1) fgA = (*TDbPage)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[5]uintptr)(unsafe.Pointer(bp + 32)))[i])).FpDbPage)).Fflags fgB = (*TDbPage)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[5]uintptr)(unsafe.Pointer(bp + 32)))[iB])).FpDbPage)).Fflags _sqlite3PagerRekey(tls, (*TMemPage)(unsafe.Pointer((*(*[5]uintptr)(unsafe.Pointer(bp + 32)))[i])).FpDbPage, pgnoTemp, fgB) @@ -53950,7 +54230,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa pNew2 = (*(*[5]uintptr)(unsafe.Pointer(bp + 32)))[i] j = cntNew[i] pCell1 = *(*uintptr)(unsafe.Pointer((*(*TCellArray)(unsafe.Pointer(bp + 112))).FapCell + uintptr(j)*8)) - sz2 = int32(*(*Tu16)(unsafe.Pointer((*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell + uintptr(j)*2))) + int32(leafCorrection) + sz2 = int32(*(*Tu16)(unsafe.Pointer((*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell + uintptr(j)*2))) + int32(int32(leafCorrection)) pTemp1 = aOvflSpace + uintptr(iOvflSpace) if !((*TMemPage)(unsafe.Pointer(pNew2)).Fleaf != 0) { libc.Xmemcpy(tls, (*TMemPage)(unsafe.Pointer(pNew2)).FaData+8, pCell1, uint64(4)) @@ -53992,7 +54272,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa } pSrcEnd = *(*uintptr)(unsafe.Pointer(bp + 112 + 32 + uintptr(k)*8)) if uint64(pCell1) < uint64(pSrcEnd) && uint64(pCell1+uintptr(sz2)) > uint64(pSrcEnd) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78906)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79311)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -54127,6 +54407,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa /* ** Cleanup before returning. */ + goto balance_cleanup balance_cleanup: ; _sqlite3DbFree(tls, uintptr(0), (*(*TCellArray)(unsafe.Pointer(bp + 112))).FapCell) @@ -54237,7 +54518,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && int32((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(79138)) + return _sqlite3CorruptError(tls, int32(79543)) } goto _1 _1: @@ -54310,7 +54591,7 @@ func _balance(tls *libc.TLS, pCur uintptr) (r int32) { /* The page being written is not a root page, and there is currently ** more than one reference to it. This only happens if the page is one ** of its own ancestor pages. Corruption. */ - rc = _sqlite3CorruptError(tls, int32(79198)) + rc = _sqlite3CorruptError(tls, int32(79603)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = int32(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -54419,7 +54700,7 @@ func _btreeOverwriteContent(tls *libc.TLS, pPage uintptr, pDest uintptr, pX uint } iAmt = nData } - if libc.Xmemcmp(tls, pDest, (*TBtreePayload)(unsafe.Pointer(pX)).FpData+uintptr(iOffset), uint64(iAmt)) != 0 { + if libc.Xmemcmp(tls, pDest, (*TBtreePayload)(unsafe.Pointer(pX)).FpData+uintptr(iOffset), uint64(uint64(iAmt))) != 0 { rc2 = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if rc2 != 0 { return rc2 @@ -54428,7 +54709,7 @@ func _btreeOverwriteContent(tls *libc.TLS, pPage uintptr, pDest uintptr, pX uint ** buffers to overlap. This is harmless since the database is already ** corrupt but it does cause valgrind and ASAN warnings. So use ** memmove(). */ - libc.Xmemmove(tls, pDest, (*TBtreePayload)(unsafe.Pointer(pX)).FpData+uintptr(iOffset), uint64(iAmt)) + libc.Xmemmove(tls, pDest, (*TBtreePayload)(unsafe.Pointer(pX)).FpData+uintptr(iOffset), uint64(uint64(iAmt))) } } return SQLITE_OK @@ -54469,14 +54750,14 @@ func _btreeOverwriteOverflowCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int return rc } if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1) || (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FisInit != 0 { - rc = _sqlite3CorruptError(tls, int32(79362)) + rc = _sqlite3CorruptError(tls, int32(79767)) } else { - if uint32(iOffset)+ovflPageSize < uint32(nTotal) { + if uint32(uint32(iOffset))+ovflPageSize < uint32(uint32(nTotal)) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) } else { ovflPageSize = uint32(nTotal - iOffset) } - rc = _btreeOverwriteContent(tls, *(*uintptr)(unsafe.Pointer(bp)), (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+uintptr(4), pX, iOffset, int32(ovflPageSize)) + rc = _btreeOverwriteContent(tls, *(*uintptr)(unsafe.Pointer(bp)), (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+uintptr(4), pX, iOffset, int32(int32(ovflPageSize))) } _sqlite3PagerUnref(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) if rc != 0 { @@ -54500,7 +54781,7 @@ func _btreeOverwriteCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int32) { nTotal = (*TBtreePayload)(unsafe.Pointer(pX)).FnData + (*TBtreePayload)(unsafe.Pointer(pX)).FnZero /* Total bytes of to write */ pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage /* Page being written */ if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload+uintptr((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd || (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FcellOffset) { - return _sqlite3CorruptError(tls, int32(79390)) + return _sqlite3CorruptError(tls, int32(79795)) } if int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -54585,7 +54866,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** Which can only happen if the SQLITE_NoSchemaError flag was set when ** the schema was loaded. This cannot be asserted though, as a user might ** set the flag, load the schema, and then unset the flag. */ - return _sqlite3CorruptError(tls, int32(79471)) + return _sqlite3CorruptError(tls, int32(79876)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -54677,7 +54958,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79594)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79999)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -54713,7 +54994,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) if *(*int32)(unsafe.Pointer(bp + 4)) == 0 { if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79636)) + return _sqlite3CorruptError(tls, int32(80041)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -54743,10 +55024,10 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry. */ /* clearCell never fails when nLocal==nPayload */ if oldCell < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+uintptr(10) { - return _sqlite3CorruptError(tls, int32(79663)) + return _sqlite3CorruptError(tls, int32(80068)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79666)) + return _sqlite3CorruptError(tls, int32(80071)) } libc.Xmemcpy(tls, oldCell, newCell, uint64(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -54811,6 +55092,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s (*TBtCursor)(unsafe.Pointer(pCur)).FnKey = (*TBtreePayload)(unsafe.Pointer(pX)).FnKey } } + goto end_insert end_insert: ; return *(*int32)(unsafe.Pointer(bp)) @@ -54858,17 +55140,17 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T aOut += uintptr(_sqlite3PutVarint(tls, aOut, uint64((*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload))) } if (*TBtCursor)(unsafe.Pointer(pDest)).FpKeyInfo == uintptr(0) { - aOut += uintptr(_sqlite3PutVarint(tls, aOut, uint64(iKey))) + aOut += uintptr(_sqlite3PutVarint(tls, aOut, uint64(uint64(iKey)))) } nIn = uint32((*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnLocal) aIn = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload if aIn+uintptr(nIn) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79768)) + return _sqlite3CorruptError(tls, int32(80173)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { - libc.Xmemcpy(tls, aOut, aIn, uint64(nIn)) - (*TBtShared)(unsafe.Pointer(pBt)).FnPreformatSize = int32(int64(nIn) + (int64(aOut) - int64((*TBtShared)(unsafe.Pointer(pBt)).FpTmpSpace))) + libc.Xmemcpy(tls, aOut, aIn, uint64(uint64(nIn))) + (*TBtShared)(unsafe.Pointer(pBt)).FnPreformatSize = int32(int64(int64(nIn)) + (int64(int64(aOut)) - int64((*TBtShared)(unsafe.Pointer(pBt)).FpTmpSpace))) return SQLITE_OK } else { *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK @@ -54878,14 +55160,14 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) pPageOut = uintptr(0) /* Size of output buffer aOut[] */ nOut = uint32(_btreePayloadToLocal(tls, (*TBtCursor)(unsafe.Pointer(pDest)).FpPage, int64((*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload))) - (*TBtShared)(unsafe.Pointer(pBt)).FnPreformatSize = int32(int64(nOut) + (int64(aOut) - int64((*TBtShared)(unsafe.Pointer(pBt)).FpTmpSpace))) + (*TBtShared)(unsafe.Pointer(pBt)).FnPreformatSize = int32(int64(int64(nOut)) + (int64(int64(aOut)) - int64((*TBtShared)(unsafe.Pointer(pBt)).FpTmpSpace))) if nOut < (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload { pPgnoOut = aOut + uintptr(nOut) *(*int32)(unsafe.Pointer(pBt + 144)) += int32(4) } if nRem > nIn { if aIn+uintptr(nIn)+uintptr(4) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79793)) + return _sqlite3CorruptError(tls, int32(80198)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -54899,9 +55181,9 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T v2 = nIn } nCopy = int32(v2) - libc.Xmemcpy(tls, aOut, aIn, uint64(nCopy)) - nOut -= uint32(nCopy) - nIn -= uint32(nCopy) + libc.Xmemcpy(tls, aOut, aIn, uint64(uint64(nCopy))) + nOut -= uint32(uint32(nCopy)) + nIn -= uint32(uint32(nCopy)) aOut += uintptr(nCopy) aIn += uintptr(nCopy) } @@ -54985,21 +55267,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(79889)) + return _sqlite3CorruptError(tls, int32(80294)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(79898)) + return _sqlite3CorruptError(tls, int32(80303)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCellIdx)))))) if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 && _btreeComputeFreeSpace(tls, pPage) != 0 { - return _sqlite3CorruptError(tls, int32(79902)) + return _sqlite3CorruptError(tls, int32(80307)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79905)) + return _sqlite3CorruptError(tls, int32(80310)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -55017,7 +55299,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { ** bPreserve==1 Use CURSOR_REQUIRESEEK to save the cursor position ** bPreserve==2 Cursor won't move. Set CURSOR_SKIPNEXT. */ - bPreserve = libc.BoolUint8(int32(flags)&int32(BTREE_SAVEPOSITION) != 0) + bPreserve = libc.BoolUint8(int32(int32(flags))&int32(BTREE_SAVEPOSITION) != 0) if bPreserve != 0 { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) || (*TMemPage)(unsafe.Pointer(pPage)).FnFree+int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, pCell))+int32(2) > int32((*TBtShared)(unsafe.Pointer(pBt)).FusableSize*libc.Uint32FromInt32(2)/libc.Uint32FromInt32(3)) || int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == int32(1) { /* A b-tree rebalance will be required after deleting this entry. @@ -55093,7 +55375,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { } pCell = (*TMemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(int32(2)*(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FnCell)-int32(1)))))))) if pCell < (*TMemPage)(unsafe.Pointer(pLeaf)).FaData+4 { - return _sqlite3CorruptError(tls, int32(79996)) + return _sqlite3CorruptError(tls, int32(80401)) } nCell = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pLeaf)).FxCellSize})))(tls, pLeaf, pCell)) pTmp = (*TBtShared)(unsafe.Pointer(pBt)).FpTmpSpace @@ -55141,7 +55423,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { *(*int32)(unsafe.Pointer(bp)) = _balance(tls, pCur) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if int32(bPreserve) > int32(1) { + if int32(int32(bPreserve)) > int32(1) { (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_SKIPNEXT) if iCellIdx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { (*TBtCursor)(unsafe.Pointer(pCur)).FskipNext = -int32(1) @@ -55189,7 +55471,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags var _ /* pgnoRoot at bp+8 */ TPgno var _ /* rc at bp+12 */ int32 _, _ = pBt, ptfFlags - pBt = (*TBtree)(unsafe.Pointer(p)).FpBt /* Page-type flags for the root page of new table */ + pBt = (*TBtree)(unsafe.Pointer(p)).FpBt /* Page-type flags for the root page of new table */ if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 { /* The page to move to. */ /* Creating a new table may probably require moving an existing database ** to make room for the new tables root page. In case this page turns @@ -55203,13 +55485,13 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags */ _sqlite3BtreeGetMeta(tls, p, int32(BTREE_LARGEST_ROOT_PAGE), bp+8) if *(*TPgno)(unsafe.Pointer(bp + 8)) > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80112)) + return _sqlite3CorruptError(tls, int32(80517)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the ** PENDING_BYTE page. */ - for *(*TPgno)(unsafe.Pointer(bp + 8)) == _ptrmapPageno(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 8))) || *(*TPgno)(unsafe.Pointer(bp + 8)) == uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { + for *(*TPgno)(unsafe.Pointer(bp + 8)) == _ptrmapPageno(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 8))) || *(*TPgno)(unsafe.Pointer(bp + 8)) == uint32(uint32(_sqlite3PendingByte))/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) { *(*TPgno)(unsafe.Pointer(bp + 8))++ } /* Allocate a page. The page that currently resides at pgnoRoot will @@ -55244,7 +55526,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags } *(*int32)(unsafe.Pointer(bp + 12)) = _ptrmapGet(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 8)), bp+32, bp+36) if int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80160)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80565)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -55325,14 +55607,14 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int var _ /* rc at bp+8 */ int32 _, _, _, _ = hdr, i, pCell, v2 if pgno > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80250)) + return _sqlite3CorruptError(tls, int32(80655)) } *(*int32)(unsafe.Pointer(bp + 8)) = _getAndInitPage(tls, pBt, pgno, bp, 0) if *(*int32)(unsafe.Pointer(bp + 8)) != 0 { return *(*int32)(unsafe.Pointer(bp + 8)) } if int32((*TBtShared)(unsafe.Pointer(pBt)).FopenFlags)&int32(BTREE_SINGLE) == 0 && _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1)+libc.BoolInt32(pgno == uint32(1)) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80257)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80662)) goto cleardatabasepage_out } hdr = int32((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -55383,6 +55665,7 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _zeroPage(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData + uintptr(hdr))))|int32(PTF_LEAF)) } } + goto cleardatabasepage_out cleardatabasepage_out: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -55409,15 +55692,15 @@ func _sqlite3BtreeClearTable(tls *libc.TLS, p uintptr, iTable int32, pnChange ui _, _ = pBt, rc pBt = (*TBtree)(unsafe.Pointer(p)).FpBt _sqlite3BtreeEnter(tls, p) - rc = _saveAllCursors(tls, pBt, uint32(iTable), uintptr(0)) + rc = _saveAllCursors(tls, pBt, uint32(uint32(iTable)), uintptr(0)) if SQLITE_OK == rc { /* Invalidate all incrblob cursors open on table iTable (assuming iTable ** is the root of a table b-tree - if it is not, the following call is ** a no-op). */ if (*TBtree)(unsafe.Pointer(p)).FhasIncrblobCur != 0 { - _invalidateIncrblobCursors(tls, p, uint32(iTable), 0, int32(1)) + _invalidateIncrblobCursors(tls, p, uint32(uint32(iTable)), 0, int32(1)) } - rc = _clearDatabasePage(tls, pBt, uint32(iTable), 0, pnChange) + rc = _clearDatabasePage(tls, pBt, uint32(uint32(iTable)), 0, pnChange) } _sqlite3BtreeLeave(tls, p) return rc @@ -55468,9 +55751,9 @@ func _btreeDropTable(tls *libc.TLS, p uintptr, iTable TPgno, piMoved uintptr) (r *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) pBt = (*TBtree)(unsafe.Pointer(p)).FpBt if iTable > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80361)) + return _sqlite3CorruptError(tls, int32(80766)) } - *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, int32(iTable), uintptr(0)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, int32(int32(iTable)), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { return *(*int32)(unsafe.Pointer(bp)) } @@ -55517,7 +55800,7 @@ func _btreeDropTable(tls *libc.TLS, p uintptr, iTable TPgno, piMoved uintptr) (r ** PENDING_BYTE_PAGE. */ *(*TPgno)(unsafe.Pointer(bp + 16))-- - for *(*TPgno)(unsafe.Pointer(bp + 16)) == uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) || _ptrmapPageno(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 16))) == *(*TPgno)(unsafe.Pointer(bp + 16)) { + for *(*TPgno)(unsafe.Pointer(bp + 16)) == uint32(uint32(_sqlite3PendingByte))/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize+libc.Uint32FromInt32(1) || _ptrmapPageno(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 16))) == *(*TPgno)(unsafe.Pointer(bp + 16)) { *(*TPgno)(unsafe.Pointer(bp + 16))-- } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeUpdateMeta(tls, p, int32(4), *(*TPgno)(unsafe.Pointer(bp + 16))) @@ -55532,7 +55815,7 @@ func _sqlite3BtreeDropTable(tls *libc.TLS, p uintptr, iTable int32, piMoved uint var rc int32 _ = rc _sqlite3BtreeEnter(tls, p) - rc = _btreeDropTable(tls, p, uint32(iTable), piMoved) + rc = _btreeDropTable(tls, p, uint32(uint32(iTable)), piMoved) _sqlite3BtreeLeave(tls, p) return rc } @@ -55591,7 +55874,7 @@ func _sqlite3BtreeUpdateMeta(tls *libc.TLS, p uintptr, idx int32, iMeta Tu32) (r if rc == SQLITE_OK { _sqlite3Put4byte(tls, pP1+uintptr(int32(36)+idx*int32(4)), iMeta) if idx == int32(BTREE_INCR_VACUUM) { - (*TBtShared)(unsafe.Pointer(pBt)).FincrVacuum = uint8(iMeta) + (*TBtShared)(unsafe.Pointer(pBt)).FincrVacuum = uint8(uint8(iMeta)) } } _sqlite3BtreeLeave(tls, p) @@ -55733,7 +56016,7 @@ func _checkAppendMsg(tls *libc.TLS, pCheck uintptr, zFormat uintptr, va uintptr) (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr++ ap = va if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FerrMsg.FnChar != 0 { - Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4207, int32(1)) + Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4271, int32(1)) } if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx != 0 { Xsqlite3_str_appendf(tls, pCheck+72, (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx, libc.VaList(bp+8, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv0, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv2)) @@ -55781,11 +56064,11 @@ func _checkRef(tls *libc.TLS, pCheck uintptr, iPage TPgno) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if iPage > (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnCkPage || iPage == uint32(0) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4209, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4273, libc.VaList(bp+8, iPage)) return int32(1) } if _getPageReferenced(tls, pCheck, iPage) != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4232, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4296, libc.VaList(bp+8, iPage)) return int32(1) } _setPageReferenced(tls, pCheck, iPage) @@ -55811,11 +56094,11 @@ func _checkPtrmap(tls *libc.TLS, pCheck uintptr, iChild TPgno, eType Tu8, iParen if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FusableSize/uint32(4)-uint32(2) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4362, libc.VaList(bp+16, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4426, libc.VaList(bp+16, iPage)) N-- } else { i = 0 for { - if !(i < int32(n)) { + if !(i < int32(int32(n))) { break } iFreePage = _sqlite3Get4byte(tls, pOvflData+uintptr(int32(8)+i*int32(4))) @@ -55879,7 +56162,7 @@ func _checkList(tls *libc.TLS, pCheck uintptr, isFreeList int32, iPage TPgno, N */ if (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FautoVacuum != 0 && N > uint32(0) { i = int32(_sqlite3Get4byte(tls, pOvflData)) - _checkPtrmap(tls, pCheck, uint32(i), uint8(PTRMAP_OVERFLOW2), iPage) + _checkPtrmap(tls, pCheck, uint32(uint32(i)), uint8(PTRMAP_OVERFLOW2), iPage) } } iPage = _sqlite3Get4byte(tls, pOvflData) @@ -55887,11 +56170,11 @@ func _checkList(tls *libc.TLS, pCheck uintptr, isFreeList int32, iPage TPgno, N } if N != 0 && nErrAtStart == (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr { if isFreeList != 0 { - v2 = __ccgo_ts + 4401 + v2 = __ccgo_ts + 4465 } else { - v2 = __ccgo_ts + 4406 + v2 = __ccgo_ts + 4470 } - _checkAppendMsg(tls, pCheck, __ccgo_ts+4427, libc.VaList(bp+16, v2, expected-N, expected)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4491, libc.VaList(bp+16, v2, expected-N, expected)) } } @@ -56027,12 +56310,12 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr if _checkRef(tls, pCheck, iPage) != 0 { return 0 } - (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4453 + (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4517 (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = iPage v1 = _btreeGetPage(tls, pBt, iPage, bp+8, 0) rc = v1 if v1 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4471, libc.VaList(bp+56, rc)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4535, libc.VaList(bp+56, rc)) if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< usableSize-uint32(4) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4625, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4689, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) doCoverageCheck = 0 goto _4 } pCell = data + uintptr(pc) (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FxParseCell})))(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), pCell, bp+24) if pc+uint32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnSize) > usableSize { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4655, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4719, 0) doCoverageCheck = 0 goto _4 } @@ -56114,7 +56400,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr v5 = libc.BoolInt32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey >= *(*Ti64)(unsafe.Pointer(bp))) } if v5 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4679, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4743, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) } *(*Ti64)(unsafe.Pointer(bp)) = (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey keyCanBeEqual = 0 /* Only the first key on the page may ==maxKey */ @@ -56132,12 +56418,12 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr /* Check sanity of left child page for internal pages */ pgno = int32(_sqlite3Get4byte(tls, pCell)) if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 { - _checkPtrmap(tls, pCheck, uint32(pgno), uint8(PTRMAP_BTREE), iPage) + _checkPtrmap(tls, pCheck, uint32(uint32(pgno)), uint8(PTRMAP_BTREE), iPage) } - d2 = _checkTreePage(tls, pCheck, uint32(pgno), bp, *(*Ti64)(unsafe.Pointer(bp))) + d2 = _checkTreePage(tls, pCheck, uint32(uint32(pgno)), bp, *(*Ti64)(unsafe.Pointer(bp))) keyCanBeEqual = 0 if d2 != depth { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4703, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4767, 0) depth = d2 } } else { @@ -56185,7 +56471,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr /* Enforced by btreeComputeFreeSpace() */ size1 = int32(*(*Tu8)(unsafe.Pointer(data + uintptr(i+int32(2)))))<= *(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4728, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4792, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) break } else { nFrag = int32(uint32(nFrag) + (*(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) - prev&libc.Uint32FromInt32(0xffff) - libc.Uint32FromInt32(1))) @@ -56228,9 +56514,10 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr ** number of fragmented free bytes within the cell content area. */ if *(*Tu32)(unsafe.Pointer(heap)) == uint32(0) && nFrag != int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4765, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4829, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) } } + goto end_of_check end_of_check: ; if !(doCoverageCheck != 0) { @@ -56238,7 +56525,7 @@ end_of_check: } _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = saved_zPfx - (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = uint32(saved_v1) + (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = uint32(uint32(saved_v1)) (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv2 = saved_v2 return depth + int32(1) } @@ -56267,16 +56554,16 @@ end_of_check: // ** the unverified btrees. Except, if aRoot[1] is 1, then the freelist // ** checks are still performed. // */ -func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { - bp := tls.Alloc(256) - defer tls.Free(256) +func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, aCnt uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { + bp := tls.Alloc(272) + defer tls.Free(272) var bCkFreelist, bPartial int32 var i, mx, mxInHdr TPgno var pBt uintptr var savedDbFlags Tu64 - var _ /* notUsed at bp+224 */ Ti64 + var _ /* notUsed at bp+232 */ Ti64 var _ /* sCheck at bp+0 */ TIntegrityCk - var _ /* zErr at bp+120 */ [100]int8 + var _ /* zErr at bp+128 */ [100]int8 _, _, _, _, _, _, _ = bCkFreelist, bPartial, i, mx, mxInHdr, pBt, savedDbFlags pBt = (*TBtree)(unsafe.Pointer(p)).FpBt savedDbFlags = (*Tsqlite3)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags @@ -56290,13 +56577,13 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } } _sqlite3BtreeEnter(tls, p) - libc.Xmemset(tls, bp, 0, uint64(120)) + libc.Xmemset(tls, bp, 0, uint64(128)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fdb = db (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt = pBt (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage = _btreePagecount(tls, (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr = mxErr - _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+120, int32(100), int32(SQLITE_MAX_LENGTH)) + _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+128, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FerrMsg.FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage == uint32(0) { goto integrity_ck_cleanup @@ -56311,14 +56598,14 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin _checkOom(tls, bp) goto integrity_ck_cleanup } - i = uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize + libc.Uint32FromInt32(1) + i = uint32(uint32(_sqlite3PendingByte))/(*TBtShared)(unsafe.Pointer(pBt)).FpageSize + libc.Uint32FromInt32(1) if i <= (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage { _setPageReferenced(tls, bp, i) } /* Check the integrity of the freelist */ if bCkFreelist != 0 { - (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4817 + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4881 _checkList(tls, bp, int32(1), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+32), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = uintptr(0) } @@ -56329,7 +56616,7 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin mx = uint32(0) i = uint32(0) for { - if !(int32(i) < nRoot) { + if !(int32(int32(i)) < nRoot) { break } if mx < *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) { @@ -56342,28 +56629,29 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } mxInHdr = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+52) if mx != mxInHdr { - _checkAppendMsg(tls, bp, __ccgo_ts+4828, libc.VaList(bp+240, mx, mxInHdr)) + _checkAppendMsg(tls, bp, __ccgo_ts+4892, libc.VaList(bp+248, mx, mxInHdr)) } } else { if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+64) != uint32(0) { - _checkAppendMsg(tls, bp, __ccgo_ts+4873, 0) + _checkAppendMsg(tls, bp, __ccgo_ts+4937, 0) } } } *(*Tu64)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).Fdb + 48)) &= ^libc.Uint64FromInt32(SQLITE_CellSizeCk) i = uint32(0) for { - if !(int32(i) < nRoot && (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr != 0) { + if !(int32(int32(i)) < nRoot && (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr != 0) { break } - if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) == uint32(0) { - goto _2 - } - if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { - _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnRow = 0 + if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) != 0 { + if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { + _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + } + (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fv0 = *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) + _checkTreePage(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), bp+232, libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)< uint32(nSrcPage) { + if (*Tsqlite3_backup)(unsafe.Pointer(p)).FiNext > uint32(uint32(nSrcPage)) { rc = int32(SQLITE_DONE) } else { if !((*Tsqlite3_backup)(unsafe.Pointer(p)).FisAttached != 0) { @@ -57197,7 +57486,7 @@ func Xsqlite3_backup_step(tls *libc.TLS, p uintptr, nPage int32) (r int32) { if pgszSrc < pgszDest { ratio = pgszDest / pgszSrc nDestTruncate = (nSrcPage + ratio - int32(1)) / ratio - if nDestTruncate == int32(uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer((*Tsqlite3_backup)(unsafe.Pointer(p)).FpDest)).FpBt)).FpageSize+libc.Uint32FromInt32(1)) { + if nDestTruncate == int32(uint32(uint32(_sqlite3PendingByte))/(*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer((*Tsqlite3_backup)(unsafe.Pointer(p)).FpDest)).FpBt)).FpageSize+libc.Uint32FromInt32(1)) { nDestTruncate-- } } else { @@ -57213,7 +57502,7 @@ func Xsqlite3_backup_step(tls *libc.TLS, p uintptr, nPage int32) (r int32) { ** pending-byte page in the source database may need to be ** copied into the destination database. */ - iSize = int64(pgszSrc) * int64(nSrcPage) + iSize = int64(int64(pgszSrc)) * int64(int64(nSrcPage)) pFile = _sqlite3PagerFile(tls, pDestPager) /* This block ensures that all data required to recreate the original ** database has been stored in the journal for pDestPager and the @@ -57222,12 +57511,12 @@ func Xsqlite3_backup_step(tls *libc.TLS, p uintptr, nPage int32) (r int32) { ** occurs, the original database will be reconstructed from the ** journal file. */ _sqlite3PagerPagecount(tls, pDestPager, bp+8) - iPg = uint32(nDestTruncate) + iPg = uint32(uint32(nDestTruncate)) for { if !(rc == SQLITE_OK && iPg <= uint32(*(*int32)(unsafe.Pointer(bp + 8)))) { break } - if iPg != uint32(_sqlite3PendingByte)/(*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer((*Tsqlite3_backup)(unsafe.Pointer(p)).FpDest)).FpBt)).FpageSize+libc.Uint32FromInt32(1) { + if iPg != uint32(uint32(_sqlite3PendingByte))/(*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer((*Tsqlite3_backup)(unsafe.Pointer(p)).FpDest)).FpBt)).FpageSize+libc.Uint32FromInt32(1) { rc = _sqlite3PagerGet(tls, pDestPager, iPg, bp+16, 0) if rc == SQLITE_OK { rc = _sqlite3PagerWrite(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) @@ -57255,7 +57544,7 @@ func Xsqlite3_backup_step(tls *libc.TLS, p uintptr, nPage int32) (r int32) { break } *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0) - iSrcPg1 = uint32(iOff/int64(pgszSrc) + libc.Int64FromInt32(1)) + iSrcPg1 = uint32(iOff/int64(int64(pgszSrc)) + libc.Int64FromInt32(1)) rc = _sqlite3PagerGet(tls, pSrcPager, iSrcPg1, bp+24, 0) if rc == SQLITE_OK { zData = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp + 24))) @@ -57265,7 +57554,7 @@ func Xsqlite3_backup_step(tls *libc.TLS, p uintptr, nPage int32) (r int32) { goto _6 _6: ; - iOff += int64(pgszSrc) + iOff += int64(int64(pgszSrc)) } if rc == SQLITE_OK { rc = _backupTruncateFile(tls, pFile, iSize) @@ -57275,7 +57564,7 @@ func Xsqlite3_backup_step(tls *libc.TLS, p uintptr, nPage int32) (r int32) { rc = _sqlite3PagerSync(tls, pDestPager, uintptr(0)) } } else { - _sqlite3PagerTruncateImage(tls, pDestPager, uint32(nDestTruncate)) + _sqlite3PagerTruncateImage(tls, pDestPager, uint32(uint32(nDestTruncate))) rc = _sqlite3PagerCommitPhaseOne(tls, pDestPager, uintptr(0), 0) } /* Finish committing the transaction to the destination database. */ @@ -57513,6 +57802,7 @@ func _sqlite3BtreeCopyFile(tls *libc.TLS, pTo uintptr, pFrom uintptr) (r int32) } else { _sqlite3PagerClearCache(tls, _sqlite3BtreePager(tls, (*(*Tsqlite3_backup)(unsafe.Pointer(bp))).FpDest)) } + goto copy_finished copy_finished: ; _sqlite3BtreeLeave(tls, pFrom) @@ -57569,7 +57859,7 @@ func _vdbeMemRenderNum(tls *libc.TLS, sz int32, zBuf uintptr, p uintptr) { } else { v1 = *(*float64)(unsafe.Pointer(p)) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5071, libc.VaList(bp+48, v1)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5135, libc.VaList(bp+48, v1)) *(*int8)(unsafe.Pointer(zBuf + uintptr((*(*TStrAccum)(unsafe.Pointer(bp))).FnChar))) = 0 /* Fast version of sqlite3StrAccumFinish(&acc) */ (*TMem)(unsafe.Pointer(p)).Fn = int32((*(*TStrAccum)(unsafe.Pointer(bp))).FnChar) } @@ -57594,7 +57884,7 @@ func _sqlite3VdbeChangeEncoding(tls *libc.TLS, pMem uintptr, desiredEnc int32) ( var rc int32 _ = rc if !(int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&libc.Int32FromInt32(MEM_Str) != 0) { - (*TMem)(unsafe.Pointer(pMem)).Fenc = uint8(desiredEnc) + (*TMem)(unsafe.Pointer(pMem)).Fenc = uint8(uint8(desiredEnc)) return SQLITE_OK } if int32((*TMem)(unsafe.Pointer(pMem)).Fenc) == desiredEnc { @@ -57603,7 +57893,7 @@ func _sqlite3VdbeChangeEncoding(tls *libc.TLS, pMem uintptr, desiredEnc int32) ( /* MemTranslate() may return SQLITE_OK or SQLITE_NOMEM. If NOMEM is returned, ** then the encoding of the value may not have changed. */ - rc = _sqlite3VdbeMemTranslate(tls, pMem, uint8(desiredEnc)) + rc = _sqlite3VdbeMemTranslate(tls, pMem, uint8(uint8(desiredEnc))) return rc } @@ -57624,11 +57914,11 @@ func _sqlite3VdbeMemGrow(tls *libc.TLS, pMem uintptr, n int32, bPreserve int32) ** contain a valid string or blob value. */ if (*TMem)(unsafe.Pointer(pMem)).FszMalloc > 0 && bPreserve != 0 && (*TMem)(unsafe.Pointer(pMem)).Fz == (*TMem)(unsafe.Pointer(pMem)).FzMalloc { if (*TMem)(unsafe.Pointer(pMem)).Fdb != 0 { - v1 = _sqlite3DbReallocOrFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).Fz, uint64(n)) + v1 = _sqlite3DbReallocOrFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).Fz, uint64(uint64(n))) (*TMem)(unsafe.Pointer(pMem)).FzMalloc = v1 (*TMem)(unsafe.Pointer(pMem)).Fz = v1 } else { - (*TMem)(unsafe.Pointer(pMem)).FzMalloc = _sqlite3Realloc(tls, (*TMem)(unsafe.Pointer(pMem)).Fz, uint64(n)) + (*TMem)(unsafe.Pointer(pMem)).FzMalloc = _sqlite3Realloc(tls, (*TMem)(unsafe.Pointer(pMem)).Fz, uint64(uint64(n))) if (*TMem)(unsafe.Pointer(pMem)).FzMalloc == uintptr(0) { Xsqlite3_free(tls, (*TMem)(unsafe.Pointer(pMem)).Fz) } @@ -57639,7 +57929,7 @@ func _sqlite3VdbeMemGrow(tls *libc.TLS, pMem uintptr, n int32, bPreserve int32) if (*TMem)(unsafe.Pointer(pMem)).FszMalloc > 0 { _sqlite3DbFreeNN(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).FzMalloc) } - (*TMem)(unsafe.Pointer(pMem)).FzMalloc = _sqlite3DbMallocRaw(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, uint64(n)) + (*TMem)(unsafe.Pointer(pMem)).FzMalloc = _sqlite3DbMallocRaw(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, uint64(uint64(n))) } if (*TMem)(unsafe.Pointer(pMem)).FzMalloc == uintptr(0) { _sqlite3VdbeMemSetNull(tls, pMem) @@ -57866,7 +58156,7 @@ func _sqlite3VdbeMemStringify(tls *libc.TLS, pMem uintptr, enc Tu8, bForce Tu8) p2 = pMem + 20 *(*Tu16)(unsafe.Pointer(p2)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p2))) & ^(libc.Int32FromInt32(MEM_Int) | libc.Int32FromInt32(MEM_Real) | libc.Int32FromInt32(MEM_IntReal))) } - _sqlite3VdbeChangeEncoding(tls, pMem, int32(enc)) + _sqlite3VdbeChangeEncoding(tls, pMem, int32(int32(enc))) return SQLITE_OK } @@ -58113,7 +58403,7 @@ func _sqlite3VdbeIntegerAffinity(tls *libc.TLS, pMem uintptr) { ** the second condition under the assumption that addition overflow causes ** values to wrap around. */ - if *(*float64)(unsafe.Pointer(pMem)) == float64(ix) && ix > int64(-libc.Int32FromInt32(1))-(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)< int64(-libc.Int32FromInt32(1))-(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<= -int64(2251799813685248) && i < int64(2251799813685248)) } @@ -58176,7 +58466,7 @@ func _sqlite3RealToI64(tls *libc.TLS, r float64) (r1 Ti64) { if r > +libc.Float64FromFloat64(9.223372036854775e+18) { return libc.Int64FromUint32(0xffffffff) | libc.Int64FromInt32(0x7fffffff)< int64(iLimit) { + if nByte > int64(int64(iLimit)) { if xDel != 0 && xDel != uintptr(-libc.Int32FromInt32(1)) { if xDel == __ccgo_fp(_sqlite3OomClear) { _sqlite3DbFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, z) @@ -58596,8 +58895,8 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T */ if xDel == uintptr(-libc.Int32FromInt32(1)) { nAlloc = nByte - if int32(flags)&int32(MEM_Term) != 0 { - if int32(enc) == int32(SQLITE_UTF8) { + if int32(int32(flags))&int32(MEM_Term) != 0 { + if int32(int32(enc)) == int32(SQLITE_UTF8) { v2 = int32(1) } else { v2 = int32(2) @@ -58612,7 +58911,7 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T if _sqlite3VdbeMemClearAndResize(tls, pMem, int32(v3)) != 0 { return int32(SQLITE_NOMEM) } - libc.Xmemcpy(tls, (*TMem)(unsafe.Pointer(pMem)).Fz, z, uint64(nAlloc)) + libc.Xmemcpy(tls, (*TMem)(unsafe.Pointer(pMem)).Fz, z, uint64(uint64(nAlloc))) } else { _sqlite3VdbeMemRelease(tls, pMem) (*TMem)(unsafe.Pointer(pMem)).Fz = z @@ -58632,7 +58931,7 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T (*TMem)(unsafe.Pointer(pMem)).Fn = int32(nByte & libc.Int64FromInt32(0x7fffffff)) (*TMem)(unsafe.Pointer(pMem)).Fflags = flags (*TMem)(unsafe.Pointer(pMem)).Fenc = enc - if int32(enc) > int32(SQLITE_UTF8) && _sqlite3VdbeMemHandleBom(tls, pMem) != 0 { + if int32(int32(enc)) > int32(SQLITE_UTF8) && _sqlite3VdbeMemHandleBom(tls, pMem) != 0 { return int32(SQLITE_NOMEM) } return SQLITE_OK @@ -58660,7 +58959,7 @@ func _sqlite3VdbeMemFromBtree(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32 _, _ = rc, v1 (*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(MEM_Null) if _sqlite3BtreeMaxRecordSize(tls, pCur) < int64(offset+amt) { - return _sqlite3CorruptError(tls, int32(83638)) + return _sqlite3CorruptError(tls, int32(84060)) } v1 = _sqlite3VdbeMemClearAndResize(tls, pMem, int32(amt+uint32(1))) rc = v1 @@ -58669,7 +58968,7 @@ func _sqlite3VdbeMemFromBtree(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32 if rc == SQLITE_OK { *(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pMem)).Fz + uintptr(amt))) = 0 /* Overrun area used when reading malformed records */ (*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(MEM_Blob) - (*TMem)(unsafe.Pointer(pMem)).Fn = int32(amt) + (*TMem)(unsafe.Pointer(pMem)).Fn = int32(int32(amt)) } else { _sqlite3VdbeMemRelease(tls, pMem) } @@ -58690,7 +58989,7 @@ func _sqlite3VdbeMemFromBtreeZeroOffset(tls *libc.TLS, pCur uintptr, amt Tu32, p (*TMem)(unsafe.Pointer(pMem)).Fz = _sqlite3BtreePayloadFetch(tls, pCur, bp) if amt <= *(*Tu32)(unsafe.Pointer(bp)) { (*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(libc.Int32FromInt32(MEM_Blob) | libc.Int32FromInt32(MEM_Ephem)) - (*TMem)(unsafe.Pointer(pMem)).Fn = int32(amt) + (*TMem)(unsafe.Pointer(pMem)).Fn = int32(int32(amt)) } else { rc = _sqlite3VdbeMemFromBtree(tls, pCur, uint32(0), amt, pMem) } @@ -58719,10 +59018,10 @@ func _valueToText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) { } p2 = pVal + 20 *(*Tu16)(unsafe.Pointer(p2)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p2))) | libc.Int32FromInt32(MEM_Str)) - if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fenc) != int32(enc) & ^libc.Int32FromInt32(SQLITE_UTF16_ALIGNED) { - _sqlite3VdbeChangeEncoding(tls, pVal, int32(enc) & ^libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) + if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fenc) != int32(int32(enc)) & ^libc.Int32FromInt32(SQLITE_UTF16_ALIGNED) { + _sqlite3VdbeChangeEncoding(tls, pVal, int32(int32(enc)) & ^libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) } - if int32(enc)&int32(SQLITE_UTF16_ALIGNED) != 0 && int32(1) == int32(1)&int32(int64((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fz)) { + if int32(int32(enc))&int32(SQLITE_UTF16_ALIGNED) != 0 && int32(1) == int32(1)&int32(int64((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fz)) { if _sqlite3VdbeMemMakeWriteable(tls, pVal) != SQLITE_OK { return uintptr(0) } @@ -58731,7 +59030,7 @@ func _valueToText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) { } else { _sqlite3VdbeMemStringify(tls, pVal, enc, uint8(0)) } - if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fenc) == int32(enc) & ^libc.Int32FromInt32(SQLITE_UTF16_ALIGNED) { + if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fenc) == int32(int32(enc)) & ^libc.Int32FromInt32(SQLITE_UTF16_ALIGNED) { return (*Tsqlite3_value)(unsafe.Pointer(pVal)).Fz } else { return uintptr(0) @@ -58755,7 +59054,7 @@ func _sqlite3ValueText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) { if !(pVal != 0) { return uintptr(0) } - if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Term)) == libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Term) && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fenc) == int32(enc) { + if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Term)) == libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Term) && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fenc) == int32(int32(enc)) { return (*Tsqlite3_value)(unsafe.Pointer(pVal)).Fz } if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Null) != 0 { @@ -58832,8 +59131,8 @@ func _valueNew(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { if pRec == uintptr(0) { pIdx = (*TValueNewStat4Ctx)(unsafe.Pointer(p)).FpIdx /* Counter variable */ nCol = int32((*TIndex)(unsafe.Pointer(pIdx)).FnColumn) /* Number of index columns including rowid */ - nByte = int32(uint64(56)*uint64(nCol) + (libc.Uint64FromInt64(40)+libc.Uint64FromInt32(7))&uint64(^libc.Int32FromInt32(7))) - pRec = _sqlite3DbMallocZero(tls, db, uint64(nByte)) + nByte = int32(uint64(56)*uint64(uint64(nCol)) + (libc.Uint64FromInt64(40)+libc.Uint64FromInt32(7))&uint64(^libc.Int32FromInt32(7))) + pRec = _sqlite3DbMallocZero(tls, db, uint64(uint64(nByte))) if pRec != 0 { (*TUnpackedRecord)(unsafe.Pointer(pRec)).FpKeyInfo = _sqlite3KeyInfoOfIndex(tls, (*TValueNewStat4Ctx)(unsafe.Pointer(p)).FpParse, pIdx) if (*TUnpackedRecord)(unsafe.Pointer(pRec)).FpKeyInfo != 0 { @@ -58911,7 +59210,7 @@ func _valueFromFunction(tls *libc.TLS, db uintptr, p uintptr, enc Tu8, aff Tu8, return SQLITE_OK } if pList != 0 { - apVal = _sqlite3DbMallocZero(tls, db, uint64(8)*uint64(nVal)) + apVal = _sqlite3DbMallocZero(tls, db, uint64(uint64(8)*uint64(uint64(nVal)))) if apVal == uintptr(0) { rc = int32(SQLITE_NOMEM) goto value_from_function_out @@ -58943,15 +59242,16 @@ func _valueFromFunction(tls *libc.TLS, db uintptr, p uintptr, enc Tu8, aff Tu8, (*(*func(*libc.TLS, uintptr, int32, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TFuncDef)(unsafe.Pointer(pFunc)).FxSFunc})))(tls, bp, nVal, apVal) if (*(*Tsqlite3_context)(unsafe.Pointer(bp))).FisError != 0 { rc = (*(*Tsqlite3_context)(unsafe.Pointer(bp))).FisError - _sqlite3ErrorMsg(tls, (*TValueNewStat4Ctx)(unsafe.Pointer(pCtx)).FpParse, __ccgo_ts+3799, libc.VaList(bp+64, Xsqlite3_value_text(tls, pVal))) + _sqlite3ErrorMsg(tls, (*TValueNewStat4Ctx)(unsafe.Pointer(pCtx)).FpParse, __ccgo_ts+3863, libc.VaList(bp+64, Xsqlite3_value_text(tls, pVal))) } else { _sqlite3ValueApplyAffinity(tls, pVal, aff, uint8(SQLITE_UTF8)) - rc = _sqlite3VdbeChangeEncoding(tls, pVal, int32(enc)) + rc = _sqlite3VdbeChangeEncoding(tls, pVal, int32(int32(enc))) if rc == SQLITE_OK && _sqlite3VdbeMemTooBig(tls, pVal) != 0 { rc = int32(SQLITE_TOOBIG) (*TParse)(unsafe.Pointer((*TValueNewStat4Ctx)(unsafe.Pointer(pCtx)).FpParse)).FnErr++ } } + goto value_from_function_out value_from_function_out: ; if rc != SQLITE_OK { @@ -58989,17 +59289,18 @@ value_from_function_out: // ** in all cases. // */ func _valueFromExpr(tls *libc.TLS, db uintptr, pExpr uintptr, enc Tu8, affinity Tu8, ppVal uintptr, pCtx uintptr) (r int32) { - bp := tls.Alloc(32) - defer tls.Free(32) + bp := tls.Alloc(48) + defer tls.Free(48) var aff Tu8 var nVal, negInt, op, rc, v1, v2 int32 - var zNeg, zVal, p3 uintptr + var pLeft, zNeg, zVal, p3 uintptr + var _ /* iVal at bp+8 */ Ti64 var _ /* pVal at bp+0 */ uintptr - _, _, _, _, _, _, _, _, _, _ = aff, nVal, negInt, op, rc, zNeg, zVal, v1, v2, p3 + _, _, _, _, _, _, _, _, _, _, _ = aff, nVal, negInt, op, pLeft, rc, zNeg, zVal, v1, v2, p3 zVal = uintptr(0) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) negInt = int32(1) - zNeg = __ccgo_ts + 1652 + zNeg = __ccgo_ts + 1666 rc = SQLITE_OK for { v1 = int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) @@ -59032,13 +59333,18 @@ func _valueFromExpr(tls *libc.TLS, db uintptr, pExpr uintptr, enc Tu8, affinity return rc } /* Handle negative integers in a single step. This is needed in the - ** case when the value is -9223372036854775808. - */ - if op == int32(TK_UMINUS) && (int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pExpr)).FpLeft)).Fop) == int32(TK_INTEGER) || int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pExpr)).FpLeft)).Fop) == int32(TK_FLOAT)) { - pExpr = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft - op = int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) - negInt = -int32(1) - zNeg = __ccgo_ts + 5078 + ** case when the value is -9223372036854775808. Except - do not do this + ** for hexadecimal literals. */ + if op == int32(TK_UMINUS) { + pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft + if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_INTEGER) || int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_FLOAT) { + if (*TExpr)(unsafe.Pointer(pLeft)).Fflags&uint32(libc.Int32FromInt32(EP_IntValue)) != uint32(0) || int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pLeft + 8))))) != int32('0') || int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pLeft + 8)) + 1))) & ^libc.Int32FromInt32(0x20) != int32('X') { + pExpr = pLeft + op = int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) + negInt = -int32(1) + zNeg = __ccgo_ts + 5142 + } + } } if op == int32(TK_STRING) || op == int32(TK_FLOAT) || op == int32(TK_INTEGER) { *(*uintptr)(unsafe.Pointer(bp)) = _valueNew(tls, db, pCtx) @@ -59046,16 +59352,30 @@ func _valueFromExpr(tls *libc.TLS, db uintptr, pExpr uintptr, enc Tu8, affinity goto no_mem } if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_IntValue)) != uint32(0) { - _sqlite3VdbeMemSetInt64(tls, *(*uintptr)(unsafe.Pointer(bp)), int64(*(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fu)))*int64(negInt)) + _sqlite3VdbeMemSetInt64(tls, *(*uintptr)(unsafe.Pointer(bp)), int64(*(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fu)))*int64(int64(negInt))) } else { - zVal = _sqlite3MPrintf(tls, db, __ccgo_ts+5080, libc.VaList(bp+16, zNeg, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) - if zVal == uintptr(0) { - goto no_mem + if op == int32(TK_INTEGER) && 0 == _sqlite3DecOrHexToI64(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), bp+8) { + _sqlite3VdbeMemSetInt64(tls, *(*uintptr)(unsafe.Pointer(bp)), *(*Ti64)(unsafe.Pointer(bp + 8))*int64(int64(negInt))) + } else { + zVal = _sqlite3MPrintf(tls, db, __ccgo_ts+5144, libc.VaList(bp+24, zNeg, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) + if zVal == uintptr(0) { + goto no_mem + } + _sqlite3ValueSetStr(tls, *(*uintptr)(unsafe.Pointer(bp)), -int32(1), zVal, uint8(SQLITE_UTF8), __ccgo_fp(_sqlite3OomClear)) } - _sqlite3ValueSetStr(tls, *(*uintptr)(unsafe.Pointer(bp)), -int32(1), zVal, uint8(SQLITE_UTF8), __ccgo_fp(_sqlite3OomClear)) } - if (op == int32(TK_INTEGER) || op == int32(TK_FLOAT)) && int32(affinity) == int32(SQLITE_AFF_BLOB) { - _sqlite3ValueApplyAffinity(tls, *(*uintptr)(unsafe.Pointer(bp)), uint8(SQLITE_AFF_NUMERIC), uint8(SQLITE_UTF8)) + if int32(int32(affinity)) == int32(SQLITE_AFF_BLOB) { + if op == int32(TK_FLOAT) { + _sqlite3AtoF(tls, (*Tsqlite3_value)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fz, *(*uintptr)(unsafe.Pointer(bp)), (*Tsqlite3_value)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fn, uint8(SQLITE_UTF8)) + (*Tsqlite3_value)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fflags = uint16(MEM_Real) + } else { + if op == int32(TK_INTEGER) { + /* This case is required by -9223372036854775808 and other strings + ** that look like integers but cannot be handled by the + ** sqlite3DecOrHexToI64() call above. */ + _sqlite3ValueApplyAffinity(tls, *(*uintptr)(unsafe.Pointer(bp)), uint8(SQLITE_AFF_NUMERIC), uint8(SQLITE_UTF8)) + } + } } else { _sqlite3ValueApplyAffinity(tls, *(*uintptr)(unsafe.Pointer(bp)), affinity, uint8(SQLITE_UTF8)) } @@ -59063,8 +59383,8 @@ func _valueFromExpr(tls *libc.TLS, db uintptr, pExpr uintptr, enc Tu8, affinity p3 = *(*uintptr)(unsafe.Pointer(bp)) + 20 *(*Tu16)(unsafe.Pointer(p3)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p3))) & ^libc.Int32FromInt32(MEM_Str)) } - if int32(enc) != int32(SQLITE_UTF8) { - rc = _sqlite3VdbeChangeEncoding(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(enc)) + if int32(int32(enc)) != int32(SQLITE_UTF8) { + rc = _sqlite3VdbeChangeEncoding(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(int32(enc))) } } else { if op == int32(TK_UMINUS) { @@ -59118,6 +59438,7 @@ func _valueFromExpr(tls *libc.TLS, db uintptr, pExpr uintptr, enc Tu8, affinity } *(*uintptr)(unsafe.Pointer(ppVal)) = *(*uintptr)(unsafe.Pointer(bp)) return rc + goto no_mem no_mem: ; if pCtx == uintptr(0) || (*TParse)(unsafe.Pointer((*TValueNewStat4Ctx)(unsafe.Pointer(pCtx)).FpParse)).FnErr == 0 { @@ -59322,25 +59643,27 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC bp := tls.Alloc(16) defer tls.Free(16) var a, pMem, v4 uintptr - var i, iField, iHdr, szField, v1, v3 int32 - var _ /* nHdr at bp+4 */ int32 + var i, v1, v3 int32 + var iField Ti64 + var iHdr, szField Tu32 + var _ /* nHdr at bp+4 */ Tu32 var _ /* t at bp+0 */ Tu32 _, _, _, _, _, _, _, _, _ = a, i, iField, iHdr, pMem, szField, v1, v3, v4 *(*Tu32)(unsafe.Pointer(bp)) = uint32(0) /* Next unread data byte */ - szField = 0 /* Column index */ + szField = uint32(0) /* Column index */ a = pRec /* Typecast byte array */ pMem = *(*uintptr)(unsafe.Pointer(ppVal)) /* Write result into this Mem object */ if int32(*(*Tu8)(unsafe.Pointer(a))) < int32(libc.Uint8FromInt32(0x80)) { - *(*int32)(unsafe.Pointer(bp + 4)) = int32(uint32(*(*Tu8)(unsafe.Pointer(a)))) + *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(*(*Tu8)(unsafe.Pointer(a))) v1 = libc.Int32FromInt32(1) } else { v1 = int32(_sqlite3GetVarint32(tls, a, bp+4)) } - iHdr = int32(uint8(v1)) - if *(*int32)(unsafe.Pointer(bp + 4)) > nRec || iHdr >= *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84303)) + iHdr = uint32(uint8(v1)) + if *(*Tu32)(unsafe.Pointer(bp + 4)) > uint32(uint32(nRec)) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84745)) } - iField = *(*int32)(unsafe.Pointer(bp + 4)) + iField = int64(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 for { if !(i <= iCol) { @@ -59352,19 +59675,19 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } else { v3 = int32(_sqlite3GetVarint32(tls, a+uintptr(iHdr), bp)) } - iHdr += int32(uint8(v3)) - if iHdr > *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84309)) + iHdr += uint32(uint8(v3)) + if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84751)) } - szField = int32(_sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp)))) - iField += szField + szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) + iField += int64(int64(szField)) goto _2 _2: ; i++ } - if iField > nRec { - return _sqlite3CorruptError(tls, int32(84315)) + if iField > int64(int64(nRec)) { + return _sqlite3CorruptError(tls, int32(84757)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -59374,7 +59697,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC return int32(SQLITE_NOMEM) } } - _sqlite3VdbeSerialGet(tls, a+uintptr(iField-szField), *(*Tu32)(unsafe.Pointer(bp)), pMem) + _sqlite3VdbeSerialGet(tls, a+uintptr(iField-int64(int64(szField))), *(*Tu32)(unsafe.Pointer(bp)), pMem) (*TMem)(unsafe.Pointer(pMem)).Fenc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc return SQLITE_OK } @@ -59417,7 +59740,7 @@ func _sqlite3Stat4ProbeFree(tls *libc.TLS, pRec uintptr) { // */ func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, xDel uintptr) { if v != 0 { - _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, xDel) + _sqlite3VdbeMemSetStr(tls, v, z, int64(int64(n)), enc, xDel) } } @@ -59456,10 +59779,10 @@ func _sqlite3ValueBytes(tls *libc.TLS, pVal uintptr, enc Tu8) (r int32) { var p uintptr _ = p p = pVal - if int32((*TMem)(unsafe.Pointer(p)).Fflags)&int32(MEM_Str) != 0 && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fenc) == int32(enc) { + if int32((*TMem)(unsafe.Pointer(p)).Fflags)&int32(MEM_Str) != 0 && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fenc) == int32(int32(enc)) { return (*TMem)(unsafe.Pointer(p)).Fn } - if int32((*TMem)(unsafe.Pointer(p)).Fflags)&int32(MEM_Str) != 0 && int32(enc) != int32(SQLITE_UTF8) && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fenc) != int32(SQLITE_UTF8) { + if int32((*TMem)(unsafe.Pointer(p)).Fflags)&int32(MEM_Str) != 0 && int32(int32(enc)) != int32(SQLITE_UTF8) && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fenc) != int32(SQLITE_UTF8) { return (*TMem)(unsafe.Pointer(p)).Fn } if int32((*TMem)(unsafe.Pointer(p)).Fflags)&int32(MEM_Blob) != 0 { @@ -59535,10 +59858,10 @@ func _sqlite3VdbeSetSql(tls *libc.TLS, p uintptr, z uintptr, n int32, prepFlags return } (*TVdbe)(unsafe.Pointer(p)).FprepFlags = prepFlags - if int32(prepFlags)&int32(SQLITE_PREPARE_SAVESQL) == 0 { + if int32(int32(prepFlags))&int32(SQLITE_PREPARE_SAVESQL) == 0 { (*TVdbe)(unsafe.Pointer(p)).Fexpmask = uint32(0) } - (*TVdbe)(unsafe.Pointer(p)).FzSql = _sqlite3DbStrNDup(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, z, uint64(n)) + (*TVdbe)(unsafe.Pointer(p)).FzSql = _sqlite3DbStrNDup(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, z, uint64(uint64(n))) } // C documentation @@ -59613,7 +59936,7 @@ func _growOpArray(tls *libc.TLS, v uintptr, nOp int32) (r int32) { _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(p)).Fdb) return int32(SQLITE_NOMEM) } - pNew = _sqlite3DbRealloc(tls, (*TParse)(unsafe.Pointer(p)).Fdb, (*TVdbe)(unsafe.Pointer(v)).FaOp, uint64(nNew)*uint64(24)) + pNew = _sqlite3DbRealloc(tls, (*TParse)(unsafe.Pointer(p)).Fdb, (*TVdbe)(unsafe.Pointer(v)).FaOp, uint64(uint64(nNew))*uint64(24)) if pNew != 0 { (*TParse)(unsafe.Pointer(p)).FszOpAlloc = _sqlite3DbMallocSize(tls, (*TParse)(unsafe.Pointer(p)).Fdb, pNew) (*TVdbe)(unsafe.Pointer(v)).FnOpAlloc = int32(uint64((*TParse)(unsafe.Pointer(p)).FszOpAlloc) / uint64(24)) @@ -59690,7 +60013,7 @@ func _sqlite3VdbeAddOp3(tls *libc.TLS, p uintptr, op int32, p1 int32, p2 int32, } (*TVdbe)(unsafe.Pointer(p)).FnOp++ pOp = (*TVdbe)(unsafe.Pointer(p)).FaOp + uintptr(i)*24 - (*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode = uint8(op) + (*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode = uint8(uint8(op)) (*TVdbeOp)(unsafe.Pointer(pOp)).Fp5 = uint16(0) (*TVdbeOp)(unsafe.Pointer(pOp)).Fp1 = p1 (*TVdbeOp)(unsafe.Pointer(pOp)).Fp2 = p2 @@ -59714,7 +60037,7 @@ func _sqlite3VdbeAddOp4Int(tls *libc.TLS, p uintptr, op int32, p1 int32, p2 int3 } (*TVdbe)(unsafe.Pointer(p)).FnOp++ pOp = (*TVdbe)(unsafe.Pointer(p)).FaOp + uintptr(i)*24 - (*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode = uint8(op) + (*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode = uint8(uint8(op)) (*TVdbeOp)(unsafe.Pointer(pOp)).Fp5 = uint16(0) (*TVdbeOp)(unsafe.Pointer(pOp)).Fp1 = p1 (*TVdbeOp)(unsafe.Pointer(pOp)).Fp2 = p2 @@ -59772,7 +60095,7 @@ func _sqlite3VdbeMultiLoad(tls *libc.TLS, p uintptr, iDest int32, zTypes uintptr if !(int32(v2) != 0) { break } - if int32(c) == int32('s') { + if int32(int32(c)) == int32('s') { z = libc.VaUintptr(&ap) if z == uintptr(0) { v3 = int32(OP_Null) @@ -59781,7 +60104,7 @@ func _sqlite3VdbeMultiLoad(tls *libc.TLS, p uintptr, iDest int32, zTypes uintptr } _sqlite3VdbeAddOp4(tls, p, v3, 0, iDest+i, 0, z, 0) } else { - if int32(c) == int32('i') { + if int32(int32(c)) == int32('i') { _sqlite3VdbeAddOp2(tls, p, int32(OP_Integer), libc.VaInt32(&ap), iDest+i) } else { goto skip_op_resultrow @@ -59793,6 +60116,7 @@ func _sqlite3VdbeMultiLoad(tls *libc.TLS, p uintptr, iDest int32, zTypes uintptr i++ } _sqlite3VdbeAddOp2(tls, p, int32(OP_ResultRow), iDest, i) + goto skip_op_resultrow skip_op_resultrow: ; _ = ap @@ -59829,7 +60153,7 @@ func _sqlite3VdbeAddFunctionCall(tls *libc.TLS, pParse uintptr, p1 int32, p2 int _, _, _, _, _ = addr, nByte, pCtx, v, v1 v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe nByte = int32(uint64(56) + uint64(nArg-libc.Int32FromInt32(1))*uint64(8)) - pCtx = _sqlite3DbMallocRawNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(nByte)) + pCtx = _sqlite3DbMallocRawNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(uint64(nByte))) if pCtx == uintptr(0) { _freeEphemeralFunction(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pFunc) return 0 @@ -59838,7 +60162,7 @@ func _sqlite3VdbeAddFunctionCall(tls *libc.TLS, pParse uintptr, p1 int32, p2 int (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc = pFunc (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe = uintptr(0) (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = 0 - (*Tsqlite3_context)(unsafe.Pointer(pCtx)).Fargc = uint8(nArg) + (*Tsqlite3_context)(unsafe.Pointer(pCtx)).Fargc = uint8(uint8(nArg)) (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FiOp = _sqlite3VdbeCurrentAddr(tls, v) if eCallCtx != 0 { v1 = int32(OP_PureFunc) @@ -60020,7 +60344,7 @@ func _resizeResolveLabel(tls *libc.TLS, p uintptr, v uintptr, j int32) { var nNewSize int32 _ = nNewSize nNewSize = int32(10) - (*TParse)(unsafe.Pointer(p)).FnLabel - (*TParse)(unsafe.Pointer(p)).FaLabel = _sqlite3DbReallocOrFree(tls, (*TParse)(unsafe.Pointer(p)).Fdb, (*TParse)(unsafe.Pointer(p)).FaLabel, uint64(nNewSize)*uint64(4)) + (*TParse)(unsafe.Pointer(p)).FaLabel = _sqlite3DbReallocOrFree(tls, (*TParse)(unsafe.Pointer(p)).Fdb, (*TParse)(unsafe.Pointer(p)).FaLabel, uint64(uint64(uint64(nNewSize))*uint64(4))) if (*TParse)(unsafe.Pointer(p)).FaLabel == uintptr(0) { (*TParse)(unsafe.Pointer(p)).FnLabelAlloc = 0 } else { @@ -60160,6 +60484,9 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { /* True because of tag-20230419-1 */ (*TOp)(unsafe.Pointer(pOp)).Fp2 = *(*int32)(unsafe.Pointer(aLabel + uintptr(^(*TOp)(unsafe.Pointer(pOp)).Fp2)*4)) } + /* OPFLG_JUMP opcodes never have P2==0, though OPFLG_JUMP0 opcodes + ** might */ + /* Jumps never go off the end of the bytecode array */ break } /* The mkopcodeh.tcl script has so arranged things that the only @@ -60168,6 +60495,7 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { } pOp -= 24 } + goto resolve_p2_values_loop_exit resolve_p2_values_loop_exit: ; if aLabel != 0 { @@ -60497,7 +60825,7 @@ func _sqlite3VdbeChangeToNoop(tls *libc.TLS, p uintptr, addr int32) (r int32) { // ** then remove it. Return true if and only if an opcode was removed. // */ func _sqlite3VdbeDeletePriorOpcode(tls *libc.TLS, p uintptr, op Tu8) (r int32) { - if (*TVdbe)(unsafe.Pointer(p)).FnOp > 0 && int32((*(*TOp)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FaOp + uintptr((*TVdbe)(unsafe.Pointer(p)).FnOp-int32(1))*24))).Fopcode) == int32(op) { + if (*TVdbe)(unsafe.Pointer(p)).FnOp > 0 && int32((*(*TOp)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FaOp + uintptr((*TVdbe)(unsafe.Pointer(p)).FnOp-int32(1))*24))).Fopcode) == int32(int32(op)) { return _sqlite3VdbeChangeToNoop(tls, p, (*TVdbe)(unsafe.Pointer(p)).FnOp-int32(1)) } else { return 0 @@ -60530,12 +60858,12 @@ func _vdbeChangeP4Full(tls *libc.TLS, p uintptr, pOp uintptr, zP4 uintptr, n int *(*uintptr)(unsafe.Pointer(pOp + 16)) = uintptr(0) } if n < 0 { - _sqlite3VdbeChangeP4(tls, p, int32((int64(pOp)-int64((*TVdbe)(unsafe.Pointer(p)).FaOp))/24), zP4, n) + _sqlite3VdbeChangeP4(tls, p, int32((int64(int64(pOp))-int64((*TVdbe)(unsafe.Pointer(p)).FaOp))/24), zP4, n) } else { if n == 0 { n = _sqlite3Strlen30(tls, zP4) } - *(*uintptr)(unsafe.Pointer(pOp + 16)) = _sqlite3DbStrNDup(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, zP4, uint64(n)) + *(*uintptr)(unsafe.Pointer(pOp + 16)) = _sqlite3DbStrNDup(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, zP4, uint64(uint64(n))) (*TOp)(unsafe.Pointer(pOp)).Fp4type = int8(-libc.Int32FromInt32(6)) } } @@ -60569,7 +60897,7 @@ func _sqlite3VdbeChangeP4(tls *libc.TLS, p uintptr, addr int32, _zP4 uintptr, n } else { if *(*uintptr)(unsafe.Pointer(bp)) != uintptr(0) { *(*uintptr)(unsafe.Pointer(pOp + 16)) = *(*uintptr)(unsafe.Pointer(bp)) - (*TOp)(unsafe.Pointer(pOp)).Fp4type = int8(n) + (*TOp)(unsafe.Pointer(pOp)).Fp4type = int8(int8(n)) if n == -int32(11) { _sqlite3VtabLock(tls, *(*uintptr)(unsafe.Pointer(bp))) } @@ -60595,7 +60923,7 @@ func _sqlite3VdbeAppendP4(tls *libc.TLS, p uintptr, pP4 uintptr, n int32) { _freeP4(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, n, pP4) } else { pOp = (*TVdbe)(unsafe.Pointer(p)).FaOp + uintptr((*TVdbe)(unsafe.Pointer(p)).FnOp-int32(1))*24 - (*TVdbeOp)(unsafe.Pointer(pOp)).Fp4type = int8(n) + (*TVdbeOp)(unsafe.Pointer(pOp)).Fp4type = int8(int8(n)) *(*uintptr)(unsafe.Pointer(pOp + 16)) = pP4 } } @@ -60671,7 +60999,7 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { switch int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) { case -int32(8): pKeyInfo = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5085, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5149, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) j = 0 for { if !(j < int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)) { @@ -60681,66 +61009,66 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { if pColl != 0 { v2 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v2 = __ccgo_ts + 1652 + v2 = __ccgo_ts + 1666 } zColl = v2 - if libc.Xstrcmp(tls, zColl, __ccgo_ts+5090) == 0 { - zColl = __ccgo_ts + 5097 + if libc.Xstrcmp(tls, zColl, __ccgo_ts+5154) == 0 { + zColl = __ccgo_ts + 5161 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_DESC) != 0 { - v3 = __ccgo_ts + 5078 + v3 = __ccgo_ts + 5142 } else { - v3 = __ccgo_ts + 1652 + v3 = __ccgo_ts + 1666 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_BIGNULL) != 0 { - v4 = __ccgo_ts + 5099 + v4 = __ccgo_ts + 5163 } else { - v4 = __ccgo_ts + 1652 + v4 = __ccgo_ts + 1666 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5102, libc.VaList(bp+40, v3, v4, zColl)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5166, libc.VaList(bp+40, v3, v4, zColl)) goto _1 _1: ; j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5110, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5174, int32(1)) case -int32(2): pColl1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5126, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5190, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) case -int32(7): pDef = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5135, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5199, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) case -int32(15): pDef1 = (*Tsqlite3_context)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpFunc - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5135, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5199, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) case -int32(13): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1408, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1427, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(3): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5142, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5206, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) case -int32(12): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1375, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1394, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(10): pMem = *(*uintptr)(unsafe.Pointer(pOp + 16)) if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Str) != 0 { zP4 = (*TMem)(unsafe.Pointer(pMem)).Fz } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1408, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1427, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1375, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1394, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Null) != 0 { - zP4 = __ccgo_ts + 1653 + zP4 = __ccgo_ts + 1667 } else { - zP4 = __ccgo_ts + 5145 + zP4 = __ccgo_ts + 5209 } } } } case -int32(11): pVtab = (*TVTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5152, libc.VaList(bp+40, pVtab)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5216, libc.VaList(bp+40, pVtab)) case -int32(14): ai = *(*uintptr)(unsafe.Pointer(pOp + 16)) n = *(*Tu32)(unsafe.Pointer(ai)) /* The first element of an INTARRAY is always the @@ -60755,15 +61083,15 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } else { v6 = int32(',') } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5160, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5224, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) goto _5 _5: ; i++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5165, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5229, int32(1)) case -int32(4): - zP4 = __ccgo_ts + 5167 + zP4 = __ccgo_ts + 5231 case -int32(5): zP4 = (*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FzName default: @@ -60779,10 +61107,10 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } var _encnames = [4]uintptr{ - 0: __ccgo_ts + 5112, - 1: __ccgo_ts + 5114, - 2: __ccgo_ts + 5116, - 3: __ccgo_ts + 5121, + 0: __ccgo_ts + 5176, + 1: __ccgo_ts + 5178, + 2: __ccgo_ts + 5180, + 3: __ccgo_ts + 5185, } // C documentation @@ -61110,7 +61438,7 @@ func _sqlite3VdbeNextOpcode(tls *libc.TLS, p uintptr, pSub uintptr, eMode int32, nSub++ *(*uintptr)(unsafe.Pointer(apSub + uintptr(v5)*8)) = *(*uintptr)(unsafe.Pointer(aOp + uintptr(i)*24 + 16)) (*TMem)(unsafe.Pointer(pSub)).Fflags = uint16(int32((*TMem)(unsafe.Pointer(pSub)).Fflags) & ^(libc.Int32FromInt32(MEM_TypeMask)|libc.Int32FromInt32(MEM_Zero)) | int32(MEM_Blob)) - (*TMem)(unsafe.Pointer(pSub)).Fn = int32(uint64(nSub) * uint64(8)) + (*TMem)(unsafe.Pointer(pSub)).Fn = int32(uint64(uint64(nSub)) * uint64(8)) nRow += (*TSubProgram)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(aOp + uintptr(i)*24 + 16)))).FnOp } } @@ -61361,8 +61689,8 @@ func _sqlite3VdbeMakeReady(tls *libc.TLS, p uintptr, pParse uintptr) { ** opcode array. This extra memory will be reallocated for other elements ** of the prepared statement. */ - n = int32(libc.Uint64FromInt64(24) * uint64((*TVdbe)(unsafe.Pointer(p)).FnOp)) /* Bytes of opcode memory used */ - (*(*TReusableSpace)(unsafe.Pointer(bp + 8))).FpSpace = (*TVdbe)(unsafe.Pointer(p)).FaOp + uintptr(n) /* Unused opcode memory */ + n = int32(libc.Uint64FromInt64(24) * uint64((*TVdbe)(unsafe.Pointer(p)).FnOp)) /* Bytes of opcode memory used */ + (*(*TReusableSpace)(unsafe.Pointer(bp + 8))).FpSpace = (*TVdbe)(unsafe.Pointer(p)).FaOp + uintptr(n) /* Unused opcode memory */ (*(*TReusableSpace)(unsafe.Pointer(bp + 8))).FnFree = int64(((*TParse)(unsafe.Pointer(pParse)).FszOpAlloc - n) & ^libc.Int32FromInt32(7)) /* Bytes of unused memory */ _resolveP2Values(tls, p, bp) libc.SetBitFieldPtr16Uint32(p+200, uint32(libc.BoolUint8((*TParse)(unsafe.Pointer(pParse)).FisMultiWrite != 0 && (*TParse)(unsafe.Pointer(pParse)).FmayAbort != 0)), 5, 0x20) @@ -61385,20 +61713,20 @@ func _sqlite3VdbeMakeReady(tls *libc.TLS, p uintptr, pParse uintptr) { ** reduce the amount of memory held by a prepared statement. */ (*(*TReusableSpace)(unsafe.Pointer(bp + 8))).FnNeeded = 0 - (*TVdbe)(unsafe.Pointer(p)).FaMem = _allocSpace(tls, bp+8, uintptr(0), int64(uint64(nMem)*uint64(56))) - (*TVdbe)(unsafe.Pointer(p)).FaVar = _allocSpace(tls, bp+8, uintptr(0), int64(uint64(nVar)*uint64(56))) + (*TVdbe)(unsafe.Pointer(p)).FaMem = _allocSpace(tls, bp+8, uintptr(0), int64(uint64(uint64(nMem))*uint64(56))) + (*TVdbe)(unsafe.Pointer(p)).FaVar = _allocSpace(tls, bp+8, uintptr(0), int64(uint64(uint64(nVar))*uint64(56))) (*TVdbe)(unsafe.Pointer(p)).FapArg = _allocSpace(tls, bp+8, uintptr(0), int64(uint64(*(*int32)(unsafe.Pointer(bp)))*uint64(8))) - (*TVdbe)(unsafe.Pointer(p)).FapCsr = _allocSpace(tls, bp+8, uintptr(0), int64(uint64(nCursor)*uint64(8))) + (*TVdbe)(unsafe.Pointer(p)).FapCsr = _allocSpace(tls, bp+8, uintptr(0), int64(uint64(uint64(nCursor))*uint64(8))) if (*(*TReusableSpace)(unsafe.Pointer(bp + 8))).FnNeeded != 0 { v1 = _sqlite3DbMallocRawNN(tls, db, uint64((*(*TReusableSpace)(unsafe.Pointer(bp + 8))).FnNeeded)) (*TVdbe)(unsafe.Pointer(p)).FpFree = v1 (*(*TReusableSpace)(unsafe.Pointer(bp + 8))).FpSpace = v1 (*(*TReusableSpace)(unsafe.Pointer(bp + 8))).FnFree = (*(*TReusableSpace)(unsafe.Pointer(bp + 8))).FnNeeded if !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) { - (*TVdbe)(unsafe.Pointer(p)).FaMem = _allocSpace(tls, bp+8, (*TVdbe)(unsafe.Pointer(p)).FaMem, int64(uint64(nMem)*uint64(56))) - (*TVdbe)(unsafe.Pointer(p)).FaVar = _allocSpace(tls, bp+8, (*TVdbe)(unsafe.Pointer(p)).FaVar, int64(uint64(nVar)*uint64(56))) + (*TVdbe)(unsafe.Pointer(p)).FaMem = _allocSpace(tls, bp+8, (*TVdbe)(unsafe.Pointer(p)).FaMem, int64(uint64(uint64(nMem))*uint64(56))) + (*TVdbe)(unsafe.Pointer(p)).FaVar = _allocSpace(tls, bp+8, (*TVdbe)(unsafe.Pointer(p)).FaVar, int64(uint64(uint64(nVar))*uint64(56))) (*TVdbe)(unsafe.Pointer(p)).FapArg = _allocSpace(tls, bp+8, (*TVdbe)(unsafe.Pointer(p)).FapArg, int64(uint64(*(*int32)(unsafe.Pointer(bp)))*uint64(8))) - (*TVdbe)(unsafe.Pointer(p)).FapCsr = _allocSpace(tls, bp+8, (*TVdbe)(unsafe.Pointer(p)).FapCsr, int64(uint64(nCursor)*uint64(8))) + (*TVdbe)(unsafe.Pointer(p)).FapCsr = _allocSpace(tls, bp+8, (*TVdbe)(unsafe.Pointer(p)).FapCsr, int64(uint64(uint64(nCursor))*uint64(8))) } } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -61407,11 +61735,11 @@ func _sqlite3VdbeMakeReady(tls *libc.TLS, p uintptr, pParse uintptr) { (*TVdbe)(unsafe.Pointer(p)).FnMem = 0 } else { (*TVdbe)(unsafe.Pointer(p)).FnCursor = nCursor - (*TVdbe)(unsafe.Pointer(p)).FnVar = int16(nVar) + (*TVdbe)(unsafe.Pointer(p)).FnVar = int16(int16(nVar)) _initMemArray(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar, nVar, db, uint16(MEM_Null)) (*TVdbe)(unsafe.Pointer(p)).FnMem = nMem _initMemArray(tls, (*TVdbe)(unsafe.Pointer(p)).FaMem, nMem, db, uint16(MEM_Undefined)) - libc.Xmemset(tls, (*TVdbe)(unsafe.Pointer(p)).FapCsr, 0, uint64(nCursor)*uint64(8)) + libc.Xmemset(tls, (*TVdbe)(unsafe.Pointer(p)).FapCsr, 0, uint64(uint64(nCursor))*uint64(8)) } _sqlite3VdbeRewind(tls, p) } @@ -61576,10 +61904,10 @@ func _sqlite3VdbeSetNumCols(tls *libc.TLS, p uintptr, nResColumn int32) { _sqlite3DbFree(tls, db, (*TVdbe)(unsafe.Pointer(p)).FaColName) } n = nResColumn * int32(COLNAME_N) - v1 = uint16(nResColumn) + v1 = uint16(uint16(nResColumn)) (*TVdbe)(unsafe.Pointer(p)).FnResAlloc = v1 (*TVdbe)(unsafe.Pointer(p)).FnResColumn = v1 - (*TVdbe)(unsafe.Pointer(p)).FaColName = _sqlite3DbMallocRawNN(tls, db, uint64(56)*uint64(n)) + (*TVdbe)(unsafe.Pointer(p)).FaColName = _sqlite3DbMallocRawNN(tls, db, uint64(uint64(56)*uint64(uint64(n)))) if (*TVdbe)(unsafe.Pointer(p)).FaColName == uintptr(0) { return } @@ -61733,7 +62061,7 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { retryCount = 0 /* Select a super-journal file name */ nMainFile = _sqlite3Strlen30(tls, zMainFile) - zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5175, libc.VaList(bp+24, 0, zMainFile, 0)) + zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5239, libc.VaList(bp+24, 0, zMainFile, 0)) if zSuper == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -61741,18 +62069,18 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { for cond := true; cond; cond = rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 8)) != 0 { if retryCount != 0 { if retryCount > int32(100) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5187, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5251, libc.VaList(bp+24, zSuper)) _sqlite3OsDelete(tls, pVfs, zSuper, 0) break } else { if retryCount == int32(1) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5201, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5265, libc.VaList(bp+24, zSuper)) } } } retryCount++ Xsqlite3_randomness(tls, int32(4), bp+12) - Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5216, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) + Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5280, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) /* The antipenultimate character of the super-journal name must ** be "9" to avoid name collisions when using 8+3 filenames. */ rc = _sqlite3OsAccess(tls, pVfs, zSuper, SQLITE_ACCESS_EXISTS, bp+8) @@ -61983,7 +62311,7 @@ func _sqlite3VdbeCheckFk(tls *libc.TLS, p uintptr, deferred int32) (r int32) { if deferred != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredCons+(*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons > 0 || !(deferred != 0) && (*TVdbe)(unsafe.Pointer(p)).FnFkConstraint > 0 { (*TVdbe)(unsafe.Pointer(p)).Frc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(3)<= 0 && ((*TAuxData)(unsafe.Pointer(pAux)).FiAuxArg > int32(31) || !(uint32(mask)&(libc.Uint32FromInt32(1)<<(*TAuxData)(unsafe.Pointer(pAux)).FiAuxArg) != 0)) { + if iOp < 0 || (*TAuxData)(unsafe.Pointer(pAux)).FiAuxOp == iOp && (*TAuxData)(unsafe.Pointer(pAux)).FiAuxArg >= 0 && ((*TAuxData)(unsafe.Pointer(pAux)).FiAuxArg > int32(31) || !(uint32(uint32(mask))&(libc.Uint32FromInt32(1)<<(*TAuxData)(unsafe.Pointer(pAux)).FiAuxArg) != 0)) { if (*TAuxData)(unsafe.Pointer(pAux)).FxDeleteAux != 0 { (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TAuxData)(unsafe.Pointer(pAux)).FxDeleteAux})))(tls, (*TAuxData)(unsafe.Pointer(pAux)).FpAux) } @@ -62433,7 +62761,7 @@ func _sqlite3VdbeFinishMoveto(tls *libc.TLS, p uintptr) (r int32) { return rc } if *(*int32)(unsafe.Pointer(bp)) != 0 { - return _sqlite3CorruptError(tls, int32(88164)) + return _sqlite3CorruptError(tls, int32(88615)) } (*TVdbeCursor)(unsafe.Pointer(p)).FdeferredMoveto = uint8(0) (*TVdbeCursor)(unsafe.Pointer(p)).FcacheStatus = uint32(CACHE_STALE) @@ -62724,7 +63052,7 @@ func _serialGet(tls *libc.TLS, buf uintptr, serial_type Tu32, pMem uintptr) { _, _ = y, v1 *(*Tu64)(unsafe.Pointer(bp)) = uint64(uint32(*(*uint8)(unsafe.Pointer(buf)))< uint32(nKey) && u != 0 { + if d > uint32(uint32(nKey)) && u != 0 { /* In a corrupt record entry, the last pMem might have been set up using ** uninitialized memory. Overwrite its value with NULL, to prevent ** warnings from MSAN. */ @@ -63055,17 +63383,17 @@ func _sqlite3BlobCompare(tls *libc.TLS, pB1 uintptr, pB2 uintptr) (r int32) { // ** equal to, or greater than the second (double). // */ func _sqlite3IntFloatCompare(tls *libc.TLS, i Ti64, r float64) (r1 int32) { - var s, x float64 + var x float64 var y Ti64 var v1, v2 int32 - _, _, _, _, _ = s, x, y, v1, v2 + _, _, _, _ = x, y, v1, v2 if _sqlite3IsNaN(tls, r) != 0 { /* SQLite considers NaN to be a NULL. And all integer values are greater ** than NULL */ return int32(1) } if _sqlite3Config.FbUseLongDouble != 0 { - x = float64(i) + x = float64(float64(i)) if x < r { v1 = -int32(1) } else { @@ -63079,18 +63407,17 @@ func _sqlite3IntFloatCompare(tls *libc.TLS, i Ti64, r float64) (r1 int32) { if r >= float64(9.223372036854776e+18) { return -int32(1) } - y = int64(r) + y = int64(int64(r)) if i < y { return -int32(1) } if i > y { return +libc.Int32FromInt32(1) } - s = float64(i) - if s < r { + if float64(float64(i)) < r { v2 = -int32(1) } else { - v2 = libc.BoolInt32(s > r) + v2 = libc.BoolInt32(float64(float64(i)) > r) } return v2 } @@ -63291,8 +63618,8 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr d1 = *(*Tu32)(unsafe.Pointer(bp)) i = 0 } - if d1 > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89131))) + if d1 > uint32(uint32(nKey1)) { + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89580))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -63377,12 +63704,12 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr rc = +libc.Int32FromInt32(1) } else { (*(*TMem)(unsafe.Pointer(bp + 8))).Fn = int32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) - if v5 = d1+uint32((*(*TMem)(unsafe.Pointer(bp + 8))).Fn) > uint32(nKey1); !v5 { + if v5 = d1+uint32((*(*TMem)(unsafe.Pointer(bp + 8))).Fn) > uint32(uint32(nKey1)); !v5 { v4 = (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FpKeyInfo pKeyInfo = v4 } if v5 || int32((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89212))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89661))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -63398,7 +63725,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr v6 = (*TMem)(unsafe.Pointer(pRhs)).Fn } nCmp = v6 - rc = libc.Xmemcmp(tls, aKey1+uintptr(d1), (*TMem)(unsafe.Pointer(pRhs)).Fz, uint64(nCmp)) + rc = libc.Xmemcmp(tls, aKey1+uintptr(d1), (*TMem)(unsafe.Pointer(pRhs)).Fz, uint64(uint64(nCmp))) if rc == 0 { rc = (*(*TMem)(unsafe.Pointer(bp + 8))).Fn - (*TMem)(unsafe.Pointer(pRhs)).Fn } @@ -63416,8 +63743,8 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr rc = -int32(1) } else { nStr = int32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) - if d1+uint32(nStr) > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89242))) + if d1+uint32(uint32(nStr)) > uint32(uint32(nKey1)) { + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89691))) return 0 /* Corruption */ } else { if int32((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -63433,7 +63760,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr v7 = (*TMem)(unsafe.Pointer(pRhs)).Fn } nCmp1 = v7 - rc = libc.Xmemcmp(tls, aKey1+uintptr(d1), (*TMem)(unsafe.Pointer(pRhs)).Fz, uint64(nCmp1)) + rc = libc.Xmemcmp(tls, aKey1+uintptr(d1), (*TMem)(unsafe.Pointer(pRhs)).Fz, uint64(uint64(nCmp1))) if rc == 0 { rc = nStr - (*TMem)(unsafe.Pointer(pRhs)).Fn } @@ -63466,12 +63793,12 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } pRhs += 56 d1 += _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp + 68))) - if d1 > uint32(nKey1) { + if d1 > uint32(uint32(nKey1)) { break } idx1 += uint32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89293))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89742))) return 0 /* Corrupt index */ } } @@ -63585,6 +63912,7 @@ func _vdbeRecordCompareString(tls *libc.TLS, nKey1 int32, pKey1 uintptr, pPKey2 _, _, _, _, _, _ = aKey1, nCmp, nStr, res, szHdr, v1 aKey1 = pKey1 *(*int32)(unsafe.Pointer(bp)) = int32(int8(*(*Tu8)(unsafe.Pointer(aKey1 + 1)))) + goto vrcs_restart vrcs_restart: ; if *(*int32)(unsafe.Pointer(bp)) < int32(12) { @@ -63602,7 +63930,7 @@ vrcs_restart: szHdr = int32(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89456))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89905))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -63611,7 +63939,7 @@ vrcs_restart: v1 = nStr } nCmp = v1 - res = libc.Xmemcmp(tls, aKey1+uintptr(szHdr), *(*uintptr)(unsafe.Pointer(pPKey2 + 16)), uint64(nCmp)) + res = libc.Xmemcmp(tls, aKey1+uintptr(szHdr), *(*uintptr)(unsafe.Pointer(pPKey2 + 16)), uint64(uint64(nCmp))) if res > 0 { res = int32((*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fr2) } else { @@ -63718,7 +64046,7 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr nCellKey = int64(_sqlite3BtreePayloadSize(tls, pCur)) /* Read in the complete content of the index entry */ _sqlite3VdbeMemInit(tls, bp+8, db, uint16(0)) - rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(nCellKey), bp+8) + rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(uint32(nCellKey)), bp+8) if rc != 0 { return rc } @@ -63750,10 +64078,11 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr return SQLITE_OK /* Jump here if database corruption is detected after m has been ** allocated. Free the m object and return SQLITE_CORRUPT. */ + goto idx_rowid_corruption idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(89614)) + return _sqlite3CorruptError(tls, int32(90063)) } // C documentation @@ -63784,10 +64113,10 @@ func _sqlite3VdbeIdxKeyCompare(tls *libc.TLS, db uintptr, pC uintptr, pUnpacked ** that btreeParseCellPtr() and sqlite3GetVarint32() are implemented */ if nCellKey <= 0 || nCellKey > int64(0x7fffffff) { *(*int32)(unsafe.Pointer(res)) = 0 - return _sqlite3CorruptError(tls, int32(89647)) + return _sqlite3CorruptError(tls, int32(90096)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) - rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(nCellKey), bp) + rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(uint32(nCellKey)), bp) if rc != 0 { return rc } @@ -63935,15 +64264,15 @@ func _sqlite3NotPureFunc(tls *libc.TLS, pCtx uintptr) (r int32) { pOp = (*TVdbe)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe)).FaOp + uintptr((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FiOp)*24 if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_PureFunc) { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_IsCheck) != 0 { - zContext = __ccgo_ts + 5259 + zContext = __ccgo_ts + 5323 } else { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_GenCol) != 0 { - zContext = __ccgo_ts + 5278 + zContext = __ccgo_ts + 5342 } else { - zContext = __ccgo_ts + 5297 + zContext = __ccgo_ts + 5361 } } - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5306, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5370, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) return 0 @@ -64117,7 +64446,7 @@ func Xsqlite3_expired(tls *libc.TLS, pStmt uintptr) (r int32) { // */ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { if (*TVdbe)(unsafe.Pointer(p)).Fdb == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5342, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5406, 0) return int32(1) } else { return 0 @@ -64127,7 +64456,7 @@ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { func _vdbeSafetyNotNull(tls *libc.TLS, p uintptr) (r int32) { if p == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5387, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5451, 0) return int32(1) } else { return _vdbeSafety(tls, p) @@ -64185,7 +64514,7 @@ func Xsqlite3_finalize(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt db = (*TVdbe)(unsafe.Pointer(v)).Fdb if _vdbeSafety(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90035)) + return _sqlite3MisuseError(tls, int32(90484)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -64517,7 +64846,7 @@ func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc T var rc int32 _, _ = pOut, rc pOut = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut - rc = _sqlite3VdbeMemSetStr(tls, pOut, z, int64(n), enc, xDel) + rc = _sqlite3VdbeMemSetStr(tls, pOut, z, int64(int64(n)), enc, xDel) if rc != 0 { if rc == int32(SQLITE_TOOBIG) { Xsqlite3_result_error_toobig(tls, pCtx) @@ -64556,7 +64885,7 @@ func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_u if n > uint64(0x7fffffff) { _invokeValueDestructor(tls, z, xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, int32(n), uint8(0), xDel) + _setResultStrOrError(tls, pCtx, z, int32(int32(n)), uint8(0), xDel) } } @@ -64566,16 +64895,16 @@ func Xsqlite3_result_double(tls *libc.TLS, pCtx uintptr, rVal float64) { func Xsqlite3_result_error(tls *libc.TLS, pCtx uintptr, z uintptr, n int32) { (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = int32(SQLITE_ERROR) - _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, z, int64(n), uint8(SQLITE_UTF8), uintptr(-libc.Int32FromInt32(1))) + _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, z, int64(int64(n)), uint8(SQLITE_UTF8), uintptr(-libc.Int32FromInt32(1))) } func Xsqlite3_result_error16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32) { (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = int32(SQLITE_ERROR) - _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, z, int64(n), uint8(SQLITE_UTF16LE), uintptr(-libc.Int32FromInt32(1))) + _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, z, int64(int64(n)), uint8(SQLITE_UTF16LE), uintptr(-libc.Int32FromInt32(1))) } func Xsqlite3_result_int(tls *libc.TLS, pCtx uintptr, iVal int32) { - _sqlite3VdbeMemSetInt64(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, int64(iVal)) + _sqlite3VdbeMemSetInt64(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, int64(int64(iVal))) } func Xsqlite3_result_int64(tls *libc.TLS, pCtx uintptr, iVal Ti64) { @@ -64609,8 +64938,8 @@ func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel } func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr, enc uint8) { - if int32(enc) != int32(SQLITE_UTF8) { - if int32(enc) == int32(SQLITE_UTF16) { + if int32(int32(enc)) != int32(SQLITE_UTF8) { + if int32(int32(enc)) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) } n &= ^libc.Uint64FromInt32(1) @@ -64618,21 +64947,21 @@ func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_u if n > uint64(0x7fffffff) { _invokeValueDestructor(tls, z, xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, int32(n), enc, xDel) + _setResultStrOrError(tls, pCtx, z, int32(int32(n)), enc, xDel) _sqlite3VdbeMemZeroTerminateIfAble(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut) } } func Xsqlite3_result_text16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, int32(uint64(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) + _setResultStrOrError(tls, pCtx, z, int32(uint64(uint64(n)) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) } func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, int32(uint64(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), xDel) + _setResultStrOrError(tls, pCtx, z, int32(uint64(uint64(n)) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), xDel) } func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, int32(uint64(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) + _setResultStrOrError(tls, pCtx, z, int32(uint64(uint64(n)) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) } func Xsqlite3_result_value(tls *libc.TLS, pCtx uintptr, pValue uintptr) { @@ -64665,7 +64994,7 @@ func Xsqlite3_result_zeroblob64(tls *libc.TLS, pCtx uintptr, n Tu64) (r int32) { Xsqlite3_result_error_toobig(tls, pCtx) return int32(SQLITE_TOOBIG) } - _sqlite3VdbeMemSetZeroBlob(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, int32(n)) + _sqlite3VdbeMemSetZeroBlob(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, int32(int32(n))) return SQLITE_OK } @@ -64688,7 +65017,7 @@ func Xsqlite3_result_error_code(tls *libc.TLS, pCtx uintptr, errCode int32) { // /* Force an SQLITE_TOOBIG error. */ func Xsqlite3_result_error_toobig(tls *libc.TLS, pCtx uintptr) { (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = int32(SQLITE_TOOBIG) - _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5427, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) + _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5491, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) } // C documentation @@ -64767,6 +65096,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { _, _ = db, rc db = (*TVdbe)(unsafe.Pointer(p)).Fdb if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_RUN_STATE) { + goto restart_step restart_step: ; if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) == int32(VDBE_READY_STATE) { @@ -64864,6 +65194,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { rc = (*TVdbe)(unsafe.Pointer(p)).Frc } } + goto end_of_step end_of_step: ; /* There are only a limited number of result codes allowed from the @@ -64887,7 +65218,7 @@ func Xsqlite3_step(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt /* the prepared statement */ cnt = 0 /* The database connection */ if _vdbeSafetyNotNull(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90829)) + return _sqlite3MisuseError(tls, int32(91278)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -65017,7 +65348,7 @@ func _valueFromValueList(tls *libc.TLS, pVal uintptr, ppOut uintptr, bNext int32 _, _, _, _, _, _, _ = iOff, pOut, pRhs, rc, sz, zBuf, v1 *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) if pVal == uintptr(0) { - return _sqlite3MisuseError(tls, int32(90950)) + return _sqlite3MisuseError(tls, int32(91399)) } if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -65036,7 +65367,7 @@ func _valueFromValueList(tls *libc.TLS, pVal uintptr, ppOut uintptr, bNext int32 if rc == SQLITE_OK { /* Raw content of current row */ libc.Xmemset(tls, bp+8, 0, uint64(56)) sz = _sqlite3BtreePayloadSize(tls, (*TValueList)(unsafe.Pointer(pRhs)).FpCsr) - rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, (*TValueList)(unsafe.Pointer(pRhs)).FpCsr, uint32(int32(sz)), bp+8) + rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, (*TValueList)(unsafe.Pointer(pRhs)).FpCsr, uint32(int32(int32(sz))), bp+8) if rc == SQLITE_OK { zBuf = (*(*TMem)(unsafe.Pointer(bp + 8))).Fz pOut = (*TValueList)(unsafe.Pointer(pRhs)).FpOut @@ -65130,7 +65461,7 @@ func _createAggContext(tls *libc.TLS, p uintptr, nByte int32) (r uintptr) { (*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(MEM_Agg) *(*uintptr)(unsafe.Pointer(pMem)) = (*Tsqlite3_context)(unsafe.Pointer(p)).FpFunc if (*TMem)(unsafe.Pointer(pMem)).Fz != 0 { - libc.Xmemset(tls, (*TMem)(unsafe.Pointer(pMem)).Fz, 0, uint64(nByte)) + libc.Xmemset(tls, (*TMem)(unsafe.Pointer(pMem)).Fz, 0, uint64(uint64(nByte))) } } return (*TMem)(unsafe.Pointer(pMem)).Fz @@ -65239,6 +65570,7 @@ func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, (*TAuxData)(unsafe.Pointer(pAuxData)).FpAux = pAux (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = xDelete return + goto failed failed: ; if xDelete != 0 { @@ -65476,18 +65808,18 @@ func Xsqlite3_column_type(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { // ** Column names appropriate for EXPLAIN or EXPLAIN QUERY PLAN. // */ var _azExplainColNames8 = [12]uintptr{ - 0: __ccgo_ts + 5450, - 1: __ccgo_ts + 5455, - 2: __ccgo_ts + 5462, - 3: __ccgo_ts + 5465, - 4: __ccgo_ts + 5468, - 5: __ccgo_ts + 5471, - 6: __ccgo_ts + 5474, - 7: __ccgo_ts + 5477, - 8: __ccgo_ts + 5485, - 9: __ccgo_ts + 5488, - 10: __ccgo_ts + 5495, - 11: __ccgo_ts + 5503, + 0: __ccgo_ts + 5514, + 1: __ccgo_ts + 5519, + 2: __ccgo_ts + 5526, + 3: __ccgo_ts + 5529, + 4: __ccgo_ts + 5532, + 5: __ccgo_ts + 5535, + 6: __ccgo_ts + 5538, + 7: __ccgo_ts + 5541, + 8: __ccgo_ts + 5549, + 9: __ccgo_ts + 5552, + 10: __ccgo_ts + 5559, + 11: __ccgo_ts + 5567, } var _azExplainColNames16data = [60]Tu16{ 0: uint16('a'), @@ -65616,11 +65948,12 @@ func _columnName(tls *libc.TLS, pStmt uintptr, N int32, useUtf16 int32, useType /* A malloc may have failed inside of the _text() call. If this ** is the case, clear the mallocFailed flag and return NULL. */ - if int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) > int32(prior_mallocFailed) { + if int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) > int32(int32(prior_mallocFailed)) { _sqlite3OomClear(tls, db) ret = uintptr(0) } } + goto columnName_end columnName_end: ; Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -65730,14 +66063,14 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { var v2 bool _, _, _ = pVar, v1, v2 if _vdbeSafetyNotNull(tls, p) != 0 { - return _sqlite3MisuseError(tls, int32(91554)) + return _sqlite3MisuseError(tls, int32(92003)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(91558))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(92007))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5510, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(91562)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5574, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) + return _sqlite3MisuseError(tls, int32(92011)) } if i >= uint32((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -65785,7 +66118,7 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, if zData != uintptr(0) { pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(i-int32(1))*56 rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, xDel) - if rc == SQLITE_OK && int32(encoding) != 0 { + if rc == SQLITE_OK && int32(int32(encoding)) != 0 { rc = _sqlite3VdbeChangeEncoding(tls, pVar, int32((*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fenc)) } if rc != 0 { @@ -65808,11 +66141,11 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, // ** Bind a blob value to an SQL statement variable. // */ func Xsqlite3_bind_blob(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, xDel uintptr) (r int32) { - return _bindText(tls, pStmt, i, zData, int64(nData), xDel, uint8(0)) + return _bindText(tls, pStmt, i, zData, int64(int64(nData)), xDel, uint8(0)) } func Xsqlite3_bind_blob64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, xDel uintptr) (r int32) { - return _bindText(tls, pStmt, i, zData, int64(nData), xDel, uint8(0)) + return _bindText(tls, pStmt, i, zData, int64(int64(nData)), xDel, uint8(0)) } func Xsqlite3_bind_double(tls *libc.TLS, pStmt uintptr, i int32, rValue float64) (r int32) { @@ -65829,7 +66162,7 @@ func Xsqlite3_bind_double(tls *libc.TLS, pStmt uintptr, i int32, rValue float64) } func Xsqlite3_bind_int(tls *libc.TLS, p uintptr, i int32, iValue int32) (r int32) { - return Xsqlite3_bind_int64(tls, p, i, int64(iValue)) + return Xsqlite3_bind_int64(tls, p, i, int64(int64(iValue))) } func Xsqlite3_bind_int64(tls *libc.TLS, pStmt uintptr, i int32, iValue Tsqlite_int64) (r int32) { @@ -65875,21 +66208,21 @@ func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, } func Xsqlite3_bind_text(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, xDel uintptr) (r int32) { - return _bindText(tls, pStmt, i, zData, int64(nData), xDel, uint8(SQLITE_UTF8)) + return _bindText(tls, pStmt, i, zData, int64(int64(nData)), xDel, uint8(SQLITE_UTF8)) } func Xsqlite3_bind_text64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, xDel uintptr, enc uint8) (r int32) { - if int32(enc) != int32(SQLITE_UTF8) { - if int32(enc) == int32(SQLITE_UTF16) { + if int32(int32(enc)) != int32(SQLITE_UTF8) { + if int32(int32(enc)) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) } nData &= uint64(^int32(libc.Uint16FromInt32(1))) } - return _bindText(tls, pStmt, i, zData, int64(nData), xDel, enc) + return _bindText(tls, pStmt, i, zData, int64(int64(nData)), xDel, enc) } func Xsqlite3_bind_text16(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, n int32, xDel uintptr) (r int32) { - return _bindText(tls, pStmt, i, zData, int64(uint64(n) & ^libc.Uint64FromInt32(1)), xDel, uint8(SQLITE_UTF16LE)) + return _bindText(tls, pStmt, i, zData, int64(uint64(uint64(n)) & ^libc.Uint64FromInt32(1)), xDel, uint8(SQLITE_UTF16LE)) } func Xsqlite3_bind_value(tls *libc.TLS, pStmt uintptr, i int32, pValue uintptr) (r int32) { @@ -65943,7 +66276,7 @@ func Xsqlite3_bind_zeroblob64(tls *libc.TLS, pStmt uintptr, i int32, n Tsqlite3_ if n > uint64(*(*int32)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb + 136))) { rc = int32(SQLITE_TOOBIG) } else { - rc = Xsqlite3_bind_zeroblob(tls, pStmt, i, int32(n)) + rc = Xsqlite3_bind_zeroblob(tls, pStmt, i, int32(int32(n))) } rc = _sqlite3ApiExit(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) @@ -66141,10 +66474,10 @@ func Xsqlite3_stmt_explain(tls *libc.TLS, pStmt uintptr, eMode int32) (r int32) } else { if (*TVdbe)(unsafe.Pointer(v)).FnMem >= int32(10) && (eMode != int32(2) || int32(Tbft(*(*uint16)(unsafe.Pointer(v + 200))&0x100>>8)) != 0) { /* No reprepare necessary */ - libc.SetBitFieldPtr16Uint32(v+200, uint32(eMode), 2, 0xc) + libc.SetBitFieldPtr16Uint32(v+200, uint32(uint32(eMode)), 2, 0xc) rc = SQLITE_OK } else { - libc.SetBitFieldPtr16Uint32(v+200, uint32(eMode), 2, 0xc) + libc.SetBitFieldPtr16Uint32(v+200, uint32(uint32(eMode)), 2, 0xc) rc = _sqlite3Reprepare(tls, v) libc.SetBitFieldPtr16Uint32(v+200, libc.BoolUint32(eMode == libc.Int32FromInt32(2)), 8, 0x100) } @@ -66301,11 +66634,11 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp /* Test that this call is being made from within an SQLITE_DELETE or ** SQLITE_UPDATE pre-update callback, and that iIdx is within range. */ if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_INSERT) { - rc = _sqlite3MisuseError(tls, int32(92098)) + rc = _sqlite3MisuseError(tls, int32(92547)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { - iIdx = int32(_sqlite3TableColumnToIndex(tls, (*TPreUpdate)(unsafe.Pointer(p)).FpPk, int16(iIdx))) + iIdx = int32(_sqlite3TableColumnToIndex(tls, (*TPreUpdate)(unsafe.Pointer(p)).FpPk, int16(int16(iIdx)))) } if iIdx >= int32((*TVdbeCursor)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpCsr)).FnField) || iIdx < 0 { rc = int32(SQLITE_RANGE) @@ -66314,13 +66647,13 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp /* If the old.* record has not yet been loaded into memory, do so now. */ if (*TPreUpdate)(unsafe.Pointer(p)).FpUnpacked == uintptr(0) { nRec = _sqlite3BtreePayloadSize(tls, *(*uintptr)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpCsr + 48))) - aRec = _sqlite3DbMallocRaw(tls, db, uint64(nRec)) + aRec = _sqlite3DbMallocRaw(tls, db, uint64(uint64(nRec))) if !(aRec != 0) { goto preupdate_old_out } rc = _sqlite3BtreePayload(tls, *(*uintptr)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpCsr + 48)), uint32(0), nRec, aRec) if rc == SQLITE_OK { - (*TPreUpdate)(unsafe.Pointer(p)).FpUnpacked = _vdbeUnpackRecord(tls, p+32, int32(nRec), aRec) + (*TPreUpdate)(unsafe.Pointer(p)).FpUnpacked = _vdbeUnpackRecord(tls, p+32, int32(int32(nRec)), aRec) if !((*TPreUpdate)(unsafe.Pointer(p)).FpUnpacked != 0) { rc = int32(SQLITE_NOMEM) } @@ -66347,6 +66680,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } } + goto preupdate_old_out preupdate_old_out: ; _sqlite3Error(tls, db, rc) @@ -66430,11 +66764,11 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp rc = SQLITE_OK p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(92221)) + rc = _sqlite3MisuseError(tls, int32(92670)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { - iIdx = int32(_sqlite3TableColumnToIndex(tls, (*TPreUpdate)(unsafe.Pointer(p)).FpPk, int16(iIdx))) + iIdx = int32(_sqlite3TableColumnToIndex(tls, (*TPreUpdate)(unsafe.Pointer(p)).FpPk, int16(int16(iIdx)))) } if iIdx >= int32((*TVdbeCursor)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpCsr)).FnField) || iIdx < 0 { rc = int32(SQLITE_RANGE) @@ -66477,7 +66811,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp ** caller may modify the value text encoding. */ if !((*TPreUpdate)(unsafe.Pointer(p)).FaNew != 0) { - (*TPreUpdate)(unsafe.Pointer(p)).FaNew = _sqlite3DbMallocZero(tls, db, uint64(56)*uint64((*TVdbeCursor)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpCsr)).FnField)) + (*TPreUpdate)(unsafe.Pointer(p)).FaNew = _sqlite3DbMallocZero(tls, db, uint64(uint64(56)*uint64((*TVdbeCursor)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpCsr)).FnField))) if !((*TPreUpdate)(unsafe.Pointer(p)).FaNew != 0) { rc = int32(SQLITE_NOMEM) goto preupdate_new_out @@ -66496,6 +66830,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } *(*uintptr)(unsafe.Pointer(ppValue)) = pMem + goto preupdate_new_out preupdate_new_out: ; _sqlite3Error(tls, db, rc) @@ -66603,8 +66938,8 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr break } } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5550, int32(3)) - Xsqlite3_str_append(tls, bp+8, zStart, int32(int64(zRawSql)-int64(zStart))) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5614, int32(3)) + Xsqlite3_str_append(tls, bp+8, zStart, int32(int64(int64(zRawSql))-int64(int64(zStart)))) } } else { if int32((*TVdbe)(unsafe.Pointer(p)).FnVar) == 0 { @@ -66635,17 +66970,17 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr nextIndex = v2 pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(*(*int32)(unsafe.Pointer(bp))-int32(1))*56 if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Null) != 0 { - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1653, int32(4)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1667, int32(4)) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1408, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1427, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5071, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5135, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Str) != 0 { /* Number of bytes of the string text to include in output */ enc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc - if int32(enc) != int32(SQLITE_UTF8) { + if int32(int32(enc)) != int32(SQLITE_UTF8) { libc.Xmemset(tls, bp+40, 0, uint64(56)) (*(*TMem)(unsafe.Pointer(bp + 40))).Fdb = db _sqlite3VdbeMemSetStr(tls, bp+40, (*TMem)(unsafe.Pointer(pVar)).Fz, int64((*TMem)(unsafe.Pointer(pVar)).Fn), enc, libc.UintptrFromInt32(0)) @@ -66656,28 +66991,28 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr pVar = bp + 40 } nOut = (*TMem)(unsafe.Pointer(pVar)).Fn - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5554, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) - if int32(enc) != int32(SQLITE_UTF8) { + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5618, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) + if int32(int32(enc)) != int32(SQLITE_UTF8) { _sqlite3VdbeMemRelease(tls, bp+40) } } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Zero) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5561, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5625, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) } else { /* Number of bytes of the blob to include in output */ - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5574, int32(2)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5638, int32(2)) nOut1 = (*TMem)(unsafe.Pointer(pVar)).Fn i = 0 for { if !(i < nOut1) { break } - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5577, libc.VaList(bp+104, int32(*(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5641, libc.VaList(bp+104, int32(*(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) goto _3 _3: ; i++ } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5582, int32(1)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5646, int32(1)) } } } @@ -66865,12 +67200,12 @@ func _allocateCursor(tls *libc.TLS, p uintptr, iCur int32, nField int32, eCurTyp */ pMem = v1 pCx = uintptr(0) - if int32(eCurType) == CURTYPE_BTREE { + if int32(int32(eCurType)) == CURTYPE_BTREE { v2 = _sqlite3BtreeCursorSize(tls) } else { v2 = 0 } - nByte = int32(libc.Uint64FromInt64(128) + libc.Uint64FromInt32(2)*libc.Uint64FromInt64(4)*uint64(nField) + uint64(v2)) + nByte = int32(libc.Uint64FromInt64(128) + libc.Uint64FromInt32(2)*libc.Uint64FromInt64(4)*uint64(uint64(nField)) + uint64(v2)) if *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr(iCur)*8)) != 0 { /*OPTIMIZATION-IF-FALSE*/ _sqlite3VdbeFreeCursorNN(tls, p, *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr(iCur)*8))) *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr(iCur)*8)) = uintptr(0) @@ -66883,7 +67218,7 @@ func _allocateCursor(tls *libc.TLS, p uintptr, iCur int32, nField int32, eCurTyp if (*TMem)(unsafe.Pointer(pMem)).FszMalloc > 0 { _sqlite3DbFreeNN(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).FzMalloc) } - v3 = _sqlite3DbMallocRaw(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, uint64(nByte)) + v3 = _sqlite3DbMallocRaw(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, uint64(uint64(nByte))) (*TMem)(unsafe.Pointer(pMem)).FzMalloc = v3 (*TMem)(unsafe.Pointer(pMem)).Fz = v3 if (*TMem)(unsafe.Pointer(pMem)).FzMalloc == uintptr(0) { @@ -66897,10 +67232,10 @@ func _allocateCursor(tls *libc.TLS, p uintptr, iCur int32, nField int32, eCurTyp *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr(iCur)*8)) = v4 libc.Xmemset(tls, pCx, 0, uint64(libc.UintptrFromInt32(0)+40)) (*TVdbeCursor)(unsafe.Pointer(pCx)).FeCurType = eCurType - (*TVdbeCursor)(unsafe.Pointer(pCx)).FnField = int16(nField) + (*TVdbeCursor)(unsafe.Pointer(pCx)).FnField = int16(int16(nField)) (*TVdbeCursor)(unsafe.Pointer(pCx)).FaOffset = pCx + 120 + uintptr(nField)*4 - if int32(eCurType) == CURTYPE_BTREE { - *(*uintptr)(unsafe.Pointer(pCx + 48)) = (*TMem)(unsafe.Pointer(pMem)).Fz + uintptr(libc.Uint64FromInt64(128)+libc.Uint64FromInt32(2)*libc.Uint64FromInt64(4)*uint64(nField)) + if int32(int32(eCurType)) == CURTYPE_BTREE { + *(*uintptr)(unsafe.Pointer(pCx + 48)) = (*TMem)(unsafe.Pointer(pMem)).Fz + uintptr(libc.Uint64FromInt64(128)+libc.Uint64FromInt32(2)*libc.Uint64FromInt64(4)*uint64(uint64(nField))) _sqlite3BtreeCursorZero(tls, *(*uintptr)(unsafe.Pointer(pCx + 48))) } return pCx @@ -67002,20 +67337,20 @@ func _applyNumericAffinity(tls *libc.TLS, pRec uintptr, bTryForInt int32) { func _applyAffinity(tls *libc.TLS, pRec uintptr, affinity int8, enc Tu8) { var p1 uintptr _ = p1 - if int32(affinity) >= int32(SQLITE_AFF_NUMERIC) { + if int32(int32(affinity)) >= int32(SQLITE_AFF_NUMERIC) { if int32((*TMem)(unsafe.Pointer(pRec)).Fflags)&int32(MEM_Int) == 0 { /*OPTIMIZATION-IF-FALSE*/ if int32((*TMem)(unsafe.Pointer(pRec)).Fflags)&(libc.Int32FromInt32(MEM_Real)|libc.Int32FromInt32(MEM_IntReal)) == 0 { if int32((*TMem)(unsafe.Pointer(pRec)).Fflags)&int32(MEM_Str) != 0 { _applyNumericAffinity(tls, pRec, int32(1)) } } else { - if int32(affinity) <= int32(SQLITE_AFF_REAL) { + if int32(int32(affinity)) <= int32(SQLITE_AFF_REAL) { _sqlite3VdbeIntegerAffinity(tls, pRec) } } } } else { - if int32(affinity) == int32(SQLITE_AFF_TEXT) { + if int32(int32(affinity)) == int32(SQLITE_AFF_TEXT) { /* Only attempt the conversion to TEXT if there is an integer or real ** representation (blob and NULL do not get converted) but no string ** representation. It would be harmless to repeat the conversion if @@ -67060,7 +67395,7 @@ func Xsqlite3_value_numeric_type(tls *libc.TLS, pVal uintptr) (r int32) { // ** not the internal Mem* type. // */ func _sqlite3ValueApplyAffinity(tls *libc.TLS, pVal uintptr, affinity Tu8, enc Tu8) { - _applyAffinity(tls, pVal, int8(affinity), enc) + _applyAffinity(tls, pVal, int8(int8(affinity)), enc) } // C documentation @@ -67201,7 +67536,7 @@ func _vdbeColumnFromOverflow(tls *libc.TLS, pC uintptr, iCol int32, t int32, iOf _, _, _, _, _, _, _, _, _, _ = db, encoding, len1, pBuf, pCache, rc, v1, p2, p3, p4 db = (*TMem)(unsafe.Pointer(pDest)).Fdb encoding = int32((*TMem)(unsafe.Pointer(pDest)).Fenc) - len1 = int32(_sqlite3VdbeSerialTypeLen(tls, uint32(t))) + len1 = int32(_sqlite3VdbeSerialTypeLen(tls, uint32(uint32(t)))) if len1 > *(*int32)(unsafe.Pointer(db + 136)) { return int32(SQLITE_TOOBIG) } @@ -67224,7 +67559,7 @@ func _vdbeColumnFromOverflow(tls *libc.TLS, pC uintptr, iCol int32, t int32, iOf if pBuf == uintptr(0) { return int32(SQLITE_NOMEM) } - rc = _sqlite3BtreePayload(tls, *(*uintptr)(unsafe.Pointer(pC + 48)), uint32(iOffset), uint32(len1), pBuf) + rc = _sqlite3BtreePayload(tls, *(*uintptr)(unsafe.Pointer(pC + 48)), uint32(uint32(iOffset)), uint32(uint32(len1)), pBuf) if rc != 0 { return rc } @@ -67240,18 +67575,18 @@ func _vdbeColumnFromOverflow(tls *libc.TLS, pC uintptr, iCol int32, t int32, iOf } _sqlite3RCStrRef(tls, pBuf) if t&int32(1) != 0 { - rc = _sqlite3VdbeMemSetStr(tls, pDest, pBuf, int64(len1), uint8(encoding), __ccgo_fp(_sqlite3RCStrUnref)) + rc = _sqlite3VdbeMemSetStr(tls, pDest, pBuf, int64(int64(len1)), uint8(uint8(encoding)), __ccgo_fp(_sqlite3RCStrUnref)) p2 = pDest + 20 *(*Tu16)(unsafe.Pointer(p2)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p2))) | libc.Int32FromInt32(MEM_Term)) } else { - rc = _sqlite3VdbeMemSetStr(tls, pDest, pBuf, int64(len1), uint8(0), __ccgo_fp(_sqlite3RCStrUnref)) + rc = _sqlite3VdbeMemSetStr(tls, pDest, pBuf, int64(int64(len1)), uint8(0), __ccgo_fp(_sqlite3RCStrUnref)) } } else { - rc = _sqlite3VdbeMemFromBtree(tls, *(*uintptr)(unsafe.Pointer(pC + 48)), uint32(iOffset), uint32(len1), pDest) + rc = _sqlite3VdbeMemFromBtree(tls, *(*uintptr)(unsafe.Pointer(pC + 48)), uint32(uint32(iOffset)), uint32(uint32(len1)), pDest) if rc != 0 { return rc } - _sqlite3VdbeSerialGet(tls, (*TMem)(unsafe.Pointer(pDest)).Fz, uint32(t), pDest) + _sqlite3VdbeSerialGet(tls, (*TMem)(unsafe.Pointer(pDest)).Fz, uint32(uint32(t)), pDest) if t&int32(1) != 0 && encoding == int32(SQLITE_UTF8) { *(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pDest)).Fz + uintptr(len1))) = 0 p3 = pDest + 20 @@ -67277,7 +67612,7 @@ var _azTypes = [5]uintptr{ 1: __ccgo_ts + 1148, 2: __ccgo_ts + 1153, 3: __ccgo_ts + 1131, - 4: __ccgo_ts + 1653, + 4: __ccgo_ts + 1667, } // C documentation @@ -67291,7 +67626,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { defer tls.Free(976) var aCol, aMem, aOffset, aOp, aPermute, aRoot, apArg, apArg1, db, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pnErr, t1, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v240, v241, v242, v250, v251, v252, v253, v255, v263, v278, v279, v286, v288, v297, v298, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 uintptr var affinity int8 - var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 + var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, savedAnalysisLimit, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 var colCacheCtr, iAddr, iMap, iPrior, idx, len11, n3, p22, p23, serialType, serial_type, v213, v214, v216, v221, v222 Tu32 var encoding, isWriteLock, mTrace, op, p5, resetSchemaOnFault, vtabOnConflict, v225 Tu8 var flags1, flags11, flags2, flags3, flags31, newType, nullFlag, type1, type2, typeMask, v190 Tu16 @@ -67348,7 +67683,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { var _ /* z at bp+688 */ uintptr var _ /* zErr at bp+632 */ uintptr var _ /* zErr at bp+792 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, savedAnalysisLimit, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 aOp = (*TVdbe)(unsafe.Pointer(p)).FaOp /* Copy of p->aOp */ pOp = aOp /* Current operation */ rc = SQLITE_OK /* Value to return */ @@ -67618,7 +67953,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto _109 case int32(OP_SeekEnd): goto _110 - case int32(OP_IfSmaller): + case int32(OP_IfSizeBetween): goto _111 case int32(OP_Sort): goto _112 @@ -67820,6 +68155,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { */ _2: ; /* jump */ + goto jump_to_p2_and_check_for_interrupt jump_to_p2_and_check_for_interrupt: ; pOp = aOp + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp2-int32(1))*24 @@ -67833,6 +68169,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** way for performance, to avoid having to run the interrupt and progress ** checks on every opcode. This helps sqlite3_step() to run about 1.5% ** faster according to "valgrind --tool=cachegrind" */ + goto check_for_interrupt check_for_interrupt: ; if libc.AtomicLoadNInt32(db+432, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0 { @@ -67862,7 +68199,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* jump */ pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 (*TMem)(unsafe.Pointer(pIn1)).Fflags = uint16(MEM_Int) - *(*Ti64)(unsafe.Pointer(pIn1)) = int64(int32((int64(pOp) - int64(aOp)) / 24)) + *(*Ti64)(unsafe.Pointer(pIn1)) = int64(int32((int64(int64(pOp)) - int64(int64(aOp))) / 24)) goto jump_to_p2_and_check_for_interrupt /* Opcode: Return P1 P2 P3 * * ** @@ -67910,7 +68247,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: EndCoroutine */ _5: - ; /* jump */ + ; /* jump0 */ pOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 *(*Ti64)(unsafe.Pointer(pOut)) = int64((*TOp)(unsafe.Pointer(pOp)).Fp3 - int32(1)) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Int) @@ -67919,6 +68256,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* Most jump operations do a goto to this spot in order to update ** the pOp pointer. */ + goto jump_to_p2 jump_to_p2: ; /* There are never any jumps to instruction 0 */ @@ -67929,7 +68267,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** ** The instruction at the address in register P1 is a Yield. ** Jump to the P2 parameter of that Yield. - ** After the jump, register P1 becomes undefined. + ** After the jump, the value register P1 is left with a value + ** such that subsequent OP_Yields go back to the this same + ** OP_EndCoroutine instruction. ** ** See also: InitCoroutine */ @@ -67937,8 +68277,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 pCaller = aOp + uintptr(*(*Ti64)(unsafe.Pointer(pIn1)))*24 + *(*Ti64)(unsafe.Pointer(pIn1)) = int64(int32((int64(int64(pOp))-int64((*TVdbe)(unsafe.Pointer(p)).FaOp))/24) - int32(1)) pOp = aOp + uintptr((*TVdbeOp)(unsafe.Pointer(pCaller)).Fp2-int32(1))*24 - (*TMem)(unsafe.Pointer(pIn1)).Fflags = uint16(MEM_Undefined) goto _187 /* Opcode: Yield P1 P2 * * * ** @@ -67958,7 +68298,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 (*TMem)(unsafe.Pointer(pIn1)).Fflags = uint16(MEM_Int) pcDest = int32(*(*Ti64)(unsafe.Pointer(pIn1))) - *(*Ti64)(unsafe.Pointer(pIn1)) = int64(int32((int64(pOp) - int64(aOp)) / 24)) + *(*Ti64)(unsafe.Pointer(pIn1)) = int64(int32((int64(int64(pOp)) - int64(int64(aOp))) / 24)) pOp = aOp + uintptr(pcDest)*24 goto _187 /* Opcode: HaltIfNull P1 P2 P3 P4 P5 @@ -68034,15 +68374,15 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TVdbe)(unsafe.Pointer(p)).FerrorAction = uint8((*TOp)(unsafe.Pointer(pOp)).Fp2) if (*TVdbe)(unsafe.Pointer(p)).Frc != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+5618, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) + _sqlite3VdbeError(tls, p, __ccgo_ts+5682, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) if *(*uintptr)(unsafe.Pointer(pOp + 16)) != 0 { - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5639, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5703, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } } else { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } - pcx = int32((int64(pOp) - int64(aOp)) / 24) - Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5646, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) + pcx = int32((int64(int64(pOp)) - int64(int64(aOp))) / 24) + Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5710, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) } rc = _sqlite3VdbeHalt(tls, p) if rc == int32(SQLITE_BUSY) { @@ -68101,12 +68441,12 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* same as TK_STRING, out2 */ pOut = _out2Prerelease(tls, p, pOp) (*TOp)(unsafe.Pointer(pOp)).Fp1 = _sqlite3Strlen30(tls, *(*uintptr)(unsafe.Pointer(pOp + 16))) - if int32(encoding) != int32(SQLITE_UTF8) { + if int32(int32(encoding)) != int32(SQLITE_UTF8) { rc = _sqlite3VdbeMemSetStr(tls, pOut, *(*uintptr)(unsafe.Pointer(pOp + 16)), int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) if rc != 0 { goto too_big } - if SQLITE_OK != _sqlite3VdbeChangeEncoding(tls, pOut, int32(encoding)) { + if SQLITE_OK != _sqlite3VdbeChangeEncoding(tls, pOut, int32(int32(encoding))) { goto no_mem } (*TMem)(unsafe.Pointer(pOut)).FszMalloc = 0 @@ -68233,13 +68573,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } (*TMem)(unsafe.Pointer(pOut)).Fenc = encoding goto _187 - /* Opcode: Variable P1 P2 * P4 * - ** Synopsis: r[P2]=parameter(P1,P4) + /* Opcode: Variable P1 P2 * * * + ** Synopsis: r[P2]=parameter(P1) ** ** Transfer the values of bound parameter P1 into register P2 - ** - ** If the parameter is named, then its name appears in P4. - ** The P4 value is used by sqlite3_bind_parameter_name(). */ _19: ; /* Value being transferred */ @@ -68397,7 +68734,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if int32((*Tsqlite3)(unsafe.Pointer(db)).FmTrace)&int32(SQLITE_TRACE_ROW) != 0 { (*(*func(*libc.TLS, Tu32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*Tsqlite3)(unsafe.Pointer(db)).Ftrace))})))(tls, uint32(SQLITE_TRACE_ROW), (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg, p, uintptr(0)) } - (*TVdbe)(unsafe.Pointer(p)).Fpc = int32((int64(pOp)-int64(aOp))/24) + int32(1) + (*TVdbe)(unsafe.Pointer(p)).Fpc = int32((int64(int64(pOp))-int64(int64(aOp)))/24) + int32(1) rc = int32(SQLITE_ROW) goto vdbe_return /* Opcode: Concat P1 P2 P3 * * @@ -68419,17 +68756,17 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pIn2 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp2)*56 pOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 flags1 = (*TMem)(unsafe.Pointer(pIn1)).Fflags - if (int32(flags1)|int32((*TMem)(unsafe.Pointer(pIn2)).Fflags))&int32(MEM_Null) != 0 { + if (int32(int32(flags1))|int32((*TMem)(unsafe.Pointer(pIn2)).Fflags))&int32(MEM_Null) != 0 { _sqlite3VdbeMemSetNull(tls, pOut) goto _187 } - if int32(flags1)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) == 0 { + if int32(int32(flags1))&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) == 0 { if _sqlite3VdbeMemStringify(tls, pIn1, encoding, uint8(0)) != 0 { goto no_mem } flags1 = uint16(int32((*TMem)(unsafe.Pointer(pIn1)).Fflags) & ^libc.Int32FromInt32(MEM_Str)) } else { - if int32(flags1)&int32(MEM_Zero) != 0 { + if int32(int32(flags1))&int32(MEM_Zero) != 0 { if _sqlite3VdbeMemExpandBlob(tls, pIn1) != 0 { goto no_mem } @@ -68437,13 +68774,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } flags2 = (*TMem)(unsafe.Pointer(pIn2)).Fflags - if int32(flags2)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) == 0 { + if int32(int32(flags2))&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) == 0 { if _sqlite3VdbeMemStringify(tls, pIn2, encoding, uint8(0)) != 0 { goto no_mem } flags2 = uint16(int32((*TMem)(unsafe.Pointer(pIn2)).Fflags) & ^libc.Int32FromInt32(MEM_Str)) } else { - if int32(flags2)&int32(MEM_Zero) != 0 { + if int32(int32(flags2))&int32(MEM_Zero) != 0 { if _sqlite3VdbeMemExpandBlob(tls, pIn2) != 0 { goto no_mem } @@ -68454,7 +68791,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if nByte > int64(*(*int32)(unsafe.Pointer(db + 136))) { goto too_big } - if _sqlite3VdbeMemGrow(tls, pOut, int32(nByte)+int32(2), libc.BoolInt32(pOut == pIn2)) != 0 { + if _sqlite3VdbeMemGrow(tls, pOut, int32(int32(nByte))+int32(2), libc.BoolInt32(pOut == pIn2)) != 0 { goto no_mem } (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(int32((*TMem)(unsafe.Pointer(pOut)).Fflags) & ^(libc.Int32FromInt32(MEM_TypeMask)|libc.Int32FromInt32(MEM_Zero)) | int32(MEM_Str)) @@ -68464,14 +68801,14 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } libc.Xmemcpy(tls, (*TMem)(unsafe.Pointer(pOut)).Fz+uintptr((*TMem)(unsafe.Pointer(pIn2)).Fn), (*TMem)(unsafe.Pointer(pIn1)).Fz, uint64((*TMem)(unsafe.Pointer(pIn1)).Fn)) (*TMem)(unsafe.Pointer(pIn1)).Fflags = flags1 - if int32(encoding) > int32(SQLITE_UTF8) { + if int32(int32(encoding)) > int32(SQLITE_UTF8) { nByte &= int64(^libc.Int32FromInt32(1)) } *(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pOut)).Fz + uintptr(nByte))) = 0 *(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pOut)).Fz + uintptr(nByte+int64(1)))) = 0 p199 = pOut + 20 *(*Tu16)(unsafe.Pointer(p199)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p199))) | libc.Int32FromInt32(MEM_Term)) - (*TMem)(unsafe.Pointer(pOut)).Fn = int32(nByte) + (*TMem)(unsafe.Pointer(pOut)).Fn = int32(int32(nByte)) (*TMem)(unsafe.Pointer(pOut)).Fenc = encoding goto _187 /* Opcode: Add P1 P2 P3 * * @@ -68527,9 +68864,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pIn2 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp2)*56 type2 = (*TMem)(unsafe.Pointer(pIn2)).Fflags pOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 - if !(int32(type1)&int32(type2)&int32(MEM_Int) != 0) { + if !(int32(int32(type1))&int32(int32(type2))&int32(MEM_Int) != 0) { goto _200 } + goto int_math int_math: ; iA = *(*Ti64)(unsafe.Pointer(pIn1)) @@ -68570,7 +68908,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto _201 _200: ; - if !((int32(type1)|int32(type2))&int32(MEM_Null) != 0) { + if !((int32(int32(type1))|int32(int32(type2)))&int32(MEM_Null) != 0) { goto _202 } goto arithmetic_result_is_null @@ -68579,9 +68917,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; type1 = _numericType(tls, pIn1) type2 = _numericType(tls, pIn2) - if int32(type1)&int32(type2)&int32(MEM_Int) != 0 { + if int32(int32(type1))&int32(int32(type2))&int32(MEM_Int) != 0 { goto int_math } + goto fp_math fp_math: ; rA = _sqlite3VdbeRealValue(tls, pIn1) @@ -68621,6 +68960,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _201: ; goto _187 + goto arithmetic_result_is_null arithmetic_result_is_null: ; _sqlite3VdbeMemSetNull(tls, pOut) @@ -68694,16 +69034,16 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*Ti64)(unsafe.Pointer(bp + 8)) = _sqlite3VdbeIntValue(tls, pIn2) iB1 = _sqlite3VdbeIntValue(tls, pIn1) op = (*TOp)(unsafe.Pointer(pOp)).Fopcode - if int32(op) == int32(OP_BitAnd) { + if int32(int32(op)) == int32(OP_BitAnd) { *(*Ti64)(unsafe.Pointer(bp + 8)) &= iB1 } else { - if int32(op) == int32(OP_BitOr) { + if int32(int32(op)) == int32(OP_BitOr) { *(*Ti64)(unsafe.Pointer(bp + 8)) |= iB1 } else { if iB1 != 0 { /* If shifting by a negative amount, shift in the other direction */ if iB1 < 0 { - op = uint8(libc.Int32FromInt32(2)*libc.Int32FromInt32(OP_ShiftLeft) + libc.Int32FromInt32(1) - int32(op)) + op = uint8(libc.Int32FromInt32(2)*libc.Int32FromInt32(OP_ShiftLeft) + libc.Int32FromInt32(1) - int32(int32(op))) if iB1 > int64(-libc.Int32FromInt32(64)) { v204 = -iB1 } else { @@ -68712,7 +69052,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { iB1 = v204 } if iB1 >= int64(64) { - if *(*Ti64)(unsafe.Pointer(bp + 8)) >= 0 || int32(op) == int32(OP_ShiftLeft) { + if *(*Ti64)(unsafe.Pointer(bp + 8)) >= 0 || int32(int32(op)) == int32(OP_ShiftLeft) { v205 = 0 } else { v205 = -int32(1) @@ -68720,10 +69060,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*Ti64)(unsafe.Pointer(bp + 8)) = int64(v205) } else { libc.Xmemcpy(tls, bp+16, bp+8, uint64(8)) - if int32(op) == int32(OP_ShiftLeft) { - *(*Tu64)(unsafe.Pointer(bp + 16)) <<= uint64(iB1) + if int32(int32(op)) == int32(OP_ShiftLeft) { + *(*Tu64)(unsafe.Pointer(bp + 16)) <<= uint64(uint64(iB1)) } else { - *(*Tu64)(unsafe.Pointer(bp + 16)) >>= uint64(iB1) + *(*Tu64)(unsafe.Pointer(bp + 16)) >>= uint64(uint64(iB1)) /* Sign-extend on a right shift of a negative number */ if *(*Ti64)(unsafe.Pointer(bp + 8)) < 0 { *(*Tu64)(unsafe.Pointer(bp + 16)) |= (libc.Uint64FromUint32(0xffffffff)< *(*Ti64)(unsafe.Pointer(pIn1)) { if *(*uint8)(unsafe.Pointer(_sqlite3aGTb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fopcode))) != 0 { @@ -68952,17 +69292,17 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } goto _187 } - if (int32(flags11)|int32(flags3))&int32(MEM_Null) != 0 { + if (int32(int32(flags11))|int32(int32(flags3)))&int32(MEM_Null) != 0 { /* One or both operands are NULL */ if int32((*TOp)(unsafe.Pointer(pOp)).Fp5)&int32(SQLITE_NULLEQ) != 0 { /* If SQLITE_NULLEQ is set (which will only happen if the operator is ** OP_Eq or OP_Ne) then take the jump or not depending on whether ** or not both operands are null. */ - if int32(flags11)&int32(flags3)&int32(MEM_Null) != 0 && int32(flags3)&int32(MEM_Cleared) == 0 { + if int32(int32(flags11))&int32(int32(flags3))&int32(MEM_Null) != 0 && int32(int32(flags3))&int32(MEM_Cleared) == 0 { res = 0 /* Operands are equal */ } else { - if int32(flags3)&int32(MEM_Null) != 0 { + if int32(int32(flags3))&int32(MEM_Null) != 0 { v207 = -int32(1) } else { v207 = +libc.Int32FromInt32(1) @@ -68984,37 +69324,37 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* Neither operand is NULL and we couldn't do the special high-speed ** integer comparison case. So do a general-case comparison. */ affinity = int8(int32((*TOp)(unsafe.Pointer(pOp)).Fp5) & int32(SQLITE_AFF_MASK)) - if int32(affinity) >= int32(SQLITE_AFF_NUMERIC) { - if (int32(flags11)|int32(flags3))&int32(MEM_Str) != 0 { - if int32(flags11)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)|libc.Int32FromInt32(MEM_Real)|libc.Int32FromInt32(MEM_Str)) == int32(MEM_Str) { + if int32(int32(affinity)) >= int32(SQLITE_AFF_NUMERIC) { + if (int32(int32(flags11))|int32(int32(flags3)))&int32(MEM_Str) != 0 { + if int32(int32(flags11))&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)|libc.Int32FromInt32(MEM_Real)|libc.Int32FromInt32(MEM_Str)) == int32(MEM_Str) { _applyNumericAffinity(tls, pIn1, 0) flags3 = (*TMem)(unsafe.Pointer(pIn3)).Fflags } - if int32(flags3)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)|libc.Int32FromInt32(MEM_Real)|libc.Int32FromInt32(MEM_Str)) == int32(MEM_Str) { + if int32(int32(flags3))&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)|libc.Int32FromInt32(MEM_Real)|libc.Int32FromInt32(MEM_Str)) == int32(MEM_Str) { _applyNumericAffinity(tls, pIn3, 0) } } } else { - if int32(affinity) == int32(SQLITE_AFF_TEXT) && (int32(flags11)|int32(flags3))&int32(MEM_Str) != 0 { - if int32(flags11)&int32(MEM_Str) != 0 { + if int32(int32(affinity)) == int32(SQLITE_AFF_TEXT) && (int32(int32(flags11))|int32(int32(flags3)))&int32(MEM_Str) != 0 { + if int32(int32(flags11))&int32(MEM_Str) != 0 { p208 = pIn1 + 20 *(*Tu16)(unsafe.Pointer(p208)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p208))) & ^(libc.Int32FromInt32(MEM_Int) | libc.Int32FromInt32(MEM_Real) | libc.Int32FromInt32(MEM_IntReal))) } else { - if int32(flags11)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_Real)|libc.Int32FromInt32(MEM_IntReal)) != 0 { + if int32(int32(flags11))&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_Real)|libc.Int32FromInt32(MEM_IntReal)) != 0 { _sqlite3VdbeMemStringify(tls, pIn1, encoding, uint8(1)) - flags11 = uint16(int32((*TMem)(unsafe.Pointer(pIn1)).Fflags) & ^libc.Int32FromInt32(MEM_TypeMask) | int32(flags11)&int32(MEM_TypeMask)) + flags11 = uint16(int32((*TMem)(unsafe.Pointer(pIn1)).Fflags) & ^libc.Int32FromInt32(MEM_TypeMask) | int32(int32(flags11))&int32(MEM_TypeMask)) if pIn1 == pIn3 { - flags3 = uint16(int32(flags11) | int32(MEM_Str)) + flags3 = uint16(int32(int32(flags11)) | int32(MEM_Str)) } } } - if int32(flags3)&int32(MEM_Str) != 0 { + if int32(int32(flags3))&int32(MEM_Str) != 0 { p209 = pIn3 + 20 *(*Tu16)(unsafe.Pointer(p209)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p209))) & ^(libc.Int32FromInt32(MEM_Int) | libc.Int32FromInt32(MEM_Real) | libc.Int32FromInt32(MEM_IntReal))) } else { - if int32(flags3)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_Real)|libc.Int32FromInt32(MEM_IntReal)) != 0 { + if int32(int32(flags3))&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_Real)|libc.Int32FromInt32(MEM_IntReal)) != 0 { _sqlite3VdbeMemStringify(tls, pIn3, encoding, uint8(1)) - flags3 = uint16(int32((*TMem)(unsafe.Pointer(pIn3)).Fflags) & ^libc.Int32FromInt32(MEM_TypeMask) | int32(flags3)&int32(MEM_TypeMask)) + flags3 = uint16(int32((*TMem)(unsafe.Pointer(pIn3)).Fflags) & ^libc.Int32FromInt32(MEM_TypeMask) | int32(int32(flags3))&int32(MEM_TypeMask)) } } } @@ -69117,14 +69457,14 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if aPermute != 0 { v211 = *(*Tu32)(unsafe.Pointer(aPermute + uintptr(i)*4)) } else { - v211 = uint32(i) + v211 = uint32(uint32(i)) } idx = v211 pColl = *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) bRev = int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(i)))) & int32(KEYINFO_ORDER_DESC) - iCompare = _sqlite3MemCompare(tls, aMem+uintptr(uint32(p11)+idx)*56, aMem+uintptr(uint32(p21)+idx)*56, pColl) + iCompare = _sqlite3MemCompare(tls, aMem+uintptr(uint32(uint32(p11))+idx)*56, aMem+uintptr(uint32(uint32(p21))+idx)*56, pColl) if iCompare != 0 { - if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(i))))&int32(KEYINFO_ORDER_BIGNULL) != 0 && (int32((*(*TMem)(unsafe.Pointer(aMem + uintptr(uint32(p11)+idx)*56))).Fflags)&int32(MEM_Null) != 0 || int32((*(*TMem)(unsafe.Pointer(aMem + uintptr(uint32(p21)+idx)*56))).Fflags)&int32(MEM_Null) != 0) { + if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(i))))&int32(KEYINFO_ORDER_BIGNULL) != 0 && (int32((*(*TMem)(unsafe.Pointer(aMem + uintptr(uint32(uint32(p11))+idx)*56))).Fflags)&int32(MEM_Null) != 0 || int32((*(*TMem)(unsafe.Pointer(aMem + uintptr(uint32(uint32(p21))+idx)*56))).Fflags)&int32(MEM_Null) != 0) { iCompare = -iCompare } if bRev != 0 { @@ -69193,7 +69533,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if v11 == int32(2) { (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(int32((*TMem)(unsafe.Pointer(pOut)).Fflags) & ^(libc.Int32FromInt32(MEM_TypeMask)|libc.Int32FromInt32(MEM_Zero)) | int32(MEM_Null)) } else { - *(*Ti64)(unsafe.Pointer(pOut)) = int64(v11) + *(*Ti64)(unsafe.Pointer(pOut)) = int64(int64(v11)) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(int32((*TMem)(unsafe.Pointer(pOut)).Fflags) & ^(libc.Int32FromInt32(MEM_TypeMask)|libc.Int32FromInt32(MEM_Zero)) | int32(MEM_Int)) } goto _187 @@ -69275,7 +69615,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _56: ; /* Address of this instruction */ if (*TVdbe)(unsafe.Pointer(p)).FpFrame != 0 { - iAddr = uint32(int32((int64(pOp) - int64((*TVdbe)(unsafe.Pointer(p)).FaOp)) / 24)) + iAddr = uint32(int32((int64(int64(pOp)) - int64((*TVdbe)(unsafe.Pointer(p)).FaOp)) / 24)) if int32(*(*Tu8)(unsafe.Pointer((*TVdbeFrame)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FpFrame)).FaOnce + uintptr(iAddr/uint32(8)))))&(int32(1)<<(iAddr&uint32(7))) != 0 { goto jump_to_p2 } @@ -69378,7 +69718,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } else { typeMask = uint16(int32(1) << (Xsqlite3_value_type(tls, aMem+uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56) - int32(1))) } - if int32(typeMask)&int32((*TOp)(unsafe.Pointer(pOp)).Fp5) != 0 { + if int32(int32(typeMask))&int32((*TOp)(unsafe.Pointer(pOp)).Fp5) != 0 { goto jump_to_p2 } goto _187 @@ -69488,6 +69828,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* PseudoTable input register */ pC3 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) p22 = uint32((*TOp)(unsafe.Pointer(pOp)).Fp2) + goto op_column_restart op_column_restart: ; aOffset = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaOffset @@ -69614,13 +69955,14 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { zData = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaRow } /* Fill in pC->aType[i] and aOffset[i] values through the p2-th field. */ + goto op_column_read_header op_column_read_header: ; i1 = int32((*TVdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed) offset64 = uint64(*(*Tu32)(unsafe.Pointer(aOffset + uintptr(i1)*4))) zHdr = zData + uintptr((*TVdbeCursor)(unsafe.Pointer(pC3)).FiHdrOffset) zEndHdr = zData + uintptr(*(*Tu32)(unsafe.Pointer(aOffset))) - for cond := true; cond; cond = uint32(i1) <= p22 && zHdr < zEndHdr { + for cond := true; cond; cond = uint32(uint32(i1)) <= p22 && zHdr < zEndHdr { v222 = uint32(*(*Tu8)(unsafe.Pointer(zHdr))) *(*Tu32)(unsafe.Pointer(bp + 80)) = v222 v221 = v222 @@ -69653,8 +69995,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto op_column_corrupt } } - (*TVdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed = uint16(i1) - (*TVdbeCursor)(unsafe.Pointer(pC3)).FiHdrOffset = uint32(int64(zHdr) - int64(zData)) + (*TVdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed = uint16(uint16(i1)) + (*TVdbeCursor)(unsafe.Pointer(pC3)).FiHdrOffset = uint32(int64(int64(zHdr)) - int64(int64(zData))) if (*TVdbeCursor)(unsafe.Pointer(pC3)).FaRow == uintptr(0) { _sqlite3VdbeMemRelease(tls, bp+24) } @@ -69713,7 +70055,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } else { (*TMem)(unsafe.Pointer(pDest)).Fz = (*TMem)(unsafe.Pointer(pDest)).FzMalloc } - libc.Xmemcpy(tls, (*TMem)(unsafe.Pointer(pDest)).Fz, zData, uint64(len1)) + libc.Xmemcpy(tls, (*TMem)(unsafe.Pointer(pDest)).Fz, zData, uint64(uint64(len1))) *(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pDest)).Fz + uintptr(len1))) = 0 *(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pDest)).Fz + uintptr(len1+int32(1)))) = 0 (*TMem)(unsafe.Pointer(pDest)).Fflags = _aFlag1[*(*Tu32)(unsafe.Pointer(bp + 80))&uint32(1)] @@ -69723,7 +70065,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* This branch happens only when content is on overflow pages */ v225 = uint8(int32((*TOp)(unsafe.Pointer(pOp)).Fp5) & libc.Int32FromInt32(OPFLAG_BYTELENARG)) p5 = v225 - if int32(v225) != 0 && (int32(p5) == int32(OPFLAG_TYPEOFARG) || *(*Tu32)(unsafe.Pointer(bp + 80)) >= uint32(12) && (*(*Tu32)(unsafe.Pointer(bp + 80))&uint32(1) == uint32(0) || int32(p5) == int32(OPFLAG_BYTELENARG))) || _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp + 80))) == uint32(0) { + if int32(v225) != 0 && (int32(int32(p5)) == int32(OPFLAG_TYPEOFARG) || *(*Tu32)(unsafe.Pointer(bp + 80)) >= uint32(12) && (*(*Tu32)(unsafe.Pointer(bp + 80))&uint32(1) == uint32(0) || int32(int32(p5)) == int32(OPFLAG_BYTELENARG))) || _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp + 80))) == uint32(0) { /* Content is irrelevant for ** 1. the typeof() function, ** 2. the length(X) function if X is a blob, and @@ -69739,7 +70081,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { */ _sqlite3VdbeSerialGet(tls, uintptr(unsafe.Pointer(&_sqlite3CtypeMap)), *(*Tu32)(unsafe.Pointer(bp + 80)), pDest) } else { - rc = _vdbeColumnFromOverflow(tls, pC3, int32(p22), int32(*(*Tu32)(unsafe.Pointer(bp + 80))), int64(*(*Tu32)(unsafe.Pointer(aOffset + uintptr(p22)*4))), (*TVdbe)(unsafe.Pointer(p)).FcacheCtr, colCacheCtr, pDest) + rc = _vdbeColumnFromOverflow(tls, pC3, int32(int32(p22)), int32(*(*Tu32)(unsafe.Pointer(bp + 80))), int64(*(*Tu32)(unsafe.Pointer(aOffset + uintptr(p22)*4))), (*TVdbe)(unsafe.Pointer(p)).FcacheCtr, colCacheCtr, pDest) if rc != 0 { if rc == int32(SQLITE_NOMEM) { goto no_mem @@ -69751,16 +70093,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } } + goto op_column_out op_column_out: ; goto _187 + goto op_column_corrupt op_column_corrupt: ; if (*(*TOp)(unsafe.Pointer(aOp))).Fp3 > 0 { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(95863)) + rc = _sqlite3CorruptError(tls, int32(96311)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -69860,9 +70204,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { i2++ } goto _187 + goto vdbe_type_error vdbe_type_error: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5670, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) + _sqlite3VdbeError(tls, p, __ccgo_ts+5734, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(12)<= int32(4) { - (*TMem)(unsafe.Pointer(pRec)).FuTemp = uint32(8) + uint32(uu) + (*TMem)(unsafe.Pointer(pRec)).FuTemp = uint32(8) + uint32(uint32(uu)) } else { nData++ (*TMem)(unsafe.Pointer(pRec)).FuTemp = uint32(1) @@ -70088,8 +70433,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { nZero += int64(*(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pRec)).Fu))) } } - nData += uint64(len11) - nHdr += _sqlite3VarintLen(tls, uint64(serial_type)) + nData += uint64(uint64(len11)) + nHdr += _sqlite3VarintLen(tls, uint64(uint64(serial_type))) (*TMem)(unsafe.Pointer(pRec)).FuTemp = serial_type } } @@ -70108,13 +70453,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { nHdr += int32(1) } else { /* Rare case of a really large header */ - nVarint = _sqlite3VarintLen(tls, uint64(nHdr)) + nVarint = _sqlite3VarintLen(tls, uint64(uint64(nHdr))) nHdr += nVarint - if nVarint < _sqlite3VarintLen(tls, uint64(nHdr)) { + if nVarint < _sqlite3VarintLen(tls, uint64(uint64(nHdr))) { nHdr++ } } - nByte1 = int64(uint64(nHdr) + nData) + nByte1 = int64(uint64(uint64(nHdr)) + nData) /* Make sure the output register has a buffer large enough to store ** the new record. The output register (pOp->p3) is not allowed to ** be one of the input registers (because the following call to @@ -70130,14 +70475,14 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if nByte1+nZero > int64(*(*int32)(unsafe.Pointer(db + 136))) { goto too_big } - if _sqlite3VdbeMemClearAndResize(tls, pOut, int32(nByte1)) != 0 { + if _sqlite3VdbeMemClearAndResize(tls, pOut, int32(int32(nByte1))) != 0 { goto no_mem } } - (*TMem)(unsafe.Pointer(pOut)).Fn = int32(nByte1) + (*TMem)(unsafe.Pointer(pOut)).Fn = int32(int32(nByte1)) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Blob) if nZero != 0 { - *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pOut)).Fu)) = int32(nZero) + *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pOut)).Fu)) = int32(int32(nZero)) p239 = pOut + 20 *(*Tu16)(unsafe.Pointer(p239)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p239))) | libc.Int32FromInt32(MEM_Zero)) } @@ -70147,9 +70492,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if nHdr < int32(0x80) { v240 = zHdr1 zHdr1++ - *(*Tu8)(unsafe.Pointer(v240)) = uint8(nHdr) + *(*Tu8)(unsafe.Pointer(v240)) = uint8(uint8(nHdr)) } else { - zHdr1 += uintptr(_sqlite3PutVarint(tls, zHdr1, uint64(nHdr))) + zHdr1 += uintptr(_sqlite3PutVarint(tls, zHdr1, uint64(uint64(nHdr)))) } pRec = pData0 for int32(1) != 0 { @@ -70161,7 +70506,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if serial_type <= uint32(7) { v241 = zHdr1 zHdr1++ - *(*Tu8)(unsafe.Pointer(v241)) = uint8(serial_type) + *(*Tu8)(unsafe.Pointer(v241)) = uint8(uint8(serial_type)) if serial_type == uint32(0) { /* NULL value. No change in zPayload */ } else { @@ -70205,13 +70550,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if serial_type < uint32(0x80) { v242 = zHdr1 zHdr1++ - *(*Tu8)(unsafe.Pointer(v242)) = uint8(serial_type) + *(*Tu8)(unsafe.Pointer(v242)) = uint8(uint8(serial_type)) if serial_type >= uint32(14) && (*TMem)(unsafe.Pointer(pRec)).Fn > 0 { libc.Xmemcpy(tls, zPayload, (*TMem)(unsafe.Pointer(pRec)).Fz, uint64((*TMem)(unsafe.Pointer(pRec)).Fn)) zPayload += uintptr((*TMem)(unsafe.Pointer(pRec)).Fn) } } else { - zHdr1 += uintptr(_sqlite3PutVarint(tls, zHdr1, uint64(serial_type))) + zHdr1 += uintptr(_sqlite3PutVarint(tls, zHdr1, uint64(uint64(serial_type)))) if (*TMem)(unsafe.Pointer(pRec)).Fn != 0 { libc.Xmemcpy(tls, zPayload, (*TMem)(unsafe.Pointer(pRec)).Fz, uint64((*TMem)(unsafe.Pointer(pRec)).Fn)) zPayload += uintptr((*TMem)(unsafe.Pointer(pRec)).Fn) @@ -70268,7 +70613,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* A new savepoint cannot be created if there are active write ** statements (i.e. open read/write incremental blob handles). */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5711, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5775, 0) rc = int32(SQLITE_BUSY) } else { nName = _sqlite3Strlen30(tls, zName) @@ -70281,7 +70626,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto abort_due_to_error } /* Create a new savepoint structure. */ - pNew = _sqlite3DbMallocRawNN(tls, db, uint64(32)+uint64(nName)+uint64(1)) + pNew = _sqlite3DbMallocRawNN(tls, db, uint64(uint64(32)+uint64(uint64(nName))+uint64(1))) if pNew != 0 { (*TSavepoint)(unsafe.Pointer(pNew)).FzName = pNew + 1*32 libc.Xmemcpy(tls, (*TSavepoint)(unsafe.Pointer(pNew)).FzName, zName, uint64(nName+int32(1))) @@ -70316,14 +70661,14 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pSavepoint = (*TSavepoint)(unsafe.Pointer(pSavepoint)).FpNext } if !(pSavepoint != 0) { - _sqlite3VdbeError(tls, p, __ccgo_ts+5762, libc.VaList(bp+944, zName)) + _sqlite3VdbeError(tls, p, __ccgo_ts+5826, libc.VaList(bp+944, zName)) rc = int32(SQLITE_ERROR) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeWrite > 0 && p12 == int32(SAVEPOINT_RELEASE) { /* It is not possible to release (commit) a savepoint if there are ** active write statements. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5784, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5848, 0) rc = int32(SQLITE_BUSY) } else { /* Determine whether or not this is a transaction savepoint. If so, @@ -70339,7 +70684,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } (*Tsqlite3)(unsafe.Pointer(db)).FautoCommit = uint8(1) if _sqlite3VdbeHalt(tls, p) == int32(SQLITE_BUSY) { - (*TVdbe)(unsafe.Pointer(p)).Fpc = int32((int64(pOp) - int64(aOp)) / 24) + (*TVdbe)(unsafe.Pointer(p)).Fpc = int32((int64(int64(pOp)) - int64(int64(aOp))) / 24) (*Tsqlite3)(unsafe.Pointer(db)).FautoCommit = uint8(0) v245 = libc.Int32FromInt32(SQLITE_BUSY) rc = v245 @@ -70458,7 +70803,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If this instruction implements a COMMIT and other VMs are writing ** return an error indicating that the other VMs must complete first. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5838, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5902, 0) rc = int32(SQLITE_BUSY) goto abort_due_to_error } else { @@ -70467,12 +70812,12 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if v248 != SQLITE_OK { goto vdbe_return } else { - (*Tsqlite3)(unsafe.Pointer(db)).FautoCommit = uint8(desiredAutoCommit) + (*Tsqlite3)(unsafe.Pointer(db)).FautoCommit = uint8(uint8(desiredAutoCommit)) } } } if _sqlite3VdbeHalt(tls, p) == int32(SQLITE_BUSY) { - (*TVdbe)(unsafe.Pointer(p)).Fpc = int32((int64(pOp) - int64(aOp)) / 24) + (*TVdbe)(unsafe.Pointer(p)).Fpc = int32((int64(int64(pOp)) - int64(int64(aOp))) / 24) (*Tsqlite3)(unsafe.Pointer(db)).FautoCommit = uint8(libc.Int32FromInt32(1) - desiredAutoCommit) v249 = libc.Int32FromInt32(SQLITE_BUSY) rc = v249 @@ -70488,12 +70833,12 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto vdbe_return } else { if !(desiredAutoCommit != 0) { - v250 = __ccgo_ts + 5893 + v250 = __ccgo_ts + 5957 } else { if iRollback != 0 { - v251 = __ccgo_ts + 5941 + v251 = __ccgo_ts + 6005 } else { - v251 = __ccgo_ts + 5984 + v251 = __ccgo_ts + 6048 } v250 = v251 } @@ -70556,7 +70901,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3BtreeBeginTrans(tls, pBt, (*TOp)(unsafe.Pointer(pOp)).Fp2, bp+104) if rc != SQLITE_OK { if rc&int32(0xff) == int32(SQLITE_BUSY) { - (*TVdbe)(unsafe.Pointer(p)).Fpc = int32((int64(pOp) - int64(aOp)) / 24) + (*TVdbe)(unsafe.Pointer(p)).Fpc = int32((int64(int64(pOp)) - int64(int64(aOp))) / 24) (*TVdbe)(unsafe.Pointer(p)).Frc = rc goto vdbe_return } @@ -70585,7 +70930,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** SQL statement was prepared. */ _sqlite3DbFree(tls, db, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg) - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6025) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6089) /* If the schema-cookie from the database file matches the cookie ** stored with the in-memory representation of the schema, do ** not reload the schema from the database file. @@ -70812,7 +71157,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if pCur == uintptr(0) { goto no_mem } - (*TVdbeCursor)(unsafe.Pointer(pCur)).FiDb = int8(iDb1) + (*TVdbeCursor)(unsafe.Pointer(pCur)).FiDb = int8(int8(iDb1)) (*TVdbeCursor)(unsafe.Pointer(pCur)).FnullRow = uint8(1) libc.SetBitFieldPtr8Uint32(pCur+8, libc.Uint32FromInt32(1), 2, 0x4) (*TVdbeCursor)(unsafe.Pointer(pCur)).FpgnoRoot = p23 @@ -70823,6 +71168,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** and report database corruption if they were not, but this check has ** since moved into the btree layer. */ (*TVdbeCursor)(unsafe.Pointer(pCur)).FisTable = libc.BoolUint8(int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) != -int32(8)) + goto open_cursor_set_hints open_cursor_set_hints: ; _sqlite3BtreeCursorHintFlags(tls, *(*uintptr)(unsafe.Pointer(pCur + 48)), uint32(int32((*TOp)(unsafe.Pointer(pOp)).Fp5)&(libc.Int32FromInt32(OPFLAG_BULKCSR)|libc.Int32FromInt32(OPFLAG_SEEKEQ)))) @@ -70902,7 +71248,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** form sqlite3BtreeInsert() where the length of the data is zero. */ /* Only used when number of columns is zero */ (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fn = 0 - (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1652 + (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1666 } pCx1 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) if pCx1 != 0 && !(int32(TBool(*(*uint8)(unsafe.Pointer(pCx1 + 8))&0x8>>3)) != 0) && (*TOp)(unsafe.Pointer(pOp)).Fp2 <= int32((*TVdbeCursor)(unsafe.Pointer(pCx1)).FnField) { @@ -71007,7 +71353,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** is the only cursor opcode that works with a pseudo-table. ** ** P3 is the number of fields in the records that will be stored by - ** the pseudo-table. + ** the pseudo-table. If P2 is 0 or negative then the pseudo-cursor + ** will return NULL for every column. */ _83: ; @@ -71125,11 +71472,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: Found, NotFound, SeekGt, SeekGe, SeekLt */ _88: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _87: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _86: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _85: ; /* Only interested in == results */ pC5 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) @@ -71145,7 +71492,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** the seek, so convert it. */ pIn3 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 flags31 = (*TMem)(unsafe.Pointer(pIn3)).Fflags - if int32(flags31)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_Real)|libc.Int32FromInt32(MEM_IntReal)|libc.Int32FromInt32(MEM_Str)) == int32(MEM_Str) { + if int32(int32(flags31))&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_Real)|libc.Int32FromInt32(MEM_IntReal)|libc.Int32FromInt32(MEM_Str)) == int32(MEM_Str) { _applyNumericAffinity(tls, pIn3, 0) } iKey = _sqlite3VdbeIntValue(tls, pIn3) /* Get the integer key value */ @@ -71153,9 +71500,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TMem)(unsafe.Pointer(pIn3)).Fflags = flags31 /* But convert the type back to its original */ /* If the P3 value could not be converted into an integer without ** loss of information, then special processing is required... */ - if int32(newType)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) == 0 { - if int32(newType)&int32(MEM_Real) == 0 { - if int32(newType)&int32(MEM_Null) != 0 || oc >= int32(OP_SeekGE) { + if int32(int32(newType))&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) == 0 { + if int32(int32(newType))&int32(MEM_Real) == 0 { + if int32(int32(newType))&int32(MEM_Null) != 0 || oc >= int32(OP_SeekGE) { goto jump_to_p2 } else { rc = _sqlite3BtreeLast(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48)), bp+112) @@ -71185,7 +71532,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } } - rc = _sqlite3BtreeTableMoveto(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48)), int64(uint64(iKey)), 0, bp+112) + rc = _sqlite3BtreeTableMoveto(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48)), int64(uint64(uint64(iKey))), 0, bp+112) (*TVdbeCursor)(unsafe.Pointer(pC5)).FmovetoTarget = iKey /* Used by OP_Delete */ if rc != SQLITE_OK { goto abort_due_to_error @@ -71201,7 +71548,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } nField2 = (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi (*(*TUnpackedRecord)(unsafe.Pointer(bp + 120))).FpKeyInfo = (*TVdbeCursor)(unsafe.Pointer(pC5)).FpKeyInfo - (*(*TUnpackedRecord)(unsafe.Pointer(bp + 120))).FnField = uint16(nField2) + (*(*TUnpackedRecord)(unsafe.Pointer(bp + 120))).FnField = uint16(uint16(nField2)) /* The next line of code computes as follows, only faster: ** if( oc==OP_SeekGT || oc==OP_SeekLE ){ ** r.default_rc = -1; @@ -71259,6 +71606,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 112)) = _sqlite3BtreeEof(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48))) } } + goto seek_not_found seek_not_found: ; if *(*int32)(unsafe.Pointer(bp + 112)) != 0 { @@ -71364,6 +71712,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(*(*int32)(unsafe.Pointer(bp + 160)) > 0 && int32((*TOp)(unsafe.Pointer(pOp)).Fp5) == 0) { goto _259 } + goto seekscan_search_fail seekscan_search_fail: ; /* Jump to SeekGE.P2, ending the loop */ @@ -71674,20 +72023,21 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* jump, in3, ncycle */ pIn3 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 iKey1 = uint64(*(*Ti64)(unsafe.Pointer(pIn3))) + goto notExistsWithKey notExistsWithKey: ; pC10 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) pCrsr2 = *(*uintptr)(unsafe.Pointer(pC10 + 48)) *(*int32)(unsafe.Pointer(bp + 248)) = 0 - rc = _sqlite3BtreeTableMoveto(tls, pCrsr2, int64(iKey1), 0, bp+248) - (*TVdbeCursor)(unsafe.Pointer(pC10)).FmovetoTarget = int64(iKey1) /* Used by OP_Delete */ + rc = _sqlite3BtreeTableMoveto(tls, pCrsr2, int64(int64(iKey1)), 0, bp+248) + (*TVdbeCursor)(unsafe.Pointer(pC10)).FmovetoTarget = int64(int64(iKey1)) /* Used by OP_Delete */ (*TVdbeCursor)(unsafe.Pointer(pC10)).FnullRow = uint8(0) (*TVdbeCursor)(unsafe.Pointer(pC10)).FcacheStatus = uint32(CACHE_STALE) (*TVdbeCursor)(unsafe.Pointer(pC10)).FdeferredMoveto = uint8(0) (*TVdbeCursor)(unsafe.Pointer(pC10)).FseekResult = *(*int32)(unsafe.Pointer(bp + 248)) if *(*int32)(unsafe.Pointer(bp + 248)) != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp2 == 0 { - rc = _sqlite3CorruptError(tls, int32(98111)) + rc = _sqlite3CorruptError(tls, int32(98565)) } else { goto jump_to_p2 } @@ -72287,10 +72637,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } goto _187 - /* Opcode: IfSmaller P1 P2 P3 * * + /* Opcode: IfSizeBetween P1 P2 P3 P4 * ** - ** Estimate the number of rows in the table P1. Jump to P2 if that - ** estimate is less than approximately 2**(0.1*P3). + ** Let N be the approximate number of rows in the table or index + ** with cursor P1 and let X be 10*log2(N) if N is positive or -1 + ** if N is zero. + ** + ** Jump to P2 if X is in between P3 and P4, inclusive. */ _111: ; @@ -72300,12 +72653,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { goto abort_due_to_error } - if *(*int32)(unsafe.Pointer(bp + 396)) == 0 { + if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { + sz = int64(-int32(1)) /* -Infinity encoding */ + } else { sz = _sqlite3BtreeRowCountEst(tls, pCrsr5) - if sz >= 0 && int32(_sqlite3LogEst(tls, uint64(sz))) < (*TOp)(unsafe.Pointer(pOp)).Fp3 { - *(*int32)(unsafe.Pointer(bp + 396)) = int32(1) - } + sz = int64(_sqlite3LogEst(tls, uint64(uint64(sz)))) } + *(*int32)(unsafe.Pointer(bp + 396)) = libc.BoolInt32(sz >= int64((*TOp)(unsafe.Pointer(pOp)).Fp3) && sz <= int64((*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { goto jump_to_p2 } @@ -72441,6 +72795,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* jump, ncycle */ pC22 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) rc = _sqlite3BtreeNext(tls, *(*uintptr)(unsafe.Pointer(pC22 + 48)), (*TOp)(unsafe.Pointer(pOp)).Fp3) + goto next_tail next_tail: ; (*TVdbeCursor)(unsafe.Pointer(pC22)).FcacheStatus = uint32(CACHE_STALE) @@ -72573,7 +72928,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } else { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 && !(_sqlite3WritableSchema(tls, db) != 0) { - rc = _sqlite3ReportError(tls, libc.Int32FromInt32(SQLITE_CORRUPT)|libc.Int32FromInt32(3)< int64(0x7fffffff) { - rc = _sqlite3CorruptError(tls, int32(99398)) + rc = _sqlite3CorruptError(tls, int32(99862)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) - rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur2, uint32(nCellKey), bp+552) + rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur2, uint32(uint32(nCellKey)), bp+552) if rc != 0 { goto abort_due_to_error } @@ -72870,11 +73225,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } *(*Ti64)(unsafe.Pointer(pOut)) = int64(*(*TPgno)(unsafe.Pointer(bp + 624))) goto _187 - /* Opcode: SqlExec * * * P4 * + /* Opcode: SqlExec P1 P2 * P4 * ** ** Run the SQL statement or statements specified in the P4 string. - ** Disable Auth and Trace callbacks while those statements are running if - ** P1 is true. + ** + ** The P1 parameter is a bitmask of options: + ** + ** 0x0001 Disable Auth and Trace callbacks while the statements + ** in P4 are running. + ** + ** 0x0002 Set db->nAnalysisLimit to P2 while the statements in + ** P4 are running. + ** */ _132: ; @@ -72882,16 +73244,21 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*uintptr)(unsafe.Pointer(bp + 632)) = uintptr(0) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth mTrace = (*Tsqlite3)(unsafe.Pointer(db)).FmTrace - if (*TOp)(unsafe.Pointer(pOp)).Fp1 != 0 { + savedAnalysisLimit = (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0001) != 0 { (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(0) } + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0002) != 0 { + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = (*TOp)(unsafe.Pointer(pOp)).Fp2 + } rc = Xsqlite3_exec(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16)), uintptr(0), uintptr(0), bp+632) (*Tsqlite3)(unsafe.Pointer(db)).FnSqlExec-- (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = mTrace + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = savedAnalysisLimit if *(*uintptr)(unsafe.Pointer(bp + 632)) != 0 || rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 632))) if rc == int32(SQLITE_NOMEM) { goto no_mem @@ -72922,13 +73289,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_SchemaChange) libc.SetBitFieldPtr16Uint32(p+200, libc.Uint32FromInt32(0), 0, 0x3) } else { - zSchema = __ccgo_ts + 6070 + zSchema = __ccgo_ts + 6134 (*(*TInitData)(unsafe.Pointer(bp + 640))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 640))).FiDb = iDb3 (*(*TInitData)(unsafe.Pointer(bp + 640))).FpzErrMsg = p + 168 (*(*TInitData)(unsafe.Pointer(bp + 640))).FmInitFlags = uint32(0) (*(*TInitData)(unsafe.Pointer(bp + 640))).FmxPage = _sqlite3BtreeLastPage(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6084, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6148, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -72943,7 +73310,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* The OP_ParseSchema opcode with a non-NULL P4 argument should parse ** at least one SQL statement. Any less than that indicates that ** the sqlite_schema table is corrupt. */ - rc = _sqlite3CorruptError(tls, int32(99678)) + rc = _sqlite3CorruptError(tls, int32(100155)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -73009,11 +73376,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* Opcode: IntegrityCk P1 P2 P3 P4 P5 ** ** Do an analysis of the currently open database. Store in - ** register P1 the text of an error message describing any problems. - ** If no problems are found, store a NULL in register P1. + ** register (P1+1) the text of an error message describing any problems. + ** If no problems are found, store a NULL in register (P1+1). ** - ** The register P3 contains one less than the maximum number of allowed errors. - ** At most reg(P3) errors will be reported. + ** The register (P1) contains one less than the maximum number of allowed + ** errors. At most reg(P1) errors will be reported. ** In other words, the analysis stops as soon as reg(P1) errors are ** seen. Reg(P1) is updated with the number of errors remaining. ** @@ -73029,9 +73396,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* Register keeping track of errors remaining */ nRoot = (*TOp)(unsafe.Pointer(pOp)).Fp2 aRoot = *(*uintptr)(unsafe.Pointer(pOp + 16)) - pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 - pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 - rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) + pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 + pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1+int32(1))*56 + rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, aMem+uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) _sqlite3VdbeMemSetNull(tls, pIn1) if *(*int32)(unsafe.Pointer(bp + 680)) == 0 { } else { @@ -73043,7 +73410,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _sqlite3VdbeMemSetStr(tls, pIn1, *(*uintptr)(unsafe.Pointer(bp + 688)), int64(-int32(1)), uint8(SQLITE_UTF8), __ccgo_fp(Xsqlite3_free)) } } - _sqlite3VdbeChangeEncoding(tls, pIn1, int32(encoding)) + _sqlite3VdbeChangeEncoding(tls, pIn1, int32(int32(encoding))) goto check_for_interrupt /* Opcode: RowSetAdd P1 P2 * * * ** Synopsis: rowset(P1)=r[P2] @@ -73137,7 +73504,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** P1 contains the address of the memory cell that contains the first memory ** cell in an array of values used as arguments to the sub-program. P2 ** contains the address to jump to if the sub-program throws an IGNORE - ** exception using the RAISE() function. Register P3 contains the address + ** exception using the RAISE() function. P2 might be zero, if there is + ** no possibility that an IGNORE exception will be raised. + ** Register P3 contains the address ** of a memory cell in this (the parent) VM that is used to allocate the ** memory required by the sub-vdbe at runtime. ** @@ -73178,7 +73547,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } if (*TVdbe)(unsafe.Pointer(p)).FnFrame >= *(*int32)(unsafe.Pointer(db + 136 + 10*4)) { rc = int32(SQLITE_ERROR) - _sqlite3VdbeError(tls, p, __ccgo_ts+6127, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6191, 0) goto abort_due_to_error } /* Register pRt is used to store the memory required to save the state @@ -73195,8 +73564,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if (*TSubProgram)(unsafe.Pointer(pProgram)).FnCsr == 0 { nMem++ } - nByte2 = int32((libc.Uint64FromInt64(112)+libc.Uint64FromInt32(7))&uint64(^libc.Int32FromInt32(7)) + uint64(nMem)*uint64(56) + uint64((*TSubProgram)(unsafe.Pointer(pProgram)).FnCsr)*uint64(8) + uint64(((*TSubProgram)(unsafe.Pointer(pProgram)).FnOp+int32(7))/int32(8))) - pFrame2 = _sqlite3DbMallocZero(tls, db, uint64(nByte2)) + nByte2 = int32((libc.Uint64FromInt64(112)+libc.Uint64FromInt32(7))&uint64(^libc.Int32FromInt32(7)) + uint64(uint64(nMem))*uint64(56) + uint64((*TSubProgram)(unsafe.Pointer(pProgram)).FnCsr)*uint64(8) + uint64(((*TSubProgram)(unsafe.Pointer(pProgram)).FnOp+int32(7))/int32(8))) + pFrame2 = _sqlite3DbMallocZero(tls, db, uint64(uint64(nByte2))) if !(pFrame2 != 0) { goto no_mem } @@ -73208,7 +73577,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TVdbeFrame)(unsafe.Pointer(pFrame2)).Fv = p (*TVdbeFrame)(unsafe.Pointer(pFrame2)).FnChildMem = nMem (*TVdbeFrame)(unsafe.Pointer(pFrame2)).FnChildCsr = (*TSubProgram)(unsafe.Pointer(pProgram)).FnCsr - (*TVdbeFrame)(unsafe.Pointer(pFrame2)).Fpc = int32((int64(pOp) - int64(aOp)) / 24) + (*TVdbeFrame)(unsafe.Pointer(pFrame2)).Fpc = int32((int64(int64(pOp)) - int64(int64(aOp))) / 24) (*TVdbeFrame)(unsafe.Pointer(pFrame2)).FaMem = (*TVdbe)(unsafe.Pointer(p)).FaMem (*TVdbeFrame)(unsafe.Pointer(pFrame2)).FnMem = (*TVdbe)(unsafe.Pointer(p)).FnMem (*TVdbeFrame)(unsafe.Pointer(pFrame2)).FapCsr = (*TVdbe)(unsafe.Pointer(p)).FapCsr @@ -73493,7 +73862,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _151: ; n4 = int32((*TOp)(unsafe.Pointer(pOp)).Fp5) - pCtx = _sqlite3DbMallocRawNN(tls, db, uint64(n4)*uint64(8)+(libc.Uint64FromInt64(56)+libc.Uint64FromInt64(56)-libc.Uint64FromInt64(8))) + pCtx = _sqlite3DbMallocRawNN(tls, db, uint64(uint64(uint64(n4))*uint64(8)+(libc.Uint64FromInt64(56)+libc.Uint64FromInt64(56)-libc.Uint64FromInt64(8)))) if pCtx == uintptr(0) { goto no_mem } @@ -73501,12 +73870,12 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut = pCtx + 48 + uintptr(n4)*8 _sqlite3VdbeMemInit(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, db, uint16(MEM_Null)) (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc = *(*uintptr)(unsafe.Pointer(pOp + 16)) - (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FiOp = int32((int64(pOp) - int64(aOp)) / 24) + (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FiOp = int32((int64(int64(pOp)) - int64(int64(aOp))) / 24) (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe = p (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FskipFlag = uint8(0) (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = 0 (*Tsqlite3_context)(unsafe.Pointer(pCtx)).Fenc = encoding - (*Tsqlite3_context)(unsafe.Pointer(pCtx)).Fargc = uint8(n4) + (*Tsqlite3_context)(unsafe.Pointer(pCtx)).Fargc = uint8(uint8(n4)) (*TOp)(unsafe.Pointer(pOp)).Fp4type = int8(-libc.Int32FromInt32(15)) *(*uintptr)(unsafe.Pointer(pOp + 16)) = pCtx /* OP_AggInverse must have P1==1 and OP_AggStep must have P1==0 */ @@ -73541,7 +73910,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* IMP: R-24505-23230 */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError } if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FskipFlag != 0 { @@ -73597,10 +73966,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3VdbeMemFinalize(tls, pMem3, *(*uintptr)(unsafe.Pointer(pOp + 16))) } if rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) goto abort_due_to_error } - _sqlite3VdbeChangeEncoding(tls, pMem3, int32(encoding)) + _sqlite3VdbeChangeEncoding(tls, pMem3, int32(int32(encoding))) goto _187 /* Opcode: Checkpoint P1 P2 P3 * * ** @@ -73676,11 +74045,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeRead > int32(1) { rc = int32(SQLITE_ERROR) if eNew == int32(PAGER_JOURNALMODE_WAL) { - v286 = __ccgo_ts + 6164 + v286 = __ccgo_ts + 6228 } else { - v286 = __ccgo_ts + 6169 + v286 = __ccgo_ts + 6233 } - _sqlite3VdbeError(tls, p, __ccgo_ts+6176, libc.VaList(bp+944, v286)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6240, libc.VaList(bp+944, v286)) goto abort_due_to_error } else { if eOld == int32(PAGER_JOURNALMODE_WAL) { @@ -73721,7 +74090,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TMem)(unsafe.Pointer(pOut)).Fz = _sqlite3JournalModename(tls, eNew) (*TMem)(unsafe.Pointer(pOut)).Fn = _sqlite3Strlen30(tls, (*TMem)(unsafe.Pointer(pOut)).Fz) (*TMem)(unsafe.Pointer(pOut)).Fenc = uint8(SQLITE_UTF8) - _sqlite3VdbeChangeEncoding(tls, pOut, int32(encoding)) + _sqlite3VdbeChangeEncoding(tls, pOut, int32(int32(encoding))) if rc != 0 { goto abort_due_to_error } @@ -73833,7 +74202,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { if rc&int32(0xFF) == int32(SQLITE_LOCKED) { z1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - _sqlite3VdbeError(tls, p, __ccgo_ts+6228, libc.VaList(bp+944, z1)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6292, libc.VaList(bp+944, z1)) } goto abort_due_to_error } @@ -73995,7 +74364,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TValueList)(unsafe.Pointer(pRhs)).FpOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 pOut = _out2Prerelease(tls, p, pOp) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6257, __ccgo_fp(_sqlite3VdbeValueListFree)) + _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6321, __ccgo_fp(_sqlite3VdbeValueListFree)) goto _187 /* Opcode: VFilter P1 P2 P3 P4 * ** Synopsis: iplan=r[P3] zplan='P4' @@ -74091,10 +74460,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_module)(unsafe.Pointer(pModule4)).FxColumn})))(tls, *(*uintptr)(unsafe.Pointer(pCur5 + 48)), bp+800, (*TOp)(unsafe.Pointer(pOp)).Fp2) _sqlite3VtabImportErrmsg(tls, p, pVtab4) if (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) rc = (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError } - _sqlite3VdbeChangeEncoding(tls, pDest2, int32(encoding)) + _sqlite3VdbeChangeEncoding(tls, pDest2, int32(int32(encoding))) if rc != 0 { goto abort_due_to_error } @@ -74345,7 +74714,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If the function returned an error, throw an exception */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3799, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3863, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError } _sqlite3VdbeDeleteAuxData(tls, db, p+296, (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FiOp, (*TOp)(unsafe.Pointer(pOp)).Fp1) @@ -74496,7 +74865,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { Xsqlite3_free(tls, z2) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeExec > int32(1) { - z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6267, libc.VaList(bp+944, zTrace)) + z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6331, libc.VaList(bp+944, zTrace)) (*(*func(*libc.TLS, Tu32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*Tsqlite3)(unsafe.Pointer(db)).Ftrace))})))(tls, uint32(SQLITE_TRACE_STMT), (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg, p, z3) _sqlite3DbFree(tls, db, z3) } else { @@ -74561,21 +74930,22 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If we reach this point, it means that execution is finished with ** an error of some kind. */ + goto abort_due_to_error abort_due_to_error: ; if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)< 0 { - _sqlite3ResetOneSchema(tls, db, int32(resetSchemaOnFault)-int32(1)) + if int32(int32(resetSchemaOnFault)) > 0 { + _sqlite3ResetOneSchema(tls, db, int32(int32(resetSchemaOnFault))-int32(1)) } /* This is the only way out of this procedure. We have to ** release the mutexes on btrees that were acquired at the ** top. */ + goto vdbe_return vdbe_return: ; for nVmStep >= nProgressLimit && (*Tsqlite3)(unsafe.Pointer(db)).FxProgress != uintptr(0) { @@ -74602,7 +74973,7 @@ vdbe_return: goto abort_due_to_error } } - *(*Tu32)(unsafe.Pointer(p + 212 + 4*4)) += uint32(int32(nVmStep)) + *(*Tu32)(unsafe.Pointer(p + 212 + 4*4)) += uint32(int32(int32(nVmStep))) if (*TVdbe)(unsafe.Pointer(p)).FlockMask != uint32(0) { _sqlite3VdbeLeave(tls, p) } @@ -74610,22 +74981,25 @@ vdbe_return: /* Jump to here if a string or blob larger than SQLITE_MAX_LENGTH ** is encountered. */ + goto too_big too_big: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5427, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5491, 0) rc = int32(SQLITE_TOOBIG) goto abort_due_to_error /* Jump to here if a malloc() fails. */ + goto no_mem no_mem: ; _sqlite3OomFault(tls, db) - _sqlite3VdbeError(tls, p, __ccgo_ts+1622, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+1636, 0) rc = int32(SQLITE_NOMEM) goto abort_due_to_error /* Jump to here if the sqlite3_interrupt() API sets the interrupt ** flag. */ + goto abort_due_to_interrupt abort_due_to_interrupt: ; rc = int32(SQLITE_INTERRUPT) @@ -74634,10 +75008,10 @@ abort_due_to_interrupt: } var _azType = [4]uintptr{ - 0: __ccgo_ts + 5584, - 1: __ccgo_ts + 5593, - 2: __ccgo_ts + 5600, - 3: __ccgo_ts + 5606, + 0: __ccgo_ts + 5648, + 1: __ccgo_ts + 5657, + 2: __ccgo_ts + 5664, + 3: __ccgo_ts + 5670, } var _and_logic = [9]uint8{ @@ -74788,16 +75162,16 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr type1 = v1 if type1 < uint32(12) { if type1 == uint32(0) { - v2 = __ccgo_ts + 1638 + v2 = __ccgo_ts + 1652 } else { if type1 == uint32(7) { - v3 = __ccgo_ts + 6305 + v3 = __ccgo_ts + 6369 } else { - v3 = __ccgo_ts + 6310 + v3 = __ccgo_ts + 6374 } v2 = v3 } - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6318, libc.VaList(bp+8, v2)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6382, libc.VaList(bp+8, v2)) rc = int32(SQLITE_ERROR) Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) @@ -74815,10 +75189,10 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr rc = Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) if rc == SQLITE_OK { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6347, libc.VaList(bp+8, iRow)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6411, libc.VaList(bp+8, iRow)) rc = int32(SQLITE_ERROR) } else { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) } } } @@ -74858,15 +75232,15 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, pTab = _sqlite3LocateTable(tls, bp+8, uint32(0), zTable, zDb) if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6367, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6431, libc.VaList(bp+440, zTable)) } if pTab != 0 && !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6397, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6461, libc.VaList(bp+440, zTable)) } if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6433, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6497, libc.VaList(bp+440, zTable)) } if !(pTab != 0) { if (*(*TParse)(unsafe.Pointer(bp + 8))).FzErrMsg != 0 { @@ -74896,7 +75270,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6454, libc.VaList(bp+440, zColumn)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6518, libc.VaList(bp+440, zColumn)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -74922,7 +75296,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, break } if (*(*TsColMap)(unsafe.Pointer(pFKey + 64 + uintptr(j)*16))).FiFrom == iCol { - zFault = __ccgo_ts + 6475 + zFault = __ccgo_ts + 6539 } goto _3 _3: @@ -74947,7 +75321,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } /* FIXME: Be smarter about indexes that use expressions */ if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == iCol || int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == -int32(2) { - zFault = __ccgo_ts + 6487 + zFault = __ccgo_ts + 6551 } goto _5 _5: @@ -74961,7 +75335,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if zFault != 0 { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6495, libc.VaList(bp+440, zFault)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6559, libc.VaList(bp+440, zFault)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -75007,7 +75381,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, _sqlite3VdbeMakeReady(tls, v, bp+8) } } - (*TIncrblob)(unsafe.Pointer(pBlob)).FiCol = uint16(iCol) + (*TIncrblob)(unsafe.Pointer(pBlob)).FiCol = uint16(uint16(iCol)) (*TIncrblob)(unsafe.Pointer(pBlob)).Fdb = db _sqlite3BtreeLeaveAll(tls, db) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -75021,6 +75395,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } _sqlite3ParseObjectReset(tls, bp+8) } + goto blob_open_out blob_open_out: ; if rc == SQLITE_OK && int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { @@ -75032,7 +75407,7 @@ blob_open_out: _sqlite3DbFree(tls, db, pBlob) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v7 = __ccgo_ts + 3799 + v7 = __ccgo_ts + 3863 } else { v7 = libc.UintptrFromInt32(0) } @@ -75122,12 +75497,12 @@ func _blobReadWrite(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset in _, _, _, _, _ = db, iKey, p, rc, v p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102190)) + return _sqlite3MisuseError(tls, int32(102671)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) v = (*TIncrblob)(unsafe.Pointer(p)).FpStmt - if n < 0 || iOffset < 0 || int64(iOffset)+int64(n) > int64((*TIncrblob)(unsafe.Pointer(p)).FnByte) { + if n < 0 || iOffset < 0 || int64(int64(iOffset))+int64(int64(n)) > int64((*TIncrblob)(unsafe.Pointer(p)).FnByte) { /* Request is out of range. Return a transient error. */ rc = int32(SQLITE_ERROR) } else { @@ -75145,7 +75520,7 @@ func _blobReadWrite(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset in iKey = _sqlite3BtreeIntegerKey(tls, (*TIncrblob)(unsafe.Pointer(p)).FpCsr) _sqlite3VdbePreUpdateHook(tls, v, *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(v)).FapCsr)), int32(SQLITE_DELETE), (*TIncrblob)(unsafe.Pointer(p)).FzDb, (*TIncrblob)(unsafe.Pointer(p)).FpTab, iKey, -int32(1), int32((*TIncrblob)(unsafe.Pointer(p)).FiCol)) } - rc = (*(*func(*libc.TLS, uintptr, Tu32, Tu32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCall})))(tls, (*TIncrblob)(unsafe.Pointer(p)).FpCsr, uint32(iOffset+(*TIncrblob)(unsafe.Pointer(p)).FiOffset), uint32(n), z) + rc = (*(*func(*libc.TLS, uintptr, Tu32, Tu32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCall})))(tls, (*TIncrblob)(unsafe.Pointer(p)).FpCsr, uint32(iOffset+(*TIncrblob)(unsafe.Pointer(p)).FiOffset), uint32(uint32(n)), z) _sqlite3BtreeLeaveCursor(tls, (*TIncrblob)(unsafe.Pointer(p)).FpCsr) if rc == int32(SQLITE_ABORT) { _sqlite3VdbeFinalize(tls, v) @@ -75221,7 +75596,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r _, _, _, _ = db, p, rc, v1 p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102290)) + return _sqlite3MisuseError(tls, int32(102771)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -75235,7 +75610,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r rc = _blobSeekToRow(tls, p, iRow, bp) if rc != SQLITE_OK { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v1 = __ccgo_ts + 3799 + v1 = __ccgo_ts + 3863 } else { v1 = libc.UintptrFromInt32(0) } @@ -75842,7 +76217,7 @@ func _vdbePmaReadBlob(tls *libc.TLS, p uintptr, nByte int32, ppOut uintptr) (r i _, _, _, _, _, _, _, _, _, _ = aNew, iBuf, nAvail, nCopy, nNew, nRead, nRem, rc, rc1, v1 /* Bytes of data available in buffer */ if (*TPmaReader)(unsafe.Pointer(p)).FaMap != 0 { *(*uintptr)(unsafe.Pointer(ppOut)) = (*TPmaReader)(unsafe.Pointer(p)).FaMap + uintptr((*TPmaReader)(unsafe.Pointer(p)).FiReadOff) - *(*Ti64)(unsafe.Pointer(p)) += int64(nByte) + *(*Ti64)(unsafe.Pointer(p)) += int64(int64(nByte)) return SQLITE_OK } /* If there is no more data to be read from the buffer, read the next @@ -75868,7 +76243,7 @@ func _vdbePmaReadBlob(tls *libc.TLS, p uintptr, nByte int32, ppOut uintptr) (r i ** case there is no need to make a copy of the data, just return a ** pointer into the buffer to the caller. */ *(*uintptr)(unsafe.Pointer(ppOut)) = (*TPmaReader)(unsafe.Pointer(p)).FaBuffer + uintptr(iBuf) - *(*Ti64)(unsafe.Pointer(p)) += int64(nByte) + *(*Ti64)(unsafe.Pointer(p)) += int64(int64(nByte)) } else { /* Bytes remaining to copy */ /* Extend the p->aAlloc[] allocation if required. */ if (*TPmaReader)(unsafe.Pointer(p)).FnAlloc < nByte { @@ -75878,20 +76253,20 @@ func _vdbePmaReadBlob(tls *libc.TLS, p uintptr, nByte int32, ppOut uintptr) (r i v1 = int64(2) * int64((*TPmaReader)(unsafe.Pointer(p)).FnAlloc) } nNew = v1 - for int64(nByte) > nNew { + for int64(int64(nByte)) > nNew { nNew = nNew * int64(2) } - aNew = _sqlite3Realloc(tls, (*TPmaReader)(unsafe.Pointer(p)).FaAlloc, uint64(nNew)) + aNew = _sqlite3Realloc(tls, (*TPmaReader)(unsafe.Pointer(p)).FaAlloc, uint64(uint64(nNew))) if !(aNew != 0) { return int32(SQLITE_NOMEM) } - (*TPmaReader)(unsafe.Pointer(p)).FnAlloc = int32(nNew) + (*TPmaReader)(unsafe.Pointer(p)).FnAlloc = int32(int32(nNew)) (*TPmaReader)(unsafe.Pointer(p)).FaAlloc = aNew } /* Copy as much data as is available in the buffer into the start of ** p->aAlloc[]. */ - libc.Xmemcpy(tls, (*TPmaReader)(unsafe.Pointer(p)).FaAlloc, (*TPmaReader)(unsafe.Pointer(p)).FaBuffer+uintptr(iBuf), uint64(nAvail)) - *(*Ti64)(unsafe.Pointer(p)) += int64(nAvail) + libc.Xmemcpy(tls, (*TPmaReader)(unsafe.Pointer(p)).FaAlloc, (*TPmaReader)(unsafe.Pointer(p)).FaBuffer+uintptr(iBuf), uint64(uint64(nAvail))) + *(*Ti64)(unsafe.Pointer(p)) += int64(int64(nAvail)) nRem = nByte - nAvail /* The following loop copies up to p->nBuffer bytes per iteration into ** the p->aAlloc[] buffer. */ @@ -75904,7 +76279,7 @@ func _vdbePmaReadBlob(tls *libc.TLS, p uintptr, nByte int32, ppOut uintptr) (r i if rc1 != SQLITE_OK { return rc1 } - libc.Xmemcpy(tls, (*TPmaReader)(unsafe.Pointer(p)).FaAlloc+uintptr(nByte-nRem), *(*uintptr)(unsafe.Pointer(bp)), uint64(nCopy)) + libc.Xmemcpy(tls, (*TPmaReader)(unsafe.Pointer(p)).FaAlloc+uintptr(nByte-nRem), *(*uintptr)(unsafe.Pointer(bp)), uint64(uint64(nCopy))) nRem -= nCopy } *(*uintptr)(unsafe.Pointer(ppOut)) = (*TPmaReader)(unsafe.Pointer(p)).FaAlloc @@ -75997,9 +76372,9 @@ func _vdbePmaReaderSeek(tls *libc.TLS, pTask uintptr, pReadr uintptr, pFile uint rc = _vdbeSorterMapFile(tls, pTask, pFile, pReadr+64) if rc == SQLITE_OK && (*TPmaReader)(unsafe.Pointer(pReadr)).FaMap == uintptr(0) { pgsz = (*TVdbeSorter)(unsafe.Pointer((*TSortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fpgsz - iBuf = int32((*TPmaReader)(unsafe.Pointer(pReadr)).FiReadOff % int64(pgsz)) + iBuf = int32((*TPmaReader)(unsafe.Pointer(pReadr)).FiReadOff % int64(int64(pgsz))) if (*TPmaReader)(unsafe.Pointer(pReadr)).FaBuffer == uintptr(0) { - (*TPmaReader)(unsafe.Pointer(pReadr)).FaBuffer = _sqlite3Malloc(tls, uint64(pgsz)) + (*TPmaReader)(unsafe.Pointer(pReadr)).FaBuffer = _sqlite3Malloc(tls, uint64(uint64(pgsz))) if (*TPmaReader)(unsafe.Pointer(pReadr)).FaBuffer == uintptr(0) { rc = int32(SQLITE_NOMEM) } @@ -76007,7 +76382,7 @@ func _vdbePmaReaderSeek(tls *libc.TLS, pTask uintptr, pReadr uintptr, pFile uint } if rc == SQLITE_OK && iBuf != 0 { nRead = pgsz - iBuf - if (*TPmaReader)(unsafe.Pointer(pReadr)).FiReadOff+int64(nRead) > (*TPmaReader)(unsafe.Pointer(pReadr)).FiEof { + if (*TPmaReader)(unsafe.Pointer(pReadr)).FiReadOff+int64(int64(nRead)) > (*TPmaReader)(unsafe.Pointer(pReadr)).FiEof { nRead = int32((*TPmaReader)(unsafe.Pointer(pReadr)).FiEof - (*TPmaReader)(unsafe.Pointer(pReadr)).FiReadOff) } rc = _sqlite3OsRead(tls, (*TPmaReader)(unsafe.Pointer(pReadr)).FpFd, (*TPmaReader)(unsafe.Pointer(pReadr)).FaBuffer+uintptr(iBuf), nRead, (*TPmaReader)(unsafe.Pointer(pReadr)).FiReadOff) @@ -76203,7 +76578,7 @@ func _vdbeSorterCompareInt(tls *libc.TLS, pTask uintptr, pbKey2Cached uintptr, p res = 0 i = 0 for { - if !(i < int32(n)) { + if !(i < int32(int32(n))) { break } v21 = int32(*(*Tu8)(unsafe.Pointer(v1 + uintptr(i)))) - int32(*(*Tu8)(unsafe.Pointer(v2 + uintptr(i)))) @@ -76308,7 +76683,7 @@ func _sqlite3VdbeSorterInit(tls *libc.TLS, db uintptr, nField int32, pCsr uintpt /* Do not allow the total number of threads (main thread + all workers) ** to exceed the maximum merge count */ szKeyInfo = int32(uint64(40) + uint64(int32((*TKeyInfo)(unsafe.Pointer((*TVdbeCursor)(unsafe.Pointer(pCsr)).FpKeyInfo)).FnKeyField)-libc.Int32FromInt32(1))*uint64(8)) - sz = int32(uint64(192) + uint64(nWorker)*uint64(96)) + sz = int32(uint64(192) + uint64(uint64(nWorker))*uint64(96)) pSorter = _sqlite3DbMallocZero(tls, db, uint64(sz+szKeyInfo)) *(*uintptr)(unsafe.Pointer(pCsr + 48)) = pSorter if pSorter == uintptr(0) { @@ -76318,10 +76693,10 @@ func _sqlite3VdbeSorterInit(tls *libc.TLS, db uintptr, nField int32, pCsr uintpt v1 = pSorter + uintptr(sz) pKeyInfo = v1 (*TVdbeSorter)(unsafe.Pointer(pSorter)).FpKeyInfo = v1 - libc.Xmemcpy(tls, pKeyInfo, (*TVdbeCursor)(unsafe.Pointer(pCsr)).FpKeyInfo, uint64(szKeyInfo)) + libc.Xmemcpy(tls, pKeyInfo, (*TVdbeCursor)(unsafe.Pointer(pCsr)).FpKeyInfo, uint64(uint64(szKeyInfo))) (*TKeyInfo)(unsafe.Pointer(pKeyInfo)).Fdb = uintptr(0) if nField != 0 && nWorker == 0 { - (*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField = uint16(nField) + (*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField = uint16(uint16(nField)) } _sqlite3BtreeEnter(tls, pBt) v2 = _sqlite3BtreeGetPageSize(tls, pBt) @@ -76346,14 +76721,14 @@ func _sqlite3VdbeSorterInit(tls *libc.TLS, db uintptr, nField int32, pCsr uintpt } if !(_sqlite3TempInMemory(tls, db) != 0) { /* Cache size in bytes*/ szPma = _sqlite3Config.FszPma - (*TVdbeSorter)(unsafe.Pointer(pSorter)).FmnPmaSize = int32(szPma * uint32(pgsz)) + (*TVdbeSorter)(unsafe.Pointer(pSorter)).FmnPmaSize = int32(szPma * uint32(uint32(pgsz))) mxCache = int64((*TSchema)(unsafe.Pointer((*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema)).Fcache_size) if mxCache < 0 { /* A negative cache-size value C indicates that the cache is abs(C) ** KiB in size. */ mxCache = mxCache * int64(-int32(1024)) } else { - mxCache = mxCache * int64(pgsz) + mxCache = mxCache * int64(int64(pgsz)) } if mxCache < int64(libc.Int32FromInt32(1)< int32(mxCache) { + if (*TVdbeSorter)(unsafe.Pointer(pSorter)).FmnPmaSize > int32(int32(mxCache)) { v5 = (*TVdbeSorter)(unsafe.Pointer(pSorter)).FmnPmaSize } else { - v5 = int32(mxCache) + v5 = int32(int32(mxCache)) } (*TVdbeSorter)(unsafe.Pointer(pSorter)).FmxPmaSize = v5 /* Avoid large memory allocations if the application has requested ** SQLITE_CONFIG_SMALL_MALLOC. */ if int32(_sqlite3Config.FbSmallMalloc) == 0 { (*TVdbeSorter)(unsafe.Pointer(pSorter)).FnMemory = pgsz - (*TVdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory = _sqlite3Malloc(tls, uint64(pgsz)) + (*TVdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory = _sqlite3Malloc(tls, uint64(uint64(pgsz))) if !((*TVdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory != 0) { rc = int32(SQLITE_NOMEM) } @@ -76514,11 +76889,11 @@ func _vdbeMergeEngineNew(tls *libc.TLS, nReader int32) (r uintptr) { for N < nReader { N += N } - nByte = int32(uint64(32) + uint64(N)*(libc.Uint64FromInt64(4)+libc.Uint64FromInt64(80))) + nByte = int32(uint64(32) + uint64(uint64(N))*(libc.Uint64FromInt64(4)+libc.Uint64FromInt64(80))) if _sqlite3FaultSim(tls, int32(100)) != 0 { v1 = uintptr(0) } else { - v1 = _sqlite3MallocZero(tls, uint64(nByte)) + v1 = _sqlite3MallocZero(tls, uint64(uint64(nByte))) } pNew = v1 if pNew != 0 { @@ -76848,11 +77223,11 @@ func _vdbePmaWriterInit(tls *libc.TLS, pFd uintptr, p uintptr, nBuf int32, iStar var v1 int32 _ = v1 libc.Xmemset(tls, p, 0, uint64(48)) - (*TPmaWriter)(unsafe.Pointer(p)).FaBuffer = _sqlite3Malloc(tls, uint64(nBuf)) + (*TPmaWriter)(unsafe.Pointer(p)).FaBuffer = _sqlite3Malloc(tls, uint64(uint64(nBuf))) if !((*TPmaWriter)(unsafe.Pointer(p)).FaBuffer != 0) { (*TPmaWriter)(unsafe.Pointer(p)).FeFWErr = int32(SQLITE_NOMEM) } else { - v1 = int32(iStart % int64(nBuf)) + v1 = int32(iStart % int64(int64(nBuf))) (*TPmaWriter)(unsafe.Pointer(p)).FiBufStart = v1 (*TPmaWriter)(unsafe.Pointer(p)).FiBufEnd = v1 (*TPmaWriter)(unsafe.Pointer(p)).FiWriteOff = iStart - int64((*TPmaWriter)(unsafe.Pointer(p)).FiBufStart) @@ -76876,7 +77251,7 @@ func _vdbePmaWriteBlob(tls *libc.TLS, p uintptr, pData uintptr, nData int32) { if nCopy > (*TPmaWriter)(unsafe.Pointer(p)).FnBuffer-(*TPmaWriter)(unsafe.Pointer(p)).FiBufEnd { nCopy = (*TPmaWriter)(unsafe.Pointer(p)).FnBuffer - (*TPmaWriter)(unsafe.Pointer(p)).FiBufEnd } - libc.Xmemcpy(tls, (*TPmaWriter)(unsafe.Pointer(p)).FaBuffer+uintptr((*TPmaWriter)(unsafe.Pointer(p)).FiBufEnd), pData+uintptr(nData-nRem), uint64(nCopy)) + libc.Xmemcpy(tls, (*TPmaWriter)(unsafe.Pointer(p)).FaBuffer+uintptr((*TPmaWriter)(unsafe.Pointer(p)).FiBufEnd), pData+uintptr(nData-nRem), uint64(uint64(nCopy))) *(*int32)(unsafe.Pointer(p + 24)) += nCopy if (*TPmaWriter)(unsafe.Pointer(p)).FiBufEnd == (*TPmaWriter)(unsafe.Pointer(p)).FnBuffer { (*TPmaWriter)(unsafe.Pointer(p)).FeFWErr = _sqlite3OsWrite(tls, (*TPmaWriter)(unsafe.Pointer(p)).FpFd, (*TPmaWriter)(unsafe.Pointer(p)).FaBuffer+uintptr((*TPmaWriter)(unsafe.Pointer(p)).FiBufStart), (*TPmaWriter)(unsafe.Pointer(p)).FiBufEnd-(*TPmaWriter)(unsafe.Pointer(p)).FiBufStart, (*TPmaWriter)(unsafe.Pointer(p)).FiWriteOff+int64((*TPmaWriter)(unsafe.Pointer(p)).FiBufStart)) @@ -77051,14 +77426,14 @@ func _vdbeMergeEngineStep(tls *libc.TLS, pMerger uintptr, pbEof uintptr) (r int3 ** is sorted from oldest to newest, so pReadr1 contains older values ** than pReadr2 iff (pReadr1 int64((*TVdbeSorter)(unsafe.Pointer(pSorter)).FmxKeysize) { - (*TVdbeSorter)(unsafe.Pointer(pSorter)).FmxKeysize = int32(nPMA) + (*TVdbeSorter)(unsafe.Pointer(pSorter)).FmxKeysize = int32(int32(nPMA)) } if (*TVdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory != 0 { nMin = int32(int64((*TVdbeSorter)(unsafe.Pointer(pSorter)).FiMemory) + nReq) @@ -77234,16 +77609,16 @@ func _sqlite3VdbeSorterWrite(tls *libc.TLS, pCsr uintptr, pVal uintptr) (r int32 if (*TVdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList != 0 { iListOff = int32(int64((*TVdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList) - int64((*TVdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory)) } - for nNew < int64(nMin) { + for nNew < int64(int64(nMin)) { nNew = nNew * int64(2) } if nNew > int64((*TVdbeSorter)(unsafe.Pointer(pSorter)).FmxPmaSize) { nNew = int64((*TVdbeSorter)(unsafe.Pointer(pSorter)).FmxPmaSize) } - if nNew < int64(nMin) { - nNew = int64(nMin) + if nNew < int64(int64(nMin)) { + nNew = int64(int64(nMin)) } - aNew = _sqlite3Realloc(tls, (*TVdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory, uint64(nNew)) + aNew = _sqlite3Realloc(tls, (*TVdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory, uint64(uint64(nNew))) if !(aNew != 0) { return int32(SQLITE_NOMEM) } @@ -77251,7 +77626,7 @@ func _sqlite3VdbeSorterWrite(tls *libc.TLS, pCsr uintptr, pVal uintptr) (r int32 (*TVdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList = aNew + uintptr(iListOff) } (*TVdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory = aNew - (*TVdbeSorter)(unsafe.Pointer(pSorter)).FnMemory = int32(nNew) + (*TVdbeSorter)(unsafe.Pointer(pSorter)).FnMemory = int32(int32(nNew)) } pNew = (*TVdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory + uintptr((*TVdbeSorter)(unsafe.Pointer(pSorter)).FiMemory) p3 = pSorter + 80 @@ -77260,7 +77635,7 @@ func _sqlite3VdbeSorterWrite(tls *libc.TLS, pCsr uintptr, pVal uintptr) (r int32 *(*int32)(unsafe.Pointer(&(*TSorterRecord)(unsafe.Pointer(pNew)).Fu)) = int32(int64((*TVdbeSorter)(unsafe.Pointer(pSorter)).Flist.FpList) - int64((*TVdbeSorter)(unsafe.Pointer(pSorter)).Flist.FaMemory)) } } else { - pNew = _sqlite3Malloc(tls, uint64(nReq)) + pNew = _sqlite3Malloc(tls, uint64(uint64(nReq))) if pNew == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -77303,11 +77678,11 @@ func _vdbeIncrPopulate(tls *libc.TLS, pIncr uintptr) (r int32) { if (*TPmaReader)(unsafe.Pointer(pReader)).FpFd == uintptr(0) { break } - if iEof+int64(nKey)+int64(_sqlite3VarintLen(tls, uint64(nKey))) > iStart+int64((*TIncrMerger)(unsafe.Pointer(pIncr)).FmxSz) { + if iEof+int64(int64(nKey))+int64(_sqlite3VarintLen(tls, uint64(uint64(nKey)))) > iStart+int64((*TIncrMerger)(unsafe.Pointer(pIncr)).FmxSz) { break } /* Write the next key to the output. */ - _vdbePmaWriteVarint(tls, bp, uint64(nKey)) + _vdbePmaWriteVarint(tls, bp, uint64(uint64(nKey))) _vdbePmaWriteBlob(tls, bp, (*TPmaReader)(unsafe.Pointer(pReader)).FaKey, nKey) rc = _vdbeMergeEngineStep(tls, (*TIncrMerger)(unsafe.Pointer(pIncr)).FpMerger, bp+48) } @@ -77604,9 +77979,9 @@ func _vdbePmaReaderIncrMergeInit(tls *libc.TLS, pReadr uintptr, eMode int32) (r if rc == SQLITE_OK { mxSz = (*TIncrMerger)(unsafe.Pointer(pIncr)).FmxSz if (*TIncrMerger)(unsafe.Pointer(pIncr)).FbUseThread != 0 { - rc = _vdbeSorterOpenTempFile(tls, db, int64(mxSz), pIncr+40) + rc = _vdbeSorterOpenTempFile(tls, db, int64(int64(mxSz)), pIncr+40) if rc == SQLITE_OK { - rc = _vdbeSorterOpenTempFile(tls, db, int64(mxSz), pIncr+40+1*16) + rc = _vdbeSorterOpenTempFile(tls, db, int64(int64(mxSz)), pIncr+40+1*16) } } else { /*if( !pIncr->bUseThread )*/ @@ -77617,7 +77992,7 @@ func _vdbePmaReaderIncrMergeInit(tls *libc.TLS, pReadr uintptr, eMode int32) (r if rc == SQLITE_OK { (*(*TSorterFile)(unsafe.Pointer(pIncr + 40 + 1*16))).FpFd = (*TSortSubtask)(unsafe.Pointer(pTask)).Ffile2.FpFd (*TIncrMerger)(unsafe.Pointer(pIncr)).FiStartOff = (*TSortSubtask)(unsafe.Pointer(pTask)).Ffile2.FiEof - (*TSortSubtask)(unsafe.Pointer(pTask)).Ffile2.FiEof += int64(mxSz) + (*TSortSubtask)(unsafe.Pointer(pTask)).Ffile2.FiEof += int64(int64(mxSz)) } } } @@ -77755,7 +78130,7 @@ func _vdbeSorterTreeDepth(tls *libc.TLS, nPMA int32) (r int32) { _, _ = nDepth, nDiv nDepth = 0 nDiv = int64(SORTER_MAX_MERGE_COUNT) - for nDiv < int64(nPMA) { + for nDiv < int64(int64(nPMA)) { nDiv = nDiv * int64(SORTER_MAX_MERGE_COUNT) nDepth++ } @@ -78200,7 +78575,7 @@ func _sqlite3VdbeSorterCompare(tls *libc.TLS, pCsr uintptr, pVal uintptr, nKeyCo if r2 == uintptr(0) { return int32(SQLITE_NOMEM) } - (*TUnpackedRecord)(unsafe.Pointer(r2)).FnField = uint16(nKeyCol) + (*TUnpackedRecord)(unsafe.Pointer(r2)).FnField = uint16(uint16(nKeyCol)) } pKey = _vdbeSorterRowkey(tls, pSorter, bp) _sqlite3VdbeRecordUnpack(tls, pKeyInfo, *(*int32)(unsafe.Pointer(bp)), pKey, r2) @@ -78368,7 +78743,7 @@ func _memjrnlRead(tls *libc.TLS, pJfd uintptr, zBuf uintptr, iAmt int32, iOfst T p = pJfd zOut = zBuf nRead = iAmt - if int64(iAmt)+iOfst > (*TMemJournal)(unsafe.Pointer(p)).Fendpoint.FiOffset { + if int64(int64(iAmt))+iOfst > (*TMemJournal)(unsafe.Pointer(p)).Fendpoint.FiOffset { return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(2)< copy1.Fendpoint.FiOffset { + if iOff+int64(int64(nChunk)) > copy1.Fendpoint.FiOffset { nChunk = int32(copy1.Fendpoint.FiOffset - iOff) } rc = _sqlite3OsWrite(tls, pReal, pIter+8, nChunk, iOff) if rc != 0 { break } - iOff += int64(nChunk) + iOff += int64(int64(nChunk)) goto _1 _1: ; @@ -78509,7 +78884,7 @@ func _memjrnlWrite(tls *libc.TLS, pJfd uintptr, zBuf uintptr, iAmt int32, iOfst zWrite = zBuf /* If the file should be created now, create it and write the new data ** into the file on disk. */ - if (*TMemJournal)(unsafe.Pointer(p)).FnSpill > 0 && int64(iAmt)+iOfst > int64((*TMemJournal)(unsafe.Pointer(p)).FnSpill) { + if (*TMemJournal)(unsafe.Pointer(p)).FnSpill > 0 && int64(int64(iAmt))+iOfst > int64((*TMemJournal)(unsafe.Pointer(p)).FnSpill) { rc = _memjrnlCreateFile(tls, p) if rc == SQLITE_OK { rc = _sqlite3OsWrite(tls, pJfd, zBuf, iAmt, iOfst) @@ -78525,7 +78900,7 @@ func _memjrnlWrite(tls *libc.TLS, pJfd uintptr, zBuf uintptr, iAmt int32, iOfst _memjrnlTruncate(tls, pJfd, iOfst) } if iOfst == 0 && (*TMemJournal)(unsafe.Pointer(p)).FpFirst != 0 { - libc.Xmemcpy(tls, (*TMemJournal)(unsafe.Pointer(p)).FpFirst+8, zBuf, uint64(iAmt)) + libc.Xmemcpy(tls, (*TMemJournal)(unsafe.Pointer(p)).FpFirst+8, zBuf, uint64(uint64(iAmt))) } else { for nWrite > 0 { pChunk = (*TMemJournal)(unsafe.Pointer(p)).Fendpoint.FpChunk @@ -78552,10 +78927,10 @@ func _memjrnlWrite(tls *libc.TLS, pJfd uintptr, zBuf uintptr, iAmt int32, iOfst (*TMemJournal)(unsafe.Pointer(p)).Fendpoint.FpChunk = v2 pChunk = v2 } - libc.Xmemcpy(tls, pChunk+8+uintptr(iChunkOffset), zWrite, uint64(iSpace)) + libc.Xmemcpy(tls, pChunk+8+uintptr(iChunkOffset), zWrite, uint64(uint64(iSpace))) zWrite += uintptr(iSpace) nWrite -= iSpace - (*TMemJournal)(unsafe.Pointer(p)).Fendpoint.FiOffset += int64(iSpace) + (*TMemJournal)(unsafe.Pointer(p)).Fendpoint.FiOffset += int64(int64(iSpace)) } } } @@ -79351,25 +79726,25 @@ func _extendFJMatch(tls *libc.TLS, pParse uintptr, ppList uintptr, pMatch uintpt func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema uintptr) (r int32) { var zLegacy uintptr _ = zLegacy - if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6529, int32(7)) != 0 { + if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6593, int32(7)) != 0 { return 0 } zLegacy = (*TTable)(unsafe.Pointer(pTab)).FzName - if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6537+7) == 0 { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6556+7) == 0 { + if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6601+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6620+7) == 0 { return int32(1) } if pSchema == uintptr(0) { return 0 } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6070+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6134+7) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6575+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6639+7) == 0 { return int32(1) } } else { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6575+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6639+7) == 0 { return int32(1) } } @@ -79405,26 +79780,27 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema // ** If the name cannot be resolved unambiguously, leave an error message // ** in pParse and return WRC_Abort. Return WRC_Prune on success. // */ -func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol uintptr, pNC uintptr, pExpr uintptr) (r int32) { +func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRight uintptr, pNC uintptr, pExpr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var cnt, cntTab, eNewExprOp, hit, i, iCol, j, nSubquery, op, v5 int32 - var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10 uintptr + var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10 uintptr var hCol, hCol1 Tu8 var v7, v8 uint32 var _ /* bRowid at bp+8 */ int32 var _ /* pFJMatch at bp+0 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10, v5, v7, v8 /* Loop counters */ - cnt = 0 /* Number of matching column names */ - cntTab = 0 /* Number of potential "rowid" matches */ - nSubquery = 0 /* How many levels of subquery */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ - pMatch = uintptr(0) /* The matching pSrcList item */ - pTopNC = pNC /* First namecontext in the list */ - pSchema = uintptr(0) /* Schema of the expression */ - eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ - pTab = uintptr(0) /* A column of pTab */ - *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10, v5, v7, v8 /* Loop counters */ + cnt = 0 /* Number of matching column names */ + cntTab = 0 /* Number of potential "rowid" matches */ + nSubquery = 0 /* How many levels of subquery */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ + pMatch = uintptr(0) /* The matching pSrcList item */ + pTopNC = pNC /* First namecontext in the list */ + pSchema = uintptr(0) /* Schema of the expression */ + eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ + pTab = uintptr(0) /* A column of pTab */ + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + zCol = *(*uintptr)(unsafe.Pointer(pRight + 8)) /* the name context cannot be NULL. */ /* The Z in X.Y.Z cannot be NULL */ /* Initialize the node to no-match */ @@ -79455,7 +79831,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ; i++ } - if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6589, zDb) == 0 { + if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6653, zDb) == 0 { /* This branch is taken when the main database has been renamed ** using SQLITE_DBCONFIG_MAINDBNAME. */ pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema @@ -79528,7 +79904,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } cntTab++ pMatch = pItem - (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = int16(j) + (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = int16(int16(j)) libc.SetBitFieldPtr16Uint32(pEList+8+uintptr(j)*32+16+4, libc.Uint32FromInt32(1), 6, 0x40) /* rowid cannot be part of a USING clause - assert() this. */ if int32(uint32(*(*uint16)(unsafe.Pointer(pEList + 8 + uintptr(j)*32 + 16 + 4))&0x80>>7)) != 0 { @@ -79548,7 +79924,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TTable)(unsafe.Pointer(pTab)).FpSchema != pSchema { goto _2 } - if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6594) != 0 { + if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6658) != 0 { goto _2 } } @@ -79577,7 +79953,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if !(j < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } - if int32((*TColumn)(unsafe.Pointer(pCol)).FhName) == int32(hCol) && _sqlite3StrICmp(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, zCol) == 0 { + if int32((*TColumn)(unsafe.Pointer(pCol)).FhName) == int32(int32(hCol)) && _sqlite3StrICmp(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, zCol) == 0 { if cnt > 0 { if int32(uint32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x400>>10)) == 0 || _sqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pItem + 72)), zCol) < 0 { /* Two or more tables have the same column name which is @@ -79608,7 +79984,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if j == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { v5 = -int32(1) } else { - v5 = int32(int16(j)) + v5 = int32(int16(int16(j))) } (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = int16(v5) if int32(uint32(*(*uint16)(unsafe.Pointer(pItem + 60 + 4))&0x2000>>13)) != 0 { @@ -79660,16 +80036,16 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != uintptr(0) { op = int32((*TParse)(unsafe.Pointer(pParse)).FeTriggerOp) if (*TParse)(unsafe.Pointer(pParse)).FbReturning != 0 { - if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0) { + if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0 || _isValidSchemaTableName(tls, zTab, (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab, uintptr(0)) != 0) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = libc.BoolInt32(op != int32(TK_DELETE)) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } } else { - if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6596, zTab) == 0 { + if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6660, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(1) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } else { - if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6600, zTab) == 0 { + if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6664, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = 0 pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } @@ -79678,7 +80054,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UUpsert) != 0 && zTab != uintptr(0) { pUpsert = *(*uintptr)(unsafe.Pointer(pNC + 16)) - if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6604, zTab) == 0 { + if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6668, zTab) == 0 { pTab = (*(*TSrcItem)(unsafe.Pointer((*TUpsert)(unsafe.Pointer(pUpsert)).FpUpsertSrc + 8))).FpTab (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(EXCLUDED_TABLE_NUMBER) } @@ -79693,7 +80069,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if !(iCol < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } - if int32((*TColumn)(unsafe.Pointer(pCol)).FhName) == int32(hCol1) && _sqlite3StrICmp(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, zCol) == 0 { + if int32((*TColumn)(unsafe.Pointer(pCol)).FhName) == int32(int32(hCol1)) && _sqlite3StrICmp(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, zCol) == 0 { if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { iCol = -int32(1) } @@ -79714,11 +80090,11 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol pMatch = uintptr(0) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == int32(EXCLUDED_TABLE_NUMBER) { if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { - (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = int16(iCol) + (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = int16(int16(iCol)) *(*uintptr)(unsafe.Pointer(pExpr + 64)) = pTab eNewExprOp = int32(TK_COLUMN) } else { - (*TExpr)(unsafe.Pointer(pExpr)).FiTable = (*TUpsert)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNC + 16)))).FregData + int32(_sqlite3TableColumnToStorage(tls, pTab, int16(iCol))) + (*TExpr)(unsafe.Pointer(pExpr)).FiTable = (*TUpsert)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNC + 16)))).FregData + int32(_sqlite3TableColumnToStorage(tls, pTab, int16(int16(iCol)))) eNewExprOp = int32(TK_REGISTER) } } else { @@ -79726,10 +80102,10 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TParse)(unsafe.Pointer(pParse)).FbReturning != 0 { eNewExprOp = int32(TK_REGISTER) (*TExpr)(unsafe.Pointer(pExpr)).Fop2 = uint8(TK_COLUMN) - (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = int16(iCol) - (*TExpr)(unsafe.Pointer(pExpr)).FiTable = *(*int32)(unsafe.Pointer(&(*TNameContext)(unsafe.Pointer(pNC)).FuNC)) + (int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+int32(1))*(*TExpr)(unsafe.Pointer(pExpr)).FiTable + int32(_sqlite3TableColumnToStorage(tls, pTab, int16(iCol))) + int32(1) + (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = int16(int16(iCol)) + (*TExpr)(unsafe.Pointer(pExpr)).FiTable = *(*int32)(unsafe.Pointer(&(*TNameContext)(unsafe.Pointer(pNC)).FuNC)) + (int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+int32(1))*(*TExpr)(unsafe.Pointer(pExpr)).FiTable + int32(_sqlite3TableColumnToStorage(tls, pTab, int16(int16(iCol)))) + int32(1) } else { - (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = int16(iCol) + (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = int16(int16(iCol)) eNewExprOp = int32(TK_TRIGGER) if iCol < 0 { (*TExpr)(unsafe.Pointer(pExpr)).FaffExpr = int8(SQLITE_AFF_INTEGER) @@ -79794,15 +80170,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if int32(uint32(*(*uint16)(unsafe.Pointer(pEList + 8 + uintptr(j)*32 + 16 + 4))&0x3>>0)) == ENAME_NAME && Xsqlite3_stricmp(tls, zAs, zCol) == 0 { pOrig = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(j)*32))).FpExpr if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 && (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6613, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6677, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Win)) != uint32(0) && ((*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 || pNC != pTopNC) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6644, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6708, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if _sqlite3ExprVectorSize(tls, pOrig) != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6681, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6745, 0) return int32(WRC_Abort) } _resolveAlias(tls, pParse, pEList, j, pExpr, nSubquery) @@ -79854,7 +80230,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** a huge amount of legacy SQL that uses it. So for now, we just ** issue a warning. */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6699, libc.VaList(bp+24, zCol)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6763, libc.VaList(bp+24, zCol)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_STRING) libc.Xmemset(tls, pExpr+64, 0, uint64(8)) return int32(WRC_Prune) @@ -79883,7 +80259,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } _extendFJMatch(tls, pParse, bp, pMatch, (*TExpr)(unsafe.Pointer(pExpr)).FiColumn) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_FUNCTION) - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6734 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6798 *(*uintptr)(unsafe.Pointer(pExpr + 32)) = *(*uintptr)(unsafe.Pointer(bp)) cnt = int32(1) goto lookupname_end @@ -79893,18 +80269,22 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } } if cnt == 0 { - v10 = __ccgo_ts + 6743 + v10 = __ccgo_ts + 6807 } else { - v10 = __ccgo_ts + 6758 + v10 = __ccgo_ts + 6822 } zErr = v10 if zDb != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6780, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6844, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) } else { if zTab != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6793, libc.VaList(bp+24, zErr, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6857, libc.VaList(bp+24, zErr, zTab, zCol)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6803, libc.VaList(bp+24, zErr, zCol)) + if cnt == 0 && (*TExpr)(unsafe.Pointer(pRight)).Fflags&uint32(libc.Int32FromInt32(EP_DblQuoted)) != uint32(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6867, libc.VaList(bp+24, zErr, zCol)) + } else { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6928, libc.VaList(bp+24, zErr, zCol)) + } } } _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -79934,10 +80314,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** If a generated column is referenced, set bits for every column ** of the table. */ - if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 && cnt == int32(1) && pMatch != uintptr(0) { - *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + if pMatch != 0 { + if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { + *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + } else { + libc.SetBitFieldPtr16Uint32(pMatch+60+4, libc.Uint32FromInt32(1), 14, 0x4000) + } } - (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(eNewExprOp) + (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(uint8(eNewExprOp)) + goto lookupname_end lookupname_end: ; if cnt == int32(1) { @@ -79983,7 +80368,7 @@ func _sqlite3CreateColumnExpr(tls *libc.TLS, db uintptr, pSrc uintptr, iSrc int3 if int32((*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 64)))).FiPKey) == iCol { (*TExpr)(unsafe.Pointer(p)).FiColumn = int16(-int32(1)) } else { - (*TExpr)(unsafe.Pointer(p)).FiColumn = int16(iCol) + (*TExpr)(unsafe.Pointer(p)).FiColumn = int16(int16(iCol)) if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasGenerated) != uint32(0) && int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) >= int32(64) { v2 = uint64(-libc.Int32FromInt32(1)) @@ -80027,19 +80412,19 @@ func _notValidImpl(tls *libc.TLS, pParse uintptr, pNC uintptr, zMsg uintptr, pEx defer tls.Free(32) var zIn uintptr _ = zIn - zIn = __ccgo_ts + 6810 + zIn = __ccgo_ts + 6935 if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IdxExpr) != 0 { - zIn = __ccgo_ts + 6838 + zIn = __ccgo_ts + 6963 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IsCheck) != 0 { - zIn = __ccgo_ts + 6856 + zIn = __ccgo_ts + 6981 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_GenCol) != 0 { - zIn = __ccgo_ts + 6874 + zIn = __ccgo_ts + 6999 } } } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6892, libc.VaList(bp+8, zMsg, zIn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7017, libc.VaList(bp+8, zMsg, zIn)) if pExpr != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } @@ -80087,8 +80472,8 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { var anRef [8]int32 var auth, i, is_agg, n, nLeft, nRef, nRight, no_such_func, rc, savedAllowFlags, wrong_num_args, v12, v4, v6, v7 int32 var enc Tu8 - var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zColumn, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zColumn, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 + var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 pNC = *(*uintptr)(unsafe.Pointer(pWalker + 40)) pParse = (*TNameContext)(unsafe.Pointer(pNC)).FpParse switch int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) { @@ -80207,11 +80592,11 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_ID) { zDb = uintptr(0) zTable = uintptr(0) - zColumn = *(*uintptr)(unsafe.Pointer(pExpr + 8)) + pRight = pExpr } else { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+6912, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7037, uintptr(0), pExpr) } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_ID) { @@ -80222,13 +80607,12 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { pRight = (*TExpr)(unsafe.Pointer(pRight)).FpRight } zTable = *(*uintptr)(unsafe.Pointer(pLeft + 8)) - zColumn = *(*uintptr)(unsafe.Pointer(pRight + 8)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameTokenRemap(tls, pParse, pExpr, pRight) _sqlite3RenameTokenRemap(tls, pParse, pExpr+64, pLeft) } } - return _lookupName(tls, pParse, zDb, zTable, zColumn, pNC, pExpr) + return _lookupName(tls, pParse, zDb, zTable, pRight, pNC, pExpr) /* Resolve function names */ fallthrough @@ -80267,7 +80651,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if n == int32(2) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = _exprProbability(tls, (*(*TExprList_item)(unsafe.Pointer(pList + 8 + 1*32))).FpExpr) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6929, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7054, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } } else { @@ -80291,7 +80675,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { auth = _sqlite3AuthCheck(tls, pParse, int32(SQLITE_FUNCTION), uintptr(0), (*TFuncDef)(unsafe.Pointer(pDef)).FzName, uintptr(0)) if auth != SQLITE_OK { if auth == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6993, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7118, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) @@ -80312,7 +80696,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { ** in a CHECK constraint. SQLServer, MySQL, and PostgreSQL all ** all this. */ if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7029, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7154, uintptr(0), pExpr) } } else { /* Must fit in 8 bits */ @@ -80336,29 +80720,29 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { } if 0 == libc.BoolInt32(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME)) { if pDef != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FxValue == uintptr(0) && pWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7057, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7182, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 || is_agg != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 && !(pWin != 0) || is_agg != 0 && pWin != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 { if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 || pWin != 0 { - zType = __ccgo_ts + 7100 + zType = __ccgo_ts + 7225 } else { - zType = __ccgo_ts + 7107 + zType = __ccgo_ts + 7232 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7117, libc.VaList(bp+8, zType, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7242, libc.VaList(bp+8, zType, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ is_agg = 0 } else { if no_such_func != 0 && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7145, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7270, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if wrong_num_args != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7167, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7292, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7211, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7336, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { @@ -80382,7 +80766,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { *(*int32)(unsafe.Pointer(pNC + 40)) &= ^(libc.Int32FromInt32(NC_AllowWin) | v7) } } else { - if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { is_agg = int32(1) } } @@ -80443,18 +80827,19 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) { nRef = (*TNameContext)(unsafe.Pointer(pNC)).FnRef if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_SelfRef) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7259, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7384, pExpr, pExpr) } else { _sqlite3WalkSelect(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 32))) } if nRef != (*TNameContext)(unsafe.Pointer(pNC)).FnRef { *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 4)) |= uint32(SF_Correlated) } *(*int32)(unsafe.Pointer(pNC + 40)) |= int32(NC_Subquery) } case int32(TK_VARIABLE): if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IsCheck)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7270, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7395, pExpr, pExpr) } case int32(TK_IS): fallthrough @@ -80500,7 +80885,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { nRight = _sqlite3ExprVectorSize(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight) } if nLeft != nRight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6681, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6745, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } break @@ -80625,7 +81010,7 @@ func _resolveOrderByTermToExprList(tls *libc.TLS, pParse uintptr, pSelect uintpt func _resolveOutOfRangeError(tls *libc.TLS, pParse uintptr, zType uintptr, i int32, mx int32, pError uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7281, libc.VaList(bp+8, i, zType, mx)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7406, libc.VaList(bp+8, i, zType, mx)) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pError) } @@ -80660,7 +81045,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7337, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7462, 0) return int32(1) } i = 0 @@ -80698,7 +81083,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } if _sqlite3ExprIsInteger(tls, pE, bp) != 0 { if *(*int32)(unsafe.Pointer(bp)) <= 0 || *(*int32)(unsafe.Pointer(bp)) > (*TExprList)(unsafe.Pointer(pEList)).FnExpr { - _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7371, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) + _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7496, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) return int32(1) } } else { @@ -80768,7 +81153,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r break } if int32(uint32(*(*uint16)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32 + 16 + 4))&0x4>>2)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7377, libc.VaList(bp+16, i+int32(1))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7502, libc.VaList(bp+16, i+int32(1))) return int32(1) } goto _3 @@ -80802,7 +81187,7 @@ func _sqlite3ResolveOrderGroupBy(tls *libc.TLS, pParse uintptr, pSelect uintptr, return 0 } if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7438, libc.VaList(bp+8, zType)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7563, libc.VaList(bp+8, zType)) return int32(1) } pEList = (*TSelect)(unsafe.Pointer(pSelect)).FpEList @@ -81048,6 +81433,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } pItem = (*TSelect)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*104 + /* Test of tag-20240424-1*/ if (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FselFlags&uint32(SF_Resolved) == uint32(0) { if pOuterNC != 0 { v3 = (*TNameContext)(unsafe.Pointer(pOuterNC)).FnRef @@ -81114,7 +81500,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { (*(*TNameContext)(unsafe.Pointer(bp))).FncFlags |= int32(NC_UEList) if (*TSelect)(unsafe.Pointer(p)).FpHaving != 0 { if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Aggregate) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7469, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7594, 0) return int32(WRC_Abort) } if _sqlite3ResolveExprNames(tls, bp, (*TSelect)(unsafe.Pointer(p)).FpHaving) != 0 { @@ -81181,7 +81567,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** is not detected until much later, and so we need to go ahead and ** resolve those symbols on the incorrect ORDER BY for consistency. */ - if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7371) != 0 { + if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7496) != 0 { return int32(WRC_Abort) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -81192,7 +81578,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** the GROUP BY clause does not contain aggregate functions. */ if pGroupBy != 0 { - if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7508) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { + if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7633) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(WRC_Abort) } i = 0 @@ -81202,7 +81588,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } if (*TExpr)(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(pItem2)).FpExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7514, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7639, 0) return int32(WRC_Abort) } goto _6 @@ -81797,7 +82183,7 @@ func _sqlite3CompareAffinity(tls *libc.TLS, pExpr uintptr, aff2 int8) (r int8) { var v1 int32 _, _ = aff1, v1 aff1 = _sqlite3ExprAffinity(tls, pExpr) - if int32(aff1) > int32(SQLITE_AFF_NONE) && int32(aff2) > int32(SQLITE_AFF_NONE) { + if int32(int32(aff1)) > int32(SQLITE_AFF_NONE) && int32(int32(aff2)) > int32(SQLITE_AFF_NONE) { /* Both sides of the comparison are columns. If one has numeric ** affinity, use that. Otherwise use no affinity. */ @@ -81808,10 +82194,10 @@ func _sqlite3CompareAffinity(tls *libc.TLS, pExpr uintptr, aff2 int8) (r int8) { } } else { /* One side is a column, the other is not. Use the columns affinity. */ - if int32(aff1) <= int32(SQLITE_AFF_NONE) { - v1 = int32(aff2) + if int32(int32(aff1)) <= int32(SQLITE_AFF_NONE) { + v1 = int32(int32(aff2)) } else { - v1 = int32(aff1) + v1 = int32(int32(aff1)) } return int8(v1 | int32(SQLITE_AFF_NONE)) } @@ -81834,7 +82220,7 @@ func _comparisonAffinity(tls *libc.TLS, pExpr uintptr) (r int8) { if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) { aff = _sqlite3CompareAffinity(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FpEList + 8))).FpExpr, aff) } else { - if int32(aff) == 0 { + if int32(int32(aff)) == 0 { aff = int8(SQLITE_AFF_BLOB) } } @@ -81854,11 +82240,11 @@ func _sqlite3IndexAffinityOk(tls *libc.TLS, pExpr uintptr, idx_affinity int8) (r var aff int8 _ = aff aff = _comparisonAffinity(tls, pExpr) - if int32(aff) < int32(SQLITE_AFF_TEXT) { + if int32(int32(aff)) < int32(SQLITE_AFF_TEXT) { return int32(1) } - if int32(aff) == int32(SQLITE_AFF_TEXT) { - return libc.BoolInt32(int32(idx_affinity) == int32(SQLITE_AFF_TEXT)) + if int32(int32(aff)) == int32(SQLITE_AFF_TEXT) { + return libc.BoolInt32(int32(int32(idx_affinity)) == int32(SQLITE_AFF_TEXT)) } return libc.BoolInt32(int32(idx_affinity) >= int32(SQLITE_AFF_NUMERIC)) } @@ -81873,7 +82259,7 @@ func _binaryCompareP5(tls *libc.TLS, pExpr1 uintptr, pExpr2 uintptr, jumpIfNull var aff Tu8 _ = aff aff = uint8(_sqlite3ExprAffinity(tls, pExpr2)) - aff = uint8(int32(uint8(_sqlite3CompareAffinity(tls, pExpr1, int8(aff)))) | int32(uint8(jumpIfNull))) + aff = uint8(int32(uint8(_sqlite3CompareAffinity(tls, pExpr1, int8(int8(aff))))) | int32(uint8(uint8(jumpIfNull)))) return aff } @@ -81947,7 +82333,7 @@ func _codeCompare(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintptr, } p5 = int32(_binaryCompareP5(tls, pLeft, pRight, jumpIfNull)) addr = _sqlite3VdbeAddOp4(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, opcode, in2, dest, in1, p4, -int32(2)) - _sqlite3VdbeChangeP5(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, uint16(uint8(p5))) + _sqlite3VdbeChangeP5(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, uint16(uint8(uint8(p5)))) return addr } @@ -81978,13 +82364,13 @@ func _sqlite3ExprVectorSize(tls *libc.TLS, pExpr uintptr) (r int32) { var op Tu8 _ = op op = (*TExpr)(unsafe.Pointer(pExpr)).Fop - if int32(op) == int32(TK_REGISTER) { + if int32(int32(op)) == int32(TK_REGISTER) { op = (*TExpr)(unsafe.Pointer(pExpr)).Fop2 } - if int32(op) == int32(TK_VECTOR) { + if int32(int32(op)) == int32(TK_VECTOR) { return (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr } else { - if int32(op) == int32(TK_SELECT) { + if int32(int32(op)) == int32(TK_SELECT) { return (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FpEList)).FnExpr } else { return int32(1) @@ -82068,7 +82454,7 @@ func _sqlite3ExprForVectorField(tls *libc.TLS, pParse uintptr, pVector uintptr, if pRet != 0 { *(*Tu32)(unsafe.Pointer(pRet + 4)) |= uint32(libc.Int32FromInt32(EP_FullSize)) (*TExpr)(unsafe.Pointer(pRet)).FiTable = nField - (*TExpr)(unsafe.Pointer(pRet)).FiColumn = int16(iField) + (*TExpr)(unsafe.Pointer(pRet)).FiColumn = int16(int16(iField)) (*TExpr)(unsafe.Pointer(pRet)).FpLeft = pVector } } else { @@ -82130,15 +82516,15 @@ func _exprVectorRegister(tls *libc.TLS, pParse uintptr, pVector uintptr, iField var op Tu8 _ = op op = (*TExpr)(unsafe.Pointer(pVector)).Fop - if int32(op) == int32(TK_REGISTER) { + if int32(int32(op)) == int32(TK_REGISTER) { *(*uintptr)(unsafe.Pointer(ppExpr)) = _sqlite3VectorFieldSubexpr(tls, pVector, iField) return (*TExpr)(unsafe.Pointer(pVector)).FiTable + iField } - if int32(op) == int32(TK_SELECT) { + if int32(int32(op)) == int32(TK_SELECT) { *(*uintptr)(unsafe.Pointer(ppExpr)) = (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pVector + 32)))).FpEList + 8 + uintptr(iField)*32))).FpExpr return regSelect + iField } - if int32(op) == int32(TK_VECTOR) { + if int32(int32(op)) == int32(TK_VECTOR) { *(*uintptr)(unsafe.Pointer(ppExpr)) = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pVector + 32)) + 8 + uintptr(iField)*32))).FpExpr return _sqlite3ExprCodeTemp(tls, pParse, *(*uintptr)(unsafe.Pointer(ppExpr)), pRegFree) } @@ -82183,16 +82569,16 @@ func _codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32 return } if nLeft != _sqlite3ExprVectorSize(tls, pRight) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6681, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6745, 0) return } - if int32(op) == int32(TK_LE) { + if int32(int32(op)) == int32(TK_LE) { opx = uint8(TK_LT) } - if int32(op) == int32(TK_GE) { + if int32(int32(op)) == int32(TK_GE) { opx = uint8(TK_GT) } - if int32(op) == int32(TK_NE) { + if int32(int32(op)) == int32(TK_NE) { opx = uint8(TK_EQ) } regLeft = _exprCodeSubselect(tls, pParse, pLeft) @@ -82213,13 +82599,13 @@ func _codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32 r1 = _exprVectorRegister(tls, pParse, pLeft, i, regLeft, bp+8, bp) r2 = _exprVectorRegister(tls, pParse, pRight, i, regRight, bp+16, bp+4) addrCmp = _sqlite3VdbeCurrentAddr(tls, v) - _codeCompare(tls, pParse, *(*uintptr)(unsafe.Pointer(bp + 8)), *(*uintptr)(unsafe.Pointer(bp + 16)), int32(opx), r1, r2, addrDone, int32(p5), isCommuted) + _codeCompare(tls, pParse, *(*uintptr)(unsafe.Pointer(bp + 8)), *(*uintptr)(unsafe.Pointer(bp + 16)), int32(int32(opx)), r1, r2, addrDone, int32(int32(p5)), isCommuted) _sqlite3ReleaseTempReg(tls, pParse, *(*int32)(unsafe.Pointer(bp))) _sqlite3ReleaseTempReg(tls, pParse, *(*int32)(unsafe.Pointer(bp + 4))) - if (int32(opx) == int32(TK_LT) || int32(opx) == int32(TK_GT)) && i < nLeft-int32(1) { + if (int32(int32(opx)) == int32(TK_LT) || int32(int32(opx)) == int32(TK_GT)) && i < nLeft-int32(1) { addrCmp = _sqlite3VdbeAddOp0(tls, v, int32(OP_ElseEq)) } - if int32(p5) == int32(SQLITE_NULLEQ) { + if int32(int32(p5)) == int32(SQLITE_NULLEQ) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, dest) } else { _sqlite3VdbeAddOp3(tls, v, int32(OP_ZeroOrNull), r1, dest, r2) @@ -82227,7 +82613,7 @@ func _codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32 if i == nLeft-int32(1) { break } - if int32(opx) == int32(TK_EQ) { + if int32(int32(opx)) == int32(TK_EQ) { _sqlite3VdbeAddOp2(tls, v, int32(OP_NotNull), dest, addrDone) } else { _sqlite3VdbeAddOp2(tls, v, int32(OP_Goto), 0, addrDone) @@ -82242,7 +82628,7 @@ func _codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32 } _sqlite3VdbeJumpHere(tls, v, addrCmp) _sqlite3VdbeResolveLabel(tls, v, addrDone) - if int32(op) == int32(TK_NE) { + if int32(int32(op)) == int32(TK_NE) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Not), dest, dest) } } @@ -82262,7 +82648,7 @@ func _sqlite3ExprCheckHeight(tls *libc.TLS, pParse uintptr, nHeight int32) (r in rc = SQLITE_OK mxHeight = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 3*4)) if nHeight > mxHeight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7573, libc.VaList(bp+8, mxHeight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7698, libc.VaList(bp+8, mxHeight)) rc = int32(SQLITE_ERROR) } return rc @@ -82428,11 +82814,12 @@ func _sqlite3ExprSetErrorOffset(tls *libc.TLS, pExpr uintptr, iOfst int32) { // ** appear to be quoted. If the quotes were of the form "..." (double-quotes) // ** then the EP_DblQuoted flag is set on the expression node. // ** -// ** Special case: If op==TK_INTEGER and pToken points to a string that -// ** can be translated into a 32-bit integer, then the token is not -// ** stored in u.zToken. Instead, the integer values is written -// ** into u.iValue and the EP_IntValue flag is set. No extra storage +// ** Special case (tag-20240227-a): If op==TK_INTEGER and pToken points to +// ** a string that can be translated into a 32-bit integer, then the token is +// ** not stored in u.zToken. Instead, the integer values is written +// ** into u.iValue and the EP_IntValue flag is set. No extra storage // ** is allocated to hold the integer text and the dequote flag is ignored. +// ** See also tag-20240227-b. // */ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequote int32) (r uintptr) { bp := tls.Alloc(16) @@ -82445,13 +82832,13 @@ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequ *(*int32)(unsafe.Pointer(bp)) = 0 if pToken != 0 { if op != int32(TK_INTEGER) || (*TToken)(unsafe.Pointer(pToken)).Fz == uintptr(0) || _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pToken)).Fz, bp) == 0 { - nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) + nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) /* tag-20240227-a */ } } - pNew = _sqlite3DbMallocRawNN(tls, db, uint64(72)+uint64(nExtra)) + pNew = _sqlite3DbMallocRawNN(tls, db, uint64(uint64(72)+uint64(uint64(nExtra)))) if pNew != 0 { libc.Xmemset(tls, pNew, 0, uint64(72)) - (*TExpr)(unsafe.Pointer(pNew)).Fop = uint8(op) + (*TExpr)(unsafe.Pointer(pNew)).Fop = uint8(uint8(op)) (*TExpr)(unsafe.Pointer(pNew)).FiAgg = int16(-int32(1)) if pToken != 0 { if nExtra == 0 { @@ -82606,11 +82993,11 @@ func _sqlite3ExprListToValues(tls *libc.TLS, pParse uintptr, nElem int32, pEList } if nExprElem != nElem { if nExprElem > int32(1) { - v2 = __ccgo_ts + 7621 + v2 = __ccgo_ts + 7746 } else { - v2 = __ccgo_ts + 1652 + v2 = __ccgo_ts + 1666 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7623, libc.VaList(bp+8, nExprElem, v2, nElem)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7748, libc.VaList(bp+8, nExprElem, v2, nElem)) break } pSel = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(pExpr + 32)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) @@ -82659,7 +83046,7 @@ func _sqlite3ExprAnd(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintpt if f&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_InnerON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { _sqlite3ExprDeferredDelete(tls, pParse, pLeft) _sqlite3ExprDeferredDelete(tls, pParse, pRight) - return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1726) + return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1786) } else { return _sqlite3PExpr(tls, pParse, int32(TK_AND), pLeft, pRight) } @@ -82687,7 +83074,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u } *(*int32)(unsafe.Pointer(pNew + 52)) = int32(int64((*TToken)(unsafe.Pointer(pToken)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) if pList != 0 && (*TExprList)(unsafe.Pointer(pList)).FnExpr > *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 6*4)) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7667, libc.VaList(bp+8, pToken)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7792, libc.VaList(bp+8, pToken)) } *(*uintptr)(unsafe.Pointer(pNew + 32)) = pList *(*Tu32)(unsafe.Pointer(pNew + 4)) |= uint32(libc.Int32FromInt32(EP_HasFunc)) @@ -82707,7 +83094,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u func _sqlite3ExprOrderByAggregateError(tls *libc.TLS, pParse uintptr, p uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7701, libc.VaList(bp+8, p)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7826, libc.VaList(bp+8, p)) } // C documentation @@ -82778,7 +83165,7 @@ func _sqlite3ExprFunctionUsable(tls *libc.TLS, pParse uintptr, pExpr uintptr, pD ** SQLITE_DBCONFIG_TRUSTED_SCHEMA is off (meaning ** that the schema is possibly tainted). */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7751, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7876, libc.VaList(bp+8, pExpr)) } } } @@ -82830,16 +83217,16 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n bOk = libc.BoolInt32(0 == _sqlite3Atoi64(tls, z+1, bp, int32(n-uint32(1)), uint8(SQLITE_UTF8))) } if bOk == 0 || *(*Ti64)(unsafe.Pointer(bp)) < int64(1) || *(*Ti64)(unsafe.Pointer(bp)) > int64(*(*int32)(unsafe.Pointer(db + 136 + 9*4))) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7771, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7896, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) return } x = int16(*(*Ti64)(unsafe.Pointer(bp))) - if int32(x) > int32((*TParse)(unsafe.Pointer(pParse)).FnVar) { - (*TParse)(unsafe.Pointer(pParse)).FnVar = int16(int32(x)) + if int32(int32(x)) > int32((*TParse)(unsafe.Pointer(pParse)).FnVar) { + (*TParse)(unsafe.Pointer(pParse)).FnVar = int16(int32(int32(x))) doAdd = int32(1) } else { - if _sqlite3VListNumToName(tls, (*TParse)(unsafe.Pointer(pParse)).FpVList, int32(x)) == uintptr(0) { + if _sqlite3VListNumToName(tls, (*TParse)(unsafe.Pointer(pParse)).FpVList, int32(int32(x))) == uintptr(0) { doAdd = int32(1) } } @@ -82848,8 +83235,8 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n ** number as the prior appearance of the same name, or if the name ** has never appeared before, reuse the same variable number */ - x = int16(_sqlite3VListNameToNum(tls, (*TParse)(unsafe.Pointer(pParse)).FpVList, z, int32(n))) - if int32(x) == 0 { + x = int16(_sqlite3VListNameToNum(tls, (*TParse)(unsafe.Pointer(pParse)).FpVList, z, int32(int32(n)))) + if int32(int32(x)) == 0 { v4 = pParse + 304 *(*TynVar)(unsafe.Pointer(v4))++ v3 = *(*TynVar)(unsafe.Pointer(v4)) @@ -82858,12 +83245,12 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n } } if doAdd != 0 { - (*TParse)(unsafe.Pointer(pParse)).FpVList = _sqlite3VListAdd(tls, db, (*TParse)(unsafe.Pointer(pParse)).FpVList, z, int32(n), int32(x)) + (*TParse)(unsafe.Pointer(pParse)).FpVList = _sqlite3VListAdd(tls, db, (*TParse)(unsafe.Pointer(pParse)).FpVList, z, int32(int32(n)), int32(int32(x))) } } (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = x - if int32(x) > *(*int32)(unsafe.Pointer(db + 136 + 9*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7814, 0) + if int32(int32(x)) > *(*int32)(unsafe.Pointer(db + 136 + 9*4)) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7939, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } } @@ -82874,11 +83261,13 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n // ** Recursively delete an expression tree. // */ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { + var pLeft uintptr + _ = pLeft + goto exprDeleteRestart +exprDeleteRestart: + ; if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)|libc.Int32FromInt32(EP_Leaf)) != libc.Uint32FromInt32(0)) { /* The Expr.x union is never used at the same time as Expr.pRight */ - if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { - _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpLeft) - } if (*TExpr)(unsafe.Pointer(p)).FpRight != 0 { _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpRight) } else { @@ -82891,6 +83280,17 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { } } } + if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { + pLeft = (*TExpr)(unsafe.Pointer(p)).FpLeft + if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) && !((*TExpr)(unsafe.Pointer(pLeft)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { + /* Avoid unnecessary recursion on unary operators */ + _sqlite3DbNNFreeNN(tls, db, p) + p = pLeft + goto exprDeleteRestart + } else { + _sqlite3ExprDeleteNN(tls, db, pLeft) + } + } } if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { _sqlite3DbNNFreeNN(tls, db, p) @@ -82937,11 +83337,11 @@ func _sqlite3ClearOnOrUsing(tls *libc.TLS, db uintptr, p uintptr) { // ** // ** The pExpr might be deleted immediately on an OOM error. // ** -// ** The deferred delete is (currently) implemented by adding the -// ** pExpr to the pParse->pConstExpr list with a register number of 0. +// ** Return 0 if the delete was successfully deferred. Return non-zero +// ** if the delete happened immediately because of an OOM. // */ -func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) { - _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr) +func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + return libc.BoolInt32(uintptr(0) == _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr)) } // C documentation @@ -83120,13 +83520,13 @@ func _exprDup(tls *libc.TLS, db uintptr, p uintptr, dupFlags int32, pEdupBuf uin } else { if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_IntValue)) != libc.Uint32FromInt32(0)) && *(*uintptr)(unsafe.Pointer(p + 8)) != 0 { nToken = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(p + 8)))&uint64(0x3fffffff) + uint64(1)) - nAlloc = int32((libc.Uint64FromInt64(72) + uint64(nToken) + libc.Uint64FromInt32(7)) & uint64(^libc.Int32FromInt32(7))) + nAlloc = int32((libc.Uint64FromInt64(72) + uint64(uint64(nToken)) + libc.Uint64FromInt32(7)) & uint64(^libc.Int32FromInt32(7))) } else { nToken = 0 nAlloc = int32((libc.Uint64FromInt64(72) + libc.Uint64FromInt32(7)) & uint64(^libc.Int32FromInt32(7))) } } - (*(*TEdupBuf)(unsafe.Pointer(bp))).FzAlloc = _sqlite3DbMallocRawNN(tls, db, uint64(nAlloc)) + (*(*TEdupBuf)(unsafe.Pointer(bp))).FzAlloc = _sqlite3DbMallocRawNN(tls, db, uint64(uint64(nAlloc))) staticFlag = uint32(0) } pNew = (*(*TEdupBuf)(unsafe.Pointer(bp))).FzAlloc @@ -83146,12 +83546,12 @@ func _exprDup(tls *libc.TLS, db uintptr, p uintptr, dupFlags int32, pEdupBuf uin } } if dupFlags != 0 { - libc.Xmemcpy(tls, (*(*TEdupBuf)(unsafe.Pointer(bp))).FzAlloc, p, uint64(nNewSize)) + libc.Xmemcpy(tls, (*(*TEdupBuf)(unsafe.Pointer(bp))).FzAlloc, p, uint64(uint64(nNewSize))) } else { nSize = uint32(_exprStructSize(tls, p)) - libc.Xmemcpy(tls, (*(*TEdupBuf)(unsafe.Pointer(bp))).FzAlloc, p, uint64(nSize)) - if uint64(nSize) < uint64(72) { - libc.Xmemset(tls, (*(*TEdupBuf)(unsafe.Pointer(bp))).FzAlloc+uintptr(nSize), 0, uint64(72)-uint64(nSize)) + libc.Xmemcpy(tls, (*(*TEdupBuf)(unsafe.Pointer(bp))).FzAlloc, p, uint64(uint64(nSize))) + if uint64(uint64(nSize)) < uint64(72) { + libc.Xmemset(tls, (*(*TEdupBuf)(unsafe.Pointer(bp))).FzAlloc+uintptr(nSize), 0, uint64(72)-uint64(uint64(nSize))) } nNewSize = int32(72) } @@ -83166,7 +83566,7 @@ func _exprDup(tls *libc.TLS, db uintptr, p uintptr, dupFlags int32, pEdupBuf uin v1 = (*(*TEdupBuf)(unsafe.Pointer(bp))).FzAlloc + uintptr(nNewSize) *(*uintptr)(unsafe.Pointer(pNew + 8)) = v1 zToken = v1 - libc.Xmemcpy(tls, zToken, *(*uintptr)(unsafe.Pointer(p + 8)), uint64(nToken)) + libc.Xmemcpy(tls, zToken, *(*uintptr)(unsafe.Pointer(p + 8)), uint64(uint64(nToken))) nNewSize += nToken } (*(*TEdupBuf)(unsafe.Pointer(bp))).FzAlloc += uintptr((nNewSize + libc.Int32FromInt32(7)) & ^libc.Int32FromInt32(7)) @@ -83234,7 +83634,7 @@ func _sqlite3WithDup(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { pRet = uintptr(0) if p != 0 { nByte = int64(uint64(64) + uint64(48)*uint64((*TWith)(unsafe.Pointer(p)).FnCte-libc.Int32FromInt32(1))) - pRet = _sqlite3DbMallocZero(tls, db, uint64(nByte)) + pRet = _sqlite3DbMallocZero(tls, db, uint64(uint64(nByte))) if pRet != 0 { (*TWith)(unsafe.Pointer(pRet)).FnCte = (*TWith)(unsafe.Pointer(p)).FnCte i = 0 @@ -83408,7 +83808,7 @@ func _sqlite3SrcListDup(tls *libc.TLS, db uintptr, p uintptr, flags int32) (r ui v1 = uint64(0) } nByte = int32(uint64(112) + v1) - pNew = _sqlite3DbMallocRawNN(tls, db, uint64(nByte)) + pNew = _sqlite3DbMallocRawNN(tls, db, uint64(uint64(nByte))) if pNew == uintptr(0) { return uintptr(0) } @@ -83430,16 +83830,20 @@ func _sqlite3SrcListDup(tls *libc.TLS, db uintptr, p uintptr, flags int32) (r ui (*TSrcItem)(unsafe.Pointer(pNewItem)).FiCursor = (*TSrcItem)(unsafe.Pointer(pOldItem)).FiCursor (*TSrcItem)(unsafe.Pointer(pNewItem)).FaddrFillSub = (*TSrcItem)(unsafe.Pointer(pOldItem)).FaddrFillSub (*TSrcItem)(unsafe.Pointer(pNewItem)).FregReturn = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregReturn + (*TSrcItem)(unsafe.Pointer(pNewItem)).FregResult = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregResult if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x2>>1)) != 0 { *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3DbStrDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88))) + } else { + if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { + *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) + } else { + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pNewItem)).Fu1)) = *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pOldItem)).Fu1)) + } } (*TSrcItem)(unsafe.Pointer(pNewItem)).Fu2 = (*TSrcItem)(unsafe.Pointer(pOldItem)).Fu2 if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x100>>8)) != 0 { (*TCteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNewItem + 96)))).FnUse++ } - if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { - *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) - } v4 = (*TSrcItem)(unsafe.Pointer(pOldItem)).FpTab (*TSrcItem)(unsafe.Pointer(pNewItem)).FpTab = v4 pTab = v4 @@ -83468,7 +83872,7 @@ func _sqlite3IdListDup(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { if p == uintptr(0) { return uintptr(0) } - pNew = _sqlite3DbMallocRawNN(tls, db, uint64(24)+uint64((*TIdList)(unsafe.Pointer(p)).FnId-libc.Int32FromInt32(1))*uint64(16)) + pNew = _sqlite3DbMallocRawNN(tls, db, uint64(uint64(24)+uint64((*TIdList)(unsafe.Pointer(p)).FnId-libc.Int32FromInt32(1))*uint64(16))) if pNew == uintptr(0) { return uintptr(0) } @@ -83602,7 +84006,7 @@ var _zeroItem = TExprList_item{} func _sqlite3ExprListAppendNew(tls *libc.TLS, db uintptr, pExpr uintptr) (r uintptr) { var pItem, pList uintptr _, _ = pItem, pList - pList = _sqlite3DbMallocRawNN(tls, db, libc.Uint64FromInt64(40)+libc.Uint64FromInt64(32)*libc.Uint64FromInt32(4)) + pList = _sqlite3DbMallocRawNN(tls, db, uint64(libc.Uint64FromInt64(40)+libc.Uint64FromInt64(32)*libc.Uint64FromInt32(4))) if pList == uintptr(0) { _sqlite3ExprDelete(tls, db, pExpr) return uintptr(0) @@ -83620,7 +84024,7 @@ func _sqlite3ExprListAppendGrow(tls *libc.TLS, db uintptr, pList uintptr, pExpr var v1 int32 _, _, _, _ = pItem, pNew, v1, v2 *(*int32)(unsafe.Pointer(pList + 4)) *= int32(2) - pNew = _sqlite3DbRealloc(tls, db, pList, uint64(40)+uint64((*TExprList)(unsafe.Pointer(pList)).FnAlloc-libc.Int32FromInt32(1))*uint64(32)) + pNew = _sqlite3DbRealloc(tls, db, pList, uint64(uint64(40)+uint64((*TExprList)(unsafe.Pointer(pList)).FnAlloc-libc.Int32FromInt32(1))*uint64(32))) if pNew == uintptr(0) { _sqlite3ExprListDelete(tls, db, pList) _sqlite3ExprDelete(tls, db, pExpr) @@ -83701,7 +84105,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, n = v2 } if v3 && (*TIdList)(unsafe.Pointer(pColumns)).FnId != v2 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7837, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7962, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) goto vector_append_error } i = 0 @@ -83733,6 +84137,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, ** the RHS and LHS sizes match during code generation. */ (*TExpr)(unsafe.Pointer(pFirst)).FiTable = (*TIdList)(unsafe.Pointer(pColumns)).FnId } + goto vector_append_error vector_append_error: ; _sqlite3ExprUnmapAndDelete(tls, pParse, pExpr) @@ -83755,7 +84160,7 @@ func _sqlite3ExprListSetSortOrder(tls *libc.TLS, p uintptr, iSortOrder int32, eN if iSortOrder == -int32(1) { iSortOrder = SQLITE_SO_ASC } - (*TExprList_item)(unsafe.Pointer(pItem)).Ffg.FsortFlags = uint8(iSortOrder) + (*TExprList_item)(unsafe.Pointer(pItem)).Ffg.FsortFlags = uint8(uint8(iSortOrder)) if eNulls != -int32(1) { libc.SetBitFieldPtr16Uint32(pItem+16+4, libc.Uint32FromInt32(1), 5, 0x20) if iSortOrder != eNulls { @@ -83829,7 +84234,7 @@ func _sqlite3ExprListCheckLength(tls *libc.TLS, pParse uintptr, pEList uintptr, _ = mx mx = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 2*4)) if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr > mx { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7867, libc.VaList(bp+8, zObject)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7992, libc.VaList(bp+8, zObject)) } } @@ -83927,10 +84332,10 @@ func _sqlite3SelectWalkFail(tls *libc.TLS, pWalker uintptr, NotUsed uintptr) (r // ** anything else 0 // */ func _sqlite3IsTrueOrFalse(tls *libc.TLS, zIn uintptr) (r Tu32) { - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7890) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8015) == 0 { return uint32(EP_IsTrue) } - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7895) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8020) == 0 { return uint32(EP_IsFalse) } return uint32(0) @@ -84012,6 +84417,51 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { return pExpr } +// C documentation +// +// /* +// ** pExpr is a TK_FUNCTION node. Try to determine whether or not the +// ** function is a constant function. A function is constant if all of +// ** the following are true: +// ** +// ** (1) It is a scalar function (not an aggregate or window function) +// ** (2) It has either the SQLITE_FUNC_CONSTANT or SQLITE_FUNC_SLOCHNG +// ** property. +// ** (3) All of its arguments are constants +// ** +// ** This routine sets pWalker->eCode to 0 if pExpr is not a constant. +// ** It makes no changes to pWalker->eCode if pExpr is constant. In +// ** every case, it returns WRC_Abort. +// ** +// ** Called as a service subroutine from exprNodeIsConstant(). +// */ +func _exprNodeIsConstantFunction(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef, pList, v1 uintptr + var n int32 + var v2 bool + _, _, _, _, _, _ = db, n, pDef, pList, v1, v2 /* The database */ + if v2 = (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)) != uint32(0); !v2 { + v1 = *(*uintptr)(unsafe.Pointer(pExpr + 32)) + pList = v1 + } + if v2 || v1 == uintptr(0) { + n = 0 + } else { + n = (*TExprList)(unsafe.Pointer(pList)).FnExpr + _sqlite3WalkExprList(tls, pWalker, pList) + if int32((*TWalker)(unsafe.Pointer(pWalker)).FeCode) == 0 { + return int32(WRC_Abort) + } + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)|libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG)) == uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) +} + // C documentation // // /* @@ -84059,8 +84509,12 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 } return WRC_Continue } else { - (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) - return int32(WRC_Abort) + if (*TWalker)(unsafe.Pointer(pWalker)).FpParse != 0 { + return _exprNodeIsConstantFunction(tls, pWalker, pExpr) + } else { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } } fallthrough case int32(TK_ID): @@ -84087,6 +84541,8 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 case int32(TK_REGISTER): fallthrough case int32(TK_DOT): + fallthrough + case int32(TK_RAISE): (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) return int32(WRC_Abort) case int32(TK_VARIABLE): @@ -84112,14 +84568,14 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 return r } -func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32) { +func _exprIsConst(tls *libc.TLS, pParse uintptr, p uintptr, initFlag int32) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* w at bp+0 */ TWalker - (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(initFlag) + (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(uint16(initFlag)) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) - *(*int32)(unsafe.Pointer(bp + 40)) = iCur _sqlite3WalkExpr(tls, bp, p) return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } @@ -84133,9 +84589,15 @@ func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32 // ** For the purposes of this function, a double-quoted string (ex: "abc") // ** is considered a variable but a single-quoted string (ex: 'abc') is // ** a constant. +// ** +// ** The pParse parameter may be NULL. But if it is NULL, there is no way +// ** to determine if function calls are constant or not, and hence all +// ** function calls will be considered to be non-constant. If pParse is +// ** not NULL, then a function call might be constant, depending on the +// ** function and on its parameters. // */ -func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(1), 0) +func _sqlite3ExprIsConstant(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(1)) } // C documentation @@ -84153,8 +84615,24 @@ func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { // ** can be added to the pParse->pConstExpr list and evaluated once when // ** the prepared statement starts up. See sqlite3ExprCodeRunJustOnce(). // */ -func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(2), 0) +func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(2)) +} + +// C documentation +// +// /* +// ** This routine examines sub-SELECT statements as an expression is being +// ** walked as part of sqlite3ExprIsTableConstant(). Sub-SELECTs are considered +// ** constant as long as they are uncorrelated - meaning that they do not +// ** contain any terms from outer contexts. +// */ +func _exprSelectWalkTableConstant(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + if (*TSelect)(unsafe.Pointer(pSelect)).FselFlags&uint32(SF_Correlated) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) } // C documentation @@ -84164,9 +84642,25 @@ func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { // ** for any single row of the table with cursor iCur. In other words, the // ** expression must not refer to any non-deterministic function nor any // ** table other than iCur. +// ** +// ** Consider uncorrelated subqueries to be constants if the bAllowSubq +// ** parameter is true. // */ -func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) { - return _exprIsConst(tls, p, int32(3), iCur) +func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32, bAllowSubq int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(3) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = uintptr(0) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) + if bAllowSubq != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_exprSelectWalkTableConstant) + } else { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) + } + *(*int32)(unsafe.Pointer(bp + 40)) = iCur + _sqlite3WalkExpr(tls, bp, p) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } // C documentation @@ -84186,7 +84680,10 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** // ** (1) pExpr cannot refer to any table other than pSrc->iCursor. // ** -// ** (2) pExpr cannot use subqueries or non-deterministic functions. +// ** (2a) pExpr cannot use subqueries unless the bAllowSubq parameter is +// ** true and the subquery is non-correlated +// ** +// ** (2b) pExpr cannot use non-deterministic functions. // ** // ** (3) pSrc cannot be part of the left operand for a RIGHT JOIN. // ** (Is there some way to relax this constraint?) @@ -84212,7 +84709,7 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** which leads to incorrect answers. See also restriction (9) // ** on push-down. // */ -func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32) (r int32) { +func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32, bAllowSubq int32) (r int32) { var jj int32 var pSrc uintptr _, _ = jj, pSrc @@ -84250,7 +84747,8 @@ func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList jj++ } } - return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor) /* rules (1), (2) */ + /* Rules (1), (2a), and (2b) handled by the following: */ + return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor, bAllowSubq) } // C documentation @@ -84348,7 +84846,7 @@ func _sqlite3ExprIsConstantOrGroupBy(tls *libc.TLS, pParse uintptr, p uintptr, p // ** a constant. // */ func _sqlite3ExprIsConstantOrFunction(tls *libc.TLS, p uintptr, isInit Tu8) (r int32) { - return _exprIsConst(tls, p, int32(4)+int32(isInit), 0) + return _exprIsConst(tls, uintptr(0), p, int32(4)+int32(int32(isInit))) } // C documentation @@ -84413,10 +84911,10 @@ func _sqlite3ExprCanBeNull(tls *libc.TLS, p uintptr) (r int32) { p = (*TExpr)(unsafe.Pointer(p)).FpLeft } op = (*TExpr)(unsafe.Pointer(p)).Fop - if int32(op) == int32(TK_REGISTER) { + if int32(int32(op)) == int32(TK_REGISTER) { op = (*TExpr)(unsafe.Pointer(p)).Fop2 } - switch int32(op) { + switch int32(int32(op)) { case int32(TK_INTEGER): fallthrough case int32(TK_STRING): @@ -84450,7 +84948,7 @@ func _sqlite3ExprNeedsNoAffinityChange(tls *libc.TLS, p uintptr, aff int8) (r in var unaryMinus int32 _, _ = op, unaryMinus unaryMinus = 0 - if int32(aff) == int32(SQLITE_AFF_BLOB) { + if int32(int32(aff)) == int32(SQLITE_AFF_BLOB) { return int32(1) } for int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_UPLUS) || int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_UMINUS) { @@ -84460,21 +84958,21 @@ func _sqlite3ExprNeedsNoAffinityChange(tls *libc.TLS, p uintptr, aff int8) (r in p = (*TExpr)(unsafe.Pointer(p)).FpLeft } op = (*TExpr)(unsafe.Pointer(p)).Fop - if int32(op) == int32(TK_REGISTER) { + if int32(int32(op)) == int32(TK_REGISTER) { op = (*TExpr)(unsafe.Pointer(p)).Fop2 } - switch int32(op) { + switch int32(int32(op)) { case int32(TK_INTEGER): - return libc.BoolInt32(int32(aff) >= int32(SQLITE_AFF_NUMERIC)) + return libc.BoolInt32(int32(int32(aff)) >= int32(SQLITE_AFF_NUMERIC)) case int32(TK_FLOAT): - return libc.BoolInt32(int32(aff) >= int32(SQLITE_AFF_NUMERIC)) + return libc.BoolInt32(int32(int32(aff)) >= int32(SQLITE_AFF_NUMERIC)) case int32(TK_STRING): - return libc.BoolInt32(!(unaryMinus != 0) && int32(aff) == int32(SQLITE_AFF_TEXT)) + return libc.BoolInt32(!(unaryMinus != 0) && int32(int32(aff)) == int32(SQLITE_AFF_TEXT)) case int32(TK_BLOB): return libc.BoolInt32(!(unaryMinus != 0)) case int32(TK_COLUMN): /* p cannot be part of a CHECK constraint */ - return libc.BoolInt32(int32(aff) >= int32(SQLITE_AFF_NUMERIC) && int32((*TExpr)(unsafe.Pointer(p)).FiColumn) < 0) + return libc.BoolInt32(int32(int32(aff)) >= int32(SQLITE_AFF_NUMERIC) && int32((*TExpr)(unsafe.Pointer(p)).FiColumn) < 0) default: return 0 } @@ -84487,13 +84985,13 @@ func _sqlite3ExprNeedsNoAffinityChange(tls *libc.TLS, p uintptr, aff int8) (r in // ** Return TRUE if the given string is a row-id column name. // */ func _sqlite3IsRowid(tls *libc.TLS, z uintptr) (r int32) { - if _sqlite3StrICmp(tls, z, __ccgo_ts+7901) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8026) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7909) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8034) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7915) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8040) == 0 { return int32(1) } return 0 @@ -84511,9 +85009,9 @@ func _sqlite3RowidAlias(tls *libc.TLS, pTab uintptr) (r uintptr) { var iCol, ii int32 _, _, _ = azOpt, iCol, ii azOpt = [3]uintptr{ - 0: __ccgo_ts + 7901, - 1: __ccgo_ts + 7909, - 2: __ccgo_ts + 7915, + 0: __ccgo_ts + 8026, + 1: __ccgo_ts + 8034, + 2: __ccgo_ts + 8040, } ii = 0 for { @@ -84633,13 +85131,13 @@ func _sqlite3SetHasNullFlag(tls *libc.TLS, v uintptr, iCur int32, regHasNull int // ** The argument is an IN operator with a list (not a subquery) on the // ** right-hand side. Return TRUE if that list is constant. // */ -func _sqlite3InRhsIsConstant(tls *libc.TLS, pIn uintptr) (r int32) { +func _sqlite3InRhsIsConstant(tls *libc.TLS, pParse uintptr, pIn uintptr) (r int32) { var pLHS uintptr var res int32 _, _ = pLHS, res pLHS = (*TExpr)(unsafe.Pointer(pIn)).FpLeft (*TExpr)(unsafe.Pointer(pIn)).FpLeft = uintptr(0) - res = _sqlite3ExprIsConstant(tls, pIn) + res = _sqlite3ExprIsConstant(tls, pParse, pIn) (*TExpr)(unsafe.Pointer(pIn)).FpLeft = pLHS return res } @@ -84795,7 +85293,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 iAddr = _sqlite3VdbeAddOp0(tls, v, int32(OP_Once)) _sqlite3OpenTable(tls, pParse, iTab, iDb, pTab, int32(OP_OpenRead)) eType = int32(IN_INDEX_ROWID) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+7919, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+8044, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) _sqlite3VdbeJumpHere(tls, v, iAddr) } else { /* Iterator variable */ affinity_ok = int32(1) @@ -84812,7 +85310,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 iCol = int32((*TExpr)(unsafe.Pointer((*(*TExprList_item)(unsafe.Pointer(pEList1 + 8 + uintptr(i1)*32))).FpExpr)).FiColumn) idxaff = _sqlite3TableColumnAffinity(tls, pTab, iCol) /* RHS table */ cmpaff = _sqlite3CompareAffinity(tls, pLhs, idxaff) - switch int32(cmpaff) { + switch int32(int32(cmpaff)) { case int32(SQLITE_AFF_BLOB): case int32(SQLITE_AFF_TEXT): /* sqlite3CompareAffinity() only returns TEXT if one side or the @@ -84895,7 +85393,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 if colUsed == libc.Uint64FromInt32(1)<0 so that the new limit is either 1 or 0 */ db = (*TParse)(unsafe.Pointer(pParse)).Fdb - pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1726) + pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1786) if pLimit != 0 { (*TExpr)(unsafe.Pointer(pLimit)).FaffExpr = int8(SQLITE_AFF_NUMERIC) pLimit = _sqlite3PExpr(tls, pParse, int32(TK_NE), _sqlite3ExprDup(tls, db, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft, 0), pLimit) @@ -85386,7 +85884,7 @@ func _sqlite3CodeSubselect(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int3 (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft = pLimit } else { /* If there is no pre-existing limit add a limit of 1 */ - pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8134) + pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8259) (*TSelect)(unsafe.Pointer(pSel)).FpLimit = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), pLimit, uintptr(0)) } (*TSelect)(unsafe.Pointer(pSel)).FiLimit = 0 @@ -85489,7 +85987,7 @@ func _sqlite3ExprCodeIN(tls *libc.TLS, pParse uintptr, pExpr uintptr, destIfFals } zAff = _exprINAffinity(tls, pParse, pExpr) nVector = _sqlite3ExprVectorSize(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft) - aiMap = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(nVector)*(libc.Uint64FromInt64(4)+libc.Uint64FromInt64(1))+uint64(1)) + aiMap = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(uint64(uint64(nVector))*(libc.Uint64FromInt64(4)+libc.Uint64FromInt64(1))+uint64(1))) if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { goto sqlite3ExprCodeIN_oom_error } @@ -85709,11 +86207,13 @@ func _sqlite3ExprCodeIN(tls *libc.TLS, pParse uintptr, pExpr uintptr, destIfFals } /* Jumps here in order to return true. */ _sqlite3VdbeJumpHere(tls, v, addrTruthOp) + goto sqlite3ExprCodeIN_finished sqlite3ExprCodeIN_finished: ; if rLhs != rLhsOrig { _sqlite3ReleaseTempReg(tls, pParse, rLhs) } + goto sqlite3ExprCodeIN_oom_error sqlite3ExprCodeIN_oom_error: ; _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiMap) @@ -85771,13 +86271,13 @@ func _codeInteger(tls *libc.TLS, pParse uintptr, pExpr uintptr, negFlag int32, i z = *(*uintptr)(unsafe.Pointer(pExpr + 8)) c = _sqlite3DecOrHexToI64(tls, z, bp) if c == int32(3) && !(negFlag != 0) || c == int32(2) || negFlag != 0 && *(*Ti64)(unsafe.Pointer(bp)) == int64(-libc.Int32FromInt32(1))-(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<= int32(SQLITE_AFF_NUMERIC) && int32((*TIndexedExpr)(unsafe.Pointer(p)).Faff) != int32(SQLITE_AFF_NUMERIC) { + if int32(int32(exprAff)) <= int32(SQLITE_AFF_BLOB) && int32((*TIndexedExpr)(unsafe.Pointer(p)).Faff) != int32(SQLITE_AFF_BLOB) || int32(int32(exprAff)) == int32(SQLITE_AFF_TEXT) && int32((*TIndexedExpr)(unsafe.Pointer(p)).Faff) != int32(SQLITE_AFF_TEXT) || int32(int32(exprAff)) >= int32(SQLITE_AFF_NUMERIC) && int32((*TIndexedExpr)(unsafe.Pointer(p)).Faff) != int32(SQLITE_AFF_NUMERIC) { /* Affinity mismatch on a generated column */ goto _1 } @@ -86222,7 +86722,7 @@ func _exprPartidxExprLookup(tls *libc.TLS, pParse uintptr, pExpr uintptr, iTarge func _sqlite3ExprCodeTarget(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) (r int32) { bp := tls.Alloc(176) defer tls.Free(176) - var aListelem, db, db1, pAggInfo, pAggInfo1, pCol, pCol1, pColl, pDef, pDel, pEList, pFarg, pInfo, pLeft, pLeft1, pLeft2, pTab, pTab1, pTab2, pTest, pX, v, z, z1, zBlob, zId, v12, p3, p4 uintptr + var aListelem, db, db1, pAggInfo, pAggInfo1, pCol, pCol1, pColl, pDef, pDel, pEList, pFarg, pInfo, pLeft, pLeft1, pLeft2, pTab, pTab1, pTab2, pTest, pX, v, z, zBlob, zId, v12, p3, p4 uintptr var addr, addrINR, aff, bNormal, destIfFalse, destIfNull, endLabel, i, i1, iCol, iCol1, iReg, iSrc, iTab, inReg, isTrue, n, n1, nCol, nExpr, nFarg, nextCase, op, p1, p5, r1, r2, v1, v10, v14, v5, v7, v8 int32 var constMask Tu32 var enc, exprOp, okConstFactor Tu8 @@ -86231,12 +86731,13 @@ func _sqlite3ExprCodeTarget(tls *libc.TLS, pParse uintptr, pExpr uintptr, target var _ /* regFree1 at bp+0 */ int32 var _ /* regFree2 at bp+4 */ int32 var _ /* tempX at bp+8 */ TExpr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aListelem, addr, addrINR, aff, bNormal, constMask, db, db1, destIfFalse, destIfNull, enc, endLabel, exprOp, i, i1, iCol, iCol1, iReg, iSrc, iTab, inReg, isTrue, n, n1, nCol, nExpr, nFarg, nextCase, okConstFactor, op, p1, p5, pAggInfo, pAggInfo1, pCol, pCol1, pColl, pDef, pDel, pEList, pFarg, pInfo, pLeft, pLeft1, pLeft2, pTab, pTab1, pTab2, pTest, pX, r1, r2, v, z, z1, zBlob, zId, v1, v10, v11, v12, v14, v2, v5, v6, v7, v8, p3, p4 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aListelem, addr, addrINR, aff, bNormal, constMask, db, db1, destIfFalse, destIfNull, enc, endLabel, exprOp, i, i1, iCol, iCol1, iReg, iSrc, iTab, inReg, isTrue, n, n1, nCol, nExpr, nFarg, nextCase, okConstFactor, op, p1, p5, pAggInfo, pAggInfo1, pCol, pCol1, pColl, pDef, pDel, pEList, pFarg, pInfo, pLeft, pLeft1, pLeft2, pTab, pTab1, pTab2, pTest, pX, r1, r2, v, z, zBlob, zId, v1, v10, v11, v12, v14, v2, v5, v6, v7, v8, p3, p4 v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe /* The opcode being coded */ inReg = target /* Results stored in register inReg */ *(*int32)(unsafe.Pointer(bp)) = 0 /* If non-zero free this temporary register */ *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* Temporary expression node */ p5 = 0 + goto expr_code_doover expr_code_doover: ; if pExpr == uintptr(0) { @@ -86307,10 +86808,10 @@ expr_code_doover: return -int32(1) - (*TParse)(unsafe.Pointer(pParse)).FiSelfTab } pCol1 = (*TTable)(unsafe.Pointer(pTab1)).FaCol + uintptr(iCol)*16 - iSrc = int32(_sqlite3TableColumnToStorage(tls, pTab1, int16(iCol))) - (*TParse)(unsafe.Pointer(pParse)).FiSelfTab + iSrc = int32(_sqlite3TableColumnToStorage(tls, pTab1, int16(int16(iCol)))) - (*TParse)(unsafe.Pointer(pParse)).FiSelfTab if int32((*TColumn)(unsafe.Pointer(pCol1)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { if int32((*TColumn)(unsafe.Pointer(pCol1)).FcolFlags)&int32(COLFLAG_BUSY) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8166, libc.VaList(bp+160, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8291, libc.VaList(bp+160, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) return 0 } p3 = pCol1 + 14 @@ -86373,11 +86874,6 @@ expr_code_doover: return target case int32(TK_VARIABLE): _sqlite3VdbeAddOp2(tls, v, int32(OP_Variable), int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn), target) - if int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 8)) + 1))) != 0 { - z1 = _sqlite3VListNumToName(tls, (*TParse)(unsafe.Pointer(pParse)).FpVList, int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)) - *(*TVList)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpVList)) = 0 /* Indicate VList may no longer be enlarged */ - _sqlite3VdbeAppendP4(tls, v, z1, -int32(1)) - } return target case int32(TK_REGISTER): return (*TExpr)(unsafe.Pointer(pExpr)).FiTable @@ -86411,7 +86907,7 @@ expr_code_doover: case int32(TK_EQ): pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft if _sqlite3ExprIsVector(tls, pLeft) != 0 { - _codeVectorCompare(tls, pParse, pExpr, target, uint8(op), uint8(p5)) + _codeVectorCompare(tls, pParse, pExpr, target, uint8(uint8(op)), uint8(uint8(p5))) } else { r1 = _sqlite3ExprCodeTemp(tls, pParse, pLeft, bp) r2 = _sqlite3ExprCodeTemp(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpRight, bp+4) @@ -86488,7 +86984,7 @@ expr_code_doover: case int32(TK_AGG_FUNCTION): pInfo = (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo if pInfo == uintptr(0) || int32((*TExpr)(unsafe.Pointer(pExpr)).FiAgg) < 0 || int32((*TExpr)(unsafe.Pointer(pExpr)).FiAgg) >= (*TAggInfo)(unsafe.Pointer(pInfo)).FnFunc { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8227, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8352, libc.VaList(bp+160, pExpr)) } else { return (*TAggInfo)(unsafe.Pointer(pInfo)).FiFirstReg + (*TAggInfo)(unsafe.Pointer(pInfo)).FnColumn + int32((*TExpr)(unsafe.Pointer(pExpr)).FiAgg) } @@ -86500,7 +86996,7 @@ expr_code_doover: if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { return (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FregResult } - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { /* SQL functions can be expensive. So try to avoid running them ** multiple times if we know they always give the same result */ return _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) @@ -86515,7 +87011,7 @@ expr_code_doover: zId = *(*uintptr)(unsafe.Pointer(pExpr + 8)) pDef = _sqlite3FindFunction(tls, db, zId, nFarg, enc, uint8(0)) if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8254, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8379, libc.VaList(bp+160, pExpr)) break } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_INLINE) != uint32(0) && pFarg != uintptr(0) { @@ -86530,7 +87026,7 @@ expr_code_doover: if !(i < nFarg) { break } - if i < int32(32) && _sqlite3ExprIsConstant(tls, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { + if i < int32(32) && _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { constMask |= libc.Uint32FromInt32(1) << i } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_NEEDCOLL) != uint32(0) && !(pColl != 0) { @@ -86555,7 +87051,7 @@ expr_code_doover: */ if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(libc.Int32FromInt32(SQLITE_FUNC_LENGTH)|libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)) != uint32(0) { exprOp = (*TExpr)(unsafe.Pointer((*(*TExprList_item)(unsafe.Pointer(pFarg + 8))).FpExpr)).Fop - if int32(exprOp) == int32(TK_COLUMN) || int32(exprOp) == int32(TK_AGG_COLUMN) { + if int32(int32(exprOp)) == int32(TK_COLUMN) || int32(int32(exprOp)) == int32(TK_AGG_COLUMN) { (*TExpr)(unsafe.Pointer((*(*TExprList_item)(unsafe.Pointer(pFarg + 8))).FpExpr)).Fop2 = uint8((*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags & uint32(OPFLAG_BYTELENARG)) } } @@ -86588,7 +87084,7 @@ expr_code_doover: } _sqlite3VdbeAddOp4(tls, v, int32(OP_CollSeq), 0, 0, 0, pColl, -int32(2)) } - _sqlite3VdbeAddFunctionCall(tls, pParse, int32(constMask), r1, target, nFarg, pDef, int32((*TExpr)(unsafe.Pointer(pExpr)).Fop2)) + _sqlite3VdbeAddFunctionCall(tls, pParse, int32(int32(constMask)), r1, target, nFarg, pDef, int32((*TExpr)(unsafe.Pointer(pExpr)).Fop2)) if nFarg != 0 { if constMask == uint32(0) { _sqlite3ReleaseTempRange(tls, pParse, r1, nFarg) @@ -86620,7 +87116,7 @@ expr_code_doover: } n1 = _sqlite3ExprVectorSize(tls, pLeft2) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != n1 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7837, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7962, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) } return (*TExpr)(unsafe.Pointer(pLeft2)).FiTable + int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) case int32(TK_IN): @@ -86652,8 +87148,9 @@ expr_code_doover: if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Collate)) != libc.Uint32FromInt32(0)) { /* A TK_COLLATE Expr node without the EP_Collate tag is a so-called ** "SOFT-COLLATE" that is added to constraints that are pushed down - ** from outer queries into sub-queries by the push-down optimization. - ** Clear subtypes as subtypes may not cross a subquery boundary. + ** from outer queries into sub-queries by the WHERE-clause push-down + ** optimization. Clear subtypes as subtypes may not cross a subquery + ** boundary. */ _sqlite3ExprCode(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, target) _sqlite3VdbeAddOp1(tls, v, int32(OP_ClrSubtype), target) @@ -86671,7 +87168,7 @@ expr_code_doover: case int32(TK_TRIGGER): pTab2 = *(*uintptr)(unsafe.Pointer(pExpr + 64)) iCol1 = int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) - p1 = (*TExpr)(unsafe.Pointer(pExpr)).FiTable*(int32((*TTable)(unsafe.Pointer(pTab2)).FnCol)+int32(1)) + int32(1) + int32(_sqlite3TableColumnToStorage(tls, pTab2, int16(iCol1))) + p1 = (*TExpr)(unsafe.Pointer(pExpr)).FiTable*(int32((*TTable)(unsafe.Pointer(pTab2)).FnCol)+int32(1)) + int32(1) + int32(_sqlite3TableColumnToStorage(tls, pTab2, int16(int16(iCol1)))) _sqlite3VdbeAddOp2(tls, v, int32(OP_Param), p1, target) /* If the column has REAL affinity, it may currently be stored as an ** integer. Use OP_RealAffinity to make sure it is really real. @@ -86682,7 +87179,7 @@ expr_code_doover: _sqlite3VdbeAddOp1(tls, v, int32(OP_RealAffinity), target) } case int32(TK_VECTOR): - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6681, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6745, 0) break /* TK_IF_NULL_ROW Expr nodes are inserted ahead of expressions ** that derive from the right-hand table of a LEFT JOIN. The @@ -86797,7 +87294,7 @@ expr_code_doover: _sqlite3VdbeResolveLabel(tls, v, endLabel) case int32(TK_RAISE): if !((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != 0) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8278, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8403, 0) return 0 } if int32((*TExpr)(unsafe.Pointer(pExpr)).FaffExpr) == int32(OE_Abort) { @@ -86917,7 +87414,7 @@ func _sqlite3ExprCodeTemp(tls *libc.TLS, pParse uintptr, pExpr uintptr, pReg uin var r1, r2 int32 _, _ = r1, r2 pExpr = _sqlite3ExprSkipCollateAndLikely(tls, pExpr) - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { *(*int32)(unsafe.Pointer(pReg)) = 0 r2 = _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) } else { @@ -86956,7 +87453,7 @@ func _sqlite3ExprCode(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32 } else { op = uint8(OP_SCopy) } - _sqlite3VdbeAddOp2(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(op), inReg, target) + _sqlite3VdbeAddOp2(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(int32(op)), inReg, target) } } @@ -86987,7 +87484,7 @@ func _sqlite3ExprCodeCopy(tls *libc.TLS, pParse uintptr, pExpr uintptr, target i // ** might choose to code the expression at initialization time. // */ func _sqlite3ExprCodeFactorable(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) { - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target) } else { _sqlite3ExprCodeCopy(tls, pParse, pExpr, target) @@ -87022,7 +87519,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ var pExpr, pItem, pOp, v, v5 uintptr var v4, v6 bool _, _, _, _, _, _, _, _, _, _, _, _, _, _ = copyOp, i, inReg, j, n, pExpr, pItem, pOp, v, v1, v3, v4, v5, v6 - if int32(flags)&int32(SQLITE_ECEL_DUP) != 0 { + if int32(int32(flags))&int32(SQLITE_ECEL_DUP) != 0 { v1 = int32(OP_Copy) } else { v1 = int32(OP_SCopy) @@ -87041,7 +87538,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ break } pExpr = (*TExprList_item)(unsafe.Pointer(pItem)).FpExpr - if v4 = int32(flags)&int32(SQLITE_ECEL_REF) != 0; v4 { + if v4 = int32(int32(flags))&int32(SQLITE_ECEL_REF) != 0; v4 { v3 = int32((*(*struct { FiOrderByCol Tu16 FiAlias Tu16 @@ -87049,26 +87546,26 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ j = v3 } if v4 && v3 > 0 { - if int32(flags)&int32(SQLITE_ECEL_OMITREF) != 0 { + if int32(int32(flags))&int32(SQLITE_ECEL_OMITREF) != 0 { i-- n-- } else { - _sqlite3VdbeAddOp2(tls, v, int32(copyOp), j+srcReg-int32(1), target+i) + _sqlite3VdbeAddOp2(tls, v, int32(int32(copyOp)), j+srcReg-int32(1), target+i) } } else { - if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if int32(int32(flags))&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target+i) } else { inReg = _sqlite3ExprCodeTarget(tls, pParse, pExpr, target+i) if inReg != target+i { - if v6 = int32(copyOp) == int32(OP_Copy); v6 { + if v6 = int32(int32(copyOp)) == int32(OP_Copy); v6 { v5 = _sqlite3VdbeGetLastOp(tls, v) pOp = v5 } if v6 && int32((*TVdbeOp)(unsafe.Pointer(v5)).Fopcode) == int32(OP_Copy) && (*TVdbeOp)(unsafe.Pointer(pOp)).Fp1+(*TVdbeOp)(unsafe.Pointer(pOp)).Fp3+int32(1) == inReg && (*TVdbeOp)(unsafe.Pointer(pOp)).Fp2+(*TVdbeOp)(unsafe.Pointer(pOp)).Fp3+int32(1) == target+i && int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5) == 0 { (*TVdbeOp)(unsafe.Pointer(pOp)).Fp3++ } else { - _sqlite3VdbeAddOp2(tls, v, int32(copyOp), inReg, target+i) + _sqlite3VdbeAddOp2(tls, v, int32(int32(copyOp)), inReg, target+i) } } } @@ -87320,6 +87817,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsTrue)) == uint32(EP_IsTrue) { @@ -87525,6 +88023,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) { @@ -88258,7 +88757,7 @@ func _exprRefToSrcList(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) } i = 0 for { - if !(int64(i) < (*TRefSrcList)(unsafe.Pointer(p)).FnExclude && *(*int32)(unsafe.Pointer((*TRefSrcList)(unsafe.Pointer(p)).FaiExclude + uintptr(i)*4)) != (*TExpr)(unsafe.Pointer(pExpr)).FiTable) { + if !(int64(int64(i)) < (*TRefSrcList)(unsafe.Pointer(p)).FnExclude && *(*int32)(unsafe.Pointer((*TRefSrcList)(unsafe.Pointer(p)).FaiExclude + uintptr(i)*4)) != (*TExpr)(unsafe.Pointer(pExpr)).FiTable) { break } goto _4 @@ -88266,7 +88765,7 @@ func _exprRefToSrcList(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) ; i++ } - if int64(i) >= (*TRefSrcList)(unsafe.Pointer(p)).FnExclude { + if int64(int64(i)) >= (*TRefSrcList)(unsafe.Pointer(p)).FnExclude { p5 = pWalker + 36 *(*Tu16)(unsafe.Pointer(p5)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p5))) | libc.Int32FromInt32(2)) } @@ -88351,17 +88850,15 @@ func _agginfoPersistExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnColumn && (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } else { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnFunc && (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } @@ -88464,7 +88961,7 @@ func _findOrCreateAggInfoColumn(tls *libc.TLS, pParse uintptr, pAggInfo uintptr, } pE = (*TExprList_item)(unsafe.Pointer(pTerm)).FpExpr if int32((*TExpr)(unsafe.Pointer(pE)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pE)).FiTable == (*TExpr)(unsafe.Pointer(pExpr)).FiTable && int32((*TExpr)(unsafe.Pointer(pE)).FiColumn) == int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) { - (*TAggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = int16(j) + (*TAggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = int16(int16(j)) break } goto _2 @@ -88480,13 +88977,14 @@ func _findOrCreateAggInfoColumn(tls *libc.TLS, pParse uintptr, pAggInfo uintptr, *(*Tu16)(unsafe.Pointer(v4))++ (*TAggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = int16(v3) } + goto fix_up_expr fix_up_expr: ; (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo = pAggInfo if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_AGG_COLUMN) } - (*TExpr)(unsafe.Pointer(pExpr)).FiAgg = int16(k) + (*TExpr)(unsafe.Pointer(pExpr)).FiAgg = int16(int16(k)) } // C documentation @@ -88669,7 +89167,7 @@ func _analyzeAggregate(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) } /* Make pExpr point to the appropriate pAggInfo->aFunc[] entry */ - (*TExpr)(unsafe.Pointer(pExpr)).FiAgg = int16(i) + (*TExpr)(unsafe.Pointer(pExpr)).FiAgg = int16(int16(i)) (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo = pAggInfo return int32(WRC_Prune) } else { @@ -88910,8 +89408,8 @@ func _sqlite3FirstAvailableRegister(tls *libc.TLS, pParse uintptr, iMin int32) ( func _isAlterableTable(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) - if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6529, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8328, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6593, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8453, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -88930,9 +89428,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, bp := tls.Alloc(48) defer tls.Free(48) (*TParse)(unsafe.Pointer(pParse)).FcolNamesSet = uint8(1) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8356, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8481, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8531, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8656, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) } } @@ -88948,9 +89446,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, func _renameFixQuotes(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8705, libc.VaList(bp+8, zDb, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8830, libc.VaList(bp+8, zDb, zDb)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8852, 0) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8977, 0) } } @@ -89006,7 +89504,7 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName ** in database iDb. If so, this is an error. */ if _sqlite3FindTable(tls, db, zName, zDb) != 0 || _sqlite3FindIndex(tls, db, zName, zDb) != 0 || _sqlite3IsShadowTableOf(tls, db, pTab, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9003, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9128, libc.VaList(bp+8, zName)) goto exit_rename_table } /* Make sure it is not a system table being altered, or a reserved name @@ -89015,11 +89513,11 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { goto exit_rename_table } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9062, zName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9187, zName) { goto exit_rename_table } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9068, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9193, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_rename_table } /* Invoke the authorization callback. */ @@ -89049,21 +89547,21 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName nTabName = _sqlite3Utf8CharLen(tls, zTabName, -int32(1)) /* Rewrite all CREATE TABLE, INDEX, TRIGGER or VIEW statements in ** the schema to use the new table name. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9095, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9220, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) /* Update the tbl_name and name columns of the sqlite_schema table ** as required. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9279, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9404, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) /* If the sqlite_sequence table exists in this database, then update ** it with the new table name. */ - if _sqlite3FindTable(tls, db, __ccgo_ts+9584, zDb) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9600, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if _sqlite3FindTable(tls, db, __ccgo_ts+9709, zDb) != 0 { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9725, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* If the table being renamed is not itself part of the temp database, ** edit view and trigger definitions within the temp database ** as required. */ if iDb != int32(1) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9658, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9783, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) } /* If this is a virtual table, invoke the xRename() function if ** one is defined. The xRename() callback will modify the names @@ -89079,7 +89577,8 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp4(tls, v, int32(OP_VRename), i, 0, 0, pVTab, -int32(11)) } _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+9923, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+10048, 0) + goto exit_rename_table exit_rename_table: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -89095,7 +89594,7 @@ exit_rename_table: func _sqlite3ErrorIfNotEmpty(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zErr uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9936, libc.VaList(bp+8, zErr, zDb, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10061, libc.VaList(bp+8, zErr, zDb, zTab)) } // C documentation @@ -89135,11 +89634,11 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** column must not be NULL. */ if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9974, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10099, 0) return } if (*TTable)(unsafe.Pointer(pNew)).FpIndex != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10006, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10131, 0) return } if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) == 0 { @@ -89155,10 +89654,10 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpFKey != 0 && pDflt != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10033) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10158) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && !(pDflt != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10092) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10217) } /* Ensure the default expression is something that sqlite3ValueFromExpr() ** can handle (i.e. not CURRENT_TIME etc.) @@ -89170,13 +89669,13 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr return } if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10145) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10270) } _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp))) } } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_STORED) != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10191) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10316) } } /* Modify the CREATE TABLE statement. */ @@ -89190,7 +89689,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr } /* substr() operations on characters, but addColOffset is in bytes. So we ** have to use printf() to translate between these units: */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10218, libc.VaList(bp+16, zDb, (*(*struct { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10343, libc.VaList(bp+16, zDb, (*(*struct { FaddColOffset int32 FpFKey uintptr FpDfltList uintptr @@ -89218,7 +89717,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterAdd)) /* Verify that constraints are still satisfied */ if (*TTable)(unsafe.Pointer(pNew)).FpCheck != uintptr(0) || int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Strict) != uint32(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10364, libc.VaList(bp+16, zTab, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10489, libc.VaList(bp+16, zTab, zDb)) } } } @@ -89256,12 +89755,12 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { goto exit_begin_add_column } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10717, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10842, 0) goto exit_begin_add_column } /* Make sure this is not an attempt to ALTER a view. */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10751, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10876, 0) goto exit_begin_add_column } if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { @@ -89284,8 +89783,8 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { (*TTable)(unsafe.Pointer(pNew)).FnTabRef = uint32(1) (*TTable)(unsafe.Pointer(pNew)).FnCol = (*TTable)(unsafe.Pointer(pTab)).FnCol nAlloc = (int32((*TTable)(unsafe.Pointer(pNew)).FnCol)-int32(1))/int32(8)*int32(8) + int32(8) - (*TTable)(unsafe.Pointer(pNew)).FaCol = _sqlite3DbMallocZero(tls, db, uint64(16)*uint64(nAlloc)) - (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10781, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + (*TTable)(unsafe.Pointer(pNew)).FaCol = _sqlite3DbMallocZero(tls, db, uint64(uint64(16)*uint64(uint64(nAlloc)))) + (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10906, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !((*TTable)(unsafe.Pointer(pNew)).FaCol != 0) || !((*TTable)(unsafe.Pointer(pNew)).FzName != 0) { goto exit_begin_add_column } @@ -89322,6 +89821,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pTab + 64))).FaddColOffset + goto exit_begin_add_column exit_begin_add_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -89345,18 +89845,18 @@ func _isRealTable(tls *libc.TLS, pParse uintptr, pTab uintptr, bDrop int32) (r i _, _ = zType, v1 zType = uintptr(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10800 + zType = __ccgo_ts + 10925 } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 10805 + zType = __ccgo_ts + 10930 } if zType != 0 { if bDrop != 0 { - v1 = __ccgo_ts + 10819 + v1 = __ccgo_ts + 10944 } else { - v1 = __ccgo_ts + 10836 + v1 = __ccgo_ts + 10961 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10854, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10979, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -89417,11 +89917,11 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld iCol++ } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10872, libc.VaList(bp+8, pOld)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10997, libc.VaList(bp+8, pOld)) goto exit_rename_column } /* Ensure the schema contains no double-quoted strings */ - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1652, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1666, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1))) /* Do the rename operation using a recursive UPDATE statement that ** uses the sqlite_rename_column() SQL function to compute the new @@ -89433,11 +89933,12 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld goto exit_rename_column } bQuote = int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pNew)).Fz)))]) & int32(0x80) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10893, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11075, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11018, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11200, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iSchema, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+9923, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+10048, int32(1)) + goto exit_rename_column exit_rename_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -89912,11 +90413,11 @@ func _renameColumnParseError(tls *libc.TLS, pCtx uintptr, zWhen uintptr, pType u zT = Xsqlite3_value_text(tls, pType) zN = Xsqlite3_value_text(tls, pObject) if *(*int8)(unsafe.Pointer(zWhen)) != 0 { - v1 = __ccgo_ts + 11206 + v1 = __ccgo_ts + 11331 } else { - v1 = __ccgo_ts + 1652 + v1 = __ccgo_ts + 1666 } - zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11208, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) + zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11333, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, zErr) } @@ -89993,8 +90494,8 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin if zSql == uintptr(0) { return int32(SQLITE_NOMEM) } - if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11231, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(116682)) + if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11356, int32(7)) != 0 { + return _sqlite3CorruptError(tls, int32(117285)) } if bTemp != 0 { v1 = int32(1) @@ -90010,7 +90511,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin rc = int32(SQLITE_NOMEM) } if rc == SQLITE_OK && ((*TParse)(unsafe.Pointer(p)).FpNewTable == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewIndex == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewTrigger == uintptr(0)) { - rc = _sqlite3CorruptError(tls, int32(116693)) + rc = _sqlite3CorruptError(tls, int32(117296)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -90049,7 +90550,7 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, ** ALTER TABLE statement was quoted (bQuote==1), then set zNew to ** point to zQuot so that all substitutions are made using the ** quoted version of the new column name. */ - zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11239, libc.VaList(bp+8, zNew)) + zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11364, libc.VaList(bp+8, zNew)) if zQuot == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -90068,16 +90569,16 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, ** with the new column name, or with single-quoted versions of themselves. ** All that remains is to construct and return the edited SQL string. */ if zOut != 0 { - nOut = int32(nSql) - libc.Xmemcpy(tls, zOut, zSql, uint64(nSql)) + nOut = int32(int32(nSql)) + libc.Xmemcpy(tls, zOut, zSql, uint64(uint64(nSql))) for (*TRenameCtx)(unsafe.Pointer(pRename)).FpList != 0 { pBest = _renameColumnTokenNext(tls, pRename) if zNew != 0 { if bQuote == 0 && _sqlite3IsIdChar(tls, uint8(*(*int8)(unsafe.Pointer((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz)))) != 0 { - nReplace = uint32(nNew) + nReplace = uint32(uint32(nNew)) zReplace = zNew } else { - nReplace = uint32(nQuot) + nReplace = uint32(uint32(nQuot)) zReplace = zQuot if int32(*(*int8)(unsafe.Pointer((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn)))) == int32('"') { nReplace++ @@ -90094,21 +90595,21 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, *(*int8)(unsafe.Pointer(zBuf1 + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn))) = 0 _sqlite3Dequote(tls, zBuf1) if int32(*(*int8)(unsafe.Pointer((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn)))) == int32('\'') { - v1 = __ccgo_ts + 11206 + v1 = __ccgo_ts + 11331 } else { - v1 = __ccgo_ts + 1652 + v1 = __ccgo_ts + 1666 } - Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11245, libc.VaList(bp+8, zBuf1, v1)) + Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11370, libc.VaList(bp+8, zBuf1, v1)) zReplace = zBuf2 nReplace = uint32(_sqlite3Strlen30(tls, zReplace)) } - iOff = int32(int64((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz) - int64(zSql)) + iOff = int32(int64((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz) - int64(int64(zSql))) if (*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn != nReplace { - libc.Xmemmove(tls, zOut+uintptr(uint32(iOff)+nReplace), zOut+uintptr(uint32(iOff)+(*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn), uint64(uint32(nOut)-(uint32(iOff)+(*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn))) + libc.Xmemmove(tls, zOut+uintptr(uint32(uint32(iOff))+nReplace), zOut+uintptr(uint32(uint32(iOff))+(*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn), uint64(uint32(uint32(nOut))-(uint32(uint32(iOff))+(*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn))) nOut = int32(uint32(nOut) + (nReplace - (*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn)) *(*int8)(unsafe.Pointer(zOut + uintptr(nOut))) = int8('\000') } - libc.Xmemcpy(tls, zOut+uintptr(iOff), zReplace, uint64(nReplace)) + libc.Xmemcpy(tls, zOut+uintptr(iOff), zReplace, uint64(uint64(nReplace))) _sqlite3DbFree(tls, db, pBest) } Xsqlite3_result_text(tls, pCtx, zOut, -int32(1), uintptr(-libc.Int32FromInt32(1))) @@ -90134,7 +90635,7 @@ func _renameSetENames(tls *libc.TLS, pEList uintptr, val int32) { if !(i < (*TExprList)(unsafe.Pointer(pEList)).FnExpr) { break } - libc.SetBitFieldPtr16Uint32(pEList+8+uintptr(i)*32+16+4, uint32(val), 0, 0x3) + libc.SetBitFieldPtr16Uint32(pEList+8+uintptr(i)*32+16+4, uint32(uint32(val)), 0, 0x3) goto _1 _1: ; @@ -90575,6 +91076,7 @@ func _renameColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintp } } rc = _renameEditSql(tls, context, bp, zSql, zNew, bQuote) + goto renameColumnFunc_done renameColumnFunc_done: ; if rc != SQLITE_OK { @@ -90582,7 +91084,7 @@ renameColumnFunc_done: Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv))) } else { if (*(*TParse)(unsafe.Pointer(bp + 32))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1652, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) + _renameColumnParseError(tls, context, __ccgo_ts+1666, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -90808,7 +91310,7 @@ func _renameTableFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintpt Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv + 3*8))) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1652, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) + _renameColumnParseError(tls, context, __ccgo_ts+1666, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -91070,7 +91572,7 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr pTab = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable if pTab == uintptr(0) || int32((*TTable)(unsafe.Pointer(pTab)).FnCol) == int32(1) || iCol >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { /* This can happen if the sqlite_schema table is corrupt */ - rc = _sqlite3CorruptError(tls, int32(117652)) + rc = _sqlite3CorruptError(tls, int32(118255)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -91087,9 +91589,10 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr (*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz-- } } - zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11250, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) + zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11375, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(int64(zSql)), zSql, zEnd)) Xsqlite3_result_text(tls, context, zNew, -int32(1), uintptr(-libc.Int32FromInt32(1))) Xsqlite3_free(tls, zNew) + goto drop_column_done drop_column_done: ; _renameParseCleanup(tls, bp) @@ -91113,8 +91616,9 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName bp := tls.Alloc(48) defer tls.Free(48) var addr, i, iCol, iColPos, iCur, iDb, iPos, nField, reg, regOut, regRec, v2, v4, v7 int32 + var aff int8 var db, pPk, pTab, v, zCol, zDb, v1, v3, v5, v8 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, aff, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Database containing pTab ("main" etc.) */ zCol = uintptr(0) /* Index of column zCol in pTab->aCol[] */ /* Look up the table being altered. */ @@ -91140,23 +91644,23 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName } iCol = _sqlite3ColumnIndex(tls, pTab, zCol) if iCol < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10872, libc.VaList(bp+8, pName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10997, libc.VaList(bp+8, pName)) goto exit_drop_column } /* Do not allow the user to drop a PRIMARY KEY column or a column ** constrained by a UNIQUE constraint. */ if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_PRIMKEY)|libc.Int32FromInt32(COLFLAG_UNIQUE)) != 0 { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - v1 = __ccgo_ts + 11257 + v1 = __ccgo_ts + 11382 } else { - v1 = __ccgo_ts + 5593 + v1 = __ccgo_ts + 5657 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11269, libc.VaList(bp+8, v1, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11394, libc.VaList(bp+8, v1, zCol)) goto exit_drop_column } /* Do not allow the number of columns to go to zero */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) <= int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11297, libc.VaList(bp+8, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11422, libc.VaList(bp+8, zCol)) goto exit_drop_column } /* Edit the sqlite_schema table */ @@ -91166,12 +91670,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_ALTER_TABLE), zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol) != 0 { goto exit_drop_column } - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1652, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1666, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1))) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11345, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11470, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterDrop)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11466, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11591, int32(1)) /* Edit rows of table on disk */ if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 && int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { pPk = uintptr(0) @@ -91217,8 +91721,8 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName } if i != iCol && int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { if pPk != 0 { - iPos = int32(_sqlite3TableColumnToIndex(tls, pPk, int16(i))) - iColPos = int32(_sqlite3TableColumnToIndex(tls, pPk, int16(iCol))) + iPos = int32(_sqlite3TableColumnToIndex(tls, pPk, int16(int16(i)))) + iColPos = int32(_sqlite3TableColumnToIndex(tls, pPk, int16(int16(iCol)))) if iPos < int32((*TIndex)(unsafe.Pointer(pPk)).FnKeyCol) { goto _9 } @@ -91229,7 +91733,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if i == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regOut) } else { + aff = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity + if int32(int32(aff)) == int32(SQLITE_AFF_REAL) { + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = int8(SQLITE_AFF_NUMERIC) + } _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, i, regOut) + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = aff } nField++ } @@ -91254,6 +91763,7 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iCur, addr+int32(1)) _sqlite3VdbeJumpHere(tls, v, addr) } + goto exit_drop_column exit_drop_column: ; _sqlite3DbFree(tls, db, zCol) @@ -91273,27 +91783,27 @@ var _aAlterTableFuncs = [5]TFuncDef{ 0: { FnArg: int8(9), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11484, + FzName: __ccgo_ts + 11609, }, 1: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11505, + FzName: __ccgo_ts + 11630, }, 2: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11525, + FzName: __ccgo_ts + 11650, }, 3: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11544, + FzName: __ccgo_ts + 11669, }, 4: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11563, + FzName: __ccgo_ts + 11688, }, } @@ -91504,7 +92014,7 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW ** side-effect of the CREATE TABLE statement is to leave the rootpage ** of the new table in register pParse->regRoot. This is important ** because the OpenWrite opcode below will be needing it. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11666, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11791, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) aRoot[i] = uint32((*TParse)(unsafe.Pointer(pParse)).FregRoot) aCreateTbl[i] = uint8(OPFLAG_P2ISREG) } @@ -91515,10 +92025,10 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW aRoot[i] = (*TTable)(unsafe.Pointer(pStat)).Ftnum _sqlite3TableLock(tls, pParse, iDb, aRoot[i], uint8(1), zTab) if zWhere != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11689, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11814, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11719, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11844, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) } else { /* The sqlite_stat[134] table already exists. Delete all rows. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Clear), int32(aRoot[i]), iDb) @@ -91550,15 +92060,15 @@ var _aTable = [3]struct { FzCols uintptr }{ 0: { - FzName: __ccgo_ts + 11586, - FzCols: __ccgo_ts + 11599, + FzName: __ccgo_ts + 11711, + FzCols: __ccgo_ts + 11724, }, 1: { - FzName: __ccgo_ts + 11612, - FzCols: __ccgo_ts + 11625, + FzName: __ccgo_ts + 11737, + FzCols: __ccgo_ts + 11750, }, 2: { - FzName: __ccgo_ts + 11653, + FzName: __ccgo_ts + 11778, }, } @@ -91668,10 +92178,10 @@ func _sampleSetRowid(tls *libc.TLS, db uintptr, p uintptr, n int32, pData uintpt if (*TStatSample)(unsafe.Pointer(p)).FnRowid != 0 { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(p + 24))) } - *(*uintptr)(unsafe.Pointer(p + 24)) = _sqlite3DbMallocRawNN(tls, db, uint64(n)) + *(*uintptr)(unsafe.Pointer(p + 24)) = _sqlite3DbMallocRawNN(tls, db, uint64(uint64(n))) if *(*uintptr)(unsafe.Pointer(p + 24)) != 0 { - (*TStatSample)(unsafe.Pointer(p)).FnRowid = uint32(n) - libc.Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(p + 24)), pData, uint64(n)) + (*TStatSample)(unsafe.Pointer(p)).FnRowid = uint32(uint32(n)) + libc.Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(p + 24)), pData, uint64(uint64(n))) } else { (*TStatSample)(unsafe.Pointer(p)).FnRowid = uint32(0) } @@ -91788,12 +92298,12 @@ func _statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { nColUp = nCol nKeyCol = Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) /* Allocate the space required for the StatAccum object */ - n = int32(uint64(136) + uint64(8)*uint64(nColUp)) /* StatAccum.anDLt */ - n = int32(uint64(n) + libc.Uint64FromInt64(8)*uint64(nColUp)) /* StatAccum.anEq */ + n = int32(uint64(136) + uint64(8)*uint64(uint64(nColUp))) /* StatAccum.anDLt */ + n = int32(uint64(n) + libc.Uint64FromInt64(8)*uint64(uint64(nColUp))) /* StatAccum.anEq */ if mxSample != 0 { - n = int32(uint64(n) + (libc.Uint64FromInt64(8)*uint64(nColUp) + libc.Uint64FromInt64(48)*uint64(nCol+mxSample) + libc.Uint64FromInt64(8)*libc.Uint64FromInt32(3)*uint64(nColUp)*uint64(nCol+mxSample))) + n = int32(uint64(n) + (libc.Uint64FromInt64(8)*uint64(uint64(nColUp)) + libc.Uint64FromInt64(48)*uint64(nCol+mxSample) + libc.Uint64FromInt64(8)*libc.Uint64FromInt32(3)*uint64(uint64(nColUp))*uint64(nCol+mxSample))) } - p = _sqlite3DbMallocZero(tls, db, uint64(n)) + p = _sqlite3DbMallocZero(tls, db, uint64(uint64(n))) if p == uintptr(0) { Xsqlite3_result_error_nomem(tls, context) return @@ -91817,7 +92327,7 @@ func _statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*TStatAccum)(unsafe.Pointer(p)).FiGet = -int32(1) (*TStatAccum)(unsafe.Pointer(p)).FnPSample = (*TStatAccum)(unsafe.Pointer(p)).FnEst/uint64(mxSample/libc.Int32FromInt32(3)+libc.Int32FromInt32(1)) + libc.Uint64FromInt32(1) (*TStatAccum)(unsafe.Pointer(p)).Fcurrent.FanLt = (*TStatAccum)(unsafe.Pointer(p)).Fcurrent.FanEq + uintptr(nColUp)*8 - (*TStatAccum)(unsafe.Pointer(p)).FiPrn = uint32(0x689e962d)*uint32(nCol) ^ uint32(0xd0944565)*uint32(Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8)))) + (*TStatAccum)(unsafe.Pointer(p)).FiPrn = uint32(0x689e962d)*uint32(uint32(nCol)) ^ uint32(0xd0944565)*uint32(Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8)))) /* Set up the StatAccum.a[] and aBest[] arrays */ (*TStatAccum)(unsafe.Pointer(p)).Fa = (*TStatAccum)(unsafe.Pointer(p)).Fcurrent.FanLt + uintptr(nColUp)*8 (*TStatAccum)(unsafe.Pointer(p)).FaBest = (*TStatAccum)(unsafe.Pointer(p)).Fa + uintptr(mxSample)*48 @@ -91828,11 +92338,11 @@ func _statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { break } (*(*TStatSample)(unsafe.Pointer((*TStatAccum)(unsafe.Pointer(p)).Fa + uintptr(i)*48))).FanEq = pSpace - pSpace += uintptr(libc.Uint64FromInt64(8) * uint64(nColUp)) + pSpace += uintptr(libc.Uint64FromInt64(8) * uint64(uint64(nColUp))) (*(*TStatSample)(unsafe.Pointer((*TStatAccum)(unsafe.Pointer(p)).Fa + uintptr(i)*48))).FanLt = pSpace - pSpace += uintptr(libc.Uint64FromInt64(8) * uint64(nColUp)) + pSpace += uintptr(libc.Uint64FromInt64(8) * uint64(uint64(nColUp))) (*(*TStatSample)(unsafe.Pointer((*TStatAccum)(unsafe.Pointer(p)).Fa + uintptr(i)*48))).FanDLt = pSpace - pSpace += uintptr(libc.Uint64FromInt64(8) * uint64(nColUp)) + pSpace += uintptr(libc.Uint64FromInt64(8) * uint64(uint64(nColUp))) goto _3 _3: ; @@ -91860,7 +92370,7 @@ func _statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statInitFuncdef = TFuncDef{ FnArg: int8(4), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11737, + FzName: __ccgo_ts + 11862, } func init() { @@ -92005,7 +92515,8 @@ func _sampleInsert(tls *libc.TLS, p uintptr, pNew uintptr, nEqZero int32) { _sampleCopy(tls, p, pSample, pNew) (*TStatAccum)(unsafe.Pointer(p)).FnSample++ /* Zero the first nEqZero entries in the anEq[] array. */ - libc.Xmemset(tls, (*TStatSample)(unsafe.Pointer(pSample)).FanEq, 0, uint64(8)*uint64(nEqZero)) + libc.Xmemset(tls, (*TStatSample)(unsafe.Pointer(pSample)).FanEq, 0, uint64(8)*uint64(uint64(nEqZero))) + goto find_new_min find_new_min: ; if (*TStatAccum)(unsafe.Pointer(p)).FnSample >= (*TStatAccum)(unsafe.Pointer(p)).FmxSample { @@ -92233,7 +92744,7 @@ func _statPush(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statPushFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(2) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11747, + FzName: __ccgo_ts + 11872, } func init() { @@ -92283,7 +92794,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } else { v1 = (*TStatAccum)(unsafe.Pointer(p)).FnRow } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11757, libc.VaList(bp+72, v1)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11882, libc.VaList(bp+72, v1)) i = 0 for { if !(i < (*TStatAccum)(unsafe.Pointer(p)).FnKeyCol) { @@ -92294,7 +92805,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if iVal == uint64(2) && (*TStatAccum)(unsafe.Pointer(p)).FnRow*uint64(10) <= nDistinct*uint64(11) { iVal = uint64(1) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11762, libc.VaList(bp+72, iVal)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11887, libc.VaList(bp+72, iVal)) goto _2 _2: ; @@ -92333,7 +92844,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if !(i1 < (*TStatAccum)(unsafe.Pointer(p)).FnCol) { break } - Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+11768, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) + Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+11893, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) goto _3 _3: ; @@ -92351,7 +92862,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statGetFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(1) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11774, + FzName: __ccgo_ts + 11899, } func init() { @@ -92372,9 +92883,9 @@ func _callStatGet(tls *libc.TLS, pParse uintptr, regStat int32, iParam int32, re // */ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr, iStatCur int32, iMem int32, iTab int32) { var aGotoChng, db, pColl, pIdx, pPk, pStat1, pX, v, zIdxName uintptr - var addrIsNull, addrNext, addrNextRow, addrRewind, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 + var addrGotoEnd, addrIsNull, addrNext, addrNextRow, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 var needTableCnt, seekOp Tu8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrIsNull, addrNext, addrNextRow, addrRewind, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrGotoEnd, addrIsNull, addrNext, addrNextRow, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Loop counter */ jZeroRows = -int32(1) /* Index of database containing pTab */ needTableCnt = uint8(1) @@ -92417,7 +92928,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Do not gather statistics on views or virtual tables */ return } - if Xsqlite3_strlike(tls, __ccgo_ts+11783, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { + if Xsqlite3_strlike(tls, __ccgo_ts+11908, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { /* Do not gather statistics on system tables */ return } @@ -92426,12 +92937,12 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint return } if (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 { - pStat1 = _sqlite3DbMallocZero(tls, db, libc.Uint64FromInt64(104)+libc.Uint64FromInt32(13)) + pStat1 = _sqlite3DbMallocZero(tls, db, uint64(libc.Uint64FromInt64(104)+libc.Uint64FromInt32(13))) if pStat1 == uintptr(0) { return } (*TTable)(unsafe.Pointer(pStat1)).FzName = pStat1 + 1*104 - libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11586, uint64(13)) + libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11711, uint64(13)) (*TTable)(unsafe.Pointer(pStat1)).FnCol = int16(3) (*TTable)(unsafe.Pointer(pStat1)).FiPKey = int16(-int32(1)) _sqlite3VdbeAddOp4(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Noop), 0, 0, 0, pStat1, -int32(6)) @@ -92485,9 +92996,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* ** Pseudo-code for loop that calls stat_push(): ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() ** goto chng_addr_0; ** ** next_row: @@ -92521,37 +93037,34 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Open a read-only cursor on the index being analyzed. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenRead), iIdxCur, int32((*TIndex)(unsafe.Pointer(pIdx)).Ftnum), iDb) _sqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx) - /* Invoke the stat_init() function. The arguments are: + /* Implementation of the following: ** + ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() + ** goto chng_addr_0; + */ + _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + /* Arguments to stat_init(): ** (1) the number of columns in the index including the rowid ** (or for a WITHOUT ROWID table, the number of PK columns), ** (2) the number of columns in the key without the rowid/pk - ** (3) estimated number of rows in the index, - */ + ** (3) estimated number of rows in the index. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), nCol, regStat+int32(1)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol), regRowid) - if (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0) { - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iIdxCur, regTemp) - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - } else { - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, int32(1)) - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) != uint32(0))) _sqlite3VdbeAddFunctionCall(tls, pParse, 0, regStat+int32(1), regStat, int32(4), uintptr(unsafe.Pointer(&_statInitFuncdef)), 0) - /* Implementation of the following: - ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; - ** regChng = 0 - ** goto next_push_0; - ** - */ + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regChng) addrNextRow = _sqlite3VdbeCurrentAddr(tls, v) if nColTest > 0 { endDistinctTest = _sqlite3VdbeMakeLabel(tls, pParse) /* Array of jump instruction addresses */ - aGotoChng = _sqlite3DbMallocRawNN(tls, db, uint64(4)*uint64(nColTest)) + aGotoChng = _sqlite3DbMallocRawNN(tls, db, uint64(uint64(4)*uint64(uint64(nColTest)))) if aGotoChng == uintptr(0) { goto _13 } @@ -92655,8 +93168,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iIdxCur, addrNextRow) } /* Add the entry to the stat1 table. */ + if (*TIndex)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 { + /* Partial indexes might get a zero-entry in sqlite_stat1. But + ** an empty table is omitted from sqlite_stat1. */ + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + addrGotoEnd = 0 + } _callStatGet(tls, pParse, regStat, STAT_GET_STAT1, regStat1) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11793, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11918, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP4(tls, v, -int32(1), pStat1, -int32(5)) @@ -92675,6 +93194,11 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint v18 = int32(OP_NotFound) } seekOp = uint8(v18) + /* No STAT4 data is generated if the number of rows is zero */ + if addrGotoEnd == 0 { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Cast), regStat1, int32(SQLITE_AFF_INTEGER)) + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) + } if doOnce != 0 { mxCol = nCol /* Compute the maximum number of columns in any index */ @@ -92707,7 +93231,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _callStatGet(tls, pParse, regStat, int32(STAT_GET_NEQ), regEq) _callStatGet(tls, pParse, regStat, int32(STAT_GET_NLT), regLt) _callStatGet(tls, pParse, regStat, int32(STAT_GET_NDLT), regDLt) - _sqlite3VdbeAddOp4Int(tls, v, int32(seekOp), iTabCur, addrNext, regSampleRowid, 0) + _sqlite3VdbeAddOp4Int(tls, v, int32(int32(seekOp)), iTabCur, addrNext, regSampleRowid, 0) i = 0 for { if !(i < nCol) { @@ -92727,7 +93251,9 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeJumpHere(tls, v, addrIsNull) } /* End of analysis */ - _sqlite3VdbeJumpHere(tls, v, addrRewind) + if addrGotoEnd != 0 { + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + } goto _13 _13: ; @@ -92740,7 +93266,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iTabCur, regStat1) jZeroRows = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regIdxname) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11793, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11918, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND)) @@ -92812,9 +93338,9 @@ func _analyzeTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr iStatCur = (*TParse)(unsafe.Pointer(pParse)).FnTab *(*int32)(unsafe.Pointer(pParse + 52)) += int32(3) if pOnlyIdx != 0 { - _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11797) + _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11922) } else { - _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11801) + _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11926) } _analyzeOneTable(tls, pParse, pTab, pOnlyIdx, iStatCur, (*TParse)(unsafe.Pointer(pParse)).FnMem+int32(1), (*TParse)(unsafe.Pointer(pParse)).FnTab) _loadAnalysis(tls, pParse, iDb) @@ -92943,7 +93469,7 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, _, _, _, _, _, _ = c, i, sz, v, z, v2 z = zIntArray if z == uintptr(0) { - z = __ccgo_ts + 1652 + z = __ccgo_ts + 1666 } i = 0 for { @@ -92957,7 +93483,7 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, if !(v2 >= int32('0') && c <= int32('9')) { break } - v = v*uint64(10) + uint64(c) - uint64('0') + v = v*uint64(10) + uint64(uint64(c)) - uint64('0') z++ } if aOut != 0 { @@ -92978,17 +93504,17 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 6, 0x40) for *(*int8)(unsafe.Pointer(z)) != 0 { - if Xsqlite3_strglob(tls, __ccgo_ts+11805, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11930, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 2, 0x4) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11816, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11941, z) == 0 { sz = _sqlite3Atoi(tls, z+uintptr(3)) if sz < int32(2) { sz = int32(2) } - (*TIndex)(unsafe.Pointer(pIndex)).FszIdxRow = _sqlite3LogEst(tls, uint64(sz)) + (*TIndex)(unsafe.Pointer(pIndex)).FszIdxRow = _sqlite3LogEst(tls, uint64(uint64(sz))) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11826, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11951, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 6, 0x40) } } @@ -93057,7 +93583,7 @@ func _analysisLoader(tls *libc.TLS, pData uintptr, argc int32, argv uintptr, Not ** sqlite_stat1 entries for this index. In that case just clobber ** the old data with the new instead of allocating a new array. */ if (*TIndex)(unsafe.Pointer(pIndex)).FaiRowEst == uintptr(0) { - (*TIndex)(unsafe.Pointer(pIndex)).FaiRowEst = _sqlite3MallocZero(tls, uint64(8)*uint64(nCol)) + (*TIndex)(unsafe.Pointer(pIndex)).FaiRowEst = _sqlite3MallocZero(tls, uint64(uint64(8)*uint64(uint64(nCol)))) if (*TIndex)(unsafe.Pointer(pIndex)).FaiRowEst == uintptr(0) { _sqlite3OomFault(tls, (*TanalysisInfo)(unsafe.Pointer(pInfo)).Fdb) } @@ -93258,10 +93784,10 @@ func _loadStatTbl(tls *libc.TLS, db uintptr, zSql1 uintptr, zSql2 uintptr, zDb u } (*TIndex)(unsafe.Pointer(pIdx)).FnSampleCol = nIdxCol (*TIndex)(unsafe.Pointer(pIdx)).FmxSample = nSample - nByte = int32(uint64(40) * uint64(nSample)) - nByte = int32(uint64(nByte) + libc.Uint64FromInt64(8)*uint64(nIdxCol)*libc.Uint64FromInt32(3)*uint64(nSample)) - nByte = int32(uint64(nByte) + uint64(nIdxCol)*libc.Uint64FromInt64(8)) /* Space for Index.aAvgEq[] */ - (*TIndex)(unsafe.Pointer(pIdx)).FaSample = _sqlite3DbMallocZero(tls, db, uint64(nByte)) + nByte = int32(uint64(40) * uint64(uint64(nSample))) + nByte = int32(uint64(nByte) + libc.Uint64FromInt64(8)*uint64(uint64(nIdxCol))*libc.Uint64FromInt32(3)*uint64(uint64(nSample))) + nByte = int32(uint64(nByte) + uint64(uint64(nIdxCol))*libc.Uint64FromInt64(8)) /* Space for Index.aAvgEq[] */ + (*TIndex)(unsafe.Pointer(pIdx)).FaSample = _sqlite3DbMallocZero(tls, db, uint64(uint64(nByte))) if (*TIndex)(unsafe.Pointer(pIdx)).FaSample == uintptr(0) { Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) return int32(SQLITE_NOMEM) @@ -93364,11 +93890,11 @@ func _loadStat4(tls *libc.TLS, db uintptr, zDb uintptr) (r int32) { _, _, _, _ = pStat4, rc, v1, v2 rc = SQLITE_OK if v2 = (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0); v2 { - v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11612, zDb) + v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11737, zDb) pStat4 = v1 } if v2 && v1 != uintptr(0) && int32((*TTable)(unsafe.Pointer(pStat4)).FeTabType) == TABTYP_NORM { - rc = _loadStatTbl(tls, db, __ccgo_ts+11838, __ccgo_ts+11907, zDb) + rc = _loadStatTbl(tls, db, __ccgo_ts+11963, __ccgo_ts+12032, zDb) } return rc } @@ -93434,10 +93960,10 @@ func _sqlite3AnalysisLoad(tls *libc.TLS, db uintptr, iDb int32) (r int32) { /* Load new statistics out of the sqlite_stat1 table */ (*(*TanalysisInfo)(unsafe.Pointer(bp))).Fdb = db (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName - v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11586, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) + v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11711, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) pStat1 = v3 if v3 != 0 && int32((*TTable)(unsafe.Pointer(pStat1)).FeTabType) == TABTYP_NORM { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+11959, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+12084, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -93550,7 +94076,7 @@ func _resolveAttachExpr(tls *libc.TLS, pName uintptr, pExpr uintptr) (r int32) { // ** database iDb attached to handle db. // */ func _sqlite3DbIsNamed(tls *libc.TLS, db uintptr, iDb int32, zName uintptr) (r int32) { - return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6589, zName) == 0) + return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6653, zName) == 0) } // C documentation @@ -93592,21 +94118,21 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { zFile = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) zName = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if zFile == uintptr(0) { - zFile = __ccgo_ts + 1652 + zFile = __ccgo_ts + 1666 } if zName == uintptr(0) { - zName = __ccgo_ts + 1652 + zName = __ccgo_ts + 1666 } if int32(uint32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x4>>2)) != 0 { /* This is not a real ATTACH. Instead, this routine is being called ** from sqlite3_deserialize() to close database db->init.iDb and ** reopen it as a MemDB */ *(*uintptr)(unsafe.Pointer(bp + 40)) = uintptr(0) - *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+3971) + *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+4035) if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { return } - rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12000, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) + rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12125, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) if rc == SQLITE_OK { pNewSchema = _sqlite3SchemaGet(tls, db, *(*uintptr)(unsafe.Pointer(bp + 40))) if pNewSchema != 0 { @@ -93637,7 +94163,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { ** * Specified database name already being used. */ if (*Tsqlite3)(unsafe.Pointer(db)).FnDb >= *(*int32)(unsafe.Pointer(db + 136 + 7*4))+int32(2) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12003, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12128, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) goto attach_error } i = 0 @@ -93646,7 +94172,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { break } if _sqlite3DbIsNamed(tls, db, i, zName) != 0 { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12040, libc.VaList(bp+56, zName)) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12165, libc.VaList(bp+56, zName)) goto attach_error } goto _1 @@ -93658,13 +94184,13 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { ** hash tables. */ if (*Tsqlite3)(unsafe.Pointer(db)).FaDb == db+696 { - aNew = _sqlite3DbMallocRawNN(tls, db, libc.Uint64FromInt64(32)*libc.Uint64FromInt32(3)) + aNew = _sqlite3DbMallocRawNN(tls, db, uint64(libc.Uint64FromInt64(32)*libc.Uint64FromInt32(3))) if aNew == uintptr(0) { return } libc.Xmemcpy(tls, aNew, (*Tsqlite3)(unsafe.Pointer(db)).FaDb, libc.Uint64FromInt64(32)*libc.Uint64FromInt32(2)) } else { - aNew = _sqlite3DbRealloc(tls, db, (*Tsqlite3)(unsafe.Pointer(db)).FaDb, uint64(32)*uint64((*Tsqlite3)(unsafe.Pointer(db)).FnDb+libc.Int32FromInt32(1))) + aNew = _sqlite3DbRealloc(tls, db, (*Tsqlite3)(unsafe.Pointer(db)).FaDb, uint64(uint64(32)*uint64((*Tsqlite3)(unsafe.Pointer(db)).FnDb+libc.Int32FromInt32(1)))) if aNew == uintptr(0) { return } @@ -93694,7 +94220,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FnoSharedCache = uint8(0) if rc == int32(SQLITE_CONSTRAINT) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12070, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12195, 0) } else { if rc == SQLITE_OK { (*TDb)(unsafe.Pointer(pNew)).FpSchema = _sqlite3SchemaGet(tls, db, (*TDb)(unsafe.Pointer(pNew)).FpBt) @@ -93702,7 +94228,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { rc = int32(SQLITE_NOMEM) } else { if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Ffile_format != 0 && int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Fenc) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12099, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12224, 0) rc = int32(SQLITE_ERROR) } } @@ -93746,16 +94272,17 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)<= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12195, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12320, libc.VaList(bp+136, zName)) goto detach_error } if i < int32(2) { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12216, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12341, libc.VaList(bp+136, zName)) goto detach_error } if _sqlite3BtreeTxnState(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != SQLITE_TXN_NONE || _sqlite3BtreeIsInBackup(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != 0 { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12242, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12367, libc.VaList(bp+136, zName)) goto detach_error } /* If any TEMP triggers reference the schema being detached, move those @@ -93836,6 +94363,7 @@ func _detachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*TDb)(unsafe.Pointer(pDb)).FpSchema = uintptr(0) _sqlite3CollapseDatabaseArray(tls, db) return + goto detach_error detach_error: ; Xsqlite3_result_error(tls, context, bp, -int32(1)) @@ -93890,6 +94418,7 @@ func _codeAttach(tls *libc.TLS, pParse uintptr, type1 int32, pFunc uintptr, pAut */ _sqlite3VdbeAddOp1(tls, v, int32(OP_Expire), libc.BoolInt32(type1 == int32(SQLITE_ATTACH))) } + goto attach_end attach_end: ; _sqlite3ExprDelete(tls, db, pFilename) @@ -93911,7 +94440,7 @@ func _sqlite3Detach(tls *libc.TLS, pParse uintptr, pDbname uintptr) { var _detach_func = TFuncDef{ FnArg: int8(1), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12264, + FzName: __ccgo_ts + 12389, } func init() { @@ -93933,7 +94462,7 @@ func _sqlite3Attach(tls *libc.TLS, pParse uintptr, p uintptr, pDbname uintptr, p var _attach_func = TFuncDef{ FnArg: int8(3), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12278, + FzName: __ccgo_ts + 12403, } func init() { @@ -93959,7 +94488,7 @@ func _fixExprCb(tls *libc.TLS, p uintptr, pExpr uintptr) (r int32) { if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer((*TDbFixer)(unsafe.Pointer(pFix)).FpParse)).Fdb)).Finit1.Fbusy != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } else { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12292, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12417, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) return int32(WRC_Abort) } } @@ -93993,7 +94522,7 @@ func _fixSelectCb(tls *libc.TLS, p uintptr, pSelect uintptr) (r int32) { if int32((*TDbFixer)(unsafe.Pointer(pFix)).FbTemp) == 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { if iDb != _sqlite3FindDbName(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12316, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12441, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) return int32(WRC_Abort) } _sqlite3DbFree(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) @@ -94209,7 +94738,7 @@ func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uint // ** user-supplied authorization function returned an illegal value. // */ func _sqliteAuthBadReturnCode(tls *libc.TLS, pParse uintptr) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12362, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12487, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) } @@ -94237,11 +94766,11 @@ func _sqlite3AuthReadCol(tls *libc.TLS, pParse uintptr, zTab uintptr, zCol uintp } rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, int32(SQLITE_READ), zTab, zCol, zDb, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12385, libc.VaList(bp+8, zTab, zCol)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12510, libc.VaList(bp+8, zTab, zCol)) if (*Tsqlite3)(unsafe.Pointer(db)).FnDb > int32(2) || iDb != 0 { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12391, libc.VaList(bp+8, zDb, z)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12516, libc.VaList(bp+8, zDb, z)) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12397, libc.VaList(bp+8, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12522, libc.VaList(bp+8, z)) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != int32(SQLITE_IGNORE) && rc != SQLITE_OK { @@ -94301,7 +94830,7 @@ func _sqlite3AuthRead(tls *libc.TLS, pParse uintptr, pExpr uintptr, pSchema uint if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName } else { - zCol = __ccgo_ts + 7909 + zCol = __ccgo_ts + 8034 } } if int32(SQLITE_IGNORE) == _sqlite3AuthReadCol(tls, pParse, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol, iDb) { @@ -94336,7 +94865,7 @@ func _sqlite3AuthCheck(tls *libc.TLS, pParse uintptr, code int32, zArg1 uintptr, ** parameters can be either NULL or a string. */ rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, code, zArg1, zArg2, zArg3, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12424, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12549, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != SQLITE_OK && rc != int32(SQLITE_IGNORE) { @@ -94452,7 +94981,7 @@ func _lockTable(tls *libc.TLS, pParse uintptr, iDb int32, iTab TPgno, isWriteLoc i++ } nBytes = int32(uint64(24) * uint64((*TParse)(unsafe.Pointer(pToplevel)).FnTableLock+libc.Int32FromInt32(1))) - (*TParse)(unsafe.Pointer(pToplevel)).FaTableLock = _sqlite3DbReallocOrFree(tls, (*TParse)(unsafe.Pointer(pToplevel)).Fdb, (*TParse)(unsafe.Pointer(pToplevel)).FaTableLock, uint64(nBytes)) + (*TParse)(unsafe.Pointer(pToplevel)).FaTableLock = _sqlite3DbReallocOrFree(tls, (*TParse)(unsafe.Pointer(pToplevel)).Fdb, (*TParse)(unsafe.Pointer(pToplevel)).FaTableLock, uint64(uint64(nBytes))) if (*TParse)(unsafe.Pointer(pToplevel)).FaTableLock != 0 { v4 = pToplevel + 156 v3 = *(*int32)(unsafe.Pointer(v4)) @@ -94757,21 +95286,21 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp if i >= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { /* No match against the official names. But always match "main" ** to schema 0 as a legacy fallback. */ - if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6589) == 0 { + if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6653) == 0 { i = 0 } else { return uintptr(0) } } p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, zName) - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6529, int32(7)) == 0 { + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6593, int32(7)) == 0 { if i == int32(1) { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6556+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6575+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6070+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6537) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6620+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6639+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6134+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6601) } } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6575+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6070) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6639+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6134) } } } @@ -94801,12 +95330,12 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp ; i++ } - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6529, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6575+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6070) + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6593, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6639+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6134) } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6556+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6537) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6620+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6601) } } } @@ -94844,7 +95373,7 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt ** can be an eponymous virtual table. */ if int32((*TParse)(unsafe.Pointer(pParse)).FprepFlags)&int32(SQLITE_PREPARE_NO_VTAB) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 { pMod = _sqlite3HashFind(tls, db+576, zName) - if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12439, int32(7)) == 0 { + if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12564, int32(7)) == 0 { pMod = _sqlite3PragmaVtabRegister(tls, db, zName) } if pMod != 0 && _sqlite3VtabEponymousTableInit(tls, pParse, pMod) != 0 { @@ -94862,15 +95391,15 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt } if p == uintptr(0) { if flags&uint32(LOCATE_VIEW) != 0 { - v1 = __ccgo_ts + 12447 + v1 = __ccgo_ts + 12572 } else { - v1 = __ccgo_ts + 12460 + v1 = __ccgo_ts + 12585 } zMsg = v1 if zDbase != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6793, libc.VaList(bp+8, zMsg, zDbase, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6857, libc.VaList(bp+8, zMsg, zDbase, zName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6803, libc.VaList(bp+8, zMsg, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6928, libc.VaList(bp+8, zMsg, zName)) } } else { } @@ -94908,12 +95437,12 @@ func _sqlite3LocateTableItem(tls *libc.TLS, pParse uintptr, flags Tu32, p uintpt // ** names into the new preferred names, as appropriate. // */ func _sqlite3PreferredTableName(tls *libc.TLS, zName uintptr) (r uintptr) { - if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6529, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6070+7) == 0 { - return __ccgo_ts + 6575 + if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6593, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6134+7) == 0 { + return __ccgo_ts + 6639 } - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6537+7) == 0 { - return __ccgo_ts + 6556 + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6601+7) == 0 { + return __ccgo_ts + 6620 } } return zName @@ -95227,7 +95756,7 @@ func _sqlite3ColumnSetColl(tls *libc.TLS, db uintptr, pCol uintptr, zColl uintpt zNew = _sqlite3DbRealloc(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(nColl+n)) if zNew != 0 { (*TColumn)(unsafe.Pointer(pCol)).FzCnName = zNew - libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n), zColl, uint64(nColl)) + libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n), zColl, uint64(uint64(nColl))) p1 = pCol + 14 *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(COLFLAG_HASCOLL)) } @@ -95438,7 +95967,7 @@ func _sqlite3OpenSchemaTable(tls *libc.TLS, p uintptr, iDb int32) { var v uintptr _ = v v = _sqlite3GetVdbe(tls, p) - _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6070) + _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6134) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_OpenWrite), 0, int32(SCHEMA_ROOT), iDb, int32(5)) if (*TParse)(unsafe.Pointer(p)).FnTab == 0 { (*TParse)(unsafe.Pointer(p)).FnTab = int32(1) @@ -95470,7 +95999,7 @@ func _sqlite3FindDbName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) { } /* "main" is always an acceptable alias for the primary database ** even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME. */ - if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6589, zName) { + if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6653, zName) { break } goto _1 @@ -95528,13 +96057,13 @@ func _sqlite3TwoPartName(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12474, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12599, 0) return -int32(1) } *(*uintptr)(unsafe.Pointer(pUnqual)) = pName2 iDb = _sqlite3FindDb(tls, db, pName1) if iDb < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12491, libc.VaList(bp+8, pName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12616, libc.VaList(bp+8, pName1)) return -int32(1) } } else { @@ -95578,12 +96107,12 @@ func _sqlite3CheckObjectName(tls *libc.TLS, pParse uintptr, zName uintptr, zType } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if Xsqlite3_stricmp(tls, zType, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit))) != 0 || Xsqlite3_stricmp(tls, zName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 1*8))) != 0 || Xsqlite3_stricmp(tls, zTblName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 2*8))) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1652, 0) /* corruptSchema() will supply the error */ + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1666, 0) /* corruptSchema() will supply the error */ return int32(SQLITE_ERROR) } } else { - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6529, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12511, libc.VaList(bp+8, zName)) + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6593, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12636, libc.VaList(bp+8, zName)) return int32(SQLITE_ERROR) } } @@ -95627,8 +96156,8 @@ func _sqlite3TableColumnToIndex(tls *libc.TLS, pIdx uintptr, iCol Ti16) (r Ti16) if !(i < int32((*TIndex)(unsafe.Pointer(pIdx)).FnColumn)) { break } - if int32(iCol) == int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) { - return int16(i) + if int32(int32(iCol)) == int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) { + return int16(int16(i)) } goto _1 _1: @@ -95657,7 +96186,7 @@ func _sqlite3StorageColumnToTable(tls *libc.TLS, pTab uintptr, iCol Ti16) (r Ti1 if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasVirtual) != 0 { i = 0 for { - if !(i <= int32(iCol)) { + if !(i <= int32(int32(iCol))) { break } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) != 0 { @@ -95714,13 +96243,13 @@ func _sqlite3TableColumnToStorage(tls *libc.TLS, pTab uintptr, iCol Ti16) (r Ti1 var i int32 var n Ti16 _, _ = i, n - if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasVirtual) == uint32(0) || int32(iCol) < 0 { + if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasVirtual) == uint32(0) || int32(int32(iCol)) < 0 { return iCol } i = 0 n = libc.Int16FromInt32(0) for { - if !(i < int32(iCol)) { + if !(i < int32(int32(iCol))) { break } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { @@ -95733,7 +96262,7 @@ func _sqlite3TableColumnToStorage(tls *libc.TLS, pTab uintptr, iCol Ti16) (r Ti1 } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) != 0 { /* iCol is a virtual column itself */ - return int16(int32((*TTable)(unsafe.Pointer(pTab)).FnNVCol) + i - int32(n)) + return int16(int32((*TTable)(unsafe.Pointer(pTab)).FnNVCol) + i - int32(int32(n))) } else { /* iCol is a normal or stored column */ return n @@ -95798,9 +96327,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Special case: Parsing the sqlite_schema or sqlite_temp_schema schema */ iDb = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6537 + v1 = __ccgo_ts + 6601 } else { - v1 = __ccgo_ts + 6070 + v1 = __ccgo_ts + 6134 } zName = _sqlite3DbStrDup(tls, db, v1) *(*uintptr)(unsafe.Pointer(bp)) = pName1 @@ -95813,7 +96342,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 && (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) && iDb != int32(1) { /* If creating a temp table, the name may not be qualified. Unless ** the database name is "temp" anyway. */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12553, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12678, 0) return } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 { @@ -95829,9 +96358,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui return } if isView != 0 { - v2 = __ccgo_ts + 10800 + v2 = __ccgo_ts + 10925 } else { - v2 = __ccgo_ts + 9062 + v2 = __ccgo_ts + 9187 } if _sqlite3CheckObjectName(tls, pParse, zName, v2, zName) != 0 { goto begin_table_error @@ -95841,9 +96370,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui } zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp == int32(1) { - v3 = __ccgo_ts + 6537 + v3 = __ccgo_ts + 6601 } else { - v3 = __ccgo_ts + 6070 + v3 = __ccgo_ts + 6134 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto begin_table_error @@ -95867,11 +96396,11 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if pTable != 0 { if !(noErr != 0) { if int32((*TTable)(unsafe.Pointer(pTable)).FeTabType) == int32(TABTYP_VIEW) { - v4 = __ccgo_ts + 10800 + v4 = __ccgo_ts + 10925 } else { - v4 = __ccgo_ts + 9062 + v4 = __ccgo_ts + 9187 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12594, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12719, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) _sqlite3ForceNotReadOnly(tls, pParse) @@ -95879,7 +96408,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui goto begin_table_error } if _sqlite3FindIndex(tls, db, zName, zDb1) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12615, libc.VaList(bp+16, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12740, libc.VaList(bp+16, zName)) goto begin_table_error } } @@ -95967,6 +96496,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Normal (non-error) return. */ return /* If an error occurs, we jump here */ + goto begin_table_error begin_table_error: ; (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) @@ -96030,7 +96560,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { _, _, _ = db, pHash, pRet db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12650, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12775, 0) } else { } (*TParse)(unsafe.Pointer(pParse)).FbReturning = uint8(1) @@ -96046,7 +96576,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return } - Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+12684, libc.VaList(bp+8, pParse)) + Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+12809, libc.VaList(bp+8, pParse)) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.FzName = pRet + 196 (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Fop = uint8(TK_RETURNING) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Ftr_tm = uint8(TRIGGER_AFTER) @@ -96093,7 +96623,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok return } if int32((*TTable)(unsafe.Pointer(p)).FnCol)+int32(1) > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12704, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12829, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) return } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -96103,12 +96633,12 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok ** by the parser, we can sometimes end up with a typename that ends ** with "generated always". Check for this case and omit the surplus ** text. */ - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12727, int32(6)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12852, int32(6)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(6) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1)))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- } - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12734, int32(9)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12859, int32(9)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(9) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1)))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- @@ -96129,7 +96659,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok (*(*TToken)(unsafe.Pointer(bp + 16))).Fn = uint32(0) eType = uint8(i + int32(1)) affinity = _sqlite3StdTypeAffinity[i] - if int32(affinity) <= int32(SQLITE_AFF_TEXT) { + if int32(int32(affinity)) <= int32(SQLITE_AFF_TEXT) { szEst = uint8(5) } break @@ -96156,8 +96686,8 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok if !(i < int32((*TTable)(unsafe.Pointer(p)).FnCol)) { break } - if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FhName) == int32(hName) && _sqlite3StrICmp(tls, z, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FzCnName) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12744, libc.VaList(bp+40, z)) + if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FhName) == int32(int32(hName)) && _sqlite3StrICmp(tls, z, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FzCnName) == 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12869, libc.VaList(bp+40, z)) _sqlite3DbFree(tls, db, z) return } @@ -96180,7 +96710,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok /* If there is no type specified, columns have the default affinity ** 'BLOB' with a default size of 4 bytes. */ (*TColumn)(unsafe.Pointer(pCol)).Faffinity = affinity - libc.SetBitFieldPtr8Uint32(pCol+8, uint32(eType), 4, 0xf0) + libc.SetBitFieldPtr8Uint32(pCol+8, uint32(uint32(eType)), 4, 0xf0) (*TColumn)(unsafe.Pointer(pCol)).FszEst = szEst } else { zType = z + uintptr(_sqlite3Strlen30(tls, z)) + uintptr(1) @@ -96212,7 +96742,7 @@ func _sqlite3AddNotNull(tls *libc.TLS, pParse uintptr, onError int32) { return } pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(p)).FnCol)-int32(1))*16 - libc.SetBitFieldPtr8Uint32(pCol+8, uint32(uint8(onError)), 0, 0xf) + libc.SetBitFieldPtr8Uint32(pCol+8, uint32(uint8(uint8(onError))), 0, 0xf) *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(TF_HasNotNull) /* Set the uniqNotNull flag on any UNIQUE or PK indexes already created ** on this column. */ @@ -96286,19 +96816,19 @@ func _sqlite3AffinityType(tls *libc.TLS, zIn uintptr, pCol uintptr) (r int8) { if h == uint32(libc.Int32FromUint8('t')< 0 { goto generated_error } if pType != 0 { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13048, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13173, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { /* no-op */ } else { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13056, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13181, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { eType = uint8(COLFLAG_STORED) } else { goto generated_error } } } - if int32(eType) == int32(COLFLAG_VIRTUAL) { + if int32(int32(eType)) == int32(COLFLAG_VIRTUAL) { (*TTable)(unsafe.Pointer(pTab)).FnNVCol-- } p1 = pCol + 14 - *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | int32(eType)) - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(eType) + *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | int32(int32(eType))) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(uint32(eType)) if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { _makeColumnPartOfPrimaryKey(tls, pParse, pCol) /* For the error message */ } @@ -96673,9 +97204,11 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui _sqlite3ColumnSetExpr(tls, pParse, pTab, pCol, pExpr) pExpr = uintptr(0) goto generated_done + goto generated_error generated_error: ; - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13063, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13188, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + goto generated_done generated_done: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -96837,21 +97370,21 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { } n += _identLength(tls, (*TTable)(unsafe.Pointer(p)).FzName) if n < int32(50) { - zSep = __ccgo_ts + 1652 - zSep2 = __ccgo_ts + 13094 - zEnd = __ccgo_ts + 5110 + zSep = __ccgo_ts + 1666 + zSep2 = __ccgo_ts + 13219 + zEnd = __ccgo_ts + 5174 } else { - zSep = __ccgo_ts + 13096 - zSep2 = __ccgo_ts + 13100 - zEnd = __ccgo_ts + 13105 + zSep = __ccgo_ts + 13221 + zSep2 = __ccgo_ts + 13225 + zEnd = __ccgo_ts + 13230 } n += int32(35) + int32(6)*int32((*TTable)(unsafe.Pointer(p)).FnCol) - zStmt = _sqlite3DbMallocRaw(tls, uintptr(0), uint64(n)) + zStmt = _sqlite3DbMallocRaw(tls, uintptr(0), uint64(uint64(n))) if zStmt == uintptr(0) { _sqlite3OomFault(tls, db) return uintptr(0) } - Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13108, 0) + Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13233, 0) *(*int32)(unsafe.Pointer(bp)) = _sqlite3Strlen30(tls, zStmt) _identPut(tls, zStmt, bp, (*TTable)(unsafe.Pointer(p)).FzName) v2 = *(*int32)(unsafe.Pointer(bp)) @@ -96869,7 +97402,7 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { _identPut(tls, zStmt, bp, (*TColumn)(unsafe.Pointer(pCol)).FzCnName) zType = _azType1[int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity)-int32(SQLITE_AFF_BLOB)] len1 = _sqlite3Strlen30(tls, zType) - libc.Xmemcpy(tls, zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), zType, uint64(len1)) + libc.Xmemcpy(tls, zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), zType, uint64(uint64(len1))) *(*int32)(unsafe.Pointer(bp)) += len1 goto _3 _3: @@ -96877,17 +97410,17 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { i++ pCol += 16 } - Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3799, libc.VaList(bp+16, zEnd)) + Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3863, libc.VaList(bp+16, zEnd)) return zStmt } var _azType1 = [6]uintptr{ - 0: __ccgo_ts + 1652, - 1: __ccgo_ts + 13122, - 2: __ccgo_ts + 13128, - 3: __ccgo_ts + 13133, - 4: __ccgo_ts + 13138, - 5: __ccgo_ts + 13128, + 0: __ccgo_ts + 1666, + 1: __ccgo_ts + 13247, + 2: __ccgo_ts + 13253, + 3: __ccgo_ts + 13258, + 4: __ccgo_ts + 13263, + 5: __ccgo_ts + 13253, } // C documentation @@ -96903,23 +97436,23 @@ func _resizeIndexObject(tls *libc.TLS, db uintptr, pIdx uintptr, N int32) (r int if int32((*TIndex)(unsafe.Pointer(pIdx)).FnColumn) >= N { return SQLITE_OK } - nByte = int32((libc.Uint64FromInt64(8) + libc.Uint64FromInt64(2) + libc.Uint64FromInt64(2) + libc.Uint64FromInt32(1)) * uint64(N)) - zExtra = _sqlite3DbMallocZero(tls, db, uint64(nByte)) + nByte = int32((libc.Uint64FromInt64(8) + libc.Uint64FromInt64(2) + libc.Uint64FromInt64(2) + libc.Uint64FromInt32(1)) * uint64(uint64(N))) + zExtra = _sqlite3DbMallocZero(tls, db, uint64(uint64(nByte))) if zExtra == uintptr(0) { return int32(SQLITE_NOMEM) } libc.Xmemcpy(tls, zExtra, (*TIndex)(unsafe.Pointer(pIdx)).FazColl, uint64(8)*uint64((*TIndex)(unsafe.Pointer(pIdx)).FnColumn)) (*TIndex)(unsafe.Pointer(pIdx)).FazColl = zExtra - zExtra += uintptr(uint64(8) * uint64(N)) + zExtra += uintptr(uint64(8) * uint64(uint64(N))) libc.Xmemcpy(tls, zExtra, (*TIndex)(unsafe.Pointer(pIdx)).FaiRowLogEst, uint64(2)*uint64(int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)+libc.Int32FromInt32(1))) (*TIndex)(unsafe.Pointer(pIdx)).FaiRowLogEst = zExtra - zExtra += uintptr(uint64(2) * uint64(N)) + zExtra += uintptr(uint64(2) * uint64(uint64(N))) libc.Xmemcpy(tls, zExtra, (*TIndex)(unsafe.Pointer(pIdx)).FaiColumn, uint64(2)*uint64((*TIndex)(unsafe.Pointer(pIdx)).FnColumn)) (*TIndex)(unsafe.Pointer(pIdx)).FaiColumn = zExtra - zExtra += uintptr(uint64(2) * uint64(N)) + zExtra += uintptr(uint64(2) * uint64(uint64(N))) libc.Xmemcpy(tls, zExtra, (*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder, uint64((*TIndex)(unsafe.Pointer(pIdx)).FnColumn)) (*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder = zExtra - (*TIndex)(unsafe.Pointer(pIdx)).FnColumn = uint16(N) + (*TIndex)(unsafe.Pointer(pIdx)).FnColumn = uint16(uint16(N)) libc.SetBitFieldPtr16Uint32(pIdx+100, libc.Uint32FromInt32(1), 4, 0x10) return SQLITE_OK } @@ -96973,7 +97506,7 @@ func _estimateIndexWidth(tls *libc.TLS, pIdx uintptr) { break } x = *(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2)) - if int32(x) < 0 { + if int32(int32(x)) < 0 { v2 = int32(1) } else { v2 = int32((*(*TColumn)(unsafe.Pointer(aCol + uintptr(x)*16))).FszEst) @@ -97204,7 +97737,7 @@ func _convertToWithoutRowidTable(tls *libc.TLS, pParse uintptr, pTab uintptr) { ; i++ } - (*TIndex)(unsafe.Pointer(pPk)).FnKeyCol = uint16(j) + (*TIndex)(unsafe.Pointer(pPk)).FnKeyCol = uint16(uint16(j)) } libc.SetBitFieldPtr16Uint32(pPk+100, libc.Uint32FromInt32(1), 5, 0x20) if !(int32(uint32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x2>>1)) != 0) { @@ -97307,7 +97840,7 @@ func _convertToWithoutRowidTable(tls *libc.TLS, pParse uintptr, pTab uintptr) { break } if !(_hasColumn(tls, (*TIndex)(unsafe.Pointer(pPk)).FaiColumn, j, i) != 0) && int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { - *(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pPk)).FaiColumn + uintptr(j)*2)) = int16(i) + *(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pPk)).FaiColumn + uintptr(j)*2)) = int16(int16(i)) *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pPk)).FazColl + uintptr(j)*8)) = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) j++ } @@ -97461,13 +97994,13 @@ func _sqlite3ShadowTableName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr, tabOpts Tu32, pSelect uintptr) { bp := tls.Alloc(112) defer tls.Free(112) - var addrInsLoop, addrTop, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v4, v6, v8 int32 + var addrInsLoop, addrTop, iCsr, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v10, v4, v6, v8 int32 var colFlags Tu32 - var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v5, v7, v9 uintptr - var v10 Ti16 + var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v13, v5, v7, v9 uintptr + var v12 Ti16 var _ /* dest at bp+0 */ TSelectDest - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v4, v5, v6, v7, v8, v9 /* The new table */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iCsr, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v12, v13, v4, v5, v6, v7, v8, v9 /* The new table */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ if pEnd == uintptr(0) && pSelect == uintptr(0) { return } @@ -97489,7 +98022,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if pSelect != 0 || !(int32((*TTable)(unsafe.Pointer(p)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) && (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1652, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1666, 0) return } (*TTable)(unsafe.Pointer(p)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum @@ -97516,9 +98049,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(ii)*16 if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf0>>4)) == COLTYPE_CUSTOM { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_HASTYPE) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13144, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1652))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13269, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1666))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13177, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13302, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } return } else { @@ -97539,11 +98072,11 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* Special processing for WITHOUT ROWID Tables */ if tabOpts&uint32(TF_WithoutRowid) != 0 { if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13204, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13329, 0) return } if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasPrimaryKey) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13254, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13379, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) return } *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) @@ -97590,7 +98123,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ii1++ } if nNG == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13286, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13411, 0) return } } @@ -97624,12 +98157,12 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if int32((*TTable)(unsafe.Pointer(p)).FeTabType) == TABTYP_NORM { /* A regular table */ - zType = __ccgo_ts + 9062 - zType2 = __ccgo_ts + 13330 + zType = __ccgo_ts + 9187 + zType2 = __ccgo_ts + 13455 } else { /* A view */ - zType = __ccgo_ts + 10800 - zType2 = __ccgo_ts + 13336 + zType = __ccgo_ts + 10925 + zType2 = __ccgo_ts + 13461 } /* If this is a CREATE TABLE xx AS SELECT ..., execute the SELECT ** statement to populate the new table. The root-page number for the @@ -97644,28 +98177,31 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** a schema-lock excludes all other database users, the write-lock would ** be redundant. */ - if pSelect != 0 { /* A table that describes the SELECT results */ + if pSelect != 0 { /* Write cursor on the new table */ if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) (*TParse)(unsafe.Pointer(pParse)).FnErr++ return } - v5 = pParse + 56 - *(*int32)(unsafe.Pointer(v5))++ + v5 = pParse + 52 v4 = *(*int32)(unsafe.Pointer(v5)) - regYield = v4 + *(*int32)(unsafe.Pointer(v5))++ + iCsr = v4 v7 = pParse + 56 *(*int32)(unsafe.Pointer(v7))++ v6 = *(*int32)(unsafe.Pointer(v7)) - regRec = v6 + regYield = v6 v9 = pParse + 56 *(*int32)(unsafe.Pointer(v9))++ v8 = *(*int32)(unsafe.Pointer(v9)) - regRowid = v8 + regRec = v8 + v11 = pParse + 56 + *(*int32)(unsafe.Pointer(v11))++ + v10 = *(*int32)(unsafe.Pointer(v11)) + regRowid = v10 _sqlite3MayAbort(tls, pParse) - _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), int32(1), (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) + _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), iCsr, (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_P2ISREG)) - (*TParse)(unsafe.Pointer(pParse)).FnTab = int32(2) addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { @@ -97675,9 +98211,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr if pSelTab == uintptr(0) { return } - v10 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol - (*TTable)(unsafe.Pointer(p)).FnNVCol = v10 - (*TTable)(unsafe.Pointer(p)).FnCol = v10 + v12 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol + (*TTable)(unsafe.Pointer(p)).FnNVCol = v12 + (*TTable)(unsafe.Pointer(p)).FnCol = v12 (*TTable)(unsafe.Pointer(p)).FaCol = (*TTable)(unsafe.Pointer(pSelTab)).FaCol (*TTable)(unsafe.Pointer(pSelTab)).FnCol = 0 (*TTable)(unsafe.Pointer(pSelTab)).FaCol = uintptr(0) @@ -97692,33 +98228,33 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr addrInsLoop = _sqlite3VdbeAddOp1(tls, v, int32(OP_Yield), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSDParm) _sqlite3VdbeAddOp3(tls, v, int32(OP_MakeRecord), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst, (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst, regRec) _sqlite3TableAffinity(tls, v, p, 0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), int32(1), regRowid) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), int32(1), regRec, regRowid) + _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iCsr, regRowid) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iCsr, regRec, regRowid) _sqlite3VdbeGoto(tls, v, addrInsLoop) _sqlite3VdbeJumpHere(tls, v, addrInsLoop) - _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), int32(1)) + _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), iCsr) } /* Compute the complete text of the CREATE statement */ if pSelect != 0 { zStmt = _createTableStmt(tls, db, p) } else { if tabOpts != 0 { - v11 = pParse + 288 + v13 = pParse + 288 } else { - v11 = pEnd + v13 = pEnd } - pEnd2 = v11 + pEnd2 = v13 n = int32(int64((*TToken)(unsafe.Pointer(pEnd2)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) if int32(*(*int8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pEnd2)).Fz))) != int32(';') { n = int32(uint32(n) + (*TToken)(unsafe.Pointer(pEnd2)).Fn) } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13341, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13466, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) } /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13356, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13481, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) _sqlite3DbFree(tls, db, zStmt) _sqlite3ChangeCookie(tls, pParse, iDb) /* Check to see if we need to create an sqlite_sequence table for @@ -97727,17 +98263,16 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != uint32(0) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != libc.Int32FromInt32(PARSE_MODE_NORMAL)) { pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).FpSeqTab == uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13454, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13579, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) } } /* Reparse everything to update our internal data structures */ - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13496, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13621, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) /* Test for cycles in generated columns and illegal expressions ** in CHECK constraints and in DEFAULT clauses. */ if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasGenerated) != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13530, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(0x0001), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13655, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13551, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } /* Add the table to the in-memory representation of the database. */ @@ -97754,7 +98289,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* If this is the magic sqlite_sequence table used by autoincrement, ** then record a pointer to this table in the main database structure ** so that INSERT can find the table easily. */ - if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9584) == 0 { + if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9709) == 0 { (*TSchema)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FpSchema)).FpSeqTab = p } } @@ -97787,7 +98322,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*uintptr)(unsafe.Pointer(bp + 112)) = uintptr(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if int32((*TParse)(unsafe.Pointer(pParse)).FnVar) > 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13583, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13676, 0) goto create_view_fail } _sqlite3StartTable(tls, pParse, pName1, pName2, isTemp, int32(1), 0, noErr) @@ -97804,7 +98339,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(TF_NoVisibleRowid) /* Never allow rowid in view */ _sqlite3TwoPartName(tls, pParse, pName1, pName2, bp+112) iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(p)).FpSchema) - _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+10800, *(*uintptr)(unsafe.Pointer(bp + 112))) + _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+10925, *(*uintptr)(unsafe.Pointer(bp + 112))) if _sqlite3FixSelect(tls, bp+16, pSelect) != 0 { goto create_view_fail } @@ -97846,6 +98381,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui (*(*TToken)(unsafe.Pointer(bp))).Fn = uint32(1) /* Use sqlite3EndTable() to add the view to the schema table */ _sqlite3EndTable(tls, pParse, uintptr(0), bp, uint32(0), uintptr(0)) + goto create_view_fail create_view_fail: ; _sqlite3SelectDelete(tls, db, pSelect) @@ -97899,7 +98435,7 @@ func _viewGetColumnNames(tls *libc.TLS, pParse uintptr, pTable uintptr) (r int32 ** SELECT * FROM temp.ex1; */ if int32((*TTable)(unsafe.Pointer(pTable)).FnCol) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13619, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13712, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) return int32(1) } /* If we get this far, it means we need to compute the table names. @@ -98083,7 +98619,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { v = _sqlite3GetVdbe(tls, pParse) r1 = _sqlite3GetTempReg(tls, pParse) if iTable < int32(2) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13649, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13742, 0) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Destroy), iTable, r1, iDb) _sqlite3MayAbort(tls, pParse) @@ -98096,7 +98632,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { ** is in register NNN. See grammar rules associated with the TK_REGISTER ** token for additional information. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13664, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13757, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) _sqlite3ReleaseTempReg(tls, pParse, r1) } @@ -98154,7 +98690,7 @@ func _destroyTable(tls *libc.TLS, pParse uintptr, pTab uintptr) { return } else { iDb = _sqlite3SchemaToIndex(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - _destroyRootPage(tls, pParse, int32(iLargest), iDb) + _destroyRootPage(tls, pParse, int32(int32(iLargest)), iDb) iDestroyed = iLargest } } @@ -98179,9 +98715,9 @@ func _sqlite3ClearStatTables(tls *libc.TLS, pParse uintptr, iDb int32, zType uin if !(i <= int32(4)) { break } - Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13731, libc.VaList(bp+32, i)) + Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13824, libc.VaList(bp+32, i)) if _sqlite3FindTable(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, bp, zDbName) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11689, libc.VaList(bp+32, zDbName, bp, zType, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11814, libc.VaList(bp+32, zDbName, bp, zType, zName)) } goto _1 _1: @@ -98222,7 +98758,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** move as a result of the drop (can happen in auto-vacuum mode). */ if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13745, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13838, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* Drop all entries in the schema table that refer to the ** table. The program name loops through the schema table and deletes @@ -98231,7 +98767,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** created in the temp database that refers to a table in another ** database. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13790, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13883, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !(isView != 0) && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { _destroyTable(tls, pParse, pTab) } @@ -98266,11 +98802,11 @@ func _sqlite3ReadOnlyShadowTables(tls *libc.TLS, db uintptr) (r int32) { // ** Return true if it is not allowed to drop the given table // */ func _tableMayNotBeDropped(tls *libc.TLS, db uintptr, pTab uintptr) (r int32) { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6529, int32(7)) == 0 { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3422, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6593, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3486, int32(4)) == 0 { return 0 } - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7270, int32(10)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7395, int32(10)) == 0 { return 0 } return int32(1) @@ -98306,7 +98842,7 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 if noErr != 0 { (*Tsqlite3)(unsafe.Pointer(db)).FsuppressErr++ } - pTab = _sqlite3LocateTableItem(tls, pParse, uint32(isView), pName+8) + pTab = _sqlite3LocateTableItem(tls, pParse, uint32(uint32(isView)), pName+8) if noErr != 0 { (*Tsqlite3)(unsafe.Pointer(db)).FsuppressErr-- } @@ -98325,9 +98861,9 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6537 + v1 = __ccgo_ts + 6601 } else { - v1 = __ccgo_ts + 6070 + v1 = __ccgo_ts + 6134 } zTab = v1 zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName @@ -98360,18 +98896,18 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if _tableMayNotBeDropped(tls, db, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13857, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13950, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Ensure DROP TABLE is not used on a view, and DROP VIEW is not used ** on a table. */ if isView != 0 && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13885, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13978, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } if !(isView != 0) && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13919, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14012, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Generate code to remove the table from the schema table @@ -98381,11 +98917,12 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) if !(isView != 0) { - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11801, (*TTable)(unsafe.Pointer(pTab)).FzName) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11926, (*TTable)(unsafe.Pointer(pTab)).FzName) _sqlite3FkDropTable(tls, pParse, pName, pTab) } _sqlite3CodeDropTable(tls, pParse, pTab, iDb, isView) } + goto exit_drop_table exit_drop_table: ; _sqlite3SrcListDelete(tls, db, pName) @@ -98428,13 +98965,13 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p goto fk_end } if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13951, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14044, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) goto fk_end } nCol = int32(1) } else { if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14014, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14107, 0) goto fk_end } else { nCol = (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr @@ -98454,7 +98991,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p i++ } } - pFKey = _sqlite3DbMallocZero(tls, db, uint64(nByte)) + pFKey = _sqlite3DbMallocZero(tls, db, uint64(uint64(nByte))) if pFKey == uintptr(0) { goto fk_end } @@ -98497,7 +99034,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p j++ } if j >= int32((*TTable)(unsafe.Pointer(p)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14108, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14201, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) goto fk_end } if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { @@ -98520,7 +99057,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameTokenRemap(tls, pParse, z, (*(*TExprList_item)(unsafe.Pointer(pToCol + 8 + uintptr(i)*32))).FzEName) } - libc.Xmemcpy(tls, z, (*(*TExprList_item)(unsafe.Pointer(pToCol + 8 + uintptr(i)*32))).FzEName, uint64(n)) + libc.Xmemcpy(tls, z, (*(*TExprList_item)(unsafe.Pointer(pToCol + 8 + uintptr(i)*32))).FzEName, uint64(uint64(n))) *(*int8)(unsafe.Pointer(z + uintptr(n))) = 0 z += uintptr(n + int32(1)) goto _4 @@ -98549,6 +99086,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p FpDfltList uintptr })(unsafe.Pointer(p + 64))).FpFKey = pFKey pFKey = uintptr(0) + goto fk_end fk_end: ; _sqlite3DbFree(tls, db, pFKey) @@ -98586,7 +99124,7 @@ func _sqlite3DeferForeignKey(tls *libc.TLS, pParse uintptr, isDeferred int32) { return } /* EV: R-30323-21917 */ - (*TFKey)(unsafe.Pointer(pFKey)).FisDeferred = uint8(isDeferred) + (*TFKey)(unsafe.Pointer(pFKey)).FisDeferred = uint8(uint8(isDeferred)) } // C documentation @@ -98631,7 +99169,7 @@ func _sqlite3RefillIndex(tls *libc.TLS, pParse uintptr, pIndex uintptr, memRootP return } if memRootPage >= 0 { - tnum = uint32(memRootPage) + tnum = uint32(uint32(memRootPage)) } else { tnum = (*TIndex)(unsafe.Pointer(pIndex)).Ftnum } @@ -98654,9 +99192,9 @@ func _sqlite3RefillIndex(tls *libc.TLS, pParse uintptr, pIndex uintptr, memRootP _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iTab, addr1+int32(1)) _sqlite3VdbeJumpHere(tls, v, addr1) if memRootPage < 0 { - _sqlite3VdbeAddOp2(tls, v, int32(OP_Clear), int32(tnum), iDb) + _sqlite3VdbeAddOp2(tls, v, int32(OP_Clear), int32(int32(tnum)), iDb) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenWrite), iIdx, int32(tnum), iDb, pKey, -int32(8)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenWrite), iIdx, int32(int32(tnum)), iDb, pKey, -int32(8)) if memRootPage >= 0 { v7 = int32(OPFLAG_P2ISREG) } else { @@ -98714,20 +99252,20 @@ func _sqlite3RefillIndex(tls *libc.TLS, pParse uintptr, pIndex uintptr, memRootP func _sqlite3AllocateIndexObject(tls *libc.TLS, db uintptr, nCol Ti16, nExtra int32, ppExtra uintptr) (r uintptr) { var nByte int32 var p, pExtra uintptr - _, _, _ = nByte, p, pExtra /* Bytes of space for Index object + arrays */ - nByte = int32((libc.Uint64FromInt64(160)+libc.Uint64FromInt32(7))&uint64(^libc.Int32FromInt32(7)) + (uint64(8)*uint64(nCol)+uint64(7))&uint64(^libc.Int32FromInt32(7)) + (uint64(2)*uint64(int32(nCol)+libc.Int32FromInt32(1))+uint64(2)*uint64(nCol)+uint64(1)*uint64(nCol)+uint64(7))&uint64(^libc.Int32FromInt32(7))) /* Index.aSortOrder */ + _, _, _ = nByte, p, pExtra /* Bytes of space for Index object + arrays */ + nByte = int32((libc.Uint64FromInt64(160)+libc.Uint64FromInt32(7))&uint64(^libc.Int32FromInt32(7)) + (uint64(8)*uint64(uint64(nCol))+uint64(7))&uint64(^libc.Int32FromInt32(7)) + (uint64(2)*uint64(int32(int32(nCol))+libc.Int32FromInt32(1))+uint64(2)*uint64(uint64(nCol))+uint64(1)*uint64(uint64(nCol))+uint64(7))&uint64(^libc.Int32FromInt32(7))) /* Index.aSortOrder */ p = _sqlite3DbMallocZero(tls, db, uint64(nByte+nExtra)) if p != 0 { pExtra = p + uintptr((libc.Uint64FromInt64(160)+libc.Uint64FromInt32(7))&uint64(^libc.Int32FromInt32(7))) (*TIndex)(unsafe.Pointer(p)).FazColl = pExtra - pExtra += uintptr((libc.Uint64FromInt64(8)*uint64(nCol) + libc.Uint64FromInt32(7)) & uint64(^libc.Int32FromInt32(7))) + pExtra += uintptr((libc.Uint64FromInt64(8)*uint64(uint64(nCol)) + libc.Uint64FromInt32(7)) & uint64(^libc.Int32FromInt32(7))) (*TIndex)(unsafe.Pointer(p)).FaiRowLogEst = pExtra - pExtra += uintptr(uint64(2) * uint64(int32(nCol)+libc.Int32FromInt32(1))) + pExtra += uintptr(uint64(2) * uint64(int32(int32(nCol))+libc.Int32FromInt32(1))) (*TIndex)(unsafe.Pointer(p)).FaiColumn = pExtra - pExtra += uintptr(uint64(2) * uint64(nCol)) + pExtra += uintptr(uint64(2) * uint64(uint64(nCol))) (*TIndex)(unsafe.Pointer(p)).FaSortOrder = pExtra - (*TIndex)(unsafe.Pointer(p)).FnColumn = uint16(nCol) - (*TIndex)(unsafe.Pointer(p)).FnKeyCol = uint16(int32(nCol) - int32(1)) + (*TIndex)(unsafe.Pointer(p)).FnColumn = uint16(uint16(nCol)) + (*TIndex)(unsafe.Pointer(p)).FnKeyCol = uint16(int32(int32(nCol)) - int32(1)) *(*uintptr)(unsafe.Pointer(ppExtra)) = p + uintptr(nByte) } return p @@ -98755,12 +99293,12 @@ func _sqlite3HasExplicitNulls(tls *libc.TLS, pParse uintptr, pList uintptr) (r i } if int32(uint32(*(*uint16)(unsafe.Pointer(pList + 8 + uintptr(i)*32 + 16 + 4))&0x20>>5)) != 0 { sf = (*(*TExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32))).Ffg.FsortFlags - if int32(sf) == 0 || int32(sf) == int32(3) { - v2 = __ccgo_ts + 14154 + if int32(int32(sf)) == 0 || int32(int32(sf)) == int32(3) { + v2 = __ccgo_ts + 14247 } else { - v2 = __ccgo_ts + 14160 + v2 = __ccgo_ts + 14253 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14165, libc.VaList(bp+8, v2)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14258, libc.VaList(bp+8, v2)) return int32(1) } goto _1 @@ -98807,7 +99345,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { goto exit_create_index } - if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) == int32(PARSE_MODE_DECLARE_VTAB) && int32(idxType) != int32(SQLITE_IDXTYPE_PRIMARYKEY) { + if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) == int32(PARSE_MODE_DECLARE_VTAB) && int32(int32(idxType)) != int32(SQLITE_IDXTYPE_PRIMARYKEY) { goto exit_create_index } if SQLITE_OK != _sqlite3ReadSchema(tls, pParse) { @@ -98838,7 +99376,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = int32(1) } } - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14193, *(*uintptr)(unsafe.Pointer(bp + 96))) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14286, *(*uintptr)(unsafe.Pointer(bp + 96))) if _sqlite3FixSrcList(tls, bp, pTblName) != 0 { /* Because the parser constructs pTblName from a single identifier, ** sqlite3FixSrcList can never fail. */ @@ -98848,7 +99386,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } if iDb == int32(1) && (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema != (*TTable)(unsafe.Pointer(pTab)).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14199, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14292, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { @@ -98862,16 +99400,16 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6529, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14249, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6593, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14342, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14277, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14370, 0) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14302, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14395, 0) goto exit_create_index } /* @@ -98892,19 +99430,19 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if zName == uintptr(0) { goto exit_create_index } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14193, (*TTable)(unsafe.Pointer(pTab)).FzName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14286, (*TTable)(unsafe.Pointer(pTab)).FzName) { goto exit_create_index } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if !((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0) { if _sqlite3FindTable(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14336, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14429, libc.VaList(bp+136, zName)) goto exit_create_index } } if _sqlite3FindIndex(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { if !(ifNotExist != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14370, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14463, libc.VaList(bp+136, zName)) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) _sqlite3ForceNotReadOnly(tls, pParse) @@ -98925,7 +99463,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pLoop = (*TIndex)(unsafe.Pointer(pLoop)).FpNext n++ } - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14394, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14487, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) if zName == uintptr(0) { goto exit_create_index } @@ -98943,9 +99481,9 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { zDb = (*TDb)(unsafe.Pointer(pDb)).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6537 + v2 = __ccgo_ts + 6601 } else { - v2 = __ccgo_ts + 6070 + v2 = __ccgo_ts + 6134 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v2, uintptr(0), zDb) != 0 { goto exit_create_index @@ -98973,7 +99511,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } _sqlite3ExprListSetSortOrder(tls, pList, sortOrder, -int32(1)) } else { - _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14193) + _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14286) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { goto exit_create_index } @@ -99013,9 +99551,9 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u *(*uintptr)(unsafe.Pointer(bp + 104)) += uintptr(nName + int32(1)) libc.Xmemcpy(tls, (*TIndex)(unsafe.Pointer(pIndex)).FzName, zName, uint64(nName+int32(1))) (*TIndex)(unsafe.Pointer(pIndex)).FpTable = pTab - (*TIndex)(unsafe.Pointer(pIndex)).FonError = uint8(onError) + (*TIndex)(unsafe.Pointer(pIndex)).FonError = uint8(uint8(onError)) libc.SetBitFieldPtr16Uint32(pIndex+100, libc.BoolUint32(onError != libc.Int32FromInt32(OE_None)), 3, 0x8) - libc.SetBitFieldPtr16Uint32(pIndex+100, uint32(idxType), 0, 0x3) + libc.SetBitFieldPtr16Uint32(pIndex+100, uint32(uint32(idxType)), 0, 0x3) (*TIndex)(unsafe.Pointer(pIndex)).FpSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema (*TIndex)(unsafe.Pointer(pIndex)).FnKeyCol = uint16((*TExprList)(unsafe.Pointer(pList)).FnExpr) if pPIWhere != 0 { @@ -99057,7 +99595,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pCExpr = _sqlite3ExprSkipCollate(tls, (*TExprList_item)(unsafe.Pointer(pListItem)).FpExpr) if int32((*TExpr)(unsafe.Pointer(pCExpr)).Fop) != int32(TK_COLUMN) { if pTab == (*TParse)(unsafe.Pointer(pParse)).FpNewTable { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14417, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14510, 0) goto exit_create_index } if (*TIndex)(unsafe.Pointer(pIndex)).FaColExpr == uintptr(0) { @@ -99081,13 +99619,13 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 12, 0x1000) } } - *(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIndex)).FaiColumn + uintptr(i)*2)) = int16(j) + *(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIndex)).FaiColumn + uintptr(i)*2)) = int16(int16(j)) } zColl = uintptr(0) if int32((*TExpr)(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(pListItem)).FpExpr)).Fop) == int32(TK_COLLATE) { zColl = *(*uintptr)(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(pListItem)).FpExpr + 8)) nColl = _sqlite3Strlen30(tls, zColl) + int32(1) - libc.Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(bp + 104)), zColl, uint64(nColl)) + libc.Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(bp + 104)), zColl, uint64(uint64(nColl))) zColl = *(*uintptr)(unsafe.Pointer(bp + 104)) *(*uintptr)(unsafe.Pointer(bp + 104)) += uintptr(nColl) nExtra -= nColl @@ -99104,7 +99642,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIndex)).FazColl + uintptr(i)*8)) = zColl requestedSortOrder = int32((*TExprList_item)(unsafe.Pointer(pListItem)).Ffg.FsortFlags) & sortOrderMask - *(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIndex)).FaSortOrder + uintptr(i))) = uint8(requestedSortOrder) + *(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIndex)).FaSortOrder + uintptr(i))) = uint8(uint8(requestedSortOrder)) goto _6 _6: ; @@ -99125,7 +99663,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if _isDupColumn(tls, pIndex, int32((*TIndex)(unsafe.Pointer(pIndex)).FnKeyCol), pPk, j) != 0 { (*TIndex)(unsafe.Pointer(pIndex)).FnColumn-- } else { - *(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIndex)).FaiColumn + uintptr(i)*2)) = int16(x) + *(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIndex)).FaiColumn + uintptr(i)*2)) = int16(int16(x)) *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIndex)).FazColl + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pPk)).FazColl + uintptr(j)*8)) *(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIndex)).FaSortOrder + uintptr(i))) = *(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pPk)).FaSortOrder + uintptr(j))) i++ @@ -99156,7 +99694,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if j == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { goto _8 } - if int32(_sqlite3TableColumnToIndex(tls, pIndex, int16(j))) >= 0 { + if int32(_sqlite3TableColumnToIndex(tls, pIndex, int16(int16(j)))) >= 0 { goto _8 } libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 5, 0x20) @@ -99204,14 +99742,14 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u ** explicitly specified behavior for the index. */ if !(int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) || int32((*TIndex)(unsafe.Pointer(pIndex)).FonError) == int32(OE_Default)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14478, libc.VaList(bp+136, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14571, libc.VaList(bp+136, 0)) } if int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) { (*TIndex)(unsafe.Pointer(pIdx)).FonError = (*TIndex)(unsafe.Pointer(pIndex)).FonError } } - if int32(idxType) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { - libc.SetBitFieldPtr16Uint32(pIdx+100, uint32(idxType), 0, 0x3) + if int32(int32(idxType)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { + libc.SetBitFieldPtr16Uint32(pIdx+100, uint32(uint32(idxType)), 0, 0x3) } if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { (*TIndex)(unsafe.Pointer(pIndex)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpNewIndex @@ -99234,8 +99772,8 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != uintptr(0) { (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14520, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125123)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14613, 0) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125741)) goto exit_create_index } } @@ -99275,11 +99813,11 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* A named index with an explicit CREATE INDEX statement */ if onError == OE_None { - v13 = __ccgo_ts + 1652 + v13 = __ccgo_ts + 1666 } else { - v13 = __ccgo_ts + 14537 + v13 = __ccgo_ts + 14630 } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14545, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14638, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) } else { /* An automatic index created by a PRIMARY KEY or UNIQUE constraint */ /* zStmt = sqlite3MPrintf(""); */ @@ -99287,7 +99825,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* Add an entry in sqlite_schema for this index */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14565, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14658, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) _sqlite3DbFree(tls, db, zStmt) /* Fill the index with data and reparse the schema. Code an OP_Expire ** to invalidate all pre-compiled statements. @@ -99295,7 +99833,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != 0 { _sqlite3RefillIndex(tls, pParse, pIndex, iMem) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14624, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14717, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Expire), 0, int32(1)) } _sqlite3VdbeJumpHere(tls, v, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum)) @@ -99313,6 +99851,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } } /* Clean up before exiting */ + goto exit_create_index exit_create_index: ; if pIndex != 0 { @@ -99397,7 +99936,7 @@ func _sqlite3DefaultRowEst(tls *libc.TLS, pIdx uintptr) { ** stat1 data to be ignored by the query planner. */ x = (*TTable)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FpTable)).FnRowLogEst - if int32(x) < int32(99) { + if int32(int32(x)) < int32(99) { v2 = libc.Int16FromInt32(99) x = v2 (*TTable)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FpTable)).FnRowLogEst = v2 @@ -99408,7 +99947,7 @@ func _sqlite3DefaultRowEst(tls *libc.TLS, pIdx uintptr) { *(*TLogEst)(unsafe.Pointer(a)) = x /* Estimate that a[1] is 10, a[2] is 9, a[3] is 8, a[4] is 7, a[5] is ** 6 and each subsequent value (if any) is 5. */ - libc.Xmemcpy(tls, a+1*2, uintptr(unsafe.Pointer(&_aVal)), uint64(nCopy)*uint64(2)) + libc.Xmemcpy(tls, a+1*2, uintptr(unsafe.Pointer(&_aVal)), uint64(uint64(nCopy))*uint64(2)) i = nCopy + int32(1) for { if !(i <= int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)) { @@ -99457,7 +99996,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pIndex = _sqlite3FindIndex(tls, db, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzName, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) if pIndex == uintptr(0) { if !(ifExists != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14651, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14744, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) _sqlite3ForceNotReadOnly(tls, pParse) @@ -99466,7 +100005,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in goto exit_drop_index } if int32(uint32(*(*uint16)(unsafe.Pointer(pIndex + 100))&0x3>>0)) != SQLITE_IDXTYPE_APPDEF { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14669, libc.VaList(bp+8, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14762, libc.VaList(bp+8, 0)) goto exit_drop_index } iDb = _sqlite3SchemaToIndex(tls, db, (*TIndex)(unsafe.Pointer(pIndex)).FpSchema) @@ -99474,9 +100013,9 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pTab = (*TIndex)(unsafe.Pointer(pIndex)).FpTable zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6537 + v1 = __ccgo_ts + 6601 } else { - v1 = __ccgo_ts + 6070 + v1 = __ccgo_ts + 6134 } zTab = v1 if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_DELETE), zTab, uintptr(0), zDb) != 0 { @@ -99492,12 +100031,13 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in v = _sqlite3GetVdbe(tls, pParse) if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14742, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11797, (*TIndex)(unsafe.Pointer(pIndex)).FzName) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14835, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11922, (*TIndex)(unsafe.Pointer(pIndex)).FzName) _sqlite3ChangeCookie(tls, pParse, iDb) _destroyRootPage(tls, pParse, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum), iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropIndex), iDb, 0, 0, (*TIndex)(unsafe.Pointer(pIndex)).FzName, 0) } + goto exit_drop_index exit_drop_index: ; _sqlite3SrcListDelete(tls, db, pName) @@ -99538,7 +100078,7 @@ func _sqlite3ArrayAllocate(tls *libc.TLS, db uintptr, pArray uintptr, szEntry in v2 = int64(2) * n } sz = v2 - pNew = _sqlite3DbRealloc(tls, db, pArray, uint64(sz*int64(szEntry))) + pNew = _sqlite3DbRealloc(tls, db, pArray, uint64(sz*int64(int64(szEntry)))) if pNew == uintptr(0) { *(*int32)(unsafe.Pointer(pIdx)) = -int32(1) return pArray @@ -99546,7 +100086,7 @@ func _sqlite3ArrayAllocate(tls *libc.TLS, db uintptr, pArray uintptr, szEntry in pArray = pNew } z = pArray - libc.Xmemset(tls, z+uintptr(n*int64(szEntry)), 0, uint64(szEntry)) + libc.Xmemset(tls, z+uintptr(n*int64(int64(szEntry))), 0, uint64(uint64(szEntry))) *(*int32)(unsafe.Pointer(pnEntry))++ return pArray } @@ -99570,7 +100110,7 @@ func _sqlite3IdListAppend(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u return uintptr(0) } } else { - pNew = _sqlite3DbRealloc(tls, db, pList, uint64(24)+uint64((*TIdList)(unsafe.Pointer(pList)).FnId)*uint64(16)) + pNew = _sqlite3DbRealloc(tls, db, pList, uint64(uint64(24)+uint64((*TIdList)(unsafe.Pointer(pList)).FnId)*uint64(16))) if pNew == uintptr(0) { _sqlite3IdListDelete(tls, db, pList) return uintptr(0) @@ -99679,11 +100219,11 @@ func _sqlite3SrcListEnlarge(tls *libc.TLS, pParse uintptr, pSrc uintptr, nExtra _, _, _, _ = db, i, nAlloc, pNew /* Sanity checking on calling parameters */ /* Allocate additional space if needed */ - if uint32((*TSrcList)(unsafe.Pointer(pSrc)).FnSrc)+uint32(nExtra) > (*TSrcList)(unsafe.Pointer(pSrc)).FnAlloc { - nAlloc = int64(2)*int64((*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) + int64(nExtra) + if uint32((*TSrcList)(unsafe.Pointer(pSrc)).FnSrc)+uint32(uint32(nExtra)) > (*TSrcList)(unsafe.Pointer(pSrc)).FnAlloc { + nAlloc = int64(2)*int64((*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) + int64(int64(nExtra)) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc+nExtra >= int32(SQLITE_MAX_SRCLIST) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14802, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14895, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) return uintptr(0) } if nAlloc > int64(SQLITE_MAX_SRCLIST) { @@ -99694,7 +100234,7 @@ func _sqlite3SrcListEnlarge(tls *libc.TLS, pParse uintptr, pSrc uintptr, nExtra return uintptr(0) } pSrc = pNew - (*TSrcList)(unsafe.Pointer(pSrc)).FnAlloc = uint32(nAlloc) + (*TSrcList)(unsafe.Pointer(pSrc)).FnAlloc = uint32(uint32(nAlloc)) } /* Move existing slots that come after the newly inserted slots ** out of the way */ @@ -99711,7 +100251,7 @@ func _sqlite3SrcListEnlarge(tls *libc.TLS, pParse uintptr, pSrc uintptr, nExtra } *(*int32)(unsafe.Pointer(pSrc)) += nExtra /* Zero the newly allocated slots */ - libc.Xmemset(tls, pSrc+8+uintptr(iStart)*104, 0, uint64(104)*uint64(nExtra)) + libc.Xmemset(tls, pSrc+8+uintptr(iStart)*104, 0, uint64(104)*uint64(uint64(nExtra))) i = iStart for { if !(i < iStart+nExtra) { @@ -99915,11 +100455,11 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa db = (*TParse)(unsafe.Pointer(pParse)).Fdb if !(p != 0) && pOnUsing != uintptr(0) && ((*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 || (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpUsing != 0) { if (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 { - v1 = __ccgo_ts + 14838 + v1 = __ccgo_ts + 14931 } else { - v1 = __ccgo_ts + 14841 + v1 = __ccgo_ts + 14934 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14847, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14940, libc.VaList(bp+8, v1)) goto append_from_error } p = _sqlite3SrcListAppend(tls, pParse, p, pTable, pDatabase) @@ -99956,6 +100496,7 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa } } return p + goto append_from_error append_from_error: ; _sqlite3ClearOnOrUsing(tls, db, pOnUsing) @@ -100078,7 +100619,7 @@ func _sqlite3SrcListShiftJoinType(tls *libc.TLS, pParse uintptr, p uintptr) { (*(*TSrcItem)(unsafe.Pointer(p + 8))).Ffg.Fjointype = uint8(0) /* All terms to the left of a RIGHT JOIN should be tagged with the ** JT_LTORJ flags */ - if int32(allFlags)&int32(JT_RIGHT) != 0 { + if int32(int32(allFlags))&int32(JT_RIGHT) != 0 { i = (*TSrcList)(unsafe.Pointer(p)).FnSrc - int32(1) for { if !(i > 0 && int32((*(*TSrcItem)(unsafe.Pointer(p + 8 + uintptr(i)*104))).Ffg.Fjointype)&int32(JT_RIGHT) == 0) { @@ -100116,7 +100657,7 @@ func _sqlite3BeginTransaction(tls *libc.TLS, pParse uintptr, type1 int32) { var eTxnType, i int32 _, _, _, _, _ = db, eTxnType, i, pBt, v db = (*TParse)(unsafe.Pointer(pParse)).Fdb - if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14883, uintptr(0), uintptr(0)) != 0 { + if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14976, uintptr(0), uintptr(0)) != 0 { return } v = _sqlite3GetVdbe(tls, pParse) @@ -100163,9 +100704,9 @@ func _sqlite3EndTransaction(tls *libc.TLS, pParse uintptr, eType int32) { _, _, _ = isRollback, v, v1 isRollback = libc.BoolInt32(eType == int32(TK_ROLLBACK)) if isRollback != 0 { - v1 = __ccgo_ts + 14889 + v1 = __ccgo_ts + 14982 } else { - v1 = __ccgo_ts + 14898 + v1 = __ccgo_ts + 14991 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), v1, uintptr(0), uintptr(0)) != 0 { return @@ -100197,9 +100738,9 @@ func _sqlite3Savepoint(tls *libc.TLS, pParse uintptr, op int32, pName uintptr) { } var _az = [3]uintptr{ - 0: __ccgo_ts + 14883, - 1: __ccgo_ts + 14905, - 2: __ccgo_ts + 14889, + 0: __ccgo_ts + 14976, + 1: __ccgo_ts + 14998, + 2: __ccgo_ts + 14982, } // C documentation @@ -100219,7 +100760,7 @@ func _sqlite3OpenTempDatabase(tls *libc.TLS, pParse uintptr) (r int32) { if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt == uintptr(0) && !((*TParse)(unsafe.Pointer(pParse)).Fexplain != 0) { rc = _sqlite3BtreeOpen(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), db, bp, 0, _flags) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14913, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15006, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = rc return int32(1) } @@ -100384,8 +100925,8 @@ func _sqlite3HaltConstraint(tls *libc.TLS, pParse uintptr, errCode int32, onErro if onError == int32(OE_Abort) { _sqlite3MayAbort(tls, pParse) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), errCode, onError, 0, p4, int32(p4type)) - _sqlite3VdbeChangeP5(tls, v, uint16(p5Errmsg)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), errCode, onError, 0, p4, int32(int32(p4type))) + _sqlite3VdbeChangeP5(tls, v, uint16(uint16(p5Errmsg))) } // C documentation @@ -100403,7 +100944,7 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable _sqlite3StrAccumInit(tls, bp, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), 0, *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136))) if (*TIndex)(unsafe.Pointer(pIdx)).FaColExpr != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+14983, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+15076, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) } else { j = 0 for { @@ -100412,10 +100953,10 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx } zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)))*16))).FzCnName if j != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+14994, int32(2)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+15087, int32(2)) } Xsqlite3_str_appendall(tls, bp, (*TTable)(unsafe.Pointer(pTab)).FzName) - Xsqlite3_str_append(tls, bp, __ccgo_ts+1665, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+1679, int32(1)) Xsqlite3_str_appendall(tls, bp, zCol) goto _1 _1: @@ -100444,10 +100985,10 @@ func _sqlite3RowidConstraint(tls *libc.TLS, pParse uintptr, onError int32, pTab var zMsg uintptr _, _ = rc, zMsg if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12385, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12510, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(6)< libc.BoolInt32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15113, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15206, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } return 0 } @@ -101550,11 +102091,11 @@ func _sqlite3IsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr, pTrigger ui bp := tls.Alloc(16) defer tls.Free(16) if _tabIsReadOnly(tls, pParse, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15146, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15239, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && (pTrigger == uintptr(0) || (*TTrigger)(unsafe.Pointer(pTrigger)).FbReturning != 0 && (*TTrigger)(unsafe.Pointer(pTrigger)).FpNext == uintptr(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15175, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15268, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -101787,12 +102328,12 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere pPk = _sqlite3PrimaryKeyIndex(tls, pTab) nPk = int16((*TIndex)(unsafe.Pointer(pPk)).FnKeyCol) iPk = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(1) - *(*int32)(unsafe.Pointer(pParse + 56)) += int32(nPk) + *(*int32)(unsafe.Pointer(pParse + 56)) += int32(int32(nPk)) v15 = pParse + 52 v14 = *(*int32)(unsafe.Pointer(v15)) *(*int32)(unsafe.Pointer(v15))++ iEphCur = v14 - addrEphOpen = _sqlite3VdbeAddOp2(tls, v, int32(OP_OpenEphemeral), iEphCur, int32(nPk)) + addrEphOpen = _sqlite3VdbeAddOp2(tls, v, int32(OP_OpenEphemeral), iEphCur, int32(int32(nPk))) _sqlite3VdbeSetP4KeyInfo(tls, pParse, pPk) } /* Construct a query to find the rowid or primary key for every row @@ -101822,7 +102363,7 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if pPk != 0 { i = 0 for { - if !(i < int32(nPk)) { + if !(i < int32(int32(nPk))) { break } _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iTabCur, int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pPk)).FaiColumn + uintptr(i)*2))), iPk+i) @@ -101869,8 +102410,8 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere v19 = *(*int32)(unsafe.Pointer(v20)) iKey = v19 nKey = 0 /* Zero tells OP_Found to use a composite key */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), iPk, int32(nPk), iKey, _sqlite3IndexAffinityStr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPk), int32(nPk)) - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxInsert), iEphCur, iKey, iPk, int32(nPk)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), iPk, int32(int32(nPk)), iKey, _sqlite3IndexAffinityStr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPk), int32(int32(nPk))) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxInsert), iEphCur, iKey, iPk, int32(int32(nPk))) } else { /* Add the rowid of the row to be deleted to the RowSet */ nKey = int16(1) /* OP_DeferredSeek always uses a single rowid */ @@ -101899,7 +102440,7 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if eOnePass != ONEPASS_OFF { /* OP_Found will use an unpacked key */ if !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) && *(*Tu8)(unsafe.Pointer(aToOpen + uintptr(*(*int32)(unsafe.Pointer(bp))-iTabCur))) != 0 { - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_NotFound), *(*int32)(unsafe.Pointer(bp)), addrBypass, iKey, int32(nKey)) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_NotFound), *(*int32)(unsafe.Pointer(bp)), addrBypass, iKey, int32(int32(nKey))) } } else { if pPk != 0 { @@ -101929,7 +102470,7 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere _sqlite3VdbeChangeP5(tls, v, uint16(OE_Abort)) } else { count = libc.BoolInt32(int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0) /* True to count changes */ - _sqlite3GenerateRowDelete(tls, pParse, pTab, pTrigger, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), iKey, nKey, uint8(count), uint8(OE_Default), uint8(eOnePass), (*(*[2]int32)(unsafe.Pointer(bp + 80)))[int32(1)]) + _sqlite3GenerateRowDelete(tls, pParse, pTab, pTrigger, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), iKey, nKey, uint8(uint8(count)), uint8(OE_Default), uint8(uint8(eOnePass)), (*(*[2]int32)(unsafe.Pointer(bp + 80)))[int32(1)]) } /* End of the loop over all rowids/primary-keys. */ if eOnePass != ONEPASS_OFF { @@ -101957,8 +102498,9 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** invoke the callback function. */ if memCnt != 0 { - _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15213) + _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15306) } + goto delete_from_cleanup delete_from_cleanup: ; _sqlite3AuthContextPop(tls, bp+8) @@ -102036,15 +102578,15 @@ func _sqlite3GenerateRowDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, pTri v1 = int32(OP_NotFound) } opSeek = uint8(v1) - if int32(eMode) == ONEPASS_OFF { - _sqlite3VdbeAddOp4Int(tls, v, int32(opSeek), iDataCur, iLabel, iPk, int32(nPk)) + if int32(int32(eMode)) == ONEPASS_OFF { + _sqlite3VdbeAddOp4Int(tls, v, int32(int32(opSeek)), iDataCur, iLabel, iPk, int32(int32(nPk))) } /* If there are any triggers to fire, allocate a range of registers to ** use for the old.* references in the triggers. */ if _sqlite3FkRequired(tls, pParse, pTab, uintptr(0), 0) != 0 || pTrigger != 0 { /* Start of BEFORE trigger programs */ /* TODO: Could use temporary registers here. Also could attempt to ** avoid copying the contents of the rowid register. */ - mask = _sqlite3TriggerColmask(tls, pParse, pTrigger, uintptr(0), 0, libc.Int32FromInt32(TRIGGER_BEFORE)|libc.Int32FromInt32(TRIGGER_AFTER), pTab, int32(onconf)) + mask = _sqlite3TriggerColmask(tls, pParse, pTrigger, uintptr(0), 0, libc.Int32FromInt32(TRIGGER_BEFORE)|libc.Int32FromInt32(TRIGGER_AFTER), pTab, int32(int32(onconf))) mask |= _sqlite3FkOldmask(tls, pParse, pTab) iOld = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(1) *(*int32)(unsafe.Pointer(pParse + 56)) += int32(1) + int32((*TTable)(unsafe.Pointer(pTab)).FnCol) @@ -102057,7 +102599,7 @@ func _sqlite3GenerateRowDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, pTri break } if mask == uint32(0xffffffff) || iCol <= int32(31) && mask&(libc.Uint32FromInt32(1)<= 0 && iIdxNoSeek != iDataCur { _sqlite3VdbeAddOp1(tls, v, int32(OP_Delete), iIdxNoSeek) } - if int32(eMode) == int32(ONEPASS_MULTI) { + if int32(int32(eMode)) == int32(ONEPASS_MULTI) { p5 = Tu8(int32(p5) | libc.Int32FromInt32(OPFLAG_SAVEPOSITION)) } - _sqlite3VdbeChangeP5(tls, v, uint16(p5)) + _sqlite3VdbeChangeP5(tls, v, uint16(uint16(p5))) } /* Do any ON CASCADE, SET NULL or SET DEFAULT operations required to ** handle rows (possibly in other tables) that refer via a foreign key @@ -102124,7 +102666,7 @@ func _sqlite3GenerateRowDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, pTri _sqlite3FkActions(tls, pParse, pTab, uintptr(0), iOld, uintptr(0), 0) /* Invoke AFTER DELETE trigger programs. */ if pTrigger != 0 { - _sqlite3CodeRowTrigger(tls, pParse, pTrigger, int32(TK_DELETE), uintptr(0), int32(TRIGGER_AFTER), pTab, iOld, int32(onconf), iLabel) + _sqlite3CodeRowTrigger(tls, pParse, pTrigger, int32(TK_DELETE), uintptr(0), int32(TRIGGER_AFTER), pTab, iOld, int32(int32(onconf)), iLabel) } /* Jump here if the row had already been deleted before any BEFORE ** trigger programs were invoked. Or if a trigger program throws a @@ -102408,11 +102950,11 @@ func _typeofFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } var _azType2 = [5]uintptr{ - 0: __ccgo_ts + 6310, - 1: __ccgo_ts + 6305, - 2: __ccgo_ts + 8201, - 3: __ccgo_ts + 8196, - 4: __ccgo_ts + 1638, + 0: __ccgo_ts + 6374, + 1: __ccgo_ts + 6369, + 2: __ccgo_ts + 8326, + 3: __ccgo_ts + 8321, + 4: __ccgo_ts + 1652, } // C documentation @@ -102456,14 +102998,14 @@ func _lengthFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { break } z++ - if int32(c) >= int32(0xc0) { + if int32(int32(c)) >= int32(0xc0) { for int32(*(*uint8)(unsafe.Pointer(z)))&int32(0xc0) == int32(0x80) { z++ z0++ } } } - Xsqlite3_result_int(tls, context, int32(int64(z)-int64(z0))) + Xsqlite3_result_int(tls, context, int32(int64(int64(z))-int64(int64(z0)))) default: Xsqlite3_result_null(tls, context) break @@ -102526,7 +103068,7 @@ func _absFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { /* IMP: R-31676-45509 If X is the integer -9223372036854775808 ** then abs(X) throws an integer overflow error since there is no ** equivalent positive 64-bit two complement value. */ - Xsqlite3_result_error(tls, context, __ccgo_ts+15226, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15319, -int32(1)) return } iVal = -iVal @@ -102609,7 +103151,7 @@ func _instrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { goto endInstrOOM } firstChar = *(*uint8)(unsafe.Pointer(zNeedle)) - for nNeedle <= nHaystack && (int32(*(*uint8)(unsafe.Pointer(zHaystack))) != int32(firstChar) || libc.Xmemcmp(tls, zHaystack, zNeedle, uint64(nNeedle)) != 0) { + for nNeedle <= nHaystack && (int32(*(*uint8)(unsafe.Pointer(zHaystack))) != int32(int32(firstChar)) || libc.Xmemcmp(tls, zHaystack, zNeedle, uint64(uint64(nNeedle))) != 0) { N++ for cond := true; cond; cond = isText != 0 && int32(*(*uint8)(unsafe.Pointer(zHaystack)))&int32(0xc0) == int32(0x80) { nHaystack-- @@ -102621,11 +103163,13 @@ func _instrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } Xsqlite3_result_int(tls, context, N) + goto endInstr endInstr: ; Xsqlite3_value_free(tls, pC1) Xsqlite3_value_free(tls, pC2) return + goto endInstrOOM endInstrOOM: ; Xsqlite3_result_error_nomem(tls, context) @@ -102730,7 +103274,7 @@ func _substrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { p2 = int64(*(*int32)(unsafe.Pointer(Xsqlite3_context_db_handle(tls, context) + 136))) } if p1 < 0 { - p1 += int64(len1) + p1 += int64(int64(len1)) if p1 < 0 { p2 += p1 if p2 < 0 { @@ -102782,15 +103326,15 @@ func _substrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { ; p2-- } - Xsqlite3_result_text64(tls, context, z, uint64(int64(z2)-int64(z)), uintptr(-libc.Int32FromInt32(1)), uint8(SQLITE_UTF8)) + Xsqlite3_result_text64(tls, context, z, uint64(int64(int64(z2))-int64(int64(z))), uintptr(-libc.Int32FromInt32(1)), uint8(SQLITE_UTF8)) } else { - if p1+p2 > int64(len1) { - p2 = int64(len1) - p1 + if p1+p2 > int64(int64(len1)) { + p2 = int64(int64(len1)) - p1 if p2 < 0 { p2 = 0 } } - Xsqlite3_result_blob64(tls, context, z+uintptr(p1), uint64(p2), uintptr(-libc.Int32FromInt32(1))) + Xsqlite3_result_blob64(tls, context, z+uintptr(p1), uint64(uint64(p2)), uintptr(-libc.Int32FromInt32(1))) } } @@ -102839,7 +103383,7 @@ func _roundFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } *(*float64)(unsafe.Pointer(bp)) = float64(int64(*(*float64)(unsafe.Pointer(bp)) + v1)) } else { - zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15243, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) + zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15336, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) if zBuf == uintptr(0) { Xsqlite3_result_error_nomem(tls, context) return @@ -102868,7 +103412,7 @@ func _contextMalloc(tls *libc.TLS, context uintptr, nByte Ti64) (r uintptr) { Xsqlite3_result_error_toobig(tls, context) z = uintptr(0) } else { - z = _sqlite3Malloc(tls, uint64(nByte)) + z = _sqlite3Malloc(tls, uint64(uint64(nByte))) if !(z != 0) { Xsqlite3_result_error_nomem(tls, context) } @@ -102890,7 +103434,7 @@ func _upperFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { n = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) /* Verify that the call to _bytes() does not invalidate the _text() pointer */ if z2 != 0 { - z1 = _contextMalloc(tls, context, int64(n)+int64(1)) + z1 = _contextMalloc(tls, context, int64(int64(n))+int64(1)) if z1 != 0 { i = 0 for { @@ -102917,7 +103461,7 @@ func _lowerFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { n = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) /* Verify that the call to _bytes() does not invalidate the _text() pointer */ if z2 != 0 { - z1 = _contextMalloc(tls, context, int64(n)+int64(1)) + z1 = _contextMalloc(tls, context, int64(int64(n))+int64(1)) if z1 != 0 { i = 0 for { @@ -102987,8 +103531,8 @@ func _randomBlob(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } p = _contextMalloc(tls, context, n) if p != 0 { - Xsqlite3_randomness(tls, int32(n), p) - Xsqlite3_result_blob(tls, context, p, int32(n), __ccgo_fp(Xsqlite3_free)) + Xsqlite3_randomness(tls, int32(int32(n)), p) + Xsqlite3_result_blob(tls, context, p, int32(int32(n)), __ccgo_fp(Xsqlite3_free)) } } @@ -103228,7 +103772,7 @@ func _patternCompare(tls *libc.TLS, _zPattern uintptr, _zString uintptr, pInfo u (*(*[3]int8)(unsafe.Pointer(bp + 18)))[int32(1)] = int8(_sqlite3UpperToLower[uint8(c)]) (*(*[3]int8)(unsafe.Pointer(bp + 18)))[int32(2)] = 0 } else { - (*(*[3]int8)(unsafe.Pointer(bp + 18)))[0] = int8(c) + (*(*[3]int8)(unsafe.Pointer(bp + 18)))[0] = int8(int8(c)) (*(*[3]int8)(unsafe.Pointer(bp + 18)))[int32(1)] = 0 } for int32(1) != 0 { @@ -103419,7 +103963,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { */ nPat = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) if nPat > *(*int32)(unsafe.Pointer(db + 136 + 8*4)) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15249, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15342, -int32(1)) return } if argc == int32(3) { @@ -103431,7 +103975,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { return } if _sqlite3Utf8CharLen(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), -int32(1)) != int32(1) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15282, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15375, -int32(1)) return } escape = _sqlite3Utf8Read(tls, bp+8) @@ -103513,7 +104057,7 @@ func _errlogFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { defer tls.Free(16) _ = argc _ = context - Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) + Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) } // C documentation @@ -103600,17 +104144,17 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_FLOAT): r1 = Xsqlite3_value_double(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15327, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15420, libc.VaList(bp+16, r1)) zVal = Xsqlite3_str_value(tls, pStr) if zVal != 0 { _sqlite3AtoF(tls, zVal, bp, int32((*TStrAccum)(unsafe.Pointer(pStr)).FnChar), uint8(SQLITE_UTF8)) if r1 != *(*float64)(unsafe.Pointer(bp)) { Xsqlite3_str_reset(tls, pStr) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15335, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15428, libc.VaList(bp+16, r1)) } } case int32(SQLITE_INTEGER): - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1408, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1427, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) case int32(SQLITE_BLOB): zBlob = Xsqlite3_value_blob(tls, pValue) nBlob = int64(Xsqlite3_value_bytes(tls, pValue)) @@ -103620,7 +104164,7 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { zText = (*TStrAccum)(unsafe.Pointer(pStr)).FzText i = 0 for { - if !(int64(i) < nBlob) { + if !(int64(int64(i)) < nBlob) { break } *(*int8)(unsafe.Pointer(zText + uintptr(i*int32(2)+int32(2)))) = _hexdigits[int32(*(*int8)(unsafe.Pointer(zBlob + uintptr(i))))>>int32(4)&int32(0x0F)] @@ -103638,9 +104182,9 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { } case int32(SQLITE_TEXT): zArg = Xsqlite3_value_text(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15343, libc.VaList(bp+16, zArg)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15436, libc.VaList(bp+16, zArg)) default: - Xsqlite3_str_append(tls, pStr, __ccgo_ts+1653, int32(4)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+1667, int32(4)) break } } @@ -103766,7 +104310,7 @@ func _charFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { i++ } *(*uint8)(unsafe.Pointer(zOut)) = uint8(0) - Xsqlite3_result_text64(tls, context, z, uint64(int64(zOut)-int64(z)), __ccgo_fp(Xsqlite3_free), uint8(SQLITE_UTF8)) + Xsqlite3_result_text64(tls, context, z, uint64(int64(int64(zOut))-int64(int64(z))), __ccgo_fp(Xsqlite3_free), uint8(SQLITE_UTF8)) } // C documentation @@ -103784,7 +104328,7 @@ func _hexFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { pBlob = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(argv))) n = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) /* No encoding change */ - v1 = _contextMalloc(tls, context, int64(n)*int64(2)+int64(1)) + v1 = _contextMalloc(tls, context, int64(int64(n))*int64(2)+int64(1)) zHex = v1 z = v1 if zHex != 0 { @@ -103796,10 +104340,10 @@ func _hexFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { c = *(*uint8)(unsafe.Pointer(pBlob)) v3 = z z++ - *(*int8)(unsafe.Pointer(v3)) = _hexdigits[int32(c)>>int32(4)&int32(0xf)] + *(*int8)(unsafe.Pointer(v3)) = _hexdigits[int32(int32(c))>>int32(4)&int32(0xf)] v4 = z z++ - *(*int8)(unsafe.Pointer(v4)) = _hexdigits[int32(c)&int32(0xf)] + *(*int8)(unsafe.Pointer(v4)) = _hexdigits[int32(int32(c))&int32(0xf)] goto _2 _2: ; @@ -103807,7 +104351,7 @@ func _hexFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { pBlob++ } *(*int8)(unsafe.Pointer(z)) = 0 - Xsqlite3_result_text64(tls, context, zHex, uint64(int64(z)-int64(zHex)), __ccgo_fp(Xsqlite3_free), uint8(SQLITE_UTF8)) + Xsqlite3_result_text64(tls, context, zHex, uint64(int64(int64(z))-int64(int64(zHex))), __ccgo_fp(Xsqlite3_free), uint8(SQLITE_UTF8)) } } @@ -103877,7 +104421,7 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { var v3 uint32 var _ /* zHex at bp+0 */ uintptr _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, ch, d, nHex, nPass, p, pBlob, zPass, v1, v2, v3, v4, v5, v6 - zPass = __ccgo_ts + 1652 + zPass = __ccgo_ts + 1666 nPass = 0 *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) nHex = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) @@ -103913,7 +104457,7 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { goto unhex_null } c = *(*Tu8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) - if int32(c) == 0x00 { + if int32(int32(c)) == 0x00 { goto unhex_done } } @@ -103926,13 +104470,15 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { } v6 = p p++ - *(*Tu8)(unsafe.Pointer(v6)) = uint8(int32(_sqlite3HexToInt(tls, int32(c)))< 0 { - azChar = _contextMalloc(tls, context, int64(uint64(int64(nChar))*(libc.Uint64FromInt64(8)+libc.Uint64FromInt64(4)))) + azChar = _contextMalloc(tls, context, int64(uint64(int64(int64(nChar)))*uint64(libc.Uint64FromInt64(8)+libc.Uint64FromInt64(4)))) if azChar == uintptr(0) { return } @@ -104118,7 +104664,7 @@ func _trimFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { z++ } } - *(*uint32)(unsafe.Pointer(aLen + uintptr(nChar)*4)) = uint32(int64(z) - int64(*(*uintptr)(unsafe.Pointer(azChar + uintptr(nChar)*8)))) + *(*uint32)(unsafe.Pointer(aLen + uintptr(nChar)*4)) = uint32(int64(int64(z)) - int64(*(*uintptr)(unsafe.Pointer(azChar + uintptr(nChar)*8)))) goto _4 _4: ; @@ -104138,7 +104684,7 @@ func _trimFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { break } len1 = *(*uint32)(unsafe.Pointer(aLen + uintptr(i)*4)) - if len1 <= nIn && libc.Xmemcmp(tls, zIn, *(*uintptr)(unsafe.Pointer(azChar + uintptr(i)*8)), uint64(len1)) == 0 { + if len1 <= nIn && libc.Xmemcmp(tls, zIn, *(*uintptr)(unsafe.Pointer(azChar + uintptr(i)*8)), uint64(uint64(len1))) == 0 { break } goto _6 @@ -104162,7 +104708,7 @@ func _trimFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { break } len11 = *(*uint32)(unsafe.Pointer(aLen + uintptr(i)*4)) - if len11 <= nIn && libc.Xmemcmp(tls, zIn+uintptr(nIn-len11), *(*uintptr)(unsafe.Pointer(azChar + uintptr(i)*8)), uint64(len11)) == 0 { + if len11 <= nIn && libc.Xmemcmp(tls, zIn+uintptr(nIn-len11), *(*uintptr)(unsafe.Pointer(azChar + uintptr(i)*8)), uint64(uint64(len11))) == 0 { break } goto _7 @@ -104180,7 +104726,7 @@ func _trimFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { Xsqlite3_free(tls, azChar) } } - Xsqlite3_result_text(tls, context, zIn, int32(nIn), uintptr(-libc.Int32FromInt32(1))) + Xsqlite3_result_text(tls, context, zIn, int32(int32(nIn)), uintptr(-libc.Int32FromInt32(1))) } var _lenOne = [1]uint32{ @@ -104188,7 +104734,7 @@ var _lenOne = [1]uint32{ } var _azOne = [1]uintptr{ - 0: __ccgo_ts + 11206, + 0: __ccgo_ts + 11331, } // C documentation @@ -104233,10 +104779,10 @@ func _concatFuncCore(tls *libc.TLS, context uintptr, argc int32, argv uintptr, n v = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if v != uintptr(0) { if j > 0 && nSep > 0 { - libc.Xmemcpy(tls, z+uintptr(j), zSep, uint64(nSep)) - j += int64(nSep) + libc.Xmemcpy(tls, z+uintptr(j), zSep, uint64(uint64(nSep))) + j += int64(int64(nSep)) } - libc.Xmemcpy(tls, z+uintptr(j), v, uint64(k)) + libc.Xmemcpy(tls, z+uintptr(j), v, uint64(uint64(k))) j += k } } @@ -104246,7 +104792,7 @@ func _concatFuncCore(tls *libc.TLS, context uintptr, argc int32, argv uintptr, n i++ } *(*int8)(unsafe.Pointer(z + uintptr(j))) = 0 - Xsqlite3_result_text64(tls, context, z, uint64(j), __ccgo_fp(Xsqlite3_free), uint8(SQLITE_UTF8)) + Xsqlite3_result_text64(tls, context, z, uint64(uint64(j)), __ccgo_fp(Xsqlite3_free), uint8(SQLITE_UTF8)) } // C documentation @@ -104256,7 +104802,7 @@ func _concatFuncCore(tls *libc.TLS, context uintptr, argc int32, argv uintptr, n // ** concatentation of all non-null arguments. // */ func _concatFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { - _concatFuncCore(tls, context, argc, argv, 0, __ccgo_ts+1652) + _concatFuncCore(tls, context, argc, argv, 0, __ccgo_ts+1666) } // C documentation @@ -104302,7 +104848,7 @@ func _soundexFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { _, _, _, _, _, _, _ = code, i, j, prevcode, zIn, v3, v4 zIn = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) if zIn == uintptr(0) { - zIn = __ccgo_ts + 1652 + zIn = __ccgo_ts + 1666 } i = 0 for { @@ -104324,8 +104870,8 @@ func _soundexFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } code = int32(_iCode[int32(*(*Tu8)(unsafe.Pointer(zIn + uintptr(i))))&int32(0x7f)]) if code > 0 { - if code != int32(prevcode) { - prevcode = uint8(code) + if code != int32(int32(prevcode)) { + prevcode = uint8(uint8(code)) v3 = j j++ (*(*[8]int8)(unsafe.Pointer(bp)))[v3] = int8(code + int32('0')) @@ -104348,7 +104894,7 @@ func _soundexFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } else { /* IMP: R-64894-50321 The string "?000" is returned if the argument ** is NULL or contains no ASCII alphabetic characters. */ - Xsqlite3_result_text(tls, context, __ccgo_ts+15346, int32(4), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, context, __ccgo_ts+15439, int32(4), libc.UintptrFromInt32(0)) } } @@ -104409,7 +104955,7 @@ func _loadExt(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { ** flag is set. See the sqlite3_enable_load_extension() API. */ if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_LoadExtFunc) == uint64(0) { - Xsqlite3_result_error(tls, context, __ccgo_ts+12424, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+12549, -int32(1)) return } if argc == int32(2) { @@ -104485,10 +105031,10 @@ func _kahanBabuskaNeumaierStepInt64(tls *libc.TLS, pSum uintptr, iVal Ti64) { if iVal <= -int64(4503599627370496) || iVal >= +libc.Int64FromInt64(4503599627370496) { iSm = iVal % int64(16384) iBig = iVal - iSm - _kahanBabuskaNeumaierStep(tls, pSum, float64(iBig)) - _kahanBabuskaNeumaierStep(tls, pSum, float64(iSm)) + _kahanBabuskaNeumaierStep(tls, pSum, float64(float64(iBig))) + _kahanBabuskaNeumaierStep(tls, pSum, float64(float64(iSm))) } else { - _kahanBabuskaNeumaierStep(tls, pSum, float64(iVal)) + _kahanBabuskaNeumaierStep(tls, pSum, float64(float64(iVal))) } } @@ -104503,9 +105049,9 @@ func _kahanBabuskaNeumaierInit(tls *libc.TLS, p uintptr, iVal Ti64) { if iVal <= -int64(4503599627370496) || iVal >= +libc.Int64FromInt64(4503599627370496) { iSm = iVal % int64(16384) (*TSumCtx)(unsafe.Pointer(p)).FrSum = float64(iVal - iSm) - (*TSumCtx)(unsafe.Pointer(p)).FrErr = float64(iSm) + (*TSumCtx)(unsafe.Pointer(p)).FrErr = float64(float64(iSm)) } else { - (*TSumCtx)(unsafe.Pointer(p)).FrSum = float64(iVal) + (*TSumCtx)(unsafe.Pointer(p)).FrSum = float64(float64(iVal)) (*TSumCtx)(unsafe.Pointer(p)).FrErr = float64(0) } } @@ -104598,7 +105144,7 @@ func _sumFinalize(tls *libc.TLS, context uintptr) { if p != 0 && (*TSumCtx)(unsafe.Pointer(p)).Fcnt > 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fapprox != 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fovrfl != 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+15226, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15319, -int32(1)) } else { if !(_sqlite3IsOverflow(tls, (*TSumCtx)(unsafe.Pointer(p)).FrErr) != 0) { Xsqlite3_result_double(tls, context, (*TSumCtx)(unsafe.Pointer(p)).FrSum+(*TSumCtx)(unsafe.Pointer(p)).FrErr) @@ -104826,7 +105372,7 @@ func _groupConcatStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) pnsl = (*TGroupConcatCtx)(unsafe.Pointer(pGCC)).FpnSepLengths if pnsl == uintptr(0) { /* First separator length variation seen, start tracking them. */ - pnsl = Xsqlite3_malloc64(tls, uint64((*TGroupConcatCtx)(unsafe.Pointer(pGCC)).FnAccum+libc.Int32FromInt32(1))*uint64(4)) + pnsl = Xsqlite3_malloc64(tls, uint64(uint64((*TGroupConcatCtx)(unsafe.Pointer(pGCC)).FnAccum+libc.Int32FromInt32(1))*uint64(4))) if pnsl != uintptr(0) { i = 0 nA = (*TGroupConcatCtx)(unsafe.Pointer(pGCC)).FnAccum - int32(1) @@ -104837,7 +105383,7 @@ func _groupConcatStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) } } } else { - pnsl = Xsqlite3_realloc64(tls, pnsl, uint64((*TGroupConcatCtx)(unsafe.Pointer(pGCC)).FnAccum)*uint64(4)) + pnsl = Xsqlite3_realloc64(tls, pnsl, uint64(uint64((*TGroupConcatCtx)(unsafe.Pointer(pGCC)).FnAccum)*uint64(4))) } if pnsl != uintptr(0) { if (*TGroupConcatCtx)(unsafe.Pointer(pGCC)).FnAccum > 0 { @@ -104890,7 +105436,7 @@ func _groupConcatInverse(tls *libc.TLS, context uintptr, argc int32, argv uintpt if nVS >= int32((*TGroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FnChar) { (*TGroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FnChar = uint32(0) } else { - (*TGroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FnChar -= uint32(nVS) + (*TGroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FnChar -= uint32(uint32(nVS)) libc.Xmemmove(tls, (*TGroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FzText, (*TGroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FzText+uintptr(nVS), uint64((*TGroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FnChar)) } if (*TGroupConcatCtx)(unsafe.Pointer(pGCC)).Fstr.FnChar == uint32(0) { @@ -104940,7 +105486,7 @@ func _groupConcatValue(tls *libc.TLS, context uintptr) { func _sqlite3RegisterPerConnectionBuiltinFunctions(tls *libc.TLS, db uintptr) { var rc int32 _ = rc - rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15351, int32(2)) + rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15444, int32(2)) if rc == int32(SQLITE_NOMEM) { _sqlite3OomFault(tls, db) } @@ -104969,9 +105515,9 @@ func _sqlite3RegisterLikeFunctions(tls *libc.TLS, db uintptr, caseSensitive int3 if !(nArg <= int32(3)) { break } - _sqlite3CreateFunc(tls, db, __ccgo_ts+15357, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15357, nArg, uint8(SQLITE_UTF8), uint8(0)) - *(*Tu32)(unsafe.Pointer(pDef + 4)) |= uint32(flags) + _sqlite3CreateFunc(tls, db, __ccgo_ts+15450, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15450, nArg, uint8(SQLITE_UTF8), uint8(0)) + *(*Tu32)(unsafe.Pointer(pDef + 4)) |= uint32(uint32(flags)) *(*Tu32)(unsafe.Pointer(pDef + 4)) &= uint32(^libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)) goto _1 _1: @@ -105276,562 +105822,562 @@ var _aBuiltinFunc = [110]TFuncDef{ FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_implies_nonnull_row))), - FzName: __ccgo_ts + 15362, + FzName: __ccgo_ts + 15455, }, 1: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_compare))), - FzName: __ccgo_ts + 15382, + FzName: __ccgo_ts + 15475, }, 2: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_implies_expr))), - FzName: __ccgo_ts + 15395, + FzName: __ccgo_ts + 15488, }, 3: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_affinity))), - FzName: __ccgo_ts + 15413, + FzName: __ccgo_ts + 15506, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15422, + FzName: __ccgo_ts + 15515, }, 5: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15430, + FzName: __ccgo_ts + 15523, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15430, + FzName: __ccgo_ts + 15523, }, 7: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15445, + FzName: __ccgo_ts + 15538, }, 8: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15471, + FzName: __ccgo_ts + 15564, }, 9: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15496, + FzName: __ccgo_ts + 15589, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15505, + FzName: __ccgo_ts + 15598, }, 11: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15516, + FzName: __ccgo_ts + 15609, }, 12: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_sqlite_offset))), - FzName: __ccgo_ts + 15523, + FzName: __ccgo_ts + 15616, }, 13: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15537, + FzName: __ccgo_ts + 15630, }, 14: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15537, + FzName: __ccgo_ts + 15630, }, 15: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15543, + FzName: __ccgo_ts + 15636, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15543, + FzName: __ccgo_ts + 15636, }, 17: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15549, + FzName: __ccgo_ts + 15642, }, 18: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15549, + FzName: __ccgo_ts + 15642, }, 19: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 20: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 21: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15558, + FzName: __ccgo_ts + 15651, }, 23: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15558, + FzName: __ccgo_ts + 15651, }, 24: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15558, + FzName: __ccgo_ts + 15651, }, 25: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15562, + FzName: __ccgo_ts + 15655, }, 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15569, + FzName: __ccgo_ts + 15662, }, 27: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_LENGTH)), - FzName: __ccgo_ts + 15577, + FzName: __ccgo_ts + 15670, }, 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_BYTELEN)), - FzName: __ccgo_ts + 15584, + FzName: __ccgo_ts + 15677, }, 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15597, + FzName: __ccgo_ts + 15690, }, 30: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15603, + FzName: __ccgo_ts + 15696, }, 31: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15610, + FzName: __ccgo_ts + 15703, }, 32: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15617, + FzName: __ccgo_ts + 15710, }, 33: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15625, + FzName: __ccgo_ts + 15718, }, 34: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15630, + FzName: __ccgo_ts + 15723, }, 35: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15634, + FzName: __ccgo_ts + 15727, }, 36: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15634, + FzName: __ccgo_ts + 15727, }, 37: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15640, + FzName: __ccgo_ts + 15733, }, 38: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15646, + FzName: __ccgo_ts + 15739, }, 39: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15652, + FzName: __ccgo_ts + 15745, }, 40: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15656, + FzName: __ccgo_ts + 15749, }, 41: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15656, + FzName: __ccgo_ts + 15749, }, 42: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15662, + FzName: __ccgo_ts + 15755, }, 43: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15662, + FzName: __ccgo_ts + 15755, }, 44: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15669, + FzName: __ccgo_ts + 15762, }, 45: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15669, + FzName: __ccgo_ts + 15762, }, 46: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15669, + FzName: __ccgo_ts + 15762, }, 47: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15679, + FzName: __ccgo_ts + 15772, }, 48: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15686, + FzName: __ccgo_ts + 15779, }, 49: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15693, + FzName: __ccgo_ts + 15786, }, 50: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15704, + FzName: __ccgo_ts + 15797, }, 51: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15711, + FzName: __ccgo_ts + 15804, }, 52: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15726, + FzName: __ccgo_ts + 15819, }, 53: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15743, + FzName: __ccgo_ts + 15836, }, 54: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15754, + FzName: __ccgo_ts + 15847, }, 55: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15760, + FzName: __ccgo_ts + 15853, }, 56: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15778, + FzName: __ccgo_ts + 15871, }, 57: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15786, + FzName: __ccgo_ts + 15879, }, 58: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15800, + FzName: __ccgo_ts + 15893, }, 59: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15808, + FzName: __ccgo_ts + 15901, }, 60: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15817, + FzName: __ccgo_ts + 15910, }, 61: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15817, + FzName: __ccgo_ts + 15910, }, 62: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15824, + FzName: __ccgo_ts + 15917, }, 63: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15824, + FzName: __ccgo_ts + 15917, }, 64: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15834, + FzName: __ccgo_ts + 15927, }, 65: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15838, + FzName: __ccgo_ts + 15931, }, 66: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15844, + FzName: __ccgo_ts + 15937, }, 67: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_COUNT) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15848, + FzName: __ccgo_ts + 15941, }, 68: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15848, + FzName: __ccgo_ts + 15941, }, 69: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15854, + FzName: __ccgo_ts + 15947, }, 70: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15854, + FzName: __ccgo_ts + 15947, }, 71: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15867, + FzName: __ccgo_ts + 15960, }, 72: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE) | libc.Int32FromInt32(SQLITE_FUNC_CASE)), FpUserData: uintptr(unsafe.Pointer(&_globInfo)), - FzName: __ccgo_ts + 15878, + FzName: __ccgo_ts + 15971, }, 73: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15357, + FzName: __ccgo_ts + 15450, }, 74: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15357, + FzName: __ccgo_ts + 15450, }, 75: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6734, + FzName: __ccgo_ts + 6798, }, 76: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6734, + FzName: __ccgo_ts + 6798, }, 77: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15883, + FzName: __ccgo_ts + 15976, }, 78: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15888, + FzName: __ccgo_ts + 1239, }, 79: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15896, + FzName: __ccgo_ts + 1247, }, 80: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15902, + FzName: __ccgo_ts + 15981, }, 81: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15908, + FzName: __ccgo_ts + 15987, }, 82: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15911, + FzName: __ccgo_ts + 15990, }, 83: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15915, + FzName: __ccgo_ts + 15994, }, 84: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15921, + FzName: __ccgo_ts + 16000, }, 85: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15911, + FzName: __ccgo_ts + 15990, }, 86: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15926, + FzName: __ccgo_ts + 16005, }, 87: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15930, + FzName: __ccgo_ts + 16009, }, 88: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15934, + FzName: __ccgo_ts + 16013, }, 89: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15940, + FzName: __ccgo_ts + 16019, }, 90: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15944, + FzName: __ccgo_ts + 16023, }, 91: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15949, + FzName: __ccgo_ts + 16028, }, 92: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15954, + FzName: __ccgo_ts + 16033, }, 93: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15959, + FzName: __ccgo_ts + 16038, }, 94: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15965, + FzName: __ccgo_ts + 16044, }, 95: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15969, + FzName: __ccgo_ts + 16048, }, 96: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15973, + FzName: __ccgo_ts + 16052, }, 97: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15977, + FzName: __ccgo_ts + 16056, }, 98: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15982, + FzName: __ccgo_ts + 16061, }, 99: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15987, + FzName: __ccgo_ts + 16066, }, 100: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15992, + FzName: __ccgo_ts + 16071, }, 101: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15998, + FzName: __ccgo_ts + 16077, }, 102: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16004, + FzName: __ccgo_ts + 16083, }, 103: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16010, + FzName: __ccgo_ts + 16089, }, 104: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16015, + FzName: __ccgo_ts + 16094, }, 105: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16023, + FzName: __ccgo_ts + 16102, }, 106: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16031, + FzName: __ccgo_ts + 16110, }, 107: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16034, + FzName: __ccgo_ts + 16113, }, 108: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 6734, + FzName: __ccgo_ts + 6798, }, 109: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_iif))), - FzName: __ccgo_ts + 16039, + FzName: __ccgo_ts + 16118, }, } @@ -106215,7 +106761,7 @@ func _sqlite3FkLocateIndex(tls *libc.TLS, pParse uintptr, pParent uintptr, pFKey } } else { if paiCol != 0 { - aiCol = _sqlite3DbMallocRawNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(nCol)*uint64(4)) + aiCol = _sqlite3DbMallocRawNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(uint64(uint64(nCol))*uint64(4))) if !(aiCol != 0) { return int32(1) } @@ -106258,7 +106804,7 @@ func _sqlite3FkLocateIndex(tls *libc.TLS, pParse uintptr, pParent uintptr, pFKey break } iCol = *(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i1)*2)) /* Name of indexed column */ - if int32(iCol) < 0 { + if int32(int32(iCol)) < 0 { break } /* No foreign keys against expression indexes */ /* If the index uses a collation sequence that is different from @@ -106308,7 +106854,7 @@ func _sqlite3FkLocateIndex(tls *libc.TLS, pParse uintptr, pParent uintptr, pFKey } if !(pIdx != 0) { if !((*TParse)(unsafe.Pointer(pParse)).FdisableTriggers != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16043, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16122, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) } _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiCol) return int32(1) @@ -106484,7 +107030,7 @@ func _exprTableRegister(tls *libc.TLS, pParse uintptr, pTab uintptr, regBase int db = (*TParse)(unsafe.Pointer(pParse)).Fdb pExpr = _sqlite3Expr(tls, db, int32(TK_REGISTER), uintptr(0)) if pExpr != 0 { - if int32(iCol) >= 0 && int32(iCol) != int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { + if int32(int32(iCol)) >= 0 && int32(int32(iCol)) != int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { pCol = (*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16 (*TExpr)(unsafe.Pointer(pExpr)).FiTable = regBase + int32(_sqlite3TableColumnToStorage(tls, pTab, iCol)) + int32(1) (*TExpr)(unsafe.Pointer(pExpr)).FaffExpr = (*TColumn)(unsafe.Pointer(pCol)).Faffinity @@ -107030,7 +107576,7 @@ func _sqlite3FkCheck(tls *libc.TLS, pParse uintptr, pTab uintptr, regOld int32, break } iFromCol = (*(*TsColMap)(unsafe.Pointer(pFKey + 64 + uintptr(i)*16))).FiFrom - iReg = int32(_sqlite3TableColumnToStorage(tls, (*TFKey)(unsafe.Pointer(pFKey)).FpFrom, int16(iFromCol))) + regOld + int32(1) + iReg = int32(_sqlite3TableColumnToStorage(tls, (*TFKey)(unsafe.Pointer(pFKey)).FpFrom, int16(int16(iFromCol)))) + regOld + int32(1) _sqlite3VdbeAddOp2(tls, v, int32(OP_IsNull), iReg, iJump) goto _2 _2: @@ -107419,11 +107965,11 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr break } *(*TToken)(unsafe.Pointer(bp + 16)) = TToken{ - Fz: __ccgo_ts + 6600, + Fz: __ccgo_ts + 6664, Fn: uint32(3), } /* Literal "old" token */ *(*TToken)(unsafe.Pointer(bp + 32)) = TToken{ - Fz: __ccgo_ts + 6596, + Fz: __ccgo_ts + 6660, Fn: uint32(3), } /* tFromCol = OLD.tToCol */ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -107487,7 +108033,7 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr nFrom = _sqlite3Strlen30(tls, zFrom) if action == int32(OE_Restrict) { iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5229) + pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5293) if pRaise != 0 { (*TExpr)(unsafe.Pointer(pRaise)).FaffExpr = int8(OE_Abort) } @@ -107502,13 +108048,13 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr /* Disable lookaside memory allocation */ (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++ (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = uint16(0) - pTrigger = _sqlite3DbMallocZero(tls, db, libc.Uint64FromInt64(72)+libc.Uint64FromInt64(96)+uint64(nFrom)+uint64(1)) + pTrigger = _sqlite3DbMallocZero(tls, db, uint64(libc.Uint64FromInt64(72)+libc.Uint64FromInt64(96)+uint64(uint64(nFrom))+uint64(1))) if pTrigger != 0 { v4 = pTrigger + 1*72 (*TTrigger)(unsafe.Pointer(pTrigger)).Fstep_list = v4 pStep = v4 (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget = pStep + 1*96 - libc.Xmemcpy(tls, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget, zFrom, uint64(nFrom)) + libc.Xmemcpy(tls, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget, zFrom, uint64(uint64(nFrom))) (*TTriggerStep)(unsafe.Pointer(pStep)).FpWhere = _sqlite3ExprDup(tls, db, pWhere, int32(EXPRDUP_REDUCE)) (*TTriggerStep)(unsafe.Pointer(pStep)).FpExprList = _sqlite3ExprListDup(tls, db, pList, int32(EXPRDUP_REDUCE)) (*TTriggerStep)(unsafe.Pointer(pStep)).FpSelect = _sqlite3SelectDup(tls, db, pSelect, int32(EXPRDUP_REDUCE)) @@ -107734,19 +108280,19 @@ func _computeIndexAffStr(tls *libc.TLS, db uintptr, pIdx uintptr) (r uintptr) { break } x = *(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(n)*2)) - if int32(x) >= 0 { + if int32(int32(x)) >= 0 { aff = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(x)*16))).Faffinity } else { - if int32(x) == -int32(1) { + if int32(int32(x)) == -int32(1) { aff = int8(SQLITE_AFF_INTEGER) } else { aff = _sqlite3ExprAffinity(tls, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(n)*32))).FpExpr) } } - if int32(aff) < int32(SQLITE_AFF_BLOB) { + if int32(int32(aff)) < int32(SQLITE_AFF_BLOB) { aff = int8(SQLITE_AFF_BLOB) } - if int32(aff) > int32(SQLITE_AFF_NUMERIC) { + if int32(int32(aff)) > int32(SQLITE_AFF_NUMERIC) { aff = int8(SQLITE_AFF_NUMERIC) } *(*int8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FzColAff + uintptr(n))) = aff @@ -108056,7 +108602,7 @@ func _sqlite3ComputeGeneratedColumns(tls *libc.TLS, pParse uintptr, iRegStore in goto _5 } eProgress = int32(1) - x = int32(_sqlite3TableColumnToStorage(tls, pTab, int16(i))) + iRegStore + x = int32(_sqlite3TableColumnToStorage(tls, pTab, int16(int16(i)))) + iRegStore _sqlite3ExprCodeGeneratedColumn(tls, pParse, pTab, pCol, x) p8 = pCol + 14 *(*Tu16)(unsafe.Pointer(p8)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p8))) & ^libc.Int32FromInt32(COLFLAG_NOTAVAIL)) @@ -108068,7 +108614,7 @@ func _sqlite3ComputeGeneratedColumns(tls *libc.TLS, pParse uintptr, iRegStore in } } if pRedo != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8166, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8291, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) } (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 } @@ -108137,7 +108683,7 @@ func _autoIncBegin(tls *libc.TLS, pParse uintptr, iDb int32, pTab uintptr) (r in v3 = pToplevel + 56 *(*int32)(unsafe.Pointer(v3))++ v2 = *(*int32)(unsafe.Pointer(v3)) - (*TAutoincInfo)(unsafe.Pointer(pInfo)).FregCtr = v2 /* Max rowid register */ + (*TAutoincInfo)(unsafe.Pointer(pInfo)).FregCtr = v2 /* Max rowid register */ *(*int32)(unsafe.Pointer(pToplevel + 56)) += int32(2) /* Rowid in sqlite_sequence + orig max val */ } memId = (*TAutoincInfo)(unsafe.Pointer(pInfo)).FregCtr @@ -108329,6 +108875,219 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { } } +// C documentation +// +// /* +// ** If argument pVal is a Select object returned by an sqlite3MultiValues() +// ** that was able to use the co-routine optimization, finish coding the +// ** co-routine. +// */ +func _sqlite3MultiValuesEnd(tls *libc.TLS, pParse uintptr, pVal uintptr) { + var pItem uintptr + _ = pItem + if pVal != 0 && (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pVal)).FpSrc)).FnSrc > 0 { + pItem = (*TSelect)(unsafe.Pointer(pVal)).FpSrc + 8 + _sqlite3VdbeEndCoroutine(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn) + _sqlite3VdbeJumpHere(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FaddrFillSub-int32(1)) + } +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are constant. +// */ +func _exprListIsConstant(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + if 0 == _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are both constant and have no affinity. +// */ +func _exprListIsNoAffinity(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + var pExpr uintptr + _, _ = ii, pExpr + if _exprListIsConstant(tls, pParse, pRow) == 0 { + return 0 + } + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + pExpr = (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr + if 0 != int32(_sqlite3ExprAffinity(tls, pExpr)) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** This function is called by the parser for the second and subsequent +// ** rows of a multi-row VALUES clause. Argument pLeft is the part of +// ** the VALUES clause already parsed, argument pRow is the vector of values +// ** for the new row. The Select object returned represents the complete +// ** VALUES clause, including the new row. +// ** +// ** There are two ways in which this may be achieved - by incremental +// ** coding of a co-routine (the "co-routine" method) or by returning a +// ** Select object equivalent to the following (the "UNION ALL" method): +// ** +// ** "pLeft UNION ALL SELECT pRow" +// ** +// ** If the VALUES clause contains a lot of rows, this compound Select +// ** object may consume a lot of memory. +// ** +// ** When the co-routine method is used, each row that will be returned +// ** by the VALUES clause is coded into part of a co-routine as it is +// ** passed to this function. The returned Select object is equivalent to: +// ** +// ** SELECT * FROM ( +// ** Select object to read co-routine +// ** ) +// ** +// ** The co-routine method is used in most cases. Exceptions are: +// ** +// ** a) If the current statement has a WITH clause. This is to avoid +// ** statements like: +// ** +// ** WITH cte AS ( VALUES('x'), ('y') ... ) +// ** SELECT * FROM cte AS a, cte AS b; +// ** +// ** This will not work, as the co-routine uses a hard-coded register +// ** for its OP_Yield instructions, and so it is not possible for two +// ** cursors to iterate through it concurrently. +// ** +// ** b) The schema is currently being parsed (i.e. the VALUES clause is part +// ** of a schema item like a VIEW or TRIGGER). In this case there is no VM +// ** being generated when parsing is taking place, and so generating +// ** a co-routine is not possible. +// ** +// ** c) There are non-constant expressions in the VALUES clause (e.g. +// ** the VALUES clause is part of a correlated sub-query). +// ** +// ** d) One or more of the values in the first row of the VALUES clause +// ** has an affinity (i.e. is a CAST expression). This causes problems +// ** because the complex rules SQLite uses (see function +// ** sqlite3SubqueryColumnTypes() in select.c) to determine the effective +// ** affinity of such a column for all rows require access to all values in +// ** the column simultaneously. +// */ +func _sqlite3MultiValues(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRow uintptr) (r uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var f, v1 int32 + var p, pRet, pSelect, v, v2 uintptr + var _ /* dest at bp+0 */ TSelectDest + _, _, _, _, _, _, _ = f, p, pRet, pSelect, v, v1, v2 + if (*TParse)(unsafe.Pointer(pParse)).FbHasWith != 0 || (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy != 0 || _exprListIsConstant(tls, pParse, pRow) == 0 || (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 && _exprListIsNoAffinity(tls, pParse, (*TSelect)(unsafe.Pointer(pLeft)).FpEList) == 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { + /* The co-routine method cannot be used. Fall back to UNION ALL. */ + pSelect = uintptr(0) + f = libc.Int32FromInt32(SF_Values) | libc.Int32FromInt32(SF_MultiValue) + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc != 0 { + _sqlite3MultiValuesEnd(tls, pParse, pLeft) + f = int32(SF_Values) + } else { + if (*TSelect)(unsafe.Pointer(pLeft)).FpPrior != 0 { + /* In this case set the SF_MultiValue flag only if it was set on pLeft */ + f = int32(uint32(uint32(f)) & (*TSelect)(unsafe.Pointer(pLeft)).FselFlags) + } + } + pSelect = _sqlite3SelectNew(tls, pParse, pRow, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(uint32(f)), uintptr(0)) + *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) + if pSelect != 0 { + (*TSelect)(unsafe.Pointer(pSelect)).Fop = uint8(TK_ALL) + (*TSelect)(unsafe.Pointer(pSelect)).FpPrior = pLeft + pLeft = pSelect + } + } else { + p = uintptr(0) /* SrcItem that reads from co-routine */ + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 { + /* Co-routine has not yet been started and the special Select object + ** that accesses the co-routine has not yet been created. This block + ** does both those things. */ + v = _sqlite3GetVdbe(tls, pParse) + pRet = _sqlite3SelectNew(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) + /* Ensure the database schema has been read. This is to ensure we have + ** the correct text encoding. */ + if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmDbFlags&uint32(DBFLAG_SchemaKnownOk) == uint32(0) { + _sqlite3ReadSchema(tls, pParse) + } + if pRet != 0 { + (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pRet)).FpSrc)).FnSrc = int32(1) + (*TSelect)(unsafe.Pointer(pRet)).FpPrior = (*TSelect)(unsafe.Pointer(pLeft)).FpPrior + (*TSelect)(unsafe.Pointer(pRet)).Fop = (*TSelect)(unsafe.Pointer(pLeft)).Fop + (*TSelect)(unsafe.Pointer(pLeft)).FpPrior = uintptr(0) + (*TSelect)(unsafe.Pointer(pLeft)).Fop = uint8(TK_SELECT) + p = (*TSelect)(unsafe.Pointer(pRet)).FpSrc + 8 + (*TSrcItem)(unsafe.Pointer(p)).FpSelect = pLeft + libc.SetBitFieldPtr16Uint32(p+60+4, libc.Uint32FromInt32(1), 5, 0x20) + (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + v2 = pParse + 56 + *(*int32)(unsafe.Pointer(v2))++ + v1 = *(*int32)(unsafe.Pointer(v2)) + (*TSrcItem)(unsafe.Pointer(p)).FregReturn = v1 + (*TSrcItem)(unsafe.Pointer(p)).FiCursor = -int32(1) + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1)) = uint32(2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn, 0, (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub) + _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + /* Allocate registers for the output of the co-routine. Do so so + ** that there are two unused registers immediately before those + ** used by the co-routine. This allows the code in sqlite3Insert() + ** to use these registers directly, instead of copying the output + ** of the co-routine to a separate array for processing. */ + (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(3) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpEList)).FnExpr + *(*int32)(unsafe.Pointer(pParse + 56)) += int32(2) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst + *(*Tu32)(unsafe.Pointer(pLeft + 4)) |= uint32(SF_MultiValue) + _sqlite3Select(tls, pParse, pLeft, bp) + (*TSrcItem)(unsafe.Pointer(p)).FregResult = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst + pLeft = pRet + } + } else { + p = (*TSelect)(unsafe.Pointer(pLeft)).FpSrc + 8 + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1))++ + } + if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { + if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p)).FpSelect)).FpEList)).FnExpr != (*TExprList)(unsafe.Pointer(pRow)).FnExpr { + _sqlite3SelectWrongNumTermsError(tls, pParse, (*TSrcItem)(unsafe.Pointer(p)).FpSelect) + } else { + _sqlite3ExprCodeExprList(tls, pParse, pRow, (*TSrcItem)(unsafe.Pointer(p)).FregResult, 0, uint8(0)) + _sqlite3VdbeAddOp1(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Yield), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + } + } + _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pRow) + } + return pLeft +} + // C documentation // // /* @@ -108431,27 +109190,27 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uintptr, pColumn uintptr, onError int32, pUpsert uintptr) { bp := tls.Alloc(160) defer tls.Free(160) - var aRegIdx, db, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, v, v13, v16, v18, v6, v9 uintptr - var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v12, v15, v17, v19, v23, v24, v5, v7, v8 int32 + var aRegIdx, db, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, v, v10, v14, v17, v19, v7 uintptr + var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v13, v16, v18, v20, v24, v25, v5, v6, v8, v9 int32 var appendFlag, bIdListInOrder, useTempTable, withoutRowid Tu8 - var colFlags, v21 Tu32 + var colFlags, v22 Tu32 var _ /* dest at bp+8 */ TSelectDest var _ /* iDataCur at bp+0 */ int32 var _ /* iIdxCur at bp+4 */ int32 var _ /* isReplace at bp+112 */ int32 var _ /* sNC at bp+56 */ TNameContext var _ /* tmask at bp+48 */ int32 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v12, v13, v15, v16, v17, v18, v19, v21, v23, v24, v5, v6, v7, v8, v9 /* Number of columns in the data */ - nHidden = 0 /* Number of hidden columns if TABLE is virtual */ - *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ - *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ - ipkColumn = -int32(1) /* Label for the end of the insertion loop */ - srcTab = 0 /* Data comes from this temporary cursor if >=0 */ - addrInsTop = 0 /* Jump to label "D" */ - addrCont = 0 /* Index of database holding TABLE */ - useTempTable = uint8(0) /* Store SELECT results in intermediate table */ - appendFlag = uint8(0) /* True if IDLIST is in table order */ - pList = uintptr(0) /* Register in which to store next column */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v10, v13, v14, v16, v17, v18, v19, v20, v22, v24, v25, v5, v6, v7, v8, v9 /* Number of columns in the data */ + nHidden = 0 /* Number of hidden columns if TABLE is virtual */ + *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ + *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ + ipkColumn = -int32(1) /* Label for the end of the insertion loop */ + srcTab = 0 /* Data comes from this temporary cursor if >=0 */ + addrInsTop = 0 /* Jump to label "D" */ + addrCont = 0 /* Index of database holding TABLE */ + useTempTable = uint8(0) /* Store SELECT results in intermediate table */ + appendFlag = uint8(0) /* True if IDLIST is in table order */ + pList = uintptr(0) /* Register in which to store next column */ /* Register allocations */ regFromSelect = 0 /* Base register for data coming from SELECT */ regAutoinc = 0 /* Register holding the AUTOINCREMENT counter */ @@ -108589,7 +109348,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_STORED)|libc.Int32FromInt32(COLFLAG_VIRTUAL)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16088, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16167, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto insert_cleanup } break @@ -108604,7 +109363,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i bIdListInOrder = uint8(0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16129, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16208, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto insert_cleanup } @@ -108621,28 +109380,46 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** co-routine is the common header to the 3rd and 4th templates. */ if pSelect != 0 { /* Result code */ - v6 = pParse + 56 - *(*int32)(unsafe.Pointer(v6))++ - v5 = *(*int32)(unsafe.Pointer(v6)) - regYield = v5 - addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) - _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) - _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) - if bIdListInOrder != 0 { - v7 = regData - } else { - v7 = 0 - } - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v7 - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) - rc = _sqlite3Select(tls, pParse, pSelect, bp+8) - regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst - if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { - goto insert_cleanup + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc)).FnSrc == int32(1) && int32(uint32(*(*uint16)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + 60 + 4))&0x20>>5)) != 0 && (*TSelect)(unsafe.Pointer(pSelect)).FpPrior == uintptr(0) { + pItem = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSDParm = (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn + regFromSelect = (*TSrcItem)(unsafe.Pointer(pItem)).FregResult + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FpEList)).FnExpr + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+16240, libc.VaList(bp+128, pItem)) + if bIdListInOrder != 0 && nColumn == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { + regData = regFromSelect + regRowid = regData - int32(1) + if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { + v5 = int32(1) + } else { + v5 = 0 + } + regIns = regRowid - v5 + } + } else { + v7 = pParse + 56 + *(*int32)(unsafe.Pointer(v7))++ + v6 = *(*int32)(unsafe.Pointer(v7)) /* Top of the co-routine */ + regYield = v6 + addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) + _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) + if bIdListInOrder != 0 { + v8 = regData + } else { + v8 = 0 + } + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) + rc = _sqlite3Select(tls, pParse, pSelect, bp+8) + regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst + if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { + goto insert_cleanup + } + _sqlite3VdbeEndCoroutine(tls, v, regYield) + _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr } - _sqlite3VdbeEndCoroutine(tls, v, regYield) - _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ - nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr /* Set useTempTable to TRUE if the result of the SELECT statement ** should be written into a temporary table (template 4). Set to ** FALSE if each output row of the SELECT can be written directly into @@ -108656,10 +109433,10 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin useTempTable = uint8(1) } if useTempTable != 0 { /* Label "L" */ - v9 = pParse + 52 - v8 = *(*int32)(unsafe.Pointer(v9)) - *(*int32)(unsafe.Pointer(v9))++ - srcTab = v8 + v10 = pParse + 52 + v9 = *(*int32)(unsafe.Pointer(v10)) + *(*int32)(unsafe.Pointer(v10))++ + srcTab = v9 regRec = _sqlite3GetTempReg(tls, pParse) regTempRowid = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp2(tls, v, int32(OP_OpenEphemeral), srcTab, nColumn) @@ -108700,8 +109477,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { ipkColumn-- } - goto _10 - _10: + goto _11 + _11: ; i-- } @@ -108718,34 +109495,34 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_NOINSERT) != 0 { nHidden++ } - goto _11 - _11: + goto _12 + _12: ; i++ } } if nColumn != int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16161, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16248, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) goto insert_cleanup } } if pColumn != uintptr(0) && nColumn != (*TIdList)(unsafe.Pointer(pColumn)).FnId { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16213, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16300, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) goto insert_cleanup } /* Initialize the count of rows to be inserted */ if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&(uint64(libc.Int32FromInt32(0x00001))<= 0 { /* tag-20191021-001: If the INTEGER PRIMARY KEY is being generated by the ** SELECT, go ahead and copy the value into the rowid slot now, so that @@ -108852,18 +109629,18 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** using excess space. The file format definition requires this extra ** NULL - we cannot optimize further by skipping the column completely */ _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) - goto _20 + goto _21 } - v21 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) - colFlags = v21 - if v21&uint32(COLFLAG_NOINSERT) != uint32(0) { + v22 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) + colFlags = v22 + if v22&uint32(COLFLAG_NOINSERT) != uint32(0) { nHidden++ if colFlags&uint32(COLFLAG_VIRTUAL) != uint32(0) { /* Virtual columns do not participate in OP_MakeRecord. So back up ** iRegStore by one slot to compensate for the iRegStore++ in the ** outer for() loop */ iRegStore-- - goto _20 + goto _21 } else { if colFlags&uint32(COLFLAG_STORED) != uint32(0) { /* Stored columns are computed later. But if there are BEFORE @@ -108873,13 +109650,13 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if *(*int32)(unsafe.Pointer(bp + 48))&int32(TRIGGER_BEFORE) != 0 { _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) } - goto _20 + goto _21 } else { if pColumn == uintptr(0) { /* Hidden columns that are not explicitly named in the INSERT ** get there default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } } } @@ -108890,8 +109667,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if !(j < (*TIdList)(unsafe.Pointer(pColumn)).FnId && *(*int32)(unsafe.Pointer(pColumn + 8 + uintptr(j)*16 + 8)) != i) { break } - goto _22 - _22: + goto _23 + _23: ; j++ } @@ -108899,14 +109676,14 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin /* A column not named in the insert column list gets its ** default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } k = j } else { if nColumn == 0 { /* This is INSERT INTO ... DEFAULT VALUES. Load the default value. */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } else { k = i - nHidden } @@ -108923,16 +109700,16 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin y = _sqlite3ExprCodeTarget(tls, pParse, pX, iRegStore) if y != iRegStore { if (*TExpr)(unsafe.Pointer(pX)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) { - v23 = int32(OP_Copy) + v24 = int32(OP_Copy) } else { - v23 = int32(OP_SCopy) + v24 = int32(OP_SCopy) } - _sqlite3VdbeAddOp2(tls, v, v23, y, iRegStore) + _sqlite3VdbeAddOp2(tls, v, v24, y, iRegStore) } } } - goto _20 - _20: + goto _21 + _21: ; i++ iRegStore++ @@ -109043,15 +109820,15 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VtabMakeWritable(tls, pParse, pTab) _sqlite3VdbeAddOp4(tls, v, int32(OP_VUpdate), int32(1), int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+int32(2), regIns, pVTab, -int32(11)) if onError == int32(OE_Default) { - v24 = int32(OE_Abort) + v25 = int32(OE_Abort) } else { - v24 = onError + v25 = onError } - _sqlite3VdbeChangeP5(tls, v, uint16(v24)) + _sqlite3VdbeChangeP5(tls, v, uint16(v25)) _sqlite3MayAbort(tls, pParse) } else { *(*int32)(unsafe.Pointer(bp + 112)) = 0 /* True to use OPFLAG_SEEKRESULT */ - _sqlite3GenerateConstraintChecks(tls, pParse, pTab, aRegIdx, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), regIns, 0, libc.BoolUint8(ipkColumn >= 0), uint8(onError), endOfLoop, bp+112, uintptr(0), pUpsert) + _sqlite3GenerateConstraintChecks(tls, pParse, pTab, aRegIdx, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), regIns, 0, libc.BoolUint8(ipkColumn >= 0), uint8(uint8(onError)), endOfLoop, bp+112, uintptr(0), pUpsert) if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_ForeignKeys) != 0 { _sqlite3FkCheck(tls, pParse, pTab, 0, regIns, uintptr(0), 0) } @@ -109064,7 +109841,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** VdbeCursor.seekResult variable, disabling the OPFLAG_USESEEKRESULT ** functionality. */ bUseSeek = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 112)) == 0 || !(_sqlite3VdbeHasSubProgram(tls, v) != 0)) - _sqlite3CompleteInsertion(tls, pParse, pTab, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), regIns, aRegIdx, 0, int32(appendFlag), bUseSeek) + _sqlite3CompleteInsertion(tls, pParse, pTab, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), regIns, aRegIdx, 0, int32(int32(appendFlag)), bUseSeek) } } /* Update the count of rows that are inserted @@ -109090,6 +109867,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VdbeJumpHere(tls, v, addrInsTop) } } + goto insert_end insert_end: ; /* Update the sqlite_sequence table by storing the content of the @@ -109105,8 +109883,9 @@ insert_end: ** invoke the callback function. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16305) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16392) } + goto insert_cleanup insert_cleanup: ; _sqlite3SrcListDelete(tls, db, pTabList) @@ -109467,8 +110246,8 @@ func _sqlite3GenerateConstraintChecks(tls *libc.TLS, pParse uintptr, pTab uintpt /* Do not check NOT NULL on columns that do not change */ goto _1 } - if int32(overrideError) != int32(OE_Default) { - onError = int32(overrideError) + if int32(int32(overrideError)) != int32(OE_Default) { + onError = int32(int32(overrideError)) } else { if onError == int32(OE_Default) { onError = int32(OE_Abort) @@ -109484,7 +110263,7 @@ func _sqlite3GenerateConstraintChecks(tls *libc.TLS, pParse uintptr, pTab uintpt goto _1 } } - iReg = int32(_sqlite3TableColumnToStorage(tls, pTab, int16(i))) + regNewData + int32(1) + iReg = int32(_sqlite3TableColumnToStorage(tls, pTab, int16(int16(i)))) + regNewData + int32(1) switch onError { case int32(OE_Replace): addr1 = _sqlite3VdbeAddOp1(tls, v, int32(OP_NotNull), iReg) @@ -109497,7 +110276,7 @@ func _sqlite3GenerateConstraintChecks(tls *libc.TLS, pParse uintptr, pTab uintpt case int32(OE_Rollback): fallthrough case int32(OE_Fail): - zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12385, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12510, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) _sqlite3VdbeAddOp3(tls, v, int32(OP_HaltIfNull), libc.Int32FromInt32(SQLITE_CONSTRAINT)|libc.Int32FromInt32(5)<>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { _codeWithoutRowidPreupdate(tls, pParse, pDest, iDest, regData) } } _sqlite3VdbeAddOp2(tls, v, int32(OP_IdxInsert), iDest, regData) - _sqlite3VdbeChangeP5(tls, v, uint16(int32(idxInsFlags)|int32(OPFLAG_APPEND))) + _sqlite3VdbeChangeP5(tls, v, uint16(int32(int32(idxInsFlags))|int32(OPFLAG_APPEND))) _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iSrc, addr1+int32(1)) _sqlite3VdbeJumpHere(tls, v, addr1) _sqlite3VdbeAddOp2(tls, v, int32(OP_Close), iSrc, 0) @@ -110849,10 +111628,10 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* The current SQL statement */ azCols = uintptr(0) /* True if callback data is initialized */ if !(_sqlite3SafetyCheckOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(135482)) + return _sqlite3MisuseError(tls, int32(136304)) } if zSql == uintptr(0) { - zSql = __ccgo_ts + 1652 + zSql = __ccgo_ts + 1666 } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3Error(tls, db, SQLITE_OK) @@ -110876,7 +111655,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c if xCallback != 0 && (int32(SQLITE_ROW) == rc || int32(SQLITE_DONE) == rc && !(callbackIsInit != 0) && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NullCallback) != 0) { if !(callbackIsInit != 0) { nCol = Xsqlite3_column_count(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) - azCols = _sqlite3DbMallocRaw(tls, db, uint64(libc.Int32FromInt32(2)*nCol+libc.Int32FromInt32(1))*uint64(8)) + azCols = _sqlite3DbMallocRaw(tls, db, uint64(uint64(libc.Int32FromInt32(2)*nCol+libc.Int32FromInt32(1))*uint64(8))) if azCols == uintptr(0) { goto exec_out } @@ -110938,6 +111717,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c _sqlite3DbFree(tls, db, azCols) azCols = uintptr(0) } + goto exec_out exec_out: ; if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -111638,7 +112418,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp pVfs = (*Tsqlite3)(unsafe.Pointer(db)).FpVfs *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zAltEntry = uintptr(0) - nMsg = libc.Xstrlen(tls, zFile) + nMsg = uint64(libc.Xstrlen(tls, zFile)) if pzErrMsg != 0 { *(*uintptr)(unsafe.Pointer(pzErrMsg)) = uintptr(0) } @@ -111651,14 +112431,14 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp */ if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_LoadExtension) == uint64(0) { if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+12424, 0) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+12549, 0) } return int32(SQLITE_ERROR) } if zProc != 0 { v1 = zProc } else { - v1 = __ccgo_ts + 16322 + v1 = __ccgo_ts + 16409 } zEntry = v1 /* tag-20210611-1. Some dlopen() implementations will segfault if given @@ -111683,11 +112463,11 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp if !(ii < int32(libc.Uint64FromInt64(8)/libc.Uint64FromInt64(8)) && handle == uintptr(0)) { break } - zAltFile = Xsqlite3_mprintf(tls, __ccgo_ts+12385, libc.VaList(bp+16, zFile, _azEndings[ii])) + zAltFile = Xsqlite3_mprintf(tls, __ccgo_ts+12510, libc.VaList(bp+16, zFile, _azEndings[ii])) if zAltFile == uintptr(0) { return int32(SQLITE_NOMEM) } - if nMsg+libc.Xstrlen(tls, _azEndings[ii])+uint64(1) <= uint64(FILENAME_MAX) { + if nMsg+uint64(libc.Xstrlen(tls, _azEndings[ii]))+uint64(1) <= uint64(FILENAME_MAX) { handle = _sqlite3OsDlOpen(tls, pVfs, zAltFile) } Xsqlite3_free(tls, zAltFile) @@ -111718,7 +112498,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp _sqlite3OsDlClose(tls, pVfs, handle) return int32(SQLITE_NOMEM) } - libc.Xmemcpy(tls, zAltEntry, __ccgo_ts+16345, uint64(8)) + libc.Xmemcpy(tls, zAltEntry, __ccgo_ts+16432, uint64(8)) iFile = ncFile - int32(1) for { if !(iFile >= 0 && !(int32(*(*int8)(unsafe.Pointer(zFile + uintptr(iFile)))) == libc.Int32FromUint8('/'))) { @@ -111730,7 +112510,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp iFile-- } iFile++ - if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16354, int32(3)) == 0 { + if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16441, int32(3)) == 0 { iFile += int32(3) } iEntry = int32(8) @@ -111743,26 +112523,26 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp if int32(_sqlite3CtypeMap[uint8(c)])&int32(0x02) != 0 { v6 = iEntry iEntry++ - *(*int8)(unsafe.Pointer(zAltEntry + uintptr(v6))) = int8(_sqlite3UpperToLower[uint32(c)]) + *(*int8)(unsafe.Pointer(zAltEntry + uintptr(v6))) = int8(_sqlite3UpperToLower[uint32(uint32(c))]) } goto _4 _4: ; iFile++ } - libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16358, uint64(6)) + libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16445, uint64(6)) zEntry = zAltEntry xInit = _sqlite3OsDlSym(tls, pVfs, handle, zEntry) } if xInit == uintptr(0) { if pzErrMsg != 0 { - nMsg += libc.Xstrlen(tls, zEntry) + uint64(300) + nMsg += uint64(libc.Xstrlen(tls, zEntry) + uint64(300)) v7 = Xsqlite3_malloc64(tls, nMsg) *(*uintptr)(unsafe.Pointer(bp)) = v7 *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v7 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16364, libc.VaList(bp+16, zEntry, zFile)) + Xsqlite3_snprintf(tls, int32(int32(nMsg)), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16451, libc.VaList(bp+16, zEntry, zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -111777,14 +112557,14 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp return SQLITE_OK } if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16407, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16494, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3OsDlClose(tls, pVfs, handle) return int32(SQLITE_ERROR) } /* Append the new shared library handle to the db->aExtension array. */ - aHandle = _sqlite3DbMallocZero(tls, db, uint64(8)*uint64((*Tsqlite3)(unsafe.Pointer(db)).FnExtension+libc.Int32FromInt32(1))) + aHandle = _sqlite3DbMallocZero(tls, db, uint64(uint64(8)*uint64((*Tsqlite3)(unsafe.Pointer(db)).FnExtension+libc.Int32FromInt32(1)))) if aHandle == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -111798,6 +112578,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*int32)(unsafe.Pointer(v9))++ *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaExtension + uintptr(v8)*8)) = handle return SQLITE_OK + goto extension_not_found extension_not_found: ; if pzErrMsg != 0 { @@ -111807,7 +112588,7 @@ extension_not_found: *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v10 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16439, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) + Xsqlite3_snprintf(tls, int32(int32(nMsg)), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16526, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -111816,7 +112597,7 @@ extension_not_found: /* Shared library endings to try if zFile cannot be loaded as written */ var _azEndings = [1]uintptr{ - 0: __ccgo_ts + 16319, + 0: __ccgo_ts + 16406, } func Xsqlite3_load_extension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintptr, pzErrMsg uintptr) (r int32) { @@ -111934,7 +112715,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { i++ } if i == _sqlite3Autoext.FnExt { - nByte = uint64(_sqlite3Autoext.FnExt+libc.Uint32FromInt32(1)) * uint64(8) + nByte = uint64(uint64(_sqlite3Autoext.FnExt+libc.Uint32FromInt32(1)) * uint64(8)) aNew = Xsqlite3_realloc64(tls, _sqlite3Autoext.FaExt, nByte) if aNew == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -112049,7 +112830,7 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { rc = v2 } if v3 && v2 != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16476, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16563, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) go1 = 0 } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -112103,63 +112884,63 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { // ** result column is different from the name of the pragma // */ var _pragCName = [57]uintptr{ - 0: __ccgo_ts + 5485, - 1: __ccgo_ts + 16515, - 2: __ccgo_ts + 9062, - 3: __ccgo_ts + 16519, - 4: __ccgo_ts + 16524, - 5: __ccgo_ts + 16527, - 6: __ccgo_ts + 16537, - 7: __ccgo_ts + 16547, - 8: __ccgo_ts + 16553, - 9: __ccgo_ts + 16557, - 10: __ccgo_ts + 16562, - 11: __ccgo_ts + 16567, - 12: __ccgo_ts + 16575, - 13: __ccgo_ts + 16586, - 14: __ccgo_ts + 16589, - 15: __ccgo_ts + 16596, - 16: __ccgo_ts + 16557, - 17: __ccgo_ts + 16562, - 18: __ccgo_ts + 16603, - 19: __ccgo_ts + 16608, - 20: __ccgo_ts + 16611, - 21: __ccgo_ts + 16618, - 22: __ccgo_ts + 16553, - 23: __ccgo_ts + 16557, - 24: __ccgo_ts + 16624, - 25: __ccgo_ts + 16629, - 26: __ccgo_ts + 16634, - 27: __ccgo_ts + 16557, - 28: __ccgo_ts + 16638, - 29: __ccgo_ts + 16562, - 30: __ccgo_ts + 16646, - 31: __ccgo_ts + 16650, - 32: __ccgo_ts + 16655, - 33: __ccgo_ts + 11801, - 34: __ccgo_ts + 11797, - 35: __ccgo_ts + 16661, - 36: __ccgo_ts + 16666, - 37: __ccgo_ts + 16671, - 38: __ccgo_ts + 16515, - 39: __ccgo_ts + 16557, - 40: __ccgo_ts + 16676, - 41: __ccgo_ts + 16683, - 42: __ccgo_ts + 16690, - 43: __ccgo_ts + 9062, - 44: __ccgo_ts + 16698, - 45: __ccgo_ts + 5488, - 46: __ccgo_ts + 16704, - 47: __ccgo_ts + 16515, - 48: __ccgo_ts + 16557, - 49: __ccgo_ts + 16709, - 50: __ccgo_ts + 16714, - 51: __ccgo_ts + 15911, - 52: __ccgo_ts + 16719, - 53: __ccgo_ts + 16732, - 54: __ccgo_ts + 16741, - 55: __ccgo_ts + 16748, - 56: __ccgo_ts + 16759, + 0: __ccgo_ts + 5549, + 1: __ccgo_ts + 16602, + 2: __ccgo_ts + 9187, + 3: __ccgo_ts + 16606, + 4: __ccgo_ts + 16611, + 5: __ccgo_ts + 16614, + 6: __ccgo_ts + 16624, + 7: __ccgo_ts + 16634, + 8: __ccgo_ts + 16640, + 9: __ccgo_ts + 16644, + 10: __ccgo_ts + 16649, + 11: __ccgo_ts + 16654, + 12: __ccgo_ts + 16662, + 13: __ccgo_ts + 16673, + 14: __ccgo_ts + 16676, + 15: __ccgo_ts + 16683, + 16: __ccgo_ts + 16644, + 17: __ccgo_ts + 16649, + 18: __ccgo_ts + 16690, + 19: __ccgo_ts + 16695, + 20: __ccgo_ts + 16698, + 21: __ccgo_ts + 16705, + 22: __ccgo_ts + 16640, + 23: __ccgo_ts + 16644, + 24: __ccgo_ts + 16711, + 25: __ccgo_ts + 16716, + 26: __ccgo_ts + 16721, + 27: __ccgo_ts + 16644, + 28: __ccgo_ts + 16725, + 29: __ccgo_ts + 16649, + 30: __ccgo_ts + 16733, + 31: __ccgo_ts + 16737, + 32: __ccgo_ts + 16742, + 33: __ccgo_ts + 11926, + 34: __ccgo_ts + 11922, + 35: __ccgo_ts + 16748, + 36: __ccgo_ts + 16753, + 37: __ccgo_ts + 16758, + 38: __ccgo_ts + 16602, + 39: __ccgo_ts + 16644, + 40: __ccgo_ts + 16763, + 41: __ccgo_ts + 16770, + 42: __ccgo_ts + 16777, + 43: __ccgo_ts + 9187, + 44: __ccgo_ts + 16785, + 45: __ccgo_ts + 5552, + 46: __ccgo_ts + 16791, + 47: __ccgo_ts + 16602, + 48: __ccgo_ts + 16644, + 49: __ccgo_ts + 16796, + 50: __ccgo_ts + 16801, + 51: __ccgo_ts + 15990, + 52: __ccgo_ts + 16806, + 53: __ccgo_ts + 16819, + 54: __ccgo_ts + 16828, + 55: __ccgo_ts + 16835, + 56: __ccgo_ts + 16846, } // C documentation @@ -112178,191 +112959,191 @@ type PragmaName = TPragmaName var _aPragmaName = [66]TPragmaName{ 0: { - FzName: __ccgo_ts + 16767, + FzName: __ccgo_ts + 16854, FePragTyp: uint8(PragTyp_ANALYSIS_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 1: { - FzName: __ccgo_ts + 16782, + FzName: __ccgo_ts + 16869, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_APPLICATION_ID), }, 2: { - FzName: __ccgo_ts + 16797, + FzName: __ccgo_ts + 16884, FePragTyp: uint8(PragTyp_AUTO_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 3: { - FzName: __ccgo_ts + 16809, + FzName: __ccgo_ts + 16896, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_AutoIndex), }, 4: { - FzName: __ccgo_ts + 16825, + FzName: __ccgo_ts + 16912, FePragTyp: uint8(PragTyp_BUSY_TIMEOUT), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(56), FnPragCName: uint8(1), }, 5: { - FzName: __ccgo_ts + 16748, + FzName: __ccgo_ts + 16835, FePragTyp: uint8(PragTyp_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 6: { - FzName: __ccgo_ts + 16838, + FzName: __ccgo_ts + 16925, FePragTyp: uint8(PragTyp_CACHE_SPILL), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 7: { - FzName: __ccgo_ts + 16850, + FzName: __ccgo_ts + 16937, FePragTyp: uint8(PragTyp_CASE_SENSITIVE_LIKE), FmPragFlg: uint8(PragFlg_NoColumns), }, 8: { - FzName: __ccgo_ts + 16870, + FzName: __ccgo_ts + 16957, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CellSizeCk), }, 9: { - FzName: __ccgo_ts + 16886, + FzName: __ccgo_ts + 16973, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CkptFullFSync), }, 10: { - FzName: __ccgo_ts + 16907, + FzName: __ccgo_ts + 16994, FePragTyp: uint8(PragTyp_COLLATION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(38), FnPragCName: uint8(2), }, 11: { - FzName: __ccgo_ts + 16922, + FzName: __ccgo_ts + 17009, FePragTyp: uint8(PragTyp_COMPILE_OPTIONS), FmPragFlg: uint8(PragFlg_Result0), }, 12: { - FzName: __ccgo_ts + 16938, + FzName: __ccgo_ts + 17025, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00001)) << libc.Int32FromInt32(32), }, 13: { - FzName: __ccgo_ts + 16952, + FzName: __ccgo_ts + 17039, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_DATA_VERSION), }, 14: { - FzName: __ccgo_ts + 16965, + FzName: __ccgo_ts + 17052, FePragTyp: uint8(PragTyp_DATABASE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(47), FnPragCName: uint8(3), }, 15: { - FzName: __ccgo_ts + 16979, + FzName: __ccgo_ts + 17066, FePragTyp: uint8(PragTyp_DEFAULT_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiPragCName: uint8(55), FnPragCName: uint8(1), }, 16: { - FzName: __ccgo_ts + 16998, + FzName: __ccgo_ts + 17085, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_DeferFKs), }, 17: { - FzName: __ccgo_ts + 17017, + FzName: __ccgo_ts + 17104, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_NullCallback), }, 18: { - FzName: __ccgo_ts + 17040, + FzName: __ccgo_ts + 17127, FePragTyp: uint8(PragTyp_ENCODING), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 19: { - FzName: __ccgo_ts + 17049, + FzName: __ccgo_ts + 17136, FePragTyp: uint8(PragTyp_FOREIGN_KEY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(43), FnPragCName: uint8(4), }, 20: { - FzName: __ccgo_ts + 17067, + FzName: __ccgo_ts + 17154, FePragTyp: uint8(PragTyp_FOREIGN_KEY_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FnPragCName: uint8(8), }, 21: { - FzName: __ccgo_ts + 17084, + FzName: __ccgo_ts + 17171, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ForeignKeys), }, 22: { - FzName: __ccgo_ts + 17097, + FzName: __ccgo_ts + 17184, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), }, 23: { - FzName: __ccgo_ts + 17112, + FzName: __ccgo_ts + 17199, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullColNames), }, 24: { - FzName: __ccgo_ts + 17130, + FzName: __ccgo_ts + 17217, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullFSync), }, 25: { - FzName: __ccgo_ts + 17140, + FzName: __ccgo_ts + 17227, FePragTyp: uint8(PragTyp_FUNCTION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(27), FnPragCName: uint8(6), }, 26: { - FzName: __ccgo_ts + 17154, + FzName: __ccgo_ts + 17241, FePragTyp: uint8(PragTyp_HARD_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 27: { - FzName: __ccgo_ts + 17170, + FzName: __ccgo_ts + 17257, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_IgnoreChecks), }, 28: { - FzName: __ccgo_ts + 17195, + FzName: __ccgo_ts + 17282, FePragTyp: uint8(PragTyp_INCREMENTAL_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_NoColumns)), }, 29: { - FzName: __ccgo_ts + 17214, + FzName: __ccgo_ts + 17301, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), FnPragCName: uint8(3), }, 30: { - FzName: __ccgo_ts + 17225, + FzName: __ccgo_ts + 17312, FePragTyp: uint8(PragTyp_INDEX_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(38), FnPragCName: uint8(5), }, 31: { - FzName: __ccgo_ts + 17236, + FzName: __ccgo_ts + 17323, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), @@ -112370,146 +113151,146 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 32: { - FzName: __ccgo_ts + 17248, + FzName: __ccgo_ts + 17335, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 33: { - FzName: __ccgo_ts + 17264, + FzName: __ccgo_ts + 17351, FePragTyp: uint8(PragTyp_JOURNAL_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 34: { - FzName: __ccgo_ts + 17277, + FzName: __ccgo_ts + 17364, FePragTyp: uint8(PragTyp_JOURNAL_SIZE_LIMIT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 35: { - FzName: __ccgo_ts + 17296, + FzName: __ccgo_ts + 17383, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_LegacyAlter), }, 36: { - FzName: __ccgo_ts + 17315, + FzName: __ccgo_ts + 17402, FePragTyp: uint8(PragTyp_LOCKING_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 37: { - FzName: __ccgo_ts + 17328, + FzName: __ccgo_ts + 17415, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 38: { - FzName: __ccgo_ts + 17343, + FzName: __ccgo_ts + 17430, FePragTyp: uint8(PragTyp_MMAP_SIZE), }, 39: { - FzName: __ccgo_ts + 17353, + FzName: __ccgo_ts + 17440, FePragTyp: uint8(PragTyp_MODULE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 40: { - FzName: __ccgo_ts + 17365, + FzName: __ccgo_ts + 17452, FePragTyp: uint8(PragTyp_OPTIMIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_NeedSchema)), }, 41: { - FzName: __ccgo_ts + 17374, + FzName: __ccgo_ts + 17461, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 42: { - FzName: __ccgo_ts + 17385, + FzName: __ccgo_ts + 17472, FePragTyp: uint8(PragTyp_PAGE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 43: { - FzName: __ccgo_ts + 17395, + FzName: __ccgo_ts + 17482, FePragTyp: uint8(PragTyp_PRAGMA_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 44: { - FzName: __ccgo_ts + 17407, + FzName: __ccgo_ts + 17494, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_QueryOnly), }, 45: { - FzName: __ccgo_ts + 17418, + FzName: __ccgo_ts + 17505, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 46: { - FzName: __ccgo_ts + 17430, + FzName: __ccgo_ts + 17517, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00004)) << libc.Int32FromInt32(32), }, 47: { - FzName: __ccgo_ts + 17447, + FzName: __ccgo_ts + 17534, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_RecTriggers), }, 48: { - FzName: __ccgo_ts + 17466, + FzName: __ccgo_ts + 17553, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ReverseOrder), }, 49: { - FzName: __ccgo_ts + 17492, + FzName: __ccgo_ts + 17579, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_SCHEMA_VERSION), }, 50: { - FzName: __ccgo_ts + 17507, + FzName: __ccgo_ts + 17594, FePragTyp: uint8(PragTyp_SECURE_DELETE), FmPragFlg: uint8(PragFlg_Result0), }, 51: { - FzName: __ccgo_ts + 17521, + FzName: __ccgo_ts + 17608, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ShortColNames), }, 52: { - FzName: __ccgo_ts + 17540, + FzName: __ccgo_ts + 17627, FePragTyp: uint8(PragTyp_SHRINK_MEMORY), FmPragFlg: uint8(PragFlg_NoColumns), }, 53: { - FzName: __ccgo_ts + 17554, + FzName: __ccgo_ts + 17641, FePragTyp: uint8(PragTyp_SOFT_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 54: { - FzName: __ccgo_ts + 17570, + FzName: __ccgo_ts + 17657, FePragTyp: uint8(PragTyp_SYNCHRONOUS), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 55: { - FzName: __ccgo_ts + 17582, + FzName: __ccgo_ts + 17669, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), FnPragCName: uint8(6), }, 56: { - FzName: __ccgo_ts + 17593, + FzName: __ccgo_ts + 17680, FePragTyp: uint8(PragTyp_TABLE_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1)), FiPragCName: uint8(15), FnPragCName: uint8(6), }, 57: { - FzName: __ccgo_ts + 17604, + FzName: __ccgo_ts + 17691, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), @@ -112517,45 +113298,45 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 58: { - FzName: __ccgo_ts + 17616, + FzName: __ccgo_ts + 17703, FePragTyp: uint8(PragTyp_TEMP_STORE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 59: { - FzName: __ccgo_ts + 17627, + FzName: __ccgo_ts + 17714, FePragTyp: uint8(PragTyp_TEMP_STORE_DIRECTORY), FmPragFlg: uint8(PragFlg_NoColumns1), }, 60: { - FzName: __ccgo_ts + 17648, + FzName: __ccgo_ts + 17735, FePragTyp: uint8(PragTyp_THREADS), FmPragFlg: uint8(PragFlg_Result0), }, 61: { - FzName: __ccgo_ts + 17656, + FzName: __ccgo_ts + 17743, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_TrustedSchema), }, 62: { - FzName: __ccgo_ts + 17671, + FzName: __ccgo_ts + 17758, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_USER_VERSION), }, 63: { - FzName: __ccgo_ts + 17684, + FzName: __ccgo_ts + 17771, FePragTyp: uint8(PragTyp_WAL_AUTOCHECKPOINT), }, 64: { - FzName: __ccgo_ts + 17703, + FzName: __ccgo_ts + 17790, FePragTyp: uint8(PragTyp_WAL_CHECKPOINT), FmPragFlg: uint8(PragFlg_NeedSchema), FiPragCName: uint8(50), FnPragCName: uint8(3), }, 65: { - FzName: __ccgo_ts + 17718, + FzName: __ccgo_ts + 17805, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(SQLITE_WriteSchema) | libc.Int32FromInt32(SQLITE_NoSchemaError)), @@ -112567,6 +113348,31 @@ var _aPragmaName = [66]TPragmaName{ /************** End of pragma.h **********************************************/ /************** Continuing where we left off in pragma.c *********************/ +/* +** When the 0x10 bit of PRAGMA optimize is set, any ANALYZE commands +** will be run with an analysis_limit set to the lessor of the value of +** the following macro or to the actual analysis_limit if it is non-zero, +** in order to prevent PRAGMA optimize from running for too long. +** +** The value of 2000 is chosen emperically so that the worst-case run-time +** for PRAGMA optimize does not exceed 100 milliseconds against a variety +** of test databases on a RaspberryPI-4 compiled using -Os and without +** -DSQLITE_DEBUG. Of course, your mileage may vary. For the purpose of +** this paragraph, "worst-case" means that ANALYZE ends up being +** run on every table in the database. The worst case typically only +** happens if PRAGMA optimize is run on a database file for which ANALYZE +** has not been previously run and the 0x10000 flag is included so that +** all tables are analyzed. The usual case for PRAGMA optimize is that +** no ANALYZE commands will be run at all, or if any ANALYZE happens it +** will be against a single table, so that expected timing for PRAGMA +** optimize on a PI-4 is more like 1 millisecond or less with the 0x10000 +** flag or less than 100 microseconds without the 0x10000 flag. +** +** An analysis limit of 2000 is almost always sufficient for the query +** planner to fully characterize an index. The additional accuracy from +** a larger analysis is not usually helpful. + */ + // C documentation // // /* @@ -112656,10 +113462,10 @@ func _sqlite3GetBoolean(tls *libc.TLS, z uintptr, dflt Tu8) (r Tu8) { // */ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { if z != 0 { - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17734) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17821) { return int32(PAGER_LOCKINGMODE_EXCLUSIVE) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17744) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17831) { return PAGER_LOCKINGMODE_NORMAL } } @@ -112677,13 +113483,13 @@ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { func _getAutoVacuum(tls *libc.TLS, z uintptr) (r int32) { var i, v1 int32 _, _ = i, v1 - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8222) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8347) { return BTREE_AUTOVACUUM_NONE } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17751) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17838) { return int32(BTREE_AUTOVACUUM_FULL) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17756) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17843) { return int32(BTREE_AUTOVACUUM_INCR) } i = _sqlite3Atoi(tls, z) @@ -112706,10 +113512,10 @@ func _getTempStore(tls *libc.TLS, z uintptr) (r int32) { if int32(*(*int8)(unsafe.Pointer(z))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(z))) <= int32('2') { return int32(*(*int8)(unsafe.Pointer(z))) - int32('0') } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+16709) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+16796) == 0 { return int32(1) } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+17768) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+17855) == 0 { return int32(2) } else { return 0 @@ -112731,7 +113537,7 @@ func _invalidateTempStorage(tls *libc.TLS, pParse uintptr) (r int32) { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt != uintptr(0) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || _sqlite3BtreeTxnState(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) != SQLITE_TXN_NONE { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17775, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17862, 0) return int32(SQLITE_ERROR) } _sqlite3BtreeClose(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) @@ -112760,7 +113566,7 @@ func _changeTempStorage(tls *libc.TLS, pParse uintptr, zStorageType uintptr) (r if _invalidateTempStorage(tls, pParse) != SQLITE_OK { return int32(SQLITE_ERROR) } - (*Tsqlite3)(unsafe.Pointer(db)).Ftemp_store = uint8(ts) + (*Tsqlite3)(unsafe.Pointer(db)).Ftemp_store = uint8(uint8(ts)) return SQLITE_OK } @@ -112774,19 +113580,19 @@ func _setPragmaResultColumnNames(tls *libc.TLS, v uintptr, pPragma uintptr) { var n Tu8 _, _, _, _ = i, j, n, v1 n = (*TPragmaName)(unsafe.Pointer(pPragma)).FnPragCName - if int32(n) == 0 { + if int32(int32(n)) == 0 { v1 = int32(1) } else { - v1 = int32(n) + v1 = int32(int32(n)) } _sqlite3VdbeSetNumCols(tls, v, v1) - if int32(n) == 0 { + if int32(int32(n)) == 0 { _sqlite3VdbeSetColName(tls, v, 0, COLNAME_NAME, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName, libc.UintptrFromInt32(0)) } else { i = 0 j = int32((*TPragmaName)(unsafe.Pointer(pPragma)).FiPragCName) for { - if !(i < int32(n)) { + if !(i < int32(int32(n))) { break } _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, _pragCName[j], libc.UintptrFromInt32(0)) @@ -112859,17 +113665,17 @@ func _setAllPagerFlags(tls *libc.TLS, db uintptr) { func _actionName(tls *libc.TLS, action Tu8) (r uintptr) { var zName uintptr _ = zName - switch int32(action) { + switch int32(int32(action)) { case int32(OE_SetNull): - zName = __ccgo_ts + 17837 + zName = __ccgo_ts + 17924 case int32(OE_SetDflt): - zName = __ccgo_ts + 17846 + zName = __ccgo_ts + 17933 case int32(OE_Cascade): - zName = __ccgo_ts + 17858 + zName = __ccgo_ts + 17945 case int32(OE_Restrict): - zName = __ccgo_ts + 17866 + zName = __ccgo_ts + 17953 default: - zName = __ccgo_ts + 17875 + zName = __ccgo_ts + 17962 break } return zName @@ -112890,12 +113696,12 @@ func _sqlite3JournalModename(tls *libc.TLS, eMode int32) (r uintptr) { } var _azModeName = [6]uintptr{ - 0: __ccgo_ts + 17885, - 1: __ccgo_ts + 17892, - 2: __ccgo_ts + 17900, - 3: __ccgo_ts + 17904, - 4: __ccgo_ts + 17768, - 5: __ccgo_ts + 17913, + 0: __ccgo_ts + 17972, + 1: __ccgo_ts + 17979, + 2: __ccgo_ts + 17987, + 3: __ccgo_ts + 17991, + 4: __ccgo_ts + 17855, + 5: __ccgo_ts + 18000, } // C documentation @@ -112957,15 +113763,15 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s goto _1 } if (*TFuncDef)(unsafe.Pointer(p)).FxValue != uintptr(0) { - zType = __ccgo_ts + 17938 + zType = __ccgo_ts + 18025 } else { if (*TFuncDef)(unsafe.Pointer(p)).FxFinalize != uintptr(0) { - zType = __ccgo_ts + 17940 + zType = __ccgo_ts + 18027 } else { - zType = __ccgo_ts + 7621 + zType = __ccgo_ts + 7746 } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+17942, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18029, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) goto _1 _1: ; @@ -112974,9 +113780,9 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s } var _azEnc = [4]uintptr{ - 1: __ccgo_ts + 17917, - 2: __ccgo_ts + 17922, - 3: __ccgo_ts + 17930, + 1: __ccgo_ts + 18004, + 2: __ccgo_ts + 18009, + 3: __ccgo_ts + 18017, } // C documentation @@ -113017,15 +113823,15 @@ func _integrityCheckResultRow(tls *libc.TLS, v uintptr) (r int32) { func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pValue uintptr, minusFlag int32) { bp := tls.Alloc(240) defer tls.Free(240) - var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, mxIdx, n, nHidden, nIdx, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v60, v62, v63, v64, v65, v68 int32 - var aOp, aOp1, aOp2, aOp3, aOp4, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v61, v66, v8 uintptr + var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v48, v50, v64, v66, v67, v68, v69, v72, v75, v76 int32 + var aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v65, v70, v8 uintptr var azOrigin [3]uintptr var cnum Ti16 var enc Tu8 var iPrior Tsqlite3_int64 + var iRange, szThreshold TLogEst var mask Tu64 var opMask Tu32 - var szThreshold TLogEst var _ /* N at bp+136 */ Tsqlite3_int64 var _ /* N at bp+144 */ Tsqlite3_int64 var _ /* N at bp+152 */ Tsqlite3_int64 @@ -113046,7 +113852,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p var _ /* size at bp+60 */ int32 var _ /* sz at bp+64 */ Tsqlite3_int64 var _ /* x at bp+40 */ Ti64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iPrior, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, mxIdx, n, nHidden, nIdx, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v5, v60, v61, v62, v63, v64, v65, v66, v68, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iPrior, iRange, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v48, v5, v50, v64, v65, v66, v67, v68, v69, v70, v72, v75, v76, v8 zLeft = uintptr(0) /* Nul-terminated UTF-8 string */ zRight = uintptr(0) /* Nul-terminated UTF-8 string , or NULL */ zDb = uintptr(0) /* return value form SQLITE_FCNTL_PRAGMA */ @@ -113075,7 +113881,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p return } if minusFlag != 0 { - zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+17949, libc.VaList(bp+176, pValue)) + zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+18036, libc.VaList(bp+176, pValue)) } else { zRight = _sqlite3NameFromToken(tls, db, pValue) } @@ -113118,7 +113924,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } if rc != int32(SQLITE_NOTFOUND) { if (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0] != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3799, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3863, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) Xsqlite3_free(tls, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0]) } (*TParse)(unsafe.Pointer(pParse)).FnErr++ @@ -113198,7 +114004,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p v2 = 0 } size1 = v2 - _returnSingleInt(tls, v, int64(size1)) + _returnSingleInt(tls, v, int64(int64(size1))) } else { /* Malloc may fail when setting the page-size, as there is an internal ** buffer that the pager module resizes using sqlite3_realloc(). @@ -113222,7 +114028,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pBt1 = (*TDb)(unsafe.Pointer(pDb)).FpBt b = -int32(1) if zRight != 0 { - if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+17953) == 0 { + if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18040) == 0 { b = int32(2) } else { b = int32(_sqlite3GetBoolean(tls, zRight, uint8(0))) @@ -113242,7 +114048,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } } b = _sqlite3BtreeSecureDelete(tls, pBt1, b) - _returnSingleInt(tls, v, int64(b)) + _returnSingleInt(tls, v, int64(int64(b))) break /* ** PRAGMA [schema.]max_page_count @@ -113293,7 +114099,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p */ fallthrough case int32(PragTyp_LOCKING_MODE): - zRet = __ccgo_ts + 17744 + zRet = __ccgo_ts + 17831 eMode = _getLockingMode(tls, zRight) if (*TToken)(unsafe.Pointer(pId2)).Fn == uint32(0) && eMode == -int32(1) { /* Simple "PRAGMA locking_mode;" statement. This is a query for @@ -113315,13 +114121,13 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ; ii1++ } - (*Tsqlite3)(unsafe.Pointer(db)).FdfltLockMode = uint8(eMode) + (*Tsqlite3)(unsafe.Pointer(db)).FdfltLockMode = uint8(uint8(eMode)) } pPager = _sqlite3BtreePager(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) eMode = _sqlite3PagerLockingMode(tls, pPager, eMode) } if eMode == int32(PAGER_LOCKINGMODE_EXCLUSIVE) { - zRet = __ccgo_ts + 17734 + zRet = __ccgo_ts + 17821 } _returnSingleText(tls, v, zRet) break @@ -113418,7 +114224,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _returnSingleInt(tls, v, int64(_sqlite3BtreeGetAutoVacuum(tls, pBt2))) } else { eAuto = _getAutoVacuum(tls, zRight) - (*Tsqlite3)(unsafe.Pointer(db)).FnextAutovac = int8(uint8(eAuto)) + (*Tsqlite3)(unsafe.Pointer(db)).FnextAutovac = int8(uint8(uint8(eAuto))) /* Call SetAutoVacuum() to set initialize the internal auto and ** incr-vacuum flags. This is required in case this connection ** creates the database file. It is important that it is created @@ -113611,7 +114417,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if *(*int8)(unsafe.Pointer(zRight)) != 0 { rc = _sqlite3OsAccess(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, zRight, int32(SQLITE_ACCESS_READWRITE), bp+72) if rc != SQLITE_OK || *(*int32)(unsafe.Pointer(bp + 72)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17958, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18045, 0) Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) goto pragma_out } @@ -113621,7 +114427,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } Xsqlite3_free(tls, Xsqlite3_temp_directory) if *(*int8)(unsafe.Pointer(zRight)) != 0 { - Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+176, zRight)) + Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+176, zRight)) } else { Xsqlite3_temp_directory = uintptr(0) } @@ -113643,14 +114449,14 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _returnSingleInt(tls, v, int64(int32((*TDb)(unsafe.Pointer(pDb)).Fsafety_level)-int32(1))) } else { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17983, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18070, 0) } else { if iDb != int32(1) { iLevel = (int32(_getSafetyLevel(tls, zRight, 0, uint8(1))) + int32(1)) & int32(PAGER_SYNCHRONOUS_MASK) if iLevel == 0 { iLevel = int32(1) } - (*TDb)(unsafe.Pointer(pDb)).Fsafety_level = uint8(iLevel) + (*TDb)(unsafe.Pointer(pDb)).Fsafety_level = uint8(uint8(iLevel)) (*TDb)(unsafe.Pointer(pDb)).FbSyncSet = uint8(1) _setAllPagerFlags(tls, db) } @@ -113676,7 +114482,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if mask == uint64(SQLITE_DeferFKs) { (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = 0 } - if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18036) == 0 { + if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18123) == 0 { /* IMP: R-60817-01178 If the argument is "RESET" then schema ** writing is disabled (as with "PRAGMA writable_schema=OFF") and, ** in addition, the schema is reloaded. */ @@ -113756,9 +114562,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pColExpr = _sqlite3ColumnExpr(tls, pTab, pCol) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - v14 = __ccgo_ts + 18042 + v14 = __ccgo_ts + 18129 } else { - v14 = __ccgo_ts + 18050 + v14 = __ccgo_ts + 18137 } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 { v15 = int32(1) @@ -113770,7 +114576,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v16 = *(*uintptr)(unsafe.Pointer(pColExpr + 8)) } - _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1652), v15, v16, k, isHidden)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1666), v15, v16, k, isHidden)) goto _12 _12: ; @@ -113829,7 +114635,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pTab1 = (*THashElem)(unsafe.Pointer(k1)).Fdata if int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) == 0 { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18057, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18144, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 80)) = uintptr(0) Xsqlite3_prepare(tls, db, zSql, -int32(1), bp+80, uintptr(0)) @@ -113837,7 +114643,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3DbFree(tls, db, zSql) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1622, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1636, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) } pHash = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FpSchema + 8 @@ -113859,19 +114665,19 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _20 } if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10800 + zType = __ccgo_ts + 10925 } else { if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 13048 + zType = __ccgo_ts + 13173 } else { if (*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Shadow) != 0 { - zType = __ccgo_ts + 18073 + zType = __ccgo_ts + 18160 } else { - zType = __ccgo_ts + 9062 + zType = __ccgo_ts + 9187 } } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18080, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18167, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) goto _20 _20: ; @@ -113913,14 +114719,14 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } cnum = *(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i1)*2)) - if int32(cnum) < 0 { + if int32(int32(cnum)) < 0 { v22 = uintptr(0) } else { v22 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab3)).FaCol + uintptr(cnum)*16))).FzCnName } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18087, libc.VaList(bp+176, i1, int32(cnum), v22)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18174, libc.VaList(bp+176, i1, int32(int32(cnum)), v22)) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18092, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) + _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18179, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) } _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), int32(1), (*TParse)(unsafe.Pointer(pParse)).FnMem) goto _21 @@ -113944,11 +114750,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } azOrigin = [3]uintptr{ - 0: __ccgo_ts + 18097, - 1: __ccgo_ts + 18099, - 2: __ccgo_ts + 16586, + 0: __ccgo_ts + 18184, + 1: __ccgo_ts + 18186, + 2: __ccgo_ts + 16673, } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18101, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18188, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) goto _23 _23: ; @@ -113967,7 +114773,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt == uintptr(0) { goto _24 } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18107, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18194, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) goto _24 _24: ; @@ -113984,7 +114790,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pColl = (*THashElem)(unsafe.Pointer(p)).Fdata v26 = i4 i4++ - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18111, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18198, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) goto _25 _25: ; @@ -114034,7 +114840,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } pMod = (*THashElem)(unsafe.Pointer(j1)).Fdata - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7621, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7746, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) goto _30 _30: ; @@ -114046,7 +114852,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i6 < int32(libc.Uint64FromInt64(1584)/libc.Uint64FromInt64(24))) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7621, libc.VaList(bp+176, _aPragmaName[i6].FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7746, libc.VaList(bp+176, _aPragmaName[i6].FzName)) goto _31 _31: ; @@ -114072,7 +114878,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(j2 < (*TFKey)(unsafe.Pointer(pFK)).FnCol) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18114, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18123)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18201, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18210)) goto _32 _32: ; @@ -114213,7 +115019,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regResult+int32(1)) } - _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18128, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) + _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18215, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), regResult, int32(4)) _sqlite3VdbeResolveLabel(tls, v, addrOk) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 96))) @@ -114281,7 +115087,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p /* Set the maximum error count */ *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) if zRight != 0 { - if _sqlite3GetInt32(tls, zRight, bp+104) != 0 { + if _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pValue)).Fz, bp+104) != 0 { if *(*int32)(unsafe.Pointer(bp + 104)) <= 0 { *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) } @@ -114301,8 +115107,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i9 < (*Tsqlite3)(unsafe.Pointer(db)).FnDb) { break } /* Array of root page numbers of all btrees */ - cnt = 0 /* Number of entries in aRoot[] */ - mxIdx = 0 /* Maximum number of indexes for any table */ + cnt = 0 /* Number of entries in aRoot[] */ if libc.Bool(OMIT_TEMPDB != 0) && i9 == int32(1) { goto _40 } @@ -114343,9 +115148,6 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pIdx3 = (*TIndex)(unsafe.Pointer(pIdx3)).FpNext nIdx++ } - if nIdx > mxIdx { - mxIdx = nIdx - } goto _41 _41: ; @@ -114357,7 +115159,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if pObjTab != 0 { cnt++ } - aRoot = _sqlite3DbMallocRawNN(tls, db, uint64(4)*uint64(cnt+libc.Int32FromInt32(1))) + aRoot = _sqlite3DbMallocRawNN(tls, db, uint64(uint64(4)*uint64(cnt+libc.Int32FromInt32(1)))) if aRoot == uintptr(0) { break } @@ -114401,16 +115203,78 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } *(*int32)(unsafe.Pointer(aRoot)) = cnt /* Make sure sufficient number of registers have been allocated */ - _sqlite3TouchRegister(tls, pParse, int32(8)+mxIdx) + _sqlite3TouchRegister(tls, pParse, int32(8)+cnt) _sqlite3ClearTempRegCache(tls, pParse) /* Do the b-tree integrity checks */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(2), cnt, int32(1), aRoot, -int32(14)) - _sqlite3VdbeChangeP5(tls, v, uint16(uint8(i9))) + _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(1), cnt, int32(8), aRoot, -int32(14)) + _sqlite3VdbeChangeP5(tls, v, uint16(uint8(uint8(i9)))) addr1 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(2)) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18132, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18219, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(2), int32(3), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, addr1) + /* Check that the indexes all have the right number of rows */ + if pObjTab != 0 { + v48 = int32(1) + } else { + v48 = 0 + } + cnt = v48 + _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18243) + x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst + for { + if !(x2 != 0) { + break + } + iTab = 0 + pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab9 { + goto _49 + } + if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + v50 = cnt + cnt++ + iTab = v50 + } else { + iTab = cnt + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx5 + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { + break + } + iTab++ + goto _51 + _51: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + } + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if (*TIndex)(unsafe.Pointer(pIdx5)).FpPartIdxWhere == uintptr(0) { + addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+cnt, 0, int32(8)+iTab) + _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) + _integrityCheckResultRow(tls, v) + _sqlite3VdbeJumpHere(tls, v, addr1) + } + cnt++ + goto _52 + _52: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + goto _49 + _49: + ; + x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext + } /* Make sure all the indices are constructed correctly. */ x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst @@ -114418,39 +115282,39 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata pPrior = uintptr(0) r1 = -int32(1) /* Maximum non-virtual column number */ - if pObjTab != 0 && pObjTab != pTab9 { - goto _48 + if pObjTab != 0 && pObjTab != pTab10 { + goto _53 } - if !(int32((*TTable)(unsafe.Pointer(pTab9)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { - goto _48 + if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _53 } - if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { pPk1 = uintptr(0) r2 = 0 } else { - pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab9) + pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab10) r2 = _sqlite3GetTempRange(tls, pParse, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), int32(1), r2, r2+int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)-int32(1)) } - _sqlite3OpenTableAndIndices(tls, pParse, pTab9, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) + _sqlite3OpenTableAndIndices(tls, pParse, pTab10, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) /* reg[7] counts the number of entries in the table. ** reg[8+i] counts the number of entries in the i-th index */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(7)) j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(8)+j4) /* index entries counter */ - goto _49 - _49: + goto _54 + _54: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), *(*int32)(unsafe.Pointer(bp + 108)), 0) @@ -114460,29 +115324,29 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** will also prepopulate the cursor column cache that is used ** by the OP_IsType code, so it is a required step. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { mxCol = -int32(1) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { + if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { mxCol++ } - goto _50 - _50: + goto _55 + _55: ; j4++ } - if mxCol == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { + if mxCol == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { mxCol-- } } else { /* COLFLAG_VIRTUAL columns are not included in the WITHOUT ROWID ** PK index column-count, so there is no need to account for them ** in this case. */ - mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab9))).FnColumn) - int32(1) + mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab10))).FnColumn) - int32(1) } if mxCol >= 0 { _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 108)), mxCol, int32(3)) @@ -114492,7 +115356,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if pPk1 != 0 { a1 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 108)), 0, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), r2) - zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18156, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18272, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a1) @@ -114503,8 +115367,8 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprCodeLoadIndexColumn(tls, pParse, pPk1, *(*int32)(unsafe.Pointer(bp + 108)), j4, r2+j4) - goto _51 - _51: + goto _56 + _56: ; j4++ } @@ -114519,15 +115383,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** (4) Datatype for numeric columns in non-STRICT tables must not ** be a TEXT value that can be losslessly converted to numeric. */ - bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_Strict) != uint32(0)) + bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_Strict) != uint32(0)) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - pCol1 = (*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ - if j4 == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { - goto _52 + pCol1 = (*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ + if j4 == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { + goto _57 } if bStrict != 0 { doTypeCheck = libc.BoolInt32(int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4)) > int32(COLTYPE_ANY)) @@ -114535,28 +115399,28 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p doTypeCheck = libc.BoolInt32(int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) > int32(SQLITE_AFF_BLOB)) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf>>0)) == 0 && !(doTypeCheck != 0) { - goto _52 + goto _57 } /* Compute the operands that will be needed for OP_IsType */ p4 = int32(SQLITE_NULL) if int32((*TColumn)(unsafe.Pointer(pCol1)).FcolFlags)&int32(COLFLAG_VIRTUAL) != 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) p11 = -int32(1) p3 = int32(3) } else { if (*TColumn)(unsafe.Pointer(pCol1)).FiDflt != 0 { *(*uintptr)(unsafe.Pointer(bp + 120)) = uintptr(0) - _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab9, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8((*TColumn)(unsafe.Pointer(pCol1)).Faffinity), bp+120) + _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab10, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8((*TColumn)(unsafe.Pointer(pCol1)).Faffinity), bp+120) if *(*uintptr)(unsafe.Pointer(bp + 120)) != 0 { p4 = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) } } p11 = *(*int32)(unsafe.Pointer(bp + 108)) - if !((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { - p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab9), int16(j4))) + if !((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { + p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab10), int16(int16(j4)))) } else { - p3 = int32(_sqlite3TableColumnToStorage(tls, pTab9, int16(j4))) + p3 = int32(_sqlite3TableColumnToStorage(tls, pTab10, int16(int16(j4)))) } } labelError = _sqlite3VdbeMakeLabel(tls, pParse) @@ -114573,10 +115437,10 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** is REAL, we have to load the actual data using OP_Column ** to reliably determine if the value is a NULL. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), p11, p3, int32(3)) - _sqlite3ColumnDefault(tls, v, pTab9, j4, int32(3)) + _sqlite3ColumnDefault(tls, v, pTab10, j4, int32(3)) jmp3 = _sqlite3VdbeAddOp2(tls, v, int32(OP_NotNull), int32(3), labelOk) } - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18192, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18308, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) if doTypeCheck != 0 { _sqlite3VdbeGoto(tls, v, labelError) @@ -114589,7 +115453,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if bStrict != 0 && doTypeCheck != 0 { _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(_aStdTypeMask[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)])) - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18212, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18328, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) == int32(SQLITE_AFF_TEXT) { @@ -114597,7 +115461,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** NULL, TEXT, or BLOB. */ _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18234, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18350, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) >= int32(SQLITE_AFF_NUMERIC) { @@ -114606,12 +115470,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1b)) /* NULL, INT, FLOAT, or BLOB */ if p11 >= 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18257, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18373, -int32(1)) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), -int32(1), labelOk, int32(3), p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18259, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18375, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } } @@ -114619,14 +115483,14 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeResolveLabel(tls, v, labelError) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, labelOk) - goto _52 - _52: + goto _57 + _57: ; j4++ } /* Verify CHECK constraints */ - if (*TTable)(unsafe.Pointer(pTab9)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { - pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab9)).FpCheck, 0) + if (*TTable)(unsafe.Pointer(pTab10)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { + pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab10)).FpCheck, 0) if int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { addrCkFault = _sqlite3VdbeMakeLabel(tls, pParse) addrCkOk = _sqlite3VdbeMakeLabel(tls, pParse) @@ -114637,15 +115501,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprIfFalse(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8 + uintptr(k3)*32))).FpExpr, addrCkFault, 0) - goto _53 - _53: + goto _58 + _58: ; k3-- } _sqlite3ExprIfTrue(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8))).FpExpr, addrCkOk, int32(SQLITE_JUMPIFNULL)) _sqlite3VdbeResolveLabel(tls, v, addrCkFault) (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 - zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18279, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18395, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr2, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, addrCkOk) @@ -114655,25 +115519,25 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(isQuick != 0) { /* Omit the remaining tests for quick_check */ /* Validate index entries for the current row */ j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } ckUniq = _sqlite3VdbeMakeLabel(tls, pParse) - if pPk1 == pIdx5 { - goto _54 + if pPk1 == pIdx6 { + goto _59 } - r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx5, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) - pPrior = pIdx5 + r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx6, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) + pPrior = pIdx6 _sqlite3VdbeAddOp2(tls, v, int32(OP_AddImm), int32(8)+j4, int32(1)) /* increment entry count */ /* Verify that an index entry exists for the current table row */ - jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18309) + jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18425) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18314) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18430) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) - jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx6)).FzName) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) jmp4 = _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, jmp21) @@ -114681,12 +115545,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** that extracts the rowid off the end of the index record. ** But it only works correctly if index record does not have ** any extra bytes at the end. Verify that this is the case. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { _sqlite3VdbeAddOp2(tls, v, int32(OP_IdxRowid), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)-int32(1)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18335) + jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)-int32(1)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18451) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18371) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18487) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp7) } @@ -114695,100 +115559,75 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p label6 = 0 kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { - goto _55 + if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { + goto _60 } if label6 == 0 { label6 = _sqlite3VdbeMakeLabel(tls, pParse) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 112))+j4, kk, int32(3)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ne), int32(3), label6, r1+kk) - goto _55 - _55: + goto _60 + _60: ; kk++ } if label6 != 0 { jmp6 = _sqlite3VdbeAddOp0(tls, v, int32(OP_Goto)) _sqlite3VdbeResolveLabel(tls, v, label6) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18309) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18425) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18382) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18498) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp6) } /* For UNIQUE indexes, verify that only one entry exists with the ** current key. The entry is unique if (1) any column is NULL ** or (2) the next entry has a different key */ - if int32((*TIndex)(unsafe.Pointer(pIdx5)).FonError) != OE_None { + if int32((*TIndex)(unsafe.Pointer(pIdx6)).FonError) != OE_None { uniqOk = _sqlite3VdbeMakeLabel(tls, pParse) kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FaiColumn + uintptr(kk)*2))) - if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { - goto _56 + iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FaiColumn + uintptr(kk)*2))) + if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { + goto _61 } _sqlite3VdbeAddOp2(tls, v, int32(OP_IsNull), r1+kk, uniqOk) - goto _56 - _56: + goto _61 + _61: ; kk++ } jmp61 = _sqlite3VdbeAddOp1(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 112))+j4) _sqlite3VdbeGoto(tls, v, uniqOk) _sqlite3VdbeJumpHere(tls, v, jmp61) - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18409) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18525) _sqlite3VdbeGoto(tls, v, jmp5) _sqlite3VdbeResolveLabel(tls, v, uniqOk) } _sqlite3VdbeJumpHere(tls, v, jmp4) _sqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp + 128))) - goto _54 - _54: + goto _59 + _59: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } } _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 108)), loopTop) _sqlite3VdbeJumpHere(tls, v, loopTop-int32(1)) - if !(isQuick != 0) { - _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18436) - j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex - for { - if !(pIdx5 != 0) { - break - } - if pPk1 == pIdx5 { - goto _57 - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+j4, 0, int32(3)) - _sqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL)) - _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) - _integrityCheckResultRow(tls, v) - _sqlite3VdbeJumpHere(tls, v, addr1) - goto _57 - _57: - ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext - j4++ - } - if pPk1 != 0 { - _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) - } + if pPk1 != 0 { + _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) } - goto _48 - _48: + goto _53 + _53: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -114800,60 +115639,60 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata - if pObjTab != 0 && pObjTab != pTab10 { - goto _58 + pTab11 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab11 { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == TABTYP_NORM { - goto _58 + if int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == TABTYP_NORM { + goto _62 } - if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { - goto _58 + if !(int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FnCol) <= 0 { + if int32((*TTable)(unsafe.Pointer(pTab11)).FnCol) <= 0 { zMod = *(*uintptr)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).FazArg)) + })(unsafe.Pointer(pTab11 + 64))).FazArg)) if _sqlite3HashFind(tls, db+576, zMod) == uintptr(0) { - goto _58 + goto _62 } } - _sqlite3ViewGetColumnNames(tls, pParse, pTab10) + _sqlite3ViewGetColumnNames(tls, pParse, pTab11) if (*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp == uintptr(0) { - goto _58 + })(unsafe.Pointer(pTab11 + 64))).Fp == uintptr(0) { + goto _62 } pVTab = (*TVTable)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp)).FpVtab + })(unsafe.Pointer(pTab11 + 64))).Fp)).FpVtab if pVTab == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FiVersion < int32(4) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FxIntegrity == uintptr(0) { - goto _58 + goto _62 } _sqlite3VdbeAddOp3(tls, v, int32(OP_VCheck), i9, int32(3), isQuick) - (*TTable)(unsafe.Pointer(pTab10)).FnTabRef++ - _sqlite3VdbeAppendP4(tls, v, pTab10, -int32(16)) + (*TTable)(unsafe.Pointer(pTab11)).FnTabRef++ + _sqlite3VdbeAppendP4(tls, v, pTab11, -int32(16)) a11 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a11) - goto _58 - goto _58 - _58: + goto _62 + goto _62 + _62: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -114866,7 +115705,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if aOp2 != 0 { (*(*TVdbeOp)(unsafe.Pointer(aOp2))).Fp2 = int32(1) - *(*int32)(unsafe.Pointer(bp + 104)) (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 2*24))).Fp4type = int8(-libc.Int32FromInt32(1)) - *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18465 + *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18552 (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 5*24))).Fp4type = int8(-libc.Int32FromInt32(1)) *(*uintptr)(unsafe.Pointer(aOp2 + 5*24 + 16)) = _sqlite3ErrStr(tls, int32(SQLITE_CORRUPT)) } @@ -114924,20 +115763,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc != 0 { - v60 = int32((*struct { + v64 = int32((*struct { FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc) } else { - v60 = int32(SQLITE_UTF16LE) + v64 = int32(SQLITE_UTF16LE) } - enc = uint8(v60) + enc = uint8(v64) (*TSchema)(unsafe.Pointer((*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema)).Fenc = enc _sqlite3SetTextEncoding(tls, db, enc) break } - goto _59 - _59: + goto _63 + _63: ; pEnc += 16 } @@ -114945,7 +115784,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).FzName != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18526, libc.VaList(bp+176, zRight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18613, libc.VaList(bp+176, zRight)) } } } @@ -115023,11 +115862,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p i10 = 0 (*TParse)(unsafe.Pointer(pParse)).FnMem = int32(1) for { - v62 = i10 + v66 = i10 i10++ - v61 = Xsqlite3_compileoption_get(tls, v62) - zOpt = v61 - if !(v61 != uintptr(0)) { + v65 = Xsqlite3_compileoption_get(tls, v66) + zOpt = v65 + if !(v65 != uintptr(0)) { break } _sqlite3VdbeLoadString(tls, v, int32(1), zOpt) @@ -115043,20 +115882,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p fallthrough case int32(PragTyp_WAL_CHECKPOINT): if (*TToken)(unsafe.Pointer(pId2)).Fz != 0 { - v63 = iDb + v67 = iDb } else { - v63 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) + v67 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) } - iBt = v63 + iBt = v67 eMode2 = SQLITE_CHECKPOINT_PASSIVE if zRight != 0 { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17751) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17838) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_FULL) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18551) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18638) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_RESTART) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17904) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17991) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_TRUNCATE) } } @@ -115080,11 +115919,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p Xsqlite3_wal_autocheckpoint(tls, db, _sqlite3Atoi(tls, zRight)) } if (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback == __ccgo_fp(_sqlite3WalDefaultHook) { - v64 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) + v68 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) } else { - v64 = 0 + v68 = 0 } - _returnSingleInt(tls, v, int64(v64)) + _returnSingleInt(tls, v, int64(v68)) break /* ** PRAGMA shrink_memory @@ -115112,47 +115951,68 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** ** The optional argument is a bitmask of optimizations to perform: ** - ** 0x0001 Debugging mode. Do not actually perform any optimizations - ** but instead return one line of text for each optimization - ** that would have been done. Off by default. + ** 0x00001 Debugging mode. Do not actually perform any optimizations + ** but instead return one line of text for each optimization + ** that would have been done. Off by default. ** - ** 0x0002 Run ANALYZE on tables that might benefit. On by default. - ** See below for additional information. + ** 0x00002 Run ANALYZE on tables that might benefit. On by default. + ** See below for additional information. ** - ** 0x0004 (Not yet implemented) Record usage and performance - ** information from the current session in the - ** database file so that it will be available to "optimize" - ** pragmas run by future database connections. + ** 0x00010 Run all ANALYZE operations using an analysis_limit that + ** is the lessor of the current analysis_limit and the + ** SQLITE_DEFAULT_OPTIMIZE_LIMIT compile-time option. + ** The default value of SQLITE_DEFAULT_OPTIMIZE_LIMIT is + ** currently (2024-02-19) set to 2000, which is such that + ** the worst case run-time for PRAGMA optimize on a 100MB + ** database will usually be less than 100 milliseconds on + ** a RaspberryPI-4 class machine. On by default. ** - ** 0x0008 (Not yet implemented) Create indexes that might have - ** been helpful to recent queries + ** 0x10000 Look at tables to see if they need to be reanalyzed + ** due to growth or shrinkage even if they have not been + ** queried during the current connection. Off by default. ** - ** The default MASK is and always shall be 0xfffe. 0xfffe means perform all - ** of the optimizations listed above except Debug Mode, including new - ** optimizations that have not yet been invented. If new optimizations are - ** ever added that should be off by default, those off-by-default - ** optimizations will have bitmasks of 0x10000 or larger. + ** The default MASK is and always shall be 0x0fffe. In the current + ** implementation, the default mask only covers the 0x00002 optimization, + ** though additional optimizations that are covered by 0x0fffe might be + ** added in the future. Optimizations that are off by default and must + ** be explicitly requested have masks of 0x10000 or greater. ** ** DETERMINATION OF WHEN TO RUN ANALYZE ** ** In the current implementation, a table is analyzed if only if all of ** the following are true: ** - ** (1) MASK bit 0x02 is set. + ** (1) MASK bit 0x00002 is set. ** - ** (2) The query planner used sqlite_stat1-style statistics for one or - ** more indexes of the table at some point during the lifetime of - ** the current connection. + ** (2) The table is an ordinary table, not a virtual table or view. ** - ** (3) One or more indexes of the table are currently unanalyzed OR - ** the number of rows in the table has increased by 25 times or more - ** since the last time ANALYZE was run. + ** (3) The table name does not begin with "sqlite_". + ** + ** (4) One or more of the following is true: + ** (4a) The 0x10000 MASK bit is set. + ** (4b) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. + ** (4c) The query planner used sqlite_stat1-style statistics for one + ** or more indexes of the table at some point during the lifetime + ** of the current connection. + ** + ** (5) One or more of the following is true: + ** (5a) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. (Same as 4a) + ** (5b) The number of rows in the table has increased or decreased by + ** 10-fold. In other words, the current size of the table is + ** 10 times larger than the size in sqlite_stat1 or else the + ** current size is less than 1/10th the size in sqlite_stat1. ** ** The rules for when tables are analyzed are likely to change in - ** future releases. + ** future releases. Future versions of SQLite might accept a string + ** literal argument to this pragma that contains a mnemonic description + ** of the options rather than a bitmap. */ fallthrough - case int32(PragTyp_OPTIMIZE): /* Mask of operations to perform */ + case int32(PragTyp_OPTIMIZE): /* Analysis limit to use */ + nCheck = 0 /* Number of tables to be optimized */ + nBtree = 0 /* Number of indexes on the current table */ if zRight != 0 { opMask = uint32(_sqlite3Atoi(tls, zRight)) if opMask&uint32(0x02) == uint32(0) { @@ -115161,22 +116021,31 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { opMask = uint32(0xfffe) } - v66 = pParse + 52 - v65 = *(*int32)(unsafe.Pointer(v66)) - *(*int32)(unsafe.Pointer(v66))++ - iTabCur = v65 + if opMask&uint32(0x10) == uint32(0) { + nLimit = 0 + } else { + if (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit > 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit < int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) { + nLimit = 0 + } else { + nLimit = int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) + } + } + v70 = pParse + 52 + v69 = *(*int32)(unsafe.Pointer(v70)) + *(*int32)(unsafe.Pointer(v70))++ + iTabCur = v69 if zDb != 0 { - v68 = iDb + v72 = iDb } else { - v68 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) + v72 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) } - iDbLast = v68 + iDbLast = v72 for { if !(iDb <= iDbLast) { break } if iDb == int32(1) { - goto _67 + goto _71 } _sqlite3CodeVerifySchema(tls, pParse, iDb) pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema @@ -115185,52 +116054,122 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(k4 != 0) { break } - pTab11 = (*THashElem)(unsafe.Pointer(k4)).Fdata - /* If table pTab has not been used in a way that would benefit from - ** having analysis statistics during the current session, then skip it. - ** This also has the effect of skipping virtual tables and views */ - if (*TTable)(unsafe.Pointer(pTab11)).FtabFlags&uint32(TF_StatsUsed) == uint32(0) { - goto _69 - } - /* Reanalyze if the table is 25 times larger than the last analysis */ - szThreshold = int16(int32((*TTable)(unsafe.Pointer(pTab11)).FnRowLogEst) + int32(46)) - pIdx6 = (*TTable)(unsafe.Pointer(pTab11)).FpIndex + pTab12 = (*THashElem)(unsafe.Pointer(k4)).Fdata + /* This only works for ordinary tables */ + if !(int32((*TTable)(unsafe.Pointer(pTab12)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _73 + } + /* Do not scan system tables */ + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab12)).FzName, __ccgo_ts+6593, int32(7)) { + goto _73 + } + /* Find the size of the table as last recorded in sqlite_stat1. + ** If any index is unanalyzed, then the threshold is -1 to + ** indicate a new, unanalyzed index + */ + szThreshold = (*TTable)(unsafe.Pointer(pTab12)).FnRowLogEst + nIndex = 0 + pIdx7 = (*TTable)(unsafe.Pointer(pTab12)).FpIndex for { - if !(pIdx6 != 0) { + if !(pIdx7 != 0) { break } - if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx6 + 100))&0x80>>7)) != 0) { - szThreshold = 0 /* Always analyze if any index lacks statistics */ - break + nIndex++ + if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx7 + 100))&0x80>>7)) != 0) { + szThreshold = int16(-int32(1)) /* Always analyze if any index lacks statistics */ } - goto _70 - _70: + goto _74 + _74: ; - pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext + pIdx7 = (*TIndex)(unsafe.Pointer(pIdx7)).FpNext } - if szThreshold != 0 { - _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab11, int32(OP_OpenRead)) - _sqlite3VdbeAddOp3(tls, v, int32(OP_IfSmaller), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), int32(szThreshold)) + /* If table pTab has not been used in a way that would benefit from + ** having analysis statistics during the current session, then skip it, + ** unless the 0x10000 MASK bit is set. */ + if (*TTable)(unsafe.Pointer(pTab12)).FtabFlags&uint32(TF_MaybeReanalyze) != uint32(0) { + /* Check for size change if stat1 has been used for a query */ + } else { + if opMask&uint32(0x10000) != 0 { + /* Check for size change if 0x10000 is set */ + } else { + if (*TTable)(unsafe.Pointer(pTab12)).FpIndex != uintptr(0) && int32(int32(szThreshold)) < 0 { + /* Do analysis if unanalyzed indexes exists */ + } else { + /* Otherwise, we can skip this table */ + goto _73 + } + } + } + nCheck++ + if nCheck == int32(2) { + /* If ANALYZE might be invoked two or more times, hold a write + ** transaction for efficiency */ + _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) + } + nBtree += nIndex + int32(1) + /* Reanalyze if the table is 10 times larger or smaller than + ** the last analysis. Unconditional reanalysis if there are + ** unanalyzed indexes. */ + _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab12, int32(OP_OpenRead)) + if int32(int32(szThreshold)) >= 0 { + iRange = int16(33) /* 10x size change */ + if int32(int32(szThreshold)) >= int32(int32(iRange)) { + v75 = int32(int32(szThreshold)) - int32(int32(iRange)) + } else { + v75 = -int32(1) + } + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IfSizeBetween), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), v75, int32(int32(szThreshold))+int32(int32(iRange))) + } else { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1))) } - zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18559, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab11)).FzName)) + zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18646, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab12)).FzName)) if opMask&uint32(0x01) != 0 { r11 = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, r11, 0, zSubSql, -int32(6)) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), r11, int32(1)) } else { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), 0, 0, 0, zSubSql, -int32(6)) + if nLimit != 0 { + v76 = int32(0x02) + } else { + v76 = 00 + } + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), v76, nLimit, 0, zSubSql, -int32(6)) } - goto _69 - _69: + goto _73 + _73: ; k4 = (*THashElem)(unsafe.Pointer(k4)).Fnext } - goto _67 - _67: + goto _71 + _71: ; iDb++ } _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) + /* In a schema with a large number of tables and indexes, scale back + ** the analysis_limit to avoid excess run-time in the worst case. + */ + if !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && nLimit > 0 && nBtree > int32(100) { + nLimit = int32(100) * nLimit / nBtree + if nLimit < int32(100) { + nLimit = int32(100) + } + aOp5 = _sqlite3VdbeGetOp(tls, v, 0) + iEnd = _sqlite3VdbeCurrentAddr(tls, v) + iAddr1 = 0 + for { + if !(iAddr1 < iEnd) { + break + } + if int32((*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fopcode) == int32(OP_SqlExec) { + (*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fp2 = nLimit + } + goto _77 + _77: + ; + iAddr1++ + } + } break /* ** PRAGMA busy_timeout @@ -115324,6 +116263,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** instructions to the VM. */ if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_NoColumns1) != 0 && zRight != 0 { } + goto pragma_out pragma_out: ; _sqlite3DbFree(tls, db, zLeft) @@ -115455,34 +116395,34 @@ var _encnames1 = [9]struct { Fenc Tu8 }{ 0: { - FzName: __ccgo_ts + 18468, + FzName: __ccgo_ts + 18555, Fenc: uint8(SQLITE_UTF8), }, 1: { - FzName: __ccgo_ts + 18473, + FzName: __ccgo_ts + 18560, Fenc: uint8(SQLITE_UTF8), }, 2: { - FzName: __ccgo_ts + 18479, + FzName: __ccgo_ts + 18566, Fenc: uint8(SQLITE_UTF16LE), }, 3: { - FzName: __ccgo_ts + 18488, + FzName: __ccgo_ts + 18575, Fenc: uint8(SQLITE_UTF16BE), }, 4: { - FzName: __ccgo_ts + 18497, + FzName: __ccgo_ts + 18584, Fenc: uint8(SQLITE_UTF16LE), }, 5: { - FzName: __ccgo_ts + 18505, + FzName: __ccgo_ts + 18592, Fenc: uint8(SQLITE_UTF16BE), }, 6: { - FzName: __ccgo_ts + 18513, + FzName: __ccgo_ts + 18600, }, 7: { - FzName: __ccgo_ts + 18520, + FzName: __ccgo_ts + 18607, }, 8: {}, } @@ -115578,14 +116518,14 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg _ = argc _ = argv _sqlite3StrAccumInit(tls, bp, uintptr(0), bp+32, int32(200), 0) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18577) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18664) i = 0 j = int32((*TPragmaName)(unsafe.Pointer(pPragma)).FiPragCName) for { if !(i < int32((*TPragmaName)(unsafe.Pointer(pPragma)).FnPragCName)) { break } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18592, libc.VaList(bp+240, int32(cSep), _pragCName[j])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18679, libc.VaList(bp+240, int32(int32(cSep)), _pragCName[j])) cSep = int8(',') goto _1 _1: @@ -115594,19 +116534,19 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg j++ } if i == 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18599, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18686, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) i++ } j = 0 if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_Result1) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18605) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18692) j++ } if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&(libc.Int32FromInt32(PragFlg_SchemaOpt)|libc.Int32FromInt32(PragFlg_SchemaReq)) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18617) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18704) j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5110, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5174, int32(1)) _sqlite3StrAccumFinish(tls, bp) rc = Xsqlite3_declare_vtab(tls, db, bp+32) if rc == SQLITE_OK { @@ -115617,11 +116557,11 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg libc.Xmemset(tls, pTab, 0, uint64(48)) (*TPragmaVtab)(unsafe.Pointer(pTab)).FpName = pPragma (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb = db - (*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden = uint8(i) - (*TPragmaVtab)(unsafe.Pointer(pTab)).FnHidden = uint8(j) + (*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden = uint8(uint8(i)) + (*TPragmaVtab)(unsafe.Pointer(pTab)).FnHidden = uint8(uint8(j)) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) } *(*uintptr)(unsafe.Pointer(ppVtab)) = pTab return rc @@ -115667,14 +116607,14 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) { break } - if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { goto _1 } if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fop) != int32(SQLITE_INDEX_CONSTRAINT_EQ) { goto _1 } - if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { - goto _1 + if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + return int32(SQLITE_CONSTRAINT) } j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn - int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) seen[j] = i + int32(1) @@ -115692,16 +116632,13 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 j = seen[0] - int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) - if seen[int32(1)] == 0 { - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(1000) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(1000) - return SQLITE_OK - } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(20) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(20) - j = seen[int32(1)] - int32(1) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + if seen[int32(1)] != 0 { + j = seen[int32(1)] - int32(1) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + } return SQLITE_OK } @@ -115729,6 +116666,7 @@ func _pragmaVtabCursorClear(tls *libc.TLS, pCsr uintptr) { _ = i Xsqlite3_finalize(tls, (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma) (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma = uintptr(0) + (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FiRowid = 0 i = 0 for { if !(i < int32(libc.Uint64FromInt64(16)/libc.Uint64FromInt64(8))) { @@ -115804,7 +116742,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr } zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if zText != 0 { - *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+40, zText)) + *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+40, zText)) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -115816,13 +116754,13 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr j++ } _sqlite3StrAccumInit(tls, bp, uintptr(0), uintptr(0), 0, *(*int32)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb + 136 + 1*4))) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18632) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18719) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18640, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18727, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) } Xsqlite3_str_appendall(tls, bp, (*TPragmaName)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).FpName)).FzName) if *(*uintptr)(unsafe.Pointer(pCsr + 24)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18644, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18731, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) } zSql = _sqlite3StrAccumFinish(tls, bp) if zSql == uintptr(0) { @@ -115831,7 +116769,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr rc = Xsqlite3_prepare_v2(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), pCsr+8, uintptr(0)) Xsqlite3_free(tls, zSql) if rc != SQLITE_OK { - (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) + (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) return rc } return _pragmaVtabNext(tls, pVtabCursor) @@ -115957,24 +116895,24 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) /* A error message has already been generated. Do not overwrite it */ } else { if (*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(libc.Int32FromInt32(INITFLAG_AlterMask)) != 0 { - *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18678, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) + *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18765, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) (*TInitData)(unsafe.Pointer(pData)).Frc = int32(SQLITE_ERROR) } else { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_WriteSchema) != 0 { - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140891)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141840)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) } else { - v1 = __ccgo_ts + 5112 + v1 = __ccgo_ts + 5176 } zObj = v1 - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18706, libc.VaList(bp+8, zObj)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18793, libc.VaList(bp+8, zObj)) if zExtra != 0 && *(*int8)(unsafe.Pointer(zExtra)) != 0 { - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18737, libc.VaList(bp+8, z, zExtra)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18824, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140898)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141847)) } } } @@ -115982,9 +116920,9 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) } var _azAlterType = [3]uintptr{ - 0: __ccgo_ts + 18648, - 1: __ccgo_ts + 18655, - 2: __ccgo_ts + 18667, + 0: __ccgo_ts + 18735, + 1: __ccgo_ts + 18742, + 2: __ccgo_ts + 18754, } // C documentation @@ -116057,10 +116995,10 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr if *(*uintptr)(unsafe.Pointer(argv + 4*8)) != 0 && int32('c') == int32(_sqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + 4*8)))))]) && int32('r') == int32(_sqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(argv + 4*8)) + 1)))]) { saved_iDb = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb /* Return code from sqlite3_prepare() */ - (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(iDb) + (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(uint8(iDb)) if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), db+192) == 0 || (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage && (*TInitData)(unsafe.Pointer(pData)).FmxPage > uint32(0) { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14520) + _corruptSchema(tls, pData, argv, __ccgo_ts+14613) } } libc.SetBitFieldPtr8Uint32(db+192+8, libc.Uint32FromInt32(0), 0, 0x1) @@ -116093,11 +117031,11 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr } else { pIndex = _sqlite3FindIndex(tls, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName) if pIndex == uintptr(0) { - _corruptSchema(tls, pData, argv, __ccgo_ts+18745) + _corruptSchema(tls, pData, argv, __ccgo_ts+18832) } else { if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), pIndex+88) == 0 || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum < uint32(2) || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage || _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14520) + _corruptSchema(tls, pData, argv, __ccgo_ts+14613) } } } @@ -116136,18 +117074,18 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** table name will be inserted automatically by the parser so we can just ** use the abbreviation "x" here. The parser will also automatically tag ** the schema table as read-only. */ - (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9062 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9187 if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6537 + v2 = __ccgo_ts + 6601 } else { - v2 = __ccgo_ts + 6070 + v2 = __ccgo_ts + 6134 } v1 = v2 zSchemaTabName = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(2)] = (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8134 - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18758 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8259 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18845 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(5)] = uintptr(0) (*(*TInitData)(unsafe.Pointer(bp + 72))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 72))).FiDb = iDb @@ -116157,7 +117095,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl (*(*TInitData)(unsafe.Pointer(bp + 72))).FnInitRow = uint32(0) (*(*TInitData)(unsafe.Pointer(bp + 72))).FmxPage = uint32(0) _sqlite3InitCallback(tls, bp+72, int32(5), bp, uintptr(0)) - *(*Tu32)(unsafe.Pointer(db + 44)) &= uint32(mask) + *(*Tu32)(unsafe.Pointer(db + 44)) &= uint32(uint32(mask)) if (*(*TInitData)(unsafe.Pointer(bp + 72))).Frc != 0 { rc = (*(*TInitData)(unsafe.Pointer(bp + 72))).Frc goto error_out @@ -116224,10 +117162,10 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl if iDb == 0 && (*Tsqlite3)(unsafe.Pointer(db)).FmDbFlags&uint32(DBFLAG_EncodingFixed) == uint32(0) { /* If opening the main database, set ENC(db). */ encoding = uint8(int32(uint8((*(*[5]int32)(unsafe.Pointer(bp + 48)))[libc.Int32FromInt32(BTREE_TEXT_ENCODING)-libc.Int32FromInt32(1)])) & int32(3)) - if int32(encoding) == 0 { + if int32(int32(encoding)) == 0 { encoding = uint8(SQLITE_UTF8) } - if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive > 0 && int32(encoding) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) && (*Tsqlite3)(unsafe.Pointer(db)).FmDbFlags&uint32(DBFLAG_Vacuum) == uint32(0) { + if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive > 0 && int32(int32(encoding)) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) && (*Tsqlite3)(unsafe.Pointer(db)).FmDbFlags&uint32(DBFLAG_Vacuum) == uint32(0) { rc = int32(SQLITE_LOCKED) goto initone_error_out } else { @@ -116236,7 +117174,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl } else { /* If opening an attached database, the encoding much match ENC(db) */ if (*(*[5]int32)(unsafe.Pointer(bp + 48)))[libc.Int32FromInt32(BTREE_TEXT_ENCODING)-libc.Int32FromInt32(1)]&int32(3) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12099) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12224) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -116262,7 +117200,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = uint8(1) } if int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) > int32(SQLITE_MAX_FILE_FORMAT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18830) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18917) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -116277,7 +117215,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl /* Read the schema information out of the schema tables */ (*(*TInitData)(unsafe.Pointer(bp + 72))).FmxPage = _sqlite3BtreeLastPage(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18854, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18941, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) rc = Xsqlite3_exec(tls, db, zSql, __ccgo_fp(_sqlite3InitCallback), bp+72, uintptr(0)) @@ -116314,12 +117252,14 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** curMain and calling sqlite3BtreeEnter(). For an error that occurs ** before that point, jump to error_out. */ + goto initone_error_out initone_error_out: ; if openedTransaction != 0 { _sqlite3BtreeCommit(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) } _sqlite3BtreeLeave(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) + goto error_out error_out: ; if rc != 0 { @@ -116574,7 +117514,12 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup - pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + if _sqlite3FaultSim(tls, int32(300)) != 0 { + pCleanup = uintptr(0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) + } else { + pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + } if pCleanup != 0 { (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup @@ -116605,7 +117550,7 @@ func _sqlite3ParseObjectInit(tls *libc.TLS, pParse uintptr, db uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FpParse = pParse (*TParse)(unsafe.Pointer(pParse)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1622, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1636, 0) } } @@ -116639,7 +117584,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } else { } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1622, 0) + _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1636, 0) v1 = libc.Int32FromInt32(SQLITE_NOMEM) rc = v1 (*Tsqlite3)(unsafe.Pointer(db)).FerrCode = v1 @@ -116688,7 +117633,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep rc = _sqlite3BtreeSchemaLocked(tls, pBt) if rc != 0 { zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FzDbSName - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18888, libc.VaList(bp+432, zDb)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18975, libc.VaList(bp+432, zDb)) goto end_prepare } } @@ -116704,14 +117649,14 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep if nBytes >= 0 && (nBytes == 0 || int32(*(*int8)(unsafe.Pointer(zSql + uintptr(nBytes-int32(1))))) != 0) { mxLen = *(*int32)(unsafe.Pointer(db + 136 + 1*4)) if nBytes > mxLen { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+18918, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+19005, 0) rc = _sqlite3ApiExit(tls, db, int32(SQLITE_TOOBIG)) goto end_prepare } - zSqlCopy = _sqlite3DbStrNDup(tls, db, zSql, uint64(nBytes)) + zSqlCopy = _sqlite3DbStrNDup(tls, db, zSql, uint64(uint64(nBytes))) if zSqlCopy != 0 { _sqlite3RunParser(tls, bp, zSqlCopy) - (*(*TParse)(unsafe.Pointer(bp))).FzTail = zSql + uintptr(int64((*(*TParse)(unsafe.Pointer(bp))).FzTail)-int64(zSqlCopy)) + (*(*TParse)(unsafe.Pointer(bp))).FzTail = zSql + uintptr(int64((*(*TParse)(unsafe.Pointer(bp))).FzTail)-int64(int64(zSqlCopy))) _sqlite3DbFree(tls, db, zSqlCopy) } else { (*(*TParse)(unsafe.Pointer(bp))).FzTail = zSql + uintptr(nBytes) @@ -116723,7 +117668,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep *(*uintptr)(unsafe.Pointer(pzTail)) = (*(*TParse)(unsafe.Pointer(bp))).FzTail } if int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 { - _sqlite3VdbeSetSql(tls, (*(*TParse)(unsafe.Pointer(bp))).FpVdbe, zSql, int32(int64((*(*TParse)(unsafe.Pointer(bp))).FzTail)-int64(zSql)), uint8(prepFlags)) + _sqlite3VdbeSetSql(tls, (*(*TParse)(unsafe.Pointer(bp))).FpVdbe, zSql, int32(int64((*(*TParse)(unsafe.Pointer(bp))).FzTail)-int64(int64(zSql))), uint8(uint8(prepFlags))) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { (*(*TParse)(unsafe.Pointer(bp))).Frc = int32(SQLITE_NOMEM) @@ -116738,7 +117683,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } rc = (*(*TParse)(unsafe.Pointer(bp))).Frc if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3799, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3863, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) } else { _sqlite3Error(tls, db, rc) @@ -116754,6 +117699,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep (*(*TParse)(unsafe.Pointer(bp))).FpTriggerPrg = (*TTriggerPrg)(unsafe.Pointer(pT)).FpNext _sqlite3DbFree(tls, db, pT) } + goto end_prepare end_prepare: ; _sqlite3ParseObjectReset(tls, bp) @@ -116767,7 +117713,7 @@ func _sqlite3LockAndPrepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int3 cnt = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141699)) + return _sqlite3MisuseError(tls, int32(142654)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -116826,7 +117772,7 @@ func _sqlite3Reprepare(tls *libc.TLS, p uintptr) (r int32) { /* Reprepare only called for prepare_v2() statements */ db = _sqlite3VdbeDb(tls, p) prepFlags = _sqlite3VdbePrepareFlags(tls, p) - rc = _sqlite3LockAndPrepare(tls, db, zSql, -int32(1), uint32(prepFlags), p, bp, uintptr(0)) + rc = _sqlite3LockAndPrepare(tls, db, zSql, -int32(1), uint32(uint32(prepFlags)), p, bp, uintptr(0)) if rc != 0 { if rc == int32(SQLITE_NOMEM) { _sqlite3OomFault(tls, db) @@ -116901,7 +117847,7 @@ func _sqlite3Prepare16(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, pr rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141848)) + return _sqlite3MisuseError(tls, int32(142803)) } if nBytes >= 0 { z = zSql @@ -116928,7 +117874,7 @@ func _sqlite3Prepare16(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, pr ** characters between zSql8 and zTail8, and then returning a pointer ** the same number of characters into the UTF-16 string. */ - chars_parsed = _sqlite3Utf8CharLen(tls, zSql8, int32(int64(*(*uintptr)(unsafe.Pointer(bp)))-int64(zSql8))) + chars_parsed = _sqlite3Utf8CharLen(tls, zSql8, int32(int64(*(*uintptr)(unsafe.Pointer(bp)))-int64(int64(zSql8)))) *(*uintptr)(unsafe.Pointer(pzTail)) = zSql + uintptr(_sqlite3Utf16ByteLen(tls, zSql, chars_parsed)) } _sqlite3DbFree(tls, db, zSql8) @@ -117108,7 +118054,7 @@ func _clearSelect(tls *libc.TLS, db uintptr, p uintptr, bFree int32) { // ** Initialize a SelectDest structure. // */ func _sqlite3SelectDestInit(tls *libc.TLS, pDest uintptr, eDest int32, iParm int32) { - (*TSelectDest)(unsafe.Pointer(pDest)).FeDest = uint8(eDest) + (*TSelectDest)(unsafe.Pointer(pDest)).FeDest = uint8(uint8(eDest)) (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm = iParm (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm2 = 0 (*TSelectDest)(unsafe.Pointer(pDest)).FzAffSdst = uintptr(0) @@ -117307,15 +118253,15 @@ func _sqlite3JoinType(tls *libc.TLS, pParse uintptr, pA uintptr, pB uintptr, pC i++ } if jointype&(libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER)) == libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER) || jointype&int32(JT_ERROR) != 0 || jointype&(libc.Int32FromInt32(JT_OUTER)|libc.Int32FromInt32(JT_LEFT)|libc.Int32FromInt32(JT_RIGHT)) == int32(JT_OUTER) { - zSp1 = __ccgo_ts + 11206 - zSp2 = __ccgo_ts + 11206 + zSp1 = __ccgo_ts + 11331 + zSp2 = __ccgo_ts + 11331 if pB == uintptr(0) { zSp1++ } if pC == uintptr(0) { zSp2++ } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18937, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19024, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) jointype = int32(JT_INNER) } return jointype @@ -117383,7 +118329,7 @@ func _sqlite3ColumnIndex(tls *libc.TLS, pTab uintptr, zCol uintptr) (r int32) { if !(i < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } - if int32((*TColumn)(unsafe.Pointer(pCol)).FhName) == int32(h) && _sqlite3StrICmp(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, zCol) == 0 { + if int32((*TColumn)(unsafe.Pointer(pCol)).FhName) == int32(int32(h)) && _sqlite3StrICmp(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, zCol) == 0 { return i } goto _1 @@ -117606,7 +118552,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { if int32((*TSrcItem)(unsafe.Pointer(pRight)).Ffg.Fjointype)&int32(JT_NATURAL) != 0 { pUsing = uintptr(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x400>>10)) != 0 || *(*uintptr)(unsafe.Pointer(pRight + 72)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18967, libc.VaList(bp+16, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19054, libc.VaList(bp+16, 0)) return int32(1) } j = 0 @@ -117656,7 +118602,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { zName1 = (*(*TIdList_item)(unsafe.Pointer(pList + 8 + uintptr(j)*16))).FzName iRightCol = _sqlite3ColumnIndex(tls, pRightTab, zName1) if iRightCol < 0 || _tableAndColumnIndex(tls, pSrc, 0, i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19017, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19104, libc.VaList(bp+16, zName1)) return int32(1) } pE1 = _sqlite3CreateColumnExpr(tls, db, pSrc, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) @@ -117678,7 +118624,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { pFuncArgs = uintptr(0) /* Arguments to the coalesce() */ for _tableAndColumnIndex(tls, pSrc, *(*int32)(unsafe.Pointer(bp))+int32(1), i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) != 0 { if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 60 + 4))&0x400>>10)) == 0 || _sqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 72)), zName1) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19081, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19168, libc.VaList(bp+16, zName1)) break } pFuncArgs = _sqlite3ExprListAppend(tls, pParse, pFuncArgs, pE1) @@ -117722,7 +118668,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { } var _tkCoalesce = TToken{ - Fz: __ccgo_ts + 6734, + Fz: __ccgo_ts + 6798, Fn: uint32(8), } @@ -118190,7 +119136,7 @@ func _selectInnerLoop(tls *libc.TLS, pParse uintptr, p uintptr, srcTab int32, pS } (*(*TRowLoadInfo)(unsafe.Pointer(bp))).FregResult = regResult (*(*TRowLoadInfo)(unsafe.Pointer(bp))).FecelFlags = ecelFlags - if (*TSelect)(unsafe.Pointer(p)).FiLimit != 0 && int32(ecelFlags)&int32(SQLITE_ECEL_OMITREF) != 0 && nPrefixReg > 0 { + if (*TSelect)(unsafe.Pointer(p)).FiLimit != 0 && int32(int32(ecelFlags))&int32(SQLITE_ECEL_OMITREF) != 0 && nPrefixReg > 0 { (*TSortCtx)(unsafe.Pointer(pSort)).FpDeferredRowLoad = bp regOrig = 0 } else { @@ -118405,15 +119351,15 @@ func _sqlite3KeyInfoAlloc(tls *libc.TLS, db uintptr, N int32, X int32) (r uintpt var p uintptr _, _ = nExtra, p nExtra = int32(uint64(N+X)*(libc.Uint64FromInt64(8)+libc.Uint64FromInt32(1)) - uint64(8)) - p = _sqlite3DbMallocRawNN(tls, db, uint64(40)+uint64(nExtra)) + p = _sqlite3DbMallocRawNN(tls, db, uint64(uint64(40)+uint64(uint64(nExtra)))) if p != 0 { (*TKeyInfo)(unsafe.Pointer(p)).FaSortFlags = p + 32 + uintptr(N+X)*8 - (*TKeyInfo)(unsafe.Pointer(p)).FnKeyField = uint16(N) + (*TKeyInfo)(unsafe.Pointer(p)).FnKeyField = uint16(uint16(N)) (*TKeyInfo)(unsafe.Pointer(p)).FnAllField = uint16(N + X) (*TKeyInfo)(unsafe.Pointer(p)).Fenc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc (*TKeyInfo)(unsafe.Pointer(p)).Fdb = db (*TKeyInfo)(unsafe.Pointer(p)).FnRef = uint32(1) - libc.Xmemset(tls, p+1*40, 0, uint64(nExtra)) + libc.Xmemset(tls, p+1*40, 0, uint64(uint64(nExtra))) } else { return _sqlite3OomFault(tls, db) } @@ -118498,13 +119444,13 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { _ = z switch id { case int32(TK_ALL): - z = __ccgo_ts + 19118 + z = __ccgo_ts + 19205 case int32(TK_INTERSECT): - z = __ccgo_ts + 19128 + z = __ccgo_ts + 19215 case int32(TK_EXCEPT): - z = __ccgo_ts + 19138 + z = __ccgo_ts + 19225 default: - z = __ccgo_ts + 19145 + z = __ccgo_ts + 19232 break } return z @@ -118525,7 +119471,7 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { func _explainTempTable(tls *libc.TLS, pParse uintptr, zUsage uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19151, libc.VaList(bp+8, zUsage)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19238, libc.VaList(bp+8, zUsage)) } /* @@ -118559,12 +119505,17 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, iParm = (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm /* True if sorter record includes seq. no. */ nRefKey = 0 aOutEx = (*TSelect)(unsafe.Pointer(p)).FpEList + 8 - if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat > 0 { - v1 = __ccgo_ts + 19174 + nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat == 0 || nKey == int32(1) { + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat != 0 { + v1 = __ccgo_ts + 19261 + } else { + v1 = __ccgo_ts + 1666 + } + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19275, libc.VaList(bp+8, v1)) } else { - v1 = __ccgo_ts + 1652 + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19306, libc.VaList(bp+8, nKey)) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19189, libc.VaList(bp+8, v1)) if (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut != 0 { _sqlite3VdbeAddOp2(tls, v, int32(OP_Gosub), (*TSortCtx)(unsafe.Pointer(pSort)).FregReturn, (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut) _sqlite3VdbeGoto(tls, v, addrBreak) @@ -118586,7 +119537,6 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, regRow = _sqlite3GetTempRange(tls, pParse, nColumn) } } - nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat if int32((*TSortCtx)(unsafe.Pointer(pSort)).FsortFlags)&int32(SORTFLAG_UseSorter) != 0 { v3 = pParse + 56 *(*int32)(unsafe.Pointer(v3))++ @@ -118804,7 +119754,7 @@ func _columnTypeImpl(tls *libc.TLS, pNC uintptr, pExpr uintptr, pzOrigDb uintptr } if iCol < 0 { zType = __ccgo_ts + 1140 - *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16698 + *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16785 } else { *(*uintptr)(unsafe.Pointer(bp + 16)) = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, uintptr(0)) @@ -118950,13 +119900,13 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) iCol = int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) } if iCol < 0 { - zCol = __ccgo_ts + 16698 + zCol = __ccgo_ts + 16785 } else { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } if fullName != 0 { zName1 = uintptr(0) - zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12385, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) + zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12510, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zName1, __ccgo_fp(_sqlite3OomClear)) } else { _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zCol, uintptr(-libc.Int32FromInt32(1))) @@ -118964,7 +119914,7 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } else { z = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32))).FzEName if z == uintptr(0) { - v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19220, libc.VaList(bp+8, i+int32(1))) + v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19352, libc.VaList(bp+8, i+int32(1))) } else { v2 = _sqlite3DbStrDup(tls, db, z) } @@ -119018,7 +119968,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, _sqlite3HashInit(tls, bp+8) if pEList != 0 { nCol = (*TExprList)(unsafe.Pointer(pEList)).FnExpr - aCol = _sqlite3DbMallocZero(tls, db, uint64(16)*uint64(nCol)) + aCol = _sqlite3DbMallocZero(tls, db, uint64(uint64(16)*uint64(uint64(nCol)))) if nCol > int32(32767) { nCol = int32(32767) } @@ -119026,7 +119976,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, nCol = 0 aCol = uintptr(0) } - *(*Ti16)(unsafe.Pointer(pnCol)) = int16(nCol) + *(*Ti16)(unsafe.Pointer(pnCol)) = int16(int16(nCol)) *(*uintptr)(unsafe.Pointer(paCol)) = aCol i = 0 pCol = aCol @@ -119056,7 +120006,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if iCol >= 0 { v3 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } else { - v3 = __ccgo_ts + 16698 + v3 = __ccgo_ts + 16785 } zName = v3 } else { @@ -119071,7 +120021,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if zName != 0 && !(_sqlite3IsTrueOrFalse(tls, zName) != 0) { zName = _sqlite3DbStrDup(tls, db, zName) } else { - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19220, libc.VaList(bp+40, i+int32(1))) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19352, libc.VaList(bp+40, i+int32(1))) } /* Make sure the column name is unique. If the name is not unique, ** append an integer to the name so that it becomes unique. @@ -119107,7 +120057,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, } *(*Tu32)(unsafe.Pointer(bp))++ v8 = *(*Tu32)(unsafe.Pointer(bp)) - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19229, libc.VaList(bp+40, nName, zName, v8)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19361, libc.VaList(bp+40, nName, zName, v8)) _sqlite3ProgressCheck(tls, pParse) if *(*Tu32)(unsafe.Pointer(bp)) > uint32(3) { Xsqlite3_randomness(tls, int32(4), bp) @@ -119167,9 +120117,9 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS defer tls.Free(64) var a, db, p, pCol, pColl, pS2, zType, p4, p5 uintptr var i, j, m int32 - var m1, n Ti64 + var k, n Ti64 var _ /* sNC at bp+0 */ TNameContext - _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, m, m1, n, p, pCol, pColl, pS2, zType, p4, p5 + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, k, m, n, p, pCol, pColl, pS2, zType, p4, p5 db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { return @@ -119186,17 +120136,22 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS if !(i < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } + m = 0 + pS2 = pSelect *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags) & libc.Int32FromInt32(COLFLAG_NOINSERT)) p = (*(*TExprList_item)(unsafe.Pointer(a + uintptr(i)*32))).FpExpr /* pCol->szEst = ... // Column size est for SELECT tables never used */ (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, p) + for int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) && (*TSelect)(unsafe.Pointer(pS2)).FpNext != uintptr(0) { + m |= _sqlite3ExprDataType(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext + (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + } if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) { (*TColumn)(unsafe.Pointer(pCol)).Faffinity = aff } - if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && (*TSelect)(unsafe.Pointer(pSelect)).FpNext != 0 { - m = 0 - m = 0 - pS2 = (*TSelect)(unsafe.Pointer(pSelect)).FpNext + if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && ((*TSelect)(unsafe.Pointer(pS2)).FpNext != 0 || pS2 != pSelect) { + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext for { if !(pS2 != 0) { break @@ -119221,7 +120176,7 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS zType = _columnTypeImpl(tls, bp, p, uintptr(0), uintptr(0), uintptr(0)) if zType == uintptr(0) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) != int32(_sqlite3AffinityType(tls, zType, uintptr(0))) { if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_NUMERIC) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_FLEXNUM) { - zType = __ccgo_ts + 19237 + zType = __ccgo_ts + 19369 } else { zType = uintptr(0) j = int32(1) @@ -119241,13 +120196,13 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS } } if zType != 0 { - m1 = int64(_sqlite3Strlen30(tls, zType)) + k = int64(_sqlite3Strlen30(tls, zType)) n = int64(_sqlite3Strlen30(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) - (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+m1+int64(2))) + (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+k+int64(2))) p4 = pCol + 14 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) & ^(libc.Int32FromInt32(COLFLAG_HASTYPE) | libc.Int32FromInt32(COLFLAG_HASCOLL))) if (*TColumn)(unsafe.Pointer(pCol)).FzCnName != 0 { - libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(m1+int64(1))) + libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(k+int64(1))) p5 = pCol + 14 *(*Tu16)(unsafe.Pointer(p5)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p5))) | libc.Int32FromInt32(COLFLAG_HASTYPE)) } @@ -119536,7 +120491,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest iDistinct = 0 /* To ensure unique results if UNION */ eDest = int32(SRT_Fifo) /* Registers used by LIMIT and OFFSET */ if (*TSelect)(unsafe.Pointer(p)).FpWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19241, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19373, 0) return } /* Obtain authorization to do a recursive query */ @@ -119629,7 +120584,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest break } if (*TSelect)(unsafe.Pointer(pFirstRec)).FselFlags&uint32(SF_Aggregate) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19290, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19422, 0) goto end_of_recursive_query } (*TSelect)(unsafe.Pointer(pFirstRec)).Fop = uint8(TK_ALL) @@ -119644,7 +120599,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest /* Store the results of the setup-query in Queue. */ pSetup = (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior (*TSelect)(unsafe.Pointer(pSetup)).FpNext = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19332, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19464, 0) rc = _sqlite3Select(tls, pParse, pSetup, bp) (*TSelect)(unsafe.Pointer(pSetup)).FpNext = p if rc != 0 { @@ -119672,12 +120627,13 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest ** the value for the recursive-table. Store the results in the Queue. */ (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19338, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19470, 0) _sqlite3Select(tls, pParse, p, bp) (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = pSetup /* Keep running the loop until the Queue is empty */ _sqlite3VdbeGoto(tls, v, addrTop) _sqlite3VdbeResolveLabel(tls, v, addrBreak) + goto end_of_recursive_query end_of_recursive_query: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSelect)(unsafe.Pointer(p)).FpOrderBy) @@ -119724,17 +120680,17 @@ func _multiSelectValues(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) nRow += bShowAll } if nRow == int32(1) { - v1 = __ccgo_ts + 1652 + v1 = __ccgo_ts + 1666 } else { - v1 = __ccgo_ts + 19353 + v1 = __ccgo_ts + 19485 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19355, libc.VaList(bp+8, nRow, v1)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19487, libc.VaList(bp+8, nRow, v1)) for p != 0 { _selectInnerLoop(tls, pParse, p, -int32(1), uintptr(0), uintptr(0), pDest, int32(1), int32(1)) if !(bShowAll != 0) { break } - (*TSelect)(unsafe.Pointer(p)).FnSelectRow = int16(nRow) + (*TSelect)(unsafe.Pointer(p)).FnSelectRow = int16(int16(nRow)) p = (*TSelect)(unsafe.Pointer(p)).FpNext } return rc @@ -119836,8 +120792,8 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in return _multiSelectOrderBy(tls, pParse, p, pDest) } else { if (*TSelect)(unsafe.Pointer(pPrior)).FpPrior == uintptr(0) { - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19378, 0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19393, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19510, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19525, 0) } /* Generate code for the left and right SELECT statements. */ @@ -119862,7 +120818,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in _sqlite3VdbeAddOp3(tls, v, int32(OP_OffsetLimit), (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TSelect)(unsafe.Pointer(p)).FiOffset+int32(1), (*TSelect)(unsafe.Pointer(p)).FiOffset) } } - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19118, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19205, 0) rc = _sqlite3Select(tls, pParse, p, bp) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -119914,7 +120870,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 48))).FeDest = op - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19412, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19544, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+48) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -119972,7 +120928,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit1 = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 88))).FiSDParm = tab2 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19412, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19544, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+88) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -120074,6 +121030,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in } _sqlite3KeyInfoUnref(tls, pKeyInfo) } + goto multi_select_end multi_select_end: ; (*TSelectDest)(unsafe.Pointer(pDest)).FiSdst = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst @@ -120094,9 +121051,9 @@ func _sqlite3SelectWrongNumTermsError(tls *libc.TLS, pParse uintptr, p uintptr) bp := tls.Alloc(16) defer tls.Free(16) if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Values) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19433, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19565, 0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19479, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19611, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) } } @@ -120363,7 +121320,7 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr if pOrderBy != 0 { v4 = nOrderBy nOrderBy++ - *(*Tu16)(unsafe.Pointer(pOrderBy + 8 + uintptr(v4)*32 + 24)) = uint16(i) + *(*Tu16)(unsafe.Pointer(pOrderBy + 8 + uintptr(v4)*32 + 24)) = uint16(uint16(i)) } } goto _1 @@ -120379,9 +121336,9 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr ** to the right and the left are evaluated, they use the correct ** collation. */ - aPermute = _sqlite3DbMallocRawNN(tls, db, uint64(4)*uint64(nOrderBy+libc.Int32FromInt32(1))) + aPermute = _sqlite3DbMallocRawNN(tls, db, uint64(uint64(4)*uint64(nOrderBy+libc.Int32FromInt32(1)))) if aPermute != 0 { - *(*Tu32)(unsafe.Pointer(aPermute)) = uint32(nOrderBy) + *(*Tu32)(unsafe.Pointer(aPermute)) = uint32(uint32(nOrderBy)) i = int32(1) pItem1 = pOrderBy + 8 for { @@ -120465,8 +121422,8 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr (*TSelect)(unsafe.Pointer(pSplit)).FpPrior = uintptr(0) (*TSelect)(unsafe.Pointer(pPrior)).FpNext = uintptr(0) (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy = _sqlite3ExprListDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pOrderBy, 0) - _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7371) - _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7371) + _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7496) + _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7496) /* Compute the limit registers */ _computeLimitRegisters(tls, pParse, p, labelEnd) if (*TSelect)(unsafe.Pointer(p)).FiLimit != 0 && op == int32(TK_ALL) { @@ -120510,14 +121467,14 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr regOutB = v21 _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), regAddrA) _sqlite3SelectDestInit(tls, bp+40, int32(SRT_Coroutine), regAddrB) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19561, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19693, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) /* Generate a coroutine to evaluate the SELECT statement to the ** left of the compound operator - the "A" select. */ addrSelectA = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regAddrA, 0, addrSelectA) (*TSelect)(unsafe.Pointer(pPrior)).FiLimit = regLimitA - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19572, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19704, 0) _sqlite3Select(tls, pParse, pPrior, bp) _sqlite3VdbeEndCoroutine(tls, v, regAddrA) _sqlite3VdbeJumpHere(tls, v, addr1) @@ -120530,7 +121487,7 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr savedOffset = (*TSelect)(unsafe.Pointer(p)).FiOffset (*TSelect)(unsafe.Pointer(p)).FiLimit = regLimitB (*TSelect)(unsafe.Pointer(p)).FiOffset = 0 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19577, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19709, 0) _sqlite3Select(tls, pParse, p, bp+40) (*TSelect)(unsafe.Pointer(p)).FiLimit = savedLimit (*TSelect)(unsafe.Pointer(p)).FiOffset = savedOffset @@ -120745,7 +121702,7 @@ func _substExpr(tls *libc.TLS, pSubst uintptr, pExpr uintptr) (r uintptr) { if pColl != 0 { v1 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v1 = __ccgo_ts + 5090 + v1 = __ccgo_ts + 5154 } pExpr = _sqlite3ExprAddCollateString(tls, (*TSubstContext)(unsafe.Pointer(pSubst)).FpParse, pExpr, v1) } @@ -121033,7 +121990,7 @@ func _compoundHasDifferentAffinities(tls *libc.TLS, p uintptr) (r int32) { if !(pSub1 != 0) { break } - if int32(_sqlite3ExprAffinity(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub1)).FpEList + 8 + uintptr(ii)*32))).FpExpr)) != int32(aff) { + if int32(_sqlite3ExprAffinity(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub1)).FpEList + 8 + uintptr(ii)*32))).FpExpr)) != int32(int32(aff)) { return int32(1) } goto _2 @@ -121560,7 +122517,7 @@ func _flattenSubquery(tls *libc.TLS, pParse uintptr, p uintptr, iFrom int32, isA } *(*TSrcItem)(unsafe.Pointer(pItem)) = *(*TSrcItem)(unsafe.Pointer(pSubSrc + 8 + uintptr(i)*104)) p9 = pItem + 60 - *(*Tu8)(unsafe.Pointer(p9)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p9))) | int32(ltorj)) + *(*Tu8)(unsafe.Pointer(p9)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p9))) | int32(int32(ltorj))) iNewParent = (*(*TSrcItem)(unsafe.Pointer(pSubSrc + 8 + uintptr(i)*104))).FiCursor libc.Xmemset(tls, pSubSrc+8+uintptr(i)*104, 0, uint64(104)) goto _8 @@ -121571,7 +122528,7 @@ func _flattenSubquery(tls *libc.TLS, pParse uintptr, p uintptr, iFrom int32, isA p10 = pSrc + 8 + uintptr(iFrom)*104 + 60 *(*Tu8)(unsafe.Pointer(p10)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p10))) & libc.Int32FromInt32(JT_LTORJ)) p11 = pSrc + 8 + uintptr(iFrom)*104 + 60 - *(*Tu8)(unsafe.Pointer(p11)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p11))) | (int32(jointype) | int32(ltorj))) + *(*Tu8)(unsafe.Pointer(p11)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p11))) | (int32(int32(jointype)) | int32(int32(ltorj)))) /* Now begin substituting subquery result set expressions for ** references to the iParent in the outer query. ** @@ -121745,7 +122702,7 @@ func _constInsert(tls *libc.TLS, pConst uintptr, pColumn uintptr, pValue uintptr (*TWhereConst)(unsafe.Pointer(pConst)).FbHasAffBlob = int32(1) } (*TWhereConst)(unsafe.Pointer(pConst)).FnConst++ - (*TWhereConst)(unsafe.Pointer(pConst)).FapExpr = _sqlite3DbReallocOrFree(tls, (*TParse)(unsafe.Pointer((*TWhereConst)(unsafe.Pointer(pConst)).FpParse)).Fdb, (*TWhereConst)(unsafe.Pointer(pConst)).FapExpr, uint64((*TWhereConst)(unsafe.Pointer(pConst)).FnConst*int32(2))*uint64(8)) + (*TWhereConst)(unsafe.Pointer(pConst)).FapExpr = _sqlite3DbReallocOrFree(tls, (*TParse)(unsafe.Pointer((*TWhereConst)(unsafe.Pointer(pConst)).FpParse)).Fdb, (*TWhereConst)(unsafe.Pointer(pConst)).FapExpr, uint64(uint64((*TWhereConst)(unsafe.Pointer(pConst)).FnConst*int32(2))*uint64(8))) if (*TWhereConst)(unsafe.Pointer(pConst)).FapExpr == uintptr(0) { (*TWhereConst)(unsafe.Pointer(pConst)).FnConst = 0 } else { @@ -121781,10 +122738,10 @@ func _findConstInWhere(tls *libc.TLS, pConst uintptr, pExpr uintptr) { } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft - if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pLeft) != 0 { + if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pLeft) != 0 { _constInsert(tls, pConst, pRight, pLeft, pExpr) } - if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pRight) != 0 { + if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pRight) != 0 { _constInsert(tls, pConst, pLeft, pRight, pExpr) } } @@ -122017,6 +122974,18 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** The hope is that the terms added to the inner query will make it more // ** efficient. // ** +// ** NAME AMBIGUITY +// ** +// ** This optimization is called the "WHERE-clause push-down optimization". +// ** +// ** Do not confuse this optimization with another unrelated optimization +// ** with a similar name: The "MySQL push-down optimization" causes WHERE +// ** clause terms that can be evaluated using only the index and without +// ** reference to the table are run first, so that if they are false, +// ** unnecessary table seeks are avoided. +// ** +// ** RULES +// ** // ** Do not attempt this optimization if: // ** // ** (1) (** This restriction was removed on 2017-09-29. We used to @@ -122082,10 +123051,10 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** (9c) There is a RIGHT JOIN (or FULL JOIN) in between the ON/USING // ** clause and the subquery. // ** -// ** Without this restriction, the push-down optimization might move -// ** the ON/USING filter expression from the left side of a RIGHT JOIN -// ** over to the right side, which leads to incorrect answers. See -// ** also restriction (6) in sqlite3ExprIsSingleTableConstraint(). +// ** Without this restriction, the WHERE-clause push-down optimization +// ** might move the ON/USING filter expression from the left side of a +// ** RIGHT JOIN over to the right side, which leads to incorrect answers. +// ** See also restriction (6) in sqlite3ExprIsSingleTableConstraint(). // ** // ** (10) The inner query is not the right-hand table of a RIGHT JOIN. // ** @@ -122125,7 +123094,7 @@ func _pushDownWhereTerms(tls *libc.TLS, pParse uintptr, pSubq uintptr, pWhere ui break } op = (*TSelect)(unsafe.Pointer(pSel)).Fop - if int32(op) != int32(TK_ALL) && int32(op) != int32(TK_SELECT) { + if int32(int32(op)) != int32(TK_ALL) && int32(int32(op)) != int32(TK_SELECT) { notUnionAll = int32(1) } if (*TSelect)(unsafe.Pointer(pSel)).FpWin != 0 { @@ -122178,7 +123147,7 @@ func _pushDownWhereTerms(tls *libc.TLS, pParse uintptr, pSubq uintptr, pWhere ui nChng += _pushDownWhereTerms(tls, pParse, pSubq, (*TExpr)(unsafe.Pointer(pWhere)).FpRight, pSrcList, iSrc) pWhere = (*TExpr)(unsafe.Pointer(pWhere)).FpLeft } - if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc) != 0 { + if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc, int32(1)) != 0 { nChng++ *(*Tu32)(unsafe.Pointer(pSubq + 4)) |= uint32(SF_PushDown) for pSubq != 0 { @@ -122262,12 +123231,12 @@ func _disableUnusedSubqueryResultColumns(tls *libc.TLS, pItem uintptr) (r int32) break } iCol = *(*Tu16)(unsafe.Pointer(pList + 8 + uintptr(j)*32 + 24)) - if int32(iCol) > 0 { + if int32(int32(iCol)) > 0 { iCol-- - if int32(iCol) >= int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)) { + if int32(int32(iCol)) >= int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)) { v3 = int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)) - libc.Int32FromInt32(1) } else { - v3 = int32(iCol) + v3 = int32(int32(iCol)) } colUsed |= libc.Uint64FromInt32(1) << v3 } @@ -122345,20 +123314,20 @@ func _minMaxQuery(tls *libc.TLS, db uintptr, pFunc uintptr, ppMinMax uintptr) (r sortFlags = uint8(0) pEList = *(*uintptr)(unsafe.Pointer(pFunc + 32)) if pEList == uintptr(0) || (*TExprList)(unsafe.Pointer(pEList)).FnExpr != int32(1) || (*TExpr)(unsafe.Pointer(pFunc)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) || (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_MinMaxOpt)) != uint32(0) { - return uint8(eRet) + return uint8(uint8(eRet)) } zFunc = *(*uintptr)(unsafe.Pointer(pFunc + 8)) - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15554) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15647) == 0 { eRet = int32(WHERE_ORDERBY_MIN) if _sqlite3ExprCanBeNull(tls, (*(*TExprList_item)(unsafe.Pointer(pEList + 8))).FpExpr) != 0 { sortFlags = uint8(KEYINFO_ORDER_BIGNULL) } } else { - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15558) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15651) == 0 { eRet = int32(WHERE_ORDERBY_MAX) sortFlags = uint8(KEYINFO_ORDER_DESC) } else { - return uint8(eRet) + return uint8(uint8(eRet)) } } v1 = _sqlite3ExprListDup(tls, db, pEList, 0) @@ -122367,7 +123336,7 @@ func _minMaxQuery(tls *libc.TLS, db uintptr, pFunc uintptr, ppMinMax uintptr) (r if pOrderBy != 0 { (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8))).Ffg.FsortFlags = sortFlags } - return uint8(eRet) + return uint8(uint8(eRet)) } // C documentation @@ -122442,7 +123411,7 @@ func _sqlite3IndexedByLookup(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r in pIdx = (*TIndex)(unsafe.Pointer(pIdx)).FpNext } if !(pIdx != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19583, libc.VaList(bp+8, zIndexedBy, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19715, libc.VaList(bp+8, zIndexedBy, 0)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) return int32(SQLITE_ERROR) } @@ -122566,7 +123535,7 @@ func _cannotBeFunction(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x4>>2)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19601, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19733, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) return int32(1) } return 0 @@ -122741,7 +123710,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } *(*Tu32)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect + 4)) |= uint32(SF_CopyCte) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x2>>1)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19624, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19756, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) return int32(2) } libc.SetBitFieldPtr16Uint32(pFrom+60+4, libc.Uint32FromInt32(1), 8, 0x100) @@ -122765,7 +123734,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ libc.SetBitFieldPtr16Uint32(pItem+60+4, libc.Uint32FromInt32(1), 6, 0x40) if (*TSelect)(unsafe.Pointer(pRecTerm)).FselFlags&uint32(SF_Recursive) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19644, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19776, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) return int32(2) } *(*Tu32)(unsafe.Pointer(pRecTerm + 4)) |= uint32(SF_Recursive) @@ -122787,7 +123756,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } pRecTerm = (*TSelect)(unsafe.Pointer(pRecTerm)).FpPrior } - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19687 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19819 pSavedWith = (*TParse)(unsafe.Pointer(pParse)).FpWith (*TParse)(unsafe.Pointer(pParse)).FpWith = *(*uintptr)(unsafe.Pointer(bp)) if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { @@ -122818,7 +123787,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom pEList = (*TSelect)(unsafe.Pointer(pLeft)).FpEList if (*TCte)(unsafe.Pointer(pCte)).FpCols != 0 { if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr != (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19710, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19842, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) (*TParse)(unsafe.Pointer(pParse)).FpWith = pSavedWith return int32(2) } @@ -122827,9 +123796,9 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom _sqlite3ColumnsFromExprList(tls, pParse, pEList, pTab+54, pTab+8) if bMayRecursive != 0 { if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19748 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19880 } else { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19782 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19914 } _sqlite3WalkSelect(tls, pWalker, pSel) } @@ -122888,7 +123857,7 @@ func _sqlite3ExpandSubquery(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int if (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias != 0 { (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3DbStrDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias) } else { - (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19820, libc.VaList(bp+8, pFrom)) + (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19952, libc.VaList(bp+8, pFrom)) } for (*TSelect)(unsafe.Pointer(pSel)).FpPrior != 0 { pSel = (*TSelect)(unsafe.Pointer(pSel)).FpPrior @@ -122979,7 +123948,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(WRC_Abort) } - if int32(selFlags)&int32(SF_Expanded) != 0 { + if int32(int32(selFlags))&int32(SF_Expanded) != 0 { return int32(WRC_Prune) } if (*TWalker)(unsafe.Pointer(pWalker)).FeCode != 0 { @@ -123044,7 +124013,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { return int32(WRC_Abort) } if (*TTable)(unsafe.Pointer(pTab)).FnTabRef >= uint32(0xffff) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19824, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19956, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) (*TSrcItem)(unsafe.Pointer(pFrom)).FpTab = uintptr(0) return int32(WRC_Abort) } @@ -123059,7 +124028,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_EnableView) == uint64(0) && (*TTable)(unsafe.Pointer(pTab)).FpSchema != (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19863, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19995, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } (*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect = _sqlite3SelectDup(tls, db, (*(*struct { FpSelect uintptr @@ -123074,14 +124043,14 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).Fp)).FeVtabRisk) > libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15113, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15206, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } } nCol = (*TTable)(unsafe.Pointer(pTab)).FnCol (*TTable)(unsafe.Pointer(pTab)).FnCol = int16(-int32(1)) (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) /* Turn on Select.selId renumbering */ _sqlite3WalkSelect(tls, pWalker, (*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect) - (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(eCodeOrig) + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(uint16(eCodeOrig)) (*TTable)(unsafe.Pointer(pTab)).FnCol = nCol } } @@ -123196,11 +124165,11 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if iDb >= 0 { v10 = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName } else { - v10 = __ccgo_ts + 6594 + v10 = __ccgo_ts + 6658 } zSchemaName = v10 } - if i+int32(1) < (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc && int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 1*104 + 60 + 4))&0x400>>10)) != 0 && int32(selFlags)&int32(SF_NestedFrom) != 0 { + if i+int32(1) < (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc && int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 1*104 + 60 + 4))&0x400>>10)) != 0 && int32(int32(selFlags))&int32(SF_NestedFrom) != 0 { pUsing = *(*uintptr)(unsafe.Pointer(pFrom + 1*104 + 72)) ii = 0 for { @@ -123213,7 +124182,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { pNew = _sqlite3ExprListAppend(tls, pParse, pNew, pRight) if pNew != 0 { pX = pNew + 8 + uintptr((*TExprList)(unsafe.Pointer(pNew)).FnExpr-int32(1))*32 - (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19894, libc.VaList(bp+8, zUName)) + (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20026, libc.VaList(bp+8, zUName)) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(ENAME_TAB), 0, 0x3) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(1), 7, 0x80) } @@ -123226,7 +124195,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { pUsing = uintptr(0) } nAdd = int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) - if (*TTable)(unsafe.Pointer(pTab1)).FtabFlags&uint32(TF_NoVisibleRowid) == uint32(0) && int32(selFlags)&int32(SF_NestedFrom) != 0 { + if (*TTable)(unsafe.Pointer(pTab1)).FtabFlags&uint32(TF_NoVisibleRowid) == uint32(0) && int32(int32(selFlags))&int32(SF_NestedFrom) != 0 { nAdd++ } j = 0 @@ -123256,12 +124225,12 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_IncludeHidden) == uint32(0) && int32((*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab1)).FaCol+uintptr(j)*16)).FcolFlags)&int32(COLFLAG_HIDDEN) != 0 { goto _12 } - if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab1)).FaCol + uintptr(j)*16))).FcolFlags)&int32(COLFLAG_NOEXPAND) != 0 && zTName == uintptr(0) && int32(selFlags)&int32(SF_NestedFrom) == 0 { + if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab1)).FaCol + uintptr(j)*16))).FcolFlags)&int32(COLFLAG_NOEXPAND) != 0 && zTName == uintptr(0) && int32(int32(selFlags))&int32(SF_NestedFrom) == 0 { goto _12 } } tableSeen = int32(1) - if i > 0 && zTName == uintptr(0) && int32(selFlags)&int32(SF_NestedFrom) == 0 { + if i > 0 && zTName == uintptr(0) && int32(int32(selFlags))&int32(SF_NestedFrom) == 0 { if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x400>>10)) != 0 && _sqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pFrom + 72)), zName) >= 0 { /* In a join with a USING clause, omit columns in the ** using clause from the table on the right. */ @@ -123269,7 +124238,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } } pRight = _sqlite3Expr(tls, db, int32(TK_ID), zName) - if (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc > int32(1) && (int32((*TSrcItem)(unsafe.Pointer(pFrom)).Ffg.Fjointype)&int32(JT_LTORJ) == 0 || int32(selFlags)&int32(SF_NestedFrom) != 0 || !(_inAnyUsingClause(tls, zName, pFrom, (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc-i-int32(1)) != 0)) || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { + if (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc > int32(1) && (int32((*TSrcItem)(unsafe.Pointer(pFrom)).Ffg.Fjointype)&int32(JT_LTORJ) == 0 || int32(int32(selFlags))&int32(SF_NestedFrom) != 0 || !(_inAnyUsingClause(tls, zName, pFrom, (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc-i-int32(1)) != 0)) || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { pLeft = _sqlite3Expr(tls, db, int32(TK_ID), zTabName) pExpr = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft, pRight) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && (*TExpr)(unsafe.Pointer(pE)).FpLeft != 0 { @@ -123288,11 +124257,11 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break /* OOM */ } pX1 = pNew + 8 + uintptr((*TExprList)(unsafe.Pointer(pNew)).FnExpr-int32(1))*32 - if int32(selFlags)&int32(SF_NestedFrom) != 0 && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { + if int32(int32(selFlags))&int32(SF_NestedFrom) != 0 && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if pNestedFrom != 0 && libc.Bool(libc.Bool(!(libc.Int32FromInt32(ViewCanHaveRowid) != 0)) || j < (*TExprList)(unsafe.Pointer(pNestedFrom)).FnExpr) { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, (*(*TExprList_item)(unsafe.Pointer(pNestedFrom + 8 + uintptr(j)*32))).FzEName) } else { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19899, libc.VaList(bp+8, zSchemaName, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20031, libc.VaList(bp+8, zSchemaName, zTabName, zName)) } if j == int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) { v13 = int32(ENAME_ROWID) @@ -123305,7 +124274,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } } else { if longNames != 0 { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12385, libc.VaList(bp+8, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12510, libc.VaList(bp+8, zTabName, zName)) libc.SetBitFieldPtr16Uint32(pX1+16+4, libc.Uint32FromInt32(ENAME_NAME), 0, 0x3) } else { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, zName) @@ -123325,9 +124294,9 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if !(tableSeen != 0) { if zTName != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19908, libc.VaList(bp+8, zTName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20040, libc.VaList(bp+8, zTName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19926, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20058, 0) } } } @@ -123341,7 +124310,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if (*TSelect)(unsafe.Pointer(p)).FpEList != 0 { if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpEList)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19946, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20078, 0) return int32(WRC_Abort) } if elistFlags&uint32(libc.Int32FromInt32(EP_HasFunc)|libc.Int32FromInt32(EP_Subquery)) != uint32(0) { @@ -123682,12 +124651,12 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct >= 0 { pE = (*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFExpr if *(*uintptr)(unsafe.Pointer(pE + 32)) == uintptr(0) || (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pE + 32)))).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19977, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20109, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct = -int32(1) } else { pKeyInfo = _sqlite3KeyInfoFromExprList(tls, pParse, *(*uintptr)(unsafe.Pointer(pE + 32)), 0, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistAddr = _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct, 0, 0, pKeyInfo, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20028, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20160, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } } if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab >= 0 { @@ -123708,7 +124677,7 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { (*TKeyInfo)(unsafe.Pointer(pKeyInfo1)).FnKeyField++ } _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab, (*TExprList)(unsafe.Pointer(pOBList)).FnExpr+nExtra, 0, pKeyInfo1, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20061, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20193, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } goto _1 _1: @@ -123778,7 +124747,7 @@ func _finalizeAggFunctions(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { } _sqlite3VdbeAddOp3(tls, v, int32(OP_AggStep), 0, regAgg, (*TAggInfo)(unsafe.Pointer(pAggInfo)).FiFirstReg+(*TAggInfo)(unsafe.Pointer(pAggInfo)).FnColumn+i) _sqlite3VdbeAppendP4(tls, v, (*TAggInfo_func)(unsafe.Pointer(pF)).FpFunc, -int32(7)) - _sqlite3VdbeChangeP5(tls, v, uint16(uint8(nArg))) + _sqlite3VdbeChangeP5(tls, v, uint16(uint8(uint8(nArg)))) _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), (*TAggInfo_func)(unsafe.Pointer(pF)).FiOBTab, iTop+int32(1)) _sqlite3VdbeJumpHere(tls, v, iTop) _sqlite3ReleaseTempRange(tls, pParse, regAgg, nArg) @@ -123961,7 +124930,7 @@ func _updateAccumulator(tls *libc.TLS, pParse uintptr, regAcc int32, pAggInfo ui } _sqlite3VdbeAddOp3(tls, v, int32(OP_AggStep), 0, regAgg, (*TAggInfo)(unsafe.Pointer(pAggInfo)).FiFirstReg+(*TAggInfo)(unsafe.Pointer(pAggInfo)).FnColumn+i) _sqlite3VdbeAppendP4(tls, v, (*TAggInfo_func)(unsafe.Pointer(pF)).FpFunc, -int32(7)) - _sqlite3VdbeChangeP5(tls, v, uint16(uint8(nArg))) + _sqlite3VdbeChangeP5(tls, v, uint16(uint8(uint8(nArg)))) _sqlite3ReleaseTempRange(tls, pParse, regAgg, nArg) } if addrNext != 0 { @@ -124013,16 +124982,16 @@ func _explainSimpleCount(tls *libc.TLS, pParse uintptr, pTab uintptr, pIdx uintp if int32((*TParse)(unsafe.Pointer(pParse)).Fexplain) == int32(2) { bCover = libc.BoolInt32(pIdx != uintptr(0) && ((*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) || !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == libc.Int32FromInt32(SQLITE_IDXTYPE_PRIMARYKEY)))) if bCover != 0 { - v1 = __ccgo_ts + 20094 + v1 = __ccgo_ts + 20226 } else { - v1 = __ccgo_ts + 1652 + v1 = __ccgo_ts + 1666 } if bCover != 0 { v2 = (*TIndex)(unsafe.Pointer(pIdx)).FzName } else { - v2 = __ccgo_ts + 1652 + v2 = __ccgo_ts + 1666 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20117, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20249, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) } } @@ -124054,7 +125023,7 @@ func _havingToWhereExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 ** statements AggInfo structure. */ if _sqlite3ExprIsConstantOrGroupBy(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, pExpr, (*TSelect)(unsafe.Pointer(pS)).FpGroupBy) != 0 && libc.BoolInt32((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse)) == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb - pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8134) + pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8259) if pNew != 0 { pWhere = (*TSelect)(unsafe.Pointer(pS)).FpWhere t = *(*TExpr)(unsafe.Pointer(pNew)) @@ -124210,7 +125179,7 @@ func _countOfViewOptimization(tls *libc.TLS, pParse uintptr, p uintptr) (r int32 if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { return 0 } /* Result is an aggregate */ - if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15848) != 0 { + if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15941) != 0 { return 0 } /* Is count() */ if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != uintptr(0) { @@ -124473,7 +125442,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { v1 = (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p0)).FpTab)).FzName } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20129, libc.VaList(bp+176, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20261, libc.VaList(bp+176, v1)) goto select_end } /* Clear the SF_UFSrcCheck flag. The check has already been performed, @@ -124574,7 +125543,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Catch mismatch in the declared columns of a view and the number of ** columns in the SELECT on the RHS */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) != (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20183, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20315, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) goto select_end } /* Do not attempt the usual optimizations (flattening and ORDER BY @@ -124711,12 +125680,12 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r ** string for the fake column name seems safer. */ if (*TSrcItem)(unsafe.Pointer(pItem1)).FcolUsed == uint64(0) && (*TSrcItem)(unsafe.Pointer(pItem1)).FzName != uintptr(0) { - _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1652, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) + _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1666, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) } /* Generate code for all sub-queries in the FROM clause */ pSub1 = (*TSrcItem)(unsafe.Pointer(pItem1)).FpSelect - if pSub1 == uintptr(0) { + if pSub1 == uintptr(0) || (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub != 0 { goto _10 } /* The code for a subquery should only be generated once. */ @@ -124755,7 +125724,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn, 0, addrTop) (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub = addrTop _sqlite3SelectDestInit(tls, bp+72, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20223, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20355, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow libc.SetBitFieldPtr16Uint32(pItem1+60+4, libc.Uint32FromInt32(1), 5, 0x20) @@ -124803,7 +125772,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { } _sqlite3SelectDestInit(tls, bp+72, int32(SRT_EphemTab), (*TSrcItem)(unsafe.Pointer(pItem1)).FiCursor) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20238, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20370, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow if onceAddr != 0 { @@ -125195,7 +126164,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { v43 = 0 } - pWInfo = _sqlite3WhereBegin(tls, pParse, pTabList, pWhere, pGroupBy, pDistinct, p, uint16(v42|v43|int32(distFlag)), 0) + pWInfo = _sqlite3WhereBegin(tls, pParse, pTabList, pWhere, pGroupBy, pDistinct, p, uint16(v42|v43|int32(int32(distFlag))), 0) if pWInfo == uintptr(0) { _sqlite3ExprListDelete(tls, db, pDistinct) goto select_end @@ -125213,11 +126182,11 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r groupBySort = 0 } else { if (*(*TDistinctCtx)(unsafe.Pointer(bp))).FisTnct != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Distinct) == uint32(0) { - v44 = __ccgo_ts + 20254 + v44 = __ccgo_ts + 20386 } else { - v44 = __ccgo_ts + 20263 + v44 = __ccgo_ts + 20395 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19151, libc.VaList(bp+176, v44)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19238, libc.VaList(bp+176, v44)) groupBySort = int32(1) nGroupBy = (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr nCol = nGroupBy @@ -125378,7 +126347,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _resetAccumulator(tls, pParse, pAggInfo) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, iUseFlag) _sqlite3VdbeAddOp1(tls, v, int32(OP_Return), regReset) - if int32(distFlag) != 0 && eDist != WHERE_DISTINCT_NOOP { + if int32(int32(distFlag)) != 0 && eDist != WHERE_DISTINCT_NOOP { pF = (*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc _fixDistinctOpenEph(tls, pParse, eDist, (*TAggInfo_func)(unsafe.Pointer(pF)).FiDistinct, (*TAggInfo_func)(unsafe.Pointer(pF)).FiDistAddr) } @@ -125441,7 +126410,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r pKeyInfo2 = _sqlite3KeyInfoOfIndex(tls, pParse, pBest) } /* Open a read-only cursor, execute the OP_Count, close the cursor. */ - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_OpenRead), iCsr, int32(iRoot), iDb, int32(1)) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_OpenRead), iCsr, int32(int32(iRoot)), iDb, int32(1)) if pKeyInfo2 != 0 { _sqlite3VdbeChangeP4(tls, v, -int32(1), pKeyInfo2, -int32(8)) } @@ -125508,7 +126477,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r ** WHERE_ORDERBY_MIN or WHERE_ORDERBY_MAX and pMinMaxOrderBy will ** be an appropriate ORDER BY expression for the optimization. */ - pWInfo = _sqlite3WhereBegin(tls, pParse, pTabList, pWhere, *(*uintptr)(unsafe.Pointer(bp + 64)), pDistinct1, p, uint16(int32(minMaxFlag)|int32(distFlag1)), 0) + pWInfo = _sqlite3WhereBegin(tls, pParse, pTabList, pWhere, *(*uintptr)(unsafe.Pointer(bp + 64)), pDistinct1, p, uint16(int32(int32(minMaxFlag))|int32(int32(distFlag1))), 0) if pWInfo == uintptr(0) { goto select_end } @@ -125536,7 +126505,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeResolveLabel(tls, v, addrEnd) } /* endif aggregate query */ if int32((*(*TDistinctCtx)(unsafe.Pointer(bp))).FeTnctType) == int32(WHERE_DISTINCT_UNORDERED) { - _explainTempTable(tls, pParse, __ccgo_ts+20254) + _explainTempTable(tls, pParse, __ccgo_ts+20386) } /* If there is an ORDER BY clause, then we need to sort the results ** and send them to the callback one by one. @@ -125553,6 +126522,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Control jumps to here if an error is encountered above, or upon ** successful coding of the SELECT. */ + goto select_end select_end: ; _sqlite3ExprListDelete(tls, db, *(*uintptr)(unsafe.Pointer(bp + 64))) @@ -125623,9 +126593,9 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr } else { need = nCol } - if (*TTabResult)(unsafe.Pointer(p)).FnData+uint32(need) > (*TTabResult)(unsafe.Pointer(p)).FnAlloc { - (*TTabResult)(unsafe.Pointer(p)).FnAlloc = (*TTabResult)(unsafe.Pointer(p)).FnAlloc*uint32(2) + uint32(need) - azNew = _sqlite3Realloc(tls, (*TTabResult)(unsafe.Pointer(p)).FazResult, uint64(8)*uint64((*TTabResult)(unsafe.Pointer(p)).FnAlloc)) + if (*TTabResult)(unsafe.Pointer(p)).FnData+uint32(uint32(need)) > (*TTabResult)(unsafe.Pointer(p)).FnAlloc { + (*TTabResult)(unsafe.Pointer(p)).FnAlloc = (*TTabResult)(unsafe.Pointer(p)).FnAlloc*uint32(2) + uint32(uint32(need)) + azNew = _sqlite3Realloc(tls, (*TTabResult)(unsafe.Pointer(p)).FazResult, uint64(uint64(8)*uint64((*TTabResult)(unsafe.Pointer(p)).FnAlloc))) if azNew == uintptr(0) { goto malloc_failed } @@ -125635,13 +126605,13 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr ** the names of all columns. */ if (*TTabResult)(unsafe.Pointer(p)).FnRow == uint32(0) { - (*TTabResult)(unsafe.Pointer(p)).FnColumn = uint32(nCol) + (*TTabResult)(unsafe.Pointer(p)).FnColumn = uint32(uint32(nCol)) i = 0 for { if !(i < nCol) { break } - z = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) + z = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) if z == uintptr(0) { goto malloc_failed } @@ -125657,7 +126627,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr } else { if int32((*TTabResult)(unsafe.Pointer(p)).FnColumn) != nCol { Xsqlite3_free(tls, (*TTabResult)(unsafe.Pointer(p)).FzErrMsg) - (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20272, 0) + (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20404, 0) (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) return int32(1) } @@ -125674,11 +126644,11 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr z = uintptr(0) } else { n = _sqlite3Strlen30(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) + int32(1) - z = Xsqlite3_malloc64(tls, uint64(n)) + z = Xsqlite3_malloc64(tls, uint64(uint64(n))) if z == uintptr(0) { goto malloc_failed } - libc.Xmemcpy(tls, z, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)), uint64(n)) + libc.Xmemcpy(tls, z, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8)), uint64(uint64(n))) } v6 = p + 28 v5 = *(*Tu32)(unsafe.Pointer(v6)) @@ -125692,6 +126662,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr (*TTabResult)(unsafe.Pointer(p)).FnRow++ } return 0 + goto malloc_failed malloc_failed: ; (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) @@ -125733,7 +126704,7 @@ func Xsqlite3_get_table(tls *libc.TLS, db uintptr, zSql uintptr, pazResult uintp (*(*TTabResult)(unsafe.Pointer(bp))).FnData = uint32(1) (*(*TTabResult)(unsafe.Pointer(bp))).FnAlloc = uint32(20) (*(*TTabResult)(unsafe.Pointer(bp))).Frc = SQLITE_OK - (*(*TTabResult)(unsafe.Pointer(bp))).FazResult = Xsqlite3_malloc64(tls, uint64(8)*uint64((*(*TTabResult)(unsafe.Pointer(bp))).FnAlloc)) + (*(*TTabResult)(unsafe.Pointer(bp))).FazResult = Xsqlite3_malloc64(tls, uint64(uint64(8)*uint64((*(*TTabResult)(unsafe.Pointer(bp))).FnAlloc))) if (*(*TTabResult)(unsafe.Pointer(bp))).FazResult == uintptr(0) { (*Tsqlite3)(unsafe.Pointer(db)).FerrCode = int32(SQLITE_NOMEM) return int32(SQLITE_NOMEM) @@ -125746,7 +126717,7 @@ func Xsqlite3_get_table(tls *libc.TLS, db uintptr, zSql uintptr, pazResult uintp if (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg != 0 { if pzErrMsg != 0 { Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pzErrMsg))) - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) } Xsqlite3_free(tls, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg) } @@ -125759,7 +126730,7 @@ func Xsqlite3_get_table(tls *libc.TLS, db uintptr, zSql uintptr, pazResult uintp return rc } if (*(*TTabResult)(unsafe.Pointer(bp))).FnAlloc > (*(*TTabResult)(unsafe.Pointer(bp))).FnData { - azNew = _sqlite3Realloc(tls, (*(*TTabResult)(unsafe.Pointer(bp))).FazResult, uint64(8)*uint64((*(*TTabResult)(unsafe.Pointer(bp))).FnData)) + azNew = _sqlite3Realloc(tls, (*(*TTabResult)(unsafe.Pointer(bp))).FazResult, uint64(uint64(8)*uint64((*(*TTabResult)(unsafe.Pointer(bp))).FnData))) if azNew == uintptr(0) { Xsqlite3_free_table(tls, (*(*TTabResult)(unsafe.Pointer(bp))).FazResult+1*8) (*Tsqlite3)(unsafe.Pointer(db)).FerrCode = int32(SQLITE_NOMEM) @@ -125908,7 +126879,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if isTemp != 0 { /* If TEMP was specified, then the trigger name may not be qualified. */ if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20337, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20469, 0) goto trigger_cleanup } iDb = int32(1) @@ -125948,7 +126919,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto trigger_cleanup } - _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20383, *(*uintptr)(unsafe.Pointer(bp))) + _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20515, *(*uintptr)(unsafe.Pointer(bp))) if _sqlite3FixSrcList(tls, bp+8, pTableName) != 0 { goto trigger_cleanup } @@ -125958,11 +126929,11 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_orphan_error } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20391, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20523, 0) goto trigger_orphan_error } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, db) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20432, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20564, 0) goto trigger_orphan_error } /* Check that the trigger name is not reserved and that no trigger of the @@ -125971,13 +126942,13 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if zName == uintptr(0) { goto trigger_cleanup } - if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20383, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { + if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20515, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { goto trigger_cleanup } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema+56, zName) != 0 { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20472, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20604, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) } @@ -125985,8 +126956,8 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 } } /* Do not create a trigger on a system table */ - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6529, int32(7)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20498, 0) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6593, int32(7)) == 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20630, 0) goto trigger_cleanup } /* INSTEAD of triggers are only for views and views only support INSTEAD @@ -125994,15 +126965,15 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && tr_tm != int32(TK_INSTEAD) { if tr_tm == int32(TK_BEFORE) { - v1 = __ccgo_ts + 20536 + v1 = __ccgo_ts + 20668 } else { - v1 = __ccgo_ts + 20543 + v1 = __ccgo_ts + 20675 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20549, libc.VaList(bp+112, v1, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20681, libc.VaList(bp+112, v1, pTableName+8)) goto trigger_orphan_error } if !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) && tr_tm == int32(TK_INSTEAD) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20586, libc.VaList(bp+112, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20718, libc.VaList(bp+112, pTableName+8)) goto trigger_orphan_error } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -126022,9 +126993,9 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iTabDb == int32(1) { - v3 = __ccgo_ts + 6537 + v3 = __ccgo_ts + 6601 } else { - v3 = __ccgo_ts + 6070 + v3 = __ccgo_ts + 6134 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto trigger_cleanup @@ -126048,7 +127019,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 (*TTrigger)(unsafe.Pointer(pTrigger)).Ftable = _sqlite3DbStrDup(tls, db, (*(*TSrcItem)(unsafe.Pointer(pTableName + 8))).FzName) (*TTrigger)(unsafe.Pointer(pTrigger)).FpSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema (*TTrigger)(unsafe.Pointer(pTrigger)).FpTabSchema = (*TTable)(unsafe.Pointer(pTab)).FpSchema - (*TTrigger)(unsafe.Pointer(pTrigger)).Fop = uint8(op) + (*TTrigger)(unsafe.Pointer(pTrigger)).Fop = uint8(uint8(op)) if tr_tm == int32(TK_BEFORE) { v4 = int32(TRIGGER_BEFORE) } else { @@ -126065,6 +127036,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 (*TTrigger)(unsafe.Pointer(pTrigger)).FpColumns = pColumns pColumns = uintptr(0) (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger = pTrigger + goto trigger_cleanup trigger_cleanup: ; _sqlite3DbFree(tls, db, zName) @@ -126076,6 +127048,7 @@ trigger_cleanup: } else { } return + goto trigger_orphan_error trigger_orphan_error: ; if int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) == int32(1) { @@ -126122,7 +127095,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl pStepList = (*TTriggerStep)(unsafe.Pointer(pStepList)).FpNext } _sqlite3TokenInit(tls, bp+96, (*TTrigger)(unsafe.Pointer(pTrig)).FzName) - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20383, bp+96) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20515, bp+96) if _sqlite3FixTriggerStep(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).Fstep_list) != 0 || _sqlite3FixExpr(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).FpWhen) != 0 { goto triggerfinish_cleanup } @@ -126144,7 +127117,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl break } if (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget != uintptr(0) && _sqlite3ShadowTableName(tls, db, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20632, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20764, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) goto triggerfinish_cleanup } goto _1 @@ -126160,10 +127133,10 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) z = _sqlite3DbStrNDup(tls, db, (*TToken)(unsafe.Pointer(pAll)).Fz, uint64((*TToken)(unsafe.Pointer(pAll)).Fn)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20680, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20812, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) _sqlite3DbFree(tls, db, z) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20755, libc.VaList(bp+120, zName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20887, libc.VaList(bp+120, zName)), uint16(0)) } } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { @@ -126180,6 +127153,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } } } + goto triggerfinish_cleanup triggerfinish_cleanup: ; _sqlite3DeleteTrigger(tls, db, pTrig) @@ -126254,7 +127228,7 @@ func _triggerStepAllocate(tls *libc.TLS, pParse uintptr, op Tu8, pName uintptr, if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { return uintptr(0) } - pTriggerStep = _sqlite3DbMallocZero(tls, db, uint64(96)+uint64((*TToken)(unsafe.Pointer(pName)).Fn)+uint64(1)) + pTriggerStep = _sqlite3DbMallocZero(tls, db, uint64(uint64(96)+uint64((*TToken)(unsafe.Pointer(pName)).Fn)+uint64(1))) if pTriggerStep != 0 { z = pTriggerStep + 1*96 libc.Xmemcpy(tls, z, (*TToken)(unsafe.Pointer(pName)).Fz, uint64((*TToken)(unsafe.Pointer(pName)).Fn)) @@ -126430,7 +127404,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int } if !(pTrigger != 0) { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20784, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20916, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, zDb) } @@ -126438,6 +127412,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int goto drop_trigger_cleanup } _sqlite3DropTriggerPtr(tls, pParse, pTrigger) + goto drop_trigger_cleanup drop_trigger_cleanup: ; _sqlite3SrcListDelete(tls, db, pName) @@ -126471,9 +127446,9 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { code = int32(SQLITE_DROP_TRIGGER) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6537 + v1 = __ccgo_ts + 6601 } else { - v1 = __ccgo_ts + 6070 + v1 = __ccgo_ts + 6134 } zTab = v1 if iDb == int32(1) { @@ -126488,7 +127463,7 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { v2 = _sqlite3GetVdbe(tls, pParse) v = v2 if v2 != uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20804, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20936, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropTrigger), iDb, 0, 0, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName, 0) } @@ -126617,15 +127592,15 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, if int32((*TTrigger)(unsafe.Pointer(p)).Fop) == int32(TK_RETURNING) { /* The first time a RETURNING trigger is seen, the "op" value tells ** us what time of trigger it should be. */ - (*TTrigger)(unsafe.Pointer(p)).Fop = uint8(op) + (*TTrigger)(unsafe.Pointer(p)).Fop = uint8(uint8(op)) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { if op != int32(TK_INSERT) { if op == int32(TK_DELETE) { - v1 = __ccgo_ts + 20866 + v1 = __ccgo_ts + 20998 } else { - v1 = __ccgo_ts + 20873 + v1 = __ccgo_ts + 21005 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20880, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21012, libc.VaList(bp+8, v1)) } (*TTrigger)(unsafe.Pointer(p)).Ftr_tm = uint8(TRIGGER_BEFORE) } else { @@ -126642,6 +127617,7 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, p = (*TTrigger)(unsafe.Pointer(p)).FpNext } } + goto exit_triggers_exist exit_triggers_exist: ; if pMask != 0 { @@ -126725,7 +127701,7 @@ func _isAsteriskTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pTerm)).FpRight)).Fop) != int32(TK_ASTERISK) { return 0 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20928, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21060, 0) return int32(1) } @@ -126790,6 +127766,79 @@ func _sqlite3ExpandReturning(tls *libc.TLS, pParse uintptr, pList uintptr, pTab return pNew } +// C documentation +// +// /* If the Expr node is a subquery or an EXISTS operator or an IN operator that +// ** uses a subquery, and if the subquery is SF_Correlated, then mark the +// ** expression as EP_VarSelect. +// */ +func _sqlite3ReturningSubqueryVarSelect(tls *libc.TLS, NotUsed uintptr, pExpr uintptr) (r int32) { + _ = NotUsed + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) && (*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FselFlags&uint32(SF_Correlated) != uint32(0) { + *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** If the SELECT references the table pWalker->u.pTab, then do two things: +// ** +// ** (1) Mark the SELECT as as SF_Correlated. +// ** (2) Set pWalker->eCode to non-zero so that the caller will know +// ** that (1) has happened. +// */ +func _sqlite3ReturningSubqueryCorrelated(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + var i int32 + var pSrc uintptr + _, _ = i, pSrc + pSrc = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + i = 0 + for { + if !(i < (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) { + break + } + if (*(*TSrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104))).FpTab == *(*uintptr)(unsafe.Pointer(pWalker + 40)) { + *(*Tu32)(unsafe.Pointer(pSelect + 4)) |= uint32(SF_Correlated) + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + break + } + goto _1 + _1: + ; + i++ + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Scan the expression list that is the argument to RETURNING looking +// ** for subqueries that depend on the table which is being modified in the +// ** statement that is hosting the RETURNING clause (pTab). Mark all such +// ** subqueries as SF_Correlated. If the subqueries are part of an +// ** expression, mark the expression as EP_VarSelect. +// ** +// ** https://sqlite.org/forum/forumpost/2c83569ce8945d39 +// */ +func _sqlite3ProcessReturningSubqueries(tls *libc.TLS, pEList uintptr, pTab uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ExprWalkNoop) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3ReturningSubqueryCorrelated) + *(*uintptr)(unsafe.Pointer(bp + 40)) = pTab + _sqlite3WalkExprList(tls, bp, pEList) + if (*(*TWalker)(unsafe.Pointer(bp))).FeCode != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ReturningSubqueryVarSelect) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) + _sqlite3WalkExprList(tls, bp, pEList) + } +} + // C documentation // // /* @@ -126824,6 +127873,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab (*(*TSelect)(unsafe.Pointer(bp))).FpSrc = bp + 128 (*(*TSrcList)(unsafe.Pointer(bp + 128))).FnSrc = int32(1) (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FpTab = pTab + (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FzName = (*TTable)(unsafe.Pointer(pTab)).FzName /* tag-20240424-1 */ (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FiCursor = -int32(1) _sqlite3SelectPrep(tls, pParse, bp, uintptr(0)) if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { @@ -126848,6 +127898,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab if _sqlite3ResolveExprListNames(tls, bp+240, pNew) == SQLITE_OK && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) { nCol = (*TExprList)(unsafe.Pointer(pNew)).FnExpr reg = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(1) + _sqlite3ProcessReturningSubqueries(tls, pNew, pTab) *(*int32)(unsafe.Pointer(pParse + 56)) += nCol + int32(2) (*TReturning)(unsafe.Pointer(pReturning)).FiRetReg = reg i = 0 @@ -126912,11 +127963,11 @@ func _codeTriggerProgram(tls *libc.TLS, pParse uintptr, pStepList uintptr, orcon if orconf == int32(OE_Default) { v2 = int32((*TTriggerStep)(unsafe.Pointer(pStep)).Forconf) } else { - v2 = int32(uint8(orconf)) + v2 = int32(uint8(uint8(orconf))) } (*TParse)(unsafe.Pointer(pParse)).FeOrconf = uint8(v2) if (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6267, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6331, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) } switch int32((*TTriggerStep)(unsafe.Pointer(pStep)).Fop) { case int32(TK_UPDATE): @@ -127018,7 +128069,7 @@ func _codeRowTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab uintp v = _sqlite3GetVdbe(tls, bp+56) if v != 0 { if (*TTrigger)(unsafe.Pointer(pTrigger)).FzName != 0 { - _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+20970, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) + _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+21102, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) } /* If one was specified, code the WHEN clause. If it evaluates to false ** (or NULL) the sub-vdbe is immediately halted by jumping to the @@ -127121,7 +128172,7 @@ func _sqlite3CodeRowTriggerDirect(tls *libc.TLS, pParse uintptr, p uintptr, pTab ** invocation is disallowed if (a) the sub-program is really a trigger, ** not a foreign key action, and (b) the flag to enable recursive triggers ** is clear. */ - _sqlite3VdbeChangeP5(tls, v, uint16(uint8(bRecursive))) + _sqlite3VdbeChangeP5(tls, v, uint16(uint8(uint8(bRecursive)))) } } @@ -127335,7 +128386,7 @@ func _indexColumnIsBeingUpdated(tls *libc.TLS, pIdx uintptr, iCol int32, aXRef u _ = iIdxCol iIdxCol = *(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(iCol)*2)) /* Cannot index rowid */ - if int32(iIdxCol) >= 0 { + if int32(int32(iIdxCol)) >= 0 { return libc.BoolInt32(*(*int32)(unsafe.Pointer(aXRef + uintptr(iIdxCol)*4)) >= 0) } return _sqlite3ExprReferencesUpdatedColumn(tls, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(iCol)*32))).FpExpr, aXRef, chngRowid) @@ -127642,7 +128693,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui /* Allocate space for aXRef[], aRegIdx[], and aToOpen[]. ** Initialize aXRef[] and aToOpen[] to their default values. */ - aXRef = _sqlite3DbMallocRawNN(tls, db, uint64(4)*uint64(int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+nIdx+libc.Int32FromInt32(1))+uint64(nIdx)+uint64(2)) + aXRef = _sqlite3DbMallocRawNN(tls, db, uint64(uint64(4)*uint64(int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+nIdx+libc.Int32FromInt32(1))+uint64(uint64(nIdx))+uint64(2))) if aXRef == uintptr(0) { goto update_cleanup } @@ -127697,7 +128748,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui if !(j < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } - if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FhName) == int32(hCol) && _sqlite3StrICmp(tls, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName) == 0 { + if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FhName) == int32(int32(hCol)) && _sqlite3StrICmp(tls, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName) == 0 { if j == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { chngRowid = uint8(1) pRowidExpr = (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FpExpr @@ -127707,7 +128758,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui chngPk = uint8(1) } else { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20984, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21116, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto update_cleanup } } @@ -127727,13 +128778,13 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui pRowidExpr = (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FpExpr iRowidExpr = i } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21020, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21152, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto update_cleanup } } if j < 0 { - v11 = __ccgo_ts + 7909 + v11 = __ccgo_ts + 8034 } else { v11 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName } @@ -127750,7 +128801,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui ; i++ } - chngKey = uint8(int32(chngRowid) + int32(chngPk)) + chngKey = uint8(int32(int32(chngRowid)) + int32(int32(chngPk))) /* Mark generated columns as changing if their generator expressions ** reference any changing column. The actual aXRef[] value for ** generated expressions is not used, other than to check to see that it @@ -127772,7 +128823,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_GENERATED) == 0 { goto _12 } - if _sqlite3ExprReferencesUpdatedColumn(tls, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), aXRef, int32(chngRowid)) != 0 { + if _sqlite3ExprReferencesUpdatedColumn(tls, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), aXRef, int32(int32(chngRowid))) != 0 { *(*int32)(unsafe.Pointer(aXRef + uintptr(i)*4)) = int32(99999) bProgress = int32(1) } @@ -127794,7 +128845,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui v13 = uint64(0) } (*(*TSrcItem)(unsafe.Pointer(pTabList + 8))).FcolUsed = v13 - hasFK = _sqlite3FkRequired(tls, pParse, pTab, aXRef, int32(chngKey)) + hasFK = _sqlite3FkRequired(tls, pParse, pTab, aXRef, int32(int32(chngKey))) /* There is one entry in the aRegIdx[] array for each index on the table ** being updated. Fill in aRegIdx[] with a register number that will hold ** the key for accessing each index. @@ -127808,7 +128859,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui if !(pIdx != 0) { break } - if chngKey != 0 || hasFK > int32(1) || pIdx == pPk || _indexWhereClauseMightChange(tls, pIdx, aXRef, int32(chngRowid)) != 0 { + if chngKey != 0 || hasFK > int32(1) || pIdx == pPk || _indexWhereClauseMightChange(tls, pIdx, aXRef, int32(int32(chngRowid))) != 0 { v16 = pParse + 56 *(*int32)(unsafe.Pointer(v16))++ v15 = *(*int32)(unsafe.Pointer(v16)) @@ -127821,7 +128872,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui if !(i < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)) { break } - if _indexColumnIsBeingUpdated(tls, pIdx, i, aXRef, int32(chngRowid)) != 0 { + if _indexColumnIsBeingUpdated(tls, pIdx, i, aXRef, int32(int32(chngRowid))) != 0 { v19 = pParse + 56 *(*int32)(unsafe.Pointer(v19))++ v18 = *(*int32)(unsafe.Pointer(v19)) @@ -127939,7 +128990,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui } nPk = int16(v32) iPk = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(1) - *(*int32)(unsafe.Pointer(pParse + 56)) += int32(nPk) + *(*int32)(unsafe.Pointer(pParse + 56)) += int32(int32(nPk)) *(*int32)(unsafe.Pointer(pParse + 56)) += nChangeFrom v34 = pParse + 56 *(*int32)(unsafe.Pointer(v34))++ @@ -127951,19 +129002,19 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui } else { v35 = 0 } - nEphCol = int32(nPk) + nChangeFrom + v35 + nEphCol = int32(int32(nPk)) + nChangeFrom + v35 v37 = pParse + 52 v36 = *(*int32)(unsafe.Pointer(v37)) *(*int32)(unsafe.Pointer(v37))++ iEph = v36 if pPk != 0 { - _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, iPk, iPk+int32(nPk)-int32(1)) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, iPk, iPk+int32(int32(nPk))-int32(1)) } addrOpen = _sqlite3VdbeAddOp2(tls, v, int32(OP_OpenEphemeral), iEph, nEphCol) if pPk != 0 { pKeyInfo = _sqlite3KeyInfoOfIndex(tls, pParse, pPk) if pKeyInfo != 0 { - (*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField = uint16(nEphCol) + (*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField = uint16(uint16(nEphCol)) _sqlite3VdbeAppendP4(tls, v, pKeyInfo, -int32(8)) } } @@ -127978,7 +129029,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui if nChangeFrom != 0 { _sqlite3MultiWrite(tls, pParse) eOnePass = ONEPASS_OFF - nKey = int32(nPk) + nKey = int32(int32(nPk)) regKey = iPk } else { if pUpsert != 0 { @@ -128007,7 +129058,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui if !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) && !(pTrigger != 0) && !(hasFK != 0) && !(chngKey != 0) && !(*(*int32)(unsafe.Pointer(bp + 88)) != 0) && (pWhere == uintptr(0) || !((*TExpr)(unsafe.Pointer(pWhere)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != libc.Uint32FromInt32(0))) { flags |= int32(WHERE_ONEPASS_MULTIROW) } - pWInfo = _sqlite3WhereBegin(tls, pParse, pTabList, pWhere, uintptr(0), uintptr(0), uintptr(0), uint16(flags), iIdxCur) + pWInfo = _sqlite3WhereBegin(tls, pParse, pTabList, pWhere, uintptr(0), uintptr(0), uintptr(0), uint16(uint16(flags)), iIdxCur) if pWInfo == uintptr(0) { goto update_cleanup } @@ -128057,7 +129108,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui ** is not required) and leave the PK fields in the array of registers. */ i = 0 for { - if !(i < int32(nPk)) { + if !(i < int32(int32(nPk))) { break } _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iDataCur, int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pPk)).FaiColumn + uintptr(i)*2))), iPk+i) @@ -128070,11 +129121,11 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui if addrOpen != 0 { _sqlite3VdbeChangeToNoop(tls, v, addrOpen) } - nKey = int32(nPk) + nKey = int32(int32(nPk)) regKey = iPk } else { - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), iPk, int32(nPk), regKey, _sqlite3IndexAffinityStr(tls, db, pPk), int32(nPk)) - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxInsert), iEph, regKey, iPk, int32(nPk)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), iPk, int32(int32(nPk)), regKey, _sqlite3IndexAffinityStr(tls, db, pPk), int32(int32(nPk))) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxInsert), iEph, regKey, iPk, int32(int32(nPk))) } } } @@ -128127,7 +129178,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui if pPk != 0 { i = 0 for { - if !(i < int32(nPk)) { + if !(i < int32(int32(nPk))) { break } _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), iEph, i, iPk+i) @@ -128136,7 +129187,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui ; i++ } - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_NotFound), iDataCur, labelContinue, iPk, int32(nPk)) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_NotFound), iDataCur, labelContinue, iPk, int32(int32(nPk))) } else { _sqlite3VdbeAddOp2(tls, v, int32(OP_Rowid), iEph, regOldRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_NotExists), iDataCur, labelContinue, regOldRowid) @@ -128182,7 +129233,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui break } colFlags = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) - k = int32(_sqlite3TableColumnToStorage(tls, pTab, int16(i))) + regOld + k = int32(_sqlite3TableColumnToStorage(tls, pTab, int16(int16(i)))) + regOld if oldmask == uint32(0xffffffff) || i < int32(32) && oldmask&(libc.Uint32FromInt32(1)< int32(31) || uint32(newmask)&(libc.Uint32FromInt32(1)< int32(31) || uint32(uint32(newmask))&(libc.Uint32FromInt32(1)<= 0 { pRow = _sqlite3ExprDup(tls, db, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(*(*int32)(unsafe.Pointer(aXRef + uintptr(iPk)*4)))*32))).FpExpr, 0) } else { - pRow = _exprRowColumn(tls, pParse, int32(iPk)) + pRow = _exprRowColumn(tls, pParse, int32(int32(iPk))) } } pList = _sqlite3ExprListAppend(tls, pParse, uintptr(0), pRow) @@ -128559,8 +129611,8 @@ func _updateVirtualTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pTab uintp } else { /* PRIMARY KEY column */ pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab) iPk1 = *(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pPk1)).FaiColumn)) - _sqlite3VdbeAddOp3(tls, v, int32(OP_VColumn), iCsr, int32(iPk1), regArg) - _sqlite3VdbeAddOp2(tls, v, int32(OP_SCopy), regArg+int32(2)+int32(iPk1), regArg+int32(1)) + _sqlite3VdbeAddOp3(tls, v, int32(OP_VColumn), iCsr, int32(int32(iPk1)), regArg) + _sqlite3VdbeAddOp2(tls, v, int32(OP_SCopy), regArg+int32(2)+int32(int32(iPk1)), regArg+int32(1)) } eOnePass = _sqlite3WhereOkOnePass(tls, pWInfo, bp) /* There is no ONEPASS_MULTI on virtual tables */ @@ -128848,9 +129900,9 @@ func _sqlite3UpsertAnalyzeTarget(tls *libc.TLS, pParse uintptr, pTabList uintptr if nClause == 0 && (*TUpsert)(unsafe.Pointer(pUpsert)).FpNextUpsert == uintptr(0) { (*(*[16]int8)(unsafe.Pointer(bp + 200)))[0] = 0 } else { - Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21052, libc.VaList(bp+224, nClause+int32(1))) + Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21184, libc.VaList(bp+224, nClause+int32(1))) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21056, libc.VaList(bp+224, bp+200)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21188, libc.VaList(bp+224, bp+200)) return int32(SQLITE_ERROR) } goto _1 @@ -128953,7 +130005,7 @@ func _sqlite3UpsertDoUpdate(tls *libc.TLS, pParse uintptr, pUpsert uintptr, pTab i++ } i = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), iDataCur, 0, iPk, nPk) - _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12474, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12599, -int32(1)) _sqlite3MayAbort(tls, pParse) _sqlite3VdbeJumpHere(tls, v, i) } @@ -129035,7 +130087,7 @@ func _execSql(tls *libc.TLS, db uintptr, pzErrMsg uintptr, zSql uintptr) (r int3 ** corrupt the sqlite_schema.sql field with other kinds of statements ** then run VACUUM to get those statements to execute at inappropriate ** times. */ - if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21129, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21133, uint64(3)) == 0) { + if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21261, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21265, uint64(3)) == 0) { rc = _execSql(tls, db, pzErrMsg, zSubSql) if rc != SQLITE_OK { break @@ -129135,6 +130187,7 @@ func _sqlite3Vacuum(tls *libc.TLS, pParse uintptr, _pNm uintptr, pInto uintptr) _sqlite3VdbeAddOp2(tls, v, int32(OP_Vacuum), iDb, iIntoReg) _sqlite3VdbeUsesBtree(tls, v, iDb) } + goto build_vacuum_end build_vacuum_end: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pInto) @@ -129162,24 +130215,24 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p pDb = uintptr(0) /* Name of output file */ pgflags = uint32(PAGER_SYNCHRONOUS_OFF) /* sync flags for output db */ if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21137) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21269) return int32(SQLITE_ERROR) /* IMP: R-12218-18073 */ } if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive > int32(1) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21177) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21309) return int32(SQLITE_ERROR) /* IMP: R-15610-35227 */ } saved_openFlags = (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags if pOut != 0 { if Xsqlite3_value_type(tls, pOut) != int32(SQLITE_TEXT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21220) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21352) return int32(SQLITE_ERROR) } zOut = Xsqlite3_value_text(tls, pOut) *(*uint32)(unsafe.Pointer(db + 76)) &= uint32(^libc.Int32FromInt32(SQLITE_OPEN_READONLY)) *(*uint32)(unsafe.Pointer(db + 76)) |= uint32(libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE)) } else { - zOut = __ccgo_ts + 1652 + zOut = __ccgo_ts + 1666 } /* Save the current value of the database flags so that it can be ** restored before returning. Then set the writable-schema flag, and @@ -129211,7 +130264,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** to write the journal header file. */ nDb = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21238, libc.VaList(bp+24, zOut)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21370, libc.VaList(bp+24, zOut)) (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags = saved_openFlags if rc != SQLITE_OK { goto end_of_vacuum @@ -129223,7 +130276,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p *(*Ti64)(unsafe.Pointer(bp)) = 0 if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != uintptr(0) && (_sqlite3OsFileSize(tls, id, bp) != SQLITE_OK || *(*Ti64)(unsafe.Pointer(bp)) > 0) { rc = int32(SQLITE_ERROR) - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21261) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21393) goto end_of_vacuum } *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_VacuumInto) @@ -129240,7 +130293,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** file. This is done before the sqlite3BtreeGetPageSize(pMain) call below, ** to ensure that we do not try to change the page-size on a WAL database. */ - rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14883) + rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14976) if rc != SQLITE_OK { goto end_of_vacuum } @@ -129270,12 +130323,12 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p /* Query the schema of the main database. Create a mirror schema ** in the temporary database. */ - (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(nDb) /* force new CREATE statements into vacuum_db */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21288, libc.VaList(bp+24, zDbMain)) + (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(uint8(nDb)) /* force new CREATE statements into vacuum_db */ + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21420, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21396, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21528, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } @@ -129284,7 +130337,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** an "INSERT INTO vacuum_db.xxx SELECT * FROM main.xxx;" to copy ** the contents to the temporary database. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21450, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21582, libc.VaList(bp+24, zDbMain)) *(*Tu32)(unsafe.Pointer(db + 44)) &= uint32(^libc.Int32FromInt32(DBFLAG_Vacuum)) if rc != SQLITE_OK { goto end_of_vacuum @@ -129294,7 +130347,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** associated storage, so all we have to do is copy their entries ** from the schema table. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21601, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21733, libc.VaList(bp+24, zDbMain)) if rc != 0 { goto end_of_vacuum } @@ -129333,6 +130386,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p nRes = _sqlite3BtreeGetRequestedReserve(tls, pTemp) rc = _sqlite3BtreeSetPageSize(tls, pMain, _sqlite3BtreeGetPageSize(tls, pTemp), nRes, int32(1)) } + goto end_of_vacuum end_of_vacuum: ; /* Restore the original value of db->flags */ @@ -129436,7 +130490,7 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule pMod = uintptr(0) } else { nName = _sqlite3Strlen30(tls, zName) - pMod = _sqlite3Malloc(tls, uint64(48)+uint64(nName)+uint64(1)) + pMod = _sqlite3Malloc(tls, uint64(uint64(48)+uint64(uint64(nName))+uint64(1))) if pMod == uintptr(0) { _sqlite3OomFault(tls, db) return uintptr(0) @@ -129820,13 +130874,13 @@ func _addModuleArgument(tls *libc.TLS, pParse uintptr, pTable uintptr, zArg uint FazArg uintptr Fp uintptr })(unsafe.Pointer(pTable + 64))).FnArg+int32(3) >= *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12704, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12829, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) } azModuleArg = _sqlite3DbRealloc(tls, db, (*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTable + 64))).FazArg, uint64(nBytes)) + })(unsafe.Pointer(pTable + 64))).FazArg, uint64(uint64(nBytes))) if azModuleArg == uintptr(0) { _sqlite3DbFree(tls, db, zArg) } else { @@ -129901,7 +130955,7 @@ func _addArgumentToVtab(tls *libc.TLS, pParse uintptr) { z = (*TParse)(unsafe.Pointer(pParse)).FsArg.Fz n = int32((*TParse)(unsafe.Pointer(pParse)).FsArg.Fn) db = (*TParse)(unsafe.Pointer(pParse)).Fdb - _addModuleArgument(tls, pParse, (*TParse)(unsafe.Pointer(pParse)).FpNewTable, _sqlite3DbStrNDup(tls, db, z, uint64(n))) + _addModuleArgument(tls, pParse, (*TParse)(unsafe.Pointer(pParse)).FpNewTable, _sqlite3DbStrNDup(tls, db, z, uint64(uint64(n)))) } } @@ -129943,7 +130997,7 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { if pEnd != 0 { (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fn = uint32(int32(int64((*TToken)(unsafe.Pointer(pEnd)).Fz)-int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz))) + (*TToken)(unsafe.Pointer(pEnd)).Fn } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21731, libc.VaList(bp+8, pParse+272)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21863, libc.VaList(bp+8, pParse+272)) /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. @@ -129953,11 +131007,11 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { ** by sqlite3StartTable(). */ iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+21755, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+21887, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) v = _sqlite3GetVdbe(tls, pParse) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) - zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21854, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) + zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21986, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, zWhere, uint16(0)) _sqlite3DbFree(tls, db, zStmt) v2 = pParse + 56 @@ -130044,7 +131098,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, break } if (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab == pTab { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21873, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22005, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(SQLITE_LOCKED) } goto _1 @@ -130086,9 +131140,9 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, } if SQLITE_OK != rc { if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21915, libc.VaList(bp+48, zModuleName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22047, libc.VaList(bp+48, zModuleName)) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3799, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3863, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) } _sqlite3DbFree(tls, db, pVTable) @@ -130101,8 +131155,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*TModule)(unsafe.Pointer(pMod)).FnRefModule++ (*TVTable)(unsafe.Pointer(pVTable)).FnRef = int32(1) if (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared == 0 { - zFormat = __ccgo_ts + 21945 - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + zFormat = __ccgo_ts + 22077 + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, zModuleName)) _sqlite3VtabUnlock(tls, pVTable) rc = int32(SQLITE_ERROR) } else { @@ -130127,7 +131181,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(iCol < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } - zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1652) + zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1666) i = 0 nType = _sqlite3Strlen30(tls, zType) i = 0 @@ -130135,7 +131189,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(i < nType) { break } - if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16589, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { + if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16676, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { break } goto _3 @@ -130169,7 +131223,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_HasHidden) oooHidden = uint16(TF_OOOHidden) } else { - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(oooHidden) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(uint32(oooHidden)) } goto _2 _2: @@ -130216,13 +131270,13 @@ func _sqlite3VtabCallConnect(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).FazArg)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21991, libc.VaList(bp+16, zModule)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22123, libc.VaList(bp+16, zModule)) rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxConnect, bp) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3799, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3863, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) (*TParse)(unsafe.Pointer(pParse)).Frc = rc } _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) @@ -130244,12 +131298,12 @@ func _growVTrans(tls *libc.TLS, db uintptr) (r int32) { ARRAY_INCR = int32(5) /* Grow the sqlite3.aVTrans array if required */ if (*Tsqlite3)(unsafe.Pointer(db)).FnVTrans%ARRAY_INCR == 0 { - nBytes = int64(uint64(8) * uint64(int64((*Tsqlite3)(unsafe.Pointer(db)).FnVTrans)+int64(ARRAY_INCR))) - aVTrans = _sqlite3DbRealloc(tls, db, (*Tsqlite3)(unsafe.Pointer(db)).FaVTrans, uint64(nBytes)) + nBytes = int64(uint64(8) * uint64(int64((*Tsqlite3)(unsafe.Pointer(db)).FnVTrans)+int64(int64(ARRAY_INCR)))) + aVTrans = _sqlite3DbRealloc(tls, db, (*Tsqlite3)(unsafe.Pointer(db)).FaVTrans, uint64(uint64(nBytes))) if !(aVTrans != 0) { return int32(SQLITE_NOMEM) } - libc.Xmemset(tls, aVTrans+uintptr((*Tsqlite3)(unsafe.Pointer(db)).FnVTrans)*8, 0, uint64(8)*uint64(ARRAY_INCR)) + libc.Xmemset(tls, aVTrans+uintptr((*Tsqlite3)(unsafe.Pointer(db)).FnVTrans)*8, 0, uint64(8)*uint64(uint64(ARRAY_INCR))) (*Tsqlite3)(unsafe.Pointer(db)).FaVTrans = aVTrans } return SQLITE_OK @@ -130303,7 +131357,7 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, ** error. Otherwise, do nothing. */ if pMod == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxDestroy == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21991, libc.VaList(bp+8, zMod)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22123, libc.VaList(bp+8, zMod)) rc = int32(SQLITE_ERROR) } else { rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate, pzErr) @@ -130329,18 +131383,42 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r int32) { bp := tls.Alloc(448) defer tls.Free(448) - var initBusy, rc int32 - var pCtx, pIdx, pNew, pTab, v2 uintptr - var v1 Ti16 + var i, initBusy, rc int32 + var pCtx, pIdx, pNew, pTab, z, v3 uintptr + var v2 Ti16 var _ /* sParse at bp+0 */ TParse - _, _, _, _, _, _, _, _ = initBusy, pCtx, pIdx, pNew, pTab, rc, v1, v2 + var _ /* tokenType at bp+424 */ int32 + _, _, _, _, _, _, _, _, _, _ = i, initBusy, pCtx, pIdx, pNew, pTab, rc, z, v2, v3 rc = SQLITE_OK + /* Verify that the first two keywords in the CREATE TABLE statement + ** really are "CREATE" and "TABLE". If this is not the case, then + ** sqlite3_declare_vtab() is being misused. + */ + z = zCreateTable + i = 0 + for { + if !(_aKeyword1[i] != 0) { + break + } + *(*int32)(unsafe.Pointer(bp + 424)) = 0 + for cond := true; cond; cond = *(*int32)(unsafe.Pointer(bp + 424)) == int32(TK_SPACE) { + z += uintptr(_sqlite3GetToken(tls, z, bp+424)) + } + if *(*int32)(unsafe.Pointer(bp + 424)) != int32(_aKeyword1[i]) { + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+22142, 0) + return int32(SQLITE_ERROR) + } + goto _1 + _1: + ; + i++ + } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pCtx = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(pCtx != 0) || (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared != 0 { - _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(155155))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(156227))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(155157)) + return _sqlite3MisuseError(tls, int32(156229)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -130352,7 +131430,7 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i initBusy = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) (*(*TParse)(unsafe.Pointer(bp))).FnQueryLoop = int16(1) - if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) && (*(*TParse)(unsafe.Pointer(bp))).FpNewTable != uintptr(0) && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && int32((*TTable)(unsafe.Pointer((*(*TParse)(unsafe.Pointer(bp))).FpNewTable)).FeTabType) == TABTYP_NORM { + if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) { if !((*TTable)(unsafe.Pointer(pTab)).FaCol != 0) { pNew = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable (*TTable)(unsafe.Pointer(pTab)).FaCol = (*TTable)(unsafe.Pointer(pNew)).FaCol @@ -130361,9 +131439,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpDfltList) - v1 = (*TTable)(unsafe.Pointer(pNew)).FnCol - (*TTable)(unsafe.Pointer(pTab)).FnCol = v1 - (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v1 + v2 = (*TTable)(unsafe.Pointer(pNew)).FnCol + (*TTable)(unsafe.Pointer(pTab)).FnCol = v2 + (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v2 *(*Tu32)(unsafe.Pointer(pTab + 48)) |= (*TTable)(unsafe.Pointer(pNew)).FtabFlags & uint32(libc.Int32FromInt32(TF_WithoutRowid)|libc.Int32FromInt32(TF_NoVisibleRowid)) (*TTable)(unsafe.Pointer(pNew)).FnCol = 0 (*TTable)(unsafe.Pointer(pNew)).FaCol = uintptr(0) @@ -130382,11 +131460,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared = int32(1) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - v2 = __ccgo_ts + 3799 + v3 = __ccgo_ts + 3863 } else { - v2 = uintptr(0) + v3 = uintptr(0) } - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v2, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v3, libc.VaList(bp+440, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) rc = int32(SQLITE_ERROR) } @@ -130396,12 +131474,17 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i } _sqlite3DeleteTable(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FpNewTable) _sqlite3ParseObjectReset(tls, bp) - (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(initBusy) + (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(uint8(initBusy)) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc } +var _aKeyword1 = [3]Tu8{ + 0: uint8(TK_CREATE), + 1: uint8(TK_TABLE), +} + // C documentation // // /* @@ -130743,7 +131826,7 @@ func _sqlite3VtabOverloadFunction(tls *libc.TLS, db uintptr, pDef uintptr, nArg } /* Create a new ephemeral function definition for the overloaded ** function */ - pNew = _sqlite3DbMallocZero(tls, db, uint64(72)+uint64(_sqlite3Strlen30(tls, (*TFuncDef)(unsafe.Pointer(pDef)).FzName))+uint64(1)) + pNew = _sqlite3DbMallocZero(tls, db, uint64(uint64(72)+uint64(_sqlite3Strlen30(tls, (*TFuncDef)(unsafe.Pointer(pDef)).FzName))+uint64(1))) if pNew == uintptr(0) { return pDef } @@ -130788,7 +131871,7 @@ func _sqlite3VtabMakeWritable(tls *libc.TLS, pParse uintptr, pTab uintptr) { i++ } n = int32(uint64((*TParse)(unsafe.Pointer(pToplevel)).FnVtabLock+libc.Int32FromInt32(1)) * uint64(8)) - apVtabLock = _sqlite3Realloc(tls, (*TParse)(unsafe.Pointer(pToplevel)).FapVtabLock, uint64(n)) + apVtabLock = _sqlite3Realloc(tls, (*TParse)(unsafe.Pointer(pToplevel)).FapVtabLock, uint64(uint64(n))) if apVtabLock != 0 { (*TParse)(unsafe.Pointer(pToplevel)).FapVtabLock = apVtabLock v4 = pToplevel + 312 @@ -130853,7 +131936,7 @@ func _sqlite3VtabEponymousTableInit(tls *libc.TLS, pParse uintptr, pMod uintptr) _addModuleArgument(tls, pParse, pTab, _sqlite3DbStrDup(tls, db, (*TTable)(unsafe.Pointer(pTab)).FzName)) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer(pModule)).FxConnect, bp) if rc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3799, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3863, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3VtabEponymousTableClear(tls, db, pMod) } @@ -130917,7 +132000,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) p = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(p != 0) { - rc = _sqlite3MisuseError(tls, int32(155651)) + rc = _sqlite3MisuseError(tls, int32(156723)) } else { ap = va switch op { @@ -130930,7 +132013,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in case int32(SQLITE_VTAB_USES_ALL_SCHEMAS): (*TVTable)(unsafe.Pointer((*TVtabCtx)(unsafe.Pointer(p)).FpVTable)).FbAllSchemas = uint8(1) default: - rc = _sqlite3MisuseError(tls, int32(155673)) + rc = _sqlite3MisuseError(tls, int32(156745)) break } _ = ap @@ -131652,10 +132735,10 @@ type WhereInfo1 = TWhereInfo1 func _explainIndexColumnName(tls *libc.TLS, pIdx uintptr, i int32) (r uintptr) { i = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) if i == -int32(2) { - return __ccgo_ts + 22010 + return __ccgo_ts + 22155 } if i == -int32(1) { - return __ccgo_ts + 16698 + return __ccgo_ts + 16785 } return (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(i)*16))).FzCnName } @@ -131674,10 +132757,10 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, var i int32 _ = i if bAnd != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22017, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22162, int32(5)) } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22023, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22168, int32(1)) } i = 0 for { @@ -131685,7 +132768,7 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13094, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13219, int32(1)) } Xsqlite3_str_appendall(tls, pStr, _explainIndexColumnName(tls, pIdx, iTerm+i)) goto _1 @@ -131694,11 +132777,11 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5110, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5174, int32(1)) } Xsqlite3_str_append(tls, pStr, zOp, int32(1)) if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22023, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22168, int32(1)) } i = 0 for { @@ -131706,16 +132789,16 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13094, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13219, int32(1)) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5112, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5176, int32(1)) goto _2 _2: ; i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5110, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5174, int32(1)) } } @@ -131745,23 +132828,23 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { pIndex = (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex nEq = (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq nSkip = (*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip - if int32(nEq) == 0 && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) == uint32(0) { + if int32(int32(nEq)) == 0 && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) == uint32(0) { return } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22025, int32(2)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22170, int32(2)) i = 0 for { - if !(i < int32(nEq)) { + if !(i < int32(int32(nEq))) { break } z = _explainIndexColumnName(tls, pIndex, i) if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22017, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22162, int32(5)) } - if i >= int32(nSkip) { - v2 = __ccgo_ts + 22028 + if i >= int32(int32(nSkip)) { + v2 = __ccgo_ts + 22173 } else { - v2 = __ccgo_ts + 22033 + v2 = __ccgo_ts + 22178 } Xsqlite3_str_appendf(tls, pStr, v2, libc.VaList(bp+8, z)) goto _1 @@ -131771,13 +132854,13 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } j = i if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_BTM_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22041) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22186) i = int32(1) } if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_TOP_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22043) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22188) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5110, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5174, int32(1)) } // C documentation @@ -131813,54 +132896,54 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Initial space for EQP output string */ pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop flags = (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags - if flags&uint32(WHERE_MULTI_OR) != 0 || int32(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) != 0 { + if flags&uint32(WHERE_MULTI_OR) != 0 || int32(int32(wctrlFlags))&int32(WHERE_OR_SUBCLAUSE) != 0 { return 0 } - isSearch = libc.BoolInt32(flags&uint32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) != uint32(0) || flags&uint32(WHERE_VIRTUALTABLE) == uint32(0) && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq) > 0 || int32(wctrlFlags)&(libc.Int32FromInt32(WHERE_ORDERBY_MIN)|libc.Int32FromInt32(WHERE_ORDERBY_MAX)) != 0) + isSearch = libc.BoolInt32(flags&uint32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) != uint32(0) || flags&uint32(WHERE_VIRTUALTABLE) == uint32(0) && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq) > 0 || int32(int32(wctrlFlags))&(libc.Int32FromInt32(WHERE_ORDERBY_MIN)|libc.Int32FromInt32(WHERE_ORDERBY_MAX)) != 0) _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if isSearch != 0 { - v2 = __ccgo_ts + 22045 + v2 = __ccgo_ts + 22190 } else { - v2 = __ccgo_ts + 22052 + v2 = __ccgo_ts + 22197 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22057, libc.VaList(bp+144, v2, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22202, libc.VaList(bp+144, v2, pItem)) if flags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_VIRTUALTABLE)) == uint32(0) { zFmt = uintptr(0) pIdx = (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex if !((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) && int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { if isSearch != 0 { - zFmt = __ccgo_ts + 11257 + zFmt = __ccgo_ts + 11382 } } else { if flags&uint32(WHERE_PARTIALIDX) != 0 { - zFmt = __ccgo_ts + 22063 + zFmt = __ccgo_ts + 22208 } else { if flags&uint32(WHERE_AUTO_INDEX) != 0 { - zFmt = __ccgo_ts + 22096 + zFmt = __ccgo_ts + 22241 } else { if flags&uint32(WHERE_IDX_ONLY) != 0 { - zFmt = __ccgo_ts + 22121 + zFmt = __ccgo_ts + 22266 } else { - zFmt = __ccgo_ts + 22139 + zFmt = __ccgo_ts + 22284 } } } } if zFmt != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22148, int32(7)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22293, int32(7)) Xsqlite3_str_appendf(tls, bp, zFmt, libc.VaList(bp+144, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) _explainIndexRange(tls, bp, pLoop) } } else { if flags&uint32(WHERE_IPK) != uint32(0) && flags&uint32(WHERE_CONSTRAINT) != uint32(0) { - zRowid = __ccgo_ts + 16698 - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22156, libc.VaList(bp+144, zRowid)) + zRowid = __ccgo_ts + 16785 + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22301, libc.VaList(bp+144, zRowid)) if flags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != 0 { cRangeOp = int8('=') } else { if flags&uint32(WHERE_BOTH_LIMIT) == uint32(WHERE_BOTH_LIMIT) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22187, libc.VaList(bp+144, zRowid)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22332, libc.VaList(bp+144, zRowid)) cRangeOp = int8('<') } else { if flags&uint32(WHERE_BTM_LIMIT) != 0 { @@ -131870,10 +132953,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22197, libc.VaList(bp+144, int32(cRangeOp))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22342, libc.VaList(bp+144, int32(int32(cRangeOp)))) } else { if flags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22202, libc.VaList(bp+144, (*(*struct { + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22347, libc.VaList(bp+144, (*(*struct { FidxNum int32 F__ccgo4 uint8 FisOrdered Ti8 @@ -131892,7 +132975,7 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } if int32((*TSrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&int32(JT_LEFT) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22229, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22374, 0) } zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) @@ -131926,14 +133009,14 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Initial space for EQP output string */ _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22240, libc.VaList(bp+144, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22385, libc.VaList(bp+144, pItem)) pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_IPK) != 0 { pTab = (*TSrcItem)(unsafe.Pointer(pItem)).FpTab if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22028, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22173, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) } else { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22261, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22406, 0) } } else { i = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) @@ -131943,16 +133026,16 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp } z = _explainIndexColumnName(tls, (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex, i) if i > int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22017, int32(5)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22162, int32(5)) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22028, libc.VaList(bp+144, z)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22173, libc.VaList(bp+144, z)) goto _1 _1: ; i++ } } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5110, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5174, int32(1)) zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) return ret @@ -132293,7 +133376,7 @@ func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uint db = (*TParse)(unsafe.Pointer(pParse)).Fdb pX = _removeUnindexableInClauseTerms(tls, pParse, iEq, pLoop, pX) if !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) { - aiMap = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(4)*uint64(nEq)) + aiMap = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(uint64(4)*uint64(uint64(nEq)))) eType = _sqlite3FindInIndex(tls, pParse, pX, uint32(IN_INDEX_LOOP), uintptr(0), aiMap, bp) (*TExpr)(unsafe.Pointer(pExpr)).FiTable = *(*int32)(unsafe.Pointer(bp)) } @@ -132305,7 +133388,7 @@ func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uint } else { v3 = n } - aiMap = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(4)*uint64(v3)) + aiMap = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(uint64(4)*uint64(v3))) eType = _sqlite3FindInIndex(tls, pParse, pX, uint32(IN_INDEX_LOOP), uintptr(0), aiMap, bp) } pX = pExpr @@ -132343,10 +133426,10 @@ func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uint })(unsafe.Pointer(pLevel + 72))).FaInLoop = _sqlite3WhereRealloc(tls, (*TWhereClause)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpWC)).FpWInfo, (*(*struct { FnIn int32 FaInLoop uintptr - })(unsafe.Pointer(pLevel + 72))).FaInLoop, uint64(20)*uint64((*(*struct { + })(unsafe.Pointer(pLevel + 72))).FaInLoop, uint64(uint64(20)*uint64((*(*struct { FnIn int32 FaInLoop uintptr - })(unsafe.Pointer(pLevel + 72))).FnIn)) + })(unsafe.Pointer(pLevel + 72))).FnIn))) pIn = (*(*struct { FnIn int32 FaInLoop uintptr @@ -132487,12 +133570,12 @@ func _codeAllEqualityTerms(tls *libc.TLS, pParse uintptr, pLevel uintptr, bRev i /* Figure out how many memory cells we will need then allocate them. */ regBase = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(1) - nReg = int32(nEq) + nExtraReg + nReg = int32(int32(nEq)) + nExtraReg *(*int32)(unsafe.Pointer(pParse + 56)) += nReg zAff = _sqlite3DbStrDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, _sqlite3IndexAffinityStr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pIdx)) if nSkip != 0 { iIdxCur = (*TWhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur - _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, regBase, regBase+int32(nSkip)-int32(1)) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, regBase, regBase+int32(int32(nSkip))-int32(1)) if bRev != 0 { v1 = int32(OP_Last) } else { @@ -132505,11 +133588,11 @@ func _codeAllEqualityTerms(tls *libc.TLS, pParse uintptr, pLevel uintptr, bRev i } else { v2 = int32(OP_SeekGT) } - (*TWhereLevel)(unsafe.Pointer(pLevel)).FaddrSkip = _sqlite3VdbeAddOp4Int(tls, v, v2, iIdxCur, 0, regBase, int32(nSkip)) + (*TWhereLevel)(unsafe.Pointer(pLevel)).FaddrSkip = _sqlite3VdbeAddOp4Int(tls, v, v2, iIdxCur, 0, regBase, int32(int32(nSkip))) _sqlite3VdbeJumpHere(tls, v, j) j = 0 for { - if !(j < int32(nSkip)) { + if !(j < int32(int32(nSkip))) { break } _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), iIdxCur, j, regBase+j) @@ -132521,9 +133604,9 @@ func _codeAllEqualityTerms(tls *libc.TLS, pParse uintptr, pLevel uintptr, bRev i } /* Evaluate the equality constraints */ - j = int32(nSkip) + j = int32(int32(nSkip)) for { - if !(j < int32(nEq)) { + if !(j < int32(int32(nEq))) { break } pTerm = *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(j)*8)) @@ -132619,7 +133702,7 @@ func _codeDeferredSeek(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iCur int32, } if v2 && (*TParse)(unsafe.Pointer(v1)).FwriteMask == uint32(0) { pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable - ai = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(4)*uint64(int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+libc.Int32FromInt32(1))) + ai = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(uint64(4)*uint64(int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+libc.Int32FromInt32(1)))) if ai != 0 { *(*Tu32)(unsafe.Pointer(ai)) = uint32((*TTable)(unsafe.Pointer(pTab)).FnCol) i = 0 @@ -132628,7 +133711,7 @@ func _codeDeferredSeek(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iCur int32, break } x1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) - x2 = int32(_sqlite3TableColumnToStorage(tls, pTab, int16(x1))) + x2 = int32(_sqlite3TableColumnToStorage(tls, pTab, int16(int16(x1)))) if x1 >= 0 { *(*Tu32)(unsafe.Pointer(ai + uintptr(x2+int32(1))*4)) = uint32(i + int32(1)) } @@ -132774,15 +133857,44 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 } else { nEq = (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq r1 = _codeAllEqualityTerms(tls, pParse, pLevel, 0, 0, bp) - _codeApplyAffinity(tls, pParse, r1, int32(nEq), *(*uintptr)(unsafe.Pointer(bp))) + _codeApplyAffinity(tls, pParse, r1, int32(int32(nEq)), *(*uintptr)(unsafe.Pointer(bp))) _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(bp))) - _sqlite3VdbeAddOp4Int(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Filter), (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter, addrNxt, r1, int32(nEq)) + _sqlite3VdbeAddOp4Int(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Filter), (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter, addrNxt, r1, int32(int32(nEq))) } (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter = 0 (*TWhereLevel)(unsafe.Pointer(pLevel)).FaddrBrk = 0 } } +// C documentation +// +// /* +// ** Loop pLoop is a WHERE_INDEXED level that uses at least one IN(...) +// ** operator. Return true if level pLoop is guaranteed to visit only one +// ** row for each key generated for the index. +// */ +func _whereLoopIsOneRow(tls *libc.TLS, pLoop uintptr) (r int32) { + var ii int32 + _ = ii + if (*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FonError != 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) == 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq) == int32((*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FnKeyCol) { + ii = 0 + for { + if !(ii < int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq)) { + break + } + if int32((*TWhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(ii)*8)))).FeOperator)&(libc.Int32FromInt32(WO_IS)|libc.Int32FromInt32(WO_ISNULL)) != 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) + } + return 0 +} + // C documentation // // /* @@ -133210,7 +134322,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI /* Find any inequality constraint terms for the start and end ** of the range. */ - j = int32(nEq) + j = int32(int32(nEq)) if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_BTM_LIMIT) != 0 { v34 = j j++ @@ -133265,16 +134377,16 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** a forward order scan on a descending index, interchange the ** start and end terms (pRangeStart and pRangeEnd). */ - if int32(nEq) < int32((*TIndex)(unsafe.Pointer(pIdx)).FnColumn) && bRev == libc.BoolInt32(int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(nEq)))) == SQLITE_SO_ASC) { + if int32(int32(nEq)) < int32((*TIndex)(unsafe.Pointer(pIdx)).FnColumn) && bRev == libc.BoolInt32(int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(nEq)))) == SQLITE_SO_ASC) { t = pRangeEnd pRangeEnd = pRangeStart pRangeStart = t t1 = bSeekPastNull bSeekPastNull = bStopAtNull bStopAtNull = t1 - t2 = uint8(nBtm) + t2 = uint8(uint8(nBtm)) nBtm = nTop - nTop = uint16(t2) + nTop = uint16(uint16(t2)) } if iLevel > 0 && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_IN_SEEKSCAN) != uint32(0) { /* In case OP_SeekScan is used, ensure that the index cursor does not @@ -133297,19 +134409,19 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI addrNxt = v41 startEq = libc.BoolInt32(!(pRangeStart != 0) || int32((*TWhereTerm)(unsafe.Pointer(pRangeStart)).FeOperator)&(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ))) != 0) endEq = libc.BoolInt32(!(pRangeEnd != 0) || int32((*TWhereTerm)(unsafe.Pointer(pRangeEnd)).FeOperator)&(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ))) != 0) - start_constraints = libc.BoolInt32(pRangeStart != 0 || int32(nEq) > 0) + start_constraints = libc.BoolInt32(pRangeStart != 0 || int32(int32(nEq)) > 0) /* Seek the index cursor to the start of the range. */ - nConstraint1 = int32(nEq) + nConstraint1 = int32(int32(nEq)) if pRangeStart != 0 { pRight2 = (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pRangeStart)).FpExpr)).FpRight - _codeExprOrVector(tls, pParse, pRight2, regBase+int32(nEq), int32(nBtm)) + _codeExprOrVector(tls, pParse, pRight2, regBase+int32(int32(nEq)), int32(int32(nBtm))) if int32((*TWhereTerm)(unsafe.Pointer(pRangeStart)).FwtFlags)&int32(TERM_VNULL) == 0 && _sqlite3ExprCanBeNull(tls, pRight2) != 0 { - _sqlite3VdbeAddOp2(tls, v, int32(OP_IsNull), regBase+int32(nEq), addrNxt) + _sqlite3VdbeAddOp2(tls, v, int32(OP_IsNull), regBase+int32(int32(nEq)), addrNxt) } if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { - _updateRangeAffinityStr(tls, pRight2, int32(nBtm), *(*uintptr)(unsafe.Pointer(bp + 8))+uintptr(nEq)) + _updateRangeAffinityStr(tls, pRight2, int32(int32(nBtm)), *(*uintptr)(unsafe.Pointer(bp + 8))+uintptr(nEq)) } - nConstraint1 += int32(nBtm) + nConstraint1 += int32(int32(nBtm)) if _sqlite3ExprIsVector(tls, pRight2) == 0 { _disableTerm(tls, pLevel, pRangeStart) } else { @@ -133319,18 +134431,18 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI } else { if bSeekPastNull != 0 { startEq = 0 - _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regBase+int32(nEq)) + _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regBase+int32(int32(nEq))) start_constraints = int32(1) nConstraint1++ } else { if regBignull != 0 { - _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regBase+int32(nEq)) + _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regBase+int32(int32(nEq))) start_constraints = int32(1) nConstraint1++ } } } - _codeApplyAffinity(tls, pParse, regBase, nConstraint1-int32(bSeekPastNull), *(*uintptr)(unsafe.Pointer(bp + 8))) + _codeApplyAffinity(tls, pParse, regBase, nConstraint1-int32(int32(bSeekPastNull)), *(*uintptr)(unsafe.Pointer(bp + 8))) if int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) > 0 && nConstraint1 == int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) { /* The skip-scan logic inside the call to codeAllEqualityConstraints() ** above has already left the cursor sitting on the correct row, @@ -133340,7 +134452,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), int32(1), regBignull) } if (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter != 0 { - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Filter), (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter, addrNxt, regBase, int32(nEq)) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Filter), (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter, addrNxt, regBase, int32(int32(nEq))) _filterPullDown(tls, pParse, pWInfo, iLevel, addrNxt, notReady) } op1 = int32(_aStartOp[start_constraints< int32(1) { /* Original list of tables */ nNotReady = int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel) - iLevel - int32(1) - pOrTab = _sqlite3DbMallocRawNN(tls, db, uint64(112)+uint64(nNotReady)*uint64(104)) + pOrTab = _sqlite3DbMallocRawNN(tls, db, uint64(uint64(112)+uint64(uint64(nNotReady))*uint64(104))) if pOrTab == uintptr(0) { return notReady } @@ -133644,7 +134759,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** eliminating duplicates from other WHERE clauses, the action for each ** sub-WHERE clause is to to invoke the main loop body as a subroutine. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22269, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22414, 0) ii = 0 for { if !(ii < (*TWhereClause)(unsafe.Pointer(pOrWc)).FnTerm) { @@ -133667,7 +134782,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI pOrExpr = pAndExpr } /* Loop through table entries that match term pOrTerm. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22284, libc.VaList(bp+96, ii+int32(1))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22429, libc.VaList(bp+96, ii+int32(1))) pSubWInfo = _sqlite3WhereBegin(tls, pParse, pOrTab, pOrExpr, uintptr(0), uintptr(0), uintptr(0), uint16(WHERE_OR_SUBCLAUSE), iCovCur) if pSubWInfo != 0 { addrExplain = _sqlite3WhereExplainOneScan(tls, pParse, pOrTab, pSubWInfo+856, uint16(0)) @@ -133830,6 +134945,12 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** iLoop==3: Code all remaining expressions. ** ** An effort is made to skip unnecessary iterations of the loop. + ** + ** This optimization of causing simple query restrictions to occur before + ** more complex one is call the "push-down" optimization in MySQL. Here + ** in SQLite, the name is "MySQL push-down", since there is also another + ** totally unrelated optimization called "WHERE-clause push-down". + ** Sometimes the qualifier is omitted, resulting in an ambiguity, so beware. */ if pIdx != 0 { v60 = int32(1) @@ -134026,6 +135147,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** to the results of the OUTER JOIN. The following loop generates the ** appropriate WHERE clause constraint checks. tag-20220513a. */ + goto code_outer_join_constraints code_outer_join_constraints: ; pTerm = (*TWhereClause)(unsafe.Pointer(pWC)).Fa @@ -134128,9 +135250,9 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe defer tls.Free(128) var addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, nPk, r, v3 int32 var mAll TBitmask - var pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr + var pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr var _ /* sFrom at bp+0 */ TSrcList - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pRJ = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpRJ @@ -134139,13 +135261,17 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop pTabItem = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 mAll = uint64(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22293, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22438, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) k = 0 for { if !(k < iLevel) { break } + pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*104 mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x20>>5)) != 0 { + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pRight)).FpSelect)).FpEList)).FnExpr-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiTabCur) iIdxCur = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiIdxCur if iIdxCur != 0 { @@ -134273,9 +135399,9 @@ func _whereClauseInsert(tls *libc.TLS, pWC uintptr, p uintptr, wtFlags Tu16) (r if (*TWhereClause)(unsafe.Pointer(pWC)).FnTerm >= (*TWhereClause)(unsafe.Pointer(pWC)).FnSlot { pOld = (*TWhereClause)(unsafe.Pointer(pWC)).Fa db = (*TParse)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse)).Fdb - (*TWhereClause)(unsafe.Pointer(pWC)).Fa = _sqlite3WhereMalloc(tls, (*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo, uint64(56)*uint64((*TWhereClause)(unsafe.Pointer(pWC)).FnSlot)*uint64(2)) + (*TWhereClause)(unsafe.Pointer(pWC)).Fa = _sqlite3WhereMalloc(tls, (*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo, uint64(uint64(56)*uint64((*TWhereClause)(unsafe.Pointer(pWC)).FnSlot)*uint64(2))) if (*TWhereClause)(unsafe.Pointer(pWC)).Fa == uintptr(0) { - if int32(wtFlags)&int32(TERM_DYNAMIC) != 0 { + if int32(int32(wtFlags))&int32(TERM_DYNAMIC) != 0 { _sqlite3ExprDelete(tls, db, p) } (*TWhereClause)(unsafe.Pointer(pWC)).Fa = pOld @@ -134290,7 +135416,7 @@ func _whereClauseInsert(tls *libc.TLS, pWC uintptr, p uintptr, wtFlags Tu16) (r v1 = v2 idx = v1 pTerm = (*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(v1)*56 - if int32(wtFlags)&int32(TERM_VIRTUAL) == 0 { + if int32(int32(wtFlags))&int32(TERM_VIRTUAL) == 0 { (*TWhereClause)(unsafe.Pointer(pWC)).FnBase = (*TWhereClause)(unsafe.Pointer(pWC)).FnTerm } if p != 0 && (*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Unlikely)) != uint32(0) { @@ -134414,11 +135540,11 @@ func _isLikeOrGlob(tls *libc.TLS, pParse uintptr, pExpr uintptr, ppPrefix uintpt for { v1 = *(*Tu8)(unsafe.Pointer(z + uintptr(cnt))) c = v1 - if !(int32(v1) != 0 && int32(c) != int32((*(*[4]Tu8)(unsafe.Pointer(bp)))[0]) && int32(c) != int32((*(*[4]Tu8)(unsafe.Pointer(bp)))[int32(1)]) && int32(c) != int32((*(*[4]Tu8)(unsafe.Pointer(bp)))[int32(2)])) { + if !(int32(v1) != 0 && int32(int32(c)) != int32((*(*[4]Tu8)(unsafe.Pointer(bp)))[0]) && int32(int32(c)) != int32((*(*[4]Tu8)(unsafe.Pointer(bp)))[int32(1)]) && int32(int32(c)) != int32((*(*[4]Tu8)(unsafe.Pointer(bp)))[int32(2)])) { break } cnt++ - if int32(c) == int32((*(*[4]Tu8)(unsafe.Pointer(bp)))[int32(3)]) && int32(*(*Tu8)(unsafe.Pointer(z + uintptr(cnt)))) != 0 { + if int32(int32(c)) == int32((*(*[4]Tu8)(unsafe.Pointer(bp)))[int32(3)]) && int32(*(*Tu8)(unsafe.Pointer(z + uintptr(cnt)))) != 0 { cnt++ } } @@ -134432,7 +135558,7 @@ func _isLikeOrGlob(tls *libc.TLS, pParse uintptr, pExpr uintptr, ppPrefix uintpt ** removed. */ if (cnt > int32(1) || cnt > 0 && int32(*(*Tu8)(unsafe.Pointer(z))) != int32((*(*[4]Tu8)(unsafe.Pointer(bp)))[int32(3)])) && int32(255) != int32(*(*Tu8)(unsafe.Pointer(z + uintptr(cnt-int32(1))))) { /* A "complete" match if the pattern ends with "*" or "%" */ - *(*int32)(unsafe.Pointer(pisComplete)) = libc.BoolInt32(int32(c) == int32((*(*[4]Tu8)(unsafe.Pointer(bp)))[0]) && int32(*(*Tu8)(unsafe.Pointer(z + uintptr(cnt+int32(1))))) == 0) + *(*int32)(unsafe.Pointer(pisComplete)) = libc.BoolInt32(int32(int32(c)) == int32((*(*[4]Tu8)(unsafe.Pointer(bp)))[0]) && int32(*(*Tu8)(unsafe.Pointer(z + uintptr(cnt+int32(1))))) == 0) /* Get the pattern prefix. Remove all escapes from the prefix. */ pPrefix = _sqlite3Expr(tls, db, int32(TK_STRING), z) if pPrefix != 0 { @@ -134600,7 +135726,7 @@ func _isAuxiliaryVtabOperator(tls *libc.TLS, db uintptr, pExpr uintptr, peOp2 ui if (*Tsqlite3_module)(unsafe.Pointer(pMod)).FxFindFunction != uintptr(0) { i = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_module)(unsafe.Pointer(pMod)).FxFindFunction})))(tls, pVtab, int32(2), *(*uintptr)(unsafe.Pointer(pExpr + 8)), bp, bp+8) if i >= int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) { - *(*uint8)(unsafe.Pointer(peOp2)) = uint8(i) + *(*uint8)(unsafe.Pointer(peOp2)) = uint8(uint8(i)) *(*uintptr)(unsafe.Pointer(ppRight)) = (*(*TExprList_item)(unsafe.Pointer(pList + 8 + 1*32))).FpExpr *(*uintptr)(unsafe.Pointer(ppLeft)) = pCol return int32(1) @@ -134643,19 +135769,19 @@ var _aOp = [4]struct { FeOp2 uint8 }{ 0: { - FzOp: __ccgo_ts + 16547, + FzOp: __ccgo_ts + 16634, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_MATCH), }, 1: { - FzOp: __ccgo_ts + 15878, + FzOp: __ccgo_ts + 15971, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_GLOB), }, 2: { - FzOp: __ccgo_ts + 15357, + FzOp: __ccgo_ts + 15450, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_LIKE), }, 3: { - FzOp: __ccgo_ts + 22307, + FzOp: __ccgo_ts + 22452, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_REGEXP), }, } @@ -134745,7 +135871,7 @@ func _whereCombineDisjuncts(tls *libc.TLS, pSrc uintptr, pWC uintptr, pOne uintp if int32((*TWhereTerm)(unsafe.Pointer(pTwo)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ))) == 0 { return } - if int32(eOp)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) != int32(eOp) && int32(eOp)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ))) != int32(eOp) { + if int32(int32(eOp))&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) != int32(int32(eOp)) && int32(int32(eOp))&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ))) != int32(int32(eOp)) { return } if _sqlite3ExprCompare(tls, uintptr(0), (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pOne)).FpExpr)).FpLeft, (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTwo)).FpExpr)).FpLeft, -int32(1)) != 0 { @@ -134755,8 +135881,8 @@ func _whereCombineDisjuncts(tls *libc.TLS, pSrc uintptr, pWC uintptr, pOne uintp return } /* If we reach this point, it means the two subterms can be combined */ - if int32(eOp)&(int32(eOp)-int32(1)) != 0 { - if int32(eOp)&(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) != 0 { + if int32(int32(eOp))&(int32(int32(eOp))-int32(1)) != 0 { + if int32(int32(eOp))&(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) != 0 { eOp = uint16(libc.Int32FromInt32(WO_EQ) << (libc.Int32FromInt32(TK_LE) - libc.Int32FromInt32(TK_EQ))) } else { eOp = uint16(libc.Int32FromInt32(WO_EQ) << (libc.Int32FromInt32(TK_GE) - libc.Int32FromInt32(TK_EQ))) @@ -134769,7 +135895,7 @@ func _whereCombineDisjuncts(tls *libc.TLS, pSrc uintptr, pWC uintptr, pOne uintp } op = int32(TK_EQ) for { - if !(int32(eOp) != int32(WO_EQ)<<(op-int32(TK_EQ))) { + if !(int32(int32(eOp)) != int32(WO_EQ)<<(op-int32(TK_EQ))) { break } goto _1 @@ -134777,7 +135903,7 @@ func _whereCombineDisjuncts(tls *libc.TLS, pSrc uintptr, pWC uintptr, pOne uintp ; op++ } - (*TExpr)(unsafe.Pointer(pNew)).Fop = uint8(op) + (*TExpr)(unsafe.Pointer(pNew)).Fop = uint8(uint8(op)) idxNew = _whereClauseInsert(tls, pWC, pNew, uint16(libc.Int32FromInt32(TERM_VIRTUAL)|libc.Int32FromInt32(TERM_DYNAMIC))) _exprAnalyze(tls, pSrc, pWC, idxNew) } @@ -135198,7 +136324,7 @@ func _termIsEquivalence(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) } aff1 = _sqlite3ExprAffinity(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft) aff2 = _sqlite3ExprAffinity(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight) - if int32(aff1) != int32(aff2) && (!(int32(aff1) >= libc.Int32FromInt32(SQLITE_AFF_NUMERIC)) || !(int32(aff2) >= libc.Int32FromInt32(SQLITE_AFF_NUMERIC))) { + if int32(int32(aff1)) != int32(int32(aff2)) && (!(int32(aff1) >= libc.Int32FromInt32(SQLITE_AFF_NUMERIC)) || !(int32(aff2) >= libc.Int32FromInt32(SQLITE_AFF_NUMERIC))) { return 0 } pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pExpr) @@ -135289,7 +136415,7 @@ func _exprMightBeIndexed2(tls *libc.TLS, pFrom uintptr, aiCurCol uintptr, pExpr if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) != -int32(2) { goto _4 } - if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_STRING) { + if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && !(_sqlite3ExprIsConstant(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr) != 0) { *(*int32)(unsafe.Pointer(aiCurCol)) = iCur *(*int32)(unsafe.Pointer(aiCurCol + 1*4)) = -int32(2) return int32(1) @@ -135442,7 +136568,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { extraRight = x - uint64(1) /* ON clause terms may not be used with an index ** on left table of a LEFT JOIN. Ticket #3015 */ if prereqAll>>libc.Int32FromInt32(1) >= x { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22314, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22459, 0) return } } else { @@ -135454,7 +136580,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { ** if there is a RIGHT or FULL JOIN in the query. This makes SQLite ** more like other systems, and also preserves legacy. */ if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc > 0 && int32((*(*TSrcItem)(unsafe.Pointer(pSrc + 8))).Ffg.Fjointype)&int32(JT_LTORJ) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22314, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22459, 0) return } *(*Tu32)(unsafe.Pointer(pExpr + 4)) &= uint32(^libc.Int32FromInt32(EP_InnerON)) @@ -135489,7 +136615,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { FleftColumn int32 FiField int32 })(unsafe.Pointer(pTerm + 32))).FleftColumn = (*(*[2]int32)(unsafe.Pointer(bp + 24)))[int32(1)] - (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator = uint16(int32(_operatorMask(tls, op)) & int32(opMask)) + (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator = uint16(int32(_operatorMask(tls, op)) & int32(int32(opMask))) } if op == int32(TK_IS) { p3 = pTerm + 18 @@ -135534,11 +136660,11 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { })(unsafe.Pointer(pNew + 32))).FleftColumn = (*(*[2]int32)(unsafe.Pointer(bp + 24)))[int32(1)] (*TWhereTerm)(unsafe.Pointer(pNew)).FprereqRight = prereqLeft | extraRight (*TWhereTerm)(unsafe.Pointer(pNew)).FprereqAll = prereqAll - (*TWhereTerm)(unsafe.Pointer(pNew)).FeOperator = uint16((int32(_operatorMask(tls, int32((*TExpr)(unsafe.Pointer(pDup)).Fop))) + int32(eExtraOp)) & int32(opMask)) + (*TWhereTerm)(unsafe.Pointer(pNew)).FeOperator = uint16((int32(_operatorMask(tls, int32((*TExpr)(unsafe.Pointer(pDup)).Fop))) + int32(int32(eExtraOp))) & int32(int32(opMask))) } else { if op == int32(TK_ISNULL) && !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != libc.Uint32FromInt32(0)) && 0 == _sqlite3ExprCanBeNull(tls, pLeft) { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_TRUEFALSE) /* See tag-20230504-1 */ - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 7895 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 8020 *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_IsFalse)) (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqAll = uint64(0) (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator = uint16(0) @@ -135626,15 +136752,15 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { ** inequality. To avoid this, make sure to also run the full ** LIKE on all candidate expressions by clearing the isComplete flag */ - if int32(c1) == libc.Int32FromUint8('A')-libc.Int32FromInt32(1) { + if int32(int32(c1)) == libc.Int32FromUint8('A')-libc.Int32FromInt32(1) { *(*int32)(unsafe.Pointer(bp + 8)) = 0 } c1 = _sqlite3UpperToLower[c1] } - *(*Tu8)(unsafe.Pointer(pC)) = uint8(int32(c1) + int32(1)) + *(*Tu8)(unsafe.Pointer(pC)) = uint8(int32(int32(c1)) + int32(1)) } if *(*int32)(unsafe.Pointer(bp + 12)) != 0 { - v13 = __ccgo_ts + 22355 + v13 = __ccgo_ts + 22500 } else { v13 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } @@ -135799,7 +136925,7 @@ func _sqlite3WhereSplit(tls *libc.TLS, pWC uintptr, pExpr uintptr, op Tu8) { if pE2 == uintptr(0) { return } - if int32((*TExpr)(unsafe.Pointer(pE2)).Fop) != int32(op) { + if int32((*TExpr)(unsafe.Pointer(pE2)).Fop) != int32(int32(op)) { _whereClauseInsert(tls, pWC, pExpr, uint16(0)) } else { _sqlite3WhereSplit(tls, pWC, (*TExpr)(unsafe.Pointer(pE2)).FpLeft, op) @@ -135851,7 +136977,7 @@ func _whereAddLimitExpr(tls *libc.TLS, pWC uintptr, iReg int32, pExpr uintptr, i pTerm = (*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(idx)*56 (*TWhereTerm)(unsafe.Pointer(pTerm)).FleftCursor = iCsr (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator = uint16(WO_AUX) - (*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp = uint8(eMatchOp) + (*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp = uint8(uint8(eMatchOp)) } } @@ -135904,6 +137030,9 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FleftCursor != iCsr { return } + if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FprereqRight != uint64(0) { + return + } goto _1 _1: ; @@ -135933,10 +137062,12 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { } } /* All conditions are met. Add the terms to the where-clause object. */ - _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) - if (*TSelect)(unsafe.Pointer(p)).FiOffset > 0 { + if (*TSelect)(unsafe.Pointer(p)).FiOffset != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiOffset, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpRight, iCsr, int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } + if (*TSelect)(unsafe.Pointer(p)).FiOffset == 0 || (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { + _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) + } } } @@ -136160,7 +137291,7 @@ func _sqlite3WhereTabFuncArgs(tls *libc.TLS, pParse uintptr, pItem uintptr, pWC k++ } if k >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22362, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22507, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) return } pColRef = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_COLUMN), uintptr(0), 0) @@ -136452,13 +137583,13 @@ func _whereOrInsert(tls *libc.TLS, pSet uintptr, prereq TBitmask, rRun TLogEst, i = (*TWhereOrSet)(unsafe.Pointer(pSet)).Fn p = pSet + 8 for { - if !(int32(i) > 0) { + if !(int32(int32(i)) > 0) { break } - if int32(rRun) <= int32((*TWhereOrCost)(unsafe.Pointer(p)).FrRun) && prereq&(*TWhereOrCost)(unsafe.Pointer(p)).Fprereq == prereq { + if int32(int32(rRun)) <= int32((*TWhereOrCost)(unsafe.Pointer(p)).FrRun) && prereq&(*TWhereOrCost)(unsafe.Pointer(p)).Fprereq == prereq { goto whereOrInsert_done } - if int32((*TWhereOrCost)(unsafe.Pointer(p)).FrRun) <= int32(rRun) && (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq&prereq == (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq { + if int32((*TWhereOrCost)(unsafe.Pointer(p)).FrRun) <= int32(int32(rRun)) && (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq&prereq == (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq { return 0 } goto _1 @@ -136477,7 +137608,7 @@ func _whereOrInsert(tls *libc.TLS, pSet uintptr, prereq TBitmask, rRun TLogEst, p = pSet + 8 i = uint16(1) for { - if !(int32(i) < int32((*TWhereOrSet)(unsafe.Pointer(pSet)).Fn)) { + if !(int32(int32(i)) < int32((*TWhereOrSet)(unsafe.Pointer(pSet)).Fn)) { break } if int32((*TWhereOrCost)(unsafe.Pointer(p)).FrRun) > int32((*(*TWhereOrCost)(unsafe.Pointer(pSet + 8 + uintptr(i)*16))).FrRun) { @@ -136488,15 +137619,16 @@ func _whereOrInsert(tls *libc.TLS, pSet uintptr, prereq TBitmask, rRun TLogEst, ; i++ } - if int32((*TWhereOrCost)(unsafe.Pointer(p)).FrRun) <= int32(rRun) { + if int32((*TWhereOrCost)(unsafe.Pointer(p)).FrRun) <= int32(int32(rRun)) { return 0 } } + goto whereOrInsert_done whereOrInsert_done: ; (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq = prereq (*TWhereOrCost)(unsafe.Pointer(p)).FrRun = rRun - if int32((*TWhereOrCost)(unsafe.Pointer(p)).FnOut) > int32(nOut) { + if int32((*TWhereOrCost)(unsafe.Pointer(p)).FnOut) > int32(int32(nOut)) { (*TWhereOrCost)(unsafe.Pointer(p)).FnOut = nOut } return int32(1) @@ -136554,7 +137686,7 @@ func _sqlite3WhereRealloc(tls *libc.TLS, pWInfo uintptr, pOld uintptr, nByte Tu6 if pNew != 0 && pOld != 0 { pOldBlk = pOld pOldBlk -= 16 - libc.Xmemcpy(tls, pNew, pOld, (*TWhereMemBlock)(unsafe.Pointer(pOldBlk)).Fsz) + libc.Xmemcpy(tls, pNew, pOld, uint64((*TWhereMemBlock)(unsafe.Pointer(pOldBlk)).Fsz)) } return pNew } @@ -136593,6 +137725,48 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { return uintptr(0) } +// C documentation +// +// /* +// ** Term pTerm is guaranteed to be a WO_IN term. It may be a component term +// ** of a vector IN expression of the form "(x, y, ...) IN (SELECT ...)". +// ** This function checks to see if the term is compatible with an index +// ** column with affinity idxaff (one of the SQLITE_AFF_XYZ values). If so, +// ** it returns a pointer to the name of the collation sequence (e.g. "BINARY" +// ** or "NOCASE") used by the comparison in pTerm. If it is not compatible +// ** with affinity idxaff, NULL is returned. +// */ +func _indexInAffinityOk(tls *libc.TLS, pParse uintptr, pTerm uintptr, idxaff Tu8) (r uintptr) { + bp := tls.Alloc(80) + defer tls.Free(80) + var iField int32 + var pRet, pX, v1 uintptr + var _ /* inexpr at bp+0 */ TExpr + _, _, _, _ = iField, pRet, pX, v1 + pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr + if _sqlite3ExprIsVector(tls, (*TExpr)(unsafe.Pointer(pX)).FpLeft) != 0 { + iField = (*(*struct { + FleftColumn int32 + FiField int32 + })(unsafe.Pointer(pTerm + 32))).FiField - int32(1) + (*(*TExpr)(unsafe.Pointer(bp))).Fflags = uint32(0) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_EQ) + (*(*TExpr)(unsafe.Pointer(bp))).FpLeft = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pX)).FpLeft + 32)) + 8 + uintptr(iField)*32))).FpExpr + (*(*TExpr)(unsafe.Pointer(bp))).FpRight = (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pX + 32)))).FpEList + 8 + uintptr(iField)*32))).FpExpr + pX = bp + } + if _sqlite3IndexAffinityOk(tls, pX, int8(int8(idxaff))) != 0 { + pRet = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pRet != 0 { + v1 = (*TCollSeq)(unsafe.Pointer(pRet)).FzName + } else { + v1 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + return v1 + } + return uintptr(0) +} + // C documentation // // /* @@ -136603,10 +137777,10 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { var iColumn Ti16 var iCur, j, k int32 - var pColl, pParse, pTerm, pWC, pX, v2 uintptr - var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, v2, v3, v5 /* The term being tested */ - k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ + var pColl, pParse, pTerm, pWC, pX, zCollName, v2, v5 uintptr + var v3, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, zCollName, v2, v3, v5, v6 /* The term being tested */ + k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ pWC = (*TWhereScan)(unsafe.Pointer(pScan)).FpWC for int32(1) != 0 { iColumn = *(*Ti16)(unsafe.Pointer(pScan + 88 + uintptr(int32((*TWhereScan)(unsafe.Pointer(pScan)).FiEquiv)-int32(1))*2)) @@ -136620,7 +137794,7 @@ func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { if (*TWhereTerm)(unsafe.Pointer(pTerm)).FleftCursor == iCur && (*(*struct { FleftColumn int32 FiField int32 - })(unsafe.Pointer(pTerm + 32))).FleftColumn == int32(iColumn) && (int32(iColumn) != -int32(2) || _sqlite3ExprCompareSkip(tls, (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpLeft, (*TWhereScan)(unsafe.Pointer(pScan)).FpIdxExpr, iCur) == 0) && (int32((*TWhereScan)(unsafe.Pointer(pScan)).FiEquiv) <= int32(1) || !((*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != libc.Uint32FromInt32(0))) { + })(unsafe.Pointer(pTerm + 32))).FleftColumn == int32(int32(iColumn)) && (int32(int32(iColumn)) != -int32(2) || _sqlite3ExprCompareSkip(tls, (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpLeft, (*TWhereScan)(unsafe.Pointer(pScan)).FpIdxExpr, iCur) == 0) && (int32((*TWhereScan)(unsafe.Pointer(pScan)).FiEquiv) <= int32(1) || !((*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != libc.Uint32FromInt32(0))) { if v3 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) != 0 && int32((*TWhereScan)(unsafe.Pointer(pScan)).FnEquiv) < int32(libc.Uint64FromInt64(44)/libc.Uint64FromInt64(4)); v3 { v2 = _whereRightSubexprIsColumn(tls, (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr) pX = v2 @@ -136650,21 +137824,31 @@ func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { if (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName != 0 && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_ISNULL) == 0 { pParse = (*TWhereInfo)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr - if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { - goto _1 - } - pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) - if pColl == uintptr(0) { - pColl = (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FpDfltColl + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_IN) != 0 { + zCollName = _indexInAffinityOk(tls, pParse, pTerm, uint8((*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff)) + if !(zCollName != 0) { + goto _1 + } + } else { + if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { + goto _1 + } + pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pColl != 0 { + v5 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName + } else { + v5 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + zCollName = v5 } - if _sqlite3StrICmp(tls, (*TCollSeq)(unsafe.Pointer(pColl)).FzName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { + if _sqlite3StrICmp(tls, zCollName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { goto _1 } } - if v5 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v5 { + if v6 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v6 { pX = (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight } - if v5 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { + if v6 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { goto _1 } (*TWhereScan)(unsafe.Pointer(pScan)).FpWC = pWC @@ -136761,7 +137945,7 @@ func _whereScanInit(tls *libc.TLS, pScan uintptr, pWC uintptr, iCur int32, iColu return uintptr(0) } } - *(*Ti16)(unsafe.Pointer(pScan + 88)) = int16(iColumn) + *(*Ti16)(unsafe.Pointer(pScan + 88)) = int16(int16(iColumn)) return _whereScanNext(tls, pScan) } @@ -136977,10 +138161,10 @@ func _isDistinctRedundant(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWC u func _estLog(tls *libc.TLS, N TLogEst) (r TLogEst) { var v1 int32 _ = v1 - if int32(N) <= int32(10) { + if int32(int32(N)) <= int32(10) { v1 = 0 } else { - v1 = int32(_sqlite3LogEst(tls, uint64(N))) - int32(33) + v1 = int32(_sqlite3LogEst(tls, uint64(uint64(N)))) - int32(33) } return int16(v1) } @@ -137152,7 +138336,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea /* Make the automatic index a partial index if there are terms in the ** WHERE clause (or the ON clause of a LEFT join) that constrain which ** rows of the target table (pSrc) that can be used. */ - if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)) != 0 { + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom), 0) != 0 { pPartial = _sqlite3ExprAnd(tls, pParse, pPartial, _sqlite3ExprDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr, 0)) } if _termCanDriveIndex(tls, pTerm, pSrc, notReady) != 0 { @@ -137167,7 +138351,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea } cMask = v2 if !(sentWarning != 0) { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_WARNING)|libc.Int32FromInt32(1)<>14)) != 0) { eDistinct = int32(2) + libc.BoolInt32(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_SORTBYGROUP) != 0) } else { if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_GROUPBY) != 0 { @@ -137635,9 +138820,9 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB } /* Allocate the sqlite3_index_info structure */ - pIdxInfo = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(96)+(libc.Uint64FromInt64(12)+libc.Uint64FromInt64(8))*uint64(nTerm)+uint64(8)*uint64(nOrderBy)+uint64(40)+uint64(8)*uint64(nTerm)) + pIdxInfo = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(uint64(96)+(libc.Uint64FromInt64(12)+libc.Uint64FromInt64(8))*uint64(uint64(nTerm))+uint64(8)*uint64(uint64(nOrderBy))+uint64(40)+uint64(8)*uint64(uint64(nTerm)))) if pIdxInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1622, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1636, 0) return uintptr(0) } pHidden = pIdxInfo + 1*96 @@ -137668,7 +138853,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB })(unsafe.Pointer(pTerm + 32))).FleftColumn (*(*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons + uintptr(j)*12))).FiTermOffset = i op = uint16(int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator) & int32(WO_ALL)) - if int32(op) == int32(WO_IN) { + if int32(int32(op)) == int32(WO_IN) { if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_SLICE) == 0 { if j <= int32(31) { v10 = libc.Uint32FromInt32(1) << j @@ -137679,28 +138864,28 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB } op = uint16(WO_EQ) } - if int32(op) == int32(WO_AUX) { + if int32(int32(op)) == int32(WO_AUX) { (*(*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons + uintptr(j)*12))).Fop = (*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp } else { - if int32(op)&(libc.Int32FromInt32(WO_ISNULL)|libc.Int32FromInt32(WO_IS)) != 0 { - if int32(op) == int32(WO_ISNULL) { + if int32(int32(op))&(libc.Int32FromInt32(WO_ISNULL)|libc.Int32FromInt32(WO_IS)) != 0 { + if int32(int32(op)) == int32(WO_ISNULL) { (*(*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons + uintptr(j)*12))).Fop = uint8(SQLITE_INDEX_CONSTRAINT_ISNULL) } else { (*(*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons + uintptr(j)*12))).Fop = uint8(SQLITE_INDEX_CONSTRAINT_IS) } } else { - (*(*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons + uintptr(j)*12))).Fop = uint8(op) + (*(*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons + uintptr(j)*12))).Fop = uint8(uint8(op)) /* The direct assignment in the previous line is possible only because ** the WO_ and SQLITE_INDEX_CONSTRAINT_ codes are identical. The ** following asserts verify this fact. */ - if int32(op)&(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ))) != 0 && _sqlite3ExprIsVector(tls, (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight) != 0 { + if int32(int32(op))&(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ))) != 0 && _sqlite3ExprIsVector(tls, (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight) != 0 { if j < int32(16) { mNoOmit = Tu16(int32(mNoOmit) | libc.Int32FromInt32(1)<nField value before returning. */ - (*TUnpackedRecord)(unsafe.Pointer(pRec)).FnField = uint16(nField) + (*TUnpackedRecord)(unsafe.Pointer(pRec)).FnField = uint16(uint16(nField)) return i } @@ -138112,7 +139297,7 @@ func _whereRangeSkipScanEst(tls *libc.TLS, pParse uintptr, pLower uintptr, pUppe ** the number of rows visited. Otherwise, estimate the number of rows ** using the method described in the header comment for this function. */ if nDiff != int32(1) || pUpper == uintptr(0) || pLower == uintptr(0) { - nAdjust = int32(_sqlite3LogEst(tls, uint64((*TIndex)(unsafe.Pointer(p)).FnSample))) - int32(_sqlite3LogEst(tls, uint64(nDiff))) + nAdjust = int32(_sqlite3LogEst(tls, uint64((*TIndex)(unsafe.Pointer(p)).FnSample))) - int32(_sqlite3LogEst(tls, uint64(uint64(nDiff)))) p3 = pLoop + 22 *(*TLogEst)(unsafe.Pointer(p3)) = TLogEst(int32(*(*TLogEst)(unsafe.Pointer(p3))) - nAdjust) *(*int32)(unsafe.Pointer(pbDone)) = int32(1) @@ -138226,7 +139411,7 @@ func _whereRangeScanEst(tls *libc.TLS, pParse uintptr, pBuilder uintptr, pLower mask = uint16(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ))) } iLwrIdx = _whereKeyStats(tls, pParse, p, *(*uintptr)(unsafe.Pointer(bp)), 0, bp+8) - if int32((*TWhereTerm)(unsafe.Pointer(pLower)).FeOperator)&int32(mask) != 0 { + if int32((*TWhereTerm)(unsafe.Pointer(pLower)).FeOperator)&int32(int32(mask)) != 0 { v1 = (*(*[2]TtRowcnt)(unsafe.Pointer(bp + 8)))[int32(1)] } else { v1 = uint64(0) @@ -138249,7 +139434,7 @@ func _whereRangeScanEst(tls *libc.TLS, pParse uintptr, pBuilder uintptr, pLower mask1 = uint16(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ))) } iUprIdx = _whereKeyStats(tls, pParse, p, *(*uintptr)(unsafe.Pointer(bp)), int32(1), bp+8) - if int32((*TWhereTerm)(unsafe.Pointer(pUpper)).FeOperator)&int32(mask1) != 0 { + if int32((*TWhereTerm)(unsafe.Pointer(pUpper)).FeOperator)&int32(int32(mask1)) != 0 { v2 = (*(*[2]TtRowcnt)(unsafe.Pointer(bp + 8)))[int32(1)] } else { v2 = uint64(0) @@ -138276,8 +139461,8 @@ func _whereRangeScanEst(tls *libc.TLS, pParse uintptr, pBuilder uintptr, pLower } else { nNew = int16(10) } - if int32(nNew) < nOut { - nOut = int32(nNew) + if int32(int32(nNew)) < nOut { + nOut = int32(int32(nNew)) } } } else { @@ -138288,7 +139473,7 @@ func _whereRangeScanEst(tls *libc.TLS, pParse uintptr, pBuilder uintptr, pLower } } } - nNew = _whereRangeAdjust(tls, pLower, int16(nOut)) + nNew = _whereRangeAdjust(tls, pLower, int16(int16(nOut))) nNew = _whereRangeAdjust(tls, pUpper, nNew) /* TUNING: If there is both an upper and lower limit and neither limit ** has an application-defined likelihood(), assume the range is @@ -138300,13 +139485,13 @@ func _whereRangeScanEst(tls *libc.TLS, pParse uintptr, pBuilder uintptr, pLower nNew = TLogEst(int32(nNew) - libc.Int32FromInt32(20)) } nOut -= libc.BoolInt32(pLower != uintptr(0)) + libc.BoolInt32(pUpper != uintptr(0)) - if int32(nNew) < int32(10) { + if int32(int32(nNew)) < int32(10) { nNew = int16(10) } - if int32(nNew) < nOut { - nOut = int32(nNew) + if int32(int32(nNew)) < nOut { + nOut = int32(int32(nNew)) } - (*TWhereLoop)(unsafe.Pointer(pLoop)).FnOut = int16(nOut) + (*TWhereLoop)(unsafe.Pointer(pLoop)).FnOut = int16(int16(nOut)) return rc } @@ -138403,7 +139588,7 @@ func _whereInScanEst(tls *libc.TLS, pParse uintptr, pBuilder uintptr, pList uint if !(rc == SQLITE_OK && i < (*TExprList)(unsafe.Pointer(pList)).FnExpr) { break } - *(*TtRowcnt)(unsafe.Pointer(bp)) = uint64(nRow0) + *(*TtRowcnt)(unsafe.Pointer(bp)) = uint64(uint64(nRow0)) rc = _whereEqualScanEst(tls, pParse, pBuilder, (*(*TExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32))).FpExpr, bp) nRowEst += *(*TtRowcnt)(unsafe.Pointer(bp)) (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = nRecValid @@ -138413,8 +139598,8 @@ func _whereInScanEst(tls *libc.TLS, pParse uintptr, pBuilder uintptr, pList uint i++ } if rc == SQLITE_OK { - if nRowEst > uint64(nRow0) { - nRowEst = uint64(nRow0) + if nRowEst > uint64(uint64(nRow0)) { + nRowEst = uint64(uint64(nRow0)) } *(*TtRowcnt)(unsafe.Pointer(pnRow)) = nRowEst } @@ -138498,7 +139683,7 @@ func _whereLoopResize(tls *libc.TLS, db uintptr, p uintptr, n int32) (r int32) { return SQLITE_OK } n = (n + int32(7)) & ^libc.Int32FromInt32(7) - paNew = _sqlite3DbMallocRawNN(tls, db, uint64(8)*uint64(n)) + paNew = _sqlite3DbMallocRawNN(tls, db, uint64(uint64(8)*uint64(uint64(n)))) if paNew == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -138507,7 +139692,7 @@ func _whereLoopResize(tls *libc.TLS, db uintptr, p uintptr, n int32) (r int32) { _sqlite3DbFreeNN(tls, db, (*TWhereLoop)(unsafe.Pointer(p)).FaLTerm) } (*TWhereLoop)(unsafe.Pointer(p)).FaLTerm = paNew - (*TWhereLoop)(unsafe.Pointer(p)).FnLSlot = uint16(n) + (*TWhereLoop)(unsafe.Pointer(p)).FnLSlot = uint16(uint16(n)) return SQLITE_OK } @@ -138995,7 +140180,7 @@ func _whereLoopOutputAdjust(tls *libc.TLS, pWC uintptr, pLoop uintptr, nRow TLog } else { *(*int32)(unsafe.Pointer(bp)) = int32(20) } - if int32(iReduce) < *(*int32)(unsafe.Pointer(bp)) { + if int32(int32(iReduce)) < *(*int32)(unsafe.Pointer(bp)) { p4 = pTerm + 18 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | libc.Int32FromInt32(TERM_HEURTRUTH)) iReduce = int16(*(*int32)(unsafe.Pointer(bp))) @@ -139009,8 +140194,8 @@ func _whereLoopOutputAdjust(tls *libc.TLS, pWC uintptr, pLoop uintptr, nRow TLog i-- pTerm += 56 } - if int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnOut) > int32(nRow)-int32(iReduce) { - (*TWhereLoop)(unsafe.Pointer(pLoop)).FnOut = int16(int32(nRow) - int32(iReduce)) + if int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnOut) > int32(int32(nRow))-int32(int32(iReduce)) { + (*TWhereLoop)(unsafe.Pointer(pLoop)).FnOut = int16(int32(int32(nRow)) - int32(int32(iReduce))) } } @@ -139067,7 +140252,7 @@ func _whereRangeVectorLen(tls *libc.TLS, pParse uintptr, iCur int32, pIdx uintpt } aff = _sqlite3CompareAffinity(tls, pRhs, _sqlite3ExprAffinity(tls, pLhs)) idxaff = _sqlite3TableColumnAffinity(tls, (*TIndex)(unsafe.Pointer(pIdx)).FpTable, int32((*TExpr)(unsafe.Pointer(pLhs)).FiColumn)) - if int32(aff) != int32(idxaff) { + if int32(int32(aff)) != int32(int32(idxaff)) { break } pColl = _sqlite3BinaryCompareCollSeq(tls, pParse, pLhs, pRhs) @@ -139136,7 +140321,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x4>>2)) != 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) } - if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 && int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x2>>1)) == 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ) | libc.Int32FromInt32(WO_IN) | libc.Int32FromInt32(WO_IS)) } } @@ -139148,7 +140333,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro saved_wsFlags = (*TWhereLoop)(unsafe.Pointer(pNew)).FwsFlags saved_prereq = (*TWhereLoop)(unsafe.Pointer(pNew)).Fprereq saved_nOut = (*TWhereLoop)(unsafe.Pointer(pNew)).FnOut - pTerm = _whereScanInit(tls, bp, (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWC, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor, int32(saved_nEq), uint32(opMask), pProbe) + pTerm = _whereScanInit(tls, bp, (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWC, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor, int32(int32(saved_nEq)), uint32(uint32(opMask)), pProbe) (*TWhereLoop)(unsafe.Pointer(pNew)).FrSetup = 0 rSize = *(*TLogEst)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pProbe)).FaiRowLogEst)) rLogSize = _estLog(tls, rSize) @@ -139159,7 +140344,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro eOp = (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator /* nOut before IN() and WHERE adjustments */ nIn = 0 nRecValid = (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid - if (int32(eOp) == int32(WO_ISNULL) || int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VNULL) != 0) && _indexColumnNotNull(tls, pProbe, int32(saved_nEq)) != 0 { + if (int32(int32(eOp)) == int32(WO_ISNULL) || int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VNULL) != 0) && _indexColumnNotNull(tls, pProbe, int32(int32(saved_nEq))) != 0 { goto _1 /* ignore IS [NOT] NULL constraints on NOT NULL columns */ } if (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqRight&(*TWhereLoop)(unsafe.Pointer(pNew)).FmaskSelf != 0 { @@ -139173,7 +140358,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro if int32((*TSrcItem)(unsafe.Pointer(pSrc)).Ffg.Fjointype)&(libc.Int32FromInt32(JT_LEFT)|libc.Int32FromInt32(JT_LTORJ)|libc.Int32FromInt32(JT_RIGHT)) != 0 && !(_constraintCompatibleWithOuterJoin(tls, pTerm, pSrc) != 0) { goto _1 } - if int32((*TIndex)(unsafe.Pointer(pProbe)).FonError) != OE_None && int32(saved_nEq) == int32((*TIndex)(unsafe.Pointer(pProbe)).FnKeyCol)-int32(1) { + if int32((*TIndex)(unsafe.Pointer(pProbe)).FonError) != OE_None && int32(int32(saved_nEq)) == int32((*TIndex)(unsafe.Pointer(pProbe)).FnKeyCol)-int32(1) { p2 = pBuilder + 44 *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) | libc.Int32FromInt32(SQLITE_BLDF1_UNIQUE)) } else { @@ -139193,7 +140378,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro *(*Tu16)(unsafe.Pointer(v5))++ *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(v4)*8)) = pTerm (*TWhereLoop)(unsafe.Pointer(pNew)).Fprereq = (saved_prereq | (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqRight) & ^(*TWhereLoop)(unsafe.Pointer(pNew)).FmaskSelf - if int32(eOp)&int32(WO_IN) != 0 { + if int32(int32(eOp))&int32(WO_IN) != 0 { pExpr = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) { nIn = int32(46) @@ -139221,7 +140406,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro nIn = int32(_sqlite3LogEst(tls, uint64((*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr))) } } - if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x80>>7)) != 0 && int32(rLogSize) >= int32(10) { + if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x80>>7)) != 0 && int32(int32(rLogSize)) >= int32(10) { /* Let: ** N = the total number of rows in the table ** K = the number of entries on the RHS of the IN operator @@ -139243,12 +140428,12 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro ** tables (less than 2 rows) as it is pointless in that case. */ M = *(*TLogEst)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pProbe)).FaiRowLogEst + uintptr(saved_nEq)*2)) - logK = _estLog(tls, int16(nIn)) + logK = _estLog(tls, int16(int16(nIn))) /* TUNING v----- 10 to bias toward indexed IN */ - x = int16(int32(M) + int32(logK) + int32(10) - (nIn + int32(rLogSize))) - if int32(x) >= 0 { + x = int16(int32(int32(M)) + int32(int32(logK)) + int32(10) - (nIn + int32(int32(rLogSize)))) + if int32(int32(x)) >= 0 { } else { - if int32(nInMul) < int32(2) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_SeekScan)) == uint32(0) { + if int32(int32(nInMul)) < int32(2) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_SeekScan)) == uint32(0) { *(*Tu32)(unsafe.Pointer(pNew + 48)) |= uint32(WHERE_IN_SEEKSCAN) } else { goto _1 @@ -139257,11 +140442,11 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } *(*Tu32)(unsafe.Pointer(pNew + 48)) |= uint32(WHERE_COLUMN_IN) } else { - if int32(eOp)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0 { + if int32(int32(eOp))&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0 { iCol = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pProbe)).FaiColumn + uintptr(saved_nEq)*2))) *(*Tu32)(unsafe.Pointer(pNew + 48)) |= uint32(WHERE_COLUMN_EQ) - if iCol == -int32(1) || iCol >= 0 && int32(nInMul) == 0 && int32(saved_nEq) == int32((*TIndex)(unsafe.Pointer(pProbe)).FnKeyCol)-int32(1) { - if iCol == -int32(1) || int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x8>>3)) != 0 || int32((*TIndex)(unsafe.Pointer(pProbe)).FnKeyCol) == int32(1) && (*TIndex)(unsafe.Pointer(pProbe)).FonError != 0 && int32(eOp) == int32(WO_EQ) { + if iCol == -int32(1) || iCol >= 0 && int32(int32(nInMul)) == 0 && int32(int32(saved_nEq)) == int32((*TIndex)(unsafe.Pointer(pProbe)).FnKeyCol)-int32(1) { + if iCol == -int32(1) || int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x8>>3)) != 0 || int32((*TIndex)(unsafe.Pointer(pProbe)).FnKeyCol) == int32(1) && (*TIndex)(unsafe.Pointer(pProbe)).FonError != 0 && int32(int32(eOp)) == int32(WO_EQ) { *(*Tu32)(unsafe.Pointer(pNew + 48)) |= uint32(WHERE_ONEROW) } else { *(*Tu32)(unsafe.Pointer(pNew + 48)) |= uint32(WHERE_UNQ_WANTED) @@ -139271,13 +140456,13 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro *(*Tu32)(unsafe.Pointer(pNew + 48)) |= uint32(WHERE_TRANSCONS) } } else { - if int32(eOp)&int32(WO_ISNULL) != 0 { + if int32(int32(eOp))&int32(WO_ISNULL) != 0 { *(*Tu32)(unsafe.Pointer(pNew + 48)) |= uint32(WHERE_COLUMN_NULL) } else { - nVecLen = _whereRangeVectorLen(tls, pParse, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor, pProbe, int32(saved_nEq), pTerm) - if int32(eOp)&(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ))) != 0 { + nVecLen = _whereRangeVectorLen(tls, pParse, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor, pProbe, int32(int32(saved_nEq)), pTerm) + if int32(int32(eOp))&(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ))|libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ))) != 0 { *(*Tu32)(unsafe.Pointer(pNew + 48)) |= uint32(libc.Int32FromInt32(WHERE_COLUMN_RANGE) | libc.Int32FromInt32(WHERE_BTM_LIMIT)) - (*TWhereLoop)(unsafe.Pointer(pNew)).Fu.Fbtree.FnBtm = uint16(nVecLen) + (*TWhereLoop)(unsafe.Pointer(pNew)).Fu.Fbtree.FnBtm = uint16(uint16(nVecLen)) pBtm = pTerm pTop = uintptr(0) if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_LIKEOPT) != 0 { @@ -139296,7 +140481,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } } else { *(*Tu32)(unsafe.Pointer(pNew + 48)) |= uint32(libc.Int32FromInt32(WHERE_COLUMN_RANGE) | libc.Int32FromInt32(WHERE_TOP_LIMIT)) - (*TWhereLoop)(unsafe.Pointer(pNew)).Fu.Fbtree.FnTop = uint16(nVecLen) + (*TWhereLoop)(unsafe.Pointer(pNew)).Fu.Fbtree.FnTop = uint16(uint16(nVecLen)) pTop = pTerm if (*TWhereLoop)(unsafe.Pointer(pNew)).FwsFlags&uint32(WHERE_BTM_LIMIT) != uint32(0) { v9 = *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm)-int32(2))*8)) @@ -139329,9 +140514,9 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro *(*TLogEst)(unsafe.Pointer(p13)) = TLogEst(int32(*(*TLogEst)(unsafe.Pointer(p13))) - nIn) } else { *(*TtRowcnt)(unsafe.Pointer(bp + 112)) = uint64(0) - if int32(nInMul) == 0 && (*TIndex)(unsafe.Pointer(pProbe)).FnSample != 0 && int32((*TWhereLoop)(unsafe.Pointer(pNew)).Fu.Fbtree.FnEq) <= (*TIndex)(unsafe.Pointer(pProbe)).FnSampleCol && (int32(eOp)&int32(WO_IN) == 0 || (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).Fflags&uint32(EP_xIsSelect) == uint32(0)) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0) { + if int32(int32(nInMul)) == 0 && (*TIndex)(unsafe.Pointer(pProbe)).FnSample != 0 && int32((*TWhereLoop)(unsafe.Pointer(pNew)).Fu.Fbtree.FnEq) <= (*TIndex)(unsafe.Pointer(pProbe)).FnSampleCol && (int32(int32(eOp))&int32(WO_IN) == 0 || (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).Fflags&uint32(EP_xIsSelect) == uint32(0)) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0) { pExpr1 = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr - if int32(eOp)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_ISNULL)|libc.Int32FromInt32(WO_IS)) != 0 { + if int32(int32(eOp))&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_ISNULL)|libc.Int32FromInt32(WO_IS)) != 0 { rc = _whereEqualScanEst(tls, pParse, pBuilder, (*TExpr)(unsafe.Pointer(pExpr1)).FpRight, bp+112) } else { rc = _whereInScanEst(tls, pParse, pBuilder, *(*uintptr)(unsafe.Pointer(pExpr1 + 32)), bp+112) @@ -139355,7 +140540,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro *(*uint8)(unsafe.Pointer(p15)) = uint8(int32(*(*uint8)(unsafe.Pointer(p15))) | libc.Int32FromInt32(SQLITE_BLDF2_2NDPASS)) } } - if int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut) > int32(saved_nOut) { + if int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut) > int32(int32(saved_nOut)) { (*TWhereLoop)(unsafe.Pointer(pNew)).FnOut = saved_nOut } p16 = pNew + 22 @@ -139365,7 +140550,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro if *(*TtRowcnt)(unsafe.Pointer(bp + 112)) == uint64(0) { p17 = pNew + 22 *(*TLogEst)(unsafe.Pointer(p17)) = TLogEst(int32(*(*TLogEst)(unsafe.Pointer(p17))) + (int32(*(*TLogEst)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pProbe)).FaiRowLogEst + uintptr(nEq)*2))) - int32(*(*TLogEst)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pProbe)).FaiRowLogEst + uintptr(nEq-int32(1))*2))))) - if int32(eOp)&int32(WO_ISNULL) != 0 { + if int32(int32(eOp))&int32(WO_ISNULL) != 0 { /* TUNING: If there is no likelihood() value, assume that a ** "col IS NULL" expression matches twice as many rows ** as (col=?). */ @@ -139375,10 +140560,13 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } } } - /* Set rCostIdx to the cost of visiting selected rows in index. Add - ** it to pNew->rRun, which is currently set to the cost of the index - ** seek only. Then, if this is a non-covering index, add the cost of - ** visiting the rows in the main table. */ + /* Set rCostIdx to the estimated cost of visiting selected rows in the + ** index. The estimate is the sum of two values: + ** 1. The cost of doing one search-by-key to find the first matching + ** entry + ** 2. Stepping forward in the index pNew->nOut times to find all + ** additional matching entries. + */ if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_IPK) { /* The pProbe->szIdxRow is low for an IPK table since the interior ** pages are small. Thus szIdxRow gives a good estimate of seek cost. @@ -139388,15 +140576,22 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } else { rCostIdx = int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut) + int32(1) + int32(15)*int32((*TIndex)(unsafe.Pointer(pProbe)).FszIdxRow)/int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FszTabRow)) } - (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + rCostIdx = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + /* Estimate the cost of running the loop. If all data is coming + ** from the index, then this is just the cost of doing the index + ** lookup and scan. But if some data is coming out of the main table, + ** we also have to add in the cost of doing pNew->nOut searches to + ** locate the row in the main table that corresponds to the index entry. + */ + (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = rCostIdx if (*TWhereLoop)(unsafe.Pointer(pNew)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IDX_ONLY)|libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_EXPRIDX)) == uint32(0) { (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun, int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut)+int32(16))) } nOutUnadjusted = (*TWhereLoop)(unsafe.Pointer(pNew)).FnOut p19 = pNew + 20 - *(*TLogEst)(unsafe.Pointer(p19)) = TLogEst(int32(*(*TLogEst)(unsafe.Pointer(p19))) + (int32(nInMul) + nIn)) + *(*TLogEst)(unsafe.Pointer(p19)) = TLogEst(int32(*(*TLogEst)(unsafe.Pointer(p19))) + (int32(int32(nInMul)) + nIn)) p20 = pNew + 22 - *(*TLogEst)(unsafe.Pointer(p20)) = TLogEst(int32(*(*TLogEst)(unsafe.Pointer(p20))) + (int32(nInMul) + nIn)) + *(*TLogEst)(unsafe.Pointer(p20)) = TLogEst(int32(*(*TLogEst)(unsafe.Pointer(p20))) + (int32(int32(nInMul)) + nIn)) _whereLoopOutputAdjust(tls, (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpWC, pNew, rSize) rc = _whereLoopInsert(tls, pBuilder, pNew) if (*TWhereLoop)(unsafe.Pointer(pNew)).FwsFlags&uint32(WHERE_COLUMN_RANGE) != 0 { @@ -139408,7 +140603,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro if int32((*TWhereLoop)(unsafe.Pointer(pNew)).Fu.Fbtree.FnEq) > int32(3) { _sqlite3ProgressCheck(tls, pParse) } - _whereLoopAddBtreeIndex(tls, pBuilder, pSrc, pProbe, int16(int32(nInMul)+nIn)) + _whereLoopAddBtreeIndex(tls, pBuilder, pSrc, pProbe, int16(int32(int32(nInMul))+nIn)) } (*TWhereLoop)(unsafe.Pointer(pNew)).FnOut = saved_nOut (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = nRecValid @@ -139435,7 +140630,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro ** the code). And, even if it is not, it should not be too much slower. ** On the other hand, the extra seeks could end up being significantly ** more expensive. */ - if v22 = int32(saved_nEq) == int32(saved_nSkip) && int32(saved_nEq)+int32(1) < int32((*TIndex)(unsafe.Pointer(pProbe)).FnKeyCol) && int32(saved_nEq) == int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm) && int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x40>>6)) == 0 && int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x80>>7)) != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_SkipScan)) == uint32(0) && int32(*(*TLogEst)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pProbe)).FaiRowLogEst + uintptr(int32(saved_nEq)+int32(1))*2))) >= int32(42); v22 { + if v22 = int32(int32(saved_nEq)) == int32(int32(saved_nSkip)) && int32(int32(saved_nEq))+int32(1) < int32((*TIndex)(unsafe.Pointer(pProbe)).FnKeyCol) && int32(int32(saved_nEq)) == int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm) && int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x40>>6)) == 0 && int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x80>>7)) != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_SkipScan)) == uint32(0) && int32(*(*TLogEst)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pProbe)).FaiRowLogEst + uintptr(int32(int32(saved_nEq))+int32(1))*2))) >= int32(42); v22 { v21 = _whereLoopResize(tls, db, pNew, int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm)+int32(1)) rc = v21 } @@ -139447,13 +140642,13 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro *(*Tu16)(unsafe.Pointer(v24))++ *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(v23)*8)) = uintptr(0) *(*Tu32)(unsafe.Pointer(pNew + 48)) |= uint32(WHERE_SKIPSCAN) - nIter = int16(int32(*(*TLogEst)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pProbe)).FaiRowLogEst + uintptr(saved_nEq)*2))) - int32(*(*TLogEst)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pProbe)).FaiRowLogEst + uintptr(int32(saved_nEq)+int32(1))*2)))) + nIter = int16(int32(*(*TLogEst)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pProbe)).FaiRowLogEst + uintptr(saved_nEq)*2))) - int32(*(*TLogEst)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pProbe)).FaiRowLogEst + uintptr(int32(int32(saved_nEq))+int32(1))*2)))) p25 = pNew + 22 - *(*TLogEst)(unsafe.Pointer(p25)) = TLogEst(int32(*(*TLogEst)(unsafe.Pointer(p25))) - int32(nIter)) + *(*TLogEst)(unsafe.Pointer(p25)) = TLogEst(int32(*(*TLogEst)(unsafe.Pointer(p25))) - int32(int32(nIter))) /* TUNING: Because uncertainties in the estimates for skip-scan queries, ** add a 1.375 fudge factor to make skip-scan slightly less likely. */ nIter = TLogEst(int32(nIter) + libc.Int32FromInt32(5)) - _whereLoopAddBtreeIndex(tls, pBuilder, pSrc, pProbe, int16(int32(nIter)+int32(nInMul))) + _whereLoopAddBtreeIndex(tls, pBuilder, pSrc, pProbe, int16(int32(int32(nIter))+int32(int32(nInMul)))) (*TWhereLoop)(unsafe.Pointer(pNew)).FnOut = saved_nOut (*TWhereLoop)(unsafe.Pointer(pNew)).Fu.Fbtree.FnEq = saved_nEq (*TWhereLoop)(unsafe.Pointer(pNew)).FnSkip = saved_nSkip @@ -139493,7 +140688,7 @@ func _indexMightHelpWithOrderBy(tls *libc.TLS, pBuilder uintptr, pIndex uintptr, if pExpr == uintptr(0) { goto _2 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { + if (int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) || int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_COLUMN)) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) < 0 { return int32(1) } @@ -139549,7 +140744,7 @@ func _whereUsablePartialIndex(tls *libc.TLS, iTab int32, jointype Tu8, pWC uintp var i int32 var pExpr, pParse, pTerm uintptr _, _, _, _ = i, pExpr, pParse, pTerm - if int32(jointype)&int32(JT_LTORJ) != 0 { + if int32(int32(jointype))&int32(JT_LTORJ) != 0 { return 0 } pParse = (*TWhereInfo)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse @@ -139569,7 +140764,7 @@ func _whereUsablePartialIndex(tls *libc.TLS, iTab int32, jointype Tu8, pWC uintp break } pExpr = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr - if (!((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != libc.Uint32FromInt32(0)) || *(*int32)(unsafe.Pointer(pExpr + 52)) == iTab) && (int32(jointype)&int32(JT_OUTER) == 0 || (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != uint32(0)) && _sqlite3ExprImpliesExpr(tls, pParse, pExpr, pWhere, iTab) != 0 && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VNULL) == 0 { + if (!((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != libc.Uint32FromInt32(0)) || *(*int32)(unsafe.Pointer(pExpr + 52)) == iTab) && (int32(int32(jointype))&int32(JT_OUTER) == 0 || (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != uint32(0)) && _sqlite3ExprImpliesExpr(tls, pParse, pExpr, pWhere, iTab) != 0 && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VNULL) == 0 { return int32(1) } goto _1 @@ -139665,7 +140860,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp nColumn = (*TIndex)(unsafe.Pointer(pIdx)).FnColumn i = 0 for { - if !(i < int32(nColumn)) { + if !(i < int32(int32(nColumn))) { break } if int32(*(*Ti16)(unsafe.Pointer(aiColumn + uintptr(i)*2))) == int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) { @@ -139763,7 +140958,7 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur rc = int32(WHERE_IDX_ONLY) } } - return uint32(rc) + return uint32(uint32(rc)) } // C documentation @@ -139828,7 +141023,7 @@ func _wherePartIdxExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, pPart uintpt if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) != int32(TK_COLUMN) { return } - if !(_sqlite3ExprIsConstant(tls, pRight) != 0) { + if !(_sqlite3ExprIsConstant(tls, uintptr(0), pRight) != 0) { return } if !(_sqlite3IsBinary(tls, _sqlite3ExprCompareCollSeq(tls, pParse, pPart)) != 0) { @@ -139838,7 +141033,7 @@ func _wherePartIdxExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, pPart uintpt return } aff = uint8((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr((*TExpr)(unsafe.Pointer(pLeft)).FiColumn)*16))).Faffinity) - if int32(aff) >= int32(SQLITE_AFF_TEXT) { + if int32(int32(aff)) >= int32(SQLITE_AFF_TEXT) { if pItem != 0 { db = (*TParse)(unsafe.Pointer(pParse)).Fdb p = _sqlite3DbMallocRaw(tls, db, uint64(32)) @@ -139848,7 +141043,7 @@ func _wherePartIdxExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, pPart uintpt (*TIndexedExpr)(unsafe.Pointer(p)).FiDataCur = (*TSrcItem)(unsafe.Pointer(pItem)).FiCursor (*TIndexedExpr)(unsafe.Pointer(p)).FiIdxCur = iIdxCur (*TIndexedExpr)(unsafe.Pointer(p)).FiIdxCol = int32((*TExpr)(unsafe.Pointer(pLeft)).FiColumn) - (*TIndexedExpr)(unsafe.Pointer(p)).FbMaybeNullRow = uint8(bNullRow) + (*TIndexedExpr)(unsafe.Pointer(p)).FbMaybeNullRow = uint8(uint8(bNullRow)) (*TIndexedExpr)(unsafe.Pointer(p)).FpIENext = (*TParse)(unsafe.Pointer(pParse)).FpIdxPartExpr (*TIndexedExpr)(unsafe.Pointer(p)).Faff = aff (*TParse)(unsafe.Pointer(pParse)).FpIdxPartExpr = p @@ -139979,7 +141174,7 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in ** will be more aggressive about generating automatic indexes for ** those objects, since there is no opportunity to add schema ** indexes on subqueries and views. */ - (*TWhereLoop)(unsafe.Pointer(pNew)).FrSetup = int16(int32(rLogSize) + int32(rSize)) + (*TWhereLoop)(unsafe.Pointer(pNew)).FrSetup = int16(int32(int32(rLogSize)) + int32(int32(rSize))) if !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) && (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Ephemeral) == uint32(0) { p2 = pNew + 18 *(*TLogEst)(unsafe.Pointer(p2)) = TLogEst(int32(*(*TLogEst)(unsafe.Pointer(p2))) + libc.Int32FromInt32(28)) @@ -140055,7 +141250,7 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in ** the scarcer of the two values, and in that case an index lookup is ** better. */ - (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = int16(int32(rSize) + int32(16) - int32(2)*libc.BoolInt32((*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasStat4) != uint32(0))) + (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = int16(int32(int32(rSize)) + int32(16) - int32(2)*libc.BoolInt32((*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasStat4) != uint32(0))) _whereLoopOutputAdjust(tls, pWC, pNew, rSize) rc = _whereLoopInsert(tls, pBuilder, pNew) (*TWhereLoop)(unsafe.Pointer(pNew)).FnOut = rSize @@ -140099,14 +141294,14 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in /* The cost of visiting the index rows is N*K, where K is ** between 1.1 and 3.0, depending on the relative sizes of the ** index and table rows. */ - (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = int16(int32(rSize) + int32(1) + int32(15)*int32((*TIndex)(unsafe.Pointer(pProbe)).FszIdxRow)/int32((*TTable)(unsafe.Pointer(pTab)).FszTabRow)) + (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = int16(int32(int32(rSize)) + int32(1) + int32(15)*int32((*TIndex)(unsafe.Pointer(pProbe)).FszIdxRow)/int32((*TTable)(unsafe.Pointer(pTab)).FszTabRow)) if *(*TBitmask)(unsafe.Pointer(bp + 168)) != uint64(0) { /* If this is a non-covering index scan, add in the cost of ** doing table lookups. The cost will be 3x the number of ** lookups. Take into account WHERE clause terms that can be ** satisfied using just the index, and that do not require a ** table lookup. */ - nLookup = int16(int32(rSize) + int32(16)) + nLookup = int16(int32(int32(rSize)) + int32(16)) iCur = (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor pWC2 = pWInfo + 104 ii = 0 @@ -140157,7 +141352,7 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in ** unique index is used (making the index functionally non-unique) ** then the sqlite_stat1 data becomes important for scoring the ** plan */ - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) } _sqlite3Stat4ProbeFree(tls, (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec) (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = 0 @@ -140185,6 +141380,31 @@ func _isLimitTerm(tls *libc.TLS, pTerm uintptr) (r int32) { return libc.BoolInt32(int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) >= int32(SQLITE_INDEX_CONSTRAINT_LIMIT) && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) <= int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } +// C documentation +// +// /* +// ** Return true if the first nCons constraints in the pUsage array are +// ** marked as in-use (have argvIndex>0). False otherwise. +// */ +func _allConstraintsUsed(tls *libc.TLS, aUsage uintptr, nCons int32) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < nCons) { + break + } + if (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer(aUsage + uintptr(ii)*8))).FargvIndex <= 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + // C documentation // // /* @@ -140234,7 +141454,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, } pTerm = (*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr((*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).FiTermOffset)*56 (*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable = uint8(0) - if (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqRight&mUsable == (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqRight && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(mExclude) == 0 && (pbRetryLimit != 0 || !(_isLimitTerm(tls, pTerm) != 0)) { + if (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqRight&mUsable == (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqRight && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(int32(mExclude)) == 0 && (pbRetryLimit != 0 || !(_isLimitTerm(tls, pTerm) != 0)) { (*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable = uint8(1) } goto _1 @@ -140244,7 +141464,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, pIdxCons += 12 } /* Initialize the output fields of the sqlite3_index_info structure */ - libc.Xmemset(tls, pUsage, 0, uint64(8)*uint64(nConstraint)) + libc.Xmemset(tls, pUsage, 0, uint64(8)*uint64(uint64(nConstraint))) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = uintptr(0) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = 0 (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).ForderByConsumed = 0 @@ -140266,7 +141486,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, return rc } mxTerm = -int32(1) - libc.Xmemset(tls, (*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm, 0, uint64(8)*uint64(nConstraint)) + libc.Xmemset(tls, (*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm, 0, uint64(8)*uint64(uint64(nConstraint))) libc.Xmemset(tls, pNew+24, 0, uint64(24)) pIdxCons = *(*uintptr)(unsafe.Pointer(pIdxInfo + 8)) i = 0 @@ -140279,7 +141499,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if v3 >= 0 { j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).FiTermOffset if iTerm >= nConstraint || j < 0 || j >= (*TWhereClause)(unsafe.Pointer(pWC)).FnTerm || *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(iTerm)*8)) != uintptr(0) || int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22435, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22580, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } pTerm1 = (*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(j)*56 @@ -140289,7 +141509,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, mxTerm = iTerm } if (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer(pUsage + uintptr(i)*8))).Fomit != 0 { - if i < int32(16) && int32(1)<= (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint { - rc = _sqlite3MisuseError(tls, int32(165251)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(166453)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = (*TWhereClause)(unsafe.Pointer((*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC)).Fa + uintptr((*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset)*56 @@ -140895,7 +142119,7 @@ func _whereLoopAddAll(tls *libc.TLS, pBuilder uintptr) (r int32) { break } mUnusable = uint64(0) - (*TWhereLoop)(unsafe.Pointer(pNew)).FiTab = uint8(iTab) + (*TWhereLoop)(unsafe.Pointer(pNew)).FiTab = uint8(uint8(iTab)) *(*uint32)(unsafe.Pointer(pBuilder + 48)) += uint32(SQLITE_QUERY_PLANNER_LIMIT_INCR) (*TWhereLoop)(unsafe.Pointer(pNew)).FmaskSelf = _sqlite3WhereGetMask(tls, pWInfo+592, (*TSrcItem)(unsafe.Pointer(pItem)).FiCursor) if bFirstPastRJ != 0 || int32((*TSrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&(libc.Int32FromInt32(JT_OUTER)|libc.Int32FromInt32(JT_CROSS)|libc.Int32FromInt32(JT_LTORJ)) != 0 { @@ -140944,7 +142168,7 @@ func _whereLoopAddAll(tls *libc.TLS, pBuilder uintptr) (r int32) { if rc != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { if rc == int32(SQLITE_DONE) { /* We hit the query planner search limit set by iPlanLimit */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22461, 0) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22606, 0) rc = SQLITE_OK } else { break @@ -141015,7 +142239,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, return 0 } nOrderBy = uint16((*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr) - if int32(nOrderBy) > int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8))-libc.Int32FromInt32(1) { + if int32(int32(nOrderBy)) > int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8))-libc.Int32FromInt32(1) { return 0 } /* Cannot optimize overly large ORDER BYs */ isOrderDistinct = uint8(1) @@ -141023,20 +142247,20 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, orderDistinctMask = uint64(0) ready = uint64(0) eqOpMask = uint16(libc.Int32FromInt32(WO_EQ) | libc.Int32FromInt32(WO_IS) | libc.Int32FromInt32(WO_ISNULL)) - if int32(wctrlFlags)&(libc.Int32FromInt32(WHERE_ORDERBY_LIMIT)|libc.Int32FromInt32(WHERE_ORDERBY_MAX)|libc.Int32FromInt32(WHERE_ORDERBY_MIN)) != 0 { + if int32(int32(wctrlFlags))&(libc.Int32FromInt32(WHERE_ORDERBY_LIMIT)|libc.Int32FromInt32(WHERE_ORDERBY_MAX)|libc.Int32FromInt32(WHERE_ORDERBY_MIN)) != 0 { eqOpMask = Tu16(int32(eqOpMask) | libc.Int32FromInt32(WO_IN)) } iLoop = 0 for { - if !(isOrderDistinct != 0 && obSat < obDone && iLoop <= int32(nLoop)) { + if !(isOrderDistinct != 0 && obSat < obDone && iLoop <= int32(int32(nLoop))) { break } if iLoop > 0 { ready |= (*TWhereLoop)(unsafe.Pointer(pLoop)).FmaskSelf } - if iLoop < int32(nLoop) { + if iLoop < int32(int32(nLoop)) { pLoop = *(*uintptr)(unsafe.Pointer((*TWherePath)(unsafe.Pointer(pPath)).FaLoop + uintptr(iLoop)*8)) - if int32(wctrlFlags)&int32(WHERE_ORDERBY_LIMIT) != 0 { + if int32(int32(wctrlFlags))&int32(WHERE_ORDERBY_LIMIT) != 0 { goto _1 } } else { @@ -141050,12 +142274,12 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, FomitMask Tu16 FidxStr uintptr FmHandleIn Tu32 - })(unsafe.Pointer(pLoop + 24))).FisOrdered != 0 && int32(wctrlFlags)&(libc.Int32FromInt32(WHERE_DISTINCTBY)|libc.Int32FromInt32(WHERE_SORTBYGROUP)) != int32(WHERE_DISTINCTBY) { + })(unsafe.Pointer(pLoop + 24))).FisOrdered != 0 && int32(int32(wctrlFlags))&(libc.Int32FromInt32(WHERE_DISTINCTBY)|libc.Int32FromInt32(WHERE_SORTBYGROUP)) != int32(WHERE_DISTINCTBY) { obSat = obDone } break } else { - if int32(wctrlFlags)&int32(WHERE_DISTINCTBY) != 0 { + if int32(int32(wctrlFlags))&int32(WHERE_DISTINCTBY) != 0 { (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnDistinctCol = uint16(0) } } @@ -141067,7 +142291,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, */ i = 0 for { - if !(i < int32(nOrderBy)) { + if !(i < int32(int32(nOrderBy))) { break } if libc.Uint64FromInt32(1)<u.btree.nEq constraint above. Any equality other ** than WO_IN is captured by the previous "if". So this one @@ -141225,7 +142449,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, isMatch = uint8(0) i = 0 for { - if !(bOnce != 0 && i < int32(nOrderBy)) { + if !(bOnce != 0 && i < int32(int32(nOrderBy))) { break } if libc.Uint64FromInt32(1)<= -int32(1) { @@ -141260,7 +142484,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, goto _8 } } - if int32(wctrlFlags)&int32(WHERE_DISTINCTBY) != 0 { + if int32(int32(wctrlFlags))&int32(WHERE_DISTINCTBY) != 0 { (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnDistinctCol = uint16(j + int32(1)) } isMatch = uint8(1) @@ -141270,15 +142494,15 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, ; i++ } - if isMatch != 0 && int32(wctrlFlags)&int32(WHERE_GROUPBY) == 0 { + if isMatch != 0 && int32(int32(wctrlFlags))&int32(WHERE_GROUPBY) == 0 { /* Make sure the sort order is compatible in an ORDER BY clause. ** Sort order is irrelevant for a GROUP BY clause. */ if revSet != 0 { - if int32(rev)^int32(revIdx) != int32((*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).Ffg.FsortFlags)&int32(KEYINFO_ORDER_DESC) { + if int32(int32(rev))^int32(int32(revIdx)) != int32((*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).Ffg.FsortFlags)&int32(KEYINFO_ORDER_DESC) { isMatch = uint8(0) } } else { - rev = uint8(int32(revIdx) ^ int32((*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).Ffg.FsortFlags)&int32(KEYINFO_ORDER_DESC)) + rev = uint8(int32(int32(revIdx)) ^ int32((*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).Ffg.FsortFlags)&int32(KEYINFO_ORDER_DESC)) if rev != 0 { *(*TBitmask)(unsafe.Pointer(pRevMask)) |= libc.Uint64FromInt32(1) << iLoop } @@ -141299,7 +142523,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, obSat |= libc.Uint64FromInt32(1) << i } else { /* No match found */ - if j == 0 || j < int32(nKeyCol) { + if j == 0 || j < int32(int32(nKeyCol)) { isOrderDistinct = uint8(0) } break @@ -141318,7 +142542,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, orderDistinctMask |= (*TWhereLoop)(unsafe.Pointer(pLoop)).FmaskSelf i = 0 for { - if !(i < int32(nOrderBy)) { + if !(i < int32(int32(nOrderBy))) { break } if libc.Uint64FromInt32(1)< 0) { break @@ -141359,7 +142583,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, } m = v11 if obSat&m == m { - return int8(i) + return int8(int8(i)) } goto _10 _10: @@ -141412,7 +142636,7 @@ func _whereSortingCost(tls *libc.TLS, pWInfo uintptr, nRow TLogEst, nOrderBy int _, _ = nCol, rSortCost /* TUNING: sorting cost proportional to the number of output columns: */ nCol = _sqlite3LogEst(tls, uint64(((*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpEList)).FnExpr+int32(59))/int32(30))) - rSortCost = int16(int32(nRow) + int32(nCol)) + rSortCost = int16(int32(int32(nRow)) + int32(int32(nCol))) if nSorted > 0 { /* Scale the result by (Y/X) */ rSortCost = TLogEst(int32(rSortCost) + (int32(_sqlite3LogEst(tls, uint64((nOrderBy-nSorted)*int32(100)/nOrderBy))) - libc.Int32FromInt32(66))) @@ -141427,14 +142651,14 @@ func _whereSortingCost(tls *libc.TLS, pWInfo uintptr, nRow TLogEst, nOrderBy int if nSorted != 0 { rSortCost = TLogEst(int32(rSortCost) + libc.Int32FromInt32(6)) /* TUNING: Extra 1.5x if also using partial sort */ } - if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FiLimit) < int32(nRow) { + if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FiLimit) < int32(int32(nRow)) { nRow = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiLimit } } else { if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_WANT_DISTINCT) != 0 { /* TUNING: In the sort for a DISTINCT operator, assume that the DISTINCT ** reduces the number of output rows by a factor of 2 */ - if int32(nRow) > int32(10) { + if int32(int32(nRow)) > int32(10) { nRow = TLogEst(int32(nRow) - libc.Int32FromInt32(10)) } } @@ -141496,15 +142720,15 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) ** by the overall query. Once this estimate has been obtained, the caller ** will invoke this function a second time, passing the estimate as the ** nRowEst parameter. */ - if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy == uintptr(0) || int32(nRowEst) == 0 { + if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy == uintptr(0) || int32(int32(nRowEst)) == 0 { nOrderBy = 0 } else { nOrderBy = (*TExprList)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr } /* Allocate and initialize space for aTo, aFrom and aSortCost[] */ - nSpace = int32((uint64(32) + uint64(8)*uint64(nLoop)) * uint64(mxChoice) * uint64(2)) - nSpace = int32(uint64(nSpace) + libc.Uint64FromInt64(2)*uint64(nOrderBy)) - pSpace = _sqlite3DbMallocRawNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(nSpace)) + nSpace = int32((uint64(32) + uint64(8)*uint64(uint64(nLoop))) * uint64(uint64(mxChoice)) * uint64(2)) + nSpace = int32(uint64(nSpace) + libc.Uint64FromInt64(2)*uint64(uint64(nOrderBy))) + pSpace = _sqlite3DbMallocRawNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(uint64(nSpace))) if pSpace == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -141534,7 +142758,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) ** the ORDER BY clause are already in order, where X is the array ** index. */ aSortCost = pX - libc.Xmemset(tls, aSortCost, 0, uint64(2)*uint64(nOrderBy)) + libc.Xmemset(tls, aSortCost, 0, uint64(2)*uint64(uint64(nOrderBy))) } /* Seed the search with a single WherePath containing zero WhereLoops. ** @@ -141602,15 +142826,15 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) nOut = int16(int32((*TWherePath)(unsafe.Pointer(pFrom)).FnRow) + int32((*TWhereLoop)(unsafe.Pointer(pWLoop)).FnOut)) maskNew = (*TWherePath)(unsafe.Pointer(pFrom)).FmaskLoop | (*TWhereLoop)(unsafe.Pointer(pWLoop)).FmaskSelf isOrdered = (*TWherePath)(unsafe.Pointer(pFrom)).FisOrdered - if int32(isOrdered) < 0 { + if int32(int32(isOrdered)) < 0 { *(*TBitmask)(unsafe.Pointer(bp)) = uint64(0) - isOrdered = _wherePathSatisfiesOrderBy(tls, pWInfo, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy, pFrom, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags, uint16(iLoop), pWLoop, bp) + isOrdered = _wherePathSatisfiesOrderBy(tls, pWInfo, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy, pFrom, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags, uint16(uint16(iLoop)), pWLoop, bp) } else { *(*TBitmask)(unsafe.Pointer(bp)) = (*TWherePath)(unsafe.Pointer(pFrom)).FrevLoop } - if int32(isOrdered) >= 0 && int32(isOrdered) < nOrderBy { + if int32(int32(isOrdered)) >= 0 && int32(int32(isOrdered)) < nOrderBy { if int32(*(*TLogEst)(unsafe.Pointer(aSortCost + uintptr(isOrdered)*2))) == 0 { - *(*TLogEst)(unsafe.Pointer(aSortCost + uintptr(isOrdered)*2)) = _whereSortingCost(tls, pWInfo, nRowEst, nOrderBy, int32(isOrdered)) + *(*TLogEst)(unsafe.Pointer(aSortCost + uintptr(isOrdered)*2)) = _whereSortingCost(tls, pWInfo, nRowEst, nOrderBy, int32(int32(isOrdered))) } /* TUNING: Add a small extra penalty (3) to sorting as an ** extra encouragement to the query planner to select a plan @@ -141638,7 +142862,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) if !(jj < nTo) { break } - if (*TWherePath)(unsafe.Pointer(pTo)).FmaskLoop == maskNew && (int32((*TWherePath)(unsafe.Pointer(pTo)).FisOrdered)^int32(isOrdered))&int32(0x80) == 0 { + if (*TWherePath)(unsafe.Pointer(pTo)).FmaskLoop == maskNew && (int32((*TWherePath)(unsafe.Pointer(pTo)).FisOrdered)^int32(int32(isOrdered)))&int32(0x80) == 0 { break } goto _9 @@ -141649,7 +142873,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) } if jj >= nTo { /* None of the existing best-so-far paths match the candidate. */ - if nTo >= mxChoice && (int32(rCost) > int32(mxCost) || int32(rCost) == int32(mxCost) && int32(rUnsorted) >= int32(mxUnsorted)) { + if nTo >= mxChoice && (int32(int32(rCost)) > int32(int32(mxCost)) || int32(int32(rCost)) == int32(int32(mxCost)) && int32(int32(rUnsorted)) >= int32(int32(mxUnsorted))) { /* The current candidate is no better than any of the mxChoice ** paths currently in the best-so-far buffer. So discard ** this candidate as not viable. */ @@ -141676,7 +142900,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) ** The conditional is an expanded vector comparison equivalent to: ** (pTo->rCost,pTo->nRow,pTo->rUnsorted) <= (rCost,nOut,rUnsorted) */ - if int32((*TWherePath)(unsafe.Pointer(pTo)).FrCost) < int32(rCost) || int32((*TWherePath)(unsafe.Pointer(pTo)).FrCost) == int32(rCost) && (int32((*TWherePath)(unsafe.Pointer(pTo)).FnRow) < int32(nOut) || int32((*TWherePath)(unsafe.Pointer(pTo)).FnRow) == int32(nOut) && int32((*TWherePath)(unsafe.Pointer(pTo)).FrUnsorted) <= int32(rUnsorted)) { + if int32((*TWherePath)(unsafe.Pointer(pTo)).FrCost) < int32(int32(rCost)) || int32((*TWherePath)(unsafe.Pointer(pTo)).FrCost) == int32(int32(rCost)) && (int32((*TWherePath)(unsafe.Pointer(pTo)).FnRow) < int32(int32(nOut)) || int32((*TWherePath)(unsafe.Pointer(pTo)).FnRow) == int32(int32(nOut)) && int32((*TWherePath)(unsafe.Pointer(pTo)).FrUnsorted) <= int32(int32(rUnsorted))) { /* Discard the candidate path from further consideration */ goto _8 } @@ -141690,7 +142914,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) (*TWherePath)(unsafe.Pointer(pTo)).FrCost = rCost (*TWherePath)(unsafe.Pointer(pTo)).FrUnsorted = rUnsorted (*TWherePath)(unsafe.Pointer(pTo)).FisOrdered = isOrdered - libc.Xmemcpy(tls, (*TWherePath)(unsafe.Pointer(pTo)).FaLoop, (*TWherePath)(unsafe.Pointer(pFrom)).FaLoop, uint64(8)*uint64(iLoop)) + libc.Xmemcpy(tls, (*TWherePath)(unsafe.Pointer(pTo)).FaLoop, (*TWherePath)(unsafe.Pointer(pFrom)).FaLoop, uint64(8)*uint64(uint64(iLoop))) *(*uintptr)(unsafe.Pointer((*TWherePath)(unsafe.Pointer(pTo)).FaLoop + uintptr(iLoop)*8)) = pWLoop if nTo >= mxChoice { mxI = 0 @@ -141702,7 +142926,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) if !(jj < mxChoice) { break } - if int32((*TWherePath)(unsafe.Pointer(pTo)).FrCost) > int32(mxCost) || int32((*TWherePath)(unsafe.Pointer(pTo)).FrCost) == int32(mxCost) && int32((*TWherePath)(unsafe.Pointer(pTo)).FrUnsorted) > int32(mxUnsorted) { + if int32((*TWherePath)(unsafe.Pointer(pTo)).FrCost) > int32(int32(mxCost)) || int32((*TWherePath)(unsafe.Pointer(pTo)).FrCost) == int32(int32(mxCost)) && int32((*TWherePath)(unsafe.Pointer(pTo)).FrUnsorted) > int32(int32(mxUnsorted)) { mxCost = (*TWherePath)(unsafe.Pointer(pTo)).FrCost mxUnsorted = (*TWherePath)(unsafe.Pointer(pTo)).FrUnsorted mxI = jj @@ -141736,7 +142960,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) iLoop++ } if nFrom == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22496, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22641, 0) _sqlite3DbFreeNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pSpace) return int32(SQLITE_ERROR) } @@ -141785,9 +143009,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) if int32((*TWherePath)(unsafe.Pointer(pFrom)).FisOrdered) == (*TExprList)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_ORDERED) } - if (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy != 0 && int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) > (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr { - (*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = int8((*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr) - } + /* vvv--- See check-in [12ad822d9b827777] on 2023-03-16 ---vvv */ } else { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FrevMask = (*TWherePath)(unsafe.Pointer(pFrom)).FrevLoop if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) <= 0 { @@ -141824,6 +143046,97 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) return SQLITE_OK } +// C documentation +// +// /* +// ** This routine implements a heuristic designed to improve query planning. +// ** This routine is called in between the first and second call to +// ** wherePathSolver(). Hence the name "Interstage" "Heuristic". +// ** +// ** The first call to wherePathSolver() (hereafter just "solver()") computes +// ** the best path without regard to the order of the outputs. The second call +// ** to the solver() builds upon the first call to try to find an alternative +// ** path that satisfies the ORDER BY clause. +// ** +// ** This routine looks at the results of the first solver() run, and for +// ** every FROM clause term in the resulting query plan that uses an equality +// ** constraint against an index, disable other WhereLoops for that same +// ** FROM clause term that would try to do a full-table scan. This prevents +// ** an index search from being converted into a full-table scan in order to +// ** satisfy an ORDER BY clause, since even though we might get slightly better +// ** performance using the full-scan without sorting if the output size +// ** estimates are very precise, we might also get severe performance +// ** degradation using the full-scan if the output size estimate is too large. +// ** It is better to err on the side of caution. +// ** +// ** Except, if the first solver() call generated a full-table scan in an outer +// ** loop then stop this analysis at the first full-scan, since the second +// ** solver() run might try to swap that full-scan for another in order to +// ** get the output into the correct order. In other words, we allow a +// ** rewrite like this: +// ** +// ** First Solver() Second Solver() +// ** |-- SCAN t1 |-- SCAN t2 +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** The purpose of this routine is to disallow rewrites such as: +// ** +// ** First Solver() Second Solver() +// ** |-- SEARCH t1 |-- SCAN t2 <--- bad! +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** See test cases in test/whereN.test for the real-world query that +// ** originally provoked this heuristic. +// */ +func _whereInterstageHeuristic(tls *libc.TLS, pWInfo uintptr) { + var i int32 + var iTab Tu8 + var p, pLoop uintptr + _, _, _, _ = i, iTab, p, pLoop + i = 0 + for { + if !(i < int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)) { + break + } + p = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(i)*104))).FpWLoop + if p == uintptr(0) { + break + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { + goto _1 + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_NULL)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != uint32(0) { + iTab = (*TWhereLoop)(unsafe.Pointer(p)).FiTab + pLoop = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpLoops + for { + if !(pLoop != 0) { + break + } + if int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab) != int32(int32(iTab)) { + goto _2 + } + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_CONSTRAINT)|libc.Int32FromInt32(WHERE_AUTO_INDEX)) != uint32(0) { + /* Auto-index and index-constrained loops allowed to remain */ + goto _2 + } + (*TWhereLoop)(unsafe.Pointer(pLoop)).Fprereq = uint64(-libc.Int32FromInt32(1)) /* Prevent 2nd solver() from using this one */ + goto _2 + _2: + ; + pLoop = (*TWhereLoop)(unsafe.Pointer(pLoop)).FpNextLoop + } + } else { + break + } + goto _1 + _1: + ; + i++ + } +} + // C documentation // // /* @@ -141892,7 +143205,7 @@ func _whereShortCut(tls *libc.TLS, pBuilder uintptr) (r int32) { if !(j < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)) { break } - pTerm = _whereScanInit(tls, bp, pWC, iCur, j, uint32(opMask), pIdx) + pTerm = _whereScanInit(tls, bp, pWC, iCur, j, uint32(uint32(opMask)), pIdx) for pTerm != 0 && (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqRight != 0 { pTerm = _whereScanNext(tls, bp) } @@ -141912,8 +143225,8 @@ func _whereShortCut(tls *libc.TLS, pBuilder uintptr) (r int32) { if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x20>>5)) != 0 || (*TSrcItem)(unsafe.Pointer(pItem)).FcolUsed&(*TIndex)(unsafe.Pointer(pIdx)).FcolNotIdxed == uint64(0) { *(*Tu32)(unsafe.Pointer(pLoop + 48)) |= uint32(WHERE_IDX_ONLY) } - (*TWhereLoop)(unsafe.Pointer(pLoop)).FnLTerm = uint16(j) - (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq = uint16(j) + (*TWhereLoop)(unsafe.Pointer(pLoop)).FnLTerm = uint16(uint16(j)) + (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq = uint16(uint16(j)) (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex = pIdx /* TUNING: Cost of a unique index lookup is 15 */ (*TWhereLoop)(unsafe.Pointer(pLoop)).FrRun = int16(39) /* 39==sqlite3LogEst(15) */ @@ -142082,7 +143395,7 @@ func _whereOmitNoopJoin(tls *libc.TLS, pWInfo uintptr, notReady TBitmask) (r TBi } if i != int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)-int32(1) { nByte = int32(uint64(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)-libc.Int32FromInt32(1)-i) * uint64(104)) - libc.Xmemmove(tls, pWInfo+856+uintptr(i)*104, pWInfo+856+uintptr(i+int32(1))*104, uint64(nByte)) + libc.Xmemmove(tls, pWInfo+856+uintptr(i)*104, pWInfo+856+uintptr(i+int32(1))*104, uint64(uint64(nByte))) } (*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel-- goto _1 @@ -142132,9 +143445,9 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasStat1) == uint32(0) { break } - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) if i >= int32(1) && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&reqFlags == reqFlags && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_INDEXED)) != uint32(0) { - if int32(nSearch) > int32((*TTable)(unsafe.Pointer(pTab)).FnRowLogEst) { + if int32(int32(nSearch)) > int32((*TTable)(unsafe.Pointer(pTab)).FnRowLogEst) { *(*Tu32)(unsafe.Pointer(pLoop + 48)) |= uint32(WHERE_BLOOMFILTER) *(*Tu32)(unsafe.Pointer(pLoop + 48)) &= uint32(^libc.Int32FromInt32(WHERE_IDX_ONLY)) } @@ -142147,6 +143460,68 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { } } +// C documentation +// +// /* +// ** Expression Node callback for sqlite3ExprCanReturnSubtype(). +// ** +// ** Only a function call is able to return a subtype. So if the node +// ** is not a function call, return WRC_Prune immediately. +// ** +// ** A function call is able to return a subtype if it has the +// ** SQLITE_RESULT_SUBTYPE property. +// ** +// ** Assume that every function is able to pass-through a subtype from +// ** one of its argument (using sqlite3_result_value()). Most functions +// ** are not this way, but we don't have a mechanism to distinguish those +// ** that are from those that are not, so assume they all work this way. +// ** That means that if one of its arguments is another function and that +// ** other function is able to return a subtype, then this function is +// ** able to return a subtype. +// */ +func _exprNodeCanReturnSubtype(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef uintptr + var n, v1 int32 + _, _, _, _ = db, n, pDef, v1 + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_FUNCTION) { + return int32(WRC_Prune) + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { + v1 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr + } else { + v1 = 0 + } + n = v1 + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + return int32(WRC_Prune) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Return TRUE if expression pExpr is able to return a subtype. +// ** +// ** A TRUE return does not guarantee that a subtype will be returned. +// ** It only indicates that a subtype return is possible. False positives +// ** are acceptable as they only disable an optimization. False negatives, +// ** on the other hand, can lead to incorrect answers. +// */ +func _sqlite3ExprCanReturnSubtype(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeCanReturnSubtype) + _sqlite3WalkExpr(tls, bp, pExpr) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) +} + // C documentation // // /* @@ -142161,9 +143536,9 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { // ** references to the corresponding column of the index. // */ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur int32, pTabItem uintptr) { - var db, p, pArg, pDef, pExpr, pTab uintptr - var i, j, n, v2 int32 - _, _, _, _, _, _, _, _, _, _ = db, i, j, n, p, pArg, pDef, pExpr, pTab, v2 + var i, j int32 + var p, pArg, pExpr, pTab uintptr + _, _, _, _, _, _ = i, j, p, pArg, pExpr, pTab pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable i = 0 for { @@ -142180,21 +143555,14 @@ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur i goto _1 } } - if _sqlite3ExprIsConstant(tls, pExpr) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) != 0 { goto _1 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) { - db = (*TParse)(unsafe.Pointer(pParse)).Fdb - if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { - v2 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr - } else { - v2 = 0 - } - n = v2 - pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) - if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { - goto _1 - } + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) && _sqlite3ExprCanReturnSubtype(tls, pParse, pExpr) != 0 { + /* Functions that might set a subtype should not be replaced by the + ** value taken from an expression index since the index omits the + ** subtype. https://sqlite.org/forum/forumpost/68d284c86b082c3e */ + goto _1 } p = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(32)) if p == uintptr(0) { @@ -142366,7 +143734,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** bits in a Bitmask */ if (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc > int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22514, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22659, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) return uintptr(0) } /* This function normally generates a nested loop for all tables in @@ -142374,7 +143742,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** only generate code for the first table in pTabList and assume that ** any cursors associated with subsequent tables are uninitialized. */ - if int32(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) != 0 { + if int32(int32(wctrlFlags))&int32(WHERE_OR_SUBCLAUSE) != 0 { v1 = int32(1) } else { v1 = (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc @@ -142389,9 +143757,9 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere */ nByteWInfo = int32(libc.Uint64FromInt64(960)) if nTabList > int32(1) { - nByteWInfo = int32(uint64(nByteWInfo) + uint64(nTabList-libc.Int32FromInt32(1))*libc.Uint64FromInt64(104)) + nByteWInfo = int32(uint64(uint64(nByteWInfo)) + uint64(nTabList-libc.Int32FromInt32(1))*libc.Uint64FromInt64(104)) } - pWInfo = _sqlite3DbMallocRawNN(tls, db, uint64(nByteWInfo)+uint64(104)) + pWInfo = _sqlite3DbMallocRawNN(tls, db, uint64(uint64(uint64(nByteWInfo))+uint64(104))) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { _sqlite3DbFree(tls, db, pWInfo) pWInfo = uintptr(0) @@ -142404,16 +143772,16 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere v2 = -libc.Int32FromInt32(1) *(*int32)(unsafe.Pointer(pWInfo + 40 + 1*4)) = v2 *(*int32)(unsafe.Pointer(pWInfo + 40)) = v2 - (*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel = uint8(nTabList) + (*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel = uint8(uint8(nTabList)) v3 = _sqlite3VdbeMakeLabel(tls, pParse) (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiContinue = v3 (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiBreak = v3 (*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags = wctrlFlags - (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiLimit = int16(iAuxArg) + (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiLimit = int16(int16(iAuxArg)) (*TWhereInfo)(unsafe.Pointer(pWInfo)).FsavedNQueryLoop = int32((*TParse)(unsafe.Pointer(pParse)).FnQueryLoop) (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect = pSelect libc.Xmemset(tls, pWInfo+65, 0, uint64(libc.UintptrFromInt32(0)+104)-uint64(libc.UintptrFromInt32(0)+65)) - libc.Xmemset(tls, pWInfo+856, 0, uint64(104)+uint64(nTabList)*uint64(104)) + libc.Xmemset(tls, pWInfo+856, 0, uint64(104)+uint64(uint64(nTabList))*uint64(104)) /* ONEPASS defaults to OFF */ pMaskSet = pWInfo + 592 (*TWhereMaskSet)(unsafe.Pointer(pMaskSet)).Fn = 0 @@ -142435,10 +143803,12 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if pOrderBy != 0 { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = int8((*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr) } - if int32(wctrlFlags)&int32(WHERE_WANT_DISTINCT) != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_DistinctOpt)) == uint32(0) { + if int32(int32(wctrlFlags))&int32(WHERE_WANT_DISTINCT) != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_DistinctOpt)) == uint32(0) { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_UNIQUE) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22542, 0) + if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FselFlags&uint32(SF_MultiValue) == uint32(0) { + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22687, 0) + } } else { /* Assign a bit from the bitmask to every term in the FROM clause. ** @@ -142522,7 +143892,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ; ii++ } - if int32(wctrlFlags)&int32(WHERE_WANT_DISTINCT) != 0 { + if int32(int32(wctrlFlags))&int32(WHERE_WANT_DISTINCT) != 0 { if (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_DistinctOpt)) != uint32(0) { /* Disable the DISTINCT optimization if SQLITE_DistinctOpt is set via ** sqlite3_test_ctrl(SQLITE_TESTCTRL_OPTIMIZATIONS,...) */ @@ -142570,6 +143940,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy != 0 { + _whereInterstageHeuristic(tls, pWInfo) _wherePathSolver(tls, pWInfo, int16(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut)+int32(1))) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto whereBeginError @@ -142600,7 +143971,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** in-line sqlite3WhereCodeOneLoopStart() for performance reasons. */ notReady = ^libc.Uint64FromInt32(0) - if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel) >= int32(2) && pResultSet != uintptr(0) && 0 == int32(wctrlFlags)&int32(WHERE_AGG_DISTINCT) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_OmitNoopJoin)) == uint32(0) { + if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel) >= int32(2) && pResultSet != uintptr(0) && 0 == int32(int32(wctrlFlags))&int32(WHERE_AGG_DISTINCT) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_OmitNoopJoin)) == uint32(0) { notReady = _whereOmitNoopJoin(tls, pWInfo, notReady) nTabList = int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel) } @@ -142631,10 +144002,10 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** use a one-pass approach, and this is not set accurately for scans ** that use the OR optimization. */ - if int32(wctrlFlags)&int32(WHERE_ONEPASS_DESIRED) != 0 { + if int32(int32(wctrlFlags))&int32(WHERE_ONEPASS_DESIRED) != 0 { wsFlags = int32((*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) bOnerow = libc.BoolInt32(wsFlags&int32(WHERE_ONEROW) != 0) - if bOnerow != 0 || 0 != int32(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) && !(int32((*TTable)(unsafe.Pointer((*(*TSrcItem)(unsafe.Pointer(pTabList + 8))).FpTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) && (0 == wsFlags&int32(WHERE_MULTI_OR) || int32(wctrlFlags)&int32(WHERE_DUPLICATES_OK) != 0) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_OnePass)) == uint32(0) { + if bOnerow != 0 || 0 != int32(int32(wctrlFlags))&int32(WHERE_ONEPASS_MULTIROW) && !(int32((*TTable)(unsafe.Pointer((*(*TSrcItem)(unsafe.Pointer(pTabList + 8))).FpTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) && (0 == wsFlags&int32(WHERE_MULTI_OR) || int32(int32(wctrlFlags))&int32(WHERE_DUPLICATES_OK) != 0) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_OnePass)) == uint32(0) { if bOnerow != 0 { v12 = int32(ONEPASS_SINGLE) } else { @@ -142642,7 +144013,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere } (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeOnePass = uint8(v12) if (*TTable)(unsafe.Pointer((*(*TSrcItem)(unsafe.Pointer(pTabList + 8))).FpTab)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) && wsFlags&int32(WHERE_IDX_ONLY) != 0 { - if int32(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) != 0 { + if int32(int32(wctrlFlags))&int32(WHERE_ONEPASS_MULTIROW) != 0 { bFordelete = uint8(OPFLAG_FORDELETE) } (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = uint32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) @@ -142673,7 +144044,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { /* noop */ } else { - if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_IDX_ONLY) == uint32(0) && int32(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 || int32((*TSrcItem)(unsafe.Pointer(pTabItem)).Ffg.Fjointype)&(libc.Int32FromInt32(JT_LTORJ)|libc.Int32FromInt32(JT_RIGHT)) != 0 { + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_IDX_ONLY) == uint32(0) && int32(int32(wctrlFlags))&int32(WHERE_OR_SUBCLAUSE) == 0 || int32((*TSrcItem)(unsafe.Pointer(pTabItem)).Ffg.Fjointype)&(libc.Int32FromInt32(JT_LTORJ)|libc.Int32FromInt32(JT_RIGHT)) != 0 { op = int32(OP_OpenRead) if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FeOnePass) != ONEPASS_OFF { op = int32(OP_OpenWrite) @@ -142698,7 +144069,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere } _sqlite3VdbeChangeP4(tls, v, -int32(1), uintptr(int64(n)), -int32(3)) } - _sqlite3VdbeChangeP5(tls, v, uint16(bFordelete)) + _sqlite3VdbeChangeP5(tls, v, uint16(uint16(bFordelete))) } else { _sqlite3TableLock(tls, pParse, iDb, (*TTable)(unsafe.Pointer(pTab)).Ftnum, uint8(0), (*TTable)(unsafe.Pointer(pTab)).FzName) } @@ -142709,7 +144080,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere pIx = (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex op1 = int32(OP_OpenRead) /* iAuxArg is always set to a positive value if ONEPASS is possible */ - if !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) && int32(uint32(*(*uint16)(unsafe.Pointer(pIx + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) && int32(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) != 0 { + if !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) && int32(uint32(*(*uint16)(unsafe.Pointer(pIx + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) && int32(int32(wctrlFlags))&int32(WHERE_OR_SUBCLAUSE) != 0 { /* This is one term of an OR-optimization using the PRIMARY KEY of a ** WITHOUT ROWID table. No need for a separate index */ iIndexCur = (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur @@ -142725,7 +144096,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere op1 = int32(OP_OpenWrite) *(*int32)(unsafe.Pointer(pWInfo + 40 + 1*4)) = iIndexCur } else { - if iAuxArg != 0 && int32(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) != 0 { + if iAuxArg != 0 && int32(int32(wctrlFlags))&int32(WHERE_OR_SUBCLAUSE) != 0 { iIndexCur = iAuxArg op1 = int32(OP_ReopenIdx) } else { @@ -142842,7 +144213,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere (*TWhereLevel)(unsafe.Pointer(pLevel)).FaddrBody = _sqlite3VdbeCurrentAddr(tls, v) notReady = _sqlite3WhereCodeOneLoopStart(tls, pParse, v, pWInfo, ii, pLevel, notReady) (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiContinue = (*TWhereLevel)(unsafe.Pointer(pLevel)).FaddrCont - if wsFlags1&int32(WHERE_MULTI_OR) == 0 && int32(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { + if wsFlags1&int32(WHERE_MULTI_OR) == 0 && int32(int32(wctrlFlags))&int32(WHERE_OR_SUBCLAUSE) == 0 { _ = addrExplain } goto _25 @@ -142854,6 +144225,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiEndWhere = _sqlite3VdbeCurrentAddr(tls, v) return pWInfo /* Jump here if malloc fails */ + goto whereBeginError whereBeginError: ; if pWInfo != 0 { @@ -142877,10 +144249,10 @@ whereBeginError: // ** sqlite3WhereBegin() for additional information. // */ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { - var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, r1, ws, x, v4, v7 int32 - var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr + var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, r1, ws, x, v4, v7 int32 + var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pTabList = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList @@ -143021,6 +144393,12 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { ws = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags) addr = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfPos), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin) if ws&int32(WHERE_IDX_ONLY) == 0 { + pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 + if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x20>>5)) != 0 { + n1 = (*TSrcItem)(unsafe.Pointer(pSrc)).FregResult + m = int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FnCol) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, n1, n1+m-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur) } if ws&int32(WHERE_INDEXED) != 0 || ws&int32(WHERE_MULTI_OR) != 0 && *(*uintptr)(unsafe.Pointer(&(*TWhereLevel)(unsafe.Pointer(pLevel)).Fu)) != 0 { @@ -143120,10 +144498,10 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { pPk = _sqlite3PrimaryKeyIndex(tls, pTab) x = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pPk)).FaiColumn + uintptr(x)*2))) } else { - x = int32(_sqlite3StorageColumnToTable(tls, pTab, int16(x))) + x = int32(_sqlite3StorageColumnToTable(tls, pTab, int16(int16(x)))) } } - x = int32(_sqlite3TableColumnToIndex(tls, pIdx1, int16(x))) + x = int32(_sqlite3TableColumnToIndex(tls, pIdx1, int16(int16(x)))) if x >= 0 { (*TVdbeOp)(unsafe.Pointer(pOp)).Fp2 = x (*TVdbeOp)(unsafe.Pointer(pOp)).Fp1 = (*TWhereLevel)(unsafe.Pointer(pLevel)).FiIdxCur @@ -143413,10 +144791,10 @@ func _nth_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) iVal = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8))) case int32(SQLITE_FLOAT): fVal = Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8))) - if float64(int64(fVal)) != fVal { + if float64(int64(int64(fVal))) != fVal { goto error_out } - iVal = int64(fVal) + iVal = int64(int64(fVal)) default: goto error_out } @@ -143434,9 +144812,10 @@ func _nth_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) _ = nArg _ = apArg return + goto error_out error_out: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22560, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22705, -int32(1)) } func _nth_valueFinalizeFunc(tls *libc.TLS, pCtx uintptr) { @@ -143618,7 +144997,7 @@ func _ntileStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { if (*TNtileCtx)(unsafe.Pointer(p)).FnTotal == 0 { (*TNtileCtx)(unsafe.Pointer(p)).FnParam = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apArg))) if (*TNtileCtx)(unsafe.Pointer(p)).FnParam <= 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22616, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22761, -int32(1)) } } (*TNtileCtx)(unsafe.Pointer(p)).FnTotal++ @@ -143645,13 +145024,13 @@ func _ntileValueFunc(tls *libc.TLS, pCtx uintptr) { if nSize == 0 { Xsqlite3_result_int64(tls, pCtx, (*TNtileCtx)(unsafe.Pointer(p)).FiRow+int64(1)) } else { - nLarge = (*TNtileCtx)(unsafe.Pointer(p)).FnTotal - (*TNtileCtx)(unsafe.Pointer(p)).FnParam*int64(nSize) + nLarge = (*TNtileCtx)(unsafe.Pointer(p)).FnTotal - (*TNtileCtx)(unsafe.Pointer(p)).FnParam*int64(int64(nSize)) iSmall = nLarge * int64(nSize+libc.Int32FromInt32(1)) iRow = (*TNtileCtx)(unsafe.Pointer(p)).FiRow if iRow < iSmall { Xsqlite3_result_int64(tls, pCtx, int64(1)+iRow/int64(nSize+libc.Int32FromInt32(1))) } else { - Xsqlite3_result_int64(tls, pCtx, int64(1)+nLarge+(iRow-iSmall)/int64(nSize)) + Xsqlite3_result_int64(tls, pCtx, int64(1)+nLarge+(iRow-iSmall)/int64(int64(nSize))) } } } @@ -143944,7 +145323,7 @@ func _windowFind(tls *libc.TLS, pParse uintptr, pList uintptr, zName uintptr) (r p = (*TWindow)(unsafe.Pointer(p)).FpNextWin } if p == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22661, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22806, libc.VaList(bp+8, zName)) } return p } @@ -143995,12 +145374,12 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin _sqlite3WindowChain(tls, pParse, pWin, pList) } if int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) == int32(TK_RANGE) && ((*TWindow)(unsafe.Pointer(pWin)).FpStart != 0 || (*TWindow)(unsafe.Pointer(pWin)).FpEnd != 0) && ((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy == uintptr(0) || (*TExprList)(unsafe.Pointer((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy)).FnExpr != int32(1)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22680, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22825, 0) } else { if (*TFuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TWindow)(unsafe.Pointer(pWin)).FpFilter != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22751, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22896, 0) } else { aUp = [8]struct { FzFunc uintptr @@ -144073,7 +145452,7 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin (*TWindow)(unsafe.Pointer(pWin)).FeEnd = uint8(aUp[i].FeEnd) (*TWindow)(unsafe.Pointer(pWin)).FeExclude = uint8(0) if int32((*TWindow)(unsafe.Pointer(pWin)).FeStart) == int32(TK_FOLLOWING) { - (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8134) + (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8259) } break } @@ -144222,7 +145601,7 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = int16(v4) (*TExpr)(unsafe.Pointer(pExpr)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpWin)).FiEphCsr *(*uintptr)(unsafe.Pointer(pExpr + 64)) = (*TWindowRewrite1)(unsafe.Pointer(p)).FpTab - (*TExpr)(unsafe.Pointer(pExpr)).Fflags = uint32(f) + (*TExpr)(unsafe.Pointer(pExpr)).Fflags = uint32(uint32(f)) } if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { return int32(WRC_Abort) @@ -144355,7 +145734,7 @@ func _disallowAggregatesInOrderByCb(tls *libc.TLS, pWalker uintptr, pExpr uintpt bp := tls.Alloc(16) defer tls.Free(16) if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_FUNCTION) && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22814, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) + _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22959, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) } return WRC_Continue } @@ -144496,7 +145875,7 @@ func _sqlite3WindowRewrite(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { ** keep everything legal in this case. */ if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1726)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1786)) } pSub = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(bp)), pSrc, pWhere, pGroupBy, pHaving, pSort, uint32(0), uintptr(0)) (*TSelect)(unsafe.Pointer(p)).FpSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), uintptr(0), uintptr(0)) @@ -144600,7 +145979,7 @@ func _sqlite3WindowListDelete(tls *libc.TLS, db uintptr, p uintptr) { // ** variable values in the expression tree. // */ func _sqlite3WindowOffsetExpr(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r uintptr) { - if 0 == _sqlite3ExprIsConstant(tls, pExpr) { + if 0 == _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) { if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameExprUnmap(tls, pParse, pExpr) } @@ -144641,24 +146020,25 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 ** frame boundary. */ if eStart == int32(TK_CURRENT) && eEnd == int32(TK_PRECEDING) || eStart == int32(TK_FOLLOWING) && (eEnd == int32(TK_PRECEDING) || eEnd == int32(TK_CURRENT)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22840, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22985, 0) goto windowAllocErr } pWin = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if pWin == uintptr(0) { goto windowAllocErr } - (*TWindow)(unsafe.Pointer(pWin)).FeFrmType = uint8(eType) - (*TWindow)(unsafe.Pointer(pWin)).FeStart = uint8(eStart) - (*TWindow)(unsafe.Pointer(pWin)).FeEnd = uint8(eEnd) - if int32(eExclude) == 0 && (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_WindowFunc)) != uint32(0) { + (*TWindow)(unsafe.Pointer(pWin)).FeFrmType = uint8(uint8(eType)) + (*TWindow)(unsafe.Pointer(pWin)).FeStart = uint8(uint8(eStart)) + (*TWindow)(unsafe.Pointer(pWin)).FeEnd = uint8(uint8(eEnd)) + if int32(int32(eExclude)) == 0 && (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_WindowFunc)) != uint32(0) { eExclude = uint8(TK_NO) } (*TWindow)(unsafe.Pointer(pWin)).FeExclude = eExclude - (*TWindow)(unsafe.Pointer(pWin)).FbImplicitFrame = uint8(bImplicitFrame) + (*TWindow)(unsafe.Pointer(pWin)).FbImplicitFrame = uint8(uint8(bImplicitFrame)) (*TWindow)(unsafe.Pointer(pWin)).FpEnd = _sqlite3WindowOffsetExpr(tls, pParse, pEnd) (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3WindowOffsetExpr(tls, pParse, pStart) return pWin + goto windowAllocErr windowAllocErr: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pEnd) @@ -144708,18 +146088,18 @@ func _sqlite3WindowChain(tls *libc.TLS, pParse uintptr, pWin uintptr, pList uint zErr = uintptr(0) /* Check for errors */ if (*TWindow)(unsafe.Pointer(pWin)).FpPartition != 0 { - zErr = __ccgo_ts + 22872 + zErr = __ccgo_ts + 23017 } else { if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 && (*TWindow)(unsafe.Pointer(pWin)).FpOrderBy != 0 { - zErr = __ccgo_ts + 22889 + zErr = __ccgo_ts + 23034 } else { if int32((*TWindow)(unsafe.Pointer(pExist)).FbImplicitFrame) == 0 { - zErr = __ccgo_ts + 22905 + zErr = __ccgo_ts + 23050 } } } if zErr != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22925, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23070, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) } else { (*TWindow)(unsafe.Pointer(pWin)).FpPartition = _sqlite3ExprListDup(tls, db, (*TWindow)(unsafe.Pointer(pExist)).FpPartition, 0) if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 { @@ -144743,7 +146123,7 @@ func _sqlite3WindowAttach(tls *libc.TLS, pParse uintptr, p uintptr, pWin uintptr *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(libc.Int32FromInt32(EP_WinFunc) | libc.Int32FromInt32(EP_FullSize)) (*TWindow)(unsafe.Pointer(pWin)).FpOwner = p if (*TExpr)(unsafe.Pointer(p)).Fflags&uint32(EP_Distinct) != 0 && int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) != int32(TK_FILTER) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22958, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23103, 0) } } else { _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pWin) @@ -144942,7 +146322,7 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regZero) if eCond >= int32(WINDOW_STARTING_NUM) { regString = _sqlite3GetTempReg(tls, pParse) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1652, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1666, -int32(1)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, _sqlite3VdbeCurrentAddr(tls, v)+int32(2), reg) _sqlite3VdbeChangeP5(tls, v, uint16(libc.Int32FromInt32(SQLITE_AFF_NUMERIC)|libc.Int32FromInt32(SQLITE_JUMPIFNULL))) } else { @@ -144961,11 +146341,11 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { } var _azErr = [5]uintptr{ - 0: __ccgo_ts + 23005, - 1: __ccgo_ts + 23058, - 2: __ccgo_ts + 22560, - 3: __ccgo_ts + 23109, - 4: __ccgo_ts + 23161, + 0: __ccgo_ts + 23150, + 1: __ccgo_ts + 23203, + 2: __ccgo_ts + 22705, + 3: __ccgo_ts + 23254, + 4: __ccgo_ts + 23306, } var _aOp1 = [5]int32{ @@ -145247,7 +146627,7 @@ func _windowAggStep(tls *libc.TLS, p uintptr, pMWin uintptr, csr int32, bInverse } _sqlite3VdbeAddOp3(tls, v, v5, bInverse, regArg, (*TWindow)(unsafe.Pointer(pWin)).FregAccum) _sqlite3VdbeAppendP4(tls, v, pFunc, -int32(7)) - _sqlite3VdbeChangeP5(tls, v, uint16(uint8(nArg))) + _sqlite3VdbeChangeP5(tls, v, uint16(uint8(uint8(nArg)))) if (*TWindow)(unsafe.Pointer(pWin)).FbExprArgs != 0 { _sqlite3ReleaseTempRange(tls, pParse, regArg, nArg) } @@ -145717,7 +147097,7 @@ func _windowCodeRangeTest(tls *libc.TLS, p uintptr, op int32, csr1 int32, regVal ** the add/subtract is skipped for these, as required. If reg1 is a NULL, ** then the arithmetic is performed, but since adding or subtracting from ** NULL is always NULL anyway, this case is handled as required too. */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1652, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1666, -int32(1)) addrGe = _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, 0, reg1) if op == int32(OP_Ge) && arith == int32(OP_Add) || op == int32(OP_Le) && arith == int32(OP_Subtract) { _sqlite3VdbeAddOp3(tls, v, op, reg2, lbl, reg1) @@ -146745,11 +148125,11 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { cnt++ if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != 0 || (*TSelect)(unsafe.Pointer(pLoop)).FpLimit != 0 { if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != uintptr(0) { - v1 = __ccgo_ts + 23211 + v1 = __ccgo_ts + 23356 } else { - v1 = __ccgo_ts + 23220 + v1 = __ccgo_ts + 23365 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23226, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23371, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) break } } @@ -146758,7 +148138,7 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { mxSelect = v2 } if v3 && v2 > 0 && cnt > mxSelect { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23268, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23413, 0) } } } @@ -146778,6 +148158,23 @@ func _attachWithToSelect(tls *libc.TLS, pParse uintptr, pSelect uintptr, pWith u return pSelect } +// C documentation +// +// /* Memory allocator for parser stack resizing. This is a thin wrapper around +// ** sqlite3_realloc() that includes a call to sqlite3FaultSim() to facilitate +// ** testing. +// */ +func _parserStackRealloc(tls *libc.TLS, pOld uintptr, newSize Tsqlite3_uint64) (r uintptr) { + var v1 uintptr + _ = v1 + if _sqlite3FaultSim(tls, int32(700)) != 0 { + v1 = uintptr(0) + } else { + v1 = Xsqlite3_realloc(tls, pOld, int32(int32(newSize))) + } + return v1 +} + // C documentation // // /* Construct a new Expr object from a single token */ @@ -146787,10 +148184,10 @@ func _tokenExpr(tls *libc.TLS, pParse uintptr, op int32, _t TToken) (r uintptr) *(*TToken)(unsafe.Pointer(bp)) = _t var p, v1 uintptr _, _ = p, v1 - p = _sqlite3DbMallocRawNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(72)+uint64((*(*TToken)(unsafe.Pointer(bp))).Fn)+uint64(1)) + p = _sqlite3DbMallocRawNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(uint64(72)+uint64((*(*TToken)(unsafe.Pointer(bp))).Fn)+uint64(1))) if p != 0 { /* memset(p, 0, sizeof(Expr)); */ - (*TExpr)(unsafe.Pointer(p)).Fop = uint8(op) + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(uint8(op)) (*TExpr)(unsafe.Pointer(p)).FaffExpr = 0 (*TExpr)(unsafe.Pointer(p)).Fflags = uint32(EP_Leaf) /* p->iAgg = -1; // Not required */ @@ -146827,7 +148224,7 @@ func _binaryToUnaryIfNull(tls *libc.TLS, pParse uintptr, pY uintptr, pA uintptr, _ = db db = (*TParse)(unsafe.Pointer(pParse)).Fdb if pA != 0 && pY != 0 && int32((*TExpr)(unsafe.Pointer(pY)).Fop) == int32(TK_NULL) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { - (*TExpr)(unsafe.Pointer(pA)).Fop = uint8(op) + (*TExpr)(unsafe.Pointer(pA)).Fop = uint8(uint8(op)) _sqlite3ExprDelete(tls, db, (*TExpr)(unsafe.Pointer(pA)).FpRight) (*TExpr)(unsafe.Pointer(pA)).FpRight = uintptr(0) } @@ -146847,7 +148244,7 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId _ = p p = _sqlite3ExprListAppend(tls, pParse, pPrior, uintptr(0)) if (hasCollate != 0 || sortOrder != -int32(1)) && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23302, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23447, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) } _sqlite3ExprListSetName(tls, pParse, p, pIdToken, int32(1)) return p @@ -146897,6 +148294,9 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser // ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser // ** sqlite3ParserCTX_* As sqlite3ParserARG_ except for %extra_context +// ** YYREALLOC Name of the realloc() function to use +// ** YYFREE Name of the free() function to use +// ** YYDYNSTACK True if stack space should be extended on heap // ** YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** YYNSTATE the combined number of states. @@ -146910,31 +148310,33 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** YY_NO_ACTION The yy_action[] code for no-op // ** YY_MIN_REDUCE Minimum value for reduce actions // ** YY_MAX_REDUCE Maximum value for reduce actions +// ** YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type TYYMINORTYPE = struct { Fyy0 [0]TToken - Fyy33 [0]uintptr - Fyy41 [0]uintptr - Fyy47 [0]uintptr - Fyy131 [0]uintptr - Fyy180 [0]TTrigEvent - Fyy231 [0]struct { + Fyy14 [0]uintptr + Fyy59 [0]uintptr + Fyy67 [0]uintptr + Fyy122 [0]uintptr + Fyy132 [0]uintptr + Fyy144 [0]int32 + Fyy168 [0]uintptr + Fyy203 [0]uintptr + Fyy211 [0]uintptr + Fyy269 [0]TOnOrUsing + Fyy286 [0]TTrigEvent + Fyy383 [0]struct { Fvalue int32 Fmask int32 } - Fyy254 [0]uintptr - Fyy285 [0]Tu32 - Fyy322 [0]uintptr - Fyy385 [0]uintptr - Fyy394 [0]int32 - Fyy444 [0]uintptr - Fyy516 [0]Tu8 - Fyy521 [0]uintptr - Fyy522 [0]uintptr - Fyy528 [0]uintptr - Fyy561 [0]TOnOrUsing - Fyy595 [0]TFrameBound + Fyy391 [0]Tu32 + Fyy427 [0]uintptr + Fyy454 [0]uintptr + Fyy462 [0]Tu8 + Fyy509 [0]TFrameBound + Fyy555 [0]uintptr Fyyinit int32 F__ccgo_pad20 [12]byte } @@ -146952,6 +148354,13 @@ type YYMINORTYPE = TYYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -147004,2152 +148413,2194 @@ type YYMINORTYPE = TYYMINORTYPE // ** yy_default[] Default action for each state. // ** // *********** Begin parsing tables **********************************************/ -var _yy_action = [2100]uint16{ - 0: uint16(572), - 1: uint16(210), - 2: uint16(572), - 3: uint16(119), - 4: uint16(116), - 5: uint16(231), - 6: uint16(572), - 7: uint16(119), - 8: uint16(116), - 9: uint16(231), - 10: uint16(572), - 11: uint16(1317), - 12: uint16(379), - 13: uint16(1296), - 14: uint16(410), - 15: uint16(566), - 16: uint16(566), - 17: uint16(566), - 18: uint16(572), - 19: uint16(411), - 20: uint16(380), - 21: uint16(1317), - 22: uint16(1279), - 23: uint16(42), - 24: uint16(42), - 25: uint16(42), - 26: uint16(42), - 27: uint16(210), - 28: uint16(1529), - 29: uint16(72), - 30: uint16(72), - 31: uint16(974), - 32: uint16(421), - 33: uint16(42), - 34: uint16(42), - 35: uint16(495), - 36: uint16(305), - 37: uint16(281), - 38: uint16(305), - 39: uint16(975), - 40: uint16(399), - 41: uint16(72), - 42: uint16(72), - 43: uint16(126), - 44: uint16(127), - 45: uint16(81), - 46: uint16(1217), - 47: uint16(1217), - 48: uint16(1054), - 49: uint16(1057), - 50: uint16(1044), - 51: uint16(1044), - 52: uint16(124), - 53: uint16(124), - 54: uint16(125), - 55: uint16(125), - 56: uint16(125), - 57: uint16(125), - 58: uint16(480), - 59: uint16(411), - 60: uint16(1244), - 61: uint16(1), - 62: uint16(1), - 63: uint16(578), - 64: uint16(2), - 65: uint16(1248), - 66: uint16(554), - 67: uint16(119), - 68: uint16(116), - 69: uint16(231), - 70: uint16(319), - 71: uint16(484), - 72: uint16(147), - 73: uint16(484), - 74: uint16(528), - 75: uint16(119), - 76: uint16(116), - 77: uint16(231), - 78: uint16(533), - 79: uint16(1330), - 80: uint16(419), - 81: uint16(527), - 82: uint16(143), - 83: uint16(126), - 84: uint16(127), - 85: uint16(81), - 86: uint16(1217), - 87: uint16(1217), - 88: uint16(1054), - 89: uint16(1057), - 90: uint16(1044), - 91: uint16(1044), - 92: uint16(124), - 93: uint16(124), - 94: uint16(125), - 95: uint16(125), - 96: uint16(125), - 97: uint16(125), - 98: uint16(119), - 99: uint16(116), - 100: uint16(231), - 101: uint16(329), - 102: uint16(123), - 103: uint16(123), - 104: uint16(123), - 105: uint16(123), - 106: uint16(122), - 107: uint16(122), - 108: uint16(121), - 109: uint16(121), - 110: uint16(121), - 111: uint16(120), - 112: uint16(117), - 113: uint16(448), - 114: uint16(286), - 115: uint16(286), - 116: uint16(286), - 117: uint16(286), - 118: uint16(446), - 119: uint16(446), - 120: uint16(446), - 121: uint16(1568), - 122: uint16(378), - 123: uint16(1570), - 124: uint16(1193), - 125: uint16(377), - 126: uint16(1164), - 127: uint16(569), - 128: uint16(1164), - 129: uint16(569), - 130: uint16(411), - 131: uint16(1568), - 132: uint16(541), - 133: uint16(261), - 134: uint16(228), - 135: uint16(448), - 136: uint16(102), - 137: uint16(146), - 138: uint16(453), - 139: uint16(318), - 140: uint16(563), - 141: uint16(242), - 142: uint16(123), - 143: uint16(123), - 144: uint16(123), - 145: uint16(123), - 146: uint16(122), - 147: uint16(122), - 148: uint16(121), - 149: uint16(121), - 150: uint16(121), - 151: uint16(120), - 152: uint16(117), - 153: uint16(448), - 154: uint16(126), - 155: uint16(127), - 156: uint16(81), - 157: uint16(1217), - 158: uint16(1217), - 159: uint16(1054), - 160: uint16(1057), - 161: uint16(1044), - 162: uint16(1044), - 163: uint16(124), - 164: uint16(124), - 165: uint16(125), - 166: uint16(125), - 167: uint16(125), - 168: uint16(125), - 169: uint16(143), - 170: uint16(296), - 171: uint16(1193), - 172: uint16(341), - 173: uint16(452), - 174: uint16(121), - 175: uint16(121), - 176: uint16(121), - 177: uint16(120), - 178: uint16(117), - 179: uint16(448), - 180: uint16(128), - 181: uint16(1193), - 182: uint16(1194), - 183: uint16(1193), - 184: uint16(149), - 185: uint16(445), - 186: uint16(444), - 187: uint16(572), - 188: uint16(120), - 189: uint16(117), - 190: uint16(448), - 191: uint16(125), - 192: uint16(125), - 193: uint16(125), - 194: uint16(125), - 195: uint16(118), - 196: uint16(123), - 197: uint16(123), - 198: uint16(123), - 199: uint16(123), - 200: uint16(122), - 201: uint16(122), - 202: uint16(121), - 203: uint16(121), - 204: uint16(121), - 205: uint16(120), - 206: uint16(117), - 207: uint16(448), - 208: uint16(458), - 209: uint16(114), - 210: uint16(13), - 211: uint16(13), - 212: uint16(550), - 213: uint16(123), - 214: uint16(123), - 215: uint16(123), - 216: uint16(123), - 217: uint16(122), - 218: uint16(122), - 219: uint16(121), - 220: uint16(121), - 221: uint16(121), - 222: uint16(120), - 223: uint16(117), - 224: uint16(448), - 225: uint16(424), - 226: uint16(318), - 227: uint16(563), - 228: uint16(1193), - 229: uint16(1194), - 230: uint16(1193), - 231: uint16(150), - 232: uint16(1225), - 233: uint16(411), - 234: uint16(1225), - 235: uint16(125), - 236: uint16(125), - 237: uint16(125), - 238: uint16(125), - 239: uint16(123), - 240: uint16(123), - 241: uint16(123), - 242: uint16(123), - 243: uint16(122), - 244: uint16(122), - 245: uint16(121), - 246: uint16(121), - 247: uint16(121), - 248: uint16(120), - 249: uint16(117), - 250: uint16(448), - 251: uint16(469), - 252: uint16(344), - 253: uint16(1041), - 254: uint16(1041), - 255: uint16(1055), - 256: uint16(1058), - 257: uint16(126), - 258: uint16(127), - 259: uint16(81), - 260: uint16(1217), - 261: uint16(1217), - 262: uint16(1054), - 263: uint16(1057), - 264: uint16(1044), - 265: uint16(1044), - 266: uint16(124), - 267: uint16(124), - 268: uint16(125), - 269: uint16(125), - 270: uint16(125), - 271: uint16(125), - 272: uint16(1282), - 273: uint16(526), - 274: uint16(224), - 275: uint16(1193), - 276: uint16(572), - 277: uint16(411), - 278: uint16(226), - 279: uint16(519), - 280: uint16(177), - 281: uint16(83), - 282: uint16(84), - 283: uint16(123), - 284: uint16(123), - 285: uint16(123), - 286: uint16(123), - 287: uint16(122), - 288: uint16(122), - 289: uint16(121), - 290: uint16(121), - 291: uint16(121), - 292: uint16(120), - 293: uint16(117), - 294: uint16(448), - 295: uint16(1010), - 296: uint16(16), - 297: uint16(16), - 298: uint16(1193), - 299: uint16(134), - 300: uint16(134), - 301: uint16(126), - 302: uint16(127), - 303: uint16(81), - 304: uint16(1217), - 305: uint16(1217), - 306: uint16(1054), - 307: uint16(1057), - 308: uint16(1044), - 309: uint16(1044), - 310: uint16(124), - 311: uint16(124), - 312: uint16(125), - 313: uint16(125), - 314: uint16(125), - 315: uint16(125), - 316: uint16(123), - 317: uint16(123), - 318: uint16(123), - 319: uint16(123), - 320: uint16(122), - 321: uint16(122), - 322: uint16(121), - 323: uint16(121), - 324: uint16(121), - 325: uint16(120), - 326: uint16(117), - 327: uint16(448), - 328: uint16(1045), - 329: uint16(550), - 330: uint16(1193), - 331: uint16(375), - 332: uint16(1193), - 333: uint16(1194), - 334: uint16(1193), - 335: uint16(254), - 336: uint16(1438), - 337: uint16(401), - 338: uint16(508), - 339: uint16(505), - 340: uint16(504), - 341: uint16(112), - 342: uint16(564), - 343: uint16(570), +var _yy_action = [2142]uint16{ + 0: uint16(576), + 1: uint16(128), + 2: uint16(125), + 3: uint16(232), + 4: uint16(1622), + 5: uint16(549), + 6: uint16(576), + 7: uint16(1290), + 8: uint16(1281), + 9: uint16(576), + 10: uint16(328), + 11: uint16(576), + 12: uint16(1300), + 13: uint16(212), + 14: uint16(576), + 15: uint16(128), + 16: uint16(125), + 17: uint16(232), + 18: uint16(578), + 19: uint16(412), + 20: uint16(578), + 21: uint16(391), + 22: uint16(1542), + 23: uint16(51), + 24: uint16(51), + 25: uint16(523), + 26: uint16(405), + 27: uint16(1293), + 28: uint16(529), + 29: uint16(51), + 30: uint16(51), + 31: uint16(983), + 32: uint16(51), + 33: uint16(51), + 34: uint16(81), + 35: uint16(81), + 36: uint16(1107), + 37: uint16(61), + 38: uint16(61), + 39: uint16(984), + 40: uint16(1107), + 41: uint16(1292), + 42: uint16(380), + 43: uint16(135), + 44: uint16(136), + 45: uint16(90), + 46: uint16(1228), + 47: uint16(1228), + 48: uint16(1063), + 49: uint16(1066), + 50: uint16(1053), + 51: uint16(1053), + 52: uint16(133), + 53: uint16(133), + 54: uint16(134), + 55: uint16(134), + 56: uint16(134), + 57: uint16(134), + 58: uint16(1577), + 59: uint16(412), + 60: uint16(287), + 61: uint16(287), + 62: uint16(7), + 63: uint16(287), + 64: uint16(287), + 65: uint16(422), + 66: uint16(1050), + 67: uint16(1050), + 68: uint16(1064), + 69: uint16(1067), + 70: uint16(289), + 71: uint16(556), + 72: uint16(492), + 73: uint16(573), + 74: uint16(524), + 75: uint16(561), + 76: uint16(573), + 77: uint16(497), + 78: uint16(561), + 79: uint16(482), + 80: uint16(530), + 81: uint16(262), + 82: uint16(229), + 83: uint16(135), + 84: uint16(136), + 85: uint16(90), + 86: uint16(1228), + 87: uint16(1228), + 88: uint16(1063), + 89: uint16(1066), + 90: uint16(1053), + 91: uint16(1053), + 92: uint16(133), + 93: uint16(133), + 94: uint16(134), + 95: uint16(134), + 96: uint16(134), + 97: uint16(134), + 98: uint16(128), + 99: uint16(125), + 100: uint16(232), + 101: uint16(1506), + 102: uint16(132), + 103: uint16(132), + 104: uint16(132), + 105: uint16(132), + 106: uint16(131), + 107: uint16(131), + 108: uint16(130), + 109: uint16(130), + 110: uint16(130), + 111: uint16(129), + 112: uint16(126), + 113: uint16(450), + 114: uint16(1204), + 115: uint16(1255), + 116: uint16(1), + 117: uint16(1), + 118: uint16(582), + 119: uint16(2), + 120: uint16(1259), + 121: uint16(1571), + 122: uint16(420), + 123: uint16(1582), + 124: uint16(379), + 125: uint16(320), + 126: uint16(1174), + 127: uint16(153), + 128: uint16(1174), + 129: uint16(1584), + 130: uint16(412), + 131: uint16(378), + 132: uint16(1582), + 133: uint16(543), + 134: uint16(1341), + 135: uint16(330), + 136: uint16(111), + 137: uint16(570), + 138: uint16(570), + 139: uint16(570), + 140: uint16(293), + 141: uint16(1054), + 142: uint16(132), + 143: uint16(132), + 144: uint16(132), + 145: uint16(132), + 146: uint16(131), + 147: uint16(131), + 148: uint16(130), + 149: uint16(130), + 150: uint16(130), + 151: uint16(129), + 152: uint16(126), + 153: uint16(450), + 154: uint16(135), + 155: uint16(136), + 156: uint16(90), + 157: uint16(1228), + 158: uint16(1228), + 159: uint16(1063), + 160: uint16(1066), + 161: uint16(1053), + 162: uint16(1053), + 163: uint16(133), + 164: uint16(133), + 165: uint16(134), + 166: uint16(134), + 167: uint16(134), + 168: uint16(134), + 169: uint16(287), + 170: uint16(287), + 171: uint16(1204), + 172: uint16(1205), + 173: uint16(1204), + 174: uint16(255), + 175: uint16(287), + 176: uint16(287), + 177: uint16(510), + 178: uint16(507), + 179: uint16(506), + 180: uint16(137), + 181: uint16(455), + 182: uint16(573), + 183: uint16(212), + 184: uint16(561), + 185: uint16(447), + 186: uint16(446), + 187: uint16(505), + 188: uint16(573), + 189: uint16(1616), + 190: uint16(561), + 191: uint16(134), + 192: uint16(134), + 193: uint16(134), + 194: uint16(134), + 195: uint16(127), + 196: uint16(400), + 197: uint16(243), + 198: uint16(132), + 199: uint16(132), + 200: uint16(132), + 201: uint16(132), + 202: uint16(131), + 203: uint16(131), + 204: uint16(130), + 205: uint16(130), + 206: uint16(130), + 207: uint16(129), + 208: uint16(126), + 209: uint16(450), + 210: uint16(282), + 211: uint16(471), + 212: uint16(345), + 213: uint16(132), + 214: uint16(132), + 215: uint16(132), + 216: uint16(132), + 217: uint16(131), + 218: uint16(131), + 219: uint16(130), + 220: uint16(130), + 221: uint16(130), + 222: uint16(129), + 223: uint16(126), + 224: uint16(450), + 225: uint16(574), + 226: uint16(155), + 227: uint16(936), + 228: uint16(936), + 229: uint16(454), + 230: uint16(227), + 231: uint16(521), + 232: uint16(1236), + 233: uint16(412), + 234: uint16(1236), + 235: uint16(134), + 236: uint16(134), + 237: uint16(134), + 238: uint16(134), + 239: uint16(132), + 240: uint16(132), + 241: uint16(132), + 242: uint16(132), + 243: uint16(131), + 244: uint16(131), + 245: uint16(130), + 246: uint16(130), + 247: uint16(130), + 248: uint16(129), + 249: uint16(126), + 250: uint16(450), + 251: uint16(130), + 252: uint16(130), + 253: uint16(130), + 254: uint16(129), + 255: uint16(126), + 256: uint16(450), + 257: uint16(135), + 258: uint16(136), + 259: uint16(90), + 260: uint16(1228), + 261: uint16(1228), + 262: uint16(1063), + 263: uint16(1066), + 264: uint16(1053), + 265: uint16(1053), + 266: uint16(133), + 267: uint16(133), + 268: uint16(134), + 269: uint16(134), + 270: uint16(134), + 271: uint16(134), + 272: uint16(128), + 273: uint16(125), + 274: uint16(232), + 275: uint16(450), + 276: uint16(576), + 277: uint16(412), + 278: uint16(397), + 279: uint16(1249), + 280: uint16(180), + 281: uint16(92), + 282: uint16(93), + 283: uint16(132), + 284: uint16(132), + 285: uint16(132), + 286: uint16(132), + 287: uint16(131), + 288: uint16(131), + 289: uint16(130), + 290: uint16(130), + 291: uint16(130), + 292: uint16(129), + 293: uint16(126), + 294: uint16(450), + 295: uint16(381), + 296: uint16(387), + 297: uint16(1204), + 298: uint16(383), + 299: uint16(81), + 300: uint16(81), + 301: uint16(135), + 302: uint16(136), + 303: uint16(90), + 304: uint16(1228), + 305: uint16(1228), + 306: uint16(1063), + 307: uint16(1066), + 308: uint16(1053), + 309: uint16(1053), + 310: uint16(133), + 311: uint16(133), + 312: uint16(134), + 313: uint16(134), + 314: uint16(134), + 315: uint16(134), + 316: uint16(132), + 317: uint16(132), + 318: uint16(132), + 319: uint16(132), + 320: uint16(131), + 321: uint16(131), + 322: uint16(130), + 323: uint16(130), + 324: uint16(130), + 325: uint16(129), + 326: uint16(126), + 327: uint16(450), + 328: uint16(131), + 329: uint16(131), + 330: uint16(130), + 331: uint16(130), + 332: uint16(130), + 333: uint16(129), + 334: uint16(126), + 335: uint16(450), + 336: uint16(556), + 337: uint16(1204), + 338: uint16(302), + 339: uint16(319), + 340: uint16(567), + 341: uint16(121), + 342: uint16(568), + 343: uint16(480), 344: uint16(4), - 345: uint16(929), - 346: uint16(929), - 347: uint16(435), - 348: uint16(503), - 349: uint16(342), - 350: uint16(464), - 351: uint16(330), - 352: uint16(362), - 353: uint16(396), - 354: uint16(1238), - 355: uint16(1193), - 356: uint16(1194), - 357: uint16(1193), - 358: uint16(567), - 359: uint16(572), - 360: uint16(123), - 361: uint16(123), - 362: uint16(123), - 363: uint16(123), - 364: uint16(122), - 365: uint16(122), - 366: uint16(121), - 367: uint16(121), - 368: uint16(121), - 369: uint16(120), - 370: uint16(117), - 371: uint16(448), - 372: uint16(286), - 373: uint16(286), - 374: uint16(371), - 375: uint16(1581), - 376: uint16(1607), - 377: uint16(445), - 378: uint16(444), - 379: uint16(155), - 380: uint16(411), - 381: uint16(449), - 382: uint16(72), - 383: uint16(72), - 384: uint16(1289), - 385: uint16(569), - 386: uint16(1222), - 387: uint16(1193), - 388: uint16(1194), - 389: uint16(1193), - 390: uint16(86), - 391: uint16(1224), - 392: uint16(273), - 393: uint16(561), - 394: uint16(547), - 395: uint16(520), - 396: uint16(520), - 397: uint16(572), - 398: uint16(99), - 399: uint16(1223), - 400: uint16(6), - 401: uint16(1281), - 402: uint16(476), - 403: uint16(143), - 404: uint16(126), - 405: uint16(127), - 406: uint16(81), - 407: uint16(1217), - 408: uint16(1217), - 409: uint16(1054), - 410: uint16(1057), - 411: uint16(1044), - 412: uint16(1044), - 413: uint16(124), - 414: uint16(124), - 415: uint16(125), - 416: uint16(125), - 417: uint16(125), - 418: uint16(125), - 419: uint16(554), - 420: uint16(13), - 421: uint16(13), - 422: uint16(1031), - 423: uint16(511), - 424: uint16(1225), - 425: uint16(1193), - 426: uint16(1225), - 427: uint16(553), - 428: uint16(110), - 429: uint16(110), - 430: uint16(224), - 431: uint16(572), - 432: uint16(1239), - 433: uint16(177), - 434: uint16(572), - 435: uint16(429), - 436: uint16(111), - 437: uint16(199), - 438: uint16(449), - 439: uint16(573), - 440: uint16(449), - 441: uint16(432), - 442: uint16(1555), - 443: uint16(1019), - 444: uint16(327), - 445: uint16(555), - 446: uint16(1193), - 447: uint16(272), - 448: uint16(289), - 449: uint16(370), - 450: uint16(514), - 451: uint16(365), - 452: uint16(513), - 453: uint16(259), - 454: uint16(72), - 455: uint16(72), - 456: uint16(547), - 457: uint16(72), - 458: uint16(72), - 459: uint16(361), - 460: uint16(318), - 461: uint16(563), - 462: uint16(1613), - 463: uint16(123), - 464: uint16(123), - 465: uint16(123), - 466: uint16(123), - 467: uint16(122), - 468: uint16(122), - 469: uint16(121), - 470: uint16(121), - 471: uint16(121), - 472: uint16(120), - 473: uint16(117), - 474: uint16(448), - 475: uint16(1019), - 476: uint16(1019), - 477: uint16(1021), - 478: uint16(1022), - 479: uint16(28), - 480: uint16(286), - 481: uint16(286), - 482: uint16(1193), - 483: uint16(1194), - 484: uint16(1193), - 485: uint16(1159), - 486: uint16(572), - 487: uint16(1612), - 488: uint16(411), - 489: uint16(904), - 490: uint16(192), - 491: uint16(554), - 492: uint16(358), - 493: uint16(569), - 494: uint16(554), - 495: uint16(940), - 496: uint16(537), - 497: uint16(521), - 498: uint16(1159), - 499: uint16(437), - 500: uint16(415), - 501: uint16(1159), - 502: uint16(556), - 503: uint16(1193), - 504: uint16(1194), - 505: uint16(1193), - 506: uint16(572), - 507: uint16(548), - 508: uint16(548), - 509: uint16(52), - 510: uint16(52), - 511: uint16(216), - 512: uint16(126), - 513: uint16(127), - 514: uint16(81), - 515: uint16(1217), - 516: uint16(1217), - 517: uint16(1054), - 518: uint16(1057), - 519: uint16(1044), - 520: uint16(1044), - 521: uint16(124), - 522: uint16(124), - 523: uint16(125), - 524: uint16(125), - 525: uint16(125), - 526: uint16(125), - 527: uint16(1193), - 528: uint16(478), - 529: uint16(136), - 530: uint16(136), - 531: uint16(411), - 532: uint16(286), - 533: uint16(286), - 534: uint16(1493), - 535: uint16(509), - 536: uint16(122), - 537: uint16(122), - 538: uint16(121), - 539: uint16(121), - 540: uint16(121), - 541: uint16(120), - 542: uint16(117), - 543: uint16(448), - 544: uint16(1010), - 545: uint16(569), - 546: uint16(522), - 547: uint16(219), - 548: uint16(545), - 549: uint16(545), - 550: uint16(318), - 551: uint16(563), - 552: uint16(143), - 553: uint16(6), - 554: uint16(536), - 555: uint16(126), - 556: uint16(127), - 557: uint16(81), - 558: uint16(1217), - 559: uint16(1217), - 560: uint16(1054), - 561: uint16(1057), - 562: uint16(1044), - 563: uint16(1044), - 564: uint16(124), - 565: uint16(124), - 566: uint16(125), - 567: uint16(125), - 568: uint16(125), - 569: uint16(125), - 570: uint16(1557), - 571: uint16(123), - 572: uint16(123), - 573: uint16(123), - 574: uint16(123), - 575: uint16(122), - 576: uint16(122), - 577: uint16(121), - 578: uint16(121), - 579: uint16(121), - 580: uint16(120), - 581: uint16(117), - 582: uint16(448), - 583: uint16(489), - 584: uint16(1193), - 585: uint16(1194), - 586: uint16(1193), - 587: uint16(486), - 588: uint16(283), - 589: uint16(1270), - 590: uint16(960), - 591: uint16(254), - 592: uint16(1193), - 593: uint16(375), - 594: uint16(508), - 595: uint16(505), - 596: uint16(504), - 597: uint16(1193), - 598: uint16(342), - 599: uint16(574), - 600: uint16(1193), - 601: uint16(574), - 602: uint16(411), - 603: uint16(294), - 604: uint16(503), - 605: uint16(960), - 606: uint16(879), - 607: uint16(193), - 608: uint16(484), - 609: uint16(318), - 610: uint16(563), - 611: uint16(386), - 612: uint16(292), - 613: uint16(382), - 614: uint16(123), - 615: uint16(123), - 616: uint16(123), - 617: uint16(123), - 618: uint16(122), - 619: uint16(122), - 620: uint16(121), - 621: uint16(121), - 622: uint16(121), - 623: uint16(120), - 624: uint16(117), - 625: uint16(448), - 626: uint16(126), - 627: uint16(127), - 628: uint16(81), - 629: uint16(1217), - 630: uint16(1217), - 631: uint16(1054), - 632: uint16(1057), - 633: uint16(1044), - 634: uint16(1044), - 635: uint16(124), - 636: uint16(124), - 637: uint16(125), - 638: uint16(125), - 639: uint16(125), - 640: uint16(125), - 641: uint16(411), - 642: uint16(396), - 643: uint16(1139), - 644: uint16(1193), - 645: uint16(872), - 646: uint16(101), - 647: uint16(286), - 648: uint16(286), - 649: uint16(1193), - 650: uint16(1194), - 651: uint16(1193), - 652: uint16(375), - 653: uint16(1096), - 654: uint16(1193), - 655: uint16(1194), - 656: uint16(1193), - 657: uint16(1193), - 658: uint16(1194), - 659: uint16(1193), - 660: uint16(569), - 661: uint16(459), - 662: uint16(33), - 663: uint16(375), - 664: uint16(235), - 665: uint16(126), - 666: uint16(127), - 667: uint16(81), - 668: uint16(1217), - 669: uint16(1217), - 670: uint16(1054), - 671: uint16(1057), - 672: uint16(1044), - 673: uint16(1044), - 674: uint16(124), - 675: uint16(124), - 676: uint16(125), - 677: uint16(125), - 678: uint16(125), - 679: uint16(125), - 680: uint16(1437), - 681: uint16(962), - 682: uint16(572), - 683: uint16(230), - 684: uint16(961), - 685: uint16(123), - 686: uint16(123), - 687: uint16(123), - 688: uint16(123), - 689: uint16(122), - 690: uint16(122), - 691: uint16(121), - 692: uint16(121), - 693: uint16(121), - 694: uint16(120), - 695: uint16(117), - 696: uint16(448), - 697: uint16(1159), - 698: uint16(230), - 699: uint16(1193), - 700: uint16(158), - 701: uint16(1193), - 702: uint16(1194), - 703: uint16(1193), - 704: uint16(1556), - 705: uint16(13), - 706: uint16(13), - 707: uint16(303), - 708: uint16(960), - 709: uint16(1233), - 710: uint16(1159), - 711: uint16(154), - 712: uint16(411), - 713: uint16(1159), - 714: uint16(375), - 715: uint16(1584), - 716: uint16(1177), - 717: uint16(5), - 718: uint16(371), - 719: uint16(1581), - 720: uint16(431), - 721: uint16(1239), - 722: uint16(3), - 723: uint16(960), - 724: uint16(123), - 725: uint16(123), - 726: uint16(123), - 727: uint16(123), - 728: uint16(122), - 729: uint16(122), - 730: uint16(121), - 731: uint16(121), - 732: uint16(121), - 733: uint16(120), - 734: uint16(117), - 735: uint16(448), - 736: uint16(126), - 737: uint16(127), - 738: uint16(81), - 739: uint16(1217), - 740: uint16(1217), - 741: uint16(1054), - 742: uint16(1057), - 743: uint16(1044), - 744: uint16(1044), - 745: uint16(124), - 746: uint16(124), - 747: uint16(125), - 748: uint16(125), - 749: uint16(125), - 750: uint16(125), - 751: uint16(411), - 752: uint16(210), - 753: uint16(571), - 754: uint16(1193), - 755: uint16(1032), - 756: uint16(1193), - 757: uint16(1194), - 758: uint16(1193), - 759: uint16(1193), - 760: uint16(390), - 761: uint16(855), - 762: uint16(156), - 763: uint16(1555), - 764: uint16(376), - 765: uint16(404), - 766: uint16(1101), - 767: uint16(1101), - 768: uint16(492), - 769: uint16(572), - 770: uint16(469), - 771: uint16(344), - 772: uint16(1322), - 773: uint16(1322), - 774: uint16(1555), - 775: uint16(126), - 776: uint16(127), - 777: uint16(81), - 778: uint16(1217), - 779: uint16(1217), - 780: uint16(1054), - 781: uint16(1057), - 782: uint16(1044), - 783: uint16(1044), - 784: uint16(124), - 785: uint16(124), - 786: uint16(125), - 787: uint16(125), - 788: uint16(125), - 789: uint16(125), - 790: uint16(130), - 791: uint16(572), - 792: uint16(13), - 793: uint16(13), - 794: uint16(532), - 795: uint16(123), - 796: uint16(123), - 797: uint16(123), - 798: uint16(123), - 799: uint16(122), - 800: uint16(122), - 801: uint16(121), - 802: uint16(121), - 803: uint16(121), - 804: uint16(120), - 805: uint16(117), - 806: uint16(448), - 807: uint16(304), - 808: uint16(572), - 809: uint16(457), - 810: uint16(229), - 811: uint16(1193), - 812: uint16(1194), - 813: uint16(1193), - 814: uint16(13), - 815: uint16(13), - 816: uint16(1193), - 817: uint16(1194), - 818: uint16(1193), - 819: uint16(1300), - 820: uint16(467), - 821: uint16(1270), - 822: uint16(411), - 823: uint16(1320), - 824: uint16(1320), - 825: uint16(1555), - 826: uint16(1015), - 827: uint16(457), - 828: uint16(456), - 829: uint16(436), - 830: uint16(301), - 831: uint16(72), - 832: uint16(72), - 833: uint16(1268), - 834: uint16(123), - 835: uint16(123), - 836: uint16(123), - 837: uint16(123), - 838: uint16(122), - 839: uint16(122), - 840: uint16(121), - 841: uint16(121), - 842: uint16(121), - 843: uint16(120), - 844: uint16(117), - 845: uint16(448), - 846: uint16(126), - 847: uint16(127), - 848: uint16(81), - 849: uint16(1217), - 850: uint16(1217), - 851: uint16(1054), - 852: uint16(1057), - 853: uint16(1044), - 854: uint16(1044), - 855: uint16(124), - 856: uint16(124), - 857: uint16(125), - 858: uint16(125), - 859: uint16(125), - 860: uint16(125), - 861: uint16(411), - 862: uint16(384), - 863: uint16(1076), - 864: uint16(1159), - 865: uint16(286), - 866: uint16(286), - 867: uint16(421), - 868: uint16(314), - 869: uint16(280), - 870: uint16(280), - 871: uint16(287), - 872: uint16(287), - 873: uint16(461), - 874: uint16(408), - 875: uint16(407), - 876: uint16(1539), - 877: uint16(1159), - 878: uint16(569), - 879: uint16(572), - 880: uint16(1159), - 881: uint16(1196), - 882: uint16(569), - 883: uint16(409), - 884: uint16(569), - 885: uint16(126), - 886: uint16(127), - 887: uint16(81), - 888: uint16(1217), - 889: uint16(1217), - 890: uint16(1054), - 891: uint16(1057), - 892: uint16(1044), - 893: uint16(1044), - 894: uint16(124), - 895: uint16(124), - 896: uint16(125), - 897: uint16(125), - 898: uint16(125), - 899: uint16(125), - 900: uint16(457), - 901: uint16(1485), - 902: uint16(13), - 903: uint16(13), - 904: uint16(1541), - 905: uint16(123), - 906: uint16(123), - 907: uint16(123), - 908: uint16(123), - 909: uint16(122), - 910: uint16(122), - 911: uint16(121), - 912: uint16(121), - 913: uint16(121), - 914: uint16(120), - 915: uint16(117), - 916: uint16(448), - 917: uint16(202), - 918: uint16(572), - 919: uint16(462), - 920: uint16(1587), - 921: uint16(578), - 922: uint16(2), - 923: uint16(1248), - 924: uint16(843), - 925: uint16(844), - 926: uint16(845), - 927: uint16(1563), - 928: uint16(319), - 929: uint16(409), - 930: uint16(147), - 931: uint16(6), - 932: uint16(411), - 933: uint16(257), - 934: uint16(256), - 935: uint16(255), - 936: uint16(208), - 937: uint16(1330), - 938: uint16(9), - 939: uint16(1196), - 940: uint16(264), - 941: uint16(72), - 942: uint16(72), - 943: uint16(1436), - 944: uint16(123), - 945: uint16(123), - 946: uint16(123), - 947: uint16(123), - 948: uint16(122), - 949: uint16(122), - 950: uint16(121), - 951: uint16(121), - 952: uint16(121), - 953: uint16(120), - 954: uint16(117), - 955: uint16(448), - 956: uint16(126), - 957: uint16(127), - 958: uint16(81), - 959: uint16(1217), - 960: uint16(1217), - 961: uint16(1054), - 962: uint16(1057), - 963: uint16(1044), - 964: uint16(1044), - 965: uint16(124), - 966: uint16(124), - 967: uint16(125), - 968: uint16(125), - 969: uint16(125), - 970: uint16(125), - 971: uint16(572), - 972: uint16(286), - 973: uint16(286), - 974: uint16(572), - 975: uint16(1213), - 976: uint16(411), - 977: uint16(577), - 978: uint16(315), - 979: uint16(1248), - 980: uint16(421), - 981: uint16(371), - 982: uint16(1581), - 983: uint16(356), - 984: uint16(319), - 985: uint16(569), - 986: uint16(147), - 987: uint16(495), - 988: uint16(529), - 989: uint16(1644), - 990: uint16(397), - 991: uint16(935), - 992: uint16(495), - 993: uint16(1330), - 994: uint16(71), - 995: uint16(71), - 996: uint16(934), - 997: uint16(72), - 998: uint16(72), - 999: uint16(242), - 1000: uint16(1328), - 1001: uint16(105), - 1002: uint16(81), - 1003: uint16(1217), - 1004: uint16(1217), - 1005: uint16(1054), - 1006: uint16(1057), - 1007: uint16(1044), - 1008: uint16(1044), - 1009: uint16(124), - 1010: uint16(124), - 1011: uint16(125), - 1012: uint16(125), - 1013: uint16(125), - 1014: uint16(125), - 1015: uint16(123), - 1016: uint16(123), - 1017: uint16(123), - 1018: uint16(123), - 1019: uint16(122), - 1020: uint16(122), - 1021: uint16(121), - 1022: uint16(121), - 1023: uint16(121), - 1024: uint16(120), - 1025: uint16(117), - 1026: uint16(448), - 1027: uint16(1117), - 1028: uint16(286), - 1029: uint16(286), - 1030: uint16(1422), - 1031: uint16(452), - 1032: uint16(1528), - 1033: uint16(1213), - 1034: uint16(443), - 1035: uint16(286), - 1036: uint16(286), - 1037: uint16(1492), - 1038: uint16(1355), - 1039: uint16(313), - 1040: uint16(478), - 1041: uint16(569), - 1042: uint16(1118), - 1043: uint16(454), - 1044: uint16(351), - 1045: uint16(495), - 1046: uint16(354), - 1047: uint16(1266), - 1048: uint16(569), - 1049: uint16(209), - 1050: uint16(572), - 1051: uint16(418), - 1052: uint16(179), - 1053: uint16(572), - 1054: uint16(1031), - 1055: uint16(242), - 1056: uint16(385), - 1057: uint16(1119), - 1058: uint16(523), - 1059: uint16(123), - 1060: uint16(123), - 1061: uint16(123), - 1062: uint16(123), - 1063: uint16(122), - 1064: uint16(122), - 1065: uint16(121), - 1066: uint16(121), - 1067: uint16(121), - 1068: uint16(120), - 1069: uint16(117), - 1070: uint16(448), - 1071: uint16(1020), - 1072: uint16(108), - 1073: uint16(72), - 1074: uint16(72), - 1075: uint16(1019), - 1076: uint16(13), - 1077: uint16(13), - 1078: uint16(915), - 1079: uint16(572), - 1080: uint16(1498), - 1081: uint16(572), - 1082: uint16(286), - 1083: uint16(286), - 1084: uint16(98), - 1085: uint16(530), - 1086: uint16(1537), - 1087: uint16(452), - 1088: uint16(916), - 1089: uint16(1334), - 1090: uint16(1329), - 1091: uint16(203), - 1092: uint16(411), - 1093: uint16(286), - 1094: uint16(286), - 1095: uint16(569), - 1096: uint16(152), - 1097: uint16(211), - 1098: uint16(1498), - 1099: uint16(1500), - 1100: uint16(426), - 1101: uint16(569), - 1102: uint16(56), - 1103: uint16(56), - 1104: uint16(57), - 1105: uint16(57), - 1106: uint16(569), - 1107: uint16(1019), - 1108: uint16(1019), - 1109: uint16(1021), - 1110: uint16(447), - 1111: uint16(572), - 1112: uint16(411), - 1113: uint16(531), - 1114: uint16(12), - 1115: uint16(297), - 1116: uint16(126), - 1117: uint16(127), - 1118: uint16(81), - 1119: uint16(1217), - 1120: uint16(1217), - 1121: uint16(1054), - 1122: uint16(1057), - 1123: uint16(1044), - 1124: uint16(1044), - 1125: uint16(124), - 1126: uint16(124), - 1127: uint16(125), - 1128: uint16(125), - 1129: uint16(125), - 1130: uint16(125), - 1131: uint16(572), - 1132: uint16(411), - 1133: uint16(867), - 1134: uint16(15), - 1135: uint16(15), - 1136: uint16(126), - 1137: uint16(127), - 1138: uint16(81), - 1139: uint16(1217), - 1140: uint16(1217), - 1141: uint16(1054), - 1142: uint16(1057), - 1143: uint16(1044), - 1144: uint16(1044), - 1145: uint16(124), - 1146: uint16(124), - 1147: uint16(125), - 1148: uint16(125), - 1149: uint16(125), - 1150: uint16(125), - 1151: uint16(373), - 1152: uint16(529), - 1153: uint16(264), - 1154: uint16(44), - 1155: uint16(44), - 1156: uint16(126), - 1157: uint16(115), - 1158: uint16(81), - 1159: uint16(1217), - 1160: uint16(1217), - 1161: uint16(1054), - 1162: uint16(1057), - 1163: uint16(1044), - 1164: uint16(1044), - 1165: uint16(124), - 1166: uint16(124), - 1167: uint16(125), - 1168: uint16(125), - 1169: uint16(125), - 1170: uint16(125), - 1171: uint16(1498), - 1172: uint16(478), - 1173: uint16(1271), - 1174: uint16(417), - 1175: uint16(123), - 1176: uint16(123), - 1177: uint16(123), - 1178: uint16(123), - 1179: uint16(122), - 1180: uint16(122), - 1181: uint16(121), - 1182: uint16(121), - 1183: uint16(121), - 1184: uint16(120), - 1185: uint16(117), - 1186: uint16(448), - 1187: uint16(205), - 1188: uint16(1213), - 1189: uint16(495), - 1190: uint16(430), - 1191: uint16(867), - 1192: uint16(468), - 1193: uint16(322), - 1194: uint16(495), - 1195: uint16(123), - 1196: uint16(123), - 1197: uint16(123), - 1198: uint16(123), - 1199: uint16(122), - 1200: uint16(122), - 1201: uint16(121), - 1202: uint16(121), - 1203: uint16(121), - 1204: uint16(120), - 1205: uint16(117), - 1206: uint16(448), - 1207: uint16(572), - 1208: uint16(557), - 1209: uint16(1140), - 1210: uint16(1642), - 1211: uint16(1422), - 1212: uint16(1642), - 1213: uint16(543), - 1214: uint16(572), - 1215: uint16(123), - 1216: uint16(123), - 1217: uint16(123), - 1218: uint16(123), - 1219: uint16(122), - 1220: uint16(122), - 1221: uint16(121), - 1222: uint16(121), - 1223: uint16(121), - 1224: uint16(120), - 1225: uint16(117), - 1226: uint16(448), - 1227: uint16(572), - 1228: uint16(1422), - 1229: uint16(572), - 1230: uint16(13), - 1231: uint16(13), - 1232: uint16(542), - 1233: uint16(323), - 1234: uint16(1325), - 1235: uint16(411), - 1236: uint16(334), - 1237: uint16(58), - 1238: uint16(58), - 1239: uint16(349), - 1240: uint16(1422), - 1241: uint16(1170), - 1242: uint16(326), - 1243: uint16(286), - 1244: uint16(286), - 1245: uint16(549), - 1246: uint16(1213), - 1247: uint16(300), - 1248: uint16(895), - 1249: uint16(530), - 1250: uint16(45), - 1251: uint16(45), - 1252: uint16(59), - 1253: uint16(59), - 1254: uint16(1140), - 1255: uint16(1643), - 1256: uint16(569), - 1257: uint16(1643), - 1258: uint16(565), - 1259: uint16(417), - 1260: uint16(127), - 1261: uint16(81), - 1262: uint16(1217), - 1263: uint16(1217), - 1264: uint16(1054), - 1265: uint16(1057), - 1266: uint16(1044), - 1267: uint16(1044), - 1268: uint16(124), - 1269: uint16(124), - 1270: uint16(125), - 1271: uint16(125), - 1272: uint16(125), - 1273: uint16(125), - 1274: uint16(1367), - 1275: uint16(373), - 1276: uint16(500), - 1277: uint16(290), - 1278: uint16(1193), - 1279: uint16(512), - 1280: uint16(1366), - 1281: uint16(427), - 1282: uint16(394), - 1283: uint16(394), - 1284: uint16(393), - 1285: uint16(275), - 1286: uint16(391), - 1287: uint16(896), - 1288: uint16(1138), - 1289: uint16(852), - 1290: uint16(478), - 1291: uint16(258), - 1292: uint16(1422), - 1293: uint16(1170), - 1294: uint16(463), - 1295: uint16(1159), - 1296: uint16(12), - 1297: uint16(331), - 1298: uint16(428), - 1299: uint16(333), - 1300: uint16(1117), - 1301: uint16(460), - 1302: uint16(236), - 1303: uint16(258), - 1304: uint16(325), - 1305: uint16(460), - 1306: uint16(544), - 1307: uint16(1544), - 1308: uint16(1159), - 1309: uint16(1098), - 1310: uint16(491), - 1311: uint16(1159), - 1312: uint16(324), - 1313: uint16(1098), - 1314: uint16(440), - 1315: uint16(1118), - 1316: uint16(335), - 1317: uint16(516), - 1318: uint16(123), - 1319: uint16(123), - 1320: uint16(123), - 1321: uint16(123), - 1322: uint16(122), - 1323: uint16(122), - 1324: uint16(121), - 1325: uint16(121), - 1326: uint16(121), - 1327: uint16(120), - 1328: uint16(117), - 1329: uint16(448), - 1330: uint16(1119), - 1331: uint16(318), - 1332: uint16(563), - 1333: uint16(1138), - 1334: uint16(572), - 1335: uint16(1193), - 1336: uint16(1194), - 1337: uint16(1193), - 1338: uint16(112), - 1339: uint16(564), - 1340: uint16(201), + 345: uint16(555), + 346: uint16(1149), + 347: uint16(1657), + 348: uint16(1628), + 349: uint16(1657), + 350: uint16(45), + 351: uint16(128), + 352: uint16(125), + 353: uint16(232), + 354: uint16(1204), + 355: uint16(1205), + 356: uint16(1204), + 357: uint16(1250), + 358: uint16(571), + 359: uint16(1169), + 360: uint16(132), + 361: uint16(132), + 362: uint16(132), + 363: uint16(132), + 364: uint16(131), + 365: uint16(131), + 366: uint16(130), + 367: uint16(130), + 368: uint16(130), + 369: uint16(129), + 370: uint16(126), + 371: uint16(450), + 372: uint16(1169), + 373: uint16(287), + 374: uint16(287), + 375: uint16(1169), + 376: uint16(1019), + 377: uint16(576), + 378: uint16(422), + 379: uint16(1019), + 380: uint16(412), + 381: uint16(451), + 382: uint16(1602), + 383: uint16(582), + 384: uint16(2), + 385: uint16(1259), + 386: uint16(573), + 387: uint16(44), + 388: uint16(561), + 389: uint16(95), + 390: uint16(320), + 391: uint16(110), + 392: uint16(153), + 393: uint16(565), + 394: uint16(1204), + 395: uint16(1205), + 396: uint16(1204), + 397: uint16(522), + 398: uint16(522), + 399: uint16(1341), + 400: uint16(81), + 401: uint16(81), + 402: uint16(7), + 403: uint16(44), + 404: uint16(135), + 405: uint16(136), + 406: uint16(90), + 407: uint16(1228), + 408: uint16(1228), + 409: uint16(1063), + 410: uint16(1066), + 411: uint16(1053), + 412: uint16(1053), + 413: uint16(133), + 414: uint16(133), + 415: uint16(134), + 416: uint16(134), + 417: uint16(134), + 418: uint16(134), + 419: uint16(295), + 420: uint16(1149), + 421: uint16(1658), + 422: uint16(1040), + 423: uint16(1658), + 424: uint16(1204), + 425: uint16(1147), + 426: uint16(319), + 427: uint16(567), + 428: uint16(119), + 429: uint16(119), + 430: uint16(343), + 431: uint16(466), + 432: uint16(331), + 433: uint16(343), + 434: uint16(287), + 435: uint16(287), + 436: uint16(120), + 437: uint16(556), + 438: uint16(451), + 439: uint16(577), + 440: uint16(451), + 441: uint16(1169), + 442: uint16(1169), + 443: uint16(1028), + 444: uint16(319), + 445: uint16(567), + 446: uint16(438), + 447: uint16(573), + 448: uint16(210), + 449: uint16(561), + 450: uint16(1339), + 451: uint16(1451), + 452: uint16(546), + 453: uint16(531), + 454: uint16(1169), + 455: uint16(1169), + 456: uint16(1598), + 457: uint16(1169), + 458: uint16(1169), + 459: uint16(416), + 460: uint16(319), + 461: uint16(567), + 462: uint16(243), + 463: uint16(132), + 464: uint16(132), + 465: uint16(132), + 466: uint16(132), + 467: uint16(131), + 468: uint16(131), + 469: uint16(130), + 470: uint16(130), + 471: uint16(130), + 472: uint16(129), + 473: uint16(126), + 474: uint16(450), + 475: uint16(1028), + 476: uint16(1028), + 477: uint16(1030), + 478: uint16(1031), + 479: uint16(35), + 480: uint16(44), + 481: uint16(1204), + 482: uint16(1205), + 483: uint16(1204), + 484: uint16(472), + 485: uint16(287), + 486: uint16(287), + 487: uint16(1328), + 488: uint16(412), + 489: uint16(1307), + 490: uint16(372), + 491: uint16(1595), + 492: uint16(359), + 493: uint16(225), + 494: uint16(454), + 495: uint16(1204), + 496: uint16(195), + 497: uint16(1328), + 498: uint16(573), + 499: uint16(1147), + 500: uint16(561), + 501: uint16(1333), + 502: uint16(1333), + 503: uint16(274), + 504: uint16(576), + 505: uint16(1188), + 506: uint16(576), + 507: uint16(340), + 508: uint16(46), + 509: uint16(196), + 510: uint16(537), + 511: uint16(217), + 512: uint16(135), + 513: uint16(136), + 514: uint16(90), + 515: uint16(1228), + 516: uint16(1228), + 517: uint16(1063), + 518: uint16(1066), + 519: uint16(1053), + 520: uint16(1053), + 521: uint16(133), + 522: uint16(133), + 523: uint16(134), + 524: uint16(134), + 525: uint16(134), + 526: uint16(134), + 527: uint16(19), + 528: uint16(19), + 529: uint16(19), + 530: uint16(19), + 531: uint16(412), + 532: uint16(581), + 533: uint16(1204), + 534: uint16(1259), + 535: uint16(511), + 536: uint16(1204), + 537: uint16(319), + 538: uint16(567), + 539: uint16(320), + 540: uint16(944), + 541: uint16(153), + 542: uint16(425), + 543: uint16(491), + 544: uint16(430), + 545: uint16(943), + 546: uint16(1204), + 547: uint16(488), + 548: uint16(1341), + 549: uint16(1450), + 550: uint16(532), + 551: uint16(1277), + 552: uint16(1204), + 553: uint16(1205), + 554: uint16(1204), + 555: uint16(135), + 556: uint16(136), + 557: uint16(90), + 558: uint16(1228), + 559: uint16(1228), + 560: uint16(1063), + 561: uint16(1066), + 562: uint16(1053), + 563: uint16(1053), + 564: uint16(133), + 565: uint16(133), + 566: uint16(134), + 567: uint16(134), + 568: uint16(134), + 569: uint16(134), + 570: uint16(575), + 571: uint16(132), + 572: uint16(132), + 573: uint16(132), + 574: uint16(132), + 575: uint16(131), + 576: uint16(131), + 577: uint16(130), + 578: uint16(130), + 579: uint16(130), + 580: uint16(129), + 581: uint16(126), + 582: uint16(450), + 583: uint16(287), + 584: uint16(287), + 585: uint16(528), + 586: uint16(287), + 587: uint16(287), + 588: uint16(372), + 589: uint16(1595), + 590: uint16(1204), + 591: uint16(1205), + 592: uint16(1204), + 593: uint16(1204), + 594: uint16(1205), + 595: uint16(1204), + 596: uint16(573), + 597: uint16(486), + 598: uint16(561), + 599: uint16(573), + 600: uint16(889), + 601: uint16(561), + 602: uint16(412), + 603: uint16(1204), + 604: uint16(1205), + 605: uint16(1204), + 606: uint16(886), + 607: uint16(40), + 608: uint16(22), + 609: uint16(22), + 610: uint16(220), + 611: uint16(243), + 612: uint16(525), + 613: uint16(1449), + 614: uint16(132), + 615: uint16(132), + 616: uint16(132), + 617: uint16(132), + 618: uint16(131), + 619: uint16(131), + 620: uint16(130), + 621: uint16(130), + 622: uint16(130), + 623: uint16(129), + 624: uint16(126), + 625: uint16(450), + 626: uint16(135), + 627: uint16(136), + 628: uint16(90), + 629: uint16(1228), + 630: uint16(1228), + 631: uint16(1063), + 632: uint16(1066), + 633: uint16(1053), + 634: uint16(1053), + 635: uint16(133), + 636: uint16(133), + 637: uint16(134), + 638: uint16(134), + 639: uint16(134), + 640: uint16(134), + 641: uint16(412), + 642: uint16(180), + 643: uint16(454), + 644: uint16(1204), + 645: uint16(879), + 646: uint16(255), + 647: uint16(287), + 648: uint16(287), + 649: uint16(510), + 650: uint16(507), + 651: uint16(506), + 652: uint16(372), + 653: uint16(1595), + 654: uint16(1568), + 655: uint16(1331), + 656: uint16(1331), + 657: uint16(576), + 658: uint16(889), + 659: uint16(505), + 660: uint16(573), + 661: uint16(44), + 662: uint16(561), + 663: uint16(559), + 664: uint16(1207), + 665: uint16(135), + 666: uint16(136), + 667: uint16(90), + 668: uint16(1228), + 669: uint16(1228), + 670: uint16(1063), + 671: uint16(1066), + 672: uint16(1053), + 673: uint16(1053), + 674: uint16(133), + 675: uint16(133), + 676: uint16(134), + 677: uint16(134), + 678: uint16(134), + 679: uint16(134), + 680: uint16(81), + 681: uint16(81), + 682: uint16(422), + 683: uint16(576), + 684: uint16(377), + 685: uint16(132), + 686: uint16(132), + 687: uint16(132), + 688: uint16(132), + 689: uint16(131), + 690: uint16(131), + 691: uint16(130), + 692: uint16(130), + 693: uint16(130), + 694: uint16(129), + 695: uint16(126), + 696: uint16(450), + 697: uint16(297), + 698: uint16(287), + 699: uint16(287), + 700: uint16(460), + 701: uint16(1204), + 702: uint16(1205), + 703: uint16(1204), + 704: uint16(1204), + 705: uint16(534), + 706: uint16(19), + 707: uint16(19), + 708: uint16(448), + 709: uint16(448), + 710: uint16(448), + 711: uint16(573), + 712: uint16(412), + 713: uint16(561), + 714: uint16(230), + 715: uint16(436), + 716: uint16(1187), + 717: uint16(535), + 718: uint16(319), + 719: uint16(567), + 720: uint16(363), + 721: uint16(432), + 722: uint16(1207), + 723: uint16(1435), + 724: uint16(132), + 725: uint16(132), + 726: uint16(132), + 727: uint16(132), + 728: uint16(131), + 729: uint16(131), + 730: uint16(130), + 731: uint16(130), + 732: uint16(130), + 733: uint16(129), + 734: uint16(126), + 735: uint16(450), + 736: uint16(135), + 737: uint16(136), + 738: uint16(90), + 739: uint16(1228), + 740: uint16(1228), + 741: uint16(1063), + 742: uint16(1066), + 743: uint16(1053), + 744: uint16(1053), + 745: uint16(133), + 746: uint16(133), + 747: uint16(134), + 748: uint16(134), + 749: uint16(134), + 750: uint16(134), + 751: uint16(412), + 752: uint16(211), + 753: uint16(949), + 754: uint16(1169), + 755: uint16(1041), + 756: uint16(1110), + 757: uint16(1110), + 758: uint16(494), + 759: uint16(547), + 760: uint16(547), + 761: uint16(1204), + 762: uint16(1205), + 763: uint16(1204), + 764: uint16(7), + 765: uint16(539), + 766: uint16(1570), + 767: uint16(1169), + 768: uint16(376), + 769: uint16(576), + 770: uint16(1169), + 771: uint16(5), + 772: uint16(1204), + 773: uint16(486), + 774: uint16(3), + 775: uint16(135), + 776: uint16(136), + 777: uint16(90), + 778: uint16(1228), + 779: uint16(1228), + 780: uint16(1063), + 781: uint16(1066), + 782: uint16(1053), + 783: uint16(1053), + 784: uint16(133), + 785: uint16(133), + 786: uint16(134), + 787: uint16(134), + 788: uint16(134), + 789: uint16(134), + 790: uint16(576), + 791: uint16(513), + 792: uint16(19), + 793: uint16(19), + 794: uint16(427), + 795: uint16(132), + 796: uint16(132), + 797: uint16(132), + 798: uint16(132), + 799: uint16(131), + 800: uint16(131), + 801: uint16(130), + 802: uint16(130), + 803: uint16(130), + 804: uint16(129), + 805: uint16(126), + 806: uint16(450), + 807: uint16(305), + 808: uint16(1204), + 809: uint16(433), + 810: uint16(225), + 811: uint16(1204), + 812: uint16(385), + 813: uint16(19), + 814: uint16(19), + 815: uint16(273), + 816: uint16(290), + 817: uint16(371), + 818: uint16(516), + 819: uint16(366), + 820: uint16(515), + 821: uint16(260), + 822: uint16(412), + 823: uint16(538), + 824: uint16(1568), + 825: uint16(549), + 826: uint16(1024), + 827: uint16(362), + 828: uint16(437), + 829: uint16(1204), + 830: uint16(1205), + 831: uint16(1204), + 832: uint16(902), + 833: uint16(1552), + 834: uint16(132), + 835: uint16(132), + 836: uint16(132), + 837: uint16(132), + 838: uint16(131), + 839: uint16(131), + 840: uint16(130), + 841: uint16(130), + 842: uint16(130), + 843: uint16(129), + 844: uint16(126), + 845: uint16(450), + 846: uint16(135), + 847: uint16(136), + 848: uint16(90), + 849: uint16(1228), + 850: uint16(1228), + 851: uint16(1063), + 852: uint16(1066), + 853: uint16(1053), + 854: uint16(1053), + 855: uint16(133), + 856: uint16(133), + 857: uint16(134), + 858: uint16(134), + 859: uint16(134), + 860: uint16(134), + 861: uint16(412), + 862: uint16(1435), + 863: uint16(514), + 864: uint16(1281), + 865: uint16(1204), + 866: uint16(1205), + 867: uint16(1204), + 868: uint16(1204), + 869: uint16(1205), + 870: uint16(1204), + 871: uint16(903), + 872: uint16(48), + 873: uint16(342), + 874: uint16(1568), + 875: uint16(1568), + 876: uint16(1279), + 877: uint16(1627), + 878: uint16(1568), + 879: uint16(911), + 880: uint16(576), + 881: uint16(129), + 882: uint16(126), + 883: uint16(450), + 884: uint16(110), + 885: uint16(135), + 886: uint16(136), + 887: uint16(90), + 888: uint16(1228), + 889: uint16(1228), + 890: uint16(1063), + 891: uint16(1066), + 892: uint16(1053), + 893: uint16(1053), + 894: uint16(133), + 895: uint16(133), + 896: uint16(134), + 897: uint16(134), + 898: uint16(134), + 899: uint16(134), + 900: uint16(265), + 901: uint16(576), + 902: uint16(459), + 903: uint16(19), + 904: uint16(19), + 905: uint16(132), + 906: uint16(132), + 907: uint16(132), + 908: uint16(132), + 909: uint16(131), + 910: uint16(131), + 911: uint16(130), + 912: uint16(130), + 913: uint16(130), + 914: uint16(129), + 915: uint16(126), + 916: uint16(450), + 917: uint16(1345), + 918: uint16(204), + 919: uint16(576), + 920: uint16(459), + 921: uint16(458), + 922: uint16(50), + 923: uint16(47), + 924: uint16(19), + 925: uint16(19), + 926: uint16(49), + 927: uint16(434), + 928: uint16(1105), + 929: uint16(573), + 930: uint16(497), + 931: uint16(561), + 932: uint16(412), + 933: uint16(428), + 934: uint16(108), + 935: uint16(1224), + 936: uint16(1569), + 937: uint16(1554), + 938: uint16(376), + 939: uint16(205), + 940: uint16(550), + 941: uint16(550), + 942: uint16(81), + 943: uint16(81), + 944: uint16(132), + 945: uint16(132), + 946: uint16(132), + 947: uint16(132), + 948: uint16(131), + 949: uint16(131), + 950: uint16(130), + 951: uint16(130), + 952: uint16(130), + 953: uint16(129), + 954: uint16(126), + 955: uint16(450), + 956: uint16(135), + 957: uint16(136), + 958: uint16(90), + 959: uint16(1228), + 960: uint16(1228), + 961: uint16(1063), + 962: uint16(1066), + 963: uint16(1053), + 964: uint16(1053), + 965: uint16(133), + 966: uint16(133), + 967: uint16(134), + 968: uint16(134), + 969: uint16(134), + 970: uint16(134), + 971: uint16(480), + 972: uint16(576), + 973: uint16(1204), + 974: uint16(576), + 975: uint16(1541), + 976: uint16(412), + 977: uint16(1435), + 978: uint16(969), + 979: uint16(315), + 980: uint16(1659), + 981: uint16(398), + 982: uint16(284), + 983: uint16(497), + 984: uint16(969), + 985: uint16(893), + 986: uint16(1569), + 987: uint16(1569), + 988: uint16(376), + 989: uint16(376), + 990: uint16(1569), + 991: uint16(461), + 992: uint16(376), + 993: uint16(1224), + 994: uint16(459), + 995: uint16(80), + 996: uint16(80), + 997: uint16(81), + 998: uint16(81), + 999: uint16(497), + 1000: uint16(374), + 1001: uint16(114), + 1002: uint16(90), + 1003: uint16(1228), + 1004: uint16(1228), + 1005: uint16(1063), + 1006: uint16(1066), + 1007: uint16(1053), + 1008: uint16(1053), + 1009: uint16(133), + 1010: uint16(133), + 1011: uint16(134), + 1012: uint16(134), + 1013: uint16(134), + 1014: uint16(134), + 1015: uint16(132), + 1016: uint16(132), + 1017: uint16(132), + 1018: uint16(132), + 1019: uint16(131), + 1020: uint16(131), + 1021: uint16(130), + 1022: uint16(130), + 1023: uint16(130), + 1024: uint16(129), + 1025: uint16(126), + 1026: uint16(450), + 1027: uint16(1204), + 1028: uint16(1505), + 1029: uint16(576), + 1030: uint16(1204), + 1031: uint16(1205), + 1032: uint16(1204), + 1033: uint16(1366), + 1034: uint16(316), + 1035: uint16(486), + 1036: uint16(281), + 1037: uint16(281), + 1038: uint16(497), + 1039: uint16(431), + 1040: uint16(557), + 1041: uint16(288), + 1042: uint16(288), + 1043: uint16(402), + 1044: uint16(1340), + 1045: uint16(471), + 1046: uint16(345), + 1047: uint16(298), + 1048: uint16(429), + 1049: uint16(573), + 1050: uint16(576), + 1051: uint16(561), + 1052: uint16(81), + 1053: uint16(81), + 1054: uint16(573), + 1055: uint16(374), + 1056: uint16(561), + 1057: uint16(971), + 1058: uint16(386), + 1059: uint16(132), + 1060: uint16(132), + 1061: uint16(132), + 1062: uint16(132), + 1063: uint16(131), + 1064: uint16(131), + 1065: uint16(130), + 1066: uint16(130), + 1067: uint16(130), + 1068: uint16(129), + 1069: uint16(126), + 1070: uint16(450), + 1071: uint16(231), + 1072: uint16(117), + 1073: uint16(81), + 1074: uint16(81), + 1075: uint16(287), + 1076: uint16(287), + 1077: uint16(231), + 1078: uint16(287), + 1079: uint16(287), + 1080: uint16(576), + 1081: uint16(1511), + 1082: uint16(576), + 1083: uint16(1336), + 1084: uint16(1204), + 1085: uint16(1205), + 1086: uint16(1204), + 1087: uint16(139), + 1088: uint16(573), + 1089: uint16(556), + 1090: uint16(561), + 1091: uint16(573), + 1092: uint16(412), + 1093: uint16(561), + 1094: uint16(441), + 1095: uint16(456), + 1096: uint16(969), + 1097: uint16(213), + 1098: uint16(558), + 1099: uint16(1511), + 1100: uint16(1513), + 1101: uint16(1550), + 1102: uint16(969), + 1103: uint16(143), + 1104: uint16(143), + 1105: uint16(145), + 1106: uint16(145), + 1107: uint16(1368), + 1108: uint16(314), + 1109: uint16(478), + 1110: uint16(444), + 1111: uint16(970), + 1112: uint16(412), + 1113: uint16(850), + 1114: uint16(851), + 1115: uint16(852), + 1116: uint16(135), + 1117: uint16(136), + 1118: uint16(90), + 1119: uint16(1228), + 1120: uint16(1228), + 1121: uint16(1063), + 1122: uint16(1066), + 1123: uint16(1053), + 1124: uint16(1053), + 1125: uint16(133), + 1126: uint16(133), + 1127: uint16(134), + 1128: uint16(134), + 1129: uint16(134), + 1130: uint16(134), + 1131: uint16(357), + 1132: uint16(412), + 1133: uint16(397), + 1134: uint16(1148), + 1135: uint16(304), + 1136: uint16(135), + 1137: uint16(136), + 1138: uint16(90), + 1139: uint16(1228), + 1140: uint16(1228), + 1141: uint16(1063), + 1142: uint16(1066), + 1143: uint16(1053), + 1144: uint16(1053), + 1145: uint16(133), + 1146: uint16(133), + 1147: uint16(134), + 1148: uint16(134), + 1149: uint16(134), + 1150: uint16(134), + 1151: uint16(1575), + 1152: uint16(323), + 1153: uint16(6), + 1154: uint16(862), + 1155: uint16(7), + 1156: uint16(135), + 1157: uint16(124), + 1158: uint16(90), + 1159: uint16(1228), + 1160: uint16(1228), + 1161: uint16(1063), + 1162: uint16(1066), + 1163: uint16(1053), + 1164: uint16(1053), + 1165: uint16(133), + 1166: uint16(133), + 1167: uint16(134), + 1168: uint16(134), + 1169: uint16(134), + 1170: uint16(134), + 1171: uint16(409), + 1172: uint16(408), + 1173: uint16(1511), + 1174: uint16(212), + 1175: uint16(132), + 1176: uint16(132), + 1177: uint16(132), + 1178: uint16(132), + 1179: uint16(131), + 1180: uint16(131), + 1181: uint16(130), + 1182: uint16(130), + 1183: uint16(130), + 1184: uint16(129), + 1185: uint16(126), + 1186: uint16(450), + 1187: uint16(411), + 1188: uint16(118), + 1189: uint16(1204), + 1190: uint16(116), + 1191: uint16(10), + 1192: uint16(352), + 1193: uint16(265), + 1194: uint16(355), + 1195: uint16(132), + 1196: uint16(132), + 1197: uint16(132), + 1198: uint16(132), + 1199: uint16(131), + 1200: uint16(131), + 1201: uint16(130), + 1202: uint16(130), + 1203: uint16(130), + 1204: uint16(129), + 1205: uint16(126), + 1206: uint16(450), + 1207: uint16(576), + 1208: uint16(324), + 1209: uint16(306), + 1210: uint16(576), + 1211: uint16(306), + 1212: uint16(1250), + 1213: uint16(469), + 1214: uint16(158), + 1215: uint16(132), + 1216: uint16(132), + 1217: uint16(132), + 1218: uint16(132), + 1219: uint16(131), + 1220: uint16(131), + 1221: uint16(130), + 1222: uint16(130), + 1223: uint16(130), + 1224: uint16(129), + 1225: uint16(126), + 1226: uint16(450), + 1227: uint16(207), + 1228: uint16(1224), + 1229: uint16(1126), + 1230: uint16(65), + 1231: uint16(65), + 1232: uint16(470), + 1233: uint16(66), + 1234: uint16(66), + 1235: uint16(412), + 1236: uint16(447), + 1237: uint16(446), + 1238: uint16(882), + 1239: uint16(531), + 1240: uint16(335), + 1241: uint16(258), + 1242: uint16(257), + 1243: uint16(256), + 1244: uint16(1127), + 1245: uint16(1233), + 1246: uint16(1204), + 1247: uint16(1205), + 1248: uint16(1204), + 1249: uint16(327), + 1250: uint16(1235), + 1251: uint16(874), + 1252: uint16(159), + 1253: uint16(576), + 1254: uint16(16), + 1255: uint16(480), + 1256: uint16(1085), + 1257: uint16(1040), + 1258: uint16(1234), + 1259: uint16(1128), + 1260: uint16(136), + 1261: uint16(90), + 1262: uint16(1228), + 1263: uint16(1228), + 1264: uint16(1063), + 1265: uint16(1066), + 1266: uint16(1053), + 1267: uint16(1053), + 1268: uint16(133), + 1269: uint16(133), + 1270: uint16(134), + 1271: uint16(134), + 1272: uint16(134), + 1273: uint16(134), + 1274: uint16(1029), + 1275: uint16(576), + 1276: uint16(81), + 1277: uint16(81), + 1278: uint16(1028), + 1279: uint16(1040), + 1280: uint16(922), + 1281: uint16(576), + 1282: uint16(463), + 1283: uint16(1236), + 1284: uint16(576), + 1285: uint16(1236), + 1286: uint16(1224), + 1287: uint16(502), + 1288: uint16(107), + 1289: uint16(1435), + 1290: uint16(923), + 1291: uint16(6), + 1292: uint16(576), + 1293: uint16(410), + 1294: uint16(1498), + 1295: uint16(882), + 1296: uint16(1029), + 1297: uint16(480), + 1298: uint16(21), + 1299: uint16(21), + 1300: uint16(1028), + 1301: uint16(332), + 1302: uint16(1380), + 1303: uint16(334), + 1304: uint16(53), + 1305: uint16(53), + 1306: uint16(497), + 1307: uint16(81), + 1308: uint16(81), + 1309: uint16(874), + 1310: uint16(1028), + 1311: uint16(1028), + 1312: uint16(1030), + 1313: uint16(445), + 1314: uint16(259), + 1315: uint16(19), + 1316: uint16(19), + 1317: uint16(533), + 1318: uint16(132), + 1319: uint16(132), + 1320: uint16(132), + 1321: uint16(132), + 1322: uint16(131), + 1323: uint16(131), + 1324: uint16(130), + 1325: uint16(130), + 1326: uint16(130), + 1327: uint16(129), + 1328: uint16(126), + 1329: uint16(450), + 1330: uint16(551), + 1331: uint16(301), + 1332: uint16(1028), + 1333: uint16(1028), + 1334: uint16(1030), + 1335: uint16(107), + 1336: uint16(532), + 1337: uint16(545), + 1338: uint16(121), + 1339: uint16(568), + 1340: uint16(1188), 1341: uint16(4), - 1342: uint16(238), - 1343: uint16(433), - 1344: uint16(935), - 1345: uint16(490), - 1346: uint16(285), - 1347: uint16(228), - 1348: uint16(1517), - 1349: uint16(934), - 1350: uint16(170), - 1351: uint16(560), - 1352: uint16(572), - 1353: uint16(142), - 1354: uint16(1516), - 1355: uint16(567), - 1356: uint16(572), - 1357: uint16(60), - 1358: uint16(60), - 1359: uint16(572), - 1360: uint16(416), - 1361: uint16(572), - 1362: uint16(441), - 1363: uint16(572), - 1364: uint16(535), - 1365: uint16(302), - 1366: uint16(875), - 1367: uint16(8), - 1368: uint16(487), - 1369: uint16(572), - 1370: uint16(237), - 1371: uint16(572), - 1372: uint16(416), - 1373: uint16(572), - 1374: uint16(485), - 1375: uint16(61), - 1376: uint16(61), - 1377: uint16(572), - 1378: uint16(449), - 1379: uint16(62), - 1380: uint16(62), - 1381: uint16(332), - 1382: uint16(63), - 1383: uint16(63), - 1384: uint16(46), - 1385: uint16(46), - 1386: uint16(47), - 1387: uint16(47), - 1388: uint16(361), - 1389: uint16(572), - 1390: uint16(561), - 1391: uint16(572), - 1392: uint16(48), - 1393: uint16(48), - 1394: uint16(50), - 1395: uint16(50), - 1396: uint16(51), - 1397: uint16(51), - 1398: uint16(572), - 1399: uint16(295), - 1400: uint16(64), - 1401: uint16(64), - 1402: uint16(482), - 1403: uint16(295), - 1404: uint16(539), - 1405: uint16(412), - 1406: uint16(471), - 1407: uint16(1031), - 1408: uint16(572), - 1409: uint16(538), - 1410: uint16(318), - 1411: uint16(563), - 1412: uint16(65), - 1413: uint16(65), - 1414: uint16(66), - 1415: uint16(66), - 1416: uint16(409), - 1417: uint16(475), - 1418: uint16(572), - 1419: uint16(1031), - 1420: uint16(572), - 1421: uint16(14), - 1422: uint16(14), - 1423: uint16(875), - 1424: uint16(1020), - 1425: uint16(110), - 1426: uint16(110), - 1427: uint16(409), - 1428: uint16(1019), - 1429: uint16(572), - 1430: uint16(474), - 1431: uint16(67), - 1432: uint16(67), - 1433: uint16(111), - 1434: uint16(455), - 1435: uint16(449), - 1436: uint16(573), - 1437: uint16(449), - 1438: uint16(98), - 1439: uint16(317), - 1440: uint16(1019), - 1441: uint16(132), - 1442: uint16(132), - 1443: uint16(133), - 1444: uint16(133), - 1445: uint16(572), - 1446: uint16(1561), - 1447: uint16(572), - 1448: uint16(974), - 1449: uint16(409), - 1450: uint16(6), - 1451: uint16(1562), - 1452: uint16(68), - 1453: uint16(68), - 1454: uint16(1560), - 1455: uint16(6), - 1456: uint16(975), - 1457: uint16(572), - 1458: uint16(6), - 1459: uint16(1559), - 1460: uint16(1019), - 1461: uint16(1019), - 1462: uint16(1021), - 1463: uint16(6), - 1464: uint16(346), - 1465: uint16(218), - 1466: uint16(101), - 1467: uint16(531), - 1468: uint16(53), - 1469: uint16(53), - 1470: uint16(69), - 1471: uint16(69), - 1472: uint16(1019), - 1473: uint16(1019), - 1474: uint16(1021), - 1475: uint16(1022), - 1476: uint16(28), - 1477: uint16(1586), - 1478: uint16(1181), - 1479: uint16(451), - 1480: uint16(70), - 1481: uint16(70), - 1482: uint16(290), - 1483: uint16(87), - 1484: uint16(215), - 1485: uint16(31), - 1486: uint16(1363), - 1487: uint16(394), - 1488: uint16(394), - 1489: uint16(393), - 1490: uint16(275), - 1491: uint16(391), - 1492: uint16(350), - 1493: uint16(109), - 1494: uint16(852), - 1495: uint16(107), - 1496: uint16(572), - 1497: uint16(112), - 1498: uint16(564), - 1499: uint16(483), - 1500: uint16(4), - 1501: uint16(1212), - 1502: uint16(572), - 1503: uint16(239), - 1504: uint16(153), - 1505: uint16(572), - 1506: uint16(39), - 1507: uint16(236), - 1508: uint16(1299), - 1509: uint16(325), - 1510: uint16(112), - 1511: uint16(564), - 1512: uint16(1298), - 1513: uint16(4), - 1514: uint16(567), - 1515: uint16(572), - 1516: uint16(32), - 1517: uint16(324), - 1518: uint16(572), - 1519: uint16(54), - 1520: uint16(54), - 1521: uint16(572), - 1522: uint16(1135), - 1523: uint16(353), - 1524: uint16(398), - 1525: uint16(165), - 1526: uint16(165), - 1527: uint16(567), - 1528: uint16(166), - 1529: uint16(166), - 1530: uint16(572), - 1531: uint16(291), - 1532: uint16(355), - 1533: uint16(572), - 1534: uint16(17), - 1535: uint16(357), - 1536: uint16(572), - 1537: uint16(449), - 1538: uint16(77), - 1539: uint16(77), - 1540: uint16(1313), - 1541: uint16(55), - 1542: uint16(55), - 1543: uint16(1297), - 1544: uint16(73), - 1545: uint16(73), - 1546: uint16(572), - 1547: uint16(238), - 1548: uint16(470), - 1549: uint16(561), - 1550: uint16(449), - 1551: uint16(472), - 1552: uint16(364), - 1553: uint16(135), - 1554: uint16(135), - 1555: uint16(170), - 1556: uint16(74), - 1557: uint16(74), - 1558: uint16(142), - 1559: uint16(163), - 1560: uint16(163), - 1561: uint16(374), - 1562: uint16(561), - 1563: uint16(539), - 1564: uint16(572), - 1565: uint16(321), - 1566: uint16(572), - 1567: uint16(886), - 1568: uint16(540), - 1569: uint16(137), - 1570: uint16(137), - 1571: uint16(339), - 1572: uint16(1353), - 1573: uint16(422), - 1574: uint16(298), - 1575: uint16(237), - 1576: uint16(539), - 1577: uint16(572), - 1578: uint16(1031), - 1579: uint16(572), - 1580: uint16(340), - 1581: uint16(538), - 1582: uint16(101), - 1583: uint16(369), - 1584: uint16(110), - 1585: uint16(110), - 1586: uint16(162), - 1587: uint16(131), - 1588: uint16(131), - 1589: uint16(164), - 1590: uint16(164), - 1591: uint16(1031), - 1592: uint16(111), - 1593: uint16(368), - 1594: uint16(449), - 1595: uint16(573), - 1596: uint16(449), + 1342: uint16(1126), + 1343: uint16(1576), + 1344: uint16(449), + 1345: uint16(576), + 1346: uint16(462), + 1347: uint16(7), + 1348: uint16(1282), + 1349: uint16(418), + 1350: uint16(462), + 1351: uint16(350), + 1352: uint16(1435), + 1353: uint16(576), + 1354: uint16(518), + 1355: uint16(571), + 1356: uint16(544), + 1357: uint16(1127), + 1358: uint16(121), + 1359: uint16(568), + 1360: uint16(442), + 1361: uint16(4), + 1362: uint16(1188), + 1363: uint16(464), + 1364: uint16(533), + 1365: uint16(1180), + 1366: uint16(1223), + 1367: uint16(9), + 1368: uint16(67), + 1369: uint16(67), + 1370: uint16(487), + 1371: uint16(576), + 1372: uint16(1128), + 1373: uint16(303), + 1374: uint16(410), + 1375: uint16(571), + 1376: uint16(54), + 1377: uint16(54), + 1378: uint16(451), + 1379: uint16(576), + 1380: uint16(123), + 1381: uint16(944), + 1382: uint16(576), + 1383: uint16(417), + 1384: uint16(576), + 1385: uint16(333), + 1386: uint16(943), + 1387: uint16(1379), + 1388: uint16(576), + 1389: uint16(236), + 1390: uint16(565), + 1391: uint16(576), + 1392: uint16(1574), + 1393: uint16(564), + 1394: uint16(68), + 1395: uint16(68), + 1396: uint16(7), + 1397: uint16(576), + 1398: uint16(451), + 1399: uint16(362), + 1400: uint16(419), + 1401: uint16(182), + 1402: uint16(69), + 1403: uint16(69), + 1404: uint16(541), + 1405: uint16(70), + 1406: uint16(70), + 1407: uint16(71), + 1408: uint16(71), + 1409: uint16(540), + 1410: uint16(565), + 1411: uint16(72), + 1412: uint16(72), + 1413: uint16(484), + 1414: uint16(55), + 1415: uint16(55), + 1416: uint16(473), + 1417: uint16(1180), + 1418: uint16(296), + 1419: uint16(1040), + 1420: uint16(56), + 1421: uint16(56), + 1422: uint16(296), + 1423: uint16(493), + 1424: uint16(541), + 1425: uint16(119), + 1426: uint16(119), + 1427: uint16(410), + 1428: uint16(1573), + 1429: uint16(542), + 1430: uint16(569), + 1431: uint16(418), + 1432: uint16(7), + 1433: uint16(120), + 1434: uint16(1244), + 1435: uint16(451), + 1436: uint16(577), + 1437: uint16(451), + 1438: uint16(465), + 1439: uint16(1040), + 1440: uint16(1028), + 1441: uint16(576), + 1442: uint16(1557), + 1443: uint16(552), + 1444: uint16(476), + 1445: uint16(119), + 1446: uint16(119), + 1447: uint16(527), + 1448: uint16(259), + 1449: uint16(121), + 1450: uint16(568), + 1451: uint16(240), + 1452: uint16(4), + 1453: uint16(120), + 1454: uint16(576), + 1455: uint16(451), + 1456: uint16(577), + 1457: uint16(451), + 1458: uint16(576), + 1459: uint16(477), + 1460: uint16(1028), + 1461: uint16(576), + 1462: uint16(156), + 1463: uint16(576), + 1464: uint16(57), + 1465: uint16(57), + 1466: uint16(571), + 1467: uint16(576), + 1468: uint16(286), + 1469: uint16(229), + 1470: uint16(410), + 1471: uint16(336), + 1472: uint16(1028), + 1473: uint16(1028), + 1474: uint16(1030), + 1475: uint16(1031), + 1476: uint16(35), + 1477: uint16(59), + 1478: uint16(59), + 1479: uint16(219), + 1480: uint16(983), + 1481: uint16(60), + 1482: uint16(60), + 1483: uint16(220), + 1484: uint16(73), + 1485: uint16(73), + 1486: uint16(74), + 1487: uint16(74), + 1488: uint16(984), + 1489: uint16(451), + 1490: uint16(75), + 1491: uint16(75), + 1492: uint16(1028), + 1493: uint16(1028), + 1494: uint16(1030), + 1495: uint16(1031), + 1496: uint16(35), + 1497: uint16(96), + 1498: uint16(216), + 1499: uint16(291), + 1500: uint16(552), + 1501: uint16(565), + 1502: uint16(1188), + 1503: uint16(318), + 1504: uint16(395), + 1505: uint16(395), + 1506: uint16(394), + 1507: uint16(276), + 1508: uint16(392), + 1509: uint16(576), + 1510: uint16(485), + 1511: uint16(859), + 1512: uint16(474), + 1513: uint16(1311), + 1514: uint16(410), + 1515: uint16(541), + 1516: uint16(576), + 1517: uint16(417), + 1518: uint16(1530), + 1519: uint16(1144), + 1520: uint16(540), + 1521: uint16(399), + 1522: uint16(1188), + 1523: uint16(292), + 1524: uint16(237), + 1525: uint16(1153), + 1526: uint16(326), + 1527: uint16(38), + 1528: uint16(23), + 1529: uint16(576), + 1530: uint16(1040), + 1531: uint16(576), + 1532: uint16(20), + 1533: uint16(20), + 1534: uint16(325), + 1535: uint16(299), + 1536: uint16(119), + 1537: uint16(119), + 1538: uint16(164), + 1539: uint16(76), + 1540: uint16(76), + 1541: uint16(1529), + 1542: uint16(121), + 1543: uint16(568), + 1544: uint16(120), + 1545: uint16(4), + 1546: uint16(451), + 1547: uint16(577), + 1548: uint16(451), + 1549: uint16(203), + 1550: uint16(576), + 1551: uint16(1028), + 1552: uint16(141), + 1553: uint16(141), + 1554: uint16(142), + 1555: uint16(142), + 1556: uint16(576), + 1557: uint16(322), + 1558: uint16(39), + 1559: uint16(571), + 1560: uint16(341), + 1561: uint16(1021), + 1562: uint16(110), + 1563: uint16(264), + 1564: uint16(239), + 1565: uint16(901), + 1566: uint16(900), + 1567: uint16(423), + 1568: uint16(242), + 1569: uint16(908), + 1570: uint16(909), + 1571: uint16(370), + 1572: uint16(173), + 1573: uint16(77), + 1574: uint16(77), + 1575: uint16(43), + 1576: uint16(479), + 1577: uint16(1310), + 1578: uint16(264), + 1579: uint16(62), + 1580: uint16(62), + 1581: uint16(369), + 1582: uint16(451), + 1583: uint16(1028), + 1584: uint16(1028), + 1585: uint16(1030), + 1586: uint16(1031), + 1587: uint16(35), + 1588: uint16(1601), + 1589: uint16(1192), + 1590: uint16(453), + 1591: uint16(1092), + 1592: uint16(238), + 1593: uint16(291), + 1594: uint16(565), + 1595: uint16(163), + 1596: uint16(1309), 1597: uint16(110), - 1598: uint16(110), - 1599: uint16(1019), - 1600: uint16(157), - 1601: uint16(157), - 1602: uint16(141), - 1603: uint16(141), - 1604: uint16(572), - 1605: uint16(111), - 1606: uint16(572), - 1607: uint16(449), - 1608: uint16(573), - 1609: uint16(449), - 1610: uint16(412), - 1611: uint16(288), - 1612: uint16(1019), - 1613: uint16(572), - 1614: uint16(882), - 1615: uint16(318), - 1616: uint16(563), - 1617: uint16(572), - 1618: uint16(219), - 1619: uint16(572), - 1620: uint16(241), - 1621: uint16(1012), - 1622: uint16(477), - 1623: uint16(263), - 1624: uint16(263), - 1625: uint16(894), - 1626: uint16(893), - 1627: uint16(140), - 1628: uint16(140), - 1629: uint16(138), - 1630: uint16(138), - 1631: uint16(1019), - 1632: uint16(1019), - 1633: uint16(1021), - 1634: uint16(1022), - 1635: uint16(28), - 1636: uint16(139), - 1637: uint16(139), - 1638: uint16(525), - 1639: uint16(455), - 1640: uint16(76), - 1641: uint16(76), - 1642: uint16(78), - 1643: uint16(78), - 1644: uint16(1019), - 1645: uint16(1019), - 1646: uint16(1021), - 1647: uint16(1022), - 1648: uint16(28), - 1649: uint16(1181), - 1650: uint16(451), - 1651: uint16(572), - 1652: uint16(1083), - 1653: uint16(290), - 1654: uint16(112), - 1655: uint16(564), - 1656: uint16(1575), - 1657: uint16(4), - 1658: uint16(394), - 1659: uint16(394), - 1660: uint16(393), - 1661: uint16(275), - 1662: uint16(391), - 1663: uint16(572), - 1664: uint16(1023), - 1665: uint16(852), - 1666: uint16(572), - 1667: uint16(479), - 1668: uint16(345), - 1669: uint16(263), - 1670: uint16(101), - 1671: uint16(567), - 1672: uint16(882), - 1673: uint16(1376), - 1674: uint16(75), - 1675: uint16(75), - 1676: uint16(1421), - 1677: uint16(501), - 1678: uint16(236), - 1679: uint16(260), - 1680: uint16(325), - 1681: uint16(112), - 1682: uint16(564), - 1683: uint16(359), - 1684: uint16(4), - 1685: uint16(101), - 1686: uint16(43), - 1687: uint16(43), - 1688: uint16(324), - 1689: uint16(49), - 1690: uint16(49), - 1691: uint16(901), - 1692: uint16(902), - 1693: uint16(161), - 1694: uint16(449), - 1695: uint16(101), - 1696: uint16(977), - 1697: uint16(978), - 1698: uint16(567), - 1699: uint16(1079), - 1700: uint16(1349), - 1701: uint16(260), - 1702: uint16(965), - 1703: uint16(932), - 1704: uint16(263), - 1705: uint16(114), - 1706: uint16(561), - 1707: uint16(1095), - 1708: uint16(517), - 1709: uint16(1095), - 1710: uint16(1083), - 1711: uint16(1094), - 1712: uint16(865), - 1713: uint16(1094), - 1714: uint16(151), - 1715: uint16(933), - 1716: uint16(1144), - 1717: uint16(114), - 1718: uint16(238), - 1719: uint16(1361), - 1720: uint16(558), - 1721: uint16(449), - 1722: uint16(1023), - 1723: uint16(559), - 1724: uint16(1426), - 1725: uint16(1278), - 1726: uint16(170), - 1727: uint16(1269), - 1728: uint16(1257), - 1729: uint16(142), - 1730: uint16(1601), - 1731: uint16(1256), - 1732: uint16(1258), - 1733: uint16(561), - 1734: uint16(1594), - 1735: uint16(1031), - 1736: uint16(496), - 1737: uint16(278), - 1738: uint16(213), - 1739: uint16(1346), - 1740: uint16(310), - 1741: uint16(110), - 1742: uint16(110), - 1743: uint16(939), - 1744: uint16(311), - 1745: uint16(312), - 1746: uint16(237), - 1747: uint16(11), - 1748: uint16(234), - 1749: uint16(111), - 1750: uint16(221), - 1751: uint16(449), - 1752: uint16(573), - 1753: uint16(449), - 1754: uint16(293), - 1755: uint16(395), - 1756: uint16(1019), - 1757: uint16(1408), - 1758: uint16(337), - 1759: uint16(1403), - 1760: uint16(1396), - 1761: uint16(338), - 1762: uint16(1031), - 1763: uint16(299), - 1764: uint16(343), - 1765: uint16(1413), - 1766: uint16(1412), - 1767: uint16(481), - 1768: uint16(110), - 1769: uint16(110), - 1770: uint16(506), - 1771: uint16(402), - 1772: uint16(225), - 1773: uint16(1296), - 1774: uint16(206), - 1775: uint16(367), - 1776: uint16(111), - 1777: uint16(1358), - 1778: uint16(449), - 1779: uint16(573), - 1780: uint16(449), - 1781: uint16(412), - 1782: uint16(1359), - 1783: uint16(1019), - 1784: uint16(1489), - 1785: uint16(1488), - 1786: uint16(318), - 1787: uint16(563), - 1788: uint16(1019), - 1789: uint16(1019), - 1790: uint16(1021), - 1791: uint16(1022), - 1792: uint16(28), - 1793: uint16(562), - 1794: uint16(207), - 1795: uint16(220), - 1796: uint16(80), - 1797: uint16(564), - 1798: uint16(389), - 1799: uint16(4), - 1800: uint16(1597), - 1801: uint16(1357), - 1802: uint16(552), - 1803: uint16(1356), - 1804: uint16(1233), - 1805: uint16(181), - 1806: uint16(267), - 1807: uint16(232), - 1808: uint16(1536), - 1809: uint16(1534), - 1810: uint16(455), - 1811: uint16(1230), - 1812: uint16(420), - 1813: uint16(567), - 1814: uint16(82), - 1815: uint16(1019), - 1816: uint16(1019), - 1817: uint16(1021), - 1818: uint16(1022), - 1819: uint16(28), - 1820: uint16(86), - 1821: uint16(217), - 1822: uint16(85), - 1823: uint16(1494), - 1824: uint16(190), - 1825: uint16(175), - 1826: uint16(183), - 1827: uint16(465), - 1828: uint16(185), - 1829: uint16(466), - 1830: uint16(36), - 1831: uint16(1409), - 1832: uint16(186), - 1833: uint16(187), - 1834: uint16(188), - 1835: uint16(499), - 1836: uint16(449), - 1837: uint16(244), - 1838: uint16(37), - 1839: uint16(99), - 1840: uint16(400), - 1841: uint16(1415), - 1842: uint16(1414), - 1843: uint16(488), - 1844: uint16(1417), - 1845: uint16(194), - 1846: uint16(473), - 1847: uint16(403), - 1848: uint16(561), - 1849: uint16(1483), - 1850: uint16(248), - 1851: uint16(92), - 1852: uint16(1505), - 1853: uint16(494), - 1854: uint16(198), - 1855: uint16(279), - 1856: uint16(112), - 1857: uint16(564), - 1858: uint16(250), - 1859: uint16(4), - 1860: uint16(348), - 1861: uint16(497), - 1862: uint16(405), - 1863: uint16(352), - 1864: uint16(1259), - 1865: uint16(251), - 1866: uint16(252), - 1867: uint16(515), - 1868: uint16(1316), - 1869: uint16(434), - 1870: uint16(1315), - 1871: uint16(1314), - 1872: uint16(94), - 1873: uint16(567), - 1874: uint16(1307), - 1875: uint16(886), - 1876: uint16(1306), - 1877: uint16(1031), - 1878: uint16(226), - 1879: uint16(406), - 1880: uint16(1611), - 1881: uint16(1610), - 1882: uint16(438), - 1883: uint16(110), - 1884: uint16(110), - 1885: uint16(1580), - 1886: uint16(1286), - 1887: uint16(524), - 1888: uint16(439), - 1889: uint16(308), - 1890: uint16(266), - 1891: uint16(111), - 1892: uint16(1285), - 1893: uint16(449), - 1894: uint16(573), - 1895: uint16(449), - 1896: uint16(449), - 1897: uint16(309), - 1898: uint16(1019), - 1899: uint16(366), - 1900: uint16(1284), - 1901: uint16(1609), - 1902: uint16(265), - 1903: uint16(1566), - 1904: uint16(1565), - 1905: uint16(442), - 1906: uint16(372), - 1907: uint16(1381), - 1908: uint16(561), - 1909: uint16(129), - 1910: uint16(550), - 1911: uint16(1380), - 1912: uint16(10), - 1913: uint16(1470), - 1914: uint16(383), - 1915: uint16(106), - 1916: uint16(316), - 1917: uint16(551), - 1918: uint16(100), - 1919: uint16(35), - 1920: uint16(534), - 1921: uint16(575), - 1922: uint16(212), - 1923: uint16(1339), - 1924: uint16(381), - 1925: uint16(387), - 1926: uint16(1187), - 1927: uint16(1338), - 1928: uint16(274), - 1929: uint16(276), - 1930: uint16(1019), - 1931: uint16(1019), - 1932: uint16(1021), - 1933: uint16(1022), - 1934: uint16(28), - 1935: uint16(277), - 1936: uint16(413), - 1937: uint16(1031), - 1938: uint16(576), - 1939: uint16(1254), - 1940: uint16(388), - 1941: uint16(1521), - 1942: uint16(1249), - 1943: uint16(110), - 1944: uint16(110), - 1945: uint16(167), - 1946: uint16(1522), - 1947: uint16(168), - 1948: uint16(148), - 1949: uint16(1520), - 1950: uint16(1519), - 1951: uint16(111), - 1952: uint16(306), - 1953: uint16(449), - 1954: uint16(573), - 1955: uint16(449), - 1956: uint16(222), - 1957: uint16(223), - 1958: uint16(1019), - 1959: uint16(839), - 1960: uint16(169), - 1961: uint16(79), - 1962: uint16(450), - 1963: uint16(214), - 1964: uint16(414), - 1965: uint16(233), - 1966: uint16(320), - 1967: uint16(145), - 1968: uint16(1093), - 1969: uint16(1091), - 1970: uint16(328), - 1971: uint16(182), - 1972: uint16(171), - 1973: uint16(1212), - 1974: uint16(918), - 1975: uint16(184), - 1976: uint16(240), - 1977: uint16(336), - 1978: uint16(243), - 1979: uint16(1107), - 1980: uint16(189), - 1981: uint16(172), - 1982: uint16(173), - 1983: uint16(423), - 1984: uint16(425), - 1985: uint16(88), - 1986: uint16(180), - 1987: uint16(191), - 1988: uint16(89), - 1989: uint16(90), - 1990: uint16(1019), - 1991: uint16(1019), - 1992: uint16(1021), - 1993: uint16(1022), - 1994: uint16(28), - 1995: uint16(91), - 1996: uint16(174), - 1997: uint16(1110), - 1998: uint16(245), - 1999: uint16(1106), - 2000: uint16(246), - 2001: uint16(159), - 2002: uint16(18), - 2003: uint16(247), - 2004: uint16(347), - 2005: uint16(1099), - 2006: uint16(263), - 2007: uint16(195), - 2008: uint16(1227), - 2009: uint16(493), - 2010: uint16(249), - 2011: uint16(196), - 2012: uint16(38), - 2013: uint16(854), - 2014: uint16(498), - 2015: uint16(368), - 2016: uint16(253), - 2017: uint16(360), - 2018: uint16(897), - 2019: uint16(197), - 2020: uint16(502), - 2021: uint16(93), - 2022: uint16(19), - 2023: uint16(20), - 2024: uint16(507), - 2025: uint16(884), - 2026: uint16(363), - 2027: uint16(510), - 2028: uint16(95), - 2029: uint16(307), - 2030: uint16(160), - 2031: uint16(96), - 2032: uint16(518), - 2033: uint16(97), - 2034: uint16(1175), - 2035: uint16(1060), - 2036: uint16(1146), - 2037: uint16(40), - 2038: uint16(21), - 2039: uint16(227), - 2040: uint16(176), - 2041: uint16(1145), - 2042: uint16(282), - 2043: uint16(284), - 2044: uint16(969), - 2045: uint16(200), - 2046: uint16(963), - 2047: uint16(114), - 2048: uint16(262), - 2049: uint16(1165), - 2050: uint16(22), - 2051: uint16(23), - 2052: uint16(24), - 2053: uint16(1161), - 2054: uint16(1169), - 2055: uint16(25), - 2056: uint16(1163), - 2057: uint16(1150), - 2058: uint16(34), - 2059: uint16(26), - 2060: uint16(1168), - 2061: uint16(546), - 2062: uint16(27), - 2063: uint16(204), - 2064: uint16(101), - 2065: uint16(103), - 2066: uint16(104), - 2067: uint16(1074), - 2068: uint16(7), - 2069: uint16(1061), - 2070: uint16(1059), - 2071: uint16(1063), - 2072: uint16(1116), - 2073: uint16(1064), - 2074: uint16(1115), - 2075: uint16(268), - 2076: uint16(269), - 2077: uint16(29), - 2078: uint16(41), - 2079: uint16(270), - 2080: uint16(1024), - 2081: uint16(866), - 2082: uint16(113), - 2083: uint16(30), - 2084: uint16(568), - 2085: uint16(392), - 2086: uint16(1183), - 2087: uint16(144), - 2088: uint16(178), - 2089: uint16(1182), - 2090: uint16(271), - 2091: uint16(928), - 2092: uint16(1245), - 2093: uint16(1245), - 2094: uint16(1245), - 2095: uint16(1245), - 2096: uint16(1245), - 2097: uint16(1245), - 2098: uint16(1245), - 2099: uint16(1602), -} -var _yy_lookahead = [2285]uint16{ - 0: uint16(193), - 1: uint16(193), - 2: uint16(193), - 3: uint16(274), - 4: uint16(275), - 5: uint16(276), - 6: uint16(193), - 7: uint16(274), - 8: uint16(275), - 9: uint16(276), - 10: uint16(193), - 11: uint16(223), - 12: uint16(219), - 13: uint16(225), - 14: uint16(206), - 15: uint16(210), - 16: uint16(211), - 17: uint16(212), - 18: uint16(193), + 1598: uint16(395), + 1599: uint16(395), + 1600: uint16(394), + 1601: uint16(276), + 1602: uint16(392), + 1603: uint16(986), + 1604: uint16(987), + 1605: uint16(859), + 1606: uint16(481), + 1607: uint16(346), + 1608: uint16(264), + 1609: uint16(110), + 1610: uint16(1032), + 1611: uint16(489), + 1612: uint16(576), + 1613: uint16(1188), + 1614: uint16(503), + 1615: uint16(1088), + 1616: uint16(261), + 1617: uint16(261), + 1618: uint16(237), + 1619: uint16(576), + 1620: uint16(326), + 1621: uint16(121), + 1622: uint16(568), + 1623: uint16(1040), + 1624: uint16(4), + 1625: uint16(347), + 1626: uint16(1376), + 1627: uint16(413), + 1628: uint16(325), + 1629: uint16(119), + 1630: uint16(119), + 1631: uint16(948), + 1632: uint16(319), + 1633: uint16(567), + 1634: uint16(351), + 1635: uint16(78), + 1636: uint16(78), + 1637: uint16(120), + 1638: uint16(571), + 1639: uint16(451), + 1640: uint16(577), + 1641: uint16(451), + 1642: uint16(79), + 1643: uint16(79), + 1644: uint16(1028), + 1645: uint16(354), + 1646: uint16(356), + 1647: uint16(576), + 1648: uint16(360), + 1649: uint16(1092), + 1650: uint16(110), + 1651: uint16(576), + 1652: uint16(974), + 1653: uint16(942), + 1654: uint16(264), + 1655: uint16(123), + 1656: uint16(457), + 1657: uint16(358), + 1658: uint16(239), + 1659: uint16(576), + 1660: uint16(519), + 1661: uint16(451), + 1662: uint16(939), + 1663: uint16(1104), + 1664: uint16(123), + 1665: uint16(1104), + 1666: uint16(173), + 1667: uint16(576), + 1668: uint16(1032), + 1669: uint16(43), + 1670: uint16(63), + 1671: uint16(63), + 1672: uint16(1324), + 1673: uint16(565), + 1674: uint16(168), + 1675: uint16(168), + 1676: uint16(1028), + 1677: uint16(1028), + 1678: uint16(1030), + 1679: uint16(1031), + 1680: uint16(35), + 1681: uint16(576), + 1682: uint16(169), + 1683: uint16(169), + 1684: uint16(1308), + 1685: uint16(872), + 1686: uint16(238), + 1687: uint16(157), + 1688: uint16(1589), + 1689: uint16(576), + 1690: uint16(86), + 1691: uint16(86), + 1692: uint16(365), + 1693: uint16(89), + 1694: uint16(568), + 1695: uint16(375), + 1696: uint16(4), + 1697: uint16(1103), + 1698: uint16(941), + 1699: uint16(1103), + 1700: uint16(123), + 1701: uint16(576), + 1702: uint16(1040), + 1703: uint16(1389), + 1704: uint16(64), + 1705: uint16(64), + 1706: uint16(1188), + 1707: uint16(1434), + 1708: uint16(119), + 1709: uint16(119), + 1710: uint16(571), + 1711: uint16(576), + 1712: uint16(82), + 1713: uint16(82), + 1714: uint16(563), + 1715: uint16(576), + 1716: uint16(120), + 1717: uint16(165), + 1718: uint16(451), + 1719: uint16(577), + 1720: uint16(451), + 1721: uint16(413), + 1722: uint16(1362), + 1723: uint16(1028), + 1724: uint16(144), + 1725: uint16(144), + 1726: uint16(319), + 1727: uint16(567), + 1728: uint16(576), + 1729: uint16(1374), + 1730: uint16(562), + 1731: uint16(498), + 1732: uint16(279), + 1733: uint16(451), + 1734: uint16(83), + 1735: uint16(83), + 1736: uint16(1439), + 1737: uint16(576), + 1738: uint16(166), + 1739: uint16(166), + 1740: uint16(576), + 1741: uint16(1289), + 1742: uint16(554), + 1743: uint16(576), + 1744: uint16(1280), + 1745: uint16(565), + 1746: uint16(576), + 1747: uint16(12), + 1748: uint16(576), + 1749: uint16(1268), + 1750: uint16(457), + 1751: uint16(146), + 1752: uint16(146), + 1753: uint16(1267), + 1754: uint16(576), + 1755: uint16(1028), + 1756: uint16(1028), + 1757: uint16(1030), + 1758: uint16(1031), + 1759: uint16(35), + 1760: uint16(140), + 1761: uint16(140), + 1762: uint16(1269), + 1763: uint16(167), + 1764: uint16(167), + 1765: uint16(1609), + 1766: uint16(160), + 1767: uint16(160), + 1768: uint16(1359), + 1769: uint16(150), + 1770: uint16(150), + 1771: uint16(149), + 1772: uint16(149), + 1773: uint16(311), + 1774: uint16(1040), + 1775: uint16(576), + 1776: uint16(312), + 1777: uint16(147), + 1778: uint16(147), + 1779: uint16(313), + 1780: uint16(119), + 1781: uint16(119), + 1782: uint16(222), + 1783: uint16(235), + 1784: uint16(576), + 1785: uint16(1188), + 1786: uint16(396), + 1787: uint16(576), + 1788: uint16(120), + 1789: uint16(576), + 1790: uint16(451), + 1791: uint16(577), + 1792: uint16(451), + 1793: uint16(1192), + 1794: uint16(453), + 1795: uint16(1028), + 1796: uint16(508), + 1797: uint16(291), + 1798: uint16(148), + 1799: uint16(148), + 1800: uint16(1421), + 1801: uint16(1612), + 1802: uint16(395), + 1803: uint16(395), + 1804: uint16(394), + 1805: uint16(276), + 1806: uint16(392), + 1807: uint16(85), + 1808: uint16(85), + 1809: uint16(859), + 1810: uint16(87), + 1811: uint16(87), + 1812: uint16(84), + 1813: uint16(84), + 1814: uint16(553), + 1815: uint16(576), + 1816: uint16(294), + 1817: uint16(576), + 1818: uint16(1426), + 1819: uint16(338), + 1820: uint16(339), + 1821: uint16(1425), + 1822: uint16(237), + 1823: uint16(300), + 1824: uint16(326), + 1825: uint16(1416), + 1826: uint16(1409), + 1827: uint16(1028), + 1828: uint16(1028), + 1829: uint16(1030), + 1830: uint16(1031), + 1831: uint16(35), + 1832: uint16(325), + 1833: uint16(344), + 1834: uint16(403), + 1835: uint16(483), + 1836: uint16(226), + 1837: uint16(1307), + 1838: uint16(52), + 1839: uint16(52), + 1840: uint16(58), + 1841: uint16(58), + 1842: uint16(368), + 1843: uint16(1371), + 1844: uint16(1502), + 1845: uint16(566), + 1846: uint16(1501), + 1847: uint16(121), + 1848: uint16(568), + 1849: uint16(221), + 1850: uint16(4), + 1851: uint16(208), + 1852: uint16(268), + 1853: uint16(209), + 1854: uint16(390), + 1855: uint16(1244), + 1856: uint16(1549), + 1857: uint16(1188), + 1858: uint16(1372), + 1859: uint16(1370), + 1860: uint16(1369), + 1861: uint16(1547), + 1862: uint16(239), + 1863: uint16(184), + 1864: uint16(571), + 1865: uint16(233), + 1866: uint16(421), + 1867: uint16(1241), + 1868: uint16(95), + 1869: uint16(218), + 1870: uint16(173), + 1871: uint16(1507), + 1872: uint16(193), + 1873: uint16(43), + 1874: uint16(91), + 1875: uint16(94), + 1876: uint16(178), + 1877: uint16(186), + 1878: uint16(467), + 1879: uint16(188), + 1880: uint16(468), + 1881: uint16(1422), + 1882: uint16(13), + 1883: uint16(189), + 1884: uint16(190), + 1885: uint16(191), + 1886: uint16(501), + 1887: uint16(451), + 1888: uint16(245), + 1889: uint16(108), + 1890: uint16(238), + 1891: uint16(401), + 1892: uint16(1428), + 1893: uint16(1427), + 1894: uint16(1430), + 1895: uint16(475), + 1896: uint16(404), + 1897: uint16(1496), + 1898: uint16(197), + 1899: uint16(565), + 1900: uint16(14), + 1901: uint16(490), + 1902: uint16(249), + 1903: uint16(101), + 1904: uint16(1518), + 1905: uint16(496), + 1906: uint16(349), + 1907: uint16(280), + 1908: uint16(251), + 1909: uint16(201), + 1910: uint16(353), + 1911: uint16(499), + 1912: uint16(252), + 1913: uint16(406), + 1914: uint16(1270), + 1915: uint16(253), + 1916: uint16(517), + 1917: uint16(1327), + 1918: uint16(1326), + 1919: uint16(435), + 1920: uint16(1325), + 1921: uint16(1318), + 1922: uint16(103), + 1923: uint16(893), + 1924: uint16(1296), + 1925: uint16(413), + 1926: uint16(227), + 1927: uint16(407), + 1928: uint16(1040), + 1929: uint16(1626), + 1930: uint16(319), + 1931: uint16(567), + 1932: uint16(1625), + 1933: uint16(1297), + 1934: uint16(119), + 1935: uint16(119), + 1936: uint16(439), + 1937: uint16(367), + 1938: uint16(1317), + 1939: uint16(1295), + 1940: uint16(1624), + 1941: uint16(526), + 1942: uint16(120), + 1943: uint16(440), + 1944: uint16(451), + 1945: uint16(577), + 1946: uint16(451), + 1947: uint16(1594), + 1948: uint16(309), + 1949: uint16(1028), + 1950: uint16(310), + 1951: uint16(373), + 1952: uint16(266), + 1953: uint16(267), + 1954: uint16(457), + 1955: uint16(1580), + 1956: uint16(1579), + 1957: uint16(443), + 1958: uint16(138), + 1959: uint16(1394), + 1960: uint16(552), + 1961: uint16(1393), + 1962: uint16(11), + 1963: uint16(1483), + 1964: uint16(384), + 1965: uint16(115), + 1966: uint16(317), + 1967: uint16(1350), + 1968: uint16(109), + 1969: uint16(536), + 1970: uint16(42), + 1971: uint16(579), + 1972: uint16(382), + 1973: uint16(214), + 1974: uint16(1349), + 1975: uint16(388), + 1976: uint16(1198), + 1977: uint16(389), + 1978: uint16(275), + 1979: uint16(277), + 1980: uint16(278), + 1981: uint16(1028), + 1982: uint16(1028), + 1983: uint16(1030), + 1984: uint16(1031), + 1985: uint16(35), + 1986: uint16(580), + 1987: uint16(1265), + 1988: uint16(414), + 1989: uint16(1260), + 1990: uint16(170), + 1991: uint16(415), + 1992: uint16(183), + 1993: uint16(1534), + 1994: uint16(1535), + 1995: uint16(1533), + 1996: uint16(171), + 1997: uint16(154), + 1998: uint16(307), + 1999: uint16(1532), + 2000: uint16(846), + 2001: uint16(223), + 2002: uint16(224), + 2003: uint16(88), + 2004: uint16(452), + 2005: uint16(215), + 2006: uint16(172), + 2007: uint16(321), + 2008: uint16(234), + 2009: uint16(1102), + 2010: uint16(152), + 2011: uint16(1188), + 2012: uint16(1100), + 2013: uint16(329), + 2014: uint16(185), + 2015: uint16(174), + 2016: uint16(1223), + 2017: uint16(925), + 2018: uint16(187), + 2019: uint16(241), + 2020: uint16(337), + 2021: uint16(244), + 2022: uint16(1116), + 2023: uint16(192), + 2024: uint16(175), + 2025: uint16(176), + 2026: uint16(424), + 2027: uint16(426), + 2028: uint16(97), + 2029: uint16(194), + 2030: uint16(98), + 2031: uint16(99), + 2032: uint16(100), + 2033: uint16(177), + 2034: uint16(1119), + 2035: uint16(1115), + 2036: uint16(246), + 2037: uint16(247), + 2038: uint16(161), + 2039: uint16(24), + 2040: uint16(248), + 2041: uint16(348), + 2042: uint16(1238), + 2043: uint16(264), + 2044: uint16(1108), + 2045: uint16(250), + 2046: uint16(495), + 2047: uint16(199), + 2048: uint16(198), + 2049: uint16(15), + 2050: uint16(861), + 2051: uint16(500), + 2052: uint16(369), + 2053: uint16(254), + 2054: uint16(504), + 2055: uint16(509), + 2056: uint16(512), + 2057: uint16(200), + 2058: uint16(102), + 2059: uint16(25), + 2060: uint16(179), + 2061: uint16(361), + 2062: uint16(26), + 2063: uint16(364), + 2064: uint16(104), + 2065: uint16(891), + 2066: uint16(308), + 2067: uint16(162), + 2068: uint16(105), + 2069: uint16(904), + 2070: uint16(520), + 2071: uint16(106), + 2072: uint16(1185), + 2073: uint16(1069), + 2074: uint16(1155), + 2075: uint16(17), + 2076: uint16(228), + 2077: uint16(27), + 2078: uint16(1154), + 2079: uint16(283), + 2080: uint16(285), + 2081: uint16(263), + 2082: uint16(978), + 2083: uint16(202), + 2084: uint16(972), + 2085: uint16(123), + 2086: uint16(28), + 2087: uint16(1175), + 2088: uint16(29), + 2089: uint16(30), + 2090: uint16(1179), + 2091: uint16(1171), + 2092: uint16(31), + 2093: uint16(1173), + 2094: uint16(1160), + 2095: uint16(41), + 2096: uint16(32), + 2097: uint16(206), + 2098: uint16(548), + 2099: uint16(33), + 2100: uint16(110), + 2101: uint16(1178), + 2102: uint16(1083), + 2103: uint16(8), + 2104: uint16(112), + 2105: uint16(1070), + 2106: uint16(113), + 2107: uint16(1068), + 2108: uint16(1072), + 2109: uint16(34), + 2110: uint16(1073), + 2111: uint16(560), + 2112: uint16(1125), + 2113: uint16(269), + 2114: uint16(1124), + 2115: uint16(270), + 2116: uint16(36), + 2117: uint16(18), + 2118: uint16(1194), + 2119: uint16(1033), + 2120: uint16(873), + 2121: uint16(151), + 2122: uint16(122), + 2123: uint16(37), + 2124: uint16(393), + 2125: uint16(271), + 2126: uint16(272), + 2127: uint16(572), + 2128: uint16(181), + 2129: uint16(1193), + 2130: uint16(1256), + 2131: uint16(1256), + 2132: uint16(1256), + 2133: uint16(935), + 2134: uint16(1256), + 2135: uint16(1256), + 2136: uint16(1256), + 2137: uint16(1256), + 2138: uint16(1256), + 2139: uint16(1256), + 2140: uint16(1256), + 2141: uint16(1617), +} +var _yy_lookahead = [2328]uint16{ + 0: uint16(194), + 1: uint16(276), + 2: uint16(277), + 3: uint16(278), + 4: uint16(216), + 5: uint16(194), + 6: uint16(194), + 7: uint16(217), + 8: uint16(194), + 9: uint16(194), + 10: uint16(194), + 11: uint16(194), + 12: uint16(224), + 13: uint16(194), + 14: uint16(194), + 15: uint16(276), + 16: uint16(277), + 17: uint16(278), + 18: uint16(204), 19: uint16(19), - 20: uint16(219), - 21: uint16(233), - 22: uint16(216), - 23: uint16(216), - 24: uint16(217), - 25: uint16(216), - 26: uint16(217), - 27: uint16(193), - 28: uint16(295), - 29: uint16(216), - 30: uint16(217), + 20: uint16(206), + 21: uint16(202), + 22: uint16(297), + 23: uint16(217), + 24: uint16(218), + 25: uint16(205), + 26: uint16(207), + 27: uint16(217), + 28: uint16(205), + 29: uint16(217), + 30: uint16(218), 31: uint16(31), - 32: uint16(193), - 33: uint16(216), + 32: uint16(217), + 33: uint16(218), 34: uint16(217), - 35: uint16(193), - 36: uint16(228), - 37: uint16(213), - 38: uint16(230), + 35: uint16(218), + 36: uint16(29), + 37: uint16(217), + 38: uint16(218), 39: uint16(39), - 40: uint16(206), - 41: uint16(216), - 42: uint16(217), + 40: uint16(33), + 41: uint16(217), + 42: uint16(220), 43: uint16(43), 44: uint16(44), 45: uint16(45), @@ -149165,31 +150616,31 @@ var _yy_lookahead = [2285]uint16{ 55: uint16(55), 56: uint16(56), 57: uint16(57), - 58: uint16(193), + 58: uint16(312), 59: uint16(19), - 60: uint16(185), - 61: uint16(186), - 62: uint16(187), - 63: uint16(188), - 64: uint16(189), - 65: uint16(190), - 66: uint16(253), - 67: uint16(274), - 68: uint16(275), - 69: uint16(276), - 70: uint16(195), - 71: uint16(193), - 72: uint16(197), - 73: uint16(193), - 74: uint16(261), - 75: uint16(274), - 76: uint16(275), - 77: uint16(276), - 78: uint16(253), - 79: uint16(204), - 80: uint16(238), - 81: uint16(204), - 82: uint16(81), + 60: uint16(240), + 61: uint16(241), + 62: uint16(316), + 63: uint16(240), + 64: uint16(241), + 65: uint16(194), + 66: uint16(46), + 67: uint16(47), + 68: uint16(48), + 69: uint16(49), + 70: uint16(22), + 71: uint16(254), + 72: uint16(65), + 73: uint16(253), + 74: uint16(254), + 75: uint16(255), + 76: uint16(253), + 77: uint16(194), + 78: uint16(255), + 79: uint16(194), + 80: uint16(263), + 81: uint16(258), + 82: uint16(259), 83: uint16(43), 84: uint16(44), 85: uint16(45), @@ -149205,10 +150656,10 @@ var _yy_lookahead = [2285]uint16{ 95: uint16(55), 96: uint16(56), 97: uint16(57), - 98: uint16(274), - 99: uint16(275), - 100: uint16(276), - 101: uint16(262), + 98: uint16(276), + 99: uint16(277), + 100: uint16(278), + 101: uint16(285), 102: uint16(102), 103: uint16(103), 104: uint16(104), @@ -149221,34 +150672,34 @@ var _yy_lookahead = [2285]uint16{ 111: uint16(111), 112: uint16(112), 113: uint16(113), - 114: uint16(239), - 115: uint16(240), - 116: uint16(239), - 117: uint16(240), - 118: uint16(210), - 119: uint16(211), - 120: uint16(212), - 121: uint16(314), - 122: uint16(315), - 123: uint16(314), - 124: uint16(59), - 125: uint16(316), + 114: uint16(59), + 115: uint16(186), + 116: uint16(187), + 117: uint16(188), + 118: uint16(189), + 119: uint16(190), + 120: uint16(191), + 121: uint16(310), + 122: uint16(239), + 123: uint16(317), + 124: uint16(318), + 125: uint16(196), 126: uint16(86), - 127: uint16(252), + 127: uint16(198), 128: uint16(88), - 129: uint16(252), + 129: uint16(317), 130: uint16(19), - 131: uint16(314), - 132: uint16(315), - 133: uint16(256), - 134: uint16(257), - 135: uint16(113), + 131: uint16(319), + 132: uint16(317), + 133: uint16(318), + 134: uint16(205), + 135: uint16(264), 136: uint16(25), - 137: uint16(72), - 138: uint16(296), - 139: uint16(138), - 140: uint16(139), - 141: uint16(266), + 137: uint16(211), + 138: uint16(212), + 139: uint16(213), + 140: uint16(205), + 141: uint16(121), 142: uint16(102), 143: uint16(103), 144: uint16(104), @@ -149276,50 +150727,50 @@ var _yy_lookahead = [2285]uint16{ 166: uint16(55), 167: uint16(56), 168: uint16(57), - 169: uint16(81), - 170: uint16(292), - 171: uint16(59), - 172: uint16(292), - 173: uint16(298), - 174: uint16(108), - 175: uint16(109), - 176: uint16(110), - 177: uint16(111), - 178: uint16(112), - 179: uint16(113), + 169: uint16(240), + 170: uint16(241), + 171: uint16(116), + 172: uint16(117), + 173: uint16(118), + 174: uint16(119), + 175: uint16(240), + 176: uint16(241), + 177: uint16(122), + 178: uint16(123), + 179: uint16(124), 180: uint16(69), - 181: uint16(116), - 182: uint16(117), - 183: uint16(118), - 184: uint16(72), + 181: uint16(298), + 182: uint16(253), + 183: uint16(194), + 184: uint16(255), 185: uint16(106), 186: uint16(107), - 187: uint16(193), - 188: uint16(111), - 189: uint16(112), - 190: uint16(113), + 187: uint16(132), + 188: uint16(253), + 189: uint16(141), + 190: uint16(255), 191: uint16(54), 192: uint16(55), 193: uint16(56), 194: uint16(57), 195: uint16(58), - 196: uint16(102), - 197: uint16(103), - 198: uint16(104), - 199: uint16(105), - 200: uint16(106), - 201: uint16(107), - 202: uint16(108), - 203: uint16(109), - 204: uint16(110), - 205: uint16(111), - 206: uint16(112), - 207: uint16(113), - 208: uint16(120), - 209: uint16(25), - 210: uint16(216), - 211: uint16(217), - 212: uint16(145), + 196: uint16(207), + 197: uint16(268), + 198: uint16(102), + 199: uint16(103), + 200: uint16(104), + 201: uint16(105), + 202: uint16(106), + 203: uint16(107), + 204: uint16(108), + 205: uint16(109), + 206: uint16(110), + 207: uint16(111), + 208: uint16(112), + 209: uint16(113), + 210: uint16(214), + 211: uint16(128), + 212: uint16(129), 213: uint16(102), 214: uint16(103), 215: uint16(104), @@ -149332,13 +150783,13 @@ var _yy_lookahead = [2285]uint16{ 222: uint16(111), 223: uint16(112), 224: uint16(113), - 225: uint16(231), - 226: uint16(138), - 227: uint16(139), - 228: uint16(116), - 229: uint16(117), - 230: uint16(118), - 231: uint16(164), + 225: uint16(134), + 226: uint16(25), + 227: uint16(136), + 228: uint16(137), + 229: uint16(300), + 230: uint16(165), + 231: uint16(166), 232: uint16(153), 233: uint16(19), 234: uint16(155), @@ -149358,12 +150809,12 @@ var _yy_lookahead = [2285]uint16{ 248: uint16(111), 249: uint16(112), 250: uint16(113), - 251: uint16(128), - 252: uint16(129), - 253: uint16(46), - 254: uint16(47), - 255: uint16(48), - 256: uint16(49), + 251: uint16(108), + 252: uint16(109), + 253: uint16(110), + 254: uint16(111), + 255: uint16(112), + 256: uint16(113), 257: uint16(43), 258: uint16(44), 259: uint16(45), @@ -149379,15 +150830,15 @@ var _yy_lookahead = [2285]uint16{ 269: uint16(55), 270: uint16(56), 271: uint16(57), - 272: uint16(216), - 273: uint16(193), - 274: uint16(25), - 275: uint16(59), - 276: uint16(193), + 272: uint16(276), + 273: uint16(277), + 274: uint16(278), + 275: uint16(113), + 276: uint16(194), 277: uint16(19), - 278: uint16(165), - 279: uint16(166), - 280: uint16(193), + 278: uint16(22), + 279: uint16(23), + 280: uint16(194), 281: uint16(67), 282: uint16(24), 283: uint16(102), @@ -149402,12 +150853,12 @@ var _yy_lookahead = [2285]uint16{ 292: uint16(111), 293: uint16(112), 294: uint16(113), - 295: uint16(73), - 296: uint16(216), - 297: uint16(217), - 298: uint16(59), - 299: uint16(216), - 300: uint16(217), + 295: uint16(220), + 296: uint16(250), + 297: uint16(59), + 298: uint16(252), + 299: uint16(217), + 300: uint16(218), 301: uint16(43), 302: uint16(44), 303: uint16(45), @@ -149435,38 +150886,38 @@ var _yy_lookahead = [2285]uint16{ 325: uint16(111), 326: uint16(112), 327: uint16(113), - 328: uint16(121), - 329: uint16(145), - 330: uint16(59), - 331: uint16(193), - 332: uint16(116), - 333: uint16(117), - 334: uint16(118), - 335: uint16(119), - 336: uint16(273), - 337: uint16(204), - 338: uint16(122), - 339: uint16(123), - 340: uint16(124), + 328: uint16(106), + 329: uint16(107), + 330: uint16(108), + 331: uint16(109), + 332: uint16(110), + 333: uint16(111), + 334: uint16(112), + 335: uint16(113), + 336: uint16(254), + 337: uint16(59), + 338: uint16(205), + 339: uint16(138), + 340: uint16(139), 341: uint16(19), 342: uint16(20), - 343: uint16(134), + 343: uint16(194), 344: uint16(22), - 345: uint16(136), - 346: uint16(137), - 347: uint16(19), - 348: uint16(132), - 349: uint16(127), - 350: uint16(128), - 351: uint16(129), - 352: uint16(24), - 353: uint16(22), - 354: uint16(23), - 355: uint16(116), - 356: uint16(117), - 357: uint16(118), + 345: uint16(263), + 346: uint16(22), + 347: uint16(23), + 348: uint16(231), + 349: uint16(25), + 350: uint16(72), + 351: uint16(276), + 352: uint16(277), + 353: uint16(278), + 354: uint16(116), + 355: uint16(117), + 356: uint16(118), + 357: uint16(101), 358: uint16(36), - 359: uint16(193), + 359: uint16(76), 360: uint16(102), 361: uint16(103), 362: uint16(104), @@ -149479,37 +150930,37 @@ var _yy_lookahead = [2285]uint16{ 369: uint16(111), 370: uint16(112), 371: uint16(113), - 372: uint16(239), + 372: uint16(89), 373: uint16(240), - 374: uint16(311), - 375: uint16(312), - 376: uint16(215), - 377: uint16(106), - 378: uint16(107), - 379: uint16(241), + 374: uint16(241), + 375: uint16(92), + 376: uint16(73), + 377: uint16(194), + 378: uint16(194), + 379: uint16(73), 380: uint16(19), 381: uint16(59), - 382: uint16(216), - 383: uint16(217), - 384: uint16(223), - 385: uint16(252), - 386: uint16(115), - 387: uint16(116), - 388: uint16(117), - 389: uint16(118), - 390: uint16(151), - 391: uint16(120), - 392: uint16(26), + 382: uint16(188), + 383: uint16(189), + 384: uint16(190), + 385: uint16(191), + 386: uint16(253), + 387: uint16(81), + 388: uint16(255), + 389: uint16(151), + 390: uint16(196), + 391: uint16(25), + 392: uint16(198), 393: uint16(71), - 394: uint16(193), - 395: uint16(308), - 396: uint16(309), - 397: uint16(193), - 398: uint16(149), - 399: uint16(128), - 400: uint16(313), - 401: uint16(216), - 402: uint16(269), + 394: uint16(116), + 395: uint16(117), + 396: uint16(118), + 397: uint16(311), + 398: uint16(312), + 399: uint16(205), + 400: uint16(217), + 401: uint16(218), + 402: uint16(316), 403: uint16(81), 404: uint16(43), 405: uint16(44), @@ -149526,50 +150977,50 @@ var _yy_lookahead = [2285]uint16{ 416: uint16(55), 417: uint16(56), 418: uint16(57), - 419: uint16(253), - 420: uint16(216), - 421: uint16(217), + 419: uint16(270), + 420: uint16(22), + 421: uint16(23), 422: uint16(100), - 423: uint16(95), - 424: uint16(153), - 425: uint16(59), - 426: uint16(155), - 427: uint16(261), + 423: uint16(25), + 424: uint16(59), + 425: uint16(101), + 426: uint16(138), + 427: uint16(139), 428: uint16(106), 429: uint16(107), - 430: uint16(25), - 431: uint16(193), - 432: uint16(101), - 433: uint16(193), - 434: uint16(193), - 435: uint16(231), + 430: uint16(127), + 431: uint16(128), + 432: uint16(129), + 433: uint16(127), + 434: uint16(240), + 435: uint16(241), 436: uint16(114), - 437: uint16(25), + 437: uint16(254), 438: uint16(116), 439: uint16(117), 440: uint16(118), - 441: uint16(113), - 442: uint16(304), + 441: uint16(76), + 442: uint16(76), 443: uint16(121), - 444: uint16(193), - 445: uint16(204), - 446: uint16(59), - 447: uint16(119), - 448: uint16(120), - 449: uint16(121), - 450: uint16(122), - 451: uint16(123), - 452: uint16(124), - 453: uint16(125), - 454: uint16(216), - 455: uint16(217), - 456: uint16(193), - 457: uint16(216), - 458: uint16(217), - 459: uint16(131), + 444: uint16(138), + 445: uint16(139), + 446: uint16(263), + 447: uint16(253), + 448: uint16(264), + 449: uint16(255), + 450: uint16(205), + 451: uint16(275), + 452: uint16(87), + 453: uint16(19), + 454: uint16(89), + 455: uint16(89), + 456: uint16(194), + 457: uint16(92), + 458: uint16(92), + 459: uint16(199), 460: uint16(138), 461: uint16(139), - 462: uint16(230), + 462: uint16(268), 463: uint16(102), 464: uint16(103), 465: uint16(104), @@ -149587,37 +151038,37 @@ var _yy_lookahead = [2285]uint16{ 477: uint16(155), 478: uint16(156), 479: uint16(157), - 480: uint16(239), - 481: uint16(240), - 482: uint16(116), - 483: uint16(117), - 484: uint16(118), - 485: uint16(76), - 486: uint16(193), - 487: uint16(23), + 480: uint16(81), + 481: uint16(116), + 482: uint16(117), + 483: uint16(118), + 484: uint16(129), + 485: uint16(240), + 486: uint16(241), + 487: uint16(224), 488: uint16(19), - 489: uint16(25), - 490: uint16(22), - 491: uint16(253), + 489: uint16(226), + 490: uint16(314), + 491: uint16(315), 492: uint16(23), - 493: uint16(252), - 494: uint16(253), - 495: uint16(108), - 496: uint16(87), - 497: uint16(204), - 498: uint16(89), - 499: uint16(261), - 500: uint16(198), - 501: uint16(92), - 502: uint16(261), - 503: uint16(116), - 504: uint16(117), - 505: uint16(118), - 506: uint16(193), - 507: uint16(306), - 508: uint16(307), - 509: uint16(216), - 510: uint16(217), + 493: uint16(25), + 494: uint16(300), + 495: uint16(59), + 496: uint16(22), + 497: uint16(234), + 498: uint16(253), + 499: uint16(101), + 500: uint16(255), + 501: uint16(236), + 502: uint16(237), + 503: uint16(26), + 504: uint16(194), + 505: uint16(183), + 506: uint16(194), + 507: uint16(152), + 508: uint16(72), + 509: uint16(22), + 510: uint16(145), 511: uint16(150), 512: uint16(43), 513: uint16(44), @@ -149634,34 +151085,34 @@ var _yy_lookahead = [2285]uint16{ 524: uint16(55), 525: uint16(56), 526: uint16(57), - 527: uint16(59), - 528: uint16(193), - 529: uint16(216), - 530: uint16(217), + 527: uint16(217), + 528: uint16(218), + 529: uint16(217), + 530: uint16(218), 531: uint16(19), - 532: uint16(239), - 533: uint16(240), - 534: uint16(283), + 532: uint16(189), + 533: uint16(59), + 534: uint16(191), 535: uint16(23), - 536: uint16(106), - 537: uint16(107), - 538: uint16(108), - 539: uint16(109), - 540: uint16(110), - 541: uint16(111), - 542: uint16(112), - 543: uint16(113), - 544: uint16(73), - 545: uint16(252), - 546: uint16(253), - 547: uint16(142), - 548: uint16(308), - 549: uint16(309), - 550: uint16(138), - 551: uint16(139), - 552: uint16(81), - 553: uint16(313), - 554: uint16(145), + 536: uint16(59), + 537: uint16(138), + 538: uint16(139), + 539: uint16(196), + 540: uint16(135), + 541: uint16(198), + 542: uint16(232), + 543: uint16(283), + 544: uint16(232), + 545: uint16(140), + 546: uint16(59), + 547: uint16(287), + 548: uint16(205), + 549: uint16(275), + 550: uint16(116), + 551: uint16(205), + 552: uint16(116), + 553: uint16(117), + 554: uint16(118), 555: uint16(43), 556: uint16(44), 557: uint16(45), @@ -149677,7 +151128,7 @@ var _yy_lookahead = [2285]uint16{ 567: uint16(55), 568: uint16(56), 569: uint16(57), - 570: uint16(307), + 570: uint16(194), 571: uint16(102), 572: uint16(103), 573: uint16(104), @@ -149690,37 +151141,37 @@ var _yy_lookahead = [2285]uint16{ 580: uint16(111), 581: uint16(112), 582: uint16(113), - 583: uint16(281), - 584: uint16(116), - 585: uint16(117), - 586: uint16(118), - 587: uint16(285), - 588: uint16(23), - 589: uint16(193), - 590: uint16(25), - 591: uint16(119), - 592: uint16(59), - 593: uint16(193), - 594: uint16(122), - 595: uint16(123), - 596: uint16(124), - 597: uint16(59), - 598: uint16(127), - 599: uint16(203), + 583: uint16(240), + 584: uint16(241), + 585: uint16(194), + 586: uint16(240), + 587: uint16(241), + 588: uint16(314), + 589: uint16(315), + 590: uint16(116), + 591: uint16(117), + 592: uint16(118), + 593: uint16(116), + 594: uint16(117), + 595: uint16(118), + 596: uint16(253), + 597: uint16(194), + 598: uint16(255), + 599: uint16(253), 600: uint16(59), - 601: uint16(205), + 601: uint16(255), 602: uint16(19), - 603: uint16(268), - 604: uint16(132), - 605: uint16(25), + 603: uint16(116), + 604: uint16(117), + 605: uint16(118), 606: uint16(23), 607: uint16(22), - 608: uint16(193), - 609: uint16(138), - 610: uint16(139), - 611: uint16(249), - 612: uint16(204), - 613: uint16(251), + 608: uint16(217), + 609: uint16(218), + 610: uint16(142), + 611: uint16(268), + 612: uint16(205), + 613: uint16(275), 614: uint16(102), 615: uint16(103), 616: uint16(104), @@ -149749,29 +151200,29 @@ var _yy_lookahead = [2285]uint16{ 639: uint16(56), 640: uint16(57), 641: uint16(19), - 642: uint16(22), - 643: uint16(23), + 642: uint16(194), + 643: uint16(300), 644: uint16(59), 645: uint16(23), - 646: uint16(25), - 647: uint16(239), - 648: uint16(240), - 649: uint16(116), - 650: uint16(117), - 651: uint16(118), - 652: uint16(193), - 653: uint16(11), - 654: uint16(116), - 655: uint16(117), - 656: uint16(118), - 657: uint16(116), + 646: uint16(119), + 647: uint16(240), + 648: uint16(241), + 649: uint16(122), + 650: uint16(123), + 651: uint16(124), + 652: uint16(314), + 653: uint16(315), + 654: uint16(194), + 655: uint16(236), + 656: uint16(237), + 657: uint16(194), 658: uint16(117), - 659: uint16(118), - 660: uint16(252), - 661: uint16(269), - 662: uint16(22), - 663: uint16(193), - 664: uint16(15), + 659: uint16(132), + 660: uint16(253), + 661: uint16(81), + 662: uint16(255), + 663: uint16(205), + 664: uint16(59), 665: uint16(43), 666: uint16(44), 667: uint16(45), @@ -149787,11 +151238,11 @@ var _yy_lookahead = [2285]uint16{ 677: uint16(55), 678: uint16(56), 679: uint16(57), - 680: uint16(273), - 681: uint16(143), - 682: uint16(193), - 683: uint16(118), - 684: uint16(143), + 680: uint16(217), + 681: uint16(218), + 682: uint16(194), + 683: uint16(194), + 684: uint16(194), 685: uint16(102), 686: uint16(103), 687: uint16(104), @@ -149804,33 +151255,33 @@ var _yy_lookahead = [2285]uint16{ 694: uint16(111), 695: uint16(112), 696: uint16(113), - 697: uint16(76), - 698: uint16(118), - 699: uint16(59), - 700: uint16(241), + 697: uint16(294), + 698: uint16(240), + 699: uint16(241), + 700: uint16(120), 701: uint16(116), 702: uint16(117), 703: uint16(118), - 704: uint16(304), - 705: uint16(216), + 704: uint16(59), + 705: uint16(194), 706: uint16(217), - 707: uint16(292), - 708: uint16(143), - 709: uint16(60), - 710: uint16(89), - 711: uint16(241), + 707: uint16(218), + 708: uint16(211), + 709: uint16(212), + 710: uint16(213), + 711: uint16(253), 712: uint16(19), - 713: uint16(92), - 714: uint16(193), - 715: uint16(193), + 713: uint16(255), + 714: uint16(194), + 715: uint16(19), 716: uint16(23), - 717: uint16(22), - 718: uint16(311), - 719: uint16(312), - 720: uint16(231), - 721: uint16(101), - 722: uint16(22), - 723: uint16(143), + 717: uint16(254), + 718: uint16(138), + 719: uint16(139), + 720: uint16(24), + 721: uint16(232), + 722: uint16(117), + 723: uint16(194), 724: uint16(102), 725: uint16(103), 726: uint16(104), @@ -149859,29 +151310,29 @@ var _yy_lookahead = [2285]uint16{ 749: uint16(56), 750: uint16(57), 751: uint16(19), - 752: uint16(193), - 753: uint16(193), - 754: uint16(59), + 752: uint16(264), + 753: uint16(108), + 754: uint16(76), 755: uint16(23), - 756: uint16(116), - 757: uint16(117), - 758: uint16(118), - 759: uint16(59), - 760: uint16(201), - 761: uint16(21), - 762: uint16(241), - 763: uint16(304), - 764: uint16(193), - 765: uint16(206), - 766: uint16(127), - 767: uint16(128), - 768: uint16(129), - 769: uint16(193), - 770: uint16(128), - 771: uint16(129), - 772: uint16(235), - 773: uint16(236), - 774: uint16(304), + 756: uint16(127), + 757: uint16(128), + 758: uint16(129), + 759: uint16(311), + 760: uint16(312), + 761: uint16(116), + 762: uint16(117), + 763: uint16(118), + 764: uint16(316), + 765: uint16(87), + 766: uint16(306), + 767: uint16(89), + 768: uint16(308), + 769: uint16(194), + 770: uint16(92), + 771: uint16(22), + 772: uint16(59), + 773: uint16(194), + 774: uint16(22), 775: uint16(43), 776: uint16(44), 777: uint16(45), @@ -149897,11 +151348,11 @@ var _yy_lookahead = [2285]uint16{ 787: uint16(55), 788: uint16(56), 789: uint16(57), - 790: uint16(22), - 791: uint16(193), - 792: uint16(216), - 793: uint16(217), - 794: uint16(193), + 790: uint16(194), + 791: uint16(95), + 792: uint16(217), + 793: uint16(218), + 794: uint16(265), 795: uint16(102), 796: uint16(103), 797: uint16(104), @@ -149914,33 +151365,33 @@ var _yy_lookahead = [2285]uint16{ 804: uint16(111), 805: uint16(112), 806: uint16(113), - 807: uint16(231), - 808: uint16(193), - 809: uint16(193), - 810: uint16(193), - 811: uint16(116), - 812: uint16(117), - 813: uint16(118), - 814: uint16(216), - 815: uint16(217), - 816: uint16(116), - 817: uint16(117), - 818: uint16(118), - 819: uint16(226), - 820: uint16(80), - 821: uint16(193), + 807: uint16(232), + 808: uint16(59), + 809: uint16(113), + 810: uint16(25), + 811: uint16(59), + 812: uint16(194), + 813: uint16(217), + 814: uint16(218), + 815: uint16(119), + 816: uint16(120), + 817: uint16(121), + 818: uint16(122), + 819: uint16(123), + 820: uint16(124), + 821: uint16(125), 822: uint16(19), - 823: uint16(235), - 824: uint16(236), - 825: uint16(304), + 823: uint16(145), + 824: uint16(194), + 825: uint16(194), 826: uint16(23), - 827: uint16(211), - 828: uint16(212), - 829: uint16(231), - 830: uint16(204), - 831: uint16(216), - 832: uint16(217), - 833: uint16(205), + 827: uint16(131), + 828: uint16(232), + 829: uint16(116), + 830: uint16(117), + 831: uint16(118), + 832: uint16(35), + 833: uint16(194), 834: uint16(102), 835: uint16(103), 836: uint16(104), @@ -149969,29 +151420,29 @@ var _yy_lookahead = [2285]uint16{ 859: uint16(56), 860: uint16(57), 861: uint16(19), - 862: uint16(193), - 863: uint16(123), - 864: uint16(76), - 865: uint16(239), - 866: uint16(240), - 867: uint16(193), - 868: uint16(253), - 869: uint16(239), - 870: uint16(240), - 871: uint16(239), - 872: uint16(240), - 873: uint16(244), - 874: uint16(106), - 875: uint16(107), - 876: uint16(193), - 877: uint16(89), - 878: uint16(252), - 879: uint16(193), - 880: uint16(92), - 881: uint16(59), - 882: uint16(252), - 883: uint16(254), - 884: uint16(252), + 862: uint16(194), + 863: uint16(66), + 864: uint16(194), + 865: uint16(116), + 866: uint16(117), + 867: uint16(118), + 868: uint16(116), + 869: uint16(117), + 870: uint16(118), + 871: uint16(74), + 872: uint16(242), + 873: uint16(294), + 874: uint16(194), + 875: uint16(194), + 876: uint16(206), + 877: uint16(23), + 878: uint16(194), + 879: uint16(25), + 880: uint16(194), + 881: uint16(111), + 882: uint16(112), + 883: uint16(113), + 884: uint16(25), 885: uint16(43), 886: uint16(44), 887: uint16(45), @@ -150007,11 +151458,11 @@ var _yy_lookahead = [2285]uint16{ 897: uint16(55), 898: uint16(56), 899: uint16(57), - 900: uint16(284), - 901: uint16(161), - 902: uint16(216), + 900: uint16(24), + 901: uint16(194), + 902: uint16(194), 903: uint16(217), - 904: uint16(193), + 904: uint16(218), 905: uint16(102), 906: uint16(103), 907: uint16(104), @@ -150024,33 +151475,33 @@ var _yy_lookahead = [2285]uint16{ 914: uint16(111), 915: uint16(112), 916: uint16(113), - 917: uint16(231), - 918: uint16(193), - 919: uint16(244), - 920: uint16(187), - 921: uint16(188), - 922: uint16(189), - 923: uint16(190), - 924: uint16(7), - 925: uint16(8), - 926: uint16(9), - 927: uint16(309), - 928: uint16(195), - 929: uint16(254), - 930: uint16(197), - 931: uint16(313), + 917: uint16(241), + 918: uint16(232), + 919: uint16(194), + 920: uint16(212), + 921: uint16(213), + 922: uint16(242), + 923: uint16(242), + 924: uint16(217), + 925: uint16(218), + 926: uint16(242), + 927: uint16(130), + 928: uint16(11), + 929: uint16(253), + 930: uint16(194), + 931: uint16(255), 932: uint16(19), - 933: uint16(127), - 934: uint16(128), - 935: uint16(129), - 936: uint16(262), - 937: uint16(204), - 938: uint16(22), - 939: uint16(117), - 940: uint16(24), - 941: uint16(216), + 933: uint16(265), + 934: uint16(149), + 935: uint16(59), + 936: uint16(306), + 937: uint16(194), + 938: uint16(308), + 939: uint16(232), + 940: uint16(309), + 941: uint16(310), 942: uint16(217), - 943: uint16(273), + 943: uint16(218), 944: uint16(102), 945: uint16(103), 946: uint16(104), @@ -150078,36 +151529,36 @@ var _yy_lookahead = [2285]uint16{ 968: uint16(55), 969: uint16(56), 970: uint16(57), - 971: uint16(193), - 972: uint16(239), - 973: uint16(240), - 974: uint16(193), - 975: uint16(59), + 971: uint16(194), + 972: uint16(194), + 973: uint16(59), + 974: uint16(194), + 975: uint16(239), 976: uint16(19), - 977: uint16(188), - 978: uint16(253), - 979: uint16(190), - 980: uint16(193), - 981: uint16(311), - 982: uint16(312), - 983: uint16(16), - 984: uint16(195), - 985: uint16(252), - 986: uint16(197), - 987: uint16(193), - 988: uint16(19), - 989: uint16(301), - 990: uint16(302), - 991: uint16(135), - 992: uint16(193), - 993: uint16(204), - 994: uint16(216), + 977: uint16(194), + 978: uint16(25), + 979: uint16(254), + 980: uint16(303), + 981: uint16(304), + 982: uint16(23), + 983: uint16(194), + 984: uint16(25), + 985: uint16(126), + 986: uint16(306), + 987: uint16(306), + 988: uint16(308), + 989: uint16(308), + 990: uint16(306), + 991: uint16(271), + 992: uint16(308), + 993: uint16(117), + 994: uint16(286), 995: uint16(217), - 996: uint16(140), - 997: uint16(216), - 998: uint16(217), - 999: uint16(266), - 1000: uint16(204), + 996: uint16(218), + 997: uint16(217), + 998: uint16(218), + 999: uint16(194), + 1000: uint16(194), 1001: uint16(159), 1002: uint16(45), 1003: uint16(46), @@ -150134,38 +151585,38 @@ var _yy_lookahead = [2285]uint16{ 1024: uint16(111), 1025: uint16(112), 1026: uint16(113), - 1027: uint16(12), + 1027: uint16(59), 1028: uint16(239), - 1029: uint16(240), - 1030: uint16(193), - 1031: uint16(298), - 1032: uint16(238), - 1033: uint16(117), - 1034: uint16(253), - 1035: uint16(239), + 1029: uint16(194), + 1030: uint16(116), + 1031: uint16(117), + 1032: uint16(118), + 1033: uint16(260), + 1034: uint16(254), + 1035: uint16(194), 1036: uint16(240), - 1037: uint16(238), - 1038: uint16(259), - 1039: uint16(260), - 1040: uint16(193), - 1041: uint16(252), - 1042: uint16(27), - 1043: uint16(193), - 1044: uint16(77), - 1045: uint16(193), - 1046: uint16(79), - 1047: uint16(204), - 1048: uint16(252), - 1049: uint16(262), - 1050: uint16(193), - 1051: uint16(299), - 1052: uint16(300), - 1053: uint16(193), - 1054: uint16(100), - 1055: uint16(266), - 1056: uint16(278), - 1057: uint16(42), - 1058: uint16(204), + 1037: uint16(241), + 1038: uint16(194), + 1039: uint16(233), + 1040: uint16(205), + 1041: uint16(240), + 1042: uint16(241), + 1043: uint16(205), + 1044: uint16(239), + 1045: uint16(128), + 1046: uint16(129), + 1047: uint16(270), + 1048: uint16(265), + 1049: uint16(253), + 1050: uint16(194), + 1051: uint16(255), + 1052: uint16(217), + 1053: uint16(218), + 1054: uint16(253), + 1055: uint16(194), + 1056: uint16(255), + 1057: uint16(143), + 1058: uint16(280), 1059: uint16(102), 1060: uint16(103), 1061: uint16(104), @@ -150178,51 +151629,51 @@ var _yy_lookahead = [2285]uint16{ 1068: uint16(111), 1069: uint16(112), 1070: uint16(113), - 1071: uint16(117), + 1071: uint16(118), 1072: uint16(159), - 1073: uint16(216), - 1074: uint16(217), - 1075: uint16(121), - 1076: uint16(216), - 1077: uint16(217), - 1078: uint16(63), - 1079: uint16(193), - 1080: uint16(193), - 1081: uint16(193), - 1082: uint16(239), - 1083: uint16(240), - 1084: uint16(115), - 1085: uint16(116), - 1086: uint16(193), - 1087: uint16(298), - 1088: uint16(73), - 1089: uint16(240), - 1090: uint16(238), - 1091: uint16(231), + 1073: uint16(217), + 1074: uint16(218), + 1075: uint16(240), + 1076: uint16(241), + 1077: uint16(118), + 1078: uint16(240), + 1079: uint16(241), + 1080: uint16(194), + 1081: uint16(194), + 1082: uint16(194), + 1083: uint16(239), + 1084: uint16(116), + 1085: uint16(117), + 1086: uint16(118), + 1087: uint16(22), + 1088: uint16(253), + 1089: uint16(254), + 1090: uint16(255), + 1091: uint16(253), 1092: uint16(19), - 1093: uint16(239), - 1094: uint16(240), - 1095: uint16(252), - 1096: uint16(22), + 1093: uint16(255), + 1094: uint16(233), + 1095: uint16(194), + 1096: uint16(143), 1097: uint16(24), - 1098: uint16(211), + 1098: uint16(263), 1099: uint16(212), - 1100: uint16(263), - 1101: uint16(252), - 1102: uint16(216), + 1100: uint16(213), + 1101: uint16(194), + 1102: uint16(143), 1103: uint16(217), - 1104: uint16(216), + 1104: uint16(218), 1105: uint16(217), - 1106: uint16(252), - 1107: uint16(153), - 1108: uint16(154), - 1109: uint16(155), - 1110: uint16(253), - 1111: uint16(193), + 1106: uint16(218), + 1107: uint16(261), + 1108: uint16(262), + 1109: uint16(271), + 1110: uint16(254), + 1111: uint16(143), 1112: uint16(19), - 1113: uint16(144), - 1114: uint16(213), - 1115: uint16(268), + 1113: uint16(7), + 1114: uint16(8), + 1115: uint16(9), 1116: uint16(43), 1117: uint16(44), 1118: uint16(45), @@ -150238,11 +151689,11 @@ var _yy_lookahead = [2285]uint16{ 1128: uint16(55), 1129: uint16(56), 1130: uint16(57), - 1131: uint16(193), + 1131: uint16(16), 1132: uint16(19), - 1133: uint16(59), - 1134: uint16(216), - 1135: uint16(217), + 1133: uint16(22), + 1134: uint16(23), + 1135: uint16(294), 1136: uint16(43), 1137: uint16(44), 1138: uint16(45), @@ -150258,11 +151709,11 @@ var _yy_lookahead = [2285]uint16{ 1148: uint16(55), 1149: uint16(56), 1150: uint16(57), - 1151: uint16(193), - 1152: uint16(19), - 1153: uint16(24), - 1154: uint16(216), - 1155: uint16(217), + 1151: uint16(312), + 1152: uint16(194), + 1153: uint16(214), + 1154: uint16(21), + 1155: uint16(316), 1156: uint16(43), 1157: uint16(44), 1158: uint16(45), @@ -150278,10 +151729,10 @@ var _yy_lookahead = [2285]uint16{ 1168: uint16(55), 1169: uint16(56), 1170: uint16(57), - 1171: uint16(284), - 1172: uint16(193), - 1173: uint16(208), - 1174: uint16(209), + 1171: uint16(106), + 1172: uint16(107), + 1173: uint16(286), + 1174: uint16(194), 1175: uint16(102), 1176: uint16(103), 1177: uint16(104), @@ -150294,14 +151745,14 @@ var _yy_lookahead = [2285]uint16{ 1184: uint16(111), 1185: uint16(112), 1186: uint16(113), - 1187: uint16(286), - 1188: uint16(59), - 1189: uint16(193), - 1190: uint16(232), - 1191: uint16(117), - 1192: uint16(291), - 1193: uint16(193), - 1194: uint16(193), + 1187: uint16(207), + 1188: uint16(158), + 1189: uint16(59), + 1190: uint16(160), + 1191: uint16(22), + 1192: uint16(77), + 1193: uint16(24), + 1194: uint16(79), 1195: uint16(102), 1196: uint16(103), 1197: uint16(104), @@ -150314,14 +151765,14 @@ var _yy_lookahead = [2285]uint16{ 1204: uint16(111), 1205: uint16(112), 1206: uint16(113), - 1207: uint16(193), - 1208: uint16(204), - 1209: uint16(22), - 1210: uint16(23), - 1211: uint16(193), - 1212: uint16(25), - 1213: uint16(66), - 1214: uint16(193), + 1207: uint16(194), + 1208: uint16(194), + 1209: uint16(229), + 1210: uint16(194), + 1211: uint16(231), + 1212: uint16(101), + 1213: uint16(80), + 1214: uint16(22), 1215: uint16(102), 1216: uint16(103), 1217: uint16(104), @@ -150334,39 +151785,39 @@ var _yy_lookahead = [2285]uint16{ 1224: uint16(111), 1225: uint16(112), 1226: uint16(113), - 1227: uint16(193), - 1228: uint16(193), - 1229: uint16(193), - 1230: uint16(216), - 1231: uint16(217), - 1232: uint16(85), - 1233: uint16(193), - 1234: uint16(238), + 1227: uint16(288), + 1228: uint16(59), + 1229: uint16(12), + 1230: uint16(217), + 1231: uint16(218), + 1232: uint16(293), + 1233: uint16(217), + 1234: uint16(218), 1235: uint16(19), - 1236: uint16(16), - 1237: uint16(216), - 1238: uint16(217), - 1239: uint16(238), - 1240: uint16(193), - 1241: uint16(94), - 1242: uint16(193), - 1243: uint16(239), - 1244: uint16(240), - 1245: uint16(231), - 1246: uint16(117), - 1247: uint16(268), - 1248: uint16(35), - 1249: uint16(116), - 1250: uint16(216), - 1251: uint16(217), - 1252: uint16(216), - 1253: uint16(217), - 1254: uint16(22), - 1255: uint16(23), - 1256: uint16(252), - 1257: uint16(25), - 1258: uint16(208), - 1259: uint16(209), + 1236: uint16(106), + 1237: uint16(107), + 1238: uint16(59), + 1239: uint16(19), + 1240: uint16(16), + 1241: uint16(127), + 1242: uint16(128), + 1243: uint16(129), + 1244: uint16(27), + 1245: uint16(115), + 1246: uint16(116), + 1247: uint16(117), + 1248: uint16(118), + 1249: uint16(194), + 1250: uint16(120), + 1251: uint16(59), + 1252: uint16(22), + 1253: uint16(194), + 1254: uint16(24), + 1255: uint16(194), + 1256: uint16(123), + 1257: uint16(100), + 1258: uint16(128), + 1259: uint16(42), 1260: uint16(44), 1261: uint16(45), 1262: uint16(46), @@ -150381,50 +151832,50 @@ var _yy_lookahead = [2285]uint16{ 1271: uint16(55), 1272: uint16(56), 1273: uint16(57), - 1274: uint16(193), - 1275: uint16(193), - 1276: uint16(19), - 1277: uint16(5), - 1278: uint16(59), - 1279: uint16(66), - 1280: uint16(193), - 1281: uint16(263), - 1282: uint16(10), - 1283: uint16(11), - 1284: uint16(12), - 1285: uint16(13), - 1286: uint16(14), - 1287: uint16(74), - 1288: uint16(101), - 1289: uint16(17), - 1290: uint16(193), - 1291: uint16(46), - 1292: uint16(193), - 1293: uint16(146), - 1294: uint16(193), - 1295: uint16(76), - 1296: uint16(213), - 1297: uint16(77), - 1298: uint16(263), - 1299: uint16(79), - 1300: uint16(12), - 1301: uint16(260), - 1302: uint16(30), - 1303: uint16(46), - 1304: uint16(32), - 1305: uint16(264), - 1306: uint16(87), - 1307: uint16(193), - 1308: uint16(89), - 1309: uint16(29), - 1310: uint16(263), - 1311: uint16(92), - 1312: uint16(40), - 1313: uint16(33), - 1314: uint16(232), - 1315: uint16(27), - 1316: uint16(193), - 1317: uint16(108), + 1274: uint16(117), + 1275: uint16(194), + 1276: uint16(217), + 1277: uint16(218), + 1278: uint16(121), + 1279: uint16(100), + 1280: uint16(63), + 1281: uint16(194), + 1282: uint16(245), + 1283: uint16(153), + 1284: uint16(194), + 1285: uint16(155), + 1286: uint16(117), + 1287: uint16(19), + 1288: uint16(115), + 1289: uint16(194), + 1290: uint16(73), + 1291: uint16(214), + 1292: uint16(194), + 1293: uint16(256), + 1294: uint16(161), + 1295: uint16(116), + 1296: uint16(117), + 1297: uint16(194), + 1298: uint16(217), + 1299: uint16(218), + 1300: uint16(121), + 1301: uint16(77), + 1302: uint16(194), + 1303: uint16(79), + 1304: uint16(217), + 1305: uint16(218), + 1306: uint16(194), + 1307: uint16(217), + 1308: uint16(218), + 1309: uint16(117), + 1310: uint16(153), + 1311: uint16(154), + 1312: uint16(155), + 1313: uint16(254), + 1314: uint16(46), + 1315: uint16(217), + 1316: uint16(218), + 1317: uint16(144), 1318: uint16(102), 1319: uint16(103), 1320: uint16(104), @@ -150437,1025 +151888,1068 @@ var _yy_lookahead = [2285]uint16{ 1327: uint16(111), 1328: uint16(112), 1329: uint16(113), - 1330: uint16(42), - 1331: uint16(138), - 1332: uint16(139), - 1333: uint16(101), - 1334: uint16(193), - 1335: uint16(116), - 1336: uint16(117), - 1337: uint16(118), + 1330: uint16(232), + 1331: uint16(270), + 1332: uint16(153), + 1333: uint16(154), + 1334: uint16(155), + 1335: uint16(115), + 1336: uint16(116), + 1337: uint16(66), 1338: uint16(19), 1339: uint16(20), - 1340: uint16(255), + 1340: uint16(183), 1341: uint16(22), - 1342: uint16(70), - 1343: uint16(130), - 1344: uint16(135), - 1345: uint16(65), - 1346: uint16(256), - 1347: uint16(257), - 1348: uint16(193), - 1349: uint16(140), - 1350: uint16(78), - 1351: uint16(63), - 1352: uint16(193), - 1353: uint16(81), - 1354: uint16(193), + 1342: uint16(12), + 1343: uint16(312), + 1344: uint16(254), + 1345: uint16(194), + 1346: uint16(262), + 1347: uint16(316), + 1348: uint16(209), + 1349: uint16(210), + 1350: uint16(266), + 1351: uint16(239), + 1352: uint16(194), + 1353: uint16(194), + 1354: uint16(108), 1355: uint16(36), - 1356: uint16(193), - 1357: uint16(216), - 1358: uint16(217), - 1359: uint16(193), - 1360: uint16(115), - 1361: uint16(193), - 1362: uint16(263), - 1363: uint16(193), - 1364: uint16(145), - 1365: uint16(268), - 1366: uint16(59), + 1356: uint16(85), + 1357: uint16(27), + 1358: uint16(19), + 1359: uint16(20), + 1360: uint16(265), + 1361: uint16(22), + 1362: uint16(183), + 1363: uint16(245), + 1364: uint16(144), + 1365: uint16(94), + 1366: uint16(25), 1367: uint16(48), - 1368: uint16(193), - 1369: uint16(193), - 1370: uint16(98), - 1371: uint16(193), - 1372: uint16(115), - 1373: uint16(193), - 1374: uint16(291), - 1375: uint16(216), + 1368: uint16(217), + 1369: uint16(218), + 1370: uint16(293), + 1371: uint16(194), + 1372: uint16(42), + 1373: uint16(270), + 1374: uint16(256), + 1375: uint16(36), 1376: uint16(217), - 1377: uint16(193), + 1377: uint16(218), 1378: uint16(59), - 1379: uint16(216), - 1380: uint16(217), - 1381: uint16(161), - 1382: uint16(216), - 1383: uint16(217), - 1384: uint16(216), - 1385: uint16(217), - 1386: uint16(216), - 1387: uint16(217), - 1388: uint16(131), - 1389: uint16(193), + 1379: uint16(194), + 1380: uint16(25), + 1381: uint16(135), + 1382: uint16(194), + 1383: uint16(115), + 1384: uint16(194), + 1385: uint16(161), + 1386: uint16(140), + 1387: uint16(194), + 1388: uint16(194), + 1389: uint16(15), 1390: uint16(71), - 1391: uint16(193), - 1392: uint16(216), - 1393: uint16(217), - 1394: uint16(216), - 1395: uint16(217), - 1396: uint16(216), - 1397: uint16(217), - 1398: uint16(193), - 1399: uint16(260), - 1400: uint16(216), - 1401: uint16(217), - 1402: uint16(19), - 1403: uint16(264), + 1391: uint16(194), + 1392: uint16(312), + 1393: uint16(63), + 1394: uint16(217), + 1395: uint16(218), + 1396: uint16(316), + 1397: uint16(194), + 1398: uint16(59), + 1399: uint16(131), + 1400: uint16(301), + 1401: uint16(302), + 1402: uint16(217), + 1403: uint16(218), 1404: uint16(85), - 1405: uint16(133), - 1406: uint16(244), - 1407: uint16(100), - 1408: uint16(193), + 1405: uint16(217), + 1406: uint16(218), + 1407: uint16(217), + 1408: uint16(218), 1409: uint16(90), - 1410: uint16(138), - 1411: uint16(139), - 1412: uint16(216), - 1413: uint16(217), - 1414: uint16(216), - 1415: uint16(217), - 1416: uint16(254), - 1417: uint16(244), - 1418: uint16(193), + 1410: uint16(71), + 1411: uint16(217), + 1412: uint16(218), + 1413: uint16(19), + 1414: uint16(217), + 1415: uint16(218), + 1416: uint16(245), + 1417: uint16(146), + 1418: uint16(262), 1419: uint16(100), - 1420: uint16(193), - 1421: uint16(216), - 1422: uint16(217), - 1423: uint16(116), - 1424: uint16(117), + 1420: uint16(217), + 1421: uint16(218), + 1422: uint16(266), + 1423: uint16(265), + 1424: uint16(85), 1425: uint16(106), 1426: uint16(107), - 1427: uint16(254), - 1428: uint16(121), - 1429: uint16(193), - 1430: uint16(115), - 1431: uint16(216), - 1432: uint16(217), + 1427: uint16(256), + 1428: uint16(312), + 1429: uint16(90), + 1430: uint16(209), + 1431: uint16(210), + 1432: uint16(316), 1433: uint16(114), - 1434: uint16(162), + 1434: uint16(60), 1435: uint16(116), 1436: uint16(117), 1437: uint16(118), - 1438: uint16(115), - 1439: uint16(244), + 1438: uint16(194), + 1439: uint16(100), 1440: uint16(121), - 1441: uint16(216), - 1442: uint16(217), - 1443: uint16(216), - 1444: uint16(217), - 1445: uint16(193), - 1446: uint16(309), - 1447: uint16(193), - 1448: uint16(31), - 1449: uint16(254), - 1450: uint16(313), - 1451: uint16(309), - 1452: uint16(216), - 1453: uint16(217), - 1454: uint16(309), - 1455: uint16(313), - 1456: uint16(39), - 1457: uint16(193), - 1458: uint16(313), - 1459: uint16(309), - 1460: uint16(153), - 1461: uint16(154), - 1462: uint16(155), - 1463: uint16(313), - 1464: uint16(193), - 1465: uint16(150), - 1466: uint16(25), - 1467: uint16(144), - 1468: uint16(216), - 1469: uint16(217), - 1470: uint16(216), - 1471: uint16(217), + 1441: uint16(194), + 1442: uint16(194), + 1443: uint16(145), + 1444: uint16(115), + 1445: uint16(106), + 1446: uint16(107), + 1447: uint16(19), + 1448: uint16(46), + 1449: uint16(19), + 1450: uint16(20), + 1451: uint16(24), + 1452: uint16(22), + 1453: uint16(114), + 1454: uint16(194), + 1455: uint16(116), + 1456: uint16(117), + 1457: uint16(118), + 1458: uint16(194), + 1459: uint16(245), + 1460: uint16(121), + 1461: uint16(194), + 1462: uint16(164), + 1463: uint16(194), + 1464: uint16(217), + 1465: uint16(218), + 1466: uint16(36), + 1467: uint16(194), + 1468: uint16(258), + 1469: uint16(259), + 1470: uint16(256), + 1471: uint16(194), 1472: uint16(153), 1473: uint16(154), 1474: uint16(155), 1475: uint16(156), 1476: uint16(157), - 1478: uint16(1), - 1479: uint16(2), - 1480: uint16(216), + 1477: uint16(217), + 1478: uint16(218), + 1479: uint16(150), + 1480: uint16(31), 1481: uint16(217), - 1482: uint16(5), - 1483: uint16(149), - 1484: uint16(150), - 1485: uint16(22), - 1486: uint16(193), - 1487: uint16(10), - 1488: uint16(11), - 1489: uint16(12), - 1490: uint16(13), - 1491: uint16(14), - 1492: uint16(193), - 1493: uint16(158), - 1494: uint16(17), - 1495: uint16(160), - 1496: uint16(193), - 1497: uint16(19), - 1498: uint16(20), - 1499: uint16(116), - 1500: uint16(22), - 1501: uint16(25), - 1502: uint16(193), - 1503: uint16(24), - 1504: uint16(22), - 1505: uint16(193), - 1506: uint16(24), - 1507: uint16(30), - 1508: uint16(226), - 1509: uint16(32), - 1510: uint16(19), - 1511: uint16(20), - 1512: uint16(226), - 1513: uint16(22), - 1514: uint16(36), - 1515: uint16(193), - 1516: uint16(53), - 1517: uint16(40), - 1518: uint16(193), - 1519: uint16(216), - 1520: uint16(217), - 1521: uint16(193), - 1522: uint16(23), - 1523: uint16(193), - 1524: uint16(25), - 1525: uint16(216), - 1526: uint16(217), - 1527: uint16(36), - 1528: uint16(216), - 1529: uint16(217), - 1530: uint16(193), - 1531: uint16(99), - 1532: uint16(193), - 1533: uint16(193), - 1534: uint16(22), - 1535: uint16(193), - 1536: uint16(193), - 1537: uint16(59), - 1538: uint16(216), + 1482: uint16(218), + 1483: uint16(142), + 1484: uint16(217), + 1485: uint16(218), + 1486: uint16(217), + 1487: uint16(218), + 1488: uint16(39), + 1489: uint16(59), + 1490: uint16(217), + 1491: uint16(218), + 1492: uint16(153), + 1493: uint16(154), + 1494: uint16(155), + 1495: uint16(156), + 1496: uint16(157), + 1497: uint16(149), + 1498: uint16(150), + 1499: uint16(5), + 1500: uint16(145), + 1501: uint16(71), + 1502: uint16(183), + 1503: uint16(245), + 1504: uint16(10), + 1505: uint16(11), + 1506: uint16(12), + 1507: uint16(13), + 1508: uint16(14), + 1509: uint16(194), + 1510: uint16(116), + 1511: uint16(17), + 1512: uint16(129), + 1513: uint16(227), + 1514: uint16(256), + 1515: uint16(85), + 1516: uint16(194), + 1517: uint16(115), + 1518: uint16(194), + 1519: uint16(23), + 1520: uint16(90), + 1521: uint16(25), + 1522: uint16(183), + 1523: uint16(99), + 1524: uint16(30), + 1525: uint16(97), + 1526: uint16(32), + 1527: uint16(22), + 1528: uint16(22), + 1529: uint16(194), + 1530: uint16(100), + 1531: uint16(194), + 1532: uint16(217), + 1533: uint16(218), + 1534: uint16(40), + 1535: uint16(152), + 1536: uint16(106), + 1537: uint16(107), + 1538: uint16(23), 1539: uint16(217), - 1540: uint16(193), - 1541: uint16(216), - 1542: uint16(217), - 1543: uint16(193), - 1544: uint16(216), - 1545: uint16(217), - 1546: uint16(193), - 1547: uint16(70), - 1548: uint16(129), - 1549: uint16(71), - 1550: uint16(59), - 1551: uint16(129), - 1552: uint16(193), - 1553: uint16(216), + 1540: uint16(218), + 1541: uint16(194), + 1542: uint16(19), + 1543: uint16(20), + 1544: uint16(114), + 1545: uint16(22), + 1546: uint16(116), + 1547: uint16(117), + 1548: uint16(118), + 1549: uint16(257), + 1550: uint16(194), + 1551: uint16(121), + 1552: uint16(217), + 1553: uint16(218), 1554: uint16(217), - 1555: uint16(78), - 1556: uint16(216), - 1557: uint16(217), - 1558: uint16(81), - 1559: uint16(216), - 1560: uint16(217), - 1561: uint16(193), - 1562: uint16(71), - 1563: uint16(85), - 1564: uint16(193), - 1565: uint16(133), - 1566: uint16(193), - 1567: uint16(126), - 1568: uint16(90), - 1569: uint16(216), - 1570: uint16(217), - 1571: uint16(152), - 1572: uint16(258), - 1573: uint16(61), - 1574: uint16(152), - 1575: uint16(98), - 1576: uint16(85), - 1577: uint16(193), - 1578: uint16(100), - 1579: uint16(193), - 1580: uint16(23), - 1581: uint16(90), - 1582: uint16(25), - 1583: uint16(121), - 1584: uint16(106), - 1585: uint16(107), - 1586: uint16(23), - 1587: uint16(216), - 1588: uint16(217), - 1589: uint16(216), - 1590: uint16(217), - 1591: uint16(100), - 1592: uint16(114), - 1593: uint16(131), - 1594: uint16(116), - 1595: uint16(117), - 1596: uint16(118), - 1597: uint16(106), - 1598: uint16(107), - 1599: uint16(121), - 1600: uint16(216), - 1601: uint16(217), - 1602: uint16(216), - 1603: uint16(217), - 1604: uint16(193), - 1605: uint16(114), - 1606: uint16(193), - 1607: uint16(116), - 1608: uint16(117), - 1609: uint16(118), - 1610: uint16(133), - 1611: uint16(22), - 1612: uint16(121), - 1613: uint16(193), - 1614: uint16(59), - 1615: uint16(138), - 1616: uint16(139), - 1617: uint16(193), - 1618: uint16(142), - 1619: uint16(193), - 1620: uint16(141), - 1621: uint16(23), - 1622: uint16(23), - 1623: uint16(25), - 1624: uint16(25), - 1625: uint16(120), - 1626: uint16(121), - 1627: uint16(216), - 1628: uint16(217), - 1629: uint16(216), - 1630: uint16(217), - 1631: uint16(153), - 1632: uint16(154), - 1633: uint16(155), - 1634: uint16(156), - 1635: uint16(157), - 1636: uint16(216), - 1637: uint16(217), - 1638: uint16(19), - 1639: uint16(162), - 1640: uint16(216), - 1641: uint16(217), - 1642: uint16(216), - 1643: uint16(217), - 1644: uint16(153), - 1645: uint16(154), - 1646: uint16(155), - 1647: uint16(156), - 1648: uint16(157), - 1649: uint16(1), - 1650: uint16(2), - 1651: uint16(193), - 1652: uint16(59), - 1653: uint16(5), - 1654: uint16(19), - 1655: uint16(20), - 1656: uint16(318), - 1657: uint16(22), - 1658: uint16(10), - 1659: uint16(11), - 1660: uint16(12), - 1661: uint16(13), - 1662: uint16(14), - 1663: uint16(193), - 1664: uint16(59), - 1665: uint16(17), - 1666: uint16(193), - 1667: uint16(23), - 1668: uint16(23), - 1669: uint16(25), - 1670: uint16(25), - 1671: uint16(36), - 1672: uint16(117), - 1673: uint16(193), - 1674: uint16(216), - 1675: uint16(217), - 1676: uint16(193), - 1677: uint16(23), - 1678: uint16(30), - 1679: uint16(25), - 1680: uint16(32), - 1681: uint16(19), - 1682: uint16(20), - 1683: uint16(23), - 1684: uint16(22), - 1685: uint16(25), - 1686: uint16(216), - 1687: uint16(217), - 1688: uint16(40), - 1689: uint16(216), + 1555: uint16(218), + 1556: uint16(194), + 1557: uint16(133), + 1558: uint16(53), + 1559: uint16(36), + 1560: uint16(23), + 1561: uint16(23), + 1562: uint16(25), + 1563: uint16(25), + 1564: uint16(70), + 1565: uint16(120), + 1566: uint16(121), + 1567: uint16(61), + 1568: uint16(141), + 1569: uint16(7), + 1570: uint16(8), + 1571: uint16(121), + 1572: uint16(78), + 1573: uint16(217), + 1574: uint16(218), + 1575: uint16(81), + 1576: uint16(23), + 1577: uint16(227), + 1578: uint16(25), + 1579: uint16(217), + 1580: uint16(218), + 1581: uint16(131), + 1582: uint16(59), + 1583: uint16(153), + 1584: uint16(154), + 1585: uint16(155), + 1586: uint16(156), + 1587: uint16(157), + 1589: uint16(1), + 1590: uint16(2), + 1591: uint16(59), + 1592: uint16(98), + 1593: uint16(5), + 1594: uint16(71), + 1595: uint16(23), + 1596: uint16(227), + 1597: uint16(25), + 1598: uint16(10), + 1599: uint16(11), + 1600: uint16(12), + 1601: uint16(13), + 1602: uint16(14), + 1603: uint16(83), + 1604: uint16(84), + 1605: uint16(17), + 1606: uint16(23), + 1607: uint16(23), + 1608: uint16(25), + 1609: uint16(25), + 1610: uint16(59), + 1611: uint16(194), + 1612: uint16(194), + 1613: uint16(183), + 1614: uint16(23), + 1615: uint16(23), + 1616: uint16(25), + 1617: uint16(25), + 1618: uint16(30), + 1619: uint16(194), + 1620: uint16(32), + 1621: uint16(19), + 1622: uint16(20), + 1623: uint16(100), + 1624: uint16(22), + 1625: uint16(194), + 1626: uint16(194), + 1627: uint16(133), + 1628: uint16(40), + 1629: uint16(106), + 1630: uint16(107), + 1631: uint16(108), + 1632: uint16(138), + 1633: uint16(139), + 1634: uint16(194), + 1635: uint16(217), + 1636: uint16(218), + 1637: uint16(114), + 1638: uint16(36), + 1639: uint16(116), + 1640: uint16(117), + 1641: uint16(118), + 1642: uint16(217), + 1643: uint16(218), + 1644: uint16(121), + 1645: uint16(194), + 1646: uint16(194), + 1647: uint16(194), + 1648: uint16(23), + 1649: uint16(117), + 1650: uint16(25), + 1651: uint16(194), + 1652: uint16(23), + 1653: uint16(23), + 1654: uint16(25), + 1655: uint16(25), + 1656: uint16(162), + 1657: uint16(194), + 1658: uint16(70), + 1659: uint16(194), + 1660: uint16(145), + 1661: uint16(59), + 1662: uint16(23), + 1663: uint16(153), + 1664: uint16(25), + 1665: uint16(155), + 1666: uint16(78), + 1667: uint16(194), + 1668: uint16(117), + 1669: uint16(81), + 1670: uint16(217), + 1671: uint16(218), + 1672: uint16(194), + 1673: uint16(71), + 1674: uint16(217), + 1675: uint16(218), + 1676: uint16(153), + 1677: uint16(154), + 1678: uint16(155), + 1679: uint16(156), + 1680: uint16(157), + 1681: uint16(194), + 1682: uint16(217), + 1683: uint16(218), + 1684: uint16(194), + 1685: uint16(23), + 1686: uint16(98), + 1687: uint16(25), + 1688: uint16(321), + 1689: uint16(194), 1690: uint16(217), - 1691: uint16(7), - 1692: uint16(8), - 1693: uint16(23), - 1694: uint16(59), - 1695: uint16(25), - 1696: uint16(83), - 1697: uint16(84), - 1698: uint16(36), - 1699: uint16(23), - 1700: uint16(193), - 1701: uint16(25), - 1702: uint16(23), - 1703: uint16(23), - 1704: uint16(25), - 1705: uint16(25), - 1706: uint16(71), - 1707: uint16(153), - 1708: uint16(145), - 1709: uint16(155), - 1710: uint16(117), - 1711: uint16(153), - 1712: uint16(23), - 1713: uint16(155), - 1714: uint16(25), - 1715: uint16(23), - 1716: uint16(97), - 1717: uint16(25), - 1718: uint16(70), - 1719: uint16(193), - 1720: uint16(193), - 1721: uint16(59), - 1722: uint16(117), - 1723: uint16(236), - 1724: uint16(193), - 1725: uint16(193), - 1726: uint16(78), - 1727: uint16(193), - 1728: uint16(193), - 1729: uint16(81), - 1730: uint16(141), - 1731: uint16(193), - 1732: uint16(193), - 1733: uint16(71), - 1734: uint16(193), - 1735: uint16(100), - 1736: uint16(288), - 1737: uint16(287), - 1738: uint16(242), - 1739: uint16(255), - 1740: uint16(255), - 1741: uint16(106), - 1742: uint16(107), - 1743: uint16(108), - 1744: uint16(255), - 1745: uint16(255), - 1746: uint16(98), - 1747: uint16(243), - 1748: uint16(297), - 1749: uint16(114), - 1750: uint16(214), - 1751: uint16(116), - 1752: uint16(117), - 1753: uint16(118), - 1754: uint16(245), - 1755: uint16(191), - 1756: uint16(121), - 1757: uint16(271), - 1758: uint16(293), - 1759: uint16(267), - 1760: uint16(267), - 1761: uint16(246), - 1762: uint16(100), - 1763: uint16(246), - 1764: uint16(245), - 1765: uint16(271), - 1766: uint16(271), - 1767: uint16(293), - 1768: uint16(106), - 1769: uint16(107), - 1770: uint16(220), - 1771: uint16(271), - 1772: uint16(229), - 1773: uint16(225), - 1774: uint16(249), - 1775: uint16(219), - 1776: uint16(114), - 1777: uint16(259), - 1778: uint16(116), - 1779: uint16(117), - 1780: uint16(118), - 1781: uint16(133), - 1782: uint16(259), - 1783: uint16(121), - 1784: uint16(219), - 1785: uint16(219), - 1786: uint16(138), - 1787: uint16(139), - 1788: uint16(153), - 1789: uint16(154), - 1790: uint16(155), - 1791: uint16(156), - 1792: uint16(157), - 1793: uint16(280), - 1794: uint16(249), - 1795: uint16(243), - 1796: uint16(19), - 1797: uint16(20), - 1798: uint16(245), - 1799: uint16(22), - 1800: uint16(196), - 1801: uint16(259), - 1802: uint16(140), - 1803: uint16(259), - 1804: uint16(60), - 1805: uint16(297), - 1806: uint16(141), - 1807: uint16(297), - 1808: uint16(200), - 1809: uint16(200), - 1810: uint16(162), - 1811: uint16(38), - 1812: uint16(200), - 1813: uint16(36), - 1814: uint16(294), - 1815: uint16(153), - 1816: uint16(154), - 1817: uint16(155), - 1818: uint16(156), - 1819: uint16(157), - 1820: uint16(151), - 1821: uint16(150), - 1822: uint16(294), - 1823: uint16(283), - 1824: uint16(22), - 1825: uint16(43), - 1826: uint16(234), - 1827: uint16(18), - 1828: uint16(237), - 1829: uint16(200), - 1830: uint16(270), - 1831: uint16(272), - 1832: uint16(237), - 1833: uint16(237), - 1834: uint16(237), - 1835: uint16(18), - 1836: uint16(59), - 1837: uint16(199), - 1838: uint16(270), - 1839: uint16(149), - 1840: uint16(246), - 1841: uint16(272), - 1842: uint16(272), - 1843: uint16(200), - 1844: uint16(234), - 1845: uint16(234), - 1846: uint16(246), - 1847: uint16(246), - 1848: uint16(71), - 1849: uint16(246), - 1850: uint16(199), - 1851: uint16(158), - 1852: uint16(290), - 1853: uint16(62), - 1854: uint16(22), - 1855: uint16(200), - 1856: uint16(19), - 1857: uint16(20), - 1858: uint16(199), - 1859: uint16(22), - 1860: uint16(289), - 1861: uint16(221), - 1862: uint16(221), - 1863: uint16(200), - 1864: uint16(200), - 1865: uint16(199), - 1866: uint16(199), - 1867: uint16(115), - 1868: uint16(218), - 1869: uint16(64), - 1870: uint16(218), - 1871: uint16(218), + 1691: uint16(218), + 1692: uint16(194), + 1693: uint16(19), + 1694: uint16(20), + 1695: uint16(194), + 1696: uint16(22), + 1697: uint16(153), + 1698: uint16(23), + 1699: uint16(155), + 1700: uint16(25), + 1701: uint16(194), + 1702: uint16(100), + 1703: uint16(194), + 1704: uint16(217), + 1705: uint16(218), + 1706: uint16(183), + 1707: uint16(194), + 1708: uint16(106), + 1709: uint16(107), + 1710: uint16(36), + 1711: uint16(194), + 1712: uint16(217), + 1713: uint16(218), + 1714: uint16(237), + 1715: uint16(194), + 1716: uint16(114), + 1717: uint16(243), + 1718: uint16(116), + 1719: uint16(117), + 1720: uint16(118), + 1721: uint16(133), + 1722: uint16(194), + 1723: uint16(121), + 1724: uint16(217), + 1725: uint16(218), + 1726: uint16(138), + 1727: uint16(139), + 1728: uint16(194), + 1729: uint16(194), + 1730: uint16(194), + 1731: uint16(290), + 1732: uint16(289), + 1733: uint16(59), + 1734: uint16(217), + 1735: uint16(218), + 1736: uint16(194), + 1737: uint16(194), + 1738: uint16(217), + 1739: uint16(218), + 1740: uint16(194), + 1741: uint16(194), + 1742: uint16(140), + 1743: uint16(194), + 1744: uint16(194), + 1745: uint16(71), + 1746: uint16(194), + 1747: uint16(244), + 1748: uint16(194), + 1749: uint16(194), + 1750: uint16(162), + 1751: uint16(217), + 1752: uint16(218), + 1753: uint16(194), + 1754: uint16(194), + 1755: uint16(153), + 1756: uint16(154), + 1757: uint16(155), + 1758: uint16(156), + 1759: uint16(157), + 1760: uint16(217), + 1761: uint16(218), + 1762: uint16(194), + 1763: uint16(217), + 1764: uint16(218), + 1765: uint16(194), + 1766: uint16(217), + 1767: uint16(218), + 1768: uint16(257), + 1769: uint16(217), + 1770: uint16(218), + 1771: uint16(217), + 1772: uint16(218), + 1773: uint16(257), + 1774: uint16(100), + 1775: uint16(194), + 1776: uint16(257), + 1777: uint16(217), + 1778: uint16(218), + 1779: uint16(257), + 1780: uint16(106), + 1781: uint16(107), + 1782: uint16(215), + 1783: uint16(299), + 1784: uint16(194), + 1785: uint16(183), + 1786: uint16(192), + 1787: uint16(194), + 1788: uint16(114), + 1789: uint16(194), + 1790: uint16(116), + 1791: uint16(117), + 1792: uint16(118), + 1793: uint16(1), + 1794: uint16(2), + 1795: uint16(121), + 1796: uint16(221), + 1797: uint16(5), + 1798: uint16(217), + 1799: uint16(218), + 1800: uint16(273), + 1801: uint16(197), + 1802: uint16(10), + 1803: uint16(11), + 1804: uint16(12), + 1805: uint16(13), + 1806: uint16(14), + 1807: uint16(217), + 1808: uint16(218), + 1809: uint16(17), + 1810: uint16(217), + 1811: uint16(218), + 1812: uint16(217), + 1813: uint16(218), + 1814: uint16(140), + 1815: uint16(194), + 1816: uint16(246), + 1817: uint16(194), + 1818: uint16(273), + 1819: uint16(295), + 1820: uint16(247), + 1821: uint16(273), + 1822: uint16(30), + 1823: uint16(247), + 1824: uint16(32), + 1825: uint16(269), + 1826: uint16(269), + 1827: uint16(153), + 1828: uint16(154), + 1829: uint16(155), + 1830: uint16(156), + 1831: uint16(157), + 1832: uint16(40), + 1833: uint16(246), + 1834: uint16(273), + 1835: uint16(295), + 1836: uint16(230), + 1837: uint16(226), + 1838: uint16(217), + 1839: uint16(218), + 1840: uint16(217), + 1841: uint16(218), + 1842: uint16(220), + 1843: uint16(261), + 1844: uint16(220), + 1845: uint16(282), + 1846: uint16(220), + 1847: uint16(19), + 1848: uint16(20), + 1849: uint16(244), + 1850: uint16(22), + 1851: uint16(250), + 1852: uint16(141), + 1853: uint16(250), + 1854: uint16(246), + 1855: uint16(60), + 1856: uint16(201), + 1857: uint16(183), + 1858: uint16(261), + 1859: uint16(261), + 1860: uint16(261), + 1861: uint16(201), + 1862: uint16(70), + 1863: uint16(299), + 1864: uint16(36), + 1865: uint16(299), + 1866: uint16(201), + 1867: uint16(38), + 1868: uint16(151), + 1869: uint16(150), + 1870: uint16(78), + 1871: uint16(285), 1872: uint16(22), - 1873: uint16(36), - 1874: uint16(227), - 1875: uint16(126), - 1876: uint16(227), - 1877: uint16(100), - 1878: uint16(165), - 1879: uint16(221), - 1880: uint16(224), - 1881: uint16(224), - 1882: uint16(24), - 1883: uint16(106), - 1884: uint16(107), - 1885: uint16(312), - 1886: uint16(218), - 1887: uint16(305), - 1888: uint16(113), - 1889: uint16(282), - 1890: uint16(91), - 1891: uint16(114), - 1892: uint16(220), - 1893: uint16(116), - 1894: uint16(117), - 1895: uint16(118), - 1896: uint16(59), - 1897: uint16(282), - 1898: uint16(121), - 1899: uint16(218), - 1900: uint16(218), - 1901: uint16(218), + 1873: uint16(81), + 1874: uint16(296), + 1875: uint16(296), + 1876: uint16(43), + 1877: uint16(235), + 1878: uint16(18), + 1879: uint16(238), + 1880: uint16(201), + 1881: uint16(274), + 1882: uint16(272), + 1883: uint16(238), + 1884: uint16(238), + 1885: uint16(238), + 1886: uint16(18), + 1887: uint16(59), + 1888: uint16(200), + 1889: uint16(149), + 1890: uint16(98), + 1891: uint16(247), + 1892: uint16(274), + 1893: uint16(274), + 1894: uint16(235), + 1895: uint16(247), + 1896: uint16(247), + 1897: uint16(247), + 1898: uint16(235), + 1899: uint16(71), + 1900: uint16(272), + 1901: uint16(201), 1902: uint16(200), - 1903: uint16(317), - 1904: uint16(317), - 1905: uint16(82), - 1906: uint16(221), - 1907: uint16(265), - 1908: uint16(71), - 1909: uint16(148), - 1910: uint16(145), - 1911: uint16(265), - 1912: uint16(22), - 1913: uint16(277), - 1914: uint16(200), - 1915: uint16(158), - 1916: uint16(279), - 1917: uint16(140), - 1918: uint16(147), - 1919: uint16(25), - 1920: uint16(146), - 1921: uint16(202), - 1922: uint16(248), - 1923: uint16(250), - 1924: uint16(249), - 1925: uint16(247), - 1926: uint16(13), - 1927: uint16(250), - 1928: uint16(194), - 1929: uint16(194), - 1930: uint16(153), - 1931: uint16(154), - 1932: uint16(155), - 1933: uint16(156), - 1934: uint16(157), - 1935: uint16(6), - 1936: uint16(303), - 1937: uint16(100), - 1938: uint16(192), - 1939: uint16(192), - 1940: uint16(246), - 1941: uint16(213), - 1942: uint16(192), - 1943: uint16(106), - 1944: uint16(107), - 1945: uint16(207), - 1946: uint16(213), - 1947: uint16(207), - 1948: uint16(222), - 1949: uint16(213), - 1950: uint16(213), - 1951: uint16(114), - 1952: uint16(222), - 1953: uint16(116), - 1954: uint16(117), - 1955: uint16(118), - 1956: uint16(214), - 1957: uint16(214), - 1958: uint16(121), - 1959: uint16(4), - 1960: uint16(207), - 1961: uint16(213), - 1962: uint16(3), - 1963: uint16(22), - 1964: uint16(303), - 1965: uint16(15), - 1966: uint16(163), - 1967: uint16(16), - 1968: uint16(23), - 1969: uint16(23), - 1970: uint16(139), - 1971: uint16(151), - 1972: uint16(130), - 1973: uint16(25), - 1974: uint16(20), - 1975: uint16(142), - 1976: uint16(24), - 1977: uint16(16), - 1978: uint16(144), - 1979: uint16(1), - 1980: uint16(142), - 1981: uint16(130), - 1982: uint16(130), - 1983: uint16(61), - 1984: uint16(37), - 1985: uint16(53), - 1986: uint16(300), - 1987: uint16(151), - 1988: uint16(53), - 1989: uint16(53), - 1990: uint16(153), - 1991: uint16(154), - 1992: uint16(155), - 1993: uint16(156), - 1994: uint16(157), - 1995: uint16(53), - 1996: uint16(130), - 1997: uint16(116), - 1998: uint16(34), - 1999: uint16(1), - 2000: uint16(141), - 2001: uint16(5), - 2002: uint16(22), - 2003: uint16(115), - 2004: uint16(161), - 2005: uint16(68), - 2006: uint16(25), - 2007: uint16(68), - 2008: uint16(75), - 2009: uint16(41), - 2010: uint16(141), - 2011: uint16(115), - 2012: uint16(24), - 2013: uint16(20), - 2014: uint16(19), - 2015: uint16(131), - 2016: uint16(125), - 2017: uint16(23), - 2018: uint16(28), - 2019: uint16(22), - 2020: uint16(67), - 2021: uint16(22), - 2022: uint16(22), - 2023: uint16(22), - 2024: uint16(67), - 2025: uint16(59), - 2026: uint16(24), - 2027: uint16(96), - 2028: uint16(22), - 2029: uint16(67), - 2030: uint16(23), - 2031: uint16(149), - 2032: uint16(22), - 2033: uint16(25), - 2034: uint16(23), - 2035: uint16(23), - 2036: uint16(23), - 2037: uint16(22), - 2038: uint16(34), - 2039: uint16(141), - 2040: uint16(37), - 2041: uint16(97), - 2042: uint16(23), - 2043: uint16(23), - 2044: uint16(116), - 2045: uint16(22), - 2046: uint16(143), - 2047: uint16(25), - 2048: uint16(34), - 2049: uint16(75), - 2050: uint16(34), - 2051: uint16(34), - 2052: uint16(34), - 2053: uint16(88), - 2054: uint16(75), - 2055: uint16(34), - 2056: uint16(86), - 2057: uint16(23), + 1903: uint16(158), + 1904: uint16(292), + 1905: uint16(62), + 1906: uint16(291), + 1907: uint16(201), + 1908: uint16(200), + 1909: uint16(22), + 1910: uint16(201), + 1911: uint16(222), + 1912: uint16(200), + 1913: uint16(222), + 1914: uint16(201), + 1915: uint16(200), + 1916: uint16(115), + 1917: uint16(219), + 1918: uint16(219), + 1919: uint16(64), + 1920: uint16(219), + 1921: uint16(228), + 1922: uint16(22), + 1923: uint16(126), + 1924: uint16(221), + 1925: uint16(133), + 1926: uint16(165), + 1927: uint16(222), + 1928: uint16(100), + 1929: uint16(225), + 1930: uint16(138), + 1931: uint16(139), + 1932: uint16(225), + 1933: uint16(219), + 1934: uint16(106), + 1935: uint16(107), + 1936: uint16(24), + 1937: uint16(219), + 1938: uint16(228), + 1939: uint16(219), + 1940: uint16(219), + 1941: uint16(307), + 1942: uint16(114), + 1943: uint16(113), + 1944: uint16(116), + 1945: uint16(117), + 1946: uint16(118), + 1947: uint16(315), + 1948: uint16(284), + 1949: uint16(121), + 1950: uint16(284), + 1951: uint16(222), + 1952: uint16(201), + 1953: uint16(91), + 1954: uint16(162), + 1955: uint16(320), + 1956: uint16(320), + 1957: uint16(82), + 1958: uint16(148), + 1959: uint16(267), + 1960: uint16(145), + 1961: uint16(267), + 1962: uint16(22), + 1963: uint16(279), + 1964: uint16(201), + 1965: uint16(158), + 1966: uint16(281), + 1967: uint16(251), + 1968: uint16(147), + 1969: uint16(146), + 1970: uint16(25), + 1971: uint16(203), + 1972: uint16(250), + 1973: uint16(249), + 1974: uint16(251), + 1975: uint16(248), + 1976: uint16(13), + 1977: uint16(247), + 1978: uint16(195), + 1979: uint16(195), + 1980: uint16(6), + 1981: uint16(153), + 1982: uint16(154), + 1983: uint16(155), + 1984: uint16(156), + 1985: uint16(157), + 1986: uint16(193), + 1987: uint16(193), + 1988: uint16(305), + 1989: uint16(193), + 1990: uint16(208), + 1991: uint16(305), + 1992: uint16(302), + 1993: uint16(214), + 1994: uint16(214), + 1995: uint16(214), + 1996: uint16(208), + 1997: uint16(223), + 1998: uint16(223), + 1999: uint16(214), + 2000: uint16(4), + 2001: uint16(215), + 2002: uint16(215), + 2003: uint16(214), + 2004: uint16(3), + 2005: uint16(22), + 2006: uint16(208), + 2007: uint16(163), + 2008: uint16(15), + 2009: uint16(23), + 2010: uint16(16), + 2011: uint16(183), + 2012: uint16(23), + 2013: uint16(139), + 2014: uint16(151), + 2015: uint16(130), + 2016: uint16(25), + 2017: uint16(20), + 2018: uint16(142), + 2019: uint16(24), + 2020: uint16(16), + 2021: uint16(144), + 2022: uint16(1), + 2023: uint16(142), + 2024: uint16(130), + 2025: uint16(130), + 2026: uint16(61), + 2027: uint16(37), + 2028: uint16(53), + 2029: uint16(151), + 2030: uint16(53), + 2031: uint16(53), + 2032: uint16(53), + 2033: uint16(130), + 2034: uint16(116), + 2035: uint16(1), + 2036: uint16(34), + 2037: uint16(141), + 2038: uint16(5), + 2039: uint16(22), + 2040: uint16(115), + 2041: uint16(161), + 2042: uint16(75), + 2043: uint16(25), + 2044: uint16(68), + 2045: uint16(141), + 2046: uint16(41), + 2047: uint16(115), + 2048: uint16(68), + 2049: uint16(24), + 2050: uint16(20), + 2051: uint16(19), + 2052: uint16(131), + 2053: uint16(125), + 2054: uint16(67), + 2055: uint16(67), + 2056: uint16(96), + 2057: uint16(22), 2058: uint16(22), - 2059: uint16(34), - 2060: uint16(93), - 2061: uint16(24), - 2062: uint16(34), - 2063: uint16(25), - 2064: uint16(25), - 2065: uint16(142), - 2066: uint16(142), + 2059: uint16(22), + 2060: uint16(37), + 2061: uint16(23), + 2062: uint16(22), + 2063: uint16(24), + 2064: uint16(22), + 2065: uint16(59), + 2066: uint16(67), 2067: uint16(23), - 2068: uint16(44), - 2069: uint16(23), - 2070: uint16(23), - 2071: uint16(23), + 2068: uint16(149), + 2069: uint16(28), + 2070: uint16(22), + 2071: uint16(25), 2072: uint16(23), - 2073: uint16(11), + 2073: uint16(23), 2074: uint16(23), - 2075: uint16(25), - 2076: uint16(22), - 2077: uint16(22), - 2078: uint16(22), - 2079: uint16(141), + 2075: uint16(22), + 2076: uint16(141), + 2077: uint16(34), + 2078: uint16(97), + 2079: uint16(23), 2080: uint16(23), - 2081: uint16(23), - 2082: uint16(22), + 2081: uint16(34), + 2082: uint16(116), 2083: uint16(22), - 2084: uint16(25), - 2085: uint16(15), - 2086: uint16(1), - 2087: uint16(23), - 2088: uint16(25), - 2089: uint16(1), - 2090: uint16(141), - 2091: uint16(135), - 2092: uint16(319), - 2093: uint16(319), - 2094: uint16(319), - 2095: uint16(319), - 2096: uint16(319), - 2097: uint16(319), - 2098: uint16(319), - 2099: uint16(141), - 2100: uint16(319), - 2101: uint16(319), - 2102: uint16(319), - 2103: uint16(319), - 2104: uint16(319), - 2105: uint16(319), - 2106: uint16(319), - 2107: uint16(319), - 2108: uint16(319), - 2109: uint16(319), - 2110: uint16(319), - 2111: uint16(319), - 2112: uint16(319), - 2113: uint16(319), - 2114: uint16(319), - 2115: uint16(319), - 2116: uint16(319), - 2117: uint16(319), - 2118: uint16(319), - 2119: uint16(319), - 2120: uint16(319), - 2121: uint16(319), - 2122: uint16(319), - 2123: uint16(319), - 2124: uint16(319), - 2125: uint16(319), - 2126: uint16(319), - 2127: uint16(319), - 2128: uint16(319), - 2129: uint16(319), - 2130: uint16(319), - 2131: uint16(319), - 2132: uint16(319), - 2133: uint16(319), - 2134: uint16(319), - 2135: uint16(319), - 2136: uint16(319), - 2137: uint16(319), - 2138: uint16(319), - 2139: uint16(319), - 2140: uint16(319), - 2141: uint16(319), - 2142: uint16(319), - 2143: uint16(319), - 2144: uint16(319), - 2145: uint16(319), - 2146: uint16(319), - 2147: uint16(319), - 2148: uint16(319), - 2149: uint16(319), - 2150: uint16(319), - 2151: uint16(319), - 2152: uint16(319), - 2153: uint16(319), - 2154: uint16(319), - 2155: uint16(319), - 2156: uint16(319), - 2157: uint16(319), - 2158: uint16(319), - 2159: uint16(319), - 2160: uint16(319), - 2161: uint16(319), - 2162: uint16(319), - 2163: uint16(319), - 2164: uint16(319), - 2165: uint16(319), - 2166: uint16(319), - 2167: uint16(319), - 2168: uint16(319), - 2169: uint16(319), - 2170: uint16(319), - 2171: uint16(319), - 2172: uint16(319), - 2173: uint16(319), - 2174: uint16(319), - 2175: uint16(319), - 2176: uint16(319), - 2177: uint16(319), - 2178: uint16(319), - 2179: uint16(319), - 2180: uint16(319), - 2181: uint16(319), - 2182: uint16(319), - 2183: uint16(319), - 2184: uint16(319), - 2185: uint16(319), - 2186: uint16(319), - 2187: uint16(319), - 2188: uint16(319), - 2189: uint16(319), - 2190: uint16(319), - 2191: uint16(319), - 2192: uint16(319), - 2193: uint16(319), - 2194: uint16(319), - 2195: uint16(319), - 2196: uint16(319), - 2197: uint16(319), - 2198: uint16(319), - 2199: uint16(319), - 2200: uint16(319), - 2201: uint16(319), - 2202: uint16(319), - 2203: uint16(319), - 2204: uint16(319), - 2205: uint16(319), - 2206: uint16(319), - 2207: uint16(319), - 2208: uint16(319), - 2209: uint16(319), - 2210: uint16(319), - 2211: uint16(319), - 2212: uint16(319), - 2213: uint16(319), - 2214: uint16(319), - 2215: uint16(319), - 2216: uint16(319), - 2217: uint16(319), - 2218: uint16(319), - 2219: uint16(319), - 2220: uint16(319), - 2221: uint16(319), - 2222: uint16(319), - 2223: uint16(319), - 2224: uint16(319), - 2225: uint16(319), - 2226: uint16(319), - 2227: uint16(319), - 2228: uint16(319), - 2229: uint16(319), - 2230: uint16(319), - 2231: uint16(319), - 2232: uint16(319), - 2233: uint16(319), - 2234: uint16(319), - 2235: uint16(319), - 2236: uint16(319), - 2237: uint16(319), - 2238: uint16(319), - 2239: uint16(319), - 2240: uint16(319), - 2241: uint16(319), - 2242: uint16(319), - 2243: uint16(319), - 2244: uint16(319), - 2245: uint16(319), - 2246: uint16(319), - 2247: uint16(319), - 2248: uint16(319), - 2249: uint16(319), - 2250: uint16(319), - 2251: uint16(319), - 2252: uint16(319), - 2253: uint16(319), - 2254: uint16(319), - 2255: uint16(319), - 2256: uint16(319), - 2257: uint16(319), - 2258: uint16(319), - 2259: uint16(319), - 2260: uint16(319), - 2261: uint16(319), - 2262: uint16(319), - 2263: uint16(319), - 2264: uint16(319), - 2265: uint16(319), - 2266: uint16(319), - 2267: uint16(319), - 2268: uint16(319), - 2269: uint16(319), - 2270: uint16(319), - 2271: uint16(319), - 2272: uint16(319), - 2273: uint16(319), - 2274: uint16(319), - 2275: uint16(319), - 2276: uint16(319), - 2277: uint16(319), - 2278: uint16(319), - 2279: uint16(319), - 2280: uint16(319), - 2281: uint16(319), - 2282: uint16(319), - 2283: uint16(319), - 2284: uint16(319), -} -var _yy_shift_ofst = [579]uint16{ - 0: uint16(1648), - 1: uint16(1477), - 2: uint16(1272), + 2084: uint16(143), + 2085: uint16(25), + 2086: uint16(34), + 2087: uint16(75), + 2088: uint16(34), + 2089: uint16(34), + 2090: uint16(75), + 2091: uint16(88), + 2092: uint16(34), + 2093: uint16(86), + 2094: uint16(23), + 2095: uint16(22), + 2096: uint16(34), + 2097: uint16(25), + 2098: uint16(24), + 2099: uint16(34), + 2100: uint16(25), + 2101: uint16(93), + 2102: uint16(23), + 2103: uint16(44), + 2104: uint16(142), + 2105: uint16(23), + 2106: uint16(142), + 2107: uint16(23), + 2108: uint16(23), + 2109: uint16(22), + 2110: uint16(11), + 2111: uint16(25), + 2112: uint16(23), + 2113: uint16(25), + 2114: uint16(23), + 2115: uint16(22), + 2116: uint16(22), + 2117: uint16(22), + 2118: uint16(1), + 2119: uint16(23), + 2120: uint16(23), + 2121: uint16(23), + 2122: uint16(22), + 2123: uint16(22), + 2124: uint16(15), + 2125: uint16(141), + 2126: uint16(141), + 2127: uint16(25), + 2128: uint16(25), + 2129: uint16(1), + 2130: uint16(322), + 2131: uint16(322), + 2132: uint16(322), + 2133: uint16(135), + 2134: uint16(322), + 2135: uint16(322), + 2136: uint16(322), + 2137: uint16(322), + 2138: uint16(322), + 2139: uint16(322), + 2140: uint16(322), + 2141: uint16(141), + 2142: uint16(322), + 2143: uint16(322), + 2144: uint16(322), + 2145: uint16(322), + 2146: uint16(322), + 2147: uint16(322), + 2148: uint16(322), + 2149: uint16(322), + 2150: uint16(322), + 2151: uint16(322), + 2152: uint16(322), + 2153: uint16(322), + 2154: uint16(322), + 2155: uint16(322), + 2156: uint16(322), + 2157: uint16(322), + 2158: uint16(322), + 2159: uint16(322), + 2160: uint16(322), + 2161: uint16(322), + 2162: uint16(322), + 2163: uint16(322), + 2164: uint16(322), + 2165: uint16(322), + 2166: uint16(322), + 2167: uint16(322), + 2168: uint16(322), + 2169: uint16(322), + 2170: uint16(322), + 2171: uint16(322), + 2172: uint16(322), + 2173: uint16(322), + 2174: uint16(322), + 2175: uint16(322), + 2176: uint16(322), + 2177: uint16(322), + 2178: uint16(322), + 2179: uint16(322), + 2180: uint16(322), + 2181: uint16(322), + 2182: uint16(322), + 2183: uint16(322), + 2184: uint16(322), + 2185: uint16(322), + 2186: uint16(322), + 2187: uint16(322), + 2188: uint16(322), + 2189: uint16(322), + 2190: uint16(322), + 2191: uint16(322), + 2192: uint16(322), + 2193: uint16(322), + 2194: uint16(322), + 2195: uint16(322), + 2196: uint16(322), + 2197: uint16(322), + 2198: uint16(322), + 2199: uint16(322), + 2200: uint16(322), + 2201: uint16(322), + 2202: uint16(322), + 2203: uint16(322), + 2204: uint16(322), + 2205: uint16(322), + 2206: uint16(322), + 2207: uint16(322), + 2208: uint16(322), + 2209: uint16(322), + 2210: uint16(322), + 2211: uint16(322), + 2212: uint16(322), + 2213: uint16(322), + 2214: uint16(322), + 2215: uint16(322), + 2216: uint16(322), + 2217: uint16(322), + 2218: uint16(322), + 2219: uint16(322), + 2220: uint16(322), + 2221: uint16(322), + 2222: uint16(322), + 2223: uint16(322), + 2224: uint16(322), + 2225: uint16(322), + 2226: uint16(322), + 2227: uint16(322), + 2228: uint16(322), + 2229: uint16(322), + 2230: uint16(322), + 2231: uint16(322), + 2232: uint16(322), + 2233: uint16(322), + 2234: uint16(322), + 2235: uint16(322), + 2236: uint16(322), + 2237: uint16(322), + 2238: uint16(322), + 2239: uint16(322), + 2240: uint16(322), + 2241: uint16(322), + 2242: uint16(322), + 2243: uint16(322), + 2244: uint16(322), + 2245: uint16(322), + 2246: uint16(322), + 2247: uint16(322), + 2248: uint16(322), + 2249: uint16(322), + 2250: uint16(322), + 2251: uint16(322), + 2252: uint16(322), + 2253: uint16(322), + 2254: uint16(322), + 2255: uint16(322), + 2256: uint16(322), + 2257: uint16(322), + 2258: uint16(322), + 2259: uint16(322), + 2260: uint16(322), + 2261: uint16(322), + 2262: uint16(322), + 2263: uint16(322), + 2264: uint16(322), + 2265: uint16(322), + 2266: uint16(322), + 2267: uint16(322), + 2268: uint16(322), + 2269: uint16(322), + 2270: uint16(322), + 2271: uint16(322), + 2272: uint16(322), + 2273: uint16(322), + 2274: uint16(322), + 2275: uint16(322), + 2276: uint16(322), + 2277: uint16(322), + 2278: uint16(322), + 2279: uint16(322), + 2280: uint16(322), + 2281: uint16(322), + 2282: uint16(322), + 2283: uint16(322), + 2284: uint16(322), + 2285: uint16(322), + 2286: uint16(322), + 2287: uint16(322), + 2288: uint16(322), + 2289: uint16(322), + 2290: uint16(322), + 2291: uint16(322), + 2292: uint16(322), + 2293: uint16(322), + 2294: uint16(322), + 2295: uint16(322), + 2296: uint16(322), + 2297: uint16(322), + 2298: uint16(322), + 2299: uint16(322), + 2300: uint16(322), + 2301: uint16(322), + 2302: uint16(322), + 2303: uint16(322), + 2304: uint16(322), + 2305: uint16(322), + 2306: uint16(322), + 2307: uint16(322), + 2308: uint16(322), + 2309: uint16(322), + 2310: uint16(322), + 2311: uint16(322), + 2312: uint16(322), + 2313: uint16(322), + 2314: uint16(322), + 2315: uint16(322), + 2316: uint16(322), + 2317: uint16(322), + 2318: uint16(322), + 2319: uint16(322), + 2320: uint16(322), + 2321: uint16(322), + 2322: uint16(322), + 2323: uint16(322), + 2324: uint16(322), + 2325: uint16(322), + 2326: uint16(322), + 2327: uint16(322), +} +var _yy_shift_ofst = [583]uint16{ + 0: uint16(1792), + 1: uint16(1588), + 2: uint16(1494), 3: uint16(322), 4: uint16(322), - 5: uint16(1), - 6: uint16(1319), - 7: uint16(1478), - 8: uint16(1491), - 9: uint16(1837), - 10: uint16(1837), - 11: uint16(1837), - 12: uint16(471), - 15: uint16(214), - 16: uint16(1093), - 17: uint16(1837), - 18: uint16(1837), - 19: uint16(1837), - 20: uint16(1837), - 21: uint16(1837), - 22: uint16(1837), - 23: uint16(1837), - 24: uint16(1837), - 25: uint16(1837), - 26: uint16(1837), - 27: uint16(1837), - 28: uint16(1837), - 29: uint16(1837), - 30: uint16(1837), - 31: uint16(271), - 32: uint16(271), - 33: uint16(1219), - 34: uint16(1219), - 35: uint16(216), - 36: uint16(88), - 37: uint16(1), - 38: uint16(1), - 39: uint16(1), - 40: uint16(1), - 41: uint16(1), - 42: uint16(40), - 43: uint16(111), - 44: uint16(258), - 45: uint16(361), - 46: uint16(469), - 47: uint16(512), - 48: uint16(583), - 49: uint16(622), - 50: uint16(693), - 51: uint16(732), - 52: uint16(803), - 53: uint16(842), - 54: uint16(913), - 55: uint16(1073), - 56: uint16(1093), - 57: uint16(1093), - 58: uint16(1093), - 59: uint16(1093), - 60: uint16(1093), - 61: uint16(1093), - 62: uint16(1093), - 63: uint16(1093), - 64: uint16(1093), + 5: uint16(399), + 6: uint16(306), + 7: uint16(1319), + 8: uint16(1339), + 9: uint16(1430), + 10: uint16(1828), + 11: uint16(1828), + 12: uint16(1828), + 13: uint16(580), + 14: uint16(399), + 15: uint16(399), + 16: uint16(399), + 17: uint16(399), + 18: uint16(399), + 21: uint16(214), + 22: uint16(1093), + 23: uint16(1828), + 24: uint16(1828), + 25: uint16(1828), + 26: uint16(1828), + 27: uint16(1828), + 28: uint16(1828), + 29: uint16(1828), + 30: uint16(1828), + 31: uint16(1828), + 32: uint16(1828), + 33: uint16(1828), + 34: uint16(1828), + 35: uint16(1828), + 36: uint16(1828), + 37: uint16(1828), + 38: uint16(1130), + 39: uint16(1130), + 40: uint16(365), + 41: uint16(365), + 42: uint16(55), + 43: uint16(278), + 44: uint16(436), + 45: uint16(713), + 46: uint16(713), + 47: uint16(201), + 48: uint16(201), + 49: uint16(201), + 50: uint16(201), + 51: uint16(40), + 52: uint16(111), + 53: uint16(258), + 54: uint16(361), + 55: uint16(469), + 56: uint16(512), + 57: uint16(583), + 58: uint16(622), + 59: uint16(693), + 60: uint16(732), + 61: uint16(803), + 62: uint16(842), + 63: uint16(913), + 64: uint16(1073), 65: uint16(1093), 66: uint16(1093), 67: uint16(1093), @@ -151465,1505 +152959,1514 @@ var _yy_shift_ofst = [579]uint16{ 71: uint16(1093), 72: uint16(1093), 73: uint16(1093), - 74: uint16(1113), + 74: uint16(1093), 75: uint16(1093), - 76: uint16(1216), - 77: uint16(957), - 78: uint16(957), - 79: uint16(1635), - 80: uint16(1662), - 81: uint16(1777), - 82: uint16(1837), - 83: uint16(1837), - 84: uint16(1837), - 85: uint16(1837), - 86: uint16(1837), - 87: uint16(1837), - 88: uint16(1837), - 89: uint16(1837), - 90: uint16(1837), - 91: uint16(1837), - 92: uint16(1837), - 93: uint16(1837), - 94: uint16(1837), - 95: uint16(1837), - 96: uint16(1837), - 97: uint16(1837), - 98: uint16(1837), - 99: uint16(1837), - 100: uint16(1837), - 101: uint16(1837), - 102: uint16(1837), - 103: uint16(1837), - 104: uint16(1837), - 105: uint16(1837), - 106: uint16(1837), - 107: uint16(1837), - 108: uint16(1837), - 109: uint16(1837), - 110: uint16(1837), - 111: uint16(1837), - 112: uint16(1837), - 113: uint16(1837), - 114: uint16(1837), - 115: uint16(1837), - 116: uint16(1837), - 117: uint16(1837), - 118: uint16(1837), - 119: uint16(1837), - 120: uint16(1837), - 121: uint16(1837), - 122: uint16(1837), - 123: uint16(1837), - 124: uint16(1837), - 125: uint16(1837), - 126: uint16(1837), - 127: uint16(1837), - 128: uint16(1837), - 129: uint16(1837), - 130: uint16(1837), - 131: uint16(137), - 132: uint16(181), - 133: uint16(181), - 134: uint16(181), - 135: uint16(181), - 136: uint16(181), - 137: uint16(181), - 138: uint16(181), - 139: uint16(94), - 140: uint16(430), - 141: uint16(66), - 142: uint16(65), - 143: uint16(112), - 144: uint16(366), - 145: uint16(533), - 146: uint16(533), - 147: uint16(740), - 148: uint16(1257), - 149: uint16(533), - 150: uint16(533), - 151: uint16(79), - 152: uint16(79), - 153: uint16(533), - 154: uint16(412), - 155: uint16(412), - 156: uint16(412), - 157: uint16(77), - 158: uint16(412), - 159: uint16(123), - 160: uint16(113), - 161: uint16(113), - 162: uint16(113), - 163: uint16(22), - 164: uint16(22), - 165: uint16(2100), - 166: uint16(2100), - 167: uint16(328), - 168: uint16(328), - 169: uint16(328), - 170: uint16(239), - 171: uint16(468), - 172: uint16(468), - 173: uint16(468), - 174: uint16(468), - 175: uint16(1015), - 176: uint16(1015), - 177: uint16(409), - 178: uint16(366), - 179: uint16(1187), - 180: uint16(1232), - 181: uint16(533), - 182: uint16(533), - 183: uint16(533), - 184: uint16(533), - 185: uint16(533), - 186: uint16(533), - 187: uint16(533), - 188: uint16(533), - 189: uint16(533), - 190: uint16(533), - 191: uint16(533), - 192: uint16(533), - 193: uint16(533), - 194: uint16(533), - 195: uint16(533), - 196: uint16(533), - 197: uint16(533), - 198: uint16(533), - 199: uint16(533), - 200: uint16(533), - 201: uint16(969), - 202: uint16(621), - 203: uint16(621), - 204: uint16(533), - 205: uint16(642), - 206: uint16(788), - 207: uint16(788), - 208: uint16(1133), - 209: uint16(1133), - 210: uint16(822), - 211: uint16(822), - 212: uint16(67), - 213: uint16(1193), - 214: uint16(2100), - 215: uint16(2100), - 216: uint16(2100), - 217: uint16(2100), - 218: uint16(2100), - 219: uint16(2100), - 220: uint16(2100), - 221: uint16(1307), - 222: uint16(954), - 223: uint16(954), - 224: uint16(585), - 225: uint16(472), - 226: uint16(640), - 227: uint16(387), - 228: uint16(695), - 229: uint16(538), - 230: uint16(541), - 231: uint16(700), - 232: uint16(533), - 233: uint16(533), - 234: uint16(533), - 235: uint16(533), - 236: uint16(533), - 237: uint16(533), - 238: uint16(533), - 239: uint16(533), - 240: uint16(533), - 241: uint16(533), - 242: uint16(222), - 243: uint16(533), - 244: uint16(533), - 245: uint16(533), - 246: uint16(533), - 247: uint16(533), - 248: uint16(533), - 249: uint16(533), - 250: uint16(533), - 251: uint16(533), - 252: uint16(533), - 253: uint16(533), - 254: uint16(533), - 255: uint16(1213), - 256: uint16(1213), - 257: uint16(1213), - 258: uint16(533), - 259: uint16(533), - 260: uint16(533), - 261: uint16(565), - 262: uint16(533), - 263: uint16(533), - 264: uint16(533), - 265: uint16(916), - 266: uint16(1147), - 267: uint16(533), - 268: uint16(533), - 269: uint16(1288), - 270: uint16(533), - 271: uint16(533), - 272: uint16(533), - 273: uint16(533), - 274: uint16(533), - 275: uint16(533), - 276: uint16(533), - 277: uint16(533), - 278: uint16(639), - 279: uint16(1280), - 280: uint16(209), - 281: uint16(1129), - 282: uint16(1129), - 283: uint16(1129), - 284: uint16(1129), - 285: uint16(580), - 286: uint16(209), - 287: uint16(209), - 288: uint16(1209), - 289: uint16(768), - 290: uint16(917), - 291: uint16(649), - 292: uint16(1315), - 293: uint16(1334), - 294: uint16(405), - 295: uint16(1334), - 296: uint16(1383), - 297: uint16(249), - 298: uint16(1315), - 299: uint16(1315), - 300: uint16(249), - 301: uint16(1315), - 302: uint16(405), - 303: uint16(1383), - 304: uint16(1441), - 305: uint16(464), - 306: uint16(1245), - 307: uint16(1417), - 308: uint16(1417), - 309: uint16(1417), - 310: uint16(1323), - 311: uint16(1323), - 312: uint16(1323), - 313: uint16(1323), - 314: uint16(184), - 315: uint16(184), - 316: uint16(1335), - 317: uint16(1476), - 318: uint16(856), - 319: uint16(1482), - 320: uint16(1744), - 321: uint16(1744), - 322: uint16(1665), - 323: uint16(1665), - 324: uint16(1773), - 325: uint16(1773), - 326: uint16(1665), - 327: uint16(1669), - 328: uint16(1671), - 329: uint16(1802), - 330: uint16(1782), - 331: uint16(1809), - 332: uint16(1809), - 333: uint16(1809), - 334: uint16(1809), - 335: uint16(1665), - 336: uint16(1817), - 337: uint16(1690), - 338: uint16(1671), - 339: uint16(1671), - 340: uint16(1690), - 341: uint16(1802), - 342: uint16(1782), - 343: uint16(1690), - 344: uint16(1782), - 345: uint16(1690), - 346: uint16(1665), - 347: uint16(1817), - 348: uint16(1693), - 349: uint16(1791), - 350: uint16(1665), - 351: uint16(1817), - 352: uint16(1832), - 353: uint16(1665), - 354: uint16(1817), - 355: uint16(1665), - 356: uint16(1817), - 357: uint16(1832), - 358: uint16(1752), - 359: uint16(1752), - 360: uint16(1752), - 361: uint16(1805), - 362: uint16(1850), - 363: uint16(1850), - 364: uint16(1832), - 365: uint16(1752), - 366: uint16(1749), - 367: uint16(1752), - 368: uint16(1805), - 369: uint16(1752), - 370: uint16(1752), - 371: uint16(1713), - 372: uint16(1858), - 373: uint16(1775), - 374: uint16(1775), - 375: uint16(1832), - 376: uint16(1665), - 377: uint16(1799), - 378: uint16(1799), - 379: uint16(1823), - 380: uint16(1823), - 381: uint16(1761), - 382: uint16(1765), - 383: uint16(1890), - 384: uint16(1665), - 385: uint16(1757), - 386: uint16(1761), - 387: uint16(1771), - 388: uint16(1774), - 389: uint16(1690), - 390: uint16(1894), - 391: uint16(1913), - 392: uint16(1913), - 393: uint16(1929), - 394: uint16(1929), - 395: uint16(1929), - 396: uint16(2100), - 397: uint16(2100), - 398: uint16(2100), - 399: uint16(2100), - 400: uint16(2100), - 401: uint16(2100), - 402: uint16(2100), - 403: uint16(2100), - 404: uint16(2100), - 405: uint16(2100), - 406: uint16(2100), - 407: uint16(2100), - 408: uint16(2100), - 409: uint16(2100), - 410: uint16(2100), - 411: uint16(207), - 412: uint16(1220), - 413: uint16(331), - 414: uint16(620), - 415: uint16(967), - 416: uint16(806), - 417: uint16(1074), - 418: uint16(1499), - 419: uint16(1432), - 420: uint16(1463), - 421: uint16(1479), - 422: uint16(1419), - 423: uint16(1422), - 424: uint16(1557), - 425: uint16(1512), - 426: uint16(1598), - 427: uint16(1599), - 428: uint16(1644), - 429: uint16(1645), - 430: uint16(1654), - 431: uint16(1660), - 432: uint16(1555), - 433: uint16(1505), - 434: uint16(1684), - 435: uint16(1462), - 436: uint16(1670), - 437: uint16(1563), - 438: uint16(1619), - 439: uint16(1593), - 440: uint16(1676), - 441: uint16(1679), - 442: uint16(1613), - 443: uint16(1680), - 444: uint16(1554), - 445: uint16(1558), - 446: uint16(1689), - 447: uint16(1692), - 448: uint16(1605), - 449: uint16(1589), - 450: uint16(1955), - 451: uint16(1959), - 452: uint16(1941), - 453: uint16(1803), - 454: uint16(1950), - 455: uint16(1951), - 456: uint16(1945), - 457: uint16(1946), - 458: uint16(1831), - 459: uint16(1820), - 460: uint16(1842), - 461: uint16(1948), - 462: uint16(1948), - 463: uint16(1952), - 464: uint16(1833), - 465: uint16(1954), - 466: uint16(1834), - 467: uint16(1961), - 468: uint16(1978), - 469: uint16(1838), - 470: uint16(1851), - 471: uint16(1948), - 472: uint16(1852), - 473: uint16(1922), - 474: uint16(1947), - 475: uint16(1948), - 476: uint16(1836), - 477: uint16(1932), - 478: uint16(1935), - 479: uint16(1936), - 480: uint16(1942), - 481: uint16(1866), - 482: uint16(1881), - 483: uint16(1964), - 484: uint16(1859), - 485: uint16(1998), - 486: uint16(1996), - 487: uint16(1980), - 488: uint16(1888), - 489: uint16(1843), - 490: uint16(1937), - 491: uint16(1981), - 492: uint16(1939), - 493: uint16(1933), - 494: uint16(1968), - 495: uint16(1869), - 496: uint16(1896), - 497: uint16(1988), - 498: uint16(1993), - 499: uint16(1995), - 500: uint16(1884), - 501: uint16(1891), - 502: uint16(1997), - 503: uint16(1953), - 504: uint16(1999), - 505: uint16(2000), - 506: uint16(1994), - 507: uint16(2001), - 508: uint16(1957), - 509: uint16(1966), - 510: uint16(2002), - 511: uint16(1931), - 512: uint16(1990), - 513: uint16(2006), - 514: uint16(1962), - 515: uint16(2003), - 516: uint16(2007), - 517: uint16(2004), - 518: uint16(1882), - 519: uint16(2010), - 520: uint16(2011), - 521: uint16(2012), - 522: uint16(2008), - 523: uint16(2013), - 524: uint16(2015), - 525: uint16(1944), - 526: uint16(1898), - 527: uint16(2019), - 528: uint16(2020), - 529: uint16(1928), - 530: uint16(2014), - 531: uint16(2023), - 532: uint16(1903), - 533: uint16(2022), - 534: uint16(2016), - 535: uint16(2017), - 536: uint16(2018), - 537: uint16(2021), - 538: uint16(1965), - 539: uint16(1974), - 540: uint16(1970), - 541: uint16(2024), - 542: uint16(1979), - 543: uint16(1967), - 544: uint16(2025), - 545: uint16(2034), - 546: uint16(2036), - 547: uint16(2037), - 548: uint16(2038), - 549: uint16(2039), - 550: uint16(2028), - 551: uint16(1923), - 552: uint16(1924), - 553: uint16(2044), - 554: uint16(2022), - 555: uint16(2046), - 556: uint16(2047), - 557: uint16(2048), - 558: uint16(2049), - 559: uint16(2050), - 560: uint16(2051), - 561: uint16(2054), - 562: uint16(2062), - 563: uint16(2055), - 564: uint16(2056), - 565: uint16(2057), - 566: uint16(2058), - 567: uint16(2060), - 568: uint16(2061), - 569: uint16(2059), - 570: uint16(1956), - 571: uint16(1938), - 572: uint16(1949), - 573: uint16(1958), - 574: uint16(2063), - 575: uint16(2064), - 576: uint16(2070), - 577: uint16(2085), - 578: uint16(2088), -} -var _yy_reduce_ofst = [411]int16{ - 0: int16(-int32(125)), - 1: int16(733), - 2: int16(789), - 3: int16(241), - 4: int16(293), - 5: int16(-int32(123)), - 6: int16(-int32(193)), - 7: int16(-int32(191)), - 8: int16(-int32(183)), - 9: int16(-int32(187)), - 10: int16(166), - 11: int16(238), - 12: int16(133), - 13: int16(-int32(207)), - 14: int16(-int32(199)), - 15: int16(-int32(267)), - 16: int16(-int32(176)), - 17: int16(-int32(6)), - 18: int16(204), - 19: int16(489), - 20: int16(576), - 21: int16(598), - 22: int16(-int32(175)), - 23: int16(686), - 24: int16(860), - 25: int16(615), - 26: int16(725), - 27: int16(1014), - 28: int16(778), - 29: int16(781), - 30: int16(857), - 31: int16(616), - 32: int16(887), - 33: int16(87), - 34: int16(240), - 35: int16(-int32(192)), - 36: int16(408), - 37: int16(626), - 38: int16(796), - 39: int16(843), - 40: int16(854), - 41: int16(1004), - 42: int16(-int32(271)), - 43: int16(-int32(271)), - 44: int16(-int32(271)), - 45: int16(-int32(271)), - 46: int16(-int32(271)), - 47: int16(-int32(271)), - 48: int16(-int32(271)), - 49: int16(-int32(271)), - 50: int16(-int32(271)), - 51: int16(-int32(271)), - 52: int16(-int32(271)), - 53: int16(-int32(271)), - 54: int16(-int32(271)), - 55: int16(-int32(271)), - 56: int16(-int32(271)), - 57: int16(-int32(271)), - 58: int16(-int32(271)), - 59: int16(-int32(271)), - 60: int16(-int32(271)), - 61: int16(-int32(271)), - 62: int16(-int32(271)), - 63: int16(-int32(271)), - 64: int16(-int32(271)), - 65: int16(-int32(271)), - 66: int16(-int32(271)), - 67: int16(-int32(271)), - 68: int16(-int32(271)), - 69: int16(-int32(271)), - 70: int16(-int32(271)), - 71: int16(-int32(271)), - 72: int16(-int32(271)), - 73: int16(-int32(271)), - 74: int16(-int32(271)), - 75: int16(-int32(271)), - 76: int16(-int32(271)), - 77: int16(-int32(271)), - 78: int16(-int32(271)), - 79: int16(80), - 80: int16(83), - 81: int16(313), - 82: int16(886), - 83: int16(888), - 84: int16(918), - 85: int16(938), - 86: int16(1021), - 87: int16(1034), - 88: int16(1036), - 89: int16(1141), - 90: int16(1159), - 91: int16(1163), - 92: int16(1166), - 93: int16(1168), - 94: int16(1170), - 95: int16(1176), - 96: int16(1178), - 97: int16(1180), - 98: int16(1184), - 99: int16(1196), - 100: int16(1198), - 101: int16(1205), - 102: int16(1215), - 103: int16(1225), - 104: int16(1227), - 105: int16(1236), - 106: int16(1252), - 107: int16(1254), - 108: int16(1264), - 109: int16(1303), - 110: int16(1309), - 111: int16(1312), - 112: int16(1322), - 113: int16(1325), - 114: int16(1328), - 115: int16(1337), - 116: int16(1340), - 117: int16(1343), - 118: int16(1353), - 119: int16(1371), - 120: int16(1373), - 121: int16(1384), - 122: int16(1386), - 123: int16(1411), - 124: int16(1413), - 125: int16(1420), - 126: int16(1424), - 127: int16(1426), - 128: int16(1458), - 129: int16(1470), - 130: int16(1473), - 131: int16(-int32(271)), - 132: int16(-int32(271)), - 133: int16(-int32(271)), - 134: int16(-int32(271)), - 135: int16(-int32(271)), - 136: int16(-int32(271)), - 137: int16(-int32(271)), - 138: int16(-int32(271)), - 139: int16(-int32(271)), - 140: int16(-int32(271)), - 141: int16(-int32(271)), - 142: int16(138), - 143: int16(459), - 144: int16(396), - 145: int16(-int32(158)), - 146: int16(470), - 147: int16(302), - 148: int16(-int32(212)), - 149: int16(521), - 150: int16(201), - 151: int16(-int32(195)), - 152: int16(-int32(92)), - 153: int16(559), - 154: int16(630), - 155: int16(632), - 156: int16(630), - 157: int16(-int32(271)), - 158: int16(632), - 159: int16(901), - 160: int16(63), - 161: int16(407), - 162: int16(670), - 163: int16(-int32(271)), - 164: int16(-int32(271)), - 165: int16(-int32(271)), - 166: int16(-int32(271)), - 167: int16(161), - 168: int16(161), - 169: int16(161), - 170: int16(251), - 171: int16(335), - 172: int16(847), - 173: int16(979), - 174: int16(1097), - 175: int16(537), - 176: int16(588), - 177: int16(618), - 178: int16(628), - 179: int16(688), - 180: int16(688), - 181: int16(-int32(166)), - 182: int16(-int32(161)), - 183: int16(674), - 184: int16(787), - 185: int16(794), - 186: int16(799), - 187: int16(852), - 188: int16(996), - 189: int16(-int32(122)), - 190: int16(837), - 191: int16(-int32(120)), - 192: int16(1018), - 193: int16(1035), - 194: int16(415), - 195: int16(1047), - 196: int16(1001), - 197: int16(958), - 198: int16(1082), - 199: int16(400), - 200: int16(1099), - 201: int16(779), - 202: int16(1137), - 203: int16(1142), - 204: int16(263), - 205: int16(1083), - 206: int16(1145), - 207: int16(1150), - 208: int16(1041), - 209: int16(1139), - 210: int16(965), - 211: int16(1050), - 212: int16(362), - 213: int16(849), - 214: int16(752), - 215: int16(629), - 216: int16(675), - 217: int16(1162), - 218: int16(1173), - 219: int16(1090), - 220: int16(1195), - 221: int16(-int32(194)), - 222: int16(56), - 223: int16(185), - 224: int16(-int32(135)), - 225: int16(232), - 226: int16(522), - 227: int16(560), - 228: int16(571), - 229: int16(601), - 230: int16(617), - 231: int16(669), - 232: int16(683), - 233: int16(711), - 234: int16(850), - 235: int16(893), - 236: int16(1000), - 237: int16(1040), - 238: int16(1049), - 239: int16(1081), - 240: int16(1087), - 241: int16(1101), - 242: int16(392), - 243: int16(1114), - 244: int16(1123), - 245: int16(1155), - 246: int16(1161), - 247: int16(1175), - 248: int16(1271), - 249: int16(1293), - 250: int16(1299), - 251: int16(1330), - 252: int16(1339), - 253: int16(1342), - 254: int16(1347), - 255: int16(593), - 256: int16(1282), - 257: int16(1286), - 258: int16(1350), - 259: int16(1359), - 260: int16(1368), - 261: int16(1314), - 262: int16(1480), - 263: int16(1483), - 264: int16(1507), - 265: int16(1085), - 266: int16(1338), - 267: int16(1526), - 268: int16(1527), - 269: int16(1487), - 270: int16(1531), - 271: int16(560), - 272: int16(1532), - 273: int16(1534), - 274: int16(1535), - 275: int16(1538), - 276: int16(1539), - 277: int16(1541), - 278: int16(1448), - 279: int16(1450), - 280: int16(1496), - 281: int16(1484), - 282: int16(1485), - 283: int16(1489), - 284: int16(1490), - 285: int16(1314), - 286: int16(1496), - 287: int16(1496), - 288: int16(1504), - 289: int16(1536), - 290: int16(1564), - 291: int16(1451), - 292: int16(1486), - 293: int16(1492), - 294: int16(1509), - 295: int16(1493), - 296: int16(1465), - 297: int16(1515), - 298: int16(1494), - 299: int16(1495), - 300: int16(1517), - 301: int16(1500), - 302: int16(1519), - 303: int16(1474), - 304: int16(1550), - 305: int16(1543), - 306: int16(1548), - 307: int16(1556), - 308: int16(1565), - 309: int16(1566), - 310: int16(1518), - 311: int16(1523), - 312: int16(1542), - 313: int16(1544), - 314: int16(1525), - 315: int16(1545), - 316: int16(1513), - 317: int16(1553), - 318: int16(1552), - 319: int16(1604), - 320: int16(1508), - 321: int16(1510), - 322: int16(1608), - 323: int16(1609), - 324: int16(1520), - 325: int16(1528), - 326: int16(1612), - 327: int16(1540), - 328: int16(1559), - 329: int16(1560), - 330: int16(1592), - 331: int16(1591), - 332: int16(1595), - 333: int16(1596), - 334: int16(1597), - 335: int16(1629), - 336: int16(1638), - 337: int16(1594), - 338: int16(1569), - 339: int16(1570), - 340: int16(1600), - 341: int16(1568), - 342: int16(1610), - 343: int16(1601), - 344: int16(1611), - 345: int16(1603), - 346: int16(1643), - 347: int16(1651), - 348: int16(1562), - 349: int16(1571), - 350: int16(1655), - 351: int16(1659), - 352: int16(1640), - 353: int16(1663), - 354: int16(1666), - 355: int16(1664), - 356: int16(1667), - 357: int16(1641), - 358: int16(1650), - 359: int16(1652), - 360: int16(1653), - 361: int16(1647), - 362: int16(1656), - 363: int16(1657), - 364: int16(1658), - 365: int16(1668), - 366: int16(1672), - 367: int16(1681), - 368: int16(1649), - 369: int16(1682), - 370: int16(1683), - 371: int16(1573), - 372: int16(1582), - 373: int16(1607), - 374: int16(1615), - 375: int16(1685), - 376: int16(1702), - 377: int16(1586), - 378: int16(1587), - 379: int16(1642), - 380: int16(1646), - 381: int16(1673), - 382: int16(1675), - 383: int16(1636), - 384: int16(1714), - 385: int16(1637), - 386: int16(1677), - 387: int16(1674), - 388: int16(1678), - 389: int16(1694), - 390: int16(1719), - 391: int16(1734), - 392: int16(1735), - 393: int16(1746), - 394: int16(1747), - 395: int16(1750), - 396: int16(1633), - 397: int16(1661), + 76: uint16(1093), + 77: uint16(1093), + 78: uint16(1093), + 79: uint16(1093), + 80: uint16(1093), + 81: uint16(1093), + 82: uint16(1093), + 83: uint16(1113), + 84: uint16(1093), + 85: uint16(1216), + 86: uint16(957), + 87: uint16(957), + 88: uint16(1523), + 89: uint16(1602), + 90: uint16(1674), + 91: uint16(1828), + 92: uint16(1828), + 93: uint16(1828), + 94: uint16(1828), + 95: uint16(1828), + 96: uint16(1828), + 97: uint16(1828), + 98: uint16(1828), + 99: uint16(1828), + 100: uint16(1828), + 101: uint16(1828), + 102: uint16(1828), + 103: uint16(1828), + 104: uint16(1828), + 105: uint16(1828), + 106: uint16(1828), + 107: uint16(1828), + 108: uint16(1828), + 109: uint16(1828), + 110: uint16(1828), + 111: uint16(1828), + 112: uint16(1828), + 113: uint16(1828), + 114: uint16(1828), + 115: uint16(1828), + 116: uint16(1828), + 117: uint16(1828), + 118: uint16(1828), + 119: uint16(1828), + 120: uint16(1828), + 121: uint16(1828), + 122: uint16(1828), + 123: uint16(1828), + 124: uint16(1828), + 125: uint16(1828), + 126: uint16(1828), + 127: uint16(1828), + 128: uint16(1828), + 129: uint16(1828), + 130: uint16(1828), + 131: uint16(1828), + 132: uint16(1828), + 133: uint16(1828), + 134: uint16(1828), + 135: uint16(1828), + 136: uint16(1828), + 137: uint16(1828), + 138: uint16(1828), + 139: uint16(1828), + 140: uint16(137), + 141: uint16(181), + 142: uint16(181), + 143: uint16(181), + 144: uint16(181), + 145: uint16(181), + 146: uint16(181), + 147: uint16(181), + 148: uint16(96), + 149: uint16(222), + 150: uint16(143), + 151: uint16(477), + 152: uint16(713), + 153: uint16(1133), + 154: uint16(1268), + 155: uint16(713), + 156: uint16(713), + 157: uint16(79), + 158: uint16(79), + 159: uint16(713), + 160: uint16(770), + 161: uint16(83), + 162: uint16(65), + 163: uint16(65), + 164: uint16(65), + 165: uint16(288), + 166: uint16(162), + 167: uint16(162), + 168: uint16(2142), + 169: uint16(2142), + 170: uint16(696), + 171: uint16(696), + 172: uint16(696), + 173: uint16(238), + 174: uint16(474), + 175: uint16(474), + 176: uint16(474), + 177: uint16(474), + 178: uint16(1217), + 179: uint16(1217), + 180: uint16(678), + 181: uint16(477), + 182: uint16(324), + 183: uint16(398), + 184: uint16(713), + 185: uint16(713), + 186: uint16(713), + 187: uint16(713), + 188: uint16(713), + 189: uint16(713), + 190: uint16(713), + 191: uint16(713), + 192: uint16(713), + 193: uint16(713), + 194: uint16(713), + 195: uint16(713), + 196: uint16(713), + 197: uint16(713), + 198: uint16(713), + 199: uint16(713), + 200: uint16(713), + 201: uint16(713), + 202: uint16(713), + 203: uint16(1220), + 204: uint16(366), + 205: uint16(366), + 206: uint16(713), + 207: uint16(917), + 208: uint16(283), + 209: uint16(283), + 210: uint16(434), + 211: uint16(434), + 212: uint16(605), + 213: uint16(605), + 214: uint16(1298), + 215: uint16(2142), + 216: uint16(2142), + 217: uint16(2142), + 218: uint16(2142), + 219: uint16(2142), + 220: uint16(2142), + 221: uint16(2142), + 222: uint16(1179), + 223: uint16(1157), + 224: uint16(1157), + 225: uint16(487), + 226: uint16(527), + 227: uint16(585), + 228: uint16(645), + 229: uint16(749), + 230: uint16(914), + 231: uint16(968), + 232: uint16(752), + 233: uint16(713), + 234: uint16(713), + 235: uint16(713), + 236: uint16(713), + 237: uint16(713), + 238: uint16(713), + 239: uint16(713), + 240: uint16(713), + 241: uint16(713), + 242: uint16(713), + 243: uint16(303), + 244: uint16(713), + 245: uint16(713), + 246: uint16(713), + 247: uint16(713), + 248: uint16(713), + 249: uint16(713), + 250: uint16(713), + 251: uint16(713), + 252: uint16(713), + 253: uint16(713), + 254: uint16(713), + 255: uint16(713), + 256: uint16(797), + 257: uint16(797), + 258: uint16(797), + 259: uint16(713), + 260: uint16(713), + 261: uint16(713), + 262: uint16(959), + 263: uint16(713), + 264: uint16(713), + 265: uint16(713), + 266: uint16(1169), + 267: uint16(1271), + 268: uint16(713), + 269: uint16(713), + 270: uint16(1330), + 271: uint16(713), + 272: uint16(713), + 273: uint16(713), + 274: uint16(713), + 275: uint16(713), + 276: uint16(713), + 277: uint16(713), + 278: uint16(713), + 279: uint16(629), + 280: uint16(7), + 281: uint16(91), + 282: uint16(876), + 283: uint16(876), + 284: uint16(876), + 285: uint16(876), + 286: uint16(953), + 287: uint16(91), + 288: uint16(91), + 289: uint16(1246), + 290: uint16(1065), + 291: uint16(1106), + 292: uint16(1374), + 293: uint16(1329), + 294: uint16(1348), + 295: uint16(468), + 296: uint16(1348), + 297: uint16(1394), + 298: uint16(785), + 299: uint16(1329), + 300: uint16(1329), + 301: uint16(785), + 302: uint16(1329), + 303: uint16(468), + 304: uint16(1394), + 305: uint16(859), + 306: uint16(854), + 307: uint16(1402), + 308: uint16(1449), + 309: uint16(1449), + 310: uint16(1449), + 311: uint16(1173), + 312: uint16(1173), + 313: uint16(1173), + 314: uint16(1173), + 315: uint16(1355), + 316: uint16(1355), + 317: uint16(1030), + 318: uint16(1341), + 319: uint16(405), + 320: uint16(1230), + 321: uint16(1795), + 322: uint16(1795), + 323: uint16(1711), + 324: uint16(1711), + 325: uint16(1829), + 326: uint16(1829), + 327: uint16(1711), + 328: uint16(1717), + 329: uint16(1719), + 330: uint16(1850), + 331: uint16(1833), + 332: uint16(1860), + 333: uint16(1860), + 334: uint16(1860), + 335: uint16(1860), + 336: uint16(1711), + 337: uint16(1868), + 338: uint16(1740), + 339: uint16(1719), + 340: uint16(1719), + 341: uint16(1740), + 342: uint16(1850), + 343: uint16(1833), + 344: uint16(1740), + 345: uint16(1833), + 346: uint16(1740), + 347: uint16(1711), + 348: uint16(1868), + 349: uint16(1745), + 350: uint16(1843), + 351: uint16(1711), + 352: uint16(1868), + 353: uint16(1887), + 354: uint16(1711), + 355: uint16(1868), + 356: uint16(1711), + 357: uint16(1868), + 358: uint16(1887), + 359: uint16(1801), + 360: uint16(1801), + 361: uint16(1801), + 362: uint16(1855), + 363: uint16(1900), + 364: uint16(1900), + 365: uint16(1887), + 366: uint16(1801), + 367: uint16(1797), + 368: uint16(1801), + 369: uint16(1855), + 370: uint16(1801), + 371: uint16(1801), + 372: uint16(1761), + 373: uint16(1912), + 374: uint16(1830), + 375: uint16(1830), + 376: uint16(1887), + 377: uint16(1711), + 378: uint16(1862), + 379: uint16(1862), + 380: uint16(1875), + 381: uint16(1875), + 382: uint16(1810), + 383: uint16(1815), + 384: uint16(1940), + 385: uint16(1711), + 386: uint16(1807), + 387: uint16(1810), + 388: uint16(1821), + 389: uint16(1823), + 390: uint16(1740), + 391: uint16(1945), + 392: uint16(1963), + 393: uint16(1963), + 394: uint16(1974), + 395: uint16(1974), + 396: uint16(1974), + 397: uint16(2142), + 398: uint16(2142), + 399: uint16(2142), + 400: uint16(2142), + 401: uint16(2142), + 402: uint16(2142), + 403: uint16(2142), + 404: uint16(2142), + 405: uint16(2142), + 406: uint16(2142), + 407: uint16(2142), + 408: uint16(2142), + 409: uint16(2142), + 410: uint16(2142), + 411: uint16(2142), + 412: uint16(20), + 413: uint16(1224), + 414: uint16(256), + 415: uint16(1111), + 416: uint16(1115), + 417: uint16(1114), + 418: uint16(1192), + 419: uint16(1496), + 420: uint16(1424), + 421: uint16(1505), + 422: uint16(1427), + 423: uint16(355), + 424: uint16(1383), + 425: uint16(1537), + 426: uint16(1506), + 427: uint16(1538), + 428: uint16(1553), + 429: uint16(1583), + 430: uint16(1584), + 431: uint16(1591), + 432: uint16(1625), + 433: uint16(541), + 434: uint16(1445), + 435: uint16(1562), + 436: uint16(1450), + 437: uint16(1572), + 438: uint16(1515), + 439: uint16(1428), + 440: uint16(1532), + 441: uint16(1592), + 442: uint16(1629), + 443: uint16(1520), + 444: uint16(1630), + 445: uint16(1639), + 446: uint16(1510), + 447: uint16(1544), + 448: uint16(1662), + 449: uint16(1675), + 450: uint16(1551), + 451: uint16(48), + 452: uint16(1996), + 453: uint16(2001), + 454: uint16(1983), + 455: uint16(1844), + 456: uint16(1993), + 457: uint16(1994), + 458: uint16(1986), + 459: uint16(1989), + 460: uint16(1874), + 461: uint16(1863), + 462: uint16(1885), + 463: uint16(1991), + 464: uint16(1991), + 465: uint16(1995), + 466: uint16(1876), + 467: uint16(1997), + 468: uint16(1877), + 469: uint16(2004), + 470: uint16(2021), + 471: uint16(1881), + 472: uint16(1894), + 473: uint16(1991), + 474: uint16(1895), + 475: uint16(1965), + 476: uint16(1990), + 477: uint16(1991), + 478: uint16(1878), + 479: uint16(1975), + 480: uint16(1977), + 481: uint16(1978), + 482: uint16(1979), + 483: uint16(1903), + 484: uint16(1918), + 485: uint16(2002), + 486: uint16(1896), + 487: uint16(2034), + 488: uint16(2033), + 489: uint16(2017), + 490: uint16(1925), + 491: uint16(1880), + 492: uint16(1976), + 493: uint16(2018), + 494: uint16(1980), + 495: uint16(1967), + 496: uint16(2005), + 497: uint16(1904), + 498: uint16(1932), + 499: uint16(2025), + 500: uint16(2030), + 501: uint16(2032), + 502: uint16(1921), + 503: uint16(1928), + 504: uint16(2035), + 505: uint16(1987), + 506: uint16(2036), + 507: uint16(2037), + 508: uint16(2038), + 509: uint16(2040), + 510: uint16(1988), + 511: uint16(2006), + 512: uint16(2039), + 513: uint16(1960), + 514: uint16(2041), + 515: uint16(2042), + 516: uint16(1999), + 517: uint16(2023), + 518: uint16(2044), + 519: uint16(2043), + 520: uint16(1919), + 521: uint16(2048), + 522: uint16(2049), + 523: uint16(2050), + 524: uint16(2046), + 525: uint16(2051), + 526: uint16(2053), + 527: uint16(1981), + 528: uint16(1935), + 529: uint16(2056), + 530: uint16(2057), + 531: uint16(1966), + 532: uint16(2047), + 533: uint16(2061), + 534: uint16(1941), + 535: uint16(2060), + 536: uint16(2052), + 537: uint16(2054), + 538: uint16(2055), + 539: uint16(2058), + 540: uint16(2003), + 541: uint16(2012), + 542: uint16(2007), + 543: uint16(2059), + 544: uint16(2015), + 545: uint16(2008), + 546: uint16(2062), + 547: uint16(2071), + 548: uint16(2073), + 549: uint16(2074), + 550: uint16(2072), + 551: uint16(2075), + 552: uint16(2065), + 553: uint16(1962), + 554: uint16(1964), + 555: uint16(2079), + 556: uint16(2060), + 557: uint16(2082), + 558: uint16(2084), + 559: uint16(2085), + 560: uint16(2087), + 561: uint16(2086), + 562: uint16(2089), + 563: uint16(2088), + 564: uint16(2091), + 565: uint16(2093), + 566: uint16(2099), + 567: uint16(2094), + 568: uint16(2095), + 569: uint16(2096), + 570: uint16(2097), + 571: uint16(2100), + 572: uint16(2101), + 573: uint16(2102), + 574: uint16(1998), + 575: uint16(1984), + 576: uint16(1985), + 577: uint16(2000), + 578: uint16(2103), + 579: uint16(2098), + 580: uint16(2109), + 581: uint16(2117), + 582: uint16(2128), +} +var _yy_reduce_ofst = [412]int16{ + 0: int16(-int32(71)), + 1: int16(194), + 2: int16(343), + 3: int16(835), + 4: int16(-int32(180)), + 5: int16(-int32(177)), + 6: int16(838), + 7: int16(-int32(194)), + 8: int16(-int32(188)), + 9: int16(-int32(185)), + 10: int16(-int32(183)), + 11: int16(82), + 12: int16(183), + 13: int16(-int32(65)), + 14: int16(133), + 15: int16(245), + 16: int16(346), + 17: int16(407), + 18: int16(458), + 19: int16(-int32(178)), + 20: int16(75), + 21: int16(-int32(275)), + 22: int16(-int32(4)), + 23: int16(310), + 24: int16(312), + 25: int16(489), + 26: int16(575), + 27: int16(596), + 28: int16(463), + 29: int16(686), + 30: int16(707), + 31: int16(725), + 32: int16(780), + 33: int16(1098), + 34: int16(856), + 35: int16(778), + 36: int16(1059), + 37: int16(1090), + 38: int16(708), + 39: int16(887), + 40: int16(86), + 41: int16(448), + 42: int16(980), + 43: int16(630), + 44: int16(680), + 45: int16(681), + 46: int16(684), + 47: int16(796), + 48: int16(801), + 49: int16(796), + 50: int16(801), + 51: int16(-int32(261)), + 52: int16(-int32(261)), + 53: int16(-int32(261)), + 54: int16(-int32(261)), + 55: int16(-int32(261)), + 56: int16(-int32(261)), + 57: int16(-int32(261)), + 58: int16(-int32(261)), + 59: int16(-int32(261)), + 60: int16(-int32(261)), + 61: int16(-int32(261)), + 62: int16(-int32(261)), + 63: int16(-int32(261)), + 64: int16(-int32(261)), + 65: int16(-int32(261)), + 66: int16(-int32(261)), + 67: int16(-int32(261)), + 68: int16(-int32(261)), + 69: int16(-int32(261)), + 70: int16(-int32(261)), + 71: int16(-int32(261)), + 72: int16(-int32(261)), + 73: int16(-int32(261)), + 74: int16(-int32(261)), + 75: int16(-int32(261)), + 76: int16(-int32(261)), + 77: int16(-int32(261)), + 78: int16(-int32(261)), + 79: int16(-int32(261)), + 80: int16(-int32(261)), + 81: int16(-int32(261)), + 82: int16(-int32(261)), + 83: int16(-int32(261)), + 84: int16(-int32(261)), + 85: int16(-int32(261)), + 86: int16(-int32(261)), + 87: int16(-int32(261)), + 88: int16(391), + 89: int16(886), + 90: int16(888), + 91: int16(1013), + 92: int16(1016), + 93: int16(1081), + 94: int16(1087), + 95: int16(1151), + 96: int16(1159), + 97: int16(1177), + 98: int16(1185), + 99: int16(1188), + 100: int16(1190), + 101: int16(1194), + 102: int16(1197), + 103: int16(1203), + 104: int16(1247), + 105: int16(1260), + 106: int16(1264), + 107: int16(1267), + 108: int16(1269), + 109: int16(1273), + 110: int16(1315), + 111: int16(1322), + 112: int16(1335), + 113: int16(1337), + 114: int16(1356), + 115: int16(1362), + 116: int16(1418), + 117: int16(1425), + 118: int16(1453), + 119: int16(1457), + 120: int16(1465), + 121: int16(1473), + 122: int16(1487), + 123: int16(1495), + 124: int16(1507), + 125: int16(1517), + 126: int16(1521), + 127: int16(1534), + 128: int16(1543), + 129: int16(1546), + 130: int16(1549), + 131: int16(1552), + 132: int16(1554), + 133: int16(1560), + 134: int16(1581), + 135: int16(1590), + 136: int16(1593), + 137: int16(1595), + 138: int16(1621), + 139: int16(1623), + 140: int16(-int32(261)), + 141: int16(-int32(261)), + 142: int16(-int32(261)), + 143: int16(-int32(261)), + 144: int16(-int32(261)), + 145: int16(-int32(261)), + 146: int16(-int32(261)), + 147: int16(-int32(261)), + 148: int16(-int32(261)), + 149: int16(-int32(261)), + 150: int16(-int32(261)), + 151: int16(-int32(186)), + 152: int16(-int32(117)), + 153: int16(260), + 154: int16(263), + 155: int16(460), + 156: int16(631), + 157: int16(-int32(74)), + 158: int16(497), + 159: int16(-int32(181)), + 160: int16(-int32(261)), + 161: int16(939), + 162: int16(176), + 163: int16(274), + 164: int16(338), + 165: int16(676), + 166: int16(-int32(261)), + 167: int16(-int32(261)), + 168: int16(-int32(261)), + 169: int16(-int32(261)), + 170: int16(-int32(212)), + 171: int16(-int32(212)), + 172: int16(-int32(212)), + 173: int16(-int32(184)), + 174: int16(149), + 175: int16(777), + 176: int16(1061), + 177: int16(1103), + 178: int16(265), + 179: int16(419), + 180: int16(-int32(254)), + 181: int16(670), + 182: int16(677), + 183: int16(677), + 184: int16(-int32(11)), + 185: int16(-int32(129)), + 186: int16(184), + 187: int16(488), + 188: int16(736), + 189: int16(789), + 190: int16(805), + 191: int16(844), + 192: int16(403), + 193: int16(529), + 194: int16(579), + 195: int16(668), + 196: int16(783), + 197: int16(841), + 198: int16(1158), + 199: int16(1112), + 200: int16(806), + 201: int16(861), + 202: int16(1095), + 203: int16(846), + 204: int16(839), + 205: int16(1031), + 206: int16(-int32(189)), + 207: int16(1077), + 208: int16(1080), + 209: int16(1116), + 210: int16(1084), + 211: int16(1156), + 212: int16(1139), + 213: int16(1221), + 214: int16(46), + 215: int16(1099), + 216: int16(1037), + 217: int16(1118), + 218: int16(1171), + 219: int16(1214), + 220: int16(1210), + 221: int16(1258), + 222: int16(-int32(210)), + 223: int16(-int32(190)), + 224: int16(-int32(176)), + 225: int16(-int32(115)), + 226: int16(117), + 227: int16(262), + 228: int16(376), + 229: int16(490), + 230: int16(511), + 231: int16(520), + 232: int16(618), + 233: int16(639), + 234: int16(743), + 235: int16(901), + 236: int16(907), + 237: int16(958), + 238: int16(1014), + 239: int16(1055), + 240: int16(1108), + 241: int16(1193), + 242: int16(1244), + 243: int16(720), + 244: int16(1248), + 245: int16(1277), + 246: int16(1324), + 247: int16(1347), + 248: int16(1417), + 249: int16(1431), + 250: int16(1432), + 251: int16(1440), + 252: int16(1451), + 253: int16(1452), + 254: int16(1463), + 255: int16(1478), + 256: int16(1286), + 257: int16(1350), + 258: int16(1369), + 259: int16(1490), + 260: int16(1498), + 261: int16(1501), + 262: int16(773), + 263: int16(1509), + 264: int16(1513), + 265: int16(1528), + 266: int16(1292), + 267: int16(1367), + 268: int16(1535), + 269: int16(1536), + 270: int16(1477), + 271: int16(1542), + 272: int16(376), + 273: int16(1547), + 274: int16(1550), + 275: int16(1555), + 276: int16(1559), + 277: int16(1568), + 278: int16(1571), + 279: int16(1441), + 280: int16(1443), + 281: int16(1474), + 282: int16(1511), + 283: int16(1516), + 284: int16(1519), + 285: int16(1522), + 286: int16(773), + 287: int16(1474), + 288: int16(1474), + 289: int16(1503), + 290: int16(1567), + 291: int16(1594), + 292: int16(1484), + 293: int16(1527), + 294: int16(1556), + 295: int16(1570), + 296: int16(1557), + 297: int16(1524), + 298: int16(1573), + 299: int16(1545), + 300: int16(1548), + 301: int16(1576), + 302: int16(1561), + 303: int16(1587), + 304: int16(1540), + 305: int16(1575), + 306: int16(1606), + 307: int16(1611), + 308: int16(1622), + 309: int16(1624), + 310: int16(1626), + 311: int16(1582), + 312: int16(1597), + 313: int16(1598), + 314: int16(1599), + 315: int16(1601), + 316: int16(1603), + 317: int16(1563), + 318: int16(1608), + 319: int16(1605), + 320: int16(1604), + 321: int16(1564), + 322: int16(1566), + 323: int16(1655), + 324: int16(1660), + 325: int16(1578), + 326: int16(1579), + 327: int16(1665), + 328: int16(1586), + 329: int16(1607), + 330: int16(1610), + 331: int16(1642), + 332: int16(1641), + 333: int16(1645), + 334: int16(1646), + 335: int16(1647), + 336: int16(1679), + 337: int16(1688), + 338: int16(1644), + 339: int16(1618), + 340: int16(1619), + 341: int16(1648), + 342: int16(1628), + 343: int16(1659), + 344: int16(1649), + 345: int16(1663), + 346: int16(1650), + 347: int16(1700), + 348: int16(1702), + 349: int16(1612), + 350: int16(1615), + 351: int16(1706), + 352: int16(1708), + 353: int16(1689), + 354: int16(1709), + 355: int16(1712), + 356: int16(1713), + 357: int16(1715), + 358: int16(1691), + 359: int16(1698), + 360: int16(1699), + 361: int16(1701), + 362: int16(1693), + 363: int16(1704), + 364: int16(1707), + 365: int16(1705), + 366: int16(1714), + 367: int16(1703), + 368: int16(1718), + 369: int16(1710), + 370: int16(1720), + 371: int16(1721), + 372: int16(1632), + 373: int16(1634), + 374: int16(1664), + 375: int16(1666), + 376: int16(1729), + 377: int16(1751), + 378: int16(1635), + 379: int16(1636), + 380: int16(1692), + 381: int16(1694), + 382: int16(1716), + 383: int16(1722), + 384: int16(1684), + 385: int16(1763), + 386: int16(1685), + 387: int16(1723), + 388: int16(1724), + 389: int16(1727), + 390: int16(1730), + 391: int16(1768), + 392: int16(1783), + 393: int16(1784), + 394: int16(1793), + 395: int16(1794), + 396: int16(1796), + 397: int16(1683), 398: int16(1686), - 399: int16(1738), - 400: int16(1728), - 401: int16(1733), - 402: int16(1736), - 403: int16(1737), - 404: int16(1740), - 405: int16(1726), - 406: int16(1730), - 407: int16(1742), - 408: int16(1743), - 409: int16(1748), - 410: int16(1753), -} -var _yy_default = [579]uint16{ - 0: uint16(1648), - 1: uint16(1648), - 2: uint16(1648), - 3: uint16(1478), - 4: uint16(1243), - 5: uint16(1354), - 6: uint16(1243), - 7: uint16(1243), - 8: uint16(1243), - 9: uint16(1478), - 10: uint16(1478), - 11: uint16(1478), - 12: uint16(1243), - 13: uint16(1384), - 14: uint16(1384), - 15: uint16(1531), - 16: uint16(1276), - 17: uint16(1243), - 18: uint16(1243), - 19: uint16(1243), - 20: uint16(1243), - 21: uint16(1243), - 22: uint16(1243), - 23: uint16(1243), - 24: uint16(1243), - 25: uint16(1243), - 26: uint16(1243), - 27: uint16(1243), - 28: uint16(1477), - 29: uint16(1243), - 30: uint16(1243), - 31: uint16(1243), - 32: uint16(1243), - 33: uint16(1564), - 34: uint16(1564), - 35: uint16(1243), - 36: uint16(1243), - 37: uint16(1243), - 38: uint16(1243), - 39: uint16(1243), - 40: uint16(1243), - 41: uint16(1243), - 42: uint16(1243), - 43: uint16(1393), - 44: uint16(1243), - 45: uint16(1400), - 46: uint16(1243), - 47: uint16(1243), - 48: uint16(1243), - 49: uint16(1243), - 50: uint16(1243), - 51: uint16(1479), - 52: uint16(1480), - 53: uint16(1243), - 54: uint16(1243), - 55: uint16(1243), - 56: uint16(1530), - 57: uint16(1532), - 58: uint16(1495), - 59: uint16(1407), - 60: uint16(1406), - 61: uint16(1405), - 62: uint16(1404), - 63: uint16(1513), - 64: uint16(1372), - 65: uint16(1398), - 66: uint16(1391), - 67: uint16(1395), - 68: uint16(1474), - 69: uint16(1475), - 70: uint16(1473), - 71: uint16(1626), - 72: uint16(1480), - 73: uint16(1479), - 74: uint16(1243), - 75: uint16(1394), - 76: uint16(1442), - 77: uint16(1458), - 78: uint16(1441), - 79: uint16(1243), - 80: uint16(1243), - 81: uint16(1243), - 82: uint16(1243), - 83: uint16(1243), - 84: uint16(1243), - 85: uint16(1243), - 86: uint16(1243), - 87: uint16(1243), - 88: uint16(1243), - 89: uint16(1243), - 90: uint16(1243), - 91: uint16(1243), - 92: uint16(1243), - 93: uint16(1243), - 94: uint16(1243), - 95: uint16(1243), - 96: uint16(1243), - 97: uint16(1243), - 98: uint16(1243), - 99: uint16(1243), - 100: uint16(1243), - 101: uint16(1243), - 102: uint16(1243), - 103: uint16(1243), - 104: uint16(1243), - 105: uint16(1243), - 106: uint16(1243), - 107: uint16(1243), - 108: uint16(1243), - 109: uint16(1243), - 110: uint16(1243), - 111: uint16(1243), - 112: uint16(1243), - 113: uint16(1243), - 114: uint16(1243), - 115: uint16(1243), - 116: uint16(1243), - 117: uint16(1243), - 118: uint16(1243), - 119: uint16(1243), - 120: uint16(1243), - 121: uint16(1243), - 122: uint16(1243), - 123: uint16(1243), - 124: uint16(1243), - 125: uint16(1243), - 126: uint16(1243), - 127: uint16(1243), - 128: uint16(1243), - 129: uint16(1243), - 130: uint16(1243), - 131: uint16(1450), - 132: uint16(1457), - 133: uint16(1456), - 134: uint16(1455), - 135: uint16(1464), - 136: uint16(1454), - 137: uint16(1451), - 138: uint16(1444), - 139: uint16(1443), - 140: uint16(1445), - 141: uint16(1446), - 142: uint16(1243), - 143: uint16(1243), - 144: uint16(1267), - 145: uint16(1243), - 146: uint16(1243), - 147: uint16(1264), - 148: uint16(1318), - 149: uint16(1243), - 150: uint16(1243), - 151: uint16(1243), - 152: uint16(1243), - 153: uint16(1243), - 154: uint16(1550), - 155: uint16(1549), - 156: uint16(1243), - 157: uint16(1447), - 158: uint16(1243), - 159: uint16(1276), - 160: uint16(1435), - 161: uint16(1434), - 162: uint16(1433), - 163: uint16(1461), - 164: uint16(1448), - 165: uint16(1460), - 166: uint16(1459), - 167: uint16(1538), - 168: uint16(1600), - 169: uint16(1599), - 170: uint16(1496), - 171: uint16(1243), - 172: uint16(1243), - 173: uint16(1243), - 174: uint16(1243), - 175: uint16(1243), - 176: uint16(1243), - 177: uint16(1564), - 178: uint16(1243), - 179: uint16(1243), - 180: uint16(1243), - 181: uint16(1243), - 182: uint16(1243), - 183: uint16(1243), - 184: uint16(1243), - 185: uint16(1243), - 186: uint16(1243), - 187: uint16(1243), - 188: uint16(1243), - 189: uint16(1243), - 190: uint16(1243), - 191: uint16(1243), - 192: uint16(1243), - 193: uint16(1243), - 194: uint16(1243), - 195: uint16(1243), - 196: uint16(1243), - 197: uint16(1243), - 198: uint16(1243), - 199: uint16(1243), - 200: uint16(1243), - 201: uint16(1374), - 202: uint16(1564), - 203: uint16(1564), - 204: uint16(1243), - 205: uint16(1276), - 206: uint16(1564), - 207: uint16(1564), - 208: uint16(1375), - 209: uint16(1375), - 210: uint16(1272), - 211: uint16(1272), - 212: uint16(1378), - 213: uint16(1243), - 214: uint16(1545), - 215: uint16(1345), - 216: uint16(1345), - 217: uint16(1345), - 218: uint16(1345), - 219: uint16(1354), - 220: uint16(1345), - 221: uint16(1243), - 222: uint16(1243), - 223: uint16(1243), - 224: uint16(1243), - 225: uint16(1243), - 226: uint16(1243), - 227: uint16(1243), - 228: uint16(1243), - 229: uint16(1243), - 230: uint16(1243), - 231: uint16(1243), - 232: uint16(1243), - 233: uint16(1243), - 234: uint16(1243), - 235: uint16(1243), - 236: uint16(1535), - 237: uint16(1533), - 238: uint16(1243), - 239: uint16(1243), - 240: uint16(1243), - 241: uint16(1243), - 242: uint16(1243), - 243: uint16(1243), - 244: uint16(1243), - 245: uint16(1243), - 246: uint16(1243), - 247: uint16(1243), - 248: uint16(1243), - 249: uint16(1243), - 250: uint16(1243), - 251: uint16(1243), - 252: uint16(1243), - 253: uint16(1243), - 254: uint16(1243), - 255: uint16(1243), - 256: uint16(1243), - 257: uint16(1243), - 258: uint16(1243), - 259: uint16(1243), - 260: uint16(1243), - 261: uint16(1243), - 262: uint16(1243), - 263: uint16(1243), - 264: uint16(1243), - 265: uint16(1350), - 266: uint16(1243), - 267: uint16(1243), - 268: uint16(1243), - 269: uint16(1243), - 270: uint16(1243), - 271: uint16(1243), - 272: uint16(1243), - 273: uint16(1243), - 274: uint16(1243), - 275: uint16(1243), - 276: uint16(1243), - 277: uint16(1593), - 278: uint16(1243), - 279: uint16(1508), - 280: uint16(1332), - 281: uint16(1350), - 282: uint16(1350), - 283: uint16(1350), - 284: uint16(1350), - 285: uint16(1352), - 286: uint16(1333), - 287: uint16(1331), - 288: uint16(1344), - 289: uint16(1277), - 290: uint16(1250), - 291: uint16(1640), - 292: uint16(1410), - 293: uint16(1399), - 294: uint16(1351), - 295: uint16(1399), - 296: uint16(1637), - 297: uint16(1397), + 399: int16(1690), + 400: int16(1782), + 401: int16(1779), + 402: int16(1780), + 403: int16(1781), + 404: int16(1785), + 405: int16(1788), + 406: int16(1774), + 407: int16(1775), + 408: int16(1786), + 409: int16(1787), + 410: int16(1789), + 411: int16(1798), +} +var _yy_default = [583]uint16{ + 0: uint16(1663), + 1: uint16(1663), + 2: uint16(1663), + 3: uint16(1491), + 4: uint16(1254), + 5: uint16(1367), + 6: uint16(1254), + 7: uint16(1254), + 8: uint16(1254), + 9: uint16(1254), + 10: uint16(1491), + 11: uint16(1491), + 12: uint16(1491), + 13: uint16(1254), + 14: uint16(1254), + 15: uint16(1254), + 16: uint16(1254), + 17: uint16(1254), + 18: uint16(1254), + 19: uint16(1397), + 20: uint16(1397), + 21: uint16(1544), + 22: uint16(1287), + 23: uint16(1254), + 24: uint16(1254), + 25: uint16(1254), + 26: uint16(1254), + 27: uint16(1254), + 28: uint16(1254), + 29: uint16(1254), + 30: uint16(1254), + 31: uint16(1254), + 32: uint16(1254), + 33: uint16(1254), + 34: uint16(1254), + 35: uint16(1490), + 36: uint16(1254), + 37: uint16(1254), + 38: uint16(1254), + 39: uint16(1254), + 40: uint16(1578), + 41: uint16(1578), + 42: uint16(1254), + 43: uint16(1254), + 44: uint16(1254), + 45: uint16(1254), + 46: uint16(1254), + 47: uint16(1563), + 48: uint16(1562), + 49: uint16(1254), + 50: uint16(1254), + 51: uint16(1254), + 52: uint16(1406), + 53: uint16(1254), + 54: uint16(1413), + 55: uint16(1254), + 56: uint16(1254), + 57: uint16(1254), + 58: uint16(1254), + 59: uint16(1254), + 60: uint16(1492), + 61: uint16(1493), + 62: uint16(1254), + 63: uint16(1254), + 64: uint16(1254), + 65: uint16(1543), + 66: uint16(1545), + 67: uint16(1508), + 68: uint16(1420), + 69: uint16(1419), + 70: uint16(1418), + 71: uint16(1417), + 72: uint16(1526), + 73: uint16(1385), + 74: uint16(1411), + 75: uint16(1404), + 76: uint16(1408), + 77: uint16(1487), + 78: uint16(1488), + 79: uint16(1486), + 80: uint16(1641), + 81: uint16(1493), + 82: uint16(1492), + 83: uint16(1254), + 84: uint16(1407), + 85: uint16(1455), + 86: uint16(1471), + 87: uint16(1454), + 88: uint16(1254), + 89: uint16(1254), + 90: uint16(1254), + 91: uint16(1254), + 92: uint16(1254), + 93: uint16(1254), + 94: uint16(1254), + 95: uint16(1254), + 96: uint16(1254), + 97: uint16(1254), + 98: uint16(1254), + 99: uint16(1254), + 100: uint16(1254), + 101: uint16(1254), + 102: uint16(1254), + 103: uint16(1254), + 104: uint16(1254), + 105: uint16(1254), + 106: uint16(1254), + 107: uint16(1254), + 108: uint16(1254), + 109: uint16(1254), + 110: uint16(1254), + 111: uint16(1254), + 112: uint16(1254), + 113: uint16(1254), + 114: uint16(1254), + 115: uint16(1254), + 116: uint16(1254), + 117: uint16(1254), + 118: uint16(1254), + 119: uint16(1254), + 120: uint16(1254), + 121: uint16(1254), + 122: uint16(1254), + 123: uint16(1254), + 124: uint16(1254), + 125: uint16(1254), + 126: uint16(1254), + 127: uint16(1254), + 128: uint16(1254), + 129: uint16(1254), + 130: uint16(1254), + 131: uint16(1254), + 132: uint16(1254), + 133: uint16(1254), + 134: uint16(1254), + 135: uint16(1254), + 136: uint16(1254), + 137: uint16(1254), + 138: uint16(1254), + 139: uint16(1254), + 140: uint16(1463), + 141: uint16(1470), + 142: uint16(1469), + 143: uint16(1468), + 144: uint16(1477), + 145: uint16(1467), + 146: uint16(1464), + 147: uint16(1457), + 148: uint16(1456), + 149: uint16(1458), + 150: uint16(1459), + 151: uint16(1278), + 152: uint16(1254), + 153: uint16(1275), + 154: uint16(1329), + 155: uint16(1254), + 156: uint16(1254), + 157: uint16(1254), + 158: uint16(1254), + 159: uint16(1254), + 160: uint16(1460), + 161: uint16(1287), + 162: uint16(1448), + 163: uint16(1447), + 164: uint16(1446), + 165: uint16(1254), + 166: uint16(1474), + 167: uint16(1461), + 168: uint16(1473), + 169: uint16(1472), + 170: uint16(1551), + 171: uint16(1615), + 172: uint16(1614), + 173: uint16(1509), + 174: uint16(1254), + 175: uint16(1254), + 176: uint16(1254), + 177: uint16(1254), + 178: uint16(1254), + 179: uint16(1254), + 180: uint16(1578), + 181: uint16(1254), + 182: uint16(1254), + 183: uint16(1254), + 184: uint16(1254), + 185: uint16(1254), + 186: uint16(1254), + 187: uint16(1254), + 188: uint16(1254), + 189: uint16(1254), + 190: uint16(1254), + 191: uint16(1254), + 192: uint16(1254), + 193: uint16(1254), + 194: uint16(1254), + 195: uint16(1254), + 196: uint16(1254), + 197: uint16(1254), + 198: uint16(1254), + 199: uint16(1254), + 200: uint16(1254), + 201: uint16(1254), + 202: uint16(1254), + 203: uint16(1387), + 204: uint16(1578), + 205: uint16(1578), + 206: uint16(1254), + 207: uint16(1287), + 208: uint16(1578), + 209: uint16(1578), + 210: uint16(1388), + 211: uint16(1388), + 212: uint16(1283), + 213: uint16(1283), + 214: uint16(1391), + 215: uint16(1558), + 216: uint16(1358), + 217: uint16(1358), + 218: uint16(1358), + 219: uint16(1358), + 220: uint16(1367), + 221: uint16(1358), + 222: uint16(1254), + 223: uint16(1254), + 224: uint16(1254), + 225: uint16(1254), + 226: uint16(1254), + 227: uint16(1254), + 228: uint16(1254), + 229: uint16(1254), + 230: uint16(1254), + 231: uint16(1254), + 232: uint16(1254), + 233: uint16(1254), + 234: uint16(1254), + 235: uint16(1254), + 236: uint16(1254), + 237: uint16(1548), + 238: uint16(1546), + 239: uint16(1254), + 240: uint16(1254), + 241: uint16(1254), + 242: uint16(1254), + 243: uint16(1254), + 244: uint16(1254), + 245: uint16(1254), + 246: uint16(1254), + 247: uint16(1254), + 248: uint16(1254), + 249: uint16(1254), + 250: uint16(1254), + 251: uint16(1254), + 252: uint16(1254), + 253: uint16(1254), + 254: uint16(1254), + 255: uint16(1254), + 256: uint16(1254), + 257: uint16(1254), + 258: uint16(1254), + 259: uint16(1254), + 260: uint16(1254), + 261: uint16(1254), + 262: uint16(1254), + 263: uint16(1254), + 264: uint16(1254), + 265: uint16(1254), + 266: uint16(1363), + 267: uint16(1254), + 268: uint16(1254), + 269: uint16(1254), + 270: uint16(1254), + 271: uint16(1254), + 272: uint16(1254), + 273: uint16(1254), + 274: uint16(1254), + 275: uint16(1254), + 276: uint16(1254), + 277: uint16(1254), + 278: uint16(1608), + 279: uint16(1254), + 280: uint16(1521), + 281: uint16(1343), + 282: uint16(1363), + 283: uint16(1363), + 284: uint16(1363), + 285: uint16(1363), + 286: uint16(1365), + 287: uint16(1344), + 288: uint16(1342), + 289: uint16(1357), + 290: uint16(1288), + 291: uint16(1261), + 292: uint16(1655), + 293: uint16(1423), + 294: uint16(1412), + 295: uint16(1364), + 296: uint16(1412), + 297: uint16(1652), 298: uint16(1410), - 299: uint16(1410), - 300: uint16(1397), + 299: uint16(1423), + 300: uint16(1423), 301: uint16(1410), - 302: uint16(1351), - 303: uint16(1637), - 304: uint16(1293), - 305: uint16(1615), - 306: uint16(1288), - 307: uint16(1384), - 308: uint16(1384), - 309: uint16(1384), - 310: uint16(1374), - 311: uint16(1374), - 312: uint16(1374), - 313: uint16(1374), - 314: uint16(1378), - 315: uint16(1378), - 316: uint16(1476), - 317: uint16(1351), - 318: uint16(1344), - 319: uint16(1243), - 320: uint16(1640), - 321: uint16(1640), - 322: uint16(1360), - 323: uint16(1360), - 324: uint16(1639), - 325: uint16(1639), - 326: uint16(1360), - 327: uint16(1496), - 328: uint16(1623), - 329: uint16(1419), - 330: uint16(1321), - 331: uint16(1327), - 332: uint16(1327), - 333: uint16(1327), - 334: uint16(1327), - 335: uint16(1360), - 336: uint16(1261), - 337: uint16(1397), - 338: uint16(1623), - 339: uint16(1623), - 340: uint16(1397), - 341: uint16(1419), - 342: uint16(1321), - 343: uint16(1397), - 344: uint16(1321), - 345: uint16(1397), - 346: uint16(1360), - 347: uint16(1261), - 348: uint16(1512), - 349: uint16(1634), - 350: uint16(1360), - 351: uint16(1261), - 352: uint16(1486), - 353: uint16(1360), - 354: uint16(1261), - 355: uint16(1360), - 356: uint16(1261), - 357: uint16(1486), - 358: uint16(1319), - 359: uint16(1319), - 360: uint16(1319), - 361: uint16(1308), - 362: uint16(1243), - 363: uint16(1243), - 364: uint16(1486), - 365: uint16(1319), - 366: uint16(1293), - 367: uint16(1319), - 368: uint16(1308), + 302: uint16(1423), + 303: uint16(1364), + 304: uint16(1652), + 305: uint16(1304), + 306: uint16(1630), + 307: uint16(1299), + 308: uint16(1397), + 309: uint16(1397), + 310: uint16(1397), + 311: uint16(1387), + 312: uint16(1387), + 313: uint16(1387), + 314: uint16(1387), + 315: uint16(1391), + 316: uint16(1391), + 317: uint16(1489), + 318: uint16(1364), + 319: uint16(1357), + 320: uint16(1254), + 321: uint16(1655), + 322: uint16(1655), + 323: uint16(1373), + 324: uint16(1373), + 325: uint16(1654), + 326: uint16(1654), + 327: uint16(1373), + 328: uint16(1509), + 329: uint16(1638), + 330: uint16(1432), + 331: uint16(1332), + 332: uint16(1338), + 333: uint16(1338), + 334: uint16(1338), + 335: uint16(1338), + 336: uint16(1373), + 337: uint16(1272), + 338: uint16(1410), + 339: uint16(1638), + 340: uint16(1638), + 341: uint16(1410), + 342: uint16(1432), + 343: uint16(1332), + 344: uint16(1410), + 345: uint16(1332), + 346: uint16(1410), + 347: uint16(1373), + 348: uint16(1272), + 349: uint16(1525), + 350: uint16(1649), + 351: uint16(1373), + 352: uint16(1272), + 353: uint16(1499), + 354: uint16(1373), + 355: uint16(1272), + 356: uint16(1373), + 357: uint16(1272), + 358: uint16(1499), + 359: uint16(1330), + 360: uint16(1330), + 361: uint16(1330), + 362: uint16(1319), + 363: uint16(1254), + 364: uint16(1254), + 365: uint16(1499), + 366: uint16(1330), + 367: uint16(1304), + 368: uint16(1330), 369: uint16(1319), - 370: uint16(1319), - 371: uint16(1582), - 372: uint16(1243), - 373: uint16(1490), - 374: uint16(1490), - 375: uint16(1486), - 376: uint16(1360), - 377: uint16(1574), - 378: uint16(1574), - 379: uint16(1387), - 380: uint16(1387), - 381: uint16(1392), - 382: uint16(1378), - 383: uint16(1481), - 384: uint16(1360), - 385: uint16(1243), - 386: uint16(1392), - 387: uint16(1390), - 388: uint16(1388), - 389: uint16(1397), - 390: uint16(1311), - 391: uint16(1596), - 392: uint16(1596), - 393: uint16(1592), - 394: uint16(1592), - 395: uint16(1592), - 396: uint16(1645), - 397: uint16(1645), - 398: uint16(1545), - 399: uint16(1608), - 400: uint16(1276), - 401: uint16(1276), - 402: uint16(1276), - 403: uint16(1276), - 404: uint16(1608), - 405: uint16(1295), - 406: uint16(1295), - 407: uint16(1277), - 408: uint16(1277), - 409: uint16(1276), - 410: uint16(1608), - 411: uint16(1243), - 412: uint16(1243), - 413: uint16(1243), - 414: uint16(1243), - 415: uint16(1243), - 416: uint16(1243), - 417: uint16(1603), - 418: uint16(1243), - 419: uint16(1540), - 420: uint16(1497), - 421: uint16(1364), - 422: uint16(1243), - 423: uint16(1243), - 424: uint16(1243), - 425: uint16(1243), - 426: uint16(1243), - 427: uint16(1243), - 428: uint16(1243), - 429: uint16(1243), - 430: uint16(1243), - 431: uint16(1243), - 432: uint16(1243), - 433: uint16(1243), - 434: uint16(1243), - 435: uint16(1243), - 436: uint16(1243), - 437: uint16(1243), - 438: uint16(1551), - 439: uint16(1243), - 440: uint16(1243), - 441: uint16(1243), - 442: uint16(1243), - 443: uint16(1243), - 444: uint16(1243), - 445: uint16(1243), - 446: uint16(1243), - 447: uint16(1243), - 448: uint16(1243), - 449: uint16(1424), - 450: uint16(1243), - 451: uint16(1246), - 452: uint16(1542), - 453: uint16(1243), - 454: uint16(1243), - 455: uint16(1243), - 456: uint16(1243), - 457: uint16(1243), - 458: uint16(1243), - 459: uint16(1243), - 460: uint16(1243), - 461: uint16(1401), - 462: uint16(1402), - 463: uint16(1365), - 464: uint16(1243), - 465: uint16(1243), - 466: uint16(1243), - 467: uint16(1243), - 468: uint16(1243), - 469: uint16(1243), - 470: uint16(1243), - 471: uint16(1416), - 472: uint16(1243), - 473: uint16(1243), - 474: uint16(1243), - 475: uint16(1411), - 476: uint16(1243), - 477: uint16(1243), - 478: uint16(1243), - 479: uint16(1243), - 480: uint16(1243), - 481: uint16(1243), - 482: uint16(1243), - 483: uint16(1243), - 484: uint16(1636), - 485: uint16(1243), - 486: uint16(1243), - 487: uint16(1243), - 488: uint16(1243), - 489: uint16(1243), - 490: uint16(1243), - 491: uint16(1511), - 492: uint16(1510), - 493: uint16(1243), - 494: uint16(1243), - 495: uint16(1362), - 496: uint16(1243), - 497: uint16(1243), - 498: uint16(1243), - 499: uint16(1243), - 500: uint16(1243), - 501: uint16(1243), - 502: uint16(1243), - 503: uint16(1243), - 504: uint16(1243), - 505: uint16(1243), - 506: uint16(1243), - 507: uint16(1243), - 508: uint16(1243), - 509: uint16(1291), - 510: uint16(1243), - 511: uint16(1243), - 512: uint16(1243), - 513: uint16(1243), - 514: uint16(1243), - 515: uint16(1243), - 516: uint16(1243), - 517: uint16(1243), - 518: uint16(1243), - 519: uint16(1243), - 520: uint16(1243), - 521: uint16(1243), - 522: uint16(1243), - 523: uint16(1243), - 524: uint16(1243), - 525: uint16(1243), - 526: uint16(1243), - 527: uint16(1243), - 528: uint16(1243), - 529: uint16(1243), - 530: uint16(1243), - 531: uint16(1243), - 532: uint16(1243), - 533: uint16(1389), - 534: uint16(1243), - 535: uint16(1243), - 536: uint16(1243), - 537: uint16(1243), - 538: uint16(1243), - 539: uint16(1243), - 540: uint16(1243), - 541: uint16(1243), - 542: uint16(1243), - 543: uint16(1243), - 544: uint16(1243), - 545: uint16(1243), - 546: uint16(1243), - 547: uint16(1243), - 548: uint16(1579), - 549: uint16(1379), - 550: uint16(1243), - 551: uint16(1243), - 552: uint16(1243), - 553: uint16(1243), - 554: uint16(1627), - 555: uint16(1243), - 556: uint16(1243), - 557: uint16(1243), - 558: uint16(1243), - 559: uint16(1243), - 560: uint16(1243), - 561: uint16(1243), - 562: uint16(1243), - 563: uint16(1243), - 564: uint16(1243), - 565: uint16(1243), - 566: uint16(1243), - 567: uint16(1243), - 568: uint16(1243), - 569: uint16(1619), - 570: uint16(1335), - 571: uint16(1425), - 572: uint16(1243), - 573: uint16(1428), - 574: uint16(1265), - 575: uint16(1243), - 576: uint16(1255), - 577: uint16(1243), - 578: uint16(1243), + 370: uint16(1330), + 371: uint16(1330), + 372: uint16(1596), + 373: uint16(1254), + 374: uint16(1503), + 375: uint16(1503), + 376: uint16(1499), + 377: uint16(1373), + 378: uint16(1588), + 379: uint16(1588), + 380: uint16(1400), + 381: uint16(1400), + 382: uint16(1405), + 383: uint16(1391), + 384: uint16(1494), + 385: uint16(1373), + 386: uint16(1254), + 387: uint16(1405), + 388: uint16(1403), + 389: uint16(1401), + 390: uint16(1410), + 391: uint16(1322), + 392: uint16(1611), + 393: uint16(1611), + 394: uint16(1607), + 395: uint16(1607), + 396: uint16(1607), + 397: uint16(1660), + 398: uint16(1660), + 399: uint16(1558), + 400: uint16(1623), + 401: uint16(1287), + 402: uint16(1287), + 403: uint16(1287), + 404: uint16(1287), + 405: uint16(1623), + 406: uint16(1306), + 407: uint16(1306), + 408: uint16(1288), + 409: uint16(1288), + 410: uint16(1287), + 411: uint16(1623), + 412: uint16(1254), + 413: uint16(1254), + 414: uint16(1254), + 415: uint16(1254), + 416: uint16(1254), + 417: uint16(1254), + 418: uint16(1618), + 419: uint16(1254), + 420: uint16(1553), + 421: uint16(1510), + 422: uint16(1377), + 423: uint16(1254), + 424: uint16(1254), + 425: uint16(1254), + 426: uint16(1254), + 427: uint16(1254), + 428: uint16(1254), + 429: uint16(1254), + 430: uint16(1254), + 431: uint16(1254), + 432: uint16(1254), + 433: uint16(1254), + 434: uint16(1254), + 435: uint16(1254), + 436: uint16(1254), + 437: uint16(1254), + 438: uint16(1254), + 439: uint16(1564), + 440: uint16(1254), + 441: uint16(1254), + 442: uint16(1254), + 443: uint16(1254), + 444: uint16(1254), + 445: uint16(1254), + 446: uint16(1254), + 447: uint16(1254), + 448: uint16(1254), + 449: uint16(1254), + 450: uint16(1254), + 451: uint16(1437), + 452: uint16(1254), + 453: uint16(1257), + 454: uint16(1555), + 455: uint16(1254), + 456: uint16(1254), + 457: uint16(1254), + 458: uint16(1254), + 459: uint16(1254), + 460: uint16(1254), + 461: uint16(1254), + 462: uint16(1254), + 463: uint16(1414), + 464: uint16(1415), + 465: uint16(1378), + 466: uint16(1254), + 467: uint16(1254), + 468: uint16(1254), + 469: uint16(1254), + 470: uint16(1254), + 471: uint16(1254), + 472: uint16(1254), + 473: uint16(1429), + 474: uint16(1254), + 475: uint16(1254), + 476: uint16(1254), + 477: uint16(1424), + 478: uint16(1254), + 479: uint16(1254), + 480: uint16(1254), + 481: uint16(1254), + 482: uint16(1254), + 483: uint16(1254), + 484: uint16(1254), + 485: uint16(1254), + 486: uint16(1651), + 487: uint16(1254), + 488: uint16(1254), + 489: uint16(1254), + 490: uint16(1254), + 491: uint16(1254), + 492: uint16(1254), + 493: uint16(1524), + 494: uint16(1523), + 495: uint16(1254), + 496: uint16(1254), + 497: uint16(1375), + 498: uint16(1254), + 499: uint16(1254), + 500: uint16(1254), + 501: uint16(1254), + 502: uint16(1254), + 503: uint16(1254), + 504: uint16(1254), + 505: uint16(1254), + 506: uint16(1254), + 507: uint16(1254), + 508: uint16(1254), + 509: uint16(1254), + 510: uint16(1254), + 511: uint16(1302), + 512: uint16(1254), + 513: uint16(1254), + 514: uint16(1254), + 515: uint16(1254), + 516: uint16(1254), + 517: uint16(1254), + 518: uint16(1254), + 519: uint16(1254), + 520: uint16(1254), + 521: uint16(1254), + 522: uint16(1254), + 523: uint16(1254), + 524: uint16(1254), + 525: uint16(1254), + 526: uint16(1254), + 527: uint16(1254), + 528: uint16(1254), + 529: uint16(1254), + 530: uint16(1254), + 531: uint16(1254), + 532: uint16(1254), + 533: uint16(1254), + 534: uint16(1254), + 535: uint16(1402), + 536: uint16(1254), + 537: uint16(1254), + 538: uint16(1254), + 539: uint16(1254), + 540: uint16(1254), + 541: uint16(1254), + 542: uint16(1254), + 543: uint16(1254), + 544: uint16(1254), + 545: uint16(1254), + 546: uint16(1254), + 547: uint16(1254), + 548: uint16(1254), + 549: uint16(1254), + 550: uint16(1593), + 551: uint16(1392), + 552: uint16(1254), + 553: uint16(1254), + 554: uint16(1254), + 555: uint16(1254), + 556: uint16(1642), + 557: uint16(1254), + 558: uint16(1254), + 559: uint16(1254), + 560: uint16(1254), + 561: uint16(1352), + 562: uint16(1254), + 563: uint16(1254), + 564: uint16(1254), + 565: uint16(1254), + 566: uint16(1254), + 567: uint16(1254), + 568: uint16(1254), + 569: uint16(1254), + 570: uint16(1254), + 571: uint16(1254), + 572: uint16(1254), + 573: uint16(1634), + 574: uint16(1346), + 575: uint16(1438), + 576: uint16(1254), + 577: uint16(1441), + 578: uint16(1276), + 579: uint16(1254), + 580: uint16(1266), + 581: uint16(1254), + 582: uint16(1254), } /********** End of lemon-generated parsing tables *****************************/ @@ -152984,7 +154487,7 @@ var _yy_default = [579]uint16{ // ** to revert to identifiers if they keyword does not apply in the context where // ** it appears. // */ -var _yyFallback = [185]uint16{ +var _yyFallback = [186]uint16{ 2: uint16(59), 3: uint16(59), 4: uint16(59), @@ -153097,8 +154600,9 @@ type yyStackEntry = TyyStackEntry type TyyParser1 = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser1 = TyyParser1 @@ -153106,14 +154610,46 @@ type yyParser1 = TyyParser1 type TyyParser = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser = TyyParser /* #include */ +// C documentation +// +// /* +// ** Try to increase the size of the parser stack. Return the number +// ** of errors. Return 0 on success. +// */ +func _yyGrowStack(tls *libc.TLS, p uintptr) (r int32) { + var idx, newSize, oldSize int32 + var pNew uintptr + _, _, _, _ = idx, newSize, oldSize, pNew + oldSize = int32(1) + int32((int64((*TyyParser)(unsafe.Pointer(p)).FyystackEnd)-int64((*TyyParser)(unsafe.Pointer(p)).Fyystack))/24) + newSize = oldSize*int32(2) + int32(100) + idx = int32((int64((*TyyParser)(unsafe.Pointer(p)).Fyytos) - int64((*TyyParser)(unsafe.Pointer(p)).Fyystack)) / 24) + if (*TyyParser)(unsafe.Pointer(p)).Fyystack == p+32 { + pNew = _parserStackRealloc(tls, uintptr(0), uint64(uint64(uint64(newSize))*uint64(24))) + if pNew == uintptr(0) { + return int32(1) + } + libc.Xmemcpy(tls, pNew, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(uint64(oldSize))*uint64(24)) + } else { + pNew = _parserStackRealloc(tls, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(uint64(uint64(newSize))*uint64(24))) + if pNew == uintptr(0) { + return int32(1) + } + } + (*TyyParser)(unsafe.Pointer(p)).Fyystack = pNew + (*TyyParser)(unsafe.Pointer(p)).Fyytos = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(idx)*24 + (*TyyParser)(unsafe.Pointer(p)).FyystackEnd = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(newSize-int32(1))*24 + return 0 +} + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -153129,10 +154665,11 @@ func _sqlite3ParserInit(tls *libc.TLS, yypRawParser uintptr, pParse uintptr) { _ = yypParser yypParser = yypRawParser (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = yypParser + 16 - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fstateno = uint16(0) - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fmajor = uint16(0) - (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = yypParser + 16 + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack = yypParser + 32 + (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fstateno = uint16(0) + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fmajor = uint16(0) } // C documentation @@ -153148,7 +154685,7 @@ func _yy_destructor(tls *libc.TLS, yypParser uintptr, yymajor uint16, yypminor u var pParse uintptr _ = pParse pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse - switch int32(yymajor) { + switch int32(int32(yymajor)) { /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a @@ -153160,103 +154697,105 @@ func _yy_destructor(tls *libc.TLS, yypParser uintptr, yymajor uint16, yypminor u ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case int32(204): /* select */ + case int32(205): /* select */ + fallthrough + case int32(240): /* selectnowith */ fallthrough - case int32(239): /* selectnowith */ + case int32(241): /* oneselect */ fallthrough - case int32(240): /* oneselect */ + case int32(253): /* values */ fallthrough - case int32(252): /* values */ + case int32(255): /* mvalues */ _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(216): /* term */ + case int32(217): /* term */ fallthrough - case int32(217): /* expr */ + case int32(218): /* expr */ fallthrough - case int32(246): /* where_opt */ + case int32(247): /* where_opt */ fallthrough - case int32(248): /* having_opt */ + case int32(249): /* having_opt */ fallthrough - case int32(267): /* where_opt_ret */ + case int32(269): /* where_opt_ret */ fallthrough - case int32(278): /* case_operand */ + case int32(280): /* case_operand */ fallthrough - case int32(280): /* case_else */ + case int32(282): /* case_else */ fallthrough - case int32(283): /* vinto */ + case int32(285): /* vinto */ fallthrough - case int32(290): /* when_clause */ + case int32(292): /* when_clause */ fallthrough - case int32(295): /* key_opt */ + case int32(297): /* key_opt */ fallthrough - case int32(311): /* filter_clause */ + case int32(314): /* filter_clause */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(221): /* eidlist_opt */ + case int32(222): /* eidlist_opt */ fallthrough - case int32(231): /* sortlist */ + case int32(232): /* sortlist */ fallthrough - case int32(232): /* eidlist */ + case int32(233): /* eidlist */ fallthrough - case int32(244): /* selcollist */ + case int32(245): /* selcollist */ fallthrough - case int32(247): /* groupby_opt */ + case int32(248): /* groupby_opt */ fallthrough - case int32(249): /* orderby_opt */ + case int32(250): /* orderby_opt */ fallthrough - case int32(253): /* nexprlist */ + case int32(254): /* nexprlist */ fallthrough - case int32(254): /* sclp */ + case int32(256): /* sclp */ fallthrough - case int32(261): /* exprlist */ + case int32(263): /* exprlist */ fallthrough - case int32(268): /* setlist */ + case int32(270): /* setlist */ fallthrough - case int32(277): /* paren_exprlist */ + case int32(279): /* paren_exprlist */ fallthrough - case int32(279): /* case_exprlist */ + case int32(281): /* case_exprlist */ fallthrough - case int32(310): /* part_opt */ + case int32(313): /* part_opt */ _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(238): /* fullname */ + case int32(239): /* fullname */ fallthrough - case int32(245): /* from */ + case int32(246): /* from */ fallthrough - case int32(256): /* seltablist */ + case int32(258): /* seltablist */ fallthrough - case int32(257): /* stl_prefix */ + case int32(259): /* stl_prefix */ fallthrough - case int32(262): /* xfullname */ + case int32(264): /* xfullname */ _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(241): /* wqlist */ + case int32(242): /* wqlist */ _sqlite3WithDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(251): /* window_clause */ + case int32(252): /* window_clause */ fallthrough - case int32(306): /* windowdefn_list */ + case int32(309): /* windowdefn_list */ _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(263): /* idlist */ + case int32(265): /* idlist */ fallthrough - case int32(270): /* idlist_opt */ + case int32(272): /* idlist_opt */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(273): /* filter_over */ + case int32(275): /* filter_over */ fallthrough - case int32(307): /* windowdefn */ + case int32(310): /* windowdefn */ fallthrough - case int32(308): /* window */ + case int32(311): /* window */ fallthrough - case int32(309): /* frame_opt */ + case int32(312): /* frame_opt */ fallthrough - case int32(312): /* over_clause */ + case int32(315): /* over_clause */ _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(286): /* trigger_cmd_list */ + case int32(288): /* trigger_cmd_list */ fallthrough - case int32(291): /* trigger_cmd */ + case int32(293): /* trigger_cmd */ _sqlite3DeleteTriggerStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(288): /* trigger_event */ + case int32(290): /* trigger_event */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TTrigEvent)(unsafe.Pointer(yypminor))).Fb) - case int32(314): /* frame_bound */ + case int32(317): /* frame_bound */ fallthrough - case int32(315): /* frame_bound_s */ + case int32(318): /* frame_bound_s */ fallthrough - case int32(316): /* frame_bound_e */ + case int32(319): /* frame_bound_e */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TFrameBound)(unsafe.Pointer(yypminor))).FpExpr) break /********* End destructor definitions *****************************************/ @@ -153290,11 +154829,20 @@ func _yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var pParser, yytos uintptr + _, _ = pParser, yytos pParser = p - for (*TyyParser)(unsafe.Pointer(pParser)).Fyytos > pParser+16 { - _yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling yy_pop_parser_stack() for each + ** element left in the stack */ + yytos = (*TyyParser)(unsafe.Pointer(pParser)).Fyytos + for yytos > (*TyyParser)(unsafe.Pointer(pParser)).Fyystack { + if int32((*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor) >= int32(YY_MIN_DSTRCTR) { + _yy_destructor(tls, pParser, (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor, yytos+8) + } + yytos -= 24 + } + if (*TyyParser)(unsafe.Pointer(pParser)).Fyystack != pParser+32 { + Xsqlite3_free(tls, (*TyyParser)(unsafe.Pointer(pParser)).Fyystack) } } @@ -153327,21 +154875,21 @@ func _yy_find_shift_action(tls *libc.TLS, iLookAhead uint16, stateno uint16) (r var i, j int32 var iFallback uint16 _, _, _ = i, iFallback, j - if int32(stateno) > int32(YY_MAX_SHIFT) { + if int32(int32(stateno)) > int32(YY_MAX_SHIFT) { return stateno } for cond := true; cond; cond = int32(1) != 0 { i = int32(_yy_shift_ofst[stateno]) - i += int32(iLookAhead) - if int32(_yy_lookahead[i]) != int32(iLookAhead) { /* Fallback token */ + i += int32(int32(iLookAhead)) + if int32(_yy_lookahead[i]) != int32(int32(iLookAhead)) { /* Fallback token */ iFallback = _yyFallback[iLookAhead] - if int32(iFallback) != 0 { + if int32(int32(iFallback)) != 0 { /* Fallback loop must terminate */ iLookAhead = iFallback continue } - j = i - int32(iLookAhead) + int32(YYWILDCARD) - if int32(_yy_lookahead[j]) == int32(YYWILDCARD) && int32(iLookAhead) > 0 { + j = i - int32(int32(iLookAhead)) + int32(YYWILDCARD) + if int32(_yy_lookahead[j]) == int32(YYWILDCARD) && int32(int32(iLookAhead)) > 0 { return _yy_action[j] } return _yy_default[stateno] @@ -153362,7 +154910,7 @@ func _yy_find_reduce_action(tls *libc.TLS, stateno uint16, iLookAhead uint16) (r var i int32 _ = i i = int32(_yy_reduce_ofst[stateno]) - i += int32(iLookAhead) + i += int32(int32(iLookAhead)) return _yy_action[i] } @@ -153375,13 +154923,13 @@ func _yyStackOverflow(tls *libc.TLS, yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse - for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > yypParser+16 { + for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack { _yy_pop_parser_stack(tls, yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23340, 0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) /******** End %stack_overflow code ********************************************/ /* Suppress warning about unused %extra_argument var */ (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse @@ -153400,15 +154948,18 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint var yytos uintptr _ = yytos (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos += 24 - if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 - _yyStackOverflow(tls, yypParser) - return + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + if yytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { + if _yyGrowStack(tls, yypParser) != 0 { + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 + _yyStackOverflow(tls, yypParser) + return + } + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos } - if int32(yyNewState) > int32(YY_MAX_SHIFT) { + if int32(int32(yyNewState)) > int32(YY_MAX_SHIFT) { yyNewState = uint16(int32(yyNewState) + (libc.Int32FromInt32(YY_MIN_REDUCE) - libc.Int32FromInt32(YY_MIN_SHIFTREDUCE))) } - yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos (*TyyStackEntry)(unsafe.Pointer(yytos)).Fstateno = yyNewState (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor = yyMajor *(*TToken)(unsafe.Pointer(yytos + 8)) = yyMinor @@ -153418,419 +154969,423 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint // // /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side // ** of that rule */ -var _yyRuleInfoLhs = [405]uint16{ - 0: uint16(189), - 1: uint16(189), - 2: uint16(188), - 3: uint16(190), - 4: uint16(191), - 5: uint16(191), - 6: uint16(191), - 7: uint16(191), - 8: uint16(190), - 9: uint16(190), - 10: uint16(190), - 11: uint16(190), - 12: uint16(190), - 13: uint16(195), - 14: uint16(197), - 15: uint16(199), - 16: uint16(199), - 17: uint16(198), - 18: uint16(198), - 19: uint16(196), - 20: uint16(196), - 21: uint16(203), - 22: uint16(203), - 23: uint16(205), - 24: uint16(205), - 25: uint16(206), - 26: uint16(208), - 27: uint16(208), - 28: uint16(208), - 29: uint16(209), - 30: uint16(213), - 31: uint16(214), - 32: uint16(215), - 33: uint16(215), - 34: uint16(215), - 35: uint16(215), - 36: uint16(215), - 37: uint16(215), - 38: uint16(215), - 39: uint16(215), - 40: uint16(215), - 41: uint16(215), - 42: uint16(215), - 43: uint16(215), - 44: uint16(215), - 45: uint16(224), - 46: uint16(224), - 47: uint16(220), - 48: uint16(220), - 49: uint16(222), - 50: uint16(222), - 51: uint16(225), - 52: uint16(225), - 53: uint16(225), - 54: uint16(225), - 55: uint16(226), - 56: uint16(226), - 57: uint16(226), - 58: uint16(226), - 59: uint16(226), - 60: uint16(223), - 61: uint16(223), - 62: uint16(227), - 63: uint16(227), - 64: uint16(227), - 65: uint16(202), - 66: uint16(229), - 67: uint16(230), - 68: uint16(230), - 69: uint16(230), - 70: uint16(230), - 71: uint16(230), - 72: uint16(233), - 73: uint16(218), - 74: uint16(218), - 75: uint16(234), - 76: uint16(234), - 77: uint16(235), - 78: uint16(235), - 79: uint16(190), - 80: uint16(237), - 81: uint16(237), - 82: uint16(190), - 83: uint16(190), - 84: uint16(190), - 85: uint16(204), - 86: uint16(204), - 87: uint16(204), - 88: uint16(239), - 89: uint16(242), - 90: uint16(242), - 91: uint16(242), - 92: uint16(240), - 93: uint16(240), - 94: uint16(252), - 95: uint16(252), - 96: uint16(243), - 97: uint16(243), - 98: uint16(243), - 99: uint16(254), +var _yyRuleInfoLhs = [409]uint16{ + 0: uint16(190), + 1: uint16(190), + 2: uint16(189), + 3: uint16(191), + 4: uint16(192), + 5: uint16(192), + 6: uint16(192), + 7: uint16(192), + 8: uint16(191), + 9: uint16(191), + 10: uint16(191), + 11: uint16(191), + 12: uint16(191), + 13: uint16(196), + 14: uint16(198), + 15: uint16(200), + 16: uint16(200), + 17: uint16(199), + 18: uint16(199), + 19: uint16(197), + 20: uint16(197), + 21: uint16(204), + 22: uint16(204), + 23: uint16(206), + 24: uint16(206), + 25: uint16(207), + 26: uint16(209), + 27: uint16(209), + 28: uint16(209), + 29: uint16(210), + 30: uint16(214), + 31: uint16(215), + 32: uint16(216), + 33: uint16(216), + 34: uint16(216), + 35: uint16(216), + 36: uint16(216), + 37: uint16(216), + 38: uint16(216), + 39: uint16(216), + 40: uint16(216), + 41: uint16(216), + 42: uint16(216), + 43: uint16(216), + 44: uint16(216), + 45: uint16(225), + 46: uint16(225), + 47: uint16(221), + 48: uint16(221), + 49: uint16(223), + 50: uint16(223), + 51: uint16(226), + 52: uint16(226), + 53: uint16(226), + 54: uint16(226), + 55: uint16(227), + 56: uint16(227), + 57: uint16(227), + 58: uint16(227), + 59: uint16(227), + 60: uint16(224), + 61: uint16(224), + 62: uint16(228), + 63: uint16(228), + 64: uint16(228), + 65: uint16(203), + 66: uint16(230), + 67: uint16(231), + 68: uint16(231), + 69: uint16(231), + 70: uint16(231), + 71: uint16(231), + 72: uint16(234), + 73: uint16(219), + 74: uint16(219), + 75: uint16(235), + 76: uint16(235), + 77: uint16(236), + 78: uint16(236), + 79: uint16(191), + 80: uint16(238), + 81: uint16(238), + 82: uint16(191), + 83: uint16(191), + 84: uint16(191), + 85: uint16(205), + 86: uint16(205), + 87: uint16(205), + 88: uint16(240), + 89: uint16(243), + 90: uint16(243), + 91: uint16(243), + 92: uint16(241), + 93: uint16(241), + 94: uint16(253), + 95: uint16(241), + 96: uint16(255), + 97: uint16(255), + 98: uint16(244), + 99: uint16(244), 100: uint16(244), - 101: uint16(244), - 102: uint16(244), - 103: uint16(255), - 104: uint16(255), - 105: uint16(245), - 106: uint16(245), - 107: uint16(257), - 108: uint16(257), - 109: uint16(256), - 110: uint16(256), - 111: uint16(256), - 112: uint16(256), - 113: uint16(256), - 114: uint16(200), - 115: uint16(200), - 116: uint16(238), - 117: uint16(238), - 118: uint16(262), - 119: uint16(262), - 120: uint16(262), - 121: uint16(262), - 122: uint16(258), - 123: uint16(258), - 124: uint16(258), - 125: uint16(258), - 126: uint16(259), - 127: uint16(259), - 128: uint16(259), - 129: uint16(264), - 130: uint16(260), - 131: uint16(260), - 132: uint16(249), - 133: uint16(249), - 134: uint16(231), - 135: uint16(231), - 136: uint16(219), - 137: uint16(219), - 138: uint16(219), - 139: uint16(265), - 140: uint16(265), - 141: uint16(265), - 142: uint16(247), - 143: uint16(247), + 101: uint16(256), + 102: uint16(245), + 103: uint16(245), + 104: uint16(245), + 105: uint16(257), + 106: uint16(257), + 107: uint16(246), + 108: uint16(246), + 109: uint16(259), + 110: uint16(259), + 111: uint16(258), + 112: uint16(258), + 113: uint16(258), + 114: uint16(258), + 115: uint16(258), + 116: uint16(201), + 117: uint16(201), + 118: uint16(239), + 119: uint16(239), + 120: uint16(264), + 121: uint16(264), + 122: uint16(264), + 123: uint16(264), + 124: uint16(260), + 125: uint16(260), + 126: uint16(260), + 127: uint16(260), + 128: uint16(261), + 129: uint16(261), + 130: uint16(261), + 131: uint16(266), + 132: uint16(262), + 133: uint16(262), + 134: uint16(250), + 135: uint16(250), + 136: uint16(232), + 137: uint16(232), + 138: uint16(220), + 139: uint16(220), + 140: uint16(220), + 141: uint16(267), + 142: uint16(267), + 143: uint16(267), 144: uint16(248), 145: uint16(248), - 146: uint16(250), - 147: uint16(250), - 148: uint16(250), - 149: uint16(250), - 150: uint16(190), - 151: uint16(246), - 152: uint16(246), - 153: uint16(267), - 154: uint16(267), - 155: uint16(267), - 156: uint16(267), - 157: uint16(190), - 158: uint16(268), - 159: uint16(268), - 160: uint16(268), - 161: uint16(268), - 162: uint16(190), - 163: uint16(190), - 164: uint16(271), - 165: uint16(271), - 166: uint16(271), - 167: uint16(271), - 168: uint16(271), - 169: uint16(271), - 170: uint16(272), - 171: uint16(269), - 172: uint16(269), - 173: uint16(270), - 174: uint16(270), - 175: uint16(263), - 176: uint16(263), - 177: uint16(217), - 178: uint16(217), - 179: uint16(217), - 180: uint16(217), - 181: uint16(216), - 182: uint16(216), - 183: uint16(216), + 146: uint16(249), + 147: uint16(249), + 148: uint16(251), + 149: uint16(251), + 150: uint16(251), + 151: uint16(251), + 152: uint16(191), + 153: uint16(247), + 154: uint16(247), + 155: uint16(269), + 156: uint16(269), + 157: uint16(269), + 158: uint16(269), + 159: uint16(191), + 160: uint16(270), + 161: uint16(270), + 162: uint16(270), + 163: uint16(270), + 164: uint16(191), + 165: uint16(191), + 166: uint16(273), + 167: uint16(273), + 168: uint16(273), + 169: uint16(273), + 170: uint16(273), + 171: uint16(273), + 172: uint16(274), + 173: uint16(271), + 174: uint16(271), + 175: uint16(272), + 176: uint16(272), + 177: uint16(265), + 178: uint16(265), + 179: uint16(218), + 180: uint16(218), + 181: uint16(218), + 182: uint16(218), + 183: uint16(217), 184: uint16(217), 185: uint16(217), - 186: uint16(217), - 187: uint16(217), - 188: uint16(217), - 189: uint16(217), - 190: uint16(217), - 191: uint16(217), - 192: uint16(217), - 193: uint16(216), - 194: uint16(217), + 186: uint16(218), + 187: uint16(218), + 188: uint16(218), + 189: uint16(218), + 190: uint16(218), + 191: uint16(218), + 192: uint16(218), + 193: uint16(218), + 194: uint16(218), 195: uint16(217), - 196: uint16(217), - 197: uint16(217), - 198: uint16(217), - 199: uint16(217), - 200: uint16(217), - 201: uint16(217), - 202: uint16(217), - 203: uint16(274), - 204: uint16(217), - 205: uint16(217), - 206: uint16(217), - 207: uint16(217), - 208: uint16(217), - 209: uint16(217), - 210: uint16(217), - 211: uint16(217), - 212: uint16(217), - 213: uint16(217), - 214: uint16(217), - 215: uint16(217), - 216: uint16(275), - 217: uint16(275), - 218: uint16(217), - 219: uint16(276), - 220: uint16(276), - 221: uint16(217), - 222: uint16(217), - 223: uint16(217), - 224: uint16(217), - 225: uint16(217), - 226: uint16(217), - 227: uint16(279), - 228: uint16(279), - 229: uint16(280), - 230: uint16(280), - 231: uint16(278), - 232: uint16(261), - 233: uint16(253), - 234: uint16(253), - 235: uint16(277), - 236: uint16(277), - 237: uint16(190), - 238: uint16(281), - 239: uint16(281), - 240: uint16(221), - 241: uint16(221), - 242: uint16(232), - 243: uint16(232), - 244: uint16(282), - 245: uint16(282), - 246: uint16(190), - 247: uint16(190), - 248: uint16(190), - 249: uint16(283), - 250: uint16(283), - 251: uint16(190), - 252: uint16(190), - 253: uint16(190), - 254: uint16(190), - 255: uint16(190), - 256: uint16(211), - 257: uint16(212), - 258: uint16(190), - 259: uint16(285), - 260: uint16(287), + 196: uint16(218), + 197: uint16(218), + 198: uint16(218), + 199: uint16(218), + 200: uint16(218), + 201: uint16(218), + 202: uint16(218), + 203: uint16(218), + 204: uint16(218), + 205: uint16(276), + 206: uint16(218), + 207: uint16(218), + 208: uint16(218), + 209: uint16(218), + 210: uint16(218), + 211: uint16(218), + 212: uint16(218), + 213: uint16(218), + 214: uint16(218), + 215: uint16(218), + 216: uint16(218), + 217: uint16(218), + 218: uint16(277), + 219: uint16(277), + 220: uint16(218), + 221: uint16(278), + 222: uint16(278), + 223: uint16(218), + 224: uint16(218), + 225: uint16(218), + 226: uint16(218), + 227: uint16(218), + 228: uint16(218), + 229: uint16(281), + 230: uint16(281), + 231: uint16(282), + 232: uint16(282), + 233: uint16(280), + 234: uint16(263), + 235: uint16(254), + 236: uint16(254), + 237: uint16(279), + 238: uint16(279), + 239: uint16(191), + 240: uint16(283), + 241: uint16(283), + 242: uint16(222), + 243: uint16(222), + 244: uint16(233), + 245: uint16(233), + 246: uint16(284), + 247: uint16(284), + 248: uint16(191), + 249: uint16(191), + 250: uint16(191), + 251: uint16(285), + 252: uint16(285), + 253: uint16(191), + 254: uint16(191), + 255: uint16(191), + 256: uint16(191), + 257: uint16(191), + 258: uint16(212), + 259: uint16(213), + 260: uint16(191), 261: uint16(287), - 262: uint16(287), - 263: uint16(288), - 264: uint16(288), - 265: uint16(288), + 262: uint16(289), + 263: uint16(289), + 264: uint16(289), + 265: uint16(290), 266: uint16(290), 267: uint16(290), - 268: uint16(286), - 269: uint16(286), - 270: uint16(292), - 271: uint16(293), - 272: uint16(293), - 273: uint16(291), - 274: uint16(291), - 275: uint16(291), - 276: uint16(291), - 277: uint16(217), - 278: uint16(217), - 279: uint16(236), - 280: uint16(236), - 281: uint16(236), - 282: uint16(190), - 283: uint16(190), - 284: uint16(190), - 285: uint16(295), - 286: uint16(295), - 287: uint16(190), - 288: uint16(190), - 289: uint16(190), - 290: uint16(190), - 291: uint16(190), - 292: uint16(190), - 293: uint16(190), - 294: uint16(296), - 295: uint16(190), - 296: uint16(190), - 297: uint16(190), - 298: uint16(298), - 299: uint16(300), - 300: uint16(301), - 301: uint16(301), - 302: uint16(302), - 303: uint16(266), - 304: uint16(266), - 305: uint16(305), - 306: uint16(305), - 307: uint16(305), - 308: uint16(304), - 309: uint16(241), - 310: uint16(241), - 311: uint16(306), - 312: uint16(307), - 313: uint16(308), - 314: uint16(308), - 315: uint16(308), - 316: uint16(308), - 317: uint16(308), - 318: uint16(309), - 319: uint16(309), - 320: uint16(309), - 321: uint16(313), - 322: uint16(315), - 323: uint16(315), + 268: uint16(292), + 269: uint16(292), + 270: uint16(288), + 271: uint16(288), + 272: uint16(294), + 273: uint16(295), + 274: uint16(295), + 275: uint16(293), + 276: uint16(293), + 277: uint16(293), + 278: uint16(293), + 279: uint16(218), + 280: uint16(218), + 281: uint16(237), + 282: uint16(237), + 283: uint16(237), + 284: uint16(191), + 285: uint16(191), + 286: uint16(191), + 287: uint16(297), + 288: uint16(297), + 289: uint16(191), + 290: uint16(191), + 291: uint16(191), + 292: uint16(191), + 293: uint16(191), + 294: uint16(191), + 295: uint16(191), + 296: uint16(298), + 297: uint16(191), + 298: uint16(191), + 299: uint16(191), + 300: uint16(300), + 301: uint16(302), + 302: uint16(303), + 303: uint16(303), + 304: uint16(304), + 305: uint16(268), + 306: uint16(268), + 307: uint16(307), + 308: uint16(307), + 309: uint16(307), + 310: uint16(306), + 311: uint16(308), + 312: uint16(242), + 313: uint16(242), + 314: uint16(309), + 315: uint16(310), + 316: uint16(311), + 317: uint16(311), + 318: uint16(311), + 319: uint16(311), + 320: uint16(311), + 321: uint16(312), + 322: uint16(312), + 323: uint16(312), 324: uint16(316), - 325: uint16(316), - 326: uint16(314), - 327: uint16(314), - 328: uint16(317), + 325: uint16(318), + 326: uint16(318), + 327: uint16(319), + 328: uint16(319), 329: uint16(317), - 330: uint16(318), - 331: uint16(318), - 332: uint16(318), - 333: uint16(251), - 334: uint16(273), - 335: uint16(273), - 336: uint16(273), - 337: uint16(312), - 338: uint16(312), - 339: uint16(311), - 340: uint16(185), - 341: uint16(186), - 342: uint16(186), - 343: uint16(187), - 344: uint16(187), + 330: uint16(317), + 331: uint16(320), + 332: uint16(320), + 333: uint16(321), + 334: uint16(321), + 335: uint16(321), + 336: uint16(252), + 337: uint16(275), + 338: uint16(275), + 339: uint16(275), + 340: uint16(315), + 341: uint16(315), + 342: uint16(314), + 343: uint16(217), + 344: uint16(186), 345: uint16(187), - 346: uint16(192), - 347: uint16(192), - 348: uint16(192), - 349: uint16(194), - 350: uint16(194), - 351: uint16(190), - 352: uint16(203), - 353: uint16(201), - 354: uint16(201), - 355: uint16(193), - 356: uint16(193), - 357: uint16(208), - 358: uint16(209), - 359: uint16(210), - 360: uint16(210), - 361: uint16(207), - 362: uint16(207), - 363: uint16(215), - 364: uint16(215), - 365: uint16(215), - 366: uint16(202), - 367: uint16(228), - 368: uint16(228), - 369: uint16(229), - 370: uint16(233), - 371: uint16(235), - 372: uint16(239), - 373: uint16(240), - 374: uint16(254), - 375: uint16(255), - 376: uint16(264), - 377: uint16(272), - 378: uint16(217), - 379: uint16(274), - 380: uint16(278), - 381: uint16(261), - 382: uint16(284), - 383: uint16(284), - 384: uint16(284), - 385: uint16(284), - 386: uint16(284), - 387: uint16(211), - 388: uint16(289), - 389: uint16(289), - 390: uint16(292), - 391: uint16(293), - 392: uint16(294), - 393: uint16(294), - 394: uint16(297), - 395: uint16(297), - 396: uint16(299), - 397: uint16(299), - 398: uint16(300), - 399: uint16(303), - 400: uint16(303), - 401: uint16(303), - 402: uint16(266), - 403: uint16(306), - 404: uint16(308), + 346: uint16(187), + 347: uint16(188), + 348: uint16(188), + 349: uint16(188), + 350: uint16(193), + 351: uint16(193), + 352: uint16(193), + 353: uint16(195), + 354: uint16(195), + 355: uint16(191), + 356: uint16(204), + 357: uint16(202), + 358: uint16(202), + 359: uint16(194), + 360: uint16(194), + 361: uint16(209), + 362: uint16(210), + 363: uint16(211), + 364: uint16(211), + 365: uint16(208), + 366: uint16(208), + 367: uint16(216), + 368: uint16(216), + 369: uint16(216), + 370: uint16(203), + 371: uint16(229), + 372: uint16(229), + 373: uint16(230), + 374: uint16(234), + 375: uint16(236), + 376: uint16(240), + 377: uint16(241), + 378: uint16(256), + 379: uint16(257), + 380: uint16(266), + 381: uint16(274), + 382: uint16(218), + 383: uint16(276), + 384: uint16(280), + 385: uint16(263), + 386: uint16(286), + 387: uint16(286), + 388: uint16(286), + 389: uint16(286), + 390: uint16(286), + 391: uint16(212), + 392: uint16(291), + 393: uint16(291), + 394: uint16(294), + 395: uint16(295), + 396: uint16(296), + 397: uint16(296), + 398: uint16(299), + 399: uint16(299), + 400: uint16(301), + 401: uint16(301), + 402: uint16(302), + 403: uint16(305), + 404: uint16(305), + 405: uint16(305), + 406: uint16(268), + 407: uint16(309), + 408: uint16(311), } // C documentation // // /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number // ** of symbols on the right-hand side of that rule. */ -var _yyRuleInfoNRhs = [405]int8{ +var _yyRuleInfoNRhs = [409]int8{ 0: int8(-int32(1)), 1: int8(-int32(3)), 2: int8(-int32(1)), @@ -153911,273 +155466,277 @@ var _yyRuleInfoNRhs = [405]int8{ 92: int8(-int32(9)), 93: int8(-int32(10)), 94: int8(-int32(4)), - 95: int8(-int32(5)), - 96: int8(-int32(1)), - 97: int8(-int32(1)), - 100: int8(-int32(5)), - 101: int8(-int32(3)), + 95: int8(-int32(1)), + 96: int8(-int32(5)), + 97: int8(-int32(5)), + 98: int8(-int32(1)), + 99: int8(-int32(1)), 102: int8(-int32(5)), - 103: int8(-int32(2)), - 106: int8(-int32(2)), - 107: int8(-int32(2)), - 109: int8(-int32(5)), - 110: int8(-int32(6)), - 111: int8(-int32(8)), + 103: int8(-int32(3)), + 104: int8(-int32(5)), + 105: int8(-int32(2)), + 108: int8(-int32(2)), + 109: int8(-int32(2)), + 111: int8(-int32(5)), 112: int8(-int32(6)), - 113: int8(-int32(6)), - 115: int8(-int32(2)), - 116: int8(-int32(1)), - 117: int8(-int32(3)), + 113: int8(-int32(8)), + 114: int8(-int32(6)), + 115: int8(-int32(6)), + 117: int8(-int32(2)), 118: int8(-int32(1)), 119: int8(-int32(3)), - 120: int8(-int32(5)), + 120: int8(-int32(1)), 121: int8(-int32(3)), - 122: int8(-int32(1)), - 123: int8(-int32(2)), - 124: int8(-int32(3)), - 125: int8(-int32(4)), - 126: int8(-int32(2)), + 122: int8(-int32(5)), + 123: int8(-int32(3)), + 124: int8(-int32(1)), + 125: int8(-int32(2)), + 126: int8(-int32(3)), 127: int8(-int32(4)), - 130: int8(-int32(3)), - 131: int8(-int32(2)), - 133: int8(-int32(3)), - 134: int8(-int32(5)), + 128: int8(-int32(2)), + 129: int8(-int32(4)), + 132: int8(-int32(3)), + 133: int8(-int32(2)), 135: int8(-int32(3)), - 136: int8(-int32(1)), - 137: int8(-int32(1)), - 139: int8(-int32(2)), - 140: int8(-int32(2)), - 143: int8(-int32(3)), - 145: int8(-int32(2)), + 136: int8(-int32(5)), + 137: int8(-int32(3)), + 138: int8(-int32(1)), + 139: int8(-int32(1)), + 141: int8(-int32(2)), + 142: int8(-int32(2)), + 145: int8(-int32(3)), 147: int8(-int32(2)), - 148: int8(-int32(4)), - 149: int8(-int32(4)), - 150: int8(-int32(6)), - 152: int8(-int32(2)), + 149: int8(-int32(2)), + 150: int8(-int32(4)), + 151: int8(-int32(4)), + 152: int8(-int32(6)), 154: int8(-int32(2)), - 155: int8(-int32(2)), - 156: int8(-int32(4)), - 157: int8(-int32(9)), - 158: int8(-int32(5)), - 159: int8(-int32(7)), - 160: int8(-int32(3)), - 161: int8(-int32(5)), - 162: int8(-int32(7)), - 163: int8(-int32(8)), - 165: int8(-int32(2)), - 166: int8(-int32(12)), - 167: int8(-int32(9)), - 168: int8(-int32(5)), - 169: int8(-int32(8)), - 170: int8(-int32(2)), - 171: int8(-int32(2)), - 172: int8(-int32(1)), - 174: int8(-int32(3)), - 175: int8(-int32(3)), - 176: int8(-int32(1)), + 156: int8(-int32(2)), + 157: int8(-int32(2)), + 158: int8(-int32(4)), + 159: int8(-int32(9)), + 160: int8(-int32(5)), + 161: int8(-int32(7)), + 162: int8(-int32(3)), + 163: int8(-int32(5)), + 164: int8(-int32(7)), + 165: int8(-int32(8)), + 167: int8(-int32(2)), + 168: int8(-int32(12)), + 169: int8(-int32(9)), + 170: int8(-int32(5)), + 171: int8(-int32(8)), + 172: int8(-int32(2)), + 173: int8(-int32(2)), + 174: int8(-int32(1)), + 176: int8(-int32(3)), 177: int8(-int32(3)), 178: int8(-int32(1)), 179: int8(-int32(3)), - 180: int8(-int32(5)), - 181: int8(-int32(1)), - 182: int8(-int32(1)), + 180: int8(-int32(1)), + 181: int8(-int32(3)), + 182: int8(-int32(5)), 183: int8(-int32(1)), 184: int8(-int32(1)), - 185: int8(-int32(3)), - 186: int8(-int32(6)), - 187: int8(-int32(5)), - 188: int8(-int32(8)), - 189: int8(-int32(4)), - 190: int8(-int32(6)), - 191: int8(-int32(9)), - 192: int8(-int32(5)), - 193: int8(-int32(1)), + 185: int8(-int32(1)), + 186: int8(-int32(1)), + 187: int8(-int32(3)), + 188: int8(-int32(6)), + 189: int8(-int32(5)), + 190: int8(-int32(8)), + 191: int8(-int32(4)), + 192: int8(-int32(6)), + 193: int8(-int32(9)), 194: int8(-int32(5)), - 195: int8(-int32(3)), - 196: int8(-int32(3)), + 195: int8(-int32(1)), + 196: int8(-int32(5)), 197: int8(-int32(3)), 198: int8(-int32(3)), 199: int8(-int32(3)), 200: int8(-int32(3)), 201: int8(-int32(3)), 202: int8(-int32(3)), - 203: int8(-int32(2)), + 203: int8(-int32(3)), 204: int8(-int32(3)), - 205: int8(-int32(5)), - 206: int8(-int32(2)), - 207: int8(-int32(3)), - 208: int8(-int32(3)), - 209: int8(-int32(4)), - 210: int8(-int32(6)), - 211: int8(-int32(5)), - 212: int8(-int32(2)), - 213: int8(-int32(2)), + 205: int8(-int32(2)), + 206: int8(-int32(3)), + 207: int8(-int32(5)), + 208: int8(-int32(2)), + 209: int8(-int32(3)), + 210: int8(-int32(3)), + 211: int8(-int32(4)), + 212: int8(-int32(6)), + 213: int8(-int32(5)), 214: int8(-int32(2)), - 215: int8(-int32(3)), - 216: int8(-int32(1)), - 217: int8(-int32(2)), - 218: int8(-int32(5)), - 219: int8(-int32(1)), - 220: int8(-int32(2)), - 221: int8(-int32(5)), - 222: int8(-int32(3)), + 215: int8(-int32(2)), + 216: int8(-int32(2)), + 217: int8(-int32(3)), + 218: int8(-int32(1)), + 219: int8(-int32(2)), + 220: int8(-int32(5)), + 221: int8(-int32(1)), + 222: int8(-int32(2)), 223: int8(-int32(5)), - 224: int8(-int32(5)), - 225: int8(-int32(4)), + 224: int8(-int32(3)), + 225: int8(-int32(5)), 226: int8(-int32(5)), - 227: int8(-int32(5)), - 228: int8(-int32(4)), - 229: int8(-int32(2)), - 233: int8(-int32(3)), - 234: int8(-int32(1)), - 236: int8(-int32(3)), - 237: int8(-int32(12)), - 238: int8(-int32(1)), - 241: int8(-int32(3)), - 242: int8(-int32(5)), + 227: int8(-int32(4)), + 228: int8(-int32(5)), + 229: int8(-int32(5)), + 230: int8(-int32(4)), + 231: int8(-int32(2)), + 235: int8(-int32(3)), + 236: int8(-int32(1)), + 238: int8(-int32(3)), + 239: int8(-int32(12)), + 240: int8(-int32(1)), 243: int8(-int32(3)), - 245: int8(-int32(2)), - 246: int8(-int32(4)), + 244: int8(-int32(5)), + 245: int8(-int32(3)), 247: int8(-int32(2)), - 248: int8(-int32(3)), + 248: int8(-int32(4)), 249: int8(-int32(2)), - 251: int8(-int32(3)), - 252: int8(-int32(5)), - 253: int8(-int32(6)), + 250: int8(-int32(3)), + 251: int8(-int32(2)), + 253: int8(-int32(3)), 254: int8(-int32(5)), 255: int8(-int32(6)), - 256: int8(-int32(2)), - 257: int8(-int32(2)), - 258: int8(-int32(5)), - 259: int8(-int32(11)), - 260: int8(-int32(1)), - 261: int8(-int32(2)), - 263: int8(-int32(1)), - 264: int8(-int32(1)), - 265: int8(-int32(3)), - 267: int8(-int32(2)), - 268: int8(-int32(3)), + 256: int8(-int32(5)), + 257: int8(-int32(6)), + 258: int8(-int32(2)), + 259: int8(-int32(2)), + 260: int8(-int32(5)), + 261: int8(-int32(11)), + 262: int8(-int32(1)), + 263: int8(-int32(2)), + 265: int8(-int32(1)), + 266: int8(-int32(1)), + 267: int8(-int32(3)), 269: int8(-int32(2)), 270: int8(-int32(3)), - 271: int8(-int32(3)), - 272: int8(-int32(2)), - 273: int8(-int32(9)), - 274: int8(-int32(8)), - 275: int8(-int32(6)), - 276: int8(-int32(3)), - 277: int8(-int32(4)), - 278: int8(-int32(6)), - 279: int8(-int32(1)), - 280: int8(-int32(1)), + 271: int8(-int32(2)), + 272: int8(-int32(3)), + 273: int8(-int32(3)), + 274: int8(-int32(2)), + 275: int8(-int32(9)), + 276: int8(-int32(8)), + 277: int8(-int32(6)), + 278: int8(-int32(3)), + 279: int8(-int32(4)), + 280: int8(-int32(6)), 281: int8(-int32(1)), - 282: int8(-int32(4)), - 283: int8(-int32(6)), - 284: int8(-int32(3)), - 286: int8(-int32(2)), - 287: int8(-int32(1)), - 288: int8(-int32(3)), + 282: int8(-int32(1)), + 283: int8(-int32(1)), + 284: int8(-int32(4)), + 285: int8(-int32(6)), + 286: int8(-int32(3)), + 288: int8(-int32(2)), 289: int8(-int32(1)), 290: int8(-int32(3)), - 291: int8(-int32(6)), - 292: int8(-int32(7)), + 291: int8(-int32(1)), + 292: int8(-int32(3)), 293: int8(-int32(6)), - 294: int8(-int32(1)), - 295: int8(-int32(8)), + 294: int8(-int32(7)), + 295: int8(-int32(6)), 296: int8(-int32(1)), - 297: int8(-int32(4)), - 298: int8(-int32(8)), - 300: int8(-int32(1)), - 301: int8(-int32(3)), + 297: int8(-int32(8)), + 298: int8(-int32(1)), + 299: int8(-int32(4)), + 300: int8(-int32(8)), 302: int8(-int32(1)), - 303: int8(-int32(2)), - 304: int8(-int32(3)), - 305: int8(-int32(1)), - 306: int8(-int32(2)), - 307: int8(-int32(3)), - 308: int8(-int32(6)), - 309: int8(-int32(1)), - 310: int8(-int32(3)), - 311: int8(-int32(3)), - 312: int8(-int32(5)), - 313: int8(-int32(5)), - 314: int8(-int32(6)), - 315: int8(-int32(4)), + 303: int8(-int32(3)), + 304: int8(-int32(1)), + 305: int8(-int32(2)), + 306: int8(-int32(3)), + 307: int8(-int32(1)), + 308: int8(-int32(2)), + 309: int8(-int32(3)), + 310: int8(-int32(6)), + 311: int8(-int32(1)), + 312: int8(-int32(1)), + 313: int8(-int32(3)), + 314: int8(-int32(3)), + 315: int8(-int32(5)), 316: int8(-int32(5)), - 317: int8(-int32(2)), - 319: int8(-int32(3)), - 320: int8(-int32(6)), - 321: int8(-int32(1)), - 322: int8(-int32(1)), - 323: int8(-int32(2)), + 317: int8(-int32(6)), + 318: int8(-int32(4)), + 319: int8(-int32(5)), + 320: int8(-int32(2)), + 322: int8(-int32(3)), + 323: int8(-int32(6)), 324: int8(-int32(1)), - 325: int8(-int32(2)), + 325: int8(-int32(1)), 326: int8(-int32(2)), - 327: int8(-int32(2)), + 327: int8(-int32(1)), + 328: int8(-int32(2)), 329: int8(-int32(2)), 330: int8(-int32(2)), - 331: int8(-int32(2)), - 332: int8(-int32(1)), + 332: int8(-int32(2)), 333: int8(-int32(2)), 334: int8(-int32(2)), 335: int8(-int32(1)), - 336: int8(-int32(1)), - 337: int8(-int32(4)), - 338: int8(-int32(2)), - 339: int8(-int32(5)), - 340: int8(-int32(1)), + 336: int8(-int32(2)), + 337: int8(-int32(2)), + 338: int8(-int32(1)), + 339: int8(-int32(1)), + 340: int8(-int32(4)), 341: int8(-int32(2)), - 342: int8(-int32(1)), + 342: int8(-int32(5)), 343: int8(-int32(1)), - 344: int8(-int32(2)), - 345: int8(-int32(3)), + 344: int8(-int32(1)), + 345: int8(-int32(2)), + 346: int8(-int32(1)), 347: int8(-int32(1)), 348: int8(-int32(2)), - 349: int8(-int32(1)), - 351: int8(-int32(2)), - 352: int8(-int32(1)), - 353: int8(-int32(4)), - 354: int8(-int32(2)), - 355: int8(-int32(1)), + 349: int8(-int32(3)), + 351: int8(-int32(1)), + 352: int8(-int32(2)), + 353: int8(-int32(1)), + 355: int8(-int32(2)), 356: int8(-int32(1)), - 357: int8(-int32(1)), - 358: int8(-int32(1)), + 357: int8(-int32(4)), + 358: int8(-int32(2)), 359: int8(-int32(1)), 360: int8(-int32(1)), - 361: int8(-int32(2)), - 363: int8(-int32(2)), - 364: int8(-int32(4)), + 361: int8(-int32(1)), + 362: int8(-int32(1)), + 363: int8(-int32(1)), + 364: int8(-int32(1)), 365: int8(-int32(2)), - 366: int8(-int32(2)), - 367: int8(-int32(3)), - 368: int8(-int32(1)), - 370: int8(-int32(1)), - 371: int8(-int32(1)), + 367: int8(-int32(2)), + 368: int8(-int32(4)), + 369: int8(-int32(2)), + 370: int8(-int32(2)), + 371: int8(-int32(3)), 372: int8(-int32(1)), - 373: int8(-int32(1)), - 374: int8(-int32(2)), + 374: int8(-int32(1)), 375: int8(-int32(1)), 376: int8(-int32(1)), - 378: int8(-int32(1)), + 377: int8(-int32(1)), + 378: int8(-int32(2)), 379: int8(-int32(1)), 380: int8(-int32(1)), - 381: int8(-int32(1)), 382: int8(-int32(1)), 383: int8(-int32(1)), 384: int8(-int32(1)), 385: int8(-int32(1)), 386: int8(-int32(1)), 387: int8(-int32(1)), - 389: int8(-int32(3)), + 388: int8(-int32(1)), + 389: int8(-int32(1)), 390: int8(-int32(1)), - 392: int8(-int32(1)), - 395: int8(-int32(1)), + 391: int8(-int32(1)), + 393: int8(-int32(3)), + 394: int8(-int32(1)), 396: int8(-int32(1)), - 397: int8(-int32(3)), - 398: int8(-int32(2)), - 400: int8(-int32(4)), - 401: int8(-int32(2)), - 403: int8(-int32(1)), - 404: int8(-int32(1)), + 399: int8(-int32(1)), + 400: int8(-int32(1)), + 401: int8(-int32(3)), + 402: int8(-int32(2)), + 404: int8(-int32(4)), + 405: int8(-int32(2)), + 407: int8(-int32(1)), + 408: int8(-int32(1)), } // C documentation @@ -154195,18 +155754,19 @@ var _yyRuleInfoNRhs = [405]int8{ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int32, yyLookaheadToken TToken, pParse uintptr) (r uint16) { bp := tls.Alloc(144) defer tls.Free(144) - var bNot, bNot1, nExpr, yygoto, yysize, v344 int32 + var bNot, bNot1, nExpr, yygoto, yysize int32 var n Tu32 - var p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v343, v345, v346, v347, v348 uintptr + var op Tu8 + var p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v347, v348, v349, v350, v351 uintptr var yyact uint16 - var v349 TToken + var v352 TToken var _ /* all at bp+104 */ TToken var _ /* as at bp+72 */ TToken var _ /* dest at bp+16 */ TSelectDest var _ /* t at bp+88 */ TToken var _ /* x at bp+56 */ TToken var _ /* yylhsminor at bp+0 */ TYYMINORTYPE - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v343, v344, v345, v346, v347, v348, v349 /* Amount to pop the stack */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, op, p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v347, v348, v349, v350, v351, v352 /* Amount to pop the stack */ _ = yyLookahead _ = yyLookaheadToken yymsp = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos @@ -154227,7 +155787,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _7 case uint32(7): goto _8 - case uint32(321): + case uint32(324): goto _9 case uint32(9): goto _10 @@ -154255,9 +155815,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _21 case uint32(81): goto _22 - case uint32(98): + case uint32(100): goto _23 - case uint32(244): + case uint32(246): goto _24 case uint32(16): goto _25 @@ -154281,7 +155841,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _34 case uint32(26): goto _35 - case uint32(104): + case uint32(106): goto _36 case uint32(27): goto _37 @@ -154355,17 +155915,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _71 case uint32(61): goto _72 - case uint32(171): + case uint32(173): goto _73 case uint32(80): goto _74 case uint32(63): goto _75 - case uint32(217): + case uint32(219): goto _76 - case uint32(220): + case uint32(222): goto _77 - case uint32(245): + case uint32(247): goto _78 case uint32(64): goto _79 @@ -154387,7 +155947,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _87 case uint32(77): goto _88 - case uint32(172): + case uint32(174): goto _89 case uint32(78): goto _90 @@ -154421,47 +155981,47 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _104 case uint32(95): goto _105 - case uint32(96): - goto _106 case uint32(97): + goto _106 + case uint32(96): goto _107 - case uint32(132): + case uint32(98): goto _108 case uint32(99): goto _109 - case uint32(142): + case uint32(134): goto _110 - case uint32(232): + case uint32(101): goto _111 - case uint32(235): + case uint32(144): goto _112 - case uint32(240): + case uint32(234): goto _113 - case uint32(100): + case uint32(237): goto _114 - case uint32(101): + case uint32(242): goto _115 case uint32(102): goto _116 - case uint32(115): - goto _117 case uint32(103): + goto _117 + case uint32(104): goto _118 - case uint32(256): + case uint32(117): goto _119 - case uint32(257): + case uint32(105): goto _120 - case uint32(108): + case uint32(258): goto _121 - case uint32(105): + case uint32(259): goto _122 - case uint32(106): + case uint32(110): goto _123 case uint32(107): goto _124 - case uint32(109): + case uint32(108): goto _125 - case uint32(110): + case uint32(109): goto _126 case uint32(111): goto _127 @@ -154469,13 +156029,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _128 case uint32(113): goto _129 - case uint32(129): - goto _130 case uint32(114): + goto _130 + case uint32(115): goto _131 - case uint32(116): + case uint32(131): goto _132 - case uint32(117): + case uint32(116): goto _133 case uint32(118): goto _134 @@ -154499,15 +156059,15 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _143 case uint32(128): goto _144 - case uint32(130): + case uint32(129): goto _145 - case uint32(131): + case uint32(130): goto _146 - case uint32(143): + case uint32(132): goto _147 case uint32(133): goto _148 - case uint32(134): + case uint32(145): goto _149 case uint32(135): goto _150 @@ -154515,49 +156075,49 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _151 case uint32(137): goto _152 - case uint32(141): - goto _153 case uint32(138): - goto _154 + goto _153 case uint32(139): + goto _154 + case uint32(143): goto _155 case uint32(140): goto _156 - case uint32(146): + case uint32(141): goto _157 - case uint32(144): + case uint32(142): goto _158 - case uint32(151): + case uint32(148): goto _159 - case uint32(153): + case uint32(146): goto _160 - case uint32(230): + case uint32(153): goto _161 - case uint32(231): + case uint32(155): goto _162 - case uint32(250): + case uint32(232): goto _163 - case uint32(152): + case uint32(233): goto _164 - case uint32(145): + case uint32(252): goto _165 case uint32(154): goto _166 - case uint32(229): + case uint32(147): goto _167 - case uint32(249): + case uint32(156): goto _168 - case uint32(147): + case uint32(231): goto _169 - case uint32(148): + case uint32(251): goto _170 case uint32(149): goto _171 case uint32(150): goto _172 - case uint32(155): + case uint32(151): goto _173 - case uint32(156): + case uint32(152): goto _174 case uint32(157): goto _175 @@ -154587,9 +156147,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _187 case uint32(170): goto _188 - case uint32(173): + case uint32(171): goto _189 - case uint32(174): + case uint32(172): goto _190 case uint32(175): goto _191 @@ -154603,13 +156163,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _195 case uint32(180): goto _196 - case uint32(182): - goto _197 case uint32(181): + goto _197 + case uint32(182): goto _198 - case uint32(183): - goto _199 case uint32(184): + goto _199 + case uint32(183): goto _200 case uint32(185): goto _201 @@ -154633,13 +156193,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _210 case uint32(195): goto _211 - case uint32(197): - goto _212 case uint32(196): + goto _212 + case uint32(197): goto _213 - case uint32(198): - goto _214 case uint32(199): + goto _214 + case uint32(198): goto _215 case uint32(200): goto _216 @@ -154665,23 +156225,23 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _226 case uint32(211): goto _227 - case uint32(213): - goto _228 case uint32(212): + goto _228 + case uint32(213): goto _229 - case uint32(214): - goto _230 case uint32(215): + goto _230 + case uint32(214): goto _231 - case uint32(219): - goto _232 case uint32(216): + goto _232 + case uint32(217): goto _233 - case uint32(218): - goto _234 case uint32(221): + goto _234 + case uint32(218): goto _235 - case uint32(222): + case uint32(220): goto _236 case uint32(223): goto _237 @@ -154695,35 +156255,35 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _241 case uint32(228): goto _242 - case uint32(233): + case uint32(229): goto _243 - case uint32(234): + case uint32(230): goto _244 - case uint32(241): + case uint32(235): goto _245 case uint32(236): goto _246 - case uint32(237): + case uint32(243): goto _247 - case uint32(280): - goto _248 case uint32(238): - goto _249 + goto _248 case uint32(239): + goto _249 + case uint32(282): goto _250 - case uint32(242): + case uint32(240): goto _251 - case uint32(243): + case uint32(241): goto _252 - case uint32(246): + case uint32(244): goto _253 - case uint32(247): + case uint32(245): goto _254 case uint32(248): goto _255 - case uint32(251): + case uint32(249): goto _256 - case uint32(252): + case uint32(250): goto _257 case uint32(253): goto _258 @@ -154731,9 +156291,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _259 case uint32(255): goto _260 - case uint32(258): + case uint32(256): goto _261 - case uint32(259): + case uint32(257): goto _262 case uint32(260): goto _263 @@ -154741,21 +156301,21 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _264 case uint32(262): goto _265 - case uint32(264): - goto _266 case uint32(263): + goto _266 + case uint32(264): goto _267 - case uint32(265): + case uint32(266): goto _268 - case uint32(285): + case uint32(265): goto _269 - case uint32(266): + case uint32(267): goto _270 - case uint32(286): + case uint32(287): goto _271 - case uint32(267): - goto _272 case uint32(268): + goto _272 + case uint32(288): goto _273 case uint32(269): goto _274 @@ -154779,17 +156339,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _283 case uint32(279): goto _284 - case uint32(281): + case uint32(280): goto _285 - case uint32(282): + case uint32(281): goto _286 case uint32(283): goto _287 case uint32(284): goto _288 - case uint32(287): + case uint32(285): goto _289 - case uint32(288): + case uint32(286): goto _290 case uint32(289): goto _291 @@ -154813,19 +156373,19 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _300 case uint32(299): goto _301 - case uint32(301): - goto _302 case uint32(300): + goto _302 + case uint32(301): goto _303 - case uint32(302): + case uint32(303): goto _304 - case uint32(304): + case uint32(302): goto _305 - case uint32(303): + case uint32(304): goto _306 - case uint32(305): - goto _307 case uint32(306): + goto _307 + case uint32(305): goto _308 case uint32(307): goto _309 @@ -154855,31 +156415,31 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _321 case uint32(320): goto _322 - case uint32(324): + case uint32(321): goto _323 case uint32(322): goto _324 - case uint32(325): - goto _325 case uint32(323): - goto _326 + goto _325 case uint32(327): + goto _326 + case uint32(325): goto _327 - case uint32(326): - goto _328 case uint32(328): + goto _328 + case uint32(326): goto _329 - case uint32(329): + case uint32(330): goto _330 - case uint32(331): + case uint32(329): goto _331 - case uint32(330): + case uint32(331): goto _332 case uint32(332): goto _333 - case uint32(333): - goto _334 case uint32(334): + goto _334 + case uint32(333): goto _335 case uint32(335): goto _336 @@ -154891,34 +156451,42 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _339 case uint32(339): goto _340 - default: + case uint32(340): goto _341 + case uint32(341): + goto _342 + case uint32(342): + goto _343 + case uint32(343): + goto _344 + default: + goto _345 } - goto _342 + goto _346 _1: ; /* explain ::= EXPLAIN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(1) } - goto _342 + goto _346 _2: ; /* explain ::= EXPLAIN QUERY PLAN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(2) } - goto _342 + goto _346 _3: ; /* cmdx ::= cmd */ _sqlite3FinishCoding(tls, pParse) - goto _342 + goto _346 _4: ; /* cmd ::= BEGIN transtype trans_opt */ _sqlite3BeginTransaction(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _5: ; /* transtype ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_DEFERRED) - goto _342 + goto _346 _7: ; /* transtype ::= DEFERRED */ _6: @@ -154928,33 +156496,33 @@ _8: _9: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 + goto _346 _11: ; /* cmd ::= COMMIT|END trans_opt */ _10: ; _sqlite3EndTransaction(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor)) - goto _342 + goto _346 _12: ; /* cmd ::= SAVEPOINT nm */ _sqlite3Savepoint(tls, pParse, SAVEPOINT_BEGIN, yymsp+8) - goto _342 + goto _346 _13: ; /* cmd ::= RELEASE savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_RELEASE), yymsp+8) - goto _342 + goto _346 _14: ; /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_ROLLBACK), yymsp+8) - goto _342 + goto _346 _15: ; /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ _sqlite3StartTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), 0, 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _16: ; /* createkw ::= CREATE */ _disableLookaside(tls, pParse) - goto _342 + goto _346 _18: ; /* ifnotexists ::= */ _17: @@ -154972,56 +156540,56 @@ _23: _24: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = 0 - goto _342 + goto _346 _25: ; /* ifnotexists ::= IF NOT EXISTS */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(1) - goto _342 + goto _346 _26: ; /* temp ::= TEMP */ *(*int32)(unsafe.Pointer(yymsp + 8)) = libc.BoolInt32(int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0) - goto _342 + goto _346 _27: ; /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ _sqlite3EndTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*Tu32)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 + goto _346 _28: ; /* create_table_args ::= AS select */ _sqlite3EndTable(tls, pParse, uintptr(0), uintptr(0), uint32(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _29: ; /* table_option_set ::= */ *(*Tu32)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint32(0) - goto _342 + goto _346 _30: ; /* table_option_set ::= table_option_set COMMA table_option */ *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) | *(*Tu32)(unsafe.Pointer(yymsp + 8)) *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _31: ; /* table_option ::= WITHOUT nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16698, int32(5)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16785, int32(5)) == 0 { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) } else { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23362, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23485, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } - goto _342 + goto _346 _32: ; /* table_option ::= nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16611, int32(6)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16698, int32(6)) == 0 { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(TF_Strict) } else { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23362, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23485, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } *(*Tu32)(unsafe.Pointer(yymsp + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _33: ; /* columnname ::= nm typetoken */ _sqlite3AddColumn(tls, pParse, *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*TToken)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _35: ; /* typetoken ::= */ _34: @@ -155030,50 +156598,50 @@ _36: ; *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 + goto _346 _37: ; /* typetoken ::= typename LP signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) - goto _342 + goto _346 _38: ; /* typetoken ::= typename LP signed COMMA signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))))) - goto _342 + goto _346 _39: ; /* typename ::= typename ID|STRING */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) + uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) - goto _342 + goto _346 _40: ; /* scanpt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken.Fz - goto _342 + goto _346 _41: ; /* scantok ::= */ *(*TToken)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken - goto _342 + goto _346 _43: ; /* ccons ::= CONSTRAINT nm */ _42: ; (*TParse)(unsafe.Pointer(pParse)).FconstraintName = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _44: ; /* ccons ::= DEFAULT scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _45: ; /* ccons ::= DEFAULT LP expr RP */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))+uintptr(1), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _46: ; /* ccons ::= DEFAULT PLUS scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _47: ; /* ccons ::= DEFAULT MINUS scantok term */ p = _sqlite3PExpr(tls, pParse, int32(TK_UMINUS), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) _sqlite3AddDefaultValue(tls, pParse, p, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _48: ; /* ccons ::= DEFAULT scantok ID|INDEXED */ p1 = _tokenExpr(tls, pParse, int32(TK_STRING), *(*TToken)(unsafe.Pointer(yymsp + 8))) @@ -155081,99 +156649,99 @@ _48: _sqlite3ExprIdToTrueFalse(tls, p1) } _sqlite3AddDefaultValue(tls, pParse, p1, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - goto _342 + goto _346 _49: ; /* ccons ::= NOT NULL onconf */ _sqlite3AddNotNull(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _50: ; /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ _sqlite3AddPrimaryKey(tls, pParse, uintptr(0), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _51: ; /* ccons ::= UNIQUE onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _52: ; /* ccons ::= CHECK LP expr RP */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _53: ; /* ccons ::= REFERENCES nm eidlist_opt refargs */ _sqlite3CreateForeignKey(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _54: ; /* ccons ::= defer_subclause */ _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _55: ; /* ccons ::= COLLATE ID|STRING */ _sqlite3AddCollateType(tls, pParse, yymsp+8) - goto _342 + goto _346 _56: ; /* generated ::= LP expr RP */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 + goto _346 _57: ; /* generated ::= LP expr RP ID */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 + goto _346 _58: ; /* autoinc ::= AUTOINCR */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(1) - goto _342 + goto _346 _59: ; /* refargs ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = libc.Int32FromInt32(OE_None) * libc.Int32FromInt32(0x0101) /* EV: R-19803-45884 */ - goto _342 + goto _346 _60: ; /* refargs ::= refargs refarg */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) & ^*(*int32)(unsafe.Pointer(yymsp + 8 + 4)) | *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _61: ; /* refarg ::= MATCH nm */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _62: ; /* refarg ::= ON INSERT refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _63: ; /* refarg ::= ON DELETE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x0000ff) - goto _342 + goto _346 _64: ; /* refarg ::= ON UPDATE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) << int32(8) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x00ff00) - goto _342 + goto _346 _65: ; /* refact ::= SET NULL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetNull) /* EV: R-33326-45252 */ - goto _342 + goto _346 _66: ; /* refact ::= SET DEFAULT */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetDflt) /* EV: R-33326-45252 */ - goto _342 + goto _346 _67: ; /* refact ::= CASCADE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Cascade) /* EV: R-33326-45252 */ - goto _342 + goto _346 _68: ; /* refact ::= RESTRICT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Restrict) /* EV: R-33326-45252 */ - goto _342 + goto _346 _69: ; /* refact ::= NO ACTION */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = OE_None /* EV: R-33326-45252 */ - goto _342 + goto _346 _70: ; /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 - goto _342 + goto _346 _72: ; /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ _71: @@ -155181,7 +156749,7 @@ _71: _73: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _75: ; /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ _74: @@ -155193,64 +156761,64 @@ _77: _78: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(1) - goto _342 + goto _346 _79: ; /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 - goto _342 + goto _346 _80: ; /* tconscomma ::= COMMA */ (*TParse)(unsafe.Pointer(pParse)).FconstraintName.Fn = uint32(0) - goto _342 + goto _346 _81: ; /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ _sqlite3AddPrimaryKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), 0) - goto _342 + goto _346 _82: ; /* tcons ::= UNIQUE LP sortlist RP onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _83: ; /* tcons ::= CHECK LP expr RP onconf */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _84: ; /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ _sqlite3CreateForeignKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _86: ; /* onconf ::= */ _85: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(OE_Default) - goto _342 + goto _346 _87: ; /* onconf ::= ON CONFLICT resolvetype */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _88: ; /* resolvetype ::= IGNORE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Ignore) - goto _342 + goto _346 _90: ; /* resolvetype ::= REPLACE */ _89: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Replace) - goto _342 + goto _346 _91: ; /* cmd ::= DROP TABLE ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _92: ; /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ _sqlite3CreateView(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) - goto _342 + goto _346 _93: ; /* cmd ::= DROP VIEW ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), int32(1), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _94: ; /* cmd ::= select */ *(*TSelectDest)(unsafe.Pointer(bp + 16)) = TSelectDest{ @@ -155258,22 +156826,22 @@ _94: } _sqlite3Select(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), bp+16) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _95: ; /* select ::= WITH wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _96: ; /* select ::= WITH RECURSIVE wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _97: ; /* select ::= selectnowith */ p2 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) if p2 != 0 { _parserDoubleLinkSelect(tls, pParse, p2) } - goto _342 + goto _346 _98: ; /* selectnowith ::= selectnowith multiselect_op oneselect */ pRhs = *(*uintptr)(unsafe.Pointer(yymsp + 8)) @@ -155298,21 +156866,21 @@ _98: _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pLhs) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = pRhs - goto _342 + goto _346 _100: ; /* multiselect_op ::= UNION */ _99: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-OP*/ - goto _342 + goto _346 _101: ; /* multiselect_op ::= UNION ALL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_ALL) - goto _342 + goto _346 _102: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _103: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(9))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -155321,116 +156889,111 @@ _103: } else { _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) } - goto _342 + goto _346 _104: ; /* values ::= VALUES LP nexprlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) - goto _342 + goto _346 _105: - ; /* values ::= values COMMA LP nexprlist RP */ - pLeft = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) - pRight = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(libc.Int32FromInt32(SF_Values)|libc.Int32FromInt32(SF_MultiValue)), uintptr(0)) - if pLeft != 0 { - *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) - } - if pRight != 0 { - (*TSelect)(unsafe.Pointer(pRight)).Fop = uint8(TK_ALL) - (*TSelect)(unsafe.Pointer(pRight)).FpPrior = pLeft - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pRight - } else { - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pLeft - } - goto _342 + ; /* oneselect ::= mvalues */ + _sqlite3MultiValuesEnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_107: + ; /* mvalues ::= values COMMA LP nexprlist RP */ _106: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3MultiValues(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_108: ; /* distinct ::= DISTINCT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_Distinct) - goto _342 -_107: + goto _346 +_109: ; /* distinct ::= ALL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_All) - goto _342 -_109: + goto _346 +_111: ; /* sclp ::= */ -_108: - ; _110: ; -_111: - ; _112: ; _113: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 _114: + ; +_115: + ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 +_116: ; /* selcollist ::= sclp scanpt expr scanpt as */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) > uint32(0) { _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+8, int32(1)) } _sqlite3ExprListSetSpan(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_115: + goto _346 +_117: ; /* selcollist ::= sclp scanpt STAR */ p3 = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_ASTERISK), uintptr(0)) _sqlite3ExprSetErrorOffset(tls, p3, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), p3) - goto _342 -_116: + goto _346 +_118: ; /* selcollist ::= sclp scanpt nm DOT STAR */ - pRight1 = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) - _sqlite3ExprSetErrorOffset(tls, pRight1, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) - pLeft1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft1, pRight1) + pRight = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) + _sqlite3ExprSetErrorOffset(tls, pRight, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) + pLeft = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) + pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft, pRight) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pDot) - goto _342 -_118: + goto _346 +_120: ; /* as ::= AS nm */ -_117: - ; _119: ; -_120: +_121: ; - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 _122: + ; + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) + goto _346 +_124: ; /* from ::= */ -_121: +_123: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_123: + goto _346 +_125: ; /* from ::= FROM seltablist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) _sqlite3SrcListShiftJoinType(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_124: + goto _346 +_126: ; /* stl_prefix ::= seltablist joinop */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 && (*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc > 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8 + uintptr((*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc-int32(1))*104))).Ffg.Fjointype = uint8(*(*int32)(unsafe.Pointer(yymsp + 8))) } - goto _342 -_125: + goto _346 +_127: ; /* seltablist ::= stl_prefix nm dbnm as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) - goto _342 -_126: + goto _346 +_128: ; /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_127: + goto _346 +_129: ; /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListFuncArgs(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) - goto _342 -_128: + goto _346 +_130: ; /* seltablist ::= stl_prefix LP select RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_129: + goto _346 +_131: ; /* seltablist ::= stl_prefix LP seltablist RP as on_using */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) == uintptr(0) && *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) == uint32(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8)) == uintptr(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) @@ -155452,9 +157015,9 @@ _129: libc.SetBitFieldPtr16Uint32(pOld+60+4, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pNew+60+4, libc.Uint32FromInt32(1), 2, 0x4) } - v343 = libc.UintptrFromInt32(0) - (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v343 - (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v343 + v347 = libc.UintptrFromInt32(0) + (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v347 + (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v347 (*TSrcItem)(unsafe.Pointer(pOld)).FpSelect = uintptr(0) } _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) @@ -155464,189 +157027,189 @@ _129: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, pSubquery, yymsp+8) } } - goto _342 -_131: + goto _346 +_133: ; /* dbnm ::= */ -_130: +_132: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) - goto _342 -_132: + goto _346 +_134: ; /* fullname ::= nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_133: + goto _346 +_135: ; /* fullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_134: + goto _346 +_136: ; /* xfullname ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) /*A-overwrites-X*/ - goto _342 -_135: + goto _346 +_137: ; /* xfullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) /*A-overwrites-X*/ - goto _342 -_136: - ; /* xfullname ::= nm DOT nm AS nm */ + goto _346 +_138: + ; /* xfullname ::= nm DOT nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_137: - ; /* xfullname ::= nm AS nm */ + goto _346 +_139: + ; /* xfullname ::= nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0)) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_138: + goto _346 +_140: ; /* joinop ::= COMMA|JOIN */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(JT_INNER) - goto _342 -_139: + goto _346 +_141: ; /* joinop ::= JOIN_KW JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), uintptr(0)) /*X-overwrites-A*/ - goto _342 -_140: + goto _346 +_142: ; /* joinop ::= JOIN_KW nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0)) /*X-overwrites-A*/ - goto _342 -_141: + goto _346 +_143: ; /* joinop ::= JOIN_KW nm nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) /*X-overwrites-A*/ - goto _342 -_142: + goto _346 +_144: ; /* on_using ::= ON expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uintptr(0) - goto _342 -_143: + goto _346 +_145: ; /* on_using ::= USING LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_144: + goto _346 +_146: ; /* on_using ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uintptr(0) - goto _342 -_145: + goto _346 +_147: ; /* indexed_by ::= INDEXED BY nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 -_146: + goto _346 +_148: ; /* indexed_by ::= NOT INDEXED */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(1) - goto _342 -_148: + goto _346 +_150: ; /* orderby_opt ::= ORDER BY sortlist */ -_147: +_149: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_149: + goto _346 +_151: ; /* sortlist ::= sortlist COMMA expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_150: - ; /* sortlist ::= expr sortorder nulls */ + goto _346 +_152: + ; /* sortlist ::= expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) /*A-overwrites-Y*/ _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_151: + goto _346 +_153: ; /* sortorder ::= ASC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = SQLITE_SO_ASC - goto _342 -_152: + goto _346 +_154: ; /* sortorder ::= DESC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_154: + goto _346 +_156: ; /* sortorder ::= */ -_153: +_155: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = -int32(1) - goto _342 -_155: + goto _346 +_157: ; /* nulls ::= NULLS FIRST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = SQLITE_SO_ASC - goto _342 -_156: + goto _346 +_158: ; /* nulls ::= NULLS LAST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_158: + goto _346 +_160: ; /* having_opt ::= */ -_157: - ; _159: ; -_160: - ; _161: ; _162: ; _163: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_165: - ; /* having_opt ::= HAVING expr */ _164: ; -_166: +_165: ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 _167: + ; /* having_opt ::= HAVING expr */ +_166: ; _168: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 _169: + ; +_170: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + goto _346 +_171: ; /* limit_opt ::= LIMIT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 -_170: + goto _346 +_172: ; /* limit_opt ::= LIMIT expr OFFSET expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_171: + goto _346 +_173: ; /* limit_opt ::= LIMIT expr COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 -_172: + goto _346 +_174: ; /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) _sqlite3DeleteFrom(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0)) - goto _342 -_173: + goto _346 +_175: ; /* where_opt_ret ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) - goto _342 -_174: + goto _346 +_176: ; /* where_opt_ret ::= WHERE expr RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) - goto _342 -_175: + goto _346 +_177: ; /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) - _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23389) + _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23512) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { pFromClause = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) if (*TSrcList)(unsafe.Pointer(pFromClause)).FnSrc > int32(1) { @@ -155658,95 +157221,95 @@ _175: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendList(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), pFromClause) } _sqlite3Update(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_176: + goto _346 +_178: ; /* setlist ::= setlist COMMA nm EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) - goto _342 -_177: + goto _346 +_179: ; /* setlist ::= setlist COMMA LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_178: + goto _346 +_180: ; /* setlist ::= nm EQ expr */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_179: + goto _346 +_181: ; /* setlist ::= LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_180: + goto _346 +_182: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_181: + goto _346 +_183: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0)) - goto _342 -_182: + goto _346 +_184: ; /* upsert ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_183: + goto _346 +_185: ; /* upsert ::= RETURNING selcollist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_184: + goto _346 +_186: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(11))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_185: + goto _346 +_187: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_186: + goto _346 +_188: ; /* upsert ::= ON CONFLICT DO NOTHING returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_187: + goto _346 +_189: ; /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_188: + goto _346 +_190: ; /* returning ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_189: + goto _346 +_191: ; /* idlist_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_190: + goto _346 +_192: ; /* idlist_opt ::= LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_191: + goto _346 +_193: ; /* idlist ::= idlist COMMA nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3IdListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 -_192: + goto _346 +_194: ; /* idlist ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3IdListAppend(tls, pParse, uintptr(0), yymsp+8) /*A-overwrites-Y*/ - goto _342 -_193: + goto _346 +_195: ; /* expr ::= LP expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_194: + goto _346 +_196: ; /* expr ::= ID|INDEXED|JOIN_KW */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_195: + goto _346 +_197: ; /* expr ::= nm DOT nm */ temp1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) temp2 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp1, temp2) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_196: + goto _346 +_198: ; /* expr ::= nm DOT nm DOT nm */ temp11 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) temp21 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) @@ -155757,22 +157320,22 @@ _196: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp11, temp4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_198: + goto _346 +_200: ; /* term ::= NULL|FLOAT|BLOB */ -_197: +_199: ; *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_199: + goto _346 +_201: ; /* term ::= INTEGER */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), yymsp+8, int32(1)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 52)) = int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8))) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_200: + goto _346 +_202: ; /* expr ::= VARIABLE */ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8))))) == int32('#') && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)) + 1)))])&int32(0x04) != 0) { n = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) @@ -155784,7 +157347,7 @@ _200: ** in the virtual machine. #N is the N-th register. */ *(*TToken)(unsafe.Pointer(bp + 88)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) /*A-overwrites-X*/ if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23398, libc.VaList(bp+128, bp+88)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23521, libc.VaList(bp+128, bp+88)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = uintptr(0) } else { *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_REGISTER), uintptr(0), uintptr(0)) @@ -155793,57 +157356,57 @@ _200: } } } - goto _342 -_201: + goto _346 +_203: ; /* expr ::= expr COLLATE ID|STRING */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAddCollateToken(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8, int32(1)) - goto _342 -_202: + goto _346 +_204: ; /* expr ::= CAST LP expr AS typetoken RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_CAST), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) _sqlite3ExprAttachSubtrees(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) - goto _342 -_203: + goto _346 +_205: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_204: + goto _346 +_206: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_205: + goto _346 +_207: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_206: + goto _346 +_208: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_207: + goto _346 +_209: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_208: + goto _346 +_210: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, 0) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_209: + goto _346 +_211: ; /* term ::= CTIME_KW */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_210: + goto _346 +_212: ; /* expr ::= LP nexprlist COMMA expr RP */ pList = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_VECTOR), uintptr(0), uintptr(0)) @@ -155855,33 +157418,33 @@ _210: } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) } - goto _342 -_211: + goto _346 +_213: ; /* expr ::= expr AND expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_213: + goto _346 +_215: ; /* expr ::= expr OR expr */ -_212: - ; _214: ; -_215: - ; _216: ; _217: ; _218: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 _219: + ; +_220: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_221: ; /* likeop ::= NOT LIKE_KW|MATCH */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) |= uint32(0x80000000) /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/ - goto _342 -_220: + goto _346 +_222: ; /* expr ::= expr likeop expr */ bNot = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -155894,8 +157457,8 @@ _220: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_221: + goto _346 +_223: ; /* expr ::= expr likeop expr ESCAPE expr */ bNot1 = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -155909,65 +157472,67 @@ _221: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_222: + goto _346 +_224: ; /* expr ::= expr ISNULL|NOTNULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_223: + goto _346 +_225: ; /* expr ::= expr NOT NULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOTNULL), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uintptr(0)) - goto _342 -_224: + goto _346 +_226: ; /* expr ::= expr IS expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_225: + goto _346 +_227: ; /* expr ::= expr IS NOT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_226: + goto _346 +_228: ; /* expr ::= expr IS NOT DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_227: + goto _346 +_229: ; /* expr ::= expr IS DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_229: + goto _346 +_231: ; /* expr ::= NOT expr */ -_228: +_230: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) /*A-overwrites-B*/ - goto _342 -_230: + goto _346 +_232: ; /* expr ::= PLUS|MINUS expr */ - if int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) == int32(TK_PLUS) { - v344 = int32(TK_UPLUS) + p4 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + op = uint8(int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) + (libc.Int32FromInt32(TK_UPLUS) - libc.Int32FromInt32(TK_PLUS))) + if p4 != 0 && int32((*TExpr)(unsafe.Pointer(p4)).Fop) == int32(TK_UPLUS) { + (*TExpr)(unsafe.Pointer(p4)).Fop = op + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = p4 } else { - v344 = int32(TK_UMINUS) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(int32(op)), p4, uintptr(0)) + /*A-overwrites-B*/ } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, v344, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - /*A-overwrites-B*/ - goto _342 -_231: + goto _346 +_233: ; /* expr ::= expr PTR expr */ pList3 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList3 = _sqlite3ExprListAppend(tls, pParse, pList3, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, pList3, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_233: + goto _346 +_235: ; /* between_op ::= BETWEEN */ -_232: +_234: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = 0 - goto _342 -_234: + goto _346 +_236: ; /* expr ::= expr between_op expr AND expr */ pList4 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList4 = _sqlite3ExprListAppend(tls, pParse, pList4, *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -155980,8 +157545,8 @@ _234: if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_235: + goto _346 +_237: ; /* expr ::= expr in_op LP exprlist RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) == uintptr(0) { /* Expressions of the form @@ -155994,17 +157559,17 @@ _235: */ _sqlite3ExprUnmapAndDelete(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { - v345 = __ccgo_ts + 7890 + v348 = __ccgo_ts + 8015 } else { - v345 = __ccgo_ts + 7895 + v348 = __ccgo_ts + 8020 } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v345) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v348) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { _sqlite3ExprIdToTrueFalse(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } } else { pRHS = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr - if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { + if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pParse, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr = uintptr(0) _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) pRHS = _sqlite3PExpr(tls, pParse, int32(TK_UPLUS), pRHS, uintptr(0)) @@ -156038,460 +157603,464 @@ _235: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } } - goto _342 -_236: + goto _346 +_238: ; /* expr ::= LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_SELECT), uintptr(0), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_237: + goto _346 +_239: ; /* expr ::= expr in_op LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_238: + goto _346 +_240: ; /* expr ::= expr in_op nm dbnm paren_exprlist */ pSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) pSelect = _sqlite3SelectNew(tls, pParse, uintptr(0), pSrc, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { if pSelect != 0 { - v346 = pSrc + v349 = pSrc } else { - v346 = uintptr(0) + v349 = uintptr(0) } - _sqlite3SrcListFuncArgs(tls, pParse, v346, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + _sqlite3SrcListFuncArgs(tls, pParse, v349, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pSelect) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_239: + goto _346 +_241: ; /* expr ::= EXISTS LP select RP */ - v347 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v347 - p4 = v347 - _sqlite3PExprAddSelect(tls, pParse, p4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_240: + v350 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v350 + p5 = v350 + _sqlite3PExprAddSelect(tls, pParse, p5, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_242: ; /* expr ::= CASE case_operand case_exprlist case_else END */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_CASE), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { - v348 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + v351 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } else { - v348 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + v351 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) } - *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v348 + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v351 _sqlite3ExprSetHeightAndFlags(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } - goto _342 -_241: + goto _346 +_243: ; /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_242: + goto _346 +_244: ; /* case_exprlist ::= WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_243: + goto _346 +_245: ; /* nexprlist ::= nexprlist COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_244: + goto _346 +_246: ; /* nexprlist ::= expr */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_246: + goto _346 +_248: ; /* paren_exprlist ::= LP exprlist RP */ -_245: +_247: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_247: + goto _346 +_249: ; /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ _sqlite3CreateIndex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, uintptr(0)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(11))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8)), SQLITE_SO_ASC, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), uint8(SQLITE_IDXTYPE_APPDEF)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && (*TParse)(unsafe.Pointer(pParse)).FpNewIndex != 0 { _sqlite3RenameTokenMap(tls, pParse, (*TIndex)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpNewIndex)).FzName, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) } - goto _342 -_249: + goto _346 +_251: ; /* uniqueflag ::= UNIQUE */ -_248: +_250: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Abort) - goto _342 -_250: + goto _346 +_252: ; /* uniqueflag ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = OE_None - goto _342 -_251: + goto _346 +_253: ; /* eidlist ::= eidlist COMMA nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_252: - ; /* eidlist ::= nm collate sortorder */ + goto _346 +_254: + ; /* eidlist ::= nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_253: + goto _346 +_255: ; /* cmd ::= DROP INDEX ifexists fullname */ _sqlite3DropIndex(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_254: + goto _346 +_256: ; /* cmd ::= VACUUM vinto */ _sqlite3Vacuum(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_255: + goto _346 +_257: ; /* cmd ::= VACUUM nm vinto */ _sqlite3Vacuum(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_256: + goto _346 +_258: ; /* cmd ::= PRAGMA nm dbnm */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, uintptr(0), 0) - goto _342 -_257: + goto _346 +_259: ; /* cmd ::= PRAGMA nm dbnm EQ nmnum */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, 0) - goto _342 -_258: + goto _346 +_260: ; /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) - goto _342 -_259: + goto _346 +_261: ; /* cmd ::= PRAGMA nm dbnm EQ minus_num */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, int32(1)) - goto _342 -_260: + goto _346 +_262: ; /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) - goto _342 -_261: + goto _346 +_263: ; /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ (*(*TToken)(unsafe.Pointer(bp + 104))).Fz = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) (*(*TToken)(unsafe.Pointer(bp + 104))).Fn = uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) + *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) _sqlite3FinishTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), bp+104) - goto _342 -_262: + goto _346 +_264: ; /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ _sqlite3BeginTrigger(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8 + 8)) == uint32(0) { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) } else { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) } - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v349 /*A-overwrites-T*/ - goto _342 -_263: + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v352 /*A-overwrites-T*/ + goto _346 +_265: ; /* trigger_time ::= BEFORE|AFTER */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_264: + goto _346 +_266: ; /* trigger_time ::= INSTEAD OF */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_INSTEAD) - goto _342 -_265: + goto _346 +_267: ; /* trigger_time ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_BEFORE) - goto _342 -_267: + goto _346 +_269: ; /* trigger_event ::= DELETE|INSERT */ -_266: +_268: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) = uintptr(0) - goto _342 -_268: + goto _346 +_270: ; /* trigger_event ::= UPDATE OF idlist */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(TK_UPDATE) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_270: + goto _346 +_272: ; /* when_clause ::= */ -_269: +_271: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_272: + goto _346 +_274: ; /* when_clause ::= WHEN expr */ -_271: +_273: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_273: + goto _346 +_275: ; /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ (*TTriggerStep)(unsafe.Pointer((*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast)).FpNext = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_274: + goto _346 +_276: ; /* trigger_cmd_list ::= trigger_cmd SEMI */ (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_275: + goto _346 +_277: ; /* trnm ::= nm DOT nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23422, 0) - goto _342 -_276: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23545, 0) + goto _346 +_278: ; /* tridxby ::= INDEXED BY nm */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23517, 0) - goto _342 -_277: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23640, 0) + goto _346 +_279: ; /* tridxby ::= NOT INDEXED */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23601, 0) - goto _342 -_278: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23724, 0) + goto _346 +_280: ; /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerUpdateStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_279: - ; /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ + goto _346 +_281: + ; /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_280: + goto _346 +_282: ; /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerDeleteStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_281: + goto _346 +_283: ; /* trigger_cmd ::= scanpt select scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_282: + goto _346 +_284: ; /* expr ::= RAISE LP IGNORE RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_RAISE), uintptr(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)))).FaffExpr = int8(OE_Ignore) } - goto _342 -_283: + goto _346 +_285: ; /* expr ::= RAISE LP raisetype COMMA nm RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_RAISE), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)))).FaffExpr = int8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) } - goto _342 -_284: + goto _346 +_286: ; /* raisetype ::= ROLLBACK */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Rollback) - goto _342 -_285: + goto _346 +_287: ; /* raisetype ::= FAIL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Fail) - goto _342 -_286: + goto _346 +_288: ; /* cmd ::= DROP TRIGGER ifexists fullname */ _sqlite3DropTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_287: + goto _346 +_289: ; /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ _sqlite3Attach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_288: + goto _346 +_290: ; /* cmd ::= DETACH database_kw_opt expr */ _sqlite3Detach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_289: + goto _346 +_291: ; /* cmd ::= REINDEX */ _sqlite3Reindex(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_290: + goto _346 +_292: ; /* cmd ::= REINDEX nm dbnm */ _sqlite3Reindex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_291: + goto _346 +_293: ; /* cmd ::= ANALYZE */ _sqlite3Analyze(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_292: + goto _346 +_294: ; /* cmd ::= ANALYZE nm dbnm */ _sqlite3Analyze(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_293: + goto _346 +_295: ; /* cmd ::= ALTER TABLE fullname RENAME TO nm */ _sqlite3AlterRenameTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_294: + goto _346 +_296: ; /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(int32(int64((*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fz)-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) + (*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fn _sqlite3AlterFinishAddColumn(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_295: + goto _346 +_297: ; /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ _sqlite3AlterDropColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_296: + goto _346 +_298: ; /* add_column_fullname ::= fullname */ _disableLookaside(tls, pParse) _sqlite3AlterBeginAddColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_297: + goto _346 +_299: ; /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ _sqlite3AlterRenameColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) - goto _342 -_298: + goto _346 +_300: ; /* cmd ::= create_vtab */ _sqlite3VtabFinishParse(tls, pParse, uintptr(0)) - goto _342 -_299: + goto _346 +_301: ; /* cmd ::= create_vtab LP vtabarglist RP */ _sqlite3VtabFinishParse(tls, pParse, yymsp+8) - goto _342 -_300: + goto _346 +_302: ; /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ _sqlite3VtabBeginParse(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) - goto _342 -_301: + goto _346 +_303: ; /* vtabarg ::= */ _sqlite3VtabArgInit(tls, pParse) - goto _342 -_303: + goto _346 +_305: ; /* vtabargtoken ::= ANY */ -_302: - ; _304: ; - _sqlite3VtabArgExtend(tls, pParse, yymsp+8) - goto _342 _306: + ; + _sqlite3VtabArgExtend(tls, pParse, yymsp+8) + goto _346 +_308: ; /* with ::= WITH wqlist */ -_305: +_307: ; _sqlite3WithPush(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint8(1)) - goto _342 -_307: + goto _346 +_309: ; /* wqas ::= AS */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8(M10d_Any) - goto _342 -_308: + goto _346 +_310: ; /* wqas ::= AS MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8(M10d_Yes) - goto _342 -_309: + goto _346 +_311: ; /* wqas ::= AS NOT MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = uint8(M10d_No) - goto _342 -_310: - ; /* wqitem ::= nm eidlist_opt wqas LP select RP */ + goto _346 +_312: + ; /* wqitem ::= withnm eidlist_opt wqas LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3CteNew(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) /*A-overwrites-X*/ - goto _342 -_311: - ; /* wqlist ::= wqitem */ + goto _346 +_313: + ; /* withnm ::= nm */ + (*TParse)(unsafe.Pointer(pParse)).FbHasWith = uint8(1) + goto _346 +_314: + ; /* wqlist ::= wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3WithAdd(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_312: + goto _346 +_315: ; /* wqlist ::= wqlist COMMA wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3WithAdd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_313: + goto _346 +_316: ; /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ _sqlite3WindowChain(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpNextWin = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_314: + goto _346 +_317: ; /* windowdefn ::= nm AS LP window RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)))) } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_315: + goto _346 +_318: ; /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_316: + goto _346 +_319: ; /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_317: + goto _346 +_320: ; /* window ::= ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_318: + goto _346 +_321: ; /* window ::= nm ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_319: + goto _346 +_322: ; /* window ::= nm frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_320: + goto _346 +_323: ; /* frame_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = _sqlite3WindowAlloc(tls, pParse, 0, int32(TK_UNBOUNDED), uintptr(0), int32(TK_CURRENT), uintptr(0), uint8(0)) - goto _342 -_321: + goto _346 +_324: ; /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), int32(TK_CURRENT), uintptr(0), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_322: + goto _346 +_325: ; /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_324: + goto _346 +_327: ; /* frame_bound_s ::= frame_bound */ -_323: +_326: ; *(*TFrameBound)(unsafe.Pointer(bp)) = *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_326: + goto _346 +_329: ; /* frame_bound_s ::= UNBOUNDED PRECEDING */ -_325: +_328: ; -_327: +_330: ; (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = uintptr(0) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_328: + goto _346 +_331: ; /* frame_bound ::= expr PRECEDING|FOLLOWING */ (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_329: + goto _346 +_332: ; /* frame_exclude_opt ::= */ *(*Tu8)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint8(0) - goto _342 -_330: + goto _346 +_333: ; /* frame_exclude_opt ::= EXCLUDE frame_exclude */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*Tu8)(unsafe.Pointer(yymsp + 8)) - goto _342 -_332: + goto _346 +_335: ; /* frame_exclude ::= NO OTHERS */ -_331: +_334: ; *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) /*A-overwrites-X*/ - goto _342 -_333: + goto _346 +_336: ; /* frame_exclude ::= GROUP|TIES */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_334: + goto _346 +_337: ; /* window_clause ::= WINDOW windowdefn_list */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_335: + goto _346 +_338: ; /* filter_over ::= filter_clause over_clause */ if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpFilter = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) @@ -156500,13 +158069,13 @@ _335: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_336: + goto _346 +_339: ; /* filter_over ::= over_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_337: + goto _346 +_340: ; /* filter_over ::= filter_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { @@ -156516,38 +158085,44 @@ _337: _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_338: + goto _346 +_341: ; /* over_clause ::= OVER LP window RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_339: + goto _346 +_342: ; /* over_clause ::= OVER nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) } - goto _342 -_340: + goto _346 +_343: ; /* filter_clause ::= FILTER LP WHERE expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_341: + goto _346 +_344: + ; /* term ::= QNUMBER */ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) + _sqlite3DequoteNumber(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp))))) + *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + goto _346 +_345: ; - goto _342 + goto _346 /********** End reduce actions ************************************************/ -_342: +_346: ; yygoto = int32(_yyRuleInfoLhs[yyruleno]) yysize = int32(_yyRuleInfoNRhs[yyruleno]) - yyact = _yy_find_reduce_action(tls, (*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(yysize)*24))).Fstateno, uint16(yygoto)) + yyact = _yy_find_reduce_action(tls, (*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(yysize)*24))).Fstateno, uint16(uint16(yygoto))) /* There are no SHIFTREDUCE actions on nonterminals because the table ** generator has simplified them to pure REDUCE actions. */ /* It is not possible for a REDUCE to be followed by an error */ yymsp += uintptr(yysize+int32(1)) * 24 (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = yymsp (*TyyStackEntry)(unsafe.Pointer(yymsp)).Fstateno = yyact - (*TyyStackEntry)(unsafe.Pointer(yymsp)).Fmajor = uint16(yygoto) + (*TyyStackEntry)(unsafe.Pointer(yymsp)).Fmajor = uint16(uint16(yygoto)) return yyact } @@ -156570,9 +158145,9 @@ func _yy_syntax_error(tls *libc.TLS, yypParser uintptr, yymajor int32, _yyminor /************ Begin %syntax_error code ****************************************/ _ = yymajor /* Silence some compiler warnings */ if *(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp))).Fz)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23398, libc.VaList(bp+24, bp)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23521, libc.VaList(bp+24, bp)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23686, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23809, 0) } /************ End %syntax_error code ******************************************/ /* Suppress warning about unused %extra_argument variable */ @@ -156629,25 +158204,27 @@ func _sqlite3Parser(tls *libc.TLS, yyp uintptr, yymajor int32, yyminor TToken) { pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse yyact = (*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyytos)).Fstateno for int32(1) != 0 { /* Exit by "break" */ - yyact = _yy_find_shift_action(tls, uint16(yymajor), yyact) - if int32(yyact) >= int32(YY_MIN_REDUCE) { - yyruleno = uint32(int32(yyact) - int32(YY_MIN_REDUCE)) /* Reduce by this rule */ + yyact = _yy_find_shift_action(tls, uint16(uint16(yymajor)), yyact) + if int32(int32(yyact)) >= int32(YY_MIN_REDUCE) { + yyruleno = uint32(int32(int32(yyact)) - int32(YY_MIN_REDUCE)) /* Reduce by this rule */ /* Check that the stack is large enough to grow by a single entry ** if the RHS of the rule is empty. This ensures that there is room ** enough on the stack to push the LHS value */ if int32(_yyRuleInfoNRhs[yyruleno]) == 0 { if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos >= (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - _yyStackOverflow(tls, yypParser) - break + if _yyGrowStack(tls, yypParser) != 0 { + _yyStackOverflow(tls, yypParser) + break + } } } yyact = _yy_reduce(tls, yypParser, yyruleno, yymajor, yyminor, pParse) } else { - if int32(yyact) <= int32(YY_MAX_SHIFTREDUCE) { - _yy_shift(tls, yypParser, yyact, uint16(yymajor), yyminor) + if int32(int32(yyact)) <= int32(YY_MAX_SHIFTREDUCE) { + _yy_shift(tls, yypParser, yyact, uint16(uint16(yymajor)), yyminor) break } else { - if int32(yyact) == int32(YY_ACCEPT_ACTION) { + if int32(int32(yyact)) == int32(YY_ACCEPT_ACTION) { (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 _yy_accept(tls, yypParser) return @@ -156661,7 +158238,7 @@ func _sqlite3Parser(tls *libc.TLS, yyp uintptr, yymajor int32, yyminor TToken) { ** they intend to abandon the parse upon the first syntax error seen. */ _yy_syntax_error(tls, yypParser, yymajor, yyminor) - _yy_destructor(tls, yypParser, uint16(yymajor), bp) + _yy_destructor(tls, yypParser, uint16(uint16(yymajor)), bp) break } } @@ -158787,9 +160364,9 @@ func _analyzeFilterKeyword(tls *libc.TLS, _z uintptr, lastToken int32) (r int32) // ** Store the token type in *tokenType before returning. // */ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { - var c, delim, i, n, v10, v14, v16, v19, v20, v3, v5, v7, v8 int32 - var v15, v6 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v14, v15, v16, v19, v20, v3, v5, v6, v7, v8 + var c, delim, i, n, v10, v16, v18, v21, v22, v3, v5, v7, v8 int32 + var v17, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v16, v17, v18, v21, v22, v3, v5, v6, v7, v8 switch int32(_aiClass[*(*uint8)(unsafe.Pointer(z))]) { /* Switch on the character-class of the first byte ** of the token. See the comment on the CC_ defines ** above. */ @@ -158985,39 +160562,83 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('X')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + 2))])&int32(0x08) != 0 { i = int32(3) for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { + if !(int32(1) != 0) { break } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } goto _11 _11: ; i++ } - return i - } - i = 0 - for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _12 - _12: - ; - i++ - } - if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { - i++ - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + } else { + i = 0 + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _12 + _12: + ; i++ } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) - } - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { - i += int32(2) - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } i++ + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _13 + _13: + ; + i++ + } + } + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } + i += int32(2) + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _14 + _14: + ; + i++ + } } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) } for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x46) != 0 { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_ILLEGAL) @@ -159028,24 +160649,24 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { i = int32(1) c = int32(*(*uint8)(unsafe.Pointer(z))) for { - if v15 = c != int32(']'); v15 { - v14 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v14 + if v17 = c != int32(']'); v17 { + v16 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v16 } - if !(v15 && v14 != 0) { + if !(v17 && v16 != 0) { break } - goto _13 - _13: + goto _15 + _15: ; i++ } if c == int32(']') { - v16 = int32(TK_ID) + v18 = int32(TK_ID) } else { - v16 = int32(TK_ILLEGAL) + v18 = int32(TK_ILLEGAL) } - *(*int32)(unsafe.Pointer(tokenType)) = v16 + *(*int32)(unsafe.Pointer(tokenType)) = v18 return i case int32(CC_VARNUM): *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) @@ -159054,8 +160675,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { break } - goto _17 - _17: + goto _19 + _19: ; i++ } @@ -159067,23 +160688,23 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) i = int32(1) for { - v19 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v19 - if !(v19 != 0) { + v21 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v21 + if !(v21 != 0) { break } - if int32(_sqlite3CtypeMap[uint8(c)])&int32(0x46) != 0 { + if int32(_sqlite3CtypeMap[uint8(uint8(c))])&int32(0x46) != 0 { n++ } else { if c == int32('(') && n > 0 { for { i++ - goto _21 - _21: + goto _23 + _23: ; - v20 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v20 - if !(v20 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { + v22 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v22 + if !(v22 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { break } } @@ -159101,8 +160722,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { } } } - goto _18 - _18: + goto _20 + _20: ; i++ } @@ -159120,8 +160741,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_aiClass[*(*uint8)(unsafe.Pointer(z + uintptr(i)))]) <= int32(CC_KYWD)) { break } - goto _22 - _22: + goto _24 + _24: ; i++ } @@ -159142,8 +160763,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { break } - goto _23 - _23: + goto _25 + _25: ; i++ } @@ -159195,7 +160816,7 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { var lastTokenParsed, mxSqlLen, n, nErr int32 var _ /* sEngine at bp+8 */ TyyParser var _ /* tokenType at bp+0 */ int32 - var _ /* x at bp+2432 */ TToken + var _ /* x at bp+2440 */ TToken _, _, _, _, _, _, _ = db, lastTokenParsed, mxSqlLen, n, nErr, pEngine, pParentParse nErr = 0 /* The LEMON-generated LALR(1) parser */ n = 0 /* type of the next token */ @@ -159253,17 +160874,19 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp)) == int32(TK_FILTER) { *(*int32)(unsafe.Pointer(bp)) = _analyzeFilterKeyword(tls, zSql+6, lastTokenParsed) } else { - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fz = zSql - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fn = uint32(n) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23703, libc.VaList(bp+2456, bp+2432)) - break + if *(*int32)(unsafe.Pointer(bp)) != int32(TK_QNUMBER) { + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fz = zSql + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fn = uint32(uint32(n)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23826, libc.VaList(bp+2464, bp+2440)) + break + } } } } } } (*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fz = zSql - (*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fn = uint32(n) + (*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fn = uint32(uint32(n)) _sqlite3Parser(tls, pEngine, *(*int32)(unsafe.Pointer(bp)), (*TParse)(unsafe.Pointer(pParse)).FsLastToken) lastTokenParsed = *(*int32)(unsafe.Pointer(bp)) zSql += uintptr(n) @@ -159277,9 +160900,9 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { } if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg != 0 || (*TParse)(unsafe.Pointer(pParse)).Frc != SQLITE_OK && (*TParse)(unsafe.Pointer(pParse)).Frc != int32(SQLITE_DONE) { if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg == uintptr(0) { - (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3799, libc.VaList(bp+2456, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) + (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3863, libc.VaList(bp+2464, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) } - Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23728, libc.VaList(bp+2456, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) + Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23851, libc.VaList(bp+2464, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) nErr++ } (*TParse)(unsafe.Pointer(pParse)).FzTail = zSql @@ -159429,7 +161052,7 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { zSql++ } if int32(*(*int8)(unsafe.Pointer(zSql))) == 0 { - return libc.BoolInt32(int32(state) == int32(1)) + return libc.BoolInt32(int32(int32(state)) == int32(1)) } token = uint8(tkWS) case int32('['): /* Microsoft-style identifiers in [...] */ @@ -159471,7 +161094,7 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('c'): fallthrough case int32('C'): - if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23739, int32(6)) == 0 { + if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23862, int32(6)) == 0 { token = uint8(tkCREATE) } else { token = uint8(tkOTHER) @@ -159479,13 +161102,13 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('t'): fallthrough case int32('T'): - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20383, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20515, int32(7)) == 0 { token = uint8(tkTRIGGER) } else { - if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23746, int32(4)) == 0 { + if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23869, int32(4)) == 0 { token = uint8(tkTEMP) } else { - if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23751, int32(9)) == 0 { + if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23874, int32(9)) == 0 { token = uint8(tkTEMP) } else { token = uint8(tkOTHER) @@ -159495,10 +161118,10 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('e'): fallthrough case int32('E'): - if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23761, int32(3)) == 0 { + if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23884, int32(3)) == 0 { token = uint8(tkEND) } else { - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23765, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23888, int32(7)) == 0 { token = uint8(tkEXPLAIN) } else { token = uint8(tkOTHER) @@ -159518,7 +161141,7 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { state = *(*Tu8)(unsafe.Pointer(uintptr(unsafe.Pointer(&_trans)) + uintptr(state)*8 + uintptr(token))) zSql++ } - return libc.BoolInt32(int32(state) == int32(1)) + return libc.BoolInt32(int32(int32(state)) == int32(1)) } /* A complex statement machine used to detect the end of a CREATE TRIGGER @@ -159716,8 +161339,8 @@ func _hasHighPrecisionDouble(tls *libc.TLS, rc int32) (r int32) { return 0 } else { rc++ - a = float64(1) + float64(rc)*float64(0.1) - b = float64(1e+18) + float64(rc)*float64(25) + a = float64(1) + float64(float64(rc))*float64(0.1) + b = float64(1e+18) + float64(float64(rc))*float64(25) c = a + b return libc.BoolInt32(b != c) } @@ -159758,8 +161381,6 @@ func _hasHighPrecisionDouble(tls *libc.TLS, rc int32) (r int32) { // ** without blocking. // */ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { - ng := runtime.GOMAXPROCS(1) - defer func() { runtime.GOMAXPROCS(ng) }() var pMainMtx uintptr var rc int32 _, _ = pMainMtx, rc /* Result code */ @@ -159771,7 +161392,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** must be complete. So isInit must not be set until the very end ** of this routine. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { _sqlite3MemoryBarrier(tls) return SQLITE_OK } @@ -159832,7 +161453,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** call to sqlite3PcacheInitialize(). */ Xsqlite3_mutex_enter(tls, _sqlite3Config.FpInitMutex) - if _sqlite3Config.FisInit == 0 && _sqlite3Config.FinProgress == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 && _sqlite3Config.FinProgress == 0 { _sqlite3Config.FinProgress = int32(1) libc.Xmemset(tls, uintptr(unsafe.Pointer(&_sqlite3BuiltinFunctions)), 0, uint64(184)) _sqlite3RegisterBuiltinFunctions(tls) @@ -159849,7 +161470,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { if rc == SQLITE_OK { _sqlite3PCacheBufferSetup(tls, _sqlite3Config.FpPage, _sqlite3Config.FszPage, _sqlite3Config.FnPage) _sqlite3MemoryBarrier(tls) - _sqlite3Config.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, int32(1)) } _sqlite3Config.FinProgress = 0 } @@ -159874,7 +161495,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { */ /* Experimentally determine if high-precision floating point is ** available. */ - _sqlite3Config.FbUseLongDouble = uint8(_hasHighPrecisionDouble(tls, rc)) + // disabled return rc } @@ -159889,10 +161510,10 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { // ** when this routine is invoked, then this routine is a harmless no-op. // */ func Xsqlite3_shutdown(tls *libc.TLS) (r int32) { - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { Xsqlite3_os_end(tls) Xsqlite3_reset_auto_extension(tls) - _sqlite3Config.FisInit = 0 + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, 0) } if _sqlite3Config.FisPCacheInit != 0 { _sqlite3PcacheShutdown(tls) @@ -159940,9 +161561,9 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { ** the SQLite library is in use. Except, a few selected opcodes ** are allowed. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)< 0 { return int32(SQLITE_BUSY) } @@ -160158,7 +161779,7 @@ func _setupLookaside(tls *libc.TLS, db uintptr, pBuf uintptr, sz int32, cnt int3 } else { if pBuf == uintptr(0) { _sqlite3BeginBenignMalloc(tls) - pStart = _sqlite3Malloc(tls, uint64(szAlloc)) /* IMP: R-61949-35727 */ + pStart = _sqlite3Malloc(tls, uint64(uint64(szAlloc))) /* IMP: R-61949-35727 */ _sqlite3EndBenignMalloc(tls) if pStart != 0 { szAlloc = int64(_sqlite3MallocSize(tls, pStart)) @@ -160176,7 +161797,7 @@ func _setupLookaside(tls *libc.TLS, db uintptr, pBuf uintptr, sz int32, cnt int3 nSm = int32((szAlloc - int64(sz*nBig)) / int64(LOOKASIDE_SMALL)) } else { if sz > 0 { - nBig = int32(szAlloc / int64(sz)) + nBig = int32(szAlloc / int64(int64(sz))) nSm = 0 } else { v1 = libc.Int32FromInt32(0) @@ -160188,8 +161809,8 @@ func _setupLookaside(tls *libc.TLS, db uintptr, pBuf uintptr, sz int32, cnt int3 (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpStart = pStart (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpInit = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpFree = uintptr(0) - (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = uint16(sz) - (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FszTrue = uint16(sz) + (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = uint16(uint16(sz)) + (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FszTrue = uint16(uint16(sz)) if pStart != 0 { p = pStart i = 0 @@ -160490,7 +162111,7 @@ func _binCollFunc(tls *libc.TLS, NotUsed uintptr, nKey1 int32, pKey1 uintptr, nK /* EVIDENCE-OF: R-65033-28449 The built-in BINARY collation compares ** strings byte by byte using the memcmp() function from the standard C ** library. */ - rc = libc.Xmemcmp(tls, pKey1, pKey2, uint64(n)) + rc = libc.Xmemcmp(tls, pKey1, pKey2, uint64(uint64(n))) if rc == 0 { rc = nKey1 - nKey2 } @@ -160740,7 +162361,7 @@ func _sqlite3Close(tls *libc.TLS, db uintptr, forceZombie int32) (r int32) { return SQLITE_OK } if !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(179589)) + return _sqlite3MisuseError(tls, int32(181034)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if int32((*Tsqlite3)(unsafe.Pointer(db)).FmTrace)&int32(SQLITE_TRACE_CLOSE) != 0 { @@ -160760,7 +162381,7 @@ func _sqlite3Close(tls *libc.TLS, db uintptr, forceZombie int32) (r int32) { ** SQLITE_BUSY if the connection can not be closed immediately. */ if !(forceZombie != 0) && _connectionIsBusy(tls, db) != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+23773, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+23896, 0) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return int32(SQLITE_BUSY) } @@ -161061,14 +162682,14 @@ func _sqlite3RollbackAll(tls *libc.TLS, db uintptr, tripCode int32) { func _sqlite3ErrStr(tls *libc.TLS, rc int32) (r uintptr) { var zErr uintptr _ = zErr - zErr = __ccgo_ts + 24316 + zErr = __ccgo_ts + 24439 switch rc { case libc.Int32FromInt32(SQLITE_ABORT) | libc.Int32FromInt32(2)<= 0 && rc < int32(libc.Uint64FromInt64(232)/libc.Uint64FromInt64(8)) && _aMsg[rc] != uintptr(0) { @@ -161080,31 +162701,31 @@ func _sqlite3ErrStr(tls *libc.TLS, rc int32) (r uintptr) { } var _aMsg = [29]uintptr{ - 0: __ccgo_ts + 23841, - 1: __ccgo_ts + 23854, - 3: __ccgo_ts + 23870, - 4: __ccgo_ts + 23895, - 5: __ccgo_ts + 23909, - 6: __ccgo_ts + 23928, - 7: __ccgo_ts + 1622, - 8: __ccgo_ts + 23953, - 9: __ccgo_ts + 23990, - 10: __ccgo_ts + 24002, - 11: __ccgo_ts + 24017, - 12: __ccgo_ts + 24050, - 13: __ccgo_ts + 24068, - 14: __ccgo_ts + 24093, - 15: __ccgo_ts + 24122, - 17: __ccgo_ts + 6025, - 18: __ccgo_ts + 5427, - 19: __ccgo_ts + 24139, - 20: __ccgo_ts + 24157, - 21: __ccgo_ts + 24175, - 23: __ccgo_ts + 24209, - 25: __ccgo_ts + 24230, - 26: __ccgo_ts + 24256, - 27: __ccgo_ts + 24279, - 28: __ccgo_ts + 24300, + 0: __ccgo_ts + 23964, + 1: __ccgo_ts + 23977, + 3: __ccgo_ts + 23993, + 4: __ccgo_ts + 24018, + 5: __ccgo_ts + 24032, + 6: __ccgo_ts + 24051, + 7: __ccgo_ts + 1636, + 8: __ccgo_ts + 24076, + 9: __ccgo_ts + 24113, + 10: __ccgo_ts + 24125, + 11: __ccgo_ts + 24140, + 12: __ccgo_ts + 24173, + 13: __ccgo_ts + 24191, + 14: __ccgo_ts + 24216, + 15: __ccgo_ts + 24245, + 17: __ccgo_ts + 6089, + 18: __ccgo_ts + 5491, + 19: __ccgo_ts + 24262, + 20: __ccgo_ts + 24280, + 21: __ccgo_ts + 24298, + 23: __ccgo_ts + 24332, + 25: __ccgo_ts + 24353, + 26: __ccgo_ts + 24379, + 27: __ccgo_ts + 24402, + 28: __ccgo_ts + 24423, } // C documentation @@ -161225,7 +162846,7 @@ func Xsqlite3_progress_handler(tls *libc.TLS, db uintptr, nOps int32, xProgress Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if nOps > 0 { (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = xProgress - (*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = uint32(nOps) + (*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = uint32(uint32(nOps)) (*Tsqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg } else { (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = uintptr(0) @@ -161283,7 +162904,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i var p, v1 uintptr _, _, _, _ = extraFlags, p, rc, v1 if zFunctionName == uintptr(0) || xSFunc != uintptr(0) && xFinal != uintptr(0) || libc.BoolInt32(xFinal == uintptr(0)) != libc.BoolInt32(xStep == uintptr(0)) || libc.BoolInt32(xValue == uintptr(0)) != libc.BoolInt32(xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { - return _sqlite3MisuseError(tls, int32(180244)) + return _sqlite3MisuseError(tls, int32(181689)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -161323,10 +162944,10 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i ** is being overridden/deleted but there are no active VMs, allow the ** operation to continue but invalidate all precompiled statements. */ - p = _sqlite3FindFunction(tls, db, zFunctionName, nArg, uint8(enc), uint8(0)) - if p != 0 && (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) == uint32(enc) && int32((*TFuncDef)(unsafe.Pointer(p)).FnArg) == nArg { + p = _sqlite3FindFunction(tls, db, zFunctionName, nArg, uint8(uint8(enc)), uint8(0)) + if p != 0 && (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) == uint32(uint32(enc)) && int32((*TFuncDef)(unsafe.Pointer(p)).FnArg) == nArg { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24397, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24520, 0) return int32(SQLITE_BUSY) } else { _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -161338,7 +162959,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i return SQLITE_OK } } - p = _sqlite3FindFunction(tls, db, zFunctionName, nArg, uint8(enc), uint8(1)) + p = _sqlite3FindFunction(tls, db, zFunctionName, nArg, uint8(uint8(enc)), uint8(1)) if !(p != 0) { return int32(SQLITE_NOMEM) } @@ -161349,7 +162970,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i (*TFuncDestructor)(unsafe.Pointer(pDestructor)).FnRef++ } *(*uintptr)(unsafe.Pointer(p + 64)) = pDestructor - (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags = (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) | uint32(extraFlags) + (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags = (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) | uint32(uint32(extraFlags)) if xSFunc != 0 { v1 = xSFunc } else { @@ -161360,7 +162981,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i (*TFuncDef)(unsafe.Pointer(p)).FxValue = xValue (*TFuncDef)(unsafe.Pointer(p)).FxInverse = xInverse (*TFuncDef)(unsafe.Pointer(p)).FpUserData = pUserData - (*TFuncDef)(unsafe.Pointer(p)).FnArg = int8(uint16(nArg)) + (*TFuncDef)(unsafe.Pointer(p)).FnArg = int8(uint16(uint16(nArg))) return SQLITE_OK } @@ -161396,6 +163017,7 @@ func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, en (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } + goto out out: ; rc = _sqlite3ApiExit(tls, db, rc) @@ -161451,7 +163073,7 @@ func _sqlite3InvalidFunction(tls *libc.TLS, context uintptr, NotUsed int32, NotU zName = Xsqlite3_user_data(tls, context) _ = NotUsed _ = NotUsed2 - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24460, libc.VaList(bp+8, zName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24583, libc.VaList(bp+8, zName)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -161482,7 +163104,7 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i if rc != 0 { return SQLITE_OK } - zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, zName)) + zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, zName)) if zCopy == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -161529,7 +163151,7 @@ func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, if xTrace == uintptr(0) { mTrace = uint32(0) } - (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(mTrace) + (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(uint8(mTrace)) *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -161726,7 +163348,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in if eMode < SQLITE_CHECKPOINT_PASSIVE || eMode > int32(SQLITE_CHECKPOINT_TRUNCATE) { /* EVIDENCE-OF: R-03996-12088 The M parameter must be a valid checkpoint ** mode: */ - return _sqlite3MisuseError(tls, int32(180859)) + return _sqlite3MisuseError(tls, int32(182304)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*int8)(unsafe.Pointer(zDb)) != 0 { @@ -161736,7 +163358,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in } if iDb < 0 { rc = int32(SQLITE_ERROR) - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24511, libc.VaList(bp+8, zDb)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24634, libc.VaList(bp+8, zDb)) } else { (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0 rc = _sqlite3Checkpoint(tls, db, iDb, eMode, pnLog, pnCkpt) @@ -161858,7 +163480,7 @@ func Xsqlite3_errmsg(tls *libc.TLS, db uintptr) (r uintptr) { return _sqlite3ErrStr(tls, int32(SQLITE_NOMEM)) } if !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(180995))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(182440))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -161990,7 +163612,7 @@ var _misuse = [34]Tu16{ // */ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181074)) + return _sqlite3MisuseError(tls, int32(182519)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -162000,7 +163622,7 @@ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { func Xsqlite3_extended_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181083)) + return _sqlite3MisuseError(tls, int32(182528)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -162044,21 +163666,21 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui ** to one of SQLITE_UTF16LE or SQLITE_UTF16BE using the ** SQLITE_UTF16NATIVE macro. SQLITE_UTF16 is not used internally. */ - enc2 = int32(enc) + enc2 = int32(int32(enc)) if enc2 == int32(SQLITE_UTF16) || enc2 == int32(SQLITE_UTF16_ALIGNED) { enc2 = int32(SQLITE_UTF16LE) } if enc2 < int32(SQLITE_UTF8) || enc2 > int32(SQLITE_UTF16BE) { - return _sqlite3MisuseError(tls, int32(181131)) + return _sqlite3MisuseError(tls, int32(182576)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there ** are no active VMs, invalidate any pre-compiled statements. */ - pColl = _sqlite3FindCollSeq(tls, db, uint8(enc2), zName, 0) + pColl = _sqlite3FindCollSeq(tls, db, uint8(uint8(enc2)), zName, 0) if pColl != 0 && (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp != 0 { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24532, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24655, 0) return int32(SQLITE_BUSY) } _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -162089,14 +163711,14 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui } } } - pColl = _sqlite3FindCollSeq(tls, db, uint8(enc2), zName, int32(1)) + pColl = _sqlite3FindCollSeq(tls, db, uint8(uint8(enc2)), zName, int32(1)) if pColl == uintptr(0) { return int32(SQLITE_NOMEM) } (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = xCompare (*TCollSeq)(unsafe.Pointer(pColl)).FpUser = pCtx (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = xDel - (*TCollSeq)(unsafe.Pointer(pColl)).Fenc = uint8(enc2 | int32(enc)&libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) + (*TCollSeq)(unsafe.Pointer(pColl)).Fenc = uint8(enc2 | int32(int32(enc))&libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) _sqlite3Error(tls, db, SQLITE_OK) return SQLITE_OK } @@ -162205,7 +163827,7 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u flags = *(*uint32)(unsafe.Pointer(pFlags)) zVfs = zDefaultVfs nUri = _sqlite3Strlen30(tls, zUri) - if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24600, uint64(5)) == 0 { /* Input character index */ + if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24723, uint64(5)) == 0 { /* Input character index */ iOut = 0 /* Output character index */ nByte = uint64(nUri + int32(8)) /* Bytes of space to allocate */ /* Make sure the SQLITE_OPEN_URI flag is set to indicate to the VFS xOpen @@ -162235,8 +163857,8 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u for *(*int8)(unsafe.Pointer(zUri + uintptr(iIn))) != 0 && int32(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn)))) != int32('/') { iIn++ } - if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24606, zUri+7, uint64(9)) != 0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24616, libc.VaList(bp+8, iIn-int32(7), zUri+7)) + if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24729, zUri+7, uint64(9)) != 0) { + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24739, libc.VaList(bp+8, iIn-int32(7), zUri+7)) rc = int32(SQLITE_ERROR) goto parse_uri_out } @@ -162255,11 +163877,11 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u for { v2 = *(*int8)(unsafe.Pointer(zUri + uintptr(iIn))) c = v2 - if !(int32(v2) != 0 && int32(c) != int32('#')) { + if !(int32(v2) != 0 && int32(int32(c)) != int32('#')) { break } iIn++ - if int32(c) == int32('%') && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn))))])&int32(0x08) != 0 && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn+int32(1)))))])&int32(0x08) != 0 { + if int32(int32(c)) == int32('%') && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn))))])&int32(0x08) != 0 && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn+int32(1)))))])&int32(0x08) != 0 { v3 = iIn iIn++ octet = int32(_sqlite3HexToInt(tls, int32(*(*int8)(unsafe.Pointer(zUri + uintptr(v3)))))) << int32(4) @@ -162274,16 +163896,16 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u for { v5 = *(*int8)(unsafe.Pointer(zUri + uintptr(iIn))) c = v5 - if !(int32(v5) != 0 && int32(c) != int32('#') && (eState != 0 || int32(c) != int32('?')) && (eState != int32(1) || int32(c) != int32('=') && int32(c) != int32('&')) && (eState != int32(2) || int32(c) != int32('&'))) { + if !(int32(v5) != 0 && int32(int32(c)) != int32('#') && (eState != 0 || int32(int32(c)) != int32('?')) && (eState != int32(1) || int32(int32(c)) != int32('=') && int32(int32(c)) != int32('&')) && (eState != int32(2) || int32(int32(c)) != int32('&'))) { break } iIn++ } continue } - c = int8(octet) + c = int8(int8(octet)) } else { - if eState == int32(1) && (int32(c) == int32('&') || int32(c) == int32('=')) { + if eState == int32(1) && (int32(int32(c)) == int32('&') || int32(int32(c)) == int32('=')) { if int32(*(*int8)(unsafe.Pointer(zFile + uintptr(iOut-int32(1))))) == 0 { /* An empty option name. Ignore this option altogether. */ for *(*int8)(unsafe.Pointer(zUri + uintptr(iIn))) != 0 && int32(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn)))) != int32('#') && int32(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn-int32(1))))) != int32('&') { @@ -162291,7 +163913,7 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u } continue } - if int32(c) == int32('&') { + if int32(int32(c)) == int32('&') { v6 = iOut iOut++ *(*int8)(unsafe.Pointer(zFile + uintptr(v6))) = int8('\000') @@ -162300,7 +163922,7 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u } c = 0 } else { - if eState == 0 && int32(c) == int32('?') || eState == int32(2) && int32(c) == int32('&') { + if eState == 0 && int32(int32(c)) == int32('?') || eState == int32(2) && int32(int32(c)) == int32('&') { c = 0 eState = int32(1) } @@ -162325,24 +163947,24 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u nOpt = _sqlite3Strlen30(tls, zOpt) zVal = zOpt + uintptr(nOpt+int32(1)) nVal = _sqlite3Strlen30(tls, zVal) - if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24644, zOpt, uint64(3)) == 0 { + if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24767, zOpt, uint64(3)) == 0 { zVfs = zVal } else { aMode = uintptr(0) zModeType = uintptr(0) mask = 0 limit = 0 - if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24648, zOpt, uint64(5)) == 0 { + if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24771, zOpt, uint64(5)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_SHAREDCACHE) | libc.Int32FromInt32(SQLITE_OPEN_PRIVATECACHE) aMode = uintptr(unsafe.Pointer(&_aCacheMode)) limit = mask - zModeType = __ccgo_ts + 24648 + zModeType = __ccgo_ts + 24771 } - if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24669, zOpt, uint64(4)) == 0 { + if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24792, zOpt, uint64(4)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_READONLY) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_MEMORY) aMode = uintptr(unsafe.Pointer(&_aOpenMode)) - limit = int32(uint32(mask) & flags) - zModeType = __ccgo_ts + 3408 + limit = int32(uint32(uint32(mask)) & flags) + zModeType = __ccgo_ts + 3472 } if aMode != 0 { mode = 0 @@ -162358,7 +163980,7 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u Fz uintptr Fmode int32 })(unsafe.Pointer(aMode + uintptr(i)*16))).Fz - if nVal == _sqlite3Strlen30(tls, z) && 0 == libc.Xmemcmp(tls, zVal, z, uint64(nVal)) { + if nVal == _sqlite3Strlen30(tls, z) && 0 == libc.Xmemcmp(tls, zVal, z, uint64(uint64(nVal))) { mode = (*(*struct { Fz uintptr Fmode int32 @@ -162371,16 +163993,16 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u i++ } if mode == 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24684, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24807, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_ERROR) goto parse_uri_out } if mode & ^libc.Int32FromInt32(SQLITE_OPEN_MEMORY) > limit { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24704, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24827, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_PERM) goto parse_uri_out } - flags = flags&uint32(^mask) | uint32(mode) + flags = flags&uint32(^mask) | uint32(uint32(mode)) } } zOpt = zVal + uintptr(nVal+int32(1)) @@ -162393,16 +164015,17 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u libc.Xmemset(tls, zFile, 0, uint64(4)) zFile += uintptr(4) if nUri != 0 { - libc.Xmemcpy(tls, zFile, zUri, uint64(nUri)) + libc.Xmemcpy(tls, zFile, zUri, uint64(uint64(nUri))) } libc.Xmemset(tls, zFile+uintptr(nUri), 0, uint64(4)) flags &= uint32(^libc.Int32FromInt32(SQLITE_OPEN_URI)) } *(*uintptr)(unsafe.Pointer(ppVfs)) = Xsqlite3_vfs_find(tls, zVfs) if *(*uintptr)(unsafe.Pointer(ppVfs)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24728, libc.VaList(bp+8, zVfs)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24851, libc.VaList(bp+8, zVfs)) rc = int32(SQLITE_ERROR) } + goto parse_uri_out parse_uri_out: ; if rc != SQLITE_OK { @@ -162419,11 +164042,11 @@ var _aCacheMode = [3]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24654, + Fz: __ccgo_ts + 24777, Fmode: int32(SQLITE_OPEN_SHAREDCACHE), }, 1: { - Fz: __ccgo_ts + 24661, + Fz: __ccgo_ts + 24784, Fmode: int32(SQLITE_OPEN_PRIVATECACHE), }, 2: {}, @@ -162434,19 +164057,19 @@ var _aOpenMode = [5]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24674, + Fz: __ccgo_ts + 24797, Fmode: int32(SQLITE_OPEN_READONLY), }, 1: { - Fz: __ccgo_ts + 24677, + Fz: __ccgo_ts + 24800, Fmode: int32(SQLITE_OPEN_READWRITE), }, 2: { - Fz: __ccgo_ts + 24680, + Fz: __ccgo_ts + 24803, Fmode: libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE), }, 3: { - Fz: __ccgo_ts + 17768, + Fz: __ccgo_ts + 17855, Fmode: int32(SQLITE_OPEN_MEMORY), }, 4: {}, @@ -162574,8 +164197,8 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16BE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16LE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+22355, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+24744, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+22500, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+24867, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto opendb_out } @@ -162596,7 +164219,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* READWRITE */ /* READWRITE | CREATE */ if int32(1)<<(*(*uint32)(unsafe.Pointer(bp))&uint32(7))&int32(0x46) == 0 { - rc = _sqlite3MisuseError(tls, int32(181803)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(183248)) /* IMP: R-18321-05872 */ } else { rc = _sqlite3ParseUri(tls, zVfs, zFilename, bp, db, bp+8, bp+16) } @@ -162605,7 +164228,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _sqlite3OomFault(tls, db) } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { - v2 = __ccgo_ts + 3799 + v2 = __ccgo_ts + 3863 } else { v2 = uintptr(0) } @@ -162632,9 +164255,9 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* The default safety_level for the main database is FULL; for the temp ** database it is OFF. This matches the pager layer defaults. */ - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6589 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6653 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).Fsafety_level = uint8(libc.Int32FromInt32(SQLITE_DEFAULT_SYNCHRONOUS) + libc.Int32FromInt32(1)) - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 23746 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 23869 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).Fsafety_level = uint8(PAGER_SYNCHRONOUS_OFF) (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState = uint8(SQLITE_STATE_OPEN) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -162679,6 +164302,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* Enable the lookaside-malloc subsystem */ _setupLookaside(tls, db, uintptr(0), _sqlite3Config.FszLookaside, _sqlite3Config.FnLookaside) Xsqlite3_wal_autocheckpoint(tls, db, int32(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT)) + goto opendb_out opendb_out: ; if db != 0 { @@ -162708,7 +164332,7 @@ func Xsqlite3_open(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { } func Xsqlite3_open_v2(tls *libc.TLS, filename uintptr, ppDb uintptr, flags int32, zVfs uintptr) (r int32) { - return _openDatabase(tls, filename, ppDb, uint32(flags), zVfs) + return _openDatabase(tls, filename, ppDb, uint32(uint32(flags)), zVfs) } // C documentation @@ -162727,7 +164351,7 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc } if zFilename == uintptr(0) { - zFilename = __ccgo_ts + 24750 + zFilename = __ccgo_ts + 24873 } pVal = _sqlite3ValueNew(tls, uintptr(0)) _sqlite3ValueSetStr(tls, pVal, -int32(1), zFilename, uint8(SQLITE_UTF16LE), libc.UintptrFromInt32(0)) @@ -162764,7 +164388,7 @@ func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc var rc int32 _ = rc Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - rc = _createCollation(tls, db, zName, uint8(enc), pCtx, xCompare, xDel) + rc = _createCollation(tls, db, zName, uint8(uint8(enc)), pCtx, xCompare, xDel) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc @@ -162783,7 +164407,7 @@ func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc i Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) zName8 = _sqlite3Utf16to8(tls, db, zName, -int32(1), uint8(SQLITE_UTF16LE)) if zName8 != 0 { - rc = _createCollation(tls, db, zName8, uint8(enc), pCtx, xCompare, uintptr(0)) + rc = _createCollation(tls, db, zName8, uint8(uint8(enc)), pCtx, xCompare, uintptr(0)) _sqlite3DbFree(tls, db, zName8) } rc = _sqlite3ApiExit(tls, db, rc) @@ -162887,7 +164511,7 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin return SQLITE_OK } else { n = libc.Xstrlen(tls, zName) - p = Xsqlite3_malloc64(tls, uint64(32)+n+uint64(1)) + p = Xsqlite3_malloc64(tls, uint64(uint64(32)+n+uint64(1))) if p == uintptr(0) { if xDestructor != 0 { (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pData) @@ -162944,20 +164568,20 @@ func Xsqlite3_get_autocommit(tls *libc.TLS, db uintptr) (r int32) { func _sqlite3ReportError(tls *libc.TLS, iErr int32, lineno int32, zType uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) - Xsqlite3_log(tls, iErr, __ccgo_ts+24753, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) + Xsqlite3_log(tls, iErr, __ccgo_ts+24876, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) return iErr } func _sqlite3CorruptError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24778) + return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24901) } func _sqlite3MisuseError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24798) + return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24921) } func _sqlite3CantopenError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24805) + return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24928) } // C documentation @@ -163063,6 +164687,7 @@ func Xsqlite3_table_column_metadata(tls *libc.TLS, db uintptr, zDbName uintptr, if !(zCollSeq != 0) { zCollSeq = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } + goto error_out error_out: ; _sqlite3BtreeLeaveAll(tls, db) @@ -163087,11 +164712,11 @@ error_out: } if SQLITE_OK == rc && !(pTab != 0) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24822, libc.VaList(bp+16, zTableName, zColumnName)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24945, libc.VaList(bp+16, zTableName, zColumnName)) rc = int32(SQLITE_ERROR) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v3 = __ccgo_ts + 3799 + v3 = __ccgo_ts + 3863 } else { v3 = uintptr(0) } @@ -163268,7 +164893,7 @@ func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) (r int32) { if v2 && v1 != 0 { x = y } - _sqlite3Config.FiPrngSeed = uint32(x) + _sqlite3Config.FiPrngSeed = uint32(uint32(x)) Xsqlite3_randomness(tls, 0, uintptr(0)) break /* sqlite3_test_control(SQLITE_TESTCTRL_FK_NO_ACTION, sqlite3 *db, int b); @@ -163351,7 +164976,7 @@ func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) (r int32) { rc = _sqlite3PendingByte newVal = libc.VaUint32(&ap) if newVal != 0 { - _sqlite3PendingByte = int32(newVal) + _sqlite3PendingByte = int32(int32(newVal)) } break /* @@ -163526,7 +165151,7 @@ func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) (r int32) { */ fallthrough case int32(SQLITE_TESTCTRL_ISINIT): - if _sqlite3Config.FisInit == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 { rc = int32(SQLITE_ERROR) } break @@ -163552,7 +165177,7 @@ func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db5)).Fmutex) iDb = _sqlite3FindDbName(tls, db5, libc.VaUintptr(&ap)) if iDb >= 0 { - (*Tsqlite3)(unsafe.Pointer(db5)).Finit1.FiDb = uint8(iDb) + (*Tsqlite3)(unsafe.Pointer(db5)).Finit1.FiDb = uint8(uint8(iDb)) (*Tsqlite3)(unsafe.Pointer(db5)).Finit1.Fbusy = uint8(libc.AssignBitFieldPtr8Uint32(db5+192+8, uint32(libc.VaInt32(&ap)), 1, 1, 0x2)) (*Tsqlite3)(unsafe.Pointer(db5)).Finit1.FnewTnum = uint32(libc.VaInt32(&ap)) if int32((*Tsqlite3)(unsafe.Pointer(db5)).Finit1.Fbusy) == 0 && (*Tsqlite3)(unsafe.Pointer(db5)).Finit1.FnewTnum > uint32(0) { @@ -163633,7 +165258,7 @@ func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) (r int32) { pI1 = libc.VaUintptr(&ap) pU64 = libc.VaUintptr(&ap) pI2 = libc.VaUintptr(&ap) - *(*int32)(unsafe.Pointer(pI1)) = int32(rLogEst) + *(*int32)(unsafe.Pointer(pI1)) = int32(int32(rLogEst)) *(*Tu64)(unsafe.Pointer(pU64)) = _sqlite3LogEstToInt(tls, rLogEst) *(*int32)(unsafe.Pointer(pI2)) = int32(_sqlite3LogEst(tls, *(*Tu64)(unsafe.Pointer(pU64)))) break @@ -163726,13 +165351,13 @@ func Xsqlite3_create_filename(tls *libc.TLS, zDatabase uintptr, zJournal uintptr if !(i < nParam*int32(2)) { break } - nByte = Tsqlite3_int64(uint64(nByte) + (libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(azParam + uintptr(i)*8))) + libc.Uint64FromInt32(1))) + nByte = Tsqlite3_int64(uint64(nByte) + uint64(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(azParam + uintptr(i)*8)))+libc.Uint64FromInt32(1))) goto _1 _1: ; i++ } - v2 = Xsqlite3_malloc64(tls, uint64(nByte)) + v2 = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) p = v2 pResult = v2 if p == uintptr(0) { @@ -163848,7 +165473,7 @@ func Xsqlite3_uri_boolean(tls *libc.TLS, zFilename uintptr, zParam uintptr, bDfl z = Xsqlite3_uri_parameter(tls, zFilename, zParam) bDflt = libc.BoolInt32(bDflt != 0) if z != 0 { - v1 = int32(_sqlite3GetBoolean(tls, z, uint8(bDflt))) + v1 = int32(_sqlite3GetBoolean(tls, z, uint8(uint8(bDflt)))) } else { v1 = bDflt } @@ -164115,7 +165740,7 @@ func Xsqlite3_compileoption_used(tls *libc.TLS, zOptName uintptr) (r int32) { var _ /* nOpt at bp+0 */ int32 _, _, _ = azCompileOpt, i, n azCompileOpt = _sqlite3CompileOptions(tls, bp) - if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24850, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24973, int32(7)) == 0 { zOptName += uintptr(7) } n = _sqlite3Strlen30(tls, zOptName) @@ -164333,7 +165958,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui } _leaveMutex(tls) if rc != 0 { - v2 = __ccgo_ts + 24858 + v2 = __ccgo_ts + 24981 } else { v2 = uintptr(0) } @@ -164412,9 +166037,9 @@ func _sqlite3ConnectionUnlocked(tls *libc.TLS, db uintptr) { _sqlite3BeginBenignMalloc(tls) if !(aDyn != 0) && nArg == int32(libc.Uint64FromInt64(128)/libc.Uint64FromInt64(8)) || aDyn != 0 && nArg == int32(uint64(_sqlite3MallocSize(tls, aDyn))/libc.Uint64FromInt64(8)) { /* The aArg[] array needs to grow. */ - pNew = _sqlite3Malloc(tls, uint64(nArg)*uint64(8)*uint64(2)) + pNew = _sqlite3Malloc(tls, uint64(uint64(uint64(nArg))*uint64(8)*uint64(2))) if pNew != 0 { - libc.Xmemcpy(tls, pNew, aArg, uint64(nArg)*uint64(8)) + libc.Xmemcpy(tls, pNew, aArg, uint64(uint64(nArg))*uint64(8)) Xsqlite3_free(tls, aDyn) v2 = pNew aArg = v2 @@ -165213,23 +166838,23 @@ func _sqlite3ConnectionClosed(tls *libc.TLS, db uintptr) { // ** string must correspond to the JSONB_* integer above. // */ var _jsonbType = [17]uintptr{ - 0: __ccgo_ts + 1638, - 1: __ccgo_ts + 7890, - 2: __ccgo_ts + 7895, - 3: __ccgo_ts + 6310, - 4: __ccgo_ts + 6310, - 5: __ccgo_ts + 6305, - 6: __ccgo_ts + 6305, - 7: __ccgo_ts + 8201, - 8: __ccgo_ts + 8201, - 9: __ccgo_ts + 8201, - 10: __ccgo_ts + 8201, - 11: __ccgo_ts + 24881, - 12: __ccgo_ts + 24887, - 13: __ccgo_ts + 1652, - 14: __ccgo_ts + 1652, - 15: __ccgo_ts + 1652, - 16: __ccgo_ts + 1652, + 0: __ccgo_ts + 1652, + 1: __ccgo_ts + 8015, + 2: __ccgo_ts + 8020, + 3: __ccgo_ts + 6374, + 4: __ccgo_ts + 6374, + 5: __ccgo_ts + 6369, + 6: __ccgo_ts + 6369, + 7: __ccgo_ts + 8326, + 8: __ccgo_ts + 8326, + 9: __ccgo_ts + 8326, + 10: __ccgo_ts + 8326, + 11: __ccgo_ts + 25004, + 12: __ccgo_ts + 25010, + 13: __ccgo_ts + 1666, + 14: __ccgo_ts + 1666, + 15: __ccgo_ts + 1666, + 16: __ccgo_ts + 1666, } // C documentation @@ -165753,7 +167378,7 @@ func _jsonCacheSearch(tls *libc.TLS, ctx uintptr, pArg uintptr) (r uintptr) { if (*TJsonParse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 16 + uintptr(i)*8)))).FnJson != nJson { goto _2 } - if libc.Xmemcmp(tls, (*TJsonParse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 16 + uintptr(i)*8)))).FzJson, zJson, uint64(nJson)) == 0 { + if libc.Xmemcmp(tls, (*TJsonParse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(p + 16 + uintptr(i)*8)))).FzJson, zJson, uint64(uint64(nJson))) == 0 { break } goto _2 @@ -165840,10 +167465,10 @@ func _jsonStringGrow(tls *libc.TLS, p uintptr, N Tu32) (r int32) { var zNew, p2 uintptr var v1 uint64 _, _, _, _ = nTotal, zNew, v1, p2 - if uint64(N) < (*TJsonString)(unsafe.Pointer(p)).FnAlloc { + if uint64(uint64(N)) < (*TJsonString)(unsafe.Pointer(p)).FnAlloc { v1 = (*TJsonString)(unsafe.Pointer(p)).FnAlloc * uint64(2) } else { - v1 = (*TJsonString)(unsafe.Pointer(p)).FnAlloc + uint64(N) + uint64(10) + v1 = (*TJsonString)(unsafe.Pointer(p)).FnAlloc + uint64(uint64(N)) + uint64(10) } nTotal = v1 if (*TJsonString)(unsafe.Pointer(p)).FbStatic != 0 { @@ -165855,7 +167480,7 @@ func _jsonStringGrow(tls *libc.TLS, p uintptr, N Tu32) (r int32) { _jsonStringOom(tls, p) return int32(SQLITE_NOMEM) } - libc.Xmemcpy(tls, zNew, (*TJsonString)(unsafe.Pointer(p)).FzBuf, (*TJsonString)(unsafe.Pointer(p)).FnUsed) + libc.Xmemcpy(tls, zNew, (*TJsonString)(unsafe.Pointer(p)).FzBuf, uint64((*TJsonString)(unsafe.Pointer(p)).FnUsed)) (*TJsonString)(unsafe.Pointer(p)).FzBuf = zNew (*TJsonString)(unsafe.Pointer(p)).FbStatic = uint8(0) } else { @@ -165879,28 +167504,28 @@ func _jsonStringExpandAndAppend(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { if _jsonStringGrow(tls, p, N) != 0 { return } - libc.Xmemcpy(tls, (*TJsonString)(unsafe.Pointer(p)).FzBuf+uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed), zIn, uint64(N)) - *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(N) + libc.Xmemcpy(tls, (*TJsonString)(unsafe.Pointer(p)).FzBuf+uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed), zIn, uint64(uint64(N))) + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(uint64(N)) } func _jsonAppendRaw(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { if N == uint32(0) { return } - if uint64(N)+(*TJsonString)(unsafe.Pointer(p)).FnUsed >= (*TJsonString)(unsafe.Pointer(p)).FnAlloc { + if uint64(uint64(N))+(*TJsonString)(unsafe.Pointer(p)).FnUsed >= (*TJsonString)(unsafe.Pointer(p)).FnAlloc { _jsonStringExpandAndAppend(tls, p, zIn, N) } else { - libc.Xmemcpy(tls, (*TJsonString)(unsafe.Pointer(p)).FzBuf+uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed), zIn, uint64(N)) - *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(N) + libc.Xmemcpy(tls, (*TJsonString)(unsafe.Pointer(p)).FzBuf+uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed), zIn, uint64(uint64(N))) + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(uint64(N)) } } func _jsonAppendRawNZ(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { - if uint64(N)+(*TJsonString)(unsafe.Pointer(p)).FnUsed >= (*TJsonString)(unsafe.Pointer(p)).FnAlloc { + if uint64(uint64(N))+(*TJsonString)(unsafe.Pointer(p)).FnUsed >= (*TJsonString)(unsafe.Pointer(p)).FnAlloc { _jsonStringExpandAndAppend(tls, p, zIn, N) } else { - libc.Xmemcpy(tls, (*TJsonString)(unsafe.Pointer(p)).FzBuf+uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed), zIn, uint64(N)) - *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(N) + libc.Xmemcpy(tls, (*TJsonString)(unsafe.Pointer(p)).FzBuf+uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed), zIn, uint64(uint64(N))) + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(uint64(N)) } } @@ -165911,7 +167536,7 @@ func _jsonAppendRawNZ(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { func _jsonPrintf(tls *libc.TLS, N int32, p uintptr, zFormat uintptr, va uintptr) { var ap Tva_list _ = ap - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N) >= (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, uint32(N)) != 0 { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(uint64(N)) >= (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, uint32(uint32(N))) != 0 { return } ap = va @@ -165986,12 +167611,44 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { return } c = *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed-uint64(1)))) - if int32(c) == int32('[') || int32(c) == int32('{') { + if int32(int32(c)) == int32('[') || int32(int32(c)) == int32('{') { return } _jsonAppendChar(tls, p, int8(',')) } +// C documentation +// +// /* c is a control character. Append the canonical JSON representation +// ** of that control character to p. +// ** +// ** This routine assumes that the output buffer has already been enlarged +// ** sufficiently to hold the worst-case encoding plus a nul terminator. +// */ +func _jsonAppendControlChar(tls *libc.TLS, p uintptr, c Tu8) { + if _aSpecial[c] != 0 { + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = int8('\\') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = _aSpecial[c] + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(2) + } else { + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = int8('\\') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = int8('u') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(2)))) = int8('0') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(3)))) = int8('0') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(4)))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 25017 + uintptr(int32(int32(c))>>int32(4)))) + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(5)))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 25017 + uintptr(int32(int32(c))&int32(0xf)))) + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(6) + } +} + +var _aSpecial = [32]int8{ + 8: int8('b'), + 9: int8('t'), + 10: int8('n'), + 12: int8('f'), + 13: int8('r'), +} + // C documentation // // /* Append the N-byte string in zIn to the end of the JsonString string @@ -166005,14 +167662,14 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { var c Tu8 var k Tu32 - var z, v10, v12, v14, v16, v18, v2, v20, v22, v24, v6, v8 uintptr - var v1, v11, v13, v15, v17, v19, v21, v23, v5, v7, v9 Tu64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v5, v6, v7, v8, v9 + var z, v10, v2, v4, v6, v8 uintptr + var v1, v3, v5, v7, v9 Tu64 + _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v2, v3, v4, v5, v6, v7, v8, v9 z = zIn if z == uintptr(0) { return } - if uint64(N)+(*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(2) >= (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(2)) != 0 { + if uint64(uint64(N))+(*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(2) >= (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(2)) != 0 { return } v2 = p + 24 @@ -166052,92 +167709,50 @@ func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { } if k >= N { if k > uint32(0) { - libc.Xmemcpy(tls, (*TJsonString)(unsafe.Pointer(p)).FzBuf+uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed), z, uint64(k)) - *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(k) + libc.Xmemcpy(tls, (*TJsonString)(unsafe.Pointer(p)).FzBuf+uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed), z, uint64(uint64(k))) + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(uint64(k)) } break } if k > uint32(0) { - libc.Xmemcpy(tls, (*TJsonString)(unsafe.Pointer(p)).FzBuf+uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed), z, uint64(k)) - *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(k) + libc.Xmemcpy(tls, (*TJsonString)(unsafe.Pointer(p)).FzBuf+uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed), z, uint64(uint64(k))) + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(uint64(k)) z += uintptr(k) N -= k } c = *(*Tu8)(unsafe.Pointer(z)) - if !(int32(c) == int32('"') || int32(c) == int32('\\')) { - goto _3 - } - json_simple_escape: - ; - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { - return - } - v6 = p + 24 - v5 = *(*Tu64)(unsafe.Pointer(v6)) - *(*Tu64)(unsafe.Pointer(v6))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = int8('\\') - v8 = p + 24 - v7 = *(*Tu64)(unsafe.Pointer(v8)) - *(*Tu64)(unsafe.Pointer(v8))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = int8(c) - goto _4 - _3: - ; - if int32(c) == int32('\'') { - v10 = p + 24 - v9 = *(*Tu64)(unsafe.Pointer(v10)) - *(*Tu64)(unsafe.Pointer(v10))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = int8(c) - } else { - if _aSpecial[c] != 0 { - c = uint8(_aSpecial[c]) - goto json_simple_escape - } - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + if int32(int32(c)) == int32('"') || int32(int32(c)) == int32('\\') { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(uint64(N))+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { return } - v12 = p + 24 - v11 = *(*Tu64)(unsafe.Pointer(v12)) - *(*Tu64)(unsafe.Pointer(v12))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v11))) = int8('\\') - v14 = p + 24 - v13 = *(*Tu64)(unsafe.Pointer(v14)) - *(*Tu64)(unsafe.Pointer(v14))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v13))) = int8('u') - v16 = p + 24 - v15 = *(*Tu64)(unsafe.Pointer(v16)) - *(*Tu64)(unsafe.Pointer(v16))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v15))) = int8('0') - v18 = p + 24 - v17 = *(*Tu64)(unsafe.Pointer(v18)) - *(*Tu64)(unsafe.Pointer(v18))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v17))) = int8('0') - v20 = p + 24 - v19 = *(*Tu64)(unsafe.Pointer(v20)) - *(*Tu64)(unsafe.Pointer(v20))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v19))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 24894 + uintptr(int32(c)>>int32(4)))) - v22 = p + 24 - v21 = *(*Tu64)(unsafe.Pointer(v22)) - *(*Tu64)(unsafe.Pointer(v22))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v21))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 24894 + uintptr(int32(c)&int32(0xf)))) + v4 = p + 24 + v3 = *(*Tu64)(unsafe.Pointer(v4)) + *(*Tu64)(unsafe.Pointer(v4))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v3))) = int8('\\') + v6 = p + 24 + v5 = *(*Tu64)(unsafe.Pointer(v6)) + *(*Tu64)(unsafe.Pointer(v6))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = int8(int8(c)) + } else { + if int32(int32(c)) == int32('\'') { + v8 = p + 24 + v7 = *(*Tu64)(unsafe.Pointer(v8)) + *(*Tu64)(unsafe.Pointer(v8))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = int8(int8(c)) + } else { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(uint64(N))+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + return + } + _jsonAppendControlChar(tls, p, c) + } } - _4: - ; z++ N-- } - v24 = p + 24 - v23 = *(*Tu64)(unsafe.Pointer(v24)) - *(*Tu64)(unsafe.Pointer(v24))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v23))) = int8('"') -} - -var _aSpecial = [32]int8{ - 8: int8('b'), - 9: int8('t'), - 10: int8('n'), - 12: int8('f'), - 13: int8('r'), + v10 = p + 24 + v9 = *(*Tu64)(unsafe.Pointer(v10)) + *(*Tu64)(unsafe.Pointer(v10))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = int8('"') } // C documentation @@ -166155,9 +167770,9 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _, _, _, _ = n, n1, z, z1 switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_NULL): - _jsonAppendRawNZ(tls, p, __ccgo_ts+1638, uint32(4)) + _jsonAppendRawNZ(tls, p, __ccgo_ts+1652, uint32(4)) case int32(SQLITE_FLOAT): - _jsonPrintf(tls, int32(100), p, __ccgo_ts+15327, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) + _jsonPrintf(tls, int32(100), p, __ccgo_ts+15420, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) case int32(SQLITE_INTEGER): z = Xsqlite3_value_text(tls, pValue) n = uint32(Xsqlite3_value_bytes(tls, pValue)) @@ -166178,7 +167793,7 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _jsonTranslateBlobToText(tls, bp, uint32(0), p) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr) == 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24911, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25034, -int32(1)) (*TJsonString)(unsafe.Pointer(p)).FeErr = uint8(JSTRING_ERR) _jsonStringReset(tls, p) } @@ -166232,7 +167847,7 @@ func _jsonReturnString(tls *libc.TLS, p uintptr, pParse uintptr, ctx uintptr) { Xsqlite3_result_error_nomem(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr)&int32(JSTRING_MALFORMED) != 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24940, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25063, -int32(1)) } } } @@ -166414,10 +168029,10 @@ func _json5Whitespace(tls *libc.TLS, zIn uintptr) (r int32) { if !(int32(v3) != 0) { break } - if int32(c) == int32('\n') || int32(c) == int32('\r') { + if int32(int32(c)) == int32('\n') || int32(int32(c)) == int32('\r') { break } - if int32(0xe2) == int32(uint8(c)) && int32(0x80) == int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j1+int32(1))))) && (int32(0xa8) == int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j1+int32(2))))) || int32(0xa9) == int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j1+int32(2)))))) { + if int32(0xe2) == int32(uint8(uint8(c))) && int32(0x80) == int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j1+int32(1))))) && (int32(0xa8) == int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j1+int32(2))))) || int32(0xa9) == int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j1+int32(2)))))) { j1 += int32(2) break } @@ -166449,10 +168064,10 @@ func _json5Whitespace(tls *libc.TLS, zIn uintptr) (r int32) { case int32(0xe2): if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(n+int32(1))))) == int32(0x80) { c1 = *(*Tu8)(unsafe.Pointer(z + uintptr(n+int32(2)))) - if int32(c1) < int32(0x80) { + if int32(int32(c1)) < int32(0x80) { goto whitespace_done } - if int32(c1) <= int32(0x8a) || int32(c1) == int32(0xa8) || int32(c1) == int32(0xa9) || int32(c1) == int32(0xaf) { + if int32(int32(c1)) <= int32(0x8a) || int32(int32(c1)) == int32(0xa8) || int32(int32(c1)) == int32(0xa9) || int32(int32(c1)) == int32(0xaf) { n += int32(3) break } @@ -166479,6 +168094,7 @@ func _json5Whitespace(tls *libc.TLS, zIn uintptr) (r int32) { goto whitespace_done } } + goto whitespace_done whitespace_done: ; return n @@ -166514,8 +168130,8 @@ var _aNanInfName = [5]TNanInfName{ Fn: int8(3), FeType: int8(JSONB_FLOAT), FnRepl: int8(7), - FzMatch: __ccgo_ts + 24955, - FzRepl: __ccgo_ts + 24959, + FzMatch: __ccgo_ts + 25078, + FzRepl: __ccgo_ts + 25082, }, 1: { Fc1: int8('i'), @@ -166523,32 +168139,32 @@ var _aNanInfName = [5]TNanInfName{ Fn: int8(8), FeType: int8(JSONB_FLOAT), FnRepl: int8(7), - FzMatch: __ccgo_ts + 24967, - FzRepl: __ccgo_ts + 24959, + FzMatch: __ccgo_ts + 25090, + FzRepl: __ccgo_ts + 25082, }, 2: { Fc1: int8('n'), Fc2: int8('N'), Fn: int8(3), FnRepl: int8(4), - FzMatch: __ccgo_ts + 1643, - FzRepl: __ccgo_ts + 1638, + FzMatch: __ccgo_ts + 1657, + FzRepl: __ccgo_ts + 1652, }, 3: { Fc1: int8('q'), Fc2: int8('Q'), Fn: int8(4), FnRepl: int8(4), - FzMatch: __ccgo_ts + 24976, - FzRepl: __ccgo_ts + 1638, + FzMatch: __ccgo_ts + 25099, + FzRepl: __ccgo_ts + 1652, }, 4: { Fc1: int8('s'), Fc2: int8('S'), Fn: int8(4), FnRepl: int8(4), - FzMatch: __ccgo_ts + 24981, - FzRepl: __ccgo_ts + 1638, + FzMatch: __ccgo_ts + 25104, + FzRepl: __ccgo_ts + 1652, }, } @@ -166563,7 +168179,7 @@ func _jsonWrongNumArgs(tls *libc.TLS, pCtx uintptr, zFuncName uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24986, libc.VaList(bp+8, zFuncName)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25109, libc.VaList(bp+8, zFuncName)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) } @@ -166591,7 +168207,7 @@ func _jsonBlobExpand(tls *libc.TLS, pParse uintptr, N Tu32) (r int32) { if t < N { t = N + uint32(100) } - aNew = _sqlite3DbRealloc(tls, (*TJsonParse)(unsafe.Pointer(pParse)).Fdb, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob, uint64(t)) + aNew = _sqlite3DbRealloc(tls, (*TJsonParse)(unsafe.Pointer(pParse)).Fdb, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob, uint64(uint64(t))) if aNew == uintptr(0) { (*TJsonParse)(unsafe.Pointer(pParse)).Foom = uint8(1) return int32(1) @@ -166693,21 +168309,21 @@ func _jsonBlobAppendNode(tls *libc.TLS, pParse uintptr, eType Tu8, szPayload Tu3 } a = (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr((*TJsonParse)(unsafe.Pointer(pParse)).FnBlob) if szPayload <= uint32(11) { - *(*Tu8)(unsafe.Pointer(a)) = uint8(uint32(eType) | szPayload<> libc.Int32FromInt32(8) & uint32(0xff)) *(*Tu8)(unsafe.Pointer(a + 2)) = uint8(szPayload & uint32(0xff)) *(*Tu32)(unsafe.Pointer(pParse + 8)) += uint32(3) } else { - *(*Tu8)(unsafe.Pointer(a)) = uint8(int32(eType) | int32(0xe0)) + *(*Tu8)(unsafe.Pointer(a)) = uint8(int32(int32(eType)) | int32(0xe0)) *(*Tu8)(unsafe.Pointer(a + 1)) = uint8(szPayload >> libc.Int32FromInt32(24) & uint32(0xff)) *(*Tu8)(unsafe.Pointer(a + 2)) = uint8(szPayload >> libc.Int32FromInt32(16) & uint32(0xff)) *(*Tu8)(unsafe.Pointer(a + 3)) = uint8(szPayload >> libc.Int32FromInt32(8) & uint32(0xff)) @@ -166718,7 +168334,7 @@ func _jsonBlobAppendNode(tls *libc.TLS, pParse uintptr, eType Tu8, szPayload Tu3 } if aPayload != 0 { *(*Tu32)(unsafe.Pointer(pParse + 8)) += szPayload - libc.Xmemcpy(tls, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr((*TJsonParse)(unsafe.Pointer(pParse)).FnBlob-szPayload), aPayload, uint64(szPayload)) + libc.Xmemcpy(tls, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr((*TJsonParse)(unsafe.Pointer(pParse)).FnBlob-szPayload), aPayload, uint64(uint64(szPayload))) } } @@ -166737,13 +168353,13 @@ func _jsonBlobChangePayloadSize(tls *libc.TLS, pParse uintptr, i Tu32, szPayload } a = (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i) szType = uint8(int32(*(*Tu8)(unsafe.Pointer(a))) >> int32(4)) - if int32(szType) <= int32(11) { + if int32(int32(szType)) <= int32(11) { nExtra = uint8(0) } else { - if int32(szType) == int32(12) { + if int32(int32(szType)) == int32(12) { nExtra = uint8(1) } else { - if int32(szType) == int32(13) { + if int32(int32(szType)) == int32(13) { nExtra = uint8(2) } else { nExtra = uint8(4) @@ -166763,9 +168379,9 @@ func _jsonBlobChangePayloadSize(tls *libc.TLS, pParse uintptr, i Tu32, szPayload } } } - delta = int32(nNeeded) - int32(nExtra) + delta = int32(int32(nNeeded)) - int32(int32(nExtra)) if delta != 0 { - newSize = (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob + uint32(delta) + newSize = (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob + uint32(uint32(delta)) if delta > 0 { if newSize > (*TJsonParse)(unsafe.Pointer(pParse)).FnBlobAlloc && _jsonBlobExpand(tls, pParse, newSize) != 0 { return 0 /* OOM error. Error state recorded in pParse->oom. */ @@ -166773,18 +168389,18 @@ func _jsonBlobChangePayloadSize(tls *libc.TLS, pParse uintptr, i Tu32, szPayload a = (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i) libc.Xmemmove(tls, a+uintptr(int32(1)+delta), a+1, uint64((*TJsonParse)(unsafe.Pointer(pParse)).FnBlob-(i+uint32(1)))) } else { - libc.Xmemmove(tls, a+1, a+uintptr(int32(1)-delta), uint64((*TJsonParse)(unsafe.Pointer(pParse)).FnBlob-(i+uint32(1)-uint32(delta)))) + libc.Xmemmove(tls, a+1, a+uintptr(int32(1)-delta), uint64((*TJsonParse)(unsafe.Pointer(pParse)).FnBlob-(i+uint32(1)-uint32(uint32(delta))))) } (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob = newSize } - if int32(nNeeded) == 0 { + if int32(int32(nNeeded)) == 0 { *(*Tu8)(unsafe.Pointer(a)) = uint8(uint32(int32(*(*Tu8)(unsafe.Pointer(a)))&libc.Int32FromInt32(0x0f)) | szPayload<> libc.Int32FromInt32(8) & uint32(0xff)) *(*Tu8)(unsafe.Pointer(a + 2)) = uint8(szPayload & uint32(0xff)) @@ -166853,7 +168469,7 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept } /* Checked by caller */ z = (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob x = uint8(int32(*(*Tu8)(unsafe.Pointer(z + uintptr(i)))) & int32(0x0f)) - switch int32(x) { + switch int32(int32(x)) { case JSONB_NULL: fallthrough case int32(JSONB_TRUE): @@ -166928,7 +168544,7 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept } } if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) == int32('.') { - if int32(x) == int32(JSONB_FLOAT) { + if int32(int32(x)) == int32(JSONB_FLOAT) { return j + uint32(1) } if !(int32(_sqlite3CtypeMap[*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))])&libc.Int32FromInt32(0x04) != 0) { @@ -166937,7 +168553,7 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept j += uint32(2) seen = uint8(1) } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) == int32('0') && int32(x) == int32(JSONB_FLOAT) { + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) == int32('0') && int32(int32(x)) == int32(JSONB_FLOAT) { if j+uint32(3) > k { return j + uint32(1) } @@ -166955,17 +168571,17 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept goto _2 } if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) == int32('.') { - if int32(seen) > 0 { + if int32(int32(seen)) > 0 { return j + uint32(1) } - if int32(x) == int32(JSONB_FLOAT) && (j == k-uint32(1) || !(int32(_sqlite3CtypeMap[*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))])&libc.Int32FromInt32(0x04) != 0)) { + if int32(int32(x)) == int32(JSONB_FLOAT) && (j == k-uint32(1) || !(int32(_sqlite3CtypeMap[*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))])&libc.Int32FromInt32(0x04) != 0)) { return j + uint32(1) } seen = uint8(1) goto _2 } if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) == int32('e') || int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) == int32('E') { - if int32(seen) == int32(2) { + if int32(int32(seen)) == int32(2) { return j + uint32(1) } if j == k-uint32(1) { @@ -166986,7 +168602,7 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept ; j++ } - if int32(seen) == 0 { + if int32(int32(seen)) == 0 { return i + uint32(1) } return uint32(0) @@ -167008,34 +168624,41 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept for j < k { if !(_jsonIsOk[*(*Tu8)(unsafe.Pointer(z + uintptr(j)))] != 0) && int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\'') { if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) == int32('"') { - if int32(x) == int32(JSONB_TEXTJ) { + if int32(int32(x)) == int32(JSONB_TEXTJ) { return j + uint32(1) } } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) <= int32(0x1f) { + /* Control characters in JSON5 string literals are ok */ + if int32(int32(x)) == int32(JSONB_TEXTJ) { + return j + uint32(1) + } } else { - if libc.Xstrchr(tls, __ccgo_ts+25029, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { - j++ + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { + return j + uint32(1) } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { - if j+uint32(5) >= k { - return j + uint32(1) - } - if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { - return j + uint32(1) - } + if libc.Xstrchr(tls, __ccgo_ts+25152, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { j++ } else { - if int32(x) != int32(JSONB_TEXT5) { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { + if j+uint32(5) >= k { + return j + uint32(1) + } + if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { + return j + uint32(1) + } + j++ } else { - *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) - szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) - if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + if int32(int32(x)) != int32(JSONB_TEXT5) { return j + uint32(1) + } else { + *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) + szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) + if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + return j + uint32(1) + } + j += szC - uint32(1) } - j += szC - uint32(1) } } } @@ -167081,7 +168704,7 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept } if cnt&uint32(1) == uint32(0) { x = uint8(int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) & int32(0x0f)) - if int32(x) < int32(JSONB_TEXT) || int32(x) > int32(JSONB_TEXTRAW) { + if int32(int32(x)) < int32(JSONB_TEXT) || int32(int32(x)) > int32(JSONB_TEXTRAW) { return j + uint32(1) } } @@ -167131,6 +168754,7 @@ func _jsonTranslateTextToBlob(tls *libc.TLS, pParse uintptr, i Tu32) (r int32) { var _ /* op at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cDelim, iBlob, iStart, iThis, j, k, k1, nn, opcode, seenE, t, x, z, v40, v41, v43, v44, v46, v48 z = (*TJsonParse)(unsafe.Pointer(pParse)).FzJson + goto json_parse_restart json_parse_restart: ; switch int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))) { @@ -167244,7 +168868,7 @@ _1: for int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(k))))])&int32(0x46) != 0 && _json5Whitespace(tls, z+uintptr(k)) == 0 || int32(*(*int8)(unsafe.Pointer(z + uintptr(k)))) == int32('\\') && _jsonIs4HexB(tls, z+uintptr(k+int32(1)), bp) != 0 { k++ } - _jsonBlobAppendNode(tls, pParse, uint8(*(*int32)(unsafe.Pointer(bp))), uint32(k)-j, z+uintptr(j)) + _jsonBlobAppendNode(tls, pParse, uint8(*(*int32)(unsafe.Pointer(bp))), uint32(uint32(k))-j, z+uintptr(j)) (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) x = k } else { @@ -167258,11 +168882,11 @@ _1: return -int32(1) } t = uint8(int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(iBlob)))) & int32(0x0f)) - if int32(t) < int32(JSONB_TEXT) || int32(t) > int32(JSONB_TEXTRAW) { + if int32(int32(t)) < int32(JSONB_TEXT) || int32(int32(t)) > int32(JSONB_TEXTRAW) { (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j return -int32(1) } - j = uint32(x) + j = uint32(uint32(x)) if int32(*(*int8)(unsafe.Pointer(z + uintptr(j)))) == int32(':') { j++ } else { @@ -167285,6 +168909,7 @@ _1: } j = (*TJsonParse)(unsafe.Pointer(pParse)).FiErr + uint32(1) } + goto parse_object_value parse_object_value: ; x = _jsonTranslateTextToBlob(tls, pParse, j) @@ -167294,7 +168919,7 @@ _1: } return -int32(1) } - j = uint32(x) + j = uint32(uint32(x)) if int32(*(*int8)(unsafe.Pointer(z + uintptr(j)))) == int32(',') { goto _42 } else { @@ -167364,7 +168989,7 @@ _2: } return -int32(1) } - j = uint32(x) + j = uint32(uint32(x)) if int32(*(*int8)(unsafe.Pointer(z + uintptr(j)))) == int32(',') { goto _45 } else { @@ -167411,6 +169036,7 @@ _3: ; /* Parse string */ opcode = uint8(JSONB_TEXT) + goto parse_string parse_string: ; cDelim = *(*int8)(unsafe.Pointer(z + uintptr(i))) @@ -167429,23 +169055,23 @@ parse_string: } } c = *(*int8)(unsafe.Pointer(z + uintptr(j))) - if int32(c) == int32(cDelim) { + if int32(int32(c)) == int32(int32(cDelim)) { break } else { - if int32(c) == int32('\\') { + if int32(int32(c)) == int32('\\') { j++ v46 = j c = *(*int8)(unsafe.Pointer(z + uintptr(v46))) - if int32(c) == int32('"') || int32(c) == int32('\\') || int32(c) == int32('/') || int32(c) == int32('b') || int32(c) == int32('f') || int32(c) == int32('n') || int32(c) == int32('r') || int32(c) == int32('t') || int32(c) == int32('u') && _jsonIs4Hex(tls, z+uintptr(j+uint32(1))) != 0 { - if int32(opcode) == int32(JSONB_TEXT) { + if int32(int32(c)) == int32('"') || int32(int32(c)) == int32('\\') || int32(int32(c)) == int32('/') || int32(int32(c)) == int32('b') || int32(int32(c)) == int32('f') || int32(int32(c)) == int32('n') || int32(int32(c)) == int32('r') || int32(int32(c)) == int32('t') || int32(int32(c)) == int32('u') && _jsonIs4Hex(tls, z+uintptr(j+uint32(1))) != 0 { + if int32(int32(opcode)) == int32(JSONB_TEXT) { opcode = uint8(JSONB_TEXTJ) } } else { - if int32(c) == int32('\'') || int32(c) == int32('0') || int32(c) == int32('v') || int32(c) == int32('\n') || int32(0xe2) == int32(uint8(c)) && int32(0x80) == int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) && (int32(0xa8) == int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(j+uint32(2)))))) || int32(0xa9) == int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(j+uint32(2))))))) || int32(c) == int32('x') && _jsonIs2Hex(tls, z+uintptr(j+uint32(1))) != 0 { + if int32(int32(c)) == int32('\'') || int32(int32(c)) == int32('0') || int32(int32(c)) == int32('v') || int32(int32(c)) == int32('\n') || int32(0xe2) == int32(uint8(uint8(c))) && int32(0x80) == int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) && (int32(0xa8) == int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(j+uint32(2)))))) || int32(0xa9) == int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(j+uint32(2))))))) || int32(int32(c)) == int32('x') && _jsonIs2Hex(tls, z+uintptr(j+uint32(1))) != 0 { opcode = uint8(JSONB_TEXT5) (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) } else { - if int32(c) == int32('\r') { + if int32(int32(c)) == int32('\r') { if int32(*(*int8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('\n') { j++ } @@ -167458,12 +169084,17 @@ parse_string: } } } else { - if int32(c) <= int32(0x1f) { - /* Control characters are not allowed in strings */ - (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j - return -int32(1) + if int32(int32(c)) <= int32(0x1f) { + if int32(int32(c)) == 0 { + (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j + return -int32(1) + } + /* Control characters are not allowed in canonical JSON string + ** literals, but are allowed in JSON5 string literals. */ + opcode = uint8(JSONB_TEXT5) + (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) } else { - if int32(c) == int32('"') { + if int32(int32(c)) == int32('"') { opcode = uint8(JSONB_TEXT5) } } @@ -167475,7 +169106,7 @@ parse_string: return int32(j + uint32(1)) _5: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7890, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8015, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_TRUE)) return int32(i + uint32(4)) } @@ -167483,7 +169114,7 @@ _5: return -int32(1) _6: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7895, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(5)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8020, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(5)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_FALSE)) return int32(i + uint32(5)) } @@ -167528,12 +169159,13 @@ _8: ; /* Parse number */ t = uint8(0x00) /* Bit 0x01: JSON5. Bit 0x02: FLOAT */ + goto parse_number parse_number: ; seenE = uint8(0) c = *(*int8)(unsafe.Pointer(z + uintptr(i))) - if int32(c) <= int32('0') { - if int32(c) == int32('0') { + if int32(int32(c)) <= int32('0') { + if int32(int32(c)) == int32('0') { if (int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('x') || int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('X')) && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(2)))))])&int32(0x08) != 0 { (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) t = uint8(0x01) @@ -167559,14 +169191,14 @@ parse_number: /* JSON5 allows for "+Infinity" and "-Infinity" using exactly ** that case. SQLite also allows these in any case and it allows ** "+inf" and "-inf". */ - if (int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+24955, int32(3)) == 0 { + if (int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+25078, int32(3)) == 0 { (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) if int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == int32('-') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25038) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25161) } else { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25045) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25168) } - if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25051, int32(5)) == 0 { + if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25174, int32(5)) == 0 { v48 = int32(9) } else { v48 = int32(4) @@ -167605,6 +169237,7 @@ parse_number: } } } + goto parse_number_2 parse_number_2: ; j = i + uint32(1) @@ -167613,15 +169246,15 @@ parse_number_2: if int32(_sqlite3CtypeMap[uint8(c)])&int32(0x04) != 0 { goto _50 } - if int32(c) == int32('.') { - if int32(t)&int32(0x02) != 0 { + if int32(int32(c)) == int32('.') { + if int32(int32(t))&int32(0x02) != 0 { (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j return -int32(1) } t = Tu8(int32(t) | libc.Int32FromInt32(0x02)) goto _50 } - if int32(c) == int32('e') || int32(c) == int32('E') { + if int32(int32(c)) == int32('e') || int32(int32(c)) == int32('E') { if int32(*(*int8)(unsafe.Pointer(z + uintptr(j-uint32(1))))) < int32('0') { if int32(*(*int8)(unsafe.Pointer(z + uintptr(j-uint32(1))))) == int32('.') && j-uint32(2) >= i && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(j-uint32(2)))))])&int32(0x04) != 0 { (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) @@ -167638,11 +169271,11 @@ parse_number_2: t = Tu8(int32(t) | libc.Int32FromInt32(0x02)) seenE = uint8(1) c = *(*int8)(unsafe.Pointer(z + uintptr(j+uint32(1)))) - if int32(c) == int32('+') || int32(c) == int32('-') { + if int32(int32(c)) == int32('+') || int32(int32(c)) == int32('-') { j++ c = *(*int8)(unsafe.Pointer(z + uintptr(j+uint32(1)))) } - if int32(c) < int32('0') || int32(c) > int32('9') { + if int32(int32(c)) < int32('0') || int32(int32(c)) > int32('9') { (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j return -int32(1) } @@ -167663,13 +169296,14 @@ parse_number_2: return -int32(1) } } + goto parse_number_finish parse_number_finish: ; if int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == int32('+') { i++ } - _jsonBlobAppendNode(tls, pParse, uint8(int32(JSONB_INT)+int32(t)), j-i, z+uintptr(i)) - return int32(j) + _jsonBlobAppendNode(tls, pParse, uint8(int32(JSONB_INT)+int32(int32(t))), j-i, z+uintptr(i)) + return int32(int32(j)) _20: ; (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = i @@ -167725,36 +169359,35 @@ _29: return -int32(1) _37: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1638, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1652, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) return int32(i + uint32(4)) } - /* fall-through into the default case that checks for NaN */ _38: ; c = *(*int8)(unsafe.Pointer(z + uintptr(i))) k1 = uint32(0) for { - if !(uint64(k1) < libc.Uint64FromInt64(120)/libc.Uint64FromInt64(24)) { + if !(uint64(uint64(k1)) < libc.Uint64FromInt64(120)/libc.Uint64FromInt64(24)) { break } - if int32(c) != int32(_aNanInfName[k1].Fc1) && int32(c) != int32(_aNanInfName[k1].Fc2) { + if int32(int32(c)) != int32(_aNanInfName[k1].Fc1) && int32(int32(c)) != int32(_aNanInfName[k1].Fc2) { goto _51 } nn = int32(_aNanInfName[k1].Fn) if Xsqlite3_strnicmp(tls, z+uintptr(i), _aNanInfName[k1].FzMatch, nn) != 0 { goto _51 } - if int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(nn)))))])&int32(0x06) != 0 { + if int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(uint32(nn))))))])&int32(0x06) != 0 { goto _51 } if int32(_aNanInfName[k1].FeType) == int32(JSONB_FLOAT) { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25045) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25168) } else { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) } (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) - return int32(i + uint32(nn)) + return int32(i + uint32(uint32(nn))) goto _51 _51: ; @@ -167794,7 +169427,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 i += _json5Whitespace(tls, zJson+uintptr(i)) if *(*int8)(unsafe.Pointer(zJson + uintptr(i))) != 0 { if pCtx != 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24940, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25063, -int32(1)) } _jsonParseReset(tls, pParse) return int32(1) @@ -167807,7 +169440,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 if (*TJsonParse)(unsafe.Pointer(pParse)).Foom != 0 { Xsqlite3_result_error_nomem(tls, pCtx) } else { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24940, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25063, -int32(1)) } } _jsonParseReset(tls, pParse) @@ -167861,11 +169494,11 @@ func _jsonbPayloadSize(tls *libc.TLS, pParse uintptr, i Tu32, pSz uintptr) (r Tu return uint32(0) } x = uint8(int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) >> int32(4)) - if int32(x) <= int32(11) { - sz = uint32(x) + if int32(int32(x)) <= int32(11) { + sz = uint32(uint32(x)) n = uint32(1) } else { - if int32(x) == int32(12) { + if int32(int32(x)) == int32(12) { if i+uint32(1) >= (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob { *(*Tu32)(unsafe.Pointer(pSz)) = uint32(0) return uint32(0) @@ -167873,7 +169506,7 @@ func _jsonbPayloadSize(tls *libc.TLS, pParse uintptr, i Tu32, pSz uintptr) (r Tu sz = uint32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+uint32(1))))) n = uint32(2) } else { - if int32(x) == int32(13) { + if int32(int32(x)) == int32(13) { if i+uint32(2) >= (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob { *(*Tu32)(unsafe.Pointer(pSz)) = uint32(0) return uint32(0) @@ -167881,7 +169514,7 @@ func _jsonbPayloadSize(tls *libc.TLS, pParse uintptr, i Tu32, pSz uintptr) (r Tu sz = uint32(int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+uint32(1)))))<= (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob { *(*Tu32)(unsafe.Pointer(pSz)) = uint32(0) return uint32(0) @@ -167899,7 +169532,7 @@ func _jsonbPayloadSize(tls *libc.TLS, pParse uintptr, i Tu32, pSz uintptr) (r Tu } } } - if int64(i)+int64(sz)+int64(n) > int64((*TJsonParse)(unsafe.Pointer(pParse)).FnBlob) && int64(i)+int64(sz)+int64(n) > int64((*TJsonParse)(unsafe.Pointer(pParse)).FnBlob-uint32((*TJsonParse)(unsafe.Pointer(pParse)).Fdelta)) { + if int64(int64(i))+int64(int64(sz))+int64(int64(n)) > int64((*TJsonParse)(unsafe.Pointer(pParse)).FnBlob) && int64(int64(i))+int64(int64(sz))+int64(int64(n)) > int64((*TJsonParse)(unsafe.Pointer(pParse)).FnBlob-uint32((*TJsonParse)(unsafe.Pointer(pParse)).Fdelta)) { sz = uint32(0) n = uint32(0) } @@ -167970,15 +169603,15 @@ func _jsonTranslateBlobToText(tls *libc.TLS, pParse uintptr, i Tu32, pOut uintpt goto _16 _2: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1638, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1652, uint32(4)) return i + uint32(1) _3: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7890, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8015, uint32(4)) return i + uint32(1) _4: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7895, uint32(5)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8020, uint32(5)) return i + uint32(1) _6: ; @@ -168027,9 +169660,9 @@ _7: k++ } if bOverflow != 0 { - v19 = __ccgo_ts + 24959 + v19 = __ccgo_ts + 25082 } else { - v19 = __ccgo_ts + 11757 + v19 = __ccgo_ts + 11882 } _jsonPrintf(tls, int32(100), pOut, v19, libc.VaList(bp+16, u)) goto _16 @@ -168077,7 +169710,7 @@ _11: for sz2 > uint32(0) { k2 = uint32(0) for { - if !(k2 < sz2 && int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('\\') && int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('"')) { + if !(k2 < sz2 && (_jsonIsOk[uint8(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2))))] != 0 || int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) == int32('\''))) { break } goto _21 @@ -168094,7 +169727,16 @@ _11: sz2 -= k2 } if int32(*(*int8)(unsafe.Pointer(zIn2))) == int32('"') { - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25057, uint32(2)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25180, uint32(2)) + zIn2++ + sz2-- + continue + } + if int32(*(*int8)(unsafe.Pointer(zIn2))) <= int32(0x1f) { + if (*TJsonString)(unsafe.Pointer(pOut)).FnUsed+uint64(7) > (*TJsonString)(unsafe.Pointer(pOut)).FnAlloc && _jsonStringGrow(tls, pOut, uint32(7)) != 0 { + break + } + _jsonAppendControlChar(tls, pOut, uint8(*(*int8)(unsafe.Pointer(zIn2)))) zIn2++ sz2-- continue @@ -168108,7 +169750,7 @@ _11: case int32('\''): _jsonAppendChar(tls, pOut, int8('\'')) case int32('v'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25060, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25183, uint32(6)) case int32('x'): if sz2 < uint32(4) { p23 = pOut + 33 @@ -168116,12 +169758,12 @@ _11: sz2 = uint32(2) break } - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25067, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25190, uint32(4)) _jsonAppendRawNZ(tls, pOut, zIn2+2, uint32(2)) zIn2 += uintptr(2) sz2 -= uint32(2) case int32('0'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25072, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25195, uint32(6)) case int32('\r'): if sz2 > uint32(2) && int32(*(*int8)(unsafe.Pointer(zIn2 + 2))) == int32('\n') { zIn2++ @@ -168199,6 +169841,7 @@ _14: goto _16 _15: ; + goto malformed_jsonb malformed_jsonb: ; p29 = pOut + 33 @@ -168209,6 +169852,140 @@ _16: return i + n + *(*Tu32)(unsafe.Pointer(bp)) } +// C documentation +// +// /* Context for recursion of json_pretty() +// */ +type TJsonPretty = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty = TJsonPretty + +type TJsonPretty1 = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty1 = TJsonPretty1 + +// C documentation +// +// /* Append indentation to the pretty JSON under construction */ +func _jsonPrettyIndent(tls *libc.TLS, pPretty uintptr) { + var jj Tu32 + _ = jj + jj = uint32(0) + for { + if !(jj < (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent) { + break + } + _jsonAppendRaw(tls, (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut, (*TJsonPretty)(unsafe.Pointer(pPretty)).FzIndent, (*TJsonPretty)(unsafe.Pointer(pPretty)).FszIndent) + goto _1 + _1: + ; + jj++ + } +} + +// C documentation +// +// /* +// ** Translate the binary JSONB representation of JSON beginning at +// ** pParse->aBlob[i] into a JSON text string. Append the JSON +// ** text onto the end of pOut. Return the index in pParse->aBlob[] +// ** of the first byte past the end of the element that is translated. +// ** +// ** This is a variant of jsonTranslateBlobToText() that "pretty-prints" +// ** the output. Extra whitespace is inserted to make the JSON easier +// ** for humans to read. +// ** +// ** If an error is detected in the BLOB input, the pOut->eErr flag +// ** might get set to JSTRING_MALFORMED. But not all BLOB input errors +// ** are detected. So a malformed JSONB input might either result +// ** in an error, or in incorrect JSON. +// ** +// ** The pOut->eErr JSTRING_OOM flag is set on a OOM. +// */ +func _jsonTranslateBlobToPrettyText(tls *libc.TLS, pPretty uintptr, i Tu32) (r Tu32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var iEnd, j, n Tu32 + var pOut, pParse, p1, p2 uintptr + var _ /* sz at bp+0 */ Tu32 + _, _, _, _, _, _, _ = iEnd, j, n, pOut, pParse, p1, p2 + pParse = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpParse + pOut = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut + n = _jsonbPayloadSize(tls, pParse, i, bp) + if n == uint32(0) { + p1 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + return (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob + uint32(1) + } + switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { + case int32(JSONB_ARRAY): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, int8('[')) + if j < iEnd { + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25202, uint32(2)) + } + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, int8(']')) + i = iEnd + case int32(JSONB_OBJECT): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, int8('{')) + if j < iEnd { + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToText(tls, pParse, j, pOut) + if j > iEnd { + p2 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p2)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p2))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25205, uint32(2)) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25202, uint32(2)) + } + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, int8('}')) + i = iEnd + default: + i = _jsonTranslateBlobToText(tls, pParse, i, pOut) + break + } + return i +} + // C documentation // // /* Return true if the input pJson @@ -168239,18 +170016,18 @@ func _jsonFuncArgMightBeBinary(tls *libc.TLS, pJson uintptr) (r int32) { } libc.Xmemset(tls, bp+8, 0, uint64(72)) (*(*TJsonParse)(unsafe.Pointer(bp + 8))).FaBlob = aBlob - (*(*TJsonParse)(unsafe.Pointer(bp + 8))).FnBlob = uint32(nBlob) + (*(*TJsonParse)(unsafe.Pointer(bp + 8))).FnBlob = uint32(uint32(nBlob)) n = _jsonbPayloadSize(tls, bp+8, uint32(0), bp) if n == uint32(0) { return 0 } - if *(*Tu32)(unsafe.Pointer(bp))+n != uint32(nBlob) { + if *(*Tu32)(unsafe.Pointer(bp))+n != uint32(uint32(nBlob)) { return 0 } if int32(*(*Tu8)(unsafe.Pointer(aBlob)))&int32(0x0f) <= int32(JSONB_FALSE) && *(*Tu32)(unsafe.Pointer(bp)) > uint32(0) { return 0 } - return libc.BoolInt32(*(*Tu32)(unsafe.Pointer(bp))+n == uint32(nBlob)) + return libc.BoolInt32(*(*Tu32)(unsafe.Pointer(bp))+n == uint32(uint32(nBlob))) } // C documentation @@ -168323,7 +170100,7 @@ func _jsonBlobEdit(tls *libc.TLS, pParse uintptr, iDel Tu32, nDel Tu32, aIns uin var d Ti64 var p1, p2 uintptr _, _, _ = d, p1, p2 - d = int64(nIns) - int64(nDel) + d = int64(int64(nIns)) - int64(int64(nDel)) if d != 0 { if int64((*TJsonParse)(unsafe.Pointer(pParse)).FnBlob)+d > int64((*TJsonParse)(unsafe.Pointer(pParse)).FnBlobAlloc) { _jsonBlobExpand(tls, pParse, uint32(int64((*TJsonParse)(unsafe.Pointer(pParse)).FnBlob)+d)) @@ -168338,7 +170115,7 @@ func _jsonBlobEdit(tls *libc.TLS, pParse uintptr, iDel Tu32, nDel Tu32, aIns uin *(*int32)(unsafe.Pointer(p2)) = int32(int64(*(*int32)(unsafe.Pointer(p2))) + d) } if nIns != 0 && aIns != 0 { - libc.Xmemcpy(tls, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(iDel), aIns, uint64(nIns)) + libc.Xmemcpy(tls, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(iDel), aIns, uint64(uint64(nIns))) } } @@ -168477,7 +170254,7 @@ func _jsonUnescapeOneChar(tls *libc.TLS, z uintptr, n Tu32, piOut uintptr) (r Tu return nSkip + _jsonUnescapeOneChar(tls, z+uintptr(nSkip), n-nSkip, piOut) } else { sz = _sqlite3Utf8ReadLimited(tls, z+uintptr(nSkip), int32(n-nSkip), piOut) - return nSkip + uint32(sz) + return nSkip + uint32(uint32(sz)) } } } @@ -168513,9 +170290,9 @@ func _jsonLabelCompareEscaped(tls *libc.TLS, zLeft uintptr, nLeft Tu32, rawLeft if rawLeft != 0 || int32(*(*int8)(unsafe.Pointer(zLeft))) != int32('\\') { *(*Tu32)(unsafe.Pointer(bp)) = uint32(*(*Tu8)(unsafe.Pointer(zLeft))) if *(*Tu32)(unsafe.Pointer(bp)) >= uint32(0xc0) { - sz = _sqlite3Utf8ReadLimited(tls, zLeft, int32(nLeft), bp) + sz = _sqlite3Utf8ReadLimited(tls, zLeft, int32(int32(nLeft)), bp) zLeft += uintptr(sz) - nLeft -= uint32(sz) + nLeft -= uint32(uint32(sz)) } else { zLeft++ nLeft-- @@ -168532,9 +170309,9 @@ func _jsonLabelCompareEscaped(tls *libc.TLS, zLeft uintptr, nLeft Tu32, rawLeft if rawRight != 0 || int32(*(*int8)(unsafe.Pointer(zRight))) != int32('\\') { *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(*(*Tu8)(unsafe.Pointer(zRight))) if *(*Tu32)(unsafe.Pointer(bp + 4)) >= uint32(0xc0) { - sz1 = _sqlite3Utf8ReadLimited(tls, zRight, int32(nRight), bp+4) + sz1 = _sqlite3Utf8ReadLimited(tls, zRight, int32(int32(nRight)), bp+4) zRight += uintptr(sz1) - nRight -= uint32(sz1) + nRight -= uint32(uint32(sz1)) } else { zRight++ nRight-- @@ -168568,7 +170345,7 @@ func _jsonLabelCompare(tls *libc.TLS, zLeft uintptr, nLeft Tu32, rawLeft int32, if nLeft != nRight { return 0 } - return libc.BoolInt32(libc.Xmemcmp(tls, zLeft, zRight, uint64(nLeft)) == 0) + return libc.BoolInt32(libc.Xmemcmp(tls, zLeft, zRight, uint64(uint64(nLeft))) == 0) } else { return _jsonLabelCompareEscaped(tls, zLeft, nLeft, rawLeft, zRight, nRight, rawRight) } @@ -168618,7 +170395,7 @@ func _jsonCreateEditSubstructure(tls *libc.TLS, pParse uintptr, pIns uintptr, zT p1 = pParse + 47 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | int32((*TJsonParse)(unsafe.Pointer(pIns)).Foom)) } - return uint32(rc) /* Error code only */ + return uint32(uint32(rc)) /* Error code only */ } var _emptyObject = [2]Tu8{ @@ -168702,7 +170479,7 @@ func _jsonLookupStep(tls *libc.TLS, pParse uintptr, iRoot Tu32, zPath uintptr, i } else { return uint32(JSON_LOOKUP_PATHERROR) } - rawKey = libc.BoolInt32(libc.Xmemchr(tls, zKey, int32('\\'), uint64(nKey)) == uintptr(0)) + rawKey = libc.BoolInt32(libc.Xmemchr(tls, zKey, int32('\\'), uint64(uint64(nKey))) == uintptr(0)) } else { zKey = zPath i = uint32(0) @@ -168720,7 +170497,7 @@ func _jsonLookupStep(tls *libc.TLS, pParse uintptr, iRoot Tu32, zPath uintptr, i return uint32(JSON_LOOKUP_PATHERROR) } } - if int32(x)&int32(0x0f) != int32(JSONB_OBJECT) { + if int32(int32(x))&int32(0x0f) != int32(JSONB_OBJECT) { return uint32(JSON_LOOKUP_NOTFOUND) } n = _jsonbPayloadSize(tls, pParse, iRoot, bp) @@ -168728,7 +170505,7 @@ func _jsonLookupStep(tls *libc.TLS, pParse uintptr, iRoot Tu32, zPath uintptr, i iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) for j < iEnd { x = uint8(int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(j)))) & int32(0x0f)) - if int32(x) < int32(JSONB_TEXT) || int32(x) > int32(JSONB_TEXTRAW) { + if int32(int32(x)) < int32(JSONB_TEXT) || int32(int32(x)) > int32(JSONB_TEXTRAW) { return uint32(JSON_LOOKUP_ERROR) } n = _jsonbPayloadSize(tls, pParse, j, bp) @@ -168740,7 +170517,7 @@ func _jsonLookupStep(tls *libc.TLS, pParse uintptr, iRoot Tu32, zPath uintptr, i return uint32(JSON_LOOKUP_ERROR) } zLabel = (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(k) - rawLabel = libc.BoolInt32(int32(x) == int32(JSONB_TEXT) || int32(x) == int32(JSONB_TEXTRAW)) + rawLabel = libc.BoolInt32(int32(int32(x)) == int32(JSONB_TEXT) || int32(int32(x)) == int32(JSONB_TEXTRAW)) if _jsonLabelCompare(tls, zKey, nKey, rawKey, zLabel, *(*Tu32)(unsafe.Pointer(bp)), rawLabel) != 0 { v = k + *(*Tu32)(unsafe.Pointer(bp)) /* v is the index of the value */ if int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(v))))&int32(0x0f) > int32(JSONB_OBJECT) { @@ -168789,7 +170566,7 @@ func _jsonLookupStep(tls *libc.TLS, pParse uintptr, iRoot Tu32, zPath uintptr, i /* Because pPasre->oom!=0 */ libc.Xmemcpy(tls, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(j), (*(*TJsonParse)(unsafe.Pointer(bp + 80))).FaBlob, uint64((*(*TJsonParse)(unsafe.Pointer(bp + 80))).FnBlob)) k = j + (*(*TJsonParse)(unsafe.Pointer(bp + 80))).FnBlob - libc.Xmemcpy(tls, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(k), zKey, uint64(nKey)) + libc.Xmemcpy(tls, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(k), zKey, uint64(uint64(nKey))) k += nKey libc.Xmemcpy(tls, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(k), (*(*TJsonParse)(unsafe.Pointer(bp + 8))).FaBlob, uint64((*(*TJsonParse)(unsafe.Pointer(bp + 8))).FnBlob)) if (*TJsonParse)(unsafe.Pointer(pParse)).Fdelta != 0 { @@ -168804,7 +170581,7 @@ func _jsonLookupStep(tls *libc.TLS, pParse uintptr, iRoot Tu32, zPath uintptr, i } else { if int32(*(*int8)(unsafe.Pointer(zPath))) == int32('[') { x = uint8(int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(iRoot)))) & int32(0x0f)) - if int32(x) != int32(JSONB_ARRAY) { + if int32(int32(x)) != int32(JSONB_ARRAY) { return uint32(JSON_LOOKUP_NOTFOUND) } n = _jsonbPayloadSize(tls, pParse, iRoot, bp) @@ -168926,7 +170703,7 @@ func _jsonReturnFromBlob(tls *libc.TLS, pParse uintptr, i Tu32, pCtx uintptr, te db = Xsqlite3_context_db_handle(tls, pCtx) n = _jsonbPayloadSize(tls, pParse, i, bp) if n == uint32(0) { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24940, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25063, -int32(1)) return } switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { @@ -168991,7 +170768,7 @@ _4: goto returnfromblob_malformed } x = int8(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i+n)))) - if int32(x) == int32('-') { + if int32(int32(x)) == int32('-') { if *(*Tu32)(unsafe.Pointer(bp)) < uint32(2) { goto returnfromblob_malformed } @@ -169035,6 +170812,7 @@ _6: if *(*Tu32)(unsafe.Pointer(bp)) == uint32(0) { goto returnfromblob_malformed } + goto to_double to_double: ; z1 = _sqlite3DbStrNDup(tls, db, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(i+n), uint64(int32(*(*Tu32)(unsafe.Pointer(bp))))) @@ -169072,7 +170850,7 @@ _10: break } c = *(*int8)(unsafe.Pointer(z2 + uintptr(iIn))) - if int32(c) == int32('\\') { + if int32(int32(c)) == int32('\\') { szEscape = _jsonUnescapeOneChar(tls, z2+uintptr(iIn), *(*Tu32)(unsafe.Pointer(bp))-iIn, bp+24) if *(*Tu32)(unsafe.Pointer(bp + 24)) <= uint32(0x7f) { v19 = iOut @@ -169129,7 +170907,7 @@ _10: iIn++ } /* end for() */ *(*int8)(unsafe.Pointer(zOut + uintptr(iOut))) = 0 - Xsqlite3_result_text(tls, pCtx, zOut, int32(iOut), __ccgo_fp(_sqlite3OomClear)) + Xsqlite3_result_text(tls, pCtx, zOut, int32(int32(iOut)), __ccgo_fp(_sqlite3OomClear)) goto _15 _13: ; @@ -169153,13 +170931,15 @@ _14: _15: ; return + goto returnfromblob_oom returnfromblob_oom: ; Xsqlite3_result_error_nomem(tls, pCtx) return + goto returnfromblob_malformed returnfromblob_malformed: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24940, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25063, -int32(1)) return } @@ -169200,7 +170980,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob = Xsqlite3_value_blob(tls, pArg) (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob = uint32(Xsqlite3_value_bytes(tls, pArg)) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24911, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25034, -int32(1)) return int32(1) } case int32(SQLITE_TEXT): @@ -169213,13 +170993,13 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FzJson = zJson (*TJsonParse)(unsafe.Pointer(pParse)).FnJson = nJson if _jsonConvertTextToBlob(tls, pParse, ctx) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24940, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25063, -int32(1)) _sqlite3DbFree(tls, (*TJsonParse)(unsafe.Pointer(pParse)).Fdb, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob) libc.Xmemset(tls, pParse, 0, uint64(72)) return int32(1) } } else { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_TEXTRAW), uint32(nJson), zJson) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_TEXTRAW), uint32(uint32(nJson)), zJson) } case int32(SQLITE_FLOAT): r = Xsqlite3_value_double(tls, pArg) @@ -169232,12 +171012,12 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin return int32(1) } if int32(*(*int8)(unsafe.Pointer(z))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25045) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25168) } else { if int32(*(*int8)(unsafe.Pointer(z))) == int32('-') && int32(*(*int8)(unsafe.Pointer(z + 1))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25038) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25161) } else { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(n), z) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(uint32(n)), z) } } } @@ -169247,7 +171027,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin if z1 == uintptr(0) { return int32(1) } - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_INT), uint32(n1), z1) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_INT), uint32(uint32(n1)), z1) break } if (*TJsonParse)(unsafe.Pointer(pParse)).Foom != 0 { @@ -169274,7 +171054,7 @@ func _jsonBadPathError(tls *libc.TLS, ctx uintptr, zPath uintptr) (r uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25079, libc.VaList(bp+8, zPath)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25208, libc.VaList(bp+8, zPath)) if ctx == uintptr(0) { return zMsg } @@ -169313,7 +171093,7 @@ func _jsonInsertIntoBlob(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr, e v1 = int32(JSON_EDITABLE) } flgs = v1 - p = _jsonParseFuncArg(tls, ctx, *(*uintptr)(unsafe.Pointer(argv)), uint32(flgs)) + p = _jsonParseFuncArg(tls, ctx, *(*uintptr)(unsafe.Pointer(argv)), uint32(uint32(flgs))) if p == uintptr(0) { return } @@ -169345,7 +171125,7 @@ func _jsonInsertIntoBlob(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr, e } rc = uint32(0) } else { - (*TJsonParse)(unsafe.Pointer(p)).FeEdit = uint8(eEdit) + (*TJsonParse)(unsafe.Pointer(p)).FeEdit = uint8(uint8(eEdit)) (*TJsonParse)(unsafe.Pointer(p)).FnIns = (*(*TJsonParse)(unsafe.Pointer(bp))).FnBlob (*TJsonParse)(unsafe.Pointer(p)).FaIns = (*(*TJsonParse)(unsafe.Pointer(bp))).FaBlob (*TJsonParse)(unsafe.Pointer(p)).Fdelta = 0 @@ -169366,11 +171146,12 @@ func _jsonInsertIntoBlob(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr, e _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto jsonInsertIntoBlob_patherror jsonInsertIntoBlob_patherror: ; _jsonParseFree(tls, p) if rc == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24940, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25063, -int32(1)) } else { _jsonBadPathError(tls, ctx, zPath) } @@ -169454,6 +171235,7 @@ func _jsonParseFuncArg(tls *libc.TLS, ctx uintptr, pArg uintptr, flgs Tu32) (r u } } db = Xsqlite3_context_db_handle(tls, ctx) + goto rebuild_from_cache rebuild_from_cache: ; p = _sqlite3DbMallocZero(tls, db, uint64(72)) @@ -169465,11 +171247,11 @@ rebuild_from_cache: (*TJsonParse)(unsafe.Pointer(p)).FnJPRef = uint32(1) if pFromCache != uintptr(0) { nBlob = (*TJsonParse)(unsafe.Pointer(pFromCache)).FnBlob - (*TJsonParse)(unsafe.Pointer(p)).FaBlob = _sqlite3DbMallocRaw(tls, db, uint64(nBlob)) + (*TJsonParse)(unsafe.Pointer(p)).FaBlob = _sqlite3DbMallocRaw(tls, db, uint64(uint64(nBlob))) if (*TJsonParse)(unsafe.Pointer(p)).FaBlob == uintptr(0) { goto json_pfa_oom } - libc.Xmemcpy(tls, (*TJsonParse)(unsafe.Pointer(p)).FaBlob, (*TJsonParse)(unsafe.Pointer(pFromCache)).FaBlob, uint64(nBlob)) + libc.Xmemcpy(tls, (*TJsonParse)(unsafe.Pointer(p)).FaBlob, (*TJsonParse)(unsafe.Pointer(pFromCache)).FaBlob, uint64(uint64(nBlob))) v1 = nBlob (*TJsonParse)(unsafe.Pointer(p)).FnBlob = v1 (*TJsonParse)(unsafe.Pointer(p)).FnBlobAlloc = v1 @@ -169543,6 +171325,7 @@ rebuild_from_cache: } } return p + goto json_pfa_malformed json_pfa_malformed: ; if flgs&uint32(JSON_KEEPERROR) != 0 { @@ -169550,9 +171333,10 @@ json_pfa_malformed: return p } else { _jsonParseFree(tls, p) - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24940, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25063, -int32(1)) return uintptr(0) } + goto json_pfa_oom json_pfa_oom: ; _jsonParseFree(tls, pFromCache) @@ -169684,7 +171468,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if int32(*(*int8)(unsafe.Pointer(zPath))) == int32('$') { v1 = zPath + uintptr(1) } else { - v1 = __ccgo_ts + 25097 + v1 = __ccgo_ts + 25226 } i = _jsonLookupStep(tls, p, uint32(0), v1, uint32(0)) if i >= uint32(JSON_LOOKUP_PATHERROR) { @@ -169694,7 +171478,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24940, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25063, -int32(1)) } } eErr = uint8(1) @@ -169712,25 +171496,6 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) _jsonParseFree(tls, p) } -// C documentation -// -// /* True if the string is all digits */ -func _jsonAllDigits(tls *libc.TLS, z uintptr, n int32) (r int32) { - var i int32 - _ = i - i = 0 - for { - if !(i < n && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))])&int32(0x04) != 0) { - break - } - goto _1 - _1: - ; - i++ - } - return libc.BoolInt32(i == n) -} - // C documentation // // /* True if the string is all alphanumerics and underscores */ @@ -169817,21 +171582,21 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { ** [NUMBER] ==> $[NUMBER] // Not PG. Purely for convenience */ _jsonStringInit(tls, bp, ctx) - if _jsonAllDigits(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25099, uint32(1)) - _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+5165, uint32(2)) + if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) == int32(SQLITE_INTEGER) { + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25228, uint32(1)) + _jsonAppendRaw(tls, bp, zPath, uint32(uint32(nPath))) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+5229, uint32(2)) } else { if _jsonAllAlphanum(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1665, uint32(1)) - _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1679, uint32(1)) + _jsonAppendRaw(tls, bp, zPath, uint32(uint32(nPath))) } else { if int32(*(*int8)(unsafe.Pointer(zPath))) == int32('[') && nPath >= int32(3) && int32(*(*int8)(unsafe.Pointer(zPath + uintptr(nPath-int32(1))))) == int32(']') { - _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) + _jsonAppendRaw(tls, bp, zPath, uint32(uint32(nPath))) } else { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25101, uint32(2)) - _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25104, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25230, uint32(2)) + _jsonAppendRaw(tls, bp, zPath, uint32(uint32(nPath))) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25233, uint32(1)) } } } @@ -169867,11 +171632,11 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { goto json_extract_error /* Return NULL if not found */ } else { _jsonAppendSeparator(tls, bp) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1638, uint32(4)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1652, uint32(4)) } } else { if j == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24940, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25063, -int32(1)) goto json_extract_error } else { _jsonBadPathError(tls, ctx, zPath) @@ -169891,6 +171656,7 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } } + goto json_extract_error json_extract_error: ; _jsonStringReset(tls, bp) @@ -169970,7 +171736,7 @@ func _jsonMergePatch(tls *libc.TLS, pTarget uintptr, iTarget Tu32, pPatch uintpt nTValue = uint32(0) /* Header size of the target value */ *(*Tu32)(unsafe.Pointer(bp + 8)) = uint32(0) /* Payload size of the patch value */ x = uint8(int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pPatch)).FaBlob + uintptr(iPatch)))) & int32(0x0f)) - if int32(x) != int32(JSONB_OBJECT) { /* Total size of the target, header+payload */ + if int32(int32(x)) != int32(JSONB_OBJECT) { /* Total size of the target, header+payload */ n = _jsonbPayloadSize(tls, pPatch, iPatch, bp) szPatch = n + *(*Tu32)(unsafe.Pointer(bp)) *(*Tu32)(unsafe.Pointer(bp)) = uint32(0) @@ -169985,11 +171751,11 @@ func _jsonMergePatch(tls *libc.TLS, pTarget uintptr, iTarget Tu32, pPatch uintpt return v1 /* Line 03 */ } x = uint8(int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pTarget)).FaBlob + uintptr(iTarget)))) & int32(0x0f)) - if int32(x) != int32(JSONB_OBJECT) { /* Algorithm line 05 */ + if int32(int32(x)) != int32(JSONB_OBJECT) { /* Algorithm line 05 */ n = _jsonbPayloadSize(tls, pTarget, iTarget, bp) _jsonBlobEdit(tls, pTarget, iTarget+n, *(*Tu32)(unsafe.Pointer(bp)), uintptr(0), uint32(0)) x = *(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pTarget)).FaBlob + uintptr(iTarget))) - *(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pTarget)).FaBlob + uintptr(iTarget))) = uint8(int32(x)&int32(0xf0) | int32(JSONB_OBJECT)) + *(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pTarget)).FaBlob + uintptr(iTarget))) = uint8(int32(int32(x))&int32(0xf0) | int32(JSONB_OBJECT)) } n = _jsonbPayloadSize(tls, pPatch, iPatch, bp) if n == uint32(0) { @@ -170006,7 +171772,7 @@ func _jsonMergePatch(tls *libc.TLS, pTarget uintptr, iTarget Tu32, pPatch uintpt for iPCursor < iPEnd { /* Algorithm line 07 */ iPLabel = iPCursor ePLabel = uint8(int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pPatch)).FaBlob + uintptr(iPCursor)))) & int32(0x0f)) - if int32(ePLabel) < int32(JSONB_TEXT) || int32(ePLabel) > int32(JSONB_TEXTRAW) { + if int32(int32(ePLabel)) < int32(JSONB_TEXT) || int32(int32(ePLabel)) > int32(JSONB_TEXTRAW) { return int32(JSON_MERGE_BADPATCH) } nPLabel = _jsonbPayloadSize(tls, pPatch, iPCursor, bp+12) @@ -170030,7 +171796,7 @@ func _jsonMergePatch(tls *libc.TLS, pTarget uintptr, iTarget Tu32, pPatch uintpt for iTCursor < iTEnd { /* true if the patch and target labels match */ iTLabel = iTCursor eTLabel = uint8(int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pTarget)).FaBlob + uintptr(iTCursor)))) & int32(0x0f)) - if int32(eTLabel) < int32(JSONB_TEXT) || int32(eTLabel) > int32(JSONB_TEXTRAW) { + if int32(int32(eTLabel)) < int32(JSONB_TEXT) || int32(int32(eTLabel)) > int32(JSONB_TEXTRAW) { return int32(JSON_MERGE_BADTARGET) } nTLabel = _jsonbPayloadSize(tls, pTarget, iTCursor, bp+4) @@ -170048,7 +171814,7 @@ func _jsonMergePatch(tls *libc.TLS, pTarget uintptr, iTarget Tu32, pPatch uintpt if iTValue+nTValue+*(*Tu32)(unsafe.Pointer(bp + 8)) > iTEnd { return int32(JSON_MERGE_BADTARGET) } - isEqual = _jsonLabelCompare(tls, (*TJsonParse)(unsafe.Pointer(pPatch)).FaBlob+uintptr(iPLabel+nPLabel), *(*Tu32)(unsafe.Pointer(bp + 12)), libc.BoolInt32(int32(ePLabel) == int32(JSONB_TEXT) || int32(ePLabel) == int32(JSONB_TEXTRAW)), (*TJsonParse)(unsafe.Pointer(pTarget)).FaBlob+uintptr(iTLabel+nTLabel), *(*Tu32)(unsafe.Pointer(bp + 4)), libc.BoolInt32(int32(eTLabel) == int32(JSONB_TEXT) || int32(eTLabel) == int32(JSONB_TEXTRAW))) + isEqual = _jsonLabelCompare(tls, (*TJsonParse)(unsafe.Pointer(pPatch)).FaBlob+uintptr(iPLabel+nPLabel), *(*Tu32)(unsafe.Pointer(bp + 12)), libc.BoolInt32(int32(int32(ePLabel)) == int32(JSONB_TEXT) || int32(int32(ePLabel)) == int32(JSONB_TEXTRAW)), (*TJsonParse)(unsafe.Pointer(pTarget)).FaBlob+uintptr(iTLabel+nTLabel), *(*Tu32)(unsafe.Pointer(bp + 4)), libc.BoolInt32(int32(int32(eTLabel)) == int32(JSONB_TEXT) || int32(int32(eTLabel)) == int32(JSONB_TEXTRAW))) if isEqual != 0 { break } @@ -170057,7 +171823,7 @@ func _jsonMergePatch(tls *libc.TLS, pTarget uintptr, iTarget Tu32, pPatch uintpt x = uint8(int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pPatch)).FaBlob + uintptr(iPValue)))) & int32(0x0f)) if iTCursor < iTEnd { /* A match was found. Algorithm line 08 */ - if int32(x) == 0 { + if int32(int32(x)) == 0 { /* Patch value is NULL. Algorithm line 09 */ _jsonBlobEdit(tls, pTarget, iTLabel, nTLabel+*(*Tu32)(unsafe.Pointer(bp + 4))+nTValue+*(*Tu32)(unsafe.Pointer(bp + 8)), uintptr(0), uint32(0)) /* vvvvvv----- No OOM on a delete-only edit */ @@ -170074,7 +171840,7 @@ func _jsonMergePatch(tls *libc.TLS, pTarget uintptr, iTarget Tu32, pPatch uintpt *(*int32)(unsafe.Pointer(pTarget + 52)) += savedDelta } } else { - if int32(x) > 0 { /* Algorithm line 13 */ + if int32(int32(x)) > 0 { /* Algorithm line 13 */ /* No match and patch value is not NULL */ szNew = *(*Tu32)(unsafe.Pointer(bp + 12)) + nPLabel if int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pPatch)).FaBlob + uintptr(iPValue))))&int32(0x0f) != int32(JSONB_OBJECT) { /* Line 14 */ @@ -170082,14 +171848,14 @@ func _jsonMergePatch(tls *libc.TLS, pTarget uintptr, iTarget Tu32, pPatch uintpt if (*TJsonParse)(unsafe.Pointer(pTarget)).Foom != 0 { return int32(JSON_MERGE_OOM) } - libc.Xmemcpy(tls, (*TJsonParse)(unsafe.Pointer(pTarget)).FaBlob+uintptr(iTEnd), (*TJsonParse)(unsafe.Pointer(pPatch)).FaBlob+uintptr(iPLabel), uint64(szNew)) + libc.Xmemcpy(tls, (*TJsonParse)(unsafe.Pointer(pTarget)).FaBlob+uintptr(iTEnd), (*TJsonParse)(unsafe.Pointer(pPatch)).FaBlob+uintptr(iPLabel), uint64(uint64(szNew))) libc.Xmemcpy(tls, (*TJsonParse)(unsafe.Pointer(pTarget)).FaBlob+uintptr(iTEnd+szNew), (*TJsonParse)(unsafe.Pointer(pPatch)).FaBlob+uintptr(iPValue), uint64(*(*Tu32)(unsafe.Pointer(bp + 16))+nPValue)) } else { _jsonBlobEdit(tls, pTarget, iTEnd, uint32(0), uintptr(0), szNew+uint32(1)) if (*TJsonParse)(unsafe.Pointer(pTarget)).Foom != 0 { return int32(JSON_MERGE_OOM) } - libc.Xmemcpy(tls, (*TJsonParse)(unsafe.Pointer(pTarget)).FaBlob+uintptr(iTEnd), (*TJsonParse)(unsafe.Pointer(pPatch)).FaBlob+uintptr(iPLabel), uint64(szNew)) + libc.Xmemcpy(tls, (*TJsonParse)(unsafe.Pointer(pTarget)).FaBlob+uintptr(iTEnd), (*TJsonParse)(unsafe.Pointer(pPatch)).FaBlob+uintptr(iPLabel), uint64(uint64(szNew))) *(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pTarget)).FaBlob + uintptr(iTEnd+szNew))) = uint8(0x00) savedDelta1 = (*TJsonParse)(unsafe.Pointer(pTarget)).Fdelta (*TJsonParse)(unsafe.Pointer(pTarget)).Fdelta = 0 @@ -170138,7 +171904,7 @@ func _jsonPatchFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == int32(JSON_MERGE_OOM) { Xsqlite3_result_error_nomem(tls, ctx) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24940, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25063, -int32(1)) } } _jsonParseFree(tls, pPatch) @@ -170162,7 +171928,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { var _ /* jx at bp+0 */ TJsonString _, _, _ = i, n, z if argc&int32(1) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25106, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25235, -int32(1)) return } _jsonStringInit(tls, bp, ctx) @@ -170173,7 +171939,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { break } if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) != int32(SQLITE_TEXT) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25157, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25286, -int32(1)) _jsonStringReset(tls, bp) return } @@ -170245,7 +172011,7 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24940, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25063, -int32(1)) } } goto json_remove_done @@ -170258,9 +172024,11 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto json_remove_patherror json_remove_patherror: ; _jsonBadPathError(tls, ctx, zPath) + goto json_remove_done json_remove_done: ; _jsonParseFree(tls, p) @@ -170280,7 +172048,7 @@ func _jsonReplaceFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { return } if argc&int32(1) == 0 { - _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15800) + _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15893) return } _jsonInsertIntoBlob(tls, ctx, argc, argv, int32(JEDIT_REPL)) @@ -170311,9 +172079,9 @@ func _jsonSetFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { } if argc&int32(1) == 0 { if bIsSet != 0 { - v1 = __ccgo_ts + 25191 + v1 = __ccgo_ts + 25320 } else { - v1 = __ccgo_ts + 25195 + v1 = __ccgo_ts + 25324 } _jsonWrongNumArgs(tls, ctx, v1) return @@ -170361,7 +172129,7 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24940, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25063, -int32(1)) } } goto json_type_done @@ -170370,11 +172138,54 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { i = uint32(0) } Xsqlite3_result_text(tls, ctx, _jsonbType[int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(p)).FaBlob + uintptr(i))))&int32(0x0f)], -int32(1), libc.UintptrFromInt32(0)) + goto json_type_done json_type_done: ; _jsonParseFree(tls, p) } +// C documentation +// +// /* +// ** json_pretty(JSON) +// ** json_pretty(JSON, INDENT) +// ** +// ** Return text that is a pretty-printed rendering of the input JSON. +// ** If the argument is not valid JSON, return NULL. +// ** +// ** The INDENT argument is text that is used for indentation. If omitted, +// ** it defaults to four spaces (the same as PostgreSQL). +// */ +func _jsonPrettyFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { + bp := tls.Alloc(176) + defer tls.Free(176) + var v1 uintptr + var v2 bool + var _ /* s at bp+0 */ TJsonString + var _ /* x at bp+136 */ TJsonPretty + _, _ = v1, v2 /* Pretty printing context */ + libc.Xmemset(tls, bp+136, 0, uint64(32)) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse = _jsonParseFuncArg(tls, ctx, *(*uintptr)(unsafe.Pointer(argv)), uint32(0)) + if (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse == uintptr(0) { + return + } + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpOut = bp + _jsonStringInit(tls, bp, ctx) + if v2 = argc == int32(1); !v2 { + v1 = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = v1 + } + if v2 || v1 == uintptr(0) { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = __ccgo_ts + 25331 + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(4) + } else { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(libc.Xstrlen(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent)) + } + _jsonTranslateBlobToPrettyText(tls, bp+136, uint32(0)) + _jsonReturnString(tls, bp, uintptr(0), uintptr(0)) + _jsonParseFree(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse) +} + // C documentation // // /* @@ -170449,7 +172260,7 @@ func _jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if argc == int32(2) { f = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if f < int64(1) || f > int64(15) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25202, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25336, -int32(1)) return } flags = uint8(f & int64(0x0f)) @@ -170459,12 +172270,12 @@ func _jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { return case int32(SQLITE_BLOB): if _jsonFuncArgMightBeBinary(tls, *(*uintptr)(unsafe.Pointer(argv))) != 0 { - if int32(flags)&int32(0x04) != 0 { + if int32(int32(flags))&int32(0x04) != 0 { /* Superficial checking only - accomplished by the ** jsonFuncArgMightBeBinary() call above. */ res = uint8(1) } else { - if int32(flags)&int32(0x08) != 0 { + if int32(int32(flags))&int32(0x08) != 0 { libc.Xmemset(tls, bp, 0, uint64(72)) (*(*TJsonParse)(unsafe.Pointer(bp))).FaBlob = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(argv))) (*(*TJsonParse)(unsafe.Pointer(bp))).FnBlob = uint32(Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv)))) @@ -170476,7 +172287,7 @@ func _jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { } fallthrough default: - if int32(flags)&int32(0x3) == 0 { + if int32(int32(flags))&int32(0x3) == 0 { break } libc.Xmemset(tls, bp+72, 0, uint64(72)) @@ -170488,7 +172299,7 @@ func _jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if (*TJsonParse)(unsafe.Pointer(p)).FnErr != 0 { /* no-op */ } else { - if int32(flags)&int32(0x02) != 0 || int32((*TJsonParse)(unsafe.Pointer(p)).FhasNonstd) == 0 { + if int32(int32(flags))&int32(0x02) != 0 || int32((*TJsonParse)(unsafe.Pointer(p)).FhasNonstd) == 0 { res = uint8(1) } } @@ -170499,7 +172310,7 @@ func _jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { } break } - Xsqlite3_result_int(tls, ctx, int32(res)) + Xsqlite3_result_int(tls, ctx, int32(int32(res))) } // C documentation @@ -170638,7 +172449,7 @@ func _jsonArrayCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25259, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25393, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -170679,24 +172490,24 @@ func _jsonGroupInverse(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { z = (*TJsonString)(unsafe.Pointer(pStr)).FzBuf i = uint32(1) for { - if v3 = uint64(i) < (*TJsonString)(unsafe.Pointer(pStr)).FnUsed; v3 { + if v3 = uint64(uint64(i)) < (*TJsonString)(unsafe.Pointer(pStr)).FnUsed; v3 { v2 = *(*int8)(unsafe.Pointer(z + uintptr(i))) c = v2 } if !(v3 && (int32(v2) != int32(',') || inStr != 0 || nNest != 0)) { break } - if int32(c) == int32('"') { + if int32(int32(c)) == int32('"') { inStr = libc.BoolInt32(!(inStr != 0)) } else { - if int32(c) == int32('\\') { + if int32(int32(c)) == int32('\\') { i++ } else { if !(inStr != 0) { - if int32(c) == int32('{') || int32(c) == int32('[') { + if int32(int32(c)) == int32('{') || int32(int32(c)) == int32('[') { nNest++ } - if int32(c) == int32('}') || int32(c) == int32(']') { + if int32(int32(c)) == int32('}') || int32(int32(c)) == int32(']') { nNest-- } } @@ -170707,9 +172518,9 @@ func _jsonGroupInverse(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { ; i++ } - if uint64(i) < (*TJsonString)(unsafe.Pointer(pStr)).FnUsed { - *(*Tu64)(unsafe.Pointer(pStr + 24)) -= uint64(i) - libc.Xmemmove(tls, z+1, z+uintptr(i+uint32(1)), (*TJsonString)(unsafe.Pointer(pStr)).FnUsed-uint64(1)) + if uint64(uint64(i)) < (*TJsonString)(unsafe.Pointer(pStr)).FnUsed { + *(*Tu64)(unsafe.Pointer(pStr + 24)) -= uint64(uint64(i)) + libc.Xmemmove(tls, z+1, z+uintptr(i+uint32(1)), uint64((*TJsonString)(unsafe.Pointer(pStr)).FnUsed)-uint64(1)) *(*int8)(unsafe.Pointer(z + uintptr((*TJsonString)(unsafe.Pointer(pStr)).FnUsed))) = 0 } else { (*TJsonString)(unsafe.Pointer(pStr)).FnUsed = uint64(1) @@ -170787,7 +172598,7 @@ func _jsonObjectCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25262, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25396, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -170890,7 +172701,7 @@ func _jsonEachConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv _ = argv _ = argc _ = pAux - rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25265) + rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25399) if rc == SQLITE_OK { pNew = _sqlite3DbMallocZero(tls, db, uint64(32)) *(*uintptr)(unsafe.Pointer(ppVtab)) = pNew @@ -171024,7 +172835,7 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { var _ /* sz at bp+0 */ Tu32 _, _, _, _, _ = i, k, n, needQuote, z if int32((*TJsonEachCursor)(unsafe.Pointer(p)).FeType) == int32(JSONB_ARRAY) { - _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25348, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) + _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25482, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) } else { *(*Tu32)(unsafe.Pointer(bp)) = uint32(0) needQuote = 0 @@ -171050,9 +172861,9 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { } } if needQuote != 0 { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25355, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25489, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } else { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25363, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25497, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } } } @@ -171079,14 +172890,14 @@ func _jsonEachNext(tls *libc.TLS, cur uintptr) (r int32) { i = uint32(_jsonSkipLabel(tls, p)) x = uint8(int32(*(*Tu8)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FsParse.FaBlob + uintptr(i)))) & int32(0x0f)) n = _jsonbPayloadSize(tls, p+192, i, bp) - if int32(x) == int32(JSONB_OBJECT) || int32(x) == int32(JSONB_ARRAY) { + if int32(int32(x)) == int32(JSONB_OBJECT) || int32(int32(x)) == int32(JSONB_ARRAY) { if (*TJsonEachCursor)(unsafe.Pointer(p)).FnParent >= (*TJsonEachCursor)(unsafe.Pointer(p)).FnParentAlloc { nNew = uint64((*TJsonEachCursor)(unsafe.Pointer(p)).FnParentAlloc*uint32(2) + uint32(3)) pNew = _sqlite3DbRealloc(tls, (*TJsonEachCursor)(unsafe.Pointer(p)).Fdb, (*TJsonEachCursor)(unsafe.Pointer(p)).FaParent, uint64(24)*nNew) if pNew == uintptr(0) { return int32(SQLITE_NOMEM) } - (*TJsonEachCursor)(unsafe.Pointer(p)).FnParentAlloc = uint32(nNew) + (*TJsonEachCursor)(unsafe.Pointer(p)).FnParentAlloc = uint32(uint32(nNew)) (*TJsonEachCursor)(unsafe.Pointer(p)).FaParent = pNew } levelChange = uint8(1) @@ -171166,7 +172977,7 @@ func _jsonEachPathLength(tls *libc.TLS, p uintptr) (r int32) { } } } - return int32(n) + return int32(int32(n)) } // C documentation @@ -171241,7 +173052,7 @@ func _jsonEachColumn(tls *libc.TLS, cur uintptr, ctx uintptr, iColumn int32) (r (*TJsonEachCursor)(unsafe.Pointer(p)).Fpath.FnUsed = nBase case int32(JEACH_PATH): n1 = uint32(_jsonEachPathLength(tls, p)) - Xsqlite3_result_text64(tls, ctx, (*TJsonEachCursor)(unsafe.Pointer(p)).Fpath.FzBuf, uint64(n1), uintptr(-libc.Int32FromInt32(1)), uint8(SQLITE_UTF8)) + Xsqlite3_result_text64(tls, ctx, (*TJsonEachCursor)(unsafe.Pointer(p)).Fpath.FzBuf, uint64(uint64(n1)), uintptr(-libc.Int32FromInt32(1)), uint8(SQLITE_UTF8)) default: Xsqlite3_result_text(tls, ctx, (*TJsonEachCursor)(unsafe.Pointer(p)).Fpath.FzBuf, int32((*TJsonEachCursor)(unsafe.Pointer(p)).FnRoot), libc.UintptrFromInt32(0)) case int32(JEACH_JSON): @@ -171438,7 +173249,7 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a i = v5 (*TJsonEachCursor)(unsafe.Pointer(p)).FeType = uint8(0) (*TJsonEachCursor)(unsafe.Pointer(p)).FnRoot = uint32(1) - _jsonAppendRaw(tls, p+56, __ccgo_ts+25369, uint32(1)) + _jsonAppendRaw(tls, p+56, __ccgo_ts+25503, uint32(1)) } (*TJsonEachCursor)(unsafe.Pointer(p)).FnParent = uint32(0) n = _jsonbPayloadSize(tls, p+192, i, bp) @@ -171458,10 +173269,11 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent))).FiValue = i } return SQLITE_OK + goto json_each_malformed_input json_each_malformed_input: ; Xsqlite3_free(tls, (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg) - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24940, 0) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25063, 0) _jsonEachCursorReset(tls, p) if (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg != 0 { v6 = int32(SQLITE_ERROR) @@ -171515,183 +173327,193 @@ func init() { // ** Register JSON functions. // */ func _sqlite3RegisterJsonFunctions(tls *libc.TLS) { - _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2304)/libc.Uint64FromInt64(72))) + _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2448)/libc.Uint64FromInt64(72))) } -var _aJsonFunc = [32]TFuncDef{ +var _aJsonFunc = [34]TFuncDef{ 0: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25371, + FzName: __ccgo_ts + 25505, }, 1: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25376, + FzName: __ccgo_ts + 25510, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25382, + FzName: __ccgo_ts + 25516, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25393, + FzName: __ccgo_ts + 25527, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25405, + FzName: __ccgo_ts + 25539, }, 5: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25405, + FzName: __ccgo_ts + 25539, }, 6: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25423, + FzName: __ccgo_ts + 25557, }, 7: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25443, + FzName: __ccgo_ts + 25577, }, 8: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25456, + FzName: __ccgo_ts + 25590, }, 9: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_JSON) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25470, + FzName: __ccgo_ts + 25604, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_SQL) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25473, + FzName: __ccgo_ts + 25607, }, 11: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25477, + FzName: __ccgo_ts + 25611, }, 12: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25489, + FzName: __ccgo_ts + 25623, }, 13: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25502, + FzName: __ccgo_ts + 25636, }, 14: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25514, + FzName: __ccgo_ts + 25648, }, 15: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25527, + FzName: __ccgo_ts + 25661, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25538, + FzName: __ccgo_ts + 25672, }, 17: { FnArg: int8(1), - FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25550, + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25684, }, 18: { + FnArg: int8(2), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25684, + }, + 19: { + FnArg: int8(1), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25696, + }, + 20: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25561, + FzName: __ccgo_ts + 25707, }, - 19: { + 21: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25573, + FzName: __ccgo_ts + 25719, }, - 20: { + 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25586, + FzName: __ccgo_ts + 25732, }, - 21: { + 23: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25599, + FzName: __ccgo_ts + 25745, }, - 22: { + 24: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25613, + FzName: __ccgo_ts + 25759, }, - 23: { + 25: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25622, + FzName: __ccgo_ts + 25768, }, - 24: { + 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25632, + FzName: __ccgo_ts + 25778, }, - 25: { + 27: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25632, + FzName: __ccgo_ts + 25778, }, - 26: { + 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25642, + FzName: __ccgo_ts + 25788, }, - 27: { + 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25642, + FzName: __ccgo_ts + 25788, }, - 28: { + 30: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25653, + FzName: __ccgo_ts + 25799, }, - 29: { + 31: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25670, + FzName: __ccgo_ts + 25816, }, - 30: { + 32: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25688, + FzName: __ccgo_ts + 25834, }, - 31: { + 33: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25706, + FzName: __ccgo_ts + 25852, }, } @@ -171714,33 +173536,35 @@ func init() { *(*uintptr)(unsafe.Add(p, 1032)) = __ccgo_fp(_jsonObjectFunc) *(*uintptr)(unsafe.Add(p, 1104)) = __ccgo_fp(_jsonPatchFunc) *(*uintptr)(unsafe.Add(p, 1176)) = __ccgo_fp(_jsonPatchFunc) - *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonQuoteFunc) - *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2048)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2056)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2064)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2120)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2128)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2136)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonQuoteFunc) + *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2208)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2280)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2328)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2336)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2344)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2352)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2400)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2408)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2416)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2424)) = __ccgo_fp(_jsonGroupInverse) } // C documentation @@ -171755,7 +173579,7 @@ func _sqlite3JsonTableFunctions(tls *libc.TLS, db uintptr) (r int32) { rc = SQLITE_OK i = uint32(0) for { - if !(uint64(i) < libc.Uint64FromInt64(32)/libc.Uint64FromInt64(16) && rc == SQLITE_OK) { + if !(uint64(uint64(i)) < libc.Uint64FromInt64(32)/libc.Uint64FromInt64(16) && rc == SQLITE_OK) { break } rc = Xsqlite3_create_module(tls, db, _aMod[i].FzName, _aMod[i].FpModule, uintptr(0)) @@ -171772,11 +173596,11 @@ var _aMod = [2]struct { FpModule uintptr }{ 0: { - FzName: __ccgo_ts + 25725, + FzName: __ccgo_ts + 25871, FpModule: uintptr(unsafe.Pointer(&_jsonEachModule)), }, 1: { - FzName: __ccgo_ts + 25735, + FzName: __ccgo_ts + 25881, FpModule: uintptr(unsafe.Pointer(&_jsonTreeModule)), }, } @@ -172225,7 +174049,7 @@ func _readInt64(tls *libc.TLS, p uintptr) (r Ti64) { defer tls.Free(16) var _ /* x at bp+0 */ Tu64 libc.Xmemcpy(tls, bp, p, uint64(8)) - return int64(libc.X__builtin_bswap64(tls, *(*Tu64)(unsafe.Pointer(bp)))) + return int64(libc.X__builtin_bswap64(tls, uint64(*(*Tu64)(unsafe.Pointer(bp))))) } // C documentation @@ -172253,7 +174077,7 @@ func _writeInt64(tls *libc.TLS, p uintptr, _i Ti64) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) *(*Ti64)(unsafe.Pointer(bp)) = _i - *(*Ti64)(unsafe.Pointer(bp)) = int64(libc.X__builtin_bswap64(tls, uint64(*(*Ti64)(unsafe.Pointer(bp))))) + *(*Ti64)(unsafe.Pointer(bp)) = int64(libc.X__builtin_bswap64(tls, uint64(uint64(*(*Ti64)(unsafe.Pointer(bp)))))) libc.Xmemcpy(tls, p, bp, uint64(8)) return int32(8) } @@ -172286,7 +174110,7 @@ func _nodeZero(tls *libc.TLS, pRtree uintptr, p uintptr) { // ** in the Rtree.aHash table. // */ func _nodeHash(tls *libc.TLS, iNode Ti64) (r uint32) { - return uint32(iNode) % uint32(HASHSIZE) + return uint32(uint32(iNode)) % uint32(HASHSIZE) } // C documentation @@ -172359,7 +174183,7 @@ func _nodeHashDelete(tls *libc.TLS, pRtree uintptr, pNode uintptr) { func _nodeNew(tls *libc.TLS, pRtree uintptr, pParent uintptr) (r uintptr) { var pNode uintptr _ = pNode - pNode = Xsqlite3_malloc64(tls, uint64(40)+uint64((*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) + pNode = Xsqlite3_malloc64(tls, uint64(uint64(40)+uint64((*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize))) if pNode != 0 { libc.Xmemset(tls, pNode, 0, uint64(40)+uint64((*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) (*TRtreeNode)(unsafe.Pointer(pNode)).FzData = pNode + 1*40 @@ -172422,7 +174246,7 @@ func _nodeAcquire(tls *libc.TLS, pRtree uintptr, iNode Ti64, pParent uintptr, pp } } if (*TRtree)(unsafe.Pointer(pRtree)).FpNodeBlob == uintptr(0) { - rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25745, iNode, 0, pRtree+112) + rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25891, iNode, 0, pRtree+112) } if rc != 0 { *(*uintptr)(unsafe.Pointer(ppNode)) = uintptr(0) @@ -172433,7 +174257,7 @@ func _nodeAcquire(tls *libc.TLS, pRtree uintptr, iNode Ti64, pParent uintptr, pp } } else { if (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize == Xsqlite3_blob_bytes(tls, (*TRtree)(unsafe.Pointer(pRtree)).FpNodeBlob) { - pNode = Xsqlite3_malloc64(tls, uint64(40)+uint64((*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) + pNode = Xsqlite3_malloc64(tls, uint64(uint64(40)+uint64((*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize))) if !(pNode != 0) { rc = int32(SQLITE_NOMEM) } else { @@ -172525,7 +174349,7 @@ func _nodeDeleteCell(tls *libc.TLS, pRtree uintptr, pNode uintptr, iCell int32) pDst = (*TRtreeNode)(unsafe.Pointer(pNode)).FzData + uintptr(int32(4)+int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*iCell) pSrc = pDst + uintptr((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell) nByte = (_readInt16(tls, (*TRtreeNode)(unsafe.Pointer(pNode)).FzData+2) - iCell - int32(1)) * int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell) - libc.Xmemmove(tls, pDst, pSrc, uint64(nByte)) + libc.Xmemmove(tls, pDst, pSrc, uint64(uint64(nByte))) _writeInt16(tls, (*TRtreeNode)(unsafe.Pointer(pNode)).FzData+2, _readInt16(tls, (*TRtreeNode)(unsafe.Pointer(pNode)).FzData+2)-int32(1)) (*TRtreeNode)(unsafe.Pointer(pNode)).FisDirty = int32(1) } @@ -172727,7 +174551,7 @@ func _rtreeDestroy(tls *libc.TLS, pVtab uintptr) (r int32) { var rc int32 _, _, _ = pRtree, rc, zCreate pRtree = pVtab - zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25750, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25896, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if !(zCreate != 0) { rc = int32(SQLITE_NOMEM) } else { @@ -173264,7 +175088,7 @@ func _rtreeEnqueue(tls *libc.TLS, pCur uintptr, rScore TRtreeDValue, iLevel Tu8) _, _, _, _, _, _, _ = i, j, nNew, pNew, pParent, v1, v2 if (*TRtreeCursor)(unsafe.Pointer(pCur)).FnPoint >= (*TRtreeCursor)(unsafe.Pointer(pCur)).FnPointAlloc { nNew = (*TRtreeCursor)(unsafe.Pointer(pCur)).FnPointAlloc*int32(2) + int32(8) - pNew = Xsqlite3_realloc64(tls, (*TRtreeCursor)(unsafe.Pointer(pCur)).FaPoint, uint64(nNew)*uint64(24)) + pNew = Xsqlite3_realloc64(tls, (*TRtreeCursor)(unsafe.Pointer(pCur)).FaPoint, uint64(uint64(uint64(nNew))*uint64(24))) if pNew == uintptr(0) { return uintptr(0) } @@ -173303,13 +175127,13 @@ func _rtreeSearchPointNew(tls *libc.TLS, pCur uintptr, rScore TRtreeDValue, iLev _, _, _ = ii, pFirst, pNew pFirst = _rtreeSearchPointFirst(tls, pCur) *(*Tu32)(unsafe.Pointer(pCur + 128 + uintptr(iLevel)*4))++ - if pFirst == uintptr(0) || (*TRtreeSearchPoint)(unsafe.Pointer(pFirst)).FrScore > rScore || (*TRtreeSearchPoint)(unsafe.Pointer(pFirst)).FrScore == rScore && int32((*TRtreeSearchPoint)(unsafe.Pointer(pFirst)).FiLevel) > int32(iLevel) { + if pFirst == uintptr(0) || (*TRtreeSearchPoint)(unsafe.Pointer(pFirst)).FrScore > rScore || (*TRtreeSearchPoint)(unsafe.Pointer(pFirst)).FrScore == rScore && int32((*TRtreeSearchPoint)(unsafe.Pointer(pFirst)).FiLevel) > int32(int32(iLevel)) { if (*TRtreeCursor)(unsafe.Pointer(pCur)).FbPoint != 0 { pNew = _rtreeEnqueue(tls, pCur, rScore, iLevel) if pNew == uintptr(0) { return uintptr(0) } - ii = int32((int64(pNew)-int64((*TRtreeCursor)(unsafe.Pointer(pCur)).FaPoint))/24) + int32(1) + ii = int32((int64(int64(pNew))-int64((*TRtreeCursor)(unsafe.Pointer(pCur)).FaPoint))/24) + int32(1) if ii < int32(RTREE_CACHE_SZ) { *(*uintptr)(unsafe.Pointer(pCur + 88 + uintptr(ii)*8)) = *(*uintptr)(unsafe.Pointer(pCur + 88)) } else { @@ -173644,11 +175468,11 @@ func _findLeafNode(tls *libc.TLS, pRtree uintptr, iRowid Ti64, ppLeaf uintptr, p func _deserializeGeometry(tls *libc.TLS, pValue uintptr, pCons uintptr) (r int32) { var pBlob, pInfo, pSrc uintptr _, _, _ = pBlob, pInfo, pSrc /* Callback information */ - pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25832) + pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25978) if pSrc == uintptr(0) { return int32(SQLITE_ERROR) } - pInfo = Xsqlite3_malloc64(tls, uint64(112)+uint64((*TRtreeMatchArg)(unsafe.Pointer(pSrc)).FiSize)) + pInfo = Xsqlite3_malloc64(tls, uint64(uint64(112)+uint64((*TRtreeMatchArg)(unsafe.Pointer(pSrc)).FiSize))) if !(pInfo != 0) { return int32(SQLITE_NOMEM) } @@ -173699,7 +175523,7 @@ func _rtreeFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintp iRowid = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) *(*Ti64)(unsafe.Pointer(bp + 24)) = 0 eType = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv))) - if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv))) == float64(iRowid) { + if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && 0 == _sqlite3IntFloatCompare(tls, iRowid, Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))) { rc = _findLeafNode(tls, pRtree, iRowid, bp+16, bp+24) } else { rc = SQLITE_OK @@ -173722,12 +175546,12 @@ func _rtreeFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintp */ rc = _nodeAcquire(tls, pRtree, int64(1), uintptr(0), bp) if rc == SQLITE_OK && argc > 0 { - (*TRtreeCursor)(unsafe.Pointer(pCsr)).FaConstraint = Xsqlite3_malloc64(tls, uint64(24)*uint64(argc)) + (*TRtreeCursor)(unsafe.Pointer(pCsr)).FaConstraint = Xsqlite3_malloc64(tls, uint64(uint64(24)*uint64(uint64(argc)))) (*TRtreeCursor)(unsafe.Pointer(pCsr)).FnConstraint = argc if !((*TRtreeCursor)(unsafe.Pointer(pCsr)).FaConstraint != 0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, (*TRtreeCursor)(unsafe.Pointer(pCsr)).FaConstraint, 0, uint64(24)*uint64(argc)) + libc.Xmemset(tls, (*TRtreeCursor)(unsafe.Pointer(pCsr)).FaConstraint, 0, uint64(24)*uint64(uint64(argc))) libc.Xmemset(tls, pCsr+128, 0, uint64(4)*uint64((*TRtree)(unsafe.Pointer(pRtree)).FiDepth+libc.Int32FromInt32(1))) ii = 0 for { @@ -173753,7 +175577,7 @@ func _rtreeFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintp } else { if eType1 == int32(SQLITE_INTEGER) { iVal = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8))) - *(*TRtreeDValue)(unsafe.Pointer(p1 + 8)) = float64(iVal) + *(*TRtreeDValue)(unsafe.Pointer(p1 + 8)) = float64(float64(iVal)) if iVal >= libc.Int64FromInt32(1)<> (iIdx / int32(2)) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromFloat64(6) * float64(nRow) + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromFloat64(6) * float64(float64(nRow)) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = nRow return rc } @@ -174394,7 +176218,7 @@ func _SortByDimension(tls *libc.TLS, pRtree uintptr, aIdx uintptr, nIdx int32, i aRight = aIdx + uintptr(nLeft)*4 _SortByDimension(tls, pRtree, aLeft, nLeft, iDim, aCell, aSpare) _SortByDimension(tls, pRtree, aRight, nRight, iDim, aCell, aSpare) - libc.Xmemcpy(tls, aSpare, aLeft, uint64(4)*uint64(nLeft)) + libc.Xmemcpy(tls, aSpare, aLeft, uint64(4)*uint64(uint64(nLeft))) aLeft = aSpare for iLeft < nLeft || iRight < nRight { if int32((*TRtree)(unsafe.Pointer(pRtree)).FeCoordType) == RTREE_COORD_REAL32 { @@ -174450,13 +176274,13 @@ func _splitNodeStartree(tls *libc.TLS, pRtree uintptr, aCell uintptr, nCell int3 iBestDim = 0 iBestSplit = 0 fBestMargin = float64(0) - nByte = int64(uint64(int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim)+libc.Int32FromInt32(1)) * (uint64(8) + uint64(nCell)*uint64(4))) - aaSorted = Xsqlite3_malloc64(tls, uint64(nByte)) + nByte = int64(uint64(int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim)+libc.Int32FromInt32(1)) * (uint64(8) + uint64(uint64(nCell))*uint64(4))) + aaSorted = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) if !(aaSorted != 0) { return int32(SQLITE_NOMEM) } aSpare = aaSorted + uintptr((*TRtree)(unsafe.Pointer(pRtree)).FnDim)*8 + uintptr(int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim)*nCell)*4 - libc.Xmemset(tls, aaSorted, 0, uint64(nByte)) + libc.Xmemset(tls, aaSorted, 0, uint64(uint64(nByte))) ii = 0 for { if !(ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim)) { @@ -174621,7 +176445,7 @@ func _SplitNode(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iHe /* Allocate an array and populate it with a copy of pCell and ** all cells from node pLeft. Then zero the original node. */ - aCell = Xsqlite3_malloc64(tls, (libc.Uint64FromInt64(48)+libc.Uint64FromInt64(4))*uint64(nCell+libc.Int32FromInt32(1))) + aCell = Xsqlite3_malloc64(tls, uint64((libc.Uint64FromInt64(48)+libc.Uint64FromInt64(4))*uint64(nCell+libc.Int32FromInt32(1)))) if !(aCell != 0) { rc = int32(SQLITE_NOMEM) goto splitnode_out @@ -174749,6 +176573,7 @@ func _SplitNode(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iHe rc = _nodeRelease(tls, pRtree, pLeft) pLeft = uintptr(0) } + goto splitnode_out splitnode_out: ; _nodeRelease(tls, pRtree, pRight) @@ -174856,7 +176681,7 @@ func _removeNode(tls *libc.TLS, pRtree uintptr, pNode uintptr, iHeight int32) (r ** the Rtree.pDeleted list. Its contents will be re-inserted later on. */ _nodeHashDelete(tls, pRtree, pNode) - (*TRtreeNode)(unsafe.Pointer(pNode)).FiNode = int64(iHeight) + (*TRtreeNode)(unsafe.Pointer(pNode)).FiNode = int64(int64(iHeight)) (*TRtreeNode)(unsafe.Pointer(pNode)).FpNext = (*TRtree)(unsafe.Pointer(pRtree)).FpDeleted (*TRtreeNode)(unsafe.Pointer(pNode)).FnRef++ (*TRtree)(unsafe.Pointer(pRtree)).FpDeleted = pNode @@ -175126,8 +176951,8 @@ func _rtreeValueDown(tls *libc.TLS, v uintptr) (r TRtreeValue) { var f float32 _, _, _ = d, f, v1 d = Xsqlite3_value_double(tls, v) - f = float32(d) - if float64(f) > d { + f = float32(float32(d)) + if float64(float64(f)) > d { if d < libc.Float64FromInt32(0) { v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { @@ -175143,8 +176968,8 @@ func _rtreeValueUp(tls *libc.TLS, v uintptr) (r TRtreeValue) { var f float32 _, _, _ = d, f, v1 d = Xsqlite3_value_double(tls, v) - f = float32(d) - if float64(f) < d { + f = float32(float32(d)) + if float64(float64(f)) < d { if d < libc.Float64FromInt32(0) { v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { @@ -175178,7 +177003,7 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) var _ /* pStmt at bp+0 */ uintptr _, _, _, _, _, _ = rc, zCol, zCol1, zCol2, zSql, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25846, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25992, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if zSql != 0 { rc = Xsqlite3_prepare_v2(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, -int32(1), bp, uintptr(0)) } else { @@ -175188,11 +177013,11 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) if rc == SQLITE_OK { if iCol == 0 { zCol = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25866, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26012, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) } else { zCol1 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol) zCol2 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol+int32(1)) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25898, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26044, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) } } Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -175354,6 +177179,7 @@ func _rtreeUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pRow rc = Xsqlite3_reset(tls, pUp) } } + goto constraint constraint: ; _rtreeRelease(tls, pRtree) @@ -175405,7 +177231,7 @@ func _rtreeRename(tls *libc.TLS, pVtab uintptr, zNewName uintptr) (r int32) { _, _, _ = pRtree, rc, zSql pRtree = pVtab rc = int32(SQLITE_NOMEM) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25935, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26081, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) if zSql != 0 { _nodeBlobReset(tls, pRtree) rc = Xsqlite3_exec(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, uintptr(0), uintptr(0), uintptr(0)) @@ -175459,9 +177285,9 @@ func _rtreeQueryStat1(tls *libc.TLS, db uintptr, pRtree uintptr) (r int32) { var v2 int64 var _ /* p at bp+0 */ uintptr _, _, _, _, _, _ = nRow, rc, zFmt, zSql, v1, v2 - zFmt = __ccgo_ts + 26080 + zFmt = __ccgo_ts + 26226 nRow = int64(RTREE_MIN_ROWEST) - rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11586, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11711, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc != SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FnRowEst = int64(RTREE_DEFAULT_ROWEST) if rc == int32(SQLITE_ERROR) { @@ -175504,7 +177330,7 @@ func _rtreeShadowName(tls *libc.TLS, zName uintptr) (r int32) { _ = i i = uint32(0) for { - if !(uint64(i) < libc.Uint64FromInt64(24)/libc.Uint64FromInt64(8)) { + if !(uint64(uint64(i)) < libc.Uint64FromInt64(24)/libc.Uint64FromInt64(8)) { break } if Xsqlite3_stricmp(tls, zName, _azName1[i]) == 0 { @@ -175519,9 +177345,9 @@ func _rtreeShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName1 = [3]uintptr{ - 0: __ccgo_ts + 26136, - 1: __ccgo_ts + 5488, - 2: __ccgo_ts + 16698, + 0: __ccgo_ts + 26282, + 1: __ccgo_ts + 5552, + 2: __ccgo_ts + 16785, } var _rtreeModule = Tsqlite3_module{ @@ -175565,21 +177391,21 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref (*TRtree)(unsafe.Pointer(pRtree)).Fdb = db if isCreate != 0 { p = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26550, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26696, libc.VaList(bp+8, zDb, zPrefix)) ii = 0 for { if !(ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26612, libc.VaList(bp+8, ii)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26758, libc.VaList(bp+8, ii)) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26617, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26681, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26751, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26763, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26827, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26897, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) zCreate = Xsqlite3_str_finish(tls, p) if !(zCreate != 0) { return int32(SQLITE_NOMEM) @@ -175609,11 +177435,11 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } else { /* An UPSERT is very slightly slower than REPLACE, but it is needed ** if there are auxiliary columns */ - zFormat = __ccgo_ts + 26800 + zFormat = __ccgo_ts + 26946 } zSql = Xsqlite3_mprintf(tls, zFormat, libc.VaList(bp+8, zDb, zPrefix)) if zSql != 0 { - rc = Xsqlite3_prepare_v3(tls, db, zSql, -int32(1), uint32(f), appStmt[i], uintptr(0)) + rc = Xsqlite3_prepare_v3(tls, db, zSql, -int32(1), uint32(uint32(f)), appStmt[i], uintptr(0)) } else { rc = int32(SQLITE_NOMEM) } @@ -175624,36 +177450,36 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref i++ } if (*TRtree)(unsafe.Pointer(pRtree)).FnAux != 0 && rc != int32(SQLITE_NOMEM) { - (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+26908, libc.VaList(bp+8, zDb, zPrefix)) + (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+27054, libc.VaList(bp+8, zDb, zPrefix)) if (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { p1 = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26953, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27099, libc.VaList(bp+8, zDb, zPrefix)) ii1 = 0 for { if !(ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } if ii1 != 0 { - Xsqlite3_str_append(tls, p1, __ccgo_ts+13094, int32(1)) + Xsqlite3_str_append(tls, p1, __ccgo_ts+13219, int32(1)) } if ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull) { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26980, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27126, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) } else { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27002, libc.VaList(bp+8, ii1, ii1+int32(2))) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27148, libc.VaList(bp+8, ii1, ii1+int32(2))) } goto _3 _3: ; ii1++ } - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27010, 0) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27156, 0) zSql1 = Xsqlite3_str_finish(tls, p1) if zSql1 == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - rc = Xsqlite3_prepare_v3(tls, db, zSql1, -int32(1), uint32(f), pRtree+184, uintptr(0)) + rc = Xsqlite3_prepare_v3(tls, db, zSql1, -int32(1), uint32(uint32(f)), pRtree+184, uintptr(0)) Xsqlite3_free(tls, zSql1) } } @@ -175662,14 +177488,14 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } var _azSql = [8]uintptr{ - 0: __ccgo_ts + 26141, - 1: __ccgo_ts + 26194, - 2: __ccgo_ts + 26239, - 3: __ccgo_ts + 26291, - 4: __ccgo_ts + 26345, - 5: __ccgo_ts + 26390, - 6: __ccgo_ts + 26448, - 7: __ccgo_ts + 26503, + 0: __ccgo_ts + 26287, + 1: __ccgo_ts + 26340, + 2: __ccgo_ts + 26385, + 3: __ccgo_ts + 26437, + 4: __ccgo_ts + 26491, + 5: __ccgo_ts + 26536, + 6: __ccgo_ts + 26594, + 7: __ccgo_ts + 26649, } // C documentation @@ -175727,7 +177553,7 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE _, _ = rc, zSql if isCreate != 0 { *(*int32)(unsafe.Pointer(bp)) = 0 - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27026, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27172, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) rc = _getIntFromStmt(tls, db, zSql, bp) if rc == SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = *(*int32)(unsafe.Pointer(bp)) - int32(64) @@ -175735,17 +177561,17 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = int32(4) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*int32(RTREE_MAXCELLS) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } } else { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27046, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27192, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) rc = _getIntFromStmt(tls, db, zSql, pRtree+32) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } else { if (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize < libc.Int32FromInt32(512)-libc.Int32FromInt32(64) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< libc.Int32FromInt32(RTREE_MAX_AUX_COLUMN)+libc.Int32FromInt32(3) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) return int32(SQLITE_ERROR) } Xsqlite3_vtab_config(tls, db, int32(SQLITE_VTAB_CONSTRAINT_SUPPORT), libc.VaList(bp+8, int32(1))) @@ -175808,27 +177634,27 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt /* Allocate the sqlite3_vtab structure */ nDb = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))) nName = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8)))) - pRtree = Xsqlite3_malloc64(tls, uint64(968)+uint64(nDb)+uint64(nName*int32(2))+uint64(8)) + pRtree = Xsqlite3_malloc64(tls, uint64(uint64(968)+uint64(uint64(nDb))+uint64(nName*int32(2))+uint64(8))) if !(pRtree != 0) { return int32(SQLITE_NOMEM) } - libc.Xmemset(tls, pRtree, 0, uint64(968)+uint64(nDb)+uint64(nName*int32(2))+uint64(8)) + libc.Xmemset(tls, pRtree, 0, uint64(968)+uint64(uint64(nDb))+uint64(nName*int32(2))+uint64(8)) (*TRtree)(unsafe.Pointer(pRtree)).FnBusy = uint32(1) (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FpModule = uintptr(unsafe.Pointer(&_rtreeModule)) (*TRtree)(unsafe.Pointer(pRtree)).FzDb = pRtree + 1*968 (*TRtree)(unsafe.Pointer(pRtree)).FzName = (*TRtree)(unsafe.Pointer(pRtree)).FzDb + uintptr(nDb+int32(1)) (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName = (*TRtree)(unsafe.Pointer(pRtree)).FzName + uintptr(nName+int32(1)) - (*TRtree)(unsafe.Pointer(pRtree)).FeCoordType = uint8(eCoordType) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27289, uint64(6)) + (*TRtree)(unsafe.Pointer(pRtree)).FeCoordType = uint8(uint8(eCoordType)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(uint64(nDb))) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(uint64(nName))) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(uint64(nName))) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27435, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27295, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27441, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) ii = int32(4) for { if !(ii < argc) { @@ -175837,7 +177663,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt zArg = *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)) if int32(*(*int8)(unsafe.Pointer(zArg))) == int32('+') { (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27319, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27465, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) } else { if int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux) > 0 { break @@ -175851,19 +177677,19 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27346, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27492, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) } else { if ii < argc { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, aErrMsg[int32(4)])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, aErrMsg[int32(4)])) rc = int32(SQLITE_ERROR) } else { v3 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v3 if SQLITE_OK != v3 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } } @@ -175886,7 +177712,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } } if iErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, aErrMsg[iErr])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, aErrMsg[iErr])) goto rtreeInit_fail } (*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell = uint8(int32(8) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)*int32(4)) @@ -175897,11 +177723,12 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto rtreeInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto rtreeInit_fail rtreeInit_fail: ; if rc == SQLITE_OK { @@ -175912,8 +177739,8 @@ rtreeInit_fail: } var _azFormat = [2]uintptr{ - 0: __ccgo_ts + 27325, - 1: __ccgo_ts + 27336, + 0: __ccgo_ts + 27471, + 1: __ccgo_ts + 27482, } // C documentation @@ -175971,21 +177798,21 @@ func _rtreenode(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { } _nodeGetCell(tls, bp+40, bp, ii, bp+1008) if ii > 0 { - Xsqlite3_str_append(tls, pOut, __ccgo_ts+11206, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+11331, int32(1)) } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27349, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27495, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) jj = 0 for { if !(jj < int32((*(*TRtree)(unsafe.Pointer(bp + 40))).FnDim2)) { break } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27355, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27501, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) goto _2 _2: ; jj++ } - Xsqlite3_str_append(tls, pOut, __ccgo_ts+27359, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+27505, int32(1)) goto _1 _1: ; @@ -176012,7 +177839,7 @@ func _rtreedepth(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { _ = zBlob _ = nArg if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apArg))) != int32(SQLITE_BLOB) || Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(apArg))) < int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+27361, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+27507, -int32(1)) } else { zBlob = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(apArg))) if zBlob != 0 { @@ -176130,11 +177957,11 @@ func _rtreeCheckAppendMsg(tls *libc.TLS, pCheck uintptr, zFmt uintptr, va uintpt (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } else { if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport != 0 { - v1 = __ccgo_ts + 4207 + v1 = __ccgo_ts + 4271 } else { - v1 = __ccgo_ts + 1652 + v1 = __ccgo_ts + 1666 } - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27394, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27540, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport == uintptr(0) { (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } @@ -176168,24 +177995,24 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt _, _, _ = nNode, pNode, pRet pRet = uintptr(0) /* Return value */ if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode == uintptr(0) { - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27401, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27547, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) } if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { Xsqlite3_bind_int64(tls, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, int32(1), iNode) if Xsqlite3_step(tls, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode) == int32(SQLITE_ROW) { nNode = Xsqlite3_column_bytes(tls, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, 0) pNode = Xsqlite3_column_blob(tls, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, 0) - pRet = Xsqlite3_malloc64(tls, uint64(nNode)) + pRet = Xsqlite3_malloc64(tls, uint64(uint64(nNode))) if pRet == uintptr(0) { (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } else { - libc.Xmemcpy(tls, pRet, pNode, uint64(nNode)) + libc.Xmemcpy(tls, pRet, pNode, uint64(uint64(nNode))) *(*int32)(unsafe.Pointer(pnNode)) = nNode } } _rtreeCheckReset(tls, pCheck, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && pRet == uintptr(0) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27446, libc.VaList(bp+8, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27592, libc.VaList(bp+8, iNode)) } } return pRet @@ -176214,8 +178041,8 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i var rc int32 _, _, _, _, _, _ = azSql, ii, pStmt, rc, v1, v2 azSql = [2]uintptr{ - 0: __ccgo_ts + 27478, - 1: __ccgo_ts + 27532, + 0: __ccgo_ts + 27624, + 1: __ccgo_ts + 27678, } if *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) = _rtreeCheckPrepare(tls, pCheck, azSql[bLeaf], libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) @@ -176228,21 +178055,21 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i rc = Xsqlite3_step(tls, pStmt) if rc == int32(SQLITE_DONE) { if bLeaf != 0 { - v1 = __ccgo_ts + 27580 + v1 = __ccgo_ts + 27726 } else { - v1 = __ccgo_ts + 27588 + v1 = __ccgo_ts + 27734 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27597, libc.VaList(bp+8, iKey, iVal, v1)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27743, libc.VaList(bp+8, iKey, iVal, v1)) } else { if rc == int32(SQLITE_ROW) { ii = Xsqlite3_column_int64(tls, pStmt, 0) if ii != iVal { if bLeaf != 0 { - v2 = __ccgo_ts + 27580 + v2 = __ccgo_ts + 27726 } else { - v2 = __ccgo_ts + 27588 + v2 = __ccgo_ts + 27734 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27642, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27788, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) } } } @@ -176287,7 +178114,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 v2 = libc.BoolInt32(*(*TRtreeValue)(unsafe.Pointer(bp)) > *(*TRtreeValue)(unsafe.Pointer(bp + 4))) } if v2 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27700, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27846, libc.VaList(bp+24, i, iCell, iNode)) } if pParent != 0 { _readCoord(tls, pParent+uintptr(libc.Int32FromInt32(4)*libc.Int32FromInt32(2)*i), bp+8) @@ -176305,7 +178132,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 } } if v5 || v4 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27748, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27894, libc.VaList(bp+24, i, iCell, iNode)) } } goto _1 @@ -176338,19 +178165,19 @@ func _rtreeCheckNode(tls *libc.TLS, pCheck uintptr, iDepth int32, aParent uintpt aNode = _rtreeCheckGetNode(tls, pCheck, iNode, bp) if aNode != 0 { if *(*int32)(unsafe.Pointer(bp)) < int32(4) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27815, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27961, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) } else { /* Used to iterate through cells */ if aParent == uintptr(0) { iDepth = _readInt16(tls, aNode) if iDepth > int32(RTREE_MAX_DEPTH) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27849, libc.VaList(bp+16, iDepth)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27995, libc.VaList(bp+16, iDepth)) Xsqlite3_free(tls, aNode) return } } nCell = _readInt16(tls, aNode+2) if int32(4)+nCell*(int32(8)+(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnDim*int32(2)*int32(4)) > *(*int32)(unsafe.Pointer(bp)) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27879, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28025, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) } else { i = 0 for { @@ -176395,12 +178222,12 @@ func _rtreeCheckCount(tls *libc.TLS, pCheck uintptr, zTbl uintptr, nExpect Ti64) var pCount uintptr _, _ = nActual, pCount if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { - pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27934, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) + pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+28080, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) if pCount != 0 { if Xsqlite3_step(tls, pCount) == int32(SQLITE_ROW) { nActual = Xsqlite3_column_int64(tls, pCount, 0) if nActual != nExpect { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27965, libc.VaList(bp+8, zTbl, nExpect, nActual)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28111, libc.VaList(bp+8, zTbl, nExpect, nActual)) } } (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = Xsqlite3_finalize(tls, pCount) @@ -176429,7 +178256,7 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzDb = zDb (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzTab = zTab /* Find the number of auxiliary columns */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28032, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28178, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { nAux = Xsqlite3_column_count(tls, pStmt) - int32(2) Xsqlite3_finalize(tls, pStmt) @@ -176439,11 +178266,11 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe } } /* Find number of dimensions in the rtree table. */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25846, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25992, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim = (Xsqlite3_column_count(tls, pStmt) - int32(1) - nAux) / int32(2) if (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim < int32(1) { - _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28060, 0) + _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28206, 0) } else { if int32(SQLITE_ROW) == Xsqlite3_step(tls, pStmt) { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FbInt = libc.BoolInt32(Xsqlite3_column_type(tls, pStmt, int32(1)) == int32(SQLITE_INTEGER)) @@ -176459,8 +178286,8 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe if (*(*TRtreeCheck)(unsafe.Pointer(bp))).Frc == SQLITE_OK { _rtreeCheckNode(tls, bp, 0, uintptr(0), int64(1)) } - _rtreeCheckCount(tls, bp, __ccgo_ts+28091, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) - _rtreeCheckCount(tls, bp, __ccgo_ts+28098, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28237, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28244, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) } /* Finalize SQL statements used by the integrity-check */ Xsqlite3_finalize(tls, (*(*TRtreeCheck)(unsafe.Pointer(bp))).FpGetNode) @@ -176487,7 +178314,7 @@ func _rtreeIntegrity(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zName uintpt _ = isQuick rc = _rtreeCheckTable(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, pzErr) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28106, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28252, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) if *(*uintptr)(unsafe.Pointer(pzErr)) == uintptr(0) { rc = int32(SQLITE_NOMEM) } @@ -176538,13 +178365,13 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { var _ /* zReport at bp+0 */ uintptr _, _, _, _ = rc, zDb, zTab, v1 if nArg != int32(1) && nArg != int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+28125, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+28271, -int32(1)) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zDb = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg))) if nArg == int32(1) { zTab = zDb - zDb = __ccgo_ts + 6589 + zDb = __ccgo_ts + 6653 } else { zTab = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8))) } @@ -176553,7 +178380,7 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(bp)) } else { - v1 = __ccgo_ts + 18465 + v1 = __ccgo_ts + 18552 } Xsqlite3_result_text(tls, ctx, v1, -int32(1), uintptr(-libc.Int32FromInt32(1))) } else { @@ -176731,11 +178558,11 @@ func _geopolyParseNumber(tls *libc.TLS, p uintptr, pVal uintptr) (r int32) { j = 0 seenDP = 0 seenE = 0 - if int32(c) == int32('-') { + if int32(int32(c)) == int32('-') { j = int32(1) c = int8(*(*uint8)(unsafe.Pointer(z + uintptr(j)))) } - if int32(c) == int32('0') && int32(*(*uint8)(unsafe.Pointer(z + uintptr(j+int32(1))))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(z + uintptr(j+int32(1))))) <= int32('9') { + if int32(int32(c)) == int32('0') && int32(*(*uint8)(unsafe.Pointer(z + uintptr(j+int32(1))))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(z + uintptr(j+int32(1))))) <= int32('9') { return 0 } for { @@ -176743,7 +178570,7 @@ func _geopolyParseNumber(tls *libc.TLS, p uintptr, pVal uintptr) (r int32) { if int32(_sqlite3CtypeMap[uint8(c)])&int32(0x04) != 0 { goto _1 } - if int32(c) == int32('.') { + if int32(int32(c)) == int32('.') { if int32(*(*uint8)(unsafe.Pointer(z + uintptr(j-int32(1))))) == int32('-') { return 0 } @@ -176753,7 +178580,7 @@ func _geopolyParseNumber(tls *libc.TLS, p uintptr, pVal uintptr) (r int32) { seenDP = int32(1) goto _1 } - if int32(c) == int32('e') || int32(c) == int32('E') { + if int32(int32(c)) == int32('e') || int32(int32(c)) == int32('E') { if int32(*(*uint8)(unsafe.Pointer(z + uintptr(j-int32(1))))) < int32('0') { return 0 } @@ -176764,11 +178591,11 @@ func _geopolyParseNumber(tls *libc.TLS, p uintptr, pVal uintptr) (r int32) { seenE = v2 seenDP = v2 c = int8(*(*uint8)(unsafe.Pointer(z + uintptr(j+int32(1))))) - if int32(c) == int32('+') || int32(c) == int32('-') { + if int32(int32(c)) == int32('+') || int32(int32(c)) == int32('-') { j++ c = int8(*(*uint8)(unsafe.Pointer(z + uintptr(j+int32(1))))) } - if int32(c) < int32('0') || int32(c) > int32('9') { + if int32(int32(c)) < int32('0') || int32(int32(c)) > int32('9') { return 0 } goto _1 @@ -176820,7 +178647,7 @@ func _geopolyParseJson(tls *libc.TLS, z uintptr, pRc uintptr) (r uintptr) { (*(*TGeoParse)(unsafe.Pointer(bp))).Fz++ if (*(*TGeoParse)(unsafe.Pointer(bp))).FnVertex >= (*(*TGeoParse)(unsafe.Pointer(bp))).FnAlloc { (*(*TGeoParse)(unsafe.Pointer(bp))).FnAlloc = (*(*TGeoParse)(unsafe.Pointer(bp))).FnAlloc*int32(2) + int32(16) - aNew = Xsqlite3_realloc64(tls, (*(*TGeoParse)(unsafe.Pointer(bp))).Fa, uint64((*(*TGeoParse)(unsafe.Pointer(bp))).FnAlloc)*uint64(4)*uint64(2)) + aNew = Xsqlite3_realloc64(tls, (*(*TGeoParse)(unsafe.Pointer(bp))).Fa, uint64(uint64((*(*TGeoParse)(unsafe.Pointer(bp))).FnAlloc)*uint64(4)*uint64(2))) if aNew == uintptr(0) { rc = int32(SQLITE_NOMEM) (*(*TGeoParse)(unsafe.Pointer(bp))).FnErr++ @@ -176843,10 +178670,10 @@ func _geopolyParseJson(tls *libc.TLS, z uintptr, pRc uintptr) (r uintptr) { } c = _geopolySkipSpace(tls, bp) (*(*TGeoParse)(unsafe.Pointer(bp))).Fz++ - if int32(c) == int32(',') { + if int32(int32(c)) == int32(',') { continue } - if int32(c) == int32(']') && ii >= int32(2) { + if int32(int32(c)) == int32(']') && ii >= int32(2) { break } (*(*TGeoParse)(unsafe.Pointer(bp))).FnErr++ @@ -176865,7 +178692,7 @@ func _geopolyParseJson(tls *libc.TLS, z uintptr, pRc uintptr) (r uintptr) { if v2 && int32(_geopolySkipSpace(tls, bp)) == libc.Int32FromInt32(0) { *(*int32)(unsafe.Pointer(bp + 32)) = int32(1) (*(*TGeoParse)(unsafe.Pointer(bp))).FnVertex-- /* Remove the redundant vertex at the end */ - pOut = Xsqlite3_malloc64(tls, libc.Uint64FromInt64(40)+libc.Uint64FromInt64(4)*libc.Uint64FromInt32(2)*uint64(int64((*(*TGeoParse)(unsafe.Pointer(bp))).FnVertex)-libc.Int64FromInt32(4))) + pOut = Xsqlite3_malloc64(tls, libc.Uint64FromInt64(40)+uint64(libc.Uint64FromInt64(4)*libc.Uint64FromInt32(2))*uint64(int64((*(*TGeoParse)(unsafe.Pointer(bp))).FnVertex)-libc.Int64FromInt32(4))) *(*int32)(unsafe.Pointer(bp + 32)) = int32(1) if pOut == uintptr(0) { goto parse_json_err @@ -176886,6 +178713,7 @@ func _geopolyParseJson(tls *libc.TLS, z uintptr, pRc uintptr) (r uintptr) { rc = int32(SQLITE_ERROR) } } + goto parse_json_err parse_json_err: ; if pRc != 0 { @@ -176925,8 +178753,8 @@ func _geopolyFuncParam(tls *libc.TLS, pCtx uintptr, pVal uintptr, pRc uintptr) ( return uintptr(0) } nVertex = int32(*(*uint8)(unsafe.Pointer(a + 1)))< int32(1000) { n = int32(1000) } - p = Xsqlite3_malloc64(tls, uint64(40)+uint64((n-int32(1))*int32(2))*uint64(4)) + p = Xsqlite3_malloc64(tls, uint64(uint64(40)+uint64((n-int32(1))*int32(2))*uint64(4))) if p == uintptr(0) { Xsqlite3_result_error_nomem(tls, context) return @@ -177309,7 +179137,7 @@ func _geopolyRegularFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt if !(*(*int32)(unsafe.Pointer(bp)) < n) { break } - rAngle = libc.Float64FromFloat64(2) * libc.Float64FromFloat64(3.141592653589793) * float64(*(*int32)(unsafe.Pointer(bp))) / float64(n) + rAngle = libc.Float64FromFloat64(2) * libc.Float64FromFloat64(3.141592653589793) * float64(*(*int32)(unsafe.Pointer(bp))) / float64(float64(n)) *(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(*(*int32)(unsafe.Pointer(bp))*int32(2))*4)) = float32(x - r*_geopolySine(tls, rAngle-libc.Float64FromFloat64(0.5)*libc.Float64FromFloat64(3.141592653589793))) *(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(*(*int32)(unsafe.Pointer(bp))*int32(2)+int32(1))*4)) = float32(y + r*_geopolySine(tls, rAngle)) goto _1 @@ -177367,19 +179195,19 @@ func _geopolyBBox(tls *libc.TLS, context uintptr, pPoly uintptr, aCoord uintptr, break } r = float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(*(*int32)(unsafe.Pointer(bp))*int32(2))*4))) - if r < float64(mnX) { - mnX = float32(r) + if r < float64(float64(mnX)) { + mnX = float32(float32(r)) } else { - if r > float64(mxX) { - mxX = float32(r) + if r > float64(float64(mxX)) { + mxX = float32(float32(r)) } } r = float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(*(*int32)(unsafe.Pointer(bp))*int32(2)+int32(1))*4))) - if r < float64(mnY) { - mnY = float32(r) + if r < float64(float64(mnY)) { + mnY = float32(float32(r)) } else { - if r > float64(mxY) { - mxY = float32(r) + if r > float64(float64(mxY)) { + mxY = float32(float32(r)) } } goto _5 @@ -177393,9 +179221,10 @@ func _geopolyBBox(tls *libc.TLS, context uintptr, pPoly uintptr, aCoord uintptr, if !(aCoord == uintptr(0)) { goto _6 } + goto geopolyBboxFill geopolyBboxFill: ; - pOut = Xsqlite3_realloc64(tls, p, libc.Uint64FromInt64(40)+libc.Uint64FromInt64(4)*libc.Uint64FromInt32(2)*uint64(libc.Int32FromInt32(4)-libc.Int32FromInt32(4))) + pOut = Xsqlite3_realloc64(tls, p, uint64(libc.Uint64FromInt64(40)+libc.Uint64FromInt64(4)*libc.Uint64FromInt32(2)*uint64(libc.Int32FromInt32(4)-libc.Int32FromInt32(4)))) if pOut == uintptr(0) { Xsqlite3_free(tls, p) if context != 0 { @@ -177496,8 +179325,8 @@ func _geopolyBBoxStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if pBBox == uintptr(0) { return } - if (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit == 0 { - (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit = int32(1) + if libc.AtomicLoadPInt32(pBBox) == 0 { + libc.AtomicStorePInt32(pBBox, int32(1)) libc.Xmemcpy(tls, pBBox+4, bp, libc.Uint64FromInt64(4)*libc.Uint64FromInt32(4)) } else { if *(*TRtreeValue)(unsafe.Pointer(bp)) < *(*TRtreeValue)(unsafe.Pointer(pBBox + 4)) { @@ -177763,18 +179592,18 @@ func _geopolyAddOneSegment(tls *libc.TLS, p uintptr, x0 TGeoCoord, y0 TGeoCoord, pSeg = (*TGeoOverlap)(unsafe.Pointer(p)).FaSegment + uintptr((*TGeoOverlap)(unsafe.Pointer(p)).FnSegment)*48 (*TGeoOverlap)(unsafe.Pointer(p)).FnSegment++ (*TGeoSegment)(unsafe.Pointer(pSeg)).FC = float64((y1 - y0) / (x1 - x0)) - (*TGeoSegment)(unsafe.Pointer(pSeg)).FB = float64(y1) - float64(x1)*(*TGeoSegment)(unsafe.Pointer(pSeg)).FC + (*TGeoSegment)(unsafe.Pointer(pSeg)).FB = float64(float64(y1)) - float64(float64(x1))*(*TGeoSegment)(unsafe.Pointer(pSeg)).FC (*TGeoSegment)(unsafe.Pointer(pSeg)).Fy0 = y0 (*TGeoSegment)(unsafe.Pointer(pSeg)).Fside = side (*TGeoSegment)(unsafe.Pointer(pSeg)).Fidx = idx pEvent = (*TGeoOverlap)(unsafe.Pointer(p)).FaEvent + uintptr((*TGeoOverlap)(unsafe.Pointer(p)).FnEvent)*32 (*TGeoOverlap)(unsafe.Pointer(p)).FnEvent++ - (*TGeoEvent)(unsafe.Pointer(pEvent)).Fx = float64(x0) + (*TGeoEvent)(unsafe.Pointer(pEvent)).Fx = float64(float64(x0)) (*TGeoEvent)(unsafe.Pointer(pEvent)).FeType = 0 (*TGeoEvent)(unsafe.Pointer(pEvent)).FpSeg = pSeg pEvent = (*TGeoOverlap)(unsafe.Pointer(p)).FaEvent + uintptr((*TGeoOverlap)(unsafe.Pointer(p)).FnEvent)*32 (*TGeoOverlap)(unsafe.Pointer(p)).FnEvent++ - (*TGeoEvent)(unsafe.Pointer(pEvent)).Fx = float64(x1) + (*TGeoEvent)(unsafe.Pointer(pEvent)).Fx = float64(float64(x1)) (*TGeoEvent)(unsafe.Pointer(pEvent)).FeType = int32(1) (*TGeoEvent)(unsafe.Pointer(pEvent)).FpSeg = pSeg } @@ -177995,8 +179824,8 @@ func _geopolyOverlap(tls *libc.TLS, p1 uintptr, p2 uintptr) (r int32) { rc = 0 needSort = 0 pActive = uintptr(0) - nByte = int64(uint64(32)*uint64(nVertex)*uint64(2) + uint64(48)*uint64(nVertex) + uint64(24)) - p = Xsqlite3_malloc64(tls, uint64(nByte)) + nByte = int64(uint64(32)*uint64(uint64(nVertex))*uint64(2) + uint64(48)*uint64(uint64(nVertex)) + uint64(24)) + p = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) if p == uintptr(0) { return -int32(1) } @@ -178124,6 +179953,7 @@ func _geopolyOverlap(tls *libc.TLS, p1 uintptr, p2 uintptr) (r int32) { } } } + goto geopolyOverlapDone geopolyOverlapDone: ; Xsqlite3_free(tls, p) @@ -178199,11 +180029,11 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint /* Allocate the sqlite3_vtab structure */ nDb = int64(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8)))) nName = int64(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 2*8)))) - pRtree = Xsqlite3_malloc64(tls, uint64(968)+uint64(nDb)+uint64(nName*int64(2))+uint64(8)) + pRtree = Xsqlite3_malloc64(tls, uint64(968)+uint64(uint64(nDb))+uint64(nName*int64(2))+uint64(8)) if !(pRtree != 0) { return int32(SQLITE_NOMEM) } - libc.Xmemset(tls, pRtree, 0, uint64(968)+uint64(nDb)+uint64(nName*int64(2))+uint64(8)) + libc.Xmemset(tls, pRtree, 0, uint64(uint64(968)+uint64(uint64(nDb))+uint64(nName*int64(2))+uint64(8))) (*TRtree)(unsafe.Pointer(pRtree)).FnBusy = uint32(1) (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FpModule = uintptr(unsafe.Pointer(&_rtreeModule)) (*TRtree)(unsafe.Pointer(pRtree)).FzDb = pRtree + 1*968 @@ -178212,16 +180042,16 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint (*TRtree)(unsafe.Pointer(pRtree)).FeCoordType = uint8(RTREE_COORD_REAL32) (*TRtree)(unsafe.Pointer(pRtree)).FnDim = uint8(2) (*TRtree)(unsafe.Pointer(pRtree)).FnDim2 = uint8(4) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27289, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(uint64(nDb))) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(uint64(nName))) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(uint64(nName))) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27435, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28249, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28395, 0) (*TRtree)(unsafe.Pointer(pRtree)).FnAux = uint8(1) /* Add one for _shape */ (*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull = uint8(1) /* The _shape column is always not-null */ ii = int32(3) @@ -178230,13 +180060,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint break } (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28271, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28417, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27346, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27492, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) @@ -178244,7 +180074,7 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint v2 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v2 if SQLITE_OK != v2 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } Xsqlite3_free(tls, zSql) @@ -178259,11 +180089,12 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto geopolyInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto geopolyInit_fail geopolyInit_fail: ; if rc == SQLITE_OK { @@ -178412,6 +180243,7 @@ func _geopolyFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uin *(*int32)(unsafe.Pointer(bp + 8)) = _rtreeStepToLeaf(tls, pCsr) } } + goto geopoly_filter_end geopoly_filter_end: ; _nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp))) @@ -178469,7 +180301,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iRowidTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(1) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16698 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16785 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).Fomit = uint8(1) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(30) @@ -178479,7 +180311,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iFuncTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = idxNum - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28275 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28421 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).Fomit = uint8(0) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(300) @@ -178487,7 +180319,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { return SQLITE_OK } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(4) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28281 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28427 (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(3e+06) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(100000) return SQLITE_OK @@ -178607,7 +180439,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR _geopolyBBox(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(aData + 2*8)), bp+8+8, bp) if *(*int32)(unsafe.Pointer(bp)) != 0 { if *(*int32)(unsafe.Pointer(bp)) == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28290, 0) + (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28436, 0) } goto geopoly_update_end } @@ -178694,6 +180526,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, pUp) } } + goto geopoly_update_end geopoly_update_end: ; _rtreeRelease(tls, pRtree) @@ -178709,12 +180542,12 @@ geopoly_update_end: func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28330) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28476) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28346) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28492) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) @@ -178759,7 +180592,7 @@ func _sqlite3_geopoly_init(tls *libc.TLS, db uintptr) (r int32) { rc = SQLITE_OK i = uint32(0) for { - if !(uint64(i) < libc.Uint64FromInt64(288)/libc.Uint64FromInt64(24) && rc == SQLITE_OK) { + if !(uint64(uint64(i)) < libc.Uint64FromInt64(288)/libc.Uint64FromInt64(24) && rc == SQLITE_OK) { break } if _aFunc[i].FbPure != 0 { @@ -178775,7 +180608,7 @@ func _sqlite3_geopoly_init(tls *libc.TLS, db uintptr) (r int32) { } i = uint32(0) for { - if !(uint64(i) < libc.Uint64FromInt64(24)/libc.Uint64FromInt64(24) && rc == SQLITE_OK) { + if !(uint64(uint64(i)) < libc.Uint64FromInt64(24)/libc.Uint64FromInt64(24) && rc == SQLITE_OK) { break } rc = Xsqlite3_create_function(tls, db, _aAgg[i].FzName, int32(1), libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), uintptr(0), uintptr(0), _aAgg[i].FxStep, _aAgg[i].FxFinal) @@ -178785,7 +180618,7 @@ func _sqlite3_geopoly_init(tls *libc.TLS, db uintptr) (r int32) { i++ } if rc == SQLITE_OK { - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28523, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28669, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) } return rc } @@ -178799,61 +180632,61 @@ var _aFunc = [12]struct { 0: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28361, + FzName: __ccgo_ts + 28507, }, 1: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28374, + FzName: __ccgo_ts + 28520, }, 2: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28387, + FzName: __ccgo_ts + 28533, }, 3: { FnArg: int8(-int32(1)), FbPure: uint8(1), - FzName: __ccgo_ts + 28400, + FzName: __ccgo_ts + 28546, }, 4: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28346, + FzName: __ccgo_ts + 28492, }, 5: { FnArg: int8(3), FbPure: uint8(1), - FzName: __ccgo_ts + 28412, + FzName: __ccgo_ts + 28558, }, 6: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28330, + FzName: __ccgo_ts + 28476, }, 7: { FnArg: int8(1), - FzName: __ccgo_ts + 28435, + FzName: __ccgo_ts + 28581, }, 8: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28449, + FzName: __ccgo_ts + 28595, }, 9: { FnArg: int8(7), FbPure: uint8(1), - FzName: __ccgo_ts + 28462, + FzName: __ccgo_ts + 28608, }, 10: { FnArg: int8(4), FbPure: uint8(1), - FzName: __ccgo_ts + 28476, + FzName: __ccgo_ts + 28622, }, 11: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28492, + FzName: __ccgo_ts + 28638, }, } @@ -178879,7 +180712,7 @@ var _aAgg = [1]struct { FzName uintptr }{ 0: { - FzName: __ccgo_ts + 28504, + FzName: __ccgo_ts + 28650, }, } @@ -178904,20 +180737,20 @@ func _sqlite3RtreeInit(tls *libc.TLS, db uintptr) (r int32) { var rc, utf8 int32 _, _, _, _ = c, c1, rc, utf8 utf8 = int32(SQLITE_UTF8) - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28531, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28677, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28541, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28687, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28552, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28698, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { c = libc.UintptrFromInt32(RTREE_COORD_REAL32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28275, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28421, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) } if rc == SQLITE_OK { c1 = libc.UintptrFromInt32(RTREE_COORD_INT32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28563, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28709, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) } if rc == SQLITE_OK { rc = _sqlite3_geopoly_init(tls, db) @@ -178991,12 +180824,12 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { _, _, _, _, _ = i, memErr, nBlob, pBlob, pGeomCtx pGeomCtx = Xsqlite3_user_data(tls, ctx) memErr = 0 - nBlob = int64(uint64(64) + uint64(nArg-libc.Int32FromInt32(1))*uint64(8) + uint64(nArg)*uint64(8)) - pBlob = Xsqlite3_malloc64(tls, uint64(nBlob)) + nBlob = int64(uint64(64) + uint64(nArg-libc.Int32FromInt32(1))*uint64(8) + uint64(uint64(nArg))*uint64(8)) + pBlob = Xsqlite3_malloc64(tls, uint64(uint64(nBlob))) if !(pBlob != 0) { Xsqlite3_result_error_nomem(tls, ctx) } else { - (*TRtreeMatchArg)(unsafe.Pointer(pBlob)).FiSize = uint32(nBlob) + (*TRtreeMatchArg)(unsafe.Pointer(pBlob)).FiSize = uint32(uint32(nBlob)) (*TRtreeMatchArg)(unsafe.Pointer(pBlob)).Fcb = *(*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)) (*TRtreeMatchArg)(unsafe.Pointer(pBlob)).FapSqlParam = pBlob + 56 + uintptr(nArg)*8 (*TRtreeMatchArg)(unsafe.Pointer(pBlob)).FnParam = nArg @@ -179019,7 +180852,7 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { Xsqlite3_result_error_nomem(tls, ctx) _rtreeMatchArgFree(tls, pBlob) } else { - Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25832, __ccgo_fp(_rtreeMatchArgFree)) + Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25978, __ccgo_fp(_rtreeMatchArgFree)) } } } @@ -179962,11 +181795,11 @@ func _rbuDeltaGetInt(tls *libc.TLS, pz uintptr, pLen uintptr) (r uint32) { if !(v1 >= 0) { break } - v = v< *(*int32)(unsafe.Pointer(bp + 8)) { + if int32(int32(cnt)) > *(*int32)(unsafe.Pointer(bp + 8)) { /* ERROR: insert count exceeds size of delta */ return -int32(1) } - libc.Xmemcpy(tls, zOut, *(*uintptr)(unsafe.Pointer(bp)), uint64(cnt)) + libc.Xmemcpy(tls, zOut, *(*uintptr)(unsafe.Pointer(bp)), uint64(uint64(cnt))) zOut += uintptr(cnt) *(*uintptr)(unsafe.Pointer(bp)) += uintptr(cnt) *(*int32)(unsafe.Pointer(bp + 8)) = int32(uint32(*(*int32)(unsafe.Pointer(bp + 8))) - cnt) @@ -180186,7 +182019,7 @@ func _rbuDeltaApply(tls *libc.TLS, zSrc uintptr, lenSrc int32, _zDelta uintptr, /* ERROR: generated size does not match predicted size */ return -int32(1) } - return int32(total) + return int32(int32(total)) default: /* ERROR: unknown delta operator */ return -int32(1) @@ -180236,7 +182069,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt /* Figure out the size of the output */ nOut = _rbuDeltaOutputSize(tls, aDelta, nDelta) if nOut < 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+28573, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28719, -int32(1)) return } aOut = Xsqlite3_malloc(tls, nOut+int32(1)) @@ -180246,7 +182079,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt nOut2 = _rbuDeltaApply(tls, aOrig, nOrig, aDelta, nDelta, aOut) if nOut2 != nOut { Xsqlite3_free(tls, aOut) - Xsqlite3_result_error(tls, context, __ccgo_ts+28573, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28719, -int32(1)) } else { Xsqlite3_result_blob(tls, context, aOut, nOut, __ccgo_fp(Xsqlite3_free)) } @@ -180272,7 +182105,7 @@ func _prepareAndCollectError(tls *libc.TLS, db uintptr, ppStmt uintptr, pzErrmsg _ = rc rc = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), ppStmt, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) } return rc @@ -180295,7 +182128,7 @@ func _resetAndCollectError(tls *libc.TLS, pStmt uintptr, pzErrmsg uintptr) (r in _ = rc rc = Xsqlite3_reset(tls, pStmt) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) } return rc } @@ -180427,7 +182260,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { /* Free any SQLite statements used while processing the previous object */ _rbuObjIterClearStatements(tls, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28594, uintptr(0), uintptr(0), p+64) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28740, uintptr(0), uintptr(0), p+64) } if rc == SQLITE_OK { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 { @@ -180437,6 +182270,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { if rc != int32(SQLITE_ROW) { rc = _resetAndCollectError(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, p+64) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = uintptr(0) + (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = uintptr(0) } else { (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, 0) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, int32(1)) @@ -180515,7 +182349,7 @@ func _rbuTargetNameFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { Xsqlite3_result_text(tls, pCtx, zIn, -int32(1), libc.UintptrFromInt32(0)) } } else { - if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25745, zIn, uint64(4)) == 0 { + if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25891, zIn, uint64(4)) == 0 { i = int32(4) for { if !(int32(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))) <= int32('9')) { @@ -180552,13 +182386,13 @@ func _rbuObjIterFirst(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { _, _ = rc, v1 libc.Xmemset(tls, pIter, 0, uint64(192)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 28765 + v1 = __ccgo_ts + 28911 } else { - v1 = __ccgo_ts + 1652 + v1 = __ccgo_ts + 1666 } - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+28806, libc.VaList(bp+8, v1))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+28952, libc.VaList(bp+8, v1))) if rc == SQLITE_OK { - rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+28956) + rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+29102) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup = int32(1) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -180642,11 +182476,11 @@ func _rbuMalloc(tls *libc.TLS, p uintptr, nByte Tsqlite3_int64) (r uintptr) { _ = pRet pRet = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - pRet = Xsqlite3_malloc64(tls, uint64(nByte)) + pRet = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) if pRet == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, pRet, 0, uint64(nByte)) + libc.Xmemset(tls, pRet, 0, uint64(uint64(nByte))) } } return pRet @@ -180663,7 +182497,7 @@ func _rbuAllocateIterArrays(tls *libc.TLS, p uintptr, pIter uintptr, nCol int32) var azNew uintptr var nByte Tsqlite3_int64 _, _ = azNew, nByte - nByte = int64((libc.Uint64FromInt32(2)*libc.Uint64FromInt64(8) + libc.Uint64FromInt64(4) + libc.Uint64FromInt32(3)*libc.Uint64FromInt64(1)) * uint64(nCol)) + nByte = int64((libc.Uint64FromInt32(2)*libc.Uint64FromInt64(8) + libc.Uint64FromInt64(4) + libc.Uint64FromInt32(3)*libc.Uint64FromInt64(1)) * uint64(uint64(nCol))) azNew = _rbuMalloc(tls, p, nByte) if azNew != 0 { (*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol = azNew @@ -180695,7 +182529,7 @@ func _rbuStrndup(tls *libc.TLS, zStr uintptr, pRc uintptr) (r uintptr) { if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK { if zStr != 0 { nCopy = libc.Xstrlen(tls, zStr) + uint64(1) - zRet = Xsqlite3_malloc64(tls, nCopy) + zRet = Xsqlite3_malloc64(tls, uint64(uint64(nCopy))) if zRet != 0 { libc.Xmemcpy(tls, zRet, zStr, nCopy) } else { @@ -180725,7 +182559,7 @@ func _rbuFinalize(tls *libc.TLS, p uintptr, pStmt uintptr) { rc = Xsqlite3_finalize(tls, pStmt) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && rc != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } @@ -180786,7 +182620,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu *(*[4]uintptr)(unsafe.Pointer(bp)) = [4]uintptr{} *(*int32)(unsafe.Pointer(peType)) = RBU_PK_NOTABLE *(*int32)(unsafe.Pointer(piPk)) = 0 - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29081, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29227, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK || Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0]) != int32(SQLITE_ROW) { /* Either an error, or no such table. */ goto rbuTableType_end @@ -180796,7 +182630,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } *(*int32)(unsafe.Pointer(piTnum)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0], int32(1)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29200, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29346, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { goto rbuTableType_end } @@ -180804,7 +182638,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu zOrig = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(3)) zIdx = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(1)) if zOrig != 0 && zIdx != 0 && int32(*(*Tu8)(unsafe.Pointer(zOrig))) == int32('p') { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29221, libc.VaList(bp+40, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29367, libc.VaList(bp+40, zIdx))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)]) == int32(SQLITE_ROW) { *(*int32)(unsafe.Pointer(piPk)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)], 0) @@ -180816,7 +182650,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29272, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29418, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { for Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)]) == int32(SQLITE_ROW) { if Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)], int32(5)) > 0 { @@ -180826,11 +182660,12 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu } *(*int32)(unsafe.Pointer(peType)) = int32(RBU_PK_NONE) } + goto rbuTableType_end rbuTableType_end: ; i = uint32(0) for { - if !(uint64(i) < libc.Uint64FromInt64(32)/libc.Uint64FromInt64(8)) { + if !(uint64(uint64(i)) < libc.Uint64FromInt64(32)/libc.Uint64FromInt64(8)) { break } _rbuFinalize(tls, p, (*(*[4]uintptr)(unsafe.Pointer(bp)))[i]) @@ -180859,7 +182694,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { bIndex = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { libc.Xmemcpy(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk, uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29293, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29439, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FnIndex = 0 for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -180872,7 +182707,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { if bPartial != 0 { libc.Xmemset(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, int32(0x01), uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29321, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29467, libc.VaList(bp+24, zIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) if iCid >= 0 { @@ -180925,7 +182760,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 _rbuTableType(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, pIter+72, bp+8, pIter+108) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NOTABLE { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+19908, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+20040, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc @@ -180936,7 +182771,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 /* Populate the azTblCol[] and nTblCol variables based on the columns ** of the input table. Ignore any input table columns that begin with ** "rbu_". */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29350, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29496, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { nCol = Xsqlite3_column_count(tls, *(*uintptr)(unsafe.Pointer(bp))) _rbuAllocateIterArrays(tls, p, pIter, nCol) @@ -180947,7 +182782,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 break } zName = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), i) - if Xsqlite3_strnicmp(tls, __ccgo_ts+29369, zName, int32(4)) != 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+29515, zName, int32(4)) != 0 { zCopy = _rbuStrndup(tls, zName, p+56) *(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)*4)) = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol v3 = pIter + 16 @@ -180955,7 +182790,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 *(*int32)(unsafe.Pointer(v3))++ *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(v2)*8)) = zCopy } else { - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29374, zName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29520, zName) { bRbuRowid = int32(1) } } @@ -180969,17 +182804,17 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && bRbuRowid != libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) if bRbuRowid != 0 { - v4 = __ccgo_ts + 29384 + v4 = __ccgo_ts + 29530 } else { - v4 = __ccgo_ts + 29397 + v4 = __ccgo_ts + 29543 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29406, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29552, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) } /* Check that all non-HIDDEN columns in the destination table are also ** present in the input table. Populate the abTblPk[], azTblType[] and ** aiTblOrder[] arrays at the same time. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29435, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29581, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zName1 = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -181001,7 +182836,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 } if i == (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29457, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29603, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) } else { iPk = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) bNotNull = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) @@ -181015,8 +182850,8 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iOrder)*8)) = t1 } *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iOrder)*8)) = _rbuStrndup(tls, zType, p+56) - *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(iOrder))) = uint8(iPk) - *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iOrder))) = libc.BoolUint8(uint8(bNotNull) != 0 || iPk != 0) + *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(iOrder))) = uint8(uint8(iPk)) + *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iOrder))) = libc.BoolUint8(uint8(uint8(bNotNull)) != 0 || iPk != 0) iOrder++ } } @@ -181040,15 +182875,15 @@ func _rbuObjIterGetCollist(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) var z, zList, zSep uintptr _, _, _, _ = i, z, zList, zSep zList = uintptr(0) - zSep = __ccgo_ts + 1652 + zSep = __ccgo_ts + 1666 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } z = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+29484, libc.VaList(bp+8, zList, zSep, z)) - zSep = __ccgo_ts + 14994 + zList = _rbuMPrintf(tls, p, __ccgo_ts+29630, libc.VaList(bp+8, zList, zSep, z)) + zSep = __ccgo_ts + 15087 goto _1 _1: ; @@ -181073,7 +182908,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, _, _, _, _, _ = i, iPk, zCol, zRet, zSep iPk = int32(1) zRet = uintptr(0) - zSep = __ccgo_ts + 1652 + zSep = __ccgo_ts + 1666 for int32(1) != 0 { i = 0 for { @@ -181082,7 +182917,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, } if int32(*(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == iPk { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29493, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29639, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) zSep = zSeparator break } @@ -181130,21 +182965,21 @@ func _rbuVacuumTableStart(tls *libc.TLS, p uintptr, pIter uintptr, bRowid int32, *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zRet = uintptr(0) if bRowid != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29506, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29652, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iMax = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29538, libc.VaList(bp+16, iMax)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29684, libc.VaList(bp+16, iMax)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1652, __ccgo_ts+14994, __ccgo_ts+29561) - zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29567, __ccgo_ts+29574, __ccgo_ts+5110) - zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1652, __ccgo_ts+14994, __ccgo_ts+1652) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1666, __ccgo_ts+15087, __ccgo_ts+29707) + zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29713, __ccgo_ts+29720, __ccgo_ts+5174) + zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1666, __ccgo_ts+15087, __ccgo_ts+1666) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29582, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29728, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zVal = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29624, libc.VaList(bp+16, zList, zVal)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29770, libc.VaList(bp+16, zList, zVal)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } @@ -181193,10 +183028,10 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { zVector = uintptr(0) zRet = uintptr(0) bFailed = 0 - zSep = __ccgo_ts + 1652 + zSep = __ccgo_ts + 1666 iCol = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29321, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29467, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(4)) @@ -181218,15 +183053,15 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { - zCol = __ccgo_ts + 29644 + zCol = __ccgo_ts + 29790 } } else { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) } - zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29652, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29673, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) - zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29709, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) - zSep = __ccgo_ts + 14994 + zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29798, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29819, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) + zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29855, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) + zSep = __ccgo_ts + 15087 iCol++ } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) @@ -181235,9 +183070,9 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29736, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29882, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - zSep = __ccgo_ts + 1652 + zSep = __ccgo_ts + 1666 iCol = 0 for { if !(iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol) { @@ -181252,19 +183087,20 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { break } } - zVector = _rbuMPrintf(tls, p, __ccgo_ts+29784, libc.VaList(bp+24, zVector, zSep, zQuoted)) - zSep = __ccgo_ts + 14994 + zVector = _rbuMPrintf(tls, p, __ccgo_ts+29930, libc.VaList(bp+24, zVector, zSep, zQuoted)) + zSep = __ccgo_ts + 15087 goto _2 _2: ; iCol++ } if !(bFailed != 0) { - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29791, libc.VaList(bp+24, zLhs, zVector)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29937, libc.VaList(bp+24, zLhs, zVector)) } } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } + goto index_start_out index_start_out: ; Xsqlite3_free(tls, zOrder) @@ -181313,11 +183149,11 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zImpPK = uintptr(0) /* String to return via *pzImposterPK */ zWhere = uintptr(0) /* String to return via *pzWhere */ nBind = 0 /* Value to return via *pnBind */ - zCom = __ccgo_ts + 1652 /* Set to ", " later on */ - zAnd = __ccgo_ts + 1652 /* Set to " AND " later on */ + zCom = __ccgo_ts + 1666 /* Set to ", " later on */ + zAnd = __ccgo_ts + 1666 /* Set to " AND " later on */ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_xinfo = ? */ if rc == SQLITE_OK { - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29321, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29467, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -181326,8 +183162,8 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = uintptr(0) if iCid == -int32(2) { iSeq = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29803, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) - zType = __ccgo_ts + 1652 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29949, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) + zType = __ccgo_ts + 1666 } else { if iCid < 0 { /* An integer primary key. If the table has an explicit IPK, use @@ -181346,9 +183182,9 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - zCol = __ccgo_ts + 29644 + zCol = __ccgo_ts + 29790 } else { - zCol = __ccgo_ts + 29374 + zCol = __ccgo_ts + 29520 } } zType = __ccgo_ts + 1140 @@ -181356,24 +183192,24 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) zType = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)) } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29825, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29971, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) } if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbUnique == 0 || Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) != 0 { if bDesc != 0 { - v2 = __ccgo_ts + 29561 + v2 = __ccgo_ts + 29707 } else { - v2 = __ccgo_ts + 1652 + v2 = __ccgo_ts + 1666 } zOrder = v2 - zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29845, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) + zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29991, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) } - zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+29866, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) - zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+29899, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) + zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+30012, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) + zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+30045, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) if zRet == uintptr(0) || zImpPK == uintptr(0) || zImpCols == uintptr(0) || zWhere == uintptr(0) { rc = int32(SQLITE_NOMEM) } - zCom = __ccgo_ts + 14994 - zAnd = __ccgo_ts + 22017 + zCom = __ccgo_ts + 15087 + zAnd = __ccgo_ts + 22162 nBind++ } rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -181419,7 +183255,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr _, _, _, _ = i, zCol, zList, zS zList = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zS = __ccgo_ts + 1652 + zS = __ccgo_ts + 1666 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -181427,11 +183263,11 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed + uintptr(i))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29923, libc.VaList(bp+8, zList, zS, zObj, zCol)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30069, libc.VaList(bp+8, zList, zS, zObj, zCol)) } else { - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29935, libc.VaList(bp+8, zList, zS)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30081, libc.VaList(bp+8, zList, zS)) } - zS = __ccgo_ts + 14994 + zS = __ccgo_ts + 15087 if zList == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) break @@ -181443,7 +183279,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } /* For a table with implicit rowids, append "old._rowid_" to the list. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29944, libc.VaList(bp+8, zList, zObj)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30090, libc.VaList(bp+8, zList, zObj)) } } return zList @@ -181469,27 +183305,27 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _ = i, i1, zCol, zList, zSep, zSep1 zList = uintptr(0) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29959, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30105, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - zSep = __ccgo_ts + 1652 + zSep = __ccgo_ts + 1666 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29973, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) - zSep = __ccgo_ts + 22017 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30119, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) + zSep = __ccgo_ts + 22162 } goto _1 _1: ; i++ } - zList = _rbuMPrintf(tls, p, __ccgo_ts+29985, libc.VaList(bp+8, zList)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30131, libc.VaList(bp+8, zList)) } else { - zSep1 = __ccgo_ts + 1652 + zSep1 = __ccgo_ts + 1666 i1 = 0 for { if !(i1 < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -181497,8 +183333,8 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i1))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i1)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+30035, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) - zSep1 = __ccgo_ts + 22017 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30181, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) + zSep1 = __ccgo_ts + 22162 } goto _2 _2: @@ -181521,7 +183357,7 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { // */ func _rbuBadControlError(tls *libc.TLS, p uintptr) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30048, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30194, 0) } // C documentation @@ -181555,24 +183391,24 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt if int32(libc.Xstrlen(tls, zMask)) != (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { _rbuBadControlError(tls, p) } else { - zSep = __ccgo_ts + 1652 + zSep = __ccgo_ts + 1666 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } c = *(*int8)(unsafe.Pointer(zMask + uintptr(*(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(i)*4))))) - if int32(c) == int32('x') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30035, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14994 + if int32(int32(c)) == int32('x') { + zList = _rbuMPrintf(tls, p, __ccgo_ts+30181, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15087 } else { - if int32(c) == int32('d') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30074, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14994 + if int32(int32(c)) == int32('d') { + zList = _rbuMPrintf(tls, p, __ccgo_ts+30220, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15087 } else { - if int32(c) == int32('f') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30104, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14994 + if int32(int32(c)) == int32('f') { + zList = _rbuMPrintf(tls, p, __ccgo_ts+30250, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15087 } } } @@ -181609,7 +183445,7 @@ func _rbuObjIterGetBindlist(tls *libc.TLS, p uintptr, nBind int32) (r uintptr) { var zRet uintptr _, _, _, _ = i, nByte, zRet, v2 zRet = uintptr(0) - nByte = int64(2)*int64(nBind) + int64(1) + nByte = int64(2)*int64(int64(nBind)) + int64(1) zRet = _rbuMalloc(tls, p, nByte) if zRet != 0 { i = 0 @@ -181656,16 +183492,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _, _ = z, zCol, zDesc, zIdx, zOrig, zSep, v1 z = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zSep = __ccgo_ts + 30141 + zSep = __ccgo_ts + 30287 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_list = (pIter->zTbl) */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA index_xinfo = */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29293, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29439, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zOrig = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) - if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16586) == 0 { + if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16673) == 0 { zIdx = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29321, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29467, libc.VaList(bp+24, zIdx))) } break } @@ -181676,16 +183512,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { /* int iCid = sqlite3_column_int(pXInfo, 0); */ zCol = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(2)) if Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) != 0 { - v1 = __ccgo_ts + 29561 + v1 = __ccgo_ts + 29707 } else { - v1 = __ccgo_ts + 1652 + v1 = __ccgo_ts + 1666 } zDesc = v1 - z = _rbuMPrintf(tls, p, __ccgo_ts+30154, libc.VaList(bp+24, z, zSep, zCol, zDesc)) - zSep = __ccgo_ts + 14994 + z = _rbuMPrintf(tls, p, __ccgo_ts+30300, libc.VaList(bp+24, z, zSep, zCol, zDesc)) + zSep = __ccgo_ts + 15087 } } - z = _rbuMPrintf(tls, p, __ccgo_ts+30165, libc.VaList(bp+24, z)) + z = _rbuMPrintf(tls, p, __ccgo_ts+30311, libc.VaList(bp+24, z)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } return z @@ -181725,13 +183561,13 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* SELECT name ... WHERE rootpage = $tnum */ zIdx = uintptr(0) /* Name of PK index */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA main.index_xinfo = $zIdx */ - zComma = __ccgo_ts + 1652 + zComma = __ccgo_ts + 1666 zCols = uintptr(0) /* Used to build up list of table cols */ zPk = uintptr(0) /* Used to build up table PK declaration */ /* Figure out the name of the primary key index for the current table. ** This is needed for the argument to "PRAGMA index_xinfo". Set ** zIdx to point to a nul-terminated string containing this name. */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30169) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30315) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), tnum) if int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -181739,7 +183575,7 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { } } if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29321, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29467, libc.VaList(bp+24, zIdx))) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { @@ -181748,21 +183584,21 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) bDesc = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(4)) - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30219, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30365, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) if bDesc != 0 { - v1 = __ccgo_ts + 29561 + v1 = __ccgo_ts + 29707 } else { - v1 = __ccgo_ts + 1652 + v1 = __ccgo_ts + 1666 } - zPk = _rbuMPrintf(tls, p, __ccgo_ts+30241, libc.VaList(bp+24, zPk, zComma, iCid, v1)) - zComma = __ccgo_ts + 14994 + zPk = _rbuMPrintf(tls, p, __ccgo_ts+30387, libc.VaList(bp+24, zPk, zComma, iCid, v1)) + zComma = __ccgo_ts + 15087 } } - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30251, libc.VaList(bp+24, zCols)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30397, libc.VaList(bp+24, zCols)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6589, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30266, libc.VaList(bp+24, zCols, zPk)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6589, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6653, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30412, libc.VaList(bp+24, zCols, zPk)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6653, 0, 0)) } } @@ -181797,30 +183633,30 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { _, _, _, _, _, _, _, _, _ = iCol, tnum, zCol, zComma, zPk, zPk1, zSql, v2, v3 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { tnum = (*TRbuObjIter)(unsafe.Pointer(pIter)).FiTnum - zComma = __ccgo_ts + 1652 + zComma = __ccgo_ts + 1666 zSql = uintptr(0) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6589, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6653, 0, int32(1))) iCol = 0 for { if !((*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } - zPk = __ccgo_ts + 1652 + zPk = __ccgo_ts + 1666 zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCol)*8)) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6589, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6653, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_IPK) && *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(iCol))) != 0 { /* If the target table column is an "INTEGER PRIMARY KEY", add ** "PRIMARY KEY" to the imposter table column declaration. */ - zPk = __ccgo_ts + 30328 + zPk = __ccgo_ts + 30474 } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iCol))) != 0 { - v2 = __ccgo_ts + 30341 + v2 = __ccgo_ts + 30487 } else { - v2 = __ccgo_ts + 1652 + v2 = __ccgo_ts + 1666 } - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30351, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) - zComma = __ccgo_ts + 14994 + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30497, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) + zComma = __ccgo_ts + 15087 goto _1 _1: ; @@ -181829,17 +183665,17 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { zPk1 = _rbuWithoutRowidPK(tls, p, pIter) if zPk1 != 0 { - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30378, libc.VaList(bp+16, zSql, zPk1)) + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30524, libc.VaList(bp+16, zSql, zPk1)) } } - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6589, int32(1), tnum)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6653, int32(1), tnum)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { - v3 = __ccgo_ts + 30385 + v3 = __ccgo_ts + 30531 } else { - v3 = __ccgo_ts + 1652 + v3 = __ccgo_ts + 1666 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30400, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6589, 0, 0)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30546, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6653, 0, 0)) } } @@ -181865,7 +183701,7 @@ func _rbuObjIterPrepareTmpInsert(tls *libc.TLS, p uintptr, pIter uintptr, zColli bRbuRowid = libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) zBind = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1)+bRbuRowid) if zBind != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30432, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30578, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) } } @@ -181911,7 +183747,7 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt *(*int32)(unsafe.Pointer(bp + 8)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc zRet = uintptr(0) if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30489) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30635) } if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3_bind_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx, -int32(1), libc.UintptrFromInt32(0)) @@ -181942,13 +183778,13 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt (*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol = aIdxCol nIdxAlloc += int32(16) } - if int32(c) == int32('(') { + if int32(int32(c)) == int32('(') { if nParen == 0 { (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol))).FzSpan = zSql + uintptr(i+int32(1)) } nParen++ } else { - if int32(c) == int32(')') { + if int32(int32(c)) == int32(')') { nParen-- if nParen == 0 { nSpan = int32(t__predefined_ptrdiff_t(zSql+uintptr(i)) - int64((*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iIdxCol)*16))).FzSpan)) @@ -181959,21 +183795,21 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt break } } else { - if int32(c) == int32(',') && nParen == int32(1) { + if int32(int32(c)) == int32(',') && nParen == int32(1) { nSpan1 = int32(t__predefined_ptrdiff_t(zSql+uintptr(i)) - int64((*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iIdxCol)*16))).FzSpan)) v4 = iIdxCol iIdxCol++ (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(v4)*16))).FnSpan = nSpan1 (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iIdxCol)*16))).FzSpan = zSql + uintptr(i+int32(1)) } else { - if int32(c) == int32('"') || int32(c) == int32('\'') || int32(c) == int32('`') { + if int32(int32(c)) == int32('"') || int32(int32(c)) == int32('\'') || int32(int32(c)) == int32('`') { i++ for { if !(int32(1) != 0) { break } - if int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i)))) == int32(c) { - if int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i+int32(1))))) != int32(c) { + if int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i)))) == int32(int32(c)) { + if int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i+int32(1))))) != int32(int32(c)) { break } i++ @@ -181984,7 +183820,7 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt i++ } } else { - if int32(c) == int32('[') { + if int32(int32(c)) == int32('[') { i++ for { if !(int32(1) != 0) { @@ -181999,7 +183835,7 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt i++ } } else { - if int32(c) == int32('-') && int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i+int32(1))))) == int32('-') { + if int32(int32(c)) == int32('-') && int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i+int32(1))))) == int32('-') { i = i + int32(2) for { if !(*(*int8)(unsafe.Pointer(zSql + uintptr(i))) != 0 && int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i)))) != int32('\n')) { @@ -182014,7 +183850,7 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt break } } else { - if int32(c) == int32('/') && int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i+int32(1))))) == int32('*') { + if int32(int32(c)) == int32('/') && int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i+int32(1))))) == int32('*') { i = i + int32(2) for { if !(*(*int8)(unsafe.Pointer(zSql + uintptr(i))) != 0 && (int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i)))) != int32('*') || int32(*(*int8)(unsafe.Pointer(zSql + uintptr(i+int32(1))))) != int32('/'))) { @@ -182080,7 +183916,7 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zIdx = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx zLimit = uintptr(0) if nOffset != 0 { - zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30555, libc.VaList(bp+40, nOffset)) + zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30701, libc.VaList(bp+40, nOffset)) if !(zLimit != 0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } @@ -182097,18 +183933,18 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zCollist = _rbuObjIterGetIndexCols(tls, p, pIter, bp, bp+8, bp+16, bp+24) zBind = _rbuObjIterGetBindlist(tls, p, *(*int32)(unsafe.Pointer(bp + 24))) /* Create the imposter table used to write to this index. */ - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6589, 0, int32(1))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6589, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30575, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6589, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6653, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6653, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30721, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6653, 0, 0)) /* Create the statement to insert index entries */ (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = *(*int32)(unsafe.Pointer(bp + 24)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30640, libc.VaList(bp+40, zTbl, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30786, libc.VaList(bp+40, zTbl, zBind))) } /* And to delete index entries */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30676, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30822, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) } /* Create the SELECT statement to read keys in sorted order */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -182123,26 +183959,26 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } if zStart != 0 { if zPart != 0 { - v2 = __ccgo_ts + 30710 + v2 = __ccgo_ts + 30856 } else { - v2 = __ccgo_ts + 30714 + v2 = __ccgo_ts + 30860 } v1 = v2 } else { - v1 = __ccgo_ts + 1652 + v1 = __ccgo_ts + 1666 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30720, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30866, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) Xsqlite3_free(tls, zStart) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30781, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30927, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) } else { if zPart != 0 { - v3 = __ccgo_ts + 30710 + v3 = __ccgo_ts + 30856 } else { - v3 = __ccgo_ts + 30714 + v3 = __ccgo_ts + 30860 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30842, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30988, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -182161,62 +183997,62 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zTbl1 = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl /* Imposter table name */ zBindings = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+bRbuRowid) zWhere1 = _rbuObjIterGetWhere(tls, p, pIter) - zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6600) - zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6596) + zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6664) + zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6660) zCollist = _rbuObjIterGetCollist(tls, p, pIter) (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol /* Create the imposter table or tables (if required). */ _rbuCreateImposterTable(tls, p, pIter) _rbuCreateImposterTable2(tls, p, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) { - v4 = __ccgo_ts + 1652 + v4 = __ccgo_ts + 1666 } else { - v4 = __ccgo_ts + 31001 + v4 = __ccgo_ts + 31147 } zWrite = v4 /* Create the INSERT statement to write to the target PK b-tree */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if bRbuRowid != 0 { - v5 = __ccgo_ts + 31010 + v5 = __ccgo_ts + 31156 } else { - v5 = __ccgo_ts + 1652 + v5 = __ccgo_ts + 1666 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31020, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31166, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) } /* Create the DELETE statement to write to the target PK b-tree. ** Because it only performs INSERT operations, this is not required for ** an rbu vacuum handle. */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31056, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31202, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) } if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zRbuRowid = __ccgo_ts + 1652 + zRbuRowid = __ccgo_ts + 1666 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zRbuRowid = __ccgo_ts + 31084 + zRbuRowid = __ccgo_ts + 31230 } /* Create the rbu_tmp_xxx table and the triggers to populate it. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - v6 = __ccgo_ts + 31096 + v6 = __ccgo_ts + 31242 } else { - v6 = __ccgo_ts + 1652 + v6 = __ccgo_ts + 1666 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31113, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31189, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31259, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31335, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31488, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31634, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) } _rbuObjIterPrepareTmpInsert(tls, p, pIter, zCollist, zRbuRowid) } /* Create the SELECT statement to read keys from data_xxx */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zRbuRowid1 = __ccgo_ts + 1652 + zRbuRowid1 = __ccgo_ts + 1666 zStart1 = uintptr(0) zOrder = uintptr(0) if bRbuRowid != 0 { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v7 = __ccgo_ts + 31587 + v7 = __ccgo_ts + 31733 } else { - v7 = __ccgo_ts + 31597 + v7 = __ccgo_ts + 31743 } zRbuRowid1 = v7 } @@ -182229,28 +184065,28 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } } if bRbuRowid != 0 { - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29644, 0) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29790, 0) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1652, __ccgo_ts+14994, __ccgo_ts+1652) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1666, __ccgo_ts+15087, __ccgo_ts+1666) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v8 = __ccgo_ts + 31608 + v8 = __ccgo_ts + 31754 } else { - v8 = __ccgo_ts + 1652 + v8 = __ccgo_ts + 1666 } if zStart1 != 0 { v9 = zStart1 } else { - v9 = __ccgo_ts + 1652 + v9 = __ccgo_ts + 1666 } if zOrder != 0 { - v10 = __ccgo_ts + 23211 + v10 = __ccgo_ts + 23356 } else { - v10 = __ccgo_ts + 1652 + v10 = __ccgo_ts + 1666 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31614, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31760, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) } Xsqlite3_free(tls, zStart1) Xsqlite3_free(tls, zOrder) @@ -182336,11 +184172,11 @@ func _rbuGetUpdateStmt(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintptr, p (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpNext = (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate = pUp if zSet != 0 { - zPrefix = __ccgo_ts + 1652 + zPrefix = __ccgo_ts + 1666 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { - zPrefix = __ccgo_ts + 31001 + zPrefix = __ccgo_ts + 31147 } - zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31662, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) + zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31808, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pUp+8, p+64, zUpdate) *(*uintptr)(unsafe.Pointer(ppStmt)) = (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate } @@ -182367,7 +184203,7 @@ func _rbuOpenDbhandle(tls *libc.TLS, p uintptr, zName uintptr, bUseVfs int32) (r } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_open_v2(tls, zName, bp, flags, v1) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) Xsqlite3_close(tls, *(*uintptr)(unsafe.Pointer(bp))) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) } @@ -182414,7 +184250,7 @@ func _rbuLoadState(tls *libc.TLS, p uintptr) (r uintptr) { if pRet == uintptr(0) { return uintptr(0) } - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31692, libc.VaList(bp+24, p+48))) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31838, libc.VaList(bp+24, p+48))) for *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { switch Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) { case int32(RBU_STATE_STAGE): @@ -182473,27 +184309,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu = _rbuOpenDbhandle(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, int32(1)) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain = dbMain if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6589, int32(SQLITE_FCNTL_RBUCNT), p) + Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6653, int32(SQLITE_FCNTL_RBUCNT), p) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState == uintptr(0) { - zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6589) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31722, libc.VaList(bp+8, zFile, zFile)) + zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6653) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31868, libc.VaList(bp+8, zFile, zFile)) } } /* If using separate RBU and state databases, attach the state database to ** the RBU db handle now. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState != 0 { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31750, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) - libc.Xmemcpy(tls, p+48, __ccgo_ts+3422, uint64(4)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31896, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+3486, uint64(4)) } else { - libc.Xmemcpy(tls, p+48, __ccgo_ts+6589, uint64(4)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+6653, uint64(4)) } /* If it has not already been created, create the rbu_state table */ - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31768, libc.VaList(bp+8, p+48)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31914, libc.VaList(bp+8, p+48)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { bOpen = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FnRbu = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FpRbuFd = uintptr(0) - rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6589, int32(SQLITE_FCNTL_RBUCNT), p) + rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6653, int32(SQLITE_FCNTL_RBUCNT), p) if rc != int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc } @@ -182526,10 +184362,10 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) return } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31834, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31980, 0) } else { zExtra = uintptr(0) - if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24600, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { + if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24723, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { zExtra = (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu + 5 for *(*int8)(unsafe.Pointer(zExtra)) != 0 { v1 = zExtra @@ -182543,16 +184379,16 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if zExtra == uintptr(0) { - v2 = __ccgo_ts + 1652 + v2 = __ccgo_ts + 1666 } else { - v2 = __ccgo_ts + 31866 + v2 = __ccgo_ts + 32012 } if zExtra == uintptr(0) { - v3 = __ccgo_ts + 1652 + v3 = __ccgo_ts + 1666 } else { v3 = zExtra } - zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+31868, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6589), v2, v3)) + zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+32014, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6653), v2, v3)) if zTarget == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) return @@ -182563,27 +184399,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31900, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32046, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31915, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32061, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31932, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32078, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6589, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6653, int32(SQLITE_FCNTL_RBU), p) } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31948, 0) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32094, 0) /* Mark the database file just opened as an RBU target database. If ** this call returns SQLITE_NOTFOUND, then the RBU vfs is not in use. ** This is an error. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6589, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6653, int32(SQLITE_FCNTL_RBU), p) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31976, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32122, 0) } } @@ -182633,7 +184469,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxShmMap})))(tls, pDb, 0, libc.Int32FromInt32(32)*libc.Int32FromInt32(1024), 0, bp) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - iRet = int64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))<= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+32976, zState+uintptr(n-int32(7)), uint64(7)) { + if n >= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+33122, zState+uintptr(n-int32(7)), uint64(7)) { return _rbuMisuseError(tls) } } @@ -183850,16 +185686,16 @@ func _rbuEditErrmsg(tls *libc.TLS, p uintptr) { nErrmsg = libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg) i = uint32(0) for { - if !(uint64(i) < nErrmsg-uint64(8)) { + if !(uint64(uint64(i)) < nErrmsg-uint64(8)) { break } - if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31001, uint64(8)) == 0 { + if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31147, uint64(8)) == 0 { nDel = int32(8) - for int32(*(*int8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) >= int32('0') && int32(*(*int8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) <= int32('9') { + for int32(*(*int8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(uint32(nDel)))))) >= int32('0') && int32(*(*int8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(uint32(nDel)))))) <= int32('9') { nDel++ } - libc.Xmemmove(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i+uint32(nDel)), nErrmsg+uint64(1)-uint64(i)-uint64(nDel)) - nErrmsg -= uint64(nDel) + libc.Xmemmove(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i+uint32(uint32(nDel))), nErrmsg+uint64(1)-uint64(uint64(i))-uint64(uint64(nDel))) + nErrmsg -= uint64(uint64(nDel)) } goto _1 _1: @@ -183881,7 +185717,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { if p != 0 { /* Commit the transaction to the *-oal file. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14898, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14991, uintptr(0), uintptr(0), p+64) } /* Sync the db file if currently doing an incremental checkpoint */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { @@ -183890,7 +185726,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { } _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14898, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14991, uintptr(0), uintptr(0), p+64) } /* Close any open statement handles. */ _rbuObjIterFinalize(tls, p+80) @@ -183900,7 +185736,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { ** specifying the current target and state databases to start a new ** vacuum from scratch. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu != 0 { - rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32984, uintptr(0), uintptr(0), uintptr(0)) + rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33130, uintptr(0), uintptr(0), uintptr(0)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_DONE) && rc2 != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc2 } @@ -183951,7 +185787,7 @@ func Xsqlite3rbu_bp_progress(tls *libc.TLS, p uintptr, pnOne uintptr, pnTwo uint switch (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage { case int32(RBU_STAGE_OAL): if (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPhaseOneStep > 0 { - *(*int32)(unsafe.Pointer(pnOne)) = int32(int64(MAX_PROGRESS) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).FnProgress) / (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPhaseOneStep) + *(*int32)(unsafe.Pointer(pnOne)) = int32(int64(int64(MAX_PROGRESS)) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).FnProgress) / (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPhaseOneStep) } else { *(*int32)(unsafe.Pointer(pnOne)) = -int32(1) } @@ -183961,7 +185797,7 @@ func Xsqlite3rbu_bp_progress(tls *libc.TLS, p uintptr, pnOne uintptr, pnTwo uint *(*int32)(unsafe.Pointer(pnTwo)) = 0 case int32(RBU_STAGE_CKPT): *(*int32)(unsafe.Pointer(pnOne)) = MAX_PROGRESS - *(*int32)(unsafe.Pointer(pnTwo)) = int32(int64(MAX_PROGRESS) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep) / int64((*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame)) + *(*int32)(unsafe.Pointer(pnTwo)) = int32(int64(int64(MAX_PROGRESS)) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep) / int64((*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame)) case int32(RBU_STAGE_DONE): *(*int32)(unsafe.Pointer(pnOne)) = MAX_PROGRESS *(*int32)(unsafe.Pointer(pnTwo)) = MAX_PROGRESS @@ -184001,7 +185837,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14898, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14991, uintptr(0), uintptr(0), uintptr(0)) } } /* Sync the db file */ @@ -184014,19 +185850,19 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { rc = (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14898, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14991, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 14883 + v1 = __ccgo_ts + 14976 } else { - v1 = __ccgo_ts + 32936 + v1 = __ccgo_ts + 33082 } zBegin = v1 rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, zBegin, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32936, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33082, uintptr(0), uintptr(0), uintptr(0)) } } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -184356,8 +186192,8 @@ func _rbuPutU32(tls *libc.TLS, aBuf uintptr, iVal Tu32) { } func _rbuPutU16(tls *libc.TLS, aBuf uintptr, iVal Tu16) { - *(*Tu8)(unsafe.Pointer(aBuf)) = uint8(int32(iVal) >> int32(8) & int32(0xFF)) - *(*Tu8)(unsafe.Pointer(aBuf + 1)) = uint8(int32(iVal) >> 0 & int32(0xFF)) + *(*Tu8)(unsafe.Pointer(aBuf)) = uint8(int32(int32(iVal)) >> int32(8) & int32(0xFF)) + *(*Tu8)(unsafe.Pointer(aBuf + 1)) = uint8(int32(int32(iVal)) >> 0 & int32(0xFF)) } // C documentation @@ -184377,7 +186213,7 @@ func _rbuVfsRead(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst T } else { if pRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FeStage == int32(RBU_STAGE_OAL) && (*Trbu_file)(unsafe.Pointer(p)).FopenFlags&int32(SQLITE_OPEN_WAL) != 0 && iOfst >= (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FiOalSz { rc = SQLITE_OK - libc.Xmemset(tls, zBuf, 0, uint64(iAmt)) + libc.Xmemset(tls, zBuf, 0, uint64(uint64(iAmt))) } else { rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxRead})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, zBuf, iAmt, iOfst) /* If this is being called to read the first page of the target @@ -184436,10 +186272,10 @@ func _rbuVfsWrite(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst } else { if pRbu != 0 { if (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FeStage == int32(RBU_STAGE_OAL) && (*Trbu_file)(unsafe.Pointer(p)).FopenFlags&int32(SQLITE_OPEN_WAL) != 0 && iOfst >= (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FiOalSz { - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FiOalSz = int64(iAmt) + iOfst + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FiOalSz = int64(int64(iAmt)) + iOfst } else { if (*Trbu_file)(unsafe.Pointer(p)).FopenFlags&int32(SQLITE_OPEN_DELETEONCLOSE) != 0 { - szNew = int64(iAmt) + iOfst + szNew = int64(int64(iAmt)) + iOfst if szNew > (*Trbu_file)(unsafe.Pointer(p)).Fsz { rc = _rbuUpdateTempSize(tls, p, szNew) if rc != SQLITE_OK { @@ -184592,7 +186428,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r rc = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xControl})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, int32(SQLITE_FCNTL_ZIPVFS), bp) if rc == SQLITE_OK { rc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33011, 0) + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33157, 0) } else { if rc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpTargetFd = p @@ -184618,7 +186454,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r if rc == SQLITE_OK && op == int32(SQLITE_FCNTL_VFSNAME) { pRbuVfs = (*Trbu_file)(unsafe.Pointer(p)).FpRbuVfs zIn = *(*uintptr)(unsafe.Pointer(pArg)) - zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33034, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) + zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33180, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) *(*uintptr)(unsafe.Pointer(pArg)) = zOut if zOut == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -184708,7 +186544,7 @@ func _rbuVfsShmMap(tls *libc.TLS, pFile uintptr, iRegion int32, szRegion int32, ** instead of a file on disk. */ if eStage == int32(RBU_STAGE_OAL) { nByte = int64(uint64(iRegion+libc.Int32FromInt32(1)) * uint64(8)) - apNew = Xsqlite3_realloc64(tls, (*Trbu_file)(unsafe.Pointer(p)).FapShm, uint64(nByte)) + apNew = Xsqlite3_realloc64(tls, (*Trbu_file)(unsafe.Pointer(p)).FapShm, uint64(uint64(nByte))) /* This is an RBU connection that uses its own heap memory for the ** pages of the *-shm file. Since no other process can have run ** recovery, the connection must request *-shm pages in order @@ -184721,11 +186557,11 @@ func _rbuVfsShmMap(tls *libc.TLS, pFile uintptr, iRegion int32, szRegion int32, (*Trbu_file)(unsafe.Pointer(p)).FnShm = iRegion + int32(1) } if rc == SQLITE_OK { - pNew = Xsqlite3_malloc64(tls, uint64(szRegion)) + pNew = Xsqlite3_malloc64(tls, uint64(uint64(szRegion))) if pNew == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, pNew, 0, uint64(szRegion)) + libc.Xmemset(tls, pNew, 0, uint64(uint64(szRegion))) *(*uintptr)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FapShm + uintptr(iRegion)*8)) = pNew } } @@ -184813,7 +186649,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag if pDb != 0 { if (*Trbu_file)(unsafe.Pointer(pDb)).FpRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FeStage == int32(RBU_STAGE_OAL) { if (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FzTarget == uintptr(0) { - zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6589) + zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6653) zOpen = Xsqlite3_filename_wal(tls, zOpen) } nOpen = libc.Xstrlen(tls, zOpen) @@ -184827,7 +186663,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag } else { (*Trbu_file)(unsafe.Pointer(pFd)).FpRbu = (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).FpRbu } - if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33045, 0) != 0 { + if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33191, 0) != 0 { oflags = libc.Int32FromInt32(SQLITE_OPEN_TEMP_DB) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_EXCLUSIVE) | libc.Int32FromInt32(SQLITE_OPEN_DELETEONCLOSE) zOpen = uintptr(0) } @@ -185098,7 +186934,7 @@ func Xsqlite3rbu_create_vfs(tls *libc.TLS, zName uintptr, zParent uintptr) (r in rc = SQLITE_OK nName = libc.Xstrlen(tls, zName) nByte = uint64(208) + nName + uint64(1) - pNew = Xsqlite3_malloc64(tls, nByte) + pNew = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) if pNew == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { /* Parent VFS */ @@ -185380,7 +187216,7 @@ func _statConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint _sqlite3TokenInit(tls, bp, *(*uintptr)(unsafe.Pointer(argv + 3*8))) iDb = _sqlite3FindDb(tls, db, bp) if iDb < 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12195, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12320, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) return int32(SQLITE_ERROR) } } else { @@ -185611,7 +187447,7 @@ func _statClose(tls *libc.TLS, pCursor uintptr) (r int32) { func _getLocalPayload(tls *libc.TLS, nUsable int32, flags Tu8, nTotal int32) (r int32) { var nLocal, nMaxLocal, nMinLocal int32 _, _, _ = nLocal, nMaxLocal, nMinLocal - if int32(flags) == int32(0x0D) { /* Table leaf node */ + if int32(int32(flags)) == int32(0x0D) { /* Table leaf node */ nMinLocal = (nUsable-int32(12))*int32(32)/int32(255) - int32(23) nMaxLocal = nUsable - int32(35) } else { /* Index interior and leaf nodes */ @@ -185691,7 +187527,7 @@ func _statDecodePage(tls *libc.TLS, pBt uintptr, p uintptr) (r int32) { _sqlite3BtreeEnter(tls, pBt) nUsable = szPage - _sqlite3BtreeGetReserveNoMutex(tls, pBt) _sqlite3BtreeLeave(tls, pBt) - (*TStatPage)(unsafe.Pointer(p)).FaCell = Xsqlite3_malloc64(tls, uint64((*TStatPage)(unsafe.Pointer(p)).FnCell+libc.Int32FromInt32(1))*uint64(32)) + (*TStatPage)(unsafe.Pointer(p)).FaCell = Xsqlite3_malloc64(tls, uint64(uint64((*TStatPage)(unsafe.Pointer(p)).FnCell+libc.Int32FromInt32(1))*uint64(32))) if (*TStatPage)(unsafe.Pointer(p)).FaCell == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -185731,14 +187567,14 @@ func _statDecodePage(tls *libc.TLS, pBt uintptr, p uintptr) (r int32) { goto statPageIsCorrupt } (*TStatCell)(unsafe.Pointer(pCell)).FnLocal = nLocal - if *(*Tu32)(unsafe.Pointer(bp)) > uint32(nLocal) { - nOvfl = int32((*(*Tu32)(unsafe.Pointer(bp)) - uint32(nLocal) + uint32(nUsable) - uint32(4) - uint32(1)) / uint32(nUsable-libc.Int32FromInt32(4))) + if *(*Tu32)(unsafe.Pointer(bp)) > uint32(uint32(nLocal)) { + nOvfl = int32((*(*Tu32)(unsafe.Pointer(bp)) - uint32(uint32(nLocal)) + uint32(uint32(nUsable)) - uint32(4) - uint32(1)) / uint32(nUsable-libc.Int32FromInt32(4))) if iOff+nLocal+int32(4) > nUsable || *(*Tu32)(unsafe.Pointer(bp)) > uint32(0x7fffffff) { goto statPageIsCorrupt } - (*TStatCell)(unsafe.Pointer(pCell)).FnLastOvfl = int32(*(*Tu32)(unsafe.Pointer(bp)) - uint32(nLocal) - uint32((nOvfl-int32(1))*(nUsable-int32(4)))) + (*TStatCell)(unsafe.Pointer(pCell)).FnLastOvfl = int32(*(*Tu32)(unsafe.Pointer(bp)) - uint32(uint32(nLocal)) - uint32((nOvfl-int32(1))*(nUsable-int32(4)))) (*TStatCell)(unsafe.Pointer(pCell)).FnOvfl = nOvfl - (*TStatCell)(unsafe.Pointer(pCell)).FaOvfl = Xsqlite3_malloc64(tls, uint64(4)*uint64(nOvfl)) + (*TStatCell)(unsafe.Pointer(pCell)).FaOvfl = Xsqlite3_malloc64(tls, uint64(uint64(4)*uint64(uint64(nOvfl)))) if (*TStatCell)(unsafe.Pointer(pCell)).FaOvfl == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -185770,6 +187606,7 @@ func _statDecodePage(tls *libc.TLS, pBt uintptr, p uintptr) (r int32) { } } return SQLITE_OK + goto statPageIsCorrupt statPageIsCorrupt: ; (*TStatPage)(unsafe.Pointer(p)).Fflags = uint8(0) @@ -185833,7 +187670,7 @@ func _statGetPage(tls *libc.TLS, pBt uintptr, iPg Tu32, pPg uintptr) (r int32) { rc = _sqlite3PagerGet(tls, _sqlite3BtreePager(tls, pBt), iPg, bp, 0) if rc == SQLITE_OK { a = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) - libc.Xmemcpy(tls, (*TStatPage)(unsafe.Pointer(pPg)).FaPg, a, uint64(pgsz)) + libc.Xmemcpy(tls, (*TStatPage)(unsafe.Pointer(pPg)).FaPg, a, uint64(uint64(pgsz))) _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -185860,6 +187697,7 @@ func _statNext(tls *libc.TLS, pCursor uintptr) (r int32) { pPager = _sqlite3BtreePager(tls, pBt) Xsqlite3_free(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath) (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = uintptr(0) + goto statNextRestart statNextRestart: ; if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage < 0 { @@ -185877,7 +187715,7 @@ statNextRestart: (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiPgno = iRoot (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33056, 0) + v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33202, 0) z = v1 (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FzPath = v1 if z == uintptr(0) { @@ -185915,8 +187753,8 @@ statNextRestart: if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { (*TStatCursor)(unsafe.Pointer(pCsr)).FzName = Xsqlite3_column_text(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FpStmt, 0) (*TStatCursor)(unsafe.Pointer(pCsr)).FiPageno = *(*Tu32)(unsafe.Pointer((*TStatCell)(unsafe.Pointer(pCell)).FaOvfl + uintptr(iOvfl)*4)) - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33058 - v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33067, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33204 + v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33213, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) z = v2 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v2 if z == uintptr(0) { @@ -185945,7 +187783,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage++ if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage >= int32(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(222551)) + return _sqlite3CorruptError(tls, int32(224206)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -185956,7 +187794,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnPage++ (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33079, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) + v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33225, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) z = v4 (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FzPath = v4 if z == uintptr(0) { @@ -185979,13 +187817,13 @@ statNextRestart: case int32(0x05): /* table internal */ fallthrough case int32(0x02): /* index internal */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33087 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33233 case int32(0x0D): /* table leaf */ fallthrough case int32(0x0A): /* index leaf */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33096 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33242 default: - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33101 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33247 break } *(*int32)(unsafe.Pointer(pCsr + 2108)) += (*TStatPage)(unsafe.Pointer(p1)).FnCell @@ -185994,7 +187832,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnMxPayload = (*TStatPage)(unsafe.Pointer(p1)).FnMxPayload } if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) + v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) z = v5 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v5 if z == uintptr(0) { @@ -186013,7 +187851,7 @@ statNextRestart: ; i++ } - *(*Ti64)(unsafe.Pointer(pCsr + 2128)) += int64(nPayload) + *(*Ti64)(unsafe.Pointer(pCsr + 2128)) += int64(int64(nPayload)) /* If computing aggregate space usage by btree, continue with the ** next page. The loop will exit via the return at label-statNext-done */ @@ -186083,12 +187921,12 @@ func _statFilter(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uintptr, a (*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg = uint8(0) } pSql = Xsqlite3_str_new(tls, (*TStatTable)(unsafe.Pointer(pTab)).Fdb) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33111, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33257, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) if zName != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33266, libc.VaList(bp+8, zName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33412, libc.VaList(bp+8, zName)) } if idxNum&int32(0x08) != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33280, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33426, 0) } zSql = Xsqlite3_str_finish(tls, pSql) if zSql == uintptr(0) { @@ -186165,7 +188003,7 @@ func _statRowid(tls *libc.TLS, pCursor uintptr, pRowid uintptr) (r int32) { // ** Invoke this routine to register the "dbstat" virtual table module // */ func _sqlite3DbstatRegister(tls *libc.TLS, db uintptr) (r int32) { - return Xsqlite3_create_module(tls, db, __ccgo_ts+33295, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) + return Xsqlite3_create_module(tls, db, __ccgo_ts+33441, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) } var _dbstat_module = Tsqlite3_module{} @@ -186624,7 +188462,7 @@ func _sessionVarintPut(tls *libc.TLS, aBuf uintptr, iVal int32) (r int32) { // ** Return the number of bytes required to store value iVal as a varint. // */ func _sessionVarintLen(tls *libc.TLS, iVal int32) (r int32) { - return _sqlite3VarintLen(tls, uint64(iVal)) + return _sqlite3VarintLen(tls, uint64(uint64(iVal))) } // C documentation @@ -186659,8 +188497,8 @@ func _sessionGetI64(tls *libc.TLS, aRec uintptr) (r Tsqlite3_int64) { _, _ = x, y x = uint64(uint32(*(*Tu8)(unsafe.Pointer(aRec)))< 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nVarint+int32(1)), z, uint64(n)) + libc.Xmemcpy(tls, aBuf+uintptr(nVarint+int32(1)), z, uint64(uint64(n))) } } nByte = int32(1) + nVarint + n @@ -186750,7 +188588,7 @@ func _sessionSerializeValue(tls *libc.TLS, aBuf uintptr, pValue uintptr, pnWrite } } if pnWrite != 0 { - *(*Tsqlite3_int64)(unsafe.Pointer(pnWrite)) += int64(nByte) + *(*Tsqlite3_int64)(unsafe.Pointer(pnWrite)) += int64(int64(nByte)) } return SQLITE_OK } @@ -186765,7 +188603,7 @@ func _sessionSerializeValue(tls *libc.TLS, aBuf uintptr, pValue uintptr, pnWrite func _sessionMalloc64(tls *libc.TLS, pSession uintptr, nByte Ti64) (r uintptr) { var pRet, p1 uintptr _, _ = pRet, p1 - pRet = Xsqlite3_malloc64(tls, uint64(nByte)) + pRet = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) if pSession != 0 { p1 = pSession + 56 *(*Ti64)(unsafe.Pointer(p1)) = Ti64(uint64(*(*Ti64)(unsafe.Pointer(p1))) + Xsqlite3_msize(tls, pRet)) @@ -187007,7 +188845,7 @@ func _sessionChangeHash(tls *libc.TLS, pTab uintptr, bPkOnly int32, aRecord uint ; i++ } - return h % uint32(nBucket) + return h % uint32(uint32(nBucket)) } // C documentation @@ -187032,7 +188870,7 @@ func _sessionChangeEqual(tls *libc.TLS, pTab uintptr, bLeftPkOnly int32, aLeft u if *(*Tu8)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(iCol))) != 0 { n1 = _sessionSerialLen(tls, a1) n2 = _sessionSerialLen(tls, a2) - if n1 != n2 || libc.Xmemcmp(tls, a1, a2, uint64(n1)) != 0 { + if n1 != n2 || libc.Xmemcmp(tls, a1, a2, uint64(uint64(n1))) != 0 { return 0 } a1 += uintptr(n1) @@ -187083,10 +188921,10 @@ func _sessionMergeRecord(tls *libc.TLS, paOut uintptr, nCol int32, aLeft uintptr n1 = _sessionSerialLen(tls, a1) n2 = _sessionSerialLen(tls, a2) if *(*Tu8)(unsafe.Pointer(a2)) != 0 { - libc.Xmemcpy(tls, aOut, a2, uint64(n2)) + libc.Xmemcpy(tls, aOut, a2, uint64(uint64(n2))) aOut += uintptr(n2) } else { - libc.Xmemcpy(tls, aOut, a1, uint64(n1)) + libc.Xmemcpy(tls, aOut, a1, uint64(uint64(n1))) aOut += uintptr(n1) } a1 += uintptr(n1) @@ -187343,14 +189181,14 @@ func _sessionGrowHash(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab uin v1 = int32(128) } nNew = int64(2) * int64(v1) - apNew = _sessionMalloc64(tls, pSession, int64(uint64(8)*uint64(nNew))) + apNew = _sessionMalloc64(tls, pSession, int64(uint64(8)*uint64(uint64(nNew)))) if apNew == uintptr(0) { if (*TSessionTable)(unsafe.Pointer(pTab)).FnChange == 0 { return int32(SQLITE_ERROR) } return SQLITE_OK } - libc.Xmemset(tls, apNew, 0, uint64(8)*uint64(nNew)) + libc.Xmemset(tls, apNew, 0, uint64(uint64(8)*uint64(uint64(nNew)))) i = 0 for { if !(i < (*TSessionTable)(unsafe.Pointer(pTab)).FnChange) { @@ -187362,7 +189200,7 @@ func _sessionGrowHash(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab uin break } bPkOnly = libc.BoolInt32(int32((*TSessionChange)(unsafe.Pointer(p)).Fop) == int32(SQLITE_DELETE) && bPatchset != 0) - iHash = int32(_sessionChangeHash(tls, pTab, bPkOnly, (*TSessionChange)(unsafe.Pointer(p)).FaRecord, int32(nNew))) + iHash = int32(_sessionChangeHash(tls, pTab, bPkOnly, (*TSessionChange)(unsafe.Pointer(p)).FaRecord, int32(int32(nNew)))) pNext = (*TSessionChange)(unsafe.Pointer(p)).FpNext (*TSessionChange)(unsafe.Pointer(p)).FpNext = *(*uintptr)(unsafe.Pointer(apNew + uintptr(iHash)*8)) *(*uintptr)(unsafe.Pointer(apNew + uintptr(iHash)*8)) = p @@ -187377,7 +189215,7 @@ func _sessionGrowHash(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab uin i++ } _sessionFree(tls, pSession, (*TSessionTable)(unsafe.Pointer(pTab)).FapChange) - (*TSessionTable)(unsafe.Pointer(pTab)).FnChange = int32(nNew) + (*TSessionTable)(unsafe.Pointer(pTab)).FnChange = int32(int32(nNew)) (*TSessionTable)(unsafe.Pointer(pTab)).FapChange = apNew } return SQLITE_OK @@ -187436,20 +189274,20 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, *(*uintptr)(unsafe.Pointer(pazDflt)) = uintptr(0) } nThis = _sqlite3Strlen30(tls, zThis) - if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11586, zThis) { + if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11711, zThis) { rc = Xsqlite3_table_column_metadata(tls, db, zDb, zThis, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { /* For sqlite_stat1, pretend that (tbl,idx) is the PRIMARY KEY. */ - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33302, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33448, 0) } else { if rc == int32(SQLITE_ERROR) { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1652, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1666, 0) } else { return rc } } } else { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33423, libc.VaList(bp+16, zDb, zThis)) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33569, libc.VaList(bp+16, zDb, zThis)) } if !(zPragma != 0) { return int32(SQLITE_NOMEM) @@ -187473,15 +189311,15 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, bRowid = 0 } nDbCol += bRowid - nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+29644)) + nByte = Tsqlite3_int64(uint64(nByte) + uint64(libc.Xstrlen(tls, __ccgo_ts+29790))) rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp))) if rc == SQLITE_OK { - nByte = Tsqlite3_int64(uint64(nByte) + uint64(nDbCol)*(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(2)+libc.Uint64FromInt64(1)+libc.Uint64FromInt32(1)+libc.Uint64FromInt32(1))) + nByte = Tsqlite3_int64(uint64(nByte) + uint64(uint64(uint64(nDbCol))*(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(2)+libc.Uint64FromInt64(1)+libc.Uint64FromInt32(1)+libc.Uint64FromInt32(1)))) pAlloc = _sessionMalloc64(tls, pSession, nByte) if pAlloc == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, pAlloc, 0, uint64(nByte)) + libc.Xmemset(tls, pAlloc, 0, uint64(uint64(nByte))) } } if rc == SQLITE_OK { @@ -187497,8 +189335,8 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, } i = 0 if bRowid != 0 { - nName = libc.Xstrlen(tls, __ccgo_ts+29644) - libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29644, nName+uint64(1)) + nName = libc.Xstrlen(tls, __ccgo_ts+29790) + libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29790, nName+uint64(1)) *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)) = pAlloc pAlloc += uintptr(nName + uint64(1)) *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) = uint8(1) @@ -187590,12 +189428,12 @@ func _sessionInitTable(tls *libc.TLS, pSession uintptr, pTab uintptr, db uintptr ; i++ } - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11586, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11711, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 = int32(1) } if pSession != 0 && (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize != 0 { p3 = pSession + 64 - *(*Ti64)(unsafe.Pointer(p3)) = Ti64(uint64(*(*Ti64)(unsafe.Pointer(p3))) + (uint64(libc.Int32FromInt32(1)+_sessionVarintLen(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FnCol)+(*TSessionTable)(unsafe.Pointer(pTab)).FnCol) + libc.Xstrlen(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) + libc.Uint64FromInt32(1))) + *(*Ti64)(unsafe.Pointer(p3)) = Ti64(uint64(*(*Ti64)(unsafe.Pointer(p3))) + uint64(uint64(libc.Int32FromInt32(1)+_sessionVarintLen(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FnCol)+(*TSessionTable)(unsafe.Pointer(pTab)).FnCol)+libc.Xstrlen(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName)+libc.Uint64FromInt32(1))) } } } @@ -187711,8 +189549,8 @@ func _sessionUpdateOneChange(tls *libc.TLS, pSession uintptr, pRc uintptr, pp ui nIncr = int32(1) + _sessionVarintLen(tls, n) + n break } - nByte = int32(uint64(nIncr) + (uint64(32) + uint64((*TSessionChange)(unsafe.Pointer(pOld)).FnRecord))) - pNew = _sessionMalloc64(tls, pSession, int64(nByte)) + nByte = int32(uint64(uint64(nIncr)) + (uint64(32) + uint64((*TSessionChange)(unsafe.Pointer(pOld)).FnRecord))) + pNew = _sessionMalloc64(tls, pSession, int64(int64(nByte))) if pNew == uintptr(0) { *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) return @@ -187723,7 +189561,7 @@ func _sessionUpdateOneChange(tls *libc.TLS, pSession uintptr, pRc uintptr, pp ui v2 = pNew + 8 v1 = *(*int32)(unsafe.Pointer(v2)) *(*int32)(unsafe.Pointer(v2))++ - *(*Tu8)(unsafe.Pointer((*TSessionChange)(unsafe.Pointer(pNew)).FaRecord + uintptr(v1))) = uint8(eType) + *(*Tu8)(unsafe.Pointer((*TSessionChange)(unsafe.Pointer(pNew)).FaRecord + uintptr(v1))) = uint8(uint8(eType)) switch eType { case int32(SQLITE_INTEGER): iVal = Xsqlite3_column_int64(tls, pDflt, iField) @@ -187739,13 +189577,13 @@ func _sessionUpdateOneChange(tls *libc.TLS, pSession uintptr, pRc uintptr, pp ui n1 = Xsqlite3_column_bytes(tls, pDflt, iField) z = Xsqlite3_column_text(tls, pDflt, iField) *(*int32)(unsafe.Pointer(pNew + 8)) += _sessionVarintPut(tls, (*TSessionChange)(unsafe.Pointer(pNew)).FaRecord+uintptr((*TSessionChange)(unsafe.Pointer(pNew)).FnRecord), n1) - libc.Xmemcpy(tls, (*TSessionChange)(unsafe.Pointer(pNew)).FaRecord+uintptr((*TSessionChange)(unsafe.Pointer(pNew)).FnRecord), z, uint64(n1)) + libc.Xmemcpy(tls, (*TSessionChange)(unsafe.Pointer(pNew)).FaRecord+uintptr((*TSessionChange)(unsafe.Pointer(pNew)).FnRecord), z, uint64(uint64(n1))) *(*int32)(unsafe.Pointer(pNew + 8)) += n1 case int32(SQLITE_BLOB): n2 = Xsqlite3_column_bytes(tls, pDflt, iField) z1 = Xsqlite3_column_blob(tls, pDflt, iField) *(*int32)(unsafe.Pointer(pNew + 8)) += _sessionVarintPut(tls, (*TSessionChange)(unsafe.Pointer(pNew)).FaRecord+uintptr((*TSessionChange)(unsafe.Pointer(pNew)).FnRecord), n2) - libc.Xmemcpy(tls, (*TSessionChange)(unsafe.Pointer(pNew)).FaRecord+uintptr((*TSessionChange)(unsafe.Pointer(pNew)).FnRecord), z1, uint64(n2)) + libc.Xmemcpy(tls, (*TSessionChange)(unsafe.Pointer(pNew)).FaRecord+uintptr((*TSessionChange)(unsafe.Pointer(pNew)).FnRecord), z1, uint64(uint64(n2))) *(*int32)(unsafe.Pointer(pNew + 8)) += n2 default: break @@ -187757,7 +189595,7 @@ func _sessionUpdateOneChange(tls *libc.TLS, pSession uintptr, pRc uintptr, pp ui (*TSessionChange)(unsafe.Pointer(pNew)).FnRecordField++ *(*int32)(unsafe.Pointer(pNew + 4)) += nIncr if pSession != 0 { - *(*Ti64)(unsafe.Pointer(pSession + 64)) += int64(nIncr) + *(*Ti64)(unsafe.Pointer(pSession + 64)) += int64(int64(nIncr)) } } } @@ -187800,12 +189638,12 @@ func _sessionBufferGrow(tls *libc.TLS, p uintptr, nByte Ti64, pRc uintptr) (r in return int32(1) } } - aNew = Xsqlite3_realloc64(tls, (*TSessionBuffer)(unsafe.Pointer(p)).FaBuf, uint64(nNew)) + aNew = Xsqlite3_realloc64(tls, (*TSessionBuffer)(unsafe.Pointer(p)).FaBuf, uint64(uint64(nNew))) if uintptr(0) == aNew { *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) } else { (*TSessionBuffer)(unsafe.Pointer(p)).FaBuf = aNew - (*TSessionBuffer)(unsafe.Pointer(p)).FnAlloc = int32(nNew) + (*TSessionBuffer)(unsafe.Pointer(p)).FnAlloc = int32(int32(nNew)) } } return libc.BoolInt32(*(*int32)(unsafe.Pointer(pRc)) != SQLITE_OK) @@ -187826,7 +189664,7 @@ func _sessionAppendStr(tls *libc.TLS, p uintptr, zStr uintptr, pRc uintptr) { _ = nStr nStr = _sqlite3Strlen30(tls, zStr) if 0 == _sessionBufferGrow(tls, p, int64(nStr+int32(1)), pRc) { - libc.Xmemcpy(tls, (*TSessionBuffer)(unsafe.Pointer(p)).FaBuf+uintptr((*TSessionBuffer)(unsafe.Pointer(p)).FnBuf), zStr, uint64(nStr)) + libc.Xmemcpy(tls, (*TSessionBuffer)(unsafe.Pointer(p)).FaBuf+uintptr((*TSessionBuffer)(unsafe.Pointer(p)).FnBuf), zStr, uint64(uint64(nStr))) *(*int32)(unsafe.Pointer(p + 8)) += nStr *(*Tu8)(unsafe.Pointer((*TSessionBuffer)(unsafe.Pointer(p)).FaBuf + uintptr((*TSessionBuffer)(unsafe.Pointer(p)).FnBuf))) = uint8(0x00) } @@ -187879,10 +189717,10 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin _, _, _, _ = ii, zDflt, zSep, v2 *(*TSessionBuffer)(unsafe.Pointer(bp)) = TSessionBuffer{} *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK - zSep = __ccgo_ts + 11206 + zSep = __ccgo_ts + 11331 ii = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33452, 0) + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33598, 0) ii = 0 for { if !(ii < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol) { @@ -187891,11 +189729,11 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin if *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) != 0 { v2 = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) } else { - v2 = __ccgo_ts + 1653 + v2 = __ccgo_ts + 1667 } zDflt = v2 - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5080, libc.VaList(bp+32, zSep, zDflt)) - zSep = __ccgo_ts + 14994 + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5144, libc.VaList(bp+32, zSep, zDflt)) + zSep = __ccgo_ts + 15087 goto _1 _1: ; @@ -188141,7 +189979,7 @@ func _sessionUpdateMaxSize(tls *libc.TLS, op int32, pSession uintptr, pTab uintp if *(*Ti64)(unsafe.Pointer(bp)) > int64((*TSessionChange)(unsafe.Pointer(pC)).FnMaxSize) { nIncr = int32(*(*Ti64)(unsafe.Pointer(bp)) - int64((*TSessionChange)(unsafe.Pointer(pC)).FnMaxSize)) (*TSessionChange)(unsafe.Pointer(pC)).FnMaxSize = int32(*(*Ti64)(unsafe.Pointer(bp))) - *(*Ti64)(unsafe.Pointer(pSession + 64)) += int64(nIncr) + *(*Ti64)(unsafe.Pointer(pSession + 64)) += int64(int64(nIncr)) } return SQLITE_OK } @@ -188213,7 +190051,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u rc = int32(SQLITE_NOMEM) goto error_out } - _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1652, uint8(0), libc.UintptrFromInt32(0)) + _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1666, uint8(0), libc.UintptrFromInt32(0)) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpZeroBlob = p } } @@ -188313,7 +190151,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u } (*TSessionChange)(unsafe.Pointer(pC)).FnRecordField = uint16((*TSessionTable)(unsafe.Pointer(pTab)).FnCol) (*TSessionChange)(unsafe.Pointer(pC)).FnRecord = int32(*(*Tsqlite3_int64)(unsafe.Pointer(bp + 56))) - (*TSessionChange)(unsafe.Pointer(pC)).Fop = uint8(op) + (*TSessionChange)(unsafe.Pointer(pC)).Fop = uint8(uint8(op)) (*TSessionChange)(unsafe.Pointer(pC)).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(*(*int32)(unsafe.Pointer(bp)))*8)) *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(*(*int32)(unsafe.Pointer(bp)))*8)) = pC } else { @@ -188330,6 +190168,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u } } /* If an error has occurred, mark the session object as failed. */ + goto error_out error_out: ; if (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 != 0 { @@ -188533,7 +190372,7 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr var i int32 var zRet, zSep uintptr _, _, _ = i, zRet, zSep - zSep = __ccgo_ts + 1652 + zSep = __ccgo_ts + 1666 zRet = uintptr(0) i = 0 for { @@ -188541,8 +190380,8 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr break } if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33459, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 22017 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33605, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 22162 if zRet == uintptr(0) { break } @@ -188561,7 +190400,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint var bHave, i int32 var zRet, zSep uintptr _, _, _, _ = bHave, i, zRet, zSep - zSep = __ccgo_ts + 1652 + zSep = __ccgo_ts + 1666 zRet = uintptr(0) bHave = 0 i = 0 @@ -188571,8 +190410,8 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if int32(*(*Tu8)(unsafe.Pointer(abPK + uintptr(i)))) == 0 { bHave = int32(1) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33493, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 33534 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33639, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 33680 if zRet == uintptr(0) { break } @@ -188583,7 +190422,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint i++ } if bHave == 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1726, 0) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1786, 0) } return zRet } @@ -188594,12 +190433,12 @@ func _sessionSelectFindNew(tls *libc.TLS, zDb1 uintptr, zDb2 uintptr, bRowid int var zRet, zSel, v1 uintptr _, _, _ = zRet, zSel, v1 if bRowid != 0 { - v1 = __ccgo_ts + 33539 + v1 = __ccgo_ts + 33685 } else { - v1 = __ccgo_ts + 6594 + v1 = __ccgo_ts + 6658 } zSel = v1 - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33550, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33696, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) return zRet } @@ -188660,11 +190499,11 @@ func _sessionAllCols(tls *libc.TLS, zDb uintptr, pTab uintptr) (r uintptr) { break } if zRet != 0 { - v2 = __ccgo_ts + 14994 + v2 = __ccgo_ts + 15087 } else { - v2 = __ccgo_ts + 1652 + v2 = __ccgo_ts + 1666 } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33629, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33775, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) if !(zRet != 0) { break } @@ -188692,7 +190531,7 @@ func _sessionDiffFindModified(tls *libc.TLS, pSession uintptr, pTab uintptr, zFr } else { z1 = _sessionAllCols(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, pTab) z2 = _sessionAllCols(tls, zFrom, pTab) - zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33648, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) + zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33794, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) if zStmt == uintptr(0) || z1 == uintptr(0) || z2 == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -188792,7 +190631,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if bMismatch != 0 { if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33705, 0) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33851, 0) } rc = int32(SQLITE_SCHEMA) } @@ -188818,6 +190657,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u } Xsqlite3_free(tls, zExpr) } + goto diff_out diff_out: ; _sessionPreupdateHooks(tls, pSession) @@ -188839,7 +190679,7 @@ func Xsqlite3session_create(tls *libc.TLS, db uintptr, zDb uintptr, ppSession ui /* Zero the output value in case an error occurs. */ *(*uintptr)(unsafe.Pointer(ppSession)) = uintptr(0) /* Allocate and populate the new session object. */ - pNew = Xsqlite3_malloc64(tls, uint64(136)+uint64(nDb)+uint64(1)) + pNew = Xsqlite3_malloc64(tls, uint64(uint64(136)+uint64(uint64(nDb))+uint64(1))) if !(pNew != 0) { return int32(SQLITE_NOMEM) } @@ -188999,8 +190839,8 @@ func Xsqlite3session_attach(tls *libc.TLS, pSession uintptr, zName uintptr) (r i } if !(pTab != 0) { /* Allocate new SessionTable object. */ - nByte = int32(uint64(80) + uint64(nName) + uint64(1)) - pTab = _sessionMalloc64(tls, pSession, int64(nByte)) + nByte = int32(uint64(80) + uint64(uint64(nName)) + uint64(1)) + pTab = _sessionMalloc64(tls, pSession, int64(int64(nByte))) if !(pTab != 0) { rc = int32(SQLITE_NOMEM) } else { @@ -189103,8 +190943,8 @@ func _sessionAppendVarint(tls *libc.TLS, p uintptr, v int32, pRc uintptr) { // ** returning. // */ func _sessionAppendBlob(tls *libc.TLS, p uintptr, aBlob uintptr, nBlob int32, pRc uintptr) { - if nBlob > 0 && 0 == _sessionBufferGrow(tls, p, int64(nBlob), pRc) { - libc.Xmemcpy(tls, (*TSessionBuffer)(unsafe.Pointer(p)).FaBuf+uintptr((*TSessionBuffer)(unsafe.Pointer(p)).FnBuf), aBlob, uint64(nBlob)) + if nBlob > 0 && 0 == _sessionBufferGrow(tls, p, int64(int64(nBlob)), pRc) { + libc.Xmemcpy(tls, (*TSessionBuffer)(unsafe.Pointer(p)).FaBuf+uintptr((*TSessionBuffer)(unsafe.Pointer(p)).FnBuf), aBlob, uint64(uint64(nBlob))) *(*int32)(unsafe.Pointer(p + 8)) += nBlob } } @@ -189123,7 +190963,7 @@ func _sessionAppendInteger(tls *libc.TLS, p uintptr, iVal int32, pRc uintptr) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* aBuf at bp+0 */ [24]int8 - Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5142, libc.VaList(bp+32, iVal)) + Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5206, libc.VaList(bp+32, iVal)) _sessionAppendStr(tls, p, bp, pRc) } @@ -189143,7 +190983,7 @@ func _sessionAppendIdent(tls *libc.TLS, p uintptr, zStr uintptr, pRc uintptr) { var zIn, zOut, v1, v2, v3, v4, v5 uintptr _, _, _, _, _, _, _, _ = nStr, zIn, zOut, v1, v2, v3, v4, v5 nStr = _sqlite3Strlen30(tls, zStr)*int32(2) + int32(2) + int32(2) - if 0 == _sessionBufferGrow(tls, p, int64(nStr), pRc) { + if 0 == _sessionBufferGrow(tls, p, int64(int64(nStr)), pRc) { zOut = (*TSessionBuffer)(unsafe.Pointer(p)).FaBuf + uintptr((*TSessionBuffer)(unsafe.Pointer(p)).FnBuf) zIn = zStr v1 = zOut @@ -189188,7 +191028,7 @@ func _sessionAppendCol(tls *libc.TLS, p uintptr, pStmt uintptr, iCol int32, pRc _, _, _ = eType, nByte, z if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK { eType = Xsqlite3_column_type(tls, pStmt, iCol) - _sessionAppendByte(tls, p, uint8(eType), pRc) + _sessionAppendByte(tls, p, uint8(uint8(eType)), pRc) if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) { if eType == int32(SQLITE_INTEGER) { *(*Tsqlite3_int64)(unsafe.Pointer(bp)) = Xsqlite3_column_int64(tls, pStmt, iCol) @@ -189377,7 +191217,7 @@ func _sessionAppendDelete(tls *libc.TLS, pBuf uintptr, bPatchset int32, p uintpt break } if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { - _sessionAppendBlob(tls, pBuf, pStart, int32(int64(a)-int64(pStart)), bp) + _sessionAppendBlob(tls, pBuf, pStart, int32(int64(int64(a))-int64(int64(pStart))), bp) } goto _1 _1: @@ -189414,23 +191254,23 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt _, _, _, _, _, _, _ = i, nSql, zCols, zSep, zSql, v1, v3 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK zSql = uintptr(0) - zSep = __ccgo_ts + 1652 + zSep = __ccgo_ts + 1666 if bRowid != 0 { - v1 = __ccgo_ts + 33539 + v1 = __ccgo_ts + 33685 } else { - v1 = __ccgo_ts + 6594 + v1 = __ccgo_ts + 6658 } zCols = v1 nSql = -int32(1) *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 24)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 40)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+33732, bp) - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11586, zTab) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+33736, bp) - _sessionAppendStr(tls, bp+24, __ccgo_ts+33760, bp) - _sessionAppendStr(tls, bp+40, __ccgo_ts+33769, bp) - zCols = __ccgo_ts + 33814 + _sessionAppendStr(tls, bp+8, __ccgo_ts+33878, bp) + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11711, zTab) { + _sessionAppendStr(tls, bp+8, __ccgo_ts+33882, bp) + _sessionAppendStr(tls, bp+24, __ccgo_ts+33906, bp) + _sessionAppendStr(tls, bp+40, __ccgo_ts+33915, bp) + zCols = __ccgo_ts + 33960 } else { i = 0 for { @@ -189440,11 +191280,11 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { _sessionAppendStr(tls, bp+24, zSep, bp) _sessionAppendStr(tls, bp+40, zSep, bp) - zSep = __ccgo_ts + 14994 + zSep = __ccgo_ts + 15087 _sessionAppendIdent(tls, bp+24, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), bp) - _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+33828, libc.VaList(bp+64, i+int32(1))) + _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+33974, libc.VaList(bp+64, i+int32(1))) } else { - _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+33832, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+33978, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) } goto _2 _2: @@ -189456,9 +191296,9 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if bIgnoreNoop != 0 { v3 = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf } else { - v3 = __ccgo_ts + 1652 + v3 = __ccgo_ts + 1666 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+33859, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+34005, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) if zSql == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } @@ -189599,7 +191439,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, if (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc != 0 { return (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc } - *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+33901, uintptr(0), uintptr(0), uintptr(0)) + *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+34047, uintptr(0), uintptr(0), uintptr(0)) if *(*int32)(unsafe.Pointer(bp + 16)) != SQLITE_OK { return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -189705,7 +191545,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } } Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf) - Xsqlite3_exec(tls, db, __ccgo_ts+33921, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34067, uintptr(0), uintptr(0), uintptr(0)) Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db)) return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -189963,7 +191803,7 @@ func _sessionDiscardData(tls *libc.TLS, pIn uintptr) { if (*TSessionInput)(unsafe.Pointer(pIn)).FxInput != 0 && (*TSessionInput)(unsafe.Pointer(pIn)).FiNext >= _sessions_strm_chunk_size { nMove = (*TSessionInput)(unsafe.Pointer(pIn)).Fbuf.FnBuf - (*TSessionInput)(unsafe.Pointer(pIn)).FiNext if nMove > 0 { - libc.Xmemmove(tls, (*TSessionInput)(unsafe.Pointer(pIn)).Fbuf.FaBuf, (*TSessionInput)(unsafe.Pointer(pIn)).Fbuf.FaBuf+uintptr((*TSessionInput)(unsafe.Pointer(pIn)).FiNext), uint64(nMove)) + libc.Xmemmove(tls, (*TSessionInput)(unsafe.Pointer(pIn)).Fbuf.FaBuf, (*TSessionInput)(unsafe.Pointer(pIn)).Fbuf.FaBuf+uintptr((*TSessionInput)(unsafe.Pointer(pIn)).FiNext), uint64(uint64(nMove))) } (*TSessionInput)(unsafe.Pointer(pIn)).Fbuf.FnBuf -= (*TSessionInput)(unsafe.Pointer(pIn)).FiNext (*TSessionInput)(unsafe.Pointer(pIn)).FiNext = 0 @@ -190061,11 +191901,11 @@ func _sessionValueSetStr(tls *libc.TLS, pVal uintptr, aData uintptr, nData int32 ** argument to sqlite3ValueSetStr() and have the copy created ** automatically. But doing so makes it difficult to detect any OOM ** error. Hence the code to create the copy externally. */ - aCopy = Xsqlite3_malloc64(tls, uint64(int64(nData)+int64(1))) + aCopy = Xsqlite3_malloc64(tls, uint64(int64(int64(nData))+int64(1))) if aCopy == uintptr(0) { return int32(SQLITE_NOMEM) } - libc.Xmemcpy(tls, aCopy, aData, uint64(nData)) + libc.Xmemcpy(tls, aCopy, aData, uint64(uint64(nData))) _sqlite3ValueSetStr(tls, pVal, nData, aCopy, enc, __ccgo_fp(Xsqlite3_free)) return SQLITE_OK } @@ -190122,7 +191962,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, int32(9)) if rc == SQLITE_OK { if (*TSessionInput)(unsafe.Pointer(pIn)).FiNext >= (*TSessionInput)(unsafe.Pointer(pIn)).FnData { - rc = _sqlite3CorruptError(tls, int32(226700)) + rc = _sqlite3CorruptError(tls, int32(228355)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -190146,7 +191986,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, *(*int32)(unsafe.Pointer(bp))) if rc == SQLITE_OK { if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext { - rc = _sqlite3CorruptError(tls, int32(226720)) + rc = _sqlite3CorruptError(tls, int32(228375)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -190161,7 +192001,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap } if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) { if (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext < int32(8) { - rc = _sqlite3CorruptError(tls, int32(226730)) + rc = _sqlite3CorruptError(tls, int32(228385)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -190217,7 +192057,7 @@ func _sessionChangesetBufferTblhdr(tls *libc.TLS, pIn uintptr, pnByte uintptr) ( ** large value for nCol may cause nRead to wrap around and become ** negative. Leading to a crash. */ if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > int32(65536) { - rc = _sqlite3CorruptError(tls, int32(226778)) + rc = _sqlite3CorruptError(tls, int32(228433)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -190320,9 +192160,9 @@ func _sessionChangesetReadTblhdr(tls *libc.TLS, p uintptr) (r int32) { (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext += nVarint nByte = int32(uint64((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*uint64(8)*uint64(2) + uint64(*(*int32)(unsafe.Pointer(bp + 4)))) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FnBuf = 0 - _sessionBufferGrow(tls, p+72, int64(nByte), bp) + _sessionBufferGrow(tls, p+72, int64(int64(nByte)), bp) } else { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(226866)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(228521)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -190393,21 +192233,21 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK { return (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc } + _sessionDiscardData(tls, p) + (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext /* If the iterator is already at the end of the changeset, return DONE. */ if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext >= (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FnData { return int32(SQLITE_DONE) } - _sessionDiscardData(tls, p) - (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext v3 = p + 8 v2 = *(*int32)(unsafe.Pointer(v3)) *(*int32)(unsafe.Pointer(v3))++ op = *(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr(v2))) - for int32(op) == int32('T') || int32(op) == int32('P') { + for int32(int32(op)) == int32('T') || int32(int32(op)) == int32('P') { if pbNew != 0 { *(*int32)(unsafe.Pointer(pbNew)) = int32(1) } - (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset = libc.BoolInt32(int32(op) == int32('P')) + (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset = libc.BoolInt32(int32(int32(op)) == int32('P')) if _sessionChangesetReadTblhdr(tls, p) != 0 { return (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc } @@ -190428,25 +192268,25 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FzTab == uintptr(0) || (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset != 0 && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbInvert != 0 { /* The first record in the changeset is not a table header. Must be a ** corrupt changeset. */ - v7 = _sqlite3CorruptError(tls, int32(226952)) + v7 = _sqlite3CorruptError(tls, int32(228607)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } - (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop = int32(op) + (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop = int32(int32(op)) v9 = p + 8 v8 = *(*int32)(unsafe.Pointer(v9)) *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = int32(*(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr(v8)))) if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_DELETE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_INSERT) { - v10 = _sqlite3CorruptError(tls, int32(226958)) + v10 = _sqlite3CorruptError(tls, int32(228613)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } if paRec != 0 { /* Number of values to buffer */ - if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset == 0 && int32(op) == int32(SQLITE_UPDATE) { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset == 0 && int32(int32(op)) == int32(SQLITE_UPDATE) { nVal = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol * int32(2) } else { - if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset != 0 && int32(op) == int32(SQLITE_DELETE) { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset != 0 && int32(int32(op)) == int32(SQLITE_DELETE) { nVal = 0 i = 0 for { @@ -190517,7 +192357,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if *(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i+(*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*8)) if *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) == uintptr(0) { - v16 = _sqlite3CorruptError(tls, int32(227002)) + v16 = _sqlite3CorruptError(tls, int32(228657)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -190814,7 +192654,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu break } eType = *(*Tu8)(unsafe.Pointer((*TSessionInput)(unsafe.Pointer(pInput)).FaData + uintptr((*TSessionInput)(unsafe.Pointer(pInput)).FiNext))) - switch int32(eType) { + switch int32(int32(eType)) { case int32('T'): (*TSessionInput)(unsafe.Pointer(pInput)).FiNext++ v2 = _sessionChangesetBufferTblhdr(tls, pInput, bp+48) @@ -190838,7 +192678,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu fallthrough case int32(SQLITE_DELETE): bIndirect = int32(*(*Tu8)(unsafe.Pointer((*TSessionInput)(unsafe.Pointer(pInput)).FaData + uintptr((*TSessionInput)(unsafe.Pointer(pInput)).FiNext+int32(1))))) - if int32(eType) == int32(SQLITE_DELETE) { + if int32(int32(eType)) == int32(SQLITE_DELETE) { v3 = int32(SQLITE_INSERT) } else { v3 = int32(SQLITE_DELETE) @@ -190846,8 +192686,8 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu eType2 = v3 *(*int32)(unsafe.Pointer(pInput + 8)) += int32(2) *(*int32)(unsafe.Pointer(bp)) = _sessionChangesetBufferRecord(tls, pInput, *(*int32)(unsafe.Pointer(bp + 24)), bp+52) - _sessionAppendByte(tls, bp+8, uint8(eType2), bp) - _sessionAppendByte(tls, bp+8, uint8(bIndirect), bp) + _sessionAppendByte(tls, bp+8, uint8(uint8(eType2)), bp) + _sessionAppendByte(tls, bp+8, uint8(uint8(bIndirect)), bp) _sessionAppendBlob(tls, bp+8, (*TSessionInput)(unsafe.Pointer(pInput)).FaData+uintptr((*TSessionInput)(unsafe.Pointer(pInput)).FiNext), *(*int32)(unsafe.Pointer(bp + 52)), bp) *(*int32)(unsafe.Pointer(pInput + 8)) += *(*int32)(unsafe.Pointer(bp + 52)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -190855,7 +192695,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu } case int32(SQLITE_UPDATE): if uintptr(0) == apVal { - apVal = Xsqlite3_malloc64(tls, uint64(8)*uint64(*(*int32)(unsafe.Pointer(bp + 24)))*uint64(2)) + apVal = Xsqlite3_malloc64(tls, uint64(uint64(8)*uint64(*(*int32)(unsafe.Pointer(bp + 24)))*uint64(2))) if uintptr(0) == apVal { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) goto finished_invert @@ -190927,7 +192767,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(227367)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(229022)) goto finished_invert } if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { @@ -190947,6 +192787,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } + goto finished_invert finished_invert: ; Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf) @@ -191076,13 +192917,13 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 nCol = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol nU32 = ((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol + int32(33)) / int32(32) if (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask == uintptr(0) { - (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask = Xsqlite3_malloc(tls, int32(uint64(nU32)*uint64(4))) + (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask = Xsqlite3_malloc(tls, int32(uint64(uint64(nU32))*uint64(4))) if (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - libc.Xmemset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, 0, uint64(nU32)*uint64(4)) + libc.Xmemset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, 0, uint64(uint64(nU32))*uint64(4)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_CORRUPT) ii = 0 for { @@ -191108,7 +192949,7 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 pp = p + 64 for int32(1) != 0 { nUp++ - if 0 == libc.Xmemcmp(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, (*TSessionUpdate)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaMask, uint64(nU32)*uint64(4)) { + if 0 == libc.Xmemcmp(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, (*TSessionUpdate)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaMask, uint64(uint64(nU32))*uint64(4)) { pUp = *(*uintptr)(unsafe.Pointer(pp)) *(*uintptr)(unsafe.Pointer(pp)) = (*TSessionUpdate)(unsafe.Pointer(pUp)).FpNext (*TSessionUpdate)(unsafe.Pointer(pUp)).FpNext = (*TSessionApplyCtx)(unsafe.Pointer(p)).FpUp @@ -191128,19 +192969,19 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 } } if pUp == uintptr(0) { - nByte = int32(uint64(24) * uint64(nU32) * uint64(4)) - bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11586) == 0) + nByte = int32(uint64(24) * uint64(uint64(nU32)) * uint64(4)) + bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11711) == 0) pUp = Xsqlite3_malloc(tls, nByte) if pUp == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } else { - zSep = __ccgo_ts + 1652 + zSep = __ccgo_ts + 1666 libc.Xmemset(tls, bp+8, 0, uint64(16)) (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask = pUp + 1*24 - libc.Xmemcpy(tls, (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, uint64(nU32)*uint64(4)) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33939, bp) + libc.Xmemcpy(tls, (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, uint64(uint64(nU32))*uint64(4)) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34085, bp) _sessionAppendIdent(tls, bp+8, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33952, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34098, bp) /* Create the assignments part of the UPDATE */ ii = 0 for { @@ -191150,9 +192991,9 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if int32(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii)))) == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol+ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33958, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34104, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(1), bp) - zSep = __ccgo_ts + 14994 + zSep = __ccgo_ts + 15087 } goto _2 _2: @@ -191160,8 +193001,8 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 ii++ } /* Create the WHERE clause part of the UPDATE */ - zSep = __ccgo_ts + 1652 - _sessionAppendStr(tls, bp+8, __ccgo_ts+33963, bp) + zSep = __ccgo_ts + 1666 + _sessionAppendStr(tls, bp+8, __ccgo_ts+34109, bp) ii = 0 for { if !(ii < (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol) { @@ -191170,13 +193011,13 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if *(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii))) != 0 || bPatchset == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr(ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) if bStat1 != 0 && ii == int32(1) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+33971, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34117, bp) } else { _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34046, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34192, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(2), bp) } - zSep = __ccgo_ts + 22017 + zSep = __ccgo_ts + 22162 } goto _3 _3: @@ -191259,13 +193100,13 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in var _ /* buf at bp+8 */ TSessionBuffer var _ /* rc at bp+0 */ int32 _, _, _ = i, nPk, zSep - zSep = __ccgo_ts + 1652 + zSep = __ccgo_ts + 1666 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} nPk = 0 - _sessionAppendStr(tls, bp+8, __ccgo_ts+34052, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34198, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33963, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34109, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -191275,9 +193116,9 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in nPk++ _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33958, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34104, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 22017 + zSep = __ccgo_ts + 22162 } goto _1 _1: @@ -191285,10 +193126,10 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in i++ } if nPk < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol { - _sessionAppendStr(tls, bp+8, __ccgo_ts+34070, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34216, bp) _sessionAppendInteger(tls, bp+8, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol+int32(1), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33534, bp) - zSep = __ccgo_ts + 1652 + _sessionAppendStr(tls, bp+8, __ccgo_ts+33680, bp) + zSep = __ccgo_ts + 1666 i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -191297,16 +193138,16 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in if !(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0) { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34046, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34192, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 34078 + zSep = __ccgo_ts + 34224 } goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5110, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5174, bp) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+8, uintptr(0)) @@ -191332,7 +193173,7 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in // */ func _sessionSelectRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r int32) { /* TODO */ - return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6589, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) + return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6653, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) } // C documentation @@ -191355,16 +193196,16 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+34083, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34229, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+22023, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+22168, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } if i != 0 { - _sessionAppendStr(tls, bp+8, __ccgo_ts+14994, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+15087, bp) } _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) goto _1 @@ -191372,19 +193213,19 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34101, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34247, bp) i = int32(1) for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34112, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34258, bp) goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5110, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5174, bp) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+16, uintptr(0)) } @@ -191407,12 +193248,12 @@ func _sessionPrepare(tls *libc.TLS, db uintptr, pp uintptr, zSql uintptr) (r int func _sessionStat1Sql(tls *libc.TLS, db uintptr, p uintptr) (r int32) { var rc int32 _ = rc - rc = _sessionSelectRow(tls, db, __ccgo_ts+11586, p) + rc = _sessionSelectRow(tls, db, __ccgo_ts+11711, p) if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34116) + rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34262) } if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34229) + rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34375) } return rc } @@ -191478,7 +193319,7 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(227849)) + rc = _sqlite3CorruptError(tls, int32(229504)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -191894,7 +193735,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34373, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34519, uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { rc = _sessionBindRow(tls, pIter, __ccgo_fp(Xsqlite3changeset_new), (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FabPK, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) Xsqlite3_bind_int(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol+int32(1), int32(1)) @@ -191907,7 +193748,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34394, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34540, uintptr(0), uintptr(0), uintptr(0)) } } } @@ -191941,7 +193782,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FzTab = zTab (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FnCol = (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FabPK = (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FabPK - _sessionBufferGrow(tls, *(*uintptr)(unsafe.Pointer(bp + 8))+72, int64(nByte), bp) + _sessionBufferGrow(tls, *(*uintptr)(unsafe.Pointer(bp + 8))+72, int64(int64(nByte)), bp) (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FapValue = (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).Ftblhdr.FaBuf if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { libc.Xmemset(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FapValue, 0, nByte) @@ -192001,10 +193842,10 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbIgnoreNoop = libc.BoolUint8(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_IGNORENOOP) != 0)) Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, db)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34413, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34559, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34439, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34585, uintptr(0), uintptr(0), uintptr(0)) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) @@ -192035,7 +193876,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui ** non-zero, proceed. */ schemaMismatch = libc.BoolInt32(xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { - *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) + *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { rc = int32(SQLITE_NOMEM) break @@ -192045,7 +193886,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } else { nMinCol = 0 Xsqlite3changeset_pk(tls, pIter, bp+152, uintptr(0)) - rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6589, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) + rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6653, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) if rc != SQLITE_OK { break } @@ -192064,18 +193905,18 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol == 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34469, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34615, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol < *(*int32)(unsafe.Pointer(bp + 136)) { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34513, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34659, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) } else { if *(*int32)(unsafe.Pointer(bp + 136)) < nMinCol || libc.Xmemcmp(tls, (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FabPK, *(*uintptr)(unsafe.Pointer(bp + 152)), uint64(*(*int32)(unsafe.Pointer(bp + 136)))) != 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34584, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34730, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol = *(*int32)(unsafe.Pointer(bp + 136)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11586) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11711) { v2 = _sessionStat1Sql(tls, db, bp+8) rc = v2 if v2 != 0 { @@ -192132,13 +193973,13 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } } } - Xsqlite3_exec(tls, db, __ccgo_ts+34644, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34790, uintptr(0), uintptr(0), uintptr(0)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34674, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34820, uintptr(0), uintptr(0), uintptr(0)) } else { - Xsqlite3_exec(tls, db, __ccgo_ts+34698, uintptr(0), uintptr(0), uintptr(0)) - Xsqlite3_exec(tls, db, __ccgo_ts+34674, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34844, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34820, uintptr(0), uintptr(0), uintptr(0)) } } if rc == SQLITE_OK && bPatchset == 0 && (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbRebase != 0 { @@ -192230,6 +194071,7 @@ type Tsqlite3_changegroup1 = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -192257,17 +194099,17 @@ func _sessionChangeMerge(tls *libc.TLS, pTab uintptr, bRebase int32, bPatchset i pNew = uintptr(0) rc = SQLITE_OK if !(pExist != 0) { - pNew = Xsqlite3_malloc64(tls, uint64(32)+uint64(nRec)) + pNew = Xsqlite3_malloc64(tls, uint64(uint64(32)+uint64(uint64(nRec)))) if !(pNew != 0) { return int32(SQLITE_NOMEM) } libc.Xmemset(tls, pNew, 0, uint64(32)) - (*TSessionChange)(unsafe.Pointer(pNew)).Fop = uint8(op2) - (*TSessionChange)(unsafe.Pointer(pNew)).FbIndirect = uint8(bIndirect) + (*TSessionChange)(unsafe.Pointer(pNew)).Fop = uint8(uint8(op2)) + (*TSessionChange)(unsafe.Pointer(pNew)).FbIndirect = uint8(uint8(bIndirect)) (*TSessionChange)(unsafe.Pointer(pNew)).FaRecord = pNew + 1*32 if bIndirect == 0 || bRebase == 0 { (*TSessionChange)(unsafe.Pointer(pNew)).FnRecord = nRec - libc.Xmemcpy(tls, (*TSessionChange)(unsafe.Pointer(pNew)).FaRecord, aRec, uint64(nRec)) + libc.Xmemcpy(tls, (*TSessionChange)(unsafe.Pointer(pNew)).FaRecord, aRec, uint64(uint64(nRec))) } else { pIn = aRec pOut = (*TSessionChange)(unsafe.Pointer(pNew)).FaRecord @@ -192287,7 +194129,7 @@ func _sessionChangeMerge(tls *libc.TLS, pTab uintptr, bRebase int32, bPatchset i pOut++ *(*Tu8)(unsafe.Pointer(v3)) = uint8(0xFF) } else { - libc.Xmemcpy(tls, pOut, pIn, uint64(nIn)) + libc.Xmemcpy(tls, pOut, pIn, uint64(uint64(nIn))) pOut += uintptr(nIn) } } @@ -192297,7 +194139,7 @@ func _sessionChangeMerge(tls *libc.TLS, pTab uintptr, bRebase int32, bPatchset i ; i++ } - (*TSessionChange)(unsafe.Pointer(pNew)).FnRecord = int32(int64(pOut) - int64((*TSessionChange)(unsafe.Pointer(pNew)).FaRecord)) + (*TSessionChange)(unsafe.Pointer(pNew)).FnRecord = int32(int64(int64(pOut)) - int64((*TSessionChange)(unsafe.Pointer(pNew)).FaRecord)) } } else { if bRebase != 0 { @@ -192305,15 +194147,15 @@ func _sessionChangeMerge(tls *libc.TLS, pTab uintptr, bRebase int32, bPatchset i *(*uintptr)(unsafe.Pointer(ppNew)) = pExist } else { nByte = int64(uint64(nRec+(*TSessionChange)(unsafe.Pointer(pExist)).FnRecord) + uint64(32)) - pNew = Xsqlite3_malloc64(tls, uint64(nByte)) + pNew = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) if pNew == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { a1 = (*TSessionChange)(unsafe.Pointer(pExist)).FaRecord a2 = aRec - libc.Xmemset(tls, pNew, 0, uint64(nByte)) + libc.Xmemset(tls, pNew, 0, uint64(uint64(nByte))) (*TSessionChange)(unsafe.Pointer(pNew)).FbIndirect = libc.BoolUint8(bIndirect != 0 || (*TSessionChange)(unsafe.Pointer(pExist)).FbIndirect != 0) - (*TSessionChange)(unsafe.Pointer(pNew)).Fop = uint8(op2) + (*TSessionChange)(unsafe.Pointer(pNew)).Fop = uint8(uint8(op2)) v4 = pNew + 1*32 (*TSessionChange)(unsafe.Pointer(pNew)).FaRecord = v4 pOut1 = v4 @@ -192330,10 +194172,10 @@ func _sessionChangeMerge(tls *libc.TLS, pTab uintptr, bRebase int32, bPatchset i *(*Tu8)(unsafe.Pointer(v6)) = uint8(0xFF) } else { if int32(*(*Tu8)(unsafe.Pointer(a2))) == 0 { - libc.Xmemcpy(tls, pOut1, a1, uint64(n1)) + libc.Xmemcpy(tls, pOut1, a1, uint64(uint64(n1))) pOut1 += uintptr(n1) } else { - libc.Xmemcpy(tls, pOut1, a2, uint64(n2)) + libc.Xmemcpy(tls, pOut1, a2, uint64(uint64(n2))) pOut1 += uintptr(n2) } } @@ -192344,7 +194186,7 @@ func _sessionChangeMerge(tls *libc.TLS, pTab uintptr, bRebase int32, bPatchset i ; i1++ } - (*TSessionChange)(unsafe.Pointer(pNew)).FnRecord = int32(int64(pOut1) - int64((*TSessionChange)(unsafe.Pointer(pNew)).FaRecord)) + (*TSessionChange)(unsafe.Pointer(pNew)).FnRecord = int32(int64(int64(pOut1)) - int64((*TSessionChange)(unsafe.Pointer(pNew)).FaRecord)) } Xsqlite3_free(tls, pExist) } @@ -192373,8 +194215,8 @@ func _sessionChangeMerge(tls *libc.TLS, pTab uintptr, bRebase int32, bPatchset i /* Allocate a new SessionChange object. Ensure that the aRecord[] ** buffer of the new object is large enough to hold any record that ** may be generated by combining the input records. */ - nByte1 = int64(uint64(32) + uint64((*TSessionChange)(unsafe.Pointer(pExist)).FnRecord) + uint64(nRec)) - pNew = Xsqlite3_malloc64(tls, uint64(nByte1)) + nByte1 = int64(uint64(32) + uint64((*TSessionChange)(unsafe.Pointer(pExist)).FnRecord) + uint64(uint64(nRec))) + pNew = Xsqlite3_malloc64(tls, uint64(uint64(nByte1))) if !(pNew != 0) { Xsqlite3_free(tls, pExist) return int32(SQLITE_NOMEM) @@ -192395,7 +194237,7 @@ func _sessionChangeMerge(tls *libc.TLS, pTab uintptr, bRebase int32, bPatchset i if op1 == int32(SQLITE_DELETE) { /* DELETE + INSERT */ (*TSessionChange)(unsafe.Pointer(pNew)).Fop = uint8(SQLITE_UPDATE) if bPatchset != 0 { - libc.Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(bp)), aRec, uint64(nRec)) + libc.Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(bp)), aRec, uint64(uint64(nRec))) *(*uintptr)(unsafe.Pointer(bp)) += uintptr(nRec) } else { if 0 == _sessionMergeUpdate(tls, bp, pTab, bPatchset, aExist, uintptr(0), aRec, uintptr(0)) { @@ -192419,7 +194261,7 @@ func _sessionChangeMerge(tls *libc.TLS, pTab uintptr, bRebase int32, bPatchset i } else { /* UPDATE + DELETE */ (*TSessionChange)(unsafe.Pointer(pNew)).Fop = uint8(SQLITE_DELETE) if bPatchset != 0 { - libc.Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(bp)), aRec, uint64(nRec)) + libc.Xmemcpy(tls, *(*uintptr)(unsafe.Pointer(bp)), aRec, uint64(uint64(nRec))) *(*uintptr)(unsafe.Pointer(bp)) += uintptr(nRec) } else { _sessionMergeRecord(tls, bp, (*TSessionTable)(unsafe.Pointer(pTab)).FnCol, aRec, aExist) @@ -192463,7 +194305,7 @@ func _sessionChangesetCheckCompat(tls *libc.TLS, pTab uintptr, nCol int32, abPK v2 = 0 } bPK = uint8(v2) - if int32(*(*Tu8)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(ii)))) != int32(bPK) { + if int32(*(*Tu8)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(ii)))) != int32(int32(bPK)) { return 0 } goto _1 @@ -192473,7 +194315,7 @@ func _sessionChangesetCheckCompat(tls *libc.TLS, pTab uintptr, nCol int32, abPK } return int32(1) } - return libc.BoolInt32((*TSessionTable)(unsafe.Pointer(pTab)).FnCol == nCol && 0 == libc.Xmemcmp(tls, abPK, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, uint64(nCol))) + return libc.BoolInt32((*TSessionTable)(unsafe.Pointer(pTab)).FnCol == nCol && 0 == libc.Xmemcmp(tls, abPK, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, uint64(uint64(nCol)))) } func _sessionChangesetExtendRecord(tls *libc.TLS, pGrp uintptr, pTab uintptr, nCol int32, op int32, aRec uintptr, nRec int32, pOut uintptr) (r int32) { @@ -192500,7 +194342,7 @@ func _sessionChangesetExtendRecord(tls *libc.TLS, pGrp uintptr, pTab uintptr, nC break } eType = Xsqlite3_column_type(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FpDfltStmt, ii) - _sessionAppendByte(tls, pOut, uint8(eType), bp) + _sessionAppendByte(tls, pOut, uint8(uint8(eType)), bp) switch eType { case int32(SQLITE_FLOAT): fallthrough @@ -192586,116 +194428,143 @@ func _sessionChangesetExtendRecord(tls *libc.TLS, pGrp uintptr, pTab uintptr, nC // C documentation // // /* -// ** Add all changes in the changeset traversed by the iterator passed as -// ** the first argument to the changegroup hash tables. +// ** Locate or create a SessionTable object that may be used to add the +// ** change currently pointed to by iterator pIter to changegroup pGrp. +// ** If successful, set output variable (*ppTab) to point to the table +// ** object and return SQLITE_OK. Otherwise, if some error occurs, return +// ** an SQLite error code and leave (*ppTab) set to NULL. // */ -func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { - bp := tls.Alloc(80) - defer tls.Free(80) - var bPkOnly1, bPkOnly2, iHash, nNew, rc int32 - var pExist, pTab, pp, ppTab uintptr - var _ /* aRec at bp+0 */ uintptr - var _ /* abPK at bp+64 */ uintptr - var _ /* bIndirect at bp+48 */ int32 - var _ /* nCol at bp+40 */ int32 - var _ /* nRec at bp+8 */ int32 - var _ /* op at bp+44 */ int32 - var _ /* pChange at bp+56 */ uintptr - var _ /* rec at bp+16 */ TSessionBuffer - var _ /* zNew at bp+32 */ uintptr - _, _, _, _, _, _, _, _, _ = bPkOnly1, bPkOnly2, iHash, nNew, pExist, pTab, pp, ppTab, rc +func _sessionChangesetFindTable(tls *libc.TLS, pGrp uintptr, zTab uintptr, pIter uintptr, ppTab uintptr) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var nTab, rc int32 + var pTab, ppNew uintptr + var _ /* abPK at bp+0 */ uintptr + var _ /* nCol at bp+8 */ int32 + _, _, _, _ = nTab, pTab, ppNew, rc rc = SQLITE_OK pTab = uintptr(0) - *(*TSessionBuffer)(unsafe.Pointer(bp + 16)) = TSessionBuffer{} - for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { - pExist = uintptr(0) - /* Ensure that only changesets, or only patchsets, but not a mixture - ** of both, are being combined. It is an error to try to combine a - ** changeset and a patchset. */ - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset - } else { - if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { - rc = int32(SQLITE_ERROR) - break - } + nTab = int32(libc.Xstrlen(tls, zTab)) + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(ppTab)) = uintptr(0) + Xsqlite3changeset_pk(tls, pIter, bp, bp+8) + /* Search the list for an existing table */ + pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList + for { + if !(pTab != 0) { + break } - Xsqlite3changeset_op(tls, pIter, bp+32, bp+40, bp+44, bp+48) - if !(pTab != 0) || Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), (*TSessionTable)(unsafe.Pointer(pTab)).FzName) != 0 { - /* Search the list for a matching table */ - nNew = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)))) - Xsqlite3changeset_pk(tls, pIter, bp+64, uintptr(0)) - pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList - for { - if !(pTab != 0) { - break - } - if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), nNew+int32(1)) { - break - } - goto _1 - _1: - ; - pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext - } - if !(pTab != 0) { - pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 40)))+uint64(nNew)+uint64(1)) - if !(pTab != 0) { - rc = int32(SQLITE_NOMEM) - break - } - libc.Xmemset(tls, pTab, 0, uint64(80)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 40)) - (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp + 64)), uint64(*(*int32)(unsafe.Pointer(bp + 40)))) - (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 40))) - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), uint64(nNew+int32(1))) - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 - rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) - if rc != 0 { - Xsqlite3_free(tls, pTab) - break - } - } - /* The new object must be linked on to the end of the list, not - ** simply added to the start of it. This is to ensure that the - ** tables within the output of sqlite3changegroup_output() are in - ** the right order. */ - ppTab = pGrp + 8 - for { - if !(*(*uintptr)(unsafe.Pointer(ppTab)) != 0) { - break - } - goto _2 - _2: - ; - ppTab = *(*uintptr)(unsafe.Pointer(ppTab)) - } - *(*uintptr)(unsafe.Pointer(ppTab)) = pTab - } - if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*uintptr)(unsafe.Pointer(bp + 64))) != 0) { - rc = int32(SQLITE_SCHEMA) - break - } + if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, nTab+int32(1)) { + break + } + goto _1 + _1: + ; + pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext + } + /* If one was not found above, create a new table now */ + if !(pTab != 0) { + pTab = Xsqlite3_malloc64(tls, uint64(uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 8)))+uint64(uint64(nTab))+uint64(1))) + if !(pTab != 0) { + return int32(SQLITE_NOMEM) } - if *(*int32)(unsafe.Pointer(bp + 40)) < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol { - rc = _sessionChangesetExtendRecord(tls, pGrp, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*int32)(unsafe.Pointer(bp + 44)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+16) + libc.Xmemset(tls, pTab, 0, uint64(80)) + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 8)) + (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp)), uint64(*(*int32)(unsafe.Pointer(bp + 8)))) + (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 8))) + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, uint64(nTab+int32(1))) + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 + rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) if rc != 0 { + Xsqlite3_free(tls, pTab) + return rc + } + } + /* The new object must be linked on to the end of the list, not + ** simply added to the start of it. This is to ensure that the + ** tables within the output of sqlite3changegroup_output() are in + ** the right order. */ + ppNew = pGrp + 8 + for { + if !(*(*uintptr)(unsafe.Pointer(ppNew)) != 0) { break } - *(*uintptr)(unsafe.Pointer(bp)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf - *(*int32)(unsafe.Pointer(bp + 8)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf + goto _2 + _2: + ; + ppNew = *(*uintptr)(unsafe.Pointer(ppNew)) } - if _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pTab) != 0 { - rc = int32(SQLITE_NOMEM) - break + *(*uintptr)(unsafe.Pointer(ppNew)) = pTab + } + /* Check that the table is compatible. */ + if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 8)), *(*uintptr)(unsafe.Pointer(bp))) != 0) { + rc = int32(SQLITE_SCHEMA) + } + *(*uintptr)(unsafe.Pointer(ppTab)) = pTab + return rc +} + +// C documentation +// +// /* +// ** Add the change currently indicated by iterator pIter to the hash table +// ** belonging to changegroup pGrp. +// */ +func _sessionOneChangeToHash(tls *libc.TLS, pGrp uintptr, pIter uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var aRec, pBuf, pExist, pp uintptr + var bPkOnly1, bPkOnly2, iHash, nRec, rc int32 + var _ /* bIndirect at bp+8 */ int32 + var _ /* nCol at bp+0 */ int32 + var _ /* op at bp+4 */ int32 + var _ /* pChange at bp+16 */ uintptr + var _ /* pTab at bp+24 */ uintptr + var _ /* zTab at bp+32 */ uintptr + _, _, _, _, _, _, _, _, _ = aRec, bPkOnly1, bPkOnly2, iHash, nRec, pBuf, pExist, pp, rc + rc = SQLITE_OK + *(*int32)(unsafe.Pointer(bp)) = 0 + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + iHash = 0 + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0) + pExist = uintptr(0) + pp = uintptr(0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0) + aRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FaData + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent+int32(2)) + nRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent - int32(2) + /* Ensure that only changesets, or only patchsets, but not a mixture + ** of both, are being combined. It is an error to try to combine a + ** changeset and a patchset. */ + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset + } else { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { + rc = int32(SQLITE_ERROR) } - iHash = int32(_sessionChangeHash(tls, pTab, libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)), *(*uintptr)(unsafe.Pointer(bp)), (*TSessionTable)(unsafe.Pointer(pTab)).FnChange)) + } + if rc == SQLITE_OK { + *(*uintptr)(unsafe.Pointer(bp + 32)) = uintptr(0) + Xsqlite3changeset_op(tls, pIter, bp+32, bp, bp+4, bp+8) + rc = _sessionChangesetFindTable(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 32)), pIter, bp+24) + } + if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) < (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnCol { + pBuf = pGrp + 16 + rc = _sessionChangesetExtendRecord(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 24)), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), aRec, nRec, pBuf) + aRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FaBuf + nRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FnBuf + } + if rc == SQLITE_OK && _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp + 24))) != 0 { + rc = int32(SQLITE_NOMEM) + } + if rc == SQLITE_OK { /* Search for existing entry. If found, remove it from the hash table. - ** Code below may link it back in. - */ - pp = (*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8 + ** Code below may link it back in. */ + iHash = int32(_sessionChangeHash(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)), aRec, (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnChange)) + pp = (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8 for { if !(*(*uintptr)(unsafe.Pointer(pp)) != 0) { break @@ -192704,30 +194573,54 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase bPkOnly2 = 0 if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 { bPkOnly1 = libc.BoolInt32(int32((*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).Fop) == int32(SQLITE_DELETE)) - bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)) + bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)) } - if _sessionChangeEqual(tls, pTab, bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, *(*uintptr)(unsafe.Pointer(bp))) != 0 { + if _sessionChangeEqual(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, aRec) != 0 { pExist = *(*uintptr)(unsafe.Pointer(pp)) *(*uintptr)(unsafe.Pointer(pp)) = (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry-- + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry-- break } - goto _3 - _3: + goto _1 + _1: ; pp = *(*uintptr)(unsafe.Pointer(pp)) + 24 } - rc = _sessionChangeMerge(tls, pTab, bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 44)), *(*int32)(unsafe.Pointer(bp + 48)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+56) - if rc != 0 { + } + if rc == SQLITE_OK { + rc = _sessionChangeMerge(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 4)), *(*int32)(unsafe.Pointer(bp + 8)), aRec, nRec, bp+16) + } + if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { + (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) + *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 16)) + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry++ + } + if rc == SQLITE_OK { + rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc + } + return rc +} + +// C documentation +// +// /* +// ** Add all changes in the changeset traversed by the iterator passed as +// ** the first argument to the changegroup hash tables. +// */ +func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var rc int32 + var _ /* aRec at bp+0 */ uintptr + var _ /* nRec at bp+8 */ int32 + _ = rc + rc = SQLITE_OK + for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { + rc = _sessionOneChangeToHash(tls, pGrp, pIter, bRebase) + if rc != SQLITE_OK { break } - if *(*uintptr)(unsafe.Pointer(bp + 56)) != 0 { - (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 56)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) - *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 56)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry++ - } } - Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf) if rc == SQLITE_OK { rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc } @@ -192837,11 +194730,11 @@ func Xsqlite3changegroup_new(tls *libc.TLS, pp uintptr) (r int32) { var rc int32 _, _ = p, rc rc = SQLITE_OK /* New object */ - p = Xsqlite3_malloc(tls, int32(32)) + p = Xsqlite3_malloc(tls, int32(48)) if p == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, p, 0, uint64(32)) + libc.Xmemset(tls, p, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(pp)) = p return rc @@ -192863,7 +194756,7 @@ func Xsqlite3changegroup_schema(tls *libc.TLS, pGrp uintptr, db uintptr, zDb uin ** or after sqlite3changegroup_schema() has already been called. */ rc = int32(SQLITE_MISUSE) } else { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, zDb)) + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, zDb)) if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -192893,6 +194786,19 @@ func Xsqlite3changegroup_add(tls *libc.TLS, pGrp uintptr, nData int32, pData uin return rc } +// C documentation +// +// /* +// ** Add a single change to a changeset-group. +// */ +func Xsqlite3changegroup_add_change(tls *libc.TLS, pGrp uintptr, pIter uintptr) (r int32) { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent == (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc != SQLITE_OK || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbInvert != 0 { + /* Iterator does not point to any valid entry or is an INVERT iterator. */ + return int32(SQLITE_ERROR) + } + return _sessionOneChangeToHash(tls, pGrp, pIter, 0) +} + // C documentation // // /* @@ -192940,6 +194846,7 @@ func Xsqlite3changegroup_delete(tls *libc.TLS, pGrp uintptr) { if pGrp != 0 { Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList) + Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Frec.FaBuf) Xsqlite3_free(tls, pGrp) } } @@ -193026,10 +194933,10 @@ func _sessionAppendRecordMerge(tls *libc.TLS, pBuf uintptr, nCol int32, a1 uintp nn1 = _sessionSerialLen(tls, a1) nn2 = _sessionSerialLen(tls, a2) if int32(*(*Tu8)(unsafe.Pointer(a1))) == 0 || int32(*(*Tu8)(unsafe.Pointer(a1))) == int32(0xFF) { - libc.Xmemcpy(tls, pOut, a2, uint64(nn2)) + libc.Xmemcpy(tls, pOut, a2, uint64(uint64(nn2))) pOut += uintptr(nn2) } else { - libc.Xmemcpy(tls, pOut, a1, uint64(nn1)) + libc.Xmemcpy(tls, pOut, a1, uint64(uint64(nn1))) pOut += uintptr(nn1) } a1 += uintptr(nn1) @@ -193039,7 +194946,7 @@ func _sessionAppendRecordMerge(tls *libc.TLS, pBuf uintptr, nCol int32, a1 uintp ; i++ } - (*TSessionBuffer)(unsafe.Pointer(pBuf)).FnBuf = int32(int64(pOut) - int64((*TSessionBuffer)(unsafe.Pointer(pBuf)).FaBuf)) + (*TSessionBuffer)(unsafe.Pointer(pBuf)).FnBuf = int32(int64(int64(pOut)) - int64((*TSessionBuffer)(unsafe.Pointer(pBuf)).FaBuf)) } } @@ -193091,12 +194998,12 @@ func _sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRe if !(*(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FabPK + uintptr(i))) != 0) && *(*Tu8)(unsafe.Pointer(a1)) != 0 { bData = int32(1) } - libc.Xmemcpy(tls, pOut, a1, uint64(n1)) + libc.Xmemcpy(tls, pOut, a1, uint64(uint64(n1))) pOut += uintptr(n1) } else { if int32(*(*Tu8)(unsafe.Pointer(a2))) != int32(0xFF) && *(*Tu8)(unsafe.Pointer(a1)) != 0 { bData = int32(1) - libc.Xmemcpy(tls, pOut, a2, uint64(n2)) + libc.Xmemcpy(tls, pOut, a2, uint64(uint64(n2))) pOut += uintptr(n2) } else { v4 = pOut @@ -193121,7 +195028,7 @@ func _sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRe n11 = _sessionSerialLen(tls, a1) n21 = _sessionSerialLen(tls, a2) if *(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FabPK + uintptr(i))) != 0 || int32(*(*Tu8)(unsafe.Pointer(a2))) != int32(0xFF) { - libc.Xmemcpy(tls, pOut, a1, uint64(n11)) + libc.Xmemcpy(tls, pOut, a1, uint64(uint64(n11))) pOut += uintptr(n11) } else { v6 = pOut @@ -193135,7 +195042,7 @@ func _sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRe ; i++ } - (*TSessionBuffer)(unsafe.Pointer(pBuf)).FnBuf = int32(int64(pOut) - int64((*TSessionBuffer)(unsafe.Pointer(pBuf)).FaBuf)) + (*TSessionBuffer)(unsafe.Pointer(pBuf)).FnBuf = int32(int64(int64(pOut)) - int64((*TSessionBuffer)(unsafe.Pointer(pBuf)).FaBuf)) } } } @@ -193304,11 +195211,11 @@ func Xsqlite3rebaser_create(tls *libc.TLS, ppNew uintptr) (r int32) { var rc int32 _, _ = pNew, rc rc = SQLITE_OK - pNew = Xsqlite3_malloc(tls, int32(32)) + pNew = Xsqlite3_malloc(tls, int32(48)) if pNew == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, pNew, 0, uint64(32)) + libc.Xmemset(tls, pNew, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(ppNew)) = pNew return rc @@ -193382,6 +195289,7 @@ func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn u func Xsqlite3rebaser_delete(tls *libc.TLS, p uintptr) { if p != 0 { _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.FpList) + Xsqlite3_free(tls, (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.Frec.FaBuf) Xsqlite3_free(tls, p) } } @@ -194013,6 +195921,9 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** sqlite3Fts5ParserARG_STORE Code to store %extra_argument into fts5yypParser // ** sqlite3Fts5ParserARG_FETCH Code to extract %extra_argument from fts5yypParser // ** sqlite3Fts5ParserCTX_* As sqlite3Fts5ParserARG_ except for %extra_context +// ** fts5YYREALLOC Name of the realloc() function to use +// ** fts5YYFREE Name of the free() function to use +// ** fts5YYDYNSTACK True if stack space should be extended on heap // ** fts5YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** fts5YYNSTATE the combined number of states. @@ -194026,6 +195937,8 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** fts5YY_NO_ACTION The fts5yy_action[] code for no-op // ** fts5YY_MIN_REDUCE Minimum value for reduce actions // ** fts5YY_MAX_REDUCE Maximum value for reduce actions +// ** fts5YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** fts5YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type Tfts5YYMINORTYPE = struct { @@ -194052,6 +195965,13 @@ type fts5YYMINORTYPE = Tfts5YYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -194481,8 +196401,9 @@ type fts5yyStackEntry = Tfts5yyStackEntry type Tfts5yyParser1 = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser1 = Tfts5yyParser1 @@ -194490,14 +196411,19 @@ type fts5yyParser1 = Tfts5yyParser1 type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser = Tfts5yyParser /* #include */ +/* For builds that do no have a growable stack, fts5yyGrowStack always +** returns an error. + */ + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3Fts5ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -194512,10 +196438,11 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { var fts5yypParser uintptr _ = fts5yypParser fts5yypParser = fts5yypRawParser - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = fts5yypParser + 16 - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fstateno = uint8(0) - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fmajor = uint8(0) - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = fts5yypParser + 16 + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack = fts5yypParser + 32 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fstateno = uint8(0) + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fmajor = uint8(0) } // C documentation @@ -194535,7 +196462,7 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2424)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -194555,7 +196482,7 @@ func _fts5yy_destructor(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor uint8, var pParse uintptr _ = pParse pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse - switch int32(fts5yymajor) { + switch int32(int32(fts5yymajor)) { /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a @@ -194617,11 +196544,17 @@ func _fts5yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var fts5yytos, pParser uintptr + _, _ = fts5yytos, pParser pParser = p - for (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos > pParser+16 { - _fts5yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling fts5yy_pop_parser_stack() for each + ** element left in the stack */ + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos + for fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yystack { + if int32((*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor) >= int32(fts5YY_MIN_DSTRCTR) { + _fts5yy_destructor(tls, pParser, (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor, fts5yytos+8) + } + fts5yytos -= 24 } } @@ -194671,13 +196604,13 @@ func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, freeProc uintptr) { func _fts5yy_find_shift_action(tls *libc.TLS, iLookAhead uint8, stateno uint8) (r uint8) { var i int32 _ = i - if int32(stateno) > int32(fts5YY_MAX_SHIFT) { + if int32(int32(stateno)) > int32(fts5YY_MAX_SHIFT) { return stateno } for cond := true; cond; cond = int32(1) != 0 { i = int32(_fts5yy_shift_ofst[stateno]) - i += int32(iLookAhead) - if int32(_fts5yy_lookahead[i]) != int32(iLookAhead) { + i += int32(int32(iLookAhead)) + if int32(_fts5yy_lookahead[i]) != int32(int32(iLookAhead)) { return _fts5yy_default[stateno] } else { return _fts5yy_action[i] @@ -194696,7 +196629,7 @@ func _fts5yy_find_reduce_action(tls *libc.TLS, stateno uint8, iLookAhead uint8) var i int32 _ = i i = int32(_fts5yy_reduce_ofst[stateno]) - i += int32(iLookAhead) + i += int32(int32(iLookAhead)) return _fts5yy_action[i] } @@ -194709,13 +196642,13 @@ func _fts5yyStackOverflow(tls *libc.TLS, fts5yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse - for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > fts5yypParser+16 { + for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack { _fts5yy_pop_parser_stack(tls, fts5yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34726, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34872, 0) /******** End %stack_overflow code ********************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument var */ } @@ -194733,15 +196666,18 @@ func _fts5yy_shift(tls *libc.TLS, fts5yypParser uintptr, fts5yyNewState uint8, f var fts5yytos uintptr _ = fts5yytos (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos += 24 - if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 - _fts5yyStackOverflow(tls, fts5yypParser) - return + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + if fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { + if int32(1) != 0 { + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 + _fts5yyStackOverflow(tls, fts5yypParser) + return + } + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos } - if int32(fts5yyNewState) > int32(fts5YY_MAX_SHIFT) { + if int32(int32(fts5yyNewState)) > int32(fts5YY_MAX_SHIFT) { fts5yyNewState = uint8(int32(fts5yyNewState) + (libc.Int32FromInt32(fts5YY_MIN_REDUCE) - libc.Int32FromInt32(fts5YY_MIN_SHIFTREDUCE))) } - fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fstateno = fts5yyNewState (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor = fts5yyMajor *(*TFts5Token)(unsafe.Pointer(fts5yytos + 8)) = fts5yyMinor @@ -195040,14 +196976,14 @@ _30: ; fts5yygoto = int32(_fts5yyRuleInfoLhs[fts5yyruleno]) fts5yysize = int32(_fts5yyRuleInfoNRhs[fts5yyruleno]) - fts5yyact = _fts5yy_find_reduce_action(tls, (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yymsp + uintptr(fts5yysize)*24))).Fstateno, uint8(fts5yygoto)) + fts5yyact = _fts5yy_find_reduce_action(tls, (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yymsp + uintptr(fts5yysize)*24))).Fstateno, uint8(uint8(fts5yygoto))) /* There are no SHIFTREDUCE actions on nonterminals because the table ** generator has simplified them to pure REDUCE actions. */ /* It is not possible for a REDUCE to be followed by an error */ fts5yymsp += uintptr(fts5yysize+int32(1)) * 24 (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = fts5yymsp (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yymsp)).Fstateno = fts5yyact - (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yymsp)).Fmajor = uint8(fts5yygoto) + (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yymsp)).Fmajor = uint8(uint8(fts5yygoto)) return fts5yyact } @@ -195068,7 +197004,7 @@ func _fts5yy_syntax_error(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor int3 pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse /************ Begin %syntax_error code ****************************************/ _ = fts5yymajor /* Silence a compiler warning */ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34754, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34900, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) /************ End %syntax_error code ******************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument variable */ } @@ -195122,25 +197058,27 @@ func _sqlite3Fts5Parser(tls *libc.TLS, fts5yyp uintptr, fts5yymajor int32, fts5y (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse fts5yyact = (*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos)).Fstateno for int32(1) != 0 { /* Exit by "break" */ - fts5yyact = _fts5yy_find_shift_action(tls, uint8(fts5yymajor), fts5yyact) - if int32(fts5yyact) >= int32(fts5YY_MIN_REDUCE) { - fts5yyruleno = uint32(int32(fts5yyact) - int32(fts5YY_MIN_REDUCE)) /* Reduce by this rule */ + fts5yyact = _fts5yy_find_shift_action(tls, uint8(uint8(fts5yymajor)), fts5yyact) + if int32(int32(fts5yyact)) >= int32(fts5YY_MIN_REDUCE) { + fts5yyruleno = uint32(int32(int32(fts5yyact)) - int32(fts5YY_MIN_REDUCE)) /* Reduce by this rule */ /* Check that the stack is large enough to grow by a single entry ** if the RHS of the rule is empty. This ensures that there is room ** enough on the stack to push the LHS value */ if int32(_fts5yyRuleInfoNRhs[fts5yyruleno]) == 0 { if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos >= (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - _fts5yyStackOverflow(tls, fts5yypParser) - break + if int32(1) != 0 { + _fts5yyStackOverflow(tls, fts5yypParser) + break + } } } fts5yyact = _fts5yy_reduce(tls, fts5yypParser, fts5yyruleno, fts5yymajor, fts5yyminor) } else { - if int32(fts5yyact) <= int32(fts5YY_MAX_SHIFTREDUCE) { - _fts5yy_shift(tls, fts5yypParser, fts5yyact, uint8(fts5yymajor), fts5yyminor) + if int32(int32(fts5yyact)) <= int32(fts5YY_MAX_SHIFTREDUCE) { + _fts5yy_shift(tls, fts5yypParser, fts5yyact, uint8(uint8(fts5yymajor)), fts5yyminor) break } else { - if int32(fts5yyact) == int32(fts5YY_ACCEPT_ACTION) { + if int32(int32(fts5yyact)) == int32(fts5YY_ACCEPT_ACTION) { (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 _fts5yy_accept(tls, fts5yypParser) return @@ -195154,7 +197092,7 @@ func _sqlite3Fts5Parser(tls *libc.TLS, fts5yyp uintptr, fts5yymajor int32, fts5y ** they intend to abandon the parse upon the first syntax error seen. */ _fts5yy_syntax_error(tls, fts5yypParser, fts5yymajor, fts5yyminor) - _fts5yy_destructor(tls, fts5yypParser, uint8(fts5yymajor), bp) + _fts5yy_destructor(tls, fts5yypParser, uint8(uint8(fts5yymajor)), bp) break } } @@ -195350,7 +197288,7 @@ func _fts5HighlightAppend(tls *libc.TLS, pRc uintptr, p uintptr, z uintptr, n in if n < 0 { n = int32(libc.Xstrlen(tls, z)) } - (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34785, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) + (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34931, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) if (*THighlightContext)(unsafe.Pointer(p)).FzOut == uintptr(0) { *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) } @@ -195447,7 +197385,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint var _ /* rc at bp+104 */ int32 _, _ = iCol, zErr if nVal != int32(3) { - zErr = __ccgo_ts + 34792 + zErr = __ccgo_ts + 34938 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -195458,7 +197396,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint (*(*THighlightContext)(unsafe.Pointer(bp))).FiRangeEnd = -int32(1) *(*int32)(unsafe.Pointer(bp + 104)) = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnText})))(tls, pFts, iCol, bp+24, bp+32) if *(*int32)(unsafe.Pointer(bp + 104)) == int32(SQLITE_RANGE) { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1652, -int32(1), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1666, -int32(1), libc.UintptrFromInt32(0)) *(*int32)(unsafe.Pointer(bp + 104)) = SQLITE_OK } else { if (*(*THighlightContext)(unsafe.Pointer(bp))).FzIn != 0 { @@ -195530,7 +197468,7 @@ func _fts5SentenceFinderAdd(tls *libc.TLS, p uintptr, iAdd int32) (r int32) { v1 = int32(64) } nNew = v1 - aNew = Xsqlite3_realloc64(tls, (*TFts5SFinder)(unsafe.Pointer(p)).FaFirst, uint64(nNew)*uint64(4)) + aNew = Xsqlite3_realloc64(tls, (*TFts5SFinder)(unsafe.Pointer(p)).FaFirst, uint64(uint64(uint64(nNew))*uint64(4))) if aNew == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -195570,7 +197508,7 @@ func _fts5SentenceFinderCb(tls *libc.TLS, pContext uintptr, tflags int32, pToken break } c = *(*int8)(unsafe.Pointer((*TFts5SFinder)(unsafe.Pointer(p)).FzDoc + uintptr(i))) - if int32(c) != int32(' ') && int32(c) != int32('\t') && int32(c) != int32('\n') && int32(c) != int32('\r') { + if int32(int32(c)) != int32(' ') && int32(int32(c)) != int32('\t') && int32(int32(c)) != int32('\n') && int32(int32(c)) != int32('\r') { break } goto _1 @@ -195578,7 +197516,7 @@ func _fts5SentenceFinderCb(tls *libc.TLS, pContext uintptr, tflags int32, pToken ; i-- } - if i != iStartOff-int32(1) && (int32(c) == int32('.') || int32(c) == int32(':')) { + if i != iStartOff-int32(1) && (int32(int32(c)) == int32('.') || int32(int32(c)) == int32(':')) { rc = _fts5SentenceFinderAdd(tls, p, (*TFts5SFinder)(unsafe.Pointer(p)).FiPos) } } else { @@ -195605,7 +197543,7 @@ func _fts5SnippetScore(tls *libc.TLS, pApi uintptr, pFts uintptr, nDocsize int32 iFirst = -int32(1) nScore = 0 iLast = 0 - iEnd = int64(iPos) + int64(nToken) + iEnd = int64(int64(iPos)) + int64(int64(nToken)) rc = (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5ExtensionApi)(unsafe.Pointer(pApi)).FxInstCount})))(tls, pFts, bp+12) i = 0 for { @@ -195634,13 +197572,13 @@ func _fts5SnippetScore(tls *libc.TLS, pApi uintptr, pFts uintptr, nDocsize int32 *(*int32)(unsafe.Pointer(pnScore)) = nScore if piPos != 0 { iAdj = int64(iFirst - (nToken-(iLast-iFirst))/int32(2)) - if iAdj+int64(nToken) > int64(nDocsize) { + if iAdj+int64(int64(nToken)) > int64(int64(nDocsize)) { iAdj = int64(nDocsize - nToken) } if iAdj < 0 { iAdj = 0 } - *(*int32)(unsafe.Pointer(piPos)) = int32(iAdj) + *(*int32)(unsafe.Pointer(piPos)) = int32(int32(iAdj)) } return rc } @@ -195659,7 +197597,7 @@ func _fts5ValueToText(tls *libc.TLS, pVal uintptr) (r uintptr) { if zRet != 0 { v1 = zRet } else { - v1 = __ccgo_ts + 1652 + v1 = __ccgo_ts + 1666 } return v1 } @@ -195693,7 +197631,7 @@ func _fts5SnippetFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintpt nBestScore = 0 /* Score of best snippet */ *(*int32)(unsafe.Pointer(bp + 112)) = 0 if nVal != int32(5) { - zErr = __ccgo_ts + 34842 + zErr = __ccgo_ts + 34988 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -195755,7 +197693,7 @@ func _fts5SnippetFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintpt if *(*int32)(unsafe.Pointer(bp + 104)) != SQLITE_OK { goto _3 } - libc.Xmemset(tls, aSeen, 0, uint64(nPhrase)) + libc.Xmemset(tls, aSeen, 0, uint64(uint64(nPhrase))) *(*int32)(unsafe.Pointer(bp + 104)) = _fts5SnippetScore(tls, pApi, pFts, *(*int32)(unsafe.Pointer(bp + 156)), aSeen, i, *(*int32)(unsafe.Pointer(bp + 168)), nToken, bp+176, bp+172) if *(*int32)(unsafe.Pointer(bp + 104)) == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 176)) > nBestScore { nBestScore = *(*int32)(unsafe.Pointer(bp + 176)) @@ -195778,7 +197716,7 @@ func _fts5SnippetFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintpt jj++ } if *(*int32)(unsafe.Pointer((*(*TFts5SFinder)(unsafe.Pointer(bp + 120))).FaFirst + uintptr(jj)*4)) < *(*int32)(unsafe.Pointer(bp + 168)) { - libc.Xmemset(tls, aSeen, 0, uint64(nPhrase)) + libc.Xmemset(tls, aSeen, 0, uint64(uint64(nPhrase))) *(*int32)(unsafe.Pointer(bp + 104)) = _fts5SnippetScore(tls, pApi, pFts, *(*int32)(unsafe.Pointer(bp + 156)), aSeen, i, *(*int32)(unsafe.Pointer((*(*TFts5SFinder)(unsafe.Pointer(bp + 120))).FaFirst + uintptr(jj)*4)), nToken, bp+176, uintptr(0)) if *(*int32)(unsafe.Pointer((*(*TFts5SFinder)(unsafe.Pointer(bp + 120))).FaFirst + uintptr(jj)*4)) == 0 { v5 = int32(120) @@ -195915,11 +197853,11 @@ func _fts5Bm25GetData(tls *libc.TLS, pApi uintptr, pFts uintptr, ppData uintptr) /* Allocate the Fts5Bm25Data object */ nPhrase = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5ExtensionApi)(unsafe.Pointer(pApi)).FxPhraseCount})))(tls, pFts) nByte = int64(uint64(32) + uint64(nPhrase*int32(2))*uint64(8)) - p = Xsqlite3_malloc64(tls, uint64(nByte)) + p = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) if p == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, p, 0, uint64(nByte)) + libc.Xmemset(tls, p, 0, uint64(uint64(nByte))) (*TFts5Bm25Data)(unsafe.Pointer(p)).FnPhrase = nPhrase (*TFts5Bm25Data)(unsafe.Pointer(p)).FaIDF = p + 1*32 (*TFts5Bm25Data)(unsafe.Pointer(p)).FaFreq = (*TFts5Bm25Data)(unsafe.Pointer(p)).FaIDF + uintptr(nPhrase)*8 @@ -196073,15 +198011,15 @@ func _sqlite3Fts5AuxInit(tls *libc.TLS, pApi uintptr) (r int32) { FxDestroy uintptr }{ 0: { - FzFunc: __ccgo_ts + 34890, + FzFunc: __ccgo_ts + 35036, FxFunc: __ccgo_fp(_fts5SnippetFunction), }, 1: { - FzFunc: __ccgo_ts + 34898, + FzFunc: __ccgo_ts + 35044, FxFunc: __ccgo_fp(_fts5HighlightFunction), }, 2: { - FzFunc: __ccgo_ts + 34908, + FzFunc: __ccgo_ts + 35054, FxFunc: __ccgo_fp(_fts5Bm25Function), }, } @@ -196127,7 +198065,7 @@ func _sqlite3Fts5BufferSize(tls *libc.TLS, pRc uintptr, pBuf uintptr, nByte Tu32 v1 = int32(64) } nNew = uint64(v1) - for nNew < uint64(nByte) { + for nNew < uint64(uint64(nByte)) { nNew = nNew * uint64(2) } pNew = Xsqlite3_realloc64(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp, nNew) @@ -196135,7 +198073,7 @@ func _sqlite3Fts5BufferSize(tls *libc.TLS, pRc uintptr, pBuf uintptr, nByte Tu32 *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) return int32(1) } else { - (*TFts5Buffer)(unsafe.Pointer(pBuf)).FnSpace = int32(nNew) + (*TFts5Buffer)(unsafe.Pointer(pBuf)).FnSpace = int32(int32(nNew)) (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp = pNew } } @@ -196159,7 +198097,7 @@ func _sqlite3Fts5BufferAppendVarint(tls *libc.TLS, pRc uintptr, pBuf uintptr, iV if v1 != 0 { return } - *(*int32)(unsafe.Pointer(pBuf + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn), uint64(iVal)) + *(*int32)(unsafe.Pointer(pBuf + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn), uint64(uint64(iVal))) } func _sqlite3Fts5Put32(tls *libc.TLS, aBuf uintptr, iVal int32) { @@ -196193,7 +198131,7 @@ func _sqlite3Fts5BufferAppendBlob(tls *libc.TLS, pRc uintptr, pBuf uintptr, nDat if v1 != 0 { return } - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn), pData, uint64(nData)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn), pData, uint64(uint64(nData))) p2 = pBuf + 8 *(*int32)(unsafe.Pointer(p2)) = int32(uint32(*(*int32)(unsafe.Pointer(p2))) + nData) } @@ -196286,7 +198224,7 @@ func _sqlite3Fts5BufferZero(tls *libc.TLS, pBuf uintptr) { // */ func _sqlite3Fts5BufferSet(tls *libc.TLS, pRc uintptr, pBuf uintptr, nData int32, pData uintptr) { (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn = 0 - _sqlite3Fts5BufferAppendBlob(tls, pRc, pBuf, uint32(nData), pData) + _sqlite3Fts5BufferAppendBlob(tls, pRc, pBuf, uint32(uint32(nData)), pData) } func _sqlite3Fts5PoslistNext64(tls *libc.TLS, a uintptr, n int32, pi uintptr, piOff uintptr) (r int32) { @@ -196418,13 +198356,13 @@ func _sqlite3Fts5MallocZero(tls *libc.TLS, pRc uintptr, nByte Tsqlite3_int64) (r _ = pRet pRet = uintptr(0) if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK { - pRet = Xsqlite3_malloc64(tls, uint64(nByte)) + pRet = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) if pRet == uintptr(0) { if nByte > 0 { *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) } } else { - libc.Xmemset(tls, pRet, 0, uint64(nByte)) + libc.Xmemset(tls, pRet, 0, uint64(uint64(nByte))) } } return pRet @@ -196450,7 +198388,7 @@ func _sqlite3Fts5Strndup(tls *libc.TLS, pRc uintptr, pIn uintptr, nIn int32) (r } zRet = Xsqlite3_malloc(tls, nIn+int32(1)) if zRet != 0 { - libc.Xmemcpy(tls, zRet, pIn, uint64(nIn)) + libc.Xmemcpy(tls, zRet, pIn, uint64(uint64(nIn))) *(*int8)(unsafe.Pointer(zRet + uintptr(nIn))) = int8('\000') } else { *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) @@ -196540,7 +198478,7 @@ func _sqlite3Fts5IsBareword(tls *libc.TLS, t int8) (r int32) { 121: uint8(1), 122: uint8(1), } - return libc.BoolInt32(int32(t)&int32(0x80) != 0 || aBareword[int32(t)] != 0) + return libc.BoolInt32(int32(int32(t))&int32(0x80) != 0 || aBareword[int32(int32(t))] != 0) } // C documentation @@ -196607,14 +198545,14 @@ func _sqlite3Fts5TermsetAdd(tls *libc.TLS, p uintptr, iIdx int32, pTerm uintptr, ; i-- } - hash = hash<= int32('0') && int32(a) <= int32('9')) + return libc.BoolInt32(int32(int32(a)) >= int32('0') && int32(int32(a)) <= int32('9')) } func _fts5ConfigSkipLiteral(tls *libc.TLS, pIn uintptr) (r uintptr) { @@ -196741,7 +198679,7 @@ func _fts5ConfigSkipLiteral(tls *libc.TLS, pIn uintptr) (r uintptr) { case int32('n'): fallthrough case int32('N'): - if Xsqlite3_strnicmp(tls, __ccgo_ts+1638, p, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+1652, p, int32(4)) == 0 { p = p + 4 } else { p = uintptr(0) @@ -196755,7 +198693,7 @@ func _fts5ConfigSkipLiteral(tls *libc.TLS, pIn uintptr) (r uintptr) { for int32(*(*int8)(unsafe.Pointer(p))) >= int32('a') && int32(*(*int8)(unsafe.Pointer(p))) <= int32('f') || int32(*(*int8)(unsafe.Pointer(p))) >= int32('A') && int32(*(*int8)(unsafe.Pointer(p))) <= int32('F') || int32(*(*int8)(unsafe.Pointer(p))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(p))) <= int32('9') { p++ } - if int32(*(*int8)(unsafe.Pointer(p))) == int32('\'') && 0 == (int64(p)-int64(pIn))%int64(2) { + if int32(*(*int8)(unsafe.Pointer(p))) == int32('\'') && 0 == (int64(int64(p))-int64(int64(pIn)))%int64(2) { p++ } else { p = uintptr(0) @@ -196825,12 +198763,12 @@ func _fts5Dequote(tls *libc.TLS, z uintptr) (r int32) { iOut = 0 q = *(*int8)(unsafe.Pointer(z)) /* Set stack variable q to the close-quote character */ - if int32(q) == int32('[') { + if int32(int32(q)) == int32('[') { q = int8(']') } for *(*int8)(unsafe.Pointer(z + uintptr(iIn))) != 0 { - if int32(*(*int8)(unsafe.Pointer(z + uintptr(iIn)))) == int32(q) { - if int32(*(*int8)(unsafe.Pointer(z + uintptr(iIn+int32(1))))) != int32(q) { + if int32(*(*int8)(unsafe.Pointer(z + uintptr(iIn)))) == int32(int32(q)) { + if int32(*(*int8)(unsafe.Pointer(z + uintptr(iIn+int32(1))))) != int32(int32(q)) { /* Character iIn was the close quote. */ iIn++ break @@ -196874,7 +198812,7 @@ func _sqlite3Fts5Dequote(tls *libc.TLS, z uintptr) { var quote int8 _ = quote /* Quote character (if any ) */ quote = *(*int8)(unsafe.Pointer(z)) - if int32(quote) == int32('[') || int32(quote) == int32('\'') || int32(quote) == int32('"') || int32(quote) == int32('`') { + if int32(int32(quote)) == int32('[') || int32(int32(quote)) == int32('\'') || int32(int32(quote)) == int32('"') || int32(int32(quote)) == int32('`') { _fts5Dequote(tls, z) } } @@ -196945,11 +198883,11 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _, _, _, _, _, _, _, _, _, _, _, _ = azArg, bFirst, nArg, nByte, nCmd, nPre, p, p1, p2, pDel, pSpace, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK nCmd = int32(libc.Xstrlen(tls, zCmd)) - if Xsqlite3_strnicmp(tls, __ccgo_ts+34913, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35059, zCmd, nCmd) == 0 { nByte = int32(libc.Uint64FromInt64(4) * libc.Uint64FromInt32(FTS5_MAX_PREFIX_INDEXES)) bFirst = int32(1) if (*TFts5Config)(unsafe.Pointer(pConfig)).FaPrefix == uintptr(0) { - (*TFts5Config)(unsafe.Pointer(pConfig)).FaPrefix = _sqlite3Fts5MallocZero(tls, bp, int64(nByte)) + (*TFts5Config)(unsafe.Pointer(pConfig)).FaPrefix = _sqlite3Fts5MallocZero(tls, bp, int64(int64(nByte))) if *(*int32)(unsafe.Pointer(bp)) != 0 { return *(*int32)(unsafe.Pointer(bp)) } @@ -196971,12 +198909,12 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } } if int32(*(*int8)(unsafe.Pointer(p))) < int32('0') || int32(*(*int8)(unsafe.Pointer(p))) > int32('9') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34920, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35066, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } if (*TFts5Config)(unsafe.Pointer(pConfig)).FnPrefix == int32(FTS5_MAX_PREFIX_INDEXES) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34951, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35097, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -196985,7 +198923,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC p++ } if nPre <= 0 || nPre >= int32(1000) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34984, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35130, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -196995,15 +198933,15 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35021, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35167, zCmd, nCmd) == 0 { p1 = zArg nArg = int64(libc.Xstrlen(tls, zArg) + uint64(1)) - azArg = _sqlite3Fts5MallocZero(tls, bp, int64(uint64(8)*uint64(nArg))) + azArg = _sqlite3Fts5MallocZero(tls, bp, int64(uint64(8)*uint64(uint64(nArg)))) pDel = _sqlite3Fts5MallocZero(tls, bp, nArg*int64(2)) pSpace = pDel if azArg != 0 && pSpace != 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35030, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35176, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { nArg = 0 @@ -197018,10 +198956,10 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC p1 = _fts5ConfigSkipBareword(tls, p2) } if p1 != 0 { - libc.Xmemcpy(tls, pSpace, p2, uint64(int64(p1)-int64(p2))) + libc.Xmemcpy(tls, pSpace, p2, uint64(int64(int64(p1))-int64(int64(p2)))) *(*uintptr)(unsafe.Pointer(azArg + uintptr(nArg)*8)) = pSpace _sqlite3Fts5Dequote(tls, pSpace) - pSpace += uintptr(int64(p1) - int64(p2) + int64(1)) + pSpace += uintptr(int64(int64(p1)) - int64(int64(p2)) + int64(1)) p1 = _fts5ConfigSkipWhitespace(tls, p1) } goto _1 @@ -197030,10 +198968,10 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC nArg++ } if p1 == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35063, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35209, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5GetTokenizer(tls, pGlobal, azArg, int32(nArg), pConfig, pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5GetTokenizer(tls, pGlobal, azArg, int32(int32(nArg)), pConfig, pzErr) } } } @@ -197041,58 +198979,58 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC Xsqlite3_free(tls, pDel) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35097, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35243, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent != FTS5_CONTENT_NORMAL { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35105, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35251, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if *(*int8)(unsafe.Pointer(zArg)) != 0 { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_EXTERNAL) - (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35137, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) + (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35283, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_NONE) } } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35143, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35289, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35162, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35308, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35205, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35351, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35219, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35365, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, zArg, -int32(1)) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35257, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35403, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35268, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35414, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+5503, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+5567, zCmd, nCmd) == 0 { *(*[4]TFts5Enum)(unsafe.Pointer(bp + 8)) = [4]TFts5Enum{ 0: { - FzName: __ccgo_ts + 8222, + FzName: __ccgo_ts + 8347, FeVal: int32(FTS5_DETAIL_NONE), }, 1: { - FzName: __ccgo_ts + 17751, + FzName: __ccgo_ts + 17838, }, 2: { - FzName: __ccgo_ts + 35303, + FzName: __ccgo_ts + 35449, FeVal: int32(FTS5_DETAIL_COLUMNS), }, 3: {}, @@ -197100,20 +199038,20 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC v2 = _fts5ConfigSetEnum(tls, bp+8, zArg, pConfig+96) *(*int32)(unsafe.Pointer(bp)) = v2 if v2 != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35311, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35457, 0) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35342, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35488, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35352, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35498, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbTokendata = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35386, libc.VaList(bp+80, nCmd, zCmd)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35532, libc.VaList(bp+80, nCmd, zCmd)) return int32(SQLITE_ERROR) } @@ -197166,7 +199104,7 @@ func _fts5ConfigGobbleWord(tls *libc.TLS, pRc uintptr, zIn uintptr, pzOut uintpt } else { zRet = _fts5ConfigSkipBareword(tls, zIn) if zRet != 0 { - *(*int8)(unsafe.Pointer(zOut + uintptr(int64(zRet)-int64(zIn)))) = int8('\000') + *(*int8)(unsafe.Pointer(zOut + uintptr(int64(int64(zRet))-int64(int64(zIn))))) = int8('\000') } } } @@ -197185,15 +199123,15 @@ func _fts5ConfigParseColumn(tls *libc.TLS, p uintptr, zCol uintptr, zArg uintptr var v2 uintptr _, _, _ = rc, v1, v2 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35414) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16698) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35419, libc.VaList(bp+8, zCol)) + if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35560) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16785) { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35565, libc.VaList(bp+8, zCol)) rc = int32(SQLITE_ERROR) } else { if zArg != 0 { - if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35449) { + if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35595) { *(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FabUnindexed + uintptr((*TFts5Config)(unsafe.Pointer(p)).FnCol))) = uint8(1) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35459, libc.VaList(bp+8, zArg)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35605, libc.VaList(bp+8, zArg)) rc = int32(SQLITE_ERROR) } } @@ -197219,7 +199157,7 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TFts5Buffer)(unsafe.Pointer(bp + 8)) = TFts5Buffer{} - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35490, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35636, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) if (*TFts5Config)(unsafe.Pointer(p)).FeContent != int32(FTS5_CONTENT_NONE) { i = 0 for { @@ -197227,9 +199165,9 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { break } if (*TFts5Config)(unsafe.Pointer(p)).FeContent == int32(FTS5_CONTENT_EXTERNAL) { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35495, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35641, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) } else { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35502, libc.VaList(bp+32, i)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35648, libc.VaList(bp+32, i)) } goto _1 _1: @@ -197277,7 +199215,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in libc.Xmemset(tls, pRet, 0, uint64(200)) (*TFts5Config)(unsafe.Pointer(pRet)).Fdb = db (*TFts5Config)(unsafe.Pointer(pRet)).FiCookie = -int32(1) - nByte = int64(uint64(nArg) * (libc.Uint64FromInt64(8) + libc.Uint64FromInt64(1))) + nByte = int64(uint64(uint64(nArg)) * (libc.Uint64FromInt64(8) + libc.Uint64FromInt64(1))) (*TFts5Config)(unsafe.Pointer(pRet)).FazCol = _sqlite3Fts5MallocZero(tls, bp, nByte) if (*TFts5Config)(unsafe.Pointer(pRet)).FazCol != 0 { v2 = (*TFts5Config)(unsafe.Pointer(pRet)).FazCol + uintptr(nArg)*8 @@ -197289,8 +199227,8 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in (*TFts5Config)(unsafe.Pointer(pRet)).FzName = _sqlite3Fts5Strndup(tls, bp, *(*uintptr)(unsafe.Pointer(azArg + 2*8)), -int32(1)) (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize = int32(1) (*TFts5Config)(unsafe.Pointer(pRet)).FeDetail = FTS5_DETAIL_FULL - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35414) == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35510, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35560) == 0 { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35656, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } i = int32(3) @@ -197321,19 +199259,19 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { if z == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35539, libc.VaList(bp+40, zOrig)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35685, libc.VaList(bp+40, zOrig)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bOption != 0 { if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { v4 = *(*uintptr)(unsafe.Pointer(bp + 8)) } else { - v4 = __ccgo_ts + 1652 + v4 = __ccgo_ts + 1666 } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { v5 = *(*uintptr)(unsafe.Pointer(bp + 16)) } else { - v5 = __ccgo_ts + 1652 + v5 = __ccgo_ts + 1666 } *(*int32)(unsafe.Pointer(bp)) = _fts5ConfigParseSpecial(tls, pGlobal, pRet, v4, v5, pzErr) } else { @@ -197351,7 +199289,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } /* We only allow contentless_delete=1 if the table is indeed contentless. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FeContent != int32(FTS5_CONTENT_NONE) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35559, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35705, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* We only allow contentless_delete=1 if columnsize=0 is not present. @@ -197359,7 +199297,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in ** This restriction may be removed at some point. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35609, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35755, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* If a tokenizer= option was successfully parsed, the tokenizer has @@ -197372,18 +199310,18 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContent == uintptr(0) { zTail = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pRet)).FeContent == FTS5_CONTENT_NORMAL { - zTail = __ccgo_ts + 35097 + zTail = __ccgo_ts + 35243 } else { if (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize != 0 { - zTail = __ccgo_ts + 35664 + zTail = __ccgo_ts + 35810 } } if zTail != 0 { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35672, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35818, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid == uintptr(0) { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16698, -int32(1)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16785, -int32(1)) } /* Formulate the zContentExprlist text */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -197447,25 +199385,25 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { var _ /* rc at bp+0 */ int32 _, _, _, _ = i, zSep, zSql, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35683, 0) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35829, 0) i = 0 for { if !(zSql != 0 && i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } if i == 0 { - v2 = __ccgo_ts + 1652 + v2 = __ccgo_ts + 1666 } else { - v2 = __ccgo_ts + 14994 + v2 = __ccgo_ts + 15087 } zSep = v2 - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35699, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35845, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) goto _1 _1: ; i++ } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35706, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35414)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35852, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35560)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_declare_vtab(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql) Xsqlite3_free(tls, zSql) @@ -197563,9 +199501,9 @@ func _sqlite3Fts5ConfigParseRank(tls *libc.TLS, zIn uintptr, pzRank uintptr, pzR pRank = p p = _fts5ConfigSkipBareword(tls, p) if p != 0 { - zRank = _sqlite3Fts5MallocZero(tls, bp, int64(uintptr(1)+p)-int64(pRank)) + zRank = _sqlite3Fts5MallocZero(tls, bp, int64(int64(uintptr(1)+p)-int64(int64(pRank)))) if zRank != 0 { - libc.Xmemcpy(tls, zRank, pRank, uint64(int64(p)-int64(pRank))) + libc.Xmemcpy(tls, zRank, pRank, uint64(int64(int64(p))-int64(int64(pRank)))) } } else { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) @@ -197585,9 +199523,9 @@ func _sqlite3Fts5ConfigParseRank(tls *libc.TLS, zIn uintptr, pzRank uintptr, pzR if p == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { - zRankArgs = _sqlite3Fts5MallocZero(tls, bp, int64(uintptr(1)+p)-int64(pArgs)) + zRankArgs = _sqlite3Fts5MallocZero(tls, bp, int64(int64(uintptr(1)+p)-int64(int64(pArgs)))) if zRankArgs != 0 { - libc.Xmemcpy(tls, zRankArgs, pArgs, uint64(int64(p)-int64(pArgs))) + libc.Xmemcpy(tls, zRankArgs, pArgs, uint64(int64(int64(p))-int64(int64(pArgs)))) } } } @@ -197611,7 +199549,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV var _ /* zRankArgs at bp+8 */ uintptr _, _, _, _, _, _, _, _, _, _ = bVal, nAutomerge, nCrisisMerge, nHashSize, nUsermerge, nVal, pgsz, rc, zIn, v1 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35732) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35878) { pgsz = 0 if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { pgsz = Xsqlite3_value_int(tls, pVal) @@ -197622,7 +199560,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).Fpgsz = pgsz } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35737) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35883) { nHashSize = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nHashSize = Xsqlite3_value_int(tls, pVal) @@ -197633,7 +199571,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnHashSize = nHashSize } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35746) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35892) { nAutomerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nAutomerge = Xsqlite3_value_int(tls, pVal) @@ -197647,7 +199585,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnAutomerge = nAutomerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35756) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35902) { nUsermerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nUsermerge = Xsqlite3_value_int(tls, pVal) @@ -197658,7 +199596,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnUsermerge = nUsermerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35766) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35912) { nCrisisMerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nCrisisMerge = Xsqlite3_value_int(tls, pVal) @@ -197675,7 +199613,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnCrisisMerge = nCrisisMerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35778) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35924) { nVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nVal = Xsqlite3_value_int(tls, pVal) @@ -197690,7 +199628,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } (*TFts5Config)(unsafe.Pointer(pConfig)).FnDeleteMerge = nVal } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35414) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35560) { zIn = Xsqlite3_value_text(tls, pVal) rc = _sqlite3Fts5ConfigParseRank(tls, zIn, bp, bp+8) if rc == SQLITE_OK { @@ -197705,7 +199643,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35790) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35936) { bVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { bVal = Xsqlite3_value_int(tls, pVal) @@ -197747,7 +199685,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in var _ /* p at bp+0 */ uintptr var _ /* rc at bp+8 */ int32 _, _, _, _, _ = iVersion, pVal, zK, zSelect, zSql - zSelect = __ccgo_ts + 35804 + zSelect = __ccgo_ts + 35950 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_OK iVersion = 0 @@ -197767,7 +199705,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in for int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zK = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) pVal = Xsqlite3_column_value(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) - if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35836) { + if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35982) { iVersion = Xsqlite3_value_int(tls, pVal) } else { *(*int32)(unsafe.Pointer(bp + 12)) = 0 @@ -197779,7 +199717,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && iVersion != int32(FTS5_CURRENT_VERSION) && iVersion != int32(FTS5_CURRENT_VERSION_SECUREDELETE) { *(*int32)(unsafe.Pointer(bp + 8)) = int32(SQLITE_ERROR) if (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg != 0 { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35844, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35990, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = iVersion @@ -197942,7 +199880,7 @@ func _sqlite3Fts5ParseError(tls *libc.TLS, pParse uintptr, zFmt uintptr, va uint } func _fts5ExprIsspace(tls *libc.TLS, t int8) (r int32) { - return libc.BoolInt32(int32(t) == int32(' ') || int32(t) == int32('\t') || int32(t) == int32('\n') || int32(t) == int32('\r')) + return libc.BoolInt32(int32(int32(t)) == int32(' ') || int32(int32(t)) == int32('\t') || int32(int32(t)) == int32('\n') || int32(int32(t)) == int32('\r')) } // C documentation @@ -198000,7 +199938,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr } } if int32(*(*int8)(unsafe.Pointer(z2))) == int32('\000') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35915, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36061, 0) return FTS5_EOF } goto _1 @@ -198008,10 +199946,10 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr ; z2++ } - (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z2) - int64(z)) + (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(int64(z2)) - int64(int64(z))) default: if _sqlite3Fts5IsBareword(tls, *(*int8)(unsafe.Pointer(z))) == 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35935, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36081, libc.VaList(bp+8, z)) return FTS5_EOF } tok = int32(FTS5_STRING) @@ -198025,14 +199963,14 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr ; z21++ } - (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z21) - int64(z)) - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35966, uint64(2)) == 0 { + (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(int64(z21)) - int64(int64(z))) + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36112, uint64(2)) == 0 { tok = int32(FTS5_OR) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35969, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36115, uint64(3)) == 0 { tok = int32(FTS5_NOT) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30710, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30856, uint64(3)) == 0 { tok = int32(FTS5_AND) } break @@ -198042,7 +199980,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr } func _fts5ParseAlloc(tls *libc.TLS, t Tu64) (r uintptr) { - return Xsqlite3_malloc64(tls, uint64(int64(t))) + return Xsqlite3_malloc64(tls, uint64(int64(int64(t)))) } func _fts5ParseFree(tls *libc.TLS, p uintptr) { @@ -198077,7 +200015,7 @@ func _sqlite3Fts5ExprNew(tls *libc.TLS, pConfig uintptr, bPhraseToAnd int32, iCo ** implicit column-filter. */ if iCol < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol && (*(*TFts5Parse)(unsafe.Pointer(bp))).FpExpr != 0 && (*(*TFts5Parse)(unsafe.Pointer(bp))).Frc == SQLITE_OK { n = int32(8) - pColset = _sqlite3Fts5MallocZero(tls, bp+16, int64(n)) + pColset = _sqlite3Fts5MallocZero(tls, bp+16, int64(int64(n))) if pColset != 0 { (*TFts5Colset)(unsafe.Pointer(pColset)).FnCol = int32(1) *(*int32)(unsafe.Pointer(pColset + 4)) = iCol @@ -198094,7 +200032,7 @@ func _sqlite3Fts5ExprNew(tls *libc.TLS, pConfig uintptr, bPhraseToAnd int32, iCo } else { if !((*(*TFts5Parse)(unsafe.Pointer(bp))).FpExpr != 0) { nByte = int32(56) - (*TFts5Expr)(unsafe.Pointer(pNew)).FpRoot = _sqlite3Fts5MallocZero(tls, bp+16, int64(nByte)) + (*TFts5Expr)(unsafe.Pointer(pNew)).FpRoot = _sqlite3Fts5MallocZero(tls, bp+16, int64(int64(nByte))) if (*TFts5Expr)(unsafe.Pointer(pNew)).FpRoot != 0 { (*TFts5ExprNode)(unsafe.Pointer((*TFts5Expr)(unsafe.Pointer(pNew)).FpRoot)).FbEof = int32(1) } @@ -198176,8 +200114,8 @@ func _sqlite3Fts5ExprPattern(tls *libc.TLS, pConfig uintptr, bGlob int32, iCol i aSpec[int32(1)] = int8('?') aSpec[int32(2)] = int8('[') } - for int64(i) <= nText { - if int64(i) == nText || int32(*(*int8)(unsafe.Pointer(zText + uintptr(i)))) == int32(aSpec[0]) || int32(*(*int8)(unsafe.Pointer(zText + uintptr(i)))) == int32(aSpec[int32(1)]) || int32(*(*int8)(unsafe.Pointer(zText + uintptr(i)))) == int32(aSpec[int32(2)]) { + for int64(int64(i)) <= nText { + if int64(int64(i)) == nText || int32(*(*int8)(unsafe.Pointer(zText + uintptr(i)))) == int32(aSpec[0]) || int32(*(*int8)(unsafe.Pointer(zText + uintptr(i)))) == int32(aSpec[int32(1)]) || int32(*(*int8)(unsafe.Pointer(zText + uintptr(i)))) == int32(aSpec[int32(2)]) { if _fts5ExprCountChar(tls, zText+uintptr(iFirst), i-iFirst) >= int32(3) { v1 = iOut iOut++ @@ -198212,7 +200150,7 @@ func _sqlite3Fts5ExprPattern(tls *libc.TLS, pConfig uintptr, bGlob int32, iCol i if int32(*(*int8)(unsafe.Pointer(zText + uintptr(i-int32(1))))) == int32('^') { i++ } - for int64(i) < nText && int32(*(*int8)(unsafe.Pointer(zText + uintptr(i)))) != int32(']') { + for int64(int64(i)) < nText && int32(*(*int8)(unsafe.Pointer(zText + uintptr(i)))) != int32(']') { i++ } } @@ -198290,7 +200228,7 @@ func _sqlite3Fts5ExprAnd(tls *libc.TLS, pp1 uintptr, p2 uintptr) (r int32) { (*TFts5Expr)(unsafe.Pointer(p1)).FpRoot = _sqlite3Fts5ParseNode(tls, bp, int32(FTS5_AND), (*TFts5Expr)(unsafe.Pointer(p1)).FpRoot, (*TFts5Expr)(unsafe.Pointer(p2)).FpRoot, uintptr(0)) (*TFts5Expr)(unsafe.Pointer(p2)).FpRoot = uintptr(0) if (*(*TFts5Parse)(unsafe.Pointer(bp))).Frc == SQLITE_OK { - ap = Xsqlite3_realloc(tls, (*TFts5Expr)(unsafe.Pointer(p1)).FapExprPhrase, int32(uint64(nPhrase)*uint64(8))) + ap = Xsqlite3_realloc(tls, (*TFts5Expr)(unsafe.Pointer(p1)).FapExprPhrase, int32(uint64(uint64(nPhrase))*uint64(8))) if ap == uintptr(0) { (*(*TFts5Parse)(unsafe.Pointer(bp))).Frc = int32(SQLITE_NOMEM) } else { @@ -198386,13 +200324,13 @@ func _fts5ExprSynonymList(tls *libc.TLS, pTerm uintptr, iRowid Ti64, pBuf uintpt goto _1 } if nIter == nAlloc { - nByte = int64(uint64(32) * uint64(nAlloc) * uint64(2)) - aNew = Xsqlite3_malloc64(tls, uint64(nByte)) + nByte = int64(uint64(32) * uint64(uint64(nAlloc)) * uint64(2)) + aNew = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) if aNew == uintptr(0) { rc = int32(SQLITE_NOMEM) goto synonym_poslist_out } - libc.Xmemcpy(tls, aNew, aIter, uint64(32)*uint64(nIter)) + libc.Xmemcpy(tls, aNew, aIter, uint64(32)*uint64(uint64(nIter))) nAlloc = nAlloc * int32(2) if aIter != bp { Xsqlite3_free(tls, aIter) @@ -198447,6 +200385,7 @@ func _fts5ExprSynonymList(tls *libc.TLS, pTerm uintptr, iRowid Ti64, pBuf uintpt *(*int32)(unsafe.Pointer(pn)) = (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn } } + goto synonym_poslist_out synonym_poslist_out: ; if aIter != bp { @@ -198490,7 +200429,7 @@ func _fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMat ** using sqlite3_malloc(). This approach could be improved upon. */ if (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > int32(libc.Uint64FromInt64(128)/libc.Uint64FromInt64(32)) { nByte = int64(uint64(32) * uint64((*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm)) - aIter = Xsqlite3_malloc64(tls, uint64(nByte)) + aIter = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) if !(aIter != 0) { return int32(SQLITE_NOMEM) } @@ -198521,7 +200460,7 @@ func _fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMat *(*int32)(unsafe.Pointer(bp + 136)) = (*TFts5IndexIter)(unsafe.Pointer((*TFts5ExprTerm)(unsafe.Pointer(pTerm)).FpIter)).FnData } _sqlite3Fts5PoslistReaderInit(tls, *(*uintptr)(unsafe.Pointer(bp + 144)), *(*int32)(unsafe.Pointer(bp + 136)), aIter+uintptr(i)*32) - (*(*TFts5PoslistReader)(unsafe.Pointer(aIter + uintptr(i)*32))).FbFlag = uint8(bFlag) + (*(*TFts5PoslistReader)(unsafe.Pointer(aIter + uintptr(i)*32))).FbFlag = uint8(uint8(bFlag)) if (*(*TFts5PoslistReader)(unsafe.Pointer(aIter + uintptr(i)*32))).FbEof != 0 { goto ismatch_out } @@ -198540,7 +200479,7 @@ func _fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMat break } pPos = aIter + uintptr(i)*32 - iAdj = iPos + int64(i) + iAdj = iPos + int64(int64(i)) if (*TFts5PoslistReader)(unsafe.Pointer(pPos)).FiPos != iAdj { bMatch = 0 for (*TFts5PoslistReader)(unsafe.Pointer(pPos)).FiPos < iAdj { @@ -198549,7 +200488,7 @@ func _fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMat } } if (*TFts5PoslistReader)(unsafe.Pointer(pPos)).FiPos > iAdj { - iPos = (*TFts5PoslistReader)(unsafe.Pointer(pPos)).FiPos - int64(i) + iPos = (*TFts5PoslistReader)(unsafe.Pointer(pPos)).FiPos - int64(int64(i)) } } goto _2 @@ -198579,6 +200518,7 @@ func _fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMat i++ } } + goto ismatch_out ismatch_out: ; *(*int32)(unsafe.Pointer(pbMatch)) = libc.BoolInt32((*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn > 0) @@ -198785,6 +200725,7 @@ func _fts5ExprNearIsMatch(tls *libc.TLS, pRc uintptr, pNear uintptr) (r int32) { goto ismatch_out } } + goto ismatch_out ismatch_out: ; bRet = libc.BoolInt32((*TFts5Buffer)(unsafe.Pointer((*(*TFts5NearTrimmer)(unsafe.Pointer(a))).FpOut)).Fn > 0) @@ -199719,18 +201660,18 @@ func _sqlite3Fts5ParseNearset(tls *libc.TLS, pParse uintptr, pNear uintptr, pPhr return pNear } if pNear == uintptr(0) { - nByte = int64(uint64(32) + uint64(SZALLOC)*uint64(8)) - pRet = Xsqlite3_malloc64(tls, uint64(nByte)) + nByte = int64(uint64(32) + uint64(uint64(SZALLOC))*uint64(8)) + pRet = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) if pRet == uintptr(0) { (*TFts5Parse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, pRet, 0, uint64(nByte)) + libc.Xmemset(tls, pRet, 0, uint64(uint64(nByte))) } } else { if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase%SZALLOC == 0 { nNew = (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase + SZALLOC - nByte1 = int64(uint64(32) + uint64(nNew)*uint64(8)) - pRet = Xsqlite3_realloc64(tls, pNear, uint64(nByte1)) + nByte1 = int64(uint64(32) + uint64(uint64(nNew))*uint64(8)) + pRet = Xsqlite3_realloc64(tls, pNear, uint64(uint64(nByte1))) if pRet == uintptr(0) { (*TFts5Parse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_NOMEM) } @@ -199810,12 +201751,12 @@ func _fts5ParseTokenize(tls *libc.TLS, pContext uintptr, tflags int32, pToken ui nToken = int32(FTS5_MAX_TOKEN_SIZE) } if pPhrase != 0 && (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 0 && tflags&int32(FTS5_TOKEN_COLOCATED) != 0 { - nByte = int64(libc.Uint64FromInt64(40) + libc.Uint64FromInt64(16) + uint64(nToken) + uint64(1)) - pSyn = Xsqlite3_malloc64(tls, uint64(nByte)) + nByte = int64(libc.Uint64FromInt64(40) + libc.Uint64FromInt64(16) + uint64(uint64(nToken)) + uint64(1)) + pSyn = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) if pSyn == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, pSyn, 0, uint64(nByte)) + libc.Xmemset(tls, pSyn, 0, uint64(uint64(nByte))) (*TFts5ExprTerm)(unsafe.Pointer(pSyn)).FpTerm = pSyn + uintptr(40) + uintptr(16) v1 = nToken (*TFts5ExprTerm)(unsafe.Pointer(pSyn)).FnQueryTerm = v1 @@ -199823,7 +201764,7 @@ func _fts5ParseTokenize(tls *libc.TLS, pContext uintptr, tflags int32, pToken ui if (*TFts5Config)(unsafe.Pointer((*TTokenCtx)(unsafe.Pointer(pCtx)).FpConfig)).FbTokendata != 0 { (*TFts5ExprTerm)(unsafe.Pointer(pSyn)).FnQueryTerm = int32(libc.Xstrlen(tls, (*TFts5ExprTerm)(unsafe.Pointer(pSyn)).FpTerm)) } - libc.Xmemcpy(tls, (*TFts5ExprTerm)(unsafe.Pointer(pSyn)).FpTerm, pToken, uint64(nToken)) + libc.Xmemcpy(tls, (*TFts5ExprTerm)(unsafe.Pointer(pSyn)).FpTerm, pToken, uint64(uint64(nToken))) (*TFts5ExprTerm)(unsafe.Pointer(pSyn)).FpSynonym = (*(*TFts5ExprTerm)(unsafe.Pointer(pPhrase + 32 + uintptr((*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm-int32(1))*40))).FpSynonym (*(*TFts5ExprTerm)(unsafe.Pointer(pPhrase + 32 + uintptr((*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm-int32(1))*40))).FpSynonym = pSyn } @@ -199835,7 +201776,7 @@ func _fts5ParseTokenize(tls *libc.TLS, pContext uintptr, tflags int32, pToken ui v2 = 0 } nNew = SZALLOC + v2 - pNew = Xsqlite3_realloc64(tls, pPhrase, uint64(72)+uint64(40)*uint64(nNew)) + pNew = Xsqlite3_realloc64(tls, pPhrase, uint64(uint64(72)+uint64(40)*uint64(uint64(nNew)))) if pNew == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } else { @@ -199911,7 +201852,7 @@ func _parseGrowPhraseArray(tls *libc.TLS, pParse uintptr) (r int32) { _, _ = apNew, nByte if (*TFts5Parse)(unsafe.Pointer(pParse)).FnPhrase%int32(8) == 0 { nByte = int64(uint64(8) * uint64((*TFts5Parse)(unsafe.Pointer(pParse)).FnPhrase+libc.Int32FromInt32(8))) - apNew = Xsqlite3_realloc64(tls, (*TFts5Parse)(unsafe.Pointer(pParse)).FapPhrase, uint64(nByte)) + apNew = Xsqlite3_realloc64(tls, (*TFts5Parse)(unsafe.Pointer(pParse)).FapPhrase, uint64(uint64(nByte))) if apNew == uintptr(0) { (*TFts5Parse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_NOMEM) return int32(SQLITE_NOMEM) @@ -199977,7 +201918,7 @@ func _sqlite3Fts5ParseTerm(tls *libc.TLS, pParse uintptr, pAppend uintptr, pToke (*(*TTokenCtx)(unsafe.Pointer(bp))).FpPhrase = _sqlite3Fts5MallocZero(tls, pParse+16, int64(72)) } else { if (*TFts5ExprPhrase)(unsafe.Pointer((*(*TTokenCtx)(unsafe.Pointer(bp))).FpPhrase)).FnTerm != 0 { - (*(*TFts5ExprTerm)(unsafe.Pointer((*(*TTokenCtx)(unsafe.Pointer(bp))).FpPhrase + 32 + uintptr((*TFts5ExprPhrase)(unsafe.Pointer((*(*TTokenCtx)(unsafe.Pointer(bp))).FpPhrase)).FnTerm-int32(1))*40))).FbPrefix = uint8(bPrefix) + (*(*TFts5ExprTerm)(unsafe.Pointer((*(*TTokenCtx)(unsafe.Pointer(bp))).FpPhrase + 32 + uintptr((*TFts5ExprPhrase)(unsafe.Pointer((*(*TTokenCtx)(unsafe.Pointer(bp))).FpPhrase)).FnTerm-int32(1))*40))).FbPrefix = uint8(uint8(bPrefix)) } } *(*uintptr)(unsafe.Pointer((*TFts5Parse)(unsafe.Pointer(pParse)).FapPhrase + uintptr((*TFts5Parse)(unsafe.Pointer(pParse)).FnPhrase-int32(1))*8)) = (*(*TTokenCtx)(unsafe.Pointer(bp))).FpPhrase @@ -200025,7 +201966,7 @@ func _sqlite3Fts5ExprClonePhrase(tls *libc.TLS, pExpr uintptr, iPhrase int32, pp nByte = int64(uint64(8) + uint64((*TFts5Colset)(unsafe.Pointer(pColsetOrig)).FnCol-libc.Int32FromInt32(1))*uint64(4)) pColset = _sqlite3Fts5MallocZero(tls, bp, nByte) if pColset != 0 { - libc.Xmemcpy(tls, pColset, pColsetOrig, uint64(nByte)) + libc.Xmemcpy(tls, pColset, pColsetOrig, uint64(uint64(nByte))) } (*TFts5ExprNearset)(unsafe.Pointer((*TFts5ExprNode)(unsafe.Pointer((*TFts5Expr)(unsafe.Pointer(pNew)).FpRoot)).FpNear)).FpColset = pColset } @@ -200101,8 +202042,8 @@ func _sqlite3Fts5ExprClonePhrase(tls *libc.TLS, pExpr uintptr, iPhrase int32, pp func _sqlite3Fts5ParseNear(tls *libc.TLS, pParse uintptr, pTok uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+35973, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34754, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) + if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+36119, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34900, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) } } @@ -200121,8 +202062,8 @@ func _sqlite3Fts5ParseSetDistance(tls *libc.TLS, pParse uintptr, pNear uintptr, break } c = *(*int8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i))) - if int32(c) < int32('0') || int32(c) > int32('9') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35978, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) + if int32(int32(c)) < int32('0') || int32(int32(c)) > int32('9') { + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36124, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) return } nNear = nNear*int32(10) + (int32(*(*int8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i)))) - int32('0')) @@ -200159,7 +202100,7 @@ func _fts5ParseColset(tls *libc.TLS, pParse uintptr, p uintptr, iCol int32) (r u v1 = 0 } nCol = v1 /* New colset object to return */ - pNew = Xsqlite3_realloc64(tls, p, uint64(8)+uint64(4)*uint64(nCol)) + pNew = Xsqlite3_realloc64(tls, p, uint64(uint64(8)+uint64(4)*uint64(uint64(nCol)))) if pNew == uintptr(0) { (*TFts5Parse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_NOMEM) } else { @@ -200209,7 +202150,7 @@ func _sqlite3Fts5ParseColsetInvert(tls *libc.TLS, pParse uintptr, p uintptr) (r var pRet, v3 uintptr _, _, _, _, _, _ = i, iOld, nCol, pRet, v2, v3 nCol = (*TFts5Config)(unsafe.Pointer((*TFts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FnCol - pRet = _sqlite3Fts5MallocZero(tls, pParse+16, int64(uint64(8)+uint64(4)*uint64(nCol))) + pRet = _sqlite3Fts5MallocZero(tls, pParse+16, int64(uint64(8)+uint64(4)*uint64(uint64(nCol)))) if pRet != 0 { iOld = 0 i = 0 @@ -200260,7 +202201,7 @@ func _sqlite3Fts5ParseColset(tls *libc.TLS, pParse uintptr, pColset uintptr, p u iCol++ } if iCol == (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21020, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21152, libc.VaList(bp+8, z)) } else { pRet = _fts5ParseColset(tls, pParse, pColset, iCol) } @@ -200290,7 +202231,7 @@ func _fts5CloneColset(tls *libc.TLS, pRc uintptr, pOrig uintptr) (r uintptr) { nByte = int64(uint64(8) + uint64((*TFts5Colset)(unsafe.Pointer(pOrig)).FnCol-libc.Int32FromInt32(1))*uint64(4)) pRet = _sqlite3Fts5MallocZero(tls, pRc, nByte) if pRet != 0 { - libc.Xmemcpy(tls, pRet, pOrig, uint64(nByte)) + libc.Xmemcpy(tls, pRet, pOrig, uint64(uint64(nByte))) } } else { pRet = uintptr(0) @@ -200384,7 +202325,7 @@ func _sqlite3Fts5ParseSetColset(tls *libc.TLS, pParse uintptr, pExpr uintptr, pC var _ /* pFree at bp+0 */ uintptr *(*uintptr)(unsafe.Pointer(bp)) = pColset if (*TFts5Config)(unsafe.Pointer((*TFts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FeDetail == int32(FTS5_DETAIL_NONE) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36007, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36153, 0) } else { _fts5ParseSetColset(tls, pParse, pExpr, pColset, bp) } @@ -200420,7 +202361,7 @@ func _fts5ExprAddChildren(tls *libc.TLS, p uintptr, pSub uintptr) { ii = (*TFts5ExprNode)(unsafe.Pointer(p)).FnChild if (*TFts5ExprNode)(unsafe.Pointer(p)).FeType != int32(FTS5_NOT) && (*TFts5ExprNode)(unsafe.Pointer(pSub)).FeType == (*TFts5ExprNode)(unsafe.Pointer(p)).FeType { nByte = int32(uint64(8) * uint64((*TFts5ExprNode)(unsafe.Pointer(pSub)).FnChild)) - libc.Xmemcpy(tls, p+48+uintptr((*TFts5ExprNode)(unsafe.Pointer(p)).FnChild)*8, pSub+48, uint64(nByte)) + libc.Xmemcpy(tls, p+48+uintptr((*TFts5ExprNode)(unsafe.Pointer(p)).FnChild)*8, pSub+48, uint64(uint64(nByte))) *(*int32)(unsafe.Pointer(p + 40)) += (*TFts5ExprNode)(unsafe.Pointer(pSub)).FnChild Xsqlite3_free(tls, pSub) } else { @@ -200464,8 +202405,8 @@ func _fts5ParsePhraseToAnd(tls *libc.TLS, pParse uintptr, pNear uintptr) (r uint var p, pPhrase, pRet, pTo, v3 uintptr _, _, _, _, _, _, _, _, _ = ii, nByte, nTerm, p, pPhrase, pRet, pTo, v2, v3 nTerm = (*TFts5ExprPhrase)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNear + 24)))).FnTerm - nByte = int32(uint64(56) + uint64(nTerm)*uint64(8)) - pRet = _sqlite3Fts5MallocZero(tls, pParse+16, int64(nByte)) + nByte = int32(uint64(56) + uint64(uint64(nTerm))*uint64(8)) + pRet = _sqlite3Fts5MallocZero(tls, pParse+16, int64(int64(nByte))) if pRet != 0 { (*TFts5ExprNode)(unsafe.Pointer(pRet)).FeType = int32(FTS5_AND) (*TFts5ExprNode)(unsafe.Pointer(pRet)).FnChild = nTerm @@ -200577,11 +202518,11 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin pPhrase = *(*uintptr)(unsafe.Pointer(pNear + 24)) if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase != int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 0 && (*(*TFts5ExprTerm)(unsafe.Pointer(pPhrase + 32))).FbFirst != 0 { if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase == int32(1) { - v2 = __ccgo_ts + 36060 + v2 = __ccgo_ts + 36206 } else { - v2 = __ccgo_ts + 35973 + v2 = __ccgo_ts + 36119 } - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36067, libc.VaList(bp+8, v2)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36213, libc.VaList(bp+8, v2)) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -200590,7 +202531,7 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin _fts5ExprAddChildren(tls, pRet, pLeft) _fts5ExprAddChildren(tls, pRet, pRight) if (*TFts5ExprNode)(unsafe.Pointer(pRet)).FiHeight > int32(SQLITE_FTS5_MAX_EXPR_DEPTH) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36117, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36263, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -200734,7 +202675,7 @@ func _sqlite3Fts5ExprClearPoslists(tls *libc.TLS, pExpr uintptr, bLive int32) (r var i int32 var pBuf, pNode, pRet uintptr _, _, _, _ = i, pBuf, pNode, pRet - pRet = Xsqlite3_malloc64(tls, uint64(16)*uint64((*TFts5Expr)(unsafe.Pointer(pExpr)).FnPhrase)) + pRet = Xsqlite3_malloc64(tls, uint64(uint64(16)*uint64((*TFts5Expr)(unsafe.Pointer(pExpr)).FnPhrase))) if pRet != 0 { libc.Xmemset(tls, pRet, 0, uint64(16)*uint64((*TFts5Expr)(unsafe.Pointer(pExpr)).FnPhrase)) i = 0 @@ -200888,7 +202829,7 @@ func _sqlite3Fts5ExprPopulatePoslists(tls *libc.TLS, pConfig uintptr, pExpr uint _, _, _ = i, pColset, pNode (*(*TFts5ExprCtx)(unsafe.Pointer(bp))).FpExpr = pExpr (*(*TFts5ExprCtx)(unsafe.Pointer(bp))).FaPopulator = aPopulator - (*(*TFts5ExprCtx)(unsafe.Pointer(bp))).FiOff = int64(iCol)<= nTerm && 0 == libc.Xmemcmp(tls, pIter+1*48, pTerm, uint64(nTerm)) { + if pTerm == uintptr(0) || (*TFts5HashEntry)(unsafe.Pointer(pIter)).FnKey >= nTerm && 0 == libc.Xmemcmp(tls, pIter+1*48, pTerm, uint64(uint64(nTerm))) { pEntry = pIter (*TFts5HashEntry)(unsafe.Pointer(pEntry)).FpScanNext = uintptr(0) i = 0 @@ -201717,7 +203658,7 @@ func _sqlite3Fts5HashQuery(tls *libc.TLS, pHash uintptr, nPre int32, pTerm uintp break } zKey = p + 1*48 - if nTerm == (*TFts5HashEntry)(unsafe.Pointer(p)).FnKey && libc.Xmemcmp(tls, zKey, pTerm, uint64(nTerm)) == 0 { + if nTerm == (*TFts5HashEntry)(unsafe.Pointer(p)).FnKey && libc.Xmemcmp(tls, zKey, pTerm, uint64(uint64(nTerm))) == 0 { break } goto _1 @@ -201726,14 +203667,14 @@ func _sqlite3Fts5HashQuery(tls *libc.TLS, pHash uintptr, nPre int32, pTerm uintp p = (*TFts5HashEntry)(unsafe.Pointer(p)).FpHashNext } if p != 0 { - nHashPre = int32(uint64(48) + uint64(nTerm)) + nHashPre = int32(uint64(48) + uint64(uint64(nTerm))) nList = (*TFts5HashEntry)(unsafe.Pointer(p)).FnData - nHashPre v2 = Xsqlite3_malloc64(tls, uint64(nPre+nList+int32(10))) *(*uintptr)(unsafe.Pointer(ppOut)) = v2 pRet = v2 if pRet != 0 { pFaux = pRet + uintptr(nPre-nHashPre) - libc.Xmemcpy(tls, pRet+uintptr(nPre), p+uintptr(nHashPre), uint64(nList)) + libc.Xmemcpy(tls, pRet+uintptr(nPre), p+uintptr(nHashPre), uint64(uint64(nList))) nList += _fts5HashAddPoslistSize(tls, pHash, p, pFaux) *(*int32)(unsafe.Pointer(pnDoclist)) = nList } else { @@ -201781,7 +203722,7 @@ func _sqlite3Fts5HashScanEntry(tls *libc.TLS, pHash uintptr, pzTerm uintptr, pnT *(*uintptr)(unsafe.Pointer(pzTerm)) = zKey *(*int32)(unsafe.Pointer(pnTerm)) = nTerm *(*uintptr)(unsafe.Pointer(ppDoclist)) = zKey + uintptr(nTerm) - *(*int32)(unsafe.Pointer(pnDoclist)) = int32(uint64((*TFts5HashEntry)(unsafe.Pointer(p)).FnData) - (uint64(48) + uint64(nTerm))) + *(*int32)(unsafe.Pointer(pnDoclist)) = int32(uint64((*TFts5HashEntry)(unsafe.Pointer(p)).FnData) - (uint64(48) + uint64(uint64(nTerm)))) } else { *(*uintptr)(unsafe.Pointer(pzTerm)) = uintptr(0) *(*int32)(unsafe.Pointer(pnTerm)) = 0 @@ -202565,8 +204506,8 @@ type TFts5DlidxIter1 = struct { type Fts5DlidxIter1 = TFts5DlidxIter1 func _fts5PutU16(tls *libc.TLS, aOut uintptr, iVal Tu16) { - *(*Tu8)(unsafe.Pointer(aOut)) = uint8(int32(iVal) >> libc.Int32FromInt32(8)) - *(*Tu8)(unsafe.Pointer(aOut + 1)) = uint8(int32(iVal) & libc.Int32FromInt32(0xFF)) + *(*Tu8)(unsafe.Pointer(aOut)) = uint8(int32(int32(iVal)) >> libc.Int32FromInt32(8)) + *(*Tu8)(unsafe.Pointer(aOut + 1)) = uint8(int32(int32(iVal)) & libc.Int32FromInt32(0xFF)) } func _fts5GetU16(tls *libc.TLS, aIn uintptr) (r Tu16) { @@ -202738,7 +204679,7 @@ func _fts5DataRead(tls *libc.TLS, p uintptr, iRowid Ti64) (r uintptr) { ** to the requested entry. */ if (*TFts5Index)(unsafe.Pointer(p)).FpReader == uintptr(0) && rc == SQLITE_OK { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36170, iRowid, 0, p+72) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36316, iRowid, 0, p+72) } /* If either of the sqlite3_blob_open() or sqlite3_blob_reopen() calls ** above returned SQLITE_ERROR, return SQLITE_CORRUPT_VTAB instead. @@ -202751,8 +204692,8 @@ func _fts5DataRead(tls *libc.TLS, p uintptr, iRowid Ti64) (r uintptr) { if rc == SQLITE_OK { aOut = uintptr(0) /* Read blob data into this buffer */ nByte = Xsqlite3_blob_bytes(tls, (*TFts5Index)(unsafe.Pointer(p)).FpReader) - nAlloc = int64(uint64(16) + uint64(nByte) + uint64(FTS5_DATA_PADDING)) - pRet = Xsqlite3_malloc64(tls, uint64(nAlloc)) + nAlloc = int64(uint64(16) + uint64(uint64(nByte)) + uint64(FTS5_DATA_PADDING)) + pRet = Xsqlite3_malloc64(tls, uint64(uint64(nAlloc))) if pRet != 0 { (*TFts5Data)(unsafe.Pointer(pRet)).Fnn = nByte v1 = pRet + 1*16 @@ -202831,7 +204772,7 @@ func _fts5DataWrite(tls *libc.TLS, p uintptr, iRowid Ti64, pData uintptr, nData } if (*TFts5Index)(unsafe.Pointer(p)).FpWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36176, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36322, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return } @@ -202860,7 +204801,7 @@ func _fts5DataDelete(tls *libc.TLS, p uintptr, iFirst Ti64, iLast Ti64) { } if (*TFts5Index)(unsafe.Pointer(p)).FpDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36227, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36373, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if _fts5IndexPrepareStmt(tls, p, p+88, zSql) != 0 { return } @@ -202894,7 +204835,7 @@ func _fts5DataRemoveSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { } if (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36276, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36422, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter, int32(1), iSegid) @@ -202975,7 +204916,7 @@ func _fts5StructureMakeWritable(tls *libc.TLS, pRc uintptr, pp uintptr) { nByte = int64(uint64(48) + uint64((*TFts5Structure)(unsafe.Pointer(p)).FnLevel-libc.Int32FromInt32(1))*uint64(16)) pNew = _sqlite3Fts5MallocZero(tls, pRc, nByte) if pNew != 0 { - libc.Xmemcpy(tls, pNew, p, uint64(nByte)) + libc.Xmemcpy(tls, pNew, p, uint64(uint64(nByte))) i = 0 for { if !(i < (*TFts5Structure)(unsafe.Pointer(p)).FnLevel) { @@ -203010,7 +204951,7 @@ func _fts5StructureMakeWritable(tls *libc.TLS, pRc uintptr, pp uintptr) { Xsqlite3_free(tls, pNew) return } - libc.Xmemcpy(tls, (*TFts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg, (*(*TFts5StructureLevel)(unsafe.Pointer(p + 32 + uintptr(i)*16))).FaSeg, uint64(nByte)) + libc.Xmemcpy(tls, (*TFts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg, (*(*TFts5StructureLevel)(unsafe.Pointer(p + 32 + uintptr(i)*16))).FaSeg, uint64(uint64(nByte))) goto _2 _2: ; @@ -203063,7 +205004,7 @@ func _fts5StructureDecode(tls *libc.TLS, pData uintptr, nData int32, piCookie ui } i = int32(4) /* Check if this is a V2 structure record. Set bStructureV2 if it is. */ - if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36316, uint64(4)) { + if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36462, uint64(4)) { i += int32(4) bStructureV2 = int32(1) } @@ -203179,7 +205120,7 @@ func _fts5StructureAddLevel(tls *libc.TLS, pRc uintptr, ppStruct uintptr) { pStruct = *(*uintptr)(unsafe.Pointer(ppStruct)) nLevel = (*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel nByte = int64(libc.Uint64FromInt64(48) + libc.Uint64FromInt64(16)*uint64(nLevel+libc.Int32FromInt32(1))) - pStruct = Xsqlite3_realloc64(tls, pStruct, uint64(nByte)) + pStruct = Xsqlite3_realloc64(tls, pStruct, uint64(uint64(nByte))) if pStruct != 0 { libc.Xmemset(tls, pStruct+32+uintptr(nLevel)*16, 0, uint64(16)) (*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel++ @@ -203204,14 +205145,14 @@ func _fts5StructureExtendLevel(tls *libc.TLS, pRc uintptr, pStruct uintptr, iLvl if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK { pLvl = pStruct + 32 + uintptr(iLvl)*16 nByte = int64(uint64((*TFts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg+nExtra) * uint64(56)) - aNew = Xsqlite3_realloc64(tls, (*TFts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg, uint64(nByte)) + aNew = Xsqlite3_realloc64(tls, (*TFts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg, uint64(uint64(nByte))) if aNew != 0 { if bInsert == 0 { - libc.Xmemset(tls, aNew+uintptr((*TFts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg)*56, 0, uint64(56)*uint64(nExtra)) + libc.Xmemset(tls, aNew+uintptr((*TFts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg)*56, 0, uint64(56)*uint64(uint64(nExtra))) } else { nMove = int32(uint64((*TFts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg) * uint64(56)) - libc.Xmemmove(tls, aNew+uintptr(nExtra)*56, aNew, uint64(nMove)) - libc.Xmemset(tls, aNew, 0, uint64(56)*uint64(nExtra)) + libc.Xmemmove(tls, aNew+uintptr(nExtra)*56, aNew, uint64(uint64(nMove))) + libc.Xmemset(tls, aNew, 0, uint64(56)*uint64(uint64(nExtra))) } (*TFts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg = aNew } else { @@ -203254,7 +205195,7 @@ func _fts5IndexDataVersion(tls *libc.TLS, p uintptr) (r Ti64) { iVersion = 0 if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*TFts5Index)(unsafe.Pointer(p)).FpDataVersion == uintptr(0) { - (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36321, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) + (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36467, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return 0 } @@ -203334,11 +205275,11 @@ func _fts5StructureWrite(tls *libc.TLS, p uintptr, pStruct uintptr) { if iCookie < 0 { iCookie = 0 } - if 0 == _sqlite3Fts5BufferSize(tls, p+60, bp, uint32(nHdr)) { + if 0 == _sqlite3Fts5BufferSize(tls, p+60, bp, uint32(uint32(nHdr))) { _sqlite3Fts5Put32(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, iCookie) (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = int32(4) if (*TFts5Structure)(unsafe.Pointer(pStruct)).FnOriginCntr > uint64(0) { - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36316, uint64(4)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36462, uint64(4)) *(*int32)(unsafe.Pointer(bp + 8)) += int32(4) } *(*int32)(unsafe.Pointer(bp + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), uint64((*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel)) @@ -203755,8 +205696,8 @@ func _fts5DlidxIterInit(tls *libc.TLS, p uintptr, bRev int32, iSegid int32, iLea if !((*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && bDone == 0) { break } - nByte = int64(uint64(40) + uint64(i)*uint64(32)) - pNew = Xsqlite3_realloc64(tls, pIter, uint64(nByte)) + nByte = int64(uint64(40) + uint64(uint64(i))*uint64(32)) + pNew = Xsqlite3_realloc64(tls, pIter, uint64(uint64(nByte))) if pNew == uintptr(0) { (*TFts5Index)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } else { @@ -203908,7 +205849,7 @@ func _fts5SegIterLoadNPos(tls *libc.TLS, p uintptr, pIter uintptr) { (*TFts5SegIter)(unsafe.Pointer(pIter)).FbDel = uint8(*(*int32)(unsafe.Pointer(bp)) & libc.Int32FromInt32(0x0001)) (*TFts5SegIter)(unsafe.Pointer(pIter)).FnPos = *(*int32)(unsafe.Pointer(bp)) >> int32(1) } - (*TFts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = int64(iOff) + (*TFts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = int64(int64(iOff)) } } @@ -203968,7 +205909,7 @@ func _fts5SegIterLoadTerm(tls *libc.TLS, p uintptr, pIter uintptr, nKeep int32) (*TFts5SegIter)(unsafe.Pointer(pIter)).Fterm.Fn = nKeep _sqlite3Fts5BufferAppendBlob(tls, p+60, pIter+96, uint32(*(*int32)(unsafe.Pointer(bp))), a+uintptr(iOff)) iOff += int64(*(*int32)(unsafe.Pointer(bp))) - (*TFts5SegIter)(unsafe.Pointer(pIter)).FiTermLeafOffset = int32(iOff) + (*TFts5SegIter)(unsafe.Pointer(pIter)).FiTermLeafOffset = int32(int32(iOff)) (*TFts5SegIter)(unsafe.Pointer(pIter)).FiTermLeafPgno = (*TFts5SegIter)(unsafe.Pointer(pIter)).FiLeafPgno (*TFts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = iOff if (*TFts5SegIter)(unsafe.Pointer(pIter)).FiPgidxOff >= (*TFts5Data)(unsafe.Pointer((*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf)).Fnn { @@ -204005,8 +205946,8 @@ func _fts5SegIterAllocTombstone(tls *libc.TLS, p uintptr, pIter uintptr) { _, _, _ = nByte, nTomb, pNew nTomb = (*TFts5StructureSegment)(unsafe.Pointer((*TFts5SegIter)(unsafe.Pointer(pIter)).FpSeg)).FnPgTombstone if nTomb > 0 { - nByte = int32(uint64(nTomb)*uint64(8) + uint64(16)) - pNew = _sqlite3Fts5MallocZero(tls, p+60, int64(nByte)) + nByte = int32(uint64(uint64(nTomb))*uint64(8) + uint64(16)) + pNew = _sqlite3Fts5MallocZero(tls, p+60, int64(int64(nByte))) if pNew != 0 { (*TFts5TombstoneArray)(unsafe.Pointer(pNew)).FnTombstone = nTomb (*TFts5TombstoneArray)(unsafe.Pointer(pNew)).FnRef = int32(1) @@ -204109,7 +206050,7 @@ func _fts5SegIterReverseInitPage(tls *libc.TLS, p uintptr, pIter uintptr) { /* If necessary, grow the pIter->aRowidOffset[] array. */ if iRowidOffset >= (*TFts5SegIter)(unsafe.Pointer(pIter)).FnRowidOffset { nNew = (*TFts5SegIter)(unsafe.Pointer(pIter)).FnRowidOffset + int32(8) - aNew = Xsqlite3_realloc64(tls, (*TFts5SegIter)(unsafe.Pointer(pIter)).FaRowidOffset, uint64(nNew)*uint64(4)) + aNew = Xsqlite3_realloc64(tls, (*TFts5SegIter)(unsafe.Pointer(pIter)).FaRowidOffset, uint64(uint64(uint64(nNew))*uint64(4))) if aNew == uintptr(0) { (*TFts5Index)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) break @@ -204120,7 +206061,7 @@ func _fts5SegIterReverseInitPage(tls *libc.TLS, p uintptr, pIter uintptr) { v2 = iRowidOffset iRowidOffset++ *(*int32)(unsafe.Pointer((*TFts5SegIter)(unsafe.Pointer(pIter)).FaRowidOffset + uintptr(v2)*4)) = int32((*TFts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset) - (*TFts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = int64(i) + (*TFts5SegIter)(unsafe.Pointer(pIter)).FiLeafOffset = int64(int64(i)) } (*TFts5SegIter)(unsafe.Pointer(pIter)).FiRowidOffset = iRowidOffset _fts5SegIterLoadNPos(tls, p, pIter) @@ -204156,7 +206097,7 @@ func _fts5SegIterReverseNewPage(tls *libc.TLS, p uintptr, pIter uintptr) { (*TFts5Index)(unsafe.Pointer(p)).Frc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<= (*TFts5Data)(unsafe.Pointer(pLast)).Fnn { (*TFts5SegIter)(unsafe.Pointer(pIter)).FiEndofDoclist = (*TFts5Data)(unsafe.Pointer(pLast)).Fnn + int32(1) } else { @@ -204598,10 +206540,10 @@ func _fts5LeafSeek(tls *libc.TLS, p uintptr, bGe int32, pIter uintptr, pTerm uin goto search_failed } if *(*Tu32)(unsafe.Pointer(bp + 4)) == nMatch { - if *(*Tu32)(unsafe.Pointer(bp + 8)) < uint32(nTerm)-nMatch { + if *(*Tu32)(unsafe.Pointer(bp + 8)) < uint32(uint32(nTerm))-nMatch { v2 = *(*Tu32)(unsafe.Pointer(bp + 8)) } else { - v2 = uint32(nTerm) - nMatch + v2 = uint32(uint32(nTerm)) - nMatch } nCmp = v2 i = uint32(0) @@ -204618,7 +206560,7 @@ func _fts5LeafSeek(tls *libc.TLS, p uintptr, bGe int32, pIter uintptr, pTerm uin i++ } nMatch += i - if uint32(nTerm) == nMatch { + if uint32(uint32(nTerm)) == nMatch { if i == *(*Tu32)(unsafe.Pointer(bp + 8)) { goto search_success } else { @@ -204650,6 +206592,7 @@ func _fts5LeafSeek(tls *libc.TLS, p uintptr, bGe int32, pIter uintptr, pTerm uin *(*Tu32)(unsafe.Pointer(bp)) += uint32(_sqlite3Fts5GetVarint32(tls, a+uintptr(*(*Tu32)(unsafe.Pointer(bp))), bp+4)) } } + goto search_failed search_failed: ; if bGe == 0 { @@ -204681,9 +206624,10 @@ search_failed: } } } + goto search_success search_success: ; - if int64(*(*Tu32)(unsafe.Pointer(bp)))+int64(*(*Tu32)(unsafe.Pointer(bp + 8))) > int64(n) || *(*Tu32)(unsafe.Pointer(bp + 8)) < uint32(1) { + if int64(*(*Tu32)(unsafe.Pointer(bp)))+int64(*(*Tu32)(unsafe.Pointer(bp + 8))) > int64(int64(n)) || *(*Tu32)(unsafe.Pointer(bp + 8)) < uint32(1) { (*TFts5Index)(unsafe.Pointer(p)).Frc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<= nSeg */ nSlot = int64(2) for { - if !(nSlot < int64(nSeg)) { + if !(nSlot < int64(int64(nSeg))) { break } goto _1 @@ -205446,9 +207390,9 @@ func _fts5MultiIterAlloc(tls *libc.TLS, p uintptr, nSeg int32) (r uintptr) { ; nSlot = nSlot * int64(2) } - pNew = _fts5IdxMalloc(tls, p, int64(uint64(232)+uint64(128)*uint64(nSlot-libc.Int64FromInt32(1))+uint64(4)*uint64(nSlot))) + pNew = _fts5IdxMalloc(tls, p, int64(uint64(232)+uint64(128)*uint64(nSlot-libc.Int64FromInt32(1))+uint64(4)*uint64(uint64(nSlot)))) if pNew != 0 { - (*TFts5Iter)(unsafe.Pointer(pNew)).FnSeg = int32(nSlot) + (*TFts5Iter)(unsafe.Pointer(pNew)).FnSeg = int32(int32(nSlot)) (*TFts5Iter)(unsafe.Pointer(pNew)).FaFirst = pNew + 104 + uintptr(nSlot)*128 (*TFts5Iter)(unsafe.Pointer(pNew)).FpIndex = p (*TFts5Iter)(unsafe.Pointer(pNew)).FxSetOutputs = __ccgo_fp(_fts5IterSetOutputs_Noop) @@ -205459,7 +207403,7 @@ func _fts5MultiIterAlloc(tls *libc.TLS, p uintptr, nSeg int32) (r uintptr) { func _fts5PoslistCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr, pChunk uintptr, nChunk int32) { _ = pUnused if nChunk > 0 { - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(pContext)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pContext)).Fn), pChunk, uint64(nChunk)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(pContext)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pContext)).Fn), pChunk, uint64(uint64(nChunk))) *(*int32)(unsafe.Pointer(pContext + 8)) += nChunk } } @@ -205730,7 +207674,7 @@ func _fts5IndexExtractColset(tls *libc.TLS, pRc uintptr, pColset uintptr, pPos u pEnd = p + uintptr(nPos) /* One byte past end of position list */ i = 0 *(*int32)(unsafe.Pointer(bp)) = 0 - if (*TFts5Colset)(unsafe.Pointer(pColset)).FnCol > int32(1) && _sqlite3Fts5BufferSize(tls, pRc, pIter+40, uint32(nPos)) != 0 { + if (*TFts5Colset)(unsafe.Pointer(pColset)).FnCol > int32(1) && _sqlite3Fts5BufferSize(tls, pRc, pIter+40, uint32(uint32(nPos))) != 0 { return } for int32(1) != 0 { @@ -205756,12 +207700,12 @@ func _fts5IndexExtractColset(tls *libc.TLS, pRc uintptr, pColset uintptr, pPos u if *(*int32)(unsafe.Pointer(pColset + 4 + uintptr(i)*4)) == *(*int32)(unsafe.Pointer(bp)) { if (*TFts5Colset)(unsafe.Pointer(pColset)).FnCol == int32(1) { (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = aCopy - (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FnData = int32(int64(p) - int64(aCopy)) + (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FnData = int32(int64(int64(p)) - int64(int64(aCopy))) return } - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(pIter+40)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pIter+40)).Fn), aCopy, uint64(int64(p)-int64(aCopy))) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(pIter+40)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pIter+40)).Fn), aCopy, uint64(int64(int64(p))-int64(int64(aCopy)))) p2 = pIter + 40 + 8 - *(*int32)(unsafe.Pointer(p2)) = int32(int64(*(*int32)(unsafe.Pointer(p2))) + (int64(p) - int64(aCopy))) + *(*int32)(unsafe.Pointer(p2)) = int32(int64(*(*int32)(unsafe.Pointer(p2))) + (int64(int64(p)) - int64(int64(aCopy)))) } if p >= pEnd { (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*TFts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp @@ -205885,10 +207829,11 @@ func _fts5IterSetOutputs_Col100(tls *libc.TLS, pIter uintptr, pSeg uintptr) { iPrevOut = iPrev } } + goto setoutputs_col_out setoutputs_col_out: ; (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*TFts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp - (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FnData = int32(int64(aOut) - int64((*TFts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp)) + (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FnData = int32(int64(int64(aOut)) - int64((*TFts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp)) } } @@ -206102,6 +208047,7 @@ func _fts5MultiIterNew(tls *libc.TLS, p uintptr, pStruct uintptr, flags int32, p _fts5MultiIterFree(tls, pNew) *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) } + goto fts5MultiIterNew_post_check fts5MultiIterNew_post_check: ; return @@ -206354,7 +208300,7 @@ func _fts5WriteDlidxGrow(tls *libc.TLS, p uintptr, pWriter uintptr, nLvl int32) var nByte Tsize_t _, _ = aDlidx, nByte if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && nLvl >= (*TFts5SegWriter)(unsafe.Pointer(pWriter)).FnDlidx { - aDlidx = Xsqlite3_realloc64(tls, (*TFts5SegWriter)(unsafe.Pointer(pWriter)).FaDlidx, uint64(32)*uint64(nLvl)) + aDlidx = Xsqlite3_realloc64(tls, (*TFts5SegWriter)(unsafe.Pointer(pWriter)).FaDlidx, uint64(uint64(32)*uint64(uint64(nLvl)))) if aDlidx == uintptr(0) { (*TFts5Index)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } else { @@ -206413,13 +208359,13 @@ func _fts5WriteFlushBtree(tls *libc.TLS, p uintptr, pWriter uintptr) { if (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn > 0 { v1 = (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fp } else { - v1 = __ccgo_ts + 1652 + v1 = __ccgo_ts + 1666 } z = v1 /* The following was already done in fts5WriteInit(): */ /* sqlite3_bind_int(p->pIdxWriter, 1, pWriter->iSegid); */ Xsqlite3_bind_blob(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter, int32(2), z, (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn, libc.UintptrFromInt32(0)) - Xsqlite3_bind_int64(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter, int32(3), int64(bFlag)+int64((*TFts5SegWriter)(unsafe.Pointer(pWriter)).FiBtPage)< 0 { - _sqlite3Fts5BufferAppendBlob(tls, p+60, pPage+8, uint32(n), a) + _sqlite3Fts5BufferAppendBlob(tls, p+60, pPage+8, uint32(uint32(n)), a) } } @@ -206764,11 +208710,11 @@ func _fts5WriteInit(tls *libc.TLS, p uintptr, pWriter uintptr, iSegid int32) { (*TFts5SegWriter)(unsafe.Pointer(pWriter)).FbFirstTermInPage = uint8(1) (*TFts5SegWriter)(unsafe.Pointer(pWriter)).FiBtPage = int32(1) /* Grow the two buffers to pgsz + padding bytes in size. */ - _sqlite3Fts5BufferSize(tls, p+60, pWriter+8+24, uint32(nBuffer)) - _sqlite3Fts5BufferSize(tls, p+60, pWriter+8+8, uint32(nBuffer)) + _sqlite3Fts5BufferSize(tls, p+60, pWriter+8+24, uint32(uint32(nBuffer))) + _sqlite3Fts5BufferSize(tls, p+60, pWriter+8+8, uint32(uint32(nBuffer))) if (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36510, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36656, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { /* Initialize the 4-byte leaf-page header to 0x00. */ @@ -206843,7 +208789,7 @@ func _fts5TrimSegments(tls *libc.TLS, p uintptr, pIter uintptr) { _sqlite3Fts5BufferAppendVarint(tls, p+60, bp, libc.Int64FromInt32(4)) if (*TFts5SegIter)(unsafe.Pointer(pSeg)).FiLeafPgno == (*TFts5SegIter)(unsafe.Pointer(pSeg)).FiTermLeafPgno && (*TFts5SegIter)(unsafe.Pointer(pSeg)).FiEndofDoclist < (*TFts5Data)(unsafe.Pointer(pData)).FszLeaf && (*TFts5SegIter)(unsafe.Pointer(pSeg)).FiPgidxOff <= (*TFts5Data)(unsafe.Pointer(pData)).Fnn { nDiff = (*TFts5Data)(unsafe.Pointer(pData)).FszLeaf - (*TFts5SegIter)(unsafe.Pointer(pSeg)).FiEndofDoclist - _sqlite3Fts5BufferAppendVarint(tls, p+60, bp, int64((*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn)-int64(1)-int64(nDiff)-int64(4)) + _sqlite3Fts5BufferAppendVarint(tls, p+60, bp, int64((*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn)-int64(1)-int64(int64(nDiff))-int64(4)) _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32((*TFts5Data)(unsafe.Pointer(pData)).Fnn-(*TFts5SegIter)(unsafe.Pointer(pSeg)).FiPgidxOff), (*TFts5Data)(unsafe.Pointer(pData)).Fp+uintptr((*TFts5SegIter)(unsafe.Pointer(pSeg)).FiPgidxOff)) } (*TFts5StructureSegment)(unsafe.Pointer((*TFts5SegIter)(unsafe.Pointer(pSeg)).FpSeg)).FpgnoFirst = (*TFts5SegIter)(unsafe.Pointer(pSeg)).FiTermLeafPgno @@ -206979,7 +208925,7 @@ func _fts5IndexMergeLevel(tls *libc.TLS, p uintptr, ppStruct uintptr, iLvl int32 } else { /* Append the position-list data to the output */ nPos = (*TFts5SegIter)(unsafe.Pointer(pSegIter)).FnPos*int32(2) + int32((*TFts5SegIter)(unsafe.Pointer(pSegIter)).FbDel) - _sqlite3Fts5BufferAppendVarint(tls, p+60, bp+8+8+8, int64(nPos)) + _sqlite3Fts5BufferAppendVarint(tls, p+60, bp+8+8+8, int64(int64(nPos))) _fts5ChunkIterate(tls, p, pSegIter, bp+8, __ccgo_fp(_fts5MergeChunkCallback)) } goto _2 @@ -207008,7 +208954,7 @@ func _fts5IndexMergeLevel(tls *libc.TLS, p uintptr, ppStruct uintptr, iLvl int32 /* Remove the redundant segments from the input level */ if (*TFts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg != nInput { nMove = int32(uint64((*TFts5StructureLevel)(unsafe.Pointer(pLvl)).FnSeg-nInput) * uint64(56)) - libc.Xmemmove(tls, (*TFts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg, (*TFts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg+uintptr(nInput)*56, uint64(nMove)) + libc.Xmemmove(tls, (*TFts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg, (*TFts5StructureLevel)(unsafe.Pointer(pLvl)).FaSeg+uintptr(nInput)*56, uint64(uint64(nMove))) } *(*int32)(unsafe.Pointer(pStruct + 24)) -= nInput *(*int32)(unsafe.Pointer(pLvl + 4)) -= nInput @@ -207166,8 +209112,8 @@ func _fts5IndexAutomerge(tls *libc.TLS, p uintptr, ppStruct uintptr, nLeaf int32 pStruct = *(*uintptr)(unsafe.Pointer(ppStruct)) /* Number of leaf pages left to write */ /* Update the write-counter. While doing so, set nWork. */ nWrite = (*TFts5Structure)(unsafe.Pointer(pStruct)).FnWriteCounter - nWork = int32((nWrite+uint64(nLeaf))/uint64((*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit) - nWrite/uint64((*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit)) - *(*Tu64)(unsafe.Pointer(pStruct + 8)) += uint64(nLeaf) + nWork = int32((nWrite+uint64(uint64(nLeaf)))/uint64((*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit) - nWrite/uint64((*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit)) + *(*Tu64)(unsafe.Pointer(pStruct + 8)) += uint64(uint64(nLeaf)) nRem = (*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit * nWork * (*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel _fts5IndexMerge(tls, p, ppStruct, nRem, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FnAutomerge) } @@ -207258,7 +209204,7 @@ func _fts5SecureDeleteIdxEntry(tls *libc.TLS, p uintptr, iSegid int32, iPgno int defer tls.Free(32) if iPgno != int32(1) { if (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx == uintptr(0) { - _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36567, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36713, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx, int32(1), iSegid) @@ -207364,12 +209310,12 @@ func _fts5SecureDeleteOverflow(tls *libc.TLS, p uintptr, pSeg uintptr, iPgno int ** in bytes. The new page is always smaller than the old. */ nPg = (*TFts5Data)(unsafe.Pointer(pLeaf)).FszLeaf - nShift libc.Xmemmove(tls, aPg+4, aPg+uintptr(int32(4)+nShift), uint64(nPg-int32(4))) - _fts5PutU16(tls, aPg+2, uint16(nPg)) + _fts5PutU16(tls, aPg+2, uint16(uint16(nPg))) if _fts5GetU16(tls, aPg) != 0 { _fts5PutU16(tls, aPg, uint16(4)) } if nIdx > 0 { - libc.Xmemcpy(tls, aPg+uintptr(nPg), aIdx, uint64(nIdx)) + libc.Xmemcpy(tls, aPg+uintptr(nPg), aIdx, uint64(uint64(nIdx))) nPg += nIdx } Xsqlite3_free(tls, aIdx) @@ -207431,7 +209377,7 @@ func _fts5DoSecureDelete(tls *libc.TLS, p uintptr, pSeg uintptr) { if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return } - libc.Xmemcpy(tls, aIdx, aPg+uintptr(iPgIdx), uint64(nIdx)) + libc.Xmemcpy(tls, aIdx, aPg+uintptr(iPgIdx), uint64(uint64(nIdx))) /* At this point segment iterator pSeg points to the entry ** this function should remove from the b-tree segment. ** @@ -207470,7 +209416,7 @@ func _fts5DoSecureDelete(tls *libc.TLS, p uintptr, pSeg uintptr) { } iSOP = iStart + int32(_sqlite3Fts5GetVarint(tls, aPg+uintptr(iStart), bp)) if bDetailNone != 0 { - for int64(iSOP) < (*TFts5SegIter)(unsafe.Pointer(pSeg)).FiLeafOffset { + for int64(int64(iSOP)) < (*TFts5SegIter)(unsafe.Pointer(pSeg)).FiLeafOffset { if int32(*(*Tu8)(unsafe.Pointer(aPg + uintptr(iSOP)))) == 0x00 { iSOP++ } @@ -207490,7 +209436,7 @@ func _fts5DoSecureDelete(tls *libc.TLS, p uintptr, pSeg uintptr) { } else { *(*int32)(unsafe.Pointer(bp + 12)) = 0 iSOP += _sqlite3Fts5GetVarint32(tls, aPg+uintptr(iSOP), bp+12) - for int64(iSOP) < (*TFts5SegIter)(unsafe.Pointer(pSeg)).FiLeafOffset { + for int64(int64(iSOP)) < (*TFts5SegIter)(unsafe.Pointer(pSeg)).FiLeafOffset { iStart = iSOP + *(*int32)(unsafe.Pointer(bp + 12))/int32(2) iSOP = iStart + int32(_sqlite3Fts5GetVarint(tls, aPg+uintptr(iStart), bp)) iSOP += _sqlite3Fts5GetVarint32(tls, aPg+uintptr(iSOP), bp+12) @@ -207565,7 +209511,7 @@ func _fts5DoSecureDelete(tls *libc.TLS, p uintptr, pSeg uintptr) { } *(*Tu32)(unsafe.Pointer(bp + 32)) = uint32(0) iIdx += _sqlite3Fts5GetVarint32(tls, aIdx+uintptr(iIdx), bp+32) - if uint32(iKeyOff1)+*(*Tu32)(unsafe.Pointer(bp + 32)) > uint32(iStart) { + if uint32(uint32(iKeyOff1))+*(*Tu32)(unsafe.Pointer(bp + 32)) > uint32(uint32(iStart)) { break } iKeyOff1 = int32(uint32(iKeyOff1) + *(*Tu32)(unsafe.Pointer(bp + 32))) @@ -207660,8 +209606,8 @@ func _fts5DoSecureDelete(tls *libc.TLS, p uintptr, pSeg uintptr) { iTermIdx += nByte } nTermIdx = iTermIdx - libc.Xmemmove(tls, (*TFts5Data)(unsafe.Pointer(pTerm)).Fp+uintptr(iTermOff), (*TFts5Data)(unsafe.Pointer(pTerm)).Fp+uintptr((*TFts5Data)(unsafe.Pointer(pTerm)).FszLeaf), uint64(nTermIdx)) - _fts5PutU16(tls, (*TFts5Data)(unsafe.Pointer(pTerm)).Fp+2, uint16(iTermOff)) + libc.Xmemmove(tls, (*TFts5Data)(unsafe.Pointer(pTerm)).Fp+uintptr(iTermOff), (*TFts5Data)(unsafe.Pointer(pTerm)).Fp+uintptr((*TFts5Data)(unsafe.Pointer(pTerm)).FszLeaf), uint64(uint64(nTermIdx))) + _fts5PutU16(tls, (*TFts5Data)(unsafe.Pointer(pTerm)).Fp+2, uint16(uint16(iTermOff))) _fts5DataWrite(tls, p, iId, (*TFts5Data)(unsafe.Pointer(pTerm)).Fp, iTermOff+nTermIdx) if nTermIdx == 0 { _fts5SecureDeleteIdxEntry(tls, p, iSegid, (*TFts5SegIter)(unsafe.Pointer(pSeg)).FiTermLeafPgno) @@ -207687,10 +209633,10 @@ func _fts5DoSecureDelete(tls *libc.TLS, p uintptr, pSeg uintptr) { nShift = iNextOff - iOff /* Distance to move them */ iPrevKeyOut = 0 iKeyIn = 0 - libc.Xmemmove(tls, aPg+uintptr(iOff), aPg+uintptr(iNextOff), uint64(nMove)) + libc.Xmemmove(tls, aPg+uintptr(iOff), aPg+uintptr(iNextOff), uint64(uint64(nMove))) iPgIdx -= nShift nPg = iPgIdx - _fts5PutU16(tls, aPg+2, uint16(iPgIdx)) + _fts5PutU16(tls, aPg+2, uint16(uint16(iPgIdx))) iIdx = 0 for { if !(iIdx < nIdx) { @@ -207856,11 +209802,11 @@ func _fts5FlushOneHash(tls *libc.TLS, p uintptr) { } if (*(*TFts5SegWriter)(unsafe.Pointer(bp + 16))).FbFirstRowidInPage != 0 { _fts5PutU16(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp, uint16((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn)) /* first rowid on page */ - *(*int32)(unsafe.Pointer(pBuf + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn), uint64(iRowid)) + *(*int32)(unsafe.Pointer(pBuf + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn), uint64(uint64(iRowid))) (*(*TFts5SegWriter)(unsafe.Pointer(bp + 16))).FbFirstRowidInPage = uint8(0) _fts5WriteDlidxAppend(tls, p, bp+16, iRowid) } else { - iRowidDelta = uint64(iRowid) - uint64(iPrev) + iRowidDelta = uint64(uint64(iRowid)) - uint64(uint64(iPrev)) *(*int32)(unsafe.Pointer(pBuf + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn), iRowidDelta) } if (*TFts5Index)(unsafe.Pointer(p)).Frc != SQLITE_OK { @@ -207899,7 +209845,7 @@ func _fts5FlushOneHash(tls *libc.TLS, p uintptr) { if (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn+(*TFts5Buffer)(unsafe.Pointer(pPgidx)).Fn+nCopy <= pgsz { /* The entire poslist will fit on the current leaf. So copy ** it in one go. */ - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn), *(*uintptr)(unsafe.Pointer(bp + 152))+uintptr(iOff), uint64(nCopy)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn), *(*uintptr)(unsafe.Pointer(bp + 152))+uintptr(iOff), uint64(uint64(nCopy))) *(*int32)(unsafe.Pointer(pBuf + 8)) += nCopy } else { /* The entire poslist will not fit on this leaf. So it needs @@ -207915,7 +209861,7 @@ func _fts5FlushOneHash(tls *libc.TLS, p uintptr) { } else { n = _fts5PoslistPrefix(tls, pPoslist+uintptr(iPos), nSpace) } - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn), pPoslist+uintptr(iPos), uint64(n)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn), pPoslist+uintptr(iPos), uint64(uint64(n))) *(*int32)(unsafe.Pointer(pBuf + 8)) += n iPos += n if (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn+(*TFts5Buffer)(unsafe.Pointer(pPgidx)).Fn >= pgsz { @@ -208037,10 +209983,10 @@ func _fts5IndexOptimizeStruct(tls *libc.TLS, p uintptr, pStruct uintptr) (r uint ; i++ } - nByte = Tsqlite3_int64(uint64(nByte) + uint64((*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel+libc.Int32FromInt32(1))*libc.Uint64FromInt64(16)) + nByte = Tsqlite3_int64(uint64(nByte) + uint64(uint64((*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel+libc.Int32FromInt32(1))*libc.Uint64FromInt64(16))) pNew = _sqlite3Fts5MallocZero(tls, p+60, nByte) if pNew != 0 { - nByte = int64(uint64(nSeg) * uint64(56)) + nByte = int64(uint64(uint64(nSeg)) * uint64(56)) if (*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel+int32(1) < int32(FTS5_MAX_LEVEL) { v2 = (*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel + int32(1) } else { @@ -208165,7 +210111,7 @@ func _sqlite3Fts5IndexMerge(tls *libc.TLS, p uintptr, nMerge int32) (r int32) { func _fts5AppendRowid(tls *libc.TLS, p uintptr, iDelta Tu64, pUnused uintptr, pBuf uintptr) { _ = pUnused - _sqlite3Fts5BufferAppendVarint(tls, p+60, pBuf, int64(iDelta)) + _sqlite3Fts5BufferAppendVarint(tls, p+60, pBuf, int64(int64(iDelta))) } func _fts5AppendPoslist(tls *libc.TLS, p uintptr, iDelta Tu64, pMulti uintptr, pBuf uintptr) { @@ -208184,7 +210130,7 @@ func _fts5AppendPoslist(tls *libc.TLS, p uintptr, iDelta Tu64, pMulti uintptr, p if v2 && 0 == v1 { *(*int32)(unsafe.Pointer(pBuf + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn), iDelta) *(*int32)(unsafe.Pointer(pBuf + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn), uint64(nData*libc.Int32FromInt32(2))) - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn), (*TFts5Iter)(unsafe.Pointer(pMulti)).Fbase.FpData, uint64(nData)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn), (*TFts5Iter)(unsafe.Pointer(pMulti)).Fbase.FpData, uint64(uint64(nData))) *(*int32)(unsafe.Pointer(pBuf + 8)) += nData libc.Xmemset(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn), 0, uint64(FTS5_DATA_ZERO_PADDING)) } @@ -208410,7 +210356,7 @@ func _fts5MergePrefixLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBu ** (the value PoslistNext64() uses for EOF) as a position and appending ** it to the output. This can happen at most once for each input ** position-list, hence (nBuf+1) 10 byte paddings. */ - if _sqlite3Fts5BufferSize(tls, p+60, bp+1032, uint32(nOut)) != 0 { + if _sqlite3Fts5BufferSize(tls, p+60, bp+1032, uint32(uint32(nOut))) != 0 { return } for *(*uintptr)(unsafe.Pointer(bp + 1024)) != 0 { @@ -208476,7 +210422,7 @@ func _fts5MergePrefixLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBu libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp+1032)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp+1032)).Fn), (*(*TFts5Buffer)(unsafe.Pointer(bp + 1048))).Fp, uint64((*(*TFts5Buffer)(unsafe.Pointer(bp + 1048))).Fn)) *(*int32)(unsafe.Pointer(bp + 1032 + 8)) += (*(*TFts5Buffer)(unsafe.Pointer(bp + 1048))).Fn if nTail > 0 { - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp+1032)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp+1032)).Fn), (*TPrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 1024)))).FaPos+uintptr((*TPrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 1024)))).FiOff), uint64(nTail)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp+1032)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp+1032)).Fn), (*TPrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 1024)))).FaPos+uintptr((*TPrefixMerger)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 1024)))).FiOff), uint64(uint64(nTail))) *(*int32)(unsafe.Pointer(bp + 1032 + 8)) += nTail } *(*uintptr)(unsafe.Pointer(bp + 1024)) = pSave @@ -208534,7 +210480,7 @@ func _fts5SetupPrefixIter(tls *libc.TLS, p uintptr, bDesc int32, iIdx int32, pTo xMerge = __ccgo_fp(_fts5MergePrefixLists) xAppend = __ccgo_fp(_fts5AppendPoslist) } - aBuf = _fts5IdxMalloc(tls, p, int64(uint64(16)*uint64(nBuf))) + aBuf = _fts5IdxMalloc(tls, p, int64(uint64(16)*uint64(uint64(nBuf)))) pStruct = _fts5StructureRead(tls, p) if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { flags = libc.Int32FromInt32(FTS5INDEX_QUERY_SCAN) | libc.Int32FromInt32(FTS5INDEX_QUERY_SKIPEMPTY) | libc.Int32FromInt32(FTS5INDEX_QUERY_NOOUTPUT) @@ -208560,7 +210506,7 @@ func _fts5SetupPrefixIter(tls *libc.TLS, p uintptr, bDesc int32, iIdx int32, pTo pSeg = *(*uintptr)(unsafe.Pointer(bp)) + 104 + uintptr((*(*TFts5CResult)(unsafe.Pointer((*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaFirst + 1*4))).FiFirst)*128 (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxSetOutputs})))(tls, *(*uintptr)(unsafe.Pointer(bp)), pSeg) if (*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fbase.FnData != 0 { - (*(*func(*libc.TLS, uintptr, Tu64, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xAppend})))(tls, p, uint64((*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fbase.FiRowid)-uint64(iLastRowid), *(*uintptr)(unsafe.Pointer(bp)), bp+8) + (*(*func(*libc.TLS, uintptr, Tu64, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xAppend})))(tls, p, uint64((*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fbase.FiRowid)-uint64(uint64(iLastRowid)), *(*uintptr)(unsafe.Pointer(bp)), bp+8) iLastRowid = (*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fbase.FiRowid } goto _1 @@ -208582,7 +210528,7 @@ func _fts5SetupPrefixIter(tls *libc.TLS, p uintptr, bDesc int32, iIdx int32, pTo pTerm = (*TFts5SegIter)(unsafe.Pointer(pSeg1)).Fterm.Fp (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxSetOutputs})))(tls, *(*uintptr)(unsafe.Pointer(bp)), pSeg1) if *(*int32)(unsafe.Pointer(bp + 24)) != 0 { - if nTerm < nToken || libc.Xmemcmp(tls, pToken, pTerm, uint64(nToken)) != 0 { + if nTerm < nToken || libc.Xmemcmp(tls, pToken, pTerm, uint64(uint64(nToken))) != 0 { break } } @@ -208632,7 +210578,7 @@ func _fts5SetupPrefixIter(tls *libc.TLS, p uintptr, bDesc int32, iIdx int32, pTo } iLastRowid = 0 } - (*(*func(*libc.TLS, uintptr, Tu64, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xAppend})))(tls, p, uint64((*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fbase.FiRowid)-uint64(iLastRowid), *(*uintptr)(unsafe.Pointer(bp)), bp+8) + (*(*func(*libc.TLS, uintptr, Tu64, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xAppend})))(tls, p, uint64((*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fbase.FiRowid)-uint64(uint64(iLastRowid)), *(*uintptr)(unsafe.Pointer(bp)), bp+8) iLastRowid = (*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fbase.FiRowid goto _2 _2: @@ -208748,7 +210694,7 @@ func _sqlite3Fts5IndexReinit(tls *libc.TLS, p uintptr) (r int32) { if (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FbContentlessDelete != 0 { (*(*TFts5Structure)(unsafe.Pointer(bp))).FnOriginCntr = uint64(1) } - _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1652, 0) + _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1666, 0) _fts5StructureWrite(tls, p, bp) return _fts5IndexReturn(tls, p) } @@ -208775,11 +210721,11 @@ func _sqlite3Fts5IndexOpen(tls *libc.TLS, pConfig uintptr, bCreate int32, pp uin if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Index)(unsafe.Pointer(p)).FpConfig = pConfig (*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit = int32(FTS5_WORK_UNIT) - (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36628, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36774, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl != 0 && bCreate != 0 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25745, __ccgo_ts+36636, 0, pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25891, __ccgo_ts+36782, 0, pzErr) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11797, __ccgo_ts+36671, int32(1), pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11922, __ccgo_ts+36817, int32(1), pzErr) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5IndexReinit(tls, p) @@ -208933,7 +210879,7 @@ func _sqlite3Fts5IndexWrite(tls *libc.TLS, p uintptr, iCol int32, iPos int32, pT // ** token pToken/nToken. // */ func _fts5IsTokendataPrefix(tls *libc.TLS, pBuf uintptr, pToken uintptr, nToken int32) (r int32) { - return libc.BoolInt32((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn >= nToken && 0 == libc.Xmemcmp(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp, pToken, uint64(nToken)) && ((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn == nToken || int32(*(*Tu8)(unsafe.Pointer((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp + uintptr(nToken)))) == 0x00)) + return libc.BoolInt32((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn >= nToken && 0 == libc.Xmemcmp(tls, (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp, pToken, uint64(uint64(nToken))) && ((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn == nToken || int32(*(*Tu8)(unsafe.Pointer((*TFts5Buffer)(unsafe.Pointer(pBuf)).Fp + uintptr(nToken)))) == 0x00)) } // C documentation @@ -208999,13 +210945,13 @@ func _fts5AppendTokendataIter(tls *libc.TLS, p uintptr, pIn uintptr, pAppend uin v1 = int32(16) } nAlloc = v1 - nByte = int32(uint64(nAlloc)*uint64(8) + uint64(48)) + nByte = int32(uint64(uint64(nAlloc))*uint64(8) + uint64(48)) pNew = Xsqlite3_realloc(tls, pIn, nByte) if pNew == uintptr(0) { (*TFts5Index)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } else { if pIn == uintptr(0) { - libc.Xmemset(tls, pNew, 0, uint64(nByte)) + libc.Xmemset(tls, pNew, 0, uint64(uint64(nByte))) } pRet = pNew (*TFts5TokenDataIter)(unsafe.Pointer(pNew)).FnIterAlloc = nAlloc @@ -209066,7 +211012,7 @@ func _fts5TokendataIterAppendMap(tls *libc.TLS, p uintptr, pT uintptr, iIter int v1 = int32(64) } nNew = v1 - nByte = int32(uint64(nNew) * uint64(24)) + nByte = int32(uint64(uint64(nNew)) * uint64(24)) aNew = Xsqlite3_realloc(tls, (*TFts5TokenDataIter)(unsafe.Pointer(pT)).FaMap, nByte) if aNew == uintptr(0) { (*TFts5Index)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) @@ -209180,7 +211126,7 @@ func _fts5IterSetOutputsTokendata(tls *libc.TLS, pIter uintptr) { /* Ensure the token-mapping is large enough */ if eDetail == FTS5_DETAIL_FULL && (*TFts5TokenDataIter)(unsafe.Pointer(pT)).FnMapAlloc < (*TFts5TokenDataIter)(unsafe.Pointer(pT)).FnMap+nByte { nNew = ((*TFts5TokenDataIter)(unsafe.Pointer(pT)).FnMapAlloc + nByte) * int32(2) - aNew = Xsqlite3_realloc(tls, (*TFts5TokenDataIter)(unsafe.Pointer(pT)).FaMap, int32(uint64(nNew)*uint64(24))) + aNew = Xsqlite3_realloc(tls, (*TFts5TokenDataIter)(unsafe.Pointer(pT)).FaMap, int32(uint64(uint64(nNew))*uint64(24))) if aNew == uintptr(0) { (*TFts5Index)(unsafe.Pointer((*TFts5Iter)(unsafe.Pointer(pIter)).FpIndex)).Frc = int32(SQLITE_NOMEM) return @@ -209313,7 +211259,7 @@ func _fts5SetupTokendataIter(tls *libc.TLS, p uintptr, pToken uintptr, nToken in pNew = _fts5MultiIterAlloc(tls, p, (*TFts5Structure)(unsafe.Pointer(pStruct)).FnSegment) if pSmall != 0 { _sqlite3Fts5BufferSet(tls, p+60, bp, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fn, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+36715) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+36861) } else { _sqlite3Fts5BufferSet(tls, p+60, bp, nToken, pToken) } @@ -209482,7 +211428,7 @@ func _sqlite3Fts5IndexQuery(tls *libc.TLS, p uintptr, pToken uintptr, nToken int iPrefixIdx = 0 /* +1 prefix index */ bTokendata = (*TFts5Config)(unsafe.Pointer(pConfig)).FbTokendata if nToken > 0 { - libc.Xmemcpy(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp + 8))).Fp+1, pToken, uint64(nToken)) + libc.Xmemcpy(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp + 8))).Fp+1, pToken, uint64(uint64(nToken))) } if flags&(libc.Int32FromInt32(FTS5INDEX_QUERY_NOTOKENDATA)|libc.Int32FromInt32(FTS5INDEX_QUERY_SCAN)) != 0 { bTokendata = 0 @@ -209654,7 +211600,7 @@ func _sqlite3Fts5IterToken(tls *libc.TLS, pIndexIter uintptr, iRowid Ti64, iCol pIter = pIndexIter pT = (*TFts5Iter)(unsafe.Pointer(pIter)).FpTokenDataIter aMap = (*TFts5TokenDataIter)(unsafe.Pointer(pT)).FaMap - iPos = int64(iCol)< uint64(0xFFFFFFFF) { return int32(2) @@ -209927,7 +211873,7 @@ func _fts5IndexTombstoneAddToPage(tls *libc.TLS, pPg uintptr, bForce int32, nPg return 0 } } - _fts5PutU32(tls, aSlot+uintptr(iSlot)*4, uint32(iRowid)) + _fts5PutU32(tls, aSlot+uintptr(iSlot)*4, uint32(uint32(iRowid))) } else { aSlot1 = (*TFts5Data)(unsafe.Pointer(pPg)).Fp + 8 for *(*Tu64)(unsafe.Pointer(aSlot1 + uintptr(iSlot)*8)) != 0 { @@ -209969,7 +211915,7 @@ func _fts5IndexTombstoneRehash(tls *libc.TLS, p uintptr, pSeg uintptr, pData1 ui if !(ii < nOut) { break } - *(*Tu8)(unsafe.Pointer((*TFts5Data)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(apOut + uintptr(ii)*8)))).Fp)) = uint8(szKey) + *(*Tu8)(unsafe.Pointer((*TFts5Data)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(apOut + uintptr(ii)*8)))).Fp)) = uint8(uint8(szKey)) _fts5PutU32(tls, (*TFts5Data)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(apOut + uintptr(ii)*8)))).Fp+4, uint32(0)) goto _1 _1: @@ -210019,7 +211965,7 @@ func _fts5IndexTombstoneRehash(tls *libc.TLS, p uintptr, pSeg uintptr, pData1 ui } /* If iVal is not 0 at this point, insert it into the new hash table */ if iVal != 0 { - pPg = *(*uintptr)(unsafe.Pointer(apOut + uintptr(iVal%uint64(nOut))*8)) + pPg = *(*uintptr)(unsafe.Pointer(apOut + uintptr(iVal%uint64(uint64(nOut)))*8)) res = _fts5IndexTombstoneAddToPage(tls, pPg, 0, nOut, iVal) if res != 0 { break @@ -210123,14 +212069,14 @@ func _fts5IndexTombstoneRebuild(tls *libc.TLS, p uintptr, pSeg uintptr, pData1 u szPage = 0 apOut = uintptr(0) /* Allocate space for the new hash table */ - apOut = _sqlite3Fts5MallocZero(tls, p+60, int64(uint64(8)*uint64(nOut))) + apOut = _sqlite3Fts5MallocZero(tls, p+60, int64(uint64(8)*uint64(uint64(nOut)))) szPage = int32(8) + nSlot*szKey ii = 0 for { if !(ii < nOut) { break } - pNew = _sqlite3Fts5MallocZero(tls, p+60, int64(uint64(16)+uint64(szPage))) + pNew = _sqlite3Fts5MallocZero(tls, p+60, int64(uint64(16)+uint64(uint64(szPage)))) if pNew != 0 { (*TFts5Data)(unsafe.Pointer(pNew)).Fnn = szPage (*TFts5Data)(unsafe.Pointer(pNew)).Fp = pNew + 1*16 @@ -210261,12 +212207,12 @@ func _sqlite3Fts5IndexContentlessDelete(tls *libc.TLS, p uintptr, iOrigin Ti64, break } pSeg = (*(*TFts5StructureLevel)(unsafe.Pointer(pStruct + 32 + uintptr(iLvl)*16))).FaSeg + uintptr(iSeg)*56 - if (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiOrigin1 <= uint64(iOrigin) && (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiOrigin2 >= uint64(iOrigin) { + if (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiOrigin1 <= uint64(uint64(iOrigin)) && (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiOrigin2 >= uint64(uint64(iOrigin)) { if bFound == 0 { (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FnEntryTombstone++ bFound = int32(1) } - _fts5IndexTombstoneAdd(tls, p, pSeg, uint64(iRowid)) + _fts5IndexTombstoneAdd(tls, p, pSeg, uint64(uint64(iRowid))) } goto _2 _2: @@ -210298,9 +212244,9 @@ func _sqlite3Fts5IndexEntryCksum(tls *libc.TLS, iRowid Ti64, iCol int32, iPos in var i int32 var ret Tu64 _, _ = i, ret - ret = uint64(iRowid) - ret += ret<= 0 { ret += ret<> libc.Int32FromInt32(32)) iTokOff = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) & libc.Int64FromInt32(0x7FFFFFFF)) @@ -211246,7 +213192,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) bSeenMatch = 0 bSeenRank = 0 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36808, 0) + (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36954, 0) return int32(SQLITE_ERROR) } idxStr = Xsqlite3_malloc(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint*int32(8)+int32(1)) @@ -211285,7 +213231,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v3 = iIdxStr iIdxStr++ *(*int8)(unsafe.Pointer(idxStr + uintptr(v3))) = int8('M') - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5142, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5206, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) } } @@ -211305,7 +213251,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v6 = int32('G') } *(*int8)(unsafe.Pointer(idxStr + uintptr(v5))) = int8(v6) - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5142, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5206, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) iCons++ v7 = iCons @@ -211467,10 +213413,10 @@ func _fts5OpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) { rc = _fts5NewTransaction(tls, pTab) if rc == SQLITE_OK { nByte = int64(uint64(184) + uint64((*TFts5Config)(unsafe.Pointer(pConfig)).FnCol)*uint64(4)) - pCsr = Xsqlite3_malloc64(tls, uint64(nByte)) + pCsr = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) if pCsr != 0 { pGlobal = (*TFts5FullTable)(unsafe.Pointer(pTab)).FpGlobal - libc.Xmemset(tls, pCsr, 0, uint64(nByte)) + libc.Xmemset(tls, pCsr, 0, uint64(uint64(nByte))) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FaColumnSize = pCsr + 1*184 (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpCsr (*TFts5Global)(unsafe.Pointer(pGlobal)).FpCsr = pCsr @@ -211621,7 +213567,7 @@ func _fts5SorterNext(tls *libc.TLS, pCsr uintptr) (r int32) { ; i++ } - *(*int32)(unsafe.Pointer(pSorter + 28 + uintptr(i)*4)) = int32(t__predefined_ptrdiff_t(aBlob+uintptr(nBlob)) - int64(a)) + *(*int32)(unsafe.Pointer(pSorter + 28 + uintptr(i)*4)) = int32(t__predefined_ptrdiff_t(aBlob+uintptr(nBlob)) - int64(int64(a))) (*TFts5Sorter)(unsafe.Pointer(pSorter)).FaPoslist = a } _fts5CsrNewrow(tls, pCsr) @@ -211743,7 +213689,7 @@ func _fts5NextMethod(tls *libc.TLS, pCursor uintptr) (r int32) { *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_EOF) rc = Xsqlite3_reset(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpStmt) if rc != SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } } else { rc = SQLITE_OK @@ -211770,7 +213716,7 @@ func _fts5PrepareStatement(tls *libc.TLS, ppStmt uintptr, pConfig uintptr, zFmt } else { rc = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } Xsqlite3_free(tls, zSql) } @@ -211791,11 +213737,11 @@ func _fts5CursorFirstSorted(tls *libc.TLS, pTab uintptr, pCsr uintptr, bDesc int zRankArgs = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs nPhrase = _sqlite3Fts5ExprPhraseCount(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpExpr) nByte = int64(uint64(32) + uint64(4)*uint64(nPhrase-libc.Int32FromInt32(1))) - pSorter = Xsqlite3_malloc64(tls, uint64(nByte)) + pSorter = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) if pSorter == uintptr(0) { return int32(SQLITE_NOMEM) } - libc.Xmemset(tls, pSorter, 0, uint64(nByte)) + libc.Xmemset(tls, pSorter, 0, uint64(uint64(nByte))) (*TFts5Sorter)(unsafe.Pointer(pSorter)).FnIdx = nPhrase /* TODO: It would be better to have some system for reusing statement ** handles here, rather than preparing a new one for each query. But that @@ -211805,21 +213751,21 @@ func _fts5CursorFirstSorted(tls *libc.TLS, pTab uintptr, pCsr uintptr, bDesc int ** ** If SQLite a built-in statement cache, this wouldn't be a problem. */ if zRankArgs != 0 { - v1 = __ccgo_ts + 14994 + v1 = __ccgo_ts + 15087 } else { - v1 = __ccgo_ts + 1652 + v1 = __ccgo_ts + 1666 } if zRankArgs != 0 { v2 = zRankArgs } else { - v2 = __ccgo_ts + 1652 + v2 = __ccgo_ts + 1666 } if bDesc != 0 { - v3 = __ccgo_ts + 36847 + v3 = __ccgo_ts + 36993 } else { - v3 = __ccgo_ts + 36852 + v3 = __ccgo_ts + 36998 } - rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+36856, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) + rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+37002, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpSorter = pSorter if rc == SQLITE_OK { (*TFts5FullTable)(unsafe.Pointer(pTab)).FpSortCsr = pCsr @@ -211877,14 +213823,14 @@ func _fts5SpecialMatch(tls *libc.TLS, pTab uintptr, pCsr uintptr, zQuery uintptr n++ } (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan = int32(FTS5_PLAN_SPECIAL) - if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+36911, z, n) { + if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+37057, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = int64(_sqlite3Fts5IndexReads(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)) } else { - if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5485, z, n) { + if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5549, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId } else { /* An unrecognized directive. Return an error message. */ - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36917, libc.VaList(bp+8, n, z)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37063, libc.VaList(bp+8, n, z)) rc = int32(SQLITE_ERROR) } } @@ -211934,7 +213880,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { zRank = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank zRankArgs = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs if zRankArgs != 0 { - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36945, libc.VaList(bp+24, zRankArgs)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37091, libc.VaList(bp+24, zRankArgs)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp+8, uintptr(0)) @@ -211967,7 +213913,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { pAux = _fts5FindAuxiliary(tls, pTab, zRank) if pAux == uintptr(0) { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36955, libc.VaList(bp+24, zRank)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37101, libc.VaList(bp+24, zRank)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -212001,7 +213947,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_FREE_ZRANK) } else { if rc == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36976, libc.VaList(bp+24, z)) + (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37122, libc.VaList(bp+24, z)) } } } else { @@ -212009,7 +213955,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRank (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRankArgs } else { - (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 34908 + (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 35054 (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = uintptr(0) } } @@ -212060,7 +214006,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint iIdxStr = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36808, 0) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36954, 0) return int32(SQLITE_ERROR) } if (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan != 0 { @@ -212082,7 +214028,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint case int32('M'): zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8))) if zText == uintptr(0) { - zText = __ccgo_ts + 1652 + zText = __ccgo_ts + 1666 } iCol = 0 for cond := true; cond; cond = int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) <= int32('9') { @@ -212204,7 +214150,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent == uintptr(0) { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37009, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37155, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) rc = int32(SQLITE_ERROR) } else { /* This is either a full-table scan (ePlan==FTS5_PLAN_SCAN) or a lookup @@ -212228,6 +214174,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } } + goto filter_out filter_out: ; _sqlite3Fts5ExprFree(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -212341,7 +214288,7 @@ func _fts5SeekCursor(tls *libc.TLS, pCsr uintptr, bErrormsg int32) (r int32) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< int32(1) { - v1 = __ccgo_ts + 20873 + v1 = __ccgo_ts + 21005 } else { - v1 = __ccgo_ts + 37287 + v1 = __ccgo_ts + 37433 } - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37299, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37445, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if nArg == int32(1) { @@ -212598,7 +214545,7 @@ func _fts5UpdateMethod(tls *libc.TLS, pVtab uintptr, nArg int32, apVal uintptr, } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && bUpdateOrDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FbSecureDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion == int32(FTS5_CURRENT_VERSION) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35836, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35982, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = int32(FTS5_CURRENT_VERSION_SECUREDELETE) } @@ -212820,7 +214767,7 @@ func _fts5CacheInstArray(tls *libc.TLS, pCsr uintptr) (r int32) { nCol = (*TFts5Config)(unsafe.Pointer((*TFts5Table)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FpConfig)).FnCol nIter = _sqlite3Fts5ExprPhraseCount(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpExpr) if (*TFts5Cursor)(unsafe.Pointer(pCsr)).FaInstIter == uintptr(0) { - nByte = int64(uint64(32) * uint64(nIter)) + nByte = int64(uint64(32) * uint64(uint64(nIter))) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FaInstIter = _sqlite3Fts5MallocZero(tls, bp, nByte) } aIter = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FaInstIter @@ -212868,7 +214815,7 @@ func _fts5CacheInstArray(tls *libc.TLS, pCsr uintptr) (r int32) { v3 = int32(32) } nNewSize = v3 - aInst = Xsqlite3_realloc64(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FaInst, uint64(nNewSize)*uint64(4)*uint64(3)) + aInst = Xsqlite3_realloc64(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FaInst, uint64(uint64(uint64(nNewSize))*uint64(4)*uint64(3))) if aInst != 0 { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FaInst = aInst (*TFts5Cursor)(unsafe.Pointer(pCsr)).FnInstAlloc = nNewSize @@ -213394,7 +215341,7 @@ func _fts5ApiCallback(tls *libc.TLS, context uintptr, argc int32, argv uintptr) iCsrId = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) pCsr = _fts5CursorFromCsrid(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal, iCsrId) if pCsr == uintptr(0) || (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan == 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37336, libc.VaList(bp+8, iCsrId)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37482, libc.VaList(bp+8, iCsrId)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } else { @@ -213470,7 +215417,7 @@ _7: goto _5 } nByte = _sqlite3Fts5ExprPoslist(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpExpr, i, bp+24) - _sqlite3Fts5BufferAppendVarint(tls, bp, bp+8, int64(nByte)) + _sqlite3Fts5BufferAppendVarint(tls, bp, bp+8, int64(int64(nByte))) goto _6 _6: ; @@ -213486,7 +215433,7 @@ _5: break } nPoslist = _sqlite3Fts5ExprPoslist(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpExpr, i, bp+32) - _sqlite3Fts5BufferAppendBlob(tls, bp, bp+8, uint32(nPoslist), *(*uintptr)(unsafe.Pointer(bp + 32))) + _sqlite3Fts5BufferAppendBlob(tls, bp, bp+8, uint32(uint32(nPoslist)), *(*uintptr)(unsafe.Pointer(bp + 32))) goto _8 _8: ; @@ -213585,7 +215532,7 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg = uintptr(0) } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 && Xsqlite3_vtab_nochange(tls, pCtx) != 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37357, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37503, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -213713,12 +215660,12 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt rc = Xsqlite3_overload_function(tls, (*TFts5Global)(unsafe.Pointer(pGlobal)).Fdb, zName, -int32(1)) if rc == SQLITE_OK { /* Bytes of space to allocate */ nName = int64(libc.Xstrlen(tls, zName) + uint64(1)) - nByte = int64(uint64(48) + uint64(nName)) - pAux = Xsqlite3_malloc64(tls, uint64(nByte)) + nByte = int64(uint64(48) + uint64(uint64(nName))) + pAux = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) if pAux != 0 { - libc.Xmemset(tls, pAux, 0, uint64(nByte)) + libc.Xmemset(tls, pAux, 0, uint64(uint64(nByte))) (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc = pAux + 1*48 - libc.Xmemcpy(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc, zName, uint64(nName)) + libc.Xmemcpy(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc, zName, uint64(uint64(nName))) (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal = pGlobal (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpUserData = pUserData (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = xFunc @@ -213746,12 +215693,12 @@ func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData pGlobal = pApi /* Bytes of space to allocate */ rc = SQLITE_OK nName = int64(libc.Xstrlen(tls, zName) + uint64(1)) - nByte = int64(uint64(56) + uint64(nName)) - pNew = Xsqlite3_malloc64(tls, uint64(nByte)) + nByte = int64(uint64(56) + uint64(uint64(nName))) + pNew = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) if pNew != 0 { - libc.Xmemset(tls, pNew, 0, uint64(nByte)) + libc.Xmemset(tls, pNew, 0, uint64(uint64(nByte))) (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName = pNew + 1*56 - libc.Xmemcpy(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName, zName, uint64(nName)) + libc.Xmemcpy(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName, zName, uint64(uint64(nName))) (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpUserData = pUserData (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).Fx = *(*Tfts5_tokenizer)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = xDestroy @@ -213827,7 +215774,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr pMod = _fts5LocateTokenizer(tls, pGlobal, v1) if pMod == uintptr(0) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37428, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37574, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) } else { if azArg != 0 { v2 = azArg + 1*8 @@ -213843,7 +215790,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr (*TFts5Config)(unsafe.Pointer(pConfig)).FpTokApi = pMod + 16 if rc != SQLITE_OK { if pzErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37450, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37596, 0) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FePattern = _sqlite3Fts5TokenizerPattern(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pMod)).Fx.FxCreate, (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok) @@ -213898,7 +215845,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { _, _ = pGlobal, ppApi pGlobal = Xsqlite3_user_data(tls, pCtx) _ = nArg - ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37481) + ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37627) if ppApi != 0 { *(*uintptr)(unsafe.Pointer(ppApi)) = pGlobal } @@ -213912,7 +215859,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { func _fts5SourceIdFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apUnused uintptr) { _ = nArg _ = apUnused - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37494, -int32(1), uintptr(-libc.Int32FromInt32(1))) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37640, -int32(1), uintptr(-libc.Int32FromInt32(1))) } // C documentation @@ -213926,7 +215873,7 @@ func _fts5ShadowName(tls *libc.TLS, zName uintptr) (r int32) { _ = i i = uint32(0) for { - if !(uint64(i) < libc.Uint64FromInt64(40)/libc.Uint64FromInt64(8)) { + if !(uint64(uint64(i)) < libc.Uint64FromInt64(40)/libc.Uint64FromInt64(8)) { break } if Xsqlite3_stricmp(tls, zName, _azName2[i]) == 0 { @@ -213941,11 +215888,11 @@ func _fts5ShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName2 = [5]uintptr{ - 0: __ccgo_ts + 37585, - 1: __ccgo_ts + 35097, - 2: __ccgo_ts + 25745, - 3: __ccgo_ts + 35664, - 4: __ccgo_ts + 11797, + 0: __ccgo_ts + 37731, + 1: __ccgo_ts + 35243, + 2: __ccgo_ts + 25891, + 3: __ccgo_ts + 35810, + 4: __ccgo_ts + 11922, } // C documentation @@ -213959,20 +215906,26 @@ func _fts5IntegrityMethod(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zTabnam bp := tls.Alloc(32) defer tls.Free(32) var pTab uintptr - var rc int32 - _, _ = pTab, rc + var rc, v1 int32 + _, _, _ = pTab, rc, v1 pTab = pVtab _ = isQuick rc = _sqlite3Fts5StorageIntegrity(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, 0) if rc&int32(0xff) == int32(SQLITE_CORRUPT) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37592, libc.VaList(bp+8, zSchema, zTabname)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37738, libc.VaList(bp+8, zSchema, zTabname)) + if *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { + v1 = SQLITE_OK + } else { + v1 = int32(SQLITE_NOMEM) + } + rc = v1 } else { if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37638, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37784, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) } } _sqlite3Fts5IndexCloseReader(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex) - return SQLITE_OK + return rc } func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { @@ -213991,7 +215944,7 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateFunction = __ccgo_fp(_fts5CreateAux) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateTokenizer = __ccgo_fp(_fts5CreateTokenizer) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxFindTokenizer = __ccgo_fp(_fts5FindTokenizer) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37701, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37847, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) if rc == SQLITE_OK { rc = _sqlite3Fts5IndexInit(tls, db) } @@ -214008,10 +215961,10 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { rc = _sqlite3Fts5VocabInit(tls, pGlobal, db) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37701, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37847, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37706, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37852, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) } } /* If SQLITE_FTS5_ENABLE_TEST_MI is defined, assume that the file @@ -214114,17 +216067,17 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, ** statements to operate on it. */ if *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(eStmt)*8)) == uintptr(0) { azStmt = [11]uintptr{ - 0: __ccgo_ts + 37721, - 1: __ccgo_ts + 37789, - 2: __ccgo_ts + 37858, - 3: __ccgo_ts + 37891, - 4: __ccgo_ts + 37930, - 5: __ccgo_ts + 37970, - 6: __ccgo_ts + 38009, - 7: __ccgo_ts + 38052, - 8: __ccgo_ts + 38091, - 9: __ccgo_ts + 38135, - 10: __ccgo_ts + 38175, + 0: __ccgo_ts + 37867, + 1: __ccgo_ts + 37935, + 2: __ccgo_ts + 38004, + 3: __ccgo_ts + 38037, + 4: __ccgo_ts + 38076, + 5: __ccgo_ts + 38116, + 6: __ccgo_ts + 38155, + 7: __ccgo_ts + 38198, + 8: __ccgo_ts + 38237, + 9: __ccgo_ts + 38281, + 10: __ccgo_ts + 38321, } pC = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig zSql = uintptr(0) @@ -214161,16 +216114,16 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, } case int32(FTS5_STMT_REPLACE_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v2 = __ccgo_ts + 38198 + v2 = __ccgo_ts + 38344 } else { - v2 = __ccgo_ts + 1652 + v2 = __ccgo_ts + 1666 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName, v2)) case int32(FTS5_STMT_LOOKUP_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v3 = __ccgo_ts + 38201 + v3 = __ccgo_ts + 38347 } else { - v3 = __ccgo_ts + 1652 + v3 = __ccgo_ts + 1666 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, v3, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName)) default: @@ -214185,11 +216138,11 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, f |= int32(SQLITE_PREPARE_NO_VTAB) } (*TFts5Config)(unsafe.Pointer((*TFts5Storage)(unsafe.Pointer(p)).FpConfig)).FbLock++ - rc = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb, zSql, -int32(1), uint32(f), p+40+uintptr(eStmt)*8, uintptr(0)) + rc = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb, zSql, -int32(1), uint32(uint32(f)), p+40+uintptr(eStmt)*8, uintptr(0)) (*TFts5Config)(unsafe.Pointer((*TFts5Storage)(unsafe.Pointer(p)).FpConfig)).FbLock-- Xsqlite3_free(tls, zSql) if rc != SQLITE_OK && pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3799, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3863, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) } } } @@ -214226,12 +216179,12 @@ func _sqlite3Fts5DropAll(tls *libc.TLS, pConfig uintptr) (r int32) { defer tls.Free(64) var rc int32 _ = rc - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38209, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38355, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38313, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38459, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38351, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38497, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } return rc } @@ -214240,7 +216193,7 @@ func _fts5StorageRenameOne(tls *libc.TLS, pConfig uintptr, pRc uintptr, zTail ui bp := tls.Alloc(48) defer tls.Free(48) if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38389, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) + *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38535, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) } } @@ -214252,14 +216205,14 @@ func _sqlite3Fts5StorageRename(tls *libc.TLS, pStorage uintptr, zName uintptr) ( _ = pConfig pConfig = (*TFts5Storage)(unsafe.Pointer(pStorage)).FpConfig *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageSync(tls, pStorage) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25745, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11797, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37585, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25891, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11922, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37731, zName) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35664, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35810, zName) } if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35097, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35243, zName) } return *(*int32)(unsafe.Pointer(bp)) } @@ -214279,13 +216232,13 @@ func _sqlite3Fts5CreateTable(tls *libc.TLS, pConfig uintptr, zPost uintptr, zDef _, _ = rc, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if bWithout != 0 { - v1 = __ccgo_ts + 30385 + v1 = __ccgo_ts + 30531 } else { - v1 = __ccgo_ts + 1652 + v1 = __ccgo_ts + 1666 } - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38431, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38577, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38461, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38607, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -214307,15 +216260,15 @@ func _sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCr var nByte Tsqlite3_int64 var p, zCols, zDefn, v1 uintptr _, _, _, _, _, _, _, _, _ = i, iOff, nByte, nDefn, p, rc, zCols, zDefn, v1 - rc = SQLITE_OK /* Bytes of space to allocate */ + rc = SQLITE_OK /* Bytes of space to allocate */ nByte = int64(uint64(128) + uint64((*TFts5Config)(unsafe.Pointer(pConfig)).FnCol)*uint64(8)) /* Fts5Storage.aTotalSize[] */ - v1 = Xsqlite3_malloc64(tls, uint64(nByte)) + v1 = Xsqlite3_malloc64(tls, uint64(uint64(nByte))) p = v1 *(*uintptr)(unsafe.Pointer(pp)) = v1 if !(p != 0) { return int32(SQLITE_NOMEM) } - libc.Xmemset(tls, p, 0, uint64(nByte)) + libc.Xmemset(tls, p, 0, uint64(uint64(nByte))) (*TFts5Storage)(unsafe.Pointer(p)).FaTotalSize = p + 1*128 (*TFts5Storage)(unsafe.Pointer(p)).FpConfig = pConfig (*TFts5Storage)(unsafe.Pointer(p)).FpIndex = pIndex @@ -214326,36 +216279,36 @@ func _sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCr if zDefn == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38505, 0) + Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38651, 0) iOff = int32(libc.Xstrlen(tls, zDefn)) i = 0 for { if !(i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } - Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38528, libc.VaList(bp+8, i)) + Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38674, libc.VaList(bp+8, i)) iOff += int32(libc.Xstrlen(tls, zDefn+uintptr(iOff))) goto _2 _2: ; i++ } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35097, zDefn, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35243, zDefn, 0, pzErr) } Xsqlite3_free(tls, zDefn) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - zCols = __ccgo_ts + 38534 + zCols = __ccgo_ts + 38680 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 { - zCols = __ccgo_ts + 38566 + zCols = __ccgo_ts + 38712 } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35664, zCols, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35810, zCols, 0, pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37585, __ccgo_ts+38614, int32(1), pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37731, __ccgo_ts+38760, int32(1), pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35836, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35982, uintptr(0), int32(FTS5_CURRENT_VERSION)) } } if rc != 0 { @@ -214697,9 +216650,9 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig (*TFts5Storage)(unsafe.Pointer(p)).FbTotalsValid = 0 /* Delete the contents of the %_data and %_docsize tables. */ - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38631, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38777, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38681, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38827, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } /* Reinitialize the %_data table. This call creates the initial structure ** and averages records. */ @@ -214707,7 +216660,7 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3Fts5IndexReinit(tls, (*TFts5Storage)(unsafe.Pointer(p)).FpIndex) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35836, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35982, uintptr(0), int32(FTS5_CURRENT_VERSION)) } return rc } @@ -214921,7 +216874,7 @@ func _fts5StorageCount(tls *libc.TLS, p uintptr, zSuffix uintptr, pnRow uintptr) var _ /* pCnt at bp+0 */ uintptr _, _, _ = pConfig, rc, zSql pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38710, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38856, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -215047,7 +217000,7 @@ func _sqlite3Fts5StorageIntegrity(tls *libc.TLS, p uintptr, iArg int32) (r int32 rc = SQLITE_OK libc.Xmemset(tls, bp, 0, uint64(40)) (*(*TFts5IntegrityCtx)(unsafe.Pointer(bp))).FpConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig - aTotalSize = Xsqlite3_malloc64(tls, uint64((*TFts5Config)(unsafe.Pointer(pConfig)).FnCol)*(libc.Uint64FromInt64(4)+libc.Uint64FromInt64(8))) + aTotalSize = Xsqlite3_malloc64(tls, uint64(uint64((*TFts5Config)(unsafe.Pointer(pConfig)).FnCol)*(libc.Uint64FromInt64(4)+libc.Uint64FromInt64(8)))) if !(aTotalSize != 0) { return int32(SQLITE_NOMEM) } @@ -215131,14 +217084,14 @@ func _sqlite3Fts5StorageIntegrity(tls *libc.TLS, p uintptr, iArg int32) (r int32 ** number of rows. */ if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { *(*Ti64)(unsafe.Pointer(bp + 48)) = 0 - rc = _fts5StorageCount(tls, p, __ccgo_ts+35097, bp+48) + rc = _fts5StorageCount(tls, p, __ccgo_ts+35243, bp+48) if rc == SQLITE_OK && *(*Ti64)(unsafe.Pointer(bp + 48)) != (*TFts5Storage)(unsafe.Pointer(p)).FnTotalRow { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<= int32('A') && int32(c) <= int32('Z') { + if int32(int32(c)) >= int32('A') && int32(int32(c)) <= int32('Z') { c = int8(int32(c) + libc.Int32FromInt32(32)) } *(*int8)(unsafe.Pointer(aOut + uintptr(i))) = c @@ -215590,7 +217543,7 @@ func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused if pFold != bp { Xsqlite3_free(tls, pFold) } - pFold = Xsqlite3_malloc64(tls, uint64(int64(nByte)*int64(2))) + pFold = Xsqlite3_malloc64(tls, uint64(int64(int64(nByte))*int64(2))) if pFold == uintptr(0) { rc = int32(SQLITE_NOMEM) break @@ -215655,7 +217608,7 @@ func _fts5UnicodeAddExceptions(tls *libc.TLS, p uintptr, z uintptr, bTokenChars rc = SQLITE_OK n = int32(libc.Xstrlen(tls, z)) if n > 0 { - aNew = Xsqlite3_realloc64(tls, (*TUnicode61Tokenizer)(unsafe.Pointer(p)).FaiException, uint64(n+(*TUnicode61Tokenizer)(unsafe.Pointer(p)).FnException)*uint64(4)) + aNew = Xsqlite3_realloc64(tls, (*TUnicode61Tokenizer)(unsafe.Pointer(p)).FaiException, uint64(uint64(n+(*TUnicode61Tokenizer)(unsafe.Pointer(p)).FnException)*uint64(4))) if aNew != 0 { nNew = (*TUnicode61Tokenizer)(unsafe.Pointer(p)).FnException zCsr = z @@ -215676,10 +217629,10 @@ func _fts5UnicodeAddExceptions(tls *libc.TLS, p uintptr, z uintptr, bTokenChars } } if iCode < uint32(128) { - *(*uint8)(unsafe.Pointer(p + uintptr(iCode))) = uint8(bTokenChars) + *(*uint8)(unsafe.Pointer(p + uintptr(iCode))) = uint8(uint8(bTokenChars)) } else { bToken = int32(*(*uint8)(unsafe.Pointer(p + 160 + uintptr(_sqlite3Fts5UnicodeCategory(tls, iCode))))) - if bToken != bTokenChars && _sqlite3Fts5UnicodeIsdiacritic(tls, int32(iCode)) == 0 { + if bToken != bTokenChars && _sqlite3Fts5UnicodeIsdiacritic(tls, int32(int32(iCode))) == 0 { i = 0 for { if !(i < nNew) { @@ -215694,7 +217647,7 @@ func _fts5UnicodeAddExceptions(tls *libc.TLS, p uintptr, z uintptr, bTokenChars i++ } libc.Xmemmove(tls, aNew+uintptr(i+int32(1))*4, aNew+uintptr(i)*4, uint64(nNew-i)*uint64(4)) - *(*int32)(unsafe.Pointer(aNew + uintptr(i)*4)) = int32(iCode) + *(*int32)(unsafe.Pointer(aNew + uintptr(i)*4)) = int32(int32(iCode)) nNew++ } } @@ -215790,11 +217743,11 @@ func _fts5UnicodeCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int3 } else { p = Xsqlite3_malloc(tls, int32(192)) if p != 0 { - zCat = __ccgo_ts + 38764 + zCat = __ccgo_ts + 38910 libc.Xmemset(tls, p, 0, uint64(192)) (*TUnicode61Tokenizer)(unsafe.Pointer(p)).FeRemoveDiacritic = int32(FTS5_REMOVE_DIACRITICS_SIMPLE) (*TUnicode61Tokenizer)(unsafe.Pointer(p)).FnFold = int32(64) - (*TUnicode61Tokenizer)(unsafe.Pointer(p)).FaFold = Xsqlite3_malloc64(tls, uint64((*TUnicode61Tokenizer)(unsafe.Pointer(p)).FnFold)*uint64(1)) + (*TUnicode61Tokenizer)(unsafe.Pointer(p)).FaFold = Xsqlite3_malloc64(tls, uint64(uint64((*TUnicode61Tokenizer)(unsafe.Pointer(p)).FnFold)*uint64(1))) if (*TUnicode61Tokenizer)(unsafe.Pointer(p)).FaFold == uintptr(0) { rc = int32(SQLITE_NOMEM) } @@ -215804,7 +217757,7 @@ func _fts5UnicodeCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int3 if !(rc == SQLITE_OK && i < nArg) { break } - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38773) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38919) { zCat = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+int32(1))*8)) } goto _1 @@ -215821,20 +217774,20 @@ func _fts5UnicodeCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int3 break } zArg = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+int32(1))*8)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38784) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38930) { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('2') || *(*int8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { (*TUnicode61Tokenizer)(unsafe.Pointer(p)).FeRemoveDiacritic = int32(*(*int8)(unsafe.Pointer(zArg))) - int32('0') } } else { - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38742) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38888) { rc = _fts5UnicodeAddExceptions(tls, p, zArg, int32(1)) } else { - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38753) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38899) { rc = _fts5UnicodeAddExceptions(tls, p, zArg, 0) } else { - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38773) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38919) { /* no-op */ } else { rc = int32(SQLITE_ERROR) @@ -215867,7 +217820,7 @@ func _fts5UnicodeCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int3 // ** character (not a separator). // */ func _fts5UnicodeIsAlnum(tls *libc.TLS, p uintptr, iCode int32) (r int32) { - return int32(*(*uint8)(unsafe.Pointer(p + 160 + uintptr(_sqlite3Fts5UnicodeCategory(tls, uint32(iCode)))))) ^ _fts5UnicodeIsException(tls, p, iCode) + return int32(*(*uint8)(unsafe.Pointer(p + 160 + uintptr(_sqlite3Fts5UnicodeCategory(tls, uint32(uint32(iCode))))))) ^ _fts5UnicodeIsException(tls, p, iCode) } func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { @@ -215901,7 +217854,7 @@ _2: if int32(*(*uint8)(unsafe.Pointer(zCsr)))&int32(0x80) != 0 { /* A character outside of the ascii range. Skip past it if it is ** a separator character. Or break out of the loop if it is not. */ - is = int32(int64(zCsr) - int64(pText)) + is = int32(int64(int64(zCsr)) - int64(pText)) v3 = zCsr zCsr++ iCode = uint32(*(*uint8)(unsafe.Pointer(v3))) @@ -215916,12 +217869,12 @@ _2: iCode = uint32(0xFFFD) } } - if _fts5UnicodeIsAlnum(tls, p, int32(iCode)) != 0 { + if _fts5UnicodeIsAlnum(tls, p, int32(int32(iCode))) != 0 { goto non_ascii_tokenchar } } else { if *(*uint8)(unsafe.Pointer(a + uintptr(*(*uint8)(unsafe.Pointer(zCsr))))) != 0 { - is = int32(int64(zCsr) - int64(pText)) + is = int32(int64(int64(zCsr)) - int64(pText)) goto ascii_tokenchar } zCsr++ @@ -215937,13 +217890,13 @@ _6: /* Grow the output buffer so that there is sufficient space to fit the ** largest possible utf-8 character. */ if zOut > pEnd { - aFold = Xsqlite3_malloc64(tls, uint64(int64(nFold)*int64(2))) + aFold = Xsqlite3_malloc64(tls, uint64(int64(int64(nFold))*int64(2))) if aFold == uintptr(0) { rc = int32(SQLITE_NOMEM) goto tokenize_done } - zOut = aFold + uintptr(int64(zOut)-int64((*TUnicode61Tokenizer)(unsafe.Pointer(p)).FaFold)) - libc.Xmemcpy(tls, aFold, (*TUnicode61Tokenizer)(unsafe.Pointer(p)).FaFold, uint64(nFold)) + zOut = aFold + uintptr(int64(int64(zOut))-int64((*TUnicode61Tokenizer)(unsafe.Pointer(p)).FaFold)) + libc.Xmemcpy(tls, aFold, (*TUnicode61Tokenizer)(unsafe.Pointer(p)).FaFold, uint64(uint64(nFold))) Xsqlite3_free(tls, (*TUnicode61Tokenizer)(unsafe.Pointer(p)).FaFold) (*TUnicode61Tokenizer)(unsafe.Pointer(p)).FaFold = aFold v7 = nFold * libc.Int32FromInt32(2) @@ -215970,12 +217923,13 @@ _6: iCode = uint32(0xFFFD) } } - if !(_fts5UnicodeIsAlnum(tls, p, int32(iCode)) != 0 || _sqlite3Fts5UnicodeIsdiacritic(tls, int32(iCode)) != 0) { + if !(_fts5UnicodeIsAlnum(tls, p, int32(int32(iCode))) != 0 || _sqlite3Fts5UnicodeIsdiacritic(tls, int32(int32(iCode))) != 0) { goto _12 } + goto non_ascii_tokenchar non_ascii_tokenchar: ; - iCode = uint32(_sqlite3Fts5UnicodeFold(tls, int32(iCode), (*TUnicode61Tokenizer)(unsafe.Pointer(p)).FeRemoveDiacritic)) + iCode = uint32(_sqlite3Fts5UnicodeFold(tls, int32(int32(iCode)), (*TUnicode61Tokenizer)(unsafe.Pointer(p)).FeRemoveDiacritic)) if iCode != 0 { if iCode < uint32(0x00080) { v14 = zOut @@ -216034,6 +217988,7 @@ _8: goto _25 _24: ; + goto ascii_tokenchar ascii_tokenchar: ; if int32(*(*uint8)(unsafe.Pointer(zCsr))) >= int32('A') && int32(*(*uint8)(unsafe.Pointer(zCsr))) <= int32('Z') { @@ -216050,15 +218005,16 @@ _25: ; _9: ; - ie = int32(int64(zCsr) - int64(pText)) + ie = int32(int64(int64(zCsr)) - int64(pText)) goto _6 _5: ; /* Invoke the token callback */ - rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xToken})))(tls, pCtx, 0, aFold, int32(int64(zOut)-int64(aFold)), is, ie) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xToken})))(tls, pCtx, 0, aFold, int32(int64(int64(zOut))-int64(int64(aFold))), is, ie) goto _2 _1: ; + goto tokenize_done tokenize_done: ; if rc == int32(SQLITE_DONE) { @@ -216122,7 +218078,7 @@ func _fts5PorterCreate(tls *libc.TLS, pCtx uintptr, azArg uintptr, nArg int32, p pApi = pCtx rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zBase = __ccgo_ts + 38802 + zBase = __ccgo_ts + 38948 if nArg > 0 { zBase = *(*uintptr)(unsafe.Pointer(azArg)) } @@ -216193,7 +218149,7 @@ type TPorterRule1 = struct { type PorterRule1 = TPorterRule1 func _fts5PorterIsVowel(tls *libc.TLS, c int8, bYIsVowel int32) (r int32) { - return libc.BoolInt32(int32(c) == int32('a') || int32(c) == int32('e') || int32(c) == int32('i') || int32(c) == int32('o') || int32(c) == int32('u') || bYIsVowel != 0 && int32(c) == int32('y')) + return libc.BoolInt32(int32(int32(c)) == int32('a') || int32(int32(c)) == int32('e') || int32(int32(c)) == int32('i') || int32(int32(c)) == int32('o') || int32(int32(c)) == int32('u') || bYIsVowel != 0 && int32(int32(c)) == int32('y')) } func _fts5PorterGobbleVC(tls *libc.TLS, zStem uintptr, nStem int32, bPrevCons int32) (r int32) { @@ -216337,64 +218293,64 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38812, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38958, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38815, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38961, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38820, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38966, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('e'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38825, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38971, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38828, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38974, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('l'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38831, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38977, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38836, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38982, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38841, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38987, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38845, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38991, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38851, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38997, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38856, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39002, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -216403,49 +218359,49 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38860, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39006, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1_and_S_or_T(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38864, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39010, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } } case int32('s'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38867, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39013, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('t'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38871, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39017, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38875, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39021, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38879, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39025, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38883, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39029, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('z'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38887, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39033, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -216462,20 +218418,20 @@ func _fts5PorterStep1B2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38891, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38871, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39037, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39017, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('b'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38894, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38897, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39040, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39043, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38901, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38887, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39047, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39033, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } @@ -216491,75 +218447,75 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38904, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39050, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38871, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39017, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38912, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39058, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38919, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39065, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(4) } } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38924, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39070, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38820, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38966, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38929, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39075, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38815, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38961, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } } case int32('e'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38934, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39080, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38887, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39033, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('g'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38939, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39085, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15911, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15990, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('l'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38944, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39090, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38897, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39043, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38948, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39094, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38812, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38958, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38953, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39099, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38856, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39002, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38959, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39105, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38963, uint64(1)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39109, uint64(1)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(1) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38965, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39111, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38879, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39025, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } @@ -216568,48 +218524,48 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38971, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39117, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38887, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39033, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38979, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39125, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38871, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39017, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38985, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39131, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38871, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39017, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } } } case int32('s'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38990, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39136, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38812, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38958, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38996, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39142, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38883, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39029, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39004, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39150, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39012, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39158, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39016, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39162, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38879, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39025, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } @@ -216617,21 +218573,21 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39024, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39170, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38812, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38958, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39030, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39176, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38883, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39029, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39036, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39182, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38897, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39043, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(3) } } @@ -216649,48 +218605,48 @@ func _fts5PorterStep3(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39043, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39189, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38828, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38974, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } case int32('s'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39048, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39194, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39053, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39199, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38828, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38974, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39059, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39205, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38828, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38974, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39012, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39158, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39065, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39211, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } case int32('z'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39071, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39217, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38812, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38958, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } @@ -216706,13 +218662,13 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('e'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39077, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39223, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39081, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39227, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(2) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39084, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39230, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) ret = int32(1) @@ -216720,7 +218676,7 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39087, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39233, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) ret = int32(1) @@ -216775,7 +218731,7 @@ func _fts5PorterCb(tls *libc.TLS, pCtx uintptr, tflags int32, pToken uintptr, nT if _fts5PorterStep1B(tls, aBuf, bp) != 0 { if _fts5PorterStep1B2(tls, aBuf, bp) == 0 { c = *(*int8)(unsafe.Pointer(aBuf + uintptr(*(*int32)(unsafe.Pointer(bp))-int32(1)))) - if _fts5PorterIsVowel(tls, c, 0) == 0 && int32(c) != int32('l') && int32(c) != int32('s') && int32(c) != int32('z') && int32(c) == int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(*(*int32)(unsafe.Pointer(bp))-int32(2))))) { + if _fts5PorterIsVowel(tls, c, 0) == 0 && int32(int32(c)) != int32('l') && int32(int32(c)) != int32('s') && int32(int32(c)) != int32('z') && int32(int32(c)) == int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(*(*int32)(unsafe.Pointer(bp))-int32(2))))) { *(*int32)(unsafe.Pointer(bp))-- } else { if _fts5Porter_MEq1(tls, aBuf, *(*int32)(unsafe.Pointer(bp))) != 0 && _fts5Porter_Ostar(tls, aBuf, *(*int32)(unsafe.Pointer(bp))) != 0 { @@ -216805,6 +218761,7 @@ func _fts5PorterCb(tls *libc.TLS, pCtx uintptr, tflags int32, pToken uintptr, nT *(*int32)(unsafe.Pointer(bp))-- } return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, aBuf, *(*int32)(unsafe.Pointer(bp)), iStart, iEnd) + goto pass_through pass_through: ; return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, pToken, nToken, iStart, iEnd) @@ -216880,14 +218837,14 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p break } zArg = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+int32(1))*8)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39091) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39237) { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || *(*int8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { (*TTrigramTokenizer)(unsafe.Pointer(pNew)).FbFold = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('0')) } } else { - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38784) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38930) { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('2') || *(*int8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { @@ -216946,7 +218903,7 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int break } for cond := true; cond; cond = iCode == uint32(0) { - aStart[ii] = int32(int64(zIn) - int64(pText)) + aStart[ii] = int32(int64(int64(zIn)) - int64(pText)) v2 = zIn zIn++ iCode = uint32(*(*uint8)(unsafe.Pointer(v2))) @@ -216965,7 +218922,7 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int return SQLITE_OK } if (*TTrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 { - iCode = uint32(_sqlite3Fts5UnicodeFold(tls, int32(iCode), (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam)) + iCode = uint32(_sqlite3Fts5UnicodeFold(tls, int32(int32(iCode)), (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam)) } } if iCode < uint32(0x00080) { @@ -217022,7 +218979,7 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int for int32(1) != 0 { /* Read characters from the input up until the first non-diacritic */ for cond := true; cond; cond = iCode == uint32(0) { - iNext = int32(int64(zIn) - int64(pText)) + iNext = int32(int64(int64(zIn)) - int64(pText)) v14 = zIn zIn++ iCode = uint32(*(*uint8)(unsafe.Pointer(v14))) @@ -217041,11 +218998,11 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int break } if (*TTrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 { - iCode = uint32(_sqlite3Fts5UnicodeFold(tls, int32(iCode), (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam)) + iCode = uint32(_sqlite3Fts5UnicodeFold(tls, int32(int32(iCode)), (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam)) } } /* Pass the current trigram back to fts5 */ - rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xToken})))(tls, pCtx, 0, bp, int32(int64(zOut)-t__predefined_ptrdiff_t(bp)), aStart[0], iNext) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xToken})))(tls, pCtx, 0, bp, int32(int64(int64(zOut))-t__predefined_ptrdiff_t(bp)), aStart[0], iNext) if iCode == uint32(0) || rc != SQLITE_OK { break } @@ -217059,8 +219016,8 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int z1++ } } - libc.Xmemmove(tls, bp, z1, uint64(int64(zOut)-int64(z1))) - zOut -= uintptr(int64(z1) - t__predefined_ptrdiff_t(bp)) + libc.Xmemmove(tls, bp, z1, uint64(int64(int64(zOut))-int64(int64(z1)))) + zOut -= uintptr(int64(int64(z1)) - t__predefined_ptrdiff_t(bp)) if iCode < uint32(0x00080) { v17 = zOut zOut++ @@ -217161,7 +219118,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { Fx Tfts5_tokenizer }{ 0: { - FzName: __ccgo_ts + 38802, + FzName: __ccgo_ts + 38948, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5UnicodeCreate), FxDelete: __ccgo_fp(_fts5UnicodeDelete), @@ -217169,7 +219126,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 1: { - FzName: __ccgo_ts + 39106, + FzName: __ccgo_ts + 39252, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5AsciiCreate), FxDelete: __ccgo_fp(_fts5AsciiDelete), @@ -217177,7 +219134,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 2: { - FzName: __ccgo_ts + 39112, + FzName: __ccgo_ts + 39258, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5PorterCreate), FxDelete: __ccgo_fp(_fts5PorterDelete), @@ -217185,7 +219142,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 3: { - FzName: __ccgo_ts + 39119, + FzName: __ccgo_ts + 39265, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5TriCreate), FxDelete: __ccgo_fp(_fts5TriDelete), @@ -217492,7 +219449,7 @@ func _fts5_remove_diacritic(tls *libc.TLS, c int32, bComplex int32) (r int32) { 124: uint8(libc.Int32FromUint8('u') | int32(libc.Uint8FromInt32(0x80))), 125: uint8('y'), } - key = uint32(c)< iLo { iTest = (iHi + iLo) / int32(2) - if int32(iKey) >= int32(_aFts5UnicodeMap[iTest]) { + if int32(int32(iKey)) >= int32(_aFts5UnicodeMap[iTest]) { iRes = iTest iLo = iTest + int32(1) } else { @@ -222220,14 +224177,14 @@ func _sqlite3Fts5UnicodeCategory(tls *libc.TLS, iCode Tu32) (r int32) { if iRes < 0 { return 0 } - if int32(iKey) >= int32(_aFts5UnicodeMap[iRes])+int32(_aFts5UnicodeData[iRes])>>int32(5) { + if int32(int32(iKey)) >= int32(_aFts5UnicodeMap[iRes])+int32(_aFts5UnicodeData[iRes])>>int32(5) { return 0 } ret = int32(_aFts5UnicodeData[iRes]) & int32(0x1F) if ret != int32(30) { return ret } - if (int32(iKey)-int32(_aFts5UnicodeMap[iRes]))&int32(0x01) != 0 { + if (int32(int32(iKey))-int32(_aFts5UnicodeMap[iRes]))&int32(0x01) != 0 { v1 = int32(5) } else { v1 = int32(9) @@ -222247,7 +224204,7 @@ func _sqlite3Fts5UnicodeAscii(tls *libc.TLS, aArray uintptr, aAscii uintptr) { if !(i < int32(128) && i < n) { break } - *(*Tu8)(unsafe.Pointer(aAscii + uintptr(i))) = uint8(bToken) + *(*Tu8)(unsafe.Pointer(aAscii + uintptr(i))) = uint8(uint8(bToken)) goto _1 _1: ; @@ -222333,7 +224290,7 @@ func _sqlite3Fts5GetVarint32(tls *libc.TLS, p uintptr, v uintptr) (r int32) { p -= uintptr(2) n = _sqlite3Fts5GetVarint(tls, p, bp) *(*Tu32)(unsafe.Pointer(v)) = uint32(*(*Tu64)(unsafe.Pointer(bp))) & uint32(0x7FFFFFFF) - return int32(n) + return int32(int32(n)) return r } @@ -222359,7 +224316,7 @@ func _sqlite3Fts5GetVarint(tls *libc.TLS, p uintptr, v uintptr) (r Tu8) { a = uint32(*(*uint8)(unsafe.Pointer(p))) /* a: p0 (unmasked) */ if !(a&libc.Uint32FromInt32(0x80) != 0) { - *(*Tu64)(unsafe.Pointer(v)) = uint64(a) + *(*Tu64)(unsafe.Pointer(v)) = uint64(uint64(a)) return uint8(1) } p++ @@ -222369,7 +224326,7 @@ func _sqlite3Fts5GetVarint(tls *libc.TLS, p uintptr, v uintptr) (r Tu8) { a &= uint32(0x7f) a = a << int32(7) a |= b - *(*Tu64)(unsafe.Pointer(v)) = uint64(a) + *(*Tu64)(unsafe.Pointer(v)) = uint64(uint64(a)) return uint8(2) } /* Verify that constants are precomputed correctly */ @@ -222382,7 +224339,7 @@ func _sqlite3Fts5GetVarint(tls *libc.TLS, p uintptr, v uintptr) (r Tu8) { b &= uint32(0x7f) b = b << int32(7) a |= b - *(*Tu64)(unsafe.Pointer(v)) = uint64(a) + *(*Tu64)(unsafe.Pointer(v)) = uint64(uint64(a)) return uint8(3) } /* CSE1 from below */ @@ -222397,7 +224354,7 @@ func _sqlite3Fts5GetVarint(tls *libc.TLS, p uintptr, v uintptr) (r Tu8) { /* a &= (0x7f<<14)|(0x7f); */ a = a << int32(7) a |= b - *(*Tu64)(unsafe.Pointer(v)) = uint64(a) + *(*Tu64)(unsafe.Pointer(v)) = uint64(uint64(a)) return uint8(4) } /* a: p0<<14 | p2 (masked) */ @@ -222419,7 +224376,7 @@ func _sqlite3Fts5GetVarint(tls *libc.TLS, p uintptr, v uintptr) (r Tu8) { b = b << int32(7) a |= b s = s >> int32(18) - *(*Tu64)(unsafe.Pointer(v)) = uint64(s)<> int32(18) - *(*Tu64)(unsafe.Pointer(v)) = uint64(s)<> int32(11) - *(*Tu64)(unsafe.Pointer(v)) = uint64(s)<> int32(4) - *(*Tu64)(unsafe.Pointer(v)) = uint64(s)<> int32(3) s |= b - *(*Tu64)(unsafe.Pointer(v)) = uint64(s)<>= uint64(8) i = int32(7) for { @@ -222719,16 +224676,16 @@ func _fts5VocabTableType(tls *libc.TLS, zType uintptr, pzErr uintptr, peType uin zCopy = _sqlite3Fts5Strndup(tls, bp, zType, -int32(1)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { _sqlite3Fts5Dequote(tls, zCopy) - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39127) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39273) == 0 { *(*int32)(unsafe.Pointer(peType)) = FTS5_VOCAB_COL } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39131) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39277) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_ROW) } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39135) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39281) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_INSTANCE) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39144, libc.VaList(bp+16, zCopy)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39290, libc.VaList(bp+16, zCopy)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -222797,15 +224754,15 @@ func _fts5VocabInitVtab(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg var _ /* rc at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _ = azSchema, bDb, nByte, nDb, nTab, pRet, zDb, zTab, zType, v1, v2, v3 azSchema = [3]uintptr{ - 0: __ccgo_ts + 39178, - 1: __ccgo_ts + 39218, - 2: __ccgo_ts + 39253, + 0: __ccgo_ts + 39324, + 1: __ccgo_ts + 39364, + 2: __ccgo_ts + 39399, } pRet = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+23746, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) + bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+23869, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) if argc != int32(5) && bDb == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39296, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39442, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bDb != 0 { @@ -222833,16 +224790,16 @@ func _fts5VocabInitVtab(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_declare_vtab(tls, db, azSchema[*(*int32)(unsafe.Pointer(bp + 4))]) } - nByte = int32(uint64(64) + uint64(nDb) + uint64(nTab)) - pRet = _sqlite3Fts5MallocZero(tls, bp, int64(nByte)) + nByte = int32(uint64(64) + uint64(uint64(nDb)) + uint64(uint64(nTab))) + pRet = _sqlite3Fts5MallocZero(tls, bp, int64(int64(nByte))) if pRet != 0 { (*TFts5VocabTable)(unsafe.Pointer(pRet)).FpGlobal = pAux (*TFts5VocabTable)(unsafe.Pointer(pRet)).FeType = *(*int32)(unsafe.Pointer(bp + 4)) (*TFts5VocabTable)(unsafe.Pointer(pRet)).Fdb = db (*TFts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Tbl = pRet + 1*64 (*TFts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Db = (*TFts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Tbl + uintptr(nTab) - libc.Xmemcpy(tls, (*TFts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Tbl, zTab, uint64(nTab)) - libc.Xmemcpy(tls, (*TFts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Db, zDb, uint64(nDb)) + libc.Xmemcpy(tls, (*TFts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Tbl, zTab, uint64(uint64(nTab))) + libc.Xmemcpy(tls, (*TFts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Db, zDb, uint64(uint64(nDb))) _sqlite3Fts5Dequote(tls, (*TFts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Tbl) _sqlite3Fts5Dequote(tls, (*TFts5VocabTable)(unsafe.Pointer(pRet)).FzFts5Db) } @@ -222975,10 +224932,10 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) zSql = uintptr(0) if (*TFts5VocabTable)(unsafe.Pointer(pTab)).FbBusy != 0 { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39329, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39475, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) return int32(SQLITE_ERROR) } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39360, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39506, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, (*TFts5VocabTable)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), bp+8, uintptr(0)) } @@ -222997,7 +224954,7 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39411, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39557, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } else { @@ -223069,7 +225026,7 @@ func _fts5VocabInstanceNewTerm(tls *libc.TLS, pCsr uintptr) (r int32) { v1 = (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm } nCmp = v1 - bCmp = libc.Xmemcmp(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm, zTerm, uint64(nCmp)) + bCmp = libc.Xmemcmp(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm, zTerm, uint64(uint64(nCmp))) if bCmp < 0 || bCmp == 0 && (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm < *(*int32)(unsafe.Pointer(bp + 4)) { (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FbEof = int32(1) } @@ -223159,15 +225116,15 @@ func _fts5VocabNextMethod(tls *libc.TLS, pCursor uintptr) (r int32) { v2 = (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm } nCmp = v2 - bCmp = libc.Xmemcmp(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm, zTerm, uint64(nCmp)) + bCmp = libc.Xmemcmp(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm, zTerm, uint64(uint64(nCmp))) if bCmp < 0 || bCmp == 0 && (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm < *(*int32)(unsafe.Pointer(bp + 4)) { (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FbEof = int32(1) return SQLITE_OK } } _sqlite3Fts5BufferSet(tls, bp, pCsr+96, *(*int32)(unsafe.Pointer(bp + 4)), zTerm) - libc.Xmemset(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FaCnt, 0, uint64(nCol)*uint64(8)) - libc.Xmemset(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FaDoc, 0, uint64(nCol)*uint64(8)) + libc.Xmemset(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FaCnt, 0, uint64(uint64(nCol))*uint64(8)) + libc.Xmemset(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FaDoc, 0, uint64(uint64(nCol))*uint64(8)) (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FiCol = 0 for *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { eDetail = (*TFts5Config)(unsafe.Pointer((*TFts5Table)(unsafe.Pointer((*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FpFts5)).FpConfig)).FeDetail /* Position list */ @@ -223201,7 +225158,7 @@ func _fts5VocabNextMethod(tls *libc.TLS, pCursor uintptr) (r int32) { } else { if eDetail == int32(FTS5_DETAIL_COLUMNS) { for 0 == _sqlite3Fts5PoslistNext64(tls, pPos, nPos, bp+16, bp+8) { - if *(*Ti64)(unsafe.Pointer(bp + 8)) >= int64(nCol) { + if *(*Ti64)(unsafe.Pointer(bp + 8)) >= int64(int64(nCol)) { *(*int32)(unsafe.Pointer(bp)) = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00parser stack overflow\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-12.2.0\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_PTHREADS\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00ceiling\x00floor\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%04d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00%u-ROW VALUES CLAUSE\x00(subquery-%u)\x00unrecognized token: \"%s\"\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSizeBetween\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: \"%s\" - should this be a string literal in single-quotes?\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00SCAN %S\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00wrong # of entries in index \x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00LAST TERM OF \x00USE TEMP B-TREE FOR %sORDER BY\x00USE TEMP B-TREE FOR LAST %d TERMS OF ORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00syntax error\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00,\n\x00: \x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00 \x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_pretty\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00" type Sqlite3_int64 = sqlite3_int64 type Sqlite3_mutex_methods = sqlite3_mutex_methods diff --git a/vendor/modernc.org/sqlite/lib/sqlite_linux_arm.go b/vendor/modernc.org/sqlite/lib/sqlite_linux_arm.go index 7abae779..49eb1ec1 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_linux_arm.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_linux_arm.go @@ -1,4 +1,4 @@ -// Code generated for linux/arm by 'generator --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -import runtime -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -extended-errors -o sqlite3.go sqlite3.c -I/tmp/libsqlite3/sqlite-amalgamation-3450300/ccgo -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. +// Code generated for linux/arm by 'generator --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libz/include/linux/arm -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libtcl8.6/include/linux/arm -extended-errors -o sqlite3.go sqlite3.c -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. //go:build linux && arm // +build linux,arm @@ -10,8 +10,6 @@ import ( "unsafe" "modernc.org/libc" - - "runtime" ) var ( @@ -1034,6 +1032,7 @@ const OPFLG_IN1 = 2 const OPFLG_IN2 = 4 const OPFLG_IN3 = 8 const OPFLG_JUMP = 1 +const OPFLG_JUMP0 = 128 const OPFLG_NCYCLE = 64 const OPFLG_OUT2 = 16 const OPFLG_OUT3 = 32 @@ -1111,7 +1110,7 @@ const OP_IfNotOpen = 25 const OP_IfNotZero = 60 const OP_IfNullRow = 20 const OP_IfPos = 59 -const OP_IfSmaller = 33 +const OP_IfSizeBetween = 33 const OP_IncrVacuum = 62 const OP_Init = 8 const OP_InitCoroutine = 11 @@ -1515,6 +1514,7 @@ const SF_ComplexResult = 262144 const SF_Compound = 256 const SF_Converted = 65536 const SF_CopyCte = 67108864 +const SF_Correlated = 536870912 const SF_Distinct = 1 const SF_Expanded = 64 const SF_FixedLimit = 16384 @@ -1787,6 +1787,7 @@ const SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT = -1 const SQLITE_DEFAULT_LOOKASIDE = 40 const SQLITE_DEFAULT_MEMSTATUS = 0 const SQLITE_DEFAULT_MMAP_SIZE = 0 +const SQLITE_DEFAULT_OPTIMIZE_LIMIT = 2000 const SQLITE_DEFAULT_PAGE_SIZE = 4096 const SQLITE_DEFAULT_PCACHE_INITSZ = 20 const SQLITE_DEFAULT_PROXYDIR_PERMISSIONS = 493 @@ -1804,6 +1805,7 @@ const SQLITE_DESERIALIZE_READONLY = 4 const SQLITE_DESERIALIZE_RESIZEABLE = 2 const SQLITE_DETACH = 25 const SQLITE_DETERMINISTIC = 2048 +const SQLITE_DIGIT_SEPARATOR = 95 const SQLITE_DIRECTONLY = 524288 const SQLITE_DIRECT_OVERFLOW_READ = 1 const SQLITE_DONE = 101 @@ -2228,7 +2230,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355" +const SQLITE_SOURCE_ID = "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2336,8 +2338,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.45.3" -const SQLITE_VERSION_NUMBER = 3045003 +const SQLITE_VERSION = "3.46.0" +const SQLITE_VERSION_NUMBER = 3046000 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -2498,11 +2500,11 @@ const TF_HasStat1 = 16 const TF_HasStat4 = 8192 const TF_HasStored = 64 const TF_HasVirtual = 32 +const TF_MaybeReanalyze = 256 const TF_NoVisibleRowid = 512 const TF_OOOHidden = 1024 const TF_Readonly = 1 const TF_Shadow = 4096 -const TF_StatsUsed = 256 const TF_Strict = 65536 const TF_WithoutRowid = 128 const TIMER_ABSTIME = 1 @@ -2659,7 +2661,7 @@ const TK_ID = 59 const TK_IF = 18 const TK_IF_NULL_ROW = 179 const TK_IGNORE = 63 -const TK_ILLEGAL = 184 +const TK_ILLEGAL = 185 const TK_IMMEDIATE = 8 const TK_IN = 49 const TK_INDEX = 161 @@ -2707,6 +2709,7 @@ const TK_PRAGMA = 70 const TK_PRECEDING = 88 const TK_PRIMARY = 122 const TK_PTR = 112 +const TK_QNUMBER = 183 const TK_QUERY = 3 const TK_RAISE = 71 const TK_RANGE = 89 @@ -2731,7 +2734,7 @@ const TK_SELECT_COLUMN = 178 const TK_SEMI = 1 const TK_SET = 130 const TK_SLASH = 109 -const TK_SPACE = 183 +const TK_SPACE = 184 const TK_SPAN = 181 const TK_STAR = 108 const TK_STRING = 117 @@ -2744,12 +2747,12 @@ const TK_TRANSACTION = 6 const TK_TRIGGER = 77 const TK_TRUEFALSE = 170 const TK_TRUTH = 175 -const TK_UMINUS = 173 +const TK_UMINUS = 174 const TK_UNBOUNDED = 90 const TK_UNION = 134 const TK_UNIQUE = 123 const TK_UPDATE = 129 -const TK_UPLUS = 174 +const TK_UPLUS = 173 const TK_USING = 144 const TK_VACUUM = 78 const TK_VALUES = 139 @@ -2905,31 +2908,37 @@ const W_OK = 2 const XN_EXPR = -2 const XN_ROWID = -1 const X_OK = 1 +const YYDYNSTACK = 1 const YYFALLBACK = 1 +const YYFREE = 0 +const YYGROWABLESTACK = 1 const YYMALLOCARGTYPE = 0 -const YYNOCODE = 319 +const YYNOCODE = 322 const YYNOERRORRECOVERY = 1 -const YYNRULE = 405 -const YYNRULE_WITH_ACTION = 340 -const YYNSTATE = 579 -const YYNTOKEN = 185 +const YYNRULE = 409 +const YYNRULE_WITH_ACTION = 344 +const YYNSTATE = 583 +const YYNTOKEN = 186 const YYPARSEFREENEVERNULL = 1 +const YYREALLOC = 0 const YYSTACKDEPTH = 100 const YYWILDCARD = 101 -const YY_ACCEPT_ACTION = 1244 -const YY_ACTTAB_COUNT = 2100 -const YY_ERROR_ACTION = 1243 -const YY_MAX_REDUCE = 1650 -const YY_MAX_SHIFT = 578 -const YY_MAX_SHIFTREDUCE = 1242 -const YY_MIN_REDUCE = 1246 -const YY_MIN_SHIFTREDUCE = 838 -const YY_NO_ACTION = 1245 -const YY_REDUCE_COUNT = 410 -const YY_REDUCE_MAX = 1753 -const YY_REDUCE_MIN = -271 -const YY_SHIFT_COUNT = 578 -const YY_SHIFT_MAX = 2088 +const YY_ACCEPT_ACTION = 1255 +const YY_ACTTAB_COUNT = 2142 +const YY_ERROR_ACTION = 1254 +const YY_MAX_DSTRCTR = 319 +const YY_MAX_REDUCE = 1665 +const YY_MAX_SHIFT = 582 +const YY_MAX_SHIFTREDUCE = 1253 +const YY_MIN_DSTRCTR = 205 +const YY_MIN_REDUCE = 1257 +const YY_MIN_SHIFTREDUCE = 845 +const YY_NO_ACTION = 1256 +const YY_REDUCE_COUNT = 411 +const YY_REDUCE_MAX = 1798 +const YY_REDUCE_MIN = -275 +const YY_SHIFT_COUNT = 582 +const YY_SHIFT_MAX = 2128 const YY_SHIFT_MIN = 0 const _ALLOCA_H = 1 const _ASSERT_H = 1 @@ -3657,6 +3666,9 @@ const fdatasync = 0 const first_valueInvFunc = 0 const first_valueValueFunc = 0 const fts5GetVarint = 0 +const fts5YYDYNSTACK = 0 +const fts5YYFREE = 0 +const fts5YYGROWABLESTACK = 0 const fts5YYMALLOCARGTYPE = 0 const fts5YYNFTS5TOKEN = 16 const fts5YYNOCODE = 27 @@ -3665,13 +3677,16 @@ const fts5YYNRULE = 28 const fts5YYNRULE_WITH_ACTION = 28 const fts5YYNSTATE = 35 const fts5YYPARSEFREENOTNULL = 1 +const fts5YYREALLOC = 0 const fts5YYSTACKDEPTH = 100 const fts5YY_ACCEPT_ACTION = 81 const fts5YY_ACTTAB_COUNT = 105 const fts5YY_ERROR_ACTION = 80 +const fts5YY_MAX_DSTRCTR = 24 const fts5YY_MAX_REDUCE = 110 const fts5YY_MAX_SHIFT = 34 const fts5YY_MAX_SHIFTREDUCE = 79 +const fts5YY_MIN_DSTRCTR = 16 const fts5YY_MIN_REDUCE = 83 const fts5YY_MIN_SHIFTREDUCE = 52 const fts5YY_NO_ACTION = 82 @@ -4098,11 +4113,11 @@ type sqlite3_file1 = Tsqlite3_file1 // ** // ** xLock() upgrades the database file lock. In other words, xLock() moves the // ** database file lock in the direction NONE toward EXCLUSIVE. The argument to -// ** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +// ** xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never // ** SQLITE_LOCK_NONE. If the database file lock is already at or above the // ** requested lock, then the call to xLock() is a no-op. // ** xUnlock() downgrades the database file lock to either SHARED or NONE. -// * If the lock is already at or below the requested lock state, then the call +// ** If the lock is already at or below the requested lock state, then the call // ** to xUnlock() is a no-op. // ** The xCheckReservedLock() method checks whether any database connection, // ** either in this process or in some other process, is holding a RESERVED, @@ -5894,6 +5909,7 @@ type Tsqlite3_changegroup = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -6220,8 +6236,8 @@ type Fts5PhraseIter1 = TFts5PhraseIter1 ** EXTENSION API FUNCTIONS ** ** xUserData(pFts): -** Return a copy of the context pointer the extension function was -** registered with. +** Return a copy of the pUserData pointer passed to the xCreateFunction() +** API when the extension function was registered. ** ** xColumnTotalSize(pFts, iCol, pnToken): ** If parameter iCol is less than zero, set output variable *pnToken @@ -7993,7 +8009,7 @@ type uptr = Tuptr ** 0x00000010 Display sqlite3_index_info xBestIndex calls ** 0x00000020 Range an equality scan metrics ** 0x00000040 IN operator decisions -** 0x00000080 WhereLoop cost adjustements +** 0x00000080 WhereLoop cost adjustments ** 0x00000100 ** 0x00000200 Covering index decisions ** 0x00000400 OR optimization @@ -8508,6 +8524,7 @@ type TParse = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -8734,6 +8751,7 @@ type TSrcItem = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -11054,10 +11072,12 @@ type IdList1 = TIdList1 ** ** Union member validity: ** -** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc -** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy -** u2.pIBIndex fg.isIndexedBy && !fg.isCte -** u2.pCteUse fg.isCte && !fg.isIndexedBy +** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc +** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy +** u1.nRow !fg.isTabFunc && !fg.isIndexedBy +** +** u2.pIBIndex fg.isIndexedBy && !fg.isCte +** u2.pCteUse fg.isCte && !fg.isIndexedBy */ type TSrcItem1 = struct { F__ccgo_align [0]uint32 @@ -11085,6 +11105,7 @@ type TSrcItem1 = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -11489,6 +11510,7 @@ type TParse1 = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -12853,12 +12875,12 @@ var _sqlite3WhereTrace = uint32(0) var _sqlite3OpcodeProperty = [190]uint8{ 4: uint8(0x10), 6: uint8(0x41), - 8: uint8(0x01), + 8: uint8(0x81), 9: uint8(0x01), 10: uint8(0x01), - 11: uint8(0x01), - 12: uint8(0x03), - 13: uint8(0x03), + 11: uint8(0x81), + 12: uint8(0x83), + 13: uint8(0x83), 14: uint8(0x01), 15: uint8(0x01), 16: uint8(0x03), @@ -12866,22 +12888,22 @@ var _sqlite3OpcodeProperty = [190]uint8{ 18: uint8(0x01), 19: uint8(0x12), 20: uint8(0x01), - 21: uint8(0x49), - 22: uint8(0x49), - 23: uint8(0x49), - 24: uint8(0x49), + 21: uint8(0xc9), + 22: uint8(0xc9), + 23: uint8(0xc9), + 24: uint8(0xc9), 25: uint8(0x01), 26: uint8(0x49), 27: uint8(0x49), 28: uint8(0x49), 29: uint8(0x49), - 30: uint8(0x49), + 30: uint8(0xc9), 31: uint8(0x49), - 32: uint8(0x41), + 32: uint8(0xc1), 33: uint8(0x01), 34: uint8(0x41), 35: uint8(0x41), - 36: uint8(0x41), + 36: uint8(0xc1), 37: uint8(0x01), 38: uint8(0x41), 39: uint8(0x41), @@ -12893,7 +12915,7 @@ var _sqlite3OpcodeProperty = [190]uint8{ 45: uint8(0x41), 46: uint8(0x23), 47: uint8(0x0b), - 48: uint8(0x01), + 48: uint8(0x81), 49: uint8(0x01), 50: uint8(0x03), 51: uint8(0x03), @@ -13785,7 +13807,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= int32(libc.Uint32FromInt64(40)/libc.Uint32FromInt64(4)) { - return _sqlite3MisuseError(tls, int32(23890)) + return _sqlite3MisuseError(tls, int32(23961)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -14158,13 +14180,11 @@ type TDateTime = struct { Ftz int32 Fs float64 FvalidJD uint8 - FrawS uint8 FvalidYMD uint8 FvalidHMS uint8 - FvalidTZ uint8 - FtzSet uint8 - FisError uint8 - FuseSubsec uint8 + FnFloor uint8 + F__ccgo44 uint8 + F__ccgo_pad17 [3]byte } type DateTime = TDateTime @@ -14180,13 +14200,11 @@ type TDateTime1 = struct { Ftz int32 Fs float64 FvalidJD uint8 - FrawS uint8 FvalidYMD uint8 FvalidHMS uint8 - FvalidTZ uint8 - FtzSet uint8 - FisError uint8 - FuseSubsec uint8 + FnFloor uint8 + F__ccgo44 uint8 + F__ccgo_pad17 [3]byte } type DateTime1 = TDateTime1 @@ -14256,6 +14274,7 @@ func _getDigits(tls *libc.TLS, zDate uintptr, zFormat uintptr, va uintptr) (r in cnt++ zFormat += uintptr(4) } + goto end_getDigits end_getDigits: ; _ = ap @@ -14312,6 +14331,8 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } else { if c == int32('Z') || c == int32('z') { zDate++ + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) goto zulu_time } else { return libc.BoolInt32(c != 0) @@ -14324,12 +14345,12 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } zDate += uintptr(5) (*TDateTime)(unsafe.Pointer(p)).Ftz = sgn * (*(*int32)(unsafe.Pointer(bp + 4)) + *(*int32)(unsafe.Pointer(bp))*int32(60)) + goto zulu_time zulu_time: ; for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(zDate))])&int32(0x01) != 0 { zDate++ } - (*TDateTime)(unsafe.Pointer(p)).FtzSet = uint8(1) return libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zDate))) != 0) } @@ -14346,11 +14367,10 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var ms, rScale float64 - var v1 int32 var _ /* h at bp+0 */ int32 var _ /* m at bp+4 */ int32 var _ /* s at bp+8 */ int32 - _, _, _ = ms, rScale, v1 + _, _ = ms, rScale ms = float64(0) if _getDigits(tls, zDate, __ccgo_ts+1162, libc.VaList(bp+24, bp, bp+4)) != int32(2) { return int32(1) @@ -14376,7 +14396,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 8)) = 0 } (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) (*TDateTime)(unsafe.Pointer(p)).Fh = *(*int32)(unsafe.Pointer(bp)) (*TDateTime)(unsafe.Pointer(p)).Fm = *(*int32)(unsafe.Pointer(bp + 4)) @@ -14384,12 +14404,6 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { if _parseTimezone(tls, zDate, p) != 0 { return int32(1) } - if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { - v1 = int32(1) - } else { - v1 = 0 - } - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(v1) return 0 } @@ -14400,7 +14414,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { // */ func _datetimeError(tls *libc.TLS, p uintptr) { libc.Xmemset(tls, p, 0, uint32(48)) - (*TDateTime)(unsafe.Pointer(p)).FisError = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 1, 0x2) } // C documentation @@ -14426,7 +14440,7 @@ func _computeJD(tls *libc.TLS, p uintptr) { M = int32(1) D = int32(1) } - if Y < -int32(4713) || Y > int32(9999) || (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Y < -int32(4713) || Y > int32(9999) || int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { _datetimeError(tls, p) return } @@ -14442,11 +14456,44 @@ func _computeJD(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) if (*TDateTime)(unsafe.Pointer(p)).FvalidHMS != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) += int64((*TDateTime)(unsafe.Pointer(p)).Fh*int32(3600000)+(*TDateTime)(unsafe.Pointer(p)).Fm*int32(60000)) + int64((*TDateTime)(unsafe.Pointer(p)).Fs*libc.Float64FromInt32(1000)+libc.Float64FromFloat64(0.5)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64((*TDateTime)(unsafe.Pointer(p)).Ftz * int32(60000)) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + } + } +} + +// C documentation +// +// /* +// ** Given the YYYY-MM-DD information current in p, determine if there +// ** is day-of-month overflow and set nFloor to the number of days that +// ** would need to be subtracted from the date in order to bring the +// ** date back to the end of the month. +// */ +func _computeFloor(tls *libc.TLS, p uintptr) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if (*TDateTime)(unsafe.Pointer(p)).FD <= int32(28) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } else { + if int32(1)<<(*TDateTime)(unsafe.Pointer(p)).FM&int32(0x15aa) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FM != int32(2) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = libc.BoolUint8((*TDateTime)(unsafe.Pointer(p)).FD == libc.Int32FromInt32(31)) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FY%int32(4) != 0 || (*TDateTime)(unsafe.Pointer(p)).FY%int32(100) == 0 && (*TDateTime)(unsafe.Pointer(p)).FY%int32(400) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8((*TDateTime)(unsafe.Pointer(p)).FD - int32(28)) + } else { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8((*TDateTime)(unsafe.Pointer(p)).FD - int32(29)) + } + } } } } @@ -14505,12 +14552,15 @@ func _parseYyyyMmDd(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FY = v1 (*TDateTime)(unsafe.Pointer(p)).FM = *(*int32)(unsafe.Pointer(bp + 4)) (*TDateTime)(unsafe.Pointer(p)).FD = *(*int32)(unsafe.Pointer(bp + 8)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + _computeFloor(tls, p) + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { _computeJD(tls, p) } return 0 } +/* Forward declaration */ + // C documentation // // /* @@ -14522,6 +14572,9 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) (*TDateTime)(unsafe.Pointer(p)).FiJD = _sqlite3StmtCurrentTime(tls, context) if (*TDateTime)(unsafe.Pointer(p)).FiJD > 0 { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + _clearYMD_HMS_TZ(tls, p) return 0 } else { return int32(1) @@ -14539,7 +14592,7 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) // */ func _setRawDateNumber(tls *libc.TLS, p uintptr, r float64) { (*TDateTime)(unsafe.Pointer(p)).Fs = r - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 0, 0x1) if r >= float64(0) && r < float64(5.3734845e+06) { (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r*libc.Float64FromFloat64(8.64e+07) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) @@ -14582,7 +14635,7 @@ func _parseDateOrTime(tls *libc.TLS, context uintptr, zDate uintptr, p uintptr) return 0 } else { if (_sqlite3StrICmp(tls, zDate, __ccgo_ts+1190) == 0 || _sqlite3StrICmp(tls, zDate, __ccgo_ts+1197) == 0) && _sqlite3NotPureFunc(tls, context) != 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) return _setDateTimeToCurrent(tls, context, p) } } @@ -14674,7 +14727,7 @@ func _computeHMS(tls *libc.TLS, p uintptr) { day_min = day_ms / int32(60000) (*TDateTime)(unsafe.Pointer(p)).Fm = day_min % int32(60) (*TDateTime)(unsafe.Pointer(p)).Fh = day_min / int32(60) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) } @@ -14696,7 +14749,7 @@ func _computeYMD_HMS(tls *libc.TLS, p uintptr) { func _clearYMD_HMS_TZ(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 } /* @@ -14797,9 +14850,9 @@ func _toLocaltime(tls *libc.TLS, p uintptr, pCtx uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FisError = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 1, 0x2) return SQLITE_OK } @@ -14847,13 +14900,13 @@ var _aXformType = [6]struct { FnName: uint8(5), FzName: [7]uint8{'m', 'o', 'n', 't', 'h'}, FrLimit: float32(176546), - FrXform: float32(2.592e+06), + FrXform: float32(libc.Float64FromFloat64(30) * libc.Float64FromFloat64(86400)), }, 5: { FnName: uint8(4), FzName: [7]uint8{'y', 'e', 'a', 'r'}, FrLimit: float32(14713), - FrXform: float32(3.1536e+07), + FrXform: float32(libc.Float64FromFloat64(365) * libc.Float64FromFloat64(86400)), }, } @@ -14867,15 +14920,15 @@ var _aXformType = [6]struct { func _autoAdjustDate(tls *libc.TLS, p uintptr) { var r float64 _ = r - if !((*TDateTime)(unsafe.Pointer(p)).FrawS != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + if !(int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } else { if (*TDateTime)(unsafe.Pointer(p)).Fs >= float64(int64(-libc.Int32FromInt32(21086676))*libc.Int64FromInt32(10000)) && (*TDateTime)(unsafe.Pointer(p)).Fs <= float64(libc.Int64FromInt32(25340230)*libc.Int64FromInt32(10000)+libc.Int64FromInt32(799)) { r = (*TDateTime)(unsafe.Pointer(p)).Fs*float64(1000) + float64(2.1086676e+14) _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } } @@ -14892,14 +14945,20 @@ func _autoAdjustDate(tls *libc.TLS, p uintptr) { // ** NNN.NNNN seconds // ** NNN months // ** NNN years +// ** +/-YYYY-MM-DD HH:MM:SS.SSS +// ** ceiling +// ** floor // ** start of month // ** start of year // ** start of week // ** start of day // ** weekday N // ** unixepoch +// ** auto // ** localtime // ** utc +// ** subsec +// ** subsecond // ** // ** Return 0 on success and 1 if there is any kind of error. If the error // ** is in a system call (i.e. localtime()), then an error message is written @@ -14910,12 +14969,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, bp := tls.Alloc(160) defer tls.Free(160) var Z, day Tsqlite3_int64 - var cnt, i, rc, x, y, v12, v2, v5, v7, v9 int32 - var iErr, iGuess, iOrigJD, v1 Ti64 - var rRounder, v10 float64 + var cnt, i, rc, x, y, v1, v10, v13, v3, v6, v8 int32 + var iErr, iGuess, iOrigJD, v2 Ti64 + var rRounder, v11 float64 var z0 uint8 var z2 uintptr - var v3, v6 bool + var v4, v7 bool var _ /* D at bp+64 */ int32 var _ /* M at bp+60 */ int32 var _ /* Y at bp+56 */ int32 @@ -14924,7 +14983,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, var _ /* new at bp+8 */ TDateTime var _ /* r at bp+0 */ float64 var _ /* tx at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v12, v2, v3, v5, v6, v7, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v11, v13, v2, v3, v4, v6, v7, v8 rc = int32(1) switch int32(_sqlite3UpperToLower[*(*uint8)(unsafe.Pointer(z))]) { case int32('a'): @@ -14941,6 +15000,33 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _autoAdjustDate(tls, p) rc = 0 } + case int32('c'): + /* + ** ceiling + ** + ** Resolve day-of-month overflow by rolling forward into the next + ** month. As this is the default action, this modifier is really + ** a no-op that is only included for symmetry. See "floor". + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1235) == 0 { + _computeJD(tls, p) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } + case int32('f'): + /* + ** floor + ** + ** Resolve day-of-month overflow by rolling back to the end of the + ** previous month. + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1243) == 0 { + _computeJD(tls, p) + *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64(int32((*TDateTime)(unsafe.Pointer(p)).FnFloor) * int32(86400000)) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + } case int32('j'): /* ** julianday @@ -14950,13 +15036,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** value in the allowed range of julian day numbers understood by ** SQLite (0..5373484.5) then the result will be NULL. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1235) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1249) == 0 { if idx > int32(1) { return int32(1) } /* IMP: R-31176-64601 */ - if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { rc = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } case int32('l'): @@ -14965,8 +15051,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Assuming the current time value is UTC (a.k.a. GMT), shift it to ** show local time. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1245) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - rc = _toLocaltime(tls, p, pCtx) + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1259) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x10>>4)) != 0 { + v1 = SQLITE_OK + } else { + v1 = _toLocaltime(tls, p, pCtx) + } + rc = v1 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 4, 0x10) } case int32('u'): /* @@ -14975,7 +15068,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Treat the current value of p->s as the number of ** seconds since 1970. Convert to a real julian day number. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1255) == 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1269) == 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { if idx > int32(1) { return int32(1) } /* IMP: R-49255-55373 */ @@ -14984,17 +15077,17 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(*(*float64)(unsafe.Pointer(bp)) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) rc = 0 } } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1265) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - if int32((*TDateTime)(unsafe.Pointer(p)).FtzSet) == 0 { /* Guess at the corresponding utc time */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1279) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x8>>3)) == 0 { /* Guess at the corresponding utc time */ cnt = 0 /* Guess is off by this much */ _computeJD(tls, p) - v1 = (*TDateTime)(unsafe.Pointer(p)).FiJD - iOrigJD = v1 - iGuess = v1 + v2 = (*TDateTime)(unsafe.Pointer(p)).FiJD + iOrigJD = v2 + iGuess = v2 iErr = 0 for { libc.Xmemset(tls, bp+8, 0, uint32(48)) @@ -15007,21 +15100,22 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, bp+8) iErr = (*(*TDateTime)(unsafe.Pointer(bp + 8))).FiJD - iOrigJD - goto _4 - _4: + goto _5 + _5: ; - if v3 = iErr != 0; v3 { - v2 = cnt + if v4 = iErr != 0; v4 { + v3 = cnt cnt++ } - if !(v3 && v2 < int32(3)) { + if !(v4 && v3 < int32(3)) { break } } libc.Xmemset(tls, p, 0, uint32(48)) (*TDateTime)(unsafe.Pointer(p)).FiJD = iGuess (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FtzSet = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) } rc = SQLITE_OK } @@ -15034,13 +15128,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** weekday N where 0==Sunday, 1==Monday, and so forth. If the ** date is already on the appropriate weekday, this is a no-op. */ - if v6 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1269, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v6 { - v5 = int32(*(*float64)(unsafe.Pointer(bp))) - n = v5 + if v7 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1283, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v7 { + v6 = int32(*(*float64)(unsafe.Pointer(bp))) + n = v6 } - if v6 && float64(v5) == *(*float64)(unsafe.Pointer(bp)) { + if v7 && float64(v6) == *(*float64)(unsafe.Pointer(bp)) { _computeYMD_HMS(tls, p) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) _computeJD(tls, p) Z = ((*TDateTime)(unsafe.Pointer(p)).FiJD + int64(129600000)) / int64(86400000) % int64(7) @@ -15064,9 +15158,9 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Show subsecond precision in the output of datetime() and ** unixepoch() and strftime('%s'). */ - if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1278, int32(9)) != 0 { + if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1292, int32(9)) != 0 { if Xsqlite3_stricmp(tls, z, __ccgo_ts+1190) == 0 || Xsqlite3_stricmp(tls, z, __ccgo_ts+1197) == 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) rc = 0 } break @@ -15077,23 +15171,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z += uintptr(9) _computeYMD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) - v7 = libc.Int32FromInt32(0) - (*TDateTime)(unsafe.Pointer(p)).Fm = v7 - (*TDateTime)(unsafe.Pointer(p)).Fh = v7 + v8 = libc.Int32FromInt32(0) + (*TDateTime)(unsafe.Pointer(p)).Fm = v8 + (*TDateTime)(unsafe.Pointer(p)).Fh = v8 (*TDateTime)(unsafe.Pointer(p)).Fs = float64(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1288) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1302) == 0 { (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1294) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1308) == 0 { (*TDateTime)(unsafe.Pointer(p)).FM = int32(1) (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1299) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1313) == 0 { rc = 0 } } @@ -15135,15 +15229,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } if int32(*(*uint8)(unsafe.Pointer(z + uintptr(n)))) == int32('-') { - if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1303, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1317, libc.VaList(bp+136, bp+56)) == int32(1) { break } - if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1307, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1321, libc.VaList(bp+136, bp+56)) == int32(1) { break } } - goto _8 - _8: + goto _9 + _9: ; n++ } @@ -15160,12 +15254,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } /* Must start with +/- */ if n == int32(5) { - if _getDigits(tls, z+1, __ccgo_ts+1311, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1325, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } } else { _ = libc.Int32FromInt32(0) - if _getDigits(tls, z+1, __ccgo_ts+1323, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1337, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } z++ @@ -15187,13 +15281,14 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, *(*int32)(unsafe.Pointer(p + 12)) += *(*int32)(unsafe.Pointer(bp + 60)) } if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v9 + x = v10 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) _computeJD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) @@ -15237,7 +15332,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z++ } n = _sqlite3Strlen30(tls, z) - if n > int32(10) || n < int32(3) { + if n < int32(3) || n > int32(10) { break } if int32(_sqlite3UpperToLower[*(*uint8)(unsafe.Pointer(z + uintptr(n-int32(1))))]) == int32('s') { @@ -15246,11 +15341,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeJD(tls, p) _ = libc.Int32FromInt32(0) if *(*float64)(unsafe.Pointer(bp)) < libc.Float64FromInt32(0) { - v10 = -libc.Float64FromFloat64(0.5) + v11 = -libc.Float64FromFloat64(0.5) } else { - v10 = +libc.Float64FromFloat64(0.5) + v11 = +libc.Float64FromFloat64(0.5) } - rRounder = v10 + rRounder = v11 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) i = 0 for { if !(i < int32(libc.Uint32FromInt64(96)/libc.Uint32FromInt64(16))) { @@ -15263,20 +15359,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 12)) += int32(*(*float64)(unsafe.Pointer(bp))) if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v12 + x = v13 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) case int32(5): /* Special processing to add years */ y = int32(*(*float64)(unsafe.Pointer(bp))) _ = libc.Int32FromInt32(0) _computeYMD_HMS(tls, p) + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(p + 8)) += y + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) break @@ -15286,8 +15385,8 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, rc = 0 break } - goto _11 - _11: + goto _12 + _12: ; i++ } @@ -15346,7 +15445,7 @@ func _isDate(tls *libc.TLS, context uintptr, argc int32, argv uintptr, p uintptr i++ } _computeJD(tls, p) - if (*TDateTime)(unsafe.Pointer(p)).FisError != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x2>>1)) != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { return int32(1) } if argc == int32(1) && (*TDateTime)(unsafe.Pointer(p)).FvalidYMD != 0 && (*TDateTime)(unsafe.Pointer(p)).FD > int32(28) { @@ -15394,7 +15493,7 @@ func _unixepochFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _ /* x at bp+0 */ TDateTime if _isDate(tls, context, argc, argv, bp) == 0 { _computeJD(tls, bp) - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { Xsqlite3_result_double(tls, context, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000)) } else { Xsqlite3_result_int64(tls, context, (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/int64(1000)-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000)) @@ -15439,7 +15538,7 @@ func _datetimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(15)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(16)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(17)] = uint8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(18)] = uint8(int32('0') + s/int32(10000)%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(19)] = uint8(int32('0') + s/int32(1000)%int32(10)) @@ -15487,7 +15586,7 @@ func _timeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(3)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(4)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(5)] = uint8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(6)] = uint8(int32('0') + s/int32(10000)%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(7)] = uint8(int32('0') + s/int32(1000)%int32(10)) @@ -15548,6 +15647,62 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } +// C documentation +// +// /* +// ** Compute the number of days after the most recent January 1. +// ** +// ** In other words, compute the zero-based day number for the +// ** current year: +// ** +// ** Jan01 = 0, Jan02 = 1, ..., Jan31 = 30, Feb01 = 31, ... +// ** Dec31 = 364 or 365. +// */ +func _daysAfterJan01(tls *libc.TLS, pDate uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* jan01 at bp+0 */ TDateTime + *(*TDateTime)(unsafe.Pointer(bp)) = *(*TDateTime)(unsafe.Pointer(pDate)) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + (*(*TDateTime)(unsafe.Pointer(bp))).FvalidJD = uint8(0) + (*(*TDateTime)(unsafe.Pointer(bp))).FM = int32(1) + (*(*TDateTime)(unsafe.Pointer(bp))).FD = int32(1) + _computeJD(tls, bp) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD - (*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Monday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Monday, 1=Tuesday, 2=Wednesday, ..., 6=Sunday. +// */ +func _daysAfterMonday(tls *libc.TLS, pDate uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(43200000))/libc.Int64FromInt32(86400000)) % int32(7) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Sunday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Sunday, 1=Monday, 2=Tues, ..., 6=Saturday +// */ +func _daysAfterSunday(tls *libc.TLS, pDate uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)) % int32(7) +} + // C documentation // // /* @@ -15555,33 +15710,48 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { // ** // ** Return a string described by FORMAT. Conversions as follows: // ** -// ** %d day of month +// ** %d day of month 01-31 +// ** %e day of month 1-31 // ** %f ** fractional seconds SS.SSS +// ** %F ISO date. YYYY-MM-DD +// ** %G ISO year corresponding to %V 0000-9999. +// ** %g 2-digit ISO year corresponding to %V 00-99 // ** %H hour 00-24 -// ** %j day of year 000-366 +// ** %k hour 0-24 (leading zero converted to space) +// ** %I hour 01-12 +// ** %j day of year 001-366 // ** %J ** julian day number +// ** %l hour 1-12 (leading zero converted to space) // ** %m month 01-12 // ** %M minute 00-59 +// ** %p "am" or "pm" +// ** %P "AM" or "PM" +// ** %R time as HH:MM // ** %s seconds since 1970-01-01 // ** %S seconds 00-59 -// ** %w day of week 0-6 Sunday==0 -// ** %W week of year 00-53 +// ** %T time as HH:MM:SS +// ** %u day of week 1-7 Monday==1, Sunday==7 +// ** %w day of week 0-6 Sunday==0, Monday==1 +// ** %U week of year 00-53 (First Sunday is start of week 01) +// ** %V week of year 01-53 (First week containing Thursday is week 01) +// ** %W week of year 00-53 (First Monday is start of week 01) // ** %Y year 0000-9999 // ** %% % // */ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { - bp := tls.Alloc(160) - defer tls.Free(160) + bp := tls.Alloc(208) + defer tls.Free(208) var c, cf uint8 var db, zFmt, v3, v4, v5, v6, v7 uintptr - var h, nDay, wd int32 + var h int32 var i, j, v2 Tsize_t var iS Ti64 var s float64 var _ /* sRes at bp+48 */ Tsqlite3_str var _ /* x at bp+0 */ TDateTime + var _ /* y at bp+120 */ TDateTime var _ /* y at bp+72 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, nDay, s, wd, zFmt, v2, v3, v4, v5, v6, v7 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, s, zFmt, v2, v3, v4, v5, v6, v7 if argc == 0 { return } @@ -15614,28 +15784,42 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { fallthrough case int32('e'): if int32(cf) == int32('d') { - v3 = __ccgo_ts + 1335 + v3 = __ccgo_ts + 1349 } else { - v3 = __ccgo_ts + 1340 + v3 = __ccgo_ts + 1354 } - Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+128, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) - case int32('f'): + Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('f'): /* Fractional seconds. (Non-standard) */ s = (*(*TDateTime)(unsafe.Pointer(bp))).Fs if s > float64(59.999) { s = float64(59.999) } - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1344, libc.VaList(bp+128, s)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+176, s)) case int32('F'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+128, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1365, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('G'): /* Fall thru */ + fallthrough + case int32('g'): + *(*TDateTime)(unsafe.Pointer(bp + 72)) = *(*TDateTime)(unsafe.Pointer(bp)) + _ = libc.Int32FromInt32(0) + /* Move y so that it is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 72))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 72))).FvalidYMD = uint8(0) + _computeYMD(tls, bp+72) + if int32(cf) == int32('g') { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp + 72))).FY%int32(100))) + } else { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1380, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp + 72))).FY)) + } case int32('H'): fallthrough case int32('k'): if int32(cf) == int32('H') { - v4 = __ccgo_ts + 1335 + v4 = __ccgo_ts + 1349 } else { - v4 = __ccgo_ts + 1340 + v4 = __ccgo_ts + 1354 } - Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+128, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) + Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) case int32('I'): /* Fall thru */ fallthrough case int32('l'): @@ -15647,73 +15831,72 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { h = int32(12) } if int32(cf) == int32('I') { - v5 = __ccgo_ts + 1335 + v5 = __ccgo_ts + 1349 } else { - v5 = __ccgo_ts + 1340 + v5 = __ccgo_ts + 1354 } - Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+128, h)) - case int32('W'): /* Fall thru */ - fallthrough - case int32('j'): /* Number of days since 1st day of year */ - *(*TDateTime)(unsafe.Pointer(bp + 72)) = *(*TDateTime)(unsafe.Pointer(bp)) - (*(*TDateTime)(unsafe.Pointer(bp + 72))).FvalidJD = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp + 72))).FM = int32(1) - (*(*TDateTime)(unsafe.Pointer(bp + 72))).FD = int32(1) - _computeJD(tls, bp+72) - nDay = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD - (*(*TDateTime)(unsafe.Pointer(bp + 72))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) - if int32(cf) == int32('W') { /* 0=Monday, 1=Tuesday, ... 6=Sunday */ - wd = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000) % libc.Int64FromInt32(7)) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1335, libc.VaList(bp+128, (nDay+int32(7)-wd)/int32(7))) - } else { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1366, libc.VaList(bp+128, nDay+int32(1))) - } - case int32('J'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1371, libc.VaList(bp+128, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) + Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+176, h)) + case int32('j'): /* Day of year. Jan01==1, Jan02==2, and so forth */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1385, libc.VaList(bp+176, _daysAfterJan01(tls, bp)+int32(1))) + case int32('J'): /* Julian day number. (Non-standard) */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1390, libc.VaList(bp+176, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) case int32('m'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1335, libc.VaList(bp+128, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) case int32('M'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1335, libc.VaList(bp+128, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('p'): /* Fall thru */ fallthrough case int32('P'): if (*(*TDateTime)(unsafe.Pointer(bp))).Fh >= int32(12) { if int32(cf) == int32('p') { - v6 = __ccgo_ts + 1377 + v6 = __ccgo_ts + 1396 } else { - v6 = __ccgo_ts + 1380 + v6 = __ccgo_ts + 1399 } Xsqlite3_str_append(tls, bp+48, v6, int32(2)) } else { if int32(cf) == int32('p') { - v7 = __ccgo_ts + 1383 + v7 = __ccgo_ts + 1402 } else { - v7 = __ccgo_ts + 1386 + v7 = __ccgo_ts + 1405 } Xsqlite3_str_append(tls, bp+48, v7, int32(2)) } case int32('R'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1389, libc.VaList(bp+128, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1408, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('s'): - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1399, libc.VaList(bp+128, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1418, libc.VaList(bp+176, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) } else { iS = (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/libc.Int64FromInt32(1000) - libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1404, libc.VaList(bp+128, iS)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1423, libc.VaList(bp+176, iS)) } case int32('S'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1335, libc.VaList(bp+128, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+176, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) case int32('T'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1409, libc.VaList(bp+128, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) - case int32('u'): /* Fall thru */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1428, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + case int32('u'): /* Day of week. 1 to 7. Monday==1, Sunday==7 */ fallthrough - case int32('w'): - c = uint8(int32(uint8(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)%libc.Int64FromInt32(7))) + int32('0')) + case int32('w'): /* Day of week. 0 to 6. Sunday==0, Monday==1 */ + c = uint8(int32(uint8(_daysAfterSunday(tls, bp))) + int32('0')) if int32(c) == int32('0') && int32(cf) == int32('u') { c = uint8('7') } Xsqlite3_str_appendchar(tls, bp+48, int32(1), c) + case int32('U'): /* Week num. 00-53. First Sun of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+176, (_daysAfterJan01(tls, bp)-_daysAfterSunday(tls, bp)+int32(7))/int32(7))) + case int32('V'): /* Week num. 01-53. First week with a Thur is week 01 */ + *(*TDateTime)(unsafe.Pointer(bp + 120)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Adjust y so that is the Thursday in the same week as x */ + _ = libc.Int32FromInt32(0) + (*(*TDateTime)(unsafe.Pointer(bp + 120))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 120))).FvalidYMD = uint8(0) + _computeYMD(tls, bp+120) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+176, _daysAfterJan01(tls, bp+120)/int32(7)+int32(1))) + case int32('W'): /* Week num. 00-53. First Mon of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+176, (_daysAfterJan01(tls, bp)-_daysAfterMonday(tls, bp)+int32(7))/int32(7))) case int32('Y'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1424, libc.VaList(bp+128, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1380, libc.VaList(bp+176, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) case int32('%'): Xsqlite3_str_appendchar(tls, bp+48, int32(1), uint8('%')) default: @@ -15866,12 +16049,10 @@ func _timediffFunc(tls *libc.TLS, context uintptr, NotUsed1 int32, argv uintptr) p2 = bp *(*Tsqlite3_int64)(unsafe.Pointer(p2)) = Tsqlite3_int64(uint64(*(*Tsqlite3_int64)(unsafe.Pointer(p2))) + libc.Uint64FromInt32(1486995408)*libc.Uint64FromInt32(100000)) } - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidYMD = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidHMS = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidTZ = uint8(0) + _clearYMD_HMS_TZ(tls, bp) _computeYMD_HMS(tls, bp) _sqlite3StrAccumInit(tls, bp+96, uintptr(0), uintptr(0), 0, int32(100)) - Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1429, libc.VaList(bp+128, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) + Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1443, libc.VaList(bp+128, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) _sqlite3ResultStrAccum(tls, context, bp+96) } @@ -15904,55 +16085,55 @@ var _aDateTimeFuncs = [10]TFuncDef{ FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1235, + FzName: __ccgo_ts + 1249, }, 1: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1255, + FzName: __ccgo_ts + 1269, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1463, + FzName: __ccgo_ts + 1477, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1468, + FzName: __ccgo_ts + 1482, }, 4: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1473, + FzName: __ccgo_ts + 1487, }, 5: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1482, + FzName: __ccgo_ts + 1496, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1491, + FzName: __ccgo_ts + 1505, }, 7: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1500, + FzName: __ccgo_ts + 1514, }, 8: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1513, + FzName: __ccgo_ts + 1527, }, 9: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1531, + FzName: __ccgo_ts + 1545, }, } @@ -16634,7 +16815,7 @@ func _sqlite3MemMalloc(tls *libc.TLS, nByte int32) (r uintptr) { *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1544, libc.VaList(bp+8, nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1558, libc.VaList(bp+8, nByte)) } return p } @@ -16699,7 +16880,7 @@ func _sqlite3MemRealloc(tls *libc.TLS, pPrior uintptr, nByte int32) (r uintptr) *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1582, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1596, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) } return p } @@ -18118,7 +18299,7 @@ func _sqlite3OomFault(tls *libc.TLS, db uintptr) (r uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++ (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = uint16(0) if (*Tsqlite3)(unsafe.Pointer(db)).FpParse != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1632, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) pParse = (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).FpOuterParse for { @@ -18545,7 +18726,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li v3 = int32(*(*uint8)(unsafe.Pointer(v4))) c = v3 if v3 == 0 { - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1632, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1646, int32(1)) break } /* Find out what flags are present */ @@ -18962,9 +19143,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial != 0 { if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial) == int32(2) { if flag_zeropad != 0 { - v57 = __ccgo_ts + 1634 + v57 = __ccgo_ts + 1648 } else { - v57 = __ccgo_ts + 1639 + v57 = __ccgo_ts + 1653 } bufpt = v57 length = _sqlite3Strlen30(tls, bufpt) @@ -18975,7 +19156,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP = int32(1000) (*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fn = int32(1) } else { - libc.Xmemcpy(tls, bp, __ccgo_ts+1643, uint32(5)) + libc.Xmemcpy(tls, bp, __ccgo_ts+1657, uint32(5)) bufpt = bp if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fsign) == int32('-') { /* no-op */ @@ -18997,14 +19178,13 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li prefix = flag_prefix } exp = (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP - int32(1) - if int32(xtype) == int32(etGENERIC) && precision > 0 { - precision-- - } /* ** If the field type is etGENERIC, then convert to either etEXP ** or etFLOAT, as appropriate. */ if int32(xtype) == int32(etGENERIC) { + _ = libc.Int32FromInt32(0) + precision-- flag_rtz = libc.BoolUint8(!(flag_alternateform != 0)) if exp < -int32(4) || exp > precision { xtype = uint8(etEXP) @@ -19311,7 +19491,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li bufpt = libc.VaUintptr(&ap) } if bufpt == uintptr(0) { - bufpt = __ccgo_ts + 1648 + bufpt = __ccgo_ts + 1662 } else { if int32(xtype) == int32(etDYNSTRING) { if (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnChar == uint32(0) && (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FmxAlloc != 0 && width == 0 && precision < 0 && int32((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FaccError) == 0 { @@ -19365,6 +19545,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } else { length = int32(0x7fffffff) & int32(libc.Xstrlen(tls, bufpt)) } + goto adjust_width_for_utf8 adjust_width_for_utf8: ; if flag_altform2 != 0 && width > 0 { @@ -19399,9 +19580,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li isnull = libc.BoolInt32(escarg == uintptr(0)) if isnull != 0 { if int32(xtype) == int32(etSQLESCAPE2) { - v98 = __ccgo_ts + 1649 + v98 = __ccgo_ts + 1663 } else { - v98 = __ccgo_ts + 1654 + v98 = __ccgo_ts + 1668 } escarg = v98 } @@ -19521,7 +19702,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*TSrcItem)(unsafe.Pointer(pItem)).FzName != 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1661, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1675, int32(1)) } Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzName) } else { @@ -19529,11 +19710,16 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzAlias) } else { pSel = (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect - _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* Because of tag-20240424-1 */ if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_NestedFrom) != 0 { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1663, libc.VaList(bp+120, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1677, libc.VaList(bp+120, (*TSelect)(unsafe.Pointer(pSel)).FselId)) } else { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1673, libc.VaList(bp+120, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_MultiValue) != 0 { + _ = libc.Int32FromInt32(0) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1687, libc.VaList(bp+120, *(*Tu32)(unsafe.Pointer(pItem + 64)))) + } else { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1708, libc.VaList(bp+120, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + } } } } @@ -19822,7 +20008,7 @@ func _sqlite3ResultStrAccum(tls *libc.TLS, pCtx uintptr, p uintptr) { if int32((*TStrAccum)(unsafe.Pointer(p)).FprintfFlags)&int32(SQLITE_PRINTF_MALLOCED) != 0 { Xsqlite3_result_text(tls, pCtx, (*TStrAccum)(unsafe.Pointer(p)).FzText, int32((*TStrAccum)(unsafe.Pointer(p)).FnChar), __ccgo_fp(_sqlite3OomClear)) } else { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1648, 0, libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1662, 0, libc.UintptrFromInt32(0)) Xsqlite3_str_reset(tls, p) } } @@ -21137,6 +21323,7 @@ func _sqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc Tu8) (r in (*TMem)(unsafe.Pointer(pMem)).Fz = zOut (*TMem)(unsafe.Pointer(pMem)).FzMalloc = (*TMem)(unsafe.Pointer(pMem)).Fz (*TMem)(unsafe.Pointer(pMem)).FszMalloc = _sqlite3DbMallocSize(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).Fz) + goto translate_out translate_out: ; return SQLITE_OK @@ -21762,6 +21949,62 @@ func _sqlite3DequoteExpr(tls *libc.TLS, p uintptr) { _sqlite3Dequote(tls, *(*uintptr)(unsafe.Pointer(p + 8))) } +// C documentation +// +// /* +// ** Expression p is a QNUMBER (quoted number). Dequote the value in p->u.zToken +// ** and set the type to INTEGER or FLOAT. "Quoted" integers or floats are those +// ** that contain '_' characters that must be removed before further processing. +// */ +func _sqlite3DequoteNumber(tls *libc.TLS, pParse uintptr, p uintptr) { + bp := tls.Alloc(32) + defer tls.Free(32) + var bHex int32 + var pIn, pOut, v1, v3 uintptr + var _ /* iValue at bp+0 */ int32 + _, _, _, _, _ = bHex, pIn, pOut, v1, v3 + _ = libc.Int32FromInt32(0) + if p != 0 { + pIn = *(*uintptr)(unsafe.Pointer(p + 8)) + pOut = *(*uintptr)(unsafe.Pointer(p + 8)) + bHex = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(pIn + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(pIn + 1))) == int32('X'))) + _ = libc.Int32FromInt32(0) + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + for { + if int32(*(*uint8)(unsafe.Pointer(pIn))) != int32('_') { + v3 = pOut + pOut++ + *(*uint8)(unsafe.Pointer(v3)) = *(*uint8)(unsafe.Pointer(pIn)) + if int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('E') || int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('.') { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_FLOAT) + } + } else { + if bHex == 0 && (!(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1))))])&libc.Int32FromInt32(0x04) != 0) || !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + 1))])&libc.Int32FromInt32(0x04) != 0)) || bHex == int32(1) && (!(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1))))])&libc.Int32FromInt32(0x08) != 0) || !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + 1))])&libc.Int32FromInt32(0x08) != 0)) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1722, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(p + 8)))) + } + } + goto _2 + _2: + ; + v1 = pIn + pIn++ + if !(*(*uint8)(unsafe.Pointer(v1)) != 0) { + break + } + } + if bHex != 0 { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + } + /* tag-20240227-a: If after dequoting, the number is an integer that + ** fits in 32 bits, then it must be converted into EP_IntValue. Other + ** parts of the code expect this. See also tag-20240227-b. */ + if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_INTEGER) && _sqlite3GetInt32(tls, *(*uintptr)(unsafe.Pointer(p + 8)), bp) != 0 { + *(*int32)(unsafe.Pointer(p + 8)) = *(*int32)(unsafe.Pointer(bp)) + *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(EP_IntValue) + } + } +} + // C documentation // // /* @@ -22123,6 +22366,7 @@ func _sqlite3AtoF(tls *libc.TLS, z uintptr, pResult uintptr, length int32, enc T for z < zEnd && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z))])&int32(0x01) != 0 { z += uintptr(incr) } + goto do_atof_calc do_atof_calc: ; /* Zero is a special case */ @@ -22230,6 +22474,7 @@ do_atof_calc: *(*float64)(unsafe.Pointer(pResult)) = -*(*float64)(unsafe.Pointer(pResult)) } _ = libc.Int32FromInt32(0) + goto atof_return atof_return: ; /* return true if number and no extra non-whitespace characters after */ @@ -22314,7 +22559,7 @@ func _compare2pow63(tls *libc.TLS, zNum uintptr, incr int32) (r int32) { _, _, _ = c, i, pow63 c = 0 /* 012345678901234567 */ - pow63 = __ccgo_ts + 1687 + pow63 = __ccgo_ts + 1747 i = 0 for { if !(c == 0 && i < int32(18)) { @@ -22546,7 +22791,7 @@ func _sqlite3DecOrHexToI64(tls *libc.TLS, z uintptr, pOut uintptr) (r int32) { } return 0 } else { - n = int32(libc.Uint32FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1706)) + n = int32(libc.Uint32FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1766)) if *(*uint8)(unsafe.Pointer(z + uintptr(n))) != 0 { n++ } @@ -22704,7 +22949,7 @@ func _sqlite3FpDecode(tls *libc.TLS, p uintptr, _r float64, iRound int32, mxRoun (*TFpDecode)(unsafe.Pointer(p)).Fsign = uint8('+') (*TFpDecode)(unsafe.Pointer(p)).Fn = int32(1) (*TFpDecode)(unsafe.Pointer(p)).FiDP = int32(1) - (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1722 + (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1782 return } else { (*TFpDecode)(unsafe.Pointer(p)).Fsign = uint8('+') @@ -23265,7 +23510,7 @@ func _sqlite3HexToBlob(tls *libc.TLS, db uintptr, z uintptr, n int32) (r uintptr func _logBadConnection(tls *libc.TLS, zType uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1724, libc.VaList(bp+8, zType)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1784, libc.VaList(bp+8, zType)) } // C documentation @@ -23288,13 +23533,13 @@ func _sqlite3SafetyCheckOk(tls *libc.TLS, db uintptr) (r int32) { var eOpenState Tu8 _ = eOpenState if db == uintptr(0) { - _logBadConnection(tls, __ccgo_ts+1649) + _logBadConnection(tls, __ccgo_ts+1663) return 0 } eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_OPEN) { if _sqlite3SafetyCheckSickOrOk(tls, db) != 0 { - _logBadConnection(tls, __ccgo_ts+1769) + _logBadConnection(tls, __ccgo_ts+1829) } return 0 } else { @@ -23308,7 +23553,7 @@ func _sqlite3SafetyCheckSickOrOk(tls *libc.TLS, db uintptr) (r int32) { _ = eOpenState eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_SICK) && int32(eOpenState) != int32(SQLITE_STATE_OPEN) && int32(eOpenState) != int32(SQLITE_STATE_BUSY) { - _logBadConnection(tls, __ccgo_ts+1778) + _logBadConnection(tls, __ccgo_ts+1838) return 0 } else { return int32(1) @@ -23967,196 +24212,196 @@ func _sqlite3OpcodeName(tls *libc.TLS, i int32) (r uintptr) { } var _azName = [190]uintptr{ - 0: __ccgo_ts + 1786, - 1: __ccgo_ts + 1796, - 2: __ccgo_ts + 1807, - 3: __ccgo_ts + 1819, - 4: __ccgo_ts + 1830, - 5: __ccgo_ts + 1842, - 6: __ccgo_ts + 1849, - 7: __ccgo_ts + 1857, - 8: __ccgo_ts + 1865, - 9: __ccgo_ts + 1870, - 10: __ccgo_ts + 1875, - 11: __ccgo_ts + 1881, - 12: __ccgo_ts + 1895, - 13: __ccgo_ts + 1901, - 14: __ccgo_ts + 1911, - 15: __ccgo_ts + 1916, - 16: __ccgo_ts + 1921, - 17: __ccgo_ts + 1924, - 18: __ccgo_ts + 1930, - 19: __ccgo_ts + 1937, - 20: __ccgo_ts + 1941, - 21: __ccgo_ts + 1951, - 22: __ccgo_ts + 1958, - 23: __ccgo_ts + 1965, - 24: __ccgo_ts + 1972, - 25: __ccgo_ts + 1979, - 26: __ccgo_ts + 1989, - 27: __ccgo_ts + 1998, - 28: __ccgo_ts + 2009, - 29: __ccgo_ts + 2018, - 30: __ccgo_ts + 2024, - 31: __ccgo_ts + 2034, - 32: __ccgo_ts + 2044, - 33: __ccgo_ts + 2049, - 34: __ccgo_ts + 2059, - 35: __ccgo_ts + 2070, - 36: __ccgo_ts + 2075, - 37: __ccgo_ts + 2082, - 38: __ccgo_ts + 2093, - 39: __ccgo_ts + 2098, - 40: __ccgo_ts + 2103, - 41: __ccgo_ts + 2109, - 42: __ccgo_ts + 2115, - 43: __ccgo_ts + 2121, - 44: __ccgo_ts + 2124, - 45: __ccgo_ts + 2128, - 46: __ccgo_ts + 2134, - 47: __ccgo_ts + 2145, - 48: __ccgo_ts + 2156, - 49: __ccgo_ts + 2164, - 50: __ccgo_ts + 2173, - 51: __ccgo_ts + 2180, - 52: __ccgo_ts + 2188, - 53: __ccgo_ts + 2191, - 54: __ccgo_ts + 2194, - 55: __ccgo_ts + 2197, - 56: __ccgo_ts + 2200, - 57: __ccgo_ts + 2203, - 58: __ccgo_ts + 2206, - 59: __ccgo_ts + 2213, - 60: __ccgo_ts + 2219, - 61: __ccgo_ts + 2229, - 62: __ccgo_ts + 2242, - 63: __ccgo_ts + 2253, - 64: __ccgo_ts + 2259, - 65: __ccgo_ts + 2266, - 66: __ccgo_ts + 2275, - 67: __ccgo_ts + 2284, - 68: __ccgo_ts + 2291, - 69: __ccgo_ts + 2304, - 70: __ccgo_ts + 2315, - 71: __ccgo_ts + 2320, - 72: __ccgo_ts + 2328, - 73: __ccgo_ts + 2334, - 74: __ccgo_ts + 2341, - 75: __ccgo_ts + 2353, - 76: __ccgo_ts + 2358, - 77: __ccgo_ts + 2367, - 78: __ccgo_ts + 2372, - 79: __ccgo_ts + 2381, - 80: __ccgo_ts + 2386, - 81: __ccgo_ts + 2391, - 82: __ccgo_ts + 2397, - 83: __ccgo_ts + 2405, - 84: __ccgo_ts + 2413, - 85: __ccgo_ts + 2423, - 86: __ccgo_ts + 2431, - 87: __ccgo_ts + 2438, - 88: __ccgo_ts + 2451, - 89: __ccgo_ts + 2456, - 90: __ccgo_ts + 2468, - 91: __ccgo_ts + 2476, - 92: __ccgo_ts + 2483, - 93: __ccgo_ts + 2494, - 94: __ccgo_ts + 2501, - 95: __ccgo_ts + 2508, - 96: __ccgo_ts + 2518, - 97: __ccgo_ts + 2527, - 98: __ccgo_ts + 2538, - 99: __ccgo_ts + 2544, - 100: __ccgo_ts + 2555, - 101: __ccgo_ts + 2565, - 102: __ccgo_ts + 2575, - 103: __ccgo_ts + 2582, - 104: __ccgo_ts + 2588, - 105: __ccgo_ts + 2598, - 106: __ccgo_ts + 2609, - 107: __ccgo_ts + 2613, - 108: __ccgo_ts + 2622, - 109: __ccgo_ts + 2631, - 110: __ccgo_ts + 2638, - 111: __ccgo_ts + 2648, - 112: __ccgo_ts + 2655, - 113: __ccgo_ts + 2664, - 114: __ccgo_ts + 2674, - 115: __ccgo_ts + 2681, - 116: __ccgo_ts + 2689, - 117: __ccgo_ts + 2703, - 118: __ccgo_ts + 2711, - 119: __ccgo_ts + 2725, - 120: __ccgo_ts + 2736, - 121: __ccgo_ts + 2749, - 122: __ccgo_ts + 2760, - 123: __ccgo_ts + 2766, - 124: __ccgo_ts + 2778, - 125: __ccgo_ts + 2787, - 126: __ccgo_ts + 2795, - 127: __ccgo_ts + 2804, - 128: __ccgo_ts + 2813, - 129: __ccgo_ts + 2820, - 130: __ccgo_ts + 2828, - 131: __ccgo_ts + 2835, - 132: __ccgo_ts + 2846, - 133: __ccgo_ts + 2860, - 134: __ccgo_ts + 2871, - 135: __ccgo_ts + 2879, - 136: __ccgo_ts + 2885, - 137: __ccgo_ts + 2893, - 138: __ccgo_ts + 2901, - 139: __ccgo_ts + 2911, - 140: __ccgo_ts + 2924, - 141: __ccgo_ts + 2934, - 142: __ccgo_ts + 2947, - 143: __ccgo_ts + 2956, - 144: __ccgo_ts + 2967, - 145: __ccgo_ts + 2975, - 146: __ccgo_ts + 2981, - 147: __ccgo_ts + 2993, - 148: __ccgo_ts + 3005, - 149: __ccgo_ts + 3013, - 150: __ccgo_ts + 3025, - 151: __ccgo_ts + 3038, - 152: __ccgo_ts + 3048, - 153: __ccgo_ts + 3058, - 154: __ccgo_ts + 3063, - 155: __ccgo_ts + 3075, - 156: __ccgo_ts + 3087, - 157: __ccgo_ts + 3097, - 158: __ccgo_ts + 3103, - 159: __ccgo_ts + 3113, - 160: __ccgo_ts + 3120, - 161: __ccgo_ts + 3132, - 162: __ccgo_ts + 3143, - 163: __ccgo_ts + 3151, - 164: __ccgo_ts + 3160, - 165: __ccgo_ts + 3169, - 166: __ccgo_ts + 3178, - 167: __ccgo_ts + 3185, - 168: __ccgo_ts + 3196, - 169: __ccgo_ts + 3209, - 170: __ccgo_ts + 3219, - 171: __ccgo_ts + 3226, - 172: __ccgo_ts + 3234, - 173: __ccgo_ts + 3243, - 174: __ccgo_ts + 3249, - 175: __ccgo_ts + 3256, - 176: __ccgo_ts + 3264, - 177: __ccgo_ts + 3272, - 178: __ccgo_ts + 3280, - 179: __ccgo_ts + 3290, - 180: __ccgo_ts + 3299, - 181: __ccgo_ts + 3310, - 182: __ccgo_ts + 3321, - 183: __ccgo_ts + 3332, - 184: __ccgo_ts + 3342, - 185: __ccgo_ts + 3348, - 186: __ccgo_ts + 3359, - 187: __ccgo_ts + 3370, - 188: __ccgo_ts + 3375, - 189: __ccgo_ts + 3383, + 0: __ccgo_ts + 1846, + 1: __ccgo_ts + 1856, + 2: __ccgo_ts + 1867, + 3: __ccgo_ts + 1879, + 4: __ccgo_ts + 1890, + 5: __ccgo_ts + 1902, + 6: __ccgo_ts + 1909, + 7: __ccgo_ts + 1917, + 8: __ccgo_ts + 1925, + 9: __ccgo_ts + 1930, + 10: __ccgo_ts + 1935, + 11: __ccgo_ts + 1941, + 12: __ccgo_ts + 1955, + 13: __ccgo_ts + 1961, + 14: __ccgo_ts + 1971, + 15: __ccgo_ts + 1976, + 16: __ccgo_ts + 1981, + 17: __ccgo_ts + 1984, + 18: __ccgo_ts + 1990, + 19: __ccgo_ts + 1997, + 20: __ccgo_ts + 2001, + 21: __ccgo_ts + 2011, + 22: __ccgo_ts + 2018, + 23: __ccgo_ts + 2025, + 24: __ccgo_ts + 2032, + 25: __ccgo_ts + 2039, + 26: __ccgo_ts + 2049, + 27: __ccgo_ts + 2058, + 28: __ccgo_ts + 2069, + 29: __ccgo_ts + 2078, + 30: __ccgo_ts + 2084, + 31: __ccgo_ts + 2094, + 32: __ccgo_ts + 2104, + 33: __ccgo_ts + 2109, + 34: __ccgo_ts + 2123, + 35: __ccgo_ts + 2134, + 36: __ccgo_ts + 2139, + 37: __ccgo_ts + 2146, + 38: __ccgo_ts + 2157, + 39: __ccgo_ts + 2162, + 40: __ccgo_ts + 2167, + 41: __ccgo_ts + 2173, + 42: __ccgo_ts + 2179, + 43: __ccgo_ts + 2185, + 44: __ccgo_ts + 2188, + 45: __ccgo_ts + 2192, + 46: __ccgo_ts + 2198, + 47: __ccgo_ts + 2209, + 48: __ccgo_ts + 2220, + 49: __ccgo_ts + 2228, + 50: __ccgo_ts + 2237, + 51: __ccgo_ts + 2244, + 52: __ccgo_ts + 2252, + 53: __ccgo_ts + 2255, + 54: __ccgo_ts + 2258, + 55: __ccgo_ts + 2261, + 56: __ccgo_ts + 2264, + 57: __ccgo_ts + 2267, + 58: __ccgo_ts + 2270, + 59: __ccgo_ts + 2277, + 60: __ccgo_ts + 2283, + 61: __ccgo_ts + 2293, + 62: __ccgo_ts + 2306, + 63: __ccgo_ts + 2317, + 64: __ccgo_ts + 2323, + 65: __ccgo_ts + 2330, + 66: __ccgo_ts + 2339, + 67: __ccgo_ts + 2348, + 68: __ccgo_ts + 2355, + 69: __ccgo_ts + 2368, + 70: __ccgo_ts + 2379, + 71: __ccgo_ts + 2384, + 72: __ccgo_ts + 2392, + 73: __ccgo_ts + 2398, + 74: __ccgo_ts + 2405, + 75: __ccgo_ts + 2417, + 76: __ccgo_ts + 2422, + 77: __ccgo_ts + 2431, + 78: __ccgo_ts + 2436, + 79: __ccgo_ts + 2445, + 80: __ccgo_ts + 2450, + 81: __ccgo_ts + 2455, + 82: __ccgo_ts + 2461, + 83: __ccgo_ts + 2469, + 84: __ccgo_ts + 2477, + 85: __ccgo_ts + 2487, + 86: __ccgo_ts + 2495, + 87: __ccgo_ts + 2502, + 88: __ccgo_ts + 2515, + 89: __ccgo_ts + 2520, + 90: __ccgo_ts + 2532, + 91: __ccgo_ts + 2540, + 92: __ccgo_ts + 2547, + 93: __ccgo_ts + 2558, + 94: __ccgo_ts + 2565, + 95: __ccgo_ts + 2572, + 96: __ccgo_ts + 2582, + 97: __ccgo_ts + 2591, + 98: __ccgo_ts + 2602, + 99: __ccgo_ts + 2608, + 100: __ccgo_ts + 2619, + 101: __ccgo_ts + 2629, + 102: __ccgo_ts + 2639, + 103: __ccgo_ts + 2646, + 104: __ccgo_ts + 2652, + 105: __ccgo_ts + 2662, + 106: __ccgo_ts + 2673, + 107: __ccgo_ts + 2677, + 108: __ccgo_ts + 2686, + 109: __ccgo_ts + 2695, + 110: __ccgo_ts + 2702, + 111: __ccgo_ts + 2712, + 112: __ccgo_ts + 2719, + 113: __ccgo_ts + 2728, + 114: __ccgo_ts + 2738, + 115: __ccgo_ts + 2745, + 116: __ccgo_ts + 2753, + 117: __ccgo_ts + 2767, + 118: __ccgo_ts + 2775, + 119: __ccgo_ts + 2789, + 120: __ccgo_ts + 2800, + 121: __ccgo_ts + 2813, + 122: __ccgo_ts + 2824, + 123: __ccgo_ts + 2830, + 124: __ccgo_ts + 2842, + 125: __ccgo_ts + 2851, + 126: __ccgo_ts + 2859, + 127: __ccgo_ts + 2868, + 128: __ccgo_ts + 2877, + 129: __ccgo_ts + 2884, + 130: __ccgo_ts + 2892, + 131: __ccgo_ts + 2899, + 132: __ccgo_ts + 2910, + 133: __ccgo_ts + 2924, + 134: __ccgo_ts + 2935, + 135: __ccgo_ts + 2943, + 136: __ccgo_ts + 2949, + 137: __ccgo_ts + 2957, + 138: __ccgo_ts + 2965, + 139: __ccgo_ts + 2975, + 140: __ccgo_ts + 2988, + 141: __ccgo_ts + 2998, + 142: __ccgo_ts + 3011, + 143: __ccgo_ts + 3020, + 144: __ccgo_ts + 3031, + 145: __ccgo_ts + 3039, + 146: __ccgo_ts + 3045, + 147: __ccgo_ts + 3057, + 148: __ccgo_ts + 3069, + 149: __ccgo_ts + 3077, + 150: __ccgo_ts + 3089, + 151: __ccgo_ts + 3102, + 152: __ccgo_ts + 3112, + 153: __ccgo_ts + 3122, + 154: __ccgo_ts + 3127, + 155: __ccgo_ts + 3139, + 156: __ccgo_ts + 3151, + 157: __ccgo_ts + 3161, + 158: __ccgo_ts + 3167, + 159: __ccgo_ts + 3177, + 160: __ccgo_ts + 3184, + 161: __ccgo_ts + 3196, + 162: __ccgo_ts + 3207, + 163: __ccgo_ts + 3215, + 164: __ccgo_ts + 3224, + 165: __ccgo_ts + 3233, + 166: __ccgo_ts + 3242, + 167: __ccgo_ts + 3249, + 168: __ccgo_ts + 3260, + 169: __ccgo_ts + 3273, + 170: __ccgo_ts + 3283, + 171: __ccgo_ts + 3290, + 172: __ccgo_ts + 3298, + 173: __ccgo_ts + 3307, + 174: __ccgo_ts + 3313, + 175: __ccgo_ts + 3320, + 176: __ccgo_ts + 3328, + 177: __ccgo_ts + 3336, + 178: __ccgo_ts + 3344, + 179: __ccgo_ts + 3354, + 180: __ccgo_ts + 3363, + 181: __ccgo_ts + 3374, + 182: __ccgo_ts + 3385, + 183: __ccgo_ts + 3396, + 184: __ccgo_ts + 3406, + 185: __ccgo_ts + 3412, + 186: __ccgo_ts + 3423, + 187: __ccgo_ts + 3434, + 188: __ccgo_ts + 3439, + 189: __ccgo_ts + 3447, } type Tstat = struct { @@ -24920,91 +25165,91 @@ type unix_syscall = Tunix_syscall // */ var _aSyscall = [29]Tunix_syscall{ 0: { - FzName: __ccgo_ts + 3393, + FzName: __ccgo_ts + 3457, }, 1: { - FzName: __ccgo_ts + 3398, + FzName: __ccgo_ts + 3462, }, 2: { - FzName: __ccgo_ts + 3404, + FzName: __ccgo_ts + 3468, }, 3: { - FzName: __ccgo_ts + 3411, + FzName: __ccgo_ts + 3475, }, 4: { - FzName: __ccgo_ts + 3418, + FzName: __ccgo_ts + 3482, }, 5: { - FzName: __ccgo_ts + 3423, + FzName: __ccgo_ts + 3487, }, 6: { - FzName: __ccgo_ts + 3429, + FzName: __ccgo_ts + 3493, }, 7: { - FzName: __ccgo_ts + 3439, + FzName: __ccgo_ts + 3503, }, 8: { - FzName: __ccgo_ts + 3445, + FzName: __ccgo_ts + 3509, }, 9: { - FzName: __ccgo_ts + 3450, + FzName: __ccgo_ts + 3514, }, 10: { - FzName: __ccgo_ts + 3456, + FzName: __ccgo_ts + 3520, }, 11: { - FzName: __ccgo_ts + 3464, + FzName: __ccgo_ts + 3528, }, 12: { - FzName: __ccgo_ts + 3470, + FzName: __ccgo_ts + 3534, }, 13: { - FzName: __ccgo_ts + 3477, + FzName: __ccgo_ts + 3541, }, 14: { - FzName: __ccgo_ts + 3486, + FzName: __ccgo_ts + 3550, }, 15: { - FzName: __ccgo_ts + 3493, + FzName: __ccgo_ts + 3557, }, 16: { - FzName: __ccgo_ts + 3503, + FzName: __ccgo_ts + 3567, }, 17: { - FzName: __ccgo_ts + 3510, + FzName: __ccgo_ts + 3574, }, 18: { - FzName: __ccgo_ts + 3524, + FzName: __ccgo_ts + 3588, }, 19: { - FzName: __ccgo_ts + 3530, + FzName: __ccgo_ts + 3594, }, 20: { - FzName: __ccgo_ts + 3536, + FzName: __ccgo_ts + 3600, }, 21: { - FzName: __ccgo_ts + 3543, + FzName: __ccgo_ts + 3607, }, 22: { - FzName: __ccgo_ts + 3551, + FzName: __ccgo_ts + 3615, }, 23: { - FzName: __ccgo_ts + 3556, + FzName: __ccgo_ts + 3620, }, 24: { - FzName: __ccgo_ts + 3563, + FzName: __ccgo_ts + 3627, }, 25: { - FzName: __ccgo_ts + 3570, + FzName: __ccgo_ts + 3634, }, 26: { - FzName: __ccgo_ts + 3582, + FzName: __ccgo_ts + 3646, }, 27: { - FzName: __ccgo_ts + 3591, + FzName: __ccgo_ts + 3655, }, 28: { - FzName: __ccgo_ts + 3597, + FzName: __ccgo_ts + 3661, }, } @@ -25243,9 +25488,9 @@ func _robust_open(tls *libc.TLS, z uintptr, f int32, m Tmode_t) (r int32) { (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(16)].FpCurrent})))(tls, z) } (*(*func(*libc.TLS, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(1)].FpCurrent})))(tls, fd) - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3603, libc.VaList(bp+112, z, fd)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3667, libc.VaList(bp+112, z, fd)) fd = -int32(1) - if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3646, O_RDONLY, int32(m)) < 0 { + if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3710, O_RDONLY, int32(m)) < 0 { break } } @@ -25566,11 +25811,11 @@ func _unixLogErrorAtLine(tls *libc.TLS, errcode int32, zFunc uintptr, zPath uint ** equivalent to errno. Otherwise, use strerror_r(). */ /* This is a threadsafe build, but strerror_r() is not available. */ - zErr = __ccgo_ts + 1648 + zErr = __ccgo_ts + 1662 if zPath == uintptr(0) { - zPath = __ccgo_ts + 1648 + zPath = __ccgo_ts + 1662 } - Xsqlite3_log(tls, errcode, __ccgo_ts+3656, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) + Xsqlite3_log(tls, errcode, __ccgo_ts+3720, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) return errcode } @@ -25598,7 +25843,7 @@ func _robust_close(tls *libc.TLS, pFile uintptr, h int32, lineno int32) { } else { v1 = uintptr(0) } - _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(16)< uint32(1) { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3740, libc.VaList(bp+112, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3804, libc.VaList(bp+112, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } if _fileHasMoved(tls, pFile) != 0 { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3767, libc.VaList(bp+112, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3831, libc.VaList(bp+112, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } } @@ -26118,6 +26363,7 @@ func _unixLock(tls *libc.TLS, id uintptr, eFileLock int32) (r int32) { (*TunixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock) (*TunixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(eFileLock) } + goto end_lock end_lock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -26249,6 +26495,7 @@ func _posixUnlock(tls *libc.TLS, id uintptr, eFileLock int32, handleNFSUnlock in _closePendingFds(tls, pFile) } } + goto end_unlock end_unlock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -26290,7 +26537,7 @@ func _closeUnixFile(tls *libc.TLS, id uintptr) (r int32) { pFile = id _unixUnmapfile(tls, pFile) if (*TunixFile)(unsafe.Pointer(pFile)).Fh >= 0 { - _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40172)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40505)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -26917,7 +27164,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { var _ /* zDirname at bp+0 */ [513]uint8 _, _ = fd, ii fd = -int32(1) - Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3795, libc.VaList(bp+528, zFilename)) + Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3859, libc.VaList(bp+528, zFilename)) ii = int32(libc.Xstrlen(tls, bp)) for { if !(ii > 0 && int32((*(*[513]uint8)(unsafe.Pointer(bp)))[ii]) != int32('/')) { @@ -26943,7 +27190,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(41778)), __ccgo_ts+3510, bp, int32(41778)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42111)), __ccgo_ts+3574, bp, int32(42111)) } // C documentation @@ -26982,7 +27229,7 @@ func _unixSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { rc = _full_fsync(tls, (*TunixFile)(unsafe.Pointer(pFile)).Fh, isFullsync, isDataOnly) if rc != 0 { _storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))) - return _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(4)<= nSize { iWrite = nSize - int64(1) } - nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1648, int32(1)) + nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1662, int32(1)) if nWrite != int32(1) { return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(3)<= 0 { - _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42583)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42916)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -27605,7 +27852,7 @@ func _unixLockSharedMemory(tls *libc.TLS, pDbFd uintptr, pShmNode uintptr) (r in ** help detect if a -shm file truncation is legitimate or is the work ** or a rogue process. */ if rc == SQLITE_OK && _robust_ftruncate(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(3)) != 0 { - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(18)< iRegion { @@ -28204,7 +28453,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { var pNew, pOrig, pReq, zErr uintptr var v1 Tsqlite3_int64 _, _, _, _, _, _, _, _, _ = flags, h, nOrig, nReuse, pNew, pOrig, pReq, zErr, v1 - zErr = __ccgo_ts + 3551 + zErr = __ccgo_ts + 3615 h = (*TunixFile)(unsafe.Pointer(pFd)).Fh /* File descriptor open on db file */ pOrig = (*TunixFile)(unsafe.Pointer(pFd)).FpMapRegion /* Pointer to current file mapping */ nOrig = (*TunixFile)(unsafe.Pointer(pFd)).FmmapSizeActual /* Size of pOrig region in bytes */ @@ -28224,7 +28473,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { (*(*func(*libc.TLS, uintptr, Tsize_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, pReq, uint32(nOrig-nReuse)) } pNew = (*(*func(*libc.TLS, uintptr, Tsize_t, Tsize_t, int32, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(24)].FpCurrent})))(tls, pOrig, uint32(nReuse), uint32(nNew), int32(MREMAP_MAYMOVE), 0) - zErr = __ccgo_ts + 3563 + zErr = __ccgo_ts + 3627 /* The attempt to extend the existing mapping failed. Free it. */ if pNew == uintptr(-libc.Int32FromInt32(1)) || pNew == uintptr(0) { (*(*func(*libc.TLS, uintptr, Tsize_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, pOrig, uint32(nReuse)) @@ -28237,7 +28486,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { if pNew == uintptr(-libc.Int32FromInt32(1)) { pNew = uintptr(0) nNew = 0 - _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43401)) + _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43734)) /* If the mmap() above failed, assume that all subsequent mmap() calls ** will probably fail too. Fall back to using xRead/xWrite exclusively ** in this case. */ @@ -28581,11 +28830,11 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam } else { v1 = uintptr(0) } - if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3829, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { + if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3893, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { p2 = pNew + 18 *(*uint16)(unsafe.Pointer(p2)) = uint16(int32(*(*uint16)(unsafe.Pointer(p2))) | libc.Int32FromInt32(UNIXFILE_PSOW)) } - if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3834) == 0 { + if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3898) == 0 { p3 = pNew + 18 *(*uint16)(unsafe.Pointer(p3)) = uint16(int32(*(*uint16)(unsafe.Pointer(p3))) | libc.Int32FromInt32(UNIXFILE_EXCL)) } @@ -28616,7 +28865,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam ** implicit assumption here is that if fstat() fails, things are in ** such bad shape that dropping a lock or two doesn't matter much. */ - _robust_close(tls, pNew, h, int32(43909)) + _robust_close(tls, pNew, h, int32(44242)) h = -int32(1) } _unixLeaveMutex(tls) @@ -28628,7 +28877,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam if zLockFile == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3844, libc.VaList(bp+8, zFilename)) + Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3908, libc.VaList(bp+8, zFilename)) } (*TunixFile)(unsafe.Pointer(pNew)).FlockingContext = zLockFile } @@ -28636,7 +28885,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam _storeLastErrno(tls, pNew, 0) if rc != SQLITE_OK { if h >= 0 { - _robust_close(tls, pNew, h, int32(43994)) + _robust_close(tls, pNew, h, int32(44327)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -28651,10 +28900,10 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam // ** Directories to consider for temp files. // */ var _azTempDirs = [6]uintptr{ - 2: __ccgo_ts + 3852, - 3: __ccgo_ts + 3861, - 4: __ccgo_ts + 3870, - 5: __ccgo_ts + 1661, + 2: __ccgo_ts + 3916, + 3: __ccgo_ts + 3925, + 4: __ccgo_ts + 3934, + 5: __ccgo_ts + 1675, } // C documentation @@ -28663,8 +28912,8 @@ var _azTempDirs = [6]uintptr{ // ** Initialize first two members of azTempDirs[] array. // */ func _unixTempFileInit(tls *libc.TLS) { - _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3875) - _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3889) + _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3939) + _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3953) } // C documentation @@ -28727,7 +28976,7 @@ func _unixGetTempname(tls *libc.TLS, nBuf int32, zBuf uintptr) (r int32) { Xsqlite3_randomness(tls, int32(8), bp) _ = libc.Int32FromInt32(0) *(*uint8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2)))) = uint8(0) - Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3896, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) + Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3960, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) if v2 = int32(*(*uint8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2))))) != 0; !v2 { v1 = iLimit iLimit++ @@ -28900,7 +29149,7 @@ func _findCreateFileMode(tls *libc.TLS, zPath uintptr, flags int32, pMode uintpt ** filename, check for the "modeof" parameter. If present, interpret ** its value as a filename and try to copy the mode, uid and gid from ** that file. */ - z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3913) + z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3977) if z != 0 { rc = _getFileMode(tls, z, pMode, pUid, pGid) } @@ -28938,12 +29187,12 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags bp := tls.Alloc(528) defer tls.Free(528) var ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, rc, rc2 int32 - var p, pUnused, zName uintptr + var p, pReadonly, pUnused, zName uintptr var _ /* gid at bp+524 */ Tgid_t var _ /* openMode at bp+516 */ Tmode_t var _ /* uid at bp+520 */ Tuid_t var _ /* zTmpname at bp+0 */ [514]uint8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pUnused, rc, rc2, zName + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pReadonly, pUnused, rc, rc2, zName p = pFile fd = -int32(1) /* File descriptor returned by open() */ openFlags = 0 /* Flags to pass to open() */ @@ -29053,17 +29302,24 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } else { if *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) != int32(EISDIR) && isReadWrite != 0 { /* Failed to open the file for read/write access. Try read-only. */ + pReadonly = uintptr(0) flags &= ^(libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE)) openFlags &= ^(libc.Int32FromInt32(O_RDWR) | libc.Int32FromInt32(O_CREAT)) flags |= int32(SQLITE_OPEN_READONLY) openFlags |= O_RDONLY isReadonly = int32(1) - fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 516))) + pReadonly = _findReusableFd(tls, zName, flags) + if pReadonly != 0 { + fd = (*TUnixUnusedFd)(unsafe.Pointer(pReadonly)).Ffd + Xsqlite3_free(tls, pReadonly) + } else { + fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 516))) + } } } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44435)), __ccgo_ts+3393, zName, int32(44435)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44775)), __ccgo_ts+3457, zName, int32(44775)) if rc == SQLITE_OK { rc = rc2 } @@ -29115,6 +29371,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } _ = libc.Int32FromInt32(0) rc = _fillInUnixFile(tls, pVfs, fd, pFile, zPath, ctrlFlags) + goto open_finished open_finished: ; if rc != SQLITE_OK { @@ -29141,7 +29398,7 @@ func _unixDelete(tls *libc.TLS, NotUsed uintptr, zPath uintptr, dirSync int32) ( if *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) == int32(ENOENT) { rc = libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(23)< int32(SQLITE_MAX_SYMLINK) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(44686)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45026)) return } got = (*(*func(*libc.TLS, uintptr, uintptr, Tsize_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls, zIn, bp+104, libc.Uint32FromInt64(4098)-libc.Uint32FromInt32(2)) if got <= 0 || got >= libc.Int32FromInt64(4098)-libc.Int32FromInt32(2) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44691)), __ccgo_ts+3582, zIn, int32(44691)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45031)), __ccgo_ts+3646, zIn, int32(45031)) return } (*(*[4098]uint8)(unsafe.Pointer(bp + 104)))[got] = uint8(0) @@ -29345,14 +29602,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if int32(*(*uint8)(unsafe.Pointer(zPath))) != int32('/') { if (*(*func(*libc.TLS, uintptr, Tsize_t) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(3)].FpCurrent})))(tls, bp+20, libc.Uint32FromInt64(4098)-libc.Uint32FromInt32(2)) == uintptr(0) { - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44749)), __ccgo_ts+3411, zPath, int32(44749)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45089)), __ccgo_ts+3475, zPath, int32(45089)) } _appendAllPathElements(tls, bp, bp+20) } _appendAllPathElements(tls, bp, zPath) *(*uint8)(unsafe.Pointer(zOut + uintptr((*(*TDbPath)(unsafe.Pointer(bp))).FnUsed))) = uint8(0) if (*(*TDbPath)(unsafe.Pointer(bp))).Frc != 0 || (*(*TDbPath)(unsafe.Pointer(bp))).FnUsed < int32(2) { - return _sqlite3CantopenError(tls, int32(44755)) + return _sqlite3CantopenError(tls, int32(45095)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<= (libc.Uint32FromInt32(BITVEC_SZ)-libc.Uint32FromInt32(3)*libc.Uint32FromInt64(4))/libc.Uint32FromInt64(4)*libc.Uint32FromInt64(4)/libc.Uint32FromInt64(4)/libc.Uint32FromInt32(2) { @@ -31242,6 +31501,7 @@ bitvec_set_rehash: return rc } } + goto bitvec_set_end bitvec_set_end: ; (*TBitvec)(unsafe.Pointer(p)).FnSet++ @@ -31475,6 +31735,7 @@ func _sqlite3BitvecBuiltinTest(tls *libc.TLS, sz int32, aOp uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp))++ } /* Free allocated structure */ + goto bitvec_end bitvec_end: ; Xsqlite3_free(tls, pTmpSpace) @@ -32765,7 +33026,7 @@ func _sqlite3PCacheBufferSetup(tls *libc.TLS, pBuf uintptr, sz int32, n int32) { var p uintptr var v1, v2, v3, v4 int32 _, _, _, _, _ = p, v1, v2, v3, v4 - if _pcache1_g.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_pcache1_g))+52) != 0 { if pBuf == uintptr(0) { v1 = libc.Int32FromInt32(0) n = v1 @@ -33315,7 +33576,7 @@ func _pcache1Init(tls *libc.TLS, NotUsed uintptr) (r int32) { _pcache1_g.FnInitPage = 0 } _pcache1_g.Fgrp.FmxPinned = uint32(10) - _pcache1_g.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_pcache1_g))+52, int32(1)) return SQLITE_OK } @@ -36907,6 +37168,7 @@ func _pager_delsuper(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) { } _sqlite3OsClose(tls, pSuper) rc = _sqlite3OsDelete(tls, pVfs, zSuper, 0) + goto delsuper_out delsuper_out: ; Xsqlite3_free(tls, zFree) @@ -37243,6 +37505,7 @@ func _pager_playback(tls *libc.TLS, pPager uintptr, isHot int32) (r int32) { } /*NOTREACHED*/ _ = libc.Int32FromInt32(0) + goto end_playback end_playback: ; if rc == SQLITE_OK { @@ -37286,7 +37549,7 @@ end_playback: rc = _pager_delsuper(tls, pPager, zSuper) } if isHot != 0 && nPlayback != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(2)< int64(1) { _sqlite3PagerUnrefNotNull(tls, pPgOld) - return _sqlite3CorruptError(tls, int32(63973)) + return _sqlite3CorruptError(tls, int32(64313)) } p4 = pPg + 28 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | int32((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -41620,7 +41887,7 @@ func _sqlite3PagerCheckpoint(tls *libc.TLS, pPager uintptr, db uintptr, eMode in ** sqlite3_wal_checkpoint() call, but it happens very rarely. ** https://sqlite.org/forum/forumpost/fd0f19d229156939 */ - Xsqlite3_exec(tls, db, __ccgo_ts+4109, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+4173, uintptr(0), uintptr(0), uintptr(0)) } if (*TPager)(unsafe.Pointer(pPager)).FpWal != 0 { if eMode == SQLITE_CHECKPOINT_PASSIVE { @@ -43102,7 +43369,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(65899)) + return _sqlite3CorruptError(tls, int32(66239)) } goto _1 _1: @@ -43194,7 +43461,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { ** are able to understand */ version = _sqlite3Get4byte(tls, bp+8+4) if version != uint32(WAL_MAX_VERSION) { - rc = _sqlite3CantopenError(tls, int32(66031)) + rc = _sqlite3CantopenError(tls, int32(66371)) goto finished } /* Malloc a buffer to read frames into. */ @@ -43291,6 +43558,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { } Xsqlite3_free(tls, aFrame) } + goto finished finished: ; if rc == SQLITE_OK { @@ -43335,9 +43603,10 @@ finished: ** checkpointing the log file. */ if (*TWal)(unsafe.Pointer(pWal)).Fhdr.FnPage != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(1)< int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(71032)) + rc = _sqlite3CorruptError(tls, int32(71421)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } @@ -48100,7 +48380,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if key == uint32(0) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71230)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71619)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -48113,12 +48393,12 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, /* The first byte of the extra data is the MemPage.isInit byte. ** If that byte is set, it means this page is also being used ** as a btree page. */ - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71243)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71632)) goto ptrmap_exit } offset = int32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71248)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71637)) goto ptrmap_exit } _ = libc.Int32FromInt32(0) @@ -48132,6 +48412,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _sqlite3Put4byte(tls, pPtrmap+uintptr(offset+int32(1)), parent) } } + goto ptrmap_exit ptrmap_exit: ; _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -48163,7 +48444,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = int32(libc.Uint32FromInt32(5) * (key - uint32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(71293)) + return _sqlite3CorruptError(tls, int32(71682)) } _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -48173,7 +48454,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if int32(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || int32(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(71301)) + return _sqlite3CorruptError(tls, int32(71690)) } return SQLITE_OK } @@ -48612,7 +48893,7 @@ func _ptrmapPutOvflPtr(tls *libc.TLS, pPage uintptr, pSrc uintptr, pCell uintptr (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if uint32(pCell) < uint32((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) && uint32(pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal)) > uint32((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71741)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72130)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(int32((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -48658,12 +48939,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71799)) + return _sqlite3CorruptError(tls, int32(72188)) } if iFree != 0 { iFree2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71802)) + return _sqlite3CorruptError(tls, int32(72191)) } if 0 == iFree2 || int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -48671,21 +48952,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(71810)) + return _sqlite3CorruptError(tls, int32(72199)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(71813)) + return _sqlite3CorruptError(tls, int32(72202)) } sz2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(71815)) + return _sqlite3CorruptError(tls, int32(72204)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), uint32(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(71819)) + return _sqlite3CorruptError(tls, int32(72208)) } } cbrk = top + sz @@ -48733,13 +49014,13 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { ** if PRAGMA cell_size_check=ON. */ if pc > iCellLast { - return _sqlite3CorruptError(tls, int32(71852)) + return _sqlite3CorruptError(tls, int32(72241)) } _ = libc.Int32FromInt32(0) size = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, src+uintptr(pc))) cbrk -= size if cbrk < iCellStart || pc+size > usableSize { - return _sqlite3CorruptError(tls, int32(71858)) + return _sqlite3CorruptError(tls, int32(72247)) } _ = libc.Int32FromInt32(0) *(*Tu8)(unsafe.Pointer(pAddr1)) = uint8(cbrk >> libc.Int32FromInt32(8)) @@ -48752,11 +49033,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { } } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))) = uint8(0) + goto defragment_out defragment_out: ; _ = libc.Int32FromInt32(0) if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(71872)) + return _sqlite3CorruptError(tls, int32(72261)) } _ = libc.Int32FromInt32(0) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = uint8(cbrk >> libc.Int32FromInt32(8)) @@ -48819,7 +49101,7 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint } else { if x+pc > maxPC { /* This slot extends off the end of the usable part of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71929)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72318)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -48836,14 +49118,14 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint if pc <= iAddr { if pc != 0 { /* The next slot in the chain comes before the current slot */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71944)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72333)) } return uintptr(0) } } if pc > maxPC+nByte-int32(4) { /* The free slot chain extends off the end of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71951)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72340)) } return uintptr(0) } @@ -48894,11 +49176,11 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r if top == 0 && (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize == uint32(65536) { top = int32(65536) } else { - return _sqlite3CorruptError(tls, int32(71999)) + return _sqlite3CorruptError(tls, int32(72388)) } } else { if top > int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(72002)) + return _sqlite3CorruptError(tls, int32(72391)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -48913,7 +49195,7 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r g2 = v1 *(*int32)(unsafe.Pointer(pIdx)) = v1 if g2 <= gap { - return _sqlite3CorruptError(tls, int32(72019)) + return _sqlite3CorruptError(tls, int32(72408)) } else { return SQLITE_OK } @@ -49006,12 +49288,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if int32(iFreeBlk) == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(72098)) + return _sqlite3CorruptError(tls, int32(72487)) } iPtr = iFreeBlk } if uint32(iFreeBlk) > (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(72103)) + return _sqlite3CorruptError(tls, int32(72492)) } _ = libc.Int32FromInt32(0) /* At this point: @@ -49023,11 +49305,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if iFreeBlk != 0 && iEnd+uint32(3) >= uint32(iFreeBlk) { nFrag = uint8(uint32(iFreeBlk) - iEnd) if iEnd > uint32(iFreeBlk) { - return _sqlite3CorruptError(tls, int32(72115)) + return _sqlite3CorruptError(tls, int32(72504)) } iEnd = uint32(int32(iFreeBlk) + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iFreeBlk)+int32(2)))))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - return _sqlite3CorruptError(tls, int32(72118)) + return _sqlite3CorruptError(tls, int32(72507)) } iSize = uint16(iEnd - uint32(iStart)) iFreeBlk = uint16(int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= int32(iStart) { if iPtrEnd > int32(iStart) { - return _sqlite3CorruptError(tls, int32(72131)) + return _sqlite3CorruptError(tls, int32(72520)) } nFrag = Tu8(int32(nFrag) + (int32(iStart) - iPtrEnd)) iSize = uint16(iEnd - uint32(iPtr)) @@ -49048,7 +49330,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) } } if int32(nFrag) > int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(72137)) + return _sqlite3CorruptError(tls, int32(72526)) } p2 = data + uintptr(int32(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - int32(nFrag)) @@ -49065,10 +49347,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) ** so just extend the cell content area rather than create another ** freelist entry */ if int32(iStart) < int32(x) { - return _sqlite3CorruptError(tls, int32(72151)) + return _sqlite3CorruptError(tls, int32(72540)) } if int32(iPtr) != int32(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(72152)) + return _sqlite3CorruptError(tls, int32(72541)) } *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)))) = uint8(int32(iFreeBlk) >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)) + 1)) = uint8(iFreeBlk) @@ -49131,7 +49413,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtrIdxLeaf) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72206)) + return _sqlite3CorruptError(tls, int32(72595)) } } } else { @@ -49157,7 +49439,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtr) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72230)) + return _sqlite3CorruptError(tls, int32(72619)) } } } @@ -49204,12 +49486,12 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-55530-52930 In a well-formed b-tree page, there will ** always be at least one cell before the first freeblock. */ - return _sqlite3CorruptError(tls, int32(72281)) + return _sqlite3CorruptError(tls, int32(72670)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(72286)) + return _sqlite3CorruptError(tls, int32(72675)) } next = uint32(int32(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(72296)) + return _sqlite3CorruptError(tls, int32(72685)) } if uint32(pc)+size > uint32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(72300)) + return _sqlite3CorruptError(tls, int32(72689)) } } /* At this point, nFree contains the sum of the offset to the start @@ -49236,7 +49518,7 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { ** area, according to the page header, lies within the page. */ if nFree > usableSize || nFree < iCellFirst { - return _sqlite3CorruptError(tls, int32(72312)) + return _sqlite3CorruptError(tls, int32(72701)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16(nFree - iCellFirst)) return SQLITE_OK @@ -49267,11 +49549,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))) if pc < iCellFirst || pc > iCellLast { - return _sqlite3CorruptError(tls, int32(72343)) + return _sqlite3CorruptError(tls, int32(72732)) } sz = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, data+uintptr(pc))) if pc+sz > usableSize { - return _sqlite3CorruptError(tls, int32(72348)) + return _sqlite3CorruptError(tls, int32(72737)) } goto _1 _1: @@ -49307,7 +49589,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-28594-02890 The one-byte flag at offset 0 indicating ** the b-tree page type. */ if _decodeFlags(tls, pPage, int32(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(72380)) + return _sqlite3CorruptError(tls, int32(72769)) } _ = libc.Int32FromInt32(0) (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) @@ -49321,7 +49603,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = uint16(int32(*(*Tu8)(unsafe.Pointer(data + 3)))< ((*TBtShared)(unsafe.Pointer(pBt)).FpageSize-uint32(8))/uint32(6) { /* To many cells for a single page. The page must be corrupt */ - return _sqlite3CorruptError(tls, int32(72394)) + return _sqlite3CorruptError(tls, int32(72783)) } /* EVIDENCE-OF: R-24089-57979 If a page contains no cells (which is only ** possible for a root page of a table that contains no rows) then the @@ -49487,7 +49769,7 @@ func _getAndInitPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, bRe _ = libc.Int32FromInt32(0) if pgno > _btreePagecount(tls, pBt) { *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72537)) + return _sqlite3CorruptError(tls, int32(72926)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -49564,7 +49846,7 @@ func _btreeGetUnusedPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FpDbPage) > int32(1) { _releasePage(tls, *(*uintptr)(unsafe.Pointer(ppPage))) *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72609)) + return _sqlite3CorruptError(tls, int32(72998)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -49656,7 +49938,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt /* Set the variable isMemdb to true for an in-memory database, or ** false for a file-based database. */ - isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4190) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) + isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4254) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -49891,6 +50173,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt } } *(*uintptr)(unsafe.Pointer(ppBtree)) = p + goto btree_open_out btree_open_out: ; if rc != SQLITE_OK { @@ -50476,7 +50759,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { ** The original design allowed these amounts to vary, but as of ** version 3.6.0, we require them to be fixed. */ - if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4199, uint32(3)) != 0 { + if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4263, uint32(3)) != 0 { goto page1_init_failed } /* EVIDENCE-OF: R-51873-39618 The page size for a database file is @@ -50515,7 +50798,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { } if nPage > *(*Tu32)(unsafe.Pointer(bp + 4)) { if _sqlite3WritableSchema(tls, (*TBtShared)(unsafe.Pointer(pBt)).Fdb) == 0 { - rc = _sqlite3CorruptError(tls, int32(73547)) + rc = _sqlite3CorruptError(tls, int32(73936)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 4)) @@ -50570,6 +50853,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 = *(*uintptr)(unsafe.Pointer(bp)) (*TBtShared)(unsafe.Pointer(pBt)).FnPage = nPage return SQLITE_OK + goto page1_init_failed page1_init_failed: ; _releasePageOne(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -50854,6 +51138,7 @@ func _btreeBeginTrans(tls *libc.TLS, p uintptr, wrflag int32, pSchemaVersion uin } } } + goto trans_begun trans_begun: ; if rc == SQLITE_OK { @@ -50975,7 +51260,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if int32(eType) == int32(PTRMAP_OVERFLOW2) { /* The pointer is always the first 4 bytes of the page in this case. */ if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData) != iFrom { - return _sqlite3CorruptError(tls, int32(73995)) + return _sqlite3CorruptError(tls, int32(74384)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -50999,7 +51284,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74014)) + return _sqlite3CorruptError(tls, int32(74403)) } if iFrom == _sqlite3Get4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4)) { _sqlite3Put4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4), iTo) @@ -51008,7 +51293,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } } else { if pCell+uintptr(4) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74023)) + return _sqlite3CorruptError(tls, int32(74412)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -51022,7 +51307,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if int32(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(74035)) + return _sqlite3CorruptError(tls, int32(74424)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -51055,7 +51340,7 @@ func _relocatePage(tls *libc.TLS, pBt uintptr, pDbPage uintptr, eType Tu8, iPtrP _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iDbPage < uint32(3) { - return _sqlite3CorruptError(tls, int32(74070)) + return _sqlite3CorruptError(tls, int32(74459)) } /* Move page iDbPage from its current location to page number iFreePage */ *(*int32)(unsafe.Pointer(bp + 4)) = _sqlite3PagerMovepage(tls, pPager, (*TMemPage)(unsafe.Pointer(pDbPage)).FpDbPage, iFreePage, isCommit) @@ -51153,7 +51438,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(74168)) + return _sqlite3CorruptError(tls, int32(74557)) } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -51192,7 +51477,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 24))) if *(*TPgno)(unsafe.Pointer(bp + 16)) > dbSize { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 20))) - return _sqlite3CorruptError(tls, int32(74220)) + return _sqlite3CorruptError(tls, int32(74609)) } } _ = libc.Int32FromInt32(0) @@ -51261,7 +51546,7 @@ func _sqlite3BtreeIncrVacuum(tls *libc.TLS, p uintptr) (r int32) { nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) nFin = _finalDbSize(tls, pBt, nOrig, nFree) if nOrig < nFin || nFree >= nOrig { - rc = _sqlite3CorruptError(tls, int32(74288)) + rc = _sqlite3CorruptError(tls, int32(74677)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -51307,7 +51592,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { ** is either a pointer-map page or the pending-byte page. If one ** is encountered, this indicates corruption. */ - return _sqlite3CorruptError(tls, int32(74339)) + return _sqlite3CorruptError(tls, int32(74728)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -51337,7 +51622,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(74366)) + return _sqlite3CorruptError(tls, int32(74755)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -51835,7 +52120,7 @@ func _btreeCursor(tls *libc.TLS, p uintptr, iTable TPgno, wrFlag int32, pKeyInfo _ = libc.Int32FromInt32(0) if iTable <= uint32(1) { if iTable < uint32(1) { - return _sqlite3CorruptError(tls, int32(74830)) + return _sqlite3CorruptError(tls, int32(75219)) } else { if _btreePagecount(tls, pBt) == uint32(0) { _ = libc.Int32FromInt32(0) @@ -52249,7 +52534,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(75235)) + return _sqlite3CorruptError(tls, int32(75624)) } _ = libc.Int32FromInt32(0) _getCellInfo(tls, pCur) @@ -52262,7 +52547,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin ** &aPayload[pCur->info.nLocal] > &pPage->aData[pBt->usableSize] ** but is recast into its current form to avoid integer overflow problems */ - return _sqlite3CorruptError(tls, int32(75250)) + return _sqlite3CorruptError(tls, int32(75639)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -52290,7 +52575,11 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_ValidOvfl) == 0 { nOvfl = int32(((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnPayload - uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) + ovflSize - uint32(1)) / ovflSize) if (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow == uintptr(0) || nOvfl*libc.Int32FromInt64(4) > _sqlite3MallocSize(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow) { - aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(uint32(nOvfl*int32(2))*uint32(4))) + if _sqlite3FaultSim(tls, int32(413)) != 0 { + aNew = uintptr(0) + } else { + aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(uint32(nOvfl*int32(2))*uint32(4))) + } if aNew == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -52301,6 +52590,9 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin p1 = pCur + 1 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(BTCF_ValidOvfl)) } else { + /* Sanity check the validity of the overflow page cache */ + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* If the overflow page-list cache has been allocated and the ** entry for the first required overflow page is valid, skip ** directly to it. @@ -52315,7 +52607,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin for *(*TPgno)(unsafe.Pointer(bp)) != 0 { /* If required, populate the overflow page-list cache. */ if *(*TPgno)(unsafe.Pointer(bp)) > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(75312)) + return _sqlite3CorruptError(tls, int32(75710)) } _ = libc.Int32FromInt32(0) *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) @@ -52392,7 +52684,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin } if rc == SQLITE_OK && amt > uint32(0) { /* Overflow chain ends prematurely */ - return _sqlite3CorruptError(tls, int32(75396)) + return _sqlite3CorruptError(tls, int32(75794)) } return rc } @@ -52545,7 +52837,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(75534)) + return _sqlite3CorruptError(tls, int32(75932)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -52558,7 +52850,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(75548)) + rc = _sqlite3CorruptError(tls, int32(75946)) } if rc != 0 { v3 = pCur + 68 @@ -52688,8 +52980,9 @@ func _moveToRoot(tls *libc.TLS, pCur uintptr) (r int32) { ** (or the freelist). */ _ = libc.Int32FromInt32(0) if int32((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != int32((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(75683)) + return _sqlite3CorruptError(tls, int32(76081)) } + goto skip_init skip_init: ; (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(0) @@ -52701,7 +52994,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(75695)) + return _sqlite3CorruptError(tls, int32(76093)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -52850,6 +53143,7 @@ func _sqlite3BtreeLast(tls *libc.TLS, pCur uintptr, pRes uintptr) (r int32) { _ = libc.Int32FromInt32(0) /* If the cursor already points to the last entry, this is a no-op. */ if CURSOR_VALID == int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) && int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_AtLast) != 0 { + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pRes)) = 0 return SQLITE_OK } @@ -52903,6 +53197,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh } if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey < intKey { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_AtLast) != 0 { + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pRes)) = -int32(1) return SQLITE_OK } @@ -52965,7 +53260,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(75937)) + return _sqlite3CorruptError(tls, int32(76342)) } } } @@ -53013,6 +53308,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh rc = SQLITE_OK goto moveto_table_finish } + goto moveto_table_next_layer moveto_table_next_layer: ; if lwr >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { @@ -53028,6 +53324,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh goto _1 _1: } + goto moveto_table_finish moveto_table_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -53179,7 +53476,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes p3 = pCur + 1 *(*Tu8)(unsafe.Pointer(p3)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p3))) & ^libc.Int32FromInt32(BTCF_ValidOvfl)) if !((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76133)) + return _sqlite3CorruptError(tls, int32(76538)) } goto bypass_moveto_root /* Start search on the current page */ } @@ -53194,6 +53491,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes } return rc } + goto bypass_moveto_root bypass_moveto_root: ; _ = libc.Int32FromInt32(0) @@ -53250,7 +53548,7 @@ bypass_moveto_root: /* Invalid key size: 0x80 0x80 0x01 */ /* Minimum legal index key size */ if nCell < int32(2) || uint32(nCell)/(*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FusableSize > (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(76220)) + rc = _sqlite3CorruptError(tls, int32(76625)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, uint64(nCell+nOverrun)) @@ -53283,7 +53581,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(76252)) + rc = _sqlite3CorruptError(tls, int32(76657)) } goto moveto_index_finish } @@ -53320,7 +53618,7 @@ bypass_moveto_root: p9 = pCur + 1 *(*Tu8)(unsafe.Pointer(p9)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p9))) & ^(libc.Int32FromInt32(BTCF_ValidNKey) | libc.Int32FromInt32(BTCF_ValidOvfl))) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(76283)) + return _sqlite3CorruptError(tls, int32(76688)) } *(*Tu16)(unsafe.Pointer(pCur + 72 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = uint16(lwr) *(*uintptr)(unsafe.Pointer(pCur + 120 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*4)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -53329,7 +53627,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+116, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76294)) + rc = _sqlite3CorruptError(tls, int32(76699)) } if rc != 0 { v11 = pCur + 68 @@ -53343,6 +53641,7 @@ bypass_moveto_root: goto _4 _4: } + goto moveto_index_finish moveto_index_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -53380,11 +53679,11 @@ func _sqlite3BtreeRowCountEst(tls *libc.TLS, pCur uintptr) (r Ti64) { _, _ = i, n _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - /* Currently this interface is only called by the OP_IfSmaller - ** opcode, and it that case the cursor will always be valid and - ** will always point to a leaf node. */ + /* Currently this interface is only called by the OP_IfSizeBetween + ** opcode and the OP_Count opcode with P3=1. In either case, + ** the cursor will always be valid unless the btree is empty. */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID { - return int64(-int32(1)) + return 0 } if int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).Fleaf) == 0 { return int64(-int32(1)) @@ -53462,7 +53761,7 @@ func _btreeNext(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76395)) + return _sqlite3CorruptError(tls, int32(76800)) } if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -53577,7 +53876,7 @@ func _btreePrevious(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76488)) + return _sqlite3CorruptError(tls, int32(76893)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -53671,7 +53970,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt ** stores the total number of pages on the freelist. */ n = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+36) if n >= mxPage { - return _sqlite3CorruptError(tls, int32(76578)) + return _sqlite3CorruptError(tls, int32(76983)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -53728,7 +54027,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(76634)) + rc = _sqlite3CorruptError(tls, int32(77039)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -53757,7 +54056,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { if k > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/libc.Uint32FromInt32(4)-libc.Uint32FromInt32(2) { /* Value of k is out of range. Database corruption */ - rc = _sqlite3CorruptError(tls, int32(76663)) + rc = _sqlite3CorruptError(tls, int32(77068)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -53784,7 +54083,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { iNewTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+8) if iNewTrunk > mxPage { - rc = _sqlite3CorruptError(tls, int32(76697)) + rc = _sqlite3CorruptError(tls, int32(77102)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+8, 0) @@ -53856,7 +54155,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } iPage = _sqlite3Get4byte(tls, aData+uintptr(uint32(8)+closest*uint32(4))) if iPage > mxPage || iPage < uint32(2) { - rc = _sqlite3CorruptError(tls, int32(76762)) + rc = _sqlite3CorruptError(tls, int32(77167)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -53959,6 +54258,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } } _ = libc.Int32FromInt32(0) + goto end_allocate_page end_allocate_page: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -54001,7 +54301,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iPage < uint32(2) || iPage > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(76889)) + return _sqlite3CorruptError(tls, int32(77294)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 4)) = pMemPage @@ -54052,7 +54352,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in if nFree != uint32(0) { /* Initial number of leaf cells on trunk page */ iTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32) if iTrunk > _btreePagecount(tls, pBt) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(76936)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(77341)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 8)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -54062,7 +54362,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in nLeaf = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+4) _ = libc.Int32FromInt32(0) if nLeaf > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(2) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(76947)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(77352)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -54117,6 +54417,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 4)))).FaData, iTrunk) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 4)))).FaData+4, uint32(0)) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32, iPage) + goto freepage_out freepage_out: ; if *(*uintptr)(unsafe.Pointer(bp + 4)) != 0 { @@ -54153,7 +54454,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp _ = libc.Int32FromInt32(0) if pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { /* Cell extends past end of page */ - return _sqlite3CorruptError(tls, int32(77036)) + return _sqlite3CorruptError(tls, int32(77441)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -54173,7 +54474,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp /* 0 is not a legal page number and page 1 cannot be an ** overflow page. Therefore if ovflPgno<2 or past the end of the ** file the database must be corrupt. */ - return _sqlite3CorruptError(tls, int32(77053)) + return _sqlite3CorruptError(tls, int32(77458)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+4, bp) @@ -54196,7 +54497,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp ** caller is iterating through or using in some other way, this ** can be problematic. */ - rc = _sqlite3CorruptError(tls, int32(77073)) + rc = _sqlite3CorruptError(tls, int32(77478)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 4)), ovflPgno) } @@ -54432,7 +54733,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = uint32(int32(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77329)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77734)) return } rc = _freeSpace(tls, pPage, uint16(pc), uint16(sz)) @@ -54867,12 +55168,12 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg _ = libc.Int32FromInt32(0) if uint32(pCell) >= uint32(aData+uintptr(j)) && uint32(pCell) < uint32(pEnd) { if uint32(pCell+uintptr(sz)) > uint32(pEnd) { - return _sqlite3CorruptError(tls, int32(77718)) + return _sqlite3CorruptError(tls, int32(78123)) } pCell = pTmp + uintptr(int32(pCell)-int32(aData)) } else { if uint32(pCell+uintptr(sz)) > uint32(pSrcEnd) && uint32(pCell) < uint32(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(77723)) + return _sqlite3CorruptError(tls, int32(78128)) } } pData -= uintptr(sz) @@ -54880,7 +55181,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = uint8(int32(pData) - int32(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(77729)) + return _sqlite3CorruptError(tls, int32(78134)) } libc.Xmemmove(tls, pData, pCell, uint32(sz)) _ = libc.Int32FromInt32(0) @@ -54979,7 +55280,7 @@ func _pageInsertArray(tls *libc.TLS, pPg uintptr, pBegin uintptr, ppData uintptr _ = libc.Int32FromInt32(0) if uint32(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*4))+uintptr(sz)) > uint32(pEnd) && uint32(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*4))) < uint32(pEnd) { _ = libc.Int32FromInt32(0) - _sqlite3CorruptError(tls, int32(77814)) + _sqlite3CorruptError(tls, int32(78219)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*4)), uint32(sz)) @@ -55129,7 +55430,7 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p if iOld < iNew { nShift = _pageFreeArray(tls, pPg, iOld, iNew-iOld, pCArray) if nShift > nCell { - return _sqlite3CorruptError(tls, int32(77936)) + return _sqlite3CorruptError(tls, int32(78341)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), uint32(nCell*int32(2))) nCell -= nShift @@ -55199,11 +55500,12 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)))) = uint8((int32(*(*uintptr)(unsafe.Pointer(bp))) - int32(aData)) >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)) + 1)) = uint8(int32(*(*uintptr)(unsafe.Pointer(bp))) - int32(aData)) return SQLITE_OK + goto editpage_fail editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(78010)) + return _sqlite3CorruptError(tls, int32(78415)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -55251,7 +55553,7 @@ func _balance_quick(tls *libc.TLS, pParent uintptr, pPage uintptr, pSpace uintpt _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(78050)) + return _sqlite3CorruptError(tls, int32(78455)) } /* dbfuzz001.test */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -55627,7 +55929,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 4)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78471)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78876)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -55650,7 +55952,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa libc.Xmemset(tls, (*(*TCellArray)(unsafe.Pointer(bp + 68))).FszCell+uintptr((*(*TCellArray)(unsafe.Pointer(bp + 68))).FnCell)*2, 0, uint32(2)*uint32(limit+int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78495)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78900)) goto balance_cleanup } limit = int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -55793,7 +56095,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa if i+int32(1) >= k { k = i + int32(2) if k > libc.Int32FromInt32(NB)+libc.Int32FromInt32(2) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78596)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79001)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 36)))[k-int32(1)] = 0 @@ -55836,7 +56138,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v10 = 0 } if cntNew[i] <= v10 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78629)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79034)) goto balance_cleanup } } @@ -55897,7 +56199,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v15 = 0 } if cntNew[i-int32(1)] <= v15 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78673)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79078)) goto balance_cleanup } goto _11 @@ -55930,7 +56232,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 132)))).FpDbPage) nNew++ if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 132)))).FpDbPage) != int32(1)+libc.BoolInt32(i == iParentIdx-nxDiv) && *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78706)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79111)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -56173,7 +56475,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa } pSrcEnd = *(*uintptr)(unsafe.Pointer(bp + 68 + 16 + uintptr(k)*4)) if uint32(pCell1) < uint32(pSrcEnd) && uint32(pCell1+uintptr(sz2)) > uint32(pSrcEnd) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78906)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79311)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -56322,6 +56624,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa /* ** Cleanup before returning. */ + goto balance_cleanup balance_cleanup: ; _sqlite3DbFree(tls, uintptr(0), (*(*TCellArray)(unsafe.Pointer(bp + 68))).FapCell) @@ -56437,7 +56740,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && int32((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(79138)) + return _sqlite3CorruptError(tls, int32(79543)) } goto _1 _1: @@ -56512,7 +56815,7 @@ func _balance(tls *libc.TLS, pCur uintptr) (r int32) { /* The page being written is not a root page, and there is currently ** more than one reference to it. This only happens if the page is one ** of its own ancestor pages. Corruption. */ - rc = _sqlite3CorruptError(tls, int32(79198)) + rc = _sqlite3CorruptError(tls, int32(79603)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 120 + uintptr(iPage-int32(1))*4)) iIdx = int32(*(*Tu16)(unsafe.Pointer(pCur + 72 + uintptr(iPage-int32(1))*2))) @@ -56675,7 +56978,7 @@ func _btreeOverwriteOverflowCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int return rc } if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1) || (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FisInit != 0 { - rc = _sqlite3CorruptError(tls, int32(79362)) + rc = _sqlite3CorruptError(tls, int32(79767)) } else { if uint32(iOffset)+ovflPageSize < uint32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -56706,7 +57009,7 @@ func _btreeOverwriteCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int32) { nTotal = (*TBtreePayload)(unsafe.Pointer(pX)).FnData + (*TBtreePayload)(unsafe.Pointer(pX)).FnZero /* Total bytes of to write */ pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage /* Page being written */ if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload+uintptr((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd || (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FcellOffset) { - return _sqlite3CorruptError(tls, int32(79390)) + return _sqlite3CorruptError(tls, int32(79795)) } if int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -56793,7 +57096,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** Which can only happen if the SQLITE_NoSchemaError flag was set when ** the schema was loaded. This cannot be asserted though, as a user might ** set the flag, load the schema, and then unset the flag. */ - return _sqlite3CorruptError(tls, int32(79471)) + return _sqlite3CorruptError(tls, int32(79876)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -56896,7 +57199,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79594)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79999)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -56938,7 +57241,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if *(*int32)(unsafe.Pointer(bp + 4)) == 0 { _ = libc.Int32FromInt32(0) if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79636)) + return _sqlite3CorruptError(tls, int32(80041)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -56968,10 +57271,10 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry. */ _ = libc.Int32FromInt32(0) /* clearCell never fails when nLocal==nPayload */ if oldCell < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+uintptr(10) { - return _sqlite3CorruptError(tls, int32(79663)) + return _sqlite3CorruptError(tls, int32(80068)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79666)) + return _sqlite3CorruptError(tls, int32(80071)) } libc.Xmemcpy(tls, oldCell, newCell, uint32(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -57043,6 +57346,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s } } _ = libc.Int32FromInt32(0) + goto end_insert end_insert: ; return *(*int32)(unsafe.Pointer(bp)) @@ -57095,7 +57399,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T nIn = uint32((*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnLocal) aIn = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload if aIn+uintptr(nIn) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79768)) + return _sqlite3CorruptError(tls, int32(80173)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -57117,7 +57421,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T } if nRem > nIn { if aIn+uintptr(nIn)+uintptr(4) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79793)) + return _sqlite3CorruptError(tls, int32(80198)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -57226,7 +57530,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(79889)) + return _sqlite3CorruptError(tls, int32(80294)) } } _ = libc.Int32FromInt32(0) @@ -57234,14 +57538,14 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { iCellIdx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(79898)) + return _sqlite3CorruptError(tls, int32(80303)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCellIdx)))))) if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 && _btreeComputeFreeSpace(tls, pPage) != 0 { - return _sqlite3CorruptError(tls, int32(79902)) + return _sqlite3CorruptError(tls, int32(80307)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79905)) + return _sqlite3CorruptError(tls, int32(80310)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -57336,7 +57640,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { } pCell = (*TMemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(int32(2)*(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FnCell)-int32(1)))))))) if pCell < (*TMemPage)(unsafe.Pointer(pLeaf)).FaData+4 { - return _sqlite3CorruptError(tls, int32(79996)) + return _sqlite3CorruptError(tls, int32(80401)) } nCell = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pLeaf)).FxCellSize})))(tls, pLeaf, pCell)) _ = libc.Int32FromInt32(0) @@ -57456,7 +57760,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags */ _sqlite3BtreeGetMeta(tls, p, int32(BTREE_LARGEST_ROOT_PAGE), bp+4) if *(*TPgno)(unsafe.Pointer(bp + 4)) > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80112)) + return _sqlite3CorruptError(tls, int32(80517)) } *(*TPgno)(unsafe.Pointer(bp + 4))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -57498,7 +57802,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags } *(*int32)(unsafe.Pointer(bp + 8)) = _ptrmapGet(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 4)), bp+20, bp+24) if int32(*(*Tu8)(unsafe.Pointer(bp + 20))) == int32(PTRMAP_ROOTPAGE) || int32(*(*Tu8)(unsafe.Pointer(bp + 20))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80160)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80565)) } if *(*int32)(unsafe.Pointer(bp + 8)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -57585,14 +57889,14 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _, _, _, _ = hdr, i, pCell, v2 _ = libc.Int32FromInt32(0) if pgno > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80250)) + return _sqlite3CorruptError(tls, int32(80655)) } *(*int32)(unsafe.Pointer(bp + 4)) = _getAndInitPage(tls, pBt, pgno, bp, 0) if *(*int32)(unsafe.Pointer(bp + 4)) != 0 { return *(*int32)(unsafe.Pointer(bp + 4)) } if int32((*TBtShared)(unsafe.Pointer(pBt)).FopenFlags)&int32(BTREE_SINGLE) == 0 && _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1)+libc.BoolInt32(pgno == uint32(1)) { - *(*int32)(unsafe.Pointer(bp + 4)) = _sqlite3CorruptError(tls, int32(80257)) + *(*int32)(unsafe.Pointer(bp + 4)) = _sqlite3CorruptError(tls, int32(80662)) goto cleardatabasepage_out } hdr = int32((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -57643,6 +57947,7 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _zeroPage(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData + uintptr(hdr))))|int32(PTF_LEAF)) } } + goto cleardatabasepage_out cleardatabasepage_out: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -57732,7 +58037,7 @@ func _btreeDropTable(tls *libc.TLS, p uintptr, iTable TPgno, piMoved uintptr) (r _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iTable > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80361)) + return _sqlite3CorruptError(tls, int32(80766)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, int32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -58008,7 +58313,7 @@ func _checkAppendMsg(tls *libc.TLS, pCheck uintptr, zFormat uintptr, va uintptr) (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr++ ap = va if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FerrMsg.FnChar != 0 { - Xsqlite3_str_append(tls, pCheck+48, __ccgo_ts+4203, int32(1)) + Xsqlite3_str_append(tls, pCheck+48, __ccgo_ts+4267, int32(1)) } if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx != 0 { Xsqlite3_str_appendf(tls, pCheck+48, (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx, libc.VaList(bp+8, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv0, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv2)) @@ -58060,11 +58365,11 @@ func _checkRef(tls *libc.TLS, pCheck uintptr, iPage TPgno) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if iPage > (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnCkPage || iPage == uint32(0) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4205, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4269, libc.VaList(bp+8, iPage)) return int32(1) } if _getPageReferenced(tls, pCheck, iPage) != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4228, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4292, libc.VaList(bp+8, iPage)) return int32(1) } _setPageReferenced(tls, pCheck, iPage) @@ -58090,11 +58395,11 @@ func _checkPtrmap(tls *libc.TLS, pCheck uintptr, iChild TPgno, eType Tu8, iParen if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FusableSize/uint32(4)-uint32(2) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4358, libc.VaList(bp+16, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4422, libc.VaList(bp+16, iPage)) N-- } else { i = 0 @@ -58166,11 +58471,11 @@ func _checkList(tls *libc.TLS, pCheck uintptr, isFreeList int32, iPage TPgno, N } if N != 0 && nErrAtStart == (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr { if isFreeList != 0 { - v2 = __ccgo_ts + 4397 + v2 = __ccgo_ts + 4461 } else { - v2 = __ccgo_ts + 4402 + v2 = __ccgo_ts + 4466 } - _checkAppendMsg(tls, pCheck, __ccgo_ts+4423, libc.VaList(bp+16, v2, expected-N, expected)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4487, libc.VaList(bp+16, v2, expected-N, expected)) } } @@ -58307,12 +58612,12 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr if _checkRef(tls, pCheck, iPage) != 0 { return 0 } - (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4449 + (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4513 (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = iPage v1 = _btreeGetPage(tls, pBt, iPage, bp+8, 0) rc = v1 if v1 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4467, libc.VaList(bp+48, rc)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4531, libc.VaList(bp+48, rc)) if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< usableSize-uint32(4) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4621, libc.VaList(bp+48, pc, contentOffset, usableSize-uint32(4))) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4685, libc.VaList(bp+48, pc, contentOffset, usableSize-uint32(4))) doCoverageCheck = 0 goto _4 } pCell = data + uintptr(pc) (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FxParseCell})))(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), pCell, bp+16) if pc+uint32((*(*TCellInfo)(unsafe.Pointer(bp + 16))).FnSize) > usableSize { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4651, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4715, 0) doCoverageCheck = 0 goto _4 } @@ -58398,7 +58706,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr v5 = libc.BoolInt32((*(*TCellInfo)(unsafe.Pointer(bp + 16))).FnKey >= *(*Ti64)(unsafe.Pointer(bp))) } if v5 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4675, libc.VaList(bp+48, (*(*TCellInfo)(unsafe.Pointer(bp + 16))).FnKey)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4739, libc.VaList(bp+48, (*(*TCellInfo)(unsafe.Pointer(bp + 16))).FnKey)) } *(*Ti64)(unsafe.Pointer(bp)) = (*(*TCellInfo)(unsafe.Pointer(bp + 16))).FnKey keyCanBeEqual = 0 /* Only the first key on the page may ==maxKey */ @@ -58422,7 +58730,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr d2 = _checkTreePage(tls, pCheck, uint32(pgno), bp, *(*Ti64)(unsafe.Pointer(bp))) keyCanBeEqual = 0 if d2 != depth { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4699, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4763, 0) depth = d2 } } else { @@ -58459,6 +58767,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr i-- } } + _ = libc.Int32FromInt32(0) /* Add the freeblocks to the min-heap ** ** EVIDENCE-OF: R-20690-50594 The second field of the b-tree page header @@ -58499,7 +58808,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr prev = contentOffset - uint32(1) /* Implied first min-heap entry */ for _btreeHeapPull(tls, heap, bp+12) != 0 { if prev&uint32(0xffff) >= *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(16) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4724, libc.VaList(bp+48, *(*Tu32)(unsafe.Pointer(bp + 12))>>int32(16), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4788, libc.VaList(bp+48, *(*Tu32)(unsafe.Pointer(bp + 12))>>int32(16), iPage)) break } else { nFrag = int32(uint32(nFrag) + (*(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(16) - prev&libc.Uint32FromInt32(0xffff) - libc.Uint32FromInt32(1))) @@ -58513,9 +58822,10 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr ** number of fragmented free bytes within the cell content area. */ if *(*Tu32)(unsafe.Pointer(heap)) == uint32(0) && nFrag != int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4761, libc.VaList(bp+48, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4825, libc.VaList(bp+48, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) } } + goto end_of_check end_of_check: ; if !(doCoverageCheck != 0) { @@ -58552,22 +58862,23 @@ end_of_check: // ** the unverified btrees. Except, if aRoot[1] is 1, then the freelist // ** checks are still performed. // */ -func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { +func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, aCnt uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { bp := tls.Alloc(224) defer tls.Free(224) var bCkFreelist, bPartial int32 var i, mx, mxInHdr TPgno var pBt uintptr var savedDbFlags Tu64 - var _ /* notUsed at bp+184 */ Ti64 + var _ /* notUsed at bp+192 */ Ti64 var _ /* sCheck at bp+0 */ TIntegrityCk - var _ /* zErr at bp+80 */ [100]uint8 + var _ /* zErr at bp+88 */ [100]uint8 _, _, _, _, _, _, _ = bCkFreelist, bPartial, i, mx, mxInHdr, pBt, savedDbFlags pBt = (*TBtree)(unsafe.Pointer(p)).FpBt savedDbFlags = (*Tsqlite3)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags bPartial = 0 /* True if not checking all btrees */ bCkFreelist = int32(1) /* True to scan the freelist */ _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* aRoot[0]==0 means this is a partial check */ if *(*TPgno)(unsafe.Pointer(aRoot)) == uint32(0) { _ = libc.Int32FromInt32(0) @@ -58579,13 +58890,13 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin _sqlite3BtreeEnter(tls, p) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - libc.Xmemset(tls, bp, 0, uint32(80)) + libc.Xmemset(tls, bp, 0, uint32(88)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fdb = db (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt = pBt (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage = _btreePagecount(tls, (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr = mxErr - _sqlite3StrAccumInit(tls, bp+48, uintptr(0), bp+80, int32(100), int32(SQLITE_MAX_LENGTH)) + _sqlite3StrAccumInit(tls, bp+48, uintptr(0), bp+88, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FerrMsg.FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage == uint32(0) { goto integrity_ck_cleanup @@ -58607,7 +58918,7 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin /* Check the integrity of the freelist */ if bCkFreelist != 0 { - (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4813 + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4877 _checkList(tls, bp, int32(1), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+32), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = uintptr(0) } @@ -58631,11 +58942,11 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } mxInHdr = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+52) if mx != mxInHdr { - _checkAppendMsg(tls, bp, __ccgo_ts+4824, libc.VaList(bp+200, mx, mxInHdr)) + _checkAppendMsg(tls, bp, __ccgo_ts+4888, libc.VaList(bp+208, mx, mxInHdr)) } } else { if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+64) != uint32(0) { - _checkAppendMsg(tls, bp, __ccgo_ts+4869, 0) + _checkAppendMsg(tls, bp, __ccgo_ts+4933, 0) } } } @@ -58645,14 +58956,15 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin if !(int32(i) < nRoot && (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr != 0) { break } - if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) == uint32(0) { - goto _2 - } - if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { - _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnRow = 0 + if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) != 0 { + if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { + _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + } + (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fv0 = *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) + _checkTreePage(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), bp+192, libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)< nRec || iHdr >= *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84303)) + iHdr = uint32(uint8(v1)) + if *(*Tu32)(unsafe.Pointer(bp + 4)) > uint32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84745)) } - iField = *(*int32)(unsafe.Pointer(bp + 4)) + iField = int64(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 for { if !(i <= iCol) { @@ -61827,19 +62175,19 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } else { v3 = int32(_sqlite3GetVarint32(tls, a+uintptr(iHdr), bp)) } - iHdr += int32(uint8(v3)) - if iHdr > *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84309)) + iHdr += uint32(uint8(v3)) + if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84751)) } - szField = int32(_sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp)))) - iField += szField + szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) + iField += int64(szField) goto _2 _2: ; i++ } - if iField > nRec { - return _sqlite3CorruptError(tls, int32(84315)) + if iField > int64(nRec) { + return _sqlite3CorruptError(tls, int32(84757)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -61849,7 +62197,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC return int32(SQLITE_NOMEM) } } - _sqlite3VdbeSerialGet(tls, a+uintptr(iField-szField), *(*Tu32)(unsafe.Pointer(bp)), pMem) + _sqlite3VdbeSerialGet(tls, a+uintptr(iField-int64(szField)), *(*Tu32)(unsafe.Pointer(bp)), pMem) (*TMem)(unsafe.Pointer(pMem)).Fenc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc return SQLITE_OK } @@ -62285,6 +62633,7 @@ func _sqlite3VdbeMultiLoad(tls *libc.TLS, p uintptr, iDest int32, zTypes uintptr i++ } _sqlite3VdbeAddOp2(tls, p, int32(OP_ResultRow), iDest, i) + goto skip_op_resultrow skip_op_resultrow: ; _ = ap @@ -62663,6 +63012,11 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { _ = libc.Int32FromInt32(0) /* True because of tag-20230419-1 */ (*TOp)(unsafe.Pointer(pOp)).Fp2 = *(*int32)(unsafe.Pointer(aLabel + uintptr(^(*TOp)(unsafe.Pointer(pOp)).Fp2)*4)) } + /* OPFLG_JUMP opcodes never have P2==0, though OPFLG_JUMP0 opcodes + ** might */ + _ = libc.Int32FromInt32(0) + /* Jumps never go off the end of the bytecode array */ + _ = libc.Int32FromInt32(0) break } /* The mkopcodeh.tcl script has so arranged things that the only @@ -62673,6 +63027,7 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { _ = libc.Int32FromInt32(0) pOp -= 20 } + goto resolve_p2_values_loop_exit resolve_p2_values_loop_exit: ; if aLabel != 0 { @@ -63213,7 +63568,7 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { case -int32(8): pKeyInfo = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5081, libc.VaList(bp+32, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5145, libc.VaList(bp+32, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) j = 0 for { if !(j < int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)) { @@ -63223,68 +63578,68 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { if pColl != 0 { v2 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } zColl = v2 - if libc.Xstrcmp(tls, zColl, __ccgo_ts+5086) == 0 { - zColl = __ccgo_ts + 5093 + if libc.Xstrcmp(tls, zColl, __ccgo_ts+5150) == 0 { + zColl = __ccgo_ts + 5157 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_DESC) != 0 { - v3 = __ccgo_ts + 5074 + v3 = __ccgo_ts + 5138 } else { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_BIGNULL) != 0 { - v4 = __ccgo_ts + 5095 + v4 = __ccgo_ts + 5159 } else { - v4 = __ccgo_ts + 1648 + v4 = __ccgo_ts + 1662 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5098, libc.VaList(bp+32, v3, v4, zColl)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5162, libc.VaList(bp+32, v3, v4, zColl)) goto _1 _1: ; j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5170, int32(1)) case -int32(2): pColl1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5122, libc.VaList(bp+32, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5186, libc.VaList(bp+32, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) case -int32(7): pDef = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5131, libc.VaList(bp+32, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5195, libc.VaList(bp+32, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) case -int32(15): pDef1 = (*Tsqlite3_context)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpFunc - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5131, libc.VaList(bp+32, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5195, libc.VaList(bp+32, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) case -int32(13): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1404, libc.VaList(bp+32, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1423, libc.VaList(bp+32, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(3): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5138, libc.VaList(bp+32, *(*int32)(unsafe.Pointer(pOp + 16)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5202, libc.VaList(bp+32, *(*int32)(unsafe.Pointer(pOp + 16)))) case -int32(12): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1371, libc.VaList(bp+32, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1390, libc.VaList(bp+32, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(10): pMem = *(*uintptr)(unsafe.Pointer(pOp + 16)) if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Str) != 0 { zP4 = (*TMem)(unsafe.Pointer(pMem)).Fz } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1404, libc.VaList(bp+32, *(*Ti64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1423, libc.VaList(bp+32, *(*Ti64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1371, libc.VaList(bp+32, *(*float64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1390, libc.VaList(bp+32, *(*float64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Null) != 0 { - zP4 = __ccgo_ts + 1649 + zP4 = __ccgo_ts + 1663 } else { _ = libc.Int32FromInt32(0) - zP4 = __ccgo_ts + 5141 + zP4 = __ccgo_ts + 5205 } } } } case -int32(11): pVtab = (*TVTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5148, libc.VaList(bp+32, pVtab)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5212, libc.VaList(bp+32, pVtab)) case -int32(14): ai = *(*uintptr)(unsafe.Pointer(pOp + 16)) n = *(*Tu32)(unsafe.Pointer(ai)) /* The first element of an INTARRAY is always the @@ -63299,15 +63654,15 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } else { v6 = int32(',') } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5156, libc.VaList(bp+32, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5220, libc.VaList(bp+32, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) goto _5 _5: ; i++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5161, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5225, int32(1)) case -int32(4): - zP4 = __ccgo_ts + 5163 + zP4 = __ccgo_ts + 5227 case -int32(5): zP4 = (*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FzName default: @@ -63323,10 +63678,10 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } var _encnames = [4]uintptr{ - 0: __ccgo_ts + 5108, - 1: __ccgo_ts + 5110, - 2: __ccgo_ts + 5112, - 3: __ccgo_ts + 5117, + 0: __ccgo_ts + 5172, + 1: __ccgo_ts + 5174, + 2: __ccgo_ts + 5176, + 3: __ccgo_ts + 5181, } // C documentation @@ -64320,7 +64675,7 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { retryCount = 0 /* Select a super-journal file name */ nMainFile = _sqlite3Strlen30(tls, zMainFile) - zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5171, libc.VaList(bp+24, 0, zMainFile, 0)) + zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5235, libc.VaList(bp+24, 0, zMainFile, 0)) if zSuper == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -64328,18 +64683,18 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { for cond := true; cond; cond = rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 4)) != 0 { if retryCount != 0 { if retryCount > int32(100) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5183, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5247, libc.VaList(bp+24, zSuper)) _sqlite3OsDelete(tls, pVfs, zSuper, 0) break } else { if retryCount == int32(1) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5197, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5261, libc.VaList(bp+24, zSuper)) } } } retryCount++ Xsqlite3_randomness(tls, int32(4), bp+8) - Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5212, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 8))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 8))&uint32(0xff))) + Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5276, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 8))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 8))&uint32(0xff))) /* The antipenultimate character of the super-journal name must ** be "9" to avoid name collisions when using 8+3 filenames. */ _ = libc.Int32FromInt32(0) @@ -64576,7 +64931,7 @@ func _sqlite3VdbeCheckFk(tls *libc.TLS, p uintptr, deferred int32) (r int32) { if deferred != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredCons+(*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons > 0 || !(deferred != 0) && (*TVdbe)(unsafe.Pointer(p)).FnFkConstraint > 0 { (*TVdbe)(unsafe.Pointer(p)).Frc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(3)< y { return +libc.Int32FromInt32(1) } - s = float64(i) - if s < r { + if float64(i) < r { v2 = -int32(1) } else { - v2 = libc.BoolInt32(s > r) + v2 = libc.BoolInt32(float64(i) > r) } return v2 } @@ -65922,7 +66276,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89131))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89580))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -66017,7 +66371,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || int32((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89212))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89661))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 20 + uintptr(i)*4)) != 0 { @@ -66053,7 +66407,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = int32((*(*Tu32)(unsafe.Pointer(bp + 52)) - uint32(12)) / uint32(2)) if d1+uint32(nStr) > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89242))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89691))) return 0 /* Corruption */ } else { if int32((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -66109,7 +66463,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += uint32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 52))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89293))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89742))) return 0 /* Corrupt index */ } } @@ -66231,6 +66585,7 @@ func _vdbeRecordCompareString(tls *libc.TLS, nKey1 int32, pKey1 uintptr, pPKey2 _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(bp)) = int32(int8(*(*Tu8)(unsafe.Pointer(aKey1 + 1)))) + goto vrcs_restart vrcs_restart: ; if *(*int32)(unsafe.Pointer(bp)) < int32(12) { @@ -66249,7 +66604,7 @@ vrcs_restart: szHdr = int32(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89456))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89905))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -66402,10 +66757,11 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr return SQLITE_OK /* Jump here if database corruption is detected after m has been ** allocated. Free the m object and return SQLITE_CORRUPT. */ + goto idx_rowid_corruption idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(89614)) + return _sqlite3CorruptError(tls, int32(90063)) } // C documentation @@ -66438,7 +66794,7 @@ func _sqlite3VdbeIdxKeyCompare(tls *libc.TLS, db uintptr, pC uintptr, pUnpacked ** that btreeParseCellPtr() and sqlite3GetVarint32() are implemented */ if nCellKey <= 0 || nCellKey > int64(0x7fffffff) { *(*int32)(unsafe.Pointer(res)) = 0 - return _sqlite3CorruptError(tls, int32(89647)) + return _sqlite3CorruptError(tls, int32(90096)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(nCellKey), bp) @@ -66594,15 +66950,15 @@ func _sqlite3NotPureFunc(tls *libc.TLS, pCtx uintptr) (r int32) { pOp = (*TVdbe)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe)).FaOp + uintptr((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FiOp)*20 if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_PureFunc) { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_IsCheck) != 0 { - zContext = __ccgo_ts + 5255 + zContext = __ccgo_ts + 5319 } else { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_GenCol) != 0 { - zContext = __ccgo_ts + 5274 + zContext = __ccgo_ts + 5338 } else { - zContext = __ccgo_ts + 5293 + zContext = __ccgo_ts + 5357 } } - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5302, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5366, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) return 0 @@ -66781,7 +67137,7 @@ func Xsqlite3_expired(tls *libc.TLS, pStmt uintptr) (r int32) { // */ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { if (*TVdbe)(unsafe.Pointer(p)).Fdb == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5338, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5402, 0) return int32(1) } else { return 0 @@ -66791,7 +67147,7 @@ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { func _vdbeSafetyNotNull(tls *libc.TLS, p uintptr) (r int32) { if p == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5383, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5447, 0) return int32(1) } else { return _vdbeSafety(tls, p) @@ -66853,7 +67209,7 @@ func Xsqlite3_finalize(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt db = (*TVdbe)(unsafe.Pointer(v)).Fdb if _vdbeSafety(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90035)) + return _sqlite3MisuseError(tls, int32(90484)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -67384,7 +67740,7 @@ func Xsqlite3_result_error_code(tls *libc.TLS, pCtx uintptr, errCode int32) { func Xsqlite3_result_error_toobig(tls *libc.TLS, pCtx uintptr) { _ = libc.Int32FromInt32(0) (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = int32(SQLITE_TOOBIG) - _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5423, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) + _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5487, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) } // C documentation @@ -67466,6 +67822,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) db = (*TVdbe)(unsafe.Pointer(p)).Fdb if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_RUN_STATE) { + goto restart_step restart_step: ; if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) == int32(VDBE_READY_STATE) { @@ -67569,6 +67926,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { rc = (*TVdbe)(unsafe.Pointer(p)).Frc } } + goto end_of_step end_of_step: ; /* There are only a limited number of result codes allowed from the @@ -67593,7 +67951,7 @@ func Xsqlite3_step(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt /* the prepared statement */ cnt = 0 /* The database connection */ if _vdbeSafetyNotNull(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90829)) + return _sqlite3MisuseError(tls, int32(91278)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -67727,7 +68085,7 @@ func _valueFromValueList(tls *libc.TLS, pVal uintptr, ppOut uintptr, bNext int32 _, _, _, _, _, _, _ = iOff, pOut, pRhs, rc, sz, zBuf, v1 *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) if pVal == uintptr(0) { - return _sqlite3MisuseError(tls, int32(90950)) + return _sqlite3MisuseError(tls, int32(91399)) } if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -67958,6 +68316,7 @@ func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, (*TAuxData)(unsafe.Pointer(pAuxData)).FpAux = pAux (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = xDelete return + goto failed failed: ; if xDelete != 0 { @@ -68199,18 +68558,18 @@ func Xsqlite3_column_type(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { // ** Column names appropriate for EXPLAIN or EXPLAIN QUERY PLAN. // */ var _azExplainColNames8 = [12]uintptr{ - 0: __ccgo_ts + 5446, - 1: __ccgo_ts + 5451, - 2: __ccgo_ts + 5458, - 3: __ccgo_ts + 5461, - 4: __ccgo_ts + 5464, - 5: __ccgo_ts + 5467, - 6: __ccgo_ts + 5470, - 7: __ccgo_ts + 5473, - 8: __ccgo_ts + 5481, - 9: __ccgo_ts + 5484, - 10: __ccgo_ts + 5491, - 11: __ccgo_ts + 5499, + 0: __ccgo_ts + 5510, + 1: __ccgo_ts + 5515, + 2: __ccgo_ts + 5522, + 3: __ccgo_ts + 5525, + 4: __ccgo_ts + 5528, + 5: __ccgo_ts + 5531, + 6: __ccgo_ts + 5534, + 7: __ccgo_ts + 5537, + 8: __ccgo_ts + 5545, + 9: __ccgo_ts + 5548, + 10: __ccgo_ts + 5555, + 11: __ccgo_ts + 5563, } var _azExplainColNames16data = [60]Tu16{ 0: uint16('a'), @@ -68346,6 +68705,7 @@ func _columnName(tls *libc.TLS, pStmt uintptr, N int32, useUtf16 int32, useType ret = uintptr(0) } } + goto columnName_end columnName_end: ; Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -68455,14 +68815,14 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { var v2 bool _, _, _ = pVar, v1, v2 if _vdbeSafetyNotNull(tls, p) != 0 { - return _sqlite3MisuseError(tls, int32(91554)) + return _sqlite3MisuseError(tls, int32(92003)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(91558))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(92007))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5506, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(91562)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5570, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) + return _sqlite3MisuseError(tls, int32(92011)) } if i >= uint32((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -69036,7 +69396,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp /* Test that this call is being made from within an SQLITE_DELETE or ** SQLITE_UPDATE pre-update callback, and that iIdx is within range. */ if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_INSERT) { - rc = _sqlite3MisuseError(tls, int32(92098)) + rc = _sqlite3MisuseError(tls, int32(92547)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -69083,6 +69443,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } } + goto preupdate_old_out preupdate_old_out: ; _sqlite3Error(tls, db, rc) @@ -69166,7 +69527,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp rc = SQLITE_OK p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(92221)) + rc = _sqlite3MisuseError(tls, int32(92670)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -69234,6 +69595,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } *(*uintptr)(unsafe.Pointer(ppValue)) = pMem + goto preupdate_new_out preupdate_new_out: ; _sqlite3Error(tls, db, rc) @@ -69342,7 +69704,7 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr break } } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5546, int32(3)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5610, int32(3)) _ = libc.Int32FromInt32(0) Xsqlite3_str_append(tls, bp+8, zStart, int32(zRawSql)-int32(zStart)) } @@ -69381,13 +69743,13 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr _ = libc.Int32FromInt32(0) pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(*(*int32)(unsafe.Pointer(bp))-int32(1))*40 if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Null) != 0 { - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1649, int32(4)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1663, int32(4)) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1404, libc.VaList(bp+80, *(*Ti64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1423, libc.VaList(bp+80, *(*Ti64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5067, libc.VaList(bp+80, *(*float64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5131, libc.VaList(bp+80, *(*float64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Str) != 0 { /* Number of bytes of the string text to include in output */ enc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc @@ -69402,29 +69764,29 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr pVar = bp + 32 } nOut = (*TMem)(unsafe.Pointer(pVar)).Fn - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5550, libc.VaList(bp+80, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5614, libc.VaList(bp+80, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) if int32(enc) != int32(SQLITE_UTF8) { _sqlite3VdbeMemRelease(tls, bp+32) } } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Zero) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5557, libc.VaList(bp+80, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5621, libc.VaList(bp+80, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) } else { /* Number of bytes of the blob to include in output */ _ = libc.Int32FromInt32(0) - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5570, int32(2)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5634, int32(2)) nOut1 = (*TMem)(unsafe.Pointer(pVar)).Fn i = 0 for { if !(i < nOut1) { break } - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5573, libc.VaList(bp+80, int32(*(*uint8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5637, libc.VaList(bp+80, int32(*(*uint8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) goto _3 _3: ; i++ } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5578, int32(1)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5642, int32(1)) } } } @@ -70039,7 +70401,7 @@ var _azTypes = [5]uintptr{ 1: __ccgo_ts + 1144, 2: __ccgo_ts + 1149, 3: __ccgo_ts + 1127, - 4: __ccgo_ts + 1649, + 4: __ccgo_ts + 1663, } // C documentation @@ -70053,7 +70415,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { defer tls.Free(768) var aCol, aMem, aOffset, aOp, aPermute, aRoot, apArg, apArg1, db, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pnErr, t1, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v240, v241, v242, v250, v251, v252, v253, v255, v263, v278, v279, v286, v288, v297, v298, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 uintptr var affinity uint8 - var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 + var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, savedAnalysisLimit, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 var colCacheCtr, iAddr, iMap, iPrior, idx, len11, n3, p22, p23, serialType, serial_type, v213, v214, v216, v221, v222 Tu32 var encoding, isWriteLock, mTrace, op, p5, resetSchemaOnFault, vtabOnConflict, v225 Tu8 var flags1, flags11, flags2, flags3, flags31, newType, nullFlag, type1, type2, typeMask, v190 Tu16 @@ -70110,7 +70472,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { var _ /* z at bp+560 */ uintptr var _ /* zErr at bp+524 */ uintptr var _ /* zErr at bp+644 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, savedAnalysisLimit, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 aOp = (*TVdbe)(unsafe.Pointer(p)).FaOp /* Copy of p->aOp */ pOp = aOp /* Current operation */ rc = SQLITE_OK /* Value to return */ @@ -70386,7 +70748,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto _109 case int32(OP_SeekEnd): goto _110 - case int32(OP_IfSmaller): + case int32(OP_IfSizeBetween): goto _111 case int32(OP_Sort): goto _112 @@ -70588,6 +70950,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { */ _2: ; /* jump */ + goto jump_to_p2_and_check_for_interrupt jump_to_p2_and_check_for_interrupt: ; pOp = aOp + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp2-int32(1))*20 @@ -70601,6 +70964,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** way for performance, to avoid having to run the interrupt and progress ** checks on every opcode. This helps sqlite3_step() to run about 1.5% ** faster according to "valgrind --tool=cachegrind" */ + goto check_for_interrupt check_for_interrupt: ; if libc.AtomicLoadNInt32(db+312, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0 { @@ -70681,7 +71045,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: EndCoroutine */ _5: - ; /* jump */ + ; /* jump0 */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -70694,6 +71058,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* Most jump operations do a goto to this spot in order to update ** the pOp pointer. */ + goto jump_to_p2 jump_to_p2: ; _ = libc.Int32FromInt32(0) /* There are never any jumps to instruction 0 */ @@ -70704,7 +71069,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** ** The instruction at the address in register P1 is a Yield. ** Jump to the P2 parameter of that Yield. - ** After the jump, register P1 becomes undefined. + ** After the jump, the value register P1 is left with a value + ** such that subsequent OP_Yields go back to the this same + ** OP_EndCoroutine instruction. ** ** See also: InitCoroutine */ @@ -70716,8 +71083,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pCaller = aOp + uintptr(*(*Ti64)(unsafe.Pointer(pIn1)))*20 _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) + *(*Ti64)(unsafe.Pointer(pIn1)) = int64((int32(pOp)-int32((*TVdbe)(unsafe.Pointer(p)).FaOp))/20 - int32(1)) pOp = aOp + uintptr((*TVdbeOp)(unsafe.Pointer(pCaller)).Fp2-int32(1))*20 - (*TMem)(unsafe.Pointer(pIn1)).Fflags = uint16(MEM_Undefined) goto _187 /* Opcode: Yield P1 P2 * * * ** @@ -70816,15 +71183,15 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) if (*TVdbe)(unsafe.Pointer(p)).Frc != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+5614, libc.VaList(bp+736, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) + _sqlite3VdbeError(tls, p, __ccgo_ts+5678, libc.VaList(bp+736, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) if *(*uintptr)(unsafe.Pointer(pOp + 16)) != 0 { - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5635, libc.VaList(bp+736, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5699, libc.VaList(bp+736, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } } else { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+736, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+736, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } pcx = (int32(pOp) - int32(aOp)) / 20 - Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5642, libc.VaList(bp+736, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) + Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5706, libc.VaList(bp+736, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) } rc = _sqlite3VdbeHalt(tls, p) _ = libc.Int32FromInt32(0) @@ -71029,18 +71396,14 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } (*TMem)(unsafe.Pointer(pOut)).Fenc = encoding goto _187 - /* Opcode: Variable P1 P2 * P4 * - ** Synopsis: r[P2]=parameter(P1,P4) + /* Opcode: Variable P1 P2 * * * + ** Synopsis: r[P2]=parameter(P1) ** ** Transfer the values of bound parameter P1 into register P2 - ** - ** If the parameter is named, then its name appears in P4. - ** The P4 value is used by sqlite3_bind_parameter_name(). */ _19: ; /* Value being transferred */ _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1-int32(1))*40 if _sqlite3VdbeMemTooBig(tls, pVar) != 0 { goto too_big @@ -71342,6 +71705,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(int32(type1)&int32(type2)&int32(MEM_Int) != 0) { goto _200 } + goto int_math int_math: ; iA = *(*Ti64)(unsafe.Pointer(pIn1)) @@ -71394,6 +71758,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if int32(type1)&int32(type2)&int32(MEM_Int) != 0 { goto int_math } + goto fp_math fp_math: ; rA = _sqlite3VdbeRealValue(tls, pIn1) @@ -71433,6 +71798,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _201: ; goto _187 + goto arithmetic_result_is_null arithmetic_result_is_null: ; _sqlite3VdbeMemSetNull(tls, pOut) @@ -71574,7 +71940,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** raise an SQLITE_MISMATCH exception. */ _38: - ; /* jump, in1 */ + ; /* jump0, in1 */ pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*40 if int32((*TMem)(unsafe.Pointer(pIn1)).Fflags)&int32(MEM_Int) == 0 { _applyAffinity(tls, pIn1, uint8(SQLITE_AFF_NUMERIC), encoding) @@ -72345,6 +72711,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) pC3 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*4)) p22 = uint32((*TOp)(unsafe.Pointer(pOp)).Fp2) + goto op_column_restart op_column_restart: ; _ = libc.Int32FromInt32(0) @@ -72484,6 +72851,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { zData = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaRow } /* Fill in pC->aType[i] and aOffset[i] values through the p2-th field. */ + goto op_column_read_header op_column_read_header: ; i1 = int32((*TVdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed) @@ -72626,16 +72994,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } } + goto op_column_out op_column_out: ; goto _187 + goto op_column_corrupt op_column_corrupt: ; if (*(*TOp)(unsafe.Pointer(aOp))).Fp3 > 0 { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*20 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(95863)) + rc = _sqlite3CorruptError(tls, int32(96311)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -72741,9 +73111,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } _ = libc.Int32FromInt32(0) goto _187 + goto vdbe_type_error vdbe_type_error: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5666, libc.VaList(bp+736, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*12 + 4))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*12))).FzCnName)) + _sqlite3VdbeError(tls, p, __ccgo_ts+5730, libc.VaList(bp+736, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*12 + 4))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*12))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(12)< 0 && p12 == int32(SAVEPOINT_RELEASE) { /* It is not possible to release (commit) a savepoint if there are ** active write statements. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5780, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5844, 0) rc = int32(SQLITE_BUSY) } else { /* Determine whether or not this is a transaction savepoint. If so, @@ -73376,7 +73747,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If this instruction implements a COMMIT and other VMs are writing ** return an error indicating that the other VMs must complete first. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5834, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5898, 0) rc = int32(SQLITE_BUSY) goto abort_due_to_error } else { @@ -73406,12 +73777,12 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto vdbe_return } else { if !(desiredAutoCommit != 0) { - v250 = __ccgo_ts + 5889 + v250 = __ccgo_ts + 5953 } else { if iRollback != 0 { - v251 = __ccgo_ts + 5937 + v251 = __ccgo_ts + 6001 } else { - v251 = __ccgo_ts + 5980 + v251 = __ccgo_ts + 6044 } v250 = v251 } @@ -73513,7 +73884,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** SQL statement was prepared. */ _sqlite3DbFree(tls, db, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg) - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6021) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6085) /* If the schema-cookie from the database file matches the cookie ** stored with the in-memory representation of the schema, do ** not reload the schema from the database file. @@ -73783,6 +74154,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** and report database corruption if they were not, but this check has ** since moved into the btree layer. */ (*TVdbeCursor)(unsafe.Pointer(pCur)).FisTable = libc.BoolUint8(int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) != -int32(8)) + goto open_cursor_set_hints open_cursor_set_hints: ; _ = libc.Int32FromInt32(0) @@ -73870,7 +74242,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*40))).Fn = 0 - (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*40))).Fz = __ccgo_ts + 1648 + (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*40))).Fz = __ccgo_ts + 1662 } pCx1 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*4)) if pCx1 != 0 && !(int32(TBool(*(*uint8)(unsafe.Pointer(pCx1 + 8))&0x8>>3)) != 0) && (*TOp)(unsafe.Pointer(pOp)).Fp2 <= int32((*TVdbeCursor)(unsafe.Pointer(pCx1)).FnField) { @@ -73986,7 +74358,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** is the only cursor opcode that works with a pseudo-table. ** ** P3 is the number of fields in the records that will be stored by - ** the pseudo-table. + ** the pseudo-table. If P2 is 0 or negative then the pseudo-cursor + ** will return NULL for every column. */ _83: ; @@ -74108,11 +74481,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: Found, NotFound, SeekGt, SeekGe, SeekLt */ _88: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _87: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _86: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _85: ; /* Only interested in == results */ _ = libc.Int32FromInt32(0) @@ -74275,6 +74648,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 96)) = _sqlite3BtreeEof(tls, *(*uintptr)(unsafe.Pointer(pC5 + 36))) } } + goto seek_not_found seek_not_found: ; _ = libc.Int32FromInt32(0) @@ -74389,6 +74763,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(*(*int32)(unsafe.Pointer(bp + 136)) > 0 && int32((*TOp)(unsafe.Pointer(pOp)).Fp5) == 0) { goto _259 } + goto seekscan_search_fail seekscan_search_fail: ; /* Jump to SeekGE.P2, ending the loop */ @@ -74716,6 +75091,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) iKey1 = uint64(*(*Ti64)(unsafe.Pointer(pIn3))) + goto notExistsWithKey notExistsWithKey: ; pC10 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*4)) @@ -74735,7 +75111,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp + 208)) != 0 { _ = libc.Int32FromInt32(0) if (*TOp)(unsafe.Pointer(pOp)).Fp2 == 0 { - rc = _sqlite3CorruptError(tls, int32(98111)) + rc = _sqlite3CorruptError(tls, int32(98565)) } else { goto jump_to_p2 } @@ -75410,14 +75786,20 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } goto _187 - /* Opcode: IfSmaller P1 P2 P3 * * + /* Opcode: IfSizeBetween P1 P2 P3 P4 * ** - ** Estimate the number of rows in the table P1. Jump to P2 if that - ** estimate is less than approximately 2**(0.1*P3). + ** Let N be the approximate number of rows in the table or index + ** with cursor P1 and let X be 10*log2(N) if N is positive or -1 + ** if N is zero. + ** + ** Jump to P2 if X is in between P3 and P4, inclusive. */ _111: ; _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) pC20 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*4)) _ = libc.Int32FromInt32(0) pCrsr5 = *(*uintptr)(unsafe.Pointer(pC20 + 36)) @@ -75426,12 +75808,14 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { goto abort_due_to_error } - if *(*int32)(unsafe.Pointer(bp + 332)) == 0 { + if *(*int32)(unsafe.Pointer(bp + 332)) != 0 { + sz = int64(-int32(1)) /* -Infinity encoding */ + } else { sz = _sqlite3BtreeRowCountEst(tls, pCrsr5) - if sz >= 0 && int32(_sqlite3LogEst(tls, uint64(sz))) < (*TOp)(unsafe.Pointer(pOp)).Fp3 { - *(*int32)(unsafe.Pointer(bp + 332)) = int32(1) - } + _ = libc.Int32FromInt32(0) + sz = int64(_sqlite3LogEst(tls, uint64(sz))) } + *(*int32)(unsafe.Pointer(bp + 332)) = libc.BoolInt32(sz >= int64((*TOp)(unsafe.Pointer(pOp)).Fp3) && sz <= int64(*(*int32)(unsafe.Pointer(pOp + 16)))) if *(*int32)(unsafe.Pointer(bp + 332)) != 0 { goto jump_to_p2 } @@ -75587,6 +75971,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) rc = _sqlite3BtreeNext(tls, *(*uintptr)(unsafe.Pointer(pC22 + 36)), (*TOp)(unsafe.Pointer(pOp)).Fp3) + goto next_tail next_tail: ; (*TVdbeCursor)(unsafe.Pointer(pC22)).FcacheStatus = uint32(CACHE_STALE) @@ -75737,7 +76122,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } else { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 && !(_sqlite3WritableSchema(tls, db) != 0) { - rc = _sqlite3ReportError(tls, libc.Int32FromInt32(SQLITE_CORRUPT)|libc.Int32FromInt32(3)< int64(0x7fffffff) { - rc = _sqlite3CorruptError(tls, int32(99398)) + rc = _sqlite3CorruptError(tls, int32(99862)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+464, db, uint16(0)) @@ -76083,11 +76468,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } *(*Ti64)(unsafe.Pointer(pOut)) = int64(*(*TPgno)(unsafe.Pointer(bp + 520))) goto _187 - /* Opcode: SqlExec * * * P4 * + /* Opcode: SqlExec P1 P2 * P4 * ** ** Run the SQL statement or statements specified in the P4 string. - ** Disable Auth and Trace callbacks while those statements are running if - ** P1 is true. + ** + ** The P1 parameter is a bitmask of options: + ** + ** 0x0001 Disable Auth and Trace callbacks while the statements + ** in P4 are running. + ** + ** 0x0002 Set db->nAnalysisLimit to P2 while the statements in + ** P4 are running. + ** */ _132: ; @@ -76095,16 +76487,21 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*uintptr)(unsafe.Pointer(bp + 524)) = uintptr(0) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth mTrace = (*Tsqlite3)(unsafe.Pointer(db)).FmTrace - if (*TOp)(unsafe.Pointer(pOp)).Fp1 != 0 { + savedAnalysisLimit = (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0001) != 0 { (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(0) } + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0002) != 0 { + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = (*TOp)(unsafe.Pointer(pOp)).Fp2 + } rc = Xsqlite3_exec(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16)), uintptr(0), uintptr(0), bp+524) (*Tsqlite3)(unsafe.Pointer(db)).FnSqlExec-- (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = mTrace + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = savedAnalysisLimit if *(*uintptr)(unsafe.Pointer(bp + 524)) != 0 || rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+736, *(*uintptr)(unsafe.Pointer(bp + 524)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+736, *(*uintptr)(unsafe.Pointer(bp + 524)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 524))) if rc == int32(SQLITE_NOMEM) { goto no_mem @@ -76137,13 +76534,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*Tu32)(unsafe.Pointer(db + 24)) |= uint32(DBFLAG_SchemaChange) libc.SetBitFieldPtr16Uint32(p+152, libc.Uint32FromInt32(0), 0, 0x3) } else { - zSchema = __ccgo_ts + 6066 + zSchema = __ccgo_ts + 6130 (*(*TInitData)(unsafe.Pointer(bp + 528))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 528))).FiDb = iDb3 (*(*TInitData)(unsafe.Pointer(bp + 528))).FpzErrMsg = p + 124 (*(*TInitData)(unsafe.Pointer(bp + 528))).FmInitFlags = uint32(0) (*(*TInitData)(unsafe.Pointer(bp + 528))).FmxPage = _sqlite3BtreeLastPage(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*16))).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6080, libc.VaList(bp+736, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*16))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6144, libc.VaList(bp+736, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*16))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -76160,7 +76557,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* The OP_ParseSchema opcode with a non-NULL P4 argument should parse ** at least one SQL statement. Any less than that indicates that ** the sqlite_schema table is corrupt. */ - rc = _sqlite3CorruptError(tls, int32(99678)) + rc = _sqlite3CorruptError(tls, int32(100155)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -76227,11 +76624,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* Opcode: IntegrityCk P1 P2 P3 P4 P5 ** ** Do an analysis of the currently open database. Store in - ** register P1 the text of an error message describing any problems. - ** If no problems are found, store a NULL in register P1. + ** register (P1+1) the text of an error message describing any problems. + ** If no problems are found, store a NULL in register (P1+1). ** - ** The register P3 contains one less than the maximum number of allowed errors. - ** At most reg(P3) errors will be reported. + ** The register (P1) contains one less than the maximum number of allowed + ** errors. At most reg(P1) errors will be reported. ** In other words, the analysis stops as soon as reg(P1) errors are ** seen. Reg(P1) is updated with the number of errors remaining. ** @@ -76246,18 +76643,20 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _138: ; /* Register keeping track of errors remaining */ _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) nRoot = (*TOp)(unsafe.Pointer(pOp)).Fp2 aRoot = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*40 _ = libc.Int32FromInt32(0) + pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*40 _ = libc.Int32FromInt32(0) - pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*40 + _ = libc.Int32FromInt32(0) + pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1+int32(1))*40 _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*16))).FpBt, aRoot+1*4, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+556, bp+560) + rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*16))).FpBt, aRoot+1*4, aMem+uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*40, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+556, bp+560) _sqlite3VdbeMemSetNull(tls, pIn1) if *(*int32)(unsafe.Pointer(bp + 556)) == 0 { _ = libc.Int32FromInt32(0) @@ -76371,7 +76770,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** P1 contains the address of the memory cell that contains the first memory ** cell in an array of values used as arguments to the sub-program. P2 ** contains the address to jump to if the sub-program throws an IGNORE - ** exception using the RAISE() function. Register P3 contains the address + ** exception using the RAISE() function. P2 might be zero, if there is + ** no possibility that an IGNORE exception will be raised. + ** Register P3 contains the address ** of a memory cell in this (the parent) VM that is used to allocate the ** memory required by the sub-vdbe at runtime. ** @@ -76413,7 +76814,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } if (*TVdbe)(unsafe.Pointer(p)).FnFrame >= *(*int32)(unsafe.Pointer(db + 120 + 10*4)) { rc = int32(SQLITE_ERROR) - _sqlite3VdbeError(tls, p, __ccgo_ts+6123, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6187, 0) goto abort_due_to_error } /* Register pRt is used to store the memory required to save the state @@ -76797,7 +77198,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* IMP: R-24505-23230 */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+736, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+736, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError } if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FskipFlag != 0 { @@ -76859,7 +77260,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3VdbeMemFinalize(tls, pMem3, *(*uintptr)(unsafe.Pointer(pOp + 16))) } if rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+736, Xsqlite3_value_text(tls, pMem3))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+736, Xsqlite3_value_text(tls, pMem3))) goto abort_due_to_error } _sqlite3VdbeChangeEncoding(tls, pMem3, int32(encoding)) @@ -76944,11 +77345,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeRead > int32(1) { rc = int32(SQLITE_ERROR) if eNew == int32(PAGER_JOURNALMODE_WAL) { - v286 = __ccgo_ts + 6160 + v286 = __ccgo_ts + 6224 } else { - v286 = __ccgo_ts + 6165 + v286 = __ccgo_ts + 6229 } - _sqlite3VdbeError(tls, p, __ccgo_ts+6172, libc.VaList(bp+736, v286)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6236, libc.VaList(bp+736, v286)) goto abort_due_to_error } else { if eOld == int32(PAGER_JOURNALMODE_WAL) { @@ -77116,7 +77517,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { if rc&int32(0xFF) == int32(SQLITE_LOCKED) { z1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - _sqlite3VdbeError(tls, p, __ccgo_ts+6224, libc.VaList(bp+736, z1)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6288, libc.VaList(bp+736, z1)) } goto abort_due_to_error } @@ -77294,7 +77695,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TValueList)(unsafe.Pointer(pRhs)).FpOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*40 pOut = _out2Prerelease(tls, p, pOp) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6253, __ccgo_fp(_sqlite3VdbeValueListFree)) + _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6317, __ccgo_fp(_sqlite3VdbeValueListFree)) goto _187 /* Opcode: VFilter P1 P2 P3 P4 * ** Synopsis: iplan=r[P3] zplan='P4' @@ -77399,7 +77800,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_module)(unsafe.Pointer(pModule4)).FxColumn})))(tls, *(*uintptr)(unsafe.Pointer(pCur5 + 36)), bp+648, (*TOp)(unsafe.Pointer(pOp)).Fp2) _sqlite3VtabImportErrmsg(tls, p, pVtab4) if (*(*Tsqlite3_context)(unsafe.Pointer(bp + 648))).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+736, Xsqlite3_value_text(tls, pDest2))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+736, Xsqlite3_value_text(tls, pDest2))) rc = (*(*Tsqlite3_context)(unsafe.Pointer(bp + 648))).FisError } _sqlite3VdbeChangeEncoding(tls, pDest2, int32(encoding)) @@ -77668,7 +78069,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If the function returned an error, throw an exception */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+736, Xsqlite3_value_text(tls, pOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+736, Xsqlite3_value_text(tls, pOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError } _sqlite3VdbeDeleteAuxData(tls, db, p+228, (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FiOp, (*TOp)(unsafe.Pointer(pOp)).Fp1) @@ -77830,7 +78231,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { Xsqlite3_free(tls, z2) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeExec > int32(1) { - z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6263, libc.VaList(bp+736, zTrace)) + z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6327, libc.VaList(bp+736, zTrace)) (*(*func(*libc.TLS, Tu32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*Tsqlite3)(unsafe.Pointer(db)).Ftrace))})))(tls, uint32(SQLITE_TRACE_STMT), (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg, p, z3) _sqlite3DbFree(tls, db, z3) } else { @@ -77897,22 +78298,23 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If we reach this point, it means that execution is finished with ** an error of some kind. */ + goto abort_due_to_error abort_due_to_error: ; if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)<= nProgressLimit && (*Tsqlite3)(unsafe.Pointer(db)).FxProgress != uintptr(0) { @@ -77948,22 +78351,25 @@ vdbe_return: /* Jump to here if a string or blob larger than SQLITE_MAX_LENGTH ** is encountered. */ + goto too_big too_big: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5423, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5487, 0) rc = int32(SQLITE_TOOBIG) goto abort_due_to_error /* Jump to here if a malloc() fails. */ + goto no_mem no_mem: ; _sqlite3OomFault(tls, db) - _sqlite3VdbeError(tls, p, __ccgo_ts+1618, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+1632, 0) rc = int32(SQLITE_NOMEM) goto abort_due_to_error /* Jump to here if the sqlite3_interrupt() API sets the interrupt ** flag. */ + goto abort_due_to_interrupt abort_due_to_interrupt: ; _ = libc.Int32FromInt32(0) @@ -77973,10 +78379,10 @@ abort_due_to_interrupt: } var _azType = [4]uintptr{ - 0: __ccgo_ts + 5580, - 1: __ccgo_ts + 5589, - 2: __ccgo_ts + 5596, - 3: __ccgo_ts + 5602, + 0: __ccgo_ts + 5644, + 1: __ccgo_ts + 5653, + 2: __ccgo_ts + 5660, + 3: __ccgo_ts + 5666, } var _and_logic = [9]uint8{ @@ -78130,16 +78536,16 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr type1 = v1 if type1 < uint32(12) { if type1 == uint32(0) { - v2 = __ccgo_ts + 1634 + v2 = __ccgo_ts + 1648 } else { if type1 == uint32(7) { - v3 = __ccgo_ts + 6301 + v3 = __ccgo_ts + 6365 } else { - v3 = __ccgo_ts + 6306 + v3 = __ccgo_ts + 6370 } v2 = v3 } - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6314, libc.VaList(bp+8, v2)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6378, libc.VaList(bp+8, v2)) rc = int32(SQLITE_ERROR) Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) @@ -78157,10 +78563,10 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr rc = Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) if rc == SQLITE_OK { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6343, libc.VaList(bp+8, iRow)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6407, libc.VaList(bp+8, iRow)) rc = int32(SQLITE_ERROR) } else { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) } } } @@ -78202,15 +78608,15 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, pTab = _sqlite3LocateTable(tls, bp+4, uint32(0), zTable, zDb) if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+4, __ccgo_ts+6363, libc.VaList(bp+296, zTable)) + _sqlite3ErrorMsg(tls, bp+4, __ccgo_ts+6427, libc.VaList(bp+296, zTable)) } if pTab != 0 && !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+4, __ccgo_ts+6393, libc.VaList(bp+296, zTable)) + _sqlite3ErrorMsg(tls, bp+4, __ccgo_ts+6457, libc.VaList(bp+296, zTable)) } if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+4, __ccgo_ts+6429, libc.VaList(bp+296, zTable)) + _sqlite3ErrorMsg(tls, bp+4, __ccgo_ts+6493, libc.VaList(bp+296, zTable)) } if !(pTab != 0) { if (*(*TParse)(unsafe.Pointer(bp + 4))).FzErrMsg != 0 { @@ -78240,7 +78646,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6450, libc.VaList(bp+296, zColumn)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6514, libc.VaList(bp+296, zColumn)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -78267,7 +78673,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, break } if (*(*TsColMap)(unsafe.Pointer(pFKey + 36 + uintptr(j)*8))).FiFrom == iCol { - zFault = __ccgo_ts + 6471 + zFault = __ccgo_ts + 6535 } goto _3 _3: @@ -78292,7 +78698,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } /* FIXME: Be smarter about indexes that use expressions */ if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == iCol || int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == -int32(2) { - zFault = __ccgo_ts + 6483 + zFault = __ccgo_ts + 6547 } goto _5 _5: @@ -78306,7 +78712,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if zFault != 0 { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6491, libc.VaList(bp+296, zFault)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6555, libc.VaList(bp+296, zFault)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -78369,6 +78775,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } _sqlite3ParseObjectReset(tls, bp+4) } + goto blob_open_out blob_open_out: ; if rc == SQLITE_OK && int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { @@ -78380,7 +78787,7 @@ blob_open_out: _sqlite3DbFree(tls, db, pBlob) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v7 = __ccgo_ts + 3795 + v7 = __ccgo_ts + 3859 } else { v7 = libc.UintptrFromInt32(0) } @@ -78470,7 +78877,7 @@ func _blobReadWrite(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset in _, _, _, _, _ = db, iKey, p, rc, v p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102190)) + return _sqlite3MisuseError(tls, int32(102671)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -78572,7 +78979,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r _, _, _, _ = db, p, rc, v1 p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102290)) + return _sqlite3MisuseError(tls, int32(102771)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -78586,7 +78993,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r rc = _blobSeekToRow(tls, p, iRow, bp) if rc != SQLITE_OK { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v1 = __ccgo_ts + 3795 + v1 = __ccgo_ts + 3859 } else { v1 = libc.UintptrFromInt32(0) } @@ -82840,25 +83247,25 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema _ = zLegacy _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6525, int32(7)) != 0 { + if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6589, int32(7)) != 0 { return 0 } zLegacy = (*TTable)(unsafe.Pointer(pTab)).FzName - if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6533+7) == 0 { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6552+7) == 0 { + if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6597+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6616+7) == 0 { return int32(1) } if pSchema == uintptr(0) { return 0 } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6066+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6130+7) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6571+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6635+7) == 0 { return int32(1) } } else { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6571+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6635+7) == 0 { return int32(1) } } @@ -82894,28 +83301,29 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema // ** If the name cannot be resolved unambiguously, leave an error message // ** in pParse and return WRC_Abort. Return WRC_Prune on success. // */ -func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol uintptr, pNC uintptr, pExpr uintptr) (r int32) { +func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRight uintptr, pNC uintptr, pExpr uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var cnt, cntTab, eNewExprOp, hit, i, iCol, j, nSubquery, op, v5 int32 - var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10 uintptr + var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10 uintptr var hCol, hCol1 Tu8 var v7, v8 uint32 var _ /* bRowid at bp+4 */ int32 var _ /* pFJMatch at bp+0 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10, v5, v7, v8 /* Loop counters */ - cnt = 0 /* Number of matching column names */ - cntTab = 0 /* Number of potential "rowid" matches */ - nSubquery = 0 /* How many levels of subquery */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ - pMatch = uintptr(0) /* The matching pSrcList item */ - pTopNC = pNC /* First namecontext in the list */ - pSchema = uintptr(0) /* Schema of the expression */ - eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ - pTab = uintptr(0) /* A column of pTab */ - *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ - _ = libc.Int32FromInt32(0) /* the name context cannot be NULL. */ - _ = libc.Int32FromInt32(0) /* The Z in X.Y.Z cannot be NULL */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10, v5, v7, v8 /* Loop counters */ + cnt = 0 /* Number of matching column names */ + cntTab = 0 /* Number of potential "rowid" matches */ + nSubquery = 0 /* How many levels of subquery */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ + pMatch = uintptr(0) /* The matching pSrcList item */ + pTopNC = pNC /* First namecontext in the list */ + pSchema = uintptr(0) /* Schema of the expression */ + eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ + pTab = uintptr(0) /* A column of pTab */ + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + zCol = *(*uintptr)(unsafe.Pointer(pRight + 8)) + _ = libc.Int32FromInt32(0) /* the name context cannot be NULL. */ + _ = libc.Int32FromInt32(0) /* The Z in X.Y.Z cannot be NULL */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) /* Initialize the node to no-match */ @@ -82947,7 +83355,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ; i++ } - if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6585, zDb) == 0 { + if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6649, zDb) == 0 { /* This branch is taken when the main database has been renamed ** using SQLITE_DBCONFIG_MAINDBNAME. */ pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema @@ -83049,7 +83457,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TTable)(unsafe.Pointer(pTab)).FpSchema != pSchema { goto _2 } - if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6590) != 0 { + if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6654) != 0 { goto _2 } } @@ -83164,16 +83572,16 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol op = int32((*TParse)(unsafe.Pointer(pParse)).FeTriggerOp) _ = libc.Int32FromInt32(0) if (*TParse)(unsafe.Pointer(pParse)).FbReturning != 0 { - if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0) { + if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0 || _isValidSchemaTableName(tls, zTab, (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab, uintptr(0)) != 0) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = libc.BoolInt32(op != int32(TK_DELETE)) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } } else { - if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6592, zTab) == 0 { + if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6656, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(1) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } else { - if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6596, zTab) == 0 { + if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6660, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = 0 pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } @@ -83182,7 +83590,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UUpsert) != 0 && zTab != uintptr(0) { pUpsert = *(*uintptr)(unsafe.Pointer(pNC + 8)) - if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6600, zTab) == 0 { + if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6664, zTab) == 0 { pTab = (*(*TSrcItem)(unsafe.Pointer((*TUpsert)(unsafe.Pointer(pUpsert)).FpUpsertSrc + 8))).FpTab (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(EXCLUDED_TABLE_NUMBER) } @@ -83304,15 +83712,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol _ = libc.Int32FromInt32(0) pOrig = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(j)*20))).FpExpr if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 && (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6609, libc.VaList(bp+16, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6673, libc.VaList(bp+16, zAs)) return int32(WRC_Abort) } if (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Win)) != uint32(0) && ((*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 || pNC != pTopNC) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6640, libc.VaList(bp+16, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6704, libc.VaList(bp+16, zAs)) return int32(WRC_Abort) } if _sqlite3ExprVectorSize(tls, pOrig) != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6677, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6741, 0) return int32(WRC_Abort) } _resolveAlias(tls, pParse, pEList, j, pExpr, nSubquery) @@ -83366,7 +83774,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** a huge amount of legacy SQL that uses it. So for now, we just ** issue a warning. */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6695, libc.VaList(bp+16, zCol)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6759, libc.VaList(bp+16, zCol)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_STRING) libc.Xmemset(tls, pExpr+44, 0, uint32(8)) return int32(WRC_Prune) @@ -83397,7 +83805,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } _extendFJMatch(tls, pParse, bp, pMatch, (*TExpr)(unsafe.Pointer(pExpr)).FiColumn) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_FUNCTION) - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6730 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6794 *(*uintptr)(unsafe.Pointer(pExpr + 20)) = *(*uintptr)(unsafe.Pointer(bp)) cnt = int32(1) goto lookupname_end @@ -83407,18 +83815,22 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } } if cnt == 0 { - v10 = __ccgo_ts + 6739 + v10 = __ccgo_ts + 6803 } else { - v10 = __ccgo_ts + 6754 + v10 = __ccgo_ts + 6818 } zErr = v10 if zDb != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6776, libc.VaList(bp+16, zErr, zDb, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6840, libc.VaList(bp+16, zErr, zDb, zTab, zCol)) } else { if zTab != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6789, libc.VaList(bp+16, zErr, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6853, libc.VaList(bp+16, zErr, zTab, zCol)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6799, libc.VaList(bp+16, zErr, zCol)) + if cnt == 0 && (*TExpr)(unsafe.Pointer(pRight)).Fflags&uint32(libc.Int32FromInt32(EP_DblQuoted)) != uint32(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6863, libc.VaList(bp+16, zErr, zCol)) + } else { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6924, libc.VaList(bp+16, zErr, zCol)) + } } } _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -83449,10 +83861,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** If a generated column is referenced, set bits for every column ** of the table. */ - if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 && cnt == int32(1) && pMatch != uintptr(0) { - *(*TBitmask)(unsafe.Pointer(pMatch + 56)) |= _sqlite3ExprColUsed(tls, pExpr) + if pMatch != 0 { + if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { + *(*TBitmask)(unsafe.Pointer(pMatch + 56)) |= _sqlite3ExprColUsed(tls, pExpr) + } else { + libc.SetBitFieldPtr16Uint32(pMatch+36+4, libc.Uint32FromInt32(1), 14, 0x4000) + } } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(eNewExprOp) + goto lookupname_end lookupname_end: ; if cnt == int32(1) { @@ -83545,19 +83962,19 @@ func _notValidImpl(tls *libc.TLS, pParse uintptr, pNC uintptr, zMsg uintptr, pEx defer tls.Free(32) var zIn uintptr _ = zIn - zIn = __ccgo_ts + 6806 + zIn = __ccgo_ts + 6931 if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IdxExpr) != 0 { - zIn = __ccgo_ts + 6834 + zIn = __ccgo_ts + 6959 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IsCheck) != 0 { - zIn = __ccgo_ts + 6852 + zIn = __ccgo_ts + 6977 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_GenCol) != 0 { - zIn = __ccgo_ts + 6870 + zIn = __ccgo_ts + 6995 } } } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6888, libc.VaList(bp+8, zMsg, zIn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7013, libc.VaList(bp+8, zMsg, zIn)) if pExpr != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } @@ -83607,8 +84024,8 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { var anRef [8]int32 var auth, i, is_agg, n, nLeft, nRef, nRight, no_such_func, rc, savedAllowFlags, wrong_num_args, v12, v4, v6, v7 int32 var enc Tu8 - var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zColumn, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zColumn, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 + var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 pNC = *(*uintptr)(unsafe.Pointer(pWalker + 24)) _ = libc.Int32FromInt32(0) pParse = (*TNameContext)(unsafe.Pointer(pNC)).FpParse @@ -83733,12 +84150,12 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { zDb = uintptr(0) zTable = uintptr(0) _ = libc.Int32FromInt32(0) - zColumn = *(*uintptr)(unsafe.Pointer(pExpr + 8)) + pRight = pExpr } else { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+6908, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7033, uintptr(0), pExpr) } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_ID) { @@ -83752,14 +84169,13 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { } _ = libc.Int32FromInt32(0) zTable = *(*uintptr)(unsafe.Pointer(pLeft + 8)) - zColumn = *(*uintptr)(unsafe.Pointer(pRight + 8)) _ = libc.Int32FromInt32(0) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameTokenRemap(tls, pParse, pExpr, pRight) _sqlite3RenameTokenRemap(tls, pParse, pExpr+44, pLeft) } } - return _lookupName(tls, pParse, zDb, zTable, zColumn, pNC, pExpr) + return _lookupName(tls, pParse, zDb, zTable, pRight, pNC, pExpr) /* Resolve function names */ fallthrough @@ -83800,7 +84216,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if n == int32(2) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = _exprProbability(tls, (*(*TExprList_item)(unsafe.Pointer(pList + 8 + 1*20))).FpExpr) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6925, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7050, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } } else { @@ -83824,7 +84240,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { auth = _sqlite3AuthCheck(tls, pParse, int32(SQLITE_FUNCTION), uintptr(0), (*TFuncDef)(unsafe.Pointer(pDef)).FzName, uintptr(0)) if auth != SQLITE_OK { if auth == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6989, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7114, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) @@ -83846,7 +84262,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { ** all this. */ _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7025, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7150, uintptr(0), pExpr) } } else { _ = libc.Int32FromInt32(0) /* Must fit in 8 bits */ @@ -83871,29 +84287,29 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if 0 == libc.BoolInt32(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME)) { _ = libc.Int32FromInt32(0) if pDef != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FxValue == uintptr(0) && pWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7053, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7178, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 || is_agg != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 && !(pWin != 0) || is_agg != 0 && pWin != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 { if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 || pWin != 0 { - zType = __ccgo_ts + 7096 + zType = __ccgo_ts + 7221 } else { - zType = __ccgo_ts + 7103 + zType = __ccgo_ts + 7228 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7113, libc.VaList(bp+8, zType, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7238, libc.VaList(bp+8, zType, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ is_agg = 0 } else { if no_such_func != 0 && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7141, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7266, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if wrong_num_args != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7163, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7288, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7207, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7332, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { @@ -83917,7 +84333,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { *(*int32)(unsafe.Pointer(pNC + 24)) &= ^(libc.Int32FromInt32(NC_AllowWin) | v7) } } else { - if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { is_agg = int32(1) } } @@ -83983,21 +84399,23 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { case int32(TK_IN): if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) { nRef = (*TNameContext)(unsafe.Pointer(pNC)).FnRef + _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_SelfRef) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7255, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7380, pExpr, pExpr) } else { _sqlite3WalkSelect(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 20))) } _ = libc.Int32FromInt32(0) if nRef != (*TNameContext)(unsafe.Pointer(pNC)).FnRef { *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 20)) + 4)) |= uint32(SF_Correlated) } *(*int32)(unsafe.Pointer(pNC + 24)) |= int32(NC_Subquery) } case int32(TK_VARIABLE): _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IsCheck)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7266, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7391, pExpr, pExpr) } case int32(TK_IS): fallthrough @@ -84047,7 +84465,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { nRight = _sqlite3ExprVectorSize(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight) } if nLeft != nRight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6677, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6741, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } break @@ -84175,7 +84593,7 @@ func _resolveOrderByTermToExprList(tls *libc.TLS, pParse uintptr, pSelect uintpt func _resolveOutOfRangeError(tls *libc.TLS, pParse uintptr, zType uintptr, i int32, mx int32, pError uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7277, libc.VaList(bp+8, i, zType, mx)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7402, libc.VaList(bp+8, i, zType, mx)) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pError) } @@ -84210,7 +84628,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 120 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7333, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7458, 0) return int32(1) } i = 0 @@ -84249,7 +84667,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } if _sqlite3ExprIsInteger(tls, pE, bp) != 0 { if *(*int32)(unsafe.Pointer(bp)) <= 0 || *(*int32)(unsafe.Pointer(bp)) > (*TExprList)(unsafe.Pointer(pEList)).FnExpr { - _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7367, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) + _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7492, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) return int32(1) } } else { @@ -84322,7 +84740,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r break } if int32(uint32(*(*uint16)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*20 + 8 + 4))&0x4>>2)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7373, libc.VaList(bp+16, i+int32(1))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7498, libc.VaList(bp+16, i+int32(1))) return int32(1) } goto _3 @@ -84356,7 +84774,7 @@ func _sqlite3ResolveOrderGroupBy(tls *libc.TLS, pParse uintptr, pSelect uintptr, return 0 } if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 120 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7434, libc.VaList(bp+8, zType)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7559, libc.VaList(bp+8, zType)) return int32(1) } pEList = (*TSelect)(unsafe.Pointer(pSelect)).FpEList @@ -84608,6 +85026,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } pItem = (*TSelect)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*72 + _ = libc.Int32FromInt32(0) /* Test of tag-20240424-1*/ if (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FselFlags&uint32(SF_Resolved) == uint32(0) { if pOuterNC != 0 { v3 = (*TNameContext)(unsafe.Pointer(pOuterNC)).FnRef @@ -84680,7 +85099,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { (*(*TNameContext)(unsafe.Pointer(bp))).FncFlags |= int32(NC_UEList) if (*TSelect)(unsafe.Pointer(p)).FpHaving != 0 { if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Aggregate) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7465, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7590, 0) return int32(WRC_Abort) } if _sqlite3ResolveExprNames(tls, bp, (*TSelect)(unsafe.Pointer(p)).FpHaving) != 0 { @@ -84747,7 +85166,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** is not detected until much later, and so we need to go ahead and ** resolve those symbols on the incorrect ORDER BY for consistency. */ - if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7367) != 0 { + if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7492) != 0 { return int32(WRC_Abort) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -84758,7 +85177,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** the GROUP BY clause does not contain aggregate functions. */ if pGroupBy != 0 { - if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7504) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { + if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7629) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(WRC_Abort) } i = 0 @@ -84768,7 +85187,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } if (*TExpr)(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(pItem2)).FpExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7510, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7635, 0) return int32(WRC_Abort) } goto _6 @@ -85799,7 +86218,7 @@ func _codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32 return } if nLeft != _sqlite3ExprVectorSize(tls, pRight) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6677, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6741, 0) return } _ = libc.Int32FromInt32(0) @@ -85884,7 +86303,7 @@ func _sqlite3ExprCheckHeight(tls *libc.TLS, pParse uintptr, nHeight int32) (r in rc = SQLITE_OK mxHeight = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 120 + 3*4)) if nHeight > mxHeight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7569, libc.VaList(bp+8, mxHeight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7694, libc.VaList(bp+8, mxHeight)) rc = int32(SQLITE_ERROR) } return rc @@ -86050,11 +86469,12 @@ func _sqlite3ExprSetErrorOffset(tls *libc.TLS, pExpr uintptr, iOfst int32) { // ** appear to be quoted. If the quotes were of the form "..." (double-quotes) // ** then the EP_DblQuoted flag is set on the expression node. // ** -// ** Special case: If op==TK_INTEGER and pToken points to a string that -// ** can be translated into a 32-bit integer, then the token is not -// ** stored in u.zToken. Instead, the integer values is written -// ** into u.iValue and the EP_IntValue flag is set. No extra storage +// ** Special case (tag-20240227-a): If op==TK_INTEGER and pToken points to +// ** a string that can be translated into a 32-bit integer, then the token is +// ** not stored in u.zToken. Instead, the integer values is written +// ** into u.iValue and the EP_IntValue flag is set. No extra storage // ** is allocated to hold the integer text and the dequote flag is ignored. +// ** See also tag-20240227-b. // */ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequote int32) (r uintptr) { bp := tls.Alloc(16) @@ -86068,7 +86488,7 @@ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequ _ = libc.Int32FromInt32(0) if pToken != 0 { if op != int32(TK_INTEGER) || (*TToken)(unsafe.Pointer(pToken)).Fz == uintptr(0) || _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pToken)).Fz, bp) == 0 { - nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) + nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) /* tag-20240227-a */ _ = libc.Int32FromInt32(0) } } @@ -86237,11 +86657,11 @@ func _sqlite3ExprListToValues(tls *libc.TLS, pParse uintptr, nElem int32, pEList } if nExprElem != nElem { if nExprElem > int32(1) { - v2 = __ccgo_ts + 7617 + v2 = __ccgo_ts + 7742 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7619, libc.VaList(bp+8, nExprElem, v2, nElem)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7744, libc.VaList(bp+8, nExprElem, v2, nElem)) break } _ = libc.Int32FromInt32(0) @@ -86291,7 +86711,7 @@ func _sqlite3ExprAnd(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintpt if f&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_InnerON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { _sqlite3ExprDeferredDelete(tls, pParse, pLeft) _sqlite3ExprDeferredDelete(tls, pParse, pRight) - return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1722) + return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1782) } else { return _sqlite3PExpr(tls, pParse, int32(TK_AND), pLeft, pRight) } @@ -86321,7 +86741,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pNew + 36)) = int32((*TToken)(unsafe.Pointer(pToken)).Fz) - int32((*TParse)(unsafe.Pointer(pParse)).FzTail) if pList != 0 && (*TExprList)(unsafe.Pointer(pList)).FnExpr > *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 120 + 6*4)) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7663, libc.VaList(bp+8, pToken)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7788, libc.VaList(bp+8, pToken)) } *(*uintptr)(unsafe.Pointer(pNew + 20)) = pList *(*Tu32)(unsafe.Pointer(pNew + 4)) |= uint32(libc.Int32FromInt32(EP_HasFunc)) @@ -86342,7 +86762,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u func _sqlite3ExprOrderByAggregateError(tls *libc.TLS, pParse uintptr, p uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7697, libc.VaList(bp+8, p)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7822, libc.VaList(bp+8, p)) } // C documentation @@ -86421,7 +86841,7 @@ func _sqlite3ExprFunctionUsable(tls *libc.TLS, pParse uintptr, pExpr uintptr, pD ** SQLITE_DBCONFIG_TRUSTED_SCHEMA is off (meaning ** that the schema is possibly tainted). */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7747, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7872, libc.VaList(bp+8, pExpr)) } } } @@ -86478,7 +86898,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n bOk = libc.BoolInt32(0 == _sqlite3Atoi64(tls, z+1, bp, int32(n-uint32(1)), uint8(SQLITE_UTF8))) } if bOk == 0 || *(*Ti64)(unsafe.Pointer(bp)) < int64(1) || *(*Ti64)(unsafe.Pointer(bp)) > int64(*(*int32)(unsafe.Pointer(db + 120 + 9*4))) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7767, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 120 + 9*4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7892, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 120 + 9*4)))) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) return } @@ -86511,7 +86931,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n } (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = x if int32(x) > *(*int32)(unsafe.Pointer(db + 120 + 9*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7810, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7935, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } } @@ -86522,8 +86942,13 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n // ** Recursively delete an expression tree. // */ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { + var pLeft uintptr + _ = pLeft _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) + goto exprDeleteRestart +exprDeleteRestart: + ; _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -86531,9 +86956,6 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)|libc.Int32FromInt32(EP_Leaf)) != libc.Uint32FromInt32(0)) { /* The Expr.x union is never used at the same time as Expr.pRight */ _ = libc.Int32FromInt32(0) - if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { - _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpLeft) - } if (*TExpr)(unsafe.Pointer(p)).FpRight != 0 { _ = libc.Int32FromInt32(0) _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpRight) @@ -86548,6 +86970,17 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { } } } + if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { + pLeft = (*TExpr)(unsafe.Pointer(p)).FpLeft + if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) && !((*TExpr)(unsafe.Pointer(pLeft)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { + /* Avoid unnecessary recursion on unary operators */ + _sqlite3DbNNFreeNN(tls, db, p) + p = pLeft + goto exprDeleteRestart + } else { + _sqlite3ExprDeleteNN(tls, db, pLeft) + } + } } if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { _sqlite3DbNNFreeNN(tls, db, p) @@ -86594,11 +87027,11 @@ func _sqlite3ClearOnOrUsing(tls *libc.TLS, db uintptr, p uintptr) { // ** // ** The pExpr might be deleted immediately on an OOM error. // ** -// ** The deferred delete is (currently) implemented by adding the -// ** pExpr to the pParse->pConstExpr list with a register number of 0. +// ** Return 0 if the delete was successfully deferred. Return non-zero +// ** if the delete happened immediately because of an OOM. // */ -func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) { - _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr) +func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + return libc.BoolInt32(uintptr(0) == _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr)) } // C documentation @@ -87117,16 +87550,20 @@ func _sqlite3SrcListDup(tls *libc.TLS, db uintptr, p uintptr, flags int32) (r ui (*TSrcItem)(unsafe.Pointer(pNewItem)).FiCursor = (*TSrcItem)(unsafe.Pointer(pOldItem)).FiCursor (*TSrcItem)(unsafe.Pointer(pNewItem)).FaddrFillSub = (*TSrcItem)(unsafe.Pointer(pOldItem)).FaddrFillSub (*TSrcItem)(unsafe.Pointer(pNewItem)).FregReturn = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregReturn + (*TSrcItem)(unsafe.Pointer(pNewItem)).FregResult = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregResult if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 36 + 4))&0x2>>1)) != 0 { *(*uintptr)(unsafe.Pointer(pNewItem + 64)) = _sqlite3DbStrDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 64))) + } else { + if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 36 + 4))&0x4>>2)) != 0 { + *(*uintptr)(unsafe.Pointer(pNewItem + 64)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 64)), flags) + } else { + *(*Tu32)(unsafe.Pointer(pNewItem + 64)) = *(*Tu32)(unsafe.Pointer(pOldItem + 64)) + } } (*TSrcItem)(unsafe.Pointer(pNewItem)).Fu2 = (*TSrcItem)(unsafe.Pointer(pOldItem)).Fu2 if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 36 + 4))&0x100>>8)) != 0 { (*TCteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNewItem + 68)))).FnUse++ } - if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 36 + 4))&0x4>>2)) != 0 { - *(*uintptr)(unsafe.Pointer(pNewItem + 64)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 64)), flags) - } v4 = (*TSrcItem)(unsafe.Pointer(pOldItem)).FpTab (*TSrcItem)(unsafe.Pointer(pNewItem)).FpTab = v4 pTab = v4 @@ -87392,7 +87829,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, n = v2 } if v3 && (*TIdList)(unsafe.Pointer(pColumns)).FnId != v2 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7833, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7958, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) goto vector_append_error } i = 0 @@ -87428,6 +87865,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, ** the RHS and LHS sizes match during code generation. */ (*TExpr)(unsafe.Pointer(pFirst)).FiTable = (*TIdList)(unsafe.Pointer(pColumns)).FnId } + goto vector_append_error vector_append_error: ; _sqlite3ExprUnmapAndDelete(tls, pParse, pExpr) @@ -87536,7 +87974,7 @@ func _sqlite3ExprListCheckLength(tls *libc.TLS, pParse uintptr, pEList uintptr, _ = mx mx = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 120 + 2*4)) if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr > mx { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7863, libc.VaList(bp+8, zObject)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7988, libc.VaList(bp+8, zObject)) } } @@ -87638,10 +88076,10 @@ func _sqlite3SelectWalkFail(tls *libc.TLS, pWalker uintptr, NotUsed uintptr) (r // ** anything else 0 // */ func _sqlite3IsTrueOrFalse(tls *libc.TLS, zIn uintptr) (r Tu32) { - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7886) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8011) == 0 { return uint32(EP_IsTrue) } - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7891) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8016) == 0 { return uint32(EP_IsFalse) } return uint32(0) @@ -87728,6 +88166,52 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { return pExpr } +// C documentation +// +// /* +// ** pExpr is a TK_FUNCTION node. Try to determine whether or not the +// ** function is a constant function. A function is constant if all of +// ** the following are true: +// ** +// ** (1) It is a scalar function (not an aggregate or window function) +// ** (2) It has either the SQLITE_FUNC_CONSTANT or SQLITE_FUNC_SLOCHNG +// ** property. +// ** (3) All of its arguments are constants +// ** +// ** This routine sets pWalker->eCode to 0 if pExpr is not a constant. +// ** It makes no changes to pWalker->eCode if pExpr is constant. In +// ** every case, it returns WRC_Abort. +// ** +// ** Called as a service subroutine from exprNodeIsConstant(). +// */ +func _exprNodeIsConstantFunction(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef, pList, v1 uintptr + var n int32 + var v2 bool + _, _, _, _, _, _ = db, n, pDef, pList, v1, v2 /* The database */ + _ = libc.Int32FromInt32(0) + if v2 = (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)) != uint32(0); !v2 { + v1 = *(*uintptr)(unsafe.Pointer(pExpr + 20)) + pList = v1 + } + if v2 || v1 == uintptr(0) { + n = 0 + } else { + n = (*TExprList)(unsafe.Pointer(pList)).FnExpr + _sqlite3WalkExprList(tls, pWalker, pList) + if int32((*TWalker)(unsafe.Pointer(pWalker)).FeCode) == 0 { + return int32(WRC_Abort) + } + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)|libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG)) == uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) +} + // C documentation // // /* @@ -87757,6 +88241,7 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { // ** malformed schema error. // */ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + _ = libc.Int32FromInt32(0) /* If pWalker->eCode is 2 then any term of the expression that comes from ** the ON or USING clauses of an outer join disqualifies the expression ** from being considered constant. */ @@ -87775,8 +88260,12 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 } return WRC_Continue } else { - (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) - return int32(WRC_Abort) + if (*TWalker)(unsafe.Pointer(pWalker)).FpParse != 0 { + return _exprNodeIsConstantFunction(tls, pWalker, pExpr) + } else { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } } fallthrough case int32(TK_ID): @@ -87803,6 +88292,8 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 case int32(TK_REGISTER): fallthrough case int32(TK_DOT): + fallthrough + case int32(TK_RAISE): (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) return int32(WRC_Abort) case int32(TK_VARIABLE): @@ -87828,14 +88319,14 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 return r } -func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32) { +func _exprIsConst(tls *libc.TLS, pParse uintptr, p uintptr, initFlag int32) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var _ /* w at bp+0 */ TWalker (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(initFlag) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) - *(*int32)(unsafe.Pointer(bp + 24)) = iCur _sqlite3WalkExpr(tls, bp, p) return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } @@ -87849,9 +88340,15 @@ func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32 // ** For the purposes of this function, a double-quoted string (ex: "abc") // ** is considered a variable but a single-quoted string (ex: 'abc') is // ** a constant. +// ** +// ** The pParse parameter may be NULL. But if it is NULL, there is no way +// ** to determine if function calls are constant or not, and hence all +// ** function calls will be considered to be non-constant. If pParse is +// ** not NULL, then a function call might be constant, depending on the +// ** function and on its parameters. // */ -func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(1), 0) +func _sqlite3ExprIsConstant(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(1)) } // C documentation @@ -87869,8 +88366,26 @@ func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { // ** can be added to the pParse->pConstExpr list and evaluated once when // ** the prepared statement starts up. See sqlite3ExprCodeRunJustOnce(). // */ -func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(2), 0) +func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(2)) +} + +// C documentation +// +// /* +// ** This routine examines sub-SELECT statements as an expression is being +// ** walked as part of sqlite3ExprIsTableConstant(). Sub-SELECTs are considered +// ** constant as long as they are uncorrelated - meaning that they do not +// ** contain any terms from outer contexts. +// */ +func _exprSelectWalkTableConstant(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if (*TSelect)(unsafe.Pointer(pSelect)).FselFlags&uint32(SF_Correlated) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) } // C documentation @@ -87880,9 +88395,25 @@ func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { // ** for any single row of the table with cursor iCur. In other words, the // ** expression must not refer to any non-deterministic function nor any // ** table other than iCur. +// ** +// ** Consider uncorrelated subqueries to be constants if the bAllowSubq +// ** parameter is true. // */ -func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) { - return _exprIsConst(tls, p, int32(3), iCur) +func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32, bAllowSubq int32) (r int32) { + bp := tls.Alloc(32) + defer tls.Free(32) + var _ /* w at bp+0 */ TWalker + (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(3) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = uintptr(0) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) + if bAllowSubq != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_exprSelectWalkTableConstant) + } else { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) + } + *(*int32)(unsafe.Pointer(bp + 24)) = iCur + _sqlite3WalkExpr(tls, bp, p) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } // C documentation @@ -87902,7 +88433,10 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** // ** (1) pExpr cannot refer to any table other than pSrc->iCursor. // ** -// ** (2) pExpr cannot use subqueries or non-deterministic functions. +// ** (2a) pExpr cannot use subqueries unless the bAllowSubq parameter is +// ** true and the subquery is non-correlated +// ** +// ** (2b) pExpr cannot use non-deterministic functions. // ** // ** (3) pSrc cannot be part of the left operand for a RIGHT JOIN. // ** (Is there some way to relax this constraint?) @@ -87928,7 +88462,7 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** which leads to incorrect answers. See also restriction (9) // ** on push-down. // */ -func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32) (r int32) { +func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32, bAllowSubq int32) (r int32) { var jj int32 var pSrc uintptr _, _ = jj, pSrc @@ -87966,7 +88500,8 @@ func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList jj++ } } - return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor) /* rules (1), (2) */ + /* Rules (1), (2a), and (2b) handled by the following: */ + return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor, bAllowSubq) } // C documentation @@ -88065,7 +88600,7 @@ func _sqlite3ExprIsConstantOrGroupBy(tls *libc.TLS, pParse uintptr, p uintptr, p // */ func _sqlite3ExprIsConstantOrFunction(tls *libc.TLS, p uintptr, isInit Tu8) (r int32) { _ = libc.Int32FromInt32(0) - return _exprIsConst(tls, p, int32(4)+int32(isInit), 0) + return _exprIsConst(tls, uintptr(0), p, int32(4)+int32(isInit)) } // C documentation @@ -88209,13 +88744,13 @@ func _sqlite3ExprNeedsNoAffinityChange(tls *libc.TLS, p uintptr, aff uint8) (r i // ** Return TRUE if the given string is a row-id column name. // */ func _sqlite3IsRowid(tls *libc.TLS, z uintptr) (r int32) { - if _sqlite3StrICmp(tls, z, __ccgo_ts+7897) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8022) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7905) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8030) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7911) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8036) == 0 { return int32(1) } return 0 @@ -88233,9 +88768,9 @@ func _sqlite3RowidAlias(tls *libc.TLS, pTab uintptr) (r uintptr) { var iCol, ii int32 _, _, _ = azOpt, iCol, ii azOpt = [3]uintptr{ - 0: __ccgo_ts + 7897, - 1: __ccgo_ts + 7905, - 2: __ccgo_ts + 7911, + 0: __ccgo_ts + 8022, + 1: __ccgo_ts + 8030, + 2: __ccgo_ts + 8036, } _ = libc.Int32FromInt32(0) ii = 0 @@ -88359,14 +88894,14 @@ func _sqlite3SetHasNullFlag(tls *libc.TLS, v uintptr, iCur int32, regHasNull int // ** The argument is an IN operator with a list (not a subquery) on the // ** right-hand side. Return TRUE if that list is constant. // */ -func _sqlite3InRhsIsConstant(tls *libc.TLS, pIn uintptr) (r int32) { +func _sqlite3InRhsIsConstant(tls *libc.TLS, pParse uintptr, pIn uintptr) (r int32) { var pLHS uintptr var res int32 _, _ = pLHS, res _ = libc.Int32FromInt32(0) pLHS = (*TExpr)(unsafe.Pointer(pIn)).FpLeft (*TExpr)(unsafe.Pointer(pIn)).FpLeft = uintptr(0) - res = _sqlite3ExprIsConstant(tls, pIn) + res = _sqlite3ExprIsConstant(tls, pParse, pIn) (*TExpr)(unsafe.Pointer(pIn)).FpLeft = pLHS return res } @@ -88524,7 +89059,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 iAddr = _sqlite3VdbeAddOp0(tls, v, int32(OP_Once)) _sqlite3OpenTable(tls, pParse, iTab, iDb, pTab, int32(OP_OpenRead)) eType = int32(IN_INDEX_ROWID) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+7915, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+8040, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) _sqlite3VdbeJumpHere(tls, v, iAddr) } else { /* Iterator variable */ affinity_ok = int32(1) @@ -88627,7 +89162,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 if colUsed == libc.Uint64FromInt32(1)<0 so that the new limit is either 1 or 0 */ db = (*TParse)(unsafe.Pointer(pParse)).Fdb - pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1722) + pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1782) if pLimit != 0 { (*TExpr)(unsafe.Pointer(pLimit)).FaffExpr = uint8(SQLITE_AFF_NUMERIC) pLimit = _sqlite3PExpr(tls, pParse, int32(TK_NE), _sqlite3ExprDup(tls, db, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft, 0), pLimit) @@ -89138,7 +89673,7 @@ func _sqlite3CodeSubselect(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int3 (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft = pLimit } else { /* If there is no pre-existing limit add a limit of 1 */ - pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8130) + pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8255) (*TSelect)(unsafe.Pointer(pSel)).FpLimit = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), pLimit, uintptr(0)) } (*TSelect)(unsafe.Pointer(pSel)).FiLimit = 0 @@ -89468,11 +90003,13 @@ func _sqlite3ExprCodeIN(tls *libc.TLS, pParse uintptr, pExpr uintptr, destIfFals } /* Jumps here in order to return true. */ _sqlite3VdbeJumpHere(tls, v, addrTruthOp) + goto sqlite3ExprCodeIN_finished sqlite3ExprCodeIN_finished: ; if rLhs != rLhsOrig { _sqlite3ReleaseTempReg(tls, pParse, rLhs) } + goto sqlite3ExprCodeIN_oom_error sqlite3ExprCodeIN_oom_error: ; _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiMap) @@ -89532,13 +90069,13 @@ func _codeInteger(tls *libc.TLS, pParse uintptr, pExpr uintptr, negFlag int32, i _ = libc.Int32FromInt32(0) c = _sqlite3DecOrHexToI64(tls, z, bp) if c == int32(3) && !(negFlag != 0) || c == int32(2) || negFlag != 0 && *(*Ti64)(unsafe.Pointer(bp)) == int64(-libc.Int32FromInt32(1))-(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<= (*TAggInfo)(unsafe.Pointer(pInfo)).FnFunc { _ = libc.Int32FromInt32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8223, libc.VaList(bp+120, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8348, libc.VaList(bp+120, pExpr)) } else { _ = libc.Int32FromInt32(0) return (*TAggInfo)(unsafe.Pointer(pInfo)).FiFirstReg + (*TAggInfo)(unsafe.Pointer(pInfo)).FnColumn + int32((*TExpr)(unsafe.Pointer(pExpr)).FiAgg) @@ -90338,7 +90870,7 @@ expr_code_doover: if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { return (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fy)))).FregResult } - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { /* SQL functions can be expensive. So try to avoid running them ** multiple times if we know they always give the same result */ return _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) @@ -90356,7 +90888,7 @@ expr_code_doover: zId = *(*uintptr)(unsafe.Pointer(pExpr + 8)) pDef = _sqlite3FindFunction(tls, db, zId, nFarg, enc, uint8(0)) if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8250, libc.VaList(bp+120, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8375, libc.VaList(bp+120, pExpr)) break } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_INLINE) != uint32(0) && pFarg != uintptr(0) { @@ -90373,7 +90905,7 @@ expr_code_doover: if !(i < nFarg) { break } - if i < int32(32) && _sqlite3ExprIsConstant(tls, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*20))).FpExpr) != 0 { + if i < int32(32) && _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*20))).FpExpr) != 0 { constMask |= libc.Uint32FromInt32(1) << i } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_NEEDCOLL) != uint32(0) && !(pColl != 0) { @@ -90470,7 +91002,7 @@ expr_code_doover: _ = libc.Int32FromInt32(0) n1 = _sqlite3ExprVectorSize(tls, pLeft2) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != n1 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7833, libc.VaList(bp+120, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7958, libc.VaList(bp+120, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) } return (*TExpr)(unsafe.Pointer(pLeft2)).FiTable + int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) case int32(TK_IN): @@ -90502,8 +91034,9 @@ expr_code_doover: if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Collate)) != libc.Uint32FromInt32(0)) { /* A TK_COLLATE Expr node without the EP_Collate tag is a so-called ** "SOFT-COLLATE" that is added to constraints that are pushed down - ** from outer queries into sub-queries by the push-down optimization. - ** Clear subtypes as subtypes may not cross a subquery boundary. + ** from outer queries into sub-queries by the WHERE-clause push-down + ** optimization. Clear subtypes as subtypes may not cross a subquery + ** boundary. */ _ = libc.Int32FromInt32(0) _sqlite3ExprCode(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, target) @@ -90538,7 +91071,7 @@ expr_code_doover: _sqlite3VdbeAddOp1(tls, v, int32(OP_RealAffinity), target) } case int32(TK_VECTOR): - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6677, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6741, 0) break /* TK_IF_NULL_ROW Expr nodes are inserted ahead of expressions ** that derive from the right-hand table of a LEFT JOIN. The @@ -90660,7 +91193,7 @@ expr_code_doover: case int32(TK_RAISE): _ = libc.Int32FromInt32(0) if !((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != 0) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8274, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8399, 0) return 0 } if int32((*TExpr)(unsafe.Pointer(pExpr)).FaffExpr) == int32(OE_Abort) { @@ -90784,7 +91317,7 @@ func _sqlite3ExprCodeTemp(tls *libc.TLS, pParse uintptr, pExpr uintptr, pReg uin var r1, r2 int32 _, _ = r1, r2 pExpr = _sqlite3ExprSkipCollateAndLikely(tls, pExpr) - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { *(*int32)(unsafe.Pointer(pReg)) = 0 r2 = _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) } else { @@ -90857,7 +91390,7 @@ func _sqlite3ExprCodeCopy(tls *libc.TLS, pParse uintptr, pExpr uintptr, target i // ** might choose to code the expression at initialization time. // */ func _sqlite3ExprCodeFactorable(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) { - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target) } else { _sqlite3ExprCodeCopy(tls, pParse, pExpr, target) @@ -90928,7 +91461,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ _sqlite3VdbeAddOp2(tls, v, int32(copyOp), j+srcReg-int32(1), target+i) } } else { - if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target+i) } else { inReg = _sqlite3ExprCodeTarget(tls, pParse, pExpr, target+i) @@ -91203,6 +91736,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsTrue)) == uint32(EP_IsTrue) { @@ -91424,6 +91958,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) { @@ -92273,18 +92808,16 @@ func _agginfoPersistExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnColumn && (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*16))).FpCExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*16))).FpCExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } else { _ = libc.Int32FromInt32(0) if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnFunc && (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*24))).FpFExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*24))).FpFExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } @@ -92406,6 +92939,7 @@ func _findOrCreateAggInfoColumn(tls *libc.TLS, pParse uintptr, pAggInfo uintptr, *(*Tu16)(unsafe.Pointer(v4))++ (*TAggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = int16(v3) } + goto fix_up_expr fix_up_expr: ; _ = libc.Int32FromInt32(0) @@ -92853,8 +93387,8 @@ func _sqlite3FirstAvailableRegister(tls *libc.TLS, pParse uintptr, iMin int32) ( func _isAlterableTable(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) - if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6525, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8324, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6589, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8449, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -92873,9 +93407,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, bp := tls.Alloc(48) defer tls.Free(48) (*TParse)(unsafe.Pointer(pParse)).FcolNamesSet = uint8(1) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8352, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8477, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8527, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8652, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) } } @@ -92891,9 +93425,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, func _renameFixQuotes(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8701, libc.VaList(bp+8, zDb, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8826, libc.VaList(bp+8, zDb, zDb)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8848, 0) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8973, 0) } } @@ -92951,7 +93485,7 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName ** in database iDb. If so, this is an error. */ if _sqlite3FindTable(tls, db, zName, zDb) != 0 || _sqlite3FindIndex(tls, db, zName, zDb) != 0 || _sqlite3IsShadowTableOf(tls, db, pTab, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8999, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9124, libc.VaList(bp+8, zName)) goto exit_rename_table } /* Make sure it is not a system table being altered, or a reserved name @@ -92960,11 +93494,11 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { goto exit_rename_table } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9058, zName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9183, zName) { goto exit_rename_table } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9064, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9189, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_rename_table } /* Invoke the authorization callback. */ @@ -92994,21 +93528,21 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName nTabName = _sqlite3Utf8CharLen(tls, zTabName, -int32(1)) /* Rewrite all CREATE TABLE, INDEX, TRIGGER or VIEW statements in ** the schema to use the new table name. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9091, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9216, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) /* Update the tbl_name and name columns of the sqlite_schema table ** as required. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9275, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9400, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) /* If the sqlite_sequence table exists in this database, then update ** it with the new table name. */ - if _sqlite3FindTable(tls, db, __ccgo_ts+9580, zDb) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9596, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if _sqlite3FindTable(tls, db, __ccgo_ts+9705, zDb) != 0 { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9721, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* If the table being renamed is not itself part of the temp database, ** edit view and trigger definitions within the temp database ** as required. */ if iDb != int32(1) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9654, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9779, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) } /* If this is a virtual table, invoke the xRename() function if ** one is defined. The xRename() callback will modify the names @@ -93024,7 +93558,8 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp4(tls, v, int32(OP_VRename), i, 0, 0, pVTab, -int32(11)) } _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+9919, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+10044, 0) + goto exit_rename_table exit_rename_table: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -93040,7 +93575,7 @@ exit_rename_table: func _sqlite3ErrorIfNotEmpty(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zErr uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9932, libc.VaList(bp+8, zErr, zDb, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10057, libc.VaList(bp+8, zErr, zDb, zTab)) } // C documentation @@ -93085,11 +93620,11 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** column must not be NULL. */ if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9970, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10095, 0) return } if (*TTable)(unsafe.Pointer(pNew)).FpIndex != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10002, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10127, 0) return } if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) == 0 { @@ -93107,10 +93642,10 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 44))).FpFKey != 0 && pDflt != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10029) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10154) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 4))&0xf>>0)) != 0 && !(pDflt != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10088) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10213) } /* Ensure the default expression is something that sqlite3ValueFromExpr() ** can handle (i.e. not CURRENT_TIME etc.) @@ -93124,13 +93659,13 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr return } if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10141) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10266) } _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp))) } } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_STORED) != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10187) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10312) } } /* Modify the CREATE TABLE statement. */ @@ -93146,7 +93681,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** have to use printf() to translate between these units: */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10214, libc.VaList(bp+16, zDb, (*(*struct { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10339, libc.VaList(bp+16, zDb, (*(*struct { FaddColOffset int32 FpFKey uintptr FpDfltList uintptr @@ -93174,7 +93709,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterAdd)) /* Verify that constraints are still satisfied */ if (*TTable)(unsafe.Pointer(pNew)).FpCheck != uintptr(0) || int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 4))&0xf>>0)) != 0 && int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Strict) != uint32(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10360, libc.VaList(bp+16, zTab, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10485, libc.VaList(bp+16, zTab, zDb)) } } } @@ -93214,12 +93749,12 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { goto exit_begin_add_column } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10713, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10838, 0) goto exit_begin_add_column } /* Make sure this is not an attempt to ALTER a view. */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10747, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10872, 0) goto exit_begin_add_column } if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { @@ -93247,7 +93782,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { nAlloc = (int32((*TTable)(unsafe.Pointer(pNew)).FnCol)-int32(1))/int32(8)*int32(8) + int32(8) _ = libc.Int32FromInt32(0) (*TTable)(unsafe.Pointer(pNew)).FaCol = _sqlite3DbMallocZero(tls, db, uint64(uint32(12)*uint32(nAlloc))) - (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10777, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10902, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !((*TTable)(unsafe.Pointer(pNew)).FaCol != 0) || !((*TTable)(unsafe.Pointer(pNew)).FzName != 0) { _ = libc.Int32FromInt32(0) goto exit_begin_add_column @@ -93287,6 +93822,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { FpDfltList uintptr })(unsafe.Pointer(pTab + 44))).FaddColOffset _ = libc.Int32FromInt32(0) + goto exit_begin_add_column exit_begin_add_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -93310,18 +93846,18 @@ func _isRealTable(tls *libc.TLS, pParse uintptr, pTab uintptr, bDrop int32) (r i _, _ = zType, v1 zType = uintptr(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10796 + zType = __ccgo_ts + 10921 } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 10801 + zType = __ccgo_ts + 10926 } if zType != 0 { if bDrop != 0 { - v1 = __ccgo_ts + 10815 + v1 = __ccgo_ts + 10940 } else { - v1 = __ccgo_ts + 10832 + v1 = __ccgo_ts + 10957 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10850, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10975, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -93383,11 +93919,11 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld iCol++ } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10868, libc.VaList(bp+8, pOld)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10993, libc.VaList(bp+8, pOld)) goto exit_rename_column } /* Ensure the schema contains no double-quoted strings */ - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1648, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1662, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1))) /* Do the rename operation using a recursive UPDATE statement that ** uses the sqlite_rename_column() SQL function to compute the new @@ -93400,11 +93936,12 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld } _ = libc.Int32FromInt32(0) bQuote = int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pNew)).Fz))]) & int32(0x80) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10889, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11071, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11014, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11196, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iSchema, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+9919, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+10044, int32(1)) + goto exit_rename_column exit_rename_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -93882,11 +94419,11 @@ func _renameColumnParseError(tls *libc.TLS, pCtx uintptr, zWhen uintptr, pType u zT = Xsqlite3_value_text(tls, pType) zN = Xsqlite3_value_text(tls, pObject) if *(*uint8)(unsafe.Pointer(zWhen)) != 0 { - v1 = __ccgo_ts + 11202 + v1 = __ccgo_ts + 11327 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11204, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) + zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11329, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, zErr) } @@ -93963,8 +94500,8 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin if zSql == uintptr(0) { return int32(SQLITE_NOMEM) } - if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11227, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(116682)) + if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11352, int32(7)) != 0 { + return _sqlite3CorruptError(tls, int32(117285)) } if bTemp != 0 { v1 = int32(1) @@ -93980,7 +94517,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin rc = int32(SQLITE_NOMEM) } if rc == SQLITE_OK && ((*TParse)(unsafe.Pointer(p)).FpNewTable == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewIndex == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewTrigger == uintptr(0)) { - rc = _sqlite3CorruptError(tls, int32(116693)) + rc = _sqlite3CorruptError(tls, int32(117296)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -94019,7 +94556,7 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, ** ALTER TABLE statement was quoted (bQuote==1), then set zNew to ** point to zQuot so that all substitutions are made using the ** quoted version of the new column name. */ - zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11235, libc.VaList(bp+8, zNew)) + zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11360, libc.VaList(bp+8, zNew)) if zQuot == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -94065,11 +94602,11 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, *(*uint8)(unsafe.Pointer(zBuf1 + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn))) = uint8(0) _sqlite3Dequote(tls, zBuf1) if int32(*(*uint8)(unsafe.Pointer((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn)))) == int32('\'') { - v1 = __ccgo_ts + 11202 + v1 = __ccgo_ts + 11327 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11241, libc.VaList(bp+8, zBuf1, v1)) + Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11366, libc.VaList(bp+8, zBuf1, v1)) zReplace = zBuf2 nReplace = uint32(_sqlite3Strlen30(tls, zReplace)) } @@ -94553,6 +95090,7 @@ func _renameColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintp } _ = libc.Int32FromInt32(0) rc = _renameEditSql(tls, context, bp, zSql, zNew, bQuote) + goto renameColumnFunc_done renameColumnFunc_done: ; if rc != SQLITE_OK { @@ -94560,7 +95098,7 @@ renameColumnFunc_done: Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv))) } else { if (*(*TParse)(unsafe.Pointer(bp + 20))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1648, *(*uintptr)(unsafe.Pointer(argv + 1*4)), *(*uintptr)(unsafe.Pointer(argv + 2*4)), bp+20) + _renameColumnParseError(tls, context, __ccgo_ts+1662, *(*uintptr)(unsafe.Pointer(argv + 1*4)), *(*uintptr)(unsafe.Pointer(argv + 2*4)), bp+20) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -94789,7 +95327,7 @@ func _renameTableFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintpt Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv + 3*4))) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1648, *(*uintptr)(unsafe.Pointer(argv + 1*4)), *(*uintptr)(unsafe.Pointer(argv + 2*4)), bp) + _renameColumnParseError(tls, context, __ccgo_ts+1662, *(*uintptr)(unsafe.Pointer(argv + 1*4)), *(*uintptr)(unsafe.Pointer(argv + 2*4)), bp) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -95051,7 +95589,7 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr pTab = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable if pTab == uintptr(0) || int32((*TTable)(unsafe.Pointer(pTab)).FnCol) == int32(1) || iCol >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { /* This can happen if the sqlite_schema table is corrupt */ - rc = _sqlite3CorruptError(tls, int32(117652)) + rc = _sqlite3CorruptError(tls, int32(118255)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*12))).FzCnName) @@ -95069,9 +95607,10 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr (*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz-- } } - zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11246, libc.VaList(bp+296, int32((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int32(zSql), zSql, zEnd)) + zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11371, libc.VaList(bp+296, int32((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int32(zSql), zSql, zEnd)) Xsqlite3_result_text(tls, context, zNew, -int32(1), uintptr(-libc.Int32FromInt32(1))) Xsqlite3_free(tls, zNew) + goto drop_column_done drop_column_done: ; _renameParseCleanup(tls, bp) @@ -95095,8 +95634,9 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName bp := tls.Alloc(48) defer tls.Free(48) var addr, i, iCol, iColPos, iCur, iDb, iPos, nField, reg, regOut, regRec, v2, v4, v7 int32 + var aff uint8 var db, pPk, pTab, v, zCol, zDb, v1, v3, v5, v8 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, aff, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Database containing pTab ("main" etc.) */ zCol = uintptr(0) /* Index of column zCol in pTab->aCol[] */ /* Look up the table being altered. */ @@ -95125,23 +95665,23 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName } iCol = _sqlite3ColumnIndex(tls, pTab, zCol) if iCol < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10868, libc.VaList(bp+8, pName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10993, libc.VaList(bp+8, pName)) goto exit_drop_column } /* Do not allow the user to drop a PRIMARY KEY column or a column ** constrained by a UNIQUE constraint. */ if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*12))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_PRIMKEY)|libc.Int32FromInt32(COLFLAG_UNIQUE)) != 0 { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*12))).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - v1 = __ccgo_ts + 11253 + v1 = __ccgo_ts + 11378 } else { - v1 = __ccgo_ts + 5589 + v1 = __ccgo_ts + 5653 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11265, libc.VaList(bp+8, v1, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11390, libc.VaList(bp+8, v1, zCol)) goto exit_drop_column } /* Do not allow the number of columns to go to zero */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) <= int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11293, libc.VaList(bp+8, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11418, libc.VaList(bp+8, zCol)) goto exit_drop_column } /* Edit the sqlite_schema table */ @@ -95152,12 +95692,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_ALTER_TABLE), zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol) != 0 { goto exit_drop_column } - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1648, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1662, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1))) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11341, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11466, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterDrop)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11462, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11587, int32(1)) /* Edit rows of table on disk */ if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 && int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*12))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { pPk = uintptr(0) @@ -95215,7 +95755,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if i == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regOut) } else { + aff = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*12))).Faffinity + if int32(aff) == int32(SQLITE_AFF_REAL) { + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*12))).Faffinity = uint8(SQLITE_AFF_NUMERIC) + } _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, i, regOut) + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*12))).Faffinity = aff } nField++ } @@ -95240,6 +95785,7 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iCur, addr+int32(1)) _sqlite3VdbeJumpHere(tls, v, addr) } + goto exit_drop_column exit_drop_column: ; _sqlite3DbFree(tls, db, zCol) @@ -95259,27 +95805,27 @@ var _aAlterTableFuncs = [5]TFuncDef{ 0: { FnArg: int8(9), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11480, + FzName: __ccgo_ts + 11605, }, 1: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11501, + FzName: __ccgo_ts + 11626, }, 2: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11521, + FzName: __ccgo_ts + 11646, }, 3: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11540, + FzName: __ccgo_ts + 11665, }, 4: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11559, + FzName: __ccgo_ts + 11684, }, } @@ -95492,7 +96038,7 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW ** side-effect of the CREATE TABLE statement is to leave the rootpage ** of the new table in register pParse->regRoot. This is important ** because the OpenWrite opcode below will be needing it. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11662, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11787, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) aRoot[i] = uint32((*TParse)(unsafe.Pointer(pParse)).FregRoot) aCreateTbl[i] = uint8(OPFLAG_P2ISREG) } @@ -95503,10 +96049,10 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW aRoot[i] = (*TTable)(unsafe.Pointer(pStat)).Ftnum _sqlite3TableLock(tls, pParse, iDb, aRoot[i], uint8(1), zTab) if zWhere != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11685, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11810, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11715, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11840, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) } else { /* The sqlite_stat[134] table already exists. Delete all rows. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Clear), int32(aRoot[i]), iDb) @@ -95539,15 +96085,15 @@ var _aTable = [3]struct { FzCols uintptr }{ 0: { - FzName: __ccgo_ts + 11582, - FzCols: __ccgo_ts + 11595, + FzName: __ccgo_ts + 11707, + FzCols: __ccgo_ts + 11720, }, 1: { - FzName: __ccgo_ts + 11608, - FzCols: __ccgo_ts + 11621, + FzName: __ccgo_ts + 11733, + FzCols: __ccgo_ts + 11746, }, 2: { - FzName: __ccgo_ts + 11649, + FzName: __ccgo_ts + 11774, }, } @@ -95868,7 +96414,7 @@ func _statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statInitFuncdef = TFuncDef{ FnArg: int8(4), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11733, + FzName: __ccgo_ts + 11858, } func init() { @@ -96022,6 +96568,7 @@ func _sampleInsert(tls *libc.TLS, p uintptr, pNew uintptr, nEqZero int32) { (*TStatAccum)(unsafe.Pointer(p)).FnSample++ /* Zero the first nEqZero entries in the anEq[] array. */ libc.Xmemset(tls, (*TStatSample)(unsafe.Pointer(pSample)).FanEq, 0, uint32(8)*uint32(nEqZero)) + goto find_new_min find_new_min: ; if (*TStatAccum)(unsafe.Pointer(p)).FnSample >= (*TStatAccum)(unsafe.Pointer(p)).FmxSample { @@ -96253,7 +96800,7 @@ func _statPush(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statPushFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(2) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11743, + FzName: __ccgo_ts + 11868, } func init() { @@ -96306,7 +96853,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } else { v1 = (*TStatAccum)(unsafe.Pointer(p)).FnRow } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11753, libc.VaList(bp+56, v1)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11878, libc.VaList(bp+56, v1)) i = 0 for { if !(i < (*TStatAccum)(unsafe.Pointer(p)).FnKeyCol) { @@ -96317,7 +96864,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if iVal == uint64(2) && (*TStatAccum)(unsafe.Pointer(p)).FnRow*uint64(10) <= nDistinct*uint64(11) { iVal = uint64(1) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11758, libc.VaList(bp+56, iVal)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11883, libc.VaList(bp+56, iVal)) _ = libc.Int32FromInt32(0) goto _2 _2: @@ -96358,7 +96905,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if !(i1 < (*TStatAccum)(unsafe.Pointer(p)).FnCol) { break } - Xsqlite3_str_appendf(tls, bp+24, __ccgo_ts+11764, libc.VaList(bp+56, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) + Xsqlite3_str_appendf(tls, bp+24, __ccgo_ts+11889, libc.VaList(bp+56, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) goto _3 _3: ; @@ -96376,7 +96923,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statGetFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(1) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11770, + FzName: __ccgo_ts + 11895, } func init() { @@ -96398,9 +96945,9 @@ func _callStatGet(tls *libc.TLS, pParse uintptr, regStat int32, iParam int32, re // */ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr, iStatCur int32, iMem int32, iTab int32) { var aGotoChng, db, pColl, pIdx, pPk, pStat1, pX, v, zIdxName uintptr - var addrIsNull, addrNext, addrNextRow, addrRewind, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 + var addrGotoEnd, addrIsNull, addrNext, addrNextRow, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 var needTableCnt, seekOp Tu8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrIsNull, addrNext, addrNextRow, addrRewind, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrGotoEnd, addrIsNull, addrNext, addrNextRow, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Loop counter */ jZeroRows = -int32(1) /* Index of database containing pTab */ needTableCnt = uint8(1) @@ -96444,7 +96991,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Do not gather statistics on views or virtual tables */ return } - if Xsqlite3_strlike(tls, __ccgo_ts+11779, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { + if Xsqlite3_strlike(tls, __ccgo_ts+11904, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { /* Do not gather statistics on system tables */ return } @@ -96461,7 +97008,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint return } (*TTable)(unsafe.Pointer(pStat1)).FzName = pStat1 + 1*64 - libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11582, uint32(13)) + libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11707, uint32(13)) (*TTable)(unsafe.Pointer(pStat1)).FnCol = int16(3) (*TTable)(unsafe.Pointer(pStat1)).FiPKey = int16(-int32(1)) _sqlite3VdbeAddOp4(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Noop), 0, 0, 0, pStat1, -int32(6)) @@ -96515,9 +97062,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* ** Pseudo-code for loop that calls stat_push(): ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() ** goto chng_addr_0; ** ** next_row: @@ -96552,34 +97104,31 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _ = libc.Int32FromInt32(0) _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenRead), iIdxCur, int32((*TIndex)(unsafe.Pointer(pIdx)).Ftnum), iDb) _sqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx) - /* Invoke the stat_init() function. The arguments are: + /* Implementation of the following: ** + ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() + ** goto chng_addr_0; + */ + _ = libc.Int32FromInt32(0) + _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + /* Arguments to stat_init(): ** (1) the number of columns in the index including the rowid ** (or for a WITHOUT ROWID table, the number of PK columns), ** (2) the number of columns in the key without the rowid/pk - ** (3) estimated number of rows in the index, - */ + ** (3) estimated number of rows in the index. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), nCol, regStat+int32(1)) _ = libc.Int32FromInt32(0) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol), regRowid) - if (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0) { - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iIdxCur, regTemp) - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - } else { - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, int32(1)) - } - _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) != uint32(0))) _sqlite3VdbeAddFunctionCall(tls, pParse, 0, regStat+int32(1), regStat, int32(4), uintptr(unsafe.Pointer(&_statInitFuncdef)), 0) - /* Implementation of the following: - ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; - ** regChng = 0 - ** goto next_push_0; - ** - */ + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regChng) addrNextRow = _sqlite3VdbeCurrentAddr(tls, v) if nColTest > 0 { @@ -96691,9 +97240,15 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iIdxCur, addrNextRow) } /* Add the entry to the stat1 table. */ + if (*TIndex)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 { + /* Partial indexes might get a zero-entry in sqlite_stat1. But + ** an empty table is omitted from sqlite_stat1. */ + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + addrGotoEnd = 0 + } _callStatGet(tls, pParse, regStat, STAT_GET_STAT1, regStat1) _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11789, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11914, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP4(tls, v, -int32(1), pStat1, -int32(5)) @@ -96712,6 +97267,11 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint v18 = int32(OP_NotFound) } seekOp = uint8(v18) + /* No STAT4 data is generated if the number of rows is zero */ + if addrGotoEnd == 0 { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Cast), regStat1, int32(SQLITE_AFF_INTEGER)) + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) + } if doOnce != 0 { mxCol = nCol /* Compute the maximum number of columns in any index */ @@ -96766,7 +97326,9 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeJumpHere(tls, v, addrIsNull) } /* End of analysis */ - _sqlite3VdbeJumpHere(tls, v, addrRewind) + if addrGotoEnd != 0 { + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + } goto _13 _13: ; @@ -96780,7 +97342,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint jZeroRows = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regIdxname) _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11789, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11914, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND)) @@ -96855,9 +97417,9 @@ func _analyzeTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr iStatCur = (*TParse)(unsafe.Pointer(pParse)).FnTab *(*int32)(unsafe.Pointer(pParse + 40)) += int32(3) if pOnlyIdx != 0 { - _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11793) + _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11918) } else { - _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11797) + _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11922) } _analyzeOneTable(tls, pParse, pTab, pOnlyIdx, iStatCur, (*TParse)(unsafe.Pointer(pParse)).FnMem+int32(1), (*TParse)(unsafe.Pointer(pParse)).FnTab) _loadAnalysis(tls, pParse, iDb) @@ -96988,7 +97550,7 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, _, _, _, _, _, _ = c, i, sz, v, z, v2 z = zIntArray if z == uintptr(0) { - z = __ccgo_ts + 1648 + z = __ccgo_ts + 1662 } i = 0 for { @@ -97023,17 +97585,17 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, libc.SetBitFieldPtr16Uint32(pIndex+56, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pIndex+56, libc.Uint32FromInt32(0), 6, 0x40) for *(*uint8)(unsafe.Pointer(z)) != 0 { - if Xsqlite3_strglob(tls, __ccgo_ts+11801, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11926, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+56, libc.Uint32FromInt32(1), 2, 0x4) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11812, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11937, z) == 0 { sz = _sqlite3Atoi(tls, z+uintptr(3)) if sz < int32(2) { sz = int32(2) } (*TIndex)(unsafe.Pointer(pIndex)).FszIdxRow = _sqlite3LogEst(tls, uint64(sz)) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11822, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11947, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+56, libc.Uint32FromInt32(1), 6, 0x40) } } @@ -97417,11 +97979,11 @@ func _loadStat4(tls *libc.TLS, db uintptr, zDb uintptr) (r int32) { rc = SQLITE_OK _ = libc.Int32FromInt32(0) if v2 = (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0); v2 { - v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11608, zDb) + v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11733, zDb) pStat4 = v1 } if v2 && v1 != uintptr(0) && int32((*TTable)(unsafe.Pointer(pStat4)).FeTabType) == TABTYP_NORM { - rc = _loadStatTbl(tls, db, __ccgo_ts+11834, __ccgo_ts+11903, zDb) + rc = _loadStatTbl(tls, db, __ccgo_ts+11959, __ccgo_ts+12028, zDb) } return rc } @@ -97490,10 +98052,10 @@ func _sqlite3AnalysisLoad(tls *libc.TLS, db uintptr, iDb int32) (r int32) { /* Load new statistics out of the sqlite_stat1 table */ (*(*TanalysisInfo)(unsafe.Pointer(bp))).Fdb = db (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName - v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11582, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) + v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11707, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) pStat1 = v3 if v3 != 0 && int32((*TTable)(unsafe.Pointer(pStat1)).FeTabType) == TABTYP_NORM { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+11955, libc.VaList(bp+16, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+12080, libc.VaList(bp+16, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -97607,7 +98169,7 @@ func _resolveAttachExpr(tls *libc.TLS, pName uintptr, pExpr uintptr) (r int32) { // ** database iDb attached to handle db. // */ func _sqlite3DbIsNamed(tls *libc.TLS, db uintptr, iDb int32, zName uintptr) (r int32) { - return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6585, zName) == 0) + return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6649, zName) == 0) } // C documentation @@ -97649,21 +98211,21 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { zFile = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) zName = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*4))) if zFile == uintptr(0) { - zFile = __ccgo_ts + 1648 + zFile = __ccgo_ts + 1662 } if zName == uintptr(0) { - zName = __ccgo_ts + 1648 + zName = __ccgo_ts + 1662 } if int32(uint32(*(*uint8)(unsafe.Pointer(db + 172 + 8))&0x4>>2)) != 0 { /* This is not a real ATTACH. Instead, this routine is being called ** from sqlite3_deserialize() to close database db->init.iDb and ** reopen it as a MemDB */ *(*uintptr)(unsafe.Pointer(bp + 20)) = uintptr(0) - *(*uintptr)(unsafe.Pointer(bp + 16)) = Xsqlite3_vfs_find(tls, __ccgo_ts+3967) + *(*uintptr)(unsafe.Pointer(bp + 16)) = Xsqlite3_vfs_find(tls, __ccgo_ts+4031) if *(*uintptr)(unsafe.Pointer(bp + 16)) == uintptr(0) { return } - rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), __ccgo_ts+11996, db, bp+20, 0, int32(SQLITE_OPEN_MAIN_DB)) + rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), __ccgo_ts+12121, db, bp+20, 0, int32(SQLITE_OPEN_MAIN_DB)) if rc == SQLITE_OK { pNewSchema = _sqlite3SchemaGet(tls, db, *(*uintptr)(unsafe.Pointer(bp + 20))) if pNewSchema != 0 { @@ -97694,7 +98256,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { ** * Specified database name already being used. */ if (*Tsqlite3)(unsafe.Pointer(db)).FnDb >= *(*int32)(unsafe.Pointer(db + 120 + 7*4))+int32(2) { - *(*uintptr)(unsafe.Pointer(bp + 12)) = _sqlite3MPrintf(tls, db, __ccgo_ts+11999, libc.VaList(bp+32, *(*int32)(unsafe.Pointer(db + 120 + 7*4)))) + *(*uintptr)(unsafe.Pointer(bp + 12)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12124, libc.VaList(bp+32, *(*int32)(unsafe.Pointer(db + 120 + 7*4)))) goto attach_error } i = 0 @@ -97704,7 +98266,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } _ = libc.Int32FromInt32(0) if _sqlite3DbIsNamed(tls, db, i, zName) != 0 { - *(*uintptr)(unsafe.Pointer(bp + 12)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12036, libc.VaList(bp+32, zName)) + *(*uintptr)(unsafe.Pointer(bp + 12)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12161, libc.VaList(bp+32, zName)) goto attach_error } goto _1 @@ -97753,7 +98315,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FnoSharedCache = uint8(0) if rc == int32(SQLITE_CONSTRAINT) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(bp + 12)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12066, 0) + *(*uintptr)(unsafe.Pointer(bp + 12)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12191, 0) } else { if rc == SQLITE_OK { (*TDb)(unsafe.Pointer(pNew)).FpSchema = _sqlite3SchemaGet(tls, db, (*TDb)(unsafe.Pointer(pNew)).FpBt) @@ -97761,7 +98323,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { rc = int32(SQLITE_NOMEM) } else { if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Ffile_format != 0 && int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Fenc) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - *(*uintptr)(unsafe.Pointer(bp + 12)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12095, 0) + *(*uintptr)(unsafe.Pointer(bp + 12)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12220, 0) rc = int32(SQLITE_ERROR) } } @@ -97807,16 +98369,17 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)<= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12191, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12316, libc.VaList(bp+136, zName)) goto detach_error } if i < int32(2) { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12212, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12337, libc.VaList(bp+136, zName)) goto detach_error } if _sqlite3BtreeTxnState(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != SQLITE_TXN_NONE || _sqlite3BtreeIsInBackup(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != 0 { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12238, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12363, libc.VaList(bp+136, zName)) goto detach_error } /* If any TEMP triggers reference the schema being detached, move those @@ -97898,6 +98461,7 @@ func _detachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*TDb)(unsafe.Pointer(pDb)).FpSchema = uintptr(0) _sqlite3CollapseDatabaseArray(tls, db) return + goto detach_error detach_error: ; Xsqlite3_result_error(tls, context, bp, -int32(1)) @@ -97954,6 +98518,7 @@ func _codeAttach(tls *libc.TLS, pParse uintptr, type1 int32, pFunc uintptr, pAut */ _sqlite3VdbeAddOp1(tls, v, int32(OP_Expire), libc.BoolInt32(type1 == int32(SQLITE_ATTACH))) } + goto attach_end attach_end: ; _sqlite3ExprDelete(tls, db, pFilename) @@ -97975,7 +98540,7 @@ func _sqlite3Detach(tls *libc.TLS, pParse uintptr, pDbname uintptr) { var _detach_func = TFuncDef{ FnArg: int8(1), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12260, + FzName: __ccgo_ts + 12385, } func init() { @@ -97997,7 +98562,7 @@ func _sqlite3Attach(tls *libc.TLS, pParse uintptr, p uintptr, pDbname uintptr, p var _attach_func = TFuncDef{ FnArg: int8(3), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12274, + FzName: __ccgo_ts + 12399, } func init() { @@ -98023,7 +98588,7 @@ func _fixExprCb(tls *libc.TLS, p uintptr, pExpr uintptr) (r int32) { if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer((*TDbFixer)(unsafe.Pointer(pFix)).FpParse)).Fdb)).Finit1.Fbusy != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } else { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12288, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12413, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) return int32(WRC_Abort) } } @@ -98057,7 +98622,7 @@ func _fixSelectCb(tls *libc.TLS, p uintptr, pSelect uintptr) (r int32) { if int32((*TDbFixer)(unsafe.Pointer(pFix)).FbTemp) == 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { if iDb != _sqlite3FindDbName(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12312, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12437, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) return int32(WRC_Abort) } _sqlite3DbFree(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) @@ -98274,7 +98839,7 @@ func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uint // ** user-supplied authorization function returned an illegal value. // */ func _sqliteAuthBadReturnCode(tls *libc.TLS, pParse uintptr) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12358, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12483, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) } @@ -98302,11 +98867,11 @@ func _sqlite3AuthReadCol(tls *libc.TLS, pParse uintptr, zTab uintptr, zCol uintp } rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, int32(SQLITE_READ), zTab, zCol, zDb, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12381, libc.VaList(bp+8, zTab, zCol)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12506, libc.VaList(bp+8, zTab, zCol)) if (*Tsqlite3)(unsafe.Pointer(db)).FnDb > int32(2) || iDb != 0 { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12387, libc.VaList(bp+8, zDb, z)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12512, libc.VaList(bp+8, zDb, z)) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12393, libc.VaList(bp+8, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12518, libc.VaList(bp+8, z)) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != int32(SQLITE_IGNORE) && rc != SQLITE_OK { @@ -98372,7 +98937,7 @@ func _sqlite3AuthRead(tls *libc.TLS, pParse uintptr, pExpr uintptr, pSchema uint _ = libc.Int32FromInt32(0) zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*12))).FzCnName } else { - zCol = __ccgo_ts + 7905 + zCol = __ccgo_ts + 8030 } } _ = libc.Int32FromInt32(0) @@ -98409,7 +98974,7 @@ func _sqlite3AuthCheck(tls *libc.TLS, pParse uintptr, code int32, zArg1 uintptr, ** parameters can be either NULL or a string. */ rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, code, zArg1, zArg2, zArg3, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12420, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12545, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != SQLITE_OK && rc != int32(SQLITE_IGNORE) { @@ -98844,21 +99409,21 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp if i >= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { /* No match against the official names. But always match "main" ** to schema 0 as a legacy fallback. */ - if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6585) == 0 { + if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6649) == 0 { i = 0 } else { return uintptr(0) } } p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*16))).FpSchema+8, zName) - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6525, int32(7)) == 0 { + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6589, int32(7)) == 0 { if i == int32(1) { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6552+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6571+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6066+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpSchema+8, __ccgo_ts+6533) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6616+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6635+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6130+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpSchema+8, __ccgo_ts+6597) } } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6571+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*16))).FpSchema+8, __ccgo_ts+6066) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6635+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*16))).FpSchema+8, __ccgo_ts+6130) } } } @@ -98889,12 +99454,12 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp ; i++ } - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6525, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6571+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6066) + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6589, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6635+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6130) } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6552+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpSchema+8, __ccgo_ts+6533) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6616+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpSchema+8, __ccgo_ts+6597) } } } @@ -98932,7 +99497,7 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt ** can be an eponymous virtual table. */ if int32((*TParse)(unsafe.Pointer(pParse)).FprepFlags)&int32(SQLITE_PREPARE_NO_VTAB) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 { pMod = _sqlite3HashFind(tls, db+404, zName) - if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12435, int32(7)) == 0 { + if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12560, int32(7)) == 0 { pMod = _sqlite3PragmaVtabRegister(tls, db, zName) } if pMod != 0 && _sqlite3VtabEponymousTableInit(tls, pParse, pMod) != 0 { @@ -98950,15 +99515,15 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt } if p == uintptr(0) { if flags&uint32(LOCATE_VIEW) != 0 { - v1 = __ccgo_ts + 12443 + v1 = __ccgo_ts + 12568 } else { - v1 = __ccgo_ts + 12456 + v1 = __ccgo_ts + 12581 } zMsg = v1 if zDbase != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6789, libc.VaList(bp+8, zMsg, zDbase, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6853, libc.VaList(bp+8, zMsg, zDbase, zName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6799, libc.VaList(bp+8, zMsg, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6924, libc.VaList(bp+8, zMsg, zName)) } } else { _ = libc.Int32FromInt32(0) @@ -98998,12 +99563,12 @@ func _sqlite3LocateTableItem(tls *libc.TLS, pParse uintptr, flags Tu32, p uintpt // ** names into the new preferred names, as appropriate. // */ func _sqlite3PreferredTableName(tls *libc.TLS, zName uintptr) (r uintptr) { - if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6525, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6066+7) == 0 { - return __ccgo_ts + 6571 + if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6589, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6130+7) == 0 { + return __ccgo_ts + 6635 } - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6533+7) == 0 { - return __ccgo_ts + 6552 + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6597+7) == 0 { + return __ccgo_ts + 6616 } } return zName @@ -99549,7 +100114,7 @@ func _sqlite3OpenSchemaTable(tls *libc.TLS, p uintptr, iDb int32) { var v uintptr _ = v v = _sqlite3GetVdbe(tls, p) - _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6066) + _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6130) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_OpenWrite), 0, int32(SCHEMA_ROOT), iDb, int32(5)) if (*TParse)(unsafe.Pointer(p)).FnTab == 0 { (*TParse)(unsafe.Pointer(p)).FnTab = int32(1) @@ -99581,7 +100146,7 @@ func _sqlite3FindDbName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) { } /* "main" is always an acceptable alias for the primary database ** even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME. */ - if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6585, zName) { + if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6649, zName) { break } goto _1 @@ -99640,13 +100205,13 @@ func _sqlite3TwoPartName(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u _ = libc.Int32FromInt32(0) if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12470, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12595, 0) return -int32(1) } *(*uintptr)(unsafe.Pointer(pUnqual)) = pName2 iDb = _sqlite3FindDb(tls, db, pName1) if iDb < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12487, libc.VaList(bp+8, pName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12612, libc.VaList(bp+8, pName1)) return -int32(1) } } else { @@ -99691,12 +100256,12 @@ func _sqlite3CheckObjectName(tls *libc.TLS, pParse uintptr, zName uintptr, zType } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if Xsqlite3_stricmp(tls, zType, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit))) != 0 || Xsqlite3_stricmp(tls, zName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 1*4))) != 0 || Xsqlite3_stricmp(tls, zTblName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 2*4))) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1648, 0) /* corruptSchema() will supply the error */ + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1662, 0) /* corruptSchema() will supply the error */ return int32(SQLITE_ERROR) } } else { - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6525, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12507, libc.VaList(bp+8, zName)) + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6589, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12632, libc.VaList(bp+8, zName)) return int32(SQLITE_ERROR) } } @@ -99912,9 +100477,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Special case: Parsing the sqlite_schema or sqlite_temp_schema schema */ iDb = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6533 + v1 = __ccgo_ts + 6597 } else { - v1 = __ccgo_ts + 6066 + v1 = __ccgo_ts + 6130 } zName = _sqlite3DbStrDup(tls, db, v1) *(*uintptr)(unsafe.Pointer(bp)) = pName1 @@ -99927,7 +100492,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 && (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) && iDb != int32(1) { /* If creating a temp table, the name may not be qualified. Unless ** the database name is "temp" anyway. */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12549, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12674, 0) return } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 { @@ -99943,9 +100508,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui return } if isView != 0 { - v2 = __ccgo_ts + 10796 + v2 = __ccgo_ts + 10921 } else { - v2 = __ccgo_ts + 9058 + v2 = __ccgo_ts + 9183 } if _sqlite3CheckObjectName(tls, pParse, zName, v2, zName) != 0 { goto begin_table_error @@ -99957,9 +100522,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui _ = libc.Int32FromInt32(0) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp == int32(1) { - v3 = __ccgo_ts + 6533 + v3 = __ccgo_ts + 6597 } else { - v3 = __ccgo_ts + 6066 + v3 = __ccgo_ts + 6130 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto begin_table_error @@ -99983,11 +100548,11 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if pTable != 0 { if !(noErr != 0) { if int32((*TTable)(unsafe.Pointer(pTable)).FeTabType) == int32(TABTYP_VIEW) { - v4 = __ccgo_ts + 10796 + v4 = __ccgo_ts + 10921 } else { - v4 = __ccgo_ts + 9058 + v4 = __ccgo_ts + 9183 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12590, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12715, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -99996,7 +100561,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui goto begin_table_error } if _sqlite3FindIndex(tls, db, zName, zDb1) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12611, libc.VaList(bp+16, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12736, libc.VaList(bp+16, zName)) goto begin_table_error } } @@ -100088,6 +100653,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Normal (non-error) return. */ return /* If an error occurs, we jump here */ + goto begin_table_error begin_table_error: ; (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) @@ -100151,7 +100717,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { _, _, _ = db, pHash, pRet db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12646, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12771, 0) } else { _ = libc.Int32FromInt32(0) } @@ -100168,7 +100734,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return } - Xsqlite3_snprintf(tls, int32(40), pRet+104, __ccgo_ts+12680, libc.VaList(bp+8, pParse)) + Xsqlite3_snprintf(tls, int32(40), pRet+104, __ccgo_ts+12805, libc.VaList(bp+8, pParse)) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.FzName = pRet + 104 (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Fop = uint8(TK_RETURNING) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Ftr_tm = uint8(TRIGGER_AFTER) @@ -100216,7 +100782,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok return } if int32((*TTable)(unsafe.Pointer(p)).FnCol)+int32(1) > *(*int32)(unsafe.Pointer(db + 120 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12700, libc.VaList(bp+24, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12825, libc.VaList(bp+24, (*TTable)(unsafe.Pointer(p)).FzName)) return } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -100226,12 +100792,12 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok ** by the parser, we can sometimes end up with a typename that ends ** with "generated always". Check for this case and omit the surplus ** text. */ - if (*(*TToken)(unsafe.Pointer(bp + 8))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 8))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 8))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12723, int32(6)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 8))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 8))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 8))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12848, int32(6)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 8))).Fn -= uint32(6) for (*(*TToken)(unsafe.Pointer(bp + 8))).Fn > uint32(0) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 8))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 8))).Fn-uint32(1))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 8))).Fn-- } - if (*(*TToken)(unsafe.Pointer(bp + 8))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 8))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 8))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12730, int32(9)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 8))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 8))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 8))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12855, int32(9)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 8))).Fn -= uint32(9) for (*(*TToken)(unsafe.Pointer(bp + 8))).Fn > uint32(0) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 8))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 8))).Fn-uint32(1))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 8))).Fn-- @@ -100280,7 +100846,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok break } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*12))).FhName) == int32(hName) && _sqlite3StrICmp(tls, z, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*12))).FzCnName) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12740, libc.VaList(bp+24, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12865, libc.VaList(bp+24, z)) _sqlite3DbFree(tls, db, z) return } @@ -100490,10 +101056,10 @@ func _sqlite3AddDefaultValue(tls *libc.TLS, pParse uintptr, pExpr uintptr, zStar isInit = libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) != int32(1)) pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(p)).FnCol)-int32(1))*12 if !(_sqlite3ExprIsConstantOrFunction(tls, pExpr, uint8(isInit)) != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12766, libc.VaList(bp+64, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12891, libc.VaList(bp+64, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12811, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12936, 0) } else { libc.Xmemset(tls, bp, 0, uint32(52)) (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_SPAN) @@ -100551,7 +101117,7 @@ func _makeColumnPartOfPrimaryKey(tls *libc.TLS, pParse uintptr, pCol uintptr) { p1 = pCol + 10 *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(COLFLAG_PRIMKEY)) if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12852, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12977, 0) } } @@ -100588,7 +101154,7 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError goto primary_key_exit } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasPrimaryKey) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12904, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13029, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto primary_key_exit } *(*Tu32)(unsafe.Pointer(pTab + 28)) |= uint32(TF_HasPrimaryKey) @@ -100647,12 +101213,13 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError _sqlite3HasExplicitNulls(tls, pParse, pList) } else { if autoInc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12945, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13070, 0) } else { _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), pList, onError, uintptr(0), uintptr(0), sortOrder, 0, uint8(SQLITE_IDXTYPE_PRIMARYKEY)) pList = uintptr(0) } } + goto primary_key_exit primary_key_exit: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) @@ -100763,17 +101330,17 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui } pCol = (*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-int32(1))*12 if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) == int32(PARSE_MODE_DECLARE_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13001, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13126, 0) goto generated_done } if int32((*TColumn)(unsafe.Pointer(pCol)).FiDflt) > 0 { goto generated_error } if pType != 0 { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13044, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13169, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { /* no-op */ } else { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13052, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13177, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { eType = uint8(COLFLAG_STORED) } else { goto generated_error @@ -100804,9 +101371,11 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui _sqlite3ColumnSetExpr(tls, pParse, pTab, pCol, pExpr) pExpr = uintptr(0) goto generated_done + goto generated_error generated_error: ; - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13059, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13184, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + goto generated_done generated_done: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -100969,13 +101538,13 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { } n += _identLength(tls, (*TTable)(unsafe.Pointer(p)).FzName) if n < int32(50) { - zSep = __ccgo_ts + 1648 - zSep2 = __ccgo_ts + 13090 - zEnd = __ccgo_ts + 5106 + zSep = __ccgo_ts + 1662 + zSep2 = __ccgo_ts + 13215 + zEnd = __ccgo_ts + 5170 } else { - zSep = __ccgo_ts + 13092 - zSep2 = __ccgo_ts + 13096 - zEnd = __ccgo_ts + 13101 + zSep = __ccgo_ts + 13217 + zSep2 = __ccgo_ts + 13221 + zEnd = __ccgo_ts + 13226 } n += int32(35) + int32(6)*int32((*TTable)(unsafe.Pointer(p)).FnCol) zStmt = _sqlite3DbMallocRaw(tls, uintptr(0), uint64(n)) @@ -100983,7 +101552,7 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { _sqlite3OomFault(tls, db) return uintptr(0) } - Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13104, 0) + Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13229, 0) *(*int32)(unsafe.Pointer(bp)) = _sqlite3Strlen30(tls, zStmt) _identPut(tls, zStmt, bp, (*TTable)(unsafe.Pointer(p)).FzName) v2 = *(*int32)(unsafe.Pointer(bp)) @@ -101013,17 +101582,17 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { i++ pCol += 12 } - Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3795, libc.VaList(bp+16, zEnd)) + Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3859, libc.VaList(bp+16, zEnd)) return zStmt } var _azType1 = [6]uintptr{ - 0: __ccgo_ts + 1648, - 1: __ccgo_ts + 13118, - 2: __ccgo_ts + 13124, - 3: __ccgo_ts + 13129, - 4: __ccgo_ts + 13134, - 5: __ccgo_ts + 13124, + 0: __ccgo_ts + 1662, + 1: __ccgo_ts + 13243, + 2: __ccgo_ts + 13249, + 3: __ccgo_ts + 13254, + 4: __ccgo_ts + 13259, + 5: __ccgo_ts + 13249, } // C documentation @@ -101622,13 +102191,13 @@ func _sqlite3ShadowTableName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr, tabOpts Tu32, pSelect uintptr) { bp := tls.Alloc(96) defer tls.Free(96) - var addrInsLoop, addrTop, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v4, v6, v8 int32 + var addrInsLoop, addrTop, iCsr, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v10, v4, v6, v8 int32 var colFlags Tu32 - var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v5, v7, v9 uintptr - var v10 Ti16 + var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v13, v5, v7, v9 uintptr + var v12 Ti16 var _ /* dest at bp+0 */ TSelectDest - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v4, v5, v6, v7, v8, v9 /* The new table */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iCsr, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v12, v13, v4, v5, v6, v7, v8, v9 /* The new table */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ if pEnd == uintptr(0) && pSelect == uintptr(0) { return } @@ -101650,7 +102219,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if pSelect != 0 || !(int32((*TTable)(unsafe.Pointer(p)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) && (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1648, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1662, 0) return } (*TTable)(unsafe.Pointer(p)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum @@ -101677,9 +102246,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(ii)*12 if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 4))&0xf0>>4)) == COLTYPE_CUSTOM { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_HASTYPE) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13140, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1648))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13265, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1662))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13173, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13298, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } return } else { @@ -101702,11 +102271,11 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* Special processing for WITHOUT ROWID Tables */ if tabOpts&uint32(TF_WithoutRowid) != 0 { if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13200, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13325, 0) return } if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasPrimaryKey) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13250, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13375, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) return } *(*Tu32)(unsafe.Pointer(p + 28)) |= uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) @@ -101753,7 +102322,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ii1++ } if nNG == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13282, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13407, 0) return } } @@ -101787,12 +102356,12 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if int32((*TTable)(unsafe.Pointer(p)).FeTabType) == TABTYP_NORM { /* A regular table */ - zType = __ccgo_ts + 9058 - zType2 = __ccgo_ts + 13326 + zType = __ccgo_ts + 9183 + zType2 = __ccgo_ts + 13451 } else { /* A view */ - zType = __ccgo_ts + 10796 - zType2 = __ccgo_ts + 13332 + zType = __ccgo_ts + 10921 + zType2 = __ccgo_ts + 13457 } /* If this is a CREATE TABLE xx AS SELECT ..., execute the SELECT ** statement to populate the new table. The root-page number for the @@ -101807,29 +102376,31 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** a schema-lock excludes all other database users, the write-lock would ** be redundant. */ - if pSelect != 0 { /* A table that describes the SELECT results */ + if pSelect != 0 { /* Write cursor on the new table */ if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) (*TParse)(unsafe.Pointer(pParse)).FnErr++ return } - v5 = pParse + 44 - *(*int32)(unsafe.Pointer(v5))++ + v5 = pParse + 40 v4 = *(*int32)(unsafe.Pointer(v5)) - regYield = v4 + *(*int32)(unsafe.Pointer(v5))++ + iCsr = v4 v7 = pParse + 44 *(*int32)(unsafe.Pointer(v7))++ v6 = *(*int32)(unsafe.Pointer(v7)) - regRec = v6 + regYield = v6 v9 = pParse + 44 *(*int32)(unsafe.Pointer(v9))++ v8 = *(*int32)(unsafe.Pointer(v9)) - regRowid = v8 - _ = libc.Int32FromInt32(0) + regRec = v8 + v11 = pParse + 44 + *(*int32)(unsafe.Pointer(v11))++ + v10 = *(*int32)(unsafe.Pointer(v11)) + regRowid = v10 _sqlite3MayAbort(tls, pParse) - _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), int32(1), (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) + _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), iCsr, (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_P2ISREG)) - (*TParse)(unsafe.Pointer(pParse)).FnTab = int32(2) addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { @@ -101840,9 +102411,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr return } _ = libc.Int32FromInt32(0) - v10 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol - (*TTable)(unsafe.Pointer(p)).FnNVCol = v10 - (*TTable)(unsafe.Pointer(p)).FnCol = v10 + v12 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol + (*TTable)(unsafe.Pointer(p)).FnNVCol = v12 + (*TTable)(unsafe.Pointer(p)).FnCol = v12 (*TTable)(unsafe.Pointer(p)).FaCol = (*TTable)(unsafe.Pointer(pSelTab)).FaCol (*TTable)(unsafe.Pointer(pSelTab)).FnCol = 0 (*TTable)(unsafe.Pointer(pSelTab)).FaCol = uintptr(0) @@ -101857,33 +102428,33 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr addrInsLoop = _sqlite3VdbeAddOp1(tls, v, int32(OP_Yield), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSDParm) _sqlite3VdbeAddOp3(tls, v, int32(OP_MakeRecord), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst, (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst, regRec) _sqlite3TableAffinity(tls, v, p, 0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), int32(1), regRowid) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), int32(1), regRec, regRowid) + _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iCsr, regRowid) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iCsr, regRec, regRowid) _sqlite3VdbeGoto(tls, v, addrInsLoop) _sqlite3VdbeJumpHere(tls, v, addrInsLoop) - _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), int32(1)) + _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), iCsr) } /* Compute the complete text of the CREATE statement */ if pSelect != 0 { zStmt = _createTableStmt(tls, db, p) } else { if tabOpts != 0 { - v11 = pParse + 208 + v13 = pParse + 208 } else { - v11 = pEnd + v13 = pEnd } - pEnd2 = v11 + pEnd2 = v13 n = int32((*TToken)(unsafe.Pointer(pEnd2)).Fz) - int32((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz) if int32(*(*uint8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pEnd2)).Fz))) != int32(';') { n = int32(uint32(n) + (*TToken)(unsafe.Pointer(pEnd2)).Fn) } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13337, libc.VaList(bp+40, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13462, libc.VaList(bp+40, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) } /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13352, libc.VaList(bp+40, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13477, libc.VaList(bp+40, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) _sqlite3DbFree(tls, db, zStmt) _sqlite3ChangeCookie(tls, pParse, iDb) /* Check to see if we need to create an sqlite_sequence table for @@ -101893,17 +102464,16 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16 _ = libc.Int32FromInt32(0) if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).FpSeqTab == uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13450, libc.VaList(bp+40, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13575, libc.VaList(bp+40, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) } } /* Reparse everything to update our internal data structures */ - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13492, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13617, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) /* Test for cycles in generated columns and illegal expressions ** in CHECK constraints and in DEFAULT clauses. */ if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasGenerated) != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13526, libc.VaList(bp+40, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(0x0001), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13651, libc.VaList(bp+40, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13547, libc.VaList(bp+40, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } /* Add the table to the in-memory representation of the database. */ @@ -101923,7 +102493,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** then record a pointer to this table in the main database structure ** so that INSERT can find the table easily. */ _ = libc.Int32FromInt32(0) - if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9580) == 0 { + if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9705) == 0 { _ = libc.Int32FromInt32(0) (*TSchema)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FpSchema)).FpSeqTab = p } @@ -101958,7 +102528,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*uintptr)(unsafe.Pointer(bp + 60)) = uintptr(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if int32((*TParse)(unsafe.Pointer(pParse)).FnVar) > 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13579, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13672, 0) goto create_view_fail } _sqlite3StartTable(tls, pParse, pName1, pName2, isTemp, int32(1), 0, noErr) @@ -101975,7 +102545,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*Tu32)(unsafe.Pointer(p + 28)) |= uint32(TF_NoVisibleRowid) /* Never allow rowid in view */ _sqlite3TwoPartName(tls, pParse, pName1, pName2, bp+60) iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(p)).FpSchema) - _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+10796, *(*uintptr)(unsafe.Pointer(bp + 60))) + _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+10921, *(*uintptr)(unsafe.Pointer(bp + 60))) if _sqlite3FixSelect(tls, bp+8, pSelect) != 0 { goto create_view_fail } @@ -102019,6 +102589,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui (*(*TToken)(unsafe.Pointer(bp))).Fn = uint32(1) /* Use sqlite3EndTable() to add the view to the schema table */ _sqlite3EndTable(tls, pParse, uintptr(0), bp, uint32(0), uintptr(0)) + goto create_view_fail create_view_fail: ; _sqlite3SelectDelete(tls, db, pSelect) @@ -102074,7 +102645,7 @@ func _viewGetColumnNames(tls *libc.TLS, pParse uintptr, pTable uintptr) (r int32 ** SELECT * FROM temp.ex1; */ if int32((*TTable)(unsafe.Pointer(pTable)).FnCol) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13615, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13708, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) return int32(1) } _ = libc.Int32FromInt32(0) @@ -102266,7 +102837,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { v = _sqlite3GetVdbe(tls, pParse) r1 = _sqlite3GetTempReg(tls, pParse) if iTable < int32(2) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13645, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13738, 0) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Destroy), iTable, r1, iDb) _sqlite3MayAbort(tls, pParse) @@ -102279,7 +102850,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { ** is in register NNN. See grammar rules associated with the TK_REGISTER ** token for additional information. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13660, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*16))).FzDbSName, iTable, r1, r1)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13753, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*16))).FzDbSName, iTable, r1, r1)) _sqlite3ReleaseTempReg(tls, pParse, r1) } @@ -102364,9 +102935,9 @@ func _sqlite3ClearStatTables(tls *libc.TLS, pParse uintptr, iDb int32, zType uin if !(i <= int32(4)) { break } - Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13727, libc.VaList(bp+32, i)) + Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13820, libc.VaList(bp+32, i)) if _sqlite3FindTable(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, bp, zDbName) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11685, libc.VaList(bp+32, zDbName, bp, zType, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11810, libc.VaList(bp+32, zDbName, bp, zType, zName)) } goto _1 _1: @@ -102409,7 +102980,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** move as a result of the drop (can happen in auto-vacuum mode). */ if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13741, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13834, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* Drop all entries in the schema table that refer to the ** table. The program name loops through the schema table and deletes @@ -102418,7 +102989,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** created in the temp database that refers to a table in another ** database. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13786, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13879, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !(isView != 0) && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { _destroyTable(tls, pParse, pTab) } @@ -102453,11 +103024,11 @@ func _sqlite3ReadOnlyShadowTables(tls *libc.TLS, db uintptr) (r int32) { // ** Return true if it is not allowed to drop the given table // */ func _tableMayNotBeDropped(tls *libc.TLS, db uintptr, pTab uintptr) (r int32) { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6525, int32(7)) == 0 { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3418, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6589, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3482, int32(4)) == 0 { return 0 } - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7266, int32(10)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7391, int32(10)) == 0 { return 0 } return int32(1) @@ -102516,9 +103087,9 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6533 + v1 = __ccgo_ts + 6597 } else { - v1 = __ccgo_ts + 6066 + v1 = __ccgo_ts + 6130 } zTab = v1 zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName @@ -102551,18 +103122,18 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if _tableMayNotBeDropped(tls, db, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13853, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13946, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Ensure DROP TABLE is not used on a view, and DROP VIEW is not used ** on a table. */ if isView != 0 && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13881, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13974, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } if !(isView != 0) && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13915, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14008, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Generate code to remove the table from the schema table @@ -102572,11 +103143,12 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) if !(isView != 0) { - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11797, (*TTable)(unsafe.Pointer(pTab)).FzName) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11922, (*TTable)(unsafe.Pointer(pTab)).FzName) _sqlite3FkDropTable(tls, pParse, pName, pTab) } _sqlite3CodeDropTable(tls, pParse, pTab, iDb, isView) } + goto exit_drop_table exit_drop_table: ; _sqlite3SrcListDelete(tls, db, pName) @@ -102620,13 +103192,13 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p goto fk_end } if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13947, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*12))).FzCnName, pTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14040, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*12))).FzCnName, pTo)) goto fk_end } nCol = int32(1) } else { if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14010, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14103, 0) goto fk_end } else { nCol = (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr @@ -102690,7 +103262,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p j++ } if j >= int32((*TTable)(unsafe.Pointer(p)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14104, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*20))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14197, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*20))).FzEName)) goto fk_end } if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { @@ -102745,6 +103317,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p FpDfltList uintptr })(unsafe.Pointer(p + 44))).FpFKey = pFKey pFKey = uintptr(0) + goto fk_end fk_end: ; _sqlite3DbFree(tls, db, pFKey) @@ -102953,11 +103526,11 @@ func _sqlite3HasExplicitNulls(tls *libc.TLS, pParse uintptr, pList uintptr) (r i if int32(uint32(*(*uint16)(unsafe.Pointer(pList + 8 + uintptr(i)*20 + 8 + 4))&0x20>>5)) != 0 { sf = (*(*TExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*20))).Ffg.FsortFlags if int32(sf) == 0 || int32(sf) == int32(3) { - v2 = __ccgo_ts + 14150 + v2 = __ccgo_ts + 14243 } else { - v2 = __ccgo_ts + 14156 + v2 = __ccgo_ts + 14249 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14161, libc.VaList(bp+8, v2)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14254, libc.VaList(bp+8, v2)) return int32(1) } goto _1 @@ -103039,7 +103612,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = int32(1) } } - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14189, *(*uintptr)(unsafe.Pointer(bp + 52))) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14282, *(*uintptr)(unsafe.Pointer(bp + 52))) if _sqlite3FixSrcList(tls, bp, pTblName) != 0 { /* Because the parser constructs pTblName from a single identifier, ** sqlite3FixSrcList can never fail. */ @@ -103051,7 +103624,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } if iDb == int32(1) && (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FpSchema != (*TTable)(unsafe.Pointer(pTab)).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14195, libc.VaList(bp+80, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14288, libc.VaList(bp+80, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { @@ -103068,16 +103641,16 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16 _ = libc.Int32FromInt32(0) - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6525, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14245, libc.VaList(bp+80, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6589, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14338, libc.VaList(bp+80, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14273, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14366, 0) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14298, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14391, 0) goto exit_create_index } /* @@ -103099,19 +103672,19 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } _ = libc.Int32FromInt32(0) - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14189, (*TTable)(unsafe.Pointer(pTab)).FzName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14282, (*TTable)(unsafe.Pointer(pTab)).FzName) { goto exit_create_index } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if !((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0) { if _sqlite3FindTable(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14332, libc.VaList(bp+80, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14425, libc.VaList(bp+80, zName)) goto exit_create_index } } if _sqlite3FindIndex(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { if !(ifNotExist != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14366, libc.VaList(bp+80, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14459, libc.VaList(bp+80, zName)) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -103133,7 +103706,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pLoop = (*TIndex)(unsafe.Pointer(pLoop)).FpNext n++ } - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14390, libc.VaList(bp+80, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14483, libc.VaList(bp+80, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) if zName == uintptr(0) { goto exit_create_index } @@ -103151,9 +103724,9 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { zDb = (*TDb)(unsafe.Pointer(pDb)).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6533 + v2 = __ccgo_ts + 6597 } else { - v2 = __ccgo_ts + 6066 + v2 = __ccgo_ts + 6130 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v2, uintptr(0), zDb) != 0 { goto exit_create_index @@ -103182,7 +103755,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u _ = libc.Int32FromInt32(0) _sqlite3ExprListSetSortOrder(tls, pList, sortOrder, -int32(1)) } else { - _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14189) + _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14282) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { goto exit_create_index } @@ -103272,7 +103845,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pCExpr = _sqlite3ExprSkipCollate(tls, (*TExprList_item)(unsafe.Pointer(pListItem)).FpExpr) if int32((*TExpr)(unsafe.Pointer(pCExpr)).Fop) != int32(TK_COLUMN) { if pTab == (*TParse)(unsafe.Pointer(pParse)).FpNewTable { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14413, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14506, 0) goto exit_create_index } if (*TIndex)(unsafe.Pointer(pIndex)).FaColExpr == uintptr(0) { @@ -103429,7 +104002,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u ** explicitly specified behavior for the index. */ if !(int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) || int32((*TIndex)(unsafe.Pointer(pIndex)).FonError) == int32(OE_Default)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14474, libc.VaList(bp+80, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14567, libc.VaList(bp+80, 0)) } if int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) { (*TIndex)(unsafe.Pointer(pIdx)).FonError = (*TIndex)(unsafe.Pointer(pIndex)).FonError @@ -103462,8 +104035,8 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != uintptr(0) { (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14516, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125123)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14609, 0) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125741)) goto exit_create_index } } @@ -103504,11 +104077,11 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* A named index with an explicit CREATE INDEX statement */ if onError == OE_None { - v13 = __ccgo_ts + 1648 + v13 = __ccgo_ts + 1662 } else { - v13 = __ccgo_ts + 14533 + v13 = __ccgo_ts + 14626 } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14541, libc.VaList(bp+80, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 52)))).Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14634, libc.VaList(bp+80, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 52)))).Fz)) } else { /* An automatic index created by a PRIMARY KEY or UNIQUE constraint */ /* zStmt = sqlite3MPrintf(""); */ @@ -103516,7 +104089,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* Add an entry in sqlite_schema for this index */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14561, libc.VaList(bp+80, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14654, libc.VaList(bp+80, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) _sqlite3DbFree(tls, db, zStmt) /* Fill the index with data and reparse the schema. Code an OP_Expire ** to invalidate all pre-compiled statements. @@ -103524,7 +104097,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != 0 { _sqlite3RefillIndex(tls, pParse, pIndex, iMem) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14620, libc.VaList(bp+80, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14713, libc.VaList(bp+80, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Expire), 0, int32(1)) } _sqlite3VdbeJumpHere(tls, v, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum)) @@ -103543,6 +104116,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } } /* Clean up before exiting */ + goto exit_create_index exit_create_index: ; if pIndex != 0 { @@ -103693,7 +104267,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pIndex = _sqlite3FindIndex(tls, db, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzName, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) if pIndex == uintptr(0) { if !(ifExists != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14647, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14740, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) _sqlite3ForceNotReadOnly(tls, pParse) @@ -103702,7 +104276,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in goto exit_drop_index } if int32(uint32(*(*uint16)(unsafe.Pointer(pIndex + 56))&0x3>>0)) != SQLITE_IDXTYPE_APPDEF { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14665, libc.VaList(bp+8, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14758, libc.VaList(bp+8, 0)) goto exit_drop_index } iDb = _sqlite3SchemaToIndex(tls, db, (*TIndex)(unsafe.Pointer(pIndex)).FpSchema) @@ -103710,9 +104284,9 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pTab = (*TIndex)(unsafe.Pointer(pIndex)).FpTable zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6533 + v1 = __ccgo_ts + 6597 } else { - v1 = __ccgo_ts + 6066 + v1 = __ccgo_ts + 6130 } zTab = v1 if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_DELETE), zTab, uintptr(0), zDb) != 0 { @@ -103728,12 +104302,13 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in v = _sqlite3GetVdbe(tls, pParse) if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14738, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11793, (*TIndex)(unsafe.Pointer(pIndex)).FzName) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14831, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11918, (*TIndex)(unsafe.Pointer(pIndex)).FzName) _sqlite3ChangeCookie(tls, pParse, iDb) _destroyRootPage(tls, pParse, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum), iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropIndex), iDb, 0, 0, (*TIndex)(unsafe.Pointer(pIndex)).FzName, 0) } + goto exit_drop_index exit_drop_index: ; _sqlite3SrcListDelete(tls, db, pName) @@ -103925,7 +104500,7 @@ func _sqlite3SrcListEnlarge(tls *libc.TLS, pParse uintptr, pSrc uintptr, nExtra nAlloc = int64(2)*int64((*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) + int64(nExtra) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc+nExtra >= int32(SQLITE_MAX_SRCLIST) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14798, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14891, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) return uintptr(0) } if nAlloc > int64(SQLITE_MAX_SRCLIST) { @@ -104162,11 +104737,11 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa db = (*TParse)(unsafe.Pointer(pParse)).Fdb if !(p != 0) && pOnUsing != uintptr(0) && ((*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 || (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpUsing != 0) { if (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 { - v1 = __ccgo_ts + 14834 + v1 = __ccgo_ts + 14927 } else { - v1 = __ccgo_ts + 14837 + v1 = __ccgo_ts + 14930 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14843, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14936, libc.VaList(bp+8, v1)) goto append_from_error } p = _sqlite3SrcListAppend(tls, pParse, p, pTable, pDatabase) @@ -104209,6 +104784,7 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa } } return p + goto append_from_error append_from_error: ; _ = libc.Int32FromInt32(0) @@ -104382,7 +104958,7 @@ func _sqlite3BeginTransaction(tls *libc.TLS, pParse uintptr, type1 int32) { _ = libc.Int32FromInt32(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb _ = libc.Int32FromInt32(0) - if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14879, uintptr(0), uintptr(0)) != 0 { + if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14972, uintptr(0), uintptr(0)) != 0 { return } v = _sqlite3GetVdbe(tls, pParse) @@ -104432,9 +105008,9 @@ func _sqlite3EndTransaction(tls *libc.TLS, pParse uintptr, eType int32) { _ = libc.Int32FromInt32(0) isRollback = libc.BoolInt32(eType == int32(TK_ROLLBACK)) if isRollback != 0 { - v1 = __ccgo_ts + 14885 + v1 = __ccgo_ts + 14978 } else { - v1 = __ccgo_ts + 14894 + v1 = __ccgo_ts + 14987 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), v1, uintptr(0), uintptr(0)) != 0 { return @@ -104467,9 +105043,9 @@ func _sqlite3Savepoint(tls *libc.TLS, pParse uintptr, op int32, pName uintptr) { } var _az = [3]uintptr{ - 0: __ccgo_ts + 14879, - 1: __ccgo_ts + 14901, - 2: __ccgo_ts + 14885, + 0: __ccgo_ts + 14972, + 1: __ccgo_ts + 14994, + 2: __ccgo_ts + 14978, } // C documentation @@ -104489,7 +105065,7 @@ func _sqlite3OpenTempDatabase(tls *libc.TLS, pParse uintptr) (r int32) { if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpBt == uintptr(0) && !((*TParse)(unsafe.Pointer(pParse)).Fexplain != 0) { rc = _sqlite3BtreeOpen(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), db, bp, 0, _flags) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14909, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15002, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = rc return int32(1) } @@ -104680,7 +105256,7 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable _sqlite3StrAccumInit(tls, bp, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), 0, *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 120))) if (*TIndex)(unsafe.Pointer(pIdx)).FaColExpr != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+14979, libc.VaList(bp+32, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+15072, libc.VaList(bp+32, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) } else { j = 0 for { @@ -104690,10 +105266,10 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx _ = libc.Int32FromInt32(0) zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)))*12))).FzCnName if j != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+14990, int32(2)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+15083, int32(2)) } Xsqlite3_str_appendall(tls, bp, (*TTable)(unsafe.Pointer(pTab)).FzName) - Xsqlite3_str_append(tls, bp, __ccgo_ts+1661, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+1675, int32(1)) Xsqlite3_str_appendall(tls, bp, zCol) goto _1 _1: @@ -104722,10 +105298,10 @@ func _sqlite3RowidConstraint(tls *libc.TLS, pParse uintptr, onError int32, pTab var zMsg uintptr _, _ = rc, zMsg if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12381, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*12))).FzCnName)) + zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12506, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*12))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(6)< libc.BoolInt32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15109, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15202, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } return 0 } @@ -105854,11 +106430,11 @@ func _sqlite3IsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr, pTrigger ui bp := tls.Alloc(16) defer tls.Free(16) if _tabIsReadOnly(tls, pParse, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15142, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15235, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && (pTrigger == uintptr(0) || (*TTrigger)(unsafe.Pointer(pTrigger)).FbReturning != 0 && (*TTrigger)(unsafe.Pointer(pTrigger)).FpNext == uintptr(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15171, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15264, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -106283,8 +106859,9 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** invoke the callback function. */ if memCnt != 0 { - _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15209) + _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15302) } + goto delete_from_cleanup delete_from_cleanup: ; _sqlite3AuthContextPop(tls, bp+8) @@ -106431,7 +107008,7 @@ func _sqlite3GenerateRowDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, pTri v3 = 0 } _sqlite3VdbeAddOp2(tls, v, int32(OP_Delete), iDataCur, v3) - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11582) { + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11707) { _sqlite3VdbeAppendP4(tls, v, pTab, -int32(5)) } if int32(eMode) != ONEPASS_OFF { @@ -106749,11 +107326,11 @@ func _typeofFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } var _azType2 = [5]uintptr{ - 0: __ccgo_ts + 6306, - 1: __ccgo_ts + 6301, - 2: __ccgo_ts + 8197, - 3: __ccgo_ts + 8192, - 4: __ccgo_ts + 1634, + 0: __ccgo_ts + 6370, + 1: __ccgo_ts + 6365, + 2: __ccgo_ts + 8322, + 3: __ccgo_ts + 8317, + 4: __ccgo_ts + 1648, } // C documentation @@ -106870,7 +107447,7 @@ func _absFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { /* IMP: R-31676-45509 If X is the integer -9223372036854775808 ** then abs(X) throws an integer overflow error since there is no ** equivalent positive 64-bit two complement value. */ - Xsqlite3_result_error(tls, context, __ccgo_ts+15222, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15315, -int32(1)) return } iVal = -iVal @@ -106965,11 +107542,13 @@ func _instrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } Xsqlite3_result_int(tls, context, N) + goto endInstr endInstr: ; Xsqlite3_value_free(tls, pC1) Xsqlite3_value_free(tls, pC2) return + goto endInstrOOM endInstrOOM: ; Xsqlite3_result_error_nomem(tls, context) @@ -107187,7 +107766,7 @@ func _roundFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } *(*float64)(unsafe.Pointer(bp)) = float64(int64(*(*float64)(unsafe.Pointer(bp)) + v1)) } else { - zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15239, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) + zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15332, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) if zBuf == uintptr(0) { Xsqlite3_result_error_nomem(tls, context) return @@ -107771,7 +108350,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { */ nPat = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) if nPat > *(*int32)(unsafe.Pointer(db + 120 + 8*4)) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15245, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15338, -int32(1)) return } if argc == int32(3) { @@ -107783,7 +108362,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { return } if _sqlite3Utf8CharLen(tls, *(*uintptr)(unsafe.Pointer(bp + 4)), -int32(1)) != int32(1) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15278, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15371, -int32(1)) return } escape = _sqlite3Utf8Read(tls, bp+4) @@ -107865,7 +108444,7 @@ func _errlogFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { defer tls.Free(16) _ = argc _ = context - Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*4))))) + Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*4))))) } // C documentation @@ -107955,17 +108534,17 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_FLOAT): r1 = Xsqlite3_value_double(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15323, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15416, libc.VaList(bp+16, r1)) zVal = Xsqlite3_str_value(tls, pStr) if zVal != 0 { _sqlite3AtoF(tls, zVal, bp, int32((*TStrAccum)(unsafe.Pointer(pStr)).FnChar), uint8(SQLITE_UTF8)) if r1 != *(*float64)(unsafe.Pointer(bp)) { Xsqlite3_str_reset(tls, pStr) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15331, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15424, libc.VaList(bp+16, r1)) } } case int32(SQLITE_INTEGER): - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1404, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1423, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) case int32(SQLITE_BLOB): zBlob = Xsqlite3_value_blob(tls, pValue) nBlob = int64(Xsqlite3_value_bytes(tls, pValue)) @@ -107993,10 +108572,10 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { } case int32(SQLITE_TEXT): zArg = Xsqlite3_value_text(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15339, libc.VaList(bp+16, zArg)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15432, libc.VaList(bp+16, zArg)) default: _ = libc.Int32FromInt32(0) - Xsqlite3_str_append(tls, pStr, __ccgo_ts+1649, int32(4)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+1663, int32(4)) break } } @@ -108235,7 +108814,7 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { var v3 uint32 var _ /* zHex at bp+0 */ uintptr _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, ch, d, nHex, nPass, p, pBlob, zPass, v1, v2, v3, v4, v5, v6 - zPass = __ccgo_ts + 1648 + zPass = __ccgo_ts + 1662 nPass = 0 *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) nHex = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) @@ -108291,10 +108870,12 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { *(*Tu8)(unsafe.Pointer(v6)) = uint8(int32(_sqlite3HexToInt(tls, int32(c)))< 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fapprox != 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fovrfl != 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+15222, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15315, -int32(1)) } else { if !(_sqlite3IsOverflow(tls, (*TSumCtx)(unsafe.Pointer(p)).FrErr) != 0) { Xsqlite3_result_double(tls, context, (*TSumCtx)(unsafe.Pointer(p)).FrSum+(*TSumCtx)(unsafe.Pointer(p)).FrErr) @@ -109326,7 +109907,7 @@ func _groupConcatValue(tls *libc.TLS, context uintptr) { func _sqlite3RegisterPerConnectionBuiltinFunctions(tls *libc.TLS, db uintptr) { var rc int32 _ = rc - rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15347, int32(2)) + rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15440, int32(2)) _ = libc.Int32FromInt32(0) if rc == int32(SQLITE_NOMEM) { _sqlite3OomFault(tls, db) @@ -109356,8 +109937,8 @@ func _sqlite3RegisterLikeFunctions(tls *libc.TLS, db uintptr, caseSensitive int3 if !(nArg <= int32(3)) { break } - _sqlite3CreateFunc(tls, db, __ccgo_ts+15353, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15353, nArg, uint8(SQLITE_UTF8), uint8(0)) + _sqlite3CreateFunc(tls, db, __ccgo_ts+15446, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15446, nArg, uint8(SQLITE_UTF8), uint8(0)) *(*Tu32)(unsafe.Pointer(pDef + 4)) |= uint32(flags) *(*Tu32)(unsafe.Pointer(pDef + 4)) &= uint32(^libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)) goto _1 @@ -109677,562 +110258,562 @@ var _aBuiltinFunc = [110]TFuncDef{ FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_implies_nonnull_row)), - FzName: __ccgo_ts + 15358, + FzName: __ccgo_ts + 15451, }, 1: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_expr_compare)), - FzName: __ccgo_ts + 15378, + FzName: __ccgo_ts + 15471, }, 2: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_expr_implies_expr)), - FzName: __ccgo_ts + 15391, + FzName: __ccgo_ts + 15484, }, 3: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_affinity)), - FzName: __ccgo_ts + 15409, + FzName: __ccgo_ts + 15502, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15418, + FzName: __ccgo_ts + 15511, }, 5: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15426, + FzName: __ccgo_ts + 15519, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15426, + FzName: __ccgo_ts + 15519, }, 7: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15441, + FzName: __ccgo_ts + 15534, }, 8: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15467, + FzName: __ccgo_ts + 15560, }, 9: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_unlikely)), - FzName: __ccgo_ts + 15492, + FzName: __ccgo_ts + 15585, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_unlikely)), - FzName: __ccgo_ts + 15501, + FzName: __ccgo_ts + 15594, }, 11: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_unlikely)), - FzName: __ccgo_ts + 15512, + FzName: __ccgo_ts + 15605, }, 12: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_sqlite_offset)), - FzName: __ccgo_ts + 15519, + FzName: __ccgo_ts + 15612, }, 13: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(1)), - FzName: __ccgo_ts + 15533, + FzName: __ccgo_ts + 15626, }, 14: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(1)), - FzName: __ccgo_ts + 15533, + FzName: __ccgo_ts + 15626, }, 15: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(2)), - FzName: __ccgo_ts + 15539, + FzName: __ccgo_ts + 15632, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(2)), - FzName: __ccgo_ts + 15539, + FzName: __ccgo_ts + 15632, }, 17: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(3)), - FzName: __ccgo_ts + 15545, + FzName: __ccgo_ts + 15638, }, 18: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(3)), - FzName: __ccgo_ts + 15545, + FzName: __ccgo_ts + 15638, }, 19: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15550, + FzName: __ccgo_ts + 15643, }, 20: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15550, + FzName: __ccgo_ts + 15643, }, 21: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15550, + FzName: __ccgo_ts + 15643, }, 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(1)), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 23: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(1)), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 24: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), FpUserData: uintptr(libc.Int32FromInt32(1)), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 25: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15558, + FzName: __ccgo_ts + 15651, }, 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15565, + FzName: __ccgo_ts + 15658, }, 27: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_LENGTH)), - FzName: __ccgo_ts + 15573, + FzName: __ccgo_ts + 15666, }, 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_BYTELEN)), - FzName: __ccgo_ts + 15580, + FzName: __ccgo_ts + 15673, }, 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15593, + FzName: __ccgo_ts + 15686, }, 30: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15599, + FzName: __ccgo_ts + 15692, }, 31: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15606, + FzName: __ccgo_ts + 15699, }, 32: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15613, + FzName: __ccgo_ts + 15706, }, 33: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15621, + FzName: __ccgo_ts + 15714, }, 34: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15626, + FzName: __ccgo_ts + 15719, }, 35: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15630, + FzName: __ccgo_ts + 15723, }, 36: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15630, + FzName: __ccgo_ts + 15723, }, 37: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15636, + FzName: __ccgo_ts + 15729, }, 38: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15642, + FzName: __ccgo_ts + 15735, }, 39: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15648, + FzName: __ccgo_ts + 15741, }, 40: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15652, + FzName: __ccgo_ts + 15745, }, 41: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15652, + FzName: __ccgo_ts + 15745, }, 42: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15658, + FzName: __ccgo_ts + 15751, }, 43: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15658, + FzName: __ccgo_ts + 15751, }, 44: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15665, + FzName: __ccgo_ts + 15758, }, 45: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15665, + FzName: __ccgo_ts + 15758, }, 46: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15665, + FzName: __ccgo_ts + 15758, }, 47: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15675, + FzName: __ccgo_ts + 15768, }, 48: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15682, + FzName: __ccgo_ts + 15775, }, 49: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15689, + FzName: __ccgo_ts + 15782, }, 50: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15700, + FzName: __ccgo_ts + 15793, }, 51: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15707, + FzName: __ccgo_ts + 15800, }, 52: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15722, + FzName: __ccgo_ts + 15815, }, 53: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15739, + FzName: __ccgo_ts + 15832, }, 54: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15750, + FzName: __ccgo_ts + 15843, }, 55: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15756, + FzName: __ccgo_ts + 15849, }, 56: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15774, + FzName: __ccgo_ts + 15867, }, 57: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15782, + FzName: __ccgo_ts + 15875, }, 58: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15796, + FzName: __ccgo_ts + 15889, }, 59: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15804, + FzName: __ccgo_ts + 15897, }, 60: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15813, + FzName: __ccgo_ts + 15906, }, 61: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15813, + FzName: __ccgo_ts + 15906, }, 62: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15820, + FzName: __ccgo_ts + 15913, }, 63: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15820, + FzName: __ccgo_ts + 15913, }, 64: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15830, + FzName: __ccgo_ts + 15923, }, 65: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15834, + FzName: __ccgo_ts + 15927, }, 66: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15840, + FzName: __ccgo_ts + 15933, }, 67: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_COUNT) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15844, + FzName: __ccgo_ts + 15937, }, 68: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15844, + FzName: __ccgo_ts + 15937, }, 69: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15850, + FzName: __ccgo_ts + 15943, }, 70: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15850, + FzName: __ccgo_ts + 15943, }, 71: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15863, + FzName: __ccgo_ts + 15956, }, 72: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE) | libc.Int32FromInt32(SQLITE_FUNC_CASE)), FpUserData: uintptr(unsafe.Pointer(&_globInfo)), - FzName: __ccgo_ts + 15874, + FzName: __ccgo_ts + 15967, }, 73: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15353, + FzName: __ccgo_ts + 15446, }, 74: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15353, + FzName: __ccgo_ts + 15446, }, 75: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6730, + FzName: __ccgo_ts + 6794, }, 76: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6730, + FzName: __ccgo_ts + 6794, }, 77: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15879, + FzName: __ccgo_ts + 15972, }, 78: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15884, + FzName: __ccgo_ts + 1235, }, 79: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15892, + FzName: __ccgo_ts + 1243, }, 80: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15898, + FzName: __ccgo_ts + 15977, }, 81: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15904, + FzName: __ccgo_ts + 15983, }, 82: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(1)), - FzName: __ccgo_ts + 15907, + FzName: __ccgo_ts + 15986, }, 83: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(1)), - FzName: __ccgo_ts + 15911, + FzName: __ccgo_ts + 15990, }, 84: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(libc.Int32FromInt32(2)), - FzName: __ccgo_ts + 15917, + FzName: __ccgo_ts + 15996, }, 85: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15907, + FzName: __ccgo_ts + 15986, }, 86: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15922, + FzName: __ccgo_ts + 16001, }, 87: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15926, + FzName: __ccgo_ts + 16005, }, 88: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15930, + FzName: __ccgo_ts + 16009, }, 89: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15936, + FzName: __ccgo_ts + 16015, }, 90: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15940, + FzName: __ccgo_ts + 16019, }, 91: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15945, + FzName: __ccgo_ts + 16024, }, 92: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15950, + FzName: __ccgo_ts + 16029, }, 93: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15955, + FzName: __ccgo_ts + 16034, }, 94: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15961, + FzName: __ccgo_ts + 16040, }, 95: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15965, + FzName: __ccgo_ts + 16044, }, 96: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15969, + FzName: __ccgo_ts + 16048, }, 97: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15973, + FzName: __ccgo_ts + 16052, }, 98: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15978, + FzName: __ccgo_ts + 16057, }, 99: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15983, + FzName: __ccgo_ts + 16062, }, 100: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15988, + FzName: __ccgo_ts + 16067, }, 101: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15994, + FzName: __ccgo_ts + 16073, }, 102: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16000, + FzName: __ccgo_ts + 16079, }, 103: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16006, + FzName: __ccgo_ts + 16085, }, 104: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16011, + FzName: __ccgo_ts + 16090, }, 105: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16019, + FzName: __ccgo_ts + 16098, }, 106: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16027, + FzName: __ccgo_ts + 16106, }, 107: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16030, + FzName: __ccgo_ts + 16109, }, 108: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 6730, + FzName: __ccgo_ts + 6794, }, 109: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(libc.Int32FromInt32(INLINEFUNC_iif)), - FzName: __ccgo_ts + 16035, + FzName: __ccgo_ts + 16114, }, } @@ -110713,7 +111294,7 @@ func _sqlite3FkLocateIndex(tls *libc.TLS, pParse uintptr, pParent uintptr, pFKey } if !(pIdx != 0) { if !((*TParse)(unsafe.Pointer(pParse)).FdisableTriggers != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16039, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16118, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) } _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiCol) return int32(1) @@ -111845,11 +112426,11 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr break } *(*TToken)(unsafe.Pointer(bp + 8)) = TToken{ - Fz: __ccgo_ts + 6596, + Fz: __ccgo_ts + 6660, Fn: uint32(3), } /* Literal "old" token */ *(*TToken)(unsafe.Pointer(bp + 16)) = TToken{ - Fz: __ccgo_ts + 6592, + Fz: __ccgo_ts + 6656, Fn: uint32(3), } /* tFromCol = OLD.tToCol */ if *(*uintptr)(unsafe.Pointer(bp + 4)) != 0 { @@ -111916,7 +112497,7 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr nFrom = _sqlite3Strlen30(tls, zFrom) if action == int32(OE_Restrict) { iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5225) + pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5289) if pRaise != 0 { (*TExpr)(unsafe.Pointer(pRaise)).FaffExpr = uint8(OE_Abort) } @@ -112524,7 +113105,7 @@ func _sqlite3ComputeGeneratedColumns(tls *libc.TLS, pParse uintptr, iRegStore in } } if pRedo != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8162, libc.VaList(bp+40, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8287, libc.VaList(bp+40, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) } (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 } @@ -112791,6 +113372,226 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { } } +// C documentation +// +// /* +// ** If argument pVal is a Select object returned by an sqlite3MultiValues() +// ** that was able to use the co-routine optimization, finish coding the +// ** co-routine. +// */ +func _sqlite3MultiValuesEnd(tls *libc.TLS, pParse uintptr, pVal uintptr) { + var pItem uintptr + _ = pItem + if pVal != 0 && (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pVal)).FpSrc)).FnSrc > 0 { + pItem = (*TSelect)(unsafe.Pointer(pVal)).FpSrc + 8 + _sqlite3VdbeEndCoroutine(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn) + _sqlite3VdbeJumpHere(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FaddrFillSub-int32(1)) + } +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are constant. +// */ +func _exprListIsConstant(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + if 0 == _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*20))).FpExpr) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are both constant and have no affinity. +// */ +func _exprListIsNoAffinity(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + var pExpr uintptr + _, _ = ii, pExpr + if _exprListIsConstant(tls, pParse, pRow) == 0 { + return 0 + } + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + pExpr = (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*20))).FpExpr + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if 0 != int32(_sqlite3ExprAffinity(tls, pExpr)) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** This function is called by the parser for the second and subsequent +// ** rows of a multi-row VALUES clause. Argument pLeft is the part of +// ** the VALUES clause already parsed, argument pRow is the vector of values +// ** for the new row. The Select object returned represents the complete +// ** VALUES clause, including the new row. +// ** +// ** There are two ways in which this may be achieved - by incremental +// ** coding of a co-routine (the "co-routine" method) or by returning a +// ** Select object equivalent to the following (the "UNION ALL" method): +// ** +// ** "pLeft UNION ALL SELECT pRow" +// ** +// ** If the VALUES clause contains a lot of rows, this compound Select +// ** object may consume a lot of memory. +// ** +// ** When the co-routine method is used, each row that will be returned +// ** by the VALUES clause is coded into part of a co-routine as it is +// ** passed to this function. The returned Select object is equivalent to: +// ** +// ** SELECT * FROM ( +// ** Select object to read co-routine +// ** ) +// ** +// ** The co-routine method is used in most cases. Exceptions are: +// ** +// ** a) If the current statement has a WITH clause. This is to avoid +// ** statements like: +// ** +// ** WITH cte AS ( VALUES('x'), ('y') ... ) +// ** SELECT * FROM cte AS a, cte AS b; +// ** +// ** This will not work, as the co-routine uses a hard-coded register +// ** for its OP_Yield instructions, and so it is not possible for two +// ** cursors to iterate through it concurrently. +// ** +// ** b) The schema is currently being parsed (i.e. the VALUES clause is part +// ** of a schema item like a VIEW or TRIGGER). In this case there is no VM +// ** being generated when parsing is taking place, and so generating +// ** a co-routine is not possible. +// ** +// ** c) There are non-constant expressions in the VALUES clause (e.g. +// ** the VALUES clause is part of a correlated sub-query). +// ** +// ** d) One or more of the values in the first row of the VALUES clause +// ** has an affinity (i.e. is a CAST expression). This causes problems +// ** because the complex rules SQLite uses (see function +// ** sqlite3SubqueryColumnTypes() in select.c) to determine the effective +// ** affinity of such a column for all rows require access to all values in +// ** the column simultaneously. +// */ +func _sqlite3MultiValues(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRow uintptr) (r uintptr) { + bp := tls.Alloc(32) + defer tls.Free(32) + var f, v1 int32 + var p, pRet, pSelect, v, v2 uintptr + var _ /* dest at bp+0 */ TSelectDest + _, _, _, _, _, _, _ = f, p, pRet, pSelect, v, v1, v2 + if (*TParse)(unsafe.Pointer(pParse)).FbHasWith != 0 || (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy != 0 || _exprListIsConstant(tls, pParse, pRow) == 0 || (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 && _exprListIsNoAffinity(tls, pParse, (*TSelect)(unsafe.Pointer(pLeft)).FpEList) == 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { + /* The co-routine method cannot be used. Fall back to UNION ALL. */ + pSelect = uintptr(0) + f = libc.Int32FromInt32(SF_Values) | libc.Int32FromInt32(SF_MultiValue) + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc != 0 { + _sqlite3MultiValuesEnd(tls, pParse, pLeft) + f = int32(SF_Values) + } else { + if (*TSelect)(unsafe.Pointer(pLeft)).FpPrior != 0 { + /* In this case set the SF_MultiValue flag only if it was set on pLeft */ + f = int32(uint32(f) & (*TSelect)(unsafe.Pointer(pLeft)).FselFlags) + } + } + pSelect = _sqlite3SelectNew(tls, pParse, pRow, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(f), uintptr(0)) + *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) + if pSelect != 0 { + (*TSelect)(unsafe.Pointer(pSelect)).Fop = uint8(TK_ALL) + (*TSelect)(unsafe.Pointer(pSelect)).FpPrior = pLeft + pLeft = pSelect + } + } else { + p = uintptr(0) /* SrcItem that reads from co-routine */ + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 { + /* Co-routine has not yet been started and the special Select object + ** that accesses the co-routine has not yet been created. This block + ** does both those things. */ + v = _sqlite3GetVdbe(tls, pParse) + pRet = _sqlite3SelectNew(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) + /* Ensure the database schema has been read. This is to ensure we have + ** the correct text encoding. */ + if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmDbFlags&uint32(DBFLAG_SchemaKnownOk) == uint32(0) { + _sqlite3ReadSchema(tls, pParse) + } + if pRet != 0 { + (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pRet)).FpSrc)).FnSrc = int32(1) + (*TSelect)(unsafe.Pointer(pRet)).FpPrior = (*TSelect)(unsafe.Pointer(pLeft)).FpPrior + (*TSelect)(unsafe.Pointer(pRet)).Fop = (*TSelect)(unsafe.Pointer(pLeft)).Fop + (*TSelect)(unsafe.Pointer(pLeft)).FpPrior = uintptr(0) + (*TSelect)(unsafe.Pointer(pLeft)).Fop = uint8(TK_SELECT) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + p = (*TSelect)(unsafe.Pointer(pRet)).FpSrc + 8 + (*TSrcItem)(unsafe.Pointer(p)).FpSelect = pLeft + libc.SetBitFieldPtr16Uint32(p+36+4, libc.Uint32FromInt32(1), 5, 0x20) + (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + v2 = pParse + 44 + *(*int32)(unsafe.Pointer(v2))++ + v1 = *(*int32)(unsafe.Pointer(v2)) + (*TSrcItem)(unsafe.Pointer(p)).FregReturn = v1 + (*TSrcItem)(unsafe.Pointer(p)).FiCursor = -int32(1) + *(*Tu32)(unsafe.Pointer(p + 64)) = uint32(2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn, 0, (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub) + _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + /* Allocate registers for the output of the co-routine. Do so so + ** that there are two unused registers immediately before those + ** used by the co-routine. This allows the code in sqlite3Insert() + ** to use these registers directly, instead of copying the output + ** of the co-routine to a separate array for processing. */ + (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(3) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpEList)).FnExpr + *(*int32)(unsafe.Pointer(pParse + 44)) += int32(2) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst + *(*Tu32)(unsafe.Pointer(pLeft + 4)) |= uint32(SF_MultiValue) + _sqlite3Select(tls, pParse, pLeft, bp) + (*TSrcItem)(unsafe.Pointer(p)).FregResult = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst + _ = libc.Int32FromInt32(0) + pLeft = pRet + } + } else { + p = (*TSelect)(unsafe.Pointer(pLeft)).FpSrc + 8 + _ = libc.Int32FromInt32(0) + *(*Tu32)(unsafe.Pointer(p + 64))++ + } + if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { + _ = libc.Int32FromInt32(0) + if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p)).FpSelect)).FpEList)).FnExpr != (*TExprList)(unsafe.Pointer(pRow)).FnExpr { + _sqlite3SelectWrongNumTermsError(tls, pParse, (*TSrcItem)(unsafe.Pointer(p)).FpSelect) + } else { + _sqlite3ExprCodeExprList(tls, pParse, pRow, (*TSrcItem)(unsafe.Pointer(p)).FregResult, 0, uint8(0)) + _sqlite3VdbeAddOp1(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Yield), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + } + } + _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pRow) + } + return pLeft +} + // C documentation // // /* @@ -112893,27 +113694,27 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uintptr, pColumn uintptr, onError int32, pUpsert uintptr) { bp := tls.Alloc(112) defer tls.Free(112) - var aRegIdx, db, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, v, v13, v16, v18, v6, v9 uintptr - var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v12, v15, v17, v19, v23, v24, v5, v7, v8 int32 + var aRegIdx, db, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, v, v10, v14, v17, v19, v7 uintptr + var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v13, v16, v18, v20, v24, v25, v5, v6, v8, v9 int32 var appendFlag, bIdListInOrder, useTempTable, withoutRowid Tu8 - var colFlags, v21 Tu32 + var colFlags, v22 Tu32 var _ /* dest at bp+8 */ TSelectDest var _ /* iDataCur at bp+0 */ int32 var _ /* iIdxCur at bp+4 */ int32 var _ /* isReplace at bp+76 */ int32 var _ /* sNC at bp+40 */ TNameContext var _ /* tmask at bp+36 */ int32 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v12, v13, v15, v16, v17, v18, v19, v21, v23, v24, v5, v6, v7, v8, v9 /* Number of columns in the data */ - nHidden = 0 /* Number of hidden columns if TABLE is virtual */ - *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ - *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ - ipkColumn = -int32(1) /* Label for the end of the insertion loop */ - srcTab = 0 /* Data comes from this temporary cursor if >=0 */ - addrInsTop = 0 /* Jump to label "D" */ - addrCont = 0 /* Index of database holding TABLE */ - useTempTable = uint8(0) /* Store SELECT results in intermediate table */ - appendFlag = uint8(0) /* True if IDLIST is in table order */ - pList = uintptr(0) /* Register in which to store next column */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v10, v13, v14, v16, v17, v18, v19, v20, v22, v24, v25, v5, v6, v7, v8, v9 /* Number of columns in the data */ + nHidden = 0 /* Number of hidden columns if TABLE is virtual */ + *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ + *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ + ipkColumn = -int32(1) /* Label for the end of the insertion loop */ + srcTab = 0 /* Data comes from this temporary cursor if >=0 */ + addrInsTop = 0 /* Jump to label "D" */ + addrCont = 0 /* Index of database holding TABLE */ + useTempTable = uint8(0) /* Store SELECT results in intermediate table */ + appendFlag = uint8(0) /* True if IDLIST is in table order */ + pList = uintptr(0) /* Register in which to store next column */ /* Register allocations */ regFromSelect = 0 /* Base register for data coming from SELECT */ regAutoinc = 0 /* Register holding the AUTOINCREMENT counter */ @@ -113060,7 +113861,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _ = libc.Int32FromInt32(0) } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*12))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_STORED)|libc.Int32FromInt32(COLFLAG_VIRTUAL)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16084, libc.VaList(bp+88, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*12))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16163, libc.VaList(bp+88, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*12))).FzCnName)) goto insert_cleanup } break @@ -113075,7 +113876,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i bIdListInOrder = uint8(0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16125, libc.VaList(bp+88, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*8))).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16204, libc.VaList(bp+88, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*8))).FzName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto insert_cleanup } @@ -113092,31 +113893,49 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** co-routine is the common header to the 3rd and 4th templates. */ if pSelect != 0 { /* Result code */ - v6 = pParse + 44 - *(*int32)(unsafe.Pointer(v6))++ - v5 = *(*int32)(unsafe.Pointer(v6)) - regYield = v5 - addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) - _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) - _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) - if bIdListInOrder != 0 { - v7 = regData + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc)).FnSrc == int32(1) && int32(uint32(*(*uint16)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + 36 + 4))&0x20>>5)) != 0 && (*TSelect)(unsafe.Pointer(pSelect)).FpPrior == uintptr(0) { + pItem = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSDParm = (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn + regFromSelect = (*TSrcItem)(unsafe.Pointer(pItem)).FregResult + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FpEList)).FnExpr + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+16236, libc.VaList(bp+88, pItem)) + if bIdListInOrder != 0 && nColumn == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { + regData = regFromSelect + regRowid = regData - int32(1) + if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { + v5 = int32(1) + } else { + v5 = 0 + } + regIns = regRowid - v5 + } } else { - v7 = 0 - } - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v7 - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) - rc = _sqlite3Select(tls, pParse, pSelect, bp+8) - regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst - _ = libc.Int32FromInt32(0) - if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { - goto insert_cleanup + v7 = pParse + 44 + *(*int32)(unsafe.Pointer(v7))++ + v6 = *(*int32)(unsafe.Pointer(v7)) /* Top of the co-routine */ + regYield = v6 + addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) + _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) + if bIdListInOrder != 0 { + v8 = regData + } else { + v8 = 0 + } + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) + rc = _sqlite3Select(tls, pParse, pSelect, bp+8) + regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst + _ = libc.Int32FromInt32(0) + if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { + goto insert_cleanup + } + _ = libc.Int32FromInt32(0) + _sqlite3VdbeEndCoroutine(tls, v, regYield) + _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ + _ = libc.Int32FromInt32(0) + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr } - _ = libc.Int32FromInt32(0) - _sqlite3VdbeEndCoroutine(tls, v, regYield) - _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ - _ = libc.Int32FromInt32(0) - nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr /* Set useTempTable to TRUE if the result of the SELECT statement ** should be written into a temporary table (template 4). Set to ** FALSE if each output row of the SELECT can be written directly into @@ -113130,10 +113949,10 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin useTempTable = uint8(1) } if useTempTable != 0 { /* Label "L" */ - v9 = pParse + 40 - v8 = *(*int32)(unsafe.Pointer(v9)) - *(*int32)(unsafe.Pointer(v9))++ - srcTab = v8 + v10 = pParse + 40 + v9 = *(*int32)(unsafe.Pointer(v10)) + *(*int32)(unsafe.Pointer(v10))++ + srcTab = v9 regRec = _sqlite3GetTempReg(tls, pParse) regTempRowid = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp2(tls, v, int32(OP_OpenEphemeral), srcTab, nColumn) @@ -113175,8 +113994,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*12))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { ipkColumn-- } - goto _10 - _10: + goto _11 + _11: ; i-- } @@ -113196,28 +114015,28 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*12))).FcolFlags)&int32(COLFLAG_NOINSERT) != 0 { nHidden++ } - goto _11 - _11: + goto _12 + _12: ; i++ } } if nColumn != int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16157, libc.VaList(bp+88, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16244, libc.VaList(bp+88, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) goto insert_cleanup } } if pColumn != uintptr(0) && nColumn != (*TIdList)(unsafe.Pointer(pColumn)).FnId { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16209, libc.VaList(bp+88, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16296, libc.VaList(bp+88, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) goto insert_cleanup } /* Initialize the count of rows to be inserted */ if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&(uint64(libc.Int32FromInt32(0x00001))<= 0 { /* tag-20191021-001: If the INTEGER PRIMARY KEY is being generated by the ** SELECT, go ahead and copy the value into the rowid slot now, so that @@ -113333,18 +114152,18 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** using excess space. The file format definition requires this extra ** NULL - we cannot optimize further by skipping the column completely */ _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) - goto _20 + goto _21 } - v21 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*12))).FcolFlags) - colFlags = v21 - if v21&uint32(COLFLAG_NOINSERT) != uint32(0) { + v22 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*12))).FcolFlags) + colFlags = v22 + if v22&uint32(COLFLAG_NOINSERT) != uint32(0) { nHidden++ if colFlags&uint32(COLFLAG_VIRTUAL) != uint32(0) { /* Virtual columns do not participate in OP_MakeRecord. So back up ** iRegStore by one slot to compensate for the iRegStore++ in the ** outer for() loop */ iRegStore-- - goto _20 + goto _21 } else { if colFlags&uint32(COLFLAG_STORED) != uint32(0) { /* Stored columns are computed later. But if there are BEFORE @@ -113354,13 +114173,13 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if *(*int32)(unsafe.Pointer(bp + 36))&int32(TRIGGER_BEFORE) != 0 { _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) } - goto _20 + goto _21 } else { if pColumn == uintptr(0) { /* Hidden columns that are not explicitly named in the INSERT ** get there default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*12), iRegStore) - goto _20 + goto _21 } } } @@ -113372,8 +114191,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if !(j < (*TIdList)(unsafe.Pointer(pColumn)).FnId && *(*int32)(unsafe.Pointer(pColumn + 8 + uintptr(j)*8 + 4)) != i) { break } - goto _22 - _22: + goto _23 + _23: ; j++ } @@ -113381,14 +114200,14 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin /* A column not named in the insert column list gets its ** default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*12), iRegStore) - goto _20 + goto _21 } k = j } else { if nColumn == 0 { /* This is INSERT INTO ... DEFAULT VALUES. Load the default value. */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*12), iRegStore) - goto _20 + goto _21 } else { k = i - nHidden } @@ -113405,16 +114224,16 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin y = _sqlite3ExprCodeTarget(tls, pParse, pX, iRegStore) if y != iRegStore { if (*TExpr)(unsafe.Pointer(pX)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) { - v23 = int32(OP_Copy) + v24 = int32(OP_Copy) } else { - v23 = int32(OP_SCopy) + v24 = int32(OP_SCopy) } - _sqlite3VdbeAddOp2(tls, v, v23, y, iRegStore) + _sqlite3VdbeAddOp2(tls, v, v24, y, iRegStore) } } } - goto _20 - _20: + goto _21 + _21: ; i++ iRegStore++ @@ -113527,11 +114346,11 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VtabMakeWritable(tls, pParse, pTab) _sqlite3VdbeAddOp4(tls, v, int32(OP_VUpdate), int32(1), int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+int32(2), regIns, pVTab, -int32(11)) if onError == int32(OE_Default) { - v24 = int32(OE_Abort) + v25 = int32(OE_Abort) } else { - v24 = onError + v25 = onError } - _sqlite3VdbeChangeP5(tls, v, uint16(v24)) + _sqlite3VdbeChangeP5(tls, v, uint16(v25)) _sqlite3MayAbort(tls, pParse) } else { *(*int32)(unsafe.Pointer(bp + 76)) = 0 /* True to use OPFLAG_SEEKRESULT */ @@ -113574,6 +114393,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VdbeJumpHere(tls, v, addrInsTop) } } + goto insert_end insert_end: ; /* Update the sqlite_sequence table by storing the content of the @@ -113589,8 +114409,9 @@ insert_end: ** invoke the callback function. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16301) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16388) } + goto insert_cleanup insert_cleanup: ; _sqlite3SrcListDelete(tls, db, pTabList) @@ -113987,7 +114808,7 @@ func _sqlite3GenerateConstraintChecks(tls *libc.TLS, pParse uintptr, pTab uintpt case int32(OE_Rollback): fallthrough case int32(OE_Fail): - zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12381, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12506, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) _sqlite3VdbeAddOp3(tls, v, int32(OP_HaltIfNull), libc.Int32FromInt32(SQLITE_CONSTRAINT)|libc.Int32FromInt32(5)<= 0 && !(int32(*(*uint8)(unsafe.Pointer(zFile + uintptr(iFile)))) == libc.Int32FromUint8('/'))) { @@ -116262,7 +117084,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp iFile-- } iFile++ - if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16350, int32(3)) == 0 { + if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16437, int32(3)) == 0 { iFile += int32(3) } iEntry = int32(8) @@ -116282,7 +117104,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp ; iFile++ } - libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16354, uint32(6)) + libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16441, uint32(6)) zEntry = zAltEntry xInit = _sqlite3OsDlSym(tls, pVfs, handle, zEntry) } @@ -116294,7 +117116,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v7 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16360, libc.VaList(bp+16, zEntry, zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16447, libc.VaList(bp+16, zEntry, zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -116309,7 +117131,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp return SQLITE_OK } if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16403, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16490, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3OsDlClose(tls, pVfs, handle) @@ -116330,6 +117152,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*int32)(unsafe.Pointer(v9))++ *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaExtension + uintptr(v8)*4)) = handle return SQLITE_OK + goto extension_not_found extension_not_found: ; if pzErrMsg != 0 { @@ -116339,7 +117162,7 @@ extension_not_found: *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v10 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16435, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16522, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -116348,7 +117171,7 @@ extension_not_found: /* Shared library endings to try if zFile cannot be loaded as written */ var _azEndings = [1]uintptr{ - 0: __ccgo_ts + 16315, + 0: __ccgo_ts + 16402, } func Xsqlite3_load_extension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintptr, pzErrMsg uintptr) (r int32) { @@ -116583,7 +117406,7 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { rc = v2 } if v3 && v2 != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16472, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16559, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) go1 = 0 } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -116637,63 +117460,63 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { // ** result column is different from the name of the pragma // */ var _pragCName = [57]uintptr{ - 0: __ccgo_ts + 5481, - 1: __ccgo_ts + 16511, - 2: __ccgo_ts + 9058, - 3: __ccgo_ts + 16515, - 4: __ccgo_ts + 16520, - 5: __ccgo_ts + 16523, - 6: __ccgo_ts + 16533, - 7: __ccgo_ts + 16543, - 8: __ccgo_ts + 16549, - 9: __ccgo_ts + 16553, - 10: __ccgo_ts + 16558, - 11: __ccgo_ts + 16563, - 12: __ccgo_ts + 16571, - 13: __ccgo_ts + 16582, - 14: __ccgo_ts + 16585, - 15: __ccgo_ts + 16592, - 16: __ccgo_ts + 16553, - 17: __ccgo_ts + 16558, - 18: __ccgo_ts + 16599, - 19: __ccgo_ts + 16604, - 20: __ccgo_ts + 16607, - 21: __ccgo_ts + 16614, - 22: __ccgo_ts + 16549, - 23: __ccgo_ts + 16553, - 24: __ccgo_ts + 16620, - 25: __ccgo_ts + 16625, - 26: __ccgo_ts + 16630, - 27: __ccgo_ts + 16553, - 28: __ccgo_ts + 16634, - 29: __ccgo_ts + 16558, - 30: __ccgo_ts + 16642, - 31: __ccgo_ts + 16646, - 32: __ccgo_ts + 16651, - 33: __ccgo_ts + 11797, - 34: __ccgo_ts + 11793, - 35: __ccgo_ts + 16657, - 36: __ccgo_ts + 16662, - 37: __ccgo_ts + 16667, - 38: __ccgo_ts + 16511, - 39: __ccgo_ts + 16553, - 40: __ccgo_ts + 16672, - 41: __ccgo_ts + 16679, - 42: __ccgo_ts + 16686, - 43: __ccgo_ts + 9058, - 44: __ccgo_ts + 16694, - 45: __ccgo_ts + 5484, - 46: __ccgo_ts + 16700, - 47: __ccgo_ts + 16511, - 48: __ccgo_ts + 16553, - 49: __ccgo_ts + 16705, - 50: __ccgo_ts + 16710, - 51: __ccgo_ts + 15907, - 52: __ccgo_ts + 16715, - 53: __ccgo_ts + 16728, - 54: __ccgo_ts + 16737, - 55: __ccgo_ts + 16744, - 56: __ccgo_ts + 16755, + 0: __ccgo_ts + 5545, + 1: __ccgo_ts + 16598, + 2: __ccgo_ts + 9183, + 3: __ccgo_ts + 16602, + 4: __ccgo_ts + 16607, + 5: __ccgo_ts + 16610, + 6: __ccgo_ts + 16620, + 7: __ccgo_ts + 16630, + 8: __ccgo_ts + 16636, + 9: __ccgo_ts + 16640, + 10: __ccgo_ts + 16645, + 11: __ccgo_ts + 16650, + 12: __ccgo_ts + 16658, + 13: __ccgo_ts + 16669, + 14: __ccgo_ts + 16672, + 15: __ccgo_ts + 16679, + 16: __ccgo_ts + 16640, + 17: __ccgo_ts + 16645, + 18: __ccgo_ts + 16686, + 19: __ccgo_ts + 16691, + 20: __ccgo_ts + 16694, + 21: __ccgo_ts + 16701, + 22: __ccgo_ts + 16636, + 23: __ccgo_ts + 16640, + 24: __ccgo_ts + 16707, + 25: __ccgo_ts + 16712, + 26: __ccgo_ts + 16717, + 27: __ccgo_ts + 16640, + 28: __ccgo_ts + 16721, + 29: __ccgo_ts + 16645, + 30: __ccgo_ts + 16729, + 31: __ccgo_ts + 16733, + 32: __ccgo_ts + 16738, + 33: __ccgo_ts + 11922, + 34: __ccgo_ts + 11918, + 35: __ccgo_ts + 16744, + 36: __ccgo_ts + 16749, + 37: __ccgo_ts + 16754, + 38: __ccgo_ts + 16598, + 39: __ccgo_ts + 16640, + 40: __ccgo_ts + 16759, + 41: __ccgo_ts + 16766, + 42: __ccgo_ts + 16773, + 43: __ccgo_ts + 9183, + 44: __ccgo_ts + 16781, + 45: __ccgo_ts + 5548, + 46: __ccgo_ts + 16787, + 47: __ccgo_ts + 16598, + 48: __ccgo_ts + 16640, + 49: __ccgo_ts + 16792, + 50: __ccgo_ts + 16797, + 51: __ccgo_ts + 15986, + 52: __ccgo_ts + 16802, + 53: __ccgo_ts + 16815, + 54: __ccgo_ts + 16824, + 55: __ccgo_ts + 16831, + 56: __ccgo_ts + 16842, } // C documentation @@ -116713,191 +117536,191 @@ type PragmaName = TPragmaName var _aPragmaName = [66]TPragmaName{ 0: { - FzName: __ccgo_ts + 16763, + FzName: __ccgo_ts + 16850, FePragTyp: uint8(PragTyp_ANALYSIS_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 1: { - FzName: __ccgo_ts + 16778, + FzName: __ccgo_ts + 16865, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_APPLICATION_ID), }, 2: { - FzName: __ccgo_ts + 16793, + FzName: __ccgo_ts + 16880, FePragTyp: uint8(PragTyp_AUTO_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 3: { - FzName: __ccgo_ts + 16805, + FzName: __ccgo_ts + 16892, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_AutoIndex), }, 4: { - FzName: __ccgo_ts + 16821, + FzName: __ccgo_ts + 16908, FePragTyp: uint8(PragTyp_BUSY_TIMEOUT), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(56), FnPragCName: uint8(1), }, 5: { - FzName: __ccgo_ts + 16744, + FzName: __ccgo_ts + 16831, FePragTyp: uint8(PragTyp_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 6: { - FzName: __ccgo_ts + 16834, + FzName: __ccgo_ts + 16921, FePragTyp: uint8(PragTyp_CACHE_SPILL), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 7: { - FzName: __ccgo_ts + 16846, + FzName: __ccgo_ts + 16933, FePragTyp: uint8(PragTyp_CASE_SENSITIVE_LIKE), FmPragFlg: uint8(PragFlg_NoColumns), }, 8: { - FzName: __ccgo_ts + 16866, + FzName: __ccgo_ts + 16953, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CellSizeCk), }, 9: { - FzName: __ccgo_ts + 16882, + FzName: __ccgo_ts + 16969, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CkptFullFSync), }, 10: { - FzName: __ccgo_ts + 16903, + FzName: __ccgo_ts + 16990, FePragTyp: uint8(PragTyp_COLLATION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(38), FnPragCName: uint8(2), }, 11: { - FzName: __ccgo_ts + 16918, + FzName: __ccgo_ts + 17005, FePragTyp: uint8(PragTyp_COMPILE_OPTIONS), FmPragFlg: uint8(PragFlg_Result0), }, 12: { - FzName: __ccgo_ts + 16934, + FzName: __ccgo_ts + 17021, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00001)) << libc.Int32FromInt32(32), }, 13: { - FzName: __ccgo_ts + 16948, + FzName: __ccgo_ts + 17035, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_DATA_VERSION), }, 14: { - FzName: __ccgo_ts + 16961, + FzName: __ccgo_ts + 17048, FePragTyp: uint8(PragTyp_DATABASE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(47), FnPragCName: uint8(3), }, 15: { - FzName: __ccgo_ts + 16975, + FzName: __ccgo_ts + 17062, FePragTyp: uint8(PragTyp_DEFAULT_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiPragCName: uint8(55), FnPragCName: uint8(1), }, 16: { - FzName: __ccgo_ts + 16994, + FzName: __ccgo_ts + 17081, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_DeferFKs), }, 17: { - FzName: __ccgo_ts + 17013, + FzName: __ccgo_ts + 17100, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_NullCallback), }, 18: { - FzName: __ccgo_ts + 17036, + FzName: __ccgo_ts + 17123, FePragTyp: uint8(PragTyp_ENCODING), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 19: { - FzName: __ccgo_ts + 17045, + FzName: __ccgo_ts + 17132, FePragTyp: uint8(PragTyp_FOREIGN_KEY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(43), FnPragCName: uint8(4), }, 20: { - FzName: __ccgo_ts + 17063, + FzName: __ccgo_ts + 17150, FePragTyp: uint8(PragTyp_FOREIGN_KEY_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FnPragCName: uint8(8), }, 21: { - FzName: __ccgo_ts + 17080, + FzName: __ccgo_ts + 17167, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ForeignKeys), }, 22: { - FzName: __ccgo_ts + 17093, + FzName: __ccgo_ts + 17180, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), }, 23: { - FzName: __ccgo_ts + 17108, + FzName: __ccgo_ts + 17195, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullColNames), }, 24: { - FzName: __ccgo_ts + 17126, + FzName: __ccgo_ts + 17213, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullFSync), }, 25: { - FzName: __ccgo_ts + 17136, + FzName: __ccgo_ts + 17223, FePragTyp: uint8(PragTyp_FUNCTION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(27), FnPragCName: uint8(6), }, 26: { - FzName: __ccgo_ts + 17150, + FzName: __ccgo_ts + 17237, FePragTyp: uint8(PragTyp_HARD_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 27: { - FzName: __ccgo_ts + 17166, + FzName: __ccgo_ts + 17253, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_IgnoreChecks), }, 28: { - FzName: __ccgo_ts + 17191, + FzName: __ccgo_ts + 17278, FePragTyp: uint8(PragTyp_INCREMENTAL_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_NoColumns)), }, 29: { - FzName: __ccgo_ts + 17210, + FzName: __ccgo_ts + 17297, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), FnPragCName: uint8(3), }, 30: { - FzName: __ccgo_ts + 17221, + FzName: __ccgo_ts + 17308, FePragTyp: uint8(PragTyp_INDEX_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(38), FnPragCName: uint8(5), }, 31: { - FzName: __ccgo_ts + 17232, + FzName: __ccgo_ts + 17319, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), @@ -116905,146 +117728,146 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 32: { - FzName: __ccgo_ts + 17244, + FzName: __ccgo_ts + 17331, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 33: { - FzName: __ccgo_ts + 17260, + FzName: __ccgo_ts + 17347, FePragTyp: uint8(PragTyp_JOURNAL_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 34: { - FzName: __ccgo_ts + 17273, + FzName: __ccgo_ts + 17360, FePragTyp: uint8(PragTyp_JOURNAL_SIZE_LIMIT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 35: { - FzName: __ccgo_ts + 17292, + FzName: __ccgo_ts + 17379, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_LegacyAlter), }, 36: { - FzName: __ccgo_ts + 17311, + FzName: __ccgo_ts + 17398, FePragTyp: uint8(PragTyp_LOCKING_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 37: { - FzName: __ccgo_ts + 17324, + FzName: __ccgo_ts + 17411, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 38: { - FzName: __ccgo_ts + 17339, + FzName: __ccgo_ts + 17426, FePragTyp: uint8(PragTyp_MMAP_SIZE), }, 39: { - FzName: __ccgo_ts + 17349, + FzName: __ccgo_ts + 17436, FePragTyp: uint8(PragTyp_MODULE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 40: { - FzName: __ccgo_ts + 17361, + FzName: __ccgo_ts + 17448, FePragTyp: uint8(PragTyp_OPTIMIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_NeedSchema)), }, 41: { - FzName: __ccgo_ts + 17370, + FzName: __ccgo_ts + 17457, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 42: { - FzName: __ccgo_ts + 17381, + FzName: __ccgo_ts + 17468, FePragTyp: uint8(PragTyp_PAGE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 43: { - FzName: __ccgo_ts + 17391, + FzName: __ccgo_ts + 17478, FePragTyp: uint8(PragTyp_PRAGMA_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 44: { - FzName: __ccgo_ts + 17403, + FzName: __ccgo_ts + 17490, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_QueryOnly), }, 45: { - FzName: __ccgo_ts + 17414, + FzName: __ccgo_ts + 17501, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 46: { - FzName: __ccgo_ts + 17426, + FzName: __ccgo_ts + 17513, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00004)) << libc.Int32FromInt32(32), }, 47: { - FzName: __ccgo_ts + 17443, + FzName: __ccgo_ts + 17530, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_RecTriggers), }, 48: { - FzName: __ccgo_ts + 17462, + FzName: __ccgo_ts + 17549, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ReverseOrder), }, 49: { - FzName: __ccgo_ts + 17488, + FzName: __ccgo_ts + 17575, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_SCHEMA_VERSION), }, 50: { - FzName: __ccgo_ts + 17503, + FzName: __ccgo_ts + 17590, FePragTyp: uint8(PragTyp_SECURE_DELETE), FmPragFlg: uint8(PragFlg_Result0), }, 51: { - FzName: __ccgo_ts + 17517, + FzName: __ccgo_ts + 17604, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ShortColNames), }, 52: { - FzName: __ccgo_ts + 17536, + FzName: __ccgo_ts + 17623, FePragTyp: uint8(PragTyp_SHRINK_MEMORY), FmPragFlg: uint8(PragFlg_NoColumns), }, 53: { - FzName: __ccgo_ts + 17550, + FzName: __ccgo_ts + 17637, FePragTyp: uint8(PragTyp_SOFT_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 54: { - FzName: __ccgo_ts + 17566, + FzName: __ccgo_ts + 17653, FePragTyp: uint8(PragTyp_SYNCHRONOUS), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 55: { - FzName: __ccgo_ts + 17578, + FzName: __ccgo_ts + 17665, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), FnPragCName: uint8(6), }, 56: { - FzName: __ccgo_ts + 17589, + FzName: __ccgo_ts + 17676, FePragTyp: uint8(PragTyp_TABLE_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1)), FiPragCName: uint8(15), FnPragCName: uint8(6), }, 57: { - FzName: __ccgo_ts + 17600, + FzName: __ccgo_ts + 17687, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), @@ -117052,45 +117875,45 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 58: { - FzName: __ccgo_ts + 17612, + FzName: __ccgo_ts + 17699, FePragTyp: uint8(PragTyp_TEMP_STORE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 59: { - FzName: __ccgo_ts + 17623, + FzName: __ccgo_ts + 17710, FePragTyp: uint8(PragTyp_TEMP_STORE_DIRECTORY), FmPragFlg: uint8(PragFlg_NoColumns1), }, 60: { - FzName: __ccgo_ts + 17644, + FzName: __ccgo_ts + 17731, FePragTyp: uint8(PragTyp_THREADS), FmPragFlg: uint8(PragFlg_Result0), }, 61: { - FzName: __ccgo_ts + 17652, + FzName: __ccgo_ts + 17739, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_TrustedSchema), }, 62: { - FzName: __ccgo_ts + 17667, + FzName: __ccgo_ts + 17754, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_USER_VERSION), }, 63: { - FzName: __ccgo_ts + 17680, + FzName: __ccgo_ts + 17767, FePragTyp: uint8(PragTyp_WAL_AUTOCHECKPOINT), }, 64: { - FzName: __ccgo_ts + 17699, + FzName: __ccgo_ts + 17786, FePragTyp: uint8(PragTyp_WAL_CHECKPOINT), FmPragFlg: uint8(PragFlg_NeedSchema), FiPragCName: uint8(50), FnPragCName: uint8(3), }, 65: { - FzName: __ccgo_ts + 17714, + FzName: __ccgo_ts + 17801, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(SQLITE_WriteSchema) | libc.Int32FromInt32(SQLITE_NoSchemaError)), @@ -117102,6 +117925,31 @@ var _aPragmaName = [66]TPragmaName{ /************** End of pragma.h **********************************************/ /************** Continuing where we left off in pragma.c *********************/ +/* +** When the 0x10 bit of PRAGMA optimize is set, any ANALYZE commands +** will be run with an analysis_limit set to the lessor of the value of +** the following macro or to the actual analysis_limit if it is non-zero, +** in order to prevent PRAGMA optimize from running for too long. +** +** The value of 2000 is chosen emperically so that the worst-case run-time +** for PRAGMA optimize does not exceed 100 milliseconds against a variety +** of test databases on a RaspberryPI-4 compiled using -Os and without +** -DSQLITE_DEBUG. Of course, your mileage may vary. For the purpose of +** this paragraph, "worst-case" means that ANALYZE ends up being +** run on every table in the database. The worst case typically only +** happens if PRAGMA optimize is run on a database file for which ANALYZE +** has not been previously run and the 0x10000 flag is included so that +** all tables are analyzed. The usual case for PRAGMA optimize is that +** no ANALYZE commands will be run at all, or if any ANALYZE happens it +** will be against a single table, so that expected timing for PRAGMA +** optimize on a PI-4 is more like 1 millisecond or less with the 0x10000 +** flag or less than 100 microseconds without the 0x10000 flag. +** +** An analysis limit of 2000 is almost always sufficient for the query +** planner to fully characterize an index. The additional accuracy from +** a larger analysis is not usually helpful. + */ + // C documentation // // /* @@ -117191,10 +118039,10 @@ func _sqlite3GetBoolean(tls *libc.TLS, z uintptr, dflt Tu8) (r Tu8) { // */ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { if z != 0 { - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17730) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17817) { return int32(PAGER_LOCKINGMODE_EXCLUSIVE) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17740) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17827) { return PAGER_LOCKINGMODE_NORMAL } } @@ -117212,13 +118060,13 @@ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { func _getAutoVacuum(tls *libc.TLS, z uintptr) (r int32) { var i, v1 int32 _, _ = i, v1 - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8218) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8343) { return BTREE_AUTOVACUUM_NONE } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17747) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17834) { return int32(BTREE_AUTOVACUUM_FULL) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17752) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17839) { return int32(BTREE_AUTOVACUUM_INCR) } i = _sqlite3Atoi(tls, z) @@ -117241,10 +118089,10 @@ func _getTempStore(tls *libc.TLS, z uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(z))) <= int32('2') { return int32(*(*uint8)(unsafe.Pointer(z))) - int32('0') } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+16705) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+16792) == 0 { return int32(1) } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+17764) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+17851) == 0 { return int32(2) } else { return 0 @@ -117266,7 +118114,7 @@ func _invalidateTempStorage(tls *libc.TLS, pParse uintptr) (r int32) { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpBt != uintptr(0) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || _sqlite3BtreeTxnState(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpBt) != SQLITE_TXN_NONE { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17771, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17858, 0) return int32(SQLITE_ERROR) } _sqlite3BtreeClose(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpBt) @@ -117401,15 +118249,15 @@ func _actionName(tls *libc.TLS, action Tu8) (r uintptr) { _ = zName switch int32(action) { case int32(OE_SetNull): - zName = __ccgo_ts + 17833 + zName = __ccgo_ts + 17920 case int32(OE_SetDflt): - zName = __ccgo_ts + 17842 + zName = __ccgo_ts + 17929 case int32(OE_Cascade): - zName = __ccgo_ts + 17854 + zName = __ccgo_ts + 17941 case int32(OE_Restrict): - zName = __ccgo_ts + 17862 + zName = __ccgo_ts + 17949 default: - zName = __ccgo_ts + 17871 + zName = __ccgo_ts + 17958 _ = libc.Int32FromInt32(0) break } @@ -117438,12 +118286,12 @@ func _sqlite3JournalModename(tls *libc.TLS, eMode int32) (r uintptr) { } var _azModeName = [6]uintptr{ - 0: __ccgo_ts + 17881, - 1: __ccgo_ts + 17888, - 2: __ccgo_ts + 17896, - 3: __ccgo_ts + 17900, - 4: __ccgo_ts + 17764, - 5: __ccgo_ts + 17909, + 0: __ccgo_ts + 17968, + 1: __ccgo_ts + 17975, + 2: __ccgo_ts + 17983, + 3: __ccgo_ts + 17987, + 4: __ccgo_ts + 17851, + 5: __ccgo_ts + 17996, } // C documentation @@ -117509,15 +118357,15 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s goto _1 } if (*TFuncDef)(unsafe.Pointer(p)).FxValue != uintptr(0) { - zType = __ccgo_ts + 17934 + zType = __ccgo_ts + 18021 } else { if (*TFuncDef)(unsafe.Pointer(p)).FxFinalize != uintptr(0) { - zType = __ccgo_ts + 17936 + zType = __ccgo_ts + 18023 } else { - zType = __ccgo_ts + 7617 + zType = __ccgo_ts + 7742 } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+17938, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18025, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) goto _1 _1: ; @@ -117526,9 +118374,9 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s } var _azEnc = [4]uintptr{ - 1: __ccgo_ts + 17913, - 2: __ccgo_ts + 17918, - 3: __ccgo_ts + 17926, + 1: __ccgo_ts + 18000, + 2: __ccgo_ts + 18005, + 3: __ccgo_ts + 18013, } // C documentation @@ -117569,15 +118417,15 @@ func _integrityCheckResultRow(tls *libc.TLS, v uintptr) (r int32) { func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pValue uintptr, minusFlag int32) { bp := tls.Alloc(208) defer tls.Free(208) - var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, mxIdx, n, nHidden, nIdx, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v60, v62, v63, v64, v65, v68 int32 - var aOp, aOp1, aOp2, aOp3, aOp4, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v61, v66, v8 uintptr + var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v48, v50, v64, v66, v67, v68, v69, v72, v75, v76 int32 + var aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v65, v70, v8 uintptr var azOrigin [3]uintptr var cnum Ti16 var enc Tu8 var iPrior Tsqlite3_int64 + var iRange, szThreshold TLogEst var mask Tu64 var opMask Tu32 - var szThreshold TLogEst var _ /* N at bp+104 */ Tsqlite3_int64 var _ /* N at bp+112 */ Tsqlite3_int64 var _ /* N at bp+120 */ Tsqlite3_int64 @@ -117598,7 +118446,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p var _ /* size at bp+44 */ int32 var _ /* sz at bp+48 */ Tsqlite3_int64 var _ /* x at bp+24 */ Ti64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iPrior, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, mxIdx, n, nHidden, nIdx, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v5, v60, v61, v62, v63, v64, v65, v66, v68, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iPrior, iRange, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v48, v5, v50, v64, v65, v66, v67, v68, v69, v70, v72, v75, v76, v8 zLeft = uintptr(0) /* Nul-terminated UTF-8 string */ zRight = uintptr(0) /* Nul-terminated UTF-8 string , or NULL */ zDb = uintptr(0) /* return value form SQLITE_FCNTL_PRAGMA */ @@ -117627,7 +118475,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p return } if minusFlag != 0 { - zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+17945, libc.VaList(bp+136, pValue)) + zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+18032, libc.VaList(bp+136, pValue)) } else { zRight = _sqlite3NameFromToken(tls, db, pValue) } @@ -117671,7 +118519,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } if rc != int32(SQLITE_NOTFOUND) { if (*(*[4]uintptr)(unsafe.Pointer(bp + 4)))[0] != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+136, (*(*[4]uintptr)(unsafe.Pointer(bp + 4)))[0])) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+136, (*(*[4]uintptr)(unsafe.Pointer(bp + 4)))[0])) Xsqlite3_free(tls, (*(*[4]uintptr)(unsafe.Pointer(bp + 4)))[0]) } (*TParse)(unsafe.Pointer(pParse)).FnErr++ @@ -117778,7 +118626,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p b = -int32(1) _ = libc.Int32FromInt32(0) if zRight != 0 { - if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+17949) == 0 { + if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18036) == 0 { b = int32(2) } else { b = int32(_sqlite3GetBoolean(tls, zRight, uint8(0))) @@ -117849,7 +118697,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p */ fallthrough case int32(PragTyp_LOCKING_MODE): - zRet = __ccgo_ts + 17740 + zRet = __ccgo_ts + 17827 eMode = _getLockingMode(tls, zRight) if (*TToken)(unsafe.Pointer(pId2)).Fn == uint32(0) && eMode == -int32(1) { /* Simple "PRAGMA locking_mode;" statement. This is a query for @@ -117879,7 +118727,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } _ = libc.Int32FromInt32(0) if eMode == int32(PAGER_LOCKINGMODE_EXCLUSIVE) { - zRet = __ccgo_ts + 17730 + zRet = __ccgo_ts + 17817 } _returnSingleText(tls, v, zRet) break @@ -118174,7 +119022,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if *(*uint8)(unsafe.Pointer(zRight)) != 0 { rc = _sqlite3OsAccess(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, zRight, int32(SQLITE_ACCESS_READWRITE), bp+56) if rc != SQLITE_OK || *(*int32)(unsafe.Pointer(bp + 56)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17954, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18041, 0) Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) goto pragma_out } @@ -118184,7 +119032,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } Xsqlite3_free(tls, Xsqlite3_temp_directory) if *(*uint8)(unsafe.Pointer(zRight)) != 0 { - Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+136, zRight)) + Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+136, zRight)) } else { Xsqlite3_temp_directory = uintptr(0) } @@ -118206,7 +119054,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _returnSingleInt(tls, v, int64(int32((*TDb)(unsafe.Pointer(pDb)).Fsafety_level)-int32(1))) } else { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17979, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18066, 0) } else { if iDb != int32(1) { iLevel = (int32(_getSafetyLevel(tls, zRight, 0, uint8(1))) + int32(1)) & int32(PAGER_SYNCHRONOUS_MASK) @@ -118239,7 +119087,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if mask == uint64(SQLITE_DeferFKs) { (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = 0 } - if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18032) == 0 { + if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18119) == 0 { /* IMP: R-60817-01178 If the argument is "RESET" then schema ** writing is disabled (as with "PRAGMA writable_schema=OFF") and, ** in addition, the schema is reloaded. */ @@ -118322,9 +119170,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - v14 = __ccgo_ts + 18038 + v14 = __ccgo_ts + 18125 } else { - v14 = __ccgo_ts + 18046 + v14 = __ccgo_ts + 18133 } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 4))&0xf>>0)) != 0 { v15 = int32(1) @@ -118336,7 +119184,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v16 = *(*uintptr)(unsafe.Pointer(pColExpr + 8)) } - _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+136, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1648), v15, v16, k, isHidden)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+136, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1662), v15, v16, k, isHidden)) goto _12 _12: ; @@ -118395,7 +119243,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pTab1 = (*THashElem)(unsafe.Pointer(k1)).Fdata if int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) == 0 { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18053, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab1)).FzName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18140, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab1)).FzName)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 60)) = uintptr(0) Xsqlite3_prepare(tls, db, zSql, -int32(1), bp+60, uintptr(0)) @@ -118403,7 +119251,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3DbFree(tls, db, zSql) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1632, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) } pHash = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*16))).FpSchema + 8 @@ -118425,19 +119273,19 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _20 } if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10796 + zType = __ccgo_ts + 10921 } else { if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 13044 + zType = __ccgo_ts + 13169 } else { if (*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Shadow) != 0 { - zType = __ccgo_ts + 18069 + zType = __ccgo_ts + 18156 } else { - zType = __ccgo_ts + 9058 + zType = __ccgo_ts + 9183 } } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18076, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*16))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18163, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*16))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) goto _20 _20: ; @@ -118485,9 +119333,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v22 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab3)).FaCol + uintptr(cnum)*12))).FzCnName } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18083, libc.VaList(bp+136, i1, int32(cnum), v22)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18170, libc.VaList(bp+136, i1, int32(cnum), v22)) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18088, libc.VaList(bp+136, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*4)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) + _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18175, libc.VaList(bp+136, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*4)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) } _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), int32(1), (*TParse)(unsafe.Pointer(pParse)).FnMem) goto _21 @@ -118511,11 +119359,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } azOrigin = [3]uintptr{ - 0: __ccgo_ts + 18093, - 1: __ccgo_ts + 18095, - 2: __ccgo_ts + 16582, + 0: __ccgo_ts + 18180, + 1: __ccgo_ts + 18182, + 2: __ccgo_ts + 16669, } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18097, libc.VaList(bp+136, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 56))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18184, libc.VaList(bp+136, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 56))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) goto _23 _23: ; @@ -118535,7 +119383,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _24 } _ = libc.Int32FromInt32(0) - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18103, libc.VaList(bp+136, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*16))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*16))).FpBt))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18190, libc.VaList(bp+136, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*16))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*16))).FpBt))) goto _24 _24: ; @@ -118552,7 +119400,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pColl = (*THashElem)(unsafe.Pointer(p)).Fdata v26 = i4 i4++ - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18107, libc.VaList(bp+136, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18194, libc.VaList(bp+136, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) goto _25 _25: ; @@ -118604,7 +119452,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } pMod = (*THashElem)(unsafe.Pointer(j1)).Fdata - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7617, libc.VaList(bp+136, (*TModule)(unsafe.Pointer(pMod)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7742, libc.VaList(bp+136, (*TModule)(unsafe.Pointer(pMod)).FzName)) goto _30 _30: ; @@ -118616,7 +119464,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i6 < int32(libc.Uint32FromInt64(1056)/libc.Uint32FromInt64(16))) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7617, libc.VaList(bp+136, _aPragmaName[i6].FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7742, libc.VaList(bp+136, _aPragmaName[i6].FzName)) goto _31 _31: ; @@ -118642,7 +119490,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(j2 < (*TFKey)(unsafe.Pointer(pFK)).FnCol) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18110, libc.VaList(bp+136, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 36 + uintptr(j2)*8))).FiFrom)*12))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 36 + uintptr(j2)*8))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 25 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 25))), __ccgo_ts+18119)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18197, libc.VaList(bp+136, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 36 + uintptr(j2)*8))).FiFrom)*12))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 36 + uintptr(j2)*8))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 25 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 25))), __ccgo_ts+18206)) goto _32 _32: ; @@ -118788,7 +119636,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regResult+int32(1)) } - _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18124, libc.VaList(bp+136, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) + _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18211, libc.VaList(bp+136, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), regResult, int32(4)) _sqlite3VdbeResolveLabel(tls, v, addrOk) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 68))) @@ -118858,7 +119706,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p /* Set the maximum error count */ *(*int32)(unsafe.Pointer(bp + 72)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) if zRight != 0 { - if _sqlite3GetInt32(tls, zRight, bp+72) != 0 { + if _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pValue)).Fz, bp+72) != 0 { if *(*int32)(unsafe.Pointer(bp + 72)) <= 0 { *(*int32)(unsafe.Pointer(bp + 72)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) } @@ -118878,8 +119726,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i9 < (*Tsqlite3)(unsafe.Pointer(db)).FnDb) { break } /* Array of root page numbers of all btrees */ - cnt = 0 /* Number of entries in aRoot[] */ - mxIdx = 0 /* Maximum number of indexes for any table */ + cnt = 0 /* Number of entries in aRoot[] */ if libc.Bool(OMIT_TEMPDB != 0) && i9 == int32(1) { goto _40 } @@ -118921,9 +119768,6 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pIdx3 = (*TIndex)(unsafe.Pointer(pIdx3)).FpNext nIdx++ } - if nIdx > mxIdx { - mxIdx = nIdx - } goto _41 _41: ; @@ -118979,16 +119823,78 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } *(*int32)(unsafe.Pointer(aRoot)) = cnt /* Make sure sufficient number of registers have been allocated */ - _sqlite3TouchRegister(tls, pParse, int32(8)+mxIdx) + _sqlite3TouchRegister(tls, pParse, int32(8)+cnt) _sqlite3ClearTempRegCache(tls, pParse) /* Do the b-tree integrity checks */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(2), cnt, int32(1), aRoot, -int32(14)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(1), cnt, int32(8), aRoot, -int32(14)) _sqlite3VdbeChangeP5(tls, v, uint16(uint8(i9))) addr1 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(2)) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18128, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*16))).FzDbSName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18215, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*16))).FzDbSName)), -int32(6)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(2), int32(3), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, addr1) + /* Check that the indexes all have the right number of rows */ + if pObjTab != 0 { + v48 = int32(1) + } else { + v48 = 0 + } + cnt = v48 + _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18239) + x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst + for { + if !(x2 != 0) { + break + } + iTab = 0 + pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab9 { + goto _49 + } + if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + v50 = cnt + cnt++ + iTab = v50 + } else { + iTab = cnt + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx5 + 56))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { + break + } + iTab++ + goto _51 + _51: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + } + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if (*TIndex)(unsafe.Pointer(pIdx5)).FpPartIdxWhere == uintptr(0) { + addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+cnt, 0, int32(8)+iTab) + _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) + _integrityCheckResultRow(tls, v) + _sqlite3VdbeJumpHere(tls, v, addr1) + } + cnt++ + goto _52 + _52: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + goto _49 + _49: + ; + x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext + } /* Make sure all the indices are constructed correctly. */ x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst @@ -118996,39 +119902,39 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata pPrior = uintptr(0) r1 = -int32(1) /* Maximum non-virtual column number */ - if pObjTab != 0 && pObjTab != pTab9 { - goto _48 + if pObjTab != 0 && pObjTab != pTab10 { + goto _53 } - if !(int32((*TTable)(unsafe.Pointer(pTab9)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { - goto _48 + if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _53 } - if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { pPk1 = uintptr(0) r2 = 0 } else { - pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab9) + pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab10) r2 = _sqlite3GetTempRange(tls, pParse, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), int32(1), r2, r2+int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)-int32(1)) } - _sqlite3OpenTableAndIndices(tls, pParse, pTab9, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+76, bp+80) + _sqlite3OpenTableAndIndices(tls, pParse, pTab10, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+76, bp+80) /* reg[7] counts the number of entries in the table. ** reg[8+i] counts the number of entries in the i-th index */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(7)) j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(8)+j4) /* index entries counter */ - goto _49 - _49: + goto _54 + _54: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } _ = libc.Int32FromInt32(0) @@ -119041,29 +119947,29 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** by the OP_IsType code, so it is a required step. */ _ = libc.Int32FromInt32(0) - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { mxCol = -int32(1) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*12))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { + if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*12))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { mxCol++ } - goto _50 - _50: + goto _55 + _55: ; j4++ } - if mxCol == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { + if mxCol == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { mxCol-- } } else { /* COLFLAG_VIRTUAL columns are not included in the WITHOUT ROWID ** PK index column-count, so there is no need to account for them ** in this case. */ - mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab9))).FnColumn) - int32(1) + mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab10))).FnColumn) - int32(1) } if mxCol >= 0 { _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 76)), mxCol, int32(3)) @@ -119073,7 +119979,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if pPk1 != 0 { a1 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 76)), 0, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), r2) - zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18152, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18268, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a1) @@ -119084,8 +119990,8 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprCodeLoadIndexColumn(tls, pParse, pPk1, *(*int32)(unsafe.Pointer(bp + 76)), j4, r2+j4) - goto _51 - _51: + goto _56 + _56: ; j4++ } @@ -119100,15 +120006,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** (4) Datatype for numeric columns in non-STRICT tables must not ** be a TEXT value that can be losslessly converted to numeric. */ - bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_Strict) != uint32(0)) + bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_Strict) != uint32(0)) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - pCol1 = (*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*12 /* Check datatypes (besides NOT NULL) */ - if j4 == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { - goto _52 + pCol1 = (*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*12 /* Check datatypes (besides NOT NULL) */ + if j4 == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { + goto _57 } if bStrict != 0 { doTypeCheck = libc.BoolInt32(int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 4))&0xf0>>4)) > int32(COLTYPE_ANY)) @@ -119116,28 +120022,28 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p doTypeCheck = libc.BoolInt32(int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) > int32(SQLITE_AFF_BLOB)) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 4))&0xf>>0)) == 0 && !(doTypeCheck != 0) { - goto _52 + goto _57 } /* Compute the operands that will be needed for OP_IsType */ p4 = int32(SQLITE_NULL) if int32((*TColumn)(unsafe.Pointer(pCol1)).FcolFlags)&int32(COLFLAG_VIRTUAL) != 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 76)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 76)), j4, int32(3)) p11 = -int32(1) p3 = int32(3) } else { if (*TColumn)(unsafe.Pointer(pCol1)).FiDflt != 0 { *(*uintptr)(unsafe.Pointer(bp + 84)) = uintptr(0) - _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab9, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol1)).Faffinity, bp+84) + _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab10, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol1)).Faffinity, bp+84) if *(*uintptr)(unsafe.Pointer(bp + 84)) != 0 { p4 = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp + 84))) _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 84))) } } p11 = *(*int32)(unsafe.Pointer(bp + 76)) - if !((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { - p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab9), int16(j4))) + if !((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { + p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab10), int16(j4))) } else { - p3 = int32(_sqlite3TableColumnToStorage(tls, pTab9, int16(j4))) + p3 = int32(_sqlite3TableColumnToStorage(tls, pTab10, int16(j4))) } } labelError = _sqlite3VdbeMakeLabel(tls, pParse) @@ -119154,10 +120060,10 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** is REAL, we have to load the actual data using OP_Column ** to reliably determine if the value is a NULL. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), p11, p3, int32(3)) - _sqlite3ColumnDefault(tls, v, pTab9, j4, int32(3)) + _sqlite3ColumnDefault(tls, v, pTab10, j4, int32(3)) jmp3 = _sqlite3VdbeAddOp2(tls, v, int32(OP_NotNull), int32(3), labelOk) } - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18188, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18304, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) if doTypeCheck != 0 { _sqlite3VdbeGoto(tls, v, labelError) @@ -119171,7 +120077,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _ = libc.Int32FromInt32(0) _sqlite3VdbeChangeP5(tls, v, uint16(_aStdTypeMask[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 4))&0xf0>>4))-int32(1)])) - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18208, libc.VaList(bp+136, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 4))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*12))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18324, libc.VaList(bp+136, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 4))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*12))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) == int32(SQLITE_AFF_TEXT) { @@ -119179,7 +120085,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** NULL, TEXT, or BLOB. */ _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18230, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*12))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18346, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*12))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) >= int32(SQLITE_AFF_NUMERIC) { @@ -119188,12 +120094,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1b)) /* NULL, INT, FLOAT, or BLOB */ if p11 >= 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 76)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 76)), j4, int32(3)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18253, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18369, -int32(1)) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), -int32(1), labelOk, int32(3), p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18255, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*12))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18371, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*12))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } } @@ -119201,14 +120107,14 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeResolveLabel(tls, v, labelError) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, labelOk) - goto _52 - _52: + goto _57 + _57: ; j4++ } /* Verify CHECK constraints */ - if (*TTable)(unsafe.Pointer(pTab9)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { - pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab9)).FpCheck, 0) + if (*TTable)(unsafe.Pointer(pTab10)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { + pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab10)).FpCheck, 0) if int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { addrCkFault = _sqlite3VdbeMakeLabel(tls, pParse) addrCkOk = _sqlite3VdbeMakeLabel(tls, pParse) @@ -119219,15 +120125,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprIfFalse(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8 + uintptr(k3)*20))).FpExpr, addrCkFault, 0) - goto _53 - _53: + goto _58 + _58: ; k3-- } _sqlite3ExprIfTrue(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8))).FpExpr, addrCkOk, int32(SQLITE_JUMPIFNULL)) _sqlite3VdbeResolveLabel(tls, v, addrCkFault) (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 - zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18275, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18391, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr2, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, addrCkOk) @@ -119237,25 +120143,25 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(isQuick != 0) { /* Omit the remaining tests for quick_check */ /* Validate index entries for the current row */ j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } ckUniq = _sqlite3VdbeMakeLabel(tls, pParse) - if pPk1 == pIdx5 { - goto _54 + if pPk1 == pIdx6 { + goto _59 } - r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx5, *(*int32)(unsafe.Pointer(bp + 76)), 0, 0, bp+88, pPrior, r1) - pPrior = pIdx5 + r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx6, *(*int32)(unsafe.Pointer(bp + 76)), 0, 0, bp+88, pPrior, r1) + pPrior = pIdx6 _sqlite3VdbeAddOp2(tls, v, int32(OP_AddImm), int32(8)+j4, int32(1)) /* increment entry count */ /* Verify that an index entry exists for the current table row */ - jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 80))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18305) + jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 80))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18421) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18310) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18426) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) - jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx6)).FzName) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) jmp4 = _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, jmp21) @@ -119263,12 +120169,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** that extracts the rowid off the end of the index record. ** But it only works correctly if index record does not have ** any extra bytes at the end. Verify that this is the case. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { _sqlite3VdbeAddOp2(tls, v, int32(OP_IdxRowid), *(*int32)(unsafe.Pointer(bp + 80))+j4, int32(3)) - jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)-int32(1)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18331) + jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)-int32(1)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18447) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18367) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18483) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp7) } @@ -119277,101 +120183,77 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p label6 = 0 kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FazColl + uintptr(kk)*4)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { - goto _55 + if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FazColl + uintptr(kk)*4)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { + goto _60 } if label6 == 0 { label6 = _sqlite3VdbeMakeLabel(tls, pParse) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 80))+j4, kk, int32(3)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ne), int32(3), label6, r1+kk) - goto _55 - _55: + goto _60 + _60: ; kk++ } if label6 != 0 { jmp6 = _sqlite3VdbeAddOp0(tls, v, int32(OP_Goto)) _sqlite3VdbeResolveLabel(tls, v, label6) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18305) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18421) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18378) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18494) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp6) } /* For UNIQUE indexes, verify that only one entry exists with the ** current key. The entry is unique if (1) any column is NULL ** or (2) the next entry has a different key */ - if int32((*TIndex)(unsafe.Pointer(pIdx5)).FonError) != OE_None { + if int32((*TIndex)(unsafe.Pointer(pIdx6)).FonError) != OE_None { uniqOk = _sqlite3VdbeMakeLabel(tls, pParse) kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FaiColumn + uintptr(kk)*2))) + iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FaiColumn + uintptr(kk)*2))) _ = libc.Int32FromInt32(0) - if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(iCol1)*12 + 4))&0xf>>0)) != 0 { - goto _56 + if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(iCol1)*12 + 4))&0xf>>0)) != 0 { + goto _61 } _sqlite3VdbeAddOp2(tls, v, int32(OP_IsNull), r1+kk, uniqOk) - goto _56 - _56: + goto _61 + _61: ; kk++ } jmp61 = _sqlite3VdbeAddOp1(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 80))+j4) _sqlite3VdbeGoto(tls, v, uniqOk) _sqlite3VdbeJumpHere(tls, v, jmp61) - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 80))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18405) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 80))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18521) _sqlite3VdbeGoto(tls, v, jmp5) _sqlite3VdbeResolveLabel(tls, v, uniqOk) } _sqlite3VdbeJumpHere(tls, v, jmp4) _sqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp + 88))) - goto _54 - _54: + goto _59 + _59: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } } _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 76)), loopTop) _sqlite3VdbeJumpHere(tls, v, loopTop-int32(1)) - if !(isQuick != 0) { - _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18432) - j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex - for { - if !(pIdx5 != 0) { - break - } - if pPk1 == pIdx5 { - goto _57 - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), *(*int32)(unsafe.Pointer(bp + 80))+j4, int32(3)) - addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+j4, 0, int32(3)) - _sqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL)) - _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) - _integrityCheckResultRow(tls, v) - _sqlite3VdbeJumpHere(tls, v, addr1) - goto _57 - _57: - ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext - j4++ - } - if pPk1 != 0 { - _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) - } + if pPk1 != 0 { + _ = libc.Int32FromInt32(0) + _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) } - goto _48 - _48: + goto _53 + _53: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -119383,60 +120265,60 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata - if pObjTab != 0 && pObjTab != pTab10 { - goto _58 + pTab11 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab11 { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == TABTYP_NORM { - goto _58 + if int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == TABTYP_NORM { + goto _62 } - if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { - goto _58 + if !(int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FnCol) <= 0 { + if int32((*TTable)(unsafe.Pointer(pTab11)).FnCol) <= 0 { zMod = *(*uintptr)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 44))).FazArg)) + })(unsafe.Pointer(pTab11 + 44))).FazArg)) if _sqlite3HashFind(tls, db+404, zMod) == uintptr(0) { - goto _58 + goto _62 } } - _sqlite3ViewGetColumnNames(tls, pParse, pTab10) + _sqlite3ViewGetColumnNames(tls, pParse, pTab11) if (*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 44))).Fp == uintptr(0) { - goto _58 + })(unsafe.Pointer(pTab11 + 44))).Fp == uintptr(0) { + goto _62 } pVTab = (*TVTable)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 44))).Fp)).FpVtab + })(unsafe.Pointer(pTab11 + 44))).Fp)).FpVtab if pVTab == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FiVersion < int32(4) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FxIntegrity == uintptr(0) { - goto _58 + goto _62 } _sqlite3VdbeAddOp3(tls, v, int32(OP_VCheck), i9, int32(3), isQuick) - (*TTable)(unsafe.Pointer(pTab10)).FnTabRef++ - _sqlite3VdbeAppendP4(tls, v, pTab10, -int32(16)) + (*TTable)(unsafe.Pointer(pTab11)).FnTabRef++ + _sqlite3VdbeAppendP4(tls, v, pTab11, -int32(16)) a11 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a11) - goto _58 - goto _58 - _58: + goto _62 + goto _62 + _62: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -119449,7 +120331,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if aOp2 != 0 { (*(*TVdbeOp)(unsafe.Pointer(aOp2))).Fp2 = int32(1) - *(*int32)(unsafe.Pointer(bp + 72)) (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 2*20))).Fp4type = int8(-libc.Int32FromInt32(1)) - *(*uintptr)(unsafe.Pointer(aOp2 + 2*20 + 16)) = __ccgo_ts + 18461 + *(*uintptr)(unsafe.Pointer(aOp2 + 2*20 + 16)) = __ccgo_ts + 18548 (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 5*20))).Fp4type = int8(-libc.Int32FromInt32(1)) *(*uintptr)(unsafe.Pointer(aOp2 + 5*20 + 16)) = _sqlite3ErrStr(tls, int32(SQLITE_CORRUPT)) } @@ -119510,20 +120392,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc != 0 { - v60 = int32((*struct { + v64 = int32((*struct { FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc) } else { - v60 = int32(SQLITE_UTF16LE) + v64 = int32(SQLITE_UTF16LE) } - enc = uint8(v60) + enc = uint8(v64) (*TSchema)(unsafe.Pointer((*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema)).Fenc = enc _sqlite3SetTextEncoding(tls, db, enc) break } - goto _59 - _59: + goto _63 + _63: ; pEnc += 8 } @@ -119531,7 +120413,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).FzName != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18522, libc.VaList(bp+136, zRight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18609, libc.VaList(bp+136, zRight)) } } } @@ -119609,11 +120491,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p i10 = 0 (*TParse)(unsafe.Pointer(pParse)).FnMem = int32(1) for { - v62 = i10 + v66 = i10 i10++ - v61 = Xsqlite3_compileoption_get(tls, v62) - zOpt = v61 - if !(v61 != uintptr(0)) { + v65 = Xsqlite3_compileoption_get(tls, v66) + zOpt = v65 + if !(v65 != uintptr(0)) { break } _sqlite3VdbeLoadString(tls, v, int32(1), zOpt) @@ -119629,20 +120511,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p fallthrough case int32(PragTyp_WAL_CHECKPOINT): if (*TToken)(unsafe.Pointer(pId2)).Fz != 0 { - v63 = iDb + v67 = iDb } else { - v63 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) + v67 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) } - iBt = v63 + iBt = v67 eMode2 = SQLITE_CHECKPOINT_PASSIVE if zRight != 0 { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17747) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17834) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_FULL) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18547) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18634) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_RESTART) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17900) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17987) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_TRUNCATE) } } @@ -119666,11 +120548,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p Xsqlite3_wal_autocheckpoint(tls, db, _sqlite3Atoi(tls, zRight)) } if (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback == __ccgo_fp(_sqlite3WalDefaultHook) { - v64 = int32((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg) + v68 = int32((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg) } else { - v64 = 0 + v68 = 0 } - _returnSingleInt(tls, v, int64(v64)) + _returnSingleInt(tls, v, int64(v68)) break /* ** PRAGMA shrink_memory @@ -119698,47 +120580,68 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** ** The optional argument is a bitmask of optimizations to perform: ** - ** 0x0001 Debugging mode. Do not actually perform any optimizations - ** but instead return one line of text for each optimization - ** that would have been done. Off by default. + ** 0x00001 Debugging mode. Do not actually perform any optimizations + ** but instead return one line of text for each optimization + ** that would have been done. Off by default. ** - ** 0x0002 Run ANALYZE on tables that might benefit. On by default. - ** See below for additional information. + ** 0x00002 Run ANALYZE on tables that might benefit. On by default. + ** See below for additional information. ** - ** 0x0004 (Not yet implemented) Record usage and performance - ** information from the current session in the - ** database file so that it will be available to "optimize" - ** pragmas run by future database connections. + ** 0x00010 Run all ANALYZE operations using an analysis_limit that + ** is the lessor of the current analysis_limit and the + ** SQLITE_DEFAULT_OPTIMIZE_LIMIT compile-time option. + ** The default value of SQLITE_DEFAULT_OPTIMIZE_LIMIT is + ** currently (2024-02-19) set to 2000, which is such that + ** the worst case run-time for PRAGMA optimize on a 100MB + ** database will usually be less than 100 milliseconds on + ** a RaspberryPI-4 class machine. On by default. ** - ** 0x0008 (Not yet implemented) Create indexes that might have - ** been helpful to recent queries + ** 0x10000 Look at tables to see if they need to be reanalyzed + ** due to growth or shrinkage even if they have not been + ** queried during the current connection. Off by default. ** - ** The default MASK is and always shall be 0xfffe. 0xfffe means perform all - ** of the optimizations listed above except Debug Mode, including new - ** optimizations that have not yet been invented. If new optimizations are - ** ever added that should be off by default, those off-by-default - ** optimizations will have bitmasks of 0x10000 or larger. + ** The default MASK is and always shall be 0x0fffe. In the current + ** implementation, the default mask only covers the 0x00002 optimization, + ** though additional optimizations that are covered by 0x0fffe might be + ** added in the future. Optimizations that are off by default and must + ** be explicitly requested have masks of 0x10000 or greater. ** ** DETERMINATION OF WHEN TO RUN ANALYZE ** ** In the current implementation, a table is analyzed if only if all of ** the following are true: ** - ** (1) MASK bit 0x02 is set. + ** (1) MASK bit 0x00002 is set. ** - ** (2) The query planner used sqlite_stat1-style statistics for one or - ** more indexes of the table at some point during the lifetime of - ** the current connection. + ** (2) The table is an ordinary table, not a virtual table or view. ** - ** (3) One or more indexes of the table are currently unanalyzed OR - ** the number of rows in the table has increased by 25 times or more - ** since the last time ANALYZE was run. + ** (3) The table name does not begin with "sqlite_". + ** + ** (4) One or more of the following is true: + ** (4a) The 0x10000 MASK bit is set. + ** (4b) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. + ** (4c) The query planner used sqlite_stat1-style statistics for one + ** or more indexes of the table at some point during the lifetime + ** of the current connection. + ** + ** (5) One or more of the following is true: + ** (5a) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. (Same as 4a) + ** (5b) The number of rows in the table has increased or decreased by + ** 10-fold. In other words, the current size of the table is + ** 10 times larger than the size in sqlite_stat1 or else the + ** current size is less than 1/10th the size in sqlite_stat1. ** ** The rules for when tables are analyzed are likely to change in - ** future releases. + ** future releases. Future versions of SQLite might accept a string + ** literal argument to this pragma that contains a mnemonic description + ** of the options rather than a bitmap. */ fallthrough - case int32(PragTyp_OPTIMIZE): /* Mask of operations to perform */ + case int32(PragTyp_OPTIMIZE): /* Analysis limit to use */ + nCheck = 0 /* Number of tables to be optimized */ + nBtree = 0 /* Number of indexes on the current table */ if zRight != 0 { opMask = uint32(_sqlite3Atoi(tls, zRight)) if opMask&uint32(0x02) == uint32(0) { @@ -119747,22 +120650,31 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { opMask = uint32(0xfffe) } - v66 = pParse + 40 - v65 = *(*int32)(unsafe.Pointer(v66)) - *(*int32)(unsafe.Pointer(v66))++ - iTabCur = v65 + if opMask&uint32(0x10) == uint32(0) { + nLimit = 0 + } else { + if (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit > 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit < int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) { + nLimit = 0 + } else { + nLimit = int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) + } + } + v70 = pParse + 40 + v69 = *(*int32)(unsafe.Pointer(v70)) + *(*int32)(unsafe.Pointer(v70))++ + iTabCur = v69 if zDb != 0 { - v68 = iDb + v72 = iDb } else { - v68 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) + v72 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) } - iDbLast = v68 + iDbLast = v72 for { if !(iDb <= iDbLast) { break } if iDb == int32(1) { - goto _67 + goto _71 } _sqlite3CodeVerifySchema(tls, pParse, iDb) pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FpSchema @@ -119771,53 +120683,122 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(k4 != 0) { break } - pTab11 = (*THashElem)(unsafe.Pointer(k4)).Fdata - /* If table pTab has not been used in a way that would benefit from - ** having analysis statistics during the current session, then skip it. - ** This also has the effect of skipping virtual tables and views */ - if (*TTable)(unsafe.Pointer(pTab11)).FtabFlags&uint32(TF_StatsUsed) == uint32(0) { - goto _69 + pTab12 = (*THashElem)(unsafe.Pointer(k4)).Fdata + /* This only works for ordinary tables */ + if !(int32((*TTable)(unsafe.Pointer(pTab12)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _73 } - /* Reanalyze if the table is 25 times larger than the last analysis */ - szThreshold = int16(int32((*TTable)(unsafe.Pointer(pTab11)).FnRowLogEst) + int32(46)) - _ = libc.Int32FromInt32(0) - pIdx6 = (*TTable)(unsafe.Pointer(pTab11)).FpIndex + /* Do not scan system tables */ + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab12)).FzName, __ccgo_ts+6589, int32(7)) { + goto _73 + } + /* Find the size of the table as last recorded in sqlite_stat1. + ** If any index is unanalyzed, then the threshold is -1 to + ** indicate a new, unanalyzed index + */ + szThreshold = (*TTable)(unsafe.Pointer(pTab12)).FnRowLogEst + nIndex = 0 + pIdx7 = (*TTable)(unsafe.Pointer(pTab12)).FpIndex for { - if !(pIdx6 != 0) { + if !(pIdx7 != 0) { break } - if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx6 + 56))&0x80>>7)) != 0) { - szThreshold = 0 /* Always analyze if any index lacks statistics */ - break + nIndex++ + if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx7 + 56))&0x80>>7)) != 0) { + szThreshold = int16(-int32(1)) /* Always analyze if any index lacks statistics */ } - goto _70 - _70: + goto _74 + _74: ; - pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext + pIdx7 = (*TIndex)(unsafe.Pointer(pIdx7)).FpNext } - if szThreshold != 0 { - _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab11, int32(OP_OpenRead)) - _sqlite3VdbeAddOp3(tls, v, int32(OP_IfSmaller), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), int32(szThreshold)) + /* If table pTab has not been used in a way that would benefit from + ** having analysis statistics during the current session, then skip it, + ** unless the 0x10000 MASK bit is set. */ + if (*TTable)(unsafe.Pointer(pTab12)).FtabFlags&uint32(TF_MaybeReanalyze) != uint32(0) { + /* Check for size change if stat1 has been used for a query */ + } else { + if opMask&uint32(0x10000) != 0 { + /* Check for size change if 0x10000 is set */ + } else { + if (*TTable)(unsafe.Pointer(pTab12)).FpIndex != uintptr(0) && int32(szThreshold) < 0 { + /* Do analysis if unanalyzed indexes exists */ + } else { + /* Otherwise, we can skip this table */ + goto _73 + } + } } - zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18555, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTable)(unsafe.Pointer(pTab11)).FzName)) + nCheck++ + if nCheck == int32(2) { + /* If ANALYZE might be invoked two or more times, hold a write + ** transaction for efficiency */ + _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) + } + nBtree += nIndex + int32(1) + /* Reanalyze if the table is 10 times larger or smaller than + ** the last analysis. Unconditional reanalysis if there are + ** unanalyzed indexes. */ + _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab12, int32(OP_OpenRead)) + if int32(szThreshold) >= 0 { + iRange = int16(33) /* 10x size change */ + if int32(szThreshold) >= int32(iRange) { + v75 = int32(szThreshold) - int32(iRange) + } else { + v75 = -int32(1) + } + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IfSizeBetween), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), v75, int32(szThreshold)+int32(iRange)) + } else { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1))) + } + zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18642, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTable)(unsafe.Pointer(pTab12)).FzName)) if opMask&uint32(0x01) != 0 { r11 = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, r11, 0, zSubSql, -int32(6)) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), r11, int32(1)) } else { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), 0, 0, 0, zSubSql, -int32(6)) + if nLimit != 0 { + v76 = int32(0x02) + } else { + v76 = 00 + } + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), v76, nLimit, 0, zSubSql, -int32(6)) } - goto _69 - _69: + goto _73 + _73: ; k4 = (*THashElem)(unsafe.Pointer(k4)).Fnext } - goto _67 - _67: + goto _71 + _71: ; iDb++ } _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) + /* In a schema with a large number of tables and indexes, scale back + ** the analysis_limit to avoid excess run-time in the worst case. + */ + if !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && nLimit > 0 && nBtree > int32(100) { + nLimit = int32(100) * nLimit / nBtree + if nLimit < int32(100) { + nLimit = int32(100) + } + aOp5 = _sqlite3VdbeGetOp(tls, v, 0) + iEnd = _sqlite3VdbeCurrentAddr(tls, v) + iAddr1 = 0 + for { + if !(iAddr1 < iEnd) { + break + } + if int32((*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*20))).Fopcode) == int32(OP_SqlExec) { + (*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*20))).Fp2 = nLimit + } + goto _77 + _77: + ; + iAddr1++ + } + } break /* ** PRAGMA busy_timeout @@ -119912,6 +120893,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** instructions to the VM. */ if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_NoColumns1) != 0 && zRight != 0 { } + goto pragma_out pragma_out: ; _sqlite3DbFree(tls, db, zLeft) @@ -120043,34 +121025,34 @@ var _encnames1 = [9]struct { Fenc Tu8 }{ 0: { - FzName: __ccgo_ts + 18464, + FzName: __ccgo_ts + 18551, Fenc: uint8(SQLITE_UTF8), }, 1: { - FzName: __ccgo_ts + 18469, + FzName: __ccgo_ts + 18556, Fenc: uint8(SQLITE_UTF8), }, 2: { - FzName: __ccgo_ts + 18475, + FzName: __ccgo_ts + 18562, Fenc: uint8(SQLITE_UTF16LE), }, 3: { - FzName: __ccgo_ts + 18484, + FzName: __ccgo_ts + 18571, Fenc: uint8(SQLITE_UTF16BE), }, 4: { - FzName: __ccgo_ts + 18493, + FzName: __ccgo_ts + 18580, Fenc: uint8(SQLITE_UTF16LE), }, 5: { - FzName: __ccgo_ts + 18501, + FzName: __ccgo_ts + 18588, Fenc: uint8(SQLITE_UTF16BE), }, 6: { - FzName: __ccgo_ts + 18509, + FzName: __ccgo_ts + 18596, }, 7: { - FzName: __ccgo_ts + 18516, + FzName: __ccgo_ts + 18603, }, 8: {}, } @@ -120168,14 +121150,14 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg _ = argc _ = argv _sqlite3StrAccumInit(tls, bp, uintptr(0), bp+24, int32(200), 0) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18573) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18660) i = 0 j = int32((*TPragmaName)(unsafe.Pointer(pPragma)).FiPragCName) for { if !(i < int32((*TPragmaName)(unsafe.Pointer(pPragma)).FnPragCName)) { break } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18588, libc.VaList(bp+232, int32(cSep), _pragCName[j])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18675, libc.VaList(bp+232, int32(cSep), _pragCName[j])) cSep = uint8(',') goto _1 _1: @@ -120184,19 +121166,19 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg j++ } if i == 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18595, libc.VaList(bp+232, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18682, libc.VaList(bp+232, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) i++ } j = 0 if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_Result1) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18601) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18688) j++ } if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&(libc.Int32FromInt32(PragFlg_SchemaOpt)|libc.Int32FromInt32(PragFlg_SchemaReq)) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18613) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18700) j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5170, int32(1)) _sqlite3StrAccumFinish(tls, bp) _ = libc.Int32FromInt32(0) rc = Xsqlite3_declare_vtab(tls, db, bp+24) @@ -120212,7 +121194,7 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg (*TPragmaVtab)(unsafe.Pointer(pTab)).FnHidden = uint8(j) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+232, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+232, Xsqlite3_errmsg(tls, db))) } *(*uintptr)(unsafe.Pointer(ppVtab)) = pTab return rc @@ -120258,14 +121240,14 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) { break } - if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { goto _1 } if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fop) != int32(SQLITE_INDEX_CONSTRAINT_EQ) { goto _1 } - if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { - goto _1 + if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + return int32(SQLITE_CONSTRAINT) } j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn - int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) _ = libc.Int32FromInt32(0) @@ -120284,16 +121266,13 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 j = seen[0] - int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) - if seen[int32(1)] == 0 { - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(1000) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(1000) - return SQLITE_OK - } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(20) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(20) - j = seen[int32(1)] - int32(1) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + if seen[int32(1)] != 0 { + j = seen[int32(1)] - int32(1) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + } return SQLITE_OK } @@ -120321,6 +121300,7 @@ func _pragmaVtabCursorClear(tls *libc.TLS, pCsr uintptr) { _ = i Xsqlite3_finalize(tls, (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma) (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma = uintptr(0) + (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FiRowid = 0 i = 0 for { if !(i < int32(libc.Uint32FromInt64(8)/libc.Uint32FromInt64(4))) { @@ -120399,7 +121379,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if zText != 0 { - *(*uintptr)(unsafe.Pointer(pCsr + 16 + uintptr(j)*4)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+32, zText)) + *(*uintptr)(unsafe.Pointer(pCsr + 16 + uintptr(j)*4)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+32, zText)) if *(*uintptr)(unsafe.Pointer(pCsr + 16 + uintptr(j)*4)) == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -120411,13 +121391,13 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr j++ } _sqlite3StrAccumInit(tls, bp, uintptr(0), uintptr(0), 0, *(*int32)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb + 120 + 1*4))) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18628) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18715) if *(*uintptr)(unsafe.Pointer(pCsr + 16 + 1*4)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18636, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer(pCsr + 16 + 1*4)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18723, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer(pCsr + 16 + 1*4)))) } Xsqlite3_str_appendall(tls, bp, (*TPragmaName)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).FpName)).FzName) if *(*uintptr)(unsafe.Pointer(pCsr + 16)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18640, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer(pCsr + 16)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18727, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer(pCsr + 16)))) } zSql = _sqlite3StrAccumFinish(tls, bp) if zSql == uintptr(0) { @@ -120426,7 +121406,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr rc = Xsqlite3_prepare_v2(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), pCsr+4, uintptr(0)) Xsqlite3_free(tls, zSql) if rc != SQLITE_OK { - (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+32, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) + (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+32, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) return rc } return _pragmaVtabNext(tls, pVtabCursor) @@ -120554,24 +121534,24 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) /* A error message has already been generated. Do not overwrite it */ } else { if (*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(libc.Int32FromInt32(INITFLAG_AlterMask)) != 0 { - *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18674, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*4)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) + *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18761, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*4)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) (*TInitData)(unsafe.Pointer(pData)).Frc = int32(SQLITE_ERROR) } else { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_WriteSchema) != 0 { - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140891)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141840)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*4)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*4)) } else { - v1 = __ccgo_ts + 5108 + v1 = __ccgo_ts + 5172 } zObj = v1 - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18702, libc.VaList(bp+8, zObj)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18789, libc.VaList(bp+8, zObj)) if zExtra != 0 && *(*uint8)(unsafe.Pointer(zExtra)) != 0 { - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18733, libc.VaList(bp+8, z, zExtra)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18820, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140898)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141847)) } } } @@ -120579,9 +121559,9 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) } var _azAlterType = [3]uintptr{ - 0: __ccgo_ts + 18644, - 1: __ccgo_ts + 18651, - 2: __ccgo_ts + 18663, + 0: __ccgo_ts + 18731, + 1: __ccgo_ts + 18738, + 2: __ccgo_ts + 18750, } // C documentation @@ -120661,7 +121641,7 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(iDb) if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*4)), db+172) == 0 || (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage && (*TInitData)(unsafe.Pointer(pData)).FmxPage > uint32(0) { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14516) + _corruptSchema(tls, pData, argv, __ccgo_ts+14609) } } libc.SetBitFieldPtr8Uint32(db+172+8, libc.Uint32FromInt32(0), 0, 0x1) @@ -120696,11 +121676,11 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr } else { pIndex = _sqlite3FindIndex(tls, db, *(*uintptr)(unsafe.Pointer(argv + 1*4)), (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName) if pIndex == uintptr(0) { - _corruptSchema(tls, pData, argv, __ccgo_ts+18741) + _corruptSchema(tls, pData, argv, __ccgo_ts+18828) } else { if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*4)), pIndex+44) == 0 || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum < uint32(2) || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage || _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14516) + _corruptSchema(tls, pData, argv, __ccgo_ts+14609) } } } @@ -120744,18 +121724,18 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** table name will be inserted automatically by the parser so we can just ** use the abbreviation "x" here. The parser will also automatically tag ** the schema table as read-only. */ - (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9058 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9183 if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6533 + v2 = __ccgo_ts + 6597 } else { - v2 = __ccgo_ts + 6066 + v2 = __ccgo_ts + 6130 } v1 = v2 zSchemaTabName = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(2)] = (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8130 - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18754 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8255 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18841 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(5)] = uintptr(0) (*(*TInitData)(unsafe.Pointer(bp + 44))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 44))).FiDb = iDb @@ -120845,7 +121825,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl } else { /* If opening an attached database, the encoding much match ENC(db) */ if (*(*[5]int32)(unsafe.Pointer(bp + 24)))[libc.Int32FromInt32(BTREE_TEXT_ENCODING)-libc.Int32FromInt32(1)]&int32(3) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12095) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12220) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -120871,7 +121851,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = uint8(1) } if int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) > int32(SQLITE_MAX_FILE_FORMAT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18826) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18913) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -120887,7 +121867,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl */ _ = libc.Int32FromInt32(0) (*(*TInitData)(unsafe.Pointer(bp + 44))).FmxPage = _sqlite3BtreeLastPage(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18850, libc.VaList(bp+80, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, zSchemaTabName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18937, libc.VaList(bp+80, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, zSchemaTabName)) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) rc = Xsqlite3_exec(tls, db, zSql, __ccgo_fp(_sqlite3InitCallback), bp+44, uintptr(0)) @@ -120925,12 +121905,14 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** curMain and calling sqlite3BtreeEnter(). For an error that occurs ** before that point, jump to error_out. */ + goto initone_error_out initone_error_out: ; if openedTransaction != 0 { _sqlite3BtreeCommit(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) } _sqlite3BtreeLeave(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) + goto error_out error_out: ; if rc != 0 { @@ -121202,7 +122184,12 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup - pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(12)) + if _sqlite3FaultSim(tls, int32(300)) != 0 { + pCleanup = uintptr(0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) + } else { + pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(12)) + } if pCleanup != 0 { (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup @@ -121234,7 +122221,7 @@ func _sqlite3ParseObjectInit(tls *libc.TLS, pParse uintptr, db uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FpParse = pParse (*TParse)(unsafe.Pointer(pParse)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1632, 0) } } @@ -121270,7 +122257,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } _ = libc.Int32FromInt32(0) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1632, 0) v1 = libc.Int32FromInt32(SQLITE_NOMEM) rc = v1 (*Tsqlite3)(unsafe.Pointer(db)).FerrCode = v1 @@ -121321,7 +122308,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep rc = _sqlite3BtreeSchemaLocked(tls, pBt) if rc != 0 { zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*16))).FzDbSName - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18884, libc.VaList(bp+296, zDb)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18971, libc.VaList(bp+296, zDb)) goto end_prepare } } @@ -121337,7 +122324,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep if nBytes >= 0 && (nBytes == 0 || int32(*(*uint8)(unsafe.Pointer(zSql + uintptr(nBytes-int32(1))))) != 0) { mxLen = *(*int32)(unsafe.Pointer(db + 120 + 1*4)) if nBytes > mxLen { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+18914, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+19001, 0) rc = _sqlite3ApiExit(tls, db, int32(SQLITE_TOOBIG)) goto end_prepare } @@ -121373,7 +122360,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep _ = libc.Int32FromInt32(0) rc = (*(*TParse)(unsafe.Pointer(bp))).Frc if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3795, libc.VaList(bp+296, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3859, libc.VaList(bp+296, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) } else { _sqlite3Error(tls, db, rc) @@ -121390,6 +122377,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep (*(*TParse)(unsafe.Pointer(bp))).FpTriggerPrg = (*TTriggerPrg)(unsafe.Pointer(pT)).FpNext _sqlite3DbFree(tls, db, pT) } + goto end_prepare end_prepare: ; _sqlite3ParseObjectReset(tls, bp) @@ -121403,7 +122391,7 @@ func _sqlite3LockAndPrepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int3 cnt = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141699)) + return _sqlite3MisuseError(tls, int32(142654)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -121546,7 +122534,7 @@ func _sqlite3Prepare16(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, pr rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141848)) + return _sqlite3MisuseError(tls, int32(142803)) } if nBytes >= 0 { z = zSql @@ -121956,15 +122944,15 @@ func _sqlite3JoinType(tls *libc.TLS, pParse uintptr, pA uintptr, pB uintptr, pC i++ } if jointype&(libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER)) == libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER) || jointype&int32(JT_ERROR) != 0 || jointype&(libc.Int32FromInt32(JT_OUTER)|libc.Int32FromInt32(JT_LEFT)|libc.Int32FromInt32(JT_RIGHT)) == int32(JT_OUTER) { - zSp1 = __ccgo_ts + 11202 - zSp2 = __ccgo_ts + 11202 + zSp1 = __ccgo_ts + 11327 + zSp2 = __ccgo_ts + 11327 if pB == uintptr(0) { zSp1++ } if pC == uintptr(0) { zSp2++ } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18933, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19020, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) jointype = int32(JT_INNER) } return jointype @@ -122267,7 +123255,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { if int32((*TSrcItem)(unsafe.Pointer(pRight)).Ffg.Fjointype)&int32(JT_NATURAL) != 0 { pUsing = uintptr(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 36 + 4))&0x400>>10)) != 0 || *(*uintptr)(unsafe.Pointer(pRight + 48)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18963, libc.VaList(bp+16, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19050, libc.VaList(bp+16, 0)) return int32(1) } j = 0 @@ -122320,7 +123308,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { zName1 = (*(*TIdList_item)(unsafe.Pointer(pList + 8 + uintptr(j)*8))).FzName iRightCol = _sqlite3ColumnIndex(tls, pRightTab, zName1) if iRightCol < 0 || _tableAndColumnIndex(tls, pSrc, 0, i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 36 + 4))&0x1000>>12))) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19013, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19100, libc.VaList(bp+16, zName1)) return int32(1) } pE1 = _sqlite3CreateColumnExpr(tls, db, pSrc, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) @@ -122342,7 +123330,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { pFuncArgs = uintptr(0) /* Arguments to the coalesce() */ for _tableAndColumnIndex(tls, pSrc, *(*int32)(unsafe.Pointer(bp))+int32(1), i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 36 + 4))&0x1000>>12))) != 0 { if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*72 + 36 + 4))&0x400>>10)) == 0 || _sqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*72 + 48)), zName1) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19077, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19164, libc.VaList(bp+16, zName1)) break } pFuncArgs = _sqlite3ExprListAppend(tls, pParse, pFuncArgs, pE1) @@ -122388,7 +123376,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { } var _tkCoalesce = TToken{ - Fz: __ccgo_ts + 6730, + Fz: __ccgo_ts + 6794, Fn: uint32(8), } @@ -123188,13 +124176,13 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { _ = z switch id { case int32(TK_ALL): - z = __ccgo_ts + 19114 + z = __ccgo_ts + 19201 case int32(TK_INTERSECT): - z = __ccgo_ts + 19124 + z = __ccgo_ts + 19211 case int32(TK_EXCEPT): - z = __ccgo_ts + 19134 + z = __ccgo_ts + 19221 default: - z = __ccgo_ts + 19141 + z = __ccgo_ts + 19228 break } return z @@ -123215,7 +124203,7 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { func _explainTempTable(tls *libc.TLS, pParse uintptr, zUsage uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19147, libc.VaList(bp+8, zUsage)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19234, libc.VaList(bp+8, zUsage)) } /* @@ -123249,12 +124237,17 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, iParm = (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm /* True if sorter record includes seq. no. */ nRefKey = 0 aOutEx = (*TSelect)(unsafe.Pointer(p)).FpEList + 8 - if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat > 0 { - v1 = __ccgo_ts + 19170 + nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat == 0 || nKey == int32(1) { + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat != 0 { + v1 = __ccgo_ts + 19257 + } else { + v1 = __ccgo_ts + 1662 + } + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19271, libc.VaList(bp+8, v1)) } else { - v1 = __ccgo_ts + 1648 + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19302, libc.VaList(bp+8, nKey)) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19185, libc.VaList(bp+8, v1)) _ = libc.Int32FromInt32(0) if (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut != 0 { _sqlite3VdbeAddOp2(tls, v, int32(OP_Gosub), (*TSortCtx)(unsafe.Pointer(pSort)).FregReturn, (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut) @@ -123277,7 +124270,6 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, regRow = _sqlite3GetTempRange(tls, pParse, nColumn) } } - nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat if int32((*TSortCtx)(unsafe.Pointer(pSort)).FsortFlags)&int32(SORTFLAG_UseSorter) != 0 { v3 = pParse + 44 *(*int32)(unsafe.Pointer(v3))++ @@ -123503,7 +124495,7 @@ func _columnTypeImpl(tls *libc.TLS, pNC uintptr, pExpr uintptr, pzOrigDb uintptr _ = libc.Int32FromInt32(0) if iCol < 0 { zType = __ccgo_ts + 1136 - *(*uintptr)(unsafe.Pointer(bp + 8)) = __ccgo_ts + 16694 + *(*uintptr)(unsafe.Pointer(bp + 8)) = __ccgo_ts + 16781 } else { *(*uintptr)(unsafe.Pointer(bp + 8)) = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*12))).FzCnName zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*12, uintptr(0)) @@ -123656,13 +124648,13 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } _ = libc.Int32FromInt32(0) if iCol < 0 { - zCol = __ccgo_ts + 16694 + zCol = __ccgo_ts + 16781 } else { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*12))).FzCnName } if fullName != 0 { zName1 = uintptr(0) - zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12381, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) + zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12506, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zName1, __ccgo_fp(_sqlite3OomClear)) } else { _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zCol, uintptr(-libc.Int32FromInt32(1))) @@ -123670,7 +124662,7 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } else { z = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*20))).FzEName if z == uintptr(0) { - v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19216, libc.VaList(bp+8, i+int32(1))) + v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19348, libc.VaList(bp+8, i+int32(1))) } else { v2 = _sqlite3DbStrDup(tls, db, z) } @@ -123764,7 +124756,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if iCol >= 0 { v3 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*12))).FzCnName } else { - v3 = __ccgo_ts + 16694 + v3 = __ccgo_ts + 16781 } zName = v3 } else { @@ -123780,7 +124772,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if zName != 0 && !(_sqlite3IsTrueOrFalse(tls, zName) != 0) { zName = _sqlite3DbStrDup(tls, db, zName) } else { - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19216, libc.VaList(bp+32, i+int32(1))) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19348, libc.VaList(bp+32, i+int32(1))) } /* Make sure the column name is unique. If the name is not unique, ** append an integer to the name so that it becomes unique. @@ -123816,7 +124808,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, } *(*Tu32)(unsafe.Pointer(bp))++ v8 = *(*Tu32)(unsafe.Pointer(bp)) - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19225, libc.VaList(bp+32, nName, zName, v8)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19357, libc.VaList(bp+32, nName, zName, v8)) _sqlite3ProgressCheck(tls, pParse) if *(*Tu32)(unsafe.Pointer(bp)) > uint32(3) { Xsqlite3_randomness(tls, int32(4), bp) @@ -123876,9 +124868,9 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS defer tls.Free(48) var a, db, p, pCol, pColl, pS2, zType, p4, p5 uintptr var i, j, m int32 - var m1, n Ti64 + var k, n Ti64 var _ /* sNC at bp+0 */ TNameContext - _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, m, m1, n, p, pCol, pColl, pS2, zType, p4, p5 + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, k, m, n, p, pCol, pColl, pS2, zType, p4, p5 db = (*TParse)(unsafe.Pointer(pParse)).Fdb _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -123899,17 +124891,22 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS if !(i < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } + m = 0 + pS2 = pSelect *(*Tu32)(unsafe.Pointer(pTab + 28)) |= uint32(int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags) & libc.Int32FromInt32(COLFLAG_NOINSERT)) p = (*(*TExprList_item)(unsafe.Pointer(a + uintptr(i)*20))).FpExpr /* pCol->szEst = ... // Column size est for SELECT tables never used */ (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, p) + for int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) && (*TSelect)(unsafe.Pointer(pS2)).FpNext != uintptr(0) { + m |= _sqlite3ExprDataType(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*20))).FpExpr) + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext + (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*20))).FpExpr) + } if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) { (*TColumn)(unsafe.Pointer(pCol)).Faffinity = aff } - if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && (*TSelect)(unsafe.Pointer(pSelect)).FpNext != 0 { - m = 0 - m = 0 - pS2 = (*TSelect)(unsafe.Pointer(pSelect)).FpNext + if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && ((*TSelect)(unsafe.Pointer(pS2)).FpNext != 0 || pS2 != pSelect) { + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext for { if !(pS2 != 0) { break @@ -123934,7 +124931,7 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS zType = _columnTypeImpl(tls, bp, p, uintptr(0), uintptr(0), uintptr(0)) if zType == uintptr(0) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) != int32(_sqlite3AffinityType(tls, zType, uintptr(0))) { if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_NUMERIC) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_FLEXNUM) { - zType = __ccgo_ts + 19233 + zType = __ccgo_ts + 19365 } else { zType = uintptr(0) j = int32(1) @@ -123954,13 +124951,13 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS } } if zType != 0 { - m1 = int64(_sqlite3Strlen30(tls, zType)) + k = int64(_sqlite3Strlen30(tls, zType)) n = int64(_sqlite3Strlen30(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) - (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+m1+int64(2))) + (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+k+int64(2))) p4 = pCol + 10 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) & ^(libc.Int32FromInt32(COLFLAG_HASTYPE) | libc.Int32FromInt32(COLFLAG_HASCOLL))) if (*TColumn)(unsafe.Pointer(pCol)).FzCnName != 0 { - libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint32(m1+int64(1))) + libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint32(k+int64(1))) p5 = pCol + 10 *(*Tu16)(unsafe.Pointer(p5)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p5))) | libc.Int32FromInt32(COLFLAG_HASTYPE)) } @@ -124256,7 +125253,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest iDistinct = 0 /* To ensure unique results if UNION */ eDest = int32(SRT_Fifo) /* Registers used by LIMIT and OFFSET */ if (*TSelect)(unsafe.Pointer(p)).FpWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19237, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19369, 0) return } /* Obtain authorization to do a recursive query */ @@ -124349,7 +125346,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest break } if (*TSelect)(unsafe.Pointer(pFirstRec)).FselFlags&uint32(SF_Aggregate) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19286, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19418, 0) goto end_of_recursive_query } (*TSelect)(unsafe.Pointer(pFirstRec)).Fop = uint8(TK_ALL) @@ -124364,7 +125361,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest /* Store the results of the setup-query in Queue. */ pSetup = (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior (*TSelect)(unsafe.Pointer(pSetup)).FpNext = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19328, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19460, 0) rc = _sqlite3Select(tls, pParse, pSetup, bp) (*TSelect)(unsafe.Pointer(pSetup)).FpNext = p if rc != 0 { @@ -124392,13 +125389,14 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest ** the value for the recursive-table. Store the results in the Queue. */ (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19334, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19466, 0) _sqlite3Select(tls, pParse, p, bp) _ = libc.Int32FromInt32(0) (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = pSetup /* Keep running the loop until the Queue is empty */ _sqlite3VdbeGoto(tls, v, addrTop) _sqlite3VdbeResolveLabel(tls, v, addrBreak) + goto end_of_recursive_query end_of_recursive_query: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSelect)(unsafe.Pointer(p)).FpOrderBy) @@ -124450,11 +125448,11 @@ func _multiSelectValues(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) nRow += bShowAll } if nRow == int32(1) { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } else { - v1 = __ccgo_ts + 19349 + v1 = __ccgo_ts + 19481 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19351, libc.VaList(bp+8, nRow, v1)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19483, libc.VaList(bp+8, nRow, v1)) for p != 0 { _selectInnerLoop(tls, pParse, p, -int32(1), uintptr(0), uintptr(0), pDest, int32(1), int32(1)) if !(bShowAll != 0) { @@ -124569,8 +125567,8 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in return _multiSelectOrderBy(tls, pParse, p, pDest) } else { if (*TSelect)(unsafe.Pointer(pPrior)).FpPrior == uintptr(0) { - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19374, 0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19389, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19506, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19521, 0) } /* Generate code for the left and right SELECT statements. */ @@ -124596,7 +125594,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in _sqlite3VdbeAddOp3(tls, v, int32(OP_OffsetLimit), (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TSelect)(unsafe.Pointer(p)).FiOffset+int32(1), (*TSelect)(unsafe.Pointer(p)).FiOffset) } } - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19114, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19201, 0) rc = _sqlite3Select(tls, pParse, p, bp) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -124653,7 +125651,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 32))).FeDest = op - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19408, libc.VaList(bp+96, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19540, libc.VaList(bp+96, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+32) _ = libc.Int32FromInt32(0) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior @@ -124719,7 +125717,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit1 = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 60))).FiSDParm = tab2 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19408, libc.VaList(bp+96, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19540, libc.VaList(bp+96, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+60) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -124825,6 +125823,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in } _sqlite3KeyInfoUnref(tls, pKeyInfo) } + goto multi_select_end multi_select_end: ; (*TSelectDest)(unsafe.Pointer(pDest)).FiSdst = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst @@ -124845,9 +125844,9 @@ func _sqlite3SelectWrongNumTermsError(tls *libc.TLS, pParse uintptr, p uintptr) bp := tls.Alloc(16) defer tls.Free(16) if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Values) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19429, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19561, 0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19475, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19607, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) } } @@ -125233,8 +126232,8 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy = _sqlite3ExprListDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pOrderBy, 0) - _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7367) - _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7367) + _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7492) + _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7492) /* Compute the limit registers */ _computeLimitRegisters(tls, pParse, p, labelEnd) if (*TSelect)(unsafe.Pointer(p)).FiLimit != 0 && op == int32(TK_ALL) { @@ -125278,14 +126277,14 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr regOutB = v21 _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), regAddrA) _sqlite3SelectDestInit(tls, bp+28, int32(SRT_Coroutine), regAddrB) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19557, libc.VaList(bp+64, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19689, libc.VaList(bp+64, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) /* Generate a coroutine to evaluate the SELECT statement to the ** left of the compound operator - the "A" select. */ addrSelectA = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regAddrA, 0, addrSelectA) (*TSelect)(unsafe.Pointer(pPrior)).FiLimit = regLimitA - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19568, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19700, 0) _sqlite3Select(tls, pParse, pPrior, bp) _sqlite3VdbeEndCoroutine(tls, v, regAddrA) _sqlite3VdbeJumpHere(tls, v, addr1) @@ -125298,7 +126297,7 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr savedOffset = (*TSelect)(unsafe.Pointer(p)).FiOffset (*TSelect)(unsafe.Pointer(p)).FiLimit = regLimitB (*TSelect)(unsafe.Pointer(p)).FiOffset = 0 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19573, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19705, 0) _sqlite3Select(tls, pParse, p, bp+28) (*TSelect)(unsafe.Pointer(p)).FiLimit = savedLimit (*TSelect)(unsafe.Pointer(p)).FiOffset = savedOffset @@ -125516,7 +126515,7 @@ func _substExpr(tls *libc.TLS, pSubst uintptr, pExpr uintptr) (r uintptr) { if pColl != 0 { v1 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v1 = __ccgo_ts + 5086 + v1 = __ccgo_ts + 5150 } pExpr = _sqlite3ExprAddCollateString(tls, (*TSubstContext)(unsafe.Pointer(pSubst)).FpParse, pExpr, v1) } @@ -126580,10 +127579,10 @@ func _findConstInWhere(tls *libc.TLS, pConst uintptr, pExpr uintptr) { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pLeft) != 0 { + if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pLeft) != 0 { _constInsert(tls, pConst, pRight, pLeft, pExpr) } - if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pRight) != 0 { + if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pRight) != 0 { _constInsert(tls, pConst, pLeft, pRight, pExpr) } } @@ -126824,6 +127823,18 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** The hope is that the terms added to the inner query will make it more // ** efficient. // ** +// ** NAME AMBIGUITY +// ** +// ** This optimization is called the "WHERE-clause push-down optimization". +// ** +// ** Do not confuse this optimization with another unrelated optimization +// ** with a similar name: The "MySQL push-down optimization" causes WHERE +// ** clause terms that can be evaluated using only the index and without +// ** reference to the table are run first, so that if they are false, +// ** unnecessary table seeks are avoided. +// ** +// ** RULES +// ** // ** Do not attempt this optimization if: // ** // ** (1) (** This restriction was removed on 2017-09-29. We used to @@ -126889,10 +127900,10 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** (9c) There is a RIGHT JOIN (or FULL JOIN) in between the ON/USING // ** clause and the subquery. // ** -// ** Without this restriction, the push-down optimization might move -// ** the ON/USING filter expression from the left side of a RIGHT JOIN -// ** over to the right side, which leads to incorrect answers. See -// ** also restriction (6) in sqlite3ExprIsSingleTableConstraint(). +// ** Without this restriction, the WHERE-clause push-down optimization +// ** might move the ON/USING filter expression from the left side of a +// ** RIGHT JOIN over to the right side, which leads to incorrect answers. +// ** See also restriction (6) in sqlite3ExprIsSingleTableConstraint(). // ** // ** (10) The inner query is not the right-hand table of a RIGHT JOIN. // ** @@ -126987,7 +127998,7 @@ func _pushDownWhereTerms(tls *libc.TLS, pParse uintptr, pSubq uintptr, pWhere ui nChng += _pushDownWhereTerms(tls, pParse, pSubq, (*TExpr)(unsafe.Pointer(pWhere)).FpRight, pSrcList, iSrc) pWhere = (*TExpr)(unsafe.Pointer(pWhere)).FpLeft } - if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc) != 0 { + if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc, int32(1)) != 0 { nChng++ *(*Tu32)(unsafe.Pointer(pSubq + 4)) |= uint32(SF_PushDown) for pSubq != 0 { @@ -127166,13 +128177,13 @@ func _minMaxQuery(tls *libc.TLS, db uintptr, pFunc uintptr, ppMinMax uintptr) (r } _ = libc.Int32FromInt32(0) zFunc = *(*uintptr)(unsafe.Pointer(pFunc + 8)) - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15550) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15643) == 0 { eRet = int32(WHERE_ORDERBY_MIN) if _sqlite3ExprCanBeNull(tls, (*(*TExprList_item)(unsafe.Pointer(pEList + 8))).FpExpr) != 0 { sortFlags = uint8(KEYINFO_ORDER_BIGNULL) } } else { - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15554) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15647) == 0 { eRet = int32(WHERE_ORDERBY_MAX) sortFlags = uint8(KEYINFO_ORDER_DESC) } else { @@ -127268,7 +128279,7 @@ func _sqlite3IndexedByLookup(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r in pIdx = (*TIndex)(unsafe.Pointer(pIdx)).FpNext } if !(pIdx != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19579, libc.VaList(bp+8, zIndexedBy, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19711, libc.VaList(bp+8, zIndexedBy, 0)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) return int32(SQLITE_ERROR) } @@ -127395,7 +128406,7 @@ func _cannotBeFunction(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 36 + 4))&0x4>>2)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19597, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19729, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) return int32(1) } return 0 @@ -127577,7 +128588,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom *(*Tu32)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect + 4)) |= uint32(SF_CopyCte) _ = libc.Int32FromInt32(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 36 + 4))&0x2>>1)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19620, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 64)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19752, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 64)))) return int32(2) } libc.SetBitFieldPtr16Uint32(pFrom+36+4, libc.Uint32FromInt32(1), 8, 0x100) @@ -127602,7 +128613,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ libc.SetBitFieldPtr16Uint32(pItem+36+4, libc.Uint32FromInt32(1), 6, 0x40) if (*TSelect)(unsafe.Pointer(pRecTerm)).FselFlags&uint32(SF_Recursive) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19640, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19772, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) return int32(2) } *(*Tu32)(unsafe.Pointer(pRecTerm + 4)) |= uint32(SF_Recursive) @@ -127624,7 +128635,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } pRecTerm = (*TSelect)(unsafe.Pointer(pRecTerm)).FpPrior } - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19683 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19815 pSavedWith = (*TParse)(unsafe.Pointer(pParse)).FpWith (*TParse)(unsafe.Pointer(pParse)).FpWith = *(*uintptr)(unsafe.Pointer(bp)) if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { @@ -127660,7 +128671,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom pEList = (*TSelect)(unsafe.Pointer(pLeft)).FpEList if (*TCte)(unsafe.Pointer(pCte)).FpCols != 0 { if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr != (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19706, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19838, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) (*TParse)(unsafe.Pointer(pParse)).FpWith = pSavedWith return int32(2) } @@ -127669,9 +128680,9 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom _sqlite3ColumnsFromExprList(tls, pParse, pEList, pTab+34, pTab+4) if bMayRecursive != 0 { if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19744 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19876 } else { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19778 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19910 } _sqlite3WalkSelect(tls, pWalker, pSel) } @@ -127732,7 +128743,7 @@ func _sqlite3ExpandSubquery(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int if (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias != 0 { (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3DbStrDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias) } else { - (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19816, libc.VaList(bp+8, pFrom)) + (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19948, libc.VaList(bp+8, pFrom)) } for (*TSelect)(unsafe.Pointer(pSel)).FpPrior != 0 { pSel = (*TSelect)(unsafe.Pointer(pSel)).FpPrior @@ -127896,7 +128907,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { return int32(WRC_Abort) } if (*TTable)(unsafe.Pointer(pTab)).FnTabRef >= uint32(0xffff) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19820, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19952, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) (*TSrcItem)(unsafe.Pointer(pFrom)).FpTab = uintptr(0) return int32(WRC_Abort) } @@ -127912,7 +128923,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_EnableView) == uint64(0) && (*TTable)(unsafe.Pointer(pTab)).FpSchema != (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19859, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19991, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } (*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect = _sqlite3SelectDup(tls, db, (*(*struct { FpSelect uintptr @@ -127927,7 +128938,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 44))).Fp)).FeVtabRisk) > libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15109, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15202, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } } _ = libc.Int32FromInt32(0) @@ -128064,7 +129075,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if iDb >= 0 { v10 = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName } else { - v10 = __ccgo_ts + 6590 + v10 = __ccgo_ts + 6654 } zSchemaName = v10 } @@ -128082,7 +129093,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if pNew != 0 { pX = pNew + 8 + uintptr((*TExprList)(unsafe.Pointer(pNew)).FnExpr-int32(1))*20 _ = libc.Int32FromInt32(0) - (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19890, libc.VaList(bp+8, zUName)) + (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20022, libc.VaList(bp+8, zUName)) libc.SetBitFieldPtr16Uint32(pX+8+4, libc.Uint32FromInt32(ENAME_TAB), 0, 0x3) libc.SetBitFieldPtr16Uint32(pX+8+4, libc.Uint32FromInt32(1), 7, 0x80) } @@ -128164,7 +129175,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, (*(*TExprList_item)(unsafe.Pointer(pNestedFrom + 8 + uintptr(j)*20))).FzEName) } else { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19895, libc.VaList(bp+8, zSchemaName, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20027, libc.VaList(bp+8, zSchemaName, zTabName, zName)) } if j == int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) { v13 = int32(ENAME_ROWID) @@ -128177,7 +129188,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } } else { if longNames != 0 { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12381, libc.VaList(bp+8, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12506, libc.VaList(bp+8, zTabName, zName)) libc.SetBitFieldPtr16Uint32(pX1+8+4, libc.Uint32FromInt32(ENAME_NAME), 0, 0x3) } else { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, zName) @@ -128197,9 +129208,9 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if !(tableSeen != 0) { if zTName != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19904, libc.VaList(bp+8, zTName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20036, libc.VaList(bp+8, zTName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19922, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20054, 0) } } } @@ -128213,7 +129224,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if (*TSelect)(unsafe.Pointer(p)).FpEList != 0 { if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpEList)).FnExpr > *(*int32)(unsafe.Pointer(db + 120 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19942, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20074, 0) return int32(WRC_Abort) } if elistFlags&uint32(libc.Int32FromInt32(EP_HasFunc)|libc.Int32FromInt32(EP_Subquery)) != uint32(0) { @@ -128575,12 +129586,12 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { pE = (*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFExpr _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(pE + 20)) == uintptr(0) || (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pE + 20)))).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19973, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20105, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct = -int32(1) } else { pKeyInfo = _sqlite3KeyInfoFromExprList(tls, pParse, *(*uintptr)(unsafe.Pointer(pE + 20)), 0, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistAddr = _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct, 0, 0, pKeyInfo, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20024, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20156, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } } if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab >= 0 { @@ -128606,7 +129617,7 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { (*TKeyInfo)(unsafe.Pointer(pKeyInfo1)).FnKeyField++ } _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab, (*TExprList)(unsafe.Pointer(pOBList)).FnExpr+nExtra, 0, pKeyInfo1, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20057, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20189, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } goto _1 _1: @@ -128931,16 +129942,16 @@ func _explainSimpleCount(tls *libc.TLS, pParse uintptr, pTab uintptr, pIdx uintp if int32((*TParse)(unsafe.Pointer(pParse)).Fexplain) == int32(2) { bCover = libc.BoolInt32(pIdx != uintptr(0) && ((*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) || !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 56))&0x3>>0)) == libc.Int32FromInt32(SQLITE_IDXTYPE_PRIMARYKEY)))) if bCover != 0 { - v1 = __ccgo_ts + 20090 + v1 = __ccgo_ts + 20222 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } if bCover != 0 { v2 = (*TIndex)(unsafe.Pointer(pIdx)).FzName } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20113, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20245, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) } } @@ -128972,7 +129983,7 @@ func _havingToWhereExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 ** statements AggInfo structure. */ if _sqlite3ExprIsConstantOrGroupBy(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, pExpr, (*TSelect)(unsafe.Pointer(pS)).FpGroupBy) != 0 && libc.BoolInt32((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse)) == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb - pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8130) + pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8255) if pNew != 0 { pWhere = (*TSelect)(unsafe.Pointer(pS)).FpWhere t = *(*TExpr)(unsafe.Pointer(pNew)) @@ -129132,7 +130143,7 @@ func _countOfViewOptimization(tls *libc.TLS, pParse uintptr, p uintptr) (r int32 return 0 } /* Result is an aggregate */ _ = libc.Int32FromInt32(0) - if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15844) != 0 { + if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15937) != 0 { return 0 } /* Is count() */ _ = libc.Int32FromInt32(0) @@ -129405,7 +130416,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { v1 = (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p0)).FpTab)).FzName } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20125, libc.VaList(bp+128, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20257, libc.VaList(bp+128, v1)) goto select_end } /* Clear the SF_UFSrcCheck flag. The check has already been performed, @@ -129508,7 +130519,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Catch mismatch in the declared columns of a view and the number of ** columns in the SELECT on the RHS */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) != (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20179, libc.VaList(bp+128, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20311, libc.VaList(bp+128, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) goto select_end } /* Do not attempt the usual optimizations (flattening and ORDER BY @@ -129646,12 +130657,12 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r ** string for the fake column name seems safer. */ if (*TSrcItem)(unsafe.Pointer(pItem1)).FcolUsed == uint64(0) && (*TSrcItem)(unsafe.Pointer(pItem1)).FzName != uintptr(0) { - _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1648, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) + _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1662, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) } /* Generate code for all sub-queries in the FROM clause */ pSub1 = (*TSrcItem)(unsafe.Pointer(pItem1)).FpSelect - if pSub1 == uintptr(0) { + if pSub1 == uintptr(0) || (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub != 0 { goto _10 } /* The code for a subquery should only be generated once. */ @@ -129692,7 +130703,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn, 0, addrTop) (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub = addrTop _sqlite3SelectDestInit(tls, bp+56, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20219, libc.VaList(bp+128, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20351, libc.VaList(bp+128, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+56) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow libc.SetBitFieldPtr16Uint32(pItem1+36+4, libc.Uint32FromInt32(1), 5, 0x20) @@ -129740,7 +130751,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { } _sqlite3SelectDestInit(tls, bp+56, int32(SRT_EphemTab), (*TSrcItem)(unsafe.Pointer(pItem1)).FiCursor) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20234, libc.VaList(bp+128, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20366, libc.VaList(bp+128, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+56) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow if onceAddr != 0 { @@ -130158,11 +131169,11 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r groupBySort = 0 } else { if (*(*TDistinctCtx)(unsafe.Pointer(bp))).FisTnct != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Distinct) == uint32(0) { - v44 = __ccgo_ts + 20250 + v44 = __ccgo_ts + 20382 } else { - v44 = __ccgo_ts + 20259 + v44 = __ccgo_ts + 20391 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19147, libc.VaList(bp+128, v44)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19234, libc.VaList(bp+128, v44)) groupBySort = int32(1) nGroupBy = (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr nCol = nGroupBy @@ -130486,7 +131497,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeResolveLabel(tls, v, addrEnd) } /* endif aggregate query */ if int32((*(*TDistinctCtx)(unsafe.Pointer(bp))).FeTnctType) == int32(WHERE_DISTINCT_UNORDERED) { - _explainTempTable(tls, pParse, __ccgo_ts+20250) + _explainTempTable(tls, pParse, __ccgo_ts+20382) } /* If there is an ORDER BY clause, then we need to sort the results ** and send them to the callback one by one. @@ -130504,6 +131515,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Control jumps to here if an error is encountered above, or upon ** successful coding of the SELECT. */ + goto select_end select_end: ; _ = libc.Int32FromInt32(0) @@ -130594,7 +131606,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr if !(i < nCol) { break } - z = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*4)))) + z = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*4)))) if z == uintptr(0) { goto malloc_failed } @@ -130610,7 +131622,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr } else { if int32((*TTabResult)(unsafe.Pointer(p)).FnColumn) != nCol { Xsqlite3_free(tls, (*TTabResult)(unsafe.Pointer(p)).FzErrMsg) - (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20268, 0) + (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20400, 0) (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) return int32(1) } @@ -130645,6 +131657,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr (*TTabResult)(unsafe.Pointer(p)).FnRow++ } return 0 + goto malloc_failed malloc_failed: ; (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) @@ -130700,7 +131713,7 @@ func Xsqlite3_get_table(tls *libc.TLS, db uintptr, zSql uintptr, pazResult uintp if (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg != 0 { if pzErrMsg != 0 { Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pzErrMsg))) - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+40, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+40, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) } Xsqlite3_free(tls, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg) } @@ -130870,7 +131883,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if isTemp != 0 { /* If TEMP was specified, then the trigger name may not be qualified. */ if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20333, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20465, 0) goto trigger_cleanup } iDb = int32(1) @@ -130911,7 +131924,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } _ = libc.Int32FromInt32(0) - _sqlite3FixInit(tls, bp+4, pParse, iDb, __ccgo_ts+20379, *(*uintptr)(unsafe.Pointer(bp))) + _sqlite3FixInit(tls, bp+4, pParse, iDb, __ccgo_ts+20511, *(*uintptr)(unsafe.Pointer(bp))) if _sqlite3FixSrcList(tls, bp+4, pTableName) != 0 { goto trigger_cleanup } @@ -130921,11 +131934,11 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_orphan_error } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20387, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20519, 0) goto trigger_orphan_error } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, db) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20428, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20560, 0) goto trigger_orphan_error } /* Check that the trigger name is not reserved and that no trigger of the @@ -130935,14 +131948,14 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 _ = libc.Int32FromInt32(0) goto trigger_cleanup } - if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20379, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { + if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20511, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { goto trigger_cleanup } _ = libc.Int32FromInt32(0) if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FpSchema+40, zName) != 0 { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20468, libc.VaList(bp+64, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20600, libc.VaList(bp+64, *(*uintptr)(unsafe.Pointer(bp)))) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -130951,8 +131964,8 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 } } /* Do not create a trigger on a system table */ - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6525, int32(7)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20494, 0) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6589, int32(7)) == 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20626, 0) goto trigger_cleanup } /* INSTEAD of triggers are only for views and views only support INSTEAD @@ -130960,15 +131973,15 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && tr_tm != int32(TK_INSTEAD) { if tr_tm == int32(TK_BEFORE) { - v1 = __ccgo_ts + 20532 + v1 = __ccgo_ts + 20664 } else { - v1 = __ccgo_ts + 20539 + v1 = __ccgo_ts + 20671 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20545, libc.VaList(bp+64, v1, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20677, libc.VaList(bp+64, v1, pTableName+8)) goto trigger_orphan_error } if !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) && tr_tm == int32(TK_INSTEAD) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20582, libc.VaList(bp+64, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20714, libc.VaList(bp+64, pTableName+8)) goto trigger_orphan_error } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -130988,9 +132001,9 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iTabDb == int32(1) { - v3 = __ccgo_ts + 6533 + v3 = __ccgo_ts + 6597 } else { - v3 = __ccgo_ts + 6066 + v3 = __ccgo_ts + 6130 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto trigger_cleanup @@ -131032,6 +132045,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 pColumns = uintptr(0) _ = libc.Int32FromInt32(0) (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger = pTrigger + goto trigger_cleanup trigger_cleanup: ; _sqlite3DbFree(tls, db, zName) @@ -131044,6 +132058,7 @@ trigger_cleanup: _ = libc.Int32FromInt32(0) } return + goto trigger_orphan_error trigger_orphan_error: ; if int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) == int32(1) { @@ -131090,7 +132105,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl pStepList = (*TTriggerStep)(unsafe.Pointer(pStepList)).FpNext } _sqlite3TokenInit(tls, bp+56, (*TTrigger)(unsafe.Pointer(pTrig)).FzName) - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20379, bp+56) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20511, bp+56) if _sqlite3FixTriggerStep(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).Fstep_list) != 0 || _sqlite3FixExpr(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).FpWhen) != 0 { goto triggerfinish_cleanup } @@ -131113,7 +132128,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl break } if (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget != uintptr(0) && _sqlite3ShadowTableName(tls, db, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20628, libc.VaList(bp+72, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20760, libc.VaList(bp+72, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) goto triggerfinish_cleanup } goto _1 @@ -131129,10 +132144,10 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) z = _sqlite3DbStrNDup(tls, db, (*TToken)(unsafe.Pointer(pAll)).Fz, uint64((*TToken)(unsafe.Pointer(pAll)).Fn)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20676, libc.VaList(bp+72, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20808, libc.VaList(bp+72, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) _sqlite3DbFree(tls, db, z) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20751, libc.VaList(bp+72, zName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20883, libc.VaList(bp+72, zName)), uint16(0)) } } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { @@ -131152,6 +132167,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } } } + goto triggerfinish_cleanup triggerfinish_cleanup: ; _sqlite3DeleteTrigger(tls, db, pTrig) @@ -131407,7 +132423,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int } if !(pTrigger != 0) { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20780, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20912, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, zDb) } @@ -131415,6 +132431,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int goto drop_trigger_cleanup } _sqlite3DropTriggerPtr(tls, pParse, pTrigger) + goto drop_trigger_cleanup drop_trigger_cleanup: ; _sqlite3SrcListDelete(tls, db, pName) @@ -131450,9 +132467,9 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { code = int32(SQLITE_DROP_TRIGGER) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6533 + v1 = __ccgo_ts + 6597 } else { - v1 = __ccgo_ts + 6066 + v1 = __ccgo_ts + 6130 } zTab = v1 if iDb == int32(1) { @@ -131467,7 +132484,7 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { v2 = _sqlite3GetVdbe(tls, pParse) v = v2 if v2 != uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20800, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20932, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropTrigger), iDb, 0, 0, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName, 0) } @@ -131603,11 +132620,11 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { if op != int32(TK_INSERT) { if op == int32(TK_DELETE) { - v1 = __ccgo_ts + 20862 + v1 = __ccgo_ts + 20994 } else { - v1 = __ccgo_ts + 20869 + v1 = __ccgo_ts + 21001 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20876, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21008, libc.VaList(bp+8, v1)) } (*TTrigger)(unsafe.Pointer(p)).Ftr_tm = uint8(TRIGGER_BEFORE) } else { @@ -131624,6 +132641,7 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, p = (*TTrigger)(unsafe.Pointer(p)).FpNext } } + goto exit_triggers_exist exit_triggers_exist: ; if pMask != 0 { @@ -131713,7 +132731,7 @@ func _isAsteriskTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pTerm)).FpRight)).Fop) != int32(TK_ASTERISK) { return 0 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20924, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21056, 0) return int32(1) } @@ -131778,6 +132796,81 @@ func _sqlite3ExpandReturning(tls *libc.TLS, pParse uintptr, pList uintptr, pTab return pNew } +// C documentation +// +// /* If the Expr node is a subquery or an EXISTS operator or an IN operator that +// ** uses a subquery, and if the subquery is SF_Correlated, then mark the +// ** expression as EP_VarSelect. +// */ +func _sqlite3ReturningSubqueryVarSelect(tls *libc.TLS, NotUsed uintptr, pExpr uintptr) (r int32) { + _ = NotUsed + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) && (*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 20)))).FselFlags&uint32(SF_Correlated) != uint32(0) { + *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** If the SELECT references the table pWalker->u.pTab, then do two things: +// ** +// ** (1) Mark the SELECT as as SF_Correlated. +// ** (2) Set pWalker->eCode to non-zero so that the caller will know +// ** that (1) has happened. +// */ +func _sqlite3ReturningSubqueryCorrelated(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + var i int32 + var pSrc uintptr + _, _ = i, pSrc + _ = libc.Int32FromInt32(0) + pSrc = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + _ = libc.Int32FromInt32(0) + i = 0 + for { + if !(i < (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) { + break + } + if (*(*TSrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i)*72))).FpTab == *(*uintptr)(unsafe.Pointer(pWalker + 24)) { + *(*Tu32)(unsafe.Pointer(pSelect + 4)) |= uint32(SF_Correlated) + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + break + } + goto _1 + _1: + ; + i++ + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Scan the expression list that is the argument to RETURNING looking +// ** for subqueries that depend on the table which is being modified in the +// ** statement that is hosting the RETURNING clause (pTab). Mark all such +// ** subqueries as SF_Correlated. If the subqueries are part of an +// ** expression, mark the expression as EP_VarSelect. +// ** +// ** https://sqlite.org/forum/forumpost/2c83569ce8945d39 +// */ +func _sqlite3ProcessReturningSubqueries(tls *libc.TLS, pEList uintptr, pTab uintptr) { + bp := tls.Alloc(32) + defer tls.Free(32) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint32(28)) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ExprWalkNoop) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3ReturningSubqueryCorrelated) + *(*uintptr)(unsafe.Pointer(bp + 24)) = pTab + _sqlite3WalkExprList(tls, bp, pEList) + if (*(*TWalker)(unsafe.Pointer(bp))).FeCode != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ReturningSubqueryVarSelect) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) + _sqlite3WalkExprList(tls, bp, pEList) + } +} + // C documentation // // /* @@ -131814,6 +132907,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab (*(*TSelect)(unsafe.Pointer(bp))).FpSrc = bp + 80 (*(*TSrcList)(unsafe.Pointer(bp + 80))).FnSrc = int32(1) (*(*TSrcItem)(unsafe.Pointer(bp + 80 + 8))).FpTab = pTab + (*(*TSrcItem)(unsafe.Pointer(bp + 80 + 8))).FzName = (*TTable)(unsafe.Pointer(pTab)).FzName /* tag-20240424-1 */ (*(*TSrcItem)(unsafe.Pointer(bp + 80 + 8))).FiCursor = -int32(1) _sqlite3SelectPrep(tls, pParse, bp, uintptr(0)) if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { @@ -131839,6 +132933,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab if _sqlite3ResolveExprListNames(tls, bp+160, pNew) == SQLITE_OK && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) { nCol = (*TExprList)(unsafe.Pointer(pNew)).FnExpr reg = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(1) + _sqlite3ProcessReturningSubqueries(tls, pNew, pTab) *(*int32)(unsafe.Pointer(pParse + 44)) += nCol + int32(2) (*TReturning)(unsafe.Pointer(pReturning)).FiRetReg = reg i = 0 @@ -131911,7 +133006,7 @@ func _codeTriggerProgram(tls *libc.TLS, pParse uintptr, pStepList uintptr, orcon (*TParse)(unsafe.Pointer(pParse)).FeOrconf = uint8(v2) _ = libc.Int32FromInt32(0) if (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6263, libc.VaList(bp+40, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6327, libc.VaList(bp+40, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) } switch int32((*TTriggerStep)(unsafe.Pointer(pStep)).Fop) { case int32(TK_UPDATE): @@ -132018,7 +133113,7 @@ func _codeRowTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab uintp v = _sqlite3GetVdbe(tls, bp+36) if v != 0 { if (*TTrigger)(unsafe.Pointer(pTrigger)).FzName != 0 { - _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+20966, libc.VaList(bp+328, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) + _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+21098, libc.VaList(bp+328, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) } /* If one was specified, code the WHEN clause. If it evaluates to false ** (or NULL) the sub-vdbe is immediately halted by jumping to the @@ -132732,7 +133827,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui chngPk = uint8(1) } else { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*12))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20980, libc.VaList(bp+80, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*12))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21112, libc.VaList(bp+80, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*12))).FzCnName)) goto update_cleanup } } @@ -132752,13 +133847,13 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui pRowidExpr = (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*20))).FpExpr iRowidExpr = i } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21016, libc.VaList(bp+80, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*20))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21148, libc.VaList(bp+80, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*20))).FzEName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto update_cleanup } } if j < 0 { - v11 = __ccgo_ts + 7905 + v11 = __ccgo_ts + 8030 } else { v11 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*12))).FzCnName } @@ -133454,8 +134549,9 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui ** that information. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21035) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21167) } + goto update_cleanup update_cleanup: ; _sqlite3AuthContextPop(tls, bp) @@ -133902,9 +134998,9 @@ func _sqlite3UpsertAnalyzeTarget(tls *libc.TLS, pParse uintptr, pTabList uintptr if nClause == 0 && (*TUpsert)(unsafe.Pointer(pUpsert)).FpNextUpsert == uintptr(0) { (*(*[16]uint8)(unsafe.Pointer(bp + 140)))[0] = uint8(0) } else { - Xsqlite3_snprintf(tls, int32(16), bp+140, __ccgo_ts+21048, libc.VaList(bp+168, nClause+int32(1))) + Xsqlite3_snprintf(tls, int32(16), bp+140, __ccgo_ts+21180, libc.VaList(bp+168, nClause+int32(1))) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21052, libc.VaList(bp+168, bp+140)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21184, libc.VaList(bp+168, bp+140)) return int32(SQLITE_ERROR) } goto _1 @@ -134010,7 +135106,7 @@ func _sqlite3UpsertDoUpdate(tls *libc.TLS, pParse uintptr, pUpsert uintptr, pTab i++ } i = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), iDataCur, 0, iPk, nPk) - _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12470, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12595, -int32(1)) _sqlite3MayAbort(tls, pParse) _sqlite3VdbeJumpHere(tls, v, i) } @@ -134093,7 +135189,7 @@ func _execSql(tls *libc.TLS, db uintptr, pzErrMsg uintptr, zSql uintptr) (r int3 ** corrupt the sqlite_schema.sql field with other kinds of statements ** then run VACUUM to get those statements to execute at inappropriate ** times. */ - if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21125, uint32(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21129, uint32(3)) == 0) { + if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21257, uint32(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21261, uint32(3)) == 0) { rc = _execSql(tls, db, pzErrMsg, zSubSql) if rc != SQLITE_OK { break @@ -134194,6 +135290,7 @@ func _sqlite3Vacuum(tls *libc.TLS, pParse uintptr, _pNm uintptr, pInto uintptr) _sqlite3VdbeAddOp2(tls, v, int32(OP_Vacuum), iDb, iIntoReg) _sqlite3VdbeUsesBtree(tls, v, iDb) } + goto build_vacuum_end build_vacuum_end: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pInto) @@ -134221,24 +135318,24 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p pDb = uintptr(0) /* Name of output file */ pgflags = uint32(PAGER_SYNCHRONOUS_OFF) /* sync flags for output db */ if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21133) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21265) return int32(SQLITE_ERROR) /* IMP: R-12218-18073 */ } if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive > int32(1) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21173) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21305) return int32(SQLITE_ERROR) /* IMP: R-15610-35227 */ } saved_openFlags = (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags if pOut != 0 { if Xsqlite3_value_type(tls, pOut) != int32(SQLITE_TEXT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21216) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21348) return int32(SQLITE_ERROR) } zOut = Xsqlite3_value_text(tls, pOut) *(*uint32)(unsafe.Pointer(db + 60)) &= uint32(^libc.Int32FromInt32(SQLITE_OPEN_READONLY)) *(*uint32)(unsafe.Pointer(db + 60)) |= uint32(libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE)) } else { - zOut = __ccgo_ts + 1648 + zOut = __ccgo_ts + 1662 } /* Save the current value of the database flags so that it can be ** restored before returning. Then set the writable-schema flag, and @@ -134270,7 +135367,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** to write the journal header file. */ nDb = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21234, libc.VaList(bp+24, zOut)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21366, libc.VaList(bp+24, zOut)) (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags = saved_openFlags if rc != SQLITE_OK { goto end_of_vacuum @@ -134284,7 +135381,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p *(*Ti64)(unsafe.Pointer(bp)) = 0 if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != uintptr(0) && (_sqlite3OsFileSize(tls, id, bp) != SQLITE_OK || *(*Ti64)(unsafe.Pointer(bp)) > 0) { rc = int32(SQLITE_ERROR) - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21257) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21389) goto end_of_vacuum } *(*Tu32)(unsafe.Pointer(db + 24)) |= uint32(DBFLAG_VacuumInto) @@ -134301,7 +135398,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** file. This is done before the sqlite3BtreeGetPageSize(pMain) call below, ** to ensure that we do not try to change the page-size on a WAL database. */ - rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14879) + rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14972) if rc != SQLITE_OK { goto end_of_vacuum } @@ -134332,11 +135429,11 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** in the temporary database. */ (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(nDb) /* force new CREATE statements into vacuum_db */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21284, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21416, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21392, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21524, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } @@ -134345,7 +135442,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** an "INSERT INTO vacuum_db.xxx SELECT * FROM main.xxx;" to copy ** the contents to the temporary database. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21446, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21578, libc.VaList(bp+24, zDbMain)) _ = libc.Int32FromInt32(0) *(*Tu32)(unsafe.Pointer(db + 24)) &= uint32(^libc.Int32FromInt32(DBFLAG_Vacuum)) if rc != SQLITE_OK { @@ -134356,7 +135453,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** associated storage, so all we have to do is copy their entries ** from the schema table. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21597, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21729, libc.VaList(bp+24, zDbMain)) if rc != 0 { goto end_of_vacuum } @@ -134398,6 +135495,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p nRes = _sqlite3BtreeGetRequestedReserve(tls, pTemp) rc = _sqlite3BtreeSetPageSize(tls, pMain, _sqlite3BtreeGetPageSize(tls, pTemp), nRes, int32(1)) } + goto end_of_vacuum end_of_vacuum: ; /* Restore the original value of db->flags */ @@ -134903,7 +136001,7 @@ func _addModuleArgument(tls *libc.TLS, pParse uintptr, pTable uintptr, zArg uint FazArg uintptr Fp uintptr })(unsafe.Pointer(pTable + 44))).FnArg+int32(3) >= *(*int32)(unsafe.Pointer(db + 120 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12700, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12825, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) } azModuleArg = _sqlite3DbRealloc(tls, db, (*(*struct { FnArg int32 @@ -135030,7 +136128,7 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { if pEnd != 0 { (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fn = uint32(int32((*TToken)(unsafe.Pointer(pEnd)).Fz)-int32((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) + (*TToken)(unsafe.Pointer(pEnd)).Fn } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21727, libc.VaList(bp+8, pParse+200)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21859, libc.VaList(bp+8, pParse+200)) /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. @@ -135040,11 +136138,11 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { ** by sqlite3StartTable(). */ iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+21751, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+21883, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*16))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) v = _sqlite3GetVdbe(tls, pParse) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) - zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21850, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) + zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21982, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, zWhere, uint16(0)) _sqlite3DbFree(tls, db, zStmt) v2 = pParse + 44 @@ -135134,7 +136232,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, break } if (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab == pTab { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21869, libc.VaList(bp+32, (*TTable)(unsafe.Pointer(pTab)).FzName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22001, libc.VaList(bp+32, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(SQLITE_LOCKED) } goto _1 @@ -135171,6 +136269,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = bp (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+8, bp+16) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -135179,9 +136279,9 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, _ = libc.Int32FromInt32(0) if SQLITE_OK != rc { if *(*uintptr)(unsafe.Pointer(bp + 16)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21911, libc.VaList(bp+32, zModuleName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22043, libc.VaList(bp+32, zModuleName)) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3795, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer(bp + 16)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3859, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer(bp + 16)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) } _sqlite3DbFree(tls, db, pVTable) @@ -135194,8 +136294,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*TModule)(unsafe.Pointer(pMod)).FnRefModule++ (*TVTable)(unsafe.Pointer(pVTable)).FnRef = int32(1) if (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared == 0 { - zFormat = __ccgo_ts + 21941 - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+32, (*TTable)(unsafe.Pointer(pTab)).FzName)) + zFormat = __ccgo_ts + 22073 + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+32, zModuleName)) _sqlite3VtabUnlock(tls, pVTable) rc = int32(SQLITE_ERROR) } else { @@ -135220,7 +136320,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(iCol < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } - zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*12, __ccgo_ts+1648) + zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*12, __ccgo_ts+1662) i = 0 nType = _sqlite3Strlen30(tls, zType) i = 0 @@ -135228,7 +136328,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(i < nType) { break } - if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16585, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { + if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16672, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { break } goto _3 @@ -135312,13 +136412,13 @@ func _sqlite3VtabCallConnect(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 44))).FazArg)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21987, libc.VaList(bp+16, zModule)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22119, libc.VaList(bp+16, zModule)) rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxConnect, bp) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) (*TParse)(unsafe.Pointer(pParse)).Frc = rc } _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) @@ -135400,7 +136500,7 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, ** error. Otherwise, do nothing. */ if pMod == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxDestroy == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21987, libc.VaList(bp+8, zMod)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22119, libc.VaList(bp+8, zMod)) rc = int32(SQLITE_ERROR) } else { rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate, pzErr) @@ -135426,18 +136526,42 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r int32) { bp := tls.Alloc(304) defer tls.Free(304) - var initBusy, rc int32 - var pCtx, pIdx, pNew, pTab, v2 uintptr - var v1 Ti16 + var i, initBusy, rc int32 + var pCtx, pIdx, pNew, pTab, z, v3 uintptr + var v2 Ti16 var _ /* sParse at bp+0 */ TParse - _, _, _, _, _, _, _, _ = initBusy, pCtx, pIdx, pNew, pTab, rc, v1, v2 + var _ /* tokenType at bp+284 */ int32 + _, _, _, _, _, _, _, _, _, _ = i, initBusy, pCtx, pIdx, pNew, pTab, rc, z, v2, v3 rc = SQLITE_OK + /* Verify that the first two keywords in the CREATE TABLE statement + ** really are "CREATE" and "TABLE". If this is not the case, then + ** sqlite3_declare_vtab() is being misused. + */ + z = zCreateTable + i = 0 + for { + if !(_aKeyword1[i] != 0) { + break + } + *(*int32)(unsafe.Pointer(bp + 284)) = 0 + for cond := true; cond; cond = *(*int32)(unsafe.Pointer(bp + 284)) == int32(TK_SPACE) { + z += uintptr(_sqlite3GetToken(tls, z, bp+284)) + } + if *(*int32)(unsafe.Pointer(bp + 284)) != int32(_aKeyword1[i]) { + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+22138, 0) + return int32(SQLITE_ERROR) + } + goto _1 + _1: + ; + i++ + } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pCtx = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(pCtx != 0) || (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared != 0 { - _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(155155))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(156227))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(155157)) + return _sqlite3MisuseError(tls, int32(156229)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _ = libc.Int32FromInt32(0) @@ -135451,7 +136575,10 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i initBusy = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) (*(*TParse)(unsafe.Pointer(bp))).FnQueryLoop = int16(1) - if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) && (*(*TParse)(unsafe.Pointer(bp))).FpNewTable != uintptr(0) && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && int32((*TTable)(unsafe.Pointer((*(*TParse)(unsafe.Pointer(bp))).FpNewTable)).FeTabType) == TABTYP_NORM { + if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if !((*TTable)(unsafe.Pointer(pTab)).FaCol != 0) { pNew = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable @@ -135461,9 +136588,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 44))).FpDfltList) - v1 = (*TTable)(unsafe.Pointer(pNew)).FnCol - (*TTable)(unsafe.Pointer(pTab)).FnCol = v1 - (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v1 + v2 = (*TTable)(unsafe.Pointer(pNew)).FnCol + (*TTable)(unsafe.Pointer(pTab)).FnCol = v2 + (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v2 *(*Tu32)(unsafe.Pointer(pTab + 28)) |= (*TTable)(unsafe.Pointer(pNew)).FtabFlags & uint32(libc.Int32FromInt32(TF_WithoutRowid)|libc.Int32FromInt32(TF_NoVisibleRowid)) (*TTable)(unsafe.Pointer(pNew)).FnCol = 0 (*TTable)(unsafe.Pointer(pNew)).FaCol = uintptr(0) @@ -135485,11 +136612,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared = int32(1) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - v2 = __ccgo_ts + 3795 + v3 = __ccgo_ts + 3859 } else { - v2 = uintptr(0) + v3 = uintptr(0) } - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v2, libc.VaList(bp+296, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v3, libc.VaList(bp+296, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) rc = int32(SQLITE_ERROR) } @@ -135506,6 +136633,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i return rc } +var _aKeyword1 = [3]Tu8{ + 0: uint8(TK_CREATE), + 1: uint8(TK_TABLE), +} + // C documentation // // /* @@ -135967,7 +137099,7 @@ func _sqlite3VtabEponymousTableInit(tls *libc.TLS, pParse uintptr, pMod uintptr) _addModuleArgument(tls, pParse, pTab, _sqlite3DbStrDup(tls, db, (*TTable)(unsafe.Pointer(pTab)).FzName)) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer(pModule)).FxConnect, bp) if rc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3VtabEponymousTableClear(tls, db, pMod) } @@ -136034,7 +137166,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) p = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(p != 0) { - rc = _sqlite3MisuseError(tls, int32(155651)) + rc = _sqlite3MisuseError(tls, int32(156723)) } else { _ = libc.Int32FromInt32(0) ap = va @@ -136048,7 +137180,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in case int32(SQLITE_VTAB_USES_ALL_SCHEMAS): (*TVTable)(unsafe.Pointer((*TVtabCtx)(unsafe.Pointer(p)).FpVTable)).FbAllSchemas = uint8(1) default: - rc = _sqlite3MisuseError(tls, int32(155673)) + rc = _sqlite3MisuseError(tls, int32(156745)) break } _ = ap @@ -136804,10 +137936,10 @@ type WhereInfo1 = TWhereInfo1 func _explainIndexColumnName(tls *libc.TLS, pIdx uintptr, i int32) (r uintptr) { i = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) if i == -int32(2) { - return __ccgo_ts + 22006 + return __ccgo_ts + 22151 } if i == -int32(1) { - return __ccgo_ts + 16694 + return __ccgo_ts + 16781 } return (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(i)*12))).FzCnName } @@ -136827,10 +137959,10 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, _ = i _ = libc.Int32FromInt32(0) if bAnd != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22013, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22158, int32(5)) } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22019, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22164, int32(1)) } i = 0 for { @@ -136838,7 +137970,7 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13090, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13215, int32(1)) } Xsqlite3_str_appendall(tls, pStr, _explainIndexColumnName(tls, pIdx, iTerm+i)) goto _1 @@ -136847,11 +137979,11 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5170, int32(1)) } Xsqlite3_str_append(tls, pStr, zOp, int32(1)) if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22019, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22164, int32(1)) } i = 0 for { @@ -136859,16 +137991,16 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13090, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13215, int32(1)) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5108, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5172, int32(1)) goto _2 _2: ; i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5170, int32(1)) } } @@ -136901,7 +138033,7 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { if int32(nEq) == 0 && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) == uint32(0) { return } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22021, int32(2)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22166, int32(2)) i = 0 for { if !(i < int32(nEq)) { @@ -136909,12 +138041,12 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } z = _explainIndexColumnName(tls, pIndex, i) if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22013, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22158, int32(5)) } if i >= int32(nSkip) { - v2 = __ccgo_ts + 22024 + v2 = __ccgo_ts + 22169 } else { - v2 = __ccgo_ts + 22029 + v2 = __ccgo_ts + 22174 } Xsqlite3_str_appendf(tls, pStr, v2, libc.VaList(bp+8, z)) goto _1 @@ -136924,13 +138056,13 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } j = i if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_BTM_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22037) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22182) i = int32(1) } if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_TOP_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22039) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22184) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5170, int32(1)) } // C documentation @@ -136973,11 +138105,11 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _sqlite3StrAccumInit(tls, bp, db, bp+24, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if isSearch != 0 { - v2 = __ccgo_ts + 22041 + v2 = __ccgo_ts + 22186 } else { - v2 = __ccgo_ts + 22048 + v2 = __ccgo_ts + 22193 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22053, libc.VaList(bp+136, v2, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22198, libc.VaList(bp+136, v2, pItem)) if flags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_VIRTUALTABLE)) == uint32(0) { zFmt = uintptr(0) _ = libc.Int32FromInt32(0) @@ -136985,37 +138117,37 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _ = libc.Int32FromInt32(0) if !((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) && int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 56))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { if isSearch != 0 { - zFmt = __ccgo_ts + 11253 + zFmt = __ccgo_ts + 11378 } } else { if flags&uint32(WHERE_PARTIALIDX) != 0 { - zFmt = __ccgo_ts + 22059 + zFmt = __ccgo_ts + 22204 } else { if flags&uint32(WHERE_AUTO_INDEX) != 0 { - zFmt = __ccgo_ts + 22092 + zFmt = __ccgo_ts + 22237 } else { if flags&uint32(WHERE_IDX_ONLY) != 0 { - zFmt = __ccgo_ts + 22117 + zFmt = __ccgo_ts + 22262 } else { - zFmt = __ccgo_ts + 22135 + zFmt = __ccgo_ts + 22280 } } } } if zFmt != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22144, int32(7)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22289, int32(7)) Xsqlite3_str_appendf(tls, bp, zFmt, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) _explainIndexRange(tls, bp, pLoop) } } else { if flags&uint32(WHERE_IPK) != uint32(0) && flags&uint32(WHERE_CONSTRAINT) != uint32(0) { - zRowid = __ccgo_ts + 16694 - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22152, libc.VaList(bp+136, zRowid)) + zRowid = __ccgo_ts + 16781 + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22297, libc.VaList(bp+136, zRowid)) if flags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != 0 { cRangeOp = uint8('=') } else { if flags&uint32(WHERE_BOTH_LIMIT) == uint32(WHERE_BOTH_LIMIT) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22183, libc.VaList(bp+136, zRowid)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22328, libc.VaList(bp+136, zRowid)) cRangeOp = uint8('<') } else { if flags&uint32(WHERE_BTM_LIMIT) != 0 { @@ -137026,10 +138158,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22193, libc.VaList(bp+136, int32(cRangeOp))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22338, libc.VaList(bp+136, int32(cRangeOp))) } else { if flags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22198, libc.VaList(bp+136, (*(*struct { + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22343, libc.VaList(bp+136, (*(*struct { FidxNum int32 F__ccgo4 uint8 FisOrdered Ti8 @@ -137048,7 +138180,7 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } if int32((*TSrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&int32(JT_LEFT) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22225, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22370, 0) } zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) @@ -137082,14 +138214,14 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Initial space for EQP output string */ _sqlite3StrAccumInit(tls, bp, db, bp+24, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22236, libc.VaList(bp+136, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22381, libc.VaList(bp+136, pItem)) pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_IPK) != 0 { pTab = (*TSrcItem)(unsafe.Pointer(pItem)).FpTab if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22024, libc.VaList(bp+136, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*12))).FzCnName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22169, libc.VaList(bp+136, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*12))).FzCnName)) } else { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22257, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22402, 0) } } else { i = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) @@ -137099,16 +138231,16 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp } z = _explainIndexColumnName(tls, (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex, i) if i > int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22013, int32(5)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22158, int32(5)) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22024, libc.VaList(bp+136, z)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22169, libc.VaList(bp+136, z)) goto _1 _1: ; i++ } } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5170, int32(1)) zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) return ret @@ -137974,6 +139106,35 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 } } +// C documentation +// +// /* +// ** Loop pLoop is a WHERE_INDEXED level that uses at least one IN(...) +// ** operator. Return true if level pLoop is guaranteed to visit only one +// ** row for each key generated for the index. +// */ +func _whereLoopIsOneRow(tls *libc.TLS, pLoop uintptr) (r int32) { + var ii int32 + _ = ii + if (*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FonError != 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) == 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq) == int32((*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FnKeyCol) { + ii = 0 + for { + if !(ii < int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq)) { + break + } + if int32((*TWhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(ii)*4)))).FeOperator)&(libc.Int32FromInt32(WO_IS)|libc.Int32FromInt32(WO_ISNULL)) != 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) + } + return 0 +} + // C documentation // // /* @@ -138704,7 +139865,10 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI _ = libc.Int32FromInt32(0) } /* Record the instruction used to terminate the loop. */ - if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 { + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 || (*(*struct { + FnIn int32 + FaInLoop uintptr + })(unsafe.Pointer(pLevel + 64))).FnIn != 0 && regBignull == 0 && _whereLoopIsOneRow(tls, pLoop) != 0 { (*TWhereLevel)(unsafe.Pointer(pLevel)).Fop = uint8(OP_Noop) } else { if bRev != 0 { @@ -138881,7 +140045,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** eliminating duplicates from other WHERE clauses, the action for each ** sub-WHERE clause is to to invoke the main loop body as a subroutine. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22265, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22410, 0) ii = 0 for { if !(ii < (*TWhereClause)(unsafe.Pointer(pOrWc)).FnTerm) { @@ -138904,7 +140068,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI pOrExpr = pAndExpr } /* Loop through table entries that match term pOrTerm. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22280, libc.VaList(bp+72, ii+int32(1))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22425, libc.VaList(bp+72, ii+int32(1))) pSubWInfo = _sqlite3WhereBegin(tls, pParse, pOrTab, pOrExpr, uintptr(0), uintptr(0), uintptr(0), uint16(WHERE_OR_SUBCLAUSE), iCovCur) _ = libc.Int32FromInt32(0) if pSubWInfo != 0 { @@ -139075,6 +140239,12 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** iLoop==3: Code all remaining expressions. ** ** An effort is made to skip unnecessary iterations of the loop. + ** + ** This optimization of causing simple query restrictions to occur before + ** more complex one is call the "push-down" optimization in MySQL. Here + ** in SQLite, the name is "MySQL push-down", since there is also another + ** totally unrelated optimization called "WHERE-clause push-down". + ** Sometimes the qualifier is omitted, resulting in an ambiguity, so beware. */ if pIdx != 0 { v60 = int32(1) @@ -139276,6 +140446,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** to the results of the OUTER JOIN. The following loop generates the ** appropriate WHERE clause constraint checks. tag-20220513a. */ + goto code_outer_join_constraints code_outer_join_constraints: ; pTerm = (*TWhereClause)(unsafe.Pointer(pWC)).Fa @@ -139380,9 +140551,9 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe defer tls.Free(96) var addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, nPk, r, v3 int32 var mAll TBitmask - var pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr + var pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr var _ /* sFrom at bp+0 */ TSrcList - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pRJ = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpRJ @@ -139391,13 +140562,18 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop pTabItem = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*72 mAll = uint64(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22289, libc.VaList(bp+88, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22434, libc.VaList(bp+88, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) k = 0 for { if !(k < iLevel) { break } + _ = libc.Int32FromInt32(0) + pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760 + uintptr(k)*88))).FiFrom)*72 mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760 + uintptr(k)*88))).FpWLoop)).FmaskSelf + if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 36 + 4))&0x20>>5)) != 0 { + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pRight)).FpSelect)).FpEList)).FnExpr-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760 + uintptr(k)*88))).FiTabCur) iIdxCur = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760 + uintptr(k)*88))).FiIdxCur if iIdxCur != 0 { @@ -139932,19 +141108,19 @@ var _aOp = [4]struct { FeOp2 uint8 }{ 0: { - FzOp: __ccgo_ts + 16543, + FzOp: __ccgo_ts + 16630, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_MATCH), }, 1: { - FzOp: __ccgo_ts + 15874, + FzOp: __ccgo_ts + 15967, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_GLOB), }, 2: { - FzOp: __ccgo_ts + 15353, + FzOp: __ccgo_ts + 15446, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_LIKE), }, 3: { - FzOp: __ccgo_ts + 22303, + FzOp: __ccgo_ts + 22448, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_REGEXP), }, } @@ -140603,7 +141779,7 @@ func _exprMightBeIndexed2(tls *libc.TLS, pFrom uintptr, aiCurCol uintptr, pExpr goto _4 } _ = libc.Int32FromInt32(0) - if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*20))).FpExpr, iCur) == 0 && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_STRING) { + if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*20))).FpExpr, iCur) == 0 && !(_sqlite3ExprIsConstant(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*20))).FpExpr) != 0) { *(*int32)(unsafe.Pointer(aiCurCol)) = iCur *(*int32)(unsafe.Pointer(aiCurCol + 1*4)) = -int32(2) return int32(1) @@ -140763,7 +141939,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { extraRight = x - uint64(1) /* ON clause terms may not be used with an index ** on left table of a LEFT JOIN. Ticket #3015 */ if prereqAll>>libc.Int32FromInt32(1) >= x { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22310, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22455, 0) return } } else { @@ -140775,7 +141951,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { ** if there is a RIGHT or FULL JOIN in the query. This makes SQLite ** more like other systems, and also preserves legacy. */ if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc > 0 && int32((*(*TSrcItem)(unsafe.Pointer(pSrc + 8))).Ffg.Fjointype)&int32(JT_LTORJ) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22310, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22455, 0) return } *(*Tu32)(unsafe.Pointer(pExpr + 4)) &= uint32(^libc.Int32FromInt32(EP_InnerON)) @@ -140866,7 +142042,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { if op == int32(TK_ISNULL) && !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != libc.Uint32FromInt32(0)) && 0 == _sqlite3ExprCanBeNull(tls, pLeft) { _ = libc.Int32FromInt32(0) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_TRUEFALSE) /* See tag-20230504-1 */ - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 7891 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 8016 *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_IsFalse)) (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqAll = uint64(0) (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator = uint16(0) @@ -140969,7 +142145,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { *(*Tu8)(unsafe.Pointer(pC)) = uint8(int32(c1) + int32(1)) } if *(*int32)(unsafe.Pointer(bp + 8)) != 0 { - v13 = __ccgo_ts + 22351 + v13 = __ccgo_ts + 22496 } else { v13 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } @@ -141242,6 +142418,9 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*48))).FleftCursor != iCsr { return } + if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*48))).FprereqRight != uint64(0) { + return + } goto _1 _1: ; @@ -141272,10 +142451,12 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { } /* All conditions are met. Add the terms to the where-clause object. */ _ = libc.Int32FromInt32(0) - _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) - if (*TSelect)(unsafe.Pointer(p)).FiOffset > 0 { + if (*TSelect)(unsafe.Pointer(p)).FiOffset != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiOffset, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpRight, iCsr, int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } + if (*TSelect)(unsafe.Pointer(p)).FiOffset == 0 || (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { + _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) + } } } @@ -141507,7 +142688,7 @@ func _sqlite3WhereTabFuncArgs(tls *libc.TLS, pParse uintptr, pItem uintptr, pWC k++ } if k >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22358, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22503, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) return } pColRef = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_COLUMN), uintptr(0), 0) @@ -141842,6 +143023,7 @@ func _whereOrInsert(tls *libc.TLS, pSet uintptr, prereq TBitmask, rRun TLogEst, return 0 } } + goto whereOrInsert_done whereOrInsert_done: ; (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq = prereq @@ -141948,6 +143130,50 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { return uintptr(0) } +// C documentation +// +// /* +// ** Term pTerm is guaranteed to be a WO_IN term. It may be a component term +// ** of a vector IN expression of the form "(x, y, ...) IN (SELECT ...)". +// ** This function checks to see if the term is compatible with an index +// ** column with affinity idxaff (one of the SQLITE_AFF_XYZ values). If so, +// ** it returns a pointer to the name of the collation sequence (e.g. "BINARY" +// ** or "NOCASE") used by the comparison in pTerm. If it is not compatible +// ** with affinity idxaff, NULL is returned. +// */ +func _indexInAffinityOk(tls *libc.TLS, pParse uintptr, pTerm uintptr, idxaff Tu8) (r uintptr) { + bp := tls.Alloc(64) + defer tls.Free(64) + var iField int32 + var pRet, pX, v1 uintptr + var _ /* inexpr at bp+0 */ TExpr + _, _, _, _ = iField, pRet, pX, v1 + pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr + _ = libc.Int32FromInt32(0) + if _sqlite3ExprIsVector(tls, (*TExpr)(unsafe.Pointer(pX)).FpLeft) != 0 { + iField = (*(*struct { + FleftColumn int32 + FiField int32 + })(unsafe.Pointer(pTerm + 24))).FiField - int32(1) + (*(*TExpr)(unsafe.Pointer(bp))).Fflags = uint32(0) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_EQ) + (*(*TExpr)(unsafe.Pointer(bp))).FpLeft = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pX)).FpLeft + 20)) + 8 + uintptr(iField)*20))).FpExpr + _ = libc.Int32FromInt32(0) + (*(*TExpr)(unsafe.Pointer(bp))).FpRight = (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pX + 20)))).FpEList + 8 + uintptr(iField)*20))).FpExpr + pX = bp + } + if _sqlite3IndexAffinityOk(tls, pX, idxaff) != 0 { + pRet = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pRet != 0 { + v1 = (*TCollSeq)(unsafe.Pointer(pRet)).FzName + } else { + v1 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + return v1 + } + return uintptr(0) +} + // C documentation // // /* @@ -141958,10 +143184,10 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { var iColumn Ti16 var iCur, j, k int32 - var pColl, pParse, pTerm, pWC, pX, v2 uintptr - var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, v2, v3, v5 /* The term being tested */ - k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ + var pColl, pParse, pTerm, pWC, pX, zCollName, v2, v5 uintptr + var v3, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, zCollName, v2, v3, v5, v6 /* The term being tested */ + k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ _ = libc.Int32FromInt32(0) pWC = (*TWhereScan)(unsafe.Pointer(pScan)).FpWC for int32(1) != 0 { @@ -142009,22 +143235,32 @@ func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { if (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName != 0 && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_ISNULL) == 0 { pParse = (*TWhereInfo)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr - if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { - goto _1 - } - _ = libc.Int32FromInt32(0) - pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) - if pColl == uintptr(0) { - pColl = (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FpDfltColl + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_IN) != 0 { + zCollName = _indexInAffinityOk(tls, pParse, pTerm, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) + if !(zCollName != 0) { + goto _1 + } + } else { + if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { + goto _1 + } + _ = libc.Int32FromInt32(0) + pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pColl != 0 { + v5 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName + } else { + v5 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + zCollName = v5 } - if _sqlite3StrICmp(tls, (*TCollSeq)(unsafe.Pointer(pColl)).FzName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { + if _sqlite3StrICmp(tls, zCollName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { goto _1 } } - if v5 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v5 { + if v6 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v6 { pX = (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight } - if v5 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 28)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 72))) { + if v6 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 28)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 72))) { goto _1 } (*TWhereScan)(unsafe.Pointer(pScan)).FpWC = pWC @@ -142518,7 +143754,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea /* Make the automatic index a partial index if there are terms in the ** WHERE clause (or the ON clause of a LEFT join) that constrain which ** rows of the target table (pSrc) that can be used. */ - if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)) != 0 { + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom), 0) != 0 { pPartial = _sqlite3ExprAnd(tls, pParse, pPartial, _sqlite3ExprDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr, 0)) } if _termCanDriveIndex(tls, pTerm, pSrc, notReady) != 0 { @@ -142534,7 +143770,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea } cMask = v2 if !(sentWarning != 0) { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_WARNING)|libc.Int32FromInt32(1)<>14)) != 0) { eDistinct = int32(2) + libc.BoolInt32(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_SORTBYGROUP) != 0) } else { if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_GROUPBY) != 0 { @@ -143029,7 +144266,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB */ pIdxInfo = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(uint32(72)+(libc.Uint32FromInt64(12)+libc.Uint32FromInt64(8))*uint32(nTerm)+uint32(8)*uint32(nOrderBy)+uint32(24)+uint32(4)*uint32(nTerm))) if pIdxInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1632, 0) return uintptr(0) } pHidden = pIdxInfo + 1*72 @@ -143121,7 +144358,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB break } pExpr1 = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*20))).FpExpr - if _sqlite3ExprIsConstant(tls, pExpr1) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr1) != 0 { goto _11 } _ = libc.Int32FromInt32(0) @@ -143200,9 +144437,9 @@ func _vtabBestIndex(tls *libc.TLS, pParse uintptr, pTab uintptr, p uintptr) (r i _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) } else { if !((*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) } } } @@ -144574,7 +145811,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 56))&0x4>>2)) != 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) } - if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 56))&0x100>>8)) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 56))&0x100>>8)) != 0 && int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 36 + 4))&0x2>>1)) == 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ) | libc.Int32FromInt32(WO_IN) | libc.Int32FromInt32(WO_IS)) } } @@ -144826,10 +146063,13 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } } } - /* Set rCostIdx to the cost of visiting selected rows in index. Add - ** it to pNew->rRun, which is currently set to the cost of the index - ** seek only. Then, if this is a non-covering index, add the cost of - ** visiting the rows in the main table. */ + /* Set rCostIdx to the estimated cost of visiting selected rows in the + ** index. The estimate is the sum of two values: + ** 1. The cost of doing one search-by-key to find the first matching + ** entry + ** 2. Stepping forward in the index pNew->nOut times to find all + ** additional matching entries. + */ _ = libc.Int32FromInt32(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 56))&0x3>>0)) == int32(SQLITE_IDXTYPE_IPK) { /* The pProbe->szIdxRow is low for an IPK table since the interior @@ -144840,7 +146080,14 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } else { rCostIdx = int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut) + int32(1) + int32(15)*int32((*TIndex)(unsafe.Pointer(pProbe)).FszIdxRow)/int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FszTabRow)) } - (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + rCostIdx = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + /* Estimate the cost of running the loop. If all data is coming + ** from the index, then this is just the cost of doing the index + ** lookup and scan. But if some data is coming out of the main table, + ** we also have to add in the cost of doing pNew->nOut searches to + ** locate the row in the main table that corresponds to the index entry. + */ + (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = rCostIdx if (*TWhereLoop)(unsafe.Pointer(pNew)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IDX_ONLY)|libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_EXPRIDX)) == uint32(0) { (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun, int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut)+int32(16))) } @@ -144946,7 +146193,7 @@ func _indexMightHelpWithOrderBy(tls *libc.TLS, pBuilder uintptr, pIndex uintptr, if pExpr == uintptr(0) { goto _2 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { + if (int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) || int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_COLUMN)) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) < 0 { return int32(1) } @@ -145283,7 +146530,7 @@ func _wherePartIdxExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, pPart uintpt if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) != int32(TK_COLUMN) { return } - if !(_sqlite3ExprIsConstant(tls, pRight) != 0) { + if !(_sqlite3ExprIsConstant(tls, uintptr(0), pRight) != 0) { return } if !(_sqlite3IsBinary(tls, _sqlite3ExprCompareCollSeq(tls, pParse, pPart)) != 0) { @@ -145618,7 +146865,7 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in ** unique index is used (making the index functionally non-unique) ** then the sqlite_stat1 data becomes important for scoring the ** plan */ - *(*Tu32)(unsafe.Pointer(pTab + 28)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 28)) |= uint32(TF_MaybeReanalyze) } _sqlite3Stat4ProbeFree(tls, (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec) (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = 0 @@ -145647,6 +146894,31 @@ func _isLimitTerm(tls *libc.TLS, pTerm uintptr) (r int32) { return libc.BoolInt32(int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) >= int32(SQLITE_INDEX_CONSTRAINT_LIMIT) && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) <= int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } +// C documentation +// +// /* +// ** Return true if the first nCons constraints in the pUsage array are +// ** marked as in-use (have argvIndex>0). False otherwise. +// */ +func _allConstraintsUsed(tls *libc.TLS, aUsage uintptr, nCons int32) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < nCons) { + break + } + if (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer(aUsage + uintptr(ii)*8))).FargvIndex <= 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + // C documentation // // /* @@ -145744,7 +147016,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if v3 >= 0 { j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).FiTermOffset if iTerm >= nConstraint || j < 0 || j >= (*TWhereClause)(unsafe.Pointer(pWC)).FnTerm || *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(iTerm)*4)) != uintptr(0) || int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22431, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22576, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } pTerm1 = (*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(j)*48 @@ -145791,13 +147063,19 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, _ = libc.Int32FromInt32(0) } } + /* Unless pbRetryLimit is non-NULL, there should be no LIMIT/OFFSET + ** terms. And if there are any, they should follow all other terms. */ + _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if _isLimitTerm(tls, pTerm1) != 0 && *(*int32)(unsafe.Pointer(pbIn)) != 0 { + _ = libc.Int32FromInt32(0) + if _isLimitTerm(tls, pTerm1) != 0 && (*(*int32)(unsafe.Pointer(pbIn)) != 0 || !(_allConstraintsUsed(tls, pUsage, i) != 0)) { /* If there is an IN(...) term handled as an == (separate call to ** xFilter for each value on the RHS of the IN) and a LIMIT or - ** OFFSET term handled as well, the plan is unusable. Set output - ** variable *pbRetryLimit to true to tell the caller to retry with - ** LIMIT and OFFSET disabled. */ + ** OFFSET term handled as well, the plan is unusable. Similarly, + ** if there is a LIMIT/OFFSET and there are other unused terms, + ** the plan cannot be used. In these cases set variable *pbRetryLimit + ** to true to tell the caller to retry with LIMIT and OFFSET + ** disabled. */ if (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FneedToFreeIdxStr != 0 { Xsqlite3_free(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = uintptr(0) @@ -145822,7 +147100,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(i)*4)) == uintptr(0) { /* The non-zero argvIdx values must be contiguous. Raise an ** error if they are not */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22431, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22576, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } goto _6 @@ -145975,7 +147253,7 @@ func Xsqlite3_vtab_rhs_value(tls *libc.TLS, pIdxInfo uintptr, iCons int32, ppVal pVal = uintptr(0) rc = SQLITE_OK if iCons < 0 || iCons >= (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint { - rc = _sqlite3MisuseError(tls, int32(165251)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(166453)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 20 + uintptr(iCons)*4)) == uintptr(0) { pTerm = (*TWhereClause)(unsafe.Pointer((*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC)).Fa + uintptr((*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset)*48 @@ -146423,7 +147701,7 @@ func _whereLoopAddAll(tls *libc.TLS, pBuilder uintptr) (r int32) { if rc != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { if rc == int32(SQLITE_DONE) { /* We hit the query planner search limit set by iPlanLimit */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22457, 0) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22602, 0) rc = SQLITE_OK } else { break @@ -146812,7 +148090,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, } p = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*20))).FpExpr mTerm = _sqlite3WhereExprUsage(tls, pWInfo+496, p) - if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, p) != 0) { + if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, uintptr(0), p) != 0) { goto _9 } if mTerm & ^orderDistinctMask == uint64(0) { @@ -147233,7 +148511,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) iLoop++ } if nFrom == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22492, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22637, 0) _sqlite3DbFreeNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pSpace) return int32(SQLITE_ERROR) } @@ -147283,9 +148561,8 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) if int32((*TWherePath)(unsafe.Pointer(pFrom)).FisOrdered) == (*TExprList)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_ORDERED) } - if (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy != 0 && int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) > (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr { - (*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = int8((*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr) - } + /* vvv--- See check-in [12ad822d9b827777] on 2023-03-16 ---vvv */ + _ = libc.Int32FromInt32(0) } else { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FrevMask = (*TWherePath)(unsafe.Pointer(pFrom)).FrevLoop if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) <= 0 { @@ -147323,6 +148600,97 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) return SQLITE_OK } +// C documentation +// +// /* +// ** This routine implements a heuristic designed to improve query planning. +// ** This routine is called in between the first and second call to +// ** wherePathSolver(). Hence the name "Interstage" "Heuristic". +// ** +// ** The first call to wherePathSolver() (hereafter just "solver()") computes +// ** the best path without regard to the order of the outputs. The second call +// ** to the solver() builds upon the first call to try to find an alternative +// ** path that satisfies the ORDER BY clause. +// ** +// ** This routine looks at the results of the first solver() run, and for +// ** every FROM clause term in the resulting query plan that uses an equality +// ** constraint against an index, disable other WhereLoops for that same +// ** FROM clause term that would try to do a full-table scan. This prevents +// ** an index search from being converted into a full-table scan in order to +// ** satisfy an ORDER BY clause, since even though we might get slightly better +// ** performance using the full-scan without sorting if the output size +// ** estimates are very precise, we might also get severe performance +// ** degradation using the full-scan if the output size estimate is too large. +// ** It is better to err on the side of caution. +// ** +// ** Except, if the first solver() call generated a full-table scan in an outer +// ** loop then stop this analysis at the first full-scan, since the second +// ** solver() run might try to swap that full-scan for another in order to +// ** get the output into the correct order. In other words, we allow a +// ** rewrite like this: +// ** +// ** First Solver() Second Solver() +// ** |-- SCAN t1 |-- SCAN t2 +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** The purpose of this routine is to disallow rewrites such as: +// ** +// ** First Solver() Second Solver() +// ** |-- SEARCH t1 |-- SCAN t2 <--- bad! +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** See test cases in test/whereN.test for the real-world query that +// ** originally provoked this heuristic. +// */ +func _whereInterstageHeuristic(tls *libc.TLS, pWInfo uintptr) { + var i int32 + var iTab Tu8 + var p, pLoop uintptr + _, _, _, _ = i, iTab, p, pLoop + i = 0 + for { + if !(i < int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)) { + break + } + p = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760 + uintptr(i)*88))).FpWLoop + if p == uintptr(0) { + break + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { + goto _1 + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_NULL)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != uint32(0) { + iTab = (*TWhereLoop)(unsafe.Pointer(p)).FiTab + pLoop = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpLoops + for { + if !(pLoop != 0) { + break + } + if int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab) != int32(iTab) { + goto _2 + } + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_CONSTRAINT)|libc.Int32FromInt32(WHERE_AUTO_INDEX)) != uint32(0) { + /* Auto-index and index-constrained loops allowed to remain */ + goto _2 + } + (*TWhereLoop)(unsafe.Pointer(pLoop)).Fprereq = uint64(-libc.Int32FromInt32(1)) /* Prevent 2nd solver() from using this one */ + goto _2 + _2: + ; + pLoop = (*TWhereLoop)(unsafe.Pointer(pLoop)).FpNextLoop + } + } else { + break + } + goto _1 + _1: + ; + i++ + } +} + // C documentation // // /* @@ -147641,7 +149009,7 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasStat1) == uint32(0) { break } - *(*Tu32)(unsafe.Pointer(pTab + 28)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 28)) |= uint32(TF_MaybeReanalyze) if i >= int32(1) && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&reqFlags == reqFlags && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_INDEXED)) != uint32(0) { if int32(nSearch) > int32((*TTable)(unsafe.Pointer(pTab)).FnRowLogEst) { *(*Tu32)(unsafe.Pointer(pLoop + 40)) |= uint32(WHERE_BLOOMFILTER) @@ -147656,6 +149024,69 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { } } +// C documentation +// +// /* +// ** Expression Node callback for sqlite3ExprCanReturnSubtype(). +// ** +// ** Only a function call is able to return a subtype. So if the node +// ** is not a function call, return WRC_Prune immediately. +// ** +// ** A function call is able to return a subtype if it has the +// ** SQLITE_RESULT_SUBTYPE property. +// ** +// ** Assume that every function is able to pass-through a subtype from +// ** one of its argument (using sqlite3_result_value()). Most functions +// ** are not this way, but we don't have a mechanism to distinguish those +// ** that are from those that are not, so assume they all work this way. +// ** That means that if one of its arguments is another function and that +// ** other function is able to return a subtype, then this function is +// ** able to return a subtype. +// */ +func _exprNodeCanReturnSubtype(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef uintptr + var n, v1 int32 + _, _, _, _ = db, n, pDef, v1 + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_FUNCTION) { + return int32(WRC_Prune) + } + _ = libc.Int32FromInt32(0) + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + if *(*uintptr)(unsafe.Pointer(pExpr + 20)) != 0 { + v1 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 20)))).FnExpr + } else { + v1 = 0 + } + n = v1 + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + return int32(WRC_Prune) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Return TRUE if expression pExpr is able to return a subtype. +// ** +// ** A TRUE return does not guarantee that a subtype will be returned. +// ** It only indicates that a subtype return is possible. False positives +// ** are acceptable as they only disable an optimization. False negatives, +// ** on the other hand, can lead to incorrect answers. +// */ +func _sqlite3ExprCanReturnSubtype(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + bp := tls.Alloc(32) + defer tls.Free(32) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint32(28)) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeCanReturnSubtype) + _sqlite3WalkExpr(tls, bp, pExpr) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) +} + // C documentation // // /* @@ -147670,9 +149101,9 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { // ** references to the corresponding column of the index. // */ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur int32, pTabItem uintptr) { - var db, p, pArg, pDef, pExpr, pTab uintptr - var i, j, n, v2 int32 - _, _, _, _, _, _, _, _, _, _ = db, i, j, n, p, pArg, pDef, pExpr, pTab, v2 + var i, j int32 + var p, pArg, pExpr, pTab uintptr + _, _, _, _, _, _ = i, j, p, pArg, pExpr, pTab _ = libc.Int32FromInt32(0) pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable i = 0 @@ -147690,22 +149121,14 @@ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur i goto _1 } } - if _sqlite3ExprIsConstant(tls, pExpr) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) != 0 { goto _1 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) { - db = (*TParse)(unsafe.Pointer(pParse)).Fdb - _ = libc.Int32FromInt32(0) - if *(*uintptr)(unsafe.Pointer(pExpr + 20)) != 0 { - v2 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 20)))).FnExpr - } else { - v2 = 0 - } - n = v2 - pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) - if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { - goto _1 - } + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) && _sqlite3ExprCanReturnSubtype(tls, pParse, pExpr) != 0 { + /* Functions that might set a subtype should not be replaced by the + ** value taken from an expression index since the index omits the + ** subtype. https://sqlite.org/forum/forumpost/68d284c86b082c3e */ + goto _1 } p = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) if p == uintptr(0) { @@ -147879,7 +149302,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** bits in a Bitmask */ if (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc > int32(libc.Uint32FromInt64(8)*libc.Uint32FromInt32(8)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22510, libc.VaList(bp+40, int32(libc.Uint32FromInt64(8)*libc.Uint32FromInt32(8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22655, libc.VaList(bp+40, int32(libc.Uint32FromInt64(8)*libc.Uint32FromInt32(8)))) return uintptr(0) } /* This function normally generates a nested loop for all tables in @@ -147952,7 +149375,9 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if int32(wctrlFlags)&int32(WHERE_WANT_DISTINCT) != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_DistinctOpt)) == uint32(0) { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_UNIQUE) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22538, 0) + if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FselFlags&uint32(SF_MultiValue) == uint32(0) { + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22683, 0) + } } else { /* Assign a bit from the bitmask to every term in the FROM clause. ** @@ -148086,6 +149511,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy != 0 { + _whereInterstageHeuristic(tls, pWInfo) _wherePathSolver(tls, pWInfo, int16(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut)+int32(1))) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto whereBeginError @@ -148384,6 +149810,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiEndWhere = _sqlite3VdbeCurrentAddr(tls, v) return pWInfo /* Jump here if malloc fails */ + goto whereBeginError whereBeginError: ; if pWInfo != 0 { @@ -148407,10 +149834,10 @@ whereBeginError: // ** sqlite3WhereBegin() for additional information. // */ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { - var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, r1, ws, x, v4, v7 int32 - var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr + var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, r1, ws, x, v4, v7 int32 + var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pTabList = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList @@ -148553,7 +149980,14 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { addr = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfPos), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin) _ = libc.Int32FromInt32(0) if ws&int32(WHERE_IDX_ONLY) == 0 { + pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*72 _ = libc.Int32FromInt32(0) + if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 36 + 4))&0x20>>5)) != 0 { + n1 = (*TSrcItem)(unsafe.Pointer(pSrc)).FregResult + _ = libc.Int32FromInt32(0) + m = int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FnCol) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, n1, n1+m-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur) } if ws&int32(WHERE_INDEXED) != 0 || ws&int32(WHERE_MULTI_OR) != 0 && *(*uintptr)(unsafe.Pointer(&(*TWhereLevel)(unsafe.Pointer(pLevel)).Fu)) != 0 { @@ -148602,6 +150036,7 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { ** OP_Rowid becomes OP_Null. */ if int32(uint32(*(*uint16)(unsafe.Pointer(pTabItem + 36 + 4))&0x20>>5)) != 0 { + _ = libc.Int32FromInt32(0) _translateColumnToCopy(tls, pParse, (*TWhereLevel)(unsafe.Pointer(pLevel)).FaddrBody, (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur, (*TSrcItem)(unsafe.Pointer(pTabItem)).FregResult, 0) goto _9 } @@ -148976,9 +150411,10 @@ func _nth_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) _ = nArg _ = apArg return + goto error_out error_out: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22556, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22701, -int32(1)) } func _nth_valueFinalizeFunc(tls *libc.TLS, pCtx uintptr) { @@ -149166,7 +150602,7 @@ func _ntileStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { if (*TNtileCtx)(unsafe.Pointer(p)).FnTotal == 0 { (*TNtileCtx)(unsafe.Pointer(p)).FnParam = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apArg))) if (*TNtileCtx)(unsafe.Pointer(p)).FnParam <= 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22612, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22757, -int32(1)) } } (*TNtileCtx)(unsafe.Pointer(p)).FnTotal++ @@ -149494,7 +150930,7 @@ func _windowFind(tls *libc.TLS, pParse uintptr, pList uintptr, zName uintptr) (r p = (*TWindow)(unsafe.Pointer(p)).FpNextWin } if p == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22657, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22802, libc.VaList(bp+8, zName)) } return p } @@ -149545,12 +150981,12 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin _sqlite3WindowChain(tls, pParse, pWin, pList) } if int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) == int32(TK_RANGE) && ((*TWindow)(unsafe.Pointer(pWin)).FpStart != 0 || (*TWindow)(unsafe.Pointer(pWin)).FpEnd != 0) && ((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy == uintptr(0) || (*TExprList)(unsafe.Pointer((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy)).FnExpr != int32(1)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22676, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22821, 0) } else { if (*TFuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TWindow)(unsafe.Pointer(pWin)).FpFilter != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22747, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22892, 0) } else { aUp = [8]struct { FzFunc uintptr @@ -149623,7 +151059,7 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin (*TWindow)(unsafe.Pointer(pWin)).FeEnd = uint8(aUp[i].FeEnd) (*TWindow)(unsafe.Pointer(pWin)).FeExclude = uint8(0) if int32((*TWindow)(unsafe.Pointer(pWin)).FeStart) == int32(TK_FOLLOWING) { - (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8130) + (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8255) } break } @@ -149911,7 +151347,7 @@ func _disallowAggregatesInOrderByCb(tls *libc.TLS, pWalker uintptr, pExpr uintpt defer tls.Free(16) if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_FUNCTION) && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { _ = libc.Int32FromInt32(0) - _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22810, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) + _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22955, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) } return WRC_Continue } @@ -150054,7 +151490,7 @@ func _sqlite3WindowRewrite(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { ** keep everything legal in this case. */ if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1722)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1782)) } pSub = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(bp)), pSrc, pWhere, pGroupBy, pHaving, pSort, uint32(0), uintptr(0)) (*TSelect)(unsafe.Pointer(p)).FpSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), uintptr(0), uintptr(0)) @@ -150159,7 +151595,7 @@ func _sqlite3WindowListDelete(tls *libc.TLS, db uintptr, p uintptr) { // ** variable values in the expression tree. // */ func _sqlite3WindowOffsetExpr(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r uintptr) { - if 0 == _sqlite3ExprIsConstant(tls, pExpr) { + if 0 == _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) { if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameExprUnmap(tls, pParse, pExpr) } @@ -150205,7 +151641,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 ** frame boundary. */ if eStart == int32(TK_CURRENT) && eEnd == int32(TK_PRECEDING) || eStart == int32(TK_FOLLOWING) && (eEnd == int32(TK_PRECEDING) || eEnd == int32(TK_CURRENT)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22836, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22981, 0) goto windowAllocErr } pWin = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(100)) @@ -150223,6 +151659,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 (*TWindow)(unsafe.Pointer(pWin)).FpEnd = _sqlite3WindowOffsetExpr(tls, pParse, pEnd) (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3WindowOffsetExpr(tls, pParse, pStart) return pWin + goto windowAllocErr windowAllocErr: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pEnd) @@ -150272,18 +151709,18 @@ func _sqlite3WindowChain(tls *libc.TLS, pParse uintptr, pWin uintptr, pList uint zErr = uintptr(0) /* Check for errors */ if (*TWindow)(unsafe.Pointer(pWin)).FpPartition != 0 { - zErr = __ccgo_ts + 22868 + zErr = __ccgo_ts + 23013 } else { if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 && (*TWindow)(unsafe.Pointer(pWin)).FpOrderBy != 0 { - zErr = __ccgo_ts + 22885 + zErr = __ccgo_ts + 23030 } else { if int32((*TWindow)(unsafe.Pointer(pExist)).FbImplicitFrame) == 0 { - zErr = __ccgo_ts + 22901 + zErr = __ccgo_ts + 23046 } } } if zErr != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22921, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23066, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) } else { (*TWindow)(unsafe.Pointer(pWin)).FpPartition = _sqlite3ExprListDup(tls, db, (*TWindow)(unsafe.Pointer(pExist)).FpPartition, 0) if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 { @@ -150311,7 +151748,7 @@ func _sqlite3WindowAttach(tls *libc.TLS, pParse uintptr, p uintptr, pWin uintptr *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(libc.Int32FromInt32(EP_WinFunc) | libc.Int32FromInt32(EP_FullSize)) (*TWindow)(unsafe.Pointer(pWin)).FpOwner = p if (*TExpr)(unsafe.Pointer(p)).Fflags&uint32(EP_Distinct) != 0 && int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) != int32(TK_FILTER) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22954, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23099, 0) } } else { _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pWin) @@ -150513,7 +151950,7 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regZero) if eCond >= int32(WINDOW_STARTING_NUM) { regString = _sqlite3GetTempReg(tls, pParse) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1648, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1662, -int32(1)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, _sqlite3VdbeCurrentAddr(tls, v)+int32(2), reg) _sqlite3VdbeChangeP5(tls, v, uint16(libc.Int32FromInt32(SQLITE_AFF_NUMERIC)|libc.Int32FromInt32(SQLITE_JUMPIFNULL))) _ = libc.Int32FromInt32(0) @@ -150534,11 +151971,11 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { } var _azErr = [5]uintptr{ - 0: __ccgo_ts + 23001, - 1: __ccgo_ts + 23054, - 2: __ccgo_ts + 22556, - 3: __ccgo_ts + 23105, - 4: __ccgo_ts + 23157, + 0: __ccgo_ts + 23146, + 1: __ccgo_ts + 23199, + 2: __ccgo_ts + 22701, + 3: __ccgo_ts + 23250, + 4: __ccgo_ts + 23302, } var _aOp1 = [5]int32{ @@ -151310,7 +152747,7 @@ func _windowCodeRangeTest(tls *libc.TLS, p uintptr, op int32, csr1 int32, regVal ** the add/subtract is skipped for these, as required. If reg1 is a NULL, ** then the arithmetic is performed, but since adding or subtracting from ** NULL is always NULL anyway, this case is handled as required too. */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1648, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1662, -int32(1)) addrGe = _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, 0, reg1) if op == int32(OP_Ge) && arith == int32(OP_Add) || op == int32(OP_Le) && arith == int32(OP_Subtract) { _sqlite3VdbeAddOp3(tls, v, op, reg2, lbl, reg1) @@ -152351,11 +153788,11 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { cnt++ if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != 0 || (*TSelect)(unsafe.Pointer(pLoop)).FpLimit != 0 { if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != uintptr(0) { - v1 = __ccgo_ts + 23207 + v1 = __ccgo_ts + 23352 } else { - v1 = __ccgo_ts + 23216 + v1 = __ccgo_ts + 23361 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23222, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23367, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) break } } @@ -152364,7 +153801,7 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { mxSelect = v2 } if v3 && v2 > 0 && cnt > mxSelect { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23264, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23409, 0) } } } @@ -152384,6 +153821,23 @@ func _attachWithToSelect(tls *libc.TLS, pParse uintptr, pSelect uintptr, pWith u return pSelect } +// C documentation +// +// /* Memory allocator for parser stack resizing. This is a thin wrapper around +// ** sqlite3_realloc() that includes a call to sqlite3FaultSim() to facilitate +// ** testing. +// */ +func _parserStackRealloc(tls *libc.TLS, pOld uintptr, newSize Tsqlite3_uint64) (r uintptr) { + var v1 uintptr + _ = v1 + if _sqlite3FaultSim(tls, int32(700)) != 0 { + v1 = uintptr(0) + } else { + v1 = Xsqlite3_realloc(tls, pOld, int32(newSize)) + } + return v1 +} + // C documentation // // /* Construct a new Expr object from a single token */ @@ -152453,7 +153907,7 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId _ = p p = _sqlite3ExprListAppend(tls, pParse, pPrior, uintptr(0)) if (hasCollate != 0 || sortOrder != -int32(1)) && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23298, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23443, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) } _sqlite3ExprListSetName(tls, pParse, p, pIdToken, int32(1)) return p @@ -152503,6 +153957,9 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser // ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser // ** sqlite3ParserCTX_* As sqlite3ParserARG_ except for %extra_context +// ** YYREALLOC Name of the realloc() function to use +// ** YYFREE Name of the free() function to use +// ** YYDYNSTACK True if stack space should be extended on heap // ** YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** YYNSTATE the combined number of states. @@ -152516,31 +153973,33 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** YY_NO_ACTION The yy_action[] code for no-op // ** YY_MIN_REDUCE Minimum value for reduce actions // ** YY_MAX_REDUCE Maximum value for reduce actions +// ** YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type TYYMINORTYPE = struct { Fyy0 [0]TToken - Fyy33 [0]uintptr - Fyy41 [0]uintptr - Fyy47 [0]uintptr - Fyy131 [0]uintptr - Fyy180 [0]TTrigEvent - Fyy231 [0]struct { + Fyy14 [0]uintptr + Fyy59 [0]uintptr + Fyy67 [0]uintptr + Fyy122 [0]uintptr + Fyy132 [0]uintptr + Fyy144 [0]int32 + Fyy168 [0]uintptr + Fyy203 [0]uintptr + Fyy211 [0]uintptr + Fyy269 [0]TOnOrUsing + Fyy286 [0]TTrigEvent + Fyy383 [0]struct { Fvalue int32 Fmask int32 } - Fyy254 [0]uintptr - Fyy285 [0]Tu32 - Fyy322 [0]uintptr - Fyy385 [0]uintptr - Fyy394 [0]int32 - Fyy444 [0]uintptr - Fyy516 [0]Tu8 - Fyy521 [0]uintptr - Fyy522 [0]uintptr - Fyy528 [0]uintptr - Fyy561 [0]TOnOrUsing - Fyy595 [0]TFrameBound + Fyy391 [0]Tu32 + Fyy427 [0]uintptr + Fyy454 [0]uintptr + Fyy462 [0]Tu8 + Fyy509 [0]TFrameBound + Fyy555 [0]uintptr Fyyinit int32 F__ccgo_pad20 [4]byte } @@ -152558,6 +154017,13 @@ type YYMINORTYPE = TYYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -152610,2152 +154076,2194 @@ type YYMINORTYPE = TYYMINORTYPE // ** yy_default[] Default action for each state. // ** // *********** Begin parsing tables **********************************************/ -var _yy_action = [2100]uint16{ - 0: uint16(572), - 1: uint16(210), - 2: uint16(572), - 3: uint16(119), - 4: uint16(116), - 5: uint16(231), - 6: uint16(572), - 7: uint16(119), - 8: uint16(116), - 9: uint16(231), - 10: uint16(572), - 11: uint16(1317), - 12: uint16(379), - 13: uint16(1296), - 14: uint16(410), - 15: uint16(566), - 16: uint16(566), - 17: uint16(566), - 18: uint16(572), - 19: uint16(411), - 20: uint16(380), - 21: uint16(1317), - 22: uint16(1279), - 23: uint16(42), - 24: uint16(42), - 25: uint16(42), - 26: uint16(42), - 27: uint16(210), - 28: uint16(1529), - 29: uint16(72), - 30: uint16(72), - 31: uint16(974), - 32: uint16(421), - 33: uint16(42), - 34: uint16(42), - 35: uint16(495), - 36: uint16(305), - 37: uint16(281), - 38: uint16(305), - 39: uint16(975), - 40: uint16(399), - 41: uint16(72), - 42: uint16(72), - 43: uint16(126), - 44: uint16(127), - 45: uint16(81), - 46: uint16(1217), - 47: uint16(1217), - 48: uint16(1054), - 49: uint16(1057), - 50: uint16(1044), - 51: uint16(1044), - 52: uint16(124), - 53: uint16(124), - 54: uint16(125), - 55: uint16(125), - 56: uint16(125), - 57: uint16(125), - 58: uint16(480), - 59: uint16(411), - 60: uint16(1244), - 61: uint16(1), - 62: uint16(1), - 63: uint16(578), - 64: uint16(2), - 65: uint16(1248), - 66: uint16(554), - 67: uint16(119), - 68: uint16(116), - 69: uint16(231), - 70: uint16(319), - 71: uint16(484), - 72: uint16(147), - 73: uint16(484), - 74: uint16(528), - 75: uint16(119), - 76: uint16(116), - 77: uint16(231), - 78: uint16(533), - 79: uint16(1330), - 80: uint16(419), - 81: uint16(527), - 82: uint16(143), - 83: uint16(126), - 84: uint16(127), - 85: uint16(81), - 86: uint16(1217), - 87: uint16(1217), - 88: uint16(1054), - 89: uint16(1057), - 90: uint16(1044), - 91: uint16(1044), - 92: uint16(124), - 93: uint16(124), - 94: uint16(125), - 95: uint16(125), - 96: uint16(125), - 97: uint16(125), - 98: uint16(119), - 99: uint16(116), - 100: uint16(231), - 101: uint16(329), - 102: uint16(123), - 103: uint16(123), - 104: uint16(123), - 105: uint16(123), - 106: uint16(122), - 107: uint16(122), - 108: uint16(121), - 109: uint16(121), - 110: uint16(121), - 111: uint16(120), - 112: uint16(117), - 113: uint16(448), - 114: uint16(286), - 115: uint16(286), - 116: uint16(286), - 117: uint16(286), - 118: uint16(446), - 119: uint16(446), - 120: uint16(446), - 121: uint16(1568), - 122: uint16(378), - 123: uint16(1570), - 124: uint16(1193), - 125: uint16(377), - 126: uint16(1164), - 127: uint16(569), - 128: uint16(1164), - 129: uint16(569), - 130: uint16(411), - 131: uint16(1568), - 132: uint16(541), - 133: uint16(261), - 134: uint16(228), - 135: uint16(448), - 136: uint16(102), - 137: uint16(146), - 138: uint16(453), - 139: uint16(318), - 140: uint16(563), - 141: uint16(242), - 142: uint16(123), - 143: uint16(123), - 144: uint16(123), - 145: uint16(123), - 146: uint16(122), - 147: uint16(122), - 148: uint16(121), - 149: uint16(121), - 150: uint16(121), - 151: uint16(120), - 152: uint16(117), - 153: uint16(448), - 154: uint16(126), - 155: uint16(127), - 156: uint16(81), - 157: uint16(1217), - 158: uint16(1217), - 159: uint16(1054), - 160: uint16(1057), - 161: uint16(1044), - 162: uint16(1044), - 163: uint16(124), - 164: uint16(124), - 165: uint16(125), - 166: uint16(125), - 167: uint16(125), - 168: uint16(125), - 169: uint16(143), - 170: uint16(296), - 171: uint16(1193), - 172: uint16(341), - 173: uint16(452), - 174: uint16(121), - 175: uint16(121), - 176: uint16(121), - 177: uint16(120), - 178: uint16(117), - 179: uint16(448), - 180: uint16(128), - 181: uint16(1193), - 182: uint16(1194), - 183: uint16(1193), - 184: uint16(149), - 185: uint16(445), - 186: uint16(444), - 187: uint16(572), - 188: uint16(120), - 189: uint16(117), - 190: uint16(448), - 191: uint16(125), - 192: uint16(125), - 193: uint16(125), - 194: uint16(125), - 195: uint16(118), - 196: uint16(123), - 197: uint16(123), - 198: uint16(123), - 199: uint16(123), - 200: uint16(122), - 201: uint16(122), - 202: uint16(121), - 203: uint16(121), - 204: uint16(121), - 205: uint16(120), - 206: uint16(117), - 207: uint16(448), - 208: uint16(458), - 209: uint16(114), - 210: uint16(13), - 211: uint16(13), - 212: uint16(550), - 213: uint16(123), - 214: uint16(123), - 215: uint16(123), - 216: uint16(123), - 217: uint16(122), - 218: uint16(122), - 219: uint16(121), - 220: uint16(121), - 221: uint16(121), - 222: uint16(120), - 223: uint16(117), - 224: uint16(448), - 225: uint16(424), - 226: uint16(318), - 227: uint16(563), - 228: uint16(1193), - 229: uint16(1194), - 230: uint16(1193), - 231: uint16(150), - 232: uint16(1225), - 233: uint16(411), - 234: uint16(1225), - 235: uint16(125), - 236: uint16(125), - 237: uint16(125), - 238: uint16(125), - 239: uint16(123), - 240: uint16(123), - 241: uint16(123), - 242: uint16(123), - 243: uint16(122), - 244: uint16(122), - 245: uint16(121), - 246: uint16(121), - 247: uint16(121), - 248: uint16(120), - 249: uint16(117), - 250: uint16(448), - 251: uint16(469), - 252: uint16(344), - 253: uint16(1041), - 254: uint16(1041), - 255: uint16(1055), - 256: uint16(1058), - 257: uint16(126), - 258: uint16(127), - 259: uint16(81), - 260: uint16(1217), - 261: uint16(1217), - 262: uint16(1054), - 263: uint16(1057), - 264: uint16(1044), - 265: uint16(1044), - 266: uint16(124), - 267: uint16(124), - 268: uint16(125), - 269: uint16(125), - 270: uint16(125), - 271: uint16(125), - 272: uint16(1282), - 273: uint16(526), - 274: uint16(224), - 275: uint16(1193), - 276: uint16(572), - 277: uint16(411), - 278: uint16(226), - 279: uint16(519), - 280: uint16(177), - 281: uint16(83), - 282: uint16(84), - 283: uint16(123), - 284: uint16(123), - 285: uint16(123), - 286: uint16(123), - 287: uint16(122), - 288: uint16(122), - 289: uint16(121), - 290: uint16(121), - 291: uint16(121), - 292: uint16(120), - 293: uint16(117), - 294: uint16(448), - 295: uint16(1010), - 296: uint16(16), - 297: uint16(16), - 298: uint16(1193), - 299: uint16(134), - 300: uint16(134), - 301: uint16(126), - 302: uint16(127), - 303: uint16(81), - 304: uint16(1217), - 305: uint16(1217), - 306: uint16(1054), - 307: uint16(1057), - 308: uint16(1044), - 309: uint16(1044), - 310: uint16(124), - 311: uint16(124), - 312: uint16(125), - 313: uint16(125), - 314: uint16(125), - 315: uint16(125), - 316: uint16(123), - 317: uint16(123), - 318: uint16(123), - 319: uint16(123), - 320: uint16(122), - 321: uint16(122), - 322: uint16(121), - 323: uint16(121), - 324: uint16(121), - 325: uint16(120), - 326: uint16(117), - 327: uint16(448), - 328: uint16(1045), - 329: uint16(550), - 330: uint16(1193), - 331: uint16(375), - 332: uint16(1193), - 333: uint16(1194), - 334: uint16(1193), - 335: uint16(254), - 336: uint16(1438), - 337: uint16(401), - 338: uint16(508), - 339: uint16(505), - 340: uint16(504), - 341: uint16(112), - 342: uint16(564), - 343: uint16(570), +var _yy_action = [2142]uint16{ + 0: uint16(576), + 1: uint16(128), + 2: uint16(125), + 3: uint16(232), + 4: uint16(1622), + 5: uint16(549), + 6: uint16(576), + 7: uint16(1290), + 8: uint16(1281), + 9: uint16(576), + 10: uint16(328), + 11: uint16(576), + 12: uint16(1300), + 13: uint16(212), + 14: uint16(576), + 15: uint16(128), + 16: uint16(125), + 17: uint16(232), + 18: uint16(578), + 19: uint16(412), + 20: uint16(578), + 21: uint16(391), + 22: uint16(1542), + 23: uint16(51), + 24: uint16(51), + 25: uint16(523), + 26: uint16(405), + 27: uint16(1293), + 28: uint16(529), + 29: uint16(51), + 30: uint16(51), + 31: uint16(983), + 32: uint16(51), + 33: uint16(51), + 34: uint16(81), + 35: uint16(81), + 36: uint16(1107), + 37: uint16(61), + 38: uint16(61), + 39: uint16(984), + 40: uint16(1107), + 41: uint16(1292), + 42: uint16(380), + 43: uint16(135), + 44: uint16(136), + 45: uint16(90), + 46: uint16(1228), + 47: uint16(1228), + 48: uint16(1063), + 49: uint16(1066), + 50: uint16(1053), + 51: uint16(1053), + 52: uint16(133), + 53: uint16(133), + 54: uint16(134), + 55: uint16(134), + 56: uint16(134), + 57: uint16(134), + 58: uint16(1577), + 59: uint16(412), + 60: uint16(287), + 61: uint16(287), + 62: uint16(7), + 63: uint16(287), + 64: uint16(287), + 65: uint16(422), + 66: uint16(1050), + 67: uint16(1050), + 68: uint16(1064), + 69: uint16(1067), + 70: uint16(289), + 71: uint16(556), + 72: uint16(492), + 73: uint16(573), + 74: uint16(524), + 75: uint16(561), + 76: uint16(573), + 77: uint16(497), + 78: uint16(561), + 79: uint16(482), + 80: uint16(530), + 81: uint16(262), + 82: uint16(229), + 83: uint16(135), + 84: uint16(136), + 85: uint16(90), + 86: uint16(1228), + 87: uint16(1228), + 88: uint16(1063), + 89: uint16(1066), + 90: uint16(1053), + 91: uint16(1053), + 92: uint16(133), + 93: uint16(133), + 94: uint16(134), + 95: uint16(134), + 96: uint16(134), + 97: uint16(134), + 98: uint16(128), + 99: uint16(125), + 100: uint16(232), + 101: uint16(1506), + 102: uint16(132), + 103: uint16(132), + 104: uint16(132), + 105: uint16(132), + 106: uint16(131), + 107: uint16(131), + 108: uint16(130), + 109: uint16(130), + 110: uint16(130), + 111: uint16(129), + 112: uint16(126), + 113: uint16(450), + 114: uint16(1204), + 115: uint16(1255), + 116: uint16(1), + 117: uint16(1), + 118: uint16(582), + 119: uint16(2), + 120: uint16(1259), + 121: uint16(1571), + 122: uint16(420), + 123: uint16(1582), + 124: uint16(379), + 125: uint16(320), + 126: uint16(1174), + 127: uint16(153), + 128: uint16(1174), + 129: uint16(1584), + 130: uint16(412), + 131: uint16(378), + 132: uint16(1582), + 133: uint16(543), + 134: uint16(1341), + 135: uint16(330), + 136: uint16(111), + 137: uint16(570), + 138: uint16(570), + 139: uint16(570), + 140: uint16(293), + 141: uint16(1054), + 142: uint16(132), + 143: uint16(132), + 144: uint16(132), + 145: uint16(132), + 146: uint16(131), + 147: uint16(131), + 148: uint16(130), + 149: uint16(130), + 150: uint16(130), + 151: uint16(129), + 152: uint16(126), + 153: uint16(450), + 154: uint16(135), + 155: uint16(136), + 156: uint16(90), + 157: uint16(1228), + 158: uint16(1228), + 159: uint16(1063), + 160: uint16(1066), + 161: uint16(1053), + 162: uint16(1053), + 163: uint16(133), + 164: uint16(133), + 165: uint16(134), + 166: uint16(134), + 167: uint16(134), + 168: uint16(134), + 169: uint16(287), + 170: uint16(287), + 171: uint16(1204), + 172: uint16(1205), + 173: uint16(1204), + 174: uint16(255), + 175: uint16(287), + 176: uint16(287), + 177: uint16(510), + 178: uint16(507), + 179: uint16(506), + 180: uint16(137), + 181: uint16(455), + 182: uint16(573), + 183: uint16(212), + 184: uint16(561), + 185: uint16(447), + 186: uint16(446), + 187: uint16(505), + 188: uint16(573), + 189: uint16(1616), + 190: uint16(561), + 191: uint16(134), + 192: uint16(134), + 193: uint16(134), + 194: uint16(134), + 195: uint16(127), + 196: uint16(400), + 197: uint16(243), + 198: uint16(132), + 199: uint16(132), + 200: uint16(132), + 201: uint16(132), + 202: uint16(131), + 203: uint16(131), + 204: uint16(130), + 205: uint16(130), + 206: uint16(130), + 207: uint16(129), + 208: uint16(126), + 209: uint16(450), + 210: uint16(282), + 211: uint16(471), + 212: uint16(345), + 213: uint16(132), + 214: uint16(132), + 215: uint16(132), + 216: uint16(132), + 217: uint16(131), + 218: uint16(131), + 219: uint16(130), + 220: uint16(130), + 221: uint16(130), + 222: uint16(129), + 223: uint16(126), + 224: uint16(450), + 225: uint16(574), + 226: uint16(155), + 227: uint16(936), + 228: uint16(936), + 229: uint16(454), + 230: uint16(227), + 231: uint16(521), + 232: uint16(1236), + 233: uint16(412), + 234: uint16(1236), + 235: uint16(134), + 236: uint16(134), + 237: uint16(134), + 238: uint16(134), + 239: uint16(132), + 240: uint16(132), + 241: uint16(132), + 242: uint16(132), + 243: uint16(131), + 244: uint16(131), + 245: uint16(130), + 246: uint16(130), + 247: uint16(130), + 248: uint16(129), + 249: uint16(126), + 250: uint16(450), + 251: uint16(130), + 252: uint16(130), + 253: uint16(130), + 254: uint16(129), + 255: uint16(126), + 256: uint16(450), + 257: uint16(135), + 258: uint16(136), + 259: uint16(90), + 260: uint16(1228), + 261: uint16(1228), + 262: uint16(1063), + 263: uint16(1066), + 264: uint16(1053), + 265: uint16(1053), + 266: uint16(133), + 267: uint16(133), + 268: uint16(134), + 269: uint16(134), + 270: uint16(134), + 271: uint16(134), + 272: uint16(128), + 273: uint16(125), + 274: uint16(232), + 275: uint16(450), + 276: uint16(576), + 277: uint16(412), + 278: uint16(397), + 279: uint16(1249), + 280: uint16(180), + 281: uint16(92), + 282: uint16(93), + 283: uint16(132), + 284: uint16(132), + 285: uint16(132), + 286: uint16(132), + 287: uint16(131), + 288: uint16(131), + 289: uint16(130), + 290: uint16(130), + 291: uint16(130), + 292: uint16(129), + 293: uint16(126), + 294: uint16(450), + 295: uint16(381), + 296: uint16(387), + 297: uint16(1204), + 298: uint16(383), + 299: uint16(81), + 300: uint16(81), + 301: uint16(135), + 302: uint16(136), + 303: uint16(90), + 304: uint16(1228), + 305: uint16(1228), + 306: uint16(1063), + 307: uint16(1066), + 308: uint16(1053), + 309: uint16(1053), + 310: uint16(133), + 311: uint16(133), + 312: uint16(134), + 313: uint16(134), + 314: uint16(134), + 315: uint16(134), + 316: uint16(132), + 317: uint16(132), + 318: uint16(132), + 319: uint16(132), + 320: uint16(131), + 321: uint16(131), + 322: uint16(130), + 323: uint16(130), + 324: uint16(130), + 325: uint16(129), + 326: uint16(126), + 327: uint16(450), + 328: uint16(131), + 329: uint16(131), + 330: uint16(130), + 331: uint16(130), + 332: uint16(130), + 333: uint16(129), + 334: uint16(126), + 335: uint16(450), + 336: uint16(556), + 337: uint16(1204), + 338: uint16(302), + 339: uint16(319), + 340: uint16(567), + 341: uint16(121), + 342: uint16(568), + 343: uint16(480), 344: uint16(4), - 345: uint16(929), - 346: uint16(929), - 347: uint16(435), - 348: uint16(503), - 349: uint16(342), - 350: uint16(464), - 351: uint16(330), - 352: uint16(362), - 353: uint16(396), - 354: uint16(1238), - 355: uint16(1193), - 356: uint16(1194), - 357: uint16(1193), - 358: uint16(567), - 359: uint16(572), - 360: uint16(123), - 361: uint16(123), - 362: uint16(123), - 363: uint16(123), - 364: uint16(122), - 365: uint16(122), - 366: uint16(121), - 367: uint16(121), - 368: uint16(121), - 369: uint16(120), - 370: uint16(117), - 371: uint16(448), - 372: uint16(286), - 373: uint16(286), - 374: uint16(371), - 375: uint16(1581), - 376: uint16(1607), - 377: uint16(445), - 378: uint16(444), - 379: uint16(155), - 380: uint16(411), - 381: uint16(449), - 382: uint16(72), - 383: uint16(72), - 384: uint16(1289), - 385: uint16(569), - 386: uint16(1222), - 387: uint16(1193), - 388: uint16(1194), - 389: uint16(1193), - 390: uint16(86), - 391: uint16(1224), - 392: uint16(273), - 393: uint16(561), - 394: uint16(547), - 395: uint16(520), - 396: uint16(520), - 397: uint16(572), - 398: uint16(99), - 399: uint16(1223), - 400: uint16(6), - 401: uint16(1281), - 402: uint16(476), - 403: uint16(143), - 404: uint16(126), - 405: uint16(127), - 406: uint16(81), - 407: uint16(1217), - 408: uint16(1217), - 409: uint16(1054), - 410: uint16(1057), - 411: uint16(1044), - 412: uint16(1044), - 413: uint16(124), - 414: uint16(124), - 415: uint16(125), - 416: uint16(125), - 417: uint16(125), - 418: uint16(125), - 419: uint16(554), - 420: uint16(13), - 421: uint16(13), - 422: uint16(1031), - 423: uint16(511), - 424: uint16(1225), - 425: uint16(1193), - 426: uint16(1225), - 427: uint16(553), - 428: uint16(110), - 429: uint16(110), - 430: uint16(224), - 431: uint16(572), - 432: uint16(1239), - 433: uint16(177), - 434: uint16(572), - 435: uint16(429), - 436: uint16(111), - 437: uint16(199), - 438: uint16(449), - 439: uint16(573), - 440: uint16(449), - 441: uint16(432), - 442: uint16(1555), - 443: uint16(1019), - 444: uint16(327), - 445: uint16(555), - 446: uint16(1193), - 447: uint16(272), - 448: uint16(289), - 449: uint16(370), - 450: uint16(514), - 451: uint16(365), - 452: uint16(513), - 453: uint16(259), - 454: uint16(72), - 455: uint16(72), - 456: uint16(547), - 457: uint16(72), - 458: uint16(72), - 459: uint16(361), - 460: uint16(318), - 461: uint16(563), - 462: uint16(1613), - 463: uint16(123), - 464: uint16(123), - 465: uint16(123), - 466: uint16(123), - 467: uint16(122), - 468: uint16(122), - 469: uint16(121), - 470: uint16(121), - 471: uint16(121), - 472: uint16(120), - 473: uint16(117), - 474: uint16(448), - 475: uint16(1019), - 476: uint16(1019), - 477: uint16(1021), - 478: uint16(1022), - 479: uint16(28), - 480: uint16(286), - 481: uint16(286), - 482: uint16(1193), - 483: uint16(1194), - 484: uint16(1193), - 485: uint16(1159), - 486: uint16(572), - 487: uint16(1612), - 488: uint16(411), - 489: uint16(904), - 490: uint16(192), - 491: uint16(554), - 492: uint16(358), - 493: uint16(569), - 494: uint16(554), - 495: uint16(940), - 496: uint16(537), - 497: uint16(521), - 498: uint16(1159), - 499: uint16(437), - 500: uint16(415), - 501: uint16(1159), - 502: uint16(556), - 503: uint16(1193), - 504: uint16(1194), - 505: uint16(1193), - 506: uint16(572), - 507: uint16(548), - 508: uint16(548), - 509: uint16(52), - 510: uint16(52), - 511: uint16(216), - 512: uint16(126), - 513: uint16(127), - 514: uint16(81), - 515: uint16(1217), - 516: uint16(1217), - 517: uint16(1054), - 518: uint16(1057), - 519: uint16(1044), - 520: uint16(1044), - 521: uint16(124), - 522: uint16(124), - 523: uint16(125), - 524: uint16(125), - 525: uint16(125), - 526: uint16(125), - 527: uint16(1193), - 528: uint16(478), - 529: uint16(136), - 530: uint16(136), - 531: uint16(411), - 532: uint16(286), - 533: uint16(286), - 534: uint16(1493), - 535: uint16(509), - 536: uint16(122), - 537: uint16(122), - 538: uint16(121), - 539: uint16(121), - 540: uint16(121), - 541: uint16(120), - 542: uint16(117), - 543: uint16(448), - 544: uint16(1010), - 545: uint16(569), - 546: uint16(522), - 547: uint16(219), - 548: uint16(545), - 549: uint16(545), - 550: uint16(318), - 551: uint16(563), - 552: uint16(143), - 553: uint16(6), - 554: uint16(536), - 555: uint16(126), - 556: uint16(127), - 557: uint16(81), - 558: uint16(1217), - 559: uint16(1217), - 560: uint16(1054), - 561: uint16(1057), - 562: uint16(1044), - 563: uint16(1044), - 564: uint16(124), - 565: uint16(124), - 566: uint16(125), - 567: uint16(125), - 568: uint16(125), - 569: uint16(125), - 570: uint16(1557), - 571: uint16(123), - 572: uint16(123), - 573: uint16(123), - 574: uint16(123), - 575: uint16(122), - 576: uint16(122), - 577: uint16(121), - 578: uint16(121), - 579: uint16(121), - 580: uint16(120), - 581: uint16(117), - 582: uint16(448), - 583: uint16(489), - 584: uint16(1193), - 585: uint16(1194), - 586: uint16(1193), - 587: uint16(486), - 588: uint16(283), - 589: uint16(1270), - 590: uint16(960), - 591: uint16(254), - 592: uint16(1193), - 593: uint16(375), - 594: uint16(508), - 595: uint16(505), - 596: uint16(504), - 597: uint16(1193), - 598: uint16(342), - 599: uint16(574), - 600: uint16(1193), - 601: uint16(574), - 602: uint16(411), - 603: uint16(294), - 604: uint16(503), - 605: uint16(960), - 606: uint16(879), - 607: uint16(193), - 608: uint16(484), - 609: uint16(318), - 610: uint16(563), - 611: uint16(386), - 612: uint16(292), - 613: uint16(382), - 614: uint16(123), - 615: uint16(123), - 616: uint16(123), - 617: uint16(123), - 618: uint16(122), - 619: uint16(122), - 620: uint16(121), - 621: uint16(121), - 622: uint16(121), - 623: uint16(120), - 624: uint16(117), - 625: uint16(448), - 626: uint16(126), - 627: uint16(127), - 628: uint16(81), - 629: uint16(1217), - 630: uint16(1217), - 631: uint16(1054), - 632: uint16(1057), - 633: uint16(1044), - 634: uint16(1044), - 635: uint16(124), - 636: uint16(124), - 637: uint16(125), - 638: uint16(125), - 639: uint16(125), - 640: uint16(125), - 641: uint16(411), - 642: uint16(396), - 643: uint16(1139), - 644: uint16(1193), - 645: uint16(872), - 646: uint16(101), - 647: uint16(286), - 648: uint16(286), - 649: uint16(1193), - 650: uint16(1194), - 651: uint16(1193), - 652: uint16(375), - 653: uint16(1096), - 654: uint16(1193), - 655: uint16(1194), - 656: uint16(1193), - 657: uint16(1193), - 658: uint16(1194), - 659: uint16(1193), - 660: uint16(569), - 661: uint16(459), - 662: uint16(33), - 663: uint16(375), - 664: uint16(235), - 665: uint16(126), - 666: uint16(127), - 667: uint16(81), - 668: uint16(1217), - 669: uint16(1217), - 670: uint16(1054), - 671: uint16(1057), - 672: uint16(1044), - 673: uint16(1044), - 674: uint16(124), - 675: uint16(124), - 676: uint16(125), - 677: uint16(125), - 678: uint16(125), - 679: uint16(125), - 680: uint16(1437), - 681: uint16(962), - 682: uint16(572), - 683: uint16(230), - 684: uint16(961), - 685: uint16(123), - 686: uint16(123), - 687: uint16(123), - 688: uint16(123), - 689: uint16(122), - 690: uint16(122), - 691: uint16(121), - 692: uint16(121), - 693: uint16(121), - 694: uint16(120), - 695: uint16(117), - 696: uint16(448), - 697: uint16(1159), - 698: uint16(230), - 699: uint16(1193), - 700: uint16(158), - 701: uint16(1193), - 702: uint16(1194), - 703: uint16(1193), - 704: uint16(1556), - 705: uint16(13), - 706: uint16(13), - 707: uint16(303), - 708: uint16(960), - 709: uint16(1233), - 710: uint16(1159), - 711: uint16(154), - 712: uint16(411), - 713: uint16(1159), - 714: uint16(375), - 715: uint16(1584), - 716: uint16(1177), - 717: uint16(5), - 718: uint16(371), - 719: uint16(1581), - 720: uint16(431), - 721: uint16(1239), - 722: uint16(3), - 723: uint16(960), - 724: uint16(123), - 725: uint16(123), - 726: uint16(123), - 727: uint16(123), - 728: uint16(122), - 729: uint16(122), - 730: uint16(121), - 731: uint16(121), - 732: uint16(121), - 733: uint16(120), - 734: uint16(117), - 735: uint16(448), - 736: uint16(126), - 737: uint16(127), - 738: uint16(81), - 739: uint16(1217), - 740: uint16(1217), - 741: uint16(1054), - 742: uint16(1057), - 743: uint16(1044), - 744: uint16(1044), - 745: uint16(124), - 746: uint16(124), - 747: uint16(125), - 748: uint16(125), - 749: uint16(125), - 750: uint16(125), - 751: uint16(411), - 752: uint16(210), - 753: uint16(571), - 754: uint16(1193), - 755: uint16(1032), - 756: uint16(1193), - 757: uint16(1194), - 758: uint16(1193), - 759: uint16(1193), - 760: uint16(390), - 761: uint16(855), - 762: uint16(156), - 763: uint16(1555), - 764: uint16(376), - 765: uint16(404), - 766: uint16(1101), - 767: uint16(1101), - 768: uint16(492), - 769: uint16(572), - 770: uint16(469), - 771: uint16(344), - 772: uint16(1322), - 773: uint16(1322), - 774: uint16(1555), - 775: uint16(126), - 776: uint16(127), - 777: uint16(81), - 778: uint16(1217), - 779: uint16(1217), - 780: uint16(1054), - 781: uint16(1057), - 782: uint16(1044), - 783: uint16(1044), - 784: uint16(124), - 785: uint16(124), - 786: uint16(125), - 787: uint16(125), - 788: uint16(125), - 789: uint16(125), - 790: uint16(130), - 791: uint16(572), - 792: uint16(13), - 793: uint16(13), - 794: uint16(532), - 795: uint16(123), - 796: uint16(123), - 797: uint16(123), - 798: uint16(123), - 799: uint16(122), - 800: uint16(122), - 801: uint16(121), - 802: uint16(121), - 803: uint16(121), - 804: uint16(120), - 805: uint16(117), - 806: uint16(448), - 807: uint16(304), - 808: uint16(572), - 809: uint16(457), - 810: uint16(229), - 811: uint16(1193), - 812: uint16(1194), - 813: uint16(1193), - 814: uint16(13), - 815: uint16(13), - 816: uint16(1193), - 817: uint16(1194), - 818: uint16(1193), - 819: uint16(1300), - 820: uint16(467), - 821: uint16(1270), - 822: uint16(411), - 823: uint16(1320), - 824: uint16(1320), - 825: uint16(1555), - 826: uint16(1015), - 827: uint16(457), - 828: uint16(456), - 829: uint16(436), - 830: uint16(301), - 831: uint16(72), - 832: uint16(72), - 833: uint16(1268), - 834: uint16(123), - 835: uint16(123), - 836: uint16(123), - 837: uint16(123), - 838: uint16(122), - 839: uint16(122), - 840: uint16(121), - 841: uint16(121), - 842: uint16(121), - 843: uint16(120), - 844: uint16(117), - 845: uint16(448), - 846: uint16(126), - 847: uint16(127), - 848: uint16(81), - 849: uint16(1217), - 850: uint16(1217), - 851: uint16(1054), - 852: uint16(1057), - 853: uint16(1044), - 854: uint16(1044), - 855: uint16(124), - 856: uint16(124), - 857: uint16(125), - 858: uint16(125), - 859: uint16(125), - 860: uint16(125), - 861: uint16(411), - 862: uint16(384), - 863: uint16(1076), - 864: uint16(1159), - 865: uint16(286), - 866: uint16(286), - 867: uint16(421), - 868: uint16(314), - 869: uint16(280), - 870: uint16(280), - 871: uint16(287), - 872: uint16(287), - 873: uint16(461), - 874: uint16(408), - 875: uint16(407), - 876: uint16(1539), - 877: uint16(1159), - 878: uint16(569), - 879: uint16(572), - 880: uint16(1159), - 881: uint16(1196), - 882: uint16(569), - 883: uint16(409), - 884: uint16(569), - 885: uint16(126), - 886: uint16(127), - 887: uint16(81), - 888: uint16(1217), - 889: uint16(1217), - 890: uint16(1054), - 891: uint16(1057), - 892: uint16(1044), - 893: uint16(1044), - 894: uint16(124), - 895: uint16(124), - 896: uint16(125), - 897: uint16(125), - 898: uint16(125), - 899: uint16(125), - 900: uint16(457), - 901: uint16(1485), - 902: uint16(13), - 903: uint16(13), - 904: uint16(1541), - 905: uint16(123), - 906: uint16(123), - 907: uint16(123), - 908: uint16(123), - 909: uint16(122), - 910: uint16(122), - 911: uint16(121), - 912: uint16(121), - 913: uint16(121), - 914: uint16(120), - 915: uint16(117), - 916: uint16(448), - 917: uint16(202), - 918: uint16(572), - 919: uint16(462), - 920: uint16(1587), - 921: uint16(578), - 922: uint16(2), - 923: uint16(1248), - 924: uint16(843), - 925: uint16(844), - 926: uint16(845), - 927: uint16(1563), - 928: uint16(319), - 929: uint16(409), - 930: uint16(147), - 931: uint16(6), - 932: uint16(411), - 933: uint16(257), - 934: uint16(256), - 935: uint16(255), - 936: uint16(208), - 937: uint16(1330), - 938: uint16(9), - 939: uint16(1196), - 940: uint16(264), - 941: uint16(72), - 942: uint16(72), - 943: uint16(1436), - 944: uint16(123), - 945: uint16(123), - 946: uint16(123), - 947: uint16(123), - 948: uint16(122), - 949: uint16(122), - 950: uint16(121), - 951: uint16(121), - 952: uint16(121), - 953: uint16(120), - 954: uint16(117), - 955: uint16(448), - 956: uint16(126), - 957: uint16(127), - 958: uint16(81), - 959: uint16(1217), - 960: uint16(1217), - 961: uint16(1054), - 962: uint16(1057), - 963: uint16(1044), - 964: uint16(1044), - 965: uint16(124), - 966: uint16(124), - 967: uint16(125), - 968: uint16(125), - 969: uint16(125), - 970: uint16(125), - 971: uint16(572), - 972: uint16(286), - 973: uint16(286), - 974: uint16(572), - 975: uint16(1213), - 976: uint16(411), - 977: uint16(577), - 978: uint16(315), - 979: uint16(1248), - 980: uint16(421), - 981: uint16(371), - 982: uint16(1581), - 983: uint16(356), - 984: uint16(319), - 985: uint16(569), - 986: uint16(147), - 987: uint16(495), - 988: uint16(529), - 989: uint16(1644), - 990: uint16(397), - 991: uint16(935), - 992: uint16(495), - 993: uint16(1330), - 994: uint16(71), - 995: uint16(71), - 996: uint16(934), - 997: uint16(72), - 998: uint16(72), - 999: uint16(242), - 1000: uint16(1328), - 1001: uint16(105), - 1002: uint16(81), - 1003: uint16(1217), - 1004: uint16(1217), - 1005: uint16(1054), - 1006: uint16(1057), - 1007: uint16(1044), - 1008: uint16(1044), - 1009: uint16(124), - 1010: uint16(124), - 1011: uint16(125), - 1012: uint16(125), - 1013: uint16(125), - 1014: uint16(125), - 1015: uint16(123), - 1016: uint16(123), - 1017: uint16(123), - 1018: uint16(123), - 1019: uint16(122), - 1020: uint16(122), - 1021: uint16(121), - 1022: uint16(121), - 1023: uint16(121), - 1024: uint16(120), - 1025: uint16(117), - 1026: uint16(448), - 1027: uint16(1117), - 1028: uint16(286), - 1029: uint16(286), - 1030: uint16(1422), - 1031: uint16(452), - 1032: uint16(1528), - 1033: uint16(1213), - 1034: uint16(443), - 1035: uint16(286), - 1036: uint16(286), - 1037: uint16(1492), - 1038: uint16(1355), - 1039: uint16(313), - 1040: uint16(478), - 1041: uint16(569), - 1042: uint16(1118), - 1043: uint16(454), - 1044: uint16(351), - 1045: uint16(495), - 1046: uint16(354), - 1047: uint16(1266), - 1048: uint16(569), - 1049: uint16(209), - 1050: uint16(572), - 1051: uint16(418), - 1052: uint16(179), - 1053: uint16(572), - 1054: uint16(1031), - 1055: uint16(242), - 1056: uint16(385), - 1057: uint16(1119), - 1058: uint16(523), - 1059: uint16(123), - 1060: uint16(123), - 1061: uint16(123), - 1062: uint16(123), - 1063: uint16(122), - 1064: uint16(122), - 1065: uint16(121), - 1066: uint16(121), - 1067: uint16(121), - 1068: uint16(120), - 1069: uint16(117), - 1070: uint16(448), - 1071: uint16(1020), - 1072: uint16(108), - 1073: uint16(72), - 1074: uint16(72), - 1075: uint16(1019), - 1076: uint16(13), - 1077: uint16(13), - 1078: uint16(915), - 1079: uint16(572), - 1080: uint16(1498), - 1081: uint16(572), - 1082: uint16(286), - 1083: uint16(286), - 1084: uint16(98), - 1085: uint16(530), - 1086: uint16(1537), - 1087: uint16(452), - 1088: uint16(916), - 1089: uint16(1334), - 1090: uint16(1329), - 1091: uint16(203), - 1092: uint16(411), - 1093: uint16(286), - 1094: uint16(286), - 1095: uint16(569), - 1096: uint16(152), - 1097: uint16(211), - 1098: uint16(1498), - 1099: uint16(1500), - 1100: uint16(426), - 1101: uint16(569), - 1102: uint16(56), - 1103: uint16(56), - 1104: uint16(57), - 1105: uint16(57), - 1106: uint16(569), - 1107: uint16(1019), - 1108: uint16(1019), - 1109: uint16(1021), - 1110: uint16(447), - 1111: uint16(572), - 1112: uint16(411), - 1113: uint16(531), - 1114: uint16(12), - 1115: uint16(297), - 1116: uint16(126), - 1117: uint16(127), - 1118: uint16(81), - 1119: uint16(1217), - 1120: uint16(1217), - 1121: uint16(1054), - 1122: uint16(1057), - 1123: uint16(1044), - 1124: uint16(1044), - 1125: uint16(124), - 1126: uint16(124), - 1127: uint16(125), - 1128: uint16(125), - 1129: uint16(125), - 1130: uint16(125), - 1131: uint16(572), - 1132: uint16(411), - 1133: uint16(867), - 1134: uint16(15), - 1135: uint16(15), - 1136: uint16(126), - 1137: uint16(127), - 1138: uint16(81), - 1139: uint16(1217), - 1140: uint16(1217), - 1141: uint16(1054), - 1142: uint16(1057), - 1143: uint16(1044), - 1144: uint16(1044), - 1145: uint16(124), - 1146: uint16(124), - 1147: uint16(125), - 1148: uint16(125), - 1149: uint16(125), - 1150: uint16(125), - 1151: uint16(373), - 1152: uint16(529), - 1153: uint16(264), - 1154: uint16(44), - 1155: uint16(44), - 1156: uint16(126), - 1157: uint16(115), - 1158: uint16(81), - 1159: uint16(1217), - 1160: uint16(1217), - 1161: uint16(1054), - 1162: uint16(1057), - 1163: uint16(1044), - 1164: uint16(1044), - 1165: uint16(124), - 1166: uint16(124), - 1167: uint16(125), - 1168: uint16(125), - 1169: uint16(125), - 1170: uint16(125), - 1171: uint16(1498), - 1172: uint16(478), - 1173: uint16(1271), - 1174: uint16(417), - 1175: uint16(123), - 1176: uint16(123), - 1177: uint16(123), - 1178: uint16(123), - 1179: uint16(122), - 1180: uint16(122), - 1181: uint16(121), - 1182: uint16(121), - 1183: uint16(121), - 1184: uint16(120), - 1185: uint16(117), - 1186: uint16(448), - 1187: uint16(205), - 1188: uint16(1213), - 1189: uint16(495), - 1190: uint16(430), - 1191: uint16(867), - 1192: uint16(468), - 1193: uint16(322), - 1194: uint16(495), - 1195: uint16(123), - 1196: uint16(123), - 1197: uint16(123), - 1198: uint16(123), - 1199: uint16(122), - 1200: uint16(122), - 1201: uint16(121), - 1202: uint16(121), - 1203: uint16(121), - 1204: uint16(120), - 1205: uint16(117), - 1206: uint16(448), - 1207: uint16(572), - 1208: uint16(557), - 1209: uint16(1140), - 1210: uint16(1642), - 1211: uint16(1422), - 1212: uint16(1642), - 1213: uint16(543), - 1214: uint16(572), - 1215: uint16(123), - 1216: uint16(123), - 1217: uint16(123), - 1218: uint16(123), - 1219: uint16(122), - 1220: uint16(122), - 1221: uint16(121), - 1222: uint16(121), - 1223: uint16(121), - 1224: uint16(120), - 1225: uint16(117), - 1226: uint16(448), - 1227: uint16(572), - 1228: uint16(1422), - 1229: uint16(572), - 1230: uint16(13), - 1231: uint16(13), - 1232: uint16(542), - 1233: uint16(323), - 1234: uint16(1325), - 1235: uint16(411), - 1236: uint16(334), - 1237: uint16(58), - 1238: uint16(58), - 1239: uint16(349), - 1240: uint16(1422), - 1241: uint16(1170), - 1242: uint16(326), - 1243: uint16(286), - 1244: uint16(286), - 1245: uint16(549), - 1246: uint16(1213), - 1247: uint16(300), - 1248: uint16(895), - 1249: uint16(530), - 1250: uint16(45), - 1251: uint16(45), - 1252: uint16(59), - 1253: uint16(59), - 1254: uint16(1140), - 1255: uint16(1643), - 1256: uint16(569), - 1257: uint16(1643), - 1258: uint16(565), - 1259: uint16(417), - 1260: uint16(127), - 1261: uint16(81), - 1262: uint16(1217), - 1263: uint16(1217), - 1264: uint16(1054), - 1265: uint16(1057), - 1266: uint16(1044), - 1267: uint16(1044), - 1268: uint16(124), - 1269: uint16(124), - 1270: uint16(125), - 1271: uint16(125), - 1272: uint16(125), - 1273: uint16(125), - 1274: uint16(1367), - 1275: uint16(373), - 1276: uint16(500), - 1277: uint16(290), - 1278: uint16(1193), - 1279: uint16(512), - 1280: uint16(1366), - 1281: uint16(427), - 1282: uint16(394), - 1283: uint16(394), - 1284: uint16(393), - 1285: uint16(275), - 1286: uint16(391), - 1287: uint16(896), - 1288: uint16(1138), - 1289: uint16(852), - 1290: uint16(478), - 1291: uint16(258), - 1292: uint16(1422), - 1293: uint16(1170), - 1294: uint16(463), - 1295: uint16(1159), - 1296: uint16(12), - 1297: uint16(331), - 1298: uint16(428), - 1299: uint16(333), - 1300: uint16(1117), - 1301: uint16(460), - 1302: uint16(236), - 1303: uint16(258), - 1304: uint16(325), - 1305: uint16(460), - 1306: uint16(544), - 1307: uint16(1544), - 1308: uint16(1159), - 1309: uint16(1098), - 1310: uint16(491), - 1311: uint16(1159), - 1312: uint16(324), - 1313: uint16(1098), - 1314: uint16(440), - 1315: uint16(1118), - 1316: uint16(335), - 1317: uint16(516), - 1318: uint16(123), - 1319: uint16(123), - 1320: uint16(123), - 1321: uint16(123), - 1322: uint16(122), - 1323: uint16(122), - 1324: uint16(121), - 1325: uint16(121), - 1326: uint16(121), - 1327: uint16(120), - 1328: uint16(117), - 1329: uint16(448), - 1330: uint16(1119), - 1331: uint16(318), - 1332: uint16(563), - 1333: uint16(1138), - 1334: uint16(572), - 1335: uint16(1193), - 1336: uint16(1194), - 1337: uint16(1193), - 1338: uint16(112), - 1339: uint16(564), - 1340: uint16(201), + 345: uint16(555), + 346: uint16(1149), + 347: uint16(1657), + 348: uint16(1628), + 349: uint16(1657), + 350: uint16(45), + 351: uint16(128), + 352: uint16(125), + 353: uint16(232), + 354: uint16(1204), + 355: uint16(1205), + 356: uint16(1204), + 357: uint16(1250), + 358: uint16(571), + 359: uint16(1169), + 360: uint16(132), + 361: uint16(132), + 362: uint16(132), + 363: uint16(132), + 364: uint16(131), + 365: uint16(131), + 366: uint16(130), + 367: uint16(130), + 368: uint16(130), + 369: uint16(129), + 370: uint16(126), + 371: uint16(450), + 372: uint16(1169), + 373: uint16(287), + 374: uint16(287), + 375: uint16(1169), + 376: uint16(1019), + 377: uint16(576), + 378: uint16(422), + 379: uint16(1019), + 380: uint16(412), + 381: uint16(451), + 382: uint16(1602), + 383: uint16(582), + 384: uint16(2), + 385: uint16(1259), + 386: uint16(573), + 387: uint16(44), + 388: uint16(561), + 389: uint16(95), + 390: uint16(320), + 391: uint16(110), + 392: uint16(153), + 393: uint16(565), + 394: uint16(1204), + 395: uint16(1205), + 396: uint16(1204), + 397: uint16(522), + 398: uint16(522), + 399: uint16(1341), + 400: uint16(81), + 401: uint16(81), + 402: uint16(7), + 403: uint16(44), + 404: uint16(135), + 405: uint16(136), + 406: uint16(90), + 407: uint16(1228), + 408: uint16(1228), + 409: uint16(1063), + 410: uint16(1066), + 411: uint16(1053), + 412: uint16(1053), + 413: uint16(133), + 414: uint16(133), + 415: uint16(134), + 416: uint16(134), + 417: uint16(134), + 418: uint16(134), + 419: uint16(295), + 420: uint16(1149), + 421: uint16(1658), + 422: uint16(1040), + 423: uint16(1658), + 424: uint16(1204), + 425: uint16(1147), + 426: uint16(319), + 427: uint16(567), + 428: uint16(119), + 429: uint16(119), + 430: uint16(343), + 431: uint16(466), + 432: uint16(331), + 433: uint16(343), + 434: uint16(287), + 435: uint16(287), + 436: uint16(120), + 437: uint16(556), + 438: uint16(451), + 439: uint16(577), + 440: uint16(451), + 441: uint16(1169), + 442: uint16(1169), + 443: uint16(1028), + 444: uint16(319), + 445: uint16(567), + 446: uint16(438), + 447: uint16(573), + 448: uint16(210), + 449: uint16(561), + 450: uint16(1339), + 451: uint16(1451), + 452: uint16(546), + 453: uint16(531), + 454: uint16(1169), + 455: uint16(1169), + 456: uint16(1598), + 457: uint16(1169), + 458: uint16(1169), + 459: uint16(416), + 460: uint16(319), + 461: uint16(567), + 462: uint16(243), + 463: uint16(132), + 464: uint16(132), + 465: uint16(132), + 466: uint16(132), + 467: uint16(131), + 468: uint16(131), + 469: uint16(130), + 470: uint16(130), + 471: uint16(130), + 472: uint16(129), + 473: uint16(126), + 474: uint16(450), + 475: uint16(1028), + 476: uint16(1028), + 477: uint16(1030), + 478: uint16(1031), + 479: uint16(35), + 480: uint16(44), + 481: uint16(1204), + 482: uint16(1205), + 483: uint16(1204), + 484: uint16(472), + 485: uint16(287), + 486: uint16(287), + 487: uint16(1328), + 488: uint16(412), + 489: uint16(1307), + 490: uint16(372), + 491: uint16(1595), + 492: uint16(359), + 493: uint16(225), + 494: uint16(454), + 495: uint16(1204), + 496: uint16(195), + 497: uint16(1328), + 498: uint16(573), + 499: uint16(1147), + 500: uint16(561), + 501: uint16(1333), + 502: uint16(1333), + 503: uint16(274), + 504: uint16(576), + 505: uint16(1188), + 506: uint16(576), + 507: uint16(340), + 508: uint16(46), + 509: uint16(196), + 510: uint16(537), + 511: uint16(217), + 512: uint16(135), + 513: uint16(136), + 514: uint16(90), + 515: uint16(1228), + 516: uint16(1228), + 517: uint16(1063), + 518: uint16(1066), + 519: uint16(1053), + 520: uint16(1053), + 521: uint16(133), + 522: uint16(133), + 523: uint16(134), + 524: uint16(134), + 525: uint16(134), + 526: uint16(134), + 527: uint16(19), + 528: uint16(19), + 529: uint16(19), + 530: uint16(19), + 531: uint16(412), + 532: uint16(581), + 533: uint16(1204), + 534: uint16(1259), + 535: uint16(511), + 536: uint16(1204), + 537: uint16(319), + 538: uint16(567), + 539: uint16(320), + 540: uint16(944), + 541: uint16(153), + 542: uint16(425), + 543: uint16(491), + 544: uint16(430), + 545: uint16(943), + 546: uint16(1204), + 547: uint16(488), + 548: uint16(1341), + 549: uint16(1450), + 550: uint16(532), + 551: uint16(1277), + 552: uint16(1204), + 553: uint16(1205), + 554: uint16(1204), + 555: uint16(135), + 556: uint16(136), + 557: uint16(90), + 558: uint16(1228), + 559: uint16(1228), + 560: uint16(1063), + 561: uint16(1066), + 562: uint16(1053), + 563: uint16(1053), + 564: uint16(133), + 565: uint16(133), + 566: uint16(134), + 567: uint16(134), + 568: uint16(134), + 569: uint16(134), + 570: uint16(575), + 571: uint16(132), + 572: uint16(132), + 573: uint16(132), + 574: uint16(132), + 575: uint16(131), + 576: uint16(131), + 577: uint16(130), + 578: uint16(130), + 579: uint16(130), + 580: uint16(129), + 581: uint16(126), + 582: uint16(450), + 583: uint16(287), + 584: uint16(287), + 585: uint16(528), + 586: uint16(287), + 587: uint16(287), + 588: uint16(372), + 589: uint16(1595), + 590: uint16(1204), + 591: uint16(1205), + 592: uint16(1204), + 593: uint16(1204), + 594: uint16(1205), + 595: uint16(1204), + 596: uint16(573), + 597: uint16(486), + 598: uint16(561), + 599: uint16(573), + 600: uint16(889), + 601: uint16(561), + 602: uint16(412), + 603: uint16(1204), + 604: uint16(1205), + 605: uint16(1204), + 606: uint16(886), + 607: uint16(40), + 608: uint16(22), + 609: uint16(22), + 610: uint16(220), + 611: uint16(243), + 612: uint16(525), + 613: uint16(1449), + 614: uint16(132), + 615: uint16(132), + 616: uint16(132), + 617: uint16(132), + 618: uint16(131), + 619: uint16(131), + 620: uint16(130), + 621: uint16(130), + 622: uint16(130), + 623: uint16(129), + 624: uint16(126), + 625: uint16(450), + 626: uint16(135), + 627: uint16(136), + 628: uint16(90), + 629: uint16(1228), + 630: uint16(1228), + 631: uint16(1063), + 632: uint16(1066), + 633: uint16(1053), + 634: uint16(1053), + 635: uint16(133), + 636: uint16(133), + 637: uint16(134), + 638: uint16(134), + 639: uint16(134), + 640: uint16(134), + 641: uint16(412), + 642: uint16(180), + 643: uint16(454), + 644: uint16(1204), + 645: uint16(879), + 646: uint16(255), + 647: uint16(287), + 648: uint16(287), + 649: uint16(510), + 650: uint16(507), + 651: uint16(506), + 652: uint16(372), + 653: uint16(1595), + 654: uint16(1568), + 655: uint16(1331), + 656: uint16(1331), + 657: uint16(576), + 658: uint16(889), + 659: uint16(505), + 660: uint16(573), + 661: uint16(44), + 662: uint16(561), + 663: uint16(559), + 664: uint16(1207), + 665: uint16(135), + 666: uint16(136), + 667: uint16(90), + 668: uint16(1228), + 669: uint16(1228), + 670: uint16(1063), + 671: uint16(1066), + 672: uint16(1053), + 673: uint16(1053), + 674: uint16(133), + 675: uint16(133), + 676: uint16(134), + 677: uint16(134), + 678: uint16(134), + 679: uint16(134), + 680: uint16(81), + 681: uint16(81), + 682: uint16(422), + 683: uint16(576), + 684: uint16(377), + 685: uint16(132), + 686: uint16(132), + 687: uint16(132), + 688: uint16(132), + 689: uint16(131), + 690: uint16(131), + 691: uint16(130), + 692: uint16(130), + 693: uint16(130), + 694: uint16(129), + 695: uint16(126), + 696: uint16(450), + 697: uint16(297), + 698: uint16(287), + 699: uint16(287), + 700: uint16(460), + 701: uint16(1204), + 702: uint16(1205), + 703: uint16(1204), + 704: uint16(1204), + 705: uint16(534), + 706: uint16(19), + 707: uint16(19), + 708: uint16(448), + 709: uint16(448), + 710: uint16(448), + 711: uint16(573), + 712: uint16(412), + 713: uint16(561), + 714: uint16(230), + 715: uint16(436), + 716: uint16(1187), + 717: uint16(535), + 718: uint16(319), + 719: uint16(567), + 720: uint16(363), + 721: uint16(432), + 722: uint16(1207), + 723: uint16(1435), + 724: uint16(132), + 725: uint16(132), + 726: uint16(132), + 727: uint16(132), + 728: uint16(131), + 729: uint16(131), + 730: uint16(130), + 731: uint16(130), + 732: uint16(130), + 733: uint16(129), + 734: uint16(126), + 735: uint16(450), + 736: uint16(135), + 737: uint16(136), + 738: uint16(90), + 739: uint16(1228), + 740: uint16(1228), + 741: uint16(1063), + 742: uint16(1066), + 743: uint16(1053), + 744: uint16(1053), + 745: uint16(133), + 746: uint16(133), + 747: uint16(134), + 748: uint16(134), + 749: uint16(134), + 750: uint16(134), + 751: uint16(412), + 752: uint16(211), + 753: uint16(949), + 754: uint16(1169), + 755: uint16(1041), + 756: uint16(1110), + 757: uint16(1110), + 758: uint16(494), + 759: uint16(547), + 760: uint16(547), + 761: uint16(1204), + 762: uint16(1205), + 763: uint16(1204), + 764: uint16(7), + 765: uint16(539), + 766: uint16(1570), + 767: uint16(1169), + 768: uint16(376), + 769: uint16(576), + 770: uint16(1169), + 771: uint16(5), + 772: uint16(1204), + 773: uint16(486), + 774: uint16(3), + 775: uint16(135), + 776: uint16(136), + 777: uint16(90), + 778: uint16(1228), + 779: uint16(1228), + 780: uint16(1063), + 781: uint16(1066), + 782: uint16(1053), + 783: uint16(1053), + 784: uint16(133), + 785: uint16(133), + 786: uint16(134), + 787: uint16(134), + 788: uint16(134), + 789: uint16(134), + 790: uint16(576), + 791: uint16(513), + 792: uint16(19), + 793: uint16(19), + 794: uint16(427), + 795: uint16(132), + 796: uint16(132), + 797: uint16(132), + 798: uint16(132), + 799: uint16(131), + 800: uint16(131), + 801: uint16(130), + 802: uint16(130), + 803: uint16(130), + 804: uint16(129), + 805: uint16(126), + 806: uint16(450), + 807: uint16(305), + 808: uint16(1204), + 809: uint16(433), + 810: uint16(225), + 811: uint16(1204), + 812: uint16(385), + 813: uint16(19), + 814: uint16(19), + 815: uint16(273), + 816: uint16(290), + 817: uint16(371), + 818: uint16(516), + 819: uint16(366), + 820: uint16(515), + 821: uint16(260), + 822: uint16(412), + 823: uint16(538), + 824: uint16(1568), + 825: uint16(549), + 826: uint16(1024), + 827: uint16(362), + 828: uint16(437), + 829: uint16(1204), + 830: uint16(1205), + 831: uint16(1204), + 832: uint16(902), + 833: uint16(1552), + 834: uint16(132), + 835: uint16(132), + 836: uint16(132), + 837: uint16(132), + 838: uint16(131), + 839: uint16(131), + 840: uint16(130), + 841: uint16(130), + 842: uint16(130), + 843: uint16(129), + 844: uint16(126), + 845: uint16(450), + 846: uint16(135), + 847: uint16(136), + 848: uint16(90), + 849: uint16(1228), + 850: uint16(1228), + 851: uint16(1063), + 852: uint16(1066), + 853: uint16(1053), + 854: uint16(1053), + 855: uint16(133), + 856: uint16(133), + 857: uint16(134), + 858: uint16(134), + 859: uint16(134), + 860: uint16(134), + 861: uint16(412), + 862: uint16(1435), + 863: uint16(514), + 864: uint16(1281), + 865: uint16(1204), + 866: uint16(1205), + 867: uint16(1204), + 868: uint16(1204), + 869: uint16(1205), + 870: uint16(1204), + 871: uint16(903), + 872: uint16(48), + 873: uint16(342), + 874: uint16(1568), + 875: uint16(1568), + 876: uint16(1279), + 877: uint16(1627), + 878: uint16(1568), + 879: uint16(911), + 880: uint16(576), + 881: uint16(129), + 882: uint16(126), + 883: uint16(450), + 884: uint16(110), + 885: uint16(135), + 886: uint16(136), + 887: uint16(90), + 888: uint16(1228), + 889: uint16(1228), + 890: uint16(1063), + 891: uint16(1066), + 892: uint16(1053), + 893: uint16(1053), + 894: uint16(133), + 895: uint16(133), + 896: uint16(134), + 897: uint16(134), + 898: uint16(134), + 899: uint16(134), + 900: uint16(265), + 901: uint16(576), + 902: uint16(459), + 903: uint16(19), + 904: uint16(19), + 905: uint16(132), + 906: uint16(132), + 907: uint16(132), + 908: uint16(132), + 909: uint16(131), + 910: uint16(131), + 911: uint16(130), + 912: uint16(130), + 913: uint16(130), + 914: uint16(129), + 915: uint16(126), + 916: uint16(450), + 917: uint16(1345), + 918: uint16(204), + 919: uint16(576), + 920: uint16(459), + 921: uint16(458), + 922: uint16(50), + 923: uint16(47), + 924: uint16(19), + 925: uint16(19), + 926: uint16(49), + 927: uint16(434), + 928: uint16(1105), + 929: uint16(573), + 930: uint16(497), + 931: uint16(561), + 932: uint16(412), + 933: uint16(428), + 934: uint16(108), + 935: uint16(1224), + 936: uint16(1569), + 937: uint16(1554), + 938: uint16(376), + 939: uint16(205), + 940: uint16(550), + 941: uint16(550), + 942: uint16(81), + 943: uint16(81), + 944: uint16(132), + 945: uint16(132), + 946: uint16(132), + 947: uint16(132), + 948: uint16(131), + 949: uint16(131), + 950: uint16(130), + 951: uint16(130), + 952: uint16(130), + 953: uint16(129), + 954: uint16(126), + 955: uint16(450), + 956: uint16(135), + 957: uint16(136), + 958: uint16(90), + 959: uint16(1228), + 960: uint16(1228), + 961: uint16(1063), + 962: uint16(1066), + 963: uint16(1053), + 964: uint16(1053), + 965: uint16(133), + 966: uint16(133), + 967: uint16(134), + 968: uint16(134), + 969: uint16(134), + 970: uint16(134), + 971: uint16(480), + 972: uint16(576), + 973: uint16(1204), + 974: uint16(576), + 975: uint16(1541), + 976: uint16(412), + 977: uint16(1435), + 978: uint16(969), + 979: uint16(315), + 980: uint16(1659), + 981: uint16(398), + 982: uint16(284), + 983: uint16(497), + 984: uint16(969), + 985: uint16(893), + 986: uint16(1569), + 987: uint16(1569), + 988: uint16(376), + 989: uint16(376), + 990: uint16(1569), + 991: uint16(461), + 992: uint16(376), + 993: uint16(1224), + 994: uint16(459), + 995: uint16(80), + 996: uint16(80), + 997: uint16(81), + 998: uint16(81), + 999: uint16(497), + 1000: uint16(374), + 1001: uint16(114), + 1002: uint16(90), + 1003: uint16(1228), + 1004: uint16(1228), + 1005: uint16(1063), + 1006: uint16(1066), + 1007: uint16(1053), + 1008: uint16(1053), + 1009: uint16(133), + 1010: uint16(133), + 1011: uint16(134), + 1012: uint16(134), + 1013: uint16(134), + 1014: uint16(134), + 1015: uint16(132), + 1016: uint16(132), + 1017: uint16(132), + 1018: uint16(132), + 1019: uint16(131), + 1020: uint16(131), + 1021: uint16(130), + 1022: uint16(130), + 1023: uint16(130), + 1024: uint16(129), + 1025: uint16(126), + 1026: uint16(450), + 1027: uint16(1204), + 1028: uint16(1505), + 1029: uint16(576), + 1030: uint16(1204), + 1031: uint16(1205), + 1032: uint16(1204), + 1033: uint16(1366), + 1034: uint16(316), + 1035: uint16(486), + 1036: uint16(281), + 1037: uint16(281), + 1038: uint16(497), + 1039: uint16(431), + 1040: uint16(557), + 1041: uint16(288), + 1042: uint16(288), + 1043: uint16(402), + 1044: uint16(1340), + 1045: uint16(471), + 1046: uint16(345), + 1047: uint16(298), + 1048: uint16(429), + 1049: uint16(573), + 1050: uint16(576), + 1051: uint16(561), + 1052: uint16(81), + 1053: uint16(81), + 1054: uint16(573), + 1055: uint16(374), + 1056: uint16(561), + 1057: uint16(971), + 1058: uint16(386), + 1059: uint16(132), + 1060: uint16(132), + 1061: uint16(132), + 1062: uint16(132), + 1063: uint16(131), + 1064: uint16(131), + 1065: uint16(130), + 1066: uint16(130), + 1067: uint16(130), + 1068: uint16(129), + 1069: uint16(126), + 1070: uint16(450), + 1071: uint16(231), + 1072: uint16(117), + 1073: uint16(81), + 1074: uint16(81), + 1075: uint16(287), + 1076: uint16(287), + 1077: uint16(231), + 1078: uint16(287), + 1079: uint16(287), + 1080: uint16(576), + 1081: uint16(1511), + 1082: uint16(576), + 1083: uint16(1336), + 1084: uint16(1204), + 1085: uint16(1205), + 1086: uint16(1204), + 1087: uint16(139), + 1088: uint16(573), + 1089: uint16(556), + 1090: uint16(561), + 1091: uint16(573), + 1092: uint16(412), + 1093: uint16(561), + 1094: uint16(441), + 1095: uint16(456), + 1096: uint16(969), + 1097: uint16(213), + 1098: uint16(558), + 1099: uint16(1511), + 1100: uint16(1513), + 1101: uint16(1550), + 1102: uint16(969), + 1103: uint16(143), + 1104: uint16(143), + 1105: uint16(145), + 1106: uint16(145), + 1107: uint16(1368), + 1108: uint16(314), + 1109: uint16(478), + 1110: uint16(444), + 1111: uint16(970), + 1112: uint16(412), + 1113: uint16(850), + 1114: uint16(851), + 1115: uint16(852), + 1116: uint16(135), + 1117: uint16(136), + 1118: uint16(90), + 1119: uint16(1228), + 1120: uint16(1228), + 1121: uint16(1063), + 1122: uint16(1066), + 1123: uint16(1053), + 1124: uint16(1053), + 1125: uint16(133), + 1126: uint16(133), + 1127: uint16(134), + 1128: uint16(134), + 1129: uint16(134), + 1130: uint16(134), + 1131: uint16(357), + 1132: uint16(412), + 1133: uint16(397), + 1134: uint16(1148), + 1135: uint16(304), + 1136: uint16(135), + 1137: uint16(136), + 1138: uint16(90), + 1139: uint16(1228), + 1140: uint16(1228), + 1141: uint16(1063), + 1142: uint16(1066), + 1143: uint16(1053), + 1144: uint16(1053), + 1145: uint16(133), + 1146: uint16(133), + 1147: uint16(134), + 1148: uint16(134), + 1149: uint16(134), + 1150: uint16(134), + 1151: uint16(1575), + 1152: uint16(323), + 1153: uint16(6), + 1154: uint16(862), + 1155: uint16(7), + 1156: uint16(135), + 1157: uint16(124), + 1158: uint16(90), + 1159: uint16(1228), + 1160: uint16(1228), + 1161: uint16(1063), + 1162: uint16(1066), + 1163: uint16(1053), + 1164: uint16(1053), + 1165: uint16(133), + 1166: uint16(133), + 1167: uint16(134), + 1168: uint16(134), + 1169: uint16(134), + 1170: uint16(134), + 1171: uint16(409), + 1172: uint16(408), + 1173: uint16(1511), + 1174: uint16(212), + 1175: uint16(132), + 1176: uint16(132), + 1177: uint16(132), + 1178: uint16(132), + 1179: uint16(131), + 1180: uint16(131), + 1181: uint16(130), + 1182: uint16(130), + 1183: uint16(130), + 1184: uint16(129), + 1185: uint16(126), + 1186: uint16(450), + 1187: uint16(411), + 1188: uint16(118), + 1189: uint16(1204), + 1190: uint16(116), + 1191: uint16(10), + 1192: uint16(352), + 1193: uint16(265), + 1194: uint16(355), + 1195: uint16(132), + 1196: uint16(132), + 1197: uint16(132), + 1198: uint16(132), + 1199: uint16(131), + 1200: uint16(131), + 1201: uint16(130), + 1202: uint16(130), + 1203: uint16(130), + 1204: uint16(129), + 1205: uint16(126), + 1206: uint16(450), + 1207: uint16(576), + 1208: uint16(324), + 1209: uint16(306), + 1210: uint16(576), + 1211: uint16(306), + 1212: uint16(1250), + 1213: uint16(469), + 1214: uint16(158), + 1215: uint16(132), + 1216: uint16(132), + 1217: uint16(132), + 1218: uint16(132), + 1219: uint16(131), + 1220: uint16(131), + 1221: uint16(130), + 1222: uint16(130), + 1223: uint16(130), + 1224: uint16(129), + 1225: uint16(126), + 1226: uint16(450), + 1227: uint16(207), + 1228: uint16(1224), + 1229: uint16(1126), + 1230: uint16(65), + 1231: uint16(65), + 1232: uint16(470), + 1233: uint16(66), + 1234: uint16(66), + 1235: uint16(412), + 1236: uint16(447), + 1237: uint16(446), + 1238: uint16(882), + 1239: uint16(531), + 1240: uint16(335), + 1241: uint16(258), + 1242: uint16(257), + 1243: uint16(256), + 1244: uint16(1127), + 1245: uint16(1233), + 1246: uint16(1204), + 1247: uint16(1205), + 1248: uint16(1204), + 1249: uint16(327), + 1250: uint16(1235), + 1251: uint16(874), + 1252: uint16(159), + 1253: uint16(576), + 1254: uint16(16), + 1255: uint16(480), + 1256: uint16(1085), + 1257: uint16(1040), + 1258: uint16(1234), + 1259: uint16(1128), + 1260: uint16(136), + 1261: uint16(90), + 1262: uint16(1228), + 1263: uint16(1228), + 1264: uint16(1063), + 1265: uint16(1066), + 1266: uint16(1053), + 1267: uint16(1053), + 1268: uint16(133), + 1269: uint16(133), + 1270: uint16(134), + 1271: uint16(134), + 1272: uint16(134), + 1273: uint16(134), + 1274: uint16(1029), + 1275: uint16(576), + 1276: uint16(81), + 1277: uint16(81), + 1278: uint16(1028), + 1279: uint16(1040), + 1280: uint16(922), + 1281: uint16(576), + 1282: uint16(463), + 1283: uint16(1236), + 1284: uint16(576), + 1285: uint16(1236), + 1286: uint16(1224), + 1287: uint16(502), + 1288: uint16(107), + 1289: uint16(1435), + 1290: uint16(923), + 1291: uint16(6), + 1292: uint16(576), + 1293: uint16(410), + 1294: uint16(1498), + 1295: uint16(882), + 1296: uint16(1029), + 1297: uint16(480), + 1298: uint16(21), + 1299: uint16(21), + 1300: uint16(1028), + 1301: uint16(332), + 1302: uint16(1380), + 1303: uint16(334), + 1304: uint16(53), + 1305: uint16(53), + 1306: uint16(497), + 1307: uint16(81), + 1308: uint16(81), + 1309: uint16(874), + 1310: uint16(1028), + 1311: uint16(1028), + 1312: uint16(1030), + 1313: uint16(445), + 1314: uint16(259), + 1315: uint16(19), + 1316: uint16(19), + 1317: uint16(533), + 1318: uint16(132), + 1319: uint16(132), + 1320: uint16(132), + 1321: uint16(132), + 1322: uint16(131), + 1323: uint16(131), + 1324: uint16(130), + 1325: uint16(130), + 1326: uint16(130), + 1327: uint16(129), + 1328: uint16(126), + 1329: uint16(450), + 1330: uint16(551), + 1331: uint16(301), + 1332: uint16(1028), + 1333: uint16(1028), + 1334: uint16(1030), + 1335: uint16(107), + 1336: uint16(532), + 1337: uint16(545), + 1338: uint16(121), + 1339: uint16(568), + 1340: uint16(1188), 1341: uint16(4), - 1342: uint16(238), - 1343: uint16(433), - 1344: uint16(935), - 1345: uint16(490), - 1346: uint16(285), - 1347: uint16(228), - 1348: uint16(1517), - 1349: uint16(934), - 1350: uint16(170), - 1351: uint16(560), - 1352: uint16(572), - 1353: uint16(142), - 1354: uint16(1516), - 1355: uint16(567), - 1356: uint16(572), - 1357: uint16(60), - 1358: uint16(60), - 1359: uint16(572), - 1360: uint16(416), - 1361: uint16(572), - 1362: uint16(441), - 1363: uint16(572), - 1364: uint16(535), - 1365: uint16(302), - 1366: uint16(875), - 1367: uint16(8), - 1368: uint16(487), - 1369: uint16(572), - 1370: uint16(237), - 1371: uint16(572), - 1372: uint16(416), - 1373: uint16(572), - 1374: uint16(485), - 1375: uint16(61), - 1376: uint16(61), - 1377: uint16(572), - 1378: uint16(449), - 1379: uint16(62), - 1380: uint16(62), - 1381: uint16(332), - 1382: uint16(63), - 1383: uint16(63), - 1384: uint16(46), - 1385: uint16(46), - 1386: uint16(47), - 1387: uint16(47), - 1388: uint16(361), - 1389: uint16(572), - 1390: uint16(561), - 1391: uint16(572), - 1392: uint16(48), - 1393: uint16(48), - 1394: uint16(50), - 1395: uint16(50), - 1396: uint16(51), - 1397: uint16(51), - 1398: uint16(572), - 1399: uint16(295), - 1400: uint16(64), - 1401: uint16(64), - 1402: uint16(482), - 1403: uint16(295), - 1404: uint16(539), - 1405: uint16(412), - 1406: uint16(471), - 1407: uint16(1031), - 1408: uint16(572), - 1409: uint16(538), - 1410: uint16(318), - 1411: uint16(563), - 1412: uint16(65), - 1413: uint16(65), - 1414: uint16(66), - 1415: uint16(66), - 1416: uint16(409), - 1417: uint16(475), - 1418: uint16(572), - 1419: uint16(1031), - 1420: uint16(572), - 1421: uint16(14), - 1422: uint16(14), - 1423: uint16(875), - 1424: uint16(1020), - 1425: uint16(110), - 1426: uint16(110), - 1427: uint16(409), - 1428: uint16(1019), - 1429: uint16(572), - 1430: uint16(474), - 1431: uint16(67), - 1432: uint16(67), - 1433: uint16(111), - 1434: uint16(455), - 1435: uint16(449), - 1436: uint16(573), - 1437: uint16(449), - 1438: uint16(98), - 1439: uint16(317), - 1440: uint16(1019), - 1441: uint16(132), - 1442: uint16(132), - 1443: uint16(133), - 1444: uint16(133), - 1445: uint16(572), - 1446: uint16(1561), - 1447: uint16(572), - 1448: uint16(974), - 1449: uint16(409), - 1450: uint16(6), - 1451: uint16(1562), - 1452: uint16(68), - 1453: uint16(68), - 1454: uint16(1560), - 1455: uint16(6), - 1456: uint16(975), - 1457: uint16(572), - 1458: uint16(6), - 1459: uint16(1559), - 1460: uint16(1019), - 1461: uint16(1019), - 1462: uint16(1021), - 1463: uint16(6), - 1464: uint16(346), - 1465: uint16(218), - 1466: uint16(101), - 1467: uint16(531), - 1468: uint16(53), - 1469: uint16(53), - 1470: uint16(69), - 1471: uint16(69), - 1472: uint16(1019), - 1473: uint16(1019), - 1474: uint16(1021), - 1475: uint16(1022), - 1476: uint16(28), - 1477: uint16(1586), - 1478: uint16(1181), - 1479: uint16(451), - 1480: uint16(70), - 1481: uint16(70), - 1482: uint16(290), - 1483: uint16(87), - 1484: uint16(215), - 1485: uint16(31), - 1486: uint16(1363), - 1487: uint16(394), - 1488: uint16(394), - 1489: uint16(393), - 1490: uint16(275), - 1491: uint16(391), - 1492: uint16(350), - 1493: uint16(109), - 1494: uint16(852), - 1495: uint16(107), - 1496: uint16(572), - 1497: uint16(112), - 1498: uint16(564), - 1499: uint16(483), - 1500: uint16(4), - 1501: uint16(1212), - 1502: uint16(572), - 1503: uint16(239), - 1504: uint16(153), - 1505: uint16(572), - 1506: uint16(39), - 1507: uint16(236), - 1508: uint16(1299), - 1509: uint16(325), - 1510: uint16(112), - 1511: uint16(564), - 1512: uint16(1298), - 1513: uint16(4), - 1514: uint16(567), - 1515: uint16(572), - 1516: uint16(32), - 1517: uint16(324), - 1518: uint16(572), - 1519: uint16(54), - 1520: uint16(54), - 1521: uint16(572), - 1522: uint16(1135), - 1523: uint16(353), - 1524: uint16(398), - 1525: uint16(165), - 1526: uint16(165), - 1527: uint16(567), - 1528: uint16(166), - 1529: uint16(166), - 1530: uint16(572), - 1531: uint16(291), - 1532: uint16(355), - 1533: uint16(572), - 1534: uint16(17), - 1535: uint16(357), - 1536: uint16(572), - 1537: uint16(449), - 1538: uint16(77), - 1539: uint16(77), - 1540: uint16(1313), - 1541: uint16(55), - 1542: uint16(55), - 1543: uint16(1297), - 1544: uint16(73), - 1545: uint16(73), - 1546: uint16(572), - 1547: uint16(238), - 1548: uint16(470), - 1549: uint16(561), - 1550: uint16(449), - 1551: uint16(472), - 1552: uint16(364), - 1553: uint16(135), - 1554: uint16(135), - 1555: uint16(170), - 1556: uint16(74), - 1557: uint16(74), - 1558: uint16(142), - 1559: uint16(163), - 1560: uint16(163), - 1561: uint16(374), - 1562: uint16(561), - 1563: uint16(539), - 1564: uint16(572), - 1565: uint16(321), - 1566: uint16(572), - 1567: uint16(886), - 1568: uint16(540), - 1569: uint16(137), - 1570: uint16(137), - 1571: uint16(339), - 1572: uint16(1353), - 1573: uint16(422), - 1574: uint16(298), - 1575: uint16(237), - 1576: uint16(539), - 1577: uint16(572), - 1578: uint16(1031), - 1579: uint16(572), - 1580: uint16(340), - 1581: uint16(538), - 1582: uint16(101), - 1583: uint16(369), - 1584: uint16(110), - 1585: uint16(110), - 1586: uint16(162), - 1587: uint16(131), - 1588: uint16(131), - 1589: uint16(164), - 1590: uint16(164), - 1591: uint16(1031), - 1592: uint16(111), - 1593: uint16(368), - 1594: uint16(449), - 1595: uint16(573), - 1596: uint16(449), + 1342: uint16(1126), + 1343: uint16(1576), + 1344: uint16(449), + 1345: uint16(576), + 1346: uint16(462), + 1347: uint16(7), + 1348: uint16(1282), + 1349: uint16(418), + 1350: uint16(462), + 1351: uint16(350), + 1352: uint16(1435), + 1353: uint16(576), + 1354: uint16(518), + 1355: uint16(571), + 1356: uint16(544), + 1357: uint16(1127), + 1358: uint16(121), + 1359: uint16(568), + 1360: uint16(442), + 1361: uint16(4), + 1362: uint16(1188), + 1363: uint16(464), + 1364: uint16(533), + 1365: uint16(1180), + 1366: uint16(1223), + 1367: uint16(9), + 1368: uint16(67), + 1369: uint16(67), + 1370: uint16(487), + 1371: uint16(576), + 1372: uint16(1128), + 1373: uint16(303), + 1374: uint16(410), + 1375: uint16(571), + 1376: uint16(54), + 1377: uint16(54), + 1378: uint16(451), + 1379: uint16(576), + 1380: uint16(123), + 1381: uint16(944), + 1382: uint16(576), + 1383: uint16(417), + 1384: uint16(576), + 1385: uint16(333), + 1386: uint16(943), + 1387: uint16(1379), + 1388: uint16(576), + 1389: uint16(236), + 1390: uint16(565), + 1391: uint16(576), + 1392: uint16(1574), + 1393: uint16(564), + 1394: uint16(68), + 1395: uint16(68), + 1396: uint16(7), + 1397: uint16(576), + 1398: uint16(451), + 1399: uint16(362), + 1400: uint16(419), + 1401: uint16(182), + 1402: uint16(69), + 1403: uint16(69), + 1404: uint16(541), + 1405: uint16(70), + 1406: uint16(70), + 1407: uint16(71), + 1408: uint16(71), + 1409: uint16(540), + 1410: uint16(565), + 1411: uint16(72), + 1412: uint16(72), + 1413: uint16(484), + 1414: uint16(55), + 1415: uint16(55), + 1416: uint16(473), + 1417: uint16(1180), + 1418: uint16(296), + 1419: uint16(1040), + 1420: uint16(56), + 1421: uint16(56), + 1422: uint16(296), + 1423: uint16(493), + 1424: uint16(541), + 1425: uint16(119), + 1426: uint16(119), + 1427: uint16(410), + 1428: uint16(1573), + 1429: uint16(542), + 1430: uint16(569), + 1431: uint16(418), + 1432: uint16(7), + 1433: uint16(120), + 1434: uint16(1244), + 1435: uint16(451), + 1436: uint16(577), + 1437: uint16(451), + 1438: uint16(465), + 1439: uint16(1040), + 1440: uint16(1028), + 1441: uint16(576), + 1442: uint16(1557), + 1443: uint16(552), + 1444: uint16(476), + 1445: uint16(119), + 1446: uint16(119), + 1447: uint16(527), + 1448: uint16(259), + 1449: uint16(121), + 1450: uint16(568), + 1451: uint16(240), + 1452: uint16(4), + 1453: uint16(120), + 1454: uint16(576), + 1455: uint16(451), + 1456: uint16(577), + 1457: uint16(451), + 1458: uint16(576), + 1459: uint16(477), + 1460: uint16(1028), + 1461: uint16(576), + 1462: uint16(156), + 1463: uint16(576), + 1464: uint16(57), + 1465: uint16(57), + 1466: uint16(571), + 1467: uint16(576), + 1468: uint16(286), + 1469: uint16(229), + 1470: uint16(410), + 1471: uint16(336), + 1472: uint16(1028), + 1473: uint16(1028), + 1474: uint16(1030), + 1475: uint16(1031), + 1476: uint16(35), + 1477: uint16(59), + 1478: uint16(59), + 1479: uint16(219), + 1480: uint16(983), + 1481: uint16(60), + 1482: uint16(60), + 1483: uint16(220), + 1484: uint16(73), + 1485: uint16(73), + 1486: uint16(74), + 1487: uint16(74), + 1488: uint16(984), + 1489: uint16(451), + 1490: uint16(75), + 1491: uint16(75), + 1492: uint16(1028), + 1493: uint16(1028), + 1494: uint16(1030), + 1495: uint16(1031), + 1496: uint16(35), + 1497: uint16(96), + 1498: uint16(216), + 1499: uint16(291), + 1500: uint16(552), + 1501: uint16(565), + 1502: uint16(1188), + 1503: uint16(318), + 1504: uint16(395), + 1505: uint16(395), + 1506: uint16(394), + 1507: uint16(276), + 1508: uint16(392), + 1509: uint16(576), + 1510: uint16(485), + 1511: uint16(859), + 1512: uint16(474), + 1513: uint16(1311), + 1514: uint16(410), + 1515: uint16(541), + 1516: uint16(576), + 1517: uint16(417), + 1518: uint16(1530), + 1519: uint16(1144), + 1520: uint16(540), + 1521: uint16(399), + 1522: uint16(1188), + 1523: uint16(292), + 1524: uint16(237), + 1525: uint16(1153), + 1526: uint16(326), + 1527: uint16(38), + 1528: uint16(23), + 1529: uint16(576), + 1530: uint16(1040), + 1531: uint16(576), + 1532: uint16(20), + 1533: uint16(20), + 1534: uint16(325), + 1535: uint16(299), + 1536: uint16(119), + 1537: uint16(119), + 1538: uint16(164), + 1539: uint16(76), + 1540: uint16(76), + 1541: uint16(1529), + 1542: uint16(121), + 1543: uint16(568), + 1544: uint16(120), + 1545: uint16(4), + 1546: uint16(451), + 1547: uint16(577), + 1548: uint16(451), + 1549: uint16(203), + 1550: uint16(576), + 1551: uint16(1028), + 1552: uint16(141), + 1553: uint16(141), + 1554: uint16(142), + 1555: uint16(142), + 1556: uint16(576), + 1557: uint16(322), + 1558: uint16(39), + 1559: uint16(571), + 1560: uint16(341), + 1561: uint16(1021), + 1562: uint16(110), + 1563: uint16(264), + 1564: uint16(239), + 1565: uint16(901), + 1566: uint16(900), + 1567: uint16(423), + 1568: uint16(242), + 1569: uint16(908), + 1570: uint16(909), + 1571: uint16(370), + 1572: uint16(173), + 1573: uint16(77), + 1574: uint16(77), + 1575: uint16(43), + 1576: uint16(479), + 1577: uint16(1310), + 1578: uint16(264), + 1579: uint16(62), + 1580: uint16(62), + 1581: uint16(369), + 1582: uint16(451), + 1583: uint16(1028), + 1584: uint16(1028), + 1585: uint16(1030), + 1586: uint16(1031), + 1587: uint16(35), + 1588: uint16(1601), + 1589: uint16(1192), + 1590: uint16(453), + 1591: uint16(1092), + 1592: uint16(238), + 1593: uint16(291), + 1594: uint16(565), + 1595: uint16(163), + 1596: uint16(1309), 1597: uint16(110), - 1598: uint16(110), - 1599: uint16(1019), - 1600: uint16(157), - 1601: uint16(157), - 1602: uint16(141), - 1603: uint16(141), - 1604: uint16(572), - 1605: uint16(111), - 1606: uint16(572), - 1607: uint16(449), - 1608: uint16(573), - 1609: uint16(449), - 1610: uint16(412), - 1611: uint16(288), - 1612: uint16(1019), - 1613: uint16(572), - 1614: uint16(882), - 1615: uint16(318), - 1616: uint16(563), - 1617: uint16(572), - 1618: uint16(219), - 1619: uint16(572), - 1620: uint16(241), - 1621: uint16(1012), - 1622: uint16(477), - 1623: uint16(263), - 1624: uint16(263), - 1625: uint16(894), - 1626: uint16(893), - 1627: uint16(140), - 1628: uint16(140), - 1629: uint16(138), - 1630: uint16(138), - 1631: uint16(1019), - 1632: uint16(1019), - 1633: uint16(1021), - 1634: uint16(1022), - 1635: uint16(28), - 1636: uint16(139), - 1637: uint16(139), - 1638: uint16(525), - 1639: uint16(455), - 1640: uint16(76), - 1641: uint16(76), - 1642: uint16(78), - 1643: uint16(78), - 1644: uint16(1019), - 1645: uint16(1019), - 1646: uint16(1021), - 1647: uint16(1022), - 1648: uint16(28), - 1649: uint16(1181), - 1650: uint16(451), - 1651: uint16(572), - 1652: uint16(1083), - 1653: uint16(290), - 1654: uint16(112), - 1655: uint16(564), - 1656: uint16(1575), - 1657: uint16(4), - 1658: uint16(394), - 1659: uint16(394), - 1660: uint16(393), - 1661: uint16(275), - 1662: uint16(391), - 1663: uint16(572), - 1664: uint16(1023), - 1665: uint16(852), - 1666: uint16(572), - 1667: uint16(479), - 1668: uint16(345), - 1669: uint16(263), - 1670: uint16(101), - 1671: uint16(567), - 1672: uint16(882), - 1673: uint16(1376), - 1674: uint16(75), - 1675: uint16(75), - 1676: uint16(1421), - 1677: uint16(501), - 1678: uint16(236), - 1679: uint16(260), - 1680: uint16(325), - 1681: uint16(112), - 1682: uint16(564), - 1683: uint16(359), - 1684: uint16(4), - 1685: uint16(101), - 1686: uint16(43), - 1687: uint16(43), - 1688: uint16(324), - 1689: uint16(49), - 1690: uint16(49), - 1691: uint16(901), - 1692: uint16(902), - 1693: uint16(161), - 1694: uint16(449), - 1695: uint16(101), - 1696: uint16(977), - 1697: uint16(978), - 1698: uint16(567), - 1699: uint16(1079), - 1700: uint16(1349), - 1701: uint16(260), - 1702: uint16(965), - 1703: uint16(932), - 1704: uint16(263), - 1705: uint16(114), - 1706: uint16(561), - 1707: uint16(1095), - 1708: uint16(517), - 1709: uint16(1095), - 1710: uint16(1083), - 1711: uint16(1094), - 1712: uint16(865), - 1713: uint16(1094), - 1714: uint16(151), - 1715: uint16(933), - 1716: uint16(1144), - 1717: uint16(114), - 1718: uint16(238), - 1719: uint16(1361), - 1720: uint16(558), - 1721: uint16(449), - 1722: uint16(1023), - 1723: uint16(559), - 1724: uint16(1426), - 1725: uint16(1278), - 1726: uint16(170), - 1727: uint16(1269), - 1728: uint16(1257), - 1729: uint16(142), - 1730: uint16(1601), - 1731: uint16(1256), - 1732: uint16(1258), - 1733: uint16(561), - 1734: uint16(1594), - 1735: uint16(1031), - 1736: uint16(496), - 1737: uint16(278), - 1738: uint16(213), - 1739: uint16(1346), - 1740: uint16(310), - 1741: uint16(110), - 1742: uint16(110), - 1743: uint16(939), - 1744: uint16(311), - 1745: uint16(312), - 1746: uint16(237), - 1747: uint16(11), - 1748: uint16(234), - 1749: uint16(111), - 1750: uint16(221), - 1751: uint16(449), - 1752: uint16(573), - 1753: uint16(449), - 1754: uint16(293), - 1755: uint16(395), - 1756: uint16(1019), - 1757: uint16(1408), - 1758: uint16(337), - 1759: uint16(1403), - 1760: uint16(1396), - 1761: uint16(338), - 1762: uint16(1031), - 1763: uint16(299), - 1764: uint16(343), - 1765: uint16(1413), - 1766: uint16(1412), - 1767: uint16(481), - 1768: uint16(110), - 1769: uint16(110), - 1770: uint16(506), - 1771: uint16(402), - 1772: uint16(225), - 1773: uint16(1296), - 1774: uint16(206), - 1775: uint16(367), - 1776: uint16(111), - 1777: uint16(1358), - 1778: uint16(449), - 1779: uint16(573), - 1780: uint16(449), - 1781: uint16(412), - 1782: uint16(1359), - 1783: uint16(1019), - 1784: uint16(1489), - 1785: uint16(1488), - 1786: uint16(318), - 1787: uint16(563), - 1788: uint16(1019), - 1789: uint16(1019), - 1790: uint16(1021), - 1791: uint16(1022), - 1792: uint16(28), - 1793: uint16(562), - 1794: uint16(207), - 1795: uint16(220), - 1796: uint16(80), - 1797: uint16(564), - 1798: uint16(389), - 1799: uint16(4), - 1800: uint16(1597), - 1801: uint16(1357), - 1802: uint16(552), - 1803: uint16(1356), - 1804: uint16(1233), - 1805: uint16(181), - 1806: uint16(267), - 1807: uint16(232), - 1808: uint16(1536), - 1809: uint16(1534), - 1810: uint16(455), - 1811: uint16(1230), - 1812: uint16(420), - 1813: uint16(567), - 1814: uint16(82), - 1815: uint16(1019), - 1816: uint16(1019), - 1817: uint16(1021), - 1818: uint16(1022), - 1819: uint16(28), - 1820: uint16(86), - 1821: uint16(217), - 1822: uint16(85), - 1823: uint16(1494), - 1824: uint16(190), - 1825: uint16(175), - 1826: uint16(183), - 1827: uint16(465), - 1828: uint16(185), - 1829: uint16(466), - 1830: uint16(36), - 1831: uint16(1409), - 1832: uint16(186), - 1833: uint16(187), - 1834: uint16(188), - 1835: uint16(499), - 1836: uint16(449), - 1837: uint16(244), - 1838: uint16(37), - 1839: uint16(99), - 1840: uint16(400), - 1841: uint16(1415), - 1842: uint16(1414), - 1843: uint16(488), - 1844: uint16(1417), - 1845: uint16(194), - 1846: uint16(473), - 1847: uint16(403), - 1848: uint16(561), - 1849: uint16(1483), - 1850: uint16(248), - 1851: uint16(92), - 1852: uint16(1505), - 1853: uint16(494), - 1854: uint16(198), - 1855: uint16(279), - 1856: uint16(112), - 1857: uint16(564), - 1858: uint16(250), - 1859: uint16(4), - 1860: uint16(348), - 1861: uint16(497), - 1862: uint16(405), - 1863: uint16(352), - 1864: uint16(1259), - 1865: uint16(251), - 1866: uint16(252), - 1867: uint16(515), - 1868: uint16(1316), - 1869: uint16(434), - 1870: uint16(1315), - 1871: uint16(1314), - 1872: uint16(94), - 1873: uint16(567), - 1874: uint16(1307), - 1875: uint16(886), - 1876: uint16(1306), - 1877: uint16(1031), - 1878: uint16(226), - 1879: uint16(406), - 1880: uint16(1611), - 1881: uint16(1610), - 1882: uint16(438), - 1883: uint16(110), - 1884: uint16(110), - 1885: uint16(1580), - 1886: uint16(1286), - 1887: uint16(524), - 1888: uint16(439), - 1889: uint16(308), - 1890: uint16(266), - 1891: uint16(111), - 1892: uint16(1285), - 1893: uint16(449), - 1894: uint16(573), - 1895: uint16(449), - 1896: uint16(449), - 1897: uint16(309), - 1898: uint16(1019), - 1899: uint16(366), - 1900: uint16(1284), - 1901: uint16(1609), - 1902: uint16(265), - 1903: uint16(1566), - 1904: uint16(1565), - 1905: uint16(442), - 1906: uint16(372), - 1907: uint16(1381), - 1908: uint16(561), - 1909: uint16(129), - 1910: uint16(550), - 1911: uint16(1380), - 1912: uint16(10), - 1913: uint16(1470), - 1914: uint16(383), - 1915: uint16(106), - 1916: uint16(316), - 1917: uint16(551), - 1918: uint16(100), - 1919: uint16(35), - 1920: uint16(534), - 1921: uint16(575), - 1922: uint16(212), - 1923: uint16(1339), - 1924: uint16(381), - 1925: uint16(387), - 1926: uint16(1187), - 1927: uint16(1338), - 1928: uint16(274), - 1929: uint16(276), - 1930: uint16(1019), - 1931: uint16(1019), - 1932: uint16(1021), - 1933: uint16(1022), - 1934: uint16(28), - 1935: uint16(277), - 1936: uint16(413), - 1937: uint16(1031), - 1938: uint16(576), - 1939: uint16(1254), - 1940: uint16(388), - 1941: uint16(1521), - 1942: uint16(1249), - 1943: uint16(110), - 1944: uint16(110), - 1945: uint16(167), - 1946: uint16(1522), - 1947: uint16(168), - 1948: uint16(148), - 1949: uint16(1520), - 1950: uint16(1519), - 1951: uint16(111), - 1952: uint16(306), - 1953: uint16(449), - 1954: uint16(573), - 1955: uint16(449), - 1956: uint16(222), - 1957: uint16(223), - 1958: uint16(1019), - 1959: uint16(839), - 1960: uint16(169), - 1961: uint16(79), - 1962: uint16(450), - 1963: uint16(214), - 1964: uint16(414), - 1965: uint16(233), - 1966: uint16(320), - 1967: uint16(145), - 1968: uint16(1093), - 1969: uint16(1091), - 1970: uint16(328), - 1971: uint16(182), - 1972: uint16(171), - 1973: uint16(1212), - 1974: uint16(918), - 1975: uint16(184), - 1976: uint16(240), - 1977: uint16(336), - 1978: uint16(243), - 1979: uint16(1107), - 1980: uint16(189), - 1981: uint16(172), - 1982: uint16(173), - 1983: uint16(423), - 1984: uint16(425), - 1985: uint16(88), - 1986: uint16(180), - 1987: uint16(191), - 1988: uint16(89), - 1989: uint16(90), - 1990: uint16(1019), - 1991: uint16(1019), - 1992: uint16(1021), - 1993: uint16(1022), - 1994: uint16(28), - 1995: uint16(91), - 1996: uint16(174), - 1997: uint16(1110), - 1998: uint16(245), - 1999: uint16(1106), - 2000: uint16(246), - 2001: uint16(159), - 2002: uint16(18), - 2003: uint16(247), - 2004: uint16(347), - 2005: uint16(1099), - 2006: uint16(263), - 2007: uint16(195), - 2008: uint16(1227), - 2009: uint16(493), - 2010: uint16(249), - 2011: uint16(196), - 2012: uint16(38), - 2013: uint16(854), - 2014: uint16(498), - 2015: uint16(368), - 2016: uint16(253), - 2017: uint16(360), - 2018: uint16(897), - 2019: uint16(197), - 2020: uint16(502), - 2021: uint16(93), - 2022: uint16(19), - 2023: uint16(20), - 2024: uint16(507), - 2025: uint16(884), - 2026: uint16(363), - 2027: uint16(510), - 2028: uint16(95), - 2029: uint16(307), - 2030: uint16(160), - 2031: uint16(96), - 2032: uint16(518), - 2033: uint16(97), - 2034: uint16(1175), - 2035: uint16(1060), - 2036: uint16(1146), - 2037: uint16(40), - 2038: uint16(21), - 2039: uint16(227), - 2040: uint16(176), - 2041: uint16(1145), - 2042: uint16(282), - 2043: uint16(284), - 2044: uint16(969), - 2045: uint16(200), - 2046: uint16(963), - 2047: uint16(114), - 2048: uint16(262), - 2049: uint16(1165), - 2050: uint16(22), - 2051: uint16(23), - 2052: uint16(24), - 2053: uint16(1161), - 2054: uint16(1169), - 2055: uint16(25), - 2056: uint16(1163), - 2057: uint16(1150), - 2058: uint16(34), - 2059: uint16(26), - 2060: uint16(1168), - 2061: uint16(546), - 2062: uint16(27), - 2063: uint16(204), - 2064: uint16(101), - 2065: uint16(103), - 2066: uint16(104), - 2067: uint16(1074), - 2068: uint16(7), - 2069: uint16(1061), - 2070: uint16(1059), - 2071: uint16(1063), - 2072: uint16(1116), - 2073: uint16(1064), - 2074: uint16(1115), - 2075: uint16(268), - 2076: uint16(269), - 2077: uint16(29), - 2078: uint16(41), - 2079: uint16(270), - 2080: uint16(1024), - 2081: uint16(866), - 2082: uint16(113), - 2083: uint16(30), - 2084: uint16(568), - 2085: uint16(392), - 2086: uint16(1183), - 2087: uint16(144), - 2088: uint16(178), - 2089: uint16(1182), - 2090: uint16(271), - 2091: uint16(928), - 2092: uint16(1245), - 2093: uint16(1245), - 2094: uint16(1245), - 2095: uint16(1245), - 2096: uint16(1245), - 2097: uint16(1245), - 2098: uint16(1245), - 2099: uint16(1602), -} -var _yy_lookahead = [2285]uint16{ - 0: uint16(193), - 1: uint16(193), - 2: uint16(193), - 3: uint16(274), - 4: uint16(275), - 5: uint16(276), - 6: uint16(193), - 7: uint16(274), - 8: uint16(275), - 9: uint16(276), - 10: uint16(193), - 11: uint16(223), - 12: uint16(219), - 13: uint16(225), - 14: uint16(206), - 15: uint16(210), - 16: uint16(211), - 17: uint16(212), - 18: uint16(193), + 1598: uint16(395), + 1599: uint16(395), + 1600: uint16(394), + 1601: uint16(276), + 1602: uint16(392), + 1603: uint16(986), + 1604: uint16(987), + 1605: uint16(859), + 1606: uint16(481), + 1607: uint16(346), + 1608: uint16(264), + 1609: uint16(110), + 1610: uint16(1032), + 1611: uint16(489), + 1612: uint16(576), + 1613: uint16(1188), + 1614: uint16(503), + 1615: uint16(1088), + 1616: uint16(261), + 1617: uint16(261), + 1618: uint16(237), + 1619: uint16(576), + 1620: uint16(326), + 1621: uint16(121), + 1622: uint16(568), + 1623: uint16(1040), + 1624: uint16(4), + 1625: uint16(347), + 1626: uint16(1376), + 1627: uint16(413), + 1628: uint16(325), + 1629: uint16(119), + 1630: uint16(119), + 1631: uint16(948), + 1632: uint16(319), + 1633: uint16(567), + 1634: uint16(351), + 1635: uint16(78), + 1636: uint16(78), + 1637: uint16(120), + 1638: uint16(571), + 1639: uint16(451), + 1640: uint16(577), + 1641: uint16(451), + 1642: uint16(79), + 1643: uint16(79), + 1644: uint16(1028), + 1645: uint16(354), + 1646: uint16(356), + 1647: uint16(576), + 1648: uint16(360), + 1649: uint16(1092), + 1650: uint16(110), + 1651: uint16(576), + 1652: uint16(974), + 1653: uint16(942), + 1654: uint16(264), + 1655: uint16(123), + 1656: uint16(457), + 1657: uint16(358), + 1658: uint16(239), + 1659: uint16(576), + 1660: uint16(519), + 1661: uint16(451), + 1662: uint16(939), + 1663: uint16(1104), + 1664: uint16(123), + 1665: uint16(1104), + 1666: uint16(173), + 1667: uint16(576), + 1668: uint16(1032), + 1669: uint16(43), + 1670: uint16(63), + 1671: uint16(63), + 1672: uint16(1324), + 1673: uint16(565), + 1674: uint16(168), + 1675: uint16(168), + 1676: uint16(1028), + 1677: uint16(1028), + 1678: uint16(1030), + 1679: uint16(1031), + 1680: uint16(35), + 1681: uint16(576), + 1682: uint16(169), + 1683: uint16(169), + 1684: uint16(1308), + 1685: uint16(872), + 1686: uint16(238), + 1687: uint16(157), + 1688: uint16(1589), + 1689: uint16(576), + 1690: uint16(86), + 1691: uint16(86), + 1692: uint16(365), + 1693: uint16(89), + 1694: uint16(568), + 1695: uint16(375), + 1696: uint16(4), + 1697: uint16(1103), + 1698: uint16(941), + 1699: uint16(1103), + 1700: uint16(123), + 1701: uint16(576), + 1702: uint16(1040), + 1703: uint16(1389), + 1704: uint16(64), + 1705: uint16(64), + 1706: uint16(1188), + 1707: uint16(1434), + 1708: uint16(119), + 1709: uint16(119), + 1710: uint16(571), + 1711: uint16(576), + 1712: uint16(82), + 1713: uint16(82), + 1714: uint16(563), + 1715: uint16(576), + 1716: uint16(120), + 1717: uint16(165), + 1718: uint16(451), + 1719: uint16(577), + 1720: uint16(451), + 1721: uint16(413), + 1722: uint16(1362), + 1723: uint16(1028), + 1724: uint16(144), + 1725: uint16(144), + 1726: uint16(319), + 1727: uint16(567), + 1728: uint16(576), + 1729: uint16(1374), + 1730: uint16(562), + 1731: uint16(498), + 1732: uint16(279), + 1733: uint16(451), + 1734: uint16(83), + 1735: uint16(83), + 1736: uint16(1439), + 1737: uint16(576), + 1738: uint16(166), + 1739: uint16(166), + 1740: uint16(576), + 1741: uint16(1289), + 1742: uint16(554), + 1743: uint16(576), + 1744: uint16(1280), + 1745: uint16(565), + 1746: uint16(576), + 1747: uint16(12), + 1748: uint16(576), + 1749: uint16(1268), + 1750: uint16(457), + 1751: uint16(146), + 1752: uint16(146), + 1753: uint16(1267), + 1754: uint16(576), + 1755: uint16(1028), + 1756: uint16(1028), + 1757: uint16(1030), + 1758: uint16(1031), + 1759: uint16(35), + 1760: uint16(140), + 1761: uint16(140), + 1762: uint16(1269), + 1763: uint16(167), + 1764: uint16(167), + 1765: uint16(1609), + 1766: uint16(160), + 1767: uint16(160), + 1768: uint16(1359), + 1769: uint16(150), + 1770: uint16(150), + 1771: uint16(149), + 1772: uint16(149), + 1773: uint16(311), + 1774: uint16(1040), + 1775: uint16(576), + 1776: uint16(312), + 1777: uint16(147), + 1778: uint16(147), + 1779: uint16(313), + 1780: uint16(119), + 1781: uint16(119), + 1782: uint16(222), + 1783: uint16(235), + 1784: uint16(576), + 1785: uint16(1188), + 1786: uint16(396), + 1787: uint16(576), + 1788: uint16(120), + 1789: uint16(576), + 1790: uint16(451), + 1791: uint16(577), + 1792: uint16(451), + 1793: uint16(1192), + 1794: uint16(453), + 1795: uint16(1028), + 1796: uint16(508), + 1797: uint16(291), + 1798: uint16(148), + 1799: uint16(148), + 1800: uint16(1421), + 1801: uint16(1612), + 1802: uint16(395), + 1803: uint16(395), + 1804: uint16(394), + 1805: uint16(276), + 1806: uint16(392), + 1807: uint16(85), + 1808: uint16(85), + 1809: uint16(859), + 1810: uint16(87), + 1811: uint16(87), + 1812: uint16(84), + 1813: uint16(84), + 1814: uint16(553), + 1815: uint16(576), + 1816: uint16(294), + 1817: uint16(576), + 1818: uint16(1426), + 1819: uint16(338), + 1820: uint16(339), + 1821: uint16(1425), + 1822: uint16(237), + 1823: uint16(300), + 1824: uint16(326), + 1825: uint16(1416), + 1826: uint16(1409), + 1827: uint16(1028), + 1828: uint16(1028), + 1829: uint16(1030), + 1830: uint16(1031), + 1831: uint16(35), + 1832: uint16(325), + 1833: uint16(344), + 1834: uint16(403), + 1835: uint16(483), + 1836: uint16(226), + 1837: uint16(1307), + 1838: uint16(52), + 1839: uint16(52), + 1840: uint16(58), + 1841: uint16(58), + 1842: uint16(368), + 1843: uint16(1371), + 1844: uint16(1502), + 1845: uint16(566), + 1846: uint16(1501), + 1847: uint16(121), + 1848: uint16(568), + 1849: uint16(221), + 1850: uint16(4), + 1851: uint16(208), + 1852: uint16(268), + 1853: uint16(209), + 1854: uint16(390), + 1855: uint16(1244), + 1856: uint16(1549), + 1857: uint16(1188), + 1858: uint16(1372), + 1859: uint16(1370), + 1860: uint16(1369), + 1861: uint16(1547), + 1862: uint16(239), + 1863: uint16(184), + 1864: uint16(571), + 1865: uint16(233), + 1866: uint16(421), + 1867: uint16(1241), + 1868: uint16(95), + 1869: uint16(218), + 1870: uint16(173), + 1871: uint16(1507), + 1872: uint16(193), + 1873: uint16(43), + 1874: uint16(91), + 1875: uint16(94), + 1876: uint16(178), + 1877: uint16(186), + 1878: uint16(467), + 1879: uint16(188), + 1880: uint16(468), + 1881: uint16(1422), + 1882: uint16(13), + 1883: uint16(189), + 1884: uint16(190), + 1885: uint16(191), + 1886: uint16(501), + 1887: uint16(451), + 1888: uint16(245), + 1889: uint16(108), + 1890: uint16(238), + 1891: uint16(401), + 1892: uint16(1428), + 1893: uint16(1427), + 1894: uint16(1430), + 1895: uint16(475), + 1896: uint16(404), + 1897: uint16(1496), + 1898: uint16(197), + 1899: uint16(565), + 1900: uint16(14), + 1901: uint16(490), + 1902: uint16(249), + 1903: uint16(101), + 1904: uint16(1518), + 1905: uint16(496), + 1906: uint16(349), + 1907: uint16(280), + 1908: uint16(251), + 1909: uint16(201), + 1910: uint16(353), + 1911: uint16(499), + 1912: uint16(252), + 1913: uint16(406), + 1914: uint16(1270), + 1915: uint16(253), + 1916: uint16(517), + 1917: uint16(1327), + 1918: uint16(1326), + 1919: uint16(435), + 1920: uint16(1325), + 1921: uint16(1318), + 1922: uint16(103), + 1923: uint16(893), + 1924: uint16(1296), + 1925: uint16(413), + 1926: uint16(227), + 1927: uint16(407), + 1928: uint16(1040), + 1929: uint16(1626), + 1930: uint16(319), + 1931: uint16(567), + 1932: uint16(1625), + 1933: uint16(1297), + 1934: uint16(119), + 1935: uint16(119), + 1936: uint16(439), + 1937: uint16(367), + 1938: uint16(1317), + 1939: uint16(1295), + 1940: uint16(1624), + 1941: uint16(526), + 1942: uint16(120), + 1943: uint16(440), + 1944: uint16(451), + 1945: uint16(577), + 1946: uint16(451), + 1947: uint16(1594), + 1948: uint16(309), + 1949: uint16(1028), + 1950: uint16(310), + 1951: uint16(373), + 1952: uint16(266), + 1953: uint16(267), + 1954: uint16(457), + 1955: uint16(1580), + 1956: uint16(1579), + 1957: uint16(443), + 1958: uint16(138), + 1959: uint16(1394), + 1960: uint16(552), + 1961: uint16(1393), + 1962: uint16(11), + 1963: uint16(1483), + 1964: uint16(384), + 1965: uint16(115), + 1966: uint16(317), + 1967: uint16(1350), + 1968: uint16(109), + 1969: uint16(536), + 1970: uint16(42), + 1971: uint16(579), + 1972: uint16(382), + 1973: uint16(214), + 1974: uint16(1349), + 1975: uint16(388), + 1976: uint16(1198), + 1977: uint16(389), + 1978: uint16(275), + 1979: uint16(277), + 1980: uint16(278), + 1981: uint16(1028), + 1982: uint16(1028), + 1983: uint16(1030), + 1984: uint16(1031), + 1985: uint16(35), + 1986: uint16(580), + 1987: uint16(1265), + 1988: uint16(414), + 1989: uint16(1260), + 1990: uint16(170), + 1991: uint16(415), + 1992: uint16(183), + 1993: uint16(1534), + 1994: uint16(1535), + 1995: uint16(1533), + 1996: uint16(171), + 1997: uint16(154), + 1998: uint16(307), + 1999: uint16(1532), + 2000: uint16(846), + 2001: uint16(223), + 2002: uint16(224), + 2003: uint16(88), + 2004: uint16(452), + 2005: uint16(215), + 2006: uint16(172), + 2007: uint16(321), + 2008: uint16(234), + 2009: uint16(1102), + 2010: uint16(152), + 2011: uint16(1188), + 2012: uint16(1100), + 2013: uint16(329), + 2014: uint16(185), + 2015: uint16(174), + 2016: uint16(1223), + 2017: uint16(925), + 2018: uint16(187), + 2019: uint16(241), + 2020: uint16(337), + 2021: uint16(244), + 2022: uint16(1116), + 2023: uint16(192), + 2024: uint16(175), + 2025: uint16(176), + 2026: uint16(424), + 2027: uint16(426), + 2028: uint16(97), + 2029: uint16(194), + 2030: uint16(98), + 2031: uint16(99), + 2032: uint16(100), + 2033: uint16(177), + 2034: uint16(1119), + 2035: uint16(1115), + 2036: uint16(246), + 2037: uint16(247), + 2038: uint16(161), + 2039: uint16(24), + 2040: uint16(248), + 2041: uint16(348), + 2042: uint16(1238), + 2043: uint16(264), + 2044: uint16(1108), + 2045: uint16(250), + 2046: uint16(495), + 2047: uint16(199), + 2048: uint16(198), + 2049: uint16(15), + 2050: uint16(861), + 2051: uint16(500), + 2052: uint16(369), + 2053: uint16(254), + 2054: uint16(504), + 2055: uint16(509), + 2056: uint16(512), + 2057: uint16(200), + 2058: uint16(102), + 2059: uint16(25), + 2060: uint16(179), + 2061: uint16(361), + 2062: uint16(26), + 2063: uint16(364), + 2064: uint16(104), + 2065: uint16(891), + 2066: uint16(308), + 2067: uint16(162), + 2068: uint16(105), + 2069: uint16(904), + 2070: uint16(520), + 2071: uint16(106), + 2072: uint16(1185), + 2073: uint16(1069), + 2074: uint16(1155), + 2075: uint16(17), + 2076: uint16(228), + 2077: uint16(27), + 2078: uint16(1154), + 2079: uint16(283), + 2080: uint16(285), + 2081: uint16(263), + 2082: uint16(978), + 2083: uint16(202), + 2084: uint16(972), + 2085: uint16(123), + 2086: uint16(28), + 2087: uint16(1175), + 2088: uint16(29), + 2089: uint16(30), + 2090: uint16(1179), + 2091: uint16(1171), + 2092: uint16(31), + 2093: uint16(1173), + 2094: uint16(1160), + 2095: uint16(41), + 2096: uint16(32), + 2097: uint16(206), + 2098: uint16(548), + 2099: uint16(33), + 2100: uint16(110), + 2101: uint16(1178), + 2102: uint16(1083), + 2103: uint16(8), + 2104: uint16(112), + 2105: uint16(1070), + 2106: uint16(113), + 2107: uint16(1068), + 2108: uint16(1072), + 2109: uint16(34), + 2110: uint16(1073), + 2111: uint16(560), + 2112: uint16(1125), + 2113: uint16(269), + 2114: uint16(1124), + 2115: uint16(270), + 2116: uint16(36), + 2117: uint16(18), + 2118: uint16(1194), + 2119: uint16(1033), + 2120: uint16(873), + 2121: uint16(151), + 2122: uint16(122), + 2123: uint16(37), + 2124: uint16(393), + 2125: uint16(271), + 2126: uint16(272), + 2127: uint16(572), + 2128: uint16(181), + 2129: uint16(1193), + 2130: uint16(1256), + 2131: uint16(1256), + 2132: uint16(1256), + 2133: uint16(935), + 2134: uint16(1256), + 2135: uint16(1256), + 2136: uint16(1256), + 2137: uint16(1256), + 2138: uint16(1256), + 2139: uint16(1256), + 2140: uint16(1256), + 2141: uint16(1617), +} +var _yy_lookahead = [2328]uint16{ + 0: uint16(194), + 1: uint16(276), + 2: uint16(277), + 3: uint16(278), + 4: uint16(216), + 5: uint16(194), + 6: uint16(194), + 7: uint16(217), + 8: uint16(194), + 9: uint16(194), + 10: uint16(194), + 11: uint16(194), + 12: uint16(224), + 13: uint16(194), + 14: uint16(194), + 15: uint16(276), + 16: uint16(277), + 17: uint16(278), + 18: uint16(204), 19: uint16(19), - 20: uint16(219), - 21: uint16(233), - 22: uint16(216), - 23: uint16(216), - 24: uint16(217), - 25: uint16(216), - 26: uint16(217), - 27: uint16(193), - 28: uint16(295), - 29: uint16(216), - 30: uint16(217), + 20: uint16(206), + 21: uint16(202), + 22: uint16(297), + 23: uint16(217), + 24: uint16(218), + 25: uint16(205), + 26: uint16(207), + 27: uint16(217), + 28: uint16(205), + 29: uint16(217), + 30: uint16(218), 31: uint16(31), - 32: uint16(193), - 33: uint16(216), + 32: uint16(217), + 33: uint16(218), 34: uint16(217), - 35: uint16(193), - 36: uint16(228), - 37: uint16(213), - 38: uint16(230), + 35: uint16(218), + 36: uint16(29), + 37: uint16(217), + 38: uint16(218), 39: uint16(39), - 40: uint16(206), - 41: uint16(216), - 42: uint16(217), + 40: uint16(33), + 41: uint16(217), + 42: uint16(220), 43: uint16(43), 44: uint16(44), 45: uint16(45), @@ -154771,31 +156279,31 @@ var _yy_lookahead = [2285]uint16{ 55: uint16(55), 56: uint16(56), 57: uint16(57), - 58: uint16(193), + 58: uint16(312), 59: uint16(19), - 60: uint16(185), - 61: uint16(186), - 62: uint16(187), - 63: uint16(188), - 64: uint16(189), - 65: uint16(190), - 66: uint16(253), - 67: uint16(274), - 68: uint16(275), - 69: uint16(276), - 70: uint16(195), - 71: uint16(193), - 72: uint16(197), - 73: uint16(193), - 74: uint16(261), - 75: uint16(274), - 76: uint16(275), - 77: uint16(276), - 78: uint16(253), - 79: uint16(204), - 80: uint16(238), - 81: uint16(204), - 82: uint16(81), + 60: uint16(240), + 61: uint16(241), + 62: uint16(316), + 63: uint16(240), + 64: uint16(241), + 65: uint16(194), + 66: uint16(46), + 67: uint16(47), + 68: uint16(48), + 69: uint16(49), + 70: uint16(22), + 71: uint16(254), + 72: uint16(65), + 73: uint16(253), + 74: uint16(254), + 75: uint16(255), + 76: uint16(253), + 77: uint16(194), + 78: uint16(255), + 79: uint16(194), + 80: uint16(263), + 81: uint16(258), + 82: uint16(259), 83: uint16(43), 84: uint16(44), 85: uint16(45), @@ -154811,10 +156319,10 @@ var _yy_lookahead = [2285]uint16{ 95: uint16(55), 96: uint16(56), 97: uint16(57), - 98: uint16(274), - 99: uint16(275), - 100: uint16(276), - 101: uint16(262), + 98: uint16(276), + 99: uint16(277), + 100: uint16(278), + 101: uint16(285), 102: uint16(102), 103: uint16(103), 104: uint16(104), @@ -154827,34 +156335,34 @@ var _yy_lookahead = [2285]uint16{ 111: uint16(111), 112: uint16(112), 113: uint16(113), - 114: uint16(239), - 115: uint16(240), - 116: uint16(239), - 117: uint16(240), - 118: uint16(210), - 119: uint16(211), - 120: uint16(212), - 121: uint16(314), - 122: uint16(315), - 123: uint16(314), - 124: uint16(59), - 125: uint16(316), + 114: uint16(59), + 115: uint16(186), + 116: uint16(187), + 117: uint16(188), + 118: uint16(189), + 119: uint16(190), + 120: uint16(191), + 121: uint16(310), + 122: uint16(239), + 123: uint16(317), + 124: uint16(318), + 125: uint16(196), 126: uint16(86), - 127: uint16(252), + 127: uint16(198), 128: uint16(88), - 129: uint16(252), + 129: uint16(317), 130: uint16(19), - 131: uint16(314), - 132: uint16(315), - 133: uint16(256), - 134: uint16(257), - 135: uint16(113), + 131: uint16(319), + 132: uint16(317), + 133: uint16(318), + 134: uint16(205), + 135: uint16(264), 136: uint16(25), - 137: uint16(72), - 138: uint16(296), - 139: uint16(138), - 140: uint16(139), - 141: uint16(266), + 137: uint16(211), + 138: uint16(212), + 139: uint16(213), + 140: uint16(205), + 141: uint16(121), 142: uint16(102), 143: uint16(103), 144: uint16(104), @@ -154882,50 +156390,50 @@ var _yy_lookahead = [2285]uint16{ 166: uint16(55), 167: uint16(56), 168: uint16(57), - 169: uint16(81), - 170: uint16(292), - 171: uint16(59), - 172: uint16(292), - 173: uint16(298), - 174: uint16(108), - 175: uint16(109), - 176: uint16(110), - 177: uint16(111), - 178: uint16(112), - 179: uint16(113), + 169: uint16(240), + 170: uint16(241), + 171: uint16(116), + 172: uint16(117), + 173: uint16(118), + 174: uint16(119), + 175: uint16(240), + 176: uint16(241), + 177: uint16(122), + 178: uint16(123), + 179: uint16(124), 180: uint16(69), - 181: uint16(116), - 182: uint16(117), - 183: uint16(118), - 184: uint16(72), + 181: uint16(298), + 182: uint16(253), + 183: uint16(194), + 184: uint16(255), 185: uint16(106), 186: uint16(107), - 187: uint16(193), - 188: uint16(111), - 189: uint16(112), - 190: uint16(113), + 187: uint16(132), + 188: uint16(253), + 189: uint16(141), + 190: uint16(255), 191: uint16(54), 192: uint16(55), 193: uint16(56), 194: uint16(57), 195: uint16(58), - 196: uint16(102), - 197: uint16(103), - 198: uint16(104), - 199: uint16(105), - 200: uint16(106), - 201: uint16(107), - 202: uint16(108), - 203: uint16(109), - 204: uint16(110), - 205: uint16(111), - 206: uint16(112), - 207: uint16(113), - 208: uint16(120), - 209: uint16(25), - 210: uint16(216), - 211: uint16(217), - 212: uint16(145), + 196: uint16(207), + 197: uint16(268), + 198: uint16(102), + 199: uint16(103), + 200: uint16(104), + 201: uint16(105), + 202: uint16(106), + 203: uint16(107), + 204: uint16(108), + 205: uint16(109), + 206: uint16(110), + 207: uint16(111), + 208: uint16(112), + 209: uint16(113), + 210: uint16(214), + 211: uint16(128), + 212: uint16(129), 213: uint16(102), 214: uint16(103), 215: uint16(104), @@ -154938,13 +156446,13 @@ var _yy_lookahead = [2285]uint16{ 222: uint16(111), 223: uint16(112), 224: uint16(113), - 225: uint16(231), - 226: uint16(138), - 227: uint16(139), - 228: uint16(116), - 229: uint16(117), - 230: uint16(118), - 231: uint16(164), + 225: uint16(134), + 226: uint16(25), + 227: uint16(136), + 228: uint16(137), + 229: uint16(300), + 230: uint16(165), + 231: uint16(166), 232: uint16(153), 233: uint16(19), 234: uint16(155), @@ -154964,12 +156472,12 @@ var _yy_lookahead = [2285]uint16{ 248: uint16(111), 249: uint16(112), 250: uint16(113), - 251: uint16(128), - 252: uint16(129), - 253: uint16(46), - 254: uint16(47), - 255: uint16(48), - 256: uint16(49), + 251: uint16(108), + 252: uint16(109), + 253: uint16(110), + 254: uint16(111), + 255: uint16(112), + 256: uint16(113), 257: uint16(43), 258: uint16(44), 259: uint16(45), @@ -154985,15 +156493,15 @@ var _yy_lookahead = [2285]uint16{ 269: uint16(55), 270: uint16(56), 271: uint16(57), - 272: uint16(216), - 273: uint16(193), - 274: uint16(25), - 275: uint16(59), - 276: uint16(193), + 272: uint16(276), + 273: uint16(277), + 274: uint16(278), + 275: uint16(113), + 276: uint16(194), 277: uint16(19), - 278: uint16(165), - 279: uint16(166), - 280: uint16(193), + 278: uint16(22), + 279: uint16(23), + 280: uint16(194), 281: uint16(67), 282: uint16(24), 283: uint16(102), @@ -155008,12 +156516,12 @@ var _yy_lookahead = [2285]uint16{ 292: uint16(111), 293: uint16(112), 294: uint16(113), - 295: uint16(73), - 296: uint16(216), - 297: uint16(217), - 298: uint16(59), - 299: uint16(216), - 300: uint16(217), + 295: uint16(220), + 296: uint16(250), + 297: uint16(59), + 298: uint16(252), + 299: uint16(217), + 300: uint16(218), 301: uint16(43), 302: uint16(44), 303: uint16(45), @@ -155041,38 +156549,38 @@ var _yy_lookahead = [2285]uint16{ 325: uint16(111), 326: uint16(112), 327: uint16(113), - 328: uint16(121), - 329: uint16(145), - 330: uint16(59), - 331: uint16(193), - 332: uint16(116), - 333: uint16(117), - 334: uint16(118), - 335: uint16(119), - 336: uint16(273), - 337: uint16(204), - 338: uint16(122), - 339: uint16(123), - 340: uint16(124), + 328: uint16(106), + 329: uint16(107), + 330: uint16(108), + 331: uint16(109), + 332: uint16(110), + 333: uint16(111), + 334: uint16(112), + 335: uint16(113), + 336: uint16(254), + 337: uint16(59), + 338: uint16(205), + 339: uint16(138), + 340: uint16(139), 341: uint16(19), 342: uint16(20), - 343: uint16(134), + 343: uint16(194), 344: uint16(22), - 345: uint16(136), - 346: uint16(137), - 347: uint16(19), - 348: uint16(132), - 349: uint16(127), - 350: uint16(128), - 351: uint16(129), - 352: uint16(24), - 353: uint16(22), - 354: uint16(23), - 355: uint16(116), - 356: uint16(117), - 357: uint16(118), + 345: uint16(263), + 346: uint16(22), + 347: uint16(23), + 348: uint16(231), + 349: uint16(25), + 350: uint16(72), + 351: uint16(276), + 352: uint16(277), + 353: uint16(278), + 354: uint16(116), + 355: uint16(117), + 356: uint16(118), + 357: uint16(101), 358: uint16(36), - 359: uint16(193), + 359: uint16(76), 360: uint16(102), 361: uint16(103), 362: uint16(104), @@ -155085,37 +156593,37 @@ var _yy_lookahead = [2285]uint16{ 369: uint16(111), 370: uint16(112), 371: uint16(113), - 372: uint16(239), + 372: uint16(89), 373: uint16(240), - 374: uint16(311), - 375: uint16(312), - 376: uint16(215), - 377: uint16(106), - 378: uint16(107), - 379: uint16(241), + 374: uint16(241), + 375: uint16(92), + 376: uint16(73), + 377: uint16(194), + 378: uint16(194), + 379: uint16(73), 380: uint16(19), 381: uint16(59), - 382: uint16(216), - 383: uint16(217), - 384: uint16(223), - 385: uint16(252), - 386: uint16(115), - 387: uint16(116), - 388: uint16(117), - 389: uint16(118), - 390: uint16(151), - 391: uint16(120), - 392: uint16(26), + 382: uint16(188), + 383: uint16(189), + 384: uint16(190), + 385: uint16(191), + 386: uint16(253), + 387: uint16(81), + 388: uint16(255), + 389: uint16(151), + 390: uint16(196), + 391: uint16(25), + 392: uint16(198), 393: uint16(71), - 394: uint16(193), - 395: uint16(308), - 396: uint16(309), - 397: uint16(193), - 398: uint16(149), - 399: uint16(128), - 400: uint16(313), - 401: uint16(216), - 402: uint16(269), + 394: uint16(116), + 395: uint16(117), + 396: uint16(118), + 397: uint16(311), + 398: uint16(312), + 399: uint16(205), + 400: uint16(217), + 401: uint16(218), + 402: uint16(316), 403: uint16(81), 404: uint16(43), 405: uint16(44), @@ -155132,50 +156640,50 @@ var _yy_lookahead = [2285]uint16{ 416: uint16(55), 417: uint16(56), 418: uint16(57), - 419: uint16(253), - 420: uint16(216), - 421: uint16(217), + 419: uint16(270), + 420: uint16(22), + 421: uint16(23), 422: uint16(100), - 423: uint16(95), - 424: uint16(153), - 425: uint16(59), - 426: uint16(155), - 427: uint16(261), + 423: uint16(25), + 424: uint16(59), + 425: uint16(101), + 426: uint16(138), + 427: uint16(139), 428: uint16(106), 429: uint16(107), - 430: uint16(25), - 431: uint16(193), - 432: uint16(101), - 433: uint16(193), - 434: uint16(193), - 435: uint16(231), + 430: uint16(127), + 431: uint16(128), + 432: uint16(129), + 433: uint16(127), + 434: uint16(240), + 435: uint16(241), 436: uint16(114), - 437: uint16(25), + 437: uint16(254), 438: uint16(116), 439: uint16(117), 440: uint16(118), - 441: uint16(113), - 442: uint16(304), + 441: uint16(76), + 442: uint16(76), 443: uint16(121), - 444: uint16(193), - 445: uint16(204), - 446: uint16(59), - 447: uint16(119), - 448: uint16(120), - 449: uint16(121), - 450: uint16(122), - 451: uint16(123), - 452: uint16(124), - 453: uint16(125), - 454: uint16(216), - 455: uint16(217), - 456: uint16(193), - 457: uint16(216), - 458: uint16(217), - 459: uint16(131), + 444: uint16(138), + 445: uint16(139), + 446: uint16(263), + 447: uint16(253), + 448: uint16(264), + 449: uint16(255), + 450: uint16(205), + 451: uint16(275), + 452: uint16(87), + 453: uint16(19), + 454: uint16(89), + 455: uint16(89), + 456: uint16(194), + 457: uint16(92), + 458: uint16(92), + 459: uint16(199), 460: uint16(138), 461: uint16(139), - 462: uint16(230), + 462: uint16(268), 463: uint16(102), 464: uint16(103), 465: uint16(104), @@ -155193,37 +156701,37 @@ var _yy_lookahead = [2285]uint16{ 477: uint16(155), 478: uint16(156), 479: uint16(157), - 480: uint16(239), - 481: uint16(240), - 482: uint16(116), - 483: uint16(117), - 484: uint16(118), - 485: uint16(76), - 486: uint16(193), - 487: uint16(23), + 480: uint16(81), + 481: uint16(116), + 482: uint16(117), + 483: uint16(118), + 484: uint16(129), + 485: uint16(240), + 486: uint16(241), + 487: uint16(224), 488: uint16(19), - 489: uint16(25), - 490: uint16(22), - 491: uint16(253), + 489: uint16(226), + 490: uint16(314), + 491: uint16(315), 492: uint16(23), - 493: uint16(252), - 494: uint16(253), - 495: uint16(108), - 496: uint16(87), - 497: uint16(204), - 498: uint16(89), - 499: uint16(261), - 500: uint16(198), - 501: uint16(92), - 502: uint16(261), - 503: uint16(116), - 504: uint16(117), - 505: uint16(118), - 506: uint16(193), - 507: uint16(306), - 508: uint16(307), - 509: uint16(216), - 510: uint16(217), + 493: uint16(25), + 494: uint16(300), + 495: uint16(59), + 496: uint16(22), + 497: uint16(234), + 498: uint16(253), + 499: uint16(101), + 500: uint16(255), + 501: uint16(236), + 502: uint16(237), + 503: uint16(26), + 504: uint16(194), + 505: uint16(183), + 506: uint16(194), + 507: uint16(152), + 508: uint16(72), + 509: uint16(22), + 510: uint16(145), 511: uint16(150), 512: uint16(43), 513: uint16(44), @@ -155240,34 +156748,34 @@ var _yy_lookahead = [2285]uint16{ 524: uint16(55), 525: uint16(56), 526: uint16(57), - 527: uint16(59), - 528: uint16(193), - 529: uint16(216), - 530: uint16(217), + 527: uint16(217), + 528: uint16(218), + 529: uint16(217), + 530: uint16(218), 531: uint16(19), - 532: uint16(239), - 533: uint16(240), - 534: uint16(283), + 532: uint16(189), + 533: uint16(59), + 534: uint16(191), 535: uint16(23), - 536: uint16(106), - 537: uint16(107), - 538: uint16(108), - 539: uint16(109), - 540: uint16(110), - 541: uint16(111), - 542: uint16(112), - 543: uint16(113), - 544: uint16(73), - 545: uint16(252), - 546: uint16(253), - 547: uint16(142), - 548: uint16(308), - 549: uint16(309), - 550: uint16(138), - 551: uint16(139), - 552: uint16(81), - 553: uint16(313), - 554: uint16(145), + 536: uint16(59), + 537: uint16(138), + 538: uint16(139), + 539: uint16(196), + 540: uint16(135), + 541: uint16(198), + 542: uint16(232), + 543: uint16(283), + 544: uint16(232), + 545: uint16(140), + 546: uint16(59), + 547: uint16(287), + 548: uint16(205), + 549: uint16(275), + 550: uint16(116), + 551: uint16(205), + 552: uint16(116), + 553: uint16(117), + 554: uint16(118), 555: uint16(43), 556: uint16(44), 557: uint16(45), @@ -155283,7 +156791,7 @@ var _yy_lookahead = [2285]uint16{ 567: uint16(55), 568: uint16(56), 569: uint16(57), - 570: uint16(307), + 570: uint16(194), 571: uint16(102), 572: uint16(103), 573: uint16(104), @@ -155296,37 +156804,37 @@ var _yy_lookahead = [2285]uint16{ 580: uint16(111), 581: uint16(112), 582: uint16(113), - 583: uint16(281), - 584: uint16(116), - 585: uint16(117), - 586: uint16(118), - 587: uint16(285), - 588: uint16(23), - 589: uint16(193), - 590: uint16(25), - 591: uint16(119), - 592: uint16(59), - 593: uint16(193), - 594: uint16(122), - 595: uint16(123), - 596: uint16(124), - 597: uint16(59), - 598: uint16(127), - 599: uint16(203), + 583: uint16(240), + 584: uint16(241), + 585: uint16(194), + 586: uint16(240), + 587: uint16(241), + 588: uint16(314), + 589: uint16(315), + 590: uint16(116), + 591: uint16(117), + 592: uint16(118), + 593: uint16(116), + 594: uint16(117), + 595: uint16(118), + 596: uint16(253), + 597: uint16(194), + 598: uint16(255), + 599: uint16(253), 600: uint16(59), - 601: uint16(205), + 601: uint16(255), 602: uint16(19), - 603: uint16(268), - 604: uint16(132), - 605: uint16(25), + 603: uint16(116), + 604: uint16(117), + 605: uint16(118), 606: uint16(23), 607: uint16(22), - 608: uint16(193), - 609: uint16(138), - 610: uint16(139), - 611: uint16(249), - 612: uint16(204), - 613: uint16(251), + 608: uint16(217), + 609: uint16(218), + 610: uint16(142), + 611: uint16(268), + 612: uint16(205), + 613: uint16(275), 614: uint16(102), 615: uint16(103), 616: uint16(104), @@ -155355,29 +156863,29 @@ var _yy_lookahead = [2285]uint16{ 639: uint16(56), 640: uint16(57), 641: uint16(19), - 642: uint16(22), - 643: uint16(23), + 642: uint16(194), + 643: uint16(300), 644: uint16(59), 645: uint16(23), - 646: uint16(25), - 647: uint16(239), - 648: uint16(240), - 649: uint16(116), - 650: uint16(117), - 651: uint16(118), - 652: uint16(193), - 653: uint16(11), - 654: uint16(116), - 655: uint16(117), - 656: uint16(118), - 657: uint16(116), + 646: uint16(119), + 647: uint16(240), + 648: uint16(241), + 649: uint16(122), + 650: uint16(123), + 651: uint16(124), + 652: uint16(314), + 653: uint16(315), + 654: uint16(194), + 655: uint16(236), + 656: uint16(237), + 657: uint16(194), 658: uint16(117), - 659: uint16(118), - 660: uint16(252), - 661: uint16(269), - 662: uint16(22), - 663: uint16(193), - 664: uint16(15), + 659: uint16(132), + 660: uint16(253), + 661: uint16(81), + 662: uint16(255), + 663: uint16(205), + 664: uint16(59), 665: uint16(43), 666: uint16(44), 667: uint16(45), @@ -155393,11 +156901,11 @@ var _yy_lookahead = [2285]uint16{ 677: uint16(55), 678: uint16(56), 679: uint16(57), - 680: uint16(273), - 681: uint16(143), - 682: uint16(193), - 683: uint16(118), - 684: uint16(143), + 680: uint16(217), + 681: uint16(218), + 682: uint16(194), + 683: uint16(194), + 684: uint16(194), 685: uint16(102), 686: uint16(103), 687: uint16(104), @@ -155410,33 +156918,33 @@ var _yy_lookahead = [2285]uint16{ 694: uint16(111), 695: uint16(112), 696: uint16(113), - 697: uint16(76), - 698: uint16(118), - 699: uint16(59), - 700: uint16(241), + 697: uint16(294), + 698: uint16(240), + 699: uint16(241), + 700: uint16(120), 701: uint16(116), 702: uint16(117), 703: uint16(118), - 704: uint16(304), - 705: uint16(216), + 704: uint16(59), + 705: uint16(194), 706: uint16(217), - 707: uint16(292), - 708: uint16(143), - 709: uint16(60), - 710: uint16(89), - 711: uint16(241), + 707: uint16(218), + 708: uint16(211), + 709: uint16(212), + 710: uint16(213), + 711: uint16(253), 712: uint16(19), - 713: uint16(92), - 714: uint16(193), - 715: uint16(193), + 713: uint16(255), + 714: uint16(194), + 715: uint16(19), 716: uint16(23), - 717: uint16(22), - 718: uint16(311), - 719: uint16(312), - 720: uint16(231), - 721: uint16(101), - 722: uint16(22), - 723: uint16(143), + 717: uint16(254), + 718: uint16(138), + 719: uint16(139), + 720: uint16(24), + 721: uint16(232), + 722: uint16(117), + 723: uint16(194), 724: uint16(102), 725: uint16(103), 726: uint16(104), @@ -155465,29 +156973,29 @@ var _yy_lookahead = [2285]uint16{ 749: uint16(56), 750: uint16(57), 751: uint16(19), - 752: uint16(193), - 753: uint16(193), - 754: uint16(59), + 752: uint16(264), + 753: uint16(108), + 754: uint16(76), 755: uint16(23), - 756: uint16(116), - 757: uint16(117), - 758: uint16(118), - 759: uint16(59), - 760: uint16(201), - 761: uint16(21), - 762: uint16(241), - 763: uint16(304), - 764: uint16(193), - 765: uint16(206), - 766: uint16(127), - 767: uint16(128), - 768: uint16(129), - 769: uint16(193), - 770: uint16(128), - 771: uint16(129), - 772: uint16(235), - 773: uint16(236), - 774: uint16(304), + 756: uint16(127), + 757: uint16(128), + 758: uint16(129), + 759: uint16(311), + 760: uint16(312), + 761: uint16(116), + 762: uint16(117), + 763: uint16(118), + 764: uint16(316), + 765: uint16(87), + 766: uint16(306), + 767: uint16(89), + 768: uint16(308), + 769: uint16(194), + 770: uint16(92), + 771: uint16(22), + 772: uint16(59), + 773: uint16(194), + 774: uint16(22), 775: uint16(43), 776: uint16(44), 777: uint16(45), @@ -155503,11 +157011,11 @@ var _yy_lookahead = [2285]uint16{ 787: uint16(55), 788: uint16(56), 789: uint16(57), - 790: uint16(22), - 791: uint16(193), - 792: uint16(216), - 793: uint16(217), - 794: uint16(193), + 790: uint16(194), + 791: uint16(95), + 792: uint16(217), + 793: uint16(218), + 794: uint16(265), 795: uint16(102), 796: uint16(103), 797: uint16(104), @@ -155520,33 +157028,33 @@ var _yy_lookahead = [2285]uint16{ 804: uint16(111), 805: uint16(112), 806: uint16(113), - 807: uint16(231), - 808: uint16(193), - 809: uint16(193), - 810: uint16(193), - 811: uint16(116), - 812: uint16(117), - 813: uint16(118), - 814: uint16(216), - 815: uint16(217), - 816: uint16(116), - 817: uint16(117), - 818: uint16(118), - 819: uint16(226), - 820: uint16(80), - 821: uint16(193), + 807: uint16(232), + 808: uint16(59), + 809: uint16(113), + 810: uint16(25), + 811: uint16(59), + 812: uint16(194), + 813: uint16(217), + 814: uint16(218), + 815: uint16(119), + 816: uint16(120), + 817: uint16(121), + 818: uint16(122), + 819: uint16(123), + 820: uint16(124), + 821: uint16(125), 822: uint16(19), - 823: uint16(235), - 824: uint16(236), - 825: uint16(304), + 823: uint16(145), + 824: uint16(194), + 825: uint16(194), 826: uint16(23), - 827: uint16(211), - 828: uint16(212), - 829: uint16(231), - 830: uint16(204), - 831: uint16(216), - 832: uint16(217), - 833: uint16(205), + 827: uint16(131), + 828: uint16(232), + 829: uint16(116), + 830: uint16(117), + 831: uint16(118), + 832: uint16(35), + 833: uint16(194), 834: uint16(102), 835: uint16(103), 836: uint16(104), @@ -155575,29 +157083,29 @@ var _yy_lookahead = [2285]uint16{ 859: uint16(56), 860: uint16(57), 861: uint16(19), - 862: uint16(193), - 863: uint16(123), - 864: uint16(76), - 865: uint16(239), - 866: uint16(240), - 867: uint16(193), - 868: uint16(253), - 869: uint16(239), - 870: uint16(240), - 871: uint16(239), - 872: uint16(240), - 873: uint16(244), - 874: uint16(106), - 875: uint16(107), - 876: uint16(193), - 877: uint16(89), - 878: uint16(252), - 879: uint16(193), - 880: uint16(92), - 881: uint16(59), - 882: uint16(252), - 883: uint16(254), - 884: uint16(252), + 862: uint16(194), + 863: uint16(66), + 864: uint16(194), + 865: uint16(116), + 866: uint16(117), + 867: uint16(118), + 868: uint16(116), + 869: uint16(117), + 870: uint16(118), + 871: uint16(74), + 872: uint16(242), + 873: uint16(294), + 874: uint16(194), + 875: uint16(194), + 876: uint16(206), + 877: uint16(23), + 878: uint16(194), + 879: uint16(25), + 880: uint16(194), + 881: uint16(111), + 882: uint16(112), + 883: uint16(113), + 884: uint16(25), 885: uint16(43), 886: uint16(44), 887: uint16(45), @@ -155613,11 +157121,11 @@ var _yy_lookahead = [2285]uint16{ 897: uint16(55), 898: uint16(56), 899: uint16(57), - 900: uint16(284), - 901: uint16(161), - 902: uint16(216), + 900: uint16(24), + 901: uint16(194), + 902: uint16(194), 903: uint16(217), - 904: uint16(193), + 904: uint16(218), 905: uint16(102), 906: uint16(103), 907: uint16(104), @@ -155630,33 +157138,33 @@ var _yy_lookahead = [2285]uint16{ 914: uint16(111), 915: uint16(112), 916: uint16(113), - 917: uint16(231), - 918: uint16(193), - 919: uint16(244), - 920: uint16(187), - 921: uint16(188), - 922: uint16(189), - 923: uint16(190), - 924: uint16(7), - 925: uint16(8), - 926: uint16(9), - 927: uint16(309), - 928: uint16(195), - 929: uint16(254), - 930: uint16(197), - 931: uint16(313), + 917: uint16(241), + 918: uint16(232), + 919: uint16(194), + 920: uint16(212), + 921: uint16(213), + 922: uint16(242), + 923: uint16(242), + 924: uint16(217), + 925: uint16(218), + 926: uint16(242), + 927: uint16(130), + 928: uint16(11), + 929: uint16(253), + 930: uint16(194), + 931: uint16(255), 932: uint16(19), - 933: uint16(127), - 934: uint16(128), - 935: uint16(129), - 936: uint16(262), - 937: uint16(204), - 938: uint16(22), - 939: uint16(117), - 940: uint16(24), - 941: uint16(216), + 933: uint16(265), + 934: uint16(149), + 935: uint16(59), + 936: uint16(306), + 937: uint16(194), + 938: uint16(308), + 939: uint16(232), + 940: uint16(309), + 941: uint16(310), 942: uint16(217), - 943: uint16(273), + 943: uint16(218), 944: uint16(102), 945: uint16(103), 946: uint16(104), @@ -155684,36 +157192,36 @@ var _yy_lookahead = [2285]uint16{ 968: uint16(55), 969: uint16(56), 970: uint16(57), - 971: uint16(193), - 972: uint16(239), - 973: uint16(240), - 974: uint16(193), - 975: uint16(59), + 971: uint16(194), + 972: uint16(194), + 973: uint16(59), + 974: uint16(194), + 975: uint16(239), 976: uint16(19), - 977: uint16(188), - 978: uint16(253), - 979: uint16(190), - 980: uint16(193), - 981: uint16(311), - 982: uint16(312), - 983: uint16(16), - 984: uint16(195), - 985: uint16(252), - 986: uint16(197), - 987: uint16(193), - 988: uint16(19), - 989: uint16(301), - 990: uint16(302), - 991: uint16(135), - 992: uint16(193), - 993: uint16(204), - 994: uint16(216), + 977: uint16(194), + 978: uint16(25), + 979: uint16(254), + 980: uint16(303), + 981: uint16(304), + 982: uint16(23), + 983: uint16(194), + 984: uint16(25), + 985: uint16(126), + 986: uint16(306), + 987: uint16(306), + 988: uint16(308), + 989: uint16(308), + 990: uint16(306), + 991: uint16(271), + 992: uint16(308), + 993: uint16(117), + 994: uint16(286), 995: uint16(217), - 996: uint16(140), - 997: uint16(216), - 998: uint16(217), - 999: uint16(266), - 1000: uint16(204), + 996: uint16(218), + 997: uint16(217), + 998: uint16(218), + 999: uint16(194), + 1000: uint16(194), 1001: uint16(159), 1002: uint16(45), 1003: uint16(46), @@ -155740,38 +157248,38 @@ var _yy_lookahead = [2285]uint16{ 1024: uint16(111), 1025: uint16(112), 1026: uint16(113), - 1027: uint16(12), + 1027: uint16(59), 1028: uint16(239), - 1029: uint16(240), - 1030: uint16(193), - 1031: uint16(298), - 1032: uint16(238), - 1033: uint16(117), - 1034: uint16(253), - 1035: uint16(239), + 1029: uint16(194), + 1030: uint16(116), + 1031: uint16(117), + 1032: uint16(118), + 1033: uint16(260), + 1034: uint16(254), + 1035: uint16(194), 1036: uint16(240), - 1037: uint16(238), - 1038: uint16(259), - 1039: uint16(260), - 1040: uint16(193), - 1041: uint16(252), - 1042: uint16(27), - 1043: uint16(193), - 1044: uint16(77), - 1045: uint16(193), - 1046: uint16(79), - 1047: uint16(204), - 1048: uint16(252), - 1049: uint16(262), - 1050: uint16(193), - 1051: uint16(299), - 1052: uint16(300), - 1053: uint16(193), - 1054: uint16(100), - 1055: uint16(266), - 1056: uint16(278), - 1057: uint16(42), - 1058: uint16(204), + 1037: uint16(241), + 1038: uint16(194), + 1039: uint16(233), + 1040: uint16(205), + 1041: uint16(240), + 1042: uint16(241), + 1043: uint16(205), + 1044: uint16(239), + 1045: uint16(128), + 1046: uint16(129), + 1047: uint16(270), + 1048: uint16(265), + 1049: uint16(253), + 1050: uint16(194), + 1051: uint16(255), + 1052: uint16(217), + 1053: uint16(218), + 1054: uint16(253), + 1055: uint16(194), + 1056: uint16(255), + 1057: uint16(143), + 1058: uint16(280), 1059: uint16(102), 1060: uint16(103), 1061: uint16(104), @@ -155784,51 +157292,51 @@ var _yy_lookahead = [2285]uint16{ 1068: uint16(111), 1069: uint16(112), 1070: uint16(113), - 1071: uint16(117), + 1071: uint16(118), 1072: uint16(159), - 1073: uint16(216), - 1074: uint16(217), - 1075: uint16(121), - 1076: uint16(216), - 1077: uint16(217), - 1078: uint16(63), - 1079: uint16(193), - 1080: uint16(193), - 1081: uint16(193), - 1082: uint16(239), - 1083: uint16(240), - 1084: uint16(115), - 1085: uint16(116), - 1086: uint16(193), - 1087: uint16(298), - 1088: uint16(73), - 1089: uint16(240), - 1090: uint16(238), - 1091: uint16(231), + 1073: uint16(217), + 1074: uint16(218), + 1075: uint16(240), + 1076: uint16(241), + 1077: uint16(118), + 1078: uint16(240), + 1079: uint16(241), + 1080: uint16(194), + 1081: uint16(194), + 1082: uint16(194), + 1083: uint16(239), + 1084: uint16(116), + 1085: uint16(117), + 1086: uint16(118), + 1087: uint16(22), + 1088: uint16(253), + 1089: uint16(254), + 1090: uint16(255), + 1091: uint16(253), 1092: uint16(19), - 1093: uint16(239), - 1094: uint16(240), - 1095: uint16(252), - 1096: uint16(22), + 1093: uint16(255), + 1094: uint16(233), + 1095: uint16(194), + 1096: uint16(143), 1097: uint16(24), - 1098: uint16(211), + 1098: uint16(263), 1099: uint16(212), - 1100: uint16(263), - 1101: uint16(252), - 1102: uint16(216), + 1100: uint16(213), + 1101: uint16(194), + 1102: uint16(143), 1103: uint16(217), - 1104: uint16(216), + 1104: uint16(218), 1105: uint16(217), - 1106: uint16(252), - 1107: uint16(153), - 1108: uint16(154), - 1109: uint16(155), - 1110: uint16(253), - 1111: uint16(193), + 1106: uint16(218), + 1107: uint16(261), + 1108: uint16(262), + 1109: uint16(271), + 1110: uint16(254), + 1111: uint16(143), 1112: uint16(19), - 1113: uint16(144), - 1114: uint16(213), - 1115: uint16(268), + 1113: uint16(7), + 1114: uint16(8), + 1115: uint16(9), 1116: uint16(43), 1117: uint16(44), 1118: uint16(45), @@ -155844,11 +157352,11 @@ var _yy_lookahead = [2285]uint16{ 1128: uint16(55), 1129: uint16(56), 1130: uint16(57), - 1131: uint16(193), + 1131: uint16(16), 1132: uint16(19), - 1133: uint16(59), - 1134: uint16(216), - 1135: uint16(217), + 1133: uint16(22), + 1134: uint16(23), + 1135: uint16(294), 1136: uint16(43), 1137: uint16(44), 1138: uint16(45), @@ -155864,11 +157372,11 @@ var _yy_lookahead = [2285]uint16{ 1148: uint16(55), 1149: uint16(56), 1150: uint16(57), - 1151: uint16(193), - 1152: uint16(19), - 1153: uint16(24), - 1154: uint16(216), - 1155: uint16(217), + 1151: uint16(312), + 1152: uint16(194), + 1153: uint16(214), + 1154: uint16(21), + 1155: uint16(316), 1156: uint16(43), 1157: uint16(44), 1158: uint16(45), @@ -155884,10 +157392,10 @@ var _yy_lookahead = [2285]uint16{ 1168: uint16(55), 1169: uint16(56), 1170: uint16(57), - 1171: uint16(284), - 1172: uint16(193), - 1173: uint16(208), - 1174: uint16(209), + 1171: uint16(106), + 1172: uint16(107), + 1173: uint16(286), + 1174: uint16(194), 1175: uint16(102), 1176: uint16(103), 1177: uint16(104), @@ -155900,14 +157408,14 @@ var _yy_lookahead = [2285]uint16{ 1184: uint16(111), 1185: uint16(112), 1186: uint16(113), - 1187: uint16(286), - 1188: uint16(59), - 1189: uint16(193), - 1190: uint16(232), - 1191: uint16(117), - 1192: uint16(291), - 1193: uint16(193), - 1194: uint16(193), + 1187: uint16(207), + 1188: uint16(158), + 1189: uint16(59), + 1190: uint16(160), + 1191: uint16(22), + 1192: uint16(77), + 1193: uint16(24), + 1194: uint16(79), 1195: uint16(102), 1196: uint16(103), 1197: uint16(104), @@ -155920,14 +157428,14 @@ var _yy_lookahead = [2285]uint16{ 1204: uint16(111), 1205: uint16(112), 1206: uint16(113), - 1207: uint16(193), - 1208: uint16(204), - 1209: uint16(22), - 1210: uint16(23), - 1211: uint16(193), - 1212: uint16(25), - 1213: uint16(66), - 1214: uint16(193), + 1207: uint16(194), + 1208: uint16(194), + 1209: uint16(229), + 1210: uint16(194), + 1211: uint16(231), + 1212: uint16(101), + 1213: uint16(80), + 1214: uint16(22), 1215: uint16(102), 1216: uint16(103), 1217: uint16(104), @@ -155940,39 +157448,39 @@ var _yy_lookahead = [2285]uint16{ 1224: uint16(111), 1225: uint16(112), 1226: uint16(113), - 1227: uint16(193), - 1228: uint16(193), - 1229: uint16(193), - 1230: uint16(216), - 1231: uint16(217), - 1232: uint16(85), - 1233: uint16(193), - 1234: uint16(238), + 1227: uint16(288), + 1228: uint16(59), + 1229: uint16(12), + 1230: uint16(217), + 1231: uint16(218), + 1232: uint16(293), + 1233: uint16(217), + 1234: uint16(218), 1235: uint16(19), - 1236: uint16(16), - 1237: uint16(216), - 1238: uint16(217), - 1239: uint16(238), - 1240: uint16(193), - 1241: uint16(94), - 1242: uint16(193), - 1243: uint16(239), - 1244: uint16(240), - 1245: uint16(231), - 1246: uint16(117), - 1247: uint16(268), - 1248: uint16(35), - 1249: uint16(116), - 1250: uint16(216), - 1251: uint16(217), - 1252: uint16(216), - 1253: uint16(217), - 1254: uint16(22), - 1255: uint16(23), - 1256: uint16(252), - 1257: uint16(25), - 1258: uint16(208), - 1259: uint16(209), + 1236: uint16(106), + 1237: uint16(107), + 1238: uint16(59), + 1239: uint16(19), + 1240: uint16(16), + 1241: uint16(127), + 1242: uint16(128), + 1243: uint16(129), + 1244: uint16(27), + 1245: uint16(115), + 1246: uint16(116), + 1247: uint16(117), + 1248: uint16(118), + 1249: uint16(194), + 1250: uint16(120), + 1251: uint16(59), + 1252: uint16(22), + 1253: uint16(194), + 1254: uint16(24), + 1255: uint16(194), + 1256: uint16(123), + 1257: uint16(100), + 1258: uint16(128), + 1259: uint16(42), 1260: uint16(44), 1261: uint16(45), 1262: uint16(46), @@ -155987,50 +157495,50 @@ var _yy_lookahead = [2285]uint16{ 1271: uint16(55), 1272: uint16(56), 1273: uint16(57), - 1274: uint16(193), - 1275: uint16(193), - 1276: uint16(19), - 1277: uint16(5), - 1278: uint16(59), - 1279: uint16(66), - 1280: uint16(193), - 1281: uint16(263), - 1282: uint16(10), - 1283: uint16(11), - 1284: uint16(12), - 1285: uint16(13), - 1286: uint16(14), - 1287: uint16(74), - 1288: uint16(101), - 1289: uint16(17), - 1290: uint16(193), - 1291: uint16(46), - 1292: uint16(193), - 1293: uint16(146), - 1294: uint16(193), - 1295: uint16(76), - 1296: uint16(213), - 1297: uint16(77), - 1298: uint16(263), - 1299: uint16(79), - 1300: uint16(12), - 1301: uint16(260), - 1302: uint16(30), - 1303: uint16(46), - 1304: uint16(32), - 1305: uint16(264), - 1306: uint16(87), - 1307: uint16(193), - 1308: uint16(89), - 1309: uint16(29), - 1310: uint16(263), - 1311: uint16(92), - 1312: uint16(40), - 1313: uint16(33), - 1314: uint16(232), - 1315: uint16(27), - 1316: uint16(193), - 1317: uint16(108), + 1274: uint16(117), + 1275: uint16(194), + 1276: uint16(217), + 1277: uint16(218), + 1278: uint16(121), + 1279: uint16(100), + 1280: uint16(63), + 1281: uint16(194), + 1282: uint16(245), + 1283: uint16(153), + 1284: uint16(194), + 1285: uint16(155), + 1286: uint16(117), + 1287: uint16(19), + 1288: uint16(115), + 1289: uint16(194), + 1290: uint16(73), + 1291: uint16(214), + 1292: uint16(194), + 1293: uint16(256), + 1294: uint16(161), + 1295: uint16(116), + 1296: uint16(117), + 1297: uint16(194), + 1298: uint16(217), + 1299: uint16(218), + 1300: uint16(121), + 1301: uint16(77), + 1302: uint16(194), + 1303: uint16(79), + 1304: uint16(217), + 1305: uint16(218), + 1306: uint16(194), + 1307: uint16(217), + 1308: uint16(218), + 1309: uint16(117), + 1310: uint16(153), + 1311: uint16(154), + 1312: uint16(155), + 1313: uint16(254), + 1314: uint16(46), + 1315: uint16(217), + 1316: uint16(218), + 1317: uint16(144), 1318: uint16(102), 1319: uint16(103), 1320: uint16(104), @@ -156043,1025 +157551,1068 @@ var _yy_lookahead = [2285]uint16{ 1327: uint16(111), 1328: uint16(112), 1329: uint16(113), - 1330: uint16(42), - 1331: uint16(138), - 1332: uint16(139), - 1333: uint16(101), - 1334: uint16(193), - 1335: uint16(116), - 1336: uint16(117), - 1337: uint16(118), + 1330: uint16(232), + 1331: uint16(270), + 1332: uint16(153), + 1333: uint16(154), + 1334: uint16(155), + 1335: uint16(115), + 1336: uint16(116), + 1337: uint16(66), 1338: uint16(19), 1339: uint16(20), - 1340: uint16(255), + 1340: uint16(183), 1341: uint16(22), - 1342: uint16(70), - 1343: uint16(130), - 1344: uint16(135), - 1345: uint16(65), - 1346: uint16(256), - 1347: uint16(257), - 1348: uint16(193), - 1349: uint16(140), - 1350: uint16(78), - 1351: uint16(63), - 1352: uint16(193), - 1353: uint16(81), - 1354: uint16(193), + 1342: uint16(12), + 1343: uint16(312), + 1344: uint16(254), + 1345: uint16(194), + 1346: uint16(262), + 1347: uint16(316), + 1348: uint16(209), + 1349: uint16(210), + 1350: uint16(266), + 1351: uint16(239), + 1352: uint16(194), + 1353: uint16(194), + 1354: uint16(108), 1355: uint16(36), - 1356: uint16(193), - 1357: uint16(216), - 1358: uint16(217), - 1359: uint16(193), - 1360: uint16(115), - 1361: uint16(193), - 1362: uint16(263), - 1363: uint16(193), - 1364: uint16(145), - 1365: uint16(268), - 1366: uint16(59), + 1356: uint16(85), + 1357: uint16(27), + 1358: uint16(19), + 1359: uint16(20), + 1360: uint16(265), + 1361: uint16(22), + 1362: uint16(183), + 1363: uint16(245), + 1364: uint16(144), + 1365: uint16(94), + 1366: uint16(25), 1367: uint16(48), - 1368: uint16(193), - 1369: uint16(193), - 1370: uint16(98), - 1371: uint16(193), - 1372: uint16(115), - 1373: uint16(193), - 1374: uint16(291), - 1375: uint16(216), + 1368: uint16(217), + 1369: uint16(218), + 1370: uint16(293), + 1371: uint16(194), + 1372: uint16(42), + 1373: uint16(270), + 1374: uint16(256), + 1375: uint16(36), 1376: uint16(217), - 1377: uint16(193), + 1377: uint16(218), 1378: uint16(59), - 1379: uint16(216), - 1380: uint16(217), - 1381: uint16(161), - 1382: uint16(216), - 1383: uint16(217), - 1384: uint16(216), - 1385: uint16(217), - 1386: uint16(216), - 1387: uint16(217), - 1388: uint16(131), - 1389: uint16(193), + 1379: uint16(194), + 1380: uint16(25), + 1381: uint16(135), + 1382: uint16(194), + 1383: uint16(115), + 1384: uint16(194), + 1385: uint16(161), + 1386: uint16(140), + 1387: uint16(194), + 1388: uint16(194), + 1389: uint16(15), 1390: uint16(71), - 1391: uint16(193), - 1392: uint16(216), - 1393: uint16(217), - 1394: uint16(216), - 1395: uint16(217), - 1396: uint16(216), - 1397: uint16(217), - 1398: uint16(193), - 1399: uint16(260), - 1400: uint16(216), - 1401: uint16(217), - 1402: uint16(19), - 1403: uint16(264), + 1391: uint16(194), + 1392: uint16(312), + 1393: uint16(63), + 1394: uint16(217), + 1395: uint16(218), + 1396: uint16(316), + 1397: uint16(194), + 1398: uint16(59), + 1399: uint16(131), + 1400: uint16(301), + 1401: uint16(302), + 1402: uint16(217), + 1403: uint16(218), 1404: uint16(85), - 1405: uint16(133), - 1406: uint16(244), - 1407: uint16(100), - 1408: uint16(193), + 1405: uint16(217), + 1406: uint16(218), + 1407: uint16(217), + 1408: uint16(218), 1409: uint16(90), - 1410: uint16(138), - 1411: uint16(139), - 1412: uint16(216), - 1413: uint16(217), - 1414: uint16(216), - 1415: uint16(217), - 1416: uint16(254), - 1417: uint16(244), - 1418: uint16(193), + 1410: uint16(71), + 1411: uint16(217), + 1412: uint16(218), + 1413: uint16(19), + 1414: uint16(217), + 1415: uint16(218), + 1416: uint16(245), + 1417: uint16(146), + 1418: uint16(262), 1419: uint16(100), - 1420: uint16(193), - 1421: uint16(216), - 1422: uint16(217), - 1423: uint16(116), - 1424: uint16(117), + 1420: uint16(217), + 1421: uint16(218), + 1422: uint16(266), + 1423: uint16(265), + 1424: uint16(85), 1425: uint16(106), 1426: uint16(107), - 1427: uint16(254), - 1428: uint16(121), - 1429: uint16(193), - 1430: uint16(115), - 1431: uint16(216), - 1432: uint16(217), + 1427: uint16(256), + 1428: uint16(312), + 1429: uint16(90), + 1430: uint16(209), + 1431: uint16(210), + 1432: uint16(316), 1433: uint16(114), - 1434: uint16(162), + 1434: uint16(60), 1435: uint16(116), 1436: uint16(117), 1437: uint16(118), - 1438: uint16(115), - 1439: uint16(244), + 1438: uint16(194), + 1439: uint16(100), 1440: uint16(121), - 1441: uint16(216), - 1442: uint16(217), - 1443: uint16(216), - 1444: uint16(217), - 1445: uint16(193), - 1446: uint16(309), - 1447: uint16(193), - 1448: uint16(31), - 1449: uint16(254), - 1450: uint16(313), - 1451: uint16(309), - 1452: uint16(216), - 1453: uint16(217), - 1454: uint16(309), - 1455: uint16(313), - 1456: uint16(39), - 1457: uint16(193), - 1458: uint16(313), - 1459: uint16(309), - 1460: uint16(153), - 1461: uint16(154), - 1462: uint16(155), - 1463: uint16(313), - 1464: uint16(193), - 1465: uint16(150), - 1466: uint16(25), - 1467: uint16(144), - 1468: uint16(216), - 1469: uint16(217), - 1470: uint16(216), - 1471: uint16(217), + 1441: uint16(194), + 1442: uint16(194), + 1443: uint16(145), + 1444: uint16(115), + 1445: uint16(106), + 1446: uint16(107), + 1447: uint16(19), + 1448: uint16(46), + 1449: uint16(19), + 1450: uint16(20), + 1451: uint16(24), + 1452: uint16(22), + 1453: uint16(114), + 1454: uint16(194), + 1455: uint16(116), + 1456: uint16(117), + 1457: uint16(118), + 1458: uint16(194), + 1459: uint16(245), + 1460: uint16(121), + 1461: uint16(194), + 1462: uint16(164), + 1463: uint16(194), + 1464: uint16(217), + 1465: uint16(218), + 1466: uint16(36), + 1467: uint16(194), + 1468: uint16(258), + 1469: uint16(259), + 1470: uint16(256), + 1471: uint16(194), 1472: uint16(153), 1473: uint16(154), 1474: uint16(155), 1475: uint16(156), 1476: uint16(157), - 1478: uint16(1), - 1479: uint16(2), - 1480: uint16(216), + 1477: uint16(217), + 1478: uint16(218), + 1479: uint16(150), + 1480: uint16(31), 1481: uint16(217), - 1482: uint16(5), - 1483: uint16(149), - 1484: uint16(150), - 1485: uint16(22), - 1486: uint16(193), - 1487: uint16(10), - 1488: uint16(11), - 1489: uint16(12), - 1490: uint16(13), - 1491: uint16(14), - 1492: uint16(193), - 1493: uint16(158), - 1494: uint16(17), - 1495: uint16(160), - 1496: uint16(193), - 1497: uint16(19), - 1498: uint16(20), - 1499: uint16(116), - 1500: uint16(22), - 1501: uint16(25), - 1502: uint16(193), - 1503: uint16(24), - 1504: uint16(22), - 1505: uint16(193), - 1506: uint16(24), - 1507: uint16(30), - 1508: uint16(226), - 1509: uint16(32), - 1510: uint16(19), - 1511: uint16(20), - 1512: uint16(226), - 1513: uint16(22), - 1514: uint16(36), - 1515: uint16(193), - 1516: uint16(53), - 1517: uint16(40), - 1518: uint16(193), - 1519: uint16(216), - 1520: uint16(217), - 1521: uint16(193), - 1522: uint16(23), - 1523: uint16(193), - 1524: uint16(25), - 1525: uint16(216), - 1526: uint16(217), - 1527: uint16(36), - 1528: uint16(216), - 1529: uint16(217), - 1530: uint16(193), - 1531: uint16(99), - 1532: uint16(193), - 1533: uint16(193), - 1534: uint16(22), - 1535: uint16(193), - 1536: uint16(193), - 1537: uint16(59), - 1538: uint16(216), + 1482: uint16(218), + 1483: uint16(142), + 1484: uint16(217), + 1485: uint16(218), + 1486: uint16(217), + 1487: uint16(218), + 1488: uint16(39), + 1489: uint16(59), + 1490: uint16(217), + 1491: uint16(218), + 1492: uint16(153), + 1493: uint16(154), + 1494: uint16(155), + 1495: uint16(156), + 1496: uint16(157), + 1497: uint16(149), + 1498: uint16(150), + 1499: uint16(5), + 1500: uint16(145), + 1501: uint16(71), + 1502: uint16(183), + 1503: uint16(245), + 1504: uint16(10), + 1505: uint16(11), + 1506: uint16(12), + 1507: uint16(13), + 1508: uint16(14), + 1509: uint16(194), + 1510: uint16(116), + 1511: uint16(17), + 1512: uint16(129), + 1513: uint16(227), + 1514: uint16(256), + 1515: uint16(85), + 1516: uint16(194), + 1517: uint16(115), + 1518: uint16(194), + 1519: uint16(23), + 1520: uint16(90), + 1521: uint16(25), + 1522: uint16(183), + 1523: uint16(99), + 1524: uint16(30), + 1525: uint16(97), + 1526: uint16(32), + 1527: uint16(22), + 1528: uint16(22), + 1529: uint16(194), + 1530: uint16(100), + 1531: uint16(194), + 1532: uint16(217), + 1533: uint16(218), + 1534: uint16(40), + 1535: uint16(152), + 1536: uint16(106), + 1537: uint16(107), + 1538: uint16(23), 1539: uint16(217), - 1540: uint16(193), - 1541: uint16(216), - 1542: uint16(217), - 1543: uint16(193), - 1544: uint16(216), - 1545: uint16(217), - 1546: uint16(193), - 1547: uint16(70), - 1548: uint16(129), - 1549: uint16(71), - 1550: uint16(59), - 1551: uint16(129), - 1552: uint16(193), - 1553: uint16(216), + 1540: uint16(218), + 1541: uint16(194), + 1542: uint16(19), + 1543: uint16(20), + 1544: uint16(114), + 1545: uint16(22), + 1546: uint16(116), + 1547: uint16(117), + 1548: uint16(118), + 1549: uint16(257), + 1550: uint16(194), + 1551: uint16(121), + 1552: uint16(217), + 1553: uint16(218), 1554: uint16(217), - 1555: uint16(78), - 1556: uint16(216), - 1557: uint16(217), - 1558: uint16(81), - 1559: uint16(216), - 1560: uint16(217), - 1561: uint16(193), - 1562: uint16(71), - 1563: uint16(85), - 1564: uint16(193), - 1565: uint16(133), - 1566: uint16(193), - 1567: uint16(126), - 1568: uint16(90), - 1569: uint16(216), - 1570: uint16(217), - 1571: uint16(152), - 1572: uint16(258), - 1573: uint16(61), - 1574: uint16(152), - 1575: uint16(98), - 1576: uint16(85), - 1577: uint16(193), - 1578: uint16(100), - 1579: uint16(193), - 1580: uint16(23), - 1581: uint16(90), - 1582: uint16(25), - 1583: uint16(121), - 1584: uint16(106), - 1585: uint16(107), - 1586: uint16(23), - 1587: uint16(216), - 1588: uint16(217), - 1589: uint16(216), - 1590: uint16(217), - 1591: uint16(100), - 1592: uint16(114), - 1593: uint16(131), - 1594: uint16(116), - 1595: uint16(117), - 1596: uint16(118), - 1597: uint16(106), - 1598: uint16(107), - 1599: uint16(121), - 1600: uint16(216), - 1601: uint16(217), - 1602: uint16(216), - 1603: uint16(217), - 1604: uint16(193), - 1605: uint16(114), - 1606: uint16(193), - 1607: uint16(116), - 1608: uint16(117), - 1609: uint16(118), - 1610: uint16(133), - 1611: uint16(22), - 1612: uint16(121), - 1613: uint16(193), - 1614: uint16(59), - 1615: uint16(138), - 1616: uint16(139), - 1617: uint16(193), - 1618: uint16(142), - 1619: uint16(193), - 1620: uint16(141), - 1621: uint16(23), - 1622: uint16(23), - 1623: uint16(25), - 1624: uint16(25), - 1625: uint16(120), - 1626: uint16(121), - 1627: uint16(216), - 1628: uint16(217), - 1629: uint16(216), - 1630: uint16(217), - 1631: uint16(153), - 1632: uint16(154), - 1633: uint16(155), - 1634: uint16(156), - 1635: uint16(157), - 1636: uint16(216), - 1637: uint16(217), - 1638: uint16(19), - 1639: uint16(162), - 1640: uint16(216), - 1641: uint16(217), - 1642: uint16(216), - 1643: uint16(217), - 1644: uint16(153), - 1645: uint16(154), - 1646: uint16(155), - 1647: uint16(156), - 1648: uint16(157), - 1649: uint16(1), - 1650: uint16(2), - 1651: uint16(193), - 1652: uint16(59), - 1653: uint16(5), - 1654: uint16(19), - 1655: uint16(20), - 1656: uint16(318), - 1657: uint16(22), - 1658: uint16(10), - 1659: uint16(11), - 1660: uint16(12), - 1661: uint16(13), - 1662: uint16(14), - 1663: uint16(193), - 1664: uint16(59), - 1665: uint16(17), - 1666: uint16(193), - 1667: uint16(23), - 1668: uint16(23), - 1669: uint16(25), - 1670: uint16(25), - 1671: uint16(36), - 1672: uint16(117), - 1673: uint16(193), - 1674: uint16(216), - 1675: uint16(217), - 1676: uint16(193), - 1677: uint16(23), - 1678: uint16(30), - 1679: uint16(25), - 1680: uint16(32), - 1681: uint16(19), - 1682: uint16(20), - 1683: uint16(23), - 1684: uint16(22), - 1685: uint16(25), - 1686: uint16(216), - 1687: uint16(217), - 1688: uint16(40), - 1689: uint16(216), + 1555: uint16(218), + 1556: uint16(194), + 1557: uint16(133), + 1558: uint16(53), + 1559: uint16(36), + 1560: uint16(23), + 1561: uint16(23), + 1562: uint16(25), + 1563: uint16(25), + 1564: uint16(70), + 1565: uint16(120), + 1566: uint16(121), + 1567: uint16(61), + 1568: uint16(141), + 1569: uint16(7), + 1570: uint16(8), + 1571: uint16(121), + 1572: uint16(78), + 1573: uint16(217), + 1574: uint16(218), + 1575: uint16(81), + 1576: uint16(23), + 1577: uint16(227), + 1578: uint16(25), + 1579: uint16(217), + 1580: uint16(218), + 1581: uint16(131), + 1582: uint16(59), + 1583: uint16(153), + 1584: uint16(154), + 1585: uint16(155), + 1586: uint16(156), + 1587: uint16(157), + 1589: uint16(1), + 1590: uint16(2), + 1591: uint16(59), + 1592: uint16(98), + 1593: uint16(5), + 1594: uint16(71), + 1595: uint16(23), + 1596: uint16(227), + 1597: uint16(25), + 1598: uint16(10), + 1599: uint16(11), + 1600: uint16(12), + 1601: uint16(13), + 1602: uint16(14), + 1603: uint16(83), + 1604: uint16(84), + 1605: uint16(17), + 1606: uint16(23), + 1607: uint16(23), + 1608: uint16(25), + 1609: uint16(25), + 1610: uint16(59), + 1611: uint16(194), + 1612: uint16(194), + 1613: uint16(183), + 1614: uint16(23), + 1615: uint16(23), + 1616: uint16(25), + 1617: uint16(25), + 1618: uint16(30), + 1619: uint16(194), + 1620: uint16(32), + 1621: uint16(19), + 1622: uint16(20), + 1623: uint16(100), + 1624: uint16(22), + 1625: uint16(194), + 1626: uint16(194), + 1627: uint16(133), + 1628: uint16(40), + 1629: uint16(106), + 1630: uint16(107), + 1631: uint16(108), + 1632: uint16(138), + 1633: uint16(139), + 1634: uint16(194), + 1635: uint16(217), + 1636: uint16(218), + 1637: uint16(114), + 1638: uint16(36), + 1639: uint16(116), + 1640: uint16(117), + 1641: uint16(118), + 1642: uint16(217), + 1643: uint16(218), + 1644: uint16(121), + 1645: uint16(194), + 1646: uint16(194), + 1647: uint16(194), + 1648: uint16(23), + 1649: uint16(117), + 1650: uint16(25), + 1651: uint16(194), + 1652: uint16(23), + 1653: uint16(23), + 1654: uint16(25), + 1655: uint16(25), + 1656: uint16(162), + 1657: uint16(194), + 1658: uint16(70), + 1659: uint16(194), + 1660: uint16(145), + 1661: uint16(59), + 1662: uint16(23), + 1663: uint16(153), + 1664: uint16(25), + 1665: uint16(155), + 1666: uint16(78), + 1667: uint16(194), + 1668: uint16(117), + 1669: uint16(81), + 1670: uint16(217), + 1671: uint16(218), + 1672: uint16(194), + 1673: uint16(71), + 1674: uint16(217), + 1675: uint16(218), + 1676: uint16(153), + 1677: uint16(154), + 1678: uint16(155), + 1679: uint16(156), + 1680: uint16(157), + 1681: uint16(194), + 1682: uint16(217), + 1683: uint16(218), + 1684: uint16(194), + 1685: uint16(23), + 1686: uint16(98), + 1687: uint16(25), + 1688: uint16(321), + 1689: uint16(194), 1690: uint16(217), - 1691: uint16(7), - 1692: uint16(8), - 1693: uint16(23), - 1694: uint16(59), - 1695: uint16(25), - 1696: uint16(83), - 1697: uint16(84), - 1698: uint16(36), - 1699: uint16(23), - 1700: uint16(193), - 1701: uint16(25), - 1702: uint16(23), - 1703: uint16(23), - 1704: uint16(25), - 1705: uint16(25), - 1706: uint16(71), - 1707: uint16(153), - 1708: uint16(145), - 1709: uint16(155), - 1710: uint16(117), - 1711: uint16(153), - 1712: uint16(23), - 1713: uint16(155), - 1714: uint16(25), - 1715: uint16(23), - 1716: uint16(97), - 1717: uint16(25), - 1718: uint16(70), - 1719: uint16(193), - 1720: uint16(193), - 1721: uint16(59), - 1722: uint16(117), - 1723: uint16(236), - 1724: uint16(193), - 1725: uint16(193), - 1726: uint16(78), - 1727: uint16(193), - 1728: uint16(193), - 1729: uint16(81), - 1730: uint16(141), - 1731: uint16(193), - 1732: uint16(193), - 1733: uint16(71), - 1734: uint16(193), - 1735: uint16(100), - 1736: uint16(288), - 1737: uint16(287), - 1738: uint16(242), - 1739: uint16(255), - 1740: uint16(255), - 1741: uint16(106), - 1742: uint16(107), - 1743: uint16(108), - 1744: uint16(255), - 1745: uint16(255), - 1746: uint16(98), - 1747: uint16(243), - 1748: uint16(297), - 1749: uint16(114), - 1750: uint16(214), - 1751: uint16(116), - 1752: uint16(117), - 1753: uint16(118), - 1754: uint16(245), - 1755: uint16(191), - 1756: uint16(121), - 1757: uint16(271), - 1758: uint16(293), - 1759: uint16(267), - 1760: uint16(267), - 1761: uint16(246), - 1762: uint16(100), - 1763: uint16(246), - 1764: uint16(245), - 1765: uint16(271), - 1766: uint16(271), - 1767: uint16(293), - 1768: uint16(106), - 1769: uint16(107), - 1770: uint16(220), - 1771: uint16(271), - 1772: uint16(229), - 1773: uint16(225), - 1774: uint16(249), - 1775: uint16(219), - 1776: uint16(114), - 1777: uint16(259), - 1778: uint16(116), - 1779: uint16(117), - 1780: uint16(118), - 1781: uint16(133), - 1782: uint16(259), - 1783: uint16(121), - 1784: uint16(219), - 1785: uint16(219), - 1786: uint16(138), - 1787: uint16(139), - 1788: uint16(153), - 1789: uint16(154), - 1790: uint16(155), - 1791: uint16(156), - 1792: uint16(157), - 1793: uint16(280), - 1794: uint16(249), - 1795: uint16(243), - 1796: uint16(19), - 1797: uint16(20), - 1798: uint16(245), - 1799: uint16(22), - 1800: uint16(196), - 1801: uint16(259), - 1802: uint16(140), - 1803: uint16(259), - 1804: uint16(60), - 1805: uint16(297), - 1806: uint16(141), - 1807: uint16(297), - 1808: uint16(200), - 1809: uint16(200), - 1810: uint16(162), - 1811: uint16(38), - 1812: uint16(200), - 1813: uint16(36), - 1814: uint16(294), - 1815: uint16(153), - 1816: uint16(154), - 1817: uint16(155), - 1818: uint16(156), - 1819: uint16(157), - 1820: uint16(151), - 1821: uint16(150), - 1822: uint16(294), - 1823: uint16(283), - 1824: uint16(22), - 1825: uint16(43), - 1826: uint16(234), - 1827: uint16(18), - 1828: uint16(237), - 1829: uint16(200), - 1830: uint16(270), - 1831: uint16(272), - 1832: uint16(237), - 1833: uint16(237), - 1834: uint16(237), - 1835: uint16(18), - 1836: uint16(59), - 1837: uint16(199), - 1838: uint16(270), - 1839: uint16(149), - 1840: uint16(246), - 1841: uint16(272), - 1842: uint16(272), - 1843: uint16(200), - 1844: uint16(234), - 1845: uint16(234), - 1846: uint16(246), - 1847: uint16(246), - 1848: uint16(71), - 1849: uint16(246), - 1850: uint16(199), - 1851: uint16(158), - 1852: uint16(290), - 1853: uint16(62), - 1854: uint16(22), - 1855: uint16(200), - 1856: uint16(19), - 1857: uint16(20), - 1858: uint16(199), - 1859: uint16(22), - 1860: uint16(289), - 1861: uint16(221), - 1862: uint16(221), - 1863: uint16(200), - 1864: uint16(200), - 1865: uint16(199), - 1866: uint16(199), - 1867: uint16(115), - 1868: uint16(218), - 1869: uint16(64), - 1870: uint16(218), - 1871: uint16(218), + 1691: uint16(218), + 1692: uint16(194), + 1693: uint16(19), + 1694: uint16(20), + 1695: uint16(194), + 1696: uint16(22), + 1697: uint16(153), + 1698: uint16(23), + 1699: uint16(155), + 1700: uint16(25), + 1701: uint16(194), + 1702: uint16(100), + 1703: uint16(194), + 1704: uint16(217), + 1705: uint16(218), + 1706: uint16(183), + 1707: uint16(194), + 1708: uint16(106), + 1709: uint16(107), + 1710: uint16(36), + 1711: uint16(194), + 1712: uint16(217), + 1713: uint16(218), + 1714: uint16(237), + 1715: uint16(194), + 1716: uint16(114), + 1717: uint16(243), + 1718: uint16(116), + 1719: uint16(117), + 1720: uint16(118), + 1721: uint16(133), + 1722: uint16(194), + 1723: uint16(121), + 1724: uint16(217), + 1725: uint16(218), + 1726: uint16(138), + 1727: uint16(139), + 1728: uint16(194), + 1729: uint16(194), + 1730: uint16(194), + 1731: uint16(290), + 1732: uint16(289), + 1733: uint16(59), + 1734: uint16(217), + 1735: uint16(218), + 1736: uint16(194), + 1737: uint16(194), + 1738: uint16(217), + 1739: uint16(218), + 1740: uint16(194), + 1741: uint16(194), + 1742: uint16(140), + 1743: uint16(194), + 1744: uint16(194), + 1745: uint16(71), + 1746: uint16(194), + 1747: uint16(244), + 1748: uint16(194), + 1749: uint16(194), + 1750: uint16(162), + 1751: uint16(217), + 1752: uint16(218), + 1753: uint16(194), + 1754: uint16(194), + 1755: uint16(153), + 1756: uint16(154), + 1757: uint16(155), + 1758: uint16(156), + 1759: uint16(157), + 1760: uint16(217), + 1761: uint16(218), + 1762: uint16(194), + 1763: uint16(217), + 1764: uint16(218), + 1765: uint16(194), + 1766: uint16(217), + 1767: uint16(218), + 1768: uint16(257), + 1769: uint16(217), + 1770: uint16(218), + 1771: uint16(217), + 1772: uint16(218), + 1773: uint16(257), + 1774: uint16(100), + 1775: uint16(194), + 1776: uint16(257), + 1777: uint16(217), + 1778: uint16(218), + 1779: uint16(257), + 1780: uint16(106), + 1781: uint16(107), + 1782: uint16(215), + 1783: uint16(299), + 1784: uint16(194), + 1785: uint16(183), + 1786: uint16(192), + 1787: uint16(194), + 1788: uint16(114), + 1789: uint16(194), + 1790: uint16(116), + 1791: uint16(117), + 1792: uint16(118), + 1793: uint16(1), + 1794: uint16(2), + 1795: uint16(121), + 1796: uint16(221), + 1797: uint16(5), + 1798: uint16(217), + 1799: uint16(218), + 1800: uint16(273), + 1801: uint16(197), + 1802: uint16(10), + 1803: uint16(11), + 1804: uint16(12), + 1805: uint16(13), + 1806: uint16(14), + 1807: uint16(217), + 1808: uint16(218), + 1809: uint16(17), + 1810: uint16(217), + 1811: uint16(218), + 1812: uint16(217), + 1813: uint16(218), + 1814: uint16(140), + 1815: uint16(194), + 1816: uint16(246), + 1817: uint16(194), + 1818: uint16(273), + 1819: uint16(295), + 1820: uint16(247), + 1821: uint16(273), + 1822: uint16(30), + 1823: uint16(247), + 1824: uint16(32), + 1825: uint16(269), + 1826: uint16(269), + 1827: uint16(153), + 1828: uint16(154), + 1829: uint16(155), + 1830: uint16(156), + 1831: uint16(157), + 1832: uint16(40), + 1833: uint16(246), + 1834: uint16(273), + 1835: uint16(295), + 1836: uint16(230), + 1837: uint16(226), + 1838: uint16(217), + 1839: uint16(218), + 1840: uint16(217), + 1841: uint16(218), + 1842: uint16(220), + 1843: uint16(261), + 1844: uint16(220), + 1845: uint16(282), + 1846: uint16(220), + 1847: uint16(19), + 1848: uint16(20), + 1849: uint16(244), + 1850: uint16(22), + 1851: uint16(250), + 1852: uint16(141), + 1853: uint16(250), + 1854: uint16(246), + 1855: uint16(60), + 1856: uint16(201), + 1857: uint16(183), + 1858: uint16(261), + 1859: uint16(261), + 1860: uint16(261), + 1861: uint16(201), + 1862: uint16(70), + 1863: uint16(299), + 1864: uint16(36), + 1865: uint16(299), + 1866: uint16(201), + 1867: uint16(38), + 1868: uint16(151), + 1869: uint16(150), + 1870: uint16(78), + 1871: uint16(285), 1872: uint16(22), - 1873: uint16(36), - 1874: uint16(227), - 1875: uint16(126), - 1876: uint16(227), - 1877: uint16(100), - 1878: uint16(165), - 1879: uint16(221), - 1880: uint16(224), - 1881: uint16(224), - 1882: uint16(24), - 1883: uint16(106), - 1884: uint16(107), - 1885: uint16(312), - 1886: uint16(218), - 1887: uint16(305), - 1888: uint16(113), - 1889: uint16(282), - 1890: uint16(91), - 1891: uint16(114), - 1892: uint16(220), - 1893: uint16(116), - 1894: uint16(117), - 1895: uint16(118), - 1896: uint16(59), - 1897: uint16(282), - 1898: uint16(121), - 1899: uint16(218), - 1900: uint16(218), - 1901: uint16(218), + 1873: uint16(81), + 1874: uint16(296), + 1875: uint16(296), + 1876: uint16(43), + 1877: uint16(235), + 1878: uint16(18), + 1879: uint16(238), + 1880: uint16(201), + 1881: uint16(274), + 1882: uint16(272), + 1883: uint16(238), + 1884: uint16(238), + 1885: uint16(238), + 1886: uint16(18), + 1887: uint16(59), + 1888: uint16(200), + 1889: uint16(149), + 1890: uint16(98), + 1891: uint16(247), + 1892: uint16(274), + 1893: uint16(274), + 1894: uint16(235), + 1895: uint16(247), + 1896: uint16(247), + 1897: uint16(247), + 1898: uint16(235), + 1899: uint16(71), + 1900: uint16(272), + 1901: uint16(201), 1902: uint16(200), - 1903: uint16(317), - 1904: uint16(317), - 1905: uint16(82), - 1906: uint16(221), - 1907: uint16(265), - 1908: uint16(71), - 1909: uint16(148), - 1910: uint16(145), - 1911: uint16(265), - 1912: uint16(22), - 1913: uint16(277), - 1914: uint16(200), - 1915: uint16(158), - 1916: uint16(279), - 1917: uint16(140), - 1918: uint16(147), - 1919: uint16(25), - 1920: uint16(146), - 1921: uint16(202), - 1922: uint16(248), - 1923: uint16(250), - 1924: uint16(249), - 1925: uint16(247), - 1926: uint16(13), - 1927: uint16(250), - 1928: uint16(194), - 1929: uint16(194), - 1930: uint16(153), - 1931: uint16(154), - 1932: uint16(155), - 1933: uint16(156), - 1934: uint16(157), - 1935: uint16(6), - 1936: uint16(303), - 1937: uint16(100), - 1938: uint16(192), - 1939: uint16(192), - 1940: uint16(246), - 1941: uint16(213), - 1942: uint16(192), - 1943: uint16(106), - 1944: uint16(107), - 1945: uint16(207), - 1946: uint16(213), - 1947: uint16(207), - 1948: uint16(222), - 1949: uint16(213), - 1950: uint16(213), - 1951: uint16(114), - 1952: uint16(222), - 1953: uint16(116), - 1954: uint16(117), - 1955: uint16(118), - 1956: uint16(214), - 1957: uint16(214), - 1958: uint16(121), - 1959: uint16(4), - 1960: uint16(207), - 1961: uint16(213), - 1962: uint16(3), - 1963: uint16(22), - 1964: uint16(303), - 1965: uint16(15), - 1966: uint16(163), - 1967: uint16(16), - 1968: uint16(23), - 1969: uint16(23), - 1970: uint16(139), - 1971: uint16(151), - 1972: uint16(130), - 1973: uint16(25), - 1974: uint16(20), - 1975: uint16(142), - 1976: uint16(24), - 1977: uint16(16), - 1978: uint16(144), - 1979: uint16(1), - 1980: uint16(142), - 1981: uint16(130), - 1982: uint16(130), - 1983: uint16(61), - 1984: uint16(37), - 1985: uint16(53), - 1986: uint16(300), - 1987: uint16(151), - 1988: uint16(53), - 1989: uint16(53), - 1990: uint16(153), - 1991: uint16(154), - 1992: uint16(155), - 1993: uint16(156), - 1994: uint16(157), - 1995: uint16(53), - 1996: uint16(130), - 1997: uint16(116), - 1998: uint16(34), - 1999: uint16(1), - 2000: uint16(141), - 2001: uint16(5), - 2002: uint16(22), - 2003: uint16(115), - 2004: uint16(161), - 2005: uint16(68), - 2006: uint16(25), - 2007: uint16(68), - 2008: uint16(75), - 2009: uint16(41), - 2010: uint16(141), - 2011: uint16(115), - 2012: uint16(24), - 2013: uint16(20), - 2014: uint16(19), - 2015: uint16(131), - 2016: uint16(125), - 2017: uint16(23), - 2018: uint16(28), - 2019: uint16(22), - 2020: uint16(67), - 2021: uint16(22), - 2022: uint16(22), - 2023: uint16(22), - 2024: uint16(67), - 2025: uint16(59), - 2026: uint16(24), - 2027: uint16(96), - 2028: uint16(22), - 2029: uint16(67), - 2030: uint16(23), - 2031: uint16(149), - 2032: uint16(22), - 2033: uint16(25), - 2034: uint16(23), - 2035: uint16(23), - 2036: uint16(23), - 2037: uint16(22), - 2038: uint16(34), - 2039: uint16(141), - 2040: uint16(37), - 2041: uint16(97), - 2042: uint16(23), - 2043: uint16(23), - 2044: uint16(116), - 2045: uint16(22), - 2046: uint16(143), - 2047: uint16(25), - 2048: uint16(34), - 2049: uint16(75), - 2050: uint16(34), - 2051: uint16(34), - 2052: uint16(34), - 2053: uint16(88), - 2054: uint16(75), - 2055: uint16(34), - 2056: uint16(86), - 2057: uint16(23), + 1903: uint16(158), + 1904: uint16(292), + 1905: uint16(62), + 1906: uint16(291), + 1907: uint16(201), + 1908: uint16(200), + 1909: uint16(22), + 1910: uint16(201), + 1911: uint16(222), + 1912: uint16(200), + 1913: uint16(222), + 1914: uint16(201), + 1915: uint16(200), + 1916: uint16(115), + 1917: uint16(219), + 1918: uint16(219), + 1919: uint16(64), + 1920: uint16(219), + 1921: uint16(228), + 1922: uint16(22), + 1923: uint16(126), + 1924: uint16(221), + 1925: uint16(133), + 1926: uint16(165), + 1927: uint16(222), + 1928: uint16(100), + 1929: uint16(225), + 1930: uint16(138), + 1931: uint16(139), + 1932: uint16(225), + 1933: uint16(219), + 1934: uint16(106), + 1935: uint16(107), + 1936: uint16(24), + 1937: uint16(219), + 1938: uint16(228), + 1939: uint16(219), + 1940: uint16(219), + 1941: uint16(307), + 1942: uint16(114), + 1943: uint16(113), + 1944: uint16(116), + 1945: uint16(117), + 1946: uint16(118), + 1947: uint16(315), + 1948: uint16(284), + 1949: uint16(121), + 1950: uint16(284), + 1951: uint16(222), + 1952: uint16(201), + 1953: uint16(91), + 1954: uint16(162), + 1955: uint16(320), + 1956: uint16(320), + 1957: uint16(82), + 1958: uint16(148), + 1959: uint16(267), + 1960: uint16(145), + 1961: uint16(267), + 1962: uint16(22), + 1963: uint16(279), + 1964: uint16(201), + 1965: uint16(158), + 1966: uint16(281), + 1967: uint16(251), + 1968: uint16(147), + 1969: uint16(146), + 1970: uint16(25), + 1971: uint16(203), + 1972: uint16(250), + 1973: uint16(249), + 1974: uint16(251), + 1975: uint16(248), + 1976: uint16(13), + 1977: uint16(247), + 1978: uint16(195), + 1979: uint16(195), + 1980: uint16(6), + 1981: uint16(153), + 1982: uint16(154), + 1983: uint16(155), + 1984: uint16(156), + 1985: uint16(157), + 1986: uint16(193), + 1987: uint16(193), + 1988: uint16(305), + 1989: uint16(193), + 1990: uint16(208), + 1991: uint16(305), + 1992: uint16(302), + 1993: uint16(214), + 1994: uint16(214), + 1995: uint16(214), + 1996: uint16(208), + 1997: uint16(223), + 1998: uint16(223), + 1999: uint16(214), + 2000: uint16(4), + 2001: uint16(215), + 2002: uint16(215), + 2003: uint16(214), + 2004: uint16(3), + 2005: uint16(22), + 2006: uint16(208), + 2007: uint16(163), + 2008: uint16(15), + 2009: uint16(23), + 2010: uint16(16), + 2011: uint16(183), + 2012: uint16(23), + 2013: uint16(139), + 2014: uint16(151), + 2015: uint16(130), + 2016: uint16(25), + 2017: uint16(20), + 2018: uint16(142), + 2019: uint16(24), + 2020: uint16(16), + 2021: uint16(144), + 2022: uint16(1), + 2023: uint16(142), + 2024: uint16(130), + 2025: uint16(130), + 2026: uint16(61), + 2027: uint16(37), + 2028: uint16(53), + 2029: uint16(151), + 2030: uint16(53), + 2031: uint16(53), + 2032: uint16(53), + 2033: uint16(130), + 2034: uint16(116), + 2035: uint16(1), + 2036: uint16(34), + 2037: uint16(141), + 2038: uint16(5), + 2039: uint16(22), + 2040: uint16(115), + 2041: uint16(161), + 2042: uint16(75), + 2043: uint16(25), + 2044: uint16(68), + 2045: uint16(141), + 2046: uint16(41), + 2047: uint16(115), + 2048: uint16(68), + 2049: uint16(24), + 2050: uint16(20), + 2051: uint16(19), + 2052: uint16(131), + 2053: uint16(125), + 2054: uint16(67), + 2055: uint16(67), + 2056: uint16(96), + 2057: uint16(22), 2058: uint16(22), - 2059: uint16(34), - 2060: uint16(93), - 2061: uint16(24), - 2062: uint16(34), - 2063: uint16(25), - 2064: uint16(25), - 2065: uint16(142), - 2066: uint16(142), + 2059: uint16(22), + 2060: uint16(37), + 2061: uint16(23), + 2062: uint16(22), + 2063: uint16(24), + 2064: uint16(22), + 2065: uint16(59), + 2066: uint16(67), 2067: uint16(23), - 2068: uint16(44), - 2069: uint16(23), - 2070: uint16(23), - 2071: uint16(23), + 2068: uint16(149), + 2069: uint16(28), + 2070: uint16(22), + 2071: uint16(25), 2072: uint16(23), - 2073: uint16(11), + 2073: uint16(23), 2074: uint16(23), - 2075: uint16(25), - 2076: uint16(22), - 2077: uint16(22), - 2078: uint16(22), - 2079: uint16(141), + 2075: uint16(22), + 2076: uint16(141), + 2077: uint16(34), + 2078: uint16(97), + 2079: uint16(23), 2080: uint16(23), - 2081: uint16(23), - 2082: uint16(22), + 2081: uint16(34), + 2082: uint16(116), 2083: uint16(22), - 2084: uint16(25), - 2085: uint16(15), - 2086: uint16(1), - 2087: uint16(23), - 2088: uint16(25), - 2089: uint16(1), - 2090: uint16(141), - 2091: uint16(135), - 2092: uint16(319), - 2093: uint16(319), - 2094: uint16(319), - 2095: uint16(319), - 2096: uint16(319), - 2097: uint16(319), - 2098: uint16(319), - 2099: uint16(141), - 2100: uint16(319), - 2101: uint16(319), - 2102: uint16(319), - 2103: uint16(319), - 2104: uint16(319), - 2105: uint16(319), - 2106: uint16(319), - 2107: uint16(319), - 2108: uint16(319), - 2109: uint16(319), - 2110: uint16(319), - 2111: uint16(319), - 2112: uint16(319), - 2113: uint16(319), - 2114: uint16(319), - 2115: uint16(319), - 2116: uint16(319), - 2117: uint16(319), - 2118: uint16(319), - 2119: uint16(319), - 2120: uint16(319), - 2121: uint16(319), - 2122: uint16(319), - 2123: uint16(319), - 2124: uint16(319), - 2125: uint16(319), - 2126: uint16(319), - 2127: uint16(319), - 2128: uint16(319), - 2129: uint16(319), - 2130: uint16(319), - 2131: uint16(319), - 2132: uint16(319), - 2133: uint16(319), - 2134: uint16(319), - 2135: uint16(319), - 2136: uint16(319), - 2137: uint16(319), - 2138: uint16(319), - 2139: uint16(319), - 2140: uint16(319), - 2141: uint16(319), - 2142: uint16(319), - 2143: uint16(319), - 2144: uint16(319), - 2145: uint16(319), - 2146: uint16(319), - 2147: uint16(319), - 2148: uint16(319), - 2149: uint16(319), - 2150: uint16(319), - 2151: uint16(319), - 2152: uint16(319), - 2153: uint16(319), - 2154: uint16(319), - 2155: uint16(319), - 2156: uint16(319), - 2157: uint16(319), - 2158: uint16(319), - 2159: uint16(319), - 2160: uint16(319), - 2161: uint16(319), - 2162: uint16(319), - 2163: uint16(319), - 2164: uint16(319), - 2165: uint16(319), - 2166: uint16(319), - 2167: uint16(319), - 2168: uint16(319), - 2169: uint16(319), - 2170: uint16(319), - 2171: uint16(319), - 2172: uint16(319), - 2173: uint16(319), - 2174: uint16(319), - 2175: uint16(319), - 2176: uint16(319), - 2177: uint16(319), - 2178: uint16(319), - 2179: uint16(319), - 2180: uint16(319), - 2181: uint16(319), - 2182: uint16(319), - 2183: uint16(319), - 2184: uint16(319), - 2185: uint16(319), - 2186: uint16(319), - 2187: uint16(319), - 2188: uint16(319), - 2189: uint16(319), - 2190: uint16(319), - 2191: uint16(319), - 2192: uint16(319), - 2193: uint16(319), - 2194: uint16(319), - 2195: uint16(319), - 2196: uint16(319), - 2197: uint16(319), - 2198: uint16(319), - 2199: uint16(319), - 2200: uint16(319), - 2201: uint16(319), - 2202: uint16(319), - 2203: uint16(319), - 2204: uint16(319), - 2205: uint16(319), - 2206: uint16(319), - 2207: uint16(319), - 2208: uint16(319), - 2209: uint16(319), - 2210: uint16(319), - 2211: uint16(319), - 2212: uint16(319), - 2213: uint16(319), - 2214: uint16(319), - 2215: uint16(319), - 2216: uint16(319), - 2217: uint16(319), - 2218: uint16(319), - 2219: uint16(319), - 2220: uint16(319), - 2221: uint16(319), - 2222: uint16(319), - 2223: uint16(319), - 2224: uint16(319), - 2225: uint16(319), - 2226: uint16(319), - 2227: uint16(319), - 2228: uint16(319), - 2229: uint16(319), - 2230: uint16(319), - 2231: uint16(319), - 2232: uint16(319), - 2233: uint16(319), - 2234: uint16(319), - 2235: uint16(319), - 2236: uint16(319), - 2237: uint16(319), - 2238: uint16(319), - 2239: uint16(319), - 2240: uint16(319), - 2241: uint16(319), - 2242: uint16(319), - 2243: uint16(319), - 2244: uint16(319), - 2245: uint16(319), - 2246: uint16(319), - 2247: uint16(319), - 2248: uint16(319), - 2249: uint16(319), - 2250: uint16(319), - 2251: uint16(319), - 2252: uint16(319), - 2253: uint16(319), - 2254: uint16(319), - 2255: uint16(319), - 2256: uint16(319), - 2257: uint16(319), - 2258: uint16(319), - 2259: uint16(319), - 2260: uint16(319), - 2261: uint16(319), - 2262: uint16(319), - 2263: uint16(319), - 2264: uint16(319), - 2265: uint16(319), - 2266: uint16(319), - 2267: uint16(319), - 2268: uint16(319), - 2269: uint16(319), - 2270: uint16(319), - 2271: uint16(319), - 2272: uint16(319), - 2273: uint16(319), - 2274: uint16(319), - 2275: uint16(319), - 2276: uint16(319), - 2277: uint16(319), - 2278: uint16(319), - 2279: uint16(319), - 2280: uint16(319), - 2281: uint16(319), - 2282: uint16(319), - 2283: uint16(319), - 2284: uint16(319), -} -var _yy_shift_ofst = [579]uint16{ - 0: uint16(1648), - 1: uint16(1477), - 2: uint16(1272), + 2084: uint16(143), + 2085: uint16(25), + 2086: uint16(34), + 2087: uint16(75), + 2088: uint16(34), + 2089: uint16(34), + 2090: uint16(75), + 2091: uint16(88), + 2092: uint16(34), + 2093: uint16(86), + 2094: uint16(23), + 2095: uint16(22), + 2096: uint16(34), + 2097: uint16(25), + 2098: uint16(24), + 2099: uint16(34), + 2100: uint16(25), + 2101: uint16(93), + 2102: uint16(23), + 2103: uint16(44), + 2104: uint16(142), + 2105: uint16(23), + 2106: uint16(142), + 2107: uint16(23), + 2108: uint16(23), + 2109: uint16(22), + 2110: uint16(11), + 2111: uint16(25), + 2112: uint16(23), + 2113: uint16(25), + 2114: uint16(23), + 2115: uint16(22), + 2116: uint16(22), + 2117: uint16(22), + 2118: uint16(1), + 2119: uint16(23), + 2120: uint16(23), + 2121: uint16(23), + 2122: uint16(22), + 2123: uint16(22), + 2124: uint16(15), + 2125: uint16(141), + 2126: uint16(141), + 2127: uint16(25), + 2128: uint16(25), + 2129: uint16(1), + 2130: uint16(322), + 2131: uint16(322), + 2132: uint16(322), + 2133: uint16(135), + 2134: uint16(322), + 2135: uint16(322), + 2136: uint16(322), + 2137: uint16(322), + 2138: uint16(322), + 2139: uint16(322), + 2140: uint16(322), + 2141: uint16(141), + 2142: uint16(322), + 2143: uint16(322), + 2144: uint16(322), + 2145: uint16(322), + 2146: uint16(322), + 2147: uint16(322), + 2148: uint16(322), + 2149: uint16(322), + 2150: uint16(322), + 2151: uint16(322), + 2152: uint16(322), + 2153: uint16(322), + 2154: uint16(322), + 2155: uint16(322), + 2156: uint16(322), + 2157: uint16(322), + 2158: uint16(322), + 2159: uint16(322), + 2160: uint16(322), + 2161: uint16(322), + 2162: uint16(322), + 2163: uint16(322), + 2164: uint16(322), + 2165: uint16(322), + 2166: uint16(322), + 2167: uint16(322), + 2168: uint16(322), + 2169: uint16(322), + 2170: uint16(322), + 2171: uint16(322), + 2172: uint16(322), + 2173: uint16(322), + 2174: uint16(322), + 2175: uint16(322), + 2176: uint16(322), + 2177: uint16(322), + 2178: uint16(322), + 2179: uint16(322), + 2180: uint16(322), + 2181: uint16(322), + 2182: uint16(322), + 2183: uint16(322), + 2184: uint16(322), + 2185: uint16(322), + 2186: uint16(322), + 2187: uint16(322), + 2188: uint16(322), + 2189: uint16(322), + 2190: uint16(322), + 2191: uint16(322), + 2192: uint16(322), + 2193: uint16(322), + 2194: uint16(322), + 2195: uint16(322), + 2196: uint16(322), + 2197: uint16(322), + 2198: uint16(322), + 2199: uint16(322), + 2200: uint16(322), + 2201: uint16(322), + 2202: uint16(322), + 2203: uint16(322), + 2204: uint16(322), + 2205: uint16(322), + 2206: uint16(322), + 2207: uint16(322), + 2208: uint16(322), + 2209: uint16(322), + 2210: uint16(322), + 2211: uint16(322), + 2212: uint16(322), + 2213: uint16(322), + 2214: uint16(322), + 2215: uint16(322), + 2216: uint16(322), + 2217: uint16(322), + 2218: uint16(322), + 2219: uint16(322), + 2220: uint16(322), + 2221: uint16(322), + 2222: uint16(322), + 2223: uint16(322), + 2224: uint16(322), + 2225: uint16(322), + 2226: uint16(322), + 2227: uint16(322), + 2228: uint16(322), + 2229: uint16(322), + 2230: uint16(322), + 2231: uint16(322), + 2232: uint16(322), + 2233: uint16(322), + 2234: uint16(322), + 2235: uint16(322), + 2236: uint16(322), + 2237: uint16(322), + 2238: uint16(322), + 2239: uint16(322), + 2240: uint16(322), + 2241: uint16(322), + 2242: uint16(322), + 2243: uint16(322), + 2244: uint16(322), + 2245: uint16(322), + 2246: uint16(322), + 2247: uint16(322), + 2248: uint16(322), + 2249: uint16(322), + 2250: uint16(322), + 2251: uint16(322), + 2252: uint16(322), + 2253: uint16(322), + 2254: uint16(322), + 2255: uint16(322), + 2256: uint16(322), + 2257: uint16(322), + 2258: uint16(322), + 2259: uint16(322), + 2260: uint16(322), + 2261: uint16(322), + 2262: uint16(322), + 2263: uint16(322), + 2264: uint16(322), + 2265: uint16(322), + 2266: uint16(322), + 2267: uint16(322), + 2268: uint16(322), + 2269: uint16(322), + 2270: uint16(322), + 2271: uint16(322), + 2272: uint16(322), + 2273: uint16(322), + 2274: uint16(322), + 2275: uint16(322), + 2276: uint16(322), + 2277: uint16(322), + 2278: uint16(322), + 2279: uint16(322), + 2280: uint16(322), + 2281: uint16(322), + 2282: uint16(322), + 2283: uint16(322), + 2284: uint16(322), + 2285: uint16(322), + 2286: uint16(322), + 2287: uint16(322), + 2288: uint16(322), + 2289: uint16(322), + 2290: uint16(322), + 2291: uint16(322), + 2292: uint16(322), + 2293: uint16(322), + 2294: uint16(322), + 2295: uint16(322), + 2296: uint16(322), + 2297: uint16(322), + 2298: uint16(322), + 2299: uint16(322), + 2300: uint16(322), + 2301: uint16(322), + 2302: uint16(322), + 2303: uint16(322), + 2304: uint16(322), + 2305: uint16(322), + 2306: uint16(322), + 2307: uint16(322), + 2308: uint16(322), + 2309: uint16(322), + 2310: uint16(322), + 2311: uint16(322), + 2312: uint16(322), + 2313: uint16(322), + 2314: uint16(322), + 2315: uint16(322), + 2316: uint16(322), + 2317: uint16(322), + 2318: uint16(322), + 2319: uint16(322), + 2320: uint16(322), + 2321: uint16(322), + 2322: uint16(322), + 2323: uint16(322), + 2324: uint16(322), + 2325: uint16(322), + 2326: uint16(322), + 2327: uint16(322), +} +var _yy_shift_ofst = [583]uint16{ + 0: uint16(1792), + 1: uint16(1588), + 2: uint16(1494), 3: uint16(322), 4: uint16(322), - 5: uint16(1), - 6: uint16(1319), - 7: uint16(1478), - 8: uint16(1491), - 9: uint16(1837), - 10: uint16(1837), - 11: uint16(1837), - 12: uint16(471), - 15: uint16(214), - 16: uint16(1093), - 17: uint16(1837), - 18: uint16(1837), - 19: uint16(1837), - 20: uint16(1837), - 21: uint16(1837), - 22: uint16(1837), - 23: uint16(1837), - 24: uint16(1837), - 25: uint16(1837), - 26: uint16(1837), - 27: uint16(1837), - 28: uint16(1837), - 29: uint16(1837), - 30: uint16(1837), - 31: uint16(271), - 32: uint16(271), - 33: uint16(1219), - 34: uint16(1219), - 35: uint16(216), - 36: uint16(88), - 37: uint16(1), - 38: uint16(1), - 39: uint16(1), - 40: uint16(1), - 41: uint16(1), - 42: uint16(40), - 43: uint16(111), - 44: uint16(258), - 45: uint16(361), - 46: uint16(469), - 47: uint16(512), - 48: uint16(583), - 49: uint16(622), - 50: uint16(693), - 51: uint16(732), - 52: uint16(803), - 53: uint16(842), - 54: uint16(913), - 55: uint16(1073), - 56: uint16(1093), - 57: uint16(1093), - 58: uint16(1093), - 59: uint16(1093), - 60: uint16(1093), - 61: uint16(1093), - 62: uint16(1093), - 63: uint16(1093), - 64: uint16(1093), + 5: uint16(399), + 6: uint16(306), + 7: uint16(1319), + 8: uint16(1339), + 9: uint16(1430), + 10: uint16(1828), + 11: uint16(1828), + 12: uint16(1828), + 13: uint16(580), + 14: uint16(399), + 15: uint16(399), + 16: uint16(399), + 17: uint16(399), + 18: uint16(399), + 21: uint16(214), + 22: uint16(1093), + 23: uint16(1828), + 24: uint16(1828), + 25: uint16(1828), + 26: uint16(1828), + 27: uint16(1828), + 28: uint16(1828), + 29: uint16(1828), + 30: uint16(1828), + 31: uint16(1828), + 32: uint16(1828), + 33: uint16(1828), + 34: uint16(1828), + 35: uint16(1828), + 36: uint16(1828), + 37: uint16(1828), + 38: uint16(1130), + 39: uint16(1130), + 40: uint16(365), + 41: uint16(365), + 42: uint16(55), + 43: uint16(278), + 44: uint16(436), + 45: uint16(713), + 46: uint16(713), + 47: uint16(201), + 48: uint16(201), + 49: uint16(201), + 50: uint16(201), + 51: uint16(40), + 52: uint16(111), + 53: uint16(258), + 54: uint16(361), + 55: uint16(469), + 56: uint16(512), + 57: uint16(583), + 58: uint16(622), + 59: uint16(693), + 60: uint16(732), + 61: uint16(803), + 62: uint16(842), + 63: uint16(913), + 64: uint16(1073), 65: uint16(1093), 66: uint16(1093), 67: uint16(1093), @@ -157071,1505 +158622,1514 @@ var _yy_shift_ofst = [579]uint16{ 71: uint16(1093), 72: uint16(1093), 73: uint16(1093), - 74: uint16(1113), + 74: uint16(1093), 75: uint16(1093), - 76: uint16(1216), - 77: uint16(957), - 78: uint16(957), - 79: uint16(1635), - 80: uint16(1662), - 81: uint16(1777), - 82: uint16(1837), - 83: uint16(1837), - 84: uint16(1837), - 85: uint16(1837), - 86: uint16(1837), - 87: uint16(1837), - 88: uint16(1837), - 89: uint16(1837), - 90: uint16(1837), - 91: uint16(1837), - 92: uint16(1837), - 93: uint16(1837), - 94: uint16(1837), - 95: uint16(1837), - 96: uint16(1837), - 97: uint16(1837), - 98: uint16(1837), - 99: uint16(1837), - 100: uint16(1837), - 101: uint16(1837), - 102: uint16(1837), - 103: uint16(1837), - 104: uint16(1837), - 105: uint16(1837), - 106: uint16(1837), - 107: uint16(1837), - 108: uint16(1837), - 109: uint16(1837), - 110: uint16(1837), - 111: uint16(1837), - 112: uint16(1837), - 113: uint16(1837), - 114: uint16(1837), - 115: uint16(1837), - 116: uint16(1837), - 117: uint16(1837), - 118: uint16(1837), - 119: uint16(1837), - 120: uint16(1837), - 121: uint16(1837), - 122: uint16(1837), - 123: uint16(1837), - 124: uint16(1837), - 125: uint16(1837), - 126: uint16(1837), - 127: uint16(1837), - 128: uint16(1837), - 129: uint16(1837), - 130: uint16(1837), - 131: uint16(137), - 132: uint16(181), - 133: uint16(181), - 134: uint16(181), - 135: uint16(181), - 136: uint16(181), - 137: uint16(181), - 138: uint16(181), - 139: uint16(94), - 140: uint16(430), - 141: uint16(66), - 142: uint16(65), - 143: uint16(112), - 144: uint16(366), - 145: uint16(533), - 146: uint16(533), - 147: uint16(740), - 148: uint16(1257), - 149: uint16(533), - 150: uint16(533), - 151: uint16(79), - 152: uint16(79), - 153: uint16(533), - 154: uint16(412), - 155: uint16(412), - 156: uint16(412), - 157: uint16(77), - 158: uint16(412), - 159: uint16(123), - 160: uint16(113), - 161: uint16(113), - 162: uint16(113), - 163: uint16(22), - 164: uint16(22), - 165: uint16(2100), - 166: uint16(2100), - 167: uint16(328), - 168: uint16(328), - 169: uint16(328), - 170: uint16(239), - 171: uint16(468), - 172: uint16(468), - 173: uint16(468), - 174: uint16(468), - 175: uint16(1015), - 176: uint16(1015), - 177: uint16(409), - 178: uint16(366), - 179: uint16(1187), - 180: uint16(1232), - 181: uint16(533), - 182: uint16(533), - 183: uint16(533), - 184: uint16(533), - 185: uint16(533), - 186: uint16(533), - 187: uint16(533), - 188: uint16(533), - 189: uint16(533), - 190: uint16(533), - 191: uint16(533), - 192: uint16(533), - 193: uint16(533), - 194: uint16(533), - 195: uint16(533), - 196: uint16(533), - 197: uint16(533), - 198: uint16(533), - 199: uint16(533), - 200: uint16(533), - 201: uint16(969), - 202: uint16(621), - 203: uint16(621), - 204: uint16(533), - 205: uint16(642), - 206: uint16(788), - 207: uint16(788), - 208: uint16(1133), - 209: uint16(1133), - 210: uint16(822), - 211: uint16(822), - 212: uint16(67), - 213: uint16(1193), - 214: uint16(2100), - 215: uint16(2100), - 216: uint16(2100), - 217: uint16(2100), - 218: uint16(2100), - 219: uint16(2100), - 220: uint16(2100), - 221: uint16(1307), - 222: uint16(954), - 223: uint16(954), - 224: uint16(585), - 225: uint16(472), - 226: uint16(640), - 227: uint16(387), - 228: uint16(695), - 229: uint16(538), - 230: uint16(541), - 231: uint16(700), - 232: uint16(533), - 233: uint16(533), - 234: uint16(533), - 235: uint16(533), - 236: uint16(533), - 237: uint16(533), - 238: uint16(533), - 239: uint16(533), - 240: uint16(533), - 241: uint16(533), - 242: uint16(222), - 243: uint16(533), - 244: uint16(533), - 245: uint16(533), - 246: uint16(533), - 247: uint16(533), - 248: uint16(533), - 249: uint16(533), - 250: uint16(533), - 251: uint16(533), - 252: uint16(533), - 253: uint16(533), - 254: uint16(533), - 255: uint16(1213), - 256: uint16(1213), - 257: uint16(1213), - 258: uint16(533), - 259: uint16(533), - 260: uint16(533), - 261: uint16(565), - 262: uint16(533), - 263: uint16(533), - 264: uint16(533), - 265: uint16(916), - 266: uint16(1147), - 267: uint16(533), - 268: uint16(533), - 269: uint16(1288), - 270: uint16(533), - 271: uint16(533), - 272: uint16(533), - 273: uint16(533), - 274: uint16(533), - 275: uint16(533), - 276: uint16(533), - 277: uint16(533), - 278: uint16(639), - 279: uint16(1280), - 280: uint16(209), - 281: uint16(1129), - 282: uint16(1129), - 283: uint16(1129), - 284: uint16(1129), - 285: uint16(580), - 286: uint16(209), - 287: uint16(209), - 288: uint16(1209), - 289: uint16(768), - 290: uint16(917), - 291: uint16(649), - 292: uint16(1315), - 293: uint16(1334), - 294: uint16(405), - 295: uint16(1334), - 296: uint16(1383), - 297: uint16(249), - 298: uint16(1315), - 299: uint16(1315), - 300: uint16(249), - 301: uint16(1315), - 302: uint16(405), - 303: uint16(1383), - 304: uint16(1441), - 305: uint16(464), - 306: uint16(1245), - 307: uint16(1417), - 308: uint16(1417), - 309: uint16(1417), - 310: uint16(1323), - 311: uint16(1323), - 312: uint16(1323), - 313: uint16(1323), - 314: uint16(184), - 315: uint16(184), - 316: uint16(1335), - 317: uint16(1476), - 318: uint16(856), - 319: uint16(1482), - 320: uint16(1744), - 321: uint16(1744), - 322: uint16(1665), - 323: uint16(1665), - 324: uint16(1773), - 325: uint16(1773), - 326: uint16(1665), - 327: uint16(1669), - 328: uint16(1671), - 329: uint16(1802), - 330: uint16(1782), - 331: uint16(1809), - 332: uint16(1809), - 333: uint16(1809), - 334: uint16(1809), - 335: uint16(1665), - 336: uint16(1817), - 337: uint16(1690), - 338: uint16(1671), - 339: uint16(1671), - 340: uint16(1690), - 341: uint16(1802), - 342: uint16(1782), - 343: uint16(1690), - 344: uint16(1782), - 345: uint16(1690), - 346: uint16(1665), - 347: uint16(1817), - 348: uint16(1693), - 349: uint16(1791), - 350: uint16(1665), - 351: uint16(1817), - 352: uint16(1832), - 353: uint16(1665), - 354: uint16(1817), - 355: uint16(1665), - 356: uint16(1817), - 357: uint16(1832), - 358: uint16(1752), - 359: uint16(1752), - 360: uint16(1752), - 361: uint16(1805), - 362: uint16(1850), - 363: uint16(1850), - 364: uint16(1832), - 365: uint16(1752), - 366: uint16(1749), - 367: uint16(1752), - 368: uint16(1805), - 369: uint16(1752), - 370: uint16(1752), - 371: uint16(1713), - 372: uint16(1858), - 373: uint16(1775), - 374: uint16(1775), - 375: uint16(1832), - 376: uint16(1665), - 377: uint16(1799), - 378: uint16(1799), - 379: uint16(1823), - 380: uint16(1823), - 381: uint16(1761), - 382: uint16(1765), - 383: uint16(1890), - 384: uint16(1665), - 385: uint16(1757), - 386: uint16(1761), - 387: uint16(1771), - 388: uint16(1774), - 389: uint16(1690), - 390: uint16(1894), - 391: uint16(1913), - 392: uint16(1913), - 393: uint16(1929), - 394: uint16(1929), - 395: uint16(1929), - 396: uint16(2100), - 397: uint16(2100), - 398: uint16(2100), - 399: uint16(2100), - 400: uint16(2100), - 401: uint16(2100), - 402: uint16(2100), - 403: uint16(2100), - 404: uint16(2100), - 405: uint16(2100), - 406: uint16(2100), - 407: uint16(2100), - 408: uint16(2100), - 409: uint16(2100), - 410: uint16(2100), - 411: uint16(207), - 412: uint16(1220), - 413: uint16(331), - 414: uint16(620), - 415: uint16(967), - 416: uint16(806), - 417: uint16(1074), - 418: uint16(1499), - 419: uint16(1432), - 420: uint16(1463), - 421: uint16(1479), - 422: uint16(1419), - 423: uint16(1422), - 424: uint16(1557), - 425: uint16(1512), - 426: uint16(1598), - 427: uint16(1599), - 428: uint16(1644), - 429: uint16(1645), - 430: uint16(1654), - 431: uint16(1660), - 432: uint16(1555), - 433: uint16(1505), - 434: uint16(1684), - 435: uint16(1462), - 436: uint16(1670), - 437: uint16(1563), - 438: uint16(1619), - 439: uint16(1593), - 440: uint16(1676), - 441: uint16(1679), - 442: uint16(1613), - 443: uint16(1680), - 444: uint16(1554), - 445: uint16(1558), - 446: uint16(1689), - 447: uint16(1692), - 448: uint16(1605), - 449: uint16(1589), - 450: uint16(1955), - 451: uint16(1959), - 452: uint16(1941), - 453: uint16(1803), - 454: uint16(1950), - 455: uint16(1951), - 456: uint16(1945), - 457: uint16(1946), - 458: uint16(1831), - 459: uint16(1820), - 460: uint16(1842), - 461: uint16(1948), - 462: uint16(1948), - 463: uint16(1952), - 464: uint16(1833), - 465: uint16(1954), - 466: uint16(1834), - 467: uint16(1961), - 468: uint16(1978), - 469: uint16(1838), - 470: uint16(1851), - 471: uint16(1948), - 472: uint16(1852), - 473: uint16(1922), - 474: uint16(1947), - 475: uint16(1948), - 476: uint16(1836), - 477: uint16(1932), - 478: uint16(1935), - 479: uint16(1936), - 480: uint16(1942), - 481: uint16(1866), - 482: uint16(1881), - 483: uint16(1964), - 484: uint16(1859), - 485: uint16(1998), - 486: uint16(1996), - 487: uint16(1980), - 488: uint16(1888), - 489: uint16(1843), - 490: uint16(1937), - 491: uint16(1981), - 492: uint16(1939), - 493: uint16(1933), - 494: uint16(1968), - 495: uint16(1869), - 496: uint16(1896), - 497: uint16(1988), - 498: uint16(1993), - 499: uint16(1995), - 500: uint16(1884), - 501: uint16(1891), - 502: uint16(1997), - 503: uint16(1953), - 504: uint16(1999), - 505: uint16(2000), - 506: uint16(1994), - 507: uint16(2001), - 508: uint16(1957), - 509: uint16(1966), - 510: uint16(2002), - 511: uint16(1931), - 512: uint16(1990), - 513: uint16(2006), - 514: uint16(1962), - 515: uint16(2003), - 516: uint16(2007), - 517: uint16(2004), - 518: uint16(1882), - 519: uint16(2010), - 520: uint16(2011), - 521: uint16(2012), - 522: uint16(2008), - 523: uint16(2013), - 524: uint16(2015), - 525: uint16(1944), - 526: uint16(1898), - 527: uint16(2019), - 528: uint16(2020), - 529: uint16(1928), - 530: uint16(2014), - 531: uint16(2023), - 532: uint16(1903), - 533: uint16(2022), - 534: uint16(2016), - 535: uint16(2017), - 536: uint16(2018), - 537: uint16(2021), - 538: uint16(1965), - 539: uint16(1974), - 540: uint16(1970), - 541: uint16(2024), - 542: uint16(1979), - 543: uint16(1967), - 544: uint16(2025), - 545: uint16(2034), - 546: uint16(2036), - 547: uint16(2037), - 548: uint16(2038), - 549: uint16(2039), - 550: uint16(2028), - 551: uint16(1923), - 552: uint16(1924), - 553: uint16(2044), - 554: uint16(2022), - 555: uint16(2046), - 556: uint16(2047), - 557: uint16(2048), - 558: uint16(2049), - 559: uint16(2050), - 560: uint16(2051), - 561: uint16(2054), - 562: uint16(2062), - 563: uint16(2055), - 564: uint16(2056), - 565: uint16(2057), - 566: uint16(2058), - 567: uint16(2060), - 568: uint16(2061), - 569: uint16(2059), - 570: uint16(1956), - 571: uint16(1938), - 572: uint16(1949), - 573: uint16(1958), - 574: uint16(2063), - 575: uint16(2064), - 576: uint16(2070), - 577: uint16(2085), - 578: uint16(2088), -} -var _yy_reduce_ofst = [411]int16{ - 0: int16(-int32(125)), - 1: int16(733), - 2: int16(789), - 3: int16(241), - 4: int16(293), - 5: int16(-int32(123)), - 6: int16(-int32(193)), - 7: int16(-int32(191)), - 8: int16(-int32(183)), - 9: int16(-int32(187)), - 10: int16(166), - 11: int16(238), - 12: int16(133), - 13: int16(-int32(207)), - 14: int16(-int32(199)), - 15: int16(-int32(267)), - 16: int16(-int32(176)), - 17: int16(-int32(6)), - 18: int16(204), - 19: int16(489), - 20: int16(576), - 21: int16(598), - 22: int16(-int32(175)), - 23: int16(686), - 24: int16(860), - 25: int16(615), - 26: int16(725), - 27: int16(1014), - 28: int16(778), - 29: int16(781), - 30: int16(857), - 31: int16(616), - 32: int16(887), - 33: int16(87), - 34: int16(240), - 35: int16(-int32(192)), - 36: int16(408), - 37: int16(626), - 38: int16(796), - 39: int16(843), - 40: int16(854), - 41: int16(1004), - 42: int16(-int32(271)), - 43: int16(-int32(271)), - 44: int16(-int32(271)), - 45: int16(-int32(271)), - 46: int16(-int32(271)), - 47: int16(-int32(271)), - 48: int16(-int32(271)), - 49: int16(-int32(271)), - 50: int16(-int32(271)), - 51: int16(-int32(271)), - 52: int16(-int32(271)), - 53: int16(-int32(271)), - 54: int16(-int32(271)), - 55: int16(-int32(271)), - 56: int16(-int32(271)), - 57: int16(-int32(271)), - 58: int16(-int32(271)), - 59: int16(-int32(271)), - 60: int16(-int32(271)), - 61: int16(-int32(271)), - 62: int16(-int32(271)), - 63: int16(-int32(271)), - 64: int16(-int32(271)), - 65: int16(-int32(271)), - 66: int16(-int32(271)), - 67: int16(-int32(271)), - 68: int16(-int32(271)), - 69: int16(-int32(271)), - 70: int16(-int32(271)), - 71: int16(-int32(271)), - 72: int16(-int32(271)), - 73: int16(-int32(271)), - 74: int16(-int32(271)), - 75: int16(-int32(271)), - 76: int16(-int32(271)), - 77: int16(-int32(271)), - 78: int16(-int32(271)), - 79: int16(80), - 80: int16(83), - 81: int16(313), - 82: int16(886), - 83: int16(888), - 84: int16(918), - 85: int16(938), - 86: int16(1021), - 87: int16(1034), - 88: int16(1036), - 89: int16(1141), - 90: int16(1159), - 91: int16(1163), - 92: int16(1166), - 93: int16(1168), - 94: int16(1170), - 95: int16(1176), - 96: int16(1178), - 97: int16(1180), - 98: int16(1184), - 99: int16(1196), - 100: int16(1198), - 101: int16(1205), - 102: int16(1215), - 103: int16(1225), - 104: int16(1227), - 105: int16(1236), - 106: int16(1252), - 107: int16(1254), - 108: int16(1264), - 109: int16(1303), - 110: int16(1309), - 111: int16(1312), - 112: int16(1322), - 113: int16(1325), - 114: int16(1328), - 115: int16(1337), - 116: int16(1340), - 117: int16(1343), - 118: int16(1353), - 119: int16(1371), - 120: int16(1373), - 121: int16(1384), - 122: int16(1386), - 123: int16(1411), - 124: int16(1413), - 125: int16(1420), - 126: int16(1424), - 127: int16(1426), - 128: int16(1458), - 129: int16(1470), - 130: int16(1473), - 131: int16(-int32(271)), - 132: int16(-int32(271)), - 133: int16(-int32(271)), - 134: int16(-int32(271)), - 135: int16(-int32(271)), - 136: int16(-int32(271)), - 137: int16(-int32(271)), - 138: int16(-int32(271)), - 139: int16(-int32(271)), - 140: int16(-int32(271)), - 141: int16(-int32(271)), - 142: int16(138), - 143: int16(459), - 144: int16(396), - 145: int16(-int32(158)), - 146: int16(470), - 147: int16(302), - 148: int16(-int32(212)), - 149: int16(521), - 150: int16(201), - 151: int16(-int32(195)), - 152: int16(-int32(92)), - 153: int16(559), - 154: int16(630), - 155: int16(632), - 156: int16(630), - 157: int16(-int32(271)), - 158: int16(632), - 159: int16(901), - 160: int16(63), - 161: int16(407), - 162: int16(670), - 163: int16(-int32(271)), - 164: int16(-int32(271)), - 165: int16(-int32(271)), - 166: int16(-int32(271)), - 167: int16(161), - 168: int16(161), - 169: int16(161), - 170: int16(251), - 171: int16(335), - 172: int16(847), - 173: int16(979), - 174: int16(1097), - 175: int16(537), - 176: int16(588), - 177: int16(618), - 178: int16(628), - 179: int16(688), - 180: int16(688), - 181: int16(-int32(166)), - 182: int16(-int32(161)), - 183: int16(674), - 184: int16(787), - 185: int16(794), - 186: int16(799), - 187: int16(852), - 188: int16(996), - 189: int16(-int32(122)), - 190: int16(837), - 191: int16(-int32(120)), - 192: int16(1018), - 193: int16(1035), - 194: int16(415), - 195: int16(1047), - 196: int16(1001), - 197: int16(958), - 198: int16(1082), - 199: int16(400), - 200: int16(1099), - 201: int16(779), - 202: int16(1137), - 203: int16(1142), - 204: int16(263), - 205: int16(1083), - 206: int16(1145), - 207: int16(1150), - 208: int16(1041), - 209: int16(1139), - 210: int16(965), - 211: int16(1050), - 212: int16(362), - 213: int16(849), - 214: int16(752), - 215: int16(629), - 216: int16(675), - 217: int16(1162), - 218: int16(1173), - 219: int16(1090), - 220: int16(1195), - 221: int16(-int32(194)), - 222: int16(56), - 223: int16(185), - 224: int16(-int32(135)), - 225: int16(232), - 226: int16(522), - 227: int16(560), - 228: int16(571), - 229: int16(601), - 230: int16(617), - 231: int16(669), - 232: int16(683), - 233: int16(711), - 234: int16(850), - 235: int16(893), - 236: int16(1000), - 237: int16(1040), - 238: int16(1049), - 239: int16(1081), - 240: int16(1087), - 241: int16(1101), - 242: int16(392), - 243: int16(1114), - 244: int16(1123), - 245: int16(1155), - 246: int16(1161), - 247: int16(1175), - 248: int16(1271), - 249: int16(1293), - 250: int16(1299), - 251: int16(1330), - 252: int16(1339), - 253: int16(1342), - 254: int16(1347), - 255: int16(593), - 256: int16(1282), - 257: int16(1286), - 258: int16(1350), - 259: int16(1359), - 260: int16(1368), - 261: int16(1314), - 262: int16(1480), - 263: int16(1483), - 264: int16(1507), - 265: int16(1085), - 266: int16(1338), - 267: int16(1526), - 268: int16(1527), - 269: int16(1487), - 270: int16(1531), - 271: int16(560), - 272: int16(1532), - 273: int16(1534), - 274: int16(1535), - 275: int16(1538), - 276: int16(1539), - 277: int16(1541), - 278: int16(1448), - 279: int16(1450), - 280: int16(1496), - 281: int16(1484), - 282: int16(1485), - 283: int16(1489), - 284: int16(1490), - 285: int16(1314), - 286: int16(1496), - 287: int16(1496), - 288: int16(1504), - 289: int16(1536), - 290: int16(1564), - 291: int16(1451), - 292: int16(1486), - 293: int16(1492), - 294: int16(1509), - 295: int16(1493), - 296: int16(1465), - 297: int16(1515), - 298: int16(1494), - 299: int16(1495), - 300: int16(1517), - 301: int16(1500), - 302: int16(1519), - 303: int16(1474), - 304: int16(1550), - 305: int16(1543), - 306: int16(1548), - 307: int16(1556), - 308: int16(1565), - 309: int16(1566), - 310: int16(1518), - 311: int16(1523), - 312: int16(1542), - 313: int16(1544), - 314: int16(1525), - 315: int16(1545), - 316: int16(1513), - 317: int16(1553), - 318: int16(1552), - 319: int16(1604), - 320: int16(1508), - 321: int16(1510), - 322: int16(1608), - 323: int16(1609), - 324: int16(1520), - 325: int16(1528), - 326: int16(1612), - 327: int16(1540), - 328: int16(1559), - 329: int16(1560), - 330: int16(1592), - 331: int16(1591), - 332: int16(1595), - 333: int16(1596), - 334: int16(1597), - 335: int16(1629), - 336: int16(1638), - 337: int16(1594), - 338: int16(1569), - 339: int16(1570), - 340: int16(1600), - 341: int16(1568), - 342: int16(1610), - 343: int16(1601), - 344: int16(1611), - 345: int16(1603), - 346: int16(1643), - 347: int16(1651), - 348: int16(1562), - 349: int16(1571), - 350: int16(1655), - 351: int16(1659), - 352: int16(1640), - 353: int16(1663), - 354: int16(1666), - 355: int16(1664), - 356: int16(1667), - 357: int16(1641), - 358: int16(1650), - 359: int16(1652), - 360: int16(1653), - 361: int16(1647), - 362: int16(1656), - 363: int16(1657), - 364: int16(1658), - 365: int16(1668), - 366: int16(1672), - 367: int16(1681), - 368: int16(1649), - 369: int16(1682), - 370: int16(1683), - 371: int16(1573), - 372: int16(1582), - 373: int16(1607), - 374: int16(1615), - 375: int16(1685), - 376: int16(1702), - 377: int16(1586), - 378: int16(1587), - 379: int16(1642), - 380: int16(1646), - 381: int16(1673), - 382: int16(1675), - 383: int16(1636), - 384: int16(1714), - 385: int16(1637), - 386: int16(1677), - 387: int16(1674), - 388: int16(1678), - 389: int16(1694), - 390: int16(1719), - 391: int16(1734), - 392: int16(1735), - 393: int16(1746), - 394: int16(1747), - 395: int16(1750), - 396: int16(1633), - 397: int16(1661), + 76: uint16(1093), + 77: uint16(1093), + 78: uint16(1093), + 79: uint16(1093), + 80: uint16(1093), + 81: uint16(1093), + 82: uint16(1093), + 83: uint16(1113), + 84: uint16(1093), + 85: uint16(1216), + 86: uint16(957), + 87: uint16(957), + 88: uint16(1523), + 89: uint16(1602), + 90: uint16(1674), + 91: uint16(1828), + 92: uint16(1828), + 93: uint16(1828), + 94: uint16(1828), + 95: uint16(1828), + 96: uint16(1828), + 97: uint16(1828), + 98: uint16(1828), + 99: uint16(1828), + 100: uint16(1828), + 101: uint16(1828), + 102: uint16(1828), + 103: uint16(1828), + 104: uint16(1828), + 105: uint16(1828), + 106: uint16(1828), + 107: uint16(1828), + 108: uint16(1828), + 109: uint16(1828), + 110: uint16(1828), + 111: uint16(1828), + 112: uint16(1828), + 113: uint16(1828), + 114: uint16(1828), + 115: uint16(1828), + 116: uint16(1828), + 117: uint16(1828), + 118: uint16(1828), + 119: uint16(1828), + 120: uint16(1828), + 121: uint16(1828), + 122: uint16(1828), + 123: uint16(1828), + 124: uint16(1828), + 125: uint16(1828), + 126: uint16(1828), + 127: uint16(1828), + 128: uint16(1828), + 129: uint16(1828), + 130: uint16(1828), + 131: uint16(1828), + 132: uint16(1828), + 133: uint16(1828), + 134: uint16(1828), + 135: uint16(1828), + 136: uint16(1828), + 137: uint16(1828), + 138: uint16(1828), + 139: uint16(1828), + 140: uint16(137), + 141: uint16(181), + 142: uint16(181), + 143: uint16(181), + 144: uint16(181), + 145: uint16(181), + 146: uint16(181), + 147: uint16(181), + 148: uint16(96), + 149: uint16(222), + 150: uint16(143), + 151: uint16(477), + 152: uint16(713), + 153: uint16(1133), + 154: uint16(1268), + 155: uint16(713), + 156: uint16(713), + 157: uint16(79), + 158: uint16(79), + 159: uint16(713), + 160: uint16(770), + 161: uint16(83), + 162: uint16(65), + 163: uint16(65), + 164: uint16(65), + 165: uint16(288), + 166: uint16(162), + 167: uint16(162), + 168: uint16(2142), + 169: uint16(2142), + 170: uint16(696), + 171: uint16(696), + 172: uint16(696), + 173: uint16(238), + 174: uint16(474), + 175: uint16(474), + 176: uint16(474), + 177: uint16(474), + 178: uint16(1217), + 179: uint16(1217), + 180: uint16(678), + 181: uint16(477), + 182: uint16(324), + 183: uint16(398), + 184: uint16(713), + 185: uint16(713), + 186: uint16(713), + 187: uint16(713), + 188: uint16(713), + 189: uint16(713), + 190: uint16(713), + 191: uint16(713), + 192: uint16(713), + 193: uint16(713), + 194: uint16(713), + 195: uint16(713), + 196: uint16(713), + 197: uint16(713), + 198: uint16(713), + 199: uint16(713), + 200: uint16(713), + 201: uint16(713), + 202: uint16(713), + 203: uint16(1220), + 204: uint16(366), + 205: uint16(366), + 206: uint16(713), + 207: uint16(917), + 208: uint16(283), + 209: uint16(283), + 210: uint16(434), + 211: uint16(434), + 212: uint16(605), + 213: uint16(605), + 214: uint16(1298), + 215: uint16(2142), + 216: uint16(2142), + 217: uint16(2142), + 218: uint16(2142), + 219: uint16(2142), + 220: uint16(2142), + 221: uint16(2142), + 222: uint16(1179), + 223: uint16(1157), + 224: uint16(1157), + 225: uint16(487), + 226: uint16(527), + 227: uint16(585), + 228: uint16(645), + 229: uint16(749), + 230: uint16(914), + 231: uint16(968), + 232: uint16(752), + 233: uint16(713), + 234: uint16(713), + 235: uint16(713), + 236: uint16(713), + 237: uint16(713), + 238: uint16(713), + 239: uint16(713), + 240: uint16(713), + 241: uint16(713), + 242: uint16(713), + 243: uint16(303), + 244: uint16(713), + 245: uint16(713), + 246: uint16(713), + 247: uint16(713), + 248: uint16(713), + 249: uint16(713), + 250: uint16(713), + 251: uint16(713), + 252: uint16(713), + 253: uint16(713), + 254: uint16(713), + 255: uint16(713), + 256: uint16(797), + 257: uint16(797), + 258: uint16(797), + 259: uint16(713), + 260: uint16(713), + 261: uint16(713), + 262: uint16(959), + 263: uint16(713), + 264: uint16(713), + 265: uint16(713), + 266: uint16(1169), + 267: uint16(1271), + 268: uint16(713), + 269: uint16(713), + 270: uint16(1330), + 271: uint16(713), + 272: uint16(713), + 273: uint16(713), + 274: uint16(713), + 275: uint16(713), + 276: uint16(713), + 277: uint16(713), + 278: uint16(713), + 279: uint16(629), + 280: uint16(7), + 281: uint16(91), + 282: uint16(876), + 283: uint16(876), + 284: uint16(876), + 285: uint16(876), + 286: uint16(953), + 287: uint16(91), + 288: uint16(91), + 289: uint16(1246), + 290: uint16(1065), + 291: uint16(1106), + 292: uint16(1374), + 293: uint16(1329), + 294: uint16(1348), + 295: uint16(468), + 296: uint16(1348), + 297: uint16(1394), + 298: uint16(785), + 299: uint16(1329), + 300: uint16(1329), + 301: uint16(785), + 302: uint16(1329), + 303: uint16(468), + 304: uint16(1394), + 305: uint16(859), + 306: uint16(854), + 307: uint16(1402), + 308: uint16(1449), + 309: uint16(1449), + 310: uint16(1449), + 311: uint16(1173), + 312: uint16(1173), + 313: uint16(1173), + 314: uint16(1173), + 315: uint16(1355), + 316: uint16(1355), + 317: uint16(1030), + 318: uint16(1341), + 319: uint16(405), + 320: uint16(1230), + 321: uint16(1795), + 322: uint16(1795), + 323: uint16(1711), + 324: uint16(1711), + 325: uint16(1829), + 326: uint16(1829), + 327: uint16(1711), + 328: uint16(1717), + 329: uint16(1719), + 330: uint16(1850), + 331: uint16(1833), + 332: uint16(1860), + 333: uint16(1860), + 334: uint16(1860), + 335: uint16(1860), + 336: uint16(1711), + 337: uint16(1868), + 338: uint16(1740), + 339: uint16(1719), + 340: uint16(1719), + 341: uint16(1740), + 342: uint16(1850), + 343: uint16(1833), + 344: uint16(1740), + 345: uint16(1833), + 346: uint16(1740), + 347: uint16(1711), + 348: uint16(1868), + 349: uint16(1745), + 350: uint16(1843), + 351: uint16(1711), + 352: uint16(1868), + 353: uint16(1887), + 354: uint16(1711), + 355: uint16(1868), + 356: uint16(1711), + 357: uint16(1868), + 358: uint16(1887), + 359: uint16(1801), + 360: uint16(1801), + 361: uint16(1801), + 362: uint16(1855), + 363: uint16(1900), + 364: uint16(1900), + 365: uint16(1887), + 366: uint16(1801), + 367: uint16(1797), + 368: uint16(1801), + 369: uint16(1855), + 370: uint16(1801), + 371: uint16(1801), + 372: uint16(1761), + 373: uint16(1912), + 374: uint16(1830), + 375: uint16(1830), + 376: uint16(1887), + 377: uint16(1711), + 378: uint16(1862), + 379: uint16(1862), + 380: uint16(1875), + 381: uint16(1875), + 382: uint16(1810), + 383: uint16(1815), + 384: uint16(1940), + 385: uint16(1711), + 386: uint16(1807), + 387: uint16(1810), + 388: uint16(1821), + 389: uint16(1823), + 390: uint16(1740), + 391: uint16(1945), + 392: uint16(1963), + 393: uint16(1963), + 394: uint16(1974), + 395: uint16(1974), + 396: uint16(1974), + 397: uint16(2142), + 398: uint16(2142), + 399: uint16(2142), + 400: uint16(2142), + 401: uint16(2142), + 402: uint16(2142), + 403: uint16(2142), + 404: uint16(2142), + 405: uint16(2142), + 406: uint16(2142), + 407: uint16(2142), + 408: uint16(2142), + 409: uint16(2142), + 410: uint16(2142), + 411: uint16(2142), + 412: uint16(20), + 413: uint16(1224), + 414: uint16(256), + 415: uint16(1111), + 416: uint16(1115), + 417: uint16(1114), + 418: uint16(1192), + 419: uint16(1496), + 420: uint16(1424), + 421: uint16(1505), + 422: uint16(1427), + 423: uint16(355), + 424: uint16(1383), + 425: uint16(1537), + 426: uint16(1506), + 427: uint16(1538), + 428: uint16(1553), + 429: uint16(1583), + 430: uint16(1584), + 431: uint16(1591), + 432: uint16(1625), + 433: uint16(541), + 434: uint16(1445), + 435: uint16(1562), + 436: uint16(1450), + 437: uint16(1572), + 438: uint16(1515), + 439: uint16(1428), + 440: uint16(1532), + 441: uint16(1592), + 442: uint16(1629), + 443: uint16(1520), + 444: uint16(1630), + 445: uint16(1639), + 446: uint16(1510), + 447: uint16(1544), + 448: uint16(1662), + 449: uint16(1675), + 450: uint16(1551), + 451: uint16(48), + 452: uint16(1996), + 453: uint16(2001), + 454: uint16(1983), + 455: uint16(1844), + 456: uint16(1993), + 457: uint16(1994), + 458: uint16(1986), + 459: uint16(1989), + 460: uint16(1874), + 461: uint16(1863), + 462: uint16(1885), + 463: uint16(1991), + 464: uint16(1991), + 465: uint16(1995), + 466: uint16(1876), + 467: uint16(1997), + 468: uint16(1877), + 469: uint16(2004), + 470: uint16(2021), + 471: uint16(1881), + 472: uint16(1894), + 473: uint16(1991), + 474: uint16(1895), + 475: uint16(1965), + 476: uint16(1990), + 477: uint16(1991), + 478: uint16(1878), + 479: uint16(1975), + 480: uint16(1977), + 481: uint16(1978), + 482: uint16(1979), + 483: uint16(1903), + 484: uint16(1918), + 485: uint16(2002), + 486: uint16(1896), + 487: uint16(2034), + 488: uint16(2033), + 489: uint16(2017), + 490: uint16(1925), + 491: uint16(1880), + 492: uint16(1976), + 493: uint16(2018), + 494: uint16(1980), + 495: uint16(1967), + 496: uint16(2005), + 497: uint16(1904), + 498: uint16(1932), + 499: uint16(2025), + 500: uint16(2030), + 501: uint16(2032), + 502: uint16(1921), + 503: uint16(1928), + 504: uint16(2035), + 505: uint16(1987), + 506: uint16(2036), + 507: uint16(2037), + 508: uint16(2038), + 509: uint16(2040), + 510: uint16(1988), + 511: uint16(2006), + 512: uint16(2039), + 513: uint16(1960), + 514: uint16(2041), + 515: uint16(2042), + 516: uint16(1999), + 517: uint16(2023), + 518: uint16(2044), + 519: uint16(2043), + 520: uint16(1919), + 521: uint16(2048), + 522: uint16(2049), + 523: uint16(2050), + 524: uint16(2046), + 525: uint16(2051), + 526: uint16(2053), + 527: uint16(1981), + 528: uint16(1935), + 529: uint16(2056), + 530: uint16(2057), + 531: uint16(1966), + 532: uint16(2047), + 533: uint16(2061), + 534: uint16(1941), + 535: uint16(2060), + 536: uint16(2052), + 537: uint16(2054), + 538: uint16(2055), + 539: uint16(2058), + 540: uint16(2003), + 541: uint16(2012), + 542: uint16(2007), + 543: uint16(2059), + 544: uint16(2015), + 545: uint16(2008), + 546: uint16(2062), + 547: uint16(2071), + 548: uint16(2073), + 549: uint16(2074), + 550: uint16(2072), + 551: uint16(2075), + 552: uint16(2065), + 553: uint16(1962), + 554: uint16(1964), + 555: uint16(2079), + 556: uint16(2060), + 557: uint16(2082), + 558: uint16(2084), + 559: uint16(2085), + 560: uint16(2087), + 561: uint16(2086), + 562: uint16(2089), + 563: uint16(2088), + 564: uint16(2091), + 565: uint16(2093), + 566: uint16(2099), + 567: uint16(2094), + 568: uint16(2095), + 569: uint16(2096), + 570: uint16(2097), + 571: uint16(2100), + 572: uint16(2101), + 573: uint16(2102), + 574: uint16(1998), + 575: uint16(1984), + 576: uint16(1985), + 577: uint16(2000), + 578: uint16(2103), + 579: uint16(2098), + 580: uint16(2109), + 581: uint16(2117), + 582: uint16(2128), +} +var _yy_reduce_ofst = [412]int16{ + 0: int16(-int32(71)), + 1: int16(194), + 2: int16(343), + 3: int16(835), + 4: int16(-int32(180)), + 5: int16(-int32(177)), + 6: int16(838), + 7: int16(-int32(194)), + 8: int16(-int32(188)), + 9: int16(-int32(185)), + 10: int16(-int32(183)), + 11: int16(82), + 12: int16(183), + 13: int16(-int32(65)), + 14: int16(133), + 15: int16(245), + 16: int16(346), + 17: int16(407), + 18: int16(458), + 19: int16(-int32(178)), + 20: int16(75), + 21: int16(-int32(275)), + 22: int16(-int32(4)), + 23: int16(310), + 24: int16(312), + 25: int16(489), + 26: int16(575), + 27: int16(596), + 28: int16(463), + 29: int16(686), + 30: int16(707), + 31: int16(725), + 32: int16(780), + 33: int16(1098), + 34: int16(856), + 35: int16(778), + 36: int16(1059), + 37: int16(1090), + 38: int16(708), + 39: int16(887), + 40: int16(86), + 41: int16(448), + 42: int16(980), + 43: int16(630), + 44: int16(680), + 45: int16(681), + 46: int16(684), + 47: int16(796), + 48: int16(801), + 49: int16(796), + 50: int16(801), + 51: int16(-int32(261)), + 52: int16(-int32(261)), + 53: int16(-int32(261)), + 54: int16(-int32(261)), + 55: int16(-int32(261)), + 56: int16(-int32(261)), + 57: int16(-int32(261)), + 58: int16(-int32(261)), + 59: int16(-int32(261)), + 60: int16(-int32(261)), + 61: int16(-int32(261)), + 62: int16(-int32(261)), + 63: int16(-int32(261)), + 64: int16(-int32(261)), + 65: int16(-int32(261)), + 66: int16(-int32(261)), + 67: int16(-int32(261)), + 68: int16(-int32(261)), + 69: int16(-int32(261)), + 70: int16(-int32(261)), + 71: int16(-int32(261)), + 72: int16(-int32(261)), + 73: int16(-int32(261)), + 74: int16(-int32(261)), + 75: int16(-int32(261)), + 76: int16(-int32(261)), + 77: int16(-int32(261)), + 78: int16(-int32(261)), + 79: int16(-int32(261)), + 80: int16(-int32(261)), + 81: int16(-int32(261)), + 82: int16(-int32(261)), + 83: int16(-int32(261)), + 84: int16(-int32(261)), + 85: int16(-int32(261)), + 86: int16(-int32(261)), + 87: int16(-int32(261)), + 88: int16(391), + 89: int16(886), + 90: int16(888), + 91: int16(1013), + 92: int16(1016), + 93: int16(1081), + 94: int16(1087), + 95: int16(1151), + 96: int16(1159), + 97: int16(1177), + 98: int16(1185), + 99: int16(1188), + 100: int16(1190), + 101: int16(1194), + 102: int16(1197), + 103: int16(1203), + 104: int16(1247), + 105: int16(1260), + 106: int16(1264), + 107: int16(1267), + 108: int16(1269), + 109: int16(1273), + 110: int16(1315), + 111: int16(1322), + 112: int16(1335), + 113: int16(1337), + 114: int16(1356), + 115: int16(1362), + 116: int16(1418), + 117: int16(1425), + 118: int16(1453), + 119: int16(1457), + 120: int16(1465), + 121: int16(1473), + 122: int16(1487), + 123: int16(1495), + 124: int16(1507), + 125: int16(1517), + 126: int16(1521), + 127: int16(1534), + 128: int16(1543), + 129: int16(1546), + 130: int16(1549), + 131: int16(1552), + 132: int16(1554), + 133: int16(1560), + 134: int16(1581), + 135: int16(1590), + 136: int16(1593), + 137: int16(1595), + 138: int16(1621), + 139: int16(1623), + 140: int16(-int32(261)), + 141: int16(-int32(261)), + 142: int16(-int32(261)), + 143: int16(-int32(261)), + 144: int16(-int32(261)), + 145: int16(-int32(261)), + 146: int16(-int32(261)), + 147: int16(-int32(261)), + 148: int16(-int32(261)), + 149: int16(-int32(261)), + 150: int16(-int32(261)), + 151: int16(-int32(186)), + 152: int16(-int32(117)), + 153: int16(260), + 154: int16(263), + 155: int16(460), + 156: int16(631), + 157: int16(-int32(74)), + 158: int16(497), + 159: int16(-int32(181)), + 160: int16(-int32(261)), + 161: int16(939), + 162: int16(176), + 163: int16(274), + 164: int16(338), + 165: int16(676), + 166: int16(-int32(261)), + 167: int16(-int32(261)), + 168: int16(-int32(261)), + 169: int16(-int32(261)), + 170: int16(-int32(212)), + 171: int16(-int32(212)), + 172: int16(-int32(212)), + 173: int16(-int32(184)), + 174: int16(149), + 175: int16(777), + 176: int16(1061), + 177: int16(1103), + 178: int16(265), + 179: int16(419), + 180: int16(-int32(254)), + 181: int16(670), + 182: int16(677), + 183: int16(677), + 184: int16(-int32(11)), + 185: int16(-int32(129)), + 186: int16(184), + 187: int16(488), + 188: int16(736), + 189: int16(789), + 190: int16(805), + 191: int16(844), + 192: int16(403), + 193: int16(529), + 194: int16(579), + 195: int16(668), + 196: int16(783), + 197: int16(841), + 198: int16(1158), + 199: int16(1112), + 200: int16(806), + 201: int16(861), + 202: int16(1095), + 203: int16(846), + 204: int16(839), + 205: int16(1031), + 206: int16(-int32(189)), + 207: int16(1077), + 208: int16(1080), + 209: int16(1116), + 210: int16(1084), + 211: int16(1156), + 212: int16(1139), + 213: int16(1221), + 214: int16(46), + 215: int16(1099), + 216: int16(1037), + 217: int16(1118), + 218: int16(1171), + 219: int16(1214), + 220: int16(1210), + 221: int16(1258), + 222: int16(-int32(210)), + 223: int16(-int32(190)), + 224: int16(-int32(176)), + 225: int16(-int32(115)), + 226: int16(117), + 227: int16(262), + 228: int16(376), + 229: int16(490), + 230: int16(511), + 231: int16(520), + 232: int16(618), + 233: int16(639), + 234: int16(743), + 235: int16(901), + 236: int16(907), + 237: int16(958), + 238: int16(1014), + 239: int16(1055), + 240: int16(1108), + 241: int16(1193), + 242: int16(1244), + 243: int16(720), + 244: int16(1248), + 245: int16(1277), + 246: int16(1324), + 247: int16(1347), + 248: int16(1417), + 249: int16(1431), + 250: int16(1432), + 251: int16(1440), + 252: int16(1451), + 253: int16(1452), + 254: int16(1463), + 255: int16(1478), + 256: int16(1286), + 257: int16(1350), + 258: int16(1369), + 259: int16(1490), + 260: int16(1498), + 261: int16(1501), + 262: int16(773), + 263: int16(1509), + 264: int16(1513), + 265: int16(1528), + 266: int16(1292), + 267: int16(1367), + 268: int16(1535), + 269: int16(1536), + 270: int16(1477), + 271: int16(1542), + 272: int16(376), + 273: int16(1547), + 274: int16(1550), + 275: int16(1555), + 276: int16(1559), + 277: int16(1568), + 278: int16(1571), + 279: int16(1441), + 280: int16(1443), + 281: int16(1474), + 282: int16(1511), + 283: int16(1516), + 284: int16(1519), + 285: int16(1522), + 286: int16(773), + 287: int16(1474), + 288: int16(1474), + 289: int16(1503), + 290: int16(1567), + 291: int16(1594), + 292: int16(1484), + 293: int16(1527), + 294: int16(1556), + 295: int16(1570), + 296: int16(1557), + 297: int16(1524), + 298: int16(1573), + 299: int16(1545), + 300: int16(1548), + 301: int16(1576), + 302: int16(1561), + 303: int16(1587), + 304: int16(1540), + 305: int16(1575), + 306: int16(1606), + 307: int16(1611), + 308: int16(1622), + 309: int16(1624), + 310: int16(1626), + 311: int16(1582), + 312: int16(1597), + 313: int16(1598), + 314: int16(1599), + 315: int16(1601), + 316: int16(1603), + 317: int16(1563), + 318: int16(1608), + 319: int16(1605), + 320: int16(1604), + 321: int16(1564), + 322: int16(1566), + 323: int16(1655), + 324: int16(1660), + 325: int16(1578), + 326: int16(1579), + 327: int16(1665), + 328: int16(1586), + 329: int16(1607), + 330: int16(1610), + 331: int16(1642), + 332: int16(1641), + 333: int16(1645), + 334: int16(1646), + 335: int16(1647), + 336: int16(1679), + 337: int16(1688), + 338: int16(1644), + 339: int16(1618), + 340: int16(1619), + 341: int16(1648), + 342: int16(1628), + 343: int16(1659), + 344: int16(1649), + 345: int16(1663), + 346: int16(1650), + 347: int16(1700), + 348: int16(1702), + 349: int16(1612), + 350: int16(1615), + 351: int16(1706), + 352: int16(1708), + 353: int16(1689), + 354: int16(1709), + 355: int16(1712), + 356: int16(1713), + 357: int16(1715), + 358: int16(1691), + 359: int16(1698), + 360: int16(1699), + 361: int16(1701), + 362: int16(1693), + 363: int16(1704), + 364: int16(1707), + 365: int16(1705), + 366: int16(1714), + 367: int16(1703), + 368: int16(1718), + 369: int16(1710), + 370: int16(1720), + 371: int16(1721), + 372: int16(1632), + 373: int16(1634), + 374: int16(1664), + 375: int16(1666), + 376: int16(1729), + 377: int16(1751), + 378: int16(1635), + 379: int16(1636), + 380: int16(1692), + 381: int16(1694), + 382: int16(1716), + 383: int16(1722), + 384: int16(1684), + 385: int16(1763), + 386: int16(1685), + 387: int16(1723), + 388: int16(1724), + 389: int16(1727), + 390: int16(1730), + 391: int16(1768), + 392: int16(1783), + 393: int16(1784), + 394: int16(1793), + 395: int16(1794), + 396: int16(1796), + 397: int16(1683), 398: int16(1686), - 399: int16(1738), - 400: int16(1728), - 401: int16(1733), - 402: int16(1736), - 403: int16(1737), - 404: int16(1740), - 405: int16(1726), - 406: int16(1730), - 407: int16(1742), - 408: int16(1743), - 409: int16(1748), - 410: int16(1753), -} -var _yy_default = [579]uint16{ - 0: uint16(1648), - 1: uint16(1648), - 2: uint16(1648), - 3: uint16(1478), - 4: uint16(1243), - 5: uint16(1354), - 6: uint16(1243), - 7: uint16(1243), - 8: uint16(1243), - 9: uint16(1478), - 10: uint16(1478), - 11: uint16(1478), - 12: uint16(1243), - 13: uint16(1384), - 14: uint16(1384), - 15: uint16(1531), - 16: uint16(1276), - 17: uint16(1243), - 18: uint16(1243), - 19: uint16(1243), - 20: uint16(1243), - 21: uint16(1243), - 22: uint16(1243), - 23: uint16(1243), - 24: uint16(1243), - 25: uint16(1243), - 26: uint16(1243), - 27: uint16(1243), - 28: uint16(1477), - 29: uint16(1243), - 30: uint16(1243), - 31: uint16(1243), - 32: uint16(1243), - 33: uint16(1564), - 34: uint16(1564), - 35: uint16(1243), - 36: uint16(1243), - 37: uint16(1243), - 38: uint16(1243), - 39: uint16(1243), - 40: uint16(1243), - 41: uint16(1243), - 42: uint16(1243), - 43: uint16(1393), - 44: uint16(1243), - 45: uint16(1400), - 46: uint16(1243), - 47: uint16(1243), - 48: uint16(1243), - 49: uint16(1243), - 50: uint16(1243), - 51: uint16(1479), - 52: uint16(1480), - 53: uint16(1243), - 54: uint16(1243), - 55: uint16(1243), - 56: uint16(1530), - 57: uint16(1532), - 58: uint16(1495), - 59: uint16(1407), - 60: uint16(1406), - 61: uint16(1405), - 62: uint16(1404), - 63: uint16(1513), - 64: uint16(1372), - 65: uint16(1398), - 66: uint16(1391), - 67: uint16(1395), - 68: uint16(1474), - 69: uint16(1475), - 70: uint16(1473), - 71: uint16(1626), - 72: uint16(1480), - 73: uint16(1479), - 74: uint16(1243), - 75: uint16(1394), - 76: uint16(1442), - 77: uint16(1458), - 78: uint16(1441), - 79: uint16(1243), - 80: uint16(1243), - 81: uint16(1243), - 82: uint16(1243), - 83: uint16(1243), - 84: uint16(1243), - 85: uint16(1243), - 86: uint16(1243), - 87: uint16(1243), - 88: uint16(1243), - 89: uint16(1243), - 90: uint16(1243), - 91: uint16(1243), - 92: uint16(1243), - 93: uint16(1243), - 94: uint16(1243), - 95: uint16(1243), - 96: uint16(1243), - 97: uint16(1243), - 98: uint16(1243), - 99: uint16(1243), - 100: uint16(1243), - 101: uint16(1243), - 102: uint16(1243), - 103: uint16(1243), - 104: uint16(1243), - 105: uint16(1243), - 106: uint16(1243), - 107: uint16(1243), - 108: uint16(1243), - 109: uint16(1243), - 110: uint16(1243), - 111: uint16(1243), - 112: uint16(1243), - 113: uint16(1243), - 114: uint16(1243), - 115: uint16(1243), - 116: uint16(1243), - 117: uint16(1243), - 118: uint16(1243), - 119: uint16(1243), - 120: uint16(1243), - 121: uint16(1243), - 122: uint16(1243), - 123: uint16(1243), - 124: uint16(1243), - 125: uint16(1243), - 126: uint16(1243), - 127: uint16(1243), - 128: uint16(1243), - 129: uint16(1243), - 130: uint16(1243), - 131: uint16(1450), - 132: uint16(1457), - 133: uint16(1456), - 134: uint16(1455), - 135: uint16(1464), - 136: uint16(1454), - 137: uint16(1451), - 138: uint16(1444), - 139: uint16(1443), - 140: uint16(1445), - 141: uint16(1446), - 142: uint16(1243), - 143: uint16(1243), - 144: uint16(1267), - 145: uint16(1243), - 146: uint16(1243), - 147: uint16(1264), - 148: uint16(1318), - 149: uint16(1243), - 150: uint16(1243), - 151: uint16(1243), - 152: uint16(1243), - 153: uint16(1243), - 154: uint16(1550), - 155: uint16(1549), - 156: uint16(1243), - 157: uint16(1447), - 158: uint16(1243), - 159: uint16(1276), - 160: uint16(1435), - 161: uint16(1434), - 162: uint16(1433), - 163: uint16(1461), - 164: uint16(1448), - 165: uint16(1460), - 166: uint16(1459), - 167: uint16(1538), - 168: uint16(1600), - 169: uint16(1599), - 170: uint16(1496), - 171: uint16(1243), - 172: uint16(1243), - 173: uint16(1243), - 174: uint16(1243), - 175: uint16(1243), - 176: uint16(1243), - 177: uint16(1564), - 178: uint16(1243), - 179: uint16(1243), - 180: uint16(1243), - 181: uint16(1243), - 182: uint16(1243), - 183: uint16(1243), - 184: uint16(1243), - 185: uint16(1243), - 186: uint16(1243), - 187: uint16(1243), - 188: uint16(1243), - 189: uint16(1243), - 190: uint16(1243), - 191: uint16(1243), - 192: uint16(1243), - 193: uint16(1243), - 194: uint16(1243), - 195: uint16(1243), - 196: uint16(1243), - 197: uint16(1243), - 198: uint16(1243), - 199: uint16(1243), - 200: uint16(1243), - 201: uint16(1374), - 202: uint16(1564), - 203: uint16(1564), - 204: uint16(1243), - 205: uint16(1276), - 206: uint16(1564), - 207: uint16(1564), - 208: uint16(1375), - 209: uint16(1375), - 210: uint16(1272), - 211: uint16(1272), - 212: uint16(1378), - 213: uint16(1243), - 214: uint16(1545), - 215: uint16(1345), - 216: uint16(1345), - 217: uint16(1345), - 218: uint16(1345), - 219: uint16(1354), - 220: uint16(1345), - 221: uint16(1243), - 222: uint16(1243), - 223: uint16(1243), - 224: uint16(1243), - 225: uint16(1243), - 226: uint16(1243), - 227: uint16(1243), - 228: uint16(1243), - 229: uint16(1243), - 230: uint16(1243), - 231: uint16(1243), - 232: uint16(1243), - 233: uint16(1243), - 234: uint16(1243), - 235: uint16(1243), - 236: uint16(1535), - 237: uint16(1533), - 238: uint16(1243), - 239: uint16(1243), - 240: uint16(1243), - 241: uint16(1243), - 242: uint16(1243), - 243: uint16(1243), - 244: uint16(1243), - 245: uint16(1243), - 246: uint16(1243), - 247: uint16(1243), - 248: uint16(1243), - 249: uint16(1243), - 250: uint16(1243), - 251: uint16(1243), - 252: uint16(1243), - 253: uint16(1243), - 254: uint16(1243), - 255: uint16(1243), - 256: uint16(1243), - 257: uint16(1243), - 258: uint16(1243), - 259: uint16(1243), - 260: uint16(1243), - 261: uint16(1243), - 262: uint16(1243), - 263: uint16(1243), - 264: uint16(1243), - 265: uint16(1350), - 266: uint16(1243), - 267: uint16(1243), - 268: uint16(1243), - 269: uint16(1243), - 270: uint16(1243), - 271: uint16(1243), - 272: uint16(1243), - 273: uint16(1243), - 274: uint16(1243), - 275: uint16(1243), - 276: uint16(1243), - 277: uint16(1593), - 278: uint16(1243), - 279: uint16(1508), - 280: uint16(1332), - 281: uint16(1350), - 282: uint16(1350), - 283: uint16(1350), - 284: uint16(1350), - 285: uint16(1352), - 286: uint16(1333), - 287: uint16(1331), - 288: uint16(1344), - 289: uint16(1277), - 290: uint16(1250), - 291: uint16(1640), - 292: uint16(1410), - 293: uint16(1399), - 294: uint16(1351), - 295: uint16(1399), - 296: uint16(1637), - 297: uint16(1397), + 399: int16(1690), + 400: int16(1782), + 401: int16(1779), + 402: int16(1780), + 403: int16(1781), + 404: int16(1785), + 405: int16(1788), + 406: int16(1774), + 407: int16(1775), + 408: int16(1786), + 409: int16(1787), + 410: int16(1789), + 411: int16(1798), +} +var _yy_default = [583]uint16{ + 0: uint16(1663), + 1: uint16(1663), + 2: uint16(1663), + 3: uint16(1491), + 4: uint16(1254), + 5: uint16(1367), + 6: uint16(1254), + 7: uint16(1254), + 8: uint16(1254), + 9: uint16(1254), + 10: uint16(1491), + 11: uint16(1491), + 12: uint16(1491), + 13: uint16(1254), + 14: uint16(1254), + 15: uint16(1254), + 16: uint16(1254), + 17: uint16(1254), + 18: uint16(1254), + 19: uint16(1397), + 20: uint16(1397), + 21: uint16(1544), + 22: uint16(1287), + 23: uint16(1254), + 24: uint16(1254), + 25: uint16(1254), + 26: uint16(1254), + 27: uint16(1254), + 28: uint16(1254), + 29: uint16(1254), + 30: uint16(1254), + 31: uint16(1254), + 32: uint16(1254), + 33: uint16(1254), + 34: uint16(1254), + 35: uint16(1490), + 36: uint16(1254), + 37: uint16(1254), + 38: uint16(1254), + 39: uint16(1254), + 40: uint16(1578), + 41: uint16(1578), + 42: uint16(1254), + 43: uint16(1254), + 44: uint16(1254), + 45: uint16(1254), + 46: uint16(1254), + 47: uint16(1563), + 48: uint16(1562), + 49: uint16(1254), + 50: uint16(1254), + 51: uint16(1254), + 52: uint16(1406), + 53: uint16(1254), + 54: uint16(1413), + 55: uint16(1254), + 56: uint16(1254), + 57: uint16(1254), + 58: uint16(1254), + 59: uint16(1254), + 60: uint16(1492), + 61: uint16(1493), + 62: uint16(1254), + 63: uint16(1254), + 64: uint16(1254), + 65: uint16(1543), + 66: uint16(1545), + 67: uint16(1508), + 68: uint16(1420), + 69: uint16(1419), + 70: uint16(1418), + 71: uint16(1417), + 72: uint16(1526), + 73: uint16(1385), + 74: uint16(1411), + 75: uint16(1404), + 76: uint16(1408), + 77: uint16(1487), + 78: uint16(1488), + 79: uint16(1486), + 80: uint16(1641), + 81: uint16(1493), + 82: uint16(1492), + 83: uint16(1254), + 84: uint16(1407), + 85: uint16(1455), + 86: uint16(1471), + 87: uint16(1454), + 88: uint16(1254), + 89: uint16(1254), + 90: uint16(1254), + 91: uint16(1254), + 92: uint16(1254), + 93: uint16(1254), + 94: uint16(1254), + 95: uint16(1254), + 96: uint16(1254), + 97: uint16(1254), + 98: uint16(1254), + 99: uint16(1254), + 100: uint16(1254), + 101: uint16(1254), + 102: uint16(1254), + 103: uint16(1254), + 104: uint16(1254), + 105: uint16(1254), + 106: uint16(1254), + 107: uint16(1254), + 108: uint16(1254), + 109: uint16(1254), + 110: uint16(1254), + 111: uint16(1254), + 112: uint16(1254), + 113: uint16(1254), + 114: uint16(1254), + 115: uint16(1254), + 116: uint16(1254), + 117: uint16(1254), + 118: uint16(1254), + 119: uint16(1254), + 120: uint16(1254), + 121: uint16(1254), + 122: uint16(1254), + 123: uint16(1254), + 124: uint16(1254), + 125: uint16(1254), + 126: uint16(1254), + 127: uint16(1254), + 128: uint16(1254), + 129: uint16(1254), + 130: uint16(1254), + 131: uint16(1254), + 132: uint16(1254), + 133: uint16(1254), + 134: uint16(1254), + 135: uint16(1254), + 136: uint16(1254), + 137: uint16(1254), + 138: uint16(1254), + 139: uint16(1254), + 140: uint16(1463), + 141: uint16(1470), + 142: uint16(1469), + 143: uint16(1468), + 144: uint16(1477), + 145: uint16(1467), + 146: uint16(1464), + 147: uint16(1457), + 148: uint16(1456), + 149: uint16(1458), + 150: uint16(1459), + 151: uint16(1278), + 152: uint16(1254), + 153: uint16(1275), + 154: uint16(1329), + 155: uint16(1254), + 156: uint16(1254), + 157: uint16(1254), + 158: uint16(1254), + 159: uint16(1254), + 160: uint16(1460), + 161: uint16(1287), + 162: uint16(1448), + 163: uint16(1447), + 164: uint16(1446), + 165: uint16(1254), + 166: uint16(1474), + 167: uint16(1461), + 168: uint16(1473), + 169: uint16(1472), + 170: uint16(1551), + 171: uint16(1615), + 172: uint16(1614), + 173: uint16(1509), + 174: uint16(1254), + 175: uint16(1254), + 176: uint16(1254), + 177: uint16(1254), + 178: uint16(1254), + 179: uint16(1254), + 180: uint16(1578), + 181: uint16(1254), + 182: uint16(1254), + 183: uint16(1254), + 184: uint16(1254), + 185: uint16(1254), + 186: uint16(1254), + 187: uint16(1254), + 188: uint16(1254), + 189: uint16(1254), + 190: uint16(1254), + 191: uint16(1254), + 192: uint16(1254), + 193: uint16(1254), + 194: uint16(1254), + 195: uint16(1254), + 196: uint16(1254), + 197: uint16(1254), + 198: uint16(1254), + 199: uint16(1254), + 200: uint16(1254), + 201: uint16(1254), + 202: uint16(1254), + 203: uint16(1387), + 204: uint16(1578), + 205: uint16(1578), + 206: uint16(1254), + 207: uint16(1287), + 208: uint16(1578), + 209: uint16(1578), + 210: uint16(1388), + 211: uint16(1388), + 212: uint16(1283), + 213: uint16(1283), + 214: uint16(1391), + 215: uint16(1558), + 216: uint16(1358), + 217: uint16(1358), + 218: uint16(1358), + 219: uint16(1358), + 220: uint16(1367), + 221: uint16(1358), + 222: uint16(1254), + 223: uint16(1254), + 224: uint16(1254), + 225: uint16(1254), + 226: uint16(1254), + 227: uint16(1254), + 228: uint16(1254), + 229: uint16(1254), + 230: uint16(1254), + 231: uint16(1254), + 232: uint16(1254), + 233: uint16(1254), + 234: uint16(1254), + 235: uint16(1254), + 236: uint16(1254), + 237: uint16(1548), + 238: uint16(1546), + 239: uint16(1254), + 240: uint16(1254), + 241: uint16(1254), + 242: uint16(1254), + 243: uint16(1254), + 244: uint16(1254), + 245: uint16(1254), + 246: uint16(1254), + 247: uint16(1254), + 248: uint16(1254), + 249: uint16(1254), + 250: uint16(1254), + 251: uint16(1254), + 252: uint16(1254), + 253: uint16(1254), + 254: uint16(1254), + 255: uint16(1254), + 256: uint16(1254), + 257: uint16(1254), + 258: uint16(1254), + 259: uint16(1254), + 260: uint16(1254), + 261: uint16(1254), + 262: uint16(1254), + 263: uint16(1254), + 264: uint16(1254), + 265: uint16(1254), + 266: uint16(1363), + 267: uint16(1254), + 268: uint16(1254), + 269: uint16(1254), + 270: uint16(1254), + 271: uint16(1254), + 272: uint16(1254), + 273: uint16(1254), + 274: uint16(1254), + 275: uint16(1254), + 276: uint16(1254), + 277: uint16(1254), + 278: uint16(1608), + 279: uint16(1254), + 280: uint16(1521), + 281: uint16(1343), + 282: uint16(1363), + 283: uint16(1363), + 284: uint16(1363), + 285: uint16(1363), + 286: uint16(1365), + 287: uint16(1344), + 288: uint16(1342), + 289: uint16(1357), + 290: uint16(1288), + 291: uint16(1261), + 292: uint16(1655), + 293: uint16(1423), + 294: uint16(1412), + 295: uint16(1364), + 296: uint16(1412), + 297: uint16(1652), 298: uint16(1410), - 299: uint16(1410), - 300: uint16(1397), + 299: uint16(1423), + 300: uint16(1423), 301: uint16(1410), - 302: uint16(1351), - 303: uint16(1637), - 304: uint16(1293), - 305: uint16(1615), - 306: uint16(1288), - 307: uint16(1384), - 308: uint16(1384), - 309: uint16(1384), - 310: uint16(1374), - 311: uint16(1374), - 312: uint16(1374), - 313: uint16(1374), - 314: uint16(1378), - 315: uint16(1378), - 316: uint16(1476), - 317: uint16(1351), - 318: uint16(1344), - 319: uint16(1243), - 320: uint16(1640), - 321: uint16(1640), - 322: uint16(1360), - 323: uint16(1360), - 324: uint16(1639), - 325: uint16(1639), - 326: uint16(1360), - 327: uint16(1496), - 328: uint16(1623), - 329: uint16(1419), - 330: uint16(1321), - 331: uint16(1327), - 332: uint16(1327), - 333: uint16(1327), - 334: uint16(1327), - 335: uint16(1360), - 336: uint16(1261), - 337: uint16(1397), - 338: uint16(1623), - 339: uint16(1623), - 340: uint16(1397), - 341: uint16(1419), - 342: uint16(1321), - 343: uint16(1397), - 344: uint16(1321), - 345: uint16(1397), - 346: uint16(1360), - 347: uint16(1261), - 348: uint16(1512), - 349: uint16(1634), - 350: uint16(1360), - 351: uint16(1261), - 352: uint16(1486), - 353: uint16(1360), - 354: uint16(1261), - 355: uint16(1360), - 356: uint16(1261), - 357: uint16(1486), - 358: uint16(1319), - 359: uint16(1319), - 360: uint16(1319), - 361: uint16(1308), - 362: uint16(1243), - 363: uint16(1243), - 364: uint16(1486), - 365: uint16(1319), - 366: uint16(1293), - 367: uint16(1319), - 368: uint16(1308), + 302: uint16(1423), + 303: uint16(1364), + 304: uint16(1652), + 305: uint16(1304), + 306: uint16(1630), + 307: uint16(1299), + 308: uint16(1397), + 309: uint16(1397), + 310: uint16(1397), + 311: uint16(1387), + 312: uint16(1387), + 313: uint16(1387), + 314: uint16(1387), + 315: uint16(1391), + 316: uint16(1391), + 317: uint16(1489), + 318: uint16(1364), + 319: uint16(1357), + 320: uint16(1254), + 321: uint16(1655), + 322: uint16(1655), + 323: uint16(1373), + 324: uint16(1373), + 325: uint16(1654), + 326: uint16(1654), + 327: uint16(1373), + 328: uint16(1509), + 329: uint16(1638), + 330: uint16(1432), + 331: uint16(1332), + 332: uint16(1338), + 333: uint16(1338), + 334: uint16(1338), + 335: uint16(1338), + 336: uint16(1373), + 337: uint16(1272), + 338: uint16(1410), + 339: uint16(1638), + 340: uint16(1638), + 341: uint16(1410), + 342: uint16(1432), + 343: uint16(1332), + 344: uint16(1410), + 345: uint16(1332), + 346: uint16(1410), + 347: uint16(1373), + 348: uint16(1272), + 349: uint16(1525), + 350: uint16(1649), + 351: uint16(1373), + 352: uint16(1272), + 353: uint16(1499), + 354: uint16(1373), + 355: uint16(1272), + 356: uint16(1373), + 357: uint16(1272), + 358: uint16(1499), + 359: uint16(1330), + 360: uint16(1330), + 361: uint16(1330), + 362: uint16(1319), + 363: uint16(1254), + 364: uint16(1254), + 365: uint16(1499), + 366: uint16(1330), + 367: uint16(1304), + 368: uint16(1330), 369: uint16(1319), - 370: uint16(1319), - 371: uint16(1582), - 372: uint16(1243), - 373: uint16(1490), - 374: uint16(1490), - 375: uint16(1486), - 376: uint16(1360), - 377: uint16(1574), - 378: uint16(1574), - 379: uint16(1387), - 380: uint16(1387), - 381: uint16(1392), - 382: uint16(1378), - 383: uint16(1481), - 384: uint16(1360), - 385: uint16(1243), - 386: uint16(1392), - 387: uint16(1390), - 388: uint16(1388), - 389: uint16(1397), - 390: uint16(1311), - 391: uint16(1596), - 392: uint16(1596), - 393: uint16(1592), - 394: uint16(1592), - 395: uint16(1592), - 396: uint16(1645), - 397: uint16(1645), - 398: uint16(1545), - 399: uint16(1608), - 400: uint16(1276), - 401: uint16(1276), - 402: uint16(1276), - 403: uint16(1276), - 404: uint16(1608), - 405: uint16(1295), - 406: uint16(1295), - 407: uint16(1277), - 408: uint16(1277), - 409: uint16(1276), - 410: uint16(1608), - 411: uint16(1243), - 412: uint16(1243), - 413: uint16(1243), - 414: uint16(1243), - 415: uint16(1243), - 416: uint16(1243), - 417: uint16(1603), - 418: uint16(1243), - 419: uint16(1540), - 420: uint16(1497), - 421: uint16(1364), - 422: uint16(1243), - 423: uint16(1243), - 424: uint16(1243), - 425: uint16(1243), - 426: uint16(1243), - 427: uint16(1243), - 428: uint16(1243), - 429: uint16(1243), - 430: uint16(1243), - 431: uint16(1243), - 432: uint16(1243), - 433: uint16(1243), - 434: uint16(1243), - 435: uint16(1243), - 436: uint16(1243), - 437: uint16(1243), - 438: uint16(1551), - 439: uint16(1243), - 440: uint16(1243), - 441: uint16(1243), - 442: uint16(1243), - 443: uint16(1243), - 444: uint16(1243), - 445: uint16(1243), - 446: uint16(1243), - 447: uint16(1243), - 448: uint16(1243), - 449: uint16(1424), - 450: uint16(1243), - 451: uint16(1246), - 452: uint16(1542), - 453: uint16(1243), - 454: uint16(1243), - 455: uint16(1243), - 456: uint16(1243), - 457: uint16(1243), - 458: uint16(1243), - 459: uint16(1243), - 460: uint16(1243), - 461: uint16(1401), - 462: uint16(1402), - 463: uint16(1365), - 464: uint16(1243), - 465: uint16(1243), - 466: uint16(1243), - 467: uint16(1243), - 468: uint16(1243), - 469: uint16(1243), - 470: uint16(1243), - 471: uint16(1416), - 472: uint16(1243), - 473: uint16(1243), - 474: uint16(1243), - 475: uint16(1411), - 476: uint16(1243), - 477: uint16(1243), - 478: uint16(1243), - 479: uint16(1243), - 480: uint16(1243), - 481: uint16(1243), - 482: uint16(1243), - 483: uint16(1243), - 484: uint16(1636), - 485: uint16(1243), - 486: uint16(1243), - 487: uint16(1243), - 488: uint16(1243), - 489: uint16(1243), - 490: uint16(1243), - 491: uint16(1511), - 492: uint16(1510), - 493: uint16(1243), - 494: uint16(1243), - 495: uint16(1362), - 496: uint16(1243), - 497: uint16(1243), - 498: uint16(1243), - 499: uint16(1243), - 500: uint16(1243), - 501: uint16(1243), - 502: uint16(1243), - 503: uint16(1243), - 504: uint16(1243), - 505: uint16(1243), - 506: uint16(1243), - 507: uint16(1243), - 508: uint16(1243), - 509: uint16(1291), - 510: uint16(1243), - 511: uint16(1243), - 512: uint16(1243), - 513: uint16(1243), - 514: uint16(1243), - 515: uint16(1243), - 516: uint16(1243), - 517: uint16(1243), - 518: uint16(1243), - 519: uint16(1243), - 520: uint16(1243), - 521: uint16(1243), - 522: uint16(1243), - 523: uint16(1243), - 524: uint16(1243), - 525: uint16(1243), - 526: uint16(1243), - 527: uint16(1243), - 528: uint16(1243), - 529: uint16(1243), - 530: uint16(1243), - 531: uint16(1243), - 532: uint16(1243), - 533: uint16(1389), - 534: uint16(1243), - 535: uint16(1243), - 536: uint16(1243), - 537: uint16(1243), - 538: uint16(1243), - 539: uint16(1243), - 540: uint16(1243), - 541: uint16(1243), - 542: uint16(1243), - 543: uint16(1243), - 544: uint16(1243), - 545: uint16(1243), - 546: uint16(1243), - 547: uint16(1243), - 548: uint16(1579), - 549: uint16(1379), - 550: uint16(1243), - 551: uint16(1243), - 552: uint16(1243), - 553: uint16(1243), - 554: uint16(1627), - 555: uint16(1243), - 556: uint16(1243), - 557: uint16(1243), - 558: uint16(1243), - 559: uint16(1243), - 560: uint16(1243), - 561: uint16(1243), - 562: uint16(1243), - 563: uint16(1243), - 564: uint16(1243), - 565: uint16(1243), - 566: uint16(1243), - 567: uint16(1243), - 568: uint16(1243), - 569: uint16(1619), - 570: uint16(1335), - 571: uint16(1425), - 572: uint16(1243), - 573: uint16(1428), - 574: uint16(1265), - 575: uint16(1243), - 576: uint16(1255), - 577: uint16(1243), - 578: uint16(1243), + 370: uint16(1330), + 371: uint16(1330), + 372: uint16(1596), + 373: uint16(1254), + 374: uint16(1503), + 375: uint16(1503), + 376: uint16(1499), + 377: uint16(1373), + 378: uint16(1588), + 379: uint16(1588), + 380: uint16(1400), + 381: uint16(1400), + 382: uint16(1405), + 383: uint16(1391), + 384: uint16(1494), + 385: uint16(1373), + 386: uint16(1254), + 387: uint16(1405), + 388: uint16(1403), + 389: uint16(1401), + 390: uint16(1410), + 391: uint16(1322), + 392: uint16(1611), + 393: uint16(1611), + 394: uint16(1607), + 395: uint16(1607), + 396: uint16(1607), + 397: uint16(1660), + 398: uint16(1660), + 399: uint16(1558), + 400: uint16(1623), + 401: uint16(1287), + 402: uint16(1287), + 403: uint16(1287), + 404: uint16(1287), + 405: uint16(1623), + 406: uint16(1306), + 407: uint16(1306), + 408: uint16(1288), + 409: uint16(1288), + 410: uint16(1287), + 411: uint16(1623), + 412: uint16(1254), + 413: uint16(1254), + 414: uint16(1254), + 415: uint16(1254), + 416: uint16(1254), + 417: uint16(1254), + 418: uint16(1618), + 419: uint16(1254), + 420: uint16(1553), + 421: uint16(1510), + 422: uint16(1377), + 423: uint16(1254), + 424: uint16(1254), + 425: uint16(1254), + 426: uint16(1254), + 427: uint16(1254), + 428: uint16(1254), + 429: uint16(1254), + 430: uint16(1254), + 431: uint16(1254), + 432: uint16(1254), + 433: uint16(1254), + 434: uint16(1254), + 435: uint16(1254), + 436: uint16(1254), + 437: uint16(1254), + 438: uint16(1254), + 439: uint16(1564), + 440: uint16(1254), + 441: uint16(1254), + 442: uint16(1254), + 443: uint16(1254), + 444: uint16(1254), + 445: uint16(1254), + 446: uint16(1254), + 447: uint16(1254), + 448: uint16(1254), + 449: uint16(1254), + 450: uint16(1254), + 451: uint16(1437), + 452: uint16(1254), + 453: uint16(1257), + 454: uint16(1555), + 455: uint16(1254), + 456: uint16(1254), + 457: uint16(1254), + 458: uint16(1254), + 459: uint16(1254), + 460: uint16(1254), + 461: uint16(1254), + 462: uint16(1254), + 463: uint16(1414), + 464: uint16(1415), + 465: uint16(1378), + 466: uint16(1254), + 467: uint16(1254), + 468: uint16(1254), + 469: uint16(1254), + 470: uint16(1254), + 471: uint16(1254), + 472: uint16(1254), + 473: uint16(1429), + 474: uint16(1254), + 475: uint16(1254), + 476: uint16(1254), + 477: uint16(1424), + 478: uint16(1254), + 479: uint16(1254), + 480: uint16(1254), + 481: uint16(1254), + 482: uint16(1254), + 483: uint16(1254), + 484: uint16(1254), + 485: uint16(1254), + 486: uint16(1651), + 487: uint16(1254), + 488: uint16(1254), + 489: uint16(1254), + 490: uint16(1254), + 491: uint16(1254), + 492: uint16(1254), + 493: uint16(1524), + 494: uint16(1523), + 495: uint16(1254), + 496: uint16(1254), + 497: uint16(1375), + 498: uint16(1254), + 499: uint16(1254), + 500: uint16(1254), + 501: uint16(1254), + 502: uint16(1254), + 503: uint16(1254), + 504: uint16(1254), + 505: uint16(1254), + 506: uint16(1254), + 507: uint16(1254), + 508: uint16(1254), + 509: uint16(1254), + 510: uint16(1254), + 511: uint16(1302), + 512: uint16(1254), + 513: uint16(1254), + 514: uint16(1254), + 515: uint16(1254), + 516: uint16(1254), + 517: uint16(1254), + 518: uint16(1254), + 519: uint16(1254), + 520: uint16(1254), + 521: uint16(1254), + 522: uint16(1254), + 523: uint16(1254), + 524: uint16(1254), + 525: uint16(1254), + 526: uint16(1254), + 527: uint16(1254), + 528: uint16(1254), + 529: uint16(1254), + 530: uint16(1254), + 531: uint16(1254), + 532: uint16(1254), + 533: uint16(1254), + 534: uint16(1254), + 535: uint16(1402), + 536: uint16(1254), + 537: uint16(1254), + 538: uint16(1254), + 539: uint16(1254), + 540: uint16(1254), + 541: uint16(1254), + 542: uint16(1254), + 543: uint16(1254), + 544: uint16(1254), + 545: uint16(1254), + 546: uint16(1254), + 547: uint16(1254), + 548: uint16(1254), + 549: uint16(1254), + 550: uint16(1593), + 551: uint16(1392), + 552: uint16(1254), + 553: uint16(1254), + 554: uint16(1254), + 555: uint16(1254), + 556: uint16(1642), + 557: uint16(1254), + 558: uint16(1254), + 559: uint16(1254), + 560: uint16(1254), + 561: uint16(1352), + 562: uint16(1254), + 563: uint16(1254), + 564: uint16(1254), + 565: uint16(1254), + 566: uint16(1254), + 567: uint16(1254), + 568: uint16(1254), + 569: uint16(1254), + 570: uint16(1254), + 571: uint16(1254), + 572: uint16(1254), + 573: uint16(1634), + 574: uint16(1346), + 575: uint16(1438), + 576: uint16(1254), + 577: uint16(1441), + 578: uint16(1276), + 579: uint16(1254), + 580: uint16(1266), + 581: uint16(1254), + 582: uint16(1254), } /********** End of lemon-generated parsing tables *****************************/ @@ -158590,7 +160150,7 @@ var _yy_default = [579]uint16{ // ** to revert to identifiers if they keyword does not apply in the context where // ** it appears. // */ -var _yyFallback = [185]uint16{ +var _yyFallback = [186]uint16{ 2: uint16(59), 3: uint16(59), 4: uint16(59), @@ -158703,8 +160263,9 @@ type yyStackEntry = TyyStackEntry type TyyParser1 = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser1 = TyyParser1 @@ -158712,14 +160273,46 @@ type yyParser1 = TyyParser1 type TyyParser = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser = TyyParser /* #include */ +// C documentation +// +// /* +// ** Try to increase the size of the parser stack. Return the number +// ** of errors. Return 0 on success. +// */ +func _yyGrowStack(tls *libc.TLS, p uintptr) (r int32) { + var idx, newSize, oldSize int32 + var pNew uintptr + _, _, _, _ = idx, newSize, oldSize, pNew + oldSize = int32(1) + (int32((*TyyParser)(unsafe.Pointer(p)).FyystackEnd)-int32((*TyyParser)(unsafe.Pointer(p)).Fyystack))/12 + newSize = oldSize*int32(2) + int32(100) + idx = (int32((*TyyParser)(unsafe.Pointer(p)).Fyytos) - int32((*TyyParser)(unsafe.Pointer(p)).Fyystack)) / 12 + if (*TyyParser)(unsafe.Pointer(p)).Fyystack == p+16 { + pNew = _parserStackRealloc(tls, uintptr(0), uint64(uint32(newSize)*uint32(12))) + if pNew == uintptr(0) { + return int32(1) + } + libc.Xmemcpy(tls, pNew, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint32(oldSize)*uint32(12)) + } else { + pNew = _parserStackRealloc(tls, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(uint32(newSize)*uint32(12))) + if pNew == uintptr(0) { + return int32(1) + } + } + (*TyyParser)(unsafe.Pointer(p)).Fyystack = pNew + (*TyyParser)(unsafe.Pointer(p)).Fyytos = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(idx)*12 + (*TyyParser)(unsafe.Pointer(p)).FyystackEnd = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(newSize-int32(1))*12 + return 0 +} + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -158735,10 +160328,11 @@ func _sqlite3ParserInit(tls *libc.TLS, yypRawParser uintptr, pParse uintptr) { _ = yypParser yypParser = yypRawParser (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = yypParser + 8 - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 8))).Fstateno = uint16(0) - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 8))).Fmajor = uint16(0) - (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = yypParser + 8 + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*12 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack = yypParser + 16 + (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*12 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fstateno = uint16(0) + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fmajor = uint16(0) } // C documentation @@ -158766,103 +160360,105 @@ func _yy_destructor(tls *libc.TLS, yypParser uintptr, yymajor uint16, yypminor u ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case int32(204): /* select */ + case int32(205): /* select */ fallthrough - case int32(239): /* selectnowith */ + case int32(240): /* selectnowith */ fallthrough - case int32(240): /* oneselect */ + case int32(241): /* oneselect */ fallthrough - case int32(252): /* values */ + case int32(253): /* values */ + fallthrough + case int32(255): /* mvalues */ _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(216): /* term */ + case int32(217): /* term */ fallthrough - case int32(217): /* expr */ + case int32(218): /* expr */ fallthrough - case int32(246): /* where_opt */ + case int32(247): /* where_opt */ fallthrough - case int32(248): /* having_opt */ + case int32(249): /* having_opt */ fallthrough - case int32(267): /* where_opt_ret */ + case int32(269): /* where_opt_ret */ fallthrough - case int32(278): /* case_operand */ + case int32(280): /* case_operand */ fallthrough - case int32(280): /* case_else */ + case int32(282): /* case_else */ fallthrough - case int32(283): /* vinto */ + case int32(285): /* vinto */ fallthrough - case int32(290): /* when_clause */ + case int32(292): /* when_clause */ fallthrough - case int32(295): /* key_opt */ + case int32(297): /* key_opt */ fallthrough - case int32(311): /* filter_clause */ + case int32(314): /* filter_clause */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(221): /* eidlist_opt */ + case int32(222): /* eidlist_opt */ fallthrough - case int32(231): /* sortlist */ + case int32(232): /* sortlist */ fallthrough - case int32(232): /* eidlist */ + case int32(233): /* eidlist */ fallthrough - case int32(244): /* selcollist */ + case int32(245): /* selcollist */ fallthrough - case int32(247): /* groupby_opt */ + case int32(248): /* groupby_opt */ fallthrough - case int32(249): /* orderby_opt */ + case int32(250): /* orderby_opt */ fallthrough - case int32(253): /* nexprlist */ + case int32(254): /* nexprlist */ fallthrough - case int32(254): /* sclp */ + case int32(256): /* sclp */ fallthrough - case int32(261): /* exprlist */ + case int32(263): /* exprlist */ fallthrough - case int32(268): /* setlist */ + case int32(270): /* setlist */ fallthrough - case int32(277): /* paren_exprlist */ + case int32(279): /* paren_exprlist */ fallthrough - case int32(279): /* case_exprlist */ + case int32(281): /* case_exprlist */ fallthrough - case int32(310): /* part_opt */ + case int32(313): /* part_opt */ _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(238): /* fullname */ + case int32(239): /* fullname */ fallthrough - case int32(245): /* from */ + case int32(246): /* from */ fallthrough - case int32(256): /* seltablist */ + case int32(258): /* seltablist */ fallthrough - case int32(257): /* stl_prefix */ + case int32(259): /* stl_prefix */ fallthrough - case int32(262): /* xfullname */ + case int32(264): /* xfullname */ _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(241): /* wqlist */ + case int32(242): /* wqlist */ _sqlite3WithDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(251): /* window_clause */ + case int32(252): /* window_clause */ fallthrough - case int32(306): /* windowdefn_list */ + case int32(309): /* windowdefn_list */ _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(263): /* idlist */ + case int32(265): /* idlist */ fallthrough - case int32(270): /* idlist_opt */ + case int32(272): /* idlist_opt */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(273): /* filter_over */ + case int32(275): /* filter_over */ fallthrough - case int32(307): /* windowdefn */ + case int32(310): /* windowdefn */ fallthrough - case int32(308): /* window */ + case int32(311): /* window */ fallthrough - case int32(309): /* frame_opt */ + case int32(312): /* frame_opt */ fallthrough - case int32(312): /* over_clause */ + case int32(315): /* over_clause */ _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(286): /* trigger_cmd_list */ + case int32(288): /* trigger_cmd_list */ fallthrough - case int32(291): /* trigger_cmd */ + case int32(293): /* trigger_cmd */ _sqlite3DeleteTriggerStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(288): /* trigger_event */ + case int32(290): /* trigger_event */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TTrigEvent)(unsafe.Pointer(yypminor))).Fb) - case int32(314): /* frame_bound */ + case int32(317): /* frame_bound */ fallthrough - case int32(315): /* frame_bound_s */ + case int32(318): /* frame_bound_s */ fallthrough - case int32(316): /* frame_bound_e */ + case int32(319): /* frame_bound_e */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TFrameBound)(unsafe.Pointer(yypminor))).FpExpr) break /********* End destructor definitions *****************************************/ @@ -158898,11 +160494,20 @@ func _yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var pParser, yytos uintptr + _, _ = pParser, yytos pParser = p - for (*TyyParser)(unsafe.Pointer(pParser)).Fyytos > pParser+8 { - _yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling yy_pop_parser_stack() for each + ** element left in the stack */ + yytos = (*TyyParser)(unsafe.Pointer(pParser)).Fyytos + for yytos > (*TyyParser)(unsafe.Pointer(pParser)).Fyystack { + if int32((*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor) >= int32(YY_MIN_DSTRCTR) { + _yy_destructor(tls, pParser, (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor, yytos+4) + } + yytos -= 12 + } + if (*TyyParser)(unsafe.Pointer(pParser)).Fyystack != pParser+16 { + Xsqlite3_free(tls, (*TyyParser)(unsafe.Pointer(pParser)).Fyystack) } } @@ -158997,13 +160602,13 @@ func _yyStackOverflow(tls *libc.TLS, yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse - for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > yypParser+8 { + for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack { _yy_pop_parser_stack(tls, yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23336, 0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) /******** End %stack_overflow code ********************************************/ /* Suppress warning about unused %extra_argument var */ (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse @@ -159022,15 +160627,19 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint var yytos uintptr _ = yytos (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos += 12 - if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 12 - _yyStackOverflow(tls, yypParser) - return + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + if yytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { + if _yyGrowStack(tls, yypParser) != 0 { + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 12 + _yyStackOverflow(tls, yypParser) + return + } + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + _ = libc.Int32FromInt32(0) } if int32(yyNewState) > int32(YY_MAX_SHIFT) { yyNewState = uint16(int32(yyNewState) + (libc.Int32FromInt32(YY_MIN_REDUCE) - libc.Int32FromInt32(YY_MIN_SHIFTREDUCE))) } - yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos (*TyyStackEntry)(unsafe.Pointer(yytos)).Fstateno = yyNewState (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor = yyMajor *(*TToken)(unsafe.Pointer(yytos + 4)) = yyMinor @@ -159040,419 +160649,423 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint // // /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side // ** of that rule */ -var _yyRuleInfoLhs = [405]uint16{ - 0: uint16(189), - 1: uint16(189), - 2: uint16(188), - 3: uint16(190), - 4: uint16(191), - 5: uint16(191), - 6: uint16(191), - 7: uint16(191), - 8: uint16(190), - 9: uint16(190), - 10: uint16(190), - 11: uint16(190), - 12: uint16(190), - 13: uint16(195), - 14: uint16(197), - 15: uint16(199), - 16: uint16(199), - 17: uint16(198), - 18: uint16(198), - 19: uint16(196), - 20: uint16(196), - 21: uint16(203), - 22: uint16(203), - 23: uint16(205), - 24: uint16(205), - 25: uint16(206), - 26: uint16(208), - 27: uint16(208), - 28: uint16(208), - 29: uint16(209), - 30: uint16(213), - 31: uint16(214), - 32: uint16(215), - 33: uint16(215), - 34: uint16(215), - 35: uint16(215), - 36: uint16(215), - 37: uint16(215), - 38: uint16(215), - 39: uint16(215), - 40: uint16(215), - 41: uint16(215), - 42: uint16(215), - 43: uint16(215), - 44: uint16(215), - 45: uint16(224), - 46: uint16(224), - 47: uint16(220), - 48: uint16(220), - 49: uint16(222), - 50: uint16(222), - 51: uint16(225), - 52: uint16(225), - 53: uint16(225), - 54: uint16(225), - 55: uint16(226), - 56: uint16(226), - 57: uint16(226), - 58: uint16(226), - 59: uint16(226), - 60: uint16(223), - 61: uint16(223), - 62: uint16(227), - 63: uint16(227), - 64: uint16(227), - 65: uint16(202), - 66: uint16(229), - 67: uint16(230), - 68: uint16(230), - 69: uint16(230), - 70: uint16(230), - 71: uint16(230), - 72: uint16(233), - 73: uint16(218), - 74: uint16(218), - 75: uint16(234), - 76: uint16(234), - 77: uint16(235), - 78: uint16(235), - 79: uint16(190), - 80: uint16(237), - 81: uint16(237), - 82: uint16(190), - 83: uint16(190), - 84: uint16(190), - 85: uint16(204), - 86: uint16(204), - 87: uint16(204), - 88: uint16(239), - 89: uint16(242), - 90: uint16(242), - 91: uint16(242), - 92: uint16(240), - 93: uint16(240), - 94: uint16(252), - 95: uint16(252), - 96: uint16(243), - 97: uint16(243), - 98: uint16(243), - 99: uint16(254), +var _yyRuleInfoLhs = [409]uint16{ + 0: uint16(190), + 1: uint16(190), + 2: uint16(189), + 3: uint16(191), + 4: uint16(192), + 5: uint16(192), + 6: uint16(192), + 7: uint16(192), + 8: uint16(191), + 9: uint16(191), + 10: uint16(191), + 11: uint16(191), + 12: uint16(191), + 13: uint16(196), + 14: uint16(198), + 15: uint16(200), + 16: uint16(200), + 17: uint16(199), + 18: uint16(199), + 19: uint16(197), + 20: uint16(197), + 21: uint16(204), + 22: uint16(204), + 23: uint16(206), + 24: uint16(206), + 25: uint16(207), + 26: uint16(209), + 27: uint16(209), + 28: uint16(209), + 29: uint16(210), + 30: uint16(214), + 31: uint16(215), + 32: uint16(216), + 33: uint16(216), + 34: uint16(216), + 35: uint16(216), + 36: uint16(216), + 37: uint16(216), + 38: uint16(216), + 39: uint16(216), + 40: uint16(216), + 41: uint16(216), + 42: uint16(216), + 43: uint16(216), + 44: uint16(216), + 45: uint16(225), + 46: uint16(225), + 47: uint16(221), + 48: uint16(221), + 49: uint16(223), + 50: uint16(223), + 51: uint16(226), + 52: uint16(226), + 53: uint16(226), + 54: uint16(226), + 55: uint16(227), + 56: uint16(227), + 57: uint16(227), + 58: uint16(227), + 59: uint16(227), + 60: uint16(224), + 61: uint16(224), + 62: uint16(228), + 63: uint16(228), + 64: uint16(228), + 65: uint16(203), + 66: uint16(230), + 67: uint16(231), + 68: uint16(231), + 69: uint16(231), + 70: uint16(231), + 71: uint16(231), + 72: uint16(234), + 73: uint16(219), + 74: uint16(219), + 75: uint16(235), + 76: uint16(235), + 77: uint16(236), + 78: uint16(236), + 79: uint16(191), + 80: uint16(238), + 81: uint16(238), + 82: uint16(191), + 83: uint16(191), + 84: uint16(191), + 85: uint16(205), + 86: uint16(205), + 87: uint16(205), + 88: uint16(240), + 89: uint16(243), + 90: uint16(243), + 91: uint16(243), + 92: uint16(241), + 93: uint16(241), + 94: uint16(253), + 95: uint16(241), + 96: uint16(255), + 97: uint16(255), + 98: uint16(244), + 99: uint16(244), 100: uint16(244), - 101: uint16(244), - 102: uint16(244), - 103: uint16(255), - 104: uint16(255), - 105: uint16(245), - 106: uint16(245), - 107: uint16(257), - 108: uint16(257), - 109: uint16(256), - 110: uint16(256), - 111: uint16(256), - 112: uint16(256), - 113: uint16(256), - 114: uint16(200), - 115: uint16(200), - 116: uint16(238), - 117: uint16(238), - 118: uint16(262), - 119: uint16(262), - 120: uint16(262), - 121: uint16(262), - 122: uint16(258), - 123: uint16(258), - 124: uint16(258), - 125: uint16(258), - 126: uint16(259), - 127: uint16(259), - 128: uint16(259), - 129: uint16(264), - 130: uint16(260), - 131: uint16(260), - 132: uint16(249), - 133: uint16(249), - 134: uint16(231), - 135: uint16(231), - 136: uint16(219), - 137: uint16(219), - 138: uint16(219), - 139: uint16(265), - 140: uint16(265), - 141: uint16(265), - 142: uint16(247), - 143: uint16(247), + 101: uint16(256), + 102: uint16(245), + 103: uint16(245), + 104: uint16(245), + 105: uint16(257), + 106: uint16(257), + 107: uint16(246), + 108: uint16(246), + 109: uint16(259), + 110: uint16(259), + 111: uint16(258), + 112: uint16(258), + 113: uint16(258), + 114: uint16(258), + 115: uint16(258), + 116: uint16(201), + 117: uint16(201), + 118: uint16(239), + 119: uint16(239), + 120: uint16(264), + 121: uint16(264), + 122: uint16(264), + 123: uint16(264), + 124: uint16(260), + 125: uint16(260), + 126: uint16(260), + 127: uint16(260), + 128: uint16(261), + 129: uint16(261), + 130: uint16(261), + 131: uint16(266), + 132: uint16(262), + 133: uint16(262), + 134: uint16(250), + 135: uint16(250), + 136: uint16(232), + 137: uint16(232), + 138: uint16(220), + 139: uint16(220), + 140: uint16(220), + 141: uint16(267), + 142: uint16(267), + 143: uint16(267), 144: uint16(248), 145: uint16(248), - 146: uint16(250), - 147: uint16(250), - 148: uint16(250), - 149: uint16(250), - 150: uint16(190), - 151: uint16(246), - 152: uint16(246), - 153: uint16(267), - 154: uint16(267), - 155: uint16(267), - 156: uint16(267), - 157: uint16(190), - 158: uint16(268), - 159: uint16(268), - 160: uint16(268), - 161: uint16(268), - 162: uint16(190), - 163: uint16(190), - 164: uint16(271), - 165: uint16(271), - 166: uint16(271), - 167: uint16(271), - 168: uint16(271), - 169: uint16(271), - 170: uint16(272), - 171: uint16(269), - 172: uint16(269), - 173: uint16(270), - 174: uint16(270), - 175: uint16(263), - 176: uint16(263), - 177: uint16(217), - 178: uint16(217), - 179: uint16(217), - 180: uint16(217), - 181: uint16(216), - 182: uint16(216), - 183: uint16(216), + 146: uint16(249), + 147: uint16(249), + 148: uint16(251), + 149: uint16(251), + 150: uint16(251), + 151: uint16(251), + 152: uint16(191), + 153: uint16(247), + 154: uint16(247), + 155: uint16(269), + 156: uint16(269), + 157: uint16(269), + 158: uint16(269), + 159: uint16(191), + 160: uint16(270), + 161: uint16(270), + 162: uint16(270), + 163: uint16(270), + 164: uint16(191), + 165: uint16(191), + 166: uint16(273), + 167: uint16(273), + 168: uint16(273), + 169: uint16(273), + 170: uint16(273), + 171: uint16(273), + 172: uint16(274), + 173: uint16(271), + 174: uint16(271), + 175: uint16(272), + 176: uint16(272), + 177: uint16(265), + 178: uint16(265), + 179: uint16(218), + 180: uint16(218), + 181: uint16(218), + 182: uint16(218), + 183: uint16(217), 184: uint16(217), 185: uint16(217), - 186: uint16(217), - 187: uint16(217), - 188: uint16(217), - 189: uint16(217), - 190: uint16(217), - 191: uint16(217), - 192: uint16(217), - 193: uint16(216), - 194: uint16(217), + 186: uint16(218), + 187: uint16(218), + 188: uint16(218), + 189: uint16(218), + 190: uint16(218), + 191: uint16(218), + 192: uint16(218), + 193: uint16(218), + 194: uint16(218), 195: uint16(217), - 196: uint16(217), - 197: uint16(217), - 198: uint16(217), - 199: uint16(217), - 200: uint16(217), - 201: uint16(217), - 202: uint16(217), - 203: uint16(274), - 204: uint16(217), - 205: uint16(217), - 206: uint16(217), - 207: uint16(217), - 208: uint16(217), - 209: uint16(217), - 210: uint16(217), - 211: uint16(217), - 212: uint16(217), - 213: uint16(217), - 214: uint16(217), - 215: uint16(217), - 216: uint16(275), - 217: uint16(275), - 218: uint16(217), - 219: uint16(276), - 220: uint16(276), - 221: uint16(217), - 222: uint16(217), - 223: uint16(217), - 224: uint16(217), - 225: uint16(217), - 226: uint16(217), - 227: uint16(279), - 228: uint16(279), - 229: uint16(280), - 230: uint16(280), - 231: uint16(278), - 232: uint16(261), - 233: uint16(253), - 234: uint16(253), - 235: uint16(277), - 236: uint16(277), - 237: uint16(190), - 238: uint16(281), - 239: uint16(281), - 240: uint16(221), - 241: uint16(221), - 242: uint16(232), - 243: uint16(232), - 244: uint16(282), - 245: uint16(282), - 246: uint16(190), - 247: uint16(190), - 248: uint16(190), - 249: uint16(283), - 250: uint16(283), - 251: uint16(190), - 252: uint16(190), - 253: uint16(190), - 254: uint16(190), - 255: uint16(190), - 256: uint16(211), - 257: uint16(212), - 258: uint16(190), - 259: uint16(285), - 260: uint16(287), + 196: uint16(218), + 197: uint16(218), + 198: uint16(218), + 199: uint16(218), + 200: uint16(218), + 201: uint16(218), + 202: uint16(218), + 203: uint16(218), + 204: uint16(218), + 205: uint16(276), + 206: uint16(218), + 207: uint16(218), + 208: uint16(218), + 209: uint16(218), + 210: uint16(218), + 211: uint16(218), + 212: uint16(218), + 213: uint16(218), + 214: uint16(218), + 215: uint16(218), + 216: uint16(218), + 217: uint16(218), + 218: uint16(277), + 219: uint16(277), + 220: uint16(218), + 221: uint16(278), + 222: uint16(278), + 223: uint16(218), + 224: uint16(218), + 225: uint16(218), + 226: uint16(218), + 227: uint16(218), + 228: uint16(218), + 229: uint16(281), + 230: uint16(281), + 231: uint16(282), + 232: uint16(282), + 233: uint16(280), + 234: uint16(263), + 235: uint16(254), + 236: uint16(254), + 237: uint16(279), + 238: uint16(279), + 239: uint16(191), + 240: uint16(283), + 241: uint16(283), + 242: uint16(222), + 243: uint16(222), + 244: uint16(233), + 245: uint16(233), + 246: uint16(284), + 247: uint16(284), + 248: uint16(191), + 249: uint16(191), + 250: uint16(191), + 251: uint16(285), + 252: uint16(285), + 253: uint16(191), + 254: uint16(191), + 255: uint16(191), + 256: uint16(191), + 257: uint16(191), + 258: uint16(212), + 259: uint16(213), + 260: uint16(191), 261: uint16(287), - 262: uint16(287), - 263: uint16(288), - 264: uint16(288), - 265: uint16(288), + 262: uint16(289), + 263: uint16(289), + 264: uint16(289), + 265: uint16(290), 266: uint16(290), 267: uint16(290), - 268: uint16(286), - 269: uint16(286), - 270: uint16(292), - 271: uint16(293), - 272: uint16(293), - 273: uint16(291), - 274: uint16(291), - 275: uint16(291), - 276: uint16(291), - 277: uint16(217), - 278: uint16(217), - 279: uint16(236), - 280: uint16(236), - 281: uint16(236), - 282: uint16(190), - 283: uint16(190), - 284: uint16(190), - 285: uint16(295), - 286: uint16(295), - 287: uint16(190), - 288: uint16(190), - 289: uint16(190), - 290: uint16(190), - 291: uint16(190), - 292: uint16(190), - 293: uint16(190), - 294: uint16(296), - 295: uint16(190), - 296: uint16(190), - 297: uint16(190), - 298: uint16(298), - 299: uint16(300), - 300: uint16(301), - 301: uint16(301), - 302: uint16(302), - 303: uint16(266), - 304: uint16(266), - 305: uint16(305), - 306: uint16(305), - 307: uint16(305), - 308: uint16(304), - 309: uint16(241), - 310: uint16(241), - 311: uint16(306), - 312: uint16(307), - 313: uint16(308), - 314: uint16(308), - 315: uint16(308), - 316: uint16(308), - 317: uint16(308), - 318: uint16(309), - 319: uint16(309), - 320: uint16(309), - 321: uint16(313), - 322: uint16(315), - 323: uint16(315), + 268: uint16(292), + 269: uint16(292), + 270: uint16(288), + 271: uint16(288), + 272: uint16(294), + 273: uint16(295), + 274: uint16(295), + 275: uint16(293), + 276: uint16(293), + 277: uint16(293), + 278: uint16(293), + 279: uint16(218), + 280: uint16(218), + 281: uint16(237), + 282: uint16(237), + 283: uint16(237), + 284: uint16(191), + 285: uint16(191), + 286: uint16(191), + 287: uint16(297), + 288: uint16(297), + 289: uint16(191), + 290: uint16(191), + 291: uint16(191), + 292: uint16(191), + 293: uint16(191), + 294: uint16(191), + 295: uint16(191), + 296: uint16(298), + 297: uint16(191), + 298: uint16(191), + 299: uint16(191), + 300: uint16(300), + 301: uint16(302), + 302: uint16(303), + 303: uint16(303), + 304: uint16(304), + 305: uint16(268), + 306: uint16(268), + 307: uint16(307), + 308: uint16(307), + 309: uint16(307), + 310: uint16(306), + 311: uint16(308), + 312: uint16(242), + 313: uint16(242), + 314: uint16(309), + 315: uint16(310), + 316: uint16(311), + 317: uint16(311), + 318: uint16(311), + 319: uint16(311), + 320: uint16(311), + 321: uint16(312), + 322: uint16(312), + 323: uint16(312), 324: uint16(316), - 325: uint16(316), - 326: uint16(314), - 327: uint16(314), - 328: uint16(317), + 325: uint16(318), + 326: uint16(318), + 327: uint16(319), + 328: uint16(319), 329: uint16(317), - 330: uint16(318), - 331: uint16(318), - 332: uint16(318), - 333: uint16(251), - 334: uint16(273), - 335: uint16(273), - 336: uint16(273), - 337: uint16(312), - 338: uint16(312), - 339: uint16(311), - 340: uint16(185), - 341: uint16(186), - 342: uint16(186), - 343: uint16(187), - 344: uint16(187), + 330: uint16(317), + 331: uint16(320), + 332: uint16(320), + 333: uint16(321), + 334: uint16(321), + 335: uint16(321), + 336: uint16(252), + 337: uint16(275), + 338: uint16(275), + 339: uint16(275), + 340: uint16(315), + 341: uint16(315), + 342: uint16(314), + 343: uint16(217), + 344: uint16(186), 345: uint16(187), - 346: uint16(192), - 347: uint16(192), - 348: uint16(192), - 349: uint16(194), - 350: uint16(194), - 351: uint16(190), - 352: uint16(203), - 353: uint16(201), - 354: uint16(201), - 355: uint16(193), - 356: uint16(193), - 357: uint16(208), - 358: uint16(209), - 359: uint16(210), - 360: uint16(210), - 361: uint16(207), - 362: uint16(207), - 363: uint16(215), - 364: uint16(215), - 365: uint16(215), - 366: uint16(202), - 367: uint16(228), - 368: uint16(228), - 369: uint16(229), - 370: uint16(233), - 371: uint16(235), - 372: uint16(239), - 373: uint16(240), - 374: uint16(254), - 375: uint16(255), - 376: uint16(264), - 377: uint16(272), - 378: uint16(217), - 379: uint16(274), - 380: uint16(278), - 381: uint16(261), - 382: uint16(284), - 383: uint16(284), - 384: uint16(284), - 385: uint16(284), - 386: uint16(284), - 387: uint16(211), - 388: uint16(289), - 389: uint16(289), - 390: uint16(292), - 391: uint16(293), - 392: uint16(294), - 393: uint16(294), - 394: uint16(297), - 395: uint16(297), - 396: uint16(299), - 397: uint16(299), - 398: uint16(300), - 399: uint16(303), - 400: uint16(303), - 401: uint16(303), - 402: uint16(266), - 403: uint16(306), - 404: uint16(308), + 346: uint16(187), + 347: uint16(188), + 348: uint16(188), + 349: uint16(188), + 350: uint16(193), + 351: uint16(193), + 352: uint16(193), + 353: uint16(195), + 354: uint16(195), + 355: uint16(191), + 356: uint16(204), + 357: uint16(202), + 358: uint16(202), + 359: uint16(194), + 360: uint16(194), + 361: uint16(209), + 362: uint16(210), + 363: uint16(211), + 364: uint16(211), + 365: uint16(208), + 366: uint16(208), + 367: uint16(216), + 368: uint16(216), + 369: uint16(216), + 370: uint16(203), + 371: uint16(229), + 372: uint16(229), + 373: uint16(230), + 374: uint16(234), + 375: uint16(236), + 376: uint16(240), + 377: uint16(241), + 378: uint16(256), + 379: uint16(257), + 380: uint16(266), + 381: uint16(274), + 382: uint16(218), + 383: uint16(276), + 384: uint16(280), + 385: uint16(263), + 386: uint16(286), + 387: uint16(286), + 388: uint16(286), + 389: uint16(286), + 390: uint16(286), + 391: uint16(212), + 392: uint16(291), + 393: uint16(291), + 394: uint16(294), + 395: uint16(295), + 396: uint16(296), + 397: uint16(296), + 398: uint16(299), + 399: uint16(299), + 400: uint16(301), + 401: uint16(301), + 402: uint16(302), + 403: uint16(305), + 404: uint16(305), + 405: uint16(305), + 406: uint16(268), + 407: uint16(309), + 408: uint16(311), } // C documentation // // /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number // ** of symbols on the right-hand side of that rule. */ -var _yyRuleInfoNRhs = [405]int8{ +var _yyRuleInfoNRhs = [409]int8{ 0: int8(-int32(1)), 1: int8(-int32(3)), 2: int8(-int32(1)), @@ -159533,273 +161146,277 @@ var _yyRuleInfoNRhs = [405]int8{ 92: int8(-int32(9)), 93: int8(-int32(10)), 94: int8(-int32(4)), - 95: int8(-int32(5)), - 96: int8(-int32(1)), - 97: int8(-int32(1)), - 100: int8(-int32(5)), - 101: int8(-int32(3)), + 95: int8(-int32(1)), + 96: int8(-int32(5)), + 97: int8(-int32(5)), + 98: int8(-int32(1)), + 99: int8(-int32(1)), 102: int8(-int32(5)), - 103: int8(-int32(2)), - 106: int8(-int32(2)), - 107: int8(-int32(2)), - 109: int8(-int32(5)), - 110: int8(-int32(6)), - 111: int8(-int32(8)), + 103: int8(-int32(3)), + 104: int8(-int32(5)), + 105: int8(-int32(2)), + 108: int8(-int32(2)), + 109: int8(-int32(2)), + 111: int8(-int32(5)), 112: int8(-int32(6)), - 113: int8(-int32(6)), - 115: int8(-int32(2)), - 116: int8(-int32(1)), - 117: int8(-int32(3)), + 113: int8(-int32(8)), + 114: int8(-int32(6)), + 115: int8(-int32(6)), + 117: int8(-int32(2)), 118: int8(-int32(1)), 119: int8(-int32(3)), - 120: int8(-int32(5)), + 120: int8(-int32(1)), 121: int8(-int32(3)), - 122: int8(-int32(1)), - 123: int8(-int32(2)), - 124: int8(-int32(3)), - 125: int8(-int32(4)), - 126: int8(-int32(2)), + 122: int8(-int32(5)), + 123: int8(-int32(3)), + 124: int8(-int32(1)), + 125: int8(-int32(2)), + 126: int8(-int32(3)), 127: int8(-int32(4)), - 130: int8(-int32(3)), - 131: int8(-int32(2)), - 133: int8(-int32(3)), - 134: int8(-int32(5)), + 128: int8(-int32(2)), + 129: int8(-int32(4)), + 132: int8(-int32(3)), + 133: int8(-int32(2)), 135: int8(-int32(3)), - 136: int8(-int32(1)), - 137: int8(-int32(1)), - 139: int8(-int32(2)), - 140: int8(-int32(2)), - 143: int8(-int32(3)), - 145: int8(-int32(2)), + 136: int8(-int32(5)), + 137: int8(-int32(3)), + 138: int8(-int32(1)), + 139: int8(-int32(1)), + 141: int8(-int32(2)), + 142: int8(-int32(2)), + 145: int8(-int32(3)), 147: int8(-int32(2)), - 148: int8(-int32(4)), - 149: int8(-int32(4)), - 150: int8(-int32(6)), - 152: int8(-int32(2)), + 149: int8(-int32(2)), + 150: int8(-int32(4)), + 151: int8(-int32(4)), + 152: int8(-int32(6)), 154: int8(-int32(2)), - 155: int8(-int32(2)), - 156: int8(-int32(4)), - 157: int8(-int32(9)), - 158: int8(-int32(5)), - 159: int8(-int32(7)), - 160: int8(-int32(3)), - 161: int8(-int32(5)), - 162: int8(-int32(7)), - 163: int8(-int32(8)), - 165: int8(-int32(2)), - 166: int8(-int32(12)), - 167: int8(-int32(9)), - 168: int8(-int32(5)), - 169: int8(-int32(8)), - 170: int8(-int32(2)), - 171: int8(-int32(2)), - 172: int8(-int32(1)), - 174: int8(-int32(3)), - 175: int8(-int32(3)), - 176: int8(-int32(1)), + 156: int8(-int32(2)), + 157: int8(-int32(2)), + 158: int8(-int32(4)), + 159: int8(-int32(9)), + 160: int8(-int32(5)), + 161: int8(-int32(7)), + 162: int8(-int32(3)), + 163: int8(-int32(5)), + 164: int8(-int32(7)), + 165: int8(-int32(8)), + 167: int8(-int32(2)), + 168: int8(-int32(12)), + 169: int8(-int32(9)), + 170: int8(-int32(5)), + 171: int8(-int32(8)), + 172: int8(-int32(2)), + 173: int8(-int32(2)), + 174: int8(-int32(1)), + 176: int8(-int32(3)), 177: int8(-int32(3)), 178: int8(-int32(1)), 179: int8(-int32(3)), - 180: int8(-int32(5)), - 181: int8(-int32(1)), - 182: int8(-int32(1)), + 180: int8(-int32(1)), + 181: int8(-int32(3)), + 182: int8(-int32(5)), 183: int8(-int32(1)), 184: int8(-int32(1)), - 185: int8(-int32(3)), - 186: int8(-int32(6)), - 187: int8(-int32(5)), - 188: int8(-int32(8)), - 189: int8(-int32(4)), - 190: int8(-int32(6)), - 191: int8(-int32(9)), - 192: int8(-int32(5)), - 193: int8(-int32(1)), + 185: int8(-int32(1)), + 186: int8(-int32(1)), + 187: int8(-int32(3)), + 188: int8(-int32(6)), + 189: int8(-int32(5)), + 190: int8(-int32(8)), + 191: int8(-int32(4)), + 192: int8(-int32(6)), + 193: int8(-int32(9)), 194: int8(-int32(5)), - 195: int8(-int32(3)), - 196: int8(-int32(3)), + 195: int8(-int32(1)), + 196: int8(-int32(5)), 197: int8(-int32(3)), 198: int8(-int32(3)), 199: int8(-int32(3)), 200: int8(-int32(3)), 201: int8(-int32(3)), 202: int8(-int32(3)), - 203: int8(-int32(2)), + 203: int8(-int32(3)), 204: int8(-int32(3)), - 205: int8(-int32(5)), - 206: int8(-int32(2)), - 207: int8(-int32(3)), - 208: int8(-int32(3)), - 209: int8(-int32(4)), - 210: int8(-int32(6)), - 211: int8(-int32(5)), - 212: int8(-int32(2)), - 213: int8(-int32(2)), + 205: int8(-int32(2)), + 206: int8(-int32(3)), + 207: int8(-int32(5)), + 208: int8(-int32(2)), + 209: int8(-int32(3)), + 210: int8(-int32(3)), + 211: int8(-int32(4)), + 212: int8(-int32(6)), + 213: int8(-int32(5)), 214: int8(-int32(2)), - 215: int8(-int32(3)), - 216: int8(-int32(1)), - 217: int8(-int32(2)), - 218: int8(-int32(5)), - 219: int8(-int32(1)), - 220: int8(-int32(2)), - 221: int8(-int32(5)), - 222: int8(-int32(3)), + 215: int8(-int32(2)), + 216: int8(-int32(2)), + 217: int8(-int32(3)), + 218: int8(-int32(1)), + 219: int8(-int32(2)), + 220: int8(-int32(5)), + 221: int8(-int32(1)), + 222: int8(-int32(2)), 223: int8(-int32(5)), - 224: int8(-int32(5)), - 225: int8(-int32(4)), + 224: int8(-int32(3)), + 225: int8(-int32(5)), 226: int8(-int32(5)), - 227: int8(-int32(5)), - 228: int8(-int32(4)), - 229: int8(-int32(2)), - 233: int8(-int32(3)), - 234: int8(-int32(1)), - 236: int8(-int32(3)), - 237: int8(-int32(12)), - 238: int8(-int32(1)), - 241: int8(-int32(3)), - 242: int8(-int32(5)), + 227: int8(-int32(4)), + 228: int8(-int32(5)), + 229: int8(-int32(5)), + 230: int8(-int32(4)), + 231: int8(-int32(2)), + 235: int8(-int32(3)), + 236: int8(-int32(1)), + 238: int8(-int32(3)), + 239: int8(-int32(12)), + 240: int8(-int32(1)), 243: int8(-int32(3)), - 245: int8(-int32(2)), - 246: int8(-int32(4)), + 244: int8(-int32(5)), + 245: int8(-int32(3)), 247: int8(-int32(2)), - 248: int8(-int32(3)), + 248: int8(-int32(4)), 249: int8(-int32(2)), - 251: int8(-int32(3)), - 252: int8(-int32(5)), - 253: int8(-int32(6)), + 250: int8(-int32(3)), + 251: int8(-int32(2)), + 253: int8(-int32(3)), 254: int8(-int32(5)), 255: int8(-int32(6)), - 256: int8(-int32(2)), - 257: int8(-int32(2)), - 258: int8(-int32(5)), - 259: int8(-int32(11)), - 260: int8(-int32(1)), - 261: int8(-int32(2)), - 263: int8(-int32(1)), - 264: int8(-int32(1)), - 265: int8(-int32(3)), - 267: int8(-int32(2)), - 268: int8(-int32(3)), + 256: int8(-int32(5)), + 257: int8(-int32(6)), + 258: int8(-int32(2)), + 259: int8(-int32(2)), + 260: int8(-int32(5)), + 261: int8(-int32(11)), + 262: int8(-int32(1)), + 263: int8(-int32(2)), + 265: int8(-int32(1)), + 266: int8(-int32(1)), + 267: int8(-int32(3)), 269: int8(-int32(2)), 270: int8(-int32(3)), - 271: int8(-int32(3)), - 272: int8(-int32(2)), - 273: int8(-int32(9)), - 274: int8(-int32(8)), - 275: int8(-int32(6)), - 276: int8(-int32(3)), - 277: int8(-int32(4)), - 278: int8(-int32(6)), - 279: int8(-int32(1)), - 280: int8(-int32(1)), + 271: int8(-int32(2)), + 272: int8(-int32(3)), + 273: int8(-int32(3)), + 274: int8(-int32(2)), + 275: int8(-int32(9)), + 276: int8(-int32(8)), + 277: int8(-int32(6)), + 278: int8(-int32(3)), + 279: int8(-int32(4)), + 280: int8(-int32(6)), 281: int8(-int32(1)), - 282: int8(-int32(4)), - 283: int8(-int32(6)), - 284: int8(-int32(3)), - 286: int8(-int32(2)), - 287: int8(-int32(1)), - 288: int8(-int32(3)), + 282: int8(-int32(1)), + 283: int8(-int32(1)), + 284: int8(-int32(4)), + 285: int8(-int32(6)), + 286: int8(-int32(3)), + 288: int8(-int32(2)), 289: int8(-int32(1)), 290: int8(-int32(3)), - 291: int8(-int32(6)), - 292: int8(-int32(7)), + 291: int8(-int32(1)), + 292: int8(-int32(3)), 293: int8(-int32(6)), - 294: int8(-int32(1)), - 295: int8(-int32(8)), + 294: int8(-int32(7)), + 295: int8(-int32(6)), 296: int8(-int32(1)), - 297: int8(-int32(4)), - 298: int8(-int32(8)), - 300: int8(-int32(1)), - 301: int8(-int32(3)), + 297: int8(-int32(8)), + 298: int8(-int32(1)), + 299: int8(-int32(4)), + 300: int8(-int32(8)), 302: int8(-int32(1)), - 303: int8(-int32(2)), - 304: int8(-int32(3)), - 305: int8(-int32(1)), - 306: int8(-int32(2)), - 307: int8(-int32(3)), - 308: int8(-int32(6)), - 309: int8(-int32(1)), - 310: int8(-int32(3)), - 311: int8(-int32(3)), - 312: int8(-int32(5)), - 313: int8(-int32(5)), - 314: int8(-int32(6)), - 315: int8(-int32(4)), + 303: int8(-int32(3)), + 304: int8(-int32(1)), + 305: int8(-int32(2)), + 306: int8(-int32(3)), + 307: int8(-int32(1)), + 308: int8(-int32(2)), + 309: int8(-int32(3)), + 310: int8(-int32(6)), + 311: int8(-int32(1)), + 312: int8(-int32(1)), + 313: int8(-int32(3)), + 314: int8(-int32(3)), + 315: int8(-int32(5)), 316: int8(-int32(5)), - 317: int8(-int32(2)), - 319: int8(-int32(3)), - 320: int8(-int32(6)), - 321: int8(-int32(1)), - 322: int8(-int32(1)), - 323: int8(-int32(2)), + 317: int8(-int32(6)), + 318: int8(-int32(4)), + 319: int8(-int32(5)), + 320: int8(-int32(2)), + 322: int8(-int32(3)), + 323: int8(-int32(6)), 324: int8(-int32(1)), - 325: int8(-int32(2)), + 325: int8(-int32(1)), 326: int8(-int32(2)), - 327: int8(-int32(2)), + 327: int8(-int32(1)), + 328: int8(-int32(2)), 329: int8(-int32(2)), 330: int8(-int32(2)), - 331: int8(-int32(2)), - 332: int8(-int32(1)), + 332: int8(-int32(2)), 333: int8(-int32(2)), 334: int8(-int32(2)), 335: int8(-int32(1)), - 336: int8(-int32(1)), - 337: int8(-int32(4)), - 338: int8(-int32(2)), - 339: int8(-int32(5)), - 340: int8(-int32(1)), + 336: int8(-int32(2)), + 337: int8(-int32(2)), + 338: int8(-int32(1)), + 339: int8(-int32(1)), + 340: int8(-int32(4)), 341: int8(-int32(2)), - 342: int8(-int32(1)), + 342: int8(-int32(5)), 343: int8(-int32(1)), - 344: int8(-int32(2)), - 345: int8(-int32(3)), + 344: int8(-int32(1)), + 345: int8(-int32(2)), + 346: int8(-int32(1)), 347: int8(-int32(1)), 348: int8(-int32(2)), - 349: int8(-int32(1)), - 351: int8(-int32(2)), - 352: int8(-int32(1)), - 353: int8(-int32(4)), - 354: int8(-int32(2)), - 355: int8(-int32(1)), + 349: int8(-int32(3)), + 351: int8(-int32(1)), + 352: int8(-int32(2)), + 353: int8(-int32(1)), + 355: int8(-int32(2)), 356: int8(-int32(1)), - 357: int8(-int32(1)), - 358: int8(-int32(1)), + 357: int8(-int32(4)), + 358: int8(-int32(2)), 359: int8(-int32(1)), 360: int8(-int32(1)), - 361: int8(-int32(2)), - 363: int8(-int32(2)), - 364: int8(-int32(4)), + 361: int8(-int32(1)), + 362: int8(-int32(1)), + 363: int8(-int32(1)), + 364: int8(-int32(1)), 365: int8(-int32(2)), - 366: int8(-int32(2)), - 367: int8(-int32(3)), - 368: int8(-int32(1)), - 370: int8(-int32(1)), - 371: int8(-int32(1)), + 367: int8(-int32(2)), + 368: int8(-int32(4)), + 369: int8(-int32(2)), + 370: int8(-int32(2)), + 371: int8(-int32(3)), 372: int8(-int32(1)), - 373: int8(-int32(1)), - 374: int8(-int32(2)), + 374: int8(-int32(1)), 375: int8(-int32(1)), 376: int8(-int32(1)), - 378: int8(-int32(1)), + 377: int8(-int32(1)), + 378: int8(-int32(2)), 379: int8(-int32(1)), 380: int8(-int32(1)), - 381: int8(-int32(1)), 382: int8(-int32(1)), 383: int8(-int32(1)), 384: int8(-int32(1)), 385: int8(-int32(1)), 386: int8(-int32(1)), 387: int8(-int32(1)), - 389: int8(-int32(3)), + 388: int8(-int32(1)), + 389: int8(-int32(1)), 390: int8(-int32(1)), - 392: int8(-int32(1)), - 395: int8(-int32(1)), + 391: int8(-int32(1)), + 393: int8(-int32(3)), + 394: int8(-int32(1)), 396: int8(-int32(1)), - 397: int8(-int32(3)), - 398: int8(-int32(2)), - 400: int8(-int32(4)), - 401: int8(-int32(2)), - 403: int8(-int32(1)), - 404: int8(-int32(1)), + 399: int8(-int32(1)), + 400: int8(-int32(1)), + 401: int8(-int32(3)), + 402: int8(-int32(2)), + 404: int8(-int32(4)), + 405: int8(-int32(2)), + 407: int8(-int32(1)), + 408: int8(-int32(1)), } // C documentation @@ -159817,18 +161434,19 @@ var _yyRuleInfoNRhs = [405]int8{ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int32, yyLookaheadToken TToken, pParse uintptr) (r uint16) { bp := tls.Alloc(96) defer tls.Free(96) - var bNot, bNot1, nExpr, yygoto, yysize, v344 int32 + var bNot, bNot1, nExpr, yygoto, yysize int32 var n Tu32 - var p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v343, v345, v346, v347, v348 uintptr + var op Tu8 + var p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v347, v348, v349, v350, v351 uintptr var yyact uint16 - var v349 TToken + var v352 TToken var _ /* all at bp+64 */ TToken var _ /* as at bp+48 */ TToken var _ /* dest at bp+8 */ TSelectDest var _ /* t at bp+56 */ TToken var _ /* x at bp+40 */ TToken var _ /* yylhsminor at bp+0 */ TYYMINORTYPE - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v343, v344, v345, v346, v347, v348, v349 /* Amount to pop the stack */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, op, p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v347, v348, v349, v350, v351, v352 /* Amount to pop the stack */ _ = yyLookahead _ = yyLookaheadToken yymsp = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos @@ -159849,7 +161467,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _7 case uint32(7): goto _8 - case uint32(321): + case uint32(324): goto _9 case uint32(9): goto _10 @@ -159877,9 +161495,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _21 case uint32(81): goto _22 - case uint32(98): + case uint32(100): goto _23 - case uint32(244): + case uint32(246): goto _24 case uint32(16): goto _25 @@ -159903,7 +161521,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _34 case uint32(26): goto _35 - case uint32(104): + case uint32(106): goto _36 case uint32(27): goto _37 @@ -159977,17 +161595,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _71 case uint32(61): goto _72 - case uint32(171): + case uint32(173): goto _73 case uint32(80): goto _74 case uint32(63): goto _75 - case uint32(217): + case uint32(219): goto _76 - case uint32(220): + case uint32(222): goto _77 - case uint32(245): + case uint32(247): goto _78 case uint32(64): goto _79 @@ -160009,7 +161627,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _87 case uint32(77): goto _88 - case uint32(172): + case uint32(174): goto _89 case uint32(78): goto _90 @@ -160043,47 +161661,47 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _104 case uint32(95): goto _105 - case uint32(96): - goto _106 case uint32(97): + goto _106 + case uint32(96): goto _107 - case uint32(132): + case uint32(98): goto _108 case uint32(99): goto _109 - case uint32(142): + case uint32(134): goto _110 - case uint32(232): + case uint32(101): goto _111 - case uint32(235): + case uint32(144): goto _112 - case uint32(240): + case uint32(234): goto _113 - case uint32(100): + case uint32(237): goto _114 - case uint32(101): + case uint32(242): goto _115 case uint32(102): goto _116 - case uint32(115): - goto _117 case uint32(103): + goto _117 + case uint32(104): goto _118 - case uint32(256): + case uint32(117): goto _119 - case uint32(257): + case uint32(105): goto _120 - case uint32(108): + case uint32(258): goto _121 - case uint32(105): + case uint32(259): goto _122 - case uint32(106): + case uint32(110): goto _123 case uint32(107): goto _124 - case uint32(109): + case uint32(108): goto _125 - case uint32(110): + case uint32(109): goto _126 case uint32(111): goto _127 @@ -160091,13 +161709,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _128 case uint32(113): goto _129 - case uint32(129): - goto _130 case uint32(114): + goto _130 + case uint32(115): goto _131 - case uint32(116): + case uint32(131): goto _132 - case uint32(117): + case uint32(116): goto _133 case uint32(118): goto _134 @@ -160121,15 +161739,15 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _143 case uint32(128): goto _144 - case uint32(130): + case uint32(129): goto _145 - case uint32(131): + case uint32(130): goto _146 - case uint32(143): + case uint32(132): goto _147 case uint32(133): goto _148 - case uint32(134): + case uint32(145): goto _149 case uint32(135): goto _150 @@ -160137,49 +161755,49 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _151 case uint32(137): goto _152 - case uint32(141): - goto _153 case uint32(138): - goto _154 + goto _153 case uint32(139): + goto _154 + case uint32(143): goto _155 case uint32(140): goto _156 - case uint32(146): + case uint32(141): goto _157 - case uint32(144): + case uint32(142): goto _158 - case uint32(151): + case uint32(148): goto _159 - case uint32(153): + case uint32(146): goto _160 - case uint32(230): + case uint32(153): goto _161 - case uint32(231): + case uint32(155): goto _162 - case uint32(250): + case uint32(232): goto _163 - case uint32(152): + case uint32(233): goto _164 - case uint32(145): + case uint32(252): goto _165 case uint32(154): goto _166 - case uint32(229): + case uint32(147): goto _167 - case uint32(249): + case uint32(156): goto _168 - case uint32(147): + case uint32(231): goto _169 - case uint32(148): + case uint32(251): goto _170 case uint32(149): goto _171 case uint32(150): goto _172 - case uint32(155): + case uint32(151): goto _173 - case uint32(156): + case uint32(152): goto _174 case uint32(157): goto _175 @@ -160209,9 +161827,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _187 case uint32(170): goto _188 - case uint32(173): + case uint32(171): goto _189 - case uint32(174): + case uint32(172): goto _190 case uint32(175): goto _191 @@ -160225,13 +161843,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _195 case uint32(180): goto _196 - case uint32(182): - goto _197 case uint32(181): + goto _197 + case uint32(182): goto _198 - case uint32(183): - goto _199 case uint32(184): + goto _199 + case uint32(183): goto _200 case uint32(185): goto _201 @@ -160255,13 +161873,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _210 case uint32(195): goto _211 - case uint32(197): - goto _212 case uint32(196): + goto _212 + case uint32(197): goto _213 - case uint32(198): - goto _214 case uint32(199): + goto _214 + case uint32(198): goto _215 case uint32(200): goto _216 @@ -160287,23 +161905,23 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _226 case uint32(211): goto _227 - case uint32(213): - goto _228 case uint32(212): + goto _228 + case uint32(213): goto _229 - case uint32(214): - goto _230 case uint32(215): + goto _230 + case uint32(214): goto _231 - case uint32(219): - goto _232 case uint32(216): + goto _232 + case uint32(217): goto _233 - case uint32(218): - goto _234 case uint32(221): + goto _234 + case uint32(218): goto _235 - case uint32(222): + case uint32(220): goto _236 case uint32(223): goto _237 @@ -160317,35 +161935,35 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _241 case uint32(228): goto _242 - case uint32(233): + case uint32(229): goto _243 - case uint32(234): + case uint32(230): goto _244 - case uint32(241): + case uint32(235): goto _245 case uint32(236): goto _246 - case uint32(237): + case uint32(243): goto _247 - case uint32(280): - goto _248 case uint32(238): - goto _249 + goto _248 case uint32(239): + goto _249 + case uint32(282): goto _250 - case uint32(242): + case uint32(240): goto _251 - case uint32(243): + case uint32(241): goto _252 - case uint32(246): + case uint32(244): goto _253 - case uint32(247): + case uint32(245): goto _254 case uint32(248): goto _255 - case uint32(251): + case uint32(249): goto _256 - case uint32(252): + case uint32(250): goto _257 case uint32(253): goto _258 @@ -160353,9 +161971,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _259 case uint32(255): goto _260 - case uint32(258): + case uint32(256): goto _261 - case uint32(259): + case uint32(257): goto _262 case uint32(260): goto _263 @@ -160363,21 +161981,21 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _264 case uint32(262): goto _265 - case uint32(264): - goto _266 case uint32(263): + goto _266 + case uint32(264): goto _267 - case uint32(265): + case uint32(266): goto _268 - case uint32(285): + case uint32(265): goto _269 - case uint32(266): + case uint32(267): goto _270 - case uint32(286): + case uint32(287): goto _271 - case uint32(267): - goto _272 case uint32(268): + goto _272 + case uint32(288): goto _273 case uint32(269): goto _274 @@ -160401,17 +162019,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _283 case uint32(279): goto _284 - case uint32(281): + case uint32(280): goto _285 - case uint32(282): + case uint32(281): goto _286 case uint32(283): goto _287 case uint32(284): goto _288 - case uint32(287): + case uint32(285): goto _289 - case uint32(288): + case uint32(286): goto _290 case uint32(289): goto _291 @@ -160435,19 +162053,19 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _300 case uint32(299): goto _301 - case uint32(301): - goto _302 case uint32(300): + goto _302 + case uint32(301): goto _303 - case uint32(302): + case uint32(303): goto _304 - case uint32(304): + case uint32(302): goto _305 - case uint32(303): + case uint32(304): goto _306 - case uint32(305): - goto _307 case uint32(306): + goto _307 + case uint32(305): goto _308 case uint32(307): goto _309 @@ -160477,31 +162095,31 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _321 case uint32(320): goto _322 - case uint32(324): + case uint32(321): goto _323 case uint32(322): goto _324 - case uint32(325): - goto _325 case uint32(323): - goto _326 + goto _325 case uint32(327): + goto _326 + case uint32(325): goto _327 - case uint32(326): - goto _328 case uint32(328): + goto _328 + case uint32(326): goto _329 - case uint32(329): + case uint32(330): goto _330 - case uint32(331): + case uint32(329): goto _331 - case uint32(330): + case uint32(331): goto _332 case uint32(332): goto _333 - case uint32(333): - goto _334 case uint32(334): + goto _334 + case uint32(333): goto _335 case uint32(335): goto _336 @@ -160513,34 +162131,42 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _339 case uint32(339): goto _340 - default: + case uint32(340): goto _341 + case uint32(341): + goto _342 + case uint32(342): + goto _343 + case uint32(343): + goto _344 + default: + goto _345 } - goto _342 + goto _346 _1: ; /* explain ::= EXPLAIN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(1) } - goto _342 + goto _346 _2: ; /* explain ::= EXPLAIN QUERY PLAN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(2) } - goto _342 + goto _346 _3: ; /* cmdx ::= cmd */ _sqlite3FinishCoding(tls, pParse) - goto _342 + goto _346 _4: ; /* cmd ::= BEGIN transtype trans_opt */ _sqlite3BeginTransaction(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 + goto _346 _5: ; /* transtype ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*12 + 4)) = int32(TK_DEFERRED) - goto _342 + goto _346 _7: ; /* transtype ::= DEFERRED */ _6: @@ -160550,33 +162176,33 @@ _8: _9: ; *(*int32)(unsafe.Pointer(yymsp + 4)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 + goto _346 _11: ; /* cmd ::= COMMIT|END trans_opt */ _10: ; _sqlite3EndTransaction(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12))).Fmajor)) - goto _342 + goto _346 _12: ; /* cmd ::= SAVEPOINT nm */ _sqlite3Savepoint(tls, pParse, SAVEPOINT_BEGIN, yymsp+4) - goto _342 + goto _346 _13: ; /* cmd ::= RELEASE savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_RELEASE), yymsp+4) - goto _342 + goto _346 _14: ; /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_ROLLBACK), yymsp+4) - goto _342 + goto _346 _15: ; /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ _sqlite3StartTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, yymsp+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), 0, 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) - goto _342 + goto _346 _16: ; /* createkw ::= CREATE */ _disableLookaside(tls, pParse) - goto _342 + goto _346 _18: ; /* ifnotexists ::= */ _17: @@ -160594,56 +162220,56 @@ _23: _24: ; *(*int32)(unsafe.Pointer(yymsp + 1*12 + 4)) = 0 - goto _342 + goto _346 _25: ; /* ifnotexists ::= IF NOT EXISTS */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = int32(1) - goto _342 + goto _346 _26: ; /* temp ::= TEMP */ *(*int32)(unsafe.Pointer(yymsp + 4)) = libc.BoolInt32(int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0) - goto _342 + goto _346 _27: ; /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ _sqlite3EndTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, *(*Tu32)(unsafe.Pointer(yymsp + 4)), uintptr(0)) - goto _342 + goto _346 _28: ; /* create_table_args ::= AS select */ _sqlite3EndTable(tls, pParse, uintptr(0), uintptr(0), uint32(0), *(*uintptr)(unsafe.Pointer(yymsp + 4))) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _29: ; /* table_option_set ::= */ *(*Tu32)(unsafe.Pointer(yymsp + 1*12 + 4)) = uint32(0) - goto _342 + goto _346 _30: ; /* table_option_set ::= table_option_set COMMA table_option */ *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) | *(*Tu32)(unsafe.Pointer(yymsp + 4)) *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _31: ; /* table_option ::= WITHOUT nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 4)), __ccgo_ts+16694, int32(5)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 4)), __ccgo_ts+16781, int32(5)) == 0 { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) } else { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23358, libc.VaList(bp+80, *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23481, libc.VaList(bp+80, *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4)))) } - goto _342 + goto _346 _32: ; /* table_option ::= nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 4)), __ccgo_ts+16607, int32(6)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 4)), __ccgo_ts+16694, int32(6)) == 0 { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(TF_Strict) } else { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23358, libc.VaList(bp+80, *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23481, libc.VaList(bp+80, *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4)))) } *(*Tu32)(unsafe.Pointer(yymsp + 4)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _33: ; /* columnname ::= nm typetoken */ _sqlite3AddColumn(tls, pParse, *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*TToken)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _35: ; /* typetoken ::= */ _34: @@ -160652,52 +162278,52 @@ _36: ; *(*uint32)(unsafe.Pointer(yymsp + 1*12 + 4 + 4)) = uint32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) - goto _342 + goto _346 _37: ; /* typetoken ::= typename LP signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4 + 4)) = uint32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 4))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 4 + 4)))) - int32(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)))) - goto _342 + goto _346 _38: ; /* typetoken ::= typename LP signed COMMA signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4 + 4)) = uint32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 4))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 4 + 4)))) - int32(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)))) - goto _342 + goto _346 _39: ; /* typename ::= typename ID|STRING */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) = *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)) + uint32(int32(*(*uintptr)(unsafe.Pointer(yymsp + 4)))-int32(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))) - goto _342 + goto _346 _40: ; /* scanpt ::= */ _ = libc.Int32FromInt32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = yyLookaheadToken.Fz - goto _342 + goto _346 _41: ; /* scantok ::= */ _ = libc.Int32FromInt32(0) *(*TToken)(unsafe.Pointer(yymsp + 1*12 + 4)) = yyLookaheadToken - goto _342 + goto _346 _43: ; /* ccons ::= CONSTRAINT nm */ _42: ; (*TParse)(unsafe.Pointer(pParse)).FconstraintName = *(*TToken)(unsafe.Pointer(yymsp + 4)) - goto _342 + goto _346 _44: ; /* ccons ::= DEFAULT scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)))) - goto _342 + goto _346 _45: ; /* ccons ::= DEFAULT LP expr RP */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))+uintptr(1), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _46: ; /* ccons ::= DEFAULT PLUS scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)))) - goto _342 + goto _346 _47: ; /* ccons ::= DEFAULT MINUS scantok term */ p = _sqlite3PExpr(tls, pParse, int32(TK_UMINUS), *(*uintptr)(unsafe.Pointer(yymsp + 4)), uintptr(0)) _sqlite3AddDefaultValue(tls, pParse, p, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)))) - goto _342 + goto _346 _48: ; /* ccons ::= DEFAULT scantok ID|INDEXED */ p1 = _tokenExpr(tls, pParse, int32(TK_STRING), *(*TToken)(unsafe.Pointer(yymsp + 4))) @@ -160705,99 +162331,99 @@ _48: _sqlite3ExprIdToTrueFalse(tls, p1) } _sqlite3AddDefaultValue(tls, pParse, p1, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 4 + 4)))) - goto _342 + goto _346 _49: ; /* ccons ::= NOT NULL onconf */ _sqlite3AddNotNull(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _50: ; /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ _sqlite3AddPrimaryKey(tls, pParse, uintptr(0), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) - goto _342 + goto _346 _51: ; /* ccons ::= UNIQUE onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), *(*int32)(unsafe.Pointer(yymsp + 4)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _52: ; /* ccons ::= CHECK LP expr RP */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _53: ; /* ccons ::= REFERENCES nm eidlist_opt refargs */ _sqlite3CreateForeignKey(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _54: ; /* ccons ::= defer_subclause */ _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _55: ; /* ccons ::= COLLATE ID|STRING */ _sqlite3AddCollateType(tls, pParse, yymsp+4) - goto _342 + goto _346 _56: ; /* generated ::= LP expr RP */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uintptr(0)) - goto _342 + goto _346 _57: ; /* generated ::= LP expr RP ID */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), yymsp+4) - goto _342 + goto _346 _58: ; /* autoinc ::= AUTOINCR */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(1) - goto _342 + goto _346 _59: ; /* refargs ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*12 + 4)) = libc.Int32FromInt32(OE_None) * libc.Int32FromInt32(0x0101) /* EV: R-19803-45884 */ - goto _342 + goto _346 _60: ; /* refargs ::= refargs refarg */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) & ^*(*int32)(unsafe.Pointer(yymsp + 4 + 4)) | *(*int32)(unsafe.Pointer(yymsp + 4)) - goto _342 + goto _346 _61: ; /* refarg ::= MATCH nm */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) = 0x000000 - goto _342 + goto _346 _62: ; /* refarg ::= ON INSERT refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4 + 4)) = 0x000000 - goto _342 + goto _346 _63: ; /* refarg ::= ON DELETE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*int32)(unsafe.Pointer(yymsp + 4)) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4 + 4)) = int32(0x0000ff) - goto _342 + goto _346 _64: ; /* refarg ::= ON UPDATE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*int32)(unsafe.Pointer(yymsp + 4)) << int32(8) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4 + 4)) = int32(0x00ff00) - goto _342 + goto _346 _65: ; /* refact ::= SET NULL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = int32(OE_SetNull) /* EV: R-33326-45252 */ - goto _342 + goto _346 _66: ; /* refact ::= SET DEFAULT */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = int32(OE_SetDflt) /* EV: R-33326-45252 */ - goto _342 + goto _346 _67: ; /* refact ::= CASCADE */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(OE_Cascade) /* EV: R-33326-45252 */ - goto _342 + goto _346 _68: ; /* refact ::= RESTRICT */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(OE_Restrict) /* EV: R-33326-45252 */ - goto _342 + goto _346 _69: ; /* refact ::= NO ACTION */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = OE_None /* EV: R-33326-45252 */ - goto _342 + goto _346 _70: ; /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = 0 - goto _342 + goto _346 _72: ; /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ _71: @@ -160805,7 +162431,7 @@ _71: _73: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*int32)(unsafe.Pointer(yymsp + 4)) - goto _342 + goto _346 _75: ; /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ _74: @@ -160817,64 +162443,64 @@ _77: _78: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = int32(1) - goto _342 + goto _346 _79: ; /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = 0 - goto _342 + goto _346 _80: ; /* tconscomma ::= COMMA */ (*TParse)(unsafe.Pointer(pParse)).FconstraintName.Fn = uint32(0) - goto _342 + goto _346 _81: ; /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ _sqlite3AddPrimaryKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), 0) - goto _342 + goto _346 _82: ; /* tcons ::= UNIQUE LP sortlist RP onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + 4)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _83: ; /* tcons ::= CHECK LP expr RP onconf */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 + goto _346 _84: ; /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ _sqlite3CreateForeignKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _86: ; /* onconf ::= */ _85: ; *(*int32)(unsafe.Pointer(yymsp + 1*12 + 4)) = int32(OE_Default) - goto _342 + goto _346 _87: ; /* onconf ::= ON CONFLICT resolvetype */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*int32)(unsafe.Pointer(yymsp + 4)) - goto _342 + goto _346 _88: ; /* resolvetype ::= IGNORE */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(OE_Ignore) - goto _342 + goto _346 _90: ; /* resolvetype ::= REPLACE */ _89: ; *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(OE_Replace) - goto _342 + goto _346 _91: ; /* cmd ::= DROP TABLE ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 + goto _346 _92: ; /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ _sqlite3CreateView(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(8))*12+4, yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4))) - goto _342 + goto _346 _93: ; /* cmd ::= DROP VIEW ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), int32(1), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 + goto _346 _94: ; /* cmd ::= select */ *(*TSelectDest)(unsafe.Pointer(bp + 8)) = TSelectDest{ @@ -160882,22 +162508,22 @@ _94: } _sqlite3Select(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), bp+8) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _95: ; /* select ::= WITH wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 + goto _346 _96: ; /* select ::= WITH RECURSIVE wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 + goto _346 _97: ; /* select ::= selectnowith */ p2 = *(*uintptr)(unsafe.Pointer(yymsp + 4)) if p2 != 0 { _parserDoubleLinkSelect(tls, pParse, p2) } - goto _342 + goto _346 _98: ; /* selectnowith ::= selectnowith multiselect_op oneselect */ pRhs = *(*uintptr)(unsafe.Pointer(yymsp + 4)) @@ -160922,21 +162548,21 @@ _98: _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pLhs) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = pRhs - goto _342 + goto _346 _100: ; /* multiselect_op ::= UNION */ _99: ; *(*int32)(unsafe.Pointer(yymsp + 4)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-OP*/ - goto _342 + goto _346 _101: ; /* multiselect_op ::= UNION ALL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = int32(TK_ALL) - goto _342 + goto _346 _102: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4))), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 + goto _346 _103: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(9))*12 + 4)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4))), *(*uintptr)(unsafe.Pointer(yymsp + 4))) @@ -160945,116 +162571,111 @@ _103: } else { _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) } - goto _342 + goto _346 _104: ; /* values ::= VALUES LP nexprlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) - goto _342 + goto _346 _105: - ; /* values ::= values COMMA LP nexprlist RP */ - pLeft = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) - pRight = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(libc.Int32FromInt32(SF_Values)|libc.Int32FromInt32(SF_MultiValue)), uintptr(0)) - if pLeft != 0 { - *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) - } - if pRight != 0 { - (*TSelect)(unsafe.Pointer(pRight)).Fop = uint8(TK_ALL) - (*TSelect)(unsafe.Pointer(pRight)).FpPrior = pLeft - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = pRight - } else { - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = pLeft - } - goto _342 + ; /* oneselect ::= mvalues */ + _sqlite3MultiValuesEnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4))) + goto _346 +_107: + ; /* mvalues ::= values COMMA LP nexprlist RP */ _106: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3MultiValues(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) + goto _346 +_108: ; /* distinct ::= DISTINCT */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(SF_Distinct) - goto _342 -_107: + goto _346 +_109: ; /* distinct ::= ALL */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(SF_All) - goto _342 -_109: + goto _346 +_111: ; /* sclp ::= */ -_108: - ; _110: ; -_111: - ; _112: ; _113: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) - goto _342 _114: + ; +_115: + ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) + goto _346 +_116: ; /* selcollist ::= sclp scanpt expr scanpt as */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) if *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)) > uint32(0) { _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), yymsp+4, int32(1)) } _sqlite3ExprListSetSpan(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 -_115: + goto _346 +_117: ; /* selcollist ::= sclp scanpt STAR */ p3 = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_ASTERISK), uintptr(0)) _sqlite3ExprSetErrorOffset(tls, p3, int32(*(*uintptr)(unsafe.Pointer(yymsp + 4)))-int32((*TParse)(unsafe.Pointer(pParse)).FzTail)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), p3) - goto _342 -_116: + goto _346 +_118: ; /* selcollist ::= sclp scanpt nm DOT STAR */ - pRight1 = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) - _sqlite3ExprSetErrorOffset(tls, pRight1, int32(*(*uintptr)(unsafe.Pointer(yymsp + 4)))-int32((*TParse)(unsafe.Pointer(pParse)).FzTail)) - pLeft1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) - pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft1, pRight1) + pRight = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) + _sqlite3ExprSetErrorOffset(tls, pRight, int32(*(*uintptr)(unsafe.Pointer(yymsp + 4)))-int32((*TParse)(unsafe.Pointer(pParse)).FzTail)) + pLeft = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) + pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft, pRight) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), pDot) - goto _342 -_118: + goto _346 +_120: ; /* as ::= AS nm */ -_117: - ; _119: ; -_120: +_121: ; - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*TToken)(unsafe.Pointer(yymsp + 4)) - goto _342 _122: + ; + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*TToken)(unsafe.Pointer(yymsp + 4)) + goto _346 +_124: ; /* from ::= */ -_121: +_123: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) - goto _342 -_123: + goto _346 +_125: ; /* from ::= FROM seltablist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) _sqlite3SrcListShiftJoinType(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 -_124: + goto _346 +_126: ; /* stl_prefix ::= seltablist joinop */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) != 0 && (*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))).FnSrc > 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) + 8 + uintptr((*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))).FnSrc-int32(1))*72))).Ffg.Fjointype = uint8(*(*int32)(unsafe.Pointer(yymsp + 4))) } - goto _342 -_125: + goto _346 +_127: ; /* seltablist ::= stl_prefix nm dbnm as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, uintptr(0), yymsp+4) - goto _342 -_126: + goto _346 +_128: ; /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, uintptr(0), yymsp+4) _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(1))*12+4) - goto _342 -_127: + goto _346 +_129: ; /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(6))*12+4, yymsp+uintptr(-libc.Int32FromInt32(5))*12+4, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, uintptr(0), yymsp+4) _sqlite3SrcListFuncArgs(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4))) - goto _342 -_128: + goto _346 +_130: ; /* seltablist ::= stl_prefix LP select RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), yymsp+4) - goto _342 -_129: + goto _346 +_131: ; /* seltablist ::= stl_prefix LP seltablist RP as on_using */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) == uintptr(0) && *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) == uint32(0) && *(*uintptr)(unsafe.Pointer(yymsp + 4)) == uintptr(0) && *(*uintptr)(unsafe.Pointer(yymsp + 4 + 4)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) @@ -161076,9 +162697,9 @@ _129: libc.SetBitFieldPtr16Uint32(pOld+36+4, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pNew+36+4, libc.Uint32FromInt32(1), 2, 0x4) } - v343 = libc.UintptrFromInt32(0) - (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v343 - (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v343 + v347 = libc.UintptrFromInt32(0) + (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v347 + (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v347 (*TSrcItem)(unsafe.Pointer(pOld)).FpSelect = uintptr(0) } _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4))) @@ -161088,189 +162709,189 @@ _129: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, pSubquery, yymsp+4) } } - goto _342 -_131: + goto _346 +_133: ; /* dbnm ::= */ -_130: +_132: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + 1*12 + 4 + 4)) = uint32(0) - goto _342 -_132: + goto _346 +_134: ; /* fullname ::= nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+4, uintptr(0)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+4) } *(*uintptr)(unsafe.Pointer(yymsp + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_133: + goto _346 +_135: ; /* fullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+4) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+4) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_134: + goto _346 +_136: ; /* xfullname ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 4)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+4, uintptr(0)) /*A-overwrites-X*/ - goto _342 -_135: + goto _346 +_137: ; /* xfullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+4) /*A-overwrites-X*/ - goto _342 -_136: + goto _346 +_138: ; /* xfullname ::= nm DOT nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+4) } - goto _342 -_137: + goto _346 +_139: ; /* xfullname ::= nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, uintptr(0)) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+4) } - goto _342 -_138: + goto _346 +_140: ; /* joinop ::= COMMA|JOIN */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(JT_INNER) - goto _342 -_139: + goto _346 +_141: ; /* joinop ::= JOIN_KW JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, uintptr(0), uintptr(0)) /*X-overwrites-A*/ - goto _342 -_140: + goto _346 +_142: ; /* joinop ::= JOIN_KW nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, uintptr(0)) /*X-overwrites-A*/ - goto _342 -_141: + goto _346 +_143: ; /* joinop ::= JOIN_KW nm nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4) /*X-overwrites-A*/ - goto _342 -_142: + goto _346 +_144: ; /* on_using ::= ON expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) = uintptr(0) - goto _342 -_143: + goto _346 +_145: ; /* on_using ::= USING LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) - goto _342 -_144: + goto _346 +_146: ; /* on_using ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4 + 4)) = uintptr(0) - goto _342 -_145: + goto _346 +_147: ; /* indexed_by ::= INDEXED BY nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*TToken)(unsafe.Pointer(yymsp + 4)) - goto _342 -_146: + goto _346 +_148: ; /* indexed_by ::= NOT INDEXED */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) = uint32(1) - goto _342 -_148: + goto _346 +_150: ; /* orderby_opt ::= ORDER BY sortlist */ -_147: +_149: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) - goto _342 -_149: + goto _346 +_151: ; /* sortlist ::= sortlist COMMA expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + 4))) - goto _342 -_150: + goto _346 +_152: ; /* sortlist ::= expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) /*A-overwrites-Y*/ _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + 4))) - goto _342 -_151: + goto _346 +_153: ; /* sortorder ::= ASC */ *(*int32)(unsafe.Pointer(yymsp + 4)) = SQLITE_SO_ASC - goto _342 -_152: + goto _346 +_154: ; /* sortorder ::= DESC */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(SQLITE_SO_DESC) - goto _342 -_154: + goto _346 +_156: ; /* sortorder ::= */ -_153: +_155: ; *(*int32)(unsafe.Pointer(yymsp + 1*12 + 4)) = -int32(1) - goto _342 -_155: + goto _346 +_157: ; /* nulls ::= NULLS FIRST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = SQLITE_SO_ASC - goto _342 -_156: + goto _346 +_158: ; /* nulls ::= NULLS LAST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = int32(SQLITE_SO_DESC) - goto _342 -_158: + goto _346 +_160: ; /* having_opt ::= */ -_157: - ; _159: ; -_160: - ; _161: ; _162: ; _163: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) - goto _342 -_165: - ; /* having_opt ::= HAVING expr */ _164: ; -_166: +_165: ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) + goto _346 _167: + ; /* having_opt ::= HAVING expr */ +_166: ; _168: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) - goto _342 _169: + ; +_170: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) + goto _346 +_171: ; /* limit_opt ::= LIMIT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 4)), uintptr(0)) - goto _342 -_170: + goto _346 +_172: ; /* limit_opt ::= LIMIT expr OFFSET expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_171: + goto _346 +_173: ; /* limit_opt ::= LIMIT expr COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) - goto _342 -_172: + goto _346 +_174: ; /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(1))*12+4) _sqlite3DeleteFrom(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4)), uintptr(0), uintptr(0)) - goto _342 -_173: + goto _346 +_175: ; /* where_opt_ret ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = uintptr(0) - goto _342 -_174: + goto _346 +_176: ; /* where_opt_ret ::= WHERE expr RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) - goto _342 -_175: + goto _346 +_177: ; /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(4))*12+4) - _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), __ccgo_ts+23385) + _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), __ccgo_ts+23508) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) != 0 { pFromClause = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) if (*TSrcList)(unsafe.Pointer(pFromClause)).FnSrc > int32(1) { @@ -161282,95 +162903,95 @@ _175: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = _sqlite3SrcListAppendList(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), pFromClause) } _sqlite3Update(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_176: + goto _346 +_178: ; /* setlist ::= setlist COMMA nm EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, int32(1)) - goto _342 -_177: + goto _346 +_179: ; /* setlist ::= setlist COMMA LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)) = _sqlite3ExprListAppendVector(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_178: + goto _346 +_180: ; /* setlist ::= nm EQ expr */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 4))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, int32(1)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_179: + goto _346 +_181: ; /* setlist ::= LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3ExprListAppendVector(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_180: + goto _346 +_182: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_181: + goto _346 +_183: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)), uintptr(0)) - goto _342 -_182: + goto _346 +_184: ; /* upsert ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) - goto _342 -_183: + goto _346 +_185: ; /* upsert ::= RETURNING selcollist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = uintptr(0) _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_184: + goto _346 +_186: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(11))*12 + 4)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_185: + goto _346 +_187: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_186: + goto _346 +_188: ; /* upsert ::= ON CONFLICT DO NOTHING returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_187: + goto _346 +_189: ; /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uintptr(0)) - goto _342 -_188: + goto _346 +_190: ; /* returning ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_189: + goto _346 +_191: ; /* idlist_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) - goto _342 -_190: + goto _346 +_192: ; /* idlist_opt ::= LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) - goto _342 -_191: + goto _346 +_193: ; /* idlist ::= idlist COMMA nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3IdListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), yymsp+4) - goto _342 -_192: + goto _346 +_194: ; /* idlist ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 4)) = _sqlite3IdListAppend(tls, pParse, uintptr(0), yymsp+4) /*A-overwrites-Y*/ - goto _342 -_193: + goto _346 +_195: ; /* expr ::= LP expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) - goto _342 -_194: + goto _346 +_196: ; /* expr ::= ID|INDEXED|JOIN_KW */ *(*uintptr)(unsafe.Pointer(yymsp + 4)) = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 4))) /*A-overwrites-X*/ - goto _342 -_195: + goto _346 +_197: ; /* expr ::= nm DOT nm */ temp1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) temp2 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp1, temp2) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_196: + goto _346 +_198: ; /* expr ::= nm DOT nm DOT nm */ temp11 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4))) temp21 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) @@ -161381,22 +163002,22 @@ _196: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp11, temp4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_198: + goto _346 +_200: ; /* term ::= NULL|FLOAT|BLOB */ -_197: +_199: ; *(*uintptr)(unsafe.Pointer(yymsp + 4)) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 4))) /*A-overwrites-X*/ - goto _342 -_199: + goto _346 +_201: ; /* term ::= INTEGER */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), yymsp+4, int32(1)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 36)) = int32(*(*uintptr)(unsafe.Pointer(yymsp + 4))) - int32((*TParse)(unsafe.Pointer(pParse)).FzTail) } *(*uintptr)(unsafe.Pointer(yymsp + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_200: + goto _346 +_202: ; /* expr ::= VARIABLE */ if !(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 4))))) == int32('#') && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 4)) + 1))])&int32(0x04) != 0) { n = *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)) @@ -161409,7 +163030,7 @@ _200: *(*TToken)(unsafe.Pointer(bp + 56)) = *(*TToken)(unsafe.Pointer(yymsp + 4)) /*A-overwrites-X*/ _ = libc.Int32FromInt32(0) if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23394, libc.VaList(bp+80, bp+56)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23517, libc.VaList(bp+80, bp+56)) *(*uintptr)(unsafe.Pointer(yymsp + 4)) = uintptr(0) } else { *(*uintptr)(unsafe.Pointer(yymsp + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_REGISTER), uintptr(0), uintptr(0)) @@ -161418,57 +163039,57 @@ _200: } } } - goto _342 -_201: + goto _346 +_203: ; /* expr ::= expr COLLATE ID|STRING */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3ExprAddCollateToken(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), yymsp+4, int32(1)) - goto _342 -_202: + goto _346 +_204: ; /* expr ::= CAST LP expr AS typetoken RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_CAST), yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, int32(1)) _sqlite3ExprAttachSubtrees(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), uintptr(0)) - goto _342 -_203: + goto _346 +_205: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_204: + goto _346 +_206: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(7))*12+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_205: + goto _346 +_207: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_206: + goto _346 +_208: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(5))*12+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_207: + goto _346 +_209: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(8))*12+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 4))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_208: + goto _346 +_210: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, 0) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_209: + goto _346 +_211: ; /* term ::= CTIME_KW */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+4, 0) *(*uintptr)(unsafe.Pointer(yymsp + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_210: + goto _346 +_212: ; /* expr ::= LP nexprlist COMMA expr RP */ pList = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_VECTOR), uintptr(0), uintptr(0)) @@ -161480,33 +163101,33 @@ _210: } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) } - goto _342 -_211: + goto _346 +_213: ; /* expr ::= expr AND expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3ExprAnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_213: + goto _346 +_215: ; /* expr ::= expr OR expr */ -_212: - ; _214: ; -_215: - ; _216: ; _217: ; _218: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 _219: + ; +_220: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) + goto _346 +_221: ; /* likeop ::= NOT LIKE_KW|MATCH */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*TToken)(unsafe.Pointer(yymsp + 4)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) |= uint32(0x80000000) /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/ - goto _342 -_220: + goto _346 +_222: ; /* expr ::= expr likeop expr */ bNot = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) &= uint32(0x7fffffff) @@ -161519,8 +163140,8 @@ _220: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_221: + goto _346 +_223: ; /* expr ::= expr likeop expr ESCAPE expr */ bNot1 = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4 + 4)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4 + 4)) &= uint32(0x7fffffff) @@ -161534,65 +163155,69 @@ _221: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_222: + goto _346 +_224: ; /* expr ::= expr ISNULL|NOTNULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uintptr(0)) - goto _342 -_223: + goto _346 +_225: ; /* expr ::= expr NOT NULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_NOTNULL), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), uintptr(0)) - goto _342 -_224: + goto _346 +_226: ; /* expr ::= expr IS expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), int32(TK_ISNULL)) - goto _342 -_225: + goto _346 +_227: ; /* expr ::= expr IS NOT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), int32(TK_NOTNULL)) - goto _342 -_226: + goto _346 +_228: ; /* expr ::= expr IS NOT DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), int32(TK_ISNULL)) - goto _342 -_227: + goto _346 +_229: ; /* expr ::= expr IS DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), int32(TK_NOTNULL)) - goto _342 -_229: + goto _346 +_231: ; /* expr ::= NOT expr */ -_228: +_230: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + 4)), uintptr(0)) /*A-overwrites-B*/ - goto _342 -_230: + goto _346 +_232: ; /* expr ::= PLUS|MINUS expr */ - if int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12))).Fmajor) == int32(TK_PLUS) { - v344 = int32(TK_UPLUS) + p4 = *(*uintptr)(unsafe.Pointer(yymsp + 4)) + op = uint8(int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12))).Fmajor) + (libc.Int32FromInt32(TK_UPLUS) - libc.Int32FromInt32(TK_PLUS))) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if p4 != 0 && int32((*TExpr)(unsafe.Pointer(p4)).Fop) == int32(TK_UPLUS) { + (*TExpr)(unsafe.Pointer(p4)).Fop = op + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = p4 } else { - v344 = int32(TK_UMINUS) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(op), p4, uintptr(0)) + /*A-overwrites-B*/ } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = _sqlite3PExpr(tls, pParse, v344, *(*uintptr)(unsafe.Pointer(yymsp + 4)), uintptr(0)) - /*A-overwrites-B*/ - goto _342 -_231: + goto _346 +_233: ; /* expr ::= expr PTR expr */ pList3 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) pList3 = _sqlite3ExprListAppend(tls, pParse, pList3, *(*uintptr)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, pList3, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_233: + goto _346 +_235: ; /* between_op ::= BETWEEN */ -_232: +_234: ; *(*int32)(unsafe.Pointer(yymsp + 4)) = 0 - goto _342 -_234: + goto _346 +_236: ; /* expr ::= expr between_op expr AND expr */ pList4 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) pList4 = _sqlite3ExprListAppend(tls, pParse, pList4, *(*uintptr)(unsafe.Pointer(yymsp + 4))) @@ -161605,8 +163230,8 @@ _234: if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), uintptr(0)) } - goto _342 -_235: + goto _346 +_237: ; /* expr ::= expr in_op LP exprlist RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) == uintptr(0) { /* Expressions of the form @@ -161619,17 +163244,17 @@ _235: */ _sqlite3ExprUnmapAndDelete(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) != 0 { - v345 = __ccgo_ts + 7886 + v348 = __ccgo_ts + 8011 } else { - v345 = __ccgo_ts + 7891 + v348 = __ccgo_ts + 8016 } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v345) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v348) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) != 0 { _sqlite3ExprIdToTrueFalse(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4))) } } else { pRHS = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) + 8))).FpExpr - if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)))).Fop) != int32(TK_VECTOR) { + if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pParse, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)))).Fop) != int32(TK_VECTOR) { (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) + 8))).FpExpr = uintptr(0) _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) pRHS = _sqlite3PExpr(tls, pParse, int32(TK_UPLUS), pRHS, uintptr(0)) @@ -161663,463 +163288,467 @@ _235: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), uintptr(0)) } } - goto _342 -_236: + goto _346 +_238: ; /* expr ::= LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_SELECT), uintptr(0), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 -_237: + goto _346 +_239: ; /* expr ::= expr in_op LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), uintptr(0)) } - goto _342 -_238: + goto _346 +_240: ; /* expr ::= expr in_op nm dbnm paren_exprlist */ pSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4) pSelect = _sqlite3SelectNew(tls, pParse, uintptr(0), pSrc, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + 4)) != 0 { if pSelect != 0 { - v346 = pSrc + v349 = pSrc } else { - v346 = uintptr(0) + v349 = uintptr(0) } - _sqlite3SrcListFuncArgs(tls, pParse, v346, *(*uintptr)(unsafe.Pointer(yymsp + 4))) + _sqlite3SrcListFuncArgs(tls, pParse, v349, *(*uintptr)(unsafe.Pointer(yymsp + 4))) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), pSelect) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), uintptr(0)) } - goto _342 -_239: + goto _346 +_241: ; /* expr ::= EXISTS LP select RP */ - v347 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = v347 - p4 = v347 - _sqlite3PExprAddSelect(tls, pParse, p4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 -_240: + v350 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = v350 + p5 = v350 + _sqlite3PExprAddSelect(tls, pParse, p5, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) + goto _346 +_242: ; /* expr ::= CASE case_operand case_exprlist case_else END */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_CASE), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) != 0 { if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) != 0 { - v348 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) + v351 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) } else { - v348 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) + v351 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) } - *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) + 20)) = v348 + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) + 20)) = v351 _sqlite3ExprSetHeightAndFlags(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4))) } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) } - goto _342 -_241: + goto _346 +_243: ; /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_242: + goto _346 +_244: ; /* case_exprlist ::= WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_243: + goto _346 +_245: ; /* nexprlist ::= nexprlist COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_244: + goto _346 +_246: ; /* nexprlist ::= expr */ *(*uintptr)(unsafe.Pointer(yymsp + 4)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 4))) /*A-overwrites-Y*/ - goto _342 -_246: + goto _346 +_248: ; /* paren_exprlist ::= LP exprlist RP */ -_245: +_247: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) - goto _342 -_247: + goto _346 +_249: ; /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ _sqlite3CreateIndex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*12+4, yymsp+uintptr(-libc.Int32FromInt32(6))*12+4, _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, uintptr(0)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(11))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + 4)), SQLITE_SO_ASC, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4)), uint8(SQLITE_IDXTYPE_APPDEF)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && (*TParse)(unsafe.Pointer(pParse)).FpNewIndex != 0 { _sqlite3RenameTokenMap(tls, pParse, (*TIndex)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpNewIndex)).FzName, yymsp+uintptr(-libc.Int32FromInt32(4))*12+4) } - goto _342 -_249: + goto _346 +_251: ; /* uniqueflag ::= UNIQUE */ -_248: +_250: ; *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(OE_Abort) - goto _342 -_250: + goto _346 +_252: ; /* uniqueflag ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*12 + 4)) = OE_None - goto _342 -_251: + goto _346 +_253: ; /* eidlist ::= eidlist COMMA nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _parserAddExprIdListTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + 4))) - goto _342 -_252: + goto _346 +_254: ; /* eidlist ::= nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _parserAddExprIdListTerm(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + 4))) /*A-overwrites-Y*/ - goto _342 -_253: + goto _346 +_255: ; /* cmd ::= DROP INDEX ifexists fullname */ _sqlite3DropIndex(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 -_254: + goto _346 +_256: ; /* cmd ::= VACUUM vinto */ _sqlite3Vacuum(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_255: + goto _346 +_257: ; /* cmd ::= VACUUM nm vinto */ _sqlite3Vacuum(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_256: + goto _346 +_258: ; /* cmd ::= PRAGMA nm dbnm */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, yymsp+4, uintptr(0), 0) - goto _342 -_257: + goto _346 +_259: ; /* cmd ::= PRAGMA nm dbnm EQ nmnum */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+4, 0) - goto _342 -_258: + goto _346 +_260: ; /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, 0) - goto _342 -_259: + goto _346 +_261: ; /* cmd ::= PRAGMA nm dbnm EQ minus_num */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+4, int32(1)) - goto _342 -_260: + goto _346 +_262: ; /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, int32(1)) - goto _342 -_261: + goto _346 +_263: ; /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ (*(*TToken)(unsafe.Pointer(bp + 64))).Fz = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) (*(*TToken)(unsafe.Pointer(bp + 64))).Fn = uint32(int32(*(*uintptr)(unsafe.Pointer(yymsp + 4)))-int32(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)))) + *(*uint32)(unsafe.Pointer(yymsp + 4 + 4)) _sqlite3FinishTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), bp+64) - goto _342 -_262: + goto _346 +_264: ; /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ _sqlite3BeginTrigger(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*12+4, yymsp+uintptr(-libc.Int32FromInt32(6))*12+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4))) if *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4 + 4)) == uint32(0) { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)) } else { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4)) } - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*12 + 4)) = v349 /*A-overwrites-T*/ - goto _342 -_263: + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*12 + 4)) = v352 /*A-overwrites-T*/ + goto _346 +_265: ; /* trigger_time ::= BEFORE|AFTER */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_264: + goto _346 +_266: ; /* trigger_time ::= INSTEAD OF */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = int32(TK_INSTEAD) - goto _342 -_265: + goto _346 +_267: ; /* trigger_time ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*12 + 4)) = int32(TK_BEFORE) - goto _342 -_267: + goto _346 +_269: ; /* trigger_event ::= DELETE|INSERT */ -_266: +_268: ; *(*int32)(unsafe.Pointer(yymsp + 4)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ *(*uintptr)(unsafe.Pointer(yymsp + 4 + 4)) = uintptr(0) - goto _342 -_268: + goto _346 +_270: ; /* trigger_event ::= UPDATE OF idlist */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = int32(TK_UPDATE) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) - goto _342 -_270: + goto _346 +_272: ; /* when_clause ::= */ -_269: +_271: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = uintptr(0) - goto _342 -_272: + goto _346 +_274: ; /* when_clause ::= WHEN expr */ -_271: +_273: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) - goto _342 -_273: + goto _346 +_275: ; /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ _ = libc.Int32FromInt32(0) (*TTriggerStep)(unsafe.Pointer((*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)))).FpLast)).FpNext = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) - goto _342 -_274: + goto _346 +_276: ; /* trigger_cmd_list ::= trigger_cmd SEMI */ _ = libc.Int32FromInt32(0) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) - goto _342 -_275: + goto _346 +_277: ; /* trnm ::= nm DOT nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*TToken)(unsafe.Pointer(yymsp + 4)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23418, 0) - goto _342 -_276: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23541, 0) + goto _346 +_278: ; /* tridxby ::= INDEXED BY nm */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23513, 0) - goto _342 -_277: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23636, 0) + goto _346 +_279: ; /* tridxby ::= NOT INDEXED */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23597, 0) - goto _342 -_278: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23720, 0) + goto _346 +_280: ; /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerUpdateStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(6))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_279: + goto _346 +_281: ; /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) /*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*12 + 4))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) /*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_280: + goto _346 +_282: ; /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerDeleteStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_281: + goto _346 +_283: ; /* trigger_cmd ::= scanpt select scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_282: + goto _346 +_284: ; /* expr ::= RAISE LP IGNORE RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3PExpr(tls, pParse, int32(TK_RAISE), uintptr(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)))).FaffExpr = uint8(OE_Ignore) } - goto _342 -_283: + goto _346 +_285: ; /* expr ::= RAISE LP raisetype COMMA nm RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_RAISE), yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, int32(1)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)))).FaffExpr = uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4))) } - goto _342 -_284: + goto _346 +_286: ; /* raisetype ::= ROLLBACK */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(OE_Rollback) - goto _342 -_285: + goto _346 +_287: ; /* raisetype ::= FAIL */ *(*int32)(unsafe.Pointer(yymsp + 4)) = int32(OE_Fail) - goto _342 -_286: + goto _346 +_288: ; /* cmd ::= DROP TRIGGER ifexists fullname */ _sqlite3DropTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4))) - goto _342 -_287: + goto _346 +_289: ; /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ _sqlite3Attach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_288: + goto _346 +_290: ; /* cmd ::= DETACH database_kw_opt expr */ _sqlite3Detach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_289: + goto _346 +_291: ; /* cmd ::= REINDEX */ _sqlite3Reindex(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_290: + goto _346 +_292: ; /* cmd ::= REINDEX nm dbnm */ _sqlite3Reindex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, yymsp+4) - goto _342 -_291: + goto _346 +_293: ; /* cmd ::= ANALYZE */ _sqlite3Analyze(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_292: + goto _346 +_294: ; /* cmd ::= ANALYZE nm dbnm */ _sqlite3Analyze(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4, yymsp+4) - goto _342 -_293: + goto _346 +_295: ; /* cmd ::= ALTER TABLE fullname RENAME TO nm */ _sqlite3AlterRenameTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), yymsp+4) - goto _342 -_294: + goto _346 +_296: ; /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)) = uint32(int32((*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fz)-int32(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))) + (*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fn _sqlite3AlterFinishAddColumn(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*12+4) - goto _342 -_295: + goto _346 +_297: ; /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ _sqlite3AlterDropColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), yymsp+4) - goto _342 -_296: + goto _346 +_298: ; /* add_column_fullname ::= fullname */ _disableLookaside(tls, pParse) _sqlite3AlterBeginAddColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_297: + goto _346 +_299: ; /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ _sqlite3AlterRenameColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+4) - goto _342 -_298: + goto _346 +_300: ; /* cmd ::= create_vtab */ _sqlite3VtabFinishParse(tls, pParse, uintptr(0)) - goto _342 -_299: + goto _346 +_301: ; /* cmd ::= create_vtab LP vtabarglist RP */ _sqlite3VtabFinishParse(tls, pParse, yymsp+4) - goto _342 -_300: + goto _346 +_302: ; /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ _sqlite3VtabBeginParse(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*12+4, yymsp+uintptr(-libc.Int32FromInt32(2))*12+4, yymsp+4, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4))) - goto _342 -_301: + goto _346 +_303: ; /* vtabarg ::= */ _sqlite3VtabArgInit(tls, pParse) - goto _342 -_303: + goto _346 +_305: ; /* vtabargtoken ::= ANY */ -_302: - ; _304: ; - _sqlite3VtabArgExtend(tls, pParse, yymsp+4) - goto _342 _306: + ; + _sqlite3VtabArgExtend(tls, pParse, yymsp+4) + goto _346 +_308: ; /* with ::= WITH wqlist */ -_305: +_307: ; _sqlite3WithPush(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), uint8(1)) - goto _342 -_307: + goto _346 +_309: ; /* wqas ::= AS */ *(*Tu8)(unsafe.Pointer(yymsp + 4)) = uint8(M10d_Any) - goto _342 -_308: + goto _346 +_310: ; /* wqas ::= AS MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = uint8(M10d_Yes) - goto _342 -_309: + goto _346 +_311: ; /* wqas ::= AS NOT MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = uint8(M10d_No) - goto _342 -_310: - ; /* wqitem ::= nm eidlist_opt wqas LP select RP */ + goto _346 +_312: + ; /* wqitem ::= withnm eidlist_opt wqas LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = _sqlite3CteNew(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(5))*12+4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4))) /*A-overwrites-X*/ - goto _342 -_311: + goto _346 +_313: + ; /* withnm ::= nm */ + (*TParse)(unsafe.Pointer(pParse)).FbHasWith = uint8(1) + goto _346 +_314: ; /* wqlist ::= wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + 4)) = _sqlite3WithAdd(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 4))) /*A-overwrites-X*/ - goto _342 -_312: + goto _346 +_315: ; /* wqlist ::= wqlist COMMA wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = _sqlite3WithAdd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + 4))) - goto _342 -_313: + goto _346 +_316: ; /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ _ = libc.Int32FromInt32(0) _sqlite3WindowChain(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4))) (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 4)))).FpNextWin = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_314: + goto _346 +_317: ; /* windowdefn ::= nm AS LP window RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)), uint64(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4 + 4)))) } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_315: + goto _346 +_318: ; /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uintptr(0)) - goto _342 -_316: + goto _346 +_319: ; /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(5))*12+4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_317: + goto _346 +_320: ; /* window ::= ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), uintptr(0)) - goto _342 -_318: + goto _346 +_321: ; /* window ::= nm ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), yymsp+uintptr(-libc.Int32FromInt32(4))*12+4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_319: + goto _346 +_322: ; /* window ::= nm frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 4)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*12+4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_320: + goto _346 +_323: ; /* frame_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*12 + 4)) = _sqlite3WindowAlloc(tls, pParse, 0, int32(TK_UNBOUNDED), uintptr(0), int32(TK_CURRENT), uintptr(0), uint8(0)) - goto _342 -_321: + goto _346 +_324: ; /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)), int32(TK_CURRENT), uintptr(0), *(*Tu8)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_322: + goto _346 +_325: ; /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4 + 4)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4 + 4)), *(*Tu8)(unsafe.Pointer(yymsp + 4))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_324: + goto _346 +_327: ; /* frame_bound_s ::= frame_bound */ -_323: +_326: ; *(*TFrameBound)(unsafe.Pointer(bp)) = *(*TFrameBound)(unsafe.Pointer(yymsp + 4)) *(*TFrameBound)(unsafe.Pointer(yymsp + 4)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_326: + goto _346 +_329: ; /* frame_bound_s ::= UNBOUNDED PRECEDING */ -_325: +_328: ; -_327: +_330: ; (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = uintptr(0) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_328: + goto _346 +_331: ; /* frame_bound ::= expr PRECEDING|FOLLOWING */ (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_329: + goto _346 +_332: ; /* frame_exclude_opt ::= */ *(*Tu8)(unsafe.Pointer(yymsp + 1*12 + 4)) = uint8(0) - goto _342 -_330: + goto _346 +_333: ; /* frame_exclude_opt ::= EXCLUDE frame_exclude */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*Tu8)(unsafe.Pointer(yymsp + 4)) - goto _342 -_332: + goto _346 +_335: ; /* frame_exclude ::= NO OTHERS */ -_331: +_334: ; *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12))).Fmajor) /*A-overwrites-X*/ - goto _342 -_333: + goto _346 +_336: ; /* frame_exclude ::= GROUP|TIES */ *(*Tu8)(unsafe.Pointer(yymsp + 4)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_334: + goto _346 +_337: ; /* window_clause ::= WINDOW windowdefn_list */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) - goto _342 -_335: + goto _346 +_338: ; /* filter_over ::= filter_clause over_clause */ if *(*uintptr)(unsafe.Pointer(yymsp + 4)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 4)))).FpFilter = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) @@ -162128,13 +163757,13 @@ _335: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_336: + goto _346 +_339: ; /* filter_over ::= over_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 4)) *(*uintptr)(unsafe.Pointer(yymsp + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_337: + goto _346 +_340: ; /* filter_over ::= filter_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(100)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { @@ -162144,24 +163773,30 @@ _337: _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 4))) } *(*uintptr)(unsafe.Pointer(yymsp + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_338: + goto _346 +_341: ; /* over_clause ::= OVER LP window RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) _ = libc.Int32FromInt32(0) - goto _342 -_339: + goto _346 +_342: ; /* over_clause ::= OVER nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(100)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 4)), uint64(*(*uint32)(unsafe.Pointer(yymsp + 4 + 4)))) } - goto _342 -_340: + goto _346 +_343: ; /* filter_clause ::= FILTER LP WHERE expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*12 + 4)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*12 + 4)) - goto _342 -_341: + goto _346 +_344: + ; /* term ::= QNUMBER */ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 4))) + _sqlite3DequoteNumber(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp))))) + *(*uintptr)(unsafe.Pointer(yymsp + 4)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + goto _346 +_345: ; _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -162178,9 +163813,9 @@ _341: _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - goto _342 + goto _346 /********** End reduce actions ************************************************/ -_342: +_346: ; _ = libc.Int32FromInt32(0) yygoto = int32(_yyRuleInfoLhs[yyruleno]) @@ -162217,9 +163852,9 @@ func _yy_syntax_error(tls *libc.TLS, yypParser uintptr, yymajor int32, _yyminor /************ Begin %syntax_error code ****************************************/ _ = yymajor /* Silence some compiler warnings */ if *(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp))).Fz)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23394, libc.VaList(bp+16, bp)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23517, libc.VaList(bp+16, bp)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23682, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23805, 0) } /************ End %syntax_error code ******************************************/ /* Suppress warning about unused %extra_argument variable */ @@ -162288,8 +163923,10 @@ func _sqlite3Parser(tls *libc.TLS, yyp uintptr, yymajor int32, yyminor TToken) { ** enough on the stack to push the LHS value */ if int32(_yyRuleInfoNRhs[yyruleno]) == 0 { if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos >= (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - _yyStackOverflow(tls, yypParser) - break + if _yyGrowStack(tls, yypParser) != 0 { + _yyStackOverflow(tls, yypParser) + break + } } } yyact = _yy_reduce(tls, yypParser, yyruleno, yymajor, yyminor, pParse) @@ -164441,9 +166078,9 @@ func _analyzeFilterKeyword(tls *libc.TLS, _z uintptr, lastToken int32) (r int32) // ** Store the token type in *tokenType before returning. // */ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { - var c, delim, i, n, v10, v14, v16, v19, v20, v3, v5, v7, v8 int32 - var v15, v6 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v14, v15, v16, v19, v20, v3, v5, v6, v7, v8 + var c, delim, i, n, v10, v16, v18, v21, v22, v3, v5, v7, v8 int32 + var v17, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v16, v17, v18, v21, v22, v3, v5, v6, v7, v8 switch int32(_aiClass[*(*uint8)(unsafe.Pointer(z))]) { /* Switch on the character-class of the first byte ** of the token. See the comment on the CC_ defines ** above. */ @@ -164639,39 +166276,83 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('X')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + 2))])&int32(0x08) != 0 { i = int32(3) for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { + if !(int32(1) != 0) { break } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } goto _11 _11: ; i++ } - return i - } - i = 0 - for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _12 - _12: - ; - i++ - } - if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { - i++ - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + } else { + i = 0 + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _12 + _12: + ; i++ } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) - } - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { - i += int32(2) - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } i++ + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _13 + _13: + ; + i++ + } + } + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } + i += int32(2) + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _14 + _14: + ; + i++ + } } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) } for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x46) != 0 { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_ILLEGAL) @@ -164682,24 +166363,24 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { i = int32(1) c = int32(*(*uint8)(unsafe.Pointer(z))) for { - if v15 = c != int32(']'); v15 { - v14 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v14 + if v17 = c != int32(']'); v17 { + v16 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v16 } - if !(v15 && v14 != 0) { + if !(v17 && v16 != 0) { break } - goto _13 - _13: + goto _15 + _15: ; i++ } if c == int32(']') { - v16 = int32(TK_ID) + v18 = int32(TK_ID) } else { - v16 = int32(TK_ILLEGAL) + v18 = int32(TK_ILLEGAL) } - *(*int32)(unsafe.Pointer(tokenType)) = v16 + *(*int32)(unsafe.Pointer(tokenType)) = v18 return i case int32(CC_VARNUM): *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) @@ -164708,8 +166389,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { break } - goto _17 - _17: + goto _19 + _19: ; i++ } @@ -164721,9 +166402,9 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) i = int32(1) for { - v19 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v19 - if !(v19 != 0) { + v21 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v21 + if !(v21 != 0) { break } if int32(_sqlite3CtypeMap[uint8(c)])&int32(0x46) != 0 { @@ -164732,12 +166413,12 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if c == int32('(') && n > 0 { for { i++ - goto _21 - _21: + goto _23 + _23: ; - v20 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v20 - if !(v20 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { + v22 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v22 + if !(v22 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { break } } @@ -164755,8 +166436,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { } } } - goto _18 - _18: + goto _20 + _20: ; i++ } @@ -164774,8 +166455,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_aiClass[*(*uint8)(unsafe.Pointer(z + uintptr(i)))]) <= int32(CC_KYWD)) { break } - goto _22 - _22: + goto _24 + _24: ; i++ } @@ -164796,8 +166477,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { break } - goto _23 - _23: + goto _25 + _25: ; i++ } @@ -164843,13 +166524,13 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { // ** Run the parser on the given SQL string. // */ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { - bp := tls.Alloc(1248) - defer tls.Free(1248) + bp := tls.Alloc(1264) + defer tls.Free(1264) var db, pEngine, pParentParse uintptr var lastTokenParsed, mxSqlLen, n, nErr int32 var _ /* sEngine at bp+4 */ TyyParser var _ /* tokenType at bp+0 */ int32 - var _ /* x at bp+1216 */ TToken + var _ /* x at bp+1224 */ TToken _, _, _, _, _, _, _ = db, lastTokenParsed, mxSqlLen, n, nErr, pEngine, pParentParse nErr = 0 /* The LEMON-generated LALR(1) parser */ n = 0 /* type of the next token */ @@ -164916,10 +166597,12 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(bp)) = _analyzeFilterKeyword(tls, zSql+6, lastTokenParsed) } else { - (*(*TToken)(unsafe.Pointer(bp + 1216))).Fz = zSql - (*(*TToken)(unsafe.Pointer(bp + 1216))).Fn = uint32(n) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23699, libc.VaList(bp+1232, bp+1216)) - break + if *(*int32)(unsafe.Pointer(bp)) != int32(TK_QNUMBER) { + (*(*TToken)(unsafe.Pointer(bp + 1224))).Fz = zSql + (*(*TToken)(unsafe.Pointer(bp + 1224))).Fn = uint32(n) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23822, libc.VaList(bp+1240, bp+1224)) + break + } } } } @@ -164942,9 +166625,9 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { } if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg != 0 || (*TParse)(unsafe.Pointer(pParse)).Frc != SQLITE_OK && (*TParse)(unsafe.Pointer(pParse)).Frc != int32(SQLITE_DONE) { if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg == uintptr(0) { - (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3795, libc.VaList(bp+1232, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) + (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3859, libc.VaList(bp+1240, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) } - Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23724, libc.VaList(bp+1232, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) + Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23847, libc.VaList(bp+1240, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) nErr++ } (*TParse)(unsafe.Pointer(pParse)).FzTail = zSql @@ -165137,7 +166820,7 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('c'): fallthrough case int32('C'): - if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23735, int32(6)) == 0 { + if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23858, int32(6)) == 0 { token = uint8(tkCREATE) } else { token = uint8(tkOTHER) @@ -165145,13 +166828,13 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('t'): fallthrough case int32('T'): - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20379, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20511, int32(7)) == 0 { token = uint8(tkTRIGGER) } else { - if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23742, int32(4)) == 0 { + if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23865, int32(4)) == 0 { token = uint8(tkTEMP) } else { - if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23747, int32(9)) == 0 { + if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23870, int32(9)) == 0 { token = uint8(tkTEMP) } else { token = uint8(tkOTHER) @@ -165161,10 +166844,10 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('e'): fallthrough case int32('E'): - if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23757, int32(3)) == 0 { + if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23880, int32(3)) == 0 { token = uint8(tkEND) } else { - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23761, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23884, int32(7)) == 0 { token = uint8(tkEXPLAIN) } else { token = uint8(tkOTHER) @@ -165424,8 +167107,6 @@ func _hasHighPrecisionDouble(tls *libc.TLS, rc int32) (r int32) { // ** without blocking. // */ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { - ng := runtime.GOMAXPROCS(1) - defer func() { runtime.GOMAXPROCS(ng) }() var pMainMtx uintptr var rc int32 _, _ = pMainMtx, rc /* Result code */ @@ -165438,7 +167119,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** must be complete. So isInit must not be set until the very end ** of this routine. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+208) != 0 { return SQLITE_OK } /* Make sure the mutex subsystem is initialized. If unable to @@ -165498,7 +167179,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** call to sqlite3PcacheInitialize(). */ Xsqlite3_mutex_enter(tls, _sqlite3Config.FpInitMutex) - if _sqlite3Config.FisInit == 0 && _sqlite3Config.FinProgress == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+208) == 0 && _sqlite3Config.FinProgress == 0 { _sqlite3Config.FinProgress = int32(1) libc.Xmemset(tls, uintptr(unsafe.Pointer(&_sqlite3BuiltinFunctions)), 0, uint32(92)) _sqlite3RegisterBuiltinFunctions(tls) @@ -165514,7 +167195,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { } if rc == SQLITE_OK { _sqlite3PCacheBufferSetup(tls, _sqlite3Config.FpPage, _sqlite3Config.FszPage, _sqlite3Config.FnPage) - _sqlite3Config.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+208, int32(1)) } _sqlite3Config.FinProgress = 0 } @@ -165540,7 +167221,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { */ /* Experimentally determine if high-precision floating point is ** available. */ - _sqlite3Config.FbUseLongDouble = uint8(_hasHighPrecisionDouble(tls, rc)) + // disabled return rc } @@ -165555,10 +167236,10 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { // ** when this routine is invoked, then this routine is a harmless no-op. // */ func Xsqlite3_shutdown(tls *libc.TLS) (r int32) { - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+208) != 0 { Xsqlite3_os_end(tls) Xsqlite3_reset_auto_extension(tls) - _sqlite3Config.FisInit = 0 + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+208, 0) } if _sqlite3Config.FisPCacheInit != 0 { _sqlite3PcacheShutdown(tls) @@ -165606,9 +167287,9 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { ** the SQLite library is in use. Except, a few selected opcodes ** are allowed. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+208) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)<= 0 && rc < int32(libc.Uint32FromInt64(116)/libc.Uint32FromInt64(4)) && _aMsg[rc] != uintptr(0) { @@ -166758,31 +168439,31 @@ func _sqlite3ErrStr(tls *libc.TLS, rc int32) (r uintptr) { } var _aMsg = [29]uintptr{ - 0: __ccgo_ts + 23837, - 1: __ccgo_ts + 23850, - 3: __ccgo_ts + 23866, - 4: __ccgo_ts + 23891, - 5: __ccgo_ts + 23905, - 6: __ccgo_ts + 23924, - 7: __ccgo_ts + 1618, - 8: __ccgo_ts + 23949, - 9: __ccgo_ts + 23986, - 10: __ccgo_ts + 23998, - 11: __ccgo_ts + 24013, - 12: __ccgo_ts + 24046, - 13: __ccgo_ts + 24064, - 14: __ccgo_ts + 24089, - 15: __ccgo_ts + 24118, - 17: __ccgo_ts + 6021, - 18: __ccgo_ts + 5423, - 19: __ccgo_ts + 24135, - 20: __ccgo_ts + 24153, - 21: __ccgo_ts + 24171, - 23: __ccgo_ts + 24205, - 25: __ccgo_ts + 24226, - 26: __ccgo_ts + 24252, - 27: __ccgo_ts + 24275, - 28: __ccgo_ts + 24296, + 0: __ccgo_ts + 23960, + 1: __ccgo_ts + 23973, + 3: __ccgo_ts + 23989, + 4: __ccgo_ts + 24014, + 5: __ccgo_ts + 24028, + 6: __ccgo_ts + 24047, + 7: __ccgo_ts + 1632, + 8: __ccgo_ts + 24072, + 9: __ccgo_ts + 24109, + 10: __ccgo_ts + 24121, + 11: __ccgo_ts + 24136, + 12: __ccgo_ts + 24169, + 13: __ccgo_ts + 24187, + 14: __ccgo_ts + 24212, + 15: __ccgo_ts + 24241, + 17: __ccgo_ts + 6085, + 18: __ccgo_ts + 5487, + 19: __ccgo_ts + 24258, + 20: __ccgo_ts + 24276, + 21: __ccgo_ts + 24294, + 23: __ccgo_ts + 24328, + 25: __ccgo_ts + 24349, + 26: __ccgo_ts + 24375, + 27: __ccgo_ts + 24398, + 28: __ccgo_ts + 24419, } // C documentation @@ -166964,7 +168645,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if zFunctionName == uintptr(0) || xSFunc != uintptr(0) && xFinal != uintptr(0) || libc.BoolInt32(xFinal == uintptr(0)) != libc.BoolInt32(xStep == uintptr(0)) || libc.BoolInt32(xValue == uintptr(0)) != libc.BoolInt32(xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { - return _sqlite3MisuseError(tls, int32(180244)) + return _sqlite3MisuseError(tls, int32(181689)) } _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -167010,7 +168691,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i p = _sqlite3FindFunction(tls, db, zFunctionName, nArg, uint8(enc), uint8(0)) if p != 0 && (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) == uint32(enc) && int32((*TFuncDef)(unsafe.Pointer(p)).FnArg) == nArg { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24393, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24516, 0) _ = libc.Int32FromInt32(0) return int32(SQLITE_BUSY) } else { @@ -167083,6 +168764,7 @@ func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, en (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } + goto out out: ; rc = _sqlite3ApiExit(tls, db, rc) @@ -167139,7 +168821,7 @@ func _sqlite3InvalidFunction(tls *libc.TLS, context uintptr, NotUsed int32, NotU zName = Xsqlite3_user_data(tls, context) _ = NotUsed _ = NotUsed2 - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24456, libc.VaList(bp+8, zName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24579, libc.VaList(bp+8, zName)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -167170,7 +168852,7 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i if rc != 0 { return SQLITE_OK } - zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, zName)) + zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, zName)) if zCopy == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -167418,7 +169100,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in if eMode < SQLITE_CHECKPOINT_PASSIVE || eMode > int32(SQLITE_CHECKPOINT_TRUNCATE) { /* EVIDENCE-OF: R-03996-12088 The M parameter must be a valid checkpoint ** mode: */ - return _sqlite3MisuseError(tls, int32(180859)) + return _sqlite3MisuseError(tls, int32(182304)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*uint8)(unsafe.Pointer(zDb)) != 0 { @@ -167428,7 +169110,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in } if iDb < 0 { rc = int32(SQLITE_ERROR) - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24507, libc.VaList(bp+8, zDb)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24630, libc.VaList(bp+8, zDb)) } else { (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0 rc = _sqlite3Checkpoint(tls, db, iDb, eMode, pnLog, pnCkpt) @@ -167553,7 +169235,7 @@ func Xsqlite3_errmsg(tls *libc.TLS, db uintptr) (r uintptr) { return _sqlite3ErrStr(tls, int32(SQLITE_NOMEM)) } if !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(180995))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(182440))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -167686,7 +169368,7 @@ var _misuse = [34]Tu16{ // */ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181074)) + return _sqlite3MisuseError(tls, int32(182519)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -167696,7 +169378,7 @@ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { func Xsqlite3_extended_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181083)) + return _sqlite3MisuseError(tls, int32(182528)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -167746,7 +169428,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui enc2 = int32(SQLITE_UTF16LE) } if enc2 < int32(SQLITE_UTF8) || enc2 > int32(SQLITE_UTF16BE) { - return _sqlite3MisuseError(tls, int32(181131)) + return _sqlite3MisuseError(tls, int32(182576)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -167755,7 +169437,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui pColl = _sqlite3FindCollSeq(tls, db, uint8(enc2), zName, 0) if pColl != 0 && (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp != 0 { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24528, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24651, 0) return int32(SQLITE_BUSY) } _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -167916,7 +169598,7 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u zVfs = zDefaultVfs nUri = _sqlite3Strlen30(tls, zUri) _ = libc.Int32FromInt32(0) - if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24596, uint32(5)) == 0 { /* Input character index */ + if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24719, uint32(5)) == 0 { /* Input character index */ iOut = 0 /* Output character index */ nByte = uint64(nUri + int32(8)) /* Bytes of space to allocate */ /* Make sure the SQLITE_OPEN_URI flag is set to indicate to the VFS xOpen @@ -167946,8 +169628,8 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u for *(*uint8)(unsafe.Pointer(zUri + uintptr(iIn))) != 0 && int32(*(*uint8)(unsafe.Pointer(zUri + uintptr(iIn)))) != int32('/') { iIn++ } - if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24602, zUri+7, uint32(9)) != 0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24612, libc.VaList(bp+8, iIn-int32(7), zUri+7)) + if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24725, zUri+7, uint32(9)) != 0) { + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24735, libc.VaList(bp+8, iIn-int32(7), zUri+7)) rc = int32(SQLITE_ERROR) goto parse_uri_out } @@ -168037,24 +169719,24 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u nOpt = _sqlite3Strlen30(tls, zOpt) zVal = zOpt + uintptr(nOpt+int32(1)) nVal = _sqlite3Strlen30(tls, zVal) - if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24640, zOpt, uint32(3)) == 0 { + if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24763, zOpt, uint32(3)) == 0 { zVfs = zVal } else { aMode = uintptr(0) zModeType = uintptr(0) mask = 0 limit = 0 - if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24644, zOpt, uint32(5)) == 0 { + if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24767, zOpt, uint32(5)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_SHAREDCACHE) | libc.Int32FromInt32(SQLITE_OPEN_PRIVATECACHE) aMode = uintptr(unsafe.Pointer(&_aCacheMode)) limit = mask - zModeType = __ccgo_ts + 24644 + zModeType = __ccgo_ts + 24767 } - if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24665, zOpt, uint32(4)) == 0 { + if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24788, zOpt, uint32(4)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_READONLY) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_MEMORY) aMode = uintptr(unsafe.Pointer(&_aOpenMode)) limit = int32(uint32(mask) & flags) - zModeType = __ccgo_ts + 3404 + zModeType = __ccgo_ts + 3468 } if aMode != 0 { mode = 0 @@ -168083,12 +169765,12 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u i++ } if mode == 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24680, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24803, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_ERROR) goto parse_uri_out } if mode & ^libc.Int32FromInt32(SQLITE_OPEN_MEMORY) > limit { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24700, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24823, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_PERM) goto parse_uri_out } @@ -168112,9 +169794,10 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u } *(*uintptr)(unsafe.Pointer(ppVfs)) = Xsqlite3_vfs_find(tls, zVfs) if *(*uintptr)(unsafe.Pointer(ppVfs)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24724, libc.VaList(bp+8, zVfs)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24847, libc.VaList(bp+8, zVfs)) rc = int32(SQLITE_ERROR) } + goto parse_uri_out parse_uri_out: ; if rc != SQLITE_OK { @@ -168131,11 +169814,11 @@ var _aCacheMode = [3]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24650, + Fz: __ccgo_ts + 24773, Fmode: int32(SQLITE_OPEN_SHAREDCACHE), }, 1: { - Fz: __ccgo_ts + 24657, + Fz: __ccgo_ts + 24780, Fmode: int32(SQLITE_OPEN_PRIVATECACHE), }, 2: {}, @@ -168146,19 +169829,19 @@ var _aOpenMode = [5]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24670, + Fz: __ccgo_ts + 24793, Fmode: int32(SQLITE_OPEN_READONLY), }, 1: { - Fz: __ccgo_ts + 24673, + Fz: __ccgo_ts + 24796, Fmode: int32(SQLITE_OPEN_READWRITE), }, 2: { - Fz: __ccgo_ts + 24676, + Fz: __ccgo_ts + 24799, Fmode: libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE), }, 3: { - Fz: __ccgo_ts + 17764, + Fz: __ccgo_ts + 17851, Fmode: int32(SQLITE_OPEN_MEMORY), }, 4: {}, @@ -168287,8 +169970,8 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16BE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16LE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+22351, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+24740, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+22496, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+24863, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto opendb_out } @@ -168312,7 +169995,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* READWRITE */ /* READWRITE | CREATE */ if int32(1)<<(*(*uint32)(unsafe.Pointer(bp))&uint32(7))&int32(0x46) == 0 { - rc = _sqlite3MisuseError(tls, int32(181803)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(183248)) /* IMP: R-18321-05872 */ } else { rc = _sqlite3ParseUri(tls, zVfs, zFilename, bp, db, bp+4, bp+8) } @@ -168321,7 +170004,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _sqlite3OomFault(tls, db) } if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { - v2 = __ccgo_ts + 3795 + v2 = __ccgo_ts + 3859 } else { v2 = uintptr(0) } @@ -168349,9 +170032,9 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* The default safety_level for the main database is FULL; for the temp ** database it is OFF. This matches the pager layer defaults. */ - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6585 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6649 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).Fsafety_level = uint8(libc.Int32FromInt32(SQLITE_DEFAULT_SYNCHRONOUS) + libc.Int32FromInt32(1)) - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FzDbSName = __ccgo_ts + 23742 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).FzDbSName = __ccgo_ts + 23865 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*16))).Fsafety_level = uint8(PAGER_SYNCHRONOUS_OFF) (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState = uint8(SQLITE_STATE_OPEN) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -168396,6 +170079,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* Enable the lookaside-malloc subsystem */ _setupLookaside(tls, db, uintptr(0), _sqlite3Config.FszLookaside, _sqlite3Config.FnLookaside) Xsqlite3_wal_autocheckpoint(tls, db, int32(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT)) + goto opendb_out opendb_out: ; if db != 0 { @@ -168446,7 +170130,7 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc } if zFilename == uintptr(0) { - zFilename = __ccgo_ts + 24746 + zFilename = __ccgo_ts + 24869 } pVal = _sqlite3ValueNew(tls, uintptr(0)) _sqlite3ValueSetStr(tls, pVal, -int32(1), zFilename, uint8(SQLITE_UTF16LE), libc.UintptrFromInt32(0)) @@ -168667,20 +170351,20 @@ func Xsqlite3_get_autocommit(tls *libc.TLS, db uintptr) (r int32) { func _sqlite3ReportError(tls *libc.TLS, iErr int32, lineno int32, zType uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) - Xsqlite3_log(tls, iErr, __ccgo_ts+24749, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) + Xsqlite3_log(tls, iErr, __ccgo_ts+24872, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) return iErr } func _sqlite3CorruptError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24774) + return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24897) } func _sqlite3MisuseError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24794) + return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24917) } func _sqlite3CantopenError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24801) + return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24924) } // C documentation @@ -168786,6 +170470,7 @@ func Xsqlite3_table_column_metadata(tls *libc.TLS, db uintptr, zDbName uintptr, if !(zCollSeq != 0) { zCollSeq = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } + goto error_out error_out: ; _sqlite3BtreeLeaveAll(tls, db) @@ -168810,11 +170495,11 @@ error_out: } if SQLITE_OK == rc && !(pTab != 0) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24818, libc.VaList(bp+16, zTableName, zColumnName)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24941, libc.VaList(bp+16, zTableName, zColumnName)) rc = int32(SQLITE_ERROR) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v3 = __ccgo_ts + 3795 + v3 = __ccgo_ts + 3859 } else { v3 = uintptr(0) } @@ -169253,7 +170938,7 @@ func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) (r int32) { */ fallthrough case int32(SQLITE_TESTCTRL_ISINIT): - if _sqlite3Config.FisInit == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+208) == 0 { rc = int32(SQLITE_ERROR) } break @@ -169843,7 +171528,7 @@ func Xsqlite3_compileoption_used(tls *libc.TLS, zOptName uintptr) (r int32) { var _ /* nOpt at bp+0 */ int32 _, _, _ = azCompileOpt, i, n azCompileOpt = _sqlite3CompileOptions(tls, bp) - if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24846, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24969, int32(7)) == 0 { zOptName += uintptr(7) } n = _sqlite3Strlen30(tls, zOptName) @@ -170065,7 +171750,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui _leaveMutex(tls) _ = libc.Int32FromInt32(0) if rc != 0 { - v2 = __ccgo_ts + 24854 + v2 = __ccgo_ts + 24977 } else { v2 = uintptr(0) } @@ -170948,23 +172633,23 @@ func _sqlite3ConnectionClosed(tls *libc.TLS, db uintptr) { // ** string must correspond to the JSONB_* integer above. // */ var _jsonbType = [17]uintptr{ - 0: __ccgo_ts + 1634, - 1: __ccgo_ts + 7886, - 2: __ccgo_ts + 7891, - 3: __ccgo_ts + 6306, - 4: __ccgo_ts + 6306, - 5: __ccgo_ts + 6301, - 6: __ccgo_ts + 6301, - 7: __ccgo_ts + 8197, - 8: __ccgo_ts + 8197, - 9: __ccgo_ts + 8197, - 10: __ccgo_ts + 8197, - 11: __ccgo_ts + 24877, - 12: __ccgo_ts + 24883, - 13: __ccgo_ts + 1648, - 14: __ccgo_ts + 1648, - 15: __ccgo_ts + 1648, - 16: __ccgo_ts + 1648, + 0: __ccgo_ts + 1648, + 1: __ccgo_ts + 8011, + 2: __ccgo_ts + 8016, + 3: __ccgo_ts + 6370, + 4: __ccgo_ts + 6370, + 5: __ccgo_ts + 6365, + 6: __ccgo_ts + 6365, + 7: __ccgo_ts + 8322, + 8: __ccgo_ts + 8322, + 9: __ccgo_ts + 8322, + 10: __ccgo_ts + 8322, + 11: __ccgo_ts + 25000, + 12: __ccgo_ts + 25006, + 13: __ccgo_ts + 1662, + 14: __ccgo_ts + 1662, + 15: __ccgo_ts + 1662, + 16: __ccgo_ts + 1662, } // C documentation @@ -171739,6 +173424,46 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { _jsonAppendChar(tls, p, uint8(',')) } +// C documentation +// +// /* c is a control character. Append the canonical JSON representation +// ** of that control character to p. +// ** +// ** This routine assumes that the output buffer has already been enlarged +// ** sufficiently to hold the worst-case encoding plus a nul terminator. +// */ +func _jsonAppendControlChar(tls *libc.TLS, p uintptr, c Tu8) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if _aSpecial[c] != 0 { + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = uint8('\\') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = _aSpecial[c] + *(*Tu64)(unsafe.Pointer(p + 16)) += uint64(2) + } else { + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = uint8('\\') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = uint8('u') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(2)))) = uint8('0') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(3)))) = uint8('0') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(4)))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 25013 + uintptr(int32(c)>>int32(4)))) + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(5)))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 25013 + uintptr(int32(c)&int32(0xf)))) + *(*Tu64)(unsafe.Pointer(p + 16)) += uint64(6) + } +} + +var _aSpecial = [32]uint8{ + 8: uint8('b'), + 9: uint8('t'), + 10: uint8('n'), + 12: uint8('f'), + 13: uint8('r'), +} + // C documentation // // /* Append the N-byte string in zIn to the end of the JsonString string @@ -171752,9 +173477,9 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { var c Tu8 var k Tu32 - var z, v10, v12, v14, v16, v18, v2, v20, v22, v24, v6, v8 uintptr - var v1, v11, v13, v15, v17, v19, v21, v23, v5, v7, v9 Tu64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v5, v6, v7, v8, v9 + var z, v10, v2, v4, v6, v8 uintptr + var v1, v3, v5, v7, v9 Tu64 + _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v2, v3, v4, v5, v6, v7, v8, v9 z = zIn if z == uintptr(0) { return @@ -171811,90 +173536,41 @@ func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { N -= k } c = *(*Tu8)(unsafe.Pointer(z)) - if !(int32(c) == int32('"') || int32(c) == int32('\\')) { - goto _3 - } - json_simple_escape: - ; - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { - return - } - v6 = p + 16 - v5 = *(*Tu64)(unsafe.Pointer(v6)) - *(*Tu64)(unsafe.Pointer(v6))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = uint8('\\') - v8 = p + 16 - v7 = *(*Tu64)(unsafe.Pointer(v8)) - *(*Tu64)(unsafe.Pointer(v8))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = c - goto _4 - _3: - ; - if int32(c) == int32('\'') { - v10 = p + 16 - v9 = *(*Tu64)(unsafe.Pointer(v10)) - *(*Tu64)(unsafe.Pointer(v10))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = c - } else { - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - if _aSpecial[c] != 0 { - c = _aSpecial[c] - goto json_simple_escape - } - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + if int32(c) == int32('"') || int32(c) == int32('\\') { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { return } - v12 = p + 16 - v11 = *(*Tu64)(unsafe.Pointer(v12)) - *(*Tu64)(unsafe.Pointer(v12))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v11))) = uint8('\\') - v14 = p + 16 - v13 = *(*Tu64)(unsafe.Pointer(v14)) - *(*Tu64)(unsafe.Pointer(v14))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v13))) = uint8('u') - v16 = p + 16 - v15 = *(*Tu64)(unsafe.Pointer(v16)) - *(*Tu64)(unsafe.Pointer(v16))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v15))) = uint8('0') - v18 = p + 16 - v17 = *(*Tu64)(unsafe.Pointer(v18)) - *(*Tu64)(unsafe.Pointer(v18))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v17))) = uint8('0') - v20 = p + 16 - v19 = *(*Tu64)(unsafe.Pointer(v20)) - *(*Tu64)(unsafe.Pointer(v20))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v19))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 24890 + uintptr(int32(c)>>int32(4)))) - v22 = p + 16 - v21 = *(*Tu64)(unsafe.Pointer(v22)) - *(*Tu64)(unsafe.Pointer(v22))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v21))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 24890 + uintptr(int32(c)&int32(0xf)))) + v4 = p + 16 + v3 = *(*Tu64)(unsafe.Pointer(v4)) + *(*Tu64)(unsafe.Pointer(v4))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v3))) = uint8('\\') + v6 = p + 16 + v5 = *(*Tu64)(unsafe.Pointer(v6)) + *(*Tu64)(unsafe.Pointer(v6))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = c + } else { + if int32(c) == int32('\'') { + v8 = p + 16 + v7 = *(*Tu64)(unsafe.Pointer(v8)) + *(*Tu64)(unsafe.Pointer(v8))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = c + } else { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + return + } + _jsonAppendControlChar(tls, p, c) + } } - _4: - ; z++ N-- } - v24 = p + 16 - v23 = *(*Tu64)(unsafe.Pointer(v24)) - *(*Tu64)(unsafe.Pointer(v24))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v23))) = uint8('"') + v10 = p + 16 + v9 = *(*Tu64)(unsafe.Pointer(v10)) + *(*Tu64)(unsafe.Pointer(v10))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = uint8('"') _ = libc.Int32FromInt32(0) } -var _aSpecial = [32]uint8{ - 8: uint8('b'), - 9: uint8('t'), - 10: uint8('n'), - 12: uint8('f'), - 13: uint8('r'), -} - // C documentation // // /* @@ -171910,9 +173586,9 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _, _, _, _ = n, n1, z, z1 switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_NULL): - _jsonAppendRawNZ(tls, p, __ccgo_ts+1634, uint32(4)) + _jsonAppendRawNZ(tls, p, __ccgo_ts+1648, uint32(4)) case int32(SQLITE_FLOAT): - _jsonPrintf(tls, int32(100), p, __ccgo_ts+15323, libc.VaList(bp+64, Xsqlite3_value_double(tls, pValue))) + _jsonPrintf(tls, int32(100), p, __ccgo_ts+15416, libc.VaList(bp+64, Xsqlite3_value_double(tls, pValue))) case int32(SQLITE_INTEGER): z = Xsqlite3_value_text(tls, pValue) n = uint32(Xsqlite3_value_bytes(tls, pValue)) @@ -171933,7 +173609,7 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _jsonTranslateBlobToText(tls, bp, uint32(0), p) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr) == 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24907, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25030, -int32(1)) (*TJsonString)(unsafe.Pointer(p)).FeErr = uint8(JSTRING_ERR) _jsonStringReset(tls, p) } @@ -171989,7 +173665,7 @@ func _jsonReturnString(tls *libc.TLS, p uintptr, pParse uintptr, ctx uintptr) { Xsqlite3_result_error_nomem(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr)&int32(JSTRING_MALFORMED) != 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25059, -int32(1)) } } } @@ -172237,6 +173913,7 @@ func _json5Whitespace(tls *libc.TLS, zIn uintptr) (r int32) { goto whitespace_done } } + goto whitespace_done whitespace_done: ; return n @@ -172272,8 +173949,8 @@ var _aNanInfName = [5]TNanInfName{ Fn: uint8(3), FeType: uint8(JSONB_FLOAT), FnRepl: uint8(7), - FzMatch: __ccgo_ts + 24951, - FzRepl: __ccgo_ts + 24955, + FzMatch: __ccgo_ts + 25074, + FzRepl: __ccgo_ts + 25078, }, 1: { Fc1: uint8('i'), @@ -172281,32 +173958,32 @@ var _aNanInfName = [5]TNanInfName{ Fn: uint8(8), FeType: uint8(JSONB_FLOAT), FnRepl: uint8(7), - FzMatch: __ccgo_ts + 24963, - FzRepl: __ccgo_ts + 24955, + FzMatch: __ccgo_ts + 25086, + FzRepl: __ccgo_ts + 25078, }, 2: { Fc1: uint8('n'), Fc2: uint8('N'), Fn: uint8(3), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 1639, - FzRepl: __ccgo_ts + 1634, + FzMatch: __ccgo_ts + 1653, + FzRepl: __ccgo_ts + 1648, }, 3: { Fc1: uint8('q'), Fc2: uint8('Q'), Fn: uint8(4), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 24972, - FzRepl: __ccgo_ts + 1634, + FzMatch: __ccgo_ts + 25095, + FzRepl: __ccgo_ts + 1648, }, 4: { Fc1: uint8('s'), Fc2: uint8('S'), Fn: uint8(4), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 24977, - FzRepl: __ccgo_ts + 1634, + FzMatch: __ccgo_ts + 25100, + FzRepl: __ccgo_ts + 1648, }, } @@ -172321,7 +173998,7 @@ func _jsonWrongNumArgs(tls *libc.TLS, pCtx uintptr, zFuncName uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24982, libc.VaList(bp+8, zFuncName)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25105, libc.VaList(bp+8, zFuncName)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) } @@ -172775,30 +174452,37 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept return j + uint32(1) } } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) <= int32(0x1f) { + /* Control characters in JSON5 string literals are ok */ + if int32(x) == int32(JSONB_TEXTJ) { + return j + uint32(1) + } } else { - if libc.Xstrchr(tls, __ccgo_ts+25025, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { - j++ + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { + return j + uint32(1) } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { - if j+uint32(5) >= k { - return j + uint32(1) - } - if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { - return j + uint32(1) - } + if libc.Xstrchr(tls, __ccgo_ts+25148, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { j++ } else { - if int32(x) != int32(JSONB_TEXT5) { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { + if j+uint32(5) >= k { + return j + uint32(1) + } + if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { + return j + uint32(1) + } + j++ } else { - *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) - szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) - if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + if int32(x) != int32(JSONB_TEXT5) { return j + uint32(1) + } else { + *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) + szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) + if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + return j + uint32(1) + } + j += szC - uint32(1) } - j += szC - uint32(1) } } } @@ -172896,6 +174580,7 @@ func _jsonTranslateTextToBlob(tls *libc.TLS, pParse uintptr, i Tu32) (r int32) { var _ /* op at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cDelim, iBlob, iStart, iThis, j, k, k1, nn, opcode, seenE, t, x, z, v40, v41, v43, v44, v46, v48 z = (*TJsonParse)(unsafe.Pointer(pParse)).FzJson + goto json_parse_restart json_parse_restart: ; switch int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) { @@ -173051,6 +174736,7 @@ _1: } j = (*TJsonParse)(unsafe.Pointer(pParse)).FiErr + uint32(1) } + goto parse_object_value parse_object_value: ; x = _jsonTranslateTextToBlob(tls, pParse, j) @@ -173178,6 +174864,7 @@ _3: ; /* Parse string */ opcode = uint8(JSONB_TEXT) + goto parse_string parse_string: ; cDelim = *(*uint8)(unsafe.Pointer(z + uintptr(i))) @@ -173226,9 +174913,14 @@ parse_string: } } else { if int32(c) <= int32(0x1f) { - /* Control characters are not allowed in strings */ - (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j - return -int32(1) + if int32(c) == 0 { + (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j + return -int32(1) + } + /* Control characters are not allowed in canonical JSON string + ** literals, but are allowed in JSON5 string literals. */ + opcode = uint8(JSONB_TEXT5) + (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) } else { if int32(c) == int32('"') { opcode = uint8(JSONB_TEXT5) @@ -173242,7 +174934,7 @@ parse_string: return int32(j + uint32(1)) _5: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7886, uint32(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8011, uint32(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_TRUE)) return int32(i + uint32(4)) } @@ -173250,7 +174942,7 @@ _5: return -int32(1) _6: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7891, uint32(5)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(5))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8016, uint32(5)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(5))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_FALSE)) return int32(i + uint32(5)) } @@ -173295,6 +174987,7 @@ _8: ; /* Parse number */ t = uint8(0x00) /* Bit 0x01: JSON5. Bit 0x02: FLOAT */ + goto parse_number parse_number: ; seenE = uint8(0) @@ -173330,14 +175023,14 @@ parse_number: /* JSON5 allows for "+Infinity" and "-Infinity" using exactly ** that case. SQLite also allows these in any case and it allows ** "+inf" and "-inf". */ - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+24951, int32(3)) == 0 { + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+25074, int32(3)) == 0 { (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('-') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25034) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25157) } else { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25041) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25164) } - if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25047, int32(5)) == 0 { + if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25170, int32(5)) == 0 { v48 = int32(9) } else { v48 = int32(4) @@ -173376,6 +175069,7 @@ parse_number: } } } + goto parse_number_2 parse_number_2: ; j = i + uint32(1) @@ -173434,6 +175128,7 @@ parse_number_2: return -int32(1) } } + goto parse_number_finish parse_number_finish: ; _ = libc.Int32FromInt32(0) @@ -173499,11 +175194,10 @@ _29: return -int32(1) _37: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1634, uint32(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1648, uint32(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) return int32(i + uint32(4)) } - /* fall-through into the default case that checks for NaN */ _38: ; c = *(*uint8)(unsafe.Pointer(z + uintptr(i))) @@ -173523,7 +175217,7 @@ _38: goto _51 } if int32(_aNanInfName[k1].FeType) == int32(JSONB_FLOAT) { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25041) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25164) } else { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) } @@ -173568,7 +175262,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 i += _json5Whitespace(tls, zJson+uintptr(i)) if *(*uint8)(unsafe.Pointer(zJson + uintptr(i))) != 0 { if pCtx != 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25059, -int32(1)) } _jsonParseReset(tls, pParse) return int32(1) @@ -173581,7 +175275,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 if (*TJsonParse)(unsafe.Pointer(pParse)).Foom != 0 { Xsqlite3_result_error_nomem(tls, pCtx) } else { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25059, -int32(1)) } } _jsonParseReset(tls, pParse) @@ -173746,15 +175440,15 @@ func _jsonTranslateBlobToText(tls *libc.TLS, pParse uintptr, i Tu32, pOut uintpt goto _16 _2: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1634, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1648, uint32(4)) return i + uint32(1) _3: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7886, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8011, uint32(4)) return i + uint32(1) _4: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7891, uint32(5)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8016, uint32(5)) return i + uint32(1) _6: ; @@ -173803,9 +175497,9 @@ _7: k++ } if bOverflow != 0 { - v19 = __ccgo_ts + 24955 + v19 = __ccgo_ts + 25078 } else { - v19 = __ccgo_ts + 11753 + v19 = __ccgo_ts + 11878 } _jsonPrintf(tls, int32(100), pOut, v19, libc.VaList(bp+16, u)) goto _16 @@ -173853,7 +175547,7 @@ _11: for sz2 > uint32(0) { k2 = uint32(0) for { - if !(k2 < sz2 && int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('\\') && int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('"')) { + if !(k2 < sz2 && (_jsonIsOk[*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))] != 0 || int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) == int32('\''))) { break } goto _21 @@ -173870,7 +175564,16 @@ _11: sz2 -= k2 } if int32(*(*uint8)(unsafe.Pointer(zIn2))) == int32('"') { - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25053, uint32(2)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25176, uint32(2)) + zIn2++ + sz2-- + continue + } + if int32(*(*uint8)(unsafe.Pointer(zIn2))) <= int32(0x1f) { + if (*TJsonString)(unsafe.Pointer(pOut)).FnUsed+uint64(7) > (*TJsonString)(unsafe.Pointer(pOut)).FnAlloc && _jsonStringGrow(tls, pOut, uint32(7)) != 0 { + break + } + _jsonAppendControlChar(tls, pOut, *(*uint8)(unsafe.Pointer(zIn2))) zIn2++ sz2-- continue @@ -173886,7 +175589,7 @@ _11: case int32('\''): _jsonAppendChar(tls, pOut, uint8('\'')) case int32('v'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25056, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25179, uint32(6)) case int32('x'): if sz2 < uint32(4) { p23 = pOut + 25 @@ -173894,12 +175597,12 @@ _11: sz2 = uint32(2) break } - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25063, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25186, uint32(4)) _jsonAppendRawNZ(tls, pOut, zIn2+2, uint32(2)) zIn2 += uintptr(2) sz2 -= uint32(2) case int32('0'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25068, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25191, uint32(6)) case int32('\r'): if sz2 > uint32(2) && int32(*(*uint8)(unsafe.Pointer(zIn2 + 2))) == int32('\n') { zIn2++ @@ -173978,6 +175681,7 @@ _14: goto _16 _15: ; + goto malformed_jsonb malformed_jsonb: ; p29 = pOut + 25 @@ -173988,6 +175692,140 @@ _16: return i + n + *(*Tu32)(unsafe.Pointer(bp)) } +// C documentation +// +// /* Context for recursion of json_pretty() +// */ +type TJsonPretty = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty = TJsonPretty + +type TJsonPretty1 = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty1 = TJsonPretty1 + +// C documentation +// +// /* Append indentation to the pretty JSON under construction */ +func _jsonPrettyIndent(tls *libc.TLS, pPretty uintptr) { + var jj Tu32 + _ = jj + jj = uint32(0) + for { + if !(jj < (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent) { + break + } + _jsonAppendRaw(tls, (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut, (*TJsonPretty)(unsafe.Pointer(pPretty)).FzIndent, (*TJsonPretty)(unsafe.Pointer(pPretty)).FszIndent) + goto _1 + _1: + ; + jj++ + } +} + +// C documentation +// +// /* +// ** Translate the binary JSONB representation of JSON beginning at +// ** pParse->aBlob[i] into a JSON text string. Append the JSON +// ** text onto the end of pOut. Return the index in pParse->aBlob[] +// ** of the first byte past the end of the element that is translated. +// ** +// ** This is a variant of jsonTranslateBlobToText() that "pretty-prints" +// ** the output. Extra whitespace is inserted to make the JSON easier +// ** for humans to read. +// ** +// ** If an error is detected in the BLOB input, the pOut->eErr flag +// ** might get set to JSTRING_MALFORMED. But not all BLOB input errors +// ** are detected. So a malformed JSONB input might either result +// ** in an error, or in incorrect JSON. +// ** +// ** The pOut->eErr JSTRING_OOM flag is set on a OOM. +// */ +func _jsonTranslateBlobToPrettyText(tls *libc.TLS, pPretty uintptr, i Tu32) (r Tu32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var iEnd, j, n Tu32 + var pOut, pParse, p1, p2 uintptr + var _ /* sz at bp+0 */ Tu32 + _, _, _, _, _, _, _ = iEnd, j, n, pOut, pParse, p1, p2 + pParse = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpParse + pOut = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut + n = _jsonbPayloadSize(tls, pParse, i, bp) + if n == uint32(0) { + p1 = pOut + 25 + *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + return (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob + uint32(1) + } + switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { + case int32(JSONB_ARRAY): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, uint8('[')) + if j < iEnd { + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25198, uint32(2)) + } + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, uint8(']')) + i = iEnd + case int32(JSONB_OBJECT): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, uint8('{')) + if j < iEnd { + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToText(tls, pParse, j, pOut) + if j > iEnd { + p2 = pOut + 25 + *(*Tu8)(unsafe.Pointer(p2)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p2))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25201, uint32(2)) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25198, uint32(2)) + } + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, uint8('}')) + i = iEnd + default: + i = _jsonTranslateBlobToText(tls, pParse, i, pOut) + break + } + return i +} + // C documentation // // /* Return true if the input pJson @@ -174715,7 +176553,7 @@ func _jsonReturnFromBlob(tls *libc.TLS, pParse uintptr, i Tu32, pCtx uintptr, te db = Xsqlite3_context_db_handle(tls, pCtx) n = _jsonbPayloadSize(tls, pParse, i, bp) if n == uint32(0) { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25059, -int32(1)) return } switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { @@ -174824,6 +176662,7 @@ _6: if *(*Tu32)(unsafe.Pointer(bp)) == uint32(0) { goto returnfromblob_malformed } + goto to_double to_double: ; z1 = _sqlite3DbStrNDup(tls, db, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(i+n), uint64(int32(*(*Tu32)(unsafe.Pointer(bp))))) @@ -174946,13 +176785,15 @@ _14: _15: ; return + goto returnfromblob_oom returnfromblob_oom: ; Xsqlite3_result_error_nomem(tls, pCtx) return + goto returnfromblob_malformed returnfromblob_malformed: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25059, -int32(1)) return } @@ -174993,7 +176834,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob = Xsqlite3_value_blob(tls, pArg) (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob = uint32(Xsqlite3_value_bytes(tls, pArg)) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24907, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25030, -int32(1)) return int32(1) } case int32(SQLITE_TEXT): @@ -175006,7 +176847,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FzJson = zJson (*TJsonParse)(unsafe.Pointer(pParse)).FnJson = nJson if _jsonConvertTextToBlob(tls, pParse, ctx) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) _sqlite3DbFree(tls, (*TJsonParse)(unsafe.Pointer(pParse)).Fdb, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob) libc.Xmemset(tls, pParse, 0, uint32(56)) return int32(1) @@ -175025,10 +176866,10 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin return int32(1) } if int32(*(*uint8)(unsafe.Pointer(z))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25041) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25164) } else { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('-') && int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25034) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25157) } else { _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(n), z) } @@ -175067,7 +176908,7 @@ func _jsonBadPathError(tls *libc.TLS, ctx uintptr, zPath uintptr) (r uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25075, libc.VaList(bp+8, zPath)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25204, libc.VaList(bp+8, zPath)) if ctx == uintptr(0) { return zMsg } @@ -175160,11 +177001,12 @@ func _jsonInsertIntoBlob(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr, e _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto jsonInsertIntoBlob_patherror jsonInsertIntoBlob_patherror: ; _jsonParseFree(tls, p) if rc == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } else { _jsonBadPathError(tls, ctx, zPath) } @@ -175249,6 +177091,7 @@ func _jsonParseFuncArg(tls *libc.TLS, ctx uintptr, pArg uintptr, flgs Tu32) (r u } } db = Xsqlite3_context_db_handle(tls, ctx) + goto rebuild_from_cache rebuild_from_cache: ; p = _sqlite3DbMallocZero(tls, db, uint64(56)) @@ -175339,6 +177182,7 @@ rebuild_from_cache: } } return p + goto json_pfa_malformed json_pfa_malformed: ; if flgs&uint32(JSON_KEEPERROR) != 0 { @@ -175346,9 +177190,10 @@ json_pfa_malformed: return p } else { _jsonParseFree(tls, p) - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) return uintptr(0) } + goto json_pfa_oom json_pfa_oom: ; _jsonParseFree(tls, pFromCache) @@ -175480,7 +177325,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if int32(*(*uint8)(unsafe.Pointer(zPath))) == int32('$') { v1 = zPath + uintptr(1) } else { - v1 = __ccgo_ts + 25093 + v1 = __ccgo_ts + 25222 } i = _jsonLookupStep(tls, p, uint32(0), v1, uint32(0)) if i >= uint32(JSON_LOOKUP_PATHERROR) { @@ -175490,7 +177335,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } } eErr = uint8(1) @@ -175508,25 +177353,6 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) _jsonParseFree(tls, p) } -// C documentation -// -// /* True if the string is all digits */ -func _jsonAllDigits(tls *libc.TLS, z uintptr, n int32) (r int32) { - var i int32 - _ = i - i = 0 - for { - if !(i < n && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _1 - _1: - ; - i++ - } - return libc.BoolInt32(i == n) -} - // C documentation // // /* True if the string is all alphanumerics and underscores */ @@ -175613,21 +177439,21 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { ** [NUMBER] ==> $[NUMBER] // Not PG. Purely for convenience */ _jsonStringInit(tls, bp, ctx) - if _jsonAllDigits(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25095, uint32(1)) + if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*4))) == int32(SQLITE_INTEGER) { + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25224, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+5161, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+5225, uint32(2)) } else { if _jsonAllAlphanum(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1661, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1675, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { if int32(*(*uint8)(unsafe.Pointer(zPath))) == int32('[') && nPath >= int32(3) && int32(*(*uint8)(unsafe.Pointer(zPath + uintptr(nPath-int32(1))))) == int32(']') { _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25097, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25226, uint32(2)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25100, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25229, uint32(1)) } } } @@ -175664,11 +177490,11 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { goto json_extract_error /* Return NULL if not found */ } else { _jsonAppendSeparator(tls, bp) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1634, uint32(4)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1648, uint32(4)) } } else { if j == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) goto json_extract_error } else { _jsonBadPathError(tls, ctx, zPath) @@ -175688,6 +177514,7 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } } + goto json_extract_error json_extract_error: ; _jsonStringReset(tls, bp) @@ -175938,7 +177765,7 @@ func _jsonPatchFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == int32(JSON_MERGE_OOM) { Xsqlite3_result_error_nomem(tls, ctx) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } } _jsonParseFree(tls, pPatch) @@ -175962,7 +177789,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { var _ /* jx at bp+0 */ TJsonString _, _, _ = i, n, z if argc&int32(1) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25102, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25231, -int32(1)) return } _jsonStringInit(tls, bp, ctx) @@ -175973,7 +177800,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { break } if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*4))) != int32(SQLITE_TEXT) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25153, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25282, -int32(1)) _jsonStringReset(tls, bp) return } @@ -176045,7 +177872,7 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } } goto json_remove_done @@ -176058,9 +177885,11 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto json_remove_patherror json_remove_patherror: ; _jsonBadPathError(tls, ctx, zPath) + goto json_remove_done json_remove_done: ; _jsonParseFree(tls, p) @@ -176080,7 +177909,7 @@ func _jsonReplaceFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { return } if argc&int32(1) == 0 { - _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15796) + _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15889) return } _jsonInsertIntoBlob(tls, ctx, argc, argv, int32(JEDIT_REPL)) @@ -176111,9 +177940,9 @@ func _jsonSetFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { } if argc&int32(1) == 0 { if bIsSet != 0 { - v1 = __ccgo_ts + 25187 + v1 = __ccgo_ts + 25316 } else { - v1 = __ccgo_ts + 25191 + v1 = __ccgo_ts + 25320 } _jsonWrongNumArgs(tls, ctx, v1) return @@ -176161,7 +177990,7 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } } goto json_type_done @@ -176170,11 +177999,54 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { i = uint32(0) } Xsqlite3_result_text(tls, ctx, _jsonbType[int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(p)).FaBlob + uintptr(i))))&int32(0x0f)], -int32(1), libc.UintptrFromInt32(0)) + goto json_type_done json_type_done: ; _jsonParseFree(tls, p) } +// C documentation +// +// /* +// ** json_pretty(JSON) +// ** json_pretty(JSON, INDENT) +// ** +// ** Return text that is a pretty-printed rendering of the input JSON. +// ** If the argument is not valid JSON, return NULL. +// ** +// ** The INDENT argument is text that is used for indentation. If omitted, +// ** it defaults to four spaces (the same as PostgreSQL). +// */ +func _jsonPrettyFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { + bp := tls.Alloc(160) + defer tls.Free(160) + var v1 uintptr + var v2 bool + var _ /* s at bp+0 */ TJsonString + var _ /* x at bp+128 */ TJsonPretty + _, _ = v1, v2 /* Pretty printing context */ + libc.Xmemset(tls, bp+128, 0, uint32(20)) + (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FpParse = _jsonParseFuncArg(tls, ctx, *(*uintptr)(unsafe.Pointer(argv)), uint32(0)) + if (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FpParse == uintptr(0) { + return + } + (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FpOut = bp + _jsonStringInit(tls, bp, ctx) + if v2 = argc == int32(1); !v2 { + v1 = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*4))) + (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FzIndent = v1 + } + if v2 || v1 == uintptr(0) { + (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FzIndent = __ccgo_ts + 25327 + (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FszIndent = uint32(4) + } else { + (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FszIndent = libc.Xstrlen(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FzIndent) + } + _jsonTranslateBlobToPrettyText(tls, bp+128, uint32(0)) + _jsonReturnString(tls, bp, uintptr(0), uintptr(0)) + _jsonParseFree(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 128))).FpParse) +} + // C documentation // // /* @@ -176249,7 +178121,7 @@ func _jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if argc == int32(2) { f = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + 1*4))) if f < int64(1) || f > int64(15) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25198, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25332, -int32(1)) return } flags = uint8(f & int64(0x0f)) @@ -176439,7 +178311,7 @@ func _jsonArrayCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25255, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25389, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -176588,7 +178460,7 @@ func _jsonObjectCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25258, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25392, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -176695,7 +178567,7 @@ func _jsonEachConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv _ = argv _ = argc _ = pAux - rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25261) + rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25395) if rc == SQLITE_OK { pNew = _sqlite3DbMallocZero(tls, db, uint64(16)) *(*uintptr)(unsafe.Pointer(ppVtab)) = pNew @@ -176831,7 +178703,7 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TJsonEachCursor)(unsafe.Pointer(p)).FeType) == int32(JSONB_ARRAY) { - _jsonPrintf(tls, int32(30), p+40, __ccgo_ts+25344, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) + _jsonPrintf(tls, int32(30), p+40, __ccgo_ts+25478, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) } else { *(*Tu32)(unsafe.Pointer(bp)) = uint32(0) needQuote = 0 @@ -176857,9 +178729,9 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { } } if needQuote != 0 { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+40, __ccgo_ts+25351, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+40, __ccgo_ts+25485, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } else { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+40, __ccgo_ts+25359, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+40, __ccgo_ts+25493, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } } } @@ -177249,7 +179121,7 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a i = v5 (*TJsonEachCursor)(unsafe.Pointer(p)).FeType = uint8(0) (*TJsonEachCursor)(unsafe.Pointer(p)).FnRoot = uint32(1) - _jsonAppendRaw(tls, p+40, __ccgo_ts+25365, uint32(1)) + _jsonAppendRaw(tls, p+40, __ccgo_ts+25499, uint32(1)) } (*TJsonEachCursor)(unsafe.Pointer(p)).FnParent = uint32(0) n = _jsonbPayloadSize(tls, p+168, i, bp) @@ -177269,10 +179141,11 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent))).FiValue = i } return SQLITE_OK + goto json_each_malformed_input json_each_malformed_input: ; Xsqlite3_free(tls, (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg) - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24936, 0) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25059, 0) _jsonEachCursorReset(tls, p) if (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg != 0 { v6 = int32(SQLITE_ERROR) @@ -177326,183 +179199,193 @@ func init() { // ** Register JSON functions. // */ func _sqlite3RegisterJsonFunctions(tls *libc.TLS) { - _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint32FromInt64(1280)/libc.Uint32FromInt64(40))) + _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint32FromInt64(1360)/libc.Uint32FromInt64(40))) } -var _aJsonFunc = [32]TFuncDef{ +var _aJsonFunc = [34]TFuncDef{ 0: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25367, + FzName: __ccgo_ts + 25501, }, 1: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25372, + FzName: __ccgo_ts + 25506, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25378, + FzName: __ccgo_ts + 25512, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25389, + FzName: __ccgo_ts + 25523, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25401, + FzName: __ccgo_ts + 25535, }, 5: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25401, + FzName: __ccgo_ts + 25535, }, 6: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25419, + FzName: __ccgo_ts + 25553, }, 7: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25439, + FzName: __ccgo_ts + 25573, }, 8: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25452, + FzName: __ccgo_ts + 25586, }, 9: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(JSON_JSON) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25466, + FzName: __ccgo_ts + 25600, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(JSON_SQL) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25469, + FzName: __ccgo_ts + 25603, }, 11: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25473, + FzName: __ccgo_ts + 25607, }, 12: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25485, + FzName: __ccgo_ts + 25619, }, 13: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25498, + FzName: __ccgo_ts + 25632, }, 14: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25510, + FzName: __ccgo_ts + 25644, }, 15: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25523, + FzName: __ccgo_ts + 25657, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25534, + FzName: __ccgo_ts + 25668, }, 17: { FnArg: int8(1), - FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25546, + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25680, }, 18: { + FnArg: int8(2), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25680, + }, + 19: { + FnArg: int8(1), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25692, + }, + 20: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25557, + FzName: __ccgo_ts + 25703, }, - 19: { + 21: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25569, + FzName: __ccgo_ts + 25715, }, - 20: { + 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25582, + FzName: __ccgo_ts + 25728, }, - 21: { + 23: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25595, + FzName: __ccgo_ts + 25741, }, - 22: { + 24: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25609, + FzName: __ccgo_ts + 25755, }, - 23: { + 25: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25618, + FzName: __ccgo_ts + 25764, }, - 24: { + 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25628, + FzName: __ccgo_ts + 25774, }, - 25: { + 27: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25628, + FzName: __ccgo_ts + 25774, }, - 26: { + 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25638, + FzName: __ccgo_ts + 25784, }, - 27: { + 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25638, + FzName: __ccgo_ts + 25784, }, - 28: { + 30: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25649, + FzName: __ccgo_ts + 25795, }, - 29: { + 31: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25666, + FzName: __ccgo_ts + 25812, }, - 30: { + 32: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25684, + FzName: __ccgo_ts + 25830, }, - 31: { + 33: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(libc.Int32FromInt32(JSON_BLOB)), - FzName: __ccgo_ts + 25702, + FzName: __ccgo_ts + 25848, }, } @@ -177525,33 +179408,35 @@ func init() { *(*uintptr)(unsafe.Add(p, 576)) = __ccgo_fp(_jsonObjectFunc) *(*uintptr)(unsafe.Add(p, 616)) = __ccgo_fp(_jsonPatchFunc) *(*uintptr)(unsafe.Add(p, 656)) = __ccgo_fp(_jsonPatchFunc) - *(*uintptr)(unsafe.Add(p, 696)) = __ccgo_fp(_jsonQuoteFunc) - *(*uintptr)(unsafe.Add(p, 736)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 776)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 816)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 856)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 896)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 936)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 976)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1016)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1056)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 1096)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 1136)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 1140)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 1144)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 1148)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 1176)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 1180)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 1184)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 1188)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 1216)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 1220)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 1224)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 696)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 736)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 776)) = __ccgo_fp(_jsonQuoteFunc) + *(*uintptr)(unsafe.Add(p, 816)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 856)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 896)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 936)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 976)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1016)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1056)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 1096)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 1136)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 1176)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 1216)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 1220)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 1224)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 1228)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 1256)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 1260)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 1264)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 1256)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 1260)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 1264)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 1268)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 1296)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 1300)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 1304)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 1308)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 1336)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 1340)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 1344)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 1348)) = __ccgo_fp(_jsonGroupInverse) } // C documentation @@ -177583,11 +179468,11 @@ var _aMod = [2]struct { FpModule uintptr }{ 0: { - FzName: __ccgo_ts + 25721, + FzName: __ccgo_ts + 25867, FpModule: uintptr(unsafe.Pointer(&_jsonEachModule)), }, 1: { - FzName: __ccgo_ts + 25731, + FzName: __ccgo_ts + 25877, FpModule: uintptr(unsafe.Pointer(&_jsonTreeModule)), }, } @@ -178266,7 +180151,7 @@ func _nodeAcquire(tls *libc.TLS, pRtree uintptr, iNode Ti64, pParent uintptr, pp } } if (*TRtree)(unsafe.Pointer(pRtree)).FpNodeBlob == uintptr(0) { - rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25741, iNode, 0, pRtree+72) + rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25887, iNode, 0, pRtree+72) } if rc != 0 { *(*uintptr)(unsafe.Pointer(ppNode)) = uintptr(0) @@ -178578,7 +180463,7 @@ func _rtreeDestroy(tls *libc.TLS, pVtab uintptr) (r int32) { var rc int32 _, _, _ = pRtree, rc, zCreate pRtree = pVtab - zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25746, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25892, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if !(zCreate != 0) { rc = int32(SQLITE_NOMEM) } else { @@ -179512,7 +181397,7 @@ func _findLeafNode(tls *libc.TLS, pRtree uintptr, iRowid Ti64, ppLeaf uintptr, p func _deserializeGeometry(tls *libc.TLS, pValue uintptr, pCons uintptr) (r int32) { var pBlob, pInfo, pSrc uintptr _, _, _ = pBlob, pInfo, pSrc /* Callback information */ - pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25828) + pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25974) if pSrc == uintptr(0) { return int32(SQLITE_ERROR) } @@ -179567,7 +181452,7 @@ func _rtreeFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintp iRowid = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) *(*Ti64)(unsafe.Pointer(bp + 16)) = 0 eType = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv))) - if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv))) == float64(iRowid) { + if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && 0 == _sqlite3IntFloatCompare(tls, iRowid, Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))) { rc = _findLeafNode(tls, pRtree, iRowid, bp+8, bp+16) } else { rc = SQLITE_OK @@ -180622,6 +182507,7 @@ func _SplitNode(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iHe rc = _nodeRelease(tls, pRtree, pLeft) pLeft = uintptr(0) } + goto splitnode_out splitnode_out: ; _nodeRelease(tls, pRtree, pRight) @@ -181055,7 +182941,7 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) _, _, _, _, _, _ = rc, zCol, zCol1, zCol2, zSql, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) _ = libc.Int32FromInt32(0) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25842, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25988, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if zSql != 0 { rc = Xsqlite3_prepare_v2(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, -int32(1), bp, uintptr(0)) } else { @@ -181065,11 +182951,11 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) if rc == SQLITE_OK { if iCol == 0 { zCol = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25862, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26008, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) } else { zCol1 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol) zCol2 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol+int32(1)) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25894, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26040, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) } } Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -181232,6 +183118,7 @@ func _rtreeUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pRow rc = Xsqlite3_reset(tls, pUp) } } + goto constraint constraint: ; _rtreeRelease(tls, pRtree) @@ -181247,6 +183134,7 @@ func _rtreeBeginTransaction(tls *libc.TLS, pVtab uintptr) (r int32) { var pRtree uintptr _ = pRtree pRtree = pVtab + _ = libc.Int32FromInt32(0) (*TRtree)(unsafe.Pointer(pRtree)).FinWrTrans = uint8(1) return SQLITE_OK } @@ -181283,7 +183171,7 @@ func _rtreeRename(tls *libc.TLS, pVtab uintptr, zNewName uintptr) (r int32) { _, _, _ = pRtree, rc, zSql pRtree = pVtab rc = int32(SQLITE_NOMEM) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25931, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26077, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) if zSql != 0 { _nodeBlobReset(tls, pRtree) rc = Xsqlite3_exec(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, uintptr(0), uintptr(0), uintptr(0)) @@ -181337,9 +183225,9 @@ func _rtreeQueryStat1(tls *libc.TLS, db uintptr, pRtree uintptr) (r int32) { var v2 int64 var _ /* p at bp+0 */ uintptr _, _, _, _, _, _ = nRow, rc, zFmt, zSql, v1, v2 - zFmt = __ccgo_ts + 26076 + zFmt = __ccgo_ts + 26222 nRow = int64(RTREE_MIN_ROWEST) - rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11582, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11707, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc != SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FnRowEst = int64(RTREE_DEFAULT_ROWEST) if rc == int32(SQLITE_ERROR) { @@ -181397,9 +183285,9 @@ func _rtreeShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName1 = [3]uintptr{ - 0: __ccgo_ts + 26132, - 1: __ccgo_ts + 5484, - 2: __ccgo_ts + 16694, + 0: __ccgo_ts + 26278, + 1: __ccgo_ts + 5548, + 2: __ccgo_ts + 16781, } var _rtreeModule = Tsqlite3_module{ @@ -181443,21 +183331,21 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref (*TRtree)(unsafe.Pointer(pRtree)).Fdb = db if isCreate != 0 { p = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26546, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26692, libc.VaList(bp+8, zDb, zPrefix)) ii = 0 for { if !(ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26608, libc.VaList(bp+8, ii)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26754, libc.VaList(bp+8, ii)) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26613, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26677, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26747, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26759, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26823, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26893, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) zCreate = Xsqlite3_str_finish(tls, p) if !(zCreate != 0) { return int32(SQLITE_NOMEM) @@ -181487,7 +183375,7 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } else { /* An UPSERT is very slightly slower than REPLACE, but it is needed ** if there are auxiliary columns */ - zFormat = __ccgo_ts + 26796 + zFormat = __ccgo_ts + 26942 } zSql = Xsqlite3_mprintf(tls, zFormat, libc.VaList(bp+8, zDb, zPrefix)) if zSql != 0 { @@ -181502,31 +183390,31 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref i++ } if (*TRtree)(unsafe.Pointer(pRtree)).FnAux != 0 && rc != int32(SQLITE_NOMEM) { - (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+26904, libc.VaList(bp+8, zDb, zPrefix)) + (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+27050, libc.VaList(bp+8, zDb, zPrefix)) if (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { p1 = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26949, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27095, libc.VaList(bp+8, zDb, zPrefix)) ii1 = 0 for { if !(ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } if ii1 != 0 { - Xsqlite3_str_append(tls, p1, __ccgo_ts+13090, int32(1)) + Xsqlite3_str_append(tls, p1, __ccgo_ts+13215, int32(1)) } if ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull) { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26976, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27122, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) } else { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26998, libc.VaList(bp+8, ii1, ii1+int32(2))) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27144, libc.VaList(bp+8, ii1, ii1+int32(2))) } goto _3 _3: ; ii1++ } - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27006, 0) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27152, 0) zSql1 = Xsqlite3_str_finish(tls, p1) if zSql1 == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -181540,14 +183428,14 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } var _azSql = [8]uintptr{ - 0: __ccgo_ts + 26137, - 1: __ccgo_ts + 26190, - 2: __ccgo_ts + 26235, - 3: __ccgo_ts + 26287, - 4: __ccgo_ts + 26341, - 5: __ccgo_ts + 26386, - 6: __ccgo_ts + 26444, - 7: __ccgo_ts + 26499, + 0: __ccgo_ts + 26283, + 1: __ccgo_ts + 26336, + 2: __ccgo_ts + 26381, + 3: __ccgo_ts + 26433, + 4: __ccgo_ts + 26487, + 5: __ccgo_ts + 26532, + 6: __ccgo_ts + 26590, + 7: __ccgo_ts + 26645, } // C documentation @@ -181605,7 +183493,7 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE _, _ = rc, zSql if isCreate != 0 { *(*int32)(unsafe.Pointer(bp)) = 0 - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27022, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27168, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) rc = _getIntFromStmt(tls, db, zSql, bp) if rc == SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = *(*int32)(unsafe.Pointer(bp)) - int32(64) @@ -181613,17 +183501,17 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = int32(4) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*int32(RTREE_MAXCELLS) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } } else { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27042, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27188, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) rc = _getIntFromStmt(tls, db, zSql, pRtree+16) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } else { if (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize < libc.Int32FromInt32(512)-libc.Int32FromInt32(64) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< libc.Int32FromInt32(RTREE_MAX_AUX_COLUMN)+libc.Int32FromInt32(3) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) return int32(SQLITE_ERROR) } Xsqlite3_vtab_config(tls, db, int32(SQLITE_VTAB_CONSTRAINT_SUPPORT), libc.VaList(bp+8, int32(1))) @@ -181700,13 +183588,13 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*4)), uint32(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*4)), uint32(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*4)), uint32(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27285, uint32(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27431, uint32(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27291, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*4))), *(*uintptr)(unsafe.Pointer(argv + 3*4)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27437, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*4))), *(*uintptr)(unsafe.Pointer(argv + 3*4)))) ii = int32(4) for { if !(ii < argc) { @@ -181715,7 +183603,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt zArg = *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*4)) if int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('+') { (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27315, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27461, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) } else { if int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux) > 0 { break @@ -181729,19 +183617,19 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27342, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27488, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) } else { if ii < argc { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, aErrMsg[int32(4)])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, aErrMsg[int32(4)])) rc = int32(SQLITE_ERROR) } else { v3 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v3 if SQLITE_OK != v3 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } } @@ -181764,7 +183652,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } } if iErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, aErrMsg[iErr])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, aErrMsg[iErr])) goto rtreeInit_fail } (*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell = uint8(int32(8) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)*int32(4)) @@ -181775,11 +183663,12 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*4)), *(*uintptr)(unsafe.Pointer(argv + 2*4)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto rtreeInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto rtreeInit_fail rtreeInit_fail: ; if rc == SQLITE_OK { @@ -181792,8 +183681,8 @@ rtreeInit_fail: } var _azFormat = [2]uintptr{ - 0: __ccgo_ts + 27321, - 1: __ccgo_ts + 27332, + 0: __ccgo_ts + 27467, + 1: __ccgo_ts + 27478, } // C documentation @@ -181851,21 +183740,21 @@ func _rtreenode(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { } _nodeGetCell(tls, bp+32, bp, ii, bp+536) if ii > 0 { - Xsqlite3_str_append(tls, pOut, __ccgo_ts+11202, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+11327, int32(1)) } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27345, libc.VaList(bp+592, (*(*TRtreeCell)(unsafe.Pointer(bp + 536))).FiRowid)) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27491, libc.VaList(bp+592, (*(*TRtreeCell)(unsafe.Pointer(bp + 536))).FiRowid)) jj = 0 for { if !(jj < int32((*(*TRtree)(unsafe.Pointer(bp + 32))).FnDim2)) { break } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27351, libc.VaList(bp+592, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 536 + 8 + uintptr(jj)*4))))) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27497, libc.VaList(bp+592, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 536 + 8 + uintptr(jj)*4))))) goto _2 _2: ; jj++ } - Xsqlite3_str_append(tls, pOut, __ccgo_ts+27355, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+27501, int32(1)) goto _1 _1: ; @@ -181892,7 +183781,7 @@ func _rtreedepth(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { _ = zBlob _ = nArg if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apArg))) != int32(SQLITE_BLOB) || Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(apArg))) < int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+27357, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+27503, -int32(1)) } else { zBlob = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(apArg))) if zBlob != 0 { @@ -182010,11 +183899,11 @@ func _rtreeCheckAppendMsg(tls *libc.TLS, pCheck uintptr, zFmt uintptr, va uintpt (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } else { if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport != 0 { - v1 = __ccgo_ts + 4203 + v1 = __ccgo_ts + 4267 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27390, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27536, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport == uintptr(0) { (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } @@ -182048,7 +183937,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt _, _, _ = nNode, pNode, pRet pRet = uintptr(0) /* Return value */ if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode == uintptr(0) { - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27397, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27543, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) } if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { Xsqlite3_bind_int64(tls, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, int32(1), iNode) @@ -182065,7 +183954,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt } _rtreeCheckReset(tls, pCheck, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && pRet == uintptr(0) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27442, libc.VaList(bp+8, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27588, libc.VaList(bp+8, iNode)) } } return pRet @@ -182094,8 +183983,8 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i var rc int32 _, _, _, _, _, _ = azSql, ii, pStmt, rc, v1, v2 azSql = [2]uintptr{ - 0: __ccgo_ts + 27474, - 1: __ccgo_ts + 27528, + 0: __ccgo_ts + 27620, + 1: __ccgo_ts + 27674, } _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(pCheck + 24 + uintptr(bLeaf)*4)) == uintptr(0) { @@ -182109,21 +183998,21 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i rc = Xsqlite3_step(tls, pStmt) if rc == int32(SQLITE_DONE) { if bLeaf != 0 { - v1 = __ccgo_ts + 27576 + v1 = __ccgo_ts + 27722 } else { - v1 = __ccgo_ts + 27584 + v1 = __ccgo_ts + 27730 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27593, libc.VaList(bp+8, iKey, iVal, v1)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27739, libc.VaList(bp+8, iKey, iVal, v1)) } else { if rc == int32(SQLITE_ROW) { ii = Xsqlite3_column_int64(tls, pStmt, 0) if ii != iVal { if bLeaf != 0 { - v2 = __ccgo_ts + 27576 + v2 = __ccgo_ts + 27722 } else { - v2 = __ccgo_ts + 27584 + v2 = __ccgo_ts + 27730 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27638, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27784, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) } } } @@ -182168,7 +184057,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 v2 = libc.BoolInt32(*(*TRtreeValue)(unsafe.Pointer(bp)) > *(*TRtreeValue)(unsafe.Pointer(bp + 4))) } if v2 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27696, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27842, libc.VaList(bp+24, i, iCell, iNode)) } if pParent != 0 { _readCoord(tls, pParent+uintptr(libc.Int32FromInt32(4)*libc.Int32FromInt32(2)*i), bp+8) @@ -182186,7 +184075,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 } } if v5 || v4 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27744, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27890, libc.VaList(bp+24, i, iCell, iNode)) } } goto _1 @@ -182221,19 +184110,19 @@ func _rtreeCheckNode(tls *libc.TLS, pCheck uintptr, iDepth int32, aParent uintpt aNode = _rtreeCheckGetNode(tls, pCheck, iNode, bp) if aNode != 0 { if *(*int32)(unsafe.Pointer(bp)) < int32(4) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27811, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27957, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) } else { /* Used to iterate through cells */ if aParent == uintptr(0) { iDepth = _readInt16(tls, aNode) if iDepth > int32(RTREE_MAX_DEPTH) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27845, libc.VaList(bp+16, iDepth)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27991, libc.VaList(bp+16, iDepth)) Xsqlite3_free(tls, aNode) return } } nCell = _readInt16(tls, aNode+2) if int32(4)+nCell*(int32(8)+(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnDim*int32(2)*int32(4)) > *(*int32)(unsafe.Pointer(bp)) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27875, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28021, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) } else { i = 0 for { @@ -182278,12 +184167,12 @@ func _rtreeCheckCount(tls *libc.TLS, pCheck uintptr, zTbl uintptr, nExpect Ti64) var pCount uintptr _, _ = nActual, pCount if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { - pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27930, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) + pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+28076, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) if pCount != 0 { if Xsqlite3_step(tls, pCount) == int32(SQLITE_ROW) { nActual = Xsqlite3_column_int64(tls, pCount, 0) if nActual != nExpect { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27961, libc.VaList(bp+8, zTbl, nExpect, nActual)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28107, libc.VaList(bp+8, zTbl, nExpect, nActual)) } } (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = Xsqlite3_finalize(tls, pCount) @@ -182312,7 +184201,7 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzDb = zDb (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzTab = zTab /* Find the number of auxiliary columns */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28028, libc.VaList(bp+64, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28174, libc.VaList(bp+64, zDb, zTab)) if pStmt != 0 { nAux = Xsqlite3_column_count(tls, pStmt) - int32(2) Xsqlite3_finalize(tls, pStmt) @@ -182322,11 +184211,11 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe } } /* Find number of dimensions in the rtree table. */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25842, libc.VaList(bp+64, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25988, libc.VaList(bp+64, zDb, zTab)) if pStmt != 0 { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim = (Xsqlite3_column_count(tls, pStmt) - int32(1) - nAux) / int32(2) if (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim < int32(1) { - _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28056, 0) + _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28202, 0) } else { if int32(SQLITE_ROW) == Xsqlite3_step(tls, pStmt) { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FbInt = libc.BoolInt32(Xsqlite3_column_type(tls, pStmt, int32(1)) == int32(SQLITE_INTEGER)) @@ -182342,8 +184231,8 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe if (*(*TRtreeCheck)(unsafe.Pointer(bp))).Frc == SQLITE_OK { _rtreeCheckNode(tls, bp, 0, uintptr(0), int64(1)) } - _rtreeCheckCount(tls, bp, __ccgo_ts+28087, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) - _rtreeCheckCount(tls, bp, __ccgo_ts+28094, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28233, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28240, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) } /* Finalize SQL statements used by the integrity-check */ Xsqlite3_finalize(tls, (*(*TRtreeCheck)(unsafe.Pointer(bp))).FpGetNode) @@ -182371,7 +184260,7 @@ func _rtreeIntegrity(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zName uintpt _ = isQuick rc = _rtreeCheckTable(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, pzErr) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28102, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28248, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) if *(*uintptr)(unsafe.Pointer(pzErr)) == uintptr(0) { rc = int32(SQLITE_NOMEM) } @@ -182422,13 +184311,13 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { var _ /* zReport at bp+0 */ uintptr _, _, _, _ = rc, zDb, zTab, v1 if nArg != int32(1) && nArg != int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+28121, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+28267, -int32(1)) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zDb = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg))) if nArg == int32(1) { zTab = zDb - zDb = __ccgo_ts + 6585 + zDb = __ccgo_ts + 6649 } else { zTab = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*4))) } @@ -182437,7 +184326,7 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(bp)) } else { - v1 = __ccgo_ts + 18461 + v1 = __ccgo_ts + 18548 } Xsqlite3_result_text(tls, ctx, v1, -int32(1), uintptr(-libc.Int32FromInt32(1))) } else { @@ -182770,6 +184659,7 @@ func _geopolyParseJson(tls *libc.TLS, z uintptr, pRc uintptr) (r uintptr) { rc = int32(SQLITE_ERROR) } } + goto parse_json_err parse_json_err: ; if pRc != 0 { @@ -182903,19 +184793,19 @@ func _geopolyJsonFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if p != 0 { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) - Xsqlite3_str_append(tls, x, __ccgo_ts+25095, int32(1)) + Xsqlite3_str_append(tls, x, __ccgo_ts+25224, int32(1)) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28172, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28318, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28183, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28329, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -182944,20 +184834,20 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) cSep = uint8('\'') - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28194, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28340, 0) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28212, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28358, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) cSep = uint8(' ') goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28220, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28366, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) i = int32(1) for { if !(i < argc) { @@ -182965,14 +184855,14 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*4))) if z != 0 && *(*uint8)(unsafe.Pointer(z)) != 0 { - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28228, libc.VaList(bp+8, z)) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28374, libc.VaList(bp+8, z)) } goto _2 _2: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28232, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28378, 0) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -183278,6 +185168,7 @@ func _geopolyBBox(tls *libc.TLS, context uintptr, pPoly uintptr, aCoord uintptr, if !(aCoord == uintptr(0)) { goto _6 } + goto geopolyBboxFill geopolyBboxFill: ; pOut = Xsqlite3_realloc64(tls, p, uint64(libc.Uint32FromInt64(40)+libc.Uint32FromInt64(4)*libc.Uint32FromInt32(2)*uint32(libc.Int32FromInt32(4)-libc.Int32FromInt32(4)))) @@ -183381,8 +185272,8 @@ func _geopolyBBoxStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if pBBox == uintptr(0) { return } - if (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit == 0 { - (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit = int32(1) + if libc.AtomicLoadPInt32(pBBox) == 0 { + libc.AtomicStorePInt32(pBBox, int32(1)) libc.Xmemcpy(tls, pBBox+4, bp, libc.Uint32FromInt64(4)*libc.Uint32FromInt32(4)) } else { if *(*TRtreeValue)(unsafe.Pointer(bp)) < *(*TRtreeValue)(unsafe.Pointer(pBBox + 4)) { @@ -184015,6 +185906,7 @@ func _geopolyOverlap(tls *libc.TLS, p1 uintptr, p2 uintptr) (r int32) { } } } + goto geopolyOverlapDone geopolyOverlapDone: ; Xsqlite3_free(tls, p) @@ -184106,13 +185998,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*4)), uint32(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*4)), uint32(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*4)), uint32(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27285, uint32(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27431, uint32(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28245, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28391, 0) (*TRtree)(unsafe.Pointer(pRtree)).FnAux = uint8(1) /* Add one for _shape */ (*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull = uint8(1) /* The _shape column is always not-null */ ii = int32(3) @@ -184121,13 +186013,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint break } (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28267, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*4)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28413, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*4)))) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27342, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27488, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) @@ -184135,7 +186027,7 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint v2 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v2 if SQLITE_OK != v2 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } Xsqlite3_free(tls, zSql) @@ -184150,11 +186042,12 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*4)), *(*uintptr)(unsafe.Pointer(argv + 2*4)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto geopolyInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto geopolyInit_fail geopolyInit_fail: ; if rc == SQLITE_OK { @@ -184308,6 +186201,7 @@ func _geopolyFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uin *(*int32)(unsafe.Pointer(bp + 4)) = _rtreeStepToLeaf(tls, pCsr) } } + goto geopoly_filter_end geopoly_filter_end: ; _nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp))) @@ -184365,7 +186259,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iRowidTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(1) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16694 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16781 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).Fomit = uint8(1) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(30) @@ -184375,7 +186269,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iFuncTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = idxNum - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28271 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28417 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).Fomit = uint8(0) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(300) @@ -184383,7 +186277,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { return SQLITE_OK } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(4) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28277 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28423 (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(3e+06) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(100000) return SQLITE_OK @@ -184505,7 +186399,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR _geopolyBBox(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(aData + 2*4)), bp+8+8, bp) if *(*int32)(unsafe.Pointer(bp)) != 0 { if *(*int32)(unsafe.Pointer(bp)) == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28286, 0) + (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28432, 0) } goto geopoly_update_end } @@ -184593,6 +186487,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, pUp) } } + goto geopoly_update_end geopoly_update_end: ; _rtreeRelease(tls, pRtree) @@ -184608,12 +186503,12 @@ geopoly_update_end: func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28326) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28472) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28342) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28488) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) @@ -184684,7 +186579,7 @@ func _sqlite3_geopoly_init(tls *libc.TLS, db uintptr) (r int32) { i++ } if rc == SQLITE_OK { - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28519, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28665, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) } return rc } @@ -184698,61 +186593,61 @@ var _aFunc = [12]struct { 0: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28357, + FzName: __ccgo_ts + 28503, }, 1: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28370, + FzName: __ccgo_ts + 28516, }, 2: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28383, + FzName: __ccgo_ts + 28529, }, 3: { FnArg: int8(-int32(1)), FbPure: uint8(1), - FzName: __ccgo_ts + 28396, + FzName: __ccgo_ts + 28542, }, 4: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28342, + FzName: __ccgo_ts + 28488, }, 5: { FnArg: int8(3), FbPure: uint8(1), - FzName: __ccgo_ts + 28408, + FzName: __ccgo_ts + 28554, }, 6: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28326, + FzName: __ccgo_ts + 28472, }, 7: { FnArg: int8(1), - FzName: __ccgo_ts + 28431, + FzName: __ccgo_ts + 28577, }, 8: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28445, + FzName: __ccgo_ts + 28591, }, 9: { FnArg: int8(7), FbPure: uint8(1), - FzName: __ccgo_ts + 28458, + FzName: __ccgo_ts + 28604, }, 10: { FnArg: int8(4), FbPure: uint8(1), - FzName: __ccgo_ts + 28472, + FzName: __ccgo_ts + 28618, }, 11: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28488, + FzName: __ccgo_ts + 28634, }, } @@ -184778,7 +186673,7 @@ var _aAgg = [1]struct { FzName uintptr }{ 0: { - FzName: __ccgo_ts + 28500, + FzName: __ccgo_ts + 28646, }, } @@ -184803,20 +186698,20 @@ func _sqlite3RtreeInit(tls *libc.TLS, db uintptr) (r int32) { var rc, utf8 int32 _, _, _, _ = c, c1, rc, utf8 utf8 = int32(SQLITE_UTF8) - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28527, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28673, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28537, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28683, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28548, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28694, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { c = libc.UintptrFromInt32(RTREE_COORD_REAL32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28271, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28417, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) } if rc == SQLITE_OK { c1 = libc.UintptrFromInt32(RTREE_COORD_INT32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28559, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28705, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) } if rc == SQLITE_OK { rc = _sqlite3_geopoly_init(tls, db) @@ -184918,7 +186813,7 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { Xsqlite3_result_error_nomem(tls, ctx) _rtreeMatchArgFree(tls, pBlob) } else { - Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25828, __ccgo_fp(_rtreeMatchArgFree)) + Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25974, __ccgo_fp(_rtreeMatchArgFree)) } } } @@ -186147,7 +188042,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt /* Figure out the size of the output */ nOut = _rbuDeltaOutputSize(tls, aDelta, nDelta) if nOut < 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+28569, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28715, -int32(1)) return } aOut = Xsqlite3_malloc(tls, nOut+int32(1)) @@ -186157,7 +188052,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt nOut2 = _rbuDeltaApply(tls, aOrig, nOrig, aDelta, nDelta, aOut) if nOut2 != nOut { Xsqlite3_free(tls, aOut) - Xsqlite3_result_error(tls, context, __ccgo_ts+28569, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28715, -int32(1)) } else { Xsqlite3_result_blob(tls, context, aOut, nOut, __ccgo_fp(Xsqlite3_free)) } @@ -186183,7 +188078,7 @@ func _prepareAndCollectError(tls *libc.TLS, db uintptr, ppStmt uintptr, pzErrmsg _ = rc rc = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), ppStmt, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) } return rc @@ -186206,7 +188101,7 @@ func _resetAndCollectError(tls *libc.TLS, pStmt uintptr, pzErrmsg uintptr) (r in _ = rc rc = Xsqlite3_reset(tls, pStmt) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) } return rc } @@ -186339,7 +188234,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { /* Free any SQLite statements used while processing the previous object */ _rbuObjIterClearStatements(tls, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28590, uintptr(0), uintptr(0), p+36) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28736, uintptr(0), uintptr(0), p+36) } if rc == SQLITE_OK { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 { @@ -186349,6 +188244,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { if rc != int32(SQLITE_ROW) { rc = _resetAndCollectError(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, p+36) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = uintptr(0) + (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = uintptr(0) } else { (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, 0) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, int32(1)) @@ -186429,7 +188325,7 @@ func _rbuTargetNameFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { Xsqlite3_result_text(tls, pCtx, zIn, -int32(1), libc.UintptrFromInt32(0)) } } else { - if libc.Xstrlen(tls, zIn) > uint32(4) && libc.Xmemcmp(tls, __ccgo_ts+25741, zIn, uint32(4)) == 0 { + if libc.Xstrlen(tls, zIn) > uint32(4) && libc.Xmemcmp(tls, __ccgo_ts+25887, zIn, uint32(4)) == 0 { i = int32(4) for { if !(int32(*(*uint8)(unsafe.Pointer(zIn + uintptr(i)))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(zIn + uintptr(i)))) <= int32('9')) { @@ -186466,13 +188362,13 @@ func _rbuObjIterFirst(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { _, _ = rc, v1 libc.Xmemset(tls, pIter, 0, uint32(108)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 28761 + v1 = __ccgo_ts + 28907 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+28802, libc.VaList(bp+8, v1))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+28948, libc.VaList(bp+8, v1))) if rc == SQLITE_OK { - rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+4, p+36, __ccgo_ts+28952) + rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+4, p+36, __ccgo_ts+29098) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup = int32(1) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -186640,7 +188536,7 @@ func _rbuFinalize(tls *libc.TLS, p uintptr, pStmt uintptr) { rc = Xsqlite3_finalize(tls, pStmt) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && rc != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } @@ -186702,7 +188598,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu *(*int32)(unsafe.Pointer(peType)) = RBU_PK_NOTABLE *(*int32)(unsafe.Pointer(piPk)) = 0 _ = libc.Int32FromInt32(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29077, libc.VaList(bp+24, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29223, libc.VaList(bp+24, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK || Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0]) != int32(SQLITE_ROW) { /* Either an error, or no such table. */ goto rbuTableType_end @@ -186712,7 +188608,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } *(*int32)(unsafe.Pointer(piTnum)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0], int32(1)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29196, libc.VaList(bp+24, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29342, libc.VaList(bp+24, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { goto rbuTableType_end } @@ -186720,7 +188616,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu zOrig = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(3)) zIdx = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(1)) if zOrig != 0 && zIdx != 0 && int32(*(*Tu8)(unsafe.Pointer(zOrig))) == int32('p') { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29217, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29363, libc.VaList(bp+24, zIdx))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)]) == int32(SQLITE_ROW) { *(*int32)(unsafe.Pointer(piPk)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)], 0) @@ -186732,7 +188628,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29268, libc.VaList(bp+24, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29414, libc.VaList(bp+24, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { for Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)]) == int32(SQLITE_ROW) { if Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)], int32(5)) > 0 { @@ -186742,6 +188638,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu } *(*int32)(unsafe.Pointer(peType)) = int32(RBU_PK_NONE) } + goto rbuTableType_end rbuTableType_end: ; i = uint32(0) @@ -186775,7 +188672,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { bIndex = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { libc.Xmemcpy(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk, uint32(1)*uint32((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29289, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29435, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FnIndex = 0 for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -186788,7 +188685,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { if bPartial != 0 { libc.Xmemset(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, int32(0x01), uint32(1)*uint32((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+16, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+16, zIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 4)), int32(1)) if iCid >= 0 { @@ -186842,7 +188739,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 _rbuTableType(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, pIter+36, bp+4, pIter+60) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NOTABLE { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+19904, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+20036, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc @@ -186854,7 +188751,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 /* Populate the azTblCol[] and nTblCol variables based on the columns ** of the input table. Ignore any input table columns that begin with ** "rbu_". */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29346, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29492, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { nCol = Xsqlite3_column_count(tls, *(*uintptr)(unsafe.Pointer(bp))) _rbuAllocateIterArrays(tls, p, pIter, nCol) @@ -186865,7 +188762,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 break } zName = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), i) - if Xsqlite3_strnicmp(tls, __ccgo_ts+29365, zName, int32(4)) != 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+29511, zName, int32(4)) != 0 { zCopy = _rbuStrndup(tls, zName, p+32) *(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)*4)) = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol v3 = pIter + 8 @@ -186873,7 +188770,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 *(*int32)(unsafe.Pointer(v3))++ *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(v2)*4)) = zCopy } else { - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29370, zName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29516, zName) { bRbuRowid = int32(1) } } @@ -186887,17 +188784,17 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && bRbuRowid != libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) if bRbuRowid != 0 { - v4 = __ccgo_ts + 29380 + v4 = __ccgo_ts + 29526 } else { - v4 = __ccgo_ts + 29393 + v4 = __ccgo_ts + 29539 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29402, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29548, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) } /* Check that all non-HIDDEN columns in the destination table are also ** present in the input table. Populate the abTblPk[], azTblType[] and ** aiTblOrder[] arrays at the same time. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29431, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29577, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zName1 = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -186919,7 +188816,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 } if i == (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29453, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29599, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) } else { iPk = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) bNotNull = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) @@ -186961,15 +188858,15 @@ func _rbuObjIterGetCollist(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) var z, zList, zSep uintptr _, _, _, _ = i, z, zList, zSep zList = uintptr(0) - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } z = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+29480, libc.VaList(bp+8, zList, zSep, z)) - zSep = __ccgo_ts + 14990 + zList = _rbuMPrintf(tls, p, __ccgo_ts+29626, libc.VaList(bp+8, zList, zSep, z)) + zSep = __ccgo_ts + 15083 goto _1 _1: ; @@ -186994,7 +188891,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, _, _, _, _, _ = i, iPk, zCol, zRet, zSep iPk = int32(1) zRet = uintptr(0) - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 for int32(1) != 0 { i = 0 for { @@ -187003,7 +188900,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, } if int32(*(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == iPk { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29489, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29635, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) zSep = zSeparator break } @@ -187051,21 +188948,21 @@ func _rbuVacuumTableStart(tls *libc.TLS, p uintptr, pIter uintptr, bRowid int32, *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zRet = uintptr(0) if bRowid != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29502, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29648, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iMax = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29534, libc.VaList(bp+16, iMax)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29680, libc.VaList(bp+16, iMax)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1648, __ccgo_ts+14990, __ccgo_ts+29557) - zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29563, __ccgo_ts+29570, __ccgo_ts+5106) - zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1648, __ccgo_ts+14990, __ccgo_ts+1648) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1662, __ccgo_ts+15083, __ccgo_ts+29703) + zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29709, __ccgo_ts+29716, __ccgo_ts+5170) + zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1662, __ccgo_ts+15083, __ccgo_ts+1662) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29578, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29724, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zVal = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29620, libc.VaList(bp+16, zList, zVal)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29766, libc.VaList(bp+16, zList, zVal)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } @@ -187114,10 +189011,10 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { zVector = uintptr(0) zRet = uintptr(0) bFailed = 0 - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 iCol = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(4)) @@ -187140,15 +189037,15 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _ = libc.Int32FromInt32(0) zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)) } else { - zCol = __ccgo_ts + 29640 + zCol = __ccgo_ts + 29786 } } else { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*4)) } - zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29648, libc.VaList(bp+16, zLhs, zSep, zCol, zCollate)) - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29669, libc.VaList(bp+16, zOrder, zSep, iCol, zCol, zCollate)) - zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29705, libc.VaList(bp+16, zSelect, zSep, iCol, zCol)) - zSep = __ccgo_ts + 14990 + zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29794, libc.VaList(bp+16, zLhs, zSep, zCol, zCollate)) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29815, libc.VaList(bp+16, zOrder, zSep, iCol, zCol, zCollate)) + zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29851, libc.VaList(bp+16, zSelect, zSep, iCol, zCol)) + zSep = __ccgo_ts + 15083 iCol++ } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) @@ -187157,9 +189054,9 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29732, libc.VaList(bp+16, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29878, libc.VaList(bp+16, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) { - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 iCol = 0 for { if !(iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol) { @@ -187174,19 +189071,20 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { break } } - zVector = _rbuMPrintf(tls, p, __ccgo_ts+29780, libc.VaList(bp+16, zVector, zSep, zQuoted)) - zSep = __ccgo_ts + 14990 + zVector = _rbuMPrintf(tls, p, __ccgo_ts+29926, libc.VaList(bp+16, zVector, zSep, zQuoted)) + zSep = __ccgo_ts + 15083 goto _2 _2: ; iCol++ } if !(bFailed != 0) { - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29787, libc.VaList(bp+16, zLhs, zVector)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29933, libc.VaList(bp+16, zLhs, zVector)) } } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 4))) } + goto index_start_out index_start_out: ; Xsqlite3_free(tls, zOrder) @@ -187235,12 +189133,12 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zImpPK = uintptr(0) /* String to return via *pzImposterPK */ zWhere = uintptr(0) /* String to return via *pzWhere */ nBind = 0 /* Value to return via *pnBind */ - zCom = __ccgo_ts + 1648 /* Set to ", " later on */ - zAnd = __ccgo_ts + 1648 /* Set to " AND " later on */ + zCom = __ccgo_ts + 1662 /* Set to ", " later on */ + zAnd = __ccgo_ts + 1662 /* Set to " AND " later on */ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_xinfo = ? */ if rc == SQLITE_OK { _ = libc.Int32FromInt32(0) - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -187249,8 +189147,8 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = uintptr(0) if iCid == -int32(2) { iSeq = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29799, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*8))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*8))).FzSpan, zCollate)) - zType = __ccgo_ts + 1648 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29945, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*8))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*8))).FzSpan, zCollate)) + zType = __ccgo_ts + 1662 } else { if iCid < 0 { /* An integer primary key. If the table has an explicit IPK, use @@ -187270,9 +189168,9 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)) } else { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - zCol = __ccgo_ts + 29640 + zCol = __ccgo_ts + 29786 } else { - zCol = __ccgo_ts + 29370 + zCol = __ccgo_ts + 29516 } } zType = __ccgo_ts + 1136 @@ -187280,24 +189178,24 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*4)) zType = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*4)) } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29821, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29967, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) } if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbUnique == 0 || Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) != 0 { if bDesc != 0 { - v2 = __ccgo_ts + 29557 + v2 = __ccgo_ts + 29703 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } zOrder = v2 - zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29841, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) + zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29987, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) } - zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+29862, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) - zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+29895, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) + zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+30008, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) + zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+30041, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) if zRet == uintptr(0) || zImpPK == uintptr(0) || zImpCols == uintptr(0) || zWhere == uintptr(0) { rc = int32(SQLITE_NOMEM) } - zCom = __ccgo_ts + 14990 - zAnd = __ccgo_ts + 22013 + zCom = __ccgo_ts + 15083 + zAnd = __ccgo_ts + 22158 nBind++ } rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -187343,7 +189241,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr _, _, _, _ = i, zCol, zList, zS zList = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zS = __ccgo_ts + 1648 + zS = __ccgo_ts + 1662 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -187351,11 +189249,11 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed + uintptr(i))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)) - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29919, libc.VaList(bp+8, zList, zS, zObj, zCol)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30065, libc.VaList(bp+8, zList, zS, zObj, zCol)) } else { - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29931, libc.VaList(bp+8, zList, zS)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30077, libc.VaList(bp+8, zList, zS)) } - zS = __ccgo_ts + 14990 + zS = __ccgo_ts + 15083 if zList == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) break @@ -187367,7 +189265,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } /* For a table with implicit rowids, append "old._rowid_" to the list. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29940, libc.VaList(bp+8, zList, zObj)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30086, libc.VaList(bp+8, zList, zObj)) } } return zList @@ -187393,27 +189291,27 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _ = i, i1, zCol, zList, zSep, zSep1 zList = uintptr(0) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29955, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30101, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29969, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) - zSep = __ccgo_ts + 22013 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30115, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) + zSep = __ccgo_ts + 22158 } goto _1 _1: ; i++ } - zList = _rbuMPrintf(tls, p, __ccgo_ts+29981, libc.VaList(bp+8, zList)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30127, libc.VaList(bp+8, zList)) } else { - zSep1 = __ccgo_ts + 1648 + zSep1 = __ccgo_ts + 1662 i1 = 0 for { if !(i1 < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -187421,8 +189319,8 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i1))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i1)*4)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+30031, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) - zSep1 = __ccgo_ts + 22013 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30177, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) + zSep1 = __ccgo_ts + 22158 } goto _2 _2: @@ -187445,7 +189343,7 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { // */ func _rbuBadControlError(tls *libc.TLS, p uintptr) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30044, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30190, 0) } // C documentation @@ -187479,7 +189377,7 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt if int32(libc.Xstrlen(tls, zMask)) != (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { _rbuBadControlError(tls, p) } else { - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -187487,16 +189385,16 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt } c = *(*uint8)(unsafe.Pointer(zMask + uintptr(*(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(i)*4))))) if int32(c) == int32('x') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30031, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), i+int32(1))) - zSep = __ccgo_ts + 14990 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30177, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), i+int32(1))) + zSep = __ccgo_ts + 15083 } else { if int32(c) == int32('d') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30070, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), i+int32(1))) - zSep = __ccgo_ts + 14990 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30216, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), i+int32(1))) + zSep = __ccgo_ts + 15083 } else { if int32(c) == int32('f') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30100, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), i+int32(1))) - zSep = __ccgo_ts + 14990 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30246, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*4)), i+int32(1))) + zSep = __ccgo_ts + 15083 } } } @@ -187581,16 +189479,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { z = uintptr(0) _ = libc.Int32FromInt32(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zSep = __ccgo_ts + 30137 + zSep = __ccgo_ts + 30283 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_list = (pIter->zTbl) */ *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) /* PRAGMA index_xinfo = */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29289, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29435, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zOrig = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) - if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16582) == 0 { + if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16669) == 0 { zIdx = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+16, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+16, zIdx))) } break } @@ -187601,16 +189499,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { /* int iCid = sqlite3_column_int(pXInfo, 0); */ zCol = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 4)), int32(2)) if Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 4)), int32(3)) != 0 { - v1 = __ccgo_ts + 29557 + v1 = __ccgo_ts + 29703 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } zDesc = v1 - z = _rbuMPrintf(tls, p, __ccgo_ts+30150, libc.VaList(bp+16, z, zSep, zCol, zDesc)) - zSep = __ccgo_ts + 14990 + z = _rbuMPrintf(tls, p, __ccgo_ts+30296, libc.VaList(bp+16, z, zSep, zCol, zDesc)) + zSep = __ccgo_ts + 15083 } } - z = _rbuMPrintf(tls, p, __ccgo_ts+30161, libc.VaList(bp+16, z)) + z = _rbuMPrintf(tls, p, __ccgo_ts+30307, libc.VaList(bp+16, z)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 4))) } return z @@ -187650,13 +189548,13 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* SELECT name ... WHERE rootpage = $tnum */ zIdx = uintptr(0) /* Name of PK index */ *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) /* PRAGMA main.index_xinfo = $zIdx */ - zComma = __ccgo_ts + 1648 + zComma = __ccgo_ts + 1662 zCols = uintptr(0) /* Used to build up list of table cols */ zPk = uintptr(0) /* Used to build up table PK declaration */ /* Figure out the name of the primary key index for the current table. ** This is needed for the argument to "PRAGMA index_xinfo". Set ** zIdx to point to a nul-terminated string containing this name. */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, __ccgo_ts+30165) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, __ccgo_ts+30311) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), tnum) if int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -187664,7 +189562,7 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { } } if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+16, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+4, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+16, zIdx))) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) { @@ -187673,21 +189571,21 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 4)), int32(1)) bDesc = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 4)), int32(3)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 4)), int32(4)) - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30215, libc.VaList(bp+16, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*4)), zCollate)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30361, libc.VaList(bp+16, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*4)), zCollate)) if bDesc != 0 { - v1 = __ccgo_ts + 29557 + v1 = __ccgo_ts + 29703 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - zPk = _rbuMPrintf(tls, p, __ccgo_ts+30237, libc.VaList(bp+16, zPk, zComma, iCid, v1)) - zComma = __ccgo_ts + 14990 + zPk = _rbuMPrintf(tls, p, __ccgo_ts+30383, libc.VaList(bp+16, zPk, zComma, iCid, v1)) + zComma = __ccgo_ts + 15083 } } - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30247, libc.VaList(bp+16, zCols)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30393, libc.VaList(bp+16, zCols)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 4))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30262, libc.VaList(bp+16, zCols, zPk)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30408, libc.VaList(bp+16, zCols, zPk)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, 0)) } } @@ -187722,30 +189620,30 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { _, _, _, _, _, _, _, _, _ = iCol, tnum, zCol, zComma, zPk, zPk1, zSql, v2, v3 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { tnum = (*TRbuObjIter)(unsafe.Pointer(pIter)).FiTnum - zComma = __ccgo_ts + 1648 + zComma = __ccgo_ts + 1662 zSql = uintptr(0) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, int32(1))) iCol = 0 for { if !((*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } - zPk = __ccgo_ts + 1648 + zPk = __ccgo_ts + 1662 zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCol)*4)) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_IPK) && *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(iCol))) != 0 { /* If the target table column is an "INTEGER PRIMARY KEY", add ** "PRIMARY KEY" to the imposter table column declaration. */ - zPk = __ccgo_ts + 30324 + zPk = __ccgo_ts + 30470 } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iCol))) != 0 { - v2 = __ccgo_ts + 30337 + v2 = __ccgo_ts + 30483 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30347, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*4)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) - zComma = __ccgo_ts + 14990 + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30493, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*4)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) + zComma = __ccgo_ts + 15083 goto _1 _1: ; @@ -187754,17 +189652,17 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { zPk1 = _rbuWithoutRowidPK(tls, p, pIter) if zPk1 != 0 { - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30374, libc.VaList(bp+16, zSql, zPk1)) + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30520, libc.VaList(bp+16, zSql, zPk1)) } } - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(1), tnum)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(1), tnum)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { - v3 = __ccgo_ts + 30381 + v3 = __ccgo_ts + 30527 } else { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30396, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, 0)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30542, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, 0)) } } @@ -187791,7 +189689,7 @@ func _rbuObjIterPrepareTmpInsert(tls *libc.TLS, p uintptr, pIter uintptr, zColli zBind = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1)+bRbuRowid) if zBind != 0 { _ = libc.Int32FromInt32(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+88, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+30428, libc.VaList(bp+8, p+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+88, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+30574, libc.VaList(bp+8, p+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) } } @@ -187839,7 +189737,7 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt zRet = uintptr(0) _ = libc.Int32FromInt32(0) if *(*int32)(unsafe.Pointer(bp + 4)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp + 4)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, __ccgo_ts+30485) + *(*int32)(unsafe.Pointer(bp + 4)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+36, __ccgo_ts+30631) } if *(*int32)(unsafe.Pointer(bp + 4)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp + 4)) = Xsqlite3_bind_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx, -int32(1), libc.UintptrFromInt32(0)) @@ -188010,7 +189908,7 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zIdx = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx zLimit = uintptr(0) if nOffset != 0 { - zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30551, libc.VaList(bp+24, nOffset)) + zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30697, libc.VaList(bp+24, nOffset)) if !(zLimit != 0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } @@ -188028,18 +189926,18 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zCollist = _rbuObjIterGetIndexCols(tls, p, pIter, bp, bp+4, bp+8, bp+12) zBind = _rbuObjIterGetBindlist(tls, p, *(*int32)(unsafe.Pointer(bp + 12))) /* Create the imposter table used to write to this index. */ - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, int32(1))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30571, libc.VaList(bp+24, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 4)))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30717, libc.VaList(bp+24, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 4)))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, 0)) /* Create the statement to insert index entries */ (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = *(*int32)(unsafe.Pointer(bp + 12)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+80, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+30636, libc.VaList(bp+24, zTbl, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+80, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+30782, libc.VaList(bp+24, zTbl, zBind))) } /* And to delete index entries */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+84, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+30672, libc.VaList(bp+24, zTbl, *(*uintptr)(unsafe.Pointer(bp + 8))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+84, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+30818, libc.VaList(bp+24, zTbl, *(*uintptr)(unsafe.Pointer(bp + 8))))) } /* Create the SELECT statement to read keys in sorted order */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -188054,26 +189952,26 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } if zStart != 0 { if zPart != 0 { - v2 = __ccgo_ts + 30706 + v2 = __ccgo_ts + 30852 } else { - v2 = __ccgo_ts + 30710 + v2 = __ccgo_ts + 30856 } v1 = v2 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30716, libc.VaList(bp+24, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30862, libc.VaList(bp+24, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) Xsqlite3_free(tls, zStart) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30777, libc.VaList(bp+24, zCollist, p+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30923, libc.VaList(bp+24, zCollist, p+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) } else { if zPart != 0 { - v3 = __ccgo_ts + 30706 + v3 = __ccgo_ts + 30852 } else { - v3 = __ccgo_ts + 30710 + v3 = __ccgo_ts + 30856 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30838, libc.VaList(bp+24, zCollist, p+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30984, libc.VaList(bp+24, zCollist, p+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -188092,62 +189990,62 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zTbl1 = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl /* Imposter table name */ zBindings = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+bRbuRowid) zWhere1 = _rbuObjIterGetWhere(tls, p, pIter) - zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6596) - zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6592) + zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6660) + zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6656) zCollist = _rbuObjIterGetCollist(tls, p, pIter) (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol /* Create the imposter table or tables (if required). */ _rbuCreateImposterTable(tls, p, pIter) _rbuCreateImposterTable2(tls, p, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) { - v4 = __ccgo_ts + 1648 + v4 = __ccgo_ts + 1662 } else { - v4 = __ccgo_ts + 30997 + v4 = __ccgo_ts + 31143 } zWrite = v4 /* Create the INSERT statement to write to the target PK b-tree */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if bRbuRowid != 0 { - v5 = __ccgo_ts + 31006 + v5 = __ccgo_ts + 31152 } else { - v5 = __ccgo_ts + 1648 + v5 = __ccgo_ts + 1662 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+80, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31016, libc.VaList(bp+24, zWrite, zTbl1, zCollist, v5, zBindings))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+80, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31162, libc.VaList(bp+24, zWrite, zTbl1, zCollist, v5, zBindings))) } /* Create the DELETE statement to write to the target PK b-tree. ** Because it only performs INSERT operations, this is not required for ** an rbu vacuum handle. */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+84, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31052, libc.VaList(bp+24, zWrite, zTbl1, zWhere1))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+84, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31198, libc.VaList(bp+24, zWrite, zTbl1, zWhere1))) } if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zRbuRowid = __ccgo_ts + 1648 + zRbuRowid = __ccgo_ts + 1662 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zRbuRowid = __ccgo_ts + 31080 + zRbuRowid = __ccgo_ts + 31226 } /* Create the rbu_tmp_xxx table and the triggers to populate it. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - v6 = __ccgo_ts + 31092 + v6 = __ccgo_ts + 31238 } else { - v6 = __ccgo_ts + 1648 + v6 = __ccgo_ts + 1662 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31109, libc.VaList(bp+24, p+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31185, libc.VaList(bp+24, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31255, libc.VaList(bp+24, p+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31331, libc.VaList(bp+24, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31484, libc.VaList(bp+24, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31630, libc.VaList(bp+24, zWrite, zTbl1, zNewlist)) } _rbuObjIterPrepareTmpInsert(tls, p, pIter, zCollist, zRbuRowid) } /* Create the SELECT statement to read keys from data_xxx */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zRbuRowid1 = __ccgo_ts + 1648 + zRbuRowid1 = __ccgo_ts + 1662 zStart1 = uintptr(0) zOrder = uintptr(0) if bRbuRowid != 0 { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v7 = __ccgo_ts + 31583 + v7 = __ccgo_ts + 31729 } else { - v7 = __ccgo_ts + 31593 + v7 = __ccgo_ts + 31739 } zRbuRowid1 = v7 } @@ -188160,28 +190058,28 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } } if bRbuRowid != 0 { - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29640, 0) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29786, 0) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1648, __ccgo_ts+14990, __ccgo_ts+1648) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1662, __ccgo_ts+15083, __ccgo_ts+1662) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v8 = __ccgo_ts + 31604 + v8 = __ccgo_ts + 31750 } else { - v8 = __ccgo_ts + 1648 + v8 = __ccgo_ts + 1662 } if zStart1 != 0 { v9 = zStart1 } else { - v9 = __ccgo_ts + 1648 + v9 = __ccgo_ts + 1662 } if zOrder != 0 { - v10 = __ccgo_ts + 23207 + v10 = __ccgo_ts + 23352 } else { - v10 = __ccgo_ts + 1648 + v10 = __ccgo_ts + 1662 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+76, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31610, libc.VaList(bp+24, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+76, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31756, libc.VaList(bp+24, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) } Xsqlite3_free(tls, zStart1) Xsqlite3_free(tls, zOrder) @@ -188268,11 +190166,11 @@ func _rbuGetUpdateStmt(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintptr, p (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpNext = (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate = pUp if zSet != 0 { - zPrefix = __ccgo_ts + 1648 + zPrefix = __ccgo_ts + 1662 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { - zPrefix = __ccgo_ts + 30997 + zPrefix = __ccgo_ts + 31143 } - zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31658, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) + zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31804, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pUp+4, p+36, zUpdate) *(*uintptr)(unsafe.Pointer(ppStmt)) = (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate } @@ -188299,7 +190197,7 @@ func _rbuOpenDbhandle(tls *libc.TLS, p uintptr, zName uintptr, bUseVfs int32) (r } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_open_v2(tls, zName, bp, flags, v1) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) Xsqlite3_close(tls, *(*uintptr)(unsafe.Pointer(bp))) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) } @@ -188346,7 +190244,7 @@ func _rbuLoadState(tls *libc.TLS, p uintptr) (r uintptr) { if pRet == uintptr(0) { return uintptr(0) } - *(*int32)(unsafe.Pointer(bp + 4)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+31688, libc.VaList(bp+16, p+24))) + *(*int32)(unsafe.Pointer(bp + 4)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+36, Xsqlite3_mprintf(tls, __ccgo_ts+31834, libc.VaList(bp+16, p+24))) for *(*int32)(unsafe.Pointer(bp + 4)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { switch Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) { case int32(RBU_STATE_STAGE): @@ -188408,27 +190306,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu = _rbuOpenDbhandle(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, int32(1)) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain = dbMain if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6585, int32(SQLITE_FCNTL_RBUCNT), p) + Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6649, int32(SQLITE_FCNTL_RBUCNT), p) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState == uintptr(0) { - zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6585) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31718, libc.VaList(bp+8, zFile, zFile)) + zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6649) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31864, libc.VaList(bp+8, zFile, zFile)) } } /* If using separate RBU and state databases, attach the state database to ** the RBU db handle now. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState != 0 { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31746, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) - libc.Xmemcpy(tls, p+24, __ccgo_ts+3418, uint32(4)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31892, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) + libc.Xmemcpy(tls, p+24, __ccgo_ts+3482, uint32(4)) } else { - libc.Xmemcpy(tls, p+24, __ccgo_ts+6585, uint32(4)) + libc.Xmemcpy(tls, p+24, __ccgo_ts+6649, uint32(4)) } /* If it has not already been created, create the rbu_state table */ - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31764, libc.VaList(bp+8, p+24)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31910, libc.VaList(bp+8, p+24)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { bOpen = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FnRbu = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FpRbuFd = uintptr(0) - rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6585, int32(SQLITE_FCNTL_RBUCNT), p) + rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6649, int32(SQLITE_FCNTL_RBUCNT), p) if rc != int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc } @@ -188461,10 +190359,10 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) return } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31830, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31976, 0) } else { zExtra = uintptr(0) - if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24596, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint32(5)) { + if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24719, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint32(5)) { zExtra = (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu + 5 for *(*uint8)(unsafe.Pointer(zExtra)) != 0 { v1 = zExtra @@ -188478,16 +190376,16 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if zExtra == uintptr(0) { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } else { - v2 = __ccgo_ts + 31862 + v2 = __ccgo_ts + 32008 } if zExtra == uintptr(0) { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } else { v3 = zExtra } - zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+31864, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6585), v2, v3)) + zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+32010, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6649), v2, v3)) if zTarget == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) return @@ -188498,27 +190396,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31896, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32042, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31911, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32057, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31928, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32074, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(SQLITE_FCNTL_RBU), p) } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31944, 0) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32090, 0) /* Mark the database file just opened as an RBU target database. If ** this call returns SQLITE_NOTFOUND, then the RBU vfs is not in use. ** This is an error. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(SQLITE_FCNTL_RBU), p) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31972, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32118, 0) } } @@ -188568,7 +190466,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxShmMap})))(tls, pDb, 0, libc.Int32FromInt32(32)*libc.Int32FromInt32(1024), 0, bp) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - iRet = int64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))<= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+32972, zState+uintptr(n-int32(7)), uint32(7)) { + if n >= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+33118, zState+uintptr(n-int32(7)), uint32(7)) { return _rbuMisuseError(tls) } } @@ -189810,7 +191708,7 @@ func _rbuEditErrmsg(tls *libc.TLS, p uintptr) { if !(i < nErrmsg-uint32(8)) { break } - if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+30997, uint32(8)) == 0 { + if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31143, uint32(8)) == 0 { nDel = int32(8) for int32(*(*uint8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) <= int32('9') { nDel++ @@ -189838,7 +191736,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { if p != 0 { /* Commit the transaction to the *-oal file. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14894, uintptr(0), uintptr(0), p+36) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14987, uintptr(0), uintptr(0), p+36) } /* Sync the db file if currently doing an incremental checkpoint */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { @@ -189847,7 +191745,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { } _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14894, uintptr(0), uintptr(0), p+36) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14987, uintptr(0), uintptr(0), p+36) } /* Close any open statement handles. */ _rbuObjIterFinalize(tls, p+48) @@ -189857,7 +191755,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { ** specifying the current target and state databases to start a new ** vacuum from scratch. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu != 0 { - rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32980, uintptr(0), uintptr(0), uintptr(0)) + rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33126, uintptr(0), uintptr(0), uintptr(0)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_DONE) && rc2 != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc2 } @@ -189972,7 +191870,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14894, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14987, uintptr(0), uintptr(0), uintptr(0)) } } /* Sync the db file */ @@ -189986,19 +191884,19 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14894, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14987, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 14879 + v1 = __ccgo_ts + 14972 } else { - v1 = __ccgo_ts + 32932 + v1 = __ccgo_ts + 33078 } zBegin = v1 rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, zBegin, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32932, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33078, uintptr(0), uintptr(0), uintptr(0)) } } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -190572,7 +192470,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r rc = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xControl})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, int32(SQLITE_FCNTL_ZIPVFS), bp) if rc == SQLITE_OK { rc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33007, 0) + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33153, 0) } else { if rc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpTargetFd = p @@ -190598,7 +192496,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r if rc == SQLITE_OK && op == int32(SQLITE_FCNTL_VFSNAME) { pRbuVfs = (*Trbu_file)(unsafe.Pointer(p)).FpRbuVfs zIn = *(*uintptr)(unsafe.Pointer(pArg)) - zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33030, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) + zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33176, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) *(*uintptr)(unsafe.Pointer(pArg)) = zOut if zOut == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -190799,7 +192697,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag if pDb != 0 { if (*Trbu_file)(unsafe.Pointer(pDb)).FpRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FeStage == int32(RBU_STAGE_OAL) { if (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FzTarget == uintptr(0) { - zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6585) + zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6649) zOpen = Xsqlite3_filename_wal(tls, zOpen) } nOpen = libc.Xstrlen(tls, zOpen) @@ -190813,7 +192711,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag } else { (*Trbu_file)(unsafe.Pointer(pFd)).FpRbu = (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).FpRbu } - if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33041, 0) != 0 { + if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33187, 0) != 0 { _ = libc.Int32FromInt32(0) oflags = libc.Int32FromInt32(SQLITE_OPEN_TEMP_DB) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_EXCLUSIVE) | libc.Int32FromInt32(SQLITE_OPEN_DELETEONCLOSE) zOpen = uintptr(0) @@ -191370,7 +193268,7 @@ func _statConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint _sqlite3TokenInit(tls, bp, *(*uintptr)(unsafe.Pointer(argv + 3*4))) iDb = _sqlite3FindDb(tls, db, bp) if iDb < 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12191, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(argv + 3*4)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12316, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(argv + 3*4)))) return int32(SQLITE_ERROR) } } else { @@ -191764,6 +193662,7 @@ func _statDecodePage(tls *libc.TLS, pBt uintptr, p uintptr) (r int32) { } } return SQLITE_OK + goto statPageIsCorrupt statPageIsCorrupt: ; (*TStatPage)(unsafe.Pointer(p)).Fflags = uint8(0) @@ -191854,6 +193753,7 @@ func _statNext(tls *libc.TLS, pCursor uintptr) (r int32) { pPager = _sqlite3BtreePager(tls, pBt) Xsqlite3_free(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath) (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = uintptr(0) + goto statNextRestart statNextRestart: ; if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage < 0 { @@ -191871,7 +193771,7 @@ statNextRestart: (*(*TStatPage)(unsafe.Pointer(pCsr + 16))).FiPgno = iRoot (*(*TStatPage)(unsafe.Pointer(pCsr + 16))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33052, 0) + v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33198, 0) z = v1 (*(*TStatPage)(unsafe.Pointer(pCsr + 16))).FzPath = v1 if z == uintptr(0) { @@ -191909,8 +193809,8 @@ statNextRestart: if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { (*TStatCursor)(unsafe.Pointer(pCsr)).FzName = Xsqlite3_column_text(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FpStmt, 0) (*TStatCursor)(unsafe.Pointer(pCsr)).FiPageno = *(*Tu32)(unsafe.Pointer((*TStatCell)(unsafe.Pointer(pCell)).FaOvfl + uintptr(iOvfl)*4)) - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33054 - v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33063, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33200 + v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33209, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) z = v2 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v2 if z == uintptr(0) { @@ -191939,7 +193839,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage++ if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage >= int32(libc.Uint32FromInt64(1280)/libc.Uint32FromInt64(40)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(222551)) + return _sqlite3CorruptError(tls, int32(224206)) } _ = libc.Int32FromInt32(0) if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { @@ -191951,7 +193851,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnPage++ (*(*TStatPage)(unsafe.Pointer(p + 1*40))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33075, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) + v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33221, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) z = v4 (*(*TStatPage)(unsafe.Pointer(p + 1*40))).FzPath = v4 if z == uintptr(0) { @@ -191974,13 +193874,13 @@ statNextRestart: case int32(0x05): /* table internal */ fallthrough case int32(0x02): /* index internal */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33083 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33229 case int32(0x0D): /* table leaf */ fallthrough case int32(0x0A): /* index leaf */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33092 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33238 default: - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33097 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33243 break } *(*int32)(unsafe.Pointer(pCsr + 1320)) += (*TStatPage)(unsafe.Pointer(p1)).FnCell @@ -191989,7 +193889,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnMxPayload = (*TStatPage)(unsafe.Pointer(p1)).FnMxPayload } if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) + v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) z = v5 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v5 if z == uintptr(0) { @@ -192078,12 +193978,12 @@ func _statFilter(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uintptr, a (*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg = uint8(0) } pSql = Xsqlite3_str_new(tls, (*TStatTable)(unsafe.Pointer(pTab)).Fdb) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33107, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*16))).FzDbSName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33253, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*16))).FzDbSName)) if zName != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33262, libc.VaList(bp+8, zName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33408, libc.VaList(bp+8, zName)) } if idxNum&int32(0x08) != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33276, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33422, 0) } zSql = Xsqlite3_str_finish(tls, pSql) if zSql == uintptr(0) { @@ -192160,7 +194060,7 @@ func _statRowid(tls *libc.TLS, pCursor uintptr, pRowid uintptr) (r int32) { // ** Invoke this routine to register the "dbstat" virtual table module // */ func _sqlite3DbstatRegister(tls *libc.TLS, db uintptr) (r int32) { - return Xsqlite3_create_module(tls, db, __ccgo_ts+33291, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) + return Xsqlite3_create_module(tls, db, __ccgo_ts+33437, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) } var _dbstat_module = Tsqlite3_module{} @@ -193450,20 +195350,20 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, *(*uintptr)(unsafe.Pointer(pazDflt)) = uintptr(0) } nThis = _sqlite3Strlen30(tls, zThis) - if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11582, zThis) { + if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11707, zThis) { rc = Xsqlite3_table_column_metadata(tls, db, zDb, zThis, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { /* For sqlite_stat1, pretend that (tbl,idx) is the PRIMARY KEY. */ - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33298, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33444, 0) } else { if rc == int32(SQLITE_ERROR) { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1648, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1662, 0) } else { return rc } } } else { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33419, libc.VaList(bp+16, zDb, zThis)) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33565, libc.VaList(bp+16, zDb, zThis)) } if !(zPragma != 0) { return int32(SQLITE_NOMEM) @@ -193487,7 +195387,7 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, bRowid = 0 } nDbCol += bRowid - nByte += int64(libc.Xstrlen(tls, __ccgo_ts+29640)) + nByte += int64(libc.Xstrlen(tls, __ccgo_ts+29786)) rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp))) if rc == SQLITE_OK { nByte += int64(uint32(nDbCol) * (libc.Uint32FromInt64(4)*libc.Uint32FromInt32(2) + libc.Uint32FromInt64(1) + libc.Uint32FromInt32(1) + libc.Uint32FromInt32(1))) @@ -193511,8 +195411,8 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, } i = 0 if bRowid != 0 { - nName = libc.Xstrlen(tls, __ccgo_ts+29640) - libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29640, nName+uint32(1)) + nName = libc.Xstrlen(tls, __ccgo_ts+29786) + libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29786, nName+uint32(1)) *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)) = pAlloc pAlloc += uintptr(nName + uint32(1)) *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) = uint8(1) @@ -193605,7 +195505,7 @@ func _sessionInitTable(tls *libc.TLS, pSession uintptr, pTab uintptr, db uintptr ; i++ } - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11582, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11707, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 = int32(1) } if pSession != 0 && (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize != 0 { @@ -193896,10 +195796,10 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin _, _, _, _ = ii, zDflt, zSep, v2 *(*TSessionBuffer)(unsafe.Pointer(bp)) = TSessionBuffer{} *(*int32)(unsafe.Pointer(bp + 12)) = SQLITE_OK - zSep = __ccgo_ts + 11202 + zSep = __ccgo_ts + 11327 ii = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) - _sessionAppendPrintf(tls, bp, bp+12, __ccgo_ts+33448, 0) + _sessionAppendPrintf(tls, bp, bp+12, __ccgo_ts+33594, 0) ii = 0 for { if !(ii < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol) { @@ -193908,11 +195808,11 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin if *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*4)) != 0 { v2 = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*4)) } else { - v2 = __ccgo_ts + 1649 + v2 = __ccgo_ts + 1663 } zDflt = v2 - _sessionAppendPrintf(tls, bp, bp+12, __ccgo_ts+5076, libc.VaList(bp+24, zSep, zDflt)) - zSep = __ccgo_ts + 14990 + _sessionAppendPrintf(tls, bp, bp+12, __ccgo_ts+5140, libc.VaList(bp+24, zSep, zDflt)) + zSep = __ccgo_ts + 15083 goto _1 _1: ; @@ -194231,7 +196131,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u rc = int32(SQLITE_NOMEM) goto error_out } - _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1648, uint8(0), libc.UintptrFromInt32(0)) + _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1662, uint8(0), libc.UintptrFromInt32(0)) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpZeroBlob = p } } @@ -194352,6 +196252,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u } } /* If an error has occurred, mark the session object as failed. */ + goto error_out error_out: ; if (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 != 0 { @@ -194561,7 +196462,7 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr var i int32 var zRet, zSep uintptr _, _, _ = i, zRet, zSep - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 zRet = uintptr(0) i = 0 for { @@ -194569,8 +196470,8 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr break } if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33455, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)))) - zSep = __ccgo_ts + 22013 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33601, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)))) + zSep = __ccgo_ts + 22158 if zRet == uintptr(0) { break } @@ -194589,7 +196490,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint var bHave, i int32 var zRet, zSep uintptr _, _, _, _ = bHave, i, zRet, zSep - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 zRet = uintptr(0) bHave = 0 i = 0 @@ -194599,8 +196500,8 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if int32(*(*Tu8)(unsafe.Pointer(abPK + uintptr(i)))) == 0 { bHave = int32(1) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33489, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)))) - zSep = __ccgo_ts + 33530 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33635, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)))) + zSep = __ccgo_ts + 33676 if zRet == uintptr(0) { break } @@ -194612,7 +196513,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if bHave == 0 { _ = libc.Int32FromInt32(0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1722, 0) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1782, 0) } return zRet } @@ -194623,12 +196524,12 @@ func _sessionSelectFindNew(tls *libc.TLS, zDb1 uintptr, zDb2 uintptr, bRowid int var zRet, zSel, v1 uintptr _, _, _ = zRet, zSel, v1 if bRowid != 0 { - v1 = __ccgo_ts + 33535 + v1 = __ccgo_ts + 33681 } else { - v1 = __ccgo_ts + 6590 + v1 = __ccgo_ts + 6654 } zSel = v1 - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33546, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33692, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) return zRet } @@ -194689,11 +196590,11 @@ func _sessionAllCols(tls *libc.TLS, zDb uintptr, pTab uintptr) (r uintptr) { break } if zRet != 0 { - v2 = __ccgo_ts + 14990 + v2 = __ccgo_ts + 15083 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33625, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*4)))) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33771, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*4)))) if !(zRet != 0) { break } @@ -194721,7 +196622,7 @@ func _sessionDiffFindModified(tls *libc.TLS, pSession uintptr, pTab uintptr, zFr } else { z1 = _sessionAllCols(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, pTab) z2 = _sessionAllCols(tls, zFrom, pTab) - zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33644, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) + zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33790, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) if zStmt == uintptr(0) || z1 == uintptr(0) || z2 == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -194821,7 +196722,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 28))) if bMismatch != 0 { if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33701, 0) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33847, 0) } rc = int32(SQLITE_SCHEMA) } @@ -194847,6 +196748,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u } Xsqlite3_free(tls, zExpr) } + goto diff_out diff_out: ; _sessionPreupdateHooks(tls, pSession) @@ -195152,7 +197054,7 @@ func _sessionAppendInteger(tls *libc.TLS, p uintptr, iVal int32, pRc uintptr) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* aBuf at bp+0 */ [24]uint8 - Xsqlite3_snprintf(tls, int32(libc.Uint32FromInt64(24)-libc.Uint32FromInt32(1)), bp, __ccgo_ts+5138, libc.VaList(bp+32, iVal)) + Xsqlite3_snprintf(tls, int32(libc.Uint32FromInt64(24)-libc.Uint32FromInt32(1)), bp, __ccgo_ts+5202, libc.VaList(bp+32, iVal)) _sessionAppendStr(tls, p, bp, pRc) } @@ -195447,23 +197349,23 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt _, _, _, _, _, _, _ = i, nSql, zCols, zSep, zSql, v1, v3 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK zSql = uintptr(0) - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 if bRowid != 0 { - v1 = __ccgo_ts + 33535 + v1 = __ccgo_ts + 33681 } else { - v1 = __ccgo_ts + 6590 + v1 = __ccgo_ts + 6654 } zCols = v1 nSql = -int32(1) *(*TSessionBuffer)(unsafe.Pointer(bp + 4)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 16)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 28)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+4, __ccgo_ts+33728, bp) - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11582, zTab) { - _sessionAppendStr(tls, bp+4, __ccgo_ts+33732, bp) - _sessionAppendStr(tls, bp+16, __ccgo_ts+33756, bp) - _sessionAppendStr(tls, bp+28, __ccgo_ts+33765, bp) - zCols = __ccgo_ts + 33810 + _sessionAppendStr(tls, bp+4, __ccgo_ts+33874, bp) + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11707, zTab) { + _sessionAppendStr(tls, bp+4, __ccgo_ts+33878, bp) + _sessionAppendStr(tls, bp+16, __ccgo_ts+33902, bp) + _sessionAppendStr(tls, bp+28, __ccgo_ts+33911, bp) + zCols = __ccgo_ts + 33956 } else { i = 0 for { @@ -195473,11 +197375,11 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { _sessionAppendStr(tls, bp+16, zSep, bp) _sessionAppendStr(tls, bp+28, zSep, bp) - zSep = __ccgo_ts + 14990 + zSep = __ccgo_ts + 15083 _sessionAppendIdent(tls, bp+16, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)), bp) - _sessionAppendPrintf(tls, bp+28, bp, __ccgo_ts+33824, libc.VaList(bp+48, i+int32(1))) + _sessionAppendPrintf(tls, bp+28, bp, __ccgo_ts+33970, libc.VaList(bp+48, i+int32(1))) } else { - _sessionAppendPrintf(tls, bp+4, bp, __ccgo_ts+33828, libc.VaList(bp+48, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)))) + _sessionAppendPrintf(tls, bp+4, bp, __ccgo_ts+33974, libc.VaList(bp+48, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*4)))) } goto _2 _2: @@ -195489,9 +197391,9 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if bIgnoreNoop != 0 { v3 = (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf } else { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+33855, libc.VaList(bp+48, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 28))).FaBuf)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+34001, libc.VaList(bp+48, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 28))).FaBuf)) if zSql == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } @@ -195637,7 +197539,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, if (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc != 0 { return (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc } - *(*int32)(unsafe.Pointer(bp + 12)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+33897, uintptr(0), uintptr(0), uintptr(0)) + *(*int32)(unsafe.Pointer(bp + 12)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+34043, uintptr(0), uintptr(0), uintptr(0)) if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { return *(*int32)(unsafe.Pointer(bp + 12)) } @@ -195744,7 +197646,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } } Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf) - Xsqlite3_exec(tls, db, __ccgo_ts+33917, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34063, uintptr(0), uintptr(0), uintptr(0)) Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db)) return *(*int32)(unsafe.Pointer(bp + 12)) } @@ -196165,7 +198067,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, int32(9)) if rc == SQLITE_OK { if (*TSessionInput)(unsafe.Pointer(pIn)).FiNext >= (*TSessionInput)(unsafe.Pointer(pIn)).FnData { - rc = _sqlite3CorruptError(tls, int32(226700)) + rc = _sqlite3CorruptError(tls, int32(228355)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -196190,7 +198092,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, *(*int32)(unsafe.Pointer(bp))) if rc == SQLITE_OK { if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext { - rc = _sqlite3CorruptError(tls, int32(226720)) + rc = _sqlite3CorruptError(tls, int32(228375)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -196205,7 +198107,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap } if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) { if (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext < int32(8) { - rc = _sqlite3CorruptError(tls, int32(226730)) + rc = _sqlite3CorruptError(tls, int32(228385)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -196261,7 +198163,7 @@ func _sessionChangesetBufferTblhdr(tls *libc.TLS, pIn uintptr, pnByte uintptr) ( ** large value for nCol may cause nRead to wrap around and become ** negative. Leading to a crash. */ if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > int32(65536) { - rc = _sqlite3CorruptError(tls, int32(226778)) + rc = _sqlite3CorruptError(tls, int32(228433)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -196367,7 +198269,7 @@ func _sessionChangesetReadTblhdr(tls *libc.TLS, p uintptr) (r int32) { (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FnBuf = 0 _sessionBufferGrow(tls, p+44, int64(nByte), bp) } else { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(226866)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(228521)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -196440,12 +198342,12 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK { return (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc } + _sessionDiscardData(tls, p) + (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext /* If the iterator is already at the end of the changeset, return DONE. */ if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext >= (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FnData { return int32(SQLITE_DONE) } - _sessionDiscardData(tls, p) - (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext v3 = p + 8 v2 = *(*int32)(unsafe.Pointer(v3)) *(*int32)(unsafe.Pointer(v3))++ @@ -196476,7 +198378,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin /* The first record in the changeset is not a table header. Must be a ** corrupt changeset. */ _ = libc.Int32FromInt32(0) - v7 = _sqlite3CorruptError(tls, int32(226952)) + v7 = _sqlite3CorruptError(tls, int32(228607)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -196486,7 +198388,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = int32(*(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr(v8)))) if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_DELETE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_INSERT) { - v10 = _sqlite3CorruptError(tls, int32(226958)) + v10 = _sqlite3CorruptError(tls, int32(228613)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -196567,7 +198469,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin _ = libc.Int32FromInt32(0) *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*4)) = *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i+(*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*4)) if *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*4)) == uintptr(0) { - v16 = _sqlite3CorruptError(tls, int32(227002)) + v16 = _sqlite3CorruptError(tls, int32(228657)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -196978,7 +198880,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(227367)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(229022)) goto finished_invert } _ = libc.Int32FromInt32(0) @@ -197000,6 +198902,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf) } } + goto finished_invert finished_invert: ; Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf) @@ -197182,18 +199085,18 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 } if pUp == uintptr(0) { nByte = int32(uint32(12) * uint32(nU32) * uint32(4)) - bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11582) == 0) + bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11707) == 0) pUp = Xsqlite3_malloc(tls, nByte) if pUp == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } else { - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 libc.Xmemset(tls, bp+4, 0, uint32(12)) (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask = pUp + 1*12 libc.Xmemcpy(tls, (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, uint32(nU32)*uint32(4)) - _sessionAppendStr(tls, bp+4, __ccgo_ts+33935, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34081, bp) _sessionAppendIdent(tls, bp+4, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, bp) - _sessionAppendStr(tls, bp+4, __ccgo_ts+33948, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34094, bp) /* Create the assignments part of the UPDATE */ ii = 0 for { @@ -197203,9 +199106,9 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if int32(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii)))) == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol+ii)*4)) != 0 { _sessionAppendStr(tls, bp+4, zSep, bp) _sessionAppendIdent(tls, bp+4, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*4)), bp) - _sessionAppendStr(tls, bp+4, __ccgo_ts+33954, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34100, bp) _sessionAppendInteger(tls, bp+4, ii*int32(2)+int32(1), bp) - zSep = __ccgo_ts + 14990 + zSep = __ccgo_ts + 15083 } goto _2 _2: @@ -197213,8 +199116,8 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 ii++ } /* Create the WHERE clause part of the UPDATE */ - zSep = __ccgo_ts + 1648 - _sessionAppendStr(tls, bp+4, __ccgo_ts+33959, bp) + zSep = __ccgo_ts + 1662 + _sessionAppendStr(tls, bp+4, __ccgo_ts+34105, bp) ii = 0 for { if !(ii < (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol) { @@ -197224,13 +199127,13 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 _sessionAppendStr(tls, bp+4, zSep, bp) if bStat1 != 0 && ii == int32(1) { _ = libc.Int32FromInt32(0) - _sessionAppendStr(tls, bp+4, __ccgo_ts+33967, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34113, bp) } else { _sessionAppendIdent(tls, bp+4, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*4)), bp) - _sessionAppendStr(tls, bp+4, __ccgo_ts+34042, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34188, bp) _sessionAppendInteger(tls, bp+4, ii*int32(2)+int32(2), bp) } - zSep = __ccgo_ts + 22013 + zSep = __ccgo_ts + 22158 } goto _3 _3: @@ -197314,13 +199217,13 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in var _ /* buf at bp+4 */ TSessionBuffer var _ /* rc at bp+0 */ int32 _, _, _ = i, nPk, zSep - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 4)) = TSessionBuffer{} nPk = 0 - _sessionAppendStr(tls, bp+4, __ccgo_ts+34048, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34194, bp) _sessionAppendIdent(tls, bp+4, zTab, bp) - _sessionAppendStr(tls, bp+4, __ccgo_ts+33959, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34105, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -197330,9 +199233,9 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in nPk++ _sessionAppendStr(tls, bp+4, zSep, bp) _sessionAppendIdent(tls, bp+4, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*4)), bp) - _sessionAppendStr(tls, bp+4, __ccgo_ts+33954, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34100, bp) _sessionAppendInteger(tls, bp+4, i+int32(1), bp) - zSep = __ccgo_ts + 22013 + zSep = __ccgo_ts + 22158 } goto _1 _1: @@ -197340,10 +199243,10 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in i++ } if nPk < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol { - _sessionAppendStr(tls, bp+4, __ccgo_ts+34066, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34212, bp) _sessionAppendInteger(tls, bp+4, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol+int32(1), bp) - _sessionAppendStr(tls, bp+4, __ccgo_ts+33530, bp) - zSep = __ccgo_ts + 1648 + _sessionAppendStr(tls, bp+4, __ccgo_ts+33676, bp) + zSep = __ccgo_ts + 1662 i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -197352,16 +199255,16 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in if !(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0) { _sessionAppendStr(tls, bp+4, zSep, bp) _sessionAppendIdent(tls, bp+4, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*4)), bp) - _sessionAppendStr(tls, bp+4, __ccgo_ts+34042, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34188, bp) _sessionAppendInteger(tls, bp+4, i+int32(1), bp) - zSep = __ccgo_ts + 34074 + zSep = __ccgo_ts + 34220 } goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+4, __ccgo_ts+5106, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+5170, bp) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf, p+4, uintptr(0)) @@ -197387,7 +199290,7 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in // */ func _sessionSelectRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r int32) { /* TODO */ - return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6585, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+12) + return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6649, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+12) } // C documentation @@ -197410,16 +199313,16 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 4)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+4, __ccgo_ts+34079, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34225, bp) _sessionAppendIdent(tls, bp+4, zTab, bp) - _sessionAppendStr(tls, bp+4, __ccgo_ts+22019, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+22164, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } if i != 0 { - _sessionAppendStr(tls, bp+4, __ccgo_ts+14990, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+15083, bp) } _sessionAppendIdent(tls, bp+4, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*4)), bp) goto _1 @@ -197427,19 +199330,19 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in ; i++ } - _sessionAppendStr(tls, bp+4, __ccgo_ts+34097, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34243, bp) i = int32(1) for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } - _sessionAppendStr(tls, bp+4, __ccgo_ts+34108, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+34254, bp) goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+4, __ccgo_ts+5106, bp) + _sessionAppendStr(tls, bp+4, __ccgo_ts+5170, bp) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf, p+8, uintptr(0)) } @@ -197462,12 +199365,12 @@ func _sessionPrepare(tls *libc.TLS, db uintptr, pp uintptr, zSql uintptr) (r int func _sessionStat1Sql(tls *libc.TLS, db uintptr, p uintptr) (r int32) { var rc int32 _ = rc - rc = _sessionSelectRow(tls, db, __ccgo_ts+11582, p) + rc = _sessionSelectRow(tls, db, __ccgo_ts+11707, p) if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34112) + rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34258) } if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+4, __ccgo_ts+34225) + rc = _sessionPrepare(tls, db, p+4, __ccgo_ts+34371) } return rc } @@ -197534,7 +199437,7 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(227849)) + rc = _sqlite3CorruptError(tls, int32(229504)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -197962,7 +199865,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34369, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34515, uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { rc = _sessionBindRow(tls, pIter, __ccgo_fp(Xsqlite3changeset_new), (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FabPK, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) Xsqlite3_bind_int(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol+int32(1), int32(1)) @@ -197975,7 +199878,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34390, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34536, uintptr(0), uintptr(0), uintptr(0)) } } } @@ -198071,10 +199974,10 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 4))).FbIgnoreNoop = libc.BoolUint8(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_IGNORENOOP) != 0)) Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, db)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34409, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34555, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34435, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34581, uintptr(0), uintptr(0), uintptr(0)) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+92, bp+84, bp+88, uintptr(0)) @@ -198105,7 +200008,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui ** non-zero, proceed. */ schemaMismatch = libc.BoolInt32(xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 92)))) if schemaMismatch != 0 { - *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp + 92)))) + *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp + 92)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { rc = int32(SQLITE_NOMEM) break @@ -198115,7 +200018,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } else { nMinCol = 0 Xsqlite3changeset_pk(tls, pIter, bp+96, uintptr(0)) - rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6585, *(*uintptr)(unsafe.Pointer(bp + 92)), bp+4+16, bp, bp+4+20, uintptr(0), bp+4+24, bp+4+76) + rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6649, *(*uintptr)(unsafe.Pointer(bp + 92)), bp+4+16, bp, bp+4+20, uintptr(0), bp+4+24, bp+4+76) if rc != SQLITE_OK { break } @@ -198134,18 +200037,18 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 4))).FnCol == 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34465, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34611, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp)))) } else { if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 4))).FnCol < *(*int32)(unsafe.Pointer(bp + 84)) { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34509, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 4))).FnCol, *(*int32)(unsafe.Pointer(bp + 84)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34655, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 4))).FnCol, *(*int32)(unsafe.Pointer(bp + 84)))) } else { if *(*int32)(unsafe.Pointer(bp + 84)) < nMinCol || libc.Xmemcmp(tls, (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 4))).FabPK, *(*uintptr)(unsafe.Pointer(bp + 96)), uint32(*(*int32)(unsafe.Pointer(bp + 84)))) != 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34580, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34726, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp)))) } else { (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 4))).FnCol = *(*int32)(unsafe.Pointer(bp + 84)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11582) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11707) { v2 = _sessionStat1Sql(tls, db, bp+4) rc = v2 if v2 != 0 { @@ -198202,13 +200105,13 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } } } - Xsqlite3_exec(tls, db, __ccgo_ts+34640, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34786, uintptr(0), uintptr(0), uintptr(0)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34670, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34816, uintptr(0), uintptr(0), uintptr(0)) } else { - Xsqlite3_exec(tls, db, __ccgo_ts+34694, uintptr(0), uintptr(0), uintptr(0)) - Xsqlite3_exec(tls, db, __ccgo_ts+34670, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34840, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34816, uintptr(0), uintptr(0), uintptr(0)) } } _ = libc.Int32FromInt32(0) @@ -198302,6 +200205,7 @@ type Tsqlite3_changegroup1 = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -198668,118 +200572,145 @@ func _sessionChangesetExtendRecord(tls *libc.TLS, pGrp uintptr, pTab uintptr, nC // C documentation // // /* -// ** Add all changes in the changeset traversed by the iterator passed as -// ** the first argument to the changegroup hash tables. +// ** Locate or create a SessionTable object that may be used to add the +// ** change currently pointed to by iterator pIter to changegroup pGrp. +// ** If successful, set output variable (*ppTab) to point to the table +// ** object and return SQLITE_OK. Otherwise, if some error occurs, return +// ** an SQLite error code and leave (*ppTab) set to NULL. // */ -func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { - bp := tls.Alloc(48) - defer tls.Free(48) - var bPkOnly1, bPkOnly2, iHash, nNew, rc int32 - var pExist, pTab, pp, ppTab uintptr - var _ /* aRec at bp+0 */ uintptr - var _ /* abPK at bp+40 */ uintptr - var _ /* bIndirect at bp+32 */ int32 - var _ /* nCol at bp+24 */ int32 - var _ /* nRec at bp+4 */ int32 - var _ /* op at bp+28 */ int32 - var _ /* pChange at bp+36 */ uintptr - var _ /* rec at bp+8 */ TSessionBuffer - var _ /* zNew at bp+20 */ uintptr - _, _, _, _, _, _, _, _, _ = bPkOnly1, bPkOnly2, iHash, nNew, pExist, pTab, pp, ppTab, rc +func _sessionChangesetFindTable(tls *libc.TLS, pGrp uintptr, zTab uintptr, pIter uintptr, ppTab uintptr) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var nTab, rc int32 + var pTab, ppNew uintptr + var _ /* abPK at bp+0 */ uintptr + var _ /* nCol at bp+4 */ int32 + _, _, _, _ = nTab, pTab, ppNew, rc rc = SQLITE_OK pTab = uintptr(0) - *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} - for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+4, uintptr(0)) { - pExist = uintptr(0) - /* Ensure that only changesets, or only patchsets, but not a mixture - ** of both, are being combined. It is an error to try to combine a - ** changeset and a patchset. */ - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset - } else { - if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { - rc = int32(SQLITE_ERROR) - break - } + nTab = int32(libc.Xstrlen(tls, zTab)) + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + *(*uintptr)(unsafe.Pointer(ppTab)) = uintptr(0) + Xsqlite3changeset_pk(tls, pIter, bp, bp+4) + /* Search the list for an existing table */ + pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList + for { + if !(pTab != 0) { + break } - Xsqlite3changeset_op(tls, pIter, bp+20, bp+24, bp+28, bp+32) - if !(pTab != 0) || Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp + 20)), (*TSessionTable)(unsafe.Pointer(pTab)).FzName) != 0 { - /* Search the list for a matching table */ - nNew = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 20)))) - Xsqlite3changeset_pk(tls, pIter, bp+40, uintptr(0)) - pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList - for { - if !(pTab != 0) { - break - } - if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 20)), nNew+int32(1)) { - break - } - goto _1 - _1: - ; - pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext - } - if !(pTab != 0) { - pTab = Xsqlite3_malloc64(tls, uint64(uint32(48)+uint32(*(*int32)(unsafe.Pointer(bp + 24)))+uint32(nNew)+uint32(1))) - if !(pTab != 0) { - rc = int32(SQLITE_NOMEM) - break - } - libc.Xmemset(tls, pTab, 0, uint32(48)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 24)) - (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*48 - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp + 40)), uint32(*(*int32)(unsafe.Pointer(bp + 24)))) - (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 24))) - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 20)), uint32(nNew+int32(1))) - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 - rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) - if rc != 0 { - _ = libc.Int32FromInt32(0) - Xsqlite3_free(tls, pTab) - break - } - } - /* The new object must be linked on to the end of the list, not - ** simply added to the start of it. This is to ensure that the - ** tables within the output of sqlite3changegroup_output() are in - ** the right order. */ - ppTab = pGrp + 8 - for { - if !(*(*uintptr)(unsafe.Pointer(ppTab)) != 0) { - break - } - goto _2 - _2: - ; - ppTab = *(*uintptr)(unsafe.Pointer(ppTab)) - } - *(*uintptr)(unsafe.Pointer(ppTab)) = pTab - } - if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 24)), *(*uintptr)(unsafe.Pointer(bp + 40))) != 0) { - rc = int32(SQLITE_SCHEMA) - break - } + if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, nTab+int32(1)) { + break } - if *(*int32)(unsafe.Pointer(bp + 24)) < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol { - _ = libc.Int32FromInt32(0) - rc = _sessionChangesetExtendRecord(tls, pGrp, pTab, *(*int32)(unsafe.Pointer(bp + 24)), *(*int32)(unsafe.Pointer(bp + 28)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), bp+8) + goto _1 + _1: + ; + pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext + } + /* If one was not found above, create a new table now */ + if !(pTab != 0) { + pTab = Xsqlite3_malloc64(tls, uint64(uint32(48)+uint32(*(*int32)(unsafe.Pointer(bp + 4)))+uint32(nTab)+uint32(1))) + if !(pTab != 0) { + return int32(SQLITE_NOMEM) + } + libc.Xmemset(tls, pTab, 0, uint32(48)) + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 4)) + (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*48 + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp)), uint32(*(*int32)(unsafe.Pointer(bp + 4)))) + (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 4))) + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, uint32(nTab+int32(1))) + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 + rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) if rc != 0 { + _ = libc.Int32FromInt32(0) + Xsqlite3_free(tls, pTab) + return rc + } + } + /* The new object must be linked on to the end of the list, not + ** simply added to the start of it. This is to ensure that the + ** tables within the output of sqlite3changegroup_output() are in + ** the right order. */ + ppNew = pGrp + 8 + for { + if !(*(*uintptr)(unsafe.Pointer(ppNew)) != 0) { break } - *(*uintptr)(unsafe.Pointer(bp)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf - *(*int32)(unsafe.Pointer(bp + 4)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf + goto _2 + _2: + ; + ppNew = *(*uintptr)(unsafe.Pointer(ppNew)) } - if _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pTab) != 0 { - rc = int32(SQLITE_NOMEM) - break + *(*uintptr)(unsafe.Pointer(ppNew)) = pTab + } + /* Check that the table is compatible. */ + if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 4)), *(*uintptr)(unsafe.Pointer(bp))) != 0) { + rc = int32(SQLITE_SCHEMA) + } + *(*uintptr)(unsafe.Pointer(ppTab)) = pTab + return rc +} + +// C documentation +// +// /* +// ** Add the change currently indicated by iterator pIter to the hash table +// ** belonging to changegroup pGrp. +// */ +func _sessionOneChangeToHash(tls *libc.TLS, pGrp uintptr, pIter uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(32) + defer tls.Free(32) + var aRec, pBuf, pExist, pp uintptr + var bPkOnly1, bPkOnly2, iHash, nRec, rc int32 + var _ /* bIndirect at bp+8 */ int32 + var _ /* nCol at bp+0 */ int32 + var _ /* op at bp+4 */ int32 + var _ /* pChange at bp+12 */ uintptr + var _ /* pTab at bp+16 */ uintptr + var _ /* zTab at bp+20 */ uintptr + _, _, _, _, _, _, _, _, _ = aRec, bPkOnly1, bPkOnly2, iHash, nRec, pBuf, pExist, pp, rc + rc = SQLITE_OK + *(*int32)(unsafe.Pointer(bp)) = 0 + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + iHash = 0 + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(bp + 12)) = uintptr(0) + pExist = uintptr(0) + pp = uintptr(0) + *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0) + aRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FaData + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent+int32(2)) + nRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent - int32(2) + /* Ensure that only changesets, or only patchsets, but not a mixture + ** of both, are being combined. It is an error to try to combine a + ** changeset and a patchset. */ + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset + } else { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { + rc = int32(SQLITE_ERROR) } - iHash = int32(_sessionChangeHash(tls, pTab, libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 28)) == int32(SQLITE_DELETE)), *(*uintptr)(unsafe.Pointer(bp)), (*TSessionTable)(unsafe.Pointer(pTab)).FnChange)) + } + if rc == SQLITE_OK { + *(*uintptr)(unsafe.Pointer(bp + 20)) = uintptr(0) + Xsqlite3changeset_op(tls, pIter, bp+20, bp, bp+4, bp+8) + rc = _sessionChangesetFindTable(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 20)), pIter, bp+16) + } + if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) < (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FnCol { + pBuf = pGrp + 12 + rc = _sessionChangesetExtendRecord(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 16)), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), aRec, nRec, pBuf) + aRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FaBuf + nRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FnBuf + _ = libc.Int32FromInt32(0) + } + if rc == SQLITE_OK && _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp + 16))) != 0 { + rc = int32(SQLITE_NOMEM) + } + if rc == SQLITE_OK { /* Search for existing entry. If found, remove it from the hash table. - ** Code below may link it back in. - */ - pp = (*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*4 + ** Code below may link it back in. */ + iHash = int32(_sessionChangeHash(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)), aRec, (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FnChange)) + pp = (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FapChange + uintptr(iHash)*4 for { if !(*(*uintptr)(unsafe.Pointer(pp)) != 0) { break @@ -198788,30 +200719,54 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase bPkOnly2 = 0 if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 { bPkOnly1 = libc.BoolInt32(int32((*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).Fop) == int32(SQLITE_DELETE)) - bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 28)) == int32(SQLITE_DELETE)) + bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)) } - if _sessionChangeEqual(tls, pTab, bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, *(*uintptr)(unsafe.Pointer(bp))) != 0 { + if _sessionChangeEqual(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, aRec) != 0 { pExist = *(*uintptr)(unsafe.Pointer(pp)) *(*uintptr)(unsafe.Pointer(pp)) = (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry-- + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FnEntry-- break } - goto _3 - _3: + goto _1 + _1: ; pp = *(*uintptr)(unsafe.Pointer(pp)) + 16 } - rc = _sessionChangeMerge(tls, pTab, bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 28)), *(*int32)(unsafe.Pointer(bp + 32)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), bp+36) - if rc != 0 { + } + if rc == SQLITE_OK { + rc = _sessionChangeMerge(tls, *(*uintptr)(unsafe.Pointer(bp + 16)), bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 4)), *(*int32)(unsafe.Pointer(bp + 8)), aRec, nRec, bp+12) + } + if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp + 12)) != 0 { + (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FapChange + uintptr(iHash)*4)) + *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FapChange + uintptr(iHash)*4)) = *(*uintptr)(unsafe.Pointer(bp + 12)) + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FnEntry++ + } + if rc == SQLITE_OK { + rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc + } + return rc +} + +// C documentation +// +// /* +// ** Add all changes in the changeset traversed by the iterator passed as +// ** the first argument to the changegroup hash tables. +// */ +func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var rc int32 + var _ /* aRec at bp+0 */ uintptr + var _ /* nRec at bp+4 */ int32 + _ = rc + rc = SQLITE_OK + for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+4, uintptr(0)) { + rc = _sessionOneChangeToHash(tls, pGrp, pIter, bRebase) + if rc != SQLITE_OK { break } - if *(*uintptr)(unsafe.Pointer(bp + 36)) != 0 { - (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 36)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*4)) - *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*4)) = *(*uintptr)(unsafe.Pointer(bp + 36)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry++ - } } - Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf) if rc == SQLITE_OK { rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc } @@ -198922,11 +200877,11 @@ func Xsqlite3changegroup_new(tls *libc.TLS, pp uintptr) (r int32) { var rc int32 _, _ = p, rc rc = SQLITE_OK /* New object */ - p = Xsqlite3_malloc(tls, int32(20)) + p = Xsqlite3_malloc(tls, int32(32)) if p == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, p, 0, uint32(20)) + libc.Xmemset(tls, p, 0, uint32(32)) } *(*uintptr)(unsafe.Pointer(pp)) = p return rc @@ -198948,7 +200903,7 @@ func Xsqlite3changegroup_schema(tls *libc.TLS, pGrp uintptr, db uintptr, zDb uin ** or after sqlite3changegroup_schema() has already been called. */ rc = int32(SQLITE_MISUSE) } else { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, zDb)) + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, zDb)) if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -198978,6 +200933,19 @@ func Xsqlite3changegroup_add(tls *libc.TLS, pGrp uintptr, nData int32, pData uin return rc } +// C documentation +// +// /* +// ** Add a single change to a changeset-group. +// */ +func Xsqlite3changegroup_add_change(tls *libc.TLS, pGrp uintptr, pIter uintptr) (r int32) { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent == (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc != SQLITE_OK || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbInvert != 0 { + /* Iterator does not point to any valid entry or is an INVERT iterator. */ + return int32(SQLITE_ERROR) + } + return _sessionOneChangeToHash(tls, pGrp, pIter, 0) +} + // C documentation // // /* @@ -199025,6 +200993,7 @@ func Xsqlite3changegroup_delete(tls *libc.TLS, pGrp uintptr) { if pGrp != 0 { Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList) + Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Frec.FaBuf) Xsqlite3_free(tls, pGrp) } } @@ -199392,11 +201361,11 @@ func Xsqlite3rebaser_create(tls *libc.TLS, ppNew uintptr) (r int32) { var rc int32 _, _ = pNew, rc rc = SQLITE_OK - pNew = Xsqlite3_malloc(tls, int32(20)) + pNew = Xsqlite3_malloc(tls, int32(32)) if pNew == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, pNew, 0, uint32(20)) + libc.Xmemset(tls, pNew, 0, uint32(32)) } *(*uintptr)(unsafe.Pointer(ppNew)) = pNew return rc @@ -199470,6 +201439,7 @@ func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn u func Xsqlite3rebaser_delete(tls *libc.TLS, p uintptr) { if p != 0 { _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.FpList) + Xsqlite3_free(tls, (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.Frec.FaBuf) Xsqlite3_free(tls, p) } } @@ -200123,6 +202093,9 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** sqlite3Fts5ParserARG_STORE Code to store %extra_argument into fts5yypParser // ** sqlite3Fts5ParserARG_FETCH Code to extract %extra_argument from fts5yypParser // ** sqlite3Fts5ParserCTX_* As sqlite3Fts5ParserARG_ except for %extra_context +// ** fts5YYREALLOC Name of the realloc() function to use +// ** fts5YYFREE Name of the free() function to use +// ** fts5YYDYNSTACK True if stack space should be extended on heap // ** fts5YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** fts5YYNSTATE the combined number of states. @@ -200136,6 +202109,8 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** fts5YY_NO_ACTION The fts5yy_action[] code for no-op // ** fts5YY_MIN_REDUCE Minimum value for reduce actions // ** fts5YY_MAX_REDUCE Maximum value for reduce actions +// ** fts5YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** fts5YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type Tfts5YYMINORTYPE = struct { @@ -200162,6 +202137,13 @@ type fts5YYMINORTYPE = Tfts5YYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -200591,8 +202573,9 @@ type fts5yyStackEntry = Tfts5yyStackEntry type Tfts5yyParser1 = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser1 = Tfts5yyParser1 @@ -200600,14 +202583,19 @@ type fts5yyParser1 = Tfts5yyParser1 type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser = Tfts5yyParser /* #include */ +/* For builds that do no have a growable stack, fts5yyGrowStack always +** returns an error. + */ + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3Fts5ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -200622,10 +202610,11 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { var fts5yypParser uintptr _ = fts5yypParser fts5yypParser = fts5yypRawParser - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = fts5yypParser + 8 - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 8))).Fstateno = uint8(0) - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 8))).Fmajor = uint8(0) - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = fts5yypParser + 8 + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*12 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack = fts5yypParser + 16 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*12 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fstateno = uint8(0) + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fmajor = uint8(0) } // C documentation @@ -200645,7 +202634,7 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(1212)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(1216)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -200729,11 +202718,17 @@ func _fts5yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var fts5yytos, pParser uintptr + _, _ = fts5yytos, pParser pParser = p - for (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos > pParser+8 { - _fts5yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling fts5yy_pop_parser_stack() for each + ** element left in the stack */ + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos + for fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yystack { + if int32((*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor) >= int32(fts5YY_MIN_DSTRCTR) { + _fts5yy_destructor(tls, pParser, (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor, fts5yytos+4) + } + fts5yytos -= 12 } } @@ -200833,13 +202828,13 @@ func _fts5yyStackOverflow(tls *libc.TLS, fts5yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse - for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > fts5yypParser+8 { + for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack { _fts5yy_pop_parser_stack(tls, fts5yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34722, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34868, 0) /******** End %stack_overflow code ********************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument var */ } @@ -200857,15 +202852,19 @@ func _fts5yy_shift(tls *libc.TLS, fts5yypParser uintptr, fts5yyNewState uint8, f var fts5yytos uintptr _ = fts5yytos (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos += 12 - if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 12 - _fts5yyStackOverflow(tls, fts5yypParser) - return + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + if fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { + if int32(1) != 0 { + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 12 + _fts5yyStackOverflow(tls, fts5yypParser) + return + } + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + _ = libc.Int32FromInt32(0) } if int32(fts5yyNewState) > int32(fts5YY_MAX_SHIFT) { fts5yyNewState = uint8(int32(fts5yyNewState) + (libc.Int32FromInt32(fts5YY_MIN_REDUCE) - libc.Int32FromInt32(fts5YY_MIN_SHIFTREDUCE))) } - fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fstateno = fts5yyNewState (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor = fts5yyMajor *(*TFts5Token)(unsafe.Pointer(fts5yytos + 4)) = fts5yyMinor @@ -201195,7 +203194,7 @@ func _fts5yy_syntax_error(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor int3 pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse /************ Begin %syntax_error code ****************************************/ _ = fts5yymajor /* Silence a compiler warning */ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34750, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34896, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) /************ End %syntax_error code ******************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument variable */ } @@ -201261,8 +203260,10 @@ func _sqlite3Fts5Parser(tls *libc.TLS, fts5yyp uintptr, fts5yymajor int32, fts5y ** enough on the stack to push the LHS value */ if int32(_fts5yyRuleInfoNRhs[fts5yyruleno]) == 0 { if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos >= (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - _fts5yyStackOverflow(tls, fts5yypParser) - break + if int32(1) != 0 { + _fts5yyStackOverflow(tls, fts5yypParser) + break + } } } fts5yyact = _fts5yy_reduce(tls, fts5yypParser, fts5yyruleno, fts5yymajor, fts5yyminor) @@ -201503,7 +203504,7 @@ func _fts5HighlightAppend(tls *libc.TLS, pRc uintptr, p uintptr, z uintptr, n in if n < 0 { n = int32(libc.Xstrlen(tls, z)) } - (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34781, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) + (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34927, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) if (*THighlightContext)(unsafe.Pointer(p)).FzOut == uintptr(0) { *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) } @@ -201601,7 +203602,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint var _ /* rc at bp+68 */ int32 _, _ = iCol, zErr if nVal != int32(3) { - zErr = __ccgo_ts + 34788 + zErr = __ccgo_ts + 34934 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -201612,7 +203613,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint (*(*THighlightContext)(unsafe.Pointer(bp))).FiRangeEnd = -int32(1) *(*int32)(unsafe.Pointer(bp + 68)) = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnText})))(tls, pFts, iCol, bp+16, bp+20) if *(*int32)(unsafe.Pointer(bp + 68)) == int32(SQLITE_RANGE) { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1648, -int32(1), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1662, -int32(1), libc.UintptrFromInt32(0)) *(*int32)(unsafe.Pointer(bp + 68)) = SQLITE_OK } else { if (*(*THighlightContext)(unsafe.Pointer(bp))).FzIn != 0 { @@ -201813,7 +203814,7 @@ func _fts5ValueToText(tls *libc.TLS, pVal uintptr) (r uintptr) { if zRet != 0 { v1 = zRet } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } return v1 } @@ -201847,7 +203848,7 @@ func _fts5SnippetFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintpt nBestScore = 0 /* Score of best snippet */ *(*int32)(unsafe.Pointer(bp + 76)) = 0 if nVal != int32(5) { - zErr = __ccgo_ts + 34838 + zErr = __ccgo_ts + 34984 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -202232,15 +204233,15 @@ func _sqlite3Fts5AuxInit(tls *libc.TLS, pApi uintptr) (r int32) { FxDestroy uintptr }{ 0: { - FzFunc: __ccgo_ts + 34886, + FzFunc: __ccgo_ts + 35032, FxFunc: __ccgo_fp(_fts5SnippetFunction), }, 1: { - FzFunc: __ccgo_ts + 34894, + FzFunc: __ccgo_ts + 35040, FxFunc: __ccgo_fp(_fts5HighlightFunction), }, 2: { - FzFunc: __ccgo_ts + 34904, + FzFunc: __ccgo_ts + 35050, FxFunc: __ccgo_fp(_fts5Bm25Function), }, } @@ -202905,7 +204906,7 @@ func _fts5ConfigSkipLiteral(tls *libc.TLS, pIn uintptr) (r uintptr) { case int32('n'): fallthrough case int32('N'): - if Xsqlite3_strnicmp(tls, __ccgo_ts+1634, p, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+1648, p, int32(4)) == 0 { p = p + 4 } else { p = uintptr(0) @@ -203111,7 +205112,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _, _, _, _, _, _, _, _, _, _, _, _ = azArg, bFirst, nArg, nByte, nCmd, nPre, p, p1, p2, pDel, pSpace, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK nCmd = int32(libc.Xstrlen(tls, zCmd)) - if Xsqlite3_strnicmp(tls, __ccgo_ts+34909, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35055, zCmd, nCmd) == 0 { nByte = int32(libc.Uint32FromInt64(4) * libc.Uint32FromInt32(FTS5_MAX_PREFIX_INDEXES)) bFirst = int32(1) if (*TFts5Config)(unsafe.Pointer(pConfig)).FaPrefix == uintptr(0) { @@ -203137,12 +205138,12 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } } if int32(*(*uint8)(unsafe.Pointer(p))) < int32('0') || int32(*(*uint8)(unsafe.Pointer(p))) > int32('9') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34916, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35062, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } if (*TFts5Config)(unsafe.Pointer(pConfig)).FnPrefix == int32(FTS5_MAX_PREFIX_INDEXES) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34947, libc.VaList(bp+48, int32(FTS5_MAX_PREFIX_INDEXES))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35093, libc.VaList(bp+48, int32(FTS5_MAX_PREFIX_INDEXES))) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -203151,7 +205152,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC p++ } if nPre <= 0 || nPre >= int32(1000) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34980, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35126, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -203162,7 +205163,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _ = libc.Int32FromInt32(0) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35017, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35163, zCmd, nCmd) == 0 { p1 = zArg nArg = int64(libc.Xstrlen(tls, zArg) + uint32(1)) azArg = _sqlite3Fts5MallocZero(tls, bp, int64(4)*nArg) @@ -203170,7 +205171,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC pSpace = pDel if azArg != 0 && pSpace != 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35026, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35172, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { nArg = 0 @@ -203197,7 +205198,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC nArg++ } if p1 == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35059, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35205, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5GetTokenizer(tls, pGlobal, azArg, int32(nArg), pConfig, pzErr) @@ -203208,58 +205209,58 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC Xsqlite3_free(tls, pDel) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35093, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35239, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent != FTS5_CONTENT_NORMAL { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35101, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35247, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if *(*uint8)(unsafe.Pointer(zArg)) != 0 { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_EXTERNAL) - (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35133, libc.VaList(bp+48, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) + (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35279, libc.VaList(bp+48, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_NONE) } } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35139, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35285, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35158, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35304, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35201, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35347, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35215, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35361, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, zArg, -int32(1)) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35253, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35399, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35264, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35410, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+5499, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+5563, zCmd, nCmd) == 0 { *(*[4]TFts5Enum)(unsafe.Pointer(bp + 4)) = [4]TFts5Enum{ 0: { - FzName: __ccgo_ts + 8218, + FzName: __ccgo_ts + 8343, FeVal: int32(FTS5_DETAIL_NONE), }, 1: { - FzName: __ccgo_ts + 17747, + FzName: __ccgo_ts + 17834, }, 2: { - FzName: __ccgo_ts + 35299, + FzName: __ccgo_ts + 35445, FeVal: int32(FTS5_DETAIL_COLUMNS), }, 3: {}, @@ -203267,20 +205268,20 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC v2 = _fts5ConfigSetEnum(tls, bp+4, zArg, pConfig+56) *(*int32)(unsafe.Pointer(bp)) = v2 if v2 != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35307, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35453, 0) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35338, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35484, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35348, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35494, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbTokendata = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35382, libc.VaList(bp+48, nCmd, zCmd)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35528, libc.VaList(bp+48, nCmd, zCmd)) return int32(SQLITE_ERROR) } @@ -203354,15 +205355,15 @@ func _fts5ConfigParseColumn(tls *libc.TLS, p uintptr, zCol uintptr, zArg uintptr var v2 uintptr _, _, _ = rc, v1, v2 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35410) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16694) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35415, libc.VaList(bp+8, zCol)) + if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35556) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16781) { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35561, libc.VaList(bp+8, zCol)) rc = int32(SQLITE_ERROR) } else { if zArg != 0 { - if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35445) { + if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35591) { *(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FabUnindexed + uintptr((*TFts5Config)(unsafe.Pointer(p)).FnCol))) = uint8(1) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35455, libc.VaList(bp+8, zArg)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35601, libc.VaList(bp+8, zArg)) rc = int32(SQLITE_ERROR) } } @@ -203388,7 +205389,7 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TFts5Buffer)(unsafe.Pointer(bp + 4)) = TFts5Buffer{} - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+4, __ccgo_ts+35486, libc.VaList(bp+24, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+4, __ccgo_ts+35632, libc.VaList(bp+24, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) if (*TFts5Config)(unsafe.Pointer(p)).FeContent != int32(FTS5_CONTENT_NONE) { i = 0 for { @@ -203396,9 +205397,9 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { break } if (*TFts5Config)(unsafe.Pointer(p)).FeContent == int32(FTS5_CONTENT_EXTERNAL) { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+4, __ccgo_ts+35491, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*4)))) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+4, __ccgo_ts+35637, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*4)))) } else { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+4, __ccgo_ts+35498, libc.VaList(bp+24, i)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+4, __ccgo_ts+35644, libc.VaList(bp+24, i)) } goto _1 _1: @@ -203459,8 +205460,8 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in (*TFts5Config)(unsafe.Pointer(pRet)).FzName = _sqlite3Fts5Strndup(tls, bp, *(*uintptr)(unsafe.Pointer(azArg + 2*4)), -int32(1)) (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize = int32(1) (*TFts5Config)(unsafe.Pointer(pRet)).FeDetail = FTS5_DETAIL_FULL - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35410) == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35506, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35556) == 0 { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35652, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } _ = libc.Int32FromInt32(0) @@ -203493,19 +205494,19 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { if z == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35535, libc.VaList(bp+32, zOrig)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35681, libc.VaList(bp+32, zOrig)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bOption != 0 { if *(*uintptr)(unsafe.Pointer(bp + 4)) != 0 { v4 = *(*uintptr)(unsafe.Pointer(bp + 4)) } else { - v4 = __ccgo_ts + 1648 + v4 = __ccgo_ts + 1662 } if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { v5 = *(*uintptr)(unsafe.Pointer(bp + 8)) } else { - v5 = __ccgo_ts + 1648 + v5 = __ccgo_ts + 1662 } *(*int32)(unsafe.Pointer(bp)) = _fts5ConfigParseSpecial(tls, pGlobal, pRet, v4, v5, pzErr) } else { @@ -203523,7 +205524,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } /* We only allow contentless_delete=1 if the table is indeed contentless. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FeContent != int32(FTS5_CONTENT_NONE) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35555, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35701, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* We only allow contentless_delete=1 if columnsize=0 is not present. @@ -203531,7 +205532,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in ** This restriction may be removed at some point. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35605, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35751, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* If a tokenizer= option was successfully parsed, the tokenizer has @@ -203545,18 +205546,18 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in zTail = uintptr(0) _ = libc.Int32FromInt32(0) if (*TFts5Config)(unsafe.Pointer(pRet)).FeContent == FTS5_CONTENT_NORMAL { - zTail = __ccgo_ts + 35093 + zTail = __ccgo_ts + 35239 } else { if (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize != 0 { - zTail = __ccgo_ts + 35660 + zTail = __ccgo_ts + 35806 } } if zTail != 0 { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35668, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35814, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid == uintptr(0) { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16694, -int32(1)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16781, -int32(1)) } /* Formulate the zContentExprlist text */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -203620,25 +205621,25 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { var _ /* rc at bp+0 */ int32 _, _, _, _ = i, zSep, zSql, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35679, 0) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35825, 0) i = 0 for { if !(zSql != 0 && i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } if i == 0 { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } else { - v2 = __ccgo_ts + 14990 + v2 = __ccgo_ts + 15083 } zSep = v2 - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35695, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*4)))) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35841, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*4)))) goto _1 _1: ; i++ } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35702, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35410)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35848, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35556)) _ = libc.Int32FromInt32(0) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_declare_vtab(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql) @@ -203786,7 +205787,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV var _ /* zRankArgs at bp+4 */ uintptr _, _, _, _, _, _, _, _, _, _ = bVal, nAutomerge, nCrisisMerge, nHashSize, nUsermerge, nVal, pgsz, rc, zIn, v1 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35728) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35874) { pgsz = 0 if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { pgsz = Xsqlite3_value_int(tls, pVal) @@ -203797,7 +205798,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).Fpgsz = pgsz } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35733) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35879) { nHashSize = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nHashSize = Xsqlite3_value_int(tls, pVal) @@ -203808,7 +205809,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnHashSize = nHashSize } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35742) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35888) { nAutomerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nAutomerge = Xsqlite3_value_int(tls, pVal) @@ -203822,7 +205823,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnAutomerge = nAutomerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35752) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35898) { nUsermerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nUsermerge = Xsqlite3_value_int(tls, pVal) @@ -203833,7 +205834,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnUsermerge = nUsermerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35762) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35908) { nCrisisMerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nCrisisMerge = Xsqlite3_value_int(tls, pVal) @@ -203850,7 +205851,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnCrisisMerge = nCrisisMerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35774) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35920) { nVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nVal = Xsqlite3_value_int(tls, pVal) @@ -203865,7 +205866,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } (*TFts5Config)(unsafe.Pointer(pConfig)).FnDeleteMerge = nVal } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35410) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35556) { zIn = Xsqlite3_value_text(tls, pVal) rc = _sqlite3Fts5ConfigParseRank(tls, zIn, bp, bp+4) if rc == SQLITE_OK { @@ -203880,7 +205881,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35786) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35932) { bVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { bVal = Xsqlite3_value_int(tls, pVal) @@ -203922,7 +205923,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in var _ /* p at bp+0 */ uintptr var _ /* rc at bp+4 */ int32 _, _, _, _, _ = iVersion, pVal, zK, zSelect, zSql - zSelect = __ccgo_ts + 35800 + zSelect = __ccgo_ts + 35946 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 4)) = SQLITE_OK iVersion = 0 @@ -203943,7 +205944,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in for int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zK = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) pVal = Xsqlite3_column_value(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) - if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35832) { + if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35978) { iVersion = Xsqlite3_value_int(tls, pVal) } else { *(*int32)(unsafe.Pointer(bp + 8)) = 0 @@ -203956,7 +205957,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in *(*int32)(unsafe.Pointer(bp + 4)) = int32(SQLITE_ERROR) if (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg != 0 { _ = libc.Int32FromInt32(0) - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35840, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35986, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = iVersion @@ -204181,7 +206182,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr } } if int32(*(*uint8)(unsafe.Pointer(z2))) == int32('\000') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35911, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36057, 0) return FTS5_EOF } goto _1 @@ -204192,7 +206193,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(z2) - int32(z) default: if _sqlite3Fts5IsBareword(tls, *(*uint8)(unsafe.Pointer(z))) == 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35931, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36077, libc.VaList(bp+8, z)) return FTS5_EOF } tok = int32(FTS5_STRING) @@ -204207,13 +206208,13 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr z21++ } (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(z21) - int32(z) - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35962, uint32(2)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36108, uint32(2)) == 0 { tok = int32(FTS5_OR) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35965, uint32(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36111, uint32(3)) == 0 { tok = int32(FTS5_NOT) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30706, uint32(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30852, uint32(3)) == 0 { tok = int32(FTS5_AND) } break @@ -204634,6 +206635,7 @@ func _fts5ExprSynonymList(tls *libc.TLS, pTerm uintptr, iRowid Ti64, pBuf uintpt *(*int32)(unsafe.Pointer(pn)) = (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn } } + goto synonym_poslist_out synonym_poslist_out: ; if aIter != bp { @@ -204766,6 +206768,7 @@ func _fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMat i++ } } + goto ismatch_out ismatch_out: ; *(*int32)(unsafe.Pointer(pbMatch)) = libc.BoolInt32((*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn > 0) @@ -204981,6 +206984,7 @@ func _fts5ExprNearIsMatch(tls *libc.TLS, pRc uintptr, pNear uintptr) (r int32) { goto ismatch_out } } + goto ismatch_out ismatch_out: ; bRet = libc.BoolInt32((*TFts5Buffer)(unsafe.Pointer((*(*TFts5NearTrimmer)(unsafe.Pointer(a))).FpOut)).Fn > 0) @@ -206326,8 +208330,8 @@ func _sqlite3Fts5ExprClonePhrase(tls *libc.TLS, pExpr uintptr, iPhrase int32, pp func _sqlite3Fts5ParseNear(tls *libc.TLS, pParse uintptr, pTok uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+35969, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint32(4)) != 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34750, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) + if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+36115, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint32(4)) != 0 { + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34896, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) } } @@ -206347,7 +208351,7 @@ func _sqlite3Fts5ParseSetDistance(tls *libc.TLS, pParse uintptr, pNear uintptr, } c = *(*uint8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i))) if int32(c) < int32('0') || int32(c) > int32('9') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35974, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36120, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) return } nNear = nNear*int32(10) + (int32(*(*uint8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i)))) - int32('0')) @@ -206487,7 +208491,7 @@ func _sqlite3Fts5ParseColset(tls *libc.TLS, pParse uintptr, pColset uintptr, p u iCol++ } if iCol == (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21016, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21148, libc.VaList(bp+8, z)) } else { pRet = _fts5ParseColset(tls, pParse, pColset, iCol) } @@ -206614,7 +208618,7 @@ func _sqlite3Fts5ParseSetColset(tls *libc.TLS, pParse uintptr, pExpr uintptr, pC var _ /* pFree at bp+0 */ uintptr *(*uintptr)(unsafe.Pointer(bp)) = pColset if (*TFts5Config)(unsafe.Pointer((*TFts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FeDetail == int32(FTS5_DETAIL_NONE) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36003, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36149, 0) } else { _fts5ParseSetColset(tls, pParse, pExpr, pColset, bp) } @@ -206811,11 +208815,11 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin pPhrase = *(*uintptr)(unsafe.Pointer(pNear + 12)) if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase != int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 0 && (*(*TFts5ExprTerm)(unsafe.Pointer(pPhrase + 20))).FbFirst != 0 { if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase == int32(1) { - v2 = __ccgo_ts + 36056 + v2 = __ccgo_ts + 36202 } else { - v2 = __ccgo_ts + 35969 + v2 = __ccgo_ts + 36115 } - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36063, libc.VaList(bp+8, v2)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36209, libc.VaList(bp+8, v2)) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -206824,7 +208828,7 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin _fts5ExprAddChildren(tls, pRet, pLeft) _fts5ExprAddChildren(tls, pRet, pRight) if (*TFts5ExprNode)(unsafe.Pointer(pRet)).FiHeight > int32(SQLITE_FTS5_MAX_EXPR_DEPTH) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36113, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36259, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -209050,7 +211054,7 @@ func _fts5DataRead(tls *libc.TLS, p uintptr, iRowid Ti64) (r uintptr) { ** to the requested entry. */ if (*TFts5Index)(unsafe.Pointer(p)).FpReader == uintptr(0) && rc == SQLITE_OK { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36166, iRowid, 0, p+52) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36312, iRowid, 0, p+52) } /* If either of the sqlite3_blob_open() or sqlite3_blob_reopen() calls ** above returned SQLITE_ERROR, return SQLITE_CORRUPT_VTAB instead. @@ -209144,7 +211148,7 @@ func _fts5DataWrite(tls *libc.TLS, p uintptr, iRowid Ti64, pData uintptr, nData } if (*TFts5Index)(unsafe.Pointer(p)).FpWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+56, Xsqlite3_mprintf(tls, __ccgo_ts+36172, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+56, Xsqlite3_mprintf(tls, __ccgo_ts+36318, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return } @@ -209173,7 +211177,7 @@ func _fts5DataDelete(tls *libc.TLS, p uintptr, iFirst Ti64, iLast Ti64) { } if (*TFts5Index)(unsafe.Pointer(p)).FpDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36223, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36369, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if _fts5IndexPrepareStmt(tls, p, p+60, zSql) != 0 { return } @@ -209207,7 +211211,7 @@ func _fts5DataRemoveSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { } if (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+68, Xsqlite3_mprintf(tls, __ccgo_ts+36272, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+68, Xsqlite3_mprintf(tls, __ccgo_ts+36418, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter, int32(1), iSegid) @@ -209377,7 +211381,7 @@ func _fts5StructureDecode(tls *libc.TLS, pData uintptr, nData int32, piCookie ui } i = int32(4) /* Check if this is a V2 structure record. Set bStructureV2 if it is. */ - if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36312, uint32(4)) { + if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36458, uint32(4)) { i += int32(4) bStructureV2 = int32(1) } @@ -209570,7 +211574,7 @@ func _fts5IndexDataVersion(tls *libc.TLS, p uintptr) (r Ti64) { iVersion = 0 if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*TFts5Index)(unsafe.Pointer(p)).FpDataVersion == uintptr(0) { - (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+88, Xsqlite3_mprintf(tls, __ccgo_ts+36317, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) + (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+88, Xsqlite3_mprintf(tls, __ccgo_ts+36463, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return 0 } @@ -209658,7 +211662,7 @@ func _fts5StructureWrite(tls *libc.TLS, p uintptr, pStruct uintptr) { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = int32(4) if (*TFts5Structure)(unsafe.Pointer(pStruct)).FnOriginCntr > uint64(0) { _ = libc.Int32FromInt32(0) - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36312, uint32(4)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36458, uint32(4)) *(*int32)(unsafe.Pointer(bp + 4)) += int32(4) } *(*int32)(unsafe.Pointer(bp + 4)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), uint64((*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel)) @@ -210636,6 +212640,7 @@ func _fts5SegIterNext_None(tls *libc.TLS, p uintptr, pIter uintptr, pbNewTerm ui } _fts5SegIterLoadNPos(tls, p, pIter) return + goto next_none_eof next_none_eof: ; _fts5DataRelease(tls, (*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf) @@ -211012,6 +213017,7 @@ func _fts5LeafSeek(tls *libc.TLS, p uintptr, bGe int32, pIter uintptr, pTerm uin *(*Tu32)(unsafe.Pointer(bp)) += uint32(_sqlite3Fts5GetVarint32(tls, a+uintptr(*(*Tu32)(unsafe.Pointer(bp))), bp+4)) } } + goto search_failed search_failed: ; if bGe == 0 { @@ -211043,6 +213049,7 @@ search_failed: } } } + goto search_success search_success: ; if int64(*(*Tu32)(unsafe.Pointer(bp)))+int64(*(*Tu32)(unsafe.Pointer(bp + 8))) > int64(n) || *(*Tu32)(unsafe.Pointer(bp + 8)) < uint32(1) { @@ -211072,7 +213079,7 @@ func _fts5IdxSelectStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+72, Xsqlite3_mprintf(tls, __ccgo_ts+36340, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+72, Xsqlite3_mprintf(tls, __ccgo_ts+36486, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect } @@ -211164,7 +213171,7 @@ func _fts5IdxNextStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+76, Xsqlite3_mprintf(tls, __ccgo_ts+36424, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+76, Xsqlite3_mprintf(tls, __ccgo_ts+36570, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect } @@ -212296,6 +214303,7 @@ func _fts5IterSetOutputs_Col100(tls *libc.TLS, pIter uintptr, pSeg uintptr) { iPrevOut = iPrev } } + goto setoutputs_col_out setoutputs_col_out: ; (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*TFts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp @@ -212521,6 +214529,7 @@ func _fts5MultiIterNew(tls *libc.TLS, p uintptr, pStruct uintptr, flags int32, p _fts5MultiIterFree(tls, pNew) *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) } + goto fts5MultiIterNew_post_check fts5MultiIterNew_post_check: ; _ = libc.Int32FromInt32(0) @@ -212840,7 +214849,7 @@ func _fts5WriteFlushBtree(tls *libc.TLS, p uintptr, pWriter uintptr) { if (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn > 0 { v1 = (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fp } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } z = v1 /* The following was already done in fts5WriteInit(): */ @@ -213209,7 +215218,7 @@ func _fts5WriteInit(tls *libc.TLS, p uintptr, pWriter uintptr, iSegid int32) { _sqlite3Fts5BufferSize(tls, p+44, pWriter+4+8, uint32(nBuffer)) if (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+36506, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+36652, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { /* Initialize the 4-byte leaf-page header to 0x00. */ @@ -213714,7 +215723,7 @@ func _fts5SecureDeleteIdxEntry(tls *libc.TLS, p uintptr, iSegid int32, iPgno int if iPgno != int32(1) { _ = libc.Int32FromInt32(0) if (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx == uintptr(0) { - _fts5IndexPrepareStmt(tls, p, p+84, Xsqlite3_mprintf(tls, __ccgo_ts+36563, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+84, Xsqlite3_mprintf(tls, __ccgo_ts+36709, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx, int32(1), iSegid) @@ -215258,7 +217267,7 @@ func _sqlite3Fts5IndexReinit(tls *libc.TLS, p uintptr) (r int32) { if (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FbContentlessDelete != 0 { (*(*TFts5Structure)(unsafe.Pointer(bp))).FnOriginCntr = uint64(1) } - _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1648, 0) + _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1662, 0) _fts5StructureWrite(tls, p, bp) return _fts5IndexReturn(tls, p) } @@ -215285,11 +217294,11 @@ func _sqlite3Fts5IndexOpen(tls *libc.TLS, pConfig uintptr, bCreate int32, pp uin if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Index)(unsafe.Pointer(p)).FpConfig = pConfig (*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit = int32(FTS5_WORK_UNIT) - (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36624, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36770, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl != 0 && bCreate != 0 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25741, __ccgo_ts+36632, 0, pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25887, __ccgo_ts+36778, 0, pzErr) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11793, __ccgo_ts+36667, int32(1), pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11918, __ccgo_ts+36813, int32(1), pzErr) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5IndexReinit(tls, p) @@ -215830,7 +217839,7 @@ func _fts5SetupTokendataIter(tls *libc.TLS, p uintptr, pToken uintptr, nToken in pNew = _fts5MultiIterAlloc(tls, p, (*TFts5Structure)(unsafe.Pointer(pStruct)).FnSegment) if pSmall != 0 { _sqlite3Fts5BufferSet(tls, p+44, bp, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fn, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fp) - _sqlite3Fts5BufferAppendBlob(tls, p+44, bp, uint32(1), __ccgo_ts+36711) + _sqlite3Fts5BufferAppendBlob(tls, p+44, bp, uint32(1), __ccgo_ts+36857) } else { _sqlite3Fts5BufferSet(tls, p+44, bp, nToken, pToken) } @@ -216360,7 +218369,7 @@ func _sqlite3Fts5IndexSetCookie(tls *libc.TLS, p uintptr, iNew int32) (r int32) *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) _ = libc.Int32FromInt32(0) _sqlite3Fts5Put32(tls, bp, iNew) - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36166, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+4) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36312, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+4) if rc == SQLITE_OK { Xsqlite3_blob_write(tls, *(*uintptr)(unsafe.Pointer(bp + 4)), bp, int32(4), 0) rc = Xsqlite3_blob_close(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) @@ -216959,7 +218968,7 @@ func _fts5IndexIntegrityCheckSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { if (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst == 0 { return } - _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36713, libc.VaList(bp+24, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) + _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36859, libc.VaList(bp+24, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) /* Iterate through the b-tree hierarchy. */ for (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { /* Data for this leaf */ zIdxTerm = Xsqlite3_column_blob(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -217192,7 +219201,7 @@ func _sqlite3Fts5IndexIntegrityCheck(tls *libc.TLS, p uintptr, cksum Tu64, bUseC } else { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = 0 _fts5SegiterPoslist(tls, p, *(*uintptr)(unsafe.Pointer(bp + 12))+80+uintptr((*(*TFts5CResult)(unsafe.Pointer((*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 12)))).FaFirst + 1*4))).FiFirst)*104, uintptr(0), bp) - _sqlite3Fts5BufferAppendBlob(tls, p+44, bp, uint32(4), __ccgo_ts+36799) + _sqlite3Fts5BufferAppendBlob(tls, p+44, bp, uint32(4), __ccgo_ts+36945) for 0 == _sqlite3Fts5PoslistNext64(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn, bp+32, bp+24) { iCol = int32(*(*Ti64)(unsafe.Pointer(bp + 24)) >> libc.Int32FromInt32(32)) iTokOff = int32(*(*Ti64)(unsafe.Pointer(bp + 24)) & libc.Int64FromInt32(0x7FFFFFFF)) @@ -217802,7 +219811,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36804, 0) + (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36950, 0) return int32(SQLITE_ERROR) } idxStr = Xsqlite3_malloc(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint*int32(8)+int32(1)) @@ -217842,7 +219851,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v3 = iIdxStr iIdxStr++ *(*uint8)(unsafe.Pointer(idxStr + uintptr(v3))) = uint8('M') - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5138, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5202, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) _ = libc.Int32FromInt32(0) } @@ -217864,7 +219873,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v6 = int32('G') } *(*uint8)(unsafe.Pointer(idxStr + uintptr(v5))) = uint8(v6) - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5138, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5202, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) iCons++ v7 = iCons @@ -218306,7 +220315,7 @@ func _fts5NextMethod(tls *libc.TLS, pCursor uintptr) (r int32) { *(*int32)(unsafe.Pointer(pCsr + 60)) |= int32(FTS5CSR_EOF) rc = Xsqlite3_reset(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpStmt) if rc != SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } } else { rc = SQLITE_OK @@ -218333,7 +220342,7 @@ func _fts5PrepareStatement(tls *libc.TLS, ppStmt uintptr, pConfig uintptr, zFmt } else { rc = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } Xsqlite3_free(tls, zSql) } @@ -218368,21 +220377,21 @@ func _fts5CursorFirstSorted(tls *libc.TLS, pTab uintptr, pCsr uintptr, bDesc int ** ** If SQLite a built-in statement cache, this wouldn't be a problem. */ if zRankArgs != 0 { - v1 = __ccgo_ts + 14990 + v1 = __ccgo_ts + 15083 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } if zRankArgs != 0 { v2 = zRankArgs } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } if bDesc != 0 { - v3 = __ccgo_ts + 36843 + v3 = __ccgo_ts + 36989 } else { - v3 = __ccgo_ts + 36848 + v3 = __ccgo_ts + 36994 } - rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+36852, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) + rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+36998, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpSorter = pSorter if rc == SQLITE_OK { _ = libc.Int32FromInt32(0) @@ -218442,14 +220451,14 @@ func _fts5SpecialMatch(tls *libc.TLS, pTab uintptr, pCsr uintptr, zQuery uintptr } _ = libc.Int32FromInt32(0) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan = int32(FTS5_PLAN_SPECIAL) - if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+36907, z, n) { + if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+37053, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = int64(_sqlite3Fts5IndexReads(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)) } else { - if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5481, z, n) { + if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5545, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId } else { /* An unrecognized directive. Return an error message. */ - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36913, libc.VaList(bp+8, n, z)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37059, libc.VaList(bp+8, n, z)) rc = int32(SQLITE_ERROR) } } @@ -218499,7 +220508,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { zRank = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank zRankArgs = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs if zRankArgs != 0 { - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36941, libc.VaList(bp+16, zRankArgs)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37087, libc.VaList(bp+16, zRankArgs)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp+4, uintptr(0)) @@ -218535,7 +220544,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { pAux = _fts5FindAuxiliary(tls, pTab, zRank) if pAux == uintptr(0) { _ = libc.Int32FromInt32(0) - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36951, libc.VaList(bp+16, zRank)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37097, libc.VaList(bp+16, zRank)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -218569,7 +220578,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui *(*int32)(unsafe.Pointer(pCsr + 60)) |= int32(FTS5CSR_FREE_ZRANK) } else { if rc == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36972, libc.VaList(bp+16, z)) + (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37118, libc.VaList(bp+16, z)) } } } else { @@ -218577,7 +220586,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRank (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRankArgs } else { - (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 34904 + (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 35050 (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = uintptr(0) } } @@ -218628,7 +220637,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint iIdxStr = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36804, 0) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36950, 0) return int32(SQLITE_ERROR) } if (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan != 0 { @@ -218658,7 +220667,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint case int32('M'): zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*4))) if zText == uintptr(0) { - zText = __ccgo_ts + 1648 + zText = __ccgo_ts + 1662 } iCol = 0 for cond := true; cond; cond = int32(*(*uint8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) <= int32('9') { @@ -218786,7 +220795,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent == uintptr(0) { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37005, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37151, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) rc = int32(SQLITE_ERROR) } else { /* This is either a full-table scan (ePlan==FTS5_PLAN_SCAN) or a lookup @@ -218811,6 +220820,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } } + goto filter_out filter_out: ; _sqlite3Fts5ExprFree(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -218929,7 +220939,7 @@ func _fts5SeekCursor(tls *libc.TLS, pCsr uintptr, bErrormsg int32) (r int32) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< int32(1) { - v1 = __ccgo_ts + 20869 + v1 = __ccgo_ts + 21001 } else { - v1 = __ccgo_ts + 37283 + v1 = __ccgo_ts + 37429 } - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37295, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37441, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if nArg == int32(1) { @@ -219194,7 +221204,7 @@ func _fts5UpdateMethod(tls *libc.TLS, pVtab uintptr, nArg int32, apVal uintptr, } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && bUpdateOrDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FbSecureDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion == int32(FTS5_CURRENT_VERSION) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35832, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35978, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = int32(FTS5_CURRENT_VERSION_SECUREDELETE) } @@ -219995,7 +222005,7 @@ func _fts5ApiCallback(tls *libc.TLS, context uintptr, argc int32, argv uintptr) iCsrId = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) pCsr = _fts5CursorFromCsrid(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal, iCsrId) if pCsr == uintptr(0) || (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan == 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37332, libc.VaList(bp+8, iCsrId)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37478, libc.VaList(bp+8, iCsrId)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } else { @@ -220187,7 +222197,7 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg = uintptr(0) } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 && Xsqlite3_vtab_nochange(tls, pCtx) != 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37353, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37499, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -220430,7 +222440,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr if pMod == uintptr(0) { _ = libc.Int32FromInt32(0) rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37424, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37570, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) } else { if azArg != 0 { v2 = azArg + 1*4 @@ -220446,7 +222456,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr (*TFts5Config)(unsafe.Pointer(pConfig)).FpTokApi = pMod + 8 if rc != SQLITE_OK { if pzErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37446, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37592, 0) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FePattern = _sqlite3Fts5TokenizerPattern(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pMod)).Fx.FxCreate, (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok) @@ -220502,7 +222512,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { pGlobal = Xsqlite3_user_data(tls, pCtx) _ = nArg _ = libc.Int32FromInt32(0) - ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37477) + ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37623) if ppApi != 0 { *(*uintptr)(unsafe.Pointer(ppApi)) = pGlobal } @@ -220517,7 +222527,7 @@ func _fts5SourceIdFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apUnused uintptr _ = libc.Int32FromInt32(0) _ = nArg _ = apUnused - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37490, -int32(1), uintptr(-libc.Int32FromInt32(1))) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37636, -int32(1), uintptr(-libc.Int32FromInt32(1))) } // C documentation @@ -220546,11 +222556,11 @@ func _fts5ShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName2 = [5]uintptr{ - 0: __ccgo_ts + 37581, - 1: __ccgo_ts + 35093, - 2: __ccgo_ts + 25741, - 3: __ccgo_ts + 35660, - 4: __ccgo_ts + 11793, + 0: __ccgo_ts + 37727, + 1: __ccgo_ts + 35239, + 2: __ccgo_ts + 25887, + 3: __ccgo_ts + 35806, + 4: __ccgo_ts + 11918, } // C documentation @@ -220564,21 +222574,27 @@ func _fts5IntegrityMethod(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zTabnam bp := tls.Alloc(32) defer tls.Free(32) var pTab uintptr - var rc int32 - _, _ = pTab, rc + var rc, v1 int32 + _, _, _ = pTab, rc, v1 pTab = pVtab _ = libc.Int32FromInt32(0) _ = isQuick rc = _sqlite3Fts5StorageIntegrity(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, 0) if rc&int32(0xff) == int32(SQLITE_CORRUPT) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37588, libc.VaList(bp+8, zSchema, zTabname)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37734, libc.VaList(bp+8, zSchema, zTabname)) + if *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { + v1 = SQLITE_OK + } else { + v1 = int32(SQLITE_NOMEM) + } + rc = v1 } else { if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37634, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37780, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) } } _sqlite3Fts5IndexCloseReader(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex) - return SQLITE_OK + return rc } func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { @@ -220597,7 +222613,7 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateFunction = __ccgo_fp(_fts5CreateAux) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateTokenizer = __ccgo_fp(_fts5CreateTokenizer) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxFindTokenizer = __ccgo_fp(_fts5FindTokenizer) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37697, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37843, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) if rc == SQLITE_OK { rc = _sqlite3Fts5IndexInit(tls, db) } @@ -220614,10 +222630,10 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { rc = _sqlite3Fts5VocabInit(tls, pGlobal, db) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37697, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37843, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37702, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37848, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) } } /* If SQLITE_FTS5_ENABLE_TEST_MI is defined, assume that the file @@ -220724,17 +222740,17 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(p + 28 + uintptr(eStmt)*4)) == uintptr(0) { azStmt = [11]uintptr{ - 0: __ccgo_ts + 37717, - 1: __ccgo_ts + 37785, - 2: __ccgo_ts + 37854, - 3: __ccgo_ts + 37887, - 4: __ccgo_ts + 37926, - 5: __ccgo_ts + 37966, - 6: __ccgo_ts + 38005, - 7: __ccgo_ts + 38048, - 8: __ccgo_ts + 38087, - 9: __ccgo_ts + 38131, - 10: __ccgo_ts + 38171, + 0: __ccgo_ts + 37863, + 1: __ccgo_ts + 37931, + 2: __ccgo_ts + 38000, + 3: __ccgo_ts + 38033, + 4: __ccgo_ts + 38072, + 5: __ccgo_ts + 38112, + 6: __ccgo_ts + 38151, + 7: __ccgo_ts + 38194, + 8: __ccgo_ts + 38233, + 9: __ccgo_ts + 38277, + 10: __ccgo_ts + 38317, } pC = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig zSql = uintptr(0) @@ -220771,16 +222787,16 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, } case int32(FTS5_STMT_REPLACE_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v2 = __ccgo_ts + 38194 + v2 = __ccgo_ts + 38340 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName, v2)) case int32(FTS5_STMT_LOOKUP_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v3 = __ccgo_ts + 38197 + v3 = __ccgo_ts + 38343 } else { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, v3, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName)) default: @@ -220799,7 +222815,7 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, (*TFts5Config)(unsafe.Pointer((*TFts5Storage)(unsafe.Pointer(p)).FpConfig)).FbLock-- Xsqlite3_free(tls, zSql) if rc != SQLITE_OK && pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) } } } @@ -220836,12 +222852,12 @@ func _sqlite3Fts5DropAll(tls *libc.TLS, pConfig uintptr) (r int32) { defer tls.Free(64) var rc int32 _ = rc - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38205, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38351, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38309, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38455, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38347, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38493, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } return rc } @@ -220850,7 +222866,7 @@ func _fts5StorageRenameOne(tls *libc.TLS, pConfig uintptr, pRc uintptr, zTail ui bp := tls.Alloc(48) defer tls.Free(48) if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38385, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) + *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38531, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) } } @@ -220862,14 +222878,14 @@ func _sqlite3Fts5StorageRename(tls *libc.TLS, pStorage uintptr, zName uintptr) ( _ = pConfig pConfig = (*TFts5Storage)(unsafe.Pointer(pStorage)).FpConfig *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageSync(tls, pStorage) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25741, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11793, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37581, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25887, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11918, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37727, zName) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35660, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35806, zName) } if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35093, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35239, zName) } return *(*int32)(unsafe.Pointer(bp)) } @@ -220889,13 +222905,13 @@ func _sqlite3Fts5CreateTable(tls *libc.TLS, pConfig uintptr, zPost uintptr, zDef _, _ = rc, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if bWithout != 0 { - v1 = __ccgo_ts + 30381 + v1 = __ccgo_ts + 30527 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38427, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38573, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38457, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38603, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -220936,36 +222952,36 @@ func _sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCr if zDefn == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38501, 0) + Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38647, 0) iOff = int32(libc.Xstrlen(tls, zDefn)) i = 0 for { if !(i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } - Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38524, libc.VaList(bp+8, i)) + Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38670, libc.VaList(bp+8, i)) iOff += int32(libc.Xstrlen(tls, zDefn+uintptr(iOff))) goto _2 _2: ; i++ } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35093, zDefn, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35239, zDefn, 0, pzErr) } Xsqlite3_free(tls, zDefn) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - zCols = __ccgo_ts + 38530 + zCols = __ccgo_ts + 38676 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 { - zCols = __ccgo_ts + 38562 + zCols = __ccgo_ts + 38708 } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35660, zCols, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35806, zCols, 0, pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37581, __ccgo_ts+38610, int32(1), pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37727, __ccgo_ts+38756, int32(1), pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35832, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35978, uintptr(0), int32(FTS5_CURRENT_VERSION)) } } if rc != 0 { @@ -221312,9 +223328,9 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig (*TFts5Storage)(unsafe.Pointer(p)).FbTotalsValid = 0 /* Delete the contents of the %_data and %_docsize tables. */ - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38627, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38773, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38677, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38823, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } /* Reinitialize the %_data table. This call creates the initial structure ** and averages records. */ @@ -221322,7 +223338,7 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3Fts5IndexReinit(tls, (*TFts5Storage)(unsafe.Pointer(p)).FpIndex) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35832, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35978, uintptr(0), int32(FTS5_CURRENT_VERSION)) } return rc } @@ -221536,7 +223552,7 @@ func _fts5StorageCount(tls *libc.TLS, p uintptr, zSuffix uintptr, pnRow uintptr) var _ /* pCnt at bp+0 */ uintptr _, _, _ = pConfig, rc, zSql pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38706, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38852, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -221749,14 +223765,14 @@ func _sqlite3Fts5StorageIntegrity(tls *libc.TLS, p uintptr, iArg int32) (r int32 ** number of rows. */ if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { *(*Ti64)(unsafe.Pointer(bp + 40)) = 0 - rc = _fts5StorageCount(tls, p, __ccgo_ts+35093, bp+40) + rc = _fts5StorageCount(tls, p, __ccgo_ts+35239, bp+40) if rc == SQLITE_OK && *(*Ti64)(unsafe.Pointer(bp + 40)) != (*TFts5Storage)(unsafe.Pointer(p)).FnTotalRow { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<= int32('A') && int32(*(*uint8)(unsafe.Pointer(zCsr))) <= int32('Z') { @@ -222686,6 +224704,7 @@ _5: goto _2 _1: ; + goto tokenize_done tokenize_done: ; if rc == int32(SQLITE_DONE) { @@ -222749,7 +224768,7 @@ func _fts5PorterCreate(tls *libc.TLS, pCtx uintptr, azArg uintptr, nArg int32, p pApi = pCtx rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zBase = __ccgo_ts + 38798 + zBase = __ccgo_ts + 38944 if nArg > 0 { zBase = *(*uintptr)(unsafe.Pointer(azArg)) } @@ -222966,64 +224985,64 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38808, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38954, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38811, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38957, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38816, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38962, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('e'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38821, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38967, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38824, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38970, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('l'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38827, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38973, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38832, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38978, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38837, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38983, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38841, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38987, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38847, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38993, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38852, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38998, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -223032,49 +225051,49 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38856, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39002, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1_and_S_or_T(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38860, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39006, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } } case int32('s'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38863, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39009, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('t'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38867, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39013, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38871, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39017, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38875, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39021, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38879, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39025, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('z'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38883, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39029, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -223091,20 +225110,20 @@ func _fts5PorterStep1B2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38887, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38867, uint32(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39033, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39013, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('b'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38890, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38893, uint32(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39036, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39039, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38897, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38883, uint32(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39043, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39029, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } @@ -223120,75 +225139,75 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38900, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39046, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38867, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39013, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38908, aBuf+uintptr(nBuf-int32(6)), uint32(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39054, aBuf+uintptr(nBuf-int32(6)), uint32(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38915, uint32(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39061, uint32(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(4) } } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38920, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39066, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38816, uint32(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38962, uint32(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38925, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39071, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38811, uint32(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38957, uint32(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } } case int32('e'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38930, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39076, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38883, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39029, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('g'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38935, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39081, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15907, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15986, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('l'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38940, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39086, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38893, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39039, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38944, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39090, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38808, uint32(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38954, uint32(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38949, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39095, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38852, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38998, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38955, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39101, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38959, uint32(1)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39105, uint32(1)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(1) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38961, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39107, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38875, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39021, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } @@ -223197,48 +225216,48 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38967, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39113, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38883, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39029, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38975, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39121, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38867, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39013, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38981, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39127, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38867, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39013, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } } } case int32('s'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38986, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39132, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38808, uint32(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38954, uint32(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38992, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39138, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38879, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39025, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39000, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39146, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39008, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39154, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39012, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39158, aBuf+uintptr(nBuf-int32(7)), uint32(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38875, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39021, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } @@ -223246,21 +225265,21 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39020, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39166, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38808, uint32(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38954, uint32(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39026, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39172, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38879, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39025, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39032, aBuf+uintptr(nBuf-int32(6)), uint32(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39178, aBuf+uintptr(nBuf-int32(6)), uint32(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38893, uint32(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39039, uint32(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(3) } } @@ -223278,48 +225297,48 @@ func _fts5PorterStep3(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39039, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39185, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38824, uint32(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38970, uint32(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } case int32('s'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39044, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39190, aBuf+uintptr(nBuf-int32(4)), uint32(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39049, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39195, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38824, uint32(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38970, uint32(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39055, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39201, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38824, uint32(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38970, uint32(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39008, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39154, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39061, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39207, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } case int32('z'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39067, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39213, aBuf+uintptr(nBuf-int32(5)), uint32(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38808, uint32(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38954, uint32(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } @@ -223335,13 +225354,13 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('e'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39073, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39219, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39077, uint32(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39223, uint32(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(2) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39080, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39226, aBuf+uintptr(nBuf-int32(2)), uint32(2)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) ret = int32(1) @@ -223349,7 +225368,7 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39083, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39229, aBuf+uintptr(nBuf-int32(3)), uint32(3)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) ret = int32(1) @@ -223435,6 +225454,7 @@ func _fts5PorterCb(tls *libc.TLS, pCtx uintptr, tflags int32, pToken uintptr, nT *(*int32)(unsafe.Pointer(bp))-- } return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, aBuf, *(*int32)(unsafe.Pointer(bp)), iStart, iEnd) + goto pass_through pass_through: ; return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, pToken, nToken, iStart, iEnd) @@ -223510,14 +225530,14 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p break } zArg = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+int32(1))*4)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*4)), __ccgo_ts+39087) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*4)), __ccgo_ts+39233) { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || *(*uint8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { (*TTrigramTokenizer)(unsafe.Pointer(pNew)).FbFold = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('0')) } } else { - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*4)), __ccgo_ts+38780) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*4)), __ccgo_ts+38926) { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('2') || *(*uint8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { @@ -223792,7 +225812,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { Fx Tfts5_tokenizer }{ 0: { - FzName: __ccgo_ts + 38798, + FzName: __ccgo_ts + 38944, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5UnicodeCreate), FxDelete: __ccgo_fp(_fts5UnicodeDelete), @@ -223800,7 +225820,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 1: { - FzName: __ccgo_ts + 39102, + FzName: __ccgo_ts + 39248, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5AsciiCreate), FxDelete: __ccgo_fp(_fts5AsciiDelete), @@ -223808,7 +225828,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 2: { - FzName: __ccgo_ts + 39108, + FzName: __ccgo_ts + 39254, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5PorterCreate), FxDelete: __ccgo_fp(_fts5PorterDelete), @@ -223816,7 +225836,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 3: { - FzName: __ccgo_ts + 39115, + FzName: __ccgo_ts + 39261, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5TriCreate), FxDelete: __ccgo_fp(_fts5TriDelete), @@ -229369,16 +231389,16 @@ func _fts5VocabTableType(tls *libc.TLS, zType uintptr, pzErr uintptr, peType uin zCopy = _sqlite3Fts5Strndup(tls, bp, zType, -int32(1)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { _sqlite3Fts5Dequote(tls, zCopy) - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39123) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39269) == 0 { *(*int32)(unsafe.Pointer(peType)) = FTS5_VOCAB_COL } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39127) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39273) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_ROW) } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39131) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39277) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_INSTANCE) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39140, libc.VaList(bp+16, zCopy)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39286, libc.VaList(bp+16, zCopy)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -229447,15 +231467,15 @@ func _fts5VocabInitVtab(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg var _ /* rc at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _ = azSchema, bDb, nByte, nDb, nTab, pRet, zDb, zTab, zType, v1, v2, v3 azSchema = [3]uintptr{ - 0: __ccgo_ts + 39174, - 1: __ccgo_ts + 39214, - 2: __ccgo_ts + 39249, + 0: __ccgo_ts + 39320, + 1: __ccgo_ts + 39360, + 2: __ccgo_ts + 39395, } pRet = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*4))) == uint32(4) && libc.Xmemcmp(tls, __ccgo_ts+23742, *(*uintptr)(unsafe.Pointer(argv + 1*4)), uint32(4)) == 0) + bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*4))) == uint32(4) && libc.Xmemcmp(tls, __ccgo_ts+23865, *(*uintptr)(unsafe.Pointer(argv + 1*4)), uint32(4)) == 0) if argc != int32(5) && bDb == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39292, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39438, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bDb != 0 { @@ -229626,10 +231646,10 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) zSql = uintptr(0) if (*TFts5VocabTable)(unsafe.Pointer(pTab)).FbBusy != 0 { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39325, libc.VaList(bp+16, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39471, libc.VaList(bp+16, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) return int32(SQLITE_ERROR) } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39356, libc.VaList(bp+16, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39502, libc.VaList(bp+16, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, (*TFts5VocabTable)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), bp+4, uintptr(0)) } @@ -229649,7 +231669,7 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39407, libc.VaList(bp+16, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39553, libc.VaList(bp+16, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } else { @@ -229958,7 +231978,7 @@ func _fts5VocabFilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, zUnuse if pLe != 0 { zCopy = Xsqlite3_value_text(tls, pLe) if zCopy == uintptr(0) { - zCopy = __ccgo_ts + 1648 + zCopy = __ccgo_ts + 1662 } (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm = Xsqlite3_value_bytes(tls, pLe) (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm = Xsqlite3_malloc(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm+int32(1)) @@ -230086,7 +232106,7 @@ func _sqlite3Fts5VocabInit(tls *libc.TLS, pGlobal uintptr, db uintptr) (r int32) var p uintptr _ = p p = pGlobal - return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39433, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) + return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39579, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) } var _fts5Vocab = Tsqlite3_module{ @@ -230139,7 +232159,7 @@ func init() { // /************** End of stmt.c ************************************************/ // /* Return the source-id for this library */ func Xsqlite3_sourceid(tls *libc.TLS) (r uintptr) { - return __ccgo_ts + 39443 + return __ccgo_ts + 39589 } type TAggInfo_col = struct { @@ -230420,11 +232440,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]uint8{'3', '.', '4', '5', '.', '3'} +var Xsqlite3_version = [7]uint8{'3', '.', '4', '6', '.', '0'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-12.2.0\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%04d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00(subquery-%u)\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSmaller\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00PRAGMA \"%w\".integrity_check(%Q)\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00ceiling\x00floor\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00wrong # of entries in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00RIGHT PART OF \x00USE TEMP B-TREE FOR %sORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00parser stack overflow\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-12.2.0\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00ceiling\x00floor\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%04d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00%u-ROW VALUES CLAUSE\x00(subquery-%u)\x00unrecognized token: \"%s\"\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSizeBetween\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: \"%s\" - should this be a string literal in single-quotes?\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00SCAN %S\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00wrong # of entries in index \x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00LAST TERM OF \x00USE TEMP B-TREE FOR %sORDER BY\x00USE TEMP B-TREE FOR LAST %d TERMS OF ORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00syntax error\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00,\n\x00: \x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00 \x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_pretty\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00" type Sqlite3_int64 = sqlite3_int64 type Sqlite3_mutex_methods = sqlite3_mutex_methods diff --git a/vendor/modernc.org/sqlite/lib/sqlite_linux_arm64.go b/vendor/modernc.org/sqlite/lib/sqlite_linux_arm64.go index 19810c10..57386d72 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_linux_arm64.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_linux_arm64.go @@ -1,4 +1,4 @@ -// Code generated for linux/arm64 by 'generator --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -import runtime -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -extended-errors -o sqlite3.go sqlite3.c -I/tmp/libsqlite3/sqlite-amalgamation-3450300/ccgo -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. +// Code generated for linux/arm64 by 'generator --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libz/include/linux/arm64 -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libtcl8.6/include/linux/arm64 -extended-errors -o sqlite3.go sqlite3.c -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. //go:build linux && arm64 // +build linux,arm64 @@ -10,8 +10,6 @@ import ( "unsafe" "modernc.org/libc" - - "runtime" ) var ( @@ -1064,6 +1062,7 @@ const OPFLG_IN1 = 2 const OPFLG_IN2 = 4 const OPFLG_IN3 = 8 const OPFLG_JUMP = 1 +const OPFLG_JUMP0 = 128 const OPFLG_NCYCLE = 64 const OPFLG_OUT2 = 16 const OPFLG_OUT3 = 32 @@ -1141,7 +1140,7 @@ const OP_IfNotOpen = 25 const OP_IfNotZero = 60 const OP_IfNullRow = 20 const OP_IfPos = 59 -const OP_IfSmaller = 33 +const OP_IfSizeBetween = 33 const OP_IncrVacuum = 62 const OP_Init = 8 const OP_InitCoroutine = 11 @@ -1547,6 +1546,7 @@ const SF_ComplexResult = 262144 const SF_Compound = 256 const SF_Converted = 65536 const SF_CopyCte = 67108864 +const SF_Correlated = 536870912 const SF_Distinct = 1 const SF_Expanded = 64 const SF_FixedLimit = 16384 @@ -1821,6 +1821,7 @@ const SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT = -1 const SQLITE_DEFAULT_LOOKASIDE = 40 const SQLITE_DEFAULT_MEMSTATUS = 0 const SQLITE_DEFAULT_MMAP_SIZE = 0 +const SQLITE_DEFAULT_OPTIMIZE_LIMIT = 2000 const SQLITE_DEFAULT_PAGE_SIZE = 4096 const SQLITE_DEFAULT_PCACHE_INITSZ = 20 const SQLITE_DEFAULT_PROXYDIR_PERMISSIONS = 493 @@ -1838,6 +1839,7 @@ const SQLITE_DESERIALIZE_READONLY = 4 const SQLITE_DESERIALIZE_RESIZEABLE = 2 const SQLITE_DETACH = 25 const SQLITE_DETERMINISTIC = 2048 +const SQLITE_DIGIT_SEPARATOR = 95 const SQLITE_DIRECTONLY = 524288 const SQLITE_DIRECT_OVERFLOW_READ = 1 const SQLITE_DONE = 101 @@ -2262,7 +2264,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355" +const SQLITE_SOURCE_ID = "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2370,8 +2372,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.45.3" -const SQLITE_VERSION_NUMBER = 3045003 +const SQLITE_VERSION = "3.46.0" +const SQLITE_VERSION_NUMBER = 3046000 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -2532,11 +2534,11 @@ const TF_HasStat1 = 16 const TF_HasStat4 = 8192 const TF_HasStored = 64 const TF_HasVirtual = 32 +const TF_MaybeReanalyze = 256 const TF_NoVisibleRowid = 512 const TF_OOOHidden = 1024 const TF_Readonly = 1 const TF_Shadow = 4096 -const TF_StatsUsed = 256 const TF_Strict = 65536 const TF_WithoutRowid = 128 const TIMER_ABSTIME = 1 @@ -2693,7 +2695,7 @@ const TK_ID = 59 const TK_IF = 18 const TK_IF_NULL_ROW = 179 const TK_IGNORE = 63 -const TK_ILLEGAL = 184 +const TK_ILLEGAL = 185 const TK_IMMEDIATE = 8 const TK_IN = 49 const TK_INDEX = 161 @@ -2741,6 +2743,7 @@ const TK_PRAGMA = 70 const TK_PRECEDING = 88 const TK_PRIMARY = 122 const TK_PTR = 112 +const TK_QNUMBER = 183 const TK_QUERY = 3 const TK_RAISE = 71 const TK_RANGE = 89 @@ -2765,7 +2768,7 @@ const TK_SELECT_COLUMN = 178 const TK_SEMI = 1 const TK_SET = 130 const TK_SLASH = 109 -const TK_SPACE = 183 +const TK_SPACE = 184 const TK_SPAN = 181 const TK_STAR = 108 const TK_STRING = 117 @@ -2778,12 +2781,12 @@ const TK_TRANSACTION = 6 const TK_TRIGGER = 77 const TK_TRUEFALSE = 170 const TK_TRUTH = 175 -const TK_UMINUS = 173 +const TK_UMINUS = 174 const TK_UNBOUNDED = 90 const TK_UNION = 134 const TK_UNIQUE = 123 const TK_UPDATE = 129 -const TK_UPLUS = 174 +const TK_UPLUS = 173 const TK_USING = 144 const TK_VACUUM = 78 const TK_VALUES = 139 @@ -2939,31 +2942,37 @@ const W_OK = 2 const XN_EXPR = -2 const XN_ROWID = -1 const X_OK = 1 +const YYDYNSTACK = 1 const YYFALLBACK = 1 +const YYFREE = 0 +const YYGROWABLESTACK = 1 const YYMALLOCARGTYPE = 0 -const YYNOCODE = 319 +const YYNOCODE = 322 const YYNOERRORRECOVERY = 1 -const YYNRULE = 405 -const YYNRULE_WITH_ACTION = 340 -const YYNSTATE = 579 -const YYNTOKEN = 185 +const YYNRULE = 409 +const YYNRULE_WITH_ACTION = 344 +const YYNSTATE = 583 +const YYNTOKEN = 186 const YYPARSEFREENEVERNULL = 1 +const YYREALLOC = 0 const YYSTACKDEPTH = 100 const YYWILDCARD = 101 -const YY_ACCEPT_ACTION = 1244 -const YY_ACTTAB_COUNT = 2100 -const YY_ERROR_ACTION = 1243 -const YY_MAX_REDUCE = 1650 -const YY_MAX_SHIFT = 578 -const YY_MAX_SHIFTREDUCE = 1242 -const YY_MIN_REDUCE = 1246 -const YY_MIN_SHIFTREDUCE = 838 -const YY_NO_ACTION = 1245 -const YY_REDUCE_COUNT = 410 -const YY_REDUCE_MAX = 1753 -const YY_REDUCE_MIN = -271 -const YY_SHIFT_COUNT = 578 -const YY_SHIFT_MAX = 2088 +const YY_ACCEPT_ACTION = 1255 +const YY_ACTTAB_COUNT = 2142 +const YY_ERROR_ACTION = 1254 +const YY_MAX_DSTRCTR = 319 +const YY_MAX_REDUCE = 1665 +const YY_MAX_SHIFT = 582 +const YY_MAX_SHIFTREDUCE = 1253 +const YY_MIN_DSTRCTR = 205 +const YY_MIN_REDUCE = 1257 +const YY_MIN_SHIFTREDUCE = 845 +const YY_NO_ACTION = 1256 +const YY_REDUCE_COUNT = 411 +const YY_REDUCE_MAX = 1798 +const YY_REDUCE_MIN = -275 +const YY_SHIFT_COUNT = 582 +const YY_SHIFT_MAX = 2128 const YY_SHIFT_MIN = 0 const _ALLOCA_H = 1 const _ASSERT_H = 1 @@ -3629,6 +3638,9 @@ const fdatasync = 0 const first_valueInvFunc = 0 const first_valueValueFunc = 0 const fts5GetVarint = 0 +const fts5YYDYNSTACK = 0 +const fts5YYFREE = 0 +const fts5YYGROWABLESTACK = 0 const fts5YYMALLOCARGTYPE = 0 const fts5YYNFTS5TOKEN = 16 const fts5YYNOCODE = 27 @@ -3637,13 +3649,16 @@ const fts5YYNRULE = 28 const fts5YYNRULE_WITH_ACTION = 28 const fts5YYNSTATE = 35 const fts5YYPARSEFREENOTNULL = 1 +const fts5YYREALLOC = 0 const fts5YYSTACKDEPTH = 100 const fts5YY_ACCEPT_ACTION = 81 const fts5YY_ACTTAB_COUNT = 105 const fts5YY_ERROR_ACTION = 80 +const fts5YY_MAX_DSTRCTR = 24 const fts5YY_MAX_REDUCE = 110 const fts5YY_MAX_SHIFT = 34 const fts5YY_MAX_SHIFTREDUCE = 79 +const fts5YY_MIN_DSTRCTR = 16 const fts5YY_MIN_REDUCE = 83 const fts5YY_MIN_SHIFTREDUCE = 52 const fts5YY_NO_ACTION = 82 @@ -4065,11 +4080,11 @@ type sqlite3_file1 = Tsqlite3_file1 // ** // ** xLock() upgrades the database file lock. In other words, xLock() moves the // ** database file lock in the direction NONE toward EXCLUSIVE. The argument to -// ** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +// ** xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never // ** SQLITE_LOCK_NONE. If the database file lock is already at or above the // ** requested lock, then the call to xLock() is a no-op. // ** xUnlock() downgrades the database file lock to either SHARED or NONE. -// * If the lock is already at or below the requested lock state, then the call +// ** If the lock is already at or below the requested lock state, then the call // ** to xUnlock() is a no-op. // ** The xCheckReservedLock() method checks whether any database connection, // ** either in this process or in some other process, is holding a RESERVED, @@ -5849,6 +5864,7 @@ type Tsqlite3_changegroup = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -6175,8 +6191,8 @@ type Fts5PhraseIter1 = TFts5PhraseIter1 ** EXTENSION API FUNCTIONS ** ** xUserData(pFts): -** Return a copy of the context pointer the extension function was -** registered with. +** Return a copy of the pUserData pointer passed to the xCreateFunction() +** API when the extension function was registered. ** ** xColumnTotalSize(pFts, iCol, pnToken): ** If parameter iCol is less than zero, set output variable *pnToken @@ -7930,7 +7946,7 @@ type uptr = Tuptr ** 0x00000010 Display sqlite3_index_info xBestIndex calls ** 0x00000020 Range an equality scan metrics ** 0x00000040 IN operator decisions -** 0x00000080 WhereLoop cost adjustements +** 0x00000080 WhereLoop cost adjustments ** 0x00000100 ** 0x00000200 Covering index decisions ** 0x00000400 OR optimization @@ -8442,6 +8458,7 @@ type TParse = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -8661,6 +8678,7 @@ type TSrcItem = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -10937,10 +10955,12 @@ type IdList1 = TIdList1 ** ** Union member validity: ** -** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc -** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy -** u2.pIBIndex fg.isIndexedBy && !fg.isCte -** u2.pCteUse fg.isCte && !fg.isIndexedBy +** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc +** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy +** u1.nRow !fg.isTabFunc && !fg.isIndexedBy +** +** u2.pIBIndex fg.isIndexedBy && !fg.isCte +** u2.pCteUse fg.isCte && !fg.isIndexedBy */ type TSrcItem1 = struct { FpSchema uintptr @@ -10966,6 +10986,7 @@ type TSrcItem1 = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -11369,6 +11390,7 @@ type TParse1 = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -12731,12 +12753,12 @@ var _sqlite3WhereTrace = uint32(0) var _sqlite3OpcodeProperty = [190]uint8{ 4: uint8(0x10), 6: uint8(0x41), - 8: uint8(0x01), + 8: uint8(0x81), 9: uint8(0x01), 10: uint8(0x01), - 11: uint8(0x01), - 12: uint8(0x03), - 13: uint8(0x03), + 11: uint8(0x81), + 12: uint8(0x83), + 13: uint8(0x83), 14: uint8(0x01), 15: uint8(0x01), 16: uint8(0x03), @@ -12744,22 +12766,22 @@ var _sqlite3OpcodeProperty = [190]uint8{ 18: uint8(0x01), 19: uint8(0x12), 20: uint8(0x01), - 21: uint8(0x49), - 22: uint8(0x49), - 23: uint8(0x49), - 24: uint8(0x49), + 21: uint8(0xc9), + 22: uint8(0xc9), + 23: uint8(0xc9), + 24: uint8(0xc9), 25: uint8(0x01), 26: uint8(0x49), 27: uint8(0x49), 28: uint8(0x49), 29: uint8(0x49), - 30: uint8(0x49), + 30: uint8(0xc9), 31: uint8(0x49), - 32: uint8(0x41), + 32: uint8(0xc1), 33: uint8(0x01), 34: uint8(0x41), 35: uint8(0x41), - 36: uint8(0x41), + 36: uint8(0xc1), 37: uint8(0x01), 38: uint8(0x41), 39: uint8(0x41), @@ -12771,7 +12793,7 @@ var _sqlite3OpcodeProperty = [190]uint8{ 45: uint8(0x41), 46: uint8(0x23), 47: uint8(0x0b), - 48: uint8(0x01), + 48: uint8(0x81), 49: uint8(0x01), 50: uint8(0x03), 51: uint8(0x03), @@ -13641,7 +13663,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= int32(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(23890)) + return _sqlite3MisuseError(tls, int32(23961)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -14004,43 +14026,37 @@ type itimerspec = Titimerspec // ** A structure for holding a single date and time. // */ type TDateTime = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD uint8 - FrawS uint8 - FvalidYMD uint8 - FvalidHMS uint8 - FvalidTZ uint8 - FtzSet uint8 - FisError uint8 - FuseSubsec uint8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD uint8 + FvalidYMD uint8 + FvalidHMS uint8 + FnFloor uint8 + F__ccgo44 uint8 } type DateTime = TDateTime type TDateTime1 = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD uint8 - FrawS uint8 - FvalidYMD uint8 - FvalidHMS uint8 - FvalidTZ uint8 - FtzSet uint8 - FisError uint8 - FuseSubsec uint8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD uint8 + FvalidYMD uint8 + FvalidHMS uint8 + FnFloor uint8 + F__ccgo44 uint8 } type DateTime1 = TDateTime1 @@ -14110,6 +14126,7 @@ func _getDigits(tls *libc.TLS, zDate uintptr, zFormat uintptr, va uintptr) (r in cnt++ zFormat += uintptr(4) } + goto end_getDigits end_getDigits: ; _ = ap @@ -14166,6 +14183,8 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } else { if c == int32('Z') || c == int32('z') { zDate++ + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) goto zulu_time } else { return libc.BoolInt32(c != 0) @@ -14178,12 +14197,12 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } zDate += uintptr(5) (*TDateTime)(unsafe.Pointer(p)).Ftz = sgn * (*(*int32)(unsafe.Pointer(bp + 4)) + *(*int32)(unsafe.Pointer(bp))*int32(60)) + goto zulu_time zulu_time: ; for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(zDate))])&int32(0x01) != 0 { zDate++ } - (*TDateTime)(unsafe.Pointer(p)).FtzSet = uint8(1) return libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zDate))) != 0) } @@ -14200,11 +14219,10 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var ms, rScale float64 - var v1 int32 var _ /* h at bp+0 */ int32 var _ /* m at bp+4 */ int32 var _ /* s at bp+8 */ int32 - _, _, _ = ms, rScale, v1 + _, _ = ms, rScale ms = float64(0) if _getDigits(tls, zDate, __ccgo_ts+1162, libc.VaList(bp+24, bp, bp+4)) != int32(2) { return int32(1) @@ -14230,7 +14248,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 8)) = 0 } (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) (*TDateTime)(unsafe.Pointer(p)).Fh = *(*int32)(unsafe.Pointer(bp)) (*TDateTime)(unsafe.Pointer(p)).Fm = *(*int32)(unsafe.Pointer(bp + 4)) @@ -14238,12 +14256,6 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { if _parseTimezone(tls, zDate, p) != 0 { return int32(1) } - if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { - v1 = int32(1) - } else { - v1 = 0 - } - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(v1) return 0 } @@ -14254,7 +14266,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { // */ func _datetimeError(tls *libc.TLS, p uintptr) { libc.Xmemset(tls, p, 0, uint64(48)) - (*TDateTime)(unsafe.Pointer(p)).FisError = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 1, 0x2) } // C documentation @@ -14280,7 +14292,7 @@ func _computeJD(tls *libc.TLS, p uintptr) { M = int32(1) D = int32(1) } - if Y < -int32(4713) || Y > int32(9999) || (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Y < -int32(4713) || Y > int32(9999) || int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { _datetimeError(tls, p) return } @@ -14296,11 +14308,44 @@ func _computeJD(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) if (*TDateTime)(unsafe.Pointer(p)).FvalidHMS != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) += int64((*TDateTime)(unsafe.Pointer(p)).Fh*int32(3600000)+(*TDateTime)(unsafe.Pointer(p)).Fm*int32(60000)) + int64((*TDateTime)(unsafe.Pointer(p)).Fs*libc.Float64FromInt32(1000)+libc.Float64FromFloat64(0.5)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64((*TDateTime)(unsafe.Pointer(p)).Ftz * int32(60000)) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + } + } +} + +// C documentation +// +// /* +// ** Given the YYYY-MM-DD information current in p, determine if there +// ** is day-of-month overflow and set nFloor to the number of days that +// ** would need to be subtracted from the date in order to bring the +// ** date back to the end of the month. +// */ +func _computeFloor(tls *libc.TLS, p uintptr) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if (*TDateTime)(unsafe.Pointer(p)).FD <= int32(28) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } else { + if int32(1)<<(*TDateTime)(unsafe.Pointer(p)).FM&int32(0x15aa) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FM != int32(2) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = libc.BoolUint8((*TDateTime)(unsafe.Pointer(p)).FD == libc.Int32FromInt32(31)) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FY%int32(4) != 0 || (*TDateTime)(unsafe.Pointer(p)).FY%int32(100) == 0 && (*TDateTime)(unsafe.Pointer(p)).FY%int32(400) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8((*TDateTime)(unsafe.Pointer(p)).FD - int32(28)) + } else { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8((*TDateTime)(unsafe.Pointer(p)).FD - int32(29)) + } + } } } } @@ -14359,12 +14404,15 @@ func _parseYyyyMmDd(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FY = v1 (*TDateTime)(unsafe.Pointer(p)).FM = *(*int32)(unsafe.Pointer(bp + 4)) (*TDateTime)(unsafe.Pointer(p)).FD = *(*int32)(unsafe.Pointer(bp + 8)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + _computeFloor(tls, p) + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { _computeJD(tls, p) } return 0 } +/* Forward declaration */ + // C documentation // // /* @@ -14376,6 +14424,9 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) (*TDateTime)(unsafe.Pointer(p)).FiJD = _sqlite3StmtCurrentTime(tls, context) if (*TDateTime)(unsafe.Pointer(p)).FiJD > 0 { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + _clearYMD_HMS_TZ(tls, p) return 0 } else { return int32(1) @@ -14393,7 +14444,7 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) // */ func _setRawDateNumber(tls *libc.TLS, p uintptr, r float64) { (*TDateTime)(unsafe.Pointer(p)).Fs = r - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 0, 0x1) if r >= float64(0) && r < float64(5.3734845e+06) { (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r*libc.Float64FromFloat64(8.64e+07) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) @@ -14436,7 +14487,7 @@ func _parseDateOrTime(tls *libc.TLS, context uintptr, zDate uintptr, p uintptr) return 0 } else { if (_sqlite3StrICmp(tls, zDate, __ccgo_ts+1190) == 0 || _sqlite3StrICmp(tls, zDate, __ccgo_ts+1197) == 0) && _sqlite3NotPureFunc(tls, context) != 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) return _setDateTimeToCurrent(tls, context, p) } } @@ -14528,7 +14579,7 @@ func _computeHMS(tls *libc.TLS, p uintptr) { day_min = day_ms / int32(60000) (*TDateTime)(unsafe.Pointer(p)).Fm = day_min % int32(60) (*TDateTime)(unsafe.Pointer(p)).Fh = day_min / int32(60) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) } @@ -14550,7 +14601,7 @@ func _computeYMD_HMS(tls *libc.TLS, p uintptr) { func _clearYMD_HMS_TZ(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 } /* @@ -14651,9 +14702,9 @@ func _toLocaltime(tls *libc.TLS, p uintptr, pCtx uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FisError = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 1, 0x2) return SQLITE_OK } @@ -14701,13 +14752,13 @@ var _aXformType = [6]struct { FnName: uint8(5), FzName: [7]uint8{'m', 'o', 'n', 't', 'h'}, FrLimit: float32(176546), - FrXform: float32(2.592e+06), + FrXform: float32(libc.Float64FromFloat64(30) * libc.Float64FromFloat64(86400)), }, 5: { FnName: uint8(4), FzName: [7]uint8{'y', 'e', 'a', 'r'}, FrLimit: float32(14713), - FrXform: float32(3.1536e+07), + FrXform: float32(libc.Float64FromFloat64(365) * libc.Float64FromFloat64(86400)), }, } @@ -14721,15 +14772,15 @@ var _aXformType = [6]struct { func _autoAdjustDate(tls *libc.TLS, p uintptr) { var r float64 _ = r - if !((*TDateTime)(unsafe.Pointer(p)).FrawS != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + if !(int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } else { if (*TDateTime)(unsafe.Pointer(p)).Fs >= float64(int64(-libc.Int32FromInt32(21086676))*libc.Int64FromInt32(10000)) && (*TDateTime)(unsafe.Pointer(p)).Fs <= float64(libc.Int64FromInt32(25340230)*libc.Int64FromInt32(10000)+libc.Int64FromInt32(799)) { r = (*TDateTime)(unsafe.Pointer(p)).Fs*float64(1000) + float64(2.1086676e+14) _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } } @@ -14746,14 +14797,20 @@ func _autoAdjustDate(tls *libc.TLS, p uintptr) { // ** NNN.NNNN seconds // ** NNN months // ** NNN years +// ** +/-YYYY-MM-DD HH:MM:SS.SSS +// ** ceiling +// ** floor // ** start of month // ** start of year // ** start of week // ** start of day // ** weekday N // ** unixepoch +// ** auto // ** localtime // ** utc +// ** subsec +// ** subsecond // ** // ** Return 0 on success and 1 if there is any kind of error. If the error // ** is in a system call (i.e. localtime()), then an error message is written @@ -14764,12 +14821,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, bp := tls.Alloc(160) defer tls.Free(160) var Z, day Tsqlite3_int64 - var cnt, i, rc, x, y, v12, v2, v5, v7, v9 int32 - var iErr, iGuess, iOrigJD, v1 Ti64 - var rRounder, v10 float64 + var cnt, i, rc, x, y, v1, v10, v13, v3, v6, v8 int32 + var iErr, iGuess, iOrigJD, v2 Ti64 + var rRounder, v11 float64 var z0 uint8 var z2 uintptr - var v3, v6 bool + var v4, v7 bool var _ /* D at bp+64 */ int32 var _ /* M at bp+60 */ int32 var _ /* Y at bp+56 */ int32 @@ -14778,7 +14835,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, var _ /* new at bp+8 */ TDateTime var _ /* r at bp+0 */ float64 var _ /* tx at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v12, v2, v3, v5, v6, v7, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v11, v13, v2, v3, v4, v6, v7, v8 rc = int32(1) switch int32(_sqlite3UpperToLower[*(*uint8)(unsafe.Pointer(z))]) { case int32('a'): @@ -14795,6 +14852,33 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _autoAdjustDate(tls, p) rc = 0 } + case int32('c'): + /* + ** ceiling + ** + ** Resolve day-of-month overflow by rolling forward into the next + ** month. As this is the default action, this modifier is really + ** a no-op that is only included for symmetry. See "floor". + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1235) == 0 { + _computeJD(tls, p) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } + case int32('f'): + /* + ** floor + ** + ** Resolve day-of-month overflow by rolling back to the end of the + ** previous month. + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1243) == 0 { + _computeJD(tls, p) + *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64(int32((*TDateTime)(unsafe.Pointer(p)).FnFloor) * int32(86400000)) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + } case int32('j'): /* ** julianday @@ -14804,13 +14888,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** value in the allowed range of julian day numbers understood by ** SQLite (0..5373484.5) then the result will be NULL. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1235) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1249) == 0 { if idx > int32(1) { return int32(1) } /* IMP: R-31176-64601 */ - if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { rc = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } case int32('l'): @@ -14819,8 +14903,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Assuming the current time value is UTC (a.k.a. GMT), shift it to ** show local time. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1245) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - rc = _toLocaltime(tls, p, pCtx) + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1259) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x10>>4)) != 0 { + v1 = SQLITE_OK + } else { + v1 = _toLocaltime(tls, p, pCtx) + } + rc = v1 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 4, 0x10) } case int32('u'): /* @@ -14829,7 +14920,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Treat the current value of p->s as the number of ** seconds since 1970. Convert to a real julian day number. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1255) == 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1269) == 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { if idx > int32(1) { return int32(1) } /* IMP: R-49255-55373 */ @@ -14838,17 +14929,17 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(*(*float64)(unsafe.Pointer(bp)) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) rc = 0 } } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1265) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - if int32((*TDateTime)(unsafe.Pointer(p)).FtzSet) == 0 { /* Guess at the corresponding utc time */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1279) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x8>>3)) == 0 { /* Guess at the corresponding utc time */ cnt = 0 /* Guess is off by this much */ _computeJD(tls, p) - v1 = (*TDateTime)(unsafe.Pointer(p)).FiJD - iOrigJD = v1 - iGuess = v1 + v2 = (*TDateTime)(unsafe.Pointer(p)).FiJD + iOrigJD = v2 + iGuess = v2 iErr = 0 for { libc.Xmemset(tls, bp+8, 0, uint64(48)) @@ -14861,21 +14952,22 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, bp+8) iErr = (*(*TDateTime)(unsafe.Pointer(bp + 8))).FiJD - iOrigJD - goto _4 - _4: + goto _5 + _5: ; - if v3 = iErr != 0; v3 { - v2 = cnt + if v4 = iErr != 0; v4 { + v3 = cnt cnt++ } - if !(v3 && v2 < int32(3)) { + if !(v4 && v3 < int32(3)) { break } } libc.Xmemset(tls, p, 0, uint64(48)) (*TDateTime)(unsafe.Pointer(p)).FiJD = iGuess (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FtzSet = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) } rc = SQLITE_OK } @@ -14888,13 +14980,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** weekday N where 0==Sunday, 1==Monday, and so forth. If the ** date is already on the appropriate weekday, this is a no-op. */ - if v6 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1269, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v6 { - v5 = int32(*(*float64)(unsafe.Pointer(bp))) - n = v5 + if v7 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1283, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v7 { + v6 = int32(*(*float64)(unsafe.Pointer(bp))) + n = v6 } - if v6 && float64(v5) == *(*float64)(unsafe.Pointer(bp)) { + if v7 && float64(v6) == *(*float64)(unsafe.Pointer(bp)) { _computeYMD_HMS(tls, p) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) _computeJD(tls, p) Z = ((*TDateTime)(unsafe.Pointer(p)).FiJD + int64(129600000)) / int64(86400000) % int64(7) @@ -14918,9 +15010,9 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Show subsecond precision in the output of datetime() and ** unixepoch() and strftime('%s'). */ - if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1278, int32(9)) != 0 { + if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1292, int32(9)) != 0 { if Xsqlite3_stricmp(tls, z, __ccgo_ts+1190) == 0 || Xsqlite3_stricmp(tls, z, __ccgo_ts+1197) == 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) rc = 0 } break @@ -14931,23 +15023,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z += uintptr(9) _computeYMD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) - v7 = libc.Int32FromInt32(0) - (*TDateTime)(unsafe.Pointer(p)).Fm = v7 - (*TDateTime)(unsafe.Pointer(p)).Fh = v7 + v8 = libc.Int32FromInt32(0) + (*TDateTime)(unsafe.Pointer(p)).Fm = v8 + (*TDateTime)(unsafe.Pointer(p)).Fh = v8 (*TDateTime)(unsafe.Pointer(p)).Fs = float64(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1288) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1302) == 0 { (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1294) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1308) == 0 { (*TDateTime)(unsafe.Pointer(p)).FM = int32(1) (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1299) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1313) == 0 { rc = 0 } } @@ -14989,15 +15081,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } if int32(*(*uint8)(unsafe.Pointer(z + uintptr(n)))) == int32('-') { - if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1303, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1317, libc.VaList(bp+136, bp+56)) == int32(1) { break } - if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1307, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1321, libc.VaList(bp+136, bp+56)) == int32(1) { break } } - goto _8 - _8: + goto _9 + _9: ; n++ } @@ -15014,12 +15106,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } /* Must start with +/- */ if n == int32(5) { - if _getDigits(tls, z+1, __ccgo_ts+1311, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1325, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } } else { _ = libc.Int32FromInt32(0) - if _getDigits(tls, z+1, __ccgo_ts+1323, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1337, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } z++ @@ -15041,13 +15133,14 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, *(*int32)(unsafe.Pointer(p + 12)) += *(*int32)(unsafe.Pointer(bp + 60)) } if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v9 + x = v10 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) _computeJD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) @@ -15091,7 +15184,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z++ } n = _sqlite3Strlen30(tls, z) - if n > int32(10) || n < int32(3) { + if n < int32(3) || n > int32(10) { break } if int32(_sqlite3UpperToLower[*(*uint8)(unsafe.Pointer(z + uintptr(n-int32(1))))]) == int32('s') { @@ -15100,11 +15193,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeJD(tls, p) _ = libc.Int32FromInt32(0) if *(*float64)(unsafe.Pointer(bp)) < libc.Float64FromInt32(0) { - v10 = -libc.Float64FromFloat64(0.5) + v11 = -libc.Float64FromFloat64(0.5) } else { - v10 = +libc.Float64FromFloat64(0.5) + v11 = +libc.Float64FromFloat64(0.5) } - rRounder = v10 + rRounder = v11 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) i = 0 for { if !(i < int32(libc.Uint64FromInt64(96)/libc.Uint64FromInt64(16))) { @@ -15117,20 +15211,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 12)) += int32(*(*float64)(unsafe.Pointer(bp))) if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v12 + x = v13 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) case int32(5): /* Special processing to add years */ y = int32(*(*float64)(unsafe.Pointer(bp))) _ = libc.Int32FromInt32(0) _computeYMD_HMS(tls, p) + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(p + 8)) += y + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) break @@ -15140,8 +15237,8 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, rc = 0 break } - goto _11 - _11: + goto _12 + _12: ; i++ } @@ -15200,7 +15297,7 @@ func _isDate(tls *libc.TLS, context uintptr, argc int32, argv uintptr, p uintptr i++ } _computeJD(tls, p) - if (*TDateTime)(unsafe.Pointer(p)).FisError != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x2>>1)) != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { return int32(1) } if argc == int32(1) && (*TDateTime)(unsafe.Pointer(p)).FvalidYMD != 0 && (*TDateTime)(unsafe.Pointer(p)).FD > int32(28) { @@ -15248,7 +15345,7 @@ func _unixepochFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _ /* x at bp+0 */ TDateTime if _isDate(tls, context, argc, argv, bp) == 0 { _computeJD(tls, bp) - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { Xsqlite3_result_double(tls, context, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000)) } else { Xsqlite3_result_int64(tls, context, (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/int64(1000)-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000)) @@ -15293,7 +15390,7 @@ func _datetimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(15)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(16)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(17)] = uint8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(18)] = uint8(int32('0') + s/int32(10000)%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(19)] = uint8(int32('0') + s/int32(1000)%int32(10)) @@ -15341,7 +15438,7 @@ func _timeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(3)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(4)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(5)] = uint8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(6)] = uint8(int32('0') + s/int32(10000)%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(7)] = uint8(int32('0') + s/int32(1000)%int32(10)) @@ -15402,6 +15499,62 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } +// C documentation +// +// /* +// ** Compute the number of days after the most recent January 1. +// ** +// ** In other words, compute the zero-based day number for the +// ** current year: +// ** +// ** Jan01 = 0, Jan02 = 1, ..., Jan31 = 30, Feb01 = 31, ... +// ** Dec31 = 364 or 365. +// */ +func _daysAfterJan01(tls *libc.TLS, pDate uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* jan01 at bp+0 */ TDateTime + *(*TDateTime)(unsafe.Pointer(bp)) = *(*TDateTime)(unsafe.Pointer(pDate)) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + (*(*TDateTime)(unsafe.Pointer(bp))).FvalidJD = uint8(0) + (*(*TDateTime)(unsafe.Pointer(bp))).FM = int32(1) + (*(*TDateTime)(unsafe.Pointer(bp))).FD = int32(1) + _computeJD(tls, bp) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD - (*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Monday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Monday, 1=Tuesday, 2=Wednesday, ..., 6=Sunday. +// */ +func _daysAfterMonday(tls *libc.TLS, pDate uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(43200000))/libc.Int64FromInt32(86400000)) % int32(7) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Sunday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Sunday, 1=Monday, 2=Tues, ..., 6=Saturday +// */ +func _daysAfterSunday(tls *libc.TLS, pDate uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)) % int32(7) +} + // C documentation // // /* @@ -15409,33 +15562,48 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { // ** // ** Return a string described by FORMAT. Conversions as follows: // ** -// ** %d day of month +// ** %d day of month 01-31 +// ** %e day of month 1-31 // ** %f ** fractional seconds SS.SSS +// ** %F ISO date. YYYY-MM-DD +// ** %G ISO year corresponding to %V 0000-9999. +// ** %g 2-digit ISO year corresponding to %V 00-99 // ** %H hour 00-24 -// ** %j day of year 000-366 +// ** %k hour 0-24 (leading zero converted to space) +// ** %I hour 01-12 +// ** %j day of year 001-366 // ** %J ** julian day number +// ** %l hour 1-12 (leading zero converted to space) // ** %m month 01-12 // ** %M minute 00-59 +// ** %p "am" or "pm" +// ** %P "AM" or "PM" +// ** %R time as HH:MM // ** %s seconds since 1970-01-01 // ** %S seconds 00-59 -// ** %w day of week 0-6 Sunday==0 -// ** %W week of year 00-53 +// ** %T time as HH:MM:SS +// ** %u day of week 1-7 Monday==1, Sunday==7 +// ** %w day of week 0-6 Sunday==0, Monday==1 +// ** %U week of year 00-53 (First Sunday is start of week 01) +// ** %V week of year 01-53 (First week containing Thursday is week 01) +// ** %W week of year 00-53 (First Monday is start of week 01) // ** %Y year 0000-9999 // ** %% % // */ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { - bp := tls.Alloc(160) - defer tls.Free(160) + bp := tls.Alloc(208) + defer tls.Free(208) var c, cf uint8 var db, zFmt, v3, v4, v5, v6, v7 uintptr - var h, nDay, wd int32 + var h int32 var i, j, v2 Tsize_t var iS Ti64 var s float64 var _ /* sRes at bp+48 */ Tsqlite3_str var _ /* x at bp+0 */ TDateTime + var _ /* y at bp+128 */ TDateTime var _ /* y at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, nDay, s, wd, zFmt, v2, v3, v4, v5, v6, v7 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, s, zFmt, v2, v3, v4, v5, v6, v7 if argc == 0 { return } @@ -15468,28 +15636,42 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { fallthrough case int32('e'): if int32(cf) == int32('d') { - v3 = __ccgo_ts + 1335 + v3 = __ccgo_ts + 1349 } else { - v3 = __ccgo_ts + 1340 + v3 = __ccgo_ts + 1354 } - Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) - case int32('f'): + Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('f'): /* Fractional seconds. (Non-standard) */ s = (*(*TDateTime)(unsafe.Pointer(bp))).Fs if s > float64(59.999) { s = float64(59.999) } - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1344, libc.VaList(bp+136, s)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+184, s)) case int32('F'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1365, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('G'): /* Fall thru */ + fallthrough + case int32('g'): + *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) + _ = libc.Int32FromInt32(0) + /* Move y so that it is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidYMD = uint8(0) + _computeYMD(tls, bp+80) + if int32(cf) == int32('g') { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY%int32(100))) + } else { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1380, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY)) + } case int32('H'): fallthrough case int32('k'): if int32(cf) == int32('H') { - v4 = __ccgo_ts + 1335 + v4 = __ccgo_ts + 1349 } else { - v4 = __ccgo_ts + 1340 + v4 = __ccgo_ts + 1354 } - Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) + Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) case int32('I'): /* Fall thru */ fallthrough case int32('l'): @@ -15501,73 +15683,72 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { h = int32(12) } if int32(cf) == int32('I') { - v5 = __ccgo_ts + 1335 + v5 = __ccgo_ts + 1349 } else { - v5 = __ccgo_ts + 1340 + v5 = __ccgo_ts + 1354 } - Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+136, h)) - case int32('W'): /* Fall thru */ - fallthrough - case int32('j'): /* Number of days since 1st day of year */ - *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidJD = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FM = int32(1) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FD = int32(1) - _computeJD(tls, bp+80) - nDay = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) - if int32(cf) == int32('W') { /* 0=Monday, 1=Tuesday, ... 6=Sunday */ - wd = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000) % libc.Int64FromInt32(7)) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1335, libc.VaList(bp+136, (nDay+int32(7)-wd)/int32(7))) - } else { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1366, libc.VaList(bp+136, nDay+int32(1))) - } - case int32('J'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1371, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) + Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+184, h)) + case int32('j'): /* Day of year. Jan01==1, Jan02==2, and so forth */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1385, libc.VaList(bp+184, _daysAfterJan01(tls, bp)+int32(1))) + case int32('J'): /* Julian day number. (Non-standard) */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1390, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) case int32('m'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1335, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) case int32('M'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1335, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('p'): /* Fall thru */ fallthrough case int32('P'): if (*(*TDateTime)(unsafe.Pointer(bp))).Fh >= int32(12) { if int32(cf) == int32('p') { - v6 = __ccgo_ts + 1377 + v6 = __ccgo_ts + 1396 } else { - v6 = __ccgo_ts + 1380 + v6 = __ccgo_ts + 1399 } Xsqlite3_str_append(tls, bp+48, v6, int32(2)) } else { if int32(cf) == int32('p') { - v7 = __ccgo_ts + 1383 + v7 = __ccgo_ts + 1402 } else { - v7 = __ccgo_ts + 1386 + v7 = __ccgo_ts + 1405 } Xsqlite3_str_append(tls, bp+48, v7, int32(2)) } case int32('R'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1389, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1408, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('s'): - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1399, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1418, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) } else { iS = (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/libc.Int64FromInt32(1000) - libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1404, libc.VaList(bp+136, iS)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1423, libc.VaList(bp+184, iS)) } case int32('S'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1335, libc.VaList(bp+136, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+184, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) case int32('T'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1409, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) - case int32('u'): /* Fall thru */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1428, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + case int32('u'): /* Day of week. 1 to 7. Monday==1, Sunday==7 */ fallthrough - case int32('w'): - c = uint8(int32(uint8(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)%libc.Int64FromInt32(7))) + int32('0')) + case int32('w'): /* Day of week. 0 to 6. Sunday==0, Monday==1 */ + c = uint8(int32(uint8(_daysAfterSunday(tls, bp))) + int32('0')) if int32(c) == int32('0') && int32(cf) == int32('u') { c = uint8('7') } Xsqlite3_str_appendchar(tls, bp+48, int32(1), c) + case int32('U'): /* Week num. 00-53. First Sun of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterSunday(tls, bp)+int32(7))/int32(7))) + case int32('V'): /* Week num. 01-53. First week with a Thur is week 01 */ + *(*TDateTime)(unsafe.Pointer(bp + 128)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Adjust y so that is the Thursday in the same week as x */ + _ = libc.Int32FromInt32(0) + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FvalidYMD = uint8(0) + _computeYMD(tls, bp+128) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+184, _daysAfterJan01(tls, bp+128)/int32(7)+int32(1))) + case int32('W'): /* Week num. 00-53. First Mon of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterMonday(tls, bp)+int32(7))/int32(7))) case int32('Y'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1424, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1380, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) case int32('%'): Xsqlite3_str_appendchar(tls, bp+48, int32(1), uint8('%')) default: @@ -15720,12 +15901,10 @@ func _timediffFunc(tls *libc.TLS, context uintptr, NotUsed1 int32, argv uintptr) p2 = bp *(*Tsqlite3_int64)(unsafe.Pointer(p2)) = Tsqlite3_int64(uint64(*(*Tsqlite3_int64)(unsafe.Pointer(p2))) + libc.Uint64FromInt32(1486995408)*libc.Uint64FromInt32(100000)) } - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidYMD = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidHMS = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidTZ = uint8(0) + _clearYMD_HMS_TZ(tls, bp) _computeYMD_HMS(tls, bp) _sqlite3StrAccumInit(tls, bp+96, uintptr(0), uintptr(0), 0, int32(100)) - Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1429, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) + Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1443, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) _sqlite3ResultStrAccum(tls, context, bp+96) } @@ -15758,55 +15937,55 @@ var _aDateTimeFuncs = [10]TFuncDef{ FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1235, + FzName: __ccgo_ts + 1249, }, 1: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1255, + FzName: __ccgo_ts + 1269, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1463, + FzName: __ccgo_ts + 1477, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1468, + FzName: __ccgo_ts + 1482, }, 4: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1473, + FzName: __ccgo_ts + 1487, }, 5: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1482, + FzName: __ccgo_ts + 1496, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1491, + FzName: __ccgo_ts + 1505, }, 7: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1500, + FzName: __ccgo_ts + 1514, }, 8: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1513, + FzName: __ccgo_ts + 1527, }, 9: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1531, + FzName: __ccgo_ts + 1545, }, } @@ -16488,7 +16667,7 @@ func _sqlite3MemMalloc(tls *libc.TLS, nByte int32) (r uintptr) { *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1544, libc.VaList(bp+8, nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1558, libc.VaList(bp+8, nByte)) } return p } @@ -16553,7 +16732,7 @@ func _sqlite3MemRealloc(tls *libc.TLS, pPrior uintptr, nByte int32) (r uintptr) *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1582, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1596, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) } return p } @@ -17969,7 +18148,7 @@ func _sqlite3OomFault(tls *libc.TLS, db uintptr) (r uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++ (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = uint16(0) if (*Tsqlite3)(unsafe.Pointer(db)).FpParse != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1632, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) pParse = (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).FpOuterParse for { @@ -18396,7 +18575,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li v3 = int32(*(*uint8)(unsafe.Pointer(v4))) c = v3 if v3 == 0 { - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1632, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1646, int32(1)) break } /* Find out what flags are present */ @@ -18813,9 +18992,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial != 0 { if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial) == int32(2) { if flag_zeropad != 0 { - v57 = __ccgo_ts + 1634 + v57 = __ccgo_ts + 1648 } else { - v57 = __ccgo_ts + 1639 + v57 = __ccgo_ts + 1653 } bufpt = v57 length = _sqlite3Strlen30(tls, bufpt) @@ -18826,7 +19005,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP = int32(1000) (*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fn = int32(1) } else { - libc.Xmemcpy(tls, bp, __ccgo_ts+1643, uint64(5)) + libc.Xmemcpy(tls, bp, __ccgo_ts+1657, uint64(5)) bufpt = bp if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fsign) == int32('-') { /* no-op */ @@ -18848,14 +19027,13 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li prefix = flag_prefix } exp = (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP - int32(1) - if int32(xtype) == int32(etGENERIC) && precision > 0 { - precision-- - } /* ** If the field type is etGENERIC, then convert to either etEXP ** or etFLOAT, as appropriate. */ if int32(xtype) == int32(etGENERIC) { + _ = libc.Int32FromInt32(0) + precision-- flag_rtz = libc.BoolUint8(!(flag_alternateform != 0)) if exp < -int32(4) || exp > precision { xtype = uint8(etEXP) @@ -19162,7 +19340,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li bufpt = libc.VaUintptr(&ap) } if bufpt == uintptr(0) { - bufpt = __ccgo_ts + 1648 + bufpt = __ccgo_ts + 1662 } else { if int32(xtype) == int32(etDYNSTRING) { if (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnChar == uint32(0) && (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FmxAlloc != 0 && width == 0 && precision < 0 && int32((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FaccError) == 0 { @@ -19216,6 +19394,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } else { length = int32(0x7fffffff) & int32(libc.Xstrlen(tls, bufpt)) } + goto adjust_width_for_utf8 adjust_width_for_utf8: ; if flag_altform2 != 0 && width > 0 { @@ -19250,9 +19429,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li isnull = libc.BoolInt32(escarg == uintptr(0)) if isnull != 0 { if int32(xtype) == int32(etSQLESCAPE2) { - v98 = __ccgo_ts + 1649 + v98 = __ccgo_ts + 1663 } else { - v98 = __ccgo_ts + 1654 + v98 = __ccgo_ts + 1668 } escarg = v98 } @@ -19372,7 +19551,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*TSrcItem)(unsafe.Pointer(pItem)).FzName != 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1661, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1675, int32(1)) } Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzName) } else { @@ -19380,11 +19559,16 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzAlias) } else { pSel = (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect - _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* Because of tag-20240424-1 */ if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_NestedFrom) != 0 { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1663, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1677, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) } else { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1673, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_MultiValue) != 0 { + _ = libc.Int32FromInt32(0) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1687, libc.VaList(bp+128, *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pItem)).Fu1)))) + } else { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1708, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + } } } } @@ -19673,7 +19857,7 @@ func _sqlite3ResultStrAccum(tls *libc.TLS, pCtx uintptr, p uintptr) { if int32((*TStrAccum)(unsafe.Pointer(p)).FprintfFlags)&int32(SQLITE_PRINTF_MALLOCED) != 0 { Xsqlite3_result_text(tls, pCtx, (*TStrAccum)(unsafe.Pointer(p)).FzText, int32((*TStrAccum)(unsafe.Pointer(p)).FnChar), __ccgo_fp(_sqlite3OomClear)) } else { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1648, 0, libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1662, 0, libc.UintptrFromInt32(0)) Xsqlite3_str_reset(tls, p) } } @@ -20988,6 +21172,7 @@ func _sqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc Tu8) (r in (*TMem)(unsafe.Pointer(pMem)).Fz = zOut (*TMem)(unsafe.Pointer(pMem)).FzMalloc = (*TMem)(unsafe.Pointer(pMem)).Fz (*TMem)(unsafe.Pointer(pMem)).FszMalloc = _sqlite3DbMallocSize(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).Fz) + goto translate_out translate_out: ; return SQLITE_OK @@ -21613,6 +21798,62 @@ func _sqlite3DequoteExpr(tls *libc.TLS, p uintptr) { _sqlite3Dequote(tls, *(*uintptr)(unsafe.Pointer(p + 8))) } +// C documentation +// +// /* +// ** Expression p is a QNUMBER (quoted number). Dequote the value in p->u.zToken +// ** and set the type to INTEGER or FLOAT. "Quoted" integers or floats are those +// ** that contain '_' characters that must be removed before further processing. +// */ +func _sqlite3DequoteNumber(tls *libc.TLS, pParse uintptr, p uintptr) { + bp := tls.Alloc(32) + defer tls.Free(32) + var bHex int32 + var pIn, pOut, v1, v3 uintptr + var _ /* iValue at bp+0 */ int32 + _, _, _, _, _ = bHex, pIn, pOut, v1, v3 + _ = libc.Int32FromInt32(0) + if p != 0 { + pIn = *(*uintptr)(unsafe.Pointer(p + 8)) + pOut = *(*uintptr)(unsafe.Pointer(p + 8)) + bHex = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(pIn + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(pIn + 1))) == int32('X'))) + _ = libc.Int32FromInt32(0) + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + for { + if int32(*(*uint8)(unsafe.Pointer(pIn))) != int32('_') { + v3 = pOut + pOut++ + *(*uint8)(unsafe.Pointer(v3)) = *(*uint8)(unsafe.Pointer(pIn)) + if int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('E') || int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('.') { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_FLOAT) + } + } else { + if bHex == 0 && (!(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1))))])&libc.Int32FromInt32(0x04) != 0) || !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + 1))])&libc.Int32FromInt32(0x04) != 0)) || bHex == int32(1) && (!(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1))))])&libc.Int32FromInt32(0x08) != 0) || !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + 1))])&libc.Int32FromInt32(0x08) != 0)) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1722, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(p + 8)))) + } + } + goto _2 + _2: + ; + v1 = pIn + pIn++ + if !(*(*uint8)(unsafe.Pointer(v1)) != 0) { + break + } + } + if bHex != 0 { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + } + /* tag-20240227-a: If after dequoting, the number is an integer that + ** fits in 32 bits, then it must be converted into EP_IntValue. Other + ** parts of the code expect this. See also tag-20240227-b. */ + if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_INTEGER) && _sqlite3GetInt32(tls, *(*uintptr)(unsafe.Pointer(p + 8)), bp) != 0 { + *(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(p)).Fu)) = *(*int32)(unsafe.Pointer(bp)) + *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(EP_IntValue) + } + } +} + // C documentation // // /* @@ -21974,6 +22215,7 @@ func _sqlite3AtoF(tls *libc.TLS, z uintptr, pResult uintptr, length int32, enc T for z < zEnd && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z))])&int32(0x01) != 0 { z += uintptr(incr) } + goto do_atof_calc do_atof_calc: ; /* Zero is a special case */ @@ -22081,6 +22323,7 @@ do_atof_calc: *(*float64)(unsafe.Pointer(pResult)) = -*(*float64)(unsafe.Pointer(pResult)) } _ = libc.Int32FromInt32(0) + goto atof_return atof_return: ; /* return true if number and no extra non-whitespace characters after */ @@ -22165,7 +22408,7 @@ func _compare2pow63(tls *libc.TLS, zNum uintptr, incr int32) (r int32) { _, _, _ = c, i, pow63 c = 0 /* 012345678901234567 */ - pow63 = __ccgo_ts + 1687 + pow63 = __ccgo_ts + 1747 i = 0 for { if !(c == 0 && i < int32(18)) { @@ -22397,7 +22640,7 @@ func _sqlite3DecOrHexToI64(tls *libc.TLS, z uintptr, pOut uintptr) (r int32) { } return 0 } else { - n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1706)) + n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1766)) if *(*uint8)(unsafe.Pointer(z + uintptr(n))) != 0 { n++ } @@ -22555,7 +22798,7 @@ func _sqlite3FpDecode(tls *libc.TLS, p uintptr, _r float64, iRound int32, mxRoun (*TFpDecode)(unsafe.Pointer(p)).Fsign = uint8('+') (*TFpDecode)(unsafe.Pointer(p)).Fn = int32(1) (*TFpDecode)(unsafe.Pointer(p)).FiDP = int32(1) - (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1722 + (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1782 return } else { (*TFpDecode)(unsafe.Pointer(p)).Fsign = uint8('+') @@ -23116,7 +23359,7 @@ func _sqlite3HexToBlob(tls *libc.TLS, db uintptr, z uintptr, n int32) (r uintptr func _logBadConnection(tls *libc.TLS, zType uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1724, libc.VaList(bp+8, zType)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1784, libc.VaList(bp+8, zType)) } // C documentation @@ -23139,13 +23382,13 @@ func _sqlite3SafetyCheckOk(tls *libc.TLS, db uintptr) (r int32) { var eOpenState Tu8 _ = eOpenState if db == uintptr(0) { - _logBadConnection(tls, __ccgo_ts+1649) + _logBadConnection(tls, __ccgo_ts+1663) return 0 } eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_OPEN) { if _sqlite3SafetyCheckSickOrOk(tls, db) != 0 { - _logBadConnection(tls, __ccgo_ts+1769) + _logBadConnection(tls, __ccgo_ts+1829) } return 0 } else { @@ -23159,7 +23402,7 @@ func _sqlite3SafetyCheckSickOrOk(tls *libc.TLS, db uintptr) (r int32) { _ = eOpenState eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_SICK) && int32(eOpenState) != int32(SQLITE_STATE_OPEN) && int32(eOpenState) != int32(SQLITE_STATE_BUSY) { - _logBadConnection(tls, __ccgo_ts+1778) + _logBadConnection(tls, __ccgo_ts+1838) return 0 } else { return int32(1) @@ -23818,196 +24061,196 @@ func _sqlite3OpcodeName(tls *libc.TLS, i int32) (r uintptr) { } var _azName = [190]uintptr{ - 0: __ccgo_ts + 1786, - 1: __ccgo_ts + 1796, - 2: __ccgo_ts + 1807, - 3: __ccgo_ts + 1819, - 4: __ccgo_ts + 1830, - 5: __ccgo_ts + 1842, - 6: __ccgo_ts + 1849, - 7: __ccgo_ts + 1857, - 8: __ccgo_ts + 1865, - 9: __ccgo_ts + 1870, - 10: __ccgo_ts + 1875, - 11: __ccgo_ts + 1881, - 12: __ccgo_ts + 1895, - 13: __ccgo_ts + 1901, - 14: __ccgo_ts + 1911, - 15: __ccgo_ts + 1916, - 16: __ccgo_ts + 1921, - 17: __ccgo_ts + 1924, - 18: __ccgo_ts + 1930, - 19: __ccgo_ts + 1937, - 20: __ccgo_ts + 1941, - 21: __ccgo_ts + 1951, - 22: __ccgo_ts + 1958, - 23: __ccgo_ts + 1965, - 24: __ccgo_ts + 1972, - 25: __ccgo_ts + 1979, - 26: __ccgo_ts + 1989, - 27: __ccgo_ts + 1998, - 28: __ccgo_ts + 2009, - 29: __ccgo_ts + 2018, - 30: __ccgo_ts + 2024, - 31: __ccgo_ts + 2034, - 32: __ccgo_ts + 2044, - 33: __ccgo_ts + 2049, - 34: __ccgo_ts + 2059, - 35: __ccgo_ts + 2070, - 36: __ccgo_ts + 2075, - 37: __ccgo_ts + 2082, - 38: __ccgo_ts + 2093, - 39: __ccgo_ts + 2098, - 40: __ccgo_ts + 2103, - 41: __ccgo_ts + 2109, - 42: __ccgo_ts + 2115, - 43: __ccgo_ts + 2121, - 44: __ccgo_ts + 2124, - 45: __ccgo_ts + 2128, - 46: __ccgo_ts + 2134, - 47: __ccgo_ts + 2145, - 48: __ccgo_ts + 2156, - 49: __ccgo_ts + 2164, - 50: __ccgo_ts + 2173, - 51: __ccgo_ts + 2180, - 52: __ccgo_ts + 2188, - 53: __ccgo_ts + 2191, - 54: __ccgo_ts + 2194, - 55: __ccgo_ts + 2197, - 56: __ccgo_ts + 2200, - 57: __ccgo_ts + 2203, - 58: __ccgo_ts + 2206, - 59: __ccgo_ts + 2213, - 60: __ccgo_ts + 2219, - 61: __ccgo_ts + 2229, - 62: __ccgo_ts + 2242, - 63: __ccgo_ts + 2253, - 64: __ccgo_ts + 2259, - 65: __ccgo_ts + 2266, - 66: __ccgo_ts + 2275, - 67: __ccgo_ts + 2284, - 68: __ccgo_ts + 2291, - 69: __ccgo_ts + 2304, - 70: __ccgo_ts + 2315, - 71: __ccgo_ts + 2320, - 72: __ccgo_ts + 2328, - 73: __ccgo_ts + 2334, - 74: __ccgo_ts + 2341, - 75: __ccgo_ts + 2353, - 76: __ccgo_ts + 2358, - 77: __ccgo_ts + 2367, - 78: __ccgo_ts + 2372, - 79: __ccgo_ts + 2381, - 80: __ccgo_ts + 2386, - 81: __ccgo_ts + 2391, - 82: __ccgo_ts + 2397, - 83: __ccgo_ts + 2405, - 84: __ccgo_ts + 2413, - 85: __ccgo_ts + 2423, - 86: __ccgo_ts + 2431, - 87: __ccgo_ts + 2438, - 88: __ccgo_ts + 2451, - 89: __ccgo_ts + 2456, - 90: __ccgo_ts + 2468, - 91: __ccgo_ts + 2476, - 92: __ccgo_ts + 2483, - 93: __ccgo_ts + 2494, - 94: __ccgo_ts + 2501, - 95: __ccgo_ts + 2508, - 96: __ccgo_ts + 2518, - 97: __ccgo_ts + 2527, - 98: __ccgo_ts + 2538, - 99: __ccgo_ts + 2544, - 100: __ccgo_ts + 2555, - 101: __ccgo_ts + 2565, - 102: __ccgo_ts + 2575, - 103: __ccgo_ts + 2582, - 104: __ccgo_ts + 2588, - 105: __ccgo_ts + 2598, - 106: __ccgo_ts + 2609, - 107: __ccgo_ts + 2613, - 108: __ccgo_ts + 2622, - 109: __ccgo_ts + 2631, - 110: __ccgo_ts + 2638, - 111: __ccgo_ts + 2648, - 112: __ccgo_ts + 2655, - 113: __ccgo_ts + 2664, - 114: __ccgo_ts + 2674, - 115: __ccgo_ts + 2681, - 116: __ccgo_ts + 2689, - 117: __ccgo_ts + 2703, - 118: __ccgo_ts + 2711, - 119: __ccgo_ts + 2725, - 120: __ccgo_ts + 2736, - 121: __ccgo_ts + 2749, - 122: __ccgo_ts + 2760, - 123: __ccgo_ts + 2766, - 124: __ccgo_ts + 2778, - 125: __ccgo_ts + 2787, - 126: __ccgo_ts + 2795, - 127: __ccgo_ts + 2804, - 128: __ccgo_ts + 2813, - 129: __ccgo_ts + 2820, - 130: __ccgo_ts + 2828, - 131: __ccgo_ts + 2835, - 132: __ccgo_ts + 2846, - 133: __ccgo_ts + 2860, - 134: __ccgo_ts + 2871, - 135: __ccgo_ts + 2879, - 136: __ccgo_ts + 2885, - 137: __ccgo_ts + 2893, - 138: __ccgo_ts + 2901, - 139: __ccgo_ts + 2911, - 140: __ccgo_ts + 2924, - 141: __ccgo_ts + 2934, - 142: __ccgo_ts + 2947, - 143: __ccgo_ts + 2956, - 144: __ccgo_ts + 2967, - 145: __ccgo_ts + 2975, - 146: __ccgo_ts + 2981, - 147: __ccgo_ts + 2993, - 148: __ccgo_ts + 3005, - 149: __ccgo_ts + 3013, - 150: __ccgo_ts + 3025, - 151: __ccgo_ts + 3038, - 152: __ccgo_ts + 3048, - 153: __ccgo_ts + 3058, - 154: __ccgo_ts + 3063, - 155: __ccgo_ts + 3075, - 156: __ccgo_ts + 3087, - 157: __ccgo_ts + 3097, - 158: __ccgo_ts + 3103, - 159: __ccgo_ts + 3113, - 160: __ccgo_ts + 3120, - 161: __ccgo_ts + 3132, - 162: __ccgo_ts + 3143, - 163: __ccgo_ts + 3151, - 164: __ccgo_ts + 3160, - 165: __ccgo_ts + 3169, - 166: __ccgo_ts + 3178, - 167: __ccgo_ts + 3185, - 168: __ccgo_ts + 3196, - 169: __ccgo_ts + 3209, - 170: __ccgo_ts + 3219, - 171: __ccgo_ts + 3226, - 172: __ccgo_ts + 3234, - 173: __ccgo_ts + 3243, - 174: __ccgo_ts + 3249, - 175: __ccgo_ts + 3256, - 176: __ccgo_ts + 3264, - 177: __ccgo_ts + 3272, - 178: __ccgo_ts + 3280, - 179: __ccgo_ts + 3290, - 180: __ccgo_ts + 3299, - 181: __ccgo_ts + 3310, - 182: __ccgo_ts + 3321, - 183: __ccgo_ts + 3332, - 184: __ccgo_ts + 3342, - 185: __ccgo_ts + 3348, - 186: __ccgo_ts + 3359, - 187: __ccgo_ts + 3370, - 188: __ccgo_ts + 3375, - 189: __ccgo_ts + 3383, + 0: __ccgo_ts + 1846, + 1: __ccgo_ts + 1856, + 2: __ccgo_ts + 1867, + 3: __ccgo_ts + 1879, + 4: __ccgo_ts + 1890, + 5: __ccgo_ts + 1902, + 6: __ccgo_ts + 1909, + 7: __ccgo_ts + 1917, + 8: __ccgo_ts + 1925, + 9: __ccgo_ts + 1930, + 10: __ccgo_ts + 1935, + 11: __ccgo_ts + 1941, + 12: __ccgo_ts + 1955, + 13: __ccgo_ts + 1961, + 14: __ccgo_ts + 1971, + 15: __ccgo_ts + 1976, + 16: __ccgo_ts + 1981, + 17: __ccgo_ts + 1984, + 18: __ccgo_ts + 1990, + 19: __ccgo_ts + 1997, + 20: __ccgo_ts + 2001, + 21: __ccgo_ts + 2011, + 22: __ccgo_ts + 2018, + 23: __ccgo_ts + 2025, + 24: __ccgo_ts + 2032, + 25: __ccgo_ts + 2039, + 26: __ccgo_ts + 2049, + 27: __ccgo_ts + 2058, + 28: __ccgo_ts + 2069, + 29: __ccgo_ts + 2078, + 30: __ccgo_ts + 2084, + 31: __ccgo_ts + 2094, + 32: __ccgo_ts + 2104, + 33: __ccgo_ts + 2109, + 34: __ccgo_ts + 2123, + 35: __ccgo_ts + 2134, + 36: __ccgo_ts + 2139, + 37: __ccgo_ts + 2146, + 38: __ccgo_ts + 2157, + 39: __ccgo_ts + 2162, + 40: __ccgo_ts + 2167, + 41: __ccgo_ts + 2173, + 42: __ccgo_ts + 2179, + 43: __ccgo_ts + 2185, + 44: __ccgo_ts + 2188, + 45: __ccgo_ts + 2192, + 46: __ccgo_ts + 2198, + 47: __ccgo_ts + 2209, + 48: __ccgo_ts + 2220, + 49: __ccgo_ts + 2228, + 50: __ccgo_ts + 2237, + 51: __ccgo_ts + 2244, + 52: __ccgo_ts + 2252, + 53: __ccgo_ts + 2255, + 54: __ccgo_ts + 2258, + 55: __ccgo_ts + 2261, + 56: __ccgo_ts + 2264, + 57: __ccgo_ts + 2267, + 58: __ccgo_ts + 2270, + 59: __ccgo_ts + 2277, + 60: __ccgo_ts + 2283, + 61: __ccgo_ts + 2293, + 62: __ccgo_ts + 2306, + 63: __ccgo_ts + 2317, + 64: __ccgo_ts + 2323, + 65: __ccgo_ts + 2330, + 66: __ccgo_ts + 2339, + 67: __ccgo_ts + 2348, + 68: __ccgo_ts + 2355, + 69: __ccgo_ts + 2368, + 70: __ccgo_ts + 2379, + 71: __ccgo_ts + 2384, + 72: __ccgo_ts + 2392, + 73: __ccgo_ts + 2398, + 74: __ccgo_ts + 2405, + 75: __ccgo_ts + 2417, + 76: __ccgo_ts + 2422, + 77: __ccgo_ts + 2431, + 78: __ccgo_ts + 2436, + 79: __ccgo_ts + 2445, + 80: __ccgo_ts + 2450, + 81: __ccgo_ts + 2455, + 82: __ccgo_ts + 2461, + 83: __ccgo_ts + 2469, + 84: __ccgo_ts + 2477, + 85: __ccgo_ts + 2487, + 86: __ccgo_ts + 2495, + 87: __ccgo_ts + 2502, + 88: __ccgo_ts + 2515, + 89: __ccgo_ts + 2520, + 90: __ccgo_ts + 2532, + 91: __ccgo_ts + 2540, + 92: __ccgo_ts + 2547, + 93: __ccgo_ts + 2558, + 94: __ccgo_ts + 2565, + 95: __ccgo_ts + 2572, + 96: __ccgo_ts + 2582, + 97: __ccgo_ts + 2591, + 98: __ccgo_ts + 2602, + 99: __ccgo_ts + 2608, + 100: __ccgo_ts + 2619, + 101: __ccgo_ts + 2629, + 102: __ccgo_ts + 2639, + 103: __ccgo_ts + 2646, + 104: __ccgo_ts + 2652, + 105: __ccgo_ts + 2662, + 106: __ccgo_ts + 2673, + 107: __ccgo_ts + 2677, + 108: __ccgo_ts + 2686, + 109: __ccgo_ts + 2695, + 110: __ccgo_ts + 2702, + 111: __ccgo_ts + 2712, + 112: __ccgo_ts + 2719, + 113: __ccgo_ts + 2728, + 114: __ccgo_ts + 2738, + 115: __ccgo_ts + 2745, + 116: __ccgo_ts + 2753, + 117: __ccgo_ts + 2767, + 118: __ccgo_ts + 2775, + 119: __ccgo_ts + 2789, + 120: __ccgo_ts + 2800, + 121: __ccgo_ts + 2813, + 122: __ccgo_ts + 2824, + 123: __ccgo_ts + 2830, + 124: __ccgo_ts + 2842, + 125: __ccgo_ts + 2851, + 126: __ccgo_ts + 2859, + 127: __ccgo_ts + 2868, + 128: __ccgo_ts + 2877, + 129: __ccgo_ts + 2884, + 130: __ccgo_ts + 2892, + 131: __ccgo_ts + 2899, + 132: __ccgo_ts + 2910, + 133: __ccgo_ts + 2924, + 134: __ccgo_ts + 2935, + 135: __ccgo_ts + 2943, + 136: __ccgo_ts + 2949, + 137: __ccgo_ts + 2957, + 138: __ccgo_ts + 2965, + 139: __ccgo_ts + 2975, + 140: __ccgo_ts + 2988, + 141: __ccgo_ts + 2998, + 142: __ccgo_ts + 3011, + 143: __ccgo_ts + 3020, + 144: __ccgo_ts + 3031, + 145: __ccgo_ts + 3039, + 146: __ccgo_ts + 3045, + 147: __ccgo_ts + 3057, + 148: __ccgo_ts + 3069, + 149: __ccgo_ts + 3077, + 150: __ccgo_ts + 3089, + 151: __ccgo_ts + 3102, + 152: __ccgo_ts + 3112, + 153: __ccgo_ts + 3122, + 154: __ccgo_ts + 3127, + 155: __ccgo_ts + 3139, + 156: __ccgo_ts + 3151, + 157: __ccgo_ts + 3161, + 158: __ccgo_ts + 3167, + 159: __ccgo_ts + 3177, + 160: __ccgo_ts + 3184, + 161: __ccgo_ts + 3196, + 162: __ccgo_ts + 3207, + 163: __ccgo_ts + 3215, + 164: __ccgo_ts + 3224, + 165: __ccgo_ts + 3233, + 166: __ccgo_ts + 3242, + 167: __ccgo_ts + 3249, + 168: __ccgo_ts + 3260, + 169: __ccgo_ts + 3273, + 170: __ccgo_ts + 3283, + 171: __ccgo_ts + 3290, + 172: __ccgo_ts + 3298, + 173: __ccgo_ts + 3307, + 174: __ccgo_ts + 3313, + 175: __ccgo_ts + 3320, + 176: __ccgo_ts + 3328, + 177: __ccgo_ts + 3336, + 178: __ccgo_ts + 3344, + 179: __ccgo_ts + 3354, + 180: __ccgo_ts + 3363, + 181: __ccgo_ts + 3374, + 182: __ccgo_ts + 3385, + 183: __ccgo_ts + 3396, + 184: __ccgo_ts + 3406, + 185: __ccgo_ts + 3412, + 186: __ccgo_ts + 3423, + 187: __ccgo_ts + 3434, + 188: __ccgo_ts + 3439, + 189: __ccgo_ts + 3447, } type Tstat = struct { @@ -24751,91 +24994,91 @@ type unix_syscall = Tunix_syscall // */ var _aSyscall = [29]Tunix_syscall{ 0: { - FzName: __ccgo_ts + 3393, + FzName: __ccgo_ts + 3457, }, 1: { - FzName: __ccgo_ts + 3398, + FzName: __ccgo_ts + 3462, }, 2: { - FzName: __ccgo_ts + 3404, + FzName: __ccgo_ts + 3468, }, 3: { - FzName: __ccgo_ts + 3411, + FzName: __ccgo_ts + 3475, }, 4: { - FzName: __ccgo_ts + 3418, + FzName: __ccgo_ts + 3482, }, 5: { - FzName: __ccgo_ts + 3423, + FzName: __ccgo_ts + 3487, }, 6: { - FzName: __ccgo_ts + 3429, + FzName: __ccgo_ts + 3493, }, 7: { - FzName: __ccgo_ts + 3439, + FzName: __ccgo_ts + 3503, }, 8: { - FzName: __ccgo_ts + 3445, + FzName: __ccgo_ts + 3509, }, 9: { - FzName: __ccgo_ts + 3450, + FzName: __ccgo_ts + 3514, }, 10: { - FzName: __ccgo_ts + 3456, + FzName: __ccgo_ts + 3520, }, 11: { - FzName: __ccgo_ts + 3464, + FzName: __ccgo_ts + 3528, }, 12: { - FzName: __ccgo_ts + 3470, + FzName: __ccgo_ts + 3534, }, 13: { - FzName: __ccgo_ts + 3477, + FzName: __ccgo_ts + 3541, }, 14: { - FzName: __ccgo_ts + 3486, + FzName: __ccgo_ts + 3550, }, 15: { - FzName: __ccgo_ts + 3493, + FzName: __ccgo_ts + 3557, }, 16: { - FzName: __ccgo_ts + 3503, + FzName: __ccgo_ts + 3567, }, 17: { - FzName: __ccgo_ts + 3510, + FzName: __ccgo_ts + 3574, }, 18: { - FzName: __ccgo_ts + 3524, + FzName: __ccgo_ts + 3588, }, 19: { - FzName: __ccgo_ts + 3530, + FzName: __ccgo_ts + 3594, }, 20: { - FzName: __ccgo_ts + 3536, + FzName: __ccgo_ts + 3600, }, 21: { - FzName: __ccgo_ts + 3543, + FzName: __ccgo_ts + 3607, }, 22: { - FzName: __ccgo_ts + 3551, + FzName: __ccgo_ts + 3615, }, 23: { - FzName: __ccgo_ts + 3556, + FzName: __ccgo_ts + 3620, }, 24: { - FzName: __ccgo_ts + 3563, + FzName: __ccgo_ts + 3627, }, 25: { - FzName: __ccgo_ts + 3570, + FzName: __ccgo_ts + 3634, }, 26: { - FzName: __ccgo_ts + 3582, + FzName: __ccgo_ts + 3646, }, 27: { - FzName: __ccgo_ts + 3591, + FzName: __ccgo_ts + 3655, }, 28: { - FzName: __ccgo_ts + 3597, + FzName: __ccgo_ts + 3661, }, } @@ -25074,9 +25317,9 @@ func _robust_open(tls *libc.TLS, z uintptr, f int32, m Tmode_t) (r int32) { (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(16)].FpCurrent})))(tls, z) } (*(*func(*libc.TLS, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(1)].FpCurrent})))(tls, fd) - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3603, libc.VaList(bp+136, z, fd)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3667, libc.VaList(bp+136, z, fd)) fd = -int32(1) - if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3646, O_RDONLY, int32(m)) < 0 { + if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3710, O_RDONLY, int32(m)) < 0 { break } } @@ -25394,11 +25637,11 @@ func _unixLogErrorAtLine(tls *libc.TLS, errcode int32, zFunc uintptr, zPath uint ** equivalent to errno. Otherwise, use strerror_r(). */ /* This is a threadsafe build, but strerror_r() is not available. */ - zErr = __ccgo_ts + 1648 + zErr = __ccgo_ts + 1662 if zPath == uintptr(0) { - zPath = __ccgo_ts + 1648 + zPath = __ccgo_ts + 1662 } - Xsqlite3_log(tls, errcode, __ccgo_ts+3656, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) + Xsqlite3_log(tls, errcode, __ccgo_ts+3720, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) return errcode } @@ -25426,7 +25669,7 @@ func _robust_close(tls *libc.TLS, pFile uintptr, h int32, lineno int32) { } else { v1 = uintptr(0) } - _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(16)< uint32(1) { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3740, libc.VaList(bp+136, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3804, libc.VaList(bp+136, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } if _fileHasMoved(tls, pFile) != 0 { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3767, libc.VaList(bp+136, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3831, libc.VaList(bp+136, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } } @@ -25946,6 +26189,7 @@ func _unixLock(tls *libc.TLS, id uintptr, eFileLock int32) (r int32) { (*TunixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock) (*TunixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(eFileLock) } + goto end_lock end_lock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -26077,6 +26321,7 @@ func _posixUnlock(tls *libc.TLS, id uintptr, eFileLock int32, handleNFSUnlock in _closePendingFds(tls, pFile) } } + goto end_unlock end_unlock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -26118,7 +26363,7 @@ func _closeUnixFile(tls *libc.TLS, id uintptr) (r int32) { pFile = id _unixUnmapfile(tls, pFile) if (*TunixFile)(unsafe.Pointer(pFile)).Fh >= 0 { - _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40172)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40505)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -26745,7 +26990,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { var _ /* zDirname at bp+0 */ [513]uint8 _, _ = fd, ii fd = -int32(1) - Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3795, libc.VaList(bp+528, zFilename)) + Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3859, libc.VaList(bp+528, zFilename)) ii = int32(libc.Xstrlen(tls, bp)) for { if !(ii > 0 && int32((*(*[513]uint8)(unsafe.Pointer(bp)))[ii]) != int32('/')) { @@ -26771,7 +27016,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(41778)), __ccgo_ts+3510, bp, int32(41778)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42111)), __ccgo_ts+3574, bp, int32(42111)) } // C documentation @@ -26810,7 +27055,7 @@ func _unixSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { rc = _full_fsync(tls, (*TunixFile)(unsafe.Pointer(pFile)).Fh, isFullsync, isDataOnly) if rc != 0 { _storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))) - return _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(4)<= nSize { iWrite = nSize - int64(1) } - nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1648, int32(1)) + nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1662, int32(1)) if nWrite != int32(1) { return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(3)<= 0 { - _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42583)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42916)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -27433,7 +27678,7 @@ func _unixLockSharedMemory(tls *libc.TLS, pDbFd uintptr, pShmNode uintptr) (r in ** help detect if a -shm file truncation is legitimate or is the work ** or a rogue process. */ if rc == SQLITE_OK && _robust_ftruncate(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(3)) != 0 { - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(18)< iRegion { @@ -28032,7 +28279,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { var pNew, pOrig, pReq, zErr uintptr var v1 Tsqlite3_int64 _, _, _, _, _, _, _, _, _ = flags, h, nOrig, nReuse, pNew, pOrig, pReq, zErr, v1 - zErr = __ccgo_ts + 3551 + zErr = __ccgo_ts + 3615 h = (*TunixFile)(unsafe.Pointer(pFd)).Fh /* File descriptor open on db file */ pOrig = (*TunixFile)(unsafe.Pointer(pFd)).FpMapRegion /* Pointer to current file mapping */ nOrig = (*TunixFile)(unsafe.Pointer(pFd)).FmmapSizeActual /* Size of pOrig region in bytes */ @@ -28052,7 +28299,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { (*(*func(*libc.TLS, uintptr, Tsize_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, pReq, uint64(nOrig-nReuse)) } pNew = (*(*func(*libc.TLS, uintptr, Tsize_t, Tsize_t, int32, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(24)].FpCurrent})))(tls, pOrig, uint64(nReuse), uint64(nNew), int32(MREMAP_MAYMOVE), 0) - zErr = __ccgo_ts + 3563 + zErr = __ccgo_ts + 3627 /* The attempt to extend the existing mapping failed. Free it. */ if pNew == uintptr(-libc.Int32FromInt32(1)) || pNew == uintptr(0) { (*(*func(*libc.TLS, uintptr, Tsize_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, pOrig, uint64(nReuse)) @@ -28065,7 +28312,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { if pNew == uintptr(-libc.Int32FromInt32(1)) { pNew = uintptr(0) nNew = 0 - _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43401)) + _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43734)) /* If the mmap() above failed, assume that all subsequent mmap() calls ** will probably fail too. Fall back to using xRead/xWrite exclusively ** in this case. */ @@ -28409,11 +28656,11 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam } else { v1 = uintptr(0) } - if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3829, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { + if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3893, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { p2 = pNew + 30 *(*uint16)(unsafe.Pointer(p2)) = uint16(int32(*(*uint16)(unsafe.Pointer(p2))) | libc.Int32FromInt32(UNIXFILE_PSOW)) } - if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3834) == 0 { + if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3898) == 0 { p3 = pNew + 30 *(*uint16)(unsafe.Pointer(p3)) = uint16(int32(*(*uint16)(unsafe.Pointer(p3))) | libc.Int32FromInt32(UNIXFILE_EXCL)) } @@ -28444,7 +28691,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam ** implicit assumption here is that if fstat() fails, things are in ** such bad shape that dropping a lock or two doesn't matter much. */ - _robust_close(tls, pNew, h, int32(43909)) + _robust_close(tls, pNew, h, int32(44242)) h = -int32(1) } _unixLeaveMutex(tls) @@ -28456,7 +28703,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam if zLockFile == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3844, libc.VaList(bp+8, zFilename)) + Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3908, libc.VaList(bp+8, zFilename)) } (*TunixFile)(unsafe.Pointer(pNew)).FlockingContext = zLockFile } @@ -28464,7 +28711,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam _storeLastErrno(tls, pNew, 0) if rc != SQLITE_OK { if h >= 0 { - _robust_close(tls, pNew, h, int32(43994)) + _robust_close(tls, pNew, h, int32(44327)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -28479,10 +28726,10 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam // ** Directories to consider for temp files. // */ var _azTempDirs = [6]uintptr{ - 2: __ccgo_ts + 3852, - 3: __ccgo_ts + 3861, - 4: __ccgo_ts + 3870, - 5: __ccgo_ts + 1661, + 2: __ccgo_ts + 3916, + 3: __ccgo_ts + 3925, + 4: __ccgo_ts + 3934, + 5: __ccgo_ts + 1675, } // C documentation @@ -28491,8 +28738,8 @@ var _azTempDirs = [6]uintptr{ // ** Initialize first two members of azTempDirs[] array. // */ func _unixTempFileInit(tls *libc.TLS) { - _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3875) - _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3889) + _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3939) + _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3953) } // C documentation @@ -28555,7 +28802,7 @@ func _unixGetTempname(tls *libc.TLS, nBuf int32, zBuf uintptr) (r int32) { Xsqlite3_randomness(tls, int32(8), bp) _ = libc.Int32FromInt32(0) *(*uint8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2)))) = uint8(0) - Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3896, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) + Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3960, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) if v2 = int32(*(*uint8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2))))) != 0; !v2 { v1 = iLimit iLimit++ @@ -28728,7 +28975,7 @@ func _findCreateFileMode(tls *libc.TLS, zPath uintptr, flags int32, pMode uintpt ** filename, check for the "modeof" parameter. If present, interpret ** its value as a filename and try to copy the mode, uid and gid from ** that file. */ - z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3913) + z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3977) if z != 0 { rc = _getFileMode(tls, z, pMode, pUid, pGid) } @@ -28766,12 +29013,12 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags bp := tls.Alloc(528) defer tls.Free(528) var ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, rc, rc2 int32 - var p, pUnused, zName uintptr + var p, pReadonly, pUnused, zName uintptr var _ /* gid at bp+524 */ Tgid_t var _ /* openMode at bp+516 */ Tmode_t var _ /* uid at bp+520 */ Tuid_t var _ /* zTmpname at bp+0 */ [514]uint8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pUnused, rc, rc2, zName + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pReadonly, pUnused, rc, rc2, zName p = pFile fd = -int32(1) /* File descriptor returned by open() */ openFlags = 0 /* Flags to pass to open() */ @@ -28881,17 +29128,24 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } else { if *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) != int32(EISDIR) && isReadWrite != 0 { /* Failed to open the file for read/write access. Try read-only. */ + pReadonly = uintptr(0) flags &= ^(libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE)) openFlags &= ^(libc.Int32FromInt32(O_RDWR) | libc.Int32FromInt32(O_CREAT)) flags |= int32(SQLITE_OPEN_READONLY) openFlags |= O_RDONLY isReadonly = int32(1) - fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 516))) + pReadonly = _findReusableFd(tls, zName, flags) + if pReadonly != 0 { + fd = (*TUnixUnusedFd)(unsafe.Pointer(pReadonly)).Ffd + Xsqlite3_free(tls, pReadonly) + } else { + fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 516))) + } } } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44435)), __ccgo_ts+3393, zName, int32(44435)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44775)), __ccgo_ts+3457, zName, int32(44775)) if rc == SQLITE_OK { rc = rc2 } @@ -28943,6 +29197,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } _ = libc.Int32FromInt32(0) rc = _fillInUnixFile(tls, pVfs, fd, pFile, zPath, ctrlFlags) + goto open_finished open_finished: ; if rc != SQLITE_OK { @@ -28969,7 +29224,7 @@ func _unixDelete(tls *libc.TLS, NotUsed uintptr, zPath uintptr, dirSync int32) ( if *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) == int32(ENOENT) { rc = libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(23)< int32(SQLITE_MAX_SYMLINK) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(44686)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45026)) return } got = (*(*func(*libc.TLS, uintptr, uintptr, Tsize_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls, zIn, bp+128, libc.Uint64FromInt64(4098)-libc.Uint64FromInt32(2)) if got <= 0 || got >= libc.Int64FromInt64(4098)-libc.Int64FromInt32(2) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44691)), __ccgo_ts+3582, zIn, int32(44691)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45031)), __ccgo_ts+3646, zIn, int32(45031)) return } (*(*[4098]uint8)(unsafe.Pointer(bp + 128)))[got] = uint8(0) @@ -29173,14 +29428,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if int32(*(*uint8)(unsafe.Pointer(zPath))) != int32('/') { if (*(*func(*libc.TLS, uintptr, Tsize_t) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(3)].FpCurrent})))(tls, bp+24, libc.Uint64FromInt64(4098)-libc.Uint64FromInt32(2)) == uintptr(0) { - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44749)), __ccgo_ts+3411, zPath, int32(44749)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45089)), __ccgo_ts+3475, zPath, int32(45089)) } _appendAllPathElements(tls, bp, bp+24) } _appendAllPathElements(tls, bp, zPath) *(*uint8)(unsafe.Pointer(zOut + uintptr((*(*TDbPath)(unsafe.Pointer(bp))).FnUsed))) = uint8(0) if (*(*TDbPath)(unsafe.Pointer(bp))).Frc != 0 || (*(*TDbPath)(unsafe.Pointer(bp))).FnUsed < int32(2) { - return _sqlite3CantopenError(tls, int32(44755)) + return _sqlite3CantopenError(tls, int32(45095)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<= (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4)/libc.Uint64FromInt32(2) { @@ -31065,6 +31322,7 @@ bitvec_set_rehash: return rc } } + goto bitvec_set_end bitvec_set_end: ; (*TBitvec)(unsafe.Pointer(p)).FnSet++ @@ -31298,6 +31556,7 @@ func _sqlite3BitvecBuiltinTest(tls *libc.TLS, sz int32, aOp uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp))++ } /* Free allocated structure */ + goto bitvec_end bitvec_end: ; Xsqlite3_free(tls, pTmpSpace) @@ -32586,7 +32845,7 @@ func _sqlite3PCacheBufferSetup(tls *libc.TLS, pBuf uintptr, sz int32, n int32) { var p uintptr var v1, v2, v3, v4 int32 _, _, _, _, _ = p, v1, v2, v3, v4 - if _pcache1_g.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80) != 0 { if pBuf == uintptr(0) { v1 = libc.Int32FromInt32(0) n = v1 @@ -33136,7 +33395,7 @@ func _pcache1Init(tls *libc.TLS, NotUsed uintptr) (r int32) { _pcache1_g.FnInitPage = 0 } _pcache1_g.Fgrp.FmxPinned = uint32(10) - _pcache1_g.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80, int32(1)) return SQLITE_OK } @@ -36719,6 +36978,7 @@ func _pager_delsuper(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) { } _sqlite3OsClose(tls, pSuper) rc = _sqlite3OsDelete(tls, pVfs, zSuper, 0) + goto delsuper_out delsuper_out: ; Xsqlite3_free(tls, zFree) @@ -37055,6 +37315,7 @@ func _pager_playback(tls *libc.TLS, pPager uintptr, isHot int32) (r int32) { } /*NOTREACHED*/ _ = libc.Int32FromInt32(0) + goto end_playback end_playback: ; if rc == SQLITE_OK { @@ -37098,7 +37359,7 @@ end_playback: rc = _pager_delsuper(tls, pPager, zSuper) } if isHot != 0 && nPlayback != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(2)< int64(1) { _sqlite3PagerUnrefNotNull(tls, pPgOld) - return _sqlite3CorruptError(tls, int32(63973)) + return _sqlite3CorruptError(tls, int32(64313)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | int32((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -41432,7 +41697,7 @@ func _sqlite3PagerCheckpoint(tls *libc.TLS, pPager uintptr, db uintptr, eMode in ** sqlite3_wal_checkpoint() call, but it happens very rarely. ** https://sqlite.org/forum/forumpost/fd0f19d229156939 */ - Xsqlite3_exec(tls, db, __ccgo_ts+4109, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+4173, uintptr(0), uintptr(0), uintptr(0)) } if (*TPager)(unsafe.Pointer(pPager)).FpWal != 0 { if eMode == SQLITE_CHECKPOINT_PASSIVE { @@ -42913,7 +43178,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(65899)) + return _sqlite3CorruptError(tls, int32(66239)) } goto _1 _1: @@ -43005,7 +43270,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { ** are able to understand */ version = _sqlite3Get4byte(tls, bp+8+4) if version != uint32(WAL_MAX_VERSION) { - rc = _sqlite3CantopenError(tls, int32(66031)) + rc = _sqlite3CantopenError(tls, int32(66371)) goto finished } /* Malloc a buffer to read frames into. */ @@ -43102,6 +43367,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { } Xsqlite3_free(tls, aFrame) } + goto finished finished: ; if rc == SQLITE_OK { @@ -43146,9 +43412,10 @@ finished: ** checkpointing the log file. */ if (*TWal)(unsafe.Pointer(pWal)).Fhdr.FnPage != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(1)< int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(71032)) + rc = _sqlite3CorruptError(tls, int32(71421)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } @@ -47903,7 +48179,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if key == uint32(0) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71230)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71619)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -47916,12 +48192,12 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, /* The first byte of the extra data is the MemPage.isInit byte. ** If that byte is set, it means this page is also being used ** as a btree page. */ - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71243)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71632)) goto ptrmap_exit } offset = int32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71248)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71637)) goto ptrmap_exit } _ = libc.Int32FromInt32(0) @@ -47935,6 +48211,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _sqlite3Put4byte(tls, pPtrmap+uintptr(offset+int32(1)), parent) } } + goto ptrmap_exit ptrmap_exit: ; _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -47966,7 +48243,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = int32(libc.Uint32FromInt32(5) * (key - uint32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(71293)) + return _sqlite3CorruptError(tls, int32(71682)) } _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -47976,7 +48253,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if int32(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || int32(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(71301)) + return _sqlite3CorruptError(tls, int32(71690)) } return SQLITE_OK } @@ -48415,7 +48692,7 @@ func _ptrmapPutOvflPtr(tls *libc.TLS, pPage uintptr, pSrc uintptr, pCell uintptr (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if uint64(pCell) < uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) && uint64(pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal)) > uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71741)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72130)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(int32((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -48461,12 +48738,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71799)) + return _sqlite3CorruptError(tls, int32(72188)) } if iFree != 0 { iFree2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71802)) + return _sqlite3CorruptError(tls, int32(72191)) } if 0 == iFree2 || int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -48474,21 +48751,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(71810)) + return _sqlite3CorruptError(tls, int32(72199)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(71813)) + return _sqlite3CorruptError(tls, int32(72202)) } sz2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(71815)) + return _sqlite3CorruptError(tls, int32(72204)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), uint64(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(71819)) + return _sqlite3CorruptError(tls, int32(72208)) } } cbrk = top + sz @@ -48536,13 +48813,13 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { ** if PRAGMA cell_size_check=ON. */ if pc > iCellLast { - return _sqlite3CorruptError(tls, int32(71852)) + return _sqlite3CorruptError(tls, int32(72241)) } _ = libc.Int32FromInt32(0) size = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, src+uintptr(pc))) cbrk -= size if cbrk < iCellStart || pc+size > usableSize { - return _sqlite3CorruptError(tls, int32(71858)) + return _sqlite3CorruptError(tls, int32(72247)) } _ = libc.Int32FromInt32(0) *(*Tu8)(unsafe.Pointer(pAddr1)) = uint8(cbrk >> libc.Int32FromInt32(8)) @@ -48555,11 +48832,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { } } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))) = uint8(0) + goto defragment_out defragment_out: ; _ = libc.Int32FromInt32(0) if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(71872)) + return _sqlite3CorruptError(tls, int32(72261)) } _ = libc.Int32FromInt32(0) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = uint8(cbrk >> libc.Int32FromInt32(8)) @@ -48622,7 +48900,7 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint } else { if x+pc > maxPC { /* This slot extends off the end of the usable part of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71929)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72318)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -48639,14 +48917,14 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint if pc <= iAddr { if pc != 0 { /* The next slot in the chain comes before the current slot */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71944)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72333)) } return uintptr(0) } } if pc > maxPC+nByte-int32(4) { /* The free slot chain extends off the end of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71951)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72340)) } return uintptr(0) } @@ -48697,11 +48975,11 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r if top == 0 && (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize == uint32(65536) { top = int32(65536) } else { - return _sqlite3CorruptError(tls, int32(71999)) + return _sqlite3CorruptError(tls, int32(72388)) } } else { if top > int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(72002)) + return _sqlite3CorruptError(tls, int32(72391)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -48716,7 +48994,7 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r g2 = v1 *(*int32)(unsafe.Pointer(pIdx)) = v1 if g2 <= gap { - return _sqlite3CorruptError(tls, int32(72019)) + return _sqlite3CorruptError(tls, int32(72408)) } else { return SQLITE_OK } @@ -48809,12 +49087,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if int32(iFreeBlk) == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(72098)) + return _sqlite3CorruptError(tls, int32(72487)) } iPtr = iFreeBlk } if uint32(iFreeBlk) > (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(72103)) + return _sqlite3CorruptError(tls, int32(72492)) } _ = libc.Int32FromInt32(0) /* At this point: @@ -48826,11 +49104,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if iFreeBlk != 0 && iEnd+uint32(3) >= uint32(iFreeBlk) { nFrag = uint8(uint32(iFreeBlk) - iEnd) if iEnd > uint32(iFreeBlk) { - return _sqlite3CorruptError(tls, int32(72115)) + return _sqlite3CorruptError(tls, int32(72504)) } iEnd = uint32(int32(iFreeBlk) + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iFreeBlk)+int32(2)))))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - return _sqlite3CorruptError(tls, int32(72118)) + return _sqlite3CorruptError(tls, int32(72507)) } iSize = uint16(iEnd - uint32(iStart)) iFreeBlk = uint16(int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= int32(iStart) { if iPtrEnd > int32(iStart) { - return _sqlite3CorruptError(tls, int32(72131)) + return _sqlite3CorruptError(tls, int32(72520)) } nFrag = Tu8(int32(nFrag) + (int32(iStart) - iPtrEnd)) iSize = uint16(iEnd - uint32(iPtr)) @@ -48851,7 +49129,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) } } if int32(nFrag) > int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(72137)) + return _sqlite3CorruptError(tls, int32(72526)) } p2 = data + uintptr(int32(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - int32(nFrag)) @@ -48868,10 +49146,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) ** so just extend the cell content area rather than create another ** freelist entry */ if int32(iStart) < int32(x) { - return _sqlite3CorruptError(tls, int32(72151)) + return _sqlite3CorruptError(tls, int32(72540)) } if int32(iPtr) != int32(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(72152)) + return _sqlite3CorruptError(tls, int32(72541)) } *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)))) = uint8(int32(iFreeBlk) >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)) + 1)) = uint8(iFreeBlk) @@ -48934,7 +49212,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtrIdxLeaf) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72206)) + return _sqlite3CorruptError(tls, int32(72595)) } } } else { @@ -48960,7 +49238,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtr) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72230)) + return _sqlite3CorruptError(tls, int32(72619)) } } } @@ -49007,12 +49285,12 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-55530-52930 In a well-formed b-tree page, there will ** always be at least one cell before the first freeblock. */ - return _sqlite3CorruptError(tls, int32(72281)) + return _sqlite3CorruptError(tls, int32(72670)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(72286)) + return _sqlite3CorruptError(tls, int32(72675)) } next = uint32(int32(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(72296)) + return _sqlite3CorruptError(tls, int32(72685)) } if uint32(pc)+size > uint32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(72300)) + return _sqlite3CorruptError(tls, int32(72689)) } } /* At this point, nFree contains the sum of the offset to the start @@ -49039,7 +49317,7 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { ** area, according to the page header, lies within the page. */ if nFree > usableSize || nFree < iCellFirst { - return _sqlite3CorruptError(tls, int32(72312)) + return _sqlite3CorruptError(tls, int32(72701)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16(nFree - iCellFirst)) return SQLITE_OK @@ -49070,11 +49348,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))) if pc < iCellFirst || pc > iCellLast { - return _sqlite3CorruptError(tls, int32(72343)) + return _sqlite3CorruptError(tls, int32(72732)) } sz = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, data+uintptr(pc))) if pc+sz > usableSize { - return _sqlite3CorruptError(tls, int32(72348)) + return _sqlite3CorruptError(tls, int32(72737)) } goto _1 _1: @@ -49110,7 +49388,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-28594-02890 The one-byte flag at offset 0 indicating ** the b-tree page type. */ if _decodeFlags(tls, pPage, int32(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(72380)) + return _sqlite3CorruptError(tls, int32(72769)) } _ = libc.Int32FromInt32(0) (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) @@ -49124,7 +49402,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = uint16(int32(*(*Tu8)(unsafe.Pointer(data + 3)))< ((*TBtShared)(unsafe.Pointer(pBt)).FpageSize-uint32(8))/uint32(6) { /* To many cells for a single page. The page must be corrupt */ - return _sqlite3CorruptError(tls, int32(72394)) + return _sqlite3CorruptError(tls, int32(72783)) } /* EVIDENCE-OF: R-24089-57979 If a page contains no cells (which is only ** possible for a root page of a table that contains no rows) then the @@ -49290,7 +49568,7 @@ func _getAndInitPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, bRe _ = libc.Int32FromInt32(0) if pgno > _btreePagecount(tls, pBt) { *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72537)) + return _sqlite3CorruptError(tls, int32(72926)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -49367,7 +49645,7 @@ func _btreeGetUnusedPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FpDbPage) > int32(1) { _releasePage(tls, *(*uintptr)(unsafe.Pointer(ppPage))) *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72609)) + return _sqlite3CorruptError(tls, int32(72998)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -49459,7 +49737,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt /* Set the variable isMemdb to true for an in-memory database, or ** false for a file-based database. */ - isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4190) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) + isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4254) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -49694,6 +49972,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt } } *(*uintptr)(unsafe.Pointer(ppBtree)) = p + goto btree_open_out btree_open_out: ; if rc != SQLITE_OK { @@ -50279,7 +50558,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { ** The original design allowed these amounts to vary, but as of ** version 3.6.0, we require them to be fixed. */ - if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4199, uint64(3)) != 0 { + if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4263, uint64(3)) != 0 { goto page1_init_failed } /* EVIDENCE-OF: R-51873-39618 The page size for a database file is @@ -50318,7 +50597,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { } if nPage > *(*Tu32)(unsafe.Pointer(bp + 8)) { if _sqlite3WritableSchema(tls, (*TBtShared)(unsafe.Pointer(pBt)).Fdb) == 0 { - rc = _sqlite3CorruptError(tls, int32(73547)) + rc = _sqlite3CorruptError(tls, int32(73936)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -50373,6 +50652,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 = *(*uintptr)(unsafe.Pointer(bp)) (*TBtShared)(unsafe.Pointer(pBt)).FnPage = nPage return SQLITE_OK + goto page1_init_failed page1_init_failed: ; _releasePageOne(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -50657,6 +50937,7 @@ func _btreeBeginTrans(tls *libc.TLS, p uintptr, wrflag int32, pSchemaVersion uin } } } + goto trans_begun trans_begun: ; if rc == SQLITE_OK { @@ -50778,7 +51059,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if int32(eType) == int32(PTRMAP_OVERFLOW2) { /* The pointer is always the first 4 bytes of the page in this case. */ if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData) != iFrom { - return _sqlite3CorruptError(tls, int32(73995)) + return _sqlite3CorruptError(tls, int32(74384)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -50802,7 +51083,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74014)) + return _sqlite3CorruptError(tls, int32(74403)) } if iFrom == _sqlite3Get4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4)) { _sqlite3Put4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4), iTo) @@ -50811,7 +51092,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } } else { if pCell+uintptr(4) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74023)) + return _sqlite3CorruptError(tls, int32(74412)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -50825,7 +51106,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if int32(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(74035)) + return _sqlite3CorruptError(tls, int32(74424)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -50858,7 +51139,7 @@ func _relocatePage(tls *libc.TLS, pBt uintptr, pDbPage uintptr, eType Tu8, iPtrP _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iDbPage < uint32(3) { - return _sqlite3CorruptError(tls, int32(74070)) + return _sqlite3CorruptError(tls, int32(74459)) } /* Move page iDbPage from its current location to page number iFreePage */ *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3PagerMovepage(tls, pPager, (*TMemPage)(unsafe.Pointer(pDbPage)).FpDbPage, iFreePage, isCommit) @@ -50956,7 +51237,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(74168)) + return _sqlite3CorruptError(tls, int32(74557)) } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -50995,7 +51276,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if *(*TPgno)(unsafe.Pointer(bp + 24)) > dbSize { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) - return _sqlite3CorruptError(tls, int32(74220)) + return _sqlite3CorruptError(tls, int32(74609)) } } _ = libc.Int32FromInt32(0) @@ -51064,7 +51345,7 @@ func _sqlite3BtreeIncrVacuum(tls *libc.TLS, p uintptr) (r int32) { nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) nFin = _finalDbSize(tls, pBt, nOrig, nFree) if nOrig < nFin || nFree >= nOrig { - rc = _sqlite3CorruptError(tls, int32(74288)) + rc = _sqlite3CorruptError(tls, int32(74677)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -51110,7 +51391,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { ** is either a pointer-map page or the pending-byte page. If one ** is encountered, this indicates corruption. */ - return _sqlite3CorruptError(tls, int32(74339)) + return _sqlite3CorruptError(tls, int32(74728)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -51140,7 +51421,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(74366)) + return _sqlite3CorruptError(tls, int32(74755)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -51638,7 +51919,7 @@ func _btreeCursor(tls *libc.TLS, p uintptr, iTable TPgno, wrFlag int32, pKeyInfo _ = libc.Int32FromInt32(0) if iTable <= uint32(1) { if iTable < uint32(1) { - return _sqlite3CorruptError(tls, int32(74830)) + return _sqlite3CorruptError(tls, int32(75219)) } else { if _btreePagecount(tls, pBt) == uint32(0) { _ = libc.Int32FromInt32(0) @@ -52052,7 +52333,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(75235)) + return _sqlite3CorruptError(tls, int32(75624)) } _ = libc.Int32FromInt32(0) _getCellInfo(tls, pCur) @@ -52065,7 +52346,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin ** &aPayload[pCur->info.nLocal] > &pPage->aData[pBt->usableSize] ** but is recast into its current form to avoid integer overflow problems */ - return _sqlite3CorruptError(tls, int32(75250)) + return _sqlite3CorruptError(tls, int32(75639)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -52093,7 +52374,11 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_ValidOvfl) == 0 { nOvfl = int32(((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnPayload - uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) + ovflSize - uint32(1)) / ovflSize) if (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow == uintptr(0) || nOvfl*libc.Int32FromInt64(4) > _sqlite3MallocSize(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow) { - aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + if _sqlite3FaultSim(tls, int32(413)) != 0 { + aNew = uintptr(0) + } else { + aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + } if aNew == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -52104,6 +52389,9 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin p1 = pCur + 1 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(BTCF_ValidOvfl)) } else { + /* Sanity check the validity of the overflow page cache */ + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* If the overflow page-list cache has been allocated and the ** entry for the first required overflow page is valid, skip ** directly to it. @@ -52118,7 +52406,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin for *(*TPgno)(unsafe.Pointer(bp)) != 0 { /* If required, populate the overflow page-list cache. */ if *(*TPgno)(unsafe.Pointer(bp)) > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(75312)) + return _sqlite3CorruptError(tls, int32(75710)) } _ = libc.Int32FromInt32(0) *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) @@ -52195,7 +52483,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin } if rc == SQLITE_OK && amt > uint32(0) { /* Overflow chain ends prematurely */ - return _sqlite3CorruptError(tls, int32(75396)) + return _sqlite3CorruptError(tls, int32(75794)) } return rc } @@ -52348,7 +52636,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(75534)) + return _sqlite3CorruptError(tls, int32(75932)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -52361,7 +52649,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(75548)) + rc = _sqlite3CorruptError(tls, int32(75946)) } if rc != 0 { v3 = pCur + 84 @@ -52491,8 +52779,9 @@ func _moveToRoot(tls *libc.TLS, pCur uintptr) (r int32) { ** (or the freelist). */ _ = libc.Int32FromInt32(0) if int32((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != int32((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(75683)) + return _sqlite3CorruptError(tls, int32(76081)) } + goto skip_init skip_init: ; (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(0) @@ -52504,7 +52793,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(75695)) + return _sqlite3CorruptError(tls, int32(76093)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -52653,6 +52942,7 @@ func _sqlite3BtreeLast(tls *libc.TLS, pCur uintptr, pRes uintptr) (r int32) { _ = libc.Int32FromInt32(0) /* If the cursor already points to the last entry, this is a no-op. */ if CURSOR_VALID == int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) && int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_AtLast) != 0 { + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pRes)) = 0 return SQLITE_OK } @@ -52706,6 +52996,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh } if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey < intKey { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_AtLast) != 0 { + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pRes)) = -int32(1) return SQLITE_OK } @@ -52768,7 +53059,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(75937)) + return _sqlite3CorruptError(tls, int32(76342)) } } } @@ -52816,6 +53107,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh rc = SQLITE_OK goto moveto_table_finish } + goto moveto_table_next_layer moveto_table_next_layer: ; if lwr >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { @@ -52831,6 +53123,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh goto _1 _1: } + goto moveto_table_finish moveto_table_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -52982,7 +53275,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes p3 = pCur + 1 *(*Tu8)(unsafe.Pointer(p3)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p3))) & ^libc.Int32FromInt32(BTCF_ValidOvfl)) if !((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76133)) + return _sqlite3CorruptError(tls, int32(76538)) } goto bypass_moveto_root /* Start search on the current page */ } @@ -52997,6 +53290,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes } return rc } + goto bypass_moveto_root bypass_moveto_root: ; _ = libc.Int32FromInt32(0) @@ -53053,7 +53347,7 @@ bypass_moveto_root: /* Invalid key size: 0x80 0x80 0x01 */ /* Minimum legal index key size */ if nCell < int32(2) || uint32(nCell)/(*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FusableSize > (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(76220)) + rc = _sqlite3CorruptError(tls, int32(76625)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, uint64(nCell+nOverrun)) @@ -53086,7 +53380,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(76252)) + rc = _sqlite3CorruptError(tls, int32(76657)) } goto moveto_index_finish } @@ -53123,7 +53417,7 @@ bypass_moveto_root: p9 = pCur + 1 *(*Tu8)(unsafe.Pointer(p9)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p9))) & ^(libc.Int32FromInt32(BTCF_ValidNKey) | libc.Int32FromInt32(BTCF_ValidOvfl))) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(76283)) + return _sqlite3CorruptError(tls, int32(76688)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = uint16(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -53132,7 +53426,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76294)) + rc = _sqlite3CorruptError(tls, int32(76699)) } if rc != 0 { v11 = pCur + 84 @@ -53146,6 +53440,7 @@ bypass_moveto_root: goto _4 _4: } + goto moveto_index_finish moveto_index_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -53183,11 +53478,11 @@ func _sqlite3BtreeRowCountEst(tls *libc.TLS, pCur uintptr) (r Ti64) { _, _ = i, n _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - /* Currently this interface is only called by the OP_IfSmaller - ** opcode, and it that case the cursor will always be valid and - ** will always point to a leaf node. */ + /* Currently this interface is only called by the OP_IfSizeBetween + ** opcode and the OP_Count opcode with P3=1. In either case, + ** the cursor will always be valid unless the btree is empty. */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID { - return int64(-int32(1)) + return 0 } if int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).Fleaf) == 0 { return int64(-int32(1)) @@ -53265,7 +53560,7 @@ func _btreeNext(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76395)) + return _sqlite3CorruptError(tls, int32(76800)) } if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -53380,7 +53675,7 @@ func _btreePrevious(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76488)) + return _sqlite3CorruptError(tls, int32(76893)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -53474,7 +53769,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt ** stores the total number of pages on the freelist. */ n = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+36) if n >= mxPage { - return _sqlite3CorruptError(tls, int32(76578)) + return _sqlite3CorruptError(tls, int32(76983)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -53531,7 +53826,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(76634)) + rc = _sqlite3CorruptError(tls, int32(77039)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -53560,7 +53855,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { if k > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/libc.Uint32FromInt32(4)-libc.Uint32FromInt32(2) { /* Value of k is out of range. Database corruption */ - rc = _sqlite3CorruptError(tls, int32(76663)) + rc = _sqlite3CorruptError(tls, int32(77068)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -53587,7 +53882,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { iNewTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+8) if iNewTrunk > mxPage { - rc = _sqlite3CorruptError(tls, int32(76697)) + rc = _sqlite3CorruptError(tls, int32(77102)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -53659,7 +53954,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } iPage = _sqlite3Get4byte(tls, aData+uintptr(uint32(8)+closest*uint32(4))) if iPage > mxPage || iPage < uint32(2) { - rc = _sqlite3CorruptError(tls, int32(76762)) + rc = _sqlite3CorruptError(tls, int32(77167)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -53762,6 +54057,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } } _ = libc.Int32FromInt32(0) + goto end_allocate_page end_allocate_page: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -53804,7 +54100,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iPage < uint32(2) || iPage > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(76889)) + return _sqlite3CorruptError(tls, int32(77294)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -53855,7 +54151,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in if nFree != uint32(0) { /* Initial number of leaf cells on trunk page */ iTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32) if iTrunk > _btreePagecount(tls, pBt) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76936)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77341)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -53865,7 +54161,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in nLeaf = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+4) _ = libc.Int32FromInt32(0) if nLeaf > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(2) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76947)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77352)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -53920,6 +54216,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData, iTrunk) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData+4, uint32(0)) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32, iPage) + goto freepage_out freepage_out: ; if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -53956,7 +54253,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp _ = libc.Int32FromInt32(0) if pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { /* Cell extends past end of page */ - return _sqlite3CorruptError(tls, int32(77036)) + return _sqlite3CorruptError(tls, int32(77441)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -53976,7 +54273,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp /* 0 is not a legal page number and page 1 cannot be an ** overflow page. Therefore if ovflPgno<2 or past the end of the ** file the database must be corrupt. */ - return _sqlite3CorruptError(tls, int32(77053)) + return _sqlite3CorruptError(tls, int32(77458)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -53999,7 +54296,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp ** caller is iterating through or using in some other way, this ** can be problematic. */ - rc = _sqlite3CorruptError(tls, int32(77073)) + rc = _sqlite3CorruptError(tls, int32(77478)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -54235,7 +54532,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = uint32(int32(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77329)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77734)) return } rc = _freeSpace(tls, pPage, uint16(pc), uint16(sz)) @@ -54670,12 +54967,12 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg _ = libc.Int32FromInt32(0) if uint64(pCell) >= uint64(aData+uintptr(j)) && uint64(pCell) < uint64(pEnd) { if uint64(pCell+uintptr(sz)) > uint64(pEnd) { - return _sqlite3CorruptError(tls, int32(77718)) + return _sqlite3CorruptError(tls, int32(78123)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(77723)) + return _sqlite3CorruptError(tls, int32(78128)) } } pData -= uintptr(sz) @@ -54683,7 +54980,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = uint8(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(77729)) + return _sqlite3CorruptError(tls, int32(78134)) } libc.Xmemmove(tls, pData, pCell, uint64(sz)) _ = libc.Int32FromInt32(0) @@ -54782,7 +55079,7 @@ func _pageInsertArray(tls *libc.TLS, pPg uintptr, pBegin uintptr, ppData uintptr _ = libc.Int32FromInt32(0) if uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))+uintptr(sz)) > uint64(pEnd) && uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))) < uint64(pEnd) { _ = libc.Int32FromInt32(0) - _sqlite3CorruptError(tls, int32(77814)) + _sqlite3CorruptError(tls, int32(78219)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), uint64(sz)) @@ -54932,7 +55229,7 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p if iOld < iNew { nShift = _pageFreeArray(tls, pPg, iOld, iNew-iOld, pCArray) if nShift > nCell { - return _sqlite3CorruptError(tls, int32(77936)) + return _sqlite3CorruptError(tls, int32(78341)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), uint64(nCell*int32(2))) nCell -= nShift @@ -55002,11 +55299,12 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)))) = uint8((int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)) + 1)) = uint8(int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) return SQLITE_OK + goto editpage_fail editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(78010)) + return _sqlite3CorruptError(tls, int32(78415)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -55054,7 +55352,7 @@ func _balance_quick(tls *libc.TLS, pParent uintptr, pPage uintptr, pSpace uintpt _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(78050)) + return _sqlite3CorruptError(tls, int32(78455)) } /* dbfuzz001.test */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -55430,7 +55728,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78471)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78876)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -55453,7 +55751,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa libc.Xmemset(tls, (*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell+uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*2, 0, uint64(2)*uint64(limit+int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78495)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78900)) goto balance_cleanup } limit = int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -55596,7 +55894,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa if i+int32(1) >= k { k = i + int32(2) if k > libc.Int32FromInt32(NB)+libc.Int32FromInt32(2) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78596)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79001)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -55639,7 +55937,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v10 = 0 } if cntNew[i] <= v10 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78629)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79034)) goto balance_cleanup } } @@ -55700,7 +55998,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v15 = 0 } if cntNew[i-int32(1)] <= v15 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78673)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79078)) goto balance_cleanup } goto _11 @@ -55733,7 +56031,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) nNew++ if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) != int32(1)+libc.BoolInt32(i == iParentIdx-nxDiv) && *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78706)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79111)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -55976,7 +56274,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa } pSrcEnd = *(*uintptr)(unsafe.Pointer(bp + 112 + 32 + uintptr(k)*8)) if uint64(pCell1) < uint64(pSrcEnd) && uint64(pCell1+uintptr(sz2)) > uint64(pSrcEnd) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78906)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79311)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -56125,6 +56423,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa /* ** Cleanup before returning. */ + goto balance_cleanup balance_cleanup: ; _sqlite3DbFree(tls, uintptr(0), (*(*TCellArray)(unsafe.Pointer(bp + 112))).FapCell) @@ -56240,7 +56539,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && int32((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(79138)) + return _sqlite3CorruptError(tls, int32(79543)) } goto _1 _1: @@ -56315,7 +56614,7 @@ func _balance(tls *libc.TLS, pCur uintptr) (r int32) { /* The page being written is not a root page, and there is currently ** more than one reference to it. This only happens if the page is one ** of its own ancestor pages. Corruption. */ - rc = _sqlite3CorruptError(tls, int32(79198)) + rc = _sqlite3CorruptError(tls, int32(79603)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = int32(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -56478,7 +56777,7 @@ func _btreeOverwriteOverflowCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int return rc } if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1) || (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FisInit != 0 { - rc = _sqlite3CorruptError(tls, int32(79362)) + rc = _sqlite3CorruptError(tls, int32(79767)) } else { if uint32(iOffset)+ovflPageSize < uint32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -56509,7 +56808,7 @@ func _btreeOverwriteCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int32) { nTotal = (*TBtreePayload)(unsafe.Pointer(pX)).FnData + (*TBtreePayload)(unsafe.Pointer(pX)).FnZero /* Total bytes of to write */ pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage /* Page being written */ if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload+uintptr((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd || (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FcellOffset) { - return _sqlite3CorruptError(tls, int32(79390)) + return _sqlite3CorruptError(tls, int32(79795)) } if int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -56596,7 +56895,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** Which can only happen if the SQLITE_NoSchemaError flag was set when ** the schema was loaded. This cannot be asserted though, as a user might ** set the flag, load the schema, and then unset the flag. */ - return _sqlite3CorruptError(tls, int32(79471)) + return _sqlite3CorruptError(tls, int32(79876)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -56699,7 +56998,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79594)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79999)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -56741,7 +57040,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if *(*int32)(unsafe.Pointer(bp + 4)) == 0 { _ = libc.Int32FromInt32(0) if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79636)) + return _sqlite3CorruptError(tls, int32(80041)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -56771,10 +57070,10 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry. */ _ = libc.Int32FromInt32(0) /* clearCell never fails when nLocal==nPayload */ if oldCell < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+uintptr(10) { - return _sqlite3CorruptError(tls, int32(79663)) + return _sqlite3CorruptError(tls, int32(80068)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79666)) + return _sqlite3CorruptError(tls, int32(80071)) } libc.Xmemcpy(tls, oldCell, newCell, uint64(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -56846,6 +57145,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s } } _ = libc.Int32FromInt32(0) + goto end_insert end_insert: ; return *(*int32)(unsafe.Pointer(bp)) @@ -56898,7 +57198,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T nIn = uint32((*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnLocal) aIn = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload if aIn+uintptr(nIn) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79768)) + return _sqlite3CorruptError(tls, int32(80173)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -56920,7 +57220,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T } if nRem > nIn { if aIn+uintptr(nIn)+uintptr(4) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79793)) + return _sqlite3CorruptError(tls, int32(80198)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -57029,7 +57329,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(79889)) + return _sqlite3CorruptError(tls, int32(80294)) } } _ = libc.Int32FromInt32(0) @@ -57037,14 +57337,14 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { iCellIdx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(79898)) + return _sqlite3CorruptError(tls, int32(80303)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCellIdx)))))) if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 && _btreeComputeFreeSpace(tls, pPage) != 0 { - return _sqlite3CorruptError(tls, int32(79902)) + return _sqlite3CorruptError(tls, int32(80307)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79905)) + return _sqlite3CorruptError(tls, int32(80310)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -57139,7 +57439,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { } pCell = (*TMemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(int32(2)*(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FnCell)-int32(1)))))))) if pCell < (*TMemPage)(unsafe.Pointer(pLeaf)).FaData+4 { - return _sqlite3CorruptError(tls, int32(79996)) + return _sqlite3CorruptError(tls, int32(80401)) } nCell = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pLeaf)).FxCellSize})))(tls, pLeaf, pCell)) _ = libc.Int32FromInt32(0) @@ -57259,7 +57559,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags */ _sqlite3BtreeGetMeta(tls, p, int32(BTREE_LARGEST_ROOT_PAGE), bp+8) if *(*TPgno)(unsafe.Pointer(bp + 8)) > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80112)) + return _sqlite3CorruptError(tls, int32(80517)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -57301,7 +57601,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags } *(*int32)(unsafe.Pointer(bp + 12)) = _ptrmapGet(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 8)), bp+32, bp+36) if int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80160)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80565)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -57388,14 +57688,14 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _, _, _, _ = hdr, i, pCell, v2 _ = libc.Int32FromInt32(0) if pgno > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80250)) + return _sqlite3CorruptError(tls, int32(80655)) } *(*int32)(unsafe.Pointer(bp + 8)) = _getAndInitPage(tls, pBt, pgno, bp, 0) if *(*int32)(unsafe.Pointer(bp + 8)) != 0 { return *(*int32)(unsafe.Pointer(bp + 8)) } if int32((*TBtShared)(unsafe.Pointer(pBt)).FopenFlags)&int32(BTREE_SINGLE) == 0 && _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1)+libc.BoolInt32(pgno == uint32(1)) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80257)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80662)) goto cleardatabasepage_out } hdr = int32((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -57446,6 +57746,7 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _zeroPage(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData + uintptr(hdr))))|int32(PTF_LEAF)) } } + goto cleardatabasepage_out cleardatabasepage_out: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -57535,7 +57836,7 @@ func _btreeDropTable(tls *libc.TLS, p uintptr, iTable TPgno, piMoved uintptr) (r _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iTable > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80361)) + return _sqlite3CorruptError(tls, int32(80766)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, int32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -57811,7 +58112,7 @@ func _checkAppendMsg(tls *libc.TLS, pCheck uintptr, zFormat uintptr, va uintptr) (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr++ ap = va if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FerrMsg.FnChar != 0 { - Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4203, int32(1)) + Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4267, int32(1)) } if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx != 0 { Xsqlite3_str_appendf(tls, pCheck+72, (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx, libc.VaList(bp+8, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv0, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv2)) @@ -57863,11 +58164,11 @@ func _checkRef(tls *libc.TLS, pCheck uintptr, iPage TPgno) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if iPage > (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnCkPage || iPage == uint32(0) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4205, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4269, libc.VaList(bp+8, iPage)) return int32(1) } if _getPageReferenced(tls, pCheck, iPage) != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4228, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4292, libc.VaList(bp+8, iPage)) return int32(1) } _setPageReferenced(tls, pCheck, iPage) @@ -57893,11 +58194,11 @@ func _checkPtrmap(tls *libc.TLS, pCheck uintptr, iChild TPgno, eType Tu8, iParen if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FusableSize/uint32(4)-uint32(2) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4358, libc.VaList(bp+16, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4422, libc.VaList(bp+16, iPage)) N-- } else { i = 0 @@ -57969,11 +58270,11 @@ func _checkList(tls *libc.TLS, pCheck uintptr, isFreeList int32, iPage TPgno, N } if N != 0 && nErrAtStart == (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr { if isFreeList != 0 { - v2 = __ccgo_ts + 4397 + v2 = __ccgo_ts + 4461 } else { - v2 = __ccgo_ts + 4402 + v2 = __ccgo_ts + 4466 } - _checkAppendMsg(tls, pCheck, __ccgo_ts+4423, libc.VaList(bp+16, v2, expected-N, expected)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4487, libc.VaList(bp+16, v2, expected-N, expected)) } } @@ -58110,12 +58411,12 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr if _checkRef(tls, pCheck, iPage) != 0 { return 0 } - (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4449 + (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4513 (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = iPage v1 = _btreeGetPage(tls, pBt, iPage, bp+8, 0) rc = v1 if v1 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4467, libc.VaList(bp+56, rc)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4531, libc.VaList(bp+56, rc)) if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< usableSize-uint32(4) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4621, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4685, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) doCoverageCheck = 0 goto _4 } pCell = data + uintptr(pc) (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FxParseCell})))(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), pCell, bp+24) if pc+uint32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnSize) > usableSize { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4651, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4715, 0) doCoverageCheck = 0 goto _4 } @@ -58201,7 +58505,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr v5 = libc.BoolInt32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey >= *(*Ti64)(unsafe.Pointer(bp))) } if v5 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4675, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4739, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) } *(*Ti64)(unsafe.Pointer(bp)) = (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey keyCanBeEqual = 0 /* Only the first key on the page may ==maxKey */ @@ -58225,7 +58529,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr d2 = _checkTreePage(tls, pCheck, uint32(pgno), bp, *(*Ti64)(unsafe.Pointer(bp))) keyCanBeEqual = 0 if d2 != depth { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4699, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4763, 0) depth = d2 } } else { @@ -58262,6 +58566,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr i-- } } + _ = libc.Int32FromInt32(0) /* Add the freeblocks to the min-heap ** ** EVIDENCE-OF: R-20690-50594 The second field of the b-tree page header @@ -58302,7 +58607,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr prev = contentOffset - uint32(1) /* Implied first min-heap entry */ for _btreeHeapPull(tls, heap, bp+16) != 0 { if prev&uint32(0xffff) >= *(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4724, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4788, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) break } else { nFrag = int32(uint32(nFrag) + (*(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) - prev&libc.Uint32FromInt32(0xffff) - libc.Uint32FromInt32(1))) @@ -58316,9 +58621,10 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr ** number of fragmented free bytes within the cell content area. */ if *(*Tu32)(unsafe.Pointer(heap)) == uint32(0) && nFrag != int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4761, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4825, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) } } + goto end_of_check end_of_check: ; if !(doCoverageCheck != 0) { @@ -58355,22 +58661,23 @@ end_of_check: // ** the unverified btrees. Except, if aRoot[1] is 1, then the freelist // ** checks are still performed. // */ -func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { - bp := tls.Alloc(256) - defer tls.Free(256) +func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, aCnt uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { + bp := tls.Alloc(272) + defer tls.Free(272) var bCkFreelist, bPartial int32 var i, mx, mxInHdr TPgno var pBt uintptr var savedDbFlags Tu64 - var _ /* notUsed at bp+224 */ Ti64 + var _ /* notUsed at bp+232 */ Ti64 var _ /* sCheck at bp+0 */ TIntegrityCk - var _ /* zErr at bp+120 */ [100]uint8 + var _ /* zErr at bp+128 */ [100]uint8 _, _, _, _, _, _, _ = bCkFreelist, bPartial, i, mx, mxInHdr, pBt, savedDbFlags pBt = (*TBtree)(unsafe.Pointer(p)).FpBt savedDbFlags = (*Tsqlite3)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags bPartial = 0 /* True if not checking all btrees */ bCkFreelist = int32(1) /* True to scan the freelist */ _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* aRoot[0]==0 means this is a partial check */ if *(*TPgno)(unsafe.Pointer(aRoot)) == uint32(0) { _ = libc.Int32FromInt32(0) @@ -58382,13 +58689,13 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin _sqlite3BtreeEnter(tls, p) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - libc.Xmemset(tls, bp, 0, uint64(120)) + libc.Xmemset(tls, bp, 0, uint64(128)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fdb = db (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt = pBt (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage = _btreePagecount(tls, (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr = mxErr - _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+120, int32(100), int32(SQLITE_MAX_LENGTH)) + _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+128, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FerrMsg.FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage == uint32(0) { goto integrity_ck_cleanup @@ -58410,7 +58717,7 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin /* Check the integrity of the freelist */ if bCkFreelist != 0 { - (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4813 + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4877 _checkList(tls, bp, int32(1), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+32), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = uintptr(0) } @@ -58434,11 +58741,11 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } mxInHdr = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+52) if mx != mxInHdr { - _checkAppendMsg(tls, bp, __ccgo_ts+4824, libc.VaList(bp+240, mx, mxInHdr)) + _checkAppendMsg(tls, bp, __ccgo_ts+4888, libc.VaList(bp+248, mx, mxInHdr)) } } else { if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+64) != uint32(0) { - _checkAppendMsg(tls, bp, __ccgo_ts+4869, 0) + _checkAppendMsg(tls, bp, __ccgo_ts+4933, 0) } } } @@ -58448,14 +58755,15 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin if !(int32(i) < nRoot && (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr != 0) { break } - if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) == uint32(0) { - goto _2 - } - if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { - _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnRow = 0 + if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) != 0 { + if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { + _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + } + (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fv0 = *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) + _checkTreePage(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), bp+232, libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)< nRec || iHdr >= *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84303)) + iHdr = uint32(uint8(v1)) + if *(*Tu32)(unsafe.Pointer(bp + 4)) > uint32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84745)) } - iField = *(*int32)(unsafe.Pointer(bp + 4)) + iField = int64(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 for { if !(i <= iCol) { @@ -61630,19 +61974,19 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } else { v3 = int32(_sqlite3GetVarint32(tls, a+uintptr(iHdr), bp)) } - iHdr += int32(uint8(v3)) - if iHdr > *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84309)) + iHdr += uint32(uint8(v3)) + if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84751)) } - szField = int32(_sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp)))) - iField += szField + szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) + iField += int64(szField) goto _2 _2: ; i++ } - if iField > nRec { - return _sqlite3CorruptError(tls, int32(84315)) + if iField > int64(nRec) { + return _sqlite3CorruptError(tls, int32(84757)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -61652,7 +61996,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC return int32(SQLITE_NOMEM) } } - _sqlite3VdbeSerialGet(tls, a+uintptr(iField-szField), *(*Tu32)(unsafe.Pointer(bp)), pMem) + _sqlite3VdbeSerialGet(tls, a+uintptr(iField-int64(szField)), *(*Tu32)(unsafe.Pointer(bp)), pMem) (*TMem)(unsafe.Pointer(pMem)).Fenc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc return SQLITE_OK } @@ -62088,6 +62432,7 @@ func _sqlite3VdbeMultiLoad(tls *libc.TLS, p uintptr, iDest int32, zTypes uintptr i++ } _sqlite3VdbeAddOp2(tls, p, int32(OP_ResultRow), iDest, i) + goto skip_op_resultrow skip_op_resultrow: ; _ = ap @@ -62466,6 +62811,11 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { _ = libc.Int32FromInt32(0) /* True because of tag-20230419-1 */ (*TOp)(unsafe.Pointer(pOp)).Fp2 = *(*int32)(unsafe.Pointer(aLabel + uintptr(^(*TOp)(unsafe.Pointer(pOp)).Fp2)*4)) } + /* OPFLG_JUMP opcodes never have P2==0, though OPFLG_JUMP0 opcodes + ** might */ + _ = libc.Int32FromInt32(0) + /* Jumps never go off the end of the bytecode array */ + _ = libc.Int32FromInt32(0) break } /* The mkopcodeh.tcl script has so arranged things that the only @@ -62476,6 +62826,7 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { _ = libc.Int32FromInt32(0) pOp -= 24 } + goto resolve_p2_values_loop_exit resolve_p2_values_loop_exit: ; if aLabel != 0 { @@ -63016,7 +63367,7 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { case -int32(8): pKeyInfo = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5081, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5145, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) j = 0 for { if !(j < int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)) { @@ -63026,68 +63377,68 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { if pColl != 0 { v2 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } zColl = v2 - if libc.Xstrcmp(tls, zColl, __ccgo_ts+5086) == 0 { - zColl = __ccgo_ts + 5093 + if libc.Xstrcmp(tls, zColl, __ccgo_ts+5150) == 0 { + zColl = __ccgo_ts + 5157 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_DESC) != 0 { - v3 = __ccgo_ts + 5074 + v3 = __ccgo_ts + 5138 } else { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_BIGNULL) != 0 { - v4 = __ccgo_ts + 5095 + v4 = __ccgo_ts + 5159 } else { - v4 = __ccgo_ts + 1648 + v4 = __ccgo_ts + 1662 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5098, libc.VaList(bp+40, v3, v4, zColl)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5162, libc.VaList(bp+40, v3, v4, zColl)) goto _1 _1: ; j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5170, int32(1)) case -int32(2): pColl1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5122, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5186, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) case -int32(7): pDef = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5131, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5195, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) case -int32(15): pDef1 = (*Tsqlite3_context)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpFunc - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5131, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5195, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) case -int32(13): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1404, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1423, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(3): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5138, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5202, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) case -int32(12): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1371, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1390, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(10): pMem = *(*uintptr)(unsafe.Pointer(pOp + 16)) if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Str) != 0 { zP4 = (*TMem)(unsafe.Pointer(pMem)).Fz } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1404, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1423, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1371, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1390, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Null) != 0 { - zP4 = __ccgo_ts + 1649 + zP4 = __ccgo_ts + 1663 } else { _ = libc.Int32FromInt32(0) - zP4 = __ccgo_ts + 5141 + zP4 = __ccgo_ts + 5205 } } } } case -int32(11): pVtab = (*TVTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5148, libc.VaList(bp+40, pVtab)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5212, libc.VaList(bp+40, pVtab)) case -int32(14): ai = *(*uintptr)(unsafe.Pointer(pOp + 16)) n = *(*Tu32)(unsafe.Pointer(ai)) /* The first element of an INTARRAY is always the @@ -63102,15 +63453,15 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } else { v6 = int32(',') } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5156, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5220, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) goto _5 _5: ; i++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5161, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5225, int32(1)) case -int32(4): - zP4 = __ccgo_ts + 5163 + zP4 = __ccgo_ts + 5227 case -int32(5): zP4 = (*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FzName default: @@ -63126,10 +63477,10 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } var _encnames = [4]uintptr{ - 0: __ccgo_ts + 5108, - 1: __ccgo_ts + 5110, - 2: __ccgo_ts + 5112, - 3: __ccgo_ts + 5117, + 0: __ccgo_ts + 5172, + 1: __ccgo_ts + 5174, + 2: __ccgo_ts + 5176, + 3: __ccgo_ts + 5181, } // C documentation @@ -64121,7 +64472,7 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { retryCount = 0 /* Select a super-journal file name */ nMainFile = _sqlite3Strlen30(tls, zMainFile) - zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5171, libc.VaList(bp+24, 0, zMainFile, 0)) + zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5235, libc.VaList(bp+24, 0, zMainFile, 0)) if zSuper == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -64129,18 +64480,18 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { for cond := true; cond; cond = rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 8)) != 0 { if retryCount != 0 { if retryCount > int32(100) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5183, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5247, libc.VaList(bp+24, zSuper)) _sqlite3OsDelete(tls, pVfs, zSuper, 0) break } else { if retryCount == int32(1) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5197, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5261, libc.VaList(bp+24, zSuper)) } } } retryCount++ Xsqlite3_randomness(tls, int32(4), bp+12) - Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5212, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) + Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5276, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) /* The antipenultimate character of the super-journal name must ** be "9" to avoid name collisions when using 8+3 filenames. */ _ = libc.Int32FromInt32(0) @@ -64377,7 +64728,7 @@ func _sqlite3VdbeCheckFk(tls *libc.TLS, p uintptr, deferred int32) (r int32) { if deferred != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredCons+(*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons > 0 || !(deferred != 0) && (*TVdbe)(unsafe.Pointer(p)).FnFkConstraint > 0 { (*TVdbe)(unsafe.Pointer(p)).Frc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(3)< y { return +libc.Int32FromInt32(1) } - s = float64(i) - if s < r { + if float64(i) < r { v2 = -int32(1) } else { - v2 = libc.BoolInt32(s > r) + v2 = libc.BoolInt32(float64(i) > r) } return v2 } @@ -65723,7 +66073,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89131))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89580))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -65818,7 +66168,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || int32((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89212))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89661))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -65854,7 +66204,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = int32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+uint32(nStr) > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89242))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89691))) return 0 /* Corruption */ } else { if int32((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -65910,7 +66260,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += uint32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89293))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89742))) return 0 /* Corrupt index */ } } @@ -66032,6 +66382,7 @@ func _vdbeRecordCompareString(tls *libc.TLS, nKey1 int32, pKey1 uintptr, pPKey2 _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(bp)) = int32(int8(*(*Tu8)(unsafe.Pointer(aKey1 + 1)))) + goto vrcs_restart vrcs_restart: ; if *(*int32)(unsafe.Pointer(bp)) < int32(12) { @@ -66050,7 +66401,7 @@ vrcs_restart: szHdr = int32(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89456))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89905))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -66203,10 +66554,11 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr return SQLITE_OK /* Jump here if database corruption is detected after m has been ** allocated. Free the m object and return SQLITE_CORRUPT. */ + goto idx_rowid_corruption idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(89614)) + return _sqlite3CorruptError(tls, int32(90063)) } // C documentation @@ -66239,7 +66591,7 @@ func _sqlite3VdbeIdxKeyCompare(tls *libc.TLS, db uintptr, pC uintptr, pUnpacked ** that btreeParseCellPtr() and sqlite3GetVarint32() are implemented */ if nCellKey <= 0 || nCellKey > int64(0x7fffffff) { *(*int32)(unsafe.Pointer(res)) = 0 - return _sqlite3CorruptError(tls, int32(89647)) + return _sqlite3CorruptError(tls, int32(90096)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(nCellKey), bp) @@ -66395,15 +66747,15 @@ func _sqlite3NotPureFunc(tls *libc.TLS, pCtx uintptr) (r int32) { pOp = (*TVdbe)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe)).FaOp + uintptr((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FiOp)*24 if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_PureFunc) { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_IsCheck) != 0 { - zContext = __ccgo_ts + 5255 + zContext = __ccgo_ts + 5319 } else { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_GenCol) != 0 { - zContext = __ccgo_ts + 5274 + zContext = __ccgo_ts + 5338 } else { - zContext = __ccgo_ts + 5293 + zContext = __ccgo_ts + 5357 } } - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5302, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5366, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) return 0 @@ -66582,7 +66934,7 @@ func Xsqlite3_expired(tls *libc.TLS, pStmt uintptr) (r int32) { // */ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { if (*TVdbe)(unsafe.Pointer(p)).Fdb == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5338, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5402, 0) return int32(1) } else { return 0 @@ -66592,7 +66944,7 @@ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { func _vdbeSafetyNotNull(tls *libc.TLS, p uintptr) (r int32) { if p == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5383, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5447, 0) return int32(1) } else { return _vdbeSafety(tls, p) @@ -66654,7 +67006,7 @@ func Xsqlite3_finalize(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt db = (*TVdbe)(unsafe.Pointer(v)).Fdb if _vdbeSafety(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90035)) + return _sqlite3MisuseError(tls, int32(90484)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -67185,7 +67537,7 @@ func Xsqlite3_result_error_code(tls *libc.TLS, pCtx uintptr, errCode int32) { func Xsqlite3_result_error_toobig(tls *libc.TLS, pCtx uintptr) { _ = libc.Int32FromInt32(0) (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = int32(SQLITE_TOOBIG) - _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5423, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) + _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5487, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) } // C documentation @@ -67267,6 +67619,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) db = (*TVdbe)(unsafe.Pointer(p)).Fdb if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_RUN_STATE) { + goto restart_step restart_step: ; if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) == int32(VDBE_READY_STATE) { @@ -67370,6 +67723,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { rc = (*TVdbe)(unsafe.Pointer(p)).Frc } } + goto end_of_step end_of_step: ; /* There are only a limited number of result codes allowed from the @@ -67394,7 +67748,7 @@ func Xsqlite3_step(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt /* the prepared statement */ cnt = 0 /* The database connection */ if _vdbeSafetyNotNull(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90829)) + return _sqlite3MisuseError(tls, int32(91278)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -67528,7 +67882,7 @@ func _valueFromValueList(tls *libc.TLS, pVal uintptr, ppOut uintptr, bNext int32 _, _, _, _, _, _, _ = iOff, pOut, pRhs, rc, sz, zBuf, v1 *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) if pVal == uintptr(0) { - return _sqlite3MisuseError(tls, int32(90950)) + return _sqlite3MisuseError(tls, int32(91399)) } if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -67759,6 +68113,7 @@ func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, (*TAuxData)(unsafe.Pointer(pAuxData)).FpAux = pAux (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = xDelete return + goto failed failed: ; if xDelete != 0 { @@ -68000,18 +68355,18 @@ func Xsqlite3_column_type(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { // ** Column names appropriate for EXPLAIN or EXPLAIN QUERY PLAN. // */ var _azExplainColNames8 = [12]uintptr{ - 0: __ccgo_ts + 5446, - 1: __ccgo_ts + 5451, - 2: __ccgo_ts + 5458, - 3: __ccgo_ts + 5461, - 4: __ccgo_ts + 5464, - 5: __ccgo_ts + 5467, - 6: __ccgo_ts + 5470, - 7: __ccgo_ts + 5473, - 8: __ccgo_ts + 5481, - 9: __ccgo_ts + 5484, - 10: __ccgo_ts + 5491, - 11: __ccgo_ts + 5499, + 0: __ccgo_ts + 5510, + 1: __ccgo_ts + 5515, + 2: __ccgo_ts + 5522, + 3: __ccgo_ts + 5525, + 4: __ccgo_ts + 5528, + 5: __ccgo_ts + 5531, + 6: __ccgo_ts + 5534, + 7: __ccgo_ts + 5537, + 8: __ccgo_ts + 5545, + 9: __ccgo_ts + 5548, + 10: __ccgo_ts + 5555, + 11: __ccgo_ts + 5563, } var _azExplainColNames16data = [60]Tu16{ 0: uint16('a'), @@ -68147,6 +68502,7 @@ func _columnName(tls *libc.TLS, pStmt uintptr, N int32, useUtf16 int32, useType ret = uintptr(0) } } + goto columnName_end columnName_end: ; Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -68256,14 +68612,14 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { var v2 bool _, _, _ = pVar, v1, v2 if _vdbeSafetyNotNull(tls, p) != 0 { - return _sqlite3MisuseError(tls, int32(91554)) + return _sqlite3MisuseError(tls, int32(92003)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(91558))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(92007))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5506, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(91562)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5570, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) + return _sqlite3MisuseError(tls, int32(92011)) } if i >= uint32((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -68837,7 +69193,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp /* Test that this call is being made from within an SQLITE_DELETE or ** SQLITE_UPDATE pre-update callback, and that iIdx is within range. */ if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_INSERT) { - rc = _sqlite3MisuseError(tls, int32(92098)) + rc = _sqlite3MisuseError(tls, int32(92547)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -68884,6 +69240,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } } + goto preupdate_old_out preupdate_old_out: ; _sqlite3Error(tls, db, rc) @@ -68967,7 +69324,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp rc = SQLITE_OK p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(92221)) + rc = _sqlite3MisuseError(tls, int32(92670)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -69035,6 +69392,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } *(*uintptr)(unsafe.Pointer(ppValue)) = pMem + goto preupdate_new_out preupdate_new_out: ; _sqlite3Error(tls, db, rc) @@ -69143,7 +69501,7 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr break } } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5546, int32(3)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5610, int32(3)) _ = libc.Int32FromInt32(0) Xsqlite3_str_append(tls, bp+8, zStart, int32(int64(zRawSql)-int64(zStart))) } @@ -69182,13 +69540,13 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr _ = libc.Int32FromInt32(0) pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(*(*int32)(unsafe.Pointer(bp))-int32(1))*56 if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Null) != 0 { - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1649, int32(4)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1663, int32(4)) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1404, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1423, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5067, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5131, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Str) != 0 { /* Number of bytes of the string text to include in output */ enc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc @@ -69203,29 +69561,29 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr pVar = bp + 40 } nOut = (*TMem)(unsafe.Pointer(pVar)).Fn - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5550, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5614, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) if int32(enc) != int32(SQLITE_UTF8) { _sqlite3VdbeMemRelease(tls, bp+40) } } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Zero) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5557, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5621, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) } else { /* Number of bytes of the blob to include in output */ _ = libc.Int32FromInt32(0) - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5570, int32(2)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5634, int32(2)) nOut1 = (*TMem)(unsafe.Pointer(pVar)).Fn i = 0 for { if !(i < nOut1) { break } - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5573, libc.VaList(bp+104, int32(*(*uint8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5637, libc.VaList(bp+104, int32(*(*uint8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) goto _3 _3: ; i++ } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5578, int32(1)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5642, int32(1)) } } } @@ -69840,7 +70198,7 @@ var _azTypes = [5]uintptr{ 1: __ccgo_ts + 1144, 2: __ccgo_ts + 1149, 3: __ccgo_ts + 1127, - 4: __ccgo_ts + 1649, + 4: __ccgo_ts + 1663, } // C documentation @@ -69854,7 +70212,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { defer tls.Free(976) var aCol, aMem, aOffset, aOp, aPermute, aRoot, apArg, apArg1, db, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pnErr, t1, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v240, v241, v242, v250, v251, v252, v253, v255, v263, v278, v279, v286, v288, v297, v298, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 uintptr var affinity uint8 - var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 + var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, savedAnalysisLimit, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 var colCacheCtr, iAddr, iMap, iPrior, idx, len11, n3, p22, p23, serialType, serial_type, v213, v214, v216, v221, v222 Tu32 var encoding, isWriteLock, mTrace, op, p5, resetSchemaOnFault, vtabOnConflict, v225 Tu8 var flags1, flags11, flags2, flags3, flags31, newType, nullFlag, type1, type2, typeMask, v190 Tu16 @@ -69911,7 +70269,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { var _ /* z at bp+688 */ uintptr var _ /* zErr at bp+632 */ uintptr var _ /* zErr at bp+792 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, savedAnalysisLimit, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 aOp = (*TVdbe)(unsafe.Pointer(p)).FaOp /* Copy of p->aOp */ pOp = aOp /* Current operation */ rc = SQLITE_OK /* Value to return */ @@ -70187,7 +70545,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto _109 case int32(OP_SeekEnd): goto _110 - case int32(OP_IfSmaller): + case int32(OP_IfSizeBetween): goto _111 case int32(OP_Sort): goto _112 @@ -70389,6 +70747,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { */ _2: ; /* jump */ + goto jump_to_p2_and_check_for_interrupt jump_to_p2_and_check_for_interrupt: ; pOp = aOp + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp2-int32(1))*24 @@ -70402,6 +70761,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** way for performance, to avoid having to run the interrupt and progress ** checks on every opcode. This helps sqlite3_step() to run about 1.5% ** faster according to "valgrind --tool=cachegrind" */ + goto check_for_interrupt check_for_interrupt: ; if libc.AtomicLoadNInt32(db+432, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0 { @@ -70482,7 +70842,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: EndCoroutine */ _5: - ; /* jump */ + ; /* jump0 */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -70495,6 +70855,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* Most jump operations do a goto to this spot in order to update ** the pOp pointer. */ + goto jump_to_p2 jump_to_p2: ; _ = libc.Int32FromInt32(0) /* There are never any jumps to instruction 0 */ @@ -70505,7 +70866,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** ** The instruction at the address in register P1 is a Yield. ** Jump to the P2 parameter of that Yield. - ** After the jump, register P1 becomes undefined. + ** After the jump, the value register P1 is left with a value + ** such that subsequent OP_Yields go back to the this same + ** OP_EndCoroutine instruction. ** ** See also: InitCoroutine */ @@ -70517,8 +70880,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pCaller = aOp + uintptr(*(*Ti64)(unsafe.Pointer(pIn1)))*24 _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) + *(*Ti64)(unsafe.Pointer(pIn1)) = int64(int32((int64(pOp)-int64((*TVdbe)(unsafe.Pointer(p)).FaOp))/24) - int32(1)) pOp = aOp + uintptr((*TVdbeOp)(unsafe.Pointer(pCaller)).Fp2-int32(1))*24 - (*TMem)(unsafe.Pointer(pIn1)).Fflags = uint16(MEM_Undefined) goto _187 /* Opcode: Yield P1 P2 * * * ** @@ -70617,15 +70980,15 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) if (*TVdbe)(unsafe.Pointer(p)).Frc != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+5614, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) + _sqlite3VdbeError(tls, p, __ccgo_ts+5678, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) if *(*uintptr)(unsafe.Pointer(pOp + 16)) != 0 { - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5635, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5699, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } } else { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } pcx = int32((int64(pOp) - int64(aOp)) / 24) - Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5642, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) + Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5706, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) } rc = _sqlite3VdbeHalt(tls, p) _ = libc.Int32FromInt32(0) @@ -70830,18 +71193,14 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } (*TMem)(unsafe.Pointer(pOut)).Fenc = encoding goto _187 - /* Opcode: Variable P1 P2 * P4 * - ** Synopsis: r[P2]=parameter(P1,P4) + /* Opcode: Variable P1 P2 * * * + ** Synopsis: r[P2]=parameter(P1) ** ** Transfer the values of bound parameter P1 into register P2 - ** - ** If the parameter is named, then its name appears in P4. - ** The P4 value is used by sqlite3_bind_parameter_name(). */ _19: ; /* Value being transferred */ _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1-int32(1))*56 if _sqlite3VdbeMemTooBig(tls, pVar) != 0 { goto too_big @@ -71143,6 +71502,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(int32(type1)&int32(type2)&int32(MEM_Int) != 0) { goto _200 } + goto int_math int_math: ; iA = *(*Ti64)(unsafe.Pointer(pIn1)) @@ -71195,6 +71555,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if int32(type1)&int32(type2)&int32(MEM_Int) != 0 { goto int_math } + goto fp_math fp_math: ; rA = _sqlite3VdbeRealValue(tls, pIn1) @@ -71234,6 +71595,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _201: ; goto _187 + goto arithmetic_result_is_null arithmetic_result_is_null: ; _sqlite3VdbeMemSetNull(tls, pOut) @@ -71375,7 +71737,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** raise an SQLITE_MISMATCH exception. */ _38: - ; /* jump, in1 */ + ; /* jump0, in1 */ pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 if int32((*TMem)(unsafe.Pointer(pIn1)).Fflags)&int32(MEM_Int) == 0 { _applyAffinity(tls, pIn1, uint8(SQLITE_AFF_NUMERIC), encoding) @@ -72146,6 +72508,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) pC3 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) p22 = uint32((*TOp)(unsafe.Pointer(pOp)).Fp2) + goto op_column_restart op_column_restart: ; _ = libc.Int32FromInt32(0) @@ -72285,6 +72648,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { zData = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaRow } /* Fill in pC->aType[i] and aOffset[i] values through the p2-th field. */ + goto op_column_read_header op_column_read_header: ; i1 = int32((*TVdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed) @@ -72427,16 +72791,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } } + goto op_column_out op_column_out: ; goto _187 + goto op_column_corrupt op_column_corrupt: ; if (*(*TOp)(unsafe.Pointer(aOp))).Fp3 > 0 { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(95863)) + rc = _sqlite3CorruptError(tls, int32(96311)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -72542,9 +72908,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } _ = libc.Int32FromInt32(0) goto _187 + goto vdbe_type_error vdbe_type_error: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5666, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) + _sqlite3VdbeError(tls, p, __ccgo_ts+5730, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(12)< 0 && p12 == int32(SAVEPOINT_RELEASE) { /* It is not possible to release (commit) a savepoint if there are ** active write statements. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5780, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5844, 0) rc = int32(SQLITE_BUSY) } else { /* Determine whether or not this is a transaction savepoint. If so, @@ -73177,7 +73544,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If this instruction implements a COMMIT and other VMs are writing ** return an error indicating that the other VMs must complete first. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5834, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5898, 0) rc = int32(SQLITE_BUSY) goto abort_due_to_error } else { @@ -73207,12 +73574,12 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto vdbe_return } else { if !(desiredAutoCommit != 0) { - v250 = __ccgo_ts + 5889 + v250 = __ccgo_ts + 5953 } else { if iRollback != 0 { - v251 = __ccgo_ts + 5937 + v251 = __ccgo_ts + 6001 } else { - v251 = __ccgo_ts + 5980 + v251 = __ccgo_ts + 6044 } v250 = v251 } @@ -73314,7 +73681,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** SQL statement was prepared. */ _sqlite3DbFree(tls, db, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg) - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6021) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6085) /* If the schema-cookie from the database file matches the cookie ** stored with the in-memory representation of the schema, do ** not reload the schema from the database file. @@ -73584,6 +73951,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** and report database corruption if they were not, but this check has ** since moved into the btree layer. */ (*TVdbeCursor)(unsafe.Pointer(pCur)).FisTable = libc.BoolUint8(int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) != -int32(8)) + goto open_cursor_set_hints open_cursor_set_hints: ; _ = libc.Int32FromInt32(0) @@ -73671,7 +74039,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fn = 0 - (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1648 + (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1662 } pCx1 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) if pCx1 != 0 && !(int32(TBool(*(*uint8)(unsafe.Pointer(pCx1 + 8))&0x8>>3)) != 0) && (*TOp)(unsafe.Pointer(pOp)).Fp2 <= int32((*TVdbeCursor)(unsafe.Pointer(pCx1)).FnField) { @@ -73787,7 +74155,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** is the only cursor opcode that works with a pseudo-table. ** ** P3 is the number of fields in the records that will be stored by - ** the pseudo-table. + ** the pseudo-table. If P2 is 0 or negative then the pseudo-cursor + ** will return NULL for every column. */ _83: ; @@ -73909,11 +74278,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: Found, NotFound, SeekGt, SeekGe, SeekLt */ _88: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _87: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _86: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _85: ; /* Only interested in == results */ _ = libc.Int32FromInt32(0) @@ -74076,6 +74445,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 112)) = _sqlite3BtreeEof(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48))) } } + goto seek_not_found seek_not_found: ; _ = libc.Int32FromInt32(0) @@ -74190,6 +74560,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(*(*int32)(unsafe.Pointer(bp + 160)) > 0 && int32((*TOp)(unsafe.Pointer(pOp)).Fp5) == 0) { goto _259 } + goto seekscan_search_fail seekscan_search_fail: ; /* Jump to SeekGE.P2, ending the loop */ @@ -74517,6 +74888,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) iKey1 = uint64(*(*Ti64)(unsafe.Pointer(pIn3))) + goto notExistsWithKey notExistsWithKey: ; pC10 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) @@ -74536,7 +74908,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp + 248)) != 0 { _ = libc.Int32FromInt32(0) if (*TOp)(unsafe.Pointer(pOp)).Fp2 == 0 { - rc = _sqlite3CorruptError(tls, int32(98111)) + rc = _sqlite3CorruptError(tls, int32(98565)) } else { goto jump_to_p2 } @@ -75211,14 +75583,20 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } goto _187 - /* Opcode: IfSmaller P1 P2 P3 * * + /* Opcode: IfSizeBetween P1 P2 P3 P4 * + ** + ** Let N be the approximate number of rows in the table or index + ** with cursor P1 and let X be 10*log2(N) if N is positive or -1 + ** if N is zero. ** - ** Estimate the number of rows in the table P1. Jump to P2 if that - ** estimate is less than approximately 2**(0.1*P3). + ** Jump to P2 if X is in between P3 and P4, inclusive. */ _111: ; _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) pC20 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) _ = libc.Int32FromInt32(0) pCrsr5 = *(*uintptr)(unsafe.Pointer(pC20 + 48)) @@ -75227,12 +75605,14 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { goto abort_due_to_error } - if *(*int32)(unsafe.Pointer(bp + 396)) == 0 { + if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { + sz = int64(-int32(1)) /* -Infinity encoding */ + } else { sz = _sqlite3BtreeRowCountEst(tls, pCrsr5) - if sz >= 0 && int32(_sqlite3LogEst(tls, uint64(sz))) < (*TOp)(unsafe.Pointer(pOp)).Fp3 { - *(*int32)(unsafe.Pointer(bp + 396)) = int32(1) - } + _ = libc.Int32FromInt32(0) + sz = int64(_sqlite3LogEst(tls, uint64(sz))) } + *(*int32)(unsafe.Pointer(bp + 396)) = libc.BoolInt32(sz >= int64((*TOp)(unsafe.Pointer(pOp)).Fp3) && sz <= int64((*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { goto jump_to_p2 } @@ -75388,6 +75768,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) rc = _sqlite3BtreeNext(tls, *(*uintptr)(unsafe.Pointer(pC22 + 48)), (*TOp)(unsafe.Pointer(pOp)).Fp3) + goto next_tail next_tail: ; (*TVdbeCursor)(unsafe.Pointer(pC22)).FcacheStatus = uint32(CACHE_STALE) @@ -75538,7 +75919,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } else { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 && !(_sqlite3WritableSchema(tls, db) != 0) { - rc = _sqlite3ReportError(tls, libc.Int32FromInt32(SQLITE_CORRUPT)|libc.Int32FromInt32(3)< int64(0x7fffffff) { - rc = _sqlite3CorruptError(tls, int32(99398)) + rc = _sqlite3CorruptError(tls, int32(99862)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -75884,11 +76265,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } *(*Ti64)(unsafe.Pointer(pOut)) = int64(*(*TPgno)(unsafe.Pointer(bp + 624))) goto _187 - /* Opcode: SqlExec * * * P4 * + /* Opcode: SqlExec P1 P2 * P4 * ** ** Run the SQL statement or statements specified in the P4 string. - ** Disable Auth and Trace callbacks while those statements are running if - ** P1 is true. + ** + ** The P1 parameter is a bitmask of options: + ** + ** 0x0001 Disable Auth and Trace callbacks while the statements + ** in P4 are running. + ** + ** 0x0002 Set db->nAnalysisLimit to P2 while the statements in + ** P4 are running. + ** */ _132: ; @@ -75896,16 +76284,21 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*uintptr)(unsafe.Pointer(bp + 632)) = uintptr(0) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth mTrace = (*Tsqlite3)(unsafe.Pointer(db)).FmTrace - if (*TOp)(unsafe.Pointer(pOp)).Fp1 != 0 { + savedAnalysisLimit = (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0001) != 0 { (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(0) } + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0002) != 0 { + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = (*TOp)(unsafe.Pointer(pOp)).Fp2 + } rc = Xsqlite3_exec(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16)), uintptr(0), uintptr(0), bp+632) (*Tsqlite3)(unsafe.Pointer(db)).FnSqlExec-- (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = mTrace + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = savedAnalysisLimit if *(*uintptr)(unsafe.Pointer(bp + 632)) != 0 || rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 632))) if rc == int32(SQLITE_NOMEM) { goto no_mem @@ -75938,13 +76331,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_SchemaChange) libc.SetBitFieldPtr16Uint32(p+200, libc.Uint32FromInt32(0), 0, 0x3) } else { - zSchema = __ccgo_ts + 6066 + zSchema = __ccgo_ts + 6130 (*(*TInitData)(unsafe.Pointer(bp + 640))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 640))).FiDb = iDb3 (*(*TInitData)(unsafe.Pointer(bp + 640))).FpzErrMsg = p + 168 (*(*TInitData)(unsafe.Pointer(bp + 640))).FmInitFlags = uint32(0) (*(*TInitData)(unsafe.Pointer(bp + 640))).FmxPage = _sqlite3BtreeLastPage(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6080, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6144, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -75961,7 +76354,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* The OP_ParseSchema opcode with a non-NULL P4 argument should parse ** at least one SQL statement. Any less than that indicates that ** the sqlite_schema table is corrupt. */ - rc = _sqlite3CorruptError(tls, int32(99678)) + rc = _sqlite3CorruptError(tls, int32(100155)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -76028,11 +76421,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* Opcode: IntegrityCk P1 P2 P3 P4 P5 ** ** Do an analysis of the currently open database. Store in - ** register P1 the text of an error message describing any problems. - ** If no problems are found, store a NULL in register P1. + ** register (P1+1) the text of an error message describing any problems. + ** If no problems are found, store a NULL in register (P1+1). ** - ** The register P3 contains one less than the maximum number of allowed errors. - ** At most reg(P3) errors will be reported. + ** The register (P1) contains one less than the maximum number of allowed + ** errors. At most reg(P1) errors will be reported. ** In other words, the analysis stops as soon as reg(P1) errors are ** seen. Reg(P1) is updated with the number of errors remaining. ** @@ -76047,18 +76440,20 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _138: ; /* Register keeping track of errors remaining */ _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) nRoot = (*TOp)(unsafe.Pointer(pOp)).Fp2 aRoot = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 _ = libc.Int32FromInt32(0) + pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 _ = libc.Int32FromInt32(0) - pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 _ = libc.Int32FromInt32(0) + pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1+int32(1))*56 _ = libc.Int32FromInt32(0) - rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) + _ = libc.Int32FromInt32(0) + rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, aMem+uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) _sqlite3VdbeMemSetNull(tls, pIn1) if *(*int32)(unsafe.Pointer(bp + 680)) == 0 { _ = libc.Int32FromInt32(0) @@ -76172,7 +76567,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** P1 contains the address of the memory cell that contains the first memory ** cell in an array of values used as arguments to the sub-program. P2 ** contains the address to jump to if the sub-program throws an IGNORE - ** exception using the RAISE() function. Register P3 contains the address + ** exception using the RAISE() function. P2 might be zero, if there is + ** no possibility that an IGNORE exception will be raised. + ** Register P3 contains the address ** of a memory cell in this (the parent) VM that is used to allocate the ** memory required by the sub-vdbe at runtime. ** @@ -76214,7 +76611,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } if (*TVdbe)(unsafe.Pointer(p)).FnFrame >= *(*int32)(unsafe.Pointer(db + 136 + 10*4)) { rc = int32(SQLITE_ERROR) - _sqlite3VdbeError(tls, p, __ccgo_ts+6123, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6187, 0) goto abort_due_to_error } /* Register pRt is used to store the memory required to save the state @@ -76598,7 +76995,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* IMP: R-24505-23230 */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError } if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FskipFlag != 0 { @@ -76660,7 +77057,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3VdbeMemFinalize(tls, pMem3, *(*uintptr)(unsafe.Pointer(pOp + 16))) } if rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) goto abort_due_to_error } _sqlite3VdbeChangeEncoding(tls, pMem3, int32(encoding)) @@ -76745,11 +77142,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeRead > int32(1) { rc = int32(SQLITE_ERROR) if eNew == int32(PAGER_JOURNALMODE_WAL) { - v286 = __ccgo_ts + 6160 + v286 = __ccgo_ts + 6224 } else { - v286 = __ccgo_ts + 6165 + v286 = __ccgo_ts + 6229 } - _sqlite3VdbeError(tls, p, __ccgo_ts+6172, libc.VaList(bp+944, v286)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6236, libc.VaList(bp+944, v286)) goto abort_due_to_error } else { if eOld == int32(PAGER_JOURNALMODE_WAL) { @@ -76917,7 +77314,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { if rc&int32(0xFF) == int32(SQLITE_LOCKED) { z1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - _sqlite3VdbeError(tls, p, __ccgo_ts+6224, libc.VaList(bp+944, z1)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6288, libc.VaList(bp+944, z1)) } goto abort_due_to_error } @@ -77095,7 +77492,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TValueList)(unsafe.Pointer(pRhs)).FpOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 pOut = _out2Prerelease(tls, p, pOp) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6253, __ccgo_fp(_sqlite3VdbeValueListFree)) + _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6317, __ccgo_fp(_sqlite3VdbeValueListFree)) goto _187 /* Opcode: VFilter P1 P2 P3 P4 * ** Synopsis: iplan=r[P3] zplan='P4' @@ -77200,7 +77597,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_module)(unsafe.Pointer(pModule4)).FxColumn})))(tls, *(*uintptr)(unsafe.Pointer(pCur5 + 48)), bp+800, (*TOp)(unsafe.Pointer(pOp)).Fp2) _sqlite3VtabImportErrmsg(tls, p, pVtab4) if (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) rc = (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError } _sqlite3VdbeChangeEncoding(tls, pDest2, int32(encoding)) @@ -77469,7 +77866,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If the function returned an error, throw an exception */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError } _sqlite3VdbeDeleteAuxData(tls, db, p+296, (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FiOp, (*TOp)(unsafe.Pointer(pOp)).Fp1) @@ -77631,7 +78028,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { Xsqlite3_free(tls, z2) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeExec > int32(1) { - z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6263, libc.VaList(bp+944, zTrace)) + z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6327, libc.VaList(bp+944, zTrace)) (*(*func(*libc.TLS, Tu32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*Tsqlite3)(unsafe.Pointer(db)).Ftrace))})))(tls, uint32(SQLITE_TRACE_STMT), (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg, p, z3) _sqlite3DbFree(tls, db, z3) } else { @@ -77698,22 +78095,23 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If we reach this point, it means that execution is finished with ** an error of some kind. */ + goto abort_due_to_error abort_due_to_error: ; if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)<= nProgressLimit && (*Tsqlite3)(unsafe.Pointer(db)).FxProgress != uintptr(0) { @@ -77749,22 +78148,25 @@ vdbe_return: /* Jump to here if a string or blob larger than SQLITE_MAX_LENGTH ** is encountered. */ + goto too_big too_big: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5423, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5487, 0) rc = int32(SQLITE_TOOBIG) goto abort_due_to_error /* Jump to here if a malloc() fails. */ + goto no_mem no_mem: ; _sqlite3OomFault(tls, db) - _sqlite3VdbeError(tls, p, __ccgo_ts+1618, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+1632, 0) rc = int32(SQLITE_NOMEM) goto abort_due_to_error /* Jump to here if the sqlite3_interrupt() API sets the interrupt ** flag. */ + goto abort_due_to_interrupt abort_due_to_interrupt: ; _ = libc.Int32FromInt32(0) @@ -77774,10 +78176,10 @@ abort_due_to_interrupt: } var _azType = [4]uintptr{ - 0: __ccgo_ts + 5580, - 1: __ccgo_ts + 5589, - 2: __ccgo_ts + 5596, - 3: __ccgo_ts + 5602, + 0: __ccgo_ts + 5644, + 1: __ccgo_ts + 5653, + 2: __ccgo_ts + 5660, + 3: __ccgo_ts + 5666, } var _and_logic = [9]uint8{ @@ -77931,16 +78333,16 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr type1 = v1 if type1 < uint32(12) { if type1 == uint32(0) { - v2 = __ccgo_ts + 1634 + v2 = __ccgo_ts + 1648 } else { if type1 == uint32(7) { - v3 = __ccgo_ts + 6301 + v3 = __ccgo_ts + 6365 } else { - v3 = __ccgo_ts + 6306 + v3 = __ccgo_ts + 6370 } v2 = v3 } - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6314, libc.VaList(bp+8, v2)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6378, libc.VaList(bp+8, v2)) rc = int32(SQLITE_ERROR) Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) @@ -77958,10 +78360,10 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr rc = Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) if rc == SQLITE_OK { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6343, libc.VaList(bp+8, iRow)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6407, libc.VaList(bp+8, iRow)) rc = int32(SQLITE_ERROR) } else { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) } } } @@ -78003,15 +78405,15 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, pTab = _sqlite3LocateTable(tls, bp+8, uint32(0), zTable, zDb) if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6363, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6427, libc.VaList(bp+440, zTable)) } if pTab != 0 && !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6393, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6457, libc.VaList(bp+440, zTable)) } if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6429, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6493, libc.VaList(bp+440, zTable)) } if !(pTab != 0) { if (*(*TParse)(unsafe.Pointer(bp + 8))).FzErrMsg != 0 { @@ -78041,7 +78443,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6450, libc.VaList(bp+440, zColumn)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6514, libc.VaList(bp+440, zColumn)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -78068,7 +78470,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, break } if (*(*TsColMap)(unsafe.Pointer(pFKey + 64 + uintptr(j)*16))).FiFrom == iCol { - zFault = __ccgo_ts + 6471 + zFault = __ccgo_ts + 6535 } goto _3 _3: @@ -78093,7 +78495,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } /* FIXME: Be smarter about indexes that use expressions */ if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == iCol || int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == -int32(2) { - zFault = __ccgo_ts + 6483 + zFault = __ccgo_ts + 6547 } goto _5 _5: @@ -78107,7 +78509,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if zFault != 0 { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6491, libc.VaList(bp+440, zFault)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6555, libc.VaList(bp+440, zFault)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -78170,6 +78572,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } _sqlite3ParseObjectReset(tls, bp+8) } + goto blob_open_out blob_open_out: ; if rc == SQLITE_OK && int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { @@ -78181,7 +78584,7 @@ blob_open_out: _sqlite3DbFree(tls, db, pBlob) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v7 = __ccgo_ts + 3795 + v7 = __ccgo_ts + 3859 } else { v7 = libc.UintptrFromInt32(0) } @@ -78271,7 +78674,7 @@ func _blobReadWrite(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset in _, _, _, _, _ = db, iKey, p, rc, v p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102190)) + return _sqlite3MisuseError(tls, int32(102671)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -78373,7 +78776,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r _, _, _, _ = db, p, rc, v1 p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102290)) + return _sqlite3MisuseError(tls, int32(102771)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -78387,7 +78790,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r rc = _blobSeekToRow(tls, p, iRow, bp) if rc != SQLITE_OK { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v1 = __ccgo_ts + 3795 + v1 = __ccgo_ts + 3859 } else { v1 = libc.UintptrFromInt32(0) } @@ -82604,25 +83007,25 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema _ = zLegacy _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6525, int32(7)) != 0 { + if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6589, int32(7)) != 0 { return 0 } zLegacy = (*TTable)(unsafe.Pointer(pTab)).FzName - if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6533+7) == 0 { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6552+7) == 0 { + if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6597+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6616+7) == 0 { return int32(1) } if pSchema == uintptr(0) { return 0 } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6066+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6130+7) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6571+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6635+7) == 0 { return int32(1) } } else { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6571+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6635+7) == 0 { return int32(1) } } @@ -82658,28 +83061,29 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema // ** If the name cannot be resolved unambiguously, leave an error message // ** in pParse and return WRC_Abort. Return WRC_Prune on success. // */ -func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol uintptr, pNC uintptr, pExpr uintptr) (r int32) { +func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRight uintptr, pNC uintptr, pExpr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var cnt, cntTab, eNewExprOp, hit, i, iCol, j, nSubquery, op, v5 int32 - var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10 uintptr + var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10 uintptr var hCol, hCol1 Tu8 var v7, v8 uint32 var _ /* bRowid at bp+8 */ int32 var _ /* pFJMatch at bp+0 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10, v5, v7, v8 /* Loop counters */ - cnt = 0 /* Number of matching column names */ - cntTab = 0 /* Number of potential "rowid" matches */ - nSubquery = 0 /* How many levels of subquery */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ - pMatch = uintptr(0) /* The matching pSrcList item */ - pTopNC = pNC /* First namecontext in the list */ - pSchema = uintptr(0) /* Schema of the expression */ - eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ - pTab = uintptr(0) /* A column of pTab */ - *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ - _ = libc.Int32FromInt32(0) /* the name context cannot be NULL. */ - _ = libc.Int32FromInt32(0) /* The Z in X.Y.Z cannot be NULL */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10, v5, v7, v8 /* Loop counters */ + cnt = 0 /* Number of matching column names */ + cntTab = 0 /* Number of potential "rowid" matches */ + nSubquery = 0 /* How many levels of subquery */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ + pMatch = uintptr(0) /* The matching pSrcList item */ + pTopNC = pNC /* First namecontext in the list */ + pSchema = uintptr(0) /* Schema of the expression */ + eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ + pTab = uintptr(0) /* A column of pTab */ + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + zCol = *(*uintptr)(unsafe.Pointer(pRight + 8)) + _ = libc.Int32FromInt32(0) /* the name context cannot be NULL. */ + _ = libc.Int32FromInt32(0) /* The Z in X.Y.Z cannot be NULL */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) /* Initialize the node to no-match */ @@ -82711,7 +83115,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ; i++ } - if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6585, zDb) == 0 { + if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6649, zDb) == 0 { /* This branch is taken when the main database has been renamed ** using SQLITE_DBCONFIG_MAINDBNAME. */ pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema @@ -82813,7 +83217,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TTable)(unsafe.Pointer(pTab)).FpSchema != pSchema { goto _2 } - if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6590) != 0 { + if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6654) != 0 { goto _2 } } @@ -82928,16 +83332,16 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol op = int32((*TParse)(unsafe.Pointer(pParse)).FeTriggerOp) _ = libc.Int32FromInt32(0) if (*TParse)(unsafe.Pointer(pParse)).FbReturning != 0 { - if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0) { + if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0 || _isValidSchemaTableName(tls, zTab, (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab, uintptr(0)) != 0) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = libc.BoolInt32(op != int32(TK_DELETE)) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } } else { - if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6592, zTab) == 0 { + if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6656, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(1) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } else { - if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6596, zTab) == 0 { + if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6660, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = 0 pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } @@ -82946,7 +83350,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UUpsert) != 0 && zTab != uintptr(0) { pUpsert = *(*uintptr)(unsafe.Pointer(pNC + 16)) - if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6600, zTab) == 0 { + if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6664, zTab) == 0 { pTab = (*(*TSrcItem)(unsafe.Pointer((*TUpsert)(unsafe.Pointer(pUpsert)).FpUpsertSrc + 8))).FpTab (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(EXCLUDED_TABLE_NUMBER) } @@ -83068,15 +83472,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol _ = libc.Int32FromInt32(0) pOrig = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(j)*32))).FpExpr if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 && (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6609, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6673, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Win)) != uint32(0) && ((*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 || pNC != pTopNC) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6640, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6704, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if _sqlite3ExprVectorSize(tls, pOrig) != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6677, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6741, 0) return int32(WRC_Abort) } _resolveAlias(tls, pParse, pEList, j, pExpr, nSubquery) @@ -83130,7 +83534,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** a huge amount of legacy SQL that uses it. So for now, we just ** issue a warning. */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6695, libc.VaList(bp+24, zCol)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6759, libc.VaList(bp+24, zCol)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_STRING) libc.Xmemset(tls, pExpr+64, 0, uint64(8)) return int32(WRC_Prune) @@ -83161,7 +83565,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } _extendFJMatch(tls, pParse, bp, pMatch, (*TExpr)(unsafe.Pointer(pExpr)).FiColumn) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_FUNCTION) - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6730 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6794 *(*uintptr)(unsafe.Pointer(pExpr + 32)) = *(*uintptr)(unsafe.Pointer(bp)) cnt = int32(1) goto lookupname_end @@ -83171,18 +83575,22 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } } if cnt == 0 { - v10 = __ccgo_ts + 6739 + v10 = __ccgo_ts + 6803 } else { - v10 = __ccgo_ts + 6754 + v10 = __ccgo_ts + 6818 } zErr = v10 if zDb != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6776, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6840, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) } else { if zTab != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6789, libc.VaList(bp+24, zErr, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6853, libc.VaList(bp+24, zErr, zTab, zCol)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6799, libc.VaList(bp+24, zErr, zCol)) + if cnt == 0 && (*TExpr)(unsafe.Pointer(pRight)).Fflags&uint32(libc.Int32FromInt32(EP_DblQuoted)) != uint32(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6863, libc.VaList(bp+24, zErr, zCol)) + } else { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6924, libc.VaList(bp+24, zErr, zCol)) + } } } _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -83213,10 +83621,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** If a generated column is referenced, set bits for every column ** of the table. */ - if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 && cnt == int32(1) && pMatch != uintptr(0) { - *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + if pMatch != 0 { + if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { + *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + } else { + libc.SetBitFieldPtr16Uint32(pMatch+60+4, libc.Uint32FromInt32(1), 14, 0x4000) + } } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(eNewExprOp) + goto lookupname_end lookupname_end: ; if cnt == int32(1) { @@ -83309,19 +83722,19 @@ func _notValidImpl(tls *libc.TLS, pParse uintptr, pNC uintptr, zMsg uintptr, pEx defer tls.Free(32) var zIn uintptr _ = zIn - zIn = __ccgo_ts + 6806 + zIn = __ccgo_ts + 6931 if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IdxExpr) != 0 { - zIn = __ccgo_ts + 6834 + zIn = __ccgo_ts + 6959 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IsCheck) != 0 { - zIn = __ccgo_ts + 6852 + zIn = __ccgo_ts + 6977 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_GenCol) != 0 { - zIn = __ccgo_ts + 6870 + zIn = __ccgo_ts + 6995 } } } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6888, libc.VaList(bp+8, zMsg, zIn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7013, libc.VaList(bp+8, zMsg, zIn)) if pExpr != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } @@ -83371,8 +83784,8 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { var anRef [8]int32 var auth, i, is_agg, n, nLeft, nRef, nRight, no_such_func, rc, savedAllowFlags, wrong_num_args, v12, v4, v6, v7 int32 var enc Tu8 - var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zColumn, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zColumn, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 + var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 pNC = *(*uintptr)(unsafe.Pointer(pWalker + 40)) _ = libc.Int32FromInt32(0) pParse = (*TNameContext)(unsafe.Pointer(pNC)).FpParse @@ -83497,12 +83910,12 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { zDb = uintptr(0) zTable = uintptr(0) _ = libc.Int32FromInt32(0) - zColumn = *(*uintptr)(unsafe.Pointer(pExpr + 8)) + pRight = pExpr } else { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+6908, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7033, uintptr(0), pExpr) } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_ID) { @@ -83516,14 +83929,13 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { } _ = libc.Int32FromInt32(0) zTable = *(*uintptr)(unsafe.Pointer(pLeft + 8)) - zColumn = *(*uintptr)(unsafe.Pointer(pRight + 8)) _ = libc.Int32FromInt32(0) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameTokenRemap(tls, pParse, pExpr, pRight) _sqlite3RenameTokenRemap(tls, pParse, pExpr+64, pLeft) } } - return _lookupName(tls, pParse, zDb, zTable, zColumn, pNC, pExpr) + return _lookupName(tls, pParse, zDb, zTable, pRight, pNC, pExpr) /* Resolve function names */ fallthrough @@ -83564,7 +83976,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if n == int32(2) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = _exprProbability(tls, (*(*TExprList_item)(unsafe.Pointer(pList + 8 + 1*32))).FpExpr) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6925, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7050, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } } else { @@ -83588,7 +84000,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { auth = _sqlite3AuthCheck(tls, pParse, int32(SQLITE_FUNCTION), uintptr(0), (*TFuncDef)(unsafe.Pointer(pDef)).FzName, uintptr(0)) if auth != SQLITE_OK { if auth == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6989, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7114, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) @@ -83610,7 +84022,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { ** all this. */ _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7025, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7150, uintptr(0), pExpr) } } else { _ = libc.Int32FromInt32(0) /* Must fit in 8 bits */ @@ -83635,29 +84047,29 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if 0 == libc.BoolInt32(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME)) { _ = libc.Int32FromInt32(0) if pDef != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FxValue == uintptr(0) && pWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7053, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7178, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 || is_agg != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 && !(pWin != 0) || is_agg != 0 && pWin != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 { if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 || pWin != 0 { - zType = __ccgo_ts + 7096 + zType = __ccgo_ts + 7221 } else { - zType = __ccgo_ts + 7103 + zType = __ccgo_ts + 7228 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7113, libc.VaList(bp+8, zType, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7238, libc.VaList(bp+8, zType, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ is_agg = 0 } else { if no_such_func != 0 && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7141, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7266, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if wrong_num_args != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7163, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7288, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7207, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7332, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { @@ -83681,7 +84093,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { *(*int32)(unsafe.Pointer(pNC + 40)) &= ^(libc.Int32FromInt32(NC_AllowWin) | v7) } } else { - if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { is_agg = int32(1) } } @@ -83747,21 +84159,23 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { case int32(TK_IN): if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) { nRef = (*TNameContext)(unsafe.Pointer(pNC)).FnRef + _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_SelfRef) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7255, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7380, pExpr, pExpr) } else { _sqlite3WalkSelect(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 32))) } _ = libc.Int32FromInt32(0) if nRef != (*TNameContext)(unsafe.Pointer(pNC)).FnRef { *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 4)) |= uint32(SF_Correlated) } *(*int32)(unsafe.Pointer(pNC + 40)) |= int32(NC_Subquery) } case int32(TK_VARIABLE): _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IsCheck)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7266, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7391, pExpr, pExpr) } case int32(TK_IS): fallthrough @@ -83811,7 +84225,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { nRight = _sqlite3ExprVectorSize(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight) } if nLeft != nRight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6677, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6741, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } break @@ -83939,7 +84353,7 @@ func _resolveOrderByTermToExprList(tls *libc.TLS, pParse uintptr, pSelect uintpt func _resolveOutOfRangeError(tls *libc.TLS, pParse uintptr, zType uintptr, i int32, mx int32, pError uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7277, libc.VaList(bp+8, i, zType, mx)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7402, libc.VaList(bp+8, i, zType, mx)) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pError) } @@ -83974,7 +84388,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7333, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7458, 0) return int32(1) } i = 0 @@ -84013,7 +84427,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } if _sqlite3ExprIsInteger(tls, pE, bp) != 0 { if *(*int32)(unsafe.Pointer(bp)) <= 0 || *(*int32)(unsafe.Pointer(bp)) > (*TExprList)(unsafe.Pointer(pEList)).FnExpr { - _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7367, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) + _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7492, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) return int32(1) } } else { @@ -84086,7 +84500,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r break } if int32(uint32(*(*uint16)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32 + 16 + 4))&0x4>>2)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7373, libc.VaList(bp+16, i+int32(1))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7498, libc.VaList(bp+16, i+int32(1))) return int32(1) } goto _3 @@ -84120,7 +84534,7 @@ func _sqlite3ResolveOrderGroupBy(tls *libc.TLS, pParse uintptr, pSelect uintptr, return 0 } if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7434, libc.VaList(bp+8, zType)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7559, libc.VaList(bp+8, zType)) return int32(1) } pEList = (*TSelect)(unsafe.Pointer(pSelect)).FpEList @@ -84372,6 +84786,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } pItem = (*TSelect)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*104 + _ = libc.Int32FromInt32(0) /* Test of tag-20240424-1*/ if (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FselFlags&uint32(SF_Resolved) == uint32(0) { if pOuterNC != 0 { v3 = (*TNameContext)(unsafe.Pointer(pOuterNC)).FnRef @@ -84444,7 +84859,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { (*(*TNameContext)(unsafe.Pointer(bp))).FncFlags |= int32(NC_UEList) if (*TSelect)(unsafe.Pointer(p)).FpHaving != 0 { if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Aggregate) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7465, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7590, 0) return int32(WRC_Abort) } if _sqlite3ResolveExprNames(tls, bp, (*TSelect)(unsafe.Pointer(p)).FpHaving) != 0 { @@ -84511,7 +84926,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** is not detected until much later, and so we need to go ahead and ** resolve those symbols on the incorrect ORDER BY for consistency. */ - if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7367) != 0 { + if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7492) != 0 { return int32(WRC_Abort) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -84522,7 +84937,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** the GROUP BY clause does not contain aggregate functions. */ if pGroupBy != 0 { - if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7504) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { + if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7629) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(WRC_Abort) } i = 0 @@ -84532,7 +84947,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } if (*TExpr)(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(pItem2)).FpExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7510, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7635, 0) return int32(WRC_Abort) } goto _6 @@ -85563,7 +85978,7 @@ func _codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32 return } if nLeft != _sqlite3ExprVectorSize(tls, pRight) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6677, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6741, 0) return } _ = libc.Int32FromInt32(0) @@ -85648,7 +86063,7 @@ func _sqlite3ExprCheckHeight(tls *libc.TLS, pParse uintptr, nHeight int32) (r in rc = SQLITE_OK mxHeight = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 3*4)) if nHeight > mxHeight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7569, libc.VaList(bp+8, mxHeight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7694, libc.VaList(bp+8, mxHeight)) rc = int32(SQLITE_ERROR) } return rc @@ -85814,11 +86229,12 @@ func _sqlite3ExprSetErrorOffset(tls *libc.TLS, pExpr uintptr, iOfst int32) { // ** appear to be quoted. If the quotes were of the form "..." (double-quotes) // ** then the EP_DblQuoted flag is set on the expression node. // ** -// ** Special case: If op==TK_INTEGER and pToken points to a string that -// ** can be translated into a 32-bit integer, then the token is not -// ** stored in u.zToken. Instead, the integer values is written -// ** into u.iValue and the EP_IntValue flag is set. No extra storage +// ** Special case (tag-20240227-a): If op==TK_INTEGER and pToken points to +// ** a string that can be translated into a 32-bit integer, then the token is +// ** not stored in u.zToken. Instead, the integer values is written +// ** into u.iValue and the EP_IntValue flag is set. No extra storage // ** is allocated to hold the integer text and the dequote flag is ignored. +// ** See also tag-20240227-b. // */ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequote int32) (r uintptr) { bp := tls.Alloc(16) @@ -85832,7 +86248,7 @@ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequ _ = libc.Int32FromInt32(0) if pToken != 0 { if op != int32(TK_INTEGER) || (*TToken)(unsafe.Pointer(pToken)).Fz == uintptr(0) || _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pToken)).Fz, bp) == 0 { - nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) + nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) /* tag-20240227-a */ _ = libc.Int32FromInt32(0) } } @@ -86001,11 +86417,11 @@ func _sqlite3ExprListToValues(tls *libc.TLS, pParse uintptr, nElem int32, pEList } if nExprElem != nElem { if nExprElem > int32(1) { - v2 = __ccgo_ts + 7617 + v2 = __ccgo_ts + 7742 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7619, libc.VaList(bp+8, nExprElem, v2, nElem)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7744, libc.VaList(bp+8, nExprElem, v2, nElem)) break } _ = libc.Int32FromInt32(0) @@ -86055,7 +86471,7 @@ func _sqlite3ExprAnd(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintpt if f&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_InnerON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { _sqlite3ExprDeferredDelete(tls, pParse, pLeft) _sqlite3ExprDeferredDelete(tls, pParse, pRight) - return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1722) + return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1782) } else { return _sqlite3PExpr(tls, pParse, int32(TK_AND), pLeft, pRight) } @@ -86085,7 +86501,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pNew + 52)) = int32(int64((*TToken)(unsafe.Pointer(pToken)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) if pList != 0 && (*TExprList)(unsafe.Pointer(pList)).FnExpr > *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 6*4)) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7663, libc.VaList(bp+8, pToken)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7788, libc.VaList(bp+8, pToken)) } *(*uintptr)(unsafe.Pointer(pNew + 32)) = pList *(*Tu32)(unsafe.Pointer(pNew + 4)) |= uint32(libc.Int32FromInt32(EP_HasFunc)) @@ -86106,7 +86522,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u func _sqlite3ExprOrderByAggregateError(tls *libc.TLS, pParse uintptr, p uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7697, libc.VaList(bp+8, p)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7822, libc.VaList(bp+8, p)) } // C documentation @@ -86185,7 +86601,7 @@ func _sqlite3ExprFunctionUsable(tls *libc.TLS, pParse uintptr, pExpr uintptr, pD ** SQLITE_DBCONFIG_TRUSTED_SCHEMA is off (meaning ** that the schema is possibly tainted). */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7747, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7872, libc.VaList(bp+8, pExpr)) } } } @@ -86242,7 +86658,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n bOk = libc.BoolInt32(0 == _sqlite3Atoi64(tls, z+1, bp, int32(n-uint32(1)), uint8(SQLITE_UTF8))) } if bOk == 0 || *(*Ti64)(unsafe.Pointer(bp)) < int64(1) || *(*Ti64)(unsafe.Pointer(bp)) > int64(*(*int32)(unsafe.Pointer(db + 136 + 9*4))) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7767, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7892, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) return } @@ -86275,7 +86691,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n } (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = x if int32(x) > *(*int32)(unsafe.Pointer(db + 136 + 9*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7810, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7935, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } } @@ -86286,8 +86702,13 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n // ** Recursively delete an expression tree. // */ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { + var pLeft uintptr + _ = pLeft _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) + goto exprDeleteRestart +exprDeleteRestart: + ; _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -86295,9 +86716,6 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)|libc.Int32FromInt32(EP_Leaf)) != libc.Uint32FromInt32(0)) { /* The Expr.x union is never used at the same time as Expr.pRight */ _ = libc.Int32FromInt32(0) - if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { - _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpLeft) - } if (*TExpr)(unsafe.Pointer(p)).FpRight != 0 { _ = libc.Int32FromInt32(0) _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpRight) @@ -86312,6 +86730,17 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { } } } + if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { + pLeft = (*TExpr)(unsafe.Pointer(p)).FpLeft + if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) && !((*TExpr)(unsafe.Pointer(pLeft)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { + /* Avoid unnecessary recursion on unary operators */ + _sqlite3DbNNFreeNN(tls, db, p) + p = pLeft + goto exprDeleteRestart + } else { + _sqlite3ExprDeleteNN(tls, db, pLeft) + } + } } if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { _sqlite3DbNNFreeNN(tls, db, p) @@ -86358,11 +86787,11 @@ func _sqlite3ClearOnOrUsing(tls *libc.TLS, db uintptr, p uintptr) { // ** // ** The pExpr might be deleted immediately on an OOM error. // ** -// ** The deferred delete is (currently) implemented by adding the -// ** pExpr to the pParse->pConstExpr list with a register number of 0. +// ** Return 0 if the delete was successfully deferred. Return non-zero +// ** if the delete happened immediately because of an OOM. // */ -func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) { - _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr) +func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + return libc.BoolInt32(uintptr(0) == _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr)) } // C documentation @@ -86881,16 +87310,20 @@ func _sqlite3SrcListDup(tls *libc.TLS, db uintptr, p uintptr, flags int32) (r ui (*TSrcItem)(unsafe.Pointer(pNewItem)).FiCursor = (*TSrcItem)(unsafe.Pointer(pOldItem)).FiCursor (*TSrcItem)(unsafe.Pointer(pNewItem)).FaddrFillSub = (*TSrcItem)(unsafe.Pointer(pOldItem)).FaddrFillSub (*TSrcItem)(unsafe.Pointer(pNewItem)).FregReturn = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregReturn + (*TSrcItem)(unsafe.Pointer(pNewItem)).FregResult = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregResult if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x2>>1)) != 0 { *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3DbStrDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88))) + } else { + if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { + *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) + } else { + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pNewItem)).Fu1)) = *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pOldItem)).Fu1)) + } } (*TSrcItem)(unsafe.Pointer(pNewItem)).Fu2 = (*TSrcItem)(unsafe.Pointer(pOldItem)).Fu2 if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x100>>8)) != 0 { (*TCteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNewItem + 96)))).FnUse++ } - if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { - *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) - } v4 = (*TSrcItem)(unsafe.Pointer(pOldItem)).FpTab (*TSrcItem)(unsafe.Pointer(pNewItem)).FpTab = v4 pTab = v4 @@ -87156,7 +87589,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, n = v2 } if v3 && (*TIdList)(unsafe.Pointer(pColumns)).FnId != v2 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7833, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7958, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) goto vector_append_error } i = 0 @@ -87192,6 +87625,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, ** the RHS and LHS sizes match during code generation. */ (*TExpr)(unsafe.Pointer(pFirst)).FiTable = (*TIdList)(unsafe.Pointer(pColumns)).FnId } + goto vector_append_error vector_append_error: ; _sqlite3ExprUnmapAndDelete(tls, pParse, pExpr) @@ -87300,7 +87734,7 @@ func _sqlite3ExprListCheckLength(tls *libc.TLS, pParse uintptr, pEList uintptr, _ = mx mx = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 2*4)) if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr > mx { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7863, libc.VaList(bp+8, zObject)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7988, libc.VaList(bp+8, zObject)) } } @@ -87402,10 +87836,10 @@ func _sqlite3SelectWalkFail(tls *libc.TLS, pWalker uintptr, NotUsed uintptr) (r // ** anything else 0 // */ func _sqlite3IsTrueOrFalse(tls *libc.TLS, zIn uintptr) (r Tu32) { - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7886) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8011) == 0 { return uint32(EP_IsTrue) } - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7891) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8016) == 0 { return uint32(EP_IsFalse) } return uint32(0) @@ -87492,6 +87926,52 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { return pExpr } +// C documentation +// +// /* +// ** pExpr is a TK_FUNCTION node. Try to determine whether or not the +// ** function is a constant function. A function is constant if all of +// ** the following are true: +// ** +// ** (1) It is a scalar function (not an aggregate or window function) +// ** (2) It has either the SQLITE_FUNC_CONSTANT or SQLITE_FUNC_SLOCHNG +// ** property. +// ** (3) All of its arguments are constants +// ** +// ** This routine sets pWalker->eCode to 0 if pExpr is not a constant. +// ** It makes no changes to pWalker->eCode if pExpr is constant. In +// ** every case, it returns WRC_Abort. +// ** +// ** Called as a service subroutine from exprNodeIsConstant(). +// */ +func _exprNodeIsConstantFunction(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef, pList, v1 uintptr + var n int32 + var v2 bool + _, _, _, _, _, _ = db, n, pDef, pList, v1, v2 /* The database */ + _ = libc.Int32FromInt32(0) + if v2 = (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)) != uint32(0); !v2 { + v1 = *(*uintptr)(unsafe.Pointer(pExpr + 32)) + pList = v1 + } + if v2 || v1 == uintptr(0) { + n = 0 + } else { + n = (*TExprList)(unsafe.Pointer(pList)).FnExpr + _sqlite3WalkExprList(tls, pWalker, pList) + if int32((*TWalker)(unsafe.Pointer(pWalker)).FeCode) == 0 { + return int32(WRC_Abort) + } + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)|libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG)) == uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) +} + // C documentation // // /* @@ -87521,6 +88001,7 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { // ** malformed schema error. // */ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + _ = libc.Int32FromInt32(0) /* If pWalker->eCode is 2 then any term of the expression that comes from ** the ON or USING clauses of an outer join disqualifies the expression ** from being considered constant. */ @@ -87539,8 +88020,12 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 } return WRC_Continue } else { - (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) - return int32(WRC_Abort) + if (*TWalker)(unsafe.Pointer(pWalker)).FpParse != 0 { + return _exprNodeIsConstantFunction(tls, pWalker, pExpr) + } else { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } } fallthrough case int32(TK_ID): @@ -87567,6 +88052,8 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 case int32(TK_REGISTER): fallthrough case int32(TK_DOT): + fallthrough + case int32(TK_RAISE): (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) return int32(WRC_Abort) case int32(TK_VARIABLE): @@ -87592,14 +88079,14 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 return r } -func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32) { +func _exprIsConst(tls *libc.TLS, pParse uintptr, p uintptr, initFlag int32) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* w at bp+0 */ TWalker (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(initFlag) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) - *(*int32)(unsafe.Pointer(bp + 40)) = iCur _sqlite3WalkExpr(tls, bp, p) return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } @@ -87613,9 +88100,15 @@ func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32 // ** For the purposes of this function, a double-quoted string (ex: "abc") // ** is considered a variable but a single-quoted string (ex: 'abc') is // ** a constant. +// ** +// ** The pParse parameter may be NULL. But if it is NULL, there is no way +// ** to determine if function calls are constant or not, and hence all +// ** function calls will be considered to be non-constant. If pParse is +// ** not NULL, then a function call might be constant, depending on the +// ** function and on its parameters. // */ -func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(1), 0) +func _sqlite3ExprIsConstant(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(1)) } // C documentation @@ -87633,8 +88126,26 @@ func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { // ** can be added to the pParse->pConstExpr list and evaluated once when // ** the prepared statement starts up. See sqlite3ExprCodeRunJustOnce(). // */ -func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(2), 0) +func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(2)) +} + +// C documentation +// +// /* +// ** This routine examines sub-SELECT statements as an expression is being +// ** walked as part of sqlite3ExprIsTableConstant(). Sub-SELECTs are considered +// ** constant as long as they are uncorrelated - meaning that they do not +// ** contain any terms from outer contexts. +// */ +func _exprSelectWalkTableConstant(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if (*TSelect)(unsafe.Pointer(pSelect)).FselFlags&uint32(SF_Correlated) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) } // C documentation @@ -87644,9 +88155,25 @@ func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { // ** for any single row of the table with cursor iCur. In other words, the // ** expression must not refer to any non-deterministic function nor any // ** table other than iCur. +// ** +// ** Consider uncorrelated subqueries to be constants if the bAllowSubq +// ** parameter is true. // */ -func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) { - return _exprIsConst(tls, p, int32(3), iCur) +func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32, bAllowSubq int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(3) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = uintptr(0) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) + if bAllowSubq != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_exprSelectWalkTableConstant) + } else { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) + } + *(*int32)(unsafe.Pointer(bp + 40)) = iCur + _sqlite3WalkExpr(tls, bp, p) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } // C documentation @@ -87666,7 +88193,10 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** // ** (1) pExpr cannot refer to any table other than pSrc->iCursor. // ** -// ** (2) pExpr cannot use subqueries or non-deterministic functions. +// ** (2a) pExpr cannot use subqueries unless the bAllowSubq parameter is +// ** true and the subquery is non-correlated +// ** +// ** (2b) pExpr cannot use non-deterministic functions. // ** // ** (3) pSrc cannot be part of the left operand for a RIGHT JOIN. // ** (Is there some way to relax this constraint?) @@ -87692,7 +88222,7 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** which leads to incorrect answers. See also restriction (9) // ** on push-down. // */ -func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32) (r int32) { +func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32, bAllowSubq int32) (r int32) { var jj int32 var pSrc uintptr _, _ = jj, pSrc @@ -87730,7 +88260,8 @@ func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList jj++ } } - return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor) /* rules (1), (2) */ + /* Rules (1), (2a), and (2b) handled by the following: */ + return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor, bAllowSubq) } // C documentation @@ -87829,7 +88360,7 @@ func _sqlite3ExprIsConstantOrGroupBy(tls *libc.TLS, pParse uintptr, p uintptr, p // */ func _sqlite3ExprIsConstantOrFunction(tls *libc.TLS, p uintptr, isInit Tu8) (r int32) { _ = libc.Int32FromInt32(0) - return _exprIsConst(tls, p, int32(4)+int32(isInit), 0) + return _exprIsConst(tls, uintptr(0), p, int32(4)+int32(isInit)) } // C documentation @@ -87973,13 +88504,13 @@ func _sqlite3ExprNeedsNoAffinityChange(tls *libc.TLS, p uintptr, aff uint8) (r i // ** Return TRUE if the given string is a row-id column name. // */ func _sqlite3IsRowid(tls *libc.TLS, z uintptr) (r int32) { - if _sqlite3StrICmp(tls, z, __ccgo_ts+7897) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8022) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7905) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8030) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7911) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8036) == 0 { return int32(1) } return 0 @@ -87997,9 +88528,9 @@ func _sqlite3RowidAlias(tls *libc.TLS, pTab uintptr) (r uintptr) { var iCol, ii int32 _, _, _ = azOpt, iCol, ii azOpt = [3]uintptr{ - 0: __ccgo_ts + 7897, - 1: __ccgo_ts + 7905, - 2: __ccgo_ts + 7911, + 0: __ccgo_ts + 8022, + 1: __ccgo_ts + 8030, + 2: __ccgo_ts + 8036, } _ = libc.Int32FromInt32(0) ii = 0 @@ -88123,14 +88654,14 @@ func _sqlite3SetHasNullFlag(tls *libc.TLS, v uintptr, iCur int32, regHasNull int // ** The argument is an IN operator with a list (not a subquery) on the // ** right-hand side. Return TRUE if that list is constant. // */ -func _sqlite3InRhsIsConstant(tls *libc.TLS, pIn uintptr) (r int32) { +func _sqlite3InRhsIsConstant(tls *libc.TLS, pParse uintptr, pIn uintptr) (r int32) { var pLHS uintptr var res int32 _, _ = pLHS, res _ = libc.Int32FromInt32(0) pLHS = (*TExpr)(unsafe.Pointer(pIn)).FpLeft (*TExpr)(unsafe.Pointer(pIn)).FpLeft = uintptr(0) - res = _sqlite3ExprIsConstant(tls, pIn) + res = _sqlite3ExprIsConstant(tls, pParse, pIn) (*TExpr)(unsafe.Pointer(pIn)).FpLeft = pLHS return res } @@ -88288,7 +88819,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 iAddr = _sqlite3VdbeAddOp0(tls, v, int32(OP_Once)) _sqlite3OpenTable(tls, pParse, iTab, iDb, pTab, int32(OP_OpenRead)) eType = int32(IN_INDEX_ROWID) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+7915, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+8040, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) _sqlite3VdbeJumpHere(tls, v, iAddr) } else { /* Iterator variable */ affinity_ok = int32(1) @@ -88391,7 +88922,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 if colUsed == libc.Uint64FromInt32(1)<0 so that the new limit is either 1 or 0 */ db = (*TParse)(unsafe.Pointer(pParse)).Fdb - pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1722) + pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1782) if pLimit != 0 { (*TExpr)(unsafe.Pointer(pLimit)).FaffExpr = uint8(SQLITE_AFF_NUMERIC) pLimit = _sqlite3PExpr(tls, pParse, int32(TK_NE), _sqlite3ExprDup(tls, db, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft, 0), pLimit) @@ -88902,7 +89433,7 @@ func _sqlite3CodeSubselect(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int3 (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft = pLimit } else { /* If there is no pre-existing limit add a limit of 1 */ - pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8130) + pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8255) (*TSelect)(unsafe.Pointer(pSel)).FpLimit = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), pLimit, uintptr(0)) } (*TSelect)(unsafe.Pointer(pSel)).FiLimit = 0 @@ -89232,11 +89763,13 @@ func _sqlite3ExprCodeIN(tls *libc.TLS, pParse uintptr, pExpr uintptr, destIfFals } /* Jumps here in order to return true. */ _sqlite3VdbeJumpHere(tls, v, addrTruthOp) + goto sqlite3ExprCodeIN_finished sqlite3ExprCodeIN_finished: ; if rLhs != rLhsOrig { _sqlite3ReleaseTempReg(tls, pParse, rLhs) } + goto sqlite3ExprCodeIN_oom_error sqlite3ExprCodeIN_oom_error: ; _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiMap) @@ -89296,13 +89829,13 @@ func _codeInteger(tls *libc.TLS, pParse uintptr, pExpr uintptr, negFlag int32, i _ = libc.Int32FromInt32(0) c = _sqlite3DecOrHexToI64(tls, z, bp) if c == int32(3) && !(negFlag != 0) || c == int32(2) || negFlag != 0 && *(*Ti64)(unsafe.Pointer(bp)) == int64(-libc.Int32FromInt32(1))-(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<= (*TAggInfo)(unsafe.Pointer(pInfo)).FnFunc { _ = libc.Int32FromInt32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8223, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8348, libc.VaList(bp+160, pExpr)) } else { _ = libc.Int32FromInt32(0) return (*TAggInfo)(unsafe.Pointer(pInfo)).FiFirstReg + (*TAggInfo)(unsafe.Pointer(pInfo)).FnColumn + int32((*TExpr)(unsafe.Pointer(pExpr)).FiAgg) @@ -90102,7 +90630,7 @@ expr_code_doover: if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { return (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FregResult } - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { /* SQL functions can be expensive. So try to avoid running them ** multiple times if we know they always give the same result */ return _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) @@ -90120,7 +90648,7 @@ expr_code_doover: zId = *(*uintptr)(unsafe.Pointer(pExpr + 8)) pDef = _sqlite3FindFunction(tls, db, zId, nFarg, enc, uint8(0)) if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8250, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8375, libc.VaList(bp+160, pExpr)) break } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_INLINE) != uint32(0) && pFarg != uintptr(0) { @@ -90137,7 +90665,7 @@ expr_code_doover: if !(i < nFarg) { break } - if i < int32(32) && _sqlite3ExprIsConstant(tls, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { + if i < int32(32) && _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { constMask |= libc.Uint32FromInt32(1) << i } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_NEEDCOLL) != uint32(0) && !(pColl != 0) { @@ -90234,7 +90762,7 @@ expr_code_doover: _ = libc.Int32FromInt32(0) n1 = _sqlite3ExprVectorSize(tls, pLeft2) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != n1 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7833, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7958, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) } return (*TExpr)(unsafe.Pointer(pLeft2)).FiTable + int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) case int32(TK_IN): @@ -90266,8 +90794,9 @@ expr_code_doover: if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Collate)) != libc.Uint32FromInt32(0)) { /* A TK_COLLATE Expr node without the EP_Collate tag is a so-called ** "SOFT-COLLATE" that is added to constraints that are pushed down - ** from outer queries into sub-queries by the push-down optimization. - ** Clear subtypes as subtypes may not cross a subquery boundary. + ** from outer queries into sub-queries by the WHERE-clause push-down + ** optimization. Clear subtypes as subtypes may not cross a subquery + ** boundary. */ _ = libc.Int32FromInt32(0) _sqlite3ExprCode(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, target) @@ -90302,7 +90831,7 @@ expr_code_doover: _sqlite3VdbeAddOp1(tls, v, int32(OP_RealAffinity), target) } case int32(TK_VECTOR): - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6677, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6741, 0) break /* TK_IF_NULL_ROW Expr nodes are inserted ahead of expressions ** that derive from the right-hand table of a LEFT JOIN. The @@ -90424,7 +90953,7 @@ expr_code_doover: case int32(TK_RAISE): _ = libc.Int32FromInt32(0) if !((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != 0) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8274, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8399, 0) return 0 } if int32((*TExpr)(unsafe.Pointer(pExpr)).FaffExpr) == int32(OE_Abort) { @@ -90548,7 +91077,7 @@ func _sqlite3ExprCodeTemp(tls *libc.TLS, pParse uintptr, pExpr uintptr, pReg uin var r1, r2 int32 _, _ = r1, r2 pExpr = _sqlite3ExprSkipCollateAndLikely(tls, pExpr) - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { *(*int32)(unsafe.Pointer(pReg)) = 0 r2 = _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) } else { @@ -90621,7 +91150,7 @@ func _sqlite3ExprCodeCopy(tls *libc.TLS, pParse uintptr, pExpr uintptr, target i // ** might choose to code the expression at initialization time. // */ func _sqlite3ExprCodeFactorable(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) { - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target) } else { _sqlite3ExprCodeCopy(tls, pParse, pExpr, target) @@ -90692,7 +91221,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ _sqlite3VdbeAddOp2(tls, v, int32(copyOp), j+srcReg-int32(1), target+i) } } else { - if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target+i) } else { inReg = _sqlite3ExprCodeTarget(tls, pParse, pExpr, target+i) @@ -90967,6 +91496,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsTrue)) == uint32(EP_IsTrue) { @@ -91188,6 +91718,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) { @@ -92035,18 +92566,16 @@ func _agginfoPersistExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnColumn && (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } else { _ = libc.Int32FromInt32(0) if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnFunc && (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } @@ -92168,6 +92697,7 @@ func _findOrCreateAggInfoColumn(tls *libc.TLS, pParse uintptr, pAggInfo uintptr, *(*Tu16)(unsafe.Pointer(v4))++ (*TAggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = int16(v3) } + goto fix_up_expr fix_up_expr: ; _ = libc.Int32FromInt32(0) @@ -92615,8 +93145,8 @@ func _sqlite3FirstAvailableRegister(tls *libc.TLS, pParse uintptr, iMin int32) ( func _isAlterableTable(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) - if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6525, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8324, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6589, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8449, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -92635,9 +93165,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, bp := tls.Alloc(48) defer tls.Free(48) (*TParse)(unsafe.Pointer(pParse)).FcolNamesSet = uint8(1) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8352, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8477, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8527, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8652, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) } } @@ -92653,9 +93183,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, func _renameFixQuotes(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8701, libc.VaList(bp+8, zDb, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8826, libc.VaList(bp+8, zDb, zDb)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8848, 0) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8973, 0) } } @@ -92713,7 +93243,7 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName ** in database iDb. If so, this is an error. */ if _sqlite3FindTable(tls, db, zName, zDb) != 0 || _sqlite3FindIndex(tls, db, zName, zDb) != 0 || _sqlite3IsShadowTableOf(tls, db, pTab, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8999, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9124, libc.VaList(bp+8, zName)) goto exit_rename_table } /* Make sure it is not a system table being altered, or a reserved name @@ -92722,11 +93252,11 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { goto exit_rename_table } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9058, zName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9183, zName) { goto exit_rename_table } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9064, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9189, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_rename_table } /* Invoke the authorization callback. */ @@ -92756,21 +93286,21 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName nTabName = _sqlite3Utf8CharLen(tls, zTabName, -int32(1)) /* Rewrite all CREATE TABLE, INDEX, TRIGGER or VIEW statements in ** the schema to use the new table name. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9091, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9216, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) /* Update the tbl_name and name columns of the sqlite_schema table ** as required. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9275, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9400, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) /* If the sqlite_sequence table exists in this database, then update ** it with the new table name. */ - if _sqlite3FindTable(tls, db, __ccgo_ts+9580, zDb) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9596, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if _sqlite3FindTable(tls, db, __ccgo_ts+9705, zDb) != 0 { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9721, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* If the table being renamed is not itself part of the temp database, ** edit view and trigger definitions within the temp database ** as required. */ if iDb != int32(1) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9654, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9779, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) } /* If this is a virtual table, invoke the xRename() function if ** one is defined. The xRename() callback will modify the names @@ -92786,7 +93316,8 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp4(tls, v, int32(OP_VRename), i, 0, 0, pVTab, -int32(11)) } _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+9919, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+10044, 0) + goto exit_rename_table exit_rename_table: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -92802,7 +93333,7 @@ exit_rename_table: func _sqlite3ErrorIfNotEmpty(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zErr uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9932, libc.VaList(bp+8, zErr, zDb, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10057, libc.VaList(bp+8, zErr, zDb, zTab)) } // C documentation @@ -92847,11 +93378,11 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** column must not be NULL. */ if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9970, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10095, 0) return } if (*TTable)(unsafe.Pointer(pNew)).FpIndex != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10002, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10127, 0) return } if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) == 0 { @@ -92869,10 +93400,10 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpFKey != 0 && pDflt != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10029) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10154) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && !(pDflt != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10088) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10213) } /* Ensure the default expression is something that sqlite3ValueFromExpr() ** can handle (i.e. not CURRENT_TIME etc.) @@ -92886,13 +93417,13 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr return } if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10141) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10266) } _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp))) } } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_STORED) != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10187) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10312) } } /* Modify the CREATE TABLE statement. */ @@ -92908,7 +93439,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** have to use printf() to translate between these units: */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10214, libc.VaList(bp+16, zDb, (*(*struct { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10339, libc.VaList(bp+16, zDb, (*(*struct { FaddColOffset int32 FpFKey uintptr FpDfltList uintptr @@ -92936,7 +93467,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterAdd)) /* Verify that constraints are still satisfied */ if (*TTable)(unsafe.Pointer(pNew)).FpCheck != uintptr(0) || int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Strict) != uint32(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10360, libc.VaList(bp+16, zTab, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10485, libc.VaList(bp+16, zTab, zDb)) } } } @@ -92976,12 +93507,12 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { goto exit_begin_add_column } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10713, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10838, 0) goto exit_begin_add_column } /* Make sure this is not an attempt to ALTER a view. */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10747, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10872, 0) goto exit_begin_add_column } if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { @@ -93009,7 +93540,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { nAlloc = (int32((*TTable)(unsafe.Pointer(pNew)).FnCol)-int32(1))/int32(8)*int32(8) + int32(8) _ = libc.Int32FromInt32(0) (*TTable)(unsafe.Pointer(pNew)).FaCol = _sqlite3DbMallocZero(tls, db, uint64(16)*uint64(nAlloc)) - (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10777, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10902, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !((*TTable)(unsafe.Pointer(pNew)).FaCol != 0) || !((*TTable)(unsafe.Pointer(pNew)).FzName != 0) { _ = libc.Int32FromInt32(0) goto exit_begin_add_column @@ -93049,6 +93580,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { FpDfltList uintptr })(unsafe.Pointer(pTab + 64))).FaddColOffset _ = libc.Int32FromInt32(0) + goto exit_begin_add_column exit_begin_add_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -93072,18 +93604,18 @@ func _isRealTable(tls *libc.TLS, pParse uintptr, pTab uintptr, bDrop int32) (r i _, _ = zType, v1 zType = uintptr(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10796 + zType = __ccgo_ts + 10921 } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 10801 + zType = __ccgo_ts + 10926 } if zType != 0 { if bDrop != 0 { - v1 = __ccgo_ts + 10815 + v1 = __ccgo_ts + 10940 } else { - v1 = __ccgo_ts + 10832 + v1 = __ccgo_ts + 10957 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10850, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10975, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -93145,11 +93677,11 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld iCol++ } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10868, libc.VaList(bp+8, pOld)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10993, libc.VaList(bp+8, pOld)) goto exit_rename_column } /* Ensure the schema contains no double-quoted strings */ - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1648, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1662, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1))) /* Do the rename operation using a recursive UPDATE statement that ** uses the sqlite_rename_column() SQL function to compute the new @@ -93162,11 +93694,12 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld } _ = libc.Int32FromInt32(0) bQuote = int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pNew)).Fz))]) & int32(0x80) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10889, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11071, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11014, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11196, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iSchema, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+9919, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+10044, int32(1)) + goto exit_rename_column exit_rename_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -93644,11 +94177,11 @@ func _renameColumnParseError(tls *libc.TLS, pCtx uintptr, zWhen uintptr, pType u zT = Xsqlite3_value_text(tls, pType) zN = Xsqlite3_value_text(tls, pObject) if *(*uint8)(unsafe.Pointer(zWhen)) != 0 { - v1 = __ccgo_ts + 11202 + v1 = __ccgo_ts + 11327 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11204, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) + zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11329, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, zErr) } @@ -93725,8 +94258,8 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin if zSql == uintptr(0) { return int32(SQLITE_NOMEM) } - if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11227, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(116682)) + if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11352, int32(7)) != 0 { + return _sqlite3CorruptError(tls, int32(117285)) } if bTemp != 0 { v1 = int32(1) @@ -93742,7 +94275,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin rc = int32(SQLITE_NOMEM) } if rc == SQLITE_OK && ((*TParse)(unsafe.Pointer(p)).FpNewTable == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewIndex == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewTrigger == uintptr(0)) { - rc = _sqlite3CorruptError(tls, int32(116693)) + rc = _sqlite3CorruptError(tls, int32(117296)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -93781,7 +94314,7 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, ** ALTER TABLE statement was quoted (bQuote==1), then set zNew to ** point to zQuot so that all substitutions are made using the ** quoted version of the new column name. */ - zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11235, libc.VaList(bp+8, zNew)) + zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11360, libc.VaList(bp+8, zNew)) if zQuot == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -93827,11 +94360,11 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, *(*uint8)(unsafe.Pointer(zBuf1 + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn))) = uint8(0) _sqlite3Dequote(tls, zBuf1) if int32(*(*uint8)(unsafe.Pointer((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn)))) == int32('\'') { - v1 = __ccgo_ts + 11202 + v1 = __ccgo_ts + 11327 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11241, libc.VaList(bp+8, zBuf1, v1)) + Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11366, libc.VaList(bp+8, zBuf1, v1)) zReplace = zBuf2 nReplace = uint32(_sqlite3Strlen30(tls, zReplace)) } @@ -94315,6 +94848,7 @@ func _renameColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintp } _ = libc.Int32FromInt32(0) rc = _renameEditSql(tls, context, bp, zSql, zNew, bQuote) + goto renameColumnFunc_done renameColumnFunc_done: ; if rc != SQLITE_OK { @@ -94322,7 +94856,7 @@ renameColumnFunc_done: Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv))) } else { if (*(*TParse)(unsafe.Pointer(bp + 32))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1648, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) + _renameColumnParseError(tls, context, __ccgo_ts+1662, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -94551,7 +95085,7 @@ func _renameTableFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintpt Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv + 3*8))) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1648, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) + _renameColumnParseError(tls, context, __ccgo_ts+1662, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -94813,7 +95347,7 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr pTab = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable if pTab == uintptr(0) || int32((*TTable)(unsafe.Pointer(pTab)).FnCol) == int32(1) || iCol >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { /* This can happen if the sqlite_schema table is corrupt */ - rc = _sqlite3CorruptError(tls, int32(117652)) + rc = _sqlite3CorruptError(tls, int32(118255)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -94831,9 +95365,10 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr (*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz-- } } - zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11246, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) + zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11371, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) Xsqlite3_result_text(tls, context, zNew, -int32(1), uintptr(-libc.Int32FromInt32(1))) Xsqlite3_free(tls, zNew) + goto drop_column_done drop_column_done: ; _renameParseCleanup(tls, bp) @@ -94857,8 +95392,9 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName bp := tls.Alloc(48) defer tls.Free(48) var addr, i, iCol, iColPos, iCur, iDb, iPos, nField, reg, regOut, regRec, v2, v4, v7 int32 + var aff uint8 var db, pPk, pTab, v, zCol, zDb, v1, v3, v5, v8 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, aff, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Database containing pTab ("main" etc.) */ zCol = uintptr(0) /* Index of column zCol in pTab->aCol[] */ /* Look up the table being altered. */ @@ -94887,23 +95423,23 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName } iCol = _sqlite3ColumnIndex(tls, pTab, zCol) if iCol < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10868, libc.VaList(bp+8, pName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10993, libc.VaList(bp+8, pName)) goto exit_drop_column } /* Do not allow the user to drop a PRIMARY KEY column or a column ** constrained by a UNIQUE constraint. */ if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_PRIMKEY)|libc.Int32FromInt32(COLFLAG_UNIQUE)) != 0 { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - v1 = __ccgo_ts + 11253 + v1 = __ccgo_ts + 11378 } else { - v1 = __ccgo_ts + 5589 + v1 = __ccgo_ts + 5653 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11265, libc.VaList(bp+8, v1, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11390, libc.VaList(bp+8, v1, zCol)) goto exit_drop_column } /* Do not allow the number of columns to go to zero */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) <= int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11293, libc.VaList(bp+8, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11418, libc.VaList(bp+8, zCol)) goto exit_drop_column } /* Edit the sqlite_schema table */ @@ -94914,12 +95450,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_ALTER_TABLE), zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol) != 0 { goto exit_drop_column } - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1648, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1662, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1))) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11341, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11466, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterDrop)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11462, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11587, int32(1)) /* Edit rows of table on disk */ if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 && int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { pPk = uintptr(0) @@ -94977,7 +95513,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if i == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regOut) } else { + aff = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity + if int32(aff) == int32(SQLITE_AFF_REAL) { + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = uint8(SQLITE_AFF_NUMERIC) + } _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, i, regOut) + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = aff } nField++ } @@ -95002,6 +95543,7 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iCur, addr+int32(1)) _sqlite3VdbeJumpHere(tls, v, addr) } + goto exit_drop_column exit_drop_column: ; _sqlite3DbFree(tls, db, zCol) @@ -95021,27 +95563,27 @@ var _aAlterTableFuncs = [5]TFuncDef{ 0: { FnArg: int8(9), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11480, + FzName: __ccgo_ts + 11605, }, 1: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11501, + FzName: __ccgo_ts + 11626, }, 2: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11521, + FzName: __ccgo_ts + 11646, }, 3: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11540, + FzName: __ccgo_ts + 11665, }, 4: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11559, + FzName: __ccgo_ts + 11684, }, } @@ -95254,7 +95796,7 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW ** side-effect of the CREATE TABLE statement is to leave the rootpage ** of the new table in register pParse->regRoot. This is important ** because the OpenWrite opcode below will be needing it. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11662, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11787, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) aRoot[i] = uint32((*TParse)(unsafe.Pointer(pParse)).FregRoot) aCreateTbl[i] = uint8(OPFLAG_P2ISREG) } @@ -95265,10 +95807,10 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW aRoot[i] = (*TTable)(unsafe.Pointer(pStat)).Ftnum _sqlite3TableLock(tls, pParse, iDb, aRoot[i], uint8(1), zTab) if zWhere != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11685, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11810, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11715, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11840, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) } else { /* The sqlite_stat[134] table already exists. Delete all rows. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Clear), int32(aRoot[i]), iDb) @@ -95301,15 +95843,15 @@ var _aTable = [3]struct { FzCols uintptr }{ 0: { - FzName: __ccgo_ts + 11582, - FzCols: __ccgo_ts + 11595, + FzName: __ccgo_ts + 11707, + FzCols: __ccgo_ts + 11720, }, 1: { - FzName: __ccgo_ts + 11608, - FzCols: __ccgo_ts + 11621, + FzName: __ccgo_ts + 11733, + FzCols: __ccgo_ts + 11746, }, 2: { - FzName: __ccgo_ts + 11649, + FzName: __ccgo_ts + 11774, }, } @@ -95618,7 +96160,7 @@ func _statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statInitFuncdef = TFuncDef{ FnArg: int8(4), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11733, + FzName: __ccgo_ts + 11858, } func init() { @@ -95772,6 +96314,7 @@ func _sampleInsert(tls *libc.TLS, p uintptr, pNew uintptr, nEqZero int32) { (*TStatAccum)(unsafe.Pointer(p)).FnSample++ /* Zero the first nEqZero entries in the anEq[] array. */ libc.Xmemset(tls, (*TStatSample)(unsafe.Pointer(pSample)).FanEq, 0, uint64(8)*uint64(nEqZero)) + goto find_new_min find_new_min: ; if (*TStatAccum)(unsafe.Pointer(p)).FnSample >= (*TStatAccum)(unsafe.Pointer(p)).FmxSample { @@ -96003,7 +96546,7 @@ func _statPush(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statPushFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(2) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11743, + FzName: __ccgo_ts + 11868, } func init() { @@ -96056,7 +96599,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } else { v1 = (*TStatAccum)(unsafe.Pointer(p)).FnRow } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11753, libc.VaList(bp+72, v1)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11878, libc.VaList(bp+72, v1)) i = 0 for { if !(i < (*TStatAccum)(unsafe.Pointer(p)).FnKeyCol) { @@ -96067,7 +96610,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if iVal == uint64(2) && (*TStatAccum)(unsafe.Pointer(p)).FnRow*uint64(10) <= nDistinct*uint64(11) { iVal = uint64(1) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11758, libc.VaList(bp+72, iVal)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11883, libc.VaList(bp+72, iVal)) _ = libc.Int32FromInt32(0) goto _2 _2: @@ -96108,7 +96651,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if !(i1 < (*TStatAccum)(unsafe.Pointer(p)).FnCol) { break } - Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+11764, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) + Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+11889, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) goto _3 _3: ; @@ -96126,7 +96669,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statGetFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(1) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11770, + FzName: __ccgo_ts + 11895, } func init() { @@ -96148,9 +96691,9 @@ func _callStatGet(tls *libc.TLS, pParse uintptr, regStat int32, iParam int32, re // */ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr, iStatCur int32, iMem int32, iTab int32) { var aGotoChng, db, pColl, pIdx, pPk, pStat1, pX, v, zIdxName uintptr - var addrIsNull, addrNext, addrNextRow, addrRewind, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 + var addrGotoEnd, addrIsNull, addrNext, addrNextRow, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 var needTableCnt, seekOp Tu8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrIsNull, addrNext, addrNextRow, addrRewind, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrGotoEnd, addrIsNull, addrNext, addrNextRow, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Loop counter */ jZeroRows = -int32(1) /* Index of database containing pTab */ needTableCnt = uint8(1) @@ -96194,7 +96737,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Do not gather statistics on views or virtual tables */ return } - if Xsqlite3_strlike(tls, __ccgo_ts+11779, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { + if Xsqlite3_strlike(tls, __ccgo_ts+11904, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { /* Do not gather statistics on system tables */ return } @@ -96211,7 +96754,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint return } (*TTable)(unsafe.Pointer(pStat1)).FzName = pStat1 + 1*104 - libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11582, uint64(13)) + libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11707, uint64(13)) (*TTable)(unsafe.Pointer(pStat1)).FnCol = int16(3) (*TTable)(unsafe.Pointer(pStat1)).FiPKey = int16(-int32(1)) _sqlite3VdbeAddOp4(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Noop), 0, 0, 0, pStat1, -int32(6)) @@ -96265,9 +96808,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* ** Pseudo-code for loop that calls stat_push(): ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() ** goto chng_addr_0; ** ** next_row: @@ -96302,34 +96850,31 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _ = libc.Int32FromInt32(0) _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenRead), iIdxCur, int32((*TIndex)(unsafe.Pointer(pIdx)).Ftnum), iDb) _sqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx) - /* Invoke the stat_init() function. The arguments are: + /* Implementation of the following: ** + ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() + ** goto chng_addr_0; + */ + _ = libc.Int32FromInt32(0) + _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + /* Arguments to stat_init(): ** (1) the number of columns in the index including the rowid ** (or for a WITHOUT ROWID table, the number of PK columns), ** (2) the number of columns in the key without the rowid/pk - ** (3) estimated number of rows in the index, - */ + ** (3) estimated number of rows in the index. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), nCol, regStat+int32(1)) _ = libc.Int32FromInt32(0) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol), regRowid) - if (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0) { - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iIdxCur, regTemp) - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - } else { - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, int32(1)) - } - _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) != uint32(0))) _sqlite3VdbeAddFunctionCall(tls, pParse, 0, regStat+int32(1), regStat, int32(4), uintptr(unsafe.Pointer(&_statInitFuncdef)), 0) - /* Implementation of the following: - ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; - ** regChng = 0 - ** goto next_push_0; - ** - */ + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regChng) addrNextRow = _sqlite3VdbeCurrentAddr(tls, v) if nColTest > 0 { @@ -96441,9 +96986,15 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iIdxCur, addrNextRow) } /* Add the entry to the stat1 table. */ + if (*TIndex)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 { + /* Partial indexes might get a zero-entry in sqlite_stat1. But + ** an empty table is omitted from sqlite_stat1. */ + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + addrGotoEnd = 0 + } _callStatGet(tls, pParse, regStat, STAT_GET_STAT1, regStat1) _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11789, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11914, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP4(tls, v, -int32(1), pStat1, -int32(5)) @@ -96462,6 +97013,11 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint v18 = int32(OP_NotFound) } seekOp = uint8(v18) + /* No STAT4 data is generated if the number of rows is zero */ + if addrGotoEnd == 0 { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Cast), regStat1, int32(SQLITE_AFF_INTEGER)) + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) + } if doOnce != 0 { mxCol = nCol /* Compute the maximum number of columns in any index */ @@ -96516,7 +97072,9 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeJumpHere(tls, v, addrIsNull) } /* End of analysis */ - _sqlite3VdbeJumpHere(tls, v, addrRewind) + if addrGotoEnd != 0 { + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + } goto _13 _13: ; @@ -96530,7 +97088,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint jZeroRows = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regIdxname) _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11789, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11914, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND)) @@ -96605,9 +97163,9 @@ func _analyzeTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr iStatCur = (*TParse)(unsafe.Pointer(pParse)).FnTab *(*int32)(unsafe.Pointer(pParse + 52)) += int32(3) if pOnlyIdx != 0 { - _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11793) + _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11918) } else { - _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11797) + _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11922) } _analyzeOneTable(tls, pParse, pTab, pOnlyIdx, iStatCur, (*TParse)(unsafe.Pointer(pParse)).FnMem+int32(1), (*TParse)(unsafe.Pointer(pParse)).FnTab) _loadAnalysis(tls, pParse, iDb) @@ -96738,7 +97296,7 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, _, _, _, _, _, _ = c, i, sz, v, z, v2 z = zIntArray if z == uintptr(0) { - z = __ccgo_ts + 1648 + z = __ccgo_ts + 1662 } i = 0 for { @@ -96773,17 +97331,17 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 6, 0x40) for *(*uint8)(unsafe.Pointer(z)) != 0 { - if Xsqlite3_strglob(tls, __ccgo_ts+11801, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11926, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 2, 0x4) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11812, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11937, z) == 0 { sz = _sqlite3Atoi(tls, z+uintptr(3)) if sz < int32(2) { sz = int32(2) } (*TIndex)(unsafe.Pointer(pIndex)).FszIdxRow = _sqlite3LogEst(tls, uint64(sz)) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11822, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11947, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 6, 0x40) } } @@ -97167,11 +97725,11 @@ func _loadStat4(tls *libc.TLS, db uintptr, zDb uintptr) (r int32) { rc = SQLITE_OK _ = libc.Int32FromInt32(0) if v2 = (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0); v2 { - v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11608, zDb) + v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11733, zDb) pStat4 = v1 } if v2 && v1 != uintptr(0) && int32((*TTable)(unsafe.Pointer(pStat4)).FeTabType) == TABTYP_NORM { - rc = _loadStatTbl(tls, db, __ccgo_ts+11834, __ccgo_ts+11903, zDb) + rc = _loadStatTbl(tls, db, __ccgo_ts+11959, __ccgo_ts+12028, zDb) } return rc } @@ -97240,10 +97798,10 @@ func _sqlite3AnalysisLoad(tls *libc.TLS, db uintptr, iDb int32) (r int32) { /* Load new statistics out of the sqlite_stat1 table */ (*(*TanalysisInfo)(unsafe.Pointer(bp))).Fdb = db (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName - v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11582, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) + v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11707, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) pStat1 = v3 if v3 != 0 && int32((*TTable)(unsafe.Pointer(pStat1)).FeTabType) == TABTYP_NORM { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+11955, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+12080, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -97357,7 +97915,7 @@ func _resolveAttachExpr(tls *libc.TLS, pName uintptr, pExpr uintptr) (r int32) { // ** database iDb attached to handle db. // */ func _sqlite3DbIsNamed(tls *libc.TLS, db uintptr, iDb int32, zName uintptr) (r int32) { - return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6585, zName) == 0) + return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6649, zName) == 0) } // C documentation @@ -97399,21 +97957,21 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { zFile = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) zName = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if zFile == uintptr(0) { - zFile = __ccgo_ts + 1648 + zFile = __ccgo_ts + 1662 } if zName == uintptr(0) { - zName = __ccgo_ts + 1648 + zName = __ccgo_ts + 1662 } if int32(uint32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x4>>2)) != 0 { /* This is not a real ATTACH. Instead, this routine is being called ** from sqlite3_deserialize() to close database db->init.iDb and ** reopen it as a MemDB */ *(*uintptr)(unsafe.Pointer(bp + 40)) = uintptr(0) - *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+3967) + *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+4031) if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { return } - rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+11996, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) + rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12121, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) if rc == SQLITE_OK { pNewSchema = _sqlite3SchemaGet(tls, db, *(*uintptr)(unsafe.Pointer(bp + 40))) if pNewSchema != 0 { @@ -97444,7 +98002,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { ** * Specified database name already being used. */ if (*Tsqlite3)(unsafe.Pointer(db)).FnDb >= *(*int32)(unsafe.Pointer(db + 136 + 7*4))+int32(2) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+11999, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12124, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) goto attach_error } i = 0 @@ -97454,7 +98012,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } _ = libc.Int32FromInt32(0) if _sqlite3DbIsNamed(tls, db, i, zName) != 0 { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12036, libc.VaList(bp+56, zName)) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12161, libc.VaList(bp+56, zName)) goto attach_error } goto _1 @@ -97503,7 +98061,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FnoSharedCache = uint8(0) if rc == int32(SQLITE_CONSTRAINT) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12066, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12191, 0) } else { if rc == SQLITE_OK { (*TDb)(unsafe.Pointer(pNew)).FpSchema = _sqlite3SchemaGet(tls, db, (*TDb)(unsafe.Pointer(pNew)).FpBt) @@ -97511,7 +98069,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { rc = int32(SQLITE_NOMEM) } else { if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Ffile_format != 0 && int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Fenc) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12095, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12220, 0) rc = int32(SQLITE_ERROR) } } @@ -97557,16 +98115,17 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)<= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12191, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12316, libc.VaList(bp+136, zName)) goto detach_error } if i < int32(2) { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12212, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12337, libc.VaList(bp+136, zName)) goto detach_error } if _sqlite3BtreeTxnState(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != SQLITE_TXN_NONE || _sqlite3BtreeIsInBackup(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != 0 { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12238, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12363, libc.VaList(bp+136, zName)) goto detach_error } /* If any TEMP triggers reference the schema being detached, move those @@ -97648,6 +98207,7 @@ func _detachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*TDb)(unsafe.Pointer(pDb)).FpSchema = uintptr(0) _sqlite3CollapseDatabaseArray(tls, db) return + goto detach_error detach_error: ; Xsqlite3_result_error(tls, context, bp, -int32(1)) @@ -97704,6 +98264,7 @@ func _codeAttach(tls *libc.TLS, pParse uintptr, type1 int32, pFunc uintptr, pAut */ _sqlite3VdbeAddOp1(tls, v, int32(OP_Expire), libc.BoolInt32(type1 == int32(SQLITE_ATTACH))) } + goto attach_end attach_end: ; _sqlite3ExprDelete(tls, db, pFilename) @@ -97725,7 +98286,7 @@ func _sqlite3Detach(tls *libc.TLS, pParse uintptr, pDbname uintptr) { var _detach_func = TFuncDef{ FnArg: int8(1), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12260, + FzName: __ccgo_ts + 12385, } func init() { @@ -97747,7 +98308,7 @@ func _sqlite3Attach(tls *libc.TLS, pParse uintptr, p uintptr, pDbname uintptr, p var _attach_func = TFuncDef{ FnArg: int8(3), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12274, + FzName: __ccgo_ts + 12399, } func init() { @@ -97773,7 +98334,7 @@ func _fixExprCb(tls *libc.TLS, p uintptr, pExpr uintptr) (r int32) { if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer((*TDbFixer)(unsafe.Pointer(pFix)).FpParse)).Fdb)).Finit1.Fbusy != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } else { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12288, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12413, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) return int32(WRC_Abort) } } @@ -97807,7 +98368,7 @@ func _fixSelectCb(tls *libc.TLS, p uintptr, pSelect uintptr) (r int32) { if int32((*TDbFixer)(unsafe.Pointer(pFix)).FbTemp) == 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { if iDb != _sqlite3FindDbName(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12312, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12437, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) return int32(WRC_Abort) } _sqlite3DbFree(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) @@ -98024,7 +98585,7 @@ func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uint // ** user-supplied authorization function returned an illegal value. // */ func _sqliteAuthBadReturnCode(tls *libc.TLS, pParse uintptr) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12358, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12483, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) } @@ -98052,11 +98613,11 @@ func _sqlite3AuthReadCol(tls *libc.TLS, pParse uintptr, zTab uintptr, zCol uintp } rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, int32(SQLITE_READ), zTab, zCol, zDb, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12381, libc.VaList(bp+8, zTab, zCol)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12506, libc.VaList(bp+8, zTab, zCol)) if (*Tsqlite3)(unsafe.Pointer(db)).FnDb > int32(2) || iDb != 0 { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12387, libc.VaList(bp+8, zDb, z)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12512, libc.VaList(bp+8, zDb, z)) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12393, libc.VaList(bp+8, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12518, libc.VaList(bp+8, z)) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != int32(SQLITE_IGNORE) && rc != SQLITE_OK { @@ -98122,7 +98683,7 @@ func _sqlite3AuthRead(tls *libc.TLS, pParse uintptr, pExpr uintptr, pSchema uint _ = libc.Int32FromInt32(0) zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName } else { - zCol = __ccgo_ts + 7905 + zCol = __ccgo_ts + 8030 } } _ = libc.Int32FromInt32(0) @@ -98159,7 +98720,7 @@ func _sqlite3AuthCheck(tls *libc.TLS, pParse uintptr, code int32, zArg1 uintptr, ** parameters can be either NULL or a string. */ rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, code, zArg1, zArg2, zArg3, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12420, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12545, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != SQLITE_OK && rc != int32(SQLITE_IGNORE) { @@ -98594,21 +99155,21 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp if i >= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { /* No match against the official names. But always match "main" ** to schema 0 as a legacy fallback. */ - if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6585) == 0 { + if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6649) == 0 { i = 0 } else { return uintptr(0) } } p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, zName) - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6525, int32(7)) == 0 { + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6589, int32(7)) == 0 { if i == int32(1) { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6552+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6571+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6066+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6533) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6616+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6635+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6130+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6597) } } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6571+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6066) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6635+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6130) } } } @@ -98639,12 +99200,12 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp ; i++ } - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6525, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6571+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6066) + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6589, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6635+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6130) } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6552+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6533) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6616+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6597) } } } @@ -98682,7 +99243,7 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt ** can be an eponymous virtual table. */ if int32((*TParse)(unsafe.Pointer(pParse)).FprepFlags)&int32(SQLITE_PREPARE_NO_VTAB) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 { pMod = _sqlite3HashFind(tls, db+576, zName) - if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12435, int32(7)) == 0 { + if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12560, int32(7)) == 0 { pMod = _sqlite3PragmaVtabRegister(tls, db, zName) } if pMod != 0 && _sqlite3VtabEponymousTableInit(tls, pParse, pMod) != 0 { @@ -98700,15 +99261,15 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt } if p == uintptr(0) { if flags&uint32(LOCATE_VIEW) != 0 { - v1 = __ccgo_ts + 12443 + v1 = __ccgo_ts + 12568 } else { - v1 = __ccgo_ts + 12456 + v1 = __ccgo_ts + 12581 } zMsg = v1 if zDbase != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6789, libc.VaList(bp+8, zMsg, zDbase, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6853, libc.VaList(bp+8, zMsg, zDbase, zName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6799, libc.VaList(bp+8, zMsg, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6924, libc.VaList(bp+8, zMsg, zName)) } } else { _ = libc.Int32FromInt32(0) @@ -98748,12 +99309,12 @@ func _sqlite3LocateTableItem(tls *libc.TLS, pParse uintptr, flags Tu32, p uintpt // ** names into the new preferred names, as appropriate. // */ func _sqlite3PreferredTableName(tls *libc.TLS, zName uintptr) (r uintptr) { - if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6525, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6066+7) == 0 { - return __ccgo_ts + 6571 + if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6589, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6130+7) == 0 { + return __ccgo_ts + 6635 } - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6533+7) == 0 { - return __ccgo_ts + 6552 + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6597+7) == 0 { + return __ccgo_ts + 6616 } } return zName @@ -99299,7 +99860,7 @@ func _sqlite3OpenSchemaTable(tls *libc.TLS, p uintptr, iDb int32) { var v uintptr _ = v v = _sqlite3GetVdbe(tls, p) - _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6066) + _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6130) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_OpenWrite), 0, int32(SCHEMA_ROOT), iDb, int32(5)) if (*TParse)(unsafe.Pointer(p)).FnTab == 0 { (*TParse)(unsafe.Pointer(p)).FnTab = int32(1) @@ -99331,7 +99892,7 @@ func _sqlite3FindDbName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) { } /* "main" is always an acceptable alias for the primary database ** even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME. */ - if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6585, zName) { + if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6649, zName) { break } goto _1 @@ -99390,13 +99951,13 @@ func _sqlite3TwoPartName(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u _ = libc.Int32FromInt32(0) if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12470, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12595, 0) return -int32(1) } *(*uintptr)(unsafe.Pointer(pUnqual)) = pName2 iDb = _sqlite3FindDb(tls, db, pName1) if iDb < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12487, libc.VaList(bp+8, pName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12612, libc.VaList(bp+8, pName1)) return -int32(1) } } else { @@ -99441,12 +100002,12 @@ func _sqlite3CheckObjectName(tls *libc.TLS, pParse uintptr, zName uintptr, zType } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if Xsqlite3_stricmp(tls, zType, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit))) != 0 || Xsqlite3_stricmp(tls, zName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 1*8))) != 0 || Xsqlite3_stricmp(tls, zTblName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 2*8))) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1648, 0) /* corruptSchema() will supply the error */ + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1662, 0) /* corruptSchema() will supply the error */ return int32(SQLITE_ERROR) } } else { - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6525, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12507, libc.VaList(bp+8, zName)) + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6589, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12632, libc.VaList(bp+8, zName)) return int32(SQLITE_ERROR) } } @@ -99662,9 +100223,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Special case: Parsing the sqlite_schema or sqlite_temp_schema schema */ iDb = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6533 + v1 = __ccgo_ts + 6597 } else { - v1 = __ccgo_ts + 6066 + v1 = __ccgo_ts + 6130 } zName = _sqlite3DbStrDup(tls, db, v1) *(*uintptr)(unsafe.Pointer(bp)) = pName1 @@ -99677,7 +100238,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 && (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) && iDb != int32(1) { /* If creating a temp table, the name may not be qualified. Unless ** the database name is "temp" anyway. */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12549, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12674, 0) return } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 { @@ -99693,9 +100254,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui return } if isView != 0 { - v2 = __ccgo_ts + 10796 + v2 = __ccgo_ts + 10921 } else { - v2 = __ccgo_ts + 9058 + v2 = __ccgo_ts + 9183 } if _sqlite3CheckObjectName(tls, pParse, zName, v2, zName) != 0 { goto begin_table_error @@ -99707,9 +100268,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui _ = libc.Int32FromInt32(0) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp == int32(1) { - v3 = __ccgo_ts + 6533 + v3 = __ccgo_ts + 6597 } else { - v3 = __ccgo_ts + 6066 + v3 = __ccgo_ts + 6130 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto begin_table_error @@ -99733,11 +100294,11 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if pTable != 0 { if !(noErr != 0) { if int32((*TTable)(unsafe.Pointer(pTable)).FeTabType) == int32(TABTYP_VIEW) { - v4 = __ccgo_ts + 10796 + v4 = __ccgo_ts + 10921 } else { - v4 = __ccgo_ts + 9058 + v4 = __ccgo_ts + 9183 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12590, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12715, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -99746,7 +100307,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui goto begin_table_error } if _sqlite3FindIndex(tls, db, zName, zDb1) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12611, libc.VaList(bp+16, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12736, libc.VaList(bp+16, zName)) goto begin_table_error } } @@ -99838,6 +100399,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Normal (non-error) return. */ return /* If an error occurs, we jump here */ + goto begin_table_error begin_table_error: ; (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) @@ -99901,7 +100463,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { _, _, _ = db, pHash, pRet db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12646, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12771, 0) } else { _ = libc.Int32FromInt32(0) } @@ -99918,7 +100480,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return } - Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+12680, libc.VaList(bp+8, pParse)) + Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+12805, libc.VaList(bp+8, pParse)) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.FzName = pRet + 196 (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Fop = uint8(TK_RETURNING) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Ftr_tm = uint8(TRIGGER_AFTER) @@ -99966,7 +100528,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok return } if int32((*TTable)(unsafe.Pointer(p)).FnCol)+int32(1) > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12700, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12825, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) return } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -99976,12 +100538,12 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok ** by the parser, we can sometimes end up with a typename that ends ** with "generated always". Check for this case and omit the surplus ** text. */ - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12723, int32(6)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12848, int32(6)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(6) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- } - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12730, int32(9)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12855, int32(9)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(9) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- @@ -100030,7 +100592,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok break } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FhName) == int32(hName) && _sqlite3StrICmp(tls, z, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FzCnName) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12740, libc.VaList(bp+40, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12865, libc.VaList(bp+40, z)) _sqlite3DbFree(tls, db, z) return } @@ -100240,10 +100802,10 @@ func _sqlite3AddDefaultValue(tls *libc.TLS, pParse uintptr, pExpr uintptr, zStar isInit = libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) != int32(1)) pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(p)).FnCol)-int32(1))*16 if !(_sqlite3ExprIsConstantOrFunction(tls, pExpr, uint8(isInit)) != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12766, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12891, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12811, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12936, 0) } else { libc.Xmemset(tls, bp, 0, uint64(72)) (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_SPAN) @@ -100301,7 +100863,7 @@ func _makeColumnPartOfPrimaryKey(tls *libc.TLS, pParse uintptr, pCol uintptr) { p1 = pCol + 14 *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(COLFLAG_PRIMKEY)) if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12852, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12977, 0) } } @@ -100338,7 +100900,7 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError goto primary_key_exit } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasPrimaryKey) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12904, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13029, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto primary_key_exit } *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_HasPrimaryKey) @@ -100397,12 +100959,13 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError _sqlite3HasExplicitNulls(tls, pParse, pList) } else { if autoInc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12945, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13070, 0) } else { _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), pList, onError, uintptr(0), uintptr(0), sortOrder, 0, uint8(SQLITE_IDXTYPE_PRIMARYKEY)) pList = uintptr(0) } } + goto primary_key_exit primary_key_exit: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) @@ -100513,17 +101076,17 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui } pCol = (*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-int32(1))*16 if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) == int32(PARSE_MODE_DECLARE_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13001, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13126, 0) goto generated_done } if int32((*TColumn)(unsafe.Pointer(pCol)).FiDflt) > 0 { goto generated_error } if pType != 0 { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13044, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13169, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { /* no-op */ } else { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13052, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13177, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { eType = uint8(COLFLAG_STORED) } else { goto generated_error @@ -100554,9 +101117,11 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui _sqlite3ColumnSetExpr(tls, pParse, pTab, pCol, pExpr) pExpr = uintptr(0) goto generated_done + goto generated_error generated_error: ; - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13059, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13184, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + goto generated_done generated_done: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -100719,13 +101284,13 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { } n += _identLength(tls, (*TTable)(unsafe.Pointer(p)).FzName) if n < int32(50) { - zSep = __ccgo_ts + 1648 - zSep2 = __ccgo_ts + 13090 - zEnd = __ccgo_ts + 5106 + zSep = __ccgo_ts + 1662 + zSep2 = __ccgo_ts + 13215 + zEnd = __ccgo_ts + 5170 } else { - zSep = __ccgo_ts + 13092 - zSep2 = __ccgo_ts + 13096 - zEnd = __ccgo_ts + 13101 + zSep = __ccgo_ts + 13217 + zSep2 = __ccgo_ts + 13221 + zEnd = __ccgo_ts + 13226 } n += int32(35) + int32(6)*int32((*TTable)(unsafe.Pointer(p)).FnCol) zStmt = _sqlite3DbMallocRaw(tls, uintptr(0), uint64(n)) @@ -100733,7 +101298,7 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { _sqlite3OomFault(tls, db) return uintptr(0) } - Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13104, 0) + Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13229, 0) *(*int32)(unsafe.Pointer(bp)) = _sqlite3Strlen30(tls, zStmt) _identPut(tls, zStmt, bp, (*TTable)(unsafe.Pointer(p)).FzName) v2 = *(*int32)(unsafe.Pointer(bp)) @@ -100763,17 +101328,17 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { i++ pCol += 16 } - Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3795, libc.VaList(bp+16, zEnd)) + Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3859, libc.VaList(bp+16, zEnd)) return zStmt } var _azType1 = [6]uintptr{ - 0: __ccgo_ts + 1648, - 1: __ccgo_ts + 13118, - 2: __ccgo_ts + 13124, - 3: __ccgo_ts + 13129, - 4: __ccgo_ts + 13134, - 5: __ccgo_ts + 13124, + 0: __ccgo_ts + 1662, + 1: __ccgo_ts + 13243, + 2: __ccgo_ts + 13249, + 3: __ccgo_ts + 13254, + 4: __ccgo_ts + 13259, + 5: __ccgo_ts + 13249, } // C documentation @@ -101372,13 +101937,13 @@ func _sqlite3ShadowTableName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr, tabOpts Tu32, pSelect uintptr) { bp := tls.Alloc(112) defer tls.Free(112) - var addrInsLoop, addrTop, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v4, v6, v8 int32 + var addrInsLoop, addrTop, iCsr, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v10, v4, v6, v8 int32 var colFlags Tu32 - var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v5, v7, v9 uintptr - var v10 Ti16 + var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v13, v5, v7, v9 uintptr + var v12 Ti16 var _ /* dest at bp+0 */ TSelectDest - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v4, v5, v6, v7, v8, v9 /* The new table */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iCsr, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v12, v13, v4, v5, v6, v7, v8, v9 /* The new table */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ if pEnd == uintptr(0) && pSelect == uintptr(0) { return } @@ -101400,7 +101965,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if pSelect != 0 || !(int32((*TTable)(unsafe.Pointer(p)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) && (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1648, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1662, 0) return } (*TTable)(unsafe.Pointer(p)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum @@ -101427,9 +101992,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(ii)*16 if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf0>>4)) == COLTYPE_CUSTOM { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_HASTYPE) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13140, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1648))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13265, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1662))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13173, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13298, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } return } else { @@ -101452,11 +102017,11 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* Special processing for WITHOUT ROWID Tables */ if tabOpts&uint32(TF_WithoutRowid) != 0 { if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13200, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13325, 0) return } if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasPrimaryKey) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13250, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13375, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) return } *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) @@ -101503,7 +102068,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ii1++ } if nNG == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13282, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13407, 0) return } } @@ -101537,12 +102102,12 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if int32((*TTable)(unsafe.Pointer(p)).FeTabType) == TABTYP_NORM { /* A regular table */ - zType = __ccgo_ts + 9058 - zType2 = __ccgo_ts + 13326 + zType = __ccgo_ts + 9183 + zType2 = __ccgo_ts + 13451 } else { /* A view */ - zType = __ccgo_ts + 10796 - zType2 = __ccgo_ts + 13332 + zType = __ccgo_ts + 10921 + zType2 = __ccgo_ts + 13457 } /* If this is a CREATE TABLE xx AS SELECT ..., execute the SELECT ** statement to populate the new table. The root-page number for the @@ -101557,29 +102122,31 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** a schema-lock excludes all other database users, the write-lock would ** be redundant. */ - if pSelect != 0 { /* A table that describes the SELECT results */ + if pSelect != 0 { /* Write cursor on the new table */ if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) (*TParse)(unsafe.Pointer(pParse)).FnErr++ return } - v5 = pParse + 56 - *(*int32)(unsafe.Pointer(v5))++ + v5 = pParse + 52 v4 = *(*int32)(unsafe.Pointer(v5)) - regYield = v4 + *(*int32)(unsafe.Pointer(v5))++ + iCsr = v4 v7 = pParse + 56 *(*int32)(unsafe.Pointer(v7))++ v6 = *(*int32)(unsafe.Pointer(v7)) - regRec = v6 + regYield = v6 v9 = pParse + 56 *(*int32)(unsafe.Pointer(v9))++ v8 = *(*int32)(unsafe.Pointer(v9)) - regRowid = v8 - _ = libc.Int32FromInt32(0) + regRec = v8 + v11 = pParse + 56 + *(*int32)(unsafe.Pointer(v11))++ + v10 = *(*int32)(unsafe.Pointer(v11)) + regRowid = v10 _sqlite3MayAbort(tls, pParse) - _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), int32(1), (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) + _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), iCsr, (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_P2ISREG)) - (*TParse)(unsafe.Pointer(pParse)).FnTab = int32(2) addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { @@ -101590,9 +102157,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr return } _ = libc.Int32FromInt32(0) - v10 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol - (*TTable)(unsafe.Pointer(p)).FnNVCol = v10 - (*TTable)(unsafe.Pointer(p)).FnCol = v10 + v12 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol + (*TTable)(unsafe.Pointer(p)).FnNVCol = v12 + (*TTable)(unsafe.Pointer(p)).FnCol = v12 (*TTable)(unsafe.Pointer(p)).FaCol = (*TTable)(unsafe.Pointer(pSelTab)).FaCol (*TTable)(unsafe.Pointer(pSelTab)).FnCol = 0 (*TTable)(unsafe.Pointer(pSelTab)).FaCol = uintptr(0) @@ -101607,33 +102174,33 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr addrInsLoop = _sqlite3VdbeAddOp1(tls, v, int32(OP_Yield), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSDParm) _sqlite3VdbeAddOp3(tls, v, int32(OP_MakeRecord), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst, (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst, regRec) _sqlite3TableAffinity(tls, v, p, 0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), int32(1), regRowid) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), int32(1), regRec, regRowid) + _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iCsr, regRowid) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iCsr, regRec, regRowid) _sqlite3VdbeGoto(tls, v, addrInsLoop) _sqlite3VdbeJumpHere(tls, v, addrInsLoop) - _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), int32(1)) + _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), iCsr) } /* Compute the complete text of the CREATE statement */ if pSelect != 0 { zStmt = _createTableStmt(tls, db, p) } else { if tabOpts != 0 { - v11 = pParse + 288 + v13 = pParse + 288 } else { - v11 = pEnd + v13 = pEnd } - pEnd2 = v11 + pEnd2 = v13 n = int32(int64((*TToken)(unsafe.Pointer(pEnd2)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) if int32(*(*uint8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pEnd2)).Fz))) != int32(';') { n = int32(uint32(n) + (*TToken)(unsafe.Pointer(pEnd2)).Fn) } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13337, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13462, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) } /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13352, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13477, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) _sqlite3DbFree(tls, db, zStmt) _sqlite3ChangeCookie(tls, pParse, iDb) /* Check to see if we need to create an sqlite_sequence table for @@ -101643,17 +102210,16 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 _ = libc.Int32FromInt32(0) if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).FpSeqTab == uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13450, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13575, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) } } /* Reparse everything to update our internal data structures */ - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13492, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13617, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) /* Test for cycles in generated columns and illegal expressions ** in CHECK constraints and in DEFAULT clauses. */ if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasGenerated) != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13526, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(0x0001), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13651, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13547, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } /* Add the table to the in-memory representation of the database. */ @@ -101673,7 +102239,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** then record a pointer to this table in the main database structure ** so that INSERT can find the table easily. */ _ = libc.Int32FromInt32(0) - if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9580) == 0 { + if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9705) == 0 { _ = libc.Int32FromInt32(0) (*TSchema)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FpSchema)).FpSeqTab = p } @@ -101708,7 +102274,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*uintptr)(unsafe.Pointer(bp + 112)) = uintptr(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if int32((*TParse)(unsafe.Pointer(pParse)).FnVar) > 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13579, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13672, 0) goto create_view_fail } _sqlite3StartTable(tls, pParse, pName1, pName2, isTemp, int32(1), 0, noErr) @@ -101725,7 +102291,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(TF_NoVisibleRowid) /* Never allow rowid in view */ _sqlite3TwoPartName(tls, pParse, pName1, pName2, bp+112) iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(p)).FpSchema) - _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+10796, *(*uintptr)(unsafe.Pointer(bp + 112))) + _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+10921, *(*uintptr)(unsafe.Pointer(bp + 112))) if _sqlite3FixSelect(tls, bp+16, pSelect) != 0 { goto create_view_fail } @@ -101769,6 +102335,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui (*(*TToken)(unsafe.Pointer(bp))).Fn = uint32(1) /* Use sqlite3EndTable() to add the view to the schema table */ _sqlite3EndTable(tls, pParse, uintptr(0), bp, uint32(0), uintptr(0)) + goto create_view_fail create_view_fail: ; _sqlite3SelectDelete(tls, db, pSelect) @@ -101824,7 +102391,7 @@ func _viewGetColumnNames(tls *libc.TLS, pParse uintptr, pTable uintptr) (r int32 ** SELECT * FROM temp.ex1; */ if int32((*TTable)(unsafe.Pointer(pTable)).FnCol) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13615, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13708, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) return int32(1) } _ = libc.Int32FromInt32(0) @@ -102016,7 +102583,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { v = _sqlite3GetVdbe(tls, pParse) r1 = _sqlite3GetTempReg(tls, pParse) if iTable < int32(2) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13645, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13738, 0) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Destroy), iTable, r1, iDb) _sqlite3MayAbort(tls, pParse) @@ -102029,7 +102596,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { ** is in register NNN. See grammar rules associated with the TK_REGISTER ** token for additional information. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13660, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13753, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) _sqlite3ReleaseTempReg(tls, pParse, r1) } @@ -102114,9 +102681,9 @@ func _sqlite3ClearStatTables(tls *libc.TLS, pParse uintptr, iDb int32, zType uin if !(i <= int32(4)) { break } - Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13727, libc.VaList(bp+32, i)) + Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13820, libc.VaList(bp+32, i)) if _sqlite3FindTable(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, bp, zDbName) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11685, libc.VaList(bp+32, zDbName, bp, zType, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11810, libc.VaList(bp+32, zDbName, bp, zType, zName)) } goto _1 _1: @@ -102159,7 +102726,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** move as a result of the drop (can happen in auto-vacuum mode). */ if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13741, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13834, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* Drop all entries in the schema table that refer to the ** table. The program name loops through the schema table and deletes @@ -102168,7 +102735,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** created in the temp database that refers to a table in another ** database. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13786, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13879, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !(isView != 0) && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { _destroyTable(tls, pParse, pTab) } @@ -102203,11 +102770,11 @@ func _sqlite3ReadOnlyShadowTables(tls *libc.TLS, db uintptr) (r int32) { // ** Return true if it is not allowed to drop the given table // */ func _tableMayNotBeDropped(tls *libc.TLS, db uintptr, pTab uintptr) (r int32) { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6525, int32(7)) == 0 { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3418, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6589, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3482, int32(4)) == 0 { return 0 } - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7266, int32(10)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7391, int32(10)) == 0 { return 0 } return int32(1) @@ -102266,9 +102833,9 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6533 + v1 = __ccgo_ts + 6597 } else { - v1 = __ccgo_ts + 6066 + v1 = __ccgo_ts + 6130 } zTab = v1 zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName @@ -102301,18 +102868,18 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if _tableMayNotBeDropped(tls, db, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13853, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13946, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Ensure DROP TABLE is not used on a view, and DROP VIEW is not used ** on a table. */ if isView != 0 && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13881, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13974, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } if !(isView != 0) && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13915, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14008, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Generate code to remove the table from the schema table @@ -102322,11 +102889,12 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) if !(isView != 0) { - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11797, (*TTable)(unsafe.Pointer(pTab)).FzName) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11922, (*TTable)(unsafe.Pointer(pTab)).FzName) _sqlite3FkDropTable(tls, pParse, pName, pTab) } _sqlite3CodeDropTable(tls, pParse, pTab, iDb, isView) } + goto exit_drop_table exit_drop_table: ; _sqlite3SrcListDelete(tls, db, pName) @@ -102370,13 +102938,13 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p goto fk_end } if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13947, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14040, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) goto fk_end } nCol = int32(1) } else { if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14010, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14103, 0) goto fk_end } else { nCol = (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr @@ -102440,7 +103008,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p j++ } if j >= int32((*TTable)(unsafe.Pointer(p)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14104, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14197, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) goto fk_end } if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { @@ -102495,6 +103063,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p FpDfltList uintptr })(unsafe.Pointer(p + 64))).FpFKey = pFKey pFKey = uintptr(0) + goto fk_end fk_end: ; _sqlite3DbFree(tls, db, pFKey) @@ -102703,11 +103272,11 @@ func _sqlite3HasExplicitNulls(tls *libc.TLS, pParse uintptr, pList uintptr) (r i if int32(uint32(*(*uint16)(unsafe.Pointer(pList + 8 + uintptr(i)*32 + 16 + 4))&0x20>>5)) != 0 { sf = (*(*TExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32))).Ffg.FsortFlags if int32(sf) == 0 || int32(sf) == int32(3) { - v2 = __ccgo_ts + 14150 + v2 = __ccgo_ts + 14243 } else { - v2 = __ccgo_ts + 14156 + v2 = __ccgo_ts + 14249 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14161, libc.VaList(bp+8, v2)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14254, libc.VaList(bp+8, v2)) return int32(1) } goto _1 @@ -102789,7 +103358,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = int32(1) } } - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14189, *(*uintptr)(unsafe.Pointer(bp + 96))) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14282, *(*uintptr)(unsafe.Pointer(bp + 96))) if _sqlite3FixSrcList(tls, bp, pTblName) != 0 { /* Because the parser constructs pTblName from a single identifier, ** sqlite3FixSrcList can never fail. */ @@ -102801,7 +103370,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } if iDb == int32(1) && (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema != (*TTable)(unsafe.Pointer(pTab)).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14195, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14288, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { @@ -102818,16 +103387,16 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 _ = libc.Int32FromInt32(0) - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6525, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14245, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6589, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14338, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14273, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14366, 0) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14298, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14391, 0) goto exit_create_index } /* @@ -102849,19 +103418,19 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } _ = libc.Int32FromInt32(0) - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14189, (*TTable)(unsafe.Pointer(pTab)).FzName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14282, (*TTable)(unsafe.Pointer(pTab)).FzName) { goto exit_create_index } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if !((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0) { if _sqlite3FindTable(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14332, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14425, libc.VaList(bp+136, zName)) goto exit_create_index } } if _sqlite3FindIndex(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { if !(ifNotExist != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14366, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14459, libc.VaList(bp+136, zName)) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -102883,7 +103452,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pLoop = (*TIndex)(unsafe.Pointer(pLoop)).FpNext n++ } - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14390, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14483, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) if zName == uintptr(0) { goto exit_create_index } @@ -102901,9 +103470,9 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { zDb = (*TDb)(unsafe.Pointer(pDb)).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6533 + v2 = __ccgo_ts + 6597 } else { - v2 = __ccgo_ts + 6066 + v2 = __ccgo_ts + 6130 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v2, uintptr(0), zDb) != 0 { goto exit_create_index @@ -102932,7 +103501,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u _ = libc.Int32FromInt32(0) _sqlite3ExprListSetSortOrder(tls, pList, sortOrder, -int32(1)) } else { - _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14189) + _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14282) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { goto exit_create_index } @@ -103022,7 +103591,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pCExpr = _sqlite3ExprSkipCollate(tls, (*TExprList_item)(unsafe.Pointer(pListItem)).FpExpr) if int32((*TExpr)(unsafe.Pointer(pCExpr)).Fop) != int32(TK_COLUMN) { if pTab == (*TParse)(unsafe.Pointer(pParse)).FpNewTable { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14413, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14506, 0) goto exit_create_index } if (*TIndex)(unsafe.Pointer(pIndex)).FaColExpr == uintptr(0) { @@ -103179,7 +103748,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u ** explicitly specified behavior for the index. */ if !(int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) || int32((*TIndex)(unsafe.Pointer(pIndex)).FonError) == int32(OE_Default)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14474, libc.VaList(bp+136, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14567, libc.VaList(bp+136, 0)) } if int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) { (*TIndex)(unsafe.Pointer(pIdx)).FonError = (*TIndex)(unsafe.Pointer(pIndex)).FonError @@ -103212,8 +103781,8 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != uintptr(0) { (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14516, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125123)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14609, 0) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125741)) goto exit_create_index } } @@ -103254,11 +103823,11 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* A named index with an explicit CREATE INDEX statement */ if onError == OE_None { - v13 = __ccgo_ts + 1648 + v13 = __ccgo_ts + 1662 } else { - v13 = __ccgo_ts + 14533 + v13 = __ccgo_ts + 14626 } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14541, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14634, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) } else { /* An automatic index created by a PRIMARY KEY or UNIQUE constraint */ /* zStmt = sqlite3MPrintf(""); */ @@ -103266,7 +103835,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* Add an entry in sqlite_schema for this index */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14561, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14654, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) _sqlite3DbFree(tls, db, zStmt) /* Fill the index with data and reparse the schema. Code an OP_Expire ** to invalidate all pre-compiled statements. @@ -103274,7 +103843,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != 0 { _sqlite3RefillIndex(tls, pParse, pIndex, iMem) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14620, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14713, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Expire), 0, int32(1)) } _sqlite3VdbeJumpHere(tls, v, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum)) @@ -103293,6 +103862,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } } /* Clean up before exiting */ + goto exit_create_index exit_create_index: ; if pIndex != 0 { @@ -103443,7 +104013,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pIndex = _sqlite3FindIndex(tls, db, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzName, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) if pIndex == uintptr(0) { if !(ifExists != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14647, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14740, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) _sqlite3ForceNotReadOnly(tls, pParse) @@ -103452,7 +104022,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in goto exit_drop_index } if int32(uint32(*(*uint16)(unsafe.Pointer(pIndex + 100))&0x3>>0)) != SQLITE_IDXTYPE_APPDEF { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14665, libc.VaList(bp+8, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14758, libc.VaList(bp+8, 0)) goto exit_drop_index } iDb = _sqlite3SchemaToIndex(tls, db, (*TIndex)(unsafe.Pointer(pIndex)).FpSchema) @@ -103460,9 +104030,9 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pTab = (*TIndex)(unsafe.Pointer(pIndex)).FpTable zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6533 + v1 = __ccgo_ts + 6597 } else { - v1 = __ccgo_ts + 6066 + v1 = __ccgo_ts + 6130 } zTab = v1 if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_DELETE), zTab, uintptr(0), zDb) != 0 { @@ -103478,12 +104048,13 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in v = _sqlite3GetVdbe(tls, pParse) if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14738, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11793, (*TIndex)(unsafe.Pointer(pIndex)).FzName) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14831, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11918, (*TIndex)(unsafe.Pointer(pIndex)).FzName) _sqlite3ChangeCookie(tls, pParse, iDb) _destroyRootPage(tls, pParse, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum), iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropIndex), iDb, 0, 0, (*TIndex)(unsafe.Pointer(pIndex)).FzName, 0) } + goto exit_drop_index exit_drop_index: ; _sqlite3SrcListDelete(tls, db, pName) @@ -103675,7 +104246,7 @@ func _sqlite3SrcListEnlarge(tls *libc.TLS, pParse uintptr, pSrc uintptr, nExtra nAlloc = int64(2)*int64((*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) + int64(nExtra) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc+nExtra >= int32(SQLITE_MAX_SRCLIST) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14798, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14891, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) return uintptr(0) } if nAlloc > int64(SQLITE_MAX_SRCLIST) { @@ -103912,11 +104483,11 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa db = (*TParse)(unsafe.Pointer(pParse)).Fdb if !(p != 0) && pOnUsing != uintptr(0) && ((*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 || (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpUsing != 0) { if (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 { - v1 = __ccgo_ts + 14834 + v1 = __ccgo_ts + 14927 } else { - v1 = __ccgo_ts + 14837 + v1 = __ccgo_ts + 14930 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14843, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14936, libc.VaList(bp+8, v1)) goto append_from_error } p = _sqlite3SrcListAppend(tls, pParse, p, pTable, pDatabase) @@ -103959,6 +104530,7 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa } } return p + goto append_from_error append_from_error: ; _ = libc.Int32FromInt32(0) @@ -104132,7 +104704,7 @@ func _sqlite3BeginTransaction(tls *libc.TLS, pParse uintptr, type1 int32) { _ = libc.Int32FromInt32(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb _ = libc.Int32FromInt32(0) - if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14879, uintptr(0), uintptr(0)) != 0 { + if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14972, uintptr(0), uintptr(0)) != 0 { return } v = _sqlite3GetVdbe(tls, pParse) @@ -104182,9 +104754,9 @@ func _sqlite3EndTransaction(tls *libc.TLS, pParse uintptr, eType int32) { _ = libc.Int32FromInt32(0) isRollback = libc.BoolInt32(eType == int32(TK_ROLLBACK)) if isRollback != 0 { - v1 = __ccgo_ts + 14885 + v1 = __ccgo_ts + 14978 } else { - v1 = __ccgo_ts + 14894 + v1 = __ccgo_ts + 14987 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), v1, uintptr(0), uintptr(0)) != 0 { return @@ -104217,9 +104789,9 @@ func _sqlite3Savepoint(tls *libc.TLS, pParse uintptr, op int32, pName uintptr) { } var _az = [3]uintptr{ - 0: __ccgo_ts + 14879, - 1: __ccgo_ts + 14901, - 2: __ccgo_ts + 14885, + 0: __ccgo_ts + 14972, + 1: __ccgo_ts + 14994, + 2: __ccgo_ts + 14978, } // C documentation @@ -104239,7 +104811,7 @@ func _sqlite3OpenTempDatabase(tls *libc.TLS, pParse uintptr) (r int32) { if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt == uintptr(0) && !((*TParse)(unsafe.Pointer(pParse)).Fexplain != 0) { rc = _sqlite3BtreeOpen(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), db, bp, 0, _flags) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14909, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15002, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = rc return int32(1) } @@ -104430,7 +105002,7 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable _sqlite3StrAccumInit(tls, bp, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), 0, *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136))) if (*TIndex)(unsafe.Pointer(pIdx)).FaColExpr != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+14979, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+15072, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) } else { j = 0 for { @@ -104440,10 +105012,10 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx _ = libc.Int32FromInt32(0) zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)))*16))).FzCnName if j != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+14990, int32(2)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+15083, int32(2)) } Xsqlite3_str_appendall(tls, bp, (*TTable)(unsafe.Pointer(pTab)).FzName) - Xsqlite3_str_append(tls, bp, __ccgo_ts+1661, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+1675, int32(1)) Xsqlite3_str_appendall(tls, bp, zCol) goto _1 _1: @@ -104472,10 +105044,10 @@ func _sqlite3RowidConstraint(tls *libc.TLS, pParse uintptr, onError int32, pTab var zMsg uintptr _, _ = rc, zMsg if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12381, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12506, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(6)< libc.BoolInt32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15109, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15202, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } return 0 } @@ -105604,11 +106176,11 @@ func _sqlite3IsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr, pTrigger ui bp := tls.Alloc(16) defer tls.Free(16) if _tabIsReadOnly(tls, pParse, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15142, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15235, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && (pTrigger == uintptr(0) || (*TTrigger)(unsafe.Pointer(pTrigger)).FbReturning != 0 && (*TTrigger)(unsafe.Pointer(pTrigger)).FpNext == uintptr(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15171, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15264, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -106033,8 +106605,9 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** invoke the callback function. */ if memCnt != 0 { - _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15209) + _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15302) } + goto delete_from_cleanup delete_from_cleanup: ; _sqlite3AuthContextPop(tls, bp+8) @@ -106181,7 +106754,7 @@ func _sqlite3GenerateRowDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, pTri v3 = 0 } _sqlite3VdbeAddOp2(tls, v, int32(OP_Delete), iDataCur, v3) - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11582) { + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11707) { _sqlite3VdbeAppendP4(tls, v, pTab, -int32(5)) } if int32(eMode) != ONEPASS_OFF { @@ -106499,11 +107072,11 @@ func _typeofFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } var _azType2 = [5]uintptr{ - 0: __ccgo_ts + 6306, - 1: __ccgo_ts + 6301, - 2: __ccgo_ts + 8197, - 3: __ccgo_ts + 8192, - 4: __ccgo_ts + 1634, + 0: __ccgo_ts + 6370, + 1: __ccgo_ts + 6365, + 2: __ccgo_ts + 8322, + 3: __ccgo_ts + 8317, + 4: __ccgo_ts + 1648, } // C documentation @@ -106620,7 +107193,7 @@ func _absFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { /* IMP: R-31676-45509 If X is the integer -9223372036854775808 ** then abs(X) throws an integer overflow error since there is no ** equivalent positive 64-bit two complement value. */ - Xsqlite3_result_error(tls, context, __ccgo_ts+15222, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15315, -int32(1)) return } iVal = -iVal @@ -106715,11 +107288,13 @@ func _instrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } Xsqlite3_result_int(tls, context, N) + goto endInstr endInstr: ; Xsqlite3_value_free(tls, pC1) Xsqlite3_value_free(tls, pC2) return + goto endInstrOOM endInstrOOM: ; Xsqlite3_result_error_nomem(tls, context) @@ -106937,7 +107512,7 @@ func _roundFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } *(*float64)(unsafe.Pointer(bp)) = float64(int64(*(*float64)(unsafe.Pointer(bp)) + v1)) } else { - zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15239, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) + zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15332, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) if zBuf == uintptr(0) { Xsqlite3_result_error_nomem(tls, context) return @@ -107521,7 +108096,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { */ nPat = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) if nPat > *(*int32)(unsafe.Pointer(db + 136 + 8*4)) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15245, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15338, -int32(1)) return } if argc == int32(3) { @@ -107533,7 +108108,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { return } if _sqlite3Utf8CharLen(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), -int32(1)) != int32(1) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15278, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15371, -int32(1)) return } escape = _sqlite3Utf8Read(tls, bp+8) @@ -107615,7 +108190,7 @@ func _errlogFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { defer tls.Free(16) _ = argc _ = context - Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) + Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) } // C documentation @@ -107705,17 +108280,17 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_FLOAT): r1 = Xsqlite3_value_double(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15323, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15416, libc.VaList(bp+16, r1)) zVal = Xsqlite3_str_value(tls, pStr) if zVal != 0 { _sqlite3AtoF(tls, zVal, bp, int32((*TStrAccum)(unsafe.Pointer(pStr)).FnChar), uint8(SQLITE_UTF8)) if r1 != *(*float64)(unsafe.Pointer(bp)) { Xsqlite3_str_reset(tls, pStr) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15331, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15424, libc.VaList(bp+16, r1)) } } case int32(SQLITE_INTEGER): - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1404, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1423, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) case int32(SQLITE_BLOB): zBlob = Xsqlite3_value_blob(tls, pValue) nBlob = int64(Xsqlite3_value_bytes(tls, pValue)) @@ -107743,10 +108318,10 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { } case int32(SQLITE_TEXT): zArg = Xsqlite3_value_text(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15339, libc.VaList(bp+16, zArg)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15432, libc.VaList(bp+16, zArg)) default: _ = libc.Int32FromInt32(0) - Xsqlite3_str_append(tls, pStr, __ccgo_ts+1649, int32(4)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+1663, int32(4)) break } } @@ -107985,7 +108560,7 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { var v3 uint32 var _ /* zHex at bp+0 */ uintptr _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, ch, d, nHex, nPass, p, pBlob, zPass, v1, v2, v3, v4, v5, v6 - zPass = __ccgo_ts + 1648 + zPass = __ccgo_ts + 1662 nPass = 0 *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) nHex = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) @@ -108041,10 +108616,12 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { *(*Tu8)(unsafe.Pointer(v6)) = uint8(int32(_sqlite3HexToInt(tls, int32(c)))< 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fapprox != 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fovrfl != 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+15222, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15315, -int32(1)) } else { if !(_sqlite3IsOverflow(tls, (*TSumCtx)(unsafe.Pointer(p)).FrErr) != 0) { Xsqlite3_result_double(tls, context, (*TSumCtx)(unsafe.Pointer(p)).FrSum+(*TSumCtx)(unsafe.Pointer(p)).FrErr) @@ -109070,7 +109647,7 @@ func _groupConcatValue(tls *libc.TLS, context uintptr) { func _sqlite3RegisterPerConnectionBuiltinFunctions(tls *libc.TLS, db uintptr) { var rc int32 _ = rc - rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15347, int32(2)) + rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15440, int32(2)) _ = libc.Int32FromInt32(0) if rc == int32(SQLITE_NOMEM) { _sqlite3OomFault(tls, db) @@ -109100,8 +109677,8 @@ func _sqlite3RegisterLikeFunctions(tls *libc.TLS, db uintptr, caseSensitive int3 if !(nArg <= int32(3)) { break } - _sqlite3CreateFunc(tls, db, __ccgo_ts+15353, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15353, nArg, uint8(SQLITE_UTF8), uint8(0)) + _sqlite3CreateFunc(tls, db, __ccgo_ts+15446, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15446, nArg, uint8(SQLITE_UTF8), uint8(0)) *(*Tu32)(unsafe.Pointer(pDef + 4)) |= uint32(flags) *(*Tu32)(unsafe.Pointer(pDef + 4)) &= uint32(^libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)) goto _1 @@ -109421,562 +109998,562 @@ var _aBuiltinFunc = [110]TFuncDef{ FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_implies_nonnull_row))), - FzName: __ccgo_ts + 15358, + FzName: __ccgo_ts + 15451, }, 1: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_compare))), - FzName: __ccgo_ts + 15378, + FzName: __ccgo_ts + 15471, }, 2: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_implies_expr))), - FzName: __ccgo_ts + 15391, + FzName: __ccgo_ts + 15484, }, 3: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_affinity))), - FzName: __ccgo_ts + 15409, + FzName: __ccgo_ts + 15502, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15418, + FzName: __ccgo_ts + 15511, }, 5: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15426, + FzName: __ccgo_ts + 15519, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15426, + FzName: __ccgo_ts + 15519, }, 7: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15441, + FzName: __ccgo_ts + 15534, }, 8: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15467, + FzName: __ccgo_ts + 15560, }, 9: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15492, + FzName: __ccgo_ts + 15585, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15501, + FzName: __ccgo_ts + 15594, }, 11: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15512, + FzName: __ccgo_ts + 15605, }, 12: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_sqlite_offset))), - FzName: __ccgo_ts + 15519, + FzName: __ccgo_ts + 15612, }, 13: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15533, + FzName: __ccgo_ts + 15626, }, 14: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15533, + FzName: __ccgo_ts + 15626, }, 15: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15539, + FzName: __ccgo_ts + 15632, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15539, + FzName: __ccgo_ts + 15632, }, 17: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15545, + FzName: __ccgo_ts + 15638, }, 18: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15545, + FzName: __ccgo_ts + 15638, }, 19: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15550, + FzName: __ccgo_ts + 15643, }, 20: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15550, + FzName: __ccgo_ts + 15643, }, 21: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15550, + FzName: __ccgo_ts + 15643, }, 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 23: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 24: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 25: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15558, + FzName: __ccgo_ts + 15651, }, 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15565, + FzName: __ccgo_ts + 15658, }, 27: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_LENGTH)), - FzName: __ccgo_ts + 15573, + FzName: __ccgo_ts + 15666, }, 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_BYTELEN)), - FzName: __ccgo_ts + 15580, + FzName: __ccgo_ts + 15673, }, 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15593, + FzName: __ccgo_ts + 15686, }, 30: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15599, + FzName: __ccgo_ts + 15692, }, 31: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15606, + FzName: __ccgo_ts + 15699, }, 32: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15613, + FzName: __ccgo_ts + 15706, }, 33: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15621, + FzName: __ccgo_ts + 15714, }, 34: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15626, + FzName: __ccgo_ts + 15719, }, 35: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15630, + FzName: __ccgo_ts + 15723, }, 36: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15630, + FzName: __ccgo_ts + 15723, }, 37: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15636, + FzName: __ccgo_ts + 15729, }, 38: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15642, + FzName: __ccgo_ts + 15735, }, 39: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15648, + FzName: __ccgo_ts + 15741, }, 40: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15652, + FzName: __ccgo_ts + 15745, }, 41: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15652, + FzName: __ccgo_ts + 15745, }, 42: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15658, + FzName: __ccgo_ts + 15751, }, 43: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15658, + FzName: __ccgo_ts + 15751, }, 44: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15665, + FzName: __ccgo_ts + 15758, }, 45: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15665, + FzName: __ccgo_ts + 15758, }, 46: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15665, + FzName: __ccgo_ts + 15758, }, 47: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15675, + FzName: __ccgo_ts + 15768, }, 48: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15682, + FzName: __ccgo_ts + 15775, }, 49: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15689, + FzName: __ccgo_ts + 15782, }, 50: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15700, + FzName: __ccgo_ts + 15793, }, 51: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15707, + FzName: __ccgo_ts + 15800, }, 52: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15722, + FzName: __ccgo_ts + 15815, }, 53: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15739, + FzName: __ccgo_ts + 15832, }, 54: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15750, + FzName: __ccgo_ts + 15843, }, 55: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15756, + FzName: __ccgo_ts + 15849, }, 56: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15774, + FzName: __ccgo_ts + 15867, }, 57: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15782, + FzName: __ccgo_ts + 15875, }, 58: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15796, + FzName: __ccgo_ts + 15889, }, 59: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15804, + FzName: __ccgo_ts + 15897, }, 60: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15813, + FzName: __ccgo_ts + 15906, }, 61: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15813, + FzName: __ccgo_ts + 15906, }, 62: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15820, + FzName: __ccgo_ts + 15913, }, 63: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15820, + FzName: __ccgo_ts + 15913, }, 64: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15830, + FzName: __ccgo_ts + 15923, }, 65: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15834, + FzName: __ccgo_ts + 15927, }, 66: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15840, + FzName: __ccgo_ts + 15933, }, 67: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_COUNT) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15844, + FzName: __ccgo_ts + 15937, }, 68: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15844, + FzName: __ccgo_ts + 15937, }, 69: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15850, + FzName: __ccgo_ts + 15943, }, 70: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15850, + FzName: __ccgo_ts + 15943, }, 71: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15863, + FzName: __ccgo_ts + 15956, }, 72: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE) | libc.Int32FromInt32(SQLITE_FUNC_CASE)), FpUserData: uintptr(unsafe.Pointer(&_globInfo)), - FzName: __ccgo_ts + 15874, + FzName: __ccgo_ts + 15967, }, 73: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15353, + FzName: __ccgo_ts + 15446, }, 74: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15353, + FzName: __ccgo_ts + 15446, }, 75: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6730, + FzName: __ccgo_ts + 6794, }, 76: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6730, + FzName: __ccgo_ts + 6794, }, 77: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15879, + FzName: __ccgo_ts + 15972, }, 78: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15884, + FzName: __ccgo_ts + 1235, }, 79: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15892, + FzName: __ccgo_ts + 1243, }, 80: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15898, + FzName: __ccgo_ts + 15977, }, 81: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15904, + FzName: __ccgo_ts + 15983, }, 82: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15907, + FzName: __ccgo_ts + 15986, }, 83: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15911, + FzName: __ccgo_ts + 15990, }, 84: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15917, + FzName: __ccgo_ts + 15996, }, 85: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15907, + FzName: __ccgo_ts + 15986, }, 86: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15922, + FzName: __ccgo_ts + 16001, }, 87: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15926, + FzName: __ccgo_ts + 16005, }, 88: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15930, + FzName: __ccgo_ts + 16009, }, 89: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15936, + FzName: __ccgo_ts + 16015, }, 90: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15940, + FzName: __ccgo_ts + 16019, }, 91: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15945, + FzName: __ccgo_ts + 16024, }, 92: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15950, + FzName: __ccgo_ts + 16029, }, 93: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15955, + FzName: __ccgo_ts + 16034, }, 94: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15961, + FzName: __ccgo_ts + 16040, }, 95: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15965, + FzName: __ccgo_ts + 16044, }, 96: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15969, + FzName: __ccgo_ts + 16048, }, 97: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15973, + FzName: __ccgo_ts + 16052, }, 98: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15978, + FzName: __ccgo_ts + 16057, }, 99: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15983, + FzName: __ccgo_ts + 16062, }, 100: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15988, + FzName: __ccgo_ts + 16067, }, 101: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15994, + FzName: __ccgo_ts + 16073, }, 102: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16000, + FzName: __ccgo_ts + 16079, }, 103: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16006, + FzName: __ccgo_ts + 16085, }, 104: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16011, + FzName: __ccgo_ts + 16090, }, 105: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16019, + FzName: __ccgo_ts + 16098, }, 106: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16027, + FzName: __ccgo_ts + 16106, }, 107: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16030, + FzName: __ccgo_ts + 16109, }, 108: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 6730, + FzName: __ccgo_ts + 6794, }, 109: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_iif))), - FzName: __ccgo_ts + 16035, + FzName: __ccgo_ts + 16114, }, } @@ -110457,7 +111034,7 @@ func _sqlite3FkLocateIndex(tls *libc.TLS, pParse uintptr, pParent uintptr, pFKey } if !(pIdx != 0) { if !((*TParse)(unsafe.Pointer(pParse)).FdisableTriggers != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16039, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16118, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) } _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiCol) return int32(1) @@ -111589,11 +112166,11 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr break } *(*TToken)(unsafe.Pointer(bp + 16)) = TToken{ - Fz: __ccgo_ts + 6596, + Fz: __ccgo_ts + 6660, Fn: uint32(3), } /* Literal "old" token */ *(*TToken)(unsafe.Pointer(bp + 32)) = TToken{ - Fz: __ccgo_ts + 6592, + Fz: __ccgo_ts + 6656, Fn: uint32(3), } /* tFromCol = OLD.tToCol */ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -111660,7 +112237,7 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr nFrom = _sqlite3Strlen30(tls, zFrom) if action == int32(OE_Restrict) { iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5225) + pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5289) if pRaise != 0 { (*TExpr)(unsafe.Pointer(pRaise)).FaffExpr = uint8(OE_Abort) } @@ -112268,7 +112845,7 @@ func _sqlite3ComputeGeneratedColumns(tls *libc.TLS, pParse uintptr, iRegStore in } } if pRedo != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8162, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8287, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) } (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 } @@ -112535,6 +113112,226 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { } } +// C documentation +// +// /* +// ** If argument pVal is a Select object returned by an sqlite3MultiValues() +// ** that was able to use the co-routine optimization, finish coding the +// ** co-routine. +// */ +func _sqlite3MultiValuesEnd(tls *libc.TLS, pParse uintptr, pVal uintptr) { + var pItem uintptr + _ = pItem + if pVal != 0 && (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pVal)).FpSrc)).FnSrc > 0 { + pItem = (*TSelect)(unsafe.Pointer(pVal)).FpSrc + 8 + _sqlite3VdbeEndCoroutine(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn) + _sqlite3VdbeJumpHere(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FaddrFillSub-int32(1)) + } +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are constant. +// */ +func _exprListIsConstant(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + if 0 == _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are both constant and have no affinity. +// */ +func _exprListIsNoAffinity(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + var pExpr uintptr + _, _ = ii, pExpr + if _exprListIsConstant(tls, pParse, pRow) == 0 { + return 0 + } + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + pExpr = (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if 0 != int32(_sqlite3ExprAffinity(tls, pExpr)) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** This function is called by the parser for the second and subsequent +// ** rows of a multi-row VALUES clause. Argument pLeft is the part of +// ** the VALUES clause already parsed, argument pRow is the vector of values +// ** for the new row. The Select object returned represents the complete +// ** VALUES clause, including the new row. +// ** +// ** There are two ways in which this may be achieved - by incremental +// ** coding of a co-routine (the "co-routine" method) or by returning a +// ** Select object equivalent to the following (the "UNION ALL" method): +// ** +// ** "pLeft UNION ALL SELECT pRow" +// ** +// ** If the VALUES clause contains a lot of rows, this compound Select +// ** object may consume a lot of memory. +// ** +// ** When the co-routine method is used, each row that will be returned +// ** by the VALUES clause is coded into part of a co-routine as it is +// ** passed to this function. The returned Select object is equivalent to: +// ** +// ** SELECT * FROM ( +// ** Select object to read co-routine +// ** ) +// ** +// ** The co-routine method is used in most cases. Exceptions are: +// ** +// ** a) If the current statement has a WITH clause. This is to avoid +// ** statements like: +// ** +// ** WITH cte AS ( VALUES('x'), ('y') ... ) +// ** SELECT * FROM cte AS a, cte AS b; +// ** +// ** This will not work, as the co-routine uses a hard-coded register +// ** for its OP_Yield instructions, and so it is not possible for two +// ** cursors to iterate through it concurrently. +// ** +// ** b) The schema is currently being parsed (i.e. the VALUES clause is part +// ** of a schema item like a VIEW or TRIGGER). In this case there is no VM +// ** being generated when parsing is taking place, and so generating +// ** a co-routine is not possible. +// ** +// ** c) There are non-constant expressions in the VALUES clause (e.g. +// ** the VALUES clause is part of a correlated sub-query). +// ** +// ** d) One or more of the values in the first row of the VALUES clause +// ** has an affinity (i.e. is a CAST expression). This causes problems +// ** because the complex rules SQLite uses (see function +// ** sqlite3SubqueryColumnTypes() in select.c) to determine the effective +// ** affinity of such a column for all rows require access to all values in +// ** the column simultaneously. +// */ +func _sqlite3MultiValues(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRow uintptr) (r uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var f, v1 int32 + var p, pRet, pSelect, v, v2 uintptr + var _ /* dest at bp+0 */ TSelectDest + _, _, _, _, _, _, _ = f, p, pRet, pSelect, v, v1, v2 + if (*TParse)(unsafe.Pointer(pParse)).FbHasWith != 0 || (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy != 0 || _exprListIsConstant(tls, pParse, pRow) == 0 || (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 && _exprListIsNoAffinity(tls, pParse, (*TSelect)(unsafe.Pointer(pLeft)).FpEList) == 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { + /* The co-routine method cannot be used. Fall back to UNION ALL. */ + pSelect = uintptr(0) + f = libc.Int32FromInt32(SF_Values) | libc.Int32FromInt32(SF_MultiValue) + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc != 0 { + _sqlite3MultiValuesEnd(tls, pParse, pLeft) + f = int32(SF_Values) + } else { + if (*TSelect)(unsafe.Pointer(pLeft)).FpPrior != 0 { + /* In this case set the SF_MultiValue flag only if it was set on pLeft */ + f = int32(uint32(f) & (*TSelect)(unsafe.Pointer(pLeft)).FselFlags) + } + } + pSelect = _sqlite3SelectNew(tls, pParse, pRow, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(f), uintptr(0)) + *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) + if pSelect != 0 { + (*TSelect)(unsafe.Pointer(pSelect)).Fop = uint8(TK_ALL) + (*TSelect)(unsafe.Pointer(pSelect)).FpPrior = pLeft + pLeft = pSelect + } + } else { + p = uintptr(0) /* SrcItem that reads from co-routine */ + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 { + /* Co-routine has not yet been started and the special Select object + ** that accesses the co-routine has not yet been created. This block + ** does both those things. */ + v = _sqlite3GetVdbe(tls, pParse) + pRet = _sqlite3SelectNew(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) + /* Ensure the database schema has been read. This is to ensure we have + ** the correct text encoding. */ + if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmDbFlags&uint32(DBFLAG_SchemaKnownOk) == uint32(0) { + _sqlite3ReadSchema(tls, pParse) + } + if pRet != 0 { + (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pRet)).FpSrc)).FnSrc = int32(1) + (*TSelect)(unsafe.Pointer(pRet)).FpPrior = (*TSelect)(unsafe.Pointer(pLeft)).FpPrior + (*TSelect)(unsafe.Pointer(pRet)).Fop = (*TSelect)(unsafe.Pointer(pLeft)).Fop + (*TSelect)(unsafe.Pointer(pLeft)).FpPrior = uintptr(0) + (*TSelect)(unsafe.Pointer(pLeft)).Fop = uint8(TK_SELECT) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + p = (*TSelect)(unsafe.Pointer(pRet)).FpSrc + 8 + (*TSrcItem)(unsafe.Pointer(p)).FpSelect = pLeft + libc.SetBitFieldPtr16Uint32(p+60+4, libc.Uint32FromInt32(1), 5, 0x20) + (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + v2 = pParse + 56 + *(*int32)(unsafe.Pointer(v2))++ + v1 = *(*int32)(unsafe.Pointer(v2)) + (*TSrcItem)(unsafe.Pointer(p)).FregReturn = v1 + (*TSrcItem)(unsafe.Pointer(p)).FiCursor = -int32(1) + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1)) = uint32(2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn, 0, (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub) + _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + /* Allocate registers for the output of the co-routine. Do so so + ** that there are two unused registers immediately before those + ** used by the co-routine. This allows the code in sqlite3Insert() + ** to use these registers directly, instead of copying the output + ** of the co-routine to a separate array for processing. */ + (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(3) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpEList)).FnExpr + *(*int32)(unsafe.Pointer(pParse + 56)) += int32(2) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst + *(*Tu32)(unsafe.Pointer(pLeft + 4)) |= uint32(SF_MultiValue) + _sqlite3Select(tls, pParse, pLeft, bp) + (*TSrcItem)(unsafe.Pointer(p)).FregResult = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst + _ = libc.Int32FromInt32(0) + pLeft = pRet + } + } else { + p = (*TSelect)(unsafe.Pointer(pLeft)).FpSrc + 8 + _ = libc.Int32FromInt32(0) + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1))++ + } + if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { + _ = libc.Int32FromInt32(0) + if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p)).FpSelect)).FpEList)).FnExpr != (*TExprList)(unsafe.Pointer(pRow)).FnExpr { + _sqlite3SelectWrongNumTermsError(tls, pParse, (*TSrcItem)(unsafe.Pointer(p)).FpSelect) + } else { + _sqlite3ExprCodeExprList(tls, pParse, pRow, (*TSrcItem)(unsafe.Pointer(p)).FregResult, 0, uint8(0)) + _sqlite3VdbeAddOp1(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Yield), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + } + } + _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pRow) + } + return pLeft +} + // C documentation // // /* @@ -112637,27 +113434,27 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uintptr, pColumn uintptr, onError int32, pUpsert uintptr) { bp := tls.Alloc(160) defer tls.Free(160) - var aRegIdx, db, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, v, v13, v16, v18, v6, v9 uintptr - var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v12, v15, v17, v19, v23, v24, v5, v7, v8 int32 + var aRegIdx, db, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, v, v10, v14, v17, v19, v7 uintptr + var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v13, v16, v18, v20, v24, v25, v5, v6, v8, v9 int32 var appendFlag, bIdListInOrder, useTempTable, withoutRowid Tu8 - var colFlags, v21 Tu32 + var colFlags, v22 Tu32 var _ /* dest at bp+8 */ TSelectDest var _ /* iDataCur at bp+0 */ int32 var _ /* iIdxCur at bp+4 */ int32 var _ /* isReplace at bp+112 */ int32 var _ /* sNC at bp+56 */ TNameContext var _ /* tmask at bp+48 */ int32 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v12, v13, v15, v16, v17, v18, v19, v21, v23, v24, v5, v6, v7, v8, v9 /* Number of columns in the data */ - nHidden = 0 /* Number of hidden columns if TABLE is virtual */ - *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ - *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ - ipkColumn = -int32(1) /* Label for the end of the insertion loop */ - srcTab = 0 /* Data comes from this temporary cursor if >=0 */ - addrInsTop = 0 /* Jump to label "D" */ - addrCont = 0 /* Index of database holding TABLE */ - useTempTable = uint8(0) /* Store SELECT results in intermediate table */ - appendFlag = uint8(0) /* True if IDLIST is in table order */ - pList = uintptr(0) /* Register in which to store next column */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v10, v13, v14, v16, v17, v18, v19, v20, v22, v24, v25, v5, v6, v7, v8, v9 /* Number of columns in the data */ + nHidden = 0 /* Number of hidden columns if TABLE is virtual */ + *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ + *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ + ipkColumn = -int32(1) /* Label for the end of the insertion loop */ + srcTab = 0 /* Data comes from this temporary cursor if >=0 */ + addrInsTop = 0 /* Jump to label "D" */ + addrCont = 0 /* Index of database holding TABLE */ + useTempTable = uint8(0) /* Store SELECT results in intermediate table */ + appendFlag = uint8(0) /* True if IDLIST is in table order */ + pList = uintptr(0) /* Register in which to store next column */ /* Register allocations */ regFromSelect = 0 /* Base register for data coming from SELECT */ regAutoinc = 0 /* Register holding the AUTOINCREMENT counter */ @@ -112804,7 +113601,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _ = libc.Int32FromInt32(0) } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_STORED)|libc.Int32FromInt32(COLFLAG_VIRTUAL)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16084, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16163, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto insert_cleanup } break @@ -112819,7 +113616,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i bIdListInOrder = uint8(0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16125, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16204, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto insert_cleanup } @@ -112836,31 +113633,49 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** co-routine is the common header to the 3rd and 4th templates. */ if pSelect != 0 { /* Result code */ - v6 = pParse + 56 - *(*int32)(unsafe.Pointer(v6))++ - v5 = *(*int32)(unsafe.Pointer(v6)) - regYield = v5 - addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) - _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) - _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) - if bIdListInOrder != 0 { - v7 = regData + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc)).FnSrc == int32(1) && int32(uint32(*(*uint16)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + 60 + 4))&0x20>>5)) != 0 && (*TSelect)(unsafe.Pointer(pSelect)).FpPrior == uintptr(0) { + pItem = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSDParm = (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn + regFromSelect = (*TSrcItem)(unsafe.Pointer(pItem)).FregResult + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FpEList)).FnExpr + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+16236, libc.VaList(bp+128, pItem)) + if bIdListInOrder != 0 && nColumn == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { + regData = regFromSelect + regRowid = regData - int32(1) + if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { + v5 = int32(1) + } else { + v5 = 0 + } + regIns = regRowid - v5 + } } else { - v7 = 0 - } - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v7 - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) - rc = _sqlite3Select(tls, pParse, pSelect, bp+8) - regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst - _ = libc.Int32FromInt32(0) - if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { - goto insert_cleanup + v7 = pParse + 56 + *(*int32)(unsafe.Pointer(v7))++ + v6 = *(*int32)(unsafe.Pointer(v7)) /* Top of the co-routine */ + regYield = v6 + addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) + _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) + if bIdListInOrder != 0 { + v8 = regData + } else { + v8 = 0 + } + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) + rc = _sqlite3Select(tls, pParse, pSelect, bp+8) + regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst + _ = libc.Int32FromInt32(0) + if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { + goto insert_cleanup + } + _ = libc.Int32FromInt32(0) + _sqlite3VdbeEndCoroutine(tls, v, regYield) + _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ + _ = libc.Int32FromInt32(0) + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr } - _ = libc.Int32FromInt32(0) - _sqlite3VdbeEndCoroutine(tls, v, regYield) - _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ - _ = libc.Int32FromInt32(0) - nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr /* Set useTempTable to TRUE if the result of the SELECT statement ** should be written into a temporary table (template 4). Set to ** FALSE if each output row of the SELECT can be written directly into @@ -112874,10 +113689,10 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin useTempTable = uint8(1) } if useTempTable != 0 { /* Label "L" */ - v9 = pParse + 52 - v8 = *(*int32)(unsafe.Pointer(v9)) - *(*int32)(unsafe.Pointer(v9))++ - srcTab = v8 + v10 = pParse + 52 + v9 = *(*int32)(unsafe.Pointer(v10)) + *(*int32)(unsafe.Pointer(v10))++ + srcTab = v9 regRec = _sqlite3GetTempReg(tls, pParse) regTempRowid = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp2(tls, v, int32(OP_OpenEphemeral), srcTab, nColumn) @@ -112919,8 +113734,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { ipkColumn-- } - goto _10 - _10: + goto _11 + _11: ; i-- } @@ -112940,28 +113755,28 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_NOINSERT) != 0 { nHidden++ } - goto _11 - _11: + goto _12 + _12: ; i++ } } if nColumn != int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16157, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16244, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) goto insert_cleanup } } if pColumn != uintptr(0) && nColumn != (*TIdList)(unsafe.Pointer(pColumn)).FnId { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16209, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16296, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) goto insert_cleanup } /* Initialize the count of rows to be inserted */ if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&(uint64(libc.Int32FromInt32(0x00001))<= 0 { /* tag-20191021-001: If the INTEGER PRIMARY KEY is being generated by the ** SELECT, go ahead and copy the value into the rowid slot now, so that @@ -113077,18 +113892,18 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** using excess space. The file format definition requires this extra ** NULL - we cannot optimize further by skipping the column completely */ _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) - goto _20 + goto _21 } - v21 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) - colFlags = v21 - if v21&uint32(COLFLAG_NOINSERT) != uint32(0) { + v22 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) + colFlags = v22 + if v22&uint32(COLFLAG_NOINSERT) != uint32(0) { nHidden++ if colFlags&uint32(COLFLAG_VIRTUAL) != uint32(0) { /* Virtual columns do not participate in OP_MakeRecord. So back up ** iRegStore by one slot to compensate for the iRegStore++ in the ** outer for() loop */ iRegStore-- - goto _20 + goto _21 } else { if colFlags&uint32(COLFLAG_STORED) != uint32(0) { /* Stored columns are computed later. But if there are BEFORE @@ -113098,13 +113913,13 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if *(*int32)(unsafe.Pointer(bp + 48))&int32(TRIGGER_BEFORE) != 0 { _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) } - goto _20 + goto _21 } else { if pColumn == uintptr(0) { /* Hidden columns that are not explicitly named in the INSERT ** get there default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } } } @@ -113116,8 +113931,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if !(j < (*TIdList)(unsafe.Pointer(pColumn)).FnId && *(*int32)(unsafe.Pointer(pColumn + 8 + uintptr(j)*16 + 8)) != i) { break } - goto _22 - _22: + goto _23 + _23: ; j++ } @@ -113125,14 +113940,14 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin /* A column not named in the insert column list gets its ** default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } k = j } else { if nColumn == 0 { /* This is INSERT INTO ... DEFAULT VALUES. Load the default value. */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } else { k = i - nHidden } @@ -113149,16 +113964,16 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin y = _sqlite3ExprCodeTarget(tls, pParse, pX, iRegStore) if y != iRegStore { if (*TExpr)(unsafe.Pointer(pX)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) { - v23 = int32(OP_Copy) + v24 = int32(OP_Copy) } else { - v23 = int32(OP_SCopy) + v24 = int32(OP_SCopy) } - _sqlite3VdbeAddOp2(tls, v, v23, y, iRegStore) + _sqlite3VdbeAddOp2(tls, v, v24, y, iRegStore) } } } - goto _20 - _20: + goto _21 + _21: ; i++ iRegStore++ @@ -113271,11 +114086,11 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VtabMakeWritable(tls, pParse, pTab) _sqlite3VdbeAddOp4(tls, v, int32(OP_VUpdate), int32(1), int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+int32(2), regIns, pVTab, -int32(11)) if onError == int32(OE_Default) { - v24 = int32(OE_Abort) + v25 = int32(OE_Abort) } else { - v24 = onError + v25 = onError } - _sqlite3VdbeChangeP5(tls, v, uint16(v24)) + _sqlite3VdbeChangeP5(tls, v, uint16(v25)) _sqlite3MayAbort(tls, pParse) } else { *(*int32)(unsafe.Pointer(bp + 112)) = 0 /* True to use OPFLAG_SEEKRESULT */ @@ -113318,6 +114133,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VdbeJumpHere(tls, v, addrInsTop) } } + goto insert_end insert_end: ; /* Update the sqlite_sequence table by storing the content of the @@ -113333,8 +114149,9 @@ insert_end: ** invoke the callback function. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16301) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16388) } + goto insert_cleanup insert_cleanup: ; _sqlite3SrcListDelete(tls, db, pTabList) @@ -113731,7 +114548,7 @@ func _sqlite3GenerateConstraintChecks(tls *libc.TLS, pParse uintptr, pTab uintpt case int32(OE_Rollback): fallthrough case int32(OE_Fail): - zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12381, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12506, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) _sqlite3VdbeAddOp3(tls, v, int32(OP_HaltIfNull), libc.Int32FromInt32(SQLITE_CONSTRAINT)|libc.Int32FromInt32(5)<= 0 && !(int32(*(*uint8)(unsafe.Pointer(zFile + uintptr(iFile)))) == libc.Int32FromUint8('/'))) { @@ -116006,7 +116824,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp iFile-- } iFile++ - if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16350, int32(3)) == 0 { + if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16437, int32(3)) == 0 { iFile += int32(3) } iEntry = int32(8) @@ -116026,7 +116844,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp ; iFile++ } - libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16354, uint64(6)) + libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16441, uint64(6)) zEntry = zAltEntry xInit = _sqlite3OsDlSym(tls, pVfs, handle, zEntry) } @@ -116038,7 +116856,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v7 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16360, libc.VaList(bp+16, zEntry, zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16447, libc.VaList(bp+16, zEntry, zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -116053,7 +116871,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp return SQLITE_OK } if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16403, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16490, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3OsDlClose(tls, pVfs, handle) @@ -116074,6 +116892,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*int32)(unsafe.Pointer(v9))++ *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaExtension + uintptr(v8)*8)) = handle return SQLITE_OK + goto extension_not_found extension_not_found: ; if pzErrMsg != 0 { @@ -116083,7 +116902,7 @@ extension_not_found: *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v10 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16435, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16522, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -116092,7 +116911,7 @@ extension_not_found: /* Shared library endings to try if zFile cannot be loaded as written */ var _azEndings = [1]uintptr{ - 0: __ccgo_ts + 16315, + 0: __ccgo_ts + 16402, } func Xsqlite3_load_extension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintptr, pzErrMsg uintptr) (r int32) { @@ -116327,7 +117146,7 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { rc = v2 } if v3 && v2 != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16472, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16559, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) go1 = 0 } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -116381,63 +117200,63 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { // ** result column is different from the name of the pragma // */ var _pragCName = [57]uintptr{ - 0: __ccgo_ts + 5481, - 1: __ccgo_ts + 16511, - 2: __ccgo_ts + 9058, - 3: __ccgo_ts + 16515, - 4: __ccgo_ts + 16520, - 5: __ccgo_ts + 16523, - 6: __ccgo_ts + 16533, - 7: __ccgo_ts + 16543, - 8: __ccgo_ts + 16549, - 9: __ccgo_ts + 16553, - 10: __ccgo_ts + 16558, - 11: __ccgo_ts + 16563, - 12: __ccgo_ts + 16571, - 13: __ccgo_ts + 16582, - 14: __ccgo_ts + 16585, - 15: __ccgo_ts + 16592, - 16: __ccgo_ts + 16553, - 17: __ccgo_ts + 16558, - 18: __ccgo_ts + 16599, - 19: __ccgo_ts + 16604, - 20: __ccgo_ts + 16607, - 21: __ccgo_ts + 16614, - 22: __ccgo_ts + 16549, - 23: __ccgo_ts + 16553, - 24: __ccgo_ts + 16620, - 25: __ccgo_ts + 16625, - 26: __ccgo_ts + 16630, - 27: __ccgo_ts + 16553, - 28: __ccgo_ts + 16634, - 29: __ccgo_ts + 16558, - 30: __ccgo_ts + 16642, - 31: __ccgo_ts + 16646, - 32: __ccgo_ts + 16651, - 33: __ccgo_ts + 11797, - 34: __ccgo_ts + 11793, - 35: __ccgo_ts + 16657, - 36: __ccgo_ts + 16662, - 37: __ccgo_ts + 16667, - 38: __ccgo_ts + 16511, - 39: __ccgo_ts + 16553, - 40: __ccgo_ts + 16672, - 41: __ccgo_ts + 16679, - 42: __ccgo_ts + 16686, - 43: __ccgo_ts + 9058, - 44: __ccgo_ts + 16694, - 45: __ccgo_ts + 5484, - 46: __ccgo_ts + 16700, - 47: __ccgo_ts + 16511, - 48: __ccgo_ts + 16553, - 49: __ccgo_ts + 16705, - 50: __ccgo_ts + 16710, - 51: __ccgo_ts + 15907, - 52: __ccgo_ts + 16715, - 53: __ccgo_ts + 16728, - 54: __ccgo_ts + 16737, - 55: __ccgo_ts + 16744, - 56: __ccgo_ts + 16755, + 0: __ccgo_ts + 5545, + 1: __ccgo_ts + 16598, + 2: __ccgo_ts + 9183, + 3: __ccgo_ts + 16602, + 4: __ccgo_ts + 16607, + 5: __ccgo_ts + 16610, + 6: __ccgo_ts + 16620, + 7: __ccgo_ts + 16630, + 8: __ccgo_ts + 16636, + 9: __ccgo_ts + 16640, + 10: __ccgo_ts + 16645, + 11: __ccgo_ts + 16650, + 12: __ccgo_ts + 16658, + 13: __ccgo_ts + 16669, + 14: __ccgo_ts + 16672, + 15: __ccgo_ts + 16679, + 16: __ccgo_ts + 16640, + 17: __ccgo_ts + 16645, + 18: __ccgo_ts + 16686, + 19: __ccgo_ts + 16691, + 20: __ccgo_ts + 16694, + 21: __ccgo_ts + 16701, + 22: __ccgo_ts + 16636, + 23: __ccgo_ts + 16640, + 24: __ccgo_ts + 16707, + 25: __ccgo_ts + 16712, + 26: __ccgo_ts + 16717, + 27: __ccgo_ts + 16640, + 28: __ccgo_ts + 16721, + 29: __ccgo_ts + 16645, + 30: __ccgo_ts + 16729, + 31: __ccgo_ts + 16733, + 32: __ccgo_ts + 16738, + 33: __ccgo_ts + 11922, + 34: __ccgo_ts + 11918, + 35: __ccgo_ts + 16744, + 36: __ccgo_ts + 16749, + 37: __ccgo_ts + 16754, + 38: __ccgo_ts + 16598, + 39: __ccgo_ts + 16640, + 40: __ccgo_ts + 16759, + 41: __ccgo_ts + 16766, + 42: __ccgo_ts + 16773, + 43: __ccgo_ts + 9183, + 44: __ccgo_ts + 16781, + 45: __ccgo_ts + 5548, + 46: __ccgo_ts + 16787, + 47: __ccgo_ts + 16598, + 48: __ccgo_ts + 16640, + 49: __ccgo_ts + 16792, + 50: __ccgo_ts + 16797, + 51: __ccgo_ts + 15986, + 52: __ccgo_ts + 16802, + 53: __ccgo_ts + 16815, + 54: __ccgo_ts + 16824, + 55: __ccgo_ts + 16831, + 56: __ccgo_ts + 16842, } // C documentation @@ -116456,191 +117275,191 @@ type PragmaName = TPragmaName var _aPragmaName = [66]TPragmaName{ 0: { - FzName: __ccgo_ts + 16763, + FzName: __ccgo_ts + 16850, FePragTyp: uint8(PragTyp_ANALYSIS_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 1: { - FzName: __ccgo_ts + 16778, + FzName: __ccgo_ts + 16865, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_APPLICATION_ID), }, 2: { - FzName: __ccgo_ts + 16793, + FzName: __ccgo_ts + 16880, FePragTyp: uint8(PragTyp_AUTO_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 3: { - FzName: __ccgo_ts + 16805, + FzName: __ccgo_ts + 16892, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_AutoIndex), }, 4: { - FzName: __ccgo_ts + 16821, + FzName: __ccgo_ts + 16908, FePragTyp: uint8(PragTyp_BUSY_TIMEOUT), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(56), FnPragCName: uint8(1), }, 5: { - FzName: __ccgo_ts + 16744, + FzName: __ccgo_ts + 16831, FePragTyp: uint8(PragTyp_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 6: { - FzName: __ccgo_ts + 16834, + FzName: __ccgo_ts + 16921, FePragTyp: uint8(PragTyp_CACHE_SPILL), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 7: { - FzName: __ccgo_ts + 16846, + FzName: __ccgo_ts + 16933, FePragTyp: uint8(PragTyp_CASE_SENSITIVE_LIKE), FmPragFlg: uint8(PragFlg_NoColumns), }, 8: { - FzName: __ccgo_ts + 16866, + FzName: __ccgo_ts + 16953, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CellSizeCk), }, 9: { - FzName: __ccgo_ts + 16882, + FzName: __ccgo_ts + 16969, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CkptFullFSync), }, 10: { - FzName: __ccgo_ts + 16903, + FzName: __ccgo_ts + 16990, FePragTyp: uint8(PragTyp_COLLATION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(38), FnPragCName: uint8(2), }, 11: { - FzName: __ccgo_ts + 16918, + FzName: __ccgo_ts + 17005, FePragTyp: uint8(PragTyp_COMPILE_OPTIONS), FmPragFlg: uint8(PragFlg_Result0), }, 12: { - FzName: __ccgo_ts + 16934, + FzName: __ccgo_ts + 17021, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00001)) << libc.Int32FromInt32(32), }, 13: { - FzName: __ccgo_ts + 16948, + FzName: __ccgo_ts + 17035, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_DATA_VERSION), }, 14: { - FzName: __ccgo_ts + 16961, + FzName: __ccgo_ts + 17048, FePragTyp: uint8(PragTyp_DATABASE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(47), FnPragCName: uint8(3), }, 15: { - FzName: __ccgo_ts + 16975, + FzName: __ccgo_ts + 17062, FePragTyp: uint8(PragTyp_DEFAULT_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiPragCName: uint8(55), FnPragCName: uint8(1), }, 16: { - FzName: __ccgo_ts + 16994, + FzName: __ccgo_ts + 17081, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_DeferFKs), }, 17: { - FzName: __ccgo_ts + 17013, + FzName: __ccgo_ts + 17100, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_NullCallback), }, 18: { - FzName: __ccgo_ts + 17036, + FzName: __ccgo_ts + 17123, FePragTyp: uint8(PragTyp_ENCODING), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 19: { - FzName: __ccgo_ts + 17045, + FzName: __ccgo_ts + 17132, FePragTyp: uint8(PragTyp_FOREIGN_KEY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(43), FnPragCName: uint8(4), }, 20: { - FzName: __ccgo_ts + 17063, + FzName: __ccgo_ts + 17150, FePragTyp: uint8(PragTyp_FOREIGN_KEY_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FnPragCName: uint8(8), }, 21: { - FzName: __ccgo_ts + 17080, + FzName: __ccgo_ts + 17167, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ForeignKeys), }, 22: { - FzName: __ccgo_ts + 17093, + FzName: __ccgo_ts + 17180, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), }, 23: { - FzName: __ccgo_ts + 17108, + FzName: __ccgo_ts + 17195, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullColNames), }, 24: { - FzName: __ccgo_ts + 17126, + FzName: __ccgo_ts + 17213, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullFSync), }, 25: { - FzName: __ccgo_ts + 17136, + FzName: __ccgo_ts + 17223, FePragTyp: uint8(PragTyp_FUNCTION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(27), FnPragCName: uint8(6), }, 26: { - FzName: __ccgo_ts + 17150, + FzName: __ccgo_ts + 17237, FePragTyp: uint8(PragTyp_HARD_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 27: { - FzName: __ccgo_ts + 17166, + FzName: __ccgo_ts + 17253, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_IgnoreChecks), }, 28: { - FzName: __ccgo_ts + 17191, + FzName: __ccgo_ts + 17278, FePragTyp: uint8(PragTyp_INCREMENTAL_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_NoColumns)), }, 29: { - FzName: __ccgo_ts + 17210, + FzName: __ccgo_ts + 17297, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), FnPragCName: uint8(3), }, 30: { - FzName: __ccgo_ts + 17221, + FzName: __ccgo_ts + 17308, FePragTyp: uint8(PragTyp_INDEX_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(38), FnPragCName: uint8(5), }, 31: { - FzName: __ccgo_ts + 17232, + FzName: __ccgo_ts + 17319, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), @@ -116648,146 +117467,146 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 32: { - FzName: __ccgo_ts + 17244, + FzName: __ccgo_ts + 17331, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 33: { - FzName: __ccgo_ts + 17260, + FzName: __ccgo_ts + 17347, FePragTyp: uint8(PragTyp_JOURNAL_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 34: { - FzName: __ccgo_ts + 17273, + FzName: __ccgo_ts + 17360, FePragTyp: uint8(PragTyp_JOURNAL_SIZE_LIMIT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 35: { - FzName: __ccgo_ts + 17292, + FzName: __ccgo_ts + 17379, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_LegacyAlter), }, 36: { - FzName: __ccgo_ts + 17311, + FzName: __ccgo_ts + 17398, FePragTyp: uint8(PragTyp_LOCKING_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 37: { - FzName: __ccgo_ts + 17324, + FzName: __ccgo_ts + 17411, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 38: { - FzName: __ccgo_ts + 17339, + FzName: __ccgo_ts + 17426, FePragTyp: uint8(PragTyp_MMAP_SIZE), }, 39: { - FzName: __ccgo_ts + 17349, + FzName: __ccgo_ts + 17436, FePragTyp: uint8(PragTyp_MODULE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 40: { - FzName: __ccgo_ts + 17361, + FzName: __ccgo_ts + 17448, FePragTyp: uint8(PragTyp_OPTIMIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_NeedSchema)), }, 41: { - FzName: __ccgo_ts + 17370, + FzName: __ccgo_ts + 17457, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 42: { - FzName: __ccgo_ts + 17381, + FzName: __ccgo_ts + 17468, FePragTyp: uint8(PragTyp_PAGE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 43: { - FzName: __ccgo_ts + 17391, + FzName: __ccgo_ts + 17478, FePragTyp: uint8(PragTyp_PRAGMA_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 44: { - FzName: __ccgo_ts + 17403, + FzName: __ccgo_ts + 17490, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_QueryOnly), }, 45: { - FzName: __ccgo_ts + 17414, + FzName: __ccgo_ts + 17501, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 46: { - FzName: __ccgo_ts + 17426, + FzName: __ccgo_ts + 17513, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00004)) << libc.Int32FromInt32(32), }, 47: { - FzName: __ccgo_ts + 17443, + FzName: __ccgo_ts + 17530, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_RecTriggers), }, 48: { - FzName: __ccgo_ts + 17462, + FzName: __ccgo_ts + 17549, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ReverseOrder), }, 49: { - FzName: __ccgo_ts + 17488, + FzName: __ccgo_ts + 17575, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_SCHEMA_VERSION), }, 50: { - FzName: __ccgo_ts + 17503, + FzName: __ccgo_ts + 17590, FePragTyp: uint8(PragTyp_SECURE_DELETE), FmPragFlg: uint8(PragFlg_Result0), }, 51: { - FzName: __ccgo_ts + 17517, + FzName: __ccgo_ts + 17604, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ShortColNames), }, 52: { - FzName: __ccgo_ts + 17536, + FzName: __ccgo_ts + 17623, FePragTyp: uint8(PragTyp_SHRINK_MEMORY), FmPragFlg: uint8(PragFlg_NoColumns), }, 53: { - FzName: __ccgo_ts + 17550, + FzName: __ccgo_ts + 17637, FePragTyp: uint8(PragTyp_SOFT_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 54: { - FzName: __ccgo_ts + 17566, + FzName: __ccgo_ts + 17653, FePragTyp: uint8(PragTyp_SYNCHRONOUS), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 55: { - FzName: __ccgo_ts + 17578, + FzName: __ccgo_ts + 17665, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), FnPragCName: uint8(6), }, 56: { - FzName: __ccgo_ts + 17589, + FzName: __ccgo_ts + 17676, FePragTyp: uint8(PragTyp_TABLE_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1)), FiPragCName: uint8(15), FnPragCName: uint8(6), }, 57: { - FzName: __ccgo_ts + 17600, + FzName: __ccgo_ts + 17687, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), @@ -116795,45 +117614,45 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 58: { - FzName: __ccgo_ts + 17612, + FzName: __ccgo_ts + 17699, FePragTyp: uint8(PragTyp_TEMP_STORE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 59: { - FzName: __ccgo_ts + 17623, + FzName: __ccgo_ts + 17710, FePragTyp: uint8(PragTyp_TEMP_STORE_DIRECTORY), FmPragFlg: uint8(PragFlg_NoColumns1), }, 60: { - FzName: __ccgo_ts + 17644, + FzName: __ccgo_ts + 17731, FePragTyp: uint8(PragTyp_THREADS), FmPragFlg: uint8(PragFlg_Result0), }, 61: { - FzName: __ccgo_ts + 17652, + FzName: __ccgo_ts + 17739, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_TrustedSchema), }, 62: { - FzName: __ccgo_ts + 17667, + FzName: __ccgo_ts + 17754, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_USER_VERSION), }, 63: { - FzName: __ccgo_ts + 17680, + FzName: __ccgo_ts + 17767, FePragTyp: uint8(PragTyp_WAL_AUTOCHECKPOINT), }, 64: { - FzName: __ccgo_ts + 17699, + FzName: __ccgo_ts + 17786, FePragTyp: uint8(PragTyp_WAL_CHECKPOINT), FmPragFlg: uint8(PragFlg_NeedSchema), FiPragCName: uint8(50), FnPragCName: uint8(3), }, 65: { - FzName: __ccgo_ts + 17714, + FzName: __ccgo_ts + 17801, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(SQLITE_WriteSchema) | libc.Int32FromInt32(SQLITE_NoSchemaError)), @@ -116845,6 +117664,31 @@ var _aPragmaName = [66]TPragmaName{ /************** End of pragma.h **********************************************/ /************** Continuing where we left off in pragma.c *********************/ +/* +** When the 0x10 bit of PRAGMA optimize is set, any ANALYZE commands +** will be run with an analysis_limit set to the lessor of the value of +** the following macro or to the actual analysis_limit if it is non-zero, +** in order to prevent PRAGMA optimize from running for too long. +** +** The value of 2000 is chosen emperically so that the worst-case run-time +** for PRAGMA optimize does not exceed 100 milliseconds against a variety +** of test databases on a RaspberryPI-4 compiled using -Os and without +** -DSQLITE_DEBUG. Of course, your mileage may vary. For the purpose of +** this paragraph, "worst-case" means that ANALYZE ends up being +** run on every table in the database. The worst case typically only +** happens if PRAGMA optimize is run on a database file for which ANALYZE +** has not been previously run and the 0x10000 flag is included so that +** all tables are analyzed. The usual case for PRAGMA optimize is that +** no ANALYZE commands will be run at all, or if any ANALYZE happens it +** will be against a single table, so that expected timing for PRAGMA +** optimize on a PI-4 is more like 1 millisecond or less with the 0x10000 +** flag or less than 100 microseconds without the 0x10000 flag. +** +** An analysis limit of 2000 is almost always sufficient for the query +** planner to fully characterize an index. The additional accuracy from +** a larger analysis is not usually helpful. + */ + // C documentation // // /* @@ -116934,10 +117778,10 @@ func _sqlite3GetBoolean(tls *libc.TLS, z uintptr, dflt Tu8) (r Tu8) { // */ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { if z != 0 { - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17730) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17817) { return int32(PAGER_LOCKINGMODE_EXCLUSIVE) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17740) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17827) { return PAGER_LOCKINGMODE_NORMAL } } @@ -116955,13 +117799,13 @@ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { func _getAutoVacuum(tls *libc.TLS, z uintptr) (r int32) { var i, v1 int32 _, _ = i, v1 - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8218) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8343) { return BTREE_AUTOVACUUM_NONE } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17747) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17834) { return int32(BTREE_AUTOVACUUM_FULL) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17752) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17839) { return int32(BTREE_AUTOVACUUM_INCR) } i = _sqlite3Atoi(tls, z) @@ -116984,10 +117828,10 @@ func _getTempStore(tls *libc.TLS, z uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(z))) <= int32('2') { return int32(*(*uint8)(unsafe.Pointer(z))) - int32('0') } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+16705) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+16792) == 0 { return int32(1) } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+17764) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+17851) == 0 { return int32(2) } else { return 0 @@ -117009,7 +117853,7 @@ func _invalidateTempStorage(tls *libc.TLS, pParse uintptr) (r int32) { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt != uintptr(0) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || _sqlite3BtreeTxnState(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) != SQLITE_TXN_NONE { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17771, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17858, 0) return int32(SQLITE_ERROR) } _sqlite3BtreeClose(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) @@ -117144,15 +117988,15 @@ func _actionName(tls *libc.TLS, action Tu8) (r uintptr) { _ = zName switch int32(action) { case int32(OE_SetNull): - zName = __ccgo_ts + 17833 + zName = __ccgo_ts + 17920 case int32(OE_SetDflt): - zName = __ccgo_ts + 17842 + zName = __ccgo_ts + 17929 case int32(OE_Cascade): - zName = __ccgo_ts + 17854 + zName = __ccgo_ts + 17941 case int32(OE_Restrict): - zName = __ccgo_ts + 17862 + zName = __ccgo_ts + 17949 default: - zName = __ccgo_ts + 17871 + zName = __ccgo_ts + 17958 _ = libc.Int32FromInt32(0) break } @@ -117181,12 +118025,12 @@ func _sqlite3JournalModename(tls *libc.TLS, eMode int32) (r uintptr) { } var _azModeName = [6]uintptr{ - 0: __ccgo_ts + 17881, - 1: __ccgo_ts + 17888, - 2: __ccgo_ts + 17896, - 3: __ccgo_ts + 17900, - 4: __ccgo_ts + 17764, - 5: __ccgo_ts + 17909, + 0: __ccgo_ts + 17968, + 1: __ccgo_ts + 17975, + 2: __ccgo_ts + 17983, + 3: __ccgo_ts + 17987, + 4: __ccgo_ts + 17851, + 5: __ccgo_ts + 17996, } // C documentation @@ -117252,15 +118096,15 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s goto _1 } if (*TFuncDef)(unsafe.Pointer(p)).FxValue != uintptr(0) { - zType = __ccgo_ts + 17934 + zType = __ccgo_ts + 18021 } else { if (*TFuncDef)(unsafe.Pointer(p)).FxFinalize != uintptr(0) { - zType = __ccgo_ts + 17936 + zType = __ccgo_ts + 18023 } else { - zType = __ccgo_ts + 7617 + zType = __ccgo_ts + 7742 } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+17938, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18025, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) goto _1 _1: ; @@ -117269,9 +118113,9 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s } var _azEnc = [4]uintptr{ - 1: __ccgo_ts + 17913, - 2: __ccgo_ts + 17918, - 3: __ccgo_ts + 17926, + 1: __ccgo_ts + 18000, + 2: __ccgo_ts + 18005, + 3: __ccgo_ts + 18013, } // C documentation @@ -117312,15 +118156,15 @@ func _integrityCheckResultRow(tls *libc.TLS, v uintptr) (r int32) { func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pValue uintptr, minusFlag int32) { bp := tls.Alloc(240) defer tls.Free(240) - var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, mxIdx, n, nHidden, nIdx, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v60, v62, v63, v64, v65, v68 int32 - var aOp, aOp1, aOp2, aOp3, aOp4, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v61, v66, v8 uintptr + var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v48, v50, v64, v66, v67, v68, v69, v72, v75, v76 int32 + var aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v65, v70, v8 uintptr var azOrigin [3]uintptr var cnum Ti16 var enc Tu8 var iPrior Tsqlite3_int64 + var iRange, szThreshold TLogEst var mask Tu64 var opMask Tu32 - var szThreshold TLogEst var _ /* N at bp+136 */ Tsqlite3_int64 var _ /* N at bp+144 */ Tsqlite3_int64 var _ /* N at bp+152 */ Tsqlite3_int64 @@ -117341,7 +118185,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p var _ /* size at bp+60 */ int32 var _ /* sz at bp+64 */ Tsqlite3_int64 var _ /* x at bp+40 */ Ti64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iPrior, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, mxIdx, n, nHidden, nIdx, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v5, v60, v61, v62, v63, v64, v65, v66, v68, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iPrior, iRange, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v48, v5, v50, v64, v65, v66, v67, v68, v69, v70, v72, v75, v76, v8 zLeft = uintptr(0) /* Nul-terminated UTF-8 string */ zRight = uintptr(0) /* Nul-terminated UTF-8 string , or NULL */ zDb = uintptr(0) /* return value form SQLITE_FCNTL_PRAGMA */ @@ -117370,7 +118214,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p return } if minusFlag != 0 { - zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+17945, libc.VaList(bp+176, pValue)) + zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+18032, libc.VaList(bp+176, pValue)) } else { zRight = _sqlite3NameFromToken(tls, db, pValue) } @@ -117414,7 +118258,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } if rc != int32(SQLITE_NOTFOUND) { if (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0] != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) Xsqlite3_free(tls, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0]) } (*TParse)(unsafe.Pointer(pParse)).FnErr++ @@ -117521,7 +118365,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p b = -int32(1) _ = libc.Int32FromInt32(0) if zRight != 0 { - if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+17949) == 0 { + if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18036) == 0 { b = int32(2) } else { b = int32(_sqlite3GetBoolean(tls, zRight, uint8(0))) @@ -117592,7 +118436,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p */ fallthrough case int32(PragTyp_LOCKING_MODE): - zRet = __ccgo_ts + 17740 + zRet = __ccgo_ts + 17827 eMode = _getLockingMode(tls, zRight) if (*TToken)(unsafe.Pointer(pId2)).Fn == uint32(0) && eMode == -int32(1) { /* Simple "PRAGMA locking_mode;" statement. This is a query for @@ -117622,7 +118466,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } _ = libc.Int32FromInt32(0) if eMode == int32(PAGER_LOCKINGMODE_EXCLUSIVE) { - zRet = __ccgo_ts + 17730 + zRet = __ccgo_ts + 17817 } _returnSingleText(tls, v, zRet) break @@ -117917,7 +118761,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if *(*uint8)(unsafe.Pointer(zRight)) != 0 { rc = _sqlite3OsAccess(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, zRight, int32(SQLITE_ACCESS_READWRITE), bp+72) if rc != SQLITE_OK || *(*int32)(unsafe.Pointer(bp + 72)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17954, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18041, 0) Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) goto pragma_out } @@ -117927,7 +118771,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } Xsqlite3_free(tls, Xsqlite3_temp_directory) if *(*uint8)(unsafe.Pointer(zRight)) != 0 { - Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+176, zRight)) + Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+176, zRight)) } else { Xsqlite3_temp_directory = uintptr(0) } @@ -117949,7 +118793,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _returnSingleInt(tls, v, int64(int32((*TDb)(unsafe.Pointer(pDb)).Fsafety_level)-int32(1))) } else { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17979, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18066, 0) } else { if iDb != int32(1) { iLevel = (int32(_getSafetyLevel(tls, zRight, 0, uint8(1))) + int32(1)) & int32(PAGER_SYNCHRONOUS_MASK) @@ -117982,7 +118826,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if mask == uint64(SQLITE_DeferFKs) { (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = 0 } - if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18032) == 0 { + if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18119) == 0 { /* IMP: R-60817-01178 If the argument is "RESET" then schema ** writing is disabled (as with "PRAGMA writable_schema=OFF") and, ** in addition, the schema is reloaded. */ @@ -118065,9 +118909,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - v14 = __ccgo_ts + 18038 + v14 = __ccgo_ts + 18125 } else { - v14 = __ccgo_ts + 18046 + v14 = __ccgo_ts + 18133 } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 { v15 = int32(1) @@ -118079,7 +118923,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v16 = *(*uintptr)(unsafe.Pointer(pColExpr + 8)) } - _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1648), v15, v16, k, isHidden)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1662), v15, v16, k, isHidden)) goto _12 _12: ; @@ -118138,7 +118982,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pTab1 = (*THashElem)(unsafe.Pointer(k1)).Fdata if int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) == 0 { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18053, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18140, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 80)) = uintptr(0) Xsqlite3_prepare(tls, db, zSql, -int32(1), bp+80, uintptr(0)) @@ -118146,7 +118990,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3DbFree(tls, db, zSql) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1632, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) } pHash = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FpSchema + 8 @@ -118168,19 +119012,19 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _20 } if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10796 + zType = __ccgo_ts + 10921 } else { if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 13044 + zType = __ccgo_ts + 13169 } else { if (*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Shadow) != 0 { - zType = __ccgo_ts + 18069 + zType = __ccgo_ts + 18156 } else { - zType = __ccgo_ts + 9058 + zType = __ccgo_ts + 9183 } } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18076, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18163, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) goto _20 _20: ; @@ -118228,9 +119072,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v22 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab3)).FaCol + uintptr(cnum)*16))).FzCnName } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18083, libc.VaList(bp+176, i1, int32(cnum), v22)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18170, libc.VaList(bp+176, i1, int32(cnum), v22)) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18088, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) + _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18175, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) } _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), int32(1), (*TParse)(unsafe.Pointer(pParse)).FnMem) goto _21 @@ -118254,11 +119098,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } azOrigin = [3]uintptr{ - 0: __ccgo_ts + 18093, - 1: __ccgo_ts + 18095, - 2: __ccgo_ts + 16582, + 0: __ccgo_ts + 18180, + 1: __ccgo_ts + 18182, + 2: __ccgo_ts + 16669, } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18097, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18184, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) goto _23 _23: ; @@ -118278,7 +119122,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _24 } _ = libc.Int32FromInt32(0) - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18103, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18190, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) goto _24 _24: ; @@ -118295,7 +119139,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pColl = (*THashElem)(unsafe.Pointer(p)).Fdata v26 = i4 i4++ - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18107, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18194, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) goto _25 _25: ; @@ -118347,7 +119191,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } pMod = (*THashElem)(unsafe.Pointer(j1)).Fdata - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7617, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7742, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) goto _30 _30: ; @@ -118359,7 +119203,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i6 < int32(libc.Uint64FromInt64(1584)/libc.Uint64FromInt64(24))) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7617, libc.VaList(bp+176, _aPragmaName[i6].FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7742, libc.VaList(bp+176, _aPragmaName[i6].FzName)) goto _31 _31: ; @@ -118385,7 +119229,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(j2 < (*TFKey)(unsafe.Pointer(pFK)).FnCol) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18110, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18119)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18197, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18206)) goto _32 _32: ; @@ -118531,7 +119375,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regResult+int32(1)) } - _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18124, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) + _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18211, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), regResult, int32(4)) _sqlite3VdbeResolveLabel(tls, v, addrOk) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 96))) @@ -118601,7 +119445,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p /* Set the maximum error count */ *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) if zRight != 0 { - if _sqlite3GetInt32(tls, zRight, bp+104) != 0 { + if _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pValue)).Fz, bp+104) != 0 { if *(*int32)(unsafe.Pointer(bp + 104)) <= 0 { *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) } @@ -118621,8 +119465,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i9 < (*Tsqlite3)(unsafe.Pointer(db)).FnDb) { break } /* Array of root page numbers of all btrees */ - cnt = 0 /* Number of entries in aRoot[] */ - mxIdx = 0 /* Maximum number of indexes for any table */ + cnt = 0 /* Number of entries in aRoot[] */ if libc.Bool(OMIT_TEMPDB != 0) && i9 == int32(1) { goto _40 } @@ -118664,9 +119507,6 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pIdx3 = (*TIndex)(unsafe.Pointer(pIdx3)).FpNext nIdx++ } - if nIdx > mxIdx { - mxIdx = nIdx - } goto _41 _41: ; @@ -118722,16 +119562,78 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } *(*int32)(unsafe.Pointer(aRoot)) = cnt /* Make sure sufficient number of registers have been allocated */ - _sqlite3TouchRegister(tls, pParse, int32(8)+mxIdx) + _sqlite3TouchRegister(tls, pParse, int32(8)+cnt) _sqlite3ClearTempRegCache(tls, pParse) /* Do the b-tree integrity checks */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(2), cnt, int32(1), aRoot, -int32(14)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(1), cnt, int32(8), aRoot, -int32(14)) _sqlite3VdbeChangeP5(tls, v, uint16(uint8(i9))) addr1 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(2)) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18128, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18215, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(2), int32(3), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, addr1) + /* Check that the indexes all have the right number of rows */ + if pObjTab != 0 { + v48 = int32(1) + } else { + v48 = 0 + } + cnt = v48 + _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18239) + x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst + for { + if !(x2 != 0) { + break + } + iTab = 0 + pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab9 { + goto _49 + } + if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + v50 = cnt + cnt++ + iTab = v50 + } else { + iTab = cnt + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx5 + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { + break + } + iTab++ + goto _51 + _51: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + } + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if (*TIndex)(unsafe.Pointer(pIdx5)).FpPartIdxWhere == uintptr(0) { + addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+cnt, 0, int32(8)+iTab) + _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) + _integrityCheckResultRow(tls, v) + _sqlite3VdbeJumpHere(tls, v, addr1) + } + cnt++ + goto _52 + _52: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + goto _49 + _49: + ; + x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext + } /* Make sure all the indices are constructed correctly. */ x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst @@ -118739,39 +119641,39 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata pPrior = uintptr(0) r1 = -int32(1) /* Maximum non-virtual column number */ - if pObjTab != 0 && pObjTab != pTab9 { - goto _48 + if pObjTab != 0 && pObjTab != pTab10 { + goto _53 } - if !(int32((*TTable)(unsafe.Pointer(pTab9)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { - goto _48 + if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _53 } - if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { pPk1 = uintptr(0) r2 = 0 } else { - pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab9) + pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab10) r2 = _sqlite3GetTempRange(tls, pParse, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), int32(1), r2, r2+int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)-int32(1)) } - _sqlite3OpenTableAndIndices(tls, pParse, pTab9, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) + _sqlite3OpenTableAndIndices(tls, pParse, pTab10, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) /* reg[7] counts the number of entries in the table. ** reg[8+i] counts the number of entries in the i-th index */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(7)) j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(8)+j4) /* index entries counter */ - goto _49 - _49: + goto _54 + _54: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } _ = libc.Int32FromInt32(0) @@ -118784,29 +119686,29 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** by the OP_IsType code, so it is a required step. */ _ = libc.Int32FromInt32(0) - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { mxCol = -int32(1) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { + if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { mxCol++ } - goto _50 - _50: + goto _55 + _55: ; j4++ } - if mxCol == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { + if mxCol == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { mxCol-- } } else { /* COLFLAG_VIRTUAL columns are not included in the WITHOUT ROWID ** PK index column-count, so there is no need to account for them ** in this case. */ - mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab9))).FnColumn) - int32(1) + mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab10))).FnColumn) - int32(1) } if mxCol >= 0 { _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 108)), mxCol, int32(3)) @@ -118816,7 +119718,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if pPk1 != 0 { a1 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 108)), 0, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), r2) - zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18152, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18268, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a1) @@ -118827,8 +119729,8 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprCodeLoadIndexColumn(tls, pParse, pPk1, *(*int32)(unsafe.Pointer(bp + 108)), j4, r2+j4) - goto _51 - _51: + goto _56 + _56: ; j4++ } @@ -118843,15 +119745,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** (4) Datatype for numeric columns in non-STRICT tables must not ** be a TEXT value that can be losslessly converted to numeric. */ - bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_Strict) != uint32(0)) + bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_Strict) != uint32(0)) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - pCol1 = (*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ - if j4 == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { - goto _52 + pCol1 = (*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ + if j4 == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { + goto _57 } if bStrict != 0 { doTypeCheck = libc.BoolInt32(int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4)) > int32(COLTYPE_ANY)) @@ -118859,28 +119761,28 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p doTypeCheck = libc.BoolInt32(int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) > int32(SQLITE_AFF_BLOB)) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf>>0)) == 0 && !(doTypeCheck != 0) { - goto _52 + goto _57 } /* Compute the operands that will be needed for OP_IsType */ p4 = int32(SQLITE_NULL) if int32((*TColumn)(unsafe.Pointer(pCol1)).FcolFlags)&int32(COLFLAG_VIRTUAL) != 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) p11 = -int32(1) p3 = int32(3) } else { if (*TColumn)(unsafe.Pointer(pCol1)).FiDflt != 0 { *(*uintptr)(unsafe.Pointer(bp + 120)) = uintptr(0) - _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab9, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol1)).Faffinity, bp+120) + _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab10, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol1)).Faffinity, bp+120) if *(*uintptr)(unsafe.Pointer(bp + 120)) != 0 { p4 = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) } } p11 = *(*int32)(unsafe.Pointer(bp + 108)) - if !((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { - p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab9), int16(j4))) + if !((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { + p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab10), int16(j4))) } else { - p3 = int32(_sqlite3TableColumnToStorage(tls, pTab9, int16(j4))) + p3 = int32(_sqlite3TableColumnToStorage(tls, pTab10, int16(j4))) } } labelError = _sqlite3VdbeMakeLabel(tls, pParse) @@ -118897,10 +119799,10 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** is REAL, we have to load the actual data using OP_Column ** to reliably determine if the value is a NULL. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), p11, p3, int32(3)) - _sqlite3ColumnDefault(tls, v, pTab9, j4, int32(3)) + _sqlite3ColumnDefault(tls, v, pTab10, j4, int32(3)) jmp3 = _sqlite3VdbeAddOp2(tls, v, int32(OP_NotNull), int32(3), labelOk) } - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18188, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18304, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) if doTypeCheck != 0 { _sqlite3VdbeGoto(tls, v, labelError) @@ -118914,7 +119816,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _ = libc.Int32FromInt32(0) _sqlite3VdbeChangeP5(tls, v, uint16(_aStdTypeMask[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)])) - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18208, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18324, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) == int32(SQLITE_AFF_TEXT) { @@ -118922,7 +119824,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** NULL, TEXT, or BLOB. */ _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18230, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18346, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) >= int32(SQLITE_AFF_NUMERIC) { @@ -118931,12 +119833,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1b)) /* NULL, INT, FLOAT, or BLOB */ if p11 >= 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18253, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18369, -int32(1)) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), -int32(1), labelOk, int32(3), p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18255, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18371, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } } @@ -118944,14 +119846,14 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeResolveLabel(tls, v, labelError) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, labelOk) - goto _52 - _52: + goto _57 + _57: ; j4++ } /* Verify CHECK constraints */ - if (*TTable)(unsafe.Pointer(pTab9)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { - pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab9)).FpCheck, 0) + if (*TTable)(unsafe.Pointer(pTab10)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { + pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab10)).FpCheck, 0) if int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { addrCkFault = _sqlite3VdbeMakeLabel(tls, pParse) addrCkOk = _sqlite3VdbeMakeLabel(tls, pParse) @@ -118962,15 +119864,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprIfFalse(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8 + uintptr(k3)*32))).FpExpr, addrCkFault, 0) - goto _53 - _53: + goto _58 + _58: ; k3-- } _sqlite3ExprIfTrue(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8))).FpExpr, addrCkOk, int32(SQLITE_JUMPIFNULL)) _sqlite3VdbeResolveLabel(tls, v, addrCkFault) (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 - zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18275, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18391, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr2, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, addrCkOk) @@ -118980,25 +119882,25 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(isQuick != 0) { /* Omit the remaining tests for quick_check */ /* Validate index entries for the current row */ j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } ckUniq = _sqlite3VdbeMakeLabel(tls, pParse) - if pPk1 == pIdx5 { - goto _54 + if pPk1 == pIdx6 { + goto _59 } - r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx5, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) - pPrior = pIdx5 + r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx6, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) + pPrior = pIdx6 _sqlite3VdbeAddOp2(tls, v, int32(OP_AddImm), int32(8)+j4, int32(1)) /* increment entry count */ /* Verify that an index entry exists for the current table row */ - jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18305) + jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18421) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18310) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18426) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) - jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx6)).FzName) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) jmp4 = _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, jmp21) @@ -119006,12 +119908,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** that extracts the rowid off the end of the index record. ** But it only works correctly if index record does not have ** any extra bytes at the end. Verify that this is the case. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { _sqlite3VdbeAddOp2(tls, v, int32(OP_IdxRowid), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)-int32(1)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18331) + jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)-int32(1)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18447) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18367) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18483) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp7) } @@ -119020,101 +119922,77 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p label6 = 0 kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { - goto _55 + if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { + goto _60 } if label6 == 0 { label6 = _sqlite3VdbeMakeLabel(tls, pParse) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 112))+j4, kk, int32(3)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ne), int32(3), label6, r1+kk) - goto _55 - _55: + goto _60 + _60: ; kk++ } if label6 != 0 { jmp6 = _sqlite3VdbeAddOp0(tls, v, int32(OP_Goto)) _sqlite3VdbeResolveLabel(tls, v, label6) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18305) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18421) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18378) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18494) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp6) } /* For UNIQUE indexes, verify that only one entry exists with the ** current key. The entry is unique if (1) any column is NULL ** or (2) the next entry has a different key */ - if int32((*TIndex)(unsafe.Pointer(pIdx5)).FonError) != OE_None { + if int32((*TIndex)(unsafe.Pointer(pIdx6)).FonError) != OE_None { uniqOk = _sqlite3VdbeMakeLabel(tls, pParse) kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FaiColumn + uintptr(kk)*2))) + iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FaiColumn + uintptr(kk)*2))) _ = libc.Int32FromInt32(0) - if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { - goto _56 + if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { + goto _61 } _sqlite3VdbeAddOp2(tls, v, int32(OP_IsNull), r1+kk, uniqOk) - goto _56 - _56: + goto _61 + _61: ; kk++ } jmp61 = _sqlite3VdbeAddOp1(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 112))+j4) _sqlite3VdbeGoto(tls, v, uniqOk) _sqlite3VdbeJumpHere(tls, v, jmp61) - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18405) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18521) _sqlite3VdbeGoto(tls, v, jmp5) _sqlite3VdbeResolveLabel(tls, v, uniqOk) } _sqlite3VdbeJumpHere(tls, v, jmp4) _sqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp + 128))) - goto _54 - _54: + goto _59 + _59: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } } _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 108)), loopTop) _sqlite3VdbeJumpHere(tls, v, loopTop-int32(1)) - if !(isQuick != 0) { - _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18432) - j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex - for { - if !(pIdx5 != 0) { - break - } - if pPk1 == pIdx5 { - goto _57 - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+j4, 0, int32(3)) - _sqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL)) - _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) - _integrityCheckResultRow(tls, v) - _sqlite3VdbeJumpHere(tls, v, addr1) - goto _57 - _57: - ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext - j4++ - } - if pPk1 != 0 { - _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) - } + if pPk1 != 0 { + _ = libc.Int32FromInt32(0) + _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) } - goto _48 - _48: + goto _53 + _53: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -119126,60 +120004,60 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata - if pObjTab != 0 && pObjTab != pTab10 { - goto _58 + pTab11 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab11 { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == TABTYP_NORM { - goto _58 + if int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == TABTYP_NORM { + goto _62 } - if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { - goto _58 + if !(int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FnCol) <= 0 { + if int32((*TTable)(unsafe.Pointer(pTab11)).FnCol) <= 0 { zMod = *(*uintptr)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).FazArg)) + })(unsafe.Pointer(pTab11 + 64))).FazArg)) if _sqlite3HashFind(tls, db+576, zMod) == uintptr(0) { - goto _58 + goto _62 } } - _sqlite3ViewGetColumnNames(tls, pParse, pTab10) + _sqlite3ViewGetColumnNames(tls, pParse, pTab11) if (*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp == uintptr(0) { - goto _58 + })(unsafe.Pointer(pTab11 + 64))).Fp == uintptr(0) { + goto _62 } pVTab = (*TVTable)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp)).FpVtab + })(unsafe.Pointer(pTab11 + 64))).Fp)).FpVtab if pVTab == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FiVersion < int32(4) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FxIntegrity == uintptr(0) { - goto _58 + goto _62 } _sqlite3VdbeAddOp3(tls, v, int32(OP_VCheck), i9, int32(3), isQuick) - (*TTable)(unsafe.Pointer(pTab10)).FnTabRef++ - _sqlite3VdbeAppendP4(tls, v, pTab10, -int32(16)) + (*TTable)(unsafe.Pointer(pTab11)).FnTabRef++ + _sqlite3VdbeAppendP4(tls, v, pTab11, -int32(16)) a11 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a11) - goto _58 - goto _58 - _58: + goto _62 + goto _62 + _62: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -119192,7 +120070,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if aOp2 != 0 { (*(*TVdbeOp)(unsafe.Pointer(aOp2))).Fp2 = int32(1) - *(*int32)(unsafe.Pointer(bp + 104)) (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 2*24))).Fp4type = int8(-libc.Int32FromInt32(1)) - *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18461 + *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18548 (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 5*24))).Fp4type = int8(-libc.Int32FromInt32(1)) *(*uintptr)(unsafe.Pointer(aOp2 + 5*24 + 16)) = _sqlite3ErrStr(tls, int32(SQLITE_CORRUPT)) } @@ -119253,20 +120131,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc != 0 { - v60 = int32((*struct { + v64 = int32((*struct { FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc) } else { - v60 = int32(SQLITE_UTF16LE) + v64 = int32(SQLITE_UTF16LE) } - enc = uint8(v60) + enc = uint8(v64) (*TSchema)(unsafe.Pointer((*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema)).Fenc = enc _sqlite3SetTextEncoding(tls, db, enc) break } - goto _59 - _59: + goto _63 + _63: ; pEnc += 16 } @@ -119274,7 +120152,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).FzName != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18522, libc.VaList(bp+176, zRight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18609, libc.VaList(bp+176, zRight)) } } } @@ -119352,11 +120230,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p i10 = 0 (*TParse)(unsafe.Pointer(pParse)).FnMem = int32(1) for { - v62 = i10 + v66 = i10 i10++ - v61 = Xsqlite3_compileoption_get(tls, v62) - zOpt = v61 - if !(v61 != uintptr(0)) { + v65 = Xsqlite3_compileoption_get(tls, v66) + zOpt = v65 + if !(v65 != uintptr(0)) { break } _sqlite3VdbeLoadString(tls, v, int32(1), zOpt) @@ -119372,20 +120250,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p fallthrough case int32(PragTyp_WAL_CHECKPOINT): if (*TToken)(unsafe.Pointer(pId2)).Fz != 0 { - v63 = iDb + v67 = iDb } else { - v63 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) + v67 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) } - iBt = v63 + iBt = v67 eMode2 = SQLITE_CHECKPOINT_PASSIVE if zRight != 0 { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17747) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17834) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_FULL) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18547) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18634) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_RESTART) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17900) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17987) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_TRUNCATE) } } @@ -119409,11 +120287,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p Xsqlite3_wal_autocheckpoint(tls, db, _sqlite3Atoi(tls, zRight)) } if (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback == __ccgo_fp(_sqlite3WalDefaultHook) { - v64 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) + v68 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) } else { - v64 = 0 + v68 = 0 } - _returnSingleInt(tls, v, int64(v64)) + _returnSingleInt(tls, v, int64(v68)) break /* ** PRAGMA shrink_memory @@ -119441,47 +120319,68 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** ** The optional argument is a bitmask of optimizations to perform: ** - ** 0x0001 Debugging mode. Do not actually perform any optimizations - ** but instead return one line of text for each optimization - ** that would have been done. Off by default. + ** 0x00001 Debugging mode. Do not actually perform any optimizations + ** but instead return one line of text for each optimization + ** that would have been done. Off by default. ** - ** 0x0002 Run ANALYZE on tables that might benefit. On by default. - ** See below for additional information. + ** 0x00002 Run ANALYZE on tables that might benefit. On by default. + ** See below for additional information. ** - ** 0x0004 (Not yet implemented) Record usage and performance - ** information from the current session in the - ** database file so that it will be available to "optimize" - ** pragmas run by future database connections. + ** 0x00010 Run all ANALYZE operations using an analysis_limit that + ** is the lessor of the current analysis_limit and the + ** SQLITE_DEFAULT_OPTIMIZE_LIMIT compile-time option. + ** The default value of SQLITE_DEFAULT_OPTIMIZE_LIMIT is + ** currently (2024-02-19) set to 2000, which is such that + ** the worst case run-time for PRAGMA optimize on a 100MB + ** database will usually be less than 100 milliseconds on + ** a RaspberryPI-4 class machine. On by default. ** - ** 0x0008 (Not yet implemented) Create indexes that might have - ** been helpful to recent queries + ** 0x10000 Look at tables to see if they need to be reanalyzed + ** due to growth or shrinkage even if they have not been + ** queried during the current connection. Off by default. ** - ** The default MASK is and always shall be 0xfffe. 0xfffe means perform all - ** of the optimizations listed above except Debug Mode, including new - ** optimizations that have not yet been invented. If new optimizations are - ** ever added that should be off by default, those off-by-default - ** optimizations will have bitmasks of 0x10000 or larger. + ** The default MASK is and always shall be 0x0fffe. In the current + ** implementation, the default mask only covers the 0x00002 optimization, + ** though additional optimizations that are covered by 0x0fffe might be + ** added in the future. Optimizations that are off by default and must + ** be explicitly requested have masks of 0x10000 or greater. ** ** DETERMINATION OF WHEN TO RUN ANALYZE ** ** In the current implementation, a table is analyzed if only if all of ** the following are true: ** - ** (1) MASK bit 0x02 is set. + ** (1) MASK bit 0x00002 is set. + ** + ** (2) The table is an ordinary table, not a virtual table or view. ** - ** (2) The query planner used sqlite_stat1-style statistics for one or - ** more indexes of the table at some point during the lifetime of - ** the current connection. + ** (3) The table name does not begin with "sqlite_". ** - ** (3) One or more indexes of the table are currently unanalyzed OR - ** the number of rows in the table has increased by 25 times or more - ** since the last time ANALYZE was run. + ** (4) One or more of the following is true: + ** (4a) The 0x10000 MASK bit is set. + ** (4b) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. + ** (4c) The query planner used sqlite_stat1-style statistics for one + ** or more indexes of the table at some point during the lifetime + ** of the current connection. + ** + ** (5) One or more of the following is true: + ** (5a) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. (Same as 4a) + ** (5b) The number of rows in the table has increased or decreased by + ** 10-fold. In other words, the current size of the table is + ** 10 times larger than the size in sqlite_stat1 or else the + ** current size is less than 1/10th the size in sqlite_stat1. ** ** The rules for when tables are analyzed are likely to change in - ** future releases. + ** future releases. Future versions of SQLite might accept a string + ** literal argument to this pragma that contains a mnemonic description + ** of the options rather than a bitmap. */ fallthrough - case int32(PragTyp_OPTIMIZE): /* Mask of operations to perform */ + case int32(PragTyp_OPTIMIZE): /* Analysis limit to use */ + nCheck = 0 /* Number of tables to be optimized */ + nBtree = 0 /* Number of indexes on the current table */ if zRight != 0 { opMask = uint32(_sqlite3Atoi(tls, zRight)) if opMask&uint32(0x02) == uint32(0) { @@ -119490,22 +120389,31 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { opMask = uint32(0xfffe) } - v66 = pParse + 52 - v65 = *(*int32)(unsafe.Pointer(v66)) - *(*int32)(unsafe.Pointer(v66))++ - iTabCur = v65 + if opMask&uint32(0x10) == uint32(0) { + nLimit = 0 + } else { + if (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit > 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit < int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) { + nLimit = 0 + } else { + nLimit = int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) + } + } + v70 = pParse + 52 + v69 = *(*int32)(unsafe.Pointer(v70)) + *(*int32)(unsafe.Pointer(v70))++ + iTabCur = v69 if zDb != 0 { - v68 = iDb + v72 = iDb } else { - v68 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) + v72 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) } - iDbLast = v68 + iDbLast = v72 for { if !(iDb <= iDbLast) { break } if iDb == int32(1) { - goto _67 + goto _71 } _sqlite3CodeVerifySchema(tls, pParse, iDb) pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema @@ -119514,53 +120422,122 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(k4 != 0) { break } - pTab11 = (*THashElem)(unsafe.Pointer(k4)).Fdata - /* If table pTab has not been used in a way that would benefit from - ** having analysis statistics during the current session, then skip it. - ** This also has the effect of skipping virtual tables and views */ - if (*TTable)(unsafe.Pointer(pTab11)).FtabFlags&uint32(TF_StatsUsed) == uint32(0) { - goto _69 + pTab12 = (*THashElem)(unsafe.Pointer(k4)).Fdata + /* This only works for ordinary tables */ + if !(int32((*TTable)(unsafe.Pointer(pTab12)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _73 } - /* Reanalyze if the table is 25 times larger than the last analysis */ - szThreshold = int16(int32((*TTable)(unsafe.Pointer(pTab11)).FnRowLogEst) + int32(46)) - _ = libc.Int32FromInt32(0) - pIdx6 = (*TTable)(unsafe.Pointer(pTab11)).FpIndex + /* Do not scan system tables */ + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab12)).FzName, __ccgo_ts+6589, int32(7)) { + goto _73 + } + /* Find the size of the table as last recorded in sqlite_stat1. + ** If any index is unanalyzed, then the threshold is -1 to + ** indicate a new, unanalyzed index + */ + szThreshold = (*TTable)(unsafe.Pointer(pTab12)).FnRowLogEst + nIndex = 0 + pIdx7 = (*TTable)(unsafe.Pointer(pTab12)).FpIndex for { - if !(pIdx6 != 0) { + if !(pIdx7 != 0) { break } - if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx6 + 100))&0x80>>7)) != 0) { - szThreshold = 0 /* Always analyze if any index lacks statistics */ - break + nIndex++ + if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx7 + 100))&0x80>>7)) != 0) { + szThreshold = int16(-int32(1)) /* Always analyze if any index lacks statistics */ } - goto _70 - _70: + goto _74 + _74: ; - pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext + pIdx7 = (*TIndex)(unsafe.Pointer(pIdx7)).FpNext + } + /* If table pTab has not been used in a way that would benefit from + ** having analysis statistics during the current session, then skip it, + ** unless the 0x10000 MASK bit is set. */ + if (*TTable)(unsafe.Pointer(pTab12)).FtabFlags&uint32(TF_MaybeReanalyze) != uint32(0) { + /* Check for size change if stat1 has been used for a query */ + } else { + if opMask&uint32(0x10000) != 0 { + /* Check for size change if 0x10000 is set */ + } else { + if (*TTable)(unsafe.Pointer(pTab12)).FpIndex != uintptr(0) && int32(szThreshold) < 0 { + /* Do analysis if unanalyzed indexes exists */ + } else { + /* Otherwise, we can skip this table */ + goto _73 + } + } } - if szThreshold != 0 { - _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab11, int32(OP_OpenRead)) - _sqlite3VdbeAddOp3(tls, v, int32(OP_IfSmaller), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), int32(szThreshold)) + nCheck++ + if nCheck == int32(2) { + /* If ANALYZE might be invoked two or more times, hold a write + ** transaction for efficiency */ + _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) + } + nBtree += nIndex + int32(1) + /* Reanalyze if the table is 10 times larger or smaller than + ** the last analysis. Unconditional reanalysis if there are + ** unanalyzed indexes. */ + _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab12, int32(OP_OpenRead)) + if int32(szThreshold) >= 0 { + iRange = int16(33) /* 10x size change */ + if int32(szThreshold) >= int32(iRange) { + v75 = int32(szThreshold) - int32(iRange) + } else { + v75 = -int32(1) + } + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IfSizeBetween), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), v75, int32(szThreshold)+int32(iRange)) + } else { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1))) } - zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18555, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab11)).FzName)) + zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18642, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab12)).FzName)) if opMask&uint32(0x01) != 0 { r11 = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, r11, 0, zSubSql, -int32(6)) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), r11, int32(1)) } else { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), 0, 0, 0, zSubSql, -int32(6)) + if nLimit != 0 { + v76 = int32(0x02) + } else { + v76 = 00 + } + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), v76, nLimit, 0, zSubSql, -int32(6)) } - goto _69 - _69: + goto _73 + _73: ; k4 = (*THashElem)(unsafe.Pointer(k4)).Fnext } - goto _67 - _67: + goto _71 + _71: ; iDb++ } _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) + /* In a schema with a large number of tables and indexes, scale back + ** the analysis_limit to avoid excess run-time in the worst case. + */ + if !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && nLimit > 0 && nBtree > int32(100) { + nLimit = int32(100) * nLimit / nBtree + if nLimit < int32(100) { + nLimit = int32(100) + } + aOp5 = _sqlite3VdbeGetOp(tls, v, 0) + iEnd = _sqlite3VdbeCurrentAddr(tls, v) + iAddr1 = 0 + for { + if !(iAddr1 < iEnd) { + break + } + if int32((*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fopcode) == int32(OP_SqlExec) { + (*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fp2 = nLimit + } + goto _77 + _77: + ; + iAddr1++ + } + } break /* ** PRAGMA busy_timeout @@ -119655,6 +120632,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** instructions to the VM. */ if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_NoColumns1) != 0 && zRight != 0 { } + goto pragma_out pragma_out: ; _sqlite3DbFree(tls, db, zLeft) @@ -119786,34 +120764,34 @@ var _encnames1 = [9]struct { Fenc Tu8 }{ 0: { - FzName: __ccgo_ts + 18464, + FzName: __ccgo_ts + 18551, Fenc: uint8(SQLITE_UTF8), }, 1: { - FzName: __ccgo_ts + 18469, + FzName: __ccgo_ts + 18556, Fenc: uint8(SQLITE_UTF8), }, 2: { - FzName: __ccgo_ts + 18475, + FzName: __ccgo_ts + 18562, Fenc: uint8(SQLITE_UTF16LE), }, 3: { - FzName: __ccgo_ts + 18484, + FzName: __ccgo_ts + 18571, Fenc: uint8(SQLITE_UTF16BE), }, 4: { - FzName: __ccgo_ts + 18493, + FzName: __ccgo_ts + 18580, Fenc: uint8(SQLITE_UTF16LE), }, 5: { - FzName: __ccgo_ts + 18501, + FzName: __ccgo_ts + 18588, Fenc: uint8(SQLITE_UTF16BE), }, 6: { - FzName: __ccgo_ts + 18509, + FzName: __ccgo_ts + 18596, }, 7: { - FzName: __ccgo_ts + 18516, + FzName: __ccgo_ts + 18603, }, 8: {}, } @@ -119909,14 +120887,14 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg _ = argc _ = argv _sqlite3StrAccumInit(tls, bp, uintptr(0), bp+32, int32(200), 0) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18573) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18660) i = 0 j = int32((*TPragmaName)(unsafe.Pointer(pPragma)).FiPragCName) for { if !(i < int32((*TPragmaName)(unsafe.Pointer(pPragma)).FnPragCName)) { break } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18588, libc.VaList(bp+240, int32(cSep), _pragCName[j])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18675, libc.VaList(bp+240, int32(cSep), _pragCName[j])) cSep = uint8(',') goto _1 _1: @@ -119925,19 +120903,19 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg j++ } if i == 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18595, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18682, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) i++ } j = 0 if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_Result1) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18601) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18688) j++ } if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&(libc.Int32FromInt32(PragFlg_SchemaOpt)|libc.Int32FromInt32(PragFlg_SchemaReq)) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18613) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18700) j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5170, int32(1)) _sqlite3StrAccumFinish(tls, bp) _ = libc.Int32FromInt32(0) rc = Xsqlite3_declare_vtab(tls, db, bp+32) @@ -119953,7 +120931,7 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg (*TPragmaVtab)(unsafe.Pointer(pTab)).FnHidden = uint8(j) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) } *(*uintptr)(unsafe.Pointer(ppVtab)) = pTab return rc @@ -119999,14 +120977,14 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) { break } - if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { goto _1 } if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fop) != int32(SQLITE_INDEX_CONSTRAINT_EQ) { goto _1 } - if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { - goto _1 + if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + return int32(SQLITE_CONSTRAINT) } j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn - int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) _ = libc.Int32FromInt32(0) @@ -120025,16 +121003,13 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 j = seen[0] - int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) - if seen[int32(1)] == 0 { - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(1000) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(1000) - return SQLITE_OK - } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(20) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(20) - j = seen[int32(1)] - int32(1) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + if seen[int32(1)] != 0 { + j = seen[int32(1)] - int32(1) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + } return SQLITE_OK } @@ -120062,6 +121037,7 @@ func _pragmaVtabCursorClear(tls *libc.TLS, pCsr uintptr) { _ = i Xsqlite3_finalize(tls, (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma) (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma = uintptr(0) + (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FiRowid = 0 i = 0 for { if !(i < int32(libc.Uint64FromInt64(16)/libc.Uint64FromInt64(8))) { @@ -120140,7 +121116,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if zText != 0 { - *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+40, zText)) + *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+40, zText)) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -120152,13 +121128,13 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr j++ } _sqlite3StrAccumInit(tls, bp, uintptr(0), uintptr(0), 0, *(*int32)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb + 136 + 1*4))) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18628) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18715) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18636, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18723, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) } Xsqlite3_str_appendall(tls, bp, (*TPragmaName)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).FpName)).FzName) if *(*uintptr)(unsafe.Pointer(pCsr + 24)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18640, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18727, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) } zSql = _sqlite3StrAccumFinish(tls, bp) if zSql == uintptr(0) { @@ -120167,7 +121143,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr rc = Xsqlite3_prepare_v2(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), pCsr+8, uintptr(0)) Xsqlite3_free(tls, zSql) if rc != SQLITE_OK { - (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) + (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) return rc } return _pragmaVtabNext(tls, pVtabCursor) @@ -120295,24 +121271,24 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) /* A error message has already been generated. Do not overwrite it */ } else { if (*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(libc.Int32FromInt32(INITFLAG_AlterMask)) != 0 { - *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18674, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) + *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18761, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) (*TInitData)(unsafe.Pointer(pData)).Frc = int32(SQLITE_ERROR) } else { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_WriteSchema) != 0 { - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140891)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141840)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) } else { - v1 = __ccgo_ts + 5108 + v1 = __ccgo_ts + 5172 } zObj = v1 - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18702, libc.VaList(bp+8, zObj)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18789, libc.VaList(bp+8, zObj)) if zExtra != 0 && *(*uint8)(unsafe.Pointer(zExtra)) != 0 { - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18733, libc.VaList(bp+8, z, zExtra)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18820, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140898)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141847)) } } } @@ -120320,9 +121296,9 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) } var _azAlterType = [3]uintptr{ - 0: __ccgo_ts + 18644, - 1: __ccgo_ts + 18651, - 2: __ccgo_ts + 18663, + 0: __ccgo_ts + 18731, + 1: __ccgo_ts + 18738, + 2: __ccgo_ts + 18750, } // C documentation @@ -120402,7 +121378,7 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(iDb) if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), db+192) == 0 || (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage && (*TInitData)(unsafe.Pointer(pData)).FmxPage > uint32(0) { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14516) + _corruptSchema(tls, pData, argv, __ccgo_ts+14609) } } libc.SetBitFieldPtr8Uint32(db+192+8, libc.Uint32FromInt32(0), 0, 0x1) @@ -120437,11 +121413,11 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr } else { pIndex = _sqlite3FindIndex(tls, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName) if pIndex == uintptr(0) { - _corruptSchema(tls, pData, argv, __ccgo_ts+18741) + _corruptSchema(tls, pData, argv, __ccgo_ts+18828) } else { if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), pIndex+88) == 0 || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum < uint32(2) || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage || _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14516) + _corruptSchema(tls, pData, argv, __ccgo_ts+14609) } } } @@ -120485,18 +121461,18 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** table name will be inserted automatically by the parser so we can just ** use the abbreviation "x" here. The parser will also automatically tag ** the schema table as read-only. */ - (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9058 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9183 if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6533 + v2 = __ccgo_ts + 6597 } else { - v2 = __ccgo_ts + 6066 + v2 = __ccgo_ts + 6130 } v1 = v2 zSchemaTabName = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(2)] = (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8130 - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18754 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8255 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18841 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(5)] = uintptr(0) (*(*TInitData)(unsafe.Pointer(bp + 72))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 72))).FiDb = iDb @@ -120586,7 +121562,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl } else { /* If opening an attached database, the encoding much match ENC(db) */ if (*(*[5]int32)(unsafe.Pointer(bp + 48)))[libc.Int32FromInt32(BTREE_TEXT_ENCODING)-libc.Int32FromInt32(1)]&int32(3) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12095) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12220) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -120612,7 +121588,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = uint8(1) } if int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) > int32(SQLITE_MAX_FILE_FORMAT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18826) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18913) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -120628,7 +121604,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl */ _ = libc.Int32FromInt32(0) (*(*TInitData)(unsafe.Pointer(bp + 72))).FmxPage = _sqlite3BtreeLastPage(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18850, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18937, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) rc = Xsqlite3_exec(tls, db, zSql, __ccgo_fp(_sqlite3InitCallback), bp+72, uintptr(0)) @@ -120666,12 +121642,14 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** curMain and calling sqlite3BtreeEnter(). For an error that occurs ** before that point, jump to error_out. */ + goto initone_error_out initone_error_out: ; if openedTransaction != 0 { _sqlite3BtreeCommit(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) } _sqlite3BtreeLeave(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) + goto error_out error_out: ; if rc != 0 { @@ -120943,7 +121921,12 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup - pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + if _sqlite3FaultSim(tls, int32(300)) != 0 { + pCleanup = uintptr(0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) + } else { + pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + } if pCleanup != 0 { (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup @@ -120975,7 +121958,7 @@ func _sqlite3ParseObjectInit(tls *libc.TLS, pParse uintptr, db uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FpParse = pParse (*TParse)(unsafe.Pointer(pParse)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1632, 0) } } @@ -121011,7 +121994,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } _ = libc.Int32FromInt32(0) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1632, 0) v1 = libc.Int32FromInt32(SQLITE_NOMEM) rc = v1 (*Tsqlite3)(unsafe.Pointer(db)).FerrCode = v1 @@ -121062,7 +122045,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep rc = _sqlite3BtreeSchemaLocked(tls, pBt) if rc != 0 { zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FzDbSName - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18884, libc.VaList(bp+432, zDb)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18971, libc.VaList(bp+432, zDb)) goto end_prepare } } @@ -121078,7 +122061,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep if nBytes >= 0 && (nBytes == 0 || int32(*(*uint8)(unsafe.Pointer(zSql + uintptr(nBytes-int32(1))))) != 0) { mxLen = *(*int32)(unsafe.Pointer(db + 136 + 1*4)) if nBytes > mxLen { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+18914, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+19001, 0) rc = _sqlite3ApiExit(tls, db, int32(SQLITE_TOOBIG)) goto end_prepare } @@ -121114,7 +122097,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep _ = libc.Int32FromInt32(0) rc = (*(*TParse)(unsafe.Pointer(bp))).Frc if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3795, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3859, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) } else { _sqlite3Error(tls, db, rc) @@ -121131,6 +122114,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep (*(*TParse)(unsafe.Pointer(bp))).FpTriggerPrg = (*TTriggerPrg)(unsafe.Pointer(pT)).FpNext _sqlite3DbFree(tls, db, pT) } + goto end_prepare end_prepare: ; _sqlite3ParseObjectReset(tls, bp) @@ -121144,7 +122128,7 @@ func _sqlite3LockAndPrepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int3 cnt = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141699)) + return _sqlite3MisuseError(tls, int32(142654)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -121287,7 +122271,7 @@ func _sqlite3Prepare16(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, pr rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141848)) + return _sqlite3MisuseError(tls, int32(142803)) } if nBytes >= 0 { z = zSql @@ -121697,15 +122681,15 @@ func _sqlite3JoinType(tls *libc.TLS, pParse uintptr, pA uintptr, pB uintptr, pC i++ } if jointype&(libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER)) == libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER) || jointype&int32(JT_ERROR) != 0 || jointype&(libc.Int32FromInt32(JT_OUTER)|libc.Int32FromInt32(JT_LEFT)|libc.Int32FromInt32(JT_RIGHT)) == int32(JT_OUTER) { - zSp1 = __ccgo_ts + 11202 - zSp2 = __ccgo_ts + 11202 + zSp1 = __ccgo_ts + 11327 + zSp2 = __ccgo_ts + 11327 if pB == uintptr(0) { zSp1++ } if pC == uintptr(0) { zSp2++ } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18933, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19020, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) jointype = int32(JT_INNER) } return jointype @@ -122008,7 +122992,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { if int32((*TSrcItem)(unsafe.Pointer(pRight)).Ffg.Fjointype)&int32(JT_NATURAL) != 0 { pUsing = uintptr(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x400>>10)) != 0 || *(*uintptr)(unsafe.Pointer(pRight + 72)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18963, libc.VaList(bp+16, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19050, libc.VaList(bp+16, 0)) return int32(1) } j = 0 @@ -122061,7 +123045,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { zName1 = (*(*TIdList_item)(unsafe.Pointer(pList + 8 + uintptr(j)*16))).FzName iRightCol = _sqlite3ColumnIndex(tls, pRightTab, zName1) if iRightCol < 0 || _tableAndColumnIndex(tls, pSrc, 0, i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19013, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19100, libc.VaList(bp+16, zName1)) return int32(1) } pE1 = _sqlite3CreateColumnExpr(tls, db, pSrc, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) @@ -122083,7 +123067,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { pFuncArgs = uintptr(0) /* Arguments to the coalesce() */ for _tableAndColumnIndex(tls, pSrc, *(*int32)(unsafe.Pointer(bp))+int32(1), i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) != 0 { if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 60 + 4))&0x400>>10)) == 0 || _sqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 72)), zName1) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19077, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19164, libc.VaList(bp+16, zName1)) break } pFuncArgs = _sqlite3ExprListAppend(tls, pParse, pFuncArgs, pE1) @@ -122129,7 +123113,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { } var _tkCoalesce = TToken{ - Fz: __ccgo_ts + 6730, + Fz: __ccgo_ts + 6794, Fn: uint32(8), } @@ -122929,13 +123913,13 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { _ = z switch id { case int32(TK_ALL): - z = __ccgo_ts + 19114 + z = __ccgo_ts + 19201 case int32(TK_INTERSECT): - z = __ccgo_ts + 19124 + z = __ccgo_ts + 19211 case int32(TK_EXCEPT): - z = __ccgo_ts + 19134 + z = __ccgo_ts + 19221 default: - z = __ccgo_ts + 19141 + z = __ccgo_ts + 19228 break } return z @@ -122956,7 +123940,7 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { func _explainTempTable(tls *libc.TLS, pParse uintptr, zUsage uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19147, libc.VaList(bp+8, zUsage)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19234, libc.VaList(bp+8, zUsage)) } /* @@ -122990,12 +123974,17 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, iParm = (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm /* True if sorter record includes seq. no. */ nRefKey = 0 aOutEx = (*TSelect)(unsafe.Pointer(p)).FpEList + 8 - if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat > 0 { - v1 = __ccgo_ts + 19170 + nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat == 0 || nKey == int32(1) { + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat != 0 { + v1 = __ccgo_ts + 19257 + } else { + v1 = __ccgo_ts + 1662 + } + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19271, libc.VaList(bp+8, v1)) } else { - v1 = __ccgo_ts + 1648 + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19302, libc.VaList(bp+8, nKey)) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19185, libc.VaList(bp+8, v1)) _ = libc.Int32FromInt32(0) if (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut != 0 { _sqlite3VdbeAddOp2(tls, v, int32(OP_Gosub), (*TSortCtx)(unsafe.Pointer(pSort)).FregReturn, (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut) @@ -123018,7 +124007,6 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, regRow = _sqlite3GetTempRange(tls, pParse, nColumn) } } - nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat if int32((*TSortCtx)(unsafe.Pointer(pSort)).FsortFlags)&int32(SORTFLAG_UseSorter) != 0 { v3 = pParse + 56 *(*int32)(unsafe.Pointer(v3))++ @@ -123244,7 +124232,7 @@ func _columnTypeImpl(tls *libc.TLS, pNC uintptr, pExpr uintptr, pzOrigDb uintptr _ = libc.Int32FromInt32(0) if iCol < 0 { zType = __ccgo_ts + 1136 - *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16694 + *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16781 } else { *(*uintptr)(unsafe.Pointer(bp + 16)) = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, uintptr(0)) @@ -123397,13 +124385,13 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } _ = libc.Int32FromInt32(0) if iCol < 0 { - zCol = __ccgo_ts + 16694 + zCol = __ccgo_ts + 16781 } else { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } if fullName != 0 { zName1 = uintptr(0) - zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12381, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) + zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12506, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zName1, __ccgo_fp(_sqlite3OomClear)) } else { _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zCol, uintptr(-libc.Int32FromInt32(1))) @@ -123411,7 +124399,7 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } else { z = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32))).FzEName if z == uintptr(0) { - v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19216, libc.VaList(bp+8, i+int32(1))) + v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19348, libc.VaList(bp+8, i+int32(1))) } else { v2 = _sqlite3DbStrDup(tls, db, z) } @@ -123505,7 +124493,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if iCol >= 0 { v3 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } else { - v3 = __ccgo_ts + 16694 + v3 = __ccgo_ts + 16781 } zName = v3 } else { @@ -123521,7 +124509,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if zName != 0 && !(_sqlite3IsTrueOrFalse(tls, zName) != 0) { zName = _sqlite3DbStrDup(tls, db, zName) } else { - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19216, libc.VaList(bp+40, i+int32(1))) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19348, libc.VaList(bp+40, i+int32(1))) } /* Make sure the column name is unique. If the name is not unique, ** append an integer to the name so that it becomes unique. @@ -123557,7 +124545,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, } *(*Tu32)(unsafe.Pointer(bp))++ v8 = *(*Tu32)(unsafe.Pointer(bp)) - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19225, libc.VaList(bp+40, nName, zName, v8)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19357, libc.VaList(bp+40, nName, zName, v8)) _sqlite3ProgressCheck(tls, pParse) if *(*Tu32)(unsafe.Pointer(bp)) > uint32(3) { Xsqlite3_randomness(tls, int32(4), bp) @@ -123617,9 +124605,9 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS defer tls.Free(64) var a, db, p, pCol, pColl, pS2, zType, p4, p5 uintptr var i, j, m int32 - var m1, n Ti64 + var k, n Ti64 var _ /* sNC at bp+0 */ TNameContext - _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, m, m1, n, p, pCol, pColl, pS2, zType, p4, p5 + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, k, m, n, p, pCol, pColl, pS2, zType, p4, p5 db = (*TParse)(unsafe.Pointer(pParse)).Fdb _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -123640,17 +124628,22 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS if !(i < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } + m = 0 + pS2 = pSelect *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags) & libc.Int32FromInt32(COLFLAG_NOINSERT)) p = (*(*TExprList_item)(unsafe.Pointer(a + uintptr(i)*32))).FpExpr /* pCol->szEst = ... // Column size est for SELECT tables never used */ (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, p) + for int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) && (*TSelect)(unsafe.Pointer(pS2)).FpNext != uintptr(0) { + m |= _sqlite3ExprDataType(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext + (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + } if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) { (*TColumn)(unsafe.Pointer(pCol)).Faffinity = aff } - if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && (*TSelect)(unsafe.Pointer(pSelect)).FpNext != 0 { - m = 0 - m = 0 - pS2 = (*TSelect)(unsafe.Pointer(pSelect)).FpNext + if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && ((*TSelect)(unsafe.Pointer(pS2)).FpNext != 0 || pS2 != pSelect) { + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext for { if !(pS2 != 0) { break @@ -123675,7 +124668,7 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS zType = _columnTypeImpl(tls, bp, p, uintptr(0), uintptr(0), uintptr(0)) if zType == uintptr(0) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) != int32(_sqlite3AffinityType(tls, zType, uintptr(0))) { if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_NUMERIC) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_FLEXNUM) { - zType = __ccgo_ts + 19233 + zType = __ccgo_ts + 19365 } else { zType = uintptr(0) j = int32(1) @@ -123695,13 +124688,13 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS } } if zType != 0 { - m1 = int64(_sqlite3Strlen30(tls, zType)) + k = int64(_sqlite3Strlen30(tls, zType)) n = int64(_sqlite3Strlen30(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) - (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+m1+int64(2))) + (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+k+int64(2))) p4 = pCol + 14 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) & ^(libc.Int32FromInt32(COLFLAG_HASTYPE) | libc.Int32FromInt32(COLFLAG_HASCOLL))) if (*TColumn)(unsafe.Pointer(pCol)).FzCnName != 0 { - libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(m1+int64(1))) + libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(k+int64(1))) p5 = pCol + 14 *(*Tu16)(unsafe.Pointer(p5)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p5))) | libc.Int32FromInt32(COLFLAG_HASTYPE)) } @@ -123997,7 +124990,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest iDistinct = 0 /* To ensure unique results if UNION */ eDest = int32(SRT_Fifo) /* Registers used by LIMIT and OFFSET */ if (*TSelect)(unsafe.Pointer(p)).FpWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19237, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19369, 0) return } /* Obtain authorization to do a recursive query */ @@ -124090,7 +125083,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest break } if (*TSelect)(unsafe.Pointer(pFirstRec)).FselFlags&uint32(SF_Aggregate) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19286, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19418, 0) goto end_of_recursive_query } (*TSelect)(unsafe.Pointer(pFirstRec)).Fop = uint8(TK_ALL) @@ -124105,7 +125098,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest /* Store the results of the setup-query in Queue. */ pSetup = (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior (*TSelect)(unsafe.Pointer(pSetup)).FpNext = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19328, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19460, 0) rc = _sqlite3Select(tls, pParse, pSetup, bp) (*TSelect)(unsafe.Pointer(pSetup)).FpNext = p if rc != 0 { @@ -124133,13 +125126,14 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest ** the value for the recursive-table. Store the results in the Queue. */ (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19334, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19466, 0) _sqlite3Select(tls, pParse, p, bp) _ = libc.Int32FromInt32(0) (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = pSetup /* Keep running the loop until the Queue is empty */ _sqlite3VdbeGoto(tls, v, addrTop) _sqlite3VdbeResolveLabel(tls, v, addrBreak) + goto end_of_recursive_query end_of_recursive_query: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSelect)(unsafe.Pointer(p)).FpOrderBy) @@ -124191,11 +125185,11 @@ func _multiSelectValues(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) nRow += bShowAll } if nRow == int32(1) { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } else { - v1 = __ccgo_ts + 19349 + v1 = __ccgo_ts + 19481 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19351, libc.VaList(bp+8, nRow, v1)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19483, libc.VaList(bp+8, nRow, v1)) for p != 0 { _selectInnerLoop(tls, pParse, p, -int32(1), uintptr(0), uintptr(0), pDest, int32(1), int32(1)) if !(bShowAll != 0) { @@ -124310,8 +125304,8 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in return _multiSelectOrderBy(tls, pParse, p, pDest) } else { if (*TSelect)(unsafe.Pointer(pPrior)).FpPrior == uintptr(0) { - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19374, 0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19389, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19506, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19521, 0) } /* Generate code for the left and right SELECT statements. */ @@ -124337,7 +125331,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in _sqlite3VdbeAddOp3(tls, v, int32(OP_OffsetLimit), (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TSelect)(unsafe.Pointer(p)).FiOffset+int32(1), (*TSelect)(unsafe.Pointer(p)).FiOffset) } } - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19114, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19201, 0) rc = _sqlite3Select(tls, pParse, p, bp) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -124394,7 +125388,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 48))).FeDest = op - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19408, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19540, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+48) _ = libc.Int32FromInt32(0) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior @@ -124460,7 +125454,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit1 = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 88))).FiSDParm = tab2 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19408, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19540, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+88) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -124566,6 +125560,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in } _sqlite3KeyInfoUnref(tls, pKeyInfo) } + goto multi_select_end multi_select_end: ; (*TSelectDest)(unsafe.Pointer(pDest)).FiSdst = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst @@ -124586,9 +125581,9 @@ func _sqlite3SelectWrongNumTermsError(tls *libc.TLS, pParse uintptr, p uintptr) bp := tls.Alloc(16) defer tls.Free(16) if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Values) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19429, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19561, 0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19475, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19607, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) } } @@ -124974,8 +125969,8 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy = _sqlite3ExprListDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pOrderBy, 0) - _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7367) - _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7367) + _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7492) + _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7492) /* Compute the limit registers */ _computeLimitRegisters(tls, pParse, p, labelEnd) if (*TSelect)(unsafe.Pointer(p)).FiLimit != 0 && op == int32(TK_ALL) { @@ -125019,14 +126014,14 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr regOutB = v21 _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), regAddrA) _sqlite3SelectDestInit(tls, bp+40, int32(SRT_Coroutine), regAddrB) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19557, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19689, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) /* Generate a coroutine to evaluate the SELECT statement to the ** left of the compound operator - the "A" select. */ addrSelectA = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regAddrA, 0, addrSelectA) (*TSelect)(unsafe.Pointer(pPrior)).FiLimit = regLimitA - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19568, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19700, 0) _sqlite3Select(tls, pParse, pPrior, bp) _sqlite3VdbeEndCoroutine(tls, v, regAddrA) _sqlite3VdbeJumpHere(tls, v, addr1) @@ -125039,7 +126034,7 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr savedOffset = (*TSelect)(unsafe.Pointer(p)).FiOffset (*TSelect)(unsafe.Pointer(p)).FiLimit = regLimitB (*TSelect)(unsafe.Pointer(p)).FiOffset = 0 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19573, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19705, 0) _sqlite3Select(tls, pParse, p, bp+40) (*TSelect)(unsafe.Pointer(p)).FiLimit = savedLimit (*TSelect)(unsafe.Pointer(p)).FiOffset = savedOffset @@ -125257,7 +126252,7 @@ func _substExpr(tls *libc.TLS, pSubst uintptr, pExpr uintptr) (r uintptr) { if pColl != 0 { v1 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v1 = __ccgo_ts + 5086 + v1 = __ccgo_ts + 5150 } pExpr = _sqlite3ExprAddCollateString(tls, (*TSubstContext)(unsafe.Pointer(pSubst)).FpParse, pExpr, v1) } @@ -126321,10 +127316,10 @@ func _findConstInWhere(tls *libc.TLS, pConst uintptr, pExpr uintptr) { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pLeft) != 0 { + if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pLeft) != 0 { _constInsert(tls, pConst, pRight, pLeft, pExpr) } - if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pRight) != 0 { + if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pRight) != 0 { _constInsert(tls, pConst, pLeft, pRight, pExpr) } } @@ -126565,6 +127560,18 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** The hope is that the terms added to the inner query will make it more // ** efficient. // ** +// ** NAME AMBIGUITY +// ** +// ** This optimization is called the "WHERE-clause push-down optimization". +// ** +// ** Do not confuse this optimization with another unrelated optimization +// ** with a similar name: The "MySQL push-down optimization" causes WHERE +// ** clause terms that can be evaluated using only the index and without +// ** reference to the table are run first, so that if they are false, +// ** unnecessary table seeks are avoided. +// ** +// ** RULES +// ** // ** Do not attempt this optimization if: // ** // ** (1) (** This restriction was removed on 2017-09-29. We used to @@ -126630,10 +127637,10 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** (9c) There is a RIGHT JOIN (or FULL JOIN) in between the ON/USING // ** clause and the subquery. // ** -// ** Without this restriction, the push-down optimization might move -// ** the ON/USING filter expression from the left side of a RIGHT JOIN -// ** over to the right side, which leads to incorrect answers. See -// ** also restriction (6) in sqlite3ExprIsSingleTableConstraint(). +// ** Without this restriction, the WHERE-clause push-down optimization +// ** might move the ON/USING filter expression from the left side of a +// ** RIGHT JOIN over to the right side, which leads to incorrect answers. +// ** See also restriction (6) in sqlite3ExprIsSingleTableConstraint(). // ** // ** (10) The inner query is not the right-hand table of a RIGHT JOIN. // ** @@ -126728,7 +127735,7 @@ func _pushDownWhereTerms(tls *libc.TLS, pParse uintptr, pSubq uintptr, pWhere ui nChng += _pushDownWhereTerms(tls, pParse, pSubq, (*TExpr)(unsafe.Pointer(pWhere)).FpRight, pSrcList, iSrc) pWhere = (*TExpr)(unsafe.Pointer(pWhere)).FpLeft } - if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc) != 0 { + if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc, int32(1)) != 0 { nChng++ *(*Tu32)(unsafe.Pointer(pSubq + 4)) |= uint32(SF_PushDown) for pSubq != 0 { @@ -126907,13 +127914,13 @@ func _minMaxQuery(tls *libc.TLS, db uintptr, pFunc uintptr, ppMinMax uintptr) (r } _ = libc.Int32FromInt32(0) zFunc = *(*uintptr)(unsafe.Pointer(pFunc + 8)) - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15550) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15643) == 0 { eRet = int32(WHERE_ORDERBY_MIN) if _sqlite3ExprCanBeNull(tls, (*(*TExprList_item)(unsafe.Pointer(pEList + 8))).FpExpr) != 0 { sortFlags = uint8(KEYINFO_ORDER_BIGNULL) } } else { - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15554) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15647) == 0 { eRet = int32(WHERE_ORDERBY_MAX) sortFlags = uint8(KEYINFO_ORDER_DESC) } else { @@ -127009,7 +128016,7 @@ func _sqlite3IndexedByLookup(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r in pIdx = (*TIndex)(unsafe.Pointer(pIdx)).FpNext } if !(pIdx != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19579, libc.VaList(bp+8, zIndexedBy, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19711, libc.VaList(bp+8, zIndexedBy, 0)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) return int32(SQLITE_ERROR) } @@ -127136,7 +128143,7 @@ func _cannotBeFunction(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x4>>2)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19597, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19729, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) return int32(1) } return 0 @@ -127318,7 +128325,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom *(*Tu32)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect + 4)) |= uint32(SF_CopyCte) _ = libc.Int32FromInt32(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x2>>1)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19620, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19752, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) return int32(2) } libc.SetBitFieldPtr16Uint32(pFrom+60+4, libc.Uint32FromInt32(1), 8, 0x100) @@ -127343,7 +128350,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ libc.SetBitFieldPtr16Uint32(pItem+60+4, libc.Uint32FromInt32(1), 6, 0x40) if (*TSelect)(unsafe.Pointer(pRecTerm)).FselFlags&uint32(SF_Recursive) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19640, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19772, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) return int32(2) } *(*Tu32)(unsafe.Pointer(pRecTerm + 4)) |= uint32(SF_Recursive) @@ -127365,7 +128372,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } pRecTerm = (*TSelect)(unsafe.Pointer(pRecTerm)).FpPrior } - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19683 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19815 pSavedWith = (*TParse)(unsafe.Pointer(pParse)).FpWith (*TParse)(unsafe.Pointer(pParse)).FpWith = *(*uintptr)(unsafe.Pointer(bp)) if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { @@ -127401,7 +128408,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom pEList = (*TSelect)(unsafe.Pointer(pLeft)).FpEList if (*TCte)(unsafe.Pointer(pCte)).FpCols != 0 { if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr != (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19706, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19838, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) (*TParse)(unsafe.Pointer(pParse)).FpWith = pSavedWith return int32(2) } @@ -127410,9 +128417,9 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom _sqlite3ColumnsFromExprList(tls, pParse, pEList, pTab+54, pTab+8) if bMayRecursive != 0 { if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19744 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19876 } else { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19778 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19910 } _sqlite3WalkSelect(tls, pWalker, pSel) } @@ -127473,7 +128480,7 @@ func _sqlite3ExpandSubquery(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int if (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias != 0 { (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3DbStrDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias) } else { - (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19816, libc.VaList(bp+8, pFrom)) + (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19948, libc.VaList(bp+8, pFrom)) } for (*TSelect)(unsafe.Pointer(pSel)).FpPrior != 0 { pSel = (*TSelect)(unsafe.Pointer(pSel)).FpPrior @@ -127637,7 +128644,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { return int32(WRC_Abort) } if (*TTable)(unsafe.Pointer(pTab)).FnTabRef >= uint32(0xffff) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19820, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19952, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) (*TSrcItem)(unsafe.Pointer(pFrom)).FpTab = uintptr(0) return int32(WRC_Abort) } @@ -127653,7 +128660,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_EnableView) == uint64(0) && (*TTable)(unsafe.Pointer(pTab)).FpSchema != (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19859, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19991, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } (*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect = _sqlite3SelectDup(tls, db, (*(*struct { FpSelect uintptr @@ -127668,7 +128675,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).Fp)).FeVtabRisk) > libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15109, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15202, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } } _ = libc.Int32FromInt32(0) @@ -127805,7 +128812,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if iDb >= 0 { v10 = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName } else { - v10 = __ccgo_ts + 6590 + v10 = __ccgo_ts + 6654 } zSchemaName = v10 } @@ -127823,7 +128830,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if pNew != 0 { pX = pNew + 8 + uintptr((*TExprList)(unsafe.Pointer(pNew)).FnExpr-int32(1))*32 _ = libc.Int32FromInt32(0) - (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19890, libc.VaList(bp+8, zUName)) + (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20022, libc.VaList(bp+8, zUName)) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(ENAME_TAB), 0, 0x3) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(1), 7, 0x80) } @@ -127905,7 +128912,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, (*(*TExprList_item)(unsafe.Pointer(pNestedFrom + 8 + uintptr(j)*32))).FzEName) } else { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19895, libc.VaList(bp+8, zSchemaName, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20027, libc.VaList(bp+8, zSchemaName, zTabName, zName)) } if j == int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) { v13 = int32(ENAME_ROWID) @@ -127918,7 +128925,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } } else { if longNames != 0 { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12381, libc.VaList(bp+8, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12506, libc.VaList(bp+8, zTabName, zName)) libc.SetBitFieldPtr16Uint32(pX1+16+4, libc.Uint32FromInt32(ENAME_NAME), 0, 0x3) } else { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, zName) @@ -127938,9 +128945,9 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if !(tableSeen != 0) { if zTName != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19904, libc.VaList(bp+8, zTName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20036, libc.VaList(bp+8, zTName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19922, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20054, 0) } } } @@ -127954,7 +128961,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if (*TSelect)(unsafe.Pointer(p)).FpEList != 0 { if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpEList)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19942, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20074, 0) return int32(WRC_Abort) } if elistFlags&uint32(libc.Int32FromInt32(EP_HasFunc)|libc.Int32FromInt32(EP_Subquery)) != uint32(0) { @@ -128316,12 +129323,12 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { pE = (*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFExpr _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(pE + 32)) == uintptr(0) || (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pE + 32)))).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19973, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20105, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct = -int32(1) } else { pKeyInfo = _sqlite3KeyInfoFromExprList(tls, pParse, *(*uintptr)(unsafe.Pointer(pE + 32)), 0, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistAddr = _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct, 0, 0, pKeyInfo, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20024, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20156, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } } if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab >= 0 { @@ -128347,7 +129354,7 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { (*TKeyInfo)(unsafe.Pointer(pKeyInfo1)).FnKeyField++ } _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab, (*TExprList)(unsafe.Pointer(pOBList)).FnExpr+nExtra, 0, pKeyInfo1, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20057, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20189, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } goto _1 _1: @@ -128672,16 +129679,16 @@ func _explainSimpleCount(tls *libc.TLS, pParse uintptr, pTab uintptr, pIdx uintp if int32((*TParse)(unsafe.Pointer(pParse)).Fexplain) == int32(2) { bCover = libc.BoolInt32(pIdx != uintptr(0) && ((*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) || !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == libc.Int32FromInt32(SQLITE_IDXTYPE_PRIMARYKEY)))) if bCover != 0 { - v1 = __ccgo_ts + 20090 + v1 = __ccgo_ts + 20222 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } if bCover != 0 { v2 = (*TIndex)(unsafe.Pointer(pIdx)).FzName } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20113, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20245, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) } } @@ -128713,7 +129720,7 @@ func _havingToWhereExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 ** statements AggInfo structure. */ if _sqlite3ExprIsConstantOrGroupBy(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, pExpr, (*TSelect)(unsafe.Pointer(pS)).FpGroupBy) != 0 && libc.BoolInt32((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse)) == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb - pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8130) + pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8255) if pNew != 0 { pWhere = (*TSelect)(unsafe.Pointer(pS)).FpWhere t = *(*TExpr)(unsafe.Pointer(pNew)) @@ -128873,7 +129880,7 @@ func _countOfViewOptimization(tls *libc.TLS, pParse uintptr, p uintptr) (r int32 return 0 } /* Result is an aggregate */ _ = libc.Int32FromInt32(0) - if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15844) != 0 { + if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15937) != 0 { return 0 } /* Is count() */ _ = libc.Int32FromInt32(0) @@ -129146,7 +130153,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { v1 = (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p0)).FpTab)).FzName } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20125, libc.VaList(bp+176, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20257, libc.VaList(bp+176, v1)) goto select_end } /* Clear the SF_UFSrcCheck flag. The check has already been performed, @@ -129249,7 +130256,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Catch mismatch in the declared columns of a view and the number of ** columns in the SELECT on the RHS */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) != (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20179, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20311, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) goto select_end } /* Do not attempt the usual optimizations (flattening and ORDER BY @@ -129387,12 +130394,12 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r ** string for the fake column name seems safer. */ if (*TSrcItem)(unsafe.Pointer(pItem1)).FcolUsed == uint64(0) && (*TSrcItem)(unsafe.Pointer(pItem1)).FzName != uintptr(0) { - _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1648, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) + _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1662, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) } /* Generate code for all sub-queries in the FROM clause */ pSub1 = (*TSrcItem)(unsafe.Pointer(pItem1)).FpSelect - if pSub1 == uintptr(0) { + if pSub1 == uintptr(0) || (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub != 0 { goto _10 } /* The code for a subquery should only be generated once. */ @@ -129433,7 +130440,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn, 0, addrTop) (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub = addrTop _sqlite3SelectDestInit(tls, bp+72, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20219, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20351, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow libc.SetBitFieldPtr16Uint32(pItem1+60+4, libc.Uint32FromInt32(1), 5, 0x20) @@ -129481,7 +130488,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { } _sqlite3SelectDestInit(tls, bp+72, int32(SRT_EphemTab), (*TSrcItem)(unsafe.Pointer(pItem1)).FiCursor) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20234, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20366, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow if onceAddr != 0 { @@ -129899,11 +130906,11 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r groupBySort = 0 } else { if (*(*TDistinctCtx)(unsafe.Pointer(bp))).FisTnct != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Distinct) == uint32(0) { - v44 = __ccgo_ts + 20250 + v44 = __ccgo_ts + 20382 } else { - v44 = __ccgo_ts + 20259 + v44 = __ccgo_ts + 20391 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19147, libc.VaList(bp+176, v44)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19234, libc.VaList(bp+176, v44)) groupBySort = int32(1) nGroupBy = (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr nCol = nGroupBy @@ -130227,7 +131234,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeResolveLabel(tls, v, addrEnd) } /* endif aggregate query */ if int32((*(*TDistinctCtx)(unsafe.Pointer(bp))).FeTnctType) == int32(WHERE_DISTINCT_UNORDERED) { - _explainTempTable(tls, pParse, __ccgo_ts+20250) + _explainTempTable(tls, pParse, __ccgo_ts+20382) } /* If there is an ORDER BY clause, then we need to sort the results ** and send them to the callback one by one. @@ -130245,6 +131252,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Control jumps to here if an error is encountered above, or upon ** successful coding of the SELECT. */ + goto select_end select_end: ; _ = libc.Int32FromInt32(0) @@ -130335,7 +131343,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr if !(i < nCol) { break } - z = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) + z = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) if z == uintptr(0) { goto malloc_failed } @@ -130351,7 +131359,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr } else { if int32((*TTabResult)(unsafe.Pointer(p)).FnColumn) != nCol { Xsqlite3_free(tls, (*TTabResult)(unsafe.Pointer(p)).FzErrMsg) - (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20268, 0) + (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20400, 0) (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) return int32(1) } @@ -130386,6 +131394,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr (*TTabResult)(unsafe.Pointer(p)).FnRow++ } return 0 + goto malloc_failed malloc_failed: ; (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) @@ -130441,7 +131450,7 @@ func Xsqlite3_get_table(tls *libc.TLS, db uintptr, zSql uintptr, pazResult uintp if (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg != 0 { if pzErrMsg != 0 { Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pzErrMsg))) - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) } Xsqlite3_free(tls, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg) } @@ -130611,7 +131620,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if isTemp != 0 { /* If TEMP was specified, then the trigger name may not be qualified. */ if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20333, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20465, 0) goto trigger_cleanup } iDb = int32(1) @@ -130652,7 +131661,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } _ = libc.Int32FromInt32(0) - _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20379, *(*uintptr)(unsafe.Pointer(bp))) + _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20511, *(*uintptr)(unsafe.Pointer(bp))) if _sqlite3FixSrcList(tls, bp+8, pTableName) != 0 { goto trigger_cleanup } @@ -130662,11 +131671,11 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_orphan_error } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20387, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20519, 0) goto trigger_orphan_error } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, db) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20428, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20560, 0) goto trigger_orphan_error } /* Check that the trigger name is not reserved and that no trigger of the @@ -130676,14 +131685,14 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 _ = libc.Int32FromInt32(0) goto trigger_cleanup } - if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20379, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { + if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20511, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { goto trigger_cleanup } _ = libc.Int32FromInt32(0) if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema+56, zName) != 0 { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20468, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20600, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -130692,8 +131701,8 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 } } /* Do not create a trigger on a system table */ - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6525, int32(7)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20494, 0) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6589, int32(7)) == 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20626, 0) goto trigger_cleanup } /* INSTEAD of triggers are only for views and views only support INSTEAD @@ -130701,15 +131710,15 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && tr_tm != int32(TK_INSTEAD) { if tr_tm == int32(TK_BEFORE) { - v1 = __ccgo_ts + 20532 + v1 = __ccgo_ts + 20664 } else { - v1 = __ccgo_ts + 20539 + v1 = __ccgo_ts + 20671 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20545, libc.VaList(bp+112, v1, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20677, libc.VaList(bp+112, v1, pTableName+8)) goto trigger_orphan_error } if !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) && tr_tm == int32(TK_INSTEAD) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20582, libc.VaList(bp+112, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20714, libc.VaList(bp+112, pTableName+8)) goto trigger_orphan_error } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -130729,9 +131738,9 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iTabDb == int32(1) { - v3 = __ccgo_ts + 6533 + v3 = __ccgo_ts + 6597 } else { - v3 = __ccgo_ts + 6066 + v3 = __ccgo_ts + 6130 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto trigger_cleanup @@ -130773,6 +131782,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 pColumns = uintptr(0) _ = libc.Int32FromInt32(0) (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger = pTrigger + goto trigger_cleanup trigger_cleanup: ; _sqlite3DbFree(tls, db, zName) @@ -130785,6 +131795,7 @@ trigger_cleanup: _ = libc.Int32FromInt32(0) } return + goto trigger_orphan_error trigger_orphan_error: ; if int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) == int32(1) { @@ -130831,7 +131842,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl pStepList = (*TTriggerStep)(unsafe.Pointer(pStepList)).FpNext } _sqlite3TokenInit(tls, bp+96, (*TTrigger)(unsafe.Pointer(pTrig)).FzName) - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20379, bp+96) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20511, bp+96) if _sqlite3FixTriggerStep(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).Fstep_list) != 0 || _sqlite3FixExpr(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).FpWhen) != 0 { goto triggerfinish_cleanup } @@ -130854,7 +131865,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl break } if (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget != uintptr(0) && _sqlite3ShadowTableName(tls, db, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20628, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20760, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) goto triggerfinish_cleanup } goto _1 @@ -130870,10 +131881,10 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) z = _sqlite3DbStrNDup(tls, db, (*TToken)(unsafe.Pointer(pAll)).Fz, uint64((*TToken)(unsafe.Pointer(pAll)).Fn)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20676, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20808, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) _sqlite3DbFree(tls, db, z) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20751, libc.VaList(bp+120, zName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20883, libc.VaList(bp+120, zName)), uint16(0)) } } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { @@ -130893,6 +131904,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } } } + goto triggerfinish_cleanup triggerfinish_cleanup: ; _sqlite3DeleteTrigger(tls, db, pTrig) @@ -131148,7 +132160,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int } if !(pTrigger != 0) { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20780, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20912, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, zDb) } @@ -131156,6 +132168,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int goto drop_trigger_cleanup } _sqlite3DropTriggerPtr(tls, pParse, pTrigger) + goto drop_trigger_cleanup drop_trigger_cleanup: ; _sqlite3SrcListDelete(tls, db, pName) @@ -131191,9 +132204,9 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { code = int32(SQLITE_DROP_TRIGGER) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6533 + v1 = __ccgo_ts + 6597 } else { - v1 = __ccgo_ts + 6066 + v1 = __ccgo_ts + 6130 } zTab = v1 if iDb == int32(1) { @@ -131208,7 +132221,7 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { v2 = _sqlite3GetVdbe(tls, pParse) v = v2 if v2 != uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20800, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20932, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropTrigger), iDb, 0, 0, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName, 0) } @@ -131344,11 +132357,11 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { if op != int32(TK_INSERT) { if op == int32(TK_DELETE) { - v1 = __ccgo_ts + 20862 + v1 = __ccgo_ts + 20994 } else { - v1 = __ccgo_ts + 20869 + v1 = __ccgo_ts + 21001 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20876, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21008, libc.VaList(bp+8, v1)) } (*TTrigger)(unsafe.Pointer(p)).Ftr_tm = uint8(TRIGGER_BEFORE) } else { @@ -131365,6 +132378,7 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, p = (*TTrigger)(unsafe.Pointer(p)).FpNext } } + goto exit_triggers_exist exit_triggers_exist: ; if pMask != 0 { @@ -131454,7 +132468,7 @@ func _isAsteriskTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pTerm)).FpRight)).Fop) != int32(TK_ASTERISK) { return 0 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20924, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21056, 0) return int32(1) } @@ -131519,6 +132533,81 @@ func _sqlite3ExpandReturning(tls *libc.TLS, pParse uintptr, pList uintptr, pTab return pNew } +// C documentation +// +// /* If the Expr node is a subquery or an EXISTS operator or an IN operator that +// ** uses a subquery, and if the subquery is SF_Correlated, then mark the +// ** expression as EP_VarSelect. +// */ +func _sqlite3ReturningSubqueryVarSelect(tls *libc.TLS, NotUsed uintptr, pExpr uintptr) (r int32) { + _ = NotUsed + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) && (*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FselFlags&uint32(SF_Correlated) != uint32(0) { + *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** If the SELECT references the table pWalker->u.pTab, then do two things: +// ** +// ** (1) Mark the SELECT as as SF_Correlated. +// ** (2) Set pWalker->eCode to non-zero so that the caller will know +// ** that (1) has happened. +// */ +func _sqlite3ReturningSubqueryCorrelated(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + var i int32 + var pSrc uintptr + _, _ = i, pSrc + _ = libc.Int32FromInt32(0) + pSrc = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + _ = libc.Int32FromInt32(0) + i = 0 + for { + if !(i < (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) { + break + } + if (*(*TSrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104))).FpTab == *(*uintptr)(unsafe.Pointer(pWalker + 40)) { + *(*Tu32)(unsafe.Pointer(pSelect + 4)) |= uint32(SF_Correlated) + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + break + } + goto _1 + _1: + ; + i++ + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Scan the expression list that is the argument to RETURNING looking +// ** for subqueries that depend on the table which is being modified in the +// ** statement that is hosting the RETURNING clause (pTab). Mark all such +// ** subqueries as SF_Correlated. If the subqueries are part of an +// ** expression, mark the expression as EP_VarSelect. +// ** +// ** https://sqlite.org/forum/forumpost/2c83569ce8945d39 +// */ +func _sqlite3ProcessReturningSubqueries(tls *libc.TLS, pEList uintptr, pTab uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ExprWalkNoop) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3ReturningSubqueryCorrelated) + *(*uintptr)(unsafe.Pointer(bp + 40)) = pTab + _sqlite3WalkExprList(tls, bp, pEList) + if (*(*TWalker)(unsafe.Pointer(bp))).FeCode != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ReturningSubqueryVarSelect) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) + _sqlite3WalkExprList(tls, bp, pEList) + } +} + // C documentation // // /* @@ -131555,6 +132644,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab (*(*TSelect)(unsafe.Pointer(bp))).FpSrc = bp + 128 (*(*TSrcList)(unsafe.Pointer(bp + 128))).FnSrc = int32(1) (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FpTab = pTab + (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FzName = (*TTable)(unsafe.Pointer(pTab)).FzName /* tag-20240424-1 */ (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FiCursor = -int32(1) _sqlite3SelectPrep(tls, pParse, bp, uintptr(0)) if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { @@ -131580,6 +132670,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab if _sqlite3ResolveExprListNames(tls, bp+240, pNew) == SQLITE_OK && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) { nCol = (*TExprList)(unsafe.Pointer(pNew)).FnExpr reg = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(1) + _sqlite3ProcessReturningSubqueries(tls, pNew, pTab) *(*int32)(unsafe.Pointer(pParse + 56)) += nCol + int32(2) (*TReturning)(unsafe.Pointer(pReturning)).FiRetReg = reg i = 0 @@ -131652,7 +132743,7 @@ func _codeTriggerProgram(tls *libc.TLS, pParse uintptr, pStepList uintptr, orcon (*TParse)(unsafe.Pointer(pParse)).FeOrconf = uint8(v2) _ = libc.Int32FromInt32(0) if (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6263, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6327, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) } switch int32((*TTriggerStep)(unsafe.Pointer(pStep)).Fop) { case int32(TK_UPDATE): @@ -131759,7 +132850,7 @@ func _codeRowTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab uintp v = _sqlite3GetVdbe(tls, bp+56) if v != 0 { if (*TTrigger)(unsafe.Pointer(pTrigger)).FzName != 0 { - _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+20966, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) + _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+21098, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) } /* If one was specified, code the WHEN clause. If it evaluates to false ** (or NULL) the sub-vdbe is immediately halted by jumping to the @@ -132473,7 +133564,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui chngPk = uint8(1) } else { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20980, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21112, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto update_cleanup } } @@ -132493,13 +133584,13 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui pRowidExpr = (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FpExpr iRowidExpr = i } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21016, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21148, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto update_cleanup } } if j < 0 { - v11 = __ccgo_ts + 7905 + v11 = __ccgo_ts + 8030 } else { v11 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName } @@ -133195,8 +134286,9 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui ** that information. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21035) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21167) } + goto update_cleanup update_cleanup: ; _sqlite3AuthContextPop(tls, bp) @@ -133643,9 +134735,9 @@ func _sqlite3UpsertAnalyzeTarget(tls *libc.TLS, pParse uintptr, pTabList uintptr if nClause == 0 && (*TUpsert)(unsafe.Pointer(pUpsert)).FpNextUpsert == uintptr(0) { (*(*[16]uint8)(unsafe.Pointer(bp + 200)))[0] = uint8(0) } else { - Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21048, libc.VaList(bp+224, nClause+int32(1))) + Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21180, libc.VaList(bp+224, nClause+int32(1))) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21052, libc.VaList(bp+224, bp+200)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21184, libc.VaList(bp+224, bp+200)) return int32(SQLITE_ERROR) } goto _1 @@ -133751,7 +134843,7 @@ func _sqlite3UpsertDoUpdate(tls *libc.TLS, pParse uintptr, pUpsert uintptr, pTab i++ } i = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), iDataCur, 0, iPk, nPk) - _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12470, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12595, -int32(1)) _sqlite3MayAbort(tls, pParse) _sqlite3VdbeJumpHere(tls, v, i) } @@ -133834,7 +134926,7 @@ func _execSql(tls *libc.TLS, db uintptr, pzErrMsg uintptr, zSql uintptr) (r int3 ** corrupt the sqlite_schema.sql field with other kinds of statements ** then run VACUUM to get those statements to execute at inappropriate ** times. */ - if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21125, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21129, uint64(3)) == 0) { + if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21257, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21261, uint64(3)) == 0) { rc = _execSql(tls, db, pzErrMsg, zSubSql) if rc != SQLITE_OK { break @@ -133935,6 +135027,7 @@ func _sqlite3Vacuum(tls *libc.TLS, pParse uintptr, _pNm uintptr, pInto uintptr) _sqlite3VdbeAddOp2(tls, v, int32(OP_Vacuum), iDb, iIntoReg) _sqlite3VdbeUsesBtree(tls, v, iDb) } + goto build_vacuum_end build_vacuum_end: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pInto) @@ -133962,24 +135055,24 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p pDb = uintptr(0) /* Name of output file */ pgflags = uint32(PAGER_SYNCHRONOUS_OFF) /* sync flags for output db */ if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21133) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21265) return int32(SQLITE_ERROR) /* IMP: R-12218-18073 */ } if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive > int32(1) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21173) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21305) return int32(SQLITE_ERROR) /* IMP: R-15610-35227 */ } saved_openFlags = (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags if pOut != 0 { if Xsqlite3_value_type(tls, pOut) != int32(SQLITE_TEXT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21216) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21348) return int32(SQLITE_ERROR) } zOut = Xsqlite3_value_text(tls, pOut) *(*uint32)(unsafe.Pointer(db + 76)) &= uint32(^libc.Int32FromInt32(SQLITE_OPEN_READONLY)) *(*uint32)(unsafe.Pointer(db + 76)) |= uint32(libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE)) } else { - zOut = __ccgo_ts + 1648 + zOut = __ccgo_ts + 1662 } /* Save the current value of the database flags so that it can be ** restored before returning. Then set the writable-schema flag, and @@ -134011,7 +135104,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** to write the journal header file. */ nDb = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21234, libc.VaList(bp+24, zOut)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21366, libc.VaList(bp+24, zOut)) (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags = saved_openFlags if rc != SQLITE_OK { goto end_of_vacuum @@ -134025,7 +135118,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p *(*Ti64)(unsafe.Pointer(bp)) = 0 if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != uintptr(0) && (_sqlite3OsFileSize(tls, id, bp) != SQLITE_OK || *(*Ti64)(unsafe.Pointer(bp)) > 0) { rc = int32(SQLITE_ERROR) - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21257) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21389) goto end_of_vacuum } *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_VacuumInto) @@ -134042,7 +135135,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** file. This is done before the sqlite3BtreeGetPageSize(pMain) call below, ** to ensure that we do not try to change the page-size on a WAL database. */ - rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14879) + rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14972) if rc != SQLITE_OK { goto end_of_vacuum } @@ -134073,11 +135166,11 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** in the temporary database. */ (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(nDb) /* force new CREATE statements into vacuum_db */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21284, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21416, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21392, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21524, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } @@ -134086,7 +135179,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** an "INSERT INTO vacuum_db.xxx SELECT * FROM main.xxx;" to copy ** the contents to the temporary database. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21446, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21578, libc.VaList(bp+24, zDbMain)) _ = libc.Int32FromInt32(0) *(*Tu32)(unsafe.Pointer(db + 44)) &= uint32(^libc.Int32FromInt32(DBFLAG_Vacuum)) if rc != SQLITE_OK { @@ -134097,7 +135190,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** associated storage, so all we have to do is copy their entries ** from the schema table. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21597, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21729, libc.VaList(bp+24, zDbMain)) if rc != 0 { goto end_of_vacuum } @@ -134139,6 +135232,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p nRes = _sqlite3BtreeGetRequestedReserve(tls, pTemp) rc = _sqlite3BtreeSetPageSize(tls, pMain, _sqlite3BtreeGetPageSize(tls, pTemp), nRes, int32(1)) } + goto end_of_vacuum end_of_vacuum: ; /* Restore the original value of db->flags */ @@ -134644,7 +135738,7 @@ func _addModuleArgument(tls *libc.TLS, pParse uintptr, pTable uintptr, zArg uint FazArg uintptr Fp uintptr })(unsafe.Pointer(pTable + 64))).FnArg+int32(3) >= *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12700, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12825, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) } azModuleArg = _sqlite3DbRealloc(tls, db, (*(*struct { FnArg int32 @@ -134771,7 +135865,7 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { if pEnd != 0 { (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fn = uint32(int32(int64((*TToken)(unsafe.Pointer(pEnd)).Fz)-int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz))) + (*TToken)(unsafe.Pointer(pEnd)).Fn } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21727, libc.VaList(bp+8, pParse+272)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21859, libc.VaList(bp+8, pParse+272)) /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. @@ -134781,11 +135875,11 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { ** by sqlite3StartTable(). */ iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+21751, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+21883, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) v = _sqlite3GetVdbe(tls, pParse) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) - zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21850, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) + zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21982, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, zWhere, uint16(0)) _sqlite3DbFree(tls, db, zStmt) v2 = pParse + 56 @@ -134875,7 +135969,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, break } if (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab == pTab { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21869, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22001, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(SQLITE_LOCKED) } goto _1 @@ -134912,6 +136006,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = bp (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+16, bp+32) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -134920,9 +136016,9 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, _ = libc.Int32FromInt32(0) if SQLITE_OK != rc { if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21911, libc.VaList(bp+48, zModuleName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22043, libc.VaList(bp+48, zModuleName)) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3795, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3859, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) } _sqlite3DbFree(tls, db, pVTable) @@ -134935,8 +136031,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*TModule)(unsafe.Pointer(pMod)).FnRefModule++ (*TVTable)(unsafe.Pointer(pVTable)).FnRef = int32(1) if (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared == 0 { - zFormat = __ccgo_ts + 21941 - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + zFormat = __ccgo_ts + 22073 + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, zModuleName)) _sqlite3VtabUnlock(tls, pVTable) rc = int32(SQLITE_ERROR) } else { @@ -134961,7 +136057,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(iCol < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } - zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1648) + zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1662) i = 0 nType = _sqlite3Strlen30(tls, zType) i = 0 @@ -134969,7 +136065,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(i < nType) { break } - if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16585, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { + if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16672, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { break } goto _3 @@ -135053,13 +136149,13 @@ func _sqlite3VtabCallConnect(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).FazArg)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21987, libc.VaList(bp+16, zModule)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22119, libc.VaList(bp+16, zModule)) rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxConnect, bp) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) (*TParse)(unsafe.Pointer(pParse)).Frc = rc } _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) @@ -135141,7 +136237,7 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, ** error. Otherwise, do nothing. */ if pMod == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxDestroy == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21987, libc.VaList(bp+8, zMod)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22119, libc.VaList(bp+8, zMod)) rc = int32(SQLITE_ERROR) } else { rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate, pzErr) @@ -135167,18 +136263,42 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r int32) { bp := tls.Alloc(448) defer tls.Free(448) - var initBusy, rc int32 - var pCtx, pIdx, pNew, pTab, v2 uintptr - var v1 Ti16 + var i, initBusy, rc int32 + var pCtx, pIdx, pNew, pTab, z, v3 uintptr + var v2 Ti16 var _ /* sParse at bp+0 */ TParse - _, _, _, _, _, _, _, _ = initBusy, pCtx, pIdx, pNew, pTab, rc, v1, v2 + var _ /* tokenType at bp+424 */ int32 + _, _, _, _, _, _, _, _, _, _ = i, initBusy, pCtx, pIdx, pNew, pTab, rc, z, v2, v3 rc = SQLITE_OK + /* Verify that the first two keywords in the CREATE TABLE statement + ** really are "CREATE" and "TABLE". If this is not the case, then + ** sqlite3_declare_vtab() is being misused. + */ + z = zCreateTable + i = 0 + for { + if !(_aKeyword1[i] != 0) { + break + } + *(*int32)(unsafe.Pointer(bp + 424)) = 0 + for cond := true; cond; cond = *(*int32)(unsafe.Pointer(bp + 424)) == int32(TK_SPACE) { + z += uintptr(_sqlite3GetToken(tls, z, bp+424)) + } + if *(*int32)(unsafe.Pointer(bp + 424)) != int32(_aKeyword1[i]) { + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+22138, 0) + return int32(SQLITE_ERROR) + } + goto _1 + _1: + ; + i++ + } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pCtx = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(pCtx != 0) || (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared != 0 { - _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(155155))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(156227))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(155157)) + return _sqlite3MisuseError(tls, int32(156229)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _ = libc.Int32FromInt32(0) @@ -135192,7 +136312,10 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i initBusy = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) (*(*TParse)(unsafe.Pointer(bp))).FnQueryLoop = int16(1) - if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) && (*(*TParse)(unsafe.Pointer(bp))).FpNewTable != uintptr(0) && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && int32((*TTable)(unsafe.Pointer((*(*TParse)(unsafe.Pointer(bp))).FpNewTable)).FeTabType) == TABTYP_NORM { + if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if !((*TTable)(unsafe.Pointer(pTab)).FaCol != 0) { pNew = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable @@ -135202,9 +136325,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpDfltList) - v1 = (*TTable)(unsafe.Pointer(pNew)).FnCol - (*TTable)(unsafe.Pointer(pTab)).FnCol = v1 - (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v1 + v2 = (*TTable)(unsafe.Pointer(pNew)).FnCol + (*TTable)(unsafe.Pointer(pTab)).FnCol = v2 + (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v2 *(*Tu32)(unsafe.Pointer(pTab + 48)) |= (*TTable)(unsafe.Pointer(pNew)).FtabFlags & uint32(libc.Int32FromInt32(TF_WithoutRowid)|libc.Int32FromInt32(TF_NoVisibleRowid)) (*TTable)(unsafe.Pointer(pNew)).FnCol = 0 (*TTable)(unsafe.Pointer(pNew)).FaCol = uintptr(0) @@ -135226,11 +136349,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared = int32(1) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - v2 = __ccgo_ts + 3795 + v3 = __ccgo_ts + 3859 } else { - v2 = uintptr(0) + v3 = uintptr(0) } - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v2, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v3, libc.VaList(bp+440, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) rc = int32(SQLITE_ERROR) } @@ -135247,6 +136370,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i return rc } +var _aKeyword1 = [3]Tu8{ + 0: uint8(TK_CREATE), + 1: uint8(TK_TABLE), +} + // C documentation // // /* @@ -135708,7 +136836,7 @@ func _sqlite3VtabEponymousTableInit(tls *libc.TLS, pParse uintptr, pMod uintptr) _addModuleArgument(tls, pParse, pTab, _sqlite3DbStrDup(tls, db, (*TTable)(unsafe.Pointer(pTab)).FzName)) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer(pModule)).FxConnect, bp) if rc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3VtabEponymousTableClear(tls, db, pMod) } @@ -135775,7 +136903,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) p = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(p != 0) { - rc = _sqlite3MisuseError(tls, int32(155651)) + rc = _sqlite3MisuseError(tls, int32(156723)) } else { _ = libc.Int32FromInt32(0) ap = va @@ -135789,7 +136917,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in case int32(SQLITE_VTAB_USES_ALL_SCHEMAS): (*TVTable)(unsafe.Pointer((*TVtabCtx)(unsafe.Pointer(p)).FpVTable)).FbAllSchemas = uint8(1) default: - rc = _sqlite3MisuseError(tls, int32(155673)) + rc = _sqlite3MisuseError(tls, int32(156745)) break } _ = ap @@ -136511,10 +137639,10 @@ type WhereInfo1 = TWhereInfo1 func _explainIndexColumnName(tls *libc.TLS, pIdx uintptr, i int32) (r uintptr) { i = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) if i == -int32(2) { - return __ccgo_ts + 22006 + return __ccgo_ts + 22151 } if i == -int32(1) { - return __ccgo_ts + 16694 + return __ccgo_ts + 16781 } return (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(i)*16))).FzCnName } @@ -136534,10 +137662,10 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, _ = i _ = libc.Int32FromInt32(0) if bAnd != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22013, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22158, int32(5)) } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22019, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22164, int32(1)) } i = 0 for { @@ -136545,7 +137673,7 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13090, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13215, int32(1)) } Xsqlite3_str_appendall(tls, pStr, _explainIndexColumnName(tls, pIdx, iTerm+i)) goto _1 @@ -136554,11 +137682,11 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5170, int32(1)) } Xsqlite3_str_append(tls, pStr, zOp, int32(1)) if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22019, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22164, int32(1)) } i = 0 for { @@ -136566,16 +137694,16 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13090, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13215, int32(1)) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5108, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5172, int32(1)) goto _2 _2: ; i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5170, int32(1)) } } @@ -136608,7 +137736,7 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { if int32(nEq) == 0 && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) == uint32(0) { return } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22021, int32(2)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22166, int32(2)) i = 0 for { if !(i < int32(nEq)) { @@ -136616,12 +137744,12 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } z = _explainIndexColumnName(tls, pIndex, i) if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22013, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22158, int32(5)) } if i >= int32(nSkip) { - v2 = __ccgo_ts + 22024 + v2 = __ccgo_ts + 22169 } else { - v2 = __ccgo_ts + 22029 + v2 = __ccgo_ts + 22174 } Xsqlite3_str_appendf(tls, pStr, v2, libc.VaList(bp+8, z)) goto _1 @@ -136631,13 +137759,13 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } j = i if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_BTM_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22037) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22182) i = int32(1) } if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_TOP_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22039) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22184) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5170, int32(1)) } // C documentation @@ -136680,11 +137808,11 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if isSearch != 0 { - v2 = __ccgo_ts + 22041 + v2 = __ccgo_ts + 22186 } else { - v2 = __ccgo_ts + 22048 + v2 = __ccgo_ts + 22193 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22053, libc.VaList(bp+144, v2, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22198, libc.VaList(bp+144, v2, pItem)) if flags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_VIRTUALTABLE)) == uint32(0) { zFmt = uintptr(0) _ = libc.Int32FromInt32(0) @@ -136692,37 +137820,37 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _ = libc.Int32FromInt32(0) if !((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) && int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { if isSearch != 0 { - zFmt = __ccgo_ts + 11253 + zFmt = __ccgo_ts + 11378 } } else { if flags&uint32(WHERE_PARTIALIDX) != 0 { - zFmt = __ccgo_ts + 22059 + zFmt = __ccgo_ts + 22204 } else { if flags&uint32(WHERE_AUTO_INDEX) != 0 { - zFmt = __ccgo_ts + 22092 + zFmt = __ccgo_ts + 22237 } else { if flags&uint32(WHERE_IDX_ONLY) != 0 { - zFmt = __ccgo_ts + 22117 + zFmt = __ccgo_ts + 22262 } else { - zFmt = __ccgo_ts + 22135 + zFmt = __ccgo_ts + 22280 } } } } if zFmt != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22144, int32(7)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22289, int32(7)) Xsqlite3_str_appendf(tls, bp, zFmt, libc.VaList(bp+144, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) _explainIndexRange(tls, bp, pLoop) } } else { if flags&uint32(WHERE_IPK) != uint32(0) && flags&uint32(WHERE_CONSTRAINT) != uint32(0) { - zRowid = __ccgo_ts + 16694 - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22152, libc.VaList(bp+144, zRowid)) + zRowid = __ccgo_ts + 16781 + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22297, libc.VaList(bp+144, zRowid)) if flags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != 0 { cRangeOp = uint8('=') } else { if flags&uint32(WHERE_BOTH_LIMIT) == uint32(WHERE_BOTH_LIMIT) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22183, libc.VaList(bp+144, zRowid)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22328, libc.VaList(bp+144, zRowid)) cRangeOp = uint8('<') } else { if flags&uint32(WHERE_BTM_LIMIT) != 0 { @@ -136733,10 +137861,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22193, libc.VaList(bp+144, int32(cRangeOp))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22338, libc.VaList(bp+144, int32(cRangeOp))) } else { if flags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22198, libc.VaList(bp+144, (*(*struct { + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22343, libc.VaList(bp+144, (*(*struct { FidxNum int32 F__ccgo4 uint8 FisOrdered Ti8 @@ -136755,7 +137883,7 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } if int32((*TSrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&int32(JT_LEFT) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22225, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22370, 0) } zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) @@ -136789,14 +137917,14 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Initial space for EQP output string */ _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22236, libc.VaList(bp+144, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22381, libc.VaList(bp+144, pItem)) pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_IPK) != 0 { pTab = (*TSrcItem)(unsafe.Pointer(pItem)).FpTab if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22024, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22169, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) } else { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22257, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22402, 0) } } else { i = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) @@ -136806,16 +137934,16 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp } z = _explainIndexColumnName(tls, (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex, i) if i > int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22013, int32(5)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22158, int32(5)) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22024, libc.VaList(bp+144, z)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22169, libc.VaList(bp+144, z)) goto _1 _1: ; i++ } } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5170, int32(1)) zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) return ret @@ -137681,6 +138809,35 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 } } +// C documentation +// +// /* +// ** Loop pLoop is a WHERE_INDEXED level that uses at least one IN(...) +// ** operator. Return true if level pLoop is guaranteed to visit only one +// ** row for each key generated for the index. +// */ +func _whereLoopIsOneRow(tls *libc.TLS, pLoop uintptr) (r int32) { + var ii int32 + _ = ii + if (*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FonError != 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) == 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq) == int32((*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FnKeyCol) { + ii = 0 + for { + if !(ii < int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq)) { + break + } + if int32((*TWhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(ii)*8)))).FeOperator)&(libc.Int32FromInt32(WO_IS)|libc.Int32FromInt32(WO_ISNULL)) != 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) + } + return 0 +} + // C documentation // // /* @@ -138411,7 +139568,10 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI _ = libc.Int32FromInt32(0) } /* Record the instruction used to terminate the loop. */ - if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 { + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 || (*(*struct { + FnIn int32 + FaInLoop uintptr + })(unsafe.Pointer(pLevel + 72))).FnIn != 0 && regBignull == 0 && _whereLoopIsOneRow(tls, pLoop) != 0 { (*TWhereLevel)(unsafe.Pointer(pLevel)).Fop = uint8(OP_Noop) } else { if bRev != 0 { @@ -138588,7 +139748,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** eliminating duplicates from other WHERE clauses, the action for each ** sub-WHERE clause is to to invoke the main loop body as a subroutine. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22265, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22410, 0) ii = 0 for { if !(ii < (*TWhereClause)(unsafe.Pointer(pOrWc)).FnTerm) { @@ -138611,7 +139771,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI pOrExpr = pAndExpr } /* Loop through table entries that match term pOrTerm. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22280, libc.VaList(bp+96, ii+int32(1))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22425, libc.VaList(bp+96, ii+int32(1))) pSubWInfo = _sqlite3WhereBegin(tls, pParse, pOrTab, pOrExpr, uintptr(0), uintptr(0), uintptr(0), uint16(WHERE_OR_SUBCLAUSE), iCovCur) _ = libc.Int32FromInt32(0) if pSubWInfo != 0 { @@ -138782,6 +139942,12 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** iLoop==3: Code all remaining expressions. ** ** An effort is made to skip unnecessary iterations of the loop. + ** + ** This optimization of causing simple query restrictions to occur before + ** more complex one is call the "push-down" optimization in MySQL. Here + ** in SQLite, the name is "MySQL push-down", since there is also another + ** totally unrelated optimization called "WHERE-clause push-down". + ** Sometimes the qualifier is omitted, resulting in an ambiguity, so beware. */ if pIdx != 0 { v60 = int32(1) @@ -138983,6 +140149,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** to the results of the OUTER JOIN. The following loop generates the ** appropriate WHERE clause constraint checks. tag-20220513a. */ + goto code_outer_join_constraints code_outer_join_constraints: ; pTerm = (*TWhereClause)(unsafe.Pointer(pWC)).Fa @@ -139087,9 +140254,9 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe defer tls.Free(128) var addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, nPk, r, v3 int32 var mAll TBitmask - var pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr + var pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr var _ /* sFrom at bp+0 */ TSrcList - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pRJ = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpRJ @@ -139098,13 +140265,18 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop pTabItem = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 mAll = uint64(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22289, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22434, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) k = 0 for { if !(k < iLevel) { break } + _ = libc.Int32FromInt32(0) + pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*104 mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x20>>5)) != 0 { + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pRight)).FpSelect)).FpEList)).FnExpr-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiTabCur) iIdxCur = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiIdxCur if iIdxCur != 0 { @@ -139639,19 +140811,19 @@ var _aOp = [4]struct { FeOp2 uint8 }{ 0: { - FzOp: __ccgo_ts + 16543, + FzOp: __ccgo_ts + 16630, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_MATCH), }, 1: { - FzOp: __ccgo_ts + 15874, + FzOp: __ccgo_ts + 15967, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_GLOB), }, 2: { - FzOp: __ccgo_ts + 15353, + FzOp: __ccgo_ts + 15446, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_LIKE), }, 3: { - FzOp: __ccgo_ts + 22303, + FzOp: __ccgo_ts + 22448, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_REGEXP), }, } @@ -140310,7 +141482,7 @@ func _exprMightBeIndexed2(tls *libc.TLS, pFrom uintptr, aiCurCol uintptr, pExpr goto _4 } _ = libc.Int32FromInt32(0) - if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_STRING) { + if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && !(_sqlite3ExprIsConstant(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr) != 0) { *(*int32)(unsafe.Pointer(aiCurCol)) = iCur *(*int32)(unsafe.Pointer(aiCurCol + 1*4)) = -int32(2) return int32(1) @@ -140470,7 +141642,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { extraRight = x - uint64(1) /* ON clause terms may not be used with an index ** on left table of a LEFT JOIN. Ticket #3015 */ if prereqAll>>libc.Int32FromInt32(1) >= x { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22310, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22455, 0) return } } else { @@ -140482,7 +141654,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { ** if there is a RIGHT or FULL JOIN in the query. This makes SQLite ** more like other systems, and also preserves legacy. */ if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc > 0 && int32((*(*TSrcItem)(unsafe.Pointer(pSrc + 8))).Ffg.Fjointype)&int32(JT_LTORJ) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22310, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22455, 0) return } *(*Tu32)(unsafe.Pointer(pExpr + 4)) &= uint32(^libc.Int32FromInt32(EP_InnerON)) @@ -140573,7 +141745,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { if op == int32(TK_ISNULL) && !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != libc.Uint32FromInt32(0)) && 0 == _sqlite3ExprCanBeNull(tls, pLeft) { _ = libc.Int32FromInt32(0) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_TRUEFALSE) /* See tag-20230504-1 */ - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 7891 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 8016 *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_IsFalse)) (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqAll = uint64(0) (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator = uint16(0) @@ -140676,7 +141848,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { *(*Tu8)(unsafe.Pointer(pC)) = uint8(int32(c1) + int32(1)) } if *(*int32)(unsafe.Pointer(bp + 12)) != 0 { - v13 = __ccgo_ts + 22351 + v13 = __ccgo_ts + 22496 } else { v13 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } @@ -140949,6 +142121,9 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FleftCursor != iCsr { return } + if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FprereqRight != uint64(0) { + return + } goto _1 _1: ; @@ -140979,10 +142154,12 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { } /* All conditions are met. Add the terms to the where-clause object. */ _ = libc.Int32FromInt32(0) - _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) - if (*TSelect)(unsafe.Pointer(p)).FiOffset > 0 { + if (*TSelect)(unsafe.Pointer(p)).FiOffset != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiOffset, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpRight, iCsr, int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } + if (*TSelect)(unsafe.Pointer(p)).FiOffset == 0 || (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { + _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) + } } } @@ -141214,7 +142391,7 @@ func _sqlite3WhereTabFuncArgs(tls *libc.TLS, pParse uintptr, pItem uintptr, pWC k++ } if k >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22358, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22503, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) return } pColRef = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_COLUMN), uintptr(0), 0) @@ -141549,6 +142726,7 @@ func _whereOrInsert(tls *libc.TLS, pSet uintptr, prereq TBitmask, rRun TLogEst, return 0 } } + goto whereOrInsert_done whereOrInsert_done: ; (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq = prereq @@ -141655,6 +142833,50 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { return uintptr(0) } +// C documentation +// +// /* +// ** Term pTerm is guaranteed to be a WO_IN term. It may be a component term +// ** of a vector IN expression of the form "(x, y, ...) IN (SELECT ...)". +// ** This function checks to see if the term is compatible with an index +// ** column with affinity idxaff (one of the SQLITE_AFF_XYZ values). If so, +// ** it returns a pointer to the name of the collation sequence (e.g. "BINARY" +// ** or "NOCASE") used by the comparison in pTerm. If it is not compatible +// ** with affinity idxaff, NULL is returned. +// */ +func _indexInAffinityOk(tls *libc.TLS, pParse uintptr, pTerm uintptr, idxaff Tu8) (r uintptr) { + bp := tls.Alloc(80) + defer tls.Free(80) + var iField int32 + var pRet, pX, v1 uintptr + var _ /* inexpr at bp+0 */ TExpr + _, _, _, _ = iField, pRet, pX, v1 + pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr + _ = libc.Int32FromInt32(0) + if _sqlite3ExprIsVector(tls, (*TExpr)(unsafe.Pointer(pX)).FpLeft) != 0 { + iField = (*(*struct { + FleftColumn int32 + FiField int32 + })(unsafe.Pointer(pTerm + 32))).FiField - int32(1) + (*(*TExpr)(unsafe.Pointer(bp))).Fflags = uint32(0) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_EQ) + (*(*TExpr)(unsafe.Pointer(bp))).FpLeft = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pX)).FpLeft + 32)) + 8 + uintptr(iField)*32))).FpExpr + _ = libc.Int32FromInt32(0) + (*(*TExpr)(unsafe.Pointer(bp))).FpRight = (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pX + 32)))).FpEList + 8 + uintptr(iField)*32))).FpExpr + pX = bp + } + if _sqlite3IndexAffinityOk(tls, pX, idxaff) != 0 { + pRet = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pRet != 0 { + v1 = (*TCollSeq)(unsafe.Pointer(pRet)).FzName + } else { + v1 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + return v1 + } + return uintptr(0) +} + // C documentation // // /* @@ -141665,10 +142887,10 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { var iColumn Ti16 var iCur, j, k int32 - var pColl, pParse, pTerm, pWC, pX, v2 uintptr - var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, v2, v3, v5 /* The term being tested */ - k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ + var pColl, pParse, pTerm, pWC, pX, zCollName, v2, v5 uintptr + var v3, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, zCollName, v2, v3, v5, v6 /* The term being tested */ + k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ _ = libc.Int32FromInt32(0) pWC = (*TWhereScan)(unsafe.Pointer(pScan)).FpWC for int32(1) != 0 { @@ -141716,22 +142938,32 @@ func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { if (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName != 0 && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_ISNULL) == 0 { pParse = (*TWhereInfo)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr - if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { - goto _1 - } - _ = libc.Int32FromInt32(0) - pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) - if pColl == uintptr(0) { - pColl = (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FpDfltColl + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_IN) != 0 { + zCollName = _indexInAffinityOk(tls, pParse, pTerm, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) + if !(zCollName != 0) { + goto _1 + } + } else { + if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { + goto _1 + } + _ = libc.Int32FromInt32(0) + pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pColl != 0 { + v5 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName + } else { + v5 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + zCollName = v5 } - if _sqlite3StrICmp(tls, (*TCollSeq)(unsafe.Pointer(pColl)).FzName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { + if _sqlite3StrICmp(tls, zCollName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { goto _1 } } - if v5 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v5 { + if v6 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v6 { pX = (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight } - if v5 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { + if v6 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { goto _1 } (*TWhereScan)(unsafe.Pointer(pScan)).FpWC = pWC @@ -142225,7 +143457,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea /* Make the automatic index a partial index if there are terms in the ** WHERE clause (or the ON clause of a LEFT join) that constrain which ** rows of the target table (pSrc) that can be used. */ - if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)) != 0 { + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom), 0) != 0 { pPartial = _sqlite3ExprAnd(tls, pParse, pPartial, _sqlite3ExprDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr, 0)) } if _termCanDriveIndex(tls, pTerm, pSrc, notReady) != 0 { @@ -142241,7 +143473,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea } cMask = v2 if !(sentWarning != 0) { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_WARNING)|libc.Int32FromInt32(1)<>14)) != 0) { eDistinct = int32(2) + libc.BoolInt32(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_SORTBYGROUP) != 0) } else { if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_GROUPBY) != 0 { @@ -142736,7 +143969,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB */ pIdxInfo = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(96)+(libc.Uint64FromInt64(12)+libc.Uint64FromInt64(8))*uint64(nTerm)+uint64(8)*uint64(nOrderBy)+uint64(40)+uint64(8)*uint64(nTerm)) if pIdxInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1632, 0) return uintptr(0) } pHidden = pIdxInfo + 1*96 @@ -142828,7 +144061,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB break } pExpr1 = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr - if _sqlite3ExprIsConstant(tls, pExpr1) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr1) != 0 { goto _11 } _ = libc.Int32FromInt32(0) @@ -142907,9 +144140,9 @@ func _vtabBestIndex(tls *libc.TLS, pParse uintptr, pTab uintptr, p uintptr) (r i _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) } else { if !((*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) } } } @@ -144281,7 +145514,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x4>>2)) != 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) } - if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 && int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x2>>1)) == 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ) | libc.Int32FromInt32(WO_IN) | libc.Int32FromInt32(WO_IS)) } } @@ -144533,10 +145766,13 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } } } - /* Set rCostIdx to the cost of visiting selected rows in index. Add - ** it to pNew->rRun, which is currently set to the cost of the index - ** seek only. Then, if this is a non-covering index, add the cost of - ** visiting the rows in the main table. */ + /* Set rCostIdx to the estimated cost of visiting selected rows in the + ** index. The estimate is the sum of two values: + ** 1. The cost of doing one search-by-key to find the first matching + ** entry + ** 2. Stepping forward in the index pNew->nOut times to find all + ** additional matching entries. + */ _ = libc.Int32FromInt32(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_IPK) { /* The pProbe->szIdxRow is low for an IPK table since the interior @@ -144547,7 +145783,14 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } else { rCostIdx = int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut) + int32(1) + int32(15)*int32((*TIndex)(unsafe.Pointer(pProbe)).FszIdxRow)/int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FszTabRow)) } - (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + rCostIdx = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + /* Estimate the cost of running the loop. If all data is coming + ** from the index, then this is just the cost of doing the index + ** lookup and scan. But if some data is coming out of the main table, + ** we also have to add in the cost of doing pNew->nOut searches to + ** locate the row in the main table that corresponds to the index entry. + */ + (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = rCostIdx if (*TWhereLoop)(unsafe.Pointer(pNew)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IDX_ONLY)|libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_EXPRIDX)) == uint32(0) { (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun, int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut)+int32(16))) } @@ -144653,7 +145896,7 @@ func _indexMightHelpWithOrderBy(tls *libc.TLS, pBuilder uintptr, pIndex uintptr, if pExpr == uintptr(0) { goto _2 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { + if (int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) || int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_COLUMN)) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) < 0 { return int32(1) } @@ -144990,7 +146233,7 @@ func _wherePartIdxExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, pPart uintpt if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) != int32(TK_COLUMN) { return } - if !(_sqlite3ExprIsConstant(tls, pRight) != 0) { + if !(_sqlite3ExprIsConstant(tls, uintptr(0), pRight) != 0) { return } if !(_sqlite3IsBinary(tls, _sqlite3ExprCompareCollSeq(tls, pParse, pPart)) != 0) { @@ -145325,7 +146568,7 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in ** unique index is used (making the index functionally non-unique) ** then the sqlite_stat1 data becomes important for scoring the ** plan */ - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) } _sqlite3Stat4ProbeFree(tls, (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec) (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = 0 @@ -145354,6 +146597,31 @@ func _isLimitTerm(tls *libc.TLS, pTerm uintptr) (r int32) { return libc.BoolInt32(int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) >= int32(SQLITE_INDEX_CONSTRAINT_LIMIT) && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) <= int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } +// C documentation +// +// /* +// ** Return true if the first nCons constraints in the pUsage array are +// ** marked as in-use (have argvIndex>0). False otherwise. +// */ +func _allConstraintsUsed(tls *libc.TLS, aUsage uintptr, nCons int32) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < nCons) { + break + } + if (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer(aUsage + uintptr(ii)*8))).FargvIndex <= 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + // C documentation // // /* @@ -145451,7 +146719,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if v3 >= 0 { j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).FiTermOffset if iTerm >= nConstraint || j < 0 || j >= (*TWhereClause)(unsafe.Pointer(pWC)).FnTerm || *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(iTerm)*8)) != uintptr(0) || int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22431, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22576, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } pTerm1 = (*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(j)*56 @@ -145498,13 +146766,19 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, _ = libc.Int32FromInt32(0) } } + /* Unless pbRetryLimit is non-NULL, there should be no LIMIT/OFFSET + ** terms. And if there are any, they should follow all other terms. */ + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if _isLimitTerm(tls, pTerm1) != 0 && *(*int32)(unsafe.Pointer(pbIn)) != 0 { + if _isLimitTerm(tls, pTerm1) != 0 && (*(*int32)(unsafe.Pointer(pbIn)) != 0 || !(_allConstraintsUsed(tls, pUsage, i) != 0)) { /* If there is an IN(...) term handled as an == (separate call to ** xFilter for each value on the RHS of the IN) and a LIMIT or - ** OFFSET term handled as well, the plan is unusable. Set output - ** variable *pbRetryLimit to true to tell the caller to retry with - ** LIMIT and OFFSET disabled. */ + ** OFFSET term handled as well, the plan is unusable. Similarly, + ** if there is a LIMIT/OFFSET and there are other unused terms, + ** the plan cannot be used. In these cases set variable *pbRetryLimit + ** to true to tell the caller to retry with LIMIT and OFFSET + ** disabled. */ if (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FneedToFreeIdxStr != 0 { Xsqlite3_free(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = uintptr(0) @@ -145529,7 +146803,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(i)*8)) == uintptr(0) { /* The non-zero argvIdx values must be contiguous. Raise an ** error if they are not */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22431, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22576, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } goto _6 @@ -145682,7 +146956,7 @@ func Xsqlite3_vtab_rhs_value(tls *libc.TLS, pIdxInfo uintptr, iCons int32, ppVal pVal = uintptr(0) rc = SQLITE_OK if iCons < 0 || iCons >= (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint { - rc = _sqlite3MisuseError(tls, int32(165251)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(166453)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = (*TWhereClause)(unsafe.Pointer((*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC)).Fa + uintptr((*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset)*56 @@ -146130,7 +147404,7 @@ func _whereLoopAddAll(tls *libc.TLS, pBuilder uintptr) (r int32) { if rc != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { if rc == int32(SQLITE_DONE) { /* We hit the query planner search limit set by iPlanLimit */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22457, 0) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22602, 0) rc = SQLITE_OK } else { break @@ -146519,7 +147793,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, } p = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr mTerm = _sqlite3WhereExprUsage(tls, pWInfo+592, p) - if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, p) != 0) { + if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, uintptr(0), p) != 0) { goto _9 } if mTerm & ^orderDistinctMask == uint64(0) { @@ -146940,7 +148214,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) iLoop++ } if nFrom == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22492, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22637, 0) _sqlite3DbFreeNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pSpace) return int32(SQLITE_ERROR) } @@ -146990,9 +148264,8 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) if int32((*TWherePath)(unsafe.Pointer(pFrom)).FisOrdered) == (*TExprList)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_ORDERED) } - if (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy != 0 && int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) > (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr { - (*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = int8((*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr) - } + /* vvv--- See check-in [12ad822d9b827777] on 2023-03-16 ---vvv */ + _ = libc.Int32FromInt32(0) } else { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FrevMask = (*TWherePath)(unsafe.Pointer(pFrom)).FrevLoop if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) <= 0 { @@ -147030,6 +148303,97 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) return SQLITE_OK } +// C documentation +// +// /* +// ** This routine implements a heuristic designed to improve query planning. +// ** This routine is called in between the first and second call to +// ** wherePathSolver(). Hence the name "Interstage" "Heuristic". +// ** +// ** The first call to wherePathSolver() (hereafter just "solver()") computes +// ** the best path without regard to the order of the outputs. The second call +// ** to the solver() builds upon the first call to try to find an alternative +// ** path that satisfies the ORDER BY clause. +// ** +// ** This routine looks at the results of the first solver() run, and for +// ** every FROM clause term in the resulting query plan that uses an equality +// ** constraint against an index, disable other WhereLoops for that same +// ** FROM clause term that would try to do a full-table scan. This prevents +// ** an index search from being converted into a full-table scan in order to +// ** satisfy an ORDER BY clause, since even though we might get slightly better +// ** performance using the full-scan without sorting if the output size +// ** estimates are very precise, we might also get severe performance +// ** degradation using the full-scan if the output size estimate is too large. +// ** It is better to err on the side of caution. +// ** +// ** Except, if the first solver() call generated a full-table scan in an outer +// ** loop then stop this analysis at the first full-scan, since the second +// ** solver() run might try to swap that full-scan for another in order to +// ** get the output into the correct order. In other words, we allow a +// ** rewrite like this: +// ** +// ** First Solver() Second Solver() +// ** |-- SCAN t1 |-- SCAN t2 +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** The purpose of this routine is to disallow rewrites such as: +// ** +// ** First Solver() Second Solver() +// ** |-- SEARCH t1 |-- SCAN t2 <--- bad! +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** See test cases in test/whereN.test for the real-world query that +// ** originally provoked this heuristic. +// */ +func _whereInterstageHeuristic(tls *libc.TLS, pWInfo uintptr) { + var i int32 + var iTab Tu8 + var p, pLoop uintptr + _, _, _, _ = i, iTab, p, pLoop + i = 0 + for { + if !(i < int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)) { + break + } + p = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(i)*104))).FpWLoop + if p == uintptr(0) { + break + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { + goto _1 + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_NULL)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != uint32(0) { + iTab = (*TWhereLoop)(unsafe.Pointer(p)).FiTab + pLoop = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpLoops + for { + if !(pLoop != 0) { + break + } + if int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab) != int32(iTab) { + goto _2 + } + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_CONSTRAINT)|libc.Int32FromInt32(WHERE_AUTO_INDEX)) != uint32(0) { + /* Auto-index and index-constrained loops allowed to remain */ + goto _2 + } + (*TWhereLoop)(unsafe.Pointer(pLoop)).Fprereq = uint64(-libc.Int32FromInt32(1)) /* Prevent 2nd solver() from using this one */ + goto _2 + _2: + ; + pLoop = (*TWhereLoop)(unsafe.Pointer(pLoop)).FpNextLoop + } + } else { + break + } + goto _1 + _1: + ; + i++ + } +} + // C documentation // // /* @@ -147348,7 +148712,7 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasStat1) == uint32(0) { break } - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) if i >= int32(1) && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&reqFlags == reqFlags && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_INDEXED)) != uint32(0) { if int32(nSearch) > int32((*TTable)(unsafe.Pointer(pTab)).FnRowLogEst) { *(*Tu32)(unsafe.Pointer(pLoop + 48)) |= uint32(WHERE_BLOOMFILTER) @@ -147363,6 +148727,69 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { } } +// C documentation +// +// /* +// ** Expression Node callback for sqlite3ExprCanReturnSubtype(). +// ** +// ** Only a function call is able to return a subtype. So if the node +// ** is not a function call, return WRC_Prune immediately. +// ** +// ** A function call is able to return a subtype if it has the +// ** SQLITE_RESULT_SUBTYPE property. +// ** +// ** Assume that every function is able to pass-through a subtype from +// ** one of its argument (using sqlite3_result_value()). Most functions +// ** are not this way, but we don't have a mechanism to distinguish those +// ** that are from those that are not, so assume they all work this way. +// ** That means that if one of its arguments is another function and that +// ** other function is able to return a subtype, then this function is +// ** able to return a subtype. +// */ +func _exprNodeCanReturnSubtype(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef uintptr + var n, v1 int32 + _, _, _, _ = db, n, pDef, v1 + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_FUNCTION) { + return int32(WRC_Prune) + } + _ = libc.Int32FromInt32(0) + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { + v1 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr + } else { + v1 = 0 + } + n = v1 + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + return int32(WRC_Prune) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Return TRUE if expression pExpr is able to return a subtype. +// ** +// ** A TRUE return does not guarantee that a subtype will be returned. +// ** It only indicates that a subtype return is possible. False positives +// ** are acceptable as they only disable an optimization. False negatives, +// ** on the other hand, can lead to incorrect answers. +// */ +func _sqlite3ExprCanReturnSubtype(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeCanReturnSubtype) + _sqlite3WalkExpr(tls, bp, pExpr) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) +} + // C documentation // // /* @@ -147377,9 +148804,9 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { // ** references to the corresponding column of the index. // */ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur int32, pTabItem uintptr) { - var db, p, pArg, pDef, pExpr, pTab uintptr - var i, j, n, v2 int32 - _, _, _, _, _, _, _, _, _, _ = db, i, j, n, p, pArg, pDef, pExpr, pTab, v2 + var i, j int32 + var p, pArg, pExpr, pTab uintptr + _, _, _, _, _, _ = i, j, p, pArg, pExpr, pTab _ = libc.Int32FromInt32(0) pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable i = 0 @@ -147397,22 +148824,14 @@ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur i goto _1 } } - if _sqlite3ExprIsConstant(tls, pExpr) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) != 0 { goto _1 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) { - db = (*TParse)(unsafe.Pointer(pParse)).Fdb - _ = libc.Int32FromInt32(0) - if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { - v2 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr - } else { - v2 = 0 - } - n = v2 - pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) - if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { - goto _1 - } + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) && _sqlite3ExprCanReturnSubtype(tls, pParse, pExpr) != 0 { + /* Functions that might set a subtype should not be replaced by the + ** value taken from an expression index since the index omits the + ** subtype. https://sqlite.org/forum/forumpost/68d284c86b082c3e */ + goto _1 } p = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(32)) if p == uintptr(0) { @@ -147586,7 +149005,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** bits in a Bitmask */ if (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc > int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22510, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22655, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) return uintptr(0) } /* This function normally generates a nested loop for all tables in @@ -147659,7 +149078,9 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if int32(wctrlFlags)&int32(WHERE_WANT_DISTINCT) != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_DistinctOpt)) == uint32(0) { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_UNIQUE) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22538, 0) + if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FselFlags&uint32(SF_MultiValue) == uint32(0) { + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22683, 0) + } } else { /* Assign a bit from the bitmask to every term in the FROM clause. ** @@ -147793,6 +149214,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy != 0 { + _whereInterstageHeuristic(tls, pWInfo) _wherePathSolver(tls, pWInfo, int16(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut)+int32(1))) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto whereBeginError @@ -148091,6 +149513,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiEndWhere = _sqlite3VdbeCurrentAddr(tls, v) return pWInfo /* Jump here if malloc fails */ + goto whereBeginError whereBeginError: ; if pWInfo != 0 { @@ -148114,10 +149537,10 @@ whereBeginError: // ** sqlite3WhereBegin() for additional information. // */ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { - var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, r1, ws, x, v4, v7 int32 - var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr + var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, r1, ws, x, v4, v7 int32 + var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pTabList = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList @@ -148260,7 +149683,14 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { addr = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfPos), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin) _ = libc.Int32FromInt32(0) if ws&int32(WHERE_IDX_ONLY) == 0 { + pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 _ = libc.Int32FromInt32(0) + if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x20>>5)) != 0 { + n1 = (*TSrcItem)(unsafe.Pointer(pSrc)).FregResult + _ = libc.Int32FromInt32(0) + m = int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FnCol) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, n1, n1+m-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur) } if ws&int32(WHERE_INDEXED) != 0 || ws&int32(WHERE_MULTI_OR) != 0 && *(*uintptr)(unsafe.Pointer(&(*TWhereLevel)(unsafe.Pointer(pLevel)).Fu)) != 0 { @@ -148309,6 +149739,7 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { ** OP_Rowid becomes OP_Null. */ if int32(uint32(*(*uint16)(unsafe.Pointer(pTabItem + 60 + 4))&0x20>>5)) != 0 { + _ = libc.Int32FromInt32(0) _translateColumnToCopy(tls, pParse, (*TWhereLevel)(unsafe.Pointer(pLevel)).FaddrBody, (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur, (*TSrcItem)(unsafe.Pointer(pTabItem)).FregResult, 0) goto _9 } @@ -148680,9 +150111,10 @@ func _nth_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) _ = nArg _ = apArg return + goto error_out error_out: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22556, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22701, -int32(1)) } func _nth_valueFinalizeFunc(tls *libc.TLS, pCtx uintptr) { @@ -148869,7 +150301,7 @@ func _ntileStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { if (*TNtileCtx)(unsafe.Pointer(p)).FnTotal == 0 { (*TNtileCtx)(unsafe.Pointer(p)).FnParam = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apArg))) if (*TNtileCtx)(unsafe.Pointer(p)).FnParam <= 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22612, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22757, -int32(1)) } } (*TNtileCtx)(unsafe.Pointer(p)).FnTotal++ @@ -149197,7 +150629,7 @@ func _windowFind(tls *libc.TLS, pParse uintptr, pList uintptr, zName uintptr) (r p = (*TWindow)(unsafe.Pointer(p)).FpNextWin } if p == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22657, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22802, libc.VaList(bp+8, zName)) } return p } @@ -149248,12 +150680,12 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin _sqlite3WindowChain(tls, pParse, pWin, pList) } if int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) == int32(TK_RANGE) && ((*TWindow)(unsafe.Pointer(pWin)).FpStart != 0 || (*TWindow)(unsafe.Pointer(pWin)).FpEnd != 0) && ((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy == uintptr(0) || (*TExprList)(unsafe.Pointer((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy)).FnExpr != int32(1)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22676, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22821, 0) } else { if (*TFuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TWindow)(unsafe.Pointer(pWin)).FpFilter != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22747, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22892, 0) } else { aUp = [8]struct { FzFunc uintptr @@ -149326,7 +150758,7 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin (*TWindow)(unsafe.Pointer(pWin)).FeEnd = uint8(aUp[i].FeEnd) (*TWindow)(unsafe.Pointer(pWin)).FeExclude = uint8(0) if int32((*TWindow)(unsafe.Pointer(pWin)).FeStart) == int32(TK_FOLLOWING) { - (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8130) + (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8255) } break } @@ -149614,7 +151046,7 @@ func _disallowAggregatesInOrderByCb(tls *libc.TLS, pWalker uintptr, pExpr uintpt defer tls.Free(16) if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_FUNCTION) && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { _ = libc.Int32FromInt32(0) - _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22810, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) + _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22955, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) } return WRC_Continue } @@ -149757,7 +151189,7 @@ func _sqlite3WindowRewrite(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { ** keep everything legal in this case. */ if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1722)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1782)) } pSub = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(bp)), pSrc, pWhere, pGroupBy, pHaving, pSort, uint32(0), uintptr(0)) (*TSelect)(unsafe.Pointer(p)).FpSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), uintptr(0), uintptr(0)) @@ -149862,7 +151294,7 @@ func _sqlite3WindowListDelete(tls *libc.TLS, db uintptr, p uintptr) { // ** variable values in the expression tree. // */ func _sqlite3WindowOffsetExpr(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r uintptr) { - if 0 == _sqlite3ExprIsConstant(tls, pExpr) { + if 0 == _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) { if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameExprUnmap(tls, pParse, pExpr) } @@ -149908,7 +151340,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 ** frame boundary. */ if eStart == int32(TK_CURRENT) && eEnd == int32(TK_PRECEDING) || eStart == int32(TK_FOLLOWING) && (eEnd == int32(TK_PRECEDING) || eEnd == int32(TK_CURRENT)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22836, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22981, 0) goto windowAllocErr } pWin = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) @@ -149926,6 +151358,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 (*TWindow)(unsafe.Pointer(pWin)).FpEnd = _sqlite3WindowOffsetExpr(tls, pParse, pEnd) (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3WindowOffsetExpr(tls, pParse, pStart) return pWin + goto windowAllocErr windowAllocErr: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pEnd) @@ -149975,18 +151408,18 @@ func _sqlite3WindowChain(tls *libc.TLS, pParse uintptr, pWin uintptr, pList uint zErr = uintptr(0) /* Check for errors */ if (*TWindow)(unsafe.Pointer(pWin)).FpPartition != 0 { - zErr = __ccgo_ts + 22868 + zErr = __ccgo_ts + 23013 } else { if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 && (*TWindow)(unsafe.Pointer(pWin)).FpOrderBy != 0 { - zErr = __ccgo_ts + 22885 + zErr = __ccgo_ts + 23030 } else { if int32((*TWindow)(unsafe.Pointer(pExist)).FbImplicitFrame) == 0 { - zErr = __ccgo_ts + 22901 + zErr = __ccgo_ts + 23046 } } } if zErr != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22921, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23066, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) } else { (*TWindow)(unsafe.Pointer(pWin)).FpPartition = _sqlite3ExprListDup(tls, db, (*TWindow)(unsafe.Pointer(pExist)).FpPartition, 0) if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 { @@ -150014,7 +151447,7 @@ func _sqlite3WindowAttach(tls *libc.TLS, pParse uintptr, p uintptr, pWin uintptr *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(libc.Int32FromInt32(EP_WinFunc) | libc.Int32FromInt32(EP_FullSize)) (*TWindow)(unsafe.Pointer(pWin)).FpOwner = p if (*TExpr)(unsafe.Pointer(p)).Fflags&uint32(EP_Distinct) != 0 && int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) != int32(TK_FILTER) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22954, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23099, 0) } } else { _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pWin) @@ -150216,7 +151649,7 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regZero) if eCond >= int32(WINDOW_STARTING_NUM) { regString = _sqlite3GetTempReg(tls, pParse) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1648, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1662, -int32(1)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, _sqlite3VdbeCurrentAddr(tls, v)+int32(2), reg) _sqlite3VdbeChangeP5(tls, v, uint16(libc.Int32FromInt32(SQLITE_AFF_NUMERIC)|libc.Int32FromInt32(SQLITE_JUMPIFNULL))) _ = libc.Int32FromInt32(0) @@ -150237,11 +151670,11 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { } var _azErr = [5]uintptr{ - 0: __ccgo_ts + 23001, - 1: __ccgo_ts + 23054, - 2: __ccgo_ts + 22556, - 3: __ccgo_ts + 23105, - 4: __ccgo_ts + 23157, + 0: __ccgo_ts + 23146, + 1: __ccgo_ts + 23199, + 2: __ccgo_ts + 22701, + 3: __ccgo_ts + 23250, + 4: __ccgo_ts + 23302, } var _aOp1 = [5]int32{ @@ -151013,7 +152446,7 @@ func _windowCodeRangeTest(tls *libc.TLS, p uintptr, op int32, csr1 int32, regVal ** the add/subtract is skipped for these, as required. If reg1 is a NULL, ** then the arithmetic is performed, but since adding or subtracting from ** NULL is always NULL anyway, this case is handled as required too. */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1648, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1662, -int32(1)) addrGe = _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, 0, reg1) if op == int32(OP_Ge) && arith == int32(OP_Add) || op == int32(OP_Le) && arith == int32(OP_Subtract) { _sqlite3VdbeAddOp3(tls, v, op, reg2, lbl, reg1) @@ -152054,11 +153487,11 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { cnt++ if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != 0 || (*TSelect)(unsafe.Pointer(pLoop)).FpLimit != 0 { if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != uintptr(0) { - v1 = __ccgo_ts + 23207 + v1 = __ccgo_ts + 23352 } else { - v1 = __ccgo_ts + 23216 + v1 = __ccgo_ts + 23361 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23222, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23367, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) break } } @@ -152067,7 +153500,7 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { mxSelect = v2 } if v3 && v2 > 0 && cnt > mxSelect { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23264, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23409, 0) } } } @@ -152087,6 +153520,23 @@ func _attachWithToSelect(tls *libc.TLS, pParse uintptr, pSelect uintptr, pWith u return pSelect } +// C documentation +// +// /* Memory allocator for parser stack resizing. This is a thin wrapper around +// ** sqlite3_realloc() that includes a call to sqlite3FaultSim() to facilitate +// ** testing. +// */ +func _parserStackRealloc(tls *libc.TLS, pOld uintptr, newSize Tsqlite3_uint64) (r uintptr) { + var v1 uintptr + _ = v1 + if _sqlite3FaultSim(tls, int32(700)) != 0 { + v1 = uintptr(0) + } else { + v1 = Xsqlite3_realloc(tls, pOld, int32(newSize)) + } + return v1 +} + // C documentation // // /* Construct a new Expr object from a single token */ @@ -152156,7 +153606,7 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId _ = p p = _sqlite3ExprListAppend(tls, pParse, pPrior, uintptr(0)) if (hasCollate != 0 || sortOrder != -int32(1)) && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23298, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23443, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) } _sqlite3ExprListSetName(tls, pParse, p, pIdToken, int32(1)) return p @@ -152206,6 +153656,9 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser // ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser // ** sqlite3ParserCTX_* As sqlite3ParserARG_ except for %extra_context +// ** YYREALLOC Name of the realloc() function to use +// ** YYFREE Name of the free() function to use +// ** YYDYNSTACK True if stack space should be extended on heap // ** YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** YYNSTATE the combined number of states. @@ -152219,31 +153672,33 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** YY_NO_ACTION The yy_action[] code for no-op // ** YY_MIN_REDUCE Minimum value for reduce actions // ** YY_MAX_REDUCE Maximum value for reduce actions +// ** YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type TYYMINORTYPE = struct { Fyy0 [0]TToken - Fyy33 [0]uintptr - Fyy41 [0]uintptr - Fyy47 [0]uintptr - Fyy131 [0]uintptr - Fyy180 [0]TTrigEvent - Fyy231 [0]struct { + Fyy14 [0]uintptr + Fyy59 [0]uintptr + Fyy67 [0]uintptr + Fyy122 [0]uintptr + Fyy132 [0]uintptr + Fyy144 [0]int32 + Fyy168 [0]uintptr + Fyy203 [0]uintptr + Fyy211 [0]uintptr + Fyy269 [0]TOnOrUsing + Fyy286 [0]TTrigEvent + Fyy383 [0]struct { Fvalue int32 Fmask int32 } - Fyy254 [0]uintptr - Fyy285 [0]Tu32 - Fyy322 [0]uintptr - Fyy385 [0]uintptr - Fyy394 [0]int32 - Fyy444 [0]uintptr - Fyy516 [0]Tu8 - Fyy521 [0]uintptr - Fyy522 [0]uintptr - Fyy528 [0]uintptr - Fyy561 [0]TOnOrUsing - Fyy595 [0]TFrameBound + Fyy391 [0]Tu32 + Fyy427 [0]uintptr + Fyy454 [0]uintptr + Fyy462 [0]Tu8 + Fyy509 [0]TFrameBound + Fyy555 [0]uintptr Fyyinit int32 F__ccgo_pad20 [12]byte } @@ -152261,6 +153716,13 @@ type YYMINORTYPE = TYYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -152313,2152 +153775,2194 @@ type YYMINORTYPE = TYYMINORTYPE // ** yy_default[] Default action for each state. // ** // *********** Begin parsing tables **********************************************/ -var _yy_action = [2100]uint16{ - 0: uint16(572), - 1: uint16(210), - 2: uint16(572), - 3: uint16(119), - 4: uint16(116), - 5: uint16(231), - 6: uint16(572), - 7: uint16(119), - 8: uint16(116), - 9: uint16(231), - 10: uint16(572), - 11: uint16(1317), - 12: uint16(379), - 13: uint16(1296), - 14: uint16(410), - 15: uint16(566), - 16: uint16(566), - 17: uint16(566), - 18: uint16(572), - 19: uint16(411), - 20: uint16(380), - 21: uint16(1317), - 22: uint16(1279), - 23: uint16(42), - 24: uint16(42), - 25: uint16(42), - 26: uint16(42), - 27: uint16(210), - 28: uint16(1529), - 29: uint16(72), - 30: uint16(72), - 31: uint16(974), - 32: uint16(421), - 33: uint16(42), - 34: uint16(42), - 35: uint16(495), - 36: uint16(305), - 37: uint16(281), - 38: uint16(305), - 39: uint16(975), - 40: uint16(399), - 41: uint16(72), - 42: uint16(72), - 43: uint16(126), - 44: uint16(127), - 45: uint16(81), - 46: uint16(1217), - 47: uint16(1217), - 48: uint16(1054), - 49: uint16(1057), - 50: uint16(1044), - 51: uint16(1044), - 52: uint16(124), - 53: uint16(124), - 54: uint16(125), - 55: uint16(125), - 56: uint16(125), - 57: uint16(125), - 58: uint16(480), - 59: uint16(411), - 60: uint16(1244), - 61: uint16(1), - 62: uint16(1), - 63: uint16(578), - 64: uint16(2), - 65: uint16(1248), - 66: uint16(554), - 67: uint16(119), - 68: uint16(116), - 69: uint16(231), - 70: uint16(319), - 71: uint16(484), - 72: uint16(147), - 73: uint16(484), - 74: uint16(528), - 75: uint16(119), - 76: uint16(116), - 77: uint16(231), - 78: uint16(533), - 79: uint16(1330), - 80: uint16(419), - 81: uint16(527), - 82: uint16(143), - 83: uint16(126), - 84: uint16(127), - 85: uint16(81), - 86: uint16(1217), - 87: uint16(1217), - 88: uint16(1054), - 89: uint16(1057), - 90: uint16(1044), - 91: uint16(1044), - 92: uint16(124), - 93: uint16(124), - 94: uint16(125), - 95: uint16(125), - 96: uint16(125), - 97: uint16(125), - 98: uint16(119), - 99: uint16(116), - 100: uint16(231), - 101: uint16(329), - 102: uint16(123), - 103: uint16(123), - 104: uint16(123), - 105: uint16(123), - 106: uint16(122), - 107: uint16(122), - 108: uint16(121), - 109: uint16(121), - 110: uint16(121), - 111: uint16(120), - 112: uint16(117), - 113: uint16(448), - 114: uint16(286), - 115: uint16(286), - 116: uint16(286), - 117: uint16(286), - 118: uint16(446), - 119: uint16(446), - 120: uint16(446), - 121: uint16(1568), - 122: uint16(378), - 123: uint16(1570), - 124: uint16(1193), - 125: uint16(377), - 126: uint16(1164), - 127: uint16(569), - 128: uint16(1164), - 129: uint16(569), - 130: uint16(411), - 131: uint16(1568), - 132: uint16(541), - 133: uint16(261), - 134: uint16(228), - 135: uint16(448), - 136: uint16(102), - 137: uint16(146), - 138: uint16(453), - 139: uint16(318), - 140: uint16(563), - 141: uint16(242), - 142: uint16(123), - 143: uint16(123), - 144: uint16(123), - 145: uint16(123), - 146: uint16(122), - 147: uint16(122), - 148: uint16(121), - 149: uint16(121), - 150: uint16(121), - 151: uint16(120), - 152: uint16(117), - 153: uint16(448), - 154: uint16(126), - 155: uint16(127), - 156: uint16(81), - 157: uint16(1217), - 158: uint16(1217), - 159: uint16(1054), - 160: uint16(1057), - 161: uint16(1044), - 162: uint16(1044), - 163: uint16(124), - 164: uint16(124), - 165: uint16(125), - 166: uint16(125), - 167: uint16(125), - 168: uint16(125), - 169: uint16(143), - 170: uint16(296), - 171: uint16(1193), - 172: uint16(341), - 173: uint16(452), - 174: uint16(121), - 175: uint16(121), - 176: uint16(121), - 177: uint16(120), - 178: uint16(117), - 179: uint16(448), - 180: uint16(128), - 181: uint16(1193), - 182: uint16(1194), - 183: uint16(1193), - 184: uint16(149), - 185: uint16(445), - 186: uint16(444), - 187: uint16(572), - 188: uint16(120), - 189: uint16(117), - 190: uint16(448), - 191: uint16(125), - 192: uint16(125), - 193: uint16(125), - 194: uint16(125), - 195: uint16(118), - 196: uint16(123), - 197: uint16(123), - 198: uint16(123), - 199: uint16(123), - 200: uint16(122), - 201: uint16(122), - 202: uint16(121), - 203: uint16(121), - 204: uint16(121), - 205: uint16(120), - 206: uint16(117), - 207: uint16(448), - 208: uint16(458), - 209: uint16(114), - 210: uint16(13), - 211: uint16(13), - 212: uint16(550), - 213: uint16(123), - 214: uint16(123), - 215: uint16(123), - 216: uint16(123), - 217: uint16(122), - 218: uint16(122), - 219: uint16(121), - 220: uint16(121), - 221: uint16(121), - 222: uint16(120), - 223: uint16(117), - 224: uint16(448), - 225: uint16(424), - 226: uint16(318), - 227: uint16(563), - 228: uint16(1193), - 229: uint16(1194), - 230: uint16(1193), - 231: uint16(150), - 232: uint16(1225), - 233: uint16(411), - 234: uint16(1225), - 235: uint16(125), - 236: uint16(125), - 237: uint16(125), - 238: uint16(125), - 239: uint16(123), - 240: uint16(123), - 241: uint16(123), - 242: uint16(123), - 243: uint16(122), - 244: uint16(122), - 245: uint16(121), - 246: uint16(121), - 247: uint16(121), - 248: uint16(120), - 249: uint16(117), - 250: uint16(448), - 251: uint16(469), - 252: uint16(344), - 253: uint16(1041), - 254: uint16(1041), - 255: uint16(1055), - 256: uint16(1058), - 257: uint16(126), - 258: uint16(127), - 259: uint16(81), - 260: uint16(1217), - 261: uint16(1217), - 262: uint16(1054), - 263: uint16(1057), - 264: uint16(1044), - 265: uint16(1044), - 266: uint16(124), - 267: uint16(124), - 268: uint16(125), - 269: uint16(125), - 270: uint16(125), - 271: uint16(125), - 272: uint16(1282), - 273: uint16(526), - 274: uint16(224), - 275: uint16(1193), - 276: uint16(572), - 277: uint16(411), - 278: uint16(226), - 279: uint16(519), - 280: uint16(177), - 281: uint16(83), - 282: uint16(84), - 283: uint16(123), - 284: uint16(123), - 285: uint16(123), - 286: uint16(123), - 287: uint16(122), - 288: uint16(122), - 289: uint16(121), - 290: uint16(121), - 291: uint16(121), - 292: uint16(120), - 293: uint16(117), - 294: uint16(448), - 295: uint16(1010), - 296: uint16(16), - 297: uint16(16), - 298: uint16(1193), - 299: uint16(134), - 300: uint16(134), - 301: uint16(126), - 302: uint16(127), - 303: uint16(81), - 304: uint16(1217), - 305: uint16(1217), - 306: uint16(1054), - 307: uint16(1057), - 308: uint16(1044), - 309: uint16(1044), - 310: uint16(124), - 311: uint16(124), - 312: uint16(125), - 313: uint16(125), - 314: uint16(125), - 315: uint16(125), - 316: uint16(123), - 317: uint16(123), - 318: uint16(123), - 319: uint16(123), - 320: uint16(122), - 321: uint16(122), - 322: uint16(121), - 323: uint16(121), - 324: uint16(121), - 325: uint16(120), - 326: uint16(117), - 327: uint16(448), - 328: uint16(1045), - 329: uint16(550), - 330: uint16(1193), - 331: uint16(375), - 332: uint16(1193), - 333: uint16(1194), - 334: uint16(1193), - 335: uint16(254), - 336: uint16(1438), - 337: uint16(401), - 338: uint16(508), - 339: uint16(505), - 340: uint16(504), - 341: uint16(112), - 342: uint16(564), - 343: uint16(570), +var _yy_action = [2142]uint16{ + 0: uint16(576), + 1: uint16(128), + 2: uint16(125), + 3: uint16(232), + 4: uint16(1622), + 5: uint16(549), + 6: uint16(576), + 7: uint16(1290), + 8: uint16(1281), + 9: uint16(576), + 10: uint16(328), + 11: uint16(576), + 12: uint16(1300), + 13: uint16(212), + 14: uint16(576), + 15: uint16(128), + 16: uint16(125), + 17: uint16(232), + 18: uint16(578), + 19: uint16(412), + 20: uint16(578), + 21: uint16(391), + 22: uint16(1542), + 23: uint16(51), + 24: uint16(51), + 25: uint16(523), + 26: uint16(405), + 27: uint16(1293), + 28: uint16(529), + 29: uint16(51), + 30: uint16(51), + 31: uint16(983), + 32: uint16(51), + 33: uint16(51), + 34: uint16(81), + 35: uint16(81), + 36: uint16(1107), + 37: uint16(61), + 38: uint16(61), + 39: uint16(984), + 40: uint16(1107), + 41: uint16(1292), + 42: uint16(380), + 43: uint16(135), + 44: uint16(136), + 45: uint16(90), + 46: uint16(1228), + 47: uint16(1228), + 48: uint16(1063), + 49: uint16(1066), + 50: uint16(1053), + 51: uint16(1053), + 52: uint16(133), + 53: uint16(133), + 54: uint16(134), + 55: uint16(134), + 56: uint16(134), + 57: uint16(134), + 58: uint16(1577), + 59: uint16(412), + 60: uint16(287), + 61: uint16(287), + 62: uint16(7), + 63: uint16(287), + 64: uint16(287), + 65: uint16(422), + 66: uint16(1050), + 67: uint16(1050), + 68: uint16(1064), + 69: uint16(1067), + 70: uint16(289), + 71: uint16(556), + 72: uint16(492), + 73: uint16(573), + 74: uint16(524), + 75: uint16(561), + 76: uint16(573), + 77: uint16(497), + 78: uint16(561), + 79: uint16(482), + 80: uint16(530), + 81: uint16(262), + 82: uint16(229), + 83: uint16(135), + 84: uint16(136), + 85: uint16(90), + 86: uint16(1228), + 87: uint16(1228), + 88: uint16(1063), + 89: uint16(1066), + 90: uint16(1053), + 91: uint16(1053), + 92: uint16(133), + 93: uint16(133), + 94: uint16(134), + 95: uint16(134), + 96: uint16(134), + 97: uint16(134), + 98: uint16(128), + 99: uint16(125), + 100: uint16(232), + 101: uint16(1506), + 102: uint16(132), + 103: uint16(132), + 104: uint16(132), + 105: uint16(132), + 106: uint16(131), + 107: uint16(131), + 108: uint16(130), + 109: uint16(130), + 110: uint16(130), + 111: uint16(129), + 112: uint16(126), + 113: uint16(450), + 114: uint16(1204), + 115: uint16(1255), + 116: uint16(1), + 117: uint16(1), + 118: uint16(582), + 119: uint16(2), + 120: uint16(1259), + 121: uint16(1571), + 122: uint16(420), + 123: uint16(1582), + 124: uint16(379), + 125: uint16(320), + 126: uint16(1174), + 127: uint16(153), + 128: uint16(1174), + 129: uint16(1584), + 130: uint16(412), + 131: uint16(378), + 132: uint16(1582), + 133: uint16(543), + 134: uint16(1341), + 135: uint16(330), + 136: uint16(111), + 137: uint16(570), + 138: uint16(570), + 139: uint16(570), + 140: uint16(293), + 141: uint16(1054), + 142: uint16(132), + 143: uint16(132), + 144: uint16(132), + 145: uint16(132), + 146: uint16(131), + 147: uint16(131), + 148: uint16(130), + 149: uint16(130), + 150: uint16(130), + 151: uint16(129), + 152: uint16(126), + 153: uint16(450), + 154: uint16(135), + 155: uint16(136), + 156: uint16(90), + 157: uint16(1228), + 158: uint16(1228), + 159: uint16(1063), + 160: uint16(1066), + 161: uint16(1053), + 162: uint16(1053), + 163: uint16(133), + 164: uint16(133), + 165: uint16(134), + 166: uint16(134), + 167: uint16(134), + 168: uint16(134), + 169: uint16(287), + 170: uint16(287), + 171: uint16(1204), + 172: uint16(1205), + 173: uint16(1204), + 174: uint16(255), + 175: uint16(287), + 176: uint16(287), + 177: uint16(510), + 178: uint16(507), + 179: uint16(506), + 180: uint16(137), + 181: uint16(455), + 182: uint16(573), + 183: uint16(212), + 184: uint16(561), + 185: uint16(447), + 186: uint16(446), + 187: uint16(505), + 188: uint16(573), + 189: uint16(1616), + 190: uint16(561), + 191: uint16(134), + 192: uint16(134), + 193: uint16(134), + 194: uint16(134), + 195: uint16(127), + 196: uint16(400), + 197: uint16(243), + 198: uint16(132), + 199: uint16(132), + 200: uint16(132), + 201: uint16(132), + 202: uint16(131), + 203: uint16(131), + 204: uint16(130), + 205: uint16(130), + 206: uint16(130), + 207: uint16(129), + 208: uint16(126), + 209: uint16(450), + 210: uint16(282), + 211: uint16(471), + 212: uint16(345), + 213: uint16(132), + 214: uint16(132), + 215: uint16(132), + 216: uint16(132), + 217: uint16(131), + 218: uint16(131), + 219: uint16(130), + 220: uint16(130), + 221: uint16(130), + 222: uint16(129), + 223: uint16(126), + 224: uint16(450), + 225: uint16(574), + 226: uint16(155), + 227: uint16(936), + 228: uint16(936), + 229: uint16(454), + 230: uint16(227), + 231: uint16(521), + 232: uint16(1236), + 233: uint16(412), + 234: uint16(1236), + 235: uint16(134), + 236: uint16(134), + 237: uint16(134), + 238: uint16(134), + 239: uint16(132), + 240: uint16(132), + 241: uint16(132), + 242: uint16(132), + 243: uint16(131), + 244: uint16(131), + 245: uint16(130), + 246: uint16(130), + 247: uint16(130), + 248: uint16(129), + 249: uint16(126), + 250: uint16(450), + 251: uint16(130), + 252: uint16(130), + 253: uint16(130), + 254: uint16(129), + 255: uint16(126), + 256: uint16(450), + 257: uint16(135), + 258: uint16(136), + 259: uint16(90), + 260: uint16(1228), + 261: uint16(1228), + 262: uint16(1063), + 263: uint16(1066), + 264: uint16(1053), + 265: uint16(1053), + 266: uint16(133), + 267: uint16(133), + 268: uint16(134), + 269: uint16(134), + 270: uint16(134), + 271: uint16(134), + 272: uint16(128), + 273: uint16(125), + 274: uint16(232), + 275: uint16(450), + 276: uint16(576), + 277: uint16(412), + 278: uint16(397), + 279: uint16(1249), + 280: uint16(180), + 281: uint16(92), + 282: uint16(93), + 283: uint16(132), + 284: uint16(132), + 285: uint16(132), + 286: uint16(132), + 287: uint16(131), + 288: uint16(131), + 289: uint16(130), + 290: uint16(130), + 291: uint16(130), + 292: uint16(129), + 293: uint16(126), + 294: uint16(450), + 295: uint16(381), + 296: uint16(387), + 297: uint16(1204), + 298: uint16(383), + 299: uint16(81), + 300: uint16(81), + 301: uint16(135), + 302: uint16(136), + 303: uint16(90), + 304: uint16(1228), + 305: uint16(1228), + 306: uint16(1063), + 307: uint16(1066), + 308: uint16(1053), + 309: uint16(1053), + 310: uint16(133), + 311: uint16(133), + 312: uint16(134), + 313: uint16(134), + 314: uint16(134), + 315: uint16(134), + 316: uint16(132), + 317: uint16(132), + 318: uint16(132), + 319: uint16(132), + 320: uint16(131), + 321: uint16(131), + 322: uint16(130), + 323: uint16(130), + 324: uint16(130), + 325: uint16(129), + 326: uint16(126), + 327: uint16(450), + 328: uint16(131), + 329: uint16(131), + 330: uint16(130), + 331: uint16(130), + 332: uint16(130), + 333: uint16(129), + 334: uint16(126), + 335: uint16(450), + 336: uint16(556), + 337: uint16(1204), + 338: uint16(302), + 339: uint16(319), + 340: uint16(567), + 341: uint16(121), + 342: uint16(568), + 343: uint16(480), 344: uint16(4), - 345: uint16(929), - 346: uint16(929), - 347: uint16(435), - 348: uint16(503), - 349: uint16(342), - 350: uint16(464), - 351: uint16(330), - 352: uint16(362), - 353: uint16(396), - 354: uint16(1238), - 355: uint16(1193), - 356: uint16(1194), - 357: uint16(1193), - 358: uint16(567), - 359: uint16(572), - 360: uint16(123), - 361: uint16(123), - 362: uint16(123), - 363: uint16(123), - 364: uint16(122), - 365: uint16(122), - 366: uint16(121), - 367: uint16(121), - 368: uint16(121), - 369: uint16(120), - 370: uint16(117), - 371: uint16(448), - 372: uint16(286), - 373: uint16(286), - 374: uint16(371), - 375: uint16(1581), - 376: uint16(1607), - 377: uint16(445), - 378: uint16(444), - 379: uint16(155), - 380: uint16(411), - 381: uint16(449), - 382: uint16(72), - 383: uint16(72), - 384: uint16(1289), - 385: uint16(569), - 386: uint16(1222), - 387: uint16(1193), - 388: uint16(1194), - 389: uint16(1193), - 390: uint16(86), - 391: uint16(1224), - 392: uint16(273), - 393: uint16(561), - 394: uint16(547), - 395: uint16(520), - 396: uint16(520), - 397: uint16(572), - 398: uint16(99), - 399: uint16(1223), - 400: uint16(6), - 401: uint16(1281), - 402: uint16(476), - 403: uint16(143), - 404: uint16(126), - 405: uint16(127), - 406: uint16(81), - 407: uint16(1217), - 408: uint16(1217), - 409: uint16(1054), - 410: uint16(1057), - 411: uint16(1044), - 412: uint16(1044), - 413: uint16(124), - 414: uint16(124), - 415: uint16(125), - 416: uint16(125), - 417: uint16(125), - 418: uint16(125), - 419: uint16(554), - 420: uint16(13), - 421: uint16(13), - 422: uint16(1031), - 423: uint16(511), - 424: uint16(1225), - 425: uint16(1193), - 426: uint16(1225), - 427: uint16(553), - 428: uint16(110), - 429: uint16(110), - 430: uint16(224), - 431: uint16(572), - 432: uint16(1239), - 433: uint16(177), - 434: uint16(572), - 435: uint16(429), - 436: uint16(111), - 437: uint16(199), - 438: uint16(449), - 439: uint16(573), - 440: uint16(449), - 441: uint16(432), - 442: uint16(1555), - 443: uint16(1019), - 444: uint16(327), - 445: uint16(555), - 446: uint16(1193), - 447: uint16(272), - 448: uint16(289), - 449: uint16(370), - 450: uint16(514), - 451: uint16(365), - 452: uint16(513), - 453: uint16(259), - 454: uint16(72), - 455: uint16(72), - 456: uint16(547), - 457: uint16(72), - 458: uint16(72), - 459: uint16(361), - 460: uint16(318), - 461: uint16(563), - 462: uint16(1613), - 463: uint16(123), - 464: uint16(123), - 465: uint16(123), - 466: uint16(123), - 467: uint16(122), - 468: uint16(122), - 469: uint16(121), - 470: uint16(121), - 471: uint16(121), - 472: uint16(120), - 473: uint16(117), - 474: uint16(448), - 475: uint16(1019), - 476: uint16(1019), - 477: uint16(1021), - 478: uint16(1022), - 479: uint16(28), - 480: uint16(286), - 481: uint16(286), - 482: uint16(1193), - 483: uint16(1194), - 484: uint16(1193), - 485: uint16(1159), - 486: uint16(572), - 487: uint16(1612), - 488: uint16(411), - 489: uint16(904), - 490: uint16(192), - 491: uint16(554), - 492: uint16(358), - 493: uint16(569), - 494: uint16(554), - 495: uint16(940), - 496: uint16(537), - 497: uint16(521), - 498: uint16(1159), - 499: uint16(437), - 500: uint16(415), - 501: uint16(1159), - 502: uint16(556), - 503: uint16(1193), - 504: uint16(1194), - 505: uint16(1193), - 506: uint16(572), - 507: uint16(548), - 508: uint16(548), - 509: uint16(52), - 510: uint16(52), - 511: uint16(216), - 512: uint16(126), - 513: uint16(127), - 514: uint16(81), - 515: uint16(1217), - 516: uint16(1217), - 517: uint16(1054), - 518: uint16(1057), - 519: uint16(1044), - 520: uint16(1044), - 521: uint16(124), - 522: uint16(124), - 523: uint16(125), - 524: uint16(125), - 525: uint16(125), - 526: uint16(125), - 527: uint16(1193), - 528: uint16(478), - 529: uint16(136), - 530: uint16(136), - 531: uint16(411), - 532: uint16(286), - 533: uint16(286), - 534: uint16(1493), - 535: uint16(509), - 536: uint16(122), - 537: uint16(122), - 538: uint16(121), - 539: uint16(121), - 540: uint16(121), - 541: uint16(120), - 542: uint16(117), - 543: uint16(448), - 544: uint16(1010), - 545: uint16(569), - 546: uint16(522), - 547: uint16(219), - 548: uint16(545), - 549: uint16(545), - 550: uint16(318), - 551: uint16(563), - 552: uint16(143), - 553: uint16(6), - 554: uint16(536), - 555: uint16(126), - 556: uint16(127), - 557: uint16(81), - 558: uint16(1217), - 559: uint16(1217), - 560: uint16(1054), - 561: uint16(1057), - 562: uint16(1044), - 563: uint16(1044), - 564: uint16(124), - 565: uint16(124), - 566: uint16(125), - 567: uint16(125), - 568: uint16(125), - 569: uint16(125), - 570: uint16(1557), - 571: uint16(123), - 572: uint16(123), - 573: uint16(123), - 574: uint16(123), - 575: uint16(122), - 576: uint16(122), - 577: uint16(121), - 578: uint16(121), - 579: uint16(121), - 580: uint16(120), - 581: uint16(117), - 582: uint16(448), - 583: uint16(489), - 584: uint16(1193), - 585: uint16(1194), - 586: uint16(1193), - 587: uint16(486), - 588: uint16(283), - 589: uint16(1270), - 590: uint16(960), - 591: uint16(254), - 592: uint16(1193), - 593: uint16(375), - 594: uint16(508), - 595: uint16(505), - 596: uint16(504), - 597: uint16(1193), - 598: uint16(342), - 599: uint16(574), - 600: uint16(1193), - 601: uint16(574), - 602: uint16(411), - 603: uint16(294), - 604: uint16(503), - 605: uint16(960), - 606: uint16(879), - 607: uint16(193), - 608: uint16(484), - 609: uint16(318), - 610: uint16(563), - 611: uint16(386), - 612: uint16(292), - 613: uint16(382), - 614: uint16(123), - 615: uint16(123), - 616: uint16(123), - 617: uint16(123), - 618: uint16(122), - 619: uint16(122), - 620: uint16(121), - 621: uint16(121), - 622: uint16(121), - 623: uint16(120), - 624: uint16(117), - 625: uint16(448), - 626: uint16(126), - 627: uint16(127), - 628: uint16(81), - 629: uint16(1217), - 630: uint16(1217), - 631: uint16(1054), - 632: uint16(1057), - 633: uint16(1044), - 634: uint16(1044), - 635: uint16(124), - 636: uint16(124), - 637: uint16(125), - 638: uint16(125), - 639: uint16(125), - 640: uint16(125), - 641: uint16(411), - 642: uint16(396), - 643: uint16(1139), - 644: uint16(1193), - 645: uint16(872), - 646: uint16(101), - 647: uint16(286), - 648: uint16(286), - 649: uint16(1193), - 650: uint16(1194), - 651: uint16(1193), - 652: uint16(375), - 653: uint16(1096), - 654: uint16(1193), - 655: uint16(1194), - 656: uint16(1193), - 657: uint16(1193), - 658: uint16(1194), - 659: uint16(1193), - 660: uint16(569), - 661: uint16(459), - 662: uint16(33), - 663: uint16(375), - 664: uint16(235), - 665: uint16(126), - 666: uint16(127), - 667: uint16(81), - 668: uint16(1217), - 669: uint16(1217), - 670: uint16(1054), - 671: uint16(1057), - 672: uint16(1044), - 673: uint16(1044), - 674: uint16(124), - 675: uint16(124), - 676: uint16(125), - 677: uint16(125), - 678: uint16(125), - 679: uint16(125), - 680: uint16(1437), - 681: uint16(962), - 682: uint16(572), - 683: uint16(230), - 684: uint16(961), - 685: uint16(123), - 686: uint16(123), - 687: uint16(123), - 688: uint16(123), - 689: uint16(122), - 690: uint16(122), - 691: uint16(121), - 692: uint16(121), - 693: uint16(121), - 694: uint16(120), - 695: uint16(117), - 696: uint16(448), - 697: uint16(1159), - 698: uint16(230), - 699: uint16(1193), - 700: uint16(158), - 701: uint16(1193), - 702: uint16(1194), - 703: uint16(1193), - 704: uint16(1556), - 705: uint16(13), - 706: uint16(13), - 707: uint16(303), - 708: uint16(960), - 709: uint16(1233), - 710: uint16(1159), - 711: uint16(154), - 712: uint16(411), - 713: uint16(1159), - 714: uint16(375), - 715: uint16(1584), - 716: uint16(1177), - 717: uint16(5), - 718: uint16(371), - 719: uint16(1581), - 720: uint16(431), - 721: uint16(1239), - 722: uint16(3), - 723: uint16(960), - 724: uint16(123), - 725: uint16(123), - 726: uint16(123), - 727: uint16(123), - 728: uint16(122), - 729: uint16(122), - 730: uint16(121), - 731: uint16(121), - 732: uint16(121), - 733: uint16(120), - 734: uint16(117), - 735: uint16(448), - 736: uint16(126), - 737: uint16(127), - 738: uint16(81), - 739: uint16(1217), - 740: uint16(1217), - 741: uint16(1054), - 742: uint16(1057), - 743: uint16(1044), - 744: uint16(1044), - 745: uint16(124), - 746: uint16(124), - 747: uint16(125), - 748: uint16(125), - 749: uint16(125), - 750: uint16(125), - 751: uint16(411), - 752: uint16(210), - 753: uint16(571), - 754: uint16(1193), - 755: uint16(1032), - 756: uint16(1193), - 757: uint16(1194), - 758: uint16(1193), - 759: uint16(1193), - 760: uint16(390), - 761: uint16(855), - 762: uint16(156), - 763: uint16(1555), - 764: uint16(376), - 765: uint16(404), - 766: uint16(1101), - 767: uint16(1101), - 768: uint16(492), - 769: uint16(572), - 770: uint16(469), - 771: uint16(344), - 772: uint16(1322), - 773: uint16(1322), - 774: uint16(1555), - 775: uint16(126), - 776: uint16(127), - 777: uint16(81), - 778: uint16(1217), - 779: uint16(1217), - 780: uint16(1054), - 781: uint16(1057), - 782: uint16(1044), - 783: uint16(1044), - 784: uint16(124), - 785: uint16(124), - 786: uint16(125), - 787: uint16(125), - 788: uint16(125), - 789: uint16(125), - 790: uint16(130), - 791: uint16(572), - 792: uint16(13), - 793: uint16(13), - 794: uint16(532), - 795: uint16(123), - 796: uint16(123), - 797: uint16(123), - 798: uint16(123), - 799: uint16(122), - 800: uint16(122), - 801: uint16(121), - 802: uint16(121), - 803: uint16(121), - 804: uint16(120), - 805: uint16(117), - 806: uint16(448), - 807: uint16(304), - 808: uint16(572), - 809: uint16(457), - 810: uint16(229), - 811: uint16(1193), - 812: uint16(1194), - 813: uint16(1193), - 814: uint16(13), - 815: uint16(13), - 816: uint16(1193), - 817: uint16(1194), - 818: uint16(1193), - 819: uint16(1300), - 820: uint16(467), - 821: uint16(1270), - 822: uint16(411), - 823: uint16(1320), - 824: uint16(1320), - 825: uint16(1555), - 826: uint16(1015), - 827: uint16(457), - 828: uint16(456), - 829: uint16(436), - 830: uint16(301), - 831: uint16(72), - 832: uint16(72), - 833: uint16(1268), - 834: uint16(123), - 835: uint16(123), - 836: uint16(123), - 837: uint16(123), - 838: uint16(122), - 839: uint16(122), - 840: uint16(121), - 841: uint16(121), - 842: uint16(121), - 843: uint16(120), - 844: uint16(117), - 845: uint16(448), - 846: uint16(126), - 847: uint16(127), - 848: uint16(81), - 849: uint16(1217), - 850: uint16(1217), - 851: uint16(1054), - 852: uint16(1057), - 853: uint16(1044), - 854: uint16(1044), - 855: uint16(124), - 856: uint16(124), - 857: uint16(125), - 858: uint16(125), - 859: uint16(125), - 860: uint16(125), - 861: uint16(411), - 862: uint16(384), - 863: uint16(1076), - 864: uint16(1159), - 865: uint16(286), - 866: uint16(286), - 867: uint16(421), - 868: uint16(314), - 869: uint16(280), - 870: uint16(280), - 871: uint16(287), - 872: uint16(287), - 873: uint16(461), - 874: uint16(408), - 875: uint16(407), - 876: uint16(1539), - 877: uint16(1159), - 878: uint16(569), - 879: uint16(572), - 880: uint16(1159), - 881: uint16(1196), - 882: uint16(569), - 883: uint16(409), - 884: uint16(569), - 885: uint16(126), - 886: uint16(127), - 887: uint16(81), - 888: uint16(1217), - 889: uint16(1217), - 890: uint16(1054), - 891: uint16(1057), - 892: uint16(1044), - 893: uint16(1044), - 894: uint16(124), - 895: uint16(124), - 896: uint16(125), - 897: uint16(125), - 898: uint16(125), - 899: uint16(125), - 900: uint16(457), - 901: uint16(1485), - 902: uint16(13), - 903: uint16(13), - 904: uint16(1541), - 905: uint16(123), - 906: uint16(123), - 907: uint16(123), - 908: uint16(123), - 909: uint16(122), - 910: uint16(122), - 911: uint16(121), - 912: uint16(121), - 913: uint16(121), - 914: uint16(120), - 915: uint16(117), - 916: uint16(448), - 917: uint16(202), - 918: uint16(572), - 919: uint16(462), - 920: uint16(1587), - 921: uint16(578), - 922: uint16(2), - 923: uint16(1248), - 924: uint16(843), - 925: uint16(844), - 926: uint16(845), - 927: uint16(1563), - 928: uint16(319), - 929: uint16(409), - 930: uint16(147), - 931: uint16(6), - 932: uint16(411), - 933: uint16(257), - 934: uint16(256), - 935: uint16(255), - 936: uint16(208), - 937: uint16(1330), - 938: uint16(9), - 939: uint16(1196), - 940: uint16(264), - 941: uint16(72), - 942: uint16(72), - 943: uint16(1436), - 944: uint16(123), - 945: uint16(123), - 946: uint16(123), - 947: uint16(123), - 948: uint16(122), - 949: uint16(122), - 950: uint16(121), - 951: uint16(121), - 952: uint16(121), - 953: uint16(120), - 954: uint16(117), - 955: uint16(448), - 956: uint16(126), - 957: uint16(127), - 958: uint16(81), - 959: uint16(1217), - 960: uint16(1217), - 961: uint16(1054), - 962: uint16(1057), - 963: uint16(1044), - 964: uint16(1044), - 965: uint16(124), - 966: uint16(124), - 967: uint16(125), - 968: uint16(125), - 969: uint16(125), - 970: uint16(125), - 971: uint16(572), - 972: uint16(286), - 973: uint16(286), - 974: uint16(572), - 975: uint16(1213), - 976: uint16(411), - 977: uint16(577), - 978: uint16(315), - 979: uint16(1248), - 980: uint16(421), - 981: uint16(371), - 982: uint16(1581), - 983: uint16(356), - 984: uint16(319), - 985: uint16(569), - 986: uint16(147), - 987: uint16(495), - 988: uint16(529), - 989: uint16(1644), - 990: uint16(397), - 991: uint16(935), - 992: uint16(495), - 993: uint16(1330), - 994: uint16(71), - 995: uint16(71), - 996: uint16(934), - 997: uint16(72), - 998: uint16(72), - 999: uint16(242), - 1000: uint16(1328), - 1001: uint16(105), - 1002: uint16(81), - 1003: uint16(1217), - 1004: uint16(1217), - 1005: uint16(1054), - 1006: uint16(1057), - 1007: uint16(1044), - 1008: uint16(1044), - 1009: uint16(124), - 1010: uint16(124), - 1011: uint16(125), - 1012: uint16(125), - 1013: uint16(125), - 1014: uint16(125), - 1015: uint16(123), - 1016: uint16(123), - 1017: uint16(123), - 1018: uint16(123), - 1019: uint16(122), - 1020: uint16(122), - 1021: uint16(121), - 1022: uint16(121), - 1023: uint16(121), - 1024: uint16(120), - 1025: uint16(117), - 1026: uint16(448), - 1027: uint16(1117), - 1028: uint16(286), - 1029: uint16(286), - 1030: uint16(1422), - 1031: uint16(452), - 1032: uint16(1528), - 1033: uint16(1213), - 1034: uint16(443), - 1035: uint16(286), - 1036: uint16(286), - 1037: uint16(1492), - 1038: uint16(1355), - 1039: uint16(313), - 1040: uint16(478), - 1041: uint16(569), - 1042: uint16(1118), - 1043: uint16(454), - 1044: uint16(351), - 1045: uint16(495), - 1046: uint16(354), - 1047: uint16(1266), - 1048: uint16(569), - 1049: uint16(209), - 1050: uint16(572), - 1051: uint16(418), - 1052: uint16(179), - 1053: uint16(572), - 1054: uint16(1031), - 1055: uint16(242), - 1056: uint16(385), - 1057: uint16(1119), - 1058: uint16(523), - 1059: uint16(123), - 1060: uint16(123), - 1061: uint16(123), - 1062: uint16(123), - 1063: uint16(122), - 1064: uint16(122), - 1065: uint16(121), - 1066: uint16(121), - 1067: uint16(121), - 1068: uint16(120), - 1069: uint16(117), - 1070: uint16(448), - 1071: uint16(1020), - 1072: uint16(108), - 1073: uint16(72), - 1074: uint16(72), - 1075: uint16(1019), - 1076: uint16(13), - 1077: uint16(13), - 1078: uint16(915), - 1079: uint16(572), - 1080: uint16(1498), - 1081: uint16(572), - 1082: uint16(286), - 1083: uint16(286), - 1084: uint16(98), - 1085: uint16(530), - 1086: uint16(1537), - 1087: uint16(452), - 1088: uint16(916), - 1089: uint16(1334), - 1090: uint16(1329), - 1091: uint16(203), - 1092: uint16(411), - 1093: uint16(286), - 1094: uint16(286), - 1095: uint16(569), - 1096: uint16(152), - 1097: uint16(211), - 1098: uint16(1498), - 1099: uint16(1500), - 1100: uint16(426), - 1101: uint16(569), - 1102: uint16(56), - 1103: uint16(56), - 1104: uint16(57), - 1105: uint16(57), - 1106: uint16(569), - 1107: uint16(1019), - 1108: uint16(1019), - 1109: uint16(1021), - 1110: uint16(447), - 1111: uint16(572), - 1112: uint16(411), - 1113: uint16(531), - 1114: uint16(12), - 1115: uint16(297), - 1116: uint16(126), - 1117: uint16(127), - 1118: uint16(81), - 1119: uint16(1217), - 1120: uint16(1217), - 1121: uint16(1054), - 1122: uint16(1057), - 1123: uint16(1044), - 1124: uint16(1044), - 1125: uint16(124), - 1126: uint16(124), - 1127: uint16(125), - 1128: uint16(125), - 1129: uint16(125), - 1130: uint16(125), - 1131: uint16(572), - 1132: uint16(411), - 1133: uint16(867), - 1134: uint16(15), - 1135: uint16(15), - 1136: uint16(126), - 1137: uint16(127), - 1138: uint16(81), - 1139: uint16(1217), - 1140: uint16(1217), - 1141: uint16(1054), - 1142: uint16(1057), - 1143: uint16(1044), - 1144: uint16(1044), - 1145: uint16(124), - 1146: uint16(124), - 1147: uint16(125), - 1148: uint16(125), - 1149: uint16(125), - 1150: uint16(125), - 1151: uint16(373), - 1152: uint16(529), - 1153: uint16(264), - 1154: uint16(44), - 1155: uint16(44), - 1156: uint16(126), - 1157: uint16(115), - 1158: uint16(81), - 1159: uint16(1217), - 1160: uint16(1217), - 1161: uint16(1054), - 1162: uint16(1057), - 1163: uint16(1044), - 1164: uint16(1044), - 1165: uint16(124), - 1166: uint16(124), - 1167: uint16(125), - 1168: uint16(125), - 1169: uint16(125), - 1170: uint16(125), - 1171: uint16(1498), - 1172: uint16(478), - 1173: uint16(1271), - 1174: uint16(417), - 1175: uint16(123), - 1176: uint16(123), - 1177: uint16(123), - 1178: uint16(123), - 1179: uint16(122), - 1180: uint16(122), - 1181: uint16(121), - 1182: uint16(121), - 1183: uint16(121), - 1184: uint16(120), - 1185: uint16(117), - 1186: uint16(448), - 1187: uint16(205), - 1188: uint16(1213), - 1189: uint16(495), - 1190: uint16(430), - 1191: uint16(867), - 1192: uint16(468), - 1193: uint16(322), - 1194: uint16(495), - 1195: uint16(123), - 1196: uint16(123), - 1197: uint16(123), - 1198: uint16(123), - 1199: uint16(122), - 1200: uint16(122), - 1201: uint16(121), - 1202: uint16(121), - 1203: uint16(121), - 1204: uint16(120), - 1205: uint16(117), - 1206: uint16(448), - 1207: uint16(572), - 1208: uint16(557), - 1209: uint16(1140), - 1210: uint16(1642), - 1211: uint16(1422), - 1212: uint16(1642), - 1213: uint16(543), - 1214: uint16(572), - 1215: uint16(123), - 1216: uint16(123), - 1217: uint16(123), - 1218: uint16(123), - 1219: uint16(122), - 1220: uint16(122), - 1221: uint16(121), - 1222: uint16(121), - 1223: uint16(121), - 1224: uint16(120), - 1225: uint16(117), - 1226: uint16(448), - 1227: uint16(572), - 1228: uint16(1422), - 1229: uint16(572), - 1230: uint16(13), - 1231: uint16(13), - 1232: uint16(542), - 1233: uint16(323), - 1234: uint16(1325), - 1235: uint16(411), - 1236: uint16(334), - 1237: uint16(58), - 1238: uint16(58), - 1239: uint16(349), - 1240: uint16(1422), - 1241: uint16(1170), - 1242: uint16(326), - 1243: uint16(286), - 1244: uint16(286), - 1245: uint16(549), - 1246: uint16(1213), - 1247: uint16(300), - 1248: uint16(895), - 1249: uint16(530), - 1250: uint16(45), - 1251: uint16(45), - 1252: uint16(59), - 1253: uint16(59), - 1254: uint16(1140), - 1255: uint16(1643), - 1256: uint16(569), - 1257: uint16(1643), - 1258: uint16(565), - 1259: uint16(417), - 1260: uint16(127), - 1261: uint16(81), - 1262: uint16(1217), - 1263: uint16(1217), - 1264: uint16(1054), - 1265: uint16(1057), - 1266: uint16(1044), - 1267: uint16(1044), - 1268: uint16(124), - 1269: uint16(124), - 1270: uint16(125), - 1271: uint16(125), - 1272: uint16(125), - 1273: uint16(125), - 1274: uint16(1367), - 1275: uint16(373), - 1276: uint16(500), - 1277: uint16(290), - 1278: uint16(1193), - 1279: uint16(512), - 1280: uint16(1366), - 1281: uint16(427), - 1282: uint16(394), - 1283: uint16(394), - 1284: uint16(393), - 1285: uint16(275), - 1286: uint16(391), - 1287: uint16(896), - 1288: uint16(1138), - 1289: uint16(852), - 1290: uint16(478), - 1291: uint16(258), - 1292: uint16(1422), - 1293: uint16(1170), - 1294: uint16(463), - 1295: uint16(1159), - 1296: uint16(12), - 1297: uint16(331), - 1298: uint16(428), - 1299: uint16(333), - 1300: uint16(1117), - 1301: uint16(460), - 1302: uint16(236), - 1303: uint16(258), - 1304: uint16(325), - 1305: uint16(460), - 1306: uint16(544), - 1307: uint16(1544), - 1308: uint16(1159), - 1309: uint16(1098), - 1310: uint16(491), - 1311: uint16(1159), - 1312: uint16(324), - 1313: uint16(1098), - 1314: uint16(440), - 1315: uint16(1118), - 1316: uint16(335), - 1317: uint16(516), - 1318: uint16(123), - 1319: uint16(123), - 1320: uint16(123), - 1321: uint16(123), - 1322: uint16(122), - 1323: uint16(122), - 1324: uint16(121), - 1325: uint16(121), - 1326: uint16(121), - 1327: uint16(120), - 1328: uint16(117), - 1329: uint16(448), - 1330: uint16(1119), - 1331: uint16(318), - 1332: uint16(563), - 1333: uint16(1138), - 1334: uint16(572), - 1335: uint16(1193), - 1336: uint16(1194), - 1337: uint16(1193), - 1338: uint16(112), - 1339: uint16(564), - 1340: uint16(201), + 345: uint16(555), + 346: uint16(1149), + 347: uint16(1657), + 348: uint16(1628), + 349: uint16(1657), + 350: uint16(45), + 351: uint16(128), + 352: uint16(125), + 353: uint16(232), + 354: uint16(1204), + 355: uint16(1205), + 356: uint16(1204), + 357: uint16(1250), + 358: uint16(571), + 359: uint16(1169), + 360: uint16(132), + 361: uint16(132), + 362: uint16(132), + 363: uint16(132), + 364: uint16(131), + 365: uint16(131), + 366: uint16(130), + 367: uint16(130), + 368: uint16(130), + 369: uint16(129), + 370: uint16(126), + 371: uint16(450), + 372: uint16(1169), + 373: uint16(287), + 374: uint16(287), + 375: uint16(1169), + 376: uint16(1019), + 377: uint16(576), + 378: uint16(422), + 379: uint16(1019), + 380: uint16(412), + 381: uint16(451), + 382: uint16(1602), + 383: uint16(582), + 384: uint16(2), + 385: uint16(1259), + 386: uint16(573), + 387: uint16(44), + 388: uint16(561), + 389: uint16(95), + 390: uint16(320), + 391: uint16(110), + 392: uint16(153), + 393: uint16(565), + 394: uint16(1204), + 395: uint16(1205), + 396: uint16(1204), + 397: uint16(522), + 398: uint16(522), + 399: uint16(1341), + 400: uint16(81), + 401: uint16(81), + 402: uint16(7), + 403: uint16(44), + 404: uint16(135), + 405: uint16(136), + 406: uint16(90), + 407: uint16(1228), + 408: uint16(1228), + 409: uint16(1063), + 410: uint16(1066), + 411: uint16(1053), + 412: uint16(1053), + 413: uint16(133), + 414: uint16(133), + 415: uint16(134), + 416: uint16(134), + 417: uint16(134), + 418: uint16(134), + 419: uint16(295), + 420: uint16(1149), + 421: uint16(1658), + 422: uint16(1040), + 423: uint16(1658), + 424: uint16(1204), + 425: uint16(1147), + 426: uint16(319), + 427: uint16(567), + 428: uint16(119), + 429: uint16(119), + 430: uint16(343), + 431: uint16(466), + 432: uint16(331), + 433: uint16(343), + 434: uint16(287), + 435: uint16(287), + 436: uint16(120), + 437: uint16(556), + 438: uint16(451), + 439: uint16(577), + 440: uint16(451), + 441: uint16(1169), + 442: uint16(1169), + 443: uint16(1028), + 444: uint16(319), + 445: uint16(567), + 446: uint16(438), + 447: uint16(573), + 448: uint16(210), + 449: uint16(561), + 450: uint16(1339), + 451: uint16(1451), + 452: uint16(546), + 453: uint16(531), + 454: uint16(1169), + 455: uint16(1169), + 456: uint16(1598), + 457: uint16(1169), + 458: uint16(1169), + 459: uint16(416), + 460: uint16(319), + 461: uint16(567), + 462: uint16(243), + 463: uint16(132), + 464: uint16(132), + 465: uint16(132), + 466: uint16(132), + 467: uint16(131), + 468: uint16(131), + 469: uint16(130), + 470: uint16(130), + 471: uint16(130), + 472: uint16(129), + 473: uint16(126), + 474: uint16(450), + 475: uint16(1028), + 476: uint16(1028), + 477: uint16(1030), + 478: uint16(1031), + 479: uint16(35), + 480: uint16(44), + 481: uint16(1204), + 482: uint16(1205), + 483: uint16(1204), + 484: uint16(472), + 485: uint16(287), + 486: uint16(287), + 487: uint16(1328), + 488: uint16(412), + 489: uint16(1307), + 490: uint16(372), + 491: uint16(1595), + 492: uint16(359), + 493: uint16(225), + 494: uint16(454), + 495: uint16(1204), + 496: uint16(195), + 497: uint16(1328), + 498: uint16(573), + 499: uint16(1147), + 500: uint16(561), + 501: uint16(1333), + 502: uint16(1333), + 503: uint16(274), + 504: uint16(576), + 505: uint16(1188), + 506: uint16(576), + 507: uint16(340), + 508: uint16(46), + 509: uint16(196), + 510: uint16(537), + 511: uint16(217), + 512: uint16(135), + 513: uint16(136), + 514: uint16(90), + 515: uint16(1228), + 516: uint16(1228), + 517: uint16(1063), + 518: uint16(1066), + 519: uint16(1053), + 520: uint16(1053), + 521: uint16(133), + 522: uint16(133), + 523: uint16(134), + 524: uint16(134), + 525: uint16(134), + 526: uint16(134), + 527: uint16(19), + 528: uint16(19), + 529: uint16(19), + 530: uint16(19), + 531: uint16(412), + 532: uint16(581), + 533: uint16(1204), + 534: uint16(1259), + 535: uint16(511), + 536: uint16(1204), + 537: uint16(319), + 538: uint16(567), + 539: uint16(320), + 540: uint16(944), + 541: uint16(153), + 542: uint16(425), + 543: uint16(491), + 544: uint16(430), + 545: uint16(943), + 546: uint16(1204), + 547: uint16(488), + 548: uint16(1341), + 549: uint16(1450), + 550: uint16(532), + 551: uint16(1277), + 552: uint16(1204), + 553: uint16(1205), + 554: uint16(1204), + 555: uint16(135), + 556: uint16(136), + 557: uint16(90), + 558: uint16(1228), + 559: uint16(1228), + 560: uint16(1063), + 561: uint16(1066), + 562: uint16(1053), + 563: uint16(1053), + 564: uint16(133), + 565: uint16(133), + 566: uint16(134), + 567: uint16(134), + 568: uint16(134), + 569: uint16(134), + 570: uint16(575), + 571: uint16(132), + 572: uint16(132), + 573: uint16(132), + 574: uint16(132), + 575: uint16(131), + 576: uint16(131), + 577: uint16(130), + 578: uint16(130), + 579: uint16(130), + 580: uint16(129), + 581: uint16(126), + 582: uint16(450), + 583: uint16(287), + 584: uint16(287), + 585: uint16(528), + 586: uint16(287), + 587: uint16(287), + 588: uint16(372), + 589: uint16(1595), + 590: uint16(1204), + 591: uint16(1205), + 592: uint16(1204), + 593: uint16(1204), + 594: uint16(1205), + 595: uint16(1204), + 596: uint16(573), + 597: uint16(486), + 598: uint16(561), + 599: uint16(573), + 600: uint16(889), + 601: uint16(561), + 602: uint16(412), + 603: uint16(1204), + 604: uint16(1205), + 605: uint16(1204), + 606: uint16(886), + 607: uint16(40), + 608: uint16(22), + 609: uint16(22), + 610: uint16(220), + 611: uint16(243), + 612: uint16(525), + 613: uint16(1449), + 614: uint16(132), + 615: uint16(132), + 616: uint16(132), + 617: uint16(132), + 618: uint16(131), + 619: uint16(131), + 620: uint16(130), + 621: uint16(130), + 622: uint16(130), + 623: uint16(129), + 624: uint16(126), + 625: uint16(450), + 626: uint16(135), + 627: uint16(136), + 628: uint16(90), + 629: uint16(1228), + 630: uint16(1228), + 631: uint16(1063), + 632: uint16(1066), + 633: uint16(1053), + 634: uint16(1053), + 635: uint16(133), + 636: uint16(133), + 637: uint16(134), + 638: uint16(134), + 639: uint16(134), + 640: uint16(134), + 641: uint16(412), + 642: uint16(180), + 643: uint16(454), + 644: uint16(1204), + 645: uint16(879), + 646: uint16(255), + 647: uint16(287), + 648: uint16(287), + 649: uint16(510), + 650: uint16(507), + 651: uint16(506), + 652: uint16(372), + 653: uint16(1595), + 654: uint16(1568), + 655: uint16(1331), + 656: uint16(1331), + 657: uint16(576), + 658: uint16(889), + 659: uint16(505), + 660: uint16(573), + 661: uint16(44), + 662: uint16(561), + 663: uint16(559), + 664: uint16(1207), + 665: uint16(135), + 666: uint16(136), + 667: uint16(90), + 668: uint16(1228), + 669: uint16(1228), + 670: uint16(1063), + 671: uint16(1066), + 672: uint16(1053), + 673: uint16(1053), + 674: uint16(133), + 675: uint16(133), + 676: uint16(134), + 677: uint16(134), + 678: uint16(134), + 679: uint16(134), + 680: uint16(81), + 681: uint16(81), + 682: uint16(422), + 683: uint16(576), + 684: uint16(377), + 685: uint16(132), + 686: uint16(132), + 687: uint16(132), + 688: uint16(132), + 689: uint16(131), + 690: uint16(131), + 691: uint16(130), + 692: uint16(130), + 693: uint16(130), + 694: uint16(129), + 695: uint16(126), + 696: uint16(450), + 697: uint16(297), + 698: uint16(287), + 699: uint16(287), + 700: uint16(460), + 701: uint16(1204), + 702: uint16(1205), + 703: uint16(1204), + 704: uint16(1204), + 705: uint16(534), + 706: uint16(19), + 707: uint16(19), + 708: uint16(448), + 709: uint16(448), + 710: uint16(448), + 711: uint16(573), + 712: uint16(412), + 713: uint16(561), + 714: uint16(230), + 715: uint16(436), + 716: uint16(1187), + 717: uint16(535), + 718: uint16(319), + 719: uint16(567), + 720: uint16(363), + 721: uint16(432), + 722: uint16(1207), + 723: uint16(1435), + 724: uint16(132), + 725: uint16(132), + 726: uint16(132), + 727: uint16(132), + 728: uint16(131), + 729: uint16(131), + 730: uint16(130), + 731: uint16(130), + 732: uint16(130), + 733: uint16(129), + 734: uint16(126), + 735: uint16(450), + 736: uint16(135), + 737: uint16(136), + 738: uint16(90), + 739: uint16(1228), + 740: uint16(1228), + 741: uint16(1063), + 742: uint16(1066), + 743: uint16(1053), + 744: uint16(1053), + 745: uint16(133), + 746: uint16(133), + 747: uint16(134), + 748: uint16(134), + 749: uint16(134), + 750: uint16(134), + 751: uint16(412), + 752: uint16(211), + 753: uint16(949), + 754: uint16(1169), + 755: uint16(1041), + 756: uint16(1110), + 757: uint16(1110), + 758: uint16(494), + 759: uint16(547), + 760: uint16(547), + 761: uint16(1204), + 762: uint16(1205), + 763: uint16(1204), + 764: uint16(7), + 765: uint16(539), + 766: uint16(1570), + 767: uint16(1169), + 768: uint16(376), + 769: uint16(576), + 770: uint16(1169), + 771: uint16(5), + 772: uint16(1204), + 773: uint16(486), + 774: uint16(3), + 775: uint16(135), + 776: uint16(136), + 777: uint16(90), + 778: uint16(1228), + 779: uint16(1228), + 780: uint16(1063), + 781: uint16(1066), + 782: uint16(1053), + 783: uint16(1053), + 784: uint16(133), + 785: uint16(133), + 786: uint16(134), + 787: uint16(134), + 788: uint16(134), + 789: uint16(134), + 790: uint16(576), + 791: uint16(513), + 792: uint16(19), + 793: uint16(19), + 794: uint16(427), + 795: uint16(132), + 796: uint16(132), + 797: uint16(132), + 798: uint16(132), + 799: uint16(131), + 800: uint16(131), + 801: uint16(130), + 802: uint16(130), + 803: uint16(130), + 804: uint16(129), + 805: uint16(126), + 806: uint16(450), + 807: uint16(305), + 808: uint16(1204), + 809: uint16(433), + 810: uint16(225), + 811: uint16(1204), + 812: uint16(385), + 813: uint16(19), + 814: uint16(19), + 815: uint16(273), + 816: uint16(290), + 817: uint16(371), + 818: uint16(516), + 819: uint16(366), + 820: uint16(515), + 821: uint16(260), + 822: uint16(412), + 823: uint16(538), + 824: uint16(1568), + 825: uint16(549), + 826: uint16(1024), + 827: uint16(362), + 828: uint16(437), + 829: uint16(1204), + 830: uint16(1205), + 831: uint16(1204), + 832: uint16(902), + 833: uint16(1552), + 834: uint16(132), + 835: uint16(132), + 836: uint16(132), + 837: uint16(132), + 838: uint16(131), + 839: uint16(131), + 840: uint16(130), + 841: uint16(130), + 842: uint16(130), + 843: uint16(129), + 844: uint16(126), + 845: uint16(450), + 846: uint16(135), + 847: uint16(136), + 848: uint16(90), + 849: uint16(1228), + 850: uint16(1228), + 851: uint16(1063), + 852: uint16(1066), + 853: uint16(1053), + 854: uint16(1053), + 855: uint16(133), + 856: uint16(133), + 857: uint16(134), + 858: uint16(134), + 859: uint16(134), + 860: uint16(134), + 861: uint16(412), + 862: uint16(1435), + 863: uint16(514), + 864: uint16(1281), + 865: uint16(1204), + 866: uint16(1205), + 867: uint16(1204), + 868: uint16(1204), + 869: uint16(1205), + 870: uint16(1204), + 871: uint16(903), + 872: uint16(48), + 873: uint16(342), + 874: uint16(1568), + 875: uint16(1568), + 876: uint16(1279), + 877: uint16(1627), + 878: uint16(1568), + 879: uint16(911), + 880: uint16(576), + 881: uint16(129), + 882: uint16(126), + 883: uint16(450), + 884: uint16(110), + 885: uint16(135), + 886: uint16(136), + 887: uint16(90), + 888: uint16(1228), + 889: uint16(1228), + 890: uint16(1063), + 891: uint16(1066), + 892: uint16(1053), + 893: uint16(1053), + 894: uint16(133), + 895: uint16(133), + 896: uint16(134), + 897: uint16(134), + 898: uint16(134), + 899: uint16(134), + 900: uint16(265), + 901: uint16(576), + 902: uint16(459), + 903: uint16(19), + 904: uint16(19), + 905: uint16(132), + 906: uint16(132), + 907: uint16(132), + 908: uint16(132), + 909: uint16(131), + 910: uint16(131), + 911: uint16(130), + 912: uint16(130), + 913: uint16(130), + 914: uint16(129), + 915: uint16(126), + 916: uint16(450), + 917: uint16(1345), + 918: uint16(204), + 919: uint16(576), + 920: uint16(459), + 921: uint16(458), + 922: uint16(50), + 923: uint16(47), + 924: uint16(19), + 925: uint16(19), + 926: uint16(49), + 927: uint16(434), + 928: uint16(1105), + 929: uint16(573), + 930: uint16(497), + 931: uint16(561), + 932: uint16(412), + 933: uint16(428), + 934: uint16(108), + 935: uint16(1224), + 936: uint16(1569), + 937: uint16(1554), + 938: uint16(376), + 939: uint16(205), + 940: uint16(550), + 941: uint16(550), + 942: uint16(81), + 943: uint16(81), + 944: uint16(132), + 945: uint16(132), + 946: uint16(132), + 947: uint16(132), + 948: uint16(131), + 949: uint16(131), + 950: uint16(130), + 951: uint16(130), + 952: uint16(130), + 953: uint16(129), + 954: uint16(126), + 955: uint16(450), + 956: uint16(135), + 957: uint16(136), + 958: uint16(90), + 959: uint16(1228), + 960: uint16(1228), + 961: uint16(1063), + 962: uint16(1066), + 963: uint16(1053), + 964: uint16(1053), + 965: uint16(133), + 966: uint16(133), + 967: uint16(134), + 968: uint16(134), + 969: uint16(134), + 970: uint16(134), + 971: uint16(480), + 972: uint16(576), + 973: uint16(1204), + 974: uint16(576), + 975: uint16(1541), + 976: uint16(412), + 977: uint16(1435), + 978: uint16(969), + 979: uint16(315), + 980: uint16(1659), + 981: uint16(398), + 982: uint16(284), + 983: uint16(497), + 984: uint16(969), + 985: uint16(893), + 986: uint16(1569), + 987: uint16(1569), + 988: uint16(376), + 989: uint16(376), + 990: uint16(1569), + 991: uint16(461), + 992: uint16(376), + 993: uint16(1224), + 994: uint16(459), + 995: uint16(80), + 996: uint16(80), + 997: uint16(81), + 998: uint16(81), + 999: uint16(497), + 1000: uint16(374), + 1001: uint16(114), + 1002: uint16(90), + 1003: uint16(1228), + 1004: uint16(1228), + 1005: uint16(1063), + 1006: uint16(1066), + 1007: uint16(1053), + 1008: uint16(1053), + 1009: uint16(133), + 1010: uint16(133), + 1011: uint16(134), + 1012: uint16(134), + 1013: uint16(134), + 1014: uint16(134), + 1015: uint16(132), + 1016: uint16(132), + 1017: uint16(132), + 1018: uint16(132), + 1019: uint16(131), + 1020: uint16(131), + 1021: uint16(130), + 1022: uint16(130), + 1023: uint16(130), + 1024: uint16(129), + 1025: uint16(126), + 1026: uint16(450), + 1027: uint16(1204), + 1028: uint16(1505), + 1029: uint16(576), + 1030: uint16(1204), + 1031: uint16(1205), + 1032: uint16(1204), + 1033: uint16(1366), + 1034: uint16(316), + 1035: uint16(486), + 1036: uint16(281), + 1037: uint16(281), + 1038: uint16(497), + 1039: uint16(431), + 1040: uint16(557), + 1041: uint16(288), + 1042: uint16(288), + 1043: uint16(402), + 1044: uint16(1340), + 1045: uint16(471), + 1046: uint16(345), + 1047: uint16(298), + 1048: uint16(429), + 1049: uint16(573), + 1050: uint16(576), + 1051: uint16(561), + 1052: uint16(81), + 1053: uint16(81), + 1054: uint16(573), + 1055: uint16(374), + 1056: uint16(561), + 1057: uint16(971), + 1058: uint16(386), + 1059: uint16(132), + 1060: uint16(132), + 1061: uint16(132), + 1062: uint16(132), + 1063: uint16(131), + 1064: uint16(131), + 1065: uint16(130), + 1066: uint16(130), + 1067: uint16(130), + 1068: uint16(129), + 1069: uint16(126), + 1070: uint16(450), + 1071: uint16(231), + 1072: uint16(117), + 1073: uint16(81), + 1074: uint16(81), + 1075: uint16(287), + 1076: uint16(287), + 1077: uint16(231), + 1078: uint16(287), + 1079: uint16(287), + 1080: uint16(576), + 1081: uint16(1511), + 1082: uint16(576), + 1083: uint16(1336), + 1084: uint16(1204), + 1085: uint16(1205), + 1086: uint16(1204), + 1087: uint16(139), + 1088: uint16(573), + 1089: uint16(556), + 1090: uint16(561), + 1091: uint16(573), + 1092: uint16(412), + 1093: uint16(561), + 1094: uint16(441), + 1095: uint16(456), + 1096: uint16(969), + 1097: uint16(213), + 1098: uint16(558), + 1099: uint16(1511), + 1100: uint16(1513), + 1101: uint16(1550), + 1102: uint16(969), + 1103: uint16(143), + 1104: uint16(143), + 1105: uint16(145), + 1106: uint16(145), + 1107: uint16(1368), + 1108: uint16(314), + 1109: uint16(478), + 1110: uint16(444), + 1111: uint16(970), + 1112: uint16(412), + 1113: uint16(850), + 1114: uint16(851), + 1115: uint16(852), + 1116: uint16(135), + 1117: uint16(136), + 1118: uint16(90), + 1119: uint16(1228), + 1120: uint16(1228), + 1121: uint16(1063), + 1122: uint16(1066), + 1123: uint16(1053), + 1124: uint16(1053), + 1125: uint16(133), + 1126: uint16(133), + 1127: uint16(134), + 1128: uint16(134), + 1129: uint16(134), + 1130: uint16(134), + 1131: uint16(357), + 1132: uint16(412), + 1133: uint16(397), + 1134: uint16(1148), + 1135: uint16(304), + 1136: uint16(135), + 1137: uint16(136), + 1138: uint16(90), + 1139: uint16(1228), + 1140: uint16(1228), + 1141: uint16(1063), + 1142: uint16(1066), + 1143: uint16(1053), + 1144: uint16(1053), + 1145: uint16(133), + 1146: uint16(133), + 1147: uint16(134), + 1148: uint16(134), + 1149: uint16(134), + 1150: uint16(134), + 1151: uint16(1575), + 1152: uint16(323), + 1153: uint16(6), + 1154: uint16(862), + 1155: uint16(7), + 1156: uint16(135), + 1157: uint16(124), + 1158: uint16(90), + 1159: uint16(1228), + 1160: uint16(1228), + 1161: uint16(1063), + 1162: uint16(1066), + 1163: uint16(1053), + 1164: uint16(1053), + 1165: uint16(133), + 1166: uint16(133), + 1167: uint16(134), + 1168: uint16(134), + 1169: uint16(134), + 1170: uint16(134), + 1171: uint16(409), + 1172: uint16(408), + 1173: uint16(1511), + 1174: uint16(212), + 1175: uint16(132), + 1176: uint16(132), + 1177: uint16(132), + 1178: uint16(132), + 1179: uint16(131), + 1180: uint16(131), + 1181: uint16(130), + 1182: uint16(130), + 1183: uint16(130), + 1184: uint16(129), + 1185: uint16(126), + 1186: uint16(450), + 1187: uint16(411), + 1188: uint16(118), + 1189: uint16(1204), + 1190: uint16(116), + 1191: uint16(10), + 1192: uint16(352), + 1193: uint16(265), + 1194: uint16(355), + 1195: uint16(132), + 1196: uint16(132), + 1197: uint16(132), + 1198: uint16(132), + 1199: uint16(131), + 1200: uint16(131), + 1201: uint16(130), + 1202: uint16(130), + 1203: uint16(130), + 1204: uint16(129), + 1205: uint16(126), + 1206: uint16(450), + 1207: uint16(576), + 1208: uint16(324), + 1209: uint16(306), + 1210: uint16(576), + 1211: uint16(306), + 1212: uint16(1250), + 1213: uint16(469), + 1214: uint16(158), + 1215: uint16(132), + 1216: uint16(132), + 1217: uint16(132), + 1218: uint16(132), + 1219: uint16(131), + 1220: uint16(131), + 1221: uint16(130), + 1222: uint16(130), + 1223: uint16(130), + 1224: uint16(129), + 1225: uint16(126), + 1226: uint16(450), + 1227: uint16(207), + 1228: uint16(1224), + 1229: uint16(1126), + 1230: uint16(65), + 1231: uint16(65), + 1232: uint16(470), + 1233: uint16(66), + 1234: uint16(66), + 1235: uint16(412), + 1236: uint16(447), + 1237: uint16(446), + 1238: uint16(882), + 1239: uint16(531), + 1240: uint16(335), + 1241: uint16(258), + 1242: uint16(257), + 1243: uint16(256), + 1244: uint16(1127), + 1245: uint16(1233), + 1246: uint16(1204), + 1247: uint16(1205), + 1248: uint16(1204), + 1249: uint16(327), + 1250: uint16(1235), + 1251: uint16(874), + 1252: uint16(159), + 1253: uint16(576), + 1254: uint16(16), + 1255: uint16(480), + 1256: uint16(1085), + 1257: uint16(1040), + 1258: uint16(1234), + 1259: uint16(1128), + 1260: uint16(136), + 1261: uint16(90), + 1262: uint16(1228), + 1263: uint16(1228), + 1264: uint16(1063), + 1265: uint16(1066), + 1266: uint16(1053), + 1267: uint16(1053), + 1268: uint16(133), + 1269: uint16(133), + 1270: uint16(134), + 1271: uint16(134), + 1272: uint16(134), + 1273: uint16(134), + 1274: uint16(1029), + 1275: uint16(576), + 1276: uint16(81), + 1277: uint16(81), + 1278: uint16(1028), + 1279: uint16(1040), + 1280: uint16(922), + 1281: uint16(576), + 1282: uint16(463), + 1283: uint16(1236), + 1284: uint16(576), + 1285: uint16(1236), + 1286: uint16(1224), + 1287: uint16(502), + 1288: uint16(107), + 1289: uint16(1435), + 1290: uint16(923), + 1291: uint16(6), + 1292: uint16(576), + 1293: uint16(410), + 1294: uint16(1498), + 1295: uint16(882), + 1296: uint16(1029), + 1297: uint16(480), + 1298: uint16(21), + 1299: uint16(21), + 1300: uint16(1028), + 1301: uint16(332), + 1302: uint16(1380), + 1303: uint16(334), + 1304: uint16(53), + 1305: uint16(53), + 1306: uint16(497), + 1307: uint16(81), + 1308: uint16(81), + 1309: uint16(874), + 1310: uint16(1028), + 1311: uint16(1028), + 1312: uint16(1030), + 1313: uint16(445), + 1314: uint16(259), + 1315: uint16(19), + 1316: uint16(19), + 1317: uint16(533), + 1318: uint16(132), + 1319: uint16(132), + 1320: uint16(132), + 1321: uint16(132), + 1322: uint16(131), + 1323: uint16(131), + 1324: uint16(130), + 1325: uint16(130), + 1326: uint16(130), + 1327: uint16(129), + 1328: uint16(126), + 1329: uint16(450), + 1330: uint16(551), + 1331: uint16(301), + 1332: uint16(1028), + 1333: uint16(1028), + 1334: uint16(1030), + 1335: uint16(107), + 1336: uint16(532), + 1337: uint16(545), + 1338: uint16(121), + 1339: uint16(568), + 1340: uint16(1188), 1341: uint16(4), - 1342: uint16(238), - 1343: uint16(433), - 1344: uint16(935), - 1345: uint16(490), - 1346: uint16(285), - 1347: uint16(228), - 1348: uint16(1517), - 1349: uint16(934), - 1350: uint16(170), - 1351: uint16(560), - 1352: uint16(572), - 1353: uint16(142), - 1354: uint16(1516), - 1355: uint16(567), - 1356: uint16(572), - 1357: uint16(60), - 1358: uint16(60), - 1359: uint16(572), - 1360: uint16(416), - 1361: uint16(572), - 1362: uint16(441), - 1363: uint16(572), - 1364: uint16(535), - 1365: uint16(302), - 1366: uint16(875), - 1367: uint16(8), - 1368: uint16(487), - 1369: uint16(572), - 1370: uint16(237), - 1371: uint16(572), - 1372: uint16(416), - 1373: uint16(572), - 1374: uint16(485), - 1375: uint16(61), - 1376: uint16(61), - 1377: uint16(572), - 1378: uint16(449), - 1379: uint16(62), - 1380: uint16(62), - 1381: uint16(332), - 1382: uint16(63), - 1383: uint16(63), - 1384: uint16(46), - 1385: uint16(46), - 1386: uint16(47), - 1387: uint16(47), - 1388: uint16(361), - 1389: uint16(572), - 1390: uint16(561), - 1391: uint16(572), - 1392: uint16(48), - 1393: uint16(48), - 1394: uint16(50), - 1395: uint16(50), - 1396: uint16(51), - 1397: uint16(51), - 1398: uint16(572), - 1399: uint16(295), - 1400: uint16(64), - 1401: uint16(64), - 1402: uint16(482), - 1403: uint16(295), - 1404: uint16(539), - 1405: uint16(412), - 1406: uint16(471), - 1407: uint16(1031), - 1408: uint16(572), - 1409: uint16(538), - 1410: uint16(318), - 1411: uint16(563), - 1412: uint16(65), - 1413: uint16(65), - 1414: uint16(66), - 1415: uint16(66), - 1416: uint16(409), - 1417: uint16(475), - 1418: uint16(572), - 1419: uint16(1031), - 1420: uint16(572), - 1421: uint16(14), - 1422: uint16(14), - 1423: uint16(875), - 1424: uint16(1020), - 1425: uint16(110), - 1426: uint16(110), - 1427: uint16(409), - 1428: uint16(1019), - 1429: uint16(572), - 1430: uint16(474), - 1431: uint16(67), - 1432: uint16(67), - 1433: uint16(111), - 1434: uint16(455), - 1435: uint16(449), - 1436: uint16(573), - 1437: uint16(449), - 1438: uint16(98), - 1439: uint16(317), - 1440: uint16(1019), - 1441: uint16(132), - 1442: uint16(132), - 1443: uint16(133), - 1444: uint16(133), - 1445: uint16(572), - 1446: uint16(1561), - 1447: uint16(572), - 1448: uint16(974), - 1449: uint16(409), - 1450: uint16(6), - 1451: uint16(1562), - 1452: uint16(68), - 1453: uint16(68), - 1454: uint16(1560), - 1455: uint16(6), - 1456: uint16(975), - 1457: uint16(572), - 1458: uint16(6), - 1459: uint16(1559), - 1460: uint16(1019), - 1461: uint16(1019), - 1462: uint16(1021), - 1463: uint16(6), - 1464: uint16(346), - 1465: uint16(218), - 1466: uint16(101), - 1467: uint16(531), - 1468: uint16(53), - 1469: uint16(53), - 1470: uint16(69), - 1471: uint16(69), - 1472: uint16(1019), - 1473: uint16(1019), - 1474: uint16(1021), - 1475: uint16(1022), - 1476: uint16(28), - 1477: uint16(1586), - 1478: uint16(1181), - 1479: uint16(451), - 1480: uint16(70), - 1481: uint16(70), - 1482: uint16(290), - 1483: uint16(87), - 1484: uint16(215), - 1485: uint16(31), - 1486: uint16(1363), - 1487: uint16(394), - 1488: uint16(394), - 1489: uint16(393), - 1490: uint16(275), - 1491: uint16(391), - 1492: uint16(350), - 1493: uint16(109), - 1494: uint16(852), - 1495: uint16(107), - 1496: uint16(572), - 1497: uint16(112), - 1498: uint16(564), - 1499: uint16(483), - 1500: uint16(4), - 1501: uint16(1212), - 1502: uint16(572), - 1503: uint16(239), - 1504: uint16(153), - 1505: uint16(572), - 1506: uint16(39), - 1507: uint16(236), - 1508: uint16(1299), - 1509: uint16(325), - 1510: uint16(112), - 1511: uint16(564), - 1512: uint16(1298), - 1513: uint16(4), - 1514: uint16(567), - 1515: uint16(572), - 1516: uint16(32), - 1517: uint16(324), - 1518: uint16(572), - 1519: uint16(54), - 1520: uint16(54), - 1521: uint16(572), - 1522: uint16(1135), - 1523: uint16(353), - 1524: uint16(398), - 1525: uint16(165), - 1526: uint16(165), - 1527: uint16(567), - 1528: uint16(166), - 1529: uint16(166), - 1530: uint16(572), - 1531: uint16(291), - 1532: uint16(355), - 1533: uint16(572), - 1534: uint16(17), - 1535: uint16(357), - 1536: uint16(572), - 1537: uint16(449), - 1538: uint16(77), - 1539: uint16(77), - 1540: uint16(1313), - 1541: uint16(55), - 1542: uint16(55), - 1543: uint16(1297), - 1544: uint16(73), - 1545: uint16(73), - 1546: uint16(572), - 1547: uint16(238), - 1548: uint16(470), - 1549: uint16(561), - 1550: uint16(449), - 1551: uint16(472), - 1552: uint16(364), - 1553: uint16(135), - 1554: uint16(135), - 1555: uint16(170), - 1556: uint16(74), - 1557: uint16(74), - 1558: uint16(142), - 1559: uint16(163), - 1560: uint16(163), - 1561: uint16(374), - 1562: uint16(561), - 1563: uint16(539), - 1564: uint16(572), - 1565: uint16(321), - 1566: uint16(572), - 1567: uint16(886), - 1568: uint16(540), - 1569: uint16(137), - 1570: uint16(137), - 1571: uint16(339), - 1572: uint16(1353), - 1573: uint16(422), - 1574: uint16(298), - 1575: uint16(237), - 1576: uint16(539), - 1577: uint16(572), - 1578: uint16(1031), - 1579: uint16(572), - 1580: uint16(340), - 1581: uint16(538), - 1582: uint16(101), - 1583: uint16(369), - 1584: uint16(110), - 1585: uint16(110), - 1586: uint16(162), - 1587: uint16(131), - 1588: uint16(131), - 1589: uint16(164), - 1590: uint16(164), - 1591: uint16(1031), - 1592: uint16(111), - 1593: uint16(368), - 1594: uint16(449), - 1595: uint16(573), - 1596: uint16(449), + 1342: uint16(1126), + 1343: uint16(1576), + 1344: uint16(449), + 1345: uint16(576), + 1346: uint16(462), + 1347: uint16(7), + 1348: uint16(1282), + 1349: uint16(418), + 1350: uint16(462), + 1351: uint16(350), + 1352: uint16(1435), + 1353: uint16(576), + 1354: uint16(518), + 1355: uint16(571), + 1356: uint16(544), + 1357: uint16(1127), + 1358: uint16(121), + 1359: uint16(568), + 1360: uint16(442), + 1361: uint16(4), + 1362: uint16(1188), + 1363: uint16(464), + 1364: uint16(533), + 1365: uint16(1180), + 1366: uint16(1223), + 1367: uint16(9), + 1368: uint16(67), + 1369: uint16(67), + 1370: uint16(487), + 1371: uint16(576), + 1372: uint16(1128), + 1373: uint16(303), + 1374: uint16(410), + 1375: uint16(571), + 1376: uint16(54), + 1377: uint16(54), + 1378: uint16(451), + 1379: uint16(576), + 1380: uint16(123), + 1381: uint16(944), + 1382: uint16(576), + 1383: uint16(417), + 1384: uint16(576), + 1385: uint16(333), + 1386: uint16(943), + 1387: uint16(1379), + 1388: uint16(576), + 1389: uint16(236), + 1390: uint16(565), + 1391: uint16(576), + 1392: uint16(1574), + 1393: uint16(564), + 1394: uint16(68), + 1395: uint16(68), + 1396: uint16(7), + 1397: uint16(576), + 1398: uint16(451), + 1399: uint16(362), + 1400: uint16(419), + 1401: uint16(182), + 1402: uint16(69), + 1403: uint16(69), + 1404: uint16(541), + 1405: uint16(70), + 1406: uint16(70), + 1407: uint16(71), + 1408: uint16(71), + 1409: uint16(540), + 1410: uint16(565), + 1411: uint16(72), + 1412: uint16(72), + 1413: uint16(484), + 1414: uint16(55), + 1415: uint16(55), + 1416: uint16(473), + 1417: uint16(1180), + 1418: uint16(296), + 1419: uint16(1040), + 1420: uint16(56), + 1421: uint16(56), + 1422: uint16(296), + 1423: uint16(493), + 1424: uint16(541), + 1425: uint16(119), + 1426: uint16(119), + 1427: uint16(410), + 1428: uint16(1573), + 1429: uint16(542), + 1430: uint16(569), + 1431: uint16(418), + 1432: uint16(7), + 1433: uint16(120), + 1434: uint16(1244), + 1435: uint16(451), + 1436: uint16(577), + 1437: uint16(451), + 1438: uint16(465), + 1439: uint16(1040), + 1440: uint16(1028), + 1441: uint16(576), + 1442: uint16(1557), + 1443: uint16(552), + 1444: uint16(476), + 1445: uint16(119), + 1446: uint16(119), + 1447: uint16(527), + 1448: uint16(259), + 1449: uint16(121), + 1450: uint16(568), + 1451: uint16(240), + 1452: uint16(4), + 1453: uint16(120), + 1454: uint16(576), + 1455: uint16(451), + 1456: uint16(577), + 1457: uint16(451), + 1458: uint16(576), + 1459: uint16(477), + 1460: uint16(1028), + 1461: uint16(576), + 1462: uint16(156), + 1463: uint16(576), + 1464: uint16(57), + 1465: uint16(57), + 1466: uint16(571), + 1467: uint16(576), + 1468: uint16(286), + 1469: uint16(229), + 1470: uint16(410), + 1471: uint16(336), + 1472: uint16(1028), + 1473: uint16(1028), + 1474: uint16(1030), + 1475: uint16(1031), + 1476: uint16(35), + 1477: uint16(59), + 1478: uint16(59), + 1479: uint16(219), + 1480: uint16(983), + 1481: uint16(60), + 1482: uint16(60), + 1483: uint16(220), + 1484: uint16(73), + 1485: uint16(73), + 1486: uint16(74), + 1487: uint16(74), + 1488: uint16(984), + 1489: uint16(451), + 1490: uint16(75), + 1491: uint16(75), + 1492: uint16(1028), + 1493: uint16(1028), + 1494: uint16(1030), + 1495: uint16(1031), + 1496: uint16(35), + 1497: uint16(96), + 1498: uint16(216), + 1499: uint16(291), + 1500: uint16(552), + 1501: uint16(565), + 1502: uint16(1188), + 1503: uint16(318), + 1504: uint16(395), + 1505: uint16(395), + 1506: uint16(394), + 1507: uint16(276), + 1508: uint16(392), + 1509: uint16(576), + 1510: uint16(485), + 1511: uint16(859), + 1512: uint16(474), + 1513: uint16(1311), + 1514: uint16(410), + 1515: uint16(541), + 1516: uint16(576), + 1517: uint16(417), + 1518: uint16(1530), + 1519: uint16(1144), + 1520: uint16(540), + 1521: uint16(399), + 1522: uint16(1188), + 1523: uint16(292), + 1524: uint16(237), + 1525: uint16(1153), + 1526: uint16(326), + 1527: uint16(38), + 1528: uint16(23), + 1529: uint16(576), + 1530: uint16(1040), + 1531: uint16(576), + 1532: uint16(20), + 1533: uint16(20), + 1534: uint16(325), + 1535: uint16(299), + 1536: uint16(119), + 1537: uint16(119), + 1538: uint16(164), + 1539: uint16(76), + 1540: uint16(76), + 1541: uint16(1529), + 1542: uint16(121), + 1543: uint16(568), + 1544: uint16(120), + 1545: uint16(4), + 1546: uint16(451), + 1547: uint16(577), + 1548: uint16(451), + 1549: uint16(203), + 1550: uint16(576), + 1551: uint16(1028), + 1552: uint16(141), + 1553: uint16(141), + 1554: uint16(142), + 1555: uint16(142), + 1556: uint16(576), + 1557: uint16(322), + 1558: uint16(39), + 1559: uint16(571), + 1560: uint16(341), + 1561: uint16(1021), + 1562: uint16(110), + 1563: uint16(264), + 1564: uint16(239), + 1565: uint16(901), + 1566: uint16(900), + 1567: uint16(423), + 1568: uint16(242), + 1569: uint16(908), + 1570: uint16(909), + 1571: uint16(370), + 1572: uint16(173), + 1573: uint16(77), + 1574: uint16(77), + 1575: uint16(43), + 1576: uint16(479), + 1577: uint16(1310), + 1578: uint16(264), + 1579: uint16(62), + 1580: uint16(62), + 1581: uint16(369), + 1582: uint16(451), + 1583: uint16(1028), + 1584: uint16(1028), + 1585: uint16(1030), + 1586: uint16(1031), + 1587: uint16(35), + 1588: uint16(1601), + 1589: uint16(1192), + 1590: uint16(453), + 1591: uint16(1092), + 1592: uint16(238), + 1593: uint16(291), + 1594: uint16(565), + 1595: uint16(163), + 1596: uint16(1309), 1597: uint16(110), - 1598: uint16(110), - 1599: uint16(1019), - 1600: uint16(157), - 1601: uint16(157), - 1602: uint16(141), - 1603: uint16(141), - 1604: uint16(572), - 1605: uint16(111), - 1606: uint16(572), - 1607: uint16(449), - 1608: uint16(573), - 1609: uint16(449), - 1610: uint16(412), - 1611: uint16(288), - 1612: uint16(1019), - 1613: uint16(572), - 1614: uint16(882), - 1615: uint16(318), - 1616: uint16(563), - 1617: uint16(572), - 1618: uint16(219), - 1619: uint16(572), - 1620: uint16(241), - 1621: uint16(1012), - 1622: uint16(477), - 1623: uint16(263), - 1624: uint16(263), - 1625: uint16(894), - 1626: uint16(893), - 1627: uint16(140), - 1628: uint16(140), - 1629: uint16(138), - 1630: uint16(138), - 1631: uint16(1019), - 1632: uint16(1019), - 1633: uint16(1021), - 1634: uint16(1022), - 1635: uint16(28), - 1636: uint16(139), - 1637: uint16(139), - 1638: uint16(525), - 1639: uint16(455), - 1640: uint16(76), - 1641: uint16(76), - 1642: uint16(78), - 1643: uint16(78), - 1644: uint16(1019), - 1645: uint16(1019), - 1646: uint16(1021), - 1647: uint16(1022), - 1648: uint16(28), - 1649: uint16(1181), - 1650: uint16(451), - 1651: uint16(572), - 1652: uint16(1083), - 1653: uint16(290), - 1654: uint16(112), - 1655: uint16(564), - 1656: uint16(1575), - 1657: uint16(4), - 1658: uint16(394), - 1659: uint16(394), - 1660: uint16(393), - 1661: uint16(275), - 1662: uint16(391), - 1663: uint16(572), - 1664: uint16(1023), - 1665: uint16(852), - 1666: uint16(572), - 1667: uint16(479), - 1668: uint16(345), - 1669: uint16(263), - 1670: uint16(101), - 1671: uint16(567), - 1672: uint16(882), - 1673: uint16(1376), - 1674: uint16(75), - 1675: uint16(75), - 1676: uint16(1421), - 1677: uint16(501), - 1678: uint16(236), - 1679: uint16(260), - 1680: uint16(325), - 1681: uint16(112), - 1682: uint16(564), - 1683: uint16(359), - 1684: uint16(4), - 1685: uint16(101), - 1686: uint16(43), - 1687: uint16(43), - 1688: uint16(324), - 1689: uint16(49), - 1690: uint16(49), - 1691: uint16(901), - 1692: uint16(902), - 1693: uint16(161), - 1694: uint16(449), - 1695: uint16(101), - 1696: uint16(977), - 1697: uint16(978), - 1698: uint16(567), - 1699: uint16(1079), - 1700: uint16(1349), - 1701: uint16(260), - 1702: uint16(965), - 1703: uint16(932), - 1704: uint16(263), - 1705: uint16(114), - 1706: uint16(561), - 1707: uint16(1095), - 1708: uint16(517), - 1709: uint16(1095), - 1710: uint16(1083), - 1711: uint16(1094), - 1712: uint16(865), - 1713: uint16(1094), - 1714: uint16(151), - 1715: uint16(933), - 1716: uint16(1144), - 1717: uint16(114), - 1718: uint16(238), - 1719: uint16(1361), - 1720: uint16(558), - 1721: uint16(449), - 1722: uint16(1023), - 1723: uint16(559), - 1724: uint16(1426), - 1725: uint16(1278), - 1726: uint16(170), - 1727: uint16(1269), - 1728: uint16(1257), - 1729: uint16(142), - 1730: uint16(1601), - 1731: uint16(1256), - 1732: uint16(1258), - 1733: uint16(561), - 1734: uint16(1594), - 1735: uint16(1031), - 1736: uint16(496), - 1737: uint16(278), - 1738: uint16(213), - 1739: uint16(1346), - 1740: uint16(310), - 1741: uint16(110), - 1742: uint16(110), - 1743: uint16(939), - 1744: uint16(311), - 1745: uint16(312), - 1746: uint16(237), - 1747: uint16(11), - 1748: uint16(234), - 1749: uint16(111), - 1750: uint16(221), - 1751: uint16(449), - 1752: uint16(573), - 1753: uint16(449), - 1754: uint16(293), - 1755: uint16(395), - 1756: uint16(1019), - 1757: uint16(1408), - 1758: uint16(337), - 1759: uint16(1403), - 1760: uint16(1396), - 1761: uint16(338), - 1762: uint16(1031), - 1763: uint16(299), - 1764: uint16(343), - 1765: uint16(1413), - 1766: uint16(1412), - 1767: uint16(481), - 1768: uint16(110), - 1769: uint16(110), - 1770: uint16(506), - 1771: uint16(402), - 1772: uint16(225), - 1773: uint16(1296), - 1774: uint16(206), - 1775: uint16(367), - 1776: uint16(111), - 1777: uint16(1358), - 1778: uint16(449), - 1779: uint16(573), - 1780: uint16(449), - 1781: uint16(412), - 1782: uint16(1359), - 1783: uint16(1019), - 1784: uint16(1489), - 1785: uint16(1488), - 1786: uint16(318), - 1787: uint16(563), - 1788: uint16(1019), - 1789: uint16(1019), - 1790: uint16(1021), - 1791: uint16(1022), - 1792: uint16(28), - 1793: uint16(562), - 1794: uint16(207), - 1795: uint16(220), - 1796: uint16(80), - 1797: uint16(564), - 1798: uint16(389), - 1799: uint16(4), - 1800: uint16(1597), - 1801: uint16(1357), - 1802: uint16(552), - 1803: uint16(1356), - 1804: uint16(1233), - 1805: uint16(181), - 1806: uint16(267), - 1807: uint16(232), - 1808: uint16(1536), - 1809: uint16(1534), - 1810: uint16(455), - 1811: uint16(1230), - 1812: uint16(420), - 1813: uint16(567), - 1814: uint16(82), - 1815: uint16(1019), - 1816: uint16(1019), - 1817: uint16(1021), - 1818: uint16(1022), - 1819: uint16(28), - 1820: uint16(86), - 1821: uint16(217), - 1822: uint16(85), - 1823: uint16(1494), - 1824: uint16(190), - 1825: uint16(175), - 1826: uint16(183), - 1827: uint16(465), - 1828: uint16(185), - 1829: uint16(466), - 1830: uint16(36), - 1831: uint16(1409), - 1832: uint16(186), - 1833: uint16(187), - 1834: uint16(188), - 1835: uint16(499), - 1836: uint16(449), - 1837: uint16(244), - 1838: uint16(37), - 1839: uint16(99), - 1840: uint16(400), - 1841: uint16(1415), - 1842: uint16(1414), - 1843: uint16(488), - 1844: uint16(1417), - 1845: uint16(194), - 1846: uint16(473), - 1847: uint16(403), - 1848: uint16(561), - 1849: uint16(1483), - 1850: uint16(248), - 1851: uint16(92), - 1852: uint16(1505), - 1853: uint16(494), - 1854: uint16(198), - 1855: uint16(279), - 1856: uint16(112), - 1857: uint16(564), - 1858: uint16(250), - 1859: uint16(4), - 1860: uint16(348), - 1861: uint16(497), - 1862: uint16(405), - 1863: uint16(352), - 1864: uint16(1259), - 1865: uint16(251), - 1866: uint16(252), - 1867: uint16(515), - 1868: uint16(1316), - 1869: uint16(434), - 1870: uint16(1315), - 1871: uint16(1314), - 1872: uint16(94), - 1873: uint16(567), - 1874: uint16(1307), - 1875: uint16(886), - 1876: uint16(1306), - 1877: uint16(1031), - 1878: uint16(226), - 1879: uint16(406), - 1880: uint16(1611), - 1881: uint16(1610), - 1882: uint16(438), - 1883: uint16(110), - 1884: uint16(110), - 1885: uint16(1580), - 1886: uint16(1286), - 1887: uint16(524), - 1888: uint16(439), - 1889: uint16(308), - 1890: uint16(266), - 1891: uint16(111), - 1892: uint16(1285), - 1893: uint16(449), - 1894: uint16(573), - 1895: uint16(449), - 1896: uint16(449), - 1897: uint16(309), - 1898: uint16(1019), - 1899: uint16(366), - 1900: uint16(1284), - 1901: uint16(1609), - 1902: uint16(265), - 1903: uint16(1566), - 1904: uint16(1565), - 1905: uint16(442), - 1906: uint16(372), - 1907: uint16(1381), - 1908: uint16(561), - 1909: uint16(129), - 1910: uint16(550), - 1911: uint16(1380), - 1912: uint16(10), - 1913: uint16(1470), - 1914: uint16(383), - 1915: uint16(106), - 1916: uint16(316), - 1917: uint16(551), - 1918: uint16(100), - 1919: uint16(35), - 1920: uint16(534), - 1921: uint16(575), - 1922: uint16(212), - 1923: uint16(1339), - 1924: uint16(381), - 1925: uint16(387), - 1926: uint16(1187), - 1927: uint16(1338), - 1928: uint16(274), - 1929: uint16(276), - 1930: uint16(1019), - 1931: uint16(1019), - 1932: uint16(1021), - 1933: uint16(1022), - 1934: uint16(28), - 1935: uint16(277), - 1936: uint16(413), - 1937: uint16(1031), - 1938: uint16(576), - 1939: uint16(1254), - 1940: uint16(388), - 1941: uint16(1521), - 1942: uint16(1249), - 1943: uint16(110), - 1944: uint16(110), - 1945: uint16(167), - 1946: uint16(1522), - 1947: uint16(168), - 1948: uint16(148), - 1949: uint16(1520), - 1950: uint16(1519), - 1951: uint16(111), - 1952: uint16(306), - 1953: uint16(449), - 1954: uint16(573), - 1955: uint16(449), - 1956: uint16(222), - 1957: uint16(223), - 1958: uint16(1019), - 1959: uint16(839), - 1960: uint16(169), - 1961: uint16(79), - 1962: uint16(450), - 1963: uint16(214), - 1964: uint16(414), - 1965: uint16(233), - 1966: uint16(320), - 1967: uint16(145), - 1968: uint16(1093), - 1969: uint16(1091), - 1970: uint16(328), - 1971: uint16(182), - 1972: uint16(171), - 1973: uint16(1212), - 1974: uint16(918), - 1975: uint16(184), - 1976: uint16(240), - 1977: uint16(336), - 1978: uint16(243), - 1979: uint16(1107), - 1980: uint16(189), - 1981: uint16(172), - 1982: uint16(173), - 1983: uint16(423), - 1984: uint16(425), - 1985: uint16(88), - 1986: uint16(180), - 1987: uint16(191), - 1988: uint16(89), - 1989: uint16(90), - 1990: uint16(1019), - 1991: uint16(1019), - 1992: uint16(1021), - 1993: uint16(1022), - 1994: uint16(28), - 1995: uint16(91), - 1996: uint16(174), - 1997: uint16(1110), - 1998: uint16(245), - 1999: uint16(1106), - 2000: uint16(246), - 2001: uint16(159), - 2002: uint16(18), - 2003: uint16(247), - 2004: uint16(347), - 2005: uint16(1099), - 2006: uint16(263), - 2007: uint16(195), - 2008: uint16(1227), - 2009: uint16(493), - 2010: uint16(249), - 2011: uint16(196), - 2012: uint16(38), - 2013: uint16(854), - 2014: uint16(498), - 2015: uint16(368), - 2016: uint16(253), - 2017: uint16(360), - 2018: uint16(897), - 2019: uint16(197), - 2020: uint16(502), - 2021: uint16(93), - 2022: uint16(19), - 2023: uint16(20), - 2024: uint16(507), - 2025: uint16(884), - 2026: uint16(363), - 2027: uint16(510), - 2028: uint16(95), - 2029: uint16(307), - 2030: uint16(160), - 2031: uint16(96), - 2032: uint16(518), - 2033: uint16(97), - 2034: uint16(1175), - 2035: uint16(1060), - 2036: uint16(1146), - 2037: uint16(40), - 2038: uint16(21), - 2039: uint16(227), - 2040: uint16(176), - 2041: uint16(1145), - 2042: uint16(282), - 2043: uint16(284), - 2044: uint16(969), - 2045: uint16(200), - 2046: uint16(963), - 2047: uint16(114), - 2048: uint16(262), - 2049: uint16(1165), - 2050: uint16(22), - 2051: uint16(23), - 2052: uint16(24), - 2053: uint16(1161), - 2054: uint16(1169), - 2055: uint16(25), - 2056: uint16(1163), - 2057: uint16(1150), - 2058: uint16(34), - 2059: uint16(26), - 2060: uint16(1168), - 2061: uint16(546), - 2062: uint16(27), - 2063: uint16(204), - 2064: uint16(101), - 2065: uint16(103), - 2066: uint16(104), - 2067: uint16(1074), - 2068: uint16(7), - 2069: uint16(1061), - 2070: uint16(1059), - 2071: uint16(1063), - 2072: uint16(1116), - 2073: uint16(1064), - 2074: uint16(1115), - 2075: uint16(268), - 2076: uint16(269), - 2077: uint16(29), - 2078: uint16(41), - 2079: uint16(270), - 2080: uint16(1024), - 2081: uint16(866), - 2082: uint16(113), - 2083: uint16(30), - 2084: uint16(568), - 2085: uint16(392), - 2086: uint16(1183), - 2087: uint16(144), - 2088: uint16(178), - 2089: uint16(1182), - 2090: uint16(271), - 2091: uint16(928), - 2092: uint16(1245), - 2093: uint16(1245), - 2094: uint16(1245), - 2095: uint16(1245), - 2096: uint16(1245), - 2097: uint16(1245), - 2098: uint16(1245), - 2099: uint16(1602), -} -var _yy_lookahead = [2285]uint16{ - 0: uint16(193), - 1: uint16(193), - 2: uint16(193), - 3: uint16(274), - 4: uint16(275), - 5: uint16(276), - 6: uint16(193), - 7: uint16(274), - 8: uint16(275), - 9: uint16(276), - 10: uint16(193), - 11: uint16(223), - 12: uint16(219), - 13: uint16(225), - 14: uint16(206), - 15: uint16(210), - 16: uint16(211), - 17: uint16(212), - 18: uint16(193), + 1598: uint16(395), + 1599: uint16(395), + 1600: uint16(394), + 1601: uint16(276), + 1602: uint16(392), + 1603: uint16(986), + 1604: uint16(987), + 1605: uint16(859), + 1606: uint16(481), + 1607: uint16(346), + 1608: uint16(264), + 1609: uint16(110), + 1610: uint16(1032), + 1611: uint16(489), + 1612: uint16(576), + 1613: uint16(1188), + 1614: uint16(503), + 1615: uint16(1088), + 1616: uint16(261), + 1617: uint16(261), + 1618: uint16(237), + 1619: uint16(576), + 1620: uint16(326), + 1621: uint16(121), + 1622: uint16(568), + 1623: uint16(1040), + 1624: uint16(4), + 1625: uint16(347), + 1626: uint16(1376), + 1627: uint16(413), + 1628: uint16(325), + 1629: uint16(119), + 1630: uint16(119), + 1631: uint16(948), + 1632: uint16(319), + 1633: uint16(567), + 1634: uint16(351), + 1635: uint16(78), + 1636: uint16(78), + 1637: uint16(120), + 1638: uint16(571), + 1639: uint16(451), + 1640: uint16(577), + 1641: uint16(451), + 1642: uint16(79), + 1643: uint16(79), + 1644: uint16(1028), + 1645: uint16(354), + 1646: uint16(356), + 1647: uint16(576), + 1648: uint16(360), + 1649: uint16(1092), + 1650: uint16(110), + 1651: uint16(576), + 1652: uint16(974), + 1653: uint16(942), + 1654: uint16(264), + 1655: uint16(123), + 1656: uint16(457), + 1657: uint16(358), + 1658: uint16(239), + 1659: uint16(576), + 1660: uint16(519), + 1661: uint16(451), + 1662: uint16(939), + 1663: uint16(1104), + 1664: uint16(123), + 1665: uint16(1104), + 1666: uint16(173), + 1667: uint16(576), + 1668: uint16(1032), + 1669: uint16(43), + 1670: uint16(63), + 1671: uint16(63), + 1672: uint16(1324), + 1673: uint16(565), + 1674: uint16(168), + 1675: uint16(168), + 1676: uint16(1028), + 1677: uint16(1028), + 1678: uint16(1030), + 1679: uint16(1031), + 1680: uint16(35), + 1681: uint16(576), + 1682: uint16(169), + 1683: uint16(169), + 1684: uint16(1308), + 1685: uint16(872), + 1686: uint16(238), + 1687: uint16(157), + 1688: uint16(1589), + 1689: uint16(576), + 1690: uint16(86), + 1691: uint16(86), + 1692: uint16(365), + 1693: uint16(89), + 1694: uint16(568), + 1695: uint16(375), + 1696: uint16(4), + 1697: uint16(1103), + 1698: uint16(941), + 1699: uint16(1103), + 1700: uint16(123), + 1701: uint16(576), + 1702: uint16(1040), + 1703: uint16(1389), + 1704: uint16(64), + 1705: uint16(64), + 1706: uint16(1188), + 1707: uint16(1434), + 1708: uint16(119), + 1709: uint16(119), + 1710: uint16(571), + 1711: uint16(576), + 1712: uint16(82), + 1713: uint16(82), + 1714: uint16(563), + 1715: uint16(576), + 1716: uint16(120), + 1717: uint16(165), + 1718: uint16(451), + 1719: uint16(577), + 1720: uint16(451), + 1721: uint16(413), + 1722: uint16(1362), + 1723: uint16(1028), + 1724: uint16(144), + 1725: uint16(144), + 1726: uint16(319), + 1727: uint16(567), + 1728: uint16(576), + 1729: uint16(1374), + 1730: uint16(562), + 1731: uint16(498), + 1732: uint16(279), + 1733: uint16(451), + 1734: uint16(83), + 1735: uint16(83), + 1736: uint16(1439), + 1737: uint16(576), + 1738: uint16(166), + 1739: uint16(166), + 1740: uint16(576), + 1741: uint16(1289), + 1742: uint16(554), + 1743: uint16(576), + 1744: uint16(1280), + 1745: uint16(565), + 1746: uint16(576), + 1747: uint16(12), + 1748: uint16(576), + 1749: uint16(1268), + 1750: uint16(457), + 1751: uint16(146), + 1752: uint16(146), + 1753: uint16(1267), + 1754: uint16(576), + 1755: uint16(1028), + 1756: uint16(1028), + 1757: uint16(1030), + 1758: uint16(1031), + 1759: uint16(35), + 1760: uint16(140), + 1761: uint16(140), + 1762: uint16(1269), + 1763: uint16(167), + 1764: uint16(167), + 1765: uint16(1609), + 1766: uint16(160), + 1767: uint16(160), + 1768: uint16(1359), + 1769: uint16(150), + 1770: uint16(150), + 1771: uint16(149), + 1772: uint16(149), + 1773: uint16(311), + 1774: uint16(1040), + 1775: uint16(576), + 1776: uint16(312), + 1777: uint16(147), + 1778: uint16(147), + 1779: uint16(313), + 1780: uint16(119), + 1781: uint16(119), + 1782: uint16(222), + 1783: uint16(235), + 1784: uint16(576), + 1785: uint16(1188), + 1786: uint16(396), + 1787: uint16(576), + 1788: uint16(120), + 1789: uint16(576), + 1790: uint16(451), + 1791: uint16(577), + 1792: uint16(451), + 1793: uint16(1192), + 1794: uint16(453), + 1795: uint16(1028), + 1796: uint16(508), + 1797: uint16(291), + 1798: uint16(148), + 1799: uint16(148), + 1800: uint16(1421), + 1801: uint16(1612), + 1802: uint16(395), + 1803: uint16(395), + 1804: uint16(394), + 1805: uint16(276), + 1806: uint16(392), + 1807: uint16(85), + 1808: uint16(85), + 1809: uint16(859), + 1810: uint16(87), + 1811: uint16(87), + 1812: uint16(84), + 1813: uint16(84), + 1814: uint16(553), + 1815: uint16(576), + 1816: uint16(294), + 1817: uint16(576), + 1818: uint16(1426), + 1819: uint16(338), + 1820: uint16(339), + 1821: uint16(1425), + 1822: uint16(237), + 1823: uint16(300), + 1824: uint16(326), + 1825: uint16(1416), + 1826: uint16(1409), + 1827: uint16(1028), + 1828: uint16(1028), + 1829: uint16(1030), + 1830: uint16(1031), + 1831: uint16(35), + 1832: uint16(325), + 1833: uint16(344), + 1834: uint16(403), + 1835: uint16(483), + 1836: uint16(226), + 1837: uint16(1307), + 1838: uint16(52), + 1839: uint16(52), + 1840: uint16(58), + 1841: uint16(58), + 1842: uint16(368), + 1843: uint16(1371), + 1844: uint16(1502), + 1845: uint16(566), + 1846: uint16(1501), + 1847: uint16(121), + 1848: uint16(568), + 1849: uint16(221), + 1850: uint16(4), + 1851: uint16(208), + 1852: uint16(268), + 1853: uint16(209), + 1854: uint16(390), + 1855: uint16(1244), + 1856: uint16(1549), + 1857: uint16(1188), + 1858: uint16(1372), + 1859: uint16(1370), + 1860: uint16(1369), + 1861: uint16(1547), + 1862: uint16(239), + 1863: uint16(184), + 1864: uint16(571), + 1865: uint16(233), + 1866: uint16(421), + 1867: uint16(1241), + 1868: uint16(95), + 1869: uint16(218), + 1870: uint16(173), + 1871: uint16(1507), + 1872: uint16(193), + 1873: uint16(43), + 1874: uint16(91), + 1875: uint16(94), + 1876: uint16(178), + 1877: uint16(186), + 1878: uint16(467), + 1879: uint16(188), + 1880: uint16(468), + 1881: uint16(1422), + 1882: uint16(13), + 1883: uint16(189), + 1884: uint16(190), + 1885: uint16(191), + 1886: uint16(501), + 1887: uint16(451), + 1888: uint16(245), + 1889: uint16(108), + 1890: uint16(238), + 1891: uint16(401), + 1892: uint16(1428), + 1893: uint16(1427), + 1894: uint16(1430), + 1895: uint16(475), + 1896: uint16(404), + 1897: uint16(1496), + 1898: uint16(197), + 1899: uint16(565), + 1900: uint16(14), + 1901: uint16(490), + 1902: uint16(249), + 1903: uint16(101), + 1904: uint16(1518), + 1905: uint16(496), + 1906: uint16(349), + 1907: uint16(280), + 1908: uint16(251), + 1909: uint16(201), + 1910: uint16(353), + 1911: uint16(499), + 1912: uint16(252), + 1913: uint16(406), + 1914: uint16(1270), + 1915: uint16(253), + 1916: uint16(517), + 1917: uint16(1327), + 1918: uint16(1326), + 1919: uint16(435), + 1920: uint16(1325), + 1921: uint16(1318), + 1922: uint16(103), + 1923: uint16(893), + 1924: uint16(1296), + 1925: uint16(413), + 1926: uint16(227), + 1927: uint16(407), + 1928: uint16(1040), + 1929: uint16(1626), + 1930: uint16(319), + 1931: uint16(567), + 1932: uint16(1625), + 1933: uint16(1297), + 1934: uint16(119), + 1935: uint16(119), + 1936: uint16(439), + 1937: uint16(367), + 1938: uint16(1317), + 1939: uint16(1295), + 1940: uint16(1624), + 1941: uint16(526), + 1942: uint16(120), + 1943: uint16(440), + 1944: uint16(451), + 1945: uint16(577), + 1946: uint16(451), + 1947: uint16(1594), + 1948: uint16(309), + 1949: uint16(1028), + 1950: uint16(310), + 1951: uint16(373), + 1952: uint16(266), + 1953: uint16(267), + 1954: uint16(457), + 1955: uint16(1580), + 1956: uint16(1579), + 1957: uint16(443), + 1958: uint16(138), + 1959: uint16(1394), + 1960: uint16(552), + 1961: uint16(1393), + 1962: uint16(11), + 1963: uint16(1483), + 1964: uint16(384), + 1965: uint16(115), + 1966: uint16(317), + 1967: uint16(1350), + 1968: uint16(109), + 1969: uint16(536), + 1970: uint16(42), + 1971: uint16(579), + 1972: uint16(382), + 1973: uint16(214), + 1974: uint16(1349), + 1975: uint16(388), + 1976: uint16(1198), + 1977: uint16(389), + 1978: uint16(275), + 1979: uint16(277), + 1980: uint16(278), + 1981: uint16(1028), + 1982: uint16(1028), + 1983: uint16(1030), + 1984: uint16(1031), + 1985: uint16(35), + 1986: uint16(580), + 1987: uint16(1265), + 1988: uint16(414), + 1989: uint16(1260), + 1990: uint16(170), + 1991: uint16(415), + 1992: uint16(183), + 1993: uint16(1534), + 1994: uint16(1535), + 1995: uint16(1533), + 1996: uint16(171), + 1997: uint16(154), + 1998: uint16(307), + 1999: uint16(1532), + 2000: uint16(846), + 2001: uint16(223), + 2002: uint16(224), + 2003: uint16(88), + 2004: uint16(452), + 2005: uint16(215), + 2006: uint16(172), + 2007: uint16(321), + 2008: uint16(234), + 2009: uint16(1102), + 2010: uint16(152), + 2011: uint16(1188), + 2012: uint16(1100), + 2013: uint16(329), + 2014: uint16(185), + 2015: uint16(174), + 2016: uint16(1223), + 2017: uint16(925), + 2018: uint16(187), + 2019: uint16(241), + 2020: uint16(337), + 2021: uint16(244), + 2022: uint16(1116), + 2023: uint16(192), + 2024: uint16(175), + 2025: uint16(176), + 2026: uint16(424), + 2027: uint16(426), + 2028: uint16(97), + 2029: uint16(194), + 2030: uint16(98), + 2031: uint16(99), + 2032: uint16(100), + 2033: uint16(177), + 2034: uint16(1119), + 2035: uint16(1115), + 2036: uint16(246), + 2037: uint16(247), + 2038: uint16(161), + 2039: uint16(24), + 2040: uint16(248), + 2041: uint16(348), + 2042: uint16(1238), + 2043: uint16(264), + 2044: uint16(1108), + 2045: uint16(250), + 2046: uint16(495), + 2047: uint16(199), + 2048: uint16(198), + 2049: uint16(15), + 2050: uint16(861), + 2051: uint16(500), + 2052: uint16(369), + 2053: uint16(254), + 2054: uint16(504), + 2055: uint16(509), + 2056: uint16(512), + 2057: uint16(200), + 2058: uint16(102), + 2059: uint16(25), + 2060: uint16(179), + 2061: uint16(361), + 2062: uint16(26), + 2063: uint16(364), + 2064: uint16(104), + 2065: uint16(891), + 2066: uint16(308), + 2067: uint16(162), + 2068: uint16(105), + 2069: uint16(904), + 2070: uint16(520), + 2071: uint16(106), + 2072: uint16(1185), + 2073: uint16(1069), + 2074: uint16(1155), + 2075: uint16(17), + 2076: uint16(228), + 2077: uint16(27), + 2078: uint16(1154), + 2079: uint16(283), + 2080: uint16(285), + 2081: uint16(263), + 2082: uint16(978), + 2083: uint16(202), + 2084: uint16(972), + 2085: uint16(123), + 2086: uint16(28), + 2087: uint16(1175), + 2088: uint16(29), + 2089: uint16(30), + 2090: uint16(1179), + 2091: uint16(1171), + 2092: uint16(31), + 2093: uint16(1173), + 2094: uint16(1160), + 2095: uint16(41), + 2096: uint16(32), + 2097: uint16(206), + 2098: uint16(548), + 2099: uint16(33), + 2100: uint16(110), + 2101: uint16(1178), + 2102: uint16(1083), + 2103: uint16(8), + 2104: uint16(112), + 2105: uint16(1070), + 2106: uint16(113), + 2107: uint16(1068), + 2108: uint16(1072), + 2109: uint16(34), + 2110: uint16(1073), + 2111: uint16(560), + 2112: uint16(1125), + 2113: uint16(269), + 2114: uint16(1124), + 2115: uint16(270), + 2116: uint16(36), + 2117: uint16(18), + 2118: uint16(1194), + 2119: uint16(1033), + 2120: uint16(873), + 2121: uint16(151), + 2122: uint16(122), + 2123: uint16(37), + 2124: uint16(393), + 2125: uint16(271), + 2126: uint16(272), + 2127: uint16(572), + 2128: uint16(181), + 2129: uint16(1193), + 2130: uint16(1256), + 2131: uint16(1256), + 2132: uint16(1256), + 2133: uint16(935), + 2134: uint16(1256), + 2135: uint16(1256), + 2136: uint16(1256), + 2137: uint16(1256), + 2138: uint16(1256), + 2139: uint16(1256), + 2140: uint16(1256), + 2141: uint16(1617), +} +var _yy_lookahead = [2328]uint16{ + 0: uint16(194), + 1: uint16(276), + 2: uint16(277), + 3: uint16(278), + 4: uint16(216), + 5: uint16(194), + 6: uint16(194), + 7: uint16(217), + 8: uint16(194), + 9: uint16(194), + 10: uint16(194), + 11: uint16(194), + 12: uint16(224), + 13: uint16(194), + 14: uint16(194), + 15: uint16(276), + 16: uint16(277), + 17: uint16(278), + 18: uint16(204), 19: uint16(19), - 20: uint16(219), - 21: uint16(233), - 22: uint16(216), - 23: uint16(216), - 24: uint16(217), - 25: uint16(216), - 26: uint16(217), - 27: uint16(193), - 28: uint16(295), - 29: uint16(216), - 30: uint16(217), + 20: uint16(206), + 21: uint16(202), + 22: uint16(297), + 23: uint16(217), + 24: uint16(218), + 25: uint16(205), + 26: uint16(207), + 27: uint16(217), + 28: uint16(205), + 29: uint16(217), + 30: uint16(218), 31: uint16(31), - 32: uint16(193), - 33: uint16(216), + 32: uint16(217), + 33: uint16(218), 34: uint16(217), - 35: uint16(193), - 36: uint16(228), - 37: uint16(213), - 38: uint16(230), + 35: uint16(218), + 36: uint16(29), + 37: uint16(217), + 38: uint16(218), 39: uint16(39), - 40: uint16(206), - 41: uint16(216), - 42: uint16(217), + 40: uint16(33), + 41: uint16(217), + 42: uint16(220), 43: uint16(43), 44: uint16(44), 45: uint16(45), @@ -154474,31 +155978,31 @@ var _yy_lookahead = [2285]uint16{ 55: uint16(55), 56: uint16(56), 57: uint16(57), - 58: uint16(193), + 58: uint16(312), 59: uint16(19), - 60: uint16(185), - 61: uint16(186), - 62: uint16(187), - 63: uint16(188), - 64: uint16(189), - 65: uint16(190), - 66: uint16(253), - 67: uint16(274), - 68: uint16(275), - 69: uint16(276), - 70: uint16(195), - 71: uint16(193), - 72: uint16(197), - 73: uint16(193), - 74: uint16(261), - 75: uint16(274), - 76: uint16(275), - 77: uint16(276), - 78: uint16(253), - 79: uint16(204), - 80: uint16(238), - 81: uint16(204), - 82: uint16(81), + 60: uint16(240), + 61: uint16(241), + 62: uint16(316), + 63: uint16(240), + 64: uint16(241), + 65: uint16(194), + 66: uint16(46), + 67: uint16(47), + 68: uint16(48), + 69: uint16(49), + 70: uint16(22), + 71: uint16(254), + 72: uint16(65), + 73: uint16(253), + 74: uint16(254), + 75: uint16(255), + 76: uint16(253), + 77: uint16(194), + 78: uint16(255), + 79: uint16(194), + 80: uint16(263), + 81: uint16(258), + 82: uint16(259), 83: uint16(43), 84: uint16(44), 85: uint16(45), @@ -154514,10 +156018,10 @@ var _yy_lookahead = [2285]uint16{ 95: uint16(55), 96: uint16(56), 97: uint16(57), - 98: uint16(274), - 99: uint16(275), - 100: uint16(276), - 101: uint16(262), + 98: uint16(276), + 99: uint16(277), + 100: uint16(278), + 101: uint16(285), 102: uint16(102), 103: uint16(103), 104: uint16(104), @@ -154530,34 +156034,34 @@ var _yy_lookahead = [2285]uint16{ 111: uint16(111), 112: uint16(112), 113: uint16(113), - 114: uint16(239), - 115: uint16(240), - 116: uint16(239), - 117: uint16(240), - 118: uint16(210), - 119: uint16(211), - 120: uint16(212), - 121: uint16(314), - 122: uint16(315), - 123: uint16(314), - 124: uint16(59), - 125: uint16(316), + 114: uint16(59), + 115: uint16(186), + 116: uint16(187), + 117: uint16(188), + 118: uint16(189), + 119: uint16(190), + 120: uint16(191), + 121: uint16(310), + 122: uint16(239), + 123: uint16(317), + 124: uint16(318), + 125: uint16(196), 126: uint16(86), - 127: uint16(252), + 127: uint16(198), 128: uint16(88), - 129: uint16(252), + 129: uint16(317), 130: uint16(19), - 131: uint16(314), - 132: uint16(315), - 133: uint16(256), - 134: uint16(257), - 135: uint16(113), + 131: uint16(319), + 132: uint16(317), + 133: uint16(318), + 134: uint16(205), + 135: uint16(264), 136: uint16(25), - 137: uint16(72), - 138: uint16(296), - 139: uint16(138), - 140: uint16(139), - 141: uint16(266), + 137: uint16(211), + 138: uint16(212), + 139: uint16(213), + 140: uint16(205), + 141: uint16(121), 142: uint16(102), 143: uint16(103), 144: uint16(104), @@ -154585,50 +156089,50 @@ var _yy_lookahead = [2285]uint16{ 166: uint16(55), 167: uint16(56), 168: uint16(57), - 169: uint16(81), - 170: uint16(292), - 171: uint16(59), - 172: uint16(292), - 173: uint16(298), - 174: uint16(108), - 175: uint16(109), - 176: uint16(110), - 177: uint16(111), - 178: uint16(112), - 179: uint16(113), + 169: uint16(240), + 170: uint16(241), + 171: uint16(116), + 172: uint16(117), + 173: uint16(118), + 174: uint16(119), + 175: uint16(240), + 176: uint16(241), + 177: uint16(122), + 178: uint16(123), + 179: uint16(124), 180: uint16(69), - 181: uint16(116), - 182: uint16(117), - 183: uint16(118), - 184: uint16(72), + 181: uint16(298), + 182: uint16(253), + 183: uint16(194), + 184: uint16(255), 185: uint16(106), 186: uint16(107), - 187: uint16(193), - 188: uint16(111), - 189: uint16(112), - 190: uint16(113), + 187: uint16(132), + 188: uint16(253), + 189: uint16(141), + 190: uint16(255), 191: uint16(54), 192: uint16(55), 193: uint16(56), 194: uint16(57), 195: uint16(58), - 196: uint16(102), - 197: uint16(103), - 198: uint16(104), - 199: uint16(105), - 200: uint16(106), - 201: uint16(107), - 202: uint16(108), - 203: uint16(109), - 204: uint16(110), - 205: uint16(111), - 206: uint16(112), - 207: uint16(113), - 208: uint16(120), - 209: uint16(25), - 210: uint16(216), - 211: uint16(217), - 212: uint16(145), + 196: uint16(207), + 197: uint16(268), + 198: uint16(102), + 199: uint16(103), + 200: uint16(104), + 201: uint16(105), + 202: uint16(106), + 203: uint16(107), + 204: uint16(108), + 205: uint16(109), + 206: uint16(110), + 207: uint16(111), + 208: uint16(112), + 209: uint16(113), + 210: uint16(214), + 211: uint16(128), + 212: uint16(129), 213: uint16(102), 214: uint16(103), 215: uint16(104), @@ -154641,13 +156145,13 @@ var _yy_lookahead = [2285]uint16{ 222: uint16(111), 223: uint16(112), 224: uint16(113), - 225: uint16(231), - 226: uint16(138), - 227: uint16(139), - 228: uint16(116), - 229: uint16(117), - 230: uint16(118), - 231: uint16(164), + 225: uint16(134), + 226: uint16(25), + 227: uint16(136), + 228: uint16(137), + 229: uint16(300), + 230: uint16(165), + 231: uint16(166), 232: uint16(153), 233: uint16(19), 234: uint16(155), @@ -154667,12 +156171,12 @@ var _yy_lookahead = [2285]uint16{ 248: uint16(111), 249: uint16(112), 250: uint16(113), - 251: uint16(128), - 252: uint16(129), - 253: uint16(46), - 254: uint16(47), - 255: uint16(48), - 256: uint16(49), + 251: uint16(108), + 252: uint16(109), + 253: uint16(110), + 254: uint16(111), + 255: uint16(112), + 256: uint16(113), 257: uint16(43), 258: uint16(44), 259: uint16(45), @@ -154688,15 +156192,15 @@ var _yy_lookahead = [2285]uint16{ 269: uint16(55), 270: uint16(56), 271: uint16(57), - 272: uint16(216), - 273: uint16(193), - 274: uint16(25), - 275: uint16(59), - 276: uint16(193), + 272: uint16(276), + 273: uint16(277), + 274: uint16(278), + 275: uint16(113), + 276: uint16(194), 277: uint16(19), - 278: uint16(165), - 279: uint16(166), - 280: uint16(193), + 278: uint16(22), + 279: uint16(23), + 280: uint16(194), 281: uint16(67), 282: uint16(24), 283: uint16(102), @@ -154711,12 +156215,12 @@ var _yy_lookahead = [2285]uint16{ 292: uint16(111), 293: uint16(112), 294: uint16(113), - 295: uint16(73), - 296: uint16(216), - 297: uint16(217), - 298: uint16(59), - 299: uint16(216), - 300: uint16(217), + 295: uint16(220), + 296: uint16(250), + 297: uint16(59), + 298: uint16(252), + 299: uint16(217), + 300: uint16(218), 301: uint16(43), 302: uint16(44), 303: uint16(45), @@ -154744,38 +156248,38 @@ var _yy_lookahead = [2285]uint16{ 325: uint16(111), 326: uint16(112), 327: uint16(113), - 328: uint16(121), - 329: uint16(145), - 330: uint16(59), - 331: uint16(193), - 332: uint16(116), - 333: uint16(117), - 334: uint16(118), - 335: uint16(119), - 336: uint16(273), - 337: uint16(204), - 338: uint16(122), - 339: uint16(123), - 340: uint16(124), + 328: uint16(106), + 329: uint16(107), + 330: uint16(108), + 331: uint16(109), + 332: uint16(110), + 333: uint16(111), + 334: uint16(112), + 335: uint16(113), + 336: uint16(254), + 337: uint16(59), + 338: uint16(205), + 339: uint16(138), + 340: uint16(139), 341: uint16(19), 342: uint16(20), - 343: uint16(134), + 343: uint16(194), 344: uint16(22), - 345: uint16(136), - 346: uint16(137), - 347: uint16(19), - 348: uint16(132), - 349: uint16(127), - 350: uint16(128), - 351: uint16(129), - 352: uint16(24), - 353: uint16(22), - 354: uint16(23), - 355: uint16(116), - 356: uint16(117), - 357: uint16(118), + 345: uint16(263), + 346: uint16(22), + 347: uint16(23), + 348: uint16(231), + 349: uint16(25), + 350: uint16(72), + 351: uint16(276), + 352: uint16(277), + 353: uint16(278), + 354: uint16(116), + 355: uint16(117), + 356: uint16(118), + 357: uint16(101), 358: uint16(36), - 359: uint16(193), + 359: uint16(76), 360: uint16(102), 361: uint16(103), 362: uint16(104), @@ -154788,37 +156292,37 @@ var _yy_lookahead = [2285]uint16{ 369: uint16(111), 370: uint16(112), 371: uint16(113), - 372: uint16(239), + 372: uint16(89), 373: uint16(240), - 374: uint16(311), - 375: uint16(312), - 376: uint16(215), - 377: uint16(106), - 378: uint16(107), - 379: uint16(241), + 374: uint16(241), + 375: uint16(92), + 376: uint16(73), + 377: uint16(194), + 378: uint16(194), + 379: uint16(73), 380: uint16(19), 381: uint16(59), - 382: uint16(216), - 383: uint16(217), - 384: uint16(223), - 385: uint16(252), - 386: uint16(115), - 387: uint16(116), - 388: uint16(117), - 389: uint16(118), - 390: uint16(151), - 391: uint16(120), - 392: uint16(26), + 382: uint16(188), + 383: uint16(189), + 384: uint16(190), + 385: uint16(191), + 386: uint16(253), + 387: uint16(81), + 388: uint16(255), + 389: uint16(151), + 390: uint16(196), + 391: uint16(25), + 392: uint16(198), 393: uint16(71), - 394: uint16(193), - 395: uint16(308), - 396: uint16(309), - 397: uint16(193), - 398: uint16(149), - 399: uint16(128), - 400: uint16(313), - 401: uint16(216), - 402: uint16(269), + 394: uint16(116), + 395: uint16(117), + 396: uint16(118), + 397: uint16(311), + 398: uint16(312), + 399: uint16(205), + 400: uint16(217), + 401: uint16(218), + 402: uint16(316), 403: uint16(81), 404: uint16(43), 405: uint16(44), @@ -154835,50 +156339,50 @@ var _yy_lookahead = [2285]uint16{ 416: uint16(55), 417: uint16(56), 418: uint16(57), - 419: uint16(253), - 420: uint16(216), - 421: uint16(217), + 419: uint16(270), + 420: uint16(22), + 421: uint16(23), 422: uint16(100), - 423: uint16(95), - 424: uint16(153), - 425: uint16(59), - 426: uint16(155), - 427: uint16(261), + 423: uint16(25), + 424: uint16(59), + 425: uint16(101), + 426: uint16(138), + 427: uint16(139), 428: uint16(106), 429: uint16(107), - 430: uint16(25), - 431: uint16(193), - 432: uint16(101), - 433: uint16(193), - 434: uint16(193), - 435: uint16(231), + 430: uint16(127), + 431: uint16(128), + 432: uint16(129), + 433: uint16(127), + 434: uint16(240), + 435: uint16(241), 436: uint16(114), - 437: uint16(25), + 437: uint16(254), 438: uint16(116), 439: uint16(117), 440: uint16(118), - 441: uint16(113), - 442: uint16(304), + 441: uint16(76), + 442: uint16(76), 443: uint16(121), - 444: uint16(193), - 445: uint16(204), - 446: uint16(59), - 447: uint16(119), - 448: uint16(120), - 449: uint16(121), - 450: uint16(122), - 451: uint16(123), - 452: uint16(124), - 453: uint16(125), - 454: uint16(216), - 455: uint16(217), - 456: uint16(193), - 457: uint16(216), - 458: uint16(217), - 459: uint16(131), + 444: uint16(138), + 445: uint16(139), + 446: uint16(263), + 447: uint16(253), + 448: uint16(264), + 449: uint16(255), + 450: uint16(205), + 451: uint16(275), + 452: uint16(87), + 453: uint16(19), + 454: uint16(89), + 455: uint16(89), + 456: uint16(194), + 457: uint16(92), + 458: uint16(92), + 459: uint16(199), 460: uint16(138), 461: uint16(139), - 462: uint16(230), + 462: uint16(268), 463: uint16(102), 464: uint16(103), 465: uint16(104), @@ -154896,37 +156400,37 @@ var _yy_lookahead = [2285]uint16{ 477: uint16(155), 478: uint16(156), 479: uint16(157), - 480: uint16(239), - 481: uint16(240), - 482: uint16(116), - 483: uint16(117), - 484: uint16(118), - 485: uint16(76), - 486: uint16(193), - 487: uint16(23), + 480: uint16(81), + 481: uint16(116), + 482: uint16(117), + 483: uint16(118), + 484: uint16(129), + 485: uint16(240), + 486: uint16(241), + 487: uint16(224), 488: uint16(19), - 489: uint16(25), - 490: uint16(22), - 491: uint16(253), + 489: uint16(226), + 490: uint16(314), + 491: uint16(315), 492: uint16(23), - 493: uint16(252), - 494: uint16(253), - 495: uint16(108), - 496: uint16(87), - 497: uint16(204), - 498: uint16(89), - 499: uint16(261), - 500: uint16(198), - 501: uint16(92), - 502: uint16(261), - 503: uint16(116), - 504: uint16(117), - 505: uint16(118), - 506: uint16(193), - 507: uint16(306), - 508: uint16(307), - 509: uint16(216), - 510: uint16(217), + 493: uint16(25), + 494: uint16(300), + 495: uint16(59), + 496: uint16(22), + 497: uint16(234), + 498: uint16(253), + 499: uint16(101), + 500: uint16(255), + 501: uint16(236), + 502: uint16(237), + 503: uint16(26), + 504: uint16(194), + 505: uint16(183), + 506: uint16(194), + 507: uint16(152), + 508: uint16(72), + 509: uint16(22), + 510: uint16(145), 511: uint16(150), 512: uint16(43), 513: uint16(44), @@ -154943,34 +156447,34 @@ var _yy_lookahead = [2285]uint16{ 524: uint16(55), 525: uint16(56), 526: uint16(57), - 527: uint16(59), - 528: uint16(193), - 529: uint16(216), - 530: uint16(217), + 527: uint16(217), + 528: uint16(218), + 529: uint16(217), + 530: uint16(218), 531: uint16(19), - 532: uint16(239), - 533: uint16(240), - 534: uint16(283), + 532: uint16(189), + 533: uint16(59), + 534: uint16(191), 535: uint16(23), - 536: uint16(106), - 537: uint16(107), - 538: uint16(108), - 539: uint16(109), - 540: uint16(110), - 541: uint16(111), - 542: uint16(112), - 543: uint16(113), - 544: uint16(73), - 545: uint16(252), - 546: uint16(253), - 547: uint16(142), - 548: uint16(308), - 549: uint16(309), - 550: uint16(138), - 551: uint16(139), - 552: uint16(81), - 553: uint16(313), - 554: uint16(145), + 536: uint16(59), + 537: uint16(138), + 538: uint16(139), + 539: uint16(196), + 540: uint16(135), + 541: uint16(198), + 542: uint16(232), + 543: uint16(283), + 544: uint16(232), + 545: uint16(140), + 546: uint16(59), + 547: uint16(287), + 548: uint16(205), + 549: uint16(275), + 550: uint16(116), + 551: uint16(205), + 552: uint16(116), + 553: uint16(117), + 554: uint16(118), 555: uint16(43), 556: uint16(44), 557: uint16(45), @@ -154986,7 +156490,7 @@ var _yy_lookahead = [2285]uint16{ 567: uint16(55), 568: uint16(56), 569: uint16(57), - 570: uint16(307), + 570: uint16(194), 571: uint16(102), 572: uint16(103), 573: uint16(104), @@ -154999,37 +156503,37 @@ var _yy_lookahead = [2285]uint16{ 580: uint16(111), 581: uint16(112), 582: uint16(113), - 583: uint16(281), - 584: uint16(116), - 585: uint16(117), - 586: uint16(118), - 587: uint16(285), - 588: uint16(23), - 589: uint16(193), - 590: uint16(25), - 591: uint16(119), - 592: uint16(59), - 593: uint16(193), - 594: uint16(122), - 595: uint16(123), - 596: uint16(124), - 597: uint16(59), - 598: uint16(127), - 599: uint16(203), + 583: uint16(240), + 584: uint16(241), + 585: uint16(194), + 586: uint16(240), + 587: uint16(241), + 588: uint16(314), + 589: uint16(315), + 590: uint16(116), + 591: uint16(117), + 592: uint16(118), + 593: uint16(116), + 594: uint16(117), + 595: uint16(118), + 596: uint16(253), + 597: uint16(194), + 598: uint16(255), + 599: uint16(253), 600: uint16(59), - 601: uint16(205), + 601: uint16(255), 602: uint16(19), - 603: uint16(268), - 604: uint16(132), - 605: uint16(25), + 603: uint16(116), + 604: uint16(117), + 605: uint16(118), 606: uint16(23), 607: uint16(22), - 608: uint16(193), - 609: uint16(138), - 610: uint16(139), - 611: uint16(249), - 612: uint16(204), - 613: uint16(251), + 608: uint16(217), + 609: uint16(218), + 610: uint16(142), + 611: uint16(268), + 612: uint16(205), + 613: uint16(275), 614: uint16(102), 615: uint16(103), 616: uint16(104), @@ -155058,29 +156562,29 @@ var _yy_lookahead = [2285]uint16{ 639: uint16(56), 640: uint16(57), 641: uint16(19), - 642: uint16(22), - 643: uint16(23), + 642: uint16(194), + 643: uint16(300), 644: uint16(59), 645: uint16(23), - 646: uint16(25), - 647: uint16(239), - 648: uint16(240), - 649: uint16(116), - 650: uint16(117), - 651: uint16(118), - 652: uint16(193), - 653: uint16(11), - 654: uint16(116), - 655: uint16(117), - 656: uint16(118), - 657: uint16(116), + 646: uint16(119), + 647: uint16(240), + 648: uint16(241), + 649: uint16(122), + 650: uint16(123), + 651: uint16(124), + 652: uint16(314), + 653: uint16(315), + 654: uint16(194), + 655: uint16(236), + 656: uint16(237), + 657: uint16(194), 658: uint16(117), - 659: uint16(118), - 660: uint16(252), - 661: uint16(269), - 662: uint16(22), - 663: uint16(193), - 664: uint16(15), + 659: uint16(132), + 660: uint16(253), + 661: uint16(81), + 662: uint16(255), + 663: uint16(205), + 664: uint16(59), 665: uint16(43), 666: uint16(44), 667: uint16(45), @@ -155096,11 +156600,11 @@ var _yy_lookahead = [2285]uint16{ 677: uint16(55), 678: uint16(56), 679: uint16(57), - 680: uint16(273), - 681: uint16(143), - 682: uint16(193), - 683: uint16(118), - 684: uint16(143), + 680: uint16(217), + 681: uint16(218), + 682: uint16(194), + 683: uint16(194), + 684: uint16(194), 685: uint16(102), 686: uint16(103), 687: uint16(104), @@ -155113,33 +156617,33 @@ var _yy_lookahead = [2285]uint16{ 694: uint16(111), 695: uint16(112), 696: uint16(113), - 697: uint16(76), - 698: uint16(118), - 699: uint16(59), - 700: uint16(241), + 697: uint16(294), + 698: uint16(240), + 699: uint16(241), + 700: uint16(120), 701: uint16(116), 702: uint16(117), 703: uint16(118), - 704: uint16(304), - 705: uint16(216), + 704: uint16(59), + 705: uint16(194), 706: uint16(217), - 707: uint16(292), - 708: uint16(143), - 709: uint16(60), - 710: uint16(89), - 711: uint16(241), + 707: uint16(218), + 708: uint16(211), + 709: uint16(212), + 710: uint16(213), + 711: uint16(253), 712: uint16(19), - 713: uint16(92), - 714: uint16(193), - 715: uint16(193), + 713: uint16(255), + 714: uint16(194), + 715: uint16(19), 716: uint16(23), - 717: uint16(22), - 718: uint16(311), - 719: uint16(312), - 720: uint16(231), - 721: uint16(101), - 722: uint16(22), - 723: uint16(143), + 717: uint16(254), + 718: uint16(138), + 719: uint16(139), + 720: uint16(24), + 721: uint16(232), + 722: uint16(117), + 723: uint16(194), 724: uint16(102), 725: uint16(103), 726: uint16(104), @@ -155168,29 +156672,29 @@ var _yy_lookahead = [2285]uint16{ 749: uint16(56), 750: uint16(57), 751: uint16(19), - 752: uint16(193), - 753: uint16(193), - 754: uint16(59), + 752: uint16(264), + 753: uint16(108), + 754: uint16(76), 755: uint16(23), - 756: uint16(116), - 757: uint16(117), - 758: uint16(118), - 759: uint16(59), - 760: uint16(201), - 761: uint16(21), - 762: uint16(241), - 763: uint16(304), - 764: uint16(193), - 765: uint16(206), - 766: uint16(127), - 767: uint16(128), - 768: uint16(129), - 769: uint16(193), - 770: uint16(128), - 771: uint16(129), - 772: uint16(235), - 773: uint16(236), - 774: uint16(304), + 756: uint16(127), + 757: uint16(128), + 758: uint16(129), + 759: uint16(311), + 760: uint16(312), + 761: uint16(116), + 762: uint16(117), + 763: uint16(118), + 764: uint16(316), + 765: uint16(87), + 766: uint16(306), + 767: uint16(89), + 768: uint16(308), + 769: uint16(194), + 770: uint16(92), + 771: uint16(22), + 772: uint16(59), + 773: uint16(194), + 774: uint16(22), 775: uint16(43), 776: uint16(44), 777: uint16(45), @@ -155206,11 +156710,11 @@ var _yy_lookahead = [2285]uint16{ 787: uint16(55), 788: uint16(56), 789: uint16(57), - 790: uint16(22), - 791: uint16(193), - 792: uint16(216), - 793: uint16(217), - 794: uint16(193), + 790: uint16(194), + 791: uint16(95), + 792: uint16(217), + 793: uint16(218), + 794: uint16(265), 795: uint16(102), 796: uint16(103), 797: uint16(104), @@ -155223,33 +156727,33 @@ var _yy_lookahead = [2285]uint16{ 804: uint16(111), 805: uint16(112), 806: uint16(113), - 807: uint16(231), - 808: uint16(193), - 809: uint16(193), - 810: uint16(193), - 811: uint16(116), - 812: uint16(117), - 813: uint16(118), - 814: uint16(216), - 815: uint16(217), - 816: uint16(116), - 817: uint16(117), - 818: uint16(118), - 819: uint16(226), - 820: uint16(80), - 821: uint16(193), + 807: uint16(232), + 808: uint16(59), + 809: uint16(113), + 810: uint16(25), + 811: uint16(59), + 812: uint16(194), + 813: uint16(217), + 814: uint16(218), + 815: uint16(119), + 816: uint16(120), + 817: uint16(121), + 818: uint16(122), + 819: uint16(123), + 820: uint16(124), + 821: uint16(125), 822: uint16(19), - 823: uint16(235), - 824: uint16(236), - 825: uint16(304), + 823: uint16(145), + 824: uint16(194), + 825: uint16(194), 826: uint16(23), - 827: uint16(211), - 828: uint16(212), - 829: uint16(231), - 830: uint16(204), - 831: uint16(216), - 832: uint16(217), - 833: uint16(205), + 827: uint16(131), + 828: uint16(232), + 829: uint16(116), + 830: uint16(117), + 831: uint16(118), + 832: uint16(35), + 833: uint16(194), 834: uint16(102), 835: uint16(103), 836: uint16(104), @@ -155278,29 +156782,29 @@ var _yy_lookahead = [2285]uint16{ 859: uint16(56), 860: uint16(57), 861: uint16(19), - 862: uint16(193), - 863: uint16(123), - 864: uint16(76), - 865: uint16(239), - 866: uint16(240), - 867: uint16(193), - 868: uint16(253), - 869: uint16(239), - 870: uint16(240), - 871: uint16(239), - 872: uint16(240), - 873: uint16(244), - 874: uint16(106), - 875: uint16(107), - 876: uint16(193), - 877: uint16(89), - 878: uint16(252), - 879: uint16(193), - 880: uint16(92), - 881: uint16(59), - 882: uint16(252), - 883: uint16(254), - 884: uint16(252), + 862: uint16(194), + 863: uint16(66), + 864: uint16(194), + 865: uint16(116), + 866: uint16(117), + 867: uint16(118), + 868: uint16(116), + 869: uint16(117), + 870: uint16(118), + 871: uint16(74), + 872: uint16(242), + 873: uint16(294), + 874: uint16(194), + 875: uint16(194), + 876: uint16(206), + 877: uint16(23), + 878: uint16(194), + 879: uint16(25), + 880: uint16(194), + 881: uint16(111), + 882: uint16(112), + 883: uint16(113), + 884: uint16(25), 885: uint16(43), 886: uint16(44), 887: uint16(45), @@ -155316,11 +156820,11 @@ var _yy_lookahead = [2285]uint16{ 897: uint16(55), 898: uint16(56), 899: uint16(57), - 900: uint16(284), - 901: uint16(161), - 902: uint16(216), + 900: uint16(24), + 901: uint16(194), + 902: uint16(194), 903: uint16(217), - 904: uint16(193), + 904: uint16(218), 905: uint16(102), 906: uint16(103), 907: uint16(104), @@ -155333,33 +156837,33 @@ var _yy_lookahead = [2285]uint16{ 914: uint16(111), 915: uint16(112), 916: uint16(113), - 917: uint16(231), - 918: uint16(193), - 919: uint16(244), - 920: uint16(187), - 921: uint16(188), - 922: uint16(189), - 923: uint16(190), - 924: uint16(7), - 925: uint16(8), - 926: uint16(9), - 927: uint16(309), - 928: uint16(195), - 929: uint16(254), - 930: uint16(197), - 931: uint16(313), + 917: uint16(241), + 918: uint16(232), + 919: uint16(194), + 920: uint16(212), + 921: uint16(213), + 922: uint16(242), + 923: uint16(242), + 924: uint16(217), + 925: uint16(218), + 926: uint16(242), + 927: uint16(130), + 928: uint16(11), + 929: uint16(253), + 930: uint16(194), + 931: uint16(255), 932: uint16(19), - 933: uint16(127), - 934: uint16(128), - 935: uint16(129), - 936: uint16(262), - 937: uint16(204), - 938: uint16(22), - 939: uint16(117), - 940: uint16(24), - 941: uint16(216), + 933: uint16(265), + 934: uint16(149), + 935: uint16(59), + 936: uint16(306), + 937: uint16(194), + 938: uint16(308), + 939: uint16(232), + 940: uint16(309), + 941: uint16(310), 942: uint16(217), - 943: uint16(273), + 943: uint16(218), 944: uint16(102), 945: uint16(103), 946: uint16(104), @@ -155387,36 +156891,36 @@ var _yy_lookahead = [2285]uint16{ 968: uint16(55), 969: uint16(56), 970: uint16(57), - 971: uint16(193), - 972: uint16(239), - 973: uint16(240), - 974: uint16(193), - 975: uint16(59), + 971: uint16(194), + 972: uint16(194), + 973: uint16(59), + 974: uint16(194), + 975: uint16(239), 976: uint16(19), - 977: uint16(188), - 978: uint16(253), - 979: uint16(190), - 980: uint16(193), - 981: uint16(311), - 982: uint16(312), - 983: uint16(16), - 984: uint16(195), - 985: uint16(252), - 986: uint16(197), - 987: uint16(193), - 988: uint16(19), - 989: uint16(301), - 990: uint16(302), - 991: uint16(135), - 992: uint16(193), - 993: uint16(204), - 994: uint16(216), + 977: uint16(194), + 978: uint16(25), + 979: uint16(254), + 980: uint16(303), + 981: uint16(304), + 982: uint16(23), + 983: uint16(194), + 984: uint16(25), + 985: uint16(126), + 986: uint16(306), + 987: uint16(306), + 988: uint16(308), + 989: uint16(308), + 990: uint16(306), + 991: uint16(271), + 992: uint16(308), + 993: uint16(117), + 994: uint16(286), 995: uint16(217), - 996: uint16(140), - 997: uint16(216), - 998: uint16(217), - 999: uint16(266), - 1000: uint16(204), + 996: uint16(218), + 997: uint16(217), + 998: uint16(218), + 999: uint16(194), + 1000: uint16(194), 1001: uint16(159), 1002: uint16(45), 1003: uint16(46), @@ -155443,38 +156947,38 @@ var _yy_lookahead = [2285]uint16{ 1024: uint16(111), 1025: uint16(112), 1026: uint16(113), - 1027: uint16(12), + 1027: uint16(59), 1028: uint16(239), - 1029: uint16(240), - 1030: uint16(193), - 1031: uint16(298), - 1032: uint16(238), - 1033: uint16(117), - 1034: uint16(253), - 1035: uint16(239), + 1029: uint16(194), + 1030: uint16(116), + 1031: uint16(117), + 1032: uint16(118), + 1033: uint16(260), + 1034: uint16(254), + 1035: uint16(194), 1036: uint16(240), - 1037: uint16(238), - 1038: uint16(259), - 1039: uint16(260), - 1040: uint16(193), - 1041: uint16(252), - 1042: uint16(27), - 1043: uint16(193), - 1044: uint16(77), - 1045: uint16(193), - 1046: uint16(79), - 1047: uint16(204), - 1048: uint16(252), - 1049: uint16(262), - 1050: uint16(193), - 1051: uint16(299), - 1052: uint16(300), - 1053: uint16(193), - 1054: uint16(100), - 1055: uint16(266), - 1056: uint16(278), - 1057: uint16(42), - 1058: uint16(204), + 1037: uint16(241), + 1038: uint16(194), + 1039: uint16(233), + 1040: uint16(205), + 1041: uint16(240), + 1042: uint16(241), + 1043: uint16(205), + 1044: uint16(239), + 1045: uint16(128), + 1046: uint16(129), + 1047: uint16(270), + 1048: uint16(265), + 1049: uint16(253), + 1050: uint16(194), + 1051: uint16(255), + 1052: uint16(217), + 1053: uint16(218), + 1054: uint16(253), + 1055: uint16(194), + 1056: uint16(255), + 1057: uint16(143), + 1058: uint16(280), 1059: uint16(102), 1060: uint16(103), 1061: uint16(104), @@ -155487,51 +156991,51 @@ var _yy_lookahead = [2285]uint16{ 1068: uint16(111), 1069: uint16(112), 1070: uint16(113), - 1071: uint16(117), + 1071: uint16(118), 1072: uint16(159), - 1073: uint16(216), - 1074: uint16(217), - 1075: uint16(121), - 1076: uint16(216), - 1077: uint16(217), - 1078: uint16(63), - 1079: uint16(193), - 1080: uint16(193), - 1081: uint16(193), - 1082: uint16(239), - 1083: uint16(240), - 1084: uint16(115), - 1085: uint16(116), - 1086: uint16(193), - 1087: uint16(298), - 1088: uint16(73), - 1089: uint16(240), - 1090: uint16(238), - 1091: uint16(231), + 1073: uint16(217), + 1074: uint16(218), + 1075: uint16(240), + 1076: uint16(241), + 1077: uint16(118), + 1078: uint16(240), + 1079: uint16(241), + 1080: uint16(194), + 1081: uint16(194), + 1082: uint16(194), + 1083: uint16(239), + 1084: uint16(116), + 1085: uint16(117), + 1086: uint16(118), + 1087: uint16(22), + 1088: uint16(253), + 1089: uint16(254), + 1090: uint16(255), + 1091: uint16(253), 1092: uint16(19), - 1093: uint16(239), - 1094: uint16(240), - 1095: uint16(252), - 1096: uint16(22), + 1093: uint16(255), + 1094: uint16(233), + 1095: uint16(194), + 1096: uint16(143), 1097: uint16(24), - 1098: uint16(211), + 1098: uint16(263), 1099: uint16(212), - 1100: uint16(263), - 1101: uint16(252), - 1102: uint16(216), + 1100: uint16(213), + 1101: uint16(194), + 1102: uint16(143), 1103: uint16(217), - 1104: uint16(216), + 1104: uint16(218), 1105: uint16(217), - 1106: uint16(252), - 1107: uint16(153), - 1108: uint16(154), - 1109: uint16(155), - 1110: uint16(253), - 1111: uint16(193), + 1106: uint16(218), + 1107: uint16(261), + 1108: uint16(262), + 1109: uint16(271), + 1110: uint16(254), + 1111: uint16(143), 1112: uint16(19), - 1113: uint16(144), - 1114: uint16(213), - 1115: uint16(268), + 1113: uint16(7), + 1114: uint16(8), + 1115: uint16(9), 1116: uint16(43), 1117: uint16(44), 1118: uint16(45), @@ -155547,11 +157051,11 @@ var _yy_lookahead = [2285]uint16{ 1128: uint16(55), 1129: uint16(56), 1130: uint16(57), - 1131: uint16(193), + 1131: uint16(16), 1132: uint16(19), - 1133: uint16(59), - 1134: uint16(216), - 1135: uint16(217), + 1133: uint16(22), + 1134: uint16(23), + 1135: uint16(294), 1136: uint16(43), 1137: uint16(44), 1138: uint16(45), @@ -155567,11 +157071,11 @@ var _yy_lookahead = [2285]uint16{ 1148: uint16(55), 1149: uint16(56), 1150: uint16(57), - 1151: uint16(193), - 1152: uint16(19), - 1153: uint16(24), - 1154: uint16(216), - 1155: uint16(217), + 1151: uint16(312), + 1152: uint16(194), + 1153: uint16(214), + 1154: uint16(21), + 1155: uint16(316), 1156: uint16(43), 1157: uint16(44), 1158: uint16(45), @@ -155587,10 +157091,10 @@ var _yy_lookahead = [2285]uint16{ 1168: uint16(55), 1169: uint16(56), 1170: uint16(57), - 1171: uint16(284), - 1172: uint16(193), - 1173: uint16(208), - 1174: uint16(209), + 1171: uint16(106), + 1172: uint16(107), + 1173: uint16(286), + 1174: uint16(194), 1175: uint16(102), 1176: uint16(103), 1177: uint16(104), @@ -155603,14 +157107,14 @@ var _yy_lookahead = [2285]uint16{ 1184: uint16(111), 1185: uint16(112), 1186: uint16(113), - 1187: uint16(286), - 1188: uint16(59), - 1189: uint16(193), - 1190: uint16(232), - 1191: uint16(117), - 1192: uint16(291), - 1193: uint16(193), - 1194: uint16(193), + 1187: uint16(207), + 1188: uint16(158), + 1189: uint16(59), + 1190: uint16(160), + 1191: uint16(22), + 1192: uint16(77), + 1193: uint16(24), + 1194: uint16(79), 1195: uint16(102), 1196: uint16(103), 1197: uint16(104), @@ -155623,14 +157127,14 @@ var _yy_lookahead = [2285]uint16{ 1204: uint16(111), 1205: uint16(112), 1206: uint16(113), - 1207: uint16(193), - 1208: uint16(204), - 1209: uint16(22), - 1210: uint16(23), - 1211: uint16(193), - 1212: uint16(25), - 1213: uint16(66), - 1214: uint16(193), + 1207: uint16(194), + 1208: uint16(194), + 1209: uint16(229), + 1210: uint16(194), + 1211: uint16(231), + 1212: uint16(101), + 1213: uint16(80), + 1214: uint16(22), 1215: uint16(102), 1216: uint16(103), 1217: uint16(104), @@ -155643,39 +157147,39 @@ var _yy_lookahead = [2285]uint16{ 1224: uint16(111), 1225: uint16(112), 1226: uint16(113), - 1227: uint16(193), - 1228: uint16(193), - 1229: uint16(193), - 1230: uint16(216), - 1231: uint16(217), - 1232: uint16(85), - 1233: uint16(193), - 1234: uint16(238), + 1227: uint16(288), + 1228: uint16(59), + 1229: uint16(12), + 1230: uint16(217), + 1231: uint16(218), + 1232: uint16(293), + 1233: uint16(217), + 1234: uint16(218), 1235: uint16(19), - 1236: uint16(16), - 1237: uint16(216), - 1238: uint16(217), - 1239: uint16(238), - 1240: uint16(193), - 1241: uint16(94), - 1242: uint16(193), - 1243: uint16(239), - 1244: uint16(240), - 1245: uint16(231), - 1246: uint16(117), - 1247: uint16(268), - 1248: uint16(35), - 1249: uint16(116), - 1250: uint16(216), - 1251: uint16(217), - 1252: uint16(216), - 1253: uint16(217), - 1254: uint16(22), - 1255: uint16(23), - 1256: uint16(252), - 1257: uint16(25), - 1258: uint16(208), - 1259: uint16(209), + 1236: uint16(106), + 1237: uint16(107), + 1238: uint16(59), + 1239: uint16(19), + 1240: uint16(16), + 1241: uint16(127), + 1242: uint16(128), + 1243: uint16(129), + 1244: uint16(27), + 1245: uint16(115), + 1246: uint16(116), + 1247: uint16(117), + 1248: uint16(118), + 1249: uint16(194), + 1250: uint16(120), + 1251: uint16(59), + 1252: uint16(22), + 1253: uint16(194), + 1254: uint16(24), + 1255: uint16(194), + 1256: uint16(123), + 1257: uint16(100), + 1258: uint16(128), + 1259: uint16(42), 1260: uint16(44), 1261: uint16(45), 1262: uint16(46), @@ -155690,50 +157194,50 @@ var _yy_lookahead = [2285]uint16{ 1271: uint16(55), 1272: uint16(56), 1273: uint16(57), - 1274: uint16(193), - 1275: uint16(193), - 1276: uint16(19), - 1277: uint16(5), - 1278: uint16(59), - 1279: uint16(66), - 1280: uint16(193), - 1281: uint16(263), - 1282: uint16(10), - 1283: uint16(11), - 1284: uint16(12), - 1285: uint16(13), - 1286: uint16(14), - 1287: uint16(74), - 1288: uint16(101), - 1289: uint16(17), - 1290: uint16(193), - 1291: uint16(46), - 1292: uint16(193), - 1293: uint16(146), - 1294: uint16(193), - 1295: uint16(76), - 1296: uint16(213), - 1297: uint16(77), - 1298: uint16(263), - 1299: uint16(79), - 1300: uint16(12), - 1301: uint16(260), - 1302: uint16(30), - 1303: uint16(46), - 1304: uint16(32), - 1305: uint16(264), - 1306: uint16(87), - 1307: uint16(193), - 1308: uint16(89), - 1309: uint16(29), - 1310: uint16(263), - 1311: uint16(92), - 1312: uint16(40), - 1313: uint16(33), - 1314: uint16(232), - 1315: uint16(27), - 1316: uint16(193), - 1317: uint16(108), + 1274: uint16(117), + 1275: uint16(194), + 1276: uint16(217), + 1277: uint16(218), + 1278: uint16(121), + 1279: uint16(100), + 1280: uint16(63), + 1281: uint16(194), + 1282: uint16(245), + 1283: uint16(153), + 1284: uint16(194), + 1285: uint16(155), + 1286: uint16(117), + 1287: uint16(19), + 1288: uint16(115), + 1289: uint16(194), + 1290: uint16(73), + 1291: uint16(214), + 1292: uint16(194), + 1293: uint16(256), + 1294: uint16(161), + 1295: uint16(116), + 1296: uint16(117), + 1297: uint16(194), + 1298: uint16(217), + 1299: uint16(218), + 1300: uint16(121), + 1301: uint16(77), + 1302: uint16(194), + 1303: uint16(79), + 1304: uint16(217), + 1305: uint16(218), + 1306: uint16(194), + 1307: uint16(217), + 1308: uint16(218), + 1309: uint16(117), + 1310: uint16(153), + 1311: uint16(154), + 1312: uint16(155), + 1313: uint16(254), + 1314: uint16(46), + 1315: uint16(217), + 1316: uint16(218), + 1317: uint16(144), 1318: uint16(102), 1319: uint16(103), 1320: uint16(104), @@ -155746,1025 +157250,1068 @@ var _yy_lookahead = [2285]uint16{ 1327: uint16(111), 1328: uint16(112), 1329: uint16(113), - 1330: uint16(42), - 1331: uint16(138), - 1332: uint16(139), - 1333: uint16(101), - 1334: uint16(193), - 1335: uint16(116), - 1336: uint16(117), - 1337: uint16(118), + 1330: uint16(232), + 1331: uint16(270), + 1332: uint16(153), + 1333: uint16(154), + 1334: uint16(155), + 1335: uint16(115), + 1336: uint16(116), + 1337: uint16(66), 1338: uint16(19), 1339: uint16(20), - 1340: uint16(255), + 1340: uint16(183), 1341: uint16(22), - 1342: uint16(70), - 1343: uint16(130), - 1344: uint16(135), - 1345: uint16(65), - 1346: uint16(256), - 1347: uint16(257), - 1348: uint16(193), - 1349: uint16(140), - 1350: uint16(78), - 1351: uint16(63), - 1352: uint16(193), - 1353: uint16(81), - 1354: uint16(193), + 1342: uint16(12), + 1343: uint16(312), + 1344: uint16(254), + 1345: uint16(194), + 1346: uint16(262), + 1347: uint16(316), + 1348: uint16(209), + 1349: uint16(210), + 1350: uint16(266), + 1351: uint16(239), + 1352: uint16(194), + 1353: uint16(194), + 1354: uint16(108), 1355: uint16(36), - 1356: uint16(193), - 1357: uint16(216), - 1358: uint16(217), - 1359: uint16(193), - 1360: uint16(115), - 1361: uint16(193), - 1362: uint16(263), - 1363: uint16(193), - 1364: uint16(145), - 1365: uint16(268), - 1366: uint16(59), + 1356: uint16(85), + 1357: uint16(27), + 1358: uint16(19), + 1359: uint16(20), + 1360: uint16(265), + 1361: uint16(22), + 1362: uint16(183), + 1363: uint16(245), + 1364: uint16(144), + 1365: uint16(94), + 1366: uint16(25), 1367: uint16(48), - 1368: uint16(193), - 1369: uint16(193), - 1370: uint16(98), - 1371: uint16(193), - 1372: uint16(115), - 1373: uint16(193), - 1374: uint16(291), - 1375: uint16(216), + 1368: uint16(217), + 1369: uint16(218), + 1370: uint16(293), + 1371: uint16(194), + 1372: uint16(42), + 1373: uint16(270), + 1374: uint16(256), + 1375: uint16(36), 1376: uint16(217), - 1377: uint16(193), + 1377: uint16(218), 1378: uint16(59), - 1379: uint16(216), - 1380: uint16(217), - 1381: uint16(161), - 1382: uint16(216), - 1383: uint16(217), - 1384: uint16(216), - 1385: uint16(217), - 1386: uint16(216), - 1387: uint16(217), - 1388: uint16(131), - 1389: uint16(193), + 1379: uint16(194), + 1380: uint16(25), + 1381: uint16(135), + 1382: uint16(194), + 1383: uint16(115), + 1384: uint16(194), + 1385: uint16(161), + 1386: uint16(140), + 1387: uint16(194), + 1388: uint16(194), + 1389: uint16(15), 1390: uint16(71), - 1391: uint16(193), - 1392: uint16(216), - 1393: uint16(217), - 1394: uint16(216), - 1395: uint16(217), - 1396: uint16(216), - 1397: uint16(217), - 1398: uint16(193), - 1399: uint16(260), - 1400: uint16(216), - 1401: uint16(217), - 1402: uint16(19), - 1403: uint16(264), + 1391: uint16(194), + 1392: uint16(312), + 1393: uint16(63), + 1394: uint16(217), + 1395: uint16(218), + 1396: uint16(316), + 1397: uint16(194), + 1398: uint16(59), + 1399: uint16(131), + 1400: uint16(301), + 1401: uint16(302), + 1402: uint16(217), + 1403: uint16(218), 1404: uint16(85), - 1405: uint16(133), - 1406: uint16(244), - 1407: uint16(100), - 1408: uint16(193), + 1405: uint16(217), + 1406: uint16(218), + 1407: uint16(217), + 1408: uint16(218), 1409: uint16(90), - 1410: uint16(138), - 1411: uint16(139), - 1412: uint16(216), - 1413: uint16(217), - 1414: uint16(216), - 1415: uint16(217), - 1416: uint16(254), - 1417: uint16(244), - 1418: uint16(193), + 1410: uint16(71), + 1411: uint16(217), + 1412: uint16(218), + 1413: uint16(19), + 1414: uint16(217), + 1415: uint16(218), + 1416: uint16(245), + 1417: uint16(146), + 1418: uint16(262), 1419: uint16(100), - 1420: uint16(193), - 1421: uint16(216), - 1422: uint16(217), - 1423: uint16(116), - 1424: uint16(117), + 1420: uint16(217), + 1421: uint16(218), + 1422: uint16(266), + 1423: uint16(265), + 1424: uint16(85), 1425: uint16(106), 1426: uint16(107), - 1427: uint16(254), - 1428: uint16(121), - 1429: uint16(193), - 1430: uint16(115), - 1431: uint16(216), - 1432: uint16(217), + 1427: uint16(256), + 1428: uint16(312), + 1429: uint16(90), + 1430: uint16(209), + 1431: uint16(210), + 1432: uint16(316), 1433: uint16(114), - 1434: uint16(162), + 1434: uint16(60), 1435: uint16(116), 1436: uint16(117), 1437: uint16(118), - 1438: uint16(115), - 1439: uint16(244), + 1438: uint16(194), + 1439: uint16(100), 1440: uint16(121), - 1441: uint16(216), - 1442: uint16(217), - 1443: uint16(216), - 1444: uint16(217), - 1445: uint16(193), - 1446: uint16(309), - 1447: uint16(193), - 1448: uint16(31), - 1449: uint16(254), - 1450: uint16(313), - 1451: uint16(309), - 1452: uint16(216), - 1453: uint16(217), - 1454: uint16(309), - 1455: uint16(313), - 1456: uint16(39), - 1457: uint16(193), - 1458: uint16(313), - 1459: uint16(309), - 1460: uint16(153), - 1461: uint16(154), - 1462: uint16(155), - 1463: uint16(313), - 1464: uint16(193), - 1465: uint16(150), - 1466: uint16(25), - 1467: uint16(144), - 1468: uint16(216), - 1469: uint16(217), - 1470: uint16(216), - 1471: uint16(217), + 1441: uint16(194), + 1442: uint16(194), + 1443: uint16(145), + 1444: uint16(115), + 1445: uint16(106), + 1446: uint16(107), + 1447: uint16(19), + 1448: uint16(46), + 1449: uint16(19), + 1450: uint16(20), + 1451: uint16(24), + 1452: uint16(22), + 1453: uint16(114), + 1454: uint16(194), + 1455: uint16(116), + 1456: uint16(117), + 1457: uint16(118), + 1458: uint16(194), + 1459: uint16(245), + 1460: uint16(121), + 1461: uint16(194), + 1462: uint16(164), + 1463: uint16(194), + 1464: uint16(217), + 1465: uint16(218), + 1466: uint16(36), + 1467: uint16(194), + 1468: uint16(258), + 1469: uint16(259), + 1470: uint16(256), + 1471: uint16(194), 1472: uint16(153), 1473: uint16(154), 1474: uint16(155), 1475: uint16(156), 1476: uint16(157), - 1478: uint16(1), - 1479: uint16(2), - 1480: uint16(216), + 1477: uint16(217), + 1478: uint16(218), + 1479: uint16(150), + 1480: uint16(31), 1481: uint16(217), - 1482: uint16(5), - 1483: uint16(149), - 1484: uint16(150), - 1485: uint16(22), - 1486: uint16(193), - 1487: uint16(10), - 1488: uint16(11), - 1489: uint16(12), - 1490: uint16(13), - 1491: uint16(14), - 1492: uint16(193), - 1493: uint16(158), - 1494: uint16(17), - 1495: uint16(160), - 1496: uint16(193), - 1497: uint16(19), - 1498: uint16(20), - 1499: uint16(116), - 1500: uint16(22), - 1501: uint16(25), - 1502: uint16(193), - 1503: uint16(24), - 1504: uint16(22), - 1505: uint16(193), - 1506: uint16(24), - 1507: uint16(30), - 1508: uint16(226), - 1509: uint16(32), - 1510: uint16(19), - 1511: uint16(20), - 1512: uint16(226), - 1513: uint16(22), - 1514: uint16(36), - 1515: uint16(193), - 1516: uint16(53), - 1517: uint16(40), - 1518: uint16(193), - 1519: uint16(216), - 1520: uint16(217), - 1521: uint16(193), - 1522: uint16(23), - 1523: uint16(193), - 1524: uint16(25), - 1525: uint16(216), - 1526: uint16(217), - 1527: uint16(36), - 1528: uint16(216), - 1529: uint16(217), - 1530: uint16(193), - 1531: uint16(99), - 1532: uint16(193), - 1533: uint16(193), - 1534: uint16(22), - 1535: uint16(193), - 1536: uint16(193), - 1537: uint16(59), - 1538: uint16(216), + 1482: uint16(218), + 1483: uint16(142), + 1484: uint16(217), + 1485: uint16(218), + 1486: uint16(217), + 1487: uint16(218), + 1488: uint16(39), + 1489: uint16(59), + 1490: uint16(217), + 1491: uint16(218), + 1492: uint16(153), + 1493: uint16(154), + 1494: uint16(155), + 1495: uint16(156), + 1496: uint16(157), + 1497: uint16(149), + 1498: uint16(150), + 1499: uint16(5), + 1500: uint16(145), + 1501: uint16(71), + 1502: uint16(183), + 1503: uint16(245), + 1504: uint16(10), + 1505: uint16(11), + 1506: uint16(12), + 1507: uint16(13), + 1508: uint16(14), + 1509: uint16(194), + 1510: uint16(116), + 1511: uint16(17), + 1512: uint16(129), + 1513: uint16(227), + 1514: uint16(256), + 1515: uint16(85), + 1516: uint16(194), + 1517: uint16(115), + 1518: uint16(194), + 1519: uint16(23), + 1520: uint16(90), + 1521: uint16(25), + 1522: uint16(183), + 1523: uint16(99), + 1524: uint16(30), + 1525: uint16(97), + 1526: uint16(32), + 1527: uint16(22), + 1528: uint16(22), + 1529: uint16(194), + 1530: uint16(100), + 1531: uint16(194), + 1532: uint16(217), + 1533: uint16(218), + 1534: uint16(40), + 1535: uint16(152), + 1536: uint16(106), + 1537: uint16(107), + 1538: uint16(23), 1539: uint16(217), - 1540: uint16(193), - 1541: uint16(216), - 1542: uint16(217), - 1543: uint16(193), - 1544: uint16(216), - 1545: uint16(217), - 1546: uint16(193), - 1547: uint16(70), - 1548: uint16(129), - 1549: uint16(71), - 1550: uint16(59), - 1551: uint16(129), - 1552: uint16(193), - 1553: uint16(216), + 1540: uint16(218), + 1541: uint16(194), + 1542: uint16(19), + 1543: uint16(20), + 1544: uint16(114), + 1545: uint16(22), + 1546: uint16(116), + 1547: uint16(117), + 1548: uint16(118), + 1549: uint16(257), + 1550: uint16(194), + 1551: uint16(121), + 1552: uint16(217), + 1553: uint16(218), 1554: uint16(217), - 1555: uint16(78), - 1556: uint16(216), - 1557: uint16(217), - 1558: uint16(81), - 1559: uint16(216), - 1560: uint16(217), - 1561: uint16(193), - 1562: uint16(71), - 1563: uint16(85), - 1564: uint16(193), - 1565: uint16(133), - 1566: uint16(193), - 1567: uint16(126), - 1568: uint16(90), - 1569: uint16(216), - 1570: uint16(217), - 1571: uint16(152), - 1572: uint16(258), - 1573: uint16(61), - 1574: uint16(152), - 1575: uint16(98), - 1576: uint16(85), - 1577: uint16(193), - 1578: uint16(100), - 1579: uint16(193), - 1580: uint16(23), - 1581: uint16(90), - 1582: uint16(25), - 1583: uint16(121), - 1584: uint16(106), - 1585: uint16(107), - 1586: uint16(23), - 1587: uint16(216), - 1588: uint16(217), - 1589: uint16(216), - 1590: uint16(217), - 1591: uint16(100), - 1592: uint16(114), - 1593: uint16(131), - 1594: uint16(116), - 1595: uint16(117), - 1596: uint16(118), - 1597: uint16(106), - 1598: uint16(107), - 1599: uint16(121), - 1600: uint16(216), - 1601: uint16(217), - 1602: uint16(216), - 1603: uint16(217), - 1604: uint16(193), - 1605: uint16(114), - 1606: uint16(193), - 1607: uint16(116), - 1608: uint16(117), - 1609: uint16(118), - 1610: uint16(133), - 1611: uint16(22), - 1612: uint16(121), - 1613: uint16(193), - 1614: uint16(59), - 1615: uint16(138), - 1616: uint16(139), - 1617: uint16(193), - 1618: uint16(142), - 1619: uint16(193), - 1620: uint16(141), - 1621: uint16(23), - 1622: uint16(23), - 1623: uint16(25), - 1624: uint16(25), - 1625: uint16(120), - 1626: uint16(121), - 1627: uint16(216), - 1628: uint16(217), - 1629: uint16(216), - 1630: uint16(217), - 1631: uint16(153), - 1632: uint16(154), - 1633: uint16(155), - 1634: uint16(156), - 1635: uint16(157), - 1636: uint16(216), - 1637: uint16(217), - 1638: uint16(19), - 1639: uint16(162), - 1640: uint16(216), - 1641: uint16(217), - 1642: uint16(216), - 1643: uint16(217), - 1644: uint16(153), - 1645: uint16(154), - 1646: uint16(155), - 1647: uint16(156), - 1648: uint16(157), - 1649: uint16(1), - 1650: uint16(2), - 1651: uint16(193), - 1652: uint16(59), - 1653: uint16(5), - 1654: uint16(19), - 1655: uint16(20), - 1656: uint16(318), - 1657: uint16(22), - 1658: uint16(10), - 1659: uint16(11), - 1660: uint16(12), - 1661: uint16(13), - 1662: uint16(14), - 1663: uint16(193), - 1664: uint16(59), - 1665: uint16(17), - 1666: uint16(193), - 1667: uint16(23), - 1668: uint16(23), - 1669: uint16(25), - 1670: uint16(25), - 1671: uint16(36), - 1672: uint16(117), - 1673: uint16(193), - 1674: uint16(216), - 1675: uint16(217), - 1676: uint16(193), - 1677: uint16(23), - 1678: uint16(30), - 1679: uint16(25), - 1680: uint16(32), - 1681: uint16(19), - 1682: uint16(20), - 1683: uint16(23), - 1684: uint16(22), - 1685: uint16(25), - 1686: uint16(216), - 1687: uint16(217), - 1688: uint16(40), - 1689: uint16(216), + 1555: uint16(218), + 1556: uint16(194), + 1557: uint16(133), + 1558: uint16(53), + 1559: uint16(36), + 1560: uint16(23), + 1561: uint16(23), + 1562: uint16(25), + 1563: uint16(25), + 1564: uint16(70), + 1565: uint16(120), + 1566: uint16(121), + 1567: uint16(61), + 1568: uint16(141), + 1569: uint16(7), + 1570: uint16(8), + 1571: uint16(121), + 1572: uint16(78), + 1573: uint16(217), + 1574: uint16(218), + 1575: uint16(81), + 1576: uint16(23), + 1577: uint16(227), + 1578: uint16(25), + 1579: uint16(217), + 1580: uint16(218), + 1581: uint16(131), + 1582: uint16(59), + 1583: uint16(153), + 1584: uint16(154), + 1585: uint16(155), + 1586: uint16(156), + 1587: uint16(157), + 1589: uint16(1), + 1590: uint16(2), + 1591: uint16(59), + 1592: uint16(98), + 1593: uint16(5), + 1594: uint16(71), + 1595: uint16(23), + 1596: uint16(227), + 1597: uint16(25), + 1598: uint16(10), + 1599: uint16(11), + 1600: uint16(12), + 1601: uint16(13), + 1602: uint16(14), + 1603: uint16(83), + 1604: uint16(84), + 1605: uint16(17), + 1606: uint16(23), + 1607: uint16(23), + 1608: uint16(25), + 1609: uint16(25), + 1610: uint16(59), + 1611: uint16(194), + 1612: uint16(194), + 1613: uint16(183), + 1614: uint16(23), + 1615: uint16(23), + 1616: uint16(25), + 1617: uint16(25), + 1618: uint16(30), + 1619: uint16(194), + 1620: uint16(32), + 1621: uint16(19), + 1622: uint16(20), + 1623: uint16(100), + 1624: uint16(22), + 1625: uint16(194), + 1626: uint16(194), + 1627: uint16(133), + 1628: uint16(40), + 1629: uint16(106), + 1630: uint16(107), + 1631: uint16(108), + 1632: uint16(138), + 1633: uint16(139), + 1634: uint16(194), + 1635: uint16(217), + 1636: uint16(218), + 1637: uint16(114), + 1638: uint16(36), + 1639: uint16(116), + 1640: uint16(117), + 1641: uint16(118), + 1642: uint16(217), + 1643: uint16(218), + 1644: uint16(121), + 1645: uint16(194), + 1646: uint16(194), + 1647: uint16(194), + 1648: uint16(23), + 1649: uint16(117), + 1650: uint16(25), + 1651: uint16(194), + 1652: uint16(23), + 1653: uint16(23), + 1654: uint16(25), + 1655: uint16(25), + 1656: uint16(162), + 1657: uint16(194), + 1658: uint16(70), + 1659: uint16(194), + 1660: uint16(145), + 1661: uint16(59), + 1662: uint16(23), + 1663: uint16(153), + 1664: uint16(25), + 1665: uint16(155), + 1666: uint16(78), + 1667: uint16(194), + 1668: uint16(117), + 1669: uint16(81), + 1670: uint16(217), + 1671: uint16(218), + 1672: uint16(194), + 1673: uint16(71), + 1674: uint16(217), + 1675: uint16(218), + 1676: uint16(153), + 1677: uint16(154), + 1678: uint16(155), + 1679: uint16(156), + 1680: uint16(157), + 1681: uint16(194), + 1682: uint16(217), + 1683: uint16(218), + 1684: uint16(194), + 1685: uint16(23), + 1686: uint16(98), + 1687: uint16(25), + 1688: uint16(321), + 1689: uint16(194), 1690: uint16(217), - 1691: uint16(7), - 1692: uint16(8), - 1693: uint16(23), - 1694: uint16(59), - 1695: uint16(25), - 1696: uint16(83), - 1697: uint16(84), - 1698: uint16(36), - 1699: uint16(23), - 1700: uint16(193), - 1701: uint16(25), - 1702: uint16(23), - 1703: uint16(23), - 1704: uint16(25), - 1705: uint16(25), - 1706: uint16(71), - 1707: uint16(153), - 1708: uint16(145), - 1709: uint16(155), - 1710: uint16(117), - 1711: uint16(153), - 1712: uint16(23), - 1713: uint16(155), - 1714: uint16(25), - 1715: uint16(23), - 1716: uint16(97), - 1717: uint16(25), - 1718: uint16(70), - 1719: uint16(193), - 1720: uint16(193), - 1721: uint16(59), - 1722: uint16(117), - 1723: uint16(236), - 1724: uint16(193), - 1725: uint16(193), - 1726: uint16(78), - 1727: uint16(193), - 1728: uint16(193), - 1729: uint16(81), - 1730: uint16(141), - 1731: uint16(193), - 1732: uint16(193), - 1733: uint16(71), - 1734: uint16(193), - 1735: uint16(100), - 1736: uint16(288), - 1737: uint16(287), - 1738: uint16(242), - 1739: uint16(255), - 1740: uint16(255), - 1741: uint16(106), - 1742: uint16(107), - 1743: uint16(108), - 1744: uint16(255), - 1745: uint16(255), - 1746: uint16(98), - 1747: uint16(243), - 1748: uint16(297), - 1749: uint16(114), - 1750: uint16(214), - 1751: uint16(116), - 1752: uint16(117), - 1753: uint16(118), - 1754: uint16(245), - 1755: uint16(191), - 1756: uint16(121), - 1757: uint16(271), - 1758: uint16(293), - 1759: uint16(267), - 1760: uint16(267), - 1761: uint16(246), - 1762: uint16(100), - 1763: uint16(246), - 1764: uint16(245), - 1765: uint16(271), - 1766: uint16(271), - 1767: uint16(293), - 1768: uint16(106), - 1769: uint16(107), - 1770: uint16(220), - 1771: uint16(271), - 1772: uint16(229), - 1773: uint16(225), - 1774: uint16(249), - 1775: uint16(219), - 1776: uint16(114), - 1777: uint16(259), - 1778: uint16(116), - 1779: uint16(117), - 1780: uint16(118), - 1781: uint16(133), - 1782: uint16(259), - 1783: uint16(121), - 1784: uint16(219), - 1785: uint16(219), - 1786: uint16(138), - 1787: uint16(139), - 1788: uint16(153), - 1789: uint16(154), - 1790: uint16(155), - 1791: uint16(156), - 1792: uint16(157), - 1793: uint16(280), - 1794: uint16(249), - 1795: uint16(243), - 1796: uint16(19), - 1797: uint16(20), - 1798: uint16(245), - 1799: uint16(22), - 1800: uint16(196), - 1801: uint16(259), - 1802: uint16(140), - 1803: uint16(259), - 1804: uint16(60), - 1805: uint16(297), - 1806: uint16(141), - 1807: uint16(297), - 1808: uint16(200), - 1809: uint16(200), - 1810: uint16(162), - 1811: uint16(38), - 1812: uint16(200), - 1813: uint16(36), - 1814: uint16(294), - 1815: uint16(153), - 1816: uint16(154), - 1817: uint16(155), - 1818: uint16(156), - 1819: uint16(157), - 1820: uint16(151), - 1821: uint16(150), - 1822: uint16(294), - 1823: uint16(283), - 1824: uint16(22), - 1825: uint16(43), - 1826: uint16(234), - 1827: uint16(18), - 1828: uint16(237), - 1829: uint16(200), - 1830: uint16(270), - 1831: uint16(272), - 1832: uint16(237), - 1833: uint16(237), - 1834: uint16(237), - 1835: uint16(18), - 1836: uint16(59), - 1837: uint16(199), - 1838: uint16(270), - 1839: uint16(149), - 1840: uint16(246), - 1841: uint16(272), - 1842: uint16(272), - 1843: uint16(200), - 1844: uint16(234), - 1845: uint16(234), - 1846: uint16(246), - 1847: uint16(246), - 1848: uint16(71), - 1849: uint16(246), - 1850: uint16(199), - 1851: uint16(158), - 1852: uint16(290), - 1853: uint16(62), - 1854: uint16(22), - 1855: uint16(200), - 1856: uint16(19), - 1857: uint16(20), - 1858: uint16(199), - 1859: uint16(22), - 1860: uint16(289), - 1861: uint16(221), - 1862: uint16(221), - 1863: uint16(200), - 1864: uint16(200), - 1865: uint16(199), - 1866: uint16(199), - 1867: uint16(115), - 1868: uint16(218), - 1869: uint16(64), - 1870: uint16(218), - 1871: uint16(218), + 1691: uint16(218), + 1692: uint16(194), + 1693: uint16(19), + 1694: uint16(20), + 1695: uint16(194), + 1696: uint16(22), + 1697: uint16(153), + 1698: uint16(23), + 1699: uint16(155), + 1700: uint16(25), + 1701: uint16(194), + 1702: uint16(100), + 1703: uint16(194), + 1704: uint16(217), + 1705: uint16(218), + 1706: uint16(183), + 1707: uint16(194), + 1708: uint16(106), + 1709: uint16(107), + 1710: uint16(36), + 1711: uint16(194), + 1712: uint16(217), + 1713: uint16(218), + 1714: uint16(237), + 1715: uint16(194), + 1716: uint16(114), + 1717: uint16(243), + 1718: uint16(116), + 1719: uint16(117), + 1720: uint16(118), + 1721: uint16(133), + 1722: uint16(194), + 1723: uint16(121), + 1724: uint16(217), + 1725: uint16(218), + 1726: uint16(138), + 1727: uint16(139), + 1728: uint16(194), + 1729: uint16(194), + 1730: uint16(194), + 1731: uint16(290), + 1732: uint16(289), + 1733: uint16(59), + 1734: uint16(217), + 1735: uint16(218), + 1736: uint16(194), + 1737: uint16(194), + 1738: uint16(217), + 1739: uint16(218), + 1740: uint16(194), + 1741: uint16(194), + 1742: uint16(140), + 1743: uint16(194), + 1744: uint16(194), + 1745: uint16(71), + 1746: uint16(194), + 1747: uint16(244), + 1748: uint16(194), + 1749: uint16(194), + 1750: uint16(162), + 1751: uint16(217), + 1752: uint16(218), + 1753: uint16(194), + 1754: uint16(194), + 1755: uint16(153), + 1756: uint16(154), + 1757: uint16(155), + 1758: uint16(156), + 1759: uint16(157), + 1760: uint16(217), + 1761: uint16(218), + 1762: uint16(194), + 1763: uint16(217), + 1764: uint16(218), + 1765: uint16(194), + 1766: uint16(217), + 1767: uint16(218), + 1768: uint16(257), + 1769: uint16(217), + 1770: uint16(218), + 1771: uint16(217), + 1772: uint16(218), + 1773: uint16(257), + 1774: uint16(100), + 1775: uint16(194), + 1776: uint16(257), + 1777: uint16(217), + 1778: uint16(218), + 1779: uint16(257), + 1780: uint16(106), + 1781: uint16(107), + 1782: uint16(215), + 1783: uint16(299), + 1784: uint16(194), + 1785: uint16(183), + 1786: uint16(192), + 1787: uint16(194), + 1788: uint16(114), + 1789: uint16(194), + 1790: uint16(116), + 1791: uint16(117), + 1792: uint16(118), + 1793: uint16(1), + 1794: uint16(2), + 1795: uint16(121), + 1796: uint16(221), + 1797: uint16(5), + 1798: uint16(217), + 1799: uint16(218), + 1800: uint16(273), + 1801: uint16(197), + 1802: uint16(10), + 1803: uint16(11), + 1804: uint16(12), + 1805: uint16(13), + 1806: uint16(14), + 1807: uint16(217), + 1808: uint16(218), + 1809: uint16(17), + 1810: uint16(217), + 1811: uint16(218), + 1812: uint16(217), + 1813: uint16(218), + 1814: uint16(140), + 1815: uint16(194), + 1816: uint16(246), + 1817: uint16(194), + 1818: uint16(273), + 1819: uint16(295), + 1820: uint16(247), + 1821: uint16(273), + 1822: uint16(30), + 1823: uint16(247), + 1824: uint16(32), + 1825: uint16(269), + 1826: uint16(269), + 1827: uint16(153), + 1828: uint16(154), + 1829: uint16(155), + 1830: uint16(156), + 1831: uint16(157), + 1832: uint16(40), + 1833: uint16(246), + 1834: uint16(273), + 1835: uint16(295), + 1836: uint16(230), + 1837: uint16(226), + 1838: uint16(217), + 1839: uint16(218), + 1840: uint16(217), + 1841: uint16(218), + 1842: uint16(220), + 1843: uint16(261), + 1844: uint16(220), + 1845: uint16(282), + 1846: uint16(220), + 1847: uint16(19), + 1848: uint16(20), + 1849: uint16(244), + 1850: uint16(22), + 1851: uint16(250), + 1852: uint16(141), + 1853: uint16(250), + 1854: uint16(246), + 1855: uint16(60), + 1856: uint16(201), + 1857: uint16(183), + 1858: uint16(261), + 1859: uint16(261), + 1860: uint16(261), + 1861: uint16(201), + 1862: uint16(70), + 1863: uint16(299), + 1864: uint16(36), + 1865: uint16(299), + 1866: uint16(201), + 1867: uint16(38), + 1868: uint16(151), + 1869: uint16(150), + 1870: uint16(78), + 1871: uint16(285), 1872: uint16(22), - 1873: uint16(36), - 1874: uint16(227), - 1875: uint16(126), - 1876: uint16(227), - 1877: uint16(100), - 1878: uint16(165), - 1879: uint16(221), - 1880: uint16(224), - 1881: uint16(224), - 1882: uint16(24), - 1883: uint16(106), - 1884: uint16(107), - 1885: uint16(312), - 1886: uint16(218), - 1887: uint16(305), - 1888: uint16(113), - 1889: uint16(282), - 1890: uint16(91), - 1891: uint16(114), - 1892: uint16(220), - 1893: uint16(116), - 1894: uint16(117), - 1895: uint16(118), - 1896: uint16(59), - 1897: uint16(282), - 1898: uint16(121), - 1899: uint16(218), - 1900: uint16(218), - 1901: uint16(218), + 1873: uint16(81), + 1874: uint16(296), + 1875: uint16(296), + 1876: uint16(43), + 1877: uint16(235), + 1878: uint16(18), + 1879: uint16(238), + 1880: uint16(201), + 1881: uint16(274), + 1882: uint16(272), + 1883: uint16(238), + 1884: uint16(238), + 1885: uint16(238), + 1886: uint16(18), + 1887: uint16(59), + 1888: uint16(200), + 1889: uint16(149), + 1890: uint16(98), + 1891: uint16(247), + 1892: uint16(274), + 1893: uint16(274), + 1894: uint16(235), + 1895: uint16(247), + 1896: uint16(247), + 1897: uint16(247), + 1898: uint16(235), + 1899: uint16(71), + 1900: uint16(272), + 1901: uint16(201), 1902: uint16(200), - 1903: uint16(317), - 1904: uint16(317), - 1905: uint16(82), - 1906: uint16(221), - 1907: uint16(265), - 1908: uint16(71), - 1909: uint16(148), - 1910: uint16(145), - 1911: uint16(265), - 1912: uint16(22), - 1913: uint16(277), - 1914: uint16(200), - 1915: uint16(158), - 1916: uint16(279), - 1917: uint16(140), - 1918: uint16(147), - 1919: uint16(25), - 1920: uint16(146), - 1921: uint16(202), - 1922: uint16(248), - 1923: uint16(250), - 1924: uint16(249), - 1925: uint16(247), - 1926: uint16(13), - 1927: uint16(250), - 1928: uint16(194), - 1929: uint16(194), - 1930: uint16(153), - 1931: uint16(154), - 1932: uint16(155), - 1933: uint16(156), - 1934: uint16(157), - 1935: uint16(6), - 1936: uint16(303), - 1937: uint16(100), - 1938: uint16(192), - 1939: uint16(192), - 1940: uint16(246), - 1941: uint16(213), - 1942: uint16(192), - 1943: uint16(106), - 1944: uint16(107), - 1945: uint16(207), - 1946: uint16(213), - 1947: uint16(207), - 1948: uint16(222), - 1949: uint16(213), - 1950: uint16(213), - 1951: uint16(114), - 1952: uint16(222), - 1953: uint16(116), - 1954: uint16(117), - 1955: uint16(118), - 1956: uint16(214), - 1957: uint16(214), - 1958: uint16(121), - 1959: uint16(4), - 1960: uint16(207), - 1961: uint16(213), - 1962: uint16(3), - 1963: uint16(22), - 1964: uint16(303), - 1965: uint16(15), - 1966: uint16(163), - 1967: uint16(16), - 1968: uint16(23), - 1969: uint16(23), - 1970: uint16(139), - 1971: uint16(151), - 1972: uint16(130), - 1973: uint16(25), - 1974: uint16(20), - 1975: uint16(142), - 1976: uint16(24), - 1977: uint16(16), - 1978: uint16(144), - 1979: uint16(1), - 1980: uint16(142), - 1981: uint16(130), - 1982: uint16(130), - 1983: uint16(61), - 1984: uint16(37), - 1985: uint16(53), - 1986: uint16(300), - 1987: uint16(151), - 1988: uint16(53), - 1989: uint16(53), - 1990: uint16(153), - 1991: uint16(154), - 1992: uint16(155), - 1993: uint16(156), - 1994: uint16(157), - 1995: uint16(53), - 1996: uint16(130), - 1997: uint16(116), - 1998: uint16(34), - 1999: uint16(1), - 2000: uint16(141), - 2001: uint16(5), - 2002: uint16(22), - 2003: uint16(115), - 2004: uint16(161), - 2005: uint16(68), - 2006: uint16(25), - 2007: uint16(68), - 2008: uint16(75), - 2009: uint16(41), - 2010: uint16(141), - 2011: uint16(115), - 2012: uint16(24), - 2013: uint16(20), - 2014: uint16(19), - 2015: uint16(131), - 2016: uint16(125), - 2017: uint16(23), - 2018: uint16(28), - 2019: uint16(22), - 2020: uint16(67), - 2021: uint16(22), - 2022: uint16(22), - 2023: uint16(22), - 2024: uint16(67), - 2025: uint16(59), - 2026: uint16(24), - 2027: uint16(96), - 2028: uint16(22), - 2029: uint16(67), - 2030: uint16(23), - 2031: uint16(149), - 2032: uint16(22), - 2033: uint16(25), - 2034: uint16(23), - 2035: uint16(23), - 2036: uint16(23), - 2037: uint16(22), - 2038: uint16(34), - 2039: uint16(141), - 2040: uint16(37), - 2041: uint16(97), - 2042: uint16(23), - 2043: uint16(23), - 2044: uint16(116), - 2045: uint16(22), - 2046: uint16(143), - 2047: uint16(25), - 2048: uint16(34), - 2049: uint16(75), - 2050: uint16(34), - 2051: uint16(34), - 2052: uint16(34), - 2053: uint16(88), - 2054: uint16(75), - 2055: uint16(34), - 2056: uint16(86), - 2057: uint16(23), + 1903: uint16(158), + 1904: uint16(292), + 1905: uint16(62), + 1906: uint16(291), + 1907: uint16(201), + 1908: uint16(200), + 1909: uint16(22), + 1910: uint16(201), + 1911: uint16(222), + 1912: uint16(200), + 1913: uint16(222), + 1914: uint16(201), + 1915: uint16(200), + 1916: uint16(115), + 1917: uint16(219), + 1918: uint16(219), + 1919: uint16(64), + 1920: uint16(219), + 1921: uint16(228), + 1922: uint16(22), + 1923: uint16(126), + 1924: uint16(221), + 1925: uint16(133), + 1926: uint16(165), + 1927: uint16(222), + 1928: uint16(100), + 1929: uint16(225), + 1930: uint16(138), + 1931: uint16(139), + 1932: uint16(225), + 1933: uint16(219), + 1934: uint16(106), + 1935: uint16(107), + 1936: uint16(24), + 1937: uint16(219), + 1938: uint16(228), + 1939: uint16(219), + 1940: uint16(219), + 1941: uint16(307), + 1942: uint16(114), + 1943: uint16(113), + 1944: uint16(116), + 1945: uint16(117), + 1946: uint16(118), + 1947: uint16(315), + 1948: uint16(284), + 1949: uint16(121), + 1950: uint16(284), + 1951: uint16(222), + 1952: uint16(201), + 1953: uint16(91), + 1954: uint16(162), + 1955: uint16(320), + 1956: uint16(320), + 1957: uint16(82), + 1958: uint16(148), + 1959: uint16(267), + 1960: uint16(145), + 1961: uint16(267), + 1962: uint16(22), + 1963: uint16(279), + 1964: uint16(201), + 1965: uint16(158), + 1966: uint16(281), + 1967: uint16(251), + 1968: uint16(147), + 1969: uint16(146), + 1970: uint16(25), + 1971: uint16(203), + 1972: uint16(250), + 1973: uint16(249), + 1974: uint16(251), + 1975: uint16(248), + 1976: uint16(13), + 1977: uint16(247), + 1978: uint16(195), + 1979: uint16(195), + 1980: uint16(6), + 1981: uint16(153), + 1982: uint16(154), + 1983: uint16(155), + 1984: uint16(156), + 1985: uint16(157), + 1986: uint16(193), + 1987: uint16(193), + 1988: uint16(305), + 1989: uint16(193), + 1990: uint16(208), + 1991: uint16(305), + 1992: uint16(302), + 1993: uint16(214), + 1994: uint16(214), + 1995: uint16(214), + 1996: uint16(208), + 1997: uint16(223), + 1998: uint16(223), + 1999: uint16(214), + 2000: uint16(4), + 2001: uint16(215), + 2002: uint16(215), + 2003: uint16(214), + 2004: uint16(3), + 2005: uint16(22), + 2006: uint16(208), + 2007: uint16(163), + 2008: uint16(15), + 2009: uint16(23), + 2010: uint16(16), + 2011: uint16(183), + 2012: uint16(23), + 2013: uint16(139), + 2014: uint16(151), + 2015: uint16(130), + 2016: uint16(25), + 2017: uint16(20), + 2018: uint16(142), + 2019: uint16(24), + 2020: uint16(16), + 2021: uint16(144), + 2022: uint16(1), + 2023: uint16(142), + 2024: uint16(130), + 2025: uint16(130), + 2026: uint16(61), + 2027: uint16(37), + 2028: uint16(53), + 2029: uint16(151), + 2030: uint16(53), + 2031: uint16(53), + 2032: uint16(53), + 2033: uint16(130), + 2034: uint16(116), + 2035: uint16(1), + 2036: uint16(34), + 2037: uint16(141), + 2038: uint16(5), + 2039: uint16(22), + 2040: uint16(115), + 2041: uint16(161), + 2042: uint16(75), + 2043: uint16(25), + 2044: uint16(68), + 2045: uint16(141), + 2046: uint16(41), + 2047: uint16(115), + 2048: uint16(68), + 2049: uint16(24), + 2050: uint16(20), + 2051: uint16(19), + 2052: uint16(131), + 2053: uint16(125), + 2054: uint16(67), + 2055: uint16(67), + 2056: uint16(96), + 2057: uint16(22), 2058: uint16(22), - 2059: uint16(34), - 2060: uint16(93), - 2061: uint16(24), - 2062: uint16(34), - 2063: uint16(25), - 2064: uint16(25), - 2065: uint16(142), - 2066: uint16(142), + 2059: uint16(22), + 2060: uint16(37), + 2061: uint16(23), + 2062: uint16(22), + 2063: uint16(24), + 2064: uint16(22), + 2065: uint16(59), + 2066: uint16(67), 2067: uint16(23), - 2068: uint16(44), - 2069: uint16(23), - 2070: uint16(23), - 2071: uint16(23), + 2068: uint16(149), + 2069: uint16(28), + 2070: uint16(22), + 2071: uint16(25), 2072: uint16(23), - 2073: uint16(11), + 2073: uint16(23), 2074: uint16(23), - 2075: uint16(25), - 2076: uint16(22), - 2077: uint16(22), - 2078: uint16(22), - 2079: uint16(141), + 2075: uint16(22), + 2076: uint16(141), + 2077: uint16(34), + 2078: uint16(97), + 2079: uint16(23), 2080: uint16(23), - 2081: uint16(23), - 2082: uint16(22), + 2081: uint16(34), + 2082: uint16(116), 2083: uint16(22), - 2084: uint16(25), - 2085: uint16(15), - 2086: uint16(1), - 2087: uint16(23), - 2088: uint16(25), - 2089: uint16(1), - 2090: uint16(141), - 2091: uint16(135), - 2092: uint16(319), - 2093: uint16(319), - 2094: uint16(319), - 2095: uint16(319), - 2096: uint16(319), - 2097: uint16(319), - 2098: uint16(319), - 2099: uint16(141), - 2100: uint16(319), - 2101: uint16(319), - 2102: uint16(319), - 2103: uint16(319), - 2104: uint16(319), - 2105: uint16(319), - 2106: uint16(319), - 2107: uint16(319), - 2108: uint16(319), - 2109: uint16(319), - 2110: uint16(319), - 2111: uint16(319), - 2112: uint16(319), - 2113: uint16(319), - 2114: uint16(319), - 2115: uint16(319), - 2116: uint16(319), - 2117: uint16(319), - 2118: uint16(319), - 2119: uint16(319), - 2120: uint16(319), - 2121: uint16(319), - 2122: uint16(319), - 2123: uint16(319), - 2124: uint16(319), - 2125: uint16(319), - 2126: uint16(319), - 2127: uint16(319), - 2128: uint16(319), - 2129: uint16(319), - 2130: uint16(319), - 2131: uint16(319), - 2132: uint16(319), - 2133: uint16(319), - 2134: uint16(319), - 2135: uint16(319), - 2136: uint16(319), - 2137: uint16(319), - 2138: uint16(319), - 2139: uint16(319), - 2140: uint16(319), - 2141: uint16(319), - 2142: uint16(319), - 2143: uint16(319), - 2144: uint16(319), - 2145: uint16(319), - 2146: uint16(319), - 2147: uint16(319), - 2148: uint16(319), - 2149: uint16(319), - 2150: uint16(319), - 2151: uint16(319), - 2152: uint16(319), - 2153: uint16(319), - 2154: uint16(319), - 2155: uint16(319), - 2156: uint16(319), - 2157: uint16(319), - 2158: uint16(319), - 2159: uint16(319), - 2160: uint16(319), - 2161: uint16(319), - 2162: uint16(319), - 2163: uint16(319), - 2164: uint16(319), - 2165: uint16(319), - 2166: uint16(319), - 2167: uint16(319), - 2168: uint16(319), - 2169: uint16(319), - 2170: uint16(319), - 2171: uint16(319), - 2172: uint16(319), - 2173: uint16(319), - 2174: uint16(319), - 2175: uint16(319), - 2176: uint16(319), - 2177: uint16(319), - 2178: uint16(319), - 2179: uint16(319), - 2180: uint16(319), - 2181: uint16(319), - 2182: uint16(319), - 2183: uint16(319), - 2184: uint16(319), - 2185: uint16(319), - 2186: uint16(319), - 2187: uint16(319), - 2188: uint16(319), - 2189: uint16(319), - 2190: uint16(319), - 2191: uint16(319), - 2192: uint16(319), - 2193: uint16(319), - 2194: uint16(319), - 2195: uint16(319), - 2196: uint16(319), - 2197: uint16(319), - 2198: uint16(319), - 2199: uint16(319), - 2200: uint16(319), - 2201: uint16(319), - 2202: uint16(319), - 2203: uint16(319), - 2204: uint16(319), - 2205: uint16(319), - 2206: uint16(319), - 2207: uint16(319), - 2208: uint16(319), - 2209: uint16(319), - 2210: uint16(319), - 2211: uint16(319), - 2212: uint16(319), - 2213: uint16(319), - 2214: uint16(319), - 2215: uint16(319), - 2216: uint16(319), - 2217: uint16(319), - 2218: uint16(319), - 2219: uint16(319), - 2220: uint16(319), - 2221: uint16(319), - 2222: uint16(319), - 2223: uint16(319), - 2224: uint16(319), - 2225: uint16(319), - 2226: uint16(319), - 2227: uint16(319), - 2228: uint16(319), - 2229: uint16(319), - 2230: uint16(319), - 2231: uint16(319), - 2232: uint16(319), - 2233: uint16(319), - 2234: uint16(319), - 2235: uint16(319), - 2236: uint16(319), - 2237: uint16(319), - 2238: uint16(319), - 2239: uint16(319), - 2240: uint16(319), - 2241: uint16(319), - 2242: uint16(319), - 2243: uint16(319), - 2244: uint16(319), - 2245: uint16(319), - 2246: uint16(319), - 2247: uint16(319), - 2248: uint16(319), - 2249: uint16(319), - 2250: uint16(319), - 2251: uint16(319), - 2252: uint16(319), - 2253: uint16(319), - 2254: uint16(319), - 2255: uint16(319), - 2256: uint16(319), - 2257: uint16(319), - 2258: uint16(319), - 2259: uint16(319), - 2260: uint16(319), - 2261: uint16(319), - 2262: uint16(319), - 2263: uint16(319), - 2264: uint16(319), - 2265: uint16(319), - 2266: uint16(319), - 2267: uint16(319), - 2268: uint16(319), - 2269: uint16(319), - 2270: uint16(319), - 2271: uint16(319), - 2272: uint16(319), - 2273: uint16(319), - 2274: uint16(319), - 2275: uint16(319), - 2276: uint16(319), - 2277: uint16(319), - 2278: uint16(319), - 2279: uint16(319), - 2280: uint16(319), - 2281: uint16(319), - 2282: uint16(319), - 2283: uint16(319), - 2284: uint16(319), -} -var _yy_shift_ofst = [579]uint16{ - 0: uint16(1648), - 1: uint16(1477), - 2: uint16(1272), + 2084: uint16(143), + 2085: uint16(25), + 2086: uint16(34), + 2087: uint16(75), + 2088: uint16(34), + 2089: uint16(34), + 2090: uint16(75), + 2091: uint16(88), + 2092: uint16(34), + 2093: uint16(86), + 2094: uint16(23), + 2095: uint16(22), + 2096: uint16(34), + 2097: uint16(25), + 2098: uint16(24), + 2099: uint16(34), + 2100: uint16(25), + 2101: uint16(93), + 2102: uint16(23), + 2103: uint16(44), + 2104: uint16(142), + 2105: uint16(23), + 2106: uint16(142), + 2107: uint16(23), + 2108: uint16(23), + 2109: uint16(22), + 2110: uint16(11), + 2111: uint16(25), + 2112: uint16(23), + 2113: uint16(25), + 2114: uint16(23), + 2115: uint16(22), + 2116: uint16(22), + 2117: uint16(22), + 2118: uint16(1), + 2119: uint16(23), + 2120: uint16(23), + 2121: uint16(23), + 2122: uint16(22), + 2123: uint16(22), + 2124: uint16(15), + 2125: uint16(141), + 2126: uint16(141), + 2127: uint16(25), + 2128: uint16(25), + 2129: uint16(1), + 2130: uint16(322), + 2131: uint16(322), + 2132: uint16(322), + 2133: uint16(135), + 2134: uint16(322), + 2135: uint16(322), + 2136: uint16(322), + 2137: uint16(322), + 2138: uint16(322), + 2139: uint16(322), + 2140: uint16(322), + 2141: uint16(141), + 2142: uint16(322), + 2143: uint16(322), + 2144: uint16(322), + 2145: uint16(322), + 2146: uint16(322), + 2147: uint16(322), + 2148: uint16(322), + 2149: uint16(322), + 2150: uint16(322), + 2151: uint16(322), + 2152: uint16(322), + 2153: uint16(322), + 2154: uint16(322), + 2155: uint16(322), + 2156: uint16(322), + 2157: uint16(322), + 2158: uint16(322), + 2159: uint16(322), + 2160: uint16(322), + 2161: uint16(322), + 2162: uint16(322), + 2163: uint16(322), + 2164: uint16(322), + 2165: uint16(322), + 2166: uint16(322), + 2167: uint16(322), + 2168: uint16(322), + 2169: uint16(322), + 2170: uint16(322), + 2171: uint16(322), + 2172: uint16(322), + 2173: uint16(322), + 2174: uint16(322), + 2175: uint16(322), + 2176: uint16(322), + 2177: uint16(322), + 2178: uint16(322), + 2179: uint16(322), + 2180: uint16(322), + 2181: uint16(322), + 2182: uint16(322), + 2183: uint16(322), + 2184: uint16(322), + 2185: uint16(322), + 2186: uint16(322), + 2187: uint16(322), + 2188: uint16(322), + 2189: uint16(322), + 2190: uint16(322), + 2191: uint16(322), + 2192: uint16(322), + 2193: uint16(322), + 2194: uint16(322), + 2195: uint16(322), + 2196: uint16(322), + 2197: uint16(322), + 2198: uint16(322), + 2199: uint16(322), + 2200: uint16(322), + 2201: uint16(322), + 2202: uint16(322), + 2203: uint16(322), + 2204: uint16(322), + 2205: uint16(322), + 2206: uint16(322), + 2207: uint16(322), + 2208: uint16(322), + 2209: uint16(322), + 2210: uint16(322), + 2211: uint16(322), + 2212: uint16(322), + 2213: uint16(322), + 2214: uint16(322), + 2215: uint16(322), + 2216: uint16(322), + 2217: uint16(322), + 2218: uint16(322), + 2219: uint16(322), + 2220: uint16(322), + 2221: uint16(322), + 2222: uint16(322), + 2223: uint16(322), + 2224: uint16(322), + 2225: uint16(322), + 2226: uint16(322), + 2227: uint16(322), + 2228: uint16(322), + 2229: uint16(322), + 2230: uint16(322), + 2231: uint16(322), + 2232: uint16(322), + 2233: uint16(322), + 2234: uint16(322), + 2235: uint16(322), + 2236: uint16(322), + 2237: uint16(322), + 2238: uint16(322), + 2239: uint16(322), + 2240: uint16(322), + 2241: uint16(322), + 2242: uint16(322), + 2243: uint16(322), + 2244: uint16(322), + 2245: uint16(322), + 2246: uint16(322), + 2247: uint16(322), + 2248: uint16(322), + 2249: uint16(322), + 2250: uint16(322), + 2251: uint16(322), + 2252: uint16(322), + 2253: uint16(322), + 2254: uint16(322), + 2255: uint16(322), + 2256: uint16(322), + 2257: uint16(322), + 2258: uint16(322), + 2259: uint16(322), + 2260: uint16(322), + 2261: uint16(322), + 2262: uint16(322), + 2263: uint16(322), + 2264: uint16(322), + 2265: uint16(322), + 2266: uint16(322), + 2267: uint16(322), + 2268: uint16(322), + 2269: uint16(322), + 2270: uint16(322), + 2271: uint16(322), + 2272: uint16(322), + 2273: uint16(322), + 2274: uint16(322), + 2275: uint16(322), + 2276: uint16(322), + 2277: uint16(322), + 2278: uint16(322), + 2279: uint16(322), + 2280: uint16(322), + 2281: uint16(322), + 2282: uint16(322), + 2283: uint16(322), + 2284: uint16(322), + 2285: uint16(322), + 2286: uint16(322), + 2287: uint16(322), + 2288: uint16(322), + 2289: uint16(322), + 2290: uint16(322), + 2291: uint16(322), + 2292: uint16(322), + 2293: uint16(322), + 2294: uint16(322), + 2295: uint16(322), + 2296: uint16(322), + 2297: uint16(322), + 2298: uint16(322), + 2299: uint16(322), + 2300: uint16(322), + 2301: uint16(322), + 2302: uint16(322), + 2303: uint16(322), + 2304: uint16(322), + 2305: uint16(322), + 2306: uint16(322), + 2307: uint16(322), + 2308: uint16(322), + 2309: uint16(322), + 2310: uint16(322), + 2311: uint16(322), + 2312: uint16(322), + 2313: uint16(322), + 2314: uint16(322), + 2315: uint16(322), + 2316: uint16(322), + 2317: uint16(322), + 2318: uint16(322), + 2319: uint16(322), + 2320: uint16(322), + 2321: uint16(322), + 2322: uint16(322), + 2323: uint16(322), + 2324: uint16(322), + 2325: uint16(322), + 2326: uint16(322), + 2327: uint16(322), +} +var _yy_shift_ofst = [583]uint16{ + 0: uint16(1792), + 1: uint16(1588), + 2: uint16(1494), 3: uint16(322), 4: uint16(322), - 5: uint16(1), - 6: uint16(1319), - 7: uint16(1478), - 8: uint16(1491), - 9: uint16(1837), - 10: uint16(1837), - 11: uint16(1837), - 12: uint16(471), - 15: uint16(214), - 16: uint16(1093), - 17: uint16(1837), - 18: uint16(1837), - 19: uint16(1837), - 20: uint16(1837), - 21: uint16(1837), - 22: uint16(1837), - 23: uint16(1837), - 24: uint16(1837), - 25: uint16(1837), - 26: uint16(1837), - 27: uint16(1837), - 28: uint16(1837), - 29: uint16(1837), - 30: uint16(1837), - 31: uint16(271), - 32: uint16(271), - 33: uint16(1219), - 34: uint16(1219), - 35: uint16(216), - 36: uint16(88), - 37: uint16(1), - 38: uint16(1), - 39: uint16(1), - 40: uint16(1), - 41: uint16(1), - 42: uint16(40), - 43: uint16(111), - 44: uint16(258), - 45: uint16(361), - 46: uint16(469), - 47: uint16(512), - 48: uint16(583), - 49: uint16(622), - 50: uint16(693), - 51: uint16(732), - 52: uint16(803), - 53: uint16(842), - 54: uint16(913), - 55: uint16(1073), - 56: uint16(1093), - 57: uint16(1093), - 58: uint16(1093), - 59: uint16(1093), - 60: uint16(1093), - 61: uint16(1093), - 62: uint16(1093), - 63: uint16(1093), - 64: uint16(1093), + 5: uint16(399), + 6: uint16(306), + 7: uint16(1319), + 8: uint16(1339), + 9: uint16(1430), + 10: uint16(1828), + 11: uint16(1828), + 12: uint16(1828), + 13: uint16(580), + 14: uint16(399), + 15: uint16(399), + 16: uint16(399), + 17: uint16(399), + 18: uint16(399), + 21: uint16(214), + 22: uint16(1093), + 23: uint16(1828), + 24: uint16(1828), + 25: uint16(1828), + 26: uint16(1828), + 27: uint16(1828), + 28: uint16(1828), + 29: uint16(1828), + 30: uint16(1828), + 31: uint16(1828), + 32: uint16(1828), + 33: uint16(1828), + 34: uint16(1828), + 35: uint16(1828), + 36: uint16(1828), + 37: uint16(1828), + 38: uint16(1130), + 39: uint16(1130), + 40: uint16(365), + 41: uint16(365), + 42: uint16(55), + 43: uint16(278), + 44: uint16(436), + 45: uint16(713), + 46: uint16(713), + 47: uint16(201), + 48: uint16(201), + 49: uint16(201), + 50: uint16(201), + 51: uint16(40), + 52: uint16(111), + 53: uint16(258), + 54: uint16(361), + 55: uint16(469), + 56: uint16(512), + 57: uint16(583), + 58: uint16(622), + 59: uint16(693), + 60: uint16(732), + 61: uint16(803), + 62: uint16(842), + 63: uint16(913), + 64: uint16(1073), 65: uint16(1093), 66: uint16(1093), 67: uint16(1093), @@ -156774,1505 +158321,1514 @@ var _yy_shift_ofst = [579]uint16{ 71: uint16(1093), 72: uint16(1093), 73: uint16(1093), - 74: uint16(1113), + 74: uint16(1093), 75: uint16(1093), - 76: uint16(1216), - 77: uint16(957), - 78: uint16(957), - 79: uint16(1635), - 80: uint16(1662), - 81: uint16(1777), - 82: uint16(1837), - 83: uint16(1837), - 84: uint16(1837), - 85: uint16(1837), - 86: uint16(1837), - 87: uint16(1837), - 88: uint16(1837), - 89: uint16(1837), - 90: uint16(1837), - 91: uint16(1837), - 92: uint16(1837), - 93: uint16(1837), - 94: uint16(1837), - 95: uint16(1837), - 96: uint16(1837), - 97: uint16(1837), - 98: uint16(1837), - 99: uint16(1837), - 100: uint16(1837), - 101: uint16(1837), - 102: uint16(1837), - 103: uint16(1837), - 104: uint16(1837), - 105: uint16(1837), - 106: uint16(1837), - 107: uint16(1837), - 108: uint16(1837), - 109: uint16(1837), - 110: uint16(1837), - 111: uint16(1837), - 112: uint16(1837), - 113: uint16(1837), - 114: uint16(1837), - 115: uint16(1837), - 116: uint16(1837), - 117: uint16(1837), - 118: uint16(1837), - 119: uint16(1837), - 120: uint16(1837), - 121: uint16(1837), - 122: uint16(1837), - 123: uint16(1837), - 124: uint16(1837), - 125: uint16(1837), - 126: uint16(1837), - 127: uint16(1837), - 128: uint16(1837), - 129: uint16(1837), - 130: uint16(1837), - 131: uint16(137), - 132: uint16(181), - 133: uint16(181), - 134: uint16(181), - 135: uint16(181), - 136: uint16(181), - 137: uint16(181), - 138: uint16(181), - 139: uint16(94), - 140: uint16(430), - 141: uint16(66), - 142: uint16(65), - 143: uint16(112), - 144: uint16(366), - 145: uint16(533), - 146: uint16(533), - 147: uint16(740), - 148: uint16(1257), - 149: uint16(533), - 150: uint16(533), - 151: uint16(79), - 152: uint16(79), - 153: uint16(533), - 154: uint16(412), - 155: uint16(412), - 156: uint16(412), - 157: uint16(77), - 158: uint16(412), - 159: uint16(123), - 160: uint16(113), - 161: uint16(113), - 162: uint16(113), - 163: uint16(22), - 164: uint16(22), - 165: uint16(2100), - 166: uint16(2100), - 167: uint16(328), - 168: uint16(328), - 169: uint16(328), - 170: uint16(239), - 171: uint16(468), - 172: uint16(468), - 173: uint16(468), - 174: uint16(468), - 175: uint16(1015), - 176: uint16(1015), - 177: uint16(409), - 178: uint16(366), - 179: uint16(1187), - 180: uint16(1232), - 181: uint16(533), - 182: uint16(533), - 183: uint16(533), - 184: uint16(533), - 185: uint16(533), - 186: uint16(533), - 187: uint16(533), - 188: uint16(533), - 189: uint16(533), - 190: uint16(533), - 191: uint16(533), - 192: uint16(533), - 193: uint16(533), - 194: uint16(533), - 195: uint16(533), - 196: uint16(533), - 197: uint16(533), - 198: uint16(533), - 199: uint16(533), - 200: uint16(533), - 201: uint16(969), - 202: uint16(621), - 203: uint16(621), - 204: uint16(533), - 205: uint16(642), - 206: uint16(788), - 207: uint16(788), - 208: uint16(1133), - 209: uint16(1133), - 210: uint16(822), - 211: uint16(822), - 212: uint16(67), - 213: uint16(1193), - 214: uint16(2100), - 215: uint16(2100), - 216: uint16(2100), - 217: uint16(2100), - 218: uint16(2100), - 219: uint16(2100), - 220: uint16(2100), - 221: uint16(1307), - 222: uint16(954), - 223: uint16(954), - 224: uint16(585), - 225: uint16(472), - 226: uint16(640), - 227: uint16(387), - 228: uint16(695), - 229: uint16(538), - 230: uint16(541), - 231: uint16(700), - 232: uint16(533), - 233: uint16(533), - 234: uint16(533), - 235: uint16(533), - 236: uint16(533), - 237: uint16(533), - 238: uint16(533), - 239: uint16(533), - 240: uint16(533), - 241: uint16(533), - 242: uint16(222), - 243: uint16(533), - 244: uint16(533), - 245: uint16(533), - 246: uint16(533), - 247: uint16(533), - 248: uint16(533), - 249: uint16(533), - 250: uint16(533), - 251: uint16(533), - 252: uint16(533), - 253: uint16(533), - 254: uint16(533), - 255: uint16(1213), - 256: uint16(1213), - 257: uint16(1213), - 258: uint16(533), - 259: uint16(533), - 260: uint16(533), - 261: uint16(565), - 262: uint16(533), - 263: uint16(533), - 264: uint16(533), - 265: uint16(916), - 266: uint16(1147), - 267: uint16(533), - 268: uint16(533), - 269: uint16(1288), - 270: uint16(533), - 271: uint16(533), - 272: uint16(533), - 273: uint16(533), - 274: uint16(533), - 275: uint16(533), - 276: uint16(533), - 277: uint16(533), - 278: uint16(639), - 279: uint16(1280), - 280: uint16(209), - 281: uint16(1129), - 282: uint16(1129), - 283: uint16(1129), - 284: uint16(1129), - 285: uint16(580), - 286: uint16(209), - 287: uint16(209), - 288: uint16(1209), - 289: uint16(768), - 290: uint16(917), - 291: uint16(649), - 292: uint16(1315), - 293: uint16(1334), - 294: uint16(405), - 295: uint16(1334), - 296: uint16(1383), - 297: uint16(249), - 298: uint16(1315), - 299: uint16(1315), - 300: uint16(249), - 301: uint16(1315), - 302: uint16(405), - 303: uint16(1383), - 304: uint16(1441), - 305: uint16(464), - 306: uint16(1245), - 307: uint16(1417), - 308: uint16(1417), - 309: uint16(1417), - 310: uint16(1323), - 311: uint16(1323), - 312: uint16(1323), - 313: uint16(1323), - 314: uint16(184), - 315: uint16(184), - 316: uint16(1335), - 317: uint16(1476), - 318: uint16(856), - 319: uint16(1482), - 320: uint16(1744), - 321: uint16(1744), - 322: uint16(1665), - 323: uint16(1665), - 324: uint16(1773), - 325: uint16(1773), - 326: uint16(1665), - 327: uint16(1669), - 328: uint16(1671), - 329: uint16(1802), - 330: uint16(1782), - 331: uint16(1809), - 332: uint16(1809), - 333: uint16(1809), - 334: uint16(1809), - 335: uint16(1665), - 336: uint16(1817), - 337: uint16(1690), - 338: uint16(1671), - 339: uint16(1671), - 340: uint16(1690), - 341: uint16(1802), - 342: uint16(1782), - 343: uint16(1690), - 344: uint16(1782), - 345: uint16(1690), - 346: uint16(1665), - 347: uint16(1817), - 348: uint16(1693), - 349: uint16(1791), - 350: uint16(1665), - 351: uint16(1817), - 352: uint16(1832), - 353: uint16(1665), - 354: uint16(1817), - 355: uint16(1665), - 356: uint16(1817), - 357: uint16(1832), - 358: uint16(1752), - 359: uint16(1752), - 360: uint16(1752), - 361: uint16(1805), - 362: uint16(1850), - 363: uint16(1850), - 364: uint16(1832), - 365: uint16(1752), - 366: uint16(1749), - 367: uint16(1752), - 368: uint16(1805), - 369: uint16(1752), - 370: uint16(1752), - 371: uint16(1713), - 372: uint16(1858), - 373: uint16(1775), - 374: uint16(1775), - 375: uint16(1832), - 376: uint16(1665), - 377: uint16(1799), - 378: uint16(1799), - 379: uint16(1823), - 380: uint16(1823), - 381: uint16(1761), - 382: uint16(1765), - 383: uint16(1890), - 384: uint16(1665), - 385: uint16(1757), - 386: uint16(1761), - 387: uint16(1771), - 388: uint16(1774), - 389: uint16(1690), - 390: uint16(1894), - 391: uint16(1913), - 392: uint16(1913), - 393: uint16(1929), - 394: uint16(1929), - 395: uint16(1929), - 396: uint16(2100), - 397: uint16(2100), - 398: uint16(2100), - 399: uint16(2100), - 400: uint16(2100), - 401: uint16(2100), - 402: uint16(2100), - 403: uint16(2100), - 404: uint16(2100), - 405: uint16(2100), - 406: uint16(2100), - 407: uint16(2100), - 408: uint16(2100), - 409: uint16(2100), - 410: uint16(2100), - 411: uint16(207), - 412: uint16(1220), - 413: uint16(331), - 414: uint16(620), - 415: uint16(967), - 416: uint16(806), - 417: uint16(1074), - 418: uint16(1499), - 419: uint16(1432), - 420: uint16(1463), - 421: uint16(1479), - 422: uint16(1419), - 423: uint16(1422), - 424: uint16(1557), - 425: uint16(1512), - 426: uint16(1598), - 427: uint16(1599), - 428: uint16(1644), - 429: uint16(1645), - 430: uint16(1654), - 431: uint16(1660), - 432: uint16(1555), - 433: uint16(1505), - 434: uint16(1684), - 435: uint16(1462), - 436: uint16(1670), - 437: uint16(1563), - 438: uint16(1619), - 439: uint16(1593), - 440: uint16(1676), - 441: uint16(1679), - 442: uint16(1613), - 443: uint16(1680), - 444: uint16(1554), - 445: uint16(1558), - 446: uint16(1689), - 447: uint16(1692), - 448: uint16(1605), - 449: uint16(1589), - 450: uint16(1955), - 451: uint16(1959), - 452: uint16(1941), - 453: uint16(1803), - 454: uint16(1950), - 455: uint16(1951), - 456: uint16(1945), - 457: uint16(1946), - 458: uint16(1831), - 459: uint16(1820), - 460: uint16(1842), - 461: uint16(1948), - 462: uint16(1948), - 463: uint16(1952), - 464: uint16(1833), - 465: uint16(1954), - 466: uint16(1834), - 467: uint16(1961), - 468: uint16(1978), - 469: uint16(1838), - 470: uint16(1851), - 471: uint16(1948), - 472: uint16(1852), - 473: uint16(1922), - 474: uint16(1947), - 475: uint16(1948), - 476: uint16(1836), - 477: uint16(1932), - 478: uint16(1935), - 479: uint16(1936), - 480: uint16(1942), - 481: uint16(1866), - 482: uint16(1881), - 483: uint16(1964), - 484: uint16(1859), - 485: uint16(1998), - 486: uint16(1996), - 487: uint16(1980), - 488: uint16(1888), - 489: uint16(1843), - 490: uint16(1937), - 491: uint16(1981), - 492: uint16(1939), - 493: uint16(1933), - 494: uint16(1968), - 495: uint16(1869), - 496: uint16(1896), - 497: uint16(1988), - 498: uint16(1993), - 499: uint16(1995), - 500: uint16(1884), - 501: uint16(1891), - 502: uint16(1997), - 503: uint16(1953), - 504: uint16(1999), - 505: uint16(2000), - 506: uint16(1994), - 507: uint16(2001), - 508: uint16(1957), - 509: uint16(1966), - 510: uint16(2002), - 511: uint16(1931), - 512: uint16(1990), - 513: uint16(2006), - 514: uint16(1962), - 515: uint16(2003), - 516: uint16(2007), - 517: uint16(2004), - 518: uint16(1882), - 519: uint16(2010), - 520: uint16(2011), - 521: uint16(2012), - 522: uint16(2008), - 523: uint16(2013), - 524: uint16(2015), - 525: uint16(1944), - 526: uint16(1898), - 527: uint16(2019), - 528: uint16(2020), - 529: uint16(1928), - 530: uint16(2014), - 531: uint16(2023), - 532: uint16(1903), - 533: uint16(2022), - 534: uint16(2016), - 535: uint16(2017), - 536: uint16(2018), - 537: uint16(2021), - 538: uint16(1965), - 539: uint16(1974), - 540: uint16(1970), - 541: uint16(2024), - 542: uint16(1979), - 543: uint16(1967), - 544: uint16(2025), - 545: uint16(2034), - 546: uint16(2036), - 547: uint16(2037), - 548: uint16(2038), - 549: uint16(2039), - 550: uint16(2028), - 551: uint16(1923), - 552: uint16(1924), - 553: uint16(2044), - 554: uint16(2022), - 555: uint16(2046), - 556: uint16(2047), - 557: uint16(2048), - 558: uint16(2049), - 559: uint16(2050), - 560: uint16(2051), - 561: uint16(2054), - 562: uint16(2062), - 563: uint16(2055), - 564: uint16(2056), - 565: uint16(2057), - 566: uint16(2058), - 567: uint16(2060), - 568: uint16(2061), - 569: uint16(2059), - 570: uint16(1956), - 571: uint16(1938), - 572: uint16(1949), - 573: uint16(1958), - 574: uint16(2063), - 575: uint16(2064), - 576: uint16(2070), - 577: uint16(2085), - 578: uint16(2088), -} -var _yy_reduce_ofst = [411]int16{ - 0: int16(-int32(125)), - 1: int16(733), - 2: int16(789), - 3: int16(241), - 4: int16(293), - 5: int16(-int32(123)), - 6: int16(-int32(193)), - 7: int16(-int32(191)), - 8: int16(-int32(183)), - 9: int16(-int32(187)), - 10: int16(166), - 11: int16(238), - 12: int16(133), - 13: int16(-int32(207)), - 14: int16(-int32(199)), - 15: int16(-int32(267)), - 16: int16(-int32(176)), - 17: int16(-int32(6)), - 18: int16(204), - 19: int16(489), - 20: int16(576), - 21: int16(598), - 22: int16(-int32(175)), - 23: int16(686), - 24: int16(860), - 25: int16(615), - 26: int16(725), - 27: int16(1014), - 28: int16(778), - 29: int16(781), - 30: int16(857), - 31: int16(616), - 32: int16(887), - 33: int16(87), - 34: int16(240), - 35: int16(-int32(192)), - 36: int16(408), - 37: int16(626), - 38: int16(796), - 39: int16(843), - 40: int16(854), - 41: int16(1004), - 42: int16(-int32(271)), - 43: int16(-int32(271)), - 44: int16(-int32(271)), - 45: int16(-int32(271)), - 46: int16(-int32(271)), - 47: int16(-int32(271)), - 48: int16(-int32(271)), - 49: int16(-int32(271)), - 50: int16(-int32(271)), - 51: int16(-int32(271)), - 52: int16(-int32(271)), - 53: int16(-int32(271)), - 54: int16(-int32(271)), - 55: int16(-int32(271)), - 56: int16(-int32(271)), - 57: int16(-int32(271)), - 58: int16(-int32(271)), - 59: int16(-int32(271)), - 60: int16(-int32(271)), - 61: int16(-int32(271)), - 62: int16(-int32(271)), - 63: int16(-int32(271)), - 64: int16(-int32(271)), - 65: int16(-int32(271)), - 66: int16(-int32(271)), - 67: int16(-int32(271)), - 68: int16(-int32(271)), - 69: int16(-int32(271)), - 70: int16(-int32(271)), - 71: int16(-int32(271)), - 72: int16(-int32(271)), - 73: int16(-int32(271)), - 74: int16(-int32(271)), - 75: int16(-int32(271)), - 76: int16(-int32(271)), - 77: int16(-int32(271)), - 78: int16(-int32(271)), - 79: int16(80), - 80: int16(83), - 81: int16(313), - 82: int16(886), - 83: int16(888), - 84: int16(918), - 85: int16(938), - 86: int16(1021), - 87: int16(1034), - 88: int16(1036), - 89: int16(1141), - 90: int16(1159), - 91: int16(1163), - 92: int16(1166), - 93: int16(1168), - 94: int16(1170), - 95: int16(1176), - 96: int16(1178), - 97: int16(1180), - 98: int16(1184), - 99: int16(1196), - 100: int16(1198), - 101: int16(1205), - 102: int16(1215), - 103: int16(1225), - 104: int16(1227), - 105: int16(1236), - 106: int16(1252), - 107: int16(1254), - 108: int16(1264), - 109: int16(1303), - 110: int16(1309), - 111: int16(1312), - 112: int16(1322), - 113: int16(1325), - 114: int16(1328), - 115: int16(1337), - 116: int16(1340), - 117: int16(1343), - 118: int16(1353), - 119: int16(1371), - 120: int16(1373), - 121: int16(1384), - 122: int16(1386), - 123: int16(1411), - 124: int16(1413), - 125: int16(1420), - 126: int16(1424), - 127: int16(1426), - 128: int16(1458), - 129: int16(1470), - 130: int16(1473), - 131: int16(-int32(271)), - 132: int16(-int32(271)), - 133: int16(-int32(271)), - 134: int16(-int32(271)), - 135: int16(-int32(271)), - 136: int16(-int32(271)), - 137: int16(-int32(271)), - 138: int16(-int32(271)), - 139: int16(-int32(271)), - 140: int16(-int32(271)), - 141: int16(-int32(271)), - 142: int16(138), - 143: int16(459), - 144: int16(396), - 145: int16(-int32(158)), - 146: int16(470), - 147: int16(302), - 148: int16(-int32(212)), - 149: int16(521), - 150: int16(201), - 151: int16(-int32(195)), - 152: int16(-int32(92)), - 153: int16(559), - 154: int16(630), - 155: int16(632), - 156: int16(630), - 157: int16(-int32(271)), - 158: int16(632), - 159: int16(901), - 160: int16(63), - 161: int16(407), - 162: int16(670), - 163: int16(-int32(271)), - 164: int16(-int32(271)), - 165: int16(-int32(271)), - 166: int16(-int32(271)), - 167: int16(161), - 168: int16(161), - 169: int16(161), - 170: int16(251), - 171: int16(335), - 172: int16(847), - 173: int16(979), - 174: int16(1097), - 175: int16(537), - 176: int16(588), - 177: int16(618), - 178: int16(628), - 179: int16(688), - 180: int16(688), - 181: int16(-int32(166)), - 182: int16(-int32(161)), - 183: int16(674), - 184: int16(787), - 185: int16(794), - 186: int16(799), - 187: int16(852), - 188: int16(996), - 189: int16(-int32(122)), - 190: int16(837), - 191: int16(-int32(120)), - 192: int16(1018), - 193: int16(1035), - 194: int16(415), - 195: int16(1047), - 196: int16(1001), - 197: int16(958), - 198: int16(1082), - 199: int16(400), - 200: int16(1099), - 201: int16(779), - 202: int16(1137), - 203: int16(1142), - 204: int16(263), - 205: int16(1083), - 206: int16(1145), - 207: int16(1150), - 208: int16(1041), - 209: int16(1139), - 210: int16(965), - 211: int16(1050), - 212: int16(362), - 213: int16(849), - 214: int16(752), - 215: int16(629), - 216: int16(675), - 217: int16(1162), - 218: int16(1173), - 219: int16(1090), - 220: int16(1195), - 221: int16(-int32(194)), - 222: int16(56), - 223: int16(185), - 224: int16(-int32(135)), - 225: int16(232), - 226: int16(522), - 227: int16(560), - 228: int16(571), - 229: int16(601), - 230: int16(617), - 231: int16(669), - 232: int16(683), - 233: int16(711), - 234: int16(850), - 235: int16(893), - 236: int16(1000), - 237: int16(1040), - 238: int16(1049), - 239: int16(1081), - 240: int16(1087), - 241: int16(1101), - 242: int16(392), - 243: int16(1114), - 244: int16(1123), - 245: int16(1155), - 246: int16(1161), - 247: int16(1175), - 248: int16(1271), - 249: int16(1293), - 250: int16(1299), - 251: int16(1330), - 252: int16(1339), - 253: int16(1342), - 254: int16(1347), - 255: int16(593), - 256: int16(1282), - 257: int16(1286), - 258: int16(1350), - 259: int16(1359), - 260: int16(1368), - 261: int16(1314), - 262: int16(1480), - 263: int16(1483), - 264: int16(1507), - 265: int16(1085), - 266: int16(1338), - 267: int16(1526), - 268: int16(1527), - 269: int16(1487), - 270: int16(1531), - 271: int16(560), - 272: int16(1532), - 273: int16(1534), - 274: int16(1535), - 275: int16(1538), - 276: int16(1539), - 277: int16(1541), - 278: int16(1448), - 279: int16(1450), - 280: int16(1496), - 281: int16(1484), - 282: int16(1485), - 283: int16(1489), - 284: int16(1490), - 285: int16(1314), - 286: int16(1496), - 287: int16(1496), - 288: int16(1504), - 289: int16(1536), - 290: int16(1564), - 291: int16(1451), - 292: int16(1486), - 293: int16(1492), - 294: int16(1509), - 295: int16(1493), - 296: int16(1465), - 297: int16(1515), - 298: int16(1494), - 299: int16(1495), - 300: int16(1517), - 301: int16(1500), - 302: int16(1519), - 303: int16(1474), - 304: int16(1550), - 305: int16(1543), - 306: int16(1548), - 307: int16(1556), - 308: int16(1565), - 309: int16(1566), - 310: int16(1518), - 311: int16(1523), - 312: int16(1542), - 313: int16(1544), - 314: int16(1525), - 315: int16(1545), - 316: int16(1513), - 317: int16(1553), - 318: int16(1552), - 319: int16(1604), - 320: int16(1508), - 321: int16(1510), - 322: int16(1608), - 323: int16(1609), - 324: int16(1520), - 325: int16(1528), - 326: int16(1612), - 327: int16(1540), - 328: int16(1559), - 329: int16(1560), - 330: int16(1592), - 331: int16(1591), - 332: int16(1595), - 333: int16(1596), - 334: int16(1597), - 335: int16(1629), - 336: int16(1638), - 337: int16(1594), - 338: int16(1569), - 339: int16(1570), - 340: int16(1600), - 341: int16(1568), - 342: int16(1610), - 343: int16(1601), - 344: int16(1611), - 345: int16(1603), - 346: int16(1643), - 347: int16(1651), - 348: int16(1562), - 349: int16(1571), - 350: int16(1655), - 351: int16(1659), - 352: int16(1640), - 353: int16(1663), - 354: int16(1666), - 355: int16(1664), - 356: int16(1667), - 357: int16(1641), - 358: int16(1650), - 359: int16(1652), - 360: int16(1653), - 361: int16(1647), - 362: int16(1656), - 363: int16(1657), - 364: int16(1658), - 365: int16(1668), - 366: int16(1672), - 367: int16(1681), - 368: int16(1649), - 369: int16(1682), - 370: int16(1683), - 371: int16(1573), - 372: int16(1582), - 373: int16(1607), - 374: int16(1615), - 375: int16(1685), - 376: int16(1702), - 377: int16(1586), - 378: int16(1587), - 379: int16(1642), - 380: int16(1646), - 381: int16(1673), - 382: int16(1675), - 383: int16(1636), - 384: int16(1714), - 385: int16(1637), - 386: int16(1677), - 387: int16(1674), - 388: int16(1678), - 389: int16(1694), - 390: int16(1719), - 391: int16(1734), - 392: int16(1735), - 393: int16(1746), - 394: int16(1747), - 395: int16(1750), - 396: int16(1633), - 397: int16(1661), + 76: uint16(1093), + 77: uint16(1093), + 78: uint16(1093), + 79: uint16(1093), + 80: uint16(1093), + 81: uint16(1093), + 82: uint16(1093), + 83: uint16(1113), + 84: uint16(1093), + 85: uint16(1216), + 86: uint16(957), + 87: uint16(957), + 88: uint16(1523), + 89: uint16(1602), + 90: uint16(1674), + 91: uint16(1828), + 92: uint16(1828), + 93: uint16(1828), + 94: uint16(1828), + 95: uint16(1828), + 96: uint16(1828), + 97: uint16(1828), + 98: uint16(1828), + 99: uint16(1828), + 100: uint16(1828), + 101: uint16(1828), + 102: uint16(1828), + 103: uint16(1828), + 104: uint16(1828), + 105: uint16(1828), + 106: uint16(1828), + 107: uint16(1828), + 108: uint16(1828), + 109: uint16(1828), + 110: uint16(1828), + 111: uint16(1828), + 112: uint16(1828), + 113: uint16(1828), + 114: uint16(1828), + 115: uint16(1828), + 116: uint16(1828), + 117: uint16(1828), + 118: uint16(1828), + 119: uint16(1828), + 120: uint16(1828), + 121: uint16(1828), + 122: uint16(1828), + 123: uint16(1828), + 124: uint16(1828), + 125: uint16(1828), + 126: uint16(1828), + 127: uint16(1828), + 128: uint16(1828), + 129: uint16(1828), + 130: uint16(1828), + 131: uint16(1828), + 132: uint16(1828), + 133: uint16(1828), + 134: uint16(1828), + 135: uint16(1828), + 136: uint16(1828), + 137: uint16(1828), + 138: uint16(1828), + 139: uint16(1828), + 140: uint16(137), + 141: uint16(181), + 142: uint16(181), + 143: uint16(181), + 144: uint16(181), + 145: uint16(181), + 146: uint16(181), + 147: uint16(181), + 148: uint16(96), + 149: uint16(222), + 150: uint16(143), + 151: uint16(477), + 152: uint16(713), + 153: uint16(1133), + 154: uint16(1268), + 155: uint16(713), + 156: uint16(713), + 157: uint16(79), + 158: uint16(79), + 159: uint16(713), + 160: uint16(770), + 161: uint16(83), + 162: uint16(65), + 163: uint16(65), + 164: uint16(65), + 165: uint16(288), + 166: uint16(162), + 167: uint16(162), + 168: uint16(2142), + 169: uint16(2142), + 170: uint16(696), + 171: uint16(696), + 172: uint16(696), + 173: uint16(238), + 174: uint16(474), + 175: uint16(474), + 176: uint16(474), + 177: uint16(474), + 178: uint16(1217), + 179: uint16(1217), + 180: uint16(678), + 181: uint16(477), + 182: uint16(324), + 183: uint16(398), + 184: uint16(713), + 185: uint16(713), + 186: uint16(713), + 187: uint16(713), + 188: uint16(713), + 189: uint16(713), + 190: uint16(713), + 191: uint16(713), + 192: uint16(713), + 193: uint16(713), + 194: uint16(713), + 195: uint16(713), + 196: uint16(713), + 197: uint16(713), + 198: uint16(713), + 199: uint16(713), + 200: uint16(713), + 201: uint16(713), + 202: uint16(713), + 203: uint16(1220), + 204: uint16(366), + 205: uint16(366), + 206: uint16(713), + 207: uint16(917), + 208: uint16(283), + 209: uint16(283), + 210: uint16(434), + 211: uint16(434), + 212: uint16(605), + 213: uint16(605), + 214: uint16(1298), + 215: uint16(2142), + 216: uint16(2142), + 217: uint16(2142), + 218: uint16(2142), + 219: uint16(2142), + 220: uint16(2142), + 221: uint16(2142), + 222: uint16(1179), + 223: uint16(1157), + 224: uint16(1157), + 225: uint16(487), + 226: uint16(527), + 227: uint16(585), + 228: uint16(645), + 229: uint16(749), + 230: uint16(914), + 231: uint16(968), + 232: uint16(752), + 233: uint16(713), + 234: uint16(713), + 235: uint16(713), + 236: uint16(713), + 237: uint16(713), + 238: uint16(713), + 239: uint16(713), + 240: uint16(713), + 241: uint16(713), + 242: uint16(713), + 243: uint16(303), + 244: uint16(713), + 245: uint16(713), + 246: uint16(713), + 247: uint16(713), + 248: uint16(713), + 249: uint16(713), + 250: uint16(713), + 251: uint16(713), + 252: uint16(713), + 253: uint16(713), + 254: uint16(713), + 255: uint16(713), + 256: uint16(797), + 257: uint16(797), + 258: uint16(797), + 259: uint16(713), + 260: uint16(713), + 261: uint16(713), + 262: uint16(959), + 263: uint16(713), + 264: uint16(713), + 265: uint16(713), + 266: uint16(1169), + 267: uint16(1271), + 268: uint16(713), + 269: uint16(713), + 270: uint16(1330), + 271: uint16(713), + 272: uint16(713), + 273: uint16(713), + 274: uint16(713), + 275: uint16(713), + 276: uint16(713), + 277: uint16(713), + 278: uint16(713), + 279: uint16(629), + 280: uint16(7), + 281: uint16(91), + 282: uint16(876), + 283: uint16(876), + 284: uint16(876), + 285: uint16(876), + 286: uint16(953), + 287: uint16(91), + 288: uint16(91), + 289: uint16(1246), + 290: uint16(1065), + 291: uint16(1106), + 292: uint16(1374), + 293: uint16(1329), + 294: uint16(1348), + 295: uint16(468), + 296: uint16(1348), + 297: uint16(1394), + 298: uint16(785), + 299: uint16(1329), + 300: uint16(1329), + 301: uint16(785), + 302: uint16(1329), + 303: uint16(468), + 304: uint16(1394), + 305: uint16(859), + 306: uint16(854), + 307: uint16(1402), + 308: uint16(1449), + 309: uint16(1449), + 310: uint16(1449), + 311: uint16(1173), + 312: uint16(1173), + 313: uint16(1173), + 314: uint16(1173), + 315: uint16(1355), + 316: uint16(1355), + 317: uint16(1030), + 318: uint16(1341), + 319: uint16(405), + 320: uint16(1230), + 321: uint16(1795), + 322: uint16(1795), + 323: uint16(1711), + 324: uint16(1711), + 325: uint16(1829), + 326: uint16(1829), + 327: uint16(1711), + 328: uint16(1717), + 329: uint16(1719), + 330: uint16(1850), + 331: uint16(1833), + 332: uint16(1860), + 333: uint16(1860), + 334: uint16(1860), + 335: uint16(1860), + 336: uint16(1711), + 337: uint16(1868), + 338: uint16(1740), + 339: uint16(1719), + 340: uint16(1719), + 341: uint16(1740), + 342: uint16(1850), + 343: uint16(1833), + 344: uint16(1740), + 345: uint16(1833), + 346: uint16(1740), + 347: uint16(1711), + 348: uint16(1868), + 349: uint16(1745), + 350: uint16(1843), + 351: uint16(1711), + 352: uint16(1868), + 353: uint16(1887), + 354: uint16(1711), + 355: uint16(1868), + 356: uint16(1711), + 357: uint16(1868), + 358: uint16(1887), + 359: uint16(1801), + 360: uint16(1801), + 361: uint16(1801), + 362: uint16(1855), + 363: uint16(1900), + 364: uint16(1900), + 365: uint16(1887), + 366: uint16(1801), + 367: uint16(1797), + 368: uint16(1801), + 369: uint16(1855), + 370: uint16(1801), + 371: uint16(1801), + 372: uint16(1761), + 373: uint16(1912), + 374: uint16(1830), + 375: uint16(1830), + 376: uint16(1887), + 377: uint16(1711), + 378: uint16(1862), + 379: uint16(1862), + 380: uint16(1875), + 381: uint16(1875), + 382: uint16(1810), + 383: uint16(1815), + 384: uint16(1940), + 385: uint16(1711), + 386: uint16(1807), + 387: uint16(1810), + 388: uint16(1821), + 389: uint16(1823), + 390: uint16(1740), + 391: uint16(1945), + 392: uint16(1963), + 393: uint16(1963), + 394: uint16(1974), + 395: uint16(1974), + 396: uint16(1974), + 397: uint16(2142), + 398: uint16(2142), + 399: uint16(2142), + 400: uint16(2142), + 401: uint16(2142), + 402: uint16(2142), + 403: uint16(2142), + 404: uint16(2142), + 405: uint16(2142), + 406: uint16(2142), + 407: uint16(2142), + 408: uint16(2142), + 409: uint16(2142), + 410: uint16(2142), + 411: uint16(2142), + 412: uint16(20), + 413: uint16(1224), + 414: uint16(256), + 415: uint16(1111), + 416: uint16(1115), + 417: uint16(1114), + 418: uint16(1192), + 419: uint16(1496), + 420: uint16(1424), + 421: uint16(1505), + 422: uint16(1427), + 423: uint16(355), + 424: uint16(1383), + 425: uint16(1537), + 426: uint16(1506), + 427: uint16(1538), + 428: uint16(1553), + 429: uint16(1583), + 430: uint16(1584), + 431: uint16(1591), + 432: uint16(1625), + 433: uint16(541), + 434: uint16(1445), + 435: uint16(1562), + 436: uint16(1450), + 437: uint16(1572), + 438: uint16(1515), + 439: uint16(1428), + 440: uint16(1532), + 441: uint16(1592), + 442: uint16(1629), + 443: uint16(1520), + 444: uint16(1630), + 445: uint16(1639), + 446: uint16(1510), + 447: uint16(1544), + 448: uint16(1662), + 449: uint16(1675), + 450: uint16(1551), + 451: uint16(48), + 452: uint16(1996), + 453: uint16(2001), + 454: uint16(1983), + 455: uint16(1844), + 456: uint16(1993), + 457: uint16(1994), + 458: uint16(1986), + 459: uint16(1989), + 460: uint16(1874), + 461: uint16(1863), + 462: uint16(1885), + 463: uint16(1991), + 464: uint16(1991), + 465: uint16(1995), + 466: uint16(1876), + 467: uint16(1997), + 468: uint16(1877), + 469: uint16(2004), + 470: uint16(2021), + 471: uint16(1881), + 472: uint16(1894), + 473: uint16(1991), + 474: uint16(1895), + 475: uint16(1965), + 476: uint16(1990), + 477: uint16(1991), + 478: uint16(1878), + 479: uint16(1975), + 480: uint16(1977), + 481: uint16(1978), + 482: uint16(1979), + 483: uint16(1903), + 484: uint16(1918), + 485: uint16(2002), + 486: uint16(1896), + 487: uint16(2034), + 488: uint16(2033), + 489: uint16(2017), + 490: uint16(1925), + 491: uint16(1880), + 492: uint16(1976), + 493: uint16(2018), + 494: uint16(1980), + 495: uint16(1967), + 496: uint16(2005), + 497: uint16(1904), + 498: uint16(1932), + 499: uint16(2025), + 500: uint16(2030), + 501: uint16(2032), + 502: uint16(1921), + 503: uint16(1928), + 504: uint16(2035), + 505: uint16(1987), + 506: uint16(2036), + 507: uint16(2037), + 508: uint16(2038), + 509: uint16(2040), + 510: uint16(1988), + 511: uint16(2006), + 512: uint16(2039), + 513: uint16(1960), + 514: uint16(2041), + 515: uint16(2042), + 516: uint16(1999), + 517: uint16(2023), + 518: uint16(2044), + 519: uint16(2043), + 520: uint16(1919), + 521: uint16(2048), + 522: uint16(2049), + 523: uint16(2050), + 524: uint16(2046), + 525: uint16(2051), + 526: uint16(2053), + 527: uint16(1981), + 528: uint16(1935), + 529: uint16(2056), + 530: uint16(2057), + 531: uint16(1966), + 532: uint16(2047), + 533: uint16(2061), + 534: uint16(1941), + 535: uint16(2060), + 536: uint16(2052), + 537: uint16(2054), + 538: uint16(2055), + 539: uint16(2058), + 540: uint16(2003), + 541: uint16(2012), + 542: uint16(2007), + 543: uint16(2059), + 544: uint16(2015), + 545: uint16(2008), + 546: uint16(2062), + 547: uint16(2071), + 548: uint16(2073), + 549: uint16(2074), + 550: uint16(2072), + 551: uint16(2075), + 552: uint16(2065), + 553: uint16(1962), + 554: uint16(1964), + 555: uint16(2079), + 556: uint16(2060), + 557: uint16(2082), + 558: uint16(2084), + 559: uint16(2085), + 560: uint16(2087), + 561: uint16(2086), + 562: uint16(2089), + 563: uint16(2088), + 564: uint16(2091), + 565: uint16(2093), + 566: uint16(2099), + 567: uint16(2094), + 568: uint16(2095), + 569: uint16(2096), + 570: uint16(2097), + 571: uint16(2100), + 572: uint16(2101), + 573: uint16(2102), + 574: uint16(1998), + 575: uint16(1984), + 576: uint16(1985), + 577: uint16(2000), + 578: uint16(2103), + 579: uint16(2098), + 580: uint16(2109), + 581: uint16(2117), + 582: uint16(2128), +} +var _yy_reduce_ofst = [412]int16{ + 0: int16(-int32(71)), + 1: int16(194), + 2: int16(343), + 3: int16(835), + 4: int16(-int32(180)), + 5: int16(-int32(177)), + 6: int16(838), + 7: int16(-int32(194)), + 8: int16(-int32(188)), + 9: int16(-int32(185)), + 10: int16(-int32(183)), + 11: int16(82), + 12: int16(183), + 13: int16(-int32(65)), + 14: int16(133), + 15: int16(245), + 16: int16(346), + 17: int16(407), + 18: int16(458), + 19: int16(-int32(178)), + 20: int16(75), + 21: int16(-int32(275)), + 22: int16(-int32(4)), + 23: int16(310), + 24: int16(312), + 25: int16(489), + 26: int16(575), + 27: int16(596), + 28: int16(463), + 29: int16(686), + 30: int16(707), + 31: int16(725), + 32: int16(780), + 33: int16(1098), + 34: int16(856), + 35: int16(778), + 36: int16(1059), + 37: int16(1090), + 38: int16(708), + 39: int16(887), + 40: int16(86), + 41: int16(448), + 42: int16(980), + 43: int16(630), + 44: int16(680), + 45: int16(681), + 46: int16(684), + 47: int16(796), + 48: int16(801), + 49: int16(796), + 50: int16(801), + 51: int16(-int32(261)), + 52: int16(-int32(261)), + 53: int16(-int32(261)), + 54: int16(-int32(261)), + 55: int16(-int32(261)), + 56: int16(-int32(261)), + 57: int16(-int32(261)), + 58: int16(-int32(261)), + 59: int16(-int32(261)), + 60: int16(-int32(261)), + 61: int16(-int32(261)), + 62: int16(-int32(261)), + 63: int16(-int32(261)), + 64: int16(-int32(261)), + 65: int16(-int32(261)), + 66: int16(-int32(261)), + 67: int16(-int32(261)), + 68: int16(-int32(261)), + 69: int16(-int32(261)), + 70: int16(-int32(261)), + 71: int16(-int32(261)), + 72: int16(-int32(261)), + 73: int16(-int32(261)), + 74: int16(-int32(261)), + 75: int16(-int32(261)), + 76: int16(-int32(261)), + 77: int16(-int32(261)), + 78: int16(-int32(261)), + 79: int16(-int32(261)), + 80: int16(-int32(261)), + 81: int16(-int32(261)), + 82: int16(-int32(261)), + 83: int16(-int32(261)), + 84: int16(-int32(261)), + 85: int16(-int32(261)), + 86: int16(-int32(261)), + 87: int16(-int32(261)), + 88: int16(391), + 89: int16(886), + 90: int16(888), + 91: int16(1013), + 92: int16(1016), + 93: int16(1081), + 94: int16(1087), + 95: int16(1151), + 96: int16(1159), + 97: int16(1177), + 98: int16(1185), + 99: int16(1188), + 100: int16(1190), + 101: int16(1194), + 102: int16(1197), + 103: int16(1203), + 104: int16(1247), + 105: int16(1260), + 106: int16(1264), + 107: int16(1267), + 108: int16(1269), + 109: int16(1273), + 110: int16(1315), + 111: int16(1322), + 112: int16(1335), + 113: int16(1337), + 114: int16(1356), + 115: int16(1362), + 116: int16(1418), + 117: int16(1425), + 118: int16(1453), + 119: int16(1457), + 120: int16(1465), + 121: int16(1473), + 122: int16(1487), + 123: int16(1495), + 124: int16(1507), + 125: int16(1517), + 126: int16(1521), + 127: int16(1534), + 128: int16(1543), + 129: int16(1546), + 130: int16(1549), + 131: int16(1552), + 132: int16(1554), + 133: int16(1560), + 134: int16(1581), + 135: int16(1590), + 136: int16(1593), + 137: int16(1595), + 138: int16(1621), + 139: int16(1623), + 140: int16(-int32(261)), + 141: int16(-int32(261)), + 142: int16(-int32(261)), + 143: int16(-int32(261)), + 144: int16(-int32(261)), + 145: int16(-int32(261)), + 146: int16(-int32(261)), + 147: int16(-int32(261)), + 148: int16(-int32(261)), + 149: int16(-int32(261)), + 150: int16(-int32(261)), + 151: int16(-int32(186)), + 152: int16(-int32(117)), + 153: int16(260), + 154: int16(263), + 155: int16(460), + 156: int16(631), + 157: int16(-int32(74)), + 158: int16(497), + 159: int16(-int32(181)), + 160: int16(-int32(261)), + 161: int16(939), + 162: int16(176), + 163: int16(274), + 164: int16(338), + 165: int16(676), + 166: int16(-int32(261)), + 167: int16(-int32(261)), + 168: int16(-int32(261)), + 169: int16(-int32(261)), + 170: int16(-int32(212)), + 171: int16(-int32(212)), + 172: int16(-int32(212)), + 173: int16(-int32(184)), + 174: int16(149), + 175: int16(777), + 176: int16(1061), + 177: int16(1103), + 178: int16(265), + 179: int16(419), + 180: int16(-int32(254)), + 181: int16(670), + 182: int16(677), + 183: int16(677), + 184: int16(-int32(11)), + 185: int16(-int32(129)), + 186: int16(184), + 187: int16(488), + 188: int16(736), + 189: int16(789), + 190: int16(805), + 191: int16(844), + 192: int16(403), + 193: int16(529), + 194: int16(579), + 195: int16(668), + 196: int16(783), + 197: int16(841), + 198: int16(1158), + 199: int16(1112), + 200: int16(806), + 201: int16(861), + 202: int16(1095), + 203: int16(846), + 204: int16(839), + 205: int16(1031), + 206: int16(-int32(189)), + 207: int16(1077), + 208: int16(1080), + 209: int16(1116), + 210: int16(1084), + 211: int16(1156), + 212: int16(1139), + 213: int16(1221), + 214: int16(46), + 215: int16(1099), + 216: int16(1037), + 217: int16(1118), + 218: int16(1171), + 219: int16(1214), + 220: int16(1210), + 221: int16(1258), + 222: int16(-int32(210)), + 223: int16(-int32(190)), + 224: int16(-int32(176)), + 225: int16(-int32(115)), + 226: int16(117), + 227: int16(262), + 228: int16(376), + 229: int16(490), + 230: int16(511), + 231: int16(520), + 232: int16(618), + 233: int16(639), + 234: int16(743), + 235: int16(901), + 236: int16(907), + 237: int16(958), + 238: int16(1014), + 239: int16(1055), + 240: int16(1108), + 241: int16(1193), + 242: int16(1244), + 243: int16(720), + 244: int16(1248), + 245: int16(1277), + 246: int16(1324), + 247: int16(1347), + 248: int16(1417), + 249: int16(1431), + 250: int16(1432), + 251: int16(1440), + 252: int16(1451), + 253: int16(1452), + 254: int16(1463), + 255: int16(1478), + 256: int16(1286), + 257: int16(1350), + 258: int16(1369), + 259: int16(1490), + 260: int16(1498), + 261: int16(1501), + 262: int16(773), + 263: int16(1509), + 264: int16(1513), + 265: int16(1528), + 266: int16(1292), + 267: int16(1367), + 268: int16(1535), + 269: int16(1536), + 270: int16(1477), + 271: int16(1542), + 272: int16(376), + 273: int16(1547), + 274: int16(1550), + 275: int16(1555), + 276: int16(1559), + 277: int16(1568), + 278: int16(1571), + 279: int16(1441), + 280: int16(1443), + 281: int16(1474), + 282: int16(1511), + 283: int16(1516), + 284: int16(1519), + 285: int16(1522), + 286: int16(773), + 287: int16(1474), + 288: int16(1474), + 289: int16(1503), + 290: int16(1567), + 291: int16(1594), + 292: int16(1484), + 293: int16(1527), + 294: int16(1556), + 295: int16(1570), + 296: int16(1557), + 297: int16(1524), + 298: int16(1573), + 299: int16(1545), + 300: int16(1548), + 301: int16(1576), + 302: int16(1561), + 303: int16(1587), + 304: int16(1540), + 305: int16(1575), + 306: int16(1606), + 307: int16(1611), + 308: int16(1622), + 309: int16(1624), + 310: int16(1626), + 311: int16(1582), + 312: int16(1597), + 313: int16(1598), + 314: int16(1599), + 315: int16(1601), + 316: int16(1603), + 317: int16(1563), + 318: int16(1608), + 319: int16(1605), + 320: int16(1604), + 321: int16(1564), + 322: int16(1566), + 323: int16(1655), + 324: int16(1660), + 325: int16(1578), + 326: int16(1579), + 327: int16(1665), + 328: int16(1586), + 329: int16(1607), + 330: int16(1610), + 331: int16(1642), + 332: int16(1641), + 333: int16(1645), + 334: int16(1646), + 335: int16(1647), + 336: int16(1679), + 337: int16(1688), + 338: int16(1644), + 339: int16(1618), + 340: int16(1619), + 341: int16(1648), + 342: int16(1628), + 343: int16(1659), + 344: int16(1649), + 345: int16(1663), + 346: int16(1650), + 347: int16(1700), + 348: int16(1702), + 349: int16(1612), + 350: int16(1615), + 351: int16(1706), + 352: int16(1708), + 353: int16(1689), + 354: int16(1709), + 355: int16(1712), + 356: int16(1713), + 357: int16(1715), + 358: int16(1691), + 359: int16(1698), + 360: int16(1699), + 361: int16(1701), + 362: int16(1693), + 363: int16(1704), + 364: int16(1707), + 365: int16(1705), + 366: int16(1714), + 367: int16(1703), + 368: int16(1718), + 369: int16(1710), + 370: int16(1720), + 371: int16(1721), + 372: int16(1632), + 373: int16(1634), + 374: int16(1664), + 375: int16(1666), + 376: int16(1729), + 377: int16(1751), + 378: int16(1635), + 379: int16(1636), + 380: int16(1692), + 381: int16(1694), + 382: int16(1716), + 383: int16(1722), + 384: int16(1684), + 385: int16(1763), + 386: int16(1685), + 387: int16(1723), + 388: int16(1724), + 389: int16(1727), + 390: int16(1730), + 391: int16(1768), + 392: int16(1783), + 393: int16(1784), + 394: int16(1793), + 395: int16(1794), + 396: int16(1796), + 397: int16(1683), 398: int16(1686), - 399: int16(1738), - 400: int16(1728), - 401: int16(1733), - 402: int16(1736), - 403: int16(1737), - 404: int16(1740), - 405: int16(1726), - 406: int16(1730), - 407: int16(1742), - 408: int16(1743), - 409: int16(1748), - 410: int16(1753), -} -var _yy_default = [579]uint16{ - 0: uint16(1648), - 1: uint16(1648), - 2: uint16(1648), - 3: uint16(1478), - 4: uint16(1243), - 5: uint16(1354), - 6: uint16(1243), - 7: uint16(1243), - 8: uint16(1243), - 9: uint16(1478), - 10: uint16(1478), - 11: uint16(1478), - 12: uint16(1243), - 13: uint16(1384), - 14: uint16(1384), - 15: uint16(1531), - 16: uint16(1276), - 17: uint16(1243), - 18: uint16(1243), - 19: uint16(1243), - 20: uint16(1243), - 21: uint16(1243), - 22: uint16(1243), - 23: uint16(1243), - 24: uint16(1243), - 25: uint16(1243), - 26: uint16(1243), - 27: uint16(1243), - 28: uint16(1477), - 29: uint16(1243), - 30: uint16(1243), - 31: uint16(1243), - 32: uint16(1243), - 33: uint16(1564), - 34: uint16(1564), - 35: uint16(1243), - 36: uint16(1243), - 37: uint16(1243), - 38: uint16(1243), - 39: uint16(1243), - 40: uint16(1243), - 41: uint16(1243), - 42: uint16(1243), - 43: uint16(1393), - 44: uint16(1243), - 45: uint16(1400), - 46: uint16(1243), - 47: uint16(1243), - 48: uint16(1243), - 49: uint16(1243), - 50: uint16(1243), - 51: uint16(1479), - 52: uint16(1480), - 53: uint16(1243), - 54: uint16(1243), - 55: uint16(1243), - 56: uint16(1530), - 57: uint16(1532), - 58: uint16(1495), - 59: uint16(1407), - 60: uint16(1406), - 61: uint16(1405), - 62: uint16(1404), - 63: uint16(1513), - 64: uint16(1372), - 65: uint16(1398), - 66: uint16(1391), - 67: uint16(1395), - 68: uint16(1474), - 69: uint16(1475), - 70: uint16(1473), - 71: uint16(1626), - 72: uint16(1480), - 73: uint16(1479), - 74: uint16(1243), - 75: uint16(1394), - 76: uint16(1442), - 77: uint16(1458), - 78: uint16(1441), - 79: uint16(1243), - 80: uint16(1243), - 81: uint16(1243), - 82: uint16(1243), - 83: uint16(1243), - 84: uint16(1243), - 85: uint16(1243), - 86: uint16(1243), - 87: uint16(1243), - 88: uint16(1243), - 89: uint16(1243), - 90: uint16(1243), - 91: uint16(1243), - 92: uint16(1243), - 93: uint16(1243), - 94: uint16(1243), - 95: uint16(1243), - 96: uint16(1243), - 97: uint16(1243), - 98: uint16(1243), - 99: uint16(1243), - 100: uint16(1243), - 101: uint16(1243), - 102: uint16(1243), - 103: uint16(1243), - 104: uint16(1243), - 105: uint16(1243), - 106: uint16(1243), - 107: uint16(1243), - 108: uint16(1243), - 109: uint16(1243), - 110: uint16(1243), - 111: uint16(1243), - 112: uint16(1243), - 113: uint16(1243), - 114: uint16(1243), - 115: uint16(1243), - 116: uint16(1243), - 117: uint16(1243), - 118: uint16(1243), - 119: uint16(1243), - 120: uint16(1243), - 121: uint16(1243), - 122: uint16(1243), - 123: uint16(1243), - 124: uint16(1243), - 125: uint16(1243), - 126: uint16(1243), - 127: uint16(1243), - 128: uint16(1243), - 129: uint16(1243), - 130: uint16(1243), - 131: uint16(1450), - 132: uint16(1457), - 133: uint16(1456), - 134: uint16(1455), - 135: uint16(1464), - 136: uint16(1454), - 137: uint16(1451), - 138: uint16(1444), - 139: uint16(1443), - 140: uint16(1445), - 141: uint16(1446), - 142: uint16(1243), - 143: uint16(1243), - 144: uint16(1267), - 145: uint16(1243), - 146: uint16(1243), - 147: uint16(1264), - 148: uint16(1318), - 149: uint16(1243), - 150: uint16(1243), - 151: uint16(1243), - 152: uint16(1243), - 153: uint16(1243), - 154: uint16(1550), - 155: uint16(1549), - 156: uint16(1243), - 157: uint16(1447), - 158: uint16(1243), - 159: uint16(1276), - 160: uint16(1435), - 161: uint16(1434), - 162: uint16(1433), - 163: uint16(1461), - 164: uint16(1448), - 165: uint16(1460), - 166: uint16(1459), - 167: uint16(1538), - 168: uint16(1600), - 169: uint16(1599), - 170: uint16(1496), - 171: uint16(1243), - 172: uint16(1243), - 173: uint16(1243), - 174: uint16(1243), - 175: uint16(1243), - 176: uint16(1243), - 177: uint16(1564), - 178: uint16(1243), - 179: uint16(1243), - 180: uint16(1243), - 181: uint16(1243), - 182: uint16(1243), - 183: uint16(1243), - 184: uint16(1243), - 185: uint16(1243), - 186: uint16(1243), - 187: uint16(1243), - 188: uint16(1243), - 189: uint16(1243), - 190: uint16(1243), - 191: uint16(1243), - 192: uint16(1243), - 193: uint16(1243), - 194: uint16(1243), - 195: uint16(1243), - 196: uint16(1243), - 197: uint16(1243), - 198: uint16(1243), - 199: uint16(1243), - 200: uint16(1243), - 201: uint16(1374), - 202: uint16(1564), - 203: uint16(1564), - 204: uint16(1243), - 205: uint16(1276), - 206: uint16(1564), - 207: uint16(1564), - 208: uint16(1375), - 209: uint16(1375), - 210: uint16(1272), - 211: uint16(1272), - 212: uint16(1378), - 213: uint16(1243), - 214: uint16(1545), - 215: uint16(1345), - 216: uint16(1345), - 217: uint16(1345), - 218: uint16(1345), - 219: uint16(1354), - 220: uint16(1345), - 221: uint16(1243), - 222: uint16(1243), - 223: uint16(1243), - 224: uint16(1243), - 225: uint16(1243), - 226: uint16(1243), - 227: uint16(1243), - 228: uint16(1243), - 229: uint16(1243), - 230: uint16(1243), - 231: uint16(1243), - 232: uint16(1243), - 233: uint16(1243), - 234: uint16(1243), - 235: uint16(1243), - 236: uint16(1535), - 237: uint16(1533), - 238: uint16(1243), - 239: uint16(1243), - 240: uint16(1243), - 241: uint16(1243), - 242: uint16(1243), - 243: uint16(1243), - 244: uint16(1243), - 245: uint16(1243), - 246: uint16(1243), - 247: uint16(1243), - 248: uint16(1243), - 249: uint16(1243), - 250: uint16(1243), - 251: uint16(1243), - 252: uint16(1243), - 253: uint16(1243), - 254: uint16(1243), - 255: uint16(1243), - 256: uint16(1243), - 257: uint16(1243), - 258: uint16(1243), - 259: uint16(1243), - 260: uint16(1243), - 261: uint16(1243), - 262: uint16(1243), - 263: uint16(1243), - 264: uint16(1243), - 265: uint16(1350), - 266: uint16(1243), - 267: uint16(1243), - 268: uint16(1243), - 269: uint16(1243), - 270: uint16(1243), - 271: uint16(1243), - 272: uint16(1243), - 273: uint16(1243), - 274: uint16(1243), - 275: uint16(1243), - 276: uint16(1243), - 277: uint16(1593), - 278: uint16(1243), - 279: uint16(1508), - 280: uint16(1332), - 281: uint16(1350), - 282: uint16(1350), - 283: uint16(1350), - 284: uint16(1350), - 285: uint16(1352), - 286: uint16(1333), - 287: uint16(1331), - 288: uint16(1344), - 289: uint16(1277), - 290: uint16(1250), - 291: uint16(1640), - 292: uint16(1410), - 293: uint16(1399), - 294: uint16(1351), - 295: uint16(1399), - 296: uint16(1637), - 297: uint16(1397), + 399: int16(1690), + 400: int16(1782), + 401: int16(1779), + 402: int16(1780), + 403: int16(1781), + 404: int16(1785), + 405: int16(1788), + 406: int16(1774), + 407: int16(1775), + 408: int16(1786), + 409: int16(1787), + 410: int16(1789), + 411: int16(1798), +} +var _yy_default = [583]uint16{ + 0: uint16(1663), + 1: uint16(1663), + 2: uint16(1663), + 3: uint16(1491), + 4: uint16(1254), + 5: uint16(1367), + 6: uint16(1254), + 7: uint16(1254), + 8: uint16(1254), + 9: uint16(1254), + 10: uint16(1491), + 11: uint16(1491), + 12: uint16(1491), + 13: uint16(1254), + 14: uint16(1254), + 15: uint16(1254), + 16: uint16(1254), + 17: uint16(1254), + 18: uint16(1254), + 19: uint16(1397), + 20: uint16(1397), + 21: uint16(1544), + 22: uint16(1287), + 23: uint16(1254), + 24: uint16(1254), + 25: uint16(1254), + 26: uint16(1254), + 27: uint16(1254), + 28: uint16(1254), + 29: uint16(1254), + 30: uint16(1254), + 31: uint16(1254), + 32: uint16(1254), + 33: uint16(1254), + 34: uint16(1254), + 35: uint16(1490), + 36: uint16(1254), + 37: uint16(1254), + 38: uint16(1254), + 39: uint16(1254), + 40: uint16(1578), + 41: uint16(1578), + 42: uint16(1254), + 43: uint16(1254), + 44: uint16(1254), + 45: uint16(1254), + 46: uint16(1254), + 47: uint16(1563), + 48: uint16(1562), + 49: uint16(1254), + 50: uint16(1254), + 51: uint16(1254), + 52: uint16(1406), + 53: uint16(1254), + 54: uint16(1413), + 55: uint16(1254), + 56: uint16(1254), + 57: uint16(1254), + 58: uint16(1254), + 59: uint16(1254), + 60: uint16(1492), + 61: uint16(1493), + 62: uint16(1254), + 63: uint16(1254), + 64: uint16(1254), + 65: uint16(1543), + 66: uint16(1545), + 67: uint16(1508), + 68: uint16(1420), + 69: uint16(1419), + 70: uint16(1418), + 71: uint16(1417), + 72: uint16(1526), + 73: uint16(1385), + 74: uint16(1411), + 75: uint16(1404), + 76: uint16(1408), + 77: uint16(1487), + 78: uint16(1488), + 79: uint16(1486), + 80: uint16(1641), + 81: uint16(1493), + 82: uint16(1492), + 83: uint16(1254), + 84: uint16(1407), + 85: uint16(1455), + 86: uint16(1471), + 87: uint16(1454), + 88: uint16(1254), + 89: uint16(1254), + 90: uint16(1254), + 91: uint16(1254), + 92: uint16(1254), + 93: uint16(1254), + 94: uint16(1254), + 95: uint16(1254), + 96: uint16(1254), + 97: uint16(1254), + 98: uint16(1254), + 99: uint16(1254), + 100: uint16(1254), + 101: uint16(1254), + 102: uint16(1254), + 103: uint16(1254), + 104: uint16(1254), + 105: uint16(1254), + 106: uint16(1254), + 107: uint16(1254), + 108: uint16(1254), + 109: uint16(1254), + 110: uint16(1254), + 111: uint16(1254), + 112: uint16(1254), + 113: uint16(1254), + 114: uint16(1254), + 115: uint16(1254), + 116: uint16(1254), + 117: uint16(1254), + 118: uint16(1254), + 119: uint16(1254), + 120: uint16(1254), + 121: uint16(1254), + 122: uint16(1254), + 123: uint16(1254), + 124: uint16(1254), + 125: uint16(1254), + 126: uint16(1254), + 127: uint16(1254), + 128: uint16(1254), + 129: uint16(1254), + 130: uint16(1254), + 131: uint16(1254), + 132: uint16(1254), + 133: uint16(1254), + 134: uint16(1254), + 135: uint16(1254), + 136: uint16(1254), + 137: uint16(1254), + 138: uint16(1254), + 139: uint16(1254), + 140: uint16(1463), + 141: uint16(1470), + 142: uint16(1469), + 143: uint16(1468), + 144: uint16(1477), + 145: uint16(1467), + 146: uint16(1464), + 147: uint16(1457), + 148: uint16(1456), + 149: uint16(1458), + 150: uint16(1459), + 151: uint16(1278), + 152: uint16(1254), + 153: uint16(1275), + 154: uint16(1329), + 155: uint16(1254), + 156: uint16(1254), + 157: uint16(1254), + 158: uint16(1254), + 159: uint16(1254), + 160: uint16(1460), + 161: uint16(1287), + 162: uint16(1448), + 163: uint16(1447), + 164: uint16(1446), + 165: uint16(1254), + 166: uint16(1474), + 167: uint16(1461), + 168: uint16(1473), + 169: uint16(1472), + 170: uint16(1551), + 171: uint16(1615), + 172: uint16(1614), + 173: uint16(1509), + 174: uint16(1254), + 175: uint16(1254), + 176: uint16(1254), + 177: uint16(1254), + 178: uint16(1254), + 179: uint16(1254), + 180: uint16(1578), + 181: uint16(1254), + 182: uint16(1254), + 183: uint16(1254), + 184: uint16(1254), + 185: uint16(1254), + 186: uint16(1254), + 187: uint16(1254), + 188: uint16(1254), + 189: uint16(1254), + 190: uint16(1254), + 191: uint16(1254), + 192: uint16(1254), + 193: uint16(1254), + 194: uint16(1254), + 195: uint16(1254), + 196: uint16(1254), + 197: uint16(1254), + 198: uint16(1254), + 199: uint16(1254), + 200: uint16(1254), + 201: uint16(1254), + 202: uint16(1254), + 203: uint16(1387), + 204: uint16(1578), + 205: uint16(1578), + 206: uint16(1254), + 207: uint16(1287), + 208: uint16(1578), + 209: uint16(1578), + 210: uint16(1388), + 211: uint16(1388), + 212: uint16(1283), + 213: uint16(1283), + 214: uint16(1391), + 215: uint16(1558), + 216: uint16(1358), + 217: uint16(1358), + 218: uint16(1358), + 219: uint16(1358), + 220: uint16(1367), + 221: uint16(1358), + 222: uint16(1254), + 223: uint16(1254), + 224: uint16(1254), + 225: uint16(1254), + 226: uint16(1254), + 227: uint16(1254), + 228: uint16(1254), + 229: uint16(1254), + 230: uint16(1254), + 231: uint16(1254), + 232: uint16(1254), + 233: uint16(1254), + 234: uint16(1254), + 235: uint16(1254), + 236: uint16(1254), + 237: uint16(1548), + 238: uint16(1546), + 239: uint16(1254), + 240: uint16(1254), + 241: uint16(1254), + 242: uint16(1254), + 243: uint16(1254), + 244: uint16(1254), + 245: uint16(1254), + 246: uint16(1254), + 247: uint16(1254), + 248: uint16(1254), + 249: uint16(1254), + 250: uint16(1254), + 251: uint16(1254), + 252: uint16(1254), + 253: uint16(1254), + 254: uint16(1254), + 255: uint16(1254), + 256: uint16(1254), + 257: uint16(1254), + 258: uint16(1254), + 259: uint16(1254), + 260: uint16(1254), + 261: uint16(1254), + 262: uint16(1254), + 263: uint16(1254), + 264: uint16(1254), + 265: uint16(1254), + 266: uint16(1363), + 267: uint16(1254), + 268: uint16(1254), + 269: uint16(1254), + 270: uint16(1254), + 271: uint16(1254), + 272: uint16(1254), + 273: uint16(1254), + 274: uint16(1254), + 275: uint16(1254), + 276: uint16(1254), + 277: uint16(1254), + 278: uint16(1608), + 279: uint16(1254), + 280: uint16(1521), + 281: uint16(1343), + 282: uint16(1363), + 283: uint16(1363), + 284: uint16(1363), + 285: uint16(1363), + 286: uint16(1365), + 287: uint16(1344), + 288: uint16(1342), + 289: uint16(1357), + 290: uint16(1288), + 291: uint16(1261), + 292: uint16(1655), + 293: uint16(1423), + 294: uint16(1412), + 295: uint16(1364), + 296: uint16(1412), + 297: uint16(1652), 298: uint16(1410), - 299: uint16(1410), - 300: uint16(1397), + 299: uint16(1423), + 300: uint16(1423), 301: uint16(1410), - 302: uint16(1351), - 303: uint16(1637), - 304: uint16(1293), - 305: uint16(1615), - 306: uint16(1288), - 307: uint16(1384), - 308: uint16(1384), - 309: uint16(1384), - 310: uint16(1374), - 311: uint16(1374), - 312: uint16(1374), - 313: uint16(1374), - 314: uint16(1378), - 315: uint16(1378), - 316: uint16(1476), - 317: uint16(1351), - 318: uint16(1344), - 319: uint16(1243), - 320: uint16(1640), - 321: uint16(1640), - 322: uint16(1360), - 323: uint16(1360), - 324: uint16(1639), - 325: uint16(1639), - 326: uint16(1360), - 327: uint16(1496), - 328: uint16(1623), - 329: uint16(1419), - 330: uint16(1321), - 331: uint16(1327), - 332: uint16(1327), - 333: uint16(1327), - 334: uint16(1327), - 335: uint16(1360), - 336: uint16(1261), - 337: uint16(1397), - 338: uint16(1623), - 339: uint16(1623), - 340: uint16(1397), - 341: uint16(1419), - 342: uint16(1321), - 343: uint16(1397), - 344: uint16(1321), - 345: uint16(1397), - 346: uint16(1360), - 347: uint16(1261), - 348: uint16(1512), - 349: uint16(1634), - 350: uint16(1360), - 351: uint16(1261), - 352: uint16(1486), - 353: uint16(1360), - 354: uint16(1261), - 355: uint16(1360), - 356: uint16(1261), - 357: uint16(1486), - 358: uint16(1319), - 359: uint16(1319), - 360: uint16(1319), - 361: uint16(1308), - 362: uint16(1243), - 363: uint16(1243), - 364: uint16(1486), - 365: uint16(1319), - 366: uint16(1293), - 367: uint16(1319), - 368: uint16(1308), + 302: uint16(1423), + 303: uint16(1364), + 304: uint16(1652), + 305: uint16(1304), + 306: uint16(1630), + 307: uint16(1299), + 308: uint16(1397), + 309: uint16(1397), + 310: uint16(1397), + 311: uint16(1387), + 312: uint16(1387), + 313: uint16(1387), + 314: uint16(1387), + 315: uint16(1391), + 316: uint16(1391), + 317: uint16(1489), + 318: uint16(1364), + 319: uint16(1357), + 320: uint16(1254), + 321: uint16(1655), + 322: uint16(1655), + 323: uint16(1373), + 324: uint16(1373), + 325: uint16(1654), + 326: uint16(1654), + 327: uint16(1373), + 328: uint16(1509), + 329: uint16(1638), + 330: uint16(1432), + 331: uint16(1332), + 332: uint16(1338), + 333: uint16(1338), + 334: uint16(1338), + 335: uint16(1338), + 336: uint16(1373), + 337: uint16(1272), + 338: uint16(1410), + 339: uint16(1638), + 340: uint16(1638), + 341: uint16(1410), + 342: uint16(1432), + 343: uint16(1332), + 344: uint16(1410), + 345: uint16(1332), + 346: uint16(1410), + 347: uint16(1373), + 348: uint16(1272), + 349: uint16(1525), + 350: uint16(1649), + 351: uint16(1373), + 352: uint16(1272), + 353: uint16(1499), + 354: uint16(1373), + 355: uint16(1272), + 356: uint16(1373), + 357: uint16(1272), + 358: uint16(1499), + 359: uint16(1330), + 360: uint16(1330), + 361: uint16(1330), + 362: uint16(1319), + 363: uint16(1254), + 364: uint16(1254), + 365: uint16(1499), + 366: uint16(1330), + 367: uint16(1304), + 368: uint16(1330), 369: uint16(1319), - 370: uint16(1319), - 371: uint16(1582), - 372: uint16(1243), - 373: uint16(1490), - 374: uint16(1490), - 375: uint16(1486), - 376: uint16(1360), - 377: uint16(1574), - 378: uint16(1574), - 379: uint16(1387), - 380: uint16(1387), - 381: uint16(1392), - 382: uint16(1378), - 383: uint16(1481), - 384: uint16(1360), - 385: uint16(1243), - 386: uint16(1392), - 387: uint16(1390), - 388: uint16(1388), - 389: uint16(1397), - 390: uint16(1311), - 391: uint16(1596), - 392: uint16(1596), - 393: uint16(1592), - 394: uint16(1592), - 395: uint16(1592), - 396: uint16(1645), - 397: uint16(1645), - 398: uint16(1545), - 399: uint16(1608), - 400: uint16(1276), - 401: uint16(1276), - 402: uint16(1276), - 403: uint16(1276), - 404: uint16(1608), - 405: uint16(1295), - 406: uint16(1295), - 407: uint16(1277), - 408: uint16(1277), - 409: uint16(1276), - 410: uint16(1608), - 411: uint16(1243), - 412: uint16(1243), - 413: uint16(1243), - 414: uint16(1243), - 415: uint16(1243), - 416: uint16(1243), - 417: uint16(1603), - 418: uint16(1243), - 419: uint16(1540), - 420: uint16(1497), - 421: uint16(1364), - 422: uint16(1243), - 423: uint16(1243), - 424: uint16(1243), - 425: uint16(1243), - 426: uint16(1243), - 427: uint16(1243), - 428: uint16(1243), - 429: uint16(1243), - 430: uint16(1243), - 431: uint16(1243), - 432: uint16(1243), - 433: uint16(1243), - 434: uint16(1243), - 435: uint16(1243), - 436: uint16(1243), - 437: uint16(1243), - 438: uint16(1551), - 439: uint16(1243), - 440: uint16(1243), - 441: uint16(1243), - 442: uint16(1243), - 443: uint16(1243), - 444: uint16(1243), - 445: uint16(1243), - 446: uint16(1243), - 447: uint16(1243), - 448: uint16(1243), - 449: uint16(1424), - 450: uint16(1243), - 451: uint16(1246), - 452: uint16(1542), - 453: uint16(1243), - 454: uint16(1243), - 455: uint16(1243), - 456: uint16(1243), - 457: uint16(1243), - 458: uint16(1243), - 459: uint16(1243), - 460: uint16(1243), - 461: uint16(1401), - 462: uint16(1402), - 463: uint16(1365), - 464: uint16(1243), - 465: uint16(1243), - 466: uint16(1243), - 467: uint16(1243), - 468: uint16(1243), - 469: uint16(1243), - 470: uint16(1243), - 471: uint16(1416), - 472: uint16(1243), - 473: uint16(1243), - 474: uint16(1243), - 475: uint16(1411), - 476: uint16(1243), - 477: uint16(1243), - 478: uint16(1243), - 479: uint16(1243), - 480: uint16(1243), - 481: uint16(1243), - 482: uint16(1243), - 483: uint16(1243), - 484: uint16(1636), - 485: uint16(1243), - 486: uint16(1243), - 487: uint16(1243), - 488: uint16(1243), - 489: uint16(1243), - 490: uint16(1243), - 491: uint16(1511), - 492: uint16(1510), - 493: uint16(1243), - 494: uint16(1243), - 495: uint16(1362), - 496: uint16(1243), - 497: uint16(1243), - 498: uint16(1243), - 499: uint16(1243), - 500: uint16(1243), - 501: uint16(1243), - 502: uint16(1243), - 503: uint16(1243), - 504: uint16(1243), - 505: uint16(1243), - 506: uint16(1243), - 507: uint16(1243), - 508: uint16(1243), - 509: uint16(1291), - 510: uint16(1243), - 511: uint16(1243), - 512: uint16(1243), - 513: uint16(1243), - 514: uint16(1243), - 515: uint16(1243), - 516: uint16(1243), - 517: uint16(1243), - 518: uint16(1243), - 519: uint16(1243), - 520: uint16(1243), - 521: uint16(1243), - 522: uint16(1243), - 523: uint16(1243), - 524: uint16(1243), - 525: uint16(1243), - 526: uint16(1243), - 527: uint16(1243), - 528: uint16(1243), - 529: uint16(1243), - 530: uint16(1243), - 531: uint16(1243), - 532: uint16(1243), - 533: uint16(1389), - 534: uint16(1243), - 535: uint16(1243), - 536: uint16(1243), - 537: uint16(1243), - 538: uint16(1243), - 539: uint16(1243), - 540: uint16(1243), - 541: uint16(1243), - 542: uint16(1243), - 543: uint16(1243), - 544: uint16(1243), - 545: uint16(1243), - 546: uint16(1243), - 547: uint16(1243), - 548: uint16(1579), - 549: uint16(1379), - 550: uint16(1243), - 551: uint16(1243), - 552: uint16(1243), - 553: uint16(1243), - 554: uint16(1627), - 555: uint16(1243), - 556: uint16(1243), - 557: uint16(1243), - 558: uint16(1243), - 559: uint16(1243), - 560: uint16(1243), - 561: uint16(1243), - 562: uint16(1243), - 563: uint16(1243), - 564: uint16(1243), - 565: uint16(1243), - 566: uint16(1243), - 567: uint16(1243), - 568: uint16(1243), - 569: uint16(1619), - 570: uint16(1335), - 571: uint16(1425), - 572: uint16(1243), - 573: uint16(1428), - 574: uint16(1265), - 575: uint16(1243), - 576: uint16(1255), - 577: uint16(1243), - 578: uint16(1243), + 370: uint16(1330), + 371: uint16(1330), + 372: uint16(1596), + 373: uint16(1254), + 374: uint16(1503), + 375: uint16(1503), + 376: uint16(1499), + 377: uint16(1373), + 378: uint16(1588), + 379: uint16(1588), + 380: uint16(1400), + 381: uint16(1400), + 382: uint16(1405), + 383: uint16(1391), + 384: uint16(1494), + 385: uint16(1373), + 386: uint16(1254), + 387: uint16(1405), + 388: uint16(1403), + 389: uint16(1401), + 390: uint16(1410), + 391: uint16(1322), + 392: uint16(1611), + 393: uint16(1611), + 394: uint16(1607), + 395: uint16(1607), + 396: uint16(1607), + 397: uint16(1660), + 398: uint16(1660), + 399: uint16(1558), + 400: uint16(1623), + 401: uint16(1287), + 402: uint16(1287), + 403: uint16(1287), + 404: uint16(1287), + 405: uint16(1623), + 406: uint16(1306), + 407: uint16(1306), + 408: uint16(1288), + 409: uint16(1288), + 410: uint16(1287), + 411: uint16(1623), + 412: uint16(1254), + 413: uint16(1254), + 414: uint16(1254), + 415: uint16(1254), + 416: uint16(1254), + 417: uint16(1254), + 418: uint16(1618), + 419: uint16(1254), + 420: uint16(1553), + 421: uint16(1510), + 422: uint16(1377), + 423: uint16(1254), + 424: uint16(1254), + 425: uint16(1254), + 426: uint16(1254), + 427: uint16(1254), + 428: uint16(1254), + 429: uint16(1254), + 430: uint16(1254), + 431: uint16(1254), + 432: uint16(1254), + 433: uint16(1254), + 434: uint16(1254), + 435: uint16(1254), + 436: uint16(1254), + 437: uint16(1254), + 438: uint16(1254), + 439: uint16(1564), + 440: uint16(1254), + 441: uint16(1254), + 442: uint16(1254), + 443: uint16(1254), + 444: uint16(1254), + 445: uint16(1254), + 446: uint16(1254), + 447: uint16(1254), + 448: uint16(1254), + 449: uint16(1254), + 450: uint16(1254), + 451: uint16(1437), + 452: uint16(1254), + 453: uint16(1257), + 454: uint16(1555), + 455: uint16(1254), + 456: uint16(1254), + 457: uint16(1254), + 458: uint16(1254), + 459: uint16(1254), + 460: uint16(1254), + 461: uint16(1254), + 462: uint16(1254), + 463: uint16(1414), + 464: uint16(1415), + 465: uint16(1378), + 466: uint16(1254), + 467: uint16(1254), + 468: uint16(1254), + 469: uint16(1254), + 470: uint16(1254), + 471: uint16(1254), + 472: uint16(1254), + 473: uint16(1429), + 474: uint16(1254), + 475: uint16(1254), + 476: uint16(1254), + 477: uint16(1424), + 478: uint16(1254), + 479: uint16(1254), + 480: uint16(1254), + 481: uint16(1254), + 482: uint16(1254), + 483: uint16(1254), + 484: uint16(1254), + 485: uint16(1254), + 486: uint16(1651), + 487: uint16(1254), + 488: uint16(1254), + 489: uint16(1254), + 490: uint16(1254), + 491: uint16(1254), + 492: uint16(1254), + 493: uint16(1524), + 494: uint16(1523), + 495: uint16(1254), + 496: uint16(1254), + 497: uint16(1375), + 498: uint16(1254), + 499: uint16(1254), + 500: uint16(1254), + 501: uint16(1254), + 502: uint16(1254), + 503: uint16(1254), + 504: uint16(1254), + 505: uint16(1254), + 506: uint16(1254), + 507: uint16(1254), + 508: uint16(1254), + 509: uint16(1254), + 510: uint16(1254), + 511: uint16(1302), + 512: uint16(1254), + 513: uint16(1254), + 514: uint16(1254), + 515: uint16(1254), + 516: uint16(1254), + 517: uint16(1254), + 518: uint16(1254), + 519: uint16(1254), + 520: uint16(1254), + 521: uint16(1254), + 522: uint16(1254), + 523: uint16(1254), + 524: uint16(1254), + 525: uint16(1254), + 526: uint16(1254), + 527: uint16(1254), + 528: uint16(1254), + 529: uint16(1254), + 530: uint16(1254), + 531: uint16(1254), + 532: uint16(1254), + 533: uint16(1254), + 534: uint16(1254), + 535: uint16(1402), + 536: uint16(1254), + 537: uint16(1254), + 538: uint16(1254), + 539: uint16(1254), + 540: uint16(1254), + 541: uint16(1254), + 542: uint16(1254), + 543: uint16(1254), + 544: uint16(1254), + 545: uint16(1254), + 546: uint16(1254), + 547: uint16(1254), + 548: uint16(1254), + 549: uint16(1254), + 550: uint16(1593), + 551: uint16(1392), + 552: uint16(1254), + 553: uint16(1254), + 554: uint16(1254), + 555: uint16(1254), + 556: uint16(1642), + 557: uint16(1254), + 558: uint16(1254), + 559: uint16(1254), + 560: uint16(1254), + 561: uint16(1352), + 562: uint16(1254), + 563: uint16(1254), + 564: uint16(1254), + 565: uint16(1254), + 566: uint16(1254), + 567: uint16(1254), + 568: uint16(1254), + 569: uint16(1254), + 570: uint16(1254), + 571: uint16(1254), + 572: uint16(1254), + 573: uint16(1634), + 574: uint16(1346), + 575: uint16(1438), + 576: uint16(1254), + 577: uint16(1441), + 578: uint16(1276), + 579: uint16(1254), + 580: uint16(1266), + 581: uint16(1254), + 582: uint16(1254), } /********** End of lemon-generated parsing tables *****************************/ @@ -158293,7 +159849,7 @@ var _yy_default = [579]uint16{ // ** to revert to identifiers if they keyword does not apply in the context where // ** it appears. // */ -var _yyFallback = [185]uint16{ +var _yyFallback = [186]uint16{ 2: uint16(59), 3: uint16(59), 4: uint16(59), @@ -158406,8 +159962,9 @@ type yyStackEntry = TyyStackEntry type TyyParser1 = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser1 = TyyParser1 @@ -158415,14 +159972,46 @@ type yyParser1 = TyyParser1 type TyyParser = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser = TyyParser /* #include */ +// C documentation +// +// /* +// ** Try to increase the size of the parser stack. Return the number +// ** of errors. Return 0 on success. +// */ +func _yyGrowStack(tls *libc.TLS, p uintptr) (r int32) { + var idx, newSize, oldSize int32 + var pNew uintptr + _, _, _, _ = idx, newSize, oldSize, pNew + oldSize = int32(1) + int32((int64((*TyyParser)(unsafe.Pointer(p)).FyystackEnd)-int64((*TyyParser)(unsafe.Pointer(p)).Fyystack))/24) + newSize = oldSize*int32(2) + int32(100) + idx = int32((int64((*TyyParser)(unsafe.Pointer(p)).Fyytos) - int64((*TyyParser)(unsafe.Pointer(p)).Fyystack)) / 24) + if (*TyyParser)(unsafe.Pointer(p)).Fyystack == p+32 { + pNew = _parserStackRealloc(tls, uintptr(0), uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + libc.Xmemcpy(tls, pNew, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(oldSize)*uint64(24)) + } else { + pNew = _parserStackRealloc(tls, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + } + (*TyyParser)(unsafe.Pointer(p)).Fyystack = pNew + (*TyyParser)(unsafe.Pointer(p)).Fyytos = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(idx)*24 + (*TyyParser)(unsafe.Pointer(p)).FyystackEnd = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(newSize-int32(1))*24 + return 0 +} + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -158438,10 +160027,11 @@ func _sqlite3ParserInit(tls *libc.TLS, yypRawParser uintptr, pParse uintptr) { _ = yypParser yypParser = yypRawParser (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = yypParser + 16 - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fstateno = uint16(0) - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fmajor = uint16(0) - (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = yypParser + 16 + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack = yypParser + 32 + (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fstateno = uint16(0) + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fmajor = uint16(0) } // C documentation @@ -158469,103 +160059,105 @@ func _yy_destructor(tls *libc.TLS, yypParser uintptr, yymajor uint16, yypminor u ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case int32(204): /* select */ + case int32(205): /* select */ + fallthrough + case int32(240): /* selectnowith */ fallthrough - case int32(239): /* selectnowith */ + case int32(241): /* oneselect */ fallthrough - case int32(240): /* oneselect */ + case int32(253): /* values */ fallthrough - case int32(252): /* values */ + case int32(255): /* mvalues */ _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(216): /* term */ + case int32(217): /* term */ fallthrough - case int32(217): /* expr */ + case int32(218): /* expr */ fallthrough - case int32(246): /* where_opt */ + case int32(247): /* where_opt */ fallthrough - case int32(248): /* having_opt */ + case int32(249): /* having_opt */ fallthrough - case int32(267): /* where_opt_ret */ + case int32(269): /* where_opt_ret */ fallthrough - case int32(278): /* case_operand */ + case int32(280): /* case_operand */ fallthrough - case int32(280): /* case_else */ + case int32(282): /* case_else */ fallthrough - case int32(283): /* vinto */ + case int32(285): /* vinto */ fallthrough - case int32(290): /* when_clause */ + case int32(292): /* when_clause */ fallthrough - case int32(295): /* key_opt */ + case int32(297): /* key_opt */ fallthrough - case int32(311): /* filter_clause */ + case int32(314): /* filter_clause */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(221): /* eidlist_opt */ + case int32(222): /* eidlist_opt */ fallthrough - case int32(231): /* sortlist */ + case int32(232): /* sortlist */ fallthrough - case int32(232): /* eidlist */ + case int32(233): /* eidlist */ fallthrough - case int32(244): /* selcollist */ + case int32(245): /* selcollist */ fallthrough - case int32(247): /* groupby_opt */ + case int32(248): /* groupby_opt */ fallthrough - case int32(249): /* orderby_opt */ + case int32(250): /* orderby_opt */ fallthrough - case int32(253): /* nexprlist */ + case int32(254): /* nexprlist */ fallthrough - case int32(254): /* sclp */ + case int32(256): /* sclp */ fallthrough - case int32(261): /* exprlist */ + case int32(263): /* exprlist */ fallthrough - case int32(268): /* setlist */ + case int32(270): /* setlist */ fallthrough - case int32(277): /* paren_exprlist */ + case int32(279): /* paren_exprlist */ fallthrough - case int32(279): /* case_exprlist */ + case int32(281): /* case_exprlist */ fallthrough - case int32(310): /* part_opt */ + case int32(313): /* part_opt */ _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(238): /* fullname */ + case int32(239): /* fullname */ fallthrough - case int32(245): /* from */ + case int32(246): /* from */ fallthrough - case int32(256): /* seltablist */ + case int32(258): /* seltablist */ fallthrough - case int32(257): /* stl_prefix */ + case int32(259): /* stl_prefix */ fallthrough - case int32(262): /* xfullname */ + case int32(264): /* xfullname */ _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(241): /* wqlist */ + case int32(242): /* wqlist */ _sqlite3WithDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(251): /* window_clause */ + case int32(252): /* window_clause */ fallthrough - case int32(306): /* windowdefn_list */ + case int32(309): /* windowdefn_list */ _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(263): /* idlist */ + case int32(265): /* idlist */ fallthrough - case int32(270): /* idlist_opt */ + case int32(272): /* idlist_opt */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(273): /* filter_over */ + case int32(275): /* filter_over */ fallthrough - case int32(307): /* windowdefn */ + case int32(310): /* windowdefn */ fallthrough - case int32(308): /* window */ + case int32(311): /* window */ fallthrough - case int32(309): /* frame_opt */ + case int32(312): /* frame_opt */ fallthrough - case int32(312): /* over_clause */ + case int32(315): /* over_clause */ _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(286): /* trigger_cmd_list */ + case int32(288): /* trigger_cmd_list */ fallthrough - case int32(291): /* trigger_cmd */ + case int32(293): /* trigger_cmd */ _sqlite3DeleteTriggerStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(288): /* trigger_event */ + case int32(290): /* trigger_event */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TTrigEvent)(unsafe.Pointer(yypminor))).Fb) - case int32(314): /* frame_bound */ + case int32(317): /* frame_bound */ fallthrough - case int32(315): /* frame_bound_s */ + case int32(318): /* frame_bound_s */ fallthrough - case int32(316): /* frame_bound_e */ + case int32(319): /* frame_bound_e */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TFrameBound)(unsafe.Pointer(yypminor))).FpExpr) break /********* End destructor definitions *****************************************/ @@ -158601,11 +160193,20 @@ func _yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var pParser, yytos uintptr + _, _ = pParser, yytos pParser = p - for (*TyyParser)(unsafe.Pointer(pParser)).Fyytos > pParser+16 { - _yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling yy_pop_parser_stack() for each + ** element left in the stack */ + yytos = (*TyyParser)(unsafe.Pointer(pParser)).Fyytos + for yytos > (*TyyParser)(unsafe.Pointer(pParser)).Fyystack { + if int32((*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor) >= int32(YY_MIN_DSTRCTR) { + _yy_destructor(tls, pParser, (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor, yytos+8) + } + yytos -= 24 + } + if (*TyyParser)(unsafe.Pointer(pParser)).Fyystack != pParser+32 { + Xsqlite3_free(tls, (*TyyParser)(unsafe.Pointer(pParser)).Fyystack) } } @@ -158700,13 +160301,13 @@ func _yyStackOverflow(tls *libc.TLS, yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse - for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > yypParser+16 { + for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack { _yy_pop_parser_stack(tls, yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23336, 0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) /******** End %stack_overflow code ********************************************/ /* Suppress warning about unused %extra_argument var */ (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse @@ -158725,15 +160326,19 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint var yytos uintptr _ = yytos (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos += 24 - if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 - _yyStackOverflow(tls, yypParser) - return + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + if yytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { + if _yyGrowStack(tls, yypParser) != 0 { + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 + _yyStackOverflow(tls, yypParser) + return + } + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + _ = libc.Int32FromInt32(0) } if int32(yyNewState) > int32(YY_MAX_SHIFT) { yyNewState = uint16(int32(yyNewState) + (libc.Int32FromInt32(YY_MIN_REDUCE) - libc.Int32FromInt32(YY_MIN_SHIFTREDUCE))) } - yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos (*TyyStackEntry)(unsafe.Pointer(yytos)).Fstateno = yyNewState (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor = yyMajor *(*TToken)(unsafe.Pointer(yytos + 8)) = yyMinor @@ -158743,419 +160348,423 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint // // /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side // ** of that rule */ -var _yyRuleInfoLhs = [405]uint16{ - 0: uint16(189), - 1: uint16(189), - 2: uint16(188), - 3: uint16(190), - 4: uint16(191), - 5: uint16(191), - 6: uint16(191), - 7: uint16(191), - 8: uint16(190), - 9: uint16(190), - 10: uint16(190), - 11: uint16(190), - 12: uint16(190), - 13: uint16(195), - 14: uint16(197), - 15: uint16(199), - 16: uint16(199), - 17: uint16(198), - 18: uint16(198), - 19: uint16(196), - 20: uint16(196), - 21: uint16(203), - 22: uint16(203), - 23: uint16(205), - 24: uint16(205), - 25: uint16(206), - 26: uint16(208), - 27: uint16(208), - 28: uint16(208), - 29: uint16(209), - 30: uint16(213), - 31: uint16(214), - 32: uint16(215), - 33: uint16(215), - 34: uint16(215), - 35: uint16(215), - 36: uint16(215), - 37: uint16(215), - 38: uint16(215), - 39: uint16(215), - 40: uint16(215), - 41: uint16(215), - 42: uint16(215), - 43: uint16(215), - 44: uint16(215), - 45: uint16(224), - 46: uint16(224), - 47: uint16(220), - 48: uint16(220), - 49: uint16(222), - 50: uint16(222), - 51: uint16(225), - 52: uint16(225), - 53: uint16(225), - 54: uint16(225), - 55: uint16(226), - 56: uint16(226), - 57: uint16(226), - 58: uint16(226), - 59: uint16(226), - 60: uint16(223), - 61: uint16(223), - 62: uint16(227), - 63: uint16(227), - 64: uint16(227), - 65: uint16(202), - 66: uint16(229), - 67: uint16(230), - 68: uint16(230), - 69: uint16(230), - 70: uint16(230), - 71: uint16(230), - 72: uint16(233), - 73: uint16(218), - 74: uint16(218), - 75: uint16(234), - 76: uint16(234), - 77: uint16(235), - 78: uint16(235), - 79: uint16(190), - 80: uint16(237), - 81: uint16(237), - 82: uint16(190), - 83: uint16(190), - 84: uint16(190), - 85: uint16(204), - 86: uint16(204), - 87: uint16(204), - 88: uint16(239), - 89: uint16(242), - 90: uint16(242), - 91: uint16(242), - 92: uint16(240), - 93: uint16(240), - 94: uint16(252), - 95: uint16(252), - 96: uint16(243), - 97: uint16(243), - 98: uint16(243), - 99: uint16(254), +var _yyRuleInfoLhs = [409]uint16{ + 0: uint16(190), + 1: uint16(190), + 2: uint16(189), + 3: uint16(191), + 4: uint16(192), + 5: uint16(192), + 6: uint16(192), + 7: uint16(192), + 8: uint16(191), + 9: uint16(191), + 10: uint16(191), + 11: uint16(191), + 12: uint16(191), + 13: uint16(196), + 14: uint16(198), + 15: uint16(200), + 16: uint16(200), + 17: uint16(199), + 18: uint16(199), + 19: uint16(197), + 20: uint16(197), + 21: uint16(204), + 22: uint16(204), + 23: uint16(206), + 24: uint16(206), + 25: uint16(207), + 26: uint16(209), + 27: uint16(209), + 28: uint16(209), + 29: uint16(210), + 30: uint16(214), + 31: uint16(215), + 32: uint16(216), + 33: uint16(216), + 34: uint16(216), + 35: uint16(216), + 36: uint16(216), + 37: uint16(216), + 38: uint16(216), + 39: uint16(216), + 40: uint16(216), + 41: uint16(216), + 42: uint16(216), + 43: uint16(216), + 44: uint16(216), + 45: uint16(225), + 46: uint16(225), + 47: uint16(221), + 48: uint16(221), + 49: uint16(223), + 50: uint16(223), + 51: uint16(226), + 52: uint16(226), + 53: uint16(226), + 54: uint16(226), + 55: uint16(227), + 56: uint16(227), + 57: uint16(227), + 58: uint16(227), + 59: uint16(227), + 60: uint16(224), + 61: uint16(224), + 62: uint16(228), + 63: uint16(228), + 64: uint16(228), + 65: uint16(203), + 66: uint16(230), + 67: uint16(231), + 68: uint16(231), + 69: uint16(231), + 70: uint16(231), + 71: uint16(231), + 72: uint16(234), + 73: uint16(219), + 74: uint16(219), + 75: uint16(235), + 76: uint16(235), + 77: uint16(236), + 78: uint16(236), + 79: uint16(191), + 80: uint16(238), + 81: uint16(238), + 82: uint16(191), + 83: uint16(191), + 84: uint16(191), + 85: uint16(205), + 86: uint16(205), + 87: uint16(205), + 88: uint16(240), + 89: uint16(243), + 90: uint16(243), + 91: uint16(243), + 92: uint16(241), + 93: uint16(241), + 94: uint16(253), + 95: uint16(241), + 96: uint16(255), + 97: uint16(255), + 98: uint16(244), + 99: uint16(244), 100: uint16(244), - 101: uint16(244), - 102: uint16(244), - 103: uint16(255), - 104: uint16(255), - 105: uint16(245), - 106: uint16(245), - 107: uint16(257), - 108: uint16(257), - 109: uint16(256), - 110: uint16(256), - 111: uint16(256), - 112: uint16(256), - 113: uint16(256), - 114: uint16(200), - 115: uint16(200), - 116: uint16(238), - 117: uint16(238), - 118: uint16(262), - 119: uint16(262), - 120: uint16(262), - 121: uint16(262), - 122: uint16(258), - 123: uint16(258), - 124: uint16(258), - 125: uint16(258), - 126: uint16(259), - 127: uint16(259), - 128: uint16(259), - 129: uint16(264), - 130: uint16(260), - 131: uint16(260), - 132: uint16(249), - 133: uint16(249), - 134: uint16(231), - 135: uint16(231), - 136: uint16(219), - 137: uint16(219), - 138: uint16(219), - 139: uint16(265), - 140: uint16(265), - 141: uint16(265), - 142: uint16(247), - 143: uint16(247), + 101: uint16(256), + 102: uint16(245), + 103: uint16(245), + 104: uint16(245), + 105: uint16(257), + 106: uint16(257), + 107: uint16(246), + 108: uint16(246), + 109: uint16(259), + 110: uint16(259), + 111: uint16(258), + 112: uint16(258), + 113: uint16(258), + 114: uint16(258), + 115: uint16(258), + 116: uint16(201), + 117: uint16(201), + 118: uint16(239), + 119: uint16(239), + 120: uint16(264), + 121: uint16(264), + 122: uint16(264), + 123: uint16(264), + 124: uint16(260), + 125: uint16(260), + 126: uint16(260), + 127: uint16(260), + 128: uint16(261), + 129: uint16(261), + 130: uint16(261), + 131: uint16(266), + 132: uint16(262), + 133: uint16(262), + 134: uint16(250), + 135: uint16(250), + 136: uint16(232), + 137: uint16(232), + 138: uint16(220), + 139: uint16(220), + 140: uint16(220), + 141: uint16(267), + 142: uint16(267), + 143: uint16(267), 144: uint16(248), 145: uint16(248), - 146: uint16(250), - 147: uint16(250), - 148: uint16(250), - 149: uint16(250), - 150: uint16(190), - 151: uint16(246), - 152: uint16(246), - 153: uint16(267), - 154: uint16(267), - 155: uint16(267), - 156: uint16(267), - 157: uint16(190), - 158: uint16(268), - 159: uint16(268), - 160: uint16(268), - 161: uint16(268), - 162: uint16(190), - 163: uint16(190), - 164: uint16(271), - 165: uint16(271), - 166: uint16(271), - 167: uint16(271), - 168: uint16(271), - 169: uint16(271), - 170: uint16(272), - 171: uint16(269), - 172: uint16(269), - 173: uint16(270), - 174: uint16(270), - 175: uint16(263), - 176: uint16(263), - 177: uint16(217), - 178: uint16(217), - 179: uint16(217), - 180: uint16(217), - 181: uint16(216), - 182: uint16(216), - 183: uint16(216), + 146: uint16(249), + 147: uint16(249), + 148: uint16(251), + 149: uint16(251), + 150: uint16(251), + 151: uint16(251), + 152: uint16(191), + 153: uint16(247), + 154: uint16(247), + 155: uint16(269), + 156: uint16(269), + 157: uint16(269), + 158: uint16(269), + 159: uint16(191), + 160: uint16(270), + 161: uint16(270), + 162: uint16(270), + 163: uint16(270), + 164: uint16(191), + 165: uint16(191), + 166: uint16(273), + 167: uint16(273), + 168: uint16(273), + 169: uint16(273), + 170: uint16(273), + 171: uint16(273), + 172: uint16(274), + 173: uint16(271), + 174: uint16(271), + 175: uint16(272), + 176: uint16(272), + 177: uint16(265), + 178: uint16(265), + 179: uint16(218), + 180: uint16(218), + 181: uint16(218), + 182: uint16(218), + 183: uint16(217), 184: uint16(217), 185: uint16(217), - 186: uint16(217), - 187: uint16(217), - 188: uint16(217), - 189: uint16(217), - 190: uint16(217), - 191: uint16(217), - 192: uint16(217), - 193: uint16(216), - 194: uint16(217), + 186: uint16(218), + 187: uint16(218), + 188: uint16(218), + 189: uint16(218), + 190: uint16(218), + 191: uint16(218), + 192: uint16(218), + 193: uint16(218), + 194: uint16(218), 195: uint16(217), - 196: uint16(217), - 197: uint16(217), - 198: uint16(217), - 199: uint16(217), - 200: uint16(217), - 201: uint16(217), - 202: uint16(217), - 203: uint16(274), - 204: uint16(217), - 205: uint16(217), - 206: uint16(217), - 207: uint16(217), - 208: uint16(217), - 209: uint16(217), - 210: uint16(217), - 211: uint16(217), - 212: uint16(217), - 213: uint16(217), - 214: uint16(217), - 215: uint16(217), - 216: uint16(275), - 217: uint16(275), - 218: uint16(217), - 219: uint16(276), - 220: uint16(276), - 221: uint16(217), - 222: uint16(217), - 223: uint16(217), - 224: uint16(217), - 225: uint16(217), - 226: uint16(217), - 227: uint16(279), - 228: uint16(279), - 229: uint16(280), - 230: uint16(280), - 231: uint16(278), - 232: uint16(261), - 233: uint16(253), - 234: uint16(253), - 235: uint16(277), - 236: uint16(277), - 237: uint16(190), - 238: uint16(281), - 239: uint16(281), - 240: uint16(221), - 241: uint16(221), - 242: uint16(232), - 243: uint16(232), - 244: uint16(282), - 245: uint16(282), - 246: uint16(190), - 247: uint16(190), - 248: uint16(190), - 249: uint16(283), - 250: uint16(283), - 251: uint16(190), - 252: uint16(190), - 253: uint16(190), - 254: uint16(190), - 255: uint16(190), - 256: uint16(211), - 257: uint16(212), - 258: uint16(190), - 259: uint16(285), - 260: uint16(287), + 196: uint16(218), + 197: uint16(218), + 198: uint16(218), + 199: uint16(218), + 200: uint16(218), + 201: uint16(218), + 202: uint16(218), + 203: uint16(218), + 204: uint16(218), + 205: uint16(276), + 206: uint16(218), + 207: uint16(218), + 208: uint16(218), + 209: uint16(218), + 210: uint16(218), + 211: uint16(218), + 212: uint16(218), + 213: uint16(218), + 214: uint16(218), + 215: uint16(218), + 216: uint16(218), + 217: uint16(218), + 218: uint16(277), + 219: uint16(277), + 220: uint16(218), + 221: uint16(278), + 222: uint16(278), + 223: uint16(218), + 224: uint16(218), + 225: uint16(218), + 226: uint16(218), + 227: uint16(218), + 228: uint16(218), + 229: uint16(281), + 230: uint16(281), + 231: uint16(282), + 232: uint16(282), + 233: uint16(280), + 234: uint16(263), + 235: uint16(254), + 236: uint16(254), + 237: uint16(279), + 238: uint16(279), + 239: uint16(191), + 240: uint16(283), + 241: uint16(283), + 242: uint16(222), + 243: uint16(222), + 244: uint16(233), + 245: uint16(233), + 246: uint16(284), + 247: uint16(284), + 248: uint16(191), + 249: uint16(191), + 250: uint16(191), + 251: uint16(285), + 252: uint16(285), + 253: uint16(191), + 254: uint16(191), + 255: uint16(191), + 256: uint16(191), + 257: uint16(191), + 258: uint16(212), + 259: uint16(213), + 260: uint16(191), 261: uint16(287), - 262: uint16(287), - 263: uint16(288), - 264: uint16(288), - 265: uint16(288), + 262: uint16(289), + 263: uint16(289), + 264: uint16(289), + 265: uint16(290), 266: uint16(290), 267: uint16(290), - 268: uint16(286), - 269: uint16(286), - 270: uint16(292), - 271: uint16(293), - 272: uint16(293), - 273: uint16(291), - 274: uint16(291), - 275: uint16(291), - 276: uint16(291), - 277: uint16(217), - 278: uint16(217), - 279: uint16(236), - 280: uint16(236), - 281: uint16(236), - 282: uint16(190), - 283: uint16(190), - 284: uint16(190), - 285: uint16(295), - 286: uint16(295), - 287: uint16(190), - 288: uint16(190), - 289: uint16(190), - 290: uint16(190), - 291: uint16(190), - 292: uint16(190), - 293: uint16(190), - 294: uint16(296), - 295: uint16(190), - 296: uint16(190), - 297: uint16(190), - 298: uint16(298), - 299: uint16(300), - 300: uint16(301), - 301: uint16(301), - 302: uint16(302), - 303: uint16(266), - 304: uint16(266), - 305: uint16(305), - 306: uint16(305), - 307: uint16(305), - 308: uint16(304), - 309: uint16(241), - 310: uint16(241), - 311: uint16(306), - 312: uint16(307), - 313: uint16(308), - 314: uint16(308), - 315: uint16(308), - 316: uint16(308), - 317: uint16(308), - 318: uint16(309), - 319: uint16(309), - 320: uint16(309), - 321: uint16(313), - 322: uint16(315), - 323: uint16(315), + 268: uint16(292), + 269: uint16(292), + 270: uint16(288), + 271: uint16(288), + 272: uint16(294), + 273: uint16(295), + 274: uint16(295), + 275: uint16(293), + 276: uint16(293), + 277: uint16(293), + 278: uint16(293), + 279: uint16(218), + 280: uint16(218), + 281: uint16(237), + 282: uint16(237), + 283: uint16(237), + 284: uint16(191), + 285: uint16(191), + 286: uint16(191), + 287: uint16(297), + 288: uint16(297), + 289: uint16(191), + 290: uint16(191), + 291: uint16(191), + 292: uint16(191), + 293: uint16(191), + 294: uint16(191), + 295: uint16(191), + 296: uint16(298), + 297: uint16(191), + 298: uint16(191), + 299: uint16(191), + 300: uint16(300), + 301: uint16(302), + 302: uint16(303), + 303: uint16(303), + 304: uint16(304), + 305: uint16(268), + 306: uint16(268), + 307: uint16(307), + 308: uint16(307), + 309: uint16(307), + 310: uint16(306), + 311: uint16(308), + 312: uint16(242), + 313: uint16(242), + 314: uint16(309), + 315: uint16(310), + 316: uint16(311), + 317: uint16(311), + 318: uint16(311), + 319: uint16(311), + 320: uint16(311), + 321: uint16(312), + 322: uint16(312), + 323: uint16(312), 324: uint16(316), - 325: uint16(316), - 326: uint16(314), - 327: uint16(314), - 328: uint16(317), + 325: uint16(318), + 326: uint16(318), + 327: uint16(319), + 328: uint16(319), 329: uint16(317), - 330: uint16(318), - 331: uint16(318), - 332: uint16(318), - 333: uint16(251), - 334: uint16(273), - 335: uint16(273), - 336: uint16(273), - 337: uint16(312), - 338: uint16(312), - 339: uint16(311), - 340: uint16(185), - 341: uint16(186), - 342: uint16(186), - 343: uint16(187), - 344: uint16(187), + 330: uint16(317), + 331: uint16(320), + 332: uint16(320), + 333: uint16(321), + 334: uint16(321), + 335: uint16(321), + 336: uint16(252), + 337: uint16(275), + 338: uint16(275), + 339: uint16(275), + 340: uint16(315), + 341: uint16(315), + 342: uint16(314), + 343: uint16(217), + 344: uint16(186), 345: uint16(187), - 346: uint16(192), - 347: uint16(192), - 348: uint16(192), - 349: uint16(194), - 350: uint16(194), - 351: uint16(190), - 352: uint16(203), - 353: uint16(201), - 354: uint16(201), - 355: uint16(193), - 356: uint16(193), - 357: uint16(208), - 358: uint16(209), - 359: uint16(210), - 360: uint16(210), - 361: uint16(207), - 362: uint16(207), - 363: uint16(215), - 364: uint16(215), - 365: uint16(215), - 366: uint16(202), - 367: uint16(228), - 368: uint16(228), - 369: uint16(229), - 370: uint16(233), - 371: uint16(235), - 372: uint16(239), - 373: uint16(240), - 374: uint16(254), - 375: uint16(255), - 376: uint16(264), - 377: uint16(272), - 378: uint16(217), - 379: uint16(274), - 380: uint16(278), - 381: uint16(261), - 382: uint16(284), - 383: uint16(284), - 384: uint16(284), - 385: uint16(284), - 386: uint16(284), - 387: uint16(211), - 388: uint16(289), - 389: uint16(289), - 390: uint16(292), - 391: uint16(293), - 392: uint16(294), - 393: uint16(294), - 394: uint16(297), - 395: uint16(297), - 396: uint16(299), - 397: uint16(299), - 398: uint16(300), - 399: uint16(303), - 400: uint16(303), - 401: uint16(303), - 402: uint16(266), - 403: uint16(306), - 404: uint16(308), + 346: uint16(187), + 347: uint16(188), + 348: uint16(188), + 349: uint16(188), + 350: uint16(193), + 351: uint16(193), + 352: uint16(193), + 353: uint16(195), + 354: uint16(195), + 355: uint16(191), + 356: uint16(204), + 357: uint16(202), + 358: uint16(202), + 359: uint16(194), + 360: uint16(194), + 361: uint16(209), + 362: uint16(210), + 363: uint16(211), + 364: uint16(211), + 365: uint16(208), + 366: uint16(208), + 367: uint16(216), + 368: uint16(216), + 369: uint16(216), + 370: uint16(203), + 371: uint16(229), + 372: uint16(229), + 373: uint16(230), + 374: uint16(234), + 375: uint16(236), + 376: uint16(240), + 377: uint16(241), + 378: uint16(256), + 379: uint16(257), + 380: uint16(266), + 381: uint16(274), + 382: uint16(218), + 383: uint16(276), + 384: uint16(280), + 385: uint16(263), + 386: uint16(286), + 387: uint16(286), + 388: uint16(286), + 389: uint16(286), + 390: uint16(286), + 391: uint16(212), + 392: uint16(291), + 393: uint16(291), + 394: uint16(294), + 395: uint16(295), + 396: uint16(296), + 397: uint16(296), + 398: uint16(299), + 399: uint16(299), + 400: uint16(301), + 401: uint16(301), + 402: uint16(302), + 403: uint16(305), + 404: uint16(305), + 405: uint16(305), + 406: uint16(268), + 407: uint16(309), + 408: uint16(311), } // C documentation // // /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number // ** of symbols on the right-hand side of that rule. */ -var _yyRuleInfoNRhs = [405]int8{ +var _yyRuleInfoNRhs = [409]int8{ 0: int8(-int32(1)), 1: int8(-int32(3)), 2: int8(-int32(1)), @@ -159236,273 +160845,277 @@ var _yyRuleInfoNRhs = [405]int8{ 92: int8(-int32(9)), 93: int8(-int32(10)), 94: int8(-int32(4)), - 95: int8(-int32(5)), - 96: int8(-int32(1)), - 97: int8(-int32(1)), - 100: int8(-int32(5)), - 101: int8(-int32(3)), + 95: int8(-int32(1)), + 96: int8(-int32(5)), + 97: int8(-int32(5)), + 98: int8(-int32(1)), + 99: int8(-int32(1)), 102: int8(-int32(5)), - 103: int8(-int32(2)), - 106: int8(-int32(2)), - 107: int8(-int32(2)), - 109: int8(-int32(5)), - 110: int8(-int32(6)), - 111: int8(-int32(8)), + 103: int8(-int32(3)), + 104: int8(-int32(5)), + 105: int8(-int32(2)), + 108: int8(-int32(2)), + 109: int8(-int32(2)), + 111: int8(-int32(5)), 112: int8(-int32(6)), - 113: int8(-int32(6)), - 115: int8(-int32(2)), - 116: int8(-int32(1)), - 117: int8(-int32(3)), + 113: int8(-int32(8)), + 114: int8(-int32(6)), + 115: int8(-int32(6)), + 117: int8(-int32(2)), 118: int8(-int32(1)), 119: int8(-int32(3)), - 120: int8(-int32(5)), + 120: int8(-int32(1)), 121: int8(-int32(3)), - 122: int8(-int32(1)), - 123: int8(-int32(2)), - 124: int8(-int32(3)), - 125: int8(-int32(4)), - 126: int8(-int32(2)), + 122: int8(-int32(5)), + 123: int8(-int32(3)), + 124: int8(-int32(1)), + 125: int8(-int32(2)), + 126: int8(-int32(3)), 127: int8(-int32(4)), - 130: int8(-int32(3)), - 131: int8(-int32(2)), - 133: int8(-int32(3)), - 134: int8(-int32(5)), + 128: int8(-int32(2)), + 129: int8(-int32(4)), + 132: int8(-int32(3)), + 133: int8(-int32(2)), 135: int8(-int32(3)), - 136: int8(-int32(1)), - 137: int8(-int32(1)), - 139: int8(-int32(2)), - 140: int8(-int32(2)), - 143: int8(-int32(3)), - 145: int8(-int32(2)), + 136: int8(-int32(5)), + 137: int8(-int32(3)), + 138: int8(-int32(1)), + 139: int8(-int32(1)), + 141: int8(-int32(2)), + 142: int8(-int32(2)), + 145: int8(-int32(3)), 147: int8(-int32(2)), - 148: int8(-int32(4)), - 149: int8(-int32(4)), - 150: int8(-int32(6)), - 152: int8(-int32(2)), + 149: int8(-int32(2)), + 150: int8(-int32(4)), + 151: int8(-int32(4)), + 152: int8(-int32(6)), 154: int8(-int32(2)), - 155: int8(-int32(2)), - 156: int8(-int32(4)), - 157: int8(-int32(9)), - 158: int8(-int32(5)), - 159: int8(-int32(7)), - 160: int8(-int32(3)), - 161: int8(-int32(5)), - 162: int8(-int32(7)), - 163: int8(-int32(8)), - 165: int8(-int32(2)), - 166: int8(-int32(12)), - 167: int8(-int32(9)), - 168: int8(-int32(5)), - 169: int8(-int32(8)), - 170: int8(-int32(2)), - 171: int8(-int32(2)), - 172: int8(-int32(1)), - 174: int8(-int32(3)), - 175: int8(-int32(3)), - 176: int8(-int32(1)), + 156: int8(-int32(2)), + 157: int8(-int32(2)), + 158: int8(-int32(4)), + 159: int8(-int32(9)), + 160: int8(-int32(5)), + 161: int8(-int32(7)), + 162: int8(-int32(3)), + 163: int8(-int32(5)), + 164: int8(-int32(7)), + 165: int8(-int32(8)), + 167: int8(-int32(2)), + 168: int8(-int32(12)), + 169: int8(-int32(9)), + 170: int8(-int32(5)), + 171: int8(-int32(8)), + 172: int8(-int32(2)), + 173: int8(-int32(2)), + 174: int8(-int32(1)), + 176: int8(-int32(3)), 177: int8(-int32(3)), 178: int8(-int32(1)), 179: int8(-int32(3)), - 180: int8(-int32(5)), - 181: int8(-int32(1)), - 182: int8(-int32(1)), + 180: int8(-int32(1)), + 181: int8(-int32(3)), + 182: int8(-int32(5)), 183: int8(-int32(1)), 184: int8(-int32(1)), - 185: int8(-int32(3)), - 186: int8(-int32(6)), - 187: int8(-int32(5)), - 188: int8(-int32(8)), - 189: int8(-int32(4)), - 190: int8(-int32(6)), - 191: int8(-int32(9)), - 192: int8(-int32(5)), - 193: int8(-int32(1)), + 185: int8(-int32(1)), + 186: int8(-int32(1)), + 187: int8(-int32(3)), + 188: int8(-int32(6)), + 189: int8(-int32(5)), + 190: int8(-int32(8)), + 191: int8(-int32(4)), + 192: int8(-int32(6)), + 193: int8(-int32(9)), 194: int8(-int32(5)), - 195: int8(-int32(3)), - 196: int8(-int32(3)), + 195: int8(-int32(1)), + 196: int8(-int32(5)), 197: int8(-int32(3)), 198: int8(-int32(3)), 199: int8(-int32(3)), 200: int8(-int32(3)), 201: int8(-int32(3)), 202: int8(-int32(3)), - 203: int8(-int32(2)), + 203: int8(-int32(3)), 204: int8(-int32(3)), - 205: int8(-int32(5)), - 206: int8(-int32(2)), - 207: int8(-int32(3)), - 208: int8(-int32(3)), - 209: int8(-int32(4)), - 210: int8(-int32(6)), - 211: int8(-int32(5)), - 212: int8(-int32(2)), - 213: int8(-int32(2)), + 205: int8(-int32(2)), + 206: int8(-int32(3)), + 207: int8(-int32(5)), + 208: int8(-int32(2)), + 209: int8(-int32(3)), + 210: int8(-int32(3)), + 211: int8(-int32(4)), + 212: int8(-int32(6)), + 213: int8(-int32(5)), 214: int8(-int32(2)), - 215: int8(-int32(3)), - 216: int8(-int32(1)), - 217: int8(-int32(2)), - 218: int8(-int32(5)), - 219: int8(-int32(1)), - 220: int8(-int32(2)), - 221: int8(-int32(5)), - 222: int8(-int32(3)), + 215: int8(-int32(2)), + 216: int8(-int32(2)), + 217: int8(-int32(3)), + 218: int8(-int32(1)), + 219: int8(-int32(2)), + 220: int8(-int32(5)), + 221: int8(-int32(1)), + 222: int8(-int32(2)), 223: int8(-int32(5)), - 224: int8(-int32(5)), - 225: int8(-int32(4)), + 224: int8(-int32(3)), + 225: int8(-int32(5)), 226: int8(-int32(5)), - 227: int8(-int32(5)), - 228: int8(-int32(4)), - 229: int8(-int32(2)), - 233: int8(-int32(3)), - 234: int8(-int32(1)), - 236: int8(-int32(3)), - 237: int8(-int32(12)), - 238: int8(-int32(1)), - 241: int8(-int32(3)), - 242: int8(-int32(5)), + 227: int8(-int32(4)), + 228: int8(-int32(5)), + 229: int8(-int32(5)), + 230: int8(-int32(4)), + 231: int8(-int32(2)), + 235: int8(-int32(3)), + 236: int8(-int32(1)), + 238: int8(-int32(3)), + 239: int8(-int32(12)), + 240: int8(-int32(1)), 243: int8(-int32(3)), - 245: int8(-int32(2)), - 246: int8(-int32(4)), + 244: int8(-int32(5)), + 245: int8(-int32(3)), 247: int8(-int32(2)), - 248: int8(-int32(3)), + 248: int8(-int32(4)), 249: int8(-int32(2)), - 251: int8(-int32(3)), - 252: int8(-int32(5)), - 253: int8(-int32(6)), + 250: int8(-int32(3)), + 251: int8(-int32(2)), + 253: int8(-int32(3)), 254: int8(-int32(5)), 255: int8(-int32(6)), - 256: int8(-int32(2)), - 257: int8(-int32(2)), - 258: int8(-int32(5)), - 259: int8(-int32(11)), - 260: int8(-int32(1)), - 261: int8(-int32(2)), - 263: int8(-int32(1)), - 264: int8(-int32(1)), - 265: int8(-int32(3)), - 267: int8(-int32(2)), - 268: int8(-int32(3)), + 256: int8(-int32(5)), + 257: int8(-int32(6)), + 258: int8(-int32(2)), + 259: int8(-int32(2)), + 260: int8(-int32(5)), + 261: int8(-int32(11)), + 262: int8(-int32(1)), + 263: int8(-int32(2)), + 265: int8(-int32(1)), + 266: int8(-int32(1)), + 267: int8(-int32(3)), 269: int8(-int32(2)), 270: int8(-int32(3)), - 271: int8(-int32(3)), - 272: int8(-int32(2)), - 273: int8(-int32(9)), - 274: int8(-int32(8)), - 275: int8(-int32(6)), - 276: int8(-int32(3)), - 277: int8(-int32(4)), - 278: int8(-int32(6)), - 279: int8(-int32(1)), - 280: int8(-int32(1)), + 271: int8(-int32(2)), + 272: int8(-int32(3)), + 273: int8(-int32(3)), + 274: int8(-int32(2)), + 275: int8(-int32(9)), + 276: int8(-int32(8)), + 277: int8(-int32(6)), + 278: int8(-int32(3)), + 279: int8(-int32(4)), + 280: int8(-int32(6)), 281: int8(-int32(1)), - 282: int8(-int32(4)), - 283: int8(-int32(6)), - 284: int8(-int32(3)), - 286: int8(-int32(2)), - 287: int8(-int32(1)), - 288: int8(-int32(3)), + 282: int8(-int32(1)), + 283: int8(-int32(1)), + 284: int8(-int32(4)), + 285: int8(-int32(6)), + 286: int8(-int32(3)), + 288: int8(-int32(2)), 289: int8(-int32(1)), 290: int8(-int32(3)), - 291: int8(-int32(6)), - 292: int8(-int32(7)), + 291: int8(-int32(1)), + 292: int8(-int32(3)), 293: int8(-int32(6)), - 294: int8(-int32(1)), - 295: int8(-int32(8)), + 294: int8(-int32(7)), + 295: int8(-int32(6)), 296: int8(-int32(1)), - 297: int8(-int32(4)), - 298: int8(-int32(8)), - 300: int8(-int32(1)), - 301: int8(-int32(3)), + 297: int8(-int32(8)), + 298: int8(-int32(1)), + 299: int8(-int32(4)), + 300: int8(-int32(8)), 302: int8(-int32(1)), - 303: int8(-int32(2)), - 304: int8(-int32(3)), - 305: int8(-int32(1)), - 306: int8(-int32(2)), - 307: int8(-int32(3)), - 308: int8(-int32(6)), - 309: int8(-int32(1)), - 310: int8(-int32(3)), - 311: int8(-int32(3)), - 312: int8(-int32(5)), - 313: int8(-int32(5)), - 314: int8(-int32(6)), - 315: int8(-int32(4)), + 303: int8(-int32(3)), + 304: int8(-int32(1)), + 305: int8(-int32(2)), + 306: int8(-int32(3)), + 307: int8(-int32(1)), + 308: int8(-int32(2)), + 309: int8(-int32(3)), + 310: int8(-int32(6)), + 311: int8(-int32(1)), + 312: int8(-int32(1)), + 313: int8(-int32(3)), + 314: int8(-int32(3)), + 315: int8(-int32(5)), 316: int8(-int32(5)), - 317: int8(-int32(2)), - 319: int8(-int32(3)), - 320: int8(-int32(6)), - 321: int8(-int32(1)), - 322: int8(-int32(1)), - 323: int8(-int32(2)), + 317: int8(-int32(6)), + 318: int8(-int32(4)), + 319: int8(-int32(5)), + 320: int8(-int32(2)), + 322: int8(-int32(3)), + 323: int8(-int32(6)), 324: int8(-int32(1)), - 325: int8(-int32(2)), + 325: int8(-int32(1)), 326: int8(-int32(2)), - 327: int8(-int32(2)), + 327: int8(-int32(1)), + 328: int8(-int32(2)), 329: int8(-int32(2)), 330: int8(-int32(2)), - 331: int8(-int32(2)), - 332: int8(-int32(1)), + 332: int8(-int32(2)), 333: int8(-int32(2)), 334: int8(-int32(2)), 335: int8(-int32(1)), - 336: int8(-int32(1)), - 337: int8(-int32(4)), - 338: int8(-int32(2)), - 339: int8(-int32(5)), - 340: int8(-int32(1)), + 336: int8(-int32(2)), + 337: int8(-int32(2)), + 338: int8(-int32(1)), + 339: int8(-int32(1)), + 340: int8(-int32(4)), 341: int8(-int32(2)), - 342: int8(-int32(1)), + 342: int8(-int32(5)), 343: int8(-int32(1)), - 344: int8(-int32(2)), - 345: int8(-int32(3)), + 344: int8(-int32(1)), + 345: int8(-int32(2)), + 346: int8(-int32(1)), 347: int8(-int32(1)), 348: int8(-int32(2)), - 349: int8(-int32(1)), - 351: int8(-int32(2)), - 352: int8(-int32(1)), - 353: int8(-int32(4)), - 354: int8(-int32(2)), - 355: int8(-int32(1)), + 349: int8(-int32(3)), + 351: int8(-int32(1)), + 352: int8(-int32(2)), + 353: int8(-int32(1)), + 355: int8(-int32(2)), 356: int8(-int32(1)), - 357: int8(-int32(1)), - 358: int8(-int32(1)), + 357: int8(-int32(4)), + 358: int8(-int32(2)), 359: int8(-int32(1)), 360: int8(-int32(1)), - 361: int8(-int32(2)), - 363: int8(-int32(2)), - 364: int8(-int32(4)), + 361: int8(-int32(1)), + 362: int8(-int32(1)), + 363: int8(-int32(1)), + 364: int8(-int32(1)), 365: int8(-int32(2)), - 366: int8(-int32(2)), - 367: int8(-int32(3)), - 368: int8(-int32(1)), - 370: int8(-int32(1)), - 371: int8(-int32(1)), + 367: int8(-int32(2)), + 368: int8(-int32(4)), + 369: int8(-int32(2)), + 370: int8(-int32(2)), + 371: int8(-int32(3)), 372: int8(-int32(1)), - 373: int8(-int32(1)), - 374: int8(-int32(2)), + 374: int8(-int32(1)), 375: int8(-int32(1)), 376: int8(-int32(1)), - 378: int8(-int32(1)), + 377: int8(-int32(1)), + 378: int8(-int32(2)), 379: int8(-int32(1)), 380: int8(-int32(1)), - 381: int8(-int32(1)), 382: int8(-int32(1)), 383: int8(-int32(1)), 384: int8(-int32(1)), 385: int8(-int32(1)), 386: int8(-int32(1)), 387: int8(-int32(1)), - 389: int8(-int32(3)), + 388: int8(-int32(1)), + 389: int8(-int32(1)), 390: int8(-int32(1)), - 392: int8(-int32(1)), - 395: int8(-int32(1)), + 391: int8(-int32(1)), + 393: int8(-int32(3)), + 394: int8(-int32(1)), 396: int8(-int32(1)), - 397: int8(-int32(3)), - 398: int8(-int32(2)), - 400: int8(-int32(4)), - 401: int8(-int32(2)), - 403: int8(-int32(1)), - 404: int8(-int32(1)), + 399: int8(-int32(1)), + 400: int8(-int32(1)), + 401: int8(-int32(3)), + 402: int8(-int32(2)), + 404: int8(-int32(4)), + 405: int8(-int32(2)), + 407: int8(-int32(1)), + 408: int8(-int32(1)), } // C documentation @@ -159520,18 +161133,19 @@ var _yyRuleInfoNRhs = [405]int8{ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int32, yyLookaheadToken TToken, pParse uintptr) (r uint16) { bp := tls.Alloc(144) defer tls.Free(144) - var bNot, bNot1, nExpr, yygoto, yysize, v344 int32 + var bNot, bNot1, nExpr, yygoto, yysize int32 var n Tu32 - var p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v343, v345, v346, v347, v348 uintptr + var op Tu8 + var p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v347, v348, v349, v350, v351 uintptr var yyact uint16 - var v349 TToken + var v352 TToken var _ /* all at bp+104 */ TToken var _ /* as at bp+72 */ TToken var _ /* dest at bp+16 */ TSelectDest var _ /* t at bp+88 */ TToken var _ /* x at bp+56 */ TToken var _ /* yylhsminor at bp+0 */ TYYMINORTYPE - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v343, v344, v345, v346, v347, v348, v349 /* Amount to pop the stack */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, op, p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v347, v348, v349, v350, v351, v352 /* Amount to pop the stack */ _ = yyLookahead _ = yyLookaheadToken yymsp = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos @@ -159552,7 +161166,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _7 case uint32(7): goto _8 - case uint32(321): + case uint32(324): goto _9 case uint32(9): goto _10 @@ -159580,9 +161194,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _21 case uint32(81): goto _22 - case uint32(98): + case uint32(100): goto _23 - case uint32(244): + case uint32(246): goto _24 case uint32(16): goto _25 @@ -159606,7 +161220,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _34 case uint32(26): goto _35 - case uint32(104): + case uint32(106): goto _36 case uint32(27): goto _37 @@ -159680,17 +161294,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _71 case uint32(61): goto _72 - case uint32(171): + case uint32(173): goto _73 case uint32(80): goto _74 case uint32(63): goto _75 - case uint32(217): + case uint32(219): goto _76 - case uint32(220): + case uint32(222): goto _77 - case uint32(245): + case uint32(247): goto _78 case uint32(64): goto _79 @@ -159712,7 +161326,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _87 case uint32(77): goto _88 - case uint32(172): + case uint32(174): goto _89 case uint32(78): goto _90 @@ -159746,47 +161360,47 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _104 case uint32(95): goto _105 - case uint32(96): - goto _106 case uint32(97): + goto _106 + case uint32(96): goto _107 - case uint32(132): + case uint32(98): goto _108 case uint32(99): goto _109 - case uint32(142): + case uint32(134): goto _110 - case uint32(232): + case uint32(101): goto _111 - case uint32(235): + case uint32(144): goto _112 - case uint32(240): + case uint32(234): goto _113 - case uint32(100): + case uint32(237): goto _114 - case uint32(101): + case uint32(242): goto _115 case uint32(102): goto _116 - case uint32(115): - goto _117 case uint32(103): + goto _117 + case uint32(104): goto _118 - case uint32(256): + case uint32(117): goto _119 - case uint32(257): + case uint32(105): goto _120 - case uint32(108): + case uint32(258): goto _121 - case uint32(105): + case uint32(259): goto _122 - case uint32(106): + case uint32(110): goto _123 case uint32(107): goto _124 - case uint32(109): + case uint32(108): goto _125 - case uint32(110): + case uint32(109): goto _126 case uint32(111): goto _127 @@ -159794,13 +161408,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _128 case uint32(113): goto _129 - case uint32(129): - goto _130 case uint32(114): + goto _130 + case uint32(115): goto _131 - case uint32(116): + case uint32(131): goto _132 - case uint32(117): + case uint32(116): goto _133 case uint32(118): goto _134 @@ -159824,15 +161438,15 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _143 case uint32(128): goto _144 - case uint32(130): + case uint32(129): goto _145 - case uint32(131): + case uint32(130): goto _146 - case uint32(143): + case uint32(132): goto _147 case uint32(133): goto _148 - case uint32(134): + case uint32(145): goto _149 case uint32(135): goto _150 @@ -159840,49 +161454,49 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _151 case uint32(137): goto _152 - case uint32(141): - goto _153 case uint32(138): - goto _154 + goto _153 case uint32(139): + goto _154 + case uint32(143): goto _155 case uint32(140): goto _156 - case uint32(146): + case uint32(141): goto _157 - case uint32(144): + case uint32(142): goto _158 - case uint32(151): + case uint32(148): goto _159 - case uint32(153): + case uint32(146): goto _160 - case uint32(230): + case uint32(153): goto _161 - case uint32(231): + case uint32(155): goto _162 - case uint32(250): + case uint32(232): goto _163 - case uint32(152): + case uint32(233): goto _164 - case uint32(145): + case uint32(252): goto _165 case uint32(154): goto _166 - case uint32(229): + case uint32(147): goto _167 - case uint32(249): + case uint32(156): goto _168 - case uint32(147): + case uint32(231): goto _169 - case uint32(148): + case uint32(251): goto _170 case uint32(149): goto _171 case uint32(150): goto _172 - case uint32(155): + case uint32(151): goto _173 - case uint32(156): + case uint32(152): goto _174 case uint32(157): goto _175 @@ -159912,9 +161526,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _187 case uint32(170): goto _188 - case uint32(173): + case uint32(171): goto _189 - case uint32(174): + case uint32(172): goto _190 case uint32(175): goto _191 @@ -159928,13 +161542,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _195 case uint32(180): goto _196 - case uint32(182): - goto _197 case uint32(181): + goto _197 + case uint32(182): goto _198 - case uint32(183): - goto _199 case uint32(184): + goto _199 + case uint32(183): goto _200 case uint32(185): goto _201 @@ -159958,13 +161572,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _210 case uint32(195): goto _211 - case uint32(197): - goto _212 case uint32(196): + goto _212 + case uint32(197): goto _213 - case uint32(198): - goto _214 case uint32(199): + goto _214 + case uint32(198): goto _215 case uint32(200): goto _216 @@ -159990,23 +161604,23 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _226 case uint32(211): goto _227 - case uint32(213): - goto _228 case uint32(212): + goto _228 + case uint32(213): goto _229 - case uint32(214): - goto _230 case uint32(215): + goto _230 + case uint32(214): goto _231 - case uint32(219): - goto _232 case uint32(216): + goto _232 + case uint32(217): goto _233 - case uint32(218): - goto _234 case uint32(221): + goto _234 + case uint32(218): goto _235 - case uint32(222): + case uint32(220): goto _236 case uint32(223): goto _237 @@ -160020,35 +161634,35 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _241 case uint32(228): goto _242 - case uint32(233): + case uint32(229): goto _243 - case uint32(234): + case uint32(230): goto _244 - case uint32(241): + case uint32(235): goto _245 case uint32(236): goto _246 - case uint32(237): + case uint32(243): goto _247 - case uint32(280): - goto _248 case uint32(238): - goto _249 + goto _248 case uint32(239): + goto _249 + case uint32(282): goto _250 - case uint32(242): + case uint32(240): goto _251 - case uint32(243): + case uint32(241): goto _252 - case uint32(246): + case uint32(244): goto _253 - case uint32(247): + case uint32(245): goto _254 case uint32(248): goto _255 - case uint32(251): + case uint32(249): goto _256 - case uint32(252): + case uint32(250): goto _257 case uint32(253): goto _258 @@ -160056,9 +161670,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _259 case uint32(255): goto _260 - case uint32(258): + case uint32(256): goto _261 - case uint32(259): + case uint32(257): goto _262 case uint32(260): goto _263 @@ -160066,21 +161680,21 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _264 case uint32(262): goto _265 - case uint32(264): - goto _266 case uint32(263): + goto _266 + case uint32(264): goto _267 - case uint32(265): + case uint32(266): goto _268 - case uint32(285): + case uint32(265): goto _269 - case uint32(266): + case uint32(267): goto _270 - case uint32(286): + case uint32(287): goto _271 - case uint32(267): - goto _272 case uint32(268): + goto _272 + case uint32(288): goto _273 case uint32(269): goto _274 @@ -160104,17 +161718,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _283 case uint32(279): goto _284 - case uint32(281): + case uint32(280): goto _285 - case uint32(282): + case uint32(281): goto _286 case uint32(283): goto _287 case uint32(284): goto _288 - case uint32(287): + case uint32(285): goto _289 - case uint32(288): + case uint32(286): goto _290 case uint32(289): goto _291 @@ -160138,19 +161752,19 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _300 case uint32(299): goto _301 - case uint32(301): - goto _302 case uint32(300): + goto _302 + case uint32(301): goto _303 - case uint32(302): + case uint32(303): goto _304 - case uint32(304): + case uint32(302): goto _305 - case uint32(303): + case uint32(304): goto _306 - case uint32(305): - goto _307 case uint32(306): + goto _307 + case uint32(305): goto _308 case uint32(307): goto _309 @@ -160180,31 +161794,31 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _321 case uint32(320): goto _322 - case uint32(324): + case uint32(321): goto _323 case uint32(322): goto _324 - case uint32(325): - goto _325 case uint32(323): - goto _326 + goto _325 case uint32(327): + goto _326 + case uint32(325): goto _327 - case uint32(326): - goto _328 case uint32(328): + goto _328 + case uint32(326): goto _329 - case uint32(329): + case uint32(330): goto _330 - case uint32(331): + case uint32(329): goto _331 - case uint32(330): + case uint32(331): goto _332 case uint32(332): goto _333 - case uint32(333): - goto _334 case uint32(334): + goto _334 + case uint32(333): goto _335 case uint32(335): goto _336 @@ -160216,34 +161830,42 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _339 case uint32(339): goto _340 - default: + case uint32(340): goto _341 + case uint32(341): + goto _342 + case uint32(342): + goto _343 + case uint32(343): + goto _344 + default: + goto _345 } - goto _342 + goto _346 _1: ; /* explain ::= EXPLAIN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(1) } - goto _342 + goto _346 _2: ; /* explain ::= EXPLAIN QUERY PLAN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(2) } - goto _342 + goto _346 _3: ; /* cmdx ::= cmd */ _sqlite3FinishCoding(tls, pParse) - goto _342 + goto _346 _4: ; /* cmd ::= BEGIN transtype trans_opt */ _sqlite3BeginTransaction(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _5: ; /* transtype ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_DEFERRED) - goto _342 + goto _346 _7: ; /* transtype ::= DEFERRED */ _6: @@ -160253,33 +161875,33 @@ _8: _9: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 + goto _346 _11: ; /* cmd ::= COMMIT|END trans_opt */ _10: ; _sqlite3EndTransaction(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor)) - goto _342 + goto _346 _12: ; /* cmd ::= SAVEPOINT nm */ _sqlite3Savepoint(tls, pParse, SAVEPOINT_BEGIN, yymsp+8) - goto _342 + goto _346 _13: ; /* cmd ::= RELEASE savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_RELEASE), yymsp+8) - goto _342 + goto _346 _14: ; /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_ROLLBACK), yymsp+8) - goto _342 + goto _346 _15: ; /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ _sqlite3StartTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), 0, 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _16: ; /* createkw ::= CREATE */ _disableLookaside(tls, pParse) - goto _342 + goto _346 _18: ; /* ifnotexists ::= */ _17: @@ -160297,56 +161919,56 @@ _23: _24: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = 0 - goto _342 + goto _346 _25: ; /* ifnotexists ::= IF NOT EXISTS */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(1) - goto _342 + goto _346 _26: ; /* temp ::= TEMP */ *(*int32)(unsafe.Pointer(yymsp + 8)) = libc.BoolInt32(int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0) - goto _342 + goto _346 _27: ; /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ _sqlite3EndTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*Tu32)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 + goto _346 _28: ; /* create_table_args ::= AS select */ _sqlite3EndTable(tls, pParse, uintptr(0), uintptr(0), uint32(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _29: ; /* table_option_set ::= */ *(*Tu32)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint32(0) - goto _342 + goto _346 _30: ; /* table_option_set ::= table_option_set COMMA table_option */ *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) | *(*Tu32)(unsafe.Pointer(yymsp + 8)) *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _31: ; /* table_option ::= WITHOUT nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16694, int32(5)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16781, int32(5)) == 0 { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) } else { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23358, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23481, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } - goto _342 + goto _346 _32: ; /* table_option ::= nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16607, int32(6)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16694, int32(6)) == 0 { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(TF_Strict) } else { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23358, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23481, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } *(*Tu32)(unsafe.Pointer(yymsp + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _33: ; /* columnname ::= nm typetoken */ _sqlite3AddColumn(tls, pParse, *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*TToken)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _35: ; /* typetoken ::= */ _34: @@ -160355,52 +161977,52 @@ _36: ; *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 + goto _346 _37: ; /* typetoken ::= typename LP signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) - goto _342 + goto _346 _38: ; /* typetoken ::= typename LP signed COMMA signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))))) - goto _342 + goto _346 _39: ; /* typename ::= typename ID|STRING */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) + uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) - goto _342 + goto _346 _40: ; /* scanpt ::= */ _ = libc.Int32FromInt32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken.Fz - goto _342 + goto _346 _41: ; /* scantok ::= */ _ = libc.Int32FromInt32(0) *(*TToken)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken - goto _342 + goto _346 _43: ; /* ccons ::= CONSTRAINT nm */ _42: ; (*TParse)(unsafe.Pointer(pParse)).FconstraintName = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _44: ; /* ccons ::= DEFAULT scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _45: ; /* ccons ::= DEFAULT LP expr RP */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))+uintptr(1), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _46: ; /* ccons ::= DEFAULT PLUS scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _47: ; /* ccons ::= DEFAULT MINUS scantok term */ p = _sqlite3PExpr(tls, pParse, int32(TK_UMINUS), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) _sqlite3AddDefaultValue(tls, pParse, p, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _48: ; /* ccons ::= DEFAULT scantok ID|INDEXED */ p1 = _tokenExpr(tls, pParse, int32(TK_STRING), *(*TToken)(unsafe.Pointer(yymsp + 8))) @@ -160408,99 +162030,99 @@ _48: _sqlite3ExprIdToTrueFalse(tls, p1) } _sqlite3AddDefaultValue(tls, pParse, p1, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - goto _342 + goto _346 _49: ; /* ccons ::= NOT NULL onconf */ _sqlite3AddNotNull(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _50: ; /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ _sqlite3AddPrimaryKey(tls, pParse, uintptr(0), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _51: ; /* ccons ::= UNIQUE onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _52: ; /* ccons ::= CHECK LP expr RP */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _53: ; /* ccons ::= REFERENCES nm eidlist_opt refargs */ _sqlite3CreateForeignKey(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _54: ; /* ccons ::= defer_subclause */ _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _55: ; /* ccons ::= COLLATE ID|STRING */ _sqlite3AddCollateType(tls, pParse, yymsp+8) - goto _342 + goto _346 _56: ; /* generated ::= LP expr RP */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 + goto _346 _57: ; /* generated ::= LP expr RP ID */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 + goto _346 _58: ; /* autoinc ::= AUTOINCR */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(1) - goto _342 + goto _346 _59: ; /* refargs ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = libc.Int32FromInt32(OE_None) * libc.Int32FromInt32(0x0101) /* EV: R-19803-45884 */ - goto _342 + goto _346 _60: ; /* refargs ::= refargs refarg */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) & ^*(*int32)(unsafe.Pointer(yymsp + 8 + 4)) | *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _61: ; /* refarg ::= MATCH nm */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _62: ; /* refarg ::= ON INSERT refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _63: ; /* refarg ::= ON DELETE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x0000ff) - goto _342 + goto _346 _64: ; /* refarg ::= ON UPDATE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) << int32(8) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x00ff00) - goto _342 + goto _346 _65: ; /* refact ::= SET NULL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetNull) /* EV: R-33326-45252 */ - goto _342 + goto _346 _66: ; /* refact ::= SET DEFAULT */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetDflt) /* EV: R-33326-45252 */ - goto _342 + goto _346 _67: ; /* refact ::= CASCADE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Cascade) /* EV: R-33326-45252 */ - goto _342 + goto _346 _68: ; /* refact ::= RESTRICT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Restrict) /* EV: R-33326-45252 */ - goto _342 + goto _346 _69: ; /* refact ::= NO ACTION */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = OE_None /* EV: R-33326-45252 */ - goto _342 + goto _346 _70: ; /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 - goto _342 + goto _346 _72: ; /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ _71: @@ -160508,7 +162130,7 @@ _71: _73: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _75: ; /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ _74: @@ -160520,64 +162142,64 @@ _77: _78: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(1) - goto _342 + goto _346 _79: ; /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 - goto _342 + goto _346 _80: ; /* tconscomma ::= COMMA */ (*TParse)(unsafe.Pointer(pParse)).FconstraintName.Fn = uint32(0) - goto _342 + goto _346 _81: ; /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ _sqlite3AddPrimaryKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), 0) - goto _342 + goto _346 _82: ; /* tcons ::= UNIQUE LP sortlist RP onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _83: ; /* tcons ::= CHECK LP expr RP onconf */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _84: ; /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ _sqlite3CreateForeignKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _86: ; /* onconf ::= */ _85: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(OE_Default) - goto _342 + goto _346 _87: ; /* onconf ::= ON CONFLICT resolvetype */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _88: ; /* resolvetype ::= IGNORE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Ignore) - goto _342 + goto _346 _90: ; /* resolvetype ::= REPLACE */ _89: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Replace) - goto _342 + goto _346 _91: ; /* cmd ::= DROP TABLE ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _92: ; /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ _sqlite3CreateView(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) - goto _342 + goto _346 _93: ; /* cmd ::= DROP VIEW ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), int32(1), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _94: ; /* cmd ::= select */ *(*TSelectDest)(unsafe.Pointer(bp + 16)) = TSelectDest{ @@ -160585,22 +162207,22 @@ _94: } _sqlite3Select(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), bp+16) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _95: ; /* select ::= WITH wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _96: ; /* select ::= WITH RECURSIVE wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _97: ; /* select ::= selectnowith */ p2 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) if p2 != 0 { _parserDoubleLinkSelect(tls, pParse, p2) } - goto _342 + goto _346 _98: ; /* selectnowith ::= selectnowith multiselect_op oneselect */ pRhs = *(*uintptr)(unsafe.Pointer(yymsp + 8)) @@ -160625,21 +162247,21 @@ _98: _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pLhs) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = pRhs - goto _342 + goto _346 _100: ; /* multiselect_op ::= UNION */ _99: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-OP*/ - goto _342 + goto _346 _101: ; /* multiselect_op ::= UNION ALL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_ALL) - goto _342 + goto _346 _102: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _103: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(9))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -160648,116 +162270,111 @@ _103: } else { _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) } - goto _342 + goto _346 _104: ; /* values ::= VALUES LP nexprlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) - goto _342 + goto _346 _105: - ; /* values ::= values COMMA LP nexprlist RP */ - pLeft = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) - pRight = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(libc.Int32FromInt32(SF_Values)|libc.Int32FromInt32(SF_MultiValue)), uintptr(0)) - if pLeft != 0 { - *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) - } - if pRight != 0 { - (*TSelect)(unsafe.Pointer(pRight)).Fop = uint8(TK_ALL) - (*TSelect)(unsafe.Pointer(pRight)).FpPrior = pLeft - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pRight - } else { - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pLeft - } - goto _342 + ; /* oneselect ::= mvalues */ + _sqlite3MultiValuesEnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_107: + ; /* mvalues ::= values COMMA LP nexprlist RP */ _106: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3MultiValues(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_108: ; /* distinct ::= DISTINCT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_Distinct) - goto _342 -_107: + goto _346 +_109: ; /* distinct ::= ALL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_All) - goto _342 -_109: + goto _346 +_111: ; /* sclp ::= */ -_108: - ; _110: ; -_111: - ; _112: ; _113: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 _114: + ; +_115: + ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 +_116: ; /* selcollist ::= sclp scanpt expr scanpt as */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) > uint32(0) { _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+8, int32(1)) } _sqlite3ExprListSetSpan(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_115: + goto _346 +_117: ; /* selcollist ::= sclp scanpt STAR */ p3 = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_ASTERISK), uintptr(0)) _sqlite3ExprSetErrorOffset(tls, p3, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), p3) - goto _342 -_116: + goto _346 +_118: ; /* selcollist ::= sclp scanpt nm DOT STAR */ - pRight1 = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) - _sqlite3ExprSetErrorOffset(tls, pRight1, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) - pLeft1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft1, pRight1) + pRight = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) + _sqlite3ExprSetErrorOffset(tls, pRight, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) + pLeft = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) + pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft, pRight) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pDot) - goto _342 -_118: + goto _346 +_120: ; /* as ::= AS nm */ -_117: - ; _119: ; -_120: +_121: ; - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 _122: + ; + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) + goto _346 +_124: ; /* from ::= */ -_121: +_123: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_123: + goto _346 +_125: ; /* from ::= FROM seltablist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) _sqlite3SrcListShiftJoinType(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_124: + goto _346 +_126: ; /* stl_prefix ::= seltablist joinop */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 && (*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc > 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8 + uintptr((*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc-int32(1))*104))).Ffg.Fjointype = uint8(*(*int32)(unsafe.Pointer(yymsp + 8))) } - goto _342 -_125: + goto _346 +_127: ; /* seltablist ::= stl_prefix nm dbnm as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) - goto _342 -_126: + goto _346 +_128: ; /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_127: + goto _346 +_129: ; /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListFuncArgs(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) - goto _342 -_128: + goto _346 +_130: ; /* seltablist ::= stl_prefix LP select RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_129: + goto _346 +_131: ; /* seltablist ::= stl_prefix LP seltablist RP as on_using */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) == uintptr(0) && *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) == uint32(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8)) == uintptr(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) @@ -160779,9 +162396,9 @@ _129: libc.SetBitFieldPtr16Uint32(pOld+60+4, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pNew+60+4, libc.Uint32FromInt32(1), 2, 0x4) } - v343 = libc.UintptrFromInt32(0) - (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v343 - (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v343 + v347 = libc.UintptrFromInt32(0) + (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v347 + (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v347 (*TSrcItem)(unsafe.Pointer(pOld)).FpSelect = uintptr(0) } _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) @@ -160791,189 +162408,189 @@ _129: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, pSubquery, yymsp+8) } } - goto _342 -_131: + goto _346 +_133: ; /* dbnm ::= */ -_130: +_132: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) - goto _342 -_132: + goto _346 +_134: ; /* fullname ::= nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_133: + goto _346 +_135: ; /* fullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_134: + goto _346 +_136: ; /* xfullname ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) /*A-overwrites-X*/ - goto _342 -_135: + goto _346 +_137: ; /* xfullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) /*A-overwrites-X*/ - goto _342 -_136: + goto _346 +_138: ; /* xfullname ::= nm DOT nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_137: + goto _346 +_139: ; /* xfullname ::= nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0)) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_138: + goto _346 +_140: ; /* joinop ::= COMMA|JOIN */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(JT_INNER) - goto _342 -_139: + goto _346 +_141: ; /* joinop ::= JOIN_KW JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), uintptr(0)) /*X-overwrites-A*/ - goto _342 -_140: + goto _346 +_142: ; /* joinop ::= JOIN_KW nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0)) /*X-overwrites-A*/ - goto _342 -_141: + goto _346 +_143: ; /* joinop ::= JOIN_KW nm nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) /*X-overwrites-A*/ - goto _342 -_142: + goto _346 +_144: ; /* on_using ::= ON expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uintptr(0) - goto _342 -_143: + goto _346 +_145: ; /* on_using ::= USING LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_144: + goto _346 +_146: ; /* on_using ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uintptr(0) - goto _342 -_145: + goto _346 +_147: ; /* indexed_by ::= INDEXED BY nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 -_146: + goto _346 +_148: ; /* indexed_by ::= NOT INDEXED */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(1) - goto _342 -_148: + goto _346 +_150: ; /* orderby_opt ::= ORDER BY sortlist */ -_147: +_149: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_149: + goto _346 +_151: ; /* sortlist ::= sortlist COMMA expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_150: + goto _346 +_152: ; /* sortlist ::= expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) /*A-overwrites-Y*/ _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_151: + goto _346 +_153: ; /* sortorder ::= ASC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = SQLITE_SO_ASC - goto _342 -_152: + goto _346 +_154: ; /* sortorder ::= DESC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_154: + goto _346 +_156: ; /* sortorder ::= */ -_153: +_155: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = -int32(1) - goto _342 -_155: + goto _346 +_157: ; /* nulls ::= NULLS FIRST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = SQLITE_SO_ASC - goto _342 -_156: + goto _346 +_158: ; /* nulls ::= NULLS LAST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_158: + goto _346 +_160: ; /* having_opt ::= */ -_157: - ; _159: ; -_160: - ; _161: ; _162: ; _163: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_165: - ; /* having_opt ::= HAVING expr */ _164: ; -_166: +_165: ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 _167: + ; /* having_opt ::= HAVING expr */ +_166: ; _168: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 _169: + ; +_170: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + goto _346 +_171: ; /* limit_opt ::= LIMIT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 -_170: + goto _346 +_172: ; /* limit_opt ::= LIMIT expr OFFSET expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_171: + goto _346 +_173: ; /* limit_opt ::= LIMIT expr COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 -_172: + goto _346 +_174: ; /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) _sqlite3DeleteFrom(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0)) - goto _342 -_173: + goto _346 +_175: ; /* where_opt_ret ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) - goto _342 -_174: + goto _346 +_176: ; /* where_opt_ret ::= WHERE expr RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) - goto _342 -_175: + goto _346 +_177: ; /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) - _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23385) + _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23508) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { pFromClause = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) if (*TSrcList)(unsafe.Pointer(pFromClause)).FnSrc > int32(1) { @@ -160985,95 +162602,95 @@ _175: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendList(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), pFromClause) } _sqlite3Update(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_176: + goto _346 +_178: ; /* setlist ::= setlist COMMA nm EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) - goto _342 -_177: + goto _346 +_179: ; /* setlist ::= setlist COMMA LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_178: + goto _346 +_180: ; /* setlist ::= nm EQ expr */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_179: + goto _346 +_181: ; /* setlist ::= LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_180: + goto _346 +_182: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_181: + goto _346 +_183: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0)) - goto _342 -_182: + goto _346 +_184: ; /* upsert ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_183: + goto _346 +_185: ; /* upsert ::= RETURNING selcollist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_184: + goto _346 +_186: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(11))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_185: + goto _346 +_187: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_186: + goto _346 +_188: ; /* upsert ::= ON CONFLICT DO NOTHING returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_187: + goto _346 +_189: ; /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_188: + goto _346 +_190: ; /* returning ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_189: + goto _346 +_191: ; /* idlist_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_190: + goto _346 +_192: ; /* idlist_opt ::= LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_191: + goto _346 +_193: ; /* idlist ::= idlist COMMA nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3IdListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 -_192: + goto _346 +_194: ; /* idlist ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3IdListAppend(tls, pParse, uintptr(0), yymsp+8) /*A-overwrites-Y*/ - goto _342 -_193: + goto _346 +_195: ; /* expr ::= LP expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_194: + goto _346 +_196: ; /* expr ::= ID|INDEXED|JOIN_KW */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_195: + goto _346 +_197: ; /* expr ::= nm DOT nm */ temp1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) temp2 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp1, temp2) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_196: + goto _346 +_198: ; /* expr ::= nm DOT nm DOT nm */ temp11 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) temp21 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) @@ -161084,22 +162701,22 @@ _196: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp11, temp4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_198: + goto _346 +_200: ; /* term ::= NULL|FLOAT|BLOB */ -_197: +_199: ; *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_199: + goto _346 +_201: ; /* term ::= INTEGER */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), yymsp+8, int32(1)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 52)) = int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8))) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_200: + goto _346 +_202: ; /* expr ::= VARIABLE */ if !(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8))))) == int32('#') && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)) + 1))])&int32(0x04) != 0) { n = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) @@ -161112,7 +162729,7 @@ _200: *(*TToken)(unsafe.Pointer(bp + 88)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) /*A-overwrites-X*/ _ = libc.Int32FromInt32(0) if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23394, libc.VaList(bp+128, bp+88)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23517, libc.VaList(bp+128, bp+88)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = uintptr(0) } else { *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_REGISTER), uintptr(0), uintptr(0)) @@ -161121,57 +162738,57 @@ _200: } } } - goto _342 -_201: + goto _346 +_203: ; /* expr ::= expr COLLATE ID|STRING */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAddCollateToken(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8, int32(1)) - goto _342 -_202: + goto _346 +_204: ; /* expr ::= CAST LP expr AS typetoken RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_CAST), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) _sqlite3ExprAttachSubtrees(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) - goto _342 -_203: + goto _346 +_205: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_204: + goto _346 +_206: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_205: + goto _346 +_207: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_206: + goto _346 +_208: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_207: + goto _346 +_209: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_208: + goto _346 +_210: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, 0) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_209: + goto _346 +_211: ; /* term ::= CTIME_KW */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_210: + goto _346 +_212: ; /* expr ::= LP nexprlist COMMA expr RP */ pList = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_VECTOR), uintptr(0), uintptr(0)) @@ -161183,33 +162800,33 @@ _210: } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) } - goto _342 -_211: + goto _346 +_213: ; /* expr ::= expr AND expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_213: + goto _346 +_215: ; /* expr ::= expr OR expr */ -_212: - ; _214: ; -_215: - ; _216: ; _217: ; _218: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 _219: + ; +_220: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_221: ; /* likeop ::= NOT LIKE_KW|MATCH */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) |= uint32(0x80000000) /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/ - goto _342 -_220: + goto _346 +_222: ; /* expr ::= expr likeop expr */ bNot = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -161222,8 +162839,8 @@ _220: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_221: + goto _346 +_223: ; /* expr ::= expr likeop expr ESCAPE expr */ bNot1 = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -161237,65 +162854,69 @@ _221: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_222: + goto _346 +_224: ; /* expr ::= expr ISNULL|NOTNULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_223: + goto _346 +_225: ; /* expr ::= expr NOT NULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOTNULL), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uintptr(0)) - goto _342 -_224: + goto _346 +_226: ; /* expr ::= expr IS expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_225: + goto _346 +_227: ; /* expr ::= expr IS NOT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_226: + goto _346 +_228: ; /* expr ::= expr IS NOT DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_227: + goto _346 +_229: ; /* expr ::= expr IS DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_229: + goto _346 +_231: ; /* expr ::= NOT expr */ -_228: +_230: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) /*A-overwrites-B*/ - goto _342 -_230: + goto _346 +_232: ; /* expr ::= PLUS|MINUS expr */ - if int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) == int32(TK_PLUS) { - v344 = int32(TK_UPLUS) + p4 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + op = uint8(int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) + (libc.Int32FromInt32(TK_UPLUS) - libc.Int32FromInt32(TK_PLUS))) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if p4 != 0 && int32((*TExpr)(unsafe.Pointer(p4)).Fop) == int32(TK_UPLUS) { + (*TExpr)(unsafe.Pointer(p4)).Fop = op + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = p4 } else { - v344 = int32(TK_UMINUS) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(op), p4, uintptr(0)) + /*A-overwrites-B*/ } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, v344, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - /*A-overwrites-B*/ - goto _342 -_231: + goto _346 +_233: ; /* expr ::= expr PTR expr */ pList3 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList3 = _sqlite3ExprListAppend(tls, pParse, pList3, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, pList3, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_233: + goto _346 +_235: ; /* between_op ::= BETWEEN */ -_232: +_234: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = 0 - goto _342 -_234: + goto _346 +_236: ; /* expr ::= expr between_op expr AND expr */ pList4 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList4 = _sqlite3ExprListAppend(tls, pParse, pList4, *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -161308,8 +162929,8 @@ _234: if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_235: + goto _346 +_237: ; /* expr ::= expr in_op LP exprlist RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) == uintptr(0) { /* Expressions of the form @@ -161322,17 +162943,17 @@ _235: */ _sqlite3ExprUnmapAndDelete(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { - v345 = __ccgo_ts + 7886 + v348 = __ccgo_ts + 8011 } else { - v345 = __ccgo_ts + 7891 + v348 = __ccgo_ts + 8016 } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v345) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v348) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { _sqlite3ExprIdToTrueFalse(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } } else { pRHS = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr - if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { + if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pParse, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr = uintptr(0) _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) pRHS = _sqlite3PExpr(tls, pParse, int32(TK_UPLUS), pRHS, uintptr(0)) @@ -161366,463 +162987,467 @@ _235: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } } - goto _342 -_236: + goto _346 +_238: ; /* expr ::= LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_SELECT), uintptr(0), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_237: + goto _346 +_239: ; /* expr ::= expr in_op LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_238: + goto _346 +_240: ; /* expr ::= expr in_op nm dbnm paren_exprlist */ pSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) pSelect = _sqlite3SelectNew(tls, pParse, uintptr(0), pSrc, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { if pSelect != 0 { - v346 = pSrc + v349 = pSrc } else { - v346 = uintptr(0) + v349 = uintptr(0) } - _sqlite3SrcListFuncArgs(tls, pParse, v346, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + _sqlite3SrcListFuncArgs(tls, pParse, v349, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pSelect) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_239: + goto _346 +_241: ; /* expr ::= EXISTS LP select RP */ - v347 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v347 - p4 = v347 - _sqlite3PExprAddSelect(tls, pParse, p4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_240: + v350 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v350 + p5 = v350 + _sqlite3PExprAddSelect(tls, pParse, p5, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_242: ; /* expr ::= CASE case_operand case_exprlist case_else END */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_CASE), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { - v348 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + v351 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } else { - v348 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + v351 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) } - *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v348 + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v351 _sqlite3ExprSetHeightAndFlags(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } - goto _342 -_241: + goto _346 +_243: ; /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_242: + goto _346 +_244: ; /* case_exprlist ::= WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_243: + goto _346 +_245: ; /* nexprlist ::= nexprlist COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_244: + goto _346 +_246: ; /* nexprlist ::= expr */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_246: + goto _346 +_248: ; /* paren_exprlist ::= LP exprlist RP */ -_245: +_247: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_247: + goto _346 +_249: ; /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ _sqlite3CreateIndex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, uintptr(0)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(11))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8)), SQLITE_SO_ASC, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), uint8(SQLITE_IDXTYPE_APPDEF)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && (*TParse)(unsafe.Pointer(pParse)).FpNewIndex != 0 { _sqlite3RenameTokenMap(tls, pParse, (*TIndex)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpNewIndex)).FzName, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) } - goto _342 -_249: + goto _346 +_251: ; /* uniqueflag ::= UNIQUE */ -_248: +_250: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Abort) - goto _342 -_250: + goto _346 +_252: ; /* uniqueflag ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = OE_None - goto _342 -_251: + goto _346 +_253: ; /* eidlist ::= eidlist COMMA nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_252: + goto _346 +_254: ; /* eidlist ::= nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_253: + goto _346 +_255: ; /* cmd ::= DROP INDEX ifexists fullname */ _sqlite3DropIndex(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_254: + goto _346 +_256: ; /* cmd ::= VACUUM vinto */ _sqlite3Vacuum(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_255: + goto _346 +_257: ; /* cmd ::= VACUUM nm vinto */ _sqlite3Vacuum(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_256: + goto _346 +_258: ; /* cmd ::= PRAGMA nm dbnm */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, uintptr(0), 0) - goto _342 -_257: + goto _346 +_259: ; /* cmd ::= PRAGMA nm dbnm EQ nmnum */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, 0) - goto _342 -_258: + goto _346 +_260: ; /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) - goto _342 -_259: + goto _346 +_261: ; /* cmd ::= PRAGMA nm dbnm EQ minus_num */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, int32(1)) - goto _342 -_260: + goto _346 +_262: ; /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) - goto _342 -_261: + goto _346 +_263: ; /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ (*(*TToken)(unsafe.Pointer(bp + 104))).Fz = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) (*(*TToken)(unsafe.Pointer(bp + 104))).Fn = uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) + *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) _sqlite3FinishTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), bp+104) - goto _342 -_262: + goto _346 +_264: ; /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ _sqlite3BeginTrigger(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8 + 8)) == uint32(0) { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) } else { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) } - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v349 /*A-overwrites-T*/ - goto _342 -_263: + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v352 /*A-overwrites-T*/ + goto _346 +_265: ; /* trigger_time ::= BEFORE|AFTER */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_264: + goto _346 +_266: ; /* trigger_time ::= INSTEAD OF */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_INSTEAD) - goto _342 -_265: + goto _346 +_267: ; /* trigger_time ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_BEFORE) - goto _342 -_267: + goto _346 +_269: ; /* trigger_event ::= DELETE|INSERT */ -_266: +_268: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) = uintptr(0) - goto _342 -_268: + goto _346 +_270: ; /* trigger_event ::= UPDATE OF idlist */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(TK_UPDATE) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_270: + goto _346 +_272: ; /* when_clause ::= */ -_269: +_271: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_272: + goto _346 +_274: ; /* when_clause ::= WHEN expr */ -_271: +_273: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_273: + goto _346 +_275: ; /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ _ = libc.Int32FromInt32(0) (*TTriggerStep)(unsafe.Pointer((*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast)).FpNext = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_274: + goto _346 +_276: ; /* trigger_cmd_list ::= trigger_cmd SEMI */ _ = libc.Int32FromInt32(0) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_275: + goto _346 +_277: ; /* trnm ::= nm DOT nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23418, 0) - goto _342 -_276: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23541, 0) + goto _346 +_278: ; /* tridxby ::= INDEXED BY nm */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23513, 0) - goto _342 -_277: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23636, 0) + goto _346 +_279: ; /* tridxby ::= NOT INDEXED */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23597, 0) - goto _342 -_278: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23720, 0) + goto _346 +_280: ; /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerUpdateStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_279: + goto _346 +_281: ; /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_280: + goto _346 +_282: ; /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerDeleteStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_281: + goto _346 +_283: ; /* trigger_cmd ::= scanpt select scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_282: + goto _346 +_284: ; /* expr ::= RAISE LP IGNORE RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_RAISE), uintptr(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)))).FaffExpr = uint8(OE_Ignore) } - goto _342 -_283: + goto _346 +_285: ; /* expr ::= RAISE LP raisetype COMMA nm RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_RAISE), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)))).FaffExpr = uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) } - goto _342 -_284: + goto _346 +_286: ; /* raisetype ::= ROLLBACK */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Rollback) - goto _342 -_285: + goto _346 +_287: ; /* raisetype ::= FAIL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Fail) - goto _342 -_286: + goto _346 +_288: ; /* cmd ::= DROP TRIGGER ifexists fullname */ _sqlite3DropTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_287: + goto _346 +_289: ; /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ _sqlite3Attach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_288: + goto _346 +_290: ; /* cmd ::= DETACH database_kw_opt expr */ _sqlite3Detach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_289: + goto _346 +_291: ; /* cmd ::= REINDEX */ _sqlite3Reindex(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_290: + goto _346 +_292: ; /* cmd ::= REINDEX nm dbnm */ _sqlite3Reindex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_291: + goto _346 +_293: ; /* cmd ::= ANALYZE */ _sqlite3Analyze(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_292: + goto _346 +_294: ; /* cmd ::= ANALYZE nm dbnm */ _sqlite3Analyze(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_293: + goto _346 +_295: ; /* cmd ::= ALTER TABLE fullname RENAME TO nm */ _sqlite3AlterRenameTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_294: + goto _346 +_296: ; /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(int32(int64((*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fz)-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) + (*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fn _sqlite3AlterFinishAddColumn(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_295: + goto _346 +_297: ; /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ _sqlite3AlterDropColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_296: + goto _346 +_298: ; /* add_column_fullname ::= fullname */ _disableLookaside(tls, pParse) _sqlite3AlterBeginAddColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_297: + goto _346 +_299: ; /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ _sqlite3AlterRenameColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) - goto _342 -_298: + goto _346 +_300: ; /* cmd ::= create_vtab */ _sqlite3VtabFinishParse(tls, pParse, uintptr(0)) - goto _342 -_299: + goto _346 +_301: ; /* cmd ::= create_vtab LP vtabarglist RP */ _sqlite3VtabFinishParse(tls, pParse, yymsp+8) - goto _342 -_300: + goto _346 +_302: ; /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ _sqlite3VtabBeginParse(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) - goto _342 -_301: + goto _346 +_303: ; /* vtabarg ::= */ _sqlite3VtabArgInit(tls, pParse) - goto _342 -_303: + goto _346 +_305: ; /* vtabargtoken ::= ANY */ -_302: - ; _304: ; - _sqlite3VtabArgExtend(tls, pParse, yymsp+8) - goto _342 _306: + ; + _sqlite3VtabArgExtend(tls, pParse, yymsp+8) + goto _346 +_308: ; /* with ::= WITH wqlist */ -_305: +_307: ; _sqlite3WithPush(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint8(1)) - goto _342 -_307: + goto _346 +_309: ; /* wqas ::= AS */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8(M10d_Any) - goto _342 -_308: + goto _346 +_310: ; /* wqas ::= AS MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8(M10d_Yes) - goto _342 -_309: + goto _346 +_311: ; /* wqas ::= AS NOT MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = uint8(M10d_No) - goto _342 -_310: - ; /* wqitem ::= nm eidlist_opt wqas LP select RP */ + goto _346 +_312: + ; /* wqitem ::= withnm eidlist_opt wqas LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3CteNew(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) /*A-overwrites-X*/ - goto _342 -_311: + goto _346 +_313: + ; /* withnm ::= nm */ + (*TParse)(unsafe.Pointer(pParse)).FbHasWith = uint8(1) + goto _346 +_314: ; /* wqlist ::= wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3WithAdd(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_312: + goto _346 +_315: ; /* wqlist ::= wqlist COMMA wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3WithAdd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_313: + goto _346 +_316: ; /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ _ = libc.Int32FromInt32(0) _sqlite3WindowChain(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpNextWin = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_314: + goto _346 +_317: ; /* windowdefn ::= nm AS LP window RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)))) } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_315: + goto _346 +_318: ; /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_316: + goto _346 +_319: ; /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_317: + goto _346 +_320: ; /* window ::= ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_318: + goto _346 +_321: ; /* window ::= nm ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_319: + goto _346 +_322: ; /* window ::= nm frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_320: + goto _346 +_323: ; /* frame_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = _sqlite3WindowAlloc(tls, pParse, 0, int32(TK_UNBOUNDED), uintptr(0), int32(TK_CURRENT), uintptr(0), uint8(0)) - goto _342 -_321: + goto _346 +_324: ; /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), int32(TK_CURRENT), uintptr(0), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_322: + goto _346 +_325: ; /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_324: + goto _346 +_327: ; /* frame_bound_s ::= frame_bound */ -_323: +_326: ; *(*TFrameBound)(unsafe.Pointer(bp)) = *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_326: + goto _346 +_329: ; /* frame_bound_s ::= UNBOUNDED PRECEDING */ -_325: +_328: ; -_327: +_330: ; (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = uintptr(0) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_328: + goto _346 +_331: ; /* frame_bound ::= expr PRECEDING|FOLLOWING */ (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_329: + goto _346 +_332: ; /* frame_exclude_opt ::= */ *(*Tu8)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint8(0) - goto _342 -_330: + goto _346 +_333: ; /* frame_exclude_opt ::= EXCLUDE frame_exclude */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*Tu8)(unsafe.Pointer(yymsp + 8)) - goto _342 -_332: + goto _346 +_335: ; /* frame_exclude ::= NO OTHERS */ -_331: +_334: ; *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) /*A-overwrites-X*/ - goto _342 -_333: + goto _346 +_336: ; /* frame_exclude ::= GROUP|TIES */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_334: + goto _346 +_337: ; /* window_clause ::= WINDOW windowdefn_list */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_335: + goto _346 +_338: ; /* filter_over ::= filter_clause over_clause */ if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpFilter = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) @@ -161831,13 +163456,13 @@ _335: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_336: + goto _346 +_339: ; /* filter_over ::= over_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_337: + goto _346 +_340: ; /* filter_over ::= filter_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { @@ -161847,24 +163472,30 @@ _337: _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_338: + goto _346 +_341: ; /* over_clause ::= OVER LP window RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) _ = libc.Int32FromInt32(0) - goto _342 -_339: + goto _346 +_342: ; /* over_clause ::= OVER nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) } - goto _342 -_340: + goto _346 +_343: ; /* filter_clause ::= FILTER LP WHERE expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_341: + goto _346 +_344: + ; /* term ::= QNUMBER */ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) + _sqlite3DequoteNumber(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp))))) + *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + goto _346 +_345: ; _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -161881,9 +163512,9 @@ _341: _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - goto _342 + goto _346 /********** End reduce actions ************************************************/ -_342: +_346: ; _ = libc.Int32FromInt32(0) yygoto = int32(_yyRuleInfoLhs[yyruleno]) @@ -161920,9 +163551,9 @@ func _yy_syntax_error(tls *libc.TLS, yypParser uintptr, yymajor int32, _yyminor /************ Begin %syntax_error code ****************************************/ _ = yymajor /* Silence some compiler warnings */ if *(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp))).Fz)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23394, libc.VaList(bp+24, bp)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23517, libc.VaList(bp+24, bp)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23682, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23805, 0) } /************ End %syntax_error code ******************************************/ /* Suppress warning about unused %extra_argument variable */ @@ -161991,8 +163622,10 @@ func _sqlite3Parser(tls *libc.TLS, yyp uintptr, yymajor int32, yyminor TToken) { ** enough on the stack to push the LHS value */ if int32(_yyRuleInfoNRhs[yyruleno]) == 0 { if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos >= (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - _yyStackOverflow(tls, yypParser) - break + if _yyGrowStack(tls, yypParser) != 0 { + _yyStackOverflow(tls, yypParser) + break + } } } yyact = _yy_reduce(tls, yypParser, yyruleno, yymajor, yyminor, pParse) @@ -164144,9 +165777,9 @@ func _analyzeFilterKeyword(tls *libc.TLS, _z uintptr, lastToken int32) (r int32) // ** Store the token type in *tokenType before returning. // */ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { - var c, delim, i, n, v10, v14, v16, v19, v20, v3, v5, v7, v8 int32 - var v15, v6 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v14, v15, v16, v19, v20, v3, v5, v6, v7, v8 + var c, delim, i, n, v10, v16, v18, v21, v22, v3, v5, v7, v8 int32 + var v17, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v16, v17, v18, v21, v22, v3, v5, v6, v7, v8 switch int32(_aiClass[*(*uint8)(unsafe.Pointer(z))]) { /* Switch on the character-class of the first byte ** of the token. See the comment on the CC_ defines ** above. */ @@ -164342,39 +165975,83 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('X')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + 2))])&int32(0x08) != 0 { i = int32(3) for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { + if !(int32(1) != 0) { break } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } goto _11 _11: ; i++ } - return i - } - i = 0 - for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _12 - _12: - ; - i++ - } - if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { - i++ - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + } else { + i = 0 + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _12 + _12: + ; i++ } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) - } - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { - i += int32(2) - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } i++ + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _13 + _13: + ; + i++ + } + } + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } + i += int32(2) + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _14 + _14: + ; + i++ + } } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) } for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x46) != 0 { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_ILLEGAL) @@ -164385,24 +166062,24 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { i = int32(1) c = int32(*(*uint8)(unsafe.Pointer(z))) for { - if v15 = c != int32(']'); v15 { - v14 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v14 + if v17 = c != int32(']'); v17 { + v16 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v16 } - if !(v15 && v14 != 0) { + if !(v17 && v16 != 0) { break } - goto _13 - _13: + goto _15 + _15: ; i++ } if c == int32(']') { - v16 = int32(TK_ID) + v18 = int32(TK_ID) } else { - v16 = int32(TK_ILLEGAL) + v18 = int32(TK_ILLEGAL) } - *(*int32)(unsafe.Pointer(tokenType)) = v16 + *(*int32)(unsafe.Pointer(tokenType)) = v18 return i case int32(CC_VARNUM): *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) @@ -164411,8 +166088,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { break } - goto _17 - _17: + goto _19 + _19: ; i++ } @@ -164424,9 +166101,9 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) i = int32(1) for { - v19 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v19 - if !(v19 != 0) { + v21 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v21 + if !(v21 != 0) { break } if int32(_sqlite3CtypeMap[uint8(c)])&int32(0x46) != 0 { @@ -164435,12 +166112,12 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if c == int32('(') && n > 0 { for { i++ - goto _21 - _21: + goto _23 + _23: ; - v20 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v20 - if !(v20 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { + v22 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v22 + if !(v22 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { break } } @@ -164458,8 +166135,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { } } } - goto _18 - _18: + goto _20 + _20: ; i++ } @@ -164477,8 +166154,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_aiClass[*(*uint8)(unsafe.Pointer(z + uintptr(i)))]) <= int32(CC_KYWD)) { break } - goto _22 - _22: + goto _24 + _24: ; i++ } @@ -164499,8 +166176,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { break } - goto _23 - _23: + goto _25 + _25: ; i++ } @@ -164552,7 +166229,7 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { var lastTokenParsed, mxSqlLen, n, nErr int32 var _ /* sEngine at bp+8 */ TyyParser var _ /* tokenType at bp+0 */ int32 - var _ /* x at bp+2432 */ TToken + var _ /* x at bp+2440 */ TToken _, _, _, _, _, _, _ = db, lastTokenParsed, mxSqlLen, n, nErr, pEngine, pParentParse nErr = 0 /* The LEMON-generated LALR(1) parser */ n = 0 /* type of the next token */ @@ -164619,10 +166296,12 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(bp)) = _analyzeFilterKeyword(tls, zSql+6, lastTokenParsed) } else { - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fz = zSql - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fn = uint32(n) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23699, libc.VaList(bp+2456, bp+2432)) - break + if *(*int32)(unsafe.Pointer(bp)) != int32(TK_QNUMBER) { + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fz = zSql + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fn = uint32(n) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23822, libc.VaList(bp+2464, bp+2440)) + break + } } } } @@ -164645,9 +166324,9 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { } if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg != 0 || (*TParse)(unsafe.Pointer(pParse)).Frc != SQLITE_OK && (*TParse)(unsafe.Pointer(pParse)).Frc != int32(SQLITE_DONE) { if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg == uintptr(0) { - (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3795, libc.VaList(bp+2456, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) + (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3859, libc.VaList(bp+2464, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) } - Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23724, libc.VaList(bp+2456, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) + Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23847, libc.VaList(bp+2464, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) nErr++ } (*TParse)(unsafe.Pointer(pParse)).FzTail = zSql @@ -164840,7 +166519,7 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('c'): fallthrough case int32('C'): - if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23735, int32(6)) == 0 { + if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23858, int32(6)) == 0 { token = uint8(tkCREATE) } else { token = uint8(tkOTHER) @@ -164848,13 +166527,13 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('t'): fallthrough case int32('T'): - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20379, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20511, int32(7)) == 0 { token = uint8(tkTRIGGER) } else { - if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23742, int32(4)) == 0 { + if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23865, int32(4)) == 0 { token = uint8(tkTEMP) } else { - if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23747, int32(9)) == 0 { + if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23870, int32(9)) == 0 { token = uint8(tkTEMP) } else { token = uint8(tkOTHER) @@ -164864,10 +166543,10 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('e'): fallthrough case int32('E'): - if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23757, int32(3)) == 0 { + if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23880, int32(3)) == 0 { token = uint8(tkEND) } else { - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23761, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23884, int32(7)) == 0 { token = uint8(tkEXPLAIN) } else { token = uint8(tkOTHER) @@ -165127,8 +166806,6 @@ func _hasHighPrecisionDouble(tls *libc.TLS, rc int32) (r int32) { // ** without blocking. // */ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { - ng := runtime.GOMAXPROCS(1) - defer func() { runtime.GOMAXPROCS(ng) }() var pMainMtx uintptr var rc int32 _, _ = pMainMtx, rc /* Result code */ @@ -165141,7 +166818,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** must be complete. So isInit must not be set until the very end ** of this routine. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { return SQLITE_OK } /* Make sure the mutex subsystem is initialized. If unable to @@ -165201,7 +166878,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** call to sqlite3PcacheInitialize(). */ Xsqlite3_mutex_enter(tls, _sqlite3Config.FpInitMutex) - if _sqlite3Config.FisInit == 0 && _sqlite3Config.FinProgress == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 && _sqlite3Config.FinProgress == 0 { _sqlite3Config.FinProgress = int32(1) libc.Xmemset(tls, uintptr(unsafe.Pointer(&_sqlite3BuiltinFunctions)), 0, uint64(184)) _sqlite3RegisterBuiltinFunctions(tls) @@ -165217,7 +166894,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { } if rc == SQLITE_OK { _sqlite3PCacheBufferSetup(tls, _sqlite3Config.FpPage, _sqlite3Config.FszPage, _sqlite3Config.FnPage) - _sqlite3Config.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, int32(1)) } _sqlite3Config.FinProgress = 0 } @@ -165243,7 +166920,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { */ /* Experimentally determine if high-precision floating point is ** available. */ - _sqlite3Config.FbUseLongDouble = uint8(_hasHighPrecisionDouble(tls, rc)) + // disabled return rc } @@ -165258,10 +166935,10 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { // ** when this routine is invoked, then this routine is a harmless no-op. // */ func Xsqlite3_shutdown(tls *libc.TLS) (r int32) { - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { Xsqlite3_os_end(tls) Xsqlite3_reset_auto_extension(tls) - _sqlite3Config.FisInit = 0 + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, 0) } if _sqlite3Config.FisPCacheInit != 0 { _sqlite3PcacheShutdown(tls) @@ -165309,9 +166986,9 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { ** the SQLite library is in use. Except, a few selected opcodes ** are allowed. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)<= 0 && rc < int32(libc.Uint64FromInt64(232)/libc.Uint64FromInt64(8)) && _aMsg[rc] != uintptr(0) { @@ -166461,31 +168138,31 @@ func _sqlite3ErrStr(tls *libc.TLS, rc int32) (r uintptr) { } var _aMsg = [29]uintptr{ - 0: __ccgo_ts + 23837, - 1: __ccgo_ts + 23850, - 3: __ccgo_ts + 23866, - 4: __ccgo_ts + 23891, - 5: __ccgo_ts + 23905, - 6: __ccgo_ts + 23924, - 7: __ccgo_ts + 1618, - 8: __ccgo_ts + 23949, - 9: __ccgo_ts + 23986, - 10: __ccgo_ts + 23998, - 11: __ccgo_ts + 24013, - 12: __ccgo_ts + 24046, - 13: __ccgo_ts + 24064, - 14: __ccgo_ts + 24089, - 15: __ccgo_ts + 24118, - 17: __ccgo_ts + 6021, - 18: __ccgo_ts + 5423, - 19: __ccgo_ts + 24135, - 20: __ccgo_ts + 24153, - 21: __ccgo_ts + 24171, - 23: __ccgo_ts + 24205, - 25: __ccgo_ts + 24226, - 26: __ccgo_ts + 24252, - 27: __ccgo_ts + 24275, - 28: __ccgo_ts + 24296, + 0: __ccgo_ts + 23960, + 1: __ccgo_ts + 23973, + 3: __ccgo_ts + 23989, + 4: __ccgo_ts + 24014, + 5: __ccgo_ts + 24028, + 6: __ccgo_ts + 24047, + 7: __ccgo_ts + 1632, + 8: __ccgo_ts + 24072, + 9: __ccgo_ts + 24109, + 10: __ccgo_ts + 24121, + 11: __ccgo_ts + 24136, + 12: __ccgo_ts + 24169, + 13: __ccgo_ts + 24187, + 14: __ccgo_ts + 24212, + 15: __ccgo_ts + 24241, + 17: __ccgo_ts + 6085, + 18: __ccgo_ts + 5487, + 19: __ccgo_ts + 24258, + 20: __ccgo_ts + 24276, + 21: __ccgo_ts + 24294, + 23: __ccgo_ts + 24328, + 25: __ccgo_ts + 24349, + 26: __ccgo_ts + 24375, + 27: __ccgo_ts + 24398, + 28: __ccgo_ts + 24419, } // C documentation @@ -166667,7 +168344,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if zFunctionName == uintptr(0) || xSFunc != uintptr(0) && xFinal != uintptr(0) || libc.BoolInt32(xFinal == uintptr(0)) != libc.BoolInt32(xStep == uintptr(0)) || libc.BoolInt32(xValue == uintptr(0)) != libc.BoolInt32(xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { - return _sqlite3MisuseError(tls, int32(180244)) + return _sqlite3MisuseError(tls, int32(181689)) } _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -166713,7 +168390,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i p = _sqlite3FindFunction(tls, db, zFunctionName, nArg, uint8(enc), uint8(0)) if p != 0 && (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) == uint32(enc) && int32((*TFuncDef)(unsafe.Pointer(p)).FnArg) == nArg { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24393, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24516, 0) _ = libc.Int32FromInt32(0) return int32(SQLITE_BUSY) } else { @@ -166786,6 +168463,7 @@ func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, en (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } + goto out out: ; rc = _sqlite3ApiExit(tls, db, rc) @@ -166842,7 +168520,7 @@ func _sqlite3InvalidFunction(tls *libc.TLS, context uintptr, NotUsed int32, NotU zName = Xsqlite3_user_data(tls, context) _ = NotUsed _ = NotUsed2 - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24456, libc.VaList(bp+8, zName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24579, libc.VaList(bp+8, zName)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -166873,7 +168551,7 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i if rc != 0 { return SQLITE_OK } - zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, zName)) + zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, zName)) if zCopy == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -167121,7 +168799,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in if eMode < SQLITE_CHECKPOINT_PASSIVE || eMode > int32(SQLITE_CHECKPOINT_TRUNCATE) { /* EVIDENCE-OF: R-03996-12088 The M parameter must be a valid checkpoint ** mode: */ - return _sqlite3MisuseError(tls, int32(180859)) + return _sqlite3MisuseError(tls, int32(182304)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*uint8)(unsafe.Pointer(zDb)) != 0 { @@ -167131,7 +168809,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in } if iDb < 0 { rc = int32(SQLITE_ERROR) - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24507, libc.VaList(bp+8, zDb)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24630, libc.VaList(bp+8, zDb)) } else { (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0 rc = _sqlite3Checkpoint(tls, db, iDb, eMode, pnLog, pnCkpt) @@ -167256,7 +168934,7 @@ func Xsqlite3_errmsg(tls *libc.TLS, db uintptr) (r uintptr) { return _sqlite3ErrStr(tls, int32(SQLITE_NOMEM)) } if !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(180995))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(182440))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -167389,7 +169067,7 @@ var _misuse = [34]Tu16{ // */ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181074)) + return _sqlite3MisuseError(tls, int32(182519)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -167399,7 +169077,7 @@ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { func Xsqlite3_extended_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181083)) + return _sqlite3MisuseError(tls, int32(182528)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -167449,7 +169127,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui enc2 = int32(SQLITE_UTF16LE) } if enc2 < int32(SQLITE_UTF8) || enc2 > int32(SQLITE_UTF16BE) { - return _sqlite3MisuseError(tls, int32(181131)) + return _sqlite3MisuseError(tls, int32(182576)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -167458,7 +169136,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui pColl = _sqlite3FindCollSeq(tls, db, uint8(enc2), zName, 0) if pColl != 0 && (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp != 0 { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24528, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24651, 0) return int32(SQLITE_BUSY) } _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -167619,7 +169297,7 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u zVfs = zDefaultVfs nUri = _sqlite3Strlen30(tls, zUri) _ = libc.Int32FromInt32(0) - if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24596, uint64(5)) == 0 { /* Input character index */ + if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24719, uint64(5)) == 0 { /* Input character index */ iOut = 0 /* Output character index */ nByte = uint64(nUri + int32(8)) /* Bytes of space to allocate */ /* Make sure the SQLITE_OPEN_URI flag is set to indicate to the VFS xOpen @@ -167649,8 +169327,8 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u for *(*uint8)(unsafe.Pointer(zUri + uintptr(iIn))) != 0 && int32(*(*uint8)(unsafe.Pointer(zUri + uintptr(iIn)))) != int32('/') { iIn++ } - if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24602, zUri+7, uint64(9)) != 0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24612, libc.VaList(bp+8, iIn-int32(7), zUri+7)) + if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24725, zUri+7, uint64(9)) != 0) { + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24735, libc.VaList(bp+8, iIn-int32(7), zUri+7)) rc = int32(SQLITE_ERROR) goto parse_uri_out } @@ -167740,24 +169418,24 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u nOpt = _sqlite3Strlen30(tls, zOpt) zVal = zOpt + uintptr(nOpt+int32(1)) nVal = _sqlite3Strlen30(tls, zVal) - if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24640, zOpt, uint64(3)) == 0 { + if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24763, zOpt, uint64(3)) == 0 { zVfs = zVal } else { aMode = uintptr(0) zModeType = uintptr(0) mask = 0 limit = 0 - if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24644, zOpt, uint64(5)) == 0 { + if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24767, zOpt, uint64(5)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_SHAREDCACHE) | libc.Int32FromInt32(SQLITE_OPEN_PRIVATECACHE) aMode = uintptr(unsafe.Pointer(&_aCacheMode)) limit = mask - zModeType = __ccgo_ts + 24644 + zModeType = __ccgo_ts + 24767 } - if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24665, zOpt, uint64(4)) == 0 { + if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24788, zOpt, uint64(4)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_READONLY) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_MEMORY) aMode = uintptr(unsafe.Pointer(&_aOpenMode)) limit = int32(uint32(mask) & flags) - zModeType = __ccgo_ts + 3404 + zModeType = __ccgo_ts + 3468 } if aMode != 0 { mode = 0 @@ -167786,12 +169464,12 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u i++ } if mode == 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24680, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24803, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_ERROR) goto parse_uri_out } if mode & ^libc.Int32FromInt32(SQLITE_OPEN_MEMORY) > limit { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24700, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24823, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_PERM) goto parse_uri_out } @@ -167815,9 +169493,10 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u } *(*uintptr)(unsafe.Pointer(ppVfs)) = Xsqlite3_vfs_find(tls, zVfs) if *(*uintptr)(unsafe.Pointer(ppVfs)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24724, libc.VaList(bp+8, zVfs)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24847, libc.VaList(bp+8, zVfs)) rc = int32(SQLITE_ERROR) } + goto parse_uri_out parse_uri_out: ; if rc != SQLITE_OK { @@ -167834,11 +169513,11 @@ var _aCacheMode = [3]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24650, + Fz: __ccgo_ts + 24773, Fmode: int32(SQLITE_OPEN_SHAREDCACHE), }, 1: { - Fz: __ccgo_ts + 24657, + Fz: __ccgo_ts + 24780, Fmode: int32(SQLITE_OPEN_PRIVATECACHE), }, 2: {}, @@ -167849,19 +169528,19 @@ var _aOpenMode = [5]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24670, + Fz: __ccgo_ts + 24793, Fmode: int32(SQLITE_OPEN_READONLY), }, 1: { - Fz: __ccgo_ts + 24673, + Fz: __ccgo_ts + 24796, Fmode: int32(SQLITE_OPEN_READWRITE), }, 2: { - Fz: __ccgo_ts + 24676, + Fz: __ccgo_ts + 24799, Fmode: libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE), }, 3: { - Fz: __ccgo_ts + 17764, + Fz: __ccgo_ts + 17851, Fmode: int32(SQLITE_OPEN_MEMORY), }, 4: {}, @@ -167990,8 +169669,8 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16BE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16LE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+22351, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+24740, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+22496, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+24863, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto opendb_out } @@ -168015,7 +169694,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* READWRITE */ /* READWRITE | CREATE */ if int32(1)<<(*(*uint32)(unsafe.Pointer(bp))&uint32(7))&int32(0x46) == 0 { - rc = _sqlite3MisuseError(tls, int32(181803)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(183248)) /* IMP: R-18321-05872 */ } else { rc = _sqlite3ParseUri(tls, zVfs, zFilename, bp, db, bp+8, bp+16) } @@ -168024,7 +169703,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _sqlite3OomFault(tls, db) } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { - v2 = __ccgo_ts + 3795 + v2 = __ccgo_ts + 3859 } else { v2 = uintptr(0) } @@ -168052,9 +169731,9 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* The default safety_level for the main database is FULL; for the temp ** database it is OFF. This matches the pager layer defaults. */ - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6585 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6649 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).Fsafety_level = uint8(libc.Int32FromInt32(SQLITE_DEFAULT_SYNCHRONOUS) + libc.Int32FromInt32(1)) - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 23742 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 23865 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).Fsafety_level = uint8(PAGER_SYNCHRONOUS_OFF) (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState = uint8(SQLITE_STATE_OPEN) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -168099,6 +169778,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* Enable the lookaside-malloc subsystem */ _setupLookaside(tls, db, uintptr(0), _sqlite3Config.FszLookaside, _sqlite3Config.FnLookaside) Xsqlite3_wal_autocheckpoint(tls, db, int32(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT)) + goto opendb_out opendb_out: ; if db != 0 { @@ -168149,7 +169829,7 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc } if zFilename == uintptr(0) { - zFilename = __ccgo_ts + 24746 + zFilename = __ccgo_ts + 24869 } pVal = _sqlite3ValueNew(tls, uintptr(0)) _sqlite3ValueSetStr(tls, pVal, -int32(1), zFilename, uint8(SQLITE_UTF16LE), libc.UintptrFromInt32(0)) @@ -168370,20 +170050,20 @@ func Xsqlite3_get_autocommit(tls *libc.TLS, db uintptr) (r int32) { func _sqlite3ReportError(tls *libc.TLS, iErr int32, lineno int32, zType uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) - Xsqlite3_log(tls, iErr, __ccgo_ts+24749, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) + Xsqlite3_log(tls, iErr, __ccgo_ts+24872, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) return iErr } func _sqlite3CorruptError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24774) + return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24897) } func _sqlite3MisuseError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24794) + return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24917) } func _sqlite3CantopenError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24801) + return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24924) } // C documentation @@ -168489,6 +170169,7 @@ func Xsqlite3_table_column_metadata(tls *libc.TLS, db uintptr, zDbName uintptr, if !(zCollSeq != 0) { zCollSeq = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } + goto error_out error_out: ; _sqlite3BtreeLeaveAll(tls, db) @@ -168513,11 +170194,11 @@ error_out: } if SQLITE_OK == rc && !(pTab != 0) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24818, libc.VaList(bp+16, zTableName, zColumnName)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24941, libc.VaList(bp+16, zTableName, zColumnName)) rc = int32(SQLITE_ERROR) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v3 = __ccgo_ts + 3795 + v3 = __ccgo_ts + 3859 } else { v3 = uintptr(0) } @@ -168956,7 +170637,7 @@ func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) (r int32) { */ fallthrough case int32(SQLITE_TESTCTRL_ISINIT): - if _sqlite3Config.FisInit == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 { rc = int32(SQLITE_ERROR) } break @@ -169546,7 +171227,7 @@ func Xsqlite3_compileoption_used(tls *libc.TLS, zOptName uintptr) (r int32) { var _ /* nOpt at bp+0 */ int32 _, _, _ = azCompileOpt, i, n azCompileOpt = _sqlite3CompileOptions(tls, bp) - if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24846, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24969, int32(7)) == 0 { zOptName += uintptr(7) } n = _sqlite3Strlen30(tls, zOptName) @@ -169768,7 +171449,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui _leaveMutex(tls) _ = libc.Int32FromInt32(0) if rc != 0 { - v2 = __ccgo_ts + 24854 + v2 = __ccgo_ts + 24977 } else { v2 = uintptr(0) } @@ -170651,23 +172332,23 @@ func _sqlite3ConnectionClosed(tls *libc.TLS, db uintptr) { // ** string must correspond to the JSONB_* integer above. // */ var _jsonbType = [17]uintptr{ - 0: __ccgo_ts + 1634, - 1: __ccgo_ts + 7886, - 2: __ccgo_ts + 7891, - 3: __ccgo_ts + 6306, - 4: __ccgo_ts + 6306, - 5: __ccgo_ts + 6301, - 6: __ccgo_ts + 6301, - 7: __ccgo_ts + 8197, - 8: __ccgo_ts + 8197, - 9: __ccgo_ts + 8197, - 10: __ccgo_ts + 8197, - 11: __ccgo_ts + 24877, - 12: __ccgo_ts + 24883, - 13: __ccgo_ts + 1648, - 14: __ccgo_ts + 1648, - 15: __ccgo_ts + 1648, - 16: __ccgo_ts + 1648, + 0: __ccgo_ts + 1648, + 1: __ccgo_ts + 8011, + 2: __ccgo_ts + 8016, + 3: __ccgo_ts + 6370, + 4: __ccgo_ts + 6370, + 5: __ccgo_ts + 6365, + 6: __ccgo_ts + 6365, + 7: __ccgo_ts + 8322, + 8: __ccgo_ts + 8322, + 9: __ccgo_ts + 8322, + 10: __ccgo_ts + 8322, + 11: __ccgo_ts + 25000, + 12: __ccgo_ts + 25006, + 13: __ccgo_ts + 1662, + 14: __ccgo_ts + 1662, + 15: __ccgo_ts + 1662, + 16: __ccgo_ts + 1662, } // C documentation @@ -171438,6 +173119,46 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { _jsonAppendChar(tls, p, uint8(',')) } +// C documentation +// +// /* c is a control character. Append the canonical JSON representation +// ** of that control character to p. +// ** +// ** This routine assumes that the output buffer has already been enlarged +// ** sufficiently to hold the worst-case encoding plus a nul terminator. +// */ +func _jsonAppendControlChar(tls *libc.TLS, p uintptr, c Tu8) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if _aSpecial[c] != 0 { + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = uint8('\\') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = _aSpecial[c] + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(2) + } else { + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = uint8('\\') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = uint8('u') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(2)))) = uint8('0') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(3)))) = uint8('0') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(4)))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 25013 + uintptr(int32(c)>>int32(4)))) + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(5)))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 25013 + uintptr(int32(c)&int32(0xf)))) + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(6) + } +} + +var _aSpecial = [32]uint8{ + 8: uint8('b'), + 9: uint8('t'), + 10: uint8('n'), + 12: uint8('f'), + 13: uint8('r'), +} + // C documentation // // /* Append the N-byte string in zIn to the end of the JsonString string @@ -171451,9 +173172,9 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { var c Tu8 var k Tu32 - var z, v10, v12, v14, v16, v18, v2, v20, v22, v24, v6, v8 uintptr - var v1, v11, v13, v15, v17, v19, v21, v23, v5, v7, v9 Tu64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v5, v6, v7, v8, v9 + var z, v10, v2, v4, v6, v8 uintptr + var v1, v3, v5, v7, v9 Tu64 + _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v2, v3, v4, v5, v6, v7, v8, v9 z = zIn if z == uintptr(0) { return @@ -171510,90 +173231,41 @@ func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { N -= k } c = *(*Tu8)(unsafe.Pointer(z)) - if !(int32(c) == int32('"') || int32(c) == int32('\\')) { - goto _3 - } - json_simple_escape: - ; - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { - return - } - v6 = p + 24 - v5 = *(*Tu64)(unsafe.Pointer(v6)) - *(*Tu64)(unsafe.Pointer(v6))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = uint8('\\') - v8 = p + 24 - v7 = *(*Tu64)(unsafe.Pointer(v8)) - *(*Tu64)(unsafe.Pointer(v8))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = c - goto _4 - _3: - ; - if int32(c) == int32('\'') { - v10 = p + 24 - v9 = *(*Tu64)(unsafe.Pointer(v10)) - *(*Tu64)(unsafe.Pointer(v10))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = c - } else { - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - if _aSpecial[c] != 0 { - c = _aSpecial[c] - goto json_simple_escape - } - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + if int32(c) == int32('"') || int32(c) == int32('\\') { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { return } - v12 = p + 24 - v11 = *(*Tu64)(unsafe.Pointer(v12)) - *(*Tu64)(unsafe.Pointer(v12))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v11))) = uint8('\\') - v14 = p + 24 - v13 = *(*Tu64)(unsafe.Pointer(v14)) - *(*Tu64)(unsafe.Pointer(v14))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v13))) = uint8('u') - v16 = p + 24 - v15 = *(*Tu64)(unsafe.Pointer(v16)) - *(*Tu64)(unsafe.Pointer(v16))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v15))) = uint8('0') - v18 = p + 24 - v17 = *(*Tu64)(unsafe.Pointer(v18)) - *(*Tu64)(unsafe.Pointer(v18))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v17))) = uint8('0') - v20 = p + 24 - v19 = *(*Tu64)(unsafe.Pointer(v20)) - *(*Tu64)(unsafe.Pointer(v20))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v19))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 24890 + uintptr(int32(c)>>int32(4)))) - v22 = p + 24 - v21 = *(*Tu64)(unsafe.Pointer(v22)) - *(*Tu64)(unsafe.Pointer(v22))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v21))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 24890 + uintptr(int32(c)&int32(0xf)))) + v4 = p + 24 + v3 = *(*Tu64)(unsafe.Pointer(v4)) + *(*Tu64)(unsafe.Pointer(v4))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v3))) = uint8('\\') + v6 = p + 24 + v5 = *(*Tu64)(unsafe.Pointer(v6)) + *(*Tu64)(unsafe.Pointer(v6))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = c + } else { + if int32(c) == int32('\'') { + v8 = p + 24 + v7 = *(*Tu64)(unsafe.Pointer(v8)) + *(*Tu64)(unsafe.Pointer(v8))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = c + } else { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + return + } + _jsonAppendControlChar(tls, p, c) + } } - _4: - ; z++ N-- } - v24 = p + 24 - v23 = *(*Tu64)(unsafe.Pointer(v24)) - *(*Tu64)(unsafe.Pointer(v24))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v23))) = uint8('"') + v10 = p + 24 + v9 = *(*Tu64)(unsafe.Pointer(v10)) + *(*Tu64)(unsafe.Pointer(v10))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = uint8('"') _ = libc.Int32FromInt32(0) } -var _aSpecial = [32]uint8{ - 8: uint8('b'), - 9: uint8('t'), - 10: uint8('n'), - 12: uint8('f'), - 13: uint8('r'), -} - // C documentation // // /* @@ -171609,9 +173281,9 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _, _, _, _ = n, n1, z, z1 switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_NULL): - _jsonAppendRawNZ(tls, p, __ccgo_ts+1634, uint32(4)) + _jsonAppendRawNZ(tls, p, __ccgo_ts+1648, uint32(4)) case int32(SQLITE_FLOAT): - _jsonPrintf(tls, int32(100), p, __ccgo_ts+15323, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) + _jsonPrintf(tls, int32(100), p, __ccgo_ts+15416, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) case int32(SQLITE_INTEGER): z = Xsqlite3_value_text(tls, pValue) n = uint32(Xsqlite3_value_bytes(tls, pValue)) @@ -171632,7 +173304,7 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _jsonTranslateBlobToText(tls, bp, uint32(0), p) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr) == 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24907, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25030, -int32(1)) (*TJsonString)(unsafe.Pointer(p)).FeErr = uint8(JSTRING_ERR) _jsonStringReset(tls, p) } @@ -171688,7 +173360,7 @@ func _jsonReturnString(tls *libc.TLS, p uintptr, pParse uintptr, ctx uintptr) { Xsqlite3_result_error_nomem(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr)&int32(JSTRING_MALFORMED) != 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25059, -int32(1)) } } } @@ -171936,6 +173608,7 @@ func _json5Whitespace(tls *libc.TLS, zIn uintptr) (r int32) { goto whitespace_done } } + goto whitespace_done whitespace_done: ; return n @@ -171971,8 +173644,8 @@ var _aNanInfName = [5]TNanInfName{ Fn: uint8(3), FeType: uint8(JSONB_FLOAT), FnRepl: uint8(7), - FzMatch: __ccgo_ts + 24951, - FzRepl: __ccgo_ts + 24955, + FzMatch: __ccgo_ts + 25074, + FzRepl: __ccgo_ts + 25078, }, 1: { Fc1: uint8('i'), @@ -171980,32 +173653,32 @@ var _aNanInfName = [5]TNanInfName{ Fn: uint8(8), FeType: uint8(JSONB_FLOAT), FnRepl: uint8(7), - FzMatch: __ccgo_ts + 24963, - FzRepl: __ccgo_ts + 24955, + FzMatch: __ccgo_ts + 25086, + FzRepl: __ccgo_ts + 25078, }, 2: { Fc1: uint8('n'), Fc2: uint8('N'), Fn: uint8(3), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 1639, - FzRepl: __ccgo_ts + 1634, + FzMatch: __ccgo_ts + 1653, + FzRepl: __ccgo_ts + 1648, }, 3: { Fc1: uint8('q'), Fc2: uint8('Q'), Fn: uint8(4), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 24972, - FzRepl: __ccgo_ts + 1634, + FzMatch: __ccgo_ts + 25095, + FzRepl: __ccgo_ts + 1648, }, 4: { Fc1: uint8('s'), Fc2: uint8('S'), Fn: uint8(4), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 24977, - FzRepl: __ccgo_ts + 1634, + FzMatch: __ccgo_ts + 25100, + FzRepl: __ccgo_ts + 1648, }, } @@ -172020,7 +173693,7 @@ func _jsonWrongNumArgs(tls *libc.TLS, pCtx uintptr, zFuncName uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24982, libc.VaList(bp+8, zFuncName)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25105, libc.VaList(bp+8, zFuncName)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) } @@ -172474,30 +174147,37 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept return j + uint32(1) } } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) <= int32(0x1f) { + /* Control characters in JSON5 string literals are ok */ + if int32(x) == int32(JSONB_TEXTJ) { + return j + uint32(1) + } } else { - if libc.Xstrchr(tls, __ccgo_ts+25025, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { - j++ + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { + return j + uint32(1) } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { - if j+uint32(5) >= k { - return j + uint32(1) - } - if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { - return j + uint32(1) - } + if libc.Xstrchr(tls, __ccgo_ts+25148, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { j++ } else { - if int32(x) != int32(JSONB_TEXT5) { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { + if j+uint32(5) >= k { + return j + uint32(1) + } + if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { + return j + uint32(1) + } + j++ } else { - *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) - szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) - if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + if int32(x) != int32(JSONB_TEXT5) { return j + uint32(1) + } else { + *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) + szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) + if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + return j + uint32(1) + } + j += szC - uint32(1) } - j += szC - uint32(1) } } } @@ -172595,6 +174275,7 @@ func _jsonTranslateTextToBlob(tls *libc.TLS, pParse uintptr, i Tu32) (r int32) { var _ /* op at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cDelim, iBlob, iStart, iThis, j, k, k1, nn, opcode, seenE, t, x, z, v40, v41, v43, v44, v46, v48 z = (*TJsonParse)(unsafe.Pointer(pParse)).FzJson + goto json_parse_restart json_parse_restart: ; switch int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) { @@ -172750,6 +174431,7 @@ _1: } j = (*TJsonParse)(unsafe.Pointer(pParse)).FiErr + uint32(1) } + goto parse_object_value parse_object_value: ; x = _jsonTranslateTextToBlob(tls, pParse, j) @@ -172877,6 +174559,7 @@ _3: ; /* Parse string */ opcode = uint8(JSONB_TEXT) + goto parse_string parse_string: ; cDelim = *(*uint8)(unsafe.Pointer(z + uintptr(i))) @@ -172925,9 +174608,14 @@ parse_string: } } else { if int32(c) <= int32(0x1f) { - /* Control characters are not allowed in strings */ - (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j - return -int32(1) + if int32(c) == 0 { + (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j + return -int32(1) + } + /* Control characters are not allowed in canonical JSON string + ** literals, but are allowed in JSON5 string literals. */ + opcode = uint8(JSONB_TEXT5) + (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) } else { if int32(c) == int32('"') { opcode = uint8(JSONB_TEXT5) @@ -172941,7 +174629,7 @@ parse_string: return int32(j + uint32(1)) _5: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7886, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8011, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_TRUE)) return int32(i + uint32(4)) } @@ -172949,7 +174637,7 @@ _5: return -int32(1) _6: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7891, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(5))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8016, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(5))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_FALSE)) return int32(i + uint32(5)) } @@ -172994,6 +174682,7 @@ _8: ; /* Parse number */ t = uint8(0x00) /* Bit 0x01: JSON5. Bit 0x02: FLOAT */ + goto parse_number parse_number: ; seenE = uint8(0) @@ -173029,14 +174718,14 @@ parse_number: /* JSON5 allows for "+Infinity" and "-Infinity" using exactly ** that case. SQLite also allows these in any case and it allows ** "+inf" and "-inf". */ - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+24951, int32(3)) == 0 { + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+25074, int32(3)) == 0 { (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('-') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25034) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25157) } else { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25041) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25164) } - if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25047, int32(5)) == 0 { + if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25170, int32(5)) == 0 { v48 = int32(9) } else { v48 = int32(4) @@ -173075,6 +174764,7 @@ parse_number: } } } + goto parse_number_2 parse_number_2: ; j = i + uint32(1) @@ -173133,6 +174823,7 @@ parse_number_2: return -int32(1) } } + goto parse_number_finish parse_number_finish: ; _ = libc.Int32FromInt32(0) @@ -173198,11 +174889,10 @@ _29: return -int32(1) _37: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1634, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1648, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) return int32(i + uint32(4)) } - /* fall-through into the default case that checks for NaN */ _38: ; c = *(*uint8)(unsafe.Pointer(z + uintptr(i))) @@ -173222,7 +174912,7 @@ _38: goto _51 } if int32(_aNanInfName[k1].FeType) == int32(JSONB_FLOAT) { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25041) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25164) } else { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) } @@ -173267,7 +174957,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 i += _json5Whitespace(tls, zJson+uintptr(i)) if *(*uint8)(unsafe.Pointer(zJson + uintptr(i))) != 0 { if pCtx != 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25059, -int32(1)) } _jsonParseReset(tls, pParse) return int32(1) @@ -173280,7 +174970,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 if (*TJsonParse)(unsafe.Pointer(pParse)).Foom != 0 { Xsqlite3_result_error_nomem(tls, pCtx) } else { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25059, -int32(1)) } } _jsonParseReset(tls, pParse) @@ -173445,15 +175135,15 @@ func _jsonTranslateBlobToText(tls *libc.TLS, pParse uintptr, i Tu32, pOut uintpt goto _16 _2: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1634, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1648, uint32(4)) return i + uint32(1) _3: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7886, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8011, uint32(4)) return i + uint32(1) _4: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7891, uint32(5)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8016, uint32(5)) return i + uint32(1) _6: ; @@ -173502,9 +175192,9 @@ _7: k++ } if bOverflow != 0 { - v19 = __ccgo_ts + 24955 + v19 = __ccgo_ts + 25078 } else { - v19 = __ccgo_ts + 11753 + v19 = __ccgo_ts + 11878 } _jsonPrintf(tls, int32(100), pOut, v19, libc.VaList(bp+16, u)) goto _16 @@ -173552,7 +175242,7 @@ _11: for sz2 > uint32(0) { k2 = uint32(0) for { - if !(k2 < sz2 && int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('\\') && int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('"')) { + if !(k2 < sz2 && (_jsonIsOk[*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))] != 0 || int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) == int32('\''))) { break } goto _21 @@ -173569,7 +175259,16 @@ _11: sz2 -= k2 } if int32(*(*uint8)(unsafe.Pointer(zIn2))) == int32('"') { - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25053, uint32(2)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25176, uint32(2)) + zIn2++ + sz2-- + continue + } + if int32(*(*uint8)(unsafe.Pointer(zIn2))) <= int32(0x1f) { + if (*TJsonString)(unsafe.Pointer(pOut)).FnUsed+uint64(7) > (*TJsonString)(unsafe.Pointer(pOut)).FnAlloc && _jsonStringGrow(tls, pOut, uint32(7)) != 0 { + break + } + _jsonAppendControlChar(tls, pOut, *(*uint8)(unsafe.Pointer(zIn2))) zIn2++ sz2-- continue @@ -173585,7 +175284,7 @@ _11: case int32('\''): _jsonAppendChar(tls, pOut, uint8('\'')) case int32('v'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25056, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25179, uint32(6)) case int32('x'): if sz2 < uint32(4) { p23 = pOut + 33 @@ -173593,12 +175292,12 @@ _11: sz2 = uint32(2) break } - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25063, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25186, uint32(4)) _jsonAppendRawNZ(tls, pOut, zIn2+2, uint32(2)) zIn2 += uintptr(2) sz2 -= uint32(2) case int32('0'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25068, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25191, uint32(6)) case int32('\r'): if sz2 > uint32(2) && int32(*(*uint8)(unsafe.Pointer(zIn2 + 2))) == int32('\n') { zIn2++ @@ -173677,6 +175376,7 @@ _14: goto _16 _15: ; + goto malformed_jsonb malformed_jsonb: ; p29 = pOut + 33 @@ -173687,6 +175387,140 @@ _16: return i + n + *(*Tu32)(unsafe.Pointer(bp)) } +// C documentation +// +// /* Context for recursion of json_pretty() +// */ +type TJsonPretty = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty = TJsonPretty + +type TJsonPretty1 = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty1 = TJsonPretty1 + +// C documentation +// +// /* Append indentation to the pretty JSON under construction */ +func _jsonPrettyIndent(tls *libc.TLS, pPretty uintptr) { + var jj Tu32 + _ = jj + jj = uint32(0) + for { + if !(jj < (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent) { + break + } + _jsonAppendRaw(tls, (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut, (*TJsonPretty)(unsafe.Pointer(pPretty)).FzIndent, (*TJsonPretty)(unsafe.Pointer(pPretty)).FszIndent) + goto _1 + _1: + ; + jj++ + } +} + +// C documentation +// +// /* +// ** Translate the binary JSONB representation of JSON beginning at +// ** pParse->aBlob[i] into a JSON text string. Append the JSON +// ** text onto the end of pOut. Return the index in pParse->aBlob[] +// ** of the first byte past the end of the element that is translated. +// ** +// ** This is a variant of jsonTranslateBlobToText() that "pretty-prints" +// ** the output. Extra whitespace is inserted to make the JSON easier +// ** for humans to read. +// ** +// ** If an error is detected in the BLOB input, the pOut->eErr flag +// ** might get set to JSTRING_MALFORMED. But not all BLOB input errors +// ** are detected. So a malformed JSONB input might either result +// ** in an error, or in incorrect JSON. +// ** +// ** The pOut->eErr JSTRING_OOM flag is set on a OOM. +// */ +func _jsonTranslateBlobToPrettyText(tls *libc.TLS, pPretty uintptr, i Tu32) (r Tu32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var iEnd, j, n Tu32 + var pOut, pParse, p1, p2 uintptr + var _ /* sz at bp+0 */ Tu32 + _, _, _, _, _, _, _ = iEnd, j, n, pOut, pParse, p1, p2 + pParse = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpParse + pOut = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut + n = _jsonbPayloadSize(tls, pParse, i, bp) + if n == uint32(0) { + p1 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + return (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob + uint32(1) + } + switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { + case int32(JSONB_ARRAY): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, uint8('[')) + if j < iEnd { + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25198, uint32(2)) + } + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, uint8(']')) + i = iEnd + case int32(JSONB_OBJECT): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, uint8('{')) + if j < iEnd { + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToText(tls, pParse, j, pOut) + if j > iEnd { + p2 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p2)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p2))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25201, uint32(2)) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25198, uint32(2)) + } + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, uint8('}')) + i = iEnd + default: + i = _jsonTranslateBlobToText(tls, pParse, i, pOut) + break + } + return i +} + // C documentation // // /* Return true if the input pJson @@ -174414,7 +176248,7 @@ func _jsonReturnFromBlob(tls *libc.TLS, pParse uintptr, i Tu32, pCtx uintptr, te db = Xsqlite3_context_db_handle(tls, pCtx) n = _jsonbPayloadSize(tls, pParse, i, bp) if n == uint32(0) { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25059, -int32(1)) return } switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { @@ -174523,6 +176357,7 @@ _6: if *(*Tu32)(unsafe.Pointer(bp)) == uint32(0) { goto returnfromblob_malformed } + goto to_double to_double: ; z1 = _sqlite3DbStrNDup(tls, db, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(i+n), uint64(int32(*(*Tu32)(unsafe.Pointer(bp))))) @@ -174645,13 +176480,15 @@ _14: _15: ; return + goto returnfromblob_oom returnfromblob_oom: ; Xsqlite3_result_error_nomem(tls, pCtx) return + goto returnfromblob_malformed returnfromblob_malformed: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25059, -int32(1)) return } @@ -174692,7 +176529,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob = Xsqlite3_value_blob(tls, pArg) (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob = uint32(Xsqlite3_value_bytes(tls, pArg)) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24907, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25030, -int32(1)) return int32(1) } case int32(SQLITE_TEXT): @@ -174705,7 +176542,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FzJson = zJson (*TJsonParse)(unsafe.Pointer(pParse)).FnJson = nJson if _jsonConvertTextToBlob(tls, pParse, ctx) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) _sqlite3DbFree(tls, (*TJsonParse)(unsafe.Pointer(pParse)).Fdb, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob) libc.Xmemset(tls, pParse, 0, uint64(72)) return int32(1) @@ -174724,10 +176561,10 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin return int32(1) } if int32(*(*uint8)(unsafe.Pointer(z))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25041) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25164) } else { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('-') && int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25034) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25157) } else { _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(n), z) } @@ -174766,7 +176603,7 @@ func _jsonBadPathError(tls *libc.TLS, ctx uintptr, zPath uintptr) (r uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25075, libc.VaList(bp+8, zPath)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25204, libc.VaList(bp+8, zPath)) if ctx == uintptr(0) { return zMsg } @@ -174859,11 +176696,12 @@ func _jsonInsertIntoBlob(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr, e _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto jsonInsertIntoBlob_patherror jsonInsertIntoBlob_patherror: ; _jsonParseFree(tls, p) if rc == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } else { _jsonBadPathError(tls, ctx, zPath) } @@ -174948,6 +176786,7 @@ func _jsonParseFuncArg(tls *libc.TLS, ctx uintptr, pArg uintptr, flgs Tu32) (r u } } db = Xsqlite3_context_db_handle(tls, ctx) + goto rebuild_from_cache rebuild_from_cache: ; p = _sqlite3DbMallocZero(tls, db, uint64(72)) @@ -175038,6 +176877,7 @@ rebuild_from_cache: } } return p + goto json_pfa_malformed json_pfa_malformed: ; if flgs&uint32(JSON_KEEPERROR) != 0 { @@ -175045,9 +176885,10 @@ json_pfa_malformed: return p } else { _jsonParseFree(tls, p) - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) return uintptr(0) } + goto json_pfa_oom json_pfa_oom: ; _jsonParseFree(tls, pFromCache) @@ -175179,7 +177020,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if int32(*(*uint8)(unsafe.Pointer(zPath))) == int32('$') { v1 = zPath + uintptr(1) } else { - v1 = __ccgo_ts + 25093 + v1 = __ccgo_ts + 25222 } i = _jsonLookupStep(tls, p, uint32(0), v1, uint32(0)) if i >= uint32(JSON_LOOKUP_PATHERROR) { @@ -175189,7 +177030,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } } eErr = uint8(1) @@ -175207,25 +177048,6 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) _jsonParseFree(tls, p) } -// C documentation -// -// /* True if the string is all digits */ -func _jsonAllDigits(tls *libc.TLS, z uintptr, n int32) (r int32) { - var i int32 - _ = i - i = 0 - for { - if !(i < n && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _1 - _1: - ; - i++ - } - return libc.BoolInt32(i == n) -} - // C documentation // // /* True if the string is all alphanumerics and underscores */ @@ -175312,21 +177134,21 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { ** [NUMBER] ==> $[NUMBER] // Not PG. Purely for convenience */ _jsonStringInit(tls, bp, ctx) - if _jsonAllDigits(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25095, uint32(1)) + if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) == int32(SQLITE_INTEGER) { + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25224, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+5161, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+5225, uint32(2)) } else { if _jsonAllAlphanum(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1661, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1675, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { if int32(*(*uint8)(unsafe.Pointer(zPath))) == int32('[') && nPath >= int32(3) && int32(*(*uint8)(unsafe.Pointer(zPath + uintptr(nPath-int32(1))))) == int32(']') { _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25097, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25226, uint32(2)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25100, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25229, uint32(1)) } } } @@ -175363,11 +177185,11 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { goto json_extract_error /* Return NULL if not found */ } else { _jsonAppendSeparator(tls, bp) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1634, uint32(4)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1648, uint32(4)) } } else { if j == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) goto json_extract_error } else { _jsonBadPathError(tls, ctx, zPath) @@ -175387,6 +177209,7 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } } + goto json_extract_error json_extract_error: ; _jsonStringReset(tls, bp) @@ -175637,7 +177460,7 @@ func _jsonPatchFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == int32(JSON_MERGE_OOM) { Xsqlite3_result_error_nomem(tls, ctx) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } } _jsonParseFree(tls, pPatch) @@ -175661,7 +177484,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { var _ /* jx at bp+0 */ TJsonString _, _, _ = i, n, z if argc&int32(1) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25102, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25231, -int32(1)) return } _jsonStringInit(tls, bp, ctx) @@ -175672,7 +177495,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { break } if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) != int32(SQLITE_TEXT) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25153, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25282, -int32(1)) _jsonStringReset(tls, bp) return } @@ -175744,7 +177567,7 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } } goto json_remove_done @@ -175757,9 +177580,11 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto json_remove_patherror json_remove_patherror: ; _jsonBadPathError(tls, ctx, zPath) + goto json_remove_done json_remove_done: ; _jsonParseFree(tls, p) @@ -175779,7 +177604,7 @@ func _jsonReplaceFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { return } if argc&int32(1) == 0 { - _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15796) + _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15889) return } _jsonInsertIntoBlob(tls, ctx, argc, argv, int32(JEDIT_REPL)) @@ -175810,9 +177635,9 @@ func _jsonSetFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { } if argc&int32(1) == 0 { if bIsSet != 0 { - v1 = __ccgo_ts + 25187 + v1 = __ccgo_ts + 25316 } else { - v1 = __ccgo_ts + 25191 + v1 = __ccgo_ts + 25320 } _jsonWrongNumArgs(tls, ctx, v1) return @@ -175860,7 +177685,7 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } } goto json_type_done @@ -175869,11 +177694,54 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { i = uint32(0) } Xsqlite3_result_text(tls, ctx, _jsonbType[int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(p)).FaBlob + uintptr(i))))&int32(0x0f)], -int32(1), libc.UintptrFromInt32(0)) + goto json_type_done json_type_done: ; _jsonParseFree(tls, p) } +// C documentation +// +// /* +// ** json_pretty(JSON) +// ** json_pretty(JSON, INDENT) +// ** +// ** Return text that is a pretty-printed rendering of the input JSON. +// ** If the argument is not valid JSON, return NULL. +// ** +// ** The INDENT argument is text that is used for indentation. If omitted, +// ** it defaults to four spaces (the same as PostgreSQL). +// */ +func _jsonPrettyFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { + bp := tls.Alloc(176) + defer tls.Free(176) + var v1 uintptr + var v2 bool + var _ /* s at bp+0 */ TJsonString + var _ /* x at bp+136 */ TJsonPretty + _, _ = v1, v2 /* Pretty printing context */ + libc.Xmemset(tls, bp+136, 0, uint64(32)) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse = _jsonParseFuncArg(tls, ctx, *(*uintptr)(unsafe.Pointer(argv)), uint32(0)) + if (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse == uintptr(0) { + return + } + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpOut = bp + _jsonStringInit(tls, bp, ctx) + if v2 = argc == int32(1); !v2 { + v1 = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = v1 + } + if v2 || v1 == uintptr(0) { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = __ccgo_ts + 25327 + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(4) + } else { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(libc.Xstrlen(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent)) + } + _jsonTranslateBlobToPrettyText(tls, bp+136, uint32(0)) + _jsonReturnString(tls, bp, uintptr(0), uintptr(0)) + _jsonParseFree(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse) +} + // C documentation // // /* @@ -175948,7 +177816,7 @@ func _jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if argc == int32(2) { f = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if f < int64(1) || f > int64(15) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25198, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25332, -int32(1)) return } flags = uint8(f & int64(0x0f)) @@ -176138,7 +178006,7 @@ func _jsonArrayCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25255, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25389, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -176287,7 +178155,7 @@ func _jsonObjectCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25258, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25392, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -176390,7 +178258,7 @@ func _jsonEachConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv _ = argv _ = argc _ = pAux - rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25261) + rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25395) if rc == SQLITE_OK { pNew = _sqlite3DbMallocZero(tls, db, uint64(32)) *(*uintptr)(unsafe.Pointer(ppVtab)) = pNew @@ -176526,7 +178394,7 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TJsonEachCursor)(unsafe.Pointer(p)).FeType) == int32(JSONB_ARRAY) { - _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25344, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) + _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25478, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) } else { *(*Tu32)(unsafe.Pointer(bp)) = uint32(0) needQuote = 0 @@ -176552,9 +178420,9 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { } } if needQuote != 0 { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25351, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25485, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } else { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25359, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25493, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } } } @@ -176944,7 +178812,7 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a i = v5 (*TJsonEachCursor)(unsafe.Pointer(p)).FeType = uint8(0) (*TJsonEachCursor)(unsafe.Pointer(p)).FnRoot = uint32(1) - _jsonAppendRaw(tls, p+56, __ccgo_ts+25365, uint32(1)) + _jsonAppendRaw(tls, p+56, __ccgo_ts+25499, uint32(1)) } (*TJsonEachCursor)(unsafe.Pointer(p)).FnParent = uint32(0) n = _jsonbPayloadSize(tls, p+192, i, bp) @@ -176964,10 +178832,11 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent))).FiValue = i } return SQLITE_OK + goto json_each_malformed_input json_each_malformed_input: ; Xsqlite3_free(tls, (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg) - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24936, 0) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25059, 0) _jsonEachCursorReset(tls, p) if (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg != 0 { v6 = int32(SQLITE_ERROR) @@ -177021,183 +178890,193 @@ func init() { // ** Register JSON functions. // */ func _sqlite3RegisterJsonFunctions(tls *libc.TLS) { - _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2304)/libc.Uint64FromInt64(72))) + _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2448)/libc.Uint64FromInt64(72))) } -var _aJsonFunc = [32]TFuncDef{ +var _aJsonFunc = [34]TFuncDef{ 0: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25367, + FzName: __ccgo_ts + 25501, }, 1: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25372, + FzName: __ccgo_ts + 25506, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25378, + FzName: __ccgo_ts + 25512, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25389, + FzName: __ccgo_ts + 25523, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25401, + FzName: __ccgo_ts + 25535, }, 5: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25401, + FzName: __ccgo_ts + 25535, }, 6: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25419, + FzName: __ccgo_ts + 25553, }, 7: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25439, + FzName: __ccgo_ts + 25573, }, 8: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25452, + FzName: __ccgo_ts + 25586, }, 9: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_JSON) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25466, + FzName: __ccgo_ts + 25600, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_SQL) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25469, + FzName: __ccgo_ts + 25603, }, 11: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25473, + FzName: __ccgo_ts + 25607, }, 12: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25485, + FzName: __ccgo_ts + 25619, }, 13: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25498, + FzName: __ccgo_ts + 25632, }, 14: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25510, + FzName: __ccgo_ts + 25644, }, 15: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25523, + FzName: __ccgo_ts + 25657, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25534, + FzName: __ccgo_ts + 25668, }, 17: { FnArg: int8(1), - FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25546, + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25680, }, 18: { + FnArg: int8(2), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25680, + }, + 19: { + FnArg: int8(1), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25692, + }, + 20: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25557, + FzName: __ccgo_ts + 25703, }, - 19: { + 21: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25569, + FzName: __ccgo_ts + 25715, }, - 20: { + 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25582, + FzName: __ccgo_ts + 25728, }, - 21: { + 23: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25595, + FzName: __ccgo_ts + 25741, }, - 22: { + 24: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25609, + FzName: __ccgo_ts + 25755, }, - 23: { + 25: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25618, + FzName: __ccgo_ts + 25764, }, - 24: { + 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25628, + FzName: __ccgo_ts + 25774, }, - 25: { + 27: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25628, + FzName: __ccgo_ts + 25774, }, - 26: { + 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25638, + FzName: __ccgo_ts + 25784, }, - 27: { + 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25638, + FzName: __ccgo_ts + 25784, }, - 28: { + 30: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25649, + FzName: __ccgo_ts + 25795, }, - 29: { + 31: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25666, + FzName: __ccgo_ts + 25812, }, - 30: { + 32: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25684, + FzName: __ccgo_ts + 25830, }, - 31: { + 33: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25702, + FzName: __ccgo_ts + 25848, }, } @@ -177220,33 +179099,35 @@ func init() { *(*uintptr)(unsafe.Add(p, 1032)) = __ccgo_fp(_jsonObjectFunc) *(*uintptr)(unsafe.Add(p, 1104)) = __ccgo_fp(_jsonPatchFunc) *(*uintptr)(unsafe.Add(p, 1176)) = __ccgo_fp(_jsonPatchFunc) - *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonQuoteFunc) - *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2048)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2056)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2064)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2120)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2128)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2136)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonQuoteFunc) + *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2208)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2280)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2328)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2336)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2344)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2352)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2400)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2408)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2416)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2424)) = __ccgo_fp(_jsonGroupInverse) } // C documentation @@ -177278,11 +179159,11 @@ var _aMod = [2]struct { FpModule uintptr }{ 0: { - FzName: __ccgo_ts + 25721, + FzName: __ccgo_ts + 25867, FpModule: uintptr(unsafe.Pointer(&_jsonEachModule)), }, 1: { - FzName: __ccgo_ts + 25731, + FzName: __ccgo_ts + 25877, FpModule: uintptr(unsafe.Pointer(&_jsonTreeModule)), }, } @@ -177935,7 +179816,7 @@ func _nodeAcquire(tls *libc.TLS, pRtree uintptr, iNode Ti64, pParent uintptr, pp } } if (*TRtree)(unsafe.Pointer(pRtree)).FpNodeBlob == uintptr(0) { - rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25741, iNode, 0, pRtree+112) + rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25887, iNode, 0, pRtree+112) } if rc != 0 { *(*uintptr)(unsafe.Pointer(ppNode)) = uintptr(0) @@ -178247,7 +180128,7 @@ func _rtreeDestroy(tls *libc.TLS, pVtab uintptr) (r int32) { var rc int32 _, _, _ = pRtree, rc, zCreate pRtree = pVtab - zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25746, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25892, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if !(zCreate != 0) { rc = int32(SQLITE_NOMEM) } else { @@ -179181,7 +181062,7 @@ func _findLeafNode(tls *libc.TLS, pRtree uintptr, iRowid Ti64, ppLeaf uintptr, p func _deserializeGeometry(tls *libc.TLS, pValue uintptr, pCons uintptr) (r int32) { var pBlob, pInfo, pSrc uintptr _, _, _ = pBlob, pInfo, pSrc /* Callback information */ - pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25828) + pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25974) if pSrc == uintptr(0) { return int32(SQLITE_ERROR) } @@ -179236,7 +181117,7 @@ func _rtreeFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintp iRowid = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) *(*Ti64)(unsafe.Pointer(bp + 24)) = 0 eType = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv))) - if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv))) == float64(iRowid) { + if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && 0 == _sqlite3IntFloatCompare(tls, iRowid, Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))) { rc = _findLeafNode(tls, pRtree, iRowid, bp+16, bp+24) } else { rc = SQLITE_OK @@ -180291,6 +182172,7 @@ func _SplitNode(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iHe rc = _nodeRelease(tls, pRtree, pLeft) pLeft = uintptr(0) } + goto splitnode_out splitnode_out: ; _nodeRelease(tls, pRtree, pRight) @@ -180724,7 +182606,7 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) _, _, _, _, _, _ = rc, zCol, zCol1, zCol2, zSql, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) _ = libc.Int32FromInt32(0) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25842, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25988, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if zSql != 0 { rc = Xsqlite3_prepare_v2(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, -int32(1), bp, uintptr(0)) } else { @@ -180734,11 +182616,11 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) if rc == SQLITE_OK { if iCol == 0 { zCol = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25862, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26008, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) } else { zCol1 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol) zCol2 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol+int32(1)) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25894, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26040, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) } } Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -180901,6 +182783,7 @@ func _rtreeUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pRow rc = Xsqlite3_reset(tls, pUp) } } + goto constraint constraint: ; _rtreeRelease(tls, pRtree) @@ -180916,6 +182799,7 @@ func _rtreeBeginTransaction(tls *libc.TLS, pVtab uintptr) (r int32) { var pRtree uintptr _ = pRtree pRtree = pVtab + _ = libc.Int32FromInt32(0) (*TRtree)(unsafe.Pointer(pRtree)).FinWrTrans = uint8(1) return SQLITE_OK } @@ -180952,7 +182836,7 @@ func _rtreeRename(tls *libc.TLS, pVtab uintptr, zNewName uintptr) (r int32) { _, _, _ = pRtree, rc, zSql pRtree = pVtab rc = int32(SQLITE_NOMEM) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25931, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26077, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) if zSql != 0 { _nodeBlobReset(tls, pRtree) rc = Xsqlite3_exec(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, uintptr(0), uintptr(0), uintptr(0)) @@ -181006,9 +182890,9 @@ func _rtreeQueryStat1(tls *libc.TLS, db uintptr, pRtree uintptr) (r int32) { var v2 int64 var _ /* p at bp+0 */ uintptr _, _, _, _, _, _ = nRow, rc, zFmt, zSql, v1, v2 - zFmt = __ccgo_ts + 26076 + zFmt = __ccgo_ts + 26222 nRow = int64(RTREE_MIN_ROWEST) - rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11582, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11707, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc != SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FnRowEst = int64(RTREE_DEFAULT_ROWEST) if rc == int32(SQLITE_ERROR) { @@ -181066,9 +182950,9 @@ func _rtreeShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName1 = [3]uintptr{ - 0: __ccgo_ts + 26132, - 1: __ccgo_ts + 5484, - 2: __ccgo_ts + 16694, + 0: __ccgo_ts + 26278, + 1: __ccgo_ts + 5548, + 2: __ccgo_ts + 16781, } var _rtreeModule = Tsqlite3_module{ @@ -181112,21 +182996,21 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref (*TRtree)(unsafe.Pointer(pRtree)).Fdb = db if isCreate != 0 { p = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26546, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26692, libc.VaList(bp+8, zDb, zPrefix)) ii = 0 for { if !(ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26608, libc.VaList(bp+8, ii)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26754, libc.VaList(bp+8, ii)) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26613, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26677, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26747, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26759, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26823, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26893, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) zCreate = Xsqlite3_str_finish(tls, p) if !(zCreate != 0) { return int32(SQLITE_NOMEM) @@ -181156,7 +183040,7 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } else { /* An UPSERT is very slightly slower than REPLACE, but it is needed ** if there are auxiliary columns */ - zFormat = __ccgo_ts + 26796 + zFormat = __ccgo_ts + 26942 } zSql = Xsqlite3_mprintf(tls, zFormat, libc.VaList(bp+8, zDb, zPrefix)) if zSql != 0 { @@ -181171,31 +183055,31 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref i++ } if (*TRtree)(unsafe.Pointer(pRtree)).FnAux != 0 && rc != int32(SQLITE_NOMEM) { - (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+26904, libc.VaList(bp+8, zDb, zPrefix)) + (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+27050, libc.VaList(bp+8, zDb, zPrefix)) if (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { p1 = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26949, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27095, libc.VaList(bp+8, zDb, zPrefix)) ii1 = 0 for { if !(ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } if ii1 != 0 { - Xsqlite3_str_append(tls, p1, __ccgo_ts+13090, int32(1)) + Xsqlite3_str_append(tls, p1, __ccgo_ts+13215, int32(1)) } if ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull) { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26976, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27122, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) } else { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26998, libc.VaList(bp+8, ii1, ii1+int32(2))) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27144, libc.VaList(bp+8, ii1, ii1+int32(2))) } goto _3 _3: ; ii1++ } - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27006, 0) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27152, 0) zSql1 = Xsqlite3_str_finish(tls, p1) if zSql1 == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -181209,14 +183093,14 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } var _azSql = [8]uintptr{ - 0: __ccgo_ts + 26137, - 1: __ccgo_ts + 26190, - 2: __ccgo_ts + 26235, - 3: __ccgo_ts + 26287, - 4: __ccgo_ts + 26341, - 5: __ccgo_ts + 26386, - 6: __ccgo_ts + 26444, - 7: __ccgo_ts + 26499, + 0: __ccgo_ts + 26283, + 1: __ccgo_ts + 26336, + 2: __ccgo_ts + 26381, + 3: __ccgo_ts + 26433, + 4: __ccgo_ts + 26487, + 5: __ccgo_ts + 26532, + 6: __ccgo_ts + 26590, + 7: __ccgo_ts + 26645, } // C documentation @@ -181274,7 +183158,7 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE _, _ = rc, zSql if isCreate != 0 { *(*int32)(unsafe.Pointer(bp)) = 0 - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27022, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27168, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) rc = _getIntFromStmt(tls, db, zSql, bp) if rc == SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = *(*int32)(unsafe.Pointer(bp)) - int32(64) @@ -181282,17 +183166,17 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = int32(4) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*int32(RTREE_MAXCELLS) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } } else { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27042, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27188, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) rc = _getIntFromStmt(tls, db, zSql, pRtree+32) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } else { if (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize < libc.Int32FromInt32(512)-libc.Int32FromInt32(64) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< libc.Int32FromInt32(RTREE_MAX_AUX_COLUMN)+libc.Int32FromInt32(3) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) return int32(SQLITE_ERROR) } Xsqlite3_vtab_config(tls, db, int32(SQLITE_VTAB_CONSTRAINT_SUPPORT), libc.VaList(bp+8, int32(1))) @@ -181369,13 +183253,13 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27285, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27431, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27291, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27437, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) ii = int32(4) for { if !(ii < argc) { @@ -181384,7 +183268,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt zArg = *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)) if int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('+') { (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27315, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27461, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) } else { if int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux) > 0 { break @@ -181398,19 +183282,19 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27342, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27488, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) } else { if ii < argc { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, aErrMsg[int32(4)])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, aErrMsg[int32(4)])) rc = int32(SQLITE_ERROR) } else { v3 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v3 if SQLITE_OK != v3 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } } @@ -181433,7 +183317,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } } if iErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, aErrMsg[iErr])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, aErrMsg[iErr])) goto rtreeInit_fail } (*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell = uint8(int32(8) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)*int32(4)) @@ -181444,11 +183328,12 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto rtreeInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto rtreeInit_fail rtreeInit_fail: ; if rc == SQLITE_OK { @@ -181461,8 +183346,8 @@ rtreeInit_fail: } var _azFormat = [2]uintptr{ - 0: __ccgo_ts + 27321, - 1: __ccgo_ts + 27332, + 0: __ccgo_ts + 27467, + 1: __ccgo_ts + 27478, } // C documentation @@ -181520,21 +183405,21 @@ func _rtreenode(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { } _nodeGetCell(tls, bp+40, bp, ii, bp+1008) if ii > 0 { - Xsqlite3_str_append(tls, pOut, __ccgo_ts+11202, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+11327, int32(1)) } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27345, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27491, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) jj = 0 for { if !(jj < int32((*(*TRtree)(unsafe.Pointer(bp + 40))).FnDim2)) { break } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27351, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27497, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) goto _2 _2: ; jj++ } - Xsqlite3_str_append(tls, pOut, __ccgo_ts+27355, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+27501, int32(1)) goto _1 _1: ; @@ -181561,7 +183446,7 @@ func _rtreedepth(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { _ = zBlob _ = nArg if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apArg))) != int32(SQLITE_BLOB) || Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(apArg))) < int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+27357, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+27503, -int32(1)) } else { zBlob = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(apArg))) if zBlob != 0 { @@ -181679,11 +183564,11 @@ func _rtreeCheckAppendMsg(tls *libc.TLS, pCheck uintptr, zFmt uintptr, va uintpt (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } else { if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport != 0 { - v1 = __ccgo_ts + 4203 + v1 = __ccgo_ts + 4267 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27390, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27536, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport == uintptr(0) { (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } @@ -181717,7 +183602,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt _, _, _ = nNode, pNode, pRet pRet = uintptr(0) /* Return value */ if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode == uintptr(0) { - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27397, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27543, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) } if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { Xsqlite3_bind_int64(tls, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, int32(1), iNode) @@ -181734,7 +183619,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt } _rtreeCheckReset(tls, pCheck, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && pRet == uintptr(0) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27442, libc.VaList(bp+8, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27588, libc.VaList(bp+8, iNode)) } } return pRet @@ -181763,8 +183648,8 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i var rc int32 _, _, _, _, _, _ = azSql, ii, pStmt, rc, v1, v2 azSql = [2]uintptr{ - 0: __ccgo_ts + 27474, - 1: __ccgo_ts + 27528, + 0: __ccgo_ts + 27620, + 1: __ccgo_ts + 27674, } _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) == uintptr(0) { @@ -181778,21 +183663,21 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i rc = Xsqlite3_step(tls, pStmt) if rc == int32(SQLITE_DONE) { if bLeaf != 0 { - v1 = __ccgo_ts + 27576 + v1 = __ccgo_ts + 27722 } else { - v1 = __ccgo_ts + 27584 + v1 = __ccgo_ts + 27730 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27593, libc.VaList(bp+8, iKey, iVal, v1)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27739, libc.VaList(bp+8, iKey, iVal, v1)) } else { if rc == int32(SQLITE_ROW) { ii = Xsqlite3_column_int64(tls, pStmt, 0) if ii != iVal { if bLeaf != 0 { - v2 = __ccgo_ts + 27576 + v2 = __ccgo_ts + 27722 } else { - v2 = __ccgo_ts + 27584 + v2 = __ccgo_ts + 27730 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27638, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27784, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) } } } @@ -181837,7 +183722,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 v2 = libc.BoolInt32(*(*TRtreeValue)(unsafe.Pointer(bp)) > *(*TRtreeValue)(unsafe.Pointer(bp + 4))) } if v2 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27696, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27842, libc.VaList(bp+24, i, iCell, iNode)) } if pParent != 0 { _readCoord(tls, pParent+uintptr(libc.Int32FromInt32(4)*libc.Int32FromInt32(2)*i), bp+8) @@ -181855,7 +183740,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 } } if v5 || v4 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27744, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27890, libc.VaList(bp+24, i, iCell, iNode)) } } goto _1 @@ -181890,19 +183775,19 @@ func _rtreeCheckNode(tls *libc.TLS, pCheck uintptr, iDepth int32, aParent uintpt aNode = _rtreeCheckGetNode(tls, pCheck, iNode, bp) if aNode != 0 { if *(*int32)(unsafe.Pointer(bp)) < int32(4) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27811, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27957, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) } else { /* Used to iterate through cells */ if aParent == uintptr(0) { iDepth = _readInt16(tls, aNode) if iDepth > int32(RTREE_MAX_DEPTH) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27845, libc.VaList(bp+16, iDepth)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27991, libc.VaList(bp+16, iDepth)) Xsqlite3_free(tls, aNode) return } } nCell = _readInt16(tls, aNode+2) if int32(4)+nCell*(int32(8)+(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnDim*int32(2)*int32(4)) > *(*int32)(unsafe.Pointer(bp)) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27875, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28021, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) } else { i = 0 for { @@ -181947,12 +183832,12 @@ func _rtreeCheckCount(tls *libc.TLS, pCheck uintptr, zTbl uintptr, nExpect Ti64) var pCount uintptr _, _ = nActual, pCount if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { - pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27930, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) + pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+28076, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) if pCount != 0 { if Xsqlite3_step(tls, pCount) == int32(SQLITE_ROW) { nActual = Xsqlite3_column_int64(tls, pCount, 0) if nActual != nExpect { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27961, libc.VaList(bp+8, zTbl, nExpect, nActual)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28107, libc.VaList(bp+8, zTbl, nExpect, nActual)) } } (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = Xsqlite3_finalize(tls, pCount) @@ -181981,7 +183866,7 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzDb = zDb (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzTab = zTab /* Find the number of auxiliary columns */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28028, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28174, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { nAux = Xsqlite3_column_count(tls, pStmt) - int32(2) Xsqlite3_finalize(tls, pStmt) @@ -181991,11 +183876,11 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe } } /* Find number of dimensions in the rtree table. */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25842, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25988, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim = (Xsqlite3_column_count(tls, pStmt) - int32(1) - nAux) / int32(2) if (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim < int32(1) { - _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28056, 0) + _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28202, 0) } else { if int32(SQLITE_ROW) == Xsqlite3_step(tls, pStmt) { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FbInt = libc.BoolInt32(Xsqlite3_column_type(tls, pStmt, int32(1)) == int32(SQLITE_INTEGER)) @@ -182011,8 +183896,8 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe if (*(*TRtreeCheck)(unsafe.Pointer(bp))).Frc == SQLITE_OK { _rtreeCheckNode(tls, bp, 0, uintptr(0), int64(1)) } - _rtreeCheckCount(tls, bp, __ccgo_ts+28087, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) - _rtreeCheckCount(tls, bp, __ccgo_ts+28094, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28233, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28240, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) } /* Finalize SQL statements used by the integrity-check */ Xsqlite3_finalize(tls, (*(*TRtreeCheck)(unsafe.Pointer(bp))).FpGetNode) @@ -182040,7 +183925,7 @@ func _rtreeIntegrity(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zName uintpt _ = isQuick rc = _rtreeCheckTable(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, pzErr) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28102, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28248, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) if *(*uintptr)(unsafe.Pointer(pzErr)) == uintptr(0) { rc = int32(SQLITE_NOMEM) } @@ -182091,13 +183976,13 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { var _ /* zReport at bp+0 */ uintptr _, _, _, _ = rc, zDb, zTab, v1 if nArg != int32(1) && nArg != int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+28121, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+28267, -int32(1)) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zDb = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg))) if nArg == int32(1) { zTab = zDb - zDb = __ccgo_ts + 6585 + zDb = __ccgo_ts + 6649 } else { zTab = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8))) } @@ -182106,7 +183991,7 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(bp)) } else { - v1 = __ccgo_ts + 18461 + v1 = __ccgo_ts + 18548 } Xsqlite3_result_text(tls, ctx, v1, -int32(1), uintptr(-libc.Int32FromInt32(1))) } else { @@ -182439,6 +184324,7 @@ func _geopolyParseJson(tls *libc.TLS, z uintptr, pRc uintptr) (r uintptr) { rc = int32(SQLITE_ERROR) } } + goto parse_json_err parse_json_err: ; if pRc != 0 { @@ -182572,19 +184458,19 @@ func _geopolyJsonFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if p != 0 { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) - Xsqlite3_str_append(tls, x, __ccgo_ts+25095, int32(1)) + Xsqlite3_str_append(tls, x, __ccgo_ts+25224, int32(1)) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28172, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28318, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28183, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28329, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -182613,20 +184499,20 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) cSep = uint8('\'') - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28194, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28340, 0) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28212, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28358, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) cSep = uint8(' ') goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28220, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28366, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) i = int32(1) for { if !(i < argc) { @@ -182634,14 +184520,14 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if z != 0 && *(*uint8)(unsafe.Pointer(z)) != 0 { - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28228, libc.VaList(bp+8, z)) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28374, libc.VaList(bp+8, z)) } goto _2 _2: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28232, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28378, 0) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -182947,6 +184833,7 @@ func _geopolyBBox(tls *libc.TLS, context uintptr, pPoly uintptr, aCoord uintptr, if !(aCoord == uintptr(0)) { goto _6 } + goto geopolyBboxFill geopolyBboxFill: ; pOut = Xsqlite3_realloc64(tls, p, libc.Uint64FromInt64(40)+libc.Uint64FromInt64(4)*libc.Uint64FromInt32(2)*uint64(libc.Int32FromInt32(4)-libc.Int32FromInt32(4))) @@ -183050,8 +184937,8 @@ func _geopolyBBoxStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if pBBox == uintptr(0) { return } - if (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit == 0 { - (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit = int32(1) + if libc.AtomicLoadPInt32(pBBox) == 0 { + libc.AtomicStorePInt32(pBBox, int32(1)) libc.Xmemcpy(tls, pBBox+4, bp, libc.Uint64FromInt64(4)*libc.Uint64FromInt32(4)) } else { if *(*TRtreeValue)(unsafe.Pointer(bp)) < *(*TRtreeValue)(unsafe.Pointer(pBBox + 4)) { @@ -183678,6 +185565,7 @@ func _geopolyOverlap(tls *libc.TLS, p1 uintptr, p2 uintptr) (r int32) { } } } + goto geopolyOverlapDone geopolyOverlapDone: ; Xsqlite3_free(tls, p) @@ -183769,13 +185657,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27285, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27431, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28245, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28391, 0) (*TRtree)(unsafe.Pointer(pRtree)).FnAux = uint8(1) /* Add one for _shape */ (*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull = uint8(1) /* The _shape column is always not-null */ ii = int32(3) @@ -183784,13 +185672,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint break } (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28267, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28413, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27342, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27488, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) @@ -183798,7 +185686,7 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint v2 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v2 if SQLITE_OK != v2 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } Xsqlite3_free(tls, zSql) @@ -183813,11 +185701,12 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto geopolyInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto geopolyInit_fail geopolyInit_fail: ; if rc == SQLITE_OK { @@ -183971,6 +185860,7 @@ func _geopolyFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uin *(*int32)(unsafe.Pointer(bp + 8)) = _rtreeStepToLeaf(tls, pCsr) } } + goto geopoly_filter_end geopoly_filter_end: ; _nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp))) @@ -184028,7 +185918,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iRowidTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(1) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16694 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16781 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).Fomit = uint8(1) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(30) @@ -184038,7 +185928,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iFuncTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = idxNum - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28271 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28417 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).Fomit = uint8(0) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(300) @@ -184046,7 +185936,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { return SQLITE_OK } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(4) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28277 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28423 (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(3e+06) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(100000) return SQLITE_OK @@ -184168,7 +186058,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR _geopolyBBox(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(aData + 2*8)), bp+8+8, bp) if *(*int32)(unsafe.Pointer(bp)) != 0 { if *(*int32)(unsafe.Pointer(bp)) == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28286, 0) + (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28432, 0) } goto geopoly_update_end } @@ -184256,6 +186146,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, pUp) } } + goto geopoly_update_end geopoly_update_end: ; _rtreeRelease(tls, pRtree) @@ -184271,12 +186162,12 @@ geopoly_update_end: func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28326) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28472) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28342) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28488) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) @@ -184347,7 +186238,7 @@ func _sqlite3_geopoly_init(tls *libc.TLS, db uintptr) (r int32) { i++ } if rc == SQLITE_OK { - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28519, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28665, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) } return rc } @@ -184361,61 +186252,61 @@ var _aFunc = [12]struct { 0: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28357, + FzName: __ccgo_ts + 28503, }, 1: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28370, + FzName: __ccgo_ts + 28516, }, 2: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28383, + FzName: __ccgo_ts + 28529, }, 3: { FnArg: int8(-int32(1)), FbPure: uint8(1), - FzName: __ccgo_ts + 28396, + FzName: __ccgo_ts + 28542, }, 4: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28342, + FzName: __ccgo_ts + 28488, }, 5: { FnArg: int8(3), FbPure: uint8(1), - FzName: __ccgo_ts + 28408, + FzName: __ccgo_ts + 28554, }, 6: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28326, + FzName: __ccgo_ts + 28472, }, 7: { FnArg: int8(1), - FzName: __ccgo_ts + 28431, + FzName: __ccgo_ts + 28577, }, 8: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28445, + FzName: __ccgo_ts + 28591, }, 9: { FnArg: int8(7), FbPure: uint8(1), - FzName: __ccgo_ts + 28458, + FzName: __ccgo_ts + 28604, }, 10: { FnArg: int8(4), FbPure: uint8(1), - FzName: __ccgo_ts + 28472, + FzName: __ccgo_ts + 28618, }, 11: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28488, + FzName: __ccgo_ts + 28634, }, } @@ -184441,7 +186332,7 @@ var _aAgg = [1]struct { FzName uintptr }{ 0: { - FzName: __ccgo_ts + 28500, + FzName: __ccgo_ts + 28646, }, } @@ -184466,20 +186357,20 @@ func _sqlite3RtreeInit(tls *libc.TLS, db uintptr) (r int32) { var rc, utf8 int32 _, _, _, _ = c, c1, rc, utf8 utf8 = int32(SQLITE_UTF8) - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28527, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28673, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28537, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28683, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28548, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28694, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { c = libc.UintptrFromInt32(RTREE_COORD_REAL32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28271, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28417, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) } if rc == SQLITE_OK { c1 = libc.UintptrFromInt32(RTREE_COORD_INT32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28559, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28705, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) } if rc == SQLITE_OK { rc = _sqlite3_geopoly_init(tls, db) @@ -184581,7 +186472,7 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { Xsqlite3_result_error_nomem(tls, ctx) _rtreeMatchArgFree(tls, pBlob) } else { - Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25828, __ccgo_fp(_rtreeMatchArgFree)) + Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25974, __ccgo_fp(_rtreeMatchArgFree)) } } } @@ -185799,7 +187690,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt /* Figure out the size of the output */ nOut = _rbuDeltaOutputSize(tls, aDelta, nDelta) if nOut < 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+28569, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28715, -int32(1)) return } aOut = Xsqlite3_malloc(tls, nOut+int32(1)) @@ -185809,7 +187700,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt nOut2 = _rbuDeltaApply(tls, aOrig, nOrig, aDelta, nDelta, aOut) if nOut2 != nOut { Xsqlite3_free(tls, aOut) - Xsqlite3_result_error(tls, context, __ccgo_ts+28569, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28715, -int32(1)) } else { Xsqlite3_result_blob(tls, context, aOut, nOut, __ccgo_fp(Xsqlite3_free)) } @@ -185835,7 +187726,7 @@ func _prepareAndCollectError(tls *libc.TLS, db uintptr, ppStmt uintptr, pzErrmsg _ = rc rc = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), ppStmt, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) } return rc @@ -185858,7 +187749,7 @@ func _resetAndCollectError(tls *libc.TLS, pStmt uintptr, pzErrmsg uintptr) (r in _ = rc rc = Xsqlite3_reset(tls, pStmt) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) } return rc } @@ -185991,7 +187882,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { /* Free any SQLite statements used while processing the previous object */ _rbuObjIterClearStatements(tls, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28590, uintptr(0), uintptr(0), p+64) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28736, uintptr(0), uintptr(0), p+64) } if rc == SQLITE_OK { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 { @@ -186001,6 +187892,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { if rc != int32(SQLITE_ROW) { rc = _resetAndCollectError(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, p+64) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = uintptr(0) + (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = uintptr(0) } else { (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, 0) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, int32(1)) @@ -186081,7 +187973,7 @@ func _rbuTargetNameFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { Xsqlite3_result_text(tls, pCtx, zIn, -int32(1), libc.UintptrFromInt32(0)) } } else { - if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25741, zIn, uint64(4)) == 0 { + if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25887, zIn, uint64(4)) == 0 { i = int32(4) for { if !(int32(*(*uint8)(unsafe.Pointer(zIn + uintptr(i)))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(zIn + uintptr(i)))) <= int32('9')) { @@ -186118,13 +188010,13 @@ func _rbuObjIterFirst(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { _, _ = rc, v1 libc.Xmemset(tls, pIter, 0, uint64(192)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 28761 + v1 = __ccgo_ts + 28907 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+28802, libc.VaList(bp+8, v1))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+28948, libc.VaList(bp+8, v1))) if rc == SQLITE_OK { - rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+28952) + rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+29098) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup = int32(1) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -186292,7 +188184,7 @@ func _rbuFinalize(tls *libc.TLS, p uintptr, pStmt uintptr) { rc = Xsqlite3_finalize(tls, pStmt) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && rc != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } @@ -186354,7 +188246,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu *(*int32)(unsafe.Pointer(peType)) = RBU_PK_NOTABLE *(*int32)(unsafe.Pointer(piPk)) = 0 _ = libc.Int32FromInt32(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29077, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29223, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK || Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0]) != int32(SQLITE_ROW) { /* Either an error, or no such table. */ goto rbuTableType_end @@ -186364,7 +188256,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } *(*int32)(unsafe.Pointer(piTnum)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0], int32(1)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29196, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29342, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { goto rbuTableType_end } @@ -186372,7 +188264,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu zOrig = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(3)) zIdx = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(1)) if zOrig != 0 && zIdx != 0 && int32(*(*Tu8)(unsafe.Pointer(zOrig))) == int32('p') { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29217, libc.VaList(bp+40, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29363, libc.VaList(bp+40, zIdx))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)]) == int32(SQLITE_ROW) { *(*int32)(unsafe.Pointer(piPk)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)], 0) @@ -186384,7 +188276,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29268, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29414, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { for Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)]) == int32(SQLITE_ROW) { if Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)], int32(5)) > 0 { @@ -186394,6 +188286,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu } *(*int32)(unsafe.Pointer(peType)) = int32(RBU_PK_NONE) } + goto rbuTableType_end rbuTableType_end: ; i = uint32(0) @@ -186427,7 +188320,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { bIndex = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { libc.Xmemcpy(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk, uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29289, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29435, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FnIndex = 0 for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -186440,7 +188333,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { if bPartial != 0 { libc.Xmemset(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, int32(0x01), uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+24, zIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) if iCid >= 0 { @@ -186494,7 +188387,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 _rbuTableType(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, pIter+72, bp+8, pIter+108) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NOTABLE { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+19904, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+20036, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc @@ -186506,7 +188399,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 /* Populate the azTblCol[] and nTblCol variables based on the columns ** of the input table. Ignore any input table columns that begin with ** "rbu_". */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29346, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29492, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { nCol = Xsqlite3_column_count(tls, *(*uintptr)(unsafe.Pointer(bp))) _rbuAllocateIterArrays(tls, p, pIter, nCol) @@ -186517,7 +188410,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 break } zName = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), i) - if Xsqlite3_strnicmp(tls, __ccgo_ts+29365, zName, int32(4)) != 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+29511, zName, int32(4)) != 0 { zCopy = _rbuStrndup(tls, zName, p+56) *(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)*4)) = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol v3 = pIter + 16 @@ -186525,7 +188418,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 *(*int32)(unsafe.Pointer(v3))++ *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(v2)*8)) = zCopy } else { - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29370, zName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29516, zName) { bRbuRowid = int32(1) } } @@ -186539,17 +188432,17 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && bRbuRowid != libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) if bRbuRowid != 0 { - v4 = __ccgo_ts + 29380 + v4 = __ccgo_ts + 29526 } else { - v4 = __ccgo_ts + 29393 + v4 = __ccgo_ts + 29539 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29402, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29548, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) } /* Check that all non-HIDDEN columns in the destination table are also ** present in the input table. Populate the abTblPk[], azTblType[] and ** aiTblOrder[] arrays at the same time. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29431, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29577, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zName1 = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -186571,7 +188464,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 } if i == (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29453, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29599, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) } else { iPk = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) bNotNull = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) @@ -186613,15 +188506,15 @@ func _rbuObjIterGetCollist(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) var z, zList, zSep uintptr _, _, _, _ = i, z, zList, zSep zList = uintptr(0) - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } z = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+29480, libc.VaList(bp+8, zList, zSep, z)) - zSep = __ccgo_ts + 14990 + zList = _rbuMPrintf(tls, p, __ccgo_ts+29626, libc.VaList(bp+8, zList, zSep, z)) + zSep = __ccgo_ts + 15083 goto _1 _1: ; @@ -186646,7 +188539,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, _, _, _, _, _ = i, iPk, zCol, zRet, zSep iPk = int32(1) zRet = uintptr(0) - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 for int32(1) != 0 { i = 0 for { @@ -186655,7 +188548,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, } if int32(*(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == iPk { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29489, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29635, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) zSep = zSeparator break } @@ -186703,21 +188596,21 @@ func _rbuVacuumTableStart(tls *libc.TLS, p uintptr, pIter uintptr, bRowid int32, *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zRet = uintptr(0) if bRowid != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29502, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29648, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iMax = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29534, libc.VaList(bp+16, iMax)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29680, libc.VaList(bp+16, iMax)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1648, __ccgo_ts+14990, __ccgo_ts+29557) - zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29563, __ccgo_ts+29570, __ccgo_ts+5106) - zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1648, __ccgo_ts+14990, __ccgo_ts+1648) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1662, __ccgo_ts+15083, __ccgo_ts+29703) + zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29709, __ccgo_ts+29716, __ccgo_ts+5170) + zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1662, __ccgo_ts+15083, __ccgo_ts+1662) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29578, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29724, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zVal = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29620, libc.VaList(bp+16, zList, zVal)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29766, libc.VaList(bp+16, zList, zVal)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } @@ -186766,10 +188659,10 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { zVector = uintptr(0) zRet = uintptr(0) bFailed = 0 - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 iCol = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(4)) @@ -186792,15 +188685,15 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _ = libc.Int32FromInt32(0) zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { - zCol = __ccgo_ts + 29640 + zCol = __ccgo_ts + 29786 } } else { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) } - zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29648, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29669, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) - zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29705, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) - zSep = __ccgo_ts + 14990 + zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29794, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29815, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) + zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29851, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) + zSep = __ccgo_ts + 15083 iCol++ } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) @@ -186809,9 +188702,9 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29732, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29878, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 iCol = 0 for { if !(iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol) { @@ -186826,19 +188719,20 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { break } } - zVector = _rbuMPrintf(tls, p, __ccgo_ts+29780, libc.VaList(bp+24, zVector, zSep, zQuoted)) - zSep = __ccgo_ts + 14990 + zVector = _rbuMPrintf(tls, p, __ccgo_ts+29926, libc.VaList(bp+24, zVector, zSep, zQuoted)) + zSep = __ccgo_ts + 15083 goto _2 _2: ; iCol++ } if !(bFailed != 0) { - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29787, libc.VaList(bp+24, zLhs, zVector)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29933, libc.VaList(bp+24, zLhs, zVector)) } } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } + goto index_start_out index_start_out: ; Xsqlite3_free(tls, zOrder) @@ -186887,12 +188781,12 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zImpPK = uintptr(0) /* String to return via *pzImposterPK */ zWhere = uintptr(0) /* String to return via *pzWhere */ nBind = 0 /* Value to return via *pnBind */ - zCom = __ccgo_ts + 1648 /* Set to ", " later on */ - zAnd = __ccgo_ts + 1648 /* Set to " AND " later on */ + zCom = __ccgo_ts + 1662 /* Set to ", " later on */ + zAnd = __ccgo_ts + 1662 /* Set to " AND " later on */ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_xinfo = ? */ if rc == SQLITE_OK { _ = libc.Int32FromInt32(0) - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -186901,8 +188795,8 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = uintptr(0) if iCid == -int32(2) { iSeq = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29799, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) - zType = __ccgo_ts + 1648 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29945, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) + zType = __ccgo_ts + 1662 } else { if iCid < 0 { /* An integer primary key. If the table has an explicit IPK, use @@ -186922,9 +188816,9 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - zCol = __ccgo_ts + 29640 + zCol = __ccgo_ts + 29786 } else { - zCol = __ccgo_ts + 29370 + zCol = __ccgo_ts + 29516 } } zType = __ccgo_ts + 1136 @@ -186932,24 +188826,24 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) zType = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)) } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29821, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29967, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) } if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbUnique == 0 || Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) != 0 { if bDesc != 0 { - v2 = __ccgo_ts + 29557 + v2 = __ccgo_ts + 29703 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } zOrder = v2 - zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29841, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) + zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29987, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) } - zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+29862, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) - zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+29895, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) + zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+30008, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) + zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+30041, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) if zRet == uintptr(0) || zImpPK == uintptr(0) || zImpCols == uintptr(0) || zWhere == uintptr(0) { rc = int32(SQLITE_NOMEM) } - zCom = __ccgo_ts + 14990 - zAnd = __ccgo_ts + 22013 + zCom = __ccgo_ts + 15083 + zAnd = __ccgo_ts + 22158 nBind++ } rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -186995,7 +188889,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr _, _, _, _ = i, zCol, zList, zS zList = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zS = __ccgo_ts + 1648 + zS = __ccgo_ts + 1662 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -187003,11 +188897,11 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed + uintptr(i))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29919, libc.VaList(bp+8, zList, zS, zObj, zCol)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30065, libc.VaList(bp+8, zList, zS, zObj, zCol)) } else { - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29931, libc.VaList(bp+8, zList, zS)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30077, libc.VaList(bp+8, zList, zS)) } - zS = __ccgo_ts + 14990 + zS = __ccgo_ts + 15083 if zList == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) break @@ -187019,7 +188913,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } /* For a table with implicit rowids, append "old._rowid_" to the list. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29940, libc.VaList(bp+8, zList, zObj)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30086, libc.VaList(bp+8, zList, zObj)) } } return zList @@ -187045,27 +188939,27 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _ = i, i1, zCol, zList, zSep, zSep1 zList = uintptr(0) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29955, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30101, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29969, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) - zSep = __ccgo_ts + 22013 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30115, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) + zSep = __ccgo_ts + 22158 } goto _1 _1: ; i++ } - zList = _rbuMPrintf(tls, p, __ccgo_ts+29981, libc.VaList(bp+8, zList)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30127, libc.VaList(bp+8, zList)) } else { - zSep1 = __ccgo_ts + 1648 + zSep1 = __ccgo_ts + 1662 i1 = 0 for { if !(i1 < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -187073,8 +188967,8 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i1))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i1)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+30031, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) - zSep1 = __ccgo_ts + 22013 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30177, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) + zSep1 = __ccgo_ts + 22158 } goto _2 _2: @@ -187097,7 +188991,7 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { // */ func _rbuBadControlError(tls *libc.TLS, p uintptr) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30044, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30190, 0) } // C documentation @@ -187131,7 +189025,7 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt if int32(libc.Xstrlen(tls, zMask)) != (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { _rbuBadControlError(tls, p) } else { - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -187139,16 +189033,16 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt } c = *(*uint8)(unsafe.Pointer(zMask + uintptr(*(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(i)*4))))) if int32(c) == int32('x') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30031, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14990 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30177, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15083 } else { if int32(c) == int32('d') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30070, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14990 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30216, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15083 } else { if int32(c) == int32('f') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30100, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14990 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30246, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15083 } } } @@ -187233,16 +189127,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { z = uintptr(0) _ = libc.Int32FromInt32(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zSep = __ccgo_ts + 30137 + zSep = __ccgo_ts + 30283 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_list = (pIter->zTbl) */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA index_xinfo = */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29289, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29435, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zOrig = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) - if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16582) == 0 { + if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16669) == 0 { zIdx = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+24, zIdx))) } break } @@ -187253,16 +189147,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { /* int iCid = sqlite3_column_int(pXInfo, 0); */ zCol = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(2)) if Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) != 0 { - v1 = __ccgo_ts + 29557 + v1 = __ccgo_ts + 29703 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } zDesc = v1 - z = _rbuMPrintf(tls, p, __ccgo_ts+30150, libc.VaList(bp+24, z, zSep, zCol, zDesc)) - zSep = __ccgo_ts + 14990 + z = _rbuMPrintf(tls, p, __ccgo_ts+30296, libc.VaList(bp+24, z, zSep, zCol, zDesc)) + zSep = __ccgo_ts + 15083 } } - z = _rbuMPrintf(tls, p, __ccgo_ts+30161, libc.VaList(bp+24, z)) + z = _rbuMPrintf(tls, p, __ccgo_ts+30307, libc.VaList(bp+24, z)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } return z @@ -187302,13 +189196,13 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* SELECT name ... WHERE rootpage = $tnum */ zIdx = uintptr(0) /* Name of PK index */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA main.index_xinfo = $zIdx */ - zComma = __ccgo_ts + 1648 + zComma = __ccgo_ts + 1662 zCols = uintptr(0) /* Used to build up list of table cols */ zPk = uintptr(0) /* Used to build up table PK declaration */ /* Figure out the name of the primary key index for the current table. ** This is needed for the argument to "PRAGMA index_xinfo". Set ** zIdx to point to a nul-terminated string containing this name. */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30165) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30311) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), tnum) if int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -187316,7 +189210,7 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { } } if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+24, zIdx))) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { @@ -187325,21 +189219,21 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) bDesc = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(4)) - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30215, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30361, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) if bDesc != 0 { - v1 = __ccgo_ts + 29557 + v1 = __ccgo_ts + 29703 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - zPk = _rbuMPrintf(tls, p, __ccgo_ts+30237, libc.VaList(bp+24, zPk, zComma, iCid, v1)) - zComma = __ccgo_ts + 14990 + zPk = _rbuMPrintf(tls, p, __ccgo_ts+30383, libc.VaList(bp+24, zPk, zComma, iCid, v1)) + zComma = __ccgo_ts + 15083 } } - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30247, libc.VaList(bp+24, zCols)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30393, libc.VaList(bp+24, zCols)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30262, libc.VaList(bp+24, zCols, zPk)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30408, libc.VaList(bp+24, zCols, zPk)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, 0)) } } @@ -187374,30 +189268,30 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { _, _, _, _, _, _, _, _, _ = iCol, tnum, zCol, zComma, zPk, zPk1, zSql, v2, v3 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { tnum = (*TRbuObjIter)(unsafe.Pointer(pIter)).FiTnum - zComma = __ccgo_ts + 1648 + zComma = __ccgo_ts + 1662 zSql = uintptr(0) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, int32(1))) iCol = 0 for { if !((*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } - zPk = __ccgo_ts + 1648 + zPk = __ccgo_ts + 1662 zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCol)*8)) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_IPK) && *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(iCol))) != 0 { /* If the target table column is an "INTEGER PRIMARY KEY", add ** "PRIMARY KEY" to the imposter table column declaration. */ - zPk = __ccgo_ts + 30324 + zPk = __ccgo_ts + 30470 } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iCol))) != 0 { - v2 = __ccgo_ts + 30337 + v2 = __ccgo_ts + 30483 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30347, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) - zComma = __ccgo_ts + 14990 + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30493, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) + zComma = __ccgo_ts + 15083 goto _1 _1: ; @@ -187406,17 +189300,17 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { zPk1 = _rbuWithoutRowidPK(tls, p, pIter) if zPk1 != 0 { - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30374, libc.VaList(bp+16, zSql, zPk1)) + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30520, libc.VaList(bp+16, zSql, zPk1)) } } - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(1), tnum)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(1), tnum)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { - v3 = __ccgo_ts + 30381 + v3 = __ccgo_ts + 30527 } else { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30396, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, 0)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30542, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, 0)) } } @@ -187443,7 +189337,7 @@ func _rbuObjIterPrepareTmpInsert(tls *libc.TLS, p uintptr, pIter uintptr, zColli zBind = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1)+bRbuRowid) if zBind != 0 { _ = libc.Int32FromInt32(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30428, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30574, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) } } @@ -187491,7 +189385,7 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt zRet = uintptr(0) _ = libc.Int32FromInt32(0) if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30485) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30631) } if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3_bind_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx, -int32(1), libc.UintptrFromInt32(0)) @@ -187662,7 +189556,7 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zIdx = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx zLimit = uintptr(0) if nOffset != 0 { - zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30551, libc.VaList(bp+40, nOffset)) + zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30697, libc.VaList(bp+40, nOffset)) if !(zLimit != 0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } @@ -187680,18 +189574,18 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zCollist = _rbuObjIterGetIndexCols(tls, p, pIter, bp, bp+8, bp+16, bp+24) zBind = _rbuObjIterGetBindlist(tls, p, *(*int32)(unsafe.Pointer(bp + 24))) /* Create the imposter table used to write to this index. */ - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, int32(1))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30571, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30717, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, 0)) /* Create the statement to insert index entries */ (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = *(*int32)(unsafe.Pointer(bp + 24)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30636, libc.VaList(bp+40, zTbl, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30782, libc.VaList(bp+40, zTbl, zBind))) } /* And to delete index entries */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30672, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30818, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) } /* Create the SELECT statement to read keys in sorted order */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -187706,26 +189600,26 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } if zStart != 0 { if zPart != 0 { - v2 = __ccgo_ts + 30706 + v2 = __ccgo_ts + 30852 } else { - v2 = __ccgo_ts + 30710 + v2 = __ccgo_ts + 30856 } v1 = v2 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30716, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30862, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) Xsqlite3_free(tls, zStart) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30777, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30923, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) } else { if zPart != 0 { - v3 = __ccgo_ts + 30706 + v3 = __ccgo_ts + 30852 } else { - v3 = __ccgo_ts + 30710 + v3 = __ccgo_ts + 30856 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30838, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30984, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -187744,62 +189638,62 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zTbl1 = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl /* Imposter table name */ zBindings = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+bRbuRowid) zWhere1 = _rbuObjIterGetWhere(tls, p, pIter) - zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6596) - zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6592) + zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6660) + zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6656) zCollist = _rbuObjIterGetCollist(tls, p, pIter) (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol /* Create the imposter table or tables (if required). */ _rbuCreateImposterTable(tls, p, pIter) _rbuCreateImposterTable2(tls, p, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) { - v4 = __ccgo_ts + 1648 + v4 = __ccgo_ts + 1662 } else { - v4 = __ccgo_ts + 30997 + v4 = __ccgo_ts + 31143 } zWrite = v4 /* Create the INSERT statement to write to the target PK b-tree */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if bRbuRowid != 0 { - v5 = __ccgo_ts + 31006 + v5 = __ccgo_ts + 31152 } else { - v5 = __ccgo_ts + 1648 + v5 = __ccgo_ts + 1662 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31016, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31162, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) } /* Create the DELETE statement to write to the target PK b-tree. ** Because it only performs INSERT operations, this is not required for ** an rbu vacuum handle. */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31052, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31198, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) } if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zRbuRowid = __ccgo_ts + 1648 + zRbuRowid = __ccgo_ts + 1662 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zRbuRowid = __ccgo_ts + 31080 + zRbuRowid = __ccgo_ts + 31226 } /* Create the rbu_tmp_xxx table and the triggers to populate it. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - v6 = __ccgo_ts + 31092 + v6 = __ccgo_ts + 31238 } else { - v6 = __ccgo_ts + 1648 + v6 = __ccgo_ts + 1662 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31109, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31185, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31255, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31331, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31484, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31630, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) } _rbuObjIterPrepareTmpInsert(tls, p, pIter, zCollist, zRbuRowid) } /* Create the SELECT statement to read keys from data_xxx */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zRbuRowid1 = __ccgo_ts + 1648 + zRbuRowid1 = __ccgo_ts + 1662 zStart1 = uintptr(0) zOrder = uintptr(0) if bRbuRowid != 0 { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v7 = __ccgo_ts + 31583 + v7 = __ccgo_ts + 31729 } else { - v7 = __ccgo_ts + 31593 + v7 = __ccgo_ts + 31739 } zRbuRowid1 = v7 } @@ -187812,28 +189706,28 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } } if bRbuRowid != 0 { - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29640, 0) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29786, 0) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1648, __ccgo_ts+14990, __ccgo_ts+1648) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1662, __ccgo_ts+15083, __ccgo_ts+1662) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v8 = __ccgo_ts + 31604 + v8 = __ccgo_ts + 31750 } else { - v8 = __ccgo_ts + 1648 + v8 = __ccgo_ts + 1662 } if zStart1 != 0 { v9 = zStart1 } else { - v9 = __ccgo_ts + 1648 + v9 = __ccgo_ts + 1662 } if zOrder != 0 { - v10 = __ccgo_ts + 23207 + v10 = __ccgo_ts + 23352 } else { - v10 = __ccgo_ts + 1648 + v10 = __ccgo_ts + 1662 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31610, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31756, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) } Xsqlite3_free(tls, zStart1) Xsqlite3_free(tls, zOrder) @@ -187920,11 +189814,11 @@ func _rbuGetUpdateStmt(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintptr, p (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpNext = (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate = pUp if zSet != 0 { - zPrefix = __ccgo_ts + 1648 + zPrefix = __ccgo_ts + 1662 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { - zPrefix = __ccgo_ts + 30997 + zPrefix = __ccgo_ts + 31143 } - zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31658, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) + zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31804, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pUp+8, p+64, zUpdate) *(*uintptr)(unsafe.Pointer(ppStmt)) = (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate } @@ -187951,7 +189845,7 @@ func _rbuOpenDbhandle(tls *libc.TLS, p uintptr, zName uintptr, bUseVfs int32) (r } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_open_v2(tls, zName, bp, flags, v1) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) Xsqlite3_close(tls, *(*uintptr)(unsafe.Pointer(bp))) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) } @@ -187998,7 +189892,7 @@ func _rbuLoadState(tls *libc.TLS, p uintptr) (r uintptr) { if pRet == uintptr(0) { return uintptr(0) } - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31688, libc.VaList(bp+24, p+48))) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31834, libc.VaList(bp+24, p+48))) for *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { switch Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) { case int32(RBU_STATE_STAGE): @@ -188060,27 +189954,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu = _rbuOpenDbhandle(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, int32(1)) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain = dbMain if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6585, int32(SQLITE_FCNTL_RBUCNT), p) + Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6649, int32(SQLITE_FCNTL_RBUCNT), p) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState == uintptr(0) { - zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6585) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31718, libc.VaList(bp+8, zFile, zFile)) + zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6649) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31864, libc.VaList(bp+8, zFile, zFile)) } } /* If using separate RBU and state databases, attach the state database to ** the RBU db handle now. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState != 0 { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31746, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) - libc.Xmemcpy(tls, p+48, __ccgo_ts+3418, uint64(4)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31892, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+3482, uint64(4)) } else { - libc.Xmemcpy(tls, p+48, __ccgo_ts+6585, uint64(4)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+6649, uint64(4)) } /* If it has not already been created, create the rbu_state table */ - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31764, libc.VaList(bp+8, p+48)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31910, libc.VaList(bp+8, p+48)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { bOpen = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FnRbu = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FpRbuFd = uintptr(0) - rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6585, int32(SQLITE_FCNTL_RBUCNT), p) + rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6649, int32(SQLITE_FCNTL_RBUCNT), p) if rc != int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc } @@ -188113,10 +190007,10 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) return } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31830, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31976, 0) } else { zExtra = uintptr(0) - if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24596, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { + if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24719, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { zExtra = (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu + 5 for *(*uint8)(unsafe.Pointer(zExtra)) != 0 { v1 = zExtra @@ -188130,16 +190024,16 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if zExtra == uintptr(0) { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } else { - v2 = __ccgo_ts + 31862 + v2 = __ccgo_ts + 32008 } if zExtra == uintptr(0) { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } else { v3 = zExtra } - zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+31864, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6585), v2, v3)) + zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+32010, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6649), v2, v3)) if zTarget == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) return @@ -188150,27 +190044,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31896, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32042, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31911, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32057, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31928, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32074, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(SQLITE_FCNTL_RBU), p) } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31944, 0) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32090, 0) /* Mark the database file just opened as an RBU target database. If ** this call returns SQLITE_NOTFOUND, then the RBU vfs is not in use. ** This is an error. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(SQLITE_FCNTL_RBU), p) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31972, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32118, 0) } } @@ -188220,7 +190114,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxShmMap})))(tls, pDb, 0, libc.Int32FromInt32(32)*libc.Int32FromInt32(1024), 0, bp) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - iRet = int64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))<= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+32972, zState+uintptr(n-int32(7)), uint64(7)) { + if n >= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+33118, zState+uintptr(n-int32(7)), uint64(7)) { return _rbuMisuseError(tls) } } @@ -189462,7 +191356,7 @@ func _rbuEditErrmsg(tls *libc.TLS, p uintptr) { if !(uint64(i) < nErrmsg-uint64(8)) { break } - if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+30997, uint64(8)) == 0 { + if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31143, uint64(8)) == 0 { nDel = int32(8) for int32(*(*uint8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) <= int32('9') { nDel++ @@ -189490,7 +191384,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { if p != 0 { /* Commit the transaction to the *-oal file. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14894, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14987, uintptr(0), uintptr(0), p+64) } /* Sync the db file if currently doing an incremental checkpoint */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { @@ -189499,7 +191393,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { } _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14894, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14987, uintptr(0), uintptr(0), p+64) } /* Close any open statement handles. */ _rbuObjIterFinalize(tls, p+80) @@ -189509,7 +191403,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { ** specifying the current target and state databases to start a new ** vacuum from scratch. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu != 0 { - rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32980, uintptr(0), uintptr(0), uintptr(0)) + rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33126, uintptr(0), uintptr(0), uintptr(0)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_DONE) && rc2 != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc2 } @@ -189624,7 +191518,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14894, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14987, uintptr(0), uintptr(0), uintptr(0)) } } /* Sync the db file */ @@ -189638,19 +191532,19 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14894, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14987, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 14879 + v1 = __ccgo_ts + 14972 } else { - v1 = __ccgo_ts + 32932 + v1 = __ccgo_ts + 33078 } zBegin = v1 rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, zBegin, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32932, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33078, uintptr(0), uintptr(0), uintptr(0)) } } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -190224,7 +192118,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r rc = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xControl})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, int32(SQLITE_FCNTL_ZIPVFS), bp) if rc == SQLITE_OK { rc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33007, 0) + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33153, 0) } else { if rc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpTargetFd = p @@ -190250,7 +192144,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r if rc == SQLITE_OK && op == int32(SQLITE_FCNTL_VFSNAME) { pRbuVfs = (*Trbu_file)(unsafe.Pointer(p)).FpRbuVfs zIn = *(*uintptr)(unsafe.Pointer(pArg)) - zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33030, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) + zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33176, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) *(*uintptr)(unsafe.Pointer(pArg)) = zOut if zOut == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -190451,7 +192345,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag if pDb != 0 { if (*Trbu_file)(unsafe.Pointer(pDb)).FpRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FeStage == int32(RBU_STAGE_OAL) { if (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FzTarget == uintptr(0) { - zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6585) + zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6649) zOpen = Xsqlite3_filename_wal(tls, zOpen) } nOpen = libc.Xstrlen(tls, zOpen) @@ -190465,7 +192359,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag } else { (*Trbu_file)(unsafe.Pointer(pFd)).FpRbu = (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).FpRbu } - if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33041, 0) != 0 { + if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33187, 0) != 0 { _ = libc.Int32FromInt32(0) oflags = libc.Int32FromInt32(SQLITE_OPEN_TEMP_DB) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_EXCLUSIVE) | libc.Int32FromInt32(SQLITE_OPEN_DELETEONCLOSE) zOpen = uintptr(0) @@ -191020,7 +192914,7 @@ func _statConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint _sqlite3TokenInit(tls, bp, *(*uintptr)(unsafe.Pointer(argv + 3*8))) iDb = _sqlite3FindDb(tls, db, bp) if iDb < 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12191, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12316, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) return int32(SQLITE_ERROR) } } else { @@ -191414,6 +193308,7 @@ func _statDecodePage(tls *libc.TLS, pBt uintptr, p uintptr) (r int32) { } } return SQLITE_OK + goto statPageIsCorrupt statPageIsCorrupt: ; (*TStatPage)(unsafe.Pointer(p)).Fflags = uint8(0) @@ -191504,6 +193399,7 @@ func _statNext(tls *libc.TLS, pCursor uintptr) (r int32) { pPager = _sqlite3BtreePager(tls, pBt) Xsqlite3_free(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath) (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = uintptr(0) + goto statNextRestart statNextRestart: ; if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage < 0 { @@ -191521,7 +193417,7 @@ statNextRestart: (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiPgno = iRoot (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33052, 0) + v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33198, 0) z = v1 (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FzPath = v1 if z == uintptr(0) { @@ -191559,8 +193455,8 @@ statNextRestart: if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { (*TStatCursor)(unsafe.Pointer(pCsr)).FzName = Xsqlite3_column_text(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FpStmt, 0) (*TStatCursor)(unsafe.Pointer(pCsr)).FiPageno = *(*Tu32)(unsafe.Pointer((*TStatCell)(unsafe.Pointer(pCell)).FaOvfl + uintptr(iOvfl)*4)) - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33054 - v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33063, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33200 + v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33209, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) z = v2 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v2 if z == uintptr(0) { @@ -191589,7 +193485,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage++ if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage >= int32(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(222551)) + return _sqlite3CorruptError(tls, int32(224206)) } _ = libc.Int32FromInt32(0) if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { @@ -191601,7 +193497,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnPage++ (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33075, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) + v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33221, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) z = v4 (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FzPath = v4 if z == uintptr(0) { @@ -191624,13 +193520,13 @@ statNextRestart: case int32(0x05): /* table internal */ fallthrough case int32(0x02): /* index internal */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33083 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33229 case int32(0x0D): /* table leaf */ fallthrough case int32(0x0A): /* index leaf */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33092 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33238 default: - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33097 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33243 break } *(*int32)(unsafe.Pointer(pCsr + 2108)) += (*TStatPage)(unsafe.Pointer(p1)).FnCell @@ -191639,7 +193535,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnMxPayload = (*TStatPage)(unsafe.Pointer(p1)).FnMxPayload } if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) + v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) z = v5 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v5 if z == uintptr(0) { @@ -191728,12 +193624,12 @@ func _statFilter(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uintptr, a (*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg = uint8(0) } pSql = Xsqlite3_str_new(tls, (*TStatTable)(unsafe.Pointer(pTab)).Fdb) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33107, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33253, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) if zName != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33262, libc.VaList(bp+8, zName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33408, libc.VaList(bp+8, zName)) } if idxNum&int32(0x08) != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33276, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33422, 0) } zSql = Xsqlite3_str_finish(tls, pSql) if zSql == uintptr(0) { @@ -191810,7 +193706,7 @@ func _statRowid(tls *libc.TLS, pCursor uintptr, pRowid uintptr) (r int32) { // ** Invoke this routine to register the "dbstat" virtual table module // */ func _sqlite3DbstatRegister(tls *libc.TLS, db uintptr) (r int32) { - return Xsqlite3_create_module(tls, db, __ccgo_ts+33291, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) + return Xsqlite3_create_module(tls, db, __ccgo_ts+33437, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) } var _dbstat_module = Tsqlite3_module{} @@ -193099,20 +194995,20 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, *(*uintptr)(unsafe.Pointer(pazDflt)) = uintptr(0) } nThis = _sqlite3Strlen30(tls, zThis) - if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11582, zThis) { + if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11707, zThis) { rc = Xsqlite3_table_column_metadata(tls, db, zDb, zThis, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { /* For sqlite_stat1, pretend that (tbl,idx) is the PRIMARY KEY. */ - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33298, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33444, 0) } else { if rc == int32(SQLITE_ERROR) { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1648, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1662, 0) } else { return rc } } } else { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33419, libc.VaList(bp+16, zDb, zThis)) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33565, libc.VaList(bp+16, zDb, zThis)) } if !(zPragma != 0) { return int32(SQLITE_NOMEM) @@ -193136,7 +195032,7 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, bRowid = 0 } nDbCol += bRowid - nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+29640)) + nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+29786)) rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp))) if rc == SQLITE_OK { nByte = Tsqlite3_int64(uint64(nByte) + uint64(nDbCol)*(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(2)+libc.Uint64FromInt64(1)+libc.Uint64FromInt32(1)+libc.Uint64FromInt32(1))) @@ -193160,8 +195056,8 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, } i = 0 if bRowid != 0 { - nName = libc.Xstrlen(tls, __ccgo_ts+29640) - libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29640, nName+uint64(1)) + nName = libc.Xstrlen(tls, __ccgo_ts+29786) + libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29786, nName+uint64(1)) *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)) = pAlloc pAlloc += uintptr(nName + uint64(1)) *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) = uint8(1) @@ -193254,7 +195150,7 @@ func _sessionInitTable(tls *libc.TLS, pSession uintptr, pTab uintptr, db uintptr ; i++ } - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11582, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11707, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 = int32(1) } if pSession != 0 && (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize != 0 { @@ -193546,10 +195442,10 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin _, _, _, _ = ii, zDflt, zSep, v2 *(*TSessionBuffer)(unsafe.Pointer(bp)) = TSessionBuffer{} *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK - zSep = __ccgo_ts + 11202 + zSep = __ccgo_ts + 11327 ii = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33448, 0) + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33594, 0) ii = 0 for { if !(ii < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol) { @@ -193558,11 +195454,11 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin if *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) != 0 { v2 = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) } else { - v2 = __ccgo_ts + 1649 + v2 = __ccgo_ts + 1663 } zDflt = v2 - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5076, libc.VaList(bp+32, zSep, zDflt)) - zSep = __ccgo_ts + 14990 + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5140, libc.VaList(bp+32, zSep, zDflt)) + zSep = __ccgo_ts + 15083 goto _1 _1: ; @@ -193881,7 +195777,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u rc = int32(SQLITE_NOMEM) goto error_out } - _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1648, uint8(0), libc.UintptrFromInt32(0)) + _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1662, uint8(0), libc.UintptrFromInt32(0)) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpZeroBlob = p } } @@ -194002,6 +195898,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u } } /* If an error has occurred, mark the session object as failed. */ + goto error_out error_out: ; if (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 != 0 { @@ -194211,7 +196108,7 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr var i int32 var zRet, zSep uintptr _, _, _ = i, zRet, zSep - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 zRet = uintptr(0) i = 0 for { @@ -194219,8 +196116,8 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr break } if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33455, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 22013 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33601, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 22158 if zRet == uintptr(0) { break } @@ -194239,7 +196136,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint var bHave, i int32 var zRet, zSep uintptr _, _, _, _ = bHave, i, zRet, zSep - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 zRet = uintptr(0) bHave = 0 i = 0 @@ -194249,8 +196146,8 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if int32(*(*Tu8)(unsafe.Pointer(abPK + uintptr(i)))) == 0 { bHave = int32(1) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33489, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 33530 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33635, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 33676 if zRet == uintptr(0) { break } @@ -194262,7 +196159,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if bHave == 0 { _ = libc.Int32FromInt32(0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1722, 0) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1782, 0) } return zRet } @@ -194273,12 +196170,12 @@ func _sessionSelectFindNew(tls *libc.TLS, zDb1 uintptr, zDb2 uintptr, bRowid int var zRet, zSel, v1 uintptr _, _, _ = zRet, zSel, v1 if bRowid != 0 { - v1 = __ccgo_ts + 33535 + v1 = __ccgo_ts + 33681 } else { - v1 = __ccgo_ts + 6590 + v1 = __ccgo_ts + 6654 } zSel = v1 - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33546, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33692, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) return zRet } @@ -194339,11 +196236,11 @@ func _sessionAllCols(tls *libc.TLS, zDb uintptr, pTab uintptr) (r uintptr) { break } if zRet != 0 { - v2 = __ccgo_ts + 14990 + v2 = __ccgo_ts + 15083 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33625, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33771, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) if !(zRet != 0) { break } @@ -194371,7 +196268,7 @@ func _sessionDiffFindModified(tls *libc.TLS, pSession uintptr, pTab uintptr, zFr } else { z1 = _sessionAllCols(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, pTab) z2 = _sessionAllCols(tls, zFrom, pTab) - zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33644, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) + zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33790, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) if zStmt == uintptr(0) || z1 == uintptr(0) || z2 == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -194471,7 +196368,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if bMismatch != 0 { if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33701, 0) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33847, 0) } rc = int32(SQLITE_SCHEMA) } @@ -194497,6 +196394,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u } Xsqlite3_free(tls, zExpr) } + goto diff_out diff_out: ; _sessionPreupdateHooks(tls, pSession) @@ -194802,7 +196700,7 @@ func _sessionAppendInteger(tls *libc.TLS, p uintptr, iVal int32, pRc uintptr) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* aBuf at bp+0 */ [24]uint8 - Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5138, libc.VaList(bp+32, iVal)) + Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5202, libc.VaList(bp+32, iVal)) _sessionAppendStr(tls, p, bp, pRc) } @@ -195097,23 +196995,23 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt _, _, _, _, _, _, _ = i, nSql, zCols, zSep, zSql, v1, v3 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK zSql = uintptr(0) - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 if bRowid != 0 { - v1 = __ccgo_ts + 33535 + v1 = __ccgo_ts + 33681 } else { - v1 = __ccgo_ts + 6590 + v1 = __ccgo_ts + 6654 } zCols = v1 nSql = -int32(1) *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 24)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 40)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+33728, bp) - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11582, zTab) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+33732, bp) - _sessionAppendStr(tls, bp+24, __ccgo_ts+33756, bp) - _sessionAppendStr(tls, bp+40, __ccgo_ts+33765, bp) - zCols = __ccgo_ts + 33810 + _sessionAppendStr(tls, bp+8, __ccgo_ts+33874, bp) + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11707, zTab) { + _sessionAppendStr(tls, bp+8, __ccgo_ts+33878, bp) + _sessionAppendStr(tls, bp+24, __ccgo_ts+33902, bp) + _sessionAppendStr(tls, bp+40, __ccgo_ts+33911, bp) + zCols = __ccgo_ts + 33956 } else { i = 0 for { @@ -195123,11 +197021,11 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { _sessionAppendStr(tls, bp+24, zSep, bp) _sessionAppendStr(tls, bp+40, zSep, bp) - zSep = __ccgo_ts + 14990 + zSep = __ccgo_ts + 15083 _sessionAppendIdent(tls, bp+24, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), bp) - _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+33824, libc.VaList(bp+64, i+int32(1))) + _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+33970, libc.VaList(bp+64, i+int32(1))) } else { - _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+33828, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+33974, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) } goto _2 _2: @@ -195139,9 +197037,9 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if bIgnoreNoop != 0 { v3 = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf } else { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+33855, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+34001, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) if zSql == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } @@ -195287,7 +197185,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, if (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc != 0 { return (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc } - *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+33897, uintptr(0), uintptr(0), uintptr(0)) + *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+34043, uintptr(0), uintptr(0), uintptr(0)) if *(*int32)(unsafe.Pointer(bp + 16)) != SQLITE_OK { return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -195394,7 +197292,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } } Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf) - Xsqlite3_exec(tls, db, __ccgo_ts+33917, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34063, uintptr(0), uintptr(0), uintptr(0)) Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db)) return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -195815,7 +197713,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, int32(9)) if rc == SQLITE_OK { if (*TSessionInput)(unsafe.Pointer(pIn)).FiNext >= (*TSessionInput)(unsafe.Pointer(pIn)).FnData { - rc = _sqlite3CorruptError(tls, int32(226700)) + rc = _sqlite3CorruptError(tls, int32(228355)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -195840,7 +197738,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, *(*int32)(unsafe.Pointer(bp))) if rc == SQLITE_OK { if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext { - rc = _sqlite3CorruptError(tls, int32(226720)) + rc = _sqlite3CorruptError(tls, int32(228375)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -195855,7 +197753,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap } if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) { if (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext < int32(8) { - rc = _sqlite3CorruptError(tls, int32(226730)) + rc = _sqlite3CorruptError(tls, int32(228385)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -195911,7 +197809,7 @@ func _sessionChangesetBufferTblhdr(tls *libc.TLS, pIn uintptr, pnByte uintptr) ( ** large value for nCol may cause nRead to wrap around and become ** negative. Leading to a crash. */ if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > int32(65536) { - rc = _sqlite3CorruptError(tls, int32(226778)) + rc = _sqlite3CorruptError(tls, int32(228433)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -196017,7 +197915,7 @@ func _sessionChangesetReadTblhdr(tls *libc.TLS, p uintptr) (r int32) { (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FnBuf = 0 _sessionBufferGrow(tls, p+72, int64(nByte), bp) } else { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(226866)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(228521)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -196090,12 +197988,12 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK { return (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc } + _sessionDiscardData(tls, p) + (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext /* If the iterator is already at the end of the changeset, return DONE. */ if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext >= (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FnData { return int32(SQLITE_DONE) } - _sessionDiscardData(tls, p) - (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext v3 = p + 8 v2 = *(*int32)(unsafe.Pointer(v3)) *(*int32)(unsafe.Pointer(v3))++ @@ -196126,7 +198024,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin /* The first record in the changeset is not a table header. Must be a ** corrupt changeset. */ _ = libc.Int32FromInt32(0) - v7 = _sqlite3CorruptError(tls, int32(226952)) + v7 = _sqlite3CorruptError(tls, int32(228607)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -196136,7 +198034,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = int32(*(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr(v8)))) if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_DELETE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_INSERT) { - v10 = _sqlite3CorruptError(tls, int32(226958)) + v10 = _sqlite3CorruptError(tls, int32(228613)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -196217,7 +198115,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin _ = libc.Int32FromInt32(0) *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i+(*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*8)) if *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) == uintptr(0) { - v16 = _sqlite3CorruptError(tls, int32(227002)) + v16 = _sqlite3CorruptError(tls, int32(228657)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -196628,7 +198526,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(227367)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(229022)) goto finished_invert } _ = libc.Int32FromInt32(0) @@ -196650,6 +198548,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } + goto finished_invert finished_invert: ; Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf) @@ -196832,18 +198731,18 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 } if pUp == uintptr(0) { nByte = int32(uint64(24) * uint64(nU32) * uint64(4)) - bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11582) == 0) + bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11707) == 0) pUp = Xsqlite3_malloc(tls, nByte) if pUp == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } else { - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 libc.Xmemset(tls, bp+8, 0, uint64(16)) (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask = pUp + 1*24 libc.Xmemcpy(tls, (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, uint64(nU32)*uint64(4)) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33935, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34081, bp) _sessionAppendIdent(tls, bp+8, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33948, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34094, bp) /* Create the assignments part of the UPDATE */ ii = 0 for { @@ -196853,9 +198752,9 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if int32(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii)))) == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol+ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33954, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34100, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(1), bp) - zSep = __ccgo_ts + 14990 + zSep = __ccgo_ts + 15083 } goto _2 _2: @@ -196863,8 +198762,8 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 ii++ } /* Create the WHERE clause part of the UPDATE */ - zSep = __ccgo_ts + 1648 - _sessionAppendStr(tls, bp+8, __ccgo_ts+33959, bp) + zSep = __ccgo_ts + 1662 + _sessionAppendStr(tls, bp+8, __ccgo_ts+34105, bp) ii = 0 for { if !(ii < (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol) { @@ -196874,13 +198773,13 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 _sessionAppendStr(tls, bp+8, zSep, bp) if bStat1 != 0 && ii == int32(1) { _ = libc.Int32FromInt32(0) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33967, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34113, bp) } else { _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34042, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34188, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(2), bp) } - zSep = __ccgo_ts + 22013 + zSep = __ccgo_ts + 22158 } goto _3 _3: @@ -196964,13 +198863,13 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in var _ /* buf at bp+8 */ TSessionBuffer var _ /* rc at bp+0 */ int32 _, _, _ = i, nPk, zSep - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} nPk = 0 - _sessionAppendStr(tls, bp+8, __ccgo_ts+34048, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34194, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33959, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34105, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -196980,9 +198879,9 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in nPk++ _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33954, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34100, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 22013 + zSep = __ccgo_ts + 22158 } goto _1 _1: @@ -196990,10 +198889,10 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in i++ } if nPk < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol { - _sessionAppendStr(tls, bp+8, __ccgo_ts+34066, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34212, bp) _sessionAppendInteger(tls, bp+8, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol+int32(1), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33530, bp) - zSep = __ccgo_ts + 1648 + _sessionAppendStr(tls, bp+8, __ccgo_ts+33676, bp) + zSep = __ccgo_ts + 1662 i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -197002,16 +198901,16 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in if !(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0) { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34042, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34188, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 34074 + zSep = __ccgo_ts + 34220 } goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5106, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5170, bp) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+8, uintptr(0)) @@ -197037,7 +198936,7 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in // */ func _sessionSelectRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r int32) { /* TODO */ - return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6585, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) + return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6649, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) } // C documentation @@ -197060,16 +198959,16 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+34079, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34225, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+22019, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+22164, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } if i != 0 { - _sessionAppendStr(tls, bp+8, __ccgo_ts+14990, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+15083, bp) } _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) goto _1 @@ -197077,19 +198976,19 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34097, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34243, bp) i = int32(1) for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34108, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34254, bp) goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5106, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5170, bp) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+16, uintptr(0)) } @@ -197112,12 +199011,12 @@ func _sessionPrepare(tls *libc.TLS, db uintptr, pp uintptr, zSql uintptr) (r int func _sessionStat1Sql(tls *libc.TLS, db uintptr, p uintptr) (r int32) { var rc int32 _ = rc - rc = _sessionSelectRow(tls, db, __ccgo_ts+11582, p) + rc = _sessionSelectRow(tls, db, __ccgo_ts+11707, p) if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34112) + rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34258) } if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34225) + rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34371) } return rc } @@ -197184,7 +199083,7 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(227849)) + rc = _sqlite3CorruptError(tls, int32(229504)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -197612,7 +199511,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34369, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34515, uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { rc = _sessionBindRow(tls, pIter, __ccgo_fp(Xsqlite3changeset_new), (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FabPK, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) Xsqlite3_bind_int(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol+int32(1), int32(1)) @@ -197625,7 +199524,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34390, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34536, uintptr(0), uintptr(0), uintptr(0)) } } } @@ -197721,10 +199620,10 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbIgnoreNoop = libc.BoolUint8(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_IGNORENOOP) != 0)) Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, db)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34409, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34555, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34435, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34581, uintptr(0), uintptr(0), uintptr(0)) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) @@ -197755,7 +199654,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui ** non-zero, proceed. */ schemaMismatch = libc.BoolInt32(xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { - *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) + *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { rc = int32(SQLITE_NOMEM) break @@ -197765,7 +199664,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } else { nMinCol = 0 Xsqlite3changeset_pk(tls, pIter, bp+152, uintptr(0)) - rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6585, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) + rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6649, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) if rc != SQLITE_OK { break } @@ -197784,18 +199683,18 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol == 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34465, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34611, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol < *(*int32)(unsafe.Pointer(bp + 136)) { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34509, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34655, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) } else { if *(*int32)(unsafe.Pointer(bp + 136)) < nMinCol || libc.Xmemcmp(tls, (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FabPK, *(*uintptr)(unsafe.Pointer(bp + 152)), uint64(*(*int32)(unsafe.Pointer(bp + 136)))) != 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34580, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34726, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol = *(*int32)(unsafe.Pointer(bp + 136)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11582) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11707) { v2 = _sessionStat1Sql(tls, db, bp+8) rc = v2 if v2 != 0 { @@ -197852,13 +199751,13 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } } } - Xsqlite3_exec(tls, db, __ccgo_ts+34640, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34786, uintptr(0), uintptr(0), uintptr(0)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34670, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34816, uintptr(0), uintptr(0), uintptr(0)) } else { - Xsqlite3_exec(tls, db, __ccgo_ts+34694, uintptr(0), uintptr(0), uintptr(0)) - Xsqlite3_exec(tls, db, __ccgo_ts+34670, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34840, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34816, uintptr(0), uintptr(0), uintptr(0)) } } _ = libc.Int32FromInt32(0) @@ -197952,6 +199851,7 @@ type Tsqlite3_changegroup1 = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -198318,118 +200218,145 @@ func _sessionChangesetExtendRecord(tls *libc.TLS, pGrp uintptr, pTab uintptr, nC // C documentation // // /* -// ** Add all changes in the changeset traversed by the iterator passed as -// ** the first argument to the changegroup hash tables. +// ** Locate or create a SessionTable object that may be used to add the +// ** change currently pointed to by iterator pIter to changegroup pGrp. +// ** If successful, set output variable (*ppTab) to point to the table +// ** object and return SQLITE_OK. Otherwise, if some error occurs, return +// ** an SQLite error code and leave (*ppTab) set to NULL. // */ -func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { - bp := tls.Alloc(80) - defer tls.Free(80) - var bPkOnly1, bPkOnly2, iHash, nNew, rc int32 - var pExist, pTab, pp, ppTab uintptr - var _ /* aRec at bp+0 */ uintptr - var _ /* abPK at bp+64 */ uintptr - var _ /* bIndirect at bp+48 */ int32 - var _ /* nCol at bp+40 */ int32 - var _ /* nRec at bp+8 */ int32 - var _ /* op at bp+44 */ int32 - var _ /* pChange at bp+56 */ uintptr - var _ /* rec at bp+16 */ TSessionBuffer - var _ /* zNew at bp+32 */ uintptr - _, _, _, _, _, _, _, _, _ = bPkOnly1, bPkOnly2, iHash, nNew, pExist, pTab, pp, ppTab, rc +func _sessionChangesetFindTable(tls *libc.TLS, pGrp uintptr, zTab uintptr, pIter uintptr, ppTab uintptr) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var nTab, rc int32 + var pTab, ppNew uintptr + var _ /* abPK at bp+0 */ uintptr + var _ /* nCol at bp+8 */ int32 + _, _, _, _ = nTab, pTab, ppNew, rc rc = SQLITE_OK pTab = uintptr(0) - *(*TSessionBuffer)(unsafe.Pointer(bp + 16)) = TSessionBuffer{} - for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { - pExist = uintptr(0) - /* Ensure that only changesets, or only patchsets, but not a mixture - ** of both, are being combined. It is an error to try to combine a - ** changeset and a patchset. */ - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset - } else { - if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { - rc = int32(SQLITE_ERROR) - break - } + nTab = int32(libc.Xstrlen(tls, zTab)) + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(ppTab)) = uintptr(0) + Xsqlite3changeset_pk(tls, pIter, bp, bp+8) + /* Search the list for an existing table */ + pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList + for { + if !(pTab != 0) { + break } - Xsqlite3changeset_op(tls, pIter, bp+32, bp+40, bp+44, bp+48) - if !(pTab != 0) || Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), (*TSessionTable)(unsafe.Pointer(pTab)).FzName) != 0 { - /* Search the list for a matching table */ - nNew = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)))) - Xsqlite3changeset_pk(tls, pIter, bp+64, uintptr(0)) - pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList - for { - if !(pTab != 0) { - break - } - if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), nNew+int32(1)) { - break - } - goto _1 - _1: - ; - pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext - } - if !(pTab != 0) { - pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 40)))+uint64(nNew)+uint64(1)) - if !(pTab != 0) { - rc = int32(SQLITE_NOMEM) - break - } - libc.Xmemset(tls, pTab, 0, uint64(80)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 40)) - (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp + 64)), uint64(*(*int32)(unsafe.Pointer(bp + 40)))) - (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 40))) - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), uint64(nNew+int32(1))) - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 - rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) - if rc != 0 { - _ = libc.Int32FromInt32(0) - Xsqlite3_free(tls, pTab) - break - } - } - /* The new object must be linked on to the end of the list, not - ** simply added to the start of it. This is to ensure that the - ** tables within the output of sqlite3changegroup_output() are in - ** the right order. */ - ppTab = pGrp + 8 - for { - if !(*(*uintptr)(unsafe.Pointer(ppTab)) != 0) { - break - } - goto _2 - _2: - ; - ppTab = *(*uintptr)(unsafe.Pointer(ppTab)) - } - *(*uintptr)(unsafe.Pointer(ppTab)) = pTab - } - if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*uintptr)(unsafe.Pointer(bp + 64))) != 0) { - rc = int32(SQLITE_SCHEMA) - break - } + if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, nTab+int32(1)) { + break } - if *(*int32)(unsafe.Pointer(bp + 40)) < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol { - _ = libc.Int32FromInt32(0) - rc = _sessionChangesetExtendRecord(tls, pGrp, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*int32)(unsafe.Pointer(bp + 44)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+16) + goto _1 + _1: + ; + pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext + } + /* If one was not found above, create a new table now */ + if !(pTab != 0) { + pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 8)))+uint64(nTab)+uint64(1)) + if !(pTab != 0) { + return int32(SQLITE_NOMEM) + } + libc.Xmemset(tls, pTab, 0, uint64(80)) + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 8)) + (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp)), uint64(*(*int32)(unsafe.Pointer(bp + 8)))) + (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 8))) + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, uint64(nTab+int32(1))) + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 + rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) if rc != 0 { + _ = libc.Int32FromInt32(0) + Xsqlite3_free(tls, pTab) + return rc + } + } + /* The new object must be linked on to the end of the list, not + ** simply added to the start of it. This is to ensure that the + ** tables within the output of sqlite3changegroup_output() are in + ** the right order. */ + ppNew = pGrp + 8 + for { + if !(*(*uintptr)(unsafe.Pointer(ppNew)) != 0) { break } - *(*uintptr)(unsafe.Pointer(bp)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf - *(*int32)(unsafe.Pointer(bp + 8)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf + goto _2 + _2: + ; + ppNew = *(*uintptr)(unsafe.Pointer(ppNew)) } - if _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pTab) != 0 { - rc = int32(SQLITE_NOMEM) - break + *(*uintptr)(unsafe.Pointer(ppNew)) = pTab + } + /* Check that the table is compatible. */ + if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 8)), *(*uintptr)(unsafe.Pointer(bp))) != 0) { + rc = int32(SQLITE_SCHEMA) + } + *(*uintptr)(unsafe.Pointer(ppTab)) = pTab + return rc +} + +// C documentation +// +// /* +// ** Add the change currently indicated by iterator pIter to the hash table +// ** belonging to changegroup pGrp. +// */ +func _sessionOneChangeToHash(tls *libc.TLS, pGrp uintptr, pIter uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var aRec, pBuf, pExist, pp uintptr + var bPkOnly1, bPkOnly2, iHash, nRec, rc int32 + var _ /* bIndirect at bp+8 */ int32 + var _ /* nCol at bp+0 */ int32 + var _ /* op at bp+4 */ int32 + var _ /* pChange at bp+16 */ uintptr + var _ /* pTab at bp+24 */ uintptr + var _ /* zTab at bp+32 */ uintptr + _, _, _, _, _, _, _, _, _ = aRec, bPkOnly1, bPkOnly2, iHash, nRec, pBuf, pExist, pp, rc + rc = SQLITE_OK + *(*int32)(unsafe.Pointer(bp)) = 0 + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + iHash = 0 + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0) + pExist = uintptr(0) + pp = uintptr(0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0) + aRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FaData + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent+int32(2)) + nRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent - int32(2) + /* Ensure that only changesets, or only patchsets, but not a mixture + ** of both, are being combined. It is an error to try to combine a + ** changeset and a patchset. */ + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset + } else { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { + rc = int32(SQLITE_ERROR) } - iHash = int32(_sessionChangeHash(tls, pTab, libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)), *(*uintptr)(unsafe.Pointer(bp)), (*TSessionTable)(unsafe.Pointer(pTab)).FnChange)) + } + if rc == SQLITE_OK { + *(*uintptr)(unsafe.Pointer(bp + 32)) = uintptr(0) + Xsqlite3changeset_op(tls, pIter, bp+32, bp, bp+4, bp+8) + rc = _sessionChangesetFindTable(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 32)), pIter, bp+24) + } + if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) < (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnCol { + pBuf = pGrp + 16 + rc = _sessionChangesetExtendRecord(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 24)), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), aRec, nRec, pBuf) + aRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FaBuf + nRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FnBuf + _ = libc.Int32FromInt32(0) + } + if rc == SQLITE_OK && _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp + 24))) != 0 { + rc = int32(SQLITE_NOMEM) + } + if rc == SQLITE_OK { /* Search for existing entry. If found, remove it from the hash table. - ** Code below may link it back in. - */ - pp = (*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8 + ** Code below may link it back in. */ + iHash = int32(_sessionChangeHash(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)), aRec, (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnChange)) + pp = (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8 for { if !(*(*uintptr)(unsafe.Pointer(pp)) != 0) { break @@ -198438,30 +200365,54 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase bPkOnly2 = 0 if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 { bPkOnly1 = libc.BoolInt32(int32((*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).Fop) == int32(SQLITE_DELETE)) - bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)) + bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)) } - if _sessionChangeEqual(tls, pTab, bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, *(*uintptr)(unsafe.Pointer(bp))) != 0 { + if _sessionChangeEqual(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, aRec) != 0 { pExist = *(*uintptr)(unsafe.Pointer(pp)) *(*uintptr)(unsafe.Pointer(pp)) = (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry-- + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry-- break } - goto _3 - _3: + goto _1 + _1: ; pp = *(*uintptr)(unsafe.Pointer(pp)) + 24 } - rc = _sessionChangeMerge(tls, pTab, bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 44)), *(*int32)(unsafe.Pointer(bp + 48)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+56) - if rc != 0 { + } + if rc == SQLITE_OK { + rc = _sessionChangeMerge(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 4)), *(*int32)(unsafe.Pointer(bp + 8)), aRec, nRec, bp+16) + } + if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { + (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) + *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 16)) + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry++ + } + if rc == SQLITE_OK { + rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc + } + return rc +} + +// C documentation +// +// /* +// ** Add all changes in the changeset traversed by the iterator passed as +// ** the first argument to the changegroup hash tables. +// */ +func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var rc int32 + var _ /* aRec at bp+0 */ uintptr + var _ /* nRec at bp+8 */ int32 + _ = rc + rc = SQLITE_OK + for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { + rc = _sessionOneChangeToHash(tls, pGrp, pIter, bRebase) + if rc != SQLITE_OK { break } - if *(*uintptr)(unsafe.Pointer(bp + 56)) != 0 { - (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 56)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) - *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 56)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry++ - } } - Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf) if rc == SQLITE_OK { rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc } @@ -198572,11 +200523,11 @@ func Xsqlite3changegroup_new(tls *libc.TLS, pp uintptr) (r int32) { var rc int32 _, _ = p, rc rc = SQLITE_OK /* New object */ - p = Xsqlite3_malloc(tls, int32(32)) + p = Xsqlite3_malloc(tls, int32(48)) if p == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, p, 0, uint64(32)) + libc.Xmemset(tls, p, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(pp)) = p return rc @@ -198598,7 +200549,7 @@ func Xsqlite3changegroup_schema(tls *libc.TLS, pGrp uintptr, db uintptr, zDb uin ** or after sqlite3changegroup_schema() has already been called. */ rc = int32(SQLITE_MISUSE) } else { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, zDb)) + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, zDb)) if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -198628,6 +200579,19 @@ func Xsqlite3changegroup_add(tls *libc.TLS, pGrp uintptr, nData int32, pData uin return rc } +// C documentation +// +// /* +// ** Add a single change to a changeset-group. +// */ +func Xsqlite3changegroup_add_change(tls *libc.TLS, pGrp uintptr, pIter uintptr) (r int32) { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent == (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc != SQLITE_OK || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbInvert != 0 { + /* Iterator does not point to any valid entry or is an INVERT iterator. */ + return int32(SQLITE_ERROR) + } + return _sessionOneChangeToHash(tls, pGrp, pIter, 0) +} + // C documentation // // /* @@ -198675,6 +200639,7 @@ func Xsqlite3changegroup_delete(tls *libc.TLS, pGrp uintptr) { if pGrp != 0 { Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList) + Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Frec.FaBuf) Xsqlite3_free(tls, pGrp) } } @@ -199042,11 +201007,11 @@ func Xsqlite3rebaser_create(tls *libc.TLS, ppNew uintptr) (r int32) { var rc int32 _, _ = pNew, rc rc = SQLITE_OK - pNew = Xsqlite3_malloc(tls, int32(32)) + pNew = Xsqlite3_malloc(tls, int32(48)) if pNew == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, pNew, 0, uint64(32)) + libc.Xmemset(tls, pNew, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(ppNew)) = pNew return rc @@ -199120,6 +201085,7 @@ func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn u func Xsqlite3rebaser_delete(tls *libc.TLS, p uintptr) { if p != 0 { _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.FpList) + Xsqlite3_free(tls, (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.Frec.FaBuf) Xsqlite3_free(tls, p) } } @@ -199751,6 +201717,9 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** sqlite3Fts5ParserARG_STORE Code to store %extra_argument into fts5yypParser // ** sqlite3Fts5ParserARG_FETCH Code to extract %extra_argument from fts5yypParser // ** sqlite3Fts5ParserCTX_* As sqlite3Fts5ParserARG_ except for %extra_context +// ** fts5YYREALLOC Name of the realloc() function to use +// ** fts5YYFREE Name of the free() function to use +// ** fts5YYDYNSTACK True if stack space should be extended on heap // ** fts5YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** fts5YYNSTATE the combined number of states. @@ -199764,6 +201733,8 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** fts5YY_NO_ACTION The fts5yy_action[] code for no-op // ** fts5YY_MIN_REDUCE Minimum value for reduce actions // ** fts5YY_MAX_REDUCE Maximum value for reduce actions +// ** fts5YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** fts5YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type Tfts5YYMINORTYPE = struct { @@ -199790,6 +201761,13 @@ type fts5YYMINORTYPE = Tfts5YYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -200219,8 +202197,9 @@ type fts5yyStackEntry = Tfts5yyStackEntry type Tfts5yyParser1 = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser1 = Tfts5yyParser1 @@ -200228,14 +202207,19 @@ type fts5yyParser1 = Tfts5yyParser1 type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser = Tfts5yyParser /* #include */ +/* For builds that do no have a growable stack, fts5yyGrowStack always +** returns an error. + */ + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3Fts5ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -200250,10 +202234,11 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { var fts5yypParser uintptr _ = fts5yypParser fts5yypParser = fts5yypRawParser - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = fts5yypParser + 16 - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fstateno = uint8(0) - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fmajor = uint8(0) - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = fts5yypParser + 16 + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack = fts5yypParser + 32 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fstateno = uint8(0) + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fmajor = uint8(0) } // C documentation @@ -200273,7 +202258,7 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2424)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -200357,11 +202342,17 @@ func _fts5yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var fts5yytos, pParser uintptr + _, _ = fts5yytos, pParser pParser = p - for (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos > pParser+16 { - _fts5yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling fts5yy_pop_parser_stack() for each + ** element left in the stack */ + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos + for fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yystack { + if int32((*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor) >= int32(fts5YY_MIN_DSTRCTR) { + _fts5yy_destructor(tls, pParser, (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor, fts5yytos+8) + } + fts5yytos -= 24 } } @@ -200461,13 +202452,13 @@ func _fts5yyStackOverflow(tls *libc.TLS, fts5yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse - for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > fts5yypParser+16 { + for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack { _fts5yy_pop_parser_stack(tls, fts5yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34722, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34868, 0) /******** End %stack_overflow code ********************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument var */ } @@ -200485,15 +202476,19 @@ func _fts5yy_shift(tls *libc.TLS, fts5yypParser uintptr, fts5yyNewState uint8, f var fts5yytos uintptr _ = fts5yytos (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos += 24 - if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 - _fts5yyStackOverflow(tls, fts5yypParser) - return + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + if fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { + if int32(1) != 0 { + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 + _fts5yyStackOverflow(tls, fts5yypParser) + return + } + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + _ = libc.Int32FromInt32(0) } if int32(fts5yyNewState) > int32(fts5YY_MAX_SHIFT) { fts5yyNewState = uint8(int32(fts5yyNewState) + (libc.Int32FromInt32(fts5YY_MIN_REDUCE) - libc.Int32FromInt32(fts5YY_MIN_SHIFTREDUCE))) } - fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fstateno = fts5yyNewState (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor = fts5yyMajor *(*TFts5Token)(unsafe.Pointer(fts5yytos + 8)) = fts5yyMinor @@ -200823,7 +202818,7 @@ func _fts5yy_syntax_error(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor int3 pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse /************ Begin %syntax_error code ****************************************/ _ = fts5yymajor /* Silence a compiler warning */ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34750, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34896, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) /************ End %syntax_error code ******************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument variable */ } @@ -200889,8 +202884,10 @@ func _sqlite3Fts5Parser(tls *libc.TLS, fts5yyp uintptr, fts5yymajor int32, fts5y ** enough on the stack to push the LHS value */ if int32(_fts5yyRuleInfoNRhs[fts5yyruleno]) == 0 { if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos >= (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - _fts5yyStackOverflow(tls, fts5yypParser) - break + if int32(1) != 0 { + _fts5yyStackOverflow(tls, fts5yypParser) + break + } } } fts5yyact = _fts5yy_reduce(tls, fts5yypParser, fts5yyruleno, fts5yymajor, fts5yyminor) @@ -201131,7 +203128,7 @@ func _fts5HighlightAppend(tls *libc.TLS, pRc uintptr, p uintptr, z uintptr, n in if n < 0 { n = int32(libc.Xstrlen(tls, z)) } - (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34781, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) + (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34927, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) if (*THighlightContext)(unsafe.Pointer(p)).FzOut == uintptr(0) { *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) } @@ -201229,7 +203226,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint var _ /* rc at bp+104 */ int32 _, _ = iCol, zErr if nVal != int32(3) { - zErr = __ccgo_ts + 34788 + zErr = __ccgo_ts + 34934 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -201240,7 +203237,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint (*(*THighlightContext)(unsafe.Pointer(bp))).FiRangeEnd = -int32(1) *(*int32)(unsafe.Pointer(bp + 104)) = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnText})))(tls, pFts, iCol, bp+24, bp+32) if *(*int32)(unsafe.Pointer(bp + 104)) == int32(SQLITE_RANGE) { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1648, -int32(1), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1662, -int32(1), libc.UintptrFromInt32(0)) *(*int32)(unsafe.Pointer(bp + 104)) = SQLITE_OK } else { if (*(*THighlightContext)(unsafe.Pointer(bp))).FzIn != 0 { @@ -201441,7 +203438,7 @@ func _fts5ValueToText(tls *libc.TLS, pVal uintptr) (r uintptr) { if zRet != 0 { v1 = zRet } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } return v1 } @@ -201475,7 +203472,7 @@ func _fts5SnippetFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintpt nBestScore = 0 /* Score of best snippet */ *(*int32)(unsafe.Pointer(bp + 112)) = 0 if nVal != int32(5) { - zErr = __ccgo_ts + 34838 + zErr = __ccgo_ts + 34984 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -201856,15 +203853,15 @@ func _sqlite3Fts5AuxInit(tls *libc.TLS, pApi uintptr) (r int32) { FxDestroy uintptr }{ 0: { - FzFunc: __ccgo_ts + 34886, + FzFunc: __ccgo_ts + 35032, FxFunc: __ccgo_fp(_fts5SnippetFunction), }, 1: { - FzFunc: __ccgo_ts + 34894, + FzFunc: __ccgo_ts + 35040, FxFunc: __ccgo_fp(_fts5HighlightFunction), }, 2: { - FzFunc: __ccgo_ts + 34904, + FzFunc: __ccgo_ts + 35050, FxFunc: __ccgo_fp(_fts5Bm25Function), }, } @@ -202529,7 +204526,7 @@ func _fts5ConfigSkipLiteral(tls *libc.TLS, pIn uintptr) (r uintptr) { case int32('n'): fallthrough case int32('N'): - if Xsqlite3_strnicmp(tls, __ccgo_ts+1634, p, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+1648, p, int32(4)) == 0 { p = p + 4 } else { p = uintptr(0) @@ -202735,7 +204732,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _, _, _, _, _, _, _, _, _, _, _, _ = azArg, bFirst, nArg, nByte, nCmd, nPre, p, p1, p2, pDel, pSpace, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK nCmd = int32(libc.Xstrlen(tls, zCmd)) - if Xsqlite3_strnicmp(tls, __ccgo_ts+34909, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35055, zCmd, nCmd) == 0 { nByte = int32(libc.Uint64FromInt64(4) * libc.Uint64FromInt32(FTS5_MAX_PREFIX_INDEXES)) bFirst = int32(1) if (*TFts5Config)(unsafe.Pointer(pConfig)).FaPrefix == uintptr(0) { @@ -202761,12 +204758,12 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } } if int32(*(*uint8)(unsafe.Pointer(p))) < int32('0') || int32(*(*uint8)(unsafe.Pointer(p))) > int32('9') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34916, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35062, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } if (*TFts5Config)(unsafe.Pointer(pConfig)).FnPrefix == int32(FTS5_MAX_PREFIX_INDEXES) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34947, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35093, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -202775,7 +204772,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC p++ } if nPre <= 0 || nPre >= int32(1000) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34980, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35126, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -202786,7 +204783,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _ = libc.Int32FromInt32(0) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35017, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35163, zCmd, nCmd) == 0 { p1 = zArg nArg = int64(libc.Xstrlen(tls, zArg) + uint64(1)) azArg = _sqlite3Fts5MallocZero(tls, bp, int64(uint64(8)*uint64(nArg))) @@ -202794,7 +204791,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC pSpace = pDel if azArg != 0 && pSpace != 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35026, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35172, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { nArg = 0 @@ -202821,7 +204818,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC nArg++ } if p1 == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35059, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35205, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5GetTokenizer(tls, pGlobal, azArg, int32(nArg), pConfig, pzErr) @@ -202832,58 +204829,58 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC Xsqlite3_free(tls, pDel) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35093, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35239, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent != FTS5_CONTENT_NORMAL { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35101, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35247, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if *(*uint8)(unsafe.Pointer(zArg)) != 0 { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_EXTERNAL) - (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35133, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) + (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35279, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_NONE) } } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35139, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35285, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35158, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35304, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35201, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35347, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35215, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35361, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, zArg, -int32(1)) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35253, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35399, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35264, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35410, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+5499, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+5563, zCmd, nCmd) == 0 { *(*[4]TFts5Enum)(unsafe.Pointer(bp + 8)) = [4]TFts5Enum{ 0: { - FzName: __ccgo_ts + 8218, + FzName: __ccgo_ts + 8343, FeVal: int32(FTS5_DETAIL_NONE), }, 1: { - FzName: __ccgo_ts + 17747, + FzName: __ccgo_ts + 17834, }, 2: { - FzName: __ccgo_ts + 35299, + FzName: __ccgo_ts + 35445, FeVal: int32(FTS5_DETAIL_COLUMNS), }, 3: {}, @@ -202891,20 +204888,20 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC v2 = _fts5ConfigSetEnum(tls, bp+8, zArg, pConfig+96) *(*int32)(unsafe.Pointer(bp)) = v2 if v2 != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35307, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35453, 0) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35338, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35484, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35348, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35494, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbTokendata = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35382, libc.VaList(bp+80, nCmd, zCmd)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35528, libc.VaList(bp+80, nCmd, zCmd)) return int32(SQLITE_ERROR) } @@ -202978,15 +204975,15 @@ func _fts5ConfigParseColumn(tls *libc.TLS, p uintptr, zCol uintptr, zArg uintptr var v2 uintptr _, _, _ = rc, v1, v2 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35410) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16694) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35415, libc.VaList(bp+8, zCol)) + if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35556) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16781) { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35561, libc.VaList(bp+8, zCol)) rc = int32(SQLITE_ERROR) } else { if zArg != 0 { - if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35445) { + if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35591) { *(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FabUnindexed + uintptr((*TFts5Config)(unsafe.Pointer(p)).FnCol))) = uint8(1) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35455, libc.VaList(bp+8, zArg)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35601, libc.VaList(bp+8, zArg)) rc = int32(SQLITE_ERROR) } } @@ -203012,7 +205009,7 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TFts5Buffer)(unsafe.Pointer(bp + 8)) = TFts5Buffer{} - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35486, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35632, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) if (*TFts5Config)(unsafe.Pointer(p)).FeContent != int32(FTS5_CONTENT_NONE) { i = 0 for { @@ -203020,9 +205017,9 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { break } if (*TFts5Config)(unsafe.Pointer(p)).FeContent == int32(FTS5_CONTENT_EXTERNAL) { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35491, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35637, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) } else { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35498, libc.VaList(bp+32, i)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35644, libc.VaList(bp+32, i)) } goto _1 _1: @@ -203083,8 +205080,8 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in (*TFts5Config)(unsafe.Pointer(pRet)).FzName = _sqlite3Fts5Strndup(tls, bp, *(*uintptr)(unsafe.Pointer(azArg + 2*8)), -int32(1)) (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize = int32(1) (*TFts5Config)(unsafe.Pointer(pRet)).FeDetail = FTS5_DETAIL_FULL - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35410) == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35506, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35556) == 0 { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35652, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } _ = libc.Int32FromInt32(0) @@ -203117,19 +205114,19 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { if z == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35535, libc.VaList(bp+40, zOrig)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35681, libc.VaList(bp+40, zOrig)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bOption != 0 { if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { v4 = *(*uintptr)(unsafe.Pointer(bp + 8)) } else { - v4 = __ccgo_ts + 1648 + v4 = __ccgo_ts + 1662 } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { v5 = *(*uintptr)(unsafe.Pointer(bp + 16)) } else { - v5 = __ccgo_ts + 1648 + v5 = __ccgo_ts + 1662 } *(*int32)(unsafe.Pointer(bp)) = _fts5ConfigParseSpecial(tls, pGlobal, pRet, v4, v5, pzErr) } else { @@ -203147,7 +205144,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } /* We only allow contentless_delete=1 if the table is indeed contentless. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FeContent != int32(FTS5_CONTENT_NONE) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35555, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35701, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* We only allow contentless_delete=1 if columnsize=0 is not present. @@ -203155,7 +205152,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in ** This restriction may be removed at some point. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35605, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35751, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* If a tokenizer= option was successfully parsed, the tokenizer has @@ -203169,18 +205166,18 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in zTail = uintptr(0) _ = libc.Int32FromInt32(0) if (*TFts5Config)(unsafe.Pointer(pRet)).FeContent == FTS5_CONTENT_NORMAL { - zTail = __ccgo_ts + 35093 + zTail = __ccgo_ts + 35239 } else { if (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize != 0 { - zTail = __ccgo_ts + 35660 + zTail = __ccgo_ts + 35806 } } if zTail != 0 { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35668, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35814, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid == uintptr(0) { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16694, -int32(1)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16781, -int32(1)) } /* Formulate the zContentExprlist text */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -203244,25 +205241,25 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { var _ /* rc at bp+0 */ int32 _, _, _, _ = i, zSep, zSql, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35679, 0) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35825, 0) i = 0 for { if !(zSql != 0 && i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } if i == 0 { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } else { - v2 = __ccgo_ts + 14990 + v2 = __ccgo_ts + 15083 } zSep = v2 - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35695, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35841, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) goto _1 _1: ; i++ } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35702, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35410)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35848, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35556)) _ = libc.Int32FromInt32(0) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_declare_vtab(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql) @@ -203410,7 +205407,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV var _ /* zRankArgs at bp+8 */ uintptr _, _, _, _, _, _, _, _, _, _ = bVal, nAutomerge, nCrisisMerge, nHashSize, nUsermerge, nVal, pgsz, rc, zIn, v1 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35728) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35874) { pgsz = 0 if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { pgsz = Xsqlite3_value_int(tls, pVal) @@ -203421,7 +205418,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).Fpgsz = pgsz } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35733) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35879) { nHashSize = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nHashSize = Xsqlite3_value_int(tls, pVal) @@ -203432,7 +205429,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnHashSize = nHashSize } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35742) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35888) { nAutomerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nAutomerge = Xsqlite3_value_int(tls, pVal) @@ -203446,7 +205443,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnAutomerge = nAutomerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35752) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35898) { nUsermerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nUsermerge = Xsqlite3_value_int(tls, pVal) @@ -203457,7 +205454,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnUsermerge = nUsermerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35762) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35908) { nCrisisMerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nCrisisMerge = Xsqlite3_value_int(tls, pVal) @@ -203474,7 +205471,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnCrisisMerge = nCrisisMerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35774) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35920) { nVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nVal = Xsqlite3_value_int(tls, pVal) @@ -203489,7 +205486,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } (*TFts5Config)(unsafe.Pointer(pConfig)).FnDeleteMerge = nVal } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35410) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35556) { zIn = Xsqlite3_value_text(tls, pVal) rc = _sqlite3Fts5ConfigParseRank(tls, zIn, bp, bp+8) if rc == SQLITE_OK { @@ -203504,7 +205501,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35786) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35932) { bVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { bVal = Xsqlite3_value_int(tls, pVal) @@ -203546,7 +205543,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in var _ /* p at bp+0 */ uintptr var _ /* rc at bp+8 */ int32 _, _, _, _, _ = iVersion, pVal, zK, zSelect, zSql - zSelect = __ccgo_ts + 35800 + zSelect = __ccgo_ts + 35946 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_OK iVersion = 0 @@ -203567,7 +205564,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in for int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zK = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) pVal = Xsqlite3_column_value(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) - if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35832) { + if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35978) { iVersion = Xsqlite3_value_int(tls, pVal) } else { *(*int32)(unsafe.Pointer(bp + 12)) = 0 @@ -203580,7 +205577,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in *(*int32)(unsafe.Pointer(bp + 8)) = int32(SQLITE_ERROR) if (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg != 0 { _ = libc.Int32FromInt32(0) - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35840, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35986, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = iVersion @@ -203802,7 +205799,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr } } if int32(*(*uint8)(unsafe.Pointer(z2))) == int32('\000') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35911, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36057, 0) return FTS5_EOF } goto _1 @@ -203813,7 +205810,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z2) - int64(z)) default: if _sqlite3Fts5IsBareword(tls, *(*uint8)(unsafe.Pointer(z))) == 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35931, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36077, libc.VaList(bp+8, z)) return FTS5_EOF } tok = int32(FTS5_STRING) @@ -203828,13 +205825,13 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr z21++ } (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z21) - int64(z)) - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35962, uint64(2)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36108, uint64(2)) == 0 { tok = int32(FTS5_OR) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35965, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36111, uint64(3)) == 0 { tok = int32(FTS5_NOT) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30706, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30852, uint64(3)) == 0 { tok = int32(FTS5_AND) } break @@ -204255,6 +206252,7 @@ func _fts5ExprSynonymList(tls *libc.TLS, pTerm uintptr, iRowid Ti64, pBuf uintpt *(*int32)(unsafe.Pointer(pn)) = (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn } } + goto synonym_poslist_out synonym_poslist_out: ; if aIter != bp { @@ -204387,6 +206385,7 @@ func _fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMat i++ } } + goto ismatch_out ismatch_out: ; *(*int32)(unsafe.Pointer(pbMatch)) = libc.BoolInt32((*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn > 0) @@ -204594,6 +206593,7 @@ func _fts5ExprNearIsMatch(tls *libc.TLS, pRc uintptr, pNear uintptr) (r int32) { goto ismatch_out } } + goto ismatch_out ismatch_out: ; bRet = libc.BoolInt32((*TFts5Buffer)(unsafe.Pointer((*(*TFts5NearTrimmer)(unsafe.Pointer(a))).FpOut)).Fn > 0) @@ -205939,8 +207939,8 @@ func _sqlite3Fts5ExprClonePhrase(tls *libc.TLS, pExpr uintptr, iPhrase int32, pp func _sqlite3Fts5ParseNear(tls *libc.TLS, pParse uintptr, pTok uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+35969, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34750, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) + if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+36115, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34896, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) } } @@ -205960,7 +207960,7 @@ func _sqlite3Fts5ParseSetDistance(tls *libc.TLS, pParse uintptr, pNear uintptr, } c = *(*uint8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i))) if int32(c) < int32('0') || int32(c) > int32('9') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35974, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36120, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) return } nNear = nNear*int32(10) + (int32(*(*uint8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i)))) - int32('0')) @@ -206100,7 +208100,7 @@ func _sqlite3Fts5ParseColset(tls *libc.TLS, pParse uintptr, pColset uintptr, p u iCol++ } if iCol == (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21016, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21148, libc.VaList(bp+8, z)) } else { pRet = _fts5ParseColset(tls, pParse, pColset, iCol) } @@ -206227,7 +208227,7 @@ func _sqlite3Fts5ParseSetColset(tls *libc.TLS, pParse uintptr, pExpr uintptr, pC var _ /* pFree at bp+0 */ uintptr *(*uintptr)(unsafe.Pointer(bp)) = pColset if (*TFts5Config)(unsafe.Pointer((*TFts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FeDetail == int32(FTS5_DETAIL_NONE) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36003, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36149, 0) } else { _fts5ParseSetColset(tls, pParse, pExpr, pColset, bp) } @@ -206424,11 +208424,11 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin pPhrase = *(*uintptr)(unsafe.Pointer(pNear + 24)) if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase != int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 0 && (*(*TFts5ExprTerm)(unsafe.Pointer(pPhrase + 32))).FbFirst != 0 { if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase == int32(1) { - v2 = __ccgo_ts + 36056 + v2 = __ccgo_ts + 36202 } else { - v2 = __ccgo_ts + 35969 + v2 = __ccgo_ts + 36115 } - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36063, libc.VaList(bp+8, v2)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36209, libc.VaList(bp+8, v2)) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -206437,7 +208437,7 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin _fts5ExprAddChildren(tls, pRet, pLeft) _fts5ExprAddChildren(tls, pRet, pRight) if (*TFts5ExprNode)(unsafe.Pointer(pRet)).FiHeight > int32(SQLITE_FTS5_MAX_EXPR_DEPTH) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36113, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36259, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -208606,7 +210606,7 @@ func _fts5DataRead(tls *libc.TLS, p uintptr, iRowid Ti64) (r uintptr) { ** to the requested entry. */ if (*TFts5Index)(unsafe.Pointer(p)).FpReader == uintptr(0) && rc == SQLITE_OK { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36166, iRowid, 0, p+72) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36312, iRowid, 0, p+72) } /* If either of the sqlite3_blob_open() or sqlite3_blob_reopen() calls ** above returned SQLITE_ERROR, return SQLITE_CORRUPT_VTAB instead. @@ -208700,7 +210700,7 @@ func _fts5DataWrite(tls *libc.TLS, p uintptr, iRowid Ti64, pData uintptr, nData } if (*TFts5Index)(unsafe.Pointer(p)).FpWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36172, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36318, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return } @@ -208729,7 +210729,7 @@ func _fts5DataDelete(tls *libc.TLS, p uintptr, iFirst Ti64, iLast Ti64) { } if (*TFts5Index)(unsafe.Pointer(p)).FpDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36223, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36369, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if _fts5IndexPrepareStmt(tls, p, p+88, zSql) != 0 { return } @@ -208763,7 +210763,7 @@ func _fts5DataRemoveSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { } if (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36272, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36418, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter, int32(1), iSegid) @@ -208933,7 +210933,7 @@ func _fts5StructureDecode(tls *libc.TLS, pData uintptr, nData int32, piCookie ui } i = int32(4) /* Check if this is a V2 structure record. Set bStructureV2 if it is. */ - if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36312, uint64(4)) { + if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36458, uint64(4)) { i += int32(4) bStructureV2 = int32(1) } @@ -209126,7 +211126,7 @@ func _fts5IndexDataVersion(tls *libc.TLS, p uintptr) (r Ti64) { iVersion = 0 if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*TFts5Index)(unsafe.Pointer(p)).FpDataVersion == uintptr(0) { - (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36317, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) + (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36463, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return 0 } @@ -209214,7 +211214,7 @@ func _fts5StructureWrite(tls *libc.TLS, p uintptr, pStruct uintptr) { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = int32(4) if (*TFts5Structure)(unsafe.Pointer(pStruct)).FnOriginCntr > uint64(0) { _ = libc.Int32FromInt32(0) - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36312, uint64(4)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36458, uint64(4)) *(*int32)(unsafe.Pointer(bp + 8)) += int32(4) } *(*int32)(unsafe.Pointer(bp + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), uint64((*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel)) @@ -210192,6 +212192,7 @@ func _fts5SegIterNext_None(tls *libc.TLS, p uintptr, pIter uintptr, pbNewTerm ui } _fts5SegIterLoadNPos(tls, p, pIter) return + goto next_none_eof next_none_eof: ; _fts5DataRelease(tls, (*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf) @@ -210568,6 +212569,7 @@ func _fts5LeafSeek(tls *libc.TLS, p uintptr, bGe int32, pIter uintptr, pTerm uin *(*Tu32)(unsafe.Pointer(bp)) += uint32(_sqlite3Fts5GetVarint32(tls, a+uintptr(*(*Tu32)(unsafe.Pointer(bp))), bp+4)) } } + goto search_failed search_failed: ; if bGe == 0 { @@ -210599,6 +212601,7 @@ search_failed: } } } + goto search_success search_success: ; if int64(*(*Tu32)(unsafe.Pointer(bp)))+int64(*(*Tu32)(unsafe.Pointer(bp + 8))) > int64(n) || *(*Tu32)(unsafe.Pointer(bp + 8)) < uint32(1) { @@ -210628,7 +212631,7 @@ func _fts5IdxSelectStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36340, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36486, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect } @@ -210720,7 +212723,7 @@ func _fts5IdxNextStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36424, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36570, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect } @@ -211853,6 +213856,7 @@ func _fts5IterSetOutputs_Col100(tls *libc.TLS, pIter uintptr, pSeg uintptr) { iPrevOut = iPrev } } + goto setoutputs_col_out setoutputs_col_out: ; (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*TFts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp @@ -212078,6 +214082,7 @@ func _fts5MultiIterNew(tls *libc.TLS, p uintptr, pStruct uintptr, flags int32, p _fts5MultiIterFree(tls, pNew) *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) } + goto fts5MultiIterNew_post_check fts5MultiIterNew_post_check: ; _ = libc.Int32FromInt32(0) @@ -212397,7 +214402,7 @@ func _fts5WriteFlushBtree(tls *libc.TLS, p uintptr, pWriter uintptr) { if (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn > 0 { v1 = (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fp } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } z = v1 /* The following was already done in fts5WriteInit(): */ @@ -212766,7 +214771,7 @@ func _fts5WriteInit(tls *libc.TLS, p uintptr, pWriter uintptr, iSegid int32) { _sqlite3Fts5BufferSize(tls, p+60, pWriter+8+8, uint32(nBuffer)) if (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36506, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36652, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { /* Initialize the 4-byte leaf-page header to 0x00. */ @@ -213267,7 +215272,7 @@ func _fts5SecureDeleteIdxEntry(tls *libc.TLS, p uintptr, iSegid int32, iPgno int if iPgno != int32(1) { _ = libc.Int32FromInt32(0) if (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx == uintptr(0) { - _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36563, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36709, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx, int32(1), iSegid) @@ -214807,7 +216812,7 @@ func _sqlite3Fts5IndexReinit(tls *libc.TLS, p uintptr) (r int32) { if (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FbContentlessDelete != 0 { (*(*TFts5Structure)(unsafe.Pointer(bp))).FnOriginCntr = uint64(1) } - _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1648, 0) + _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1662, 0) _fts5StructureWrite(tls, p, bp) return _fts5IndexReturn(tls, p) } @@ -214834,11 +216839,11 @@ func _sqlite3Fts5IndexOpen(tls *libc.TLS, pConfig uintptr, bCreate int32, pp uin if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Index)(unsafe.Pointer(p)).FpConfig = pConfig (*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit = int32(FTS5_WORK_UNIT) - (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36624, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36770, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl != 0 && bCreate != 0 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25741, __ccgo_ts+36632, 0, pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25887, __ccgo_ts+36778, 0, pzErr) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11793, __ccgo_ts+36667, int32(1), pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11918, __ccgo_ts+36813, int32(1), pzErr) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5IndexReinit(tls, p) @@ -215377,7 +217382,7 @@ func _fts5SetupTokendataIter(tls *libc.TLS, p uintptr, pToken uintptr, nToken in pNew = _fts5MultiIterAlloc(tls, p, (*TFts5Structure)(unsafe.Pointer(pStruct)).FnSegment) if pSmall != 0 { _sqlite3Fts5BufferSet(tls, p+60, bp, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fn, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+36711) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+36857) } else { _sqlite3Fts5BufferSet(tls, p+60, bp, nToken, pToken) } @@ -215907,7 +217912,7 @@ func _sqlite3Fts5IndexSetCookie(tls *libc.TLS, p uintptr, iNew int32) (r int32) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) _ = libc.Int32FromInt32(0) _sqlite3Fts5Put32(tls, bp, iNew) - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36166, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36312, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) if rc == SQLITE_OK { Xsqlite3_blob_write(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), bp, int32(4), 0) rc = Xsqlite3_blob_close(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) @@ -216506,7 +218511,7 @@ func _fts5IndexIntegrityCheckSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { if (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst == 0 { return } - _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36713, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) + _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36859, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) /* Iterate through the b-tree hierarchy. */ for (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { /* Data for this leaf */ zIdxTerm = Xsqlite3_column_blob(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -216739,7 +218744,7 @@ func _sqlite3Fts5IndexIntegrityCheck(tls *libc.TLS, p uintptr, cksum Tu64, bUseC } else { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = 0 _fts5SegiterPoslist(tls, p, *(*uintptr)(unsafe.Pointer(bp + 16))+104+uintptr((*(*TFts5CResult)(unsafe.Pointer((*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaFirst + 1*4))).FiFirst)*128, uintptr(0), bp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+36799) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+36945) for 0 == _sqlite3Fts5PoslistNext64(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn, bp+40, bp+32) { iCol = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) >> libc.Int32FromInt32(32)) iTokOff = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) & libc.Int64FromInt32(0x7FFFFFFF)) @@ -217337,7 +219342,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36804, 0) + (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36950, 0) return int32(SQLITE_ERROR) } idxStr = Xsqlite3_malloc(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint*int32(8)+int32(1)) @@ -217377,7 +219382,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v3 = iIdxStr iIdxStr++ *(*uint8)(unsafe.Pointer(idxStr + uintptr(v3))) = uint8('M') - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5138, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5202, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) _ = libc.Int32FromInt32(0) } @@ -217399,7 +219404,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v6 = int32('G') } *(*uint8)(unsafe.Pointer(idxStr + uintptr(v5))) = uint8(v6) - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5138, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5202, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) iCons++ v7 = iCons @@ -217841,7 +219846,7 @@ func _fts5NextMethod(tls *libc.TLS, pCursor uintptr) (r int32) { *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_EOF) rc = Xsqlite3_reset(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpStmt) if rc != SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } } else { rc = SQLITE_OK @@ -217868,7 +219873,7 @@ func _fts5PrepareStatement(tls *libc.TLS, ppStmt uintptr, pConfig uintptr, zFmt } else { rc = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } Xsqlite3_free(tls, zSql) } @@ -217903,21 +219908,21 @@ func _fts5CursorFirstSorted(tls *libc.TLS, pTab uintptr, pCsr uintptr, bDesc int ** ** If SQLite a built-in statement cache, this wouldn't be a problem. */ if zRankArgs != 0 { - v1 = __ccgo_ts + 14990 + v1 = __ccgo_ts + 15083 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } if zRankArgs != 0 { v2 = zRankArgs } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } if bDesc != 0 { - v3 = __ccgo_ts + 36843 + v3 = __ccgo_ts + 36989 } else { - v3 = __ccgo_ts + 36848 + v3 = __ccgo_ts + 36994 } - rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+36852, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) + rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+36998, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpSorter = pSorter if rc == SQLITE_OK { _ = libc.Int32FromInt32(0) @@ -217977,14 +219982,14 @@ func _fts5SpecialMatch(tls *libc.TLS, pTab uintptr, pCsr uintptr, zQuery uintptr } _ = libc.Int32FromInt32(0) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan = int32(FTS5_PLAN_SPECIAL) - if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+36907, z, n) { + if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+37053, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = int64(_sqlite3Fts5IndexReads(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)) } else { - if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5481, z, n) { + if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5545, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId } else { /* An unrecognized directive. Return an error message. */ - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36913, libc.VaList(bp+8, n, z)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37059, libc.VaList(bp+8, n, z)) rc = int32(SQLITE_ERROR) } } @@ -218034,7 +220039,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { zRank = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank zRankArgs = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs if zRankArgs != 0 { - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36941, libc.VaList(bp+24, zRankArgs)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37087, libc.VaList(bp+24, zRankArgs)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp+8, uintptr(0)) @@ -218070,7 +220075,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { pAux = _fts5FindAuxiliary(tls, pTab, zRank) if pAux == uintptr(0) { _ = libc.Int32FromInt32(0) - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36951, libc.VaList(bp+24, zRank)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37097, libc.VaList(bp+24, zRank)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -218104,7 +220109,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_FREE_ZRANK) } else { if rc == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36972, libc.VaList(bp+24, z)) + (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37118, libc.VaList(bp+24, z)) } } } else { @@ -218112,7 +220117,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRank (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRankArgs } else { - (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 34904 + (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 35050 (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = uintptr(0) } } @@ -218163,7 +220168,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint iIdxStr = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36804, 0) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36950, 0) return int32(SQLITE_ERROR) } if (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan != 0 { @@ -218193,7 +220198,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint case int32('M'): zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8))) if zText == uintptr(0) { - zText = __ccgo_ts + 1648 + zText = __ccgo_ts + 1662 } iCol = 0 for cond := true; cond; cond = int32(*(*uint8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) <= int32('9') { @@ -218321,7 +220326,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent == uintptr(0) { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37005, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37151, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) rc = int32(SQLITE_ERROR) } else { /* This is either a full-table scan (ePlan==FTS5_PLAN_SCAN) or a lookup @@ -218346,6 +220351,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } } + goto filter_out filter_out: ; _sqlite3Fts5ExprFree(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -218464,7 +220470,7 @@ func _fts5SeekCursor(tls *libc.TLS, pCsr uintptr, bErrormsg int32) (r int32) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< int32(1) { - v1 = __ccgo_ts + 20869 + v1 = __ccgo_ts + 21001 } else { - v1 = __ccgo_ts + 37283 + v1 = __ccgo_ts + 37429 } - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37295, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37441, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if nArg == int32(1) { @@ -218729,7 +220735,7 @@ func _fts5UpdateMethod(tls *libc.TLS, pVtab uintptr, nArg int32, apVal uintptr, } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && bUpdateOrDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FbSecureDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion == int32(FTS5_CURRENT_VERSION) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35832, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35978, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = int32(FTS5_CURRENT_VERSION_SECUREDELETE) } @@ -219530,7 +221536,7 @@ func _fts5ApiCallback(tls *libc.TLS, context uintptr, argc int32, argv uintptr) iCsrId = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) pCsr = _fts5CursorFromCsrid(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal, iCsrId) if pCsr == uintptr(0) || (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan == 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37332, libc.VaList(bp+8, iCsrId)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37478, libc.VaList(bp+8, iCsrId)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } else { @@ -219722,7 +221728,7 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg = uintptr(0) } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 && Xsqlite3_vtab_nochange(tls, pCtx) != 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37353, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37499, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -219965,7 +221971,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr if pMod == uintptr(0) { _ = libc.Int32FromInt32(0) rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37424, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37570, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) } else { if azArg != 0 { v2 = azArg + 1*8 @@ -219981,7 +221987,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr (*TFts5Config)(unsafe.Pointer(pConfig)).FpTokApi = pMod + 16 if rc != SQLITE_OK { if pzErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37446, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37592, 0) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FePattern = _sqlite3Fts5TokenizerPattern(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pMod)).Fx.FxCreate, (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok) @@ -220037,7 +222043,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { pGlobal = Xsqlite3_user_data(tls, pCtx) _ = nArg _ = libc.Int32FromInt32(0) - ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37477) + ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37623) if ppApi != 0 { *(*uintptr)(unsafe.Pointer(ppApi)) = pGlobal } @@ -220052,7 +222058,7 @@ func _fts5SourceIdFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apUnused uintptr _ = libc.Int32FromInt32(0) _ = nArg _ = apUnused - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37490, -int32(1), uintptr(-libc.Int32FromInt32(1))) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37636, -int32(1), uintptr(-libc.Int32FromInt32(1))) } // C documentation @@ -220081,11 +222087,11 @@ func _fts5ShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName2 = [5]uintptr{ - 0: __ccgo_ts + 37581, - 1: __ccgo_ts + 35093, - 2: __ccgo_ts + 25741, - 3: __ccgo_ts + 35660, - 4: __ccgo_ts + 11793, + 0: __ccgo_ts + 37727, + 1: __ccgo_ts + 35239, + 2: __ccgo_ts + 25887, + 3: __ccgo_ts + 35806, + 4: __ccgo_ts + 11918, } // C documentation @@ -220099,21 +222105,27 @@ func _fts5IntegrityMethod(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zTabnam bp := tls.Alloc(32) defer tls.Free(32) var pTab uintptr - var rc int32 - _, _ = pTab, rc + var rc, v1 int32 + _, _, _ = pTab, rc, v1 pTab = pVtab _ = libc.Int32FromInt32(0) _ = isQuick rc = _sqlite3Fts5StorageIntegrity(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, 0) if rc&int32(0xff) == int32(SQLITE_CORRUPT) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37588, libc.VaList(bp+8, zSchema, zTabname)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37734, libc.VaList(bp+8, zSchema, zTabname)) + if *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { + v1 = SQLITE_OK + } else { + v1 = int32(SQLITE_NOMEM) + } + rc = v1 } else { if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37634, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37780, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) } } _sqlite3Fts5IndexCloseReader(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex) - return SQLITE_OK + return rc } func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { @@ -220132,7 +222144,7 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateFunction = __ccgo_fp(_fts5CreateAux) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateTokenizer = __ccgo_fp(_fts5CreateTokenizer) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxFindTokenizer = __ccgo_fp(_fts5FindTokenizer) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37697, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37843, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) if rc == SQLITE_OK { rc = _sqlite3Fts5IndexInit(tls, db) } @@ -220149,10 +222161,10 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { rc = _sqlite3Fts5VocabInit(tls, pGlobal, db) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37697, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37843, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37702, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37848, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) } } /* If SQLITE_FTS5_ENABLE_TEST_MI is defined, assume that the file @@ -220257,17 +222269,17 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(eStmt)*8)) == uintptr(0) { azStmt = [11]uintptr{ - 0: __ccgo_ts + 37717, - 1: __ccgo_ts + 37785, - 2: __ccgo_ts + 37854, - 3: __ccgo_ts + 37887, - 4: __ccgo_ts + 37926, - 5: __ccgo_ts + 37966, - 6: __ccgo_ts + 38005, - 7: __ccgo_ts + 38048, - 8: __ccgo_ts + 38087, - 9: __ccgo_ts + 38131, - 10: __ccgo_ts + 38171, + 0: __ccgo_ts + 37863, + 1: __ccgo_ts + 37931, + 2: __ccgo_ts + 38000, + 3: __ccgo_ts + 38033, + 4: __ccgo_ts + 38072, + 5: __ccgo_ts + 38112, + 6: __ccgo_ts + 38151, + 7: __ccgo_ts + 38194, + 8: __ccgo_ts + 38233, + 9: __ccgo_ts + 38277, + 10: __ccgo_ts + 38317, } pC = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig zSql = uintptr(0) @@ -220304,16 +222316,16 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, } case int32(FTS5_STMT_REPLACE_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v2 = __ccgo_ts + 38194 + v2 = __ccgo_ts + 38340 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName, v2)) case int32(FTS5_STMT_LOOKUP_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v3 = __ccgo_ts + 38197 + v3 = __ccgo_ts + 38343 } else { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, v3, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName)) default: @@ -220332,7 +222344,7 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, (*TFts5Config)(unsafe.Pointer((*TFts5Storage)(unsafe.Pointer(p)).FpConfig)).FbLock-- Xsqlite3_free(tls, zSql) if rc != SQLITE_OK && pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) } } } @@ -220369,12 +222381,12 @@ func _sqlite3Fts5DropAll(tls *libc.TLS, pConfig uintptr) (r int32) { defer tls.Free(64) var rc int32 _ = rc - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38205, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38351, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38309, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38455, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38347, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38493, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } return rc } @@ -220383,7 +222395,7 @@ func _fts5StorageRenameOne(tls *libc.TLS, pConfig uintptr, pRc uintptr, zTail ui bp := tls.Alloc(48) defer tls.Free(48) if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38385, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) + *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38531, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) } } @@ -220395,14 +222407,14 @@ func _sqlite3Fts5StorageRename(tls *libc.TLS, pStorage uintptr, zName uintptr) ( _ = pConfig pConfig = (*TFts5Storage)(unsafe.Pointer(pStorage)).FpConfig *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageSync(tls, pStorage) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25741, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11793, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37581, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25887, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11918, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37727, zName) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35660, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35806, zName) } if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35093, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35239, zName) } return *(*int32)(unsafe.Pointer(bp)) } @@ -220422,13 +222434,13 @@ func _sqlite3Fts5CreateTable(tls *libc.TLS, pConfig uintptr, zPost uintptr, zDef _, _ = rc, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if bWithout != 0 { - v1 = __ccgo_ts + 30381 + v1 = __ccgo_ts + 30527 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38427, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38573, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38457, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38603, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -220469,36 +222481,36 @@ func _sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCr if zDefn == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38501, 0) + Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38647, 0) iOff = int32(libc.Xstrlen(tls, zDefn)) i = 0 for { if !(i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } - Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38524, libc.VaList(bp+8, i)) + Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38670, libc.VaList(bp+8, i)) iOff += int32(libc.Xstrlen(tls, zDefn+uintptr(iOff))) goto _2 _2: ; i++ } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35093, zDefn, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35239, zDefn, 0, pzErr) } Xsqlite3_free(tls, zDefn) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - zCols = __ccgo_ts + 38530 + zCols = __ccgo_ts + 38676 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 { - zCols = __ccgo_ts + 38562 + zCols = __ccgo_ts + 38708 } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35660, zCols, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35806, zCols, 0, pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37581, __ccgo_ts+38610, int32(1), pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37727, __ccgo_ts+38756, int32(1), pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35832, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35978, uintptr(0), int32(FTS5_CURRENT_VERSION)) } } if rc != 0 { @@ -220845,9 +222857,9 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig (*TFts5Storage)(unsafe.Pointer(p)).FbTotalsValid = 0 /* Delete the contents of the %_data and %_docsize tables. */ - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38627, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38773, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38677, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38823, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } /* Reinitialize the %_data table. This call creates the initial structure ** and averages records. */ @@ -220855,7 +222867,7 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3Fts5IndexReinit(tls, (*TFts5Storage)(unsafe.Pointer(p)).FpIndex) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35832, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35978, uintptr(0), int32(FTS5_CURRENT_VERSION)) } return rc } @@ -221069,7 +223081,7 @@ func _fts5StorageCount(tls *libc.TLS, p uintptr, zSuffix uintptr, pnRow uintptr) var _ /* pCnt at bp+0 */ uintptr _, _, _ = pConfig, rc, zSql pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38706, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38852, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -221280,14 +223292,14 @@ func _sqlite3Fts5StorageIntegrity(tls *libc.TLS, p uintptr, iArg int32) (r int32 ** number of rows. */ if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { *(*Ti64)(unsafe.Pointer(bp + 48)) = 0 - rc = _fts5StorageCount(tls, p, __ccgo_ts+35093, bp+48) + rc = _fts5StorageCount(tls, p, __ccgo_ts+35239, bp+48) if rc == SQLITE_OK && *(*Ti64)(unsafe.Pointer(bp + 48)) != (*TFts5Storage)(unsafe.Pointer(p)).FnTotalRow { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<= int32('A') && int32(*(*uint8)(unsafe.Pointer(zCsr))) <= int32('Z') { @@ -222217,6 +224231,7 @@ _5: goto _2 _1: ; + goto tokenize_done tokenize_done: ; if rc == int32(SQLITE_DONE) { @@ -222280,7 +224295,7 @@ func _fts5PorterCreate(tls *libc.TLS, pCtx uintptr, azArg uintptr, nArg int32, p pApi = pCtx rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zBase = __ccgo_ts + 38798 + zBase = __ccgo_ts + 38944 if nArg > 0 { zBase = *(*uintptr)(unsafe.Pointer(azArg)) } @@ -222497,64 +224512,64 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38808, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38954, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38811, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38957, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38816, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38962, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('e'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38821, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38967, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38824, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38970, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('l'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38827, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38973, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38832, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38978, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38837, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38983, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38841, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38987, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38847, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38993, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38852, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38998, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -222563,49 +224578,49 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38856, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39002, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1_and_S_or_T(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38860, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39006, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } } case int32('s'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38863, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39009, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('t'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38867, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39013, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38871, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39017, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38875, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39021, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38879, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39025, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('z'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38883, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39029, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -222622,20 +224637,20 @@ func _fts5PorterStep1B2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38887, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38867, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39033, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39013, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('b'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38890, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38893, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39036, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39039, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38897, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38883, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39043, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39029, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } @@ -222651,75 +224666,75 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38900, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39046, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38867, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39013, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38908, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39054, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38915, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39061, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(4) } } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38920, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39066, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38816, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38962, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38925, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39071, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38811, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38957, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } } case int32('e'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38930, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39076, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38883, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39029, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('g'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38935, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39081, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15907, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15986, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('l'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38940, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39086, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38893, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39039, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38944, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39090, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38808, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38954, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38949, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39095, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38852, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38998, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38955, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39101, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38959, uint64(1)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39105, uint64(1)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(1) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38961, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39107, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38875, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39021, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } @@ -222728,48 +224743,48 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38967, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39113, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38883, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39029, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38975, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39121, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38867, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39013, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38981, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39127, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38867, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39013, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } } } case int32('s'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38986, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39132, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38808, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38954, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38992, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39138, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38879, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39025, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39000, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39146, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39008, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39154, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39012, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39158, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38875, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39021, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } @@ -222777,21 +224792,21 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39020, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39166, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38808, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38954, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39026, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39172, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38879, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39025, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39032, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39178, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38893, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39039, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(3) } } @@ -222809,48 +224824,48 @@ func _fts5PorterStep3(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39039, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39185, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38824, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38970, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } case int32('s'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39044, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39190, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39049, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39195, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38824, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38970, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39055, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39201, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38824, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38970, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39008, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39154, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39061, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39207, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } case int32('z'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39067, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39213, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38808, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38954, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } @@ -222866,13 +224881,13 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('e'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39073, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39219, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39077, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39223, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(2) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39080, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39226, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) ret = int32(1) @@ -222880,7 +224895,7 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39083, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39229, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) ret = int32(1) @@ -222966,6 +224981,7 @@ func _fts5PorterCb(tls *libc.TLS, pCtx uintptr, tflags int32, pToken uintptr, nT *(*int32)(unsafe.Pointer(bp))-- } return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, aBuf, *(*int32)(unsafe.Pointer(bp)), iStart, iEnd) + goto pass_through pass_through: ; return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, pToken, nToken, iStart, iEnd) @@ -223041,14 +225057,14 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p break } zArg = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+int32(1))*8)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39087) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39233) { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || *(*uint8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { (*TTrigramTokenizer)(unsafe.Pointer(pNew)).FbFold = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('0')) } } else { - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38780) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38926) { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('2') || *(*uint8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { @@ -223323,7 +225339,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { Fx Tfts5_tokenizer }{ 0: { - FzName: __ccgo_ts + 38798, + FzName: __ccgo_ts + 38944, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5UnicodeCreate), FxDelete: __ccgo_fp(_fts5UnicodeDelete), @@ -223331,7 +225347,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 1: { - FzName: __ccgo_ts + 39102, + FzName: __ccgo_ts + 39248, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5AsciiCreate), FxDelete: __ccgo_fp(_fts5AsciiDelete), @@ -223339,7 +225355,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 2: { - FzName: __ccgo_ts + 39108, + FzName: __ccgo_ts + 39254, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5PorterCreate), FxDelete: __ccgo_fp(_fts5PorterDelete), @@ -223347,7 +225363,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 3: { - FzName: __ccgo_ts + 39115, + FzName: __ccgo_ts + 39261, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5TriCreate), FxDelete: __ccgo_fp(_fts5TriDelete), @@ -228892,16 +230908,16 @@ func _fts5VocabTableType(tls *libc.TLS, zType uintptr, pzErr uintptr, peType uin zCopy = _sqlite3Fts5Strndup(tls, bp, zType, -int32(1)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { _sqlite3Fts5Dequote(tls, zCopy) - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39123) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39269) == 0 { *(*int32)(unsafe.Pointer(peType)) = FTS5_VOCAB_COL } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39127) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39273) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_ROW) } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39131) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39277) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_INSTANCE) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39140, libc.VaList(bp+16, zCopy)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39286, libc.VaList(bp+16, zCopy)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -228970,15 +230986,15 @@ func _fts5VocabInitVtab(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg var _ /* rc at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _ = azSchema, bDb, nByte, nDb, nTab, pRet, zDb, zTab, zType, v1, v2, v3 azSchema = [3]uintptr{ - 0: __ccgo_ts + 39174, - 1: __ccgo_ts + 39214, - 2: __ccgo_ts + 39249, + 0: __ccgo_ts + 39320, + 1: __ccgo_ts + 39360, + 2: __ccgo_ts + 39395, } pRet = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+23742, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) + bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+23865, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) if argc != int32(5) && bDb == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39292, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39438, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bDb != 0 { @@ -229149,10 +231165,10 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) zSql = uintptr(0) if (*TFts5VocabTable)(unsafe.Pointer(pTab)).FbBusy != 0 { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39325, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39471, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) return int32(SQLITE_ERROR) } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39356, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39502, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, (*TFts5VocabTable)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), bp+8, uintptr(0)) } @@ -229172,7 +231188,7 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39407, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39553, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } else { @@ -229481,7 +231497,7 @@ func _fts5VocabFilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, zUnuse if pLe != 0 { zCopy = Xsqlite3_value_text(tls, pLe) if zCopy == uintptr(0) { - zCopy = __ccgo_ts + 1648 + zCopy = __ccgo_ts + 1662 } (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm = Xsqlite3_value_bytes(tls, pLe) (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm = Xsqlite3_malloc(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm+int32(1)) @@ -229609,7 +231625,7 @@ func _sqlite3Fts5VocabInit(tls *libc.TLS, pGlobal uintptr, db uintptr) (r int32) var p uintptr _ = p p = pGlobal - return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39433, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) + return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39579, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) } var _fts5Vocab = Tsqlite3_module{ @@ -229662,7 +231678,7 @@ func init() { // /************** End of stmt.c ************************************************/ // /* Return the source-id for this library */ func Xsqlite3_sourceid(tls *libc.TLS) (r uintptr) { - return __ccgo_ts + 39443 + return __ccgo_ts + 39589 } type TAggInfo_col = struct { @@ -229944,11 +231960,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]uint8{'3', '.', '4', '5', '.', '3'} +var Xsqlite3_version = [7]uint8{'3', '.', '4', '6', '.', '0'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-12.2.0\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%04d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00(subquery-%u)\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSmaller\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00PRAGMA \"%w\".integrity_check(%Q)\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00ceiling\x00floor\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00wrong # of entries in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00RIGHT PART OF \x00USE TEMP B-TREE FOR %sORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00parser stack overflow\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-12.2.0\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00ceiling\x00floor\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%04d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00%u-ROW VALUES CLAUSE\x00(subquery-%u)\x00unrecognized token: \"%s\"\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSizeBetween\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: \"%s\" - should this be a string literal in single-quotes?\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00SCAN %S\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00wrong # of entries in index \x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00LAST TERM OF \x00USE TEMP B-TREE FOR %sORDER BY\x00USE TEMP B-TREE FOR LAST %d TERMS OF ORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00syntax error\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00,\n\x00: \x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00 \x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_pretty\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00" type Sqlite3_int64 = sqlite3_int64 type Sqlite3_mutex_methods = sqlite3_mutex_methods diff --git a/vendor/modernc.org/sqlite/lib/sqlite_linux_loong64.go b/vendor/modernc.org/sqlite/lib/sqlite_linux_loong64.go index ed15248f..2888a1c3 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_linux_loong64.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_linux_loong64.go @@ -1,4 +1,4 @@ -// Code generated for linux/loong64 by 'generator --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -import runtime -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -extended-errors -o sqlite3.go sqlite3.c -I/tmp/libsqlite3/sqlite-amalgamation-3450300/ccgo -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. +// Code generated for linux/loong64 by 'generator --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -I /home/cznic/src/modernc.org/builder/.exclude/modernc.org/libz/include/linux/loong64 -I /home/cznic/src/modernc.org/builder/.exclude/modernc.org/libtcl8.6/include/linux/loong64 -extended-errors -o sqlite3.go sqlite3.c -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. //go:build linux && loong64 // +build linux,loong64 @@ -10,8 +10,6 @@ import ( "unsafe" "modernc.org/libc" - - "runtime" ) var ( @@ -942,6 +940,7 @@ const OPFLG_IN1 = 2 const OPFLG_IN2 = 4 const OPFLG_IN3 = 8 const OPFLG_JUMP = 1 +const OPFLG_JUMP0 = 128 const OPFLG_NCYCLE = 64 const OPFLG_OUT2 = 16 const OPFLG_OUT3 = 32 @@ -1019,7 +1018,7 @@ const OP_IfNotOpen = 25 const OP_IfNotZero = 60 const OP_IfNullRow = 20 const OP_IfPos = 59 -const OP_IfSmaller = 33 +const OP_IfSizeBetween = 33 const OP_IncrVacuum = 62 const OP_Init = 8 const OP_InitCoroutine = 11 @@ -1448,6 +1447,7 @@ const SF_ComplexResult = 262144 const SF_Compound = 256 const SF_Converted = 65536 const SF_CopyCte = 67108864 +const SF_Correlated = 536870912 const SF_Distinct = 1 const SF_Expanded = 64 const SF_FixedLimit = 16384 @@ -1719,6 +1719,7 @@ const SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT = -1 const SQLITE_DEFAULT_LOOKASIDE = 40 const SQLITE_DEFAULT_MEMSTATUS = 0 const SQLITE_DEFAULT_MMAP_SIZE = 0 +const SQLITE_DEFAULT_OPTIMIZE_LIMIT = 2000 const SQLITE_DEFAULT_PAGE_SIZE = 4096 const SQLITE_DEFAULT_PCACHE_INITSZ = 20 const SQLITE_DEFAULT_PROXYDIR_PERMISSIONS = 493 @@ -1736,6 +1737,7 @@ const SQLITE_DESERIALIZE_READONLY = 4 const SQLITE_DESERIALIZE_RESIZEABLE = 2 const SQLITE_DETACH = 25 const SQLITE_DETERMINISTIC = 2048 +const SQLITE_DIGIT_SEPARATOR = 95 const SQLITE_DIRECTONLY = 524288 const SQLITE_DIRECT_OVERFLOW_READ = 1 const SQLITE_DONE = 101 @@ -2160,7 +2162,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355" +const SQLITE_SOURCE_ID = "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2269,8 +2271,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.45.3" -const SQLITE_VERSION_NUMBER = 3045003 +const SQLITE_VERSION = "3.46.0" +const SQLITE_VERSION_NUMBER = 3046000 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -2397,11 +2399,11 @@ const TF_HasStat1 = 16 const TF_HasStat4 = 8192 const TF_HasStored = 64 const TF_HasVirtual = 32 +const TF_MaybeReanalyze = 256 const TF_NoVisibleRowid = 512 const TF_OOOHidden = 1024 const TF_Readonly = 1 const TF_Shadow = 4096 -const TF_StatsUsed = 256 const TF_Strict = 65536 const TF_WithoutRowid = 128 const TIMER_ABSTIME = 1 @@ -2561,7 +2563,7 @@ const TK_ID = 59 const TK_IF = 18 const TK_IF_NULL_ROW = 179 const TK_IGNORE = 63 -const TK_ILLEGAL = 184 +const TK_ILLEGAL = 185 const TK_IMMEDIATE = 8 const TK_IN = 49 const TK_INDEX = 161 @@ -2609,6 +2611,7 @@ const TK_PRAGMA = 70 const TK_PRECEDING = 88 const TK_PRIMARY = 122 const TK_PTR = 112 +const TK_QNUMBER = 183 const TK_QUERY = 3 const TK_RAISE = 71 const TK_RANGE = 89 @@ -2633,7 +2636,7 @@ const TK_SELECT_COLUMN = 178 const TK_SEMI = 1 const TK_SET = 130 const TK_SLASH = 109 -const TK_SPACE = 183 +const TK_SPACE = 184 const TK_SPAN = 181 const TK_STAR = 108 const TK_STRING = 117 @@ -2646,12 +2649,12 @@ const TK_TRANSACTION = 6 const TK_TRIGGER = 77 const TK_TRUEFALSE = 170 const TK_TRUTH = 175 -const TK_UMINUS = 173 +const TK_UMINUS = 174 const TK_UNBOUNDED = 90 const TK_UNION = 134 const TK_UNIQUE = 123 const TK_UPDATE = 129 -const TK_UPLUS = 174 +const TK_UPLUS = 173 const TK_USING = 144 const TK_VACUUM = 78 const TK_VALUES = 139 @@ -2798,31 +2801,37 @@ const W_OK = 2 const XN_EXPR = -2 const XN_ROWID = -1 const X_OK = 1 +const YYDYNSTACK = 1 const YYFALLBACK = 1 +const YYFREE = 0 +const YYGROWABLESTACK = 1 const YYMALLOCARGTYPE = 0 -const YYNOCODE = 319 +const YYNOCODE = 322 const YYNOERRORRECOVERY = 1 -const YYNRULE = 405 -const YYNRULE_WITH_ACTION = 340 -const YYNSTATE = 579 -const YYNTOKEN = 185 +const YYNRULE = 409 +const YYNRULE_WITH_ACTION = 344 +const YYNSTATE = 583 +const YYNTOKEN = 186 const YYPARSEFREENEVERNULL = 1 +const YYREALLOC = 0 const YYSTACKDEPTH = 100 const YYWILDCARD = 101 -const YY_ACCEPT_ACTION = 1244 -const YY_ACTTAB_COUNT = 2100 -const YY_ERROR_ACTION = 1243 -const YY_MAX_REDUCE = 1650 -const YY_MAX_SHIFT = 578 -const YY_MAX_SHIFTREDUCE = 1242 -const YY_MIN_REDUCE = 1246 -const YY_MIN_SHIFTREDUCE = 838 -const YY_NO_ACTION = 1245 -const YY_REDUCE_COUNT = 410 -const YY_REDUCE_MAX = 1753 -const YY_REDUCE_MIN = -271 -const YY_SHIFT_COUNT = 578 -const YY_SHIFT_MAX = 2088 +const YY_ACCEPT_ACTION = 1255 +const YY_ACTTAB_COUNT = 2142 +const YY_ERROR_ACTION = 1254 +const YY_MAX_DSTRCTR = 319 +const YY_MAX_REDUCE = 1665 +const YY_MAX_SHIFT = 582 +const YY_MAX_SHIFTREDUCE = 1253 +const YY_MIN_DSTRCTR = 205 +const YY_MIN_REDUCE = 1257 +const YY_MIN_SHIFTREDUCE = 845 +const YY_NO_ACTION = 1256 +const YY_REDUCE_COUNT = 411 +const YY_REDUCE_MAX = 1798 +const YY_REDUCE_MIN = -275 +const YY_SHIFT_COUNT = 582 +const YY_SHIFT_MAX = 2128 const YY_SHIFT_MIN = 0 const _ABILP64 = 3 const _CS_GNU_LIBC_VERSION = 2 @@ -3487,7 +3496,7 @@ const __UTA_FBIT__ = 64 const __UTA_IBIT__ = 64 const __UTQ_FBIT__ = 128 const __UTQ_IBIT__ = 0 -const __VERSION__ = "14.0.1 20240228 (Red Hat 14.0.1-0)" +const __VERSION__ = "14.0.1 20240411 (Red Hat 14.0.1-0)" const __WCHAR_MAX__ = 2147483647 const __WCHAR_MIN__ = -2147483648 const __WCHAR_TYPE__ = 0 @@ -3547,6 +3556,9 @@ const fdatasync = 0 const first_valueInvFunc = 0 const first_valueValueFunc = 0 const fts5GetVarint = 0 +const fts5YYDYNSTACK = 0 +const fts5YYFREE = 0 +const fts5YYGROWABLESTACK = 0 const fts5YYMALLOCARGTYPE = 0 const fts5YYNFTS5TOKEN = 16 const fts5YYNOCODE = 27 @@ -3555,13 +3567,16 @@ const fts5YYNRULE = 28 const fts5YYNRULE_WITH_ACTION = 28 const fts5YYNSTATE = 35 const fts5YYPARSEFREENOTNULL = 1 +const fts5YYREALLOC = 0 const fts5YYSTACKDEPTH = 100 const fts5YY_ACCEPT_ACTION = 81 const fts5YY_ACTTAB_COUNT = 105 const fts5YY_ERROR_ACTION = 80 +const fts5YY_MAX_DSTRCTR = 24 const fts5YY_MAX_REDUCE = 110 const fts5YY_MAX_SHIFT = 34 const fts5YY_MAX_SHIFTREDUCE = 79 +const fts5YY_MIN_DSTRCTR = 16 const fts5YY_MIN_REDUCE = 83 const fts5YY_MIN_SHIFTREDUCE = 52 const fts5YY_NO_ACTION = 82 @@ -3983,11 +3998,11 @@ type sqlite3_file1 = Tsqlite3_file1 // ** // ** xLock() upgrades the database file lock. In other words, xLock() moves the // ** database file lock in the direction NONE toward EXCLUSIVE. The argument to -// ** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +// ** xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never // ** SQLITE_LOCK_NONE. If the database file lock is already at or above the // ** requested lock, then the call to xLock() is a no-op. // ** xUnlock() downgrades the database file lock to either SHARED or NONE. -// * If the lock is already at or below the requested lock state, then the call +// ** If the lock is already at or below the requested lock state, then the call // ** to xUnlock() is a no-op. // ** The xCheckReservedLock() method checks whether any database connection, // ** either in this process or in some other process, is holding a RESERVED, @@ -6131,6 +6146,7 @@ type Tsqlite3_changegroup = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -6457,8 +6473,8 @@ type Fts5PhraseIter1 = TFts5PhraseIter1 ** EXTENSION API FUNCTIONS ** ** xUserData(pFts): -** Return a copy of the context pointer the extension function was -** registered with. +** Return a copy of the pUserData pointer passed to the xCreateFunction() +** API when the extension function was registered. ** ** xColumnTotalSize(pFts, iCol, pnToken): ** If parameter iCol is less than zero, set output variable *pnToken @@ -7539,7 +7555,7 @@ type uptr = Tuptr ** 0x00000010 Display sqlite3_index_info xBestIndex calls ** 0x00000020 Range an equality scan metrics ** 0x00000040 IN operator decisions -** 0x00000080 WhereLoop cost adjustements +** 0x00000080 WhereLoop cost adjustments ** 0x00000100 ** 0x00000200 Covering index decisions ** 0x00000400 OR optimization @@ -8051,6 +8067,7 @@ type TParse = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -8272,6 +8289,7 @@ type TSrcItem = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -10548,10 +10566,12 @@ type IdList1 = TIdList1 ** ** Union member validity: ** -** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc -** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy -** u2.pIBIndex fg.isIndexedBy && !fg.isCte -** u2.pCteUse fg.isCte && !fg.isIndexedBy +** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc +** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy +** u1.nRow !fg.isTabFunc && !fg.isIndexedBy +** +** u2.pIBIndex fg.isIndexedBy && !fg.isCte +** u2.pCteUse fg.isCte && !fg.isIndexedBy */ type TSrcItem1 = struct { FpSchema uintptr @@ -10577,6 +10597,7 @@ type TSrcItem1 = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -10980,6 +11001,7 @@ type TParse1 = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -12342,12 +12364,12 @@ var _sqlite3WhereTrace = uint32(0) var _sqlite3OpcodeProperty = [190]uint8{ 4: uint8(0x10), 6: uint8(0x41), - 8: uint8(0x01), + 8: uint8(0x81), 9: uint8(0x01), 10: uint8(0x01), - 11: uint8(0x01), - 12: uint8(0x03), - 13: uint8(0x03), + 11: uint8(0x81), + 12: uint8(0x83), + 13: uint8(0x83), 14: uint8(0x01), 15: uint8(0x01), 16: uint8(0x03), @@ -12355,22 +12377,22 @@ var _sqlite3OpcodeProperty = [190]uint8{ 18: uint8(0x01), 19: uint8(0x12), 20: uint8(0x01), - 21: uint8(0x49), - 22: uint8(0x49), - 23: uint8(0x49), - 24: uint8(0x49), + 21: uint8(0xc9), + 22: uint8(0xc9), + 23: uint8(0xc9), + 24: uint8(0xc9), 25: uint8(0x01), 26: uint8(0x49), 27: uint8(0x49), 28: uint8(0x49), 29: uint8(0x49), - 30: uint8(0x49), + 30: uint8(0xc9), 31: uint8(0x49), - 32: uint8(0x41), + 32: uint8(0xc1), 33: uint8(0x01), 34: uint8(0x41), 35: uint8(0x41), - 36: uint8(0x41), + 36: uint8(0xc1), 37: uint8(0x01), 38: uint8(0x41), 39: uint8(0x41), @@ -12382,7 +12404,7 @@ var _sqlite3OpcodeProperty = [190]uint8{ 45: uint8(0x41), 46: uint8(0x23), 47: uint8(0x0b), - 48: uint8(0x01), + 48: uint8(0x81), 49: uint8(0x01), 50: uint8(0x03), 51: uint8(0x03), @@ -13237,7 +13259,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= int32(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(23890)) + return _sqlite3MisuseError(tls, int32(23961)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -13585,43 +13607,37 @@ type itimerspec = Titimerspec // ** A structure for holding a single date and time. // */ type TDateTime = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD int8 - FrawS int8 - FvalidYMD int8 - FvalidHMS int8 - FvalidTZ int8 - FtzSet int8 - FisError int8 - FuseSubsec int8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD int8 + FvalidYMD int8 + FvalidHMS int8 + FnFloor int8 + F__ccgo44 uint8 } type DateTime = TDateTime type TDateTime1 = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD int8 - FrawS int8 - FvalidYMD int8 - FvalidHMS int8 - FvalidTZ int8 - FtzSet int8 - FisError int8 - FuseSubsec int8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD int8 + FvalidYMD int8 + FvalidHMS int8 + FnFloor int8 + F__ccgo44 uint8 } type DateTime1 = TDateTime1 @@ -13690,6 +13706,7 @@ func _getDigits(tls *libc.TLS, zDate uintptr, zFormat uintptr, va uintptr) (r in cnt++ zFormat += uintptr(4) } + goto end_getDigits end_getDigits: ; _ = ap @@ -13746,6 +13763,8 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } else { if c == int32('Z') || c == int32('z') { zDate++ + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) goto zulu_time } else { return libc.BoolInt32(c != 0) @@ -13758,12 +13777,12 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } zDate += uintptr(5) (*TDateTime)(unsafe.Pointer(p)).Ftz = sgn * (*(*int32)(unsafe.Pointer(bp + 4)) + *(*int32)(unsafe.Pointer(bp))*int32(60)) + goto zulu_time zulu_time: ; for int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zDate)))])&int32(0x01) != 0 { zDate++ } - (*TDateTime)(unsafe.Pointer(p)).FtzSet = int8(1) return libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zDate))) != 0) } @@ -13780,11 +13799,10 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var ms, rScale float64 - var v1 int32 var _ /* h at bp+0 */ int32 var _ /* m at bp+4 */ int32 var _ /* s at bp+8 */ int32 - _, _, _ = ms, rScale, v1 + _, _ = ms, rScale ms = float64(0) if _getDigits(tls, zDate, __ccgo_ts+1194, libc.VaList(bp+24, bp, bp+4)) != int32(2) { return int32(1) @@ -13810,7 +13828,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 8)) = 0 } (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) (*TDateTime)(unsafe.Pointer(p)).Fh = *(*int32)(unsafe.Pointer(bp)) (*TDateTime)(unsafe.Pointer(p)).Fm = *(*int32)(unsafe.Pointer(bp + 4)) @@ -13818,12 +13836,6 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { if _parseTimezone(tls, zDate, p) != 0 { return int32(1) } - if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { - v1 = int32(1) - } else { - v1 = 0 - } - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = int8(v1) return 0 } @@ -13834,7 +13846,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { // */ func _datetimeError(tls *libc.TLS, p uintptr) { libc.Xmemset(tls, p, 0, uint64(48)) - (*TDateTime)(unsafe.Pointer(p)).FisError = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 1, 0x2) } // C documentation @@ -13860,7 +13872,7 @@ func _computeJD(tls *libc.TLS, p uintptr) { M = int32(1) D = int32(1) } - if Y < -int32(4713) || Y > int32(9999) || (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Y < -int32(4713) || Y > int32(9999) || int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { _datetimeError(tls, p) return } @@ -13876,11 +13888,41 @@ func _computeJD(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) if (*TDateTime)(unsafe.Pointer(p)).FvalidHMS != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) += int64((*TDateTime)(unsafe.Pointer(p)).Fh*int32(3600000)+(*TDateTime)(unsafe.Pointer(p)).Fm*int32(60000)) + int64((*TDateTime)(unsafe.Pointer(p)).Fs*libc.Float64FromInt32(1000)+libc.Float64FromFloat64(0.5)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64((*TDateTime)(unsafe.Pointer(p)).Ftz * int32(60000)) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + } + } +} + +// C documentation +// +// /* +// ** Given the YYYY-MM-DD information current in p, determine if there +// ** is day-of-month overflow and set nFloor to the number of days that +// ** would need to be subtracted from the date in order to bring the +// ** date back to the end of the month. +// */ +func _computeFloor(tls *libc.TLS, p uintptr) { + if (*TDateTime)(unsafe.Pointer(p)).FD <= int32(28) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } else { + if int32(1)<<(*TDateTime)(unsafe.Pointer(p)).FM&int32(0x15aa) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } else { + if (*TDateTime)(unsafe.Pointer(p)).FM != int32(2) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = libc.BoolInt8((*TDateTime)(unsafe.Pointer(p)).FD == libc.Int32FromInt32(31)) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FY%int32(4) != 0 || (*TDateTime)(unsafe.Pointer(p)).FY%int32(100) == 0 && (*TDateTime)(unsafe.Pointer(p)).FY%int32(400) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = int8((*TDateTime)(unsafe.Pointer(p)).FD - int32(28)) + } else { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = int8((*TDateTime)(unsafe.Pointer(p)).FD - int32(29)) + } + } } } } @@ -13939,12 +13981,15 @@ func _parseYyyyMmDd(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FY = v1 (*TDateTime)(unsafe.Pointer(p)).FM = *(*int32)(unsafe.Pointer(bp + 4)) (*TDateTime)(unsafe.Pointer(p)).FD = *(*int32)(unsafe.Pointer(bp + 8)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + _computeFloor(tls, p) + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { _computeJD(tls, p) } return 0 } +/* Forward declaration */ + // C documentation // // /* @@ -13956,6 +14001,9 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) (*TDateTime)(unsafe.Pointer(p)).FiJD = _sqlite3StmtCurrentTime(tls, context) if (*TDateTime)(unsafe.Pointer(p)).FiJD > 0 { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + _clearYMD_HMS_TZ(tls, p) return 0 } else { return int32(1) @@ -13973,7 +14021,7 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) // */ func _setRawDateNumber(tls *libc.TLS, p uintptr, r float64) { (*TDateTime)(unsafe.Pointer(p)).Fs = r - (*TDateTime)(unsafe.Pointer(p)).FrawS = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 0, 0x1) if r >= float64(0) && r < float64(5.3734845e+06) { (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r*libc.Float64FromFloat64(8.64e+07) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) @@ -14016,7 +14064,7 @@ func _parseDateOrTime(tls *libc.TLS, context uintptr, zDate uintptr, p uintptr) return 0 } else { if (_sqlite3StrICmp(tls, zDate, __ccgo_ts+1222) == 0 || _sqlite3StrICmp(tls, zDate, __ccgo_ts+1229) == 0) && _sqlite3NotPureFunc(tls, context) != 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) return _setDateTimeToCurrent(tls, context, p) } } @@ -14108,7 +14156,7 @@ func _computeHMS(tls *libc.TLS, p uintptr) { day_min = day_ms / int32(60000) (*TDateTime)(unsafe.Pointer(p)).Fm = day_min % int32(60) (*TDateTime)(unsafe.Pointer(p)).Fh = day_min / int32(60) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) } @@ -14130,7 +14178,7 @@ func _computeYMD_HMS(tls *libc.TLS, p uintptr) { func _clearYMD_HMS_TZ(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 } /* @@ -14231,9 +14279,9 @@ func _toLocaltime(tls *libc.TLS, p uintptr, pCtx uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = int8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 - (*TDateTime)(unsafe.Pointer(p)).FisError = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 1, 0x2) return SQLITE_OK } @@ -14281,13 +14329,13 @@ var _aXformType = [6]struct { FnName: uint8(5), FzName: [7]int8{'m', 'o', 'n', 't', 'h'}, FrLimit: float32(176546), - FrXform: float32(2.592e+06), + FrXform: float32(libc.Float64FromFloat64(30) * libc.Float64FromFloat64(86400)), }, 5: { FnName: uint8(4), FzName: [7]int8{'y', 'e', 'a', 'r'}, FrLimit: float32(14713), - FrXform: float32(3.1536e+07), + FrXform: float32(libc.Float64FromFloat64(365) * libc.Float64FromFloat64(86400)), }, } @@ -14301,15 +14349,15 @@ var _aXformType = [6]struct { func _autoAdjustDate(tls *libc.TLS, p uintptr) { var r float64 _ = r - if !((*TDateTime)(unsafe.Pointer(p)).FrawS != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + if !(int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } else { if (*TDateTime)(unsafe.Pointer(p)).Fs >= float64(int64(-libc.Int32FromInt32(21086676))*libc.Int64FromInt32(10000)) && (*TDateTime)(unsafe.Pointer(p)).Fs <= float64(libc.Int64FromInt32(25340230)*libc.Int64FromInt32(10000)+libc.Int64FromInt32(799)) { r = (*TDateTime)(unsafe.Pointer(p)).Fs*float64(1000) + float64(2.1086676e+14) _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } } @@ -14326,14 +14374,20 @@ func _autoAdjustDate(tls *libc.TLS, p uintptr) { // ** NNN.NNNN seconds // ** NNN months // ** NNN years +// ** +/-YYYY-MM-DD HH:MM:SS.SSS +// ** ceiling +// ** floor // ** start of month // ** start of year // ** start of week // ** start of day // ** weekday N // ** unixepoch +// ** auto // ** localtime // ** utc +// ** subsec +// ** subsecond // ** // ** Return 0 on success and 1 if there is any kind of error. If the error // ** is in a system call (i.e. localtime()), then an error message is written @@ -14344,12 +14398,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, bp := tls.Alloc(160) defer tls.Free(160) var Z, day Tsqlite3_int64 - var cnt, i, rc, x, y, v12, v2, v5, v7, v9 int32 - var iErr, iGuess, iOrigJD, v1 Ti64 - var rRounder, v10 float64 + var cnt, i, rc, x, y, v1, v10, v13, v3, v6, v8 int32 + var iErr, iGuess, iOrigJD, v2 Ti64 + var rRounder, v11 float64 var z0 int8 var z2 uintptr - var v3, v6 bool + var v4, v7 bool var _ /* D at bp+64 */ int32 var _ /* M at bp+60 */ int32 var _ /* Y at bp+56 */ int32 @@ -14358,7 +14412,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, var _ /* new at bp+8 */ TDateTime var _ /* r at bp+0 */ float64 var _ /* tx at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v12, v2, v3, v5, v6, v7, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v11, v13, v2, v3, v4, v6, v7, v8 rc = int32(1) switch int32(_sqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z)))]) { case int32('a'): @@ -14375,6 +14429,33 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _autoAdjustDate(tls, p) rc = 0 } + case int32('c'): + /* + ** ceiling + ** + ** Resolve day-of-month overflow by rolling forward into the next + ** month. As this is the default action, this modifier is really + ** a no-op that is only included for symmetry. See "floor". + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1267) == 0 { + _computeJD(tls, p) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } + case int32('f'): + /* + ** floor + ** + ** Resolve day-of-month overflow by rolling back to the end of the + ** previous month. + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1275) == 0 { + _computeJD(tls, p) + *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64(int32((*TDateTime)(unsafe.Pointer(p)).FnFloor) * int32(86400000)) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + } case int32('j'): /* ** julianday @@ -14384,13 +14465,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** value in the allowed range of julian day numbers understood by ** SQLite (0..5373484.5) then the result will be NULL. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1267) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1281) == 0 { if idx > int32(1) { return int32(1) } /* IMP: R-31176-64601 */ - if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { rc = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } case int32('l'): @@ -14399,8 +14480,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Assuming the current time value is UTC (a.k.a. GMT), shift it to ** show local time. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1277) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - rc = _toLocaltime(tls, p, pCtx) + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1291) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x10>>4)) != 0 { + v1 = SQLITE_OK + } else { + v1 = _toLocaltime(tls, p, pCtx) + } + rc = v1 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 4, 0x10) } case int32('u'): /* @@ -14409,7 +14497,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Treat the current value of p->s as the number of ** seconds since 1970. Convert to a real julian day number. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1287) == 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1301) == 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { if idx > int32(1) { return int32(1) } /* IMP: R-49255-55373 */ @@ -14418,17 +14506,17 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(*(*float64)(unsafe.Pointer(bp)) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) rc = 0 } } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1297) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - if int32((*TDateTime)(unsafe.Pointer(p)).FtzSet) == 0 { /* Guess at the corresponding utc time */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1311) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x8>>3)) == 0 { /* Guess at the corresponding utc time */ cnt = 0 /* Guess is off by this much */ _computeJD(tls, p) - v1 = (*TDateTime)(unsafe.Pointer(p)).FiJD - iOrigJD = v1 - iGuess = v1 + v2 = (*TDateTime)(unsafe.Pointer(p)).FiJD + iOrigJD = v2 + iGuess = v2 iErr = 0 for { libc.Xmemset(tls, bp+8, 0, uint64(48)) @@ -14441,21 +14529,22 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, bp+8) iErr = (*(*TDateTime)(unsafe.Pointer(bp + 8))).FiJD - iOrigJD - goto _4 - _4: + goto _5 + _5: ; - if v3 = iErr != 0; v3 { - v2 = cnt + if v4 = iErr != 0; v4 { + v3 = cnt cnt++ } - if !(v3 && v2 < int32(3)) { + if !(v4 && v3 < int32(3)) { break } } libc.Xmemset(tls, p, 0, uint64(48)) (*TDateTime)(unsafe.Pointer(p)).FiJD = iGuess (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FtzSet = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) } rc = SQLITE_OK } @@ -14468,13 +14557,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** weekday N where 0==Sunday, 1==Monday, and so forth. If the ** date is already on the appropriate weekday, this is a no-op. */ - if v6 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1301, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v6 { - v5 = int32(*(*float64)(unsafe.Pointer(bp))) - n = v5 + if v7 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1315, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v7 { + v6 = int32(*(*float64)(unsafe.Pointer(bp))) + n = v6 } - if v6 && float64(v5) == *(*float64)(unsafe.Pointer(bp)) { + if v7 && float64(v6) == *(*float64)(unsafe.Pointer(bp)) { _computeYMD_HMS(tls, p) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 _computeJD(tls, p) Z = ((*TDateTime)(unsafe.Pointer(p)).FiJD + int64(129600000)) / int64(86400000) % int64(7) @@ -14498,9 +14587,9 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Show subsecond precision in the output of datetime() and ** unixepoch() and strftime('%s'). */ - if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1310, int32(9)) != 0 { + if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1324, int32(9)) != 0 { if Xsqlite3_stricmp(tls, z, __ccgo_ts+1222) == 0 || Xsqlite3_stricmp(tls, z, __ccgo_ts+1229) == 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) rc = 0 } break @@ -14511,23 +14600,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z += uintptr(9) _computeYMD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) - v7 = libc.Int32FromInt32(0) - (*TDateTime)(unsafe.Pointer(p)).Fm = v7 - (*TDateTime)(unsafe.Pointer(p)).Fh = v7 + v8 = libc.Int32FromInt32(0) + (*TDateTime)(unsafe.Pointer(p)).Fm = v8 + (*TDateTime)(unsafe.Pointer(p)).Fh = v8 (*TDateTime)(unsafe.Pointer(p)).Fs = float64(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1320) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1334) == 0 { (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1326) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1340) == 0 { (*TDateTime)(unsafe.Pointer(p)).FM = int32(1) (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1331) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1345) == 0 { rc = 0 } } @@ -14569,15 +14658,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } if int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) == int32('-') { - if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1335, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1349, libc.VaList(bp+136, bp+56)) == int32(1) { break } - if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1339, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1353, libc.VaList(bp+136, bp+56)) == int32(1) { break } } - goto _8 - _8: + goto _9 + _9: ; n++ } @@ -14593,11 +14682,11 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } /* Must start with +/- */ if n == int32(5) { - if _getDigits(tls, z+1, __ccgo_ts+1343, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1357, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } } else { - if _getDigits(tls, z+1, __ccgo_ts+1355, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1369, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } z++ @@ -14619,13 +14708,14 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, *(*int32)(unsafe.Pointer(p + 12)) += *(*int32)(unsafe.Pointer(bp + 60)) } if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v9 + x = v10 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) _computeJD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 @@ -14669,7 +14759,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z++ } n = _sqlite3Strlen30(tls, z) - if n > int32(10) || n < int32(3) { + if n < int32(3) || n > int32(10) { break } if int32(_sqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z + uintptr(n-int32(1)))))]) == int32('s') { @@ -14677,11 +14767,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, p) if *(*float64)(unsafe.Pointer(bp)) < libc.Float64FromInt32(0) { - v10 = -libc.Float64FromFloat64(0.5) + v11 = -libc.Float64FromFloat64(0.5) } else { - v10 = +libc.Float64FromFloat64(0.5) + v11 = +libc.Float64FromFloat64(0.5) } - rRounder = v10 + rRounder = v11 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 i = 0 for { if !(i < int32(libc.Uint64FromInt64(96)/libc.Uint64FromInt64(16))) { @@ -14693,19 +14784,21 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 12)) += int32(*(*float64)(unsafe.Pointer(bp))) if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v12 + x = v13 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) case int32(5): /* Special processing to add years */ y = int32(*(*float64)(unsafe.Pointer(bp))) _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 8)) += y + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) break @@ -14715,8 +14808,8 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, rc = 0 break } - goto _11 - _11: + goto _12 + _12: ; i++ } @@ -14775,7 +14868,7 @@ func _isDate(tls *libc.TLS, context uintptr, argc int32, argv uintptr, p uintptr i++ } _computeJD(tls, p) - if (*TDateTime)(unsafe.Pointer(p)).FisError != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x2>>1)) != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { return int32(1) } if argc == int32(1) && (*TDateTime)(unsafe.Pointer(p)).FvalidYMD != 0 && (*TDateTime)(unsafe.Pointer(p)).FD > int32(28) { @@ -14822,7 +14915,7 @@ func _unixepochFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _ /* x at bp+0 */ TDateTime if _isDate(tls, context, argc, argv, bp) == 0 { _computeJD(tls, bp) - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { Xsqlite3_result_double(tls, context, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000)) } else { Xsqlite3_result_int64(tls, context, (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/int64(1000)-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000)) @@ -14867,7 +14960,7 @@ func _datetimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(15)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(16)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(17)] = int8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(18)] = int8(int32('0') + s/int32(10000)%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(19)] = int8(int32('0') + s/int32(1000)%int32(10)) @@ -14915,7 +15008,7 @@ func _timeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(3)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(4)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(5)] = int8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(6)] = int8(int32('0') + s/int32(10000)%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(7)] = int8(int32('0') + s/int32(1000)%int32(10)) @@ -14976,6 +15069,57 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } +// C documentation +// +// /* +// ** Compute the number of days after the most recent January 1. +// ** +// ** In other words, compute the zero-based day number for the +// ** current year: +// ** +// ** Jan01 = 0, Jan02 = 1, ..., Jan31 = 30, Feb01 = 31, ... +// ** Dec31 = 364 or 365. +// */ +func _daysAfterJan01(tls *libc.TLS, pDate uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* jan01 at bp+0 */ TDateTime + *(*TDateTime)(unsafe.Pointer(bp)) = *(*TDateTime)(unsafe.Pointer(pDate)) + (*(*TDateTime)(unsafe.Pointer(bp))).FvalidJD = 0 + (*(*TDateTime)(unsafe.Pointer(bp))).FM = int32(1) + (*(*TDateTime)(unsafe.Pointer(bp))).FD = int32(1) + _computeJD(tls, bp) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD - (*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Monday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Monday, 1=Tuesday, 2=Wednesday, ..., 6=Sunday. +// */ +func _daysAfterMonday(tls *libc.TLS, pDate uintptr) (r int32) { + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(43200000))/libc.Int64FromInt32(86400000)) % int32(7) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Sunday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Sunday, 1=Monday, 2=Tues, ..., 6=Saturday +// */ +func _daysAfterSunday(tls *libc.TLS, pDate uintptr) (r int32) { + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)) % int32(7) +} + // C documentation // // /* @@ -14983,33 +15127,48 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { // ** // ** Return a string described by FORMAT. Conversions as follows: // ** -// ** %d day of month +// ** %d day of month 01-31 +// ** %e day of month 1-31 // ** %f ** fractional seconds SS.SSS +// ** %F ISO date. YYYY-MM-DD +// ** %G ISO year corresponding to %V 0000-9999. +// ** %g 2-digit ISO year corresponding to %V 00-99 // ** %H hour 00-24 -// ** %j day of year 000-366 +// ** %k hour 0-24 (leading zero converted to space) +// ** %I hour 01-12 +// ** %j day of year 001-366 // ** %J ** julian day number +// ** %l hour 1-12 (leading zero converted to space) // ** %m month 01-12 // ** %M minute 00-59 +// ** %p "am" or "pm" +// ** %P "AM" or "PM" +// ** %R time as HH:MM // ** %s seconds since 1970-01-01 // ** %S seconds 00-59 -// ** %w day of week 0-6 Sunday==0 -// ** %W week of year 00-53 +// ** %T time as HH:MM:SS +// ** %u day of week 1-7 Monday==1, Sunday==7 +// ** %w day of week 0-6 Sunday==0, Monday==1 +// ** %U week of year 00-53 (First Sunday is start of week 01) +// ** %V week of year 01-53 (First week containing Thursday is week 01) +// ** %W week of year 00-53 (First Monday is start of week 01) // ** %Y year 0000-9999 // ** %% % // */ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { - bp := tls.Alloc(160) - defer tls.Free(160) + bp := tls.Alloc(208) + defer tls.Free(208) var c, cf int8 var db, zFmt, v3, v4, v5, v6, v7 uintptr - var h, nDay, wd int32 + var h int32 var i, j, v2 Tsize_t var iS Ti64 var s float64 var _ /* sRes at bp+48 */ Tsqlite3_str var _ /* x at bp+0 */ TDateTime + var _ /* y at bp+128 */ TDateTime var _ /* y at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, nDay, s, wd, zFmt, v2, v3, v4, v5, v6, v7 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, s, zFmt, v2, v3, v4, v5, v6, v7 if argc == 0 { return } @@ -15042,28 +15201,41 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { fallthrough case int32('e'): if int32(cf) == int32('d') { - v3 = __ccgo_ts + 1367 + v3 = __ccgo_ts + 1381 } else { - v3 = __ccgo_ts + 1372 + v3 = __ccgo_ts + 1386 } - Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) - case int32('f'): + Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('f'): /* Fractional seconds. (Non-standard) */ s = (*(*TDateTime)(unsafe.Pointer(bp))).Fs if s > float64(59.999) { s = float64(59.999) } - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1376, libc.VaList(bp+136, s)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1390, libc.VaList(bp+184, s)) case int32('F'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1383, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1397, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('G'): /* Fall thru */ + fallthrough + case int32('g'): + *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Move y so that it is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidYMD = 0 + _computeYMD(tls, bp+80) + if int32(cf) == int32('g') { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1381, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY%int32(100))) + } else { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1412, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY)) + } case int32('H'): fallthrough case int32('k'): if int32(cf) == int32('H') { - v4 = __ccgo_ts + 1367 + v4 = __ccgo_ts + 1381 } else { - v4 = __ccgo_ts + 1372 + v4 = __ccgo_ts + 1386 } - Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) + Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) case int32('I'): /* Fall thru */ fallthrough case int32('l'): @@ -15075,73 +15247,71 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { h = int32(12) } if int32(cf) == int32('I') { - v5 = __ccgo_ts + 1367 - } else { - v5 = __ccgo_ts + 1372 - } - Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+136, h)) - case int32('W'): /* Fall thru */ - fallthrough - case int32('j'): /* Number of days since 1st day of year */ - *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidJD = 0 - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FM = int32(1) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FD = int32(1) - _computeJD(tls, bp+80) - nDay = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) - if int32(cf) == int32('W') { /* 0=Monday, 1=Tuesday, ... 6=Sunday */ - wd = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000) % libc.Int64FromInt32(7)) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1367, libc.VaList(bp+136, (nDay+int32(7)-wd)/int32(7))) + v5 = __ccgo_ts + 1381 } else { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1398, libc.VaList(bp+136, nDay+int32(1))) + v5 = __ccgo_ts + 1386 } - case int32('J'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1403, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) + Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+184, h)) + case int32('j'): /* Day of year. Jan01==1, Jan02==2, and so forth */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1417, libc.VaList(bp+184, _daysAfterJan01(tls, bp)+int32(1))) + case int32('J'): /* Julian day number. (Non-standard) */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1422, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) case int32('m'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1367, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1381, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) case int32('M'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1367, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1381, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('p'): /* Fall thru */ fallthrough case int32('P'): if (*(*TDateTime)(unsafe.Pointer(bp))).Fh >= int32(12) { if int32(cf) == int32('p') { - v6 = __ccgo_ts + 1409 + v6 = __ccgo_ts + 1428 } else { - v6 = __ccgo_ts + 1412 + v6 = __ccgo_ts + 1431 } Xsqlite3_str_append(tls, bp+48, v6, int32(2)) } else { if int32(cf) == int32('p') { - v7 = __ccgo_ts + 1415 + v7 = __ccgo_ts + 1434 } else { - v7 = __ccgo_ts + 1418 + v7 = __ccgo_ts + 1437 } Xsqlite3_str_append(tls, bp+48, v7, int32(2)) } case int32('R'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1421, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1440, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('s'): - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1431, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1450, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) } else { iS = (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/libc.Int64FromInt32(1000) - libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1436, libc.VaList(bp+136, iS)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1455, libc.VaList(bp+184, iS)) } case int32('S'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1367, libc.VaList(bp+136, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1381, libc.VaList(bp+184, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) case int32('T'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1441, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) - case int32('u'): /* Fall thru */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1460, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + case int32('u'): /* Day of week. 1 to 7. Monday==1, Sunday==7 */ fallthrough - case int32('w'): - c = int8(int32(int8(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)%libc.Int64FromInt32(7))) + int32('0')) + case int32('w'): /* Day of week. 0 to 6. Sunday==0, Monday==1 */ + c = int8(int32(int8(_daysAfterSunday(tls, bp))) + int32('0')) if int32(c) == int32('0') && int32(cf) == int32('u') { c = int8('7') } Xsqlite3_str_appendchar(tls, bp+48, int32(1), c) + case int32('U'): /* Week num. 00-53. First Sun of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1381, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterSunday(tls, bp)+int32(7))/int32(7))) + case int32('V'): /* Week num. 01-53. First week with a Thur is week 01 */ + *(*TDateTime)(unsafe.Pointer(bp + 128)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Adjust y so that is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FvalidYMD = 0 + _computeYMD(tls, bp+128) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1381, libc.VaList(bp+184, _daysAfterJan01(tls, bp+128)/int32(7)+int32(1))) + case int32('W'): /* Week num. 00-53. First Mon of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1381, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterMonday(tls, bp)+int32(7))/int32(7))) case int32('Y'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1456, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1412, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) case int32('%'): Xsqlite3_str_appendchar(tls, bp+48, int32(1), int8('%')) default: @@ -15294,12 +15464,10 @@ func _timediffFunc(tls *libc.TLS, context uintptr, NotUsed1 int32, argv uintptr) p2 = bp *(*Tsqlite3_int64)(unsafe.Pointer(p2)) = Tsqlite3_int64(uint64(*(*Tsqlite3_int64)(unsafe.Pointer(p2))) + libc.Uint64FromInt32(1486995408)*libc.Uint64FromInt32(100000)) } - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidYMD = 0 - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidHMS = 0 - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidTZ = 0 + _clearYMD_HMS_TZ(tls, bp) _computeYMD_HMS(tls, bp) _sqlite3StrAccumInit(tls, bp+96, uintptr(0), uintptr(0), 0, int32(100)) - Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1461, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) + Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1475, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) _sqlite3ResultStrAccum(tls, context, bp+96) } @@ -15332,55 +15500,55 @@ var _aDateTimeFuncs = [10]TFuncDef{ FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1267, + FzName: __ccgo_ts + 1281, }, 1: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1287, + FzName: __ccgo_ts + 1301, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1495, + FzName: __ccgo_ts + 1509, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1500, + FzName: __ccgo_ts + 1514, }, 4: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1505, + FzName: __ccgo_ts + 1519, }, 5: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1514, + FzName: __ccgo_ts + 1528, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1523, + FzName: __ccgo_ts + 1537, }, 7: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1532, + FzName: __ccgo_ts + 1546, }, 8: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1545, + FzName: __ccgo_ts + 1559, }, 9: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1563, + FzName: __ccgo_ts + 1577, }, } @@ -16051,7 +16219,7 @@ func _sqlite3MemMalloc(tls *libc.TLS, nByte int32) (r uintptr) { *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1576, libc.VaList(bp+8, nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1590, libc.VaList(bp+8, nByte)) } return p } @@ -16113,7 +16281,7 @@ func _sqlite3MemRealloc(tls *libc.TLS, pPrior uintptr, nByte int32) (r uintptr) *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1614, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1628, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) } return p } @@ -17784,7 +17952,7 @@ func _sqlite3OomFault(tls *libc.TLS, db uintptr) (r uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++ (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = uint16(0) if (*Tsqlite3)(unsafe.Pointer(db)).FpParse != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1650, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1664, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) pParse = (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).FpOuterParse for { @@ -18206,7 +18374,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li v3 = int32(*(*int8)(unsafe.Pointer(v4))) c = v3 if v3 == 0 { - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1664, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1678, int32(1)) break } /* Find out what flags are present */ @@ -18621,9 +18789,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial != 0 { if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial) == int32(2) { if flag_zeropad != 0 { - v57 = __ccgo_ts + 1666 + v57 = __ccgo_ts + 1680 } else { - v57 = __ccgo_ts + 1671 + v57 = __ccgo_ts + 1685 } bufpt = v57 length = _sqlite3Strlen30(tls, bufpt) @@ -18634,7 +18802,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP = int32(1000) (*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fn = int32(1) } else { - libc.Xmemcpy(tls, bp, __ccgo_ts+1675, uint64(5)) + libc.Xmemcpy(tls, bp, __ccgo_ts+1689, uint64(5)) bufpt = bp if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fsign) == int32('-') { /* no-op */ @@ -18656,14 +18824,12 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li prefix = int8(flag_prefix) } exp = (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP - int32(1) - if int32(xtype) == int32(etGENERIC) && precision > 0 { - precision-- - } /* ** If the field type is etGENERIC, then convert to either etEXP ** or etFLOAT, as appropriate. */ if int32(xtype) == int32(etGENERIC) { + precision-- flag_rtz = libc.BoolUint8(!(flag_alternateform != 0)) if exp < -int32(4) || exp > precision { xtype = uint8(etEXP) @@ -18969,7 +19135,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li bufpt = libc.VaUintptr(&ap) } if bufpt == uintptr(0) { - bufpt = __ccgo_ts + 1680 + bufpt = __ccgo_ts + 1694 } else { if int32(xtype) == int32(etDYNSTRING) { if (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnChar == uint32(0) && (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FmxAlloc != 0 && width == 0 && precision < 0 && int32((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FaccError) == 0 { @@ -19022,6 +19188,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } else { length = int32(0x7fffffff) & int32(libc.Xstrlen(tls, bufpt)) } + goto adjust_width_for_utf8 adjust_width_for_utf8: ; if flag_altform2 != 0 && width > 0 { @@ -19056,9 +19223,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li isnull = libc.BoolInt32(escarg == uintptr(0)) if isnull != 0 { if int32(xtype) == int32(etSQLESCAPE2) { - v98 = __ccgo_ts + 1681 + v98 = __ccgo_ts + 1695 } else { - v98 = __ccgo_ts + 1686 + v98 = __ccgo_ts + 1700 } escarg = v98 } @@ -19176,7 +19343,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*TSrcItem)(unsafe.Pointer(pItem)).FzName != 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1693, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1707, int32(1)) } Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzName) } else { @@ -19184,10 +19351,15 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzAlias) } else { pSel = (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect + /* Because of tag-20240424-1 */ if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_NestedFrom) != 0 { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1695, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1709, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) } else { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1705, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_MultiValue) != 0 { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1719, libc.VaList(bp+128, *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pItem)).Fu1)))) + } else { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1740, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + } } } } @@ -19466,7 +19638,7 @@ func _sqlite3ResultStrAccum(tls *libc.TLS, pCtx uintptr, p uintptr) { if int32((*TStrAccum)(unsafe.Pointer(p)).FprintfFlags)&int32(SQLITE_PRINTF_MALLOCED) != 0 { Xsqlite3_result_text(tls, pCtx, (*TStrAccum)(unsafe.Pointer(p)).FzText, int32((*TStrAccum)(unsafe.Pointer(p)).FnChar), __ccgo_fp(_sqlite3OomClear)) } else { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1680, 0, libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1694, 0, libc.UintptrFromInt32(0)) Xsqlite3_str_reset(tls, p) } } @@ -20779,6 +20951,7 @@ func _sqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc Tu8) (r in (*TMem)(unsafe.Pointer(pMem)).Fz = zOut (*TMem)(unsafe.Pointer(pMem)).FzMalloc = (*TMem)(unsafe.Pointer(pMem)).Fz (*TMem)(unsafe.Pointer(pMem)).FszMalloc = _sqlite3DbMallocSize(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).Fz) + goto translate_out translate_out: ; return SQLITE_OK @@ -21295,6 +21468,60 @@ func _sqlite3DequoteExpr(tls *libc.TLS, p uintptr) { _sqlite3Dequote(tls, *(*uintptr)(unsafe.Pointer(p + 8))) } +// C documentation +// +// /* +// ** Expression p is a QNUMBER (quoted number). Dequote the value in p->u.zToken +// ** and set the type to INTEGER or FLOAT. "Quoted" integers or floats are those +// ** that contain '_' characters that must be removed before further processing. +// */ +func _sqlite3DequoteNumber(tls *libc.TLS, pParse uintptr, p uintptr) { + bp := tls.Alloc(32) + defer tls.Free(32) + var bHex int32 + var pIn, pOut, v1, v3 uintptr + var _ /* iValue at bp+0 */ int32 + _, _, _, _, _ = bHex, pIn, pOut, v1, v3 + if p != 0 { + pIn = *(*uintptr)(unsafe.Pointer(p + 8)) + pOut = *(*uintptr)(unsafe.Pointer(p + 8)) + bHex = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(pIn))) == int32('0') && (int32(*(*int8)(unsafe.Pointer(pIn + 1))) == int32('x') || int32(*(*int8)(unsafe.Pointer(pIn + 1))) == int32('X'))) + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + for { + if int32(*(*int8)(unsafe.Pointer(pIn))) != int32('_') { + v3 = pOut + pOut++ + *(*int8)(unsafe.Pointer(v3)) = *(*int8)(unsafe.Pointer(pIn)) + if int32(*(*int8)(unsafe.Pointer(pIn))) == int32('e') || int32(*(*int8)(unsafe.Pointer(pIn))) == int32('E') || int32(*(*int8)(unsafe.Pointer(pIn))) == int32('.') { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_FLOAT) + } + } else { + if bHex == 0 && (!(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1)))))])&libc.Int32FromInt32(0x04) != 0) || !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + 1)))])&libc.Int32FromInt32(0x04) != 0)) || bHex == int32(1) && (!(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1)))))])&libc.Int32FromInt32(0x08) != 0) || !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + 1)))])&libc.Int32FromInt32(0x08) != 0)) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1754, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(p + 8)))) + } + } + goto _2 + _2: + ; + v1 = pIn + pIn++ + if !(*(*int8)(unsafe.Pointer(v1)) != 0) { + break + } + } + if bHex != 0 { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + } + /* tag-20240227-a: If after dequoting, the number is an integer that + ** fits in 32 bits, then it must be converted into EP_IntValue. Other + ** parts of the code expect this. See also tag-20240227-b. */ + if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_INTEGER) && _sqlite3GetInt32(tls, *(*uintptr)(unsafe.Pointer(p + 8)), bp) != 0 { + *(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(p)).Fu)) = *(*int32)(unsafe.Pointer(bp)) + *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(EP_IntValue) + } + } +} + // C documentation // // /* @@ -21654,6 +21881,7 @@ func _sqlite3AtoF(tls *libc.TLS, z uintptr, pResult uintptr, length int32, enc T for z < zEnd && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z)))])&int32(0x01) != 0 { z += uintptr(incr) } + goto do_atof_calc do_atof_calc: ; /* Zero is a special case */ @@ -21759,6 +21987,7 @@ do_atof_calc: if sign < 0 { *(*float64)(unsafe.Pointer(pResult)) = -*(*float64)(unsafe.Pointer(pResult)) } + goto atof_return atof_return: ; /* return true if number and no extra non-whitespace characters after */ @@ -21843,7 +22072,7 @@ func _compare2pow63(tls *libc.TLS, zNum uintptr, incr int32) (r int32) { _, _, _ = c, i, pow63 c = 0 /* 012345678901234567 */ - pow63 = __ccgo_ts + 1719 + pow63 = __ccgo_ts + 1779 i = 0 for { if !(c == 0 && i < int32(18)) { @@ -22070,7 +22299,7 @@ func _sqlite3DecOrHexToI64(tls *libc.TLS, z uintptr, pOut uintptr) (r int32) { } return 0 } else { - n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1738)) + n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1798)) if *(*int8)(unsafe.Pointer(z + uintptr(n))) != 0 { n++ } @@ -22228,7 +22457,7 @@ func _sqlite3FpDecode(tls *libc.TLS, p uintptr, _r float64, iRound int32, mxRoun (*TFpDecode)(unsafe.Pointer(p)).Fsign = int8('+') (*TFpDecode)(unsafe.Pointer(p)).Fn = int32(1) (*TFpDecode)(unsafe.Pointer(p)).FiDP = int32(1) - (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1754 + (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1814 return } else { (*TFpDecode)(unsafe.Pointer(p)).Fsign = int8('+') @@ -22777,7 +23006,7 @@ func _sqlite3HexToBlob(tls *libc.TLS, db uintptr, z uintptr, n int32) (r uintptr func _logBadConnection(tls *libc.TLS, zType uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1756, libc.VaList(bp+8, zType)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1816, libc.VaList(bp+8, zType)) } // C documentation @@ -22800,13 +23029,13 @@ func _sqlite3SafetyCheckOk(tls *libc.TLS, db uintptr) (r int32) { var eOpenState Tu8 _ = eOpenState if db == uintptr(0) { - _logBadConnection(tls, __ccgo_ts+1681) + _logBadConnection(tls, __ccgo_ts+1695) return 0 } eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_OPEN) { if _sqlite3SafetyCheckSickOrOk(tls, db) != 0 { - _logBadConnection(tls, __ccgo_ts+1801) + _logBadConnection(tls, __ccgo_ts+1861) } return 0 } else { @@ -22820,7 +23049,7 @@ func _sqlite3SafetyCheckSickOrOk(tls *libc.TLS, db uintptr) (r int32) { _ = eOpenState eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_SICK) && int32(eOpenState) != int32(SQLITE_STATE_OPEN) && int32(eOpenState) != int32(SQLITE_STATE_BUSY) { - _logBadConnection(tls, __ccgo_ts+1810) + _logBadConnection(tls, __ccgo_ts+1870) return 0 } else { return int32(1) @@ -23466,196 +23695,196 @@ func _sqlite3OpcodeName(tls *libc.TLS, i int32) (r uintptr) { } var _azName = [190]uintptr{ - 0: __ccgo_ts + 1818, - 1: __ccgo_ts + 1828, - 2: __ccgo_ts + 1839, - 3: __ccgo_ts + 1851, - 4: __ccgo_ts + 1862, - 5: __ccgo_ts + 1874, - 6: __ccgo_ts + 1881, - 7: __ccgo_ts + 1889, - 8: __ccgo_ts + 1897, - 9: __ccgo_ts + 1902, - 10: __ccgo_ts + 1907, - 11: __ccgo_ts + 1913, - 12: __ccgo_ts + 1927, - 13: __ccgo_ts + 1933, - 14: __ccgo_ts + 1943, - 15: __ccgo_ts + 1948, - 16: __ccgo_ts + 1953, - 17: __ccgo_ts + 1956, - 18: __ccgo_ts + 1962, - 19: __ccgo_ts + 1969, - 20: __ccgo_ts + 1973, - 21: __ccgo_ts + 1983, - 22: __ccgo_ts + 1990, - 23: __ccgo_ts + 1997, - 24: __ccgo_ts + 2004, - 25: __ccgo_ts + 2011, - 26: __ccgo_ts + 2021, - 27: __ccgo_ts + 2030, - 28: __ccgo_ts + 2041, - 29: __ccgo_ts + 2050, - 30: __ccgo_ts + 2056, - 31: __ccgo_ts + 2066, - 32: __ccgo_ts + 2076, - 33: __ccgo_ts + 2081, - 34: __ccgo_ts + 2091, - 35: __ccgo_ts + 2102, - 36: __ccgo_ts + 2107, - 37: __ccgo_ts + 2114, - 38: __ccgo_ts + 2125, - 39: __ccgo_ts + 2130, - 40: __ccgo_ts + 2135, - 41: __ccgo_ts + 2141, - 42: __ccgo_ts + 2147, - 43: __ccgo_ts + 2153, - 44: __ccgo_ts + 2156, - 45: __ccgo_ts + 2160, - 46: __ccgo_ts + 2166, - 47: __ccgo_ts + 2177, - 48: __ccgo_ts + 2188, - 49: __ccgo_ts + 2196, - 50: __ccgo_ts + 2205, - 51: __ccgo_ts + 2212, - 52: __ccgo_ts + 2220, - 53: __ccgo_ts + 2223, - 54: __ccgo_ts + 2226, - 55: __ccgo_ts + 2229, - 56: __ccgo_ts + 2232, - 57: __ccgo_ts + 2235, - 58: __ccgo_ts + 2238, - 59: __ccgo_ts + 2245, - 60: __ccgo_ts + 2251, - 61: __ccgo_ts + 2261, - 62: __ccgo_ts + 2274, - 63: __ccgo_ts + 2285, - 64: __ccgo_ts + 2291, - 65: __ccgo_ts + 2298, - 66: __ccgo_ts + 2307, - 67: __ccgo_ts + 2316, - 68: __ccgo_ts + 2323, - 69: __ccgo_ts + 2336, - 70: __ccgo_ts + 2347, - 71: __ccgo_ts + 2352, - 72: __ccgo_ts + 2360, - 73: __ccgo_ts + 2366, - 74: __ccgo_ts + 2373, - 75: __ccgo_ts + 2385, - 76: __ccgo_ts + 2390, - 77: __ccgo_ts + 2399, - 78: __ccgo_ts + 2404, - 79: __ccgo_ts + 2413, - 80: __ccgo_ts + 2418, - 81: __ccgo_ts + 2423, - 82: __ccgo_ts + 2429, - 83: __ccgo_ts + 2437, - 84: __ccgo_ts + 2445, - 85: __ccgo_ts + 2455, - 86: __ccgo_ts + 2463, - 87: __ccgo_ts + 2470, - 88: __ccgo_ts + 2483, - 89: __ccgo_ts + 2488, - 90: __ccgo_ts + 2500, - 91: __ccgo_ts + 2508, - 92: __ccgo_ts + 2515, - 93: __ccgo_ts + 2526, - 94: __ccgo_ts + 2533, - 95: __ccgo_ts + 2540, - 96: __ccgo_ts + 2550, - 97: __ccgo_ts + 2559, - 98: __ccgo_ts + 2570, - 99: __ccgo_ts + 2576, - 100: __ccgo_ts + 2587, - 101: __ccgo_ts + 2597, - 102: __ccgo_ts + 2607, - 103: __ccgo_ts + 2614, - 104: __ccgo_ts + 2620, - 105: __ccgo_ts + 2630, - 106: __ccgo_ts + 2641, - 107: __ccgo_ts + 2645, - 108: __ccgo_ts + 2654, - 109: __ccgo_ts + 2663, - 110: __ccgo_ts + 2670, - 111: __ccgo_ts + 2680, - 112: __ccgo_ts + 2687, - 113: __ccgo_ts + 2696, - 114: __ccgo_ts + 2706, - 115: __ccgo_ts + 2713, - 116: __ccgo_ts + 2721, - 117: __ccgo_ts + 2735, - 118: __ccgo_ts + 2743, - 119: __ccgo_ts + 2757, - 120: __ccgo_ts + 2768, - 121: __ccgo_ts + 2781, - 122: __ccgo_ts + 2792, - 123: __ccgo_ts + 2798, - 124: __ccgo_ts + 2810, - 125: __ccgo_ts + 2819, - 126: __ccgo_ts + 2827, - 127: __ccgo_ts + 2836, - 128: __ccgo_ts + 2845, - 129: __ccgo_ts + 2852, - 130: __ccgo_ts + 2860, - 131: __ccgo_ts + 2867, - 132: __ccgo_ts + 2878, - 133: __ccgo_ts + 2892, - 134: __ccgo_ts + 2903, - 135: __ccgo_ts + 2911, - 136: __ccgo_ts + 2917, - 137: __ccgo_ts + 2925, - 138: __ccgo_ts + 2933, - 139: __ccgo_ts + 2943, - 140: __ccgo_ts + 2956, - 141: __ccgo_ts + 2966, - 142: __ccgo_ts + 2979, - 143: __ccgo_ts + 2988, - 144: __ccgo_ts + 2999, - 145: __ccgo_ts + 3007, - 146: __ccgo_ts + 3013, - 147: __ccgo_ts + 3025, - 148: __ccgo_ts + 3037, - 149: __ccgo_ts + 3045, - 150: __ccgo_ts + 3057, - 151: __ccgo_ts + 3070, - 152: __ccgo_ts + 3080, - 153: __ccgo_ts + 3090, - 154: __ccgo_ts + 3095, - 155: __ccgo_ts + 3107, - 156: __ccgo_ts + 3119, - 157: __ccgo_ts + 3129, - 158: __ccgo_ts + 3135, - 159: __ccgo_ts + 3145, - 160: __ccgo_ts + 3152, - 161: __ccgo_ts + 3164, - 162: __ccgo_ts + 3175, - 163: __ccgo_ts + 3183, - 164: __ccgo_ts + 3192, - 165: __ccgo_ts + 3201, - 166: __ccgo_ts + 3210, - 167: __ccgo_ts + 3217, - 168: __ccgo_ts + 3228, - 169: __ccgo_ts + 3241, - 170: __ccgo_ts + 3251, - 171: __ccgo_ts + 3258, - 172: __ccgo_ts + 3266, - 173: __ccgo_ts + 3275, - 174: __ccgo_ts + 3281, - 175: __ccgo_ts + 3288, - 176: __ccgo_ts + 3296, - 177: __ccgo_ts + 3304, - 178: __ccgo_ts + 3312, - 179: __ccgo_ts + 3322, - 180: __ccgo_ts + 3331, - 181: __ccgo_ts + 3342, - 182: __ccgo_ts + 3353, - 183: __ccgo_ts + 3364, - 184: __ccgo_ts + 3374, - 185: __ccgo_ts + 3380, - 186: __ccgo_ts + 3391, - 187: __ccgo_ts + 3402, - 188: __ccgo_ts + 3407, - 189: __ccgo_ts + 3415, + 0: __ccgo_ts + 1878, + 1: __ccgo_ts + 1888, + 2: __ccgo_ts + 1899, + 3: __ccgo_ts + 1911, + 4: __ccgo_ts + 1922, + 5: __ccgo_ts + 1934, + 6: __ccgo_ts + 1941, + 7: __ccgo_ts + 1949, + 8: __ccgo_ts + 1957, + 9: __ccgo_ts + 1962, + 10: __ccgo_ts + 1967, + 11: __ccgo_ts + 1973, + 12: __ccgo_ts + 1987, + 13: __ccgo_ts + 1993, + 14: __ccgo_ts + 2003, + 15: __ccgo_ts + 2008, + 16: __ccgo_ts + 2013, + 17: __ccgo_ts + 2016, + 18: __ccgo_ts + 2022, + 19: __ccgo_ts + 2029, + 20: __ccgo_ts + 2033, + 21: __ccgo_ts + 2043, + 22: __ccgo_ts + 2050, + 23: __ccgo_ts + 2057, + 24: __ccgo_ts + 2064, + 25: __ccgo_ts + 2071, + 26: __ccgo_ts + 2081, + 27: __ccgo_ts + 2090, + 28: __ccgo_ts + 2101, + 29: __ccgo_ts + 2110, + 30: __ccgo_ts + 2116, + 31: __ccgo_ts + 2126, + 32: __ccgo_ts + 2136, + 33: __ccgo_ts + 2141, + 34: __ccgo_ts + 2155, + 35: __ccgo_ts + 2166, + 36: __ccgo_ts + 2171, + 37: __ccgo_ts + 2178, + 38: __ccgo_ts + 2189, + 39: __ccgo_ts + 2194, + 40: __ccgo_ts + 2199, + 41: __ccgo_ts + 2205, + 42: __ccgo_ts + 2211, + 43: __ccgo_ts + 2217, + 44: __ccgo_ts + 2220, + 45: __ccgo_ts + 2224, + 46: __ccgo_ts + 2230, + 47: __ccgo_ts + 2241, + 48: __ccgo_ts + 2252, + 49: __ccgo_ts + 2260, + 50: __ccgo_ts + 2269, + 51: __ccgo_ts + 2276, + 52: __ccgo_ts + 2284, + 53: __ccgo_ts + 2287, + 54: __ccgo_ts + 2290, + 55: __ccgo_ts + 2293, + 56: __ccgo_ts + 2296, + 57: __ccgo_ts + 2299, + 58: __ccgo_ts + 2302, + 59: __ccgo_ts + 2309, + 60: __ccgo_ts + 2315, + 61: __ccgo_ts + 2325, + 62: __ccgo_ts + 2338, + 63: __ccgo_ts + 2349, + 64: __ccgo_ts + 2355, + 65: __ccgo_ts + 2362, + 66: __ccgo_ts + 2371, + 67: __ccgo_ts + 2380, + 68: __ccgo_ts + 2387, + 69: __ccgo_ts + 2400, + 70: __ccgo_ts + 2411, + 71: __ccgo_ts + 2416, + 72: __ccgo_ts + 2424, + 73: __ccgo_ts + 2430, + 74: __ccgo_ts + 2437, + 75: __ccgo_ts + 2449, + 76: __ccgo_ts + 2454, + 77: __ccgo_ts + 2463, + 78: __ccgo_ts + 2468, + 79: __ccgo_ts + 2477, + 80: __ccgo_ts + 2482, + 81: __ccgo_ts + 2487, + 82: __ccgo_ts + 2493, + 83: __ccgo_ts + 2501, + 84: __ccgo_ts + 2509, + 85: __ccgo_ts + 2519, + 86: __ccgo_ts + 2527, + 87: __ccgo_ts + 2534, + 88: __ccgo_ts + 2547, + 89: __ccgo_ts + 2552, + 90: __ccgo_ts + 2564, + 91: __ccgo_ts + 2572, + 92: __ccgo_ts + 2579, + 93: __ccgo_ts + 2590, + 94: __ccgo_ts + 2597, + 95: __ccgo_ts + 2604, + 96: __ccgo_ts + 2614, + 97: __ccgo_ts + 2623, + 98: __ccgo_ts + 2634, + 99: __ccgo_ts + 2640, + 100: __ccgo_ts + 2651, + 101: __ccgo_ts + 2661, + 102: __ccgo_ts + 2671, + 103: __ccgo_ts + 2678, + 104: __ccgo_ts + 2684, + 105: __ccgo_ts + 2694, + 106: __ccgo_ts + 2705, + 107: __ccgo_ts + 2709, + 108: __ccgo_ts + 2718, + 109: __ccgo_ts + 2727, + 110: __ccgo_ts + 2734, + 111: __ccgo_ts + 2744, + 112: __ccgo_ts + 2751, + 113: __ccgo_ts + 2760, + 114: __ccgo_ts + 2770, + 115: __ccgo_ts + 2777, + 116: __ccgo_ts + 2785, + 117: __ccgo_ts + 2799, + 118: __ccgo_ts + 2807, + 119: __ccgo_ts + 2821, + 120: __ccgo_ts + 2832, + 121: __ccgo_ts + 2845, + 122: __ccgo_ts + 2856, + 123: __ccgo_ts + 2862, + 124: __ccgo_ts + 2874, + 125: __ccgo_ts + 2883, + 126: __ccgo_ts + 2891, + 127: __ccgo_ts + 2900, + 128: __ccgo_ts + 2909, + 129: __ccgo_ts + 2916, + 130: __ccgo_ts + 2924, + 131: __ccgo_ts + 2931, + 132: __ccgo_ts + 2942, + 133: __ccgo_ts + 2956, + 134: __ccgo_ts + 2967, + 135: __ccgo_ts + 2975, + 136: __ccgo_ts + 2981, + 137: __ccgo_ts + 2989, + 138: __ccgo_ts + 2997, + 139: __ccgo_ts + 3007, + 140: __ccgo_ts + 3020, + 141: __ccgo_ts + 3030, + 142: __ccgo_ts + 3043, + 143: __ccgo_ts + 3052, + 144: __ccgo_ts + 3063, + 145: __ccgo_ts + 3071, + 146: __ccgo_ts + 3077, + 147: __ccgo_ts + 3089, + 148: __ccgo_ts + 3101, + 149: __ccgo_ts + 3109, + 150: __ccgo_ts + 3121, + 151: __ccgo_ts + 3134, + 152: __ccgo_ts + 3144, + 153: __ccgo_ts + 3154, + 154: __ccgo_ts + 3159, + 155: __ccgo_ts + 3171, + 156: __ccgo_ts + 3183, + 157: __ccgo_ts + 3193, + 158: __ccgo_ts + 3199, + 159: __ccgo_ts + 3209, + 160: __ccgo_ts + 3216, + 161: __ccgo_ts + 3228, + 162: __ccgo_ts + 3239, + 163: __ccgo_ts + 3247, + 164: __ccgo_ts + 3256, + 165: __ccgo_ts + 3265, + 166: __ccgo_ts + 3274, + 167: __ccgo_ts + 3281, + 168: __ccgo_ts + 3292, + 169: __ccgo_ts + 3305, + 170: __ccgo_ts + 3315, + 171: __ccgo_ts + 3322, + 172: __ccgo_ts + 3330, + 173: __ccgo_ts + 3339, + 174: __ccgo_ts + 3345, + 175: __ccgo_ts + 3352, + 176: __ccgo_ts + 3360, + 177: __ccgo_ts + 3368, + 178: __ccgo_ts + 3376, + 179: __ccgo_ts + 3386, + 180: __ccgo_ts + 3395, + 181: __ccgo_ts + 3406, + 182: __ccgo_ts + 3417, + 183: __ccgo_ts + 3428, + 184: __ccgo_ts + 3438, + 185: __ccgo_ts + 3444, + 186: __ccgo_ts + 3455, + 187: __ccgo_ts + 3466, + 188: __ccgo_ts + 3471, + 189: __ccgo_ts + 3479, } type Tnlink_t = uint32 @@ -24192,91 +24421,91 @@ type unix_syscall = Tunix_syscall // */ var _aSyscall = [29]Tunix_syscall{ 0: { - FzName: __ccgo_ts + 3425, + FzName: __ccgo_ts + 3489, }, 1: { - FzName: __ccgo_ts + 3430, + FzName: __ccgo_ts + 3494, }, 2: { - FzName: __ccgo_ts + 3436, + FzName: __ccgo_ts + 3500, }, 3: { - FzName: __ccgo_ts + 3443, + FzName: __ccgo_ts + 3507, }, 4: { - FzName: __ccgo_ts + 3450, + FzName: __ccgo_ts + 3514, }, 5: { - FzName: __ccgo_ts + 3455, + FzName: __ccgo_ts + 3519, }, 6: { - FzName: __ccgo_ts + 3461, + FzName: __ccgo_ts + 3525, }, 7: { - FzName: __ccgo_ts + 3471, + FzName: __ccgo_ts + 3535, }, 8: { - FzName: __ccgo_ts + 3477, + FzName: __ccgo_ts + 3541, }, 9: { - FzName: __ccgo_ts + 3482, + FzName: __ccgo_ts + 3546, }, 10: { - FzName: __ccgo_ts + 3488, + FzName: __ccgo_ts + 3552, }, 11: { - FzName: __ccgo_ts + 3496, + FzName: __ccgo_ts + 3560, }, 12: { - FzName: __ccgo_ts + 3502, + FzName: __ccgo_ts + 3566, }, 13: { - FzName: __ccgo_ts + 3509, + FzName: __ccgo_ts + 3573, }, 14: { - FzName: __ccgo_ts + 3518, + FzName: __ccgo_ts + 3582, }, 15: { - FzName: __ccgo_ts + 3525, + FzName: __ccgo_ts + 3589, }, 16: { - FzName: __ccgo_ts + 3535, + FzName: __ccgo_ts + 3599, }, 17: { - FzName: __ccgo_ts + 3542, + FzName: __ccgo_ts + 3606, }, 18: { - FzName: __ccgo_ts + 3556, + FzName: __ccgo_ts + 3620, }, 19: { - FzName: __ccgo_ts + 3562, + FzName: __ccgo_ts + 3626, }, 20: { - FzName: __ccgo_ts + 3568, + FzName: __ccgo_ts + 3632, }, 21: { - FzName: __ccgo_ts + 3575, + FzName: __ccgo_ts + 3639, }, 22: { - FzName: __ccgo_ts + 3583, + FzName: __ccgo_ts + 3647, }, 23: { - FzName: __ccgo_ts + 3588, + FzName: __ccgo_ts + 3652, }, 24: { - FzName: __ccgo_ts + 3595, + FzName: __ccgo_ts + 3659, }, 25: { - FzName: __ccgo_ts + 3602, + FzName: __ccgo_ts + 3666, }, 26: { - FzName: __ccgo_ts + 3614, + FzName: __ccgo_ts + 3678, }, 27: { - FzName: __ccgo_ts + 3623, + FzName: __ccgo_ts + 3687, }, 28: { - FzName: __ccgo_ts + 3629, + FzName: __ccgo_ts + 3693, }, } @@ -24515,9 +24744,9 @@ func _robust_open(tls *libc.TLS, z uintptr, f int32, m Tmode_t) (r int32) { (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(16)].FpCurrent})))(tls, z) } (*(*func(*libc.TLS, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(1)].FpCurrent})))(tls, fd) - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3635, libc.VaList(bp+136, z, fd)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3699, libc.VaList(bp+136, z, fd)) fd = -int32(1) - if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3678, O_RDONLY, int32(m)) < 0 { + if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3742, O_RDONLY, int32(m)) < 0 { break } } @@ -24833,11 +25062,11 @@ func _unixLogErrorAtLine(tls *libc.TLS, errcode int32, zFunc uintptr, zPath uint ** equivalent to errno. Otherwise, use strerror_r(). */ /* This is a threadsafe build, but strerror_r() is not available. */ - zErr = __ccgo_ts + 1680 + zErr = __ccgo_ts + 1694 if zPath == uintptr(0) { - zPath = __ccgo_ts + 1680 + zPath = __ccgo_ts + 1694 } - Xsqlite3_log(tls, errcode, __ccgo_ts+3688, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) + Xsqlite3_log(tls, errcode, __ccgo_ts+3752, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) return errcode } @@ -24865,7 +25094,7 @@ func _robust_close(tls *libc.TLS, pFile uintptr, h int32, lineno int32) { } else { v1 = uintptr(0) } - _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(16)< uint32(1) { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3772, libc.VaList(bp+136, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3836, libc.VaList(bp+136, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } if _fileHasMoved(tls, pFile) != 0 { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3799, libc.VaList(bp+136, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3863, libc.VaList(bp+136, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } } @@ -25358,6 +25587,7 @@ func _unixLock(tls *libc.TLS, id uintptr, eFileLock int32) (r int32) { (*TunixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock) (*TunixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(eFileLock) } + goto end_lock end_lock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -25481,6 +25711,7 @@ func _posixUnlock(tls *libc.TLS, id uintptr, eFileLock int32, handleNFSUnlock in _closePendingFds(tls, pFile) } } + goto end_unlock end_unlock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -25521,7 +25752,7 @@ func _closeUnixFile(tls *libc.TLS, id uintptr) (r int32) { pFile = id _unixUnmapfile(tls, pFile) if (*TunixFile)(unsafe.Pointer(pFile)).Fh >= 0 { - _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40172)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40505)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -26129,7 +26360,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { var _ /* zDirname at bp+0 */ [513]int8 _, _ = fd, ii fd = -int32(1) - Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3827, libc.VaList(bp+528, zFilename)) + Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3891, libc.VaList(bp+528, zFilename)) ii = int32(libc.Xstrlen(tls, bp)) for { if !(ii > 0 && int32((*(*[513]int8)(unsafe.Pointer(bp)))[ii]) != int32('/')) { @@ -26155,7 +26386,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(41778)), __ccgo_ts+3542, bp, int32(41778)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42111)), __ccgo_ts+3606, bp, int32(42111)) } // C documentation @@ -26192,7 +26423,7 @@ func _unixSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { rc = _full_fsync(tls, (*TunixFile)(unsafe.Pointer(pFile)).Fh, isFullsync, isDataOnly) if rc != 0 { _storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))) - return _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(4)<= nSize { iWrite = nSize - int64(1) } - nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1680, int32(1)) + nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1694, int32(1)) if nWrite != int32(1) { return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(3)<= 0 { - _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42583)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42916)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -26798,7 +27029,7 @@ func _unixLockSharedMemory(tls *libc.TLS, pDbFd uintptr, pShmNode uintptr) (r in ** help detect if a -shm file truncation is legitimate or is the work ** or a rogue process. */ if rc == SQLITE_OK && _robust_ftruncate(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(3)) != 0 { - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(18)< iRegion { @@ -27365,7 +27598,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { var pNew, pOrig, pReq, zErr uintptr var v1 Tsqlite3_int64 _, _, _, _, _, _, _, _, _ = flags, h, nOrig, nReuse, pNew, pOrig, pReq, zErr, v1 - zErr = __ccgo_ts + 3583 + zErr = __ccgo_ts + 3647 h = (*TunixFile)(unsafe.Pointer(pFd)).Fh /* File descriptor open on db file */ pOrig = (*TunixFile)(unsafe.Pointer(pFd)).FpMapRegion /* Pointer to current file mapping */ nOrig = (*TunixFile)(unsafe.Pointer(pFd)).FmmapSizeActual /* Size of pOrig region in bytes */ @@ -27379,7 +27612,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { (*(*func(*libc.TLS, uintptr, Tsize_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, pReq, uint64(nOrig-nReuse)) } pNew = (*(*func(*libc.TLS, uintptr, Tsize_t, Tsize_t, int32, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(24)].FpCurrent})))(tls, pOrig, uint64(nReuse), uint64(nNew), int32(MREMAP_MAYMOVE), 0) - zErr = __ccgo_ts + 3595 + zErr = __ccgo_ts + 3659 /* The attempt to extend the existing mapping failed. Free it. */ if pNew == uintptr(-libc.Int32FromInt32(1)) || pNew == uintptr(0) { (*(*func(*libc.TLS, uintptr, Tsize_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, pOrig, uint64(nReuse)) @@ -27392,7 +27625,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { if pNew == uintptr(-libc.Int32FromInt32(1)) { pNew = uintptr(0) nNew = 0 - _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43401)) + _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43734)) /* If the mmap() above failed, assume that all subsequent mmap() calls ** will probably fail too. Fall back to using xRead/xWrite exclusively ** in this case. */ @@ -27728,11 +27961,11 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam } else { v1 = uintptr(0) } - if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3861, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { + if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3925, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { p2 = pNew + 30 *(*uint16)(unsafe.Pointer(p2)) = uint16(int32(*(*uint16)(unsafe.Pointer(p2))) | libc.Int32FromInt32(UNIXFILE_PSOW)) } - if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3866) == 0 { + if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3930) == 0 { p3 = pNew + 30 *(*uint16)(unsafe.Pointer(p3)) = uint16(int32(*(*uint16)(unsafe.Pointer(p3))) | libc.Int32FromInt32(UNIXFILE_EXCL)) } @@ -27763,7 +27996,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam ** implicit assumption here is that if fstat() fails, things are in ** such bad shape that dropping a lock or two doesn't matter much. */ - _robust_close(tls, pNew, h, int32(43909)) + _robust_close(tls, pNew, h, int32(44242)) h = -int32(1) } _unixLeaveMutex(tls) @@ -27774,7 +28007,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam if zLockFile == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3876, libc.VaList(bp+8, zFilename)) + Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3940, libc.VaList(bp+8, zFilename)) } (*TunixFile)(unsafe.Pointer(pNew)).FlockingContext = zLockFile } @@ -27782,7 +28015,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam _storeLastErrno(tls, pNew, 0) if rc != SQLITE_OK { if h >= 0 { - _robust_close(tls, pNew, h, int32(43994)) + _robust_close(tls, pNew, h, int32(44327)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -27797,10 +28030,10 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam // ** Directories to consider for temp files. // */ var _azTempDirs = [6]uintptr{ - 2: __ccgo_ts + 3884, - 3: __ccgo_ts + 3893, - 4: __ccgo_ts + 3902, - 5: __ccgo_ts + 1693, + 2: __ccgo_ts + 3948, + 3: __ccgo_ts + 3957, + 4: __ccgo_ts + 3966, + 5: __ccgo_ts + 1707, } // C documentation @@ -27809,8 +28042,8 @@ var _azTempDirs = [6]uintptr{ // ** Initialize first two members of azTempDirs[] array. // */ func _unixTempFileInit(tls *libc.TLS) { - _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3907) - _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3921) + _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3971) + _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3985) } // C documentation @@ -27872,7 +28105,7 @@ func _unixGetTempname(tls *libc.TLS, nBuf int32, zBuf uintptr) (r int32) { for cond := true; cond; cond = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(2)].FpCurrent})))(tls, zBuf, 0) == 0 { Xsqlite3_randomness(tls, int32(8), bp) *(*int8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2)))) = 0 - Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3928, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) + Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3992, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) if v2 = int32(*(*int8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2))))) != 0; !v2 { v1 = iLimit iLimit++ @@ -28044,7 +28277,7 @@ func _findCreateFileMode(tls *libc.TLS, zPath uintptr, flags int32, pMode uintpt ** filename, check for the "modeof" parameter. If present, interpret ** its value as a filename and try to copy the mode, uid and gid from ** that file. */ - z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3945) + z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+4009) if z != 0 { rc = _getFileMode(tls, z, pMode, pUid, pGid) } @@ -28082,12 +28315,12 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags bp := tls.Alloc(528) defer tls.Free(528) var ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, rc, rc2 int32 - var p, pUnused, zName uintptr + var p, pReadonly, pUnused, zName uintptr var _ /* gid at bp+524 */ Tgid_t var _ /* openMode at bp+516 */ Tmode_t var _ /* uid at bp+520 */ Tuid_t var _ /* zTmpname at bp+0 */ [514]int8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pUnused, rc, rc2, zName + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pReadonly, pUnused, rc, rc2, zName p = pFile fd = -int32(1) /* File descriptor returned by open() */ openFlags = 0 /* Flags to pass to open() */ @@ -28182,17 +28415,24 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } else { if *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) != int32(EISDIR) && isReadWrite != 0 { /* Failed to open the file for read/write access. Try read-only. */ + pReadonly = uintptr(0) flags &= ^(libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE)) openFlags &= ^(libc.Int32FromInt32(O_RDWR) | libc.Int32FromInt32(O_CREAT)) flags |= int32(SQLITE_OPEN_READONLY) openFlags |= O_RDONLY isReadonly = int32(1) - fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 516))) + pReadonly = _findReusableFd(tls, zName, flags) + if pReadonly != 0 { + fd = (*TUnixUnusedFd)(unsafe.Pointer(pReadonly)).Ffd + Xsqlite3_free(tls, pReadonly) + } else { + fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 516))) + } } } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44435)), __ccgo_ts+3425, zName, int32(44435)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44775)), __ccgo_ts+3489, zName, int32(44775)) if rc == SQLITE_OK { rc = rc2 } @@ -28242,6 +28482,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags ctrlFlags |= int32(UNIXFILE_URI) } rc = _fillInUnixFile(tls, pVfs, fd, pFile, zPath, ctrlFlags) + goto open_finished open_finished: ; if rc != SQLITE_OK { @@ -28268,7 +28509,7 @@ func _unixDelete(tls *libc.TLS, NotUsed uintptr, zPath uintptr, dirSync int32) ( if *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) == int32(ENOENT) { rc = libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(23)< int32(SQLITE_MAX_SYMLINK) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(44686)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45026)) return } got = (*(*func(*libc.TLS, uintptr, uintptr, Tsize_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls, zIn, bp+128, libc.Uint64FromInt64(4098)-libc.Uint64FromInt32(2)) if got <= 0 || got >= libc.Int64FromInt64(4098)-libc.Int64FromInt32(2) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44691)), __ccgo_ts+3614, zIn, int32(44691)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45031)), __ccgo_ts+3678, zIn, int32(45031)) return } (*(*[4098]int8)(unsafe.Pointer(bp + 128)))[got] = 0 @@ -28466,14 +28707,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if int32(*(*int8)(unsafe.Pointer(zPath))) != int32('/') { if (*(*func(*libc.TLS, uintptr, Tsize_t) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(3)].FpCurrent})))(tls, bp+24, libc.Uint64FromInt64(4098)-libc.Uint64FromInt32(2)) == uintptr(0) { - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44749)), __ccgo_ts+3443, zPath, int32(44749)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45089)), __ccgo_ts+3507, zPath, int32(45089)) } _appendAllPathElements(tls, bp, bp+24) } _appendAllPathElements(tls, bp, zPath) *(*int8)(unsafe.Pointer(zOut + uintptr((*(*TDbPath)(unsafe.Pointer(bp))).FnUsed))) = 0 if (*(*TDbPath)(unsafe.Pointer(bp))).Frc != 0 || (*(*TDbPath)(unsafe.Pointer(bp))).FnUsed < int32(2) { - return _sqlite3CantopenError(tls, int32(44755)) + return _sqlite3CantopenError(tls, int32(45095)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<= (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4)/libc.Uint64FromInt32(2) { @@ -30295,6 +30538,7 @@ bitvec_set_rehash: return rc } } + goto bitvec_set_end bitvec_set_end: ; (*TBitvec)(unsafe.Pointer(p)).FnSet++ @@ -30527,6 +30771,7 @@ func _sqlite3BitvecBuiltinTest(tls *libc.TLS, sz int32, aOp uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp))++ } /* Free allocated structure */ + goto bitvec_end bitvec_end: ; Xsqlite3_free(tls, pTmpSpace) @@ -31766,7 +32011,7 @@ func _sqlite3PCacheBufferSetup(tls *libc.TLS, pBuf uintptr, sz int32, n int32) { var p uintptr var v1, v2, v3, v4 int32 _, _, _, _, _ = p, v1, v2, v3, v4 - if _pcache1_g.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80) != 0 { if pBuf == uintptr(0) { v1 = libc.Int32FromInt32(0) n = v1 @@ -32287,7 +32532,7 @@ func _pcache1Init(tls *libc.TLS, NotUsed uintptr) (r int32) { _pcache1_g.FnInitPage = 0 } _pcache1_g.Fgrp.FmxPinned = uint32(10) - _pcache1_g.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80, int32(1)) return SQLITE_OK } @@ -35784,6 +36029,7 @@ func _pager_delsuper(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) { } _sqlite3OsClose(tls, pSuper) rc = _sqlite3OsDelete(tls, pVfs, zSuper, 0) + goto delsuper_out delsuper_out: ; Xsqlite3_free(tls, zFree) @@ -36111,6 +36357,7 @@ func _pager_playback(tls *libc.TLS, pPager uintptr, isHot int32) (r int32) { } } /*NOTREACHED*/ + goto end_playback end_playback: ; if rc == SQLITE_OK { @@ -36153,7 +36400,7 @@ end_playback: rc = _pager_delsuper(tls, pPager, zSuper) } if isHot != 0 && nPlayback != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(2)< int64(1) { _sqlite3PagerUnrefNotNull(tls, pPgOld) - return _sqlite3CorruptError(tls, int32(63973)) + return _sqlite3CorruptError(tls, int32(64313)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | int32((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -40256,7 +40507,7 @@ func _sqlite3PagerCheckpoint(tls *libc.TLS, pPager uintptr, db uintptr, eMode in ** sqlite3_wal_checkpoint() call, but it happens very rarely. ** https://sqlite.org/forum/forumpost/fd0f19d229156939 */ - Xsqlite3_exec(tls, db, __ccgo_ts+4141, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+4205, uintptr(0), uintptr(0), uintptr(0)) } if (*TPager)(unsafe.Pointer(pPager)).FpWal != 0 { if eMode == SQLITE_CHECKPOINT_PASSIVE { @@ -41697,7 +41948,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(65899)) + return _sqlite3CorruptError(tls, int32(66239)) } goto _1 _1: @@ -41785,7 +42036,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { ** are able to understand */ version = _sqlite3Get4byte(tls, bp+8+4) if version != uint32(WAL_MAX_VERSION) { - rc = _sqlite3CantopenError(tls, int32(66031)) + rc = _sqlite3CantopenError(tls, int32(66371)) goto finished } /* Malloc a buffer to read frames into. */ @@ -41880,6 +42131,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { } Xsqlite3_free(tls, aFrame) } + goto finished finished: ; if rc == SQLITE_OK { @@ -41923,9 +42175,10 @@ finished: ** checkpointing the log file. */ if (*TWal)(unsafe.Pointer(pWal)).Fhdr.FnPage != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(1)< int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(71032)) + rc = _sqlite3CorruptError(tls, int32(71421)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } @@ -46479,7 +46741,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, } /* The super-journal page number must never be used as a pointer map page */ if key == uint32(0) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71230)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71619)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -46492,12 +46754,12 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, /* The first byte of the extra data is the MemPage.isInit byte. ** If that byte is set, it means this page is also being used ** as a btree page. */ - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71243)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71632)) goto ptrmap_exit } offset = int32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71248)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71637)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -46510,6 +46772,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _sqlite3Put4byte(tls, pPtrmap+uintptr(offset+int32(1)), parent) } } + goto ptrmap_exit ptrmap_exit: ; _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -46540,7 +46803,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = int32(libc.Uint32FromInt32(5) * (key - uint32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(71293)) + return _sqlite3CorruptError(tls, int32(71682)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -46548,7 +46811,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if int32(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || int32(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(71301)) + return _sqlite3CorruptError(tls, int32(71690)) } return SQLITE_OK } @@ -46968,7 +47231,7 @@ func _ptrmapPutOvflPtr(tls *libc.TLS, pPage uintptr, pSrc uintptr, pCell uintptr (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if uint64(pCell) < uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) && uint64(pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal)) > uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71741)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72130)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(int32((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -47008,12 +47271,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71799)) + return _sqlite3CorruptError(tls, int32(72188)) } if iFree != 0 { iFree2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71802)) + return _sqlite3CorruptError(tls, int32(72191)) } if 0 == iFree2 || int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -47021,21 +47284,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(71810)) + return _sqlite3CorruptError(tls, int32(72199)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(71813)) + return _sqlite3CorruptError(tls, int32(72202)) } sz2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(71815)) + return _sqlite3CorruptError(tls, int32(72204)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), uint64(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(71819)) + return _sqlite3CorruptError(tls, int32(72208)) } } cbrk = top + sz @@ -47082,12 +47345,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { ** if PRAGMA cell_size_check=ON. */ if pc > iCellLast { - return _sqlite3CorruptError(tls, int32(71852)) + return _sqlite3CorruptError(tls, int32(72241)) } size = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, src+uintptr(pc))) cbrk -= size if cbrk < iCellStart || pc+size > usableSize { - return _sqlite3CorruptError(tls, int32(71858)) + return _sqlite3CorruptError(tls, int32(72247)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = uint8(cbrk) @@ -47099,10 +47362,11 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { } } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))) = uint8(0) + goto defragment_out defragment_out: ; if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(71872)) + return _sqlite3CorruptError(tls, int32(72261)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = uint8(cbrk) @@ -47162,7 +47426,7 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint } else { if x+pc > maxPC { /* This slot extends off the end of the usable part of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71929)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72318)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -47179,14 +47443,14 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint if pc <= iAddr { if pc != 0 { /* The next slot in the chain comes before the current slot */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71944)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72333)) } return uintptr(0) } } if pc > maxPC+nByte-int32(4) { /* The free slot chain extends off the end of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71951)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72340)) } return uintptr(0) } @@ -47229,11 +47493,11 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r if top == 0 && (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize == uint32(65536) { top = int32(65536) } else { - return _sqlite3CorruptError(tls, int32(71999)) + return _sqlite3CorruptError(tls, int32(72388)) } } else { if top > int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(72002)) + return _sqlite3CorruptError(tls, int32(72391)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -47247,7 +47511,7 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r g2 = v1 *(*int32)(unsafe.Pointer(pIdx)) = v1 if g2 <= gap { - return _sqlite3CorruptError(tls, int32(72019)) + return _sqlite3CorruptError(tls, int32(72408)) } else { return SQLITE_OK } @@ -47330,12 +47594,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if int32(iFreeBlk) == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(72098)) + return _sqlite3CorruptError(tls, int32(72487)) } iPtr = iFreeBlk } if uint32(iFreeBlk) > (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(72103)) + return _sqlite3CorruptError(tls, int32(72492)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -47346,11 +47610,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if iFreeBlk != 0 && iEnd+uint32(3) >= uint32(iFreeBlk) { nFrag = uint8(uint32(iFreeBlk) - iEnd) if iEnd > uint32(iFreeBlk) { - return _sqlite3CorruptError(tls, int32(72115)) + return _sqlite3CorruptError(tls, int32(72504)) } iEnd = uint32(int32(iFreeBlk) + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iFreeBlk)+int32(2)))))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - return _sqlite3CorruptError(tls, int32(72118)) + return _sqlite3CorruptError(tls, int32(72507)) } iSize = uint16(iEnd - uint32(iStart)) iFreeBlk = uint16(int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= int32(iStart) { if iPtrEnd > int32(iStart) { - return _sqlite3CorruptError(tls, int32(72131)) + return _sqlite3CorruptError(tls, int32(72520)) } nFrag = Tu8(int32(nFrag) + (int32(iStart) - iPtrEnd)) iSize = uint16(iEnd - uint32(iPtr)) @@ -47371,7 +47635,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) } } if int32(nFrag) > int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(72137)) + return _sqlite3CorruptError(tls, int32(72526)) } p2 = data + uintptr(int32(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - int32(nFrag)) @@ -47388,10 +47652,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) ** so just extend the cell content area rather than create another ** freelist entry */ if int32(iStart) < int32(x) { - return _sqlite3CorruptError(tls, int32(72151)) + return _sqlite3CorruptError(tls, int32(72540)) } if int32(iPtr) != int32(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(72152)) + return _sqlite3CorruptError(tls, int32(72541)) } *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)))) = uint8(int32(iFreeBlk) >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)) + 1)) = uint8(iFreeBlk) @@ -47452,7 +47716,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtrIdxLeaf) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72206)) + return _sqlite3CorruptError(tls, int32(72595)) } } } else { @@ -47478,7 +47742,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtr) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72230)) + return _sqlite3CorruptError(tls, int32(72619)) } } } @@ -47517,12 +47781,12 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-55530-52930 In a well-formed b-tree page, there will ** always be at least one cell before the first freeblock. */ - return _sqlite3CorruptError(tls, int32(72281)) + return _sqlite3CorruptError(tls, int32(72670)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(72286)) + return _sqlite3CorruptError(tls, int32(72675)) } next = uint32(int32(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(72296)) + return _sqlite3CorruptError(tls, int32(72685)) } if uint32(pc)+size > uint32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(72300)) + return _sqlite3CorruptError(tls, int32(72689)) } } /* At this point, nFree contains the sum of the offset to the start @@ -47549,7 +47813,7 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { ** area, according to the page header, lies within the page. */ if nFree > usableSize || nFree < iCellFirst { - return _sqlite3CorruptError(tls, int32(72312)) + return _sqlite3CorruptError(tls, int32(72701)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16(nFree - iCellFirst)) return SQLITE_OK @@ -47580,11 +47844,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))) if pc < iCellFirst || pc > iCellLast { - return _sqlite3CorruptError(tls, int32(72343)) + return _sqlite3CorruptError(tls, int32(72732)) } sz = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, data+uintptr(pc))) if pc+sz > usableSize { - return _sqlite3CorruptError(tls, int32(72348)) + return _sqlite3CorruptError(tls, int32(72737)) } goto _1 _1: @@ -47613,7 +47877,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-28594-02890 The one-byte flag at offset 0 indicating ** the b-tree page type. */ if _decodeFlags(tls, pPage, int32(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(72380)) + return _sqlite3CorruptError(tls, int32(72769)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -47626,7 +47890,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = uint16(int32(*(*Tu8)(unsafe.Pointer(data + 3)))< ((*TBtShared)(unsafe.Pointer(pBt)).FpageSize-uint32(8))/uint32(6) { /* To many cells for a single page. The page must be corrupt */ - return _sqlite3CorruptError(tls, int32(72394)) + return _sqlite3CorruptError(tls, int32(72783)) } /* EVIDENCE-OF: R-24089-57979 If a page contains no cells (which is only ** possible for a root page of a table that contains no rows) then the @@ -47779,7 +48043,7 @@ func _getAndInitPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, bRe _, _ = pPage, rc if pgno > _btreePagecount(tls, pBt) { *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72537)) + return _sqlite3CorruptError(tls, int32(72926)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -47841,7 +48105,7 @@ func _btreeGetUnusedPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FpDbPage) > int32(1) { _releasePage(tls, *(*uintptr)(unsafe.Pointer(ppPage))) *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72609)) + return _sqlite3CorruptError(tls, int32(72998)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -47929,7 +48193,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt /* Set the variable isMemdb to true for an in-memory database, or ** false for a file-based database. */ - isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4222) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) + isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4286) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) /* flags fit in 8 bits */ /* Only a BTREE_SINGLE database can be BTREE_UNORDERED */ /* A BTREE_SINGLE database is always a temporary and/or ephemeral */ @@ -48153,6 +48417,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt } } *(*uintptr)(unsafe.Pointer(ppBtree)) = p + goto btree_open_out btree_open_out: ; if rc != SQLITE_OK { @@ -48714,7 +48979,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { ** The original design allowed these amounts to vary, but as of ** version 3.6.0, we require them to be fixed. */ - if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4231, uint64(3)) != 0 { + if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4295, uint64(3)) != 0 { goto page1_init_failed } /* EVIDENCE-OF: R-51873-39618 The page size for a database file is @@ -48752,7 +49017,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { } if nPage > *(*Tu32)(unsafe.Pointer(bp + 8)) { if _sqlite3WritableSchema(tls, (*TBtShared)(unsafe.Pointer(pBt)).Fdb) == 0 { - rc = _sqlite3CorruptError(tls, int32(73547)) + rc = _sqlite3CorruptError(tls, int32(73936)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -48806,6 +49071,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 = *(*uintptr)(unsafe.Pointer(bp)) (*TBtShared)(unsafe.Pointer(pBt)).FnPage = nPage return SQLITE_OK + goto page1_init_failed page1_init_failed: ; _releasePageOne(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -49075,6 +49341,7 @@ func _btreeBeginTrans(tls *libc.TLS, p uintptr, wrflag int32, pSchemaVersion uin } } } + goto trans_begun trans_begun: ; if rc == SQLITE_OK { @@ -49191,7 +49458,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if int32(eType) == int32(PTRMAP_OVERFLOW2) { /* The pointer is always the first 4 bytes of the page in this case. */ if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData) != iFrom { - return _sqlite3CorruptError(tls, int32(73995)) + return _sqlite3CorruptError(tls, int32(74384)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -49215,7 +49482,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74014)) + return _sqlite3CorruptError(tls, int32(74403)) } if iFrom == _sqlite3Get4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4)) { _sqlite3Put4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4), iTo) @@ -49224,7 +49491,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } } else { if pCell+uintptr(4) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74023)) + return _sqlite3CorruptError(tls, int32(74412)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -49238,7 +49505,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if int32(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(74035)) + return _sqlite3CorruptError(tls, int32(74424)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -49268,7 +49535,7 @@ func _relocatePage(tls *libc.TLS, pBt uintptr, pDbPage uintptr, eType Tu8, iPtrP iDbPage = (*TMemPage)(unsafe.Pointer(pDbPage)).Fpgno pPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager if iDbPage < uint32(3) { - return _sqlite3CorruptError(tls, int32(74070)) + return _sqlite3CorruptError(tls, int32(74459)) } /* Move page iDbPage from its current location to page number iFreePage */ *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3PagerMovepage(tls, pPager, (*TMemPage)(unsafe.Pointer(pDbPage)).FpDbPage, iFreePage, isCommit) @@ -49364,7 +49631,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(74168)) + return _sqlite3CorruptError(tls, int32(74557)) } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -49402,7 +49669,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if *(*TPgno)(unsafe.Pointer(bp + 24)) > dbSize { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) - return _sqlite3CorruptError(tls, int32(74220)) + return _sqlite3CorruptError(tls, int32(74609)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -49469,7 +49736,7 @@ func _sqlite3BtreeIncrVacuum(tls *libc.TLS, p uintptr) (r int32) { nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) nFin = _finalDbSize(tls, pBt, nOrig, nFree) if nOrig < nFin || nFree >= nOrig { - rc = _sqlite3CorruptError(tls, int32(74288)) + rc = _sqlite3CorruptError(tls, int32(74677)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -49512,7 +49779,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { ** is either a pointer-map page or the pending-byte page. If one ** is encountered, this indicates corruption. */ - return _sqlite3CorruptError(tls, int32(74339)) + return _sqlite3CorruptError(tls, int32(74728)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -49542,7 +49809,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(74366)) + return _sqlite3CorruptError(tls, int32(74755)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50008,7 +50275,7 @@ func _btreeCursor(tls *libc.TLS, p uintptr, iTable TPgno, wrFlag int32, pKeyInfo /* Assert that the caller has opened the required transaction. */ if iTable <= uint32(1) { if iTable < uint32(1) { - return _sqlite3CorruptError(tls, int32(74830)) + return _sqlite3CorruptError(tls, int32(75219)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -50400,7 +50667,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin pBt = (*TBtCursor)(unsafe.Pointer(pCur)).FpBt /* Btree this cursor belongs to */ pBufStart = pBuf /* Start of original out buffer */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(75235)) + return _sqlite3CorruptError(tls, int32(75624)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -50410,7 +50677,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin ** &aPayload[pCur->info.nLocal] > &pPage->aData[pBt->usableSize] ** but is recast into its current form to avoid integer overflow problems */ - return _sqlite3CorruptError(tls, int32(75250)) + return _sqlite3CorruptError(tls, int32(75639)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -50438,7 +50705,11 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_ValidOvfl) == 0 { nOvfl = int32(((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnPayload - uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) + ovflSize - uint32(1)) / ovflSize) if (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow == uintptr(0) || nOvfl*libc.Int32FromInt64(4) > _sqlite3MallocSize(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow) { - aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + if _sqlite3FaultSim(tls, int32(413)) != 0 { + aNew = uintptr(0) + } else { + aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + } if aNew == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -50449,6 +50720,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin p1 = pCur + 1 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(BTCF_ValidOvfl)) } else { + /* Sanity check the validity of the overflow page cache */ /* If the overflow page-list cache has been allocated and the ** entry for the first required overflow page is valid, skip ** directly to it. @@ -50462,7 +50734,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin for *(*TPgno)(unsafe.Pointer(bp)) != 0 { /* If required, populate the overflow page-list cache. */ if *(*TPgno)(unsafe.Pointer(bp)) > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(75312)) + return _sqlite3CorruptError(tls, int32(75710)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -50536,7 +50808,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin } if rc == SQLITE_OK && amt > uint32(0) { /* Overflow chain ends prematurely */ - return _sqlite3CorruptError(tls, int32(75396)) + return _sqlite3CorruptError(tls, int32(75794)) } return rc } @@ -50671,7 +50943,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { var v3, p1 uintptr _, _, _, _ = rc, v2, v3, p1 if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(75534)) + return _sqlite3CorruptError(tls, int32(75932)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -50683,7 +50955,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(75548)) + rc = _sqlite3CorruptError(tls, int32(75946)) } if rc != 0 { v3 = pCur + 84 @@ -50799,8 +51071,9 @@ func _moveToRoot(tls *libc.TLS, pCur uintptr) (r int32) { ** in such a way that page pRoot is linked into a second b-tree table ** (or the freelist). */ if int32((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != int32((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(75683)) + return _sqlite3CorruptError(tls, int32(76081)) } + goto skip_init skip_init: ; (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(0) @@ -50812,7 +51085,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(75695)) + return _sqlite3CorruptError(tls, int32(76093)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -51046,7 +51319,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(75937)) + return _sqlite3CorruptError(tls, int32(76342)) } } } @@ -51089,6 +51362,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh rc = SQLITE_OK goto moveto_table_finish } + goto moveto_table_next_layer moveto_table_next_layer: ; if lwr >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { @@ -51104,6 +51378,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh goto _1 _1: } + goto moveto_table_finish moveto_table_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -51248,7 +51523,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes p3 = pCur + 1 *(*Tu8)(unsafe.Pointer(p3)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p3))) & ^libc.Int32FromInt32(BTCF_ValidOvfl)) if !((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76133)) + return _sqlite3CorruptError(tls, int32(76538)) } goto bypass_moveto_root /* Start search on the current page */ } @@ -51262,6 +51537,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes } return rc } + goto bypass_moveto_root bypass_moveto_root: ; for { @@ -51310,7 +51586,7 @@ bypass_moveto_root: /* Invalid key size: 0x80 0x80 0x01 */ /* Minimum legal index key size */ if nCell < int32(2) || uint32(nCell)/(*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FusableSize > (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(76220)) + rc = _sqlite3CorruptError(tls, int32(76625)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, uint64(nCell+nOverrun)) @@ -51341,7 +51617,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(76252)) + rc = _sqlite3CorruptError(tls, int32(76657)) } goto moveto_index_finish } @@ -51374,7 +51650,7 @@ bypass_moveto_root: p9 = pCur + 1 *(*Tu8)(unsafe.Pointer(p9)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p9))) & ^(libc.Int32FromInt32(BTCF_ValidNKey) | libc.Int32FromInt32(BTCF_ValidOvfl))) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(76283)) + return _sqlite3CorruptError(tls, int32(76688)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = uint16(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -51383,7 +51659,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76294)) + rc = _sqlite3CorruptError(tls, int32(76699)) } if rc != 0 { v11 = pCur + 84 @@ -51397,6 +51673,7 @@ bypass_moveto_root: goto _4 _4: } + goto moveto_index_finish moveto_index_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -51431,11 +51708,11 @@ func _sqlite3BtreeRowCountEst(tls *libc.TLS, pCur uintptr) (r Ti64) { var i Tu8 var n Ti64 _, _ = i, n - /* Currently this interface is only called by the OP_IfSmaller - ** opcode, and it that case the cursor will always be valid and - ** will always point to a leaf node. */ + /* Currently this interface is only called by the OP_IfSizeBetween + ** opcode and the OP_Count opcode with P3=1. In either case, + ** the cursor will always be valid unless the btree is empty. */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID { - return int64(-int32(1)) + return 0 } if int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).Fleaf) == 0 { return int64(-int32(1)) @@ -51511,7 +51788,7 @@ func _btreeNext(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76395)) + return _sqlite3CorruptError(tls, int32(76800)) } if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -51621,7 +51898,7 @@ func _btreePrevious(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76488)) + return _sqlite3CorruptError(tls, int32(76893)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -51709,7 +51986,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt ** stores the total number of pages on the freelist. */ n = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+36) if n >= mxPage { - return _sqlite3CorruptError(tls, int32(76578)) + return _sqlite3CorruptError(tls, int32(76983)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -51764,7 +52041,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(76634)) + rc = _sqlite3CorruptError(tls, int32(77039)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -51790,7 +52067,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { if k > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/libc.Uint32FromInt32(4)-libc.Uint32FromInt32(2) { /* Value of k is out of range. Database corruption */ - rc = _sqlite3CorruptError(tls, int32(76663)) + rc = _sqlite3CorruptError(tls, int32(77068)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -51817,7 +52094,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { iNewTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+8) if iNewTrunk > mxPage { - rc = _sqlite3CorruptError(tls, int32(76697)) + rc = _sqlite3CorruptError(tls, int32(77102)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -51888,7 +52165,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } iPage = _sqlite3Get4byte(tls, aData+uintptr(uint32(8)+closest*uint32(4))) if iPage > mxPage || iPage < uint32(2) { - rc = _sqlite3CorruptError(tls, int32(76762)) + rc = _sqlite3CorruptError(tls, int32(77167)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -51988,6 +52265,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) } } + goto end_allocate_page end_allocate_page: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -52025,7 +52303,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in iTrunk = uint32(0) /* Page number of free-list trunk page */ pPage1 = (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 /* Initial number of pages on free-list */ if iPage < uint32(2) || iPage > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(76889)) + return _sqlite3CorruptError(tls, int32(77294)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -52076,7 +52354,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in if nFree != uint32(0) { /* Initial number of leaf cells on trunk page */ iTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32) if iTrunk > _btreePagecount(tls, pBt) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76936)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77341)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -52085,7 +52363,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in } nLeaf = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+4) if nLeaf > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(2) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76947)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77352)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -52140,6 +52418,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData, iTrunk) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData+4, uint32(0)) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32, iPage) + goto freepage_out freepage_out: ; if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -52174,7 +52453,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp _, _, _, _, _, _, _, _ = nOvfl, ovflPageSize, ovflPgno, pBt, rc, v1, v2, v3 if pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { /* Cell extends past end of page */ - return _sqlite3CorruptError(tls, int32(77036)) + return _sqlite3CorruptError(tls, int32(77441)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -52192,7 +52471,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp /* 0 is not a legal page number and page 1 cannot be an ** overflow page. Therefore if ovflPgno<2 or past the end of the ** file the database must be corrupt. */ - return _sqlite3CorruptError(tls, int32(77053)) + return _sqlite3CorruptError(tls, int32(77458)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -52215,7 +52494,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp ** caller is iterating through or using in some other way, this ** can be problematic. */ - rc = _sqlite3CorruptError(tls, int32(77073)) + rc = _sqlite3CorruptError(tls, int32(77478)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -52436,7 +52715,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = uint32(int32(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77329)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77734)) return } rc = _freeSpace(tls, pPage, uint16(pc), uint16(sz)) @@ -52830,12 +53109,12 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg sz = *(*Tu16)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FszCell + uintptr(i)*2)) if uint64(pCell) >= uint64(aData+uintptr(j)) && uint64(pCell) < uint64(pEnd) { if uint64(pCell+uintptr(sz)) > uint64(pEnd) { - return _sqlite3CorruptError(tls, int32(77718)) + return _sqlite3CorruptError(tls, int32(78123)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(77723)) + return _sqlite3CorruptError(tls, int32(78128)) } } pData -= uintptr(sz) @@ -52843,7 +53122,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = uint8(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(77729)) + return _sqlite3CorruptError(tls, int32(78134)) } libc.Xmemmove(tls, pData, pCell, uint64(sz)) i++ @@ -52938,7 +53217,7 @@ func _pageInsertArray(tls *libc.TLS, pPg uintptr, pBegin uintptr, ppData uintptr ** database. But they might for a corrupt database. Hence use memmove() ** since memcpy() sends SIGABORT with overlapping buffers on OpenBSD */ if uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))+uintptr(sz)) > uint64(pEnd) && uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))) < uint64(pEnd) { - _sqlite3CorruptError(tls, int32(77814)) + _sqlite3CorruptError(tls, int32(78219)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), uint64(sz)) @@ -53086,7 +53365,7 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p if iOld < iNew { nShift = _pageFreeArray(tls, pPg, iOld, iNew-iOld, pCArray) if nShift > nCell { - return _sqlite3CorruptError(tls, int32(77936)) + return _sqlite3CorruptError(tls, int32(78341)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), uint64(nCell*int32(2))) nCell -= nShift @@ -53152,11 +53431,12 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)))) = uint8((int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)) + 1)) = uint8(int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) return SQLITE_OK + goto editpage_fail editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(78010)) + return _sqlite3CorruptError(tls, int32(78415)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -53201,7 +53481,7 @@ func _balance_quick(tls *libc.TLS, pParent uintptr, pPage uintptr, pSpace uintpt _, _, _, _, _, _, _ = pBt, pOut, pStop, v1, v2, v3, v4 pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt /* Page number of pNew */ if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(78050)) + return _sqlite3CorruptError(tls, int32(78455)) } /* dbfuzz001.test */ /* Allocate a new page. This page will become the right-sibling of ** pPage. Make the parent page writable, so that the new divider cell @@ -53562,7 +53842,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78471)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78876)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -53585,7 +53865,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa libc.Xmemset(tls, (*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell+uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*2, 0, uint64(2)*uint64(limit+int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78495)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78900)) goto balance_cleanup } limit = int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -53716,7 +53996,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa if i+int32(1) >= k { k = i + int32(2) if k > libc.Int32FromInt32(NB)+libc.Int32FromInt32(2) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78596)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79001)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -53759,7 +54039,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v10 = 0 } if cntNew[i] <= v10 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78629)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79034)) goto balance_cleanup } } @@ -53818,7 +54098,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v15 = 0 } if cntNew[i-int32(1)] <= v15 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78673)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79078)) goto balance_cleanup } goto _11 @@ -53850,7 +54130,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) nNew++ if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) != int32(1)+libc.BoolInt32(i == iParentIdx-nxDiv) && *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78706)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79111)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -54080,7 +54360,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa } pSrcEnd = *(*uintptr)(unsafe.Pointer(bp + 112 + 32 + uintptr(k)*8)) if uint64(pCell1) < uint64(pSrcEnd) && uint64(pCell1+uintptr(sz2)) > uint64(pSrcEnd) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78906)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79311)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -54215,6 +54495,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa /* ** Cleanup before returning. */ + goto balance_cleanup balance_cleanup: ; _sqlite3DbFree(tls, uintptr(0), (*(*TCellArray)(unsafe.Pointer(bp + 112))).FapCell) @@ -54325,7 +54606,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && int32((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(79138)) + return _sqlite3CorruptError(tls, int32(79543)) } goto _1 _1: @@ -54398,7 +54679,7 @@ func _balance(tls *libc.TLS, pCur uintptr) (r int32) { /* The page being written is not a root page, and there is currently ** more than one reference to it. This only happens if the page is one ** of its own ancestor pages. Corruption. */ - rc = _sqlite3CorruptError(tls, int32(79198)) + rc = _sqlite3CorruptError(tls, int32(79603)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = int32(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -54557,7 +54838,7 @@ func _btreeOverwriteOverflowCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int return rc } if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1) || (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FisInit != 0 { - rc = _sqlite3CorruptError(tls, int32(79362)) + rc = _sqlite3CorruptError(tls, int32(79767)) } else { if uint32(iOffset)+ovflPageSize < uint32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -54588,7 +54869,7 @@ func _btreeOverwriteCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int32) { nTotal = (*TBtreePayload)(unsafe.Pointer(pX)).FnData + (*TBtreePayload)(unsafe.Pointer(pX)).FnZero /* Total bytes of to write */ pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage /* Page being written */ if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload+uintptr((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd || (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FcellOffset) { - return _sqlite3CorruptError(tls, int32(79390)) + return _sqlite3CorruptError(tls, int32(79795)) } if int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -54673,7 +54954,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** Which can only happen if the SQLITE_NoSchemaError flag was set when ** the schema was loaded. This cannot be asserted though, as a user might ** set the flag, load the schema, and then unset the flag. */ - return _sqlite3CorruptError(tls, int32(79471)) + return _sqlite3CorruptError(tls, int32(79876)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -54765,7 +55046,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79594)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79999)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -54801,7 +55082,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) if *(*int32)(unsafe.Pointer(bp + 4)) == 0 { if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79636)) + return _sqlite3CorruptError(tls, int32(80041)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -54831,10 +55112,10 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry. */ /* clearCell never fails when nLocal==nPayload */ if oldCell < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+uintptr(10) { - return _sqlite3CorruptError(tls, int32(79663)) + return _sqlite3CorruptError(tls, int32(80068)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79666)) + return _sqlite3CorruptError(tls, int32(80071)) } libc.Xmemcpy(tls, oldCell, newCell, uint64(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -54899,6 +55180,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s (*TBtCursor)(unsafe.Pointer(pCur)).FnKey = (*TBtreePayload)(unsafe.Pointer(pX)).FnKey } } + goto end_insert end_insert: ; return *(*int32)(unsafe.Pointer(bp)) @@ -54951,7 +55233,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T nIn = uint32((*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnLocal) aIn = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload if aIn+uintptr(nIn) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79768)) + return _sqlite3CorruptError(tls, int32(80173)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -54973,7 +55255,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T } if nRem > nIn { if aIn+uintptr(nIn)+uintptr(4) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79793)) + return _sqlite3CorruptError(tls, int32(80198)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -55073,21 +55355,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(79889)) + return _sqlite3CorruptError(tls, int32(80294)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(79898)) + return _sqlite3CorruptError(tls, int32(80303)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCellIdx)))))) if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 && _btreeComputeFreeSpace(tls, pPage) != 0 { - return _sqlite3CorruptError(tls, int32(79902)) + return _sqlite3CorruptError(tls, int32(80307)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79905)) + return _sqlite3CorruptError(tls, int32(80310)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -55181,7 +55463,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { } pCell = (*TMemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(int32(2)*(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FnCell)-int32(1)))))))) if pCell < (*TMemPage)(unsafe.Pointer(pLeaf)).FaData+4 { - return _sqlite3CorruptError(tls, int32(79996)) + return _sqlite3CorruptError(tls, int32(80401)) } nCell = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pLeaf)).FxCellSize})))(tls, pLeaf, pCell)) pTmp = (*TBtShared)(unsafe.Pointer(pBt)).FpTmpSpace @@ -55291,7 +55573,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags */ _sqlite3BtreeGetMeta(tls, p, int32(BTREE_LARGEST_ROOT_PAGE), bp+8) if *(*TPgno)(unsafe.Pointer(bp + 8)) > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80112)) + return _sqlite3CorruptError(tls, int32(80517)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -55332,7 +55614,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags } *(*int32)(unsafe.Pointer(bp + 12)) = _ptrmapGet(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 8)), bp+32, bp+36) if int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80160)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80565)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -55413,14 +55695,14 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int var _ /* rc at bp+8 */ int32 _, _, _, _ = hdr, i, pCell, v2 if pgno > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80250)) + return _sqlite3CorruptError(tls, int32(80655)) } *(*int32)(unsafe.Pointer(bp + 8)) = _getAndInitPage(tls, pBt, pgno, bp, 0) if *(*int32)(unsafe.Pointer(bp + 8)) != 0 { return *(*int32)(unsafe.Pointer(bp + 8)) } if int32((*TBtShared)(unsafe.Pointer(pBt)).FopenFlags)&int32(BTREE_SINGLE) == 0 && _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1)+libc.BoolInt32(pgno == uint32(1)) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80257)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80662)) goto cleardatabasepage_out } hdr = int32((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -55471,6 +55753,7 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _zeroPage(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData + uintptr(hdr))))|int32(PTF_LEAF)) } } + goto cleardatabasepage_out cleardatabasepage_out: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -55556,7 +55839,7 @@ func _btreeDropTable(tls *libc.TLS, p uintptr, iTable TPgno, piMoved uintptr) (r *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) pBt = (*TBtree)(unsafe.Pointer(p)).FpBt if iTable > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80361)) + return _sqlite3CorruptError(tls, int32(80766)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, int32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -55821,7 +56104,7 @@ func _checkAppendMsg(tls *libc.TLS, pCheck uintptr, zFormat uintptr, va uintptr) (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr++ ap = va if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FerrMsg.FnChar != 0 { - Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4235, int32(1)) + Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4299, int32(1)) } if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx != 0 { Xsqlite3_str_appendf(tls, pCheck+72, (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx, libc.VaList(bp+8, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv0, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv2)) @@ -55869,11 +56152,11 @@ func _checkRef(tls *libc.TLS, pCheck uintptr, iPage TPgno) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if iPage > (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnCkPage || iPage == uint32(0) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4237, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4301, libc.VaList(bp+8, iPage)) return int32(1) } if _getPageReferenced(tls, pCheck, iPage) != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4260, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4324, libc.VaList(bp+8, iPage)) return int32(1) } _setPageReferenced(tls, pCheck, iPage) @@ -55899,11 +56182,11 @@ func _checkPtrmap(tls *libc.TLS, pCheck uintptr, iChild TPgno, eType Tu8, iParen if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FusableSize/uint32(4)-uint32(2) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4390, libc.VaList(bp+16, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4454, libc.VaList(bp+16, iPage)) N-- } else { i = 0 @@ -55975,11 +56258,11 @@ func _checkList(tls *libc.TLS, pCheck uintptr, isFreeList int32, iPage TPgno, N } if N != 0 && nErrAtStart == (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr { if isFreeList != 0 { - v2 = __ccgo_ts + 4429 + v2 = __ccgo_ts + 4493 } else { - v2 = __ccgo_ts + 4434 + v2 = __ccgo_ts + 4498 } - _checkAppendMsg(tls, pCheck, __ccgo_ts+4455, libc.VaList(bp+16, v2, expected-N, expected)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4519, libc.VaList(bp+16, v2, expected-N, expected)) } } @@ -56115,12 +56398,12 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr if _checkRef(tls, pCheck, iPage) != 0 { return 0 } - (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4481 + (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4545 (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = iPage v1 = _btreeGetPage(tls, pBt, iPage, bp+8, 0) rc = v1 if v1 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4499, libc.VaList(bp+56, rc)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4563, libc.VaList(bp+56, rc)) if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< usableSize-uint32(4) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4653, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4717, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) doCoverageCheck = 0 goto _4 } pCell = data + uintptr(pc) (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FxParseCell})))(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), pCell, bp+24) if pc+uint32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnSize) > usableSize { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4683, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4747, 0) doCoverageCheck = 0 goto _4 } @@ -56202,7 +56488,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr v5 = libc.BoolInt32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey >= *(*Ti64)(unsafe.Pointer(bp))) } if v5 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4707, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4771, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) } *(*Ti64)(unsafe.Pointer(bp)) = (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey keyCanBeEqual = 0 /* Only the first key on the page may ==maxKey */ @@ -56225,7 +56511,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr d2 = _checkTreePage(tls, pCheck, uint32(pgno), bp, *(*Ti64)(unsafe.Pointer(bp))) keyCanBeEqual = 0 if d2 != depth { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4731, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4795, 0) depth = d2 } } else { @@ -56302,7 +56588,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr prev = contentOffset - uint32(1) /* Implied first min-heap entry */ for _btreeHeapPull(tls, heap, bp+16) != 0 { if prev&uint32(0xffff) >= *(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4756, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4820, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) break } else { nFrag = int32(uint32(nFrag) + (*(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) - prev&libc.Uint32FromInt32(0xffff) - libc.Uint32FromInt32(1))) @@ -56316,9 +56602,10 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr ** number of fragmented free bytes within the cell content area. */ if *(*Tu32)(unsafe.Pointer(heap)) == uint32(0) && nFrag != int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4793, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4857, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) } } + goto end_of_check end_of_check: ; if !(doCoverageCheck != 0) { @@ -56355,16 +56642,16 @@ end_of_check: // ** the unverified btrees. Except, if aRoot[1] is 1, then the freelist // ** checks are still performed. // */ -func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { - bp := tls.Alloc(256) - defer tls.Free(256) +func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, aCnt uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { + bp := tls.Alloc(272) + defer tls.Free(272) var bCkFreelist, bPartial int32 var i, mx, mxInHdr TPgno var pBt uintptr var savedDbFlags Tu64 - var _ /* notUsed at bp+224 */ Ti64 + var _ /* notUsed at bp+232 */ Ti64 var _ /* sCheck at bp+0 */ TIntegrityCk - var _ /* zErr at bp+120 */ [100]int8 + var _ /* zErr at bp+128 */ [100]int8 _, _, _, _, _, _, _ = bCkFreelist, bPartial, i, mx, mxInHdr, pBt, savedDbFlags pBt = (*TBtree)(unsafe.Pointer(p)).FpBt savedDbFlags = (*Tsqlite3)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags @@ -56378,13 +56665,13 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } } _sqlite3BtreeEnter(tls, p) - libc.Xmemset(tls, bp, 0, uint64(120)) + libc.Xmemset(tls, bp, 0, uint64(128)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fdb = db (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt = pBt (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage = _btreePagecount(tls, (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr = mxErr - _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+120, int32(100), int32(SQLITE_MAX_LENGTH)) + _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+128, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FerrMsg.FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage == uint32(0) { goto integrity_ck_cleanup @@ -56406,7 +56693,7 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin /* Check the integrity of the freelist */ if bCkFreelist != 0 { - (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4845 + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4909 _checkList(tls, bp, int32(1), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+32), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = uintptr(0) } @@ -56430,11 +56717,11 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } mxInHdr = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+52) if mx != mxInHdr { - _checkAppendMsg(tls, bp, __ccgo_ts+4856, libc.VaList(bp+240, mx, mxInHdr)) + _checkAppendMsg(tls, bp, __ccgo_ts+4920, libc.VaList(bp+248, mx, mxInHdr)) } } else { if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+64) != uint32(0) { - _checkAppendMsg(tls, bp, __ccgo_ts+4901, 0) + _checkAppendMsg(tls, bp, __ccgo_ts+4965, 0) } } } @@ -56444,14 +56731,15 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin if !(int32(i) < nRoot && (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr != 0) { break } - if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) == uint32(0) { - goto _2 - } - if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { - _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnRow = 0 + if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) != 0 { + if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { + _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + } + (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fv0 = *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) + _checkTreePage(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), bp+232, libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)< nRec || iHdr >= *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84303)) + iHdr = uint32(uint8(v1)) + if *(*Tu32)(unsafe.Pointer(bp + 4)) > uint32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84745)) } - iField = *(*int32)(unsafe.Pointer(bp + 4)) + iField = int64(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 for { if !(i <= iCol) { @@ -59440,19 +59763,19 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } else { v3 = int32(_sqlite3GetVarint32(tls, a+uintptr(iHdr), bp)) } - iHdr += int32(uint8(v3)) - if iHdr > *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84309)) + iHdr += uint32(uint8(v3)) + if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84751)) } - szField = int32(_sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp)))) - iField += szField + szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) + iField += int64(szField) goto _2 _2: ; i++ } - if iField > nRec { - return _sqlite3CorruptError(tls, int32(84315)) + if iField > int64(nRec) { + return _sqlite3CorruptError(tls, int32(84757)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -59462,7 +59785,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC return int32(SQLITE_NOMEM) } } - _sqlite3VdbeSerialGet(tls, a+uintptr(iField-szField), *(*Tu32)(unsafe.Pointer(bp)), pMem) + _sqlite3VdbeSerialGet(tls, a+uintptr(iField-int64(szField)), *(*Tu32)(unsafe.Pointer(bp)), pMem) (*TMem)(unsafe.Pointer(pMem)).Fenc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc return SQLITE_OK } @@ -59881,6 +60204,7 @@ func _sqlite3VdbeMultiLoad(tls *libc.TLS, p uintptr, iDest int32, zTypes uintptr i++ } _sqlite3VdbeAddOp2(tls, p, int32(OP_ResultRow), iDest, i) + goto skip_op_resultrow skip_op_resultrow: ; _ = ap @@ -60248,6 +60572,9 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { /* True because of tag-20230419-1 */ (*TOp)(unsafe.Pointer(pOp)).Fp2 = *(*int32)(unsafe.Pointer(aLabel + uintptr(^(*TOp)(unsafe.Pointer(pOp)).Fp2)*4)) } + /* OPFLG_JUMP opcodes never have P2==0, though OPFLG_JUMP0 opcodes + ** might */ + /* Jumps never go off the end of the bytecode array */ break } /* The mkopcodeh.tcl script has so arranged things that the only @@ -60256,6 +60583,7 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { } pOp -= 24 } + goto resolve_p2_values_loop_exit resolve_p2_values_loop_exit: ; if aLabel != 0 { @@ -60759,7 +61087,7 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { switch int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) { case -int32(8): pKeyInfo = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5113, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5177, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) j = 0 for { if !(j < int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)) { @@ -60769,66 +61097,66 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { if pColl != 0 { v2 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v2 = __ccgo_ts + 1680 + v2 = __ccgo_ts + 1694 } zColl = v2 - if libc.Xstrcmp(tls, zColl, __ccgo_ts+5118) == 0 { - zColl = __ccgo_ts + 5125 + if libc.Xstrcmp(tls, zColl, __ccgo_ts+5182) == 0 { + zColl = __ccgo_ts + 5189 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_DESC) != 0 { - v3 = __ccgo_ts + 5106 + v3 = __ccgo_ts + 5170 } else { - v3 = __ccgo_ts + 1680 + v3 = __ccgo_ts + 1694 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_BIGNULL) != 0 { - v4 = __ccgo_ts + 5127 + v4 = __ccgo_ts + 5191 } else { - v4 = __ccgo_ts + 1680 + v4 = __ccgo_ts + 1694 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5130, libc.VaList(bp+40, v3, v4, zColl)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5194, libc.VaList(bp+40, v3, v4, zColl)) goto _1 _1: ; j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5138, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5202, int32(1)) case -int32(2): pColl1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5154, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5218, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) case -int32(7): pDef = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5163, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5227, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) case -int32(15): pDef1 = (*Tsqlite3_context)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpFunc - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5163, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5227, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) case -int32(13): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1436, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1455, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(3): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5170, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5234, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) case -int32(12): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1403, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1422, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(10): pMem = *(*uintptr)(unsafe.Pointer(pOp + 16)) if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Str) != 0 { zP4 = (*TMem)(unsafe.Pointer(pMem)).Fz } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1436, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1455, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1403, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1422, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Null) != 0 { - zP4 = __ccgo_ts + 1681 + zP4 = __ccgo_ts + 1695 } else { - zP4 = __ccgo_ts + 5173 + zP4 = __ccgo_ts + 5237 } } } } case -int32(11): pVtab = (*TVTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5180, libc.VaList(bp+40, pVtab)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5244, libc.VaList(bp+40, pVtab)) case -int32(14): ai = *(*uintptr)(unsafe.Pointer(pOp + 16)) n = *(*Tu32)(unsafe.Pointer(ai)) /* The first element of an INTARRAY is always the @@ -60843,15 +61171,15 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } else { v6 = int32(',') } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5188, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5252, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) goto _5 _5: ; i++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5193, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5257, int32(1)) case -int32(4): - zP4 = __ccgo_ts + 5195 + zP4 = __ccgo_ts + 5259 case -int32(5): zP4 = (*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FzName default: @@ -60867,10 +61195,10 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } var _encnames = [4]uintptr{ - 0: __ccgo_ts + 5140, - 1: __ccgo_ts + 5142, - 2: __ccgo_ts + 5144, - 3: __ccgo_ts + 5149, + 0: __ccgo_ts + 5204, + 1: __ccgo_ts + 5206, + 2: __ccgo_ts + 5208, + 3: __ccgo_ts + 5213, } // C documentation @@ -61821,7 +62149,7 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { retryCount = 0 /* Select a super-journal file name */ nMainFile = _sqlite3Strlen30(tls, zMainFile) - zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5203, libc.VaList(bp+24, 0, zMainFile, 0)) + zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5267, libc.VaList(bp+24, 0, zMainFile, 0)) if zSuper == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -61829,18 +62157,18 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { for cond := true; cond; cond = rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 8)) != 0 { if retryCount != 0 { if retryCount > int32(100) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5215, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5279, libc.VaList(bp+24, zSuper)) _sqlite3OsDelete(tls, pVfs, zSuper, 0) break } else { if retryCount == int32(1) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5229, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5293, libc.VaList(bp+24, zSuper)) } } } retryCount++ Xsqlite3_randomness(tls, int32(4), bp+12) - Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5244, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) + Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5308, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) /* The antipenultimate character of the super-journal name must ** be "9" to avoid name collisions when using 8+3 filenames. */ rc = _sqlite3OsAccess(tls, pVfs, zSuper, SQLITE_ACCESS_EXISTS, bp+8) @@ -62071,7 +62399,7 @@ func _sqlite3VdbeCheckFk(tls *libc.TLS, p uintptr, deferred int32) (r int32) { if deferred != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredCons+(*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons > 0 || !(deferred != 0) && (*TVdbe)(unsafe.Pointer(p)).FnFkConstraint > 0 { (*TVdbe)(unsafe.Pointer(p)).Frc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(3)< y { return +libc.Int32FromInt32(1) } - s = float64(i) - if s < r { + if float64(i) < r { v2 = -int32(1) } else { - v2 = libc.BoolInt32(s > r) + v2 = libc.BoolInt32(float64(i) > r) } return v2 } @@ -63380,7 +63707,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89131))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89580))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -63470,7 +63797,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || int32((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89212))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89661))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -63505,7 +63832,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = int32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+uint32(nStr) > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89242))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89691))) return 0 /* Corruption */ } else { if int32((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -63559,7 +63886,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += uint32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89293))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89742))) return 0 /* Corrupt index */ } } @@ -63673,6 +64000,7 @@ func _vdbeRecordCompareString(tls *libc.TLS, nKey1 int32, pKey1 uintptr, pPKey2 _, _, _, _, _, _ = aKey1, nCmp, nStr, res, szHdr, v1 aKey1 = pKey1 *(*int32)(unsafe.Pointer(bp)) = int32(int8(*(*Tu8)(unsafe.Pointer(aKey1 + 1)))) + goto vrcs_restart vrcs_restart: ; if *(*int32)(unsafe.Pointer(bp)) < int32(12) { @@ -63690,7 +64018,7 @@ vrcs_restart: szHdr = int32(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89456))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89905))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -63838,10 +64166,11 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr return SQLITE_OK /* Jump here if database corruption is detected after m has been ** allocated. Free the m object and return SQLITE_CORRUPT. */ + goto idx_rowid_corruption idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(89614)) + return _sqlite3CorruptError(tls, int32(90063)) } // C documentation @@ -63872,7 +64201,7 @@ func _sqlite3VdbeIdxKeyCompare(tls *libc.TLS, db uintptr, pC uintptr, pUnpacked ** that btreeParseCellPtr() and sqlite3GetVarint32() are implemented */ if nCellKey <= 0 || nCellKey > int64(0x7fffffff) { *(*int32)(unsafe.Pointer(res)) = 0 - return _sqlite3CorruptError(tls, int32(89647)) + return _sqlite3CorruptError(tls, int32(90096)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(nCellKey), bp) @@ -64023,15 +64352,15 @@ func _sqlite3NotPureFunc(tls *libc.TLS, pCtx uintptr) (r int32) { pOp = (*TVdbe)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe)).FaOp + uintptr((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FiOp)*24 if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_PureFunc) { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_IsCheck) != 0 { - zContext = __ccgo_ts + 5287 + zContext = __ccgo_ts + 5351 } else { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_GenCol) != 0 { - zContext = __ccgo_ts + 5306 + zContext = __ccgo_ts + 5370 } else { - zContext = __ccgo_ts + 5325 + zContext = __ccgo_ts + 5389 } } - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5334, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5398, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) return 0 @@ -64205,7 +64534,7 @@ func Xsqlite3_expired(tls *libc.TLS, pStmt uintptr) (r int32) { // */ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { if (*TVdbe)(unsafe.Pointer(p)).Fdb == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5370, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5434, 0) return int32(1) } else { return 0 @@ -64215,7 +64544,7 @@ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { func _vdbeSafetyNotNull(tls *libc.TLS, p uintptr) (r int32) { if p == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5415, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5479, 0) return int32(1) } else { return _vdbeSafety(tls, p) @@ -64273,7 +64602,7 @@ func Xsqlite3_finalize(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt db = (*TVdbe)(unsafe.Pointer(v)).Fdb if _vdbeSafety(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90035)) + return _sqlite3MisuseError(tls, int32(90484)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -64776,7 +65105,7 @@ func Xsqlite3_result_error_code(tls *libc.TLS, pCtx uintptr, errCode int32) { // /* Force an SQLITE_TOOBIG error. */ func Xsqlite3_result_error_toobig(tls *libc.TLS, pCtx uintptr) { (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = int32(SQLITE_TOOBIG) - _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5455, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) + _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5519, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) } // C documentation @@ -64855,6 +65184,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { _, _ = db, rc db = (*TVdbe)(unsafe.Pointer(p)).Fdb if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_RUN_STATE) { + goto restart_step restart_step: ; if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) == int32(VDBE_READY_STATE) { @@ -64952,6 +65282,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { rc = (*TVdbe)(unsafe.Pointer(p)).Frc } } + goto end_of_step end_of_step: ; /* There are only a limited number of result codes allowed from the @@ -64975,7 +65306,7 @@ func Xsqlite3_step(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt /* the prepared statement */ cnt = 0 /* The database connection */ if _vdbeSafetyNotNull(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90829)) + return _sqlite3MisuseError(tls, int32(91278)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -65105,7 +65436,7 @@ func _valueFromValueList(tls *libc.TLS, pVal uintptr, ppOut uintptr, bNext int32 _, _, _, _, _, _, _ = iOff, pOut, pRhs, rc, sz, zBuf, v1 *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) if pVal == uintptr(0) { - return _sqlite3MisuseError(tls, int32(90950)) + return _sqlite3MisuseError(tls, int32(91399)) } if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -65327,6 +65658,7 @@ func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, (*TAuxData)(unsafe.Pointer(pAuxData)).FpAux = pAux (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = xDelete return + goto failed failed: ; if xDelete != 0 { @@ -65564,18 +65896,18 @@ func Xsqlite3_column_type(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { // ** Column names appropriate for EXPLAIN or EXPLAIN QUERY PLAN. // */ var _azExplainColNames8 = [12]uintptr{ - 0: __ccgo_ts + 5478, - 1: __ccgo_ts + 5483, - 2: __ccgo_ts + 5490, - 3: __ccgo_ts + 5493, - 4: __ccgo_ts + 5496, - 5: __ccgo_ts + 5499, - 6: __ccgo_ts + 5502, - 7: __ccgo_ts + 5505, - 8: __ccgo_ts + 5513, - 9: __ccgo_ts + 5516, - 10: __ccgo_ts + 5523, - 11: __ccgo_ts + 5531, + 0: __ccgo_ts + 5542, + 1: __ccgo_ts + 5547, + 2: __ccgo_ts + 5554, + 3: __ccgo_ts + 5557, + 4: __ccgo_ts + 5560, + 5: __ccgo_ts + 5563, + 6: __ccgo_ts + 5566, + 7: __ccgo_ts + 5569, + 8: __ccgo_ts + 5577, + 9: __ccgo_ts + 5580, + 10: __ccgo_ts + 5587, + 11: __ccgo_ts + 5595, } var _azExplainColNames16data = [60]Tu16{ 0: uint16('a'), @@ -65709,6 +66041,7 @@ func _columnName(tls *libc.TLS, pStmt uintptr, N int32, useUtf16 int32, useType ret = uintptr(0) } } + goto columnName_end columnName_end: ; Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -65818,14 +66151,14 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { var v2 bool _, _, _ = pVar, v1, v2 if _vdbeSafetyNotNull(tls, p) != 0 { - return _sqlite3MisuseError(tls, int32(91554)) + return _sqlite3MisuseError(tls, int32(92003)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(91558))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(92007))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5538, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(91562)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5602, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) + return _sqlite3MisuseError(tls, int32(92011)) } if i >= uint32((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -66389,7 +66722,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp /* Test that this call is being made from within an SQLITE_DELETE or ** SQLITE_UPDATE pre-update callback, and that iIdx is within range. */ if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_INSERT) { - rc = _sqlite3MisuseError(tls, int32(92098)) + rc = _sqlite3MisuseError(tls, int32(92547)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -66435,6 +66768,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } } + goto preupdate_old_out preupdate_old_out: ; _sqlite3Error(tls, db, rc) @@ -66518,7 +66852,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp rc = SQLITE_OK p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(92221)) + rc = _sqlite3MisuseError(tls, int32(92670)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -66584,6 +66918,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } *(*uintptr)(unsafe.Pointer(ppValue)) = pMem + goto preupdate_new_out preupdate_new_out: ; _sqlite3Error(tls, db, rc) @@ -66691,7 +67026,7 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr break } } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5578, int32(3)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5642, int32(3)) Xsqlite3_str_append(tls, bp+8, zStart, int32(int64(zRawSql)-int64(zStart))) } } else { @@ -66723,13 +67058,13 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr nextIndex = v2 pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(*(*int32)(unsafe.Pointer(bp))-int32(1))*56 if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Null) != 0 { - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1681, int32(4)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1695, int32(4)) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1436, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1455, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5099, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5163, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Str) != 0 { /* Number of bytes of the string text to include in output */ enc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc @@ -66744,28 +67079,28 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr pVar = bp + 40 } nOut = (*TMem)(unsafe.Pointer(pVar)).Fn - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5582, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5646, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) if int32(enc) != int32(SQLITE_UTF8) { _sqlite3VdbeMemRelease(tls, bp+40) } } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Zero) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5589, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5653, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) } else { /* Number of bytes of the blob to include in output */ - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5602, int32(2)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5666, int32(2)) nOut1 = (*TMem)(unsafe.Pointer(pVar)).Fn i = 0 for { if !(i < nOut1) { break } - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5605, libc.VaList(bp+104, int32(*(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5669, libc.VaList(bp+104, int32(*(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) goto _3 _3: ; i++ } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5610, int32(1)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5674, int32(1)) } } } @@ -67365,7 +67700,7 @@ var _azTypes = [5]uintptr{ 1: __ccgo_ts + 1176, 2: __ccgo_ts + 1181, 3: __ccgo_ts + 1159, - 4: __ccgo_ts + 1681, + 4: __ccgo_ts + 1695, } // C documentation @@ -67379,7 +67714,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { defer tls.Free(976) var aCol, aMem, aOffset, aOp, aPermute, aRoot, apArg, apArg1, db, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pnErr, t1, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v240, v241, v242, v250, v251, v252, v253, v255, v263, v278, v279, v286, v288, v297, v298, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 uintptr var affinity int8 - var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 + var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, savedAnalysisLimit, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 var colCacheCtr, iAddr, iMap, iPrior, idx, len11, n3, p22, p23, serialType, serial_type, v213, v214, v216, v221, v222 Tu32 var encoding, isWriteLock, mTrace, op, p5, resetSchemaOnFault, vtabOnConflict, v225 Tu8 var flags1, flags11, flags2, flags3, flags31, newType, nullFlag, type1, type2, typeMask, v190 Tu16 @@ -67436,7 +67771,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { var _ /* z at bp+688 */ uintptr var _ /* zErr at bp+632 */ uintptr var _ /* zErr at bp+792 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, savedAnalysisLimit, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 aOp = (*TVdbe)(unsafe.Pointer(p)).FaOp /* Copy of p->aOp */ pOp = aOp /* Current operation */ rc = SQLITE_OK /* Value to return */ @@ -67706,7 +68041,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto _109 case int32(OP_SeekEnd): goto _110 - case int32(OP_IfSmaller): + case int32(OP_IfSizeBetween): goto _111 case int32(OP_Sort): goto _112 @@ -67908,6 +68243,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { */ _2: ; /* jump */ + goto jump_to_p2_and_check_for_interrupt jump_to_p2_and_check_for_interrupt: ; pOp = aOp + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp2-int32(1))*24 @@ -67921,6 +68257,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** way for performance, to avoid having to run the interrupt and progress ** checks on every opcode. This helps sqlite3_step() to run about 1.5% ** faster according to "valgrind --tool=cachegrind" */ + goto check_for_interrupt check_for_interrupt: ; if libc.AtomicLoadNInt32(db+432, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0 { @@ -67998,7 +68335,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: EndCoroutine */ _5: - ; /* jump */ + ; /* jump0 */ pOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 *(*Ti64)(unsafe.Pointer(pOut)) = int64((*TOp)(unsafe.Pointer(pOp)).Fp3 - int32(1)) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Int) @@ -68007,6 +68344,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* Most jump operations do a goto to this spot in order to update ** the pOp pointer. */ + goto jump_to_p2 jump_to_p2: ; /* There are never any jumps to instruction 0 */ @@ -68017,7 +68355,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** ** The instruction at the address in register P1 is a Yield. ** Jump to the P2 parameter of that Yield. - ** After the jump, register P1 becomes undefined. + ** After the jump, the value register P1 is left with a value + ** such that subsequent OP_Yields go back to the this same + ** OP_EndCoroutine instruction. ** ** See also: InitCoroutine */ @@ -68025,8 +68365,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 pCaller = aOp + uintptr(*(*Ti64)(unsafe.Pointer(pIn1)))*24 + *(*Ti64)(unsafe.Pointer(pIn1)) = int64(int32((int64(pOp)-int64((*TVdbe)(unsafe.Pointer(p)).FaOp))/24) - int32(1)) pOp = aOp + uintptr((*TVdbeOp)(unsafe.Pointer(pCaller)).Fp2-int32(1))*24 - (*TMem)(unsafe.Pointer(pIn1)).Fflags = uint16(MEM_Undefined) goto _187 /* Opcode: Yield P1 P2 * * * ** @@ -68122,15 +68462,15 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TVdbe)(unsafe.Pointer(p)).FerrorAction = uint8((*TOp)(unsafe.Pointer(pOp)).Fp2) if (*TVdbe)(unsafe.Pointer(p)).Frc != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+5646, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) + _sqlite3VdbeError(tls, p, __ccgo_ts+5710, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) if *(*uintptr)(unsafe.Pointer(pOp + 16)) != 0 { - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5667, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5731, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } } else { - _sqlite3VdbeError(tls, p, __ccgo_ts+3827, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3891, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } pcx = int32((int64(pOp) - int64(aOp)) / 24) - Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5674, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) + Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5738, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) } rc = _sqlite3VdbeHalt(tls, p) if rc == int32(SQLITE_BUSY) { @@ -68321,13 +68661,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } (*TMem)(unsafe.Pointer(pOut)).Fenc = encoding goto _187 - /* Opcode: Variable P1 P2 * P4 * - ** Synopsis: r[P2]=parameter(P1,P4) + /* Opcode: Variable P1 P2 * * * + ** Synopsis: r[P2]=parameter(P1) ** ** Transfer the values of bound parameter P1 into register P2 - ** - ** If the parameter is named, then its name appears in P4. - ** The P4 value is used by sqlite3_bind_parameter_name(). */ _19: ; /* Value being transferred */ @@ -68618,6 +68955,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(int32(type1)&int32(type2)&int32(MEM_Int) != 0) { goto _200 } + goto int_math int_math: ; iA = *(*Ti64)(unsafe.Pointer(pIn1)) @@ -68670,6 +69008,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if int32(type1)&int32(type2)&int32(MEM_Int) != 0 { goto int_math } + goto fp_math fp_math: ; rA = _sqlite3VdbeRealValue(tls, pIn1) @@ -68709,6 +69048,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _201: ; goto _187 + goto arithmetic_result_is_null arithmetic_result_is_null: ; _sqlite3VdbeMemSetNull(tls, pOut) @@ -68847,7 +69187,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** raise an SQLITE_MISMATCH exception. */ _38: - ; /* jump, in1 */ + ; /* jump0, in1 */ pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 if int32((*TMem)(unsafe.Pointer(pIn1)).Fflags)&int32(MEM_Int) == 0 { _applyAffinity(tls, pIn1, int8(SQLITE_AFF_NUMERIC), encoding) @@ -69576,6 +69916,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* PseudoTable input register */ pC3 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) p22 = uint32((*TOp)(unsafe.Pointer(pOp)).Fp2) + goto op_column_restart op_column_restart: ; aOffset = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaOffset @@ -69702,6 +70043,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { zData = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaRow } /* Fill in pC->aType[i] and aOffset[i] values through the p2-th field. */ + goto op_column_read_header op_column_read_header: ; i1 = int32((*TVdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed) @@ -69839,16 +70181,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } } + goto op_column_out op_column_out: ; goto _187 + goto op_column_corrupt op_column_corrupt: ; if (*(*TOp)(unsafe.Pointer(aOp))).Fp3 > 0 { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(95863)) + rc = _sqlite3CorruptError(tls, int32(96311)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -69948,9 +70292,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { i2++ } goto _187 + goto vdbe_type_error vdbe_type_error: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5698, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) + _sqlite3VdbeError(tls, p, __ccgo_ts+5762, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(12)< 0 && p12 == int32(SAVEPOINT_RELEASE) { /* It is not possible to release (commit) a savepoint if there are ** active write statements. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5812, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5876, 0) rc = int32(SQLITE_BUSY) } else { /* Determine whether or not this is a transaction savepoint. If so, @@ -70546,7 +70891,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If this instruction implements a COMMIT and other VMs are writing ** return an error indicating that the other VMs must complete first. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5866, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5930, 0) rc = int32(SQLITE_BUSY) goto abort_due_to_error } else { @@ -70576,12 +70921,12 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto vdbe_return } else { if !(desiredAutoCommit != 0) { - v250 = __ccgo_ts + 5921 + v250 = __ccgo_ts + 5985 } else { if iRollback != 0 { - v251 = __ccgo_ts + 5969 + v251 = __ccgo_ts + 6033 } else { - v251 = __ccgo_ts + 6012 + v251 = __ccgo_ts + 6076 } v250 = v251 } @@ -70673,7 +71018,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** SQL statement was prepared. */ _sqlite3DbFree(tls, db, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg) - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6053) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6117) /* If the schema-cookie from the database file matches the cookie ** stored with the in-memory representation of the schema, do ** not reload the schema from the database file. @@ -70911,6 +71256,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** and report database corruption if they were not, but this check has ** since moved into the btree layer. */ (*TVdbeCursor)(unsafe.Pointer(pCur)).FisTable = libc.BoolUint8(int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) != -int32(8)) + goto open_cursor_set_hints open_cursor_set_hints: ; _sqlite3BtreeCursorHintFlags(tls, *(*uintptr)(unsafe.Pointer(pCur + 48)), uint32(int32((*TOp)(unsafe.Pointer(pOp)).Fp5)&(libc.Int32FromInt32(OPFLAG_BULKCSR)|libc.Int32FromInt32(OPFLAG_SEEKEQ)))) @@ -70990,7 +71336,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** form sqlite3BtreeInsert() where the length of the data is zero. */ /* Only used when number of columns is zero */ (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fn = 0 - (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1680 + (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1694 } pCx1 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) if pCx1 != 0 && !(int32(TBool(*(*uint8)(unsafe.Pointer(pCx1 + 8))&0x8>>3)) != 0) && (*TOp)(unsafe.Pointer(pOp)).Fp2 <= int32((*TVdbeCursor)(unsafe.Pointer(pCx1)).FnField) { @@ -71095,7 +71441,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** is the only cursor opcode that works with a pseudo-table. ** ** P3 is the number of fields in the records that will be stored by - ** the pseudo-table. + ** the pseudo-table. If P2 is 0 or negative then the pseudo-cursor + ** will return NULL for every column. */ _83: ; @@ -71213,11 +71560,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: Found, NotFound, SeekGt, SeekGe, SeekLt */ _88: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _87: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _86: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _85: ; /* Only interested in == results */ pC5 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) @@ -71347,6 +71694,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 112)) = _sqlite3BtreeEof(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48))) } } + goto seek_not_found seek_not_found: ; if *(*int32)(unsafe.Pointer(bp + 112)) != 0 { @@ -71452,6 +71800,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(*(*int32)(unsafe.Pointer(bp + 160)) > 0 && int32((*TOp)(unsafe.Pointer(pOp)).Fp5) == 0) { goto _259 } + goto seekscan_search_fail seekscan_search_fail: ; /* Jump to SeekGE.P2, ending the loop */ @@ -71762,6 +72111,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* jump, in3, ncycle */ pIn3 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 iKey1 = uint64(*(*Ti64)(unsafe.Pointer(pIn3))) + goto notExistsWithKey notExistsWithKey: ; pC10 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) @@ -71775,7 +72125,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TVdbeCursor)(unsafe.Pointer(pC10)).FseekResult = *(*int32)(unsafe.Pointer(bp + 248)) if *(*int32)(unsafe.Pointer(bp + 248)) != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp2 == 0 { - rc = _sqlite3CorruptError(tls, int32(98111)) + rc = _sqlite3CorruptError(tls, int32(98565)) } else { goto jump_to_p2 } @@ -72375,10 +72725,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } goto _187 - /* Opcode: IfSmaller P1 P2 P3 * * + /* Opcode: IfSizeBetween P1 P2 P3 P4 * ** - ** Estimate the number of rows in the table P1. Jump to P2 if that - ** estimate is less than approximately 2**(0.1*P3). + ** Let N be the approximate number of rows in the table or index + ** with cursor P1 and let X be 10*log2(N) if N is positive or -1 + ** if N is zero. + ** + ** Jump to P2 if X is in between P3 and P4, inclusive. */ _111: ; @@ -72388,12 +72741,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { goto abort_due_to_error } - if *(*int32)(unsafe.Pointer(bp + 396)) == 0 { + if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { + sz = int64(-int32(1)) /* -Infinity encoding */ + } else { sz = _sqlite3BtreeRowCountEst(tls, pCrsr5) - if sz >= 0 && int32(_sqlite3LogEst(tls, uint64(sz))) < (*TOp)(unsafe.Pointer(pOp)).Fp3 { - *(*int32)(unsafe.Pointer(bp + 396)) = int32(1) - } + sz = int64(_sqlite3LogEst(tls, uint64(sz))) } + *(*int32)(unsafe.Pointer(bp + 396)) = libc.BoolInt32(sz >= int64((*TOp)(unsafe.Pointer(pOp)).Fp3) && sz <= int64((*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { goto jump_to_p2 } @@ -72529,6 +72883,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* jump, ncycle */ pC22 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) rc = _sqlite3BtreeNext(tls, *(*uintptr)(unsafe.Pointer(pC22 + 48)), (*TOp)(unsafe.Pointer(pOp)).Fp3) + goto next_tail next_tail: ; (*TVdbeCursor)(unsafe.Pointer(pC22)).FcacheStatus = uint32(CACHE_STALE) @@ -72661,7 +73016,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } else { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 && !(_sqlite3WritableSchema(tls, db) != 0) { - rc = _sqlite3ReportError(tls, libc.Int32FromInt32(SQLITE_CORRUPT)|libc.Int32FromInt32(3)< int64(0x7fffffff) { - rc = _sqlite3CorruptError(tls, int32(99398)) + rc = _sqlite3CorruptError(tls, int32(99862)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -72958,11 +73313,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } *(*Ti64)(unsafe.Pointer(pOut)) = int64(*(*TPgno)(unsafe.Pointer(bp + 624))) goto _187 - /* Opcode: SqlExec * * * P4 * + /* Opcode: SqlExec P1 P2 * P4 * ** ** Run the SQL statement or statements specified in the P4 string. - ** Disable Auth and Trace callbacks while those statements are running if - ** P1 is true. + ** + ** The P1 parameter is a bitmask of options: + ** + ** 0x0001 Disable Auth and Trace callbacks while the statements + ** in P4 are running. + ** + ** 0x0002 Set db->nAnalysisLimit to P2 while the statements in + ** P4 are running. + ** */ _132: ; @@ -72970,16 +73332,21 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*uintptr)(unsafe.Pointer(bp + 632)) = uintptr(0) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth mTrace = (*Tsqlite3)(unsafe.Pointer(db)).FmTrace - if (*TOp)(unsafe.Pointer(pOp)).Fp1 != 0 { + savedAnalysisLimit = (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0001) != 0 { (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(0) } + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0002) != 0 { + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = (*TOp)(unsafe.Pointer(pOp)).Fp2 + } rc = Xsqlite3_exec(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16)), uintptr(0), uintptr(0), bp+632) (*Tsqlite3)(unsafe.Pointer(db)).FnSqlExec-- (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = mTrace + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = savedAnalysisLimit if *(*uintptr)(unsafe.Pointer(bp + 632)) != 0 || rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3827, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3891, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 632))) if rc == int32(SQLITE_NOMEM) { goto no_mem @@ -73010,13 +73377,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_SchemaChange) libc.SetBitFieldPtr16Uint32(p+200, libc.Uint32FromInt32(0), 0, 0x3) } else { - zSchema = __ccgo_ts + 6098 + zSchema = __ccgo_ts + 6162 (*(*TInitData)(unsafe.Pointer(bp + 640))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 640))).FiDb = iDb3 (*(*TInitData)(unsafe.Pointer(bp + 640))).FpzErrMsg = p + 168 (*(*TInitData)(unsafe.Pointer(bp + 640))).FmInitFlags = uint32(0) (*(*TInitData)(unsafe.Pointer(bp + 640))).FmxPage = _sqlite3BtreeLastPage(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6112, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6176, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -73031,7 +73398,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* The OP_ParseSchema opcode with a non-NULL P4 argument should parse ** at least one SQL statement. Any less than that indicates that ** the sqlite_schema table is corrupt. */ - rc = _sqlite3CorruptError(tls, int32(99678)) + rc = _sqlite3CorruptError(tls, int32(100155)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -73097,11 +73464,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* Opcode: IntegrityCk P1 P2 P3 P4 P5 ** ** Do an analysis of the currently open database. Store in - ** register P1 the text of an error message describing any problems. - ** If no problems are found, store a NULL in register P1. + ** register (P1+1) the text of an error message describing any problems. + ** If no problems are found, store a NULL in register (P1+1). ** - ** The register P3 contains one less than the maximum number of allowed errors. - ** At most reg(P3) errors will be reported. + ** The register (P1) contains one less than the maximum number of allowed + ** errors. At most reg(P1) errors will be reported. ** In other words, the analysis stops as soon as reg(P1) errors are ** seen. Reg(P1) is updated with the number of errors remaining. ** @@ -73117,9 +73484,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* Register keeping track of errors remaining */ nRoot = (*TOp)(unsafe.Pointer(pOp)).Fp2 aRoot = *(*uintptr)(unsafe.Pointer(pOp + 16)) - pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 - pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 - rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) + pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 + pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1+int32(1))*56 + rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, aMem+uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) _sqlite3VdbeMemSetNull(tls, pIn1) if *(*int32)(unsafe.Pointer(bp + 680)) == 0 { } else { @@ -73225,7 +73592,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** P1 contains the address of the memory cell that contains the first memory ** cell in an array of values used as arguments to the sub-program. P2 ** contains the address to jump to if the sub-program throws an IGNORE - ** exception using the RAISE() function. Register P3 contains the address + ** exception using the RAISE() function. P2 might be zero, if there is + ** no possibility that an IGNORE exception will be raised. + ** Register P3 contains the address ** of a memory cell in this (the parent) VM that is used to allocate the ** memory required by the sub-vdbe at runtime. ** @@ -73266,7 +73635,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } if (*TVdbe)(unsafe.Pointer(p)).FnFrame >= *(*int32)(unsafe.Pointer(db + 136 + 10*4)) { rc = int32(SQLITE_ERROR) - _sqlite3VdbeError(tls, p, __ccgo_ts+6155, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6219, 0) goto abort_due_to_error } /* Register pRt is used to store the memory required to save the state @@ -73629,7 +73998,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* IMP: R-24505-23230 */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3827, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3891, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError } if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FskipFlag != 0 { @@ -73685,7 +74054,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3VdbeMemFinalize(tls, pMem3, *(*uintptr)(unsafe.Pointer(pOp + 16))) } if rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3827, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3891, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) goto abort_due_to_error } _sqlite3VdbeChangeEncoding(tls, pMem3, int32(encoding)) @@ -73764,11 +74133,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeRead > int32(1) { rc = int32(SQLITE_ERROR) if eNew == int32(PAGER_JOURNALMODE_WAL) { - v286 = __ccgo_ts + 6192 + v286 = __ccgo_ts + 6256 } else { - v286 = __ccgo_ts + 6197 + v286 = __ccgo_ts + 6261 } - _sqlite3VdbeError(tls, p, __ccgo_ts+6204, libc.VaList(bp+944, v286)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6268, libc.VaList(bp+944, v286)) goto abort_due_to_error } else { if eOld == int32(PAGER_JOURNALMODE_WAL) { @@ -73921,7 +74290,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { if rc&int32(0xFF) == int32(SQLITE_LOCKED) { z1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - _sqlite3VdbeError(tls, p, __ccgo_ts+6256, libc.VaList(bp+944, z1)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6320, libc.VaList(bp+944, z1)) } goto abort_due_to_error } @@ -74083,7 +74452,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TValueList)(unsafe.Pointer(pRhs)).FpOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 pOut = _out2Prerelease(tls, p, pOp) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6285, __ccgo_fp(_sqlite3VdbeValueListFree)) + _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6349, __ccgo_fp(_sqlite3VdbeValueListFree)) goto _187 /* Opcode: VFilter P1 P2 P3 P4 * ** Synopsis: iplan=r[P3] zplan='P4' @@ -74179,7 +74548,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_module)(unsafe.Pointer(pModule4)).FxColumn})))(tls, *(*uintptr)(unsafe.Pointer(pCur5 + 48)), bp+800, (*TOp)(unsafe.Pointer(pOp)).Fp2) _sqlite3VtabImportErrmsg(tls, p, pVtab4) if (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3827, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3891, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) rc = (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError } _sqlite3VdbeChangeEncoding(tls, pDest2, int32(encoding)) @@ -74433,7 +74802,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If the function returned an error, throw an exception */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3827, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3891, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError } _sqlite3VdbeDeleteAuxData(tls, db, p+296, (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FiOp, (*TOp)(unsafe.Pointer(pOp)).Fp1) @@ -74584,7 +74953,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { Xsqlite3_free(tls, z2) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeExec > int32(1) { - z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6295, libc.VaList(bp+944, zTrace)) + z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6359, libc.VaList(bp+944, zTrace)) (*(*func(*libc.TLS, Tu32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*Tsqlite3)(unsafe.Pointer(db)).Ftrace))})))(tls, uint32(SQLITE_TRACE_STMT), (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg, p, z3) _sqlite3DbFree(tls, db, z3) } else { @@ -74649,21 +75018,22 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If we reach this point, it means that execution is finished with ** an error of some kind. */ + goto abort_due_to_error abort_due_to_error: ; if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)<= nProgressLimit && (*Tsqlite3)(unsafe.Pointer(db)).FxProgress != uintptr(0) { @@ -74698,22 +75069,25 @@ vdbe_return: /* Jump to here if a string or blob larger than SQLITE_MAX_LENGTH ** is encountered. */ + goto too_big too_big: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5455, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5519, 0) rc = int32(SQLITE_TOOBIG) goto abort_due_to_error /* Jump to here if a malloc() fails. */ + goto no_mem no_mem: ; _sqlite3OomFault(tls, db) - _sqlite3VdbeError(tls, p, __ccgo_ts+1650, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+1664, 0) rc = int32(SQLITE_NOMEM) goto abort_due_to_error /* Jump to here if the sqlite3_interrupt() API sets the interrupt ** flag. */ + goto abort_due_to_interrupt abort_due_to_interrupt: ; rc = int32(SQLITE_INTERRUPT) @@ -74722,10 +75096,10 @@ abort_due_to_interrupt: } var _azType = [4]uintptr{ - 0: __ccgo_ts + 5612, - 1: __ccgo_ts + 5621, - 2: __ccgo_ts + 5628, - 3: __ccgo_ts + 5634, + 0: __ccgo_ts + 5676, + 1: __ccgo_ts + 5685, + 2: __ccgo_ts + 5692, + 3: __ccgo_ts + 5698, } var _and_logic = [9]uint8{ @@ -74876,16 +75250,16 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr type1 = v1 if type1 < uint32(12) { if type1 == uint32(0) { - v2 = __ccgo_ts + 1666 + v2 = __ccgo_ts + 1680 } else { if type1 == uint32(7) { - v3 = __ccgo_ts + 6333 + v3 = __ccgo_ts + 6397 } else { - v3 = __ccgo_ts + 6338 + v3 = __ccgo_ts + 6402 } v2 = v3 } - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6346, libc.VaList(bp+8, v2)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6410, libc.VaList(bp+8, v2)) rc = int32(SQLITE_ERROR) Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) @@ -74903,10 +75277,10 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr rc = Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) if rc == SQLITE_OK { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6375, libc.VaList(bp+8, iRow)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6439, libc.VaList(bp+8, iRow)) rc = int32(SQLITE_ERROR) } else { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3827, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3891, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) } } } @@ -74946,15 +75320,15 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, pTab = _sqlite3LocateTable(tls, bp+8, uint32(0), zTable, zDb) if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6395, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6459, libc.VaList(bp+440, zTable)) } if pTab != 0 && !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6425, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6489, libc.VaList(bp+440, zTable)) } if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6461, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6525, libc.VaList(bp+440, zTable)) } if !(pTab != 0) { if (*(*TParse)(unsafe.Pointer(bp + 8))).FzErrMsg != 0 { @@ -74984,7 +75358,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6482, libc.VaList(bp+440, zColumn)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6546, libc.VaList(bp+440, zColumn)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -75010,7 +75384,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, break } if (*(*TsColMap)(unsafe.Pointer(pFKey + 64 + uintptr(j)*16))).FiFrom == iCol { - zFault = __ccgo_ts + 6503 + zFault = __ccgo_ts + 6567 } goto _3 _3: @@ -75035,7 +75409,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } /* FIXME: Be smarter about indexes that use expressions */ if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == iCol || int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == -int32(2) { - zFault = __ccgo_ts + 6515 + zFault = __ccgo_ts + 6579 } goto _5 _5: @@ -75049,7 +75423,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if zFault != 0 { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6523, libc.VaList(bp+440, zFault)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6587, libc.VaList(bp+440, zFault)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -75109,6 +75483,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } _sqlite3ParseObjectReset(tls, bp+8) } + goto blob_open_out blob_open_out: ; if rc == SQLITE_OK && int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { @@ -75120,7 +75495,7 @@ blob_open_out: _sqlite3DbFree(tls, db, pBlob) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v7 = __ccgo_ts + 3827 + v7 = __ccgo_ts + 3891 } else { v7 = libc.UintptrFromInt32(0) } @@ -75210,7 +75585,7 @@ func _blobReadWrite(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset in _, _, _, _, _ = db, iKey, p, rc, v p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102190)) + return _sqlite3MisuseError(tls, int32(102671)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -75309,7 +75684,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r _, _, _, _ = db, p, rc, v1 p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102290)) + return _sqlite3MisuseError(tls, int32(102771)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -75323,7 +75698,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r rc = _blobSeekToRow(tls, p, iRow, bp) if rc != SQLITE_OK { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v1 = __ccgo_ts + 3827 + v1 = __ccgo_ts + 3891 } else { v1 = libc.UintptrFromInt32(0) } @@ -79439,25 +79814,25 @@ func _extendFJMatch(tls *libc.TLS, pParse uintptr, ppList uintptr, pMatch uintpt func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema uintptr) (r int32) { var zLegacy uintptr _ = zLegacy - if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6557, int32(7)) != 0 { + if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6621, int32(7)) != 0 { return 0 } zLegacy = (*TTable)(unsafe.Pointer(pTab)).FzName - if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6565+7) == 0 { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6584+7) == 0 { + if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6629+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6648+7) == 0 { return int32(1) } if pSchema == uintptr(0) { return 0 } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6098+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6162+7) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6603+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6667+7) == 0 { return int32(1) } } else { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6603+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6667+7) == 0 { return int32(1) } } @@ -79493,26 +79868,27 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema // ** If the name cannot be resolved unambiguously, leave an error message // ** in pParse and return WRC_Abort. Return WRC_Prune on success. // */ -func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol uintptr, pNC uintptr, pExpr uintptr) (r int32) { +func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRight uintptr, pNC uintptr, pExpr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var cnt, cntTab, eNewExprOp, hit, i, iCol, j, nSubquery, op, v5 int32 - var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10 uintptr + var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10 uintptr var hCol, hCol1 Tu8 var v7, v8 uint32 var _ /* bRowid at bp+8 */ int32 var _ /* pFJMatch at bp+0 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10, v5, v7, v8 /* Loop counters */ - cnt = 0 /* Number of matching column names */ - cntTab = 0 /* Number of potential "rowid" matches */ - nSubquery = 0 /* How many levels of subquery */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ - pMatch = uintptr(0) /* The matching pSrcList item */ - pTopNC = pNC /* First namecontext in the list */ - pSchema = uintptr(0) /* Schema of the expression */ - eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ - pTab = uintptr(0) /* A column of pTab */ - *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10, v5, v7, v8 /* Loop counters */ + cnt = 0 /* Number of matching column names */ + cntTab = 0 /* Number of potential "rowid" matches */ + nSubquery = 0 /* How many levels of subquery */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ + pMatch = uintptr(0) /* The matching pSrcList item */ + pTopNC = pNC /* First namecontext in the list */ + pSchema = uintptr(0) /* Schema of the expression */ + eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ + pTab = uintptr(0) /* A column of pTab */ + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + zCol = *(*uintptr)(unsafe.Pointer(pRight + 8)) /* the name context cannot be NULL. */ /* The Z in X.Y.Z cannot be NULL */ /* Initialize the node to no-match */ @@ -79543,7 +79919,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ; i++ } - if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6617, zDb) == 0 { + if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6681, zDb) == 0 { /* This branch is taken when the main database has been renamed ** using SQLITE_DBCONFIG_MAINDBNAME. */ pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema @@ -79636,7 +80012,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TTable)(unsafe.Pointer(pTab)).FpSchema != pSchema { goto _2 } - if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6622) != 0 { + if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6686) != 0 { goto _2 } } @@ -79748,16 +80124,16 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != uintptr(0) { op = int32((*TParse)(unsafe.Pointer(pParse)).FeTriggerOp) if (*TParse)(unsafe.Pointer(pParse)).FbReturning != 0 { - if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0) { + if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0 || _isValidSchemaTableName(tls, zTab, (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab, uintptr(0)) != 0) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = libc.BoolInt32(op != int32(TK_DELETE)) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } } else { - if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6624, zTab) == 0 { + if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6688, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(1) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } else { - if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6628, zTab) == 0 { + if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6692, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = 0 pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } @@ -79766,7 +80142,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UUpsert) != 0 && zTab != uintptr(0) { pUpsert = *(*uintptr)(unsafe.Pointer(pNC + 16)) - if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6632, zTab) == 0 { + if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6696, zTab) == 0 { pTab = (*(*TSrcItem)(unsafe.Pointer((*TUpsert)(unsafe.Pointer(pUpsert)).FpUpsertSrc + 8))).FpTab (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(EXCLUDED_TABLE_NUMBER) } @@ -79882,15 +80258,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if int32(uint32(*(*uint16)(unsafe.Pointer(pEList + 8 + uintptr(j)*32 + 16 + 4))&0x3>>0)) == ENAME_NAME && Xsqlite3_stricmp(tls, zAs, zCol) == 0 { pOrig = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(j)*32))).FpExpr if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 && (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6641, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6705, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Win)) != uint32(0) && ((*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 || pNC != pTopNC) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6672, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6736, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if _sqlite3ExprVectorSize(tls, pOrig) != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6709, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6773, 0) return int32(WRC_Abort) } _resolveAlias(tls, pParse, pEList, j, pExpr, nSubquery) @@ -79942,7 +80318,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** a huge amount of legacy SQL that uses it. So for now, we just ** issue a warning. */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6727, libc.VaList(bp+24, zCol)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6791, libc.VaList(bp+24, zCol)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_STRING) libc.Xmemset(tls, pExpr+64, 0, uint64(8)) return int32(WRC_Prune) @@ -79971,7 +80347,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } _extendFJMatch(tls, pParse, bp, pMatch, (*TExpr)(unsafe.Pointer(pExpr)).FiColumn) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_FUNCTION) - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6762 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6826 *(*uintptr)(unsafe.Pointer(pExpr + 32)) = *(*uintptr)(unsafe.Pointer(bp)) cnt = int32(1) goto lookupname_end @@ -79981,18 +80357,22 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } } if cnt == 0 { - v10 = __ccgo_ts + 6771 + v10 = __ccgo_ts + 6835 } else { - v10 = __ccgo_ts + 6786 + v10 = __ccgo_ts + 6850 } zErr = v10 if zDb != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6808, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6872, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) } else { if zTab != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6821, libc.VaList(bp+24, zErr, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6885, libc.VaList(bp+24, zErr, zTab, zCol)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6831, libc.VaList(bp+24, zErr, zCol)) + if cnt == 0 && (*TExpr)(unsafe.Pointer(pRight)).Fflags&uint32(libc.Int32FromInt32(EP_DblQuoted)) != uint32(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6895, libc.VaList(bp+24, zErr, zCol)) + } else { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6956, libc.VaList(bp+24, zErr, zCol)) + } } } _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -80022,10 +80402,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** If a generated column is referenced, set bits for every column ** of the table. */ - if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 && cnt == int32(1) && pMatch != uintptr(0) { - *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + if pMatch != 0 { + if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { + *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + } else { + libc.SetBitFieldPtr16Uint32(pMatch+60+4, libc.Uint32FromInt32(1), 14, 0x4000) + } } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(eNewExprOp) + goto lookupname_end lookupname_end: ; if cnt == int32(1) { @@ -80115,19 +80500,19 @@ func _notValidImpl(tls *libc.TLS, pParse uintptr, pNC uintptr, zMsg uintptr, pEx defer tls.Free(32) var zIn uintptr _ = zIn - zIn = __ccgo_ts + 6838 + zIn = __ccgo_ts + 6963 if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IdxExpr) != 0 { - zIn = __ccgo_ts + 6866 + zIn = __ccgo_ts + 6991 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IsCheck) != 0 { - zIn = __ccgo_ts + 6884 + zIn = __ccgo_ts + 7009 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_GenCol) != 0 { - zIn = __ccgo_ts + 6902 + zIn = __ccgo_ts + 7027 } } } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6920, libc.VaList(bp+8, zMsg, zIn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7045, libc.VaList(bp+8, zMsg, zIn)) if pExpr != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } @@ -80175,8 +80560,8 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { var anRef [8]int32 var auth, i, is_agg, n, nLeft, nRef, nRight, no_such_func, rc, savedAllowFlags, wrong_num_args, v12, v4, v6, v7 int32 var enc Tu8 - var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zColumn, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zColumn, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 + var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 pNC = *(*uintptr)(unsafe.Pointer(pWalker + 40)) pParse = (*TNameContext)(unsafe.Pointer(pNC)).FpParse switch int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) { @@ -80295,11 +80680,11 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_ID) { zDb = uintptr(0) zTable = uintptr(0) - zColumn = *(*uintptr)(unsafe.Pointer(pExpr + 8)) + pRight = pExpr } else { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+6940, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7065, uintptr(0), pExpr) } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_ID) { @@ -80310,13 +80695,12 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { pRight = (*TExpr)(unsafe.Pointer(pRight)).FpRight } zTable = *(*uintptr)(unsafe.Pointer(pLeft + 8)) - zColumn = *(*uintptr)(unsafe.Pointer(pRight + 8)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameTokenRemap(tls, pParse, pExpr, pRight) _sqlite3RenameTokenRemap(tls, pParse, pExpr+64, pLeft) } } - return _lookupName(tls, pParse, zDb, zTable, zColumn, pNC, pExpr) + return _lookupName(tls, pParse, zDb, zTable, pRight, pNC, pExpr) /* Resolve function names */ fallthrough @@ -80355,7 +80739,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if n == int32(2) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = _exprProbability(tls, (*(*TExprList_item)(unsafe.Pointer(pList + 8 + 1*32))).FpExpr) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6957, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7082, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } } else { @@ -80379,7 +80763,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { auth = _sqlite3AuthCheck(tls, pParse, int32(SQLITE_FUNCTION), uintptr(0), (*TFuncDef)(unsafe.Pointer(pDef)).FzName, uintptr(0)) if auth != SQLITE_OK { if auth == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7021, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7146, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) @@ -80400,7 +80784,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { ** in a CHECK constraint. SQLServer, MySQL, and PostgreSQL all ** all this. */ if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7057, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7182, uintptr(0), pExpr) } } else { /* Must fit in 8 bits */ @@ -80424,29 +80808,29 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { } if 0 == libc.BoolInt32(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME)) { if pDef != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FxValue == uintptr(0) && pWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7085, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7210, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 || is_agg != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 && !(pWin != 0) || is_agg != 0 && pWin != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 { if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 || pWin != 0 { - zType = __ccgo_ts + 7128 + zType = __ccgo_ts + 7253 } else { - zType = __ccgo_ts + 7135 + zType = __ccgo_ts + 7260 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7145, libc.VaList(bp+8, zType, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7270, libc.VaList(bp+8, zType, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ is_agg = 0 } else { if no_such_func != 0 && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7173, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7298, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if wrong_num_args != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7195, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7320, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7239, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7364, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { @@ -80470,7 +80854,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { *(*int32)(unsafe.Pointer(pNC + 40)) &= ^(libc.Int32FromInt32(NC_AllowWin) | v7) } } else { - if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { is_agg = int32(1) } } @@ -80531,18 +80915,19 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) { nRef = (*TNameContext)(unsafe.Pointer(pNC)).FnRef if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_SelfRef) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7287, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7412, pExpr, pExpr) } else { _sqlite3WalkSelect(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 32))) } if nRef != (*TNameContext)(unsafe.Pointer(pNC)).FnRef { *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 4)) |= uint32(SF_Correlated) } *(*int32)(unsafe.Pointer(pNC + 40)) |= int32(NC_Subquery) } case int32(TK_VARIABLE): if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IsCheck)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7298, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7423, pExpr, pExpr) } case int32(TK_IS): fallthrough @@ -80588,7 +80973,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { nRight = _sqlite3ExprVectorSize(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight) } if nLeft != nRight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6709, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6773, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } break @@ -80713,7 +81098,7 @@ func _resolveOrderByTermToExprList(tls *libc.TLS, pParse uintptr, pSelect uintpt func _resolveOutOfRangeError(tls *libc.TLS, pParse uintptr, zType uintptr, i int32, mx int32, pError uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7309, libc.VaList(bp+8, i, zType, mx)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7434, libc.VaList(bp+8, i, zType, mx)) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pError) } @@ -80748,7 +81133,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7365, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7490, 0) return int32(1) } i = 0 @@ -80786,7 +81171,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } if _sqlite3ExprIsInteger(tls, pE, bp) != 0 { if *(*int32)(unsafe.Pointer(bp)) <= 0 || *(*int32)(unsafe.Pointer(bp)) > (*TExprList)(unsafe.Pointer(pEList)).FnExpr { - _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7399, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) + _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7524, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) return int32(1) } } else { @@ -80856,7 +81241,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r break } if int32(uint32(*(*uint16)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32 + 16 + 4))&0x4>>2)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7405, libc.VaList(bp+16, i+int32(1))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7530, libc.VaList(bp+16, i+int32(1))) return int32(1) } goto _3 @@ -80890,7 +81275,7 @@ func _sqlite3ResolveOrderGroupBy(tls *libc.TLS, pParse uintptr, pSelect uintptr, return 0 } if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7466, libc.VaList(bp+8, zType)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7591, libc.VaList(bp+8, zType)) return int32(1) } pEList = (*TSelect)(unsafe.Pointer(pSelect)).FpEList @@ -81136,6 +81521,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } pItem = (*TSelect)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*104 + /* Test of tag-20240424-1*/ if (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FselFlags&uint32(SF_Resolved) == uint32(0) { if pOuterNC != 0 { v3 = (*TNameContext)(unsafe.Pointer(pOuterNC)).FnRef @@ -81202,7 +81588,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { (*(*TNameContext)(unsafe.Pointer(bp))).FncFlags |= int32(NC_UEList) if (*TSelect)(unsafe.Pointer(p)).FpHaving != 0 { if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Aggregate) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7497, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7622, 0) return int32(WRC_Abort) } if _sqlite3ResolveExprNames(tls, bp, (*TSelect)(unsafe.Pointer(p)).FpHaving) != 0 { @@ -81269,7 +81655,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** is not detected until much later, and so we need to go ahead and ** resolve those symbols on the incorrect ORDER BY for consistency. */ - if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7399) != 0 { + if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7524) != 0 { return int32(WRC_Abort) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -81280,7 +81666,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** the GROUP BY clause does not contain aggregate functions. */ if pGroupBy != 0 { - if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7536) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { + if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7661) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(WRC_Abort) } i = 0 @@ -81290,7 +81676,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } if (*TExpr)(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(pItem2)).FpExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7542, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7667, 0) return int32(WRC_Abort) } goto _6 @@ -82271,7 +82657,7 @@ func _codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32 return } if nLeft != _sqlite3ExprVectorSize(tls, pRight) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6709, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6773, 0) return } if int32(op) == int32(TK_LE) { @@ -82350,7 +82736,7 @@ func _sqlite3ExprCheckHeight(tls *libc.TLS, pParse uintptr, nHeight int32) (r in rc = SQLITE_OK mxHeight = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 3*4)) if nHeight > mxHeight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7601, libc.VaList(bp+8, mxHeight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7726, libc.VaList(bp+8, mxHeight)) rc = int32(SQLITE_ERROR) } return rc @@ -82516,11 +82902,12 @@ func _sqlite3ExprSetErrorOffset(tls *libc.TLS, pExpr uintptr, iOfst int32) { // ** appear to be quoted. If the quotes were of the form "..." (double-quotes) // ** then the EP_DblQuoted flag is set on the expression node. // ** -// ** Special case: If op==TK_INTEGER and pToken points to a string that -// ** can be translated into a 32-bit integer, then the token is not -// ** stored in u.zToken. Instead, the integer values is written -// ** into u.iValue and the EP_IntValue flag is set. No extra storage +// ** Special case (tag-20240227-a): If op==TK_INTEGER and pToken points to +// ** a string that can be translated into a 32-bit integer, then the token is +// ** not stored in u.zToken. Instead, the integer values is written +// ** into u.iValue and the EP_IntValue flag is set. No extra storage // ** is allocated to hold the integer text and the dequote flag is ignored. +// ** See also tag-20240227-b. // */ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequote int32) (r uintptr) { bp := tls.Alloc(16) @@ -82533,7 +82920,7 @@ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequ *(*int32)(unsafe.Pointer(bp)) = 0 if pToken != 0 { if op != int32(TK_INTEGER) || (*TToken)(unsafe.Pointer(pToken)).Fz == uintptr(0) || _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pToken)).Fz, bp) == 0 { - nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) + nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) /* tag-20240227-a */ } } pNew = _sqlite3DbMallocRawNN(tls, db, uint64(72)+uint64(nExtra)) @@ -82694,11 +83081,11 @@ func _sqlite3ExprListToValues(tls *libc.TLS, pParse uintptr, nElem int32, pEList } if nExprElem != nElem { if nExprElem > int32(1) { - v2 = __ccgo_ts + 7649 + v2 = __ccgo_ts + 7774 } else { - v2 = __ccgo_ts + 1680 + v2 = __ccgo_ts + 1694 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7651, libc.VaList(bp+8, nExprElem, v2, nElem)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7776, libc.VaList(bp+8, nExprElem, v2, nElem)) break } pSel = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(pExpr + 32)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) @@ -82747,7 +83134,7 @@ func _sqlite3ExprAnd(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintpt if f&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_InnerON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { _sqlite3ExprDeferredDelete(tls, pParse, pLeft) _sqlite3ExprDeferredDelete(tls, pParse, pRight) - return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1754) + return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1814) } else { return _sqlite3PExpr(tls, pParse, int32(TK_AND), pLeft, pRight) } @@ -82775,7 +83162,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u } *(*int32)(unsafe.Pointer(pNew + 52)) = int32(int64((*TToken)(unsafe.Pointer(pToken)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) if pList != 0 && (*TExprList)(unsafe.Pointer(pList)).FnExpr > *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 6*4)) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7695, libc.VaList(bp+8, pToken)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7820, libc.VaList(bp+8, pToken)) } *(*uintptr)(unsafe.Pointer(pNew + 32)) = pList *(*Tu32)(unsafe.Pointer(pNew + 4)) |= uint32(libc.Int32FromInt32(EP_HasFunc)) @@ -82795,7 +83182,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u func _sqlite3ExprOrderByAggregateError(tls *libc.TLS, pParse uintptr, p uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7729, libc.VaList(bp+8, p)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7854, libc.VaList(bp+8, p)) } // C documentation @@ -82866,7 +83253,7 @@ func _sqlite3ExprFunctionUsable(tls *libc.TLS, pParse uintptr, pExpr uintptr, pD ** SQLITE_DBCONFIG_TRUSTED_SCHEMA is off (meaning ** that the schema is possibly tainted). */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7779, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7904, libc.VaList(bp+8, pExpr)) } } } @@ -82918,7 +83305,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n bOk = libc.BoolInt32(0 == _sqlite3Atoi64(tls, z+1, bp, int32(n-uint32(1)), uint8(SQLITE_UTF8))) } if bOk == 0 || *(*Ti64)(unsafe.Pointer(bp)) < int64(1) || *(*Ti64)(unsafe.Pointer(bp)) > int64(*(*int32)(unsafe.Pointer(db + 136 + 9*4))) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7799, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7924, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) return } @@ -82951,7 +83338,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n } (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = x if int32(x) > *(*int32)(unsafe.Pointer(db + 136 + 9*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7842, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7967, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } } @@ -82962,11 +83349,13 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n // ** Recursively delete an expression tree. // */ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { + var pLeft uintptr + _ = pLeft + goto exprDeleteRestart +exprDeleteRestart: + ; if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)|libc.Int32FromInt32(EP_Leaf)) != libc.Uint32FromInt32(0)) { /* The Expr.x union is never used at the same time as Expr.pRight */ - if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { - _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpLeft) - } if (*TExpr)(unsafe.Pointer(p)).FpRight != 0 { _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpRight) } else { @@ -82979,6 +83368,17 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { } } } + if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { + pLeft = (*TExpr)(unsafe.Pointer(p)).FpLeft + if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) && !((*TExpr)(unsafe.Pointer(pLeft)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { + /* Avoid unnecessary recursion on unary operators */ + _sqlite3DbNNFreeNN(tls, db, p) + p = pLeft + goto exprDeleteRestart + } else { + _sqlite3ExprDeleteNN(tls, db, pLeft) + } + } } if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { _sqlite3DbNNFreeNN(tls, db, p) @@ -83025,11 +83425,11 @@ func _sqlite3ClearOnOrUsing(tls *libc.TLS, db uintptr, p uintptr) { // ** // ** The pExpr might be deleted immediately on an OOM error. // ** -// ** The deferred delete is (currently) implemented by adding the -// ** pExpr to the pParse->pConstExpr list with a register number of 0. +// ** Return 0 if the delete was successfully deferred. Return non-zero +// ** if the delete happened immediately because of an OOM. // */ -func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) { - _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr) +func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + return libc.BoolInt32(uintptr(0) == _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr)) } // C documentation @@ -83518,16 +83918,20 @@ func _sqlite3SrcListDup(tls *libc.TLS, db uintptr, p uintptr, flags int32) (r ui (*TSrcItem)(unsafe.Pointer(pNewItem)).FiCursor = (*TSrcItem)(unsafe.Pointer(pOldItem)).FiCursor (*TSrcItem)(unsafe.Pointer(pNewItem)).FaddrFillSub = (*TSrcItem)(unsafe.Pointer(pOldItem)).FaddrFillSub (*TSrcItem)(unsafe.Pointer(pNewItem)).FregReturn = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregReturn + (*TSrcItem)(unsafe.Pointer(pNewItem)).FregResult = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregResult if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x2>>1)) != 0 { *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3DbStrDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88))) + } else { + if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { + *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) + } else { + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pNewItem)).Fu1)) = *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pOldItem)).Fu1)) + } } (*TSrcItem)(unsafe.Pointer(pNewItem)).Fu2 = (*TSrcItem)(unsafe.Pointer(pOldItem)).Fu2 if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x100>>8)) != 0 { (*TCteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNewItem + 96)))).FnUse++ } - if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { - *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) - } v4 = (*TSrcItem)(unsafe.Pointer(pOldItem)).FpTab (*TSrcItem)(unsafe.Pointer(pNewItem)).FpTab = v4 pTab = v4 @@ -83789,7 +84193,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, n = v2 } if v3 && (*TIdList)(unsafe.Pointer(pColumns)).FnId != v2 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7865, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7990, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) goto vector_append_error } i = 0 @@ -83821,6 +84225,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, ** the RHS and LHS sizes match during code generation. */ (*TExpr)(unsafe.Pointer(pFirst)).FiTable = (*TIdList)(unsafe.Pointer(pColumns)).FnId } + goto vector_append_error vector_append_error: ; _sqlite3ExprUnmapAndDelete(tls, pParse, pExpr) @@ -83917,7 +84322,7 @@ func _sqlite3ExprListCheckLength(tls *libc.TLS, pParse uintptr, pEList uintptr, _ = mx mx = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 2*4)) if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr > mx { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7895, libc.VaList(bp+8, zObject)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8020, libc.VaList(bp+8, zObject)) } } @@ -84015,10 +84420,10 @@ func _sqlite3SelectWalkFail(tls *libc.TLS, pWalker uintptr, NotUsed uintptr) (r // ** anything else 0 // */ func _sqlite3IsTrueOrFalse(tls *libc.TLS, zIn uintptr) (r Tu32) { - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7918) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8043) == 0 { return uint32(EP_IsTrue) } - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7923) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8048) == 0 { return uint32(EP_IsFalse) } return uint32(0) @@ -84100,6 +84505,51 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { return pExpr } +// C documentation +// +// /* +// ** pExpr is a TK_FUNCTION node. Try to determine whether or not the +// ** function is a constant function. A function is constant if all of +// ** the following are true: +// ** +// ** (1) It is a scalar function (not an aggregate or window function) +// ** (2) It has either the SQLITE_FUNC_CONSTANT or SQLITE_FUNC_SLOCHNG +// ** property. +// ** (3) All of its arguments are constants +// ** +// ** This routine sets pWalker->eCode to 0 if pExpr is not a constant. +// ** It makes no changes to pWalker->eCode if pExpr is constant. In +// ** every case, it returns WRC_Abort. +// ** +// ** Called as a service subroutine from exprNodeIsConstant(). +// */ +func _exprNodeIsConstantFunction(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef, pList, v1 uintptr + var n int32 + var v2 bool + _, _, _, _, _, _ = db, n, pDef, pList, v1, v2 /* The database */ + if v2 = (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)) != uint32(0); !v2 { + v1 = *(*uintptr)(unsafe.Pointer(pExpr + 32)) + pList = v1 + } + if v2 || v1 == uintptr(0) { + n = 0 + } else { + n = (*TExprList)(unsafe.Pointer(pList)).FnExpr + _sqlite3WalkExprList(tls, pWalker, pList) + if int32((*TWalker)(unsafe.Pointer(pWalker)).FeCode) == 0 { + return int32(WRC_Abort) + } + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)|libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG)) == uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) +} + // C documentation // // /* @@ -84147,8 +84597,12 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 } return WRC_Continue } else { - (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) - return int32(WRC_Abort) + if (*TWalker)(unsafe.Pointer(pWalker)).FpParse != 0 { + return _exprNodeIsConstantFunction(tls, pWalker, pExpr) + } else { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } } fallthrough case int32(TK_ID): @@ -84175,6 +84629,8 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 case int32(TK_REGISTER): fallthrough case int32(TK_DOT): + fallthrough + case int32(TK_RAISE): (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) return int32(WRC_Abort) case int32(TK_VARIABLE): @@ -84200,14 +84656,14 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 return r } -func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32) { +func _exprIsConst(tls *libc.TLS, pParse uintptr, p uintptr, initFlag int32) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* w at bp+0 */ TWalker (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(initFlag) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) - *(*int32)(unsafe.Pointer(bp + 40)) = iCur _sqlite3WalkExpr(tls, bp, p) return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } @@ -84221,9 +84677,15 @@ func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32 // ** For the purposes of this function, a double-quoted string (ex: "abc") // ** is considered a variable but a single-quoted string (ex: 'abc') is // ** a constant. +// ** +// ** The pParse parameter may be NULL. But if it is NULL, there is no way +// ** to determine if function calls are constant or not, and hence all +// ** function calls will be considered to be non-constant. If pParse is +// ** not NULL, then a function call might be constant, depending on the +// ** function and on its parameters. // */ -func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(1), 0) +func _sqlite3ExprIsConstant(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(1)) } // C documentation @@ -84241,8 +84703,24 @@ func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { // ** can be added to the pParse->pConstExpr list and evaluated once when // ** the prepared statement starts up. See sqlite3ExprCodeRunJustOnce(). // */ -func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(2), 0) +func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(2)) +} + +// C documentation +// +// /* +// ** This routine examines sub-SELECT statements as an expression is being +// ** walked as part of sqlite3ExprIsTableConstant(). Sub-SELECTs are considered +// ** constant as long as they are uncorrelated - meaning that they do not +// ** contain any terms from outer contexts. +// */ +func _exprSelectWalkTableConstant(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + if (*TSelect)(unsafe.Pointer(pSelect)).FselFlags&uint32(SF_Correlated) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) } // C documentation @@ -84252,9 +84730,25 @@ func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { // ** for any single row of the table with cursor iCur. In other words, the // ** expression must not refer to any non-deterministic function nor any // ** table other than iCur. +// ** +// ** Consider uncorrelated subqueries to be constants if the bAllowSubq +// ** parameter is true. // */ -func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) { - return _exprIsConst(tls, p, int32(3), iCur) +func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32, bAllowSubq int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(3) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = uintptr(0) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) + if bAllowSubq != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_exprSelectWalkTableConstant) + } else { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) + } + *(*int32)(unsafe.Pointer(bp + 40)) = iCur + _sqlite3WalkExpr(tls, bp, p) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } // C documentation @@ -84274,7 +84768,10 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** // ** (1) pExpr cannot refer to any table other than pSrc->iCursor. // ** -// ** (2) pExpr cannot use subqueries or non-deterministic functions. +// ** (2a) pExpr cannot use subqueries unless the bAllowSubq parameter is +// ** true and the subquery is non-correlated +// ** +// ** (2b) pExpr cannot use non-deterministic functions. // ** // ** (3) pSrc cannot be part of the left operand for a RIGHT JOIN. // ** (Is there some way to relax this constraint?) @@ -84300,7 +84797,7 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** which leads to incorrect answers. See also restriction (9) // ** on push-down. // */ -func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32) (r int32) { +func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32, bAllowSubq int32) (r int32) { var jj int32 var pSrc uintptr _, _ = jj, pSrc @@ -84338,7 +84835,8 @@ func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList jj++ } } - return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor) /* rules (1), (2) */ + /* Rules (1), (2a), and (2b) handled by the following: */ + return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor, bAllowSubq) } // C documentation @@ -84436,7 +84934,7 @@ func _sqlite3ExprIsConstantOrGroupBy(tls *libc.TLS, pParse uintptr, p uintptr, p // ** a constant. // */ func _sqlite3ExprIsConstantOrFunction(tls *libc.TLS, p uintptr, isInit Tu8) (r int32) { - return _exprIsConst(tls, p, int32(4)+int32(isInit), 0) + return _exprIsConst(tls, uintptr(0), p, int32(4)+int32(isInit)) } // C documentation @@ -84575,13 +85073,13 @@ func _sqlite3ExprNeedsNoAffinityChange(tls *libc.TLS, p uintptr, aff int8) (r in // ** Return TRUE if the given string is a row-id column name. // */ func _sqlite3IsRowid(tls *libc.TLS, z uintptr) (r int32) { - if _sqlite3StrICmp(tls, z, __ccgo_ts+7929) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8054) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7937) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8062) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7943) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8068) == 0 { return int32(1) } return 0 @@ -84599,9 +85097,9 @@ func _sqlite3RowidAlias(tls *libc.TLS, pTab uintptr) (r uintptr) { var iCol, ii int32 _, _, _ = azOpt, iCol, ii azOpt = [3]uintptr{ - 0: __ccgo_ts + 7929, - 1: __ccgo_ts + 7937, - 2: __ccgo_ts + 7943, + 0: __ccgo_ts + 8054, + 1: __ccgo_ts + 8062, + 2: __ccgo_ts + 8068, } ii = 0 for { @@ -84721,13 +85219,13 @@ func _sqlite3SetHasNullFlag(tls *libc.TLS, v uintptr, iCur int32, regHasNull int // ** The argument is an IN operator with a list (not a subquery) on the // ** right-hand side. Return TRUE if that list is constant. // */ -func _sqlite3InRhsIsConstant(tls *libc.TLS, pIn uintptr) (r int32) { +func _sqlite3InRhsIsConstant(tls *libc.TLS, pParse uintptr, pIn uintptr) (r int32) { var pLHS uintptr var res int32 _, _ = pLHS, res pLHS = (*TExpr)(unsafe.Pointer(pIn)).FpLeft (*TExpr)(unsafe.Pointer(pIn)).FpLeft = uintptr(0) - res = _sqlite3ExprIsConstant(tls, pIn) + res = _sqlite3ExprIsConstant(tls, pParse, pIn) (*TExpr)(unsafe.Pointer(pIn)).FpLeft = pLHS return res } @@ -84883,7 +85381,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 iAddr = _sqlite3VdbeAddOp0(tls, v, int32(OP_Once)) _sqlite3OpenTable(tls, pParse, iTab, iDb, pTab, int32(OP_OpenRead)) eType = int32(IN_INDEX_ROWID) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+7947, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+8072, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) _sqlite3VdbeJumpHere(tls, v, iAddr) } else { /* Iterator variable */ affinity_ok = int32(1) @@ -84983,7 +85481,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 if colUsed == libc.Uint64FromInt32(1)<0 so that the new limit is either 1 or 0 */ db = (*TParse)(unsafe.Pointer(pParse)).Fdb - pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1754) + pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1814) if pLimit != 0 { (*TExpr)(unsafe.Pointer(pLimit)).FaffExpr = int8(SQLITE_AFF_NUMERIC) pLimit = _sqlite3PExpr(tls, pParse, int32(TK_NE), _sqlite3ExprDup(tls, db, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft, 0), pLimit) @@ -85474,7 +85972,7 @@ func _sqlite3CodeSubselect(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int3 (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft = pLimit } else { /* If there is no pre-existing limit add a limit of 1 */ - pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8162) + pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8287) (*TSelect)(unsafe.Pointer(pSel)).FpLimit = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), pLimit, uintptr(0)) } (*TSelect)(unsafe.Pointer(pSel)).FiLimit = 0 @@ -85797,11 +86295,13 @@ func _sqlite3ExprCodeIN(tls *libc.TLS, pParse uintptr, pExpr uintptr, destIfFals } /* Jumps here in order to return true. */ _sqlite3VdbeJumpHere(tls, v, addrTruthOp) + goto sqlite3ExprCodeIN_finished sqlite3ExprCodeIN_finished: ; if rLhs != rLhsOrig { _sqlite3ReleaseTempReg(tls, pParse, rLhs) } + goto sqlite3ExprCodeIN_oom_error sqlite3ExprCodeIN_oom_error: ; _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiMap) @@ -85859,13 +86359,13 @@ func _codeInteger(tls *libc.TLS, pParse uintptr, pExpr uintptr, negFlag int32, i z = *(*uintptr)(unsafe.Pointer(pExpr + 8)) c = _sqlite3DecOrHexToI64(tls, z, bp) if c == int32(3) && !(negFlag != 0) || c == int32(2) || negFlag != 0 && *(*Ti64)(unsafe.Pointer(bp)) == int64(-libc.Int32FromInt32(1))-(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<= (*TAggInfo)(unsafe.Pointer(pInfo)).FnFunc { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8255, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8380, libc.VaList(bp+160, pExpr)) } else { return (*TAggInfo)(unsafe.Pointer(pInfo)).FiFirstReg + (*TAggInfo)(unsafe.Pointer(pInfo)).FnColumn + int32((*TExpr)(unsafe.Pointer(pExpr)).FiAgg) } @@ -86588,7 +87084,7 @@ expr_code_doover: if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { return (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FregResult } - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { /* SQL functions can be expensive. So try to avoid running them ** multiple times if we know they always give the same result */ return _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) @@ -86603,7 +87099,7 @@ expr_code_doover: zId = *(*uintptr)(unsafe.Pointer(pExpr + 8)) pDef = _sqlite3FindFunction(tls, db, zId, nFarg, enc, uint8(0)) if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8282, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8407, libc.VaList(bp+160, pExpr)) break } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_INLINE) != uint32(0) && pFarg != uintptr(0) { @@ -86618,7 +87114,7 @@ expr_code_doover: if !(i < nFarg) { break } - if i < int32(32) && _sqlite3ExprIsConstant(tls, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { + if i < int32(32) && _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { constMask |= libc.Uint32FromInt32(1) << i } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_NEEDCOLL) != uint32(0) && !(pColl != 0) { @@ -86708,7 +87204,7 @@ expr_code_doover: } n1 = _sqlite3ExprVectorSize(tls, pLeft2) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != n1 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7865, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7990, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) } return (*TExpr)(unsafe.Pointer(pLeft2)).FiTable + int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) case int32(TK_IN): @@ -86740,8 +87236,9 @@ expr_code_doover: if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Collate)) != libc.Uint32FromInt32(0)) { /* A TK_COLLATE Expr node without the EP_Collate tag is a so-called ** "SOFT-COLLATE" that is added to constraints that are pushed down - ** from outer queries into sub-queries by the push-down optimization. - ** Clear subtypes as subtypes may not cross a subquery boundary. + ** from outer queries into sub-queries by the WHERE-clause push-down + ** optimization. Clear subtypes as subtypes may not cross a subquery + ** boundary. */ _sqlite3ExprCode(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, target) _sqlite3VdbeAddOp1(tls, v, int32(OP_ClrSubtype), target) @@ -86770,7 +87267,7 @@ expr_code_doover: _sqlite3VdbeAddOp1(tls, v, int32(OP_RealAffinity), target) } case int32(TK_VECTOR): - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6709, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6773, 0) break /* TK_IF_NULL_ROW Expr nodes are inserted ahead of expressions ** that derive from the right-hand table of a LEFT JOIN. The @@ -86885,7 +87382,7 @@ expr_code_doover: _sqlite3VdbeResolveLabel(tls, v, endLabel) case int32(TK_RAISE): if !((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != 0) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8306, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8431, 0) return 0 } if int32((*TExpr)(unsafe.Pointer(pExpr)).FaffExpr) == int32(OE_Abort) { @@ -87005,7 +87502,7 @@ func _sqlite3ExprCodeTemp(tls *libc.TLS, pParse uintptr, pExpr uintptr, pReg uin var r1, r2 int32 _, _ = r1, r2 pExpr = _sqlite3ExprSkipCollateAndLikely(tls, pExpr) - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { *(*int32)(unsafe.Pointer(pReg)) = 0 r2 = _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) } else { @@ -87075,7 +87572,7 @@ func _sqlite3ExprCodeCopy(tls *libc.TLS, pParse uintptr, pExpr uintptr, target i // ** might choose to code the expression at initialization time. // */ func _sqlite3ExprCodeFactorable(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) { - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target) } else { _sqlite3ExprCodeCopy(tls, pParse, pExpr, target) @@ -87144,7 +87641,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ _sqlite3VdbeAddOp2(tls, v, int32(copyOp), j+srcReg-int32(1), target+i) } } else { - if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target+i) } else { inReg = _sqlite3ExprCodeTarget(tls, pParse, pExpr, target+i) @@ -87408,6 +87905,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsTrue)) == uint32(EP_IsTrue) { @@ -87613,6 +88111,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) { @@ -88439,17 +88938,15 @@ func _agginfoPersistExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnColumn && (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } else { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnFunc && (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } @@ -88568,6 +89065,7 @@ func _findOrCreateAggInfoColumn(tls *libc.TLS, pParse uintptr, pAggInfo uintptr, *(*Tu16)(unsafe.Pointer(v4))++ (*TAggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = int16(v3) } + goto fix_up_expr fix_up_expr: ; (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo = pAggInfo @@ -88998,8 +89496,8 @@ func _sqlite3FirstAvailableRegister(tls *libc.TLS, pParse uintptr, iMin int32) ( func _isAlterableTable(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) - if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6557, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8356, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6621, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8481, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -89018,9 +89516,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, bp := tls.Alloc(48) defer tls.Free(48) (*TParse)(unsafe.Pointer(pParse)).FcolNamesSet = uint8(1) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8384, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8509, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8559, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8684, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) } } @@ -89036,9 +89534,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, func _renameFixQuotes(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8733, libc.VaList(bp+8, zDb, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8858, libc.VaList(bp+8, zDb, zDb)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8880, 0) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9005, 0) } } @@ -89094,7 +89592,7 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName ** in database iDb. If so, this is an error. */ if _sqlite3FindTable(tls, db, zName, zDb) != 0 || _sqlite3FindIndex(tls, db, zName, zDb) != 0 || _sqlite3IsShadowTableOf(tls, db, pTab, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9031, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9156, libc.VaList(bp+8, zName)) goto exit_rename_table } /* Make sure it is not a system table being altered, or a reserved name @@ -89103,11 +89601,11 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { goto exit_rename_table } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9090, zName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9215, zName) { goto exit_rename_table } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9096, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9221, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_rename_table } /* Invoke the authorization callback. */ @@ -89137,21 +89635,21 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName nTabName = _sqlite3Utf8CharLen(tls, zTabName, -int32(1)) /* Rewrite all CREATE TABLE, INDEX, TRIGGER or VIEW statements in ** the schema to use the new table name. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9123, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9248, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) /* Update the tbl_name and name columns of the sqlite_schema table ** as required. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9307, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9432, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) /* If the sqlite_sequence table exists in this database, then update ** it with the new table name. */ - if _sqlite3FindTable(tls, db, __ccgo_ts+9612, zDb) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9628, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if _sqlite3FindTable(tls, db, __ccgo_ts+9737, zDb) != 0 { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9753, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* If the table being renamed is not itself part of the temp database, ** edit view and trigger definitions within the temp database ** as required. */ if iDb != int32(1) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9686, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9811, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) } /* If this is a virtual table, invoke the xRename() function if ** one is defined. The xRename() callback will modify the names @@ -89167,7 +89665,8 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp4(tls, v, int32(OP_VRename), i, 0, 0, pVTab, -int32(11)) } _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+9951, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+10076, 0) + goto exit_rename_table exit_rename_table: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -89183,7 +89682,7 @@ exit_rename_table: func _sqlite3ErrorIfNotEmpty(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zErr uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9964, libc.VaList(bp+8, zErr, zDb, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10089, libc.VaList(bp+8, zErr, zDb, zTab)) } // C documentation @@ -89223,11 +89722,11 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** column must not be NULL. */ if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10002, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10127, 0) return } if (*TTable)(unsafe.Pointer(pNew)).FpIndex != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10034, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10159, 0) return } if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) == 0 { @@ -89243,10 +89742,10 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpFKey != 0 && pDflt != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10061) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10186) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && !(pDflt != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10120) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10245) } /* Ensure the default expression is something that sqlite3ValueFromExpr() ** can handle (i.e. not CURRENT_TIME etc.) @@ -89258,13 +89757,13 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr return } if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10173) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10298) } _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp))) } } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_STORED) != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10219) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10344) } } /* Modify the CREATE TABLE statement. */ @@ -89278,7 +89777,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr } /* substr() operations on characters, but addColOffset is in bytes. So we ** have to use printf() to translate between these units: */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10246, libc.VaList(bp+16, zDb, (*(*struct { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10371, libc.VaList(bp+16, zDb, (*(*struct { FaddColOffset int32 FpFKey uintptr FpDfltList uintptr @@ -89306,7 +89805,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterAdd)) /* Verify that constraints are still satisfied */ if (*TTable)(unsafe.Pointer(pNew)).FpCheck != uintptr(0) || int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Strict) != uint32(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10392, libc.VaList(bp+16, zTab, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10517, libc.VaList(bp+16, zTab, zDb)) } } } @@ -89344,12 +89843,12 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { goto exit_begin_add_column } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10745, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10870, 0) goto exit_begin_add_column } /* Make sure this is not an attempt to ALTER a view. */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10779, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10904, 0) goto exit_begin_add_column } if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { @@ -89373,7 +89872,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { (*TTable)(unsafe.Pointer(pNew)).FnCol = (*TTable)(unsafe.Pointer(pTab)).FnCol nAlloc = (int32((*TTable)(unsafe.Pointer(pNew)).FnCol)-int32(1))/int32(8)*int32(8) + int32(8) (*TTable)(unsafe.Pointer(pNew)).FaCol = _sqlite3DbMallocZero(tls, db, uint64(16)*uint64(nAlloc)) - (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10809, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10934, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !((*TTable)(unsafe.Pointer(pNew)).FaCol != 0) || !((*TTable)(unsafe.Pointer(pNew)).FzName != 0) { goto exit_begin_add_column } @@ -89410,6 +89909,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pTab + 64))).FaddColOffset + goto exit_begin_add_column exit_begin_add_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -89433,18 +89933,18 @@ func _isRealTable(tls *libc.TLS, pParse uintptr, pTab uintptr, bDrop int32) (r i _, _ = zType, v1 zType = uintptr(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10828 + zType = __ccgo_ts + 10953 } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 10833 + zType = __ccgo_ts + 10958 } if zType != 0 { if bDrop != 0 { - v1 = __ccgo_ts + 10847 + v1 = __ccgo_ts + 10972 } else { - v1 = __ccgo_ts + 10864 + v1 = __ccgo_ts + 10989 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10882, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11007, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -89505,11 +90005,11 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld iCol++ } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10900, libc.VaList(bp+8, pOld)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11025, libc.VaList(bp+8, pOld)) goto exit_rename_column } /* Ensure the schema contains no double-quoted strings */ - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1680, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1694, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1))) /* Do the rename operation using a recursive UPDATE statement that ** uses the sqlite_rename_column() SQL function to compute the new @@ -89521,11 +90021,12 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld goto exit_rename_column } bQuote = int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pNew)).Fz)))]) & int32(0x80) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10921, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11103, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11046, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11228, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iSchema, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+9951, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+10076, int32(1)) + goto exit_rename_column exit_rename_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -90000,11 +90501,11 @@ func _renameColumnParseError(tls *libc.TLS, pCtx uintptr, zWhen uintptr, pType u zT = Xsqlite3_value_text(tls, pType) zN = Xsqlite3_value_text(tls, pObject) if *(*int8)(unsafe.Pointer(zWhen)) != 0 { - v1 = __ccgo_ts + 11234 + v1 = __ccgo_ts + 11359 } else { - v1 = __ccgo_ts + 1680 + v1 = __ccgo_ts + 1694 } - zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11236, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) + zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11361, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, zErr) } @@ -90081,8 +90582,8 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin if zSql == uintptr(0) { return int32(SQLITE_NOMEM) } - if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11259, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(116682)) + if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11384, int32(7)) != 0 { + return _sqlite3CorruptError(tls, int32(117285)) } if bTemp != 0 { v1 = int32(1) @@ -90098,7 +90599,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin rc = int32(SQLITE_NOMEM) } if rc == SQLITE_OK && ((*TParse)(unsafe.Pointer(p)).FpNewTable == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewIndex == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewTrigger == uintptr(0)) { - rc = _sqlite3CorruptError(tls, int32(116693)) + rc = _sqlite3CorruptError(tls, int32(117296)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -90137,7 +90638,7 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, ** ALTER TABLE statement was quoted (bQuote==1), then set zNew to ** point to zQuot so that all substitutions are made using the ** quoted version of the new column name. */ - zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11267, libc.VaList(bp+8, zNew)) + zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11392, libc.VaList(bp+8, zNew)) if zQuot == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -90182,11 +90683,11 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, *(*int8)(unsafe.Pointer(zBuf1 + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn))) = 0 _sqlite3Dequote(tls, zBuf1) if int32(*(*int8)(unsafe.Pointer((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn)))) == int32('\'') { - v1 = __ccgo_ts + 11234 + v1 = __ccgo_ts + 11359 } else { - v1 = __ccgo_ts + 1680 + v1 = __ccgo_ts + 1694 } - Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11273, libc.VaList(bp+8, zBuf1, v1)) + Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11398, libc.VaList(bp+8, zBuf1, v1)) zReplace = zBuf2 nReplace = uint32(_sqlite3Strlen30(tls, zReplace)) } @@ -90663,6 +91164,7 @@ func _renameColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintp } } rc = _renameEditSql(tls, context, bp, zSql, zNew, bQuote) + goto renameColumnFunc_done renameColumnFunc_done: ; if rc != SQLITE_OK { @@ -90670,7 +91172,7 @@ renameColumnFunc_done: Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv))) } else { if (*(*TParse)(unsafe.Pointer(bp + 32))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1680, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) + _renameColumnParseError(tls, context, __ccgo_ts+1694, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -90896,7 +91398,7 @@ func _renameTableFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintpt Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv + 3*8))) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1680, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) + _renameColumnParseError(tls, context, __ccgo_ts+1694, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -91158,7 +91660,7 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr pTab = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable if pTab == uintptr(0) || int32((*TTable)(unsafe.Pointer(pTab)).FnCol) == int32(1) || iCol >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { /* This can happen if the sqlite_schema table is corrupt */ - rc = _sqlite3CorruptError(tls, int32(117652)) + rc = _sqlite3CorruptError(tls, int32(118255)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -91175,9 +91677,10 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr (*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz-- } } - zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11278, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) + zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11403, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) Xsqlite3_result_text(tls, context, zNew, -int32(1), uintptr(-libc.Int32FromInt32(1))) Xsqlite3_free(tls, zNew) + goto drop_column_done drop_column_done: ; _renameParseCleanup(tls, bp) @@ -91201,8 +91704,9 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName bp := tls.Alloc(48) defer tls.Free(48) var addr, i, iCol, iColPos, iCur, iDb, iPos, nField, reg, regOut, regRec, v2, v4, v7 int32 + var aff int8 var db, pPk, pTab, v, zCol, zDb, v1, v3, v5, v8 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, aff, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Database containing pTab ("main" etc.) */ zCol = uintptr(0) /* Index of column zCol in pTab->aCol[] */ /* Look up the table being altered. */ @@ -91228,23 +91732,23 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName } iCol = _sqlite3ColumnIndex(tls, pTab, zCol) if iCol < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10900, libc.VaList(bp+8, pName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11025, libc.VaList(bp+8, pName)) goto exit_drop_column } /* Do not allow the user to drop a PRIMARY KEY column or a column ** constrained by a UNIQUE constraint. */ if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_PRIMKEY)|libc.Int32FromInt32(COLFLAG_UNIQUE)) != 0 { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - v1 = __ccgo_ts + 11285 + v1 = __ccgo_ts + 11410 } else { - v1 = __ccgo_ts + 5621 + v1 = __ccgo_ts + 5685 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11297, libc.VaList(bp+8, v1, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11422, libc.VaList(bp+8, v1, zCol)) goto exit_drop_column } /* Do not allow the number of columns to go to zero */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) <= int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11325, libc.VaList(bp+8, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11450, libc.VaList(bp+8, zCol)) goto exit_drop_column } /* Edit the sqlite_schema table */ @@ -91254,12 +91758,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_ALTER_TABLE), zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol) != 0 { goto exit_drop_column } - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1680, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1694, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1))) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11373, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11498, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterDrop)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11494, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11619, int32(1)) /* Edit rows of table on disk */ if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 && int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { pPk = uintptr(0) @@ -91317,7 +91821,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if i == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regOut) } else { + aff = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity + if int32(aff) == int32(SQLITE_AFF_REAL) { + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = int8(SQLITE_AFF_NUMERIC) + } _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, i, regOut) + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = aff } nField++ } @@ -91342,6 +91851,7 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iCur, addr+int32(1)) _sqlite3VdbeJumpHere(tls, v, addr) } + goto exit_drop_column exit_drop_column: ; _sqlite3DbFree(tls, db, zCol) @@ -91361,27 +91871,27 @@ var _aAlterTableFuncs = [5]TFuncDef{ 0: { FnArg: int8(9), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11512, + FzName: __ccgo_ts + 11637, }, 1: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11533, + FzName: __ccgo_ts + 11658, }, 2: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11553, + FzName: __ccgo_ts + 11678, }, 3: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11572, + FzName: __ccgo_ts + 11697, }, 4: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11591, + FzName: __ccgo_ts + 11716, }, } @@ -91592,7 +92102,7 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW ** side-effect of the CREATE TABLE statement is to leave the rootpage ** of the new table in register pParse->regRoot. This is important ** because the OpenWrite opcode below will be needing it. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11694, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11819, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) aRoot[i] = uint32((*TParse)(unsafe.Pointer(pParse)).FregRoot) aCreateTbl[i] = uint8(OPFLAG_P2ISREG) } @@ -91603,10 +92113,10 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW aRoot[i] = (*TTable)(unsafe.Pointer(pStat)).Ftnum _sqlite3TableLock(tls, pParse, iDb, aRoot[i], uint8(1), zTab) if zWhere != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11717, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11842, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11747, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11872, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) } else { /* The sqlite_stat[134] table already exists. Delete all rows. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Clear), int32(aRoot[i]), iDb) @@ -91638,15 +92148,15 @@ var _aTable = [3]struct { FzCols uintptr }{ 0: { - FzName: __ccgo_ts + 11614, - FzCols: __ccgo_ts + 11627, + FzName: __ccgo_ts + 11739, + FzCols: __ccgo_ts + 11752, }, 1: { - FzName: __ccgo_ts + 11640, - FzCols: __ccgo_ts + 11653, + FzName: __ccgo_ts + 11765, + FzCols: __ccgo_ts + 11778, }, 2: { - FzName: __ccgo_ts + 11681, + FzName: __ccgo_ts + 11806, }, } @@ -91948,7 +92458,7 @@ func _statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statInitFuncdef = TFuncDef{ FnArg: int8(4), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11765, + FzName: __ccgo_ts + 11890, } func init() { @@ -92094,6 +92604,7 @@ func _sampleInsert(tls *libc.TLS, p uintptr, pNew uintptr, nEqZero int32) { (*TStatAccum)(unsafe.Pointer(p)).FnSample++ /* Zero the first nEqZero entries in the anEq[] array. */ libc.Xmemset(tls, (*TStatSample)(unsafe.Pointer(pSample)).FanEq, 0, uint64(8)*uint64(nEqZero)) + goto find_new_min find_new_min: ; if (*TStatAccum)(unsafe.Pointer(p)).FnSample >= (*TStatAccum)(unsafe.Pointer(p)).FmxSample { @@ -92321,7 +92832,7 @@ func _statPush(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statPushFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(2) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11775, + FzName: __ccgo_ts + 11900, } func init() { @@ -92371,7 +92882,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } else { v1 = (*TStatAccum)(unsafe.Pointer(p)).FnRow } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11785, libc.VaList(bp+72, v1)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11910, libc.VaList(bp+72, v1)) i = 0 for { if !(i < (*TStatAccum)(unsafe.Pointer(p)).FnKeyCol) { @@ -92382,7 +92893,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if iVal == uint64(2) && (*TStatAccum)(unsafe.Pointer(p)).FnRow*uint64(10) <= nDistinct*uint64(11) { iVal = uint64(1) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11790, libc.VaList(bp+72, iVal)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11915, libc.VaList(bp+72, iVal)) goto _2 _2: ; @@ -92421,7 +92932,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if !(i1 < (*TStatAccum)(unsafe.Pointer(p)).FnCol) { break } - Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+11796, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) + Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+11921, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) goto _3 _3: ; @@ -92439,7 +92950,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statGetFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(1) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11802, + FzName: __ccgo_ts + 11927, } func init() { @@ -92460,9 +92971,9 @@ func _callStatGet(tls *libc.TLS, pParse uintptr, regStat int32, iParam int32, re // */ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr, iStatCur int32, iMem int32, iTab int32) { var aGotoChng, db, pColl, pIdx, pPk, pStat1, pX, v, zIdxName uintptr - var addrIsNull, addrNext, addrNextRow, addrRewind, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 + var addrGotoEnd, addrIsNull, addrNext, addrNextRow, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 var needTableCnt, seekOp Tu8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrIsNull, addrNext, addrNextRow, addrRewind, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrGotoEnd, addrIsNull, addrNext, addrNextRow, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Loop counter */ jZeroRows = -int32(1) /* Index of database containing pTab */ needTableCnt = uint8(1) @@ -92505,7 +93016,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Do not gather statistics on views or virtual tables */ return } - if Xsqlite3_strlike(tls, __ccgo_ts+11811, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { + if Xsqlite3_strlike(tls, __ccgo_ts+11936, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { /* Do not gather statistics on system tables */ return } @@ -92519,7 +93030,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint return } (*TTable)(unsafe.Pointer(pStat1)).FzName = pStat1 + 1*104 - libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11614, uint64(13)) + libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11739, uint64(13)) (*TTable)(unsafe.Pointer(pStat1)).FnCol = int16(3) (*TTable)(unsafe.Pointer(pStat1)).FiPKey = int16(-int32(1)) _sqlite3VdbeAddOp4(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Noop), 0, 0, 0, pStat1, -int32(6)) @@ -92573,9 +93084,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* ** Pseudo-code for loop that calls stat_push(): ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() ** goto chng_addr_0; ** ** next_row: @@ -92609,32 +93125,29 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Open a read-only cursor on the index being analyzed. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenRead), iIdxCur, int32((*TIndex)(unsafe.Pointer(pIdx)).Ftnum), iDb) _sqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx) - /* Invoke the stat_init() function. The arguments are: + /* Implementation of the following: ** + ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() + ** goto chng_addr_0; + */ + _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + /* Arguments to stat_init(): ** (1) the number of columns in the index including the rowid ** (or for a WITHOUT ROWID table, the number of PK columns), ** (2) the number of columns in the key without the rowid/pk - ** (3) estimated number of rows in the index, - */ + ** (3) estimated number of rows in the index. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), nCol, regStat+int32(1)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol), regRowid) - if (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0) { - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iIdxCur, regTemp) - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - } else { - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, int32(1)) - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) != uint32(0))) _sqlite3VdbeAddFunctionCall(tls, pParse, 0, regStat+int32(1), regStat, int32(4), uintptr(unsafe.Pointer(&_statInitFuncdef)), 0) - /* Implementation of the following: - ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; - ** regChng = 0 - ** goto next_push_0; - ** - */ + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regChng) addrNextRow = _sqlite3VdbeCurrentAddr(tls, v) if nColTest > 0 { @@ -92743,8 +93256,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iIdxCur, addrNextRow) } /* Add the entry to the stat1 table. */ + if (*TIndex)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 { + /* Partial indexes might get a zero-entry in sqlite_stat1. But + ** an empty table is omitted from sqlite_stat1. */ + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + addrGotoEnd = 0 + } _callStatGet(tls, pParse, regStat, STAT_GET_STAT1, regStat1) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11821, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11946, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP4(tls, v, -int32(1), pStat1, -int32(5)) @@ -92763,6 +93282,11 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint v18 = int32(OP_NotFound) } seekOp = uint8(v18) + /* No STAT4 data is generated if the number of rows is zero */ + if addrGotoEnd == 0 { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Cast), regStat1, int32(SQLITE_AFF_INTEGER)) + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) + } if doOnce != 0 { mxCol = nCol /* Compute the maximum number of columns in any index */ @@ -92815,7 +93339,9 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeJumpHere(tls, v, addrIsNull) } /* End of analysis */ - _sqlite3VdbeJumpHere(tls, v, addrRewind) + if addrGotoEnd != 0 { + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + } goto _13 _13: ; @@ -92828,7 +93354,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iTabCur, regStat1) jZeroRows = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regIdxname) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11821, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11946, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND)) @@ -92900,9 +93426,9 @@ func _analyzeTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr iStatCur = (*TParse)(unsafe.Pointer(pParse)).FnTab *(*int32)(unsafe.Pointer(pParse + 52)) += int32(3) if pOnlyIdx != 0 { - _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11825) + _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11950) } else { - _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11829) + _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11954) } _analyzeOneTable(tls, pParse, pTab, pOnlyIdx, iStatCur, (*TParse)(unsafe.Pointer(pParse)).FnMem+int32(1), (*TParse)(unsafe.Pointer(pParse)).FnTab) _loadAnalysis(tls, pParse, iDb) @@ -93031,7 +93557,7 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, _, _, _, _, _, _ = c, i, sz, v, z, v2 z = zIntArray if z == uintptr(0) { - z = __ccgo_ts + 1680 + z = __ccgo_ts + 1694 } i = 0 for { @@ -93066,17 +93592,17 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 6, 0x40) for *(*int8)(unsafe.Pointer(z)) != 0 { - if Xsqlite3_strglob(tls, __ccgo_ts+11833, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11958, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 2, 0x4) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11844, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11969, z) == 0 { sz = _sqlite3Atoi(tls, z+uintptr(3)) if sz < int32(2) { sz = int32(2) } (*TIndex)(unsafe.Pointer(pIndex)).FszIdxRow = _sqlite3LogEst(tls, uint64(sz)) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11854, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11979, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 6, 0x40) } } @@ -93452,11 +93978,11 @@ func _loadStat4(tls *libc.TLS, db uintptr, zDb uintptr) (r int32) { _, _, _, _ = pStat4, rc, v1, v2 rc = SQLITE_OK if v2 = (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0); v2 { - v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11640, zDb) + v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11765, zDb) pStat4 = v1 } if v2 && v1 != uintptr(0) && int32((*TTable)(unsafe.Pointer(pStat4)).FeTabType) == TABTYP_NORM { - rc = _loadStatTbl(tls, db, __ccgo_ts+11866, __ccgo_ts+11935, zDb) + rc = _loadStatTbl(tls, db, __ccgo_ts+11991, __ccgo_ts+12060, zDb) } return rc } @@ -93522,10 +94048,10 @@ func _sqlite3AnalysisLoad(tls *libc.TLS, db uintptr, iDb int32) (r int32) { /* Load new statistics out of the sqlite_stat1 table */ (*(*TanalysisInfo)(unsafe.Pointer(bp))).Fdb = db (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName - v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11614, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) + v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11739, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) pStat1 = v3 if v3 != 0 && int32((*TTable)(unsafe.Pointer(pStat1)).FeTabType) == TABTYP_NORM { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+11987, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+12112, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -93638,7 +94164,7 @@ func _resolveAttachExpr(tls *libc.TLS, pName uintptr, pExpr uintptr) (r int32) { // ** database iDb attached to handle db. // */ func _sqlite3DbIsNamed(tls *libc.TLS, db uintptr, iDb int32, zName uintptr) (r int32) { - return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6617, zName) == 0) + return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6681, zName) == 0) } // C documentation @@ -93680,21 +94206,21 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { zFile = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) zName = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if zFile == uintptr(0) { - zFile = __ccgo_ts + 1680 + zFile = __ccgo_ts + 1694 } if zName == uintptr(0) { - zName = __ccgo_ts + 1680 + zName = __ccgo_ts + 1694 } if int32(uint32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x4>>2)) != 0 { /* This is not a real ATTACH. Instead, this routine is being called ** from sqlite3_deserialize() to close database db->init.iDb and ** reopen it as a MemDB */ *(*uintptr)(unsafe.Pointer(bp + 40)) = uintptr(0) - *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+3999) + *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+4063) if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { return } - rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12028, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) + rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12153, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) if rc == SQLITE_OK { pNewSchema = _sqlite3SchemaGet(tls, db, *(*uintptr)(unsafe.Pointer(bp + 40))) if pNewSchema != 0 { @@ -93725,7 +94251,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { ** * Specified database name already being used. */ if (*Tsqlite3)(unsafe.Pointer(db)).FnDb >= *(*int32)(unsafe.Pointer(db + 136 + 7*4))+int32(2) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12031, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12156, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) goto attach_error } i = 0 @@ -93734,7 +94260,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { break } if _sqlite3DbIsNamed(tls, db, i, zName) != 0 { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12068, libc.VaList(bp+56, zName)) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12193, libc.VaList(bp+56, zName)) goto attach_error } goto _1 @@ -93782,7 +94308,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FnoSharedCache = uint8(0) if rc == int32(SQLITE_CONSTRAINT) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12098, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12223, 0) } else { if rc == SQLITE_OK { (*TDb)(unsafe.Pointer(pNew)).FpSchema = _sqlite3SchemaGet(tls, db, (*TDb)(unsafe.Pointer(pNew)).FpBt) @@ -93790,7 +94316,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { rc = int32(SQLITE_NOMEM) } else { if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Ffile_format != 0 && int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Fenc) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12127, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12252, 0) rc = int32(SQLITE_ERROR) } } @@ -93834,16 +94360,17 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)<= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12223, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12348, libc.VaList(bp+136, zName)) goto detach_error } if i < int32(2) { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12244, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12369, libc.VaList(bp+136, zName)) goto detach_error } if _sqlite3BtreeTxnState(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != SQLITE_TXN_NONE || _sqlite3BtreeIsInBackup(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != 0 { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12270, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12395, libc.VaList(bp+136, zName)) goto detach_error } /* If any TEMP triggers reference the schema being detached, move those @@ -93924,6 +94451,7 @@ func _detachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*TDb)(unsafe.Pointer(pDb)).FpSchema = uintptr(0) _sqlite3CollapseDatabaseArray(tls, db) return + goto detach_error detach_error: ; Xsqlite3_result_error(tls, context, bp, -int32(1)) @@ -93978,6 +94506,7 @@ func _codeAttach(tls *libc.TLS, pParse uintptr, type1 int32, pFunc uintptr, pAut */ _sqlite3VdbeAddOp1(tls, v, int32(OP_Expire), libc.BoolInt32(type1 == int32(SQLITE_ATTACH))) } + goto attach_end attach_end: ; _sqlite3ExprDelete(tls, db, pFilename) @@ -93999,7 +94528,7 @@ func _sqlite3Detach(tls *libc.TLS, pParse uintptr, pDbname uintptr) { var _detach_func = TFuncDef{ FnArg: int8(1), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12292, + FzName: __ccgo_ts + 12417, } func init() { @@ -94021,7 +94550,7 @@ func _sqlite3Attach(tls *libc.TLS, pParse uintptr, p uintptr, pDbname uintptr, p var _attach_func = TFuncDef{ FnArg: int8(3), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12306, + FzName: __ccgo_ts + 12431, } func init() { @@ -94047,7 +94576,7 @@ func _fixExprCb(tls *libc.TLS, p uintptr, pExpr uintptr) (r int32) { if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer((*TDbFixer)(unsafe.Pointer(pFix)).FpParse)).Fdb)).Finit1.Fbusy != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } else { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12320, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12445, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) return int32(WRC_Abort) } } @@ -94081,7 +94610,7 @@ func _fixSelectCb(tls *libc.TLS, p uintptr, pSelect uintptr) (r int32) { if int32((*TDbFixer)(unsafe.Pointer(pFix)).FbTemp) == 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { if iDb != _sqlite3FindDbName(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12344, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12469, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) return int32(WRC_Abort) } _sqlite3DbFree(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) @@ -94297,7 +94826,7 @@ func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uint // ** user-supplied authorization function returned an illegal value. // */ func _sqliteAuthBadReturnCode(tls *libc.TLS, pParse uintptr) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12390, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12515, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) } @@ -94325,11 +94854,11 @@ func _sqlite3AuthReadCol(tls *libc.TLS, pParse uintptr, zTab uintptr, zCol uintp } rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, int32(SQLITE_READ), zTab, zCol, zDb, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12413, libc.VaList(bp+8, zTab, zCol)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12538, libc.VaList(bp+8, zTab, zCol)) if (*Tsqlite3)(unsafe.Pointer(db)).FnDb > int32(2) || iDb != 0 { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12419, libc.VaList(bp+8, zDb, z)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12544, libc.VaList(bp+8, zDb, z)) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12425, libc.VaList(bp+8, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12550, libc.VaList(bp+8, z)) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != int32(SQLITE_IGNORE) && rc != SQLITE_OK { @@ -94389,7 +94918,7 @@ func _sqlite3AuthRead(tls *libc.TLS, pParse uintptr, pExpr uintptr, pSchema uint if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName } else { - zCol = __ccgo_ts + 7937 + zCol = __ccgo_ts + 8062 } } if int32(SQLITE_IGNORE) == _sqlite3AuthReadCol(tls, pParse, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol, iDb) { @@ -94424,7 +94953,7 @@ func _sqlite3AuthCheck(tls *libc.TLS, pParse uintptr, code int32, zArg1 uintptr, ** parameters can be either NULL or a string. */ rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, code, zArg1, zArg2, zArg3, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12452, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12577, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != SQLITE_OK && rc != int32(SQLITE_IGNORE) { @@ -94845,21 +95374,21 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp if i >= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { /* No match against the official names. But always match "main" ** to schema 0 as a legacy fallback. */ - if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6617) == 0 { + if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6681) == 0 { i = 0 } else { return uintptr(0) } } p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, zName) - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6557, int32(7)) == 0 { + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6621, int32(7)) == 0 { if i == int32(1) { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6584+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6603+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6098+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6565) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6648+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6667+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6162+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6629) } } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6603+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6098) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6667+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6162) } } } @@ -94889,12 +95418,12 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp ; i++ } - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6557, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6603+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6098) + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6621, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6667+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6162) } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6584+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6565) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6648+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6629) } } } @@ -94932,7 +95461,7 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt ** can be an eponymous virtual table. */ if int32((*TParse)(unsafe.Pointer(pParse)).FprepFlags)&int32(SQLITE_PREPARE_NO_VTAB) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 { pMod = _sqlite3HashFind(tls, db+576, zName) - if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12467, int32(7)) == 0 { + if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12592, int32(7)) == 0 { pMod = _sqlite3PragmaVtabRegister(tls, db, zName) } if pMod != 0 && _sqlite3VtabEponymousTableInit(tls, pParse, pMod) != 0 { @@ -94950,15 +95479,15 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt } if p == uintptr(0) { if flags&uint32(LOCATE_VIEW) != 0 { - v1 = __ccgo_ts + 12475 + v1 = __ccgo_ts + 12600 } else { - v1 = __ccgo_ts + 12488 + v1 = __ccgo_ts + 12613 } zMsg = v1 if zDbase != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6821, libc.VaList(bp+8, zMsg, zDbase, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6885, libc.VaList(bp+8, zMsg, zDbase, zName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6831, libc.VaList(bp+8, zMsg, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6956, libc.VaList(bp+8, zMsg, zName)) } } else { } @@ -94996,12 +95525,12 @@ func _sqlite3LocateTableItem(tls *libc.TLS, pParse uintptr, flags Tu32, p uintpt // ** names into the new preferred names, as appropriate. // */ func _sqlite3PreferredTableName(tls *libc.TLS, zName uintptr) (r uintptr) { - if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6557, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6098+7) == 0 { - return __ccgo_ts + 6603 + if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6621, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6162+7) == 0 { + return __ccgo_ts + 6667 } - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6565+7) == 0 { - return __ccgo_ts + 6584 + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6629+7) == 0 { + return __ccgo_ts + 6648 } } return zName @@ -95526,7 +96055,7 @@ func _sqlite3OpenSchemaTable(tls *libc.TLS, p uintptr, iDb int32) { var v uintptr _ = v v = _sqlite3GetVdbe(tls, p) - _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6098) + _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6162) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_OpenWrite), 0, int32(SCHEMA_ROOT), iDb, int32(5)) if (*TParse)(unsafe.Pointer(p)).FnTab == 0 { (*TParse)(unsafe.Pointer(p)).FnTab = int32(1) @@ -95558,7 +96087,7 @@ func _sqlite3FindDbName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) { } /* "main" is always an acceptable alias for the primary database ** even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME. */ - if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6617, zName) { + if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6681, zName) { break } goto _1 @@ -95616,13 +96145,13 @@ func _sqlite3TwoPartName(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12502, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12627, 0) return -int32(1) } *(*uintptr)(unsafe.Pointer(pUnqual)) = pName2 iDb = _sqlite3FindDb(tls, db, pName1) if iDb < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12519, libc.VaList(bp+8, pName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12644, libc.VaList(bp+8, pName1)) return -int32(1) } } else { @@ -95666,12 +96195,12 @@ func _sqlite3CheckObjectName(tls *libc.TLS, pParse uintptr, zName uintptr, zType } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if Xsqlite3_stricmp(tls, zType, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit))) != 0 || Xsqlite3_stricmp(tls, zName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 1*8))) != 0 || Xsqlite3_stricmp(tls, zTblName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 2*8))) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1680, 0) /* corruptSchema() will supply the error */ + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1694, 0) /* corruptSchema() will supply the error */ return int32(SQLITE_ERROR) } } else { - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6557, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12539, libc.VaList(bp+8, zName)) + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6621, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12664, libc.VaList(bp+8, zName)) return int32(SQLITE_ERROR) } } @@ -95886,9 +96415,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Special case: Parsing the sqlite_schema or sqlite_temp_schema schema */ iDb = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6565 + v1 = __ccgo_ts + 6629 } else { - v1 = __ccgo_ts + 6098 + v1 = __ccgo_ts + 6162 } zName = _sqlite3DbStrDup(tls, db, v1) *(*uintptr)(unsafe.Pointer(bp)) = pName1 @@ -95901,7 +96430,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 && (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) && iDb != int32(1) { /* If creating a temp table, the name may not be qualified. Unless ** the database name is "temp" anyway. */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12581, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12706, 0) return } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 { @@ -95917,9 +96446,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui return } if isView != 0 { - v2 = __ccgo_ts + 10828 + v2 = __ccgo_ts + 10953 } else { - v2 = __ccgo_ts + 9090 + v2 = __ccgo_ts + 9215 } if _sqlite3CheckObjectName(tls, pParse, zName, v2, zName) != 0 { goto begin_table_error @@ -95929,9 +96458,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui } zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp == int32(1) { - v3 = __ccgo_ts + 6565 + v3 = __ccgo_ts + 6629 } else { - v3 = __ccgo_ts + 6098 + v3 = __ccgo_ts + 6162 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto begin_table_error @@ -95955,11 +96484,11 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if pTable != 0 { if !(noErr != 0) { if int32((*TTable)(unsafe.Pointer(pTable)).FeTabType) == int32(TABTYP_VIEW) { - v4 = __ccgo_ts + 10828 + v4 = __ccgo_ts + 10953 } else { - v4 = __ccgo_ts + 9090 + v4 = __ccgo_ts + 9215 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12622, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12747, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) _sqlite3ForceNotReadOnly(tls, pParse) @@ -95967,7 +96496,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui goto begin_table_error } if _sqlite3FindIndex(tls, db, zName, zDb1) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12643, libc.VaList(bp+16, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12768, libc.VaList(bp+16, zName)) goto begin_table_error } } @@ -96055,6 +96584,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Normal (non-error) return. */ return /* If an error occurs, we jump here */ + goto begin_table_error begin_table_error: ; (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) @@ -96118,7 +96648,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { _, _, _ = db, pHash, pRet db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12678, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12803, 0) } else { } (*TParse)(unsafe.Pointer(pParse)).FbReturning = uint8(1) @@ -96134,7 +96664,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return } - Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+12712, libc.VaList(bp+8, pParse)) + Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+12837, libc.VaList(bp+8, pParse)) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.FzName = pRet + 196 (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Fop = uint8(TK_RETURNING) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Ftr_tm = uint8(TRIGGER_AFTER) @@ -96181,7 +96711,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok return } if int32((*TTable)(unsafe.Pointer(p)).FnCol)+int32(1) > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12732, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12857, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) return } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -96191,12 +96721,12 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok ** by the parser, we can sometimes end up with a typename that ends ** with "generated always". Check for this case and omit the surplus ** text. */ - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12755, int32(6)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12880, int32(6)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(6) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1)))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- } - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12762, int32(9)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12887, int32(9)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(9) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1)))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- @@ -96245,7 +96775,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok break } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FhName) == int32(hName) && _sqlite3StrICmp(tls, z, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FzCnName) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12772, libc.VaList(bp+40, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12897, libc.VaList(bp+40, z)) _sqlite3DbFree(tls, db, z) return } @@ -96453,10 +96983,10 @@ func _sqlite3AddDefaultValue(tls *libc.TLS, pParse uintptr, pExpr uintptr, zStar isInit = libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) != int32(1)) pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(p)).FnCol)-int32(1))*16 if !(_sqlite3ExprIsConstantOrFunction(tls, pExpr, uint8(isInit)) != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12798, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12923, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12843, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12968, 0) } else { libc.Xmemset(tls, bp, 0, uint64(72)) (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_SPAN) @@ -96514,7 +97044,7 @@ func _makeColumnPartOfPrimaryKey(tls *libc.TLS, pParse uintptr, pCol uintptr) { p1 = pCol + 14 *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(COLFLAG_PRIMKEY)) if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12884, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13009, 0) } } @@ -96551,7 +97081,7 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError goto primary_key_exit } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasPrimaryKey) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12936, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13061, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto primary_key_exit } *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_HasPrimaryKey) @@ -96607,12 +97137,13 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError _sqlite3HasExplicitNulls(tls, pParse, pList) } else { if autoInc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12977, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13102, 0) } else { _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), pList, onError, uintptr(0), uintptr(0), sortOrder, 0, uint8(SQLITE_IDXTYPE_PRIMARYKEY)) pList = uintptr(0) } } + goto primary_key_exit primary_key_exit: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) @@ -96722,17 +97253,17 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui } pCol = (*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-int32(1))*16 if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) == int32(PARSE_MODE_DECLARE_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13033, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13158, 0) goto generated_done } if int32((*TColumn)(unsafe.Pointer(pCol)).FiDflt) > 0 { goto generated_error } if pType != 0 { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13076, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13201, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { /* no-op */ } else { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13084, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13209, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { eType = uint8(COLFLAG_STORED) } else { goto generated_error @@ -96761,9 +97292,11 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui _sqlite3ColumnSetExpr(tls, pParse, pTab, pCol, pExpr) pExpr = uintptr(0) goto generated_done + goto generated_error generated_error: ; - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13091, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13216, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + goto generated_done generated_done: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -96925,13 +97458,13 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { } n += _identLength(tls, (*TTable)(unsafe.Pointer(p)).FzName) if n < int32(50) { - zSep = __ccgo_ts + 1680 - zSep2 = __ccgo_ts + 13122 - zEnd = __ccgo_ts + 5138 + zSep = __ccgo_ts + 1694 + zSep2 = __ccgo_ts + 13247 + zEnd = __ccgo_ts + 5202 } else { - zSep = __ccgo_ts + 13124 - zSep2 = __ccgo_ts + 13128 - zEnd = __ccgo_ts + 13133 + zSep = __ccgo_ts + 13249 + zSep2 = __ccgo_ts + 13253 + zEnd = __ccgo_ts + 13258 } n += int32(35) + int32(6)*int32((*TTable)(unsafe.Pointer(p)).FnCol) zStmt = _sqlite3DbMallocRaw(tls, uintptr(0), uint64(n)) @@ -96939,7 +97472,7 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { _sqlite3OomFault(tls, db) return uintptr(0) } - Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13136, 0) + Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13261, 0) *(*int32)(unsafe.Pointer(bp)) = _sqlite3Strlen30(tls, zStmt) _identPut(tls, zStmt, bp, (*TTable)(unsafe.Pointer(p)).FzName) v2 = *(*int32)(unsafe.Pointer(bp)) @@ -96965,17 +97498,17 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { i++ pCol += 16 } - Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3827, libc.VaList(bp+16, zEnd)) + Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3891, libc.VaList(bp+16, zEnd)) return zStmt } var _azType1 = [6]uintptr{ - 0: __ccgo_ts + 1680, - 1: __ccgo_ts + 13150, - 2: __ccgo_ts + 13156, - 3: __ccgo_ts + 13161, - 4: __ccgo_ts + 13166, - 5: __ccgo_ts + 13156, + 0: __ccgo_ts + 1694, + 1: __ccgo_ts + 13275, + 2: __ccgo_ts + 13281, + 3: __ccgo_ts + 13286, + 4: __ccgo_ts + 13291, + 5: __ccgo_ts + 13281, } // C documentation @@ -97549,13 +98082,13 @@ func _sqlite3ShadowTableName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr, tabOpts Tu32, pSelect uintptr) { bp := tls.Alloc(112) defer tls.Free(112) - var addrInsLoop, addrTop, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v4, v6, v8 int32 + var addrInsLoop, addrTop, iCsr, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v10, v4, v6, v8 int32 var colFlags Tu32 - var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v5, v7, v9 uintptr - var v10 Ti16 + var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v13, v5, v7, v9 uintptr + var v12 Ti16 var _ /* dest at bp+0 */ TSelectDest - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v4, v5, v6, v7, v8, v9 /* The new table */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iCsr, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v12, v13, v4, v5, v6, v7, v8, v9 /* The new table */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ if pEnd == uintptr(0) && pSelect == uintptr(0) { return } @@ -97577,7 +98110,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if pSelect != 0 || !(int32((*TTable)(unsafe.Pointer(p)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) && (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1680, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1694, 0) return } (*TTable)(unsafe.Pointer(p)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum @@ -97604,9 +98137,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(ii)*16 if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf0>>4)) == COLTYPE_CUSTOM { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_HASTYPE) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13172, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1680))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13297, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1694))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13205, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13330, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } return } else { @@ -97627,11 +98160,11 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* Special processing for WITHOUT ROWID Tables */ if tabOpts&uint32(TF_WithoutRowid) != 0 { if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13232, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13357, 0) return } if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasPrimaryKey) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13282, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13407, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) return } *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) @@ -97678,7 +98211,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ii1++ } if nNG == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13314, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13439, 0) return } } @@ -97712,12 +98245,12 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if int32((*TTable)(unsafe.Pointer(p)).FeTabType) == TABTYP_NORM { /* A regular table */ - zType = __ccgo_ts + 9090 - zType2 = __ccgo_ts + 13358 + zType = __ccgo_ts + 9215 + zType2 = __ccgo_ts + 13483 } else { /* A view */ - zType = __ccgo_ts + 10828 - zType2 = __ccgo_ts + 13364 + zType = __ccgo_ts + 10953 + zType2 = __ccgo_ts + 13489 } /* If this is a CREATE TABLE xx AS SELECT ..., execute the SELECT ** statement to populate the new table. The root-page number for the @@ -97732,28 +98265,31 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** a schema-lock excludes all other database users, the write-lock would ** be redundant. */ - if pSelect != 0 { /* A table that describes the SELECT results */ + if pSelect != 0 { /* Write cursor on the new table */ if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) (*TParse)(unsafe.Pointer(pParse)).FnErr++ return } - v5 = pParse + 56 - *(*int32)(unsafe.Pointer(v5))++ + v5 = pParse + 52 v4 = *(*int32)(unsafe.Pointer(v5)) - regYield = v4 + *(*int32)(unsafe.Pointer(v5))++ + iCsr = v4 v7 = pParse + 56 *(*int32)(unsafe.Pointer(v7))++ v6 = *(*int32)(unsafe.Pointer(v7)) - regRec = v6 + regYield = v6 v9 = pParse + 56 *(*int32)(unsafe.Pointer(v9))++ v8 = *(*int32)(unsafe.Pointer(v9)) - regRowid = v8 + regRec = v8 + v11 = pParse + 56 + *(*int32)(unsafe.Pointer(v11))++ + v10 = *(*int32)(unsafe.Pointer(v11)) + regRowid = v10 _sqlite3MayAbort(tls, pParse) - _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), int32(1), (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) + _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), iCsr, (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_P2ISREG)) - (*TParse)(unsafe.Pointer(pParse)).FnTab = int32(2) addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { @@ -97763,9 +98299,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr if pSelTab == uintptr(0) { return } - v10 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol - (*TTable)(unsafe.Pointer(p)).FnNVCol = v10 - (*TTable)(unsafe.Pointer(p)).FnCol = v10 + v12 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol + (*TTable)(unsafe.Pointer(p)).FnNVCol = v12 + (*TTable)(unsafe.Pointer(p)).FnCol = v12 (*TTable)(unsafe.Pointer(p)).FaCol = (*TTable)(unsafe.Pointer(pSelTab)).FaCol (*TTable)(unsafe.Pointer(pSelTab)).FnCol = 0 (*TTable)(unsafe.Pointer(pSelTab)).FaCol = uintptr(0) @@ -97780,33 +98316,33 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr addrInsLoop = _sqlite3VdbeAddOp1(tls, v, int32(OP_Yield), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSDParm) _sqlite3VdbeAddOp3(tls, v, int32(OP_MakeRecord), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst, (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst, regRec) _sqlite3TableAffinity(tls, v, p, 0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), int32(1), regRowid) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), int32(1), regRec, regRowid) + _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iCsr, regRowid) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iCsr, regRec, regRowid) _sqlite3VdbeGoto(tls, v, addrInsLoop) _sqlite3VdbeJumpHere(tls, v, addrInsLoop) - _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), int32(1)) + _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), iCsr) } /* Compute the complete text of the CREATE statement */ if pSelect != 0 { zStmt = _createTableStmt(tls, db, p) } else { if tabOpts != 0 { - v11 = pParse + 288 + v13 = pParse + 288 } else { - v11 = pEnd + v13 = pEnd } - pEnd2 = v11 + pEnd2 = v13 n = int32(int64((*TToken)(unsafe.Pointer(pEnd2)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) if int32(*(*int8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pEnd2)).Fz))) != int32(';') { n = int32(uint32(n) + (*TToken)(unsafe.Pointer(pEnd2)).Fn) } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13369, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13494, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) } /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13384, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13509, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) _sqlite3DbFree(tls, db, zStmt) _sqlite3ChangeCookie(tls, pParse, iDb) /* Check to see if we need to create an sqlite_sequence table for @@ -97815,17 +98351,16 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != uint32(0) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != libc.Int32FromInt32(PARSE_MODE_NORMAL)) { pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).FpSeqTab == uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13482, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13607, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) } } /* Reparse everything to update our internal data structures */ - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13524, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13649, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) /* Test for cycles in generated columns and illegal expressions ** in CHECK constraints and in DEFAULT clauses. */ if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasGenerated) != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13558, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(0x0001), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13683, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13579, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } /* Add the table to the in-memory representation of the database. */ @@ -97842,7 +98377,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* If this is the magic sqlite_sequence table used by autoincrement, ** then record a pointer to this table in the main database structure ** so that INSERT can find the table easily. */ - if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9612) == 0 { + if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9737) == 0 { (*TSchema)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FpSchema)).FpSeqTab = p } } @@ -97875,7 +98410,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*uintptr)(unsafe.Pointer(bp + 112)) = uintptr(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if int32((*TParse)(unsafe.Pointer(pParse)).FnVar) > 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13611, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13704, 0) goto create_view_fail } _sqlite3StartTable(tls, pParse, pName1, pName2, isTemp, int32(1), 0, noErr) @@ -97892,7 +98427,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(TF_NoVisibleRowid) /* Never allow rowid in view */ _sqlite3TwoPartName(tls, pParse, pName1, pName2, bp+112) iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(p)).FpSchema) - _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+10828, *(*uintptr)(unsafe.Pointer(bp + 112))) + _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+10953, *(*uintptr)(unsafe.Pointer(bp + 112))) if _sqlite3FixSelect(tls, bp+16, pSelect) != 0 { goto create_view_fail } @@ -97934,6 +98469,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui (*(*TToken)(unsafe.Pointer(bp))).Fn = uint32(1) /* Use sqlite3EndTable() to add the view to the schema table */ _sqlite3EndTable(tls, pParse, uintptr(0), bp, uint32(0), uintptr(0)) + goto create_view_fail create_view_fail: ; _sqlite3SelectDelete(tls, db, pSelect) @@ -97987,7 +98523,7 @@ func _viewGetColumnNames(tls *libc.TLS, pParse uintptr, pTable uintptr) (r int32 ** SELECT * FROM temp.ex1; */ if int32((*TTable)(unsafe.Pointer(pTable)).FnCol) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13647, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13740, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) return int32(1) } /* If we get this far, it means we need to compute the table names. @@ -98171,7 +98707,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { v = _sqlite3GetVdbe(tls, pParse) r1 = _sqlite3GetTempReg(tls, pParse) if iTable < int32(2) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13677, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13770, 0) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Destroy), iTable, r1, iDb) _sqlite3MayAbort(tls, pParse) @@ -98184,7 +98720,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { ** is in register NNN. See grammar rules associated with the TK_REGISTER ** token for additional information. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13692, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13785, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) _sqlite3ReleaseTempReg(tls, pParse, r1) } @@ -98267,9 +98803,9 @@ func _sqlite3ClearStatTables(tls *libc.TLS, pParse uintptr, iDb int32, zType uin if !(i <= int32(4)) { break } - Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13759, libc.VaList(bp+32, i)) + Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13852, libc.VaList(bp+32, i)) if _sqlite3FindTable(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, bp, zDbName) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11717, libc.VaList(bp+32, zDbName, bp, zType, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11842, libc.VaList(bp+32, zDbName, bp, zType, zName)) } goto _1 _1: @@ -98310,7 +98846,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** move as a result of the drop (can happen in auto-vacuum mode). */ if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13773, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13866, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* Drop all entries in the schema table that refer to the ** table. The program name loops through the schema table and deletes @@ -98319,7 +98855,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** created in the temp database that refers to a table in another ** database. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13818, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13911, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !(isView != 0) && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { _destroyTable(tls, pParse, pTab) } @@ -98354,11 +98890,11 @@ func _sqlite3ReadOnlyShadowTables(tls *libc.TLS, db uintptr) (r int32) { // ** Return true if it is not allowed to drop the given table // */ func _tableMayNotBeDropped(tls *libc.TLS, db uintptr, pTab uintptr) (r int32) { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6557, int32(7)) == 0 { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3450, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6621, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3514, int32(4)) == 0 { return 0 } - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7298, int32(10)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7423, int32(10)) == 0 { return 0 } return int32(1) @@ -98413,9 +98949,9 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6565 + v1 = __ccgo_ts + 6629 } else { - v1 = __ccgo_ts + 6098 + v1 = __ccgo_ts + 6162 } zTab = v1 zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName @@ -98448,18 +98984,18 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if _tableMayNotBeDropped(tls, db, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13885, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13978, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Ensure DROP TABLE is not used on a view, and DROP VIEW is not used ** on a table. */ if isView != 0 && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13913, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14006, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } if !(isView != 0) && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13947, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14040, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Generate code to remove the table from the schema table @@ -98469,11 +99005,12 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) if !(isView != 0) { - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11829, (*TTable)(unsafe.Pointer(pTab)).FzName) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11954, (*TTable)(unsafe.Pointer(pTab)).FzName) _sqlite3FkDropTable(tls, pParse, pName, pTab) } _sqlite3CodeDropTable(tls, pParse, pTab, iDb, isView) } + goto exit_drop_table exit_drop_table: ; _sqlite3SrcListDelete(tls, db, pName) @@ -98516,13 +99053,13 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p goto fk_end } if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13979, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14072, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) goto fk_end } nCol = int32(1) } else { if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14042, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14135, 0) goto fk_end } else { nCol = (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr @@ -98585,7 +99122,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p j++ } if j >= int32((*TTable)(unsafe.Pointer(p)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14136, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14229, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) goto fk_end } if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { @@ -98637,6 +99174,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p FpDfltList uintptr })(unsafe.Pointer(p + 64))).FpFKey = pFKey pFKey = uintptr(0) + goto fk_end fk_end: ; _sqlite3DbFree(tls, db, pFKey) @@ -98844,11 +99382,11 @@ func _sqlite3HasExplicitNulls(tls *libc.TLS, pParse uintptr, pList uintptr) (r i if int32(uint32(*(*uint16)(unsafe.Pointer(pList + 8 + uintptr(i)*32 + 16 + 4))&0x20>>5)) != 0 { sf = (*(*TExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32))).Ffg.FsortFlags if int32(sf) == 0 || int32(sf) == int32(3) { - v2 = __ccgo_ts + 14182 + v2 = __ccgo_ts + 14275 } else { - v2 = __ccgo_ts + 14188 + v2 = __ccgo_ts + 14281 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14193, libc.VaList(bp+8, v2)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14286, libc.VaList(bp+8, v2)) return int32(1) } goto _1 @@ -98926,7 +99464,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = int32(1) } } - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14221, *(*uintptr)(unsafe.Pointer(bp + 96))) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14314, *(*uintptr)(unsafe.Pointer(bp + 96))) if _sqlite3FixSrcList(tls, bp, pTblName) != 0 { /* Because the parser constructs pTblName from a single identifier, ** sqlite3FixSrcList can never fail. */ @@ -98936,7 +99474,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } if iDb == int32(1) && (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema != (*TTable)(unsafe.Pointer(pTab)).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14227, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14320, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { @@ -98950,16 +99488,16 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6557, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14277, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6621, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14370, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14305, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14398, 0) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14330, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14423, 0) goto exit_create_index } /* @@ -98980,19 +99518,19 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if zName == uintptr(0) { goto exit_create_index } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14221, (*TTable)(unsafe.Pointer(pTab)).FzName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14314, (*TTable)(unsafe.Pointer(pTab)).FzName) { goto exit_create_index } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if !((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0) { if _sqlite3FindTable(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14364, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14457, libc.VaList(bp+136, zName)) goto exit_create_index } } if _sqlite3FindIndex(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { if !(ifNotExist != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14398, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14491, libc.VaList(bp+136, zName)) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) _sqlite3ForceNotReadOnly(tls, pParse) @@ -99013,7 +99551,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pLoop = (*TIndex)(unsafe.Pointer(pLoop)).FpNext n++ } - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14422, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14515, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) if zName == uintptr(0) { goto exit_create_index } @@ -99031,9 +99569,9 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { zDb = (*TDb)(unsafe.Pointer(pDb)).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6565 + v2 = __ccgo_ts + 6629 } else { - v2 = __ccgo_ts + 6098 + v2 = __ccgo_ts + 6162 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v2, uintptr(0), zDb) != 0 { goto exit_create_index @@ -99061,7 +99599,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } _sqlite3ExprListSetSortOrder(tls, pList, sortOrder, -int32(1)) } else { - _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14221) + _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14314) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { goto exit_create_index } @@ -99145,7 +99683,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pCExpr = _sqlite3ExprSkipCollate(tls, (*TExprList_item)(unsafe.Pointer(pListItem)).FpExpr) if int32((*TExpr)(unsafe.Pointer(pCExpr)).Fop) != int32(TK_COLUMN) { if pTab == (*TParse)(unsafe.Pointer(pParse)).FpNewTable { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14445, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14538, 0) goto exit_create_index } if (*TIndex)(unsafe.Pointer(pIndex)).FaColExpr == uintptr(0) { @@ -99292,7 +99830,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u ** explicitly specified behavior for the index. */ if !(int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) || int32((*TIndex)(unsafe.Pointer(pIndex)).FonError) == int32(OE_Default)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14506, libc.VaList(bp+136, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14599, libc.VaList(bp+136, 0)) } if int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) { (*TIndex)(unsafe.Pointer(pIdx)).FonError = (*TIndex)(unsafe.Pointer(pIndex)).FonError @@ -99322,8 +99860,8 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != uintptr(0) { (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14548, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125123)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14641, 0) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125741)) goto exit_create_index } } @@ -99363,11 +99901,11 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* A named index with an explicit CREATE INDEX statement */ if onError == OE_None { - v13 = __ccgo_ts + 1680 + v13 = __ccgo_ts + 1694 } else { - v13 = __ccgo_ts + 14565 + v13 = __ccgo_ts + 14658 } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14573, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14666, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) } else { /* An automatic index created by a PRIMARY KEY or UNIQUE constraint */ /* zStmt = sqlite3MPrintf(""); */ @@ -99375,7 +99913,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* Add an entry in sqlite_schema for this index */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14593, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14686, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) _sqlite3DbFree(tls, db, zStmt) /* Fill the index with data and reparse the schema. Code an OP_Expire ** to invalidate all pre-compiled statements. @@ -99383,7 +99921,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != 0 { _sqlite3RefillIndex(tls, pParse, pIndex, iMem) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14652, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14745, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Expire), 0, int32(1)) } _sqlite3VdbeJumpHere(tls, v, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum)) @@ -99401,6 +99939,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } } /* Clean up before exiting */ + goto exit_create_index exit_create_index: ; if pIndex != 0 { @@ -99545,7 +100084,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pIndex = _sqlite3FindIndex(tls, db, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzName, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) if pIndex == uintptr(0) { if !(ifExists != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14679, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14772, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) _sqlite3ForceNotReadOnly(tls, pParse) @@ -99554,7 +100093,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in goto exit_drop_index } if int32(uint32(*(*uint16)(unsafe.Pointer(pIndex + 100))&0x3>>0)) != SQLITE_IDXTYPE_APPDEF { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14697, libc.VaList(bp+8, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14790, libc.VaList(bp+8, 0)) goto exit_drop_index } iDb = _sqlite3SchemaToIndex(tls, db, (*TIndex)(unsafe.Pointer(pIndex)).FpSchema) @@ -99562,9 +100101,9 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pTab = (*TIndex)(unsafe.Pointer(pIndex)).FpTable zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6565 + v1 = __ccgo_ts + 6629 } else { - v1 = __ccgo_ts + 6098 + v1 = __ccgo_ts + 6162 } zTab = v1 if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_DELETE), zTab, uintptr(0), zDb) != 0 { @@ -99580,12 +100119,13 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in v = _sqlite3GetVdbe(tls, pParse) if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14770, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11825, (*TIndex)(unsafe.Pointer(pIndex)).FzName) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14863, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11950, (*TIndex)(unsafe.Pointer(pIndex)).FzName) _sqlite3ChangeCookie(tls, pParse, iDb) _destroyRootPage(tls, pParse, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum), iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropIndex), iDb, 0, 0, (*TIndex)(unsafe.Pointer(pIndex)).FzName, 0) } + goto exit_drop_index exit_drop_index: ; _sqlite3SrcListDelete(tls, db, pName) @@ -99771,7 +100311,7 @@ func _sqlite3SrcListEnlarge(tls *libc.TLS, pParse uintptr, pSrc uintptr, nExtra nAlloc = int64(2)*int64((*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) + int64(nExtra) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc+nExtra >= int32(SQLITE_MAX_SRCLIST) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14830, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14923, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) return uintptr(0) } if nAlloc > int64(SQLITE_MAX_SRCLIST) { @@ -100003,11 +100543,11 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa db = (*TParse)(unsafe.Pointer(pParse)).Fdb if !(p != 0) && pOnUsing != uintptr(0) && ((*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 || (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpUsing != 0) { if (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 { - v1 = __ccgo_ts + 14866 + v1 = __ccgo_ts + 14959 } else { - v1 = __ccgo_ts + 14869 + v1 = __ccgo_ts + 14962 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14875, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14968, libc.VaList(bp+8, v1)) goto append_from_error } p = _sqlite3SrcListAppend(tls, pParse, p, pTable, pDatabase) @@ -100044,6 +100584,7 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa } } return p + goto append_from_error append_from_error: ; _sqlite3ClearOnOrUsing(tls, db, pOnUsing) @@ -100204,7 +100745,7 @@ func _sqlite3BeginTransaction(tls *libc.TLS, pParse uintptr, type1 int32) { var eTxnType, i int32 _, _, _, _, _ = db, eTxnType, i, pBt, v db = (*TParse)(unsafe.Pointer(pParse)).Fdb - if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14911, uintptr(0), uintptr(0)) != 0 { + if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+15004, uintptr(0), uintptr(0)) != 0 { return } v = _sqlite3GetVdbe(tls, pParse) @@ -100251,9 +100792,9 @@ func _sqlite3EndTransaction(tls *libc.TLS, pParse uintptr, eType int32) { _, _, _ = isRollback, v, v1 isRollback = libc.BoolInt32(eType == int32(TK_ROLLBACK)) if isRollback != 0 { - v1 = __ccgo_ts + 14917 + v1 = __ccgo_ts + 15010 } else { - v1 = __ccgo_ts + 14926 + v1 = __ccgo_ts + 15019 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), v1, uintptr(0), uintptr(0)) != 0 { return @@ -100285,9 +100826,9 @@ func _sqlite3Savepoint(tls *libc.TLS, pParse uintptr, op int32, pName uintptr) { } var _az = [3]uintptr{ - 0: __ccgo_ts + 14911, - 1: __ccgo_ts + 14933, - 2: __ccgo_ts + 14917, + 0: __ccgo_ts + 15004, + 1: __ccgo_ts + 15026, + 2: __ccgo_ts + 15010, } // C documentation @@ -100307,7 +100848,7 @@ func _sqlite3OpenTempDatabase(tls *libc.TLS, pParse uintptr) (r int32) { if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt == uintptr(0) && !((*TParse)(unsafe.Pointer(pParse)).Fexplain != 0) { rc = _sqlite3BtreeOpen(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), db, bp, 0, _flags) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14941, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15034, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = rc return int32(1) } @@ -100491,7 +101032,7 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable _sqlite3StrAccumInit(tls, bp, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), 0, *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136))) if (*TIndex)(unsafe.Pointer(pIdx)).FaColExpr != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+15011, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+15104, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) } else { j = 0 for { @@ -100500,10 +101041,10 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx } zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)))*16))).FzCnName if j != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+15022, int32(2)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+15115, int32(2)) } Xsqlite3_str_appendall(tls, bp, (*TTable)(unsafe.Pointer(pTab)).FzName) - Xsqlite3_str_append(tls, bp, __ccgo_ts+1693, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+1707, int32(1)) Xsqlite3_str_appendall(tls, bp, zCol) goto _1 _1: @@ -100532,10 +101073,10 @@ func _sqlite3RowidConstraint(tls *libc.TLS, pParse uintptr, onError int32, pTab var zMsg uintptr _, _ = rc, zMsg if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12413, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12538, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(6)< libc.BoolInt32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15141, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15234, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } return 0 } @@ -101638,11 +102179,11 @@ func _sqlite3IsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr, pTrigger ui bp := tls.Alloc(16) defer tls.Free(16) if _tabIsReadOnly(tls, pParse, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15174, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15267, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && (pTrigger == uintptr(0) || (*TTrigger)(unsafe.Pointer(pTrigger)).FbReturning != 0 && (*TTrigger)(unsafe.Pointer(pTrigger)).FpNext == uintptr(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15203, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15296, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -102045,8 +102586,9 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** invoke the callback function. */ if memCnt != 0 { - _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15241) + _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15334) } + goto delete_from_cleanup delete_from_cleanup: ; _sqlite3AuthContextPop(tls, bp+8) @@ -102192,7 +102734,7 @@ func _sqlite3GenerateRowDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, pTri v3 = 0 } _sqlite3VdbeAddOp2(tls, v, int32(OP_Delete), iDataCur, v3) - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11614) { + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11739) { _sqlite3VdbeAppendP4(tls, v, pTab, -int32(5)) } if int32(eMode) != ONEPASS_OFF { @@ -102496,11 +103038,11 @@ func _typeofFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } var _azType2 = [5]uintptr{ - 0: __ccgo_ts + 6338, - 1: __ccgo_ts + 6333, - 2: __ccgo_ts + 8229, - 3: __ccgo_ts + 8224, - 4: __ccgo_ts + 1666, + 0: __ccgo_ts + 6402, + 1: __ccgo_ts + 6397, + 2: __ccgo_ts + 8354, + 3: __ccgo_ts + 8349, + 4: __ccgo_ts + 1680, } // C documentation @@ -102614,7 +103156,7 @@ func _absFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { /* IMP: R-31676-45509 If X is the integer -9223372036854775808 ** then abs(X) throws an integer overflow error since there is no ** equivalent positive 64-bit two complement value. */ - Xsqlite3_result_error(tls, context, __ccgo_ts+15254, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15347, -int32(1)) return } iVal = -iVal @@ -102709,11 +103251,13 @@ func _instrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } Xsqlite3_result_int(tls, context, N) + goto endInstr endInstr: ; Xsqlite3_value_free(tls, pC1) Xsqlite3_value_free(tls, pC2) return + goto endInstrOOM endInstrOOM: ; Xsqlite3_result_error_nomem(tls, context) @@ -102927,7 +103471,7 @@ func _roundFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } *(*float64)(unsafe.Pointer(bp)) = float64(int64(*(*float64)(unsafe.Pointer(bp)) + v1)) } else { - zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15271, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) + zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15364, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) if zBuf == uintptr(0) { Xsqlite3_result_error_nomem(tls, context) return @@ -103507,7 +104051,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { */ nPat = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) if nPat > *(*int32)(unsafe.Pointer(db + 136 + 8*4)) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15277, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15370, -int32(1)) return } if argc == int32(3) { @@ -103519,7 +104063,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { return } if _sqlite3Utf8CharLen(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), -int32(1)) != int32(1) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15310, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15403, -int32(1)) return } escape = _sqlite3Utf8Read(tls, bp+8) @@ -103601,7 +104145,7 @@ func _errlogFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { defer tls.Free(16) _ = argc _ = context - Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3827, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) + Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3891, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) } // C documentation @@ -103688,17 +104232,17 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_FLOAT): r1 = Xsqlite3_value_double(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15355, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15448, libc.VaList(bp+16, r1)) zVal = Xsqlite3_str_value(tls, pStr) if zVal != 0 { _sqlite3AtoF(tls, zVal, bp, int32((*TStrAccum)(unsafe.Pointer(pStr)).FnChar), uint8(SQLITE_UTF8)) if r1 != *(*float64)(unsafe.Pointer(bp)) { Xsqlite3_str_reset(tls, pStr) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15363, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15456, libc.VaList(bp+16, r1)) } } case int32(SQLITE_INTEGER): - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1436, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1455, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) case int32(SQLITE_BLOB): zBlob = Xsqlite3_value_blob(tls, pValue) nBlob = int64(Xsqlite3_value_bytes(tls, pValue)) @@ -103726,9 +104270,9 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { } case int32(SQLITE_TEXT): zArg = Xsqlite3_value_text(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15371, libc.VaList(bp+16, zArg)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15464, libc.VaList(bp+16, zArg)) default: - Xsqlite3_str_append(tls, pStr, __ccgo_ts+1681, int32(4)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+1695, int32(4)) break } } @@ -103965,7 +104509,7 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { var v3 uint32 var _ /* zHex at bp+0 */ uintptr _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, ch, d, nHex, nPass, p, pBlob, zPass, v1, v2, v3, v4, v5, v6 - zPass = __ccgo_ts + 1680 + zPass = __ccgo_ts + 1694 nPass = 0 *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) nHex = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) @@ -104017,10 +104561,12 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { *(*Tu8)(unsafe.Pointer(v6)) = uint8(int32(_sqlite3HexToInt(tls, int32(c)))< 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fapprox != 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fovrfl != 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+15254, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15347, -int32(1)) } else { if !(_sqlite3IsOverflow(tls, (*TSumCtx)(unsafe.Pointer(p)).FrErr) != 0) { Xsqlite3_result_double(tls, context, (*TSumCtx)(unsafe.Pointer(p)).FrSum+(*TSumCtx)(unsafe.Pointer(p)).FrErr) @@ -105028,7 +105574,7 @@ func _groupConcatValue(tls *libc.TLS, context uintptr) { func _sqlite3RegisterPerConnectionBuiltinFunctions(tls *libc.TLS, db uintptr) { var rc int32 _ = rc - rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15379, int32(2)) + rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15472, int32(2)) if rc == int32(SQLITE_NOMEM) { _sqlite3OomFault(tls, db) } @@ -105057,8 +105603,8 @@ func _sqlite3RegisterLikeFunctions(tls *libc.TLS, db uintptr, caseSensitive int3 if !(nArg <= int32(3)) { break } - _sqlite3CreateFunc(tls, db, __ccgo_ts+15385, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15385, nArg, uint8(SQLITE_UTF8), uint8(0)) + _sqlite3CreateFunc(tls, db, __ccgo_ts+15478, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15478, nArg, uint8(SQLITE_UTF8), uint8(0)) *(*Tu32)(unsafe.Pointer(pDef + 4)) |= uint32(flags) *(*Tu32)(unsafe.Pointer(pDef + 4)) &= uint32(^libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)) goto _1 @@ -105364,562 +105910,562 @@ var _aBuiltinFunc = [110]TFuncDef{ FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_implies_nonnull_row))), - FzName: __ccgo_ts + 15390, + FzName: __ccgo_ts + 15483, }, 1: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_compare))), - FzName: __ccgo_ts + 15410, + FzName: __ccgo_ts + 15503, }, 2: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_implies_expr))), - FzName: __ccgo_ts + 15423, + FzName: __ccgo_ts + 15516, }, 3: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_affinity))), - FzName: __ccgo_ts + 15441, + FzName: __ccgo_ts + 15534, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15450, + FzName: __ccgo_ts + 15543, }, 5: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15458, + FzName: __ccgo_ts + 15551, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15458, + FzName: __ccgo_ts + 15551, }, 7: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15473, + FzName: __ccgo_ts + 15566, }, 8: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15499, + FzName: __ccgo_ts + 15592, }, 9: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15524, + FzName: __ccgo_ts + 15617, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15533, + FzName: __ccgo_ts + 15626, }, 11: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15544, + FzName: __ccgo_ts + 15637, }, 12: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_sqlite_offset))), - FzName: __ccgo_ts + 15551, + FzName: __ccgo_ts + 15644, }, 13: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15565, + FzName: __ccgo_ts + 15658, }, 14: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15565, + FzName: __ccgo_ts + 15658, }, 15: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15571, + FzName: __ccgo_ts + 15664, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15571, + FzName: __ccgo_ts + 15664, }, 17: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15577, + FzName: __ccgo_ts + 15670, }, 18: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15577, + FzName: __ccgo_ts + 15670, }, 19: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15582, + FzName: __ccgo_ts + 15675, }, 20: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15582, + FzName: __ccgo_ts + 15675, }, 21: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15582, + FzName: __ccgo_ts + 15675, }, 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15586, + FzName: __ccgo_ts + 15679, }, 23: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15586, + FzName: __ccgo_ts + 15679, }, 24: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15586, + FzName: __ccgo_ts + 15679, }, 25: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15590, + FzName: __ccgo_ts + 15683, }, 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15597, + FzName: __ccgo_ts + 15690, }, 27: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_LENGTH)), - FzName: __ccgo_ts + 15605, + FzName: __ccgo_ts + 15698, }, 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_BYTELEN)), - FzName: __ccgo_ts + 15612, + FzName: __ccgo_ts + 15705, }, 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15625, + FzName: __ccgo_ts + 15718, }, 30: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15631, + FzName: __ccgo_ts + 15724, }, 31: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15638, + FzName: __ccgo_ts + 15731, }, 32: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15645, + FzName: __ccgo_ts + 15738, }, 33: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15653, + FzName: __ccgo_ts + 15746, }, 34: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15658, + FzName: __ccgo_ts + 15751, }, 35: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15662, + FzName: __ccgo_ts + 15755, }, 36: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15662, + FzName: __ccgo_ts + 15755, }, 37: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15668, + FzName: __ccgo_ts + 15761, }, 38: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15674, + FzName: __ccgo_ts + 15767, }, 39: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15680, + FzName: __ccgo_ts + 15773, }, 40: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15684, + FzName: __ccgo_ts + 15777, }, 41: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15684, + FzName: __ccgo_ts + 15777, }, 42: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15690, + FzName: __ccgo_ts + 15783, }, 43: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15690, + FzName: __ccgo_ts + 15783, }, 44: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15697, + FzName: __ccgo_ts + 15790, }, 45: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15697, + FzName: __ccgo_ts + 15790, }, 46: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15697, + FzName: __ccgo_ts + 15790, }, 47: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15707, + FzName: __ccgo_ts + 15800, }, 48: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15714, + FzName: __ccgo_ts + 15807, }, 49: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15721, + FzName: __ccgo_ts + 15814, }, 50: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15732, + FzName: __ccgo_ts + 15825, }, 51: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15739, + FzName: __ccgo_ts + 15832, }, 52: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15754, + FzName: __ccgo_ts + 15847, }, 53: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15771, + FzName: __ccgo_ts + 15864, }, 54: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15782, + FzName: __ccgo_ts + 15875, }, 55: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15788, + FzName: __ccgo_ts + 15881, }, 56: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15806, + FzName: __ccgo_ts + 15899, }, 57: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15814, + FzName: __ccgo_ts + 15907, }, 58: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15828, + FzName: __ccgo_ts + 15921, }, 59: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15836, + FzName: __ccgo_ts + 15929, }, 60: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15845, + FzName: __ccgo_ts + 15938, }, 61: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15845, + FzName: __ccgo_ts + 15938, }, 62: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15852, + FzName: __ccgo_ts + 15945, }, 63: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15852, + FzName: __ccgo_ts + 15945, }, 64: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15862, + FzName: __ccgo_ts + 15955, }, 65: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15866, + FzName: __ccgo_ts + 15959, }, 66: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15872, + FzName: __ccgo_ts + 15965, }, 67: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_COUNT) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15876, + FzName: __ccgo_ts + 15969, }, 68: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15876, + FzName: __ccgo_ts + 15969, }, 69: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15882, + FzName: __ccgo_ts + 15975, }, 70: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15882, + FzName: __ccgo_ts + 15975, }, 71: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15895, + FzName: __ccgo_ts + 15988, }, 72: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE) | libc.Int32FromInt32(SQLITE_FUNC_CASE)), FpUserData: uintptr(unsafe.Pointer(&_globInfo)), - FzName: __ccgo_ts + 15906, + FzName: __ccgo_ts + 15999, }, 73: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15385, + FzName: __ccgo_ts + 15478, }, 74: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15385, + FzName: __ccgo_ts + 15478, }, 75: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6762, + FzName: __ccgo_ts + 6826, }, 76: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6762, + FzName: __ccgo_ts + 6826, }, 77: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15911, + FzName: __ccgo_ts + 16004, }, 78: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15916, + FzName: __ccgo_ts + 1267, }, 79: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15924, + FzName: __ccgo_ts + 1275, }, 80: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15930, + FzName: __ccgo_ts + 16009, }, 81: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15936, + FzName: __ccgo_ts + 16015, }, 82: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15939, + FzName: __ccgo_ts + 16018, }, 83: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15943, + FzName: __ccgo_ts + 16022, }, 84: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15949, + FzName: __ccgo_ts + 16028, }, 85: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15939, + FzName: __ccgo_ts + 16018, }, 86: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15954, + FzName: __ccgo_ts + 16033, }, 87: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15958, + FzName: __ccgo_ts + 16037, }, 88: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15962, + FzName: __ccgo_ts + 16041, }, 89: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15968, + FzName: __ccgo_ts + 16047, }, 90: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15972, + FzName: __ccgo_ts + 16051, }, 91: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15977, + FzName: __ccgo_ts + 16056, }, 92: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15982, + FzName: __ccgo_ts + 16061, }, 93: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15987, + FzName: __ccgo_ts + 16066, }, 94: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15993, + FzName: __ccgo_ts + 16072, }, 95: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15997, + FzName: __ccgo_ts + 16076, }, 96: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16001, + FzName: __ccgo_ts + 16080, }, 97: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16005, + FzName: __ccgo_ts + 16084, }, 98: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16010, + FzName: __ccgo_ts + 16089, }, 99: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16015, + FzName: __ccgo_ts + 16094, }, 100: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16020, + FzName: __ccgo_ts + 16099, }, 101: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16026, + FzName: __ccgo_ts + 16105, }, 102: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16032, + FzName: __ccgo_ts + 16111, }, 103: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16038, + FzName: __ccgo_ts + 16117, }, 104: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16043, + FzName: __ccgo_ts + 16122, }, 105: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16051, + FzName: __ccgo_ts + 16130, }, 106: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16059, + FzName: __ccgo_ts + 16138, }, 107: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16062, + FzName: __ccgo_ts + 16141, }, 108: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 6762, + FzName: __ccgo_ts + 6826, }, 109: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_iif))), - FzName: __ccgo_ts + 16067, + FzName: __ccgo_ts + 16146, }, } @@ -106396,7 +106942,7 @@ func _sqlite3FkLocateIndex(tls *libc.TLS, pParse uintptr, pParent uintptr, pFKey } if !(pIdx != 0) { if !((*TParse)(unsafe.Pointer(pParse)).FdisableTriggers != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16071, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16150, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) } _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiCol) return int32(1) @@ -107507,11 +108053,11 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr break } *(*TToken)(unsafe.Pointer(bp + 16)) = TToken{ - Fz: __ccgo_ts + 6628, + Fz: __ccgo_ts + 6692, Fn: uint32(3), } /* Literal "old" token */ *(*TToken)(unsafe.Pointer(bp + 32)) = TToken{ - Fz: __ccgo_ts + 6624, + Fz: __ccgo_ts + 6688, Fn: uint32(3), } /* tFromCol = OLD.tToCol */ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -107575,7 +108121,7 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr nFrom = _sqlite3Strlen30(tls, zFrom) if action == int32(OE_Restrict) { iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5257) + pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5321) if pRaise != 0 { (*TExpr)(unsafe.Pointer(pRaise)).FaffExpr = int8(OE_Abort) } @@ -108156,7 +108702,7 @@ func _sqlite3ComputeGeneratedColumns(tls *libc.TLS, pParse uintptr, iRegStore in } } if pRedo != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8194, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8319, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) } (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 } @@ -108417,6 +108963,219 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { } } +// C documentation +// +// /* +// ** If argument pVal is a Select object returned by an sqlite3MultiValues() +// ** that was able to use the co-routine optimization, finish coding the +// ** co-routine. +// */ +func _sqlite3MultiValuesEnd(tls *libc.TLS, pParse uintptr, pVal uintptr) { + var pItem uintptr + _ = pItem + if pVal != 0 && (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pVal)).FpSrc)).FnSrc > 0 { + pItem = (*TSelect)(unsafe.Pointer(pVal)).FpSrc + 8 + _sqlite3VdbeEndCoroutine(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn) + _sqlite3VdbeJumpHere(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FaddrFillSub-int32(1)) + } +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are constant. +// */ +func _exprListIsConstant(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + if 0 == _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are both constant and have no affinity. +// */ +func _exprListIsNoAffinity(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + var pExpr uintptr + _, _ = ii, pExpr + if _exprListIsConstant(tls, pParse, pRow) == 0 { + return 0 + } + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + pExpr = (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr + if 0 != int32(_sqlite3ExprAffinity(tls, pExpr)) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** This function is called by the parser for the second and subsequent +// ** rows of a multi-row VALUES clause. Argument pLeft is the part of +// ** the VALUES clause already parsed, argument pRow is the vector of values +// ** for the new row. The Select object returned represents the complete +// ** VALUES clause, including the new row. +// ** +// ** There are two ways in which this may be achieved - by incremental +// ** coding of a co-routine (the "co-routine" method) or by returning a +// ** Select object equivalent to the following (the "UNION ALL" method): +// ** +// ** "pLeft UNION ALL SELECT pRow" +// ** +// ** If the VALUES clause contains a lot of rows, this compound Select +// ** object may consume a lot of memory. +// ** +// ** When the co-routine method is used, each row that will be returned +// ** by the VALUES clause is coded into part of a co-routine as it is +// ** passed to this function. The returned Select object is equivalent to: +// ** +// ** SELECT * FROM ( +// ** Select object to read co-routine +// ** ) +// ** +// ** The co-routine method is used in most cases. Exceptions are: +// ** +// ** a) If the current statement has a WITH clause. This is to avoid +// ** statements like: +// ** +// ** WITH cte AS ( VALUES('x'), ('y') ... ) +// ** SELECT * FROM cte AS a, cte AS b; +// ** +// ** This will not work, as the co-routine uses a hard-coded register +// ** for its OP_Yield instructions, and so it is not possible for two +// ** cursors to iterate through it concurrently. +// ** +// ** b) The schema is currently being parsed (i.e. the VALUES clause is part +// ** of a schema item like a VIEW or TRIGGER). In this case there is no VM +// ** being generated when parsing is taking place, and so generating +// ** a co-routine is not possible. +// ** +// ** c) There are non-constant expressions in the VALUES clause (e.g. +// ** the VALUES clause is part of a correlated sub-query). +// ** +// ** d) One or more of the values in the first row of the VALUES clause +// ** has an affinity (i.e. is a CAST expression). This causes problems +// ** because the complex rules SQLite uses (see function +// ** sqlite3SubqueryColumnTypes() in select.c) to determine the effective +// ** affinity of such a column for all rows require access to all values in +// ** the column simultaneously. +// */ +func _sqlite3MultiValues(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRow uintptr) (r uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var f, v1 int32 + var p, pRet, pSelect, v, v2 uintptr + var _ /* dest at bp+0 */ TSelectDest + _, _, _, _, _, _, _ = f, p, pRet, pSelect, v, v1, v2 + if (*TParse)(unsafe.Pointer(pParse)).FbHasWith != 0 || (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy != 0 || _exprListIsConstant(tls, pParse, pRow) == 0 || (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 && _exprListIsNoAffinity(tls, pParse, (*TSelect)(unsafe.Pointer(pLeft)).FpEList) == 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { + /* The co-routine method cannot be used. Fall back to UNION ALL. */ + pSelect = uintptr(0) + f = libc.Int32FromInt32(SF_Values) | libc.Int32FromInt32(SF_MultiValue) + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc != 0 { + _sqlite3MultiValuesEnd(tls, pParse, pLeft) + f = int32(SF_Values) + } else { + if (*TSelect)(unsafe.Pointer(pLeft)).FpPrior != 0 { + /* In this case set the SF_MultiValue flag only if it was set on pLeft */ + f = int32(uint32(f) & (*TSelect)(unsafe.Pointer(pLeft)).FselFlags) + } + } + pSelect = _sqlite3SelectNew(tls, pParse, pRow, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(f), uintptr(0)) + *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) + if pSelect != 0 { + (*TSelect)(unsafe.Pointer(pSelect)).Fop = uint8(TK_ALL) + (*TSelect)(unsafe.Pointer(pSelect)).FpPrior = pLeft + pLeft = pSelect + } + } else { + p = uintptr(0) /* SrcItem that reads from co-routine */ + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 { + /* Co-routine has not yet been started and the special Select object + ** that accesses the co-routine has not yet been created. This block + ** does both those things. */ + v = _sqlite3GetVdbe(tls, pParse) + pRet = _sqlite3SelectNew(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) + /* Ensure the database schema has been read. This is to ensure we have + ** the correct text encoding. */ + if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmDbFlags&uint32(DBFLAG_SchemaKnownOk) == uint32(0) { + _sqlite3ReadSchema(tls, pParse) + } + if pRet != 0 { + (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pRet)).FpSrc)).FnSrc = int32(1) + (*TSelect)(unsafe.Pointer(pRet)).FpPrior = (*TSelect)(unsafe.Pointer(pLeft)).FpPrior + (*TSelect)(unsafe.Pointer(pRet)).Fop = (*TSelect)(unsafe.Pointer(pLeft)).Fop + (*TSelect)(unsafe.Pointer(pLeft)).FpPrior = uintptr(0) + (*TSelect)(unsafe.Pointer(pLeft)).Fop = uint8(TK_SELECT) + p = (*TSelect)(unsafe.Pointer(pRet)).FpSrc + 8 + (*TSrcItem)(unsafe.Pointer(p)).FpSelect = pLeft + libc.SetBitFieldPtr16Uint32(p+60+4, libc.Uint32FromInt32(1), 5, 0x20) + (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + v2 = pParse + 56 + *(*int32)(unsafe.Pointer(v2))++ + v1 = *(*int32)(unsafe.Pointer(v2)) + (*TSrcItem)(unsafe.Pointer(p)).FregReturn = v1 + (*TSrcItem)(unsafe.Pointer(p)).FiCursor = -int32(1) + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1)) = uint32(2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn, 0, (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub) + _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + /* Allocate registers for the output of the co-routine. Do so so + ** that there are two unused registers immediately before those + ** used by the co-routine. This allows the code in sqlite3Insert() + ** to use these registers directly, instead of copying the output + ** of the co-routine to a separate array for processing. */ + (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(3) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpEList)).FnExpr + *(*int32)(unsafe.Pointer(pParse + 56)) += int32(2) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst + *(*Tu32)(unsafe.Pointer(pLeft + 4)) |= uint32(SF_MultiValue) + _sqlite3Select(tls, pParse, pLeft, bp) + (*TSrcItem)(unsafe.Pointer(p)).FregResult = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst + pLeft = pRet + } + } else { + p = (*TSelect)(unsafe.Pointer(pLeft)).FpSrc + 8 + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1))++ + } + if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { + if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p)).FpSelect)).FpEList)).FnExpr != (*TExprList)(unsafe.Pointer(pRow)).FnExpr { + _sqlite3SelectWrongNumTermsError(tls, pParse, (*TSrcItem)(unsafe.Pointer(p)).FpSelect) + } else { + _sqlite3ExprCodeExprList(tls, pParse, pRow, (*TSrcItem)(unsafe.Pointer(p)).FregResult, 0, uint8(0)) + _sqlite3VdbeAddOp1(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Yield), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + } + } + _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pRow) + } + return pLeft +} + // C documentation // // /* @@ -108519,27 +109278,27 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uintptr, pColumn uintptr, onError int32, pUpsert uintptr) { bp := tls.Alloc(160) defer tls.Free(160) - var aRegIdx, db, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, v, v13, v16, v18, v6, v9 uintptr - var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v12, v15, v17, v19, v23, v24, v5, v7, v8 int32 + var aRegIdx, db, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, v, v10, v14, v17, v19, v7 uintptr + var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v13, v16, v18, v20, v24, v25, v5, v6, v8, v9 int32 var appendFlag, bIdListInOrder, useTempTable, withoutRowid Tu8 - var colFlags, v21 Tu32 + var colFlags, v22 Tu32 var _ /* dest at bp+8 */ TSelectDest var _ /* iDataCur at bp+0 */ int32 var _ /* iIdxCur at bp+4 */ int32 var _ /* isReplace at bp+112 */ int32 var _ /* sNC at bp+56 */ TNameContext var _ /* tmask at bp+48 */ int32 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v12, v13, v15, v16, v17, v18, v19, v21, v23, v24, v5, v6, v7, v8, v9 /* Number of columns in the data */ - nHidden = 0 /* Number of hidden columns if TABLE is virtual */ - *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ - *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ - ipkColumn = -int32(1) /* Label for the end of the insertion loop */ - srcTab = 0 /* Data comes from this temporary cursor if >=0 */ - addrInsTop = 0 /* Jump to label "D" */ - addrCont = 0 /* Index of database holding TABLE */ - useTempTable = uint8(0) /* Store SELECT results in intermediate table */ - appendFlag = uint8(0) /* True if IDLIST is in table order */ - pList = uintptr(0) /* Register in which to store next column */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v10, v13, v14, v16, v17, v18, v19, v20, v22, v24, v25, v5, v6, v7, v8, v9 /* Number of columns in the data */ + nHidden = 0 /* Number of hidden columns if TABLE is virtual */ + *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ + *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ + ipkColumn = -int32(1) /* Label for the end of the insertion loop */ + srcTab = 0 /* Data comes from this temporary cursor if >=0 */ + addrInsTop = 0 /* Jump to label "D" */ + addrCont = 0 /* Index of database holding TABLE */ + useTempTable = uint8(0) /* Store SELECT results in intermediate table */ + appendFlag = uint8(0) /* True if IDLIST is in table order */ + pList = uintptr(0) /* Register in which to store next column */ /* Register allocations */ regFromSelect = 0 /* Base register for data coming from SELECT */ regAutoinc = 0 /* Register holding the AUTOINCREMENT counter */ @@ -108677,7 +109436,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_STORED)|libc.Int32FromInt32(COLFLAG_VIRTUAL)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16116, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16195, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto insert_cleanup } break @@ -108692,7 +109451,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i bIdListInOrder = uint8(0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16157, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16236, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto insert_cleanup } @@ -108709,28 +109468,46 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** co-routine is the common header to the 3rd and 4th templates. */ if pSelect != 0 { /* Result code */ - v6 = pParse + 56 - *(*int32)(unsafe.Pointer(v6))++ - v5 = *(*int32)(unsafe.Pointer(v6)) - regYield = v5 - addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) - _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) - _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) - if bIdListInOrder != 0 { - v7 = regData - } else { - v7 = 0 - } - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v7 - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) - rc = _sqlite3Select(tls, pParse, pSelect, bp+8) - regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst - if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { - goto insert_cleanup + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc)).FnSrc == int32(1) && int32(uint32(*(*uint16)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + 60 + 4))&0x20>>5)) != 0 && (*TSelect)(unsafe.Pointer(pSelect)).FpPrior == uintptr(0) { + pItem = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSDParm = (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn + regFromSelect = (*TSrcItem)(unsafe.Pointer(pItem)).FregResult + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FpEList)).FnExpr + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+16268, libc.VaList(bp+128, pItem)) + if bIdListInOrder != 0 && nColumn == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { + regData = regFromSelect + regRowid = regData - int32(1) + if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { + v5 = int32(1) + } else { + v5 = 0 + } + regIns = regRowid - v5 + } + } else { + v7 = pParse + 56 + *(*int32)(unsafe.Pointer(v7))++ + v6 = *(*int32)(unsafe.Pointer(v7)) /* Top of the co-routine */ + regYield = v6 + addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) + _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) + if bIdListInOrder != 0 { + v8 = regData + } else { + v8 = 0 + } + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) + rc = _sqlite3Select(tls, pParse, pSelect, bp+8) + regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst + if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { + goto insert_cleanup + } + _sqlite3VdbeEndCoroutine(tls, v, regYield) + _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr } - _sqlite3VdbeEndCoroutine(tls, v, regYield) - _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ - nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr /* Set useTempTable to TRUE if the result of the SELECT statement ** should be written into a temporary table (template 4). Set to ** FALSE if each output row of the SELECT can be written directly into @@ -108744,10 +109521,10 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin useTempTable = uint8(1) } if useTempTable != 0 { /* Label "L" */ - v9 = pParse + 52 - v8 = *(*int32)(unsafe.Pointer(v9)) - *(*int32)(unsafe.Pointer(v9))++ - srcTab = v8 + v10 = pParse + 52 + v9 = *(*int32)(unsafe.Pointer(v10)) + *(*int32)(unsafe.Pointer(v10))++ + srcTab = v9 regRec = _sqlite3GetTempReg(tls, pParse) regTempRowid = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp2(tls, v, int32(OP_OpenEphemeral), srcTab, nColumn) @@ -108788,8 +109565,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { ipkColumn-- } - goto _10 - _10: + goto _11 + _11: ; i-- } @@ -108806,28 +109583,28 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_NOINSERT) != 0 { nHidden++ } - goto _11 - _11: + goto _12 + _12: ; i++ } } if nColumn != int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16189, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16276, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) goto insert_cleanup } } if pColumn != uintptr(0) && nColumn != (*TIdList)(unsafe.Pointer(pColumn)).FnId { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16241, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16328, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) goto insert_cleanup } /* Initialize the count of rows to be inserted */ if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&(uint64(libc.Int32FromInt32(0x00001))<= 0 { /* tag-20191021-001: If the INTEGER PRIMARY KEY is being generated by the ** SELECT, go ahead and copy the value into the rowid slot now, so that @@ -108940,18 +109717,18 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** using excess space. The file format definition requires this extra ** NULL - we cannot optimize further by skipping the column completely */ _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) - goto _20 + goto _21 } - v21 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) - colFlags = v21 - if v21&uint32(COLFLAG_NOINSERT) != uint32(0) { + v22 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) + colFlags = v22 + if v22&uint32(COLFLAG_NOINSERT) != uint32(0) { nHidden++ if colFlags&uint32(COLFLAG_VIRTUAL) != uint32(0) { /* Virtual columns do not participate in OP_MakeRecord. So back up ** iRegStore by one slot to compensate for the iRegStore++ in the ** outer for() loop */ iRegStore-- - goto _20 + goto _21 } else { if colFlags&uint32(COLFLAG_STORED) != uint32(0) { /* Stored columns are computed later. But if there are BEFORE @@ -108961,13 +109738,13 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if *(*int32)(unsafe.Pointer(bp + 48))&int32(TRIGGER_BEFORE) != 0 { _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) } - goto _20 + goto _21 } else { if pColumn == uintptr(0) { /* Hidden columns that are not explicitly named in the INSERT ** get there default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } } } @@ -108978,8 +109755,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if !(j < (*TIdList)(unsafe.Pointer(pColumn)).FnId && *(*int32)(unsafe.Pointer(pColumn + 8 + uintptr(j)*16 + 8)) != i) { break } - goto _22 - _22: + goto _23 + _23: ; j++ } @@ -108987,14 +109764,14 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin /* A column not named in the insert column list gets its ** default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } k = j } else { if nColumn == 0 { /* This is INSERT INTO ... DEFAULT VALUES. Load the default value. */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } else { k = i - nHidden } @@ -109011,16 +109788,16 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin y = _sqlite3ExprCodeTarget(tls, pParse, pX, iRegStore) if y != iRegStore { if (*TExpr)(unsafe.Pointer(pX)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) { - v23 = int32(OP_Copy) + v24 = int32(OP_Copy) } else { - v23 = int32(OP_SCopy) + v24 = int32(OP_SCopy) } - _sqlite3VdbeAddOp2(tls, v, v23, y, iRegStore) + _sqlite3VdbeAddOp2(tls, v, v24, y, iRegStore) } } } - goto _20 - _20: + goto _21 + _21: ; i++ iRegStore++ @@ -109131,11 +109908,11 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VtabMakeWritable(tls, pParse, pTab) _sqlite3VdbeAddOp4(tls, v, int32(OP_VUpdate), int32(1), int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+int32(2), regIns, pVTab, -int32(11)) if onError == int32(OE_Default) { - v24 = int32(OE_Abort) + v25 = int32(OE_Abort) } else { - v24 = onError + v25 = onError } - _sqlite3VdbeChangeP5(tls, v, uint16(v24)) + _sqlite3VdbeChangeP5(tls, v, uint16(v25)) _sqlite3MayAbort(tls, pParse) } else { *(*int32)(unsafe.Pointer(bp + 112)) = 0 /* True to use OPFLAG_SEEKRESULT */ @@ -109178,6 +109955,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VdbeJumpHere(tls, v, addrInsTop) } } + goto insert_end insert_end: ; /* Update the sqlite_sequence table by storing the content of the @@ -109193,8 +109971,9 @@ insert_end: ** invoke the callback function. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16333) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16420) } + goto insert_cleanup insert_cleanup: ; _sqlite3SrcListDelete(tls, db, pTabList) @@ -109585,7 +110364,7 @@ func _sqlite3GenerateConstraintChecks(tls *libc.TLS, pParse uintptr, pTab uintpt case int32(OE_Rollback): fallthrough case int32(OE_Fail): - zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12413, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12538, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) _sqlite3VdbeAddOp3(tls, v, int32(OP_HaltIfNull), libc.Int32FromInt32(SQLITE_CONSTRAINT)|libc.Int32FromInt32(5)<= 0 && !(int32(*(*int8)(unsafe.Pointer(zFile + uintptr(iFile)))) == libc.Int32FromUint8('/'))) { @@ -111818,7 +112598,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp iFile-- } iFile++ - if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16382, int32(3)) == 0 { + if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16469, int32(3)) == 0 { iFile += int32(3) } iEntry = int32(8) @@ -111838,7 +112618,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp ; iFile++ } - libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16386, uint64(6)) + libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16473, uint64(6)) zEntry = zAltEntry xInit = _sqlite3OsDlSym(tls, pVfs, handle, zEntry) } @@ -111850,7 +112630,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v7 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16392, libc.VaList(bp+16, zEntry, zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16479, libc.VaList(bp+16, zEntry, zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -111865,7 +112645,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp return SQLITE_OK } if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16435, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16522, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3OsDlClose(tls, pVfs, handle) @@ -111886,6 +112666,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*int32)(unsafe.Pointer(v9))++ *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaExtension + uintptr(v8)*8)) = handle return SQLITE_OK + goto extension_not_found extension_not_found: ; if pzErrMsg != 0 { @@ -111895,7 +112676,7 @@ extension_not_found: *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v10 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16467, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16554, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -111904,7 +112685,7 @@ extension_not_found: /* Shared library endings to try if zFile cannot be loaded as written */ var _azEndings = [1]uintptr{ - 0: __ccgo_ts + 16347, + 0: __ccgo_ts + 16434, } func Xsqlite3_load_extension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintptr, pzErrMsg uintptr) (r int32) { @@ -112137,7 +112918,7 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { rc = v2 } if v3 && v2 != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16504, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16591, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) go1 = 0 } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -112191,63 +112972,63 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { // ** result column is different from the name of the pragma // */ var _pragCName = [57]uintptr{ - 0: __ccgo_ts + 5513, - 1: __ccgo_ts + 16543, - 2: __ccgo_ts + 9090, - 3: __ccgo_ts + 16547, - 4: __ccgo_ts + 16552, - 5: __ccgo_ts + 16555, - 6: __ccgo_ts + 16565, - 7: __ccgo_ts + 16575, - 8: __ccgo_ts + 16581, - 9: __ccgo_ts + 16585, - 10: __ccgo_ts + 16590, - 11: __ccgo_ts + 16595, - 12: __ccgo_ts + 16603, - 13: __ccgo_ts + 16614, - 14: __ccgo_ts + 16617, - 15: __ccgo_ts + 16624, - 16: __ccgo_ts + 16585, - 17: __ccgo_ts + 16590, - 18: __ccgo_ts + 16631, - 19: __ccgo_ts + 16636, - 20: __ccgo_ts + 16639, - 21: __ccgo_ts + 16646, - 22: __ccgo_ts + 16581, - 23: __ccgo_ts + 16585, - 24: __ccgo_ts + 16652, - 25: __ccgo_ts + 16657, - 26: __ccgo_ts + 16662, - 27: __ccgo_ts + 16585, - 28: __ccgo_ts + 16666, - 29: __ccgo_ts + 16590, - 30: __ccgo_ts + 16674, - 31: __ccgo_ts + 16678, - 32: __ccgo_ts + 16683, - 33: __ccgo_ts + 11829, - 34: __ccgo_ts + 11825, - 35: __ccgo_ts + 16689, - 36: __ccgo_ts + 16694, - 37: __ccgo_ts + 16699, - 38: __ccgo_ts + 16543, - 39: __ccgo_ts + 16585, - 40: __ccgo_ts + 16704, - 41: __ccgo_ts + 16711, - 42: __ccgo_ts + 16718, - 43: __ccgo_ts + 9090, - 44: __ccgo_ts + 16726, - 45: __ccgo_ts + 5516, - 46: __ccgo_ts + 16732, - 47: __ccgo_ts + 16543, - 48: __ccgo_ts + 16585, - 49: __ccgo_ts + 16737, - 50: __ccgo_ts + 16742, - 51: __ccgo_ts + 15939, - 52: __ccgo_ts + 16747, - 53: __ccgo_ts + 16760, - 54: __ccgo_ts + 16769, - 55: __ccgo_ts + 16776, - 56: __ccgo_ts + 16787, + 0: __ccgo_ts + 5577, + 1: __ccgo_ts + 16630, + 2: __ccgo_ts + 9215, + 3: __ccgo_ts + 16634, + 4: __ccgo_ts + 16639, + 5: __ccgo_ts + 16642, + 6: __ccgo_ts + 16652, + 7: __ccgo_ts + 16662, + 8: __ccgo_ts + 16668, + 9: __ccgo_ts + 16672, + 10: __ccgo_ts + 16677, + 11: __ccgo_ts + 16682, + 12: __ccgo_ts + 16690, + 13: __ccgo_ts + 16701, + 14: __ccgo_ts + 16704, + 15: __ccgo_ts + 16711, + 16: __ccgo_ts + 16672, + 17: __ccgo_ts + 16677, + 18: __ccgo_ts + 16718, + 19: __ccgo_ts + 16723, + 20: __ccgo_ts + 16726, + 21: __ccgo_ts + 16733, + 22: __ccgo_ts + 16668, + 23: __ccgo_ts + 16672, + 24: __ccgo_ts + 16739, + 25: __ccgo_ts + 16744, + 26: __ccgo_ts + 16749, + 27: __ccgo_ts + 16672, + 28: __ccgo_ts + 16753, + 29: __ccgo_ts + 16677, + 30: __ccgo_ts + 16761, + 31: __ccgo_ts + 16765, + 32: __ccgo_ts + 16770, + 33: __ccgo_ts + 11954, + 34: __ccgo_ts + 11950, + 35: __ccgo_ts + 16776, + 36: __ccgo_ts + 16781, + 37: __ccgo_ts + 16786, + 38: __ccgo_ts + 16630, + 39: __ccgo_ts + 16672, + 40: __ccgo_ts + 16791, + 41: __ccgo_ts + 16798, + 42: __ccgo_ts + 16805, + 43: __ccgo_ts + 9215, + 44: __ccgo_ts + 16813, + 45: __ccgo_ts + 5580, + 46: __ccgo_ts + 16819, + 47: __ccgo_ts + 16630, + 48: __ccgo_ts + 16672, + 49: __ccgo_ts + 16824, + 50: __ccgo_ts + 16829, + 51: __ccgo_ts + 16018, + 52: __ccgo_ts + 16834, + 53: __ccgo_ts + 16847, + 54: __ccgo_ts + 16856, + 55: __ccgo_ts + 16863, + 56: __ccgo_ts + 16874, } // C documentation @@ -112266,191 +113047,191 @@ type PragmaName = TPragmaName var _aPragmaName = [66]TPragmaName{ 0: { - FzName: __ccgo_ts + 16795, + FzName: __ccgo_ts + 16882, FePragTyp: uint8(PragTyp_ANALYSIS_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 1: { - FzName: __ccgo_ts + 16810, + FzName: __ccgo_ts + 16897, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_APPLICATION_ID), }, 2: { - FzName: __ccgo_ts + 16825, + FzName: __ccgo_ts + 16912, FePragTyp: uint8(PragTyp_AUTO_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 3: { - FzName: __ccgo_ts + 16837, + FzName: __ccgo_ts + 16924, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_AutoIndex), }, 4: { - FzName: __ccgo_ts + 16853, + FzName: __ccgo_ts + 16940, FePragTyp: uint8(PragTyp_BUSY_TIMEOUT), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(56), FnPragCName: uint8(1), }, 5: { - FzName: __ccgo_ts + 16776, + FzName: __ccgo_ts + 16863, FePragTyp: uint8(PragTyp_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 6: { - FzName: __ccgo_ts + 16866, + FzName: __ccgo_ts + 16953, FePragTyp: uint8(PragTyp_CACHE_SPILL), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 7: { - FzName: __ccgo_ts + 16878, + FzName: __ccgo_ts + 16965, FePragTyp: uint8(PragTyp_CASE_SENSITIVE_LIKE), FmPragFlg: uint8(PragFlg_NoColumns), }, 8: { - FzName: __ccgo_ts + 16898, + FzName: __ccgo_ts + 16985, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CellSizeCk), }, 9: { - FzName: __ccgo_ts + 16914, + FzName: __ccgo_ts + 17001, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CkptFullFSync), }, 10: { - FzName: __ccgo_ts + 16935, + FzName: __ccgo_ts + 17022, FePragTyp: uint8(PragTyp_COLLATION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(38), FnPragCName: uint8(2), }, 11: { - FzName: __ccgo_ts + 16950, + FzName: __ccgo_ts + 17037, FePragTyp: uint8(PragTyp_COMPILE_OPTIONS), FmPragFlg: uint8(PragFlg_Result0), }, 12: { - FzName: __ccgo_ts + 16966, + FzName: __ccgo_ts + 17053, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00001)) << libc.Int32FromInt32(32), }, 13: { - FzName: __ccgo_ts + 16980, + FzName: __ccgo_ts + 17067, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_DATA_VERSION), }, 14: { - FzName: __ccgo_ts + 16993, + FzName: __ccgo_ts + 17080, FePragTyp: uint8(PragTyp_DATABASE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(47), FnPragCName: uint8(3), }, 15: { - FzName: __ccgo_ts + 17007, + FzName: __ccgo_ts + 17094, FePragTyp: uint8(PragTyp_DEFAULT_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiPragCName: uint8(55), FnPragCName: uint8(1), }, 16: { - FzName: __ccgo_ts + 17026, + FzName: __ccgo_ts + 17113, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_DeferFKs), }, 17: { - FzName: __ccgo_ts + 17045, + FzName: __ccgo_ts + 17132, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_NullCallback), }, 18: { - FzName: __ccgo_ts + 17068, + FzName: __ccgo_ts + 17155, FePragTyp: uint8(PragTyp_ENCODING), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 19: { - FzName: __ccgo_ts + 17077, + FzName: __ccgo_ts + 17164, FePragTyp: uint8(PragTyp_FOREIGN_KEY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(43), FnPragCName: uint8(4), }, 20: { - FzName: __ccgo_ts + 17095, + FzName: __ccgo_ts + 17182, FePragTyp: uint8(PragTyp_FOREIGN_KEY_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FnPragCName: uint8(8), }, 21: { - FzName: __ccgo_ts + 17112, + FzName: __ccgo_ts + 17199, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ForeignKeys), }, 22: { - FzName: __ccgo_ts + 17125, + FzName: __ccgo_ts + 17212, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), }, 23: { - FzName: __ccgo_ts + 17140, + FzName: __ccgo_ts + 17227, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullColNames), }, 24: { - FzName: __ccgo_ts + 17158, + FzName: __ccgo_ts + 17245, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullFSync), }, 25: { - FzName: __ccgo_ts + 17168, + FzName: __ccgo_ts + 17255, FePragTyp: uint8(PragTyp_FUNCTION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(27), FnPragCName: uint8(6), }, 26: { - FzName: __ccgo_ts + 17182, + FzName: __ccgo_ts + 17269, FePragTyp: uint8(PragTyp_HARD_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 27: { - FzName: __ccgo_ts + 17198, + FzName: __ccgo_ts + 17285, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_IgnoreChecks), }, 28: { - FzName: __ccgo_ts + 17223, + FzName: __ccgo_ts + 17310, FePragTyp: uint8(PragTyp_INCREMENTAL_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_NoColumns)), }, 29: { - FzName: __ccgo_ts + 17242, + FzName: __ccgo_ts + 17329, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), FnPragCName: uint8(3), }, 30: { - FzName: __ccgo_ts + 17253, + FzName: __ccgo_ts + 17340, FePragTyp: uint8(PragTyp_INDEX_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(38), FnPragCName: uint8(5), }, 31: { - FzName: __ccgo_ts + 17264, + FzName: __ccgo_ts + 17351, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), @@ -112458,146 +113239,146 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 32: { - FzName: __ccgo_ts + 17276, + FzName: __ccgo_ts + 17363, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 33: { - FzName: __ccgo_ts + 17292, + FzName: __ccgo_ts + 17379, FePragTyp: uint8(PragTyp_JOURNAL_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 34: { - FzName: __ccgo_ts + 17305, + FzName: __ccgo_ts + 17392, FePragTyp: uint8(PragTyp_JOURNAL_SIZE_LIMIT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 35: { - FzName: __ccgo_ts + 17324, + FzName: __ccgo_ts + 17411, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_LegacyAlter), }, 36: { - FzName: __ccgo_ts + 17343, + FzName: __ccgo_ts + 17430, FePragTyp: uint8(PragTyp_LOCKING_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 37: { - FzName: __ccgo_ts + 17356, + FzName: __ccgo_ts + 17443, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 38: { - FzName: __ccgo_ts + 17371, + FzName: __ccgo_ts + 17458, FePragTyp: uint8(PragTyp_MMAP_SIZE), }, 39: { - FzName: __ccgo_ts + 17381, + FzName: __ccgo_ts + 17468, FePragTyp: uint8(PragTyp_MODULE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 40: { - FzName: __ccgo_ts + 17393, + FzName: __ccgo_ts + 17480, FePragTyp: uint8(PragTyp_OPTIMIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_NeedSchema)), }, 41: { - FzName: __ccgo_ts + 17402, + FzName: __ccgo_ts + 17489, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 42: { - FzName: __ccgo_ts + 17413, + FzName: __ccgo_ts + 17500, FePragTyp: uint8(PragTyp_PAGE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 43: { - FzName: __ccgo_ts + 17423, + FzName: __ccgo_ts + 17510, FePragTyp: uint8(PragTyp_PRAGMA_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 44: { - FzName: __ccgo_ts + 17435, + FzName: __ccgo_ts + 17522, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_QueryOnly), }, 45: { - FzName: __ccgo_ts + 17446, + FzName: __ccgo_ts + 17533, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 46: { - FzName: __ccgo_ts + 17458, + FzName: __ccgo_ts + 17545, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00004)) << libc.Int32FromInt32(32), }, 47: { - FzName: __ccgo_ts + 17475, + FzName: __ccgo_ts + 17562, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_RecTriggers), }, 48: { - FzName: __ccgo_ts + 17494, + FzName: __ccgo_ts + 17581, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ReverseOrder), }, 49: { - FzName: __ccgo_ts + 17520, + FzName: __ccgo_ts + 17607, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_SCHEMA_VERSION), }, 50: { - FzName: __ccgo_ts + 17535, + FzName: __ccgo_ts + 17622, FePragTyp: uint8(PragTyp_SECURE_DELETE), FmPragFlg: uint8(PragFlg_Result0), }, 51: { - FzName: __ccgo_ts + 17549, + FzName: __ccgo_ts + 17636, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ShortColNames), }, 52: { - FzName: __ccgo_ts + 17568, + FzName: __ccgo_ts + 17655, FePragTyp: uint8(PragTyp_SHRINK_MEMORY), FmPragFlg: uint8(PragFlg_NoColumns), }, 53: { - FzName: __ccgo_ts + 17582, + FzName: __ccgo_ts + 17669, FePragTyp: uint8(PragTyp_SOFT_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 54: { - FzName: __ccgo_ts + 17598, + FzName: __ccgo_ts + 17685, FePragTyp: uint8(PragTyp_SYNCHRONOUS), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 55: { - FzName: __ccgo_ts + 17610, + FzName: __ccgo_ts + 17697, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), FnPragCName: uint8(6), }, 56: { - FzName: __ccgo_ts + 17621, + FzName: __ccgo_ts + 17708, FePragTyp: uint8(PragTyp_TABLE_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1)), FiPragCName: uint8(15), FnPragCName: uint8(6), }, 57: { - FzName: __ccgo_ts + 17632, + FzName: __ccgo_ts + 17719, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), @@ -112605,45 +113386,45 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 58: { - FzName: __ccgo_ts + 17644, + FzName: __ccgo_ts + 17731, FePragTyp: uint8(PragTyp_TEMP_STORE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 59: { - FzName: __ccgo_ts + 17655, + FzName: __ccgo_ts + 17742, FePragTyp: uint8(PragTyp_TEMP_STORE_DIRECTORY), FmPragFlg: uint8(PragFlg_NoColumns1), }, 60: { - FzName: __ccgo_ts + 17676, + FzName: __ccgo_ts + 17763, FePragTyp: uint8(PragTyp_THREADS), FmPragFlg: uint8(PragFlg_Result0), }, 61: { - FzName: __ccgo_ts + 17684, + FzName: __ccgo_ts + 17771, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_TrustedSchema), }, 62: { - FzName: __ccgo_ts + 17699, + FzName: __ccgo_ts + 17786, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_USER_VERSION), }, 63: { - FzName: __ccgo_ts + 17712, + FzName: __ccgo_ts + 17799, FePragTyp: uint8(PragTyp_WAL_AUTOCHECKPOINT), }, 64: { - FzName: __ccgo_ts + 17731, + FzName: __ccgo_ts + 17818, FePragTyp: uint8(PragTyp_WAL_CHECKPOINT), FmPragFlg: uint8(PragFlg_NeedSchema), FiPragCName: uint8(50), FnPragCName: uint8(3), }, 65: { - FzName: __ccgo_ts + 17746, + FzName: __ccgo_ts + 17833, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(SQLITE_WriteSchema) | libc.Int32FromInt32(SQLITE_NoSchemaError)), @@ -112655,6 +113436,31 @@ var _aPragmaName = [66]TPragmaName{ /************** End of pragma.h **********************************************/ /************** Continuing where we left off in pragma.c *********************/ +/* +** When the 0x10 bit of PRAGMA optimize is set, any ANALYZE commands +** will be run with an analysis_limit set to the lessor of the value of +** the following macro or to the actual analysis_limit if it is non-zero, +** in order to prevent PRAGMA optimize from running for too long. +** +** The value of 2000 is chosen emperically so that the worst-case run-time +** for PRAGMA optimize does not exceed 100 milliseconds against a variety +** of test databases on a RaspberryPI-4 compiled using -Os and without +** -DSQLITE_DEBUG. Of course, your mileage may vary. For the purpose of +** this paragraph, "worst-case" means that ANALYZE ends up being +** run on every table in the database. The worst case typically only +** happens if PRAGMA optimize is run on a database file for which ANALYZE +** has not been previously run and the 0x10000 flag is included so that +** all tables are analyzed. The usual case for PRAGMA optimize is that +** no ANALYZE commands will be run at all, or if any ANALYZE happens it +** will be against a single table, so that expected timing for PRAGMA +** optimize on a PI-4 is more like 1 millisecond or less with the 0x10000 +** flag or less than 100 microseconds without the 0x10000 flag. +** +** An analysis limit of 2000 is almost always sufficient for the query +** planner to fully characterize an index. The additional accuracy from +** a larger analysis is not usually helpful. + */ + // C documentation // // /* @@ -112744,10 +113550,10 @@ func _sqlite3GetBoolean(tls *libc.TLS, z uintptr, dflt Tu8) (r Tu8) { // */ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { if z != 0 { - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17762) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17849) { return int32(PAGER_LOCKINGMODE_EXCLUSIVE) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17772) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17859) { return PAGER_LOCKINGMODE_NORMAL } } @@ -112765,13 +113571,13 @@ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { func _getAutoVacuum(tls *libc.TLS, z uintptr) (r int32) { var i, v1 int32 _, _ = i, v1 - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8250) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8375) { return BTREE_AUTOVACUUM_NONE } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17779) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17866) { return int32(BTREE_AUTOVACUUM_FULL) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17784) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17871) { return int32(BTREE_AUTOVACUUM_INCR) } i = _sqlite3Atoi(tls, z) @@ -112794,10 +113600,10 @@ func _getTempStore(tls *libc.TLS, z uintptr) (r int32) { if int32(*(*int8)(unsafe.Pointer(z))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(z))) <= int32('2') { return int32(*(*int8)(unsafe.Pointer(z))) - int32('0') } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+16737) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+16824) == 0 { return int32(1) } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+17796) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+17883) == 0 { return int32(2) } else { return 0 @@ -112819,7 +113625,7 @@ func _invalidateTempStorage(tls *libc.TLS, pParse uintptr) (r int32) { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt != uintptr(0) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || _sqlite3BtreeTxnState(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) != SQLITE_TXN_NONE { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17803, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17890, 0) return int32(SQLITE_ERROR) } _sqlite3BtreeClose(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) @@ -112949,15 +113755,15 @@ func _actionName(tls *libc.TLS, action Tu8) (r uintptr) { _ = zName switch int32(action) { case int32(OE_SetNull): - zName = __ccgo_ts + 17865 + zName = __ccgo_ts + 17952 case int32(OE_SetDflt): - zName = __ccgo_ts + 17874 + zName = __ccgo_ts + 17961 case int32(OE_Cascade): - zName = __ccgo_ts + 17886 + zName = __ccgo_ts + 17973 case int32(OE_Restrict): - zName = __ccgo_ts + 17894 + zName = __ccgo_ts + 17981 default: - zName = __ccgo_ts + 17903 + zName = __ccgo_ts + 17990 break } return zName @@ -112978,12 +113784,12 @@ func _sqlite3JournalModename(tls *libc.TLS, eMode int32) (r uintptr) { } var _azModeName = [6]uintptr{ - 0: __ccgo_ts + 17913, - 1: __ccgo_ts + 17920, - 2: __ccgo_ts + 17928, - 3: __ccgo_ts + 17932, - 4: __ccgo_ts + 17796, - 5: __ccgo_ts + 17941, + 0: __ccgo_ts + 18000, + 1: __ccgo_ts + 18007, + 2: __ccgo_ts + 18015, + 3: __ccgo_ts + 18019, + 4: __ccgo_ts + 17883, + 5: __ccgo_ts + 18028, } // C documentation @@ -113045,15 +113851,15 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s goto _1 } if (*TFuncDef)(unsafe.Pointer(p)).FxValue != uintptr(0) { - zType = __ccgo_ts + 17966 + zType = __ccgo_ts + 18053 } else { if (*TFuncDef)(unsafe.Pointer(p)).FxFinalize != uintptr(0) { - zType = __ccgo_ts + 17968 + zType = __ccgo_ts + 18055 } else { - zType = __ccgo_ts + 7649 + zType = __ccgo_ts + 7774 } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+17970, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18057, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) goto _1 _1: ; @@ -113062,9 +113868,9 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s } var _azEnc = [4]uintptr{ - 1: __ccgo_ts + 17945, - 2: __ccgo_ts + 17950, - 3: __ccgo_ts + 17958, + 1: __ccgo_ts + 18032, + 2: __ccgo_ts + 18037, + 3: __ccgo_ts + 18045, } // C documentation @@ -113105,15 +113911,15 @@ func _integrityCheckResultRow(tls *libc.TLS, v uintptr) (r int32) { func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pValue uintptr, minusFlag int32) { bp := tls.Alloc(240) defer tls.Free(240) - var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, mxIdx, n, nHidden, nIdx, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v60, v62, v63, v64, v65, v68 int32 - var aOp, aOp1, aOp2, aOp3, aOp4, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v61, v66, v8 uintptr + var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v48, v50, v64, v66, v67, v68, v69, v72, v75, v76 int32 + var aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v65, v70, v8 uintptr var azOrigin [3]uintptr var cnum Ti16 var enc Tu8 var iPrior Tsqlite3_int64 + var iRange, szThreshold TLogEst var mask Tu64 var opMask Tu32 - var szThreshold TLogEst var _ /* N at bp+136 */ Tsqlite3_int64 var _ /* N at bp+144 */ Tsqlite3_int64 var _ /* N at bp+152 */ Tsqlite3_int64 @@ -113134,7 +113940,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p var _ /* size at bp+60 */ int32 var _ /* sz at bp+64 */ Tsqlite3_int64 var _ /* x at bp+40 */ Ti64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iPrior, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, mxIdx, n, nHidden, nIdx, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v5, v60, v61, v62, v63, v64, v65, v66, v68, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iPrior, iRange, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v48, v5, v50, v64, v65, v66, v67, v68, v69, v70, v72, v75, v76, v8 zLeft = uintptr(0) /* Nul-terminated UTF-8 string */ zRight = uintptr(0) /* Nul-terminated UTF-8 string , or NULL */ zDb = uintptr(0) /* return value form SQLITE_FCNTL_PRAGMA */ @@ -113163,7 +113969,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p return } if minusFlag != 0 { - zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+17977, libc.VaList(bp+176, pValue)) + zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+18064, libc.VaList(bp+176, pValue)) } else { zRight = _sqlite3NameFromToken(tls, db, pValue) } @@ -113206,7 +114012,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } if rc != int32(SQLITE_NOTFOUND) { if (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0] != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3827, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3891, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) Xsqlite3_free(tls, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0]) } (*TParse)(unsafe.Pointer(pParse)).FnErr++ @@ -113310,7 +114116,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pBt1 = (*TDb)(unsafe.Pointer(pDb)).FpBt b = -int32(1) if zRight != 0 { - if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+17981) == 0 { + if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18068) == 0 { b = int32(2) } else { b = int32(_sqlite3GetBoolean(tls, zRight, uint8(0))) @@ -113381,7 +114187,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p */ fallthrough case int32(PragTyp_LOCKING_MODE): - zRet = __ccgo_ts + 17772 + zRet = __ccgo_ts + 17859 eMode = _getLockingMode(tls, zRight) if (*TToken)(unsafe.Pointer(pId2)).Fn == uint32(0) && eMode == -int32(1) { /* Simple "PRAGMA locking_mode;" statement. This is a query for @@ -113409,7 +114215,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p eMode = _sqlite3PagerLockingMode(tls, pPager, eMode) } if eMode == int32(PAGER_LOCKINGMODE_EXCLUSIVE) { - zRet = __ccgo_ts + 17762 + zRet = __ccgo_ts + 17849 } _returnSingleText(tls, v, zRet) break @@ -113699,7 +114505,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if *(*int8)(unsafe.Pointer(zRight)) != 0 { rc = _sqlite3OsAccess(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, zRight, int32(SQLITE_ACCESS_READWRITE), bp+72) if rc != SQLITE_OK || *(*int32)(unsafe.Pointer(bp + 72)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17986, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18073, 0) Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) goto pragma_out } @@ -113709,7 +114515,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } Xsqlite3_free(tls, Xsqlite3_temp_directory) if *(*int8)(unsafe.Pointer(zRight)) != 0 { - Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+176, zRight)) + Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+176, zRight)) } else { Xsqlite3_temp_directory = uintptr(0) } @@ -113731,7 +114537,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _returnSingleInt(tls, v, int64(int32((*TDb)(unsafe.Pointer(pDb)).Fsafety_level)-int32(1))) } else { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18011, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18098, 0) } else { if iDb != int32(1) { iLevel = (int32(_getSafetyLevel(tls, zRight, 0, uint8(1))) + int32(1)) & int32(PAGER_SYNCHRONOUS_MASK) @@ -113764,7 +114570,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if mask == uint64(SQLITE_DeferFKs) { (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = 0 } - if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18064) == 0 { + if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18151) == 0 { /* IMP: R-60817-01178 If the argument is "RESET" then schema ** writing is disabled (as with "PRAGMA writable_schema=OFF") and, ** in addition, the schema is reloaded. */ @@ -113844,9 +114650,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pColExpr = _sqlite3ColumnExpr(tls, pTab, pCol) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - v14 = __ccgo_ts + 18070 + v14 = __ccgo_ts + 18157 } else { - v14 = __ccgo_ts + 18078 + v14 = __ccgo_ts + 18165 } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 { v15 = int32(1) @@ -113858,7 +114664,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v16 = *(*uintptr)(unsafe.Pointer(pColExpr + 8)) } - _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1680), v15, v16, k, isHidden)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1694), v15, v16, k, isHidden)) goto _12 _12: ; @@ -113917,7 +114723,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pTab1 = (*THashElem)(unsafe.Pointer(k1)).Fdata if int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) == 0 { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18085, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18172, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 80)) = uintptr(0) Xsqlite3_prepare(tls, db, zSql, -int32(1), bp+80, uintptr(0)) @@ -113925,7 +114731,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3DbFree(tls, db, zSql) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1650, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1664, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) } pHash = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FpSchema + 8 @@ -113947,19 +114753,19 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _20 } if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10828 + zType = __ccgo_ts + 10953 } else { if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 13076 + zType = __ccgo_ts + 13201 } else { if (*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Shadow) != 0 { - zType = __ccgo_ts + 18101 + zType = __ccgo_ts + 18188 } else { - zType = __ccgo_ts + 9090 + zType = __ccgo_ts + 9215 } } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18108, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18195, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) goto _20 _20: ; @@ -114006,9 +114812,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v22 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab3)).FaCol + uintptr(cnum)*16))).FzCnName } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18115, libc.VaList(bp+176, i1, int32(cnum), v22)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18202, libc.VaList(bp+176, i1, int32(cnum), v22)) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18120, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) + _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18207, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) } _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), int32(1), (*TParse)(unsafe.Pointer(pParse)).FnMem) goto _21 @@ -114032,11 +114838,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } azOrigin = [3]uintptr{ - 0: __ccgo_ts + 18125, - 1: __ccgo_ts + 18127, - 2: __ccgo_ts + 16614, + 0: __ccgo_ts + 18212, + 1: __ccgo_ts + 18214, + 2: __ccgo_ts + 16701, } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18129, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18216, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) goto _23 _23: ; @@ -114055,7 +114861,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt == uintptr(0) { goto _24 } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18135, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18222, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) goto _24 _24: ; @@ -114072,7 +114878,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pColl = (*THashElem)(unsafe.Pointer(p)).Fdata v26 = i4 i4++ - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18139, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18226, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) goto _25 _25: ; @@ -114122,7 +114928,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } pMod = (*THashElem)(unsafe.Pointer(j1)).Fdata - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7649, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7774, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) goto _30 _30: ; @@ -114134,7 +114940,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i6 < int32(libc.Uint64FromInt64(1584)/libc.Uint64FromInt64(24))) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7649, libc.VaList(bp+176, _aPragmaName[i6].FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7774, libc.VaList(bp+176, _aPragmaName[i6].FzName)) goto _31 _31: ; @@ -114160,7 +114966,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(j2 < (*TFKey)(unsafe.Pointer(pFK)).FnCol) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18142, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18151)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18229, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18238)) goto _32 _32: ; @@ -114301,7 +115107,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regResult+int32(1)) } - _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18156, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) + _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18243, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), regResult, int32(4)) _sqlite3VdbeResolveLabel(tls, v, addrOk) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 96))) @@ -114369,7 +115175,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p /* Set the maximum error count */ *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) if zRight != 0 { - if _sqlite3GetInt32(tls, zRight, bp+104) != 0 { + if _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pValue)).Fz, bp+104) != 0 { if *(*int32)(unsafe.Pointer(bp + 104)) <= 0 { *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) } @@ -114389,8 +115195,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i9 < (*Tsqlite3)(unsafe.Pointer(db)).FnDb) { break } /* Array of root page numbers of all btrees */ - cnt = 0 /* Number of entries in aRoot[] */ - mxIdx = 0 /* Maximum number of indexes for any table */ + cnt = 0 /* Number of entries in aRoot[] */ if libc.Bool(OMIT_TEMPDB != 0) && i9 == int32(1) { goto _40 } @@ -114431,9 +115236,6 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pIdx3 = (*TIndex)(unsafe.Pointer(pIdx3)).FpNext nIdx++ } - if nIdx > mxIdx { - mxIdx = nIdx - } goto _41 _41: ; @@ -114489,16 +115291,78 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } *(*int32)(unsafe.Pointer(aRoot)) = cnt /* Make sure sufficient number of registers have been allocated */ - _sqlite3TouchRegister(tls, pParse, int32(8)+mxIdx) + _sqlite3TouchRegister(tls, pParse, int32(8)+cnt) _sqlite3ClearTempRegCache(tls, pParse) /* Do the b-tree integrity checks */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(2), cnt, int32(1), aRoot, -int32(14)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(1), cnt, int32(8), aRoot, -int32(14)) _sqlite3VdbeChangeP5(tls, v, uint16(uint8(i9))) addr1 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(2)) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18160, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18247, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(2), int32(3), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, addr1) + /* Check that the indexes all have the right number of rows */ + if pObjTab != 0 { + v48 = int32(1) + } else { + v48 = 0 + } + cnt = v48 + _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18271) + x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst + for { + if !(x2 != 0) { + break + } + iTab = 0 + pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab9 { + goto _49 + } + if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + v50 = cnt + cnt++ + iTab = v50 + } else { + iTab = cnt + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx5 + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { + break + } + iTab++ + goto _51 + _51: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + } + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if (*TIndex)(unsafe.Pointer(pIdx5)).FpPartIdxWhere == uintptr(0) { + addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+cnt, 0, int32(8)+iTab) + _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) + _integrityCheckResultRow(tls, v) + _sqlite3VdbeJumpHere(tls, v, addr1) + } + cnt++ + goto _52 + _52: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + goto _49 + _49: + ; + x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext + } /* Make sure all the indices are constructed correctly. */ x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst @@ -114506,39 +115370,39 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata pPrior = uintptr(0) r1 = -int32(1) /* Maximum non-virtual column number */ - if pObjTab != 0 && pObjTab != pTab9 { - goto _48 + if pObjTab != 0 && pObjTab != pTab10 { + goto _53 } - if !(int32((*TTable)(unsafe.Pointer(pTab9)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { - goto _48 + if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _53 } - if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { pPk1 = uintptr(0) r2 = 0 } else { - pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab9) + pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab10) r2 = _sqlite3GetTempRange(tls, pParse, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), int32(1), r2, r2+int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)-int32(1)) } - _sqlite3OpenTableAndIndices(tls, pParse, pTab9, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) + _sqlite3OpenTableAndIndices(tls, pParse, pTab10, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) /* reg[7] counts the number of entries in the table. ** reg[8+i] counts the number of entries in the i-th index */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(7)) j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(8)+j4) /* index entries counter */ - goto _49 - _49: + goto _54 + _54: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), *(*int32)(unsafe.Pointer(bp + 108)), 0) @@ -114548,29 +115412,29 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** will also prepopulate the cursor column cache that is used ** by the OP_IsType code, so it is a required step. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { mxCol = -int32(1) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { + if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { mxCol++ } - goto _50 - _50: + goto _55 + _55: ; j4++ } - if mxCol == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { + if mxCol == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { mxCol-- } } else { /* COLFLAG_VIRTUAL columns are not included in the WITHOUT ROWID ** PK index column-count, so there is no need to account for them ** in this case. */ - mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab9))).FnColumn) - int32(1) + mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab10))).FnColumn) - int32(1) } if mxCol >= 0 { _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 108)), mxCol, int32(3)) @@ -114580,7 +115444,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if pPk1 != 0 { a1 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 108)), 0, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), r2) - zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18184, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18300, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a1) @@ -114591,8 +115455,8 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprCodeLoadIndexColumn(tls, pParse, pPk1, *(*int32)(unsafe.Pointer(bp + 108)), j4, r2+j4) - goto _51 - _51: + goto _56 + _56: ; j4++ } @@ -114607,15 +115471,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** (4) Datatype for numeric columns in non-STRICT tables must not ** be a TEXT value that can be losslessly converted to numeric. */ - bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_Strict) != uint32(0)) + bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_Strict) != uint32(0)) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - pCol1 = (*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ - if j4 == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { - goto _52 + pCol1 = (*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ + if j4 == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { + goto _57 } if bStrict != 0 { doTypeCheck = libc.BoolInt32(int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4)) > int32(COLTYPE_ANY)) @@ -114623,28 +115487,28 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p doTypeCheck = libc.BoolInt32(int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) > int32(SQLITE_AFF_BLOB)) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf>>0)) == 0 && !(doTypeCheck != 0) { - goto _52 + goto _57 } /* Compute the operands that will be needed for OP_IsType */ p4 = int32(SQLITE_NULL) if int32((*TColumn)(unsafe.Pointer(pCol1)).FcolFlags)&int32(COLFLAG_VIRTUAL) != 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) p11 = -int32(1) p3 = int32(3) } else { if (*TColumn)(unsafe.Pointer(pCol1)).FiDflt != 0 { *(*uintptr)(unsafe.Pointer(bp + 120)) = uintptr(0) - _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab9, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8((*TColumn)(unsafe.Pointer(pCol1)).Faffinity), bp+120) + _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab10, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8((*TColumn)(unsafe.Pointer(pCol1)).Faffinity), bp+120) if *(*uintptr)(unsafe.Pointer(bp + 120)) != 0 { p4 = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) } } p11 = *(*int32)(unsafe.Pointer(bp + 108)) - if !((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { - p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab9), int16(j4))) + if !((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { + p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab10), int16(j4))) } else { - p3 = int32(_sqlite3TableColumnToStorage(tls, pTab9, int16(j4))) + p3 = int32(_sqlite3TableColumnToStorage(tls, pTab10, int16(j4))) } } labelError = _sqlite3VdbeMakeLabel(tls, pParse) @@ -114661,10 +115525,10 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** is REAL, we have to load the actual data using OP_Column ** to reliably determine if the value is a NULL. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), p11, p3, int32(3)) - _sqlite3ColumnDefault(tls, v, pTab9, j4, int32(3)) + _sqlite3ColumnDefault(tls, v, pTab10, j4, int32(3)) jmp3 = _sqlite3VdbeAddOp2(tls, v, int32(OP_NotNull), int32(3), labelOk) } - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18220, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18336, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) if doTypeCheck != 0 { _sqlite3VdbeGoto(tls, v, labelError) @@ -114677,7 +115541,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if bStrict != 0 && doTypeCheck != 0 { _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(_aStdTypeMask[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)])) - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18240, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18356, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) == int32(SQLITE_AFF_TEXT) { @@ -114685,7 +115549,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** NULL, TEXT, or BLOB. */ _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18262, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18378, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) >= int32(SQLITE_AFF_NUMERIC) { @@ -114694,12 +115558,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1b)) /* NULL, INT, FLOAT, or BLOB */ if p11 >= 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18285, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18401, -int32(1)) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), -int32(1), labelOk, int32(3), p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18287, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18403, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } } @@ -114707,14 +115571,14 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeResolveLabel(tls, v, labelError) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, labelOk) - goto _52 - _52: + goto _57 + _57: ; j4++ } /* Verify CHECK constraints */ - if (*TTable)(unsafe.Pointer(pTab9)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { - pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab9)).FpCheck, 0) + if (*TTable)(unsafe.Pointer(pTab10)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { + pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab10)).FpCheck, 0) if int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { addrCkFault = _sqlite3VdbeMakeLabel(tls, pParse) addrCkOk = _sqlite3VdbeMakeLabel(tls, pParse) @@ -114725,15 +115589,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprIfFalse(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8 + uintptr(k3)*32))).FpExpr, addrCkFault, 0) - goto _53 - _53: + goto _58 + _58: ; k3-- } _sqlite3ExprIfTrue(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8))).FpExpr, addrCkOk, int32(SQLITE_JUMPIFNULL)) _sqlite3VdbeResolveLabel(tls, v, addrCkFault) (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 - zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18307, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18423, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr2, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, addrCkOk) @@ -114743,25 +115607,25 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(isQuick != 0) { /* Omit the remaining tests for quick_check */ /* Validate index entries for the current row */ j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } ckUniq = _sqlite3VdbeMakeLabel(tls, pParse) - if pPk1 == pIdx5 { - goto _54 + if pPk1 == pIdx6 { + goto _59 } - r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx5, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) - pPrior = pIdx5 + r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx6, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) + pPrior = pIdx6 _sqlite3VdbeAddOp2(tls, v, int32(OP_AddImm), int32(8)+j4, int32(1)) /* increment entry count */ /* Verify that an index entry exists for the current table row */ - jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18337) + jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18453) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18342) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18458) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) - jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx6)).FzName) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) jmp4 = _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, jmp21) @@ -114769,12 +115633,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** that extracts the rowid off the end of the index record. ** But it only works correctly if index record does not have ** any extra bytes at the end. Verify that this is the case. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { _sqlite3VdbeAddOp2(tls, v, int32(OP_IdxRowid), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)-int32(1)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18363) + jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)-int32(1)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18479) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18399) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18515) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp7) } @@ -114783,100 +115647,75 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p label6 = 0 kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { - goto _55 + if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { + goto _60 } if label6 == 0 { label6 = _sqlite3VdbeMakeLabel(tls, pParse) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 112))+j4, kk, int32(3)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ne), int32(3), label6, r1+kk) - goto _55 - _55: + goto _60 + _60: ; kk++ } if label6 != 0 { jmp6 = _sqlite3VdbeAddOp0(tls, v, int32(OP_Goto)) _sqlite3VdbeResolveLabel(tls, v, label6) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18337) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18453) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18410) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18526) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp6) } /* For UNIQUE indexes, verify that only one entry exists with the ** current key. The entry is unique if (1) any column is NULL ** or (2) the next entry has a different key */ - if int32((*TIndex)(unsafe.Pointer(pIdx5)).FonError) != OE_None { + if int32((*TIndex)(unsafe.Pointer(pIdx6)).FonError) != OE_None { uniqOk = _sqlite3VdbeMakeLabel(tls, pParse) kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FaiColumn + uintptr(kk)*2))) - if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { - goto _56 + iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FaiColumn + uintptr(kk)*2))) + if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { + goto _61 } _sqlite3VdbeAddOp2(tls, v, int32(OP_IsNull), r1+kk, uniqOk) - goto _56 - _56: + goto _61 + _61: ; kk++ } jmp61 = _sqlite3VdbeAddOp1(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 112))+j4) _sqlite3VdbeGoto(tls, v, uniqOk) _sqlite3VdbeJumpHere(tls, v, jmp61) - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18437) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18553) _sqlite3VdbeGoto(tls, v, jmp5) _sqlite3VdbeResolveLabel(tls, v, uniqOk) } _sqlite3VdbeJumpHere(tls, v, jmp4) _sqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp + 128))) - goto _54 - _54: + goto _59 + _59: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } } _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 108)), loopTop) _sqlite3VdbeJumpHere(tls, v, loopTop-int32(1)) - if !(isQuick != 0) { - _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18464) - j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex - for { - if !(pIdx5 != 0) { - break - } - if pPk1 == pIdx5 { - goto _57 - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+j4, 0, int32(3)) - _sqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL)) - _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) - _integrityCheckResultRow(tls, v) - _sqlite3VdbeJumpHere(tls, v, addr1) - goto _57 - _57: - ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext - j4++ - } - if pPk1 != 0 { - _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) - } + if pPk1 != 0 { + _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) } - goto _48 - _48: + goto _53 + _53: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -114888,60 +115727,60 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata - if pObjTab != 0 && pObjTab != pTab10 { - goto _58 + pTab11 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab11 { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == TABTYP_NORM { - goto _58 + if int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == TABTYP_NORM { + goto _62 } - if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { - goto _58 + if !(int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FnCol) <= 0 { + if int32((*TTable)(unsafe.Pointer(pTab11)).FnCol) <= 0 { zMod = *(*uintptr)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).FazArg)) + })(unsafe.Pointer(pTab11 + 64))).FazArg)) if _sqlite3HashFind(tls, db+576, zMod) == uintptr(0) { - goto _58 + goto _62 } } - _sqlite3ViewGetColumnNames(tls, pParse, pTab10) + _sqlite3ViewGetColumnNames(tls, pParse, pTab11) if (*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp == uintptr(0) { - goto _58 + })(unsafe.Pointer(pTab11 + 64))).Fp == uintptr(0) { + goto _62 } pVTab = (*TVTable)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp)).FpVtab + })(unsafe.Pointer(pTab11 + 64))).Fp)).FpVtab if pVTab == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FiVersion < int32(4) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FxIntegrity == uintptr(0) { - goto _58 + goto _62 } _sqlite3VdbeAddOp3(tls, v, int32(OP_VCheck), i9, int32(3), isQuick) - (*TTable)(unsafe.Pointer(pTab10)).FnTabRef++ - _sqlite3VdbeAppendP4(tls, v, pTab10, -int32(16)) + (*TTable)(unsafe.Pointer(pTab11)).FnTabRef++ + _sqlite3VdbeAppendP4(tls, v, pTab11, -int32(16)) a11 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a11) - goto _58 - goto _58 - _58: + goto _62 + goto _62 + _62: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -114954,7 +115793,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if aOp2 != 0 { (*(*TVdbeOp)(unsafe.Pointer(aOp2))).Fp2 = int32(1) - *(*int32)(unsafe.Pointer(bp + 104)) (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 2*24))).Fp4type = int8(-libc.Int32FromInt32(1)) - *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18493 + *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18580 (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 5*24))).Fp4type = int8(-libc.Int32FromInt32(1)) *(*uintptr)(unsafe.Pointer(aOp2 + 5*24 + 16)) = _sqlite3ErrStr(tls, int32(SQLITE_CORRUPT)) } @@ -115012,20 +115851,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc != 0 { - v60 = int32((*struct { + v64 = int32((*struct { FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc) } else { - v60 = int32(SQLITE_UTF16LE) + v64 = int32(SQLITE_UTF16LE) } - enc = uint8(v60) + enc = uint8(v64) (*TSchema)(unsafe.Pointer((*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema)).Fenc = enc _sqlite3SetTextEncoding(tls, db, enc) break } - goto _59 - _59: + goto _63 + _63: ; pEnc += 16 } @@ -115033,7 +115872,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).FzName != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18554, libc.VaList(bp+176, zRight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18641, libc.VaList(bp+176, zRight)) } } } @@ -115111,11 +115950,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p i10 = 0 (*TParse)(unsafe.Pointer(pParse)).FnMem = int32(1) for { - v62 = i10 + v66 = i10 i10++ - v61 = Xsqlite3_compileoption_get(tls, v62) - zOpt = v61 - if !(v61 != uintptr(0)) { + v65 = Xsqlite3_compileoption_get(tls, v66) + zOpt = v65 + if !(v65 != uintptr(0)) { break } _sqlite3VdbeLoadString(tls, v, int32(1), zOpt) @@ -115131,20 +115970,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p fallthrough case int32(PragTyp_WAL_CHECKPOINT): if (*TToken)(unsafe.Pointer(pId2)).Fz != 0 { - v63 = iDb + v67 = iDb } else { - v63 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) + v67 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) } - iBt = v63 + iBt = v67 eMode2 = SQLITE_CHECKPOINT_PASSIVE if zRight != 0 { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17779) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17866) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_FULL) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18579) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18666) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_RESTART) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17932) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18019) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_TRUNCATE) } } @@ -115168,11 +116007,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p Xsqlite3_wal_autocheckpoint(tls, db, _sqlite3Atoi(tls, zRight)) } if (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback == __ccgo_fp(_sqlite3WalDefaultHook) { - v64 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) + v68 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) } else { - v64 = 0 + v68 = 0 } - _returnSingleInt(tls, v, int64(v64)) + _returnSingleInt(tls, v, int64(v68)) break /* ** PRAGMA shrink_memory @@ -115200,47 +116039,68 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** ** The optional argument is a bitmask of optimizations to perform: ** - ** 0x0001 Debugging mode. Do not actually perform any optimizations - ** but instead return one line of text for each optimization - ** that would have been done. Off by default. + ** 0x00001 Debugging mode. Do not actually perform any optimizations + ** but instead return one line of text for each optimization + ** that would have been done. Off by default. ** - ** 0x0002 Run ANALYZE on tables that might benefit. On by default. - ** See below for additional information. + ** 0x00002 Run ANALYZE on tables that might benefit. On by default. + ** See below for additional information. ** - ** 0x0004 (Not yet implemented) Record usage and performance - ** information from the current session in the - ** database file so that it will be available to "optimize" - ** pragmas run by future database connections. + ** 0x00010 Run all ANALYZE operations using an analysis_limit that + ** is the lessor of the current analysis_limit and the + ** SQLITE_DEFAULT_OPTIMIZE_LIMIT compile-time option. + ** The default value of SQLITE_DEFAULT_OPTIMIZE_LIMIT is + ** currently (2024-02-19) set to 2000, which is such that + ** the worst case run-time for PRAGMA optimize on a 100MB + ** database will usually be less than 100 milliseconds on + ** a RaspberryPI-4 class machine. On by default. ** - ** 0x0008 (Not yet implemented) Create indexes that might have - ** been helpful to recent queries + ** 0x10000 Look at tables to see if they need to be reanalyzed + ** due to growth or shrinkage even if they have not been + ** queried during the current connection. Off by default. ** - ** The default MASK is and always shall be 0xfffe. 0xfffe means perform all - ** of the optimizations listed above except Debug Mode, including new - ** optimizations that have not yet been invented. If new optimizations are - ** ever added that should be off by default, those off-by-default - ** optimizations will have bitmasks of 0x10000 or larger. + ** The default MASK is and always shall be 0x0fffe. In the current + ** implementation, the default mask only covers the 0x00002 optimization, + ** though additional optimizations that are covered by 0x0fffe might be + ** added in the future. Optimizations that are off by default and must + ** be explicitly requested have masks of 0x10000 or greater. ** ** DETERMINATION OF WHEN TO RUN ANALYZE ** ** In the current implementation, a table is analyzed if only if all of ** the following are true: ** - ** (1) MASK bit 0x02 is set. + ** (1) MASK bit 0x00002 is set. ** - ** (2) The query planner used sqlite_stat1-style statistics for one or - ** more indexes of the table at some point during the lifetime of - ** the current connection. + ** (2) The table is an ordinary table, not a virtual table or view. ** - ** (3) One or more indexes of the table are currently unanalyzed OR - ** the number of rows in the table has increased by 25 times or more - ** since the last time ANALYZE was run. + ** (3) The table name does not begin with "sqlite_". + ** + ** (4) One or more of the following is true: + ** (4a) The 0x10000 MASK bit is set. + ** (4b) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. + ** (4c) The query planner used sqlite_stat1-style statistics for one + ** or more indexes of the table at some point during the lifetime + ** of the current connection. + ** + ** (5) One or more of the following is true: + ** (5a) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. (Same as 4a) + ** (5b) The number of rows in the table has increased or decreased by + ** 10-fold. In other words, the current size of the table is + ** 10 times larger than the size in sqlite_stat1 or else the + ** current size is less than 1/10th the size in sqlite_stat1. ** ** The rules for when tables are analyzed are likely to change in - ** future releases. + ** future releases. Future versions of SQLite might accept a string + ** literal argument to this pragma that contains a mnemonic description + ** of the options rather than a bitmap. */ fallthrough - case int32(PragTyp_OPTIMIZE): /* Mask of operations to perform */ + case int32(PragTyp_OPTIMIZE): /* Analysis limit to use */ + nCheck = 0 /* Number of tables to be optimized */ + nBtree = 0 /* Number of indexes on the current table */ if zRight != 0 { opMask = uint32(_sqlite3Atoi(tls, zRight)) if opMask&uint32(0x02) == uint32(0) { @@ -115249,22 +116109,31 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { opMask = uint32(0xfffe) } - v66 = pParse + 52 - v65 = *(*int32)(unsafe.Pointer(v66)) - *(*int32)(unsafe.Pointer(v66))++ - iTabCur = v65 + if opMask&uint32(0x10) == uint32(0) { + nLimit = 0 + } else { + if (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit > 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit < int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) { + nLimit = 0 + } else { + nLimit = int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) + } + } + v70 = pParse + 52 + v69 = *(*int32)(unsafe.Pointer(v70)) + *(*int32)(unsafe.Pointer(v70))++ + iTabCur = v69 if zDb != 0 { - v68 = iDb + v72 = iDb } else { - v68 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) + v72 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) } - iDbLast = v68 + iDbLast = v72 for { if !(iDb <= iDbLast) { break } if iDb == int32(1) { - goto _67 + goto _71 } _sqlite3CodeVerifySchema(tls, pParse, iDb) pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema @@ -115273,52 +116142,122 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(k4 != 0) { break } - pTab11 = (*THashElem)(unsafe.Pointer(k4)).Fdata - /* If table pTab has not been used in a way that would benefit from - ** having analysis statistics during the current session, then skip it. - ** This also has the effect of skipping virtual tables and views */ - if (*TTable)(unsafe.Pointer(pTab11)).FtabFlags&uint32(TF_StatsUsed) == uint32(0) { - goto _69 - } - /* Reanalyze if the table is 25 times larger than the last analysis */ - szThreshold = int16(int32((*TTable)(unsafe.Pointer(pTab11)).FnRowLogEst) + int32(46)) - pIdx6 = (*TTable)(unsafe.Pointer(pTab11)).FpIndex + pTab12 = (*THashElem)(unsafe.Pointer(k4)).Fdata + /* This only works for ordinary tables */ + if !(int32((*TTable)(unsafe.Pointer(pTab12)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _73 + } + /* Do not scan system tables */ + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab12)).FzName, __ccgo_ts+6621, int32(7)) { + goto _73 + } + /* Find the size of the table as last recorded in sqlite_stat1. + ** If any index is unanalyzed, then the threshold is -1 to + ** indicate a new, unanalyzed index + */ + szThreshold = (*TTable)(unsafe.Pointer(pTab12)).FnRowLogEst + nIndex = 0 + pIdx7 = (*TTable)(unsafe.Pointer(pTab12)).FpIndex for { - if !(pIdx6 != 0) { + if !(pIdx7 != 0) { break } - if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx6 + 100))&0x80>>7)) != 0) { - szThreshold = 0 /* Always analyze if any index lacks statistics */ - break + nIndex++ + if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx7 + 100))&0x80>>7)) != 0) { + szThreshold = int16(-int32(1)) /* Always analyze if any index lacks statistics */ } - goto _70 - _70: + goto _74 + _74: ; - pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext + pIdx7 = (*TIndex)(unsafe.Pointer(pIdx7)).FpNext } - if szThreshold != 0 { - _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab11, int32(OP_OpenRead)) - _sqlite3VdbeAddOp3(tls, v, int32(OP_IfSmaller), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), int32(szThreshold)) + /* If table pTab has not been used in a way that would benefit from + ** having analysis statistics during the current session, then skip it, + ** unless the 0x10000 MASK bit is set. */ + if (*TTable)(unsafe.Pointer(pTab12)).FtabFlags&uint32(TF_MaybeReanalyze) != uint32(0) { + /* Check for size change if stat1 has been used for a query */ + } else { + if opMask&uint32(0x10000) != 0 { + /* Check for size change if 0x10000 is set */ + } else { + if (*TTable)(unsafe.Pointer(pTab12)).FpIndex != uintptr(0) && int32(szThreshold) < 0 { + /* Do analysis if unanalyzed indexes exists */ + } else { + /* Otherwise, we can skip this table */ + goto _73 + } + } + } + nCheck++ + if nCheck == int32(2) { + /* If ANALYZE might be invoked two or more times, hold a write + ** transaction for efficiency */ + _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) + } + nBtree += nIndex + int32(1) + /* Reanalyze if the table is 10 times larger or smaller than + ** the last analysis. Unconditional reanalysis if there are + ** unanalyzed indexes. */ + _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab12, int32(OP_OpenRead)) + if int32(szThreshold) >= 0 { + iRange = int16(33) /* 10x size change */ + if int32(szThreshold) >= int32(iRange) { + v75 = int32(szThreshold) - int32(iRange) + } else { + v75 = -int32(1) + } + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IfSizeBetween), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), v75, int32(szThreshold)+int32(iRange)) + } else { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1))) } - zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18587, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab11)).FzName)) + zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18674, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab12)).FzName)) if opMask&uint32(0x01) != 0 { r11 = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, r11, 0, zSubSql, -int32(6)) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), r11, int32(1)) } else { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), 0, 0, 0, zSubSql, -int32(6)) + if nLimit != 0 { + v76 = int32(0x02) + } else { + v76 = 00 + } + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), v76, nLimit, 0, zSubSql, -int32(6)) } - goto _69 - _69: + goto _73 + _73: ; k4 = (*THashElem)(unsafe.Pointer(k4)).Fnext } - goto _67 - _67: + goto _71 + _71: ; iDb++ } _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) + /* In a schema with a large number of tables and indexes, scale back + ** the analysis_limit to avoid excess run-time in the worst case. + */ + if !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && nLimit > 0 && nBtree > int32(100) { + nLimit = int32(100) * nLimit / nBtree + if nLimit < int32(100) { + nLimit = int32(100) + } + aOp5 = _sqlite3VdbeGetOp(tls, v, 0) + iEnd = _sqlite3VdbeCurrentAddr(tls, v) + iAddr1 = 0 + for { + if !(iAddr1 < iEnd) { + break + } + if int32((*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fopcode) == int32(OP_SqlExec) { + (*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fp2 = nLimit + } + goto _77 + _77: + ; + iAddr1++ + } + } break /* ** PRAGMA busy_timeout @@ -115412,6 +116351,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** instructions to the VM. */ if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_NoColumns1) != 0 && zRight != 0 { } + goto pragma_out pragma_out: ; _sqlite3DbFree(tls, db, zLeft) @@ -115543,34 +116483,34 @@ var _encnames1 = [9]struct { Fenc Tu8 }{ 0: { - FzName: __ccgo_ts + 18496, + FzName: __ccgo_ts + 18583, Fenc: uint8(SQLITE_UTF8), }, 1: { - FzName: __ccgo_ts + 18501, + FzName: __ccgo_ts + 18588, Fenc: uint8(SQLITE_UTF8), }, 2: { - FzName: __ccgo_ts + 18507, + FzName: __ccgo_ts + 18594, Fenc: uint8(SQLITE_UTF16LE), }, 3: { - FzName: __ccgo_ts + 18516, + FzName: __ccgo_ts + 18603, Fenc: uint8(SQLITE_UTF16BE), }, 4: { - FzName: __ccgo_ts + 18525, + FzName: __ccgo_ts + 18612, Fenc: uint8(SQLITE_UTF16LE), }, 5: { - FzName: __ccgo_ts + 18533, + FzName: __ccgo_ts + 18620, Fenc: uint8(SQLITE_UTF16BE), }, 6: { - FzName: __ccgo_ts + 18541, + FzName: __ccgo_ts + 18628, }, 7: { - FzName: __ccgo_ts + 18548, + FzName: __ccgo_ts + 18635, }, 8: {}, } @@ -115666,14 +116606,14 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg _ = argc _ = argv _sqlite3StrAccumInit(tls, bp, uintptr(0), bp+32, int32(200), 0) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18605) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18692) i = 0 j = int32((*TPragmaName)(unsafe.Pointer(pPragma)).FiPragCName) for { if !(i < int32((*TPragmaName)(unsafe.Pointer(pPragma)).FnPragCName)) { break } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18620, libc.VaList(bp+240, int32(cSep), _pragCName[j])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18707, libc.VaList(bp+240, int32(cSep), _pragCName[j])) cSep = int8(',') goto _1 _1: @@ -115682,19 +116622,19 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg j++ } if i == 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18627, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18714, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) i++ } j = 0 if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_Result1) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18633) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18720) j++ } if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&(libc.Int32FromInt32(PragFlg_SchemaOpt)|libc.Int32FromInt32(PragFlg_SchemaReq)) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18645) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18732) j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5138, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5202, int32(1)) _sqlite3StrAccumFinish(tls, bp) rc = Xsqlite3_declare_vtab(tls, db, bp+32) if rc == SQLITE_OK { @@ -115709,7 +116649,7 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg (*TPragmaVtab)(unsafe.Pointer(pTab)).FnHidden = uint8(j) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) } *(*uintptr)(unsafe.Pointer(ppVtab)) = pTab return rc @@ -115755,14 +116695,14 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) { break } - if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { goto _1 } if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fop) != int32(SQLITE_INDEX_CONSTRAINT_EQ) { goto _1 } - if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { - goto _1 + if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + return int32(SQLITE_CONSTRAINT) } j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn - int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) seen[j] = i + int32(1) @@ -115780,16 +116720,13 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 j = seen[0] - int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) - if seen[int32(1)] == 0 { - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(1000) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(1000) - return SQLITE_OK - } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(20) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(20) - j = seen[int32(1)] - int32(1) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + if seen[int32(1)] != 0 { + j = seen[int32(1)] - int32(1) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + } return SQLITE_OK } @@ -115817,6 +116754,7 @@ func _pragmaVtabCursorClear(tls *libc.TLS, pCsr uintptr) { _ = i Xsqlite3_finalize(tls, (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma) (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma = uintptr(0) + (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FiRowid = 0 i = 0 for { if !(i < int32(libc.Uint64FromInt64(16)/libc.Uint64FromInt64(8))) { @@ -115892,7 +116830,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr } zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if zText != 0 { - *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+40, zText)) + *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+40, zText)) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -115904,13 +116842,13 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr j++ } _sqlite3StrAccumInit(tls, bp, uintptr(0), uintptr(0), 0, *(*int32)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb + 136 + 1*4))) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18660) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18747) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18668, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18755, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) } Xsqlite3_str_appendall(tls, bp, (*TPragmaName)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).FpName)).FzName) if *(*uintptr)(unsafe.Pointer(pCsr + 24)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18672, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18759, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) } zSql = _sqlite3StrAccumFinish(tls, bp) if zSql == uintptr(0) { @@ -115919,7 +116857,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr rc = Xsqlite3_prepare_v2(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), pCsr+8, uintptr(0)) Xsqlite3_free(tls, zSql) if rc != SQLITE_OK { - (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) + (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) return rc } return _pragmaVtabNext(tls, pVtabCursor) @@ -116045,24 +116983,24 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) /* A error message has already been generated. Do not overwrite it */ } else { if (*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(libc.Int32FromInt32(INITFLAG_AlterMask)) != 0 { - *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18706, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) + *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18793, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) (*TInitData)(unsafe.Pointer(pData)).Frc = int32(SQLITE_ERROR) } else { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_WriteSchema) != 0 { - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140891)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141840)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) } else { - v1 = __ccgo_ts + 5140 + v1 = __ccgo_ts + 5204 } zObj = v1 - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18734, libc.VaList(bp+8, zObj)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18821, libc.VaList(bp+8, zObj)) if zExtra != 0 && *(*int8)(unsafe.Pointer(zExtra)) != 0 { - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18765, libc.VaList(bp+8, z, zExtra)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18852, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140898)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141847)) } } } @@ -116070,9 +117008,9 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) } var _azAlterType = [3]uintptr{ - 0: __ccgo_ts + 18676, - 1: __ccgo_ts + 18683, - 2: __ccgo_ts + 18695, + 0: __ccgo_ts + 18763, + 1: __ccgo_ts + 18770, + 2: __ccgo_ts + 18782, } // C documentation @@ -116148,7 +117086,7 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(iDb) if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), db+192) == 0 || (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage && (*TInitData)(unsafe.Pointer(pData)).FmxPage > uint32(0) { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14548) + _corruptSchema(tls, pData, argv, __ccgo_ts+14641) } } libc.SetBitFieldPtr8Uint32(db+192+8, libc.Uint32FromInt32(0), 0, 0x1) @@ -116181,11 +117119,11 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr } else { pIndex = _sqlite3FindIndex(tls, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName) if pIndex == uintptr(0) { - _corruptSchema(tls, pData, argv, __ccgo_ts+18773) + _corruptSchema(tls, pData, argv, __ccgo_ts+18860) } else { if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), pIndex+88) == 0 || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum < uint32(2) || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage || _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14548) + _corruptSchema(tls, pData, argv, __ccgo_ts+14641) } } } @@ -116224,18 +117162,18 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** table name will be inserted automatically by the parser so we can just ** use the abbreviation "x" here. The parser will also automatically tag ** the schema table as read-only. */ - (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9090 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9215 if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6565 + v2 = __ccgo_ts + 6629 } else { - v2 = __ccgo_ts + 6098 + v2 = __ccgo_ts + 6162 } v1 = v2 zSchemaTabName = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(2)] = (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8162 - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18786 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8287 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18873 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(5)] = uintptr(0) (*(*TInitData)(unsafe.Pointer(bp + 72))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 72))).FiDb = iDb @@ -116324,7 +117262,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl } else { /* If opening an attached database, the encoding much match ENC(db) */ if (*(*[5]int32)(unsafe.Pointer(bp + 48)))[libc.Int32FromInt32(BTREE_TEXT_ENCODING)-libc.Int32FromInt32(1)]&int32(3) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12127) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12252) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -116350,7 +117288,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = uint8(1) } if int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) > int32(SQLITE_MAX_FILE_FORMAT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18858) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18945) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -116365,7 +117303,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl /* Read the schema information out of the schema tables */ (*(*TInitData)(unsafe.Pointer(bp + 72))).FmxPage = _sqlite3BtreeLastPage(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18882, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18969, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) rc = Xsqlite3_exec(tls, db, zSql, __ccgo_fp(_sqlite3InitCallback), bp+72, uintptr(0)) @@ -116402,12 +117340,14 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** curMain and calling sqlite3BtreeEnter(). For an error that occurs ** before that point, jump to error_out. */ + goto initone_error_out initone_error_out: ; if openedTransaction != 0 { _sqlite3BtreeCommit(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) } _sqlite3BtreeLeave(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) + goto error_out error_out: ; if rc != 0 { @@ -116662,7 +117602,12 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup - pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + if _sqlite3FaultSim(tls, int32(300)) != 0 { + pCleanup = uintptr(0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) + } else { + pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + } if pCleanup != 0 { (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup @@ -116693,7 +117638,7 @@ func _sqlite3ParseObjectInit(tls *libc.TLS, pParse uintptr, db uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FpParse = pParse (*TParse)(unsafe.Pointer(pParse)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1650, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1664, 0) } } @@ -116727,7 +117672,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } else { } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1650, 0) + _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1664, 0) v1 = libc.Int32FromInt32(SQLITE_NOMEM) rc = v1 (*Tsqlite3)(unsafe.Pointer(db)).FerrCode = v1 @@ -116776,7 +117721,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep rc = _sqlite3BtreeSchemaLocked(tls, pBt) if rc != 0 { zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FzDbSName - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18916, libc.VaList(bp+432, zDb)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+19003, libc.VaList(bp+432, zDb)) goto end_prepare } } @@ -116792,7 +117737,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep if nBytes >= 0 && (nBytes == 0 || int32(*(*int8)(unsafe.Pointer(zSql + uintptr(nBytes-int32(1))))) != 0) { mxLen = *(*int32)(unsafe.Pointer(db + 136 + 1*4)) if nBytes > mxLen { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+18946, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+19033, 0) rc = _sqlite3ApiExit(tls, db, int32(SQLITE_TOOBIG)) goto end_prepare } @@ -116826,7 +117771,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } rc = (*(*TParse)(unsafe.Pointer(bp))).Frc if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3827, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3891, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) } else { _sqlite3Error(tls, db, rc) @@ -116842,6 +117787,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep (*(*TParse)(unsafe.Pointer(bp))).FpTriggerPrg = (*TTriggerPrg)(unsafe.Pointer(pT)).FpNext _sqlite3DbFree(tls, db, pT) } + goto end_prepare end_prepare: ; _sqlite3ParseObjectReset(tls, bp) @@ -116855,7 +117801,7 @@ func _sqlite3LockAndPrepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int3 cnt = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141699)) + return _sqlite3MisuseError(tls, int32(142654)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -116989,7 +117935,7 @@ func _sqlite3Prepare16(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, pr rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141848)) + return _sqlite3MisuseError(tls, int32(142803)) } if nBytes >= 0 { z = zSql @@ -117395,15 +118341,15 @@ func _sqlite3JoinType(tls *libc.TLS, pParse uintptr, pA uintptr, pB uintptr, pC i++ } if jointype&(libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER)) == libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER) || jointype&int32(JT_ERROR) != 0 || jointype&(libc.Int32FromInt32(JT_OUTER)|libc.Int32FromInt32(JT_LEFT)|libc.Int32FromInt32(JT_RIGHT)) == int32(JT_OUTER) { - zSp1 = __ccgo_ts + 11234 - zSp2 = __ccgo_ts + 11234 + zSp1 = __ccgo_ts + 11359 + zSp2 = __ccgo_ts + 11359 if pB == uintptr(0) { zSp1++ } if pC == uintptr(0) { zSp2++ } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18965, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19052, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) jointype = int32(JT_INNER) } return jointype @@ -117694,7 +118640,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { if int32((*TSrcItem)(unsafe.Pointer(pRight)).Ffg.Fjointype)&int32(JT_NATURAL) != 0 { pUsing = uintptr(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x400>>10)) != 0 || *(*uintptr)(unsafe.Pointer(pRight + 72)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18995, libc.VaList(bp+16, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19082, libc.VaList(bp+16, 0)) return int32(1) } j = 0 @@ -117744,7 +118690,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { zName1 = (*(*TIdList_item)(unsafe.Pointer(pList + 8 + uintptr(j)*16))).FzName iRightCol = _sqlite3ColumnIndex(tls, pRightTab, zName1) if iRightCol < 0 || _tableAndColumnIndex(tls, pSrc, 0, i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19045, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19132, libc.VaList(bp+16, zName1)) return int32(1) } pE1 = _sqlite3CreateColumnExpr(tls, db, pSrc, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) @@ -117766,7 +118712,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { pFuncArgs = uintptr(0) /* Arguments to the coalesce() */ for _tableAndColumnIndex(tls, pSrc, *(*int32)(unsafe.Pointer(bp))+int32(1), i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) != 0 { if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 60 + 4))&0x400>>10)) == 0 || _sqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 72)), zName1) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19109, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19196, libc.VaList(bp+16, zName1)) break } pFuncArgs = _sqlite3ExprListAppend(tls, pParse, pFuncArgs, pE1) @@ -117810,7 +118756,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { } var _tkCoalesce = TToken{ - Fz: __ccgo_ts + 6762, + Fz: __ccgo_ts + 6826, Fn: uint32(8), } @@ -118586,13 +119532,13 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { _ = z switch id { case int32(TK_ALL): - z = __ccgo_ts + 19146 + z = __ccgo_ts + 19233 case int32(TK_INTERSECT): - z = __ccgo_ts + 19156 + z = __ccgo_ts + 19243 case int32(TK_EXCEPT): - z = __ccgo_ts + 19166 + z = __ccgo_ts + 19253 default: - z = __ccgo_ts + 19173 + z = __ccgo_ts + 19260 break } return z @@ -118613,7 +119559,7 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { func _explainTempTable(tls *libc.TLS, pParse uintptr, zUsage uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19179, libc.VaList(bp+8, zUsage)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19266, libc.VaList(bp+8, zUsage)) } /* @@ -118647,12 +119593,17 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, iParm = (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm /* True if sorter record includes seq. no. */ nRefKey = 0 aOutEx = (*TSelect)(unsafe.Pointer(p)).FpEList + 8 - if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat > 0 { - v1 = __ccgo_ts + 19202 + nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat == 0 || nKey == int32(1) { + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat != 0 { + v1 = __ccgo_ts + 19289 + } else { + v1 = __ccgo_ts + 1694 + } + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19303, libc.VaList(bp+8, v1)) } else { - v1 = __ccgo_ts + 1680 + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19334, libc.VaList(bp+8, nKey)) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19217, libc.VaList(bp+8, v1)) if (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut != 0 { _sqlite3VdbeAddOp2(tls, v, int32(OP_Gosub), (*TSortCtx)(unsafe.Pointer(pSort)).FregReturn, (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut) _sqlite3VdbeGoto(tls, v, addrBreak) @@ -118674,7 +119625,6 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, regRow = _sqlite3GetTempRange(tls, pParse, nColumn) } } - nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat if int32((*TSortCtx)(unsafe.Pointer(pSort)).FsortFlags)&int32(SORTFLAG_UseSorter) != 0 { v3 = pParse + 56 *(*int32)(unsafe.Pointer(v3))++ @@ -118892,7 +119842,7 @@ func _columnTypeImpl(tls *libc.TLS, pNC uintptr, pExpr uintptr, pzOrigDb uintptr } if iCol < 0 { zType = __ccgo_ts + 1168 - *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16726 + *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16813 } else { *(*uintptr)(unsafe.Pointer(bp + 16)) = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, uintptr(0)) @@ -119038,13 +119988,13 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) iCol = int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) } if iCol < 0 { - zCol = __ccgo_ts + 16726 + zCol = __ccgo_ts + 16813 } else { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } if fullName != 0 { zName1 = uintptr(0) - zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12413, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) + zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12538, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zName1, __ccgo_fp(_sqlite3OomClear)) } else { _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zCol, uintptr(-libc.Int32FromInt32(1))) @@ -119052,7 +120002,7 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } else { z = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32))).FzEName if z == uintptr(0) { - v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19248, libc.VaList(bp+8, i+int32(1))) + v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19380, libc.VaList(bp+8, i+int32(1))) } else { v2 = _sqlite3DbStrDup(tls, db, z) } @@ -119144,7 +120094,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if iCol >= 0 { v3 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } else { - v3 = __ccgo_ts + 16726 + v3 = __ccgo_ts + 16813 } zName = v3 } else { @@ -119159,7 +120109,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if zName != 0 && !(_sqlite3IsTrueOrFalse(tls, zName) != 0) { zName = _sqlite3DbStrDup(tls, db, zName) } else { - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19248, libc.VaList(bp+40, i+int32(1))) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19380, libc.VaList(bp+40, i+int32(1))) } /* Make sure the column name is unique. If the name is not unique, ** append an integer to the name so that it becomes unique. @@ -119195,7 +120145,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, } *(*Tu32)(unsafe.Pointer(bp))++ v8 = *(*Tu32)(unsafe.Pointer(bp)) - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19257, libc.VaList(bp+40, nName, zName, v8)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19389, libc.VaList(bp+40, nName, zName, v8)) _sqlite3ProgressCheck(tls, pParse) if *(*Tu32)(unsafe.Pointer(bp)) > uint32(3) { Xsqlite3_randomness(tls, int32(4), bp) @@ -119255,9 +120205,9 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS defer tls.Free(64) var a, db, p, pCol, pColl, pS2, zType, p4, p5 uintptr var i, j, m int32 - var m1, n Ti64 + var k, n Ti64 var _ /* sNC at bp+0 */ TNameContext - _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, m, m1, n, p, pCol, pColl, pS2, zType, p4, p5 + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, k, m, n, p, pCol, pColl, pS2, zType, p4, p5 db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { return @@ -119274,17 +120224,22 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS if !(i < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } + m = 0 + pS2 = pSelect *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags) & libc.Int32FromInt32(COLFLAG_NOINSERT)) p = (*(*TExprList_item)(unsafe.Pointer(a + uintptr(i)*32))).FpExpr /* pCol->szEst = ... // Column size est for SELECT tables never used */ (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, p) + for int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) && (*TSelect)(unsafe.Pointer(pS2)).FpNext != uintptr(0) { + m |= _sqlite3ExprDataType(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext + (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + } if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) { (*TColumn)(unsafe.Pointer(pCol)).Faffinity = aff } - if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && (*TSelect)(unsafe.Pointer(pSelect)).FpNext != 0 { - m = 0 - m = 0 - pS2 = (*TSelect)(unsafe.Pointer(pSelect)).FpNext + if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && ((*TSelect)(unsafe.Pointer(pS2)).FpNext != 0 || pS2 != pSelect) { + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext for { if !(pS2 != 0) { break @@ -119309,7 +120264,7 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS zType = _columnTypeImpl(tls, bp, p, uintptr(0), uintptr(0), uintptr(0)) if zType == uintptr(0) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) != int32(_sqlite3AffinityType(tls, zType, uintptr(0))) { if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_NUMERIC) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_FLEXNUM) { - zType = __ccgo_ts + 19265 + zType = __ccgo_ts + 19397 } else { zType = uintptr(0) j = int32(1) @@ -119329,13 +120284,13 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS } } if zType != 0 { - m1 = int64(_sqlite3Strlen30(tls, zType)) + k = int64(_sqlite3Strlen30(tls, zType)) n = int64(_sqlite3Strlen30(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) - (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+m1+int64(2))) + (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+k+int64(2))) p4 = pCol + 14 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) & ^(libc.Int32FromInt32(COLFLAG_HASTYPE) | libc.Int32FromInt32(COLFLAG_HASCOLL))) if (*TColumn)(unsafe.Pointer(pCol)).FzCnName != 0 { - libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(m1+int64(1))) + libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(k+int64(1))) p5 = pCol + 14 *(*Tu16)(unsafe.Pointer(p5)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p5))) | libc.Int32FromInt32(COLFLAG_HASTYPE)) } @@ -119624,7 +120579,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest iDistinct = 0 /* To ensure unique results if UNION */ eDest = int32(SRT_Fifo) /* Registers used by LIMIT and OFFSET */ if (*TSelect)(unsafe.Pointer(p)).FpWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19269, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19401, 0) return } /* Obtain authorization to do a recursive query */ @@ -119717,7 +120672,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest break } if (*TSelect)(unsafe.Pointer(pFirstRec)).FselFlags&uint32(SF_Aggregate) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19318, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19450, 0) goto end_of_recursive_query } (*TSelect)(unsafe.Pointer(pFirstRec)).Fop = uint8(TK_ALL) @@ -119732,7 +120687,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest /* Store the results of the setup-query in Queue. */ pSetup = (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior (*TSelect)(unsafe.Pointer(pSetup)).FpNext = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19360, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19492, 0) rc = _sqlite3Select(tls, pParse, pSetup, bp) (*TSelect)(unsafe.Pointer(pSetup)).FpNext = p if rc != 0 { @@ -119760,12 +120715,13 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest ** the value for the recursive-table. Store the results in the Queue. */ (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19366, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19498, 0) _sqlite3Select(tls, pParse, p, bp) (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = pSetup /* Keep running the loop until the Queue is empty */ _sqlite3VdbeGoto(tls, v, addrTop) _sqlite3VdbeResolveLabel(tls, v, addrBreak) + goto end_of_recursive_query end_of_recursive_query: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSelect)(unsafe.Pointer(p)).FpOrderBy) @@ -119812,11 +120768,11 @@ func _multiSelectValues(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) nRow += bShowAll } if nRow == int32(1) { - v1 = __ccgo_ts + 1680 + v1 = __ccgo_ts + 1694 } else { - v1 = __ccgo_ts + 19381 + v1 = __ccgo_ts + 19513 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19383, libc.VaList(bp+8, nRow, v1)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19515, libc.VaList(bp+8, nRow, v1)) for p != 0 { _selectInnerLoop(tls, pParse, p, -int32(1), uintptr(0), uintptr(0), pDest, int32(1), int32(1)) if !(bShowAll != 0) { @@ -119924,8 +120880,8 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in return _multiSelectOrderBy(tls, pParse, p, pDest) } else { if (*TSelect)(unsafe.Pointer(pPrior)).FpPrior == uintptr(0) { - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19406, 0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19421, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19538, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19553, 0) } /* Generate code for the left and right SELECT statements. */ @@ -119950,7 +120906,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in _sqlite3VdbeAddOp3(tls, v, int32(OP_OffsetLimit), (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TSelect)(unsafe.Pointer(p)).FiOffset+int32(1), (*TSelect)(unsafe.Pointer(p)).FiOffset) } } - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19146, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19233, 0) rc = _sqlite3Select(tls, pParse, p, bp) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -120002,7 +120958,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 48))).FeDest = op - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19440, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19572, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+48) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -120060,7 +121016,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit1 = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 88))).FiSDParm = tab2 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19440, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19572, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+88) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -120162,6 +121118,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in } _sqlite3KeyInfoUnref(tls, pKeyInfo) } + goto multi_select_end multi_select_end: ; (*TSelectDest)(unsafe.Pointer(pDest)).FiSdst = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst @@ -120182,9 +121139,9 @@ func _sqlite3SelectWrongNumTermsError(tls *libc.TLS, pParse uintptr, p uintptr) bp := tls.Alloc(16) defer tls.Free(16) if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Values) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19461, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19593, 0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19507, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19639, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) } } @@ -120553,8 +121510,8 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr (*TSelect)(unsafe.Pointer(pSplit)).FpPrior = uintptr(0) (*TSelect)(unsafe.Pointer(pPrior)).FpNext = uintptr(0) (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy = _sqlite3ExprListDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pOrderBy, 0) - _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7399) - _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7399) + _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7524) + _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7524) /* Compute the limit registers */ _computeLimitRegisters(tls, pParse, p, labelEnd) if (*TSelect)(unsafe.Pointer(p)).FiLimit != 0 && op == int32(TK_ALL) { @@ -120598,14 +121555,14 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr regOutB = v21 _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), regAddrA) _sqlite3SelectDestInit(tls, bp+40, int32(SRT_Coroutine), regAddrB) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19589, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19721, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) /* Generate a coroutine to evaluate the SELECT statement to the ** left of the compound operator - the "A" select. */ addrSelectA = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regAddrA, 0, addrSelectA) (*TSelect)(unsafe.Pointer(pPrior)).FiLimit = regLimitA - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19600, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19732, 0) _sqlite3Select(tls, pParse, pPrior, bp) _sqlite3VdbeEndCoroutine(tls, v, regAddrA) _sqlite3VdbeJumpHere(tls, v, addr1) @@ -120618,7 +121575,7 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr savedOffset = (*TSelect)(unsafe.Pointer(p)).FiOffset (*TSelect)(unsafe.Pointer(p)).FiLimit = regLimitB (*TSelect)(unsafe.Pointer(p)).FiOffset = 0 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19605, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19737, 0) _sqlite3Select(tls, pParse, p, bp+40) (*TSelect)(unsafe.Pointer(p)).FiLimit = savedLimit (*TSelect)(unsafe.Pointer(p)).FiOffset = savedOffset @@ -120833,7 +121790,7 @@ func _substExpr(tls *libc.TLS, pSubst uintptr, pExpr uintptr) (r uintptr) { if pColl != 0 { v1 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v1 = __ccgo_ts + 5118 + v1 = __ccgo_ts + 5182 } pExpr = _sqlite3ExprAddCollateString(tls, (*TSubstContext)(unsafe.Pointer(pSubst)).FpParse, pExpr, v1) } @@ -121869,10 +122826,10 @@ func _findConstInWhere(tls *libc.TLS, pConst uintptr, pExpr uintptr) { } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft - if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pLeft) != 0 { + if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pLeft) != 0 { _constInsert(tls, pConst, pRight, pLeft, pExpr) } - if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pRight) != 0 { + if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pRight) != 0 { _constInsert(tls, pConst, pLeft, pRight, pExpr) } } @@ -122105,6 +123062,18 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** The hope is that the terms added to the inner query will make it more // ** efficient. // ** +// ** NAME AMBIGUITY +// ** +// ** This optimization is called the "WHERE-clause push-down optimization". +// ** +// ** Do not confuse this optimization with another unrelated optimization +// ** with a similar name: The "MySQL push-down optimization" causes WHERE +// ** clause terms that can be evaluated using only the index and without +// ** reference to the table are run first, so that if they are false, +// ** unnecessary table seeks are avoided. +// ** +// ** RULES +// ** // ** Do not attempt this optimization if: // ** // ** (1) (** This restriction was removed on 2017-09-29. We used to @@ -122170,10 +123139,10 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** (9c) There is a RIGHT JOIN (or FULL JOIN) in between the ON/USING // ** clause and the subquery. // ** -// ** Without this restriction, the push-down optimization might move -// ** the ON/USING filter expression from the left side of a RIGHT JOIN -// ** over to the right side, which leads to incorrect answers. See -// ** also restriction (6) in sqlite3ExprIsSingleTableConstraint(). +// ** Without this restriction, the WHERE-clause push-down optimization +// ** might move the ON/USING filter expression from the left side of a +// ** RIGHT JOIN over to the right side, which leads to incorrect answers. +// ** See also restriction (6) in sqlite3ExprIsSingleTableConstraint(). // ** // ** (10) The inner query is not the right-hand table of a RIGHT JOIN. // ** @@ -122266,7 +123235,7 @@ func _pushDownWhereTerms(tls *libc.TLS, pParse uintptr, pSubq uintptr, pWhere ui nChng += _pushDownWhereTerms(tls, pParse, pSubq, (*TExpr)(unsafe.Pointer(pWhere)).FpRight, pSrcList, iSrc) pWhere = (*TExpr)(unsafe.Pointer(pWhere)).FpLeft } - if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc) != 0 { + if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc, int32(1)) != 0 { nChng++ *(*Tu32)(unsafe.Pointer(pSubq + 4)) |= uint32(SF_PushDown) for pSubq != 0 { @@ -122436,13 +123405,13 @@ func _minMaxQuery(tls *libc.TLS, db uintptr, pFunc uintptr, ppMinMax uintptr) (r return uint8(eRet) } zFunc = *(*uintptr)(unsafe.Pointer(pFunc + 8)) - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15582) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15675) == 0 { eRet = int32(WHERE_ORDERBY_MIN) if _sqlite3ExprCanBeNull(tls, (*(*TExprList_item)(unsafe.Pointer(pEList + 8))).FpExpr) != 0 { sortFlags = uint8(KEYINFO_ORDER_BIGNULL) } } else { - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15586) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15679) == 0 { eRet = int32(WHERE_ORDERBY_MAX) sortFlags = uint8(KEYINFO_ORDER_DESC) } else { @@ -122530,7 +123499,7 @@ func _sqlite3IndexedByLookup(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r in pIdx = (*TIndex)(unsafe.Pointer(pIdx)).FpNext } if !(pIdx != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19611, libc.VaList(bp+8, zIndexedBy, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19743, libc.VaList(bp+8, zIndexedBy, 0)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) return int32(SQLITE_ERROR) } @@ -122654,7 +123623,7 @@ func _cannotBeFunction(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x4>>2)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19629, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19761, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) return int32(1) } return 0 @@ -122829,7 +123798,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } *(*Tu32)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect + 4)) |= uint32(SF_CopyCte) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x2>>1)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19652, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19784, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) return int32(2) } libc.SetBitFieldPtr16Uint32(pFrom+60+4, libc.Uint32FromInt32(1), 8, 0x100) @@ -122853,7 +123822,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ libc.SetBitFieldPtr16Uint32(pItem+60+4, libc.Uint32FromInt32(1), 6, 0x40) if (*TSelect)(unsafe.Pointer(pRecTerm)).FselFlags&uint32(SF_Recursive) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19672, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19804, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) return int32(2) } *(*Tu32)(unsafe.Pointer(pRecTerm + 4)) |= uint32(SF_Recursive) @@ -122875,7 +123844,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } pRecTerm = (*TSelect)(unsafe.Pointer(pRecTerm)).FpPrior } - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19715 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19847 pSavedWith = (*TParse)(unsafe.Pointer(pParse)).FpWith (*TParse)(unsafe.Pointer(pParse)).FpWith = *(*uintptr)(unsafe.Pointer(bp)) if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { @@ -122906,7 +123875,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom pEList = (*TSelect)(unsafe.Pointer(pLeft)).FpEList if (*TCte)(unsafe.Pointer(pCte)).FpCols != 0 { if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr != (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19738, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19870, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) (*TParse)(unsafe.Pointer(pParse)).FpWith = pSavedWith return int32(2) } @@ -122915,9 +123884,9 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom _sqlite3ColumnsFromExprList(tls, pParse, pEList, pTab+54, pTab+8) if bMayRecursive != 0 { if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19776 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19908 } else { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19810 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19942 } _sqlite3WalkSelect(tls, pWalker, pSel) } @@ -122976,7 +123945,7 @@ func _sqlite3ExpandSubquery(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int if (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias != 0 { (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3DbStrDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias) } else { - (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19848, libc.VaList(bp+8, pFrom)) + (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19980, libc.VaList(bp+8, pFrom)) } for (*TSelect)(unsafe.Pointer(pSel)).FpPrior != 0 { pSel = (*TSelect)(unsafe.Pointer(pSel)).FpPrior @@ -123132,7 +124101,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { return int32(WRC_Abort) } if (*TTable)(unsafe.Pointer(pTab)).FnTabRef >= uint32(0xffff) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19852, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19984, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) (*TSrcItem)(unsafe.Pointer(pFrom)).FpTab = uintptr(0) return int32(WRC_Abort) } @@ -123147,7 +124116,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_EnableView) == uint64(0) && (*TTable)(unsafe.Pointer(pTab)).FpSchema != (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19891, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20023, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } (*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect = _sqlite3SelectDup(tls, db, (*(*struct { FpSelect uintptr @@ -123162,7 +124131,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).Fp)).FeVtabRisk) > libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15141, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15234, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } } nCol = (*TTable)(unsafe.Pointer(pTab)).FnCol @@ -123284,7 +124253,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if iDb >= 0 { v10 = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName } else { - v10 = __ccgo_ts + 6622 + v10 = __ccgo_ts + 6686 } zSchemaName = v10 } @@ -123301,7 +124270,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { pNew = _sqlite3ExprListAppend(tls, pParse, pNew, pRight) if pNew != 0 { pX = pNew + 8 + uintptr((*TExprList)(unsafe.Pointer(pNew)).FnExpr-int32(1))*32 - (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19922, libc.VaList(bp+8, zUName)) + (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20054, libc.VaList(bp+8, zUName)) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(ENAME_TAB), 0, 0x3) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(1), 7, 0x80) } @@ -123380,7 +124349,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if pNestedFrom != 0 && libc.Bool(libc.Bool(!(libc.Int32FromInt32(ViewCanHaveRowid) != 0)) || j < (*TExprList)(unsafe.Pointer(pNestedFrom)).FnExpr) { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, (*(*TExprList_item)(unsafe.Pointer(pNestedFrom + 8 + uintptr(j)*32))).FzEName) } else { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19927, libc.VaList(bp+8, zSchemaName, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20059, libc.VaList(bp+8, zSchemaName, zTabName, zName)) } if j == int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) { v13 = int32(ENAME_ROWID) @@ -123393,7 +124362,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } } else { if longNames != 0 { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12413, libc.VaList(bp+8, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12538, libc.VaList(bp+8, zTabName, zName)) libc.SetBitFieldPtr16Uint32(pX1+16+4, libc.Uint32FromInt32(ENAME_NAME), 0, 0x3) } else { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, zName) @@ -123413,9 +124382,9 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if !(tableSeen != 0) { if zTName != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19936, libc.VaList(bp+8, zTName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20068, libc.VaList(bp+8, zTName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19954, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20086, 0) } } } @@ -123429,7 +124398,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if (*TSelect)(unsafe.Pointer(p)).FpEList != 0 { if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpEList)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19974, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20106, 0) return int32(WRC_Abort) } if elistFlags&uint32(libc.Int32FromInt32(EP_HasFunc)|libc.Int32FromInt32(EP_Subquery)) != uint32(0) { @@ -123770,12 +124739,12 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct >= 0 { pE = (*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFExpr if *(*uintptr)(unsafe.Pointer(pE + 32)) == uintptr(0) || (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pE + 32)))).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20005, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20137, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct = -int32(1) } else { pKeyInfo = _sqlite3KeyInfoFromExprList(tls, pParse, *(*uintptr)(unsafe.Pointer(pE + 32)), 0, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistAddr = _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct, 0, 0, pKeyInfo, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20056, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20188, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } } if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab >= 0 { @@ -123796,7 +124765,7 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { (*TKeyInfo)(unsafe.Pointer(pKeyInfo1)).FnKeyField++ } _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab, (*TExprList)(unsafe.Pointer(pOBList)).FnExpr+nExtra, 0, pKeyInfo1, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20089, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20221, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } goto _1 _1: @@ -124101,16 +125070,16 @@ func _explainSimpleCount(tls *libc.TLS, pParse uintptr, pTab uintptr, pIdx uintp if int32((*TParse)(unsafe.Pointer(pParse)).Fexplain) == int32(2) { bCover = libc.BoolInt32(pIdx != uintptr(0) && ((*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) || !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == libc.Int32FromInt32(SQLITE_IDXTYPE_PRIMARYKEY)))) if bCover != 0 { - v1 = __ccgo_ts + 20122 + v1 = __ccgo_ts + 20254 } else { - v1 = __ccgo_ts + 1680 + v1 = __ccgo_ts + 1694 } if bCover != 0 { v2 = (*TIndex)(unsafe.Pointer(pIdx)).FzName } else { - v2 = __ccgo_ts + 1680 + v2 = __ccgo_ts + 1694 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20145, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20277, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) } } @@ -124142,7 +125111,7 @@ func _havingToWhereExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 ** statements AggInfo structure. */ if _sqlite3ExprIsConstantOrGroupBy(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, pExpr, (*TSelect)(unsafe.Pointer(pS)).FpGroupBy) != 0 && libc.BoolInt32((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse)) == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb - pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8162) + pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8287) if pNew != 0 { pWhere = (*TSelect)(unsafe.Pointer(pS)).FpWhere t = *(*TExpr)(unsafe.Pointer(pNew)) @@ -124298,7 +125267,7 @@ func _countOfViewOptimization(tls *libc.TLS, pParse uintptr, p uintptr) (r int32 if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { return 0 } /* Result is an aggregate */ - if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15876) != 0 { + if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15969) != 0 { return 0 } /* Is count() */ if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != uintptr(0) { @@ -124561,7 +125530,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { v1 = (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p0)).FpTab)).FzName } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20157, libc.VaList(bp+176, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20289, libc.VaList(bp+176, v1)) goto select_end } /* Clear the SF_UFSrcCheck flag. The check has already been performed, @@ -124662,7 +125631,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Catch mismatch in the declared columns of a view and the number of ** columns in the SELECT on the RHS */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) != (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20211, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20343, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) goto select_end } /* Do not attempt the usual optimizations (flattening and ORDER BY @@ -124799,12 +125768,12 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r ** string for the fake column name seems safer. */ if (*TSrcItem)(unsafe.Pointer(pItem1)).FcolUsed == uint64(0) && (*TSrcItem)(unsafe.Pointer(pItem1)).FzName != uintptr(0) { - _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1680, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) + _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1694, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) } /* Generate code for all sub-queries in the FROM clause */ pSub1 = (*TSrcItem)(unsafe.Pointer(pItem1)).FpSelect - if pSub1 == uintptr(0) { + if pSub1 == uintptr(0) || (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub != 0 { goto _10 } /* The code for a subquery should only be generated once. */ @@ -124843,7 +125812,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn, 0, addrTop) (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub = addrTop _sqlite3SelectDestInit(tls, bp+72, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20251, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20383, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow libc.SetBitFieldPtr16Uint32(pItem1+60+4, libc.Uint32FromInt32(1), 5, 0x20) @@ -124891,7 +125860,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { } _sqlite3SelectDestInit(tls, bp+72, int32(SRT_EphemTab), (*TSrcItem)(unsafe.Pointer(pItem1)).FiCursor) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20266, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20398, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow if onceAddr != 0 { @@ -125301,11 +126270,11 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r groupBySort = 0 } else { if (*(*TDistinctCtx)(unsafe.Pointer(bp))).FisTnct != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Distinct) == uint32(0) { - v44 = __ccgo_ts + 20282 + v44 = __ccgo_ts + 20414 } else { - v44 = __ccgo_ts + 20291 + v44 = __ccgo_ts + 20423 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19179, libc.VaList(bp+176, v44)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19266, libc.VaList(bp+176, v44)) groupBySort = int32(1) nGroupBy = (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr nCol = nGroupBy @@ -125624,7 +126593,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeResolveLabel(tls, v, addrEnd) } /* endif aggregate query */ if int32((*(*TDistinctCtx)(unsafe.Pointer(bp))).FeTnctType) == int32(WHERE_DISTINCT_UNORDERED) { - _explainTempTable(tls, pParse, __ccgo_ts+20282) + _explainTempTable(tls, pParse, __ccgo_ts+20414) } /* If there is an ORDER BY clause, then we need to sort the results ** and send them to the callback one by one. @@ -125641,6 +126610,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Control jumps to here if an error is encountered above, or upon ** successful coding of the SELECT. */ + goto select_end select_end: ; _sqlite3ExprListDelete(tls, db, *(*uintptr)(unsafe.Pointer(bp + 64))) @@ -125729,7 +126699,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr if !(i < nCol) { break } - z = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) + z = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) if z == uintptr(0) { goto malloc_failed } @@ -125745,7 +126715,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr } else { if int32((*TTabResult)(unsafe.Pointer(p)).FnColumn) != nCol { Xsqlite3_free(tls, (*TTabResult)(unsafe.Pointer(p)).FzErrMsg) - (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20300, 0) + (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20432, 0) (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) return int32(1) } @@ -125780,6 +126750,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr (*TTabResult)(unsafe.Pointer(p)).FnRow++ } return 0 + goto malloc_failed malloc_failed: ; (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) @@ -125834,7 +126805,7 @@ func Xsqlite3_get_table(tls *libc.TLS, db uintptr, zSql uintptr, pazResult uintp if (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg != 0 { if pzErrMsg != 0 { Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pzErrMsg))) - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) } Xsqlite3_free(tls, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg) } @@ -125996,7 +126967,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if isTemp != 0 { /* If TEMP was specified, then the trigger name may not be qualified. */ if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20365, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20497, 0) goto trigger_cleanup } iDb = int32(1) @@ -126036,7 +127007,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto trigger_cleanup } - _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20411, *(*uintptr)(unsafe.Pointer(bp))) + _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20543, *(*uintptr)(unsafe.Pointer(bp))) if _sqlite3FixSrcList(tls, bp+8, pTableName) != 0 { goto trigger_cleanup } @@ -126046,11 +127017,11 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_orphan_error } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20419, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20551, 0) goto trigger_orphan_error } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, db) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20460, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20592, 0) goto trigger_orphan_error } /* Check that the trigger name is not reserved and that no trigger of the @@ -126059,13 +127030,13 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if zName == uintptr(0) { goto trigger_cleanup } - if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20411, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { + if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20543, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { goto trigger_cleanup } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema+56, zName) != 0 { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20500, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20632, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) } @@ -126073,8 +127044,8 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 } } /* Do not create a trigger on a system table */ - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6557, int32(7)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20526, 0) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6621, int32(7)) == 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20658, 0) goto trigger_cleanup } /* INSTEAD of triggers are only for views and views only support INSTEAD @@ -126082,15 +127053,15 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && tr_tm != int32(TK_INSTEAD) { if tr_tm == int32(TK_BEFORE) { - v1 = __ccgo_ts + 20564 + v1 = __ccgo_ts + 20696 } else { - v1 = __ccgo_ts + 20571 + v1 = __ccgo_ts + 20703 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20577, libc.VaList(bp+112, v1, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20709, libc.VaList(bp+112, v1, pTableName+8)) goto trigger_orphan_error } if !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) && tr_tm == int32(TK_INSTEAD) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20614, libc.VaList(bp+112, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20746, libc.VaList(bp+112, pTableName+8)) goto trigger_orphan_error } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -126110,9 +127081,9 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iTabDb == int32(1) { - v3 = __ccgo_ts + 6565 + v3 = __ccgo_ts + 6629 } else { - v3 = __ccgo_ts + 6098 + v3 = __ccgo_ts + 6162 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto trigger_cleanup @@ -126153,6 +127124,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 (*TTrigger)(unsafe.Pointer(pTrigger)).FpColumns = pColumns pColumns = uintptr(0) (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger = pTrigger + goto trigger_cleanup trigger_cleanup: ; _sqlite3DbFree(tls, db, zName) @@ -126164,6 +127136,7 @@ trigger_cleanup: } else { } return + goto trigger_orphan_error trigger_orphan_error: ; if int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) == int32(1) { @@ -126210,7 +127183,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl pStepList = (*TTriggerStep)(unsafe.Pointer(pStepList)).FpNext } _sqlite3TokenInit(tls, bp+96, (*TTrigger)(unsafe.Pointer(pTrig)).FzName) - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20411, bp+96) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20543, bp+96) if _sqlite3FixTriggerStep(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).Fstep_list) != 0 || _sqlite3FixExpr(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).FpWhen) != 0 { goto triggerfinish_cleanup } @@ -126232,7 +127205,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl break } if (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget != uintptr(0) && _sqlite3ShadowTableName(tls, db, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20660, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20792, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) goto triggerfinish_cleanup } goto _1 @@ -126248,10 +127221,10 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) z = _sqlite3DbStrNDup(tls, db, (*TToken)(unsafe.Pointer(pAll)).Fz, uint64((*TToken)(unsafe.Pointer(pAll)).Fn)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20708, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20840, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) _sqlite3DbFree(tls, db, z) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20783, libc.VaList(bp+120, zName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20915, libc.VaList(bp+120, zName)), uint16(0)) } } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { @@ -126268,6 +127241,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } } } + goto triggerfinish_cleanup triggerfinish_cleanup: ; _sqlite3DeleteTrigger(tls, db, pTrig) @@ -126518,7 +127492,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int } if !(pTrigger != 0) { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20812, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20944, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, zDb) } @@ -126526,6 +127500,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int goto drop_trigger_cleanup } _sqlite3DropTriggerPtr(tls, pParse, pTrigger) + goto drop_trigger_cleanup drop_trigger_cleanup: ; _sqlite3SrcListDelete(tls, db, pName) @@ -126559,9 +127534,9 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { code = int32(SQLITE_DROP_TRIGGER) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6565 + v1 = __ccgo_ts + 6629 } else { - v1 = __ccgo_ts + 6098 + v1 = __ccgo_ts + 6162 } zTab = v1 if iDb == int32(1) { @@ -126576,7 +127551,7 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { v2 = _sqlite3GetVdbe(tls, pParse) v = v2 if v2 != uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20832, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20964, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropTrigger), iDb, 0, 0, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName, 0) } @@ -126709,11 +127684,11 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { if op != int32(TK_INSERT) { if op == int32(TK_DELETE) { - v1 = __ccgo_ts + 20894 + v1 = __ccgo_ts + 21026 } else { - v1 = __ccgo_ts + 20901 + v1 = __ccgo_ts + 21033 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20908, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21040, libc.VaList(bp+8, v1)) } (*TTrigger)(unsafe.Pointer(p)).Ftr_tm = uint8(TRIGGER_BEFORE) } else { @@ -126730,6 +127705,7 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, p = (*TTrigger)(unsafe.Pointer(p)).FpNext } } + goto exit_triggers_exist exit_triggers_exist: ; if pMask != 0 { @@ -126813,7 +127789,7 @@ func _isAsteriskTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pTerm)).FpRight)).Fop) != int32(TK_ASTERISK) { return 0 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20956, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21088, 0) return int32(1) } @@ -126878,6 +127854,79 @@ func _sqlite3ExpandReturning(tls *libc.TLS, pParse uintptr, pList uintptr, pTab return pNew } +// C documentation +// +// /* If the Expr node is a subquery or an EXISTS operator or an IN operator that +// ** uses a subquery, and if the subquery is SF_Correlated, then mark the +// ** expression as EP_VarSelect. +// */ +func _sqlite3ReturningSubqueryVarSelect(tls *libc.TLS, NotUsed uintptr, pExpr uintptr) (r int32) { + _ = NotUsed + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) && (*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FselFlags&uint32(SF_Correlated) != uint32(0) { + *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** If the SELECT references the table pWalker->u.pTab, then do two things: +// ** +// ** (1) Mark the SELECT as as SF_Correlated. +// ** (2) Set pWalker->eCode to non-zero so that the caller will know +// ** that (1) has happened. +// */ +func _sqlite3ReturningSubqueryCorrelated(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + var i int32 + var pSrc uintptr + _, _ = i, pSrc + pSrc = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + i = 0 + for { + if !(i < (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) { + break + } + if (*(*TSrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104))).FpTab == *(*uintptr)(unsafe.Pointer(pWalker + 40)) { + *(*Tu32)(unsafe.Pointer(pSelect + 4)) |= uint32(SF_Correlated) + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + break + } + goto _1 + _1: + ; + i++ + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Scan the expression list that is the argument to RETURNING looking +// ** for subqueries that depend on the table which is being modified in the +// ** statement that is hosting the RETURNING clause (pTab). Mark all such +// ** subqueries as SF_Correlated. If the subqueries are part of an +// ** expression, mark the expression as EP_VarSelect. +// ** +// ** https://sqlite.org/forum/forumpost/2c83569ce8945d39 +// */ +func _sqlite3ProcessReturningSubqueries(tls *libc.TLS, pEList uintptr, pTab uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ExprWalkNoop) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3ReturningSubqueryCorrelated) + *(*uintptr)(unsafe.Pointer(bp + 40)) = pTab + _sqlite3WalkExprList(tls, bp, pEList) + if (*(*TWalker)(unsafe.Pointer(bp))).FeCode != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ReturningSubqueryVarSelect) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) + _sqlite3WalkExprList(tls, bp, pEList) + } +} + // C documentation // // /* @@ -126912,6 +127961,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab (*(*TSelect)(unsafe.Pointer(bp))).FpSrc = bp + 128 (*(*TSrcList)(unsafe.Pointer(bp + 128))).FnSrc = int32(1) (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FpTab = pTab + (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FzName = (*TTable)(unsafe.Pointer(pTab)).FzName /* tag-20240424-1 */ (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FiCursor = -int32(1) _sqlite3SelectPrep(tls, pParse, bp, uintptr(0)) if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { @@ -126936,6 +127986,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab if _sqlite3ResolveExprListNames(tls, bp+240, pNew) == SQLITE_OK && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) { nCol = (*TExprList)(unsafe.Pointer(pNew)).FnExpr reg = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(1) + _sqlite3ProcessReturningSubqueries(tls, pNew, pTab) *(*int32)(unsafe.Pointer(pParse + 56)) += nCol + int32(2) (*TReturning)(unsafe.Pointer(pReturning)).FiRetReg = reg i = 0 @@ -127004,7 +128055,7 @@ func _codeTriggerProgram(tls *libc.TLS, pParse uintptr, pStepList uintptr, orcon } (*TParse)(unsafe.Pointer(pParse)).FeOrconf = uint8(v2) if (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6295, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6359, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) } switch int32((*TTriggerStep)(unsafe.Pointer(pStep)).Fop) { case int32(TK_UPDATE): @@ -127106,7 +128157,7 @@ func _codeRowTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab uintp v = _sqlite3GetVdbe(tls, bp+56) if v != 0 { if (*TTrigger)(unsafe.Pointer(pTrigger)).FzName != 0 { - _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+20998, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) + _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+21130, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) } /* If one was specified, code the WHEN clause. If it evaluates to false ** (or NULL) the sub-vdbe is immediately halted by jumping to the @@ -127795,7 +128846,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui chngPk = uint8(1) } else { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21012, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21144, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto update_cleanup } } @@ -127815,13 +128866,13 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui pRowidExpr = (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FpExpr iRowidExpr = i } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21048, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21180, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto update_cleanup } } if j < 0 { - v11 = __ccgo_ts + 7937 + v11 = __ccgo_ts + 8062 } else { v11 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName } @@ -128503,8 +129554,9 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui ** that information. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21067) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21199) } + goto update_cleanup update_cleanup: ; _sqlite3AuthContextPop(tls, bp) @@ -128936,9 +129988,9 @@ func _sqlite3UpsertAnalyzeTarget(tls *libc.TLS, pParse uintptr, pTabList uintptr if nClause == 0 && (*TUpsert)(unsafe.Pointer(pUpsert)).FpNextUpsert == uintptr(0) { (*(*[16]int8)(unsafe.Pointer(bp + 200)))[0] = 0 } else { - Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21080, libc.VaList(bp+224, nClause+int32(1))) + Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21212, libc.VaList(bp+224, nClause+int32(1))) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21084, libc.VaList(bp+224, bp+200)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21216, libc.VaList(bp+224, bp+200)) return int32(SQLITE_ERROR) } goto _1 @@ -129041,7 +130093,7 @@ func _sqlite3UpsertDoUpdate(tls *libc.TLS, pParse uintptr, pUpsert uintptr, pTab i++ } i = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), iDataCur, 0, iPk, nPk) - _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12502, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12627, -int32(1)) _sqlite3MayAbort(tls, pParse) _sqlite3VdbeJumpHere(tls, v, i) } @@ -129123,7 +130175,7 @@ func _execSql(tls *libc.TLS, db uintptr, pzErrMsg uintptr, zSql uintptr) (r int3 ** corrupt the sqlite_schema.sql field with other kinds of statements ** then run VACUUM to get those statements to execute at inappropriate ** times. */ - if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21157, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21161, uint64(3)) == 0) { + if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21289, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21293, uint64(3)) == 0) { rc = _execSql(tls, db, pzErrMsg, zSubSql) if rc != SQLITE_OK { break @@ -129223,6 +130275,7 @@ func _sqlite3Vacuum(tls *libc.TLS, pParse uintptr, _pNm uintptr, pInto uintptr) _sqlite3VdbeAddOp2(tls, v, int32(OP_Vacuum), iDb, iIntoReg) _sqlite3VdbeUsesBtree(tls, v, iDb) } + goto build_vacuum_end build_vacuum_end: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pInto) @@ -129250,24 +130303,24 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p pDb = uintptr(0) /* Name of output file */ pgflags = uint32(PAGER_SYNCHRONOUS_OFF) /* sync flags for output db */ if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21165) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21297) return int32(SQLITE_ERROR) /* IMP: R-12218-18073 */ } if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive > int32(1) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21205) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21337) return int32(SQLITE_ERROR) /* IMP: R-15610-35227 */ } saved_openFlags = (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags if pOut != 0 { if Xsqlite3_value_type(tls, pOut) != int32(SQLITE_TEXT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21248) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21380) return int32(SQLITE_ERROR) } zOut = Xsqlite3_value_text(tls, pOut) *(*uint32)(unsafe.Pointer(db + 76)) &= uint32(^libc.Int32FromInt32(SQLITE_OPEN_READONLY)) *(*uint32)(unsafe.Pointer(db + 76)) |= uint32(libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE)) } else { - zOut = __ccgo_ts + 1680 + zOut = __ccgo_ts + 1694 } /* Save the current value of the database flags so that it can be ** restored before returning. Then set the writable-schema flag, and @@ -129299,7 +130352,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** to write the journal header file. */ nDb = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21266, libc.VaList(bp+24, zOut)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21398, libc.VaList(bp+24, zOut)) (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags = saved_openFlags if rc != SQLITE_OK { goto end_of_vacuum @@ -129311,7 +130364,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p *(*Ti64)(unsafe.Pointer(bp)) = 0 if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != uintptr(0) && (_sqlite3OsFileSize(tls, id, bp) != SQLITE_OK || *(*Ti64)(unsafe.Pointer(bp)) > 0) { rc = int32(SQLITE_ERROR) - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21289) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21421) goto end_of_vacuum } *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_VacuumInto) @@ -129328,7 +130381,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** file. This is done before the sqlite3BtreeGetPageSize(pMain) call below, ** to ensure that we do not try to change the page-size on a WAL database. */ - rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14911) + rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+15004) if rc != SQLITE_OK { goto end_of_vacuum } @@ -129359,11 +130412,11 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** in the temporary database. */ (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(nDb) /* force new CREATE statements into vacuum_db */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21316, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21448, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21424, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21556, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } @@ -129372,7 +130425,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** an "INSERT INTO vacuum_db.xxx SELECT * FROM main.xxx;" to copy ** the contents to the temporary database. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21478, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21610, libc.VaList(bp+24, zDbMain)) *(*Tu32)(unsafe.Pointer(db + 44)) &= uint32(^libc.Int32FromInt32(DBFLAG_Vacuum)) if rc != SQLITE_OK { goto end_of_vacuum @@ -129382,7 +130435,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** associated storage, so all we have to do is copy their entries ** from the schema table. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21629, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21761, libc.VaList(bp+24, zDbMain)) if rc != 0 { goto end_of_vacuum } @@ -129421,6 +130474,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p nRes = _sqlite3BtreeGetRequestedReserve(tls, pTemp) rc = _sqlite3BtreeSetPageSize(tls, pMain, _sqlite3BtreeGetPageSize(tls, pTemp), nRes, int32(1)) } + goto end_of_vacuum end_of_vacuum: ; /* Restore the original value of db->flags */ @@ -129908,7 +130962,7 @@ func _addModuleArgument(tls *libc.TLS, pParse uintptr, pTable uintptr, zArg uint FazArg uintptr Fp uintptr })(unsafe.Pointer(pTable + 64))).FnArg+int32(3) >= *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12732, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12857, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) } azModuleArg = _sqlite3DbRealloc(tls, db, (*(*struct { FnArg int32 @@ -130031,7 +131085,7 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { if pEnd != 0 { (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fn = uint32(int32(int64((*TToken)(unsafe.Pointer(pEnd)).Fz)-int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz))) + (*TToken)(unsafe.Pointer(pEnd)).Fn } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21759, libc.VaList(bp+8, pParse+272)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21891, libc.VaList(bp+8, pParse+272)) /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. @@ -130041,11 +131095,11 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { ** by sqlite3StartTable(). */ iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+21783, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+21915, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) v = _sqlite3GetVdbe(tls, pParse) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) - zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21882, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) + zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+22014, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, zWhere, uint16(0)) _sqlite3DbFree(tls, db, zStmt) v2 = pParse + 56 @@ -130132,7 +131186,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, break } if (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab == pTab { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21901, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22033, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(SQLITE_LOCKED) } goto _1 @@ -130174,9 +131228,9 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, } if SQLITE_OK != rc { if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21943, libc.VaList(bp+48, zModuleName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22075, libc.VaList(bp+48, zModuleName)) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3827, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3891, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) } _sqlite3DbFree(tls, db, pVTable) @@ -130189,8 +131243,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*TModule)(unsafe.Pointer(pMod)).FnRefModule++ (*TVTable)(unsafe.Pointer(pVTable)).FnRef = int32(1) if (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared == 0 { - zFormat = __ccgo_ts + 21973 - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + zFormat = __ccgo_ts + 22105 + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, zModuleName)) _sqlite3VtabUnlock(tls, pVTable) rc = int32(SQLITE_ERROR) } else { @@ -130215,7 +131269,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(iCol < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } - zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1680) + zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1694) i = 0 nType = _sqlite3Strlen30(tls, zType) i = 0 @@ -130223,7 +131277,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(i < nType) { break } - if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16617, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { + if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16704, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { break } goto _3 @@ -130304,13 +131358,13 @@ func _sqlite3VtabCallConnect(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).FazArg)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22019, libc.VaList(bp+16, zModule)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22151, libc.VaList(bp+16, zModule)) rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxConnect, bp) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3827, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3891, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) (*TParse)(unsafe.Pointer(pParse)).Frc = rc } _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) @@ -130391,7 +131445,7 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, ** error. Otherwise, do nothing. */ if pMod == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxDestroy == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22019, libc.VaList(bp+8, zMod)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22151, libc.VaList(bp+8, zMod)) rc = int32(SQLITE_ERROR) } else { rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate, pzErr) @@ -130417,18 +131471,42 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r int32) { bp := tls.Alloc(448) defer tls.Free(448) - var initBusy, rc int32 - var pCtx, pIdx, pNew, pTab, v2 uintptr - var v1 Ti16 + var i, initBusy, rc int32 + var pCtx, pIdx, pNew, pTab, z, v3 uintptr + var v2 Ti16 var _ /* sParse at bp+0 */ TParse - _, _, _, _, _, _, _, _ = initBusy, pCtx, pIdx, pNew, pTab, rc, v1, v2 + var _ /* tokenType at bp+424 */ int32 + _, _, _, _, _, _, _, _, _, _ = i, initBusy, pCtx, pIdx, pNew, pTab, rc, z, v2, v3 rc = SQLITE_OK + /* Verify that the first two keywords in the CREATE TABLE statement + ** really are "CREATE" and "TABLE". If this is not the case, then + ** sqlite3_declare_vtab() is being misused. + */ + z = zCreateTable + i = 0 + for { + if !(_aKeyword1[i] != 0) { + break + } + *(*int32)(unsafe.Pointer(bp + 424)) = 0 + for cond := true; cond; cond = *(*int32)(unsafe.Pointer(bp + 424)) == int32(TK_SPACE) { + z += uintptr(_sqlite3GetToken(tls, z, bp+424)) + } + if *(*int32)(unsafe.Pointer(bp + 424)) != int32(_aKeyword1[i]) { + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+22170, 0) + return int32(SQLITE_ERROR) + } + goto _1 + _1: + ; + i++ + } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pCtx = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(pCtx != 0) || (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared != 0 { - _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(155155))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(156227))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(155157)) + return _sqlite3MisuseError(tls, int32(156229)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -130440,7 +131518,7 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i initBusy = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) (*(*TParse)(unsafe.Pointer(bp))).FnQueryLoop = int16(1) - if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) && (*(*TParse)(unsafe.Pointer(bp))).FpNewTable != uintptr(0) && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && int32((*TTable)(unsafe.Pointer((*(*TParse)(unsafe.Pointer(bp))).FpNewTable)).FeTabType) == TABTYP_NORM { + if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) { if !((*TTable)(unsafe.Pointer(pTab)).FaCol != 0) { pNew = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable (*TTable)(unsafe.Pointer(pTab)).FaCol = (*TTable)(unsafe.Pointer(pNew)).FaCol @@ -130449,9 +131527,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpDfltList) - v1 = (*TTable)(unsafe.Pointer(pNew)).FnCol - (*TTable)(unsafe.Pointer(pTab)).FnCol = v1 - (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v1 + v2 = (*TTable)(unsafe.Pointer(pNew)).FnCol + (*TTable)(unsafe.Pointer(pTab)).FnCol = v2 + (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v2 *(*Tu32)(unsafe.Pointer(pTab + 48)) |= (*TTable)(unsafe.Pointer(pNew)).FtabFlags & uint32(libc.Int32FromInt32(TF_WithoutRowid)|libc.Int32FromInt32(TF_NoVisibleRowid)) (*TTable)(unsafe.Pointer(pNew)).FnCol = 0 (*TTable)(unsafe.Pointer(pNew)).FaCol = uintptr(0) @@ -130470,11 +131548,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared = int32(1) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - v2 = __ccgo_ts + 3827 + v3 = __ccgo_ts + 3891 } else { - v2 = uintptr(0) + v3 = uintptr(0) } - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v2, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v3, libc.VaList(bp+440, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) rc = int32(SQLITE_ERROR) } @@ -130490,6 +131568,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i return rc } +var _aKeyword1 = [3]Tu8{ + 0: uint8(TK_CREATE), + 1: uint8(TK_TABLE), +} + // C documentation // // /* @@ -130941,7 +132024,7 @@ func _sqlite3VtabEponymousTableInit(tls *libc.TLS, pParse uintptr, pMod uintptr) _addModuleArgument(tls, pParse, pTab, _sqlite3DbStrDup(tls, db, (*TTable)(unsafe.Pointer(pTab)).FzName)) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer(pModule)).FxConnect, bp) if rc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3827, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3891, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3VtabEponymousTableClear(tls, db, pMod) } @@ -131005,7 +132088,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) p = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(p != 0) { - rc = _sqlite3MisuseError(tls, int32(155651)) + rc = _sqlite3MisuseError(tls, int32(156723)) } else { ap = va switch op { @@ -131018,7 +132101,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in case int32(SQLITE_VTAB_USES_ALL_SCHEMAS): (*TVTable)(unsafe.Pointer((*TVtabCtx)(unsafe.Pointer(p)).FpVTable)).FbAllSchemas = uint8(1) default: - rc = _sqlite3MisuseError(tls, int32(155673)) + rc = _sqlite3MisuseError(tls, int32(156745)) break } _ = ap @@ -131740,10 +132823,10 @@ type WhereInfo1 = TWhereInfo1 func _explainIndexColumnName(tls *libc.TLS, pIdx uintptr, i int32) (r uintptr) { i = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) if i == -int32(2) { - return __ccgo_ts + 22038 + return __ccgo_ts + 22183 } if i == -int32(1) { - return __ccgo_ts + 16726 + return __ccgo_ts + 16813 } return (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(i)*16))).FzCnName } @@ -131762,10 +132845,10 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, var i int32 _ = i if bAnd != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22045, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22190, int32(5)) } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22051, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22196, int32(1)) } i = 0 for { @@ -131773,7 +132856,7 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13122, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13247, int32(1)) } Xsqlite3_str_appendall(tls, pStr, _explainIndexColumnName(tls, pIdx, iTerm+i)) goto _1 @@ -131782,11 +132865,11 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5138, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5202, int32(1)) } Xsqlite3_str_append(tls, pStr, zOp, int32(1)) if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22051, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22196, int32(1)) } i = 0 for { @@ -131794,16 +132877,16 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13122, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13247, int32(1)) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5140, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5204, int32(1)) goto _2 _2: ; i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5138, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5202, int32(1)) } } @@ -131836,7 +132919,7 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { if int32(nEq) == 0 && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) == uint32(0) { return } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22053, int32(2)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22198, int32(2)) i = 0 for { if !(i < int32(nEq)) { @@ -131844,12 +132927,12 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } z = _explainIndexColumnName(tls, pIndex, i) if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22045, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22190, int32(5)) } if i >= int32(nSkip) { - v2 = __ccgo_ts + 22056 + v2 = __ccgo_ts + 22201 } else { - v2 = __ccgo_ts + 22061 + v2 = __ccgo_ts + 22206 } Xsqlite3_str_appendf(tls, pStr, v2, libc.VaList(bp+8, z)) goto _1 @@ -131859,13 +132942,13 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } j = i if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_BTM_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22069) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22214) i = int32(1) } if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_TOP_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22071) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22216) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5138, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5202, int32(1)) } // C documentation @@ -131908,47 +132991,47 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if isSearch != 0 { - v2 = __ccgo_ts + 22073 + v2 = __ccgo_ts + 22218 } else { - v2 = __ccgo_ts + 22080 + v2 = __ccgo_ts + 22225 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22085, libc.VaList(bp+144, v2, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22230, libc.VaList(bp+144, v2, pItem)) if flags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_VIRTUALTABLE)) == uint32(0) { zFmt = uintptr(0) pIdx = (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex if !((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) && int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { if isSearch != 0 { - zFmt = __ccgo_ts + 11285 + zFmt = __ccgo_ts + 11410 } } else { if flags&uint32(WHERE_PARTIALIDX) != 0 { - zFmt = __ccgo_ts + 22091 + zFmt = __ccgo_ts + 22236 } else { if flags&uint32(WHERE_AUTO_INDEX) != 0 { - zFmt = __ccgo_ts + 22124 + zFmt = __ccgo_ts + 22269 } else { if flags&uint32(WHERE_IDX_ONLY) != 0 { - zFmt = __ccgo_ts + 22149 + zFmt = __ccgo_ts + 22294 } else { - zFmt = __ccgo_ts + 22167 + zFmt = __ccgo_ts + 22312 } } } } if zFmt != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22176, int32(7)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22321, int32(7)) Xsqlite3_str_appendf(tls, bp, zFmt, libc.VaList(bp+144, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) _explainIndexRange(tls, bp, pLoop) } } else { if flags&uint32(WHERE_IPK) != uint32(0) && flags&uint32(WHERE_CONSTRAINT) != uint32(0) { - zRowid = __ccgo_ts + 16726 - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22184, libc.VaList(bp+144, zRowid)) + zRowid = __ccgo_ts + 16813 + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22329, libc.VaList(bp+144, zRowid)) if flags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != 0 { cRangeOp = int8('=') } else { if flags&uint32(WHERE_BOTH_LIMIT) == uint32(WHERE_BOTH_LIMIT) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22215, libc.VaList(bp+144, zRowid)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22360, libc.VaList(bp+144, zRowid)) cRangeOp = int8('<') } else { if flags&uint32(WHERE_BTM_LIMIT) != 0 { @@ -131958,10 +133041,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22225, libc.VaList(bp+144, int32(cRangeOp))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22370, libc.VaList(bp+144, int32(cRangeOp))) } else { if flags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22230, libc.VaList(bp+144, (*(*struct { + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22375, libc.VaList(bp+144, (*(*struct { FidxNum int32 F__ccgo4 uint8 FisOrdered Ti8 @@ -131980,7 +133063,7 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } if int32((*TSrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&int32(JT_LEFT) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22257, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22402, 0) } zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) @@ -132014,14 +133097,14 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Initial space for EQP output string */ _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22268, libc.VaList(bp+144, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22413, libc.VaList(bp+144, pItem)) pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_IPK) != 0 { pTab = (*TSrcItem)(unsafe.Pointer(pItem)).FpTab if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22056, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22201, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) } else { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22289, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22434, 0) } } else { i = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) @@ -132031,16 +133114,16 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp } z = _explainIndexColumnName(tls, (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex, i) if i > int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22045, int32(5)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22190, int32(5)) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22056, libc.VaList(bp+144, z)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22201, libc.VaList(bp+144, z)) goto _1 _1: ; i++ } } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5138, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5202, int32(1)) zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) return ret @@ -132871,6 +133954,35 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 } } +// C documentation +// +// /* +// ** Loop pLoop is a WHERE_INDEXED level that uses at least one IN(...) +// ** operator. Return true if level pLoop is guaranteed to visit only one +// ** row for each key generated for the index. +// */ +func _whereLoopIsOneRow(tls *libc.TLS, pLoop uintptr) (r int32) { + var ii int32 + _ = ii + if (*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FonError != 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) == 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq) == int32((*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FnKeyCol) { + ii = 0 + for { + if !(ii < int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq)) { + break + } + if int32((*TWhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(ii)*8)))).FeOperator)&(libc.Int32FromInt32(WO_IS)|libc.Int32FromInt32(WO_ISNULL)) != 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) + } + return 0 +} + // C documentation // // /* @@ -133559,7 +134671,10 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** a LEFT JOIN: */ } /* Record the instruction used to terminate the loop. */ - if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 { + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 || (*(*struct { + FnIn int32 + FaInLoop uintptr + })(unsafe.Pointer(pLevel + 72))).FnIn != 0 && regBignull == 0 && _whereLoopIsOneRow(tls, pLoop) != 0 { (*TWhereLevel)(unsafe.Pointer(pLevel)).Fop = uint8(OP_Noop) } else { if bRev != 0 { @@ -133732,7 +134847,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** eliminating duplicates from other WHERE clauses, the action for each ** sub-WHERE clause is to to invoke the main loop body as a subroutine. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22297, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22442, 0) ii = 0 for { if !(ii < (*TWhereClause)(unsafe.Pointer(pOrWc)).FnTerm) { @@ -133755,7 +134870,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI pOrExpr = pAndExpr } /* Loop through table entries that match term pOrTerm. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22312, libc.VaList(bp+96, ii+int32(1))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22457, libc.VaList(bp+96, ii+int32(1))) pSubWInfo = _sqlite3WhereBegin(tls, pParse, pOrTab, pOrExpr, uintptr(0), uintptr(0), uintptr(0), uint16(WHERE_OR_SUBCLAUSE), iCovCur) if pSubWInfo != 0 { addrExplain = _sqlite3WhereExplainOneScan(tls, pParse, pOrTab, pSubWInfo+856, uint16(0)) @@ -133918,6 +135033,12 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** iLoop==3: Code all remaining expressions. ** ** An effort is made to skip unnecessary iterations of the loop. + ** + ** This optimization of causing simple query restrictions to occur before + ** more complex one is call the "push-down" optimization in MySQL. Here + ** in SQLite, the name is "MySQL push-down", since there is also another + ** totally unrelated optimization called "WHERE-clause push-down". + ** Sometimes the qualifier is omitted, resulting in an ambiguity, so beware. */ if pIdx != 0 { v60 = int32(1) @@ -134114,6 +135235,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** to the results of the OUTER JOIN. The following loop generates the ** appropriate WHERE clause constraint checks. tag-20220513a. */ + goto code_outer_join_constraints code_outer_join_constraints: ; pTerm = (*TWhereClause)(unsafe.Pointer(pWC)).Fa @@ -134216,9 +135338,9 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe defer tls.Free(128) var addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, nPk, r, v3 int32 var mAll TBitmask - var pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr + var pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr var _ /* sFrom at bp+0 */ TSrcList - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pRJ = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpRJ @@ -134227,13 +135349,17 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop pTabItem = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 mAll = uint64(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22321, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22466, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) k = 0 for { if !(k < iLevel) { break } + pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*104 mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x20>>5)) != 0 { + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pRight)).FpSelect)).FpEList)).FnExpr-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiTabCur) iIdxCur = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiIdxCur if iIdxCur != 0 { @@ -134731,19 +135857,19 @@ var _aOp = [4]struct { FeOp2 uint8 }{ 0: { - FzOp: __ccgo_ts + 16575, + FzOp: __ccgo_ts + 16662, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_MATCH), }, 1: { - FzOp: __ccgo_ts + 15906, + FzOp: __ccgo_ts + 15999, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_GLOB), }, 2: { - FzOp: __ccgo_ts + 15385, + FzOp: __ccgo_ts + 15478, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_LIKE), }, 3: { - FzOp: __ccgo_ts + 22335, + FzOp: __ccgo_ts + 22480, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_REGEXP), }, } @@ -135377,7 +136503,7 @@ func _exprMightBeIndexed2(tls *libc.TLS, pFrom uintptr, aiCurCol uintptr, pExpr if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) != -int32(2) { goto _4 } - if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_STRING) { + if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && !(_sqlite3ExprIsConstant(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr) != 0) { *(*int32)(unsafe.Pointer(aiCurCol)) = iCur *(*int32)(unsafe.Pointer(aiCurCol + 1*4)) = -int32(2) return int32(1) @@ -135530,7 +136656,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { extraRight = x - uint64(1) /* ON clause terms may not be used with an index ** on left table of a LEFT JOIN. Ticket #3015 */ if prereqAll>>libc.Int32FromInt32(1) >= x { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22342, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22487, 0) return } } else { @@ -135542,7 +136668,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { ** if there is a RIGHT or FULL JOIN in the query. This makes SQLite ** more like other systems, and also preserves legacy. */ if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc > 0 && int32((*(*TSrcItem)(unsafe.Pointer(pSrc + 8))).Ffg.Fjointype)&int32(JT_LTORJ) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22342, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22487, 0) return } *(*Tu32)(unsafe.Pointer(pExpr + 4)) &= uint32(^libc.Int32FromInt32(EP_InnerON)) @@ -135626,7 +136752,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { } else { if op == int32(TK_ISNULL) && !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != libc.Uint32FromInt32(0)) && 0 == _sqlite3ExprCanBeNull(tls, pLeft) { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_TRUEFALSE) /* See tag-20230504-1 */ - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 7923 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 8048 *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_IsFalse)) (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqAll = uint64(0) (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator = uint16(0) @@ -135722,7 +136848,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { *(*Tu8)(unsafe.Pointer(pC)) = uint8(int32(c1) + int32(1)) } if *(*int32)(unsafe.Pointer(bp + 12)) != 0 { - v13 = __ccgo_ts + 22383 + v13 = __ccgo_ts + 22528 } else { v13 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } @@ -135992,6 +137118,9 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FleftCursor != iCsr { return } + if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FprereqRight != uint64(0) { + return + } goto _1 _1: ; @@ -136021,10 +137150,12 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { } } /* All conditions are met. Add the terms to the where-clause object. */ - _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) - if (*TSelect)(unsafe.Pointer(p)).FiOffset > 0 { + if (*TSelect)(unsafe.Pointer(p)).FiOffset != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiOffset, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpRight, iCsr, int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } + if (*TSelect)(unsafe.Pointer(p)).FiOffset == 0 || (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { + _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) + } } } @@ -136248,7 +137379,7 @@ func _sqlite3WhereTabFuncArgs(tls *libc.TLS, pParse uintptr, pItem uintptr, pWC k++ } if k >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22390, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22535, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) return } pColRef = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_COLUMN), uintptr(0), 0) @@ -136580,6 +137711,7 @@ func _whereOrInsert(tls *libc.TLS, pSet uintptr, prereq TBitmask, rRun TLogEst, return 0 } } + goto whereOrInsert_done whereOrInsert_done: ; (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq = prereq @@ -136681,6 +137813,48 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { return uintptr(0) } +// C documentation +// +// /* +// ** Term pTerm is guaranteed to be a WO_IN term. It may be a component term +// ** of a vector IN expression of the form "(x, y, ...) IN (SELECT ...)". +// ** This function checks to see if the term is compatible with an index +// ** column with affinity idxaff (one of the SQLITE_AFF_XYZ values). If so, +// ** it returns a pointer to the name of the collation sequence (e.g. "BINARY" +// ** or "NOCASE") used by the comparison in pTerm. If it is not compatible +// ** with affinity idxaff, NULL is returned. +// */ +func _indexInAffinityOk(tls *libc.TLS, pParse uintptr, pTerm uintptr, idxaff Tu8) (r uintptr) { + bp := tls.Alloc(80) + defer tls.Free(80) + var iField int32 + var pRet, pX, v1 uintptr + var _ /* inexpr at bp+0 */ TExpr + _, _, _, _ = iField, pRet, pX, v1 + pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr + if _sqlite3ExprIsVector(tls, (*TExpr)(unsafe.Pointer(pX)).FpLeft) != 0 { + iField = (*(*struct { + FleftColumn int32 + FiField int32 + })(unsafe.Pointer(pTerm + 32))).FiField - int32(1) + (*(*TExpr)(unsafe.Pointer(bp))).Fflags = uint32(0) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_EQ) + (*(*TExpr)(unsafe.Pointer(bp))).FpLeft = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pX)).FpLeft + 32)) + 8 + uintptr(iField)*32))).FpExpr + (*(*TExpr)(unsafe.Pointer(bp))).FpRight = (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pX + 32)))).FpEList + 8 + uintptr(iField)*32))).FpExpr + pX = bp + } + if _sqlite3IndexAffinityOk(tls, pX, int8(idxaff)) != 0 { + pRet = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pRet != 0 { + v1 = (*TCollSeq)(unsafe.Pointer(pRet)).FzName + } else { + v1 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + return v1 + } + return uintptr(0) +} + // C documentation // // /* @@ -136691,10 +137865,10 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { var iColumn Ti16 var iCur, j, k int32 - var pColl, pParse, pTerm, pWC, pX, v2 uintptr - var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, v2, v3, v5 /* The term being tested */ - k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ + var pColl, pParse, pTerm, pWC, pX, zCollName, v2, v5 uintptr + var v3, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, zCollName, v2, v3, v5, v6 /* The term being tested */ + k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ pWC = (*TWhereScan)(unsafe.Pointer(pScan)).FpWC for int32(1) != 0 { iColumn = *(*Ti16)(unsafe.Pointer(pScan + 88 + uintptr(int32((*TWhereScan)(unsafe.Pointer(pScan)).FiEquiv)-int32(1))*2)) @@ -136738,21 +137912,31 @@ func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { if (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName != 0 && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_ISNULL) == 0 { pParse = (*TWhereInfo)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr - if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { - goto _1 - } - pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) - if pColl == uintptr(0) { - pColl = (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FpDfltColl + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_IN) != 0 { + zCollName = _indexInAffinityOk(tls, pParse, pTerm, uint8((*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff)) + if !(zCollName != 0) { + goto _1 + } + } else { + if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { + goto _1 + } + pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pColl != 0 { + v5 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName + } else { + v5 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + zCollName = v5 } - if _sqlite3StrICmp(tls, (*TCollSeq)(unsafe.Pointer(pColl)).FzName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { + if _sqlite3StrICmp(tls, zCollName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { goto _1 } } - if v5 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v5 { + if v6 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v6 { pX = (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight } - if v5 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { + if v6 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { goto _1 } (*TWhereScan)(unsafe.Pointer(pScan)).FpWC = pWC @@ -137240,7 +138424,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea /* Make the automatic index a partial index if there are terms in the ** WHERE clause (or the ON clause of a LEFT join) that constrain which ** rows of the target table (pSrc) that can be used. */ - if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)) != 0 { + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom), 0) != 0 { pPartial = _sqlite3ExprAnd(tls, pParse, pPartial, _sqlite3ExprDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr, 0)) } if _termCanDriveIndex(tls, pTerm, pSrc, notReady) != 0 { @@ -137255,7 +138439,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea } cMask = v2 if !(sentWarning != 0) { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_WARNING)|libc.Int32FromInt32(1)<>14)) != 0) { eDistinct = int32(2) + libc.BoolInt32(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_SORTBYGROUP) != 0) } else { if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_GROUPBY) != 0 { @@ -137725,7 +138910,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB */ pIdxInfo = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(96)+(libc.Uint64FromInt64(12)+libc.Uint64FromInt64(8))*uint64(nTerm)+uint64(8)*uint64(nOrderBy)+uint64(40)+uint64(8)*uint64(nTerm)) if pIdxInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1650, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1664, 0) return uintptr(0) } pHidden = pIdxInfo + 1*96 @@ -137810,7 +138995,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB break } pExpr1 = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr - if _sqlite3ExprIsConstant(tls, pExpr1) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr1) != 0 { goto _11 } (*(*Tsqlite3_index_orderby)(unsafe.Pointer(pIdxOrderBy + uintptr(j)*8))).FiColumn = int32((*TExpr)(unsafe.Pointer(pExpr1)).FiColumn) @@ -137885,9 +139070,9 @@ func _vtabBestIndex(tls *libc.TLS, pParse uintptr, pTab uintptr, p uintptr) (r i _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) } else { if !((*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3827, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3891, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3827, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3891, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) } } } @@ -139224,7 +140409,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x4>>2)) != 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) } - if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 && int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x2>>1)) == 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ) | libc.Int32FromInt32(WO_IN) | libc.Int32FromInt32(WO_IS)) } } @@ -139463,10 +140648,13 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } } } - /* Set rCostIdx to the cost of visiting selected rows in index. Add - ** it to pNew->rRun, which is currently set to the cost of the index - ** seek only. Then, if this is a non-covering index, add the cost of - ** visiting the rows in the main table. */ + /* Set rCostIdx to the estimated cost of visiting selected rows in the + ** index. The estimate is the sum of two values: + ** 1. The cost of doing one search-by-key to find the first matching + ** entry + ** 2. Stepping forward in the index pNew->nOut times to find all + ** additional matching entries. + */ if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_IPK) { /* The pProbe->szIdxRow is low for an IPK table since the interior ** pages are small. Thus szIdxRow gives a good estimate of seek cost. @@ -139476,7 +140664,14 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } else { rCostIdx = int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut) + int32(1) + int32(15)*int32((*TIndex)(unsafe.Pointer(pProbe)).FszIdxRow)/int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FszTabRow)) } - (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + rCostIdx = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + /* Estimate the cost of running the loop. If all data is coming + ** from the index, then this is just the cost of doing the index + ** lookup and scan. But if some data is coming out of the main table, + ** we also have to add in the cost of doing pNew->nOut searches to + ** locate the row in the main table that corresponds to the index entry. + */ + (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = rCostIdx if (*TWhereLoop)(unsafe.Pointer(pNew)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IDX_ONLY)|libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_EXPRIDX)) == uint32(0) { (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun, int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut)+int32(16))) } @@ -139581,7 +140776,7 @@ func _indexMightHelpWithOrderBy(tls *libc.TLS, pBuilder uintptr, pIndex uintptr, if pExpr == uintptr(0) { goto _2 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { + if (int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) || int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_COLUMN)) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) < 0 { return int32(1) } @@ -139916,7 +141111,7 @@ func _wherePartIdxExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, pPart uintpt if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) != int32(TK_COLUMN) { return } - if !(_sqlite3ExprIsConstant(tls, pRight) != 0) { + if !(_sqlite3ExprIsConstant(tls, uintptr(0), pRight) != 0) { return } if !(_sqlite3IsBinary(tls, _sqlite3ExprCompareCollSeq(tls, pParse, pPart)) != 0) { @@ -140245,7 +141440,7 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in ** unique index is used (making the index functionally non-unique) ** then the sqlite_stat1 data becomes important for scoring the ** plan */ - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) } _sqlite3Stat4ProbeFree(tls, (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec) (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = 0 @@ -140273,6 +141468,31 @@ func _isLimitTerm(tls *libc.TLS, pTerm uintptr) (r int32) { return libc.BoolInt32(int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) >= int32(SQLITE_INDEX_CONSTRAINT_LIMIT) && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) <= int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } +// C documentation +// +// /* +// ** Return true if the first nCons constraints in the pUsage array are +// ** marked as in-use (have argvIndex>0). False otherwise. +// */ +func _allConstraintsUsed(tls *libc.TLS, aUsage uintptr, nCons int32) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < nCons) { + break + } + if (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer(aUsage + uintptr(ii)*8))).FargvIndex <= 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + // C documentation // // /* @@ -140367,7 +141587,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if v3 >= 0 { j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).FiTermOffset if iTerm >= nConstraint || j < 0 || j >= (*TWhereClause)(unsafe.Pointer(pWC)).FnTerm || *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(iTerm)*8)) != uintptr(0) || int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22463, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22608, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } pTerm1 = (*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(j)*56 @@ -140412,12 +141632,16 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, *(*int32)(unsafe.Pointer(pbIn)) = int32(1) } } - if _isLimitTerm(tls, pTerm1) != 0 && *(*int32)(unsafe.Pointer(pbIn)) != 0 { + /* Unless pbRetryLimit is non-NULL, there should be no LIMIT/OFFSET + ** terms. And if there are any, they should follow all other terms. */ + if _isLimitTerm(tls, pTerm1) != 0 && (*(*int32)(unsafe.Pointer(pbIn)) != 0 || !(_allConstraintsUsed(tls, pUsage, i) != 0)) { /* If there is an IN(...) term handled as an == (separate call to ** xFilter for each value on the RHS of the IN) and a LIMIT or - ** OFFSET term handled as well, the plan is unusable. Set output - ** variable *pbRetryLimit to true to tell the caller to retry with - ** LIMIT and OFFSET disabled. */ + ** OFFSET term handled as well, the plan is unusable. Similarly, + ** if there is a LIMIT/OFFSET and there are other unused terms, + ** the plan cannot be used. In these cases set variable *pbRetryLimit + ** to true to tell the caller to retry with LIMIT and OFFSET + ** disabled. */ if (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FneedToFreeIdxStr != 0 { Xsqlite3_free(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = uintptr(0) @@ -140442,7 +141666,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(i)*8)) == uintptr(0) { /* The non-zero argvIdx values must be contiguous. Raise an ** error if they are not */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22463, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22608, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } goto _6 @@ -140594,7 +141818,7 @@ func Xsqlite3_vtab_rhs_value(tls *libc.TLS, pIdxInfo uintptr, iCons int32, ppVal pVal = uintptr(0) rc = SQLITE_OK if iCons < 0 || iCons >= (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint { - rc = _sqlite3MisuseError(tls, int32(165251)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(166453)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = (*TWhereClause)(unsafe.Pointer((*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC)).Fa + uintptr((*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset)*56 @@ -141032,7 +142256,7 @@ func _whereLoopAddAll(tls *libc.TLS, pBuilder uintptr) (r int32) { if rc != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { if rc == int32(SQLITE_DONE) { /* We hit the query planner search limit set by iPlanLimit */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22489, 0) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22634, 0) rc = SQLITE_OK } else { break @@ -141414,7 +142638,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, } p = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr mTerm = _sqlite3WhereExprUsage(tls, pWInfo+592, p) - if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, p) != 0) { + if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, uintptr(0), p) != 0) { goto _9 } if mTerm & ^orderDistinctMask == uint64(0) { @@ -141824,7 +143048,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) iLoop++ } if nFrom == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22524, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22669, 0) _sqlite3DbFreeNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pSpace) return int32(SQLITE_ERROR) } @@ -141873,9 +143097,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) if int32((*TWherePath)(unsafe.Pointer(pFrom)).FisOrdered) == (*TExprList)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_ORDERED) } - if (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy != 0 && int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) > (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr { - (*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = int8((*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr) - } + /* vvv--- See check-in [12ad822d9b827777] on 2023-03-16 ---vvv */ } else { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FrevMask = (*TWherePath)(unsafe.Pointer(pFrom)).FrevLoop if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) <= 0 { @@ -141912,6 +143134,97 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) return SQLITE_OK } +// C documentation +// +// /* +// ** This routine implements a heuristic designed to improve query planning. +// ** This routine is called in between the first and second call to +// ** wherePathSolver(). Hence the name "Interstage" "Heuristic". +// ** +// ** The first call to wherePathSolver() (hereafter just "solver()") computes +// ** the best path without regard to the order of the outputs. The second call +// ** to the solver() builds upon the first call to try to find an alternative +// ** path that satisfies the ORDER BY clause. +// ** +// ** This routine looks at the results of the first solver() run, and for +// ** every FROM clause term in the resulting query plan that uses an equality +// ** constraint against an index, disable other WhereLoops for that same +// ** FROM clause term that would try to do a full-table scan. This prevents +// ** an index search from being converted into a full-table scan in order to +// ** satisfy an ORDER BY clause, since even though we might get slightly better +// ** performance using the full-scan without sorting if the output size +// ** estimates are very precise, we might also get severe performance +// ** degradation using the full-scan if the output size estimate is too large. +// ** It is better to err on the side of caution. +// ** +// ** Except, if the first solver() call generated a full-table scan in an outer +// ** loop then stop this analysis at the first full-scan, since the second +// ** solver() run might try to swap that full-scan for another in order to +// ** get the output into the correct order. In other words, we allow a +// ** rewrite like this: +// ** +// ** First Solver() Second Solver() +// ** |-- SCAN t1 |-- SCAN t2 +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** The purpose of this routine is to disallow rewrites such as: +// ** +// ** First Solver() Second Solver() +// ** |-- SEARCH t1 |-- SCAN t2 <--- bad! +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** See test cases in test/whereN.test for the real-world query that +// ** originally provoked this heuristic. +// */ +func _whereInterstageHeuristic(tls *libc.TLS, pWInfo uintptr) { + var i int32 + var iTab Tu8 + var p, pLoop uintptr + _, _, _, _ = i, iTab, p, pLoop + i = 0 + for { + if !(i < int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)) { + break + } + p = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(i)*104))).FpWLoop + if p == uintptr(0) { + break + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { + goto _1 + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_NULL)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != uint32(0) { + iTab = (*TWhereLoop)(unsafe.Pointer(p)).FiTab + pLoop = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpLoops + for { + if !(pLoop != 0) { + break + } + if int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab) != int32(iTab) { + goto _2 + } + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_CONSTRAINT)|libc.Int32FromInt32(WHERE_AUTO_INDEX)) != uint32(0) { + /* Auto-index and index-constrained loops allowed to remain */ + goto _2 + } + (*TWhereLoop)(unsafe.Pointer(pLoop)).Fprereq = uint64(-libc.Int32FromInt32(1)) /* Prevent 2nd solver() from using this one */ + goto _2 + _2: + ; + pLoop = (*TWhereLoop)(unsafe.Pointer(pLoop)).FpNextLoop + } + } else { + break + } + goto _1 + _1: + ; + i++ + } +} + // C documentation // // /* @@ -142220,7 +143533,7 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasStat1) == uint32(0) { break } - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) if i >= int32(1) && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&reqFlags == reqFlags && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_INDEXED)) != uint32(0) { if int32(nSearch) > int32((*TTable)(unsafe.Pointer(pTab)).FnRowLogEst) { *(*Tu32)(unsafe.Pointer(pLoop + 48)) |= uint32(WHERE_BLOOMFILTER) @@ -142235,6 +143548,68 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { } } +// C documentation +// +// /* +// ** Expression Node callback for sqlite3ExprCanReturnSubtype(). +// ** +// ** Only a function call is able to return a subtype. So if the node +// ** is not a function call, return WRC_Prune immediately. +// ** +// ** A function call is able to return a subtype if it has the +// ** SQLITE_RESULT_SUBTYPE property. +// ** +// ** Assume that every function is able to pass-through a subtype from +// ** one of its argument (using sqlite3_result_value()). Most functions +// ** are not this way, but we don't have a mechanism to distinguish those +// ** that are from those that are not, so assume they all work this way. +// ** That means that if one of its arguments is another function and that +// ** other function is able to return a subtype, then this function is +// ** able to return a subtype. +// */ +func _exprNodeCanReturnSubtype(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef uintptr + var n, v1 int32 + _, _, _, _ = db, n, pDef, v1 + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_FUNCTION) { + return int32(WRC_Prune) + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { + v1 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr + } else { + v1 = 0 + } + n = v1 + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + return int32(WRC_Prune) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Return TRUE if expression pExpr is able to return a subtype. +// ** +// ** A TRUE return does not guarantee that a subtype will be returned. +// ** It only indicates that a subtype return is possible. False positives +// ** are acceptable as they only disable an optimization. False negatives, +// ** on the other hand, can lead to incorrect answers. +// */ +func _sqlite3ExprCanReturnSubtype(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeCanReturnSubtype) + _sqlite3WalkExpr(tls, bp, pExpr) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) +} + // C documentation // // /* @@ -142249,9 +143624,9 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { // ** references to the corresponding column of the index. // */ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur int32, pTabItem uintptr) { - var db, p, pArg, pDef, pExpr, pTab uintptr - var i, j, n, v2 int32 - _, _, _, _, _, _, _, _, _, _ = db, i, j, n, p, pArg, pDef, pExpr, pTab, v2 + var i, j int32 + var p, pArg, pExpr, pTab uintptr + _, _, _, _, _, _ = i, j, p, pArg, pExpr, pTab pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable i = 0 for { @@ -142268,21 +143643,14 @@ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur i goto _1 } } - if _sqlite3ExprIsConstant(tls, pExpr) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) != 0 { goto _1 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) { - db = (*TParse)(unsafe.Pointer(pParse)).Fdb - if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { - v2 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr - } else { - v2 = 0 - } - n = v2 - pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) - if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { - goto _1 - } + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) && _sqlite3ExprCanReturnSubtype(tls, pParse, pExpr) != 0 { + /* Functions that might set a subtype should not be replaced by the + ** value taken from an expression index since the index omits the + ** subtype. https://sqlite.org/forum/forumpost/68d284c86b082c3e */ + goto _1 } p = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(32)) if p == uintptr(0) { @@ -142454,7 +143822,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** bits in a Bitmask */ if (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc > int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22542, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22687, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) return uintptr(0) } /* This function normally generates a nested loop for all tables in @@ -142526,7 +143894,9 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if int32(wctrlFlags)&int32(WHERE_WANT_DISTINCT) != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_DistinctOpt)) == uint32(0) { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_UNIQUE) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22570, 0) + if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FselFlags&uint32(SF_MultiValue) == uint32(0) { + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22715, 0) + } } else { /* Assign a bit from the bitmask to every term in the FROM clause. ** @@ -142658,6 +144028,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy != 0 { + _whereInterstageHeuristic(tls, pWInfo) _wherePathSolver(tls, pWInfo, int16(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut)+int32(1))) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto whereBeginError @@ -142942,6 +144313,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiEndWhere = _sqlite3VdbeCurrentAddr(tls, v) return pWInfo /* Jump here if malloc fails */ + goto whereBeginError whereBeginError: ; if pWInfo != 0 { @@ -142965,10 +144337,10 @@ whereBeginError: // ** sqlite3WhereBegin() for additional information. // */ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { - var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, r1, ws, x, v4, v7 int32 - var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr + var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, r1, ws, x, v4, v7 int32 + var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pTabList = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList @@ -143109,6 +144481,12 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { ws = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags) addr = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfPos), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin) if ws&int32(WHERE_IDX_ONLY) == 0 { + pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 + if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x20>>5)) != 0 { + n1 = (*TSrcItem)(unsafe.Pointer(pSrc)).FregResult + m = int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FnCol) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, n1, n1+m-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur) } if ws&int32(WHERE_INDEXED) != 0 || ws&int32(WHERE_MULTI_OR) != 0 && *(*uintptr)(unsafe.Pointer(&(*TWhereLevel)(unsafe.Pointer(pLevel)).Fu)) != 0 { @@ -143522,9 +144900,10 @@ func _nth_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) _ = nArg _ = apArg return + goto error_out error_out: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22588, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22733, -int32(1)) } func _nth_valueFinalizeFunc(tls *libc.TLS, pCtx uintptr) { @@ -143706,7 +145085,7 @@ func _ntileStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { if (*TNtileCtx)(unsafe.Pointer(p)).FnTotal == 0 { (*TNtileCtx)(unsafe.Pointer(p)).FnParam = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apArg))) if (*TNtileCtx)(unsafe.Pointer(p)).FnParam <= 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22644, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22789, -int32(1)) } } (*TNtileCtx)(unsafe.Pointer(p)).FnTotal++ @@ -144032,7 +145411,7 @@ func _windowFind(tls *libc.TLS, pParse uintptr, pList uintptr, zName uintptr) (r p = (*TWindow)(unsafe.Pointer(p)).FpNextWin } if p == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22689, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22834, libc.VaList(bp+8, zName)) } return p } @@ -144083,12 +145462,12 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin _sqlite3WindowChain(tls, pParse, pWin, pList) } if int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) == int32(TK_RANGE) && ((*TWindow)(unsafe.Pointer(pWin)).FpStart != 0 || (*TWindow)(unsafe.Pointer(pWin)).FpEnd != 0) && ((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy == uintptr(0) || (*TExprList)(unsafe.Pointer((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy)).FnExpr != int32(1)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22708, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22853, 0) } else { if (*TFuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TWindow)(unsafe.Pointer(pWin)).FpFilter != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22779, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22924, 0) } else { aUp = [8]struct { FzFunc uintptr @@ -144161,7 +145540,7 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin (*TWindow)(unsafe.Pointer(pWin)).FeEnd = uint8(aUp[i].FeEnd) (*TWindow)(unsafe.Pointer(pWin)).FeExclude = uint8(0) if int32((*TWindow)(unsafe.Pointer(pWin)).FeStart) == int32(TK_FOLLOWING) { - (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8162) + (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8287) } break } @@ -144443,7 +145822,7 @@ func _disallowAggregatesInOrderByCb(tls *libc.TLS, pWalker uintptr, pExpr uintpt bp := tls.Alloc(16) defer tls.Free(16) if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_FUNCTION) && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22842, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) + _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22987, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) } return WRC_Continue } @@ -144584,7 +145963,7 @@ func _sqlite3WindowRewrite(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { ** keep everything legal in this case. */ if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1754)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1814)) } pSub = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(bp)), pSrc, pWhere, pGroupBy, pHaving, pSort, uint32(0), uintptr(0)) (*TSelect)(unsafe.Pointer(p)).FpSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), uintptr(0), uintptr(0)) @@ -144688,7 +146067,7 @@ func _sqlite3WindowListDelete(tls *libc.TLS, db uintptr, p uintptr) { // ** variable values in the expression tree. // */ func _sqlite3WindowOffsetExpr(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r uintptr) { - if 0 == _sqlite3ExprIsConstant(tls, pExpr) { + if 0 == _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) { if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameExprUnmap(tls, pParse, pExpr) } @@ -144729,7 +146108,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 ** frame boundary. */ if eStart == int32(TK_CURRENT) && eEnd == int32(TK_PRECEDING) || eStart == int32(TK_FOLLOWING) && (eEnd == int32(TK_PRECEDING) || eEnd == int32(TK_CURRENT)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22868, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23013, 0) goto windowAllocErr } pWin = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) @@ -144747,6 +146126,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 (*TWindow)(unsafe.Pointer(pWin)).FpEnd = _sqlite3WindowOffsetExpr(tls, pParse, pEnd) (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3WindowOffsetExpr(tls, pParse, pStart) return pWin + goto windowAllocErr windowAllocErr: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pEnd) @@ -144796,18 +146176,18 @@ func _sqlite3WindowChain(tls *libc.TLS, pParse uintptr, pWin uintptr, pList uint zErr = uintptr(0) /* Check for errors */ if (*TWindow)(unsafe.Pointer(pWin)).FpPartition != 0 { - zErr = __ccgo_ts + 22900 + zErr = __ccgo_ts + 23045 } else { if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 && (*TWindow)(unsafe.Pointer(pWin)).FpOrderBy != 0 { - zErr = __ccgo_ts + 22917 + zErr = __ccgo_ts + 23062 } else { if int32((*TWindow)(unsafe.Pointer(pExist)).FbImplicitFrame) == 0 { - zErr = __ccgo_ts + 22933 + zErr = __ccgo_ts + 23078 } } } if zErr != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22953, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23098, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) } else { (*TWindow)(unsafe.Pointer(pWin)).FpPartition = _sqlite3ExprListDup(tls, db, (*TWindow)(unsafe.Pointer(pExist)).FpPartition, 0) if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 { @@ -144831,7 +146211,7 @@ func _sqlite3WindowAttach(tls *libc.TLS, pParse uintptr, p uintptr, pWin uintptr *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(libc.Int32FromInt32(EP_WinFunc) | libc.Int32FromInt32(EP_FullSize)) (*TWindow)(unsafe.Pointer(pWin)).FpOwner = p if (*TExpr)(unsafe.Pointer(p)).Fflags&uint32(EP_Distinct) != 0 && int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) != int32(TK_FILTER) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22986, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23131, 0) } } else { _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pWin) @@ -145030,7 +146410,7 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regZero) if eCond >= int32(WINDOW_STARTING_NUM) { regString = _sqlite3GetTempReg(tls, pParse) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1680, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1694, -int32(1)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, _sqlite3VdbeCurrentAddr(tls, v)+int32(2), reg) _sqlite3VdbeChangeP5(tls, v, uint16(libc.Int32FromInt32(SQLITE_AFF_NUMERIC)|libc.Int32FromInt32(SQLITE_JUMPIFNULL))) } else { @@ -145049,11 +146429,11 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { } var _azErr = [5]uintptr{ - 0: __ccgo_ts + 23033, - 1: __ccgo_ts + 23086, - 2: __ccgo_ts + 22588, - 3: __ccgo_ts + 23137, - 4: __ccgo_ts + 23189, + 0: __ccgo_ts + 23178, + 1: __ccgo_ts + 23231, + 2: __ccgo_ts + 22733, + 3: __ccgo_ts + 23282, + 4: __ccgo_ts + 23334, } var _aOp1 = [5]int32{ @@ -145805,7 +147185,7 @@ func _windowCodeRangeTest(tls *libc.TLS, p uintptr, op int32, csr1 int32, regVal ** the add/subtract is skipped for these, as required. If reg1 is a NULL, ** then the arithmetic is performed, but since adding or subtracting from ** NULL is always NULL anyway, this case is handled as required too. */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1680, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1694, -int32(1)) addrGe = _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, 0, reg1) if op == int32(OP_Ge) && arith == int32(OP_Add) || op == int32(OP_Le) && arith == int32(OP_Subtract) { _sqlite3VdbeAddOp3(tls, v, op, reg2, lbl, reg1) @@ -146833,11 +148213,11 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { cnt++ if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != 0 || (*TSelect)(unsafe.Pointer(pLoop)).FpLimit != 0 { if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != uintptr(0) { - v1 = __ccgo_ts + 23239 + v1 = __ccgo_ts + 23384 } else { - v1 = __ccgo_ts + 23248 + v1 = __ccgo_ts + 23393 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23254, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23399, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) break } } @@ -146846,7 +148226,7 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { mxSelect = v2 } if v3 && v2 > 0 && cnt > mxSelect { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23296, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23441, 0) } } } @@ -146866,6 +148246,23 @@ func _attachWithToSelect(tls *libc.TLS, pParse uintptr, pSelect uintptr, pWith u return pSelect } +// C documentation +// +// /* Memory allocator for parser stack resizing. This is a thin wrapper around +// ** sqlite3_realloc() that includes a call to sqlite3FaultSim() to facilitate +// ** testing. +// */ +func _parserStackRealloc(tls *libc.TLS, pOld uintptr, newSize Tsqlite3_uint64) (r uintptr) { + var v1 uintptr + _ = v1 + if _sqlite3FaultSim(tls, int32(700)) != 0 { + v1 = uintptr(0) + } else { + v1 = Xsqlite3_realloc(tls, pOld, int32(newSize)) + } + return v1 +} + // C documentation // // /* Construct a new Expr object from a single token */ @@ -146935,7 +148332,7 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId _ = p p = _sqlite3ExprListAppend(tls, pParse, pPrior, uintptr(0)) if (hasCollate != 0 || sortOrder != -int32(1)) && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23330, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23475, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) } _sqlite3ExprListSetName(tls, pParse, p, pIdToken, int32(1)) return p @@ -146985,6 +148382,9 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser // ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser // ** sqlite3ParserCTX_* As sqlite3ParserARG_ except for %extra_context +// ** YYREALLOC Name of the realloc() function to use +// ** YYFREE Name of the free() function to use +// ** YYDYNSTACK True if stack space should be extended on heap // ** YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** YYNSTATE the combined number of states. @@ -146998,31 +148398,33 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** YY_NO_ACTION The yy_action[] code for no-op // ** YY_MIN_REDUCE Minimum value for reduce actions // ** YY_MAX_REDUCE Maximum value for reduce actions +// ** YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type TYYMINORTYPE = struct { Fyy0 [0]TToken - Fyy33 [0]uintptr - Fyy41 [0]uintptr - Fyy47 [0]uintptr - Fyy131 [0]uintptr - Fyy180 [0]TTrigEvent - Fyy231 [0]struct { + Fyy14 [0]uintptr + Fyy59 [0]uintptr + Fyy67 [0]uintptr + Fyy122 [0]uintptr + Fyy132 [0]uintptr + Fyy144 [0]int32 + Fyy168 [0]uintptr + Fyy203 [0]uintptr + Fyy211 [0]uintptr + Fyy269 [0]TOnOrUsing + Fyy286 [0]TTrigEvent + Fyy383 [0]struct { Fvalue int32 Fmask int32 } - Fyy254 [0]uintptr - Fyy285 [0]Tu32 - Fyy322 [0]uintptr - Fyy385 [0]uintptr - Fyy394 [0]int32 - Fyy444 [0]uintptr - Fyy516 [0]Tu8 - Fyy521 [0]uintptr - Fyy522 [0]uintptr - Fyy528 [0]uintptr - Fyy561 [0]TOnOrUsing - Fyy595 [0]TFrameBound + Fyy391 [0]Tu32 + Fyy427 [0]uintptr + Fyy454 [0]uintptr + Fyy462 [0]Tu8 + Fyy509 [0]TFrameBound + Fyy555 [0]uintptr Fyyinit int32 F__ccgo_pad20 [12]byte } @@ -147040,6 +148442,13 @@ type YYMINORTYPE = TYYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -147092,2152 +148501,2194 @@ type YYMINORTYPE = TYYMINORTYPE // ** yy_default[] Default action for each state. // ** // *********** Begin parsing tables **********************************************/ -var _yy_action = [2100]uint16{ - 0: uint16(572), - 1: uint16(210), - 2: uint16(572), - 3: uint16(119), - 4: uint16(116), - 5: uint16(231), - 6: uint16(572), - 7: uint16(119), - 8: uint16(116), - 9: uint16(231), - 10: uint16(572), - 11: uint16(1317), - 12: uint16(379), - 13: uint16(1296), - 14: uint16(410), - 15: uint16(566), - 16: uint16(566), - 17: uint16(566), - 18: uint16(572), - 19: uint16(411), - 20: uint16(380), - 21: uint16(1317), - 22: uint16(1279), - 23: uint16(42), - 24: uint16(42), - 25: uint16(42), - 26: uint16(42), - 27: uint16(210), - 28: uint16(1529), - 29: uint16(72), - 30: uint16(72), - 31: uint16(974), - 32: uint16(421), - 33: uint16(42), - 34: uint16(42), - 35: uint16(495), - 36: uint16(305), - 37: uint16(281), - 38: uint16(305), - 39: uint16(975), - 40: uint16(399), - 41: uint16(72), - 42: uint16(72), - 43: uint16(126), - 44: uint16(127), - 45: uint16(81), - 46: uint16(1217), - 47: uint16(1217), - 48: uint16(1054), - 49: uint16(1057), - 50: uint16(1044), - 51: uint16(1044), - 52: uint16(124), - 53: uint16(124), - 54: uint16(125), - 55: uint16(125), - 56: uint16(125), - 57: uint16(125), - 58: uint16(480), - 59: uint16(411), - 60: uint16(1244), - 61: uint16(1), - 62: uint16(1), - 63: uint16(578), - 64: uint16(2), - 65: uint16(1248), - 66: uint16(554), - 67: uint16(119), - 68: uint16(116), - 69: uint16(231), - 70: uint16(319), - 71: uint16(484), - 72: uint16(147), - 73: uint16(484), - 74: uint16(528), - 75: uint16(119), - 76: uint16(116), - 77: uint16(231), - 78: uint16(533), - 79: uint16(1330), - 80: uint16(419), - 81: uint16(527), - 82: uint16(143), - 83: uint16(126), - 84: uint16(127), - 85: uint16(81), - 86: uint16(1217), - 87: uint16(1217), - 88: uint16(1054), - 89: uint16(1057), - 90: uint16(1044), - 91: uint16(1044), - 92: uint16(124), - 93: uint16(124), - 94: uint16(125), - 95: uint16(125), - 96: uint16(125), - 97: uint16(125), - 98: uint16(119), - 99: uint16(116), - 100: uint16(231), - 101: uint16(329), - 102: uint16(123), - 103: uint16(123), - 104: uint16(123), - 105: uint16(123), - 106: uint16(122), - 107: uint16(122), - 108: uint16(121), - 109: uint16(121), - 110: uint16(121), - 111: uint16(120), - 112: uint16(117), - 113: uint16(448), - 114: uint16(286), - 115: uint16(286), - 116: uint16(286), - 117: uint16(286), - 118: uint16(446), - 119: uint16(446), - 120: uint16(446), - 121: uint16(1568), - 122: uint16(378), - 123: uint16(1570), - 124: uint16(1193), - 125: uint16(377), - 126: uint16(1164), - 127: uint16(569), - 128: uint16(1164), - 129: uint16(569), - 130: uint16(411), - 131: uint16(1568), - 132: uint16(541), - 133: uint16(261), - 134: uint16(228), - 135: uint16(448), - 136: uint16(102), - 137: uint16(146), - 138: uint16(453), - 139: uint16(318), - 140: uint16(563), - 141: uint16(242), - 142: uint16(123), - 143: uint16(123), - 144: uint16(123), - 145: uint16(123), - 146: uint16(122), - 147: uint16(122), - 148: uint16(121), - 149: uint16(121), - 150: uint16(121), - 151: uint16(120), - 152: uint16(117), - 153: uint16(448), - 154: uint16(126), - 155: uint16(127), - 156: uint16(81), - 157: uint16(1217), - 158: uint16(1217), - 159: uint16(1054), - 160: uint16(1057), - 161: uint16(1044), - 162: uint16(1044), - 163: uint16(124), - 164: uint16(124), - 165: uint16(125), - 166: uint16(125), - 167: uint16(125), - 168: uint16(125), - 169: uint16(143), - 170: uint16(296), - 171: uint16(1193), - 172: uint16(341), - 173: uint16(452), - 174: uint16(121), - 175: uint16(121), - 176: uint16(121), - 177: uint16(120), - 178: uint16(117), - 179: uint16(448), - 180: uint16(128), - 181: uint16(1193), - 182: uint16(1194), - 183: uint16(1193), - 184: uint16(149), - 185: uint16(445), - 186: uint16(444), - 187: uint16(572), - 188: uint16(120), - 189: uint16(117), - 190: uint16(448), - 191: uint16(125), - 192: uint16(125), - 193: uint16(125), - 194: uint16(125), - 195: uint16(118), - 196: uint16(123), - 197: uint16(123), - 198: uint16(123), - 199: uint16(123), - 200: uint16(122), - 201: uint16(122), - 202: uint16(121), - 203: uint16(121), - 204: uint16(121), - 205: uint16(120), - 206: uint16(117), - 207: uint16(448), - 208: uint16(458), - 209: uint16(114), - 210: uint16(13), - 211: uint16(13), - 212: uint16(550), - 213: uint16(123), - 214: uint16(123), - 215: uint16(123), - 216: uint16(123), - 217: uint16(122), - 218: uint16(122), - 219: uint16(121), - 220: uint16(121), - 221: uint16(121), - 222: uint16(120), - 223: uint16(117), - 224: uint16(448), - 225: uint16(424), - 226: uint16(318), - 227: uint16(563), - 228: uint16(1193), - 229: uint16(1194), - 230: uint16(1193), - 231: uint16(150), - 232: uint16(1225), - 233: uint16(411), - 234: uint16(1225), - 235: uint16(125), - 236: uint16(125), - 237: uint16(125), - 238: uint16(125), - 239: uint16(123), - 240: uint16(123), - 241: uint16(123), - 242: uint16(123), - 243: uint16(122), - 244: uint16(122), - 245: uint16(121), - 246: uint16(121), - 247: uint16(121), - 248: uint16(120), - 249: uint16(117), - 250: uint16(448), - 251: uint16(469), - 252: uint16(344), - 253: uint16(1041), - 254: uint16(1041), - 255: uint16(1055), - 256: uint16(1058), - 257: uint16(126), - 258: uint16(127), - 259: uint16(81), - 260: uint16(1217), - 261: uint16(1217), - 262: uint16(1054), - 263: uint16(1057), - 264: uint16(1044), - 265: uint16(1044), - 266: uint16(124), - 267: uint16(124), - 268: uint16(125), - 269: uint16(125), - 270: uint16(125), - 271: uint16(125), - 272: uint16(1282), - 273: uint16(526), - 274: uint16(224), - 275: uint16(1193), - 276: uint16(572), - 277: uint16(411), - 278: uint16(226), - 279: uint16(519), - 280: uint16(177), - 281: uint16(83), - 282: uint16(84), - 283: uint16(123), - 284: uint16(123), - 285: uint16(123), - 286: uint16(123), - 287: uint16(122), - 288: uint16(122), - 289: uint16(121), - 290: uint16(121), - 291: uint16(121), - 292: uint16(120), - 293: uint16(117), - 294: uint16(448), - 295: uint16(1010), - 296: uint16(16), - 297: uint16(16), - 298: uint16(1193), - 299: uint16(134), - 300: uint16(134), - 301: uint16(126), - 302: uint16(127), - 303: uint16(81), - 304: uint16(1217), - 305: uint16(1217), - 306: uint16(1054), - 307: uint16(1057), - 308: uint16(1044), - 309: uint16(1044), - 310: uint16(124), - 311: uint16(124), - 312: uint16(125), - 313: uint16(125), - 314: uint16(125), - 315: uint16(125), - 316: uint16(123), - 317: uint16(123), - 318: uint16(123), - 319: uint16(123), - 320: uint16(122), - 321: uint16(122), - 322: uint16(121), - 323: uint16(121), - 324: uint16(121), - 325: uint16(120), - 326: uint16(117), - 327: uint16(448), - 328: uint16(1045), - 329: uint16(550), - 330: uint16(1193), - 331: uint16(375), - 332: uint16(1193), - 333: uint16(1194), - 334: uint16(1193), - 335: uint16(254), - 336: uint16(1438), - 337: uint16(401), - 338: uint16(508), - 339: uint16(505), - 340: uint16(504), - 341: uint16(112), - 342: uint16(564), - 343: uint16(570), +var _yy_action = [2142]uint16{ + 0: uint16(576), + 1: uint16(128), + 2: uint16(125), + 3: uint16(232), + 4: uint16(1622), + 5: uint16(549), + 6: uint16(576), + 7: uint16(1290), + 8: uint16(1281), + 9: uint16(576), + 10: uint16(328), + 11: uint16(576), + 12: uint16(1300), + 13: uint16(212), + 14: uint16(576), + 15: uint16(128), + 16: uint16(125), + 17: uint16(232), + 18: uint16(578), + 19: uint16(412), + 20: uint16(578), + 21: uint16(391), + 22: uint16(1542), + 23: uint16(51), + 24: uint16(51), + 25: uint16(523), + 26: uint16(405), + 27: uint16(1293), + 28: uint16(529), + 29: uint16(51), + 30: uint16(51), + 31: uint16(983), + 32: uint16(51), + 33: uint16(51), + 34: uint16(81), + 35: uint16(81), + 36: uint16(1107), + 37: uint16(61), + 38: uint16(61), + 39: uint16(984), + 40: uint16(1107), + 41: uint16(1292), + 42: uint16(380), + 43: uint16(135), + 44: uint16(136), + 45: uint16(90), + 46: uint16(1228), + 47: uint16(1228), + 48: uint16(1063), + 49: uint16(1066), + 50: uint16(1053), + 51: uint16(1053), + 52: uint16(133), + 53: uint16(133), + 54: uint16(134), + 55: uint16(134), + 56: uint16(134), + 57: uint16(134), + 58: uint16(1577), + 59: uint16(412), + 60: uint16(287), + 61: uint16(287), + 62: uint16(7), + 63: uint16(287), + 64: uint16(287), + 65: uint16(422), + 66: uint16(1050), + 67: uint16(1050), + 68: uint16(1064), + 69: uint16(1067), + 70: uint16(289), + 71: uint16(556), + 72: uint16(492), + 73: uint16(573), + 74: uint16(524), + 75: uint16(561), + 76: uint16(573), + 77: uint16(497), + 78: uint16(561), + 79: uint16(482), + 80: uint16(530), + 81: uint16(262), + 82: uint16(229), + 83: uint16(135), + 84: uint16(136), + 85: uint16(90), + 86: uint16(1228), + 87: uint16(1228), + 88: uint16(1063), + 89: uint16(1066), + 90: uint16(1053), + 91: uint16(1053), + 92: uint16(133), + 93: uint16(133), + 94: uint16(134), + 95: uint16(134), + 96: uint16(134), + 97: uint16(134), + 98: uint16(128), + 99: uint16(125), + 100: uint16(232), + 101: uint16(1506), + 102: uint16(132), + 103: uint16(132), + 104: uint16(132), + 105: uint16(132), + 106: uint16(131), + 107: uint16(131), + 108: uint16(130), + 109: uint16(130), + 110: uint16(130), + 111: uint16(129), + 112: uint16(126), + 113: uint16(450), + 114: uint16(1204), + 115: uint16(1255), + 116: uint16(1), + 117: uint16(1), + 118: uint16(582), + 119: uint16(2), + 120: uint16(1259), + 121: uint16(1571), + 122: uint16(420), + 123: uint16(1582), + 124: uint16(379), + 125: uint16(320), + 126: uint16(1174), + 127: uint16(153), + 128: uint16(1174), + 129: uint16(1584), + 130: uint16(412), + 131: uint16(378), + 132: uint16(1582), + 133: uint16(543), + 134: uint16(1341), + 135: uint16(330), + 136: uint16(111), + 137: uint16(570), + 138: uint16(570), + 139: uint16(570), + 140: uint16(293), + 141: uint16(1054), + 142: uint16(132), + 143: uint16(132), + 144: uint16(132), + 145: uint16(132), + 146: uint16(131), + 147: uint16(131), + 148: uint16(130), + 149: uint16(130), + 150: uint16(130), + 151: uint16(129), + 152: uint16(126), + 153: uint16(450), + 154: uint16(135), + 155: uint16(136), + 156: uint16(90), + 157: uint16(1228), + 158: uint16(1228), + 159: uint16(1063), + 160: uint16(1066), + 161: uint16(1053), + 162: uint16(1053), + 163: uint16(133), + 164: uint16(133), + 165: uint16(134), + 166: uint16(134), + 167: uint16(134), + 168: uint16(134), + 169: uint16(287), + 170: uint16(287), + 171: uint16(1204), + 172: uint16(1205), + 173: uint16(1204), + 174: uint16(255), + 175: uint16(287), + 176: uint16(287), + 177: uint16(510), + 178: uint16(507), + 179: uint16(506), + 180: uint16(137), + 181: uint16(455), + 182: uint16(573), + 183: uint16(212), + 184: uint16(561), + 185: uint16(447), + 186: uint16(446), + 187: uint16(505), + 188: uint16(573), + 189: uint16(1616), + 190: uint16(561), + 191: uint16(134), + 192: uint16(134), + 193: uint16(134), + 194: uint16(134), + 195: uint16(127), + 196: uint16(400), + 197: uint16(243), + 198: uint16(132), + 199: uint16(132), + 200: uint16(132), + 201: uint16(132), + 202: uint16(131), + 203: uint16(131), + 204: uint16(130), + 205: uint16(130), + 206: uint16(130), + 207: uint16(129), + 208: uint16(126), + 209: uint16(450), + 210: uint16(282), + 211: uint16(471), + 212: uint16(345), + 213: uint16(132), + 214: uint16(132), + 215: uint16(132), + 216: uint16(132), + 217: uint16(131), + 218: uint16(131), + 219: uint16(130), + 220: uint16(130), + 221: uint16(130), + 222: uint16(129), + 223: uint16(126), + 224: uint16(450), + 225: uint16(574), + 226: uint16(155), + 227: uint16(936), + 228: uint16(936), + 229: uint16(454), + 230: uint16(227), + 231: uint16(521), + 232: uint16(1236), + 233: uint16(412), + 234: uint16(1236), + 235: uint16(134), + 236: uint16(134), + 237: uint16(134), + 238: uint16(134), + 239: uint16(132), + 240: uint16(132), + 241: uint16(132), + 242: uint16(132), + 243: uint16(131), + 244: uint16(131), + 245: uint16(130), + 246: uint16(130), + 247: uint16(130), + 248: uint16(129), + 249: uint16(126), + 250: uint16(450), + 251: uint16(130), + 252: uint16(130), + 253: uint16(130), + 254: uint16(129), + 255: uint16(126), + 256: uint16(450), + 257: uint16(135), + 258: uint16(136), + 259: uint16(90), + 260: uint16(1228), + 261: uint16(1228), + 262: uint16(1063), + 263: uint16(1066), + 264: uint16(1053), + 265: uint16(1053), + 266: uint16(133), + 267: uint16(133), + 268: uint16(134), + 269: uint16(134), + 270: uint16(134), + 271: uint16(134), + 272: uint16(128), + 273: uint16(125), + 274: uint16(232), + 275: uint16(450), + 276: uint16(576), + 277: uint16(412), + 278: uint16(397), + 279: uint16(1249), + 280: uint16(180), + 281: uint16(92), + 282: uint16(93), + 283: uint16(132), + 284: uint16(132), + 285: uint16(132), + 286: uint16(132), + 287: uint16(131), + 288: uint16(131), + 289: uint16(130), + 290: uint16(130), + 291: uint16(130), + 292: uint16(129), + 293: uint16(126), + 294: uint16(450), + 295: uint16(381), + 296: uint16(387), + 297: uint16(1204), + 298: uint16(383), + 299: uint16(81), + 300: uint16(81), + 301: uint16(135), + 302: uint16(136), + 303: uint16(90), + 304: uint16(1228), + 305: uint16(1228), + 306: uint16(1063), + 307: uint16(1066), + 308: uint16(1053), + 309: uint16(1053), + 310: uint16(133), + 311: uint16(133), + 312: uint16(134), + 313: uint16(134), + 314: uint16(134), + 315: uint16(134), + 316: uint16(132), + 317: uint16(132), + 318: uint16(132), + 319: uint16(132), + 320: uint16(131), + 321: uint16(131), + 322: uint16(130), + 323: uint16(130), + 324: uint16(130), + 325: uint16(129), + 326: uint16(126), + 327: uint16(450), + 328: uint16(131), + 329: uint16(131), + 330: uint16(130), + 331: uint16(130), + 332: uint16(130), + 333: uint16(129), + 334: uint16(126), + 335: uint16(450), + 336: uint16(556), + 337: uint16(1204), + 338: uint16(302), + 339: uint16(319), + 340: uint16(567), + 341: uint16(121), + 342: uint16(568), + 343: uint16(480), 344: uint16(4), - 345: uint16(929), - 346: uint16(929), - 347: uint16(435), - 348: uint16(503), - 349: uint16(342), - 350: uint16(464), - 351: uint16(330), - 352: uint16(362), - 353: uint16(396), - 354: uint16(1238), - 355: uint16(1193), - 356: uint16(1194), - 357: uint16(1193), - 358: uint16(567), - 359: uint16(572), - 360: uint16(123), - 361: uint16(123), - 362: uint16(123), - 363: uint16(123), - 364: uint16(122), - 365: uint16(122), - 366: uint16(121), - 367: uint16(121), - 368: uint16(121), - 369: uint16(120), - 370: uint16(117), - 371: uint16(448), - 372: uint16(286), - 373: uint16(286), - 374: uint16(371), - 375: uint16(1581), - 376: uint16(1607), - 377: uint16(445), - 378: uint16(444), - 379: uint16(155), - 380: uint16(411), - 381: uint16(449), - 382: uint16(72), - 383: uint16(72), - 384: uint16(1289), - 385: uint16(569), - 386: uint16(1222), - 387: uint16(1193), - 388: uint16(1194), - 389: uint16(1193), - 390: uint16(86), - 391: uint16(1224), - 392: uint16(273), - 393: uint16(561), - 394: uint16(547), - 395: uint16(520), - 396: uint16(520), - 397: uint16(572), - 398: uint16(99), - 399: uint16(1223), - 400: uint16(6), - 401: uint16(1281), - 402: uint16(476), - 403: uint16(143), - 404: uint16(126), - 405: uint16(127), - 406: uint16(81), - 407: uint16(1217), - 408: uint16(1217), - 409: uint16(1054), - 410: uint16(1057), - 411: uint16(1044), - 412: uint16(1044), - 413: uint16(124), - 414: uint16(124), - 415: uint16(125), - 416: uint16(125), - 417: uint16(125), - 418: uint16(125), - 419: uint16(554), - 420: uint16(13), - 421: uint16(13), - 422: uint16(1031), - 423: uint16(511), - 424: uint16(1225), - 425: uint16(1193), - 426: uint16(1225), - 427: uint16(553), - 428: uint16(110), - 429: uint16(110), - 430: uint16(224), - 431: uint16(572), - 432: uint16(1239), - 433: uint16(177), - 434: uint16(572), - 435: uint16(429), - 436: uint16(111), - 437: uint16(199), - 438: uint16(449), - 439: uint16(573), - 440: uint16(449), - 441: uint16(432), - 442: uint16(1555), - 443: uint16(1019), - 444: uint16(327), - 445: uint16(555), - 446: uint16(1193), - 447: uint16(272), - 448: uint16(289), - 449: uint16(370), - 450: uint16(514), - 451: uint16(365), - 452: uint16(513), - 453: uint16(259), - 454: uint16(72), - 455: uint16(72), - 456: uint16(547), - 457: uint16(72), - 458: uint16(72), - 459: uint16(361), - 460: uint16(318), - 461: uint16(563), - 462: uint16(1613), - 463: uint16(123), - 464: uint16(123), - 465: uint16(123), - 466: uint16(123), - 467: uint16(122), - 468: uint16(122), - 469: uint16(121), - 470: uint16(121), - 471: uint16(121), - 472: uint16(120), - 473: uint16(117), - 474: uint16(448), - 475: uint16(1019), - 476: uint16(1019), - 477: uint16(1021), - 478: uint16(1022), - 479: uint16(28), - 480: uint16(286), - 481: uint16(286), - 482: uint16(1193), - 483: uint16(1194), - 484: uint16(1193), - 485: uint16(1159), - 486: uint16(572), - 487: uint16(1612), - 488: uint16(411), - 489: uint16(904), - 490: uint16(192), - 491: uint16(554), - 492: uint16(358), - 493: uint16(569), - 494: uint16(554), - 495: uint16(940), - 496: uint16(537), - 497: uint16(521), - 498: uint16(1159), - 499: uint16(437), - 500: uint16(415), - 501: uint16(1159), - 502: uint16(556), - 503: uint16(1193), - 504: uint16(1194), - 505: uint16(1193), - 506: uint16(572), - 507: uint16(548), - 508: uint16(548), - 509: uint16(52), - 510: uint16(52), - 511: uint16(216), - 512: uint16(126), - 513: uint16(127), - 514: uint16(81), - 515: uint16(1217), - 516: uint16(1217), - 517: uint16(1054), - 518: uint16(1057), - 519: uint16(1044), - 520: uint16(1044), - 521: uint16(124), - 522: uint16(124), - 523: uint16(125), - 524: uint16(125), - 525: uint16(125), - 526: uint16(125), - 527: uint16(1193), - 528: uint16(478), - 529: uint16(136), - 530: uint16(136), - 531: uint16(411), - 532: uint16(286), - 533: uint16(286), - 534: uint16(1493), - 535: uint16(509), - 536: uint16(122), - 537: uint16(122), - 538: uint16(121), - 539: uint16(121), - 540: uint16(121), - 541: uint16(120), - 542: uint16(117), - 543: uint16(448), - 544: uint16(1010), - 545: uint16(569), - 546: uint16(522), - 547: uint16(219), - 548: uint16(545), - 549: uint16(545), - 550: uint16(318), - 551: uint16(563), - 552: uint16(143), - 553: uint16(6), - 554: uint16(536), - 555: uint16(126), - 556: uint16(127), - 557: uint16(81), - 558: uint16(1217), - 559: uint16(1217), - 560: uint16(1054), - 561: uint16(1057), - 562: uint16(1044), - 563: uint16(1044), - 564: uint16(124), - 565: uint16(124), - 566: uint16(125), - 567: uint16(125), - 568: uint16(125), - 569: uint16(125), - 570: uint16(1557), - 571: uint16(123), - 572: uint16(123), - 573: uint16(123), - 574: uint16(123), - 575: uint16(122), - 576: uint16(122), - 577: uint16(121), - 578: uint16(121), - 579: uint16(121), - 580: uint16(120), - 581: uint16(117), - 582: uint16(448), - 583: uint16(489), - 584: uint16(1193), - 585: uint16(1194), - 586: uint16(1193), - 587: uint16(486), - 588: uint16(283), - 589: uint16(1270), - 590: uint16(960), - 591: uint16(254), - 592: uint16(1193), - 593: uint16(375), - 594: uint16(508), - 595: uint16(505), - 596: uint16(504), - 597: uint16(1193), - 598: uint16(342), - 599: uint16(574), - 600: uint16(1193), - 601: uint16(574), - 602: uint16(411), - 603: uint16(294), - 604: uint16(503), - 605: uint16(960), - 606: uint16(879), - 607: uint16(193), - 608: uint16(484), - 609: uint16(318), - 610: uint16(563), - 611: uint16(386), - 612: uint16(292), - 613: uint16(382), - 614: uint16(123), - 615: uint16(123), - 616: uint16(123), - 617: uint16(123), - 618: uint16(122), - 619: uint16(122), - 620: uint16(121), - 621: uint16(121), - 622: uint16(121), - 623: uint16(120), - 624: uint16(117), - 625: uint16(448), - 626: uint16(126), - 627: uint16(127), - 628: uint16(81), - 629: uint16(1217), - 630: uint16(1217), - 631: uint16(1054), - 632: uint16(1057), - 633: uint16(1044), - 634: uint16(1044), - 635: uint16(124), - 636: uint16(124), - 637: uint16(125), - 638: uint16(125), - 639: uint16(125), - 640: uint16(125), - 641: uint16(411), - 642: uint16(396), - 643: uint16(1139), - 644: uint16(1193), - 645: uint16(872), - 646: uint16(101), - 647: uint16(286), - 648: uint16(286), - 649: uint16(1193), - 650: uint16(1194), - 651: uint16(1193), - 652: uint16(375), - 653: uint16(1096), - 654: uint16(1193), - 655: uint16(1194), - 656: uint16(1193), - 657: uint16(1193), - 658: uint16(1194), - 659: uint16(1193), - 660: uint16(569), - 661: uint16(459), - 662: uint16(33), - 663: uint16(375), - 664: uint16(235), - 665: uint16(126), - 666: uint16(127), - 667: uint16(81), - 668: uint16(1217), - 669: uint16(1217), - 670: uint16(1054), - 671: uint16(1057), - 672: uint16(1044), - 673: uint16(1044), - 674: uint16(124), - 675: uint16(124), - 676: uint16(125), - 677: uint16(125), - 678: uint16(125), - 679: uint16(125), - 680: uint16(1437), - 681: uint16(962), - 682: uint16(572), - 683: uint16(230), - 684: uint16(961), - 685: uint16(123), - 686: uint16(123), - 687: uint16(123), - 688: uint16(123), - 689: uint16(122), - 690: uint16(122), - 691: uint16(121), - 692: uint16(121), - 693: uint16(121), - 694: uint16(120), - 695: uint16(117), - 696: uint16(448), - 697: uint16(1159), - 698: uint16(230), - 699: uint16(1193), - 700: uint16(158), - 701: uint16(1193), - 702: uint16(1194), - 703: uint16(1193), - 704: uint16(1556), - 705: uint16(13), - 706: uint16(13), - 707: uint16(303), - 708: uint16(960), - 709: uint16(1233), - 710: uint16(1159), - 711: uint16(154), - 712: uint16(411), - 713: uint16(1159), - 714: uint16(375), - 715: uint16(1584), - 716: uint16(1177), - 717: uint16(5), - 718: uint16(371), - 719: uint16(1581), - 720: uint16(431), - 721: uint16(1239), - 722: uint16(3), - 723: uint16(960), - 724: uint16(123), - 725: uint16(123), - 726: uint16(123), - 727: uint16(123), - 728: uint16(122), - 729: uint16(122), - 730: uint16(121), - 731: uint16(121), - 732: uint16(121), - 733: uint16(120), - 734: uint16(117), - 735: uint16(448), - 736: uint16(126), - 737: uint16(127), - 738: uint16(81), - 739: uint16(1217), - 740: uint16(1217), - 741: uint16(1054), - 742: uint16(1057), - 743: uint16(1044), - 744: uint16(1044), - 745: uint16(124), - 746: uint16(124), - 747: uint16(125), - 748: uint16(125), - 749: uint16(125), - 750: uint16(125), - 751: uint16(411), - 752: uint16(210), - 753: uint16(571), - 754: uint16(1193), - 755: uint16(1032), - 756: uint16(1193), - 757: uint16(1194), - 758: uint16(1193), - 759: uint16(1193), - 760: uint16(390), - 761: uint16(855), - 762: uint16(156), - 763: uint16(1555), - 764: uint16(376), - 765: uint16(404), - 766: uint16(1101), - 767: uint16(1101), - 768: uint16(492), - 769: uint16(572), - 770: uint16(469), - 771: uint16(344), - 772: uint16(1322), - 773: uint16(1322), - 774: uint16(1555), - 775: uint16(126), - 776: uint16(127), - 777: uint16(81), - 778: uint16(1217), - 779: uint16(1217), - 780: uint16(1054), - 781: uint16(1057), - 782: uint16(1044), - 783: uint16(1044), - 784: uint16(124), - 785: uint16(124), - 786: uint16(125), - 787: uint16(125), - 788: uint16(125), - 789: uint16(125), - 790: uint16(130), - 791: uint16(572), - 792: uint16(13), - 793: uint16(13), - 794: uint16(532), - 795: uint16(123), - 796: uint16(123), - 797: uint16(123), - 798: uint16(123), - 799: uint16(122), - 800: uint16(122), - 801: uint16(121), - 802: uint16(121), - 803: uint16(121), - 804: uint16(120), - 805: uint16(117), - 806: uint16(448), - 807: uint16(304), - 808: uint16(572), - 809: uint16(457), - 810: uint16(229), - 811: uint16(1193), - 812: uint16(1194), - 813: uint16(1193), - 814: uint16(13), - 815: uint16(13), - 816: uint16(1193), - 817: uint16(1194), - 818: uint16(1193), - 819: uint16(1300), - 820: uint16(467), - 821: uint16(1270), - 822: uint16(411), - 823: uint16(1320), - 824: uint16(1320), - 825: uint16(1555), - 826: uint16(1015), - 827: uint16(457), - 828: uint16(456), - 829: uint16(436), - 830: uint16(301), - 831: uint16(72), - 832: uint16(72), - 833: uint16(1268), - 834: uint16(123), - 835: uint16(123), - 836: uint16(123), - 837: uint16(123), - 838: uint16(122), - 839: uint16(122), - 840: uint16(121), - 841: uint16(121), - 842: uint16(121), - 843: uint16(120), - 844: uint16(117), - 845: uint16(448), - 846: uint16(126), - 847: uint16(127), - 848: uint16(81), - 849: uint16(1217), - 850: uint16(1217), - 851: uint16(1054), - 852: uint16(1057), - 853: uint16(1044), - 854: uint16(1044), - 855: uint16(124), - 856: uint16(124), - 857: uint16(125), - 858: uint16(125), - 859: uint16(125), - 860: uint16(125), - 861: uint16(411), - 862: uint16(384), - 863: uint16(1076), - 864: uint16(1159), - 865: uint16(286), - 866: uint16(286), - 867: uint16(421), - 868: uint16(314), - 869: uint16(280), - 870: uint16(280), - 871: uint16(287), - 872: uint16(287), - 873: uint16(461), - 874: uint16(408), - 875: uint16(407), - 876: uint16(1539), - 877: uint16(1159), - 878: uint16(569), - 879: uint16(572), - 880: uint16(1159), - 881: uint16(1196), - 882: uint16(569), - 883: uint16(409), - 884: uint16(569), - 885: uint16(126), - 886: uint16(127), - 887: uint16(81), - 888: uint16(1217), - 889: uint16(1217), - 890: uint16(1054), - 891: uint16(1057), - 892: uint16(1044), - 893: uint16(1044), - 894: uint16(124), - 895: uint16(124), - 896: uint16(125), - 897: uint16(125), - 898: uint16(125), - 899: uint16(125), - 900: uint16(457), - 901: uint16(1485), - 902: uint16(13), - 903: uint16(13), - 904: uint16(1541), - 905: uint16(123), - 906: uint16(123), - 907: uint16(123), - 908: uint16(123), - 909: uint16(122), - 910: uint16(122), - 911: uint16(121), - 912: uint16(121), - 913: uint16(121), - 914: uint16(120), - 915: uint16(117), - 916: uint16(448), - 917: uint16(202), - 918: uint16(572), - 919: uint16(462), - 920: uint16(1587), - 921: uint16(578), - 922: uint16(2), - 923: uint16(1248), - 924: uint16(843), - 925: uint16(844), - 926: uint16(845), - 927: uint16(1563), - 928: uint16(319), - 929: uint16(409), - 930: uint16(147), - 931: uint16(6), - 932: uint16(411), - 933: uint16(257), - 934: uint16(256), - 935: uint16(255), - 936: uint16(208), - 937: uint16(1330), - 938: uint16(9), - 939: uint16(1196), - 940: uint16(264), - 941: uint16(72), - 942: uint16(72), - 943: uint16(1436), - 944: uint16(123), - 945: uint16(123), - 946: uint16(123), - 947: uint16(123), - 948: uint16(122), - 949: uint16(122), - 950: uint16(121), - 951: uint16(121), - 952: uint16(121), - 953: uint16(120), - 954: uint16(117), - 955: uint16(448), - 956: uint16(126), - 957: uint16(127), - 958: uint16(81), - 959: uint16(1217), - 960: uint16(1217), - 961: uint16(1054), - 962: uint16(1057), - 963: uint16(1044), - 964: uint16(1044), - 965: uint16(124), - 966: uint16(124), - 967: uint16(125), - 968: uint16(125), - 969: uint16(125), - 970: uint16(125), - 971: uint16(572), - 972: uint16(286), - 973: uint16(286), - 974: uint16(572), - 975: uint16(1213), - 976: uint16(411), - 977: uint16(577), - 978: uint16(315), - 979: uint16(1248), - 980: uint16(421), - 981: uint16(371), - 982: uint16(1581), - 983: uint16(356), - 984: uint16(319), - 985: uint16(569), - 986: uint16(147), - 987: uint16(495), - 988: uint16(529), - 989: uint16(1644), - 990: uint16(397), - 991: uint16(935), - 992: uint16(495), - 993: uint16(1330), - 994: uint16(71), - 995: uint16(71), - 996: uint16(934), - 997: uint16(72), - 998: uint16(72), - 999: uint16(242), - 1000: uint16(1328), - 1001: uint16(105), - 1002: uint16(81), - 1003: uint16(1217), - 1004: uint16(1217), - 1005: uint16(1054), - 1006: uint16(1057), - 1007: uint16(1044), - 1008: uint16(1044), - 1009: uint16(124), - 1010: uint16(124), - 1011: uint16(125), - 1012: uint16(125), - 1013: uint16(125), - 1014: uint16(125), - 1015: uint16(123), - 1016: uint16(123), - 1017: uint16(123), - 1018: uint16(123), - 1019: uint16(122), - 1020: uint16(122), - 1021: uint16(121), - 1022: uint16(121), - 1023: uint16(121), - 1024: uint16(120), - 1025: uint16(117), - 1026: uint16(448), - 1027: uint16(1117), - 1028: uint16(286), - 1029: uint16(286), - 1030: uint16(1422), - 1031: uint16(452), - 1032: uint16(1528), - 1033: uint16(1213), - 1034: uint16(443), - 1035: uint16(286), - 1036: uint16(286), - 1037: uint16(1492), - 1038: uint16(1355), - 1039: uint16(313), - 1040: uint16(478), - 1041: uint16(569), - 1042: uint16(1118), - 1043: uint16(454), - 1044: uint16(351), - 1045: uint16(495), - 1046: uint16(354), - 1047: uint16(1266), - 1048: uint16(569), - 1049: uint16(209), - 1050: uint16(572), - 1051: uint16(418), - 1052: uint16(179), - 1053: uint16(572), - 1054: uint16(1031), - 1055: uint16(242), - 1056: uint16(385), - 1057: uint16(1119), - 1058: uint16(523), - 1059: uint16(123), - 1060: uint16(123), - 1061: uint16(123), - 1062: uint16(123), - 1063: uint16(122), - 1064: uint16(122), - 1065: uint16(121), - 1066: uint16(121), - 1067: uint16(121), - 1068: uint16(120), - 1069: uint16(117), - 1070: uint16(448), - 1071: uint16(1020), - 1072: uint16(108), - 1073: uint16(72), - 1074: uint16(72), - 1075: uint16(1019), - 1076: uint16(13), - 1077: uint16(13), - 1078: uint16(915), - 1079: uint16(572), - 1080: uint16(1498), - 1081: uint16(572), - 1082: uint16(286), - 1083: uint16(286), - 1084: uint16(98), - 1085: uint16(530), - 1086: uint16(1537), - 1087: uint16(452), - 1088: uint16(916), - 1089: uint16(1334), - 1090: uint16(1329), - 1091: uint16(203), - 1092: uint16(411), - 1093: uint16(286), - 1094: uint16(286), - 1095: uint16(569), - 1096: uint16(152), - 1097: uint16(211), - 1098: uint16(1498), - 1099: uint16(1500), - 1100: uint16(426), - 1101: uint16(569), - 1102: uint16(56), - 1103: uint16(56), - 1104: uint16(57), - 1105: uint16(57), - 1106: uint16(569), - 1107: uint16(1019), - 1108: uint16(1019), - 1109: uint16(1021), - 1110: uint16(447), - 1111: uint16(572), - 1112: uint16(411), - 1113: uint16(531), - 1114: uint16(12), - 1115: uint16(297), - 1116: uint16(126), - 1117: uint16(127), - 1118: uint16(81), - 1119: uint16(1217), - 1120: uint16(1217), - 1121: uint16(1054), - 1122: uint16(1057), - 1123: uint16(1044), - 1124: uint16(1044), - 1125: uint16(124), - 1126: uint16(124), - 1127: uint16(125), - 1128: uint16(125), - 1129: uint16(125), - 1130: uint16(125), - 1131: uint16(572), - 1132: uint16(411), - 1133: uint16(867), - 1134: uint16(15), - 1135: uint16(15), - 1136: uint16(126), - 1137: uint16(127), - 1138: uint16(81), - 1139: uint16(1217), - 1140: uint16(1217), - 1141: uint16(1054), - 1142: uint16(1057), - 1143: uint16(1044), - 1144: uint16(1044), - 1145: uint16(124), - 1146: uint16(124), - 1147: uint16(125), - 1148: uint16(125), - 1149: uint16(125), - 1150: uint16(125), - 1151: uint16(373), - 1152: uint16(529), - 1153: uint16(264), - 1154: uint16(44), - 1155: uint16(44), - 1156: uint16(126), - 1157: uint16(115), - 1158: uint16(81), - 1159: uint16(1217), - 1160: uint16(1217), - 1161: uint16(1054), - 1162: uint16(1057), - 1163: uint16(1044), - 1164: uint16(1044), - 1165: uint16(124), - 1166: uint16(124), - 1167: uint16(125), - 1168: uint16(125), - 1169: uint16(125), - 1170: uint16(125), - 1171: uint16(1498), - 1172: uint16(478), - 1173: uint16(1271), - 1174: uint16(417), - 1175: uint16(123), - 1176: uint16(123), - 1177: uint16(123), - 1178: uint16(123), - 1179: uint16(122), - 1180: uint16(122), - 1181: uint16(121), - 1182: uint16(121), - 1183: uint16(121), - 1184: uint16(120), - 1185: uint16(117), - 1186: uint16(448), - 1187: uint16(205), - 1188: uint16(1213), - 1189: uint16(495), - 1190: uint16(430), - 1191: uint16(867), - 1192: uint16(468), - 1193: uint16(322), - 1194: uint16(495), - 1195: uint16(123), - 1196: uint16(123), - 1197: uint16(123), - 1198: uint16(123), - 1199: uint16(122), - 1200: uint16(122), - 1201: uint16(121), - 1202: uint16(121), - 1203: uint16(121), - 1204: uint16(120), - 1205: uint16(117), - 1206: uint16(448), - 1207: uint16(572), - 1208: uint16(557), - 1209: uint16(1140), - 1210: uint16(1642), - 1211: uint16(1422), - 1212: uint16(1642), - 1213: uint16(543), - 1214: uint16(572), - 1215: uint16(123), - 1216: uint16(123), - 1217: uint16(123), - 1218: uint16(123), - 1219: uint16(122), - 1220: uint16(122), - 1221: uint16(121), - 1222: uint16(121), - 1223: uint16(121), - 1224: uint16(120), - 1225: uint16(117), - 1226: uint16(448), - 1227: uint16(572), - 1228: uint16(1422), - 1229: uint16(572), - 1230: uint16(13), - 1231: uint16(13), - 1232: uint16(542), - 1233: uint16(323), - 1234: uint16(1325), - 1235: uint16(411), - 1236: uint16(334), - 1237: uint16(58), - 1238: uint16(58), - 1239: uint16(349), - 1240: uint16(1422), - 1241: uint16(1170), - 1242: uint16(326), - 1243: uint16(286), - 1244: uint16(286), - 1245: uint16(549), - 1246: uint16(1213), - 1247: uint16(300), - 1248: uint16(895), - 1249: uint16(530), - 1250: uint16(45), - 1251: uint16(45), - 1252: uint16(59), - 1253: uint16(59), - 1254: uint16(1140), - 1255: uint16(1643), - 1256: uint16(569), - 1257: uint16(1643), - 1258: uint16(565), - 1259: uint16(417), - 1260: uint16(127), - 1261: uint16(81), - 1262: uint16(1217), - 1263: uint16(1217), - 1264: uint16(1054), - 1265: uint16(1057), - 1266: uint16(1044), - 1267: uint16(1044), - 1268: uint16(124), - 1269: uint16(124), - 1270: uint16(125), - 1271: uint16(125), - 1272: uint16(125), - 1273: uint16(125), - 1274: uint16(1367), - 1275: uint16(373), - 1276: uint16(500), - 1277: uint16(290), - 1278: uint16(1193), - 1279: uint16(512), - 1280: uint16(1366), - 1281: uint16(427), - 1282: uint16(394), - 1283: uint16(394), - 1284: uint16(393), - 1285: uint16(275), - 1286: uint16(391), - 1287: uint16(896), - 1288: uint16(1138), - 1289: uint16(852), - 1290: uint16(478), - 1291: uint16(258), - 1292: uint16(1422), - 1293: uint16(1170), - 1294: uint16(463), - 1295: uint16(1159), - 1296: uint16(12), - 1297: uint16(331), - 1298: uint16(428), - 1299: uint16(333), - 1300: uint16(1117), - 1301: uint16(460), - 1302: uint16(236), - 1303: uint16(258), - 1304: uint16(325), - 1305: uint16(460), - 1306: uint16(544), - 1307: uint16(1544), - 1308: uint16(1159), - 1309: uint16(1098), - 1310: uint16(491), - 1311: uint16(1159), - 1312: uint16(324), - 1313: uint16(1098), - 1314: uint16(440), - 1315: uint16(1118), - 1316: uint16(335), - 1317: uint16(516), - 1318: uint16(123), - 1319: uint16(123), - 1320: uint16(123), - 1321: uint16(123), - 1322: uint16(122), - 1323: uint16(122), - 1324: uint16(121), - 1325: uint16(121), - 1326: uint16(121), - 1327: uint16(120), - 1328: uint16(117), - 1329: uint16(448), - 1330: uint16(1119), - 1331: uint16(318), - 1332: uint16(563), - 1333: uint16(1138), - 1334: uint16(572), - 1335: uint16(1193), - 1336: uint16(1194), - 1337: uint16(1193), - 1338: uint16(112), - 1339: uint16(564), - 1340: uint16(201), + 345: uint16(555), + 346: uint16(1149), + 347: uint16(1657), + 348: uint16(1628), + 349: uint16(1657), + 350: uint16(45), + 351: uint16(128), + 352: uint16(125), + 353: uint16(232), + 354: uint16(1204), + 355: uint16(1205), + 356: uint16(1204), + 357: uint16(1250), + 358: uint16(571), + 359: uint16(1169), + 360: uint16(132), + 361: uint16(132), + 362: uint16(132), + 363: uint16(132), + 364: uint16(131), + 365: uint16(131), + 366: uint16(130), + 367: uint16(130), + 368: uint16(130), + 369: uint16(129), + 370: uint16(126), + 371: uint16(450), + 372: uint16(1169), + 373: uint16(287), + 374: uint16(287), + 375: uint16(1169), + 376: uint16(1019), + 377: uint16(576), + 378: uint16(422), + 379: uint16(1019), + 380: uint16(412), + 381: uint16(451), + 382: uint16(1602), + 383: uint16(582), + 384: uint16(2), + 385: uint16(1259), + 386: uint16(573), + 387: uint16(44), + 388: uint16(561), + 389: uint16(95), + 390: uint16(320), + 391: uint16(110), + 392: uint16(153), + 393: uint16(565), + 394: uint16(1204), + 395: uint16(1205), + 396: uint16(1204), + 397: uint16(522), + 398: uint16(522), + 399: uint16(1341), + 400: uint16(81), + 401: uint16(81), + 402: uint16(7), + 403: uint16(44), + 404: uint16(135), + 405: uint16(136), + 406: uint16(90), + 407: uint16(1228), + 408: uint16(1228), + 409: uint16(1063), + 410: uint16(1066), + 411: uint16(1053), + 412: uint16(1053), + 413: uint16(133), + 414: uint16(133), + 415: uint16(134), + 416: uint16(134), + 417: uint16(134), + 418: uint16(134), + 419: uint16(295), + 420: uint16(1149), + 421: uint16(1658), + 422: uint16(1040), + 423: uint16(1658), + 424: uint16(1204), + 425: uint16(1147), + 426: uint16(319), + 427: uint16(567), + 428: uint16(119), + 429: uint16(119), + 430: uint16(343), + 431: uint16(466), + 432: uint16(331), + 433: uint16(343), + 434: uint16(287), + 435: uint16(287), + 436: uint16(120), + 437: uint16(556), + 438: uint16(451), + 439: uint16(577), + 440: uint16(451), + 441: uint16(1169), + 442: uint16(1169), + 443: uint16(1028), + 444: uint16(319), + 445: uint16(567), + 446: uint16(438), + 447: uint16(573), + 448: uint16(210), + 449: uint16(561), + 450: uint16(1339), + 451: uint16(1451), + 452: uint16(546), + 453: uint16(531), + 454: uint16(1169), + 455: uint16(1169), + 456: uint16(1598), + 457: uint16(1169), + 458: uint16(1169), + 459: uint16(416), + 460: uint16(319), + 461: uint16(567), + 462: uint16(243), + 463: uint16(132), + 464: uint16(132), + 465: uint16(132), + 466: uint16(132), + 467: uint16(131), + 468: uint16(131), + 469: uint16(130), + 470: uint16(130), + 471: uint16(130), + 472: uint16(129), + 473: uint16(126), + 474: uint16(450), + 475: uint16(1028), + 476: uint16(1028), + 477: uint16(1030), + 478: uint16(1031), + 479: uint16(35), + 480: uint16(44), + 481: uint16(1204), + 482: uint16(1205), + 483: uint16(1204), + 484: uint16(472), + 485: uint16(287), + 486: uint16(287), + 487: uint16(1328), + 488: uint16(412), + 489: uint16(1307), + 490: uint16(372), + 491: uint16(1595), + 492: uint16(359), + 493: uint16(225), + 494: uint16(454), + 495: uint16(1204), + 496: uint16(195), + 497: uint16(1328), + 498: uint16(573), + 499: uint16(1147), + 500: uint16(561), + 501: uint16(1333), + 502: uint16(1333), + 503: uint16(274), + 504: uint16(576), + 505: uint16(1188), + 506: uint16(576), + 507: uint16(340), + 508: uint16(46), + 509: uint16(196), + 510: uint16(537), + 511: uint16(217), + 512: uint16(135), + 513: uint16(136), + 514: uint16(90), + 515: uint16(1228), + 516: uint16(1228), + 517: uint16(1063), + 518: uint16(1066), + 519: uint16(1053), + 520: uint16(1053), + 521: uint16(133), + 522: uint16(133), + 523: uint16(134), + 524: uint16(134), + 525: uint16(134), + 526: uint16(134), + 527: uint16(19), + 528: uint16(19), + 529: uint16(19), + 530: uint16(19), + 531: uint16(412), + 532: uint16(581), + 533: uint16(1204), + 534: uint16(1259), + 535: uint16(511), + 536: uint16(1204), + 537: uint16(319), + 538: uint16(567), + 539: uint16(320), + 540: uint16(944), + 541: uint16(153), + 542: uint16(425), + 543: uint16(491), + 544: uint16(430), + 545: uint16(943), + 546: uint16(1204), + 547: uint16(488), + 548: uint16(1341), + 549: uint16(1450), + 550: uint16(532), + 551: uint16(1277), + 552: uint16(1204), + 553: uint16(1205), + 554: uint16(1204), + 555: uint16(135), + 556: uint16(136), + 557: uint16(90), + 558: uint16(1228), + 559: uint16(1228), + 560: uint16(1063), + 561: uint16(1066), + 562: uint16(1053), + 563: uint16(1053), + 564: uint16(133), + 565: uint16(133), + 566: uint16(134), + 567: uint16(134), + 568: uint16(134), + 569: uint16(134), + 570: uint16(575), + 571: uint16(132), + 572: uint16(132), + 573: uint16(132), + 574: uint16(132), + 575: uint16(131), + 576: uint16(131), + 577: uint16(130), + 578: uint16(130), + 579: uint16(130), + 580: uint16(129), + 581: uint16(126), + 582: uint16(450), + 583: uint16(287), + 584: uint16(287), + 585: uint16(528), + 586: uint16(287), + 587: uint16(287), + 588: uint16(372), + 589: uint16(1595), + 590: uint16(1204), + 591: uint16(1205), + 592: uint16(1204), + 593: uint16(1204), + 594: uint16(1205), + 595: uint16(1204), + 596: uint16(573), + 597: uint16(486), + 598: uint16(561), + 599: uint16(573), + 600: uint16(889), + 601: uint16(561), + 602: uint16(412), + 603: uint16(1204), + 604: uint16(1205), + 605: uint16(1204), + 606: uint16(886), + 607: uint16(40), + 608: uint16(22), + 609: uint16(22), + 610: uint16(220), + 611: uint16(243), + 612: uint16(525), + 613: uint16(1449), + 614: uint16(132), + 615: uint16(132), + 616: uint16(132), + 617: uint16(132), + 618: uint16(131), + 619: uint16(131), + 620: uint16(130), + 621: uint16(130), + 622: uint16(130), + 623: uint16(129), + 624: uint16(126), + 625: uint16(450), + 626: uint16(135), + 627: uint16(136), + 628: uint16(90), + 629: uint16(1228), + 630: uint16(1228), + 631: uint16(1063), + 632: uint16(1066), + 633: uint16(1053), + 634: uint16(1053), + 635: uint16(133), + 636: uint16(133), + 637: uint16(134), + 638: uint16(134), + 639: uint16(134), + 640: uint16(134), + 641: uint16(412), + 642: uint16(180), + 643: uint16(454), + 644: uint16(1204), + 645: uint16(879), + 646: uint16(255), + 647: uint16(287), + 648: uint16(287), + 649: uint16(510), + 650: uint16(507), + 651: uint16(506), + 652: uint16(372), + 653: uint16(1595), + 654: uint16(1568), + 655: uint16(1331), + 656: uint16(1331), + 657: uint16(576), + 658: uint16(889), + 659: uint16(505), + 660: uint16(573), + 661: uint16(44), + 662: uint16(561), + 663: uint16(559), + 664: uint16(1207), + 665: uint16(135), + 666: uint16(136), + 667: uint16(90), + 668: uint16(1228), + 669: uint16(1228), + 670: uint16(1063), + 671: uint16(1066), + 672: uint16(1053), + 673: uint16(1053), + 674: uint16(133), + 675: uint16(133), + 676: uint16(134), + 677: uint16(134), + 678: uint16(134), + 679: uint16(134), + 680: uint16(81), + 681: uint16(81), + 682: uint16(422), + 683: uint16(576), + 684: uint16(377), + 685: uint16(132), + 686: uint16(132), + 687: uint16(132), + 688: uint16(132), + 689: uint16(131), + 690: uint16(131), + 691: uint16(130), + 692: uint16(130), + 693: uint16(130), + 694: uint16(129), + 695: uint16(126), + 696: uint16(450), + 697: uint16(297), + 698: uint16(287), + 699: uint16(287), + 700: uint16(460), + 701: uint16(1204), + 702: uint16(1205), + 703: uint16(1204), + 704: uint16(1204), + 705: uint16(534), + 706: uint16(19), + 707: uint16(19), + 708: uint16(448), + 709: uint16(448), + 710: uint16(448), + 711: uint16(573), + 712: uint16(412), + 713: uint16(561), + 714: uint16(230), + 715: uint16(436), + 716: uint16(1187), + 717: uint16(535), + 718: uint16(319), + 719: uint16(567), + 720: uint16(363), + 721: uint16(432), + 722: uint16(1207), + 723: uint16(1435), + 724: uint16(132), + 725: uint16(132), + 726: uint16(132), + 727: uint16(132), + 728: uint16(131), + 729: uint16(131), + 730: uint16(130), + 731: uint16(130), + 732: uint16(130), + 733: uint16(129), + 734: uint16(126), + 735: uint16(450), + 736: uint16(135), + 737: uint16(136), + 738: uint16(90), + 739: uint16(1228), + 740: uint16(1228), + 741: uint16(1063), + 742: uint16(1066), + 743: uint16(1053), + 744: uint16(1053), + 745: uint16(133), + 746: uint16(133), + 747: uint16(134), + 748: uint16(134), + 749: uint16(134), + 750: uint16(134), + 751: uint16(412), + 752: uint16(211), + 753: uint16(949), + 754: uint16(1169), + 755: uint16(1041), + 756: uint16(1110), + 757: uint16(1110), + 758: uint16(494), + 759: uint16(547), + 760: uint16(547), + 761: uint16(1204), + 762: uint16(1205), + 763: uint16(1204), + 764: uint16(7), + 765: uint16(539), + 766: uint16(1570), + 767: uint16(1169), + 768: uint16(376), + 769: uint16(576), + 770: uint16(1169), + 771: uint16(5), + 772: uint16(1204), + 773: uint16(486), + 774: uint16(3), + 775: uint16(135), + 776: uint16(136), + 777: uint16(90), + 778: uint16(1228), + 779: uint16(1228), + 780: uint16(1063), + 781: uint16(1066), + 782: uint16(1053), + 783: uint16(1053), + 784: uint16(133), + 785: uint16(133), + 786: uint16(134), + 787: uint16(134), + 788: uint16(134), + 789: uint16(134), + 790: uint16(576), + 791: uint16(513), + 792: uint16(19), + 793: uint16(19), + 794: uint16(427), + 795: uint16(132), + 796: uint16(132), + 797: uint16(132), + 798: uint16(132), + 799: uint16(131), + 800: uint16(131), + 801: uint16(130), + 802: uint16(130), + 803: uint16(130), + 804: uint16(129), + 805: uint16(126), + 806: uint16(450), + 807: uint16(305), + 808: uint16(1204), + 809: uint16(433), + 810: uint16(225), + 811: uint16(1204), + 812: uint16(385), + 813: uint16(19), + 814: uint16(19), + 815: uint16(273), + 816: uint16(290), + 817: uint16(371), + 818: uint16(516), + 819: uint16(366), + 820: uint16(515), + 821: uint16(260), + 822: uint16(412), + 823: uint16(538), + 824: uint16(1568), + 825: uint16(549), + 826: uint16(1024), + 827: uint16(362), + 828: uint16(437), + 829: uint16(1204), + 830: uint16(1205), + 831: uint16(1204), + 832: uint16(902), + 833: uint16(1552), + 834: uint16(132), + 835: uint16(132), + 836: uint16(132), + 837: uint16(132), + 838: uint16(131), + 839: uint16(131), + 840: uint16(130), + 841: uint16(130), + 842: uint16(130), + 843: uint16(129), + 844: uint16(126), + 845: uint16(450), + 846: uint16(135), + 847: uint16(136), + 848: uint16(90), + 849: uint16(1228), + 850: uint16(1228), + 851: uint16(1063), + 852: uint16(1066), + 853: uint16(1053), + 854: uint16(1053), + 855: uint16(133), + 856: uint16(133), + 857: uint16(134), + 858: uint16(134), + 859: uint16(134), + 860: uint16(134), + 861: uint16(412), + 862: uint16(1435), + 863: uint16(514), + 864: uint16(1281), + 865: uint16(1204), + 866: uint16(1205), + 867: uint16(1204), + 868: uint16(1204), + 869: uint16(1205), + 870: uint16(1204), + 871: uint16(903), + 872: uint16(48), + 873: uint16(342), + 874: uint16(1568), + 875: uint16(1568), + 876: uint16(1279), + 877: uint16(1627), + 878: uint16(1568), + 879: uint16(911), + 880: uint16(576), + 881: uint16(129), + 882: uint16(126), + 883: uint16(450), + 884: uint16(110), + 885: uint16(135), + 886: uint16(136), + 887: uint16(90), + 888: uint16(1228), + 889: uint16(1228), + 890: uint16(1063), + 891: uint16(1066), + 892: uint16(1053), + 893: uint16(1053), + 894: uint16(133), + 895: uint16(133), + 896: uint16(134), + 897: uint16(134), + 898: uint16(134), + 899: uint16(134), + 900: uint16(265), + 901: uint16(576), + 902: uint16(459), + 903: uint16(19), + 904: uint16(19), + 905: uint16(132), + 906: uint16(132), + 907: uint16(132), + 908: uint16(132), + 909: uint16(131), + 910: uint16(131), + 911: uint16(130), + 912: uint16(130), + 913: uint16(130), + 914: uint16(129), + 915: uint16(126), + 916: uint16(450), + 917: uint16(1345), + 918: uint16(204), + 919: uint16(576), + 920: uint16(459), + 921: uint16(458), + 922: uint16(50), + 923: uint16(47), + 924: uint16(19), + 925: uint16(19), + 926: uint16(49), + 927: uint16(434), + 928: uint16(1105), + 929: uint16(573), + 930: uint16(497), + 931: uint16(561), + 932: uint16(412), + 933: uint16(428), + 934: uint16(108), + 935: uint16(1224), + 936: uint16(1569), + 937: uint16(1554), + 938: uint16(376), + 939: uint16(205), + 940: uint16(550), + 941: uint16(550), + 942: uint16(81), + 943: uint16(81), + 944: uint16(132), + 945: uint16(132), + 946: uint16(132), + 947: uint16(132), + 948: uint16(131), + 949: uint16(131), + 950: uint16(130), + 951: uint16(130), + 952: uint16(130), + 953: uint16(129), + 954: uint16(126), + 955: uint16(450), + 956: uint16(135), + 957: uint16(136), + 958: uint16(90), + 959: uint16(1228), + 960: uint16(1228), + 961: uint16(1063), + 962: uint16(1066), + 963: uint16(1053), + 964: uint16(1053), + 965: uint16(133), + 966: uint16(133), + 967: uint16(134), + 968: uint16(134), + 969: uint16(134), + 970: uint16(134), + 971: uint16(480), + 972: uint16(576), + 973: uint16(1204), + 974: uint16(576), + 975: uint16(1541), + 976: uint16(412), + 977: uint16(1435), + 978: uint16(969), + 979: uint16(315), + 980: uint16(1659), + 981: uint16(398), + 982: uint16(284), + 983: uint16(497), + 984: uint16(969), + 985: uint16(893), + 986: uint16(1569), + 987: uint16(1569), + 988: uint16(376), + 989: uint16(376), + 990: uint16(1569), + 991: uint16(461), + 992: uint16(376), + 993: uint16(1224), + 994: uint16(459), + 995: uint16(80), + 996: uint16(80), + 997: uint16(81), + 998: uint16(81), + 999: uint16(497), + 1000: uint16(374), + 1001: uint16(114), + 1002: uint16(90), + 1003: uint16(1228), + 1004: uint16(1228), + 1005: uint16(1063), + 1006: uint16(1066), + 1007: uint16(1053), + 1008: uint16(1053), + 1009: uint16(133), + 1010: uint16(133), + 1011: uint16(134), + 1012: uint16(134), + 1013: uint16(134), + 1014: uint16(134), + 1015: uint16(132), + 1016: uint16(132), + 1017: uint16(132), + 1018: uint16(132), + 1019: uint16(131), + 1020: uint16(131), + 1021: uint16(130), + 1022: uint16(130), + 1023: uint16(130), + 1024: uint16(129), + 1025: uint16(126), + 1026: uint16(450), + 1027: uint16(1204), + 1028: uint16(1505), + 1029: uint16(576), + 1030: uint16(1204), + 1031: uint16(1205), + 1032: uint16(1204), + 1033: uint16(1366), + 1034: uint16(316), + 1035: uint16(486), + 1036: uint16(281), + 1037: uint16(281), + 1038: uint16(497), + 1039: uint16(431), + 1040: uint16(557), + 1041: uint16(288), + 1042: uint16(288), + 1043: uint16(402), + 1044: uint16(1340), + 1045: uint16(471), + 1046: uint16(345), + 1047: uint16(298), + 1048: uint16(429), + 1049: uint16(573), + 1050: uint16(576), + 1051: uint16(561), + 1052: uint16(81), + 1053: uint16(81), + 1054: uint16(573), + 1055: uint16(374), + 1056: uint16(561), + 1057: uint16(971), + 1058: uint16(386), + 1059: uint16(132), + 1060: uint16(132), + 1061: uint16(132), + 1062: uint16(132), + 1063: uint16(131), + 1064: uint16(131), + 1065: uint16(130), + 1066: uint16(130), + 1067: uint16(130), + 1068: uint16(129), + 1069: uint16(126), + 1070: uint16(450), + 1071: uint16(231), + 1072: uint16(117), + 1073: uint16(81), + 1074: uint16(81), + 1075: uint16(287), + 1076: uint16(287), + 1077: uint16(231), + 1078: uint16(287), + 1079: uint16(287), + 1080: uint16(576), + 1081: uint16(1511), + 1082: uint16(576), + 1083: uint16(1336), + 1084: uint16(1204), + 1085: uint16(1205), + 1086: uint16(1204), + 1087: uint16(139), + 1088: uint16(573), + 1089: uint16(556), + 1090: uint16(561), + 1091: uint16(573), + 1092: uint16(412), + 1093: uint16(561), + 1094: uint16(441), + 1095: uint16(456), + 1096: uint16(969), + 1097: uint16(213), + 1098: uint16(558), + 1099: uint16(1511), + 1100: uint16(1513), + 1101: uint16(1550), + 1102: uint16(969), + 1103: uint16(143), + 1104: uint16(143), + 1105: uint16(145), + 1106: uint16(145), + 1107: uint16(1368), + 1108: uint16(314), + 1109: uint16(478), + 1110: uint16(444), + 1111: uint16(970), + 1112: uint16(412), + 1113: uint16(850), + 1114: uint16(851), + 1115: uint16(852), + 1116: uint16(135), + 1117: uint16(136), + 1118: uint16(90), + 1119: uint16(1228), + 1120: uint16(1228), + 1121: uint16(1063), + 1122: uint16(1066), + 1123: uint16(1053), + 1124: uint16(1053), + 1125: uint16(133), + 1126: uint16(133), + 1127: uint16(134), + 1128: uint16(134), + 1129: uint16(134), + 1130: uint16(134), + 1131: uint16(357), + 1132: uint16(412), + 1133: uint16(397), + 1134: uint16(1148), + 1135: uint16(304), + 1136: uint16(135), + 1137: uint16(136), + 1138: uint16(90), + 1139: uint16(1228), + 1140: uint16(1228), + 1141: uint16(1063), + 1142: uint16(1066), + 1143: uint16(1053), + 1144: uint16(1053), + 1145: uint16(133), + 1146: uint16(133), + 1147: uint16(134), + 1148: uint16(134), + 1149: uint16(134), + 1150: uint16(134), + 1151: uint16(1575), + 1152: uint16(323), + 1153: uint16(6), + 1154: uint16(862), + 1155: uint16(7), + 1156: uint16(135), + 1157: uint16(124), + 1158: uint16(90), + 1159: uint16(1228), + 1160: uint16(1228), + 1161: uint16(1063), + 1162: uint16(1066), + 1163: uint16(1053), + 1164: uint16(1053), + 1165: uint16(133), + 1166: uint16(133), + 1167: uint16(134), + 1168: uint16(134), + 1169: uint16(134), + 1170: uint16(134), + 1171: uint16(409), + 1172: uint16(408), + 1173: uint16(1511), + 1174: uint16(212), + 1175: uint16(132), + 1176: uint16(132), + 1177: uint16(132), + 1178: uint16(132), + 1179: uint16(131), + 1180: uint16(131), + 1181: uint16(130), + 1182: uint16(130), + 1183: uint16(130), + 1184: uint16(129), + 1185: uint16(126), + 1186: uint16(450), + 1187: uint16(411), + 1188: uint16(118), + 1189: uint16(1204), + 1190: uint16(116), + 1191: uint16(10), + 1192: uint16(352), + 1193: uint16(265), + 1194: uint16(355), + 1195: uint16(132), + 1196: uint16(132), + 1197: uint16(132), + 1198: uint16(132), + 1199: uint16(131), + 1200: uint16(131), + 1201: uint16(130), + 1202: uint16(130), + 1203: uint16(130), + 1204: uint16(129), + 1205: uint16(126), + 1206: uint16(450), + 1207: uint16(576), + 1208: uint16(324), + 1209: uint16(306), + 1210: uint16(576), + 1211: uint16(306), + 1212: uint16(1250), + 1213: uint16(469), + 1214: uint16(158), + 1215: uint16(132), + 1216: uint16(132), + 1217: uint16(132), + 1218: uint16(132), + 1219: uint16(131), + 1220: uint16(131), + 1221: uint16(130), + 1222: uint16(130), + 1223: uint16(130), + 1224: uint16(129), + 1225: uint16(126), + 1226: uint16(450), + 1227: uint16(207), + 1228: uint16(1224), + 1229: uint16(1126), + 1230: uint16(65), + 1231: uint16(65), + 1232: uint16(470), + 1233: uint16(66), + 1234: uint16(66), + 1235: uint16(412), + 1236: uint16(447), + 1237: uint16(446), + 1238: uint16(882), + 1239: uint16(531), + 1240: uint16(335), + 1241: uint16(258), + 1242: uint16(257), + 1243: uint16(256), + 1244: uint16(1127), + 1245: uint16(1233), + 1246: uint16(1204), + 1247: uint16(1205), + 1248: uint16(1204), + 1249: uint16(327), + 1250: uint16(1235), + 1251: uint16(874), + 1252: uint16(159), + 1253: uint16(576), + 1254: uint16(16), + 1255: uint16(480), + 1256: uint16(1085), + 1257: uint16(1040), + 1258: uint16(1234), + 1259: uint16(1128), + 1260: uint16(136), + 1261: uint16(90), + 1262: uint16(1228), + 1263: uint16(1228), + 1264: uint16(1063), + 1265: uint16(1066), + 1266: uint16(1053), + 1267: uint16(1053), + 1268: uint16(133), + 1269: uint16(133), + 1270: uint16(134), + 1271: uint16(134), + 1272: uint16(134), + 1273: uint16(134), + 1274: uint16(1029), + 1275: uint16(576), + 1276: uint16(81), + 1277: uint16(81), + 1278: uint16(1028), + 1279: uint16(1040), + 1280: uint16(922), + 1281: uint16(576), + 1282: uint16(463), + 1283: uint16(1236), + 1284: uint16(576), + 1285: uint16(1236), + 1286: uint16(1224), + 1287: uint16(502), + 1288: uint16(107), + 1289: uint16(1435), + 1290: uint16(923), + 1291: uint16(6), + 1292: uint16(576), + 1293: uint16(410), + 1294: uint16(1498), + 1295: uint16(882), + 1296: uint16(1029), + 1297: uint16(480), + 1298: uint16(21), + 1299: uint16(21), + 1300: uint16(1028), + 1301: uint16(332), + 1302: uint16(1380), + 1303: uint16(334), + 1304: uint16(53), + 1305: uint16(53), + 1306: uint16(497), + 1307: uint16(81), + 1308: uint16(81), + 1309: uint16(874), + 1310: uint16(1028), + 1311: uint16(1028), + 1312: uint16(1030), + 1313: uint16(445), + 1314: uint16(259), + 1315: uint16(19), + 1316: uint16(19), + 1317: uint16(533), + 1318: uint16(132), + 1319: uint16(132), + 1320: uint16(132), + 1321: uint16(132), + 1322: uint16(131), + 1323: uint16(131), + 1324: uint16(130), + 1325: uint16(130), + 1326: uint16(130), + 1327: uint16(129), + 1328: uint16(126), + 1329: uint16(450), + 1330: uint16(551), + 1331: uint16(301), + 1332: uint16(1028), + 1333: uint16(1028), + 1334: uint16(1030), + 1335: uint16(107), + 1336: uint16(532), + 1337: uint16(545), + 1338: uint16(121), + 1339: uint16(568), + 1340: uint16(1188), 1341: uint16(4), - 1342: uint16(238), - 1343: uint16(433), - 1344: uint16(935), - 1345: uint16(490), - 1346: uint16(285), - 1347: uint16(228), - 1348: uint16(1517), - 1349: uint16(934), - 1350: uint16(170), - 1351: uint16(560), - 1352: uint16(572), - 1353: uint16(142), - 1354: uint16(1516), - 1355: uint16(567), - 1356: uint16(572), - 1357: uint16(60), - 1358: uint16(60), - 1359: uint16(572), - 1360: uint16(416), - 1361: uint16(572), - 1362: uint16(441), - 1363: uint16(572), - 1364: uint16(535), - 1365: uint16(302), - 1366: uint16(875), - 1367: uint16(8), - 1368: uint16(487), - 1369: uint16(572), - 1370: uint16(237), - 1371: uint16(572), - 1372: uint16(416), - 1373: uint16(572), - 1374: uint16(485), - 1375: uint16(61), - 1376: uint16(61), - 1377: uint16(572), - 1378: uint16(449), - 1379: uint16(62), - 1380: uint16(62), - 1381: uint16(332), - 1382: uint16(63), - 1383: uint16(63), - 1384: uint16(46), - 1385: uint16(46), - 1386: uint16(47), - 1387: uint16(47), - 1388: uint16(361), - 1389: uint16(572), - 1390: uint16(561), - 1391: uint16(572), - 1392: uint16(48), - 1393: uint16(48), - 1394: uint16(50), - 1395: uint16(50), - 1396: uint16(51), - 1397: uint16(51), - 1398: uint16(572), - 1399: uint16(295), - 1400: uint16(64), - 1401: uint16(64), - 1402: uint16(482), - 1403: uint16(295), - 1404: uint16(539), - 1405: uint16(412), - 1406: uint16(471), - 1407: uint16(1031), - 1408: uint16(572), - 1409: uint16(538), - 1410: uint16(318), - 1411: uint16(563), - 1412: uint16(65), - 1413: uint16(65), - 1414: uint16(66), - 1415: uint16(66), - 1416: uint16(409), - 1417: uint16(475), - 1418: uint16(572), - 1419: uint16(1031), - 1420: uint16(572), - 1421: uint16(14), - 1422: uint16(14), - 1423: uint16(875), - 1424: uint16(1020), - 1425: uint16(110), - 1426: uint16(110), - 1427: uint16(409), - 1428: uint16(1019), - 1429: uint16(572), - 1430: uint16(474), - 1431: uint16(67), - 1432: uint16(67), - 1433: uint16(111), - 1434: uint16(455), - 1435: uint16(449), - 1436: uint16(573), - 1437: uint16(449), - 1438: uint16(98), - 1439: uint16(317), - 1440: uint16(1019), - 1441: uint16(132), - 1442: uint16(132), - 1443: uint16(133), - 1444: uint16(133), - 1445: uint16(572), - 1446: uint16(1561), - 1447: uint16(572), - 1448: uint16(974), - 1449: uint16(409), - 1450: uint16(6), - 1451: uint16(1562), - 1452: uint16(68), - 1453: uint16(68), - 1454: uint16(1560), - 1455: uint16(6), - 1456: uint16(975), - 1457: uint16(572), - 1458: uint16(6), - 1459: uint16(1559), - 1460: uint16(1019), - 1461: uint16(1019), - 1462: uint16(1021), - 1463: uint16(6), - 1464: uint16(346), - 1465: uint16(218), - 1466: uint16(101), - 1467: uint16(531), - 1468: uint16(53), - 1469: uint16(53), - 1470: uint16(69), - 1471: uint16(69), - 1472: uint16(1019), - 1473: uint16(1019), - 1474: uint16(1021), - 1475: uint16(1022), - 1476: uint16(28), - 1477: uint16(1586), - 1478: uint16(1181), - 1479: uint16(451), - 1480: uint16(70), - 1481: uint16(70), - 1482: uint16(290), - 1483: uint16(87), - 1484: uint16(215), - 1485: uint16(31), - 1486: uint16(1363), - 1487: uint16(394), - 1488: uint16(394), - 1489: uint16(393), - 1490: uint16(275), - 1491: uint16(391), - 1492: uint16(350), - 1493: uint16(109), - 1494: uint16(852), - 1495: uint16(107), - 1496: uint16(572), - 1497: uint16(112), - 1498: uint16(564), - 1499: uint16(483), - 1500: uint16(4), - 1501: uint16(1212), - 1502: uint16(572), - 1503: uint16(239), - 1504: uint16(153), - 1505: uint16(572), - 1506: uint16(39), - 1507: uint16(236), - 1508: uint16(1299), - 1509: uint16(325), - 1510: uint16(112), - 1511: uint16(564), - 1512: uint16(1298), - 1513: uint16(4), - 1514: uint16(567), - 1515: uint16(572), - 1516: uint16(32), - 1517: uint16(324), - 1518: uint16(572), - 1519: uint16(54), - 1520: uint16(54), - 1521: uint16(572), - 1522: uint16(1135), - 1523: uint16(353), - 1524: uint16(398), - 1525: uint16(165), - 1526: uint16(165), - 1527: uint16(567), - 1528: uint16(166), - 1529: uint16(166), - 1530: uint16(572), - 1531: uint16(291), - 1532: uint16(355), - 1533: uint16(572), - 1534: uint16(17), - 1535: uint16(357), - 1536: uint16(572), - 1537: uint16(449), - 1538: uint16(77), - 1539: uint16(77), - 1540: uint16(1313), - 1541: uint16(55), - 1542: uint16(55), - 1543: uint16(1297), - 1544: uint16(73), - 1545: uint16(73), - 1546: uint16(572), - 1547: uint16(238), - 1548: uint16(470), - 1549: uint16(561), - 1550: uint16(449), - 1551: uint16(472), - 1552: uint16(364), - 1553: uint16(135), - 1554: uint16(135), - 1555: uint16(170), - 1556: uint16(74), - 1557: uint16(74), - 1558: uint16(142), - 1559: uint16(163), - 1560: uint16(163), - 1561: uint16(374), - 1562: uint16(561), - 1563: uint16(539), - 1564: uint16(572), - 1565: uint16(321), - 1566: uint16(572), - 1567: uint16(886), - 1568: uint16(540), - 1569: uint16(137), - 1570: uint16(137), - 1571: uint16(339), - 1572: uint16(1353), - 1573: uint16(422), - 1574: uint16(298), - 1575: uint16(237), - 1576: uint16(539), - 1577: uint16(572), - 1578: uint16(1031), - 1579: uint16(572), - 1580: uint16(340), - 1581: uint16(538), - 1582: uint16(101), - 1583: uint16(369), - 1584: uint16(110), - 1585: uint16(110), - 1586: uint16(162), - 1587: uint16(131), - 1588: uint16(131), - 1589: uint16(164), - 1590: uint16(164), - 1591: uint16(1031), - 1592: uint16(111), - 1593: uint16(368), - 1594: uint16(449), - 1595: uint16(573), - 1596: uint16(449), + 1342: uint16(1126), + 1343: uint16(1576), + 1344: uint16(449), + 1345: uint16(576), + 1346: uint16(462), + 1347: uint16(7), + 1348: uint16(1282), + 1349: uint16(418), + 1350: uint16(462), + 1351: uint16(350), + 1352: uint16(1435), + 1353: uint16(576), + 1354: uint16(518), + 1355: uint16(571), + 1356: uint16(544), + 1357: uint16(1127), + 1358: uint16(121), + 1359: uint16(568), + 1360: uint16(442), + 1361: uint16(4), + 1362: uint16(1188), + 1363: uint16(464), + 1364: uint16(533), + 1365: uint16(1180), + 1366: uint16(1223), + 1367: uint16(9), + 1368: uint16(67), + 1369: uint16(67), + 1370: uint16(487), + 1371: uint16(576), + 1372: uint16(1128), + 1373: uint16(303), + 1374: uint16(410), + 1375: uint16(571), + 1376: uint16(54), + 1377: uint16(54), + 1378: uint16(451), + 1379: uint16(576), + 1380: uint16(123), + 1381: uint16(944), + 1382: uint16(576), + 1383: uint16(417), + 1384: uint16(576), + 1385: uint16(333), + 1386: uint16(943), + 1387: uint16(1379), + 1388: uint16(576), + 1389: uint16(236), + 1390: uint16(565), + 1391: uint16(576), + 1392: uint16(1574), + 1393: uint16(564), + 1394: uint16(68), + 1395: uint16(68), + 1396: uint16(7), + 1397: uint16(576), + 1398: uint16(451), + 1399: uint16(362), + 1400: uint16(419), + 1401: uint16(182), + 1402: uint16(69), + 1403: uint16(69), + 1404: uint16(541), + 1405: uint16(70), + 1406: uint16(70), + 1407: uint16(71), + 1408: uint16(71), + 1409: uint16(540), + 1410: uint16(565), + 1411: uint16(72), + 1412: uint16(72), + 1413: uint16(484), + 1414: uint16(55), + 1415: uint16(55), + 1416: uint16(473), + 1417: uint16(1180), + 1418: uint16(296), + 1419: uint16(1040), + 1420: uint16(56), + 1421: uint16(56), + 1422: uint16(296), + 1423: uint16(493), + 1424: uint16(541), + 1425: uint16(119), + 1426: uint16(119), + 1427: uint16(410), + 1428: uint16(1573), + 1429: uint16(542), + 1430: uint16(569), + 1431: uint16(418), + 1432: uint16(7), + 1433: uint16(120), + 1434: uint16(1244), + 1435: uint16(451), + 1436: uint16(577), + 1437: uint16(451), + 1438: uint16(465), + 1439: uint16(1040), + 1440: uint16(1028), + 1441: uint16(576), + 1442: uint16(1557), + 1443: uint16(552), + 1444: uint16(476), + 1445: uint16(119), + 1446: uint16(119), + 1447: uint16(527), + 1448: uint16(259), + 1449: uint16(121), + 1450: uint16(568), + 1451: uint16(240), + 1452: uint16(4), + 1453: uint16(120), + 1454: uint16(576), + 1455: uint16(451), + 1456: uint16(577), + 1457: uint16(451), + 1458: uint16(576), + 1459: uint16(477), + 1460: uint16(1028), + 1461: uint16(576), + 1462: uint16(156), + 1463: uint16(576), + 1464: uint16(57), + 1465: uint16(57), + 1466: uint16(571), + 1467: uint16(576), + 1468: uint16(286), + 1469: uint16(229), + 1470: uint16(410), + 1471: uint16(336), + 1472: uint16(1028), + 1473: uint16(1028), + 1474: uint16(1030), + 1475: uint16(1031), + 1476: uint16(35), + 1477: uint16(59), + 1478: uint16(59), + 1479: uint16(219), + 1480: uint16(983), + 1481: uint16(60), + 1482: uint16(60), + 1483: uint16(220), + 1484: uint16(73), + 1485: uint16(73), + 1486: uint16(74), + 1487: uint16(74), + 1488: uint16(984), + 1489: uint16(451), + 1490: uint16(75), + 1491: uint16(75), + 1492: uint16(1028), + 1493: uint16(1028), + 1494: uint16(1030), + 1495: uint16(1031), + 1496: uint16(35), + 1497: uint16(96), + 1498: uint16(216), + 1499: uint16(291), + 1500: uint16(552), + 1501: uint16(565), + 1502: uint16(1188), + 1503: uint16(318), + 1504: uint16(395), + 1505: uint16(395), + 1506: uint16(394), + 1507: uint16(276), + 1508: uint16(392), + 1509: uint16(576), + 1510: uint16(485), + 1511: uint16(859), + 1512: uint16(474), + 1513: uint16(1311), + 1514: uint16(410), + 1515: uint16(541), + 1516: uint16(576), + 1517: uint16(417), + 1518: uint16(1530), + 1519: uint16(1144), + 1520: uint16(540), + 1521: uint16(399), + 1522: uint16(1188), + 1523: uint16(292), + 1524: uint16(237), + 1525: uint16(1153), + 1526: uint16(326), + 1527: uint16(38), + 1528: uint16(23), + 1529: uint16(576), + 1530: uint16(1040), + 1531: uint16(576), + 1532: uint16(20), + 1533: uint16(20), + 1534: uint16(325), + 1535: uint16(299), + 1536: uint16(119), + 1537: uint16(119), + 1538: uint16(164), + 1539: uint16(76), + 1540: uint16(76), + 1541: uint16(1529), + 1542: uint16(121), + 1543: uint16(568), + 1544: uint16(120), + 1545: uint16(4), + 1546: uint16(451), + 1547: uint16(577), + 1548: uint16(451), + 1549: uint16(203), + 1550: uint16(576), + 1551: uint16(1028), + 1552: uint16(141), + 1553: uint16(141), + 1554: uint16(142), + 1555: uint16(142), + 1556: uint16(576), + 1557: uint16(322), + 1558: uint16(39), + 1559: uint16(571), + 1560: uint16(341), + 1561: uint16(1021), + 1562: uint16(110), + 1563: uint16(264), + 1564: uint16(239), + 1565: uint16(901), + 1566: uint16(900), + 1567: uint16(423), + 1568: uint16(242), + 1569: uint16(908), + 1570: uint16(909), + 1571: uint16(370), + 1572: uint16(173), + 1573: uint16(77), + 1574: uint16(77), + 1575: uint16(43), + 1576: uint16(479), + 1577: uint16(1310), + 1578: uint16(264), + 1579: uint16(62), + 1580: uint16(62), + 1581: uint16(369), + 1582: uint16(451), + 1583: uint16(1028), + 1584: uint16(1028), + 1585: uint16(1030), + 1586: uint16(1031), + 1587: uint16(35), + 1588: uint16(1601), + 1589: uint16(1192), + 1590: uint16(453), + 1591: uint16(1092), + 1592: uint16(238), + 1593: uint16(291), + 1594: uint16(565), + 1595: uint16(163), + 1596: uint16(1309), 1597: uint16(110), - 1598: uint16(110), - 1599: uint16(1019), - 1600: uint16(157), - 1601: uint16(157), - 1602: uint16(141), - 1603: uint16(141), - 1604: uint16(572), - 1605: uint16(111), - 1606: uint16(572), - 1607: uint16(449), - 1608: uint16(573), - 1609: uint16(449), - 1610: uint16(412), - 1611: uint16(288), - 1612: uint16(1019), - 1613: uint16(572), - 1614: uint16(882), - 1615: uint16(318), - 1616: uint16(563), - 1617: uint16(572), - 1618: uint16(219), - 1619: uint16(572), - 1620: uint16(241), - 1621: uint16(1012), - 1622: uint16(477), - 1623: uint16(263), - 1624: uint16(263), - 1625: uint16(894), - 1626: uint16(893), - 1627: uint16(140), - 1628: uint16(140), - 1629: uint16(138), - 1630: uint16(138), - 1631: uint16(1019), - 1632: uint16(1019), - 1633: uint16(1021), - 1634: uint16(1022), - 1635: uint16(28), - 1636: uint16(139), - 1637: uint16(139), - 1638: uint16(525), - 1639: uint16(455), - 1640: uint16(76), - 1641: uint16(76), - 1642: uint16(78), - 1643: uint16(78), - 1644: uint16(1019), - 1645: uint16(1019), - 1646: uint16(1021), - 1647: uint16(1022), - 1648: uint16(28), - 1649: uint16(1181), - 1650: uint16(451), - 1651: uint16(572), - 1652: uint16(1083), - 1653: uint16(290), - 1654: uint16(112), - 1655: uint16(564), - 1656: uint16(1575), - 1657: uint16(4), - 1658: uint16(394), - 1659: uint16(394), - 1660: uint16(393), - 1661: uint16(275), - 1662: uint16(391), - 1663: uint16(572), - 1664: uint16(1023), - 1665: uint16(852), - 1666: uint16(572), - 1667: uint16(479), - 1668: uint16(345), - 1669: uint16(263), - 1670: uint16(101), - 1671: uint16(567), - 1672: uint16(882), - 1673: uint16(1376), - 1674: uint16(75), - 1675: uint16(75), - 1676: uint16(1421), - 1677: uint16(501), - 1678: uint16(236), - 1679: uint16(260), - 1680: uint16(325), - 1681: uint16(112), - 1682: uint16(564), - 1683: uint16(359), - 1684: uint16(4), - 1685: uint16(101), - 1686: uint16(43), - 1687: uint16(43), - 1688: uint16(324), - 1689: uint16(49), - 1690: uint16(49), - 1691: uint16(901), - 1692: uint16(902), - 1693: uint16(161), - 1694: uint16(449), - 1695: uint16(101), - 1696: uint16(977), - 1697: uint16(978), - 1698: uint16(567), - 1699: uint16(1079), - 1700: uint16(1349), - 1701: uint16(260), - 1702: uint16(965), - 1703: uint16(932), - 1704: uint16(263), - 1705: uint16(114), - 1706: uint16(561), - 1707: uint16(1095), - 1708: uint16(517), - 1709: uint16(1095), - 1710: uint16(1083), - 1711: uint16(1094), - 1712: uint16(865), - 1713: uint16(1094), - 1714: uint16(151), - 1715: uint16(933), - 1716: uint16(1144), - 1717: uint16(114), - 1718: uint16(238), - 1719: uint16(1361), - 1720: uint16(558), - 1721: uint16(449), - 1722: uint16(1023), - 1723: uint16(559), - 1724: uint16(1426), - 1725: uint16(1278), - 1726: uint16(170), - 1727: uint16(1269), - 1728: uint16(1257), - 1729: uint16(142), - 1730: uint16(1601), - 1731: uint16(1256), - 1732: uint16(1258), - 1733: uint16(561), - 1734: uint16(1594), - 1735: uint16(1031), - 1736: uint16(496), - 1737: uint16(278), - 1738: uint16(213), - 1739: uint16(1346), - 1740: uint16(310), - 1741: uint16(110), - 1742: uint16(110), - 1743: uint16(939), - 1744: uint16(311), - 1745: uint16(312), - 1746: uint16(237), - 1747: uint16(11), - 1748: uint16(234), - 1749: uint16(111), - 1750: uint16(221), - 1751: uint16(449), - 1752: uint16(573), - 1753: uint16(449), - 1754: uint16(293), - 1755: uint16(395), - 1756: uint16(1019), - 1757: uint16(1408), - 1758: uint16(337), - 1759: uint16(1403), - 1760: uint16(1396), - 1761: uint16(338), - 1762: uint16(1031), - 1763: uint16(299), - 1764: uint16(343), - 1765: uint16(1413), - 1766: uint16(1412), - 1767: uint16(481), - 1768: uint16(110), - 1769: uint16(110), - 1770: uint16(506), - 1771: uint16(402), - 1772: uint16(225), - 1773: uint16(1296), - 1774: uint16(206), - 1775: uint16(367), - 1776: uint16(111), - 1777: uint16(1358), - 1778: uint16(449), - 1779: uint16(573), - 1780: uint16(449), - 1781: uint16(412), - 1782: uint16(1359), - 1783: uint16(1019), - 1784: uint16(1489), - 1785: uint16(1488), - 1786: uint16(318), - 1787: uint16(563), - 1788: uint16(1019), - 1789: uint16(1019), - 1790: uint16(1021), - 1791: uint16(1022), - 1792: uint16(28), - 1793: uint16(562), - 1794: uint16(207), - 1795: uint16(220), - 1796: uint16(80), - 1797: uint16(564), - 1798: uint16(389), - 1799: uint16(4), - 1800: uint16(1597), - 1801: uint16(1357), - 1802: uint16(552), - 1803: uint16(1356), - 1804: uint16(1233), - 1805: uint16(181), - 1806: uint16(267), - 1807: uint16(232), - 1808: uint16(1536), - 1809: uint16(1534), - 1810: uint16(455), - 1811: uint16(1230), - 1812: uint16(420), - 1813: uint16(567), - 1814: uint16(82), - 1815: uint16(1019), - 1816: uint16(1019), - 1817: uint16(1021), - 1818: uint16(1022), - 1819: uint16(28), - 1820: uint16(86), - 1821: uint16(217), - 1822: uint16(85), - 1823: uint16(1494), - 1824: uint16(190), - 1825: uint16(175), - 1826: uint16(183), - 1827: uint16(465), - 1828: uint16(185), - 1829: uint16(466), - 1830: uint16(36), - 1831: uint16(1409), - 1832: uint16(186), - 1833: uint16(187), - 1834: uint16(188), - 1835: uint16(499), - 1836: uint16(449), - 1837: uint16(244), - 1838: uint16(37), - 1839: uint16(99), - 1840: uint16(400), - 1841: uint16(1415), - 1842: uint16(1414), - 1843: uint16(488), - 1844: uint16(1417), - 1845: uint16(194), - 1846: uint16(473), - 1847: uint16(403), - 1848: uint16(561), - 1849: uint16(1483), - 1850: uint16(248), - 1851: uint16(92), - 1852: uint16(1505), - 1853: uint16(494), - 1854: uint16(198), - 1855: uint16(279), - 1856: uint16(112), - 1857: uint16(564), - 1858: uint16(250), - 1859: uint16(4), - 1860: uint16(348), - 1861: uint16(497), - 1862: uint16(405), - 1863: uint16(352), - 1864: uint16(1259), - 1865: uint16(251), - 1866: uint16(252), - 1867: uint16(515), - 1868: uint16(1316), - 1869: uint16(434), - 1870: uint16(1315), - 1871: uint16(1314), - 1872: uint16(94), - 1873: uint16(567), - 1874: uint16(1307), - 1875: uint16(886), - 1876: uint16(1306), - 1877: uint16(1031), - 1878: uint16(226), - 1879: uint16(406), - 1880: uint16(1611), - 1881: uint16(1610), - 1882: uint16(438), - 1883: uint16(110), - 1884: uint16(110), - 1885: uint16(1580), - 1886: uint16(1286), - 1887: uint16(524), - 1888: uint16(439), - 1889: uint16(308), - 1890: uint16(266), - 1891: uint16(111), - 1892: uint16(1285), - 1893: uint16(449), - 1894: uint16(573), - 1895: uint16(449), - 1896: uint16(449), - 1897: uint16(309), - 1898: uint16(1019), - 1899: uint16(366), - 1900: uint16(1284), - 1901: uint16(1609), - 1902: uint16(265), - 1903: uint16(1566), - 1904: uint16(1565), - 1905: uint16(442), - 1906: uint16(372), - 1907: uint16(1381), - 1908: uint16(561), - 1909: uint16(129), - 1910: uint16(550), - 1911: uint16(1380), - 1912: uint16(10), - 1913: uint16(1470), - 1914: uint16(383), - 1915: uint16(106), - 1916: uint16(316), - 1917: uint16(551), - 1918: uint16(100), - 1919: uint16(35), - 1920: uint16(534), - 1921: uint16(575), - 1922: uint16(212), - 1923: uint16(1339), - 1924: uint16(381), - 1925: uint16(387), - 1926: uint16(1187), - 1927: uint16(1338), - 1928: uint16(274), - 1929: uint16(276), - 1930: uint16(1019), - 1931: uint16(1019), - 1932: uint16(1021), - 1933: uint16(1022), - 1934: uint16(28), - 1935: uint16(277), - 1936: uint16(413), - 1937: uint16(1031), - 1938: uint16(576), - 1939: uint16(1254), - 1940: uint16(388), - 1941: uint16(1521), - 1942: uint16(1249), - 1943: uint16(110), - 1944: uint16(110), - 1945: uint16(167), - 1946: uint16(1522), - 1947: uint16(168), - 1948: uint16(148), - 1949: uint16(1520), - 1950: uint16(1519), - 1951: uint16(111), - 1952: uint16(306), - 1953: uint16(449), - 1954: uint16(573), - 1955: uint16(449), - 1956: uint16(222), - 1957: uint16(223), - 1958: uint16(1019), - 1959: uint16(839), - 1960: uint16(169), - 1961: uint16(79), - 1962: uint16(450), - 1963: uint16(214), - 1964: uint16(414), - 1965: uint16(233), - 1966: uint16(320), - 1967: uint16(145), - 1968: uint16(1093), - 1969: uint16(1091), - 1970: uint16(328), - 1971: uint16(182), - 1972: uint16(171), - 1973: uint16(1212), - 1974: uint16(918), - 1975: uint16(184), - 1976: uint16(240), - 1977: uint16(336), - 1978: uint16(243), - 1979: uint16(1107), - 1980: uint16(189), - 1981: uint16(172), - 1982: uint16(173), - 1983: uint16(423), - 1984: uint16(425), - 1985: uint16(88), - 1986: uint16(180), - 1987: uint16(191), - 1988: uint16(89), - 1989: uint16(90), - 1990: uint16(1019), - 1991: uint16(1019), - 1992: uint16(1021), - 1993: uint16(1022), - 1994: uint16(28), - 1995: uint16(91), - 1996: uint16(174), - 1997: uint16(1110), - 1998: uint16(245), - 1999: uint16(1106), - 2000: uint16(246), - 2001: uint16(159), - 2002: uint16(18), - 2003: uint16(247), - 2004: uint16(347), - 2005: uint16(1099), - 2006: uint16(263), - 2007: uint16(195), - 2008: uint16(1227), - 2009: uint16(493), - 2010: uint16(249), - 2011: uint16(196), - 2012: uint16(38), - 2013: uint16(854), - 2014: uint16(498), - 2015: uint16(368), - 2016: uint16(253), - 2017: uint16(360), - 2018: uint16(897), - 2019: uint16(197), - 2020: uint16(502), - 2021: uint16(93), - 2022: uint16(19), - 2023: uint16(20), - 2024: uint16(507), - 2025: uint16(884), - 2026: uint16(363), - 2027: uint16(510), - 2028: uint16(95), - 2029: uint16(307), - 2030: uint16(160), - 2031: uint16(96), - 2032: uint16(518), - 2033: uint16(97), - 2034: uint16(1175), - 2035: uint16(1060), - 2036: uint16(1146), - 2037: uint16(40), - 2038: uint16(21), - 2039: uint16(227), - 2040: uint16(176), - 2041: uint16(1145), - 2042: uint16(282), - 2043: uint16(284), - 2044: uint16(969), - 2045: uint16(200), - 2046: uint16(963), - 2047: uint16(114), - 2048: uint16(262), - 2049: uint16(1165), - 2050: uint16(22), - 2051: uint16(23), - 2052: uint16(24), - 2053: uint16(1161), - 2054: uint16(1169), - 2055: uint16(25), - 2056: uint16(1163), - 2057: uint16(1150), - 2058: uint16(34), - 2059: uint16(26), - 2060: uint16(1168), - 2061: uint16(546), - 2062: uint16(27), - 2063: uint16(204), - 2064: uint16(101), - 2065: uint16(103), - 2066: uint16(104), - 2067: uint16(1074), - 2068: uint16(7), - 2069: uint16(1061), - 2070: uint16(1059), - 2071: uint16(1063), - 2072: uint16(1116), - 2073: uint16(1064), - 2074: uint16(1115), - 2075: uint16(268), - 2076: uint16(269), - 2077: uint16(29), - 2078: uint16(41), - 2079: uint16(270), - 2080: uint16(1024), - 2081: uint16(866), - 2082: uint16(113), - 2083: uint16(30), - 2084: uint16(568), - 2085: uint16(392), - 2086: uint16(1183), - 2087: uint16(144), - 2088: uint16(178), - 2089: uint16(1182), - 2090: uint16(271), - 2091: uint16(928), - 2092: uint16(1245), - 2093: uint16(1245), - 2094: uint16(1245), - 2095: uint16(1245), - 2096: uint16(1245), - 2097: uint16(1245), - 2098: uint16(1245), - 2099: uint16(1602), -} -var _yy_lookahead = [2285]uint16{ - 0: uint16(193), - 1: uint16(193), - 2: uint16(193), - 3: uint16(274), - 4: uint16(275), - 5: uint16(276), - 6: uint16(193), - 7: uint16(274), - 8: uint16(275), - 9: uint16(276), - 10: uint16(193), - 11: uint16(223), - 12: uint16(219), - 13: uint16(225), - 14: uint16(206), - 15: uint16(210), - 16: uint16(211), - 17: uint16(212), - 18: uint16(193), + 1598: uint16(395), + 1599: uint16(395), + 1600: uint16(394), + 1601: uint16(276), + 1602: uint16(392), + 1603: uint16(986), + 1604: uint16(987), + 1605: uint16(859), + 1606: uint16(481), + 1607: uint16(346), + 1608: uint16(264), + 1609: uint16(110), + 1610: uint16(1032), + 1611: uint16(489), + 1612: uint16(576), + 1613: uint16(1188), + 1614: uint16(503), + 1615: uint16(1088), + 1616: uint16(261), + 1617: uint16(261), + 1618: uint16(237), + 1619: uint16(576), + 1620: uint16(326), + 1621: uint16(121), + 1622: uint16(568), + 1623: uint16(1040), + 1624: uint16(4), + 1625: uint16(347), + 1626: uint16(1376), + 1627: uint16(413), + 1628: uint16(325), + 1629: uint16(119), + 1630: uint16(119), + 1631: uint16(948), + 1632: uint16(319), + 1633: uint16(567), + 1634: uint16(351), + 1635: uint16(78), + 1636: uint16(78), + 1637: uint16(120), + 1638: uint16(571), + 1639: uint16(451), + 1640: uint16(577), + 1641: uint16(451), + 1642: uint16(79), + 1643: uint16(79), + 1644: uint16(1028), + 1645: uint16(354), + 1646: uint16(356), + 1647: uint16(576), + 1648: uint16(360), + 1649: uint16(1092), + 1650: uint16(110), + 1651: uint16(576), + 1652: uint16(974), + 1653: uint16(942), + 1654: uint16(264), + 1655: uint16(123), + 1656: uint16(457), + 1657: uint16(358), + 1658: uint16(239), + 1659: uint16(576), + 1660: uint16(519), + 1661: uint16(451), + 1662: uint16(939), + 1663: uint16(1104), + 1664: uint16(123), + 1665: uint16(1104), + 1666: uint16(173), + 1667: uint16(576), + 1668: uint16(1032), + 1669: uint16(43), + 1670: uint16(63), + 1671: uint16(63), + 1672: uint16(1324), + 1673: uint16(565), + 1674: uint16(168), + 1675: uint16(168), + 1676: uint16(1028), + 1677: uint16(1028), + 1678: uint16(1030), + 1679: uint16(1031), + 1680: uint16(35), + 1681: uint16(576), + 1682: uint16(169), + 1683: uint16(169), + 1684: uint16(1308), + 1685: uint16(872), + 1686: uint16(238), + 1687: uint16(157), + 1688: uint16(1589), + 1689: uint16(576), + 1690: uint16(86), + 1691: uint16(86), + 1692: uint16(365), + 1693: uint16(89), + 1694: uint16(568), + 1695: uint16(375), + 1696: uint16(4), + 1697: uint16(1103), + 1698: uint16(941), + 1699: uint16(1103), + 1700: uint16(123), + 1701: uint16(576), + 1702: uint16(1040), + 1703: uint16(1389), + 1704: uint16(64), + 1705: uint16(64), + 1706: uint16(1188), + 1707: uint16(1434), + 1708: uint16(119), + 1709: uint16(119), + 1710: uint16(571), + 1711: uint16(576), + 1712: uint16(82), + 1713: uint16(82), + 1714: uint16(563), + 1715: uint16(576), + 1716: uint16(120), + 1717: uint16(165), + 1718: uint16(451), + 1719: uint16(577), + 1720: uint16(451), + 1721: uint16(413), + 1722: uint16(1362), + 1723: uint16(1028), + 1724: uint16(144), + 1725: uint16(144), + 1726: uint16(319), + 1727: uint16(567), + 1728: uint16(576), + 1729: uint16(1374), + 1730: uint16(562), + 1731: uint16(498), + 1732: uint16(279), + 1733: uint16(451), + 1734: uint16(83), + 1735: uint16(83), + 1736: uint16(1439), + 1737: uint16(576), + 1738: uint16(166), + 1739: uint16(166), + 1740: uint16(576), + 1741: uint16(1289), + 1742: uint16(554), + 1743: uint16(576), + 1744: uint16(1280), + 1745: uint16(565), + 1746: uint16(576), + 1747: uint16(12), + 1748: uint16(576), + 1749: uint16(1268), + 1750: uint16(457), + 1751: uint16(146), + 1752: uint16(146), + 1753: uint16(1267), + 1754: uint16(576), + 1755: uint16(1028), + 1756: uint16(1028), + 1757: uint16(1030), + 1758: uint16(1031), + 1759: uint16(35), + 1760: uint16(140), + 1761: uint16(140), + 1762: uint16(1269), + 1763: uint16(167), + 1764: uint16(167), + 1765: uint16(1609), + 1766: uint16(160), + 1767: uint16(160), + 1768: uint16(1359), + 1769: uint16(150), + 1770: uint16(150), + 1771: uint16(149), + 1772: uint16(149), + 1773: uint16(311), + 1774: uint16(1040), + 1775: uint16(576), + 1776: uint16(312), + 1777: uint16(147), + 1778: uint16(147), + 1779: uint16(313), + 1780: uint16(119), + 1781: uint16(119), + 1782: uint16(222), + 1783: uint16(235), + 1784: uint16(576), + 1785: uint16(1188), + 1786: uint16(396), + 1787: uint16(576), + 1788: uint16(120), + 1789: uint16(576), + 1790: uint16(451), + 1791: uint16(577), + 1792: uint16(451), + 1793: uint16(1192), + 1794: uint16(453), + 1795: uint16(1028), + 1796: uint16(508), + 1797: uint16(291), + 1798: uint16(148), + 1799: uint16(148), + 1800: uint16(1421), + 1801: uint16(1612), + 1802: uint16(395), + 1803: uint16(395), + 1804: uint16(394), + 1805: uint16(276), + 1806: uint16(392), + 1807: uint16(85), + 1808: uint16(85), + 1809: uint16(859), + 1810: uint16(87), + 1811: uint16(87), + 1812: uint16(84), + 1813: uint16(84), + 1814: uint16(553), + 1815: uint16(576), + 1816: uint16(294), + 1817: uint16(576), + 1818: uint16(1426), + 1819: uint16(338), + 1820: uint16(339), + 1821: uint16(1425), + 1822: uint16(237), + 1823: uint16(300), + 1824: uint16(326), + 1825: uint16(1416), + 1826: uint16(1409), + 1827: uint16(1028), + 1828: uint16(1028), + 1829: uint16(1030), + 1830: uint16(1031), + 1831: uint16(35), + 1832: uint16(325), + 1833: uint16(344), + 1834: uint16(403), + 1835: uint16(483), + 1836: uint16(226), + 1837: uint16(1307), + 1838: uint16(52), + 1839: uint16(52), + 1840: uint16(58), + 1841: uint16(58), + 1842: uint16(368), + 1843: uint16(1371), + 1844: uint16(1502), + 1845: uint16(566), + 1846: uint16(1501), + 1847: uint16(121), + 1848: uint16(568), + 1849: uint16(221), + 1850: uint16(4), + 1851: uint16(208), + 1852: uint16(268), + 1853: uint16(209), + 1854: uint16(390), + 1855: uint16(1244), + 1856: uint16(1549), + 1857: uint16(1188), + 1858: uint16(1372), + 1859: uint16(1370), + 1860: uint16(1369), + 1861: uint16(1547), + 1862: uint16(239), + 1863: uint16(184), + 1864: uint16(571), + 1865: uint16(233), + 1866: uint16(421), + 1867: uint16(1241), + 1868: uint16(95), + 1869: uint16(218), + 1870: uint16(173), + 1871: uint16(1507), + 1872: uint16(193), + 1873: uint16(43), + 1874: uint16(91), + 1875: uint16(94), + 1876: uint16(178), + 1877: uint16(186), + 1878: uint16(467), + 1879: uint16(188), + 1880: uint16(468), + 1881: uint16(1422), + 1882: uint16(13), + 1883: uint16(189), + 1884: uint16(190), + 1885: uint16(191), + 1886: uint16(501), + 1887: uint16(451), + 1888: uint16(245), + 1889: uint16(108), + 1890: uint16(238), + 1891: uint16(401), + 1892: uint16(1428), + 1893: uint16(1427), + 1894: uint16(1430), + 1895: uint16(475), + 1896: uint16(404), + 1897: uint16(1496), + 1898: uint16(197), + 1899: uint16(565), + 1900: uint16(14), + 1901: uint16(490), + 1902: uint16(249), + 1903: uint16(101), + 1904: uint16(1518), + 1905: uint16(496), + 1906: uint16(349), + 1907: uint16(280), + 1908: uint16(251), + 1909: uint16(201), + 1910: uint16(353), + 1911: uint16(499), + 1912: uint16(252), + 1913: uint16(406), + 1914: uint16(1270), + 1915: uint16(253), + 1916: uint16(517), + 1917: uint16(1327), + 1918: uint16(1326), + 1919: uint16(435), + 1920: uint16(1325), + 1921: uint16(1318), + 1922: uint16(103), + 1923: uint16(893), + 1924: uint16(1296), + 1925: uint16(413), + 1926: uint16(227), + 1927: uint16(407), + 1928: uint16(1040), + 1929: uint16(1626), + 1930: uint16(319), + 1931: uint16(567), + 1932: uint16(1625), + 1933: uint16(1297), + 1934: uint16(119), + 1935: uint16(119), + 1936: uint16(439), + 1937: uint16(367), + 1938: uint16(1317), + 1939: uint16(1295), + 1940: uint16(1624), + 1941: uint16(526), + 1942: uint16(120), + 1943: uint16(440), + 1944: uint16(451), + 1945: uint16(577), + 1946: uint16(451), + 1947: uint16(1594), + 1948: uint16(309), + 1949: uint16(1028), + 1950: uint16(310), + 1951: uint16(373), + 1952: uint16(266), + 1953: uint16(267), + 1954: uint16(457), + 1955: uint16(1580), + 1956: uint16(1579), + 1957: uint16(443), + 1958: uint16(138), + 1959: uint16(1394), + 1960: uint16(552), + 1961: uint16(1393), + 1962: uint16(11), + 1963: uint16(1483), + 1964: uint16(384), + 1965: uint16(115), + 1966: uint16(317), + 1967: uint16(1350), + 1968: uint16(109), + 1969: uint16(536), + 1970: uint16(42), + 1971: uint16(579), + 1972: uint16(382), + 1973: uint16(214), + 1974: uint16(1349), + 1975: uint16(388), + 1976: uint16(1198), + 1977: uint16(389), + 1978: uint16(275), + 1979: uint16(277), + 1980: uint16(278), + 1981: uint16(1028), + 1982: uint16(1028), + 1983: uint16(1030), + 1984: uint16(1031), + 1985: uint16(35), + 1986: uint16(580), + 1987: uint16(1265), + 1988: uint16(414), + 1989: uint16(1260), + 1990: uint16(170), + 1991: uint16(415), + 1992: uint16(183), + 1993: uint16(1534), + 1994: uint16(1535), + 1995: uint16(1533), + 1996: uint16(171), + 1997: uint16(154), + 1998: uint16(307), + 1999: uint16(1532), + 2000: uint16(846), + 2001: uint16(223), + 2002: uint16(224), + 2003: uint16(88), + 2004: uint16(452), + 2005: uint16(215), + 2006: uint16(172), + 2007: uint16(321), + 2008: uint16(234), + 2009: uint16(1102), + 2010: uint16(152), + 2011: uint16(1188), + 2012: uint16(1100), + 2013: uint16(329), + 2014: uint16(185), + 2015: uint16(174), + 2016: uint16(1223), + 2017: uint16(925), + 2018: uint16(187), + 2019: uint16(241), + 2020: uint16(337), + 2021: uint16(244), + 2022: uint16(1116), + 2023: uint16(192), + 2024: uint16(175), + 2025: uint16(176), + 2026: uint16(424), + 2027: uint16(426), + 2028: uint16(97), + 2029: uint16(194), + 2030: uint16(98), + 2031: uint16(99), + 2032: uint16(100), + 2033: uint16(177), + 2034: uint16(1119), + 2035: uint16(1115), + 2036: uint16(246), + 2037: uint16(247), + 2038: uint16(161), + 2039: uint16(24), + 2040: uint16(248), + 2041: uint16(348), + 2042: uint16(1238), + 2043: uint16(264), + 2044: uint16(1108), + 2045: uint16(250), + 2046: uint16(495), + 2047: uint16(199), + 2048: uint16(198), + 2049: uint16(15), + 2050: uint16(861), + 2051: uint16(500), + 2052: uint16(369), + 2053: uint16(254), + 2054: uint16(504), + 2055: uint16(509), + 2056: uint16(512), + 2057: uint16(200), + 2058: uint16(102), + 2059: uint16(25), + 2060: uint16(179), + 2061: uint16(361), + 2062: uint16(26), + 2063: uint16(364), + 2064: uint16(104), + 2065: uint16(891), + 2066: uint16(308), + 2067: uint16(162), + 2068: uint16(105), + 2069: uint16(904), + 2070: uint16(520), + 2071: uint16(106), + 2072: uint16(1185), + 2073: uint16(1069), + 2074: uint16(1155), + 2075: uint16(17), + 2076: uint16(228), + 2077: uint16(27), + 2078: uint16(1154), + 2079: uint16(283), + 2080: uint16(285), + 2081: uint16(263), + 2082: uint16(978), + 2083: uint16(202), + 2084: uint16(972), + 2085: uint16(123), + 2086: uint16(28), + 2087: uint16(1175), + 2088: uint16(29), + 2089: uint16(30), + 2090: uint16(1179), + 2091: uint16(1171), + 2092: uint16(31), + 2093: uint16(1173), + 2094: uint16(1160), + 2095: uint16(41), + 2096: uint16(32), + 2097: uint16(206), + 2098: uint16(548), + 2099: uint16(33), + 2100: uint16(110), + 2101: uint16(1178), + 2102: uint16(1083), + 2103: uint16(8), + 2104: uint16(112), + 2105: uint16(1070), + 2106: uint16(113), + 2107: uint16(1068), + 2108: uint16(1072), + 2109: uint16(34), + 2110: uint16(1073), + 2111: uint16(560), + 2112: uint16(1125), + 2113: uint16(269), + 2114: uint16(1124), + 2115: uint16(270), + 2116: uint16(36), + 2117: uint16(18), + 2118: uint16(1194), + 2119: uint16(1033), + 2120: uint16(873), + 2121: uint16(151), + 2122: uint16(122), + 2123: uint16(37), + 2124: uint16(393), + 2125: uint16(271), + 2126: uint16(272), + 2127: uint16(572), + 2128: uint16(181), + 2129: uint16(1193), + 2130: uint16(1256), + 2131: uint16(1256), + 2132: uint16(1256), + 2133: uint16(935), + 2134: uint16(1256), + 2135: uint16(1256), + 2136: uint16(1256), + 2137: uint16(1256), + 2138: uint16(1256), + 2139: uint16(1256), + 2140: uint16(1256), + 2141: uint16(1617), +} +var _yy_lookahead = [2328]uint16{ + 0: uint16(194), + 1: uint16(276), + 2: uint16(277), + 3: uint16(278), + 4: uint16(216), + 5: uint16(194), + 6: uint16(194), + 7: uint16(217), + 8: uint16(194), + 9: uint16(194), + 10: uint16(194), + 11: uint16(194), + 12: uint16(224), + 13: uint16(194), + 14: uint16(194), + 15: uint16(276), + 16: uint16(277), + 17: uint16(278), + 18: uint16(204), 19: uint16(19), - 20: uint16(219), - 21: uint16(233), - 22: uint16(216), - 23: uint16(216), - 24: uint16(217), - 25: uint16(216), - 26: uint16(217), - 27: uint16(193), - 28: uint16(295), - 29: uint16(216), - 30: uint16(217), + 20: uint16(206), + 21: uint16(202), + 22: uint16(297), + 23: uint16(217), + 24: uint16(218), + 25: uint16(205), + 26: uint16(207), + 27: uint16(217), + 28: uint16(205), + 29: uint16(217), + 30: uint16(218), 31: uint16(31), - 32: uint16(193), - 33: uint16(216), + 32: uint16(217), + 33: uint16(218), 34: uint16(217), - 35: uint16(193), - 36: uint16(228), - 37: uint16(213), - 38: uint16(230), + 35: uint16(218), + 36: uint16(29), + 37: uint16(217), + 38: uint16(218), 39: uint16(39), - 40: uint16(206), - 41: uint16(216), - 42: uint16(217), + 40: uint16(33), + 41: uint16(217), + 42: uint16(220), 43: uint16(43), 44: uint16(44), 45: uint16(45), @@ -149253,31 +150704,31 @@ var _yy_lookahead = [2285]uint16{ 55: uint16(55), 56: uint16(56), 57: uint16(57), - 58: uint16(193), + 58: uint16(312), 59: uint16(19), - 60: uint16(185), - 61: uint16(186), - 62: uint16(187), - 63: uint16(188), - 64: uint16(189), - 65: uint16(190), - 66: uint16(253), - 67: uint16(274), - 68: uint16(275), - 69: uint16(276), - 70: uint16(195), - 71: uint16(193), - 72: uint16(197), - 73: uint16(193), - 74: uint16(261), - 75: uint16(274), - 76: uint16(275), - 77: uint16(276), - 78: uint16(253), - 79: uint16(204), - 80: uint16(238), - 81: uint16(204), - 82: uint16(81), + 60: uint16(240), + 61: uint16(241), + 62: uint16(316), + 63: uint16(240), + 64: uint16(241), + 65: uint16(194), + 66: uint16(46), + 67: uint16(47), + 68: uint16(48), + 69: uint16(49), + 70: uint16(22), + 71: uint16(254), + 72: uint16(65), + 73: uint16(253), + 74: uint16(254), + 75: uint16(255), + 76: uint16(253), + 77: uint16(194), + 78: uint16(255), + 79: uint16(194), + 80: uint16(263), + 81: uint16(258), + 82: uint16(259), 83: uint16(43), 84: uint16(44), 85: uint16(45), @@ -149293,10 +150744,10 @@ var _yy_lookahead = [2285]uint16{ 95: uint16(55), 96: uint16(56), 97: uint16(57), - 98: uint16(274), - 99: uint16(275), - 100: uint16(276), - 101: uint16(262), + 98: uint16(276), + 99: uint16(277), + 100: uint16(278), + 101: uint16(285), 102: uint16(102), 103: uint16(103), 104: uint16(104), @@ -149309,34 +150760,34 @@ var _yy_lookahead = [2285]uint16{ 111: uint16(111), 112: uint16(112), 113: uint16(113), - 114: uint16(239), - 115: uint16(240), - 116: uint16(239), - 117: uint16(240), - 118: uint16(210), - 119: uint16(211), - 120: uint16(212), - 121: uint16(314), - 122: uint16(315), - 123: uint16(314), - 124: uint16(59), - 125: uint16(316), + 114: uint16(59), + 115: uint16(186), + 116: uint16(187), + 117: uint16(188), + 118: uint16(189), + 119: uint16(190), + 120: uint16(191), + 121: uint16(310), + 122: uint16(239), + 123: uint16(317), + 124: uint16(318), + 125: uint16(196), 126: uint16(86), - 127: uint16(252), + 127: uint16(198), 128: uint16(88), - 129: uint16(252), + 129: uint16(317), 130: uint16(19), - 131: uint16(314), - 132: uint16(315), - 133: uint16(256), - 134: uint16(257), - 135: uint16(113), + 131: uint16(319), + 132: uint16(317), + 133: uint16(318), + 134: uint16(205), + 135: uint16(264), 136: uint16(25), - 137: uint16(72), - 138: uint16(296), - 139: uint16(138), - 140: uint16(139), - 141: uint16(266), + 137: uint16(211), + 138: uint16(212), + 139: uint16(213), + 140: uint16(205), + 141: uint16(121), 142: uint16(102), 143: uint16(103), 144: uint16(104), @@ -149364,50 +150815,50 @@ var _yy_lookahead = [2285]uint16{ 166: uint16(55), 167: uint16(56), 168: uint16(57), - 169: uint16(81), - 170: uint16(292), - 171: uint16(59), - 172: uint16(292), - 173: uint16(298), - 174: uint16(108), - 175: uint16(109), - 176: uint16(110), - 177: uint16(111), - 178: uint16(112), - 179: uint16(113), + 169: uint16(240), + 170: uint16(241), + 171: uint16(116), + 172: uint16(117), + 173: uint16(118), + 174: uint16(119), + 175: uint16(240), + 176: uint16(241), + 177: uint16(122), + 178: uint16(123), + 179: uint16(124), 180: uint16(69), - 181: uint16(116), - 182: uint16(117), - 183: uint16(118), - 184: uint16(72), + 181: uint16(298), + 182: uint16(253), + 183: uint16(194), + 184: uint16(255), 185: uint16(106), 186: uint16(107), - 187: uint16(193), - 188: uint16(111), - 189: uint16(112), - 190: uint16(113), + 187: uint16(132), + 188: uint16(253), + 189: uint16(141), + 190: uint16(255), 191: uint16(54), 192: uint16(55), 193: uint16(56), 194: uint16(57), 195: uint16(58), - 196: uint16(102), - 197: uint16(103), - 198: uint16(104), - 199: uint16(105), - 200: uint16(106), - 201: uint16(107), - 202: uint16(108), - 203: uint16(109), - 204: uint16(110), - 205: uint16(111), - 206: uint16(112), - 207: uint16(113), - 208: uint16(120), - 209: uint16(25), - 210: uint16(216), - 211: uint16(217), - 212: uint16(145), + 196: uint16(207), + 197: uint16(268), + 198: uint16(102), + 199: uint16(103), + 200: uint16(104), + 201: uint16(105), + 202: uint16(106), + 203: uint16(107), + 204: uint16(108), + 205: uint16(109), + 206: uint16(110), + 207: uint16(111), + 208: uint16(112), + 209: uint16(113), + 210: uint16(214), + 211: uint16(128), + 212: uint16(129), 213: uint16(102), 214: uint16(103), 215: uint16(104), @@ -149420,13 +150871,13 @@ var _yy_lookahead = [2285]uint16{ 222: uint16(111), 223: uint16(112), 224: uint16(113), - 225: uint16(231), - 226: uint16(138), - 227: uint16(139), - 228: uint16(116), - 229: uint16(117), - 230: uint16(118), - 231: uint16(164), + 225: uint16(134), + 226: uint16(25), + 227: uint16(136), + 228: uint16(137), + 229: uint16(300), + 230: uint16(165), + 231: uint16(166), 232: uint16(153), 233: uint16(19), 234: uint16(155), @@ -149446,12 +150897,12 @@ var _yy_lookahead = [2285]uint16{ 248: uint16(111), 249: uint16(112), 250: uint16(113), - 251: uint16(128), - 252: uint16(129), - 253: uint16(46), - 254: uint16(47), - 255: uint16(48), - 256: uint16(49), + 251: uint16(108), + 252: uint16(109), + 253: uint16(110), + 254: uint16(111), + 255: uint16(112), + 256: uint16(113), 257: uint16(43), 258: uint16(44), 259: uint16(45), @@ -149467,15 +150918,15 @@ var _yy_lookahead = [2285]uint16{ 269: uint16(55), 270: uint16(56), 271: uint16(57), - 272: uint16(216), - 273: uint16(193), - 274: uint16(25), - 275: uint16(59), - 276: uint16(193), + 272: uint16(276), + 273: uint16(277), + 274: uint16(278), + 275: uint16(113), + 276: uint16(194), 277: uint16(19), - 278: uint16(165), - 279: uint16(166), - 280: uint16(193), + 278: uint16(22), + 279: uint16(23), + 280: uint16(194), 281: uint16(67), 282: uint16(24), 283: uint16(102), @@ -149490,12 +150941,12 @@ var _yy_lookahead = [2285]uint16{ 292: uint16(111), 293: uint16(112), 294: uint16(113), - 295: uint16(73), - 296: uint16(216), - 297: uint16(217), - 298: uint16(59), - 299: uint16(216), - 300: uint16(217), + 295: uint16(220), + 296: uint16(250), + 297: uint16(59), + 298: uint16(252), + 299: uint16(217), + 300: uint16(218), 301: uint16(43), 302: uint16(44), 303: uint16(45), @@ -149523,38 +150974,38 @@ var _yy_lookahead = [2285]uint16{ 325: uint16(111), 326: uint16(112), 327: uint16(113), - 328: uint16(121), - 329: uint16(145), - 330: uint16(59), - 331: uint16(193), - 332: uint16(116), - 333: uint16(117), - 334: uint16(118), - 335: uint16(119), - 336: uint16(273), - 337: uint16(204), - 338: uint16(122), - 339: uint16(123), - 340: uint16(124), + 328: uint16(106), + 329: uint16(107), + 330: uint16(108), + 331: uint16(109), + 332: uint16(110), + 333: uint16(111), + 334: uint16(112), + 335: uint16(113), + 336: uint16(254), + 337: uint16(59), + 338: uint16(205), + 339: uint16(138), + 340: uint16(139), 341: uint16(19), 342: uint16(20), - 343: uint16(134), + 343: uint16(194), 344: uint16(22), - 345: uint16(136), - 346: uint16(137), - 347: uint16(19), - 348: uint16(132), - 349: uint16(127), - 350: uint16(128), - 351: uint16(129), - 352: uint16(24), - 353: uint16(22), - 354: uint16(23), - 355: uint16(116), - 356: uint16(117), - 357: uint16(118), + 345: uint16(263), + 346: uint16(22), + 347: uint16(23), + 348: uint16(231), + 349: uint16(25), + 350: uint16(72), + 351: uint16(276), + 352: uint16(277), + 353: uint16(278), + 354: uint16(116), + 355: uint16(117), + 356: uint16(118), + 357: uint16(101), 358: uint16(36), - 359: uint16(193), + 359: uint16(76), 360: uint16(102), 361: uint16(103), 362: uint16(104), @@ -149567,37 +151018,37 @@ var _yy_lookahead = [2285]uint16{ 369: uint16(111), 370: uint16(112), 371: uint16(113), - 372: uint16(239), + 372: uint16(89), 373: uint16(240), - 374: uint16(311), - 375: uint16(312), - 376: uint16(215), - 377: uint16(106), - 378: uint16(107), - 379: uint16(241), + 374: uint16(241), + 375: uint16(92), + 376: uint16(73), + 377: uint16(194), + 378: uint16(194), + 379: uint16(73), 380: uint16(19), 381: uint16(59), - 382: uint16(216), - 383: uint16(217), - 384: uint16(223), - 385: uint16(252), - 386: uint16(115), - 387: uint16(116), - 388: uint16(117), - 389: uint16(118), - 390: uint16(151), - 391: uint16(120), - 392: uint16(26), + 382: uint16(188), + 383: uint16(189), + 384: uint16(190), + 385: uint16(191), + 386: uint16(253), + 387: uint16(81), + 388: uint16(255), + 389: uint16(151), + 390: uint16(196), + 391: uint16(25), + 392: uint16(198), 393: uint16(71), - 394: uint16(193), - 395: uint16(308), - 396: uint16(309), - 397: uint16(193), - 398: uint16(149), - 399: uint16(128), - 400: uint16(313), - 401: uint16(216), - 402: uint16(269), + 394: uint16(116), + 395: uint16(117), + 396: uint16(118), + 397: uint16(311), + 398: uint16(312), + 399: uint16(205), + 400: uint16(217), + 401: uint16(218), + 402: uint16(316), 403: uint16(81), 404: uint16(43), 405: uint16(44), @@ -149614,50 +151065,50 @@ var _yy_lookahead = [2285]uint16{ 416: uint16(55), 417: uint16(56), 418: uint16(57), - 419: uint16(253), - 420: uint16(216), - 421: uint16(217), + 419: uint16(270), + 420: uint16(22), + 421: uint16(23), 422: uint16(100), - 423: uint16(95), - 424: uint16(153), - 425: uint16(59), - 426: uint16(155), - 427: uint16(261), + 423: uint16(25), + 424: uint16(59), + 425: uint16(101), + 426: uint16(138), + 427: uint16(139), 428: uint16(106), 429: uint16(107), - 430: uint16(25), - 431: uint16(193), - 432: uint16(101), - 433: uint16(193), - 434: uint16(193), - 435: uint16(231), + 430: uint16(127), + 431: uint16(128), + 432: uint16(129), + 433: uint16(127), + 434: uint16(240), + 435: uint16(241), 436: uint16(114), - 437: uint16(25), + 437: uint16(254), 438: uint16(116), 439: uint16(117), 440: uint16(118), - 441: uint16(113), - 442: uint16(304), + 441: uint16(76), + 442: uint16(76), 443: uint16(121), - 444: uint16(193), - 445: uint16(204), - 446: uint16(59), - 447: uint16(119), - 448: uint16(120), - 449: uint16(121), - 450: uint16(122), - 451: uint16(123), - 452: uint16(124), - 453: uint16(125), - 454: uint16(216), - 455: uint16(217), - 456: uint16(193), - 457: uint16(216), - 458: uint16(217), - 459: uint16(131), + 444: uint16(138), + 445: uint16(139), + 446: uint16(263), + 447: uint16(253), + 448: uint16(264), + 449: uint16(255), + 450: uint16(205), + 451: uint16(275), + 452: uint16(87), + 453: uint16(19), + 454: uint16(89), + 455: uint16(89), + 456: uint16(194), + 457: uint16(92), + 458: uint16(92), + 459: uint16(199), 460: uint16(138), 461: uint16(139), - 462: uint16(230), + 462: uint16(268), 463: uint16(102), 464: uint16(103), 465: uint16(104), @@ -149675,37 +151126,37 @@ var _yy_lookahead = [2285]uint16{ 477: uint16(155), 478: uint16(156), 479: uint16(157), - 480: uint16(239), - 481: uint16(240), - 482: uint16(116), - 483: uint16(117), - 484: uint16(118), - 485: uint16(76), - 486: uint16(193), - 487: uint16(23), + 480: uint16(81), + 481: uint16(116), + 482: uint16(117), + 483: uint16(118), + 484: uint16(129), + 485: uint16(240), + 486: uint16(241), + 487: uint16(224), 488: uint16(19), - 489: uint16(25), - 490: uint16(22), - 491: uint16(253), + 489: uint16(226), + 490: uint16(314), + 491: uint16(315), 492: uint16(23), - 493: uint16(252), - 494: uint16(253), - 495: uint16(108), - 496: uint16(87), - 497: uint16(204), - 498: uint16(89), - 499: uint16(261), - 500: uint16(198), - 501: uint16(92), - 502: uint16(261), - 503: uint16(116), - 504: uint16(117), - 505: uint16(118), - 506: uint16(193), - 507: uint16(306), - 508: uint16(307), - 509: uint16(216), - 510: uint16(217), + 493: uint16(25), + 494: uint16(300), + 495: uint16(59), + 496: uint16(22), + 497: uint16(234), + 498: uint16(253), + 499: uint16(101), + 500: uint16(255), + 501: uint16(236), + 502: uint16(237), + 503: uint16(26), + 504: uint16(194), + 505: uint16(183), + 506: uint16(194), + 507: uint16(152), + 508: uint16(72), + 509: uint16(22), + 510: uint16(145), 511: uint16(150), 512: uint16(43), 513: uint16(44), @@ -149722,34 +151173,34 @@ var _yy_lookahead = [2285]uint16{ 524: uint16(55), 525: uint16(56), 526: uint16(57), - 527: uint16(59), - 528: uint16(193), - 529: uint16(216), - 530: uint16(217), + 527: uint16(217), + 528: uint16(218), + 529: uint16(217), + 530: uint16(218), 531: uint16(19), - 532: uint16(239), - 533: uint16(240), - 534: uint16(283), + 532: uint16(189), + 533: uint16(59), + 534: uint16(191), 535: uint16(23), - 536: uint16(106), - 537: uint16(107), - 538: uint16(108), - 539: uint16(109), - 540: uint16(110), - 541: uint16(111), - 542: uint16(112), - 543: uint16(113), - 544: uint16(73), - 545: uint16(252), - 546: uint16(253), - 547: uint16(142), - 548: uint16(308), - 549: uint16(309), - 550: uint16(138), - 551: uint16(139), - 552: uint16(81), - 553: uint16(313), - 554: uint16(145), + 536: uint16(59), + 537: uint16(138), + 538: uint16(139), + 539: uint16(196), + 540: uint16(135), + 541: uint16(198), + 542: uint16(232), + 543: uint16(283), + 544: uint16(232), + 545: uint16(140), + 546: uint16(59), + 547: uint16(287), + 548: uint16(205), + 549: uint16(275), + 550: uint16(116), + 551: uint16(205), + 552: uint16(116), + 553: uint16(117), + 554: uint16(118), 555: uint16(43), 556: uint16(44), 557: uint16(45), @@ -149765,7 +151216,7 @@ var _yy_lookahead = [2285]uint16{ 567: uint16(55), 568: uint16(56), 569: uint16(57), - 570: uint16(307), + 570: uint16(194), 571: uint16(102), 572: uint16(103), 573: uint16(104), @@ -149778,37 +151229,37 @@ var _yy_lookahead = [2285]uint16{ 580: uint16(111), 581: uint16(112), 582: uint16(113), - 583: uint16(281), - 584: uint16(116), - 585: uint16(117), - 586: uint16(118), - 587: uint16(285), - 588: uint16(23), - 589: uint16(193), - 590: uint16(25), - 591: uint16(119), - 592: uint16(59), - 593: uint16(193), - 594: uint16(122), - 595: uint16(123), - 596: uint16(124), - 597: uint16(59), - 598: uint16(127), - 599: uint16(203), + 583: uint16(240), + 584: uint16(241), + 585: uint16(194), + 586: uint16(240), + 587: uint16(241), + 588: uint16(314), + 589: uint16(315), + 590: uint16(116), + 591: uint16(117), + 592: uint16(118), + 593: uint16(116), + 594: uint16(117), + 595: uint16(118), + 596: uint16(253), + 597: uint16(194), + 598: uint16(255), + 599: uint16(253), 600: uint16(59), - 601: uint16(205), + 601: uint16(255), 602: uint16(19), - 603: uint16(268), - 604: uint16(132), - 605: uint16(25), + 603: uint16(116), + 604: uint16(117), + 605: uint16(118), 606: uint16(23), 607: uint16(22), - 608: uint16(193), - 609: uint16(138), - 610: uint16(139), - 611: uint16(249), - 612: uint16(204), - 613: uint16(251), + 608: uint16(217), + 609: uint16(218), + 610: uint16(142), + 611: uint16(268), + 612: uint16(205), + 613: uint16(275), 614: uint16(102), 615: uint16(103), 616: uint16(104), @@ -149837,29 +151288,29 @@ var _yy_lookahead = [2285]uint16{ 639: uint16(56), 640: uint16(57), 641: uint16(19), - 642: uint16(22), - 643: uint16(23), + 642: uint16(194), + 643: uint16(300), 644: uint16(59), 645: uint16(23), - 646: uint16(25), - 647: uint16(239), - 648: uint16(240), - 649: uint16(116), - 650: uint16(117), - 651: uint16(118), - 652: uint16(193), - 653: uint16(11), - 654: uint16(116), - 655: uint16(117), - 656: uint16(118), - 657: uint16(116), + 646: uint16(119), + 647: uint16(240), + 648: uint16(241), + 649: uint16(122), + 650: uint16(123), + 651: uint16(124), + 652: uint16(314), + 653: uint16(315), + 654: uint16(194), + 655: uint16(236), + 656: uint16(237), + 657: uint16(194), 658: uint16(117), - 659: uint16(118), - 660: uint16(252), - 661: uint16(269), - 662: uint16(22), - 663: uint16(193), - 664: uint16(15), + 659: uint16(132), + 660: uint16(253), + 661: uint16(81), + 662: uint16(255), + 663: uint16(205), + 664: uint16(59), 665: uint16(43), 666: uint16(44), 667: uint16(45), @@ -149875,11 +151326,11 @@ var _yy_lookahead = [2285]uint16{ 677: uint16(55), 678: uint16(56), 679: uint16(57), - 680: uint16(273), - 681: uint16(143), - 682: uint16(193), - 683: uint16(118), - 684: uint16(143), + 680: uint16(217), + 681: uint16(218), + 682: uint16(194), + 683: uint16(194), + 684: uint16(194), 685: uint16(102), 686: uint16(103), 687: uint16(104), @@ -149892,33 +151343,33 @@ var _yy_lookahead = [2285]uint16{ 694: uint16(111), 695: uint16(112), 696: uint16(113), - 697: uint16(76), - 698: uint16(118), - 699: uint16(59), - 700: uint16(241), + 697: uint16(294), + 698: uint16(240), + 699: uint16(241), + 700: uint16(120), 701: uint16(116), 702: uint16(117), 703: uint16(118), - 704: uint16(304), - 705: uint16(216), + 704: uint16(59), + 705: uint16(194), 706: uint16(217), - 707: uint16(292), - 708: uint16(143), - 709: uint16(60), - 710: uint16(89), - 711: uint16(241), + 707: uint16(218), + 708: uint16(211), + 709: uint16(212), + 710: uint16(213), + 711: uint16(253), 712: uint16(19), - 713: uint16(92), - 714: uint16(193), - 715: uint16(193), + 713: uint16(255), + 714: uint16(194), + 715: uint16(19), 716: uint16(23), - 717: uint16(22), - 718: uint16(311), - 719: uint16(312), - 720: uint16(231), - 721: uint16(101), - 722: uint16(22), - 723: uint16(143), + 717: uint16(254), + 718: uint16(138), + 719: uint16(139), + 720: uint16(24), + 721: uint16(232), + 722: uint16(117), + 723: uint16(194), 724: uint16(102), 725: uint16(103), 726: uint16(104), @@ -149947,29 +151398,29 @@ var _yy_lookahead = [2285]uint16{ 749: uint16(56), 750: uint16(57), 751: uint16(19), - 752: uint16(193), - 753: uint16(193), - 754: uint16(59), + 752: uint16(264), + 753: uint16(108), + 754: uint16(76), 755: uint16(23), - 756: uint16(116), - 757: uint16(117), - 758: uint16(118), - 759: uint16(59), - 760: uint16(201), - 761: uint16(21), - 762: uint16(241), - 763: uint16(304), - 764: uint16(193), - 765: uint16(206), - 766: uint16(127), - 767: uint16(128), - 768: uint16(129), - 769: uint16(193), - 770: uint16(128), - 771: uint16(129), - 772: uint16(235), - 773: uint16(236), - 774: uint16(304), + 756: uint16(127), + 757: uint16(128), + 758: uint16(129), + 759: uint16(311), + 760: uint16(312), + 761: uint16(116), + 762: uint16(117), + 763: uint16(118), + 764: uint16(316), + 765: uint16(87), + 766: uint16(306), + 767: uint16(89), + 768: uint16(308), + 769: uint16(194), + 770: uint16(92), + 771: uint16(22), + 772: uint16(59), + 773: uint16(194), + 774: uint16(22), 775: uint16(43), 776: uint16(44), 777: uint16(45), @@ -149985,11 +151436,11 @@ var _yy_lookahead = [2285]uint16{ 787: uint16(55), 788: uint16(56), 789: uint16(57), - 790: uint16(22), - 791: uint16(193), - 792: uint16(216), - 793: uint16(217), - 794: uint16(193), + 790: uint16(194), + 791: uint16(95), + 792: uint16(217), + 793: uint16(218), + 794: uint16(265), 795: uint16(102), 796: uint16(103), 797: uint16(104), @@ -150002,33 +151453,33 @@ var _yy_lookahead = [2285]uint16{ 804: uint16(111), 805: uint16(112), 806: uint16(113), - 807: uint16(231), - 808: uint16(193), - 809: uint16(193), - 810: uint16(193), - 811: uint16(116), - 812: uint16(117), - 813: uint16(118), - 814: uint16(216), - 815: uint16(217), - 816: uint16(116), - 817: uint16(117), - 818: uint16(118), - 819: uint16(226), - 820: uint16(80), - 821: uint16(193), + 807: uint16(232), + 808: uint16(59), + 809: uint16(113), + 810: uint16(25), + 811: uint16(59), + 812: uint16(194), + 813: uint16(217), + 814: uint16(218), + 815: uint16(119), + 816: uint16(120), + 817: uint16(121), + 818: uint16(122), + 819: uint16(123), + 820: uint16(124), + 821: uint16(125), 822: uint16(19), - 823: uint16(235), - 824: uint16(236), - 825: uint16(304), + 823: uint16(145), + 824: uint16(194), + 825: uint16(194), 826: uint16(23), - 827: uint16(211), - 828: uint16(212), - 829: uint16(231), - 830: uint16(204), - 831: uint16(216), - 832: uint16(217), - 833: uint16(205), + 827: uint16(131), + 828: uint16(232), + 829: uint16(116), + 830: uint16(117), + 831: uint16(118), + 832: uint16(35), + 833: uint16(194), 834: uint16(102), 835: uint16(103), 836: uint16(104), @@ -150057,29 +151508,29 @@ var _yy_lookahead = [2285]uint16{ 859: uint16(56), 860: uint16(57), 861: uint16(19), - 862: uint16(193), - 863: uint16(123), - 864: uint16(76), - 865: uint16(239), - 866: uint16(240), - 867: uint16(193), - 868: uint16(253), - 869: uint16(239), - 870: uint16(240), - 871: uint16(239), - 872: uint16(240), - 873: uint16(244), - 874: uint16(106), - 875: uint16(107), - 876: uint16(193), - 877: uint16(89), - 878: uint16(252), - 879: uint16(193), - 880: uint16(92), - 881: uint16(59), - 882: uint16(252), - 883: uint16(254), - 884: uint16(252), + 862: uint16(194), + 863: uint16(66), + 864: uint16(194), + 865: uint16(116), + 866: uint16(117), + 867: uint16(118), + 868: uint16(116), + 869: uint16(117), + 870: uint16(118), + 871: uint16(74), + 872: uint16(242), + 873: uint16(294), + 874: uint16(194), + 875: uint16(194), + 876: uint16(206), + 877: uint16(23), + 878: uint16(194), + 879: uint16(25), + 880: uint16(194), + 881: uint16(111), + 882: uint16(112), + 883: uint16(113), + 884: uint16(25), 885: uint16(43), 886: uint16(44), 887: uint16(45), @@ -150095,11 +151546,11 @@ var _yy_lookahead = [2285]uint16{ 897: uint16(55), 898: uint16(56), 899: uint16(57), - 900: uint16(284), - 901: uint16(161), - 902: uint16(216), + 900: uint16(24), + 901: uint16(194), + 902: uint16(194), 903: uint16(217), - 904: uint16(193), + 904: uint16(218), 905: uint16(102), 906: uint16(103), 907: uint16(104), @@ -150112,33 +151563,33 @@ var _yy_lookahead = [2285]uint16{ 914: uint16(111), 915: uint16(112), 916: uint16(113), - 917: uint16(231), - 918: uint16(193), - 919: uint16(244), - 920: uint16(187), - 921: uint16(188), - 922: uint16(189), - 923: uint16(190), - 924: uint16(7), - 925: uint16(8), - 926: uint16(9), - 927: uint16(309), - 928: uint16(195), - 929: uint16(254), - 930: uint16(197), - 931: uint16(313), + 917: uint16(241), + 918: uint16(232), + 919: uint16(194), + 920: uint16(212), + 921: uint16(213), + 922: uint16(242), + 923: uint16(242), + 924: uint16(217), + 925: uint16(218), + 926: uint16(242), + 927: uint16(130), + 928: uint16(11), + 929: uint16(253), + 930: uint16(194), + 931: uint16(255), 932: uint16(19), - 933: uint16(127), - 934: uint16(128), - 935: uint16(129), - 936: uint16(262), - 937: uint16(204), - 938: uint16(22), - 939: uint16(117), - 940: uint16(24), - 941: uint16(216), + 933: uint16(265), + 934: uint16(149), + 935: uint16(59), + 936: uint16(306), + 937: uint16(194), + 938: uint16(308), + 939: uint16(232), + 940: uint16(309), + 941: uint16(310), 942: uint16(217), - 943: uint16(273), + 943: uint16(218), 944: uint16(102), 945: uint16(103), 946: uint16(104), @@ -150166,36 +151617,36 @@ var _yy_lookahead = [2285]uint16{ 968: uint16(55), 969: uint16(56), 970: uint16(57), - 971: uint16(193), - 972: uint16(239), - 973: uint16(240), - 974: uint16(193), - 975: uint16(59), + 971: uint16(194), + 972: uint16(194), + 973: uint16(59), + 974: uint16(194), + 975: uint16(239), 976: uint16(19), - 977: uint16(188), - 978: uint16(253), - 979: uint16(190), - 980: uint16(193), - 981: uint16(311), - 982: uint16(312), - 983: uint16(16), - 984: uint16(195), - 985: uint16(252), - 986: uint16(197), - 987: uint16(193), - 988: uint16(19), - 989: uint16(301), - 990: uint16(302), - 991: uint16(135), - 992: uint16(193), - 993: uint16(204), - 994: uint16(216), + 977: uint16(194), + 978: uint16(25), + 979: uint16(254), + 980: uint16(303), + 981: uint16(304), + 982: uint16(23), + 983: uint16(194), + 984: uint16(25), + 985: uint16(126), + 986: uint16(306), + 987: uint16(306), + 988: uint16(308), + 989: uint16(308), + 990: uint16(306), + 991: uint16(271), + 992: uint16(308), + 993: uint16(117), + 994: uint16(286), 995: uint16(217), - 996: uint16(140), - 997: uint16(216), - 998: uint16(217), - 999: uint16(266), - 1000: uint16(204), + 996: uint16(218), + 997: uint16(217), + 998: uint16(218), + 999: uint16(194), + 1000: uint16(194), 1001: uint16(159), 1002: uint16(45), 1003: uint16(46), @@ -150222,38 +151673,38 @@ var _yy_lookahead = [2285]uint16{ 1024: uint16(111), 1025: uint16(112), 1026: uint16(113), - 1027: uint16(12), + 1027: uint16(59), 1028: uint16(239), - 1029: uint16(240), - 1030: uint16(193), - 1031: uint16(298), - 1032: uint16(238), - 1033: uint16(117), - 1034: uint16(253), - 1035: uint16(239), + 1029: uint16(194), + 1030: uint16(116), + 1031: uint16(117), + 1032: uint16(118), + 1033: uint16(260), + 1034: uint16(254), + 1035: uint16(194), 1036: uint16(240), - 1037: uint16(238), - 1038: uint16(259), - 1039: uint16(260), - 1040: uint16(193), - 1041: uint16(252), - 1042: uint16(27), - 1043: uint16(193), - 1044: uint16(77), - 1045: uint16(193), - 1046: uint16(79), - 1047: uint16(204), - 1048: uint16(252), - 1049: uint16(262), - 1050: uint16(193), - 1051: uint16(299), - 1052: uint16(300), - 1053: uint16(193), - 1054: uint16(100), - 1055: uint16(266), - 1056: uint16(278), - 1057: uint16(42), - 1058: uint16(204), + 1037: uint16(241), + 1038: uint16(194), + 1039: uint16(233), + 1040: uint16(205), + 1041: uint16(240), + 1042: uint16(241), + 1043: uint16(205), + 1044: uint16(239), + 1045: uint16(128), + 1046: uint16(129), + 1047: uint16(270), + 1048: uint16(265), + 1049: uint16(253), + 1050: uint16(194), + 1051: uint16(255), + 1052: uint16(217), + 1053: uint16(218), + 1054: uint16(253), + 1055: uint16(194), + 1056: uint16(255), + 1057: uint16(143), + 1058: uint16(280), 1059: uint16(102), 1060: uint16(103), 1061: uint16(104), @@ -150266,51 +151717,51 @@ var _yy_lookahead = [2285]uint16{ 1068: uint16(111), 1069: uint16(112), 1070: uint16(113), - 1071: uint16(117), + 1071: uint16(118), 1072: uint16(159), - 1073: uint16(216), - 1074: uint16(217), - 1075: uint16(121), - 1076: uint16(216), - 1077: uint16(217), - 1078: uint16(63), - 1079: uint16(193), - 1080: uint16(193), - 1081: uint16(193), - 1082: uint16(239), - 1083: uint16(240), - 1084: uint16(115), - 1085: uint16(116), - 1086: uint16(193), - 1087: uint16(298), - 1088: uint16(73), - 1089: uint16(240), - 1090: uint16(238), - 1091: uint16(231), + 1073: uint16(217), + 1074: uint16(218), + 1075: uint16(240), + 1076: uint16(241), + 1077: uint16(118), + 1078: uint16(240), + 1079: uint16(241), + 1080: uint16(194), + 1081: uint16(194), + 1082: uint16(194), + 1083: uint16(239), + 1084: uint16(116), + 1085: uint16(117), + 1086: uint16(118), + 1087: uint16(22), + 1088: uint16(253), + 1089: uint16(254), + 1090: uint16(255), + 1091: uint16(253), 1092: uint16(19), - 1093: uint16(239), - 1094: uint16(240), - 1095: uint16(252), - 1096: uint16(22), + 1093: uint16(255), + 1094: uint16(233), + 1095: uint16(194), + 1096: uint16(143), 1097: uint16(24), - 1098: uint16(211), + 1098: uint16(263), 1099: uint16(212), - 1100: uint16(263), - 1101: uint16(252), - 1102: uint16(216), + 1100: uint16(213), + 1101: uint16(194), + 1102: uint16(143), 1103: uint16(217), - 1104: uint16(216), + 1104: uint16(218), 1105: uint16(217), - 1106: uint16(252), - 1107: uint16(153), - 1108: uint16(154), - 1109: uint16(155), - 1110: uint16(253), - 1111: uint16(193), + 1106: uint16(218), + 1107: uint16(261), + 1108: uint16(262), + 1109: uint16(271), + 1110: uint16(254), + 1111: uint16(143), 1112: uint16(19), - 1113: uint16(144), - 1114: uint16(213), - 1115: uint16(268), + 1113: uint16(7), + 1114: uint16(8), + 1115: uint16(9), 1116: uint16(43), 1117: uint16(44), 1118: uint16(45), @@ -150326,11 +151777,11 @@ var _yy_lookahead = [2285]uint16{ 1128: uint16(55), 1129: uint16(56), 1130: uint16(57), - 1131: uint16(193), + 1131: uint16(16), 1132: uint16(19), - 1133: uint16(59), - 1134: uint16(216), - 1135: uint16(217), + 1133: uint16(22), + 1134: uint16(23), + 1135: uint16(294), 1136: uint16(43), 1137: uint16(44), 1138: uint16(45), @@ -150346,11 +151797,11 @@ var _yy_lookahead = [2285]uint16{ 1148: uint16(55), 1149: uint16(56), 1150: uint16(57), - 1151: uint16(193), - 1152: uint16(19), - 1153: uint16(24), - 1154: uint16(216), - 1155: uint16(217), + 1151: uint16(312), + 1152: uint16(194), + 1153: uint16(214), + 1154: uint16(21), + 1155: uint16(316), 1156: uint16(43), 1157: uint16(44), 1158: uint16(45), @@ -150366,10 +151817,10 @@ var _yy_lookahead = [2285]uint16{ 1168: uint16(55), 1169: uint16(56), 1170: uint16(57), - 1171: uint16(284), - 1172: uint16(193), - 1173: uint16(208), - 1174: uint16(209), + 1171: uint16(106), + 1172: uint16(107), + 1173: uint16(286), + 1174: uint16(194), 1175: uint16(102), 1176: uint16(103), 1177: uint16(104), @@ -150382,14 +151833,14 @@ var _yy_lookahead = [2285]uint16{ 1184: uint16(111), 1185: uint16(112), 1186: uint16(113), - 1187: uint16(286), - 1188: uint16(59), - 1189: uint16(193), - 1190: uint16(232), - 1191: uint16(117), - 1192: uint16(291), - 1193: uint16(193), - 1194: uint16(193), + 1187: uint16(207), + 1188: uint16(158), + 1189: uint16(59), + 1190: uint16(160), + 1191: uint16(22), + 1192: uint16(77), + 1193: uint16(24), + 1194: uint16(79), 1195: uint16(102), 1196: uint16(103), 1197: uint16(104), @@ -150402,14 +151853,14 @@ var _yy_lookahead = [2285]uint16{ 1204: uint16(111), 1205: uint16(112), 1206: uint16(113), - 1207: uint16(193), - 1208: uint16(204), - 1209: uint16(22), - 1210: uint16(23), - 1211: uint16(193), - 1212: uint16(25), - 1213: uint16(66), - 1214: uint16(193), + 1207: uint16(194), + 1208: uint16(194), + 1209: uint16(229), + 1210: uint16(194), + 1211: uint16(231), + 1212: uint16(101), + 1213: uint16(80), + 1214: uint16(22), 1215: uint16(102), 1216: uint16(103), 1217: uint16(104), @@ -150422,39 +151873,39 @@ var _yy_lookahead = [2285]uint16{ 1224: uint16(111), 1225: uint16(112), 1226: uint16(113), - 1227: uint16(193), - 1228: uint16(193), - 1229: uint16(193), - 1230: uint16(216), - 1231: uint16(217), - 1232: uint16(85), - 1233: uint16(193), - 1234: uint16(238), + 1227: uint16(288), + 1228: uint16(59), + 1229: uint16(12), + 1230: uint16(217), + 1231: uint16(218), + 1232: uint16(293), + 1233: uint16(217), + 1234: uint16(218), 1235: uint16(19), - 1236: uint16(16), - 1237: uint16(216), - 1238: uint16(217), - 1239: uint16(238), - 1240: uint16(193), - 1241: uint16(94), - 1242: uint16(193), - 1243: uint16(239), - 1244: uint16(240), - 1245: uint16(231), - 1246: uint16(117), - 1247: uint16(268), - 1248: uint16(35), - 1249: uint16(116), - 1250: uint16(216), - 1251: uint16(217), - 1252: uint16(216), - 1253: uint16(217), - 1254: uint16(22), - 1255: uint16(23), - 1256: uint16(252), - 1257: uint16(25), - 1258: uint16(208), - 1259: uint16(209), + 1236: uint16(106), + 1237: uint16(107), + 1238: uint16(59), + 1239: uint16(19), + 1240: uint16(16), + 1241: uint16(127), + 1242: uint16(128), + 1243: uint16(129), + 1244: uint16(27), + 1245: uint16(115), + 1246: uint16(116), + 1247: uint16(117), + 1248: uint16(118), + 1249: uint16(194), + 1250: uint16(120), + 1251: uint16(59), + 1252: uint16(22), + 1253: uint16(194), + 1254: uint16(24), + 1255: uint16(194), + 1256: uint16(123), + 1257: uint16(100), + 1258: uint16(128), + 1259: uint16(42), 1260: uint16(44), 1261: uint16(45), 1262: uint16(46), @@ -150469,50 +151920,50 @@ var _yy_lookahead = [2285]uint16{ 1271: uint16(55), 1272: uint16(56), 1273: uint16(57), - 1274: uint16(193), - 1275: uint16(193), - 1276: uint16(19), - 1277: uint16(5), - 1278: uint16(59), - 1279: uint16(66), - 1280: uint16(193), - 1281: uint16(263), - 1282: uint16(10), - 1283: uint16(11), - 1284: uint16(12), - 1285: uint16(13), - 1286: uint16(14), - 1287: uint16(74), - 1288: uint16(101), - 1289: uint16(17), - 1290: uint16(193), - 1291: uint16(46), - 1292: uint16(193), - 1293: uint16(146), - 1294: uint16(193), - 1295: uint16(76), - 1296: uint16(213), - 1297: uint16(77), - 1298: uint16(263), - 1299: uint16(79), - 1300: uint16(12), - 1301: uint16(260), - 1302: uint16(30), - 1303: uint16(46), - 1304: uint16(32), - 1305: uint16(264), - 1306: uint16(87), - 1307: uint16(193), - 1308: uint16(89), - 1309: uint16(29), - 1310: uint16(263), - 1311: uint16(92), - 1312: uint16(40), - 1313: uint16(33), - 1314: uint16(232), - 1315: uint16(27), - 1316: uint16(193), - 1317: uint16(108), + 1274: uint16(117), + 1275: uint16(194), + 1276: uint16(217), + 1277: uint16(218), + 1278: uint16(121), + 1279: uint16(100), + 1280: uint16(63), + 1281: uint16(194), + 1282: uint16(245), + 1283: uint16(153), + 1284: uint16(194), + 1285: uint16(155), + 1286: uint16(117), + 1287: uint16(19), + 1288: uint16(115), + 1289: uint16(194), + 1290: uint16(73), + 1291: uint16(214), + 1292: uint16(194), + 1293: uint16(256), + 1294: uint16(161), + 1295: uint16(116), + 1296: uint16(117), + 1297: uint16(194), + 1298: uint16(217), + 1299: uint16(218), + 1300: uint16(121), + 1301: uint16(77), + 1302: uint16(194), + 1303: uint16(79), + 1304: uint16(217), + 1305: uint16(218), + 1306: uint16(194), + 1307: uint16(217), + 1308: uint16(218), + 1309: uint16(117), + 1310: uint16(153), + 1311: uint16(154), + 1312: uint16(155), + 1313: uint16(254), + 1314: uint16(46), + 1315: uint16(217), + 1316: uint16(218), + 1317: uint16(144), 1318: uint16(102), 1319: uint16(103), 1320: uint16(104), @@ -150525,1025 +151976,1068 @@ var _yy_lookahead = [2285]uint16{ 1327: uint16(111), 1328: uint16(112), 1329: uint16(113), - 1330: uint16(42), - 1331: uint16(138), - 1332: uint16(139), - 1333: uint16(101), - 1334: uint16(193), - 1335: uint16(116), - 1336: uint16(117), - 1337: uint16(118), + 1330: uint16(232), + 1331: uint16(270), + 1332: uint16(153), + 1333: uint16(154), + 1334: uint16(155), + 1335: uint16(115), + 1336: uint16(116), + 1337: uint16(66), 1338: uint16(19), 1339: uint16(20), - 1340: uint16(255), + 1340: uint16(183), 1341: uint16(22), - 1342: uint16(70), - 1343: uint16(130), - 1344: uint16(135), - 1345: uint16(65), - 1346: uint16(256), - 1347: uint16(257), - 1348: uint16(193), - 1349: uint16(140), - 1350: uint16(78), - 1351: uint16(63), - 1352: uint16(193), - 1353: uint16(81), - 1354: uint16(193), + 1342: uint16(12), + 1343: uint16(312), + 1344: uint16(254), + 1345: uint16(194), + 1346: uint16(262), + 1347: uint16(316), + 1348: uint16(209), + 1349: uint16(210), + 1350: uint16(266), + 1351: uint16(239), + 1352: uint16(194), + 1353: uint16(194), + 1354: uint16(108), 1355: uint16(36), - 1356: uint16(193), - 1357: uint16(216), - 1358: uint16(217), - 1359: uint16(193), - 1360: uint16(115), - 1361: uint16(193), - 1362: uint16(263), - 1363: uint16(193), - 1364: uint16(145), - 1365: uint16(268), - 1366: uint16(59), + 1356: uint16(85), + 1357: uint16(27), + 1358: uint16(19), + 1359: uint16(20), + 1360: uint16(265), + 1361: uint16(22), + 1362: uint16(183), + 1363: uint16(245), + 1364: uint16(144), + 1365: uint16(94), + 1366: uint16(25), 1367: uint16(48), - 1368: uint16(193), - 1369: uint16(193), - 1370: uint16(98), - 1371: uint16(193), - 1372: uint16(115), - 1373: uint16(193), - 1374: uint16(291), - 1375: uint16(216), + 1368: uint16(217), + 1369: uint16(218), + 1370: uint16(293), + 1371: uint16(194), + 1372: uint16(42), + 1373: uint16(270), + 1374: uint16(256), + 1375: uint16(36), 1376: uint16(217), - 1377: uint16(193), + 1377: uint16(218), 1378: uint16(59), - 1379: uint16(216), - 1380: uint16(217), - 1381: uint16(161), - 1382: uint16(216), - 1383: uint16(217), - 1384: uint16(216), - 1385: uint16(217), - 1386: uint16(216), - 1387: uint16(217), - 1388: uint16(131), - 1389: uint16(193), + 1379: uint16(194), + 1380: uint16(25), + 1381: uint16(135), + 1382: uint16(194), + 1383: uint16(115), + 1384: uint16(194), + 1385: uint16(161), + 1386: uint16(140), + 1387: uint16(194), + 1388: uint16(194), + 1389: uint16(15), 1390: uint16(71), - 1391: uint16(193), - 1392: uint16(216), - 1393: uint16(217), - 1394: uint16(216), - 1395: uint16(217), - 1396: uint16(216), - 1397: uint16(217), - 1398: uint16(193), - 1399: uint16(260), - 1400: uint16(216), - 1401: uint16(217), - 1402: uint16(19), - 1403: uint16(264), + 1391: uint16(194), + 1392: uint16(312), + 1393: uint16(63), + 1394: uint16(217), + 1395: uint16(218), + 1396: uint16(316), + 1397: uint16(194), + 1398: uint16(59), + 1399: uint16(131), + 1400: uint16(301), + 1401: uint16(302), + 1402: uint16(217), + 1403: uint16(218), 1404: uint16(85), - 1405: uint16(133), - 1406: uint16(244), - 1407: uint16(100), - 1408: uint16(193), + 1405: uint16(217), + 1406: uint16(218), + 1407: uint16(217), + 1408: uint16(218), 1409: uint16(90), - 1410: uint16(138), - 1411: uint16(139), - 1412: uint16(216), - 1413: uint16(217), - 1414: uint16(216), - 1415: uint16(217), - 1416: uint16(254), - 1417: uint16(244), - 1418: uint16(193), + 1410: uint16(71), + 1411: uint16(217), + 1412: uint16(218), + 1413: uint16(19), + 1414: uint16(217), + 1415: uint16(218), + 1416: uint16(245), + 1417: uint16(146), + 1418: uint16(262), 1419: uint16(100), - 1420: uint16(193), - 1421: uint16(216), - 1422: uint16(217), - 1423: uint16(116), - 1424: uint16(117), + 1420: uint16(217), + 1421: uint16(218), + 1422: uint16(266), + 1423: uint16(265), + 1424: uint16(85), 1425: uint16(106), 1426: uint16(107), - 1427: uint16(254), - 1428: uint16(121), - 1429: uint16(193), - 1430: uint16(115), - 1431: uint16(216), - 1432: uint16(217), + 1427: uint16(256), + 1428: uint16(312), + 1429: uint16(90), + 1430: uint16(209), + 1431: uint16(210), + 1432: uint16(316), 1433: uint16(114), - 1434: uint16(162), + 1434: uint16(60), 1435: uint16(116), 1436: uint16(117), 1437: uint16(118), - 1438: uint16(115), - 1439: uint16(244), + 1438: uint16(194), + 1439: uint16(100), 1440: uint16(121), - 1441: uint16(216), - 1442: uint16(217), - 1443: uint16(216), - 1444: uint16(217), - 1445: uint16(193), - 1446: uint16(309), - 1447: uint16(193), - 1448: uint16(31), - 1449: uint16(254), - 1450: uint16(313), - 1451: uint16(309), - 1452: uint16(216), - 1453: uint16(217), - 1454: uint16(309), - 1455: uint16(313), - 1456: uint16(39), - 1457: uint16(193), - 1458: uint16(313), - 1459: uint16(309), - 1460: uint16(153), - 1461: uint16(154), - 1462: uint16(155), - 1463: uint16(313), - 1464: uint16(193), - 1465: uint16(150), - 1466: uint16(25), - 1467: uint16(144), - 1468: uint16(216), - 1469: uint16(217), - 1470: uint16(216), - 1471: uint16(217), + 1441: uint16(194), + 1442: uint16(194), + 1443: uint16(145), + 1444: uint16(115), + 1445: uint16(106), + 1446: uint16(107), + 1447: uint16(19), + 1448: uint16(46), + 1449: uint16(19), + 1450: uint16(20), + 1451: uint16(24), + 1452: uint16(22), + 1453: uint16(114), + 1454: uint16(194), + 1455: uint16(116), + 1456: uint16(117), + 1457: uint16(118), + 1458: uint16(194), + 1459: uint16(245), + 1460: uint16(121), + 1461: uint16(194), + 1462: uint16(164), + 1463: uint16(194), + 1464: uint16(217), + 1465: uint16(218), + 1466: uint16(36), + 1467: uint16(194), + 1468: uint16(258), + 1469: uint16(259), + 1470: uint16(256), + 1471: uint16(194), 1472: uint16(153), 1473: uint16(154), 1474: uint16(155), 1475: uint16(156), 1476: uint16(157), - 1478: uint16(1), - 1479: uint16(2), - 1480: uint16(216), + 1477: uint16(217), + 1478: uint16(218), + 1479: uint16(150), + 1480: uint16(31), 1481: uint16(217), - 1482: uint16(5), - 1483: uint16(149), - 1484: uint16(150), - 1485: uint16(22), - 1486: uint16(193), - 1487: uint16(10), - 1488: uint16(11), - 1489: uint16(12), - 1490: uint16(13), - 1491: uint16(14), - 1492: uint16(193), - 1493: uint16(158), - 1494: uint16(17), - 1495: uint16(160), - 1496: uint16(193), - 1497: uint16(19), - 1498: uint16(20), - 1499: uint16(116), - 1500: uint16(22), - 1501: uint16(25), - 1502: uint16(193), - 1503: uint16(24), - 1504: uint16(22), - 1505: uint16(193), - 1506: uint16(24), - 1507: uint16(30), - 1508: uint16(226), - 1509: uint16(32), - 1510: uint16(19), - 1511: uint16(20), - 1512: uint16(226), - 1513: uint16(22), - 1514: uint16(36), - 1515: uint16(193), - 1516: uint16(53), - 1517: uint16(40), - 1518: uint16(193), - 1519: uint16(216), - 1520: uint16(217), - 1521: uint16(193), - 1522: uint16(23), - 1523: uint16(193), - 1524: uint16(25), - 1525: uint16(216), - 1526: uint16(217), - 1527: uint16(36), - 1528: uint16(216), - 1529: uint16(217), - 1530: uint16(193), - 1531: uint16(99), - 1532: uint16(193), - 1533: uint16(193), - 1534: uint16(22), - 1535: uint16(193), - 1536: uint16(193), - 1537: uint16(59), - 1538: uint16(216), + 1482: uint16(218), + 1483: uint16(142), + 1484: uint16(217), + 1485: uint16(218), + 1486: uint16(217), + 1487: uint16(218), + 1488: uint16(39), + 1489: uint16(59), + 1490: uint16(217), + 1491: uint16(218), + 1492: uint16(153), + 1493: uint16(154), + 1494: uint16(155), + 1495: uint16(156), + 1496: uint16(157), + 1497: uint16(149), + 1498: uint16(150), + 1499: uint16(5), + 1500: uint16(145), + 1501: uint16(71), + 1502: uint16(183), + 1503: uint16(245), + 1504: uint16(10), + 1505: uint16(11), + 1506: uint16(12), + 1507: uint16(13), + 1508: uint16(14), + 1509: uint16(194), + 1510: uint16(116), + 1511: uint16(17), + 1512: uint16(129), + 1513: uint16(227), + 1514: uint16(256), + 1515: uint16(85), + 1516: uint16(194), + 1517: uint16(115), + 1518: uint16(194), + 1519: uint16(23), + 1520: uint16(90), + 1521: uint16(25), + 1522: uint16(183), + 1523: uint16(99), + 1524: uint16(30), + 1525: uint16(97), + 1526: uint16(32), + 1527: uint16(22), + 1528: uint16(22), + 1529: uint16(194), + 1530: uint16(100), + 1531: uint16(194), + 1532: uint16(217), + 1533: uint16(218), + 1534: uint16(40), + 1535: uint16(152), + 1536: uint16(106), + 1537: uint16(107), + 1538: uint16(23), 1539: uint16(217), - 1540: uint16(193), - 1541: uint16(216), - 1542: uint16(217), - 1543: uint16(193), - 1544: uint16(216), - 1545: uint16(217), - 1546: uint16(193), - 1547: uint16(70), - 1548: uint16(129), - 1549: uint16(71), - 1550: uint16(59), - 1551: uint16(129), - 1552: uint16(193), - 1553: uint16(216), + 1540: uint16(218), + 1541: uint16(194), + 1542: uint16(19), + 1543: uint16(20), + 1544: uint16(114), + 1545: uint16(22), + 1546: uint16(116), + 1547: uint16(117), + 1548: uint16(118), + 1549: uint16(257), + 1550: uint16(194), + 1551: uint16(121), + 1552: uint16(217), + 1553: uint16(218), 1554: uint16(217), - 1555: uint16(78), - 1556: uint16(216), - 1557: uint16(217), - 1558: uint16(81), - 1559: uint16(216), - 1560: uint16(217), - 1561: uint16(193), - 1562: uint16(71), - 1563: uint16(85), - 1564: uint16(193), - 1565: uint16(133), - 1566: uint16(193), - 1567: uint16(126), - 1568: uint16(90), - 1569: uint16(216), - 1570: uint16(217), - 1571: uint16(152), - 1572: uint16(258), - 1573: uint16(61), - 1574: uint16(152), - 1575: uint16(98), - 1576: uint16(85), - 1577: uint16(193), - 1578: uint16(100), - 1579: uint16(193), - 1580: uint16(23), - 1581: uint16(90), - 1582: uint16(25), - 1583: uint16(121), - 1584: uint16(106), - 1585: uint16(107), - 1586: uint16(23), - 1587: uint16(216), - 1588: uint16(217), - 1589: uint16(216), - 1590: uint16(217), - 1591: uint16(100), - 1592: uint16(114), - 1593: uint16(131), - 1594: uint16(116), - 1595: uint16(117), - 1596: uint16(118), - 1597: uint16(106), - 1598: uint16(107), - 1599: uint16(121), - 1600: uint16(216), - 1601: uint16(217), - 1602: uint16(216), - 1603: uint16(217), - 1604: uint16(193), - 1605: uint16(114), - 1606: uint16(193), - 1607: uint16(116), - 1608: uint16(117), - 1609: uint16(118), - 1610: uint16(133), - 1611: uint16(22), - 1612: uint16(121), - 1613: uint16(193), - 1614: uint16(59), - 1615: uint16(138), - 1616: uint16(139), - 1617: uint16(193), - 1618: uint16(142), - 1619: uint16(193), - 1620: uint16(141), - 1621: uint16(23), - 1622: uint16(23), - 1623: uint16(25), - 1624: uint16(25), - 1625: uint16(120), - 1626: uint16(121), - 1627: uint16(216), - 1628: uint16(217), - 1629: uint16(216), - 1630: uint16(217), - 1631: uint16(153), - 1632: uint16(154), - 1633: uint16(155), - 1634: uint16(156), - 1635: uint16(157), - 1636: uint16(216), - 1637: uint16(217), - 1638: uint16(19), - 1639: uint16(162), - 1640: uint16(216), - 1641: uint16(217), - 1642: uint16(216), - 1643: uint16(217), - 1644: uint16(153), - 1645: uint16(154), - 1646: uint16(155), - 1647: uint16(156), - 1648: uint16(157), - 1649: uint16(1), - 1650: uint16(2), - 1651: uint16(193), - 1652: uint16(59), - 1653: uint16(5), - 1654: uint16(19), - 1655: uint16(20), - 1656: uint16(318), - 1657: uint16(22), - 1658: uint16(10), - 1659: uint16(11), - 1660: uint16(12), - 1661: uint16(13), - 1662: uint16(14), - 1663: uint16(193), - 1664: uint16(59), - 1665: uint16(17), - 1666: uint16(193), - 1667: uint16(23), - 1668: uint16(23), - 1669: uint16(25), - 1670: uint16(25), - 1671: uint16(36), - 1672: uint16(117), - 1673: uint16(193), - 1674: uint16(216), - 1675: uint16(217), - 1676: uint16(193), - 1677: uint16(23), - 1678: uint16(30), - 1679: uint16(25), - 1680: uint16(32), - 1681: uint16(19), - 1682: uint16(20), - 1683: uint16(23), - 1684: uint16(22), - 1685: uint16(25), - 1686: uint16(216), - 1687: uint16(217), - 1688: uint16(40), - 1689: uint16(216), + 1555: uint16(218), + 1556: uint16(194), + 1557: uint16(133), + 1558: uint16(53), + 1559: uint16(36), + 1560: uint16(23), + 1561: uint16(23), + 1562: uint16(25), + 1563: uint16(25), + 1564: uint16(70), + 1565: uint16(120), + 1566: uint16(121), + 1567: uint16(61), + 1568: uint16(141), + 1569: uint16(7), + 1570: uint16(8), + 1571: uint16(121), + 1572: uint16(78), + 1573: uint16(217), + 1574: uint16(218), + 1575: uint16(81), + 1576: uint16(23), + 1577: uint16(227), + 1578: uint16(25), + 1579: uint16(217), + 1580: uint16(218), + 1581: uint16(131), + 1582: uint16(59), + 1583: uint16(153), + 1584: uint16(154), + 1585: uint16(155), + 1586: uint16(156), + 1587: uint16(157), + 1589: uint16(1), + 1590: uint16(2), + 1591: uint16(59), + 1592: uint16(98), + 1593: uint16(5), + 1594: uint16(71), + 1595: uint16(23), + 1596: uint16(227), + 1597: uint16(25), + 1598: uint16(10), + 1599: uint16(11), + 1600: uint16(12), + 1601: uint16(13), + 1602: uint16(14), + 1603: uint16(83), + 1604: uint16(84), + 1605: uint16(17), + 1606: uint16(23), + 1607: uint16(23), + 1608: uint16(25), + 1609: uint16(25), + 1610: uint16(59), + 1611: uint16(194), + 1612: uint16(194), + 1613: uint16(183), + 1614: uint16(23), + 1615: uint16(23), + 1616: uint16(25), + 1617: uint16(25), + 1618: uint16(30), + 1619: uint16(194), + 1620: uint16(32), + 1621: uint16(19), + 1622: uint16(20), + 1623: uint16(100), + 1624: uint16(22), + 1625: uint16(194), + 1626: uint16(194), + 1627: uint16(133), + 1628: uint16(40), + 1629: uint16(106), + 1630: uint16(107), + 1631: uint16(108), + 1632: uint16(138), + 1633: uint16(139), + 1634: uint16(194), + 1635: uint16(217), + 1636: uint16(218), + 1637: uint16(114), + 1638: uint16(36), + 1639: uint16(116), + 1640: uint16(117), + 1641: uint16(118), + 1642: uint16(217), + 1643: uint16(218), + 1644: uint16(121), + 1645: uint16(194), + 1646: uint16(194), + 1647: uint16(194), + 1648: uint16(23), + 1649: uint16(117), + 1650: uint16(25), + 1651: uint16(194), + 1652: uint16(23), + 1653: uint16(23), + 1654: uint16(25), + 1655: uint16(25), + 1656: uint16(162), + 1657: uint16(194), + 1658: uint16(70), + 1659: uint16(194), + 1660: uint16(145), + 1661: uint16(59), + 1662: uint16(23), + 1663: uint16(153), + 1664: uint16(25), + 1665: uint16(155), + 1666: uint16(78), + 1667: uint16(194), + 1668: uint16(117), + 1669: uint16(81), + 1670: uint16(217), + 1671: uint16(218), + 1672: uint16(194), + 1673: uint16(71), + 1674: uint16(217), + 1675: uint16(218), + 1676: uint16(153), + 1677: uint16(154), + 1678: uint16(155), + 1679: uint16(156), + 1680: uint16(157), + 1681: uint16(194), + 1682: uint16(217), + 1683: uint16(218), + 1684: uint16(194), + 1685: uint16(23), + 1686: uint16(98), + 1687: uint16(25), + 1688: uint16(321), + 1689: uint16(194), 1690: uint16(217), - 1691: uint16(7), - 1692: uint16(8), - 1693: uint16(23), - 1694: uint16(59), - 1695: uint16(25), - 1696: uint16(83), - 1697: uint16(84), - 1698: uint16(36), - 1699: uint16(23), - 1700: uint16(193), - 1701: uint16(25), - 1702: uint16(23), - 1703: uint16(23), - 1704: uint16(25), - 1705: uint16(25), - 1706: uint16(71), - 1707: uint16(153), - 1708: uint16(145), - 1709: uint16(155), - 1710: uint16(117), - 1711: uint16(153), - 1712: uint16(23), - 1713: uint16(155), - 1714: uint16(25), - 1715: uint16(23), - 1716: uint16(97), - 1717: uint16(25), - 1718: uint16(70), - 1719: uint16(193), - 1720: uint16(193), - 1721: uint16(59), - 1722: uint16(117), - 1723: uint16(236), - 1724: uint16(193), - 1725: uint16(193), - 1726: uint16(78), - 1727: uint16(193), - 1728: uint16(193), - 1729: uint16(81), - 1730: uint16(141), - 1731: uint16(193), - 1732: uint16(193), - 1733: uint16(71), - 1734: uint16(193), - 1735: uint16(100), - 1736: uint16(288), - 1737: uint16(287), - 1738: uint16(242), - 1739: uint16(255), - 1740: uint16(255), - 1741: uint16(106), - 1742: uint16(107), - 1743: uint16(108), - 1744: uint16(255), - 1745: uint16(255), - 1746: uint16(98), - 1747: uint16(243), - 1748: uint16(297), - 1749: uint16(114), - 1750: uint16(214), - 1751: uint16(116), - 1752: uint16(117), - 1753: uint16(118), - 1754: uint16(245), - 1755: uint16(191), - 1756: uint16(121), - 1757: uint16(271), - 1758: uint16(293), - 1759: uint16(267), - 1760: uint16(267), - 1761: uint16(246), - 1762: uint16(100), - 1763: uint16(246), - 1764: uint16(245), - 1765: uint16(271), - 1766: uint16(271), - 1767: uint16(293), - 1768: uint16(106), - 1769: uint16(107), - 1770: uint16(220), - 1771: uint16(271), - 1772: uint16(229), - 1773: uint16(225), - 1774: uint16(249), - 1775: uint16(219), - 1776: uint16(114), - 1777: uint16(259), - 1778: uint16(116), - 1779: uint16(117), - 1780: uint16(118), - 1781: uint16(133), - 1782: uint16(259), - 1783: uint16(121), - 1784: uint16(219), - 1785: uint16(219), - 1786: uint16(138), - 1787: uint16(139), - 1788: uint16(153), - 1789: uint16(154), - 1790: uint16(155), - 1791: uint16(156), - 1792: uint16(157), - 1793: uint16(280), - 1794: uint16(249), - 1795: uint16(243), - 1796: uint16(19), - 1797: uint16(20), - 1798: uint16(245), - 1799: uint16(22), - 1800: uint16(196), - 1801: uint16(259), - 1802: uint16(140), - 1803: uint16(259), - 1804: uint16(60), - 1805: uint16(297), - 1806: uint16(141), - 1807: uint16(297), - 1808: uint16(200), - 1809: uint16(200), - 1810: uint16(162), - 1811: uint16(38), - 1812: uint16(200), - 1813: uint16(36), - 1814: uint16(294), - 1815: uint16(153), - 1816: uint16(154), - 1817: uint16(155), - 1818: uint16(156), - 1819: uint16(157), - 1820: uint16(151), - 1821: uint16(150), - 1822: uint16(294), - 1823: uint16(283), - 1824: uint16(22), - 1825: uint16(43), - 1826: uint16(234), - 1827: uint16(18), - 1828: uint16(237), - 1829: uint16(200), - 1830: uint16(270), - 1831: uint16(272), - 1832: uint16(237), - 1833: uint16(237), - 1834: uint16(237), - 1835: uint16(18), - 1836: uint16(59), - 1837: uint16(199), - 1838: uint16(270), - 1839: uint16(149), - 1840: uint16(246), - 1841: uint16(272), - 1842: uint16(272), - 1843: uint16(200), - 1844: uint16(234), - 1845: uint16(234), - 1846: uint16(246), - 1847: uint16(246), - 1848: uint16(71), - 1849: uint16(246), - 1850: uint16(199), - 1851: uint16(158), - 1852: uint16(290), - 1853: uint16(62), - 1854: uint16(22), - 1855: uint16(200), - 1856: uint16(19), - 1857: uint16(20), - 1858: uint16(199), - 1859: uint16(22), - 1860: uint16(289), - 1861: uint16(221), - 1862: uint16(221), - 1863: uint16(200), - 1864: uint16(200), - 1865: uint16(199), - 1866: uint16(199), - 1867: uint16(115), - 1868: uint16(218), - 1869: uint16(64), - 1870: uint16(218), - 1871: uint16(218), + 1691: uint16(218), + 1692: uint16(194), + 1693: uint16(19), + 1694: uint16(20), + 1695: uint16(194), + 1696: uint16(22), + 1697: uint16(153), + 1698: uint16(23), + 1699: uint16(155), + 1700: uint16(25), + 1701: uint16(194), + 1702: uint16(100), + 1703: uint16(194), + 1704: uint16(217), + 1705: uint16(218), + 1706: uint16(183), + 1707: uint16(194), + 1708: uint16(106), + 1709: uint16(107), + 1710: uint16(36), + 1711: uint16(194), + 1712: uint16(217), + 1713: uint16(218), + 1714: uint16(237), + 1715: uint16(194), + 1716: uint16(114), + 1717: uint16(243), + 1718: uint16(116), + 1719: uint16(117), + 1720: uint16(118), + 1721: uint16(133), + 1722: uint16(194), + 1723: uint16(121), + 1724: uint16(217), + 1725: uint16(218), + 1726: uint16(138), + 1727: uint16(139), + 1728: uint16(194), + 1729: uint16(194), + 1730: uint16(194), + 1731: uint16(290), + 1732: uint16(289), + 1733: uint16(59), + 1734: uint16(217), + 1735: uint16(218), + 1736: uint16(194), + 1737: uint16(194), + 1738: uint16(217), + 1739: uint16(218), + 1740: uint16(194), + 1741: uint16(194), + 1742: uint16(140), + 1743: uint16(194), + 1744: uint16(194), + 1745: uint16(71), + 1746: uint16(194), + 1747: uint16(244), + 1748: uint16(194), + 1749: uint16(194), + 1750: uint16(162), + 1751: uint16(217), + 1752: uint16(218), + 1753: uint16(194), + 1754: uint16(194), + 1755: uint16(153), + 1756: uint16(154), + 1757: uint16(155), + 1758: uint16(156), + 1759: uint16(157), + 1760: uint16(217), + 1761: uint16(218), + 1762: uint16(194), + 1763: uint16(217), + 1764: uint16(218), + 1765: uint16(194), + 1766: uint16(217), + 1767: uint16(218), + 1768: uint16(257), + 1769: uint16(217), + 1770: uint16(218), + 1771: uint16(217), + 1772: uint16(218), + 1773: uint16(257), + 1774: uint16(100), + 1775: uint16(194), + 1776: uint16(257), + 1777: uint16(217), + 1778: uint16(218), + 1779: uint16(257), + 1780: uint16(106), + 1781: uint16(107), + 1782: uint16(215), + 1783: uint16(299), + 1784: uint16(194), + 1785: uint16(183), + 1786: uint16(192), + 1787: uint16(194), + 1788: uint16(114), + 1789: uint16(194), + 1790: uint16(116), + 1791: uint16(117), + 1792: uint16(118), + 1793: uint16(1), + 1794: uint16(2), + 1795: uint16(121), + 1796: uint16(221), + 1797: uint16(5), + 1798: uint16(217), + 1799: uint16(218), + 1800: uint16(273), + 1801: uint16(197), + 1802: uint16(10), + 1803: uint16(11), + 1804: uint16(12), + 1805: uint16(13), + 1806: uint16(14), + 1807: uint16(217), + 1808: uint16(218), + 1809: uint16(17), + 1810: uint16(217), + 1811: uint16(218), + 1812: uint16(217), + 1813: uint16(218), + 1814: uint16(140), + 1815: uint16(194), + 1816: uint16(246), + 1817: uint16(194), + 1818: uint16(273), + 1819: uint16(295), + 1820: uint16(247), + 1821: uint16(273), + 1822: uint16(30), + 1823: uint16(247), + 1824: uint16(32), + 1825: uint16(269), + 1826: uint16(269), + 1827: uint16(153), + 1828: uint16(154), + 1829: uint16(155), + 1830: uint16(156), + 1831: uint16(157), + 1832: uint16(40), + 1833: uint16(246), + 1834: uint16(273), + 1835: uint16(295), + 1836: uint16(230), + 1837: uint16(226), + 1838: uint16(217), + 1839: uint16(218), + 1840: uint16(217), + 1841: uint16(218), + 1842: uint16(220), + 1843: uint16(261), + 1844: uint16(220), + 1845: uint16(282), + 1846: uint16(220), + 1847: uint16(19), + 1848: uint16(20), + 1849: uint16(244), + 1850: uint16(22), + 1851: uint16(250), + 1852: uint16(141), + 1853: uint16(250), + 1854: uint16(246), + 1855: uint16(60), + 1856: uint16(201), + 1857: uint16(183), + 1858: uint16(261), + 1859: uint16(261), + 1860: uint16(261), + 1861: uint16(201), + 1862: uint16(70), + 1863: uint16(299), + 1864: uint16(36), + 1865: uint16(299), + 1866: uint16(201), + 1867: uint16(38), + 1868: uint16(151), + 1869: uint16(150), + 1870: uint16(78), + 1871: uint16(285), 1872: uint16(22), - 1873: uint16(36), - 1874: uint16(227), - 1875: uint16(126), - 1876: uint16(227), - 1877: uint16(100), - 1878: uint16(165), - 1879: uint16(221), - 1880: uint16(224), - 1881: uint16(224), - 1882: uint16(24), - 1883: uint16(106), - 1884: uint16(107), - 1885: uint16(312), - 1886: uint16(218), - 1887: uint16(305), - 1888: uint16(113), - 1889: uint16(282), - 1890: uint16(91), - 1891: uint16(114), - 1892: uint16(220), - 1893: uint16(116), - 1894: uint16(117), - 1895: uint16(118), - 1896: uint16(59), - 1897: uint16(282), - 1898: uint16(121), - 1899: uint16(218), - 1900: uint16(218), - 1901: uint16(218), + 1873: uint16(81), + 1874: uint16(296), + 1875: uint16(296), + 1876: uint16(43), + 1877: uint16(235), + 1878: uint16(18), + 1879: uint16(238), + 1880: uint16(201), + 1881: uint16(274), + 1882: uint16(272), + 1883: uint16(238), + 1884: uint16(238), + 1885: uint16(238), + 1886: uint16(18), + 1887: uint16(59), + 1888: uint16(200), + 1889: uint16(149), + 1890: uint16(98), + 1891: uint16(247), + 1892: uint16(274), + 1893: uint16(274), + 1894: uint16(235), + 1895: uint16(247), + 1896: uint16(247), + 1897: uint16(247), + 1898: uint16(235), + 1899: uint16(71), + 1900: uint16(272), + 1901: uint16(201), 1902: uint16(200), - 1903: uint16(317), - 1904: uint16(317), - 1905: uint16(82), - 1906: uint16(221), - 1907: uint16(265), - 1908: uint16(71), - 1909: uint16(148), - 1910: uint16(145), - 1911: uint16(265), - 1912: uint16(22), - 1913: uint16(277), - 1914: uint16(200), - 1915: uint16(158), - 1916: uint16(279), - 1917: uint16(140), - 1918: uint16(147), - 1919: uint16(25), - 1920: uint16(146), - 1921: uint16(202), - 1922: uint16(248), - 1923: uint16(250), - 1924: uint16(249), - 1925: uint16(247), - 1926: uint16(13), - 1927: uint16(250), - 1928: uint16(194), - 1929: uint16(194), - 1930: uint16(153), - 1931: uint16(154), - 1932: uint16(155), - 1933: uint16(156), - 1934: uint16(157), - 1935: uint16(6), - 1936: uint16(303), - 1937: uint16(100), - 1938: uint16(192), - 1939: uint16(192), - 1940: uint16(246), - 1941: uint16(213), - 1942: uint16(192), - 1943: uint16(106), - 1944: uint16(107), - 1945: uint16(207), - 1946: uint16(213), - 1947: uint16(207), - 1948: uint16(222), - 1949: uint16(213), - 1950: uint16(213), - 1951: uint16(114), - 1952: uint16(222), - 1953: uint16(116), - 1954: uint16(117), - 1955: uint16(118), - 1956: uint16(214), - 1957: uint16(214), - 1958: uint16(121), - 1959: uint16(4), - 1960: uint16(207), - 1961: uint16(213), - 1962: uint16(3), - 1963: uint16(22), - 1964: uint16(303), - 1965: uint16(15), - 1966: uint16(163), - 1967: uint16(16), - 1968: uint16(23), - 1969: uint16(23), - 1970: uint16(139), - 1971: uint16(151), - 1972: uint16(130), - 1973: uint16(25), - 1974: uint16(20), - 1975: uint16(142), - 1976: uint16(24), - 1977: uint16(16), - 1978: uint16(144), - 1979: uint16(1), - 1980: uint16(142), - 1981: uint16(130), - 1982: uint16(130), - 1983: uint16(61), - 1984: uint16(37), - 1985: uint16(53), - 1986: uint16(300), - 1987: uint16(151), - 1988: uint16(53), - 1989: uint16(53), - 1990: uint16(153), - 1991: uint16(154), - 1992: uint16(155), - 1993: uint16(156), - 1994: uint16(157), - 1995: uint16(53), - 1996: uint16(130), - 1997: uint16(116), - 1998: uint16(34), - 1999: uint16(1), - 2000: uint16(141), - 2001: uint16(5), - 2002: uint16(22), - 2003: uint16(115), - 2004: uint16(161), - 2005: uint16(68), - 2006: uint16(25), - 2007: uint16(68), - 2008: uint16(75), - 2009: uint16(41), - 2010: uint16(141), - 2011: uint16(115), - 2012: uint16(24), - 2013: uint16(20), - 2014: uint16(19), - 2015: uint16(131), - 2016: uint16(125), - 2017: uint16(23), - 2018: uint16(28), - 2019: uint16(22), - 2020: uint16(67), - 2021: uint16(22), - 2022: uint16(22), - 2023: uint16(22), - 2024: uint16(67), - 2025: uint16(59), - 2026: uint16(24), - 2027: uint16(96), - 2028: uint16(22), - 2029: uint16(67), - 2030: uint16(23), - 2031: uint16(149), - 2032: uint16(22), - 2033: uint16(25), - 2034: uint16(23), - 2035: uint16(23), - 2036: uint16(23), - 2037: uint16(22), - 2038: uint16(34), - 2039: uint16(141), - 2040: uint16(37), - 2041: uint16(97), - 2042: uint16(23), - 2043: uint16(23), - 2044: uint16(116), - 2045: uint16(22), - 2046: uint16(143), - 2047: uint16(25), - 2048: uint16(34), - 2049: uint16(75), - 2050: uint16(34), - 2051: uint16(34), - 2052: uint16(34), - 2053: uint16(88), - 2054: uint16(75), - 2055: uint16(34), - 2056: uint16(86), - 2057: uint16(23), + 1903: uint16(158), + 1904: uint16(292), + 1905: uint16(62), + 1906: uint16(291), + 1907: uint16(201), + 1908: uint16(200), + 1909: uint16(22), + 1910: uint16(201), + 1911: uint16(222), + 1912: uint16(200), + 1913: uint16(222), + 1914: uint16(201), + 1915: uint16(200), + 1916: uint16(115), + 1917: uint16(219), + 1918: uint16(219), + 1919: uint16(64), + 1920: uint16(219), + 1921: uint16(228), + 1922: uint16(22), + 1923: uint16(126), + 1924: uint16(221), + 1925: uint16(133), + 1926: uint16(165), + 1927: uint16(222), + 1928: uint16(100), + 1929: uint16(225), + 1930: uint16(138), + 1931: uint16(139), + 1932: uint16(225), + 1933: uint16(219), + 1934: uint16(106), + 1935: uint16(107), + 1936: uint16(24), + 1937: uint16(219), + 1938: uint16(228), + 1939: uint16(219), + 1940: uint16(219), + 1941: uint16(307), + 1942: uint16(114), + 1943: uint16(113), + 1944: uint16(116), + 1945: uint16(117), + 1946: uint16(118), + 1947: uint16(315), + 1948: uint16(284), + 1949: uint16(121), + 1950: uint16(284), + 1951: uint16(222), + 1952: uint16(201), + 1953: uint16(91), + 1954: uint16(162), + 1955: uint16(320), + 1956: uint16(320), + 1957: uint16(82), + 1958: uint16(148), + 1959: uint16(267), + 1960: uint16(145), + 1961: uint16(267), + 1962: uint16(22), + 1963: uint16(279), + 1964: uint16(201), + 1965: uint16(158), + 1966: uint16(281), + 1967: uint16(251), + 1968: uint16(147), + 1969: uint16(146), + 1970: uint16(25), + 1971: uint16(203), + 1972: uint16(250), + 1973: uint16(249), + 1974: uint16(251), + 1975: uint16(248), + 1976: uint16(13), + 1977: uint16(247), + 1978: uint16(195), + 1979: uint16(195), + 1980: uint16(6), + 1981: uint16(153), + 1982: uint16(154), + 1983: uint16(155), + 1984: uint16(156), + 1985: uint16(157), + 1986: uint16(193), + 1987: uint16(193), + 1988: uint16(305), + 1989: uint16(193), + 1990: uint16(208), + 1991: uint16(305), + 1992: uint16(302), + 1993: uint16(214), + 1994: uint16(214), + 1995: uint16(214), + 1996: uint16(208), + 1997: uint16(223), + 1998: uint16(223), + 1999: uint16(214), + 2000: uint16(4), + 2001: uint16(215), + 2002: uint16(215), + 2003: uint16(214), + 2004: uint16(3), + 2005: uint16(22), + 2006: uint16(208), + 2007: uint16(163), + 2008: uint16(15), + 2009: uint16(23), + 2010: uint16(16), + 2011: uint16(183), + 2012: uint16(23), + 2013: uint16(139), + 2014: uint16(151), + 2015: uint16(130), + 2016: uint16(25), + 2017: uint16(20), + 2018: uint16(142), + 2019: uint16(24), + 2020: uint16(16), + 2021: uint16(144), + 2022: uint16(1), + 2023: uint16(142), + 2024: uint16(130), + 2025: uint16(130), + 2026: uint16(61), + 2027: uint16(37), + 2028: uint16(53), + 2029: uint16(151), + 2030: uint16(53), + 2031: uint16(53), + 2032: uint16(53), + 2033: uint16(130), + 2034: uint16(116), + 2035: uint16(1), + 2036: uint16(34), + 2037: uint16(141), + 2038: uint16(5), + 2039: uint16(22), + 2040: uint16(115), + 2041: uint16(161), + 2042: uint16(75), + 2043: uint16(25), + 2044: uint16(68), + 2045: uint16(141), + 2046: uint16(41), + 2047: uint16(115), + 2048: uint16(68), + 2049: uint16(24), + 2050: uint16(20), + 2051: uint16(19), + 2052: uint16(131), + 2053: uint16(125), + 2054: uint16(67), + 2055: uint16(67), + 2056: uint16(96), + 2057: uint16(22), 2058: uint16(22), - 2059: uint16(34), - 2060: uint16(93), - 2061: uint16(24), - 2062: uint16(34), - 2063: uint16(25), - 2064: uint16(25), - 2065: uint16(142), - 2066: uint16(142), + 2059: uint16(22), + 2060: uint16(37), + 2061: uint16(23), + 2062: uint16(22), + 2063: uint16(24), + 2064: uint16(22), + 2065: uint16(59), + 2066: uint16(67), 2067: uint16(23), - 2068: uint16(44), - 2069: uint16(23), - 2070: uint16(23), - 2071: uint16(23), + 2068: uint16(149), + 2069: uint16(28), + 2070: uint16(22), + 2071: uint16(25), 2072: uint16(23), - 2073: uint16(11), + 2073: uint16(23), 2074: uint16(23), - 2075: uint16(25), - 2076: uint16(22), - 2077: uint16(22), - 2078: uint16(22), - 2079: uint16(141), + 2075: uint16(22), + 2076: uint16(141), + 2077: uint16(34), + 2078: uint16(97), + 2079: uint16(23), 2080: uint16(23), - 2081: uint16(23), - 2082: uint16(22), + 2081: uint16(34), + 2082: uint16(116), 2083: uint16(22), - 2084: uint16(25), - 2085: uint16(15), - 2086: uint16(1), - 2087: uint16(23), - 2088: uint16(25), - 2089: uint16(1), - 2090: uint16(141), - 2091: uint16(135), - 2092: uint16(319), - 2093: uint16(319), - 2094: uint16(319), - 2095: uint16(319), - 2096: uint16(319), - 2097: uint16(319), - 2098: uint16(319), - 2099: uint16(141), - 2100: uint16(319), - 2101: uint16(319), - 2102: uint16(319), - 2103: uint16(319), - 2104: uint16(319), - 2105: uint16(319), - 2106: uint16(319), - 2107: uint16(319), - 2108: uint16(319), - 2109: uint16(319), - 2110: uint16(319), - 2111: uint16(319), - 2112: uint16(319), - 2113: uint16(319), - 2114: uint16(319), - 2115: uint16(319), - 2116: uint16(319), - 2117: uint16(319), - 2118: uint16(319), - 2119: uint16(319), - 2120: uint16(319), - 2121: uint16(319), - 2122: uint16(319), - 2123: uint16(319), - 2124: uint16(319), - 2125: uint16(319), - 2126: uint16(319), - 2127: uint16(319), - 2128: uint16(319), - 2129: uint16(319), - 2130: uint16(319), - 2131: uint16(319), - 2132: uint16(319), - 2133: uint16(319), - 2134: uint16(319), - 2135: uint16(319), - 2136: uint16(319), - 2137: uint16(319), - 2138: uint16(319), - 2139: uint16(319), - 2140: uint16(319), - 2141: uint16(319), - 2142: uint16(319), - 2143: uint16(319), - 2144: uint16(319), - 2145: uint16(319), - 2146: uint16(319), - 2147: uint16(319), - 2148: uint16(319), - 2149: uint16(319), - 2150: uint16(319), - 2151: uint16(319), - 2152: uint16(319), - 2153: uint16(319), - 2154: uint16(319), - 2155: uint16(319), - 2156: uint16(319), - 2157: uint16(319), - 2158: uint16(319), - 2159: uint16(319), - 2160: uint16(319), - 2161: uint16(319), - 2162: uint16(319), - 2163: uint16(319), - 2164: uint16(319), - 2165: uint16(319), - 2166: uint16(319), - 2167: uint16(319), - 2168: uint16(319), - 2169: uint16(319), - 2170: uint16(319), - 2171: uint16(319), - 2172: uint16(319), - 2173: uint16(319), - 2174: uint16(319), - 2175: uint16(319), - 2176: uint16(319), - 2177: uint16(319), - 2178: uint16(319), - 2179: uint16(319), - 2180: uint16(319), - 2181: uint16(319), - 2182: uint16(319), - 2183: uint16(319), - 2184: uint16(319), - 2185: uint16(319), - 2186: uint16(319), - 2187: uint16(319), - 2188: uint16(319), - 2189: uint16(319), - 2190: uint16(319), - 2191: uint16(319), - 2192: uint16(319), - 2193: uint16(319), - 2194: uint16(319), - 2195: uint16(319), - 2196: uint16(319), - 2197: uint16(319), - 2198: uint16(319), - 2199: uint16(319), - 2200: uint16(319), - 2201: uint16(319), - 2202: uint16(319), - 2203: uint16(319), - 2204: uint16(319), - 2205: uint16(319), - 2206: uint16(319), - 2207: uint16(319), - 2208: uint16(319), - 2209: uint16(319), - 2210: uint16(319), - 2211: uint16(319), - 2212: uint16(319), - 2213: uint16(319), - 2214: uint16(319), - 2215: uint16(319), - 2216: uint16(319), - 2217: uint16(319), - 2218: uint16(319), - 2219: uint16(319), - 2220: uint16(319), - 2221: uint16(319), - 2222: uint16(319), - 2223: uint16(319), - 2224: uint16(319), - 2225: uint16(319), - 2226: uint16(319), - 2227: uint16(319), - 2228: uint16(319), - 2229: uint16(319), - 2230: uint16(319), - 2231: uint16(319), - 2232: uint16(319), - 2233: uint16(319), - 2234: uint16(319), - 2235: uint16(319), - 2236: uint16(319), - 2237: uint16(319), - 2238: uint16(319), - 2239: uint16(319), - 2240: uint16(319), - 2241: uint16(319), - 2242: uint16(319), - 2243: uint16(319), - 2244: uint16(319), - 2245: uint16(319), - 2246: uint16(319), - 2247: uint16(319), - 2248: uint16(319), - 2249: uint16(319), - 2250: uint16(319), - 2251: uint16(319), - 2252: uint16(319), - 2253: uint16(319), - 2254: uint16(319), - 2255: uint16(319), - 2256: uint16(319), - 2257: uint16(319), - 2258: uint16(319), - 2259: uint16(319), - 2260: uint16(319), - 2261: uint16(319), - 2262: uint16(319), - 2263: uint16(319), - 2264: uint16(319), - 2265: uint16(319), - 2266: uint16(319), - 2267: uint16(319), - 2268: uint16(319), - 2269: uint16(319), - 2270: uint16(319), - 2271: uint16(319), - 2272: uint16(319), - 2273: uint16(319), - 2274: uint16(319), - 2275: uint16(319), - 2276: uint16(319), - 2277: uint16(319), - 2278: uint16(319), - 2279: uint16(319), - 2280: uint16(319), - 2281: uint16(319), - 2282: uint16(319), - 2283: uint16(319), - 2284: uint16(319), -} -var _yy_shift_ofst = [579]uint16{ - 0: uint16(1648), - 1: uint16(1477), - 2: uint16(1272), + 2084: uint16(143), + 2085: uint16(25), + 2086: uint16(34), + 2087: uint16(75), + 2088: uint16(34), + 2089: uint16(34), + 2090: uint16(75), + 2091: uint16(88), + 2092: uint16(34), + 2093: uint16(86), + 2094: uint16(23), + 2095: uint16(22), + 2096: uint16(34), + 2097: uint16(25), + 2098: uint16(24), + 2099: uint16(34), + 2100: uint16(25), + 2101: uint16(93), + 2102: uint16(23), + 2103: uint16(44), + 2104: uint16(142), + 2105: uint16(23), + 2106: uint16(142), + 2107: uint16(23), + 2108: uint16(23), + 2109: uint16(22), + 2110: uint16(11), + 2111: uint16(25), + 2112: uint16(23), + 2113: uint16(25), + 2114: uint16(23), + 2115: uint16(22), + 2116: uint16(22), + 2117: uint16(22), + 2118: uint16(1), + 2119: uint16(23), + 2120: uint16(23), + 2121: uint16(23), + 2122: uint16(22), + 2123: uint16(22), + 2124: uint16(15), + 2125: uint16(141), + 2126: uint16(141), + 2127: uint16(25), + 2128: uint16(25), + 2129: uint16(1), + 2130: uint16(322), + 2131: uint16(322), + 2132: uint16(322), + 2133: uint16(135), + 2134: uint16(322), + 2135: uint16(322), + 2136: uint16(322), + 2137: uint16(322), + 2138: uint16(322), + 2139: uint16(322), + 2140: uint16(322), + 2141: uint16(141), + 2142: uint16(322), + 2143: uint16(322), + 2144: uint16(322), + 2145: uint16(322), + 2146: uint16(322), + 2147: uint16(322), + 2148: uint16(322), + 2149: uint16(322), + 2150: uint16(322), + 2151: uint16(322), + 2152: uint16(322), + 2153: uint16(322), + 2154: uint16(322), + 2155: uint16(322), + 2156: uint16(322), + 2157: uint16(322), + 2158: uint16(322), + 2159: uint16(322), + 2160: uint16(322), + 2161: uint16(322), + 2162: uint16(322), + 2163: uint16(322), + 2164: uint16(322), + 2165: uint16(322), + 2166: uint16(322), + 2167: uint16(322), + 2168: uint16(322), + 2169: uint16(322), + 2170: uint16(322), + 2171: uint16(322), + 2172: uint16(322), + 2173: uint16(322), + 2174: uint16(322), + 2175: uint16(322), + 2176: uint16(322), + 2177: uint16(322), + 2178: uint16(322), + 2179: uint16(322), + 2180: uint16(322), + 2181: uint16(322), + 2182: uint16(322), + 2183: uint16(322), + 2184: uint16(322), + 2185: uint16(322), + 2186: uint16(322), + 2187: uint16(322), + 2188: uint16(322), + 2189: uint16(322), + 2190: uint16(322), + 2191: uint16(322), + 2192: uint16(322), + 2193: uint16(322), + 2194: uint16(322), + 2195: uint16(322), + 2196: uint16(322), + 2197: uint16(322), + 2198: uint16(322), + 2199: uint16(322), + 2200: uint16(322), + 2201: uint16(322), + 2202: uint16(322), + 2203: uint16(322), + 2204: uint16(322), + 2205: uint16(322), + 2206: uint16(322), + 2207: uint16(322), + 2208: uint16(322), + 2209: uint16(322), + 2210: uint16(322), + 2211: uint16(322), + 2212: uint16(322), + 2213: uint16(322), + 2214: uint16(322), + 2215: uint16(322), + 2216: uint16(322), + 2217: uint16(322), + 2218: uint16(322), + 2219: uint16(322), + 2220: uint16(322), + 2221: uint16(322), + 2222: uint16(322), + 2223: uint16(322), + 2224: uint16(322), + 2225: uint16(322), + 2226: uint16(322), + 2227: uint16(322), + 2228: uint16(322), + 2229: uint16(322), + 2230: uint16(322), + 2231: uint16(322), + 2232: uint16(322), + 2233: uint16(322), + 2234: uint16(322), + 2235: uint16(322), + 2236: uint16(322), + 2237: uint16(322), + 2238: uint16(322), + 2239: uint16(322), + 2240: uint16(322), + 2241: uint16(322), + 2242: uint16(322), + 2243: uint16(322), + 2244: uint16(322), + 2245: uint16(322), + 2246: uint16(322), + 2247: uint16(322), + 2248: uint16(322), + 2249: uint16(322), + 2250: uint16(322), + 2251: uint16(322), + 2252: uint16(322), + 2253: uint16(322), + 2254: uint16(322), + 2255: uint16(322), + 2256: uint16(322), + 2257: uint16(322), + 2258: uint16(322), + 2259: uint16(322), + 2260: uint16(322), + 2261: uint16(322), + 2262: uint16(322), + 2263: uint16(322), + 2264: uint16(322), + 2265: uint16(322), + 2266: uint16(322), + 2267: uint16(322), + 2268: uint16(322), + 2269: uint16(322), + 2270: uint16(322), + 2271: uint16(322), + 2272: uint16(322), + 2273: uint16(322), + 2274: uint16(322), + 2275: uint16(322), + 2276: uint16(322), + 2277: uint16(322), + 2278: uint16(322), + 2279: uint16(322), + 2280: uint16(322), + 2281: uint16(322), + 2282: uint16(322), + 2283: uint16(322), + 2284: uint16(322), + 2285: uint16(322), + 2286: uint16(322), + 2287: uint16(322), + 2288: uint16(322), + 2289: uint16(322), + 2290: uint16(322), + 2291: uint16(322), + 2292: uint16(322), + 2293: uint16(322), + 2294: uint16(322), + 2295: uint16(322), + 2296: uint16(322), + 2297: uint16(322), + 2298: uint16(322), + 2299: uint16(322), + 2300: uint16(322), + 2301: uint16(322), + 2302: uint16(322), + 2303: uint16(322), + 2304: uint16(322), + 2305: uint16(322), + 2306: uint16(322), + 2307: uint16(322), + 2308: uint16(322), + 2309: uint16(322), + 2310: uint16(322), + 2311: uint16(322), + 2312: uint16(322), + 2313: uint16(322), + 2314: uint16(322), + 2315: uint16(322), + 2316: uint16(322), + 2317: uint16(322), + 2318: uint16(322), + 2319: uint16(322), + 2320: uint16(322), + 2321: uint16(322), + 2322: uint16(322), + 2323: uint16(322), + 2324: uint16(322), + 2325: uint16(322), + 2326: uint16(322), + 2327: uint16(322), +} +var _yy_shift_ofst = [583]uint16{ + 0: uint16(1792), + 1: uint16(1588), + 2: uint16(1494), 3: uint16(322), 4: uint16(322), - 5: uint16(1), - 6: uint16(1319), - 7: uint16(1478), - 8: uint16(1491), - 9: uint16(1837), - 10: uint16(1837), - 11: uint16(1837), - 12: uint16(471), - 15: uint16(214), - 16: uint16(1093), - 17: uint16(1837), - 18: uint16(1837), - 19: uint16(1837), - 20: uint16(1837), - 21: uint16(1837), - 22: uint16(1837), - 23: uint16(1837), - 24: uint16(1837), - 25: uint16(1837), - 26: uint16(1837), - 27: uint16(1837), - 28: uint16(1837), - 29: uint16(1837), - 30: uint16(1837), - 31: uint16(271), - 32: uint16(271), - 33: uint16(1219), - 34: uint16(1219), - 35: uint16(216), - 36: uint16(88), - 37: uint16(1), - 38: uint16(1), - 39: uint16(1), - 40: uint16(1), - 41: uint16(1), - 42: uint16(40), - 43: uint16(111), - 44: uint16(258), - 45: uint16(361), - 46: uint16(469), - 47: uint16(512), - 48: uint16(583), - 49: uint16(622), - 50: uint16(693), - 51: uint16(732), - 52: uint16(803), - 53: uint16(842), - 54: uint16(913), - 55: uint16(1073), - 56: uint16(1093), - 57: uint16(1093), - 58: uint16(1093), - 59: uint16(1093), - 60: uint16(1093), - 61: uint16(1093), - 62: uint16(1093), - 63: uint16(1093), - 64: uint16(1093), + 5: uint16(399), + 6: uint16(306), + 7: uint16(1319), + 8: uint16(1339), + 9: uint16(1430), + 10: uint16(1828), + 11: uint16(1828), + 12: uint16(1828), + 13: uint16(580), + 14: uint16(399), + 15: uint16(399), + 16: uint16(399), + 17: uint16(399), + 18: uint16(399), + 21: uint16(214), + 22: uint16(1093), + 23: uint16(1828), + 24: uint16(1828), + 25: uint16(1828), + 26: uint16(1828), + 27: uint16(1828), + 28: uint16(1828), + 29: uint16(1828), + 30: uint16(1828), + 31: uint16(1828), + 32: uint16(1828), + 33: uint16(1828), + 34: uint16(1828), + 35: uint16(1828), + 36: uint16(1828), + 37: uint16(1828), + 38: uint16(1130), + 39: uint16(1130), + 40: uint16(365), + 41: uint16(365), + 42: uint16(55), + 43: uint16(278), + 44: uint16(436), + 45: uint16(713), + 46: uint16(713), + 47: uint16(201), + 48: uint16(201), + 49: uint16(201), + 50: uint16(201), + 51: uint16(40), + 52: uint16(111), + 53: uint16(258), + 54: uint16(361), + 55: uint16(469), + 56: uint16(512), + 57: uint16(583), + 58: uint16(622), + 59: uint16(693), + 60: uint16(732), + 61: uint16(803), + 62: uint16(842), + 63: uint16(913), + 64: uint16(1073), 65: uint16(1093), 66: uint16(1093), 67: uint16(1093), @@ -151553,1505 +153047,1514 @@ var _yy_shift_ofst = [579]uint16{ 71: uint16(1093), 72: uint16(1093), 73: uint16(1093), - 74: uint16(1113), + 74: uint16(1093), 75: uint16(1093), - 76: uint16(1216), - 77: uint16(957), - 78: uint16(957), - 79: uint16(1635), - 80: uint16(1662), - 81: uint16(1777), - 82: uint16(1837), - 83: uint16(1837), - 84: uint16(1837), - 85: uint16(1837), - 86: uint16(1837), - 87: uint16(1837), - 88: uint16(1837), - 89: uint16(1837), - 90: uint16(1837), - 91: uint16(1837), - 92: uint16(1837), - 93: uint16(1837), - 94: uint16(1837), - 95: uint16(1837), - 96: uint16(1837), - 97: uint16(1837), - 98: uint16(1837), - 99: uint16(1837), - 100: uint16(1837), - 101: uint16(1837), - 102: uint16(1837), - 103: uint16(1837), - 104: uint16(1837), - 105: uint16(1837), - 106: uint16(1837), - 107: uint16(1837), - 108: uint16(1837), - 109: uint16(1837), - 110: uint16(1837), - 111: uint16(1837), - 112: uint16(1837), - 113: uint16(1837), - 114: uint16(1837), - 115: uint16(1837), - 116: uint16(1837), - 117: uint16(1837), - 118: uint16(1837), - 119: uint16(1837), - 120: uint16(1837), - 121: uint16(1837), - 122: uint16(1837), - 123: uint16(1837), - 124: uint16(1837), - 125: uint16(1837), - 126: uint16(1837), - 127: uint16(1837), - 128: uint16(1837), - 129: uint16(1837), - 130: uint16(1837), - 131: uint16(137), - 132: uint16(181), - 133: uint16(181), - 134: uint16(181), - 135: uint16(181), - 136: uint16(181), - 137: uint16(181), - 138: uint16(181), - 139: uint16(94), - 140: uint16(430), - 141: uint16(66), - 142: uint16(65), - 143: uint16(112), - 144: uint16(366), - 145: uint16(533), - 146: uint16(533), - 147: uint16(740), - 148: uint16(1257), - 149: uint16(533), - 150: uint16(533), - 151: uint16(79), - 152: uint16(79), - 153: uint16(533), - 154: uint16(412), - 155: uint16(412), - 156: uint16(412), - 157: uint16(77), - 158: uint16(412), - 159: uint16(123), - 160: uint16(113), - 161: uint16(113), - 162: uint16(113), - 163: uint16(22), - 164: uint16(22), - 165: uint16(2100), - 166: uint16(2100), - 167: uint16(328), - 168: uint16(328), - 169: uint16(328), - 170: uint16(239), - 171: uint16(468), - 172: uint16(468), - 173: uint16(468), - 174: uint16(468), - 175: uint16(1015), - 176: uint16(1015), - 177: uint16(409), - 178: uint16(366), - 179: uint16(1187), - 180: uint16(1232), - 181: uint16(533), - 182: uint16(533), - 183: uint16(533), - 184: uint16(533), - 185: uint16(533), - 186: uint16(533), - 187: uint16(533), - 188: uint16(533), - 189: uint16(533), - 190: uint16(533), - 191: uint16(533), - 192: uint16(533), - 193: uint16(533), - 194: uint16(533), - 195: uint16(533), - 196: uint16(533), - 197: uint16(533), - 198: uint16(533), - 199: uint16(533), - 200: uint16(533), - 201: uint16(969), - 202: uint16(621), - 203: uint16(621), - 204: uint16(533), - 205: uint16(642), - 206: uint16(788), - 207: uint16(788), - 208: uint16(1133), - 209: uint16(1133), - 210: uint16(822), - 211: uint16(822), - 212: uint16(67), - 213: uint16(1193), - 214: uint16(2100), - 215: uint16(2100), - 216: uint16(2100), - 217: uint16(2100), - 218: uint16(2100), - 219: uint16(2100), - 220: uint16(2100), - 221: uint16(1307), - 222: uint16(954), - 223: uint16(954), - 224: uint16(585), - 225: uint16(472), - 226: uint16(640), - 227: uint16(387), - 228: uint16(695), - 229: uint16(538), - 230: uint16(541), - 231: uint16(700), - 232: uint16(533), - 233: uint16(533), - 234: uint16(533), - 235: uint16(533), - 236: uint16(533), - 237: uint16(533), - 238: uint16(533), - 239: uint16(533), - 240: uint16(533), - 241: uint16(533), - 242: uint16(222), - 243: uint16(533), - 244: uint16(533), - 245: uint16(533), - 246: uint16(533), - 247: uint16(533), - 248: uint16(533), - 249: uint16(533), - 250: uint16(533), - 251: uint16(533), - 252: uint16(533), - 253: uint16(533), - 254: uint16(533), - 255: uint16(1213), - 256: uint16(1213), - 257: uint16(1213), - 258: uint16(533), - 259: uint16(533), - 260: uint16(533), - 261: uint16(565), - 262: uint16(533), - 263: uint16(533), - 264: uint16(533), - 265: uint16(916), - 266: uint16(1147), - 267: uint16(533), - 268: uint16(533), - 269: uint16(1288), - 270: uint16(533), - 271: uint16(533), - 272: uint16(533), - 273: uint16(533), - 274: uint16(533), - 275: uint16(533), - 276: uint16(533), - 277: uint16(533), - 278: uint16(639), - 279: uint16(1280), - 280: uint16(209), - 281: uint16(1129), - 282: uint16(1129), - 283: uint16(1129), - 284: uint16(1129), - 285: uint16(580), - 286: uint16(209), - 287: uint16(209), - 288: uint16(1209), - 289: uint16(768), - 290: uint16(917), - 291: uint16(649), - 292: uint16(1315), - 293: uint16(1334), - 294: uint16(405), - 295: uint16(1334), - 296: uint16(1383), - 297: uint16(249), - 298: uint16(1315), - 299: uint16(1315), - 300: uint16(249), - 301: uint16(1315), - 302: uint16(405), - 303: uint16(1383), - 304: uint16(1441), - 305: uint16(464), - 306: uint16(1245), - 307: uint16(1417), - 308: uint16(1417), - 309: uint16(1417), - 310: uint16(1323), - 311: uint16(1323), - 312: uint16(1323), - 313: uint16(1323), - 314: uint16(184), - 315: uint16(184), - 316: uint16(1335), - 317: uint16(1476), - 318: uint16(856), - 319: uint16(1482), - 320: uint16(1744), - 321: uint16(1744), - 322: uint16(1665), - 323: uint16(1665), - 324: uint16(1773), - 325: uint16(1773), - 326: uint16(1665), - 327: uint16(1669), - 328: uint16(1671), - 329: uint16(1802), - 330: uint16(1782), - 331: uint16(1809), - 332: uint16(1809), - 333: uint16(1809), - 334: uint16(1809), - 335: uint16(1665), - 336: uint16(1817), - 337: uint16(1690), - 338: uint16(1671), - 339: uint16(1671), - 340: uint16(1690), - 341: uint16(1802), - 342: uint16(1782), - 343: uint16(1690), - 344: uint16(1782), - 345: uint16(1690), - 346: uint16(1665), - 347: uint16(1817), - 348: uint16(1693), - 349: uint16(1791), - 350: uint16(1665), - 351: uint16(1817), - 352: uint16(1832), - 353: uint16(1665), - 354: uint16(1817), - 355: uint16(1665), - 356: uint16(1817), - 357: uint16(1832), - 358: uint16(1752), - 359: uint16(1752), - 360: uint16(1752), - 361: uint16(1805), - 362: uint16(1850), - 363: uint16(1850), - 364: uint16(1832), - 365: uint16(1752), - 366: uint16(1749), - 367: uint16(1752), - 368: uint16(1805), - 369: uint16(1752), - 370: uint16(1752), - 371: uint16(1713), - 372: uint16(1858), - 373: uint16(1775), - 374: uint16(1775), - 375: uint16(1832), - 376: uint16(1665), - 377: uint16(1799), - 378: uint16(1799), - 379: uint16(1823), - 380: uint16(1823), - 381: uint16(1761), - 382: uint16(1765), - 383: uint16(1890), - 384: uint16(1665), - 385: uint16(1757), - 386: uint16(1761), - 387: uint16(1771), - 388: uint16(1774), - 389: uint16(1690), - 390: uint16(1894), - 391: uint16(1913), - 392: uint16(1913), - 393: uint16(1929), - 394: uint16(1929), - 395: uint16(1929), - 396: uint16(2100), - 397: uint16(2100), - 398: uint16(2100), - 399: uint16(2100), - 400: uint16(2100), - 401: uint16(2100), - 402: uint16(2100), - 403: uint16(2100), - 404: uint16(2100), - 405: uint16(2100), - 406: uint16(2100), - 407: uint16(2100), - 408: uint16(2100), - 409: uint16(2100), - 410: uint16(2100), - 411: uint16(207), - 412: uint16(1220), - 413: uint16(331), - 414: uint16(620), - 415: uint16(967), - 416: uint16(806), - 417: uint16(1074), - 418: uint16(1499), - 419: uint16(1432), - 420: uint16(1463), - 421: uint16(1479), - 422: uint16(1419), - 423: uint16(1422), - 424: uint16(1557), - 425: uint16(1512), - 426: uint16(1598), - 427: uint16(1599), - 428: uint16(1644), - 429: uint16(1645), - 430: uint16(1654), - 431: uint16(1660), - 432: uint16(1555), - 433: uint16(1505), - 434: uint16(1684), - 435: uint16(1462), - 436: uint16(1670), - 437: uint16(1563), - 438: uint16(1619), - 439: uint16(1593), - 440: uint16(1676), - 441: uint16(1679), - 442: uint16(1613), - 443: uint16(1680), - 444: uint16(1554), - 445: uint16(1558), - 446: uint16(1689), - 447: uint16(1692), - 448: uint16(1605), - 449: uint16(1589), - 450: uint16(1955), - 451: uint16(1959), - 452: uint16(1941), - 453: uint16(1803), - 454: uint16(1950), - 455: uint16(1951), - 456: uint16(1945), - 457: uint16(1946), - 458: uint16(1831), - 459: uint16(1820), - 460: uint16(1842), - 461: uint16(1948), - 462: uint16(1948), - 463: uint16(1952), - 464: uint16(1833), - 465: uint16(1954), - 466: uint16(1834), - 467: uint16(1961), - 468: uint16(1978), - 469: uint16(1838), - 470: uint16(1851), - 471: uint16(1948), - 472: uint16(1852), - 473: uint16(1922), - 474: uint16(1947), - 475: uint16(1948), - 476: uint16(1836), - 477: uint16(1932), - 478: uint16(1935), - 479: uint16(1936), - 480: uint16(1942), - 481: uint16(1866), - 482: uint16(1881), - 483: uint16(1964), - 484: uint16(1859), - 485: uint16(1998), - 486: uint16(1996), - 487: uint16(1980), - 488: uint16(1888), - 489: uint16(1843), - 490: uint16(1937), - 491: uint16(1981), - 492: uint16(1939), - 493: uint16(1933), - 494: uint16(1968), - 495: uint16(1869), - 496: uint16(1896), - 497: uint16(1988), - 498: uint16(1993), - 499: uint16(1995), - 500: uint16(1884), - 501: uint16(1891), - 502: uint16(1997), - 503: uint16(1953), - 504: uint16(1999), - 505: uint16(2000), - 506: uint16(1994), - 507: uint16(2001), - 508: uint16(1957), - 509: uint16(1966), - 510: uint16(2002), - 511: uint16(1931), - 512: uint16(1990), - 513: uint16(2006), - 514: uint16(1962), - 515: uint16(2003), - 516: uint16(2007), - 517: uint16(2004), - 518: uint16(1882), - 519: uint16(2010), - 520: uint16(2011), - 521: uint16(2012), - 522: uint16(2008), - 523: uint16(2013), - 524: uint16(2015), - 525: uint16(1944), - 526: uint16(1898), - 527: uint16(2019), - 528: uint16(2020), - 529: uint16(1928), - 530: uint16(2014), - 531: uint16(2023), - 532: uint16(1903), - 533: uint16(2022), - 534: uint16(2016), - 535: uint16(2017), - 536: uint16(2018), - 537: uint16(2021), - 538: uint16(1965), - 539: uint16(1974), - 540: uint16(1970), - 541: uint16(2024), - 542: uint16(1979), - 543: uint16(1967), - 544: uint16(2025), - 545: uint16(2034), - 546: uint16(2036), - 547: uint16(2037), - 548: uint16(2038), - 549: uint16(2039), - 550: uint16(2028), - 551: uint16(1923), - 552: uint16(1924), - 553: uint16(2044), - 554: uint16(2022), - 555: uint16(2046), - 556: uint16(2047), - 557: uint16(2048), - 558: uint16(2049), - 559: uint16(2050), - 560: uint16(2051), - 561: uint16(2054), - 562: uint16(2062), - 563: uint16(2055), - 564: uint16(2056), - 565: uint16(2057), - 566: uint16(2058), - 567: uint16(2060), - 568: uint16(2061), - 569: uint16(2059), - 570: uint16(1956), - 571: uint16(1938), - 572: uint16(1949), - 573: uint16(1958), - 574: uint16(2063), - 575: uint16(2064), - 576: uint16(2070), - 577: uint16(2085), - 578: uint16(2088), -} -var _yy_reduce_ofst = [411]int16{ - 0: int16(-int32(125)), - 1: int16(733), - 2: int16(789), - 3: int16(241), - 4: int16(293), - 5: int16(-int32(123)), - 6: int16(-int32(193)), - 7: int16(-int32(191)), - 8: int16(-int32(183)), - 9: int16(-int32(187)), - 10: int16(166), - 11: int16(238), - 12: int16(133), - 13: int16(-int32(207)), - 14: int16(-int32(199)), - 15: int16(-int32(267)), - 16: int16(-int32(176)), - 17: int16(-int32(6)), - 18: int16(204), - 19: int16(489), - 20: int16(576), - 21: int16(598), - 22: int16(-int32(175)), - 23: int16(686), - 24: int16(860), - 25: int16(615), - 26: int16(725), - 27: int16(1014), - 28: int16(778), - 29: int16(781), - 30: int16(857), - 31: int16(616), - 32: int16(887), - 33: int16(87), - 34: int16(240), - 35: int16(-int32(192)), - 36: int16(408), - 37: int16(626), - 38: int16(796), - 39: int16(843), - 40: int16(854), - 41: int16(1004), - 42: int16(-int32(271)), - 43: int16(-int32(271)), - 44: int16(-int32(271)), - 45: int16(-int32(271)), - 46: int16(-int32(271)), - 47: int16(-int32(271)), - 48: int16(-int32(271)), - 49: int16(-int32(271)), - 50: int16(-int32(271)), - 51: int16(-int32(271)), - 52: int16(-int32(271)), - 53: int16(-int32(271)), - 54: int16(-int32(271)), - 55: int16(-int32(271)), - 56: int16(-int32(271)), - 57: int16(-int32(271)), - 58: int16(-int32(271)), - 59: int16(-int32(271)), - 60: int16(-int32(271)), - 61: int16(-int32(271)), - 62: int16(-int32(271)), - 63: int16(-int32(271)), - 64: int16(-int32(271)), - 65: int16(-int32(271)), - 66: int16(-int32(271)), - 67: int16(-int32(271)), - 68: int16(-int32(271)), - 69: int16(-int32(271)), - 70: int16(-int32(271)), - 71: int16(-int32(271)), - 72: int16(-int32(271)), - 73: int16(-int32(271)), - 74: int16(-int32(271)), - 75: int16(-int32(271)), - 76: int16(-int32(271)), - 77: int16(-int32(271)), - 78: int16(-int32(271)), - 79: int16(80), - 80: int16(83), - 81: int16(313), - 82: int16(886), - 83: int16(888), - 84: int16(918), - 85: int16(938), - 86: int16(1021), - 87: int16(1034), - 88: int16(1036), - 89: int16(1141), - 90: int16(1159), - 91: int16(1163), - 92: int16(1166), - 93: int16(1168), - 94: int16(1170), - 95: int16(1176), - 96: int16(1178), - 97: int16(1180), - 98: int16(1184), - 99: int16(1196), - 100: int16(1198), - 101: int16(1205), - 102: int16(1215), - 103: int16(1225), - 104: int16(1227), - 105: int16(1236), - 106: int16(1252), - 107: int16(1254), - 108: int16(1264), - 109: int16(1303), - 110: int16(1309), - 111: int16(1312), - 112: int16(1322), - 113: int16(1325), - 114: int16(1328), - 115: int16(1337), - 116: int16(1340), - 117: int16(1343), - 118: int16(1353), - 119: int16(1371), - 120: int16(1373), - 121: int16(1384), - 122: int16(1386), - 123: int16(1411), - 124: int16(1413), - 125: int16(1420), - 126: int16(1424), - 127: int16(1426), - 128: int16(1458), - 129: int16(1470), - 130: int16(1473), - 131: int16(-int32(271)), - 132: int16(-int32(271)), - 133: int16(-int32(271)), - 134: int16(-int32(271)), - 135: int16(-int32(271)), - 136: int16(-int32(271)), - 137: int16(-int32(271)), - 138: int16(-int32(271)), - 139: int16(-int32(271)), - 140: int16(-int32(271)), - 141: int16(-int32(271)), - 142: int16(138), - 143: int16(459), - 144: int16(396), - 145: int16(-int32(158)), - 146: int16(470), - 147: int16(302), - 148: int16(-int32(212)), - 149: int16(521), - 150: int16(201), - 151: int16(-int32(195)), - 152: int16(-int32(92)), - 153: int16(559), - 154: int16(630), - 155: int16(632), - 156: int16(630), - 157: int16(-int32(271)), - 158: int16(632), - 159: int16(901), - 160: int16(63), - 161: int16(407), - 162: int16(670), - 163: int16(-int32(271)), - 164: int16(-int32(271)), - 165: int16(-int32(271)), - 166: int16(-int32(271)), - 167: int16(161), - 168: int16(161), - 169: int16(161), - 170: int16(251), - 171: int16(335), - 172: int16(847), - 173: int16(979), - 174: int16(1097), - 175: int16(537), - 176: int16(588), - 177: int16(618), - 178: int16(628), - 179: int16(688), - 180: int16(688), - 181: int16(-int32(166)), - 182: int16(-int32(161)), - 183: int16(674), - 184: int16(787), - 185: int16(794), - 186: int16(799), - 187: int16(852), - 188: int16(996), - 189: int16(-int32(122)), - 190: int16(837), - 191: int16(-int32(120)), - 192: int16(1018), - 193: int16(1035), - 194: int16(415), - 195: int16(1047), - 196: int16(1001), - 197: int16(958), - 198: int16(1082), - 199: int16(400), - 200: int16(1099), - 201: int16(779), - 202: int16(1137), - 203: int16(1142), - 204: int16(263), - 205: int16(1083), - 206: int16(1145), - 207: int16(1150), - 208: int16(1041), - 209: int16(1139), - 210: int16(965), - 211: int16(1050), - 212: int16(362), - 213: int16(849), - 214: int16(752), - 215: int16(629), - 216: int16(675), - 217: int16(1162), - 218: int16(1173), - 219: int16(1090), - 220: int16(1195), - 221: int16(-int32(194)), - 222: int16(56), - 223: int16(185), - 224: int16(-int32(135)), - 225: int16(232), - 226: int16(522), - 227: int16(560), - 228: int16(571), - 229: int16(601), - 230: int16(617), - 231: int16(669), - 232: int16(683), - 233: int16(711), - 234: int16(850), - 235: int16(893), - 236: int16(1000), - 237: int16(1040), - 238: int16(1049), - 239: int16(1081), - 240: int16(1087), - 241: int16(1101), - 242: int16(392), - 243: int16(1114), - 244: int16(1123), - 245: int16(1155), - 246: int16(1161), - 247: int16(1175), - 248: int16(1271), - 249: int16(1293), - 250: int16(1299), - 251: int16(1330), - 252: int16(1339), - 253: int16(1342), - 254: int16(1347), - 255: int16(593), - 256: int16(1282), - 257: int16(1286), - 258: int16(1350), - 259: int16(1359), - 260: int16(1368), - 261: int16(1314), - 262: int16(1480), - 263: int16(1483), - 264: int16(1507), - 265: int16(1085), - 266: int16(1338), - 267: int16(1526), - 268: int16(1527), - 269: int16(1487), - 270: int16(1531), - 271: int16(560), - 272: int16(1532), - 273: int16(1534), - 274: int16(1535), - 275: int16(1538), - 276: int16(1539), - 277: int16(1541), - 278: int16(1448), - 279: int16(1450), - 280: int16(1496), - 281: int16(1484), - 282: int16(1485), - 283: int16(1489), - 284: int16(1490), - 285: int16(1314), - 286: int16(1496), - 287: int16(1496), - 288: int16(1504), - 289: int16(1536), - 290: int16(1564), - 291: int16(1451), - 292: int16(1486), - 293: int16(1492), - 294: int16(1509), - 295: int16(1493), - 296: int16(1465), - 297: int16(1515), - 298: int16(1494), - 299: int16(1495), - 300: int16(1517), - 301: int16(1500), - 302: int16(1519), - 303: int16(1474), - 304: int16(1550), - 305: int16(1543), - 306: int16(1548), - 307: int16(1556), - 308: int16(1565), - 309: int16(1566), - 310: int16(1518), - 311: int16(1523), - 312: int16(1542), - 313: int16(1544), - 314: int16(1525), - 315: int16(1545), - 316: int16(1513), - 317: int16(1553), - 318: int16(1552), - 319: int16(1604), - 320: int16(1508), - 321: int16(1510), - 322: int16(1608), - 323: int16(1609), - 324: int16(1520), - 325: int16(1528), - 326: int16(1612), - 327: int16(1540), - 328: int16(1559), - 329: int16(1560), - 330: int16(1592), - 331: int16(1591), - 332: int16(1595), - 333: int16(1596), - 334: int16(1597), - 335: int16(1629), - 336: int16(1638), - 337: int16(1594), - 338: int16(1569), - 339: int16(1570), - 340: int16(1600), - 341: int16(1568), - 342: int16(1610), - 343: int16(1601), - 344: int16(1611), - 345: int16(1603), - 346: int16(1643), - 347: int16(1651), - 348: int16(1562), - 349: int16(1571), - 350: int16(1655), - 351: int16(1659), - 352: int16(1640), - 353: int16(1663), - 354: int16(1666), - 355: int16(1664), - 356: int16(1667), - 357: int16(1641), - 358: int16(1650), - 359: int16(1652), - 360: int16(1653), - 361: int16(1647), - 362: int16(1656), - 363: int16(1657), - 364: int16(1658), - 365: int16(1668), - 366: int16(1672), - 367: int16(1681), - 368: int16(1649), - 369: int16(1682), - 370: int16(1683), - 371: int16(1573), - 372: int16(1582), - 373: int16(1607), - 374: int16(1615), - 375: int16(1685), - 376: int16(1702), - 377: int16(1586), - 378: int16(1587), - 379: int16(1642), - 380: int16(1646), - 381: int16(1673), - 382: int16(1675), - 383: int16(1636), - 384: int16(1714), - 385: int16(1637), - 386: int16(1677), - 387: int16(1674), - 388: int16(1678), - 389: int16(1694), - 390: int16(1719), - 391: int16(1734), - 392: int16(1735), - 393: int16(1746), - 394: int16(1747), - 395: int16(1750), - 396: int16(1633), - 397: int16(1661), + 76: uint16(1093), + 77: uint16(1093), + 78: uint16(1093), + 79: uint16(1093), + 80: uint16(1093), + 81: uint16(1093), + 82: uint16(1093), + 83: uint16(1113), + 84: uint16(1093), + 85: uint16(1216), + 86: uint16(957), + 87: uint16(957), + 88: uint16(1523), + 89: uint16(1602), + 90: uint16(1674), + 91: uint16(1828), + 92: uint16(1828), + 93: uint16(1828), + 94: uint16(1828), + 95: uint16(1828), + 96: uint16(1828), + 97: uint16(1828), + 98: uint16(1828), + 99: uint16(1828), + 100: uint16(1828), + 101: uint16(1828), + 102: uint16(1828), + 103: uint16(1828), + 104: uint16(1828), + 105: uint16(1828), + 106: uint16(1828), + 107: uint16(1828), + 108: uint16(1828), + 109: uint16(1828), + 110: uint16(1828), + 111: uint16(1828), + 112: uint16(1828), + 113: uint16(1828), + 114: uint16(1828), + 115: uint16(1828), + 116: uint16(1828), + 117: uint16(1828), + 118: uint16(1828), + 119: uint16(1828), + 120: uint16(1828), + 121: uint16(1828), + 122: uint16(1828), + 123: uint16(1828), + 124: uint16(1828), + 125: uint16(1828), + 126: uint16(1828), + 127: uint16(1828), + 128: uint16(1828), + 129: uint16(1828), + 130: uint16(1828), + 131: uint16(1828), + 132: uint16(1828), + 133: uint16(1828), + 134: uint16(1828), + 135: uint16(1828), + 136: uint16(1828), + 137: uint16(1828), + 138: uint16(1828), + 139: uint16(1828), + 140: uint16(137), + 141: uint16(181), + 142: uint16(181), + 143: uint16(181), + 144: uint16(181), + 145: uint16(181), + 146: uint16(181), + 147: uint16(181), + 148: uint16(96), + 149: uint16(222), + 150: uint16(143), + 151: uint16(477), + 152: uint16(713), + 153: uint16(1133), + 154: uint16(1268), + 155: uint16(713), + 156: uint16(713), + 157: uint16(79), + 158: uint16(79), + 159: uint16(713), + 160: uint16(770), + 161: uint16(83), + 162: uint16(65), + 163: uint16(65), + 164: uint16(65), + 165: uint16(288), + 166: uint16(162), + 167: uint16(162), + 168: uint16(2142), + 169: uint16(2142), + 170: uint16(696), + 171: uint16(696), + 172: uint16(696), + 173: uint16(238), + 174: uint16(474), + 175: uint16(474), + 176: uint16(474), + 177: uint16(474), + 178: uint16(1217), + 179: uint16(1217), + 180: uint16(678), + 181: uint16(477), + 182: uint16(324), + 183: uint16(398), + 184: uint16(713), + 185: uint16(713), + 186: uint16(713), + 187: uint16(713), + 188: uint16(713), + 189: uint16(713), + 190: uint16(713), + 191: uint16(713), + 192: uint16(713), + 193: uint16(713), + 194: uint16(713), + 195: uint16(713), + 196: uint16(713), + 197: uint16(713), + 198: uint16(713), + 199: uint16(713), + 200: uint16(713), + 201: uint16(713), + 202: uint16(713), + 203: uint16(1220), + 204: uint16(366), + 205: uint16(366), + 206: uint16(713), + 207: uint16(917), + 208: uint16(283), + 209: uint16(283), + 210: uint16(434), + 211: uint16(434), + 212: uint16(605), + 213: uint16(605), + 214: uint16(1298), + 215: uint16(2142), + 216: uint16(2142), + 217: uint16(2142), + 218: uint16(2142), + 219: uint16(2142), + 220: uint16(2142), + 221: uint16(2142), + 222: uint16(1179), + 223: uint16(1157), + 224: uint16(1157), + 225: uint16(487), + 226: uint16(527), + 227: uint16(585), + 228: uint16(645), + 229: uint16(749), + 230: uint16(914), + 231: uint16(968), + 232: uint16(752), + 233: uint16(713), + 234: uint16(713), + 235: uint16(713), + 236: uint16(713), + 237: uint16(713), + 238: uint16(713), + 239: uint16(713), + 240: uint16(713), + 241: uint16(713), + 242: uint16(713), + 243: uint16(303), + 244: uint16(713), + 245: uint16(713), + 246: uint16(713), + 247: uint16(713), + 248: uint16(713), + 249: uint16(713), + 250: uint16(713), + 251: uint16(713), + 252: uint16(713), + 253: uint16(713), + 254: uint16(713), + 255: uint16(713), + 256: uint16(797), + 257: uint16(797), + 258: uint16(797), + 259: uint16(713), + 260: uint16(713), + 261: uint16(713), + 262: uint16(959), + 263: uint16(713), + 264: uint16(713), + 265: uint16(713), + 266: uint16(1169), + 267: uint16(1271), + 268: uint16(713), + 269: uint16(713), + 270: uint16(1330), + 271: uint16(713), + 272: uint16(713), + 273: uint16(713), + 274: uint16(713), + 275: uint16(713), + 276: uint16(713), + 277: uint16(713), + 278: uint16(713), + 279: uint16(629), + 280: uint16(7), + 281: uint16(91), + 282: uint16(876), + 283: uint16(876), + 284: uint16(876), + 285: uint16(876), + 286: uint16(953), + 287: uint16(91), + 288: uint16(91), + 289: uint16(1246), + 290: uint16(1065), + 291: uint16(1106), + 292: uint16(1374), + 293: uint16(1329), + 294: uint16(1348), + 295: uint16(468), + 296: uint16(1348), + 297: uint16(1394), + 298: uint16(785), + 299: uint16(1329), + 300: uint16(1329), + 301: uint16(785), + 302: uint16(1329), + 303: uint16(468), + 304: uint16(1394), + 305: uint16(859), + 306: uint16(854), + 307: uint16(1402), + 308: uint16(1449), + 309: uint16(1449), + 310: uint16(1449), + 311: uint16(1173), + 312: uint16(1173), + 313: uint16(1173), + 314: uint16(1173), + 315: uint16(1355), + 316: uint16(1355), + 317: uint16(1030), + 318: uint16(1341), + 319: uint16(405), + 320: uint16(1230), + 321: uint16(1795), + 322: uint16(1795), + 323: uint16(1711), + 324: uint16(1711), + 325: uint16(1829), + 326: uint16(1829), + 327: uint16(1711), + 328: uint16(1717), + 329: uint16(1719), + 330: uint16(1850), + 331: uint16(1833), + 332: uint16(1860), + 333: uint16(1860), + 334: uint16(1860), + 335: uint16(1860), + 336: uint16(1711), + 337: uint16(1868), + 338: uint16(1740), + 339: uint16(1719), + 340: uint16(1719), + 341: uint16(1740), + 342: uint16(1850), + 343: uint16(1833), + 344: uint16(1740), + 345: uint16(1833), + 346: uint16(1740), + 347: uint16(1711), + 348: uint16(1868), + 349: uint16(1745), + 350: uint16(1843), + 351: uint16(1711), + 352: uint16(1868), + 353: uint16(1887), + 354: uint16(1711), + 355: uint16(1868), + 356: uint16(1711), + 357: uint16(1868), + 358: uint16(1887), + 359: uint16(1801), + 360: uint16(1801), + 361: uint16(1801), + 362: uint16(1855), + 363: uint16(1900), + 364: uint16(1900), + 365: uint16(1887), + 366: uint16(1801), + 367: uint16(1797), + 368: uint16(1801), + 369: uint16(1855), + 370: uint16(1801), + 371: uint16(1801), + 372: uint16(1761), + 373: uint16(1912), + 374: uint16(1830), + 375: uint16(1830), + 376: uint16(1887), + 377: uint16(1711), + 378: uint16(1862), + 379: uint16(1862), + 380: uint16(1875), + 381: uint16(1875), + 382: uint16(1810), + 383: uint16(1815), + 384: uint16(1940), + 385: uint16(1711), + 386: uint16(1807), + 387: uint16(1810), + 388: uint16(1821), + 389: uint16(1823), + 390: uint16(1740), + 391: uint16(1945), + 392: uint16(1963), + 393: uint16(1963), + 394: uint16(1974), + 395: uint16(1974), + 396: uint16(1974), + 397: uint16(2142), + 398: uint16(2142), + 399: uint16(2142), + 400: uint16(2142), + 401: uint16(2142), + 402: uint16(2142), + 403: uint16(2142), + 404: uint16(2142), + 405: uint16(2142), + 406: uint16(2142), + 407: uint16(2142), + 408: uint16(2142), + 409: uint16(2142), + 410: uint16(2142), + 411: uint16(2142), + 412: uint16(20), + 413: uint16(1224), + 414: uint16(256), + 415: uint16(1111), + 416: uint16(1115), + 417: uint16(1114), + 418: uint16(1192), + 419: uint16(1496), + 420: uint16(1424), + 421: uint16(1505), + 422: uint16(1427), + 423: uint16(355), + 424: uint16(1383), + 425: uint16(1537), + 426: uint16(1506), + 427: uint16(1538), + 428: uint16(1553), + 429: uint16(1583), + 430: uint16(1584), + 431: uint16(1591), + 432: uint16(1625), + 433: uint16(541), + 434: uint16(1445), + 435: uint16(1562), + 436: uint16(1450), + 437: uint16(1572), + 438: uint16(1515), + 439: uint16(1428), + 440: uint16(1532), + 441: uint16(1592), + 442: uint16(1629), + 443: uint16(1520), + 444: uint16(1630), + 445: uint16(1639), + 446: uint16(1510), + 447: uint16(1544), + 448: uint16(1662), + 449: uint16(1675), + 450: uint16(1551), + 451: uint16(48), + 452: uint16(1996), + 453: uint16(2001), + 454: uint16(1983), + 455: uint16(1844), + 456: uint16(1993), + 457: uint16(1994), + 458: uint16(1986), + 459: uint16(1989), + 460: uint16(1874), + 461: uint16(1863), + 462: uint16(1885), + 463: uint16(1991), + 464: uint16(1991), + 465: uint16(1995), + 466: uint16(1876), + 467: uint16(1997), + 468: uint16(1877), + 469: uint16(2004), + 470: uint16(2021), + 471: uint16(1881), + 472: uint16(1894), + 473: uint16(1991), + 474: uint16(1895), + 475: uint16(1965), + 476: uint16(1990), + 477: uint16(1991), + 478: uint16(1878), + 479: uint16(1975), + 480: uint16(1977), + 481: uint16(1978), + 482: uint16(1979), + 483: uint16(1903), + 484: uint16(1918), + 485: uint16(2002), + 486: uint16(1896), + 487: uint16(2034), + 488: uint16(2033), + 489: uint16(2017), + 490: uint16(1925), + 491: uint16(1880), + 492: uint16(1976), + 493: uint16(2018), + 494: uint16(1980), + 495: uint16(1967), + 496: uint16(2005), + 497: uint16(1904), + 498: uint16(1932), + 499: uint16(2025), + 500: uint16(2030), + 501: uint16(2032), + 502: uint16(1921), + 503: uint16(1928), + 504: uint16(2035), + 505: uint16(1987), + 506: uint16(2036), + 507: uint16(2037), + 508: uint16(2038), + 509: uint16(2040), + 510: uint16(1988), + 511: uint16(2006), + 512: uint16(2039), + 513: uint16(1960), + 514: uint16(2041), + 515: uint16(2042), + 516: uint16(1999), + 517: uint16(2023), + 518: uint16(2044), + 519: uint16(2043), + 520: uint16(1919), + 521: uint16(2048), + 522: uint16(2049), + 523: uint16(2050), + 524: uint16(2046), + 525: uint16(2051), + 526: uint16(2053), + 527: uint16(1981), + 528: uint16(1935), + 529: uint16(2056), + 530: uint16(2057), + 531: uint16(1966), + 532: uint16(2047), + 533: uint16(2061), + 534: uint16(1941), + 535: uint16(2060), + 536: uint16(2052), + 537: uint16(2054), + 538: uint16(2055), + 539: uint16(2058), + 540: uint16(2003), + 541: uint16(2012), + 542: uint16(2007), + 543: uint16(2059), + 544: uint16(2015), + 545: uint16(2008), + 546: uint16(2062), + 547: uint16(2071), + 548: uint16(2073), + 549: uint16(2074), + 550: uint16(2072), + 551: uint16(2075), + 552: uint16(2065), + 553: uint16(1962), + 554: uint16(1964), + 555: uint16(2079), + 556: uint16(2060), + 557: uint16(2082), + 558: uint16(2084), + 559: uint16(2085), + 560: uint16(2087), + 561: uint16(2086), + 562: uint16(2089), + 563: uint16(2088), + 564: uint16(2091), + 565: uint16(2093), + 566: uint16(2099), + 567: uint16(2094), + 568: uint16(2095), + 569: uint16(2096), + 570: uint16(2097), + 571: uint16(2100), + 572: uint16(2101), + 573: uint16(2102), + 574: uint16(1998), + 575: uint16(1984), + 576: uint16(1985), + 577: uint16(2000), + 578: uint16(2103), + 579: uint16(2098), + 580: uint16(2109), + 581: uint16(2117), + 582: uint16(2128), +} +var _yy_reduce_ofst = [412]int16{ + 0: int16(-int32(71)), + 1: int16(194), + 2: int16(343), + 3: int16(835), + 4: int16(-int32(180)), + 5: int16(-int32(177)), + 6: int16(838), + 7: int16(-int32(194)), + 8: int16(-int32(188)), + 9: int16(-int32(185)), + 10: int16(-int32(183)), + 11: int16(82), + 12: int16(183), + 13: int16(-int32(65)), + 14: int16(133), + 15: int16(245), + 16: int16(346), + 17: int16(407), + 18: int16(458), + 19: int16(-int32(178)), + 20: int16(75), + 21: int16(-int32(275)), + 22: int16(-int32(4)), + 23: int16(310), + 24: int16(312), + 25: int16(489), + 26: int16(575), + 27: int16(596), + 28: int16(463), + 29: int16(686), + 30: int16(707), + 31: int16(725), + 32: int16(780), + 33: int16(1098), + 34: int16(856), + 35: int16(778), + 36: int16(1059), + 37: int16(1090), + 38: int16(708), + 39: int16(887), + 40: int16(86), + 41: int16(448), + 42: int16(980), + 43: int16(630), + 44: int16(680), + 45: int16(681), + 46: int16(684), + 47: int16(796), + 48: int16(801), + 49: int16(796), + 50: int16(801), + 51: int16(-int32(261)), + 52: int16(-int32(261)), + 53: int16(-int32(261)), + 54: int16(-int32(261)), + 55: int16(-int32(261)), + 56: int16(-int32(261)), + 57: int16(-int32(261)), + 58: int16(-int32(261)), + 59: int16(-int32(261)), + 60: int16(-int32(261)), + 61: int16(-int32(261)), + 62: int16(-int32(261)), + 63: int16(-int32(261)), + 64: int16(-int32(261)), + 65: int16(-int32(261)), + 66: int16(-int32(261)), + 67: int16(-int32(261)), + 68: int16(-int32(261)), + 69: int16(-int32(261)), + 70: int16(-int32(261)), + 71: int16(-int32(261)), + 72: int16(-int32(261)), + 73: int16(-int32(261)), + 74: int16(-int32(261)), + 75: int16(-int32(261)), + 76: int16(-int32(261)), + 77: int16(-int32(261)), + 78: int16(-int32(261)), + 79: int16(-int32(261)), + 80: int16(-int32(261)), + 81: int16(-int32(261)), + 82: int16(-int32(261)), + 83: int16(-int32(261)), + 84: int16(-int32(261)), + 85: int16(-int32(261)), + 86: int16(-int32(261)), + 87: int16(-int32(261)), + 88: int16(391), + 89: int16(886), + 90: int16(888), + 91: int16(1013), + 92: int16(1016), + 93: int16(1081), + 94: int16(1087), + 95: int16(1151), + 96: int16(1159), + 97: int16(1177), + 98: int16(1185), + 99: int16(1188), + 100: int16(1190), + 101: int16(1194), + 102: int16(1197), + 103: int16(1203), + 104: int16(1247), + 105: int16(1260), + 106: int16(1264), + 107: int16(1267), + 108: int16(1269), + 109: int16(1273), + 110: int16(1315), + 111: int16(1322), + 112: int16(1335), + 113: int16(1337), + 114: int16(1356), + 115: int16(1362), + 116: int16(1418), + 117: int16(1425), + 118: int16(1453), + 119: int16(1457), + 120: int16(1465), + 121: int16(1473), + 122: int16(1487), + 123: int16(1495), + 124: int16(1507), + 125: int16(1517), + 126: int16(1521), + 127: int16(1534), + 128: int16(1543), + 129: int16(1546), + 130: int16(1549), + 131: int16(1552), + 132: int16(1554), + 133: int16(1560), + 134: int16(1581), + 135: int16(1590), + 136: int16(1593), + 137: int16(1595), + 138: int16(1621), + 139: int16(1623), + 140: int16(-int32(261)), + 141: int16(-int32(261)), + 142: int16(-int32(261)), + 143: int16(-int32(261)), + 144: int16(-int32(261)), + 145: int16(-int32(261)), + 146: int16(-int32(261)), + 147: int16(-int32(261)), + 148: int16(-int32(261)), + 149: int16(-int32(261)), + 150: int16(-int32(261)), + 151: int16(-int32(186)), + 152: int16(-int32(117)), + 153: int16(260), + 154: int16(263), + 155: int16(460), + 156: int16(631), + 157: int16(-int32(74)), + 158: int16(497), + 159: int16(-int32(181)), + 160: int16(-int32(261)), + 161: int16(939), + 162: int16(176), + 163: int16(274), + 164: int16(338), + 165: int16(676), + 166: int16(-int32(261)), + 167: int16(-int32(261)), + 168: int16(-int32(261)), + 169: int16(-int32(261)), + 170: int16(-int32(212)), + 171: int16(-int32(212)), + 172: int16(-int32(212)), + 173: int16(-int32(184)), + 174: int16(149), + 175: int16(777), + 176: int16(1061), + 177: int16(1103), + 178: int16(265), + 179: int16(419), + 180: int16(-int32(254)), + 181: int16(670), + 182: int16(677), + 183: int16(677), + 184: int16(-int32(11)), + 185: int16(-int32(129)), + 186: int16(184), + 187: int16(488), + 188: int16(736), + 189: int16(789), + 190: int16(805), + 191: int16(844), + 192: int16(403), + 193: int16(529), + 194: int16(579), + 195: int16(668), + 196: int16(783), + 197: int16(841), + 198: int16(1158), + 199: int16(1112), + 200: int16(806), + 201: int16(861), + 202: int16(1095), + 203: int16(846), + 204: int16(839), + 205: int16(1031), + 206: int16(-int32(189)), + 207: int16(1077), + 208: int16(1080), + 209: int16(1116), + 210: int16(1084), + 211: int16(1156), + 212: int16(1139), + 213: int16(1221), + 214: int16(46), + 215: int16(1099), + 216: int16(1037), + 217: int16(1118), + 218: int16(1171), + 219: int16(1214), + 220: int16(1210), + 221: int16(1258), + 222: int16(-int32(210)), + 223: int16(-int32(190)), + 224: int16(-int32(176)), + 225: int16(-int32(115)), + 226: int16(117), + 227: int16(262), + 228: int16(376), + 229: int16(490), + 230: int16(511), + 231: int16(520), + 232: int16(618), + 233: int16(639), + 234: int16(743), + 235: int16(901), + 236: int16(907), + 237: int16(958), + 238: int16(1014), + 239: int16(1055), + 240: int16(1108), + 241: int16(1193), + 242: int16(1244), + 243: int16(720), + 244: int16(1248), + 245: int16(1277), + 246: int16(1324), + 247: int16(1347), + 248: int16(1417), + 249: int16(1431), + 250: int16(1432), + 251: int16(1440), + 252: int16(1451), + 253: int16(1452), + 254: int16(1463), + 255: int16(1478), + 256: int16(1286), + 257: int16(1350), + 258: int16(1369), + 259: int16(1490), + 260: int16(1498), + 261: int16(1501), + 262: int16(773), + 263: int16(1509), + 264: int16(1513), + 265: int16(1528), + 266: int16(1292), + 267: int16(1367), + 268: int16(1535), + 269: int16(1536), + 270: int16(1477), + 271: int16(1542), + 272: int16(376), + 273: int16(1547), + 274: int16(1550), + 275: int16(1555), + 276: int16(1559), + 277: int16(1568), + 278: int16(1571), + 279: int16(1441), + 280: int16(1443), + 281: int16(1474), + 282: int16(1511), + 283: int16(1516), + 284: int16(1519), + 285: int16(1522), + 286: int16(773), + 287: int16(1474), + 288: int16(1474), + 289: int16(1503), + 290: int16(1567), + 291: int16(1594), + 292: int16(1484), + 293: int16(1527), + 294: int16(1556), + 295: int16(1570), + 296: int16(1557), + 297: int16(1524), + 298: int16(1573), + 299: int16(1545), + 300: int16(1548), + 301: int16(1576), + 302: int16(1561), + 303: int16(1587), + 304: int16(1540), + 305: int16(1575), + 306: int16(1606), + 307: int16(1611), + 308: int16(1622), + 309: int16(1624), + 310: int16(1626), + 311: int16(1582), + 312: int16(1597), + 313: int16(1598), + 314: int16(1599), + 315: int16(1601), + 316: int16(1603), + 317: int16(1563), + 318: int16(1608), + 319: int16(1605), + 320: int16(1604), + 321: int16(1564), + 322: int16(1566), + 323: int16(1655), + 324: int16(1660), + 325: int16(1578), + 326: int16(1579), + 327: int16(1665), + 328: int16(1586), + 329: int16(1607), + 330: int16(1610), + 331: int16(1642), + 332: int16(1641), + 333: int16(1645), + 334: int16(1646), + 335: int16(1647), + 336: int16(1679), + 337: int16(1688), + 338: int16(1644), + 339: int16(1618), + 340: int16(1619), + 341: int16(1648), + 342: int16(1628), + 343: int16(1659), + 344: int16(1649), + 345: int16(1663), + 346: int16(1650), + 347: int16(1700), + 348: int16(1702), + 349: int16(1612), + 350: int16(1615), + 351: int16(1706), + 352: int16(1708), + 353: int16(1689), + 354: int16(1709), + 355: int16(1712), + 356: int16(1713), + 357: int16(1715), + 358: int16(1691), + 359: int16(1698), + 360: int16(1699), + 361: int16(1701), + 362: int16(1693), + 363: int16(1704), + 364: int16(1707), + 365: int16(1705), + 366: int16(1714), + 367: int16(1703), + 368: int16(1718), + 369: int16(1710), + 370: int16(1720), + 371: int16(1721), + 372: int16(1632), + 373: int16(1634), + 374: int16(1664), + 375: int16(1666), + 376: int16(1729), + 377: int16(1751), + 378: int16(1635), + 379: int16(1636), + 380: int16(1692), + 381: int16(1694), + 382: int16(1716), + 383: int16(1722), + 384: int16(1684), + 385: int16(1763), + 386: int16(1685), + 387: int16(1723), + 388: int16(1724), + 389: int16(1727), + 390: int16(1730), + 391: int16(1768), + 392: int16(1783), + 393: int16(1784), + 394: int16(1793), + 395: int16(1794), + 396: int16(1796), + 397: int16(1683), 398: int16(1686), - 399: int16(1738), - 400: int16(1728), - 401: int16(1733), - 402: int16(1736), - 403: int16(1737), - 404: int16(1740), - 405: int16(1726), - 406: int16(1730), - 407: int16(1742), - 408: int16(1743), - 409: int16(1748), - 410: int16(1753), -} -var _yy_default = [579]uint16{ - 0: uint16(1648), - 1: uint16(1648), - 2: uint16(1648), - 3: uint16(1478), - 4: uint16(1243), - 5: uint16(1354), - 6: uint16(1243), - 7: uint16(1243), - 8: uint16(1243), - 9: uint16(1478), - 10: uint16(1478), - 11: uint16(1478), - 12: uint16(1243), - 13: uint16(1384), - 14: uint16(1384), - 15: uint16(1531), - 16: uint16(1276), - 17: uint16(1243), - 18: uint16(1243), - 19: uint16(1243), - 20: uint16(1243), - 21: uint16(1243), - 22: uint16(1243), - 23: uint16(1243), - 24: uint16(1243), - 25: uint16(1243), - 26: uint16(1243), - 27: uint16(1243), - 28: uint16(1477), - 29: uint16(1243), - 30: uint16(1243), - 31: uint16(1243), - 32: uint16(1243), - 33: uint16(1564), - 34: uint16(1564), - 35: uint16(1243), - 36: uint16(1243), - 37: uint16(1243), - 38: uint16(1243), - 39: uint16(1243), - 40: uint16(1243), - 41: uint16(1243), - 42: uint16(1243), - 43: uint16(1393), - 44: uint16(1243), - 45: uint16(1400), - 46: uint16(1243), - 47: uint16(1243), - 48: uint16(1243), - 49: uint16(1243), - 50: uint16(1243), - 51: uint16(1479), - 52: uint16(1480), - 53: uint16(1243), - 54: uint16(1243), - 55: uint16(1243), - 56: uint16(1530), - 57: uint16(1532), - 58: uint16(1495), - 59: uint16(1407), - 60: uint16(1406), - 61: uint16(1405), - 62: uint16(1404), - 63: uint16(1513), - 64: uint16(1372), - 65: uint16(1398), - 66: uint16(1391), - 67: uint16(1395), - 68: uint16(1474), - 69: uint16(1475), - 70: uint16(1473), - 71: uint16(1626), - 72: uint16(1480), - 73: uint16(1479), - 74: uint16(1243), - 75: uint16(1394), - 76: uint16(1442), - 77: uint16(1458), - 78: uint16(1441), - 79: uint16(1243), - 80: uint16(1243), - 81: uint16(1243), - 82: uint16(1243), - 83: uint16(1243), - 84: uint16(1243), - 85: uint16(1243), - 86: uint16(1243), - 87: uint16(1243), - 88: uint16(1243), - 89: uint16(1243), - 90: uint16(1243), - 91: uint16(1243), - 92: uint16(1243), - 93: uint16(1243), - 94: uint16(1243), - 95: uint16(1243), - 96: uint16(1243), - 97: uint16(1243), - 98: uint16(1243), - 99: uint16(1243), - 100: uint16(1243), - 101: uint16(1243), - 102: uint16(1243), - 103: uint16(1243), - 104: uint16(1243), - 105: uint16(1243), - 106: uint16(1243), - 107: uint16(1243), - 108: uint16(1243), - 109: uint16(1243), - 110: uint16(1243), - 111: uint16(1243), - 112: uint16(1243), - 113: uint16(1243), - 114: uint16(1243), - 115: uint16(1243), - 116: uint16(1243), - 117: uint16(1243), - 118: uint16(1243), - 119: uint16(1243), - 120: uint16(1243), - 121: uint16(1243), - 122: uint16(1243), - 123: uint16(1243), - 124: uint16(1243), - 125: uint16(1243), - 126: uint16(1243), - 127: uint16(1243), - 128: uint16(1243), - 129: uint16(1243), - 130: uint16(1243), - 131: uint16(1450), - 132: uint16(1457), - 133: uint16(1456), - 134: uint16(1455), - 135: uint16(1464), - 136: uint16(1454), - 137: uint16(1451), - 138: uint16(1444), - 139: uint16(1443), - 140: uint16(1445), - 141: uint16(1446), - 142: uint16(1243), - 143: uint16(1243), - 144: uint16(1267), - 145: uint16(1243), - 146: uint16(1243), - 147: uint16(1264), - 148: uint16(1318), - 149: uint16(1243), - 150: uint16(1243), - 151: uint16(1243), - 152: uint16(1243), - 153: uint16(1243), - 154: uint16(1550), - 155: uint16(1549), - 156: uint16(1243), - 157: uint16(1447), - 158: uint16(1243), - 159: uint16(1276), - 160: uint16(1435), - 161: uint16(1434), - 162: uint16(1433), - 163: uint16(1461), - 164: uint16(1448), - 165: uint16(1460), - 166: uint16(1459), - 167: uint16(1538), - 168: uint16(1600), - 169: uint16(1599), - 170: uint16(1496), - 171: uint16(1243), - 172: uint16(1243), - 173: uint16(1243), - 174: uint16(1243), - 175: uint16(1243), - 176: uint16(1243), - 177: uint16(1564), - 178: uint16(1243), - 179: uint16(1243), - 180: uint16(1243), - 181: uint16(1243), - 182: uint16(1243), - 183: uint16(1243), - 184: uint16(1243), - 185: uint16(1243), - 186: uint16(1243), - 187: uint16(1243), - 188: uint16(1243), - 189: uint16(1243), - 190: uint16(1243), - 191: uint16(1243), - 192: uint16(1243), - 193: uint16(1243), - 194: uint16(1243), - 195: uint16(1243), - 196: uint16(1243), - 197: uint16(1243), - 198: uint16(1243), - 199: uint16(1243), - 200: uint16(1243), - 201: uint16(1374), - 202: uint16(1564), - 203: uint16(1564), - 204: uint16(1243), - 205: uint16(1276), - 206: uint16(1564), - 207: uint16(1564), - 208: uint16(1375), - 209: uint16(1375), - 210: uint16(1272), - 211: uint16(1272), - 212: uint16(1378), - 213: uint16(1243), - 214: uint16(1545), - 215: uint16(1345), - 216: uint16(1345), - 217: uint16(1345), - 218: uint16(1345), - 219: uint16(1354), - 220: uint16(1345), - 221: uint16(1243), - 222: uint16(1243), - 223: uint16(1243), - 224: uint16(1243), - 225: uint16(1243), - 226: uint16(1243), - 227: uint16(1243), - 228: uint16(1243), - 229: uint16(1243), - 230: uint16(1243), - 231: uint16(1243), - 232: uint16(1243), - 233: uint16(1243), - 234: uint16(1243), - 235: uint16(1243), - 236: uint16(1535), - 237: uint16(1533), - 238: uint16(1243), - 239: uint16(1243), - 240: uint16(1243), - 241: uint16(1243), - 242: uint16(1243), - 243: uint16(1243), - 244: uint16(1243), - 245: uint16(1243), - 246: uint16(1243), - 247: uint16(1243), - 248: uint16(1243), - 249: uint16(1243), - 250: uint16(1243), - 251: uint16(1243), - 252: uint16(1243), - 253: uint16(1243), - 254: uint16(1243), - 255: uint16(1243), - 256: uint16(1243), - 257: uint16(1243), - 258: uint16(1243), - 259: uint16(1243), - 260: uint16(1243), - 261: uint16(1243), - 262: uint16(1243), - 263: uint16(1243), - 264: uint16(1243), - 265: uint16(1350), - 266: uint16(1243), - 267: uint16(1243), - 268: uint16(1243), - 269: uint16(1243), - 270: uint16(1243), - 271: uint16(1243), - 272: uint16(1243), - 273: uint16(1243), - 274: uint16(1243), - 275: uint16(1243), - 276: uint16(1243), - 277: uint16(1593), - 278: uint16(1243), - 279: uint16(1508), - 280: uint16(1332), - 281: uint16(1350), - 282: uint16(1350), - 283: uint16(1350), - 284: uint16(1350), - 285: uint16(1352), - 286: uint16(1333), - 287: uint16(1331), - 288: uint16(1344), - 289: uint16(1277), - 290: uint16(1250), - 291: uint16(1640), - 292: uint16(1410), - 293: uint16(1399), - 294: uint16(1351), - 295: uint16(1399), - 296: uint16(1637), - 297: uint16(1397), + 399: int16(1690), + 400: int16(1782), + 401: int16(1779), + 402: int16(1780), + 403: int16(1781), + 404: int16(1785), + 405: int16(1788), + 406: int16(1774), + 407: int16(1775), + 408: int16(1786), + 409: int16(1787), + 410: int16(1789), + 411: int16(1798), +} +var _yy_default = [583]uint16{ + 0: uint16(1663), + 1: uint16(1663), + 2: uint16(1663), + 3: uint16(1491), + 4: uint16(1254), + 5: uint16(1367), + 6: uint16(1254), + 7: uint16(1254), + 8: uint16(1254), + 9: uint16(1254), + 10: uint16(1491), + 11: uint16(1491), + 12: uint16(1491), + 13: uint16(1254), + 14: uint16(1254), + 15: uint16(1254), + 16: uint16(1254), + 17: uint16(1254), + 18: uint16(1254), + 19: uint16(1397), + 20: uint16(1397), + 21: uint16(1544), + 22: uint16(1287), + 23: uint16(1254), + 24: uint16(1254), + 25: uint16(1254), + 26: uint16(1254), + 27: uint16(1254), + 28: uint16(1254), + 29: uint16(1254), + 30: uint16(1254), + 31: uint16(1254), + 32: uint16(1254), + 33: uint16(1254), + 34: uint16(1254), + 35: uint16(1490), + 36: uint16(1254), + 37: uint16(1254), + 38: uint16(1254), + 39: uint16(1254), + 40: uint16(1578), + 41: uint16(1578), + 42: uint16(1254), + 43: uint16(1254), + 44: uint16(1254), + 45: uint16(1254), + 46: uint16(1254), + 47: uint16(1563), + 48: uint16(1562), + 49: uint16(1254), + 50: uint16(1254), + 51: uint16(1254), + 52: uint16(1406), + 53: uint16(1254), + 54: uint16(1413), + 55: uint16(1254), + 56: uint16(1254), + 57: uint16(1254), + 58: uint16(1254), + 59: uint16(1254), + 60: uint16(1492), + 61: uint16(1493), + 62: uint16(1254), + 63: uint16(1254), + 64: uint16(1254), + 65: uint16(1543), + 66: uint16(1545), + 67: uint16(1508), + 68: uint16(1420), + 69: uint16(1419), + 70: uint16(1418), + 71: uint16(1417), + 72: uint16(1526), + 73: uint16(1385), + 74: uint16(1411), + 75: uint16(1404), + 76: uint16(1408), + 77: uint16(1487), + 78: uint16(1488), + 79: uint16(1486), + 80: uint16(1641), + 81: uint16(1493), + 82: uint16(1492), + 83: uint16(1254), + 84: uint16(1407), + 85: uint16(1455), + 86: uint16(1471), + 87: uint16(1454), + 88: uint16(1254), + 89: uint16(1254), + 90: uint16(1254), + 91: uint16(1254), + 92: uint16(1254), + 93: uint16(1254), + 94: uint16(1254), + 95: uint16(1254), + 96: uint16(1254), + 97: uint16(1254), + 98: uint16(1254), + 99: uint16(1254), + 100: uint16(1254), + 101: uint16(1254), + 102: uint16(1254), + 103: uint16(1254), + 104: uint16(1254), + 105: uint16(1254), + 106: uint16(1254), + 107: uint16(1254), + 108: uint16(1254), + 109: uint16(1254), + 110: uint16(1254), + 111: uint16(1254), + 112: uint16(1254), + 113: uint16(1254), + 114: uint16(1254), + 115: uint16(1254), + 116: uint16(1254), + 117: uint16(1254), + 118: uint16(1254), + 119: uint16(1254), + 120: uint16(1254), + 121: uint16(1254), + 122: uint16(1254), + 123: uint16(1254), + 124: uint16(1254), + 125: uint16(1254), + 126: uint16(1254), + 127: uint16(1254), + 128: uint16(1254), + 129: uint16(1254), + 130: uint16(1254), + 131: uint16(1254), + 132: uint16(1254), + 133: uint16(1254), + 134: uint16(1254), + 135: uint16(1254), + 136: uint16(1254), + 137: uint16(1254), + 138: uint16(1254), + 139: uint16(1254), + 140: uint16(1463), + 141: uint16(1470), + 142: uint16(1469), + 143: uint16(1468), + 144: uint16(1477), + 145: uint16(1467), + 146: uint16(1464), + 147: uint16(1457), + 148: uint16(1456), + 149: uint16(1458), + 150: uint16(1459), + 151: uint16(1278), + 152: uint16(1254), + 153: uint16(1275), + 154: uint16(1329), + 155: uint16(1254), + 156: uint16(1254), + 157: uint16(1254), + 158: uint16(1254), + 159: uint16(1254), + 160: uint16(1460), + 161: uint16(1287), + 162: uint16(1448), + 163: uint16(1447), + 164: uint16(1446), + 165: uint16(1254), + 166: uint16(1474), + 167: uint16(1461), + 168: uint16(1473), + 169: uint16(1472), + 170: uint16(1551), + 171: uint16(1615), + 172: uint16(1614), + 173: uint16(1509), + 174: uint16(1254), + 175: uint16(1254), + 176: uint16(1254), + 177: uint16(1254), + 178: uint16(1254), + 179: uint16(1254), + 180: uint16(1578), + 181: uint16(1254), + 182: uint16(1254), + 183: uint16(1254), + 184: uint16(1254), + 185: uint16(1254), + 186: uint16(1254), + 187: uint16(1254), + 188: uint16(1254), + 189: uint16(1254), + 190: uint16(1254), + 191: uint16(1254), + 192: uint16(1254), + 193: uint16(1254), + 194: uint16(1254), + 195: uint16(1254), + 196: uint16(1254), + 197: uint16(1254), + 198: uint16(1254), + 199: uint16(1254), + 200: uint16(1254), + 201: uint16(1254), + 202: uint16(1254), + 203: uint16(1387), + 204: uint16(1578), + 205: uint16(1578), + 206: uint16(1254), + 207: uint16(1287), + 208: uint16(1578), + 209: uint16(1578), + 210: uint16(1388), + 211: uint16(1388), + 212: uint16(1283), + 213: uint16(1283), + 214: uint16(1391), + 215: uint16(1558), + 216: uint16(1358), + 217: uint16(1358), + 218: uint16(1358), + 219: uint16(1358), + 220: uint16(1367), + 221: uint16(1358), + 222: uint16(1254), + 223: uint16(1254), + 224: uint16(1254), + 225: uint16(1254), + 226: uint16(1254), + 227: uint16(1254), + 228: uint16(1254), + 229: uint16(1254), + 230: uint16(1254), + 231: uint16(1254), + 232: uint16(1254), + 233: uint16(1254), + 234: uint16(1254), + 235: uint16(1254), + 236: uint16(1254), + 237: uint16(1548), + 238: uint16(1546), + 239: uint16(1254), + 240: uint16(1254), + 241: uint16(1254), + 242: uint16(1254), + 243: uint16(1254), + 244: uint16(1254), + 245: uint16(1254), + 246: uint16(1254), + 247: uint16(1254), + 248: uint16(1254), + 249: uint16(1254), + 250: uint16(1254), + 251: uint16(1254), + 252: uint16(1254), + 253: uint16(1254), + 254: uint16(1254), + 255: uint16(1254), + 256: uint16(1254), + 257: uint16(1254), + 258: uint16(1254), + 259: uint16(1254), + 260: uint16(1254), + 261: uint16(1254), + 262: uint16(1254), + 263: uint16(1254), + 264: uint16(1254), + 265: uint16(1254), + 266: uint16(1363), + 267: uint16(1254), + 268: uint16(1254), + 269: uint16(1254), + 270: uint16(1254), + 271: uint16(1254), + 272: uint16(1254), + 273: uint16(1254), + 274: uint16(1254), + 275: uint16(1254), + 276: uint16(1254), + 277: uint16(1254), + 278: uint16(1608), + 279: uint16(1254), + 280: uint16(1521), + 281: uint16(1343), + 282: uint16(1363), + 283: uint16(1363), + 284: uint16(1363), + 285: uint16(1363), + 286: uint16(1365), + 287: uint16(1344), + 288: uint16(1342), + 289: uint16(1357), + 290: uint16(1288), + 291: uint16(1261), + 292: uint16(1655), + 293: uint16(1423), + 294: uint16(1412), + 295: uint16(1364), + 296: uint16(1412), + 297: uint16(1652), 298: uint16(1410), - 299: uint16(1410), - 300: uint16(1397), + 299: uint16(1423), + 300: uint16(1423), 301: uint16(1410), - 302: uint16(1351), - 303: uint16(1637), - 304: uint16(1293), - 305: uint16(1615), - 306: uint16(1288), - 307: uint16(1384), - 308: uint16(1384), - 309: uint16(1384), - 310: uint16(1374), - 311: uint16(1374), - 312: uint16(1374), - 313: uint16(1374), - 314: uint16(1378), - 315: uint16(1378), - 316: uint16(1476), - 317: uint16(1351), - 318: uint16(1344), - 319: uint16(1243), - 320: uint16(1640), - 321: uint16(1640), - 322: uint16(1360), - 323: uint16(1360), - 324: uint16(1639), - 325: uint16(1639), - 326: uint16(1360), - 327: uint16(1496), - 328: uint16(1623), - 329: uint16(1419), - 330: uint16(1321), - 331: uint16(1327), - 332: uint16(1327), - 333: uint16(1327), - 334: uint16(1327), - 335: uint16(1360), - 336: uint16(1261), - 337: uint16(1397), - 338: uint16(1623), - 339: uint16(1623), - 340: uint16(1397), - 341: uint16(1419), - 342: uint16(1321), - 343: uint16(1397), - 344: uint16(1321), - 345: uint16(1397), - 346: uint16(1360), - 347: uint16(1261), - 348: uint16(1512), - 349: uint16(1634), - 350: uint16(1360), - 351: uint16(1261), - 352: uint16(1486), - 353: uint16(1360), - 354: uint16(1261), - 355: uint16(1360), - 356: uint16(1261), - 357: uint16(1486), - 358: uint16(1319), - 359: uint16(1319), - 360: uint16(1319), - 361: uint16(1308), - 362: uint16(1243), - 363: uint16(1243), - 364: uint16(1486), - 365: uint16(1319), - 366: uint16(1293), - 367: uint16(1319), - 368: uint16(1308), + 302: uint16(1423), + 303: uint16(1364), + 304: uint16(1652), + 305: uint16(1304), + 306: uint16(1630), + 307: uint16(1299), + 308: uint16(1397), + 309: uint16(1397), + 310: uint16(1397), + 311: uint16(1387), + 312: uint16(1387), + 313: uint16(1387), + 314: uint16(1387), + 315: uint16(1391), + 316: uint16(1391), + 317: uint16(1489), + 318: uint16(1364), + 319: uint16(1357), + 320: uint16(1254), + 321: uint16(1655), + 322: uint16(1655), + 323: uint16(1373), + 324: uint16(1373), + 325: uint16(1654), + 326: uint16(1654), + 327: uint16(1373), + 328: uint16(1509), + 329: uint16(1638), + 330: uint16(1432), + 331: uint16(1332), + 332: uint16(1338), + 333: uint16(1338), + 334: uint16(1338), + 335: uint16(1338), + 336: uint16(1373), + 337: uint16(1272), + 338: uint16(1410), + 339: uint16(1638), + 340: uint16(1638), + 341: uint16(1410), + 342: uint16(1432), + 343: uint16(1332), + 344: uint16(1410), + 345: uint16(1332), + 346: uint16(1410), + 347: uint16(1373), + 348: uint16(1272), + 349: uint16(1525), + 350: uint16(1649), + 351: uint16(1373), + 352: uint16(1272), + 353: uint16(1499), + 354: uint16(1373), + 355: uint16(1272), + 356: uint16(1373), + 357: uint16(1272), + 358: uint16(1499), + 359: uint16(1330), + 360: uint16(1330), + 361: uint16(1330), + 362: uint16(1319), + 363: uint16(1254), + 364: uint16(1254), + 365: uint16(1499), + 366: uint16(1330), + 367: uint16(1304), + 368: uint16(1330), 369: uint16(1319), - 370: uint16(1319), - 371: uint16(1582), - 372: uint16(1243), - 373: uint16(1490), - 374: uint16(1490), - 375: uint16(1486), - 376: uint16(1360), - 377: uint16(1574), - 378: uint16(1574), - 379: uint16(1387), - 380: uint16(1387), - 381: uint16(1392), - 382: uint16(1378), - 383: uint16(1481), - 384: uint16(1360), - 385: uint16(1243), - 386: uint16(1392), - 387: uint16(1390), - 388: uint16(1388), - 389: uint16(1397), - 390: uint16(1311), - 391: uint16(1596), - 392: uint16(1596), - 393: uint16(1592), - 394: uint16(1592), - 395: uint16(1592), - 396: uint16(1645), - 397: uint16(1645), - 398: uint16(1545), - 399: uint16(1608), - 400: uint16(1276), - 401: uint16(1276), - 402: uint16(1276), - 403: uint16(1276), - 404: uint16(1608), - 405: uint16(1295), - 406: uint16(1295), - 407: uint16(1277), - 408: uint16(1277), - 409: uint16(1276), - 410: uint16(1608), - 411: uint16(1243), - 412: uint16(1243), - 413: uint16(1243), - 414: uint16(1243), - 415: uint16(1243), - 416: uint16(1243), - 417: uint16(1603), - 418: uint16(1243), - 419: uint16(1540), - 420: uint16(1497), - 421: uint16(1364), - 422: uint16(1243), - 423: uint16(1243), - 424: uint16(1243), - 425: uint16(1243), - 426: uint16(1243), - 427: uint16(1243), - 428: uint16(1243), - 429: uint16(1243), - 430: uint16(1243), - 431: uint16(1243), - 432: uint16(1243), - 433: uint16(1243), - 434: uint16(1243), - 435: uint16(1243), - 436: uint16(1243), - 437: uint16(1243), - 438: uint16(1551), - 439: uint16(1243), - 440: uint16(1243), - 441: uint16(1243), - 442: uint16(1243), - 443: uint16(1243), - 444: uint16(1243), - 445: uint16(1243), - 446: uint16(1243), - 447: uint16(1243), - 448: uint16(1243), - 449: uint16(1424), - 450: uint16(1243), - 451: uint16(1246), - 452: uint16(1542), - 453: uint16(1243), - 454: uint16(1243), - 455: uint16(1243), - 456: uint16(1243), - 457: uint16(1243), - 458: uint16(1243), - 459: uint16(1243), - 460: uint16(1243), - 461: uint16(1401), - 462: uint16(1402), - 463: uint16(1365), - 464: uint16(1243), - 465: uint16(1243), - 466: uint16(1243), - 467: uint16(1243), - 468: uint16(1243), - 469: uint16(1243), - 470: uint16(1243), - 471: uint16(1416), - 472: uint16(1243), - 473: uint16(1243), - 474: uint16(1243), - 475: uint16(1411), - 476: uint16(1243), - 477: uint16(1243), - 478: uint16(1243), - 479: uint16(1243), - 480: uint16(1243), - 481: uint16(1243), - 482: uint16(1243), - 483: uint16(1243), - 484: uint16(1636), - 485: uint16(1243), - 486: uint16(1243), - 487: uint16(1243), - 488: uint16(1243), - 489: uint16(1243), - 490: uint16(1243), - 491: uint16(1511), - 492: uint16(1510), - 493: uint16(1243), - 494: uint16(1243), - 495: uint16(1362), - 496: uint16(1243), - 497: uint16(1243), - 498: uint16(1243), - 499: uint16(1243), - 500: uint16(1243), - 501: uint16(1243), - 502: uint16(1243), - 503: uint16(1243), - 504: uint16(1243), - 505: uint16(1243), - 506: uint16(1243), - 507: uint16(1243), - 508: uint16(1243), - 509: uint16(1291), - 510: uint16(1243), - 511: uint16(1243), - 512: uint16(1243), - 513: uint16(1243), - 514: uint16(1243), - 515: uint16(1243), - 516: uint16(1243), - 517: uint16(1243), - 518: uint16(1243), - 519: uint16(1243), - 520: uint16(1243), - 521: uint16(1243), - 522: uint16(1243), - 523: uint16(1243), - 524: uint16(1243), - 525: uint16(1243), - 526: uint16(1243), - 527: uint16(1243), - 528: uint16(1243), - 529: uint16(1243), - 530: uint16(1243), - 531: uint16(1243), - 532: uint16(1243), - 533: uint16(1389), - 534: uint16(1243), - 535: uint16(1243), - 536: uint16(1243), - 537: uint16(1243), - 538: uint16(1243), - 539: uint16(1243), - 540: uint16(1243), - 541: uint16(1243), - 542: uint16(1243), - 543: uint16(1243), - 544: uint16(1243), - 545: uint16(1243), - 546: uint16(1243), - 547: uint16(1243), - 548: uint16(1579), - 549: uint16(1379), - 550: uint16(1243), - 551: uint16(1243), - 552: uint16(1243), - 553: uint16(1243), - 554: uint16(1627), - 555: uint16(1243), - 556: uint16(1243), - 557: uint16(1243), - 558: uint16(1243), - 559: uint16(1243), - 560: uint16(1243), - 561: uint16(1243), - 562: uint16(1243), - 563: uint16(1243), - 564: uint16(1243), - 565: uint16(1243), - 566: uint16(1243), - 567: uint16(1243), - 568: uint16(1243), - 569: uint16(1619), - 570: uint16(1335), - 571: uint16(1425), - 572: uint16(1243), - 573: uint16(1428), - 574: uint16(1265), - 575: uint16(1243), - 576: uint16(1255), - 577: uint16(1243), - 578: uint16(1243), + 370: uint16(1330), + 371: uint16(1330), + 372: uint16(1596), + 373: uint16(1254), + 374: uint16(1503), + 375: uint16(1503), + 376: uint16(1499), + 377: uint16(1373), + 378: uint16(1588), + 379: uint16(1588), + 380: uint16(1400), + 381: uint16(1400), + 382: uint16(1405), + 383: uint16(1391), + 384: uint16(1494), + 385: uint16(1373), + 386: uint16(1254), + 387: uint16(1405), + 388: uint16(1403), + 389: uint16(1401), + 390: uint16(1410), + 391: uint16(1322), + 392: uint16(1611), + 393: uint16(1611), + 394: uint16(1607), + 395: uint16(1607), + 396: uint16(1607), + 397: uint16(1660), + 398: uint16(1660), + 399: uint16(1558), + 400: uint16(1623), + 401: uint16(1287), + 402: uint16(1287), + 403: uint16(1287), + 404: uint16(1287), + 405: uint16(1623), + 406: uint16(1306), + 407: uint16(1306), + 408: uint16(1288), + 409: uint16(1288), + 410: uint16(1287), + 411: uint16(1623), + 412: uint16(1254), + 413: uint16(1254), + 414: uint16(1254), + 415: uint16(1254), + 416: uint16(1254), + 417: uint16(1254), + 418: uint16(1618), + 419: uint16(1254), + 420: uint16(1553), + 421: uint16(1510), + 422: uint16(1377), + 423: uint16(1254), + 424: uint16(1254), + 425: uint16(1254), + 426: uint16(1254), + 427: uint16(1254), + 428: uint16(1254), + 429: uint16(1254), + 430: uint16(1254), + 431: uint16(1254), + 432: uint16(1254), + 433: uint16(1254), + 434: uint16(1254), + 435: uint16(1254), + 436: uint16(1254), + 437: uint16(1254), + 438: uint16(1254), + 439: uint16(1564), + 440: uint16(1254), + 441: uint16(1254), + 442: uint16(1254), + 443: uint16(1254), + 444: uint16(1254), + 445: uint16(1254), + 446: uint16(1254), + 447: uint16(1254), + 448: uint16(1254), + 449: uint16(1254), + 450: uint16(1254), + 451: uint16(1437), + 452: uint16(1254), + 453: uint16(1257), + 454: uint16(1555), + 455: uint16(1254), + 456: uint16(1254), + 457: uint16(1254), + 458: uint16(1254), + 459: uint16(1254), + 460: uint16(1254), + 461: uint16(1254), + 462: uint16(1254), + 463: uint16(1414), + 464: uint16(1415), + 465: uint16(1378), + 466: uint16(1254), + 467: uint16(1254), + 468: uint16(1254), + 469: uint16(1254), + 470: uint16(1254), + 471: uint16(1254), + 472: uint16(1254), + 473: uint16(1429), + 474: uint16(1254), + 475: uint16(1254), + 476: uint16(1254), + 477: uint16(1424), + 478: uint16(1254), + 479: uint16(1254), + 480: uint16(1254), + 481: uint16(1254), + 482: uint16(1254), + 483: uint16(1254), + 484: uint16(1254), + 485: uint16(1254), + 486: uint16(1651), + 487: uint16(1254), + 488: uint16(1254), + 489: uint16(1254), + 490: uint16(1254), + 491: uint16(1254), + 492: uint16(1254), + 493: uint16(1524), + 494: uint16(1523), + 495: uint16(1254), + 496: uint16(1254), + 497: uint16(1375), + 498: uint16(1254), + 499: uint16(1254), + 500: uint16(1254), + 501: uint16(1254), + 502: uint16(1254), + 503: uint16(1254), + 504: uint16(1254), + 505: uint16(1254), + 506: uint16(1254), + 507: uint16(1254), + 508: uint16(1254), + 509: uint16(1254), + 510: uint16(1254), + 511: uint16(1302), + 512: uint16(1254), + 513: uint16(1254), + 514: uint16(1254), + 515: uint16(1254), + 516: uint16(1254), + 517: uint16(1254), + 518: uint16(1254), + 519: uint16(1254), + 520: uint16(1254), + 521: uint16(1254), + 522: uint16(1254), + 523: uint16(1254), + 524: uint16(1254), + 525: uint16(1254), + 526: uint16(1254), + 527: uint16(1254), + 528: uint16(1254), + 529: uint16(1254), + 530: uint16(1254), + 531: uint16(1254), + 532: uint16(1254), + 533: uint16(1254), + 534: uint16(1254), + 535: uint16(1402), + 536: uint16(1254), + 537: uint16(1254), + 538: uint16(1254), + 539: uint16(1254), + 540: uint16(1254), + 541: uint16(1254), + 542: uint16(1254), + 543: uint16(1254), + 544: uint16(1254), + 545: uint16(1254), + 546: uint16(1254), + 547: uint16(1254), + 548: uint16(1254), + 549: uint16(1254), + 550: uint16(1593), + 551: uint16(1392), + 552: uint16(1254), + 553: uint16(1254), + 554: uint16(1254), + 555: uint16(1254), + 556: uint16(1642), + 557: uint16(1254), + 558: uint16(1254), + 559: uint16(1254), + 560: uint16(1254), + 561: uint16(1352), + 562: uint16(1254), + 563: uint16(1254), + 564: uint16(1254), + 565: uint16(1254), + 566: uint16(1254), + 567: uint16(1254), + 568: uint16(1254), + 569: uint16(1254), + 570: uint16(1254), + 571: uint16(1254), + 572: uint16(1254), + 573: uint16(1634), + 574: uint16(1346), + 575: uint16(1438), + 576: uint16(1254), + 577: uint16(1441), + 578: uint16(1276), + 579: uint16(1254), + 580: uint16(1266), + 581: uint16(1254), + 582: uint16(1254), } /********** End of lemon-generated parsing tables *****************************/ @@ -153072,7 +154575,7 @@ var _yy_default = [579]uint16{ // ** to revert to identifiers if they keyword does not apply in the context where // ** it appears. // */ -var _yyFallback = [185]uint16{ +var _yyFallback = [186]uint16{ 2: uint16(59), 3: uint16(59), 4: uint16(59), @@ -153185,8 +154688,9 @@ type yyStackEntry = TyyStackEntry type TyyParser1 = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser1 = TyyParser1 @@ -153194,14 +154698,46 @@ type yyParser1 = TyyParser1 type TyyParser = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser = TyyParser /* #include */ +// C documentation +// +// /* +// ** Try to increase the size of the parser stack. Return the number +// ** of errors. Return 0 on success. +// */ +func _yyGrowStack(tls *libc.TLS, p uintptr) (r int32) { + var idx, newSize, oldSize int32 + var pNew uintptr + _, _, _, _ = idx, newSize, oldSize, pNew + oldSize = int32(1) + int32((int64((*TyyParser)(unsafe.Pointer(p)).FyystackEnd)-int64((*TyyParser)(unsafe.Pointer(p)).Fyystack))/24) + newSize = oldSize*int32(2) + int32(100) + idx = int32((int64((*TyyParser)(unsafe.Pointer(p)).Fyytos) - int64((*TyyParser)(unsafe.Pointer(p)).Fyystack)) / 24) + if (*TyyParser)(unsafe.Pointer(p)).Fyystack == p+32 { + pNew = _parserStackRealloc(tls, uintptr(0), uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + libc.Xmemcpy(tls, pNew, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(oldSize)*uint64(24)) + } else { + pNew = _parserStackRealloc(tls, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + } + (*TyyParser)(unsafe.Pointer(p)).Fyystack = pNew + (*TyyParser)(unsafe.Pointer(p)).Fyytos = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(idx)*24 + (*TyyParser)(unsafe.Pointer(p)).FyystackEnd = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(newSize-int32(1))*24 + return 0 +} + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -153217,10 +154753,11 @@ func _sqlite3ParserInit(tls *libc.TLS, yypRawParser uintptr, pParse uintptr) { _ = yypParser yypParser = yypRawParser (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = yypParser + 16 - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fstateno = uint16(0) - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fmajor = uint16(0) - (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = yypParser + 16 + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack = yypParser + 32 + (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fstateno = uint16(0) + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fmajor = uint16(0) } // C documentation @@ -153248,103 +154785,105 @@ func _yy_destructor(tls *libc.TLS, yypParser uintptr, yymajor uint16, yypminor u ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case int32(204): /* select */ + case int32(205): /* select */ + fallthrough + case int32(240): /* selectnowith */ fallthrough - case int32(239): /* selectnowith */ + case int32(241): /* oneselect */ fallthrough - case int32(240): /* oneselect */ + case int32(253): /* values */ fallthrough - case int32(252): /* values */ + case int32(255): /* mvalues */ _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(216): /* term */ + case int32(217): /* term */ fallthrough - case int32(217): /* expr */ + case int32(218): /* expr */ fallthrough - case int32(246): /* where_opt */ + case int32(247): /* where_opt */ fallthrough - case int32(248): /* having_opt */ + case int32(249): /* having_opt */ fallthrough - case int32(267): /* where_opt_ret */ + case int32(269): /* where_opt_ret */ fallthrough - case int32(278): /* case_operand */ + case int32(280): /* case_operand */ fallthrough - case int32(280): /* case_else */ + case int32(282): /* case_else */ fallthrough - case int32(283): /* vinto */ + case int32(285): /* vinto */ fallthrough - case int32(290): /* when_clause */ + case int32(292): /* when_clause */ fallthrough - case int32(295): /* key_opt */ + case int32(297): /* key_opt */ fallthrough - case int32(311): /* filter_clause */ + case int32(314): /* filter_clause */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(221): /* eidlist_opt */ + case int32(222): /* eidlist_opt */ fallthrough - case int32(231): /* sortlist */ + case int32(232): /* sortlist */ fallthrough - case int32(232): /* eidlist */ + case int32(233): /* eidlist */ fallthrough - case int32(244): /* selcollist */ + case int32(245): /* selcollist */ fallthrough - case int32(247): /* groupby_opt */ + case int32(248): /* groupby_opt */ fallthrough - case int32(249): /* orderby_opt */ + case int32(250): /* orderby_opt */ fallthrough - case int32(253): /* nexprlist */ + case int32(254): /* nexprlist */ fallthrough - case int32(254): /* sclp */ + case int32(256): /* sclp */ fallthrough - case int32(261): /* exprlist */ + case int32(263): /* exprlist */ fallthrough - case int32(268): /* setlist */ + case int32(270): /* setlist */ fallthrough - case int32(277): /* paren_exprlist */ + case int32(279): /* paren_exprlist */ fallthrough - case int32(279): /* case_exprlist */ + case int32(281): /* case_exprlist */ fallthrough - case int32(310): /* part_opt */ + case int32(313): /* part_opt */ _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(238): /* fullname */ + case int32(239): /* fullname */ fallthrough - case int32(245): /* from */ + case int32(246): /* from */ fallthrough - case int32(256): /* seltablist */ + case int32(258): /* seltablist */ fallthrough - case int32(257): /* stl_prefix */ + case int32(259): /* stl_prefix */ fallthrough - case int32(262): /* xfullname */ + case int32(264): /* xfullname */ _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(241): /* wqlist */ + case int32(242): /* wqlist */ _sqlite3WithDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(251): /* window_clause */ + case int32(252): /* window_clause */ fallthrough - case int32(306): /* windowdefn_list */ + case int32(309): /* windowdefn_list */ _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(263): /* idlist */ + case int32(265): /* idlist */ fallthrough - case int32(270): /* idlist_opt */ + case int32(272): /* idlist_opt */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(273): /* filter_over */ + case int32(275): /* filter_over */ fallthrough - case int32(307): /* windowdefn */ + case int32(310): /* windowdefn */ fallthrough - case int32(308): /* window */ + case int32(311): /* window */ fallthrough - case int32(309): /* frame_opt */ + case int32(312): /* frame_opt */ fallthrough - case int32(312): /* over_clause */ + case int32(315): /* over_clause */ _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(286): /* trigger_cmd_list */ + case int32(288): /* trigger_cmd_list */ fallthrough - case int32(291): /* trigger_cmd */ + case int32(293): /* trigger_cmd */ _sqlite3DeleteTriggerStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(288): /* trigger_event */ + case int32(290): /* trigger_event */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TTrigEvent)(unsafe.Pointer(yypminor))).Fb) - case int32(314): /* frame_bound */ + case int32(317): /* frame_bound */ fallthrough - case int32(315): /* frame_bound_s */ + case int32(318): /* frame_bound_s */ fallthrough - case int32(316): /* frame_bound_e */ + case int32(319): /* frame_bound_e */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TFrameBound)(unsafe.Pointer(yypminor))).FpExpr) break /********* End destructor definitions *****************************************/ @@ -153378,11 +154917,20 @@ func _yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var pParser, yytos uintptr + _, _ = pParser, yytos pParser = p - for (*TyyParser)(unsafe.Pointer(pParser)).Fyytos > pParser+16 { - _yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling yy_pop_parser_stack() for each + ** element left in the stack */ + yytos = (*TyyParser)(unsafe.Pointer(pParser)).Fyytos + for yytos > (*TyyParser)(unsafe.Pointer(pParser)).Fyystack { + if int32((*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor) >= int32(YY_MIN_DSTRCTR) { + _yy_destructor(tls, pParser, (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor, yytos+8) + } + yytos -= 24 + } + if (*TyyParser)(unsafe.Pointer(pParser)).Fyystack != pParser+32 { + Xsqlite3_free(tls, (*TyyParser)(unsafe.Pointer(pParser)).Fyystack) } } @@ -153463,13 +155011,13 @@ func _yyStackOverflow(tls *libc.TLS, yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse - for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > yypParser+16 { + for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack { _yy_pop_parser_stack(tls, yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23368, 0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) /******** End %stack_overflow code ********************************************/ /* Suppress warning about unused %extra_argument var */ (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse @@ -153488,15 +155036,18 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint var yytos uintptr _ = yytos (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos += 24 - if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 - _yyStackOverflow(tls, yypParser) - return + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + if yytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { + if _yyGrowStack(tls, yypParser) != 0 { + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 + _yyStackOverflow(tls, yypParser) + return + } + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos } if int32(yyNewState) > int32(YY_MAX_SHIFT) { yyNewState = uint16(int32(yyNewState) + (libc.Int32FromInt32(YY_MIN_REDUCE) - libc.Int32FromInt32(YY_MIN_SHIFTREDUCE))) } - yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos (*TyyStackEntry)(unsafe.Pointer(yytos)).Fstateno = yyNewState (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor = yyMajor *(*TToken)(unsafe.Pointer(yytos + 8)) = yyMinor @@ -153506,419 +155057,423 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint // // /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side // ** of that rule */ -var _yyRuleInfoLhs = [405]uint16{ - 0: uint16(189), - 1: uint16(189), - 2: uint16(188), - 3: uint16(190), - 4: uint16(191), - 5: uint16(191), - 6: uint16(191), - 7: uint16(191), - 8: uint16(190), - 9: uint16(190), - 10: uint16(190), - 11: uint16(190), - 12: uint16(190), - 13: uint16(195), - 14: uint16(197), - 15: uint16(199), - 16: uint16(199), - 17: uint16(198), - 18: uint16(198), - 19: uint16(196), - 20: uint16(196), - 21: uint16(203), - 22: uint16(203), - 23: uint16(205), - 24: uint16(205), - 25: uint16(206), - 26: uint16(208), - 27: uint16(208), - 28: uint16(208), - 29: uint16(209), - 30: uint16(213), - 31: uint16(214), - 32: uint16(215), - 33: uint16(215), - 34: uint16(215), - 35: uint16(215), - 36: uint16(215), - 37: uint16(215), - 38: uint16(215), - 39: uint16(215), - 40: uint16(215), - 41: uint16(215), - 42: uint16(215), - 43: uint16(215), - 44: uint16(215), - 45: uint16(224), - 46: uint16(224), - 47: uint16(220), - 48: uint16(220), - 49: uint16(222), - 50: uint16(222), - 51: uint16(225), - 52: uint16(225), - 53: uint16(225), - 54: uint16(225), - 55: uint16(226), - 56: uint16(226), - 57: uint16(226), - 58: uint16(226), - 59: uint16(226), - 60: uint16(223), - 61: uint16(223), - 62: uint16(227), - 63: uint16(227), - 64: uint16(227), - 65: uint16(202), - 66: uint16(229), - 67: uint16(230), - 68: uint16(230), - 69: uint16(230), - 70: uint16(230), - 71: uint16(230), - 72: uint16(233), - 73: uint16(218), - 74: uint16(218), - 75: uint16(234), - 76: uint16(234), - 77: uint16(235), - 78: uint16(235), - 79: uint16(190), - 80: uint16(237), - 81: uint16(237), - 82: uint16(190), - 83: uint16(190), - 84: uint16(190), - 85: uint16(204), - 86: uint16(204), - 87: uint16(204), - 88: uint16(239), - 89: uint16(242), - 90: uint16(242), - 91: uint16(242), - 92: uint16(240), - 93: uint16(240), - 94: uint16(252), - 95: uint16(252), - 96: uint16(243), - 97: uint16(243), - 98: uint16(243), - 99: uint16(254), +var _yyRuleInfoLhs = [409]uint16{ + 0: uint16(190), + 1: uint16(190), + 2: uint16(189), + 3: uint16(191), + 4: uint16(192), + 5: uint16(192), + 6: uint16(192), + 7: uint16(192), + 8: uint16(191), + 9: uint16(191), + 10: uint16(191), + 11: uint16(191), + 12: uint16(191), + 13: uint16(196), + 14: uint16(198), + 15: uint16(200), + 16: uint16(200), + 17: uint16(199), + 18: uint16(199), + 19: uint16(197), + 20: uint16(197), + 21: uint16(204), + 22: uint16(204), + 23: uint16(206), + 24: uint16(206), + 25: uint16(207), + 26: uint16(209), + 27: uint16(209), + 28: uint16(209), + 29: uint16(210), + 30: uint16(214), + 31: uint16(215), + 32: uint16(216), + 33: uint16(216), + 34: uint16(216), + 35: uint16(216), + 36: uint16(216), + 37: uint16(216), + 38: uint16(216), + 39: uint16(216), + 40: uint16(216), + 41: uint16(216), + 42: uint16(216), + 43: uint16(216), + 44: uint16(216), + 45: uint16(225), + 46: uint16(225), + 47: uint16(221), + 48: uint16(221), + 49: uint16(223), + 50: uint16(223), + 51: uint16(226), + 52: uint16(226), + 53: uint16(226), + 54: uint16(226), + 55: uint16(227), + 56: uint16(227), + 57: uint16(227), + 58: uint16(227), + 59: uint16(227), + 60: uint16(224), + 61: uint16(224), + 62: uint16(228), + 63: uint16(228), + 64: uint16(228), + 65: uint16(203), + 66: uint16(230), + 67: uint16(231), + 68: uint16(231), + 69: uint16(231), + 70: uint16(231), + 71: uint16(231), + 72: uint16(234), + 73: uint16(219), + 74: uint16(219), + 75: uint16(235), + 76: uint16(235), + 77: uint16(236), + 78: uint16(236), + 79: uint16(191), + 80: uint16(238), + 81: uint16(238), + 82: uint16(191), + 83: uint16(191), + 84: uint16(191), + 85: uint16(205), + 86: uint16(205), + 87: uint16(205), + 88: uint16(240), + 89: uint16(243), + 90: uint16(243), + 91: uint16(243), + 92: uint16(241), + 93: uint16(241), + 94: uint16(253), + 95: uint16(241), + 96: uint16(255), + 97: uint16(255), + 98: uint16(244), + 99: uint16(244), 100: uint16(244), - 101: uint16(244), - 102: uint16(244), - 103: uint16(255), - 104: uint16(255), - 105: uint16(245), - 106: uint16(245), - 107: uint16(257), - 108: uint16(257), - 109: uint16(256), - 110: uint16(256), - 111: uint16(256), - 112: uint16(256), - 113: uint16(256), - 114: uint16(200), - 115: uint16(200), - 116: uint16(238), - 117: uint16(238), - 118: uint16(262), - 119: uint16(262), - 120: uint16(262), - 121: uint16(262), - 122: uint16(258), - 123: uint16(258), - 124: uint16(258), - 125: uint16(258), - 126: uint16(259), - 127: uint16(259), - 128: uint16(259), - 129: uint16(264), - 130: uint16(260), - 131: uint16(260), - 132: uint16(249), - 133: uint16(249), - 134: uint16(231), - 135: uint16(231), - 136: uint16(219), - 137: uint16(219), - 138: uint16(219), - 139: uint16(265), - 140: uint16(265), - 141: uint16(265), - 142: uint16(247), - 143: uint16(247), + 101: uint16(256), + 102: uint16(245), + 103: uint16(245), + 104: uint16(245), + 105: uint16(257), + 106: uint16(257), + 107: uint16(246), + 108: uint16(246), + 109: uint16(259), + 110: uint16(259), + 111: uint16(258), + 112: uint16(258), + 113: uint16(258), + 114: uint16(258), + 115: uint16(258), + 116: uint16(201), + 117: uint16(201), + 118: uint16(239), + 119: uint16(239), + 120: uint16(264), + 121: uint16(264), + 122: uint16(264), + 123: uint16(264), + 124: uint16(260), + 125: uint16(260), + 126: uint16(260), + 127: uint16(260), + 128: uint16(261), + 129: uint16(261), + 130: uint16(261), + 131: uint16(266), + 132: uint16(262), + 133: uint16(262), + 134: uint16(250), + 135: uint16(250), + 136: uint16(232), + 137: uint16(232), + 138: uint16(220), + 139: uint16(220), + 140: uint16(220), + 141: uint16(267), + 142: uint16(267), + 143: uint16(267), 144: uint16(248), 145: uint16(248), - 146: uint16(250), - 147: uint16(250), - 148: uint16(250), - 149: uint16(250), - 150: uint16(190), - 151: uint16(246), - 152: uint16(246), - 153: uint16(267), - 154: uint16(267), - 155: uint16(267), - 156: uint16(267), - 157: uint16(190), - 158: uint16(268), - 159: uint16(268), - 160: uint16(268), - 161: uint16(268), - 162: uint16(190), - 163: uint16(190), - 164: uint16(271), - 165: uint16(271), - 166: uint16(271), - 167: uint16(271), - 168: uint16(271), - 169: uint16(271), - 170: uint16(272), - 171: uint16(269), - 172: uint16(269), - 173: uint16(270), - 174: uint16(270), - 175: uint16(263), - 176: uint16(263), - 177: uint16(217), - 178: uint16(217), - 179: uint16(217), - 180: uint16(217), - 181: uint16(216), - 182: uint16(216), - 183: uint16(216), + 146: uint16(249), + 147: uint16(249), + 148: uint16(251), + 149: uint16(251), + 150: uint16(251), + 151: uint16(251), + 152: uint16(191), + 153: uint16(247), + 154: uint16(247), + 155: uint16(269), + 156: uint16(269), + 157: uint16(269), + 158: uint16(269), + 159: uint16(191), + 160: uint16(270), + 161: uint16(270), + 162: uint16(270), + 163: uint16(270), + 164: uint16(191), + 165: uint16(191), + 166: uint16(273), + 167: uint16(273), + 168: uint16(273), + 169: uint16(273), + 170: uint16(273), + 171: uint16(273), + 172: uint16(274), + 173: uint16(271), + 174: uint16(271), + 175: uint16(272), + 176: uint16(272), + 177: uint16(265), + 178: uint16(265), + 179: uint16(218), + 180: uint16(218), + 181: uint16(218), + 182: uint16(218), + 183: uint16(217), 184: uint16(217), 185: uint16(217), - 186: uint16(217), - 187: uint16(217), - 188: uint16(217), - 189: uint16(217), - 190: uint16(217), - 191: uint16(217), - 192: uint16(217), - 193: uint16(216), - 194: uint16(217), + 186: uint16(218), + 187: uint16(218), + 188: uint16(218), + 189: uint16(218), + 190: uint16(218), + 191: uint16(218), + 192: uint16(218), + 193: uint16(218), + 194: uint16(218), 195: uint16(217), - 196: uint16(217), - 197: uint16(217), - 198: uint16(217), - 199: uint16(217), - 200: uint16(217), - 201: uint16(217), - 202: uint16(217), - 203: uint16(274), - 204: uint16(217), - 205: uint16(217), - 206: uint16(217), - 207: uint16(217), - 208: uint16(217), - 209: uint16(217), - 210: uint16(217), - 211: uint16(217), - 212: uint16(217), - 213: uint16(217), - 214: uint16(217), - 215: uint16(217), - 216: uint16(275), - 217: uint16(275), - 218: uint16(217), - 219: uint16(276), - 220: uint16(276), - 221: uint16(217), - 222: uint16(217), - 223: uint16(217), - 224: uint16(217), - 225: uint16(217), - 226: uint16(217), - 227: uint16(279), - 228: uint16(279), - 229: uint16(280), - 230: uint16(280), - 231: uint16(278), - 232: uint16(261), - 233: uint16(253), - 234: uint16(253), - 235: uint16(277), - 236: uint16(277), - 237: uint16(190), - 238: uint16(281), - 239: uint16(281), - 240: uint16(221), - 241: uint16(221), - 242: uint16(232), - 243: uint16(232), - 244: uint16(282), - 245: uint16(282), - 246: uint16(190), - 247: uint16(190), - 248: uint16(190), - 249: uint16(283), - 250: uint16(283), - 251: uint16(190), - 252: uint16(190), - 253: uint16(190), - 254: uint16(190), - 255: uint16(190), - 256: uint16(211), - 257: uint16(212), - 258: uint16(190), - 259: uint16(285), - 260: uint16(287), + 196: uint16(218), + 197: uint16(218), + 198: uint16(218), + 199: uint16(218), + 200: uint16(218), + 201: uint16(218), + 202: uint16(218), + 203: uint16(218), + 204: uint16(218), + 205: uint16(276), + 206: uint16(218), + 207: uint16(218), + 208: uint16(218), + 209: uint16(218), + 210: uint16(218), + 211: uint16(218), + 212: uint16(218), + 213: uint16(218), + 214: uint16(218), + 215: uint16(218), + 216: uint16(218), + 217: uint16(218), + 218: uint16(277), + 219: uint16(277), + 220: uint16(218), + 221: uint16(278), + 222: uint16(278), + 223: uint16(218), + 224: uint16(218), + 225: uint16(218), + 226: uint16(218), + 227: uint16(218), + 228: uint16(218), + 229: uint16(281), + 230: uint16(281), + 231: uint16(282), + 232: uint16(282), + 233: uint16(280), + 234: uint16(263), + 235: uint16(254), + 236: uint16(254), + 237: uint16(279), + 238: uint16(279), + 239: uint16(191), + 240: uint16(283), + 241: uint16(283), + 242: uint16(222), + 243: uint16(222), + 244: uint16(233), + 245: uint16(233), + 246: uint16(284), + 247: uint16(284), + 248: uint16(191), + 249: uint16(191), + 250: uint16(191), + 251: uint16(285), + 252: uint16(285), + 253: uint16(191), + 254: uint16(191), + 255: uint16(191), + 256: uint16(191), + 257: uint16(191), + 258: uint16(212), + 259: uint16(213), + 260: uint16(191), 261: uint16(287), - 262: uint16(287), - 263: uint16(288), - 264: uint16(288), - 265: uint16(288), + 262: uint16(289), + 263: uint16(289), + 264: uint16(289), + 265: uint16(290), 266: uint16(290), 267: uint16(290), - 268: uint16(286), - 269: uint16(286), - 270: uint16(292), - 271: uint16(293), - 272: uint16(293), - 273: uint16(291), - 274: uint16(291), - 275: uint16(291), - 276: uint16(291), - 277: uint16(217), - 278: uint16(217), - 279: uint16(236), - 280: uint16(236), - 281: uint16(236), - 282: uint16(190), - 283: uint16(190), - 284: uint16(190), - 285: uint16(295), - 286: uint16(295), - 287: uint16(190), - 288: uint16(190), - 289: uint16(190), - 290: uint16(190), - 291: uint16(190), - 292: uint16(190), - 293: uint16(190), - 294: uint16(296), - 295: uint16(190), - 296: uint16(190), - 297: uint16(190), - 298: uint16(298), - 299: uint16(300), - 300: uint16(301), - 301: uint16(301), - 302: uint16(302), - 303: uint16(266), - 304: uint16(266), - 305: uint16(305), - 306: uint16(305), - 307: uint16(305), - 308: uint16(304), - 309: uint16(241), - 310: uint16(241), - 311: uint16(306), - 312: uint16(307), - 313: uint16(308), - 314: uint16(308), - 315: uint16(308), - 316: uint16(308), - 317: uint16(308), - 318: uint16(309), - 319: uint16(309), - 320: uint16(309), - 321: uint16(313), - 322: uint16(315), - 323: uint16(315), + 268: uint16(292), + 269: uint16(292), + 270: uint16(288), + 271: uint16(288), + 272: uint16(294), + 273: uint16(295), + 274: uint16(295), + 275: uint16(293), + 276: uint16(293), + 277: uint16(293), + 278: uint16(293), + 279: uint16(218), + 280: uint16(218), + 281: uint16(237), + 282: uint16(237), + 283: uint16(237), + 284: uint16(191), + 285: uint16(191), + 286: uint16(191), + 287: uint16(297), + 288: uint16(297), + 289: uint16(191), + 290: uint16(191), + 291: uint16(191), + 292: uint16(191), + 293: uint16(191), + 294: uint16(191), + 295: uint16(191), + 296: uint16(298), + 297: uint16(191), + 298: uint16(191), + 299: uint16(191), + 300: uint16(300), + 301: uint16(302), + 302: uint16(303), + 303: uint16(303), + 304: uint16(304), + 305: uint16(268), + 306: uint16(268), + 307: uint16(307), + 308: uint16(307), + 309: uint16(307), + 310: uint16(306), + 311: uint16(308), + 312: uint16(242), + 313: uint16(242), + 314: uint16(309), + 315: uint16(310), + 316: uint16(311), + 317: uint16(311), + 318: uint16(311), + 319: uint16(311), + 320: uint16(311), + 321: uint16(312), + 322: uint16(312), + 323: uint16(312), 324: uint16(316), - 325: uint16(316), - 326: uint16(314), - 327: uint16(314), - 328: uint16(317), + 325: uint16(318), + 326: uint16(318), + 327: uint16(319), + 328: uint16(319), 329: uint16(317), - 330: uint16(318), - 331: uint16(318), - 332: uint16(318), - 333: uint16(251), - 334: uint16(273), - 335: uint16(273), - 336: uint16(273), - 337: uint16(312), - 338: uint16(312), - 339: uint16(311), - 340: uint16(185), - 341: uint16(186), - 342: uint16(186), - 343: uint16(187), - 344: uint16(187), + 330: uint16(317), + 331: uint16(320), + 332: uint16(320), + 333: uint16(321), + 334: uint16(321), + 335: uint16(321), + 336: uint16(252), + 337: uint16(275), + 338: uint16(275), + 339: uint16(275), + 340: uint16(315), + 341: uint16(315), + 342: uint16(314), + 343: uint16(217), + 344: uint16(186), 345: uint16(187), - 346: uint16(192), - 347: uint16(192), - 348: uint16(192), - 349: uint16(194), - 350: uint16(194), - 351: uint16(190), - 352: uint16(203), - 353: uint16(201), - 354: uint16(201), - 355: uint16(193), - 356: uint16(193), - 357: uint16(208), - 358: uint16(209), - 359: uint16(210), - 360: uint16(210), - 361: uint16(207), - 362: uint16(207), - 363: uint16(215), - 364: uint16(215), - 365: uint16(215), - 366: uint16(202), - 367: uint16(228), - 368: uint16(228), - 369: uint16(229), - 370: uint16(233), - 371: uint16(235), - 372: uint16(239), - 373: uint16(240), - 374: uint16(254), - 375: uint16(255), - 376: uint16(264), - 377: uint16(272), - 378: uint16(217), - 379: uint16(274), - 380: uint16(278), - 381: uint16(261), - 382: uint16(284), - 383: uint16(284), - 384: uint16(284), - 385: uint16(284), - 386: uint16(284), - 387: uint16(211), - 388: uint16(289), - 389: uint16(289), - 390: uint16(292), - 391: uint16(293), - 392: uint16(294), - 393: uint16(294), - 394: uint16(297), - 395: uint16(297), - 396: uint16(299), - 397: uint16(299), - 398: uint16(300), - 399: uint16(303), - 400: uint16(303), - 401: uint16(303), - 402: uint16(266), - 403: uint16(306), - 404: uint16(308), + 346: uint16(187), + 347: uint16(188), + 348: uint16(188), + 349: uint16(188), + 350: uint16(193), + 351: uint16(193), + 352: uint16(193), + 353: uint16(195), + 354: uint16(195), + 355: uint16(191), + 356: uint16(204), + 357: uint16(202), + 358: uint16(202), + 359: uint16(194), + 360: uint16(194), + 361: uint16(209), + 362: uint16(210), + 363: uint16(211), + 364: uint16(211), + 365: uint16(208), + 366: uint16(208), + 367: uint16(216), + 368: uint16(216), + 369: uint16(216), + 370: uint16(203), + 371: uint16(229), + 372: uint16(229), + 373: uint16(230), + 374: uint16(234), + 375: uint16(236), + 376: uint16(240), + 377: uint16(241), + 378: uint16(256), + 379: uint16(257), + 380: uint16(266), + 381: uint16(274), + 382: uint16(218), + 383: uint16(276), + 384: uint16(280), + 385: uint16(263), + 386: uint16(286), + 387: uint16(286), + 388: uint16(286), + 389: uint16(286), + 390: uint16(286), + 391: uint16(212), + 392: uint16(291), + 393: uint16(291), + 394: uint16(294), + 395: uint16(295), + 396: uint16(296), + 397: uint16(296), + 398: uint16(299), + 399: uint16(299), + 400: uint16(301), + 401: uint16(301), + 402: uint16(302), + 403: uint16(305), + 404: uint16(305), + 405: uint16(305), + 406: uint16(268), + 407: uint16(309), + 408: uint16(311), } // C documentation // // /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number // ** of symbols on the right-hand side of that rule. */ -var _yyRuleInfoNRhs = [405]int8{ +var _yyRuleInfoNRhs = [409]int8{ 0: int8(-int32(1)), 1: int8(-int32(3)), 2: int8(-int32(1)), @@ -153999,273 +155554,277 @@ var _yyRuleInfoNRhs = [405]int8{ 92: int8(-int32(9)), 93: int8(-int32(10)), 94: int8(-int32(4)), - 95: int8(-int32(5)), - 96: int8(-int32(1)), - 97: int8(-int32(1)), - 100: int8(-int32(5)), - 101: int8(-int32(3)), + 95: int8(-int32(1)), + 96: int8(-int32(5)), + 97: int8(-int32(5)), + 98: int8(-int32(1)), + 99: int8(-int32(1)), 102: int8(-int32(5)), - 103: int8(-int32(2)), - 106: int8(-int32(2)), - 107: int8(-int32(2)), - 109: int8(-int32(5)), - 110: int8(-int32(6)), - 111: int8(-int32(8)), + 103: int8(-int32(3)), + 104: int8(-int32(5)), + 105: int8(-int32(2)), + 108: int8(-int32(2)), + 109: int8(-int32(2)), + 111: int8(-int32(5)), 112: int8(-int32(6)), - 113: int8(-int32(6)), - 115: int8(-int32(2)), - 116: int8(-int32(1)), - 117: int8(-int32(3)), + 113: int8(-int32(8)), + 114: int8(-int32(6)), + 115: int8(-int32(6)), + 117: int8(-int32(2)), 118: int8(-int32(1)), 119: int8(-int32(3)), - 120: int8(-int32(5)), + 120: int8(-int32(1)), 121: int8(-int32(3)), - 122: int8(-int32(1)), - 123: int8(-int32(2)), - 124: int8(-int32(3)), - 125: int8(-int32(4)), - 126: int8(-int32(2)), + 122: int8(-int32(5)), + 123: int8(-int32(3)), + 124: int8(-int32(1)), + 125: int8(-int32(2)), + 126: int8(-int32(3)), 127: int8(-int32(4)), - 130: int8(-int32(3)), - 131: int8(-int32(2)), - 133: int8(-int32(3)), - 134: int8(-int32(5)), + 128: int8(-int32(2)), + 129: int8(-int32(4)), + 132: int8(-int32(3)), + 133: int8(-int32(2)), 135: int8(-int32(3)), - 136: int8(-int32(1)), - 137: int8(-int32(1)), - 139: int8(-int32(2)), - 140: int8(-int32(2)), - 143: int8(-int32(3)), - 145: int8(-int32(2)), + 136: int8(-int32(5)), + 137: int8(-int32(3)), + 138: int8(-int32(1)), + 139: int8(-int32(1)), + 141: int8(-int32(2)), + 142: int8(-int32(2)), + 145: int8(-int32(3)), 147: int8(-int32(2)), - 148: int8(-int32(4)), - 149: int8(-int32(4)), - 150: int8(-int32(6)), - 152: int8(-int32(2)), + 149: int8(-int32(2)), + 150: int8(-int32(4)), + 151: int8(-int32(4)), + 152: int8(-int32(6)), 154: int8(-int32(2)), - 155: int8(-int32(2)), - 156: int8(-int32(4)), - 157: int8(-int32(9)), - 158: int8(-int32(5)), - 159: int8(-int32(7)), - 160: int8(-int32(3)), - 161: int8(-int32(5)), - 162: int8(-int32(7)), - 163: int8(-int32(8)), - 165: int8(-int32(2)), - 166: int8(-int32(12)), - 167: int8(-int32(9)), - 168: int8(-int32(5)), - 169: int8(-int32(8)), - 170: int8(-int32(2)), - 171: int8(-int32(2)), - 172: int8(-int32(1)), - 174: int8(-int32(3)), - 175: int8(-int32(3)), - 176: int8(-int32(1)), + 156: int8(-int32(2)), + 157: int8(-int32(2)), + 158: int8(-int32(4)), + 159: int8(-int32(9)), + 160: int8(-int32(5)), + 161: int8(-int32(7)), + 162: int8(-int32(3)), + 163: int8(-int32(5)), + 164: int8(-int32(7)), + 165: int8(-int32(8)), + 167: int8(-int32(2)), + 168: int8(-int32(12)), + 169: int8(-int32(9)), + 170: int8(-int32(5)), + 171: int8(-int32(8)), + 172: int8(-int32(2)), + 173: int8(-int32(2)), + 174: int8(-int32(1)), + 176: int8(-int32(3)), 177: int8(-int32(3)), 178: int8(-int32(1)), 179: int8(-int32(3)), - 180: int8(-int32(5)), - 181: int8(-int32(1)), - 182: int8(-int32(1)), + 180: int8(-int32(1)), + 181: int8(-int32(3)), + 182: int8(-int32(5)), 183: int8(-int32(1)), 184: int8(-int32(1)), - 185: int8(-int32(3)), - 186: int8(-int32(6)), - 187: int8(-int32(5)), - 188: int8(-int32(8)), - 189: int8(-int32(4)), - 190: int8(-int32(6)), - 191: int8(-int32(9)), - 192: int8(-int32(5)), - 193: int8(-int32(1)), + 185: int8(-int32(1)), + 186: int8(-int32(1)), + 187: int8(-int32(3)), + 188: int8(-int32(6)), + 189: int8(-int32(5)), + 190: int8(-int32(8)), + 191: int8(-int32(4)), + 192: int8(-int32(6)), + 193: int8(-int32(9)), 194: int8(-int32(5)), - 195: int8(-int32(3)), - 196: int8(-int32(3)), + 195: int8(-int32(1)), + 196: int8(-int32(5)), 197: int8(-int32(3)), 198: int8(-int32(3)), 199: int8(-int32(3)), 200: int8(-int32(3)), 201: int8(-int32(3)), 202: int8(-int32(3)), - 203: int8(-int32(2)), + 203: int8(-int32(3)), 204: int8(-int32(3)), - 205: int8(-int32(5)), - 206: int8(-int32(2)), - 207: int8(-int32(3)), - 208: int8(-int32(3)), - 209: int8(-int32(4)), - 210: int8(-int32(6)), - 211: int8(-int32(5)), - 212: int8(-int32(2)), - 213: int8(-int32(2)), + 205: int8(-int32(2)), + 206: int8(-int32(3)), + 207: int8(-int32(5)), + 208: int8(-int32(2)), + 209: int8(-int32(3)), + 210: int8(-int32(3)), + 211: int8(-int32(4)), + 212: int8(-int32(6)), + 213: int8(-int32(5)), 214: int8(-int32(2)), - 215: int8(-int32(3)), - 216: int8(-int32(1)), - 217: int8(-int32(2)), - 218: int8(-int32(5)), - 219: int8(-int32(1)), - 220: int8(-int32(2)), - 221: int8(-int32(5)), - 222: int8(-int32(3)), + 215: int8(-int32(2)), + 216: int8(-int32(2)), + 217: int8(-int32(3)), + 218: int8(-int32(1)), + 219: int8(-int32(2)), + 220: int8(-int32(5)), + 221: int8(-int32(1)), + 222: int8(-int32(2)), 223: int8(-int32(5)), - 224: int8(-int32(5)), - 225: int8(-int32(4)), + 224: int8(-int32(3)), + 225: int8(-int32(5)), 226: int8(-int32(5)), - 227: int8(-int32(5)), - 228: int8(-int32(4)), - 229: int8(-int32(2)), - 233: int8(-int32(3)), - 234: int8(-int32(1)), - 236: int8(-int32(3)), - 237: int8(-int32(12)), - 238: int8(-int32(1)), - 241: int8(-int32(3)), - 242: int8(-int32(5)), + 227: int8(-int32(4)), + 228: int8(-int32(5)), + 229: int8(-int32(5)), + 230: int8(-int32(4)), + 231: int8(-int32(2)), + 235: int8(-int32(3)), + 236: int8(-int32(1)), + 238: int8(-int32(3)), + 239: int8(-int32(12)), + 240: int8(-int32(1)), 243: int8(-int32(3)), - 245: int8(-int32(2)), - 246: int8(-int32(4)), + 244: int8(-int32(5)), + 245: int8(-int32(3)), 247: int8(-int32(2)), - 248: int8(-int32(3)), + 248: int8(-int32(4)), 249: int8(-int32(2)), - 251: int8(-int32(3)), - 252: int8(-int32(5)), - 253: int8(-int32(6)), + 250: int8(-int32(3)), + 251: int8(-int32(2)), + 253: int8(-int32(3)), 254: int8(-int32(5)), 255: int8(-int32(6)), - 256: int8(-int32(2)), - 257: int8(-int32(2)), - 258: int8(-int32(5)), - 259: int8(-int32(11)), - 260: int8(-int32(1)), - 261: int8(-int32(2)), - 263: int8(-int32(1)), - 264: int8(-int32(1)), - 265: int8(-int32(3)), - 267: int8(-int32(2)), - 268: int8(-int32(3)), + 256: int8(-int32(5)), + 257: int8(-int32(6)), + 258: int8(-int32(2)), + 259: int8(-int32(2)), + 260: int8(-int32(5)), + 261: int8(-int32(11)), + 262: int8(-int32(1)), + 263: int8(-int32(2)), + 265: int8(-int32(1)), + 266: int8(-int32(1)), + 267: int8(-int32(3)), 269: int8(-int32(2)), 270: int8(-int32(3)), - 271: int8(-int32(3)), - 272: int8(-int32(2)), - 273: int8(-int32(9)), - 274: int8(-int32(8)), - 275: int8(-int32(6)), - 276: int8(-int32(3)), - 277: int8(-int32(4)), - 278: int8(-int32(6)), - 279: int8(-int32(1)), - 280: int8(-int32(1)), + 271: int8(-int32(2)), + 272: int8(-int32(3)), + 273: int8(-int32(3)), + 274: int8(-int32(2)), + 275: int8(-int32(9)), + 276: int8(-int32(8)), + 277: int8(-int32(6)), + 278: int8(-int32(3)), + 279: int8(-int32(4)), + 280: int8(-int32(6)), 281: int8(-int32(1)), - 282: int8(-int32(4)), - 283: int8(-int32(6)), - 284: int8(-int32(3)), - 286: int8(-int32(2)), - 287: int8(-int32(1)), - 288: int8(-int32(3)), + 282: int8(-int32(1)), + 283: int8(-int32(1)), + 284: int8(-int32(4)), + 285: int8(-int32(6)), + 286: int8(-int32(3)), + 288: int8(-int32(2)), 289: int8(-int32(1)), 290: int8(-int32(3)), - 291: int8(-int32(6)), - 292: int8(-int32(7)), + 291: int8(-int32(1)), + 292: int8(-int32(3)), 293: int8(-int32(6)), - 294: int8(-int32(1)), - 295: int8(-int32(8)), + 294: int8(-int32(7)), + 295: int8(-int32(6)), 296: int8(-int32(1)), - 297: int8(-int32(4)), - 298: int8(-int32(8)), - 300: int8(-int32(1)), - 301: int8(-int32(3)), + 297: int8(-int32(8)), + 298: int8(-int32(1)), + 299: int8(-int32(4)), + 300: int8(-int32(8)), 302: int8(-int32(1)), - 303: int8(-int32(2)), - 304: int8(-int32(3)), - 305: int8(-int32(1)), - 306: int8(-int32(2)), - 307: int8(-int32(3)), - 308: int8(-int32(6)), - 309: int8(-int32(1)), - 310: int8(-int32(3)), - 311: int8(-int32(3)), - 312: int8(-int32(5)), - 313: int8(-int32(5)), - 314: int8(-int32(6)), - 315: int8(-int32(4)), + 303: int8(-int32(3)), + 304: int8(-int32(1)), + 305: int8(-int32(2)), + 306: int8(-int32(3)), + 307: int8(-int32(1)), + 308: int8(-int32(2)), + 309: int8(-int32(3)), + 310: int8(-int32(6)), + 311: int8(-int32(1)), + 312: int8(-int32(1)), + 313: int8(-int32(3)), + 314: int8(-int32(3)), + 315: int8(-int32(5)), 316: int8(-int32(5)), - 317: int8(-int32(2)), - 319: int8(-int32(3)), - 320: int8(-int32(6)), - 321: int8(-int32(1)), - 322: int8(-int32(1)), - 323: int8(-int32(2)), + 317: int8(-int32(6)), + 318: int8(-int32(4)), + 319: int8(-int32(5)), + 320: int8(-int32(2)), + 322: int8(-int32(3)), + 323: int8(-int32(6)), 324: int8(-int32(1)), - 325: int8(-int32(2)), + 325: int8(-int32(1)), 326: int8(-int32(2)), - 327: int8(-int32(2)), + 327: int8(-int32(1)), + 328: int8(-int32(2)), 329: int8(-int32(2)), 330: int8(-int32(2)), - 331: int8(-int32(2)), - 332: int8(-int32(1)), + 332: int8(-int32(2)), 333: int8(-int32(2)), 334: int8(-int32(2)), 335: int8(-int32(1)), - 336: int8(-int32(1)), - 337: int8(-int32(4)), - 338: int8(-int32(2)), - 339: int8(-int32(5)), - 340: int8(-int32(1)), + 336: int8(-int32(2)), + 337: int8(-int32(2)), + 338: int8(-int32(1)), + 339: int8(-int32(1)), + 340: int8(-int32(4)), 341: int8(-int32(2)), - 342: int8(-int32(1)), + 342: int8(-int32(5)), 343: int8(-int32(1)), - 344: int8(-int32(2)), - 345: int8(-int32(3)), + 344: int8(-int32(1)), + 345: int8(-int32(2)), + 346: int8(-int32(1)), 347: int8(-int32(1)), 348: int8(-int32(2)), - 349: int8(-int32(1)), - 351: int8(-int32(2)), - 352: int8(-int32(1)), - 353: int8(-int32(4)), - 354: int8(-int32(2)), - 355: int8(-int32(1)), + 349: int8(-int32(3)), + 351: int8(-int32(1)), + 352: int8(-int32(2)), + 353: int8(-int32(1)), + 355: int8(-int32(2)), 356: int8(-int32(1)), - 357: int8(-int32(1)), - 358: int8(-int32(1)), + 357: int8(-int32(4)), + 358: int8(-int32(2)), 359: int8(-int32(1)), 360: int8(-int32(1)), - 361: int8(-int32(2)), - 363: int8(-int32(2)), - 364: int8(-int32(4)), + 361: int8(-int32(1)), + 362: int8(-int32(1)), + 363: int8(-int32(1)), + 364: int8(-int32(1)), 365: int8(-int32(2)), - 366: int8(-int32(2)), - 367: int8(-int32(3)), - 368: int8(-int32(1)), - 370: int8(-int32(1)), - 371: int8(-int32(1)), + 367: int8(-int32(2)), + 368: int8(-int32(4)), + 369: int8(-int32(2)), + 370: int8(-int32(2)), + 371: int8(-int32(3)), 372: int8(-int32(1)), - 373: int8(-int32(1)), - 374: int8(-int32(2)), + 374: int8(-int32(1)), 375: int8(-int32(1)), 376: int8(-int32(1)), - 378: int8(-int32(1)), + 377: int8(-int32(1)), + 378: int8(-int32(2)), 379: int8(-int32(1)), 380: int8(-int32(1)), - 381: int8(-int32(1)), 382: int8(-int32(1)), 383: int8(-int32(1)), 384: int8(-int32(1)), 385: int8(-int32(1)), 386: int8(-int32(1)), 387: int8(-int32(1)), - 389: int8(-int32(3)), + 388: int8(-int32(1)), + 389: int8(-int32(1)), 390: int8(-int32(1)), - 392: int8(-int32(1)), - 395: int8(-int32(1)), + 391: int8(-int32(1)), + 393: int8(-int32(3)), + 394: int8(-int32(1)), 396: int8(-int32(1)), - 397: int8(-int32(3)), - 398: int8(-int32(2)), - 400: int8(-int32(4)), - 401: int8(-int32(2)), - 403: int8(-int32(1)), - 404: int8(-int32(1)), + 399: int8(-int32(1)), + 400: int8(-int32(1)), + 401: int8(-int32(3)), + 402: int8(-int32(2)), + 404: int8(-int32(4)), + 405: int8(-int32(2)), + 407: int8(-int32(1)), + 408: int8(-int32(1)), } // C documentation @@ -154283,18 +155842,19 @@ var _yyRuleInfoNRhs = [405]int8{ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int32, yyLookaheadToken TToken, pParse uintptr) (r uint16) { bp := tls.Alloc(144) defer tls.Free(144) - var bNot, bNot1, nExpr, yygoto, yysize, v344 int32 + var bNot, bNot1, nExpr, yygoto, yysize int32 var n Tu32 - var p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v343, v345, v346, v347, v348 uintptr + var op Tu8 + var p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v347, v348, v349, v350, v351 uintptr var yyact uint16 - var v349 TToken + var v352 TToken var _ /* all at bp+104 */ TToken var _ /* as at bp+72 */ TToken var _ /* dest at bp+16 */ TSelectDest var _ /* t at bp+88 */ TToken var _ /* x at bp+56 */ TToken var _ /* yylhsminor at bp+0 */ TYYMINORTYPE - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v343, v344, v345, v346, v347, v348, v349 /* Amount to pop the stack */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, op, p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v347, v348, v349, v350, v351, v352 /* Amount to pop the stack */ _ = yyLookahead _ = yyLookaheadToken yymsp = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos @@ -154315,7 +155875,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _7 case uint32(7): goto _8 - case uint32(321): + case uint32(324): goto _9 case uint32(9): goto _10 @@ -154343,9 +155903,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _21 case uint32(81): goto _22 - case uint32(98): + case uint32(100): goto _23 - case uint32(244): + case uint32(246): goto _24 case uint32(16): goto _25 @@ -154369,7 +155929,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _34 case uint32(26): goto _35 - case uint32(104): + case uint32(106): goto _36 case uint32(27): goto _37 @@ -154443,17 +156003,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _71 case uint32(61): goto _72 - case uint32(171): + case uint32(173): goto _73 case uint32(80): goto _74 case uint32(63): goto _75 - case uint32(217): + case uint32(219): goto _76 - case uint32(220): + case uint32(222): goto _77 - case uint32(245): + case uint32(247): goto _78 case uint32(64): goto _79 @@ -154475,7 +156035,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _87 case uint32(77): goto _88 - case uint32(172): + case uint32(174): goto _89 case uint32(78): goto _90 @@ -154509,47 +156069,47 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _104 case uint32(95): goto _105 - case uint32(96): - goto _106 case uint32(97): + goto _106 + case uint32(96): goto _107 - case uint32(132): + case uint32(98): goto _108 case uint32(99): goto _109 - case uint32(142): + case uint32(134): goto _110 - case uint32(232): + case uint32(101): goto _111 - case uint32(235): + case uint32(144): goto _112 - case uint32(240): + case uint32(234): goto _113 - case uint32(100): + case uint32(237): goto _114 - case uint32(101): + case uint32(242): goto _115 case uint32(102): goto _116 - case uint32(115): - goto _117 case uint32(103): + goto _117 + case uint32(104): goto _118 - case uint32(256): + case uint32(117): goto _119 - case uint32(257): + case uint32(105): goto _120 - case uint32(108): + case uint32(258): goto _121 - case uint32(105): + case uint32(259): goto _122 - case uint32(106): + case uint32(110): goto _123 case uint32(107): goto _124 - case uint32(109): + case uint32(108): goto _125 - case uint32(110): + case uint32(109): goto _126 case uint32(111): goto _127 @@ -154557,13 +156117,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _128 case uint32(113): goto _129 - case uint32(129): - goto _130 case uint32(114): + goto _130 + case uint32(115): goto _131 - case uint32(116): + case uint32(131): goto _132 - case uint32(117): + case uint32(116): goto _133 case uint32(118): goto _134 @@ -154587,15 +156147,15 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _143 case uint32(128): goto _144 - case uint32(130): + case uint32(129): goto _145 - case uint32(131): + case uint32(130): goto _146 - case uint32(143): + case uint32(132): goto _147 case uint32(133): goto _148 - case uint32(134): + case uint32(145): goto _149 case uint32(135): goto _150 @@ -154603,49 +156163,49 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _151 case uint32(137): goto _152 - case uint32(141): - goto _153 case uint32(138): - goto _154 + goto _153 case uint32(139): + goto _154 + case uint32(143): goto _155 case uint32(140): goto _156 - case uint32(146): + case uint32(141): goto _157 - case uint32(144): + case uint32(142): goto _158 - case uint32(151): + case uint32(148): goto _159 - case uint32(153): + case uint32(146): goto _160 - case uint32(230): + case uint32(153): goto _161 - case uint32(231): + case uint32(155): goto _162 - case uint32(250): + case uint32(232): goto _163 - case uint32(152): + case uint32(233): goto _164 - case uint32(145): + case uint32(252): goto _165 case uint32(154): goto _166 - case uint32(229): + case uint32(147): goto _167 - case uint32(249): + case uint32(156): goto _168 - case uint32(147): + case uint32(231): goto _169 - case uint32(148): + case uint32(251): goto _170 case uint32(149): goto _171 case uint32(150): goto _172 - case uint32(155): + case uint32(151): goto _173 - case uint32(156): + case uint32(152): goto _174 case uint32(157): goto _175 @@ -154675,9 +156235,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _187 case uint32(170): goto _188 - case uint32(173): + case uint32(171): goto _189 - case uint32(174): + case uint32(172): goto _190 case uint32(175): goto _191 @@ -154691,13 +156251,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _195 case uint32(180): goto _196 - case uint32(182): - goto _197 case uint32(181): + goto _197 + case uint32(182): goto _198 - case uint32(183): - goto _199 case uint32(184): + goto _199 + case uint32(183): goto _200 case uint32(185): goto _201 @@ -154721,13 +156281,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _210 case uint32(195): goto _211 - case uint32(197): - goto _212 case uint32(196): + goto _212 + case uint32(197): goto _213 - case uint32(198): - goto _214 case uint32(199): + goto _214 + case uint32(198): goto _215 case uint32(200): goto _216 @@ -154753,23 +156313,23 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _226 case uint32(211): goto _227 - case uint32(213): - goto _228 case uint32(212): + goto _228 + case uint32(213): goto _229 - case uint32(214): - goto _230 case uint32(215): + goto _230 + case uint32(214): goto _231 - case uint32(219): - goto _232 case uint32(216): + goto _232 + case uint32(217): goto _233 - case uint32(218): - goto _234 case uint32(221): + goto _234 + case uint32(218): goto _235 - case uint32(222): + case uint32(220): goto _236 case uint32(223): goto _237 @@ -154783,35 +156343,35 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _241 case uint32(228): goto _242 - case uint32(233): + case uint32(229): goto _243 - case uint32(234): + case uint32(230): goto _244 - case uint32(241): + case uint32(235): goto _245 case uint32(236): goto _246 - case uint32(237): + case uint32(243): goto _247 - case uint32(280): - goto _248 case uint32(238): - goto _249 + goto _248 case uint32(239): + goto _249 + case uint32(282): goto _250 - case uint32(242): + case uint32(240): goto _251 - case uint32(243): + case uint32(241): goto _252 - case uint32(246): + case uint32(244): goto _253 - case uint32(247): + case uint32(245): goto _254 case uint32(248): goto _255 - case uint32(251): + case uint32(249): goto _256 - case uint32(252): + case uint32(250): goto _257 case uint32(253): goto _258 @@ -154819,9 +156379,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _259 case uint32(255): goto _260 - case uint32(258): + case uint32(256): goto _261 - case uint32(259): + case uint32(257): goto _262 case uint32(260): goto _263 @@ -154829,21 +156389,21 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _264 case uint32(262): goto _265 - case uint32(264): - goto _266 case uint32(263): + goto _266 + case uint32(264): goto _267 - case uint32(265): + case uint32(266): goto _268 - case uint32(285): + case uint32(265): goto _269 - case uint32(266): + case uint32(267): goto _270 - case uint32(286): + case uint32(287): goto _271 - case uint32(267): - goto _272 case uint32(268): + goto _272 + case uint32(288): goto _273 case uint32(269): goto _274 @@ -154867,17 +156427,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _283 case uint32(279): goto _284 - case uint32(281): + case uint32(280): goto _285 - case uint32(282): + case uint32(281): goto _286 case uint32(283): goto _287 case uint32(284): goto _288 - case uint32(287): + case uint32(285): goto _289 - case uint32(288): + case uint32(286): goto _290 case uint32(289): goto _291 @@ -154901,19 +156461,19 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _300 case uint32(299): goto _301 - case uint32(301): - goto _302 case uint32(300): + goto _302 + case uint32(301): goto _303 - case uint32(302): + case uint32(303): goto _304 - case uint32(304): + case uint32(302): goto _305 - case uint32(303): + case uint32(304): goto _306 - case uint32(305): - goto _307 case uint32(306): + goto _307 + case uint32(305): goto _308 case uint32(307): goto _309 @@ -154943,31 +156503,31 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _321 case uint32(320): goto _322 - case uint32(324): + case uint32(321): goto _323 case uint32(322): goto _324 - case uint32(325): - goto _325 case uint32(323): - goto _326 + goto _325 case uint32(327): + goto _326 + case uint32(325): goto _327 - case uint32(326): - goto _328 case uint32(328): + goto _328 + case uint32(326): goto _329 - case uint32(329): + case uint32(330): goto _330 - case uint32(331): + case uint32(329): goto _331 - case uint32(330): + case uint32(331): goto _332 case uint32(332): goto _333 - case uint32(333): - goto _334 case uint32(334): + goto _334 + case uint32(333): goto _335 case uint32(335): goto _336 @@ -154979,34 +156539,42 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _339 case uint32(339): goto _340 - default: + case uint32(340): goto _341 + case uint32(341): + goto _342 + case uint32(342): + goto _343 + case uint32(343): + goto _344 + default: + goto _345 } - goto _342 + goto _346 _1: ; /* explain ::= EXPLAIN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(1) } - goto _342 + goto _346 _2: ; /* explain ::= EXPLAIN QUERY PLAN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(2) } - goto _342 + goto _346 _3: ; /* cmdx ::= cmd */ _sqlite3FinishCoding(tls, pParse) - goto _342 + goto _346 _4: ; /* cmd ::= BEGIN transtype trans_opt */ _sqlite3BeginTransaction(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _5: ; /* transtype ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_DEFERRED) - goto _342 + goto _346 _7: ; /* transtype ::= DEFERRED */ _6: @@ -155016,33 +156584,33 @@ _8: _9: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 + goto _346 _11: ; /* cmd ::= COMMIT|END trans_opt */ _10: ; _sqlite3EndTransaction(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor)) - goto _342 + goto _346 _12: ; /* cmd ::= SAVEPOINT nm */ _sqlite3Savepoint(tls, pParse, SAVEPOINT_BEGIN, yymsp+8) - goto _342 + goto _346 _13: ; /* cmd ::= RELEASE savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_RELEASE), yymsp+8) - goto _342 + goto _346 _14: ; /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_ROLLBACK), yymsp+8) - goto _342 + goto _346 _15: ; /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ _sqlite3StartTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), 0, 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _16: ; /* createkw ::= CREATE */ _disableLookaside(tls, pParse) - goto _342 + goto _346 _18: ; /* ifnotexists ::= */ _17: @@ -155060,56 +156628,56 @@ _23: _24: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = 0 - goto _342 + goto _346 _25: ; /* ifnotexists ::= IF NOT EXISTS */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(1) - goto _342 + goto _346 _26: ; /* temp ::= TEMP */ *(*int32)(unsafe.Pointer(yymsp + 8)) = libc.BoolInt32(int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0) - goto _342 + goto _346 _27: ; /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ _sqlite3EndTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*Tu32)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 + goto _346 _28: ; /* create_table_args ::= AS select */ _sqlite3EndTable(tls, pParse, uintptr(0), uintptr(0), uint32(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _29: ; /* table_option_set ::= */ *(*Tu32)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint32(0) - goto _342 + goto _346 _30: ; /* table_option_set ::= table_option_set COMMA table_option */ *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) | *(*Tu32)(unsafe.Pointer(yymsp + 8)) *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _31: ; /* table_option ::= WITHOUT nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16726, int32(5)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16813, int32(5)) == 0 { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) } else { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23390, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23513, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } - goto _342 + goto _346 _32: ; /* table_option ::= nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16639, int32(6)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16726, int32(6)) == 0 { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(TF_Strict) } else { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23390, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23513, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } *(*Tu32)(unsafe.Pointer(yymsp + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _33: ; /* columnname ::= nm typetoken */ _sqlite3AddColumn(tls, pParse, *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*TToken)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _35: ; /* typetoken ::= */ _34: @@ -155118,50 +156686,50 @@ _36: ; *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 + goto _346 _37: ; /* typetoken ::= typename LP signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) - goto _342 + goto _346 _38: ; /* typetoken ::= typename LP signed COMMA signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))))) - goto _342 + goto _346 _39: ; /* typename ::= typename ID|STRING */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) + uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) - goto _342 + goto _346 _40: ; /* scanpt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken.Fz - goto _342 + goto _346 _41: ; /* scantok ::= */ *(*TToken)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken - goto _342 + goto _346 _43: ; /* ccons ::= CONSTRAINT nm */ _42: ; (*TParse)(unsafe.Pointer(pParse)).FconstraintName = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _44: ; /* ccons ::= DEFAULT scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _45: ; /* ccons ::= DEFAULT LP expr RP */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))+uintptr(1), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _46: ; /* ccons ::= DEFAULT PLUS scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _47: ; /* ccons ::= DEFAULT MINUS scantok term */ p = _sqlite3PExpr(tls, pParse, int32(TK_UMINUS), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) _sqlite3AddDefaultValue(tls, pParse, p, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _48: ; /* ccons ::= DEFAULT scantok ID|INDEXED */ p1 = _tokenExpr(tls, pParse, int32(TK_STRING), *(*TToken)(unsafe.Pointer(yymsp + 8))) @@ -155169,99 +156737,99 @@ _48: _sqlite3ExprIdToTrueFalse(tls, p1) } _sqlite3AddDefaultValue(tls, pParse, p1, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - goto _342 + goto _346 _49: ; /* ccons ::= NOT NULL onconf */ _sqlite3AddNotNull(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _50: ; /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ _sqlite3AddPrimaryKey(tls, pParse, uintptr(0), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _51: ; /* ccons ::= UNIQUE onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _52: ; /* ccons ::= CHECK LP expr RP */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _53: ; /* ccons ::= REFERENCES nm eidlist_opt refargs */ _sqlite3CreateForeignKey(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _54: ; /* ccons ::= defer_subclause */ _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _55: ; /* ccons ::= COLLATE ID|STRING */ _sqlite3AddCollateType(tls, pParse, yymsp+8) - goto _342 + goto _346 _56: ; /* generated ::= LP expr RP */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 + goto _346 _57: ; /* generated ::= LP expr RP ID */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 + goto _346 _58: ; /* autoinc ::= AUTOINCR */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(1) - goto _342 + goto _346 _59: ; /* refargs ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = libc.Int32FromInt32(OE_None) * libc.Int32FromInt32(0x0101) /* EV: R-19803-45884 */ - goto _342 + goto _346 _60: ; /* refargs ::= refargs refarg */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) & ^*(*int32)(unsafe.Pointer(yymsp + 8 + 4)) | *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _61: ; /* refarg ::= MATCH nm */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _62: ; /* refarg ::= ON INSERT refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _63: ; /* refarg ::= ON DELETE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x0000ff) - goto _342 + goto _346 _64: ; /* refarg ::= ON UPDATE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) << int32(8) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x00ff00) - goto _342 + goto _346 _65: ; /* refact ::= SET NULL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetNull) /* EV: R-33326-45252 */ - goto _342 + goto _346 _66: ; /* refact ::= SET DEFAULT */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetDflt) /* EV: R-33326-45252 */ - goto _342 + goto _346 _67: ; /* refact ::= CASCADE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Cascade) /* EV: R-33326-45252 */ - goto _342 + goto _346 _68: ; /* refact ::= RESTRICT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Restrict) /* EV: R-33326-45252 */ - goto _342 + goto _346 _69: ; /* refact ::= NO ACTION */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = OE_None /* EV: R-33326-45252 */ - goto _342 + goto _346 _70: ; /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 - goto _342 + goto _346 _72: ; /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ _71: @@ -155269,7 +156837,7 @@ _71: _73: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _75: ; /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ _74: @@ -155281,64 +156849,64 @@ _77: _78: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(1) - goto _342 + goto _346 _79: ; /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 - goto _342 + goto _346 _80: ; /* tconscomma ::= COMMA */ (*TParse)(unsafe.Pointer(pParse)).FconstraintName.Fn = uint32(0) - goto _342 + goto _346 _81: ; /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ _sqlite3AddPrimaryKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), 0) - goto _342 + goto _346 _82: ; /* tcons ::= UNIQUE LP sortlist RP onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _83: ; /* tcons ::= CHECK LP expr RP onconf */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _84: ; /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ _sqlite3CreateForeignKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _86: ; /* onconf ::= */ _85: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(OE_Default) - goto _342 + goto _346 _87: ; /* onconf ::= ON CONFLICT resolvetype */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _88: ; /* resolvetype ::= IGNORE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Ignore) - goto _342 + goto _346 _90: ; /* resolvetype ::= REPLACE */ _89: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Replace) - goto _342 + goto _346 _91: ; /* cmd ::= DROP TABLE ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _92: ; /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ _sqlite3CreateView(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) - goto _342 + goto _346 _93: ; /* cmd ::= DROP VIEW ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), int32(1), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _94: ; /* cmd ::= select */ *(*TSelectDest)(unsafe.Pointer(bp + 16)) = TSelectDest{ @@ -155346,22 +156914,22 @@ _94: } _sqlite3Select(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), bp+16) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _95: ; /* select ::= WITH wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _96: ; /* select ::= WITH RECURSIVE wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _97: ; /* select ::= selectnowith */ p2 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) if p2 != 0 { _parserDoubleLinkSelect(tls, pParse, p2) } - goto _342 + goto _346 _98: ; /* selectnowith ::= selectnowith multiselect_op oneselect */ pRhs = *(*uintptr)(unsafe.Pointer(yymsp + 8)) @@ -155386,21 +156954,21 @@ _98: _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pLhs) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = pRhs - goto _342 + goto _346 _100: ; /* multiselect_op ::= UNION */ _99: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-OP*/ - goto _342 + goto _346 _101: ; /* multiselect_op ::= UNION ALL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_ALL) - goto _342 + goto _346 _102: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _103: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(9))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -155409,116 +156977,111 @@ _103: } else { _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) } - goto _342 + goto _346 _104: ; /* values ::= VALUES LP nexprlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) - goto _342 + goto _346 _105: - ; /* values ::= values COMMA LP nexprlist RP */ - pLeft = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) - pRight = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(libc.Int32FromInt32(SF_Values)|libc.Int32FromInt32(SF_MultiValue)), uintptr(0)) - if pLeft != 0 { - *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) - } - if pRight != 0 { - (*TSelect)(unsafe.Pointer(pRight)).Fop = uint8(TK_ALL) - (*TSelect)(unsafe.Pointer(pRight)).FpPrior = pLeft - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pRight - } else { - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pLeft - } - goto _342 + ; /* oneselect ::= mvalues */ + _sqlite3MultiValuesEnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_107: + ; /* mvalues ::= values COMMA LP nexprlist RP */ _106: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3MultiValues(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_108: ; /* distinct ::= DISTINCT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_Distinct) - goto _342 -_107: + goto _346 +_109: ; /* distinct ::= ALL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_All) - goto _342 -_109: + goto _346 +_111: ; /* sclp ::= */ -_108: - ; _110: ; -_111: - ; _112: ; _113: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 _114: + ; +_115: + ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 +_116: ; /* selcollist ::= sclp scanpt expr scanpt as */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) > uint32(0) { _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+8, int32(1)) } _sqlite3ExprListSetSpan(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_115: + goto _346 +_117: ; /* selcollist ::= sclp scanpt STAR */ p3 = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_ASTERISK), uintptr(0)) _sqlite3ExprSetErrorOffset(tls, p3, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), p3) - goto _342 -_116: + goto _346 +_118: ; /* selcollist ::= sclp scanpt nm DOT STAR */ - pRight1 = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) - _sqlite3ExprSetErrorOffset(tls, pRight1, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) - pLeft1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft1, pRight1) + pRight = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) + _sqlite3ExprSetErrorOffset(tls, pRight, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) + pLeft = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) + pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft, pRight) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pDot) - goto _342 -_118: + goto _346 +_120: ; /* as ::= AS nm */ -_117: - ; _119: ; -_120: +_121: ; - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 _122: + ; + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) + goto _346 +_124: ; /* from ::= */ -_121: +_123: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_123: + goto _346 +_125: ; /* from ::= FROM seltablist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) _sqlite3SrcListShiftJoinType(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_124: + goto _346 +_126: ; /* stl_prefix ::= seltablist joinop */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 && (*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc > 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8 + uintptr((*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc-int32(1))*104))).Ffg.Fjointype = uint8(*(*int32)(unsafe.Pointer(yymsp + 8))) } - goto _342 -_125: + goto _346 +_127: ; /* seltablist ::= stl_prefix nm dbnm as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) - goto _342 -_126: + goto _346 +_128: ; /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_127: + goto _346 +_129: ; /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListFuncArgs(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) - goto _342 -_128: + goto _346 +_130: ; /* seltablist ::= stl_prefix LP select RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_129: + goto _346 +_131: ; /* seltablist ::= stl_prefix LP seltablist RP as on_using */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) == uintptr(0) && *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) == uint32(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8)) == uintptr(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) @@ -155540,9 +157103,9 @@ _129: libc.SetBitFieldPtr16Uint32(pOld+60+4, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pNew+60+4, libc.Uint32FromInt32(1), 2, 0x4) } - v343 = libc.UintptrFromInt32(0) - (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v343 - (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v343 + v347 = libc.UintptrFromInt32(0) + (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v347 + (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v347 (*TSrcItem)(unsafe.Pointer(pOld)).FpSelect = uintptr(0) } _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) @@ -155552,189 +157115,189 @@ _129: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, pSubquery, yymsp+8) } } - goto _342 -_131: + goto _346 +_133: ; /* dbnm ::= */ -_130: +_132: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) - goto _342 -_132: + goto _346 +_134: ; /* fullname ::= nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_133: + goto _346 +_135: ; /* fullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_134: + goto _346 +_136: ; /* xfullname ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) /*A-overwrites-X*/ - goto _342 -_135: + goto _346 +_137: ; /* xfullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) /*A-overwrites-X*/ - goto _342 -_136: + goto _346 +_138: ; /* xfullname ::= nm DOT nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_137: + goto _346 +_139: ; /* xfullname ::= nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0)) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_138: + goto _346 +_140: ; /* joinop ::= COMMA|JOIN */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(JT_INNER) - goto _342 -_139: + goto _346 +_141: ; /* joinop ::= JOIN_KW JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), uintptr(0)) /*X-overwrites-A*/ - goto _342 -_140: + goto _346 +_142: ; /* joinop ::= JOIN_KW nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0)) /*X-overwrites-A*/ - goto _342 -_141: + goto _346 +_143: ; /* joinop ::= JOIN_KW nm nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) /*X-overwrites-A*/ - goto _342 -_142: + goto _346 +_144: ; /* on_using ::= ON expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uintptr(0) - goto _342 -_143: + goto _346 +_145: ; /* on_using ::= USING LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_144: + goto _346 +_146: ; /* on_using ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uintptr(0) - goto _342 -_145: + goto _346 +_147: ; /* indexed_by ::= INDEXED BY nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 -_146: + goto _346 +_148: ; /* indexed_by ::= NOT INDEXED */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(1) - goto _342 -_148: + goto _346 +_150: ; /* orderby_opt ::= ORDER BY sortlist */ -_147: +_149: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_149: + goto _346 +_151: ; /* sortlist ::= sortlist COMMA expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_150: + goto _346 +_152: ; /* sortlist ::= expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) /*A-overwrites-Y*/ _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_151: + goto _346 +_153: ; /* sortorder ::= ASC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = SQLITE_SO_ASC - goto _342 -_152: + goto _346 +_154: ; /* sortorder ::= DESC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_154: + goto _346 +_156: ; /* sortorder ::= */ -_153: +_155: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = -int32(1) - goto _342 -_155: + goto _346 +_157: ; /* nulls ::= NULLS FIRST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = SQLITE_SO_ASC - goto _342 -_156: + goto _346 +_158: ; /* nulls ::= NULLS LAST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_158: + goto _346 +_160: ; /* having_opt ::= */ -_157: - ; _159: ; -_160: - ; _161: ; _162: ; _163: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_165: - ; /* having_opt ::= HAVING expr */ _164: ; -_166: +_165: ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 _167: + ; /* having_opt ::= HAVING expr */ +_166: ; _168: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 _169: + ; +_170: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + goto _346 +_171: ; /* limit_opt ::= LIMIT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 -_170: + goto _346 +_172: ; /* limit_opt ::= LIMIT expr OFFSET expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_171: + goto _346 +_173: ; /* limit_opt ::= LIMIT expr COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 -_172: + goto _346 +_174: ; /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) _sqlite3DeleteFrom(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0)) - goto _342 -_173: + goto _346 +_175: ; /* where_opt_ret ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) - goto _342 -_174: + goto _346 +_176: ; /* where_opt_ret ::= WHERE expr RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) - goto _342 -_175: + goto _346 +_177: ; /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) - _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23417) + _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23540) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { pFromClause = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) if (*TSrcList)(unsafe.Pointer(pFromClause)).FnSrc > int32(1) { @@ -155746,95 +157309,95 @@ _175: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendList(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), pFromClause) } _sqlite3Update(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_176: + goto _346 +_178: ; /* setlist ::= setlist COMMA nm EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) - goto _342 -_177: + goto _346 +_179: ; /* setlist ::= setlist COMMA LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_178: + goto _346 +_180: ; /* setlist ::= nm EQ expr */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_179: + goto _346 +_181: ; /* setlist ::= LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_180: + goto _346 +_182: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_181: + goto _346 +_183: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0)) - goto _342 -_182: + goto _346 +_184: ; /* upsert ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_183: + goto _346 +_185: ; /* upsert ::= RETURNING selcollist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_184: + goto _346 +_186: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(11))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_185: + goto _346 +_187: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_186: + goto _346 +_188: ; /* upsert ::= ON CONFLICT DO NOTHING returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_187: + goto _346 +_189: ; /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_188: + goto _346 +_190: ; /* returning ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_189: + goto _346 +_191: ; /* idlist_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_190: + goto _346 +_192: ; /* idlist_opt ::= LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_191: + goto _346 +_193: ; /* idlist ::= idlist COMMA nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3IdListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 -_192: + goto _346 +_194: ; /* idlist ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3IdListAppend(tls, pParse, uintptr(0), yymsp+8) /*A-overwrites-Y*/ - goto _342 -_193: + goto _346 +_195: ; /* expr ::= LP expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_194: + goto _346 +_196: ; /* expr ::= ID|INDEXED|JOIN_KW */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_195: + goto _346 +_197: ; /* expr ::= nm DOT nm */ temp1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) temp2 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp1, temp2) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_196: + goto _346 +_198: ; /* expr ::= nm DOT nm DOT nm */ temp11 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) temp21 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) @@ -155845,22 +157408,22 @@ _196: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp11, temp4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_198: + goto _346 +_200: ; /* term ::= NULL|FLOAT|BLOB */ -_197: +_199: ; *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_199: + goto _346 +_201: ; /* term ::= INTEGER */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), yymsp+8, int32(1)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 52)) = int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8))) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_200: + goto _346 +_202: ; /* expr ::= VARIABLE */ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8))))) == int32('#') && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)) + 1)))])&int32(0x04) != 0) { n = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) @@ -155872,7 +157435,7 @@ _200: ** in the virtual machine. #N is the N-th register. */ *(*TToken)(unsafe.Pointer(bp + 88)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) /*A-overwrites-X*/ if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23426, libc.VaList(bp+128, bp+88)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23549, libc.VaList(bp+128, bp+88)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = uintptr(0) } else { *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_REGISTER), uintptr(0), uintptr(0)) @@ -155881,57 +157444,57 @@ _200: } } } - goto _342 -_201: + goto _346 +_203: ; /* expr ::= expr COLLATE ID|STRING */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAddCollateToken(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8, int32(1)) - goto _342 -_202: + goto _346 +_204: ; /* expr ::= CAST LP expr AS typetoken RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_CAST), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) _sqlite3ExprAttachSubtrees(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) - goto _342 -_203: + goto _346 +_205: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_204: + goto _346 +_206: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_205: + goto _346 +_207: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_206: + goto _346 +_208: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_207: + goto _346 +_209: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_208: + goto _346 +_210: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, 0) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_209: + goto _346 +_211: ; /* term ::= CTIME_KW */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_210: + goto _346 +_212: ; /* expr ::= LP nexprlist COMMA expr RP */ pList = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_VECTOR), uintptr(0), uintptr(0)) @@ -155943,33 +157506,33 @@ _210: } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) } - goto _342 -_211: + goto _346 +_213: ; /* expr ::= expr AND expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_213: + goto _346 +_215: ; /* expr ::= expr OR expr */ -_212: - ; _214: ; -_215: - ; _216: ; _217: ; _218: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 _219: + ; +_220: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_221: ; /* likeop ::= NOT LIKE_KW|MATCH */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) |= uint32(0x80000000) /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/ - goto _342 -_220: + goto _346 +_222: ; /* expr ::= expr likeop expr */ bNot = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -155982,8 +157545,8 @@ _220: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_221: + goto _346 +_223: ; /* expr ::= expr likeop expr ESCAPE expr */ bNot1 = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -155997,65 +157560,67 @@ _221: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_222: + goto _346 +_224: ; /* expr ::= expr ISNULL|NOTNULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_223: + goto _346 +_225: ; /* expr ::= expr NOT NULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOTNULL), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uintptr(0)) - goto _342 -_224: + goto _346 +_226: ; /* expr ::= expr IS expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_225: + goto _346 +_227: ; /* expr ::= expr IS NOT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_226: + goto _346 +_228: ; /* expr ::= expr IS NOT DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_227: + goto _346 +_229: ; /* expr ::= expr IS DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_229: + goto _346 +_231: ; /* expr ::= NOT expr */ -_228: +_230: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) /*A-overwrites-B*/ - goto _342 -_230: + goto _346 +_232: ; /* expr ::= PLUS|MINUS expr */ - if int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) == int32(TK_PLUS) { - v344 = int32(TK_UPLUS) + p4 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + op = uint8(int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) + (libc.Int32FromInt32(TK_UPLUS) - libc.Int32FromInt32(TK_PLUS))) + if p4 != 0 && int32((*TExpr)(unsafe.Pointer(p4)).Fop) == int32(TK_UPLUS) { + (*TExpr)(unsafe.Pointer(p4)).Fop = op + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = p4 } else { - v344 = int32(TK_UMINUS) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(op), p4, uintptr(0)) + /*A-overwrites-B*/ } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, v344, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - /*A-overwrites-B*/ - goto _342 -_231: + goto _346 +_233: ; /* expr ::= expr PTR expr */ pList3 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList3 = _sqlite3ExprListAppend(tls, pParse, pList3, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, pList3, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_233: + goto _346 +_235: ; /* between_op ::= BETWEEN */ -_232: +_234: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = 0 - goto _342 -_234: + goto _346 +_236: ; /* expr ::= expr between_op expr AND expr */ pList4 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList4 = _sqlite3ExprListAppend(tls, pParse, pList4, *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -156068,8 +157633,8 @@ _234: if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_235: + goto _346 +_237: ; /* expr ::= expr in_op LP exprlist RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) == uintptr(0) { /* Expressions of the form @@ -156082,17 +157647,17 @@ _235: */ _sqlite3ExprUnmapAndDelete(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { - v345 = __ccgo_ts + 7918 + v348 = __ccgo_ts + 8043 } else { - v345 = __ccgo_ts + 7923 + v348 = __ccgo_ts + 8048 } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v345) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v348) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { _sqlite3ExprIdToTrueFalse(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } } else { pRHS = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr - if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { + if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pParse, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr = uintptr(0) _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) pRHS = _sqlite3PExpr(tls, pParse, int32(TK_UPLUS), pRHS, uintptr(0)) @@ -156126,460 +157691,464 @@ _235: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } } - goto _342 -_236: + goto _346 +_238: ; /* expr ::= LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_SELECT), uintptr(0), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_237: + goto _346 +_239: ; /* expr ::= expr in_op LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_238: + goto _346 +_240: ; /* expr ::= expr in_op nm dbnm paren_exprlist */ pSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) pSelect = _sqlite3SelectNew(tls, pParse, uintptr(0), pSrc, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { if pSelect != 0 { - v346 = pSrc + v349 = pSrc } else { - v346 = uintptr(0) + v349 = uintptr(0) } - _sqlite3SrcListFuncArgs(tls, pParse, v346, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + _sqlite3SrcListFuncArgs(tls, pParse, v349, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pSelect) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_239: + goto _346 +_241: ; /* expr ::= EXISTS LP select RP */ - v347 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v347 - p4 = v347 - _sqlite3PExprAddSelect(tls, pParse, p4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_240: + v350 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v350 + p5 = v350 + _sqlite3PExprAddSelect(tls, pParse, p5, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_242: ; /* expr ::= CASE case_operand case_exprlist case_else END */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_CASE), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { - v348 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + v351 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } else { - v348 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + v351 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) } - *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v348 + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v351 _sqlite3ExprSetHeightAndFlags(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } - goto _342 -_241: + goto _346 +_243: ; /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_242: + goto _346 +_244: ; /* case_exprlist ::= WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_243: + goto _346 +_245: ; /* nexprlist ::= nexprlist COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_244: + goto _346 +_246: ; /* nexprlist ::= expr */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_246: + goto _346 +_248: ; /* paren_exprlist ::= LP exprlist RP */ -_245: +_247: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_247: + goto _346 +_249: ; /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ _sqlite3CreateIndex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, uintptr(0)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(11))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8)), SQLITE_SO_ASC, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), uint8(SQLITE_IDXTYPE_APPDEF)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && (*TParse)(unsafe.Pointer(pParse)).FpNewIndex != 0 { _sqlite3RenameTokenMap(tls, pParse, (*TIndex)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpNewIndex)).FzName, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) } - goto _342 -_249: + goto _346 +_251: ; /* uniqueflag ::= UNIQUE */ -_248: +_250: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Abort) - goto _342 -_250: + goto _346 +_252: ; /* uniqueflag ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = OE_None - goto _342 -_251: + goto _346 +_253: ; /* eidlist ::= eidlist COMMA nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_252: + goto _346 +_254: ; /* eidlist ::= nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_253: + goto _346 +_255: ; /* cmd ::= DROP INDEX ifexists fullname */ _sqlite3DropIndex(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_254: + goto _346 +_256: ; /* cmd ::= VACUUM vinto */ _sqlite3Vacuum(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_255: + goto _346 +_257: ; /* cmd ::= VACUUM nm vinto */ _sqlite3Vacuum(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_256: + goto _346 +_258: ; /* cmd ::= PRAGMA nm dbnm */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, uintptr(0), 0) - goto _342 -_257: + goto _346 +_259: ; /* cmd ::= PRAGMA nm dbnm EQ nmnum */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, 0) - goto _342 -_258: + goto _346 +_260: ; /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) - goto _342 -_259: + goto _346 +_261: ; /* cmd ::= PRAGMA nm dbnm EQ minus_num */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, int32(1)) - goto _342 -_260: + goto _346 +_262: ; /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) - goto _342 -_261: + goto _346 +_263: ; /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ (*(*TToken)(unsafe.Pointer(bp + 104))).Fz = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) (*(*TToken)(unsafe.Pointer(bp + 104))).Fn = uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) + *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) _sqlite3FinishTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), bp+104) - goto _342 -_262: + goto _346 +_264: ; /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ _sqlite3BeginTrigger(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8 + 8)) == uint32(0) { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) } else { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) } - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v349 /*A-overwrites-T*/ - goto _342 -_263: + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v352 /*A-overwrites-T*/ + goto _346 +_265: ; /* trigger_time ::= BEFORE|AFTER */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_264: + goto _346 +_266: ; /* trigger_time ::= INSTEAD OF */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_INSTEAD) - goto _342 -_265: + goto _346 +_267: ; /* trigger_time ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_BEFORE) - goto _342 -_267: + goto _346 +_269: ; /* trigger_event ::= DELETE|INSERT */ -_266: +_268: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) = uintptr(0) - goto _342 -_268: + goto _346 +_270: ; /* trigger_event ::= UPDATE OF idlist */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(TK_UPDATE) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_270: + goto _346 +_272: ; /* when_clause ::= */ -_269: +_271: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_272: + goto _346 +_274: ; /* when_clause ::= WHEN expr */ -_271: +_273: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_273: + goto _346 +_275: ; /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ (*TTriggerStep)(unsafe.Pointer((*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast)).FpNext = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_274: + goto _346 +_276: ; /* trigger_cmd_list ::= trigger_cmd SEMI */ (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_275: + goto _346 +_277: ; /* trnm ::= nm DOT nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23450, 0) - goto _342 -_276: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23573, 0) + goto _346 +_278: ; /* tridxby ::= INDEXED BY nm */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23545, 0) - goto _342 -_277: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23668, 0) + goto _346 +_279: ; /* tridxby ::= NOT INDEXED */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23629, 0) - goto _342 -_278: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23752, 0) + goto _346 +_280: ; /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerUpdateStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_279: + goto _346 +_281: ; /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_280: + goto _346 +_282: ; /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerDeleteStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_281: + goto _346 +_283: ; /* trigger_cmd ::= scanpt select scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_282: + goto _346 +_284: ; /* expr ::= RAISE LP IGNORE RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_RAISE), uintptr(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)))).FaffExpr = int8(OE_Ignore) } - goto _342 -_283: + goto _346 +_285: ; /* expr ::= RAISE LP raisetype COMMA nm RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_RAISE), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)))).FaffExpr = int8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) } - goto _342 -_284: + goto _346 +_286: ; /* raisetype ::= ROLLBACK */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Rollback) - goto _342 -_285: + goto _346 +_287: ; /* raisetype ::= FAIL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Fail) - goto _342 -_286: + goto _346 +_288: ; /* cmd ::= DROP TRIGGER ifexists fullname */ _sqlite3DropTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_287: + goto _346 +_289: ; /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ _sqlite3Attach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_288: + goto _346 +_290: ; /* cmd ::= DETACH database_kw_opt expr */ _sqlite3Detach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_289: + goto _346 +_291: ; /* cmd ::= REINDEX */ _sqlite3Reindex(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_290: + goto _346 +_292: ; /* cmd ::= REINDEX nm dbnm */ _sqlite3Reindex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_291: + goto _346 +_293: ; /* cmd ::= ANALYZE */ _sqlite3Analyze(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_292: + goto _346 +_294: ; /* cmd ::= ANALYZE nm dbnm */ _sqlite3Analyze(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_293: + goto _346 +_295: ; /* cmd ::= ALTER TABLE fullname RENAME TO nm */ _sqlite3AlterRenameTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_294: + goto _346 +_296: ; /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(int32(int64((*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fz)-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) + (*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fn _sqlite3AlterFinishAddColumn(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_295: + goto _346 +_297: ; /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ _sqlite3AlterDropColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_296: + goto _346 +_298: ; /* add_column_fullname ::= fullname */ _disableLookaside(tls, pParse) _sqlite3AlterBeginAddColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_297: + goto _346 +_299: ; /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ _sqlite3AlterRenameColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) - goto _342 -_298: + goto _346 +_300: ; /* cmd ::= create_vtab */ _sqlite3VtabFinishParse(tls, pParse, uintptr(0)) - goto _342 -_299: + goto _346 +_301: ; /* cmd ::= create_vtab LP vtabarglist RP */ _sqlite3VtabFinishParse(tls, pParse, yymsp+8) - goto _342 -_300: + goto _346 +_302: ; /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ _sqlite3VtabBeginParse(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) - goto _342 -_301: + goto _346 +_303: ; /* vtabarg ::= */ _sqlite3VtabArgInit(tls, pParse) - goto _342 -_303: + goto _346 +_305: ; /* vtabargtoken ::= ANY */ -_302: - ; _304: ; - _sqlite3VtabArgExtend(tls, pParse, yymsp+8) - goto _342 _306: + ; + _sqlite3VtabArgExtend(tls, pParse, yymsp+8) + goto _346 +_308: ; /* with ::= WITH wqlist */ -_305: +_307: ; _sqlite3WithPush(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint8(1)) - goto _342 -_307: + goto _346 +_309: ; /* wqas ::= AS */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8(M10d_Any) - goto _342 -_308: + goto _346 +_310: ; /* wqas ::= AS MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8(M10d_Yes) - goto _342 -_309: + goto _346 +_311: ; /* wqas ::= AS NOT MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = uint8(M10d_No) - goto _342 -_310: - ; /* wqitem ::= nm eidlist_opt wqas LP select RP */ + goto _346 +_312: + ; /* wqitem ::= withnm eidlist_opt wqas LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3CteNew(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) /*A-overwrites-X*/ - goto _342 -_311: + goto _346 +_313: + ; /* withnm ::= nm */ + (*TParse)(unsafe.Pointer(pParse)).FbHasWith = uint8(1) + goto _346 +_314: ; /* wqlist ::= wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3WithAdd(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_312: + goto _346 +_315: ; /* wqlist ::= wqlist COMMA wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3WithAdd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_313: + goto _346 +_316: ; /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ _sqlite3WindowChain(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpNextWin = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_314: + goto _346 +_317: ; /* windowdefn ::= nm AS LP window RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)))) } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_315: + goto _346 +_318: ; /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_316: + goto _346 +_319: ; /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_317: + goto _346 +_320: ; /* window ::= ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_318: + goto _346 +_321: ; /* window ::= nm ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_319: + goto _346 +_322: ; /* window ::= nm frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_320: + goto _346 +_323: ; /* frame_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = _sqlite3WindowAlloc(tls, pParse, 0, int32(TK_UNBOUNDED), uintptr(0), int32(TK_CURRENT), uintptr(0), uint8(0)) - goto _342 -_321: + goto _346 +_324: ; /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), int32(TK_CURRENT), uintptr(0), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_322: + goto _346 +_325: ; /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_324: + goto _346 +_327: ; /* frame_bound_s ::= frame_bound */ -_323: +_326: ; *(*TFrameBound)(unsafe.Pointer(bp)) = *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_326: + goto _346 +_329: ; /* frame_bound_s ::= UNBOUNDED PRECEDING */ -_325: +_328: ; -_327: +_330: ; (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = uintptr(0) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_328: + goto _346 +_331: ; /* frame_bound ::= expr PRECEDING|FOLLOWING */ (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_329: + goto _346 +_332: ; /* frame_exclude_opt ::= */ *(*Tu8)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint8(0) - goto _342 -_330: + goto _346 +_333: ; /* frame_exclude_opt ::= EXCLUDE frame_exclude */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*Tu8)(unsafe.Pointer(yymsp + 8)) - goto _342 -_332: + goto _346 +_335: ; /* frame_exclude ::= NO OTHERS */ -_331: +_334: ; *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) /*A-overwrites-X*/ - goto _342 -_333: + goto _346 +_336: ; /* frame_exclude ::= GROUP|TIES */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_334: + goto _346 +_337: ; /* window_clause ::= WINDOW windowdefn_list */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_335: + goto _346 +_338: ; /* filter_over ::= filter_clause over_clause */ if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpFilter = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) @@ -156588,13 +158157,13 @@ _335: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_336: + goto _346 +_339: ; /* filter_over ::= over_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_337: + goto _346 +_340: ; /* filter_over ::= filter_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { @@ -156604,27 +158173,33 @@ _337: _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_338: + goto _346 +_341: ; /* over_clause ::= OVER LP window RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_339: + goto _346 +_342: ; /* over_clause ::= OVER nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) } - goto _342 -_340: + goto _346 +_343: ; /* filter_clause ::= FILTER LP WHERE expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_341: + goto _346 +_344: + ; /* term ::= QNUMBER */ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) + _sqlite3DequoteNumber(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp))))) + *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + goto _346 +_345: ; - goto _342 + goto _346 /********** End reduce actions ************************************************/ -_342: +_346: ; yygoto = int32(_yyRuleInfoLhs[yyruleno]) yysize = int32(_yyRuleInfoNRhs[yyruleno]) @@ -156658,9 +158233,9 @@ func _yy_syntax_error(tls *libc.TLS, yypParser uintptr, yymajor int32, _yyminor /************ Begin %syntax_error code ****************************************/ _ = yymajor /* Silence some compiler warnings */ if *(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp))).Fz)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23426, libc.VaList(bp+24, bp)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23549, libc.VaList(bp+24, bp)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23714, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23837, 0) } /************ End %syntax_error code ******************************************/ /* Suppress warning about unused %extra_argument variable */ @@ -156725,8 +158300,10 @@ func _sqlite3Parser(tls *libc.TLS, yyp uintptr, yymajor int32, yyminor TToken) { ** enough on the stack to push the LHS value */ if int32(_yyRuleInfoNRhs[yyruleno]) == 0 { if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos >= (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - _yyStackOverflow(tls, yypParser) - break + if _yyGrowStack(tls, yypParser) != 0 { + _yyStackOverflow(tls, yypParser) + break + } } } yyact = _yy_reduce(tls, yypParser, yyruleno, yymajor, yyminor, pParse) @@ -158875,9 +160452,9 @@ func _analyzeFilterKeyword(tls *libc.TLS, _z uintptr, lastToken int32) (r int32) // ** Store the token type in *tokenType before returning. // */ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { - var c, delim, i, n, v10, v14, v16, v19, v20, v3, v5, v7, v8 int32 - var v15, v6 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v14, v15, v16, v19, v20, v3, v5, v6, v7, v8 + var c, delim, i, n, v10, v16, v18, v21, v22, v3, v5, v7, v8 int32 + var v17, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v16, v17, v18, v21, v22, v3, v5, v6, v7, v8 switch int32(_aiClass[*(*uint8)(unsafe.Pointer(z))]) { /* Switch on the character-class of the first byte ** of the token. See the comment on the CC_ defines ** above. */ @@ -159073,39 +160650,83 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('X')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + 2))])&int32(0x08) != 0 { i = int32(3) for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { + if !(int32(1) != 0) { break } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } goto _11 _11: ; i++ } - return i - } - i = 0 - for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _12 - _12: - ; - i++ - } - if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { - i++ - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + } else { + i = 0 + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _12 + _12: + ; i++ } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) - } - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { - i += int32(2) - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } i++ + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _13 + _13: + ; + i++ + } + } + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } + i += int32(2) + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _14 + _14: + ; + i++ + } } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) } for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x46) != 0 { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_ILLEGAL) @@ -159116,24 +160737,24 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { i = int32(1) c = int32(*(*uint8)(unsafe.Pointer(z))) for { - if v15 = c != int32(']'); v15 { - v14 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v14 + if v17 = c != int32(']'); v17 { + v16 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v16 } - if !(v15 && v14 != 0) { + if !(v17 && v16 != 0) { break } - goto _13 - _13: + goto _15 + _15: ; i++ } if c == int32(']') { - v16 = int32(TK_ID) + v18 = int32(TK_ID) } else { - v16 = int32(TK_ILLEGAL) + v18 = int32(TK_ILLEGAL) } - *(*int32)(unsafe.Pointer(tokenType)) = v16 + *(*int32)(unsafe.Pointer(tokenType)) = v18 return i case int32(CC_VARNUM): *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) @@ -159142,8 +160763,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { break } - goto _17 - _17: + goto _19 + _19: ; i++ } @@ -159155,9 +160776,9 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) i = int32(1) for { - v19 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v19 - if !(v19 != 0) { + v21 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v21 + if !(v21 != 0) { break } if int32(_sqlite3CtypeMap[uint8(c)])&int32(0x46) != 0 { @@ -159166,12 +160787,12 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if c == int32('(') && n > 0 { for { i++ - goto _21 - _21: + goto _23 + _23: ; - v20 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v20 - if !(v20 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { + v22 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v22 + if !(v22 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { break } } @@ -159189,8 +160810,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { } } } - goto _18 - _18: + goto _20 + _20: ; i++ } @@ -159208,8 +160829,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_aiClass[*(*uint8)(unsafe.Pointer(z + uintptr(i)))]) <= int32(CC_KYWD)) { break } - goto _22 - _22: + goto _24 + _24: ; i++ } @@ -159230,8 +160851,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { break } - goto _23 - _23: + goto _25 + _25: ; i++ } @@ -159283,7 +160904,7 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { var lastTokenParsed, mxSqlLen, n, nErr int32 var _ /* sEngine at bp+8 */ TyyParser var _ /* tokenType at bp+0 */ int32 - var _ /* x at bp+2432 */ TToken + var _ /* x at bp+2440 */ TToken _, _, _, _, _, _, _ = db, lastTokenParsed, mxSqlLen, n, nErr, pEngine, pParentParse nErr = 0 /* The LEMON-generated LALR(1) parser */ n = 0 /* type of the next token */ @@ -159341,10 +160962,12 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp)) == int32(TK_FILTER) { *(*int32)(unsafe.Pointer(bp)) = _analyzeFilterKeyword(tls, zSql+6, lastTokenParsed) } else { - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fz = zSql - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fn = uint32(n) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23731, libc.VaList(bp+2456, bp+2432)) - break + if *(*int32)(unsafe.Pointer(bp)) != int32(TK_QNUMBER) { + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fz = zSql + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fn = uint32(n) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23854, libc.VaList(bp+2464, bp+2440)) + break + } } } } @@ -159365,9 +160988,9 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { } if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg != 0 || (*TParse)(unsafe.Pointer(pParse)).Frc != SQLITE_OK && (*TParse)(unsafe.Pointer(pParse)).Frc != int32(SQLITE_DONE) { if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg == uintptr(0) { - (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3827, libc.VaList(bp+2456, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) + (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3891, libc.VaList(bp+2464, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) } - Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23756, libc.VaList(bp+2456, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) + Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23879, libc.VaList(bp+2464, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) nErr++ } (*TParse)(unsafe.Pointer(pParse)).FzTail = zSql @@ -159559,7 +161182,7 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('c'): fallthrough case int32('C'): - if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23767, int32(6)) == 0 { + if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23890, int32(6)) == 0 { token = uint8(tkCREATE) } else { token = uint8(tkOTHER) @@ -159567,13 +161190,13 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('t'): fallthrough case int32('T'): - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20411, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20543, int32(7)) == 0 { token = uint8(tkTRIGGER) } else { - if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23774, int32(4)) == 0 { + if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23897, int32(4)) == 0 { token = uint8(tkTEMP) } else { - if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23779, int32(9)) == 0 { + if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23902, int32(9)) == 0 { token = uint8(tkTEMP) } else { token = uint8(tkOTHER) @@ -159583,10 +161206,10 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('e'): fallthrough case int32('E'): - if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23789, int32(3)) == 0 { + if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23912, int32(3)) == 0 { token = uint8(tkEND) } else { - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23793, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23916, int32(7)) == 0 { token = uint8(tkEXPLAIN) } else { token = uint8(tkOTHER) @@ -159846,8 +161469,6 @@ func _hasHighPrecisionDouble(tls *libc.TLS, rc int32) (r int32) { // ** without blocking. // */ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { - ng := runtime.GOMAXPROCS(1) - defer func() { runtime.GOMAXPROCS(ng) }() var pMainMtx uintptr var rc int32 _, _ = pMainMtx, rc /* Result code */ @@ -159859,7 +161480,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** must be complete. So isInit must not be set until the very end ** of this routine. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { _sqlite3MemoryBarrier(tls) return SQLITE_OK } @@ -159920,7 +161541,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** call to sqlite3PcacheInitialize(). */ Xsqlite3_mutex_enter(tls, _sqlite3Config.FpInitMutex) - if _sqlite3Config.FisInit == 0 && _sqlite3Config.FinProgress == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 && _sqlite3Config.FinProgress == 0 { _sqlite3Config.FinProgress = int32(1) libc.Xmemset(tls, uintptr(unsafe.Pointer(&_sqlite3BuiltinFunctions)), 0, uint64(184)) _sqlite3RegisterBuiltinFunctions(tls) @@ -159937,7 +161558,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { if rc == SQLITE_OK { _sqlite3PCacheBufferSetup(tls, _sqlite3Config.FpPage, _sqlite3Config.FszPage, _sqlite3Config.FnPage) _sqlite3MemoryBarrier(tls) - _sqlite3Config.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, int32(1)) } _sqlite3Config.FinProgress = 0 } @@ -159962,7 +161583,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { */ /* Experimentally determine if high-precision floating point is ** available. */ - _sqlite3Config.FbUseLongDouble = uint8(_hasHighPrecisionDouble(tls, rc)) + // disabled return rc } @@ -159977,10 +161598,10 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { // ** when this routine is invoked, then this routine is a harmless no-op. // */ func Xsqlite3_shutdown(tls *libc.TLS) (r int32) { - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { Xsqlite3_os_end(tls) Xsqlite3_reset_auto_extension(tls) - _sqlite3Config.FisInit = 0 + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, 0) } if _sqlite3Config.FisPCacheInit != 0 { _sqlite3PcacheShutdown(tls) @@ -160028,9 +161649,9 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { ** the SQLite library is in use. Except, a few selected opcodes ** are allowed. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)<= 0 && rc < int32(libc.Uint64FromInt64(232)/libc.Uint64FromInt64(8)) && _aMsg[rc] != uintptr(0) { @@ -161168,31 +162789,31 @@ func _sqlite3ErrStr(tls *libc.TLS, rc int32) (r uintptr) { } var _aMsg = [29]uintptr{ - 0: __ccgo_ts + 23869, - 1: __ccgo_ts + 23882, - 3: __ccgo_ts + 23898, - 4: __ccgo_ts + 23923, - 5: __ccgo_ts + 23937, - 6: __ccgo_ts + 23956, - 7: __ccgo_ts + 1650, - 8: __ccgo_ts + 23981, - 9: __ccgo_ts + 24018, - 10: __ccgo_ts + 24030, - 11: __ccgo_ts + 24045, - 12: __ccgo_ts + 24078, - 13: __ccgo_ts + 24096, - 14: __ccgo_ts + 24121, - 15: __ccgo_ts + 24150, - 17: __ccgo_ts + 6053, - 18: __ccgo_ts + 5455, - 19: __ccgo_ts + 24167, - 20: __ccgo_ts + 24185, - 21: __ccgo_ts + 24203, - 23: __ccgo_ts + 24237, - 25: __ccgo_ts + 24258, - 26: __ccgo_ts + 24284, - 27: __ccgo_ts + 24307, - 28: __ccgo_ts + 24328, + 0: __ccgo_ts + 23992, + 1: __ccgo_ts + 24005, + 3: __ccgo_ts + 24021, + 4: __ccgo_ts + 24046, + 5: __ccgo_ts + 24060, + 6: __ccgo_ts + 24079, + 7: __ccgo_ts + 1664, + 8: __ccgo_ts + 24104, + 9: __ccgo_ts + 24141, + 10: __ccgo_ts + 24153, + 11: __ccgo_ts + 24168, + 12: __ccgo_ts + 24201, + 13: __ccgo_ts + 24219, + 14: __ccgo_ts + 24244, + 15: __ccgo_ts + 24273, + 17: __ccgo_ts + 6117, + 18: __ccgo_ts + 5519, + 19: __ccgo_ts + 24290, + 20: __ccgo_ts + 24308, + 21: __ccgo_ts + 24326, + 23: __ccgo_ts + 24360, + 25: __ccgo_ts + 24381, + 26: __ccgo_ts + 24407, + 27: __ccgo_ts + 24430, + 28: __ccgo_ts + 24451, } // C documentation @@ -161371,7 +162992,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i var p, v1 uintptr _, _, _, _ = extraFlags, p, rc, v1 if zFunctionName == uintptr(0) || xSFunc != uintptr(0) && xFinal != uintptr(0) || libc.BoolInt32(xFinal == uintptr(0)) != libc.BoolInt32(xStep == uintptr(0)) || libc.BoolInt32(xValue == uintptr(0)) != libc.BoolInt32(xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { - return _sqlite3MisuseError(tls, int32(180244)) + return _sqlite3MisuseError(tls, int32(181689)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -161414,7 +163035,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i p = _sqlite3FindFunction(tls, db, zFunctionName, nArg, uint8(enc), uint8(0)) if p != 0 && (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) == uint32(enc) && int32((*TFuncDef)(unsafe.Pointer(p)).FnArg) == nArg { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24425, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24548, 0) return int32(SQLITE_BUSY) } else { _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -161484,6 +163105,7 @@ func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, en (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } + goto out out: ; rc = _sqlite3ApiExit(tls, db, rc) @@ -161539,7 +163161,7 @@ func _sqlite3InvalidFunction(tls *libc.TLS, context uintptr, NotUsed int32, NotU zName = Xsqlite3_user_data(tls, context) _ = NotUsed _ = NotUsed2 - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24488, libc.VaList(bp+8, zName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24611, libc.VaList(bp+8, zName)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -161570,7 +163192,7 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i if rc != 0 { return SQLITE_OK } - zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+8, zName)) + zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+8, zName)) if zCopy == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -161814,7 +163436,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in if eMode < SQLITE_CHECKPOINT_PASSIVE || eMode > int32(SQLITE_CHECKPOINT_TRUNCATE) { /* EVIDENCE-OF: R-03996-12088 The M parameter must be a valid checkpoint ** mode: */ - return _sqlite3MisuseError(tls, int32(180859)) + return _sqlite3MisuseError(tls, int32(182304)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*int8)(unsafe.Pointer(zDb)) != 0 { @@ -161824,7 +163446,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in } if iDb < 0 { rc = int32(SQLITE_ERROR) - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24539, libc.VaList(bp+8, zDb)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24662, libc.VaList(bp+8, zDb)) } else { (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0 rc = _sqlite3Checkpoint(tls, db, iDb, eMode, pnLog, pnCkpt) @@ -161946,7 +163568,7 @@ func Xsqlite3_errmsg(tls *libc.TLS, db uintptr) (r uintptr) { return _sqlite3ErrStr(tls, int32(SQLITE_NOMEM)) } if !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(180995))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(182440))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -162078,7 +163700,7 @@ var _misuse = [34]Tu16{ // */ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181074)) + return _sqlite3MisuseError(tls, int32(182519)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -162088,7 +163710,7 @@ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { func Xsqlite3_extended_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181083)) + return _sqlite3MisuseError(tls, int32(182528)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -162137,7 +163759,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui enc2 = int32(SQLITE_UTF16LE) } if enc2 < int32(SQLITE_UTF8) || enc2 > int32(SQLITE_UTF16BE) { - return _sqlite3MisuseError(tls, int32(181131)) + return _sqlite3MisuseError(tls, int32(182576)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -162146,7 +163768,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui pColl = _sqlite3FindCollSeq(tls, db, uint8(enc2), zName, 0) if pColl != 0 && (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp != 0 { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24560, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24683, 0) return int32(SQLITE_BUSY) } _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -162293,7 +163915,7 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u flags = *(*uint32)(unsafe.Pointer(pFlags)) zVfs = zDefaultVfs nUri = _sqlite3Strlen30(tls, zUri) - if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24628, uint64(5)) == 0 { /* Input character index */ + if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24751, uint64(5)) == 0 { /* Input character index */ iOut = 0 /* Output character index */ nByte = uint64(nUri + int32(8)) /* Bytes of space to allocate */ /* Make sure the SQLITE_OPEN_URI flag is set to indicate to the VFS xOpen @@ -162323,8 +163945,8 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u for *(*int8)(unsafe.Pointer(zUri + uintptr(iIn))) != 0 && int32(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn)))) != int32('/') { iIn++ } - if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24634, zUri+7, uint64(9)) != 0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24644, libc.VaList(bp+8, iIn-int32(7), zUri+7)) + if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24757, zUri+7, uint64(9)) != 0) { + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24767, libc.VaList(bp+8, iIn-int32(7), zUri+7)) rc = int32(SQLITE_ERROR) goto parse_uri_out } @@ -162413,24 +164035,24 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u nOpt = _sqlite3Strlen30(tls, zOpt) zVal = zOpt + uintptr(nOpt+int32(1)) nVal = _sqlite3Strlen30(tls, zVal) - if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24672, zOpt, uint64(3)) == 0 { + if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24795, zOpt, uint64(3)) == 0 { zVfs = zVal } else { aMode = uintptr(0) zModeType = uintptr(0) mask = 0 limit = 0 - if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24676, zOpt, uint64(5)) == 0 { + if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24799, zOpt, uint64(5)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_SHAREDCACHE) | libc.Int32FromInt32(SQLITE_OPEN_PRIVATECACHE) aMode = uintptr(unsafe.Pointer(&_aCacheMode)) limit = mask - zModeType = __ccgo_ts + 24676 + zModeType = __ccgo_ts + 24799 } - if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24697, zOpt, uint64(4)) == 0 { + if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24820, zOpt, uint64(4)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_READONLY) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_MEMORY) aMode = uintptr(unsafe.Pointer(&_aOpenMode)) limit = int32(uint32(mask) & flags) - zModeType = __ccgo_ts + 3436 + zModeType = __ccgo_ts + 3500 } if aMode != 0 { mode = 0 @@ -162459,12 +164081,12 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u i++ } if mode == 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24712, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24835, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_ERROR) goto parse_uri_out } if mode & ^libc.Int32FromInt32(SQLITE_OPEN_MEMORY) > limit { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24732, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24855, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_PERM) goto parse_uri_out } @@ -162488,9 +164110,10 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u } *(*uintptr)(unsafe.Pointer(ppVfs)) = Xsqlite3_vfs_find(tls, zVfs) if *(*uintptr)(unsafe.Pointer(ppVfs)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24756, libc.VaList(bp+8, zVfs)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24879, libc.VaList(bp+8, zVfs)) rc = int32(SQLITE_ERROR) } + goto parse_uri_out parse_uri_out: ; if rc != SQLITE_OK { @@ -162507,11 +164130,11 @@ var _aCacheMode = [3]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24682, + Fz: __ccgo_ts + 24805, Fmode: int32(SQLITE_OPEN_SHAREDCACHE), }, 1: { - Fz: __ccgo_ts + 24689, + Fz: __ccgo_ts + 24812, Fmode: int32(SQLITE_OPEN_PRIVATECACHE), }, 2: {}, @@ -162522,19 +164145,19 @@ var _aOpenMode = [5]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24702, + Fz: __ccgo_ts + 24825, Fmode: int32(SQLITE_OPEN_READONLY), }, 1: { - Fz: __ccgo_ts + 24705, + Fz: __ccgo_ts + 24828, Fmode: int32(SQLITE_OPEN_READWRITE), }, 2: { - Fz: __ccgo_ts + 24708, + Fz: __ccgo_ts + 24831, Fmode: libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE), }, 3: { - Fz: __ccgo_ts + 17796, + Fz: __ccgo_ts + 17883, Fmode: int32(SQLITE_OPEN_MEMORY), }, 4: {}, @@ -162662,8 +164285,8 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16BE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16LE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+22383, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+24772, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+22528, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+24895, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto opendb_out } @@ -162684,7 +164307,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* READWRITE */ /* READWRITE | CREATE */ if int32(1)<<(*(*uint32)(unsafe.Pointer(bp))&uint32(7))&int32(0x46) == 0 { - rc = _sqlite3MisuseError(tls, int32(181803)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(183248)) /* IMP: R-18321-05872 */ } else { rc = _sqlite3ParseUri(tls, zVfs, zFilename, bp, db, bp+8, bp+16) } @@ -162693,7 +164316,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _sqlite3OomFault(tls, db) } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { - v2 = __ccgo_ts + 3827 + v2 = __ccgo_ts + 3891 } else { v2 = uintptr(0) } @@ -162720,9 +164343,9 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* The default safety_level for the main database is FULL; for the temp ** database it is OFF. This matches the pager layer defaults. */ - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6617 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6681 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).Fsafety_level = uint8(libc.Int32FromInt32(SQLITE_DEFAULT_SYNCHRONOUS) + libc.Int32FromInt32(1)) - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 23774 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 23897 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).Fsafety_level = uint8(PAGER_SYNCHRONOUS_OFF) (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState = uint8(SQLITE_STATE_OPEN) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -162767,6 +164390,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* Enable the lookaside-malloc subsystem */ _setupLookaside(tls, db, uintptr(0), _sqlite3Config.FszLookaside, _sqlite3Config.FnLookaside) Xsqlite3_wal_autocheckpoint(tls, db, int32(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT)) + goto opendb_out opendb_out: ; if db != 0 { @@ -162815,7 +164439,7 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc } if zFilename == uintptr(0) { - zFilename = __ccgo_ts + 24778 + zFilename = __ccgo_ts + 24901 } pVal = _sqlite3ValueNew(tls, uintptr(0)) _sqlite3ValueSetStr(tls, pVal, -int32(1), zFilename, uint8(SQLITE_UTF16LE), libc.UintptrFromInt32(0)) @@ -163032,20 +164656,20 @@ func Xsqlite3_get_autocommit(tls *libc.TLS, db uintptr) (r int32) { func _sqlite3ReportError(tls *libc.TLS, iErr int32, lineno int32, zType uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) - Xsqlite3_log(tls, iErr, __ccgo_ts+24781, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) + Xsqlite3_log(tls, iErr, __ccgo_ts+24904, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) return iErr } func _sqlite3CorruptError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24806) + return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24929) } func _sqlite3MisuseError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24826) + return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24949) } func _sqlite3CantopenError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24833) + return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24956) } // C documentation @@ -163151,6 +164775,7 @@ func Xsqlite3_table_column_metadata(tls *libc.TLS, db uintptr, zDbName uintptr, if !(zCollSeq != 0) { zCollSeq = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } + goto error_out error_out: ; _sqlite3BtreeLeaveAll(tls, db) @@ -163175,11 +164800,11 @@ error_out: } if SQLITE_OK == rc && !(pTab != 0) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24850, libc.VaList(bp+16, zTableName, zColumnName)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24973, libc.VaList(bp+16, zTableName, zColumnName)) rc = int32(SQLITE_ERROR) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v3 = __ccgo_ts + 3827 + v3 = __ccgo_ts + 3891 } else { v3 = uintptr(0) } @@ -163614,7 +165239,7 @@ func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) (r int32) { */ fallthrough case int32(SQLITE_TESTCTRL_ISINIT): - if _sqlite3Config.FisInit == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 { rc = int32(SQLITE_ERROR) } break @@ -164203,7 +165828,7 @@ func Xsqlite3_compileoption_used(tls *libc.TLS, zOptName uintptr) (r int32) { var _ /* nOpt at bp+0 */ int32 _, _, _ = azCompileOpt, i, n azCompileOpt = _sqlite3CompileOptions(tls, bp) - if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24878, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+25001, int32(7)) == 0 { zOptName += uintptr(7) } n = _sqlite3Strlen30(tls, zOptName) @@ -164421,7 +166046,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui } _leaveMutex(tls) if rc != 0 { - v2 = __ccgo_ts + 24886 + v2 = __ccgo_ts + 25009 } else { v2 = uintptr(0) } @@ -165301,23 +166926,23 @@ func _sqlite3ConnectionClosed(tls *libc.TLS, db uintptr) { // ** string must correspond to the JSONB_* integer above. // */ var _jsonbType = [17]uintptr{ - 0: __ccgo_ts + 1666, - 1: __ccgo_ts + 7918, - 2: __ccgo_ts + 7923, - 3: __ccgo_ts + 6338, - 4: __ccgo_ts + 6338, - 5: __ccgo_ts + 6333, - 6: __ccgo_ts + 6333, - 7: __ccgo_ts + 8229, - 8: __ccgo_ts + 8229, - 9: __ccgo_ts + 8229, - 10: __ccgo_ts + 8229, - 11: __ccgo_ts + 24909, - 12: __ccgo_ts + 24915, - 13: __ccgo_ts + 1680, - 14: __ccgo_ts + 1680, - 15: __ccgo_ts + 1680, - 16: __ccgo_ts + 1680, + 0: __ccgo_ts + 1680, + 1: __ccgo_ts + 8043, + 2: __ccgo_ts + 8048, + 3: __ccgo_ts + 6402, + 4: __ccgo_ts + 6402, + 5: __ccgo_ts + 6397, + 6: __ccgo_ts + 6397, + 7: __ccgo_ts + 8354, + 8: __ccgo_ts + 8354, + 9: __ccgo_ts + 8354, + 10: __ccgo_ts + 8354, + 11: __ccgo_ts + 25032, + 12: __ccgo_ts + 25038, + 13: __ccgo_ts + 1694, + 14: __ccgo_ts + 1694, + 15: __ccgo_ts + 1694, + 16: __ccgo_ts + 1694, } // C documentation @@ -166080,6 +167705,38 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { _jsonAppendChar(tls, p, int8(',')) } +// C documentation +// +// /* c is a control character. Append the canonical JSON representation +// ** of that control character to p. +// ** +// ** This routine assumes that the output buffer has already been enlarged +// ** sufficiently to hold the worst-case encoding plus a nul terminator. +// */ +func _jsonAppendControlChar(tls *libc.TLS, p uintptr, c Tu8) { + if _aSpecial[c] != 0 { + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = int8('\\') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = _aSpecial[c] + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(2) + } else { + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = int8('\\') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = int8('u') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(2)))) = int8('0') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(3)))) = int8('0') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(4)))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 25045 + uintptr(int32(c)>>int32(4)))) + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(5)))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 25045 + uintptr(int32(c)&int32(0xf)))) + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(6) + } +} + +var _aSpecial = [32]int8{ + 8: int8('b'), + 9: int8('t'), + 10: int8('n'), + 12: int8('f'), + 13: int8('r'), +} + // C documentation // // /* Append the N-byte string in zIn to the end of the JsonString string @@ -166093,9 +167750,9 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { var c Tu8 var k Tu32 - var z, v10, v12, v14, v16, v18, v2, v20, v22, v24, v6, v8 uintptr - var v1, v11, v13, v15, v17, v19, v21, v23, v5, v7, v9 Tu64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v5, v6, v7, v8, v9 + var z, v10, v2, v4, v6, v8 uintptr + var v1, v3, v5, v7, v9 Tu64 + _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v2, v3, v4, v5, v6, v7, v8, v9 z = zIn if z == uintptr(0) { return @@ -166152,80 +167809,38 @@ func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { N -= k } c = *(*Tu8)(unsafe.Pointer(z)) - if !(int32(c) == int32('"') || int32(c) == int32('\\')) { - goto _3 - } - json_simple_escape: - ; - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { - return - } - v6 = p + 24 - v5 = *(*Tu64)(unsafe.Pointer(v6)) - *(*Tu64)(unsafe.Pointer(v6))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = int8('\\') - v8 = p + 24 - v7 = *(*Tu64)(unsafe.Pointer(v8)) - *(*Tu64)(unsafe.Pointer(v8))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = int8(c) - goto _4 - _3: - ; - if int32(c) == int32('\'') { - v10 = p + 24 - v9 = *(*Tu64)(unsafe.Pointer(v10)) - *(*Tu64)(unsafe.Pointer(v10))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = int8(c) - } else { - if _aSpecial[c] != 0 { - c = uint8(_aSpecial[c]) - goto json_simple_escape - } - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + if int32(c) == int32('"') || int32(c) == int32('\\') { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { return } - v12 = p + 24 - v11 = *(*Tu64)(unsafe.Pointer(v12)) - *(*Tu64)(unsafe.Pointer(v12))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v11))) = int8('\\') - v14 = p + 24 - v13 = *(*Tu64)(unsafe.Pointer(v14)) - *(*Tu64)(unsafe.Pointer(v14))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v13))) = int8('u') - v16 = p + 24 - v15 = *(*Tu64)(unsafe.Pointer(v16)) - *(*Tu64)(unsafe.Pointer(v16))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v15))) = int8('0') - v18 = p + 24 - v17 = *(*Tu64)(unsafe.Pointer(v18)) - *(*Tu64)(unsafe.Pointer(v18))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v17))) = int8('0') - v20 = p + 24 - v19 = *(*Tu64)(unsafe.Pointer(v20)) - *(*Tu64)(unsafe.Pointer(v20))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v19))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 24922 + uintptr(int32(c)>>int32(4)))) - v22 = p + 24 - v21 = *(*Tu64)(unsafe.Pointer(v22)) - *(*Tu64)(unsafe.Pointer(v22))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v21))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 24922 + uintptr(int32(c)&int32(0xf)))) + v4 = p + 24 + v3 = *(*Tu64)(unsafe.Pointer(v4)) + *(*Tu64)(unsafe.Pointer(v4))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v3))) = int8('\\') + v6 = p + 24 + v5 = *(*Tu64)(unsafe.Pointer(v6)) + *(*Tu64)(unsafe.Pointer(v6))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = int8(c) + } else { + if int32(c) == int32('\'') { + v8 = p + 24 + v7 = *(*Tu64)(unsafe.Pointer(v8)) + *(*Tu64)(unsafe.Pointer(v8))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = int8(c) + } else { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + return + } + _jsonAppendControlChar(tls, p, c) + } } - _4: - ; z++ N-- } - v24 = p + 24 - v23 = *(*Tu64)(unsafe.Pointer(v24)) - *(*Tu64)(unsafe.Pointer(v24))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v23))) = int8('"') -} - -var _aSpecial = [32]int8{ - 8: int8('b'), - 9: int8('t'), - 10: int8('n'), - 12: int8('f'), - 13: int8('r'), + v10 = p + 24 + v9 = *(*Tu64)(unsafe.Pointer(v10)) + *(*Tu64)(unsafe.Pointer(v10))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = int8('"') } // C documentation @@ -166243,9 +167858,9 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _, _, _, _ = n, n1, z, z1 switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_NULL): - _jsonAppendRawNZ(tls, p, __ccgo_ts+1666, uint32(4)) + _jsonAppendRawNZ(tls, p, __ccgo_ts+1680, uint32(4)) case int32(SQLITE_FLOAT): - _jsonPrintf(tls, int32(100), p, __ccgo_ts+15355, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) + _jsonPrintf(tls, int32(100), p, __ccgo_ts+15448, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) case int32(SQLITE_INTEGER): z = Xsqlite3_value_text(tls, pValue) n = uint32(Xsqlite3_value_bytes(tls, pValue)) @@ -166266,7 +167881,7 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _jsonTranslateBlobToText(tls, bp, uint32(0), p) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr) == 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24939, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25062, -int32(1)) (*TJsonString)(unsafe.Pointer(p)).FeErr = uint8(JSTRING_ERR) _jsonStringReset(tls, p) } @@ -166320,7 +167935,7 @@ func _jsonReturnString(tls *libc.TLS, p uintptr, pParse uintptr, ctx uintptr) { Xsqlite3_result_error_nomem(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr)&int32(JSTRING_MALFORMED) != 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24968, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25091, -int32(1)) } } } @@ -166567,6 +168182,7 @@ func _json5Whitespace(tls *libc.TLS, zIn uintptr) (r int32) { goto whitespace_done } } + goto whitespace_done whitespace_done: ; return n @@ -166602,8 +168218,8 @@ var _aNanInfName = [5]TNanInfName{ Fn: int8(3), FeType: int8(JSONB_FLOAT), FnRepl: int8(7), - FzMatch: __ccgo_ts + 24983, - FzRepl: __ccgo_ts + 24987, + FzMatch: __ccgo_ts + 25106, + FzRepl: __ccgo_ts + 25110, }, 1: { Fc1: int8('i'), @@ -166611,32 +168227,32 @@ var _aNanInfName = [5]TNanInfName{ Fn: int8(8), FeType: int8(JSONB_FLOAT), FnRepl: int8(7), - FzMatch: __ccgo_ts + 24995, - FzRepl: __ccgo_ts + 24987, + FzMatch: __ccgo_ts + 25118, + FzRepl: __ccgo_ts + 25110, }, 2: { Fc1: int8('n'), Fc2: int8('N'), Fn: int8(3), FnRepl: int8(4), - FzMatch: __ccgo_ts + 1671, - FzRepl: __ccgo_ts + 1666, + FzMatch: __ccgo_ts + 1685, + FzRepl: __ccgo_ts + 1680, }, 3: { Fc1: int8('q'), Fc2: int8('Q'), Fn: int8(4), FnRepl: int8(4), - FzMatch: __ccgo_ts + 25004, - FzRepl: __ccgo_ts + 1666, + FzMatch: __ccgo_ts + 25127, + FzRepl: __ccgo_ts + 1680, }, 4: { Fc1: int8('s'), Fc2: int8('S'), Fn: int8(4), FnRepl: int8(4), - FzMatch: __ccgo_ts + 25009, - FzRepl: __ccgo_ts + 1666, + FzMatch: __ccgo_ts + 25132, + FzRepl: __ccgo_ts + 1680, }, } @@ -166651,7 +168267,7 @@ func _jsonWrongNumArgs(tls *libc.TLS, pCtx uintptr, zFuncName uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25014, libc.VaList(bp+8, zFuncName)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25137, libc.VaList(bp+8, zFuncName)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) } @@ -167100,30 +168716,37 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept return j + uint32(1) } } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) <= int32(0x1f) { + /* Control characters in JSON5 string literals are ok */ + if int32(x) == int32(JSONB_TEXTJ) { + return j + uint32(1) + } } else { - if libc.Xstrchr(tls, __ccgo_ts+25057, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { - j++ + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { + return j + uint32(1) } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { - if j+uint32(5) >= k { - return j + uint32(1) - } - if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { - return j + uint32(1) - } + if libc.Xstrchr(tls, __ccgo_ts+25180, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { j++ } else { - if int32(x) != int32(JSONB_TEXT5) { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { + if j+uint32(5) >= k { + return j + uint32(1) + } + if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { + return j + uint32(1) + } + j++ } else { - *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) - szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) - if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + if int32(x) != int32(JSONB_TEXT5) { return j + uint32(1) + } else { + *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) + szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) + if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + return j + uint32(1) + } + j += szC - uint32(1) } - j += szC - uint32(1) } } } @@ -167219,6 +168842,7 @@ func _jsonTranslateTextToBlob(tls *libc.TLS, pParse uintptr, i Tu32) (r int32) { var _ /* op at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cDelim, iBlob, iStart, iThis, j, k, k1, nn, opcode, seenE, t, x, z, v40, v41, v43, v44, v46, v48 z = (*TJsonParse)(unsafe.Pointer(pParse)).FzJson + goto json_parse_restart json_parse_restart: ; switch int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))) { @@ -167373,6 +168997,7 @@ _1: } j = (*TJsonParse)(unsafe.Pointer(pParse)).FiErr + uint32(1) } + goto parse_object_value parse_object_value: ; x = _jsonTranslateTextToBlob(tls, pParse, j) @@ -167499,6 +169124,7 @@ _3: ; /* Parse string */ opcode = uint8(JSONB_TEXT) + goto parse_string parse_string: ; cDelim = *(*int8)(unsafe.Pointer(z + uintptr(i))) @@ -167547,9 +169173,14 @@ parse_string: } } else { if int32(c) <= int32(0x1f) { - /* Control characters are not allowed in strings */ - (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j - return -int32(1) + if int32(c) == 0 { + (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j + return -int32(1) + } + /* Control characters are not allowed in canonical JSON string + ** literals, but are allowed in JSON5 string literals. */ + opcode = uint8(JSONB_TEXT5) + (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) } else { if int32(c) == int32('"') { opcode = uint8(JSONB_TEXT5) @@ -167563,7 +169194,7 @@ parse_string: return int32(j + uint32(1)) _5: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7918, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8043, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_TRUE)) return int32(i + uint32(4)) } @@ -167571,7 +169202,7 @@ _5: return -int32(1) _6: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7923, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(5)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8048, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(5)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_FALSE)) return int32(i + uint32(5)) } @@ -167616,6 +169247,7 @@ _8: ; /* Parse number */ t = uint8(0x00) /* Bit 0x01: JSON5. Bit 0x02: FLOAT */ + goto parse_number parse_number: ; seenE = uint8(0) @@ -167647,14 +169279,14 @@ parse_number: /* JSON5 allows for "+Infinity" and "-Infinity" using exactly ** that case. SQLite also allows these in any case and it allows ** "+inf" and "-inf". */ - if (int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+24983, int32(3)) == 0 { + if (int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+25106, int32(3)) == 0 { (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) if int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == int32('-') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25066) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25189) } else { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25073) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25196) } - if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25079, int32(5)) == 0 { + if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25202, int32(5)) == 0 { v48 = int32(9) } else { v48 = int32(4) @@ -167693,6 +169325,7 @@ parse_number: } } } + goto parse_number_2 parse_number_2: ; j = i + uint32(1) @@ -167751,6 +169384,7 @@ parse_number_2: return -int32(1) } } + goto parse_number_finish parse_number_finish: ; if int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == int32('+') { @@ -167813,11 +169447,10 @@ _29: return -int32(1) _37: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1666, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1680, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) return int32(i + uint32(4)) } - /* fall-through into the default case that checks for NaN */ _38: ; c = *(*int8)(unsafe.Pointer(z + uintptr(i))) @@ -167837,7 +169470,7 @@ _38: goto _51 } if int32(_aNanInfName[k1].FeType) == int32(JSONB_FLOAT) { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25073) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25196) } else { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) } @@ -167882,7 +169515,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 i += _json5Whitespace(tls, zJson+uintptr(i)) if *(*int8)(unsafe.Pointer(zJson + uintptr(i))) != 0 { if pCtx != 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24968, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25091, -int32(1)) } _jsonParseReset(tls, pParse) return int32(1) @@ -167895,7 +169528,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 if (*TJsonParse)(unsafe.Pointer(pParse)).Foom != 0 { Xsqlite3_result_error_nomem(tls, pCtx) } else { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24968, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25091, -int32(1)) } } _jsonParseReset(tls, pParse) @@ -168058,15 +169691,15 @@ func _jsonTranslateBlobToText(tls *libc.TLS, pParse uintptr, i Tu32, pOut uintpt goto _16 _2: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1666, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1680, uint32(4)) return i + uint32(1) _3: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7918, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8043, uint32(4)) return i + uint32(1) _4: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7923, uint32(5)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8048, uint32(5)) return i + uint32(1) _6: ; @@ -168115,9 +169748,9 @@ _7: k++ } if bOverflow != 0 { - v19 = __ccgo_ts + 24987 + v19 = __ccgo_ts + 25110 } else { - v19 = __ccgo_ts + 11785 + v19 = __ccgo_ts + 11910 } _jsonPrintf(tls, int32(100), pOut, v19, libc.VaList(bp+16, u)) goto _16 @@ -168165,7 +169798,7 @@ _11: for sz2 > uint32(0) { k2 = uint32(0) for { - if !(k2 < sz2 && int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('\\') && int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('"')) { + if !(k2 < sz2 && (_jsonIsOk[uint8(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2))))] != 0 || int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) == int32('\''))) { break } goto _21 @@ -168182,7 +169815,16 @@ _11: sz2 -= k2 } if int32(*(*int8)(unsafe.Pointer(zIn2))) == int32('"') { - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25085, uint32(2)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25208, uint32(2)) + zIn2++ + sz2-- + continue + } + if int32(*(*int8)(unsafe.Pointer(zIn2))) <= int32(0x1f) { + if (*TJsonString)(unsafe.Pointer(pOut)).FnUsed+uint64(7) > (*TJsonString)(unsafe.Pointer(pOut)).FnAlloc && _jsonStringGrow(tls, pOut, uint32(7)) != 0 { + break + } + _jsonAppendControlChar(tls, pOut, uint8(*(*int8)(unsafe.Pointer(zIn2)))) zIn2++ sz2-- continue @@ -168196,7 +169838,7 @@ _11: case int32('\''): _jsonAppendChar(tls, pOut, int8('\'')) case int32('v'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25088, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25211, uint32(6)) case int32('x'): if sz2 < uint32(4) { p23 = pOut + 33 @@ -168204,12 +169846,12 @@ _11: sz2 = uint32(2) break } - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25095, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25218, uint32(4)) _jsonAppendRawNZ(tls, pOut, zIn2+2, uint32(2)) zIn2 += uintptr(2) sz2 -= uint32(2) case int32('0'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25100, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25223, uint32(6)) case int32('\r'): if sz2 > uint32(2) && int32(*(*int8)(unsafe.Pointer(zIn2 + 2))) == int32('\n') { zIn2++ @@ -168287,6 +169929,7 @@ _14: goto _16 _15: ; + goto malformed_jsonb malformed_jsonb: ; p29 = pOut + 33 @@ -168297,6 +169940,140 @@ _16: return i + n + *(*Tu32)(unsafe.Pointer(bp)) } +// C documentation +// +// /* Context for recursion of json_pretty() +// */ +type TJsonPretty = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty = TJsonPretty + +type TJsonPretty1 = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty1 = TJsonPretty1 + +// C documentation +// +// /* Append indentation to the pretty JSON under construction */ +func _jsonPrettyIndent(tls *libc.TLS, pPretty uintptr) { + var jj Tu32 + _ = jj + jj = uint32(0) + for { + if !(jj < (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent) { + break + } + _jsonAppendRaw(tls, (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut, (*TJsonPretty)(unsafe.Pointer(pPretty)).FzIndent, (*TJsonPretty)(unsafe.Pointer(pPretty)).FszIndent) + goto _1 + _1: + ; + jj++ + } +} + +// C documentation +// +// /* +// ** Translate the binary JSONB representation of JSON beginning at +// ** pParse->aBlob[i] into a JSON text string. Append the JSON +// ** text onto the end of pOut. Return the index in pParse->aBlob[] +// ** of the first byte past the end of the element that is translated. +// ** +// ** This is a variant of jsonTranslateBlobToText() that "pretty-prints" +// ** the output. Extra whitespace is inserted to make the JSON easier +// ** for humans to read. +// ** +// ** If an error is detected in the BLOB input, the pOut->eErr flag +// ** might get set to JSTRING_MALFORMED. But not all BLOB input errors +// ** are detected. So a malformed JSONB input might either result +// ** in an error, or in incorrect JSON. +// ** +// ** The pOut->eErr JSTRING_OOM flag is set on a OOM. +// */ +func _jsonTranslateBlobToPrettyText(tls *libc.TLS, pPretty uintptr, i Tu32) (r Tu32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var iEnd, j, n Tu32 + var pOut, pParse, p1, p2 uintptr + var _ /* sz at bp+0 */ Tu32 + _, _, _, _, _, _, _ = iEnd, j, n, pOut, pParse, p1, p2 + pParse = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpParse + pOut = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut + n = _jsonbPayloadSize(tls, pParse, i, bp) + if n == uint32(0) { + p1 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + return (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob + uint32(1) + } + switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { + case int32(JSONB_ARRAY): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, int8('[')) + if j < iEnd { + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25230, uint32(2)) + } + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, int8(']')) + i = iEnd + case int32(JSONB_OBJECT): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, int8('{')) + if j < iEnd { + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToText(tls, pParse, j, pOut) + if j > iEnd { + p2 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p2)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p2))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25233, uint32(2)) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25230, uint32(2)) + } + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, int8('}')) + i = iEnd + default: + i = _jsonTranslateBlobToText(tls, pParse, i, pOut) + break + } + return i +} + // C documentation // // /* Return true if the input pJson @@ -169014,7 +170791,7 @@ func _jsonReturnFromBlob(tls *libc.TLS, pParse uintptr, i Tu32, pCtx uintptr, te db = Xsqlite3_context_db_handle(tls, pCtx) n = _jsonbPayloadSize(tls, pParse, i, bp) if n == uint32(0) { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24968, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25091, -int32(1)) return } switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { @@ -169123,6 +170900,7 @@ _6: if *(*Tu32)(unsafe.Pointer(bp)) == uint32(0) { goto returnfromblob_malformed } + goto to_double to_double: ; z1 = _sqlite3DbStrNDup(tls, db, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(i+n), uint64(int32(*(*Tu32)(unsafe.Pointer(bp))))) @@ -169241,13 +171019,15 @@ _14: _15: ; return + goto returnfromblob_oom returnfromblob_oom: ; Xsqlite3_result_error_nomem(tls, pCtx) return + goto returnfromblob_malformed returnfromblob_malformed: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24968, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25091, -int32(1)) return } @@ -169288,7 +171068,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob = Xsqlite3_value_blob(tls, pArg) (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob = uint32(Xsqlite3_value_bytes(tls, pArg)) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24939, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25062, -int32(1)) return int32(1) } case int32(SQLITE_TEXT): @@ -169301,7 +171081,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FzJson = zJson (*TJsonParse)(unsafe.Pointer(pParse)).FnJson = nJson if _jsonConvertTextToBlob(tls, pParse, ctx) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24968, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25091, -int32(1)) _sqlite3DbFree(tls, (*TJsonParse)(unsafe.Pointer(pParse)).Fdb, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob) libc.Xmemset(tls, pParse, 0, uint64(72)) return int32(1) @@ -169320,10 +171100,10 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin return int32(1) } if int32(*(*int8)(unsafe.Pointer(z))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25073) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25196) } else { if int32(*(*int8)(unsafe.Pointer(z))) == int32('-') && int32(*(*int8)(unsafe.Pointer(z + 1))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25066) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25189) } else { _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(n), z) } @@ -169362,7 +171142,7 @@ func _jsonBadPathError(tls *libc.TLS, ctx uintptr, zPath uintptr) (r uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25107, libc.VaList(bp+8, zPath)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25236, libc.VaList(bp+8, zPath)) if ctx == uintptr(0) { return zMsg } @@ -169454,11 +171234,12 @@ func _jsonInsertIntoBlob(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr, e _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto jsonInsertIntoBlob_patherror jsonInsertIntoBlob_patherror: ; _jsonParseFree(tls, p) if rc == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24968, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25091, -int32(1)) } else { _jsonBadPathError(tls, ctx, zPath) } @@ -169542,6 +171323,7 @@ func _jsonParseFuncArg(tls *libc.TLS, ctx uintptr, pArg uintptr, flgs Tu32) (r u } } db = Xsqlite3_context_db_handle(tls, ctx) + goto rebuild_from_cache rebuild_from_cache: ; p = _sqlite3DbMallocZero(tls, db, uint64(72)) @@ -169631,6 +171413,7 @@ rebuild_from_cache: } } return p + goto json_pfa_malformed json_pfa_malformed: ; if flgs&uint32(JSON_KEEPERROR) != 0 { @@ -169638,9 +171421,10 @@ json_pfa_malformed: return p } else { _jsonParseFree(tls, p) - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24968, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25091, -int32(1)) return uintptr(0) } + goto json_pfa_oom json_pfa_oom: ; _jsonParseFree(tls, pFromCache) @@ -169772,7 +171556,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if int32(*(*int8)(unsafe.Pointer(zPath))) == int32('$') { v1 = zPath + uintptr(1) } else { - v1 = __ccgo_ts + 25125 + v1 = __ccgo_ts + 25254 } i = _jsonLookupStep(tls, p, uint32(0), v1, uint32(0)) if i >= uint32(JSON_LOOKUP_PATHERROR) { @@ -169782,7 +171566,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24968, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25091, -int32(1)) } } eErr = uint8(1) @@ -169800,25 +171584,6 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) _jsonParseFree(tls, p) } -// C documentation -// -// /* True if the string is all digits */ -func _jsonAllDigits(tls *libc.TLS, z uintptr, n int32) (r int32) { - var i int32 - _ = i - i = 0 - for { - if !(i < n && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))])&int32(0x04) != 0) { - break - } - goto _1 - _1: - ; - i++ - } - return libc.BoolInt32(i == n) -} - // C documentation // // /* True if the string is all alphanumerics and underscores */ @@ -169905,21 +171670,21 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { ** [NUMBER] ==> $[NUMBER] // Not PG. Purely for convenience */ _jsonStringInit(tls, bp, ctx) - if _jsonAllDigits(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25127, uint32(1)) + if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) == int32(SQLITE_INTEGER) { + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25256, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+5193, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+5257, uint32(2)) } else { if _jsonAllAlphanum(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1693, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1707, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { if int32(*(*int8)(unsafe.Pointer(zPath))) == int32('[') && nPath >= int32(3) && int32(*(*int8)(unsafe.Pointer(zPath + uintptr(nPath-int32(1))))) == int32(']') { _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25129, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25258, uint32(2)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25132, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25261, uint32(1)) } } } @@ -169955,11 +171720,11 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { goto json_extract_error /* Return NULL if not found */ } else { _jsonAppendSeparator(tls, bp) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1666, uint32(4)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1680, uint32(4)) } } else { if j == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24968, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25091, -int32(1)) goto json_extract_error } else { _jsonBadPathError(tls, ctx, zPath) @@ -169979,6 +171744,7 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } } + goto json_extract_error json_extract_error: ; _jsonStringReset(tls, bp) @@ -170226,7 +171992,7 @@ func _jsonPatchFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == int32(JSON_MERGE_OOM) { Xsqlite3_result_error_nomem(tls, ctx) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24968, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25091, -int32(1)) } } _jsonParseFree(tls, pPatch) @@ -170250,7 +172016,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { var _ /* jx at bp+0 */ TJsonString _, _, _ = i, n, z if argc&int32(1) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25134, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25263, -int32(1)) return } _jsonStringInit(tls, bp, ctx) @@ -170261,7 +172027,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { break } if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) != int32(SQLITE_TEXT) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25185, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25314, -int32(1)) _jsonStringReset(tls, bp) return } @@ -170333,7 +172099,7 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24968, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25091, -int32(1)) } } goto json_remove_done @@ -170346,9 +172112,11 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto json_remove_patherror json_remove_patherror: ; _jsonBadPathError(tls, ctx, zPath) + goto json_remove_done json_remove_done: ; _jsonParseFree(tls, p) @@ -170368,7 +172136,7 @@ func _jsonReplaceFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { return } if argc&int32(1) == 0 { - _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15828) + _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15921) return } _jsonInsertIntoBlob(tls, ctx, argc, argv, int32(JEDIT_REPL)) @@ -170399,9 +172167,9 @@ func _jsonSetFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { } if argc&int32(1) == 0 { if bIsSet != 0 { - v1 = __ccgo_ts + 25219 + v1 = __ccgo_ts + 25348 } else { - v1 = __ccgo_ts + 25223 + v1 = __ccgo_ts + 25352 } _jsonWrongNumArgs(tls, ctx, v1) return @@ -170449,7 +172217,7 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24968, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25091, -int32(1)) } } goto json_type_done @@ -170458,11 +172226,54 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { i = uint32(0) } Xsqlite3_result_text(tls, ctx, _jsonbType[int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(p)).FaBlob + uintptr(i))))&int32(0x0f)], -int32(1), libc.UintptrFromInt32(0)) + goto json_type_done json_type_done: ; _jsonParseFree(tls, p) } +// C documentation +// +// /* +// ** json_pretty(JSON) +// ** json_pretty(JSON, INDENT) +// ** +// ** Return text that is a pretty-printed rendering of the input JSON. +// ** If the argument is not valid JSON, return NULL. +// ** +// ** The INDENT argument is text that is used for indentation. If omitted, +// ** it defaults to four spaces (the same as PostgreSQL). +// */ +func _jsonPrettyFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { + bp := tls.Alloc(176) + defer tls.Free(176) + var v1 uintptr + var v2 bool + var _ /* s at bp+0 */ TJsonString + var _ /* x at bp+136 */ TJsonPretty + _, _ = v1, v2 /* Pretty printing context */ + libc.Xmemset(tls, bp+136, 0, uint64(32)) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse = _jsonParseFuncArg(tls, ctx, *(*uintptr)(unsafe.Pointer(argv)), uint32(0)) + if (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse == uintptr(0) { + return + } + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpOut = bp + _jsonStringInit(tls, bp, ctx) + if v2 = argc == int32(1); !v2 { + v1 = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = v1 + } + if v2 || v1 == uintptr(0) { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = __ccgo_ts + 25359 + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(4) + } else { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(libc.Xstrlen(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent)) + } + _jsonTranslateBlobToPrettyText(tls, bp+136, uint32(0)) + _jsonReturnString(tls, bp, uintptr(0), uintptr(0)) + _jsonParseFree(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse) +} + // C documentation // // /* @@ -170537,7 +172348,7 @@ func _jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if argc == int32(2) { f = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if f < int64(1) || f > int64(15) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25230, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25364, -int32(1)) return } flags = uint8(f & int64(0x0f)) @@ -170726,7 +172537,7 @@ func _jsonArrayCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25287, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25421, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -170875,7 +172686,7 @@ func _jsonObjectCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25290, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25424, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -170978,7 +172789,7 @@ func _jsonEachConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv _ = argv _ = argc _ = pAux - rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25293) + rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25427) if rc == SQLITE_OK { pNew = _sqlite3DbMallocZero(tls, db, uint64(32)) *(*uintptr)(unsafe.Pointer(ppVtab)) = pNew @@ -171112,7 +172923,7 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { var _ /* sz at bp+0 */ Tu32 _, _, _, _, _ = i, k, n, needQuote, z if int32((*TJsonEachCursor)(unsafe.Pointer(p)).FeType) == int32(JSONB_ARRAY) { - _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25376, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) + _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25510, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) } else { *(*Tu32)(unsafe.Pointer(bp)) = uint32(0) needQuote = 0 @@ -171138,9 +172949,9 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { } } if needQuote != 0 { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25383, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25517, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } else { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25391, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25525, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } } } @@ -171526,7 +173337,7 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a i = v5 (*TJsonEachCursor)(unsafe.Pointer(p)).FeType = uint8(0) (*TJsonEachCursor)(unsafe.Pointer(p)).FnRoot = uint32(1) - _jsonAppendRaw(tls, p+56, __ccgo_ts+25397, uint32(1)) + _jsonAppendRaw(tls, p+56, __ccgo_ts+25531, uint32(1)) } (*TJsonEachCursor)(unsafe.Pointer(p)).FnParent = uint32(0) n = _jsonbPayloadSize(tls, p+192, i, bp) @@ -171546,10 +173357,11 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent))).FiValue = i } return SQLITE_OK + goto json_each_malformed_input json_each_malformed_input: ; Xsqlite3_free(tls, (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg) - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24968, 0) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25091, 0) _jsonEachCursorReset(tls, p) if (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg != 0 { v6 = int32(SQLITE_ERROR) @@ -171603,183 +173415,193 @@ func init() { // ** Register JSON functions. // */ func _sqlite3RegisterJsonFunctions(tls *libc.TLS) { - _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2304)/libc.Uint64FromInt64(72))) + _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2448)/libc.Uint64FromInt64(72))) } -var _aJsonFunc = [32]TFuncDef{ +var _aJsonFunc = [34]TFuncDef{ 0: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25399, + FzName: __ccgo_ts + 25533, }, 1: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25404, + FzName: __ccgo_ts + 25538, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25410, + FzName: __ccgo_ts + 25544, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25421, + FzName: __ccgo_ts + 25555, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25433, + FzName: __ccgo_ts + 25567, }, 5: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25433, + FzName: __ccgo_ts + 25567, }, 6: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25451, + FzName: __ccgo_ts + 25585, }, 7: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25471, + FzName: __ccgo_ts + 25605, }, 8: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25484, + FzName: __ccgo_ts + 25618, }, 9: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_JSON) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25498, + FzName: __ccgo_ts + 25632, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_SQL) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25501, + FzName: __ccgo_ts + 25635, }, 11: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25505, + FzName: __ccgo_ts + 25639, }, 12: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25517, + FzName: __ccgo_ts + 25651, }, 13: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25530, + FzName: __ccgo_ts + 25664, }, 14: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25542, + FzName: __ccgo_ts + 25676, }, 15: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25555, + FzName: __ccgo_ts + 25689, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25566, + FzName: __ccgo_ts + 25700, }, 17: { FnArg: int8(1), - FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25578, + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25712, }, 18: { + FnArg: int8(2), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25712, + }, + 19: { + FnArg: int8(1), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25724, + }, + 20: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25589, + FzName: __ccgo_ts + 25735, }, - 19: { + 21: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25601, + FzName: __ccgo_ts + 25747, }, - 20: { + 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25614, + FzName: __ccgo_ts + 25760, }, - 21: { + 23: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25627, + FzName: __ccgo_ts + 25773, }, - 22: { + 24: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25641, + FzName: __ccgo_ts + 25787, }, - 23: { + 25: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25650, + FzName: __ccgo_ts + 25796, }, - 24: { + 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25660, + FzName: __ccgo_ts + 25806, }, - 25: { + 27: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25660, + FzName: __ccgo_ts + 25806, }, - 26: { + 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25670, + FzName: __ccgo_ts + 25816, }, - 27: { + 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25670, + FzName: __ccgo_ts + 25816, }, - 28: { + 30: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25681, + FzName: __ccgo_ts + 25827, }, - 29: { + 31: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25698, + FzName: __ccgo_ts + 25844, }, - 30: { + 32: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25716, + FzName: __ccgo_ts + 25862, }, - 31: { + 33: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25734, + FzName: __ccgo_ts + 25880, }, } @@ -171802,33 +173624,35 @@ func init() { *(*uintptr)(unsafe.Add(p, 1032)) = __ccgo_fp(_jsonObjectFunc) *(*uintptr)(unsafe.Add(p, 1104)) = __ccgo_fp(_jsonPatchFunc) *(*uintptr)(unsafe.Add(p, 1176)) = __ccgo_fp(_jsonPatchFunc) - *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonQuoteFunc) - *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2048)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2056)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2064)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2120)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2128)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2136)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonQuoteFunc) + *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2208)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2280)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2328)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2336)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2344)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2352)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2400)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2408)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2416)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2424)) = __ccgo_fp(_jsonGroupInverse) } // C documentation @@ -171860,11 +173684,11 @@ var _aMod = [2]struct { FpModule uintptr }{ 0: { - FzName: __ccgo_ts + 25753, + FzName: __ccgo_ts + 25899, FpModule: uintptr(unsafe.Pointer(&_jsonEachModule)), }, 1: { - FzName: __ccgo_ts + 25763, + FzName: __ccgo_ts + 25909, FpModule: uintptr(unsafe.Pointer(&_jsonTreeModule)), }, } @@ -172510,7 +174334,7 @@ func _nodeAcquire(tls *libc.TLS, pRtree uintptr, iNode Ti64, pParent uintptr, pp } } if (*TRtree)(unsafe.Pointer(pRtree)).FpNodeBlob == uintptr(0) { - rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25773, iNode, 0, pRtree+112) + rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25919, iNode, 0, pRtree+112) } if rc != 0 { *(*uintptr)(unsafe.Pointer(ppNode)) = uintptr(0) @@ -172815,7 +174639,7 @@ func _rtreeDestroy(tls *libc.TLS, pVtab uintptr) (r int32) { var rc int32 _, _, _ = pRtree, rc, zCreate pRtree = pVtab - zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25778, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25924, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if !(zCreate != 0) { rc = int32(SQLITE_NOMEM) } else { @@ -173732,7 +175556,7 @@ func _findLeafNode(tls *libc.TLS, pRtree uintptr, iRowid Ti64, ppLeaf uintptr, p func _deserializeGeometry(tls *libc.TLS, pValue uintptr, pCons uintptr) (r int32) { var pBlob, pInfo, pSrc uintptr _, _, _ = pBlob, pInfo, pSrc /* Callback information */ - pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25860) + pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+26006) if pSrc == uintptr(0) { return int32(SQLITE_ERROR) } @@ -173787,7 +175611,7 @@ func _rtreeFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintp iRowid = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) *(*Ti64)(unsafe.Pointer(bp + 24)) = 0 eType = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv))) - if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv))) == float64(iRowid) { + if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && 0 == _sqlite3IntFloatCompare(tls, iRowid, Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))) { rc = _findLeafNode(tls, pRtree, iRowid, bp+16, bp+24) } else { rc = SQLITE_OK @@ -174837,6 +176661,7 @@ func _SplitNode(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iHe rc = _nodeRelease(tls, pRtree, pLeft) pLeft = uintptr(0) } + goto splitnode_out splitnode_out: ; _nodeRelease(tls, pRtree, pRight) @@ -175266,7 +177091,7 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) var _ /* pStmt at bp+0 */ uintptr _, _, _, _, _, _ = rc, zCol, zCol1, zCol2, zSql, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25874, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26020, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if zSql != 0 { rc = Xsqlite3_prepare_v2(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, -int32(1), bp, uintptr(0)) } else { @@ -175276,11 +177101,11 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) if rc == SQLITE_OK { if iCol == 0 { zCol = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25894, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26040, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) } else { zCol1 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol) zCol2 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol+int32(1)) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25926, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26072, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) } } Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -175442,6 +177267,7 @@ func _rtreeUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pRow rc = Xsqlite3_reset(tls, pUp) } } + goto constraint constraint: ; _rtreeRelease(tls, pRtree) @@ -175493,7 +177319,7 @@ func _rtreeRename(tls *libc.TLS, pVtab uintptr, zNewName uintptr) (r int32) { _, _, _ = pRtree, rc, zSql pRtree = pVtab rc = int32(SQLITE_NOMEM) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25963, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26109, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) if zSql != 0 { _nodeBlobReset(tls, pRtree) rc = Xsqlite3_exec(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, uintptr(0), uintptr(0), uintptr(0)) @@ -175547,9 +177373,9 @@ func _rtreeQueryStat1(tls *libc.TLS, db uintptr, pRtree uintptr) (r int32) { var v2 int64 var _ /* p at bp+0 */ uintptr _, _, _, _, _, _ = nRow, rc, zFmt, zSql, v1, v2 - zFmt = __ccgo_ts + 26108 + zFmt = __ccgo_ts + 26254 nRow = int64(RTREE_MIN_ROWEST) - rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11614, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11739, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc != SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FnRowEst = int64(RTREE_DEFAULT_ROWEST) if rc == int32(SQLITE_ERROR) { @@ -175607,9 +177433,9 @@ func _rtreeShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName1 = [3]uintptr{ - 0: __ccgo_ts + 26164, - 1: __ccgo_ts + 5516, - 2: __ccgo_ts + 16726, + 0: __ccgo_ts + 26310, + 1: __ccgo_ts + 5580, + 2: __ccgo_ts + 16813, } var _rtreeModule = Tsqlite3_module{ @@ -175653,21 +177479,21 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref (*TRtree)(unsafe.Pointer(pRtree)).Fdb = db if isCreate != 0 { p = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26578, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26724, libc.VaList(bp+8, zDb, zPrefix)) ii = 0 for { if !(ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26640, libc.VaList(bp+8, ii)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26786, libc.VaList(bp+8, ii)) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26645, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26709, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26779, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26791, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26855, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26925, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) zCreate = Xsqlite3_str_finish(tls, p) if !(zCreate != 0) { return int32(SQLITE_NOMEM) @@ -175697,7 +177523,7 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } else { /* An UPSERT is very slightly slower than REPLACE, but it is needed ** if there are auxiliary columns */ - zFormat = __ccgo_ts + 26828 + zFormat = __ccgo_ts + 26974 } zSql = Xsqlite3_mprintf(tls, zFormat, libc.VaList(bp+8, zDb, zPrefix)) if zSql != 0 { @@ -175712,31 +177538,31 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref i++ } if (*TRtree)(unsafe.Pointer(pRtree)).FnAux != 0 && rc != int32(SQLITE_NOMEM) { - (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+26936, libc.VaList(bp+8, zDb, zPrefix)) + (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+27082, libc.VaList(bp+8, zDb, zPrefix)) if (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { p1 = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26981, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27127, libc.VaList(bp+8, zDb, zPrefix)) ii1 = 0 for { if !(ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } if ii1 != 0 { - Xsqlite3_str_append(tls, p1, __ccgo_ts+13122, int32(1)) + Xsqlite3_str_append(tls, p1, __ccgo_ts+13247, int32(1)) } if ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull) { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27008, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27154, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) } else { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27030, libc.VaList(bp+8, ii1, ii1+int32(2))) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27176, libc.VaList(bp+8, ii1, ii1+int32(2))) } goto _3 _3: ; ii1++ } - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27038, 0) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27184, 0) zSql1 = Xsqlite3_str_finish(tls, p1) if zSql1 == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -175750,14 +177576,14 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } var _azSql = [8]uintptr{ - 0: __ccgo_ts + 26169, - 1: __ccgo_ts + 26222, - 2: __ccgo_ts + 26267, - 3: __ccgo_ts + 26319, - 4: __ccgo_ts + 26373, - 5: __ccgo_ts + 26418, - 6: __ccgo_ts + 26476, - 7: __ccgo_ts + 26531, + 0: __ccgo_ts + 26315, + 1: __ccgo_ts + 26368, + 2: __ccgo_ts + 26413, + 3: __ccgo_ts + 26465, + 4: __ccgo_ts + 26519, + 5: __ccgo_ts + 26564, + 6: __ccgo_ts + 26622, + 7: __ccgo_ts + 26677, } // C documentation @@ -175815,7 +177641,7 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE _, _ = rc, zSql if isCreate != 0 { *(*int32)(unsafe.Pointer(bp)) = 0 - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27054, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27200, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) rc = _getIntFromStmt(tls, db, zSql, bp) if rc == SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = *(*int32)(unsafe.Pointer(bp)) - int32(64) @@ -175823,17 +177649,17 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = int32(4) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*int32(RTREE_MAXCELLS) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } } else { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27074, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27220, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) rc = _getIntFromStmt(tls, db, zSql, pRtree+32) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } else { if (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize < libc.Int32FromInt32(512)-libc.Int32FromInt32(64) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< libc.Int32FromInt32(RTREE_MAX_AUX_COLUMN)+libc.Int32FromInt32(3) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) return int32(SQLITE_ERROR) } Xsqlite3_vtab_config(tls, db, int32(SQLITE_VTAB_CONSTRAINT_SUPPORT), libc.VaList(bp+8, int32(1))) @@ -175910,13 +177736,13 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27317, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27463, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27323, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27469, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) ii = int32(4) for { if !(ii < argc) { @@ -175925,7 +177751,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt zArg = *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)) if int32(*(*int8)(unsafe.Pointer(zArg))) == int32('+') { (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27347, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27493, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) } else { if int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux) > 0 { break @@ -175939,19 +177765,19 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27374, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27520, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) } else { if ii < argc { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+8, aErrMsg[int32(4)])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+8, aErrMsg[int32(4)])) rc = int32(SQLITE_ERROR) } else { v3 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v3 if SQLITE_OK != v3 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } } @@ -175974,7 +177800,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } } if iErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+8, aErrMsg[iErr])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+8, aErrMsg[iErr])) goto rtreeInit_fail } (*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell = uint8(int32(8) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)*int32(4)) @@ -175985,11 +177811,12 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto rtreeInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto rtreeInit_fail rtreeInit_fail: ; if rc == SQLITE_OK { @@ -176000,8 +177827,8 @@ rtreeInit_fail: } var _azFormat = [2]uintptr{ - 0: __ccgo_ts + 27353, - 1: __ccgo_ts + 27364, + 0: __ccgo_ts + 27499, + 1: __ccgo_ts + 27510, } // C documentation @@ -176059,21 +177886,21 @@ func _rtreenode(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { } _nodeGetCell(tls, bp+40, bp, ii, bp+1008) if ii > 0 { - Xsqlite3_str_append(tls, pOut, __ccgo_ts+11234, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+11359, int32(1)) } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27377, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27523, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) jj = 0 for { if !(jj < int32((*(*TRtree)(unsafe.Pointer(bp + 40))).FnDim2)) { break } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27383, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27529, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) goto _2 _2: ; jj++ } - Xsqlite3_str_append(tls, pOut, __ccgo_ts+27387, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+27533, int32(1)) goto _1 _1: ; @@ -176100,7 +177927,7 @@ func _rtreedepth(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { _ = zBlob _ = nArg if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apArg))) != int32(SQLITE_BLOB) || Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(apArg))) < int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+27389, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+27535, -int32(1)) } else { zBlob = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(apArg))) if zBlob != 0 { @@ -176218,11 +178045,11 @@ func _rtreeCheckAppendMsg(tls *libc.TLS, pCheck uintptr, zFmt uintptr, va uintpt (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } else { if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport != 0 { - v1 = __ccgo_ts + 4235 + v1 = __ccgo_ts + 4299 } else { - v1 = __ccgo_ts + 1680 + v1 = __ccgo_ts + 1694 } - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27422, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27568, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport == uintptr(0) { (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } @@ -176256,7 +178083,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt _, _, _ = nNode, pNode, pRet pRet = uintptr(0) /* Return value */ if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode == uintptr(0) { - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27429, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27575, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) } if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { Xsqlite3_bind_int64(tls, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, int32(1), iNode) @@ -176273,7 +178100,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt } _rtreeCheckReset(tls, pCheck, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && pRet == uintptr(0) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27474, libc.VaList(bp+8, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27620, libc.VaList(bp+8, iNode)) } } return pRet @@ -176302,8 +178129,8 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i var rc int32 _, _, _, _, _, _ = azSql, ii, pStmt, rc, v1, v2 azSql = [2]uintptr{ - 0: __ccgo_ts + 27506, - 1: __ccgo_ts + 27560, + 0: __ccgo_ts + 27652, + 1: __ccgo_ts + 27706, } if *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) = _rtreeCheckPrepare(tls, pCheck, azSql[bLeaf], libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) @@ -176316,21 +178143,21 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i rc = Xsqlite3_step(tls, pStmt) if rc == int32(SQLITE_DONE) { if bLeaf != 0 { - v1 = __ccgo_ts + 27608 + v1 = __ccgo_ts + 27754 } else { - v1 = __ccgo_ts + 27616 + v1 = __ccgo_ts + 27762 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27625, libc.VaList(bp+8, iKey, iVal, v1)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27771, libc.VaList(bp+8, iKey, iVal, v1)) } else { if rc == int32(SQLITE_ROW) { ii = Xsqlite3_column_int64(tls, pStmt, 0) if ii != iVal { if bLeaf != 0 { - v2 = __ccgo_ts + 27608 + v2 = __ccgo_ts + 27754 } else { - v2 = __ccgo_ts + 27616 + v2 = __ccgo_ts + 27762 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27670, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27816, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) } } } @@ -176375,7 +178202,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 v2 = libc.BoolInt32(*(*TRtreeValue)(unsafe.Pointer(bp)) > *(*TRtreeValue)(unsafe.Pointer(bp + 4))) } if v2 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27728, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27874, libc.VaList(bp+24, i, iCell, iNode)) } if pParent != 0 { _readCoord(tls, pParent+uintptr(libc.Int32FromInt32(4)*libc.Int32FromInt32(2)*i), bp+8) @@ -176393,7 +178220,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 } } if v5 || v4 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27776, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27922, libc.VaList(bp+24, i, iCell, iNode)) } } goto _1 @@ -176426,19 +178253,19 @@ func _rtreeCheckNode(tls *libc.TLS, pCheck uintptr, iDepth int32, aParent uintpt aNode = _rtreeCheckGetNode(tls, pCheck, iNode, bp) if aNode != 0 { if *(*int32)(unsafe.Pointer(bp)) < int32(4) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27843, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27989, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) } else { /* Used to iterate through cells */ if aParent == uintptr(0) { iDepth = _readInt16(tls, aNode) if iDepth > int32(RTREE_MAX_DEPTH) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27877, libc.VaList(bp+16, iDepth)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28023, libc.VaList(bp+16, iDepth)) Xsqlite3_free(tls, aNode) return } } nCell = _readInt16(tls, aNode+2) if int32(4)+nCell*(int32(8)+(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnDim*int32(2)*int32(4)) > *(*int32)(unsafe.Pointer(bp)) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27907, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28053, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) } else { i = 0 for { @@ -176483,12 +178310,12 @@ func _rtreeCheckCount(tls *libc.TLS, pCheck uintptr, zTbl uintptr, nExpect Ti64) var pCount uintptr _, _ = nActual, pCount if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { - pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27962, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) + pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+28108, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) if pCount != 0 { if Xsqlite3_step(tls, pCount) == int32(SQLITE_ROW) { nActual = Xsqlite3_column_int64(tls, pCount, 0) if nActual != nExpect { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27993, libc.VaList(bp+8, zTbl, nExpect, nActual)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28139, libc.VaList(bp+8, zTbl, nExpect, nActual)) } } (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = Xsqlite3_finalize(tls, pCount) @@ -176517,7 +178344,7 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzDb = zDb (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzTab = zTab /* Find the number of auxiliary columns */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28060, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28206, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { nAux = Xsqlite3_column_count(tls, pStmt) - int32(2) Xsqlite3_finalize(tls, pStmt) @@ -176527,11 +178354,11 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe } } /* Find number of dimensions in the rtree table. */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25874, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+26020, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim = (Xsqlite3_column_count(tls, pStmt) - int32(1) - nAux) / int32(2) if (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim < int32(1) { - _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28088, 0) + _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28234, 0) } else { if int32(SQLITE_ROW) == Xsqlite3_step(tls, pStmt) { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FbInt = libc.BoolInt32(Xsqlite3_column_type(tls, pStmt, int32(1)) == int32(SQLITE_INTEGER)) @@ -176547,8 +178374,8 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe if (*(*TRtreeCheck)(unsafe.Pointer(bp))).Frc == SQLITE_OK { _rtreeCheckNode(tls, bp, 0, uintptr(0), int64(1)) } - _rtreeCheckCount(tls, bp, __ccgo_ts+28119, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) - _rtreeCheckCount(tls, bp, __ccgo_ts+28126, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28265, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28272, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) } /* Finalize SQL statements used by the integrity-check */ Xsqlite3_finalize(tls, (*(*TRtreeCheck)(unsafe.Pointer(bp))).FpGetNode) @@ -176575,7 +178402,7 @@ func _rtreeIntegrity(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zName uintpt _ = isQuick rc = _rtreeCheckTable(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, pzErr) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28134, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28280, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) if *(*uintptr)(unsafe.Pointer(pzErr)) == uintptr(0) { rc = int32(SQLITE_NOMEM) } @@ -176626,13 +178453,13 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { var _ /* zReport at bp+0 */ uintptr _, _, _, _ = rc, zDb, zTab, v1 if nArg != int32(1) && nArg != int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+28153, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+28299, -int32(1)) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zDb = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg))) if nArg == int32(1) { zTab = zDb - zDb = __ccgo_ts + 6617 + zDb = __ccgo_ts + 6681 } else { zTab = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8))) } @@ -176641,7 +178468,7 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(bp)) } else { - v1 = __ccgo_ts + 18493 + v1 = __ccgo_ts + 18580 } Xsqlite3_result_text(tls, ctx, v1, -int32(1), uintptr(-libc.Int32FromInt32(1))) } else { @@ -176974,6 +178801,7 @@ func _geopolyParseJson(tls *libc.TLS, z uintptr, pRc uintptr) (r uintptr) { rc = int32(SQLITE_ERROR) } } + goto parse_json_err parse_json_err: ; if pRc != 0 { @@ -177107,19 +178935,19 @@ func _geopolyJsonFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if p != 0 { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) - Xsqlite3_str_append(tls, x, __ccgo_ts+25127, int32(1)) + Xsqlite3_str_append(tls, x, __ccgo_ts+25256, int32(1)) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28204, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28350, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28215, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28361, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -177148,20 +178976,20 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) cSep = int8('\'') - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28226, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28372, 0) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28244, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28390, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) cSep = int8(' ') goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28252, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28398, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) i = int32(1) for { if !(i < argc) { @@ -177169,14 +178997,14 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if z != 0 && *(*int8)(unsafe.Pointer(z)) != 0 { - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28260, libc.VaList(bp+8, z)) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28406, libc.VaList(bp+8, z)) } goto _2 _2: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28264, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28410, 0) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -177481,6 +179309,7 @@ func _geopolyBBox(tls *libc.TLS, context uintptr, pPoly uintptr, aCoord uintptr, if !(aCoord == uintptr(0)) { goto _6 } + goto geopolyBboxFill geopolyBboxFill: ; pOut = Xsqlite3_realloc64(tls, p, libc.Uint64FromInt64(40)+libc.Uint64FromInt64(4)*libc.Uint64FromInt32(2)*uint64(libc.Int32FromInt32(4)-libc.Int32FromInt32(4))) @@ -177584,8 +179413,8 @@ func _geopolyBBoxStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if pBBox == uintptr(0) { return } - if (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit == 0 { - (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit = int32(1) + if libc.AtomicLoadPInt32(pBBox) == 0 { + libc.AtomicStorePInt32(pBBox, int32(1)) libc.Xmemcpy(tls, pBBox+4, bp, libc.Uint64FromInt64(4)*libc.Uint64FromInt32(4)) } else { if *(*TRtreeValue)(unsafe.Pointer(bp)) < *(*TRtreeValue)(unsafe.Pointer(pBBox + 4)) { @@ -178212,6 +180041,7 @@ func _geopolyOverlap(tls *libc.TLS, p1 uintptr, p2 uintptr) (r int32) { } } } + goto geopolyOverlapDone geopolyOverlapDone: ; Xsqlite3_free(tls, p) @@ -178303,13 +180133,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27317, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27463, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28277, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28423, 0) (*TRtree)(unsafe.Pointer(pRtree)).FnAux = uint8(1) /* Add one for _shape */ (*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull = uint8(1) /* The _shape column is always not-null */ ii = int32(3) @@ -178318,13 +180148,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint break } (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28299, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28445, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27374, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27520, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) @@ -178332,7 +180162,7 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint v2 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v2 if SQLITE_OK != v2 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } Xsqlite3_free(tls, zSql) @@ -178347,11 +180177,12 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto geopolyInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto geopolyInit_fail geopolyInit_fail: ; if rc == SQLITE_OK { @@ -178500,6 +180331,7 @@ func _geopolyFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uin *(*int32)(unsafe.Pointer(bp + 8)) = _rtreeStepToLeaf(tls, pCsr) } } + goto geopoly_filter_end geopoly_filter_end: ; _nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp))) @@ -178557,7 +180389,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iRowidTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(1) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16726 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16813 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).Fomit = uint8(1) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(30) @@ -178567,7 +180399,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iFuncTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = idxNum - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28303 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28449 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).Fomit = uint8(0) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(300) @@ -178575,7 +180407,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { return SQLITE_OK } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(4) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28309 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28455 (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(3e+06) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(100000) return SQLITE_OK @@ -178695,7 +180527,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR _geopolyBBox(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(aData + 2*8)), bp+8+8, bp) if *(*int32)(unsafe.Pointer(bp)) != 0 { if *(*int32)(unsafe.Pointer(bp)) == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28318, 0) + (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28464, 0) } goto geopoly_update_end } @@ -178782,6 +180614,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, pUp) } } + goto geopoly_update_end geopoly_update_end: ; _rtreeRelease(tls, pRtree) @@ -178797,12 +180630,12 @@ geopoly_update_end: func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28358) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28504) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28374) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28520) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) @@ -178873,7 +180706,7 @@ func _sqlite3_geopoly_init(tls *libc.TLS, db uintptr) (r int32) { i++ } if rc == SQLITE_OK { - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28551, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28697, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) } return rc } @@ -178887,61 +180720,61 @@ var _aFunc = [12]struct { 0: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28389, + FzName: __ccgo_ts + 28535, }, 1: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28402, + FzName: __ccgo_ts + 28548, }, 2: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28415, + FzName: __ccgo_ts + 28561, }, 3: { FnArg: int8(-int32(1)), FbPure: uint8(1), - FzName: __ccgo_ts + 28428, + FzName: __ccgo_ts + 28574, }, 4: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28374, + FzName: __ccgo_ts + 28520, }, 5: { FnArg: int8(3), FbPure: uint8(1), - FzName: __ccgo_ts + 28440, + FzName: __ccgo_ts + 28586, }, 6: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28358, + FzName: __ccgo_ts + 28504, }, 7: { FnArg: int8(1), - FzName: __ccgo_ts + 28463, + FzName: __ccgo_ts + 28609, }, 8: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28477, + FzName: __ccgo_ts + 28623, }, 9: { FnArg: int8(7), FbPure: uint8(1), - FzName: __ccgo_ts + 28490, + FzName: __ccgo_ts + 28636, }, 10: { FnArg: int8(4), FbPure: uint8(1), - FzName: __ccgo_ts + 28504, + FzName: __ccgo_ts + 28650, }, 11: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28520, + FzName: __ccgo_ts + 28666, }, } @@ -178967,7 +180800,7 @@ var _aAgg = [1]struct { FzName uintptr }{ 0: { - FzName: __ccgo_ts + 28532, + FzName: __ccgo_ts + 28678, }, } @@ -178992,20 +180825,20 @@ func _sqlite3RtreeInit(tls *libc.TLS, db uintptr) (r int32) { var rc, utf8 int32 _, _, _, _ = c, c1, rc, utf8 utf8 = int32(SQLITE_UTF8) - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28559, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28705, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28569, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28715, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28580, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28726, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { c = libc.UintptrFromInt32(RTREE_COORD_REAL32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28303, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28449, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) } if rc == SQLITE_OK { c1 = libc.UintptrFromInt32(RTREE_COORD_INT32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28591, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28737, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) } if rc == SQLITE_OK { rc = _sqlite3_geopoly_init(tls, db) @@ -179107,7 +180940,7 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { Xsqlite3_result_error_nomem(tls, ctx) _rtreeMatchArgFree(tls, pBlob) } else { - Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25860, __ccgo_fp(_rtreeMatchArgFree)) + Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+26006, __ccgo_fp(_rtreeMatchArgFree)) } } } @@ -180324,7 +182157,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt /* Figure out the size of the output */ nOut = _rbuDeltaOutputSize(tls, aDelta, nDelta) if nOut < 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+28601, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28747, -int32(1)) return } aOut = Xsqlite3_malloc(tls, nOut+int32(1)) @@ -180334,7 +182167,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt nOut2 = _rbuDeltaApply(tls, aOrig, nOrig, aDelta, nDelta, aOut) if nOut2 != nOut { Xsqlite3_free(tls, aOut) - Xsqlite3_result_error(tls, context, __ccgo_ts+28601, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28747, -int32(1)) } else { Xsqlite3_result_blob(tls, context, aOut, nOut, __ccgo_fp(Xsqlite3_free)) } @@ -180360,7 +182193,7 @@ func _prepareAndCollectError(tls *libc.TLS, db uintptr, ppStmt uintptr, pzErrmsg _ = rc rc = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), ppStmt, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) } return rc @@ -180383,7 +182216,7 @@ func _resetAndCollectError(tls *libc.TLS, pStmt uintptr, pzErrmsg uintptr) (r in _ = rc rc = Xsqlite3_reset(tls, pStmt) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) } return rc } @@ -180515,7 +182348,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { /* Free any SQLite statements used while processing the previous object */ _rbuObjIterClearStatements(tls, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28622, uintptr(0), uintptr(0), p+64) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28768, uintptr(0), uintptr(0), p+64) } if rc == SQLITE_OK { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 { @@ -180525,6 +182358,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { if rc != int32(SQLITE_ROW) { rc = _resetAndCollectError(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, p+64) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = uintptr(0) + (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = uintptr(0) } else { (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, 0) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, int32(1)) @@ -180603,7 +182437,7 @@ func _rbuTargetNameFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { Xsqlite3_result_text(tls, pCtx, zIn, -int32(1), libc.UintptrFromInt32(0)) } } else { - if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25773, zIn, uint64(4)) == 0 { + if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25919, zIn, uint64(4)) == 0 { i = int32(4) for { if !(int32(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))) <= int32('9')) { @@ -180640,13 +182474,13 @@ func _rbuObjIterFirst(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { _, _ = rc, v1 libc.Xmemset(tls, pIter, 0, uint64(192)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 28793 + v1 = __ccgo_ts + 28939 } else { - v1 = __ccgo_ts + 1680 + v1 = __ccgo_ts + 1694 } - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+28834, libc.VaList(bp+8, v1))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+28980, libc.VaList(bp+8, v1))) if rc == SQLITE_OK { - rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+28984) + rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+29130) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup = int32(1) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -180813,7 +182647,7 @@ func _rbuFinalize(tls *libc.TLS, p uintptr, pStmt uintptr) { rc = Xsqlite3_finalize(tls, pStmt) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && rc != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } @@ -180874,7 +182708,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu *(*[4]uintptr)(unsafe.Pointer(bp)) = [4]uintptr{} *(*int32)(unsafe.Pointer(peType)) = RBU_PK_NOTABLE *(*int32)(unsafe.Pointer(piPk)) = 0 - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29109, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29255, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK || Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0]) != int32(SQLITE_ROW) { /* Either an error, or no such table. */ goto rbuTableType_end @@ -180884,7 +182718,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } *(*int32)(unsafe.Pointer(piTnum)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0], int32(1)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29228, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29374, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { goto rbuTableType_end } @@ -180892,7 +182726,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu zOrig = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(3)) zIdx = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(1)) if zOrig != 0 && zIdx != 0 && int32(*(*Tu8)(unsafe.Pointer(zOrig))) == int32('p') { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29249, libc.VaList(bp+40, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29395, libc.VaList(bp+40, zIdx))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)]) == int32(SQLITE_ROW) { *(*int32)(unsafe.Pointer(piPk)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)], 0) @@ -180904,7 +182738,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29300, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29446, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { for Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)]) == int32(SQLITE_ROW) { if Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)], int32(5)) > 0 { @@ -180914,6 +182748,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu } *(*int32)(unsafe.Pointer(peType)) = int32(RBU_PK_NONE) } + goto rbuTableType_end rbuTableType_end: ; i = uint32(0) @@ -180947,7 +182782,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { bIndex = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { libc.Xmemcpy(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk, uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29321, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29467, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FnIndex = 0 for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -180960,7 +182795,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { if bPartial != 0 { libc.Xmemset(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, int32(0x01), uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29349, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29495, libc.VaList(bp+24, zIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) if iCid >= 0 { @@ -181013,7 +182848,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 _rbuTableType(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, pIter+72, bp+8, pIter+108) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NOTABLE { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+19936, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+20068, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc @@ -181024,7 +182859,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 /* Populate the azTblCol[] and nTblCol variables based on the columns ** of the input table. Ignore any input table columns that begin with ** "rbu_". */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29378, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29524, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { nCol = Xsqlite3_column_count(tls, *(*uintptr)(unsafe.Pointer(bp))) _rbuAllocateIterArrays(tls, p, pIter, nCol) @@ -181035,7 +182870,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 break } zName = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), i) - if Xsqlite3_strnicmp(tls, __ccgo_ts+29397, zName, int32(4)) != 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+29543, zName, int32(4)) != 0 { zCopy = _rbuStrndup(tls, zName, p+56) *(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)*4)) = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol v3 = pIter + 16 @@ -181043,7 +182878,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 *(*int32)(unsafe.Pointer(v3))++ *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(v2)*8)) = zCopy } else { - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29402, zName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29548, zName) { bRbuRowid = int32(1) } } @@ -181057,17 +182892,17 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && bRbuRowid != libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) if bRbuRowid != 0 { - v4 = __ccgo_ts + 29412 + v4 = __ccgo_ts + 29558 } else { - v4 = __ccgo_ts + 29425 + v4 = __ccgo_ts + 29571 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29434, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29580, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) } /* Check that all non-HIDDEN columns in the destination table are also ** present in the input table. Populate the abTblPk[], azTblType[] and ** aiTblOrder[] arrays at the same time. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29609, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zName1 = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -181089,7 +182924,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 } if i == (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29485, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29631, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) } else { iPk = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) bNotNull = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) @@ -181128,15 +182963,15 @@ func _rbuObjIterGetCollist(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) var z, zList, zSep uintptr _, _, _, _ = i, z, zList, zSep zList = uintptr(0) - zSep = __ccgo_ts + 1680 + zSep = __ccgo_ts + 1694 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } z = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+29512, libc.VaList(bp+8, zList, zSep, z)) - zSep = __ccgo_ts + 15022 + zList = _rbuMPrintf(tls, p, __ccgo_ts+29658, libc.VaList(bp+8, zList, zSep, z)) + zSep = __ccgo_ts + 15115 goto _1 _1: ; @@ -181161,7 +182996,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, _, _, _, _, _ = i, iPk, zCol, zRet, zSep iPk = int32(1) zRet = uintptr(0) - zSep = __ccgo_ts + 1680 + zSep = __ccgo_ts + 1694 for int32(1) != 0 { i = 0 for { @@ -181170,7 +183005,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, } if int32(*(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == iPk { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29521, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29667, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) zSep = zSeparator break } @@ -181218,21 +183053,21 @@ func _rbuVacuumTableStart(tls *libc.TLS, p uintptr, pIter uintptr, bRowid int32, *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zRet = uintptr(0) if bRowid != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29534, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29680, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iMax = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29566, libc.VaList(bp+16, iMax)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29712, libc.VaList(bp+16, iMax)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1680, __ccgo_ts+15022, __ccgo_ts+29589) - zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29595, __ccgo_ts+29602, __ccgo_ts+5138) - zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1680, __ccgo_ts+15022, __ccgo_ts+1680) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1694, __ccgo_ts+15115, __ccgo_ts+29735) + zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29741, __ccgo_ts+29748, __ccgo_ts+5202) + zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1694, __ccgo_ts+15115, __ccgo_ts+1694) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29610, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29756, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zVal = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29652, libc.VaList(bp+16, zList, zVal)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29798, libc.VaList(bp+16, zList, zVal)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } @@ -181281,10 +183116,10 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { zVector = uintptr(0) zRet = uintptr(0) bFailed = 0 - zSep = __ccgo_ts + 1680 + zSep = __ccgo_ts + 1694 iCol = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29349, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29495, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(4)) @@ -181306,15 +183141,15 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { - zCol = __ccgo_ts + 29672 + zCol = __ccgo_ts + 29818 } } else { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) } - zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29680, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29701, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) - zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29737, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) - zSep = __ccgo_ts + 15022 + zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29826, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29847, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) + zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29883, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) + zSep = __ccgo_ts + 15115 iCol++ } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) @@ -181323,9 +183158,9 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29764, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29910, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - zSep = __ccgo_ts + 1680 + zSep = __ccgo_ts + 1694 iCol = 0 for { if !(iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol) { @@ -181340,19 +183175,20 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { break } } - zVector = _rbuMPrintf(tls, p, __ccgo_ts+29812, libc.VaList(bp+24, zVector, zSep, zQuoted)) - zSep = __ccgo_ts + 15022 + zVector = _rbuMPrintf(tls, p, __ccgo_ts+29958, libc.VaList(bp+24, zVector, zSep, zQuoted)) + zSep = __ccgo_ts + 15115 goto _2 _2: ; iCol++ } if !(bFailed != 0) { - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29819, libc.VaList(bp+24, zLhs, zVector)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29965, libc.VaList(bp+24, zLhs, zVector)) } } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } + goto index_start_out index_start_out: ; Xsqlite3_free(tls, zOrder) @@ -181401,11 +183237,11 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zImpPK = uintptr(0) /* String to return via *pzImposterPK */ zWhere = uintptr(0) /* String to return via *pzWhere */ nBind = 0 /* Value to return via *pnBind */ - zCom = __ccgo_ts + 1680 /* Set to ", " later on */ - zAnd = __ccgo_ts + 1680 /* Set to " AND " later on */ + zCom = __ccgo_ts + 1694 /* Set to ", " later on */ + zAnd = __ccgo_ts + 1694 /* Set to " AND " later on */ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_xinfo = ? */ if rc == SQLITE_OK { - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29349, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29495, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -181414,8 +183250,8 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = uintptr(0) if iCid == -int32(2) { iSeq = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29831, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) - zType = __ccgo_ts + 1680 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29977, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) + zType = __ccgo_ts + 1694 } else { if iCid < 0 { /* An integer primary key. If the table has an explicit IPK, use @@ -181434,9 +183270,9 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - zCol = __ccgo_ts + 29672 + zCol = __ccgo_ts + 29818 } else { - zCol = __ccgo_ts + 29402 + zCol = __ccgo_ts + 29548 } } zType = __ccgo_ts + 1168 @@ -181444,24 +183280,24 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) zType = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)) } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29853, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29999, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) } if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbUnique == 0 || Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) != 0 { if bDesc != 0 { - v2 = __ccgo_ts + 29589 + v2 = __ccgo_ts + 29735 } else { - v2 = __ccgo_ts + 1680 + v2 = __ccgo_ts + 1694 } zOrder = v2 - zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29873, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) + zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+30019, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) } - zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+29894, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) - zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+29927, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) + zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+30040, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) + zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+30073, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) if zRet == uintptr(0) || zImpPK == uintptr(0) || zImpCols == uintptr(0) || zWhere == uintptr(0) { rc = int32(SQLITE_NOMEM) } - zCom = __ccgo_ts + 15022 - zAnd = __ccgo_ts + 22045 + zCom = __ccgo_ts + 15115 + zAnd = __ccgo_ts + 22190 nBind++ } rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -181507,7 +183343,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr _, _, _, _ = i, zCol, zList, zS zList = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zS = __ccgo_ts + 1680 + zS = __ccgo_ts + 1694 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -181515,11 +183351,11 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed + uintptr(i))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29951, libc.VaList(bp+8, zList, zS, zObj, zCol)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30097, libc.VaList(bp+8, zList, zS, zObj, zCol)) } else { - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29963, libc.VaList(bp+8, zList, zS)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30109, libc.VaList(bp+8, zList, zS)) } - zS = __ccgo_ts + 15022 + zS = __ccgo_ts + 15115 if zList == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) break @@ -181531,7 +183367,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } /* For a table with implicit rowids, append "old._rowid_" to the list. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29972, libc.VaList(bp+8, zList, zObj)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30118, libc.VaList(bp+8, zList, zObj)) } } return zList @@ -181557,27 +183393,27 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _ = i, i1, zCol, zList, zSep, zSep1 zList = uintptr(0) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29987, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30133, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - zSep = __ccgo_ts + 1680 + zSep = __ccgo_ts + 1694 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30001, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) - zSep = __ccgo_ts + 22045 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30147, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) + zSep = __ccgo_ts + 22190 } goto _1 _1: ; i++ } - zList = _rbuMPrintf(tls, p, __ccgo_ts+30013, libc.VaList(bp+8, zList)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30159, libc.VaList(bp+8, zList)) } else { - zSep1 = __ccgo_ts + 1680 + zSep1 = __ccgo_ts + 1694 i1 = 0 for { if !(i1 < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -181585,8 +183421,8 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i1))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i1)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+30063, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) - zSep1 = __ccgo_ts + 22045 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30209, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) + zSep1 = __ccgo_ts + 22190 } goto _2 _2: @@ -181609,7 +183445,7 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { // */ func _rbuBadControlError(tls *libc.TLS, p uintptr) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30076, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30222, 0) } // C documentation @@ -181643,7 +183479,7 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt if int32(libc.Xstrlen(tls, zMask)) != (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { _rbuBadControlError(tls, p) } else { - zSep = __ccgo_ts + 1680 + zSep = __ccgo_ts + 1694 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -181651,16 +183487,16 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt } c = *(*int8)(unsafe.Pointer(zMask + uintptr(*(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(i)*4))))) if int32(c) == int32('x') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30063, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 15022 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30209, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15115 } else { if int32(c) == int32('d') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30102, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 15022 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30248, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15115 } else { if int32(c) == int32('f') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30132, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 15022 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30278, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15115 } } } @@ -181744,16 +183580,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _, _ = z, zCol, zDesc, zIdx, zOrig, zSep, v1 z = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zSep = __ccgo_ts + 30169 + zSep = __ccgo_ts + 30315 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_list = (pIter->zTbl) */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA index_xinfo = */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29321, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29467, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zOrig = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) - if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16614) == 0 { + if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16701) == 0 { zIdx = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29349, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29495, libc.VaList(bp+24, zIdx))) } break } @@ -181764,16 +183600,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { /* int iCid = sqlite3_column_int(pXInfo, 0); */ zCol = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(2)) if Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) != 0 { - v1 = __ccgo_ts + 29589 + v1 = __ccgo_ts + 29735 } else { - v1 = __ccgo_ts + 1680 + v1 = __ccgo_ts + 1694 } zDesc = v1 - z = _rbuMPrintf(tls, p, __ccgo_ts+30182, libc.VaList(bp+24, z, zSep, zCol, zDesc)) - zSep = __ccgo_ts + 15022 + z = _rbuMPrintf(tls, p, __ccgo_ts+30328, libc.VaList(bp+24, z, zSep, zCol, zDesc)) + zSep = __ccgo_ts + 15115 } } - z = _rbuMPrintf(tls, p, __ccgo_ts+30193, libc.VaList(bp+24, z)) + z = _rbuMPrintf(tls, p, __ccgo_ts+30339, libc.VaList(bp+24, z)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } return z @@ -181813,13 +183649,13 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* SELECT name ... WHERE rootpage = $tnum */ zIdx = uintptr(0) /* Name of PK index */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA main.index_xinfo = $zIdx */ - zComma = __ccgo_ts + 1680 + zComma = __ccgo_ts + 1694 zCols = uintptr(0) /* Used to build up list of table cols */ zPk = uintptr(0) /* Used to build up table PK declaration */ /* Figure out the name of the primary key index for the current table. ** This is needed for the argument to "PRAGMA index_xinfo". Set ** zIdx to point to a nul-terminated string containing this name. */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30197) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30343) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), tnum) if int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -181827,7 +183663,7 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { } } if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29349, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29495, libc.VaList(bp+24, zIdx))) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { @@ -181836,21 +183672,21 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) bDesc = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(4)) - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30247, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30393, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) if bDesc != 0 { - v1 = __ccgo_ts + 29589 + v1 = __ccgo_ts + 29735 } else { - v1 = __ccgo_ts + 1680 + v1 = __ccgo_ts + 1694 } - zPk = _rbuMPrintf(tls, p, __ccgo_ts+30269, libc.VaList(bp+24, zPk, zComma, iCid, v1)) - zComma = __ccgo_ts + 15022 + zPk = _rbuMPrintf(tls, p, __ccgo_ts+30415, libc.VaList(bp+24, zPk, zComma, iCid, v1)) + zComma = __ccgo_ts + 15115 } } - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30279, libc.VaList(bp+24, zCols)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30425, libc.VaList(bp+24, zCols)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6617, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30294, libc.VaList(bp+24, zCols, zPk)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6617, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6681, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30440, libc.VaList(bp+24, zCols, zPk)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6681, 0, 0)) } } @@ -181885,30 +183721,30 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { _, _, _, _, _, _, _, _, _ = iCol, tnum, zCol, zComma, zPk, zPk1, zSql, v2, v3 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { tnum = (*TRbuObjIter)(unsafe.Pointer(pIter)).FiTnum - zComma = __ccgo_ts + 1680 + zComma = __ccgo_ts + 1694 zSql = uintptr(0) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6617, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6681, 0, int32(1))) iCol = 0 for { if !((*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } - zPk = __ccgo_ts + 1680 + zPk = __ccgo_ts + 1694 zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCol)*8)) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6617, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6681, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_IPK) && *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(iCol))) != 0 { /* If the target table column is an "INTEGER PRIMARY KEY", add ** "PRIMARY KEY" to the imposter table column declaration. */ - zPk = __ccgo_ts + 30356 + zPk = __ccgo_ts + 30502 } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iCol))) != 0 { - v2 = __ccgo_ts + 30369 + v2 = __ccgo_ts + 30515 } else { - v2 = __ccgo_ts + 1680 + v2 = __ccgo_ts + 1694 } - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30379, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) - zComma = __ccgo_ts + 15022 + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30525, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) + zComma = __ccgo_ts + 15115 goto _1 _1: ; @@ -181917,17 +183753,17 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { zPk1 = _rbuWithoutRowidPK(tls, p, pIter) if zPk1 != 0 { - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30406, libc.VaList(bp+16, zSql, zPk1)) + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30552, libc.VaList(bp+16, zSql, zPk1)) } } - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6617, int32(1), tnum)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6681, int32(1), tnum)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { - v3 = __ccgo_ts + 30413 + v3 = __ccgo_ts + 30559 } else { - v3 = __ccgo_ts + 1680 + v3 = __ccgo_ts + 1694 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30428, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6617, 0, 0)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30574, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6681, 0, 0)) } } @@ -181953,7 +183789,7 @@ func _rbuObjIterPrepareTmpInsert(tls *libc.TLS, p uintptr, pIter uintptr, zColli bRbuRowid = libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) zBind = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1)+bRbuRowid) if zBind != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30460, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30606, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) } } @@ -181999,7 +183835,7 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt *(*int32)(unsafe.Pointer(bp + 8)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc zRet = uintptr(0) if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30517) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30663) } if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3_bind_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx, -int32(1), libc.UintptrFromInt32(0)) @@ -182168,7 +184004,7 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zIdx = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx zLimit = uintptr(0) if nOffset != 0 { - zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30583, libc.VaList(bp+40, nOffset)) + zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30729, libc.VaList(bp+40, nOffset)) if !(zLimit != 0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } @@ -182185,18 +184021,18 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zCollist = _rbuObjIterGetIndexCols(tls, p, pIter, bp, bp+8, bp+16, bp+24) zBind = _rbuObjIterGetBindlist(tls, p, *(*int32)(unsafe.Pointer(bp + 24))) /* Create the imposter table used to write to this index. */ - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6617, 0, int32(1))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6617, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30603, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6617, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6681, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6681, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30749, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6681, 0, 0)) /* Create the statement to insert index entries */ (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = *(*int32)(unsafe.Pointer(bp + 24)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30668, libc.VaList(bp+40, zTbl, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30814, libc.VaList(bp+40, zTbl, zBind))) } /* And to delete index entries */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30704, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30850, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) } /* Create the SELECT statement to read keys in sorted order */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -182211,26 +184047,26 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } if zStart != 0 { if zPart != 0 { - v2 = __ccgo_ts + 30738 + v2 = __ccgo_ts + 30884 } else { - v2 = __ccgo_ts + 30742 + v2 = __ccgo_ts + 30888 } v1 = v2 } else { - v1 = __ccgo_ts + 1680 + v1 = __ccgo_ts + 1694 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30748, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30894, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) Xsqlite3_free(tls, zStart) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30809, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30955, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) } else { if zPart != 0 { - v3 = __ccgo_ts + 30738 + v3 = __ccgo_ts + 30884 } else { - v3 = __ccgo_ts + 30742 + v3 = __ccgo_ts + 30888 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30870, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+31016, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -182249,62 +184085,62 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zTbl1 = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl /* Imposter table name */ zBindings = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+bRbuRowid) zWhere1 = _rbuObjIterGetWhere(tls, p, pIter) - zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6628) - zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6624) + zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6692) + zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6688) zCollist = _rbuObjIterGetCollist(tls, p, pIter) (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol /* Create the imposter table or tables (if required). */ _rbuCreateImposterTable(tls, p, pIter) _rbuCreateImposterTable2(tls, p, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) { - v4 = __ccgo_ts + 1680 + v4 = __ccgo_ts + 1694 } else { - v4 = __ccgo_ts + 31029 + v4 = __ccgo_ts + 31175 } zWrite = v4 /* Create the INSERT statement to write to the target PK b-tree */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if bRbuRowid != 0 { - v5 = __ccgo_ts + 31038 + v5 = __ccgo_ts + 31184 } else { - v5 = __ccgo_ts + 1680 + v5 = __ccgo_ts + 1694 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31048, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31194, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) } /* Create the DELETE statement to write to the target PK b-tree. ** Because it only performs INSERT operations, this is not required for ** an rbu vacuum handle. */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31084, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31230, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) } if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zRbuRowid = __ccgo_ts + 1680 + zRbuRowid = __ccgo_ts + 1694 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zRbuRowid = __ccgo_ts + 31112 + zRbuRowid = __ccgo_ts + 31258 } /* Create the rbu_tmp_xxx table and the triggers to populate it. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - v6 = __ccgo_ts + 31124 + v6 = __ccgo_ts + 31270 } else { - v6 = __ccgo_ts + 1680 + v6 = __ccgo_ts + 1694 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31141, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31217, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31287, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31363, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31516, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31662, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) } _rbuObjIterPrepareTmpInsert(tls, p, pIter, zCollist, zRbuRowid) } /* Create the SELECT statement to read keys from data_xxx */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zRbuRowid1 = __ccgo_ts + 1680 + zRbuRowid1 = __ccgo_ts + 1694 zStart1 = uintptr(0) zOrder = uintptr(0) if bRbuRowid != 0 { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v7 = __ccgo_ts + 31615 + v7 = __ccgo_ts + 31761 } else { - v7 = __ccgo_ts + 31625 + v7 = __ccgo_ts + 31771 } zRbuRowid1 = v7 } @@ -182317,28 +184153,28 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } } if bRbuRowid != 0 { - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29672, 0) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29818, 0) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1680, __ccgo_ts+15022, __ccgo_ts+1680) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1694, __ccgo_ts+15115, __ccgo_ts+1694) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v8 = __ccgo_ts + 31636 + v8 = __ccgo_ts + 31782 } else { - v8 = __ccgo_ts + 1680 + v8 = __ccgo_ts + 1694 } if zStart1 != 0 { v9 = zStart1 } else { - v9 = __ccgo_ts + 1680 + v9 = __ccgo_ts + 1694 } if zOrder != 0 { - v10 = __ccgo_ts + 23239 + v10 = __ccgo_ts + 23384 } else { - v10 = __ccgo_ts + 1680 + v10 = __ccgo_ts + 1694 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31642, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31788, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) } Xsqlite3_free(tls, zStart1) Xsqlite3_free(tls, zOrder) @@ -182424,11 +184260,11 @@ func _rbuGetUpdateStmt(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintptr, p (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpNext = (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate = pUp if zSet != 0 { - zPrefix = __ccgo_ts + 1680 + zPrefix = __ccgo_ts + 1694 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { - zPrefix = __ccgo_ts + 31029 + zPrefix = __ccgo_ts + 31175 } - zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31690, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) + zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31836, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pUp+8, p+64, zUpdate) *(*uintptr)(unsafe.Pointer(ppStmt)) = (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate } @@ -182455,7 +184291,7 @@ func _rbuOpenDbhandle(tls *libc.TLS, p uintptr, zName uintptr, bUseVfs int32) (r } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_open_v2(tls, zName, bp, flags, v1) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) Xsqlite3_close(tls, *(*uintptr)(unsafe.Pointer(bp))) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) } @@ -182502,7 +184338,7 @@ func _rbuLoadState(tls *libc.TLS, p uintptr) (r uintptr) { if pRet == uintptr(0) { return uintptr(0) } - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31720, libc.VaList(bp+24, p+48))) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31866, libc.VaList(bp+24, p+48))) for *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { switch Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) { case int32(RBU_STATE_STAGE): @@ -182561,27 +184397,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu = _rbuOpenDbhandle(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, int32(1)) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain = dbMain if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6617, int32(SQLITE_FCNTL_RBUCNT), p) + Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6681, int32(SQLITE_FCNTL_RBUCNT), p) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState == uintptr(0) { - zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6617) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31750, libc.VaList(bp+8, zFile, zFile)) + zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6681) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31896, libc.VaList(bp+8, zFile, zFile)) } } /* If using separate RBU and state databases, attach the state database to ** the RBU db handle now. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState != 0 { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31778, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) - libc.Xmemcpy(tls, p+48, __ccgo_ts+3450, uint64(4)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31924, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+3514, uint64(4)) } else { - libc.Xmemcpy(tls, p+48, __ccgo_ts+6617, uint64(4)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+6681, uint64(4)) } /* If it has not already been created, create the rbu_state table */ - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31796, libc.VaList(bp+8, p+48)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31942, libc.VaList(bp+8, p+48)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { bOpen = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FnRbu = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FpRbuFd = uintptr(0) - rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6617, int32(SQLITE_FCNTL_RBUCNT), p) + rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6681, int32(SQLITE_FCNTL_RBUCNT), p) if rc != int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc } @@ -182614,10 +184450,10 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) return } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31862, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32008, 0) } else { zExtra = uintptr(0) - if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24628, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { + if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24751, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { zExtra = (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu + 5 for *(*int8)(unsafe.Pointer(zExtra)) != 0 { v1 = zExtra @@ -182631,16 +184467,16 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if zExtra == uintptr(0) { - v2 = __ccgo_ts + 1680 + v2 = __ccgo_ts + 1694 } else { - v2 = __ccgo_ts + 31894 + v2 = __ccgo_ts + 32040 } if zExtra == uintptr(0) { - v3 = __ccgo_ts + 1680 + v3 = __ccgo_ts + 1694 } else { v3 = zExtra } - zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+31896, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6617), v2, v3)) + zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+32042, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6681), v2, v3)) if zTarget == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) return @@ -182651,27 +184487,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31928, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32074, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31943, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32089, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31960, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32106, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6617, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6681, int32(SQLITE_FCNTL_RBU), p) } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31976, 0) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32122, 0) /* Mark the database file just opened as an RBU target database. If ** this call returns SQLITE_NOTFOUND, then the RBU vfs is not in use. ** This is an error. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6617, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6681, int32(SQLITE_FCNTL_RBU), p) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32004, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32150, 0) } } @@ -182721,7 +184557,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxShmMap})))(tls, pDb, 0, libc.Int32FromInt32(32)*libc.Int32FromInt32(1024), 0, bp) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - iRet = int64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))<= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+33004, zState+uintptr(n-int32(7)), uint64(7)) { + if n >= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+33150, zState+uintptr(n-int32(7)), uint64(7)) { return _rbuMisuseError(tls) } } @@ -183941,7 +185777,7 @@ func _rbuEditErrmsg(tls *libc.TLS, p uintptr) { if !(uint64(i) < nErrmsg-uint64(8)) { break } - if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31029, uint64(8)) == 0 { + if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31175, uint64(8)) == 0 { nDel = int32(8) for int32(*(*int8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) >= int32('0') && int32(*(*int8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) <= int32('9') { nDel++ @@ -183969,7 +185805,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { if p != 0 { /* Commit the transaction to the *-oal file. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14926, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+15019, uintptr(0), uintptr(0), p+64) } /* Sync the db file if currently doing an incremental checkpoint */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { @@ -183978,7 +185814,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { } _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14926, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+15019, uintptr(0), uintptr(0), p+64) } /* Close any open statement handles. */ _rbuObjIterFinalize(tls, p+80) @@ -183988,7 +185824,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { ** specifying the current target and state databases to start a new ** vacuum from scratch. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu != 0 { - rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33012, uintptr(0), uintptr(0), uintptr(0)) + rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33158, uintptr(0), uintptr(0), uintptr(0)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_DONE) && rc2 != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc2 } @@ -184089,7 +185925,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14926, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+15019, uintptr(0), uintptr(0), uintptr(0)) } } /* Sync the db file */ @@ -184102,19 +185938,19 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { rc = (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14926, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+15019, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 14911 + v1 = __ccgo_ts + 15004 } else { - v1 = __ccgo_ts + 32964 + v1 = __ccgo_ts + 33110 } zBegin = v1 rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, zBegin, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32964, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33110, uintptr(0), uintptr(0), uintptr(0)) } } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -184680,7 +186516,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r rc = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xControl})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, int32(SQLITE_FCNTL_ZIPVFS), bp) if rc == SQLITE_OK { rc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33039, 0) + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33185, 0) } else { if rc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpTargetFd = p @@ -184706,7 +186542,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r if rc == SQLITE_OK && op == int32(SQLITE_FCNTL_VFSNAME) { pRbuVfs = (*Trbu_file)(unsafe.Pointer(p)).FpRbuVfs zIn = *(*uintptr)(unsafe.Pointer(pArg)) - zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33062, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) + zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33208, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) *(*uintptr)(unsafe.Pointer(pArg)) = zOut if zOut == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -184901,7 +186737,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag if pDb != 0 { if (*Trbu_file)(unsafe.Pointer(pDb)).FpRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FeStage == int32(RBU_STAGE_OAL) { if (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FzTarget == uintptr(0) { - zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6617) + zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6681) zOpen = Xsqlite3_filename_wal(tls, zOpen) } nOpen = libc.Xstrlen(tls, zOpen) @@ -184915,7 +186751,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag } else { (*Trbu_file)(unsafe.Pointer(pFd)).FpRbu = (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).FpRbu } - if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33073, 0) != 0 { + if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33219, 0) != 0 { oflags = libc.Int32FromInt32(SQLITE_OPEN_TEMP_DB) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_EXCLUSIVE) | libc.Int32FromInt32(SQLITE_OPEN_DELETEONCLOSE) zOpen = uintptr(0) } @@ -185468,7 +187304,7 @@ func _statConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint _sqlite3TokenInit(tls, bp, *(*uintptr)(unsafe.Pointer(argv + 3*8))) iDb = _sqlite3FindDb(tls, db, bp) if iDb < 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12223, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12348, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) return int32(SQLITE_ERROR) } } else { @@ -185858,6 +187694,7 @@ func _statDecodePage(tls *libc.TLS, pBt uintptr, p uintptr) (r int32) { } } return SQLITE_OK + goto statPageIsCorrupt statPageIsCorrupt: ; (*TStatPage)(unsafe.Pointer(p)).Fflags = uint8(0) @@ -185948,6 +187785,7 @@ func _statNext(tls *libc.TLS, pCursor uintptr) (r int32) { pPager = _sqlite3BtreePager(tls, pBt) Xsqlite3_free(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath) (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = uintptr(0) + goto statNextRestart statNextRestart: ; if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage < 0 { @@ -185965,7 +187803,7 @@ statNextRestart: (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiPgno = iRoot (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33084, 0) + v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33230, 0) z = v1 (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FzPath = v1 if z == uintptr(0) { @@ -186003,8 +187841,8 @@ statNextRestart: if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { (*TStatCursor)(unsafe.Pointer(pCsr)).FzName = Xsqlite3_column_text(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FpStmt, 0) (*TStatCursor)(unsafe.Pointer(pCsr)).FiPageno = *(*Tu32)(unsafe.Pointer((*TStatCell)(unsafe.Pointer(pCell)).FaOvfl + uintptr(iOvfl)*4)) - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33086 - v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33095, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33232 + v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33241, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) z = v2 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v2 if z == uintptr(0) { @@ -186033,7 +187871,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage++ if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage >= int32(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(222551)) + return _sqlite3CorruptError(tls, int32(224206)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -186044,7 +187882,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnPage++ (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33107, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) + v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33253, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) z = v4 (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FzPath = v4 if z == uintptr(0) { @@ -186067,13 +187905,13 @@ statNextRestart: case int32(0x05): /* table internal */ fallthrough case int32(0x02): /* index internal */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33115 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33261 case int32(0x0D): /* table leaf */ fallthrough case int32(0x0A): /* index leaf */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33124 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33270 default: - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33129 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33275 break } *(*int32)(unsafe.Pointer(pCsr + 2108)) += (*TStatPage)(unsafe.Pointer(p1)).FnCell @@ -186082,7 +187920,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnMxPayload = (*TStatPage)(unsafe.Pointer(p1)).FnMxPayload } if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) + v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) z = v5 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v5 if z == uintptr(0) { @@ -186171,12 +188009,12 @@ func _statFilter(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uintptr, a (*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg = uint8(0) } pSql = Xsqlite3_str_new(tls, (*TStatTable)(unsafe.Pointer(pTab)).Fdb) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33139, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33285, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) if zName != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33294, libc.VaList(bp+8, zName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33440, libc.VaList(bp+8, zName)) } if idxNum&int32(0x08) != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33308, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33454, 0) } zSql = Xsqlite3_str_finish(tls, pSql) if zSql == uintptr(0) { @@ -186253,7 +188091,7 @@ func _statRowid(tls *libc.TLS, pCursor uintptr, pRowid uintptr) (r int32) { // ** Invoke this routine to register the "dbstat" virtual table module // */ func _sqlite3DbstatRegister(tls *libc.TLS, db uintptr) (r int32) { - return Xsqlite3_create_module(tls, db, __ccgo_ts+33323, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) + return Xsqlite3_create_module(tls, db, __ccgo_ts+33469, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) } var _dbstat_module = Tsqlite3_module{} @@ -187524,20 +189362,20 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, *(*uintptr)(unsafe.Pointer(pazDflt)) = uintptr(0) } nThis = _sqlite3Strlen30(tls, zThis) - if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11614, zThis) { + if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11739, zThis) { rc = Xsqlite3_table_column_metadata(tls, db, zDb, zThis, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { /* For sqlite_stat1, pretend that (tbl,idx) is the PRIMARY KEY. */ - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33330, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33476, 0) } else { if rc == int32(SQLITE_ERROR) { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1680, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1694, 0) } else { return rc } } } else { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33451, libc.VaList(bp+16, zDb, zThis)) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33597, libc.VaList(bp+16, zDb, zThis)) } if !(zPragma != 0) { return int32(SQLITE_NOMEM) @@ -187561,7 +189399,7 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, bRowid = 0 } nDbCol += bRowid - nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+29672)) + nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+29818)) rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp))) if rc == SQLITE_OK { nByte = Tsqlite3_int64(uint64(nByte) + uint64(nDbCol)*(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(2)+libc.Uint64FromInt64(1)+libc.Uint64FromInt32(1)+libc.Uint64FromInt32(1))) @@ -187585,8 +189423,8 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, } i = 0 if bRowid != 0 { - nName = libc.Xstrlen(tls, __ccgo_ts+29672) - libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29672, nName+uint64(1)) + nName = libc.Xstrlen(tls, __ccgo_ts+29818) + libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29818, nName+uint64(1)) *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)) = pAlloc pAlloc += uintptr(nName + uint64(1)) *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) = uint8(1) @@ -187678,7 +189516,7 @@ func _sessionInitTable(tls *libc.TLS, pSession uintptr, pTab uintptr, db uintptr ; i++ } - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11614, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11739, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 = int32(1) } if pSession != 0 && (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize != 0 { @@ -187967,10 +189805,10 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin _, _, _, _ = ii, zDflt, zSep, v2 *(*TSessionBuffer)(unsafe.Pointer(bp)) = TSessionBuffer{} *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK - zSep = __ccgo_ts + 11234 + zSep = __ccgo_ts + 11359 ii = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33480, 0) + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33626, 0) ii = 0 for { if !(ii < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol) { @@ -187979,11 +189817,11 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin if *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) != 0 { v2 = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) } else { - v2 = __ccgo_ts + 1681 + v2 = __ccgo_ts + 1695 } zDflt = v2 - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5108, libc.VaList(bp+32, zSep, zDflt)) - zSep = __ccgo_ts + 15022 + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5172, libc.VaList(bp+32, zSep, zDflt)) + zSep = __ccgo_ts + 15115 goto _1 _1: ; @@ -188301,7 +190139,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u rc = int32(SQLITE_NOMEM) goto error_out } - _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1680, uint8(0), libc.UintptrFromInt32(0)) + _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1694, uint8(0), libc.UintptrFromInt32(0)) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpZeroBlob = p } } @@ -188418,6 +190256,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u } } /* If an error has occurred, mark the session object as failed. */ + goto error_out error_out: ; if (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 != 0 { @@ -188621,7 +190460,7 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr var i int32 var zRet, zSep uintptr _, _, _ = i, zRet, zSep - zSep = __ccgo_ts + 1680 + zSep = __ccgo_ts + 1694 zRet = uintptr(0) i = 0 for { @@ -188629,8 +190468,8 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr break } if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33487, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 22045 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33633, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 22190 if zRet == uintptr(0) { break } @@ -188649,7 +190488,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint var bHave, i int32 var zRet, zSep uintptr _, _, _, _ = bHave, i, zRet, zSep - zSep = __ccgo_ts + 1680 + zSep = __ccgo_ts + 1694 zRet = uintptr(0) bHave = 0 i = 0 @@ -188659,8 +190498,8 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if int32(*(*Tu8)(unsafe.Pointer(abPK + uintptr(i)))) == 0 { bHave = int32(1) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33521, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 33562 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33667, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 33708 if zRet == uintptr(0) { break } @@ -188671,7 +190510,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint i++ } if bHave == 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1754, 0) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1814, 0) } return zRet } @@ -188682,12 +190521,12 @@ func _sessionSelectFindNew(tls *libc.TLS, zDb1 uintptr, zDb2 uintptr, bRowid int var zRet, zSel, v1 uintptr _, _, _ = zRet, zSel, v1 if bRowid != 0 { - v1 = __ccgo_ts + 33567 + v1 = __ccgo_ts + 33713 } else { - v1 = __ccgo_ts + 6622 + v1 = __ccgo_ts + 6686 } zSel = v1 - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33578, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33724, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) return zRet } @@ -188748,11 +190587,11 @@ func _sessionAllCols(tls *libc.TLS, zDb uintptr, pTab uintptr) (r uintptr) { break } if zRet != 0 { - v2 = __ccgo_ts + 15022 + v2 = __ccgo_ts + 15115 } else { - v2 = __ccgo_ts + 1680 + v2 = __ccgo_ts + 1694 } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33657, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33803, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) if !(zRet != 0) { break } @@ -188780,7 +190619,7 @@ func _sessionDiffFindModified(tls *libc.TLS, pSession uintptr, pTab uintptr, zFr } else { z1 = _sessionAllCols(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, pTab) z2 = _sessionAllCols(tls, zFrom, pTab) - zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33676, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) + zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33822, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) if zStmt == uintptr(0) || z1 == uintptr(0) || z2 == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -188880,7 +190719,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if bMismatch != 0 { if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33733, 0) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33879, 0) } rc = int32(SQLITE_SCHEMA) } @@ -188906,6 +190745,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u } Xsqlite3_free(tls, zExpr) } + goto diff_out diff_out: ; _sessionPreupdateHooks(tls, pSession) @@ -189211,7 +191051,7 @@ func _sessionAppendInteger(tls *libc.TLS, p uintptr, iVal int32, pRc uintptr) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* aBuf at bp+0 */ [24]int8 - Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5170, libc.VaList(bp+32, iVal)) + Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5234, libc.VaList(bp+32, iVal)) _sessionAppendStr(tls, p, bp, pRc) } @@ -189502,23 +191342,23 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt _, _, _, _, _, _, _ = i, nSql, zCols, zSep, zSql, v1, v3 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK zSql = uintptr(0) - zSep = __ccgo_ts + 1680 + zSep = __ccgo_ts + 1694 if bRowid != 0 { - v1 = __ccgo_ts + 33567 + v1 = __ccgo_ts + 33713 } else { - v1 = __ccgo_ts + 6622 + v1 = __ccgo_ts + 6686 } zCols = v1 nSql = -int32(1) *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 24)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 40)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+33760, bp) - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11614, zTab) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+33764, bp) - _sessionAppendStr(tls, bp+24, __ccgo_ts+33788, bp) - _sessionAppendStr(tls, bp+40, __ccgo_ts+33797, bp) - zCols = __ccgo_ts + 33842 + _sessionAppendStr(tls, bp+8, __ccgo_ts+33906, bp) + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11739, zTab) { + _sessionAppendStr(tls, bp+8, __ccgo_ts+33910, bp) + _sessionAppendStr(tls, bp+24, __ccgo_ts+33934, bp) + _sessionAppendStr(tls, bp+40, __ccgo_ts+33943, bp) + zCols = __ccgo_ts + 33988 } else { i = 0 for { @@ -189528,11 +191368,11 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { _sessionAppendStr(tls, bp+24, zSep, bp) _sessionAppendStr(tls, bp+40, zSep, bp) - zSep = __ccgo_ts + 15022 + zSep = __ccgo_ts + 15115 _sessionAppendIdent(tls, bp+24, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), bp) - _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+33856, libc.VaList(bp+64, i+int32(1))) + _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+34002, libc.VaList(bp+64, i+int32(1))) } else { - _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+33860, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+34006, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) } goto _2 _2: @@ -189544,9 +191384,9 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if bIgnoreNoop != 0 { v3 = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf } else { - v3 = __ccgo_ts + 1680 + v3 = __ccgo_ts + 1694 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+33887, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+34033, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) if zSql == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } @@ -189687,7 +191527,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, if (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc != 0 { return (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc } - *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+33929, uintptr(0), uintptr(0), uintptr(0)) + *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+34075, uintptr(0), uintptr(0), uintptr(0)) if *(*int32)(unsafe.Pointer(bp + 16)) != SQLITE_OK { return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -189793,7 +191633,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } } Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf) - Xsqlite3_exec(tls, db, __ccgo_ts+33949, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34095, uintptr(0), uintptr(0), uintptr(0)) Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db)) return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -190210,7 +192050,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, int32(9)) if rc == SQLITE_OK { if (*TSessionInput)(unsafe.Pointer(pIn)).FiNext >= (*TSessionInput)(unsafe.Pointer(pIn)).FnData { - rc = _sqlite3CorruptError(tls, int32(226700)) + rc = _sqlite3CorruptError(tls, int32(228355)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -190234,7 +192074,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, *(*int32)(unsafe.Pointer(bp))) if rc == SQLITE_OK { if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext { - rc = _sqlite3CorruptError(tls, int32(226720)) + rc = _sqlite3CorruptError(tls, int32(228375)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -190249,7 +192089,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap } if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) { if (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext < int32(8) { - rc = _sqlite3CorruptError(tls, int32(226730)) + rc = _sqlite3CorruptError(tls, int32(228385)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -190305,7 +192145,7 @@ func _sessionChangesetBufferTblhdr(tls *libc.TLS, pIn uintptr, pnByte uintptr) ( ** large value for nCol may cause nRead to wrap around and become ** negative. Leading to a crash. */ if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > int32(65536) { - rc = _sqlite3CorruptError(tls, int32(226778)) + rc = _sqlite3CorruptError(tls, int32(228433)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -190410,7 +192250,7 @@ func _sessionChangesetReadTblhdr(tls *libc.TLS, p uintptr) (r int32) { (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FnBuf = 0 _sessionBufferGrow(tls, p+72, int64(nByte), bp) } else { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(226866)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(228521)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -190481,12 +192321,12 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK { return (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc } + _sessionDiscardData(tls, p) + (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext /* If the iterator is already at the end of the changeset, return DONE. */ if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext >= (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FnData { return int32(SQLITE_DONE) } - _sessionDiscardData(tls, p) - (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext v3 = p + 8 v2 = *(*int32)(unsafe.Pointer(v3)) *(*int32)(unsafe.Pointer(v3))++ @@ -190516,7 +192356,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FzTab == uintptr(0) || (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset != 0 && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbInvert != 0 { /* The first record in the changeset is not a table header. Must be a ** corrupt changeset. */ - v7 = _sqlite3CorruptError(tls, int32(226952)) + v7 = _sqlite3CorruptError(tls, int32(228607)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -190526,7 +192366,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = int32(*(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr(v8)))) if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_DELETE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_INSERT) { - v10 = _sqlite3CorruptError(tls, int32(226958)) + v10 = _sqlite3CorruptError(tls, int32(228613)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -190605,7 +192445,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if *(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i+(*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*8)) if *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) == uintptr(0) { - v16 = _sqlite3CorruptError(tls, int32(227002)) + v16 = _sqlite3CorruptError(tls, int32(228657)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -191015,7 +192855,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(227367)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(229022)) goto finished_invert } if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { @@ -191035,6 +192875,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } + goto finished_invert finished_invert: ; Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf) @@ -191217,18 +193058,18 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 } if pUp == uintptr(0) { nByte = int32(uint64(24) * uint64(nU32) * uint64(4)) - bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11614) == 0) + bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11739) == 0) pUp = Xsqlite3_malloc(tls, nByte) if pUp == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } else { - zSep = __ccgo_ts + 1680 + zSep = __ccgo_ts + 1694 libc.Xmemset(tls, bp+8, 0, uint64(16)) (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask = pUp + 1*24 libc.Xmemcpy(tls, (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, uint64(nU32)*uint64(4)) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33967, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34113, bp) _sessionAppendIdent(tls, bp+8, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33980, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34126, bp) /* Create the assignments part of the UPDATE */ ii = 0 for { @@ -191238,9 +193079,9 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if int32(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii)))) == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol+ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33986, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34132, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(1), bp) - zSep = __ccgo_ts + 15022 + zSep = __ccgo_ts + 15115 } goto _2 _2: @@ -191248,8 +193089,8 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 ii++ } /* Create the WHERE clause part of the UPDATE */ - zSep = __ccgo_ts + 1680 - _sessionAppendStr(tls, bp+8, __ccgo_ts+33991, bp) + zSep = __ccgo_ts + 1694 + _sessionAppendStr(tls, bp+8, __ccgo_ts+34137, bp) ii = 0 for { if !(ii < (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol) { @@ -191258,13 +193099,13 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if *(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii))) != 0 || bPatchset == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr(ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) if bStat1 != 0 && ii == int32(1) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+33999, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34145, bp) } else { _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34074, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34220, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(2), bp) } - zSep = __ccgo_ts + 22045 + zSep = __ccgo_ts + 22190 } goto _3 _3: @@ -191347,13 +193188,13 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in var _ /* buf at bp+8 */ TSessionBuffer var _ /* rc at bp+0 */ int32 _, _, _ = i, nPk, zSep - zSep = __ccgo_ts + 1680 + zSep = __ccgo_ts + 1694 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} nPk = 0 - _sessionAppendStr(tls, bp+8, __ccgo_ts+34080, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34226, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33991, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34137, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -191363,9 +193204,9 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in nPk++ _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33986, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34132, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 22045 + zSep = __ccgo_ts + 22190 } goto _1 _1: @@ -191373,10 +193214,10 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in i++ } if nPk < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol { - _sessionAppendStr(tls, bp+8, __ccgo_ts+34098, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34244, bp) _sessionAppendInteger(tls, bp+8, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol+int32(1), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33562, bp) - zSep = __ccgo_ts + 1680 + _sessionAppendStr(tls, bp+8, __ccgo_ts+33708, bp) + zSep = __ccgo_ts + 1694 i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -191385,16 +193226,16 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in if !(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0) { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34074, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34220, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 34106 + zSep = __ccgo_ts + 34252 } goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5138, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5202, bp) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+8, uintptr(0)) @@ -191420,7 +193261,7 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in // */ func _sessionSelectRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r int32) { /* TODO */ - return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6617, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) + return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6681, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) } // C documentation @@ -191443,16 +193284,16 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+34111, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34257, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+22051, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+22196, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } if i != 0 { - _sessionAppendStr(tls, bp+8, __ccgo_ts+15022, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+15115, bp) } _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) goto _1 @@ -191460,19 +193301,19 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34129, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34275, bp) i = int32(1) for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34140, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34286, bp) goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5138, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5202, bp) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+16, uintptr(0)) } @@ -191495,12 +193336,12 @@ func _sessionPrepare(tls *libc.TLS, db uintptr, pp uintptr, zSql uintptr) (r int func _sessionStat1Sql(tls *libc.TLS, db uintptr, p uintptr) (r int32) { var rc int32 _ = rc - rc = _sessionSelectRow(tls, db, __ccgo_ts+11614, p) + rc = _sessionSelectRow(tls, db, __ccgo_ts+11739, p) if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34144) + rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34290) } if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34257) + rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34403) } return rc } @@ -191566,7 +193407,7 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(227849)) + rc = _sqlite3CorruptError(tls, int32(229504)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -191982,7 +193823,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34401, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34547, uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { rc = _sessionBindRow(tls, pIter, __ccgo_fp(Xsqlite3changeset_new), (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FabPK, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) Xsqlite3_bind_int(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol+int32(1), int32(1)) @@ -191995,7 +193836,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34422, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34568, uintptr(0), uintptr(0), uintptr(0)) } } } @@ -192089,10 +193930,10 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbIgnoreNoop = libc.BoolUint8(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_IGNORENOOP) != 0)) Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, db)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34441, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34587, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34467, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34613, uintptr(0), uintptr(0), uintptr(0)) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) @@ -192123,7 +193964,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui ** non-zero, proceed. */ schemaMismatch = libc.BoolInt32(xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { - *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) + *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { rc = int32(SQLITE_NOMEM) break @@ -192133,7 +193974,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } else { nMinCol = 0 Xsqlite3changeset_pk(tls, pIter, bp+152, uintptr(0)) - rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6617, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) + rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6681, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) if rc != SQLITE_OK { break } @@ -192152,18 +193993,18 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol == 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34497, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34643, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol < *(*int32)(unsafe.Pointer(bp + 136)) { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34541, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34687, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) } else { if *(*int32)(unsafe.Pointer(bp + 136)) < nMinCol || libc.Xmemcmp(tls, (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FabPK, *(*uintptr)(unsafe.Pointer(bp + 152)), uint64(*(*int32)(unsafe.Pointer(bp + 136)))) != 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34612, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34758, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol = *(*int32)(unsafe.Pointer(bp + 136)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11614) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11739) { v2 = _sessionStat1Sql(tls, db, bp+8) rc = v2 if v2 != 0 { @@ -192220,13 +194061,13 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } } } - Xsqlite3_exec(tls, db, __ccgo_ts+34672, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34818, uintptr(0), uintptr(0), uintptr(0)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34702, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34848, uintptr(0), uintptr(0), uintptr(0)) } else { - Xsqlite3_exec(tls, db, __ccgo_ts+34726, uintptr(0), uintptr(0), uintptr(0)) - Xsqlite3_exec(tls, db, __ccgo_ts+34702, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34872, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34848, uintptr(0), uintptr(0), uintptr(0)) } } if rc == SQLITE_OK && bPatchset == 0 && (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbRebase != 0 { @@ -192318,6 +194159,7 @@ type Tsqlite3_changegroup1 = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -192674,116 +194516,143 @@ func _sessionChangesetExtendRecord(tls *libc.TLS, pGrp uintptr, pTab uintptr, nC // C documentation // // /* -// ** Add all changes in the changeset traversed by the iterator passed as -// ** the first argument to the changegroup hash tables. +// ** Locate or create a SessionTable object that may be used to add the +// ** change currently pointed to by iterator pIter to changegroup pGrp. +// ** If successful, set output variable (*ppTab) to point to the table +// ** object and return SQLITE_OK. Otherwise, if some error occurs, return +// ** an SQLite error code and leave (*ppTab) set to NULL. // */ -func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { - bp := tls.Alloc(80) - defer tls.Free(80) - var bPkOnly1, bPkOnly2, iHash, nNew, rc int32 - var pExist, pTab, pp, ppTab uintptr - var _ /* aRec at bp+0 */ uintptr - var _ /* abPK at bp+64 */ uintptr - var _ /* bIndirect at bp+48 */ int32 - var _ /* nCol at bp+40 */ int32 - var _ /* nRec at bp+8 */ int32 - var _ /* op at bp+44 */ int32 - var _ /* pChange at bp+56 */ uintptr - var _ /* rec at bp+16 */ TSessionBuffer - var _ /* zNew at bp+32 */ uintptr - _, _, _, _, _, _, _, _, _ = bPkOnly1, bPkOnly2, iHash, nNew, pExist, pTab, pp, ppTab, rc +func _sessionChangesetFindTable(tls *libc.TLS, pGrp uintptr, zTab uintptr, pIter uintptr, ppTab uintptr) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var nTab, rc int32 + var pTab, ppNew uintptr + var _ /* abPK at bp+0 */ uintptr + var _ /* nCol at bp+8 */ int32 + _, _, _, _ = nTab, pTab, ppNew, rc rc = SQLITE_OK pTab = uintptr(0) - *(*TSessionBuffer)(unsafe.Pointer(bp + 16)) = TSessionBuffer{} - for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { - pExist = uintptr(0) - /* Ensure that only changesets, or only patchsets, but not a mixture - ** of both, are being combined. It is an error to try to combine a - ** changeset and a patchset. */ - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset - } else { - if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { - rc = int32(SQLITE_ERROR) - break - } + nTab = int32(libc.Xstrlen(tls, zTab)) + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(ppTab)) = uintptr(0) + Xsqlite3changeset_pk(tls, pIter, bp, bp+8) + /* Search the list for an existing table */ + pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList + for { + if !(pTab != 0) { + break } - Xsqlite3changeset_op(tls, pIter, bp+32, bp+40, bp+44, bp+48) - if !(pTab != 0) || Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), (*TSessionTable)(unsafe.Pointer(pTab)).FzName) != 0 { - /* Search the list for a matching table */ - nNew = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)))) - Xsqlite3changeset_pk(tls, pIter, bp+64, uintptr(0)) - pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList - for { - if !(pTab != 0) { - break - } - if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), nNew+int32(1)) { - break - } - goto _1 - _1: - ; - pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext - } - if !(pTab != 0) { - pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 40)))+uint64(nNew)+uint64(1)) - if !(pTab != 0) { - rc = int32(SQLITE_NOMEM) - break - } - libc.Xmemset(tls, pTab, 0, uint64(80)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 40)) - (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp + 64)), uint64(*(*int32)(unsafe.Pointer(bp + 40)))) - (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 40))) - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), uint64(nNew+int32(1))) - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 - rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) - if rc != 0 { - Xsqlite3_free(tls, pTab) - break - } - } - /* The new object must be linked on to the end of the list, not - ** simply added to the start of it. This is to ensure that the - ** tables within the output of sqlite3changegroup_output() are in - ** the right order. */ - ppTab = pGrp + 8 - for { - if !(*(*uintptr)(unsafe.Pointer(ppTab)) != 0) { - break - } - goto _2 - _2: - ; - ppTab = *(*uintptr)(unsafe.Pointer(ppTab)) - } - *(*uintptr)(unsafe.Pointer(ppTab)) = pTab - } - if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*uintptr)(unsafe.Pointer(bp + 64))) != 0) { - rc = int32(SQLITE_SCHEMA) - break - } + if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, nTab+int32(1)) { + break + } + goto _1 + _1: + ; + pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext + } + /* If one was not found above, create a new table now */ + if !(pTab != 0) { + pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 8)))+uint64(nTab)+uint64(1)) + if !(pTab != 0) { + return int32(SQLITE_NOMEM) } - if *(*int32)(unsafe.Pointer(bp + 40)) < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol { - rc = _sessionChangesetExtendRecord(tls, pGrp, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*int32)(unsafe.Pointer(bp + 44)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+16) + libc.Xmemset(tls, pTab, 0, uint64(80)) + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 8)) + (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp)), uint64(*(*int32)(unsafe.Pointer(bp + 8)))) + (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 8))) + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, uint64(nTab+int32(1))) + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 + rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) if rc != 0 { + Xsqlite3_free(tls, pTab) + return rc + } + } + /* The new object must be linked on to the end of the list, not + ** simply added to the start of it. This is to ensure that the + ** tables within the output of sqlite3changegroup_output() are in + ** the right order. */ + ppNew = pGrp + 8 + for { + if !(*(*uintptr)(unsafe.Pointer(ppNew)) != 0) { break } - *(*uintptr)(unsafe.Pointer(bp)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf - *(*int32)(unsafe.Pointer(bp + 8)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf + goto _2 + _2: + ; + ppNew = *(*uintptr)(unsafe.Pointer(ppNew)) } - if _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pTab) != 0 { - rc = int32(SQLITE_NOMEM) - break + *(*uintptr)(unsafe.Pointer(ppNew)) = pTab + } + /* Check that the table is compatible. */ + if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 8)), *(*uintptr)(unsafe.Pointer(bp))) != 0) { + rc = int32(SQLITE_SCHEMA) + } + *(*uintptr)(unsafe.Pointer(ppTab)) = pTab + return rc +} + +// C documentation +// +// /* +// ** Add the change currently indicated by iterator pIter to the hash table +// ** belonging to changegroup pGrp. +// */ +func _sessionOneChangeToHash(tls *libc.TLS, pGrp uintptr, pIter uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var aRec, pBuf, pExist, pp uintptr + var bPkOnly1, bPkOnly2, iHash, nRec, rc int32 + var _ /* bIndirect at bp+8 */ int32 + var _ /* nCol at bp+0 */ int32 + var _ /* op at bp+4 */ int32 + var _ /* pChange at bp+16 */ uintptr + var _ /* pTab at bp+24 */ uintptr + var _ /* zTab at bp+32 */ uintptr + _, _, _, _, _, _, _, _, _ = aRec, bPkOnly1, bPkOnly2, iHash, nRec, pBuf, pExist, pp, rc + rc = SQLITE_OK + *(*int32)(unsafe.Pointer(bp)) = 0 + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + iHash = 0 + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0) + pExist = uintptr(0) + pp = uintptr(0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0) + aRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FaData + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent+int32(2)) + nRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent - int32(2) + /* Ensure that only changesets, or only patchsets, but not a mixture + ** of both, are being combined. It is an error to try to combine a + ** changeset and a patchset. */ + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset + } else { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { + rc = int32(SQLITE_ERROR) } - iHash = int32(_sessionChangeHash(tls, pTab, libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)), *(*uintptr)(unsafe.Pointer(bp)), (*TSessionTable)(unsafe.Pointer(pTab)).FnChange)) + } + if rc == SQLITE_OK { + *(*uintptr)(unsafe.Pointer(bp + 32)) = uintptr(0) + Xsqlite3changeset_op(tls, pIter, bp+32, bp, bp+4, bp+8) + rc = _sessionChangesetFindTable(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 32)), pIter, bp+24) + } + if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) < (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnCol { + pBuf = pGrp + 16 + rc = _sessionChangesetExtendRecord(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 24)), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), aRec, nRec, pBuf) + aRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FaBuf + nRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FnBuf + } + if rc == SQLITE_OK && _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp + 24))) != 0 { + rc = int32(SQLITE_NOMEM) + } + if rc == SQLITE_OK { /* Search for existing entry. If found, remove it from the hash table. - ** Code below may link it back in. - */ - pp = (*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8 + ** Code below may link it back in. */ + iHash = int32(_sessionChangeHash(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)), aRec, (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnChange)) + pp = (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8 for { if !(*(*uintptr)(unsafe.Pointer(pp)) != 0) { break @@ -192792,30 +194661,54 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase bPkOnly2 = 0 if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 { bPkOnly1 = libc.BoolInt32(int32((*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).Fop) == int32(SQLITE_DELETE)) - bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)) + bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)) } - if _sessionChangeEqual(tls, pTab, bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, *(*uintptr)(unsafe.Pointer(bp))) != 0 { + if _sessionChangeEqual(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, aRec) != 0 { pExist = *(*uintptr)(unsafe.Pointer(pp)) *(*uintptr)(unsafe.Pointer(pp)) = (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry-- + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry-- break } - goto _3 - _3: + goto _1 + _1: ; pp = *(*uintptr)(unsafe.Pointer(pp)) + 24 } - rc = _sessionChangeMerge(tls, pTab, bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 44)), *(*int32)(unsafe.Pointer(bp + 48)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+56) - if rc != 0 { + } + if rc == SQLITE_OK { + rc = _sessionChangeMerge(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 4)), *(*int32)(unsafe.Pointer(bp + 8)), aRec, nRec, bp+16) + } + if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { + (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) + *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 16)) + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry++ + } + if rc == SQLITE_OK { + rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc + } + return rc +} + +// C documentation +// +// /* +// ** Add all changes in the changeset traversed by the iterator passed as +// ** the first argument to the changegroup hash tables. +// */ +func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var rc int32 + var _ /* aRec at bp+0 */ uintptr + var _ /* nRec at bp+8 */ int32 + _ = rc + rc = SQLITE_OK + for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { + rc = _sessionOneChangeToHash(tls, pGrp, pIter, bRebase) + if rc != SQLITE_OK { break } - if *(*uintptr)(unsafe.Pointer(bp + 56)) != 0 { - (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 56)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) - *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 56)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry++ - } } - Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf) if rc == SQLITE_OK { rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc } @@ -192925,11 +194818,11 @@ func Xsqlite3changegroup_new(tls *libc.TLS, pp uintptr) (r int32) { var rc int32 _, _ = p, rc rc = SQLITE_OK /* New object */ - p = Xsqlite3_malloc(tls, int32(32)) + p = Xsqlite3_malloc(tls, int32(48)) if p == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, p, 0, uint64(32)) + libc.Xmemset(tls, p, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(pp)) = p return rc @@ -192951,7 +194844,7 @@ func Xsqlite3changegroup_schema(tls *libc.TLS, pGrp uintptr, db uintptr, zDb uin ** or after sqlite3changegroup_schema() has already been called. */ rc = int32(SQLITE_MISUSE) } else { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+8, zDb)) + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+8, zDb)) if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -192981,6 +194874,19 @@ func Xsqlite3changegroup_add(tls *libc.TLS, pGrp uintptr, nData int32, pData uin return rc } +// C documentation +// +// /* +// ** Add a single change to a changeset-group. +// */ +func Xsqlite3changegroup_add_change(tls *libc.TLS, pGrp uintptr, pIter uintptr) (r int32) { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent == (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc != SQLITE_OK || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbInvert != 0 { + /* Iterator does not point to any valid entry or is an INVERT iterator. */ + return int32(SQLITE_ERROR) + } + return _sessionOneChangeToHash(tls, pGrp, pIter, 0) +} + // C documentation // // /* @@ -193028,6 +194934,7 @@ func Xsqlite3changegroup_delete(tls *libc.TLS, pGrp uintptr) { if pGrp != 0 { Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList) + Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Frec.FaBuf) Xsqlite3_free(tls, pGrp) } } @@ -193392,11 +195299,11 @@ func Xsqlite3rebaser_create(tls *libc.TLS, ppNew uintptr) (r int32) { var rc int32 _, _ = pNew, rc rc = SQLITE_OK - pNew = Xsqlite3_malloc(tls, int32(32)) + pNew = Xsqlite3_malloc(tls, int32(48)) if pNew == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, pNew, 0, uint64(32)) + libc.Xmemset(tls, pNew, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(ppNew)) = pNew return rc @@ -193470,6 +195377,7 @@ func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn u func Xsqlite3rebaser_delete(tls *libc.TLS, p uintptr) { if p != 0 { _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.FpList) + Xsqlite3_free(tls, (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.Frec.FaBuf) Xsqlite3_free(tls, p) } } @@ -194101,6 +196009,9 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** sqlite3Fts5ParserARG_STORE Code to store %extra_argument into fts5yypParser // ** sqlite3Fts5ParserARG_FETCH Code to extract %extra_argument from fts5yypParser // ** sqlite3Fts5ParserCTX_* As sqlite3Fts5ParserARG_ except for %extra_context +// ** fts5YYREALLOC Name of the realloc() function to use +// ** fts5YYFREE Name of the free() function to use +// ** fts5YYDYNSTACK True if stack space should be extended on heap // ** fts5YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** fts5YYNSTATE the combined number of states. @@ -194114,6 +196025,8 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** fts5YY_NO_ACTION The fts5yy_action[] code for no-op // ** fts5YY_MIN_REDUCE Minimum value for reduce actions // ** fts5YY_MAX_REDUCE Maximum value for reduce actions +// ** fts5YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** fts5YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type Tfts5YYMINORTYPE = struct { @@ -194140,6 +196053,13 @@ type fts5YYMINORTYPE = Tfts5YYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -194569,8 +196489,9 @@ type fts5yyStackEntry = Tfts5yyStackEntry type Tfts5yyParser1 = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser1 = Tfts5yyParser1 @@ -194578,14 +196499,19 @@ type fts5yyParser1 = Tfts5yyParser1 type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser = Tfts5yyParser /* #include */ +/* For builds that do no have a growable stack, fts5yyGrowStack always +** returns an error. + */ + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3Fts5ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -194600,10 +196526,11 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { var fts5yypParser uintptr _ = fts5yypParser fts5yypParser = fts5yypRawParser - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = fts5yypParser + 16 - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fstateno = uint8(0) - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fmajor = uint8(0) - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = fts5yypParser + 16 + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack = fts5yypParser + 32 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fstateno = uint8(0) + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fmajor = uint8(0) } // C documentation @@ -194623,7 +196550,7 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2424)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -194705,11 +196632,17 @@ func _fts5yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var fts5yytos, pParser uintptr + _, _ = fts5yytos, pParser pParser = p - for (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos > pParser+16 { - _fts5yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling fts5yy_pop_parser_stack() for each + ** element left in the stack */ + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos + for fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yystack { + if int32((*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor) >= int32(fts5YY_MIN_DSTRCTR) { + _fts5yy_destructor(tls, pParser, (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor, fts5yytos+8) + } + fts5yytos -= 24 } } @@ -194797,13 +196730,13 @@ func _fts5yyStackOverflow(tls *libc.TLS, fts5yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse - for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > fts5yypParser+16 { + for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack { _fts5yy_pop_parser_stack(tls, fts5yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34754, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34900, 0) /******** End %stack_overflow code ********************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument var */ } @@ -194821,15 +196754,18 @@ func _fts5yy_shift(tls *libc.TLS, fts5yypParser uintptr, fts5yyNewState uint8, f var fts5yytos uintptr _ = fts5yytos (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos += 24 - if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 - _fts5yyStackOverflow(tls, fts5yypParser) - return + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + if fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { + if int32(1) != 0 { + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 + _fts5yyStackOverflow(tls, fts5yypParser) + return + } + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos } if int32(fts5yyNewState) > int32(fts5YY_MAX_SHIFT) { fts5yyNewState = uint8(int32(fts5yyNewState) + (libc.Int32FromInt32(fts5YY_MIN_REDUCE) - libc.Int32FromInt32(fts5YY_MIN_SHIFTREDUCE))) } - fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fstateno = fts5yyNewState (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor = fts5yyMajor *(*TFts5Token)(unsafe.Pointer(fts5yytos + 8)) = fts5yyMinor @@ -195156,7 +197092,7 @@ func _fts5yy_syntax_error(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor int3 pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse /************ Begin %syntax_error code ****************************************/ _ = fts5yymajor /* Silence a compiler warning */ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34782, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34928, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) /************ End %syntax_error code ******************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument variable */ } @@ -195218,8 +197154,10 @@ func _sqlite3Fts5Parser(tls *libc.TLS, fts5yyp uintptr, fts5yymajor int32, fts5y ** enough on the stack to push the LHS value */ if int32(_fts5yyRuleInfoNRhs[fts5yyruleno]) == 0 { if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos >= (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - _fts5yyStackOverflow(tls, fts5yypParser) - break + if int32(1) != 0 { + _fts5yyStackOverflow(tls, fts5yypParser) + break + } } } fts5yyact = _fts5yy_reduce(tls, fts5yypParser, fts5yyruleno, fts5yymajor, fts5yyminor) @@ -195438,7 +197376,7 @@ func _fts5HighlightAppend(tls *libc.TLS, pRc uintptr, p uintptr, z uintptr, n in if n < 0 { n = int32(libc.Xstrlen(tls, z)) } - (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34813, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) + (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34959, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) if (*THighlightContext)(unsafe.Pointer(p)).FzOut == uintptr(0) { *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) } @@ -195535,7 +197473,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint var _ /* rc at bp+104 */ int32 _, _ = iCol, zErr if nVal != int32(3) { - zErr = __ccgo_ts + 34820 + zErr = __ccgo_ts + 34966 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -195546,7 +197484,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint (*(*THighlightContext)(unsafe.Pointer(bp))).FiRangeEnd = -int32(1) *(*int32)(unsafe.Pointer(bp + 104)) = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnText})))(tls, pFts, iCol, bp+24, bp+32) if *(*int32)(unsafe.Pointer(bp + 104)) == int32(SQLITE_RANGE) { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1680, -int32(1), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1694, -int32(1), libc.UintptrFromInt32(0)) *(*int32)(unsafe.Pointer(bp + 104)) = SQLITE_OK } else { if (*(*THighlightContext)(unsafe.Pointer(bp))).FzIn != 0 { @@ -195747,7 +197685,7 @@ func _fts5ValueToText(tls *libc.TLS, pVal uintptr) (r uintptr) { if zRet != 0 { v1 = zRet } else { - v1 = __ccgo_ts + 1680 + v1 = __ccgo_ts + 1694 } return v1 } @@ -195781,7 +197719,7 @@ func _fts5SnippetFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintpt nBestScore = 0 /* Score of best snippet */ *(*int32)(unsafe.Pointer(bp + 112)) = 0 if nVal != int32(5) { - zErr = __ccgo_ts + 34870 + zErr = __ccgo_ts + 35016 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -196161,15 +198099,15 @@ func _sqlite3Fts5AuxInit(tls *libc.TLS, pApi uintptr) (r int32) { FxDestroy uintptr }{ 0: { - FzFunc: __ccgo_ts + 34918, + FzFunc: __ccgo_ts + 35064, FxFunc: __ccgo_fp(_fts5SnippetFunction), }, 1: { - FzFunc: __ccgo_ts + 34926, + FzFunc: __ccgo_ts + 35072, FxFunc: __ccgo_fp(_fts5HighlightFunction), }, 2: { - FzFunc: __ccgo_ts + 34936, + FzFunc: __ccgo_ts + 35082, FxFunc: __ccgo_fp(_fts5Bm25Function), }, } @@ -196829,7 +198767,7 @@ func _fts5ConfigSkipLiteral(tls *libc.TLS, pIn uintptr) (r uintptr) { case int32('n'): fallthrough case int32('N'): - if Xsqlite3_strnicmp(tls, __ccgo_ts+1666, p, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+1680, p, int32(4)) == 0 { p = p + 4 } else { p = uintptr(0) @@ -197033,7 +198971,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _, _, _, _, _, _, _, _, _, _, _, _ = azArg, bFirst, nArg, nByte, nCmd, nPre, p, p1, p2, pDel, pSpace, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK nCmd = int32(libc.Xstrlen(tls, zCmd)) - if Xsqlite3_strnicmp(tls, __ccgo_ts+34941, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35087, zCmd, nCmd) == 0 { nByte = int32(libc.Uint64FromInt64(4) * libc.Uint64FromInt32(FTS5_MAX_PREFIX_INDEXES)) bFirst = int32(1) if (*TFts5Config)(unsafe.Pointer(pConfig)).FaPrefix == uintptr(0) { @@ -197059,12 +198997,12 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } } if int32(*(*int8)(unsafe.Pointer(p))) < int32('0') || int32(*(*int8)(unsafe.Pointer(p))) > int32('9') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34948, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35094, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } if (*TFts5Config)(unsafe.Pointer(pConfig)).FnPrefix == int32(FTS5_MAX_PREFIX_INDEXES) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34979, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35125, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -197073,7 +199011,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC p++ } if nPre <= 0 || nPre >= int32(1000) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35012, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35158, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -197083,7 +199021,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35049, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35195, zCmd, nCmd) == 0 { p1 = zArg nArg = int64(libc.Xstrlen(tls, zArg) + uint64(1)) azArg = _sqlite3Fts5MallocZero(tls, bp, int64(uint64(8)*uint64(nArg))) @@ -197091,7 +199029,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC pSpace = pDel if azArg != 0 && pSpace != 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35058, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35204, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { nArg = 0 @@ -197118,7 +199056,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC nArg++ } if p1 == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35091, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35237, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5GetTokenizer(tls, pGlobal, azArg, int32(nArg), pConfig, pzErr) @@ -197129,58 +199067,58 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC Xsqlite3_free(tls, pDel) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35125, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35271, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent != FTS5_CONTENT_NORMAL { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35133, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35279, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if *(*int8)(unsafe.Pointer(zArg)) != 0 { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_EXTERNAL) - (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35165, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) + (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35311, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_NONE) } } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35171, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35317, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35190, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35336, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35233, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35379, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35247, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35393, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, zArg, -int32(1)) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35285, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35431, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35296, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35442, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+5531, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+5595, zCmd, nCmd) == 0 { *(*[4]TFts5Enum)(unsafe.Pointer(bp + 8)) = [4]TFts5Enum{ 0: { - FzName: __ccgo_ts + 8250, + FzName: __ccgo_ts + 8375, FeVal: int32(FTS5_DETAIL_NONE), }, 1: { - FzName: __ccgo_ts + 17779, + FzName: __ccgo_ts + 17866, }, 2: { - FzName: __ccgo_ts + 35331, + FzName: __ccgo_ts + 35477, FeVal: int32(FTS5_DETAIL_COLUMNS), }, 3: {}, @@ -197188,20 +199126,20 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC v2 = _fts5ConfigSetEnum(tls, bp+8, zArg, pConfig+96) *(*int32)(unsafe.Pointer(bp)) = v2 if v2 != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35339, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35485, 0) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35370, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35516, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35380, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35526, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbTokendata = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35414, libc.VaList(bp+80, nCmd, zCmd)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35560, libc.VaList(bp+80, nCmd, zCmd)) return int32(SQLITE_ERROR) } @@ -197273,15 +199211,15 @@ func _fts5ConfigParseColumn(tls *libc.TLS, p uintptr, zCol uintptr, zArg uintptr var v2 uintptr _, _, _ = rc, v1, v2 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35442) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16726) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35447, libc.VaList(bp+8, zCol)) + if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35588) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16813) { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35593, libc.VaList(bp+8, zCol)) rc = int32(SQLITE_ERROR) } else { if zArg != 0 { - if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35477) { + if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35623) { *(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FabUnindexed + uintptr((*TFts5Config)(unsafe.Pointer(p)).FnCol))) = uint8(1) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35487, libc.VaList(bp+8, zArg)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35633, libc.VaList(bp+8, zArg)) rc = int32(SQLITE_ERROR) } } @@ -197307,7 +199245,7 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TFts5Buffer)(unsafe.Pointer(bp + 8)) = TFts5Buffer{} - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35518, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35664, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) if (*TFts5Config)(unsafe.Pointer(p)).FeContent != int32(FTS5_CONTENT_NONE) { i = 0 for { @@ -197315,9 +199253,9 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { break } if (*TFts5Config)(unsafe.Pointer(p)).FeContent == int32(FTS5_CONTENT_EXTERNAL) { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35523, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35669, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) } else { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35530, libc.VaList(bp+32, i)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35676, libc.VaList(bp+32, i)) } goto _1 _1: @@ -197377,8 +199315,8 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in (*TFts5Config)(unsafe.Pointer(pRet)).FzName = _sqlite3Fts5Strndup(tls, bp, *(*uintptr)(unsafe.Pointer(azArg + 2*8)), -int32(1)) (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize = int32(1) (*TFts5Config)(unsafe.Pointer(pRet)).FeDetail = FTS5_DETAIL_FULL - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35442) == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35538, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35588) == 0 { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35684, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } i = int32(3) @@ -197409,19 +199347,19 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { if z == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35567, libc.VaList(bp+40, zOrig)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35713, libc.VaList(bp+40, zOrig)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bOption != 0 { if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { v4 = *(*uintptr)(unsafe.Pointer(bp + 8)) } else { - v4 = __ccgo_ts + 1680 + v4 = __ccgo_ts + 1694 } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { v5 = *(*uintptr)(unsafe.Pointer(bp + 16)) } else { - v5 = __ccgo_ts + 1680 + v5 = __ccgo_ts + 1694 } *(*int32)(unsafe.Pointer(bp)) = _fts5ConfigParseSpecial(tls, pGlobal, pRet, v4, v5, pzErr) } else { @@ -197439,7 +199377,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } /* We only allow contentless_delete=1 if the table is indeed contentless. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FeContent != int32(FTS5_CONTENT_NONE) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35587, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35733, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* We only allow contentless_delete=1 if columnsize=0 is not present. @@ -197447,7 +199385,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in ** This restriction may be removed at some point. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35637, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35783, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* If a tokenizer= option was successfully parsed, the tokenizer has @@ -197460,18 +199398,18 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContent == uintptr(0) { zTail = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pRet)).FeContent == FTS5_CONTENT_NORMAL { - zTail = __ccgo_ts + 35125 + zTail = __ccgo_ts + 35271 } else { if (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize != 0 { - zTail = __ccgo_ts + 35692 + zTail = __ccgo_ts + 35838 } } if zTail != 0 { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35700, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35846, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid == uintptr(0) { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16726, -int32(1)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16813, -int32(1)) } /* Formulate the zContentExprlist text */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -197535,25 +199473,25 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { var _ /* rc at bp+0 */ int32 _, _, _, _ = i, zSep, zSql, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35711, 0) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35857, 0) i = 0 for { if !(zSql != 0 && i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } if i == 0 { - v2 = __ccgo_ts + 1680 + v2 = __ccgo_ts + 1694 } else { - v2 = __ccgo_ts + 15022 + v2 = __ccgo_ts + 15115 } zSep = v2 - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35727, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35873, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) goto _1 _1: ; i++ } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35734, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35442)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35880, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35588)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_declare_vtab(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql) Xsqlite3_free(tls, zSql) @@ -197699,7 +199637,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV var _ /* zRankArgs at bp+8 */ uintptr _, _, _, _, _, _, _, _, _, _ = bVal, nAutomerge, nCrisisMerge, nHashSize, nUsermerge, nVal, pgsz, rc, zIn, v1 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35760) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35906) { pgsz = 0 if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { pgsz = Xsqlite3_value_int(tls, pVal) @@ -197710,7 +199648,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).Fpgsz = pgsz } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35765) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35911) { nHashSize = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nHashSize = Xsqlite3_value_int(tls, pVal) @@ -197721,7 +199659,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnHashSize = nHashSize } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35774) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35920) { nAutomerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nAutomerge = Xsqlite3_value_int(tls, pVal) @@ -197735,7 +199673,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnAutomerge = nAutomerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35784) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35930) { nUsermerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nUsermerge = Xsqlite3_value_int(tls, pVal) @@ -197746,7 +199684,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnUsermerge = nUsermerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35794) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35940) { nCrisisMerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nCrisisMerge = Xsqlite3_value_int(tls, pVal) @@ -197763,7 +199701,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnCrisisMerge = nCrisisMerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35806) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35952) { nVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nVal = Xsqlite3_value_int(tls, pVal) @@ -197778,7 +199716,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } (*TFts5Config)(unsafe.Pointer(pConfig)).FnDeleteMerge = nVal } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35442) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35588) { zIn = Xsqlite3_value_text(tls, pVal) rc = _sqlite3Fts5ConfigParseRank(tls, zIn, bp, bp+8) if rc == SQLITE_OK { @@ -197793,7 +199731,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35818) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35964) { bVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { bVal = Xsqlite3_value_int(tls, pVal) @@ -197835,7 +199773,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in var _ /* p at bp+0 */ uintptr var _ /* rc at bp+8 */ int32 _, _, _, _, _ = iVersion, pVal, zK, zSelect, zSql - zSelect = __ccgo_ts + 35832 + zSelect = __ccgo_ts + 35978 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_OK iVersion = 0 @@ -197855,7 +199793,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in for int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zK = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) pVal = Xsqlite3_column_value(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) - if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35864) { + if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+36010) { iVersion = Xsqlite3_value_int(tls, pVal) } else { *(*int32)(unsafe.Pointer(bp + 12)) = 0 @@ -197867,7 +199805,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && iVersion != int32(FTS5_CURRENT_VERSION) && iVersion != int32(FTS5_CURRENT_VERSION_SECUREDELETE) { *(*int32)(unsafe.Pointer(bp + 8)) = int32(SQLITE_ERROR) if (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg != 0 { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35872, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+36018, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = iVersion @@ -198088,7 +200026,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr } } if int32(*(*int8)(unsafe.Pointer(z2))) == int32('\000') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35943, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36089, 0) return FTS5_EOF } goto _1 @@ -198099,7 +200037,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z2) - int64(z)) default: if _sqlite3Fts5IsBareword(tls, *(*int8)(unsafe.Pointer(z))) == 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35963, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36109, libc.VaList(bp+8, z)) return FTS5_EOF } tok = int32(FTS5_STRING) @@ -198114,13 +200052,13 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr z21++ } (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z21) - int64(z)) - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35994, uint64(2)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36140, uint64(2)) == 0 { tok = int32(FTS5_OR) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35997, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36143, uint64(3)) == 0 { tok = int32(FTS5_NOT) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30738, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30884, uint64(3)) == 0 { tok = int32(FTS5_AND) } break @@ -198535,6 +200473,7 @@ func _fts5ExprSynonymList(tls *libc.TLS, pTerm uintptr, iRowid Ti64, pBuf uintpt *(*int32)(unsafe.Pointer(pn)) = (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn } } + goto synonym_poslist_out synonym_poslist_out: ; if aIter != bp { @@ -198667,6 +200606,7 @@ func _fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMat i++ } } + goto ismatch_out ismatch_out: ; *(*int32)(unsafe.Pointer(pbMatch)) = libc.BoolInt32((*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn > 0) @@ -198873,6 +200813,7 @@ func _fts5ExprNearIsMatch(tls *libc.TLS, pRc uintptr, pNear uintptr) (r int32) { goto ismatch_out } } + goto ismatch_out ismatch_out: ; bRet = libc.BoolInt32((*TFts5Buffer)(unsafe.Pointer((*(*TFts5NearTrimmer)(unsafe.Pointer(a))).FpOut)).Fn > 0) @@ -200189,8 +202130,8 @@ func _sqlite3Fts5ExprClonePhrase(tls *libc.TLS, pExpr uintptr, iPhrase int32, pp func _sqlite3Fts5ParseNear(tls *libc.TLS, pParse uintptr, pTok uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+36001, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34782, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) + if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+36147, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34928, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) } } @@ -200210,7 +202151,7 @@ func _sqlite3Fts5ParseSetDistance(tls *libc.TLS, pParse uintptr, pNear uintptr, } c = *(*int8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i))) if int32(c) < int32('0') || int32(c) > int32('9') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36006, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36152, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) return } nNear = nNear*int32(10) + (int32(*(*int8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i)))) - int32('0')) @@ -200348,7 +202289,7 @@ func _sqlite3Fts5ParseColset(tls *libc.TLS, pParse uintptr, pColset uintptr, p u iCol++ } if iCol == (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21048, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21180, libc.VaList(bp+8, z)) } else { pRet = _fts5ParseColset(tls, pParse, pColset, iCol) } @@ -200472,7 +202413,7 @@ func _sqlite3Fts5ParseSetColset(tls *libc.TLS, pParse uintptr, pExpr uintptr, pC var _ /* pFree at bp+0 */ uintptr *(*uintptr)(unsafe.Pointer(bp)) = pColset if (*TFts5Config)(unsafe.Pointer((*TFts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FeDetail == int32(FTS5_DETAIL_NONE) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36035, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36181, 0) } else { _fts5ParseSetColset(tls, pParse, pExpr, pColset, bp) } @@ -200665,11 +202606,11 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin pPhrase = *(*uintptr)(unsafe.Pointer(pNear + 24)) if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase != int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 0 && (*(*TFts5ExprTerm)(unsafe.Pointer(pPhrase + 32))).FbFirst != 0 { if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase == int32(1) { - v2 = __ccgo_ts + 36088 + v2 = __ccgo_ts + 36234 } else { - v2 = __ccgo_ts + 36001 + v2 = __ccgo_ts + 36147 } - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36095, libc.VaList(bp+8, v2)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36241, libc.VaList(bp+8, v2)) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -200678,7 +202619,7 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin _fts5ExprAddChildren(tls, pRet, pLeft) _fts5ExprAddChildren(tls, pRet, pRight) if (*TFts5ExprNode)(unsafe.Pointer(pRet)).FiHeight > int32(SQLITE_FTS5_MAX_EXPR_DEPTH) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36145, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36291, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -202826,7 +204767,7 @@ func _fts5DataRead(tls *libc.TLS, p uintptr, iRowid Ti64) (r uintptr) { ** to the requested entry. */ if (*TFts5Index)(unsafe.Pointer(p)).FpReader == uintptr(0) && rc == SQLITE_OK { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36198, iRowid, 0, p+72) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36344, iRowid, 0, p+72) } /* If either of the sqlite3_blob_open() or sqlite3_blob_reopen() calls ** above returned SQLITE_ERROR, return SQLITE_CORRUPT_VTAB instead. @@ -202919,7 +204860,7 @@ func _fts5DataWrite(tls *libc.TLS, p uintptr, iRowid Ti64, pData uintptr, nData } if (*TFts5Index)(unsafe.Pointer(p)).FpWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36204, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36350, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return } @@ -202948,7 +204889,7 @@ func _fts5DataDelete(tls *libc.TLS, p uintptr, iFirst Ti64, iLast Ti64) { } if (*TFts5Index)(unsafe.Pointer(p)).FpDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36255, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36401, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if _fts5IndexPrepareStmt(tls, p, p+88, zSql) != 0 { return } @@ -202982,7 +204923,7 @@ func _fts5DataRemoveSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { } if (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36304, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36450, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter, int32(1), iSegid) @@ -203151,7 +205092,7 @@ func _fts5StructureDecode(tls *libc.TLS, pData uintptr, nData int32, piCookie ui } i = int32(4) /* Check if this is a V2 structure record. Set bStructureV2 if it is. */ - if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36344, uint64(4)) { + if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36490, uint64(4)) { i += int32(4) bStructureV2 = int32(1) } @@ -203342,7 +205283,7 @@ func _fts5IndexDataVersion(tls *libc.TLS, p uintptr) (r Ti64) { iVersion = 0 if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*TFts5Index)(unsafe.Pointer(p)).FpDataVersion == uintptr(0) { - (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36349, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) + (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36495, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return 0 } @@ -203426,7 +205367,7 @@ func _fts5StructureWrite(tls *libc.TLS, p uintptr, pStruct uintptr) { _sqlite3Fts5Put32(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, iCookie) (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = int32(4) if (*TFts5Structure)(unsafe.Pointer(pStruct)).FnOriginCntr > uint64(0) { - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36344, uint64(4)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36490, uint64(4)) *(*int32)(unsafe.Pointer(bp + 8)) += int32(4) } *(*int32)(unsafe.Pointer(bp + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), uint64((*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel)) @@ -204376,6 +206317,7 @@ func _fts5SegIterNext_None(tls *libc.TLS, p uintptr, pIter uintptr, pbNewTerm ui } _fts5SegIterLoadNPos(tls, p, pIter) return + goto next_none_eof next_none_eof: ; _fts5DataRelease(tls, (*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf) @@ -204738,6 +206680,7 @@ func _fts5LeafSeek(tls *libc.TLS, p uintptr, bGe int32, pIter uintptr, pTerm uin *(*Tu32)(unsafe.Pointer(bp)) += uint32(_sqlite3Fts5GetVarint32(tls, a+uintptr(*(*Tu32)(unsafe.Pointer(bp))), bp+4)) } } + goto search_failed search_failed: ; if bGe == 0 { @@ -204769,6 +206712,7 @@ search_failed: } } } + goto search_success search_success: ; if int64(*(*Tu32)(unsafe.Pointer(bp)))+int64(*(*Tu32)(unsafe.Pointer(bp + 8))) > int64(n) || *(*Tu32)(unsafe.Pointer(bp + 8)) < uint32(1) { @@ -204798,7 +206742,7 @@ func _fts5IdxSelectStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36372, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36518, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect } @@ -204887,7 +206831,7 @@ func _fts5IdxNextStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36456, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36602, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect } @@ -205973,6 +207917,7 @@ func _fts5IterSetOutputs_Col100(tls *libc.TLS, pIter uintptr, pSeg uintptr) { iPrevOut = iPrev } } + goto setoutputs_col_out setoutputs_col_out: ; (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*TFts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp @@ -206190,6 +208135,7 @@ func _fts5MultiIterNew(tls *libc.TLS, p uintptr, pStruct uintptr, flags int32, p _fts5MultiIterFree(tls, pNew) *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) } + goto fts5MultiIterNew_post_check fts5MultiIterNew_post_check: ; return @@ -206501,7 +208447,7 @@ func _fts5WriteFlushBtree(tls *libc.TLS, p uintptr, pWriter uintptr) { if (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn > 0 { v1 = (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fp } else { - v1 = __ccgo_ts + 1680 + v1 = __ccgo_ts + 1694 } z = v1 /* The following was already done in fts5WriteInit(): */ @@ -206856,7 +208802,7 @@ func _fts5WriteInit(tls *libc.TLS, p uintptr, pWriter uintptr, iSegid int32) { _sqlite3Fts5BufferSize(tls, p+60, pWriter+8+8, uint32(nBuffer)) if (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36538, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36684, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { /* Initialize the 4-byte leaf-page header to 0x00. */ @@ -207346,7 +209292,7 @@ func _fts5SecureDeleteIdxEntry(tls *libc.TLS, p uintptr, iSegid int32, iPgno int defer tls.Free(32) if iPgno != int32(1) { if (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx == uintptr(0) { - _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36595, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36741, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx, int32(1), iSegid) @@ -208836,7 +210782,7 @@ func _sqlite3Fts5IndexReinit(tls *libc.TLS, p uintptr) (r int32) { if (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FbContentlessDelete != 0 { (*(*TFts5Structure)(unsafe.Pointer(bp))).FnOriginCntr = uint64(1) } - _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1680, 0) + _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1694, 0) _fts5StructureWrite(tls, p, bp) return _fts5IndexReturn(tls, p) } @@ -208863,11 +210809,11 @@ func _sqlite3Fts5IndexOpen(tls *libc.TLS, pConfig uintptr, bCreate int32, pp uin if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Index)(unsafe.Pointer(p)).FpConfig = pConfig (*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit = int32(FTS5_WORK_UNIT) - (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36656, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36802, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl != 0 && bCreate != 0 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25773, __ccgo_ts+36664, 0, pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25919, __ccgo_ts+36810, 0, pzErr) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11825, __ccgo_ts+36699, int32(1), pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11950, __ccgo_ts+36845, int32(1), pzErr) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5IndexReinit(tls, p) @@ -209401,7 +211347,7 @@ func _fts5SetupTokendataIter(tls *libc.TLS, p uintptr, pToken uintptr, nToken in pNew = _fts5MultiIterAlloc(tls, p, (*TFts5Structure)(unsafe.Pointer(pStruct)).FnSegment) if pSmall != 0 { _sqlite3Fts5BufferSet(tls, p+60, bp, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fn, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+36743) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+36889) } else { _sqlite3Fts5BufferSet(tls, p+60, bp, nToken, pToken) } @@ -209921,7 +211867,7 @@ func _sqlite3Fts5IndexSetCookie(tls *libc.TLS, p uintptr, iNew int32) (r int32) pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig /* Binary representation of iNew */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) _sqlite3Fts5Put32(tls, bp, iNew) - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36198, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36344, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) if rc == SQLITE_OK { Xsqlite3_blob_write(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), bp, int32(4), 0) rc = Xsqlite3_blob_close(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) @@ -210515,7 +212461,7 @@ func _fts5IndexIntegrityCheckSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { if (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst == 0 { return } - _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36745, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) + _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36891, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) /* Iterate through the b-tree hierarchy. */ for (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { /* Data for this leaf */ zIdxTerm = Xsqlite3_column_blob(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -210746,7 +212692,7 @@ func _sqlite3Fts5IndexIntegrityCheck(tls *libc.TLS, p uintptr, cksum Tu64, bUseC } else { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = 0 _fts5SegiterPoslist(tls, p, *(*uintptr)(unsafe.Pointer(bp + 16))+104+uintptr((*(*TFts5CResult)(unsafe.Pointer((*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaFirst + 1*4))).FiFirst)*128, uintptr(0), bp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+36831) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+36977) for 0 == _sqlite3Fts5PoslistNext64(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn, bp+40, bp+32) { iCol = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) >> libc.Int32FromInt32(32)) iTokOff = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) & libc.Int64FromInt32(0x7FFFFFFF)) @@ -211334,7 +213280,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) bSeenMatch = 0 bSeenRank = 0 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36836, 0) + (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36982, 0) return int32(SQLITE_ERROR) } idxStr = Xsqlite3_malloc(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint*int32(8)+int32(1)) @@ -211373,7 +213319,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v3 = iIdxStr iIdxStr++ *(*int8)(unsafe.Pointer(idxStr + uintptr(v3))) = int8('M') - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5170, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5234, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) } } @@ -211393,7 +213339,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v6 = int32('G') } *(*int8)(unsafe.Pointer(idxStr + uintptr(v5))) = int8(v6) - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5170, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5234, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) iCons++ v7 = iCons @@ -211831,7 +213777,7 @@ func _fts5NextMethod(tls *libc.TLS, pCursor uintptr) (r int32) { *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_EOF) rc = Xsqlite3_reset(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpStmt) if rc != SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } } else { rc = SQLITE_OK @@ -211858,7 +213804,7 @@ func _fts5PrepareStatement(tls *libc.TLS, ppStmt uintptr, pConfig uintptr, zFmt } else { rc = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } Xsqlite3_free(tls, zSql) } @@ -211893,21 +213839,21 @@ func _fts5CursorFirstSorted(tls *libc.TLS, pTab uintptr, pCsr uintptr, bDesc int ** ** If SQLite a built-in statement cache, this wouldn't be a problem. */ if zRankArgs != 0 { - v1 = __ccgo_ts + 15022 + v1 = __ccgo_ts + 15115 } else { - v1 = __ccgo_ts + 1680 + v1 = __ccgo_ts + 1694 } if zRankArgs != 0 { v2 = zRankArgs } else { - v2 = __ccgo_ts + 1680 + v2 = __ccgo_ts + 1694 } if bDesc != 0 { - v3 = __ccgo_ts + 36875 + v3 = __ccgo_ts + 37021 } else { - v3 = __ccgo_ts + 36880 + v3 = __ccgo_ts + 37026 } - rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+36884, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) + rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+37030, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpSorter = pSorter if rc == SQLITE_OK { (*TFts5FullTable)(unsafe.Pointer(pTab)).FpSortCsr = pCsr @@ -211965,14 +213911,14 @@ func _fts5SpecialMatch(tls *libc.TLS, pTab uintptr, pCsr uintptr, zQuery uintptr n++ } (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan = int32(FTS5_PLAN_SPECIAL) - if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+36939, z, n) { + if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+37085, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = int64(_sqlite3Fts5IndexReads(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)) } else { - if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5513, z, n) { + if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5577, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId } else { /* An unrecognized directive. Return an error message. */ - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36945, libc.VaList(bp+8, n, z)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37091, libc.VaList(bp+8, n, z)) rc = int32(SQLITE_ERROR) } } @@ -212022,7 +213968,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { zRank = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank zRankArgs = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs if zRankArgs != 0 { - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36973, libc.VaList(bp+24, zRankArgs)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37119, libc.VaList(bp+24, zRankArgs)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp+8, uintptr(0)) @@ -212055,7 +214001,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { pAux = _fts5FindAuxiliary(tls, pTab, zRank) if pAux == uintptr(0) { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36983, libc.VaList(bp+24, zRank)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37129, libc.VaList(bp+24, zRank)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -212089,7 +214035,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_FREE_ZRANK) } else { if rc == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37004, libc.VaList(bp+24, z)) + (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37150, libc.VaList(bp+24, z)) } } } else { @@ -212097,7 +214043,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRank (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRankArgs } else { - (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 34936 + (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 35082 (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = uintptr(0) } } @@ -212148,7 +214094,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint iIdxStr = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36836, 0) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36982, 0) return int32(SQLITE_ERROR) } if (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan != 0 { @@ -212170,7 +214116,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint case int32('M'): zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8))) if zText == uintptr(0) { - zText = __ccgo_ts + 1680 + zText = __ccgo_ts + 1694 } iCol = 0 for cond := true; cond; cond = int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) <= int32('9') { @@ -212292,7 +214238,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent == uintptr(0) { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37037, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37183, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) rc = int32(SQLITE_ERROR) } else { /* This is either a full-table scan (ePlan==FTS5_PLAN_SCAN) or a lookup @@ -212316,6 +214262,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } } + goto filter_out filter_out: ; _sqlite3Fts5ExprFree(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -212429,7 +214376,7 @@ func _fts5SeekCursor(tls *libc.TLS, pCsr uintptr, bErrormsg int32) (r int32) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< int32(1) { - v1 = __ccgo_ts + 20901 + v1 = __ccgo_ts + 21033 } else { - v1 = __ccgo_ts + 37315 + v1 = __ccgo_ts + 37461 } - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37327, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37473, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if nArg == int32(1) { @@ -212686,7 +214633,7 @@ func _fts5UpdateMethod(tls *libc.TLS, pVtab uintptr, nArg int32, apVal uintptr, } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && bUpdateOrDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FbSecureDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion == int32(FTS5_CURRENT_VERSION) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35864, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+36010, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = int32(FTS5_CURRENT_VERSION_SECUREDELETE) } @@ -213482,7 +215429,7 @@ func _fts5ApiCallback(tls *libc.TLS, context uintptr, argc int32, argv uintptr) iCsrId = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) pCsr = _fts5CursorFromCsrid(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal, iCsrId) if pCsr == uintptr(0) || (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan == 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37364, libc.VaList(bp+8, iCsrId)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37510, libc.VaList(bp+8, iCsrId)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } else { @@ -213673,7 +215620,7 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg = uintptr(0) } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 && Xsqlite3_vtab_nochange(tls, pCtx) != 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37385, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37531, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -213915,7 +215862,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr pMod = _fts5LocateTokenizer(tls, pGlobal, v1) if pMod == uintptr(0) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37456, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37602, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) } else { if azArg != 0 { v2 = azArg + 1*8 @@ -213931,7 +215878,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr (*TFts5Config)(unsafe.Pointer(pConfig)).FpTokApi = pMod + 16 if rc != SQLITE_OK { if pzErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37478, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37624, 0) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FePattern = _sqlite3Fts5TokenizerPattern(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pMod)).Fx.FxCreate, (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok) @@ -213986,7 +215933,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { _, _ = pGlobal, ppApi pGlobal = Xsqlite3_user_data(tls, pCtx) _ = nArg - ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37509) + ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37655) if ppApi != 0 { *(*uintptr)(unsafe.Pointer(ppApi)) = pGlobal } @@ -214000,7 +215947,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { func _fts5SourceIdFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apUnused uintptr) { _ = nArg _ = apUnused - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37522, -int32(1), uintptr(-libc.Int32FromInt32(1))) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37668, -int32(1), uintptr(-libc.Int32FromInt32(1))) } // C documentation @@ -214029,11 +215976,11 @@ func _fts5ShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName2 = [5]uintptr{ - 0: __ccgo_ts + 37613, - 1: __ccgo_ts + 35125, - 2: __ccgo_ts + 25773, - 3: __ccgo_ts + 35692, - 4: __ccgo_ts + 11825, + 0: __ccgo_ts + 37759, + 1: __ccgo_ts + 35271, + 2: __ccgo_ts + 25919, + 3: __ccgo_ts + 35838, + 4: __ccgo_ts + 11950, } // C documentation @@ -214047,20 +215994,26 @@ func _fts5IntegrityMethod(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zTabnam bp := tls.Alloc(32) defer tls.Free(32) var pTab uintptr - var rc int32 - _, _ = pTab, rc + var rc, v1 int32 + _, _, _ = pTab, rc, v1 pTab = pVtab _ = isQuick rc = _sqlite3Fts5StorageIntegrity(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, 0) if rc&int32(0xff) == int32(SQLITE_CORRUPT) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37620, libc.VaList(bp+8, zSchema, zTabname)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37766, libc.VaList(bp+8, zSchema, zTabname)) + if *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { + v1 = SQLITE_OK + } else { + v1 = int32(SQLITE_NOMEM) + } + rc = v1 } else { if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37666, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37812, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) } } _sqlite3Fts5IndexCloseReader(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex) - return SQLITE_OK + return rc } func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { @@ -214079,7 +216032,7 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateFunction = __ccgo_fp(_fts5CreateAux) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateTokenizer = __ccgo_fp(_fts5CreateTokenizer) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxFindTokenizer = __ccgo_fp(_fts5FindTokenizer) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37729, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37875, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) if rc == SQLITE_OK { rc = _sqlite3Fts5IndexInit(tls, db) } @@ -214096,10 +216049,10 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { rc = _sqlite3Fts5VocabInit(tls, pGlobal, db) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37729, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37875, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37734, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37880, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) } } /* If SQLITE_FTS5_ENABLE_TEST_MI is defined, assume that the file @@ -214202,17 +216155,17 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, ** statements to operate on it. */ if *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(eStmt)*8)) == uintptr(0) { azStmt = [11]uintptr{ - 0: __ccgo_ts + 37749, - 1: __ccgo_ts + 37817, - 2: __ccgo_ts + 37886, - 3: __ccgo_ts + 37919, - 4: __ccgo_ts + 37958, - 5: __ccgo_ts + 37998, - 6: __ccgo_ts + 38037, - 7: __ccgo_ts + 38080, - 8: __ccgo_ts + 38119, - 9: __ccgo_ts + 38163, - 10: __ccgo_ts + 38203, + 0: __ccgo_ts + 37895, + 1: __ccgo_ts + 37963, + 2: __ccgo_ts + 38032, + 3: __ccgo_ts + 38065, + 4: __ccgo_ts + 38104, + 5: __ccgo_ts + 38144, + 6: __ccgo_ts + 38183, + 7: __ccgo_ts + 38226, + 8: __ccgo_ts + 38265, + 9: __ccgo_ts + 38309, + 10: __ccgo_ts + 38349, } pC = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig zSql = uintptr(0) @@ -214249,16 +216202,16 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, } case int32(FTS5_STMT_REPLACE_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v2 = __ccgo_ts + 38226 + v2 = __ccgo_ts + 38372 } else { - v2 = __ccgo_ts + 1680 + v2 = __ccgo_ts + 1694 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName, v2)) case int32(FTS5_STMT_LOOKUP_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v3 = __ccgo_ts + 38229 + v3 = __ccgo_ts + 38375 } else { - v3 = __ccgo_ts + 1680 + v3 = __ccgo_ts + 1694 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, v3, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName)) default: @@ -214277,7 +216230,7 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, (*TFts5Config)(unsafe.Pointer((*TFts5Storage)(unsafe.Pointer(p)).FpConfig)).FbLock-- Xsqlite3_free(tls, zSql) if rc != SQLITE_OK && pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3827, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3891, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) } } } @@ -214314,12 +216267,12 @@ func _sqlite3Fts5DropAll(tls *libc.TLS, pConfig uintptr) (r int32) { defer tls.Free(64) var rc int32 _ = rc - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38237, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38383, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38341, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38487, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38379, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38525, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } return rc } @@ -214328,7 +216281,7 @@ func _fts5StorageRenameOne(tls *libc.TLS, pConfig uintptr, pRc uintptr, zTail ui bp := tls.Alloc(48) defer tls.Free(48) if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38417, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) + *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38563, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) } } @@ -214340,14 +216293,14 @@ func _sqlite3Fts5StorageRename(tls *libc.TLS, pStorage uintptr, zName uintptr) ( _ = pConfig pConfig = (*TFts5Storage)(unsafe.Pointer(pStorage)).FpConfig *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageSync(tls, pStorage) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25773, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11825, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37613, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25919, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11950, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37759, zName) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35692, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35838, zName) } if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35125, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35271, zName) } return *(*int32)(unsafe.Pointer(bp)) } @@ -214367,13 +216320,13 @@ func _sqlite3Fts5CreateTable(tls *libc.TLS, pConfig uintptr, zPost uintptr, zDef _, _ = rc, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if bWithout != 0 { - v1 = __ccgo_ts + 30413 + v1 = __ccgo_ts + 30559 } else { - v1 = __ccgo_ts + 1680 + v1 = __ccgo_ts + 1694 } - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38459, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38605, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38489, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38635, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -214414,36 +216367,36 @@ func _sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCr if zDefn == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38533, 0) + Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38679, 0) iOff = int32(libc.Xstrlen(tls, zDefn)) i = 0 for { if !(i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } - Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38556, libc.VaList(bp+8, i)) + Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38702, libc.VaList(bp+8, i)) iOff += int32(libc.Xstrlen(tls, zDefn+uintptr(iOff))) goto _2 _2: ; i++ } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35125, zDefn, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35271, zDefn, 0, pzErr) } Xsqlite3_free(tls, zDefn) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - zCols = __ccgo_ts + 38562 + zCols = __ccgo_ts + 38708 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 { - zCols = __ccgo_ts + 38594 + zCols = __ccgo_ts + 38740 } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35692, zCols, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35838, zCols, 0, pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37613, __ccgo_ts+38642, int32(1), pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37759, __ccgo_ts+38788, int32(1), pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35864, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+36010, uintptr(0), int32(FTS5_CURRENT_VERSION)) } } if rc != 0 { @@ -214785,9 +216738,9 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig (*TFts5Storage)(unsafe.Pointer(p)).FbTotalsValid = 0 /* Delete the contents of the %_data and %_docsize tables. */ - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38659, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38805, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38709, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38855, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } /* Reinitialize the %_data table. This call creates the initial structure ** and averages records. */ @@ -214795,7 +216748,7 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3Fts5IndexReinit(tls, (*TFts5Storage)(unsafe.Pointer(p)).FpIndex) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35864, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+36010, uintptr(0), int32(FTS5_CURRENT_VERSION)) } return rc } @@ -215009,7 +216962,7 @@ func _fts5StorageCount(tls *libc.TLS, p uintptr, zSuffix uintptr, pnRow uintptr) var _ /* pCnt at bp+0 */ uintptr _, _, _ = pConfig, rc, zSql pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38738, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38884, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -215219,14 +217172,14 @@ func _sqlite3Fts5StorageIntegrity(tls *libc.TLS, p uintptr, iArg int32) (r int32 ** number of rows. */ if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { *(*Ti64)(unsafe.Pointer(bp + 48)) = 0 - rc = _fts5StorageCount(tls, p, __ccgo_ts+35125, bp+48) + rc = _fts5StorageCount(tls, p, __ccgo_ts+35271, bp+48) if rc == SQLITE_OK && *(*Ti64)(unsafe.Pointer(bp + 48)) != (*TFts5Storage)(unsafe.Pointer(p)).FnTotalRow { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<= int32('A') && int32(*(*uint8)(unsafe.Pointer(zCsr))) <= int32('Z') { @@ -216147,6 +218102,7 @@ _5: goto _2 _1: ; + goto tokenize_done tokenize_done: ; if rc == int32(SQLITE_DONE) { @@ -216210,7 +218166,7 @@ func _fts5PorterCreate(tls *libc.TLS, pCtx uintptr, azArg uintptr, nArg int32, p pApi = pCtx rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zBase = __ccgo_ts + 38830 + zBase = __ccgo_ts + 38976 if nArg > 0 { zBase = *(*uintptr)(unsafe.Pointer(azArg)) } @@ -216425,64 +218381,64 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38840, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38986, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38843, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38989, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38848, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38994, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('e'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38853, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38999, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38856, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39002, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('l'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38859, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39005, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38864, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39010, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38869, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39015, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38873, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39019, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38879, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39025, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38884, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39030, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -216491,49 +218447,49 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38888, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39034, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1_and_S_or_T(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38892, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39038, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } } case int32('s'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38895, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39041, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('t'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38899, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39045, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38903, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39049, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38907, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39053, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38911, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39057, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('z'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38915, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39061, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -216550,20 +218506,20 @@ func _fts5PorterStep1B2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38919, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38899, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39065, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39045, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('b'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38922, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38925, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39068, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39071, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38929, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38915, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39075, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39061, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } @@ -216579,75 +218535,75 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38932, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39078, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38899, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39045, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38940, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39086, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38947, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39093, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(4) } } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38952, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39098, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38848, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38994, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38957, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39103, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38843, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38989, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } } case int32('e'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38962, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39108, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38915, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39061, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('g'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38967, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39113, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15939, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+16018, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('l'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38972, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39118, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38925, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39071, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38976, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39122, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38840, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38986, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38981, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39127, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38884, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39030, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38987, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39133, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38991, uint64(1)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39137, uint64(1)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(1) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38993, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39139, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38907, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39053, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } @@ -216656,48 +218612,48 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38999, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39145, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38915, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39061, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39007, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39153, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38899, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39045, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39013, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39159, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38899, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39045, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } } } case int32('s'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39018, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39164, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38840, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38986, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39024, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39170, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38911, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39057, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39032, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39178, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39040, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39186, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39044, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39190, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38907, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39053, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } @@ -216705,21 +218661,21 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39052, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39198, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38840, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38986, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39058, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39204, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38911, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39057, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39064, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39210, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38925, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39071, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(3) } } @@ -216737,48 +218693,48 @@ func _fts5PorterStep3(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39071, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39217, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38856, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39002, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } case int32('s'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39076, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39222, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39081, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39227, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38856, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39002, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39087, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39233, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38856, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39002, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39040, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39186, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39093, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39239, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } case int32('z'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39099, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39245, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38840, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38986, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } @@ -216794,13 +218750,13 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('e'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39105, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39251, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39109, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39255, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(2) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39112, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39258, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) ret = int32(1) @@ -216808,7 +218764,7 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39115, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39261, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) ret = int32(1) @@ -216893,6 +218849,7 @@ func _fts5PorterCb(tls *libc.TLS, pCtx uintptr, tflags int32, pToken uintptr, nT *(*int32)(unsafe.Pointer(bp))-- } return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, aBuf, *(*int32)(unsafe.Pointer(bp)), iStart, iEnd) + goto pass_through pass_through: ; return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, pToken, nToken, iStart, iEnd) @@ -216968,14 +218925,14 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p break } zArg = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+int32(1))*8)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39119) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39265) { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || *(*int8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { (*TTrigramTokenizer)(unsafe.Pointer(pNew)).FbFold = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('0')) } } else { - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38812) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38958) { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('2') || *(*int8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { @@ -217249,7 +219206,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { Fx Tfts5_tokenizer }{ 0: { - FzName: __ccgo_ts + 38830, + FzName: __ccgo_ts + 38976, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5UnicodeCreate), FxDelete: __ccgo_fp(_fts5UnicodeDelete), @@ -217257,7 +219214,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 1: { - FzName: __ccgo_ts + 39134, + FzName: __ccgo_ts + 39280, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5AsciiCreate), FxDelete: __ccgo_fp(_fts5AsciiDelete), @@ -217265,7 +219222,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 2: { - FzName: __ccgo_ts + 39140, + FzName: __ccgo_ts + 39286, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5PorterCreate), FxDelete: __ccgo_fp(_fts5PorterDelete), @@ -217273,7 +219230,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 3: { - FzName: __ccgo_ts + 39147, + FzName: __ccgo_ts + 39293, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5TriCreate), FxDelete: __ccgo_fp(_fts5TriDelete), @@ -222807,16 +224764,16 @@ func _fts5VocabTableType(tls *libc.TLS, zType uintptr, pzErr uintptr, peType uin zCopy = _sqlite3Fts5Strndup(tls, bp, zType, -int32(1)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { _sqlite3Fts5Dequote(tls, zCopy) - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39155) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39301) == 0 { *(*int32)(unsafe.Pointer(peType)) = FTS5_VOCAB_COL } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39159) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39305) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_ROW) } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39163) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39309) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_INSTANCE) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39172, libc.VaList(bp+16, zCopy)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39318, libc.VaList(bp+16, zCopy)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -222885,15 +224842,15 @@ func _fts5VocabInitVtab(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg var _ /* rc at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _ = azSchema, bDb, nByte, nDb, nTab, pRet, zDb, zTab, zType, v1, v2, v3 azSchema = [3]uintptr{ - 0: __ccgo_ts + 39206, - 1: __ccgo_ts + 39246, - 2: __ccgo_ts + 39281, + 0: __ccgo_ts + 39352, + 1: __ccgo_ts + 39392, + 2: __ccgo_ts + 39427, } pRet = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+23774, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) + bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+23897, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) if argc != int32(5) && bDb == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39324, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39470, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bDb != 0 { @@ -223063,10 +225020,10 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) zSql = uintptr(0) if (*TFts5VocabTable)(unsafe.Pointer(pTab)).FbBusy != 0 { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39357, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39503, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) return int32(SQLITE_ERROR) } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39388, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39534, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, (*TFts5VocabTable)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), bp+8, uintptr(0)) } @@ -223085,7 +225042,7 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39439, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39585, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } else { @@ -223387,7 +225344,7 @@ func _fts5VocabFilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, zUnuse if pLe != 0 { zCopy = Xsqlite3_value_text(tls, pLe) if zCopy == uintptr(0) { - zCopy = __ccgo_ts + 1680 + zCopy = __ccgo_ts + 1694 } (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm = Xsqlite3_value_bytes(tls, pLe) (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm = Xsqlite3_malloc(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm+int32(1)) @@ -223511,7 +225468,7 @@ func _sqlite3Fts5VocabInit(tls *libc.TLS, pGlobal uintptr, db uintptr) (r int32) var p uintptr _ = p p = pGlobal - return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39465, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) + return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39611, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) } var _fts5Vocab = Tsqlite3_module{ @@ -223564,7 +225521,7 @@ func init() { // /************** End of stmt.c ************************************************/ // /* Return the source-id for this library */ func Xsqlite3_sourceid(tls *libc.TLS) (r uintptr) { - return __ccgo_ts + 39475 + return __ccgo_ts + 39621 } type TAggInfo_col = struct { @@ -223846,11 +225803,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]int8{'3', '.', '4', '5', '.', '3'} +var Xsqlite3_version = [7]int8{'3', '.', '4', '6', '.', '0'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-14.0.1 20240228 (Red Hat 14.0.1-0)\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_PTHREADS\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%04d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00(subquery-%u)\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSmaller\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00PRAGMA \"%w\".integrity_check(%Q)\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00ceiling\x00floor\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00wrong # of entries in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00RIGHT PART OF \x00USE TEMP B-TREE FOR %sORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00parser stack overflow\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-14.0.1 20240411 (Red Hat 14.0.1-0)\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_PTHREADS\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00ceiling\x00floor\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%04d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00%u-ROW VALUES CLAUSE\x00(subquery-%u)\x00unrecognized token: \"%s\"\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSizeBetween\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: \"%s\" - should this be a string literal in single-quotes?\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00SCAN %S\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00wrong # of entries in index \x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00LAST TERM OF \x00USE TEMP B-TREE FOR %sORDER BY\x00USE TEMP B-TREE FOR LAST %d TERMS OF ORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00syntax error\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00,\n\x00: \x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00 \x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_pretty\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00" type Sqlite3_int64 = sqlite3_int64 type Sqlite3_mutex_methods = sqlite3_mutex_methods diff --git a/vendor/modernc.org/sqlite/lib/sqlite_linux_ppc64le.go b/vendor/modernc.org/sqlite/lib/sqlite_linux_ppc64le.go index 9735f670..e4915c3b 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_linux_ppc64le.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_linux_ppc64le.go @@ -1,4 +1,4 @@ -// Code generated for linux/ppc64le by 'generator -mlong-double-64 --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -import runtime -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -extended-errors -o sqlite3.go sqlite3.c -I/tmp/libsqlite3/sqlite-amalgamation-3450300/ccgo -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. +// Code generated for linux/ppc64le by 'generator -mlong-double-64 --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -I /home/debian/src/modernc.org/builder/.exclude/modernc.org/libz/include/linux/ppc64le -I /home/debian/src/modernc.org/builder/.exclude/modernc.org/libtcl8.6/include/linux/ppc64le -extended-errors -o sqlite3.go sqlite3.c -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. //go:build linux && ppc64le // +build linux,ppc64le @@ -10,8 +10,6 @@ import ( "unsafe" "modernc.org/libc" - - "runtime" ) var ( @@ -1014,6 +1012,7 @@ const OPFLG_IN1 = 2 const OPFLG_IN2 = 4 const OPFLG_IN3 = 8 const OPFLG_JUMP = 1 +const OPFLG_JUMP0 = 128 const OPFLG_NCYCLE = 64 const OPFLG_OUT2 = 16 const OPFLG_OUT3 = 32 @@ -1091,7 +1090,7 @@ const OP_IfNotOpen = 25 const OP_IfNotZero = 60 const OP_IfNullRow = 20 const OP_IfPos = 59 -const OP_IfSmaller = 33 +const OP_IfSizeBetween = 33 const OP_IncrVacuum = 62 const OP_Init = 8 const OP_InitCoroutine = 11 @@ -1495,6 +1494,7 @@ const SF_ComplexResult = 262144 const SF_Compound = 256 const SF_Converted = 65536 const SF_CopyCte = 67108864 +const SF_Correlated = 536870912 const SF_Distinct = 1 const SF_Expanded = 64 const SF_FixedLimit = 16384 @@ -1767,6 +1767,7 @@ const SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT = -1 const SQLITE_DEFAULT_LOOKASIDE = 40 const SQLITE_DEFAULT_MEMSTATUS = 0 const SQLITE_DEFAULT_MMAP_SIZE = 0 +const SQLITE_DEFAULT_OPTIMIZE_LIMIT = 2000 const SQLITE_DEFAULT_PAGE_SIZE = 4096 const SQLITE_DEFAULT_PCACHE_INITSZ = 20 const SQLITE_DEFAULT_PROXYDIR_PERMISSIONS = 493 @@ -1784,6 +1785,7 @@ const SQLITE_DESERIALIZE_READONLY = 4 const SQLITE_DESERIALIZE_RESIZEABLE = 2 const SQLITE_DETACH = 25 const SQLITE_DETERMINISTIC = 2048 +const SQLITE_DIGIT_SEPARATOR = 95 const SQLITE_DIRECTONLY = 524288 const SQLITE_DIRECT_OVERFLOW_READ = 1 const SQLITE_DONE = 101 @@ -2208,7 +2210,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355" +const SQLITE_SOURCE_ID = "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2316,8 +2318,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.45.3" -const SQLITE_VERSION_NUMBER = 3045003 +const SQLITE_VERSION = "3.46.0" +const SQLITE_VERSION_NUMBER = 3046000 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -2466,11 +2468,11 @@ const TF_HasStat1 = 16 const TF_HasStat4 = 8192 const TF_HasStored = 64 const TF_HasVirtual = 32 +const TF_MaybeReanalyze = 256 const TF_NoVisibleRowid = 512 const TF_OOOHidden = 1024 const TF_Readonly = 1 const TF_Shadow = 4096 -const TF_StatsUsed = 256 const TF_Strict = 65536 const TF_WithoutRowid = 128 const TIMER_ABSTIME = 1 @@ -2639,7 +2641,7 @@ const TK_ID = 59 const TK_IF = 18 const TK_IF_NULL_ROW = 179 const TK_IGNORE = 63 -const TK_ILLEGAL = 184 +const TK_ILLEGAL = 185 const TK_IMMEDIATE = 8 const TK_IN = 49 const TK_INDEX = 161 @@ -2687,6 +2689,7 @@ const TK_PRAGMA = 70 const TK_PRECEDING = 88 const TK_PRIMARY = 122 const TK_PTR = 112 +const TK_QNUMBER = 183 const TK_QUERY = 3 const TK_RAISE = 71 const TK_RANGE = 89 @@ -2711,7 +2714,7 @@ const TK_SELECT_COLUMN = 178 const TK_SEMI = 1 const TK_SET = 130 const TK_SLASH = 109 -const TK_SPACE = 183 +const TK_SPACE = 184 const TK_SPAN = 181 const TK_STAR = 108 const TK_STRING = 117 @@ -2724,12 +2727,12 @@ const TK_TRANSACTION = 6 const TK_TRIGGER = 77 const TK_TRUEFALSE = 170 const TK_TRUTH = 175 -const TK_UMINUS = 173 +const TK_UMINUS = 174 const TK_UNBOUNDED = 90 const TK_UNION = 134 const TK_UNIQUE = 123 const TK_UPDATE = 129 -const TK_UPLUS = 174 +const TK_UPLUS = 173 const TK_USING = 144 const TK_VACUUM = 78 const TK_VALUES = 139 @@ -2885,31 +2888,37 @@ const W_OK = 2 const XN_EXPR = -2 const XN_ROWID = -1 const X_OK = 1 +const YYDYNSTACK = 1 const YYFALLBACK = 1 +const YYFREE = 0 +const YYGROWABLESTACK = 1 const YYMALLOCARGTYPE = 0 -const YYNOCODE = 319 +const YYNOCODE = 322 const YYNOERRORRECOVERY = 1 -const YYNRULE = 405 -const YYNRULE_WITH_ACTION = 340 -const YYNSTATE = 579 -const YYNTOKEN = 185 +const YYNRULE = 409 +const YYNRULE_WITH_ACTION = 344 +const YYNSTATE = 583 +const YYNTOKEN = 186 const YYPARSEFREENEVERNULL = 1 +const YYREALLOC = 0 const YYSTACKDEPTH = 100 const YYWILDCARD = 101 -const YY_ACCEPT_ACTION = 1244 -const YY_ACTTAB_COUNT = 2100 -const YY_ERROR_ACTION = 1243 -const YY_MAX_REDUCE = 1650 -const YY_MAX_SHIFT = 578 -const YY_MAX_SHIFTREDUCE = 1242 -const YY_MIN_REDUCE = 1246 -const YY_MIN_SHIFTREDUCE = 838 -const YY_NO_ACTION = 1245 -const YY_REDUCE_COUNT = 410 -const YY_REDUCE_MAX = 1753 -const YY_REDUCE_MIN = -271 -const YY_SHIFT_COUNT = 578 -const YY_SHIFT_MAX = 2088 +const YY_ACCEPT_ACTION = 1255 +const YY_ACTTAB_COUNT = 2142 +const YY_ERROR_ACTION = 1254 +const YY_MAX_DSTRCTR = 319 +const YY_MAX_REDUCE = 1665 +const YY_MAX_SHIFT = 582 +const YY_MAX_SHIFTREDUCE = 1253 +const YY_MIN_DSTRCTR = 205 +const YY_MIN_REDUCE = 1257 +const YY_MIN_SHIFTREDUCE = 845 +const YY_NO_ACTION = 1256 +const YY_REDUCE_COUNT = 411 +const YY_REDUCE_MAX = 1798 +const YY_REDUCE_MIN = -275 +const YY_SHIFT_COUNT = 582 +const YY_SHIFT_MAX = 2128 const YY_SHIFT_MIN = 0 const _ALLOCA_H = 1 const _ARCH_PPC = 1 @@ -3621,6 +3630,9 @@ const fdatasync = 0 const first_valueInvFunc = 0 const first_valueValueFunc = 0 const fts5GetVarint = 0 +const fts5YYDYNSTACK = 0 +const fts5YYFREE = 0 +const fts5YYGROWABLESTACK = 0 const fts5YYMALLOCARGTYPE = 0 const fts5YYNFTS5TOKEN = 16 const fts5YYNOCODE = 27 @@ -3629,13 +3641,16 @@ const fts5YYNRULE = 28 const fts5YYNRULE_WITH_ACTION = 28 const fts5YYNSTATE = 35 const fts5YYPARSEFREENOTNULL = 1 +const fts5YYREALLOC = 0 const fts5YYSTACKDEPTH = 100 const fts5YY_ACCEPT_ACTION = 81 const fts5YY_ACTTAB_COUNT = 105 const fts5YY_ERROR_ACTION = 80 +const fts5YY_MAX_DSTRCTR = 24 const fts5YY_MAX_REDUCE = 110 const fts5YY_MAX_SHIFT = 34 const fts5YY_MAX_SHIFTREDUCE = 79 +const fts5YY_MIN_DSTRCTR = 16 const fts5YY_MIN_REDUCE = 83 const fts5YY_MIN_SHIFTREDUCE = 52 const fts5YY_NO_ACTION = 82 @@ -4057,11 +4072,11 @@ type sqlite3_file1 = Tsqlite3_file1 // ** // ** xLock() upgrades the database file lock. In other words, xLock() moves the // ** database file lock in the direction NONE toward EXCLUSIVE. The argument to -// ** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +// ** xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never // ** SQLITE_LOCK_NONE. If the database file lock is already at or above the // ** requested lock, then the call to xLock() is a no-op. // ** xUnlock() downgrades the database file lock to either SHARED or NONE. -// * If the lock is already at or below the requested lock state, then the call +// ** If the lock is already at or below the requested lock state, then the call // ** to xUnlock() is a no-op. // ** The xCheckReservedLock() method checks whether any database connection, // ** either in this process or in some other process, is holding a RESERVED, @@ -5841,6 +5856,7 @@ type Tsqlite3_changegroup = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -6167,8 +6183,8 @@ type Fts5PhraseIter1 = TFts5PhraseIter1 ** EXTENSION API FUNCTIONS ** ** xUserData(pFts): -** Return a copy of the context pointer the extension function was -** registered with. +** Return a copy of the pUserData pointer passed to the xCreateFunction() +** API when the extension function was registered. ** ** xColumnTotalSize(pFts, iCol, pnToken): ** If parameter iCol is less than zero, set output variable *pnToken @@ -7925,7 +7941,7 @@ type uptr = Tuptr ** 0x00000010 Display sqlite3_index_info xBestIndex calls ** 0x00000020 Range an equality scan metrics ** 0x00000040 IN operator decisions -** 0x00000080 WhereLoop cost adjustements +** 0x00000080 WhereLoop cost adjustments ** 0x00000100 ** 0x00000200 Covering index decisions ** 0x00000400 OR optimization @@ -8437,6 +8453,7 @@ type TParse = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -8656,6 +8673,7 @@ type TSrcItem = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -10932,10 +10950,12 @@ type IdList1 = TIdList1 ** ** Union member validity: ** -** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc -** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy -** u2.pIBIndex fg.isIndexedBy && !fg.isCte -** u2.pCteUse fg.isCte && !fg.isIndexedBy +** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc +** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy +** u1.nRow !fg.isTabFunc && !fg.isIndexedBy +** +** u2.pIBIndex fg.isIndexedBy && !fg.isCte +** u2.pCteUse fg.isCte && !fg.isIndexedBy */ type TSrcItem1 = struct { FpSchema uintptr @@ -10961,6 +10981,7 @@ type TSrcItem1 = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -11364,6 +11385,7 @@ type TParse1 = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -12726,12 +12748,12 @@ var _sqlite3WhereTrace = uint32(0) var _sqlite3OpcodeProperty = [190]uint8{ 4: uint8(0x10), 6: uint8(0x41), - 8: uint8(0x01), + 8: uint8(0x81), 9: uint8(0x01), 10: uint8(0x01), - 11: uint8(0x01), - 12: uint8(0x03), - 13: uint8(0x03), + 11: uint8(0x81), + 12: uint8(0x83), + 13: uint8(0x83), 14: uint8(0x01), 15: uint8(0x01), 16: uint8(0x03), @@ -12739,22 +12761,22 @@ var _sqlite3OpcodeProperty = [190]uint8{ 18: uint8(0x01), 19: uint8(0x12), 20: uint8(0x01), - 21: uint8(0x49), - 22: uint8(0x49), - 23: uint8(0x49), - 24: uint8(0x49), + 21: uint8(0xc9), + 22: uint8(0xc9), + 23: uint8(0xc9), + 24: uint8(0xc9), 25: uint8(0x01), 26: uint8(0x49), 27: uint8(0x49), 28: uint8(0x49), 29: uint8(0x49), - 30: uint8(0x49), + 30: uint8(0xc9), 31: uint8(0x49), - 32: uint8(0x41), + 32: uint8(0xc1), 33: uint8(0x01), 34: uint8(0x41), 35: uint8(0x41), - 36: uint8(0x41), + 36: uint8(0xc1), 37: uint8(0x01), 38: uint8(0x41), 39: uint8(0x41), @@ -12766,7 +12788,7 @@ var _sqlite3OpcodeProperty = [190]uint8{ 45: uint8(0x41), 46: uint8(0x23), 47: uint8(0x0b), - 48: uint8(0x01), + 48: uint8(0x81), 49: uint8(0x01), 50: uint8(0x03), 51: uint8(0x03), @@ -13636,7 +13658,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= int32(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(23890)) + return _sqlite3MisuseError(tls, int32(23961)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -13999,43 +14021,37 @@ type itimerspec = Titimerspec // ** A structure for holding a single date and time. // */ type TDateTime = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD uint8 - FrawS uint8 - FvalidYMD uint8 - FvalidHMS uint8 - FvalidTZ uint8 - FtzSet uint8 - FisError uint8 - FuseSubsec uint8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD uint8 + FvalidYMD uint8 + FvalidHMS uint8 + FnFloor uint8 + F__ccgo44 uint8 } type DateTime = TDateTime type TDateTime1 = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD uint8 - FrawS uint8 - FvalidYMD uint8 - FvalidHMS uint8 - FvalidTZ uint8 - FtzSet uint8 - FisError uint8 - FuseSubsec uint8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD uint8 + FvalidYMD uint8 + FvalidHMS uint8 + FnFloor uint8 + F__ccgo44 uint8 } type DateTime1 = TDateTime1 @@ -14105,6 +14121,7 @@ func _getDigits(tls *libc.TLS, zDate uintptr, zFormat uintptr, va uintptr) (r in cnt++ zFormat += uintptr(4) } + goto end_getDigits end_getDigits: ; _ = ap @@ -14161,6 +14178,8 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } else { if c == int32('Z') || c == int32('z') { zDate++ + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) goto zulu_time } else { return libc.BoolInt32(c != 0) @@ -14173,12 +14192,12 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } zDate += uintptr(5) (*TDateTime)(unsafe.Pointer(p)).Ftz = sgn * (*(*int32)(unsafe.Pointer(bp + 4)) + *(*int32)(unsafe.Pointer(bp))*int32(60)) + goto zulu_time zulu_time: ; for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(zDate))])&int32(0x01) != 0 { zDate++ } - (*TDateTime)(unsafe.Pointer(p)).FtzSet = uint8(1) return libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zDate))) != 0) } @@ -14195,11 +14214,10 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var ms, rScale float64 - var v1 int32 var _ /* h at bp+0 */ int32 var _ /* m at bp+4 */ int32 var _ /* s at bp+8 */ int32 - _, _, _ = ms, rScale, v1 + _, _ = ms, rScale ms = float64(0) if _getDigits(tls, zDate, __ccgo_ts+1171, libc.VaList(bp+24, bp, bp+4)) != int32(2) { return int32(1) @@ -14225,7 +14243,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 8)) = 0 } (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) (*TDateTime)(unsafe.Pointer(p)).Fh = *(*int32)(unsafe.Pointer(bp)) (*TDateTime)(unsafe.Pointer(p)).Fm = *(*int32)(unsafe.Pointer(bp + 4)) @@ -14233,12 +14251,6 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { if _parseTimezone(tls, zDate, p) != 0 { return int32(1) } - if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { - v1 = int32(1) - } else { - v1 = 0 - } - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(v1) return 0 } @@ -14249,7 +14261,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { // */ func _datetimeError(tls *libc.TLS, p uintptr) { libc.Xmemset(tls, p, 0, uint64(48)) - (*TDateTime)(unsafe.Pointer(p)).FisError = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 1, 0x2) } // C documentation @@ -14275,7 +14287,7 @@ func _computeJD(tls *libc.TLS, p uintptr) { M = int32(1) D = int32(1) } - if Y < -int32(4713) || Y > int32(9999) || (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Y < -int32(4713) || Y > int32(9999) || int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { _datetimeError(tls, p) return } @@ -14291,11 +14303,44 @@ func _computeJD(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) if (*TDateTime)(unsafe.Pointer(p)).FvalidHMS != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) += int64((*TDateTime)(unsafe.Pointer(p)).Fh*int32(3600000)+(*TDateTime)(unsafe.Pointer(p)).Fm*int32(60000)) + int64((*TDateTime)(unsafe.Pointer(p)).Fs*libc.Float64FromInt32(1000)+libc.Float64FromFloat64(0.5)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64((*TDateTime)(unsafe.Pointer(p)).Ftz * int32(60000)) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + } + } +} + +// C documentation +// +// /* +// ** Given the YYYY-MM-DD information current in p, determine if there +// ** is day-of-month overflow and set nFloor to the number of days that +// ** would need to be subtracted from the date in order to bring the +// ** date back to the end of the month. +// */ +func _computeFloor(tls *libc.TLS, p uintptr) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if (*TDateTime)(unsafe.Pointer(p)).FD <= int32(28) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } else { + if int32(1)<<(*TDateTime)(unsafe.Pointer(p)).FM&int32(0x15aa) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FM != int32(2) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = libc.BoolUint8((*TDateTime)(unsafe.Pointer(p)).FD == libc.Int32FromInt32(31)) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FY%int32(4) != 0 || (*TDateTime)(unsafe.Pointer(p)).FY%int32(100) == 0 && (*TDateTime)(unsafe.Pointer(p)).FY%int32(400) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8((*TDateTime)(unsafe.Pointer(p)).FD - int32(28)) + } else { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8((*TDateTime)(unsafe.Pointer(p)).FD - int32(29)) + } + } } } } @@ -14354,12 +14399,15 @@ func _parseYyyyMmDd(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FY = v1 (*TDateTime)(unsafe.Pointer(p)).FM = *(*int32)(unsafe.Pointer(bp + 4)) (*TDateTime)(unsafe.Pointer(p)).FD = *(*int32)(unsafe.Pointer(bp + 8)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + _computeFloor(tls, p) + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { _computeJD(tls, p) } return 0 } +/* Forward declaration */ + // C documentation // // /* @@ -14371,6 +14419,9 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) (*TDateTime)(unsafe.Pointer(p)).FiJD = _sqlite3StmtCurrentTime(tls, context) if (*TDateTime)(unsafe.Pointer(p)).FiJD > 0 { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + _clearYMD_HMS_TZ(tls, p) return 0 } else { return int32(1) @@ -14388,7 +14439,7 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) // */ func _setRawDateNumber(tls *libc.TLS, p uintptr, r float64) { (*TDateTime)(unsafe.Pointer(p)).Fs = r - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 0, 0x1) if r >= float64(0) && r < float64(5.3734845e+06) { (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r*libc.Float64FromFloat64(8.64e+07) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) @@ -14431,7 +14482,7 @@ func _parseDateOrTime(tls *libc.TLS, context uintptr, zDate uintptr, p uintptr) return 0 } else { if (_sqlite3StrICmp(tls, zDate, __ccgo_ts+1199) == 0 || _sqlite3StrICmp(tls, zDate, __ccgo_ts+1206) == 0) && _sqlite3NotPureFunc(tls, context) != 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) return _setDateTimeToCurrent(tls, context, p) } } @@ -14523,7 +14574,7 @@ func _computeHMS(tls *libc.TLS, p uintptr) { day_min = day_ms / int32(60000) (*TDateTime)(unsafe.Pointer(p)).Fm = day_min % int32(60) (*TDateTime)(unsafe.Pointer(p)).Fh = day_min / int32(60) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) } @@ -14545,7 +14596,7 @@ func _computeYMD_HMS(tls *libc.TLS, p uintptr) { func _clearYMD_HMS_TZ(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 } /* @@ -14646,9 +14697,9 @@ func _toLocaltime(tls *libc.TLS, p uintptr, pCtx uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FisError = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 1, 0x2) return SQLITE_OK } @@ -14696,13 +14747,13 @@ var _aXformType = [6]struct { FnName: uint8(5), FzName: [7]uint8{'m', 'o', 'n', 't', 'h'}, FrLimit: float32(176546), - FrXform: float32(2.592e+06), + FrXform: float32(libc.Float64FromFloat64(30) * libc.Float64FromFloat64(86400)), }, 5: { FnName: uint8(4), FzName: [7]uint8{'y', 'e', 'a', 'r'}, FrLimit: float32(14713), - FrXform: float32(3.1536e+07), + FrXform: float32(libc.Float64FromFloat64(365) * libc.Float64FromFloat64(86400)), }, } @@ -14716,15 +14767,15 @@ var _aXformType = [6]struct { func _autoAdjustDate(tls *libc.TLS, p uintptr) { var r float64 _ = r - if !((*TDateTime)(unsafe.Pointer(p)).FrawS != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + if !(int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } else { if (*TDateTime)(unsafe.Pointer(p)).Fs >= float64(int64(-libc.Int32FromInt32(21086676))*libc.Int64FromInt32(10000)) && (*TDateTime)(unsafe.Pointer(p)).Fs <= float64(libc.Int64FromInt32(25340230)*libc.Int64FromInt32(10000)+libc.Int64FromInt32(799)) { r = (*TDateTime)(unsafe.Pointer(p)).Fs*float64(1000) + float64(2.1086676e+14) _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } } @@ -14741,14 +14792,20 @@ func _autoAdjustDate(tls *libc.TLS, p uintptr) { // ** NNN.NNNN seconds // ** NNN months // ** NNN years +// ** +/-YYYY-MM-DD HH:MM:SS.SSS +// ** ceiling +// ** floor // ** start of month // ** start of year // ** start of week // ** start of day // ** weekday N // ** unixepoch +// ** auto // ** localtime // ** utc +// ** subsec +// ** subsecond // ** // ** Return 0 on success and 1 if there is any kind of error. If the error // ** is in a system call (i.e. localtime()), then an error message is written @@ -14759,12 +14816,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, bp := tls.Alloc(160) defer tls.Free(160) var Z, day Tsqlite3_int64 - var cnt, i, rc, x, y, v12, v2, v5, v7, v9 int32 - var iErr, iGuess, iOrigJD, v1 Ti64 - var rRounder, v10 float64 + var cnt, i, rc, x, y, v1, v10, v13, v3, v6, v8 int32 + var iErr, iGuess, iOrigJD, v2 Ti64 + var rRounder, v11 float64 var z0 uint8 var z2 uintptr - var v3, v6 bool + var v4, v7 bool var _ /* D at bp+64 */ int32 var _ /* M at bp+60 */ int32 var _ /* Y at bp+56 */ int32 @@ -14773,7 +14830,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, var _ /* new at bp+8 */ TDateTime var _ /* r at bp+0 */ float64 var _ /* tx at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v12, v2, v3, v5, v6, v7, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v11, v13, v2, v3, v4, v6, v7, v8 rc = int32(1) switch int32(_sqlite3UpperToLower[*(*uint8)(unsafe.Pointer(z))]) { case int32('a'): @@ -14790,6 +14847,33 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _autoAdjustDate(tls, p) rc = 0 } + case int32('c'): + /* + ** ceiling + ** + ** Resolve day-of-month overflow by rolling forward into the next + ** month. As this is the default action, this modifier is really + ** a no-op that is only included for symmetry. See "floor". + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1244) == 0 { + _computeJD(tls, p) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } + case int32('f'): + /* + ** floor + ** + ** Resolve day-of-month overflow by rolling back to the end of the + ** previous month. + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1252) == 0 { + _computeJD(tls, p) + *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64(int32((*TDateTime)(unsafe.Pointer(p)).FnFloor) * int32(86400000)) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + } case int32('j'): /* ** julianday @@ -14799,13 +14883,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** value in the allowed range of julian day numbers understood by ** SQLite (0..5373484.5) then the result will be NULL. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1244) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1258) == 0 { if idx > int32(1) { return int32(1) } /* IMP: R-31176-64601 */ - if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { rc = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } case int32('l'): @@ -14814,8 +14898,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Assuming the current time value is UTC (a.k.a. GMT), shift it to ** show local time. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1254) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - rc = _toLocaltime(tls, p, pCtx) + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1268) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x10>>4)) != 0 { + v1 = SQLITE_OK + } else { + v1 = _toLocaltime(tls, p, pCtx) + } + rc = v1 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 4, 0x10) } case int32('u'): /* @@ -14824,7 +14915,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Treat the current value of p->s as the number of ** seconds since 1970. Convert to a real julian day number. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1264) == 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1278) == 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { if idx > int32(1) { return int32(1) } /* IMP: R-49255-55373 */ @@ -14833,17 +14924,17 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(*(*float64)(unsafe.Pointer(bp)) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) rc = 0 } } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1274) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - if int32((*TDateTime)(unsafe.Pointer(p)).FtzSet) == 0 { /* Guess at the corresponding utc time */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1288) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x8>>3)) == 0 { /* Guess at the corresponding utc time */ cnt = 0 /* Guess is off by this much */ _computeJD(tls, p) - v1 = (*TDateTime)(unsafe.Pointer(p)).FiJD - iOrigJD = v1 - iGuess = v1 + v2 = (*TDateTime)(unsafe.Pointer(p)).FiJD + iOrigJD = v2 + iGuess = v2 iErr = 0 for { libc.Xmemset(tls, bp+8, 0, uint64(48)) @@ -14856,21 +14947,22 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, bp+8) iErr = (*(*TDateTime)(unsafe.Pointer(bp + 8))).FiJD - iOrigJD - goto _4 - _4: + goto _5 + _5: ; - if v3 = iErr != 0; v3 { - v2 = cnt + if v4 = iErr != 0; v4 { + v3 = cnt cnt++ } - if !(v3 && v2 < int32(3)) { + if !(v4 && v3 < int32(3)) { break } } libc.Xmemset(tls, p, 0, uint64(48)) (*TDateTime)(unsafe.Pointer(p)).FiJD = iGuess (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FtzSet = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) } rc = SQLITE_OK } @@ -14883,13 +14975,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** weekday N where 0==Sunday, 1==Monday, and so forth. If the ** date is already on the appropriate weekday, this is a no-op. */ - if v6 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1278, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v6 { - v5 = int32(*(*float64)(unsafe.Pointer(bp))) - n = v5 + if v7 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1292, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v7 { + v6 = int32(*(*float64)(unsafe.Pointer(bp))) + n = v6 } - if v6 && float64(v5) == *(*float64)(unsafe.Pointer(bp)) { + if v7 && float64(v6) == *(*float64)(unsafe.Pointer(bp)) { _computeYMD_HMS(tls, p) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) _computeJD(tls, p) Z = ((*TDateTime)(unsafe.Pointer(p)).FiJD + int64(129600000)) / int64(86400000) % int64(7) @@ -14913,9 +15005,9 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Show subsecond precision in the output of datetime() and ** unixepoch() and strftime('%s'). */ - if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1287, int32(9)) != 0 { + if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1301, int32(9)) != 0 { if Xsqlite3_stricmp(tls, z, __ccgo_ts+1199) == 0 || Xsqlite3_stricmp(tls, z, __ccgo_ts+1206) == 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) rc = 0 } break @@ -14926,23 +15018,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z += uintptr(9) _computeYMD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) - v7 = libc.Int32FromInt32(0) - (*TDateTime)(unsafe.Pointer(p)).Fm = v7 - (*TDateTime)(unsafe.Pointer(p)).Fh = v7 + v8 = libc.Int32FromInt32(0) + (*TDateTime)(unsafe.Pointer(p)).Fm = v8 + (*TDateTime)(unsafe.Pointer(p)).Fh = v8 (*TDateTime)(unsafe.Pointer(p)).Fs = float64(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1297) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1311) == 0 { (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1303) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1317) == 0 { (*TDateTime)(unsafe.Pointer(p)).FM = int32(1) (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1308) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1322) == 0 { rc = 0 } } @@ -14984,15 +15076,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } if int32(*(*uint8)(unsafe.Pointer(z + uintptr(n)))) == int32('-') { - if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1312, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1326, libc.VaList(bp+136, bp+56)) == int32(1) { break } - if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1316, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1330, libc.VaList(bp+136, bp+56)) == int32(1) { break } } - goto _8 - _8: + goto _9 + _9: ; n++ } @@ -15009,12 +15101,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } /* Must start with +/- */ if n == int32(5) { - if _getDigits(tls, z+1, __ccgo_ts+1320, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1334, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } } else { _ = libc.Int32FromInt32(0) - if _getDigits(tls, z+1, __ccgo_ts+1332, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1346, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } z++ @@ -15036,13 +15128,14 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, *(*int32)(unsafe.Pointer(p + 12)) += *(*int32)(unsafe.Pointer(bp + 60)) } if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v9 + x = v10 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) _computeJD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) @@ -15086,7 +15179,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z++ } n = _sqlite3Strlen30(tls, z) - if n > int32(10) || n < int32(3) { + if n < int32(3) || n > int32(10) { break } if int32(_sqlite3UpperToLower[*(*uint8)(unsafe.Pointer(z + uintptr(n-int32(1))))]) == int32('s') { @@ -15095,11 +15188,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeJD(tls, p) _ = libc.Int32FromInt32(0) if *(*float64)(unsafe.Pointer(bp)) < libc.Float64FromInt32(0) { - v10 = -libc.Float64FromFloat64(0.5) + v11 = -libc.Float64FromFloat64(0.5) } else { - v10 = +libc.Float64FromFloat64(0.5) + v11 = +libc.Float64FromFloat64(0.5) } - rRounder = v10 + rRounder = v11 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) i = 0 for { if !(i < int32(libc.Uint64FromInt64(96)/libc.Uint64FromInt64(16))) { @@ -15112,20 +15206,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 12)) += int32(*(*float64)(unsafe.Pointer(bp))) if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v12 + x = v13 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) case int32(5): /* Special processing to add years */ y = int32(*(*float64)(unsafe.Pointer(bp))) _ = libc.Int32FromInt32(0) _computeYMD_HMS(tls, p) + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(p + 8)) += y + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) break @@ -15135,8 +15232,8 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, rc = 0 break } - goto _11 - _11: + goto _12 + _12: ; i++ } @@ -15195,7 +15292,7 @@ func _isDate(tls *libc.TLS, context uintptr, argc int32, argv uintptr, p uintptr i++ } _computeJD(tls, p) - if (*TDateTime)(unsafe.Pointer(p)).FisError != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x2>>1)) != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { return int32(1) } if argc == int32(1) && (*TDateTime)(unsafe.Pointer(p)).FvalidYMD != 0 && (*TDateTime)(unsafe.Pointer(p)).FD > int32(28) { @@ -15243,7 +15340,7 @@ func _unixepochFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _ /* x at bp+0 */ TDateTime if _isDate(tls, context, argc, argv, bp) == 0 { _computeJD(tls, bp) - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { Xsqlite3_result_double(tls, context, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000)) } else { Xsqlite3_result_int64(tls, context, (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/int64(1000)-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000)) @@ -15288,7 +15385,7 @@ func _datetimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(15)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(16)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(17)] = uint8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(18)] = uint8(int32('0') + s/int32(10000)%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(19)] = uint8(int32('0') + s/int32(1000)%int32(10)) @@ -15336,7 +15433,7 @@ func _timeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(3)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(4)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(5)] = uint8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(6)] = uint8(int32('0') + s/int32(10000)%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(7)] = uint8(int32('0') + s/int32(1000)%int32(10)) @@ -15397,6 +15494,62 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } +// C documentation +// +// /* +// ** Compute the number of days after the most recent January 1. +// ** +// ** In other words, compute the zero-based day number for the +// ** current year: +// ** +// ** Jan01 = 0, Jan02 = 1, ..., Jan31 = 30, Feb01 = 31, ... +// ** Dec31 = 364 or 365. +// */ +func _daysAfterJan01(tls *libc.TLS, pDate uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* jan01 at bp+0 */ TDateTime + *(*TDateTime)(unsafe.Pointer(bp)) = *(*TDateTime)(unsafe.Pointer(pDate)) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + (*(*TDateTime)(unsafe.Pointer(bp))).FvalidJD = uint8(0) + (*(*TDateTime)(unsafe.Pointer(bp))).FM = int32(1) + (*(*TDateTime)(unsafe.Pointer(bp))).FD = int32(1) + _computeJD(tls, bp) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD - (*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Monday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Monday, 1=Tuesday, 2=Wednesday, ..., 6=Sunday. +// */ +func _daysAfterMonday(tls *libc.TLS, pDate uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(43200000))/libc.Int64FromInt32(86400000)) % int32(7) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Sunday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Sunday, 1=Monday, 2=Tues, ..., 6=Saturday +// */ +func _daysAfterSunday(tls *libc.TLS, pDate uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)) % int32(7) +} + // C documentation // // /* @@ -15404,33 +15557,48 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { // ** // ** Return a string described by FORMAT. Conversions as follows: // ** -// ** %d day of month +// ** %d day of month 01-31 +// ** %e day of month 1-31 // ** %f ** fractional seconds SS.SSS +// ** %F ISO date. YYYY-MM-DD +// ** %G ISO year corresponding to %V 0000-9999. +// ** %g 2-digit ISO year corresponding to %V 00-99 // ** %H hour 00-24 -// ** %j day of year 000-366 +// ** %k hour 0-24 (leading zero converted to space) +// ** %I hour 01-12 +// ** %j day of year 001-366 // ** %J ** julian day number +// ** %l hour 1-12 (leading zero converted to space) // ** %m month 01-12 // ** %M minute 00-59 +// ** %p "am" or "pm" +// ** %P "AM" or "PM" +// ** %R time as HH:MM // ** %s seconds since 1970-01-01 // ** %S seconds 00-59 -// ** %w day of week 0-6 Sunday==0 -// ** %W week of year 00-53 +// ** %T time as HH:MM:SS +// ** %u day of week 1-7 Monday==1, Sunday==7 +// ** %w day of week 0-6 Sunday==0, Monday==1 +// ** %U week of year 00-53 (First Sunday is start of week 01) +// ** %V week of year 01-53 (First week containing Thursday is week 01) +// ** %W week of year 00-53 (First Monday is start of week 01) // ** %Y year 0000-9999 // ** %% % // */ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { - bp := tls.Alloc(160) - defer tls.Free(160) + bp := tls.Alloc(208) + defer tls.Free(208) var c, cf uint8 var db, zFmt, v3, v4, v5, v6, v7 uintptr - var h, nDay, wd int32 + var h int32 var i, j, v2 Tsize_t var iS Ti64 var s float64 var _ /* sRes at bp+48 */ Tsqlite3_str var _ /* x at bp+0 */ TDateTime + var _ /* y at bp+128 */ TDateTime var _ /* y at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, nDay, s, wd, zFmt, v2, v3, v4, v5, v6, v7 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, s, zFmt, v2, v3, v4, v5, v6, v7 if argc == 0 { return } @@ -15463,28 +15631,42 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { fallthrough case int32('e'): if int32(cf) == int32('d') { - v3 = __ccgo_ts + 1344 + v3 = __ccgo_ts + 1358 } else { - v3 = __ccgo_ts + 1349 + v3 = __ccgo_ts + 1363 } - Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) - case int32('f'): + Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('f'): /* Fractional seconds. (Non-standard) */ s = (*(*TDateTime)(unsafe.Pointer(bp))).Fs if s > float64(59.999) { s = float64(59.999) } - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1353, libc.VaList(bp+136, s)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1367, libc.VaList(bp+184, s)) case int32('F'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1360, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1374, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('G'): /* Fall thru */ + fallthrough + case int32('g'): + *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) + _ = libc.Int32FromInt32(0) + /* Move y so that it is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidYMD = uint8(0) + _computeYMD(tls, bp+80) + if int32(cf) == int32('g') { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY%int32(100))) + } else { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1389, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY)) + } case int32('H'): fallthrough case int32('k'): if int32(cf) == int32('H') { - v4 = __ccgo_ts + 1344 + v4 = __ccgo_ts + 1358 } else { - v4 = __ccgo_ts + 1349 + v4 = __ccgo_ts + 1363 } - Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) + Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) case int32('I'): /* Fall thru */ fallthrough case int32('l'): @@ -15496,73 +15678,72 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { h = int32(12) } if int32(cf) == int32('I') { - v5 = __ccgo_ts + 1344 + v5 = __ccgo_ts + 1358 } else { - v5 = __ccgo_ts + 1349 + v5 = __ccgo_ts + 1363 } - Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+136, h)) - case int32('W'): /* Fall thru */ - fallthrough - case int32('j'): /* Number of days since 1st day of year */ - *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidJD = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FM = int32(1) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FD = int32(1) - _computeJD(tls, bp+80) - nDay = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) - if int32(cf) == int32('W') { /* 0=Monday, 1=Tuesday, ... 6=Sunday */ - wd = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000) % libc.Int64FromInt32(7)) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1344, libc.VaList(bp+136, (nDay+int32(7)-wd)/int32(7))) - } else { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1375, libc.VaList(bp+136, nDay+int32(1))) - } - case int32('J'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1380, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) + Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+184, h)) + case int32('j'): /* Day of year. Jan01==1, Jan02==2, and so forth */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1394, libc.VaList(bp+184, _daysAfterJan01(tls, bp)+int32(1))) + case int32('J'): /* Julian day number. (Non-standard) */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1399, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) case int32('m'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1344, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) case int32('M'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1344, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('p'): /* Fall thru */ fallthrough case int32('P'): if (*(*TDateTime)(unsafe.Pointer(bp))).Fh >= int32(12) { if int32(cf) == int32('p') { - v6 = __ccgo_ts + 1386 + v6 = __ccgo_ts + 1405 } else { - v6 = __ccgo_ts + 1389 + v6 = __ccgo_ts + 1408 } Xsqlite3_str_append(tls, bp+48, v6, int32(2)) } else { if int32(cf) == int32('p') { - v7 = __ccgo_ts + 1392 + v7 = __ccgo_ts + 1411 } else { - v7 = __ccgo_ts + 1395 + v7 = __ccgo_ts + 1414 } Xsqlite3_str_append(tls, bp+48, v7, int32(2)) } case int32('R'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1398, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1417, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('s'): - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1408, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1427, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) } else { iS = (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/libc.Int64FromInt32(1000) - libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1413, libc.VaList(bp+136, iS)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1432, libc.VaList(bp+184, iS)) } case int32('S'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1344, libc.VaList(bp+136, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+184, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) case int32('T'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1418, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) - case int32('u'): /* Fall thru */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1437, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + case int32('u'): /* Day of week. 1 to 7. Monday==1, Sunday==7 */ fallthrough - case int32('w'): - c = uint8(int32(uint8(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)%libc.Int64FromInt32(7))) + int32('0')) + case int32('w'): /* Day of week. 0 to 6. Sunday==0, Monday==1 */ + c = uint8(int32(uint8(_daysAfterSunday(tls, bp))) + int32('0')) if int32(c) == int32('0') && int32(cf) == int32('u') { c = uint8('7') } Xsqlite3_str_appendchar(tls, bp+48, int32(1), c) + case int32('U'): /* Week num. 00-53. First Sun of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterSunday(tls, bp)+int32(7))/int32(7))) + case int32('V'): /* Week num. 01-53. First week with a Thur is week 01 */ + *(*TDateTime)(unsafe.Pointer(bp + 128)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Adjust y so that is the Thursday in the same week as x */ + _ = libc.Int32FromInt32(0) + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FvalidYMD = uint8(0) + _computeYMD(tls, bp+128) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+184, _daysAfterJan01(tls, bp+128)/int32(7)+int32(1))) + case int32('W'): /* Week num. 00-53. First Mon of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterMonday(tls, bp)+int32(7))/int32(7))) case int32('Y'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1433, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1389, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) case int32('%'): Xsqlite3_str_appendchar(tls, bp+48, int32(1), uint8('%')) default: @@ -15715,12 +15896,10 @@ func _timediffFunc(tls *libc.TLS, context uintptr, NotUsed1 int32, argv uintptr) p2 = bp *(*Tsqlite3_int64)(unsafe.Pointer(p2)) = Tsqlite3_int64(uint64(*(*Tsqlite3_int64)(unsafe.Pointer(p2))) + libc.Uint64FromInt32(1486995408)*libc.Uint64FromInt32(100000)) } - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidYMD = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidHMS = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidTZ = uint8(0) + _clearYMD_HMS_TZ(tls, bp) _computeYMD_HMS(tls, bp) _sqlite3StrAccumInit(tls, bp+96, uintptr(0), uintptr(0), 0, int32(100)) - Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1438, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) + Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1452, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) _sqlite3ResultStrAccum(tls, context, bp+96) } @@ -15753,55 +15932,55 @@ var _aDateTimeFuncs = [10]TFuncDef{ FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1244, + FzName: __ccgo_ts + 1258, }, 1: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1264, + FzName: __ccgo_ts + 1278, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1472, + FzName: __ccgo_ts + 1486, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1477, + FzName: __ccgo_ts + 1491, }, 4: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1482, + FzName: __ccgo_ts + 1496, }, 5: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1491, + FzName: __ccgo_ts + 1505, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1500, + FzName: __ccgo_ts + 1514, }, 7: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1509, + FzName: __ccgo_ts + 1523, }, 8: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1522, + FzName: __ccgo_ts + 1536, }, 9: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1540, + FzName: __ccgo_ts + 1554, }, } @@ -16483,7 +16662,7 @@ func _sqlite3MemMalloc(tls *libc.TLS, nByte int32) (r uintptr) { *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1553, libc.VaList(bp+8, nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1567, libc.VaList(bp+8, nByte)) } return p } @@ -16548,7 +16727,7 @@ func _sqlite3MemRealloc(tls *libc.TLS, pPrior uintptr, nByte int32) (r uintptr) *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1591, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1605, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) } return p } @@ -17964,7 +18143,7 @@ func _sqlite3OomFault(tls *libc.TLS, db uintptr) (r uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++ (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = uint16(0) if (*Tsqlite3)(unsafe.Pointer(db)).FpParse != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1627, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1641, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) pParse = (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).FpOuterParse for { @@ -18391,7 +18570,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li v3 = int32(*(*uint8)(unsafe.Pointer(v4))) c = v3 if v3 == 0 { - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1641, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1655, int32(1)) break } /* Find out what flags are present */ @@ -18808,9 +18987,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial != 0 { if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial) == int32(2) { if flag_zeropad != 0 { - v57 = __ccgo_ts + 1643 + v57 = __ccgo_ts + 1657 } else { - v57 = __ccgo_ts + 1648 + v57 = __ccgo_ts + 1662 } bufpt = v57 length = _sqlite3Strlen30(tls, bufpt) @@ -18821,7 +19000,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP = int32(1000) (*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fn = int32(1) } else { - libc.Xmemcpy(tls, bp, __ccgo_ts+1652, uint64(5)) + libc.Xmemcpy(tls, bp, __ccgo_ts+1666, uint64(5)) bufpt = bp if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fsign) == int32('-') { /* no-op */ @@ -18843,14 +19022,13 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li prefix = flag_prefix } exp = (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP - int32(1) - if int32(xtype) == int32(etGENERIC) && precision > 0 { - precision-- - } /* ** If the field type is etGENERIC, then convert to either etEXP ** or etFLOAT, as appropriate. */ if int32(xtype) == int32(etGENERIC) { + _ = libc.Int32FromInt32(0) + precision-- flag_rtz = libc.BoolUint8(!(flag_alternateform != 0)) if exp < -int32(4) || exp > precision { xtype = uint8(etEXP) @@ -19157,7 +19335,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li bufpt = libc.VaUintptr(&ap) } if bufpt == uintptr(0) { - bufpt = __ccgo_ts + 1657 + bufpt = __ccgo_ts + 1671 } else { if int32(xtype) == int32(etDYNSTRING) { if (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnChar == uint32(0) && (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FmxAlloc != 0 && width == 0 && precision < 0 && int32((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FaccError) == 0 { @@ -19211,6 +19389,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } else { length = int32(0x7fffffff) & int32(libc.Xstrlen(tls, bufpt)) } + goto adjust_width_for_utf8 adjust_width_for_utf8: ; if flag_altform2 != 0 && width > 0 { @@ -19245,9 +19424,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li isnull = libc.BoolInt32(escarg == uintptr(0)) if isnull != 0 { if int32(xtype) == int32(etSQLESCAPE2) { - v98 = __ccgo_ts + 1658 + v98 = __ccgo_ts + 1672 } else { - v98 = __ccgo_ts + 1663 + v98 = __ccgo_ts + 1677 } escarg = v98 } @@ -19367,7 +19546,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*TSrcItem)(unsafe.Pointer(pItem)).FzName != 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1670, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1684, int32(1)) } Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzName) } else { @@ -19375,11 +19554,16 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzAlias) } else { pSel = (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect - _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* Because of tag-20240424-1 */ if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_NestedFrom) != 0 { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1672, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1686, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) } else { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1682, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_MultiValue) != 0 { + _ = libc.Int32FromInt32(0) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1696, libc.VaList(bp+128, *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pItem)).Fu1)))) + } else { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1717, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + } } } } @@ -19668,7 +19852,7 @@ func _sqlite3ResultStrAccum(tls *libc.TLS, pCtx uintptr, p uintptr) { if int32((*TStrAccum)(unsafe.Pointer(p)).FprintfFlags)&int32(SQLITE_PRINTF_MALLOCED) != 0 { Xsqlite3_result_text(tls, pCtx, (*TStrAccum)(unsafe.Pointer(p)).FzText, int32((*TStrAccum)(unsafe.Pointer(p)).FnChar), __ccgo_fp(_sqlite3OomClear)) } else { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1657, 0, libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1671, 0, libc.UintptrFromInt32(0)) Xsqlite3_str_reset(tls, p) } } @@ -20983,6 +21167,7 @@ func _sqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc Tu8) (r in (*TMem)(unsafe.Pointer(pMem)).Fz = zOut (*TMem)(unsafe.Pointer(pMem)).FzMalloc = (*TMem)(unsafe.Pointer(pMem)).Fz (*TMem)(unsafe.Pointer(pMem)).FszMalloc = _sqlite3DbMallocSize(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).Fz) + goto translate_out translate_out: ; return SQLITE_OK @@ -21606,6 +21791,62 @@ func _sqlite3DequoteExpr(tls *libc.TLS, p uintptr) { _sqlite3Dequote(tls, *(*uintptr)(unsafe.Pointer(p + 8))) } +// C documentation +// +// /* +// ** Expression p is a QNUMBER (quoted number). Dequote the value in p->u.zToken +// ** and set the type to INTEGER or FLOAT. "Quoted" integers or floats are those +// ** that contain '_' characters that must be removed before further processing. +// */ +func _sqlite3DequoteNumber(tls *libc.TLS, pParse uintptr, p uintptr) { + bp := tls.Alloc(32) + defer tls.Free(32) + var bHex int32 + var pIn, pOut, v1, v3 uintptr + var _ /* iValue at bp+0 */ int32 + _, _, _, _, _ = bHex, pIn, pOut, v1, v3 + _ = libc.Int32FromInt32(0) + if p != 0 { + pIn = *(*uintptr)(unsafe.Pointer(p + 8)) + pOut = *(*uintptr)(unsafe.Pointer(p + 8)) + bHex = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(pIn + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(pIn + 1))) == int32('X'))) + _ = libc.Int32FromInt32(0) + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + for { + if int32(*(*uint8)(unsafe.Pointer(pIn))) != int32('_') { + v3 = pOut + pOut++ + *(*uint8)(unsafe.Pointer(v3)) = *(*uint8)(unsafe.Pointer(pIn)) + if int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('E') || int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('.') { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_FLOAT) + } + } else { + if bHex == 0 && (!(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1))))])&libc.Int32FromInt32(0x04) != 0) || !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + 1))])&libc.Int32FromInt32(0x04) != 0)) || bHex == int32(1) && (!(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1))))])&libc.Int32FromInt32(0x08) != 0) || !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + 1))])&libc.Int32FromInt32(0x08) != 0)) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1731, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(p + 8)))) + } + } + goto _2 + _2: + ; + v1 = pIn + pIn++ + if !(*(*uint8)(unsafe.Pointer(v1)) != 0) { + break + } + } + if bHex != 0 { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + } + /* tag-20240227-a: If after dequoting, the number is an integer that + ** fits in 32 bits, then it must be converted into EP_IntValue. Other + ** parts of the code expect this. See also tag-20240227-b. */ + if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_INTEGER) && _sqlite3GetInt32(tls, *(*uintptr)(unsafe.Pointer(p + 8)), bp) != 0 { + *(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(p)).Fu)) = *(*int32)(unsafe.Pointer(bp)) + *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(EP_IntValue) + } + } +} + // C documentation // // /* @@ -21967,6 +22208,7 @@ func _sqlite3AtoF(tls *libc.TLS, z uintptr, pResult uintptr, length int32, enc T for z < zEnd && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z))])&int32(0x01) != 0 { z += uintptr(incr) } + goto do_atof_calc do_atof_calc: ; /* Zero is a special case */ @@ -22074,6 +22316,7 @@ do_atof_calc: *(*float64)(unsafe.Pointer(pResult)) = -*(*float64)(unsafe.Pointer(pResult)) } _ = libc.Int32FromInt32(0) + goto atof_return atof_return: ; /* return true if number and no extra non-whitespace characters after */ @@ -22158,7 +22401,7 @@ func _compare2pow63(tls *libc.TLS, zNum uintptr, incr int32) (r int32) { _, _, _ = c, i, pow63 c = 0 /* 012345678901234567 */ - pow63 = __ccgo_ts + 1696 + pow63 = __ccgo_ts + 1756 i = 0 for { if !(c == 0 && i < int32(18)) { @@ -22390,7 +22633,7 @@ func _sqlite3DecOrHexToI64(tls *libc.TLS, z uintptr, pOut uintptr) (r int32) { } return 0 } else { - n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1715)) + n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1775)) if *(*uint8)(unsafe.Pointer(z + uintptr(n))) != 0 { n++ } @@ -22548,7 +22791,7 @@ func _sqlite3FpDecode(tls *libc.TLS, p uintptr, _r float64, iRound int32, mxRoun (*TFpDecode)(unsafe.Pointer(p)).Fsign = uint8('+') (*TFpDecode)(unsafe.Pointer(p)).Fn = int32(1) (*TFpDecode)(unsafe.Pointer(p)).FiDP = int32(1) - (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1731 + (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1791 return } else { (*TFpDecode)(unsafe.Pointer(p)).Fsign = uint8('+') @@ -23109,7 +23352,7 @@ func _sqlite3HexToBlob(tls *libc.TLS, db uintptr, z uintptr, n int32) (r uintptr func _logBadConnection(tls *libc.TLS, zType uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1733, libc.VaList(bp+8, zType)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1793, libc.VaList(bp+8, zType)) } // C documentation @@ -23132,13 +23375,13 @@ func _sqlite3SafetyCheckOk(tls *libc.TLS, db uintptr) (r int32) { var eOpenState Tu8 _ = eOpenState if db == uintptr(0) { - _logBadConnection(tls, __ccgo_ts+1658) + _logBadConnection(tls, __ccgo_ts+1672) return 0 } eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_OPEN) { if _sqlite3SafetyCheckSickOrOk(tls, db) != 0 { - _logBadConnection(tls, __ccgo_ts+1778) + _logBadConnection(tls, __ccgo_ts+1838) } return 0 } else { @@ -23152,7 +23395,7 @@ func _sqlite3SafetyCheckSickOrOk(tls *libc.TLS, db uintptr) (r int32) { _ = eOpenState eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_SICK) && int32(eOpenState) != int32(SQLITE_STATE_OPEN) && int32(eOpenState) != int32(SQLITE_STATE_BUSY) { - _logBadConnection(tls, __ccgo_ts+1787) + _logBadConnection(tls, __ccgo_ts+1847) return 0 } else { return int32(1) @@ -23811,196 +24054,196 @@ func _sqlite3OpcodeName(tls *libc.TLS, i int32) (r uintptr) { } var _azName = [190]uintptr{ - 0: __ccgo_ts + 1795, - 1: __ccgo_ts + 1805, - 2: __ccgo_ts + 1816, - 3: __ccgo_ts + 1828, - 4: __ccgo_ts + 1839, - 5: __ccgo_ts + 1851, - 6: __ccgo_ts + 1858, - 7: __ccgo_ts + 1866, - 8: __ccgo_ts + 1874, - 9: __ccgo_ts + 1879, - 10: __ccgo_ts + 1884, - 11: __ccgo_ts + 1890, - 12: __ccgo_ts + 1904, - 13: __ccgo_ts + 1910, - 14: __ccgo_ts + 1920, - 15: __ccgo_ts + 1925, - 16: __ccgo_ts + 1930, - 17: __ccgo_ts + 1933, - 18: __ccgo_ts + 1939, - 19: __ccgo_ts + 1946, - 20: __ccgo_ts + 1950, - 21: __ccgo_ts + 1960, - 22: __ccgo_ts + 1967, - 23: __ccgo_ts + 1974, - 24: __ccgo_ts + 1981, - 25: __ccgo_ts + 1988, - 26: __ccgo_ts + 1998, - 27: __ccgo_ts + 2007, - 28: __ccgo_ts + 2018, - 29: __ccgo_ts + 2027, - 30: __ccgo_ts + 2033, - 31: __ccgo_ts + 2043, - 32: __ccgo_ts + 2053, - 33: __ccgo_ts + 2058, - 34: __ccgo_ts + 2068, - 35: __ccgo_ts + 2079, - 36: __ccgo_ts + 2084, - 37: __ccgo_ts + 2091, - 38: __ccgo_ts + 2102, - 39: __ccgo_ts + 2107, - 40: __ccgo_ts + 2112, - 41: __ccgo_ts + 2118, - 42: __ccgo_ts + 2124, - 43: __ccgo_ts + 2130, - 44: __ccgo_ts + 2133, - 45: __ccgo_ts + 2137, - 46: __ccgo_ts + 2143, - 47: __ccgo_ts + 2154, - 48: __ccgo_ts + 2165, - 49: __ccgo_ts + 2173, - 50: __ccgo_ts + 2182, - 51: __ccgo_ts + 2189, - 52: __ccgo_ts + 2197, - 53: __ccgo_ts + 2200, - 54: __ccgo_ts + 2203, - 55: __ccgo_ts + 2206, - 56: __ccgo_ts + 2209, - 57: __ccgo_ts + 2212, - 58: __ccgo_ts + 2215, - 59: __ccgo_ts + 2222, - 60: __ccgo_ts + 2228, - 61: __ccgo_ts + 2238, - 62: __ccgo_ts + 2251, - 63: __ccgo_ts + 2262, - 64: __ccgo_ts + 2268, - 65: __ccgo_ts + 2275, - 66: __ccgo_ts + 2284, - 67: __ccgo_ts + 2293, - 68: __ccgo_ts + 2300, - 69: __ccgo_ts + 2313, - 70: __ccgo_ts + 2324, - 71: __ccgo_ts + 2329, - 72: __ccgo_ts + 2337, - 73: __ccgo_ts + 2343, - 74: __ccgo_ts + 2350, - 75: __ccgo_ts + 2362, - 76: __ccgo_ts + 2367, - 77: __ccgo_ts + 2376, - 78: __ccgo_ts + 2381, - 79: __ccgo_ts + 2390, - 80: __ccgo_ts + 2395, - 81: __ccgo_ts + 2400, - 82: __ccgo_ts + 2406, - 83: __ccgo_ts + 2414, - 84: __ccgo_ts + 2422, - 85: __ccgo_ts + 2432, - 86: __ccgo_ts + 2440, - 87: __ccgo_ts + 2447, - 88: __ccgo_ts + 2460, - 89: __ccgo_ts + 2465, - 90: __ccgo_ts + 2477, - 91: __ccgo_ts + 2485, - 92: __ccgo_ts + 2492, - 93: __ccgo_ts + 2503, - 94: __ccgo_ts + 2510, - 95: __ccgo_ts + 2517, - 96: __ccgo_ts + 2527, - 97: __ccgo_ts + 2536, - 98: __ccgo_ts + 2547, - 99: __ccgo_ts + 2553, - 100: __ccgo_ts + 2564, - 101: __ccgo_ts + 2574, - 102: __ccgo_ts + 2584, - 103: __ccgo_ts + 2591, - 104: __ccgo_ts + 2597, - 105: __ccgo_ts + 2607, - 106: __ccgo_ts + 2618, - 107: __ccgo_ts + 2622, - 108: __ccgo_ts + 2631, - 109: __ccgo_ts + 2640, - 110: __ccgo_ts + 2647, - 111: __ccgo_ts + 2657, - 112: __ccgo_ts + 2664, - 113: __ccgo_ts + 2673, - 114: __ccgo_ts + 2683, - 115: __ccgo_ts + 2690, - 116: __ccgo_ts + 2698, - 117: __ccgo_ts + 2712, - 118: __ccgo_ts + 2720, - 119: __ccgo_ts + 2734, - 120: __ccgo_ts + 2745, - 121: __ccgo_ts + 2758, - 122: __ccgo_ts + 2769, - 123: __ccgo_ts + 2775, - 124: __ccgo_ts + 2787, - 125: __ccgo_ts + 2796, - 126: __ccgo_ts + 2804, - 127: __ccgo_ts + 2813, - 128: __ccgo_ts + 2822, - 129: __ccgo_ts + 2829, - 130: __ccgo_ts + 2837, - 131: __ccgo_ts + 2844, - 132: __ccgo_ts + 2855, - 133: __ccgo_ts + 2869, - 134: __ccgo_ts + 2880, - 135: __ccgo_ts + 2888, - 136: __ccgo_ts + 2894, - 137: __ccgo_ts + 2902, - 138: __ccgo_ts + 2910, - 139: __ccgo_ts + 2920, - 140: __ccgo_ts + 2933, - 141: __ccgo_ts + 2943, - 142: __ccgo_ts + 2956, - 143: __ccgo_ts + 2965, - 144: __ccgo_ts + 2976, - 145: __ccgo_ts + 2984, - 146: __ccgo_ts + 2990, - 147: __ccgo_ts + 3002, - 148: __ccgo_ts + 3014, - 149: __ccgo_ts + 3022, - 150: __ccgo_ts + 3034, - 151: __ccgo_ts + 3047, - 152: __ccgo_ts + 3057, - 153: __ccgo_ts + 3067, - 154: __ccgo_ts + 3072, - 155: __ccgo_ts + 3084, - 156: __ccgo_ts + 3096, - 157: __ccgo_ts + 3106, - 158: __ccgo_ts + 3112, - 159: __ccgo_ts + 3122, - 160: __ccgo_ts + 3129, - 161: __ccgo_ts + 3141, - 162: __ccgo_ts + 3152, - 163: __ccgo_ts + 3160, - 164: __ccgo_ts + 3169, - 165: __ccgo_ts + 3178, - 166: __ccgo_ts + 3187, - 167: __ccgo_ts + 3194, - 168: __ccgo_ts + 3205, - 169: __ccgo_ts + 3218, - 170: __ccgo_ts + 3228, - 171: __ccgo_ts + 3235, - 172: __ccgo_ts + 3243, - 173: __ccgo_ts + 3252, - 174: __ccgo_ts + 3258, - 175: __ccgo_ts + 3265, - 176: __ccgo_ts + 3273, - 177: __ccgo_ts + 3281, - 178: __ccgo_ts + 3289, - 179: __ccgo_ts + 3299, - 180: __ccgo_ts + 3308, - 181: __ccgo_ts + 3319, - 182: __ccgo_ts + 3330, - 183: __ccgo_ts + 3341, - 184: __ccgo_ts + 3351, - 185: __ccgo_ts + 3357, - 186: __ccgo_ts + 3368, - 187: __ccgo_ts + 3379, - 188: __ccgo_ts + 3384, - 189: __ccgo_ts + 3392, + 0: __ccgo_ts + 1855, + 1: __ccgo_ts + 1865, + 2: __ccgo_ts + 1876, + 3: __ccgo_ts + 1888, + 4: __ccgo_ts + 1899, + 5: __ccgo_ts + 1911, + 6: __ccgo_ts + 1918, + 7: __ccgo_ts + 1926, + 8: __ccgo_ts + 1934, + 9: __ccgo_ts + 1939, + 10: __ccgo_ts + 1944, + 11: __ccgo_ts + 1950, + 12: __ccgo_ts + 1964, + 13: __ccgo_ts + 1970, + 14: __ccgo_ts + 1980, + 15: __ccgo_ts + 1985, + 16: __ccgo_ts + 1990, + 17: __ccgo_ts + 1993, + 18: __ccgo_ts + 1999, + 19: __ccgo_ts + 2006, + 20: __ccgo_ts + 2010, + 21: __ccgo_ts + 2020, + 22: __ccgo_ts + 2027, + 23: __ccgo_ts + 2034, + 24: __ccgo_ts + 2041, + 25: __ccgo_ts + 2048, + 26: __ccgo_ts + 2058, + 27: __ccgo_ts + 2067, + 28: __ccgo_ts + 2078, + 29: __ccgo_ts + 2087, + 30: __ccgo_ts + 2093, + 31: __ccgo_ts + 2103, + 32: __ccgo_ts + 2113, + 33: __ccgo_ts + 2118, + 34: __ccgo_ts + 2132, + 35: __ccgo_ts + 2143, + 36: __ccgo_ts + 2148, + 37: __ccgo_ts + 2155, + 38: __ccgo_ts + 2166, + 39: __ccgo_ts + 2171, + 40: __ccgo_ts + 2176, + 41: __ccgo_ts + 2182, + 42: __ccgo_ts + 2188, + 43: __ccgo_ts + 2194, + 44: __ccgo_ts + 2197, + 45: __ccgo_ts + 2201, + 46: __ccgo_ts + 2207, + 47: __ccgo_ts + 2218, + 48: __ccgo_ts + 2229, + 49: __ccgo_ts + 2237, + 50: __ccgo_ts + 2246, + 51: __ccgo_ts + 2253, + 52: __ccgo_ts + 2261, + 53: __ccgo_ts + 2264, + 54: __ccgo_ts + 2267, + 55: __ccgo_ts + 2270, + 56: __ccgo_ts + 2273, + 57: __ccgo_ts + 2276, + 58: __ccgo_ts + 2279, + 59: __ccgo_ts + 2286, + 60: __ccgo_ts + 2292, + 61: __ccgo_ts + 2302, + 62: __ccgo_ts + 2315, + 63: __ccgo_ts + 2326, + 64: __ccgo_ts + 2332, + 65: __ccgo_ts + 2339, + 66: __ccgo_ts + 2348, + 67: __ccgo_ts + 2357, + 68: __ccgo_ts + 2364, + 69: __ccgo_ts + 2377, + 70: __ccgo_ts + 2388, + 71: __ccgo_ts + 2393, + 72: __ccgo_ts + 2401, + 73: __ccgo_ts + 2407, + 74: __ccgo_ts + 2414, + 75: __ccgo_ts + 2426, + 76: __ccgo_ts + 2431, + 77: __ccgo_ts + 2440, + 78: __ccgo_ts + 2445, + 79: __ccgo_ts + 2454, + 80: __ccgo_ts + 2459, + 81: __ccgo_ts + 2464, + 82: __ccgo_ts + 2470, + 83: __ccgo_ts + 2478, + 84: __ccgo_ts + 2486, + 85: __ccgo_ts + 2496, + 86: __ccgo_ts + 2504, + 87: __ccgo_ts + 2511, + 88: __ccgo_ts + 2524, + 89: __ccgo_ts + 2529, + 90: __ccgo_ts + 2541, + 91: __ccgo_ts + 2549, + 92: __ccgo_ts + 2556, + 93: __ccgo_ts + 2567, + 94: __ccgo_ts + 2574, + 95: __ccgo_ts + 2581, + 96: __ccgo_ts + 2591, + 97: __ccgo_ts + 2600, + 98: __ccgo_ts + 2611, + 99: __ccgo_ts + 2617, + 100: __ccgo_ts + 2628, + 101: __ccgo_ts + 2638, + 102: __ccgo_ts + 2648, + 103: __ccgo_ts + 2655, + 104: __ccgo_ts + 2661, + 105: __ccgo_ts + 2671, + 106: __ccgo_ts + 2682, + 107: __ccgo_ts + 2686, + 108: __ccgo_ts + 2695, + 109: __ccgo_ts + 2704, + 110: __ccgo_ts + 2711, + 111: __ccgo_ts + 2721, + 112: __ccgo_ts + 2728, + 113: __ccgo_ts + 2737, + 114: __ccgo_ts + 2747, + 115: __ccgo_ts + 2754, + 116: __ccgo_ts + 2762, + 117: __ccgo_ts + 2776, + 118: __ccgo_ts + 2784, + 119: __ccgo_ts + 2798, + 120: __ccgo_ts + 2809, + 121: __ccgo_ts + 2822, + 122: __ccgo_ts + 2833, + 123: __ccgo_ts + 2839, + 124: __ccgo_ts + 2851, + 125: __ccgo_ts + 2860, + 126: __ccgo_ts + 2868, + 127: __ccgo_ts + 2877, + 128: __ccgo_ts + 2886, + 129: __ccgo_ts + 2893, + 130: __ccgo_ts + 2901, + 131: __ccgo_ts + 2908, + 132: __ccgo_ts + 2919, + 133: __ccgo_ts + 2933, + 134: __ccgo_ts + 2944, + 135: __ccgo_ts + 2952, + 136: __ccgo_ts + 2958, + 137: __ccgo_ts + 2966, + 138: __ccgo_ts + 2974, + 139: __ccgo_ts + 2984, + 140: __ccgo_ts + 2997, + 141: __ccgo_ts + 3007, + 142: __ccgo_ts + 3020, + 143: __ccgo_ts + 3029, + 144: __ccgo_ts + 3040, + 145: __ccgo_ts + 3048, + 146: __ccgo_ts + 3054, + 147: __ccgo_ts + 3066, + 148: __ccgo_ts + 3078, + 149: __ccgo_ts + 3086, + 150: __ccgo_ts + 3098, + 151: __ccgo_ts + 3111, + 152: __ccgo_ts + 3121, + 153: __ccgo_ts + 3131, + 154: __ccgo_ts + 3136, + 155: __ccgo_ts + 3148, + 156: __ccgo_ts + 3160, + 157: __ccgo_ts + 3170, + 158: __ccgo_ts + 3176, + 159: __ccgo_ts + 3186, + 160: __ccgo_ts + 3193, + 161: __ccgo_ts + 3205, + 162: __ccgo_ts + 3216, + 163: __ccgo_ts + 3224, + 164: __ccgo_ts + 3233, + 165: __ccgo_ts + 3242, + 166: __ccgo_ts + 3251, + 167: __ccgo_ts + 3258, + 168: __ccgo_ts + 3269, + 169: __ccgo_ts + 3282, + 170: __ccgo_ts + 3292, + 171: __ccgo_ts + 3299, + 172: __ccgo_ts + 3307, + 173: __ccgo_ts + 3316, + 174: __ccgo_ts + 3322, + 175: __ccgo_ts + 3329, + 176: __ccgo_ts + 3337, + 177: __ccgo_ts + 3345, + 178: __ccgo_ts + 3353, + 179: __ccgo_ts + 3363, + 180: __ccgo_ts + 3372, + 181: __ccgo_ts + 3383, + 182: __ccgo_ts + 3394, + 183: __ccgo_ts + 3405, + 184: __ccgo_ts + 3415, + 185: __ccgo_ts + 3421, + 186: __ccgo_ts + 3432, + 187: __ccgo_ts + 3443, + 188: __ccgo_ts + 3448, + 189: __ccgo_ts + 3456, } type Tstat = struct { @@ -24744,91 +24987,91 @@ type unix_syscall = Tunix_syscall // */ var _aSyscall = [29]Tunix_syscall{ 0: { - FzName: __ccgo_ts + 3402, + FzName: __ccgo_ts + 3466, }, 1: { - FzName: __ccgo_ts + 3407, + FzName: __ccgo_ts + 3471, }, 2: { - FzName: __ccgo_ts + 3413, + FzName: __ccgo_ts + 3477, }, 3: { - FzName: __ccgo_ts + 3420, + FzName: __ccgo_ts + 3484, }, 4: { - FzName: __ccgo_ts + 3427, + FzName: __ccgo_ts + 3491, }, 5: { - FzName: __ccgo_ts + 3432, + FzName: __ccgo_ts + 3496, }, 6: { - FzName: __ccgo_ts + 3438, + FzName: __ccgo_ts + 3502, }, 7: { - FzName: __ccgo_ts + 3448, + FzName: __ccgo_ts + 3512, }, 8: { - FzName: __ccgo_ts + 3454, + FzName: __ccgo_ts + 3518, }, 9: { - FzName: __ccgo_ts + 3459, + FzName: __ccgo_ts + 3523, }, 10: { - FzName: __ccgo_ts + 3465, + FzName: __ccgo_ts + 3529, }, 11: { - FzName: __ccgo_ts + 3473, + FzName: __ccgo_ts + 3537, }, 12: { - FzName: __ccgo_ts + 3479, + FzName: __ccgo_ts + 3543, }, 13: { - FzName: __ccgo_ts + 3486, + FzName: __ccgo_ts + 3550, }, 14: { - FzName: __ccgo_ts + 3495, + FzName: __ccgo_ts + 3559, }, 15: { - FzName: __ccgo_ts + 3502, + FzName: __ccgo_ts + 3566, }, 16: { - FzName: __ccgo_ts + 3512, + FzName: __ccgo_ts + 3576, }, 17: { - FzName: __ccgo_ts + 3519, + FzName: __ccgo_ts + 3583, }, 18: { - FzName: __ccgo_ts + 3533, + FzName: __ccgo_ts + 3597, }, 19: { - FzName: __ccgo_ts + 3539, + FzName: __ccgo_ts + 3603, }, 20: { - FzName: __ccgo_ts + 3545, + FzName: __ccgo_ts + 3609, }, 21: { - FzName: __ccgo_ts + 3552, + FzName: __ccgo_ts + 3616, }, 22: { - FzName: __ccgo_ts + 3560, + FzName: __ccgo_ts + 3624, }, 23: { - FzName: __ccgo_ts + 3565, + FzName: __ccgo_ts + 3629, }, 24: { - FzName: __ccgo_ts + 3572, + FzName: __ccgo_ts + 3636, }, 25: { - FzName: __ccgo_ts + 3579, + FzName: __ccgo_ts + 3643, }, 26: { - FzName: __ccgo_ts + 3591, + FzName: __ccgo_ts + 3655, }, 27: { - FzName: __ccgo_ts + 3600, + FzName: __ccgo_ts + 3664, }, 28: { - FzName: __ccgo_ts + 3606, + FzName: __ccgo_ts + 3670, }, } @@ -25067,9 +25310,9 @@ func _robust_open(tls *libc.TLS, z uintptr, f int32, m Tmode_t) (r int32) { (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(16)].FpCurrent})))(tls, z) } (*(*func(*libc.TLS, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(1)].FpCurrent})))(tls, fd) - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3612, libc.VaList(bp+152, z, fd)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3676, libc.VaList(bp+152, z, fd)) fd = -int32(1) - if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3655, O_RDONLY, int32(m)) < 0 { + if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3719, O_RDONLY, int32(m)) < 0 { break } } @@ -25387,11 +25630,11 @@ func _unixLogErrorAtLine(tls *libc.TLS, errcode int32, zFunc uintptr, zPath uint ** equivalent to errno. Otherwise, use strerror_r(). */ /* This is a threadsafe build, but strerror_r() is not available. */ - zErr = __ccgo_ts + 1657 + zErr = __ccgo_ts + 1671 if zPath == uintptr(0) { - zPath = __ccgo_ts + 1657 + zPath = __ccgo_ts + 1671 } - Xsqlite3_log(tls, errcode, __ccgo_ts+3665, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) + Xsqlite3_log(tls, errcode, __ccgo_ts+3729, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) return errcode } @@ -25419,7 +25662,7 @@ func _robust_close(tls *libc.TLS, pFile uintptr, h int32, lineno int32) { } else { v1 = uintptr(0) } - _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(16)< uint64(1) { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3749, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3813, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } if _fileHasMoved(tls, pFile) != 0 { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3776, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3840, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } } @@ -25939,6 +26182,7 @@ func _unixLock(tls *libc.TLS, id uintptr, eFileLock int32) (r int32) { (*TunixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock) (*TunixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(eFileLock) } + goto end_lock end_lock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -26070,6 +26314,7 @@ func _posixUnlock(tls *libc.TLS, id uintptr, eFileLock int32, handleNFSUnlock in _closePendingFds(tls, pFile) } } + goto end_unlock end_unlock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -26111,7 +26356,7 @@ func _closeUnixFile(tls *libc.TLS, id uintptr) (r int32) { pFile = id _unixUnmapfile(tls, pFile) if (*TunixFile)(unsafe.Pointer(pFile)).Fh >= 0 { - _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40172)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40505)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -26738,7 +26983,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { var _ /* zDirname at bp+0 */ [513]uint8 _, _ = fd, ii fd = -int32(1) - Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3804, libc.VaList(bp+528, zFilename)) + Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3868, libc.VaList(bp+528, zFilename)) ii = int32(libc.Xstrlen(tls, bp)) for { if !(ii > 0 && int32((*(*[513]uint8)(unsafe.Pointer(bp)))[ii]) != int32('/')) { @@ -26764,7 +27009,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(41778)), __ccgo_ts+3519, bp, int32(41778)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42111)), __ccgo_ts+3583, bp, int32(42111)) } // C documentation @@ -26803,7 +27048,7 @@ func _unixSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { rc = _full_fsync(tls, (*TunixFile)(unsafe.Pointer(pFile)).Fh, isFullsync, isDataOnly) if rc != 0 { _storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))) - return _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(4)<= nSize { iWrite = nSize - int64(1) } - nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1657, int32(1)) + nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1671, int32(1)) if nWrite != int32(1) { return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(3)<= 0 { - _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42583)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42916)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -27426,7 +27671,7 @@ func _unixLockSharedMemory(tls *libc.TLS, pDbFd uintptr, pShmNode uintptr) (r in ** help detect if a -shm file truncation is legitimate or is the work ** or a rogue process. */ if rc == SQLITE_OK && _robust_ftruncate(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(3)) != 0 { - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(18)< iRegion { @@ -28025,7 +28272,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { var pNew, pOrig, pReq, zErr uintptr var v1 Tsqlite3_int64 _, _, _, _, _, _, _, _, _ = flags, h, nOrig, nReuse, pNew, pOrig, pReq, zErr, v1 - zErr = __ccgo_ts + 3560 + zErr = __ccgo_ts + 3624 h = (*TunixFile)(unsafe.Pointer(pFd)).Fh /* File descriptor open on db file */ pOrig = (*TunixFile)(unsafe.Pointer(pFd)).FpMapRegion /* Pointer to current file mapping */ nOrig = (*TunixFile)(unsafe.Pointer(pFd)).FmmapSizeActual /* Size of pOrig region in bytes */ @@ -28045,7 +28292,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { (*(*func(*libc.TLS, uintptr, Tsize_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, pReq, uint64(nOrig-nReuse)) } pNew = (*(*func(*libc.TLS, uintptr, Tsize_t, Tsize_t, int32, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(24)].FpCurrent})))(tls, pOrig, uint64(nReuse), uint64(nNew), int32(MREMAP_MAYMOVE), 0) - zErr = __ccgo_ts + 3572 + zErr = __ccgo_ts + 3636 /* The attempt to extend the existing mapping failed. Free it. */ if pNew == uintptr(-libc.Int32FromInt32(1)) || pNew == uintptr(0) { (*(*func(*libc.TLS, uintptr, Tsize_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, pOrig, uint64(nReuse)) @@ -28058,7 +28305,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { if pNew == uintptr(-libc.Int32FromInt32(1)) { pNew = uintptr(0) nNew = 0 - _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43401)) + _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43734)) /* If the mmap() above failed, assume that all subsequent mmap() calls ** will probably fail too. Fall back to using xRead/xWrite exclusively ** in this case. */ @@ -28402,11 +28649,11 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam } else { v1 = uintptr(0) } - if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3838, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { + if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3902, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { p2 = pNew + 30 *(*uint16)(unsafe.Pointer(p2)) = uint16(int32(*(*uint16)(unsafe.Pointer(p2))) | libc.Int32FromInt32(UNIXFILE_PSOW)) } - if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3843) == 0 { + if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3907) == 0 { p3 = pNew + 30 *(*uint16)(unsafe.Pointer(p3)) = uint16(int32(*(*uint16)(unsafe.Pointer(p3))) | libc.Int32FromInt32(UNIXFILE_EXCL)) } @@ -28437,7 +28684,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam ** implicit assumption here is that if fstat() fails, things are in ** such bad shape that dropping a lock or two doesn't matter much. */ - _robust_close(tls, pNew, h, int32(43909)) + _robust_close(tls, pNew, h, int32(44242)) h = -int32(1) } _unixLeaveMutex(tls) @@ -28449,7 +28696,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam if zLockFile == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3853, libc.VaList(bp+8, zFilename)) + Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3917, libc.VaList(bp+8, zFilename)) } (*TunixFile)(unsafe.Pointer(pNew)).FlockingContext = zLockFile } @@ -28457,7 +28704,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam _storeLastErrno(tls, pNew, 0) if rc != SQLITE_OK { if h >= 0 { - _robust_close(tls, pNew, h, int32(43994)) + _robust_close(tls, pNew, h, int32(44327)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -28472,10 +28719,10 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam // ** Directories to consider for temp files. // */ var _azTempDirs = [6]uintptr{ - 2: __ccgo_ts + 3861, - 3: __ccgo_ts + 3870, - 4: __ccgo_ts + 3879, - 5: __ccgo_ts + 1670, + 2: __ccgo_ts + 3925, + 3: __ccgo_ts + 3934, + 4: __ccgo_ts + 3943, + 5: __ccgo_ts + 1684, } // C documentation @@ -28484,8 +28731,8 @@ var _azTempDirs = [6]uintptr{ // ** Initialize first two members of azTempDirs[] array. // */ func _unixTempFileInit(tls *libc.TLS) { - _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3884) - _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3898) + _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3948) + _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3962) } // C documentation @@ -28548,7 +28795,7 @@ func _unixGetTempname(tls *libc.TLS, nBuf int32, zBuf uintptr) (r int32) { Xsqlite3_randomness(tls, int32(8), bp) _ = libc.Int32FromInt32(0) *(*uint8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2)))) = uint8(0) - Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3905, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) + Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3969, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) if v2 = int32(*(*uint8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2))))) != 0; !v2 { v1 = iLimit iLimit++ @@ -28721,7 +28968,7 @@ func _findCreateFileMode(tls *libc.TLS, zPath uintptr, flags int32, pMode uintpt ** filename, check for the "modeof" parameter. If present, interpret ** its value as a filename and try to copy the mode, uid and gid from ** that file. */ - z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3922) + z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3986) if z != 0 { rc = _getFileMode(tls, z, pMode, pUid, pGid) } @@ -28759,12 +29006,12 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags bp := tls.Alloc(528) defer tls.Free(528) var ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, rc, rc2 int32 - var p, pUnused, zName uintptr + var p, pReadonly, pUnused, zName uintptr var _ /* gid at bp+524 */ Tgid_t var _ /* openMode at bp+516 */ Tmode_t var _ /* uid at bp+520 */ Tuid_t var _ /* zTmpname at bp+0 */ [514]uint8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pUnused, rc, rc2, zName + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pReadonly, pUnused, rc, rc2, zName p = pFile fd = -int32(1) /* File descriptor returned by open() */ openFlags = 0 /* Flags to pass to open() */ @@ -28874,17 +29121,24 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } else { if *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) != int32(EISDIR) && isReadWrite != 0 { /* Failed to open the file for read/write access. Try read-only. */ + pReadonly = uintptr(0) flags &= ^(libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE)) openFlags &= ^(libc.Int32FromInt32(O_RDWR) | libc.Int32FromInt32(O_CREAT)) flags |= int32(SQLITE_OPEN_READONLY) openFlags |= O_RDONLY isReadonly = int32(1) - fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 516))) + pReadonly = _findReusableFd(tls, zName, flags) + if pReadonly != 0 { + fd = (*TUnixUnusedFd)(unsafe.Pointer(pReadonly)).Ffd + Xsqlite3_free(tls, pReadonly) + } else { + fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 516))) + } } } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44435)), __ccgo_ts+3402, zName, int32(44435)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44775)), __ccgo_ts+3466, zName, int32(44775)) if rc == SQLITE_OK { rc = rc2 } @@ -28936,6 +29190,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } _ = libc.Int32FromInt32(0) rc = _fillInUnixFile(tls, pVfs, fd, pFile, zPath, ctrlFlags) + goto open_finished open_finished: ; if rc != SQLITE_OK { @@ -28962,7 +29217,7 @@ func _unixDelete(tls *libc.TLS, NotUsed uintptr, zPath uintptr, dirSync int32) ( if *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) == int32(ENOENT) { rc = libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(23)< int32(SQLITE_MAX_SYMLINK) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(44686)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45026)) return } got = (*(*func(*libc.TLS, uintptr, uintptr, Tsize_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls, zIn, bp+144, libc.Uint64FromInt64(4098)-libc.Uint64FromInt32(2)) if got <= 0 || got >= libc.Int64FromInt64(4098)-libc.Int64FromInt32(2) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44691)), __ccgo_ts+3591, zIn, int32(44691)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45031)), __ccgo_ts+3655, zIn, int32(45031)) return } (*(*[4098]uint8)(unsafe.Pointer(bp + 144)))[got] = uint8(0) @@ -29166,14 +29421,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if int32(*(*uint8)(unsafe.Pointer(zPath))) != int32('/') { if (*(*func(*libc.TLS, uintptr, Tsize_t) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(3)].FpCurrent})))(tls, bp+24, libc.Uint64FromInt64(4098)-libc.Uint64FromInt32(2)) == uintptr(0) { - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44749)), __ccgo_ts+3420, zPath, int32(44749)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45089)), __ccgo_ts+3484, zPath, int32(45089)) } _appendAllPathElements(tls, bp, bp+24) } _appendAllPathElements(tls, bp, zPath) *(*uint8)(unsafe.Pointer(zOut + uintptr((*(*TDbPath)(unsafe.Pointer(bp))).FnUsed))) = uint8(0) if (*(*TDbPath)(unsafe.Pointer(bp))).Frc != 0 || (*(*TDbPath)(unsafe.Pointer(bp))).FnUsed < int32(2) { - return _sqlite3CantopenError(tls, int32(44755)) + return _sqlite3CantopenError(tls, int32(45095)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<= (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4)/libc.Uint64FromInt32(2) { @@ -31046,6 +31303,7 @@ bitvec_set_rehash: return rc } } + goto bitvec_set_end bitvec_set_end: ; (*TBitvec)(unsafe.Pointer(p)).FnSet++ @@ -31279,6 +31537,7 @@ func _sqlite3BitvecBuiltinTest(tls *libc.TLS, sz int32, aOp uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp))++ } /* Free allocated structure */ + goto bitvec_end bitvec_end: ; Xsqlite3_free(tls, pTmpSpace) @@ -32567,7 +32826,7 @@ func _sqlite3PCacheBufferSetup(tls *libc.TLS, pBuf uintptr, sz int32, n int32) { var p uintptr var v1, v2, v3, v4 int32 _, _, _, _, _ = p, v1, v2, v3, v4 - if _pcache1_g.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80) != 0 { if pBuf == uintptr(0) { v1 = libc.Int32FromInt32(0) n = v1 @@ -33117,7 +33376,7 @@ func _pcache1Init(tls *libc.TLS, NotUsed uintptr) (r int32) { _pcache1_g.FnInitPage = 0 } _pcache1_g.Fgrp.FmxPinned = uint32(10) - _pcache1_g.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80, int32(1)) return SQLITE_OK } @@ -36700,6 +36959,7 @@ func _pager_delsuper(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) { } _sqlite3OsClose(tls, pSuper) rc = _sqlite3OsDelete(tls, pVfs, zSuper, 0) + goto delsuper_out delsuper_out: ; Xsqlite3_free(tls, zFree) @@ -37036,6 +37296,7 @@ func _pager_playback(tls *libc.TLS, pPager uintptr, isHot int32) (r int32) { } /*NOTREACHED*/ _ = libc.Int32FromInt32(0) + goto end_playback end_playback: ; if rc == SQLITE_OK { @@ -37079,7 +37340,7 @@ end_playback: rc = _pager_delsuper(tls, pPager, zSuper) } if isHot != 0 && nPlayback != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(2)< int64(1) { _sqlite3PagerUnrefNotNull(tls, pPgOld) - return _sqlite3CorruptError(tls, int32(63973)) + return _sqlite3CorruptError(tls, int32(64313)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | int32((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -41413,7 +41678,7 @@ func _sqlite3PagerCheckpoint(tls *libc.TLS, pPager uintptr, db uintptr, eMode in ** sqlite3_wal_checkpoint() call, but it happens very rarely. ** https://sqlite.org/forum/forumpost/fd0f19d229156939 */ - Xsqlite3_exec(tls, db, __ccgo_ts+4118, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+4182, uintptr(0), uintptr(0), uintptr(0)) } if (*TPager)(unsafe.Pointer(pPager)).FpWal != 0 { if eMode == SQLITE_CHECKPOINT_PASSIVE { @@ -42894,7 +43159,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(65899)) + return _sqlite3CorruptError(tls, int32(66239)) } goto _1 _1: @@ -42986,7 +43251,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { ** are able to understand */ version = _sqlite3Get4byte(tls, bp+8+4) if version != uint32(WAL_MAX_VERSION) { - rc = _sqlite3CantopenError(tls, int32(66031)) + rc = _sqlite3CantopenError(tls, int32(66371)) goto finished } /* Malloc a buffer to read frames into. */ @@ -43083,6 +43348,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { } Xsqlite3_free(tls, aFrame) } + goto finished finished: ; if rc == SQLITE_OK { @@ -43127,9 +43393,10 @@ finished: ** checkpointing the log file. */ if (*TWal)(unsafe.Pointer(pWal)).Fhdr.FnPage != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(1)< int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(71032)) + rc = _sqlite3CorruptError(tls, int32(71421)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } @@ -47884,7 +48160,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if key == uint32(0) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71230)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71619)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -47897,12 +48173,12 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, /* The first byte of the extra data is the MemPage.isInit byte. ** If that byte is set, it means this page is also being used ** as a btree page. */ - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71243)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71632)) goto ptrmap_exit } offset = int32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71248)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71637)) goto ptrmap_exit } _ = libc.Int32FromInt32(0) @@ -47916,6 +48192,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _sqlite3Put4byte(tls, pPtrmap+uintptr(offset+int32(1)), parent) } } + goto ptrmap_exit ptrmap_exit: ; _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -47947,7 +48224,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = int32(libc.Uint32FromInt32(5) * (key - uint32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(71293)) + return _sqlite3CorruptError(tls, int32(71682)) } _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -47957,7 +48234,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if int32(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || int32(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(71301)) + return _sqlite3CorruptError(tls, int32(71690)) } return SQLITE_OK } @@ -48396,7 +48673,7 @@ func _ptrmapPutOvflPtr(tls *libc.TLS, pPage uintptr, pSrc uintptr, pCell uintptr (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if uint64(pCell) < uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) && uint64(pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal)) > uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71741)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72130)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(int32((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -48442,12 +48719,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71799)) + return _sqlite3CorruptError(tls, int32(72188)) } if iFree != 0 { iFree2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71802)) + return _sqlite3CorruptError(tls, int32(72191)) } if 0 == iFree2 || int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -48455,21 +48732,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(71810)) + return _sqlite3CorruptError(tls, int32(72199)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(71813)) + return _sqlite3CorruptError(tls, int32(72202)) } sz2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(71815)) + return _sqlite3CorruptError(tls, int32(72204)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), uint64(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(71819)) + return _sqlite3CorruptError(tls, int32(72208)) } } cbrk = top + sz @@ -48517,13 +48794,13 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { ** if PRAGMA cell_size_check=ON. */ if pc > iCellLast { - return _sqlite3CorruptError(tls, int32(71852)) + return _sqlite3CorruptError(tls, int32(72241)) } _ = libc.Int32FromInt32(0) size = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, src+uintptr(pc))) cbrk -= size if cbrk < iCellStart || pc+size > usableSize { - return _sqlite3CorruptError(tls, int32(71858)) + return _sqlite3CorruptError(tls, int32(72247)) } _ = libc.Int32FromInt32(0) *(*Tu8)(unsafe.Pointer(pAddr1)) = uint8(cbrk >> libc.Int32FromInt32(8)) @@ -48536,11 +48813,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { } } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))) = uint8(0) + goto defragment_out defragment_out: ; _ = libc.Int32FromInt32(0) if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(71872)) + return _sqlite3CorruptError(tls, int32(72261)) } _ = libc.Int32FromInt32(0) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = uint8(cbrk >> libc.Int32FromInt32(8)) @@ -48603,7 +48881,7 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint } else { if x+pc > maxPC { /* This slot extends off the end of the usable part of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71929)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72318)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -48620,14 +48898,14 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint if pc <= iAddr { if pc != 0 { /* The next slot in the chain comes before the current slot */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71944)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72333)) } return uintptr(0) } } if pc > maxPC+nByte-int32(4) { /* The free slot chain extends off the end of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71951)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72340)) } return uintptr(0) } @@ -48678,11 +48956,11 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r if top == 0 && (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize == uint32(65536) { top = int32(65536) } else { - return _sqlite3CorruptError(tls, int32(71999)) + return _sqlite3CorruptError(tls, int32(72388)) } } else { if top > int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(72002)) + return _sqlite3CorruptError(tls, int32(72391)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -48697,7 +48975,7 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r g2 = v1 *(*int32)(unsafe.Pointer(pIdx)) = v1 if g2 <= gap { - return _sqlite3CorruptError(tls, int32(72019)) + return _sqlite3CorruptError(tls, int32(72408)) } else { return SQLITE_OK } @@ -48790,12 +49068,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if int32(iFreeBlk) == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(72098)) + return _sqlite3CorruptError(tls, int32(72487)) } iPtr = iFreeBlk } if uint32(iFreeBlk) > (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(72103)) + return _sqlite3CorruptError(tls, int32(72492)) } _ = libc.Int32FromInt32(0) /* At this point: @@ -48807,11 +49085,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if iFreeBlk != 0 && iEnd+uint32(3) >= uint32(iFreeBlk) { nFrag = uint8(uint32(iFreeBlk) - iEnd) if iEnd > uint32(iFreeBlk) { - return _sqlite3CorruptError(tls, int32(72115)) + return _sqlite3CorruptError(tls, int32(72504)) } iEnd = uint32(int32(iFreeBlk) + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iFreeBlk)+int32(2)))))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - return _sqlite3CorruptError(tls, int32(72118)) + return _sqlite3CorruptError(tls, int32(72507)) } iSize = uint16(iEnd - uint32(iStart)) iFreeBlk = uint16(int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= int32(iStart) { if iPtrEnd > int32(iStart) { - return _sqlite3CorruptError(tls, int32(72131)) + return _sqlite3CorruptError(tls, int32(72520)) } nFrag = Tu8(int32(nFrag) + (int32(iStart) - iPtrEnd)) iSize = uint16(iEnd - uint32(iPtr)) @@ -48832,7 +49110,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) } } if int32(nFrag) > int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(72137)) + return _sqlite3CorruptError(tls, int32(72526)) } p2 = data + uintptr(int32(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - int32(nFrag)) @@ -48849,10 +49127,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) ** so just extend the cell content area rather than create another ** freelist entry */ if int32(iStart) < int32(x) { - return _sqlite3CorruptError(tls, int32(72151)) + return _sqlite3CorruptError(tls, int32(72540)) } if int32(iPtr) != int32(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(72152)) + return _sqlite3CorruptError(tls, int32(72541)) } *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)))) = uint8(int32(iFreeBlk) >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)) + 1)) = uint8(iFreeBlk) @@ -48915,7 +49193,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtrIdxLeaf) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72206)) + return _sqlite3CorruptError(tls, int32(72595)) } } } else { @@ -48941,7 +49219,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtr) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72230)) + return _sqlite3CorruptError(tls, int32(72619)) } } } @@ -48988,12 +49266,12 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-55530-52930 In a well-formed b-tree page, there will ** always be at least one cell before the first freeblock. */ - return _sqlite3CorruptError(tls, int32(72281)) + return _sqlite3CorruptError(tls, int32(72670)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(72286)) + return _sqlite3CorruptError(tls, int32(72675)) } next = uint32(int32(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(72296)) + return _sqlite3CorruptError(tls, int32(72685)) } if uint32(pc)+size > uint32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(72300)) + return _sqlite3CorruptError(tls, int32(72689)) } } /* At this point, nFree contains the sum of the offset to the start @@ -49020,7 +49298,7 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { ** area, according to the page header, lies within the page. */ if nFree > usableSize || nFree < iCellFirst { - return _sqlite3CorruptError(tls, int32(72312)) + return _sqlite3CorruptError(tls, int32(72701)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16(nFree - iCellFirst)) return SQLITE_OK @@ -49051,11 +49329,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))) if pc < iCellFirst || pc > iCellLast { - return _sqlite3CorruptError(tls, int32(72343)) + return _sqlite3CorruptError(tls, int32(72732)) } sz = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, data+uintptr(pc))) if pc+sz > usableSize { - return _sqlite3CorruptError(tls, int32(72348)) + return _sqlite3CorruptError(tls, int32(72737)) } goto _1 _1: @@ -49091,7 +49369,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-28594-02890 The one-byte flag at offset 0 indicating ** the b-tree page type. */ if _decodeFlags(tls, pPage, int32(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(72380)) + return _sqlite3CorruptError(tls, int32(72769)) } _ = libc.Int32FromInt32(0) (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) @@ -49105,7 +49383,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = uint16(int32(*(*Tu8)(unsafe.Pointer(data + 3)))< ((*TBtShared)(unsafe.Pointer(pBt)).FpageSize-uint32(8))/uint32(6) { /* To many cells for a single page. The page must be corrupt */ - return _sqlite3CorruptError(tls, int32(72394)) + return _sqlite3CorruptError(tls, int32(72783)) } /* EVIDENCE-OF: R-24089-57979 If a page contains no cells (which is only ** possible for a root page of a table that contains no rows) then the @@ -49271,7 +49549,7 @@ func _getAndInitPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, bRe _ = libc.Int32FromInt32(0) if pgno > _btreePagecount(tls, pBt) { *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72537)) + return _sqlite3CorruptError(tls, int32(72926)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -49348,7 +49626,7 @@ func _btreeGetUnusedPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FpDbPage) > int32(1) { _releasePage(tls, *(*uintptr)(unsafe.Pointer(ppPage))) *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72609)) + return _sqlite3CorruptError(tls, int32(72998)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -49440,7 +49718,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt /* Set the variable isMemdb to true for an in-memory database, or ** false for a file-based database. */ - isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4199) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) + isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4263) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -49675,6 +49953,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt } } *(*uintptr)(unsafe.Pointer(ppBtree)) = p + goto btree_open_out btree_open_out: ; if rc != SQLITE_OK { @@ -50260,7 +50539,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { ** The original design allowed these amounts to vary, but as of ** version 3.6.0, we require them to be fixed. */ - if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4208, uint64(3)) != 0 { + if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4272, uint64(3)) != 0 { goto page1_init_failed } /* EVIDENCE-OF: R-51873-39618 The page size for a database file is @@ -50299,7 +50578,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { } if nPage > *(*Tu32)(unsafe.Pointer(bp + 8)) { if _sqlite3WritableSchema(tls, (*TBtShared)(unsafe.Pointer(pBt)).Fdb) == 0 { - rc = _sqlite3CorruptError(tls, int32(73547)) + rc = _sqlite3CorruptError(tls, int32(73936)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -50354,6 +50633,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 = *(*uintptr)(unsafe.Pointer(bp)) (*TBtShared)(unsafe.Pointer(pBt)).FnPage = nPage return SQLITE_OK + goto page1_init_failed page1_init_failed: ; _releasePageOne(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -50638,6 +50918,7 @@ func _btreeBeginTrans(tls *libc.TLS, p uintptr, wrflag int32, pSchemaVersion uin } } } + goto trans_begun trans_begun: ; if rc == SQLITE_OK { @@ -50759,7 +51040,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if int32(eType) == int32(PTRMAP_OVERFLOW2) { /* The pointer is always the first 4 bytes of the page in this case. */ if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData) != iFrom { - return _sqlite3CorruptError(tls, int32(73995)) + return _sqlite3CorruptError(tls, int32(74384)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -50783,7 +51064,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74014)) + return _sqlite3CorruptError(tls, int32(74403)) } if iFrom == _sqlite3Get4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4)) { _sqlite3Put4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4), iTo) @@ -50792,7 +51073,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } } else { if pCell+uintptr(4) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74023)) + return _sqlite3CorruptError(tls, int32(74412)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -50806,7 +51087,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if int32(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(74035)) + return _sqlite3CorruptError(tls, int32(74424)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -50839,7 +51120,7 @@ func _relocatePage(tls *libc.TLS, pBt uintptr, pDbPage uintptr, eType Tu8, iPtrP _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iDbPage < uint32(3) { - return _sqlite3CorruptError(tls, int32(74070)) + return _sqlite3CorruptError(tls, int32(74459)) } /* Move page iDbPage from its current location to page number iFreePage */ *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3PagerMovepage(tls, pPager, (*TMemPage)(unsafe.Pointer(pDbPage)).FpDbPage, iFreePage, isCommit) @@ -50937,7 +51218,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(74168)) + return _sqlite3CorruptError(tls, int32(74557)) } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -50976,7 +51257,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if *(*TPgno)(unsafe.Pointer(bp + 24)) > dbSize { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) - return _sqlite3CorruptError(tls, int32(74220)) + return _sqlite3CorruptError(tls, int32(74609)) } } _ = libc.Int32FromInt32(0) @@ -51045,7 +51326,7 @@ func _sqlite3BtreeIncrVacuum(tls *libc.TLS, p uintptr) (r int32) { nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) nFin = _finalDbSize(tls, pBt, nOrig, nFree) if nOrig < nFin || nFree >= nOrig { - rc = _sqlite3CorruptError(tls, int32(74288)) + rc = _sqlite3CorruptError(tls, int32(74677)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -51091,7 +51372,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { ** is either a pointer-map page or the pending-byte page. If one ** is encountered, this indicates corruption. */ - return _sqlite3CorruptError(tls, int32(74339)) + return _sqlite3CorruptError(tls, int32(74728)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -51121,7 +51402,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(74366)) + return _sqlite3CorruptError(tls, int32(74755)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -51619,7 +51900,7 @@ func _btreeCursor(tls *libc.TLS, p uintptr, iTable TPgno, wrFlag int32, pKeyInfo _ = libc.Int32FromInt32(0) if iTable <= uint32(1) { if iTable < uint32(1) { - return _sqlite3CorruptError(tls, int32(74830)) + return _sqlite3CorruptError(tls, int32(75219)) } else { if _btreePagecount(tls, pBt) == uint32(0) { _ = libc.Int32FromInt32(0) @@ -52033,7 +52314,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(75235)) + return _sqlite3CorruptError(tls, int32(75624)) } _ = libc.Int32FromInt32(0) _getCellInfo(tls, pCur) @@ -52046,7 +52327,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin ** &aPayload[pCur->info.nLocal] > &pPage->aData[pBt->usableSize] ** but is recast into its current form to avoid integer overflow problems */ - return _sqlite3CorruptError(tls, int32(75250)) + return _sqlite3CorruptError(tls, int32(75639)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -52074,7 +52355,11 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_ValidOvfl) == 0 { nOvfl = int32(((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnPayload - uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) + ovflSize - uint32(1)) / ovflSize) if (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow == uintptr(0) || nOvfl*libc.Int32FromInt64(4) > _sqlite3MallocSize(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow) { - aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + if _sqlite3FaultSim(tls, int32(413)) != 0 { + aNew = uintptr(0) + } else { + aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + } if aNew == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -52085,6 +52370,9 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin p1 = pCur + 1 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(BTCF_ValidOvfl)) } else { + /* Sanity check the validity of the overflow page cache */ + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* If the overflow page-list cache has been allocated and the ** entry for the first required overflow page is valid, skip ** directly to it. @@ -52099,7 +52387,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin for *(*TPgno)(unsafe.Pointer(bp)) != 0 { /* If required, populate the overflow page-list cache. */ if *(*TPgno)(unsafe.Pointer(bp)) > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(75312)) + return _sqlite3CorruptError(tls, int32(75710)) } _ = libc.Int32FromInt32(0) *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) @@ -52176,7 +52464,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin } if rc == SQLITE_OK && amt > uint32(0) { /* Overflow chain ends prematurely */ - return _sqlite3CorruptError(tls, int32(75396)) + return _sqlite3CorruptError(tls, int32(75794)) } return rc } @@ -52329,7 +52617,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(75534)) + return _sqlite3CorruptError(tls, int32(75932)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -52342,7 +52630,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(75548)) + rc = _sqlite3CorruptError(tls, int32(75946)) } if rc != 0 { v3 = pCur + 84 @@ -52472,8 +52760,9 @@ func _moveToRoot(tls *libc.TLS, pCur uintptr) (r int32) { ** (or the freelist). */ _ = libc.Int32FromInt32(0) if int32((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != int32((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(75683)) + return _sqlite3CorruptError(tls, int32(76081)) } + goto skip_init skip_init: ; (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(0) @@ -52485,7 +52774,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(75695)) + return _sqlite3CorruptError(tls, int32(76093)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -52634,6 +52923,7 @@ func _sqlite3BtreeLast(tls *libc.TLS, pCur uintptr, pRes uintptr) (r int32) { _ = libc.Int32FromInt32(0) /* If the cursor already points to the last entry, this is a no-op. */ if CURSOR_VALID == int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) && int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_AtLast) != 0 { + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pRes)) = 0 return SQLITE_OK } @@ -52687,6 +52977,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh } if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey < intKey { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_AtLast) != 0 { + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pRes)) = -int32(1) return SQLITE_OK } @@ -52749,7 +53040,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(75937)) + return _sqlite3CorruptError(tls, int32(76342)) } } } @@ -52797,6 +53088,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh rc = SQLITE_OK goto moveto_table_finish } + goto moveto_table_next_layer moveto_table_next_layer: ; if lwr >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { @@ -52812,6 +53104,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh goto _1 _1: } + goto moveto_table_finish moveto_table_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -52963,7 +53256,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes p3 = pCur + 1 *(*Tu8)(unsafe.Pointer(p3)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p3))) & ^libc.Int32FromInt32(BTCF_ValidOvfl)) if !((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76133)) + return _sqlite3CorruptError(tls, int32(76538)) } goto bypass_moveto_root /* Start search on the current page */ } @@ -52978,6 +53271,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes } return rc } + goto bypass_moveto_root bypass_moveto_root: ; _ = libc.Int32FromInt32(0) @@ -53034,7 +53328,7 @@ bypass_moveto_root: /* Invalid key size: 0x80 0x80 0x01 */ /* Minimum legal index key size */ if nCell < int32(2) || uint32(nCell)/(*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FusableSize > (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(76220)) + rc = _sqlite3CorruptError(tls, int32(76625)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, uint64(nCell+nOverrun)) @@ -53067,7 +53361,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(76252)) + rc = _sqlite3CorruptError(tls, int32(76657)) } goto moveto_index_finish } @@ -53104,7 +53398,7 @@ bypass_moveto_root: p9 = pCur + 1 *(*Tu8)(unsafe.Pointer(p9)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p9))) & ^(libc.Int32FromInt32(BTCF_ValidNKey) | libc.Int32FromInt32(BTCF_ValidOvfl))) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(76283)) + return _sqlite3CorruptError(tls, int32(76688)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = uint16(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -53113,7 +53407,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76294)) + rc = _sqlite3CorruptError(tls, int32(76699)) } if rc != 0 { v11 = pCur + 84 @@ -53127,6 +53421,7 @@ bypass_moveto_root: goto _4 _4: } + goto moveto_index_finish moveto_index_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -53164,11 +53459,11 @@ func _sqlite3BtreeRowCountEst(tls *libc.TLS, pCur uintptr) (r Ti64) { _, _ = i, n _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - /* Currently this interface is only called by the OP_IfSmaller - ** opcode, and it that case the cursor will always be valid and - ** will always point to a leaf node. */ + /* Currently this interface is only called by the OP_IfSizeBetween + ** opcode and the OP_Count opcode with P3=1. In either case, + ** the cursor will always be valid unless the btree is empty. */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID { - return int64(-int32(1)) + return 0 } if int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).Fleaf) == 0 { return int64(-int32(1)) @@ -53246,7 +53541,7 @@ func _btreeNext(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76395)) + return _sqlite3CorruptError(tls, int32(76800)) } if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -53361,7 +53656,7 @@ func _btreePrevious(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76488)) + return _sqlite3CorruptError(tls, int32(76893)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -53455,7 +53750,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt ** stores the total number of pages on the freelist. */ n = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+36) if n >= mxPage { - return _sqlite3CorruptError(tls, int32(76578)) + return _sqlite3CorruptError(tls, int32(76983)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -53512,7 +53807,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(76634)) + rc = _sqlite3CorruptError(tls, int32(77039)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -53541,7 +53836,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { if k > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/libc.Uint32FromInt32(4)-libc.Uint32FromInt32(2) { /* Value of k is out of range. Database corruption */ - rc = _sqlite3CorruptError(tls, int32(76663)) + rc = _sqlite3CorruptError(tls, int32(77068)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -53568,7 +53863,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { iNewTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+8) if iNewTrunk > mxPage { - rc = _sqlite3CorruptError(tls, int32(76697)) + rc = _sqlite3CorruptError(tls, int32(77102)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -53640,7 +53935,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } iPage = _sqlite3Get4byte(tls, aData+uintptr(uint32(8)+closest*uint32(4))) if iPage > mxPage || iPage < uint32(2) { - rc = _sqlite3CorruptError(tls, int32(76762)) + rc = _sqlite3CorruptError(tls, int32(77167)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -53743,6 +54038,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } } _ = libc.Int32FromInt32(0) + goto end_allocate_page end_allocate_page: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -53785,7 +54081,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iPage < uint32(2) || iPage > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(76889)) + return _sqlite3CorruptError(tls, int32(77294)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -53836,7 +54132,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in if nFree != uint32(0) { /* Initial number of leaf cells on trunk page */ iTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32) if iTrunk > _btreePagecount(tls, pBt) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76936)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77341)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -53846,7 +54142,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in nLeaf = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+4) _ = libc.Int32FromInt32(0) if nLeaf > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(2) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76947)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77352)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -53901,6 +54197,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData, iTrunk) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData+4, uint32(0)) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32, iPage) + goto freepage_out freepage_out: ; if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -53937,7 +54234,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp _ = libc.Int32FromInt32(0) if pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { /* Cell extends past end of page */ - return _sqlite3CorruptError(tls, int32(77036)) + return _sqlite3CorruptError(tls, int32(77441)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -53957,7 +54254,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp /* 0 is not a legal page number and page 1 cannot be an ** overflow page. Therefore if ovflPgno<2 or past the end of the ** file the database must be corrupt. */ - return _sqlite3CorruptError(tls, int32(77053)) + return _sqlite3CorruptError(tls, int32(77458)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -53980,7 +54277,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp ** caller is iterating through or using in some other way, this ** can be problematic. */ - rc = _sqlite3CorruptError(tls, int32(77073)) + rc = _sqlite3CorruptError(tls, int32(77478)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -54216,7 +54513,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = uint32(int32(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77329)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77734)) return } rc = _freeSpace(tls, pPage, uint16(pc), uint16(sz)) @@ -54651,12 +54948,12 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg _ = libc.Int32FromInt32(0) if uint64(pCell) >= uint64(aData+uintptr(j)) && uint64(pCell) < uint64(pEnd) { if uint64(pCell+uintptr(sz)) > uint64(pEnd) { - return _sqlite3CorruptError(tls, int32(77718)) + return _sqlite3CorruptError(tls, int32(78123)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(77723)) + return _sqlite3CorruptError(tls, int32(78128)) } } pData -= uintptr(sz) @@ -54664,7 +54961,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = uint8(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(77729)) + return _sqlite3CorruptError(tls, int32(78134)) } libc.Xmemmove(tls, pData, pCell, uint64(sz)) _ = libc.Int32FromInt32(0) @@ -54763,7 +55060,7 @@ func _pageInsertArray(tls *libc.TLS, pPg uintptr, pBegin uintptr, ppData uintptr _ = libc.Int32FromInt32(0) if uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))+uintptr(sz)) > uint64(pEnd) && uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))) < uint64(pEnd) { _ = libc.Int32FromInt32(0) - _sqlite3CorruptError(tls, int32(77814)) + _sqlite3CorruptError(tls, int32(78219)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), uint64(sz)) @@ -54913,7 +55210,7 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p if iOld < iNew { nShift = _pageFreeArray(tls, pPg, iOld, iNew-iOld, pCArray) if nShift > nCell { - return _sqlite3CorruptError(tls, int32(77936)) + return _sqlite3CorruptError(tls, int32(78341)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), uint64(nCell*int32(2))) nCell -= nShift @@ -54983,11 +55280,12 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)))) = uint8((int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)) + 1)) = uint8(int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) return SQLITE_OK + goto editpage_fail editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(78010)) + return _sqlite3CorruptError(tls, int32(78415)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -55035,7 +55333,7 @@ func _balance_quick(tls *libc.TLS, pParent uintptr, pPage uintptr, pSpace uintpt _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(78050)) + return _sqlite3CorruptError(tls, int32(78455)) } /* dbfuzz001.test */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -55411,7 +55709,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78471)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78876)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -55434,7 +55732,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa libc.Xmemset(tls, (*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell+uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*2, 0, uint64(2)*uint64(limit+int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78495)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78900)) goto balance_cleanup } limit = int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -55577,7 +55875,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa if i+int32(1) >= k { k = i + int32(2) if k > libc.Int32FromInt32(NB)+libc.Int32FromInt32(2) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78596)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79001)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -55620,7 +55918,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v10 = 0 } if cntNew[i] <= v10 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78629)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79034)) goto balance_cleanup } } @@ -55681,7 +55979,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v15 = 0 } if cntNew[i-int32(1)] <= v15 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78673)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79078)) goto balance_cleanup } goto _11 @@ -55714,7 +56012,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) nNew++ if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) != int32(1)+libc.BoolInt32(i == iParentIdx-nxDiv) && *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78706)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79111)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -55957,7 +56255,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa } pSrcEnd = *(*uintptr)(unsafe.Pointer(bp + 112 + 32 + uintptr(k)*8)) if uint64(pCell1) < uint64(pSrcEnd) && uint64(pCell1+uintptr(sz2)) > uint64(pSrcEnd) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78906)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79311)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -56106,6 +56404,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa /* ** Cleanup before returning. */ + goto balance_cleanup balance_cleanup: ; _sqlite3DbFree(tls, uintptr(0), (*(*TCellArray)(unsafe.Pointer(bp + 112))).FapCell) @@ -56221,7 +56520,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && int32((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(79138)) + return _sqlite3CorruptError(tls, int32(79543)) } goto _1 _1: @@ -56296,7 +56595,7 @@ func _balance(tls *libc.TLS, pCur uintptr) (r int32) { /* The page being written is not a root page, and there is currently ** more than one reference to it. This only happens if the page is one ** of its own ancestor pages. Corruption. */ - rc = _sqlite3CorruptError(tls, int32(79198)) + rc = _sqlite3CorruptError(tls, int32(79603)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = int32(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -56459,7 +56758,7 @@ func _btreeOverwriteOverflowCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int return rc } if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1) || (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FisInit != 0 { - rc = _sqlite3CorruptError(tls, int32(79362)) + rc = _sqlite3CorruptError(tls, int32(79767)) } else { if uint32(iOffset)+ovflPageSize < uint32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -56490,7 +56789,7 @@ func _btreeOverwriteCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int32) { nTotal = (*TBtreePayload)(unsafe.Pointer(pX)).FnData + (*TBtreePayload)(unsafe.Pointer(pX)).FnZero /* Total bytes of to write */ pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage /* Page being written */ if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload+uintptr((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd || (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FcellOffset) { - return _sqlite3CorruptError(tls, int32(79390)) + return _sqlite3CorruptError(tls, int32(79795)) } if int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -56577,7 +56876,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** Which can only happen if the SQLITE_NoSchemaError flag was set when ** the schema was loaded. This cannot be asserted though, as a user might ** set the flag, load the schema, and then unset the flag. */ - return _sqlite3CorruptError(tls, int32(79471)) + return _sqlite3CorruptError(tls, int32(79876)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -56680,7 +56979,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79594)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79999)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -56722,7 +57021,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if *(*int32)(unsafe.Pointer(bp + 4)) == 0 { _ = libc.Int32FromInt32(0) if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79636)) + return _sqlite3CorruptError(tls, int32(80041)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -56752,10 +57051,10 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry. */ _ = libc.Int32FromInt32(0) /* clearCell never fails when nLocal==nPayload */ if oldCell < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+uintptr(10) { - return _sqlite3CorruptError(tls, int32(79663)) + return _sqlite3CorruptError(tls, int32(80068)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79666)) + return _sqlite3CorruptError(tls, int32(80071)) } libc.Xmemcpy(tls, oldCell, newCell, uint64(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -56827,6 +57126,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s } } _ = libc.Int32FromInt32(0) + goto end_insert end_insert: ; return *(*int32)(unsafe.Pointer(bp)) @@ -56879,7 +57179,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T nIn = uint32((*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnLocal) aIn = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload if aIn+uintptr(nIn) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79768)) + return _sqlite3CorruptError(tls, int32(80173)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -56901,7 +57201,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T } if nRem > nIn { if aIn+uintptr(nIn)+uintptr(4) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79793)) + return _sqlite3CorruptError(tls, int32(80198)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -57010,7 +57310,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(79889)) + return _sqlite3CorruptError(tls, int32(80294)) } } _ = libc.Int32FromInt32(0) @@ -57018,14 +57318,14 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { iCellIdx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(79898)) + return _sqlite3CorruptError(tls, int32(80303)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCellIdx)))))) if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 && _btreeComputeFreeSpace(tls, pPage) != 0 { - return _sqlite3CorruptError(tls, int32(79902)) + return _sqlite3CorruptError(tls, int32(80307)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79905)) + return _sqlite3CorruptError(tls, int32(80310)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -57120,7 +57420,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { } pCell = (*TMemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(int32(2)*(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FnCell)-int32(1)))))))) if pCell < (*TMemPage)(unsafe.Pointer(pLeaf)).FaData+4 { - return _sqlite3CorruptError(tls, int32(79996)) + return _sqlite3CorruptError(tls, int32(80401)) } nCell = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pLeaf)).FxCellSize})))(tls, pLeaf, pCell)) _ = libc.Int32FromInt32(0) @@ -57240,7 +57540,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags */ _sqlite3BtreeGetMeta(tls, p, int32(BTREE_LARGEST_ROOT_PAGE), bp+8) if *(*TPgno)(unsafe.Pointer(bp + 8)) > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80112)) + return _sqlite3CorruptError(tls, int32(80517)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -57282,7 +57582,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags } *(*int32)(unsafe.Pointer(bp + 12)) = _ptrmapGet(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 8)), bp+32, bp+36) if int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80160)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80565)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -57369,14 +57669,14 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _, _, _, _ = hdr, i, pCell, v2 _ = libc.Int32FromInt32(0) if pgno > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80250)) + return _sqlite3CorruptError(tls, int32(80655)) } *(*int32)(unsafe.Pointer(bp + 8)) = _getAndInitPage(tls, pBt, pgno, bp, 0) if *(*int32)(unsafe.Pointer(bp + 8)) != 0 { return *(*int32)(unsafe.Pointer(bp + 8)) } if int32((*TBtShared)(unsafe.Pointer(pBt)).FopenFlags)&int32(BTREE_SINGLE) == 0 && _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1)+libc.BoolInt32(pgno == uint32(1)) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80257)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80662)) goto cleardatabasepage_out } hdr = int32((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -57427,6 +57727,7 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _zeroPage(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData + uintptr(hdr))))|int32(PTF_LEAF)) } } + goto cleardatabasepage_out cleardatabasepage_out: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -57516,7 +57817,7 @@ func _btreeDropTable(tls *libc.TLS, p uintptr, iTable TPgno, piMoved uintptr) (r _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iTable > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80361)) + return _sqlite3CorruptError(tls, int32(80766)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, int32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -57792,7 +58093,7 @@ func _checkAppendMsg(tls *libc.TLS, pCheck uintptr, zFormat uintptr, va uintptr) (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr++ ap = va if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FerrMsg.FnChar != 0 { - Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4212, int32(1)) + Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4276, int32(1)) } if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx != 0 { Xsqlite3_str_appendf(tls, pCheck+72, (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx, libc.VaList(bp+8, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv0, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv2)) @@ -57844,11 +58145,11 @@ func _checkRef(tls *libc.TLS, pCheck uintptr, iPage TPgno) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if iPage > (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnCkPage || iPage == uint32(0) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4214, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4278, libc.VaList(bp+8, iPage)) return int32(1) } if _getPageReferenced(tls, pCheck, iPage) != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4237, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4301, libc.VaList(bp+8, iPage)) return int32(1) } _setPageReferenced(tls, pCheck, iPage) @@ -57874,11 +58175,11 @@ func _checkPtrmap(tls *libc.TLS, pCheck uintptr, iChild TPgno, eType Tu8, iParen if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FusableSize/uint32(4)-uint32(2) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4367, libc.VaList(bp+16, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4431, libc.VaList(bp+16, iPage)) N-- } else { i = 0 @@ -57950,11 +58251,11 @@ func _checkList(tls *libc.TLS, pCheck uintptr, isFreeList int32, iPage TPgno, N } if N != 0 && nErrAtStart == (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr { if isFreeList != 0 { - v2 = __ccgo_ts + 4406 + v2 = __ccgo_ts + 4470 } else { - v2 = __ccgo_ts + 4411 + v2 = __ccgo_ts + 4475 } - _checkAppendMsg(tls, pCheck, __ccgo_ts+4432, libc.VaList(bp+16, v2, expected-N, expected)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4496, libc.VaList(bp+16, v2, expected-N, expected)) } } @@ -58091,12 +58392,12 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr if _checkRef(tls, pCheck, iPage) != 0 { return 0 } - (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4458 + (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4522 (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = iPage v1 = _btreeGetPage(tls, pBt, iPage, bp+8, 0) rc = v1 if v1 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4476, libc.VaList(bp+56, rc)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4540, libc.VaList(bp+56, rc)) if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< usableSize-uint32(4) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4630, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4694, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) doCoverageCheck = 0 goto _4 } pCell = data + uintptr(pc) (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FxParseCell})))(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), pCell, bp+24) if pc+uint32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnSize) > usableSize { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4660, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4724, 0) doCoverageCheck = 0 goto _4 } @@ -58182,7 +58486,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr v5 = libc.BoolInt32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey >= *(*Ti64)(unsafe.Pointer(bp))) } if v5 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4684, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4748, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) } *(*Ti64)(unsafe.Pointer(bp)) = (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey keyCanBeEqual = 0 /* Only the first key on the page may ==maxKey */ @@ -58206,7 +58510,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr d2 = _checkTreePage(tls, pCheck, uint32(pgno), bp, *(*Ti64)(unsafe.Pointer(bp))) keyCanBeEqual = 0 if d2 != depth { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4708, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4772, 0) depth = d2 } } else { @@ -58243,6 +58547,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr i-- } } + _ = libc.Int32FromInt32(0) /* Add the freeblocks to the min-heap ** ** EVIDENCE-OF: R-20690-50594 The second field of the b-tree page header @@ -58283,7 +58588,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr prev = contentOffset - uint32(1) /* Implied first min-heap entry */ for _btreeHeapPull(tls, heap, bp+16) != 0 { if prev&uint32(0xffff) >= *(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4733, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4797, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) break } else { nFrag = int32(uint32(nFrag) + (*(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) - prev&libc.Uint32FromInt32(0xffff) - libc.Uint32FromInt32(1))) @@ -58297,9 +58602,10 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr ** number of fragmented free bytes within the cell content area. */ if *(*Tu32)(unsafe.Pointer(heap)) == uint32(0) && nFrag != int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4770, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4834, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) } } + goto end_of_check end_of_check: ; if !(doCoverageCheck != 0) { @@ -58336,22 +58642,23 @@ end_of_check: // ** the unverified btrees. Except, if aRoot[1] is 1, then the freelist // ** checks are still performed. // */ -func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { - bp := tls.Alloc(256) - defer tls.Free(256) +func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, aCnt uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { + bp := tls.Alloc(272) + defer tls.Free(272) var bCkFreelist, bPartial int32 var i, mx, mxInHdr TPgno var pBt uintptr var savedDbFlags Tu64 - var _ /* notUsed at bp+224 */ Ti64 + var _ /* notUsed at bp+232 */ Ti64 var _ /* sCheck at bp+0 */ TIntegrityCk - var _ /* zErr at bp+120 */ [100]uint8 + var _ /* zErr at bp+128 */ [100]uint8 _, _, _, _, _, _, _ = bCkFreelist, bPartial, i, mx, mxInHdr, pBt, savedDbFlags pBt = (*TBtree)(unsafe.Pointer(p)).FpBt savedDbFlags = (*Tsqlite3)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags bPartial = 0 /* True if not checking all btrees */ bCkFreelist = int32(1) /* True to scan the freelist */ _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* aRoot[0]==0 means this is a partial check */ if *(*TPgno)(unsafe.Pointer(aRoot)) == uint32(0) { _ = libc.Int32FromInt32(0) @@ -58363,13 +58670,13 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin _sqlite3BtreeEnter(tls, p) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - libc.Xmemset(tls, bp, 0, uint64(120)) + libc.Xmemset(tls, bp, 0, uint64(128)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fdb = db (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt = pBt (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage = _btreePagecount(tls, (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr = mxErr - _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+120, int32(100), int32(SQLITE_MAX_LENGTH)) + _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+128, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FerrMsg.FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage == uint32(0) { goto integrity_ck_cleanup @@ -58391,7 +58698,7 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin /* Check the integrity of the freelist */ if bCkFreelist != 0 { - (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4822 + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4886 _checkList(tls, bp, int32(1), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+32), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = uintptr(0) } @@ -58415,11 +58722,11 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } mxInHdr = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+52) if mx != mxInHdr { - _checkAppendMsg(tls, bp, __ccgo_ts+4833, libc.VaList(bp+240, mx, mxInHdr)) + _checkAppendMsg(tls, bp, __ccgo_ts+4897, libc.VaList(bp+248, mx, mxInHdr)) } } else { if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+64) != uint32(0) { - _checkAppendMsg(tls, bp, __ccgo_ts+4878, 0) + _checkAppendMsg(tls, bp, __ccgo_ts+4942, 0) } } } @@ -58429,14 +58736,15 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin if !(int32(i) < nRoot && (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr != 0) { break } - if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) == uint32(0) { - goto _2 - } - if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { - _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnRow = 0 + if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) != 0 { + if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { + _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + } + (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fv0 = *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) + _checkTreePage(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), bp+232, libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)< nRec || iHdr >= *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84303)) + iHdr = uint32(uint8(v1)) + if *(*Tu32)(unsafe.Pointer(bp + 4)) > uint32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84745)) } - iField = *(*int32)(unsafe.Pointer(bp + 4)) + iField = int64(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 for { if !(i <= iCol) { @@ -61611,19 +61955,19 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } else { v3 = int32(_sqlite3GetVarint32(tls, a+uintptr(iHdr), bp)) } - iHdr += int32(uint8(v3)) - if iHdr > *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84309)) + iHdr += uint32(uint8(v3)) + if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84751)) } - szField = int32(_sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp)))) - iField += szField + szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) + iField += int64(szField) goto _2 _2: ; i++ } - if iField > nRec { - return _sqlite3CorruptError(tls, int32(84315)) + if iField > int64(nRec) { + return _sqlite3CorruptError(tls, int32(84757)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -61633,7 +61977,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC return int32(SQLITE_NOMEM) } } - _sqlite3VdbeSerialGet(tls, a+uintptr(iField-szField), *(*Tu32)(unsafe.Pointer(bp)), pMem) + _sqlite3VdbeSerialGet(tls, a+uintptr(iField-int64(szField)), *(*Tu32)(unsafe.Pointer(bp)), pMem) (*TMem)(unsafe.Pointer(pMem)).Fenc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc return SQLITE_OK } @@ -62069,6 +62413,7 @@ func _sqlite3VdbeMultiLoad(tls *libc.TLS, p uintptr, iDest int32, zTypes uintptr i++ } _sqlite3VdbeAddOp2(tls, p, int32(OP_ResultRow), iDest, i) + goto skip_op_resultrow skip_op_resultrow: ; _ = ap @@ -62447,6 +62792,11 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { _ = libc.Int32FromInt32(0) /* True because of tag-20230419-1 */ (*TOp)(unsafe.Pointer(pOp)).Fp2 = *(*int32)(unsafe.Pointer(aLabel + uintptr(^(*TOp)(unsafe.Pointer(pOp)).Fp2)*4)) } + /* OPFLG_JUMP opcodes never have P2==0, though OPFLG_JUMP0 opcodes + ** might */ + _ = libc.Int32FromInt32(0) + /* Jumps never go off the end of the bytecode array */ + _ = libc.Int32FromInt32(0) break } /* The mkopcodeh.tcl script has so arranged things that the only @@ -62457,6 +62807,7 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { _ = libc.Int32FromInt32(0) pOp -= 24 } + goto resolve_p2_values_loop_exit resolve_p2_values_loop_exit: ; if aLabel != 0 { @@ -62997,7 +63348,7 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { case -int32(8): pKeyInfo = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5090, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5154, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) j = 0 for { if !(j < int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)) { @@ -63007,68 +63358,68 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { if pColl != 0 { v2 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } zColl = v2 - if libc.Xstrcmp(tls, zColl, __ccgo_ts+5095) == 0 { - zColl = __ccgo_ts + 5102 + if libc.Xstrcmp(tls, zColl, __ccgo_ts+5159) == 0 { + zColl = __ccgo_ts + 5166 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_DESC) != 0 { - v3 = __ccgo_ts + 5083 + v3 = __ccgo_ts + 5147 } else { - v3 = __ccgo_ts + 1657 + v3 = __ccgo_ts + 1671 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_BIGNULL) != 0 { - v4 = __ccgo_ts + 5104 + v4 = __ccgo_ts + 5168 } else { - v4 = __ccgo_ts + 1657 + v4 = __ccgo_ts + 1671 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5107, libc.VaList(bp+40, v3, v4, zColl)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5171, libc.VaList(bp+40, v3, v4, zColl)) goto _1 _1: ; j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5115, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5179, int32(1)) case -int32(2): pColl1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5131, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5195, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) case -int32(7): pDef = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5140, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5204, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) case -int32(15): pDef1 = (*Tsqlite3_context)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpFunc - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5140, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5204, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) case -int32(13): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1413, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1432, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(3): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5147, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5211, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) case -int32(12): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1380, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1399, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(10): pMem = *(*uintptr)(unsafe.Pointer(pOp + 16)) if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Str) != 0 { zP4 = (*TMem)(unsafe.Pointer(pMem)).Fz } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1413, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1432, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1380, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1399, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Null) != 0 { - zP4 = __ccgo_ts + 1658 + zP4 = __ccgo_ts + 1672 } else { _ = libc.Int32FromInt32(0) - zP4 = __ccgo_ts + 5150 + zP4 = __ccgo_ts + 5214 } } } } case -int32(11): pVtab = (*TVTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5157, libc.VaList(bp+40, pVtab)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5221, libc.VaList(bp+40, pVtab)) case -int32(14): ai = *(*uintptr)(unsafe.Pointer(pOp + 16)) n = *(*Tu32)(unsafe.Pointer(ai)) /* The first element of an INTARRAY is always the @@ -63083,15 +63434,15 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } else { v6 = int32(',') } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5165, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5229, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) goto _5 _5: ; i++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5170, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5234, int32(1)) case -int32(4): - zP4 = __ccgo_ts + 5172 + zP4 = __ccgo_ts + 5236 case -int32(5): zP4 = (*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FzName default: @@ -63107,10 +63458,10 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } var _encnames = [4]uintptr{ - 0: __ccgo_ts + 5117, - 1: __ccgo_ts + 5119, - 2: __ccgo_ts + 5121, - 3: __ccgo_ts + 5126, + 0: __ccgo_ts + 5181, + 1: __ccgo_ts + 5183, + 2: __ccgo_ts + 5185, + 3: __ccgo_ts + 5190, } // C documentation @@ -64102,7 +64453,7 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { retryCount = 0 /* Select a super-journal file name */ nMainFile = _sqlite3Strlen30(tls, zMainFile) - zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5180, libc.VaList(bp+24, 0, zMainFile, 0)) + zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5244, libc.VaList(bp+24, 0, zMainFile, 0)) if zSuper == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -64110,18 +64461,18 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { for cond := true; cond; cond = rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 8)) != 0 { if retryCount != 0 { if retryCount > int32(100) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5192, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5256, libc.VaList(bp+24, zSuper)) _sqlite3OsDelete(tls, pVfs, zSuper, 0) break } else { if retryCount == int32(1) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5206, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5270, libc.VaList(bp+24, zSuper)) } } } retryCount++ Xsqlite3_randomness(tls, int32(4), bp+12) - Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5221, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) + Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5285, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) /* The antipenultimate character of the super-journal name must ** be "9" to avoid name collisions when using 8+3 filenames. */ _ = libc.Int32FromInt32(0) @@ -64358,7 +64709,7 @@ func _sqlite3VdbeCheckFk(tls *libc.TLS, p uintptr, deferred int32) (r int32) { if deferred != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredCons+(*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons > 0 || !(deferred != 0) && (*TVdbe)(unsafe.Pointer(p)).FnFkConstraint > 0 { (*TVdbe)(unsafe.Pointer(p)).Frc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(3)< y { return +libc.Int32FromInt32(1) } - s = float64(i) - if s < r { + if float64(i) < r { v2 = -int32(1) } else { - v2 = libc.BoolInt32(s > r) + v2 = libc.BoolInt32(float64(i) > r) } return v2 } @@ -65704,7 +66054,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89131))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89580))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -65799,7 +66149,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || int32((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89212))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89661))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -65835,7 +66185,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = int32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+uint32(nStr) > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89242))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89691))) return 0 /* Corruption */ } else { if int32((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -65891,7 +66241,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += uint32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89293))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89742))) return 0 /* Corrupt index */ } } @@ -66013,6 +66363,7 @@ func _vdbeRecordCompareString(tls *libc.TLS, nKey1 int32, pKey1 uintptr, pPKey2 _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(bp)) = int32(int8(*(*Tu8)(unsafe.Pointer(aKey1 + 1)))) + goto vrcs_restart vrcs_restart: ; if *(*int32)(unsafe.Pointer(bp)) < int32(12) { @@ -66031,7 +66382,7 @@ vrcs_restart: szHdr = int32(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89456))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89905))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -66184,10 +66535,11 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr return SQLITE_OK /* Jump here if database corruption is detected after m has been ** allocated. Free the m object and return SQLITE_CORRUPT. */ + goto idx_rowid_corruption idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(89614)) + return _sqlite3CorruptError(tls, int32(90063)) } // C documentation @@ -66220,7 +66572,7 @@ func _sqlite3VdbeIdxKeyCompare(tls *libc.TLS, db uintptr, pC uintptr, pUnpacked ** that btreeParseCellPtr() and sqlite3GetVarint32() are implemented */ if nCellKey <= 0 || nCellKey > int64(0x7fffffff) { *(*int32)(unsafe.Pointer(res)) = 0 - return _sqlite3CorruptError(tls, int32(89647)) + return _sqlite3CorruptError(tls, int32(90096)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(nCellKey), bp) @@ -66376,15 +66728,15 @@ func _sqlite3NotPureFunc(tls *libc.TLS, pCtx uintptr) (r int32) { pOp = (*TVdbe)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe)).FaOp + uintptr((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FiOp)*24 if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_PureFunc) { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_IsCheck) != 0 { - zContext = __ccgo_ts + 5264 + zContext = __ccgo_ts + 5328 } else { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_GenCol) != 0 { - zContext = __ccgo_ts + 5283 + zContext = __ccgo_ts + 5347 } else { - zContext = __ccgo_ts + 5302 + zContext = __ccgo_ts + 5366 } } - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5311, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5375, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) return 0 @@ -66563,7 +66915,7 @@ func Xsqlite3_expired(tls *libc.TLS, pStmt uintptr) (r int32) { // */ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { if (*TVdbe)(unsafe.Pointer(p)).Fdb == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5347, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5411, 0) return int32(1) } else { return 0 @@ -66573,7 +66925,7 @@ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { func _vdbeSafetyNotNull(tls *libc.TLS, p uintptr) (r int32) { if p == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5392, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5456, 0) return int32(1) } else { return _vdbeSafety(tls, p) @@ -66635,7 +66987,7 @@ func Xsqlite3_finalize(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt db = (*TVdbe)(unsafe.Pointer(v)).Fdb if _vdbeSafety(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90035)) + return _sqlite3MisuseError(tls, int32(90484)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -67166,7 +67518,7 @@ func Xsqlite3_result_error_code(tls *libc.TLS, pCtx uintptr, errCode int32) { func Xsqlite3_result_error_toobig(tls *libc.TLS, pCtx uintptr) { _ = libc.Int32FromInt32(0) (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = int32(SQLITE_TOOBIG) - _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5432, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) + _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5496, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) } // C documentation @@ -67248,6 +67600,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) db = (*TVdbe)(unsafe.Pointer(p)).Fdb if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_RUN_STATE) { + goto restart_step restart_step: ; if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) == int32(VDBE_READY_STATE) { @@ -67351,6 +67704,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { rc = (*TVdbe)(unsafe.Pointer(p)).Frc } } + goto end_of_step end_of_step: ; /* There are only a limited number of result codes allowed from the @@ -67375,7 +67729,7 @@ func Xsqlite3_step(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt /* the prepared statement */ cnt = 0 /* The database connection */ if _vdbeSafetyNotNull(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90829)) + return _sqlite3MisuseError(tls, int32(91278)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -67509,7 +67863,7 @@ func _valueFromValueList(tls *libc.TLS, pVal uintptr, ppOut uintptr, bNext int32 _, _, _, _, _, _, _ = iOff, pOut, pRhs, rc, sz, zBuf, v1 *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) if pVal == uintptr(0) { - return _sqlite3MisuseError(tls, int32(90950)) + return _sqlite3MisuseError(tls, int32(91399)) } if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -67740,6 +68094,7 @@ func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, (*TAuxData)(unsafe.Pointer(pAuxData)).FpAux = pAux (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = xDelete return + goto failed failed: ; if xDelete != 0 { @@ -67981,18 +68336,18 @@ func Xsqlite3_column_type(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { // ** Column names appropriate for EXPLAIN or EXPLAIN QUERY PLAN. // */ var _azExplainColNames8 = [12]uintptr{ - 0: __ccgo_ts + 5455, - 1: __ccgo_ts + 5460, - 2: __ccgo_ts + 5467, - 3: __ccgo_ts + 5470, - 4: __ccgo_ts + 5473, - 5: __ccgo_ts + 5476, - 6: __ccgo_ts + 5479, - 7: __ccgo_ts + 5482, - 8: __ccgo_ts + 5490, - 9: __ccgo_ts + 5493, - 10: __ccgo_ts + 5500, - 11: __ccgo_ts + 5508, + 0: __ccgo_ts + 5519, + 1: __ccgo_ts + 5524, + 2: __ccgo_ts + 5531, + 3: __ccgo_ts + 5534, + 4: __ccgo_ts + 5537, + 5: __ccgo_ts + 5540, + 6: __ccgo_ts + 5543, + 7: __ccgo_ts + 5546, + 8: __ccgo_ts + 5554, + 9: __ccgo_ts + 5557, + 10: __ccgo_ts + 5564, + 11: __ccgo_ts + 5572, } var _azExplainColNames16data = [60]Tu16{ 0: uint16('a'), @@ -68128,6 +68483,7 @@ func _columnName(tls *libc.TLS, pStmt uintptr, N int32, useUtf16 int32, useType ret = uintptr(0) } } + goto columnName_end columnName_end: ; Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -68237,14 +68593,14 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { var v2 bool _, _, _ = pVar, v1, v2 if _vdbeSafetyNotNull(tls, p) != 0 { - return _sqlite3MisuseError(tls, int32(91554)) + return _sqlite3MisuseError(tls, int32(92003)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(91558))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(92007))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5515, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(91562)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5579, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) + return _sqlite3MisuseError(tls, int32(92011)) } if i >= uint32((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -68818,7 +69174,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp /* Test that this call is being made from within an SQLITE_DELETE or ** SQLITE_UPDATE pre-update callback, and that iIdx is within range. */ if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_INSERT) { - rc = _sqlite3MisuseError(tls, int32(92098)) + rc = _sqlite3MisuseError(tls, int32(92547)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -68865,6 +69221,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } } + goto preupdate_old_out preupdate_old_out: ; _sqlite3Error(tls, db, rc) @@ -68948,7 +69305,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp rc = SQLITE_OK p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(92221)) + rc = _sqlite3MisuseError(tls, int32(92670)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -69016,6 +69373,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } *(*uintptr)(unsafe.Pointer(ppValue)) = pMem + goto preupdate_new_out preupdate_new_out: ; _sqlite3Error(tls, db, rc) @@ -69124,7 +69482,7 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr break } } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5555, int32(3)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5619, int32(3)) _ = libc.Int32FromInt32(0) Xsqlite3_str_append(tls, bp+8, zStart, int32(int64(zRawSql)-int64(zStart))) } @@ -69163,13 +69521,13 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr _ = libc.Int32FromInt32(0) pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(*(*int32)(unsafe.Pointer(bp))-int32(1))*56 if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Null) != 0 { - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1658, int32(4)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1672, int32(4)) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1413, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1432, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5076, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5140, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Str) != 0 { /* Number of bytes of the string text to include in output */ enc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc @@ -69184,29 +69542,29 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr pVar = bp + 40 } nOut = (*TMem)(unsafe.Pointer(pVar)).Fn - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5559, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5623, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) if int32(enc) != int32(SQLITE_UTF8) { _sqlite3VdbeMemRelease(tls, bp+40) } } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Zero) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5566, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5630, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) } else { /* Number of bytes of the blob to include in output */ _ = libc.Int32FromInt32(0) - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5579, int32(2)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5643, int32(2)) nOut1 = (*TMem)(unsafe.Pointer(pVar)).Fn i = 0 for { if !(i < nOut1) { break } - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5582, libc.VaList(bp+104, int32(*(*uint8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5646, libc.VaList(bp+104, int32(*(*uint8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) goto _3 _3: ; i++ } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5587, int32(1)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5651, int32(1)) } } } @@ -69821,7 +70179,7 @@ var _azTypes = [5]uintptr{ 1: __ccgo_ts + 1153, 2: __ccgo_ts + 1158, 3: __ccgo_ts + 1136, - 4: __ccgo_ts + 1658, + 4: __ccgo_ts + 1672, } // C documentation @@ -69835,7 +70193,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { defer tls.Free(976) var aCol, aMem, aOffset, aOp, aPermute, aRoot, apArg, apArg1, db, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pnErr, t1, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v240, v241, v242, v250, v251, v252, v253, v255, v263, v278, v279, v286, v288, v297, v298, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 uintptr var affinity uint8 - var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 + var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, savedAnalysisLimit, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 var colCacheCtr, iAddr, iMap, iPrior, idx, len11, n3, p22, p23, serialType, serial_type, v213, v214, v216, v221, v222 Tu32 var encoding, isWriteLock, mTrace, op, p5, resetSchemaOnFault, vtabOnConflict, v225 Tu8 var flags1, flags11, flags2, flags3, flags31, newType, nullFlag, type1, type2, typeMask, v190 Tu16 @@ -69892,7 +70250,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { var _ /* z at bp+688 */ uintptr var _ /* zErr at bp+632 */ uintptr var _ /* zErr at bp+792 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, savedAnalysisLimit, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 aOp = (*TVdbe)(unsafe.Pointer(p)).FaOp /* Copy of p->aOp */ pOp = aOp /* Current operation */ rc = SQLITE_OK /* Value to return */ @@ -70168,7 +70526,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto _109 case int32(OP_SeekEnd): goto _110 - case int32(OP_IfSmaller): + case int32(OP_IfSizeBetween): goto _111 case int32(OP_Sort): goto _112 @@ -70370,6 +70728,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { */ _2: ; /* jump */ + goto jump_to_p2_and_check_for_interrupt jump_to_p2_and_check_for_interrupt: ; pOp = aOp + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp2-int32(1))*24 @@ -70383,6 +70742,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** way for performance, to avoid having to run the interrupt and progress ** checks on every opcode. This helps sqlite3_step() to run about 1.5% ** faster according to "valgrind --tool=cachegrind" */ + goto check_for_interrupt check_for_interrupt: ; if libc.AtomicLoadNInt32(db+432, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0 { @@ -70463,7 +70823,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: EndCoroutine */ _5: - ; /* jump */ + ; /* jump0 */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -70476,6 +70836,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* Most jump operations do a goto to this spot in order to update ** the pOp pointer. */ + goto jump_to_p2 jump_to_p2: ; _ = libc.Int32FromInt32(0) /* There are never any jumps to instruction 0 */ @@ -70486,7 +70847,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** ** The instruction at the address in register P1 is a Yield. ** Jump to the P2 parameter of that Yield. - ** After the jump, register P1 becomes undefined. + ** After the jump, the value register P1 is left with a value + ** such that subsequent OP_Yields go back to the this same + ** OP_EndCoroutine instruction. ** ** See also: InitCoroutine */ @@ -70498,8 +70861,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pCaller = aOp + uintptr(*(*Ti64)(unsafe.Pointer(pIn1)))*24 _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) + *(*Ti64)(unsafe.Pointer(pIn1)) = int64(int32((int64(pOp)-int64((*TVdbe)(unsafe.Pointer(p)).FaOp))/24) - int32(1)) pOp = aOp + uintptr((*TVdbeOp)(unsafe.Pointer(pCaller)).Fp2-int32(1))*24 - (*TMem)(unsafe.Pointer(pIn1)).Fflags = uint16(MEM_Undefined) goto _187 /* Opcode: Yield P1 P2 * * * ** @@ -70598,15 +70961,15 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) if (*TVdbe)(unsafe.Pointer(p)).Frc != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+5623, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) + _sqlite3VdbeError(tls, p, __ccgo_ts+5687, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) if *(*uintptr)(unsafe.Pointer(pOp + 16)) != 0 { - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5644, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5708, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } } else { - _sqlite3VdbeError(tls, p, __ccgo_ts+3804, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3868, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } pcx = int32((int64(pOp) - int64(aOp)) / 24) - Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5651, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) + Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5715, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) } rc = _sqlite3VdbeHalt(tls, p) _ = libc.Int32FromInt32(0) @@ -70811,18 +71174,14 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } (*TMem)(unsafe.Pointer(pOut)).Fenc = encoding goto _187 - /* Opcode: Variable P1 P2 * P4 * - ** Synopsis: r[P2]=parameter(P1,P4) + /* Opcode: Variable P1 P2 * * * + ** Synopsis: r[P2]=parameter(P1) ** ** Transfer the values of bound parameter P1 into register P2 - ** - ** If the parameter is named, then its name appears in P4. - ** The P4 value is used by sqlite3_bind_parameter_name(). */ _19: ; /* Value being transferred */ _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1-int32(1))*56 if _sqlite3VdbeMemTooBig(tls, pVar) != 0 { goto too_big @@ -71124,6 +71483,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(int32(type1)&int32(type2)&int32(MEM_Int) != 0) { goto _200 } + goto int_math int_math: ; iA = *(*Ti64)(unsafe.Pointer(pIn1)) @@ -71176,6 +71536,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if int32(type1)&int32(type2)&int32(MEM_Int) != 0 { goto int_math } + goto fp_math fp_math: ; rA = _sqlite3VdbeRealValue(tls, pIn1) @@ -71215,6 +71576,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _201: ; goto _187 + goto arithmetic_result_is_null arithmetic_result_is_null: ; _sqlite3VdbeMemSetNull(tls, pOut) @@ -71356,7 +71718,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** raise an SQLITE_MISMATCH exception. */ _38: - ; /* jump, in1 */ + ; /* jump0, in1 */ pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 if int32((*TMem)(unsafe.Pointer(pIn1)).Fflags)&int32(MEM_Int) == 0 { _applyAffinity(tls, pIn1, uint8(SQLITE_AFF_NUMERIC), encoding) @@ -72127,6 +72489,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) pC3 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) p22 = uint32((*TOp)(unsafe.Pointer(pOp)).Fp2) + goto op_column_restart op_column_restart: ; _ = libc.Int32FromInt32(0) @@ -72266,6 +72629,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { zData = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaRow } /* Fill in pC->aType[i] and aOffset[i] values through the p2-th field. */ + goto op_column_read_header op_column_read_header: ; i1 = int32((*TVdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed) @@ -72408,16 +72772,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } } + goto op_column_out op_column_out: ; goto _187 + goto op_column_corrupt op_column_corrupt: ; if (*(*TOp)(unsafe.Pointer(aOp))).Fp3 > 0 { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(95863)) + rc = _sqlite3CorruptError(tls, int32(96311)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -72523,9 +72889,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } _ = libc.Int32FromInt32(0) goto _187 + goto vdbe_type_error vdbe_type_error: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5675, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) + _sqlite3VdbeError(tls, p, __ccgo_ts+5739, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(12)< 0 && p12 == int32(SAVEPOINT_RELEASE) { /* It is not possible to release (commit) a savepoint if there are ** active write statements. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5789, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5853, 0) rc = int32(SQLITE_BUSY) } else { /* Determine whether or not this is a transaction savepoint. If so, @@ -73158,7 +73525,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If this instruction implements a COMMIT and other VMs are writing ** return an error indicating that the other VMs must complete first. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5843, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5907, 0) rc = int32(SQLITE_BUSY) goto abort_due_to_error } else { @@ -73188,12 +73555,12 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto vdbe_return } else { if !(desiredAutoCommit != 0) { - v250 = __ccgo_ts + 5898 + v250 = __ccgo_ts + 5962 } else { if iRollback != 0 { - v251 = __ccgo_ts + 5946 + v251 = __ccgo_ts + 6010 } else { - v251 = __ccgo_ts + 5989 + v251 = __ccgo_ts + 6053 } v250 = v251 } @@ -73295,7 +73662,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** SQL statement was prepared. */ _sqlite3DbFree(tls, db, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg) - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6030) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6094) /* If the schema-cookie from the database file matches the cookie ** stored with the in-memory representation of the schema, do ** not reload the schema from the database file. @@ -73565,6 +73932,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** and report database corruption if they were not, but this check has ** since moved into the btree layer. */ (*TVdbeCursor)(unsafe.Pointer(pCur)).FisTable = libc.BoolUint8(int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) != -int32(8)) + goto open_cursor_set_hints open_cursor_set_hints: ; _ = libc.Int32FromInt32(0) @@ -73652,7 +74020,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fn = 0 - (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1657 + (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1671 } pCx1 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) if pCx1 != 0 && !(int32(TBool(*(*uint8)(unsafe.Pointer(pCx1 + 8))&0x8>>3)) != 0) && (*TOp)(unsafe.Pointer(pOp)).Fp2 <= int32((*TVdbeCursor)(unsafe.Pointer(pCx1)).FnField) { @@ -73768,7 +74136,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** is the only cursor opcode that works with a pseudo-table. ** ** P3 is the number of fields in the records that will be stored by - ** the pseudo-table. + ** the pseudo-table. If P2 is 0 or negative then the pseudo-cursor + ** will return NULL for every column. */ _83: ; @@ -73890,11 +74259,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: Found, NotFound, SeekGt, SeekGe, SeekLt */ _88: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _87: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _86: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _85: ; /* Only interested in == results */ _ = libc.Int32FromInt32(0) @@ -74057,6 +74426,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 112)) = _sqlite3BtreeEof(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48))) } } + goto seek_not_found seek_not_found: ; _ = libc.Int32FromInt32(0) @@ -74171,6 +74541,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(*(*int32)(unsafe.Pointer(bp + 160)) > 0 && int32((*TOp)(unsafe.Pointer(pOp)).Fp5) == 0) { goto _259 } + goto seekscan_search_fail seekscan_search_fail: ; /* Jump to SeekGE.P2, ending the loop */ @@ -74498,6 +74869,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) iKey1 = uint64(*(*Ti64)(unsafe.Pointer(pIn3))) + goto notExistsWithKey notExistsWithKey: ; pC10 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) @@ -74517,7 +74889,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp + 248)) != 0 { _ = libc.Int32FromInt32(0) if (*TOp)(unsafe.Pointer(pOp)).Fp2 == 0 { - rc = _sqlite3CorruptError(tls, int32(98111)) + rc = _sqlite3CorruptError(tls, int32(98565)) } else { goto jump_to_p2 } @@ -75192,14 +75564,20 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } goto _187 - /* Opcode: IfSmaller P1 P2 P3 * * + /* Opcode: IfSizeBetween P1 P2 P3 P4 * + ** + ** Let N be the approximate number of rows in the table or index + ** with cursor P1 and let X be 10*log2(N) if N is positive or -1 + ** if N is zero. ** - ** Estimate the number of rows in the table P1. Jump to P2 if that - ** estimate is less than approximately 2**(0.1*P3). + ** Jump to P2 if X is in between P3 and P4, inclusive. */ _111: ; _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) pC20 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) _ = libc.Int32FromInt32(0) pCrsr5 = *(*uintptr)(unsafe.Pointer(pC20 + 48)) @@ -75208,12 +75586,14 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { goto abort_due_to_error } - if *(*int32)(unsafe.Pointer(bp + 396)) == 0 { + if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { + sz = int64(-int32(1)) /* -Infinity encoding */ + } else { sz = _sqlite3BtreeRowCountEst(tls, pCrsr5) - if sz >= 0 && int32(_sqlite3LogEst(tls, uint64(sz))) < (*TOp)(unsafe.Pointer(pOp)).Fp3 { - *(*int32)(unsafe.Pointer(bp + 396)) = int32(1) - } + _ = libc.Int32FromInt32(0) + sz = int64(_sqlite3LogEst(tls, uint64(sz))) } + *(*int32)(unsafe.Pointer(bp + 396)) = libc.BoolInt32(sz >= int64((*TOp)(unsafe.Pointer(pOp)).Fp3) && sz <= int64((*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { goto jump_to_p2 } @@ -75369,6 +75749,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) rc = _sqlite3BtreeNext(tls, *(*uintptr)(unsafe.Pointer(pC22 + 48)), (*TOp)(unsafe.Pointer(pOp)).Fp3) + goto next_tail next_tail: ; (*TVdbeCursor)(unsafe.Pointer(pC22)).FcacheStatus = uint32(CACHE_STALE) @@ -75519,7 +75900,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } else { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 && !(_sqlite3WritableSchema(tls, db) != 0) { - rc = _sqlite3ReportError(tls, libc.Int32FromInt32(SQLITE_CORRUPT)|libc.Int32FromInt32(3)< int64(0x7fffffff) { - rc = _sqlite3CorruptError(tls, int32(99398)) + rc = _sqlite3CorruptError(tls, int32(99862)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -75865,11 +76246,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } *(*Ti64)(unsafe.Pointer(pOut)) = int64(*(*TPgno)(unsafe.Pointer(bp + 624))) goto _187 - /* Opcode: SqlExec * * * P4 * + /* Opcode: SqlExec P1 P2 * P4 * ** ** Run the SQL statement or statements specified in the P4 string. - ** Disable Auth and Trace callbacks while those statements are running if - ** P1 is true. + ** + ** The P1 parameter is a bitmask of options: + ** + ** 0x0001 Disable Auth and Trace callbacks while the statements + ** in P4 are running. + ** + ** 0x0002 Set db->nAnalysisLimit to P2 while the statements in + ** P4 are running. + ** */ _132: ; @@ -75877,16 +76265,21 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*uintptr)(unsafe.Pointer(bp + 632)) = uintptr(0) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth mTrace = (*Tsqlite3)(unsafe.Pointer(db)).FmTrace - if (*TOp)(unsafe.Pointer(pOp)).Fp1 != 0 { + savedAnalysisLimit = (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0001) != 0 { (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(0) } + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0002) != 0 { + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = (*TOp)(unsafe.Pointer(pOp)).Fp2 + } rc = Xsqlite3_exec(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16)), uintptr(0), uintptr(0), bp+632) (*Tsqlite3)(unsafe.Pointer(db)).FnSqlExec-- (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = mTrace + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = savedAnalysisLimit if *(*uintptr)(unsafe.Pointer(bp + 632)) != 0 || rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3804, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3868, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 632))) if rc == int32(SQLITE_NOMEM) { goto no_mem @@ -75919,13 +76312,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_SchemaChange) libc.SetBitFieldPtr16Uint32(p+200, libc.Uint32FromInt32(0), 0, 0x3) } else { - zSchema = __ccgo_ts + 6075 + zSchema = __ccgo_ts + 6139 (*(*TInitData)(unsafe.Pointer(bp + 640))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 640))).FiDb = iDb3 (*(*TInitData)(unsafe.Pointer(bp + 640))).FpzErrMsg = p + 168 (*(*TInitData)(unsafe.Pointer(bp + 640))).FmInitFlags = uint32(0) (*(*TInitData)(unsafe.Pointer(bp + 640))).FmxPage = _sqlite3BtreeLastPage(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6089, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6153, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -75942,7 +76335,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* The OP_ParseSchema opcode with a non-NULL P4 argument should parse ** at least one SQL statement. Any less than that indicates that ** the sqlite_schema table is corrupt. */ - rc = _sqlite3CorruptError(tls, int32(99678)) + rc = _sqlite3CorruptError(tls, int32(100155)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -76009,11 +76402,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* Opcode: IntegrityCk P1 P2 P3 P4 P5 ** ** Do an analysis of the currently open database. Store in - ** register P1 the text of an error message describing any problems. - ** If no problems are found, store a NULL in register P1. + ** register (P1+1) the text of an error message describing any problems. + ** If no problems are found, store a NULL in register (P1+1). ** - ** The register P3 contains one less than the maximum number of allowed errors. - ** At most reg(P3) errors will be reported. + ** The register (P1) contains one less than the maximum number of allowed + ** errors. At most reg(P1) errors will be reported. ** In other words, the analysis stops as soon as reg(P1) errors are ** seen. Reg(P1) is updated with the number of errors remaining. ** @@ -76028,18 +76421,20 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _138: ; /* Register keeping track of errors remaining */ _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) nRoot = (*TOp)(unsafe.Pointer(pOp)).Fp2 aRoot = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 _ = libc.Int32FromInt32(0) + pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 _ = libc.Int32FromInt32(0) - pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 _ = libc.Int32FromInt32(0) + pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1+int32(1))*56 _ = libc.Int32FromInt32(0) - rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) + _ = libc.Int32FromInt32(0) + rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, aMem+uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) _sqlite3VdbeMemSetNull(tls, pIn1) if *(*int32)(unsafe.Pointer(bp + 680)) == 0 { _ = libc.Int32FromInt32(0) @@ -76153,7 +76548,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** P1 contains the address of the memory cell that contains the first memory ** cell in an array of values used as arguments to the sub-program. P2 ** contains the address to jump to if the sub-program throws an IGNORE - ** exception using the RAISE() function. Register P3 contains the address + ** exception using the RAISE() function. P2 might be zero, if there is + ** no possibility that an IGNORE exception will be raised. + ** Register P3 contains the address ** of a memory cell in this (the parent) VM that is used to allocate the ** memory required by the sub-vdbe at runtime. ** @@ -76195,7 +76592,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } if (*TVdbe)(unsafe.Pointer(p)).FnFrame >= *(*int32)(unsafe.Pointer(db + 136 + 10*4)) { rc = int32(SQLITE_ERROR) - _sqlite3VdbeError(tls, p, __ccgo_ts+6132, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6196, 0) goto abort_due_to_error } /* Register pRt is used to store the memory required to save the state @@ -76579,7 +76976,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* IMP: R-24505-23230 */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3804, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3868, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError } if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FskipFlag != 0 { @@ -76641,7 +77038,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3VdbeMemFinalize(tls, pMem3, *(*uintptr)(unsafe.Pointer(pOp + 16))) } if rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3804, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3868, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) goto abort_due_to_error } _sqlite3VdbeChangeEncoding(tls, pMem3, int32(encoding)) @@ -76726,11 +77123,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeRead > int32(1) { rc = int32(SQLITE_ERROR) if eNew == int32(PAGER_JOURNALMODE_WAL) { - v286 = __ccgo_ts + 6169 + v286 = __ccgo_ts + 6233 } else { - v286 = __ccgo_ts + 6174 + v286 = __ccgo_ts + 6238 } - _sqlite3VdbeError(tls, p, __ccgo_ts+6181, libc.VaList(bp+944, v286)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6245, libc.VaList(bp+944, v286)) goto abort_due_to_error } else { if eOld == int32(PAGER_JOURNALMODE_WAL) { @@ -76898,7 +77295,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { if rc&int32(0xFF) == int32(SQLITE_LOCKED) { z1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - _sqlite3VdbeError(tls, p, __ccgo_ts+6233, libc.VaList(bp+944, z1)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6297, libc.VaList(bp+944, z1)) } goto abort_due_to_error } @@ -77076,7 +77473,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TValueList)(unsafe.Pointer(pRhs)).FpOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 pOut = _out2Prerelease(tls, p, pOp) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6262, __ccgo_fp(_sqlite3VdbeValueListFree)) + _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6326, __ccgo_fp(_sqlite3VdbeValueListFree)) goto _187 /* Opcode: VFilter P1 P2 P3 P4 * ** Synopsis: iplan=r[P3] zplan='P4' @@ -77181,7 +77578,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_module)(unsafe.Pointer(pModule4)).FxColumn})))(tls, *(*uintptr)(unsafe.Pointer(pCur5 + 48)), bp+800, (*TOp)(unsafe.Pointer(pOp)).Fp2) _sqlite3VtabImportErrmsg(tls, p, pVtab4) if (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3804, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3868, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) rc = (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError } _sqlite3VdbeChangeEncoding(tls, pDest2, int32(encoding)) @@ -77450,7 +77847,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If the function returned an error, throw an exception */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3804, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3868, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError } _sqlite3VdbeDeleteAuxData(tls, db, p+296, (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FiOp, (*TOp)(unsafe.Pointer(pOp)).Fp1) @@ -77612,7 +78009,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { Xsqlite3_free(tls, z2) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeExec > int32(1) { - z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6272, libc.VaList(bp+944, zTrace)) + z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6336, libc.VaList(bp+944, zTrace)) (*(*func(*libc.TLS, Tu32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*Tsqlite3)(unsafe.Pointer(db)).Ftrace))})))(tls, uint32(SQLITE_TRACE_STMT), (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg, p, z3) _sqlite3DbFree(tls, db, z3) } else { @@ -77679,22 +78076,23 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If we reach this point, it means that execution is finished with ** an error of some kind. */ + goto abort_due_to_error abort_due_to_error: ; if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)<= nProgressLimit && (*Tsqlite3)(unsafe.Pointer(db)).FxProgress != uintptr(0) { @@ -77730,22 +78129,25 @@ vdbe_return: /* Jump to here if a string or blob larger than SQLITE_MAX_LENGTH ** is encountered. */ + goto too_big too_big: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5432, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5496, 0) rc = int32(SQLITE_TOOBIG) goto abort_due_to_error /* Jump to here if a malloc() fails. */ + goto no_mem no_mem: ; _sqlite3OomFault(tls, db) - _sqlite3VdbeError(tls, p, __ccgo_ts+1627, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+1641, 0) rc = int32(SQLITE_NOMEM) goto abort_due_to_error /* Jump to here if the sqlite3_interrupt() API sets the interrupt ** flag. */ + goto abort_due_to_interrupt abort_due_to_interrupt: ; _ = libc.Int32FromInt32(0) @@ -77755,10 +78157,10 @@ abort_due_to_interrupt: } var _azType = [4]uintptr{ - 0: __ccgo_ts + 5589, - 1: __ccgo_ts + 5598, - 2: __ccgo_ts + 5605, - 3: __ccgo_ts + 5611, + 0: __ccgo_ts + 5653, + 1: __ccgo_ts + 5662, + 2: __ccgo_ts + 5669, + 3: __ccgo_ts + 5675, } var _and_logic = [9]uint8{ @@ -77912,16 +78314,16 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr type1 = v1 if type1 < uint32(12) { if type1 == uint32(0) { - v2 = __ccgo_ts + 1643 + v2 = __ccgo_ts + 1657 } else { if type1 == uint32(7) { - v3 = __ccgo_ts + 6310 + v3 = __ccgo_ts + 6374 } else { - v3 = __ccgo_ts + 6315 + v3 = __ccgo_ts + 6379 } v2 = v3 } - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6323, libc.VaList(bp+8, v2)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6387, libc.VaList(bp+8, v2)) rc = int32(SQLITE_ERROR) Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) @@ -77939,10 +78341,10 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr rc = Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) if rc == SQLITE_OK { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6352, libc.VaList(bp+8, iRow)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6416, libc.VaList(bp+8, iRow)) rc = int32(SQLITE_ERROR) } else { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) } } } @@ -77984,15 +78386,15 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, pTab = _sqlite3LocateTable(tls, bp+8, uint32(0), zTable, zDb) if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6372, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6436, libc.VaList(bp+440, zTable)) } if pTab != 0 && !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6402, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6466, libc.VaList(bp+440, zTable)) } if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6438, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6502, libc.VaList(bp+440, zTable)) } if !(pTab != 0) { if (*(*TParse)(unsafe.Pointer(bp + 8))).FzErrMsg != 0 { @@ -78022,7 +78424,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6459, libc.VaList(bp+440, zColumn)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6523, libc.VaList(bp+440, zColumn)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -78049,7 +78451,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, break } if (*(*TsColMap)(unsafe.Pointer(pFKey + 64 + uintptr(j)*16))).FiFrom == iCol { - zFault = __ccgo_ts + 6480 + zFault = __ccgo_ts + 6544 } goto _3 _3: @@ -78074,7 +78476,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } /* FIXME: Be smarter about indexes that use expressions */ if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == iCol || int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == -int32(2) { - zFault = __ccgo_ts + 6492 + zFault = __ccgo_ts + 6556 } goto _5 _5: @@ -78088,7 +78490,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if zFault != 0 { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6500, libc.VaList(bp+440, zFault)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6564, libc.VaList(bp+440, zFault)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -78151,6 +78553,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } _sqlite3ParseObjectReset(tls, bp+8) } + goto blob_open_out blob_open_out: ; if rc == SQLITE_OK && int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { @@ -78162,7 +78565,7 @@ blob_open_out: _sqlite3DbFree(tls, db, pBlob) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v7 = __ccgo_ts + 3804 + v7 = __ccgo_ts + 3868 } else { v7 = libc.UintptrFromInt32(0) } @@ -78252,7 +78655,7 @@ func _blobReadWrite(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset in _, _, _, _, _ = db, iKey, p, rc, v p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102190)) + return _sqlite3MisuseError(tls, int32(102671)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -78354,7 +78757,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r _, _, _, _ = db, p, rc, v1 p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102290)) + return _sqlite3MisuseError(tls, int32(102771)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -78368,7 +78771,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r rc = _blobSeekToRow(tls, p, iRow, bp) if rc != SQLITE_OK { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v1 = __ccgo_ts + 3804 + v1 = __ccgo_ts + 3868 } else { v1 = libc.UintptrFromInt32(0) } @@ -82585,25 +82988,25 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema _ = zLegacy _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6534, int32(7)) != 0 { + if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6598, int32(7)) != 0 { return 0 } zLegacy = (*TTable)(unsafe.Pointer(pTab)).FzName - if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6542+7) == 0 { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6561+7) == 0 { + if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6606+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6625+7) == 0 { return int32(1) } if pSchema == uintptr(0) { return 0 } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6075+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6139+7) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6580+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6644+7) == 0 { return int32(1) } } else { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6580+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6644+7) == 0 { return int32(1) } } @@ -82639,28 +83042,29 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema // ** If the name cannot be resolved unambiguously, leave an error message // ** in pParse and return WRC_Abort. Return WRC_Prune on success. // */ -func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol uintptr, pNC uintptr, pExpr uintptr) (r int32) { +func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRight uintptr, pNC uintptr, pExpr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var cnt, cntTab, eNewExprOp, hit, i, iCol, j, nSubquery, op, v5 int32 - var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10 uintptr + var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10 uintptr var hCol, hCol1 Tu8 var v7, v8 uint32 var _ /* bRowid at bp+8 */ int32 var _ /* pFJMatch at bp+0 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10, v5, v7, v8 /* Loop counters */ - cnt = 0 /* Number of matching column names */ - cntTab = 0 /* Number of potential "rowid" matches */ - nSubquery = 0 /* How many levels of subquery */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ - pMatch = uintptr(0) /* The matching pSrcList item */ - pTopNC = pNC /* First namecontext in the list */ - pSchema = uintptr(0) /* Schema of the expression */ - eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ - pTab = uintptr(0) /* A column of pTab */ - *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ - _ = libc.Int32FromInt32(0) /* the name context cannot be NULL. */ - _ = libc.Int32FromInt32(0) /* The Z in X.Y.Z cannot be NULL */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10, v5, v7, v8 /* Loop counters */ + cnt = 0 /* Number of matching column names */ + cntTab = 0 /* Number of potential "rowid" matches */ + nSubquery = 0 /* How many levels of subquery */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ + pMatch = uintptr(0) /* The matching pSrcList item */ + pTopNC = pNC /* First namecontext in the list */ + pSchema = uintptr(0) /* Schema of the expression */ + eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ + pTab = uintptr(0) /* A column of pTab */ + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + zCol = *(*uintptr)(unsafe.Pointer(pRight + 8)) + _ = libc.Int32FromInt32(0) /* the name context cannot be NULL. */ + _ = libc.Int32FromInt32(0) /* The Z in X.Y.Z cannot be NULL */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) /* Initialize the node to no-match */ @@ -82692,7 +83096,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ; i++ } - if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6594, zDb) == 0 { + if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6658, zDb) == 0 { /* This branch is taken when the main database has been renamed ** using SQLITE_DBCONFIG_MAINDBNAME. */ pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema @@ -82794,7 +83198,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TTable)(unsafe.Pointer(pTab)).FpSchema != pSchema { goto _2 } - if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6599) != 0 { + if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6663) != 0 { goto _2 } } @@ -82909,16 +83313,16 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol op = int32((*TParse)(unsafe.Pointer(pParse)).FeTriggerOp) _ = libc.Int32FromInt32(0) if (*TParse)(unsafe.Pointer(pParse)).FbReturning != 0 { - if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0) { + if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0 || _isValidSchemaTableName(tls, zTab, (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab, uintptr(0)) != 0) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = libc.BoolInt32(op != int32(TK_DELETE)) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } } else { - if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6601, zTab) == 0 { + if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6665, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(1) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } else { - if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6605, zTab) == 0 { + if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6669, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = 0 pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } @@ -82927,7 +83331,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UUpsert) != 0 && zTab != uintptr(0) { pUpsert = *(*uintptr)(unsafe.Pointer(pNC + 16)) - if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6609, zTab) == 0 { + if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6673, zTab) == 0 { pTab = (*(*TSrcItem)(unsafe.Pointer((*TUpsert)(unsafe.Pointer(pUpsert)).FpUpsertSrc + 8))).FpTab (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(EXCLUDED_TABLE_NUMBER) } @@ -83049,15 +83453,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol _ = libc.Int32FromInt32(0) pOrig = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(j)*32))).FpExpr if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 && (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6618, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6682, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Win)) != uint32(0) && ((*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 || pNC != pTopNC) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6649, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6713, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if _sqlite3ExprVectorSize(tls, pOrig) != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6686, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6750, 0) return int32(WRC_Abort) } _resolveAlias(tls, pParse, pEList, j, pExpr, nSubquery) @@ -83111,7 +83515,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** a huge amount of legacy SQL that uses it. So for now, we just ** issue a warning. */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6704, libc.VaList(bp+24, zCol)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6768, libc.VaList(bp+24, zCol)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_STRING) libc.Xmemset(tls, pExpr+64, 0, uint64(8)) return int32(WRC_Prune) @@ -83142,7 +83546,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } _extendFJMatch(tls, pParse, bp, pMatch, (*TExpr)(unsafe.Pointer(pExpr)).FiColumn) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_FUNCTION) - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6739 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6803 *(*uintptr)(unsafe.Pointer(pExpr + 32)) = *(*uintptr)(unsafe.Pointer(bp)) cnt = int32(1) goto lookupname_end @@ -83152,18 +83556,22 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } } if cnt == 0 { - v10 = __ccgo_ts + 6748 + v10 = __ccgo_ts + 6812 } else { - v10 = __ccgo_ts + 6763 + v10 = __ccgo_ts + 6827 } zErr = v10 if zDb != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6785, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6849, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) } else { if zTab != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6798, libc.VaList(bp+24, zErr, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6862, libc.VaList(bp+24, zErr, zTab, zCol)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6808, libc.VaList(bp+24, zErr, zCol)) + if cnt == 0 && (*TExpr)(unsafe.Pointer(pRight)).Fflags&uint32(libc.Int32FromInt32(EP_DblQuoted)) != uint32(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6872, libc.VaList(bp+24, zErr, zCol)) + } else { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6933, libc.VaList(bp+24, zErr, zCol)) + } } } _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -83194,10 +83602,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** If a generated column is referenced, set bits for every column ** of the table. */ - if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 && cnt == int32(1) && pMatch != uintptr(0) { - *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + if pMatch != 0 { + if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { + *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + } else { + libc.SetBitFieldPtr16Uint32(pMatch+60+4, libc.Uint32FromInt32(1), 14, 0x4000) + } } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(eNewExprOp) + goto lookupname_end lookupname_end: ; if cnt == int32(1) { @@ -83290,19 +83703,19 @@ func _notValidImpl(tls *libc.TLS, pParse uintptr, pNC uintptr, zMsg uintptr, pEx defer tls.Free(32) var zIn uintptr _ = zIn - zIn = __ccgo_ts + 6815 + zIn = __ccgo_ts + 6940 if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IdxExpr) != 0 { - zIn = __ccgo_ts + 6843 + zIn = __ccgo_ts + 6968 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IsCheck) != 0 { - zIn = __ccgo_ts + 6861 + zIn = __ccgo_ts + 6986 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_GenCol) != 0 { - zIn = __ccgo_ts + 6879 + zIn = __ccgo_ts + 7004 } } } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6897, libc.VaList(bp+8, zMsg, zIn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7022, libc.VaList(bp+8, zMsg, zIn)) if pExpr != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } @@ -83352,8 +83765,8 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { var anRef [8]int32 var auth, i, is_agg, n, nLeft, nRef, nRight, no_such_func, rc, savedAllowFlags, wrong_num_args, v12, v4, v6, v7 int32 var enc Tu8 - var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zColumn, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zColumn, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 + var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 pNC = *(*uintptr)(unsafe.Pointer(pWalker + 40)) _ = libc.Int32FromInt32(0) pParse = (*TNameContext)(unsafe.Pointer(pNC)).FpParse @@ -83478,12 +83891,12 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { zDb = uintptr(0) zTable = uintptr(0) _ = libc.Int32FromInt32(0) - zColumn = *(*uintptr)(unsafe.Pointer(pExpr + 8)) + pRight = pExpr } else { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+6917, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7042, uintptr(0), pExpr) } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_ID) { @@ -83497,14 +83910,13 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { } _ = libc.Int32FromInt32(0) zTable = *(*uintptr)(unsafe.Pointer(pLeft + 8)) - zColumn = *(*uintptr)(unsafe.Pointer(pRight + 8)) _ = libc.Int32FromInt32(0) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameTokenRemap(tls, pParse, pExpr, pRight) _sqlite3RenameTokenRemap(tls, pParse, pExpr+64, pLeft) } } - return _lookupName(tls, pParse, zDb, zTable, zColumn, pNC, pExpr) + return _lookupName(tls, pParse, zDb, zTable, pRight, pNC, pExpr) /* Resolve function names */ fallthrough @@ -83545,7 +83957,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if n == int32(2) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = _exprProbability(tls, (*(*TExprList_item)(unsafe.Pointer(pList + 8 + 1*32))).FpExpr) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6934, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7059, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } } else { @@ -83569,7 +83981,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { auth = _sqlite3AuthCheck(tls, pParse, int32(SQLITE_FUNCTION), uintptr(0), (*TFuncDef)(unsafe.Pointer(pDef)).FzName, uintptr(0)) if auth != SQLITE_OK { if auth == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6998, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7123, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) @@ -83591,7 +84003,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { ** all this. */ _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7034, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7159, uintptr(0), pExpr) } } else { _ = libc.Int32FromInt32(0) /* Must fit in 8 bits */ @@ -83616,29 +84028,29 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if 0 == libc.BoolInt32(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME)) { _ = libc.Int32FromInt32(0) if pDef != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FxValue == uintptr(0) && pWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7062, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7187, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 || is_agg != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 && !(pWin != 0) || is_agg != 0 && pWin != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 { if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 || pWin != 0 { - zType = __ccgo_ts + 7105 + zType = __ccgo_ts + 7230 } else { - zType = __ccgo_ts + 7112 + zType = __ccgo_ts + 7237 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7122, libc.VaList(bp+8, zType, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7247, libc.VaList(bp+8, zType, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ is_agg = 0 } else { if no_such_func != 0 && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7150, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7275, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if wrong_num_args != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7172, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7297, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7216, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7341, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { @@ -83662,7 +84074,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { *(*int32)(unsafe.Pointer(pNC + 40)) &= ^(libc.Int32FromInt32(NC_AllowWin) | v7) } } else { - if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { is_agg = int32(1) } } @@ -83728,21 +84140,23 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { case int32(TK_IN): if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) { nRef = (*TNameContext)(unsafe.Pointer(pNC)).FnRef + _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_SelfRef) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7264, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7389, pExpr, pExpr) } else { _sqlite3WalkSelect(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 32))) } _ = libc.Int32FromInt32(0) if nRef != (*TNameContext)(unsafe.Pointer(pNC)).FnRef { *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 4)) |= uint32(SF_Correlated) } *(*int32)(unsafe.Pointer(pNC + 40)) |= int32(NC_Subquery) } case int32(TK_VARIABLE): _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IsCheck)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7275, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7400, pExpr, pExpr) } case int32(TK_IS): fallthrough @@ -83792,7 +84206,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { nRight = _sqlite3ExprVectorSize(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight) } if nLeft != nRight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6686, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6750, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } break @@ -83920,7 +84334,7 @@ func _resolveOrderByTermToExprList(tls *libc.TLS, pParse uintptr, pSelect uintpt func _resolveOutOfRangeError(tls *libc.TLS, pParse uintptr, zType uintptr, i int32, mx int32, pError uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7286, libc.VaList(bp+8, i, zType, mx)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7411, libc.VaList(bp+8, i, zType, mx)) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pError) } @@ -83955,7 +84369,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7342, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7467, 0) return int32(1) } i = 0 @@ -83994,7 +84408,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } if _sqlite3ExprIsInteger(tls, pE, bp) != 0 { if *(*int32)(unsafe.Pointer(bp)) <= 0 || *(*int32)(unsafe.Pointer(bp)) > (*TExprList)(unsafe.Pointer(pEList)).FnExpr { - _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7376, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) + _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7501, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) return int32(1) } } else { @@ -84067,7 +84481,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r break } if int32(uint32(*(*uint16)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32 + 16 + 4))&0x4>>2)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7382, libc.VaList(bp+16, i+int32(1))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7507, libc.VaList(bp+16, i+int32(1))) return int32(1) } goto _3 @@ -84101,7 +84515,7 @@ func _sqlite3ResolveOrderGroupBy(tls *libc.TLS, pParse uintptr, pSelect uintptr, return 0 } if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7443, libc.VaList(bp+8, zType)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7568, libc.VaList(bp+8, zType)) return int32(1) } pEList = (*TSelect)(unsafe.Pointer(pSelect)).FpEList @@ -84353,6 +84767,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } pItem = (*TSelect)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*104 + _ = libc.Int32FromInt32(0) /* Test of tag-20240424-1*/ if (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FselFlags&uint32(SF_Resolved) == uint32(0) { if pOuterNC != 0 { v3 = (*TNameContext)(unsafe.Pointer(pOuterNC)).FnRef @@ -84425,7 +84840,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { (*(*TNameContext)(unsafe.Pointer(bp))).FncFlags |= int32(NC_UEList) if (*TSelect)(unsafe.Pointer(p)).FpHaving != 0 { if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Aggregate) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7474, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7599, 0) return int32(WRC_Abort) } if _sqlite3ResolveExprNames(tls, bp, (*TSelect)(unsafe.Pointer(p)).FpHaving) != 0 { @@ -84492,7 +84907,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** is not detected until much later, and so we need to go ahead and ** resolve those symbols on the incorrect ORDER BY for consistency. */ - if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7376) != 0 { + if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7501) != 0 { return int32(WRC_Abort) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -84503,7 +84918,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** the GROUP BY clause does not contain aggregate functions. */ if pGroupBy != 0 { - if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7513) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { + if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7638) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(WRC_Abort) } i = 0 @@ -84513,7 +84928,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } if (*TExpr)(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(pItem2)).FpExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7519, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7644, 0) return int32(WRC_Abort) } goto _6 @@ -85544,7 +85959,7 @@ func _codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32 return } if nLeft != _sqlite3ExprVectorSize(tls, pRight) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6686, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6750, 0) return } _ = libc.Int32FromInt32(0) @@ -85629,7 +86044,7 @@ func _sqlite3ExprCheckHeight(tls *libc.TLS, pParse uintptr, nHeight int32) (r in rc = SQLITE_OK mxHeight = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 3*4)) if nHeight > mxHeight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7578, libc.VaList(bp+8, mxHeight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7703, libc.VaList(bp+8, mxHeight)) rc = int32(SQLITE_ERROR) } return rc @@ -85795,11 +86210,12 @@ func _sqlite3ExprSetErrorOffset(tls *libc.TLS, pExpr uintptr, iOfst int32) { // ** appear to be quoted. If the quotes were of the form "..." (double-quotes) // ** then the EP_DblQuoted flag is set on the expression node. // ** -// ** Special case: If op==TK_INTEGER and pToken points to a string that -// ** can be translated into a 32-bit integer, then the token is not -// ** stored in u.zToken. Instead, the integer values is written -// ** into u.iValue and the EP_IntValue flag is set. No extra storage +// ** Special case (tag-20240227-a): If op==TK_INTEGER and pToken points to +// ** a string that can be translated into a 32-bit integer, then the token is +// ** not stored in u.zToken. Instead, the integer values is written +// ** into u.iValue and the EP_IntValue flag is set. No extra storage // ** is allocated to hold the integer text and the dequote flag is ignored. +// ** See also tag-20240227-b. // */ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequote int32) (r uintptr) { bp := tls.Alloc(16) @@ -85813,7 +86229,7 @@ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequ _ = libc.Int32FromInt32(0) if pToken != 0 { if op != int32(TK_INTEGER) || (*TToken)(unsafe.Pointer(pToken)).Fz == uintptr(0) || _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pToken)).Fz, bp) == 0 { - nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) + nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) /* tag-20240227-a */ _ = libc.Int32FromInt32(0) } } @@ -85982,11 +86398,11 @@ func _sqlite3ExprListToValues(tls *libc.TLS, pParse uintptr, nElem int32, pEList } if nExprElem != nElem { if nExprElem > int32(1) { - v2 = __ccgo_ts + 7626 + v2 = __ccgo_ts + 7751 } else { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7628, libc.VaList(bp+8, nExprElem, v2, nElem)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7753, libc.VaList(bp+8, nExprElem, v2, nElem)) break } _ = libc.Int32FromInt32(0) @@ -86036,7 +86452,7 @@ func _sqlite3ExprAnd(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintpt if f&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_InnerON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { _sqlite3ExprDeferredDelete(tls, pParse, pLeft) _sqlite3ExprDeferredDelete(tls, pParse, pRight) - return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1731) + return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1791) } else { return _sqlite3PExpr(tls, pParse, int32(TK_AND), pLeft, pRight) } @@ -86066,7 +86482,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pNew + 52)) = int32(int64((*TToken)(unsafe.Pointer(pToken)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) if pList != 0 && (*TExprList)(unsafe.Pointer(pList)).FnExpr > *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 6*4)) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7672, libc.VaList(bp+8, pToken)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7797, libc.VaList(bp+8, pToken)) } *(*uintptr)(unsafe.Pointer(pNew + 32)) = pList *(*Tu32)(unsafe.Pointer(pNew + 4)) |= uint32(libc.Int32FromInt32(EP_HasFunc)) @@ -86087,7 +86503,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u func _sqlite3ExprOrderByAggregateError(tls *libc.TLS, pParse uintptr, p uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7706, libc.VaList(bp+8, p)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7831, libc.VaList(bp+8, p)) } // C documentation @@ -86166,7 +86582,7 @@ func _sqlite3ExprFunctionUsable(tls *libc.TLS, pParse uintptr, pExpr uintptr, pD ** SQLITE_DBCONFIG_TRUSTED_SCHEMA is off (meaning ** that the schema is possibly tainted). */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7756, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7881, libc.VaList(bp+8, pExpr)) } } } @@ -86223,7 +86639,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n bOk = libc.BoolInt32(0 == _sqlite3Atoi64(tls, z+1, bp, int32(n-uint32(1)), uint8(SQLITE_UTF8))) } if bOk == 0 || *(*Ti64)(unsafe.Pointer(bp)) < int64(1) || *(*Ti64)(unsafe.Pointer(bp)) > int64(*(*int32)(unsafe.Pointer(db + 136 + 9*4))) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7776, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7901, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) return } @@ -86256,7 +86672,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n } (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = x if int32(x) > *(*int32)(unsafe.Pointer(db + 136 + 9*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7819, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7944, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } } @@ -86267,8 +86683,13 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n // ** Recursively delete an expression tree. // */ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { + var pLeft uintptr + _ = pLeft _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) + goto exprDeleteRestart +exprDeleteRestart: + ; _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -86276,9 +86697,6 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)|libc.Int32FromInt32(EP_Leaf)) != libc.Uint32FromInt32(0)) { /* The Expr.x union is never used at the same time as Expr.pRight */ _ = libc.Int32FromInt32(0) - if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { - _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpLeft) - } if (*TExpr)(unsafe.Pointer(p)).FpRight != 0 { _ = libc.Int32FromInt32(0) _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpRight) @@ -86293,6 +86711,17 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { } } } + if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { + pLeft = (*TExpr)(unsafe.Pointer(p)).FpLeft + if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) && !((*TExpr)(unsafe.Pointer(pLeft)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { + /* Avoid unnecessary recursion on unary operators */ + _sqlite3DbNNFreeNN(tls, db, p) + p = pLeft + goto exprDeleteRestart + } else { + _sqlite3ExprDeleteNN(tls, db, pLeft) + } + } } if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { _sqlite3DbNNFreeNN(tls, db, p) @@ -86339,11 +86768,11 @@ func _sqlite3ClearOnOrUsing(tls *libc.TLS, db uintptr, p uintptr) { // ** // ** The pExpr might be deleted immediately on an OOM error. // ** -// ** The deferred delete is (currently) implemented by adding the -// ** pExpr to the pParse->pConstExpr list with a register number of 0. +// ** Return 0 if the delete was successfully deferred. Return non-zero +// ** if the delete happened immediately because of an OOM. // */ -func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) { - _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr) +func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + return libc.BoolInt32(uintptr(0) == _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr)) } // C documentation @@ -86862,16 +87291,20 @@ func _sqlite3SrcListDup(tls *libc.TLS, db uintptr, p uintptr, flags int32) (r ui (*TSrcItem)(unsafe.Pointer(pNewItem)).FiCursor = (*TSrcItem)(unsafe.Pointer(pOldItem)).FiCursor (*TSrcItem)(unsafe.Pointer(pNewItem)).FaddrFillSub = (*TSrcItem)(unsafe.Pointer(pOldItem)).FaddrFillSub (*TSrcItem)(unsafe.Pointer(pNewItem)).FregReturn = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregReturn + (*TSrcItem)(unsafe.Pointer(pNewItem)).FregResult = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregResult if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x2>>1)) != 0 { *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3DbStrDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88))) + } else { + if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { + *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) + } else { + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pNewItem)).Fu1)) = *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pOldItem)).Fu1)) + } } (*TSrcItem)(unsafe.Pointer(pNewItem)).Fu2 = (*TSrcItem)(unsafe.Pointer(pOldItem)).Fu2 if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x100>>8)) != 0 { (*TCteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNewItem + 96)))).FnUse++ } - if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { - *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) - } v4 = (*TSrcItem)(unsafe.Pointer(pOldItem)).FpTab (*TSrcItem)(unsafe.Pointer(pNewItem)).FpTab = v4 pTab = v4 @@ -87137,7 +87570,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, n = v2 } if v3 && (*TIdList)(unsafe.Pointer(pColumns)).FnId != v2 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7842, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7967, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) goto vector_append_error } i = 0 @@ -87173,6 +87606,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, ** the RHS and LHS sizes match during code generation. */ (*TExpr)(unsafe.Pointer(pFirst)).FiTable = (*TIdList)(unsafe.Pointer(pColumns)).FnId } + goto vector_append_error vector_append_error: ; _sqlite3ExprUnmapAndDelete(tls, pParse, pExpr) @@ -87281,7 +87715,7 @@ func _sqlite3ExprListCheckLength(tls *libc.TLS, pParse uintptr, pEList uintptr, _ = mx mx = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 2*4)) if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr > mx { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7872, libc.VaList(bp+8, zObject)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7997, libc.VaList(bp+8, zObject)) } } @@ -87383,10 +87817,10 @@ func _sqlite3SelectWalkFail(tls *libc.TLS, pWalker uintptr, NotUsed uintptr) (r // ** anything else 0 // */ func _sqlite3IsTrueOrFalse(tls *libc.TLS, zIn uintptr) (r Tu32) { - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7895) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8020) == 0 { return uint32(EP_IsTrue) } - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7900) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8025) == 0 { return uint32(EP_IsFalse) } return uint32(0) @@ -87473,6 +87907,52 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { return pExpr } +// C documentation +// +// /* +// ** pExpr is a TK_FUNCTION node. Try to determine whether or not the +// ** function is a constant function. A function is constant if all of +// ** the following are true: +// ** +// ** (1) It is a scalar function (not an aggregate or window function) +// ** (2) It has either the SQLITE_FUNC_CONSTANT or SQLITE_FUNC_SLOCHNG +// ** property. +// ** (3) All of its arguments are constants +// ** +// ** This routine sets pWalker->eCode to 0 if pExpr is not a constant. +// ** It makes no changes to pWalker->eCode if pExpr is constant. In +// ** every case, it returns WRC_Abort. +// ** +// ** Called as a service subroutine from exprNodeIsConstant(). +// */ +func _exprNodeIsConstantFunction(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef, pList, v1 uintptr + var n int32 + var v2 bool + _, _, _, _, _, _ = db, n, pDef, pList, v1, v2 /* The database */ + _ = libc.Int32FromInt32(0) + if v2 = (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)) != uint32(0); !v2 { + v1 = *(*uintptr)(unsafe.Pointer(pExpr + 32)) + pList = v1 + } + if v2 || v1 == uintptr(0) { + n = 0 + } else { + n = (*TExprList)(unsafe.Pointer(pList)).FnExpr + _sqlite3WalkExprList(tls, pWalker, pList) + if int32((*TWalker)(unsafe.Pointer(pWalker)).FeCode) == 0 { + return int32(WRC_Abort) + } + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)|libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG)) == uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) +} + // C documentation // // /* @@ -87502,6 +87982,7 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { // ** malformed schema error. // */ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + _ = libc.Int32FromInt32(0) /* If pWalker->eCode is 2 then any term of the expression that comes from ** the ON or USING clauses of an outer join disqualifies the expression ** from being considered constant. */ @@ -87520,8 +88001,12 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 } return WRC_Continue } else { - (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) - return int32(WRC_Abort) + if (*TWalker)(unsafe.Pointer(pWalker)).FpParse != 0 { + return _exprNodeIsConstantFunction(tls, pWalker, pExpr) + } else { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } } fallthrough case int32(TK_ID): @@ -87548,6 +88033,8 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 case int32(TK_REGISTER): fallthrough case int32(TK_DOT): + fallthrough + case int32(TK_RAISE): (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) return int32(WRC_Abort) case int32(TK_VARIABLE): @@ -87573,14 +88060,14 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 return r } -func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32) { +func _exprIsConst(tls *libc.TLS, pParse uintptr, p uintptr, initFlag int32) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* w at bp+0 */ TWalker (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(initFlag) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) - *(*int32)(unsafe.Pointer(bp + 40)) = iCur _sqlite3WalkExpr(tls, bp, p) return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } @@ -87594,9 +88081,15 @@ func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32 // ** For the purposes of this function, a double-quoted string (ex: "abc") // ** is considered a variable but a single-quoted string (ex: 'abc') is // ** a constant. +// ** +// ** The pParse parameter may be NULL. But if it is NULL, there is no way +// ** to determine if function calls are constant or not, and hence all +// ** function calls will be considered to be non-constant. If pParse is +// ** not NULL, then a function call might be constant, depending on the +// ** function and on its parameters. // */ -func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(1), 0) +func _sqlite3ExprIsConstant(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(1)) } // C documentation @@ -87614,8 +88107,26 @@ func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { // ** can be added to the pParse->pConstExpr list and evaluated once when // ** the prepared statement starts up. See sqlite3ExprCodeRunJustOnce(). // */ -func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(2), 0) +func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(2)) +} + +// C documentation +// +// /* +// ** This routine examines sub-SELECT statements as an expression is being +// ** walked as part of sqlite3ExprIsTableConstant(). Sub-SELECTs are considered +// ** constant as long as they are uncorrelated - meaning that they do not +// ** contain any terms from outer contexts. +// */ +func _exprSelectWalkTableConstant(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if (*TSelect)(unsafe.Pointer(pSelect)).FselFlags&uint32(SF_Correlated) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) } // C documentation @@ -87625,9 +88136,25 @@ func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { // ** for any single row of the table with cursor iCur. In other words, the // ** expression must not refer to any non-deterministic function nor any // ** table other than iCur. +// ** +// ** Consider uncorrelated subqueries to be constants if the bAllowSubq +// ** parameter is true. // */ -func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) { - return _exprIsConst(tls, p, int32(3), iCur) +func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32, bAllowSubq int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(3) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = uintptr(0) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) + if bAllowSubq != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_exprSelectWalkTableConstant) + } else { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) + } + *(*int32)(unsafe.Pointer(bp + 40)) = iCur + _sqlite3WalkExpr(tls, bp, p) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } // C documentation @@ -87647,7 +88174,10 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** // ** (1) pExpr cannot refer to any table other than pSrc->iCursor. // ** -// ** (2) pExpr cannot use subqueries or non-deterministic functions. +// ** (2a) pExpr cannot use subqueries unless the bAllowSubq parameter is +// ** true and the subquery is non-correlated +// ** +// ** (2b) pExpr cannot use non-deterministic functions. // ** // ** (3) pSrc cannot be part of the left operand for a RIGHT JOIN. // ** (Is there some way to relax this constraint?) @@ -87673,7 +88203,7 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** which leads to incorrect answers. See also restriction (9) // ** on push-down. // */ -func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32) (r int32) { +func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32, bAllowSubq int32) (r int32) { var jj int32 var pSrc uintptr _, _ = jj, pSrc @@ -87711,7 +88241,8 @@ func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList jj++ } } - return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor) /* rules (1), (2) */ + /* Rules (1), (2a), and (2b) handled by the following: */ + return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor, bAllowSubq) } // C documentation @@ -87810,7 +88341,7 @@ func _sqlite3ExprIsConstantOrGroupBy(tls *libc.TLS, pParse uintptr, p uintptr, p // */ func _sqlite3ExprIsConstantOrFunction(tls *libc.TLS, p uintptr, isInit Tu8) (r int32) { _ = libc.Int32FromInt32(0) - return _exprIsConst(tls, p, int32(4)+int32(isInit), 0) + return _exprIsConst(tls, uintptr(0), p, int32(4)+int32(isInit)) } // C documentation @@ -87954,13 +88485,13 @@ func _sqlite3ExprNeedsNoAffinityChange(tls *libc.TLS, p uintptr, aff uint8) (r i // ** Return TRUE if the given string is a row-id column name. // */ func _sqlite3IsRowid(tls *libc.TLS, z uintptr) (r int32) { - if _sqlite3StrICmp(tls, z, __ccgo_ts+7906) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8031) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7914) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8039) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7920) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8045) == 0 { return int32(1) } return 0 @@ -87978,9 +88509,9 @@ func _sqlite3RowidAlias(tls *libc.TLS, pTab uintptr) (r uintptr) { var iCol, ii int32 _, _, _ = azOpt, iCol, ii azOpt = [3]uintptr{ - 0: __ccgo_ts + 7906, - 1: __ccgo_ts + 7914, - 2: __ccgo_ts + 7920, + 0: __ccgo_ts + 8031, + 1: __ccgo_ts + 8039, + 2: __ccgo_ts + 8045, } _ = libc.Int32FromInt32(0) ii = 0 @@ -88104,14 +88635,14 @@ func _sqlite3SetHasNullFlag(tls *libc.TLS, v uintptr, iCur int32, regHasNull int // ** The argument is an IN operator with a list (not a subquery) on the // ** right-hand side. Return TRUE if that list is constant. // */ -func _sqlite3InRhsIsConstant(tls *libc.TLS, pIn uintptr) (r int32) { +func _sqlite3InRhsIsConstant(tls *libc.TLS, pParse uintptr, pIn uintptr) (r int32) { var pLHS uintptr var res int32 _, _ = pLHS, res _ = libc.Int32FromInt32(0) pLHS = (*TExpr)(unsafe.Pointer(pIn)).FpLeft (*TExpr)(unsafe.Pointer(pIn)).FpLeft = uintptr(0) - res = _sqlite3ExprIsConstant(tls, pIn) + res = _sqlite3ExprIsConstant(tls, pParse, pIn) (*TExpr)(unsafe.Pointer(pIn)).FpLeft = pLHS return res } @@ -88269,7 +88800,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 iAddr = _sqlite3VdbeAddOp0(tls, v, int32(OP_Once)) _sqlite3OpenTable(tls, pParse, iTab, iDb, pTab, int32(OP_OpenRead)) eType = int32(IN_INDEX_ROWID) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+7924, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+8049, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) _sqlite3VdbeJumpHere(tls, v, iAddr) } else { /* Iterator variable */ affinity_ok = int32(1) @@ -88372,7 +88903,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 if colUsed == libc.Uint64FromInt32(1)<0 so that the new limit is either 1 or 0 */ db = (*TParse)(unsafe.Pointer(pParse)).Fdb - pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1731) + pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1791) if pLimit != 0 { (*TExpr)(unsafe.Pointer(pLimit)).FaffExpr = uint8(SQLITE_AFF_NUMERIC) pLimit = _sqlite3PExpr(tls, pParse, int32(TK_NE), _sqlite3ExprDup(tls, db, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft, 0), pLimit) @@ -88883,7 +89414,7 @@ func _sqlite3CodeSubselect(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int3 (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft = pLimit } else { /* If there is no pre-existing limit add a limit of 1 */ - pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8139) + pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8264) (*TSelect)(unsafe.Pointer(pSel)).FpLimit = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), pLimit, uintptr(0)) } (*TSelect)(unsafe.Pointer(pSel)).FiLimit = 0 @@ -89213,11 +89744,13 @@ func _sqlite3ExprCodeIN(tls *libc.TLS, pParse uintptr, pExpr uintptr, destIfFals } /* Jumps here in order to return true. */ _sqlite3VdbeJumpHere(tls, v, addrTruthOp) + goto sqlite3ExprCodeIN_finished sqlite3ExprCodeIN_finished: ; if rLhs != rLhsOrig { _sqlite3ReleaseTempReg(tls, pParse, rLhs) } + goto sqlite3ExprCodeIN_oom_error sqlite3ExprCodeIN_oom_error: ; _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiMap) @@ -89277,13 +89810,13 @@ func _codeInteger(tls *libc.TLS, pParse uintptr, pExpr uintptr, negFlag int32, i _ = libc.Int32FromInt32(0) c = _sqlite3DecOrHexToI64(tls, z, bp) if c == int32(3) && !(negFlag != 0) || c == int32(2) || negFlag != 0 && *(*Ti64)(unsafe.Pointer(bp)) == int64(-libc.Int32FromInt32(1))-(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<= (*TAggInfo)(unsafe.Pointer(pInfo)).FnFunc { _ = libc.Int32FromInt32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8232, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8357, libc.VaList(bp+160, pExpr)) } else { _ = libc.Int32FromInt32(0) return (*TAggInfo)(unsafe.Pointer(pInfo)).FiFirstReg + (*TAggInfo)(unsafe.Pointer(pInfo)).FnColumn + int32((*TExpr)(unsafe.Pointer(pExpr)).FiAgg) @@ -90083,7 +90611,7 @@ expr_code_doover: if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { return (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FregResult } - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { /* SQL functions can be expensive. So try to avoid running them ** multiple times if we know they always give the same result */ return _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) @@ -90101,7 +90629,7 @@ expr_code_doover: zId = *(*uintptr)(unsafe.Pointer(pExpr + 8)) pDef = _sqlite3FindFunction(tls, db, zId, nFarg, enc, uint8(0)) if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8259, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8384, libc.VaList(bp+160, pExpr)) break } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_INLINE) != uint32(0) && pFarg != uintptr(0) { @@ -90118,7 +90646,7 @@ expr_code_doover: if !(i < nFarg) { break } - if i < int32(32) && _sqlite3ExprIsConstant(tls, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { + if i < int32(32) && _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { constMask |= libc.Uint32FromInt32(1) << i } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_NEEDCOLL) != uint32(0) && !(pColl != 0) { @@ -90215,7 +90743,7 @@ expr_code_doover: _ = libc.Int32FromInt32(0) n1 = _sqlite3ExprVectorSize(tls, pLeft2) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != n1 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7842, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7967, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) } return (*TExpr)(unsafe.Pointer(pLeft2)).FiTable + int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) case int32(TK_IN): @@ -90247,8 +90775,9 @@ expr_code_doover: if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Collate)) != libc.Uint32FromInt32(0)) { /* A TK_COLLATE Expr node without the EP_Collate tag is a so-called ** "SOFT-COLLATE" that is added to constraints that are pushed down - ** from outer queries into sub-queries by the push-down optimization. - ** Clear subtypes as subtypes may not cross a subquery boundary. + ** from outer queries into sub-queries by the WHERE-clause push-down + ** optimization. Clear subtypes as subtypes may not cross a subquery + ** boundary. */ _ = libc.Int32FromInt32(0) _sqlite3ExprCode(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, target) @@ -90283,7 +90812,7 @@ expr_code_doover: _sqlite3VdbeAddOp1(tls, v, int32(OP_RealAffinity), target) } case int32(TK_VECTOR): - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6686, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6750, 0) break /* TK_IF_NULL_ROW Expr nodes are inserted ahead of expressions ** that derive from the right-hand table of a LEFT JOIN. The @@ -90405,7 +90934,7 @@ expr_code_doover: case int32(TK_RAISE): _ = libc.Int32FromInt32(0) if !((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != 0) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8283, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8408, 0) return 0 } if int32((*TExpr)(unsafe.Pointer(pExpr)).FaffExpr) == int32(OE_Abort) { @@ -90529,7 +91058,7 @@ func _sqlite3ExprCodeTemp(tls *libc.TLS, pParse uintptr, pExpr uintptr, pReg uin var r1, r2 int32 _, _ = r1, r2 pExpr = _sqlite3ExprSkipCollateAndLikely(tls, pExpr) - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { *(*int32)(unsafe.Pointer(pReg)) = 0 r2 = _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) } else { @@ -90602,7 +91131,7 @@ func _sqlite3ExprCodeCopy(tls *libc.TLS, pParse uintptr, pExpr uintptr, target i // ** might choose to code the expression at initialization time. // */ func _sqlite3ExprCodeFactorable(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) { - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target) } else { _sqlite3ExprCodeCopy(tls, pParse, pExpr, target) @@ -90673,7 +91202,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ _sqlite3VdbeAddOp2(tls, v, int32(copyOp), j+srcReg-int32(1), target+i) } } else { - if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target+i) } else { inReg = _sqlite3ExprCodeTarget(tls, pParse, pExpr, target+i) @@ -90948,6 +91477,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsTrue)) == uint32(EP_IsTrue) { @@ -91169,6 +91699,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) { @@ -92016,18 +92547,16 @@ func _agginfoPersistExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnColumn && (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } else { _ = libc.Int32FromInt32(0) if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnFunc && (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } @@ -92149,6 +92678,7 @@ func _findOrCreateAggInfoColumn(tls *libc.TLS, pParse uintptr, pAggInfo uintptr, *(*Tu16)(unsafe.Pointer(v4))++ (*TAggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = int16(v3) } + goto fix_up_expr fix_up_expr: ; _ = libc.Int32FromInt32(0) @@ -92596,8 +93126,8 @@ func _sqlite3FirstAvailableRegister(tls *libc.TLS, pParse uintptr, iMin int32) ( func _isAlterableTable(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) - if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6534, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8333, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6598, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8458, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -92616,9 +93146,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, bp := tls.Alloc(48) defer tls.Free(48) (*TParse)(unsafe.Pointer(pParse)).FcolNamesSet = uint8(1) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8361, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8486, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8536, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8661, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) } } @@ -92634,9 +93164,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, func _renameFixQuotes(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8710, libc.VaList(bp+8, zDb, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8835, libc.VaList(bp+8, zDb, zDb)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8857, 0) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8982, 0) } } @@ -92694,7 +93224,7 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName ** in database iDb. If so, this is an error. */ if _sqlite3FindTable(tls, db, zName, zDb) != 0 || _sqlite3FindIndex(tls, db, zName, zDb) != 0 || _sqlite3IsShadowTableOf(tls, db, pTab, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9008, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9133, libc.VaList(bp+8, zName)) goto exit_rename_table } /* Make sure it is not a system table being altered, or a reserved name @@ -92703,11 +93233,11 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { goto exit_rename_table } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9067, zName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9192, zName) { goto exit_rename_table } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9073, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9198, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_rename_table } /* Invoke the authorization callback. */ @@ -92737,21 +93267,21 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName nTabName = _sqlite3Utf8CharLen(tls, zTabName, -int32(1)) /* Rewrite all CREATE TABLE, INDEX, TRIGGER or VIEW statements in ** the schema to use the new table name. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9100, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9225, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) /* Update the tbl_name and name columns of the sqlite_schema table ** as required. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9284, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9409, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) /* If the sqlite_sequence table exists in this database, then update ** it with the new table name. */ - if _sqlite3FindTable(tls, db, __ccgo_ts+9589, zDb) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9605, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if _sqlite3FindTable(tls, db, __ccgo_ts+9714, zDb) != 0 { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9730, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* If the table being renamed is not itself part of the temp database, ** edit view and trigger definitions within the temp database ** as required. */ if iDb != int32(1) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9663, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9788, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) } /* If this is a virtual table, invoke the xRename() function if ** one is defined. The xRename() callback will modify the names @@ -92767,7 +93297,8 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp4(tls, v, int32(OP_VRename), i, 0, 0, pVTab, -int32(11)) } _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+9928, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+10053, 0) + goto exit_rename_table exit_rename_table: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -92783,7 +93314,7 @@ exit_rename_table: func _sqlite3ErrorIfNotEmpty(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zErr uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9941, libc.VaList(bp+8, zErr, zDb, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10066, libc.VaList(bp+8, zErr, zDb, zTab)) } // C documentation @@ -92828,11 +93359,11 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** column must not be NULL. */ if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9979, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10104, 0) return } if (*TTable)(unsafe.Pointer(pNew)).FpIndex != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10011, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10136, 0) return } if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) == 0 { @@ -92850,10 +93381,10 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpFKey != 0 && pDflt != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10038) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10163) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && !(pDflt != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10097) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10222) } /* Ensure the default expression is something that sqlite3ValueFromExpr() ** can handle (i.e. not CURRENT_TIME etc.) @@ -92867,13 +93398,13 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr return } if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10150) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10275) } _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp))) } } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_STORED) != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10196) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10321) } } /* Modify the CREATE TABLE statement. */ @@ -92889,7 +93420,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** have to use printf() to translate between these units: */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10223, libc.VaList(bp+16, zDb, (*(*struct { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10348, libc.VaList(bp+16, zDb, (*(*struct { FaddColOffset int32 FpFKey uintptr FpDfltList uintptr @@ -92917,7 +93448,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterAdd)) /* Verify that constraints are still satisfied */ if (*TTable)(unsafe.Pointer(pNew)).FpCheck != uintptr(0) || int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Strict) != uint32(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10369, libc.VaList(bp+16, zTab, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10494, libc.VaList(bp+16, zTab, zDb)) } } } @@ -92957,12 +93488,12 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { goto exit_begin_add_column } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10722, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10847, 0) goto exit_begin_add_column } /* Make sure this is not an attempt to ALTER a view. */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10756, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10881, 0) goto exit_begin_add_column } if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { @@ -92990,7 +93521,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { nAlloc = (int32((*TTable)(unsafe.Pointer(pNew)).FnCol)-int32(1))/int32(8)*int32(8) + int32(8) _ = libc.Int32FromInt32(0) (*TTable)(unsafe.Pointer(pNew)).FaCol = _sqlite3DbMallocZero(tls, db, uint64(16)*uint64(nAlloc)) - (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10786, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10911, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !((*TTable)(unsafe.Pointer(pNew)).FaCol != 0) || !((*TTable)(unsafe.Pointer(pNew)).FzName != 0) { _ = libc.Int32FromInt32(0) goto exit_begin_add_column @@ -93030,6 +93561,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { FpDfltList uintptr })(unsafe.Pointer(pTab + 64))).FaddColOffset _ = libc.Int32FromInt32(0) + goto exit_begin_add_column exit_begin_add_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -93053,18 +93585,18 @@ func _isRealTable(tls *libc.TLS, pParse uintptr, pTab uintptr, bDrop int32) (r i _, _ = zType, v1 zType = uintptr(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10805 + zType = __ccgo_ts + 10930 } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 10810 + zType = __ccgo_ts + 10935 } if zType != 0 { if bDrop != 0 { - v1 = __ccgo_ts + 10824 + v1 = __ccgo_ts + 10949 } else { - v1 = __ccgo_ts + 10841 + v1 = __ccgo_ts + 10966 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10859, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10984, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -93126,11 +93658,11 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld iCol++ } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10877, libc.VaList(bp+8, pOld)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11002, libc.VaList(bp+8, pOld)) goto exit_rename_column } /* Ensure the schema contains no double-quoted strings */ - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1657, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1671, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1))) /* Do the rename operation using a recursive UPDATE statement that ** uses the sqlite_rename_column() SQL function to compute the new @@ -93143,11 +93675,12 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld } _ = libc.Int32FromInt32(0) bQuote = int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pNew)).Fz))]) & int32(0x80) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10898, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11080, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11023, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11205, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iSchema, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+9928, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+10053, int32(1)) + goto exit_rename_column exit_rename_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -93625,11 +94158,11 @@ func _renameColumnParseError(tls *libc.TLS, pCtx uintptr, zWhen uintptr, pType u zT = Xsqlite3_value_text(tls, pType) zN = Xsqlite3_value_text(tls, pObject) if *(*uint8)(unsafe.Pointer(zWhen)) != 0 { - v1 = __ccgo_ts + 11211 + v1 = __ccgo_ts + 11336 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } - zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11213, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) + zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11338, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, zErr) } @@ -93706,8 +94239,8 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin if zSql == uintptr(0) { return int32(SQLITE_NOMEM) } - if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11236, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(116682)) + if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11361, int32(7)) != 0 { + return _sqlite3CorruptError(tls, int32(117285)) } if bTemp != 0 { v1 = int32(1) @@ -93723,7 +94256,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin rc = int32(SQLITE_NOMEM) } if rc == SQLITE_OK && ((*TParse)(unsafe.Pointer(p)).FpNewTable == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewIndex == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewTrigger == uintptr(0)) { - rc = _sqlite3CorruptError(tls, int32(116693)) + rc = _sqlite3CorruptError(tls, int32(117296)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -93762,7 +94295,7 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, ** ALTER TABLE statement was quoted (bQuote==1), then set zNew to ** point to zQuot so that all substitutions are made using the ** quoted version of the new column name. */ - zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11244, libc.VaList(bp+8, zNew)) + zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11369, libc.VaList(bp+8, zNew)) if zQuot == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -93808,11 +94341,11 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, *(*uint8)(unsafe.Pointer(zBuf1 + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn))) = uint8(0) _sqlite3Dequote(tls, zBuf1) if int32(*(*uint8)(unsafe.Pointer((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn)))) == int32('\'') { - v1 = __ccgo_ts + 11211 + v1 = __ccgo_ts + 11336 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } - Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11250, libc.VaList(bp+8, zBuf1, v1)) + Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11375, libc.VaList(bp+8, zBuf1, v1)) zReplace = zBuf2 nReplace = uint32(_sqlite3Strlen30(tls, zReplace)) } @@ -94296,6 +94829,7 @@ func _renameColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintp } _ = libc.Int32FromInt32(0) rc = _renameEditSql(tls, context, bp, zSql, zNew, bQuote) + goto renameColumnFunc_done renameColumnFunc_done: ; if rc != SQLITE_OK { @@ -94303,7 +94837,7 @@ renameColumnFunc_done: Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv))) } else { if (*(*TParse)(unsafe.Pointer(bp + 32))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1657, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) + _renameColumnParseError(tls, context, __ccgo_ts+1671, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -94532,7 +95066,7 @@ func _renameTableFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintpt Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv + 3*8))) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1657, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) + _renameColumnParseError(tls, context, __ccgo_ts+1671, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -94794,7 +95328,7 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr pTab = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable if pTab == uintptr(0) || int32((*TTable)(unsafe.Pointer(pTab)).FnCol) == int32(1) || iCol >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { /* This can happen if the sqlite_schema table is corrupt */ - rc = _sqlite3CorruptError(tls, int32(117652)) + rc = _sqlite3CorruptError(tls, int32(118255)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -94812,9 +95346,10 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr (*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz-- } } - zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11255, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) + zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11380, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) Xsqlite3_result_text(tls, context, zNew, -int32(1), uintptr(-libc.Int32FromInt32(1))) Xsqlite3_free(tls, zNew) + goto drop_column_done drop_column_done: ; _renameParseCleanup(tls, bp) @@ -94838,8 +95373,9 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName bp := tls.Alloc(48) defer tls.Free(48) var addr, i, iCol, iColPos, iCur, iDb, iPos, nField, reg, regOut, regRec, v2, v4, v7 int32 + var aff uint8 var db, pPk, pTab, v, zCol, zDb, v1, v3, v5, v8 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, aff, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Database containing pTab ("main" etc.) */ zCol = uintptr(0) /* Index of column zCol in pTab->aCol[] */ /* Look up the table being altered. */ @@ -94868,23 +95404,23 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName } iCol = _sqlite3ColumnIndex(tls, pTab, zCol) if iCol < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10877, libc.VaList(bp+8, pName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11002, libc.VaList(bp+8, pName)) goto exit_drop_column } /* Do not allow the user to drop a PRIMARY KEY column or a column ** constrained by a UNIQUE constraint. */ if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_PRIMKEY)|libc.Int32FromInt32(COLFLAG_UNIQUE)) != 0 { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - v1 = __ccgo_ts + 11262 + v1 = __ccgo_ts + 11387 } else { - v1 = __ccgo_ts + 5598 + v1 = __ccgo_ts + 5662 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11274, libc.VaList(bp+8, v1, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11399, libc.VaList(bp+8, v1, zCol)) goto exit_drop_column } /* Do not allow the number of columns to go to zero */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) <= int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11302, libc.VaList(bp+8, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11427, libc.VaList(bp+8, zCol)) goto exit_drop_column } /* Edit the sqlite_schema table */ @@ -94895,12 +95431,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_ALTER_TABLE), zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol) != 0 { goto exit_drop_column } - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1657, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1671, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1))) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11350, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11475, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterDrop)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11471, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11596, int32(1)) /* Edit rows of table on disk */ if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 && int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { pPk = uintptr(0) @@ -94958,7 +95494,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if i == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regOut) } else { + aff = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity + if int32(aff) == int32(SQLITE_AFF_REAL) { + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = uint8(SQLITE_AFF_NUMERIC) + } _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, i, regOut) + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = aff } nField++ } @@ -94983,6 +95524,7 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iCur, addr+int32(1)) _sqlite3VdbeJumpHere(tls, v, addr) } + goto exit_drop_column exit_drop_column: ; _sqlite3DbFree(tls, db, zCol) @@ -95002,27 +95544,27 @@ var _aAlterTableFuncs = [5]TFuncDef{ 0: { FnArg: int8(9), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11489, + FzName: __ccgo_ts + 11614, }, 1: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11510, + FzName: __ccgo_ts + 11635, }, 2: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11530, + FzName: __ccgo_ts + 11655, }, 3: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11549, + FzName: __ccgo_ts + 11674, }, 4: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11568, + FzName: __ccgo_ts + 11693, }, } @@ -95235,7 +95777,7 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW ** side-effect of the CREATE TABLE statement is to leave the rootpage ** of the new table in register pParse->regRoot. This is important ** because the OpenWrite opcode below will be needing it. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11671, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11796, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) aRoot[i] = uint32((*TParse)(unsafe.Pointer(pParse)).FregRoot) aCreateTbl[i] = uint8(OPFLAG_P2ISREG) } @@ -95246,10 +95788,10 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW aRoot[i] = (*TTable)(unsafe.Pointer(pStat)).Ftnum _sqlite3TableLock(tls, pParse, iDb, aRoot[i], uint8(1), zTab) if zWhere != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11694, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11819, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11724, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11849, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) } else { /* The sqlite_stat[134] table already exists. Delete all rows. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Clear), int32(aRoot[i]), iDb) @@ -95282,15 +95824,15 @@ var _aTable = [3]struct { FzCols uintptr }{ 0: { - FzName: __ccgo_ts + 11591, - FzCols: __ccgo_ts + 11604, + FzName: __ccgo_ts + 11716, + FzCols: __ccgo_ts + 11729, }, 1: { - FzName: __ccgo_ts + 11617, - FzCols: __ccgo_ts + 11630, + FzName: __ccgo_ts + 11742, + FzCols: __ccgo_ts + 11755, }, 2: { - FzName: __ccgo_ts + 11658, + FzName: __ccgo_ts + 11783, }, } @@ -95599,7 +96141,7 @@ func _statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statInitFuncdef = TFuncDef{ FnArg: int8(4), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11742, + FzName: __ccgo_ts + 11867, } func init() { @@ -95753,6 +96295,7 @@ func _sampleInsert(tls *libc.TLS, p uintptr, pNew uintptr, nEqZero int32) { (*TStatAccum)(unsafe.Pointer(p)).FnSample++ /* Zero the first nEqZero entries in the anEq[] array. */ libc.Xmemset(tls, (*TStatSample)(unsafe.Pointer(pSample)).FanEq, 0, uint64(8)*uint64(nEqZero)) + goto find_new_min find_new_min: ; if (*TStatAccum)(unsafe.Pointer(p)).FnSample >= (*TStatAccum)(unsafe.Pointer(p)).FmxSample { @@ -95984,7 +96527,7 @@ func _statPush(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statPushFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(2) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11752, + FzName: __ccgo_ts + 11877, } func init() { @@ -96037,7 +96580,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } else { v1 = (*TStatAccum)(unsafe.Pointer(p)).FnRow } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11762, libc.VaList(bp+72, v1)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11887, libc.VaList(bp+72, v1)) i = 0 for { if !(i < (*TStatAccum)(unsafe.Pointer(p)).FnKeyCol) { @@ -96048,7 +96591,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if iVal == uint64(2) && (*TStatAccum)(unsafe.Pointer(p)).FnRow*uint64(10) <= nDistinct*uint64(11) { iVal = uint64(1) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11767, libc.VaList(bp+72, iVal)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11892, libc.VaList(bp+72, iVal)) _ = libc.Int32FromInt32(0) goto _2 _2: @@ -96089,7 +96632,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if !(i1 < (*TStatAccum)(unsafe.Pointer(p)).FnCol) { break } - Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+11773, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) + Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+11898, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) goto _3 _3: ; @@ -96107,7 +96650,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statGetFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(1) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11779, + FzName: __ccgo_ts + 11904, } func init() { @@ -96129,9 +96672,9 @@ func _callStatGet(tls *libc.TLS, pParse uintptr, regStat int32, iParam int32, re // */ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr, iStatCur int32, iMem int32, iTab int32) { var aGotoChng, db, pColl, pIdx, pPk, pStat1, pX, v, zIdxName uintptr - var addrIsNull, addrNext, addrNextRow, addrRewind, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 + var addrGotoEnd, addrIsNull, addrNext, addrNextRow, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 var needTableCnt, seekOp Tu8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrIsNull, addrNext, addrNextRow, addrRewind, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrGotoEnd, addrIsNull, addrNext, addrNextRow, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Loop counter */ jZeroRows = -int32(1) /* Index of database containing pTab */ needTableCnt = uint8(1) @@ -96175,7 +96718,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Do not gather statistics on views or virtual tables */ return } - if Xsqlite3_strlike(tls, __ccgo_ts+11788, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { + if Xsqlite3_strlike(tls, __ccgo_ts+11913, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { /* Do not gather statistics on system tables */ return } @@ -96192,7 +96735,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint return } (*TTable)(unsafe.Pointer(pStat1)).FzName = pStat1 + 1*104 - libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11591, uint64(13)) + libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11716, uint64(13)) (*TTable)(unsafe.Pointer(pStat1)).FnCol = int16(3) (*TTable)(unsafe.Pointer(pStat1)).FiPKey = int16(-int32(1)) _sqlite3VdbeAddOp4(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Noop), 0, 0, 0, pStat1, -int32(6)) @@ -96246,9 +96789,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* ** Pseudo-code for loop that calls stat_push(): ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() ** goto chng_addr_0; ** ** next_row: @@ -96283,34 +96831,31 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _ = libc.Int32FromInt32(0) _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenRead), iIdxCur, int32((*TIndex)(unsafe.Pointer(pIdx)).Ftnum), iDb) _sqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx) - /* Invoke the stat_init() function. The arguments are: + /* Implementation of the following: ** + ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() + ** goto chng_addr_0; + */ + _ = libc.Int32FromInt32(0) + _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + /* Arguments to stat_init(): ** (1) the number of columns in the index including the rowid ** (or for a WITHOUT ROWID table, the number of PK columns), ** (2) the number of columns in the key without the rowid/pk - ** (3) estimated number of rows in the index, - */ + ** (3) estimated number of rows in the index. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), nCol, regStat+int32(1)) _ = libc.Int32FromInt32(0) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol), regRowid) - if (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0) { - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iIdxCur, regTemp) - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - } else { - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, int32(1)) - } - _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) != uint32(0))) _sqlite3VdbeAddFunctionCall(tls, pParse, 0, regStat+int32(1), regStat, int32(4), uintptr(unsafe.Pointer(&_statInitFuncdef)), 0) - /* Implementation of the following: - ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; - ** regChng = 0 - ** goto next_push_0; - ** - */ + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regChng) addrNextRow = _sqlite3VdbeCurrentAddr(tls, v) if nColTest > 0 { @@ -96422,9 +96967,15 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iIdxCur, addrNextRow) } /* Add the entry to the stat1 table. */ + if (*TIndex)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 { + /* Partial indexes might get a zero-entry in sqlite_stat1. But + ** an empty table is omitted from sqlite_stat1. */ + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + addrGotoEnd = 0 + } _callStatGet(tls, pParse, regStat, STAT_GET_STAT1, regStat1) _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11798, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11923, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP4(tls, v, -int32(1), pStat1, -int32(5)) @@ -96443,6 +96994,11 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint v18 = int32(OP_NotFound) } seekOp = uint8(v18) + /* No STAT4 data is generated if the number of rows is zero */ + if addrGotoEnd == 0 { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Cast), regStat1, int32(SQLITE_AFF_INTEGER)) + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) + } if doOnce != 0 { mxCol = nCol /* Compute the maximum number of columns in any index */ @@ -96497,7 +97053,9 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeJumpHere(tls, v, addrIsNull) } /* End of analysis */ - _sqlite3VdbeJumpHere(tls, v, addrRewind) + if addrGotoEnd != 0 { + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + } goto _13 _13: ; @@ -96511,7 +97069,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint jZeroRows = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regIdxname) _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11798, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11923, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND)) @@ -96586,9 +97144,9 @@ func _analyzeTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr iStatCur = (*TParse)(unsafe.Pointer(pParse)).FnTab *(*int32)(unsafe.Pointer(pParse + 52)) += int32(3) if pOnlyIdx != 0 { - _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11802) + _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11927) } else { - _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11806) + _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11931) } _analyzeOneTable(tls, pParse, pTab, pOnlyIdx, iStatCur, (*TParse)(unsafe.Pointer(pParse)).FnMem+int32(1), (*TParse)(unsafe.Pointer(pParse)).FnTab) _loadAnalysis(tls, pParse, iDb) @@ -96719,7 +97277,7 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, _, _, _, _, _, _ = c, i, sz, v, z, v2 z = zIntArray if z == uintptr(0) { - z = __ccgo_ts + 1657 + z = __ccgo_ts + 1671 } i = 0 for { @@ -96754,17 +97312,17 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 6, 0x40) for *(*uint8)(unsafe.Pointer(z)) != 0 { - if Xsqlite3_strglob(tls, __ccgo_ts+11810, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11935, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 2, 0x4) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11821, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11946, z) == 0 { sz = _sqlite3Atoi(tls, z+uintptr(3)) if sz < int32(2) { sz = int32(2) } (*TIndex)(unsafe.Pointer(pIndex)).FszIdxRow = _sqlite3LogEst(tls, uint64(sz)) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11831, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11956, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 6, 0x40) } } @@ -97148,11 +97706,11 @@ func _loadStat4(tls *libc.TLS, db uintptr, zDb uintptr) (r int32) { rc = SQLITE_OK _ = libc.Int32FromInt32(0) if v2 = (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0); v2 { - v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11617, zDb) + v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11742, zDb) pStat4 = v1 } if v2 && v1 != uintptr(0) && int32((*TTable)(unsafe.Pointer(pStat4)).FeTabType) == TABTYP_NORM { - rc = _loadStatTbl(tls, db, __ccgo_ts+11843, __ccgo_ts+11912, zDb) + rc = _loadStatTbl(tls, db, __ccgo_ts+11968, __ccgo_ts+12037, zDb) } return rc } @@ -97221,10 +97779,10 @@ func _sqlite3AnalysisLoad(tls *libc.TLS, db uintptr, iDb int32) (r int32) { /* Load new statistics out of the sqlite_stat1 table */ (*(*TanalysisInfo)(unsafe.Pointer(bp))).Fdb = db (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName - v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11591, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) + v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11716, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) pStat1 = v3 if v3 != 0 && int32((*TTable)(unsafe.Pointer(pStat1)).FeTabType) == TABTYP_NORM { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+11964, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+12089, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -97338,7 +97896,7 @@ func _resolveAttachExpr(tls *libc.TLS, pName uintptr, pExpr uintptr) (r int32) { // ** database iDb attached to handle db. // */ func _sqlite3DbIsNamed(tls *libc.TLS, db uintptr, iDb int32, zName uintptr) (r int32) { - return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6594, zName) == 0) + return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6658, zName) == 0) } // C documentation @@ -97380,21 +97938,21 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { zFile = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) zName = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if zFile == uintptr(0) { - zFile = __ccgo_ts + 1657 + zFile = __ccgo_ts + 1671 } if zName == uintptr(0) { - zName = __ccgo_ts + 1657 + zName = __ccgo_ts + 1671 } if int32(uint32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x4>>2)) != 0 { /* This is not a real ATTACH. Instead, this routine is being called ** from sqlite3_deserialize() to close database db->init.iDb and ** reopen it as a MemDB */ *(*uintptr)(unsafe.Pointer(bp + 40)) = uintptr(0) - *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+3976) + *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+4040) if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { return } - rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12005, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) + rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12130, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) if rc == SQLITE_OK { pNewSchema = _sqlite3SchemaGet(tls, db, *(*uintptr)(unsafe.Pointer(bp + 40))) if pNewSchema != 0 { @@ -97425,7 +97983,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { ** * Specified database name already being used. */ if (*Tsqlite3)(unsafe.Pointer(db)).FnDb >= *(*int32)(unsafe.Pointer(db + 136 + 7*4))+int32(2) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12008, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12133, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) goto attach_error } i = 0 @@ -97435,7 +97993,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } _ = libc.Int32FromInt32(0) if _sqlite3DbIsNamed(tls, db, i, zName) != 0 { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12045, libc.VaList(bp+56, zName)) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12170, libc.VaList(bp+56, zName)) goto attach_error } goto _1 @@ -97484,7 +98042,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FnoSharedCache = uint8(0) if rc == int32(SQLITE_CONSTRAINT) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12075, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12200, 0) } else { if rc == SQLITE_OK { (*TDb)(unsafe.Pointer(pNew)).FpSchema = _sqlite3SchemaGet(tls, db, (*TDb)(unsafe.Pointer(pNew)).FpBt) @@ -97492,7 +98050,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { rc = int32(SQLITE_NOMEM) } else { if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Ffile_format != 0 && int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Fenc) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12104, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12229, 0) rc = int32(SQLITE_ERROR) } } @@ -97538,16 +98096,17 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)<= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12200, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12325, libc.VaList(bp+136, zName)) goto detach_error } if i < int32(2) { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12221, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12346, libc.VaList(bp+136, zName)) goto detach_error } if _sqlite3BtreeTxnState(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != SQLITE_TXN_NONE || _sqlite3BtreeIsInBackup(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != 0 { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12247, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12372, libc.VaList(bp+136, zName)) goto detach_error } /* If any TEMP triggers reference the schema being detached, move those @@ -97629,6 +98188,7 @@ func _detachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*TDb)(unsafe.Pointer(pDb)).FpSchema = uintptr(0) _sqlite3CollapseDatabaseArray(tls, db) return + goto detach_error detach_error: ; Xsqlite3_result_error(tls, context, bp, -int32(1)) @@ -97685,6 +98245,7 @@ func _codeAttach(tls *libc.TLS, pParse uintptr, type1 int32, pFunc uintptr, pAut */ _sqlite3VdbeAddOp1(tls, v, int32(OP_Expire), libc.BoolInt32(type1 == int32(SQLITE_ATTACH))) } + goto attach_end attach_end: ; _sqlite3ExprDelete(tls, db, pFilename) @@ -97706,7 +98267,7 @@ func _sqlite3Detach(tls *libc.TLS, pParse uintptr, pDbname uintptr) { var _detach_func = TFuncDef{ FnArg: int8(1), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12269, + FzName: __ccgo_ts + 12394, } func init() { @@ -97728,7 +98289,7 @@ func _sqlite3Attach(tls *libc.TLS, pParse uintptr, p uintptr, pDbname uintptr, p var _attach_func = TFuncDef{ FnArg: int8(3), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12283, + FzName: __ccgo_ts + 12408, } func init() { @@ -97754,7 +98315,7 @@ func _fixExprCb(tls *libc.TLS, p uintptr, pExpr uintptr) (r int32) { if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer((*TDbFixer)(unsafe.Pointer(pFix)).FpParse)).Fdb)).Finit1.Fbusy != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } else { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12297, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12422, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) return int32(WRC_Abort) } } @@ -97788,7 +98349,7 @@ func _fixSelectCb(tls *libc.TLS, p uintptr, pSelect uintptr) (r int32) { if int32((*TDbFixer)(unsafe.Pointer(pFix)).FbTemp) == 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { if iDb != _sqlite3FindDbName(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12321, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12446, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) return int32(WRC_Abort) } _sqlite3DbFree(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) @@ -98005,7 +98566,7 @@ func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uint // ** user-supplied authorization function returned an illegal value. // */ func _sqliteAuthBadReturnCode(tls *libc.TLS, pParse uintptr) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12367, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12492, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) } @@ -98033,11 +98594,11 @@ func _sqlite3AuthReadCol(tls *libc.TLS, pParse uintptr, zTab uintptr, zCol uintp } rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, int32(SQLITE_READ), zTab, zCol, zDb, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12390, libc.VaList(bp+8, zTab, zCol)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12515, libc.VaList(bp+8, zTab, zCol)) if (*Tsqlite3)(unsafe.Pointer(db)).FnDb > int32(2) || iDb != 0 { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12396, libc.VaList(bp+8, zDb, z)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12521, libc.VaList(bp+8, zDb, z)) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12402, libc.VaList(bp+8, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12527, libc.VaList(bp+8, z)) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != int32(SQLITE_IGNORE) && rc != SQLITE_OK { @@ -98103,7 +98664,7 @@ func _sqlite3AuthRead(tls *libc.TLS, pParse uintptr, pExpr uintptr, pSchema uint _ = libc.Int32FromInt32(0) zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName } else { - zCol = __ccgo_ts + 7914 + zCol = __ccgo_ts + 8039 } } _ = libc.Int32FromInt32(0) @@ -98140,7 +98701,7 @@ func _sqlite3AuthCheck(tls *libc.TLS, pParse uintptr, code int32, zArg1 uintptr, ** parameters can be either NULL or a string. */ rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, code, zArg1, zArg2, zArg3, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12429, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12554, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != SQLITE_OK && rc != int32(SQLITE_IGNORE) { @@ -98575,21 +99136,21 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp if i >= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { /* No match against the official names. But always match "main" ** to schema 0 as a legacy fallback. */ - if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6594) == 0 { + if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6658) == 0 { i = 0 } else { return uintptr(0) } } p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, zName) - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6534, int32(7)) == 0 { + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6598, int32(7)) == 0 { if i == int32(1) { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6561+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6580+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6075+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6542) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6625+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6644+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6139+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6606) } } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6580+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6075) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6644+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6139) } } } @@ -98620,12 +99181,12 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp ; i++ } - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6534, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6580+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6075) + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6598, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6644+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6139) } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6561+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6542) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6625+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6606) } } } @@ -98663,7 +99224,7 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt ** can be an eponymous virtual table. */ if int32((*TParse)(unsafe.Pointer(pParse)).FprepFlags)&int32(SQLITE_PREPARE_NO_VTAB) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 { pMod = _sqlite3HashFind(tls, db+576, zName) - if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12444, int32(7)) == 0 { + if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12569, int32(7)) == 0 { pMod = _sqlite3PragmaVtabRegister(tls, db, zName) } if pMod != 0 && _sqlite3VtabEponymousTableInit(tls, pParse, pMod) != 0 { @@ -98681,15 +99242,15 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt } if p == uintptr(0) { if flags&uint32(LOCATE_VIEW) != 0 { - v1 = __ccgo_ts + 12452 + v1 = __ccgo_ts + 12577 } else { - v1 = __ccgo_ts + 12465 + v1 = __ccgo_ts + 12590 } zMsg = v1 if zDbase != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6798, libc.VaList(bp+8, zMsg, zDbase, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6862, libc.VaList(bp+8, zMsg, zDbase, zName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6808, libc.VaList(bp+8, zMsg, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6933, libc.VaList(bp+8, zMsg, zName)) } } else { _ = libc.Int32FromInt32(0) @@ -98729,12 +99290,12 @@ func _sqlite3LocateTableItem(tls *libc.TLS, pParse uintptr, flags Tu32, p uintpt // ** names into the new preferred names, as appropriate. // */ func _sqlite3PreferredTableName(tls *libc.TLS, zName uintptr) (r uintptr) { - if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6534, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6075+7) == 0 { - return __ccgo_ts + 6580 + if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6598, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6139+7) == 0 { + return __ccgo_ts + 6644 } - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6542+7) == 0 { - return __ccgo_ts + 6561 + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6606+7) == 0 { + return __ccgo_ts + 6625 } } return zName @@ -99280,7 +99841,7 @@ func _sqlite3OpenSchemaTable(tls *libc.TLS, p uintptr, iDb int32) { var v uintptr _ = v v = _sqlite3GetVdbe(tls, p) - _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6075) + _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6139) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_OpenWrite), 0, int32(SCHEMA_ROOT), iDb, int32(5)) if (*TParse)(unsafe.Pointer(p)).FnTab == 0 { (*TParse)(unsafe.Pointer(p)).FnTab = int32(1) @@ -99312,7 +99873,7 @@ func _sqlite3FindDbName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) { } /* "main" is always an acceptable alias for the primary database ** even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME. */ - if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6594, zName) { + if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6658, zName) { break } goto _1 @@ -99371,13 +99932,13 @@ func _sqlite3TwoPartName(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u _ = libc.Int32FromInt32(0) if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12479, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12604, 0) return -int32(1) } *(*uintptr)(unsafe.Pointer(pUnqual)) = pName2 iDb = _sqlite3FindDb(tls, db, pName1) if iDb < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12496, libc.VaList(bp+8, pName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12621, libc.VaList(bp+8, pName1)) return -int32(1) } } else { @@ -99422,12 +99983,12 @@ func _sqlite3CheckObjectName(tls *libc.TLS, pParse uintptr, zName uintptr, zType } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if Xsqlite3_stricmp(tls, zType, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit))) != 0 || Xsqlite3_stricmp(tls, zName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 1*8))) != 0 || Xsqlite3_stricmp(tls, zTblName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 2*8))) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1657, 0) /* corruptSchema() will supply the error */ + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1671, 0) /* corruptSchema() will supply the error */ return int32(SQLITE_ERROR) } } else { - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6534, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12516, libc.VaList(bp+8, zName)) + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6598, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12641, libc.VaList(bp+8, zName)) return int32(SQLITE_ERROR) } } @@ -99643,9 +100204,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Special case: Parsing the sqlite_schema or sqlite_temp_schema schema */ iDb = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6542 + v1 = __ccgo_ts + 6606 } else { - v1 = __ccgo_ts + 6075 + v1 = __ccgo_ts + 6139 } zName = _sqlite3DbStrDup(tls, db, v1) *(*uintptr)(unsafe.Pointer(bp)) = pName1 @@ -99658,7 +100219,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 && (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) && iDb != int32(1) { /* If creating a temp table, the name may not be qualified. Unless ** the database name is "temp" anyway. */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12558, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12683, 0) return } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 { @@ -99674,9 +100235,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui return } if isView != 0 { - v2 = __ccgo_ts + 10805 + v2 = __ccgo_ts + 10930 } else { - v2 = __ccgo_ts + 9067 + v2 = __ccgo_ts + 9192 } if _sqlite3CheckObjectName(tls, pParse, zName, v2, zName) != 0 { goto begin_table_error @@ -99688,9 +100249,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui _ = libc.Int32FromInt32(0) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp == int32(1) { - v3 = __ccgo_ts + 6542 + v3 = __ccgo_ts + 6606 } else { - v3 = __ccgo_ts + 6075 + v3 = __ccgo_ts + 6139 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto begin_table_error @@ -99714,11 +100275,11 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if pTable != 0 { if !(noErr != 0) { if int32((*TTable)(unsafe.Pointer(pTable)).FeTabType) == int32(TABTYP_VIEW) { - v4 = __ccgo_ts + 10805 + v4 = __ccgo_ts + 10930 } else { - v4 = __ccgo_ts + 9067 + v4 = __ccgo_ts + 9192 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12599, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12724, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -99727,7 +100288,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui goto begin_table_error } if _sqlite3FindIndex(tls, db, zName, zDb1) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12620, libc.VaList(bp+16, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12745, libc.VaList(bp+16, zName)) goto begin_table_error } } @@ -99819,6 +100380,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Normal (non-error) return. */ return /* If an error occurs, we jump here */ + goto begin_table_error begin_table_error: ; (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) @@ -99882,7 +100444,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { _, _, _ = db, pHash, pRet db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12655, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12780, 0) } else { _ = libc.Int32FromInt32(0) } @@ -99899,7 +100461,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return } - Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+12689, libc.VaList(bp+8, pParse)) + Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+12814, libc.VaList(bp+8, pParse)) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.FzName = pRet + 196 (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Fop = uint8(TK_RETURNING) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Ftr_tm = uint8(TRIGGER_AFTER) @@ -99947,7 +100509,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok return } if int32((*TTable)(unsafe.Pointer(p)).FnCol)+int32(1) > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12709, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12834, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) return } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -99957,12 +100519,12 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok ** by the parser, we can sometimes end up with a typename that ends ** with "generated always". Check for this case and omit the surplus ** text. */ - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12732, int32(6)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12857, int32(6)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(6) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- } - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12739, int32(9)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12864, int32(9)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(9) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- @@ -100011,7 +100573,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok break } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FhName) == int32(hName) && _sqlite3StrICmp(tls, z, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FzCnName) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12749, libc.VaList(bp+40, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12874, libc.VaList(bp+40, z)) _sqlite3DbFree(tls, db, z) return } @@ -100221,10 +100783,10 @@ func _sqlite3AddDefaultValue(tls *libc.TLS, pParse uintptr, pExpr uintptr, zStar isInit = libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) != int32(1)) pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(p)).FnCol)-int32(1))*16 if !(_sqlite3ExprIsConstantOrFunction(tls, pExpr, uint8(isInit)) != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12775, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12900, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12820, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12945, 0) } else { libc.Xmemset(tls, bp, 0, uint64(72)) (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_SPAN) @@ -100282,7 +100844,7 @@ func _makeColumnPartOfPrimaryKey(tls *libc.TLS, pParse uintptr, pCol uintptr) { p1 = pCol + 14 *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(COLFLAG_PRIMKEY)) if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12861, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12986, 0) } } @@ -100319,7 +100881,7 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError goto primary_key_exit } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasPrimaryKey) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12913, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13038, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto primary_key_exit } *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_HasPrimaryKey) @@ -100378,12 +100940,13 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError _sqlite3HasExplicitNulls(tls, pParse, pList) } else { if autoInc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12954, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13079, 0) } else { _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), pList, onError, uintptr(0), uintptr(0), sortOrder, 0, uint8(SQLITE_IDXTYPE_PRIMARYKEY)) pList = uintptr(0) } } + goto primary_key_exit primary_key_exit: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) @@ -100494,17 +101057,17 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui } pCol = (*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-int32(1))*16 if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) == int32(PARSE_MODE_DECLARE_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13010, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13135, 0) goto generated_done } if int32((*TColumn)(unsafe.Pointer(pCol)).FiDflt) > 0 { goto generated_error } if pType != 0 { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13053, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13178, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { /* no-op */ } else { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13061, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13186, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { eType = uint8(COLFLAG_STORED) } else { goto generated_error @@ -100535,9 +101098,11 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui _sqlite3ColumnSetExpr(tls, pParse, pTab, pCol, pExpr) pExpr = uintptr(0) goto generated_done + goto generated_error generated_error: ; - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13068, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13193, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + goto generated_done generated_done: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -100700,13 +101265,13 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { } n += _identLength(tls, (*TTable)(unsafe.Pointer(p)).FzName) if n < int32(50) { - zSep = __ccgo_ts + 1657 - zSep2 = __ccgo_ts + 13099 - zEnd = __ccgo_ts + 5115 + zSep = __ccgo_ts + 1671 + zSep2 = __ccgo_ts + 13224 + zEnd = __ccgo_ts + 5179 } else { - zSep = __ccgo_ts + 13101 - zSep2 = __ccgo_ts + 13105 - zEnd = __ccgo_ts + 13110 + zSep = __ccgo_ts + 13226 + zSep2 = __ccgo_ts + 13230 + zEnd = __ccgo_ts + 13235 } n += int32(35) + int32(6)*int32((*TTable)(unsafe.Pointer(p)).FnCol) zStmt = _sqlite3DbMallocRaw(tls, uintptr(0), uint64(n)) @@ -100714,7 +101279,7 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { _sqlite3OomFault(tls, db) return uintptr(0) } - Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13113, 0) + Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13238, 0) *(*int32)(unsafe.Pointer(bp)) = _sqlite3Strlen30(tls, zStmt) _identPut(tls, zStmt, bp, (*TTable)(unsafe.Pointer(p)).FzName) v2 = *(*int32)(unsafe.Pointer(bp)) @@ -100744,17 +101309,17 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { i++ pCol += 16 } - Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3804, libc.VaList(bp+16, zEnd)) + Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3868, libc.VaList(bp+16, zEnd)) return zStmt } var _azType1 = [6]uintptr{ - 0: __ccgo_ts + 1657, - 1: __ccgo_ts + 13127, - 2: __ccgo_ts + 13133, - 3: __ccgo_ts + 13138, - 4: __ccgo_ts + 13143, - 5: __ccgo_ts + 13133, + 0: __ccgo_ts + 1671, + 1: __ccgo_ts + 13252, + 2: __ccgo_ts + 13258, + 3: __ccgo_ts + 13263, + 4: __ccgo_ts + 13268, + 5: __ccgo_ts + 13258, } // C documentation @@ -101353,13 +101918,13 @@ func _sqlite3ShadowTableName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr, tabOpts Tu32, pSelect uintptr) { bp := tls.Alloc(112) defer tls.Free(112) - var addrInsLoop, addrTop, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v4, v6, v8 int32 + var addrInsLoop, addrTop, iCsr, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v10, v4, v6, v8 int32 var colFlags Tu32 - var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v5, v7, v9 uintptr - var v10 Ti16 + var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v13, v5, v7, v9 uintptr + var v12 Ti16 var _ /* dest at bp+0 */ TSelectDest - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v4, v5, v6, v7, v8, v9 /* The new table */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iCsr, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v12, v13, v4, v5, v6, v7, v8, v9 /* The new table */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ if pEnd == uintptr(0) && pSelect == uintptr(0) { return } @@ -101381,7 +101946,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if pSelect != 0 || !(int32((*TTable)(unsafe.Pointer(p)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) && (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1657, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1671, 0) return } (*TTable)(unsafe.Pointer(p)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum @@ -101408,9 +101973,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(ii)*16 if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf0>>4)) == COLTYPE_CUSTOM { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_HASTYPE) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13149, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1657))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13274, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1671))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13182, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13307, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } return } else { @@ -101433,11 +101998,11 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* Special processing for WITHOUT ROWID Tables */ if tabOpts&uint32(TF_WithoutRowid) != 0 { if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13209, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13334, 0) return } if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasPrimaryKey) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13259, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13384, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) return } *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) @@ -101484,7 +102049,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ii1++ } if nNG == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13291, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13416, 0) return } } @@ -101518,12 +102083,12 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if int32((*TTable)(unsafe.Pointer(p)).FeTabType) == TABTYP_NORM { /* A regular table */ - zType = __ccgo_ts + 9067 - zType2 = __ccgo_ts + 13335 + zType = __ccgo_ts + 9192 + zType2 = __ccgo_ts + 13460 } else { /* A view */ - zType = __ccgo_ts + 10805 - zType2 = __ccgo_ts + 13341 + zType = __ccgo_ts + 10930 + zType2 = __ccgo_ts + 13466 } /* If this is a CREATE TABLE xx AS SELECT ..., execute the SELECT ** statement to populate the new table. The root-page number for the @@ -101538,29 +102103,31 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** a schema-lock excludes all other database users, the write-lock would ** be redundant. */ - if pSelect != 0 { /* A table that describes the SELECT results */ + if pSelect != 0 { /* Write cursor on the new table */ if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) (*TParse)(unsafe.Pointer(pParse)).FnErr++ return } - v5 = pParse + 56 - *(*int32)(unsafe.Pointer(v5))++ + v5 = pParse + 52 v4 = *(*int32)(unsafe.Pointer(v5)) - regYield = v4 + *(*int32)(unsafe.Pointer(v5))++ + iCsr = v4 v7 = pParse + 56 *(*int32)(unsafe.Pointer(v7))++ v6 = *(*int32)(unsafe.Pointer(v7)) - regRec = v6 + regYield = v6 v9 = pParse + 56 *(*int32)(unsafe.Pointer(v9))++ v8 = *(*int32)(unsafe.Pointer(v9)) - regRowid = v8 - _ = libc.Int32FromInt32(0) + regRec = v8 + v11 = pParse + 56 + *(*int32)(unsafe.Pointer(v11))++ + v10 = *(*int32)(unsafe.Pointer(v11)) + regRowid = v10 _sqlite3MayAbort(tls, pParse) - _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), int32(1), (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) + _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), iCsr, (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_P2ISREG)) - (*TParse)(unsafe.Pointer(pParse)).FnTab = int32(2) addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { @@ -101571,9 +102138,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr return } _ = libc.Int32FromInt32(0) - v10 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol - (*TTable)(unsafe.Pointer(p)).FnNVCol = v10 - (*TTable)(unsafe.Pointer(p)).FnCol = v10 + v12 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol + (*TTable)(unsafe.Pointer(p)).FnNVCol = v12 + (*TTable)(unsafe.Pointer(p)).FnCol = v12 (*TTable)(unsafe.Pointer(p)).FaCol = (*TTable)(unsafe.Pointer(pSelTab)).FaCol (*TTable)(unsafe.Pointer(pSelTab)).FnCol = 0 (*TTable)(unsafe.Pointer(pSelTab)).FaCol = uintptr(0) @@ -101588,33 +102155,33 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr addrInsLoop = _sqlite3VdbeAddOp1(tls, v, int32(OP_Yield), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSDParm) _sqlite3VdbeAddOp3(tls, v, int32(OP_MakeRecord), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst, (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst, regRec) _sqlite3TableAffinity(tls, v, p, 0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), int32(1), regRowid) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), int32(1), regRec, regRowid) + _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iCsr, regRowid) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iCsr, regRec, regRowid) _sqlite3VdbeGoto(tls, v, addrInsLoop) _sqlite3VdbeJumpHere(tls, v, addrInsLoop) - _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), int32(1)) + _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), iCsr) } /* Compute the complete text of the CREATE statement */ if pSelect != 0 { zStmt = _createTableStmt(tls, db, p) } else { if tabOpts != 0 { - v11 = pParse + 288 + v13 = pParse + 288 } else { - v11 = pEnd + v13 = pEnd } - pEnd2 = v11 + pEnd2 = v13 n = int32(int64((*TToken)(unsafe.Pointer(pEnd2)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) if int32(*(*uint8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pEnd2)).Fz))) != int32(';') { n = int32(uint32(n) + (*TToken)(unsafe.Pointer(pEnd2)).Fn) } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13346, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13471, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) } /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13361, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13486, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) _sqlite3DbFree(tls, db, zStmt) _sqlite3ChangeCookie(tls, pParse, iDb) /* Check to see if we need to create an sqlite_sequence table for @@ -101624,17 +102191,16 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 _ = libc.Int32FromInt32(0) if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).FpSeqTab == uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13459, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13584, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) } } /* Reparse everything to update our internal data structures */ - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13501, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13626, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) /* Test for cycles in generated columns and illegal expressions ** in CHECK constraints and in DEFAULT clauses. */ if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasGenerated) != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13535, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(0x0001), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13660, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13556, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } /* Add the table to the in-memory representation of the database. */ @@ -101654,7 +102220,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** then record a pointer to this table in the main database structure ** so that INSERT can find the table easily. */ _ = libc.Int32FromInt32(0) - if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9589) == 0 { + if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9714) == 0 { _ = libc.Int32FromInt32(0) (*TSchema)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FpSchema)).FpSeqTab = p } @@ -101689,7 +102255,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*uintptr)(unsafe.Pointer(bp + 112)) = uintptr(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if int32((*TParse)(unsafe.Pointer(pParse)).FnVar) > 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13588, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13681, 0) goto create_view_fail } _sqlite3StartTable(tls, pParse, pName1, pName2, isTemp, int32(1), 0, noErr) @@ -101706,7 +102272,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(TF_NoVisibleRowid) /* Never allow rowid in view */ _sqlite3TwoPartName(tls, pParse, pName1, pName2, bp+112) iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(p)).FpSchema) - _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+10805, *(*uintptr)(unsafe.Pointer(bp + 112))) + _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+10930, *(*uintptr)(unsafe.Pointer(bp + 112))) if _sqlite3FixSelect(tls, bp+16, pSelect) != 0 { goto create_view_fail } @@ -101750,6 +102316,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui (*(*TToken)(unsafe.Pointer(bp))).Fn = uint32(1) /* Use sqlite3EndTable() to add the view to the schema table */ _sqlite3EndTable(tls, pParse, uintptr(0), bp, uint32(0), uintptr(0)) + goto create_view_fail create_view_fail: ; _sqlite3SelectDelete(tls, db, pSelect) @@ -101805,7 +102372,7 @@ func _viewGetColumnNames(tls *libc.TLS, pParse uintptr, pTable uintptr) (r int32 ** SELECT * FROM temp.ex1; */ if int32((*TTable)(unsafe.Pointer(pTable)).FnCol) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13624, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13717, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) return int32(1) } _ = libc.Int32FromInt32(0) @@ -101997,7 +102564,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { v = _sqlite3GetVdbe(tls, pParse) r1 = _sqlite3GetTempReg(tls, pParse) if iTable < int32(2) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13654, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13747, 0) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Destroy), iTable, r1, iDb) _sqlite3MayAbort(tls, pParse) @@ -102010,7 +102577,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { ** is in register NNN. See grammar rules associated with the TK_REGISTER ** token for additional information. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13669, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13762, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) _sqlite3ReleaseTempReg(tls, pParse, r1) } @@ -102095,9 +102662,9 @@ func _sqlite3ClearStatTables(tls *libc.TLS, pParse uintptr, iDb int32, zType uin if !(i <= int32(4)) { break } - Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13736, libc.VaList(bp+32, i)) + Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13829, libc.VaList(bp+32, i)) if _sqlite3FindTable(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, bp, zDbName) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11694, libc.VaList(bp+32, zDbName, bp, zType, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11819, libc.VaList(bp+32, zDbName, bp, zType, zName)) } goto _1 _1: @@ -102140,7 +102707,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** move as a result of the drop (can happen in auto-vacuum mode). */ if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13750, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13843, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* Drop all entries in the schema table that refer to the ** table. The program name loops through the schema table and deletes @@ -102149,7 +102716,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** created in the temp database that refers to a table in another ** database. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13795, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13888, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !(isView != 0) && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { _destroyTable(tls, pParse, pTab) } @@ -102184,11 +102751,11 @@ func _sqlite3ReadOnlyShadowTables(tls *libc.TLS, db uintptr) (r int32) { // ** Return true if it is not allowed to drop the given table // */ func _tableMayNotBeDropped(tls *libc.TLS, db uintptr, pTab uintptr) (r int32) { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6534, int32(7)) == 0 { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3427, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6598, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3491, int32(4)) == 0 { return 0 } - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7275, int32(10)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7400, int32(10)) == 0 { return 0 } return int32(1) @@ -102247,9 +102814,9 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6542 + v1 = __ccgo_ts + 6606 } else { - v1 = __ccgo_ts + 6075 + v1 = __ccgo_ts + 6139 } zTab = v1 zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName @@ -102282,18 +102849,18 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if _tableMayNotBeDropped(tls, db, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13862, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13955, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Ensure DROP TABLE is not used on a view, and DROP VIEW is not used ** on a table. */ if isView != 0 && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13890, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13983, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } if !(isView != 0) && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13924, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14017, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Generate code to remove the table from the schema table @@ -102303,11 +102870,12 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) if !(isView != 0) { - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11806, (*TTable)(unsafe.Pointer(pTab)).FzName) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11931, (*TTable)(unsafe.Pointer(pTab)).FzName) _sqlite3FkDropTable(tls, pParse, pName, pTab) } _sqlite3CodeDropTable(tls, pParse, pTab, iDb, isView) } + goto exit_drop_table exit_drop_table: ; _sqlite3SrcListDelete(tls, db, pName) @@ -102351,13 +102919,13 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p goto fk_end } if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13956, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14049, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) goto fk_end } nCol = int32(1) } else { if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14019, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14112, 0) goto fk_end } else { nCol = (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr @@ -102421,7 +102989,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p j++ } if j >= int32((*TTable)(unsafe.Pointer(p)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14113, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14206, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) goto fk_end } if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { @@ -102476,6 +103044,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p FpDfltList uintptr })(unsafe.Pointer(p + 64))).FpFKey = pFKey pFKey = uintptr(0) + goto fk_end fk_end: ; _sqlite3DbFree(tls, db, pFKey) @@ -102684,11 +103253,11 @@ func _sqlite3HasExplicitNulls(tls *libc.TLS, pParse uintptr, pList uintptr) (r i if int32(uint32(*(*uint16)(unsafe.Pointer(pList + 8 + uintptr(i)*32 + 16 + 4))&0x20>>5)) != 0 { sf = (*(*TExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32))).Ffg.FsortFlags if int32(sf) == 0 || int32(sf) == int32(3) { - v2 = __ccgo_ts + 14159 + v2 = __ccgo_ts + 14252 } else { - v2 = __ccgo_ts + 14165 + v2 = __ccgo_ts + 14258 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14170, libc.VaList(bp+8, v2)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14263, libc.VaList(bp+8, v2)) return int32(1) } goto _1 @@ -102770,7 +103339,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = int32(1) } } - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14198, *(*uintptr)(unsafe.Pointer(bp + 96))) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14291, *(*uintptr)(unsafe.Pointer(bp + 96))) if _sqlite3FixSrcList(tls, bp, pTblName) != 0 { /* Because the parser constructs pTblName from a single identifier, ** sqlite3FixSrcList can never fail. */ @@ -102782,7 +103351,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } if iDb == int32(1) && (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema != (*TTable)(unsafe.Pointer(pTab)).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14204, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14297, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { @@ -102799,16 +103368,16 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 _ = libc.Int32FromInt32(0) - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6534, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14254, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6598, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14347, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14282, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14375, 0) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14307, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14400, 0) goto exit_create_index } /* @@ -102830,19 +103399,19 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } _ = libc.Int32FromInt32(0) - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14198, (*TTable)(unsafe.Pointer(pTab)).FzName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14291, (*TTable)(unsafe.Pointer(pTab)).FzName) { goto exit_create_index } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if !((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0) { if _sqlite3FindTable(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14341, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14434, libc.VaList(bp+136, zName)) goto exit_create_index } } if _sqlite3FindIndex(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { if !(ifNotExist != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14375, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14468, libc.VaList(bp+136, zName)) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -102864,7 +103433,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pLoop = (*TIndex)(unsafe.Pointer(pLoop)).FpNext n++ } - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14399, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14492, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) if zName == uintptr(0) { goto exit_create_index } @@ -102882,9 +103451,9 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { zDb = (*TDb)(unsafe.Pointer(pDb)).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6542 + v2 = __ccgo_ts + 6606 } else { - v2 = __ccgo_ts + 6075 + v2 = __ccgo_ts + 6139 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v2, uintptr(0), zDb) != 0 { goto exit_create_index @@ -102913,7 +103482,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u _ = libc.Int32FromInt32(0) _sqlite3ExprListSetSortOrder(tls, pList, sortOrder, -int32(1)) } else { - _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14198) + _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14291) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { goto exit_create_index } @@ -103003,7 +103572,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pCExpr = _sqlite3ExprSkipCollate(tls, (*TExprList_item)(unsafe.Pointer(pListItem)).FpExpr) if int32((*TExpr)(unsafe.Pointer(pCExpr)).Fop) != int32(TK_COLUMN) { if pTab == (*TParse)(unsafe.Pointer(pParse)).FpNewTable { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14422, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14515, 0) goto exit_create_index } if (*TIndex)(unsafe.Pointer(pIndex)).FaColExpr == uintptr(0) { @@ -103160,7 +103729,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u ** explicitly specified behavior for the index. */ if !(int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) || int32((*TIndex)(unsafe.Pointer(pIndex)).FonError) == int32(OE_Default)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14483, libc.VaList(bp+136, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14576, libc.VaList(bp+136, 0)) } if int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) { (*TIndex)(unsafe.Pointer(pIdx)).FonError = (*TIndex)(unsafe.Pointer(pIndex)).FonError @@ -103193,8 +103762,8 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != uintptr(0) { (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14525, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125123)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14618, 0) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125741)) goto exit_create_index } } @@ -103235,11 +103804,11 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* A named index with an explicit CREATE INDEX statement */ if onError == OE_None { - v13 = __ccgo_ts + 1657 + v13 = __ccgo_ts + 1671 } else { - v13 = __ccgo_ts + 14542 + v13 = __ccgo_ts + 14635 } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14550, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14643, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) } else { /* An automatic index created by a PRIMARY KEY or UNIQUE constraint */ /* zStmt = sqlite3MPrintf(""); */ @@ -103247,7 +103816,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* Add an entry in sqlite_schema for this index */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14570, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14663, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) _sqlite3DbFree(tls, db, zStmt) /* Fill the index with data and reparse the schema. Code an OP_Expire ** to invalidate all pre-compiled statements. @@ -103255,7 +103824,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != 0 { _sqlite3RefillIndex(tls, pParse, pIndex, iMem) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14629, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14722, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Expire), 0, int32(1)) } _sqlite3VdbeJumpHere(tls, v, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum)) @@ -103274,6 +103843,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } } /* Clean up before exiting */ + goto exit_create_index exit_create_index: ; if pIndex != 0 { @@ -103424,7 +103994,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pIndex = _sqlite3FindIndex(tls, db, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzName, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) if pIndex == uintptr(0) { if !(ifExists != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14656, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14749, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) _sqlite3ForceNotReadOnly(tls, pParse) @@ -103433,7 +104003,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in goto exit_drop_index } if int32(uint32(*(*uint16)(unsafe.Pointer(pIndex + 100))&0x3>>0)) != SQLITE_IDXTYPE_APPDEF { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14674, libc.VaList(bp+8, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14767, libc.VaList(bp+8, 0)) goto exit_drop_index } iDb = _sqlite3SchemaToIndex(tls, db, (*TIndex)(unsafe.Pointer(pIndex)).FpSchema) @@ -103441,9 +104011,9 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pTab = (*TIndex)(unsafe.Pointer(pIndex)).FpTable zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6542 + v1 = __ccgo_ts + 6606 } else { - v1 = __ccgo_ts + 6075 + v1 = __ccgo_ts + 6139 } zTab = v1 if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_DELETE), zTab, uintptr(0), zDb) != 0 { @@ -103459,12 +104029,13 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in v = _sqlite3GetVdbe(tls, pParse) if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14747, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11802, (*TIndex)(unsafe.Pointer(pIndex)).FzName) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14840, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11927, (*TIndex)(unsafe.Pointer(pIndex)).FzName) _sqlite3ChangeCookie(tls, pParse, iDb) _destroyRootPage(tls, pParse, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum), iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropIndex), iDb, 0, 0, (*TIndex)(unsafe.Pointer(pIndex)).FzName, 0) } + goto exit_drop_index exit_drop_index: ; _sqlite3SrcListDelete(tls, db, pName) @@ -103656,7 +104227,7 @@ func _sqlite3SrcListEnlarge(tls *libc.TLS, pParse uintptr, pSrc uintptr, nExtra nAlloc = int64(2)*int64((*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) + int64(nExtra) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc+nExtra >= int32(SQLITE_MAX_SRCLIST) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14807, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14900, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) return uintptr(0) } if nAlloc > int64(SQLITE_MAX_SRCLIST) { @@ -103893,11 +104464,11 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa db = (*TParse)(unsafe.Pointer(pParse)).Fdb if !(p != 0) && pOnUsing != uintptr(0) && ((*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 || (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpUsing != 0) { if (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 { - v1 = __ccgo_ts + 14843 + v1 = __ccgo_ts + 14936 } else { - v1 = __ccgo_ts + 14846 + v1 = __ccgo_ts + 14939 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14852, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14945, libc.VaList(bp+8, v1)) goto append_from_error } p = _sqlite3SrcListAppend(tls, pParse, p, pTable, pDatabase) @@ -103940,6 +104511,7 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa } } return p + goto append_from_error append_from_error: ; _ = libc.Int32FromInt32(0) @@ -104113,7 +104685,7 @@ func _sqlite3BeginTransaction(tls *libc.TLS, pParse uintptr, type1 int32) { _ = libc.Int32FromInt32(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb _ = libc.Int32FromInt32(0) - if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14888, uintptr(0), uintptr(0)) != 0 { + if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14981, uintptr(0), uintptr(0)) != 0 { return } v = _sqlite3GetVdbe(tls, pParse) @@ -104163,9 +104735,9 @@ func _sqlite3EndTransaction(tls *libc.TLS, pParse uintptr, eType int32) { _ = libc.Int32FromInt32(0) isRollback = libc.BoolInt32(eType == int32(TK_ROLLBACK)) if isRollback != 0 { - v1 = __ccgo_ts + 14894 + v1 = __ccgo_ts + 14987 } else { - v1 = __ccgo_ts + 14903 + v1 = __ccgo_ts + 14996 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), v1, uintptr(0), uintptr(0)) != 0 { return @@ -104198,9 +104770,9 @@ func _sqlite3Savepoint(tls *libc.TLS, pParse uintptr, op int32, pName uintptr) { } var _az = [3]uintptr{ - 0: __ccgo_ts + 14888, - 1: __ccgo_ts + 14910, - 2: __ccgo_ts + 14894, + 0: __ccgo_ts + 14981, + 1: __ccgo_ts + 15003, + 2: __ccgo_ts + 14987, } // C documentation @@ -104220,7 +104792,7 @@ func _sqlite3OpenTempDatabase(tls *libc.TLS, pParse uintptr) (r int32) { if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt == uintptr(0) && !((*TParse)(unsafe.Pointer(pParse)).Fexplain != 0) { rc = _sqlite3BtreeOpen(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), db, bp, 0, _flags) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14918, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15011, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = rc return int32(1) } @@ -104411,7 +104983,7 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable _sqlite3StrAccumInit(tls, bp, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), 0, *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136))) if (*TIndex)(unsafe.Pointer(pIdx)).FaColExpr != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+14988, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+15081, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) } else { j = 0 for { @@ -104421,10 +104993,10 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx _ = libc.Int32FromInt32(0) zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)))*16))).FzCnName if j != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+14999, int32(2)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+15092, int32(2)) } Xsqlite3_str_appendall(tls, bp, (*TTable)(unsafe.Pointer(pTab)).FzName) - Xsqlite3_str_append(tls, bp, __ccgo_ts+1670, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+1684, int32(1)) Xsqlite3_str_appendall(tls, bp, zCol) goto _1 _1: @@ -104453,10 +105025,10 @@ func _sqlite3RowidConstraint(tls *libc.TLS, pParse uintptr, onError int32, pTab var zMsg uintptr _, _ = rc, zMsg if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12390, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12515, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(6)< libc.BoolInt32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15118, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15211, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } return 0 } @@ -105585,11 +106157,11 @@ func _sqlite3IsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr, pTrigger ui bp := tls.Alloc(16) defer tls.Free(16) if _tabIsReadOnly(tls, pParse, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15151, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15244, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && (pTrigger == uintptr(0) || (*TTrigger)(unsafe.Pointer(pTrigger)).FbReturning != 0 && (*TTrigger)(unsafe.Pointer(pTrigger)).FpNext == uintptr(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15180, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15273, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -106014,8 +106586,9 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** invoke the callback function. */ if memCnt != 0 { - _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15218) + _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15311) } + goto delete_from_cleanup delete_from_cleanup: ; _sqlite3AuthContextPop(tls, bp+8) @@ -106162,7 +106735,7 @@ func _sqlite3GenerateRowDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, pTri v3 = 0 } _sqlite3VdbeAddOp2(tls, v, int32(OP_Delete), iDataCur, v3) - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11591) { + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11716) { _sqlite3VdbeAppendP4(tls, v, pTab, -int32(5)) } if int32(eMode) != ONEPASS_OFF { @@ -106480,11 +107053,11 @@ func _typeofFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } var _azType2 = [5]uintptr{ - 0: __ccgo_ts + 6315, - 1: __ccgo_ts + 6310, - 2: __ccgo_ts + 8206, - 3: __ccgo_ts + 8201, - 4: __ccgo_ts + 1643, + 0: __ccgo_ts + 6379, + 1: __ccgo_ts + 6374, + 2: __ccgo_ts + 8331, + 3: __ccgo_ts + 8326, + 4: __ccgo_ts + 1657, } // C documentation @@ -106601,7 +107174,7 @@ func _absFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { /* IMP: R-31676-45509 If X is the integer -9223372036854775808 ** then abs(X) throws an integer overflow error since there is no ** equivalent positive 64-bit two complement value. */ - Xsqlite3_result_error(tls, context, __ccgo_ts+15231, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15324, -int32(1)) return } iVal = -iVal @@ -106696,11 +107269,13 @@ func _instrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } Xsqlite3_result_int(tls, context, N) + goto endInstr endInstr: ; Xsqlite3_value_free(tls, pC1) Xsqlite3_value_free(tls, pC2) return + goto endInstrOOM endInstrOOM: ; Xsqlite3_result_error_nomem(tls, context) @@ -106918,7 +107493,7 @@ func _roundFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } *(*float64)(unsafe.Pointer(bp)) = float64(int64(*(*float64)(unsafe.Pointer(bp)) + v1)) } else { - zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15248, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) + zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15341, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) if zBuf == uintptr(0) { Xsqlite3_result_error_nomem(tls, context) return @@ -107502,7 +108077,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { */ nPat = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) if nPat > *(*int32)(unsafe.Pointer(db + 136 + 8*4)) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15254, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15347, -int32(1)) return } if argc == int32(3) { @@ -107514,7 +108089,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { return } if _sqlite3Utf8CharLen(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), -int32(1)) != int32(1) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15287, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15380, -int32(1)) return } escape = _sqlite3Utf8Read(tls, bp+8) @@ -107596,7 +108171,7 @@ func _errlogFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { defer tls.Free(16) _ = argc _ = context - Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) + Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) } // C documentation @@ -107686,17 +108261,17 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_FLOAT): r1 = Xsqlite3_value_double(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15332, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15425, libc.VaList(bp+16, r1)) zVal = Xsqlite3_str_value(tls, pStr) if zVal != 0 { _sqlite3AtoF(tls, zVal, bp, int32((*TStrAccum)(unsafe.Pointer(pStr)).FnChar), uint8(SQLITE_UTF8)) if r1 != *(*float64)(unsafe.Pointer(bp)) { Xsqlite3_str_reset(tls, pStr) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15340, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15433, libc.VaList(bp+16, r1)) } } case int32(SQLITE_INTEGER): - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1413, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1432, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) case int32(SQLITE_BLOB): zBlob = Xsqlite3_value_blob(tls, pValue) nBlob = int64(Xsqlite3_value_bytes(tls, pValue)) @@ -107724,10 +108299,10 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { } case int32(SQLITE_TEXT): zArg = Xsqlite3_value_text(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15348, libc.VaList(bp+16, zArg)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15441, libc.VaList(bp+16, zArg)) default: _ = libc.Int32FromInt32(0) - Xsqlite3_str_append(tls, pStr, __ccgo_ts+1658, int32(4)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+1672, int32(4)) break } } @@ -107966,7 +108541,7 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { var v3 uint32 var _ /* zHex at bp+0 */ uintptr _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, ch, d, nHex, nPass, p, pBlob, zPass, v1, v2, v3, v4, v5, v6 - zPass = __ccgo_ts + 1657 + zPass = __ccgo_ts + 1671 nPass = 0 *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) nHex = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) @@ -108022,10 +108597,12 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { *(*Tu8)(unsafe.Pointer(v6)) = uint8(int32(_sqlite3HexToInt(tls, int32(c)))< 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fapprox != 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fovrfl != 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+15231, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15324, -int32(1)) } else { if !(_sqlite3IsOverflow(tls, (*TSumCtx)(unsafe.Pointer(p)).FrErr) != 0) { Xsqlite3_result_double(tls, context, (*TSumCtx)(unsafe.Pointer(p)).FrSum+(*TSumCtx)(unsafe.Pointer(p)).FrErr) @@ -109051,7 +109628,7 @@ func _groupConcatValue(tls *libc.TLS, context uintptr) { func _sqlite3RegisterPerConnectionBuiltinFunctions(tls *libc.TLS, db uintptr) { var rc int32 _ = rc - rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15356, int32(2)) + rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15449, int32(2)) _ = libc.Int32FromInt32(0) if rc == int32(SQLITE_NOMEM) { _sqlite3OomFault(tls, db) @@ -109081,8 +109658,8 @@ func _sqlite3RegisterLikeFunctions(tls *libc.TLS, db uintptr, caseSensitive int3 if !(nArg <= int32(3)) { break } - _sqlite3CreateFunc(tls, db, __ccgo_ts+15362, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15362, nArg, uint8(SQLITE_UTF8), uint8(0)) + _sqlite3CreateFunc(tls, db, __ccgo_ts+15455, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15455, nArg, uint8(SQLITE_UTF8), uint8(0)) *(*Tu32)(unsafe.Pointer(pDef + 4)) |= uint32(flags) *(*Tu32)(unsafe.Pointer(pDef + 4)) &= uint32(^libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)) goto _1 @@ -109402,562 +109979,562 @@ var _aBuiltinFunc = [110]TFuncDef{ FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_implies_nonnull_row))), - FzName: __ccgo_ts + 15367, + FzName: __ccgo_ts + 15460, }, 1: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_compare))), - FzName: __ccgo_ts + 15387, + FzName: __ccgo_ts + 15480, }, 2: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_implies_expr))), - FzName: __ccgo_ts + 15400, + FzName: __ccgo_ts + 15493, }, 3: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_affinity))), - FzName: __ccgo_ts + 15418, + FzName: __ccgo_ts + 15511, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15427, + FzName: __ccgo_ts + 15520, }, 5: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15435, + FzName: __ccgo_ts + 15528, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15435, + FzName: __ccgo_ts + 15528, }, 7: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15450, + FzName: __ccgo_ts + 15543, }, 8: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15476, + FzName: __ccgo_ts + 15569, }, 9: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15501, + FzName: __ccgo_ts + 15594, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15510, + FzName: __ccgo_ts + 15603, }, 11: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15521, + FzName: __ccgo_ts + 15614, }, 12: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_sqlite_offset))), - FzName: __ccgo_ts + 15528, + FzName: __ccgo_ts + 15621, }, 13: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15542, + FzName: __ccgo_ts + 15635, }, 14: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15542, + FzName: __ccgo_ts + 15635, }, 15: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15548, + FzName: __ccgo_ts + 15641, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15548, + FzName: __ccgo_ts + 15641, }, 17: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 18: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 19: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15559, + FzName: __ccgo_ts + 15652, }, 20: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15559, + FzName: __ccgo_ts + 15652, }, 21: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15559, + FzName: __ccgo_ts + 15652, }, 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15563, + FzName: __ccgo_ts + 15656, }, 23: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15563, + FzName: __ccgo_ts + 15656, }, 24: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15563, + FzName: __ccgo_ts + 15656, }, 25: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15567, + FzName: __ccgo_ts + 15660, }, 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15574, + FzName: __ccgo_ts + 15667, }, 27: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_LENGTH)), - FzName: __ccgo_ts + 15582, + FzName: __ccgo_ts + 15675, }, 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_BYTELEN)), - FzName: __ccgo_ts + 15589, + FzName: __ccgo_ts + 15682, }, 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15602, + FzName: __ccgo_ts + 15695, }, 30: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15608, + FzName: __ccgo_ts + 15701, }, 31: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15615, + FzName: __ccgo_ts + 15708, }, 32: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15622, + FzName: __ccgo_ts + 15715, }, 33: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15630, + FzName: __ccgo_ts + 15723, }, 34: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15635, + FzName: __ccgo_ts + 15728, }, 35: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15639, + FzName: __ccgo_ts + 15732, }, 36: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15639, + FzName: __ccgo_ts + 15732, }, 37: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15645, + FzName: __ccgo_ts + 15738, }, 38: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15651, + FzName: __ccgo_ts + 15744, }, 39: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15657, + FzName: __ccgo_ts + 15750, }, 40: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15661, + FzName: __ccgo_ts + 15754, }, 41: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15661, + FzName: __ccgo_ts + 15754, }, 42: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15667, + FzName: __ccgo_ts + 15760, }, 43: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15667, + FzName: __ccgo_ts + 15760, }, 44: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15674, + FzName: __ccgo_ts + 15767, }, 45: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15674, + FzName: __ccgo_ts + 15767, }, 46: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15674, + FzName: __ccgo_ts + 15767, }, 47: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15684, + FzName: __ccgo_ts + 15777, }, 48: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15691, + FzName: __ccgo_ts + 15784, }, 49: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15698, + FzName: __ccgo_ts + 15791, }, 50: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15709, + FzName: __ccgo_ts + 15802, }, 51: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15716, + FzName: __ccgo_ts + 15809, }, 52: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15731, + FzName: __ccgo_ts + 15824, }, 53: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15748, + FzName: __ccgo_ts + 15841, }, 54: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15759, + FzName: __ccgo_ts + 15852, }, 55: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15765, + FzName: __ccgo_ts + 15858, }, 56: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15783, + FzName: __ccgo_ts + 15876, }, 57: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15791, + FzName: __ccgo_ts + 15884, }, 58: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15805, + FzName: __ccgo_ts + 15898, }, 59: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15813, + FzName: __ccgo_ts + 15906, }, 60: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15822, + FzName: __ccgo_ts + 15915, }, 61: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15822, + FzName: __ccgo_ts + 15915, }, 62: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15829, + FzName: __ccgo_ts + 15922, }, 63: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15829, + FzName: __ccgo_ts + 15922, }, 64: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15839, + FzName: __ccgo_ts + 15932, }, 65: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15843, + FzName: __ccgo_ts + 15936, }, 66: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15849, + FzName: __ccgo_ts + 15942, }, 67: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_COUNT) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15853, + FzName: __ccgo_ts + 15946, }, 68: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15853, + FzName: __ccgo_ts + 15946, }, 69: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15859, + FzName: __ccgo_ts + 15952, }, 70: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15859, + FzName: __ccgo_ts + 15952, }, 71: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15872, + FzName: __ccgo_ts + 15965, }, 72: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE) | libc.Int32FromInt32(SQLITE_FUNC_CASE)), FpUserData: uintptr(unsafe.Pointer(&_globInfo)), - FzName: __ccgo_ts + 15883, + FzName: __ccgo_ts + 15976, }, 73: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15362, + FzName: __ccgo_ts + 15455, }, 74: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15362, + FzName: __ccgo_ts + 15455, }, 75: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6739, + FzName: __ccgo_ts + 6803, }, 76: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6739, + FzName: __ccgo_ts + 6803, }, 77: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15888, + FzName: __ccgo_ts + 15981, }, 78: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15893, + FzName: __ccgo_ts + 1244, }, 79: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15901, + FzName: __ccgo_ts + 1252, }, 80: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15907, + FzName: __ccgo_ts + 15986, }, 81: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15913, + FzName: __ccgo_ts + 15992, }, 82: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15916, + FzName: __ccgo_ts + 15995, }, 83: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15920, + FzName: __ccgo_ts + 15999, }, 84: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15926, + FzName: __ccgo_ts + 16005, }, 85: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15916, + FzName: __ccgo_ts + 15995, }, 86: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15931, + FzName: __ccgo_ts + 16010, }, 87: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15935, + FzName: __ccgo_ts + 16014, }, 88: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15939, + FzName: __ccgo_ts + 16018, }, 89: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15945, + FzName: __ccgo_ts + 16024, }, 90: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15949, + FzName: __ccgo_ts + 16028, }, 91: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15954, + FzName: __ccgo_ts + 16033, }, 92: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15959, + FzName: __ccgo_ts + 16038, }, 93: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15964, + FzName: __ccgo_ts + 16043, }, 94: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15970, + FzName: __ccgo_ts + 16049, }, 95: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15974, + FzName: __ccgo_ts + 16053, }, 96: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15978, + FzName: __ccgo_ts + 16057, }, 97: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15982, + FzName: __ccgo_ts + 16061, }, 98: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15987, + FzName: __ccgo_ts + 16066, }, 99: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15992, + FzName: __ccgo_ts + 16071, }, 100: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15997, + FzName: __ccgo_ts + 16076, }, 101: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16003, + FzName: __ccgo_ts + 16082, }, 102: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16009, + FzName: __ccgo_ts + 16088, }, 103: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16015, + FzName: __ccgo_ts + 16094, }, 104: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16020, + FzName: __ccgo_ts + 16099, }, 105: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16028, + FzName: __ccgo_ts + 16107, }, 106: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16036, + FzName: __ccgo_ts + 16115, }, 107: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16039, + FzName: __ccgo_ts + 16118, }, 108: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 6739, + FzName: __ccgo_ts + 6803, }, 109: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_iif))), - FzName: __ccgo_ts + 16044, + FzName: __ccgo_ts + 16123, }, } @@ -110438,7 +111015,7 @@ func _sqlite3FkLocateIndex(tls *libc.TLS, pParse uintptr, pParent uintptr, pFKey } if !(pIdx != 0) { if !((*TParse)(unsafe.Pointer(pParse)).FdisableTriggers != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16048, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16127, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) } _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiCol) return int32(1) @@ -111570,11 +112147,11 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr break } *(*TToken)(unsafe.Pointer(bp + 16)) = TToken{ - Fz: __ccgo_ts + 6605, + Fz: __ccgo_ts + 6669, Fn: uint32(3), } /* Literal "old" token */ *(*TToken)(unsafe.Pointer(bp + 32)) = TToken{ - Fz: __ccgo_ts + 6601, + Fz: __ccgo_ts + 6665, Fn: uint32(3), } /* tFromCol = OLD.tToCol */ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -111641,7 +112218,7 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr nFrom = _sqlite3Strlen30(tls, zFrom) if action == int32(OE_Restrict) { iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5234) + pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5298) if pRaise != 0 { (*TExpr)(unsafe.Pointer(pRaise)).FaffExpr = uint8(OE_Abort) } @@ -112249,7 +112826,7 @@ func _sqlite3ComputeGeneratedColumns(tls *libc.TLS, pParse uintptr, iRegStore in } } if pRedo != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8171, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8296, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) } (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 } @@ -112516,6 +113093,226 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { } } +// C documentation +// +// /* +// ** If argument pVal is a Select object returned by an sqlite3MultiValues() +// ** that was able to use the co-routine optimization, finish coding the +// ** co-routine. +// */ +func _sqlite3MultiValuesEnd(tls *libc.TLS, pParse uintptr, pVal uintptr) { + var pItem uintptr + _ = pItem + if pVal != 0 && (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pVal)).FpSrc)).FnSrc > 0 { + pItem = (*TSelect)(unsafe.Pointer(pVal)).FpSrc + 8 + _sqlite3VdbeEndCoroutine(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn) + _sqlite3VdbeJumpHere(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FaddrFillSub-int32(1)) + } +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are constant. +// */ +func _exprListIsConstant(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + if 0 == _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are both constant and have no affinity. +// */ +func _exprListIsNoAffinity(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + var pExpr uintptr + _, _ = ii, pExpr + if _exprListIsConstant(tls, pParse, pRow) == 0 { + return 0 + } + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + pExpr = (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if 0 != int32(_sqlite3ExprAffinity(tls, pExpr)) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** This function is called by the parser for the second and subsequent +// ** rows of a multi-row VALUES clause. Argument pLeft is the part of +// ** the VALUES clause already parsed, argument pRow is the vector of values +// ** for the new row. The Select object returned represents the complete +// ** VALUES clause, including the new row. +// ** +// ** There are two ways in which this may be achieved - by incremental +// ** coding of a co-routine (the "co-routine" method) or by returning a +// ** Select object equivalent to the following (the "UNION ALL" method): +// ** +// ** "pLeft UNION ALL SELECT pRow" +// ** +// ** If the VALUES clause contains a lot of rows, this compound Select +// ** object may consume a lot of memory. +// ** +// ** When the co-routine method is used, each row that will be returned +// ** by the VALUES clause is coded into part of a co-routine as it is +// ** passed to this function. The returned Select object is equivalent to: +// ** +// ** SELECT * FROM ( +// ** Select object to read co-routine +// ** ) +// ** +// ** The co-routine method is used in most cases. Exceptions are: +// ** +// ** a) If the current statement has a WITH clause. This is to avoid +// ** statements like: +// ** +// ** WITH cte AS ( VALUES('x'), ('y') ... ) +// ** SELECT * FROM cte AS a, cte AS b; +// ** +// ** This will not work, as the co-routine uses a hard-coded register +// ** for its OP_Yield instructions, and so it is not possible for two +// ** cursors to iterate through it concurrently. +// ** +// ** b) The schema is currently being parsed (i.e. the VALUES clause is part +// ** of a schema item like a VIEW or TRIGGER). In this case there is no VM +// ** being generated when parsing is taking place, and so generating +// ** a co-routine is not possible. +// ** +// ** c) There are non-constant expressions in the VALUES clause (e.g. +// ** the VALUES clause is part of a correlated sub-query). +// ** +// ** d) One or more of the values in the first row of the VALUES clause +// ** has an affinity (i.e. is a CAST expression). This causes problems +// ** because the complex rules SQLite uses (see function +// ** sqlite3SubqueryColumnTypes() in select.c) to determine the effective +// ** affinity of such a column for all rows require access to all values in +// ** the column simultaneously. +// */ +func _sqlite3MultiValues(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRow uintptr) (r uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var f, v1 int32 + var p, pRet, pSelect, v, v2 uintptr + var _ /* dest at bp+0 */ TSelectDest + _, _, _, _, _, _, _ = f, p, pRet, pSelect, v, v1, v2 + if (*TParse)(unsafe.Pointer(pParse)).FbHasWith != 0 || (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy != 0 || _exprListIsConstant(tls, pParse, pRow) == 0 || (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 && _exprListIsNoAffinity(tls, pParse, (*TSelect)(unsafe.Pointer(pLeft)).FpEList) == 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { + /* The co-routine method cannot be used. Fall back to UNION ALL. */ + pSelect = uintptr(0) + f = libc.Int32FromInt32(SF_Values) | libc.Int32FromInt32(SF_MultiValue) + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc != 0 { + _sqlite3MultiValuesEnd(tls, pParse, pLeft) + f = int32(SF_Values) + } else { + if (*TSelect)(unsafe.Pointer(pLeft)).FpPrior != 0 { + /* In this case set the SF_MultiValue flag only if it was set on pLeft */ + f = int32(uint32(f) & (*TSelect)(unsafe.Pointer(pLeft)).FselFlags) + } + } + pSelect = _sqlite3SelectNew(tls, pParse, pRow, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(f), uintptr(0)) + *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) + if pSelect != 0 { + (*TSelect)(unsafe.Pointer(pSelect)).Fop = uint8(TK_ALL) + (*TSelect)(unsafe.Pointer(pSelect)).FpPrior = pLeft + pLeft = pSelect + } + } else { + p = uintptr(0) /* SrcItem that reads from co-routine */ + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 { + /* Co-routine has not yet been started and the special Select object + ** that accesses the co-routine has not yet been created. This block + ** does both those things. */ + v = _sqlite3GetVdbe(tls, pParse) + pRet = _sqlite3SelectNew(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) + /* Ensure the database schema has been read. This is to ensure we have + ** the correct text encoding. */ + if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmDbFlags&uint32(DBFLAG_SchemaKnownOk) == uint32(0) { + _sqlite3ReadSchema(tls, pParse) + } + if pRet != 0 { + (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pRet)).FpSrc)).FnSrc = int32(1) + (*TSelect)(unsafe.Pointer(pRet)).FpPrior = (*TSelect)(unsafe.Pointer(pLeft)).FpPrior + (*TSelect)(unsafe.Pointer(pRet)).Fop = (*TSelect)(unsafe.Pointer(pLeft)).Fop + (*TSelect)(unsafe.Pointer(pLeft)).FpPrior = uintptr(0) + (*TSelect)(unsafe.Pointer(pLeft)).Fop = uint8(TK_SELECT) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + p = (*TSelect)(unsafe.Pointer(pRet)).FpSrc + 8 + (*TSrcItem)(unsafe.Pointer(p)).FpSelect = pLeft + libc.SetBitFieldPtr16Uint32(p+60+4, libc.Uint32FromInt32(1), 5, 0x20) + (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + v2 = pParse + 56 + *(*int32)(unsafe.Pointer(v2))++ + v1 = *(*int32)(unsafe.Pointer(v2)) + (*TSrcItem)(unsafe.Pointer(p)).FregReturn = v1 + (*TSrcItem)(unsafe.Pointer(p)).FiCursor = -int32(1) + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1)) = uint32(2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn, 0, (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub) + _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + /* Allocate registers for the output of the co-routine. Do so so + ** that there are two unused registers immediately before those + ** used by the co-routine. This allows the code in sqlite3Insert() + ** to use these registers directly, instead of copying the output + ** of the co-routine to a separate array for processing. */ + (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(3) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpEList)).FnExpr + *(*int32)(unsafe.Pointer(pParse + 56)) += int32(2) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst + *(*Tu32)(unsafe.Pointer(pLeft + 4)) |= uint32(SF_MultiValue) + _sqlite3Select(tls, pParse, pLeft, bp) + (*TSrcItem)(unsafe.Pointer(p)).FregResult = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst + _ = libc.Int32FromInt32(0) + pLeft = pRet + } + } else { + p = (*TSelect)(unsafe.Pointer(pLeft)).FpSrc + 8 + _ = libc.Int32FromInt32(0) + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1))++ + } + if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { + _ = libc.Int32FromInt32(0) + if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p)).FpSelect)).FpEList)).FnExpr != (*TExprList)(unsafe.Pointer(pRow)).FnExpr { + _sqlite3SelectWrongNumTermsError(tls, pParse, (*TSrcItem)(unsafe.Pointer(p)).FpSelect) + } else { + _sqlite3ExprCodeExprList(tls, pParse, pRow, (*TSrcItem)(unsafe.Pointer(p)).FregResult, 0, uint8(0)) + _sqlite3VdbeAddOp1(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Yield), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + } + } + _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pRow) + } + return pLeft +} + // C documentation // // /* @@ -112618,27 +113415,27 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uintptr, pColumn uintptr, onError int32, pUpsert uintptr) { bp := tls.Alloc(160) defer tls.Free(160) - var aRegIdx, db, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, v, v13, v16, v18, v6, v9 uintptr - var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v12, v15, v17, v19, v23, v24, v5, v7, v8 int32 + var aRegIdx, db, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, v, v10, v14, v17, v19, v7 uintptr + var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v13, v16, v18, v20, v24, v25, v5, v6, v8, v9 int32 var appendFlag, bIdListInOrder, useTempTable, withoutRowid Tu8 - var colFlags, v21 Tu32 + var colFlags, v22 Tu32 var _ /* dest at bp+8 */ TSelectDest var _ /* iDataCur at bp+0 */ int32 var _ /* iIdxCur at bp+4 */ int32 var _ /* isReplace at bp+112 */ int32 var _ /* sNC at bp+56 */ TNameContext var _ /* tmask at bp+48 */ int32 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v12, v13, v15, v16, v17, v18, v19, v21, v23, v24, v5, v6, v7, v8, v9 /* Number of columns in the data */ - nHidden = 0 /* Number of hidden columns if TABLE is virtual */ - *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ - *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ - ipkColumn = -int32(1) /* Label for the end of the insertion loop */ - srcTab = 0 /* Data comes from this temporary cursor if >=0 */ - addrInsTop = 0 /* Jump to label "D" */ - addrCont = 0 /* Index of database holding TABLE */ - useTempTable = uint8(0) /* Store SELECT results in intermediate table */ - appendFlag = uint8(0) /* True if IDLIST is in table order */ - pList = uintptr(0) /* Register in which to store next column */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v10, v13, v14, v16, v17, v18, v19, v20, v22, v24, v25, v5, v6, v7, v8, v9 /* Number of columns in the data */ + nHidden = 0 /* Number of hidden columns if TABLE is virtual */ + *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ + *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ + ipkColumn = -int32(1) /* Label for the end of the insertion loop */ + srcTab = 0 /* Data comes from this temporary cursor if >=0 */ + addrInsTop = 0 /* Jump to label "D" */ + addrCont = 0 /* Index of database holding TABLE */ + useTempTable = uint8(0) /* Store SELECT results in intermediate table */ + appendFlag = uint8(0) /* True if IDLIST is in table order */ + pList = uintptr(0) /* Register in which to store next column */ /* Register allocations */ regFromSelect = 0 /* Base register for data coming from SELECT */ regAutoinc = 0 /* Register holding the AUTOINCREMENT counter */ @@ -112785,7 +113582,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _ = libc.Int32FromInt32(0) } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_STORED)|libc.Int32FromInt32(COLFLAG_VIRTUAL)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16093, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16172, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto insert_cleanup } break @@ -112800,7 +113597,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i bIdListInOrder = uint8(0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16134, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16213, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto insert_cleanup } @@ -112817,31 +113614,49 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** co-routine is the common header to the 3rd and 4th templates. */ if pSelect != 0 { /* Result code */ - v6 = pParse + 56 - *(*int32)(unsafe.Pointer(v6))++ - v5 = *(*int32)(unsafe.Pointer(v6)) - regYield = v5 - addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) - _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) - _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) - if bIdListInOrder != 0 { - v7 = regData + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc)).FnSrc == int32(1) && int32(uint32(*(*uint16)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + 60 + 4))&0x20>>5)) != 0 && (*TSelect)(unsafe.Pointer(pSelect)).FpPrior == uintptr(0) { + pItem = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSDParm = (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn + regFromSelect = (*TSrcItem)(unsafe.Pointer(pItem)).FregResult + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FpEList)).FnExpr + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+16245, libc.VaList(bp+128, pItem)) + if bIdListInOrder != 0 && nColumn == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { + regData = regFromSelect + regRowid = regData - int32(1) + if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { + v5 = int32(1) + } else { + v5 = 0 + } + regIns = regRowid - v5 + } } else { - v7 = 0 - } - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v7 - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) - rc = _sqlite3Select(tls, pParse, pSelect, bp+8) - regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst - _ = libc.Int32FromInt32(0) - if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { - goto insert_cleanup + v7 = pParse + 56 + *(*int32)(unsafe.Pointer(v7))++ + v6 = *(*int32)(unsafe.Pointer(v7)) /* Top of the co-routine */ + regYield = v6 + addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) + _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) + if bIdListInOrder != 0 { + v8 = regData + } else { + v8 = 0 + } + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) + rc = _sqlite3Select(tls, pParse, pSelect, bp+8) + regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst + _ = libc.Int32FromInt32(0) + if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { + goto insert_cleanup + } + _ = libc.Int32FromInt32(0) + _sqlite3VdbeEndCoroutine(tls, v, regYield) + _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ + _ = libc.Int32FromInt32(0) + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr } - _ = libc.Int32FromInt32(0) - _sqlite3VdbeEndCoroutine(tls, v, regYield) - _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ - _ = libc.Int32FromInt32(0) - nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr /* Set useTempTable to TRUE if the result of the SELECT statement ** should be written into a temporary table (template 4). Set to ** FALSE if each output row of the SELECT can be written directly into @@ -112855,10 +113670,10 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin useTempTable = uint8(1) } if useTempTable != 0 { /* Label "L" */ - v9 = pParse + 52 - v8 = *(*int32)(unsafe.Pointer(v9)) - *(*int32)(unsafe.Pointer(v9))++ - srcTab = v8 + v10 = pParse + 52 + v9 = *(*int32)(unsafe.Pointer(v10)) + *(*int32)(unsafe.Pointer(v10))++ + srcTab = v9 regRec = _sqlite3GetTempReg(tls, pParse) regTempRowid = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp2(tls, v, int32(OP_OpenEphemeral), srcTab, nColumn) @@ -112900,8 +113715,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { ipkColumn-- } - goto _10 - _10: + goto _11 + _11: ; i-- } @@ -112921,28 +113736,28 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_NOINSERT) != 0 { nHidden++ } - goto _11 - _11: + goto _12 + _12: ; i++ } } if nColumn != int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16166, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16253, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) goto insert_cleanup } } if pColumn != uintptr(0) && nColumn != (*TIdList)(unsafe.Pointer(pColumn)).FnId { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16218, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16305, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) goto insert_cleanup } /* Initialize the count of rows to be inserted */ if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&(uint64(libc.Int32FromInt32(0x00001))<= 0 { /* tag-20191021-001: If the INTEGER PRIMARY KEY is being generated by the ** SELECT, go ahead and copy the value into the rowid slot now, so that @@ -113058,18 +113873,18 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** using excess space. The file format definition requires this extra ** NULL - we cannot optimize further by skipping the column completely */ _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) - goto _20 + goto _21 } - v21 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) - colFlags = v21 - if v21&uint32(COLFLAG_NOINSERT) != uint32(0) { + v22 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) + colFlags = v22 + if v22&uint32(COLFLAG_NOINSERT) != uint32(0) { nHidden++ if colFlags&uint32(COLFLAG_VIRTUAL) != uint32(0) { /* Virtual columns do not participate in OP_MakeRecord. So back up ** iRegStore by one slot to compensate for the iRegStore++ in the ** outer for() loop */ iRegStore-- - goto _20 + goto _21 } else { if colFlags&uint32(COLFLAG_STORED) != uint32(0) { /* Stored columns are computed later. But if there are BEFORE @@ -113079,13 +113894,13 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if *(*int32)(unsafe.Pointer(bp + 48))&int32(TRIGGER_BEFORE) != 0 { _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) } - goto _20 + goto _21 } else { if pColumn == uintptr(0) { /* Hidden columns that are not explicitly named in the INSERT ** get there default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } } } @@ -113097,8 +113912,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if !(j < (*TIdList)(unsafe.Pointer(pColumn)).FnId && *(*int32)(unsafe.Pointer(pColumn + 8 + uintptr(j)*16 + 8)) != i) { break } - goto _22 - _22: + goto _23 + _23: ; j++ } @@ -113106,14 +113921,14 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin /* A column not named in the insert column list gets its ** default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } k = j } else { if nColumn == 0 { /* This is INSERT INTO ... DEFAULT VALUES. Load the default value. */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } else { k = i - nHidden } @@ -113130,16 +113945,16 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin y = _sqlite3ExprCodeTarget(tls, pParse, pX, iRegStore) if y != iRegStore { if (*TExpr)(unsafe.Pointer(pX)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) { - v23 = int32(OP_Copy) + v24 = int32(OP_Copy) } else { - v23 = int32(OP_SCopy) + v24 = int32(OP_SCopy) } - _sqlite3VdbeAddOp2(tls, v, v23, y, iRegStore) + _sqlite3VdbeAddOp2(tls, v, v24, y, iRegStore) } } } - goto _20 - _20: + goto _21 + _21: ; i++ iRegStore++ @@ -113252,11 +114067,11 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VtabMakeWritable(tls, pParse, pTab) _sqlite3VdbeAddOp4(tls, v, int32(OP_VUpdate), int32(1), int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+int32(2), regIns, pVTab, -int32(11)) if onError == int32(OE_Default) { - v24 = int32(OE_Abort) + v25 = int32(OE_Abort) } else { - v24 = onError + v25 = onError } - _sqlite3VdbeChangeP5(tls, v, uint16(v24)) + _sqlite3VdbeChangeP5(tls, v, uint16(v25)) _sqlite3MayAbort(tls, pParse) } else { *(*int32)(unsafe.Pointer(bp + 112)) = 0 /* True to use OPFLAG_SEEKRESULT */ @@ -113299,6 +114114,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VdbeJumpHere(tls, v, addrInsTop) } } + goto insert_end insert_end: ; /* Update the sqlite_sequence table by storing the content of the @@ -113314,8 +114130,9 @@ insert_end: ** invoke the callback function. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16310) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16397) } + goto insert_cleanup insert_cleanup: ; _sqlite3SrcListDelete(tls, db, pTabList) @@ -113712,7 +114529,7 @@ func _sqlite3GenerateConstraintChecks(tls *libc.TLS, pParse uintptr, pTab uintpt case int32(OE_Rollback): fallthrough case int32(OE_Fail): - zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12390, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12515, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) _sqlite3VdbeAddOp3(tls, v, int32(OP_HaltIfNull), libc.Int32FromInt32(SQLITE_CONSTRAINT)|libc.Int32FromInt32(5)<= 0 && !(int32(*(*uint8)(unsafe.Pointer(zFile + uintptr(iFile)))) == libc.Int32FromUint8('/'))) { @@ -115987,7 +116805,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp iFile-- } iFile++ - if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16359, int32(3)) == 0 { + if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16446, int32(3)) == 0 { iFile += int32(3) } iEntry = int32(8) @@ -116007,7 +116825,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp ; iFile++ } - libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16363, uint64(6)) + libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16450, uint64(6)) zEntry = zAltEntry xInit = _sqlite3OsDlSym(tls, pVfs, handle, zEntry) } @@ -116019,7 +116837,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v7 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16369, libc.VaList(bp+16, zEntry, zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16456, libc.VaList(bp+16, zEntry, zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -116034,7 +116852,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp return SQLITE_OK } if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16412, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16499, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3OsDlClose(tls, pVfs, handle) @@ -116055,6 +116873,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*int32)(unsafe.Pointer(v9))++ *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaExtension + uintptr(v8)*8)) = handle return SQLITE_OK + goto extension_not_found extension_not_found: ; if pzErrMsg != 0 { @@ -116064,7 +116883,7 @@ extension_not_found: *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v10 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16444, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16531, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -116073,7 +116892,7 @@ extension_not_found: /* Shared library endings to try if zFile cannot be loaded as written */ var _azEndings = [1]uintptr{ - 0: __ccgo_ts + 16324, + 0: __ccgo_ts + 16411, } func Xsqlite3_load_extension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintptr, pzErrMsg uintptr) (r int32) { @@ -116308,7 +117127,7 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { rc = v2 } if v3 && v2 != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16481, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16568, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) go1 = 0 } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -116362,63 +117181,63 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { // ** result column is different from the name of the pragma // */ var _pragCName = [57]uintptr{ - 0: __ccgo_ts + 5490, - 1: __ccgo_ts + 16520, - 2: __ccgo_ts + 9067, - 3: __ccgo_ts + 16524, - 4: __ccgo_ts + 16529, - 5: __ccgo_ts + 16532, - 6: __ccgo_ts + 16542, - 7: __ccgo_ts + 16552, - 8: __ccgo_ts + 16558, - 9: __ccgo_ts + 16562, - 10: __ccgo_ts + 16567, - 11: __ccgo_ts + 16572, - 12: __ccgo_ts + 16580, - 13: __ccgo_ts + 16591, - 14: __ccgo_ts + 16594, - 15: __ccgo_ts + 16601, - 16: __ccgo_ts + 16562, - 17: __ccgo_ts + 16567, - 18: __ccgo_ts + 16608, - 19: __ccgo_ts + 16613, - 20: __ccgo_ts + 16616, - 21: __ccgo_ts + 16623, - 22: __ccgo_ts + 16558, - 23: __ccgo_ts + 16562, - 24: __ccgo_ts + 16629, - 25: __ccgo_ts + 16634, - 26: __ccgo_ts + 16639, - 27: __ccgo_ts + 16562, - 28: __ccgo_ts + 16643, - 29: __ccgo_ts + 16567, - 30: __ccgo_ts + 16651, - 31: __ccgo_ts + 16655, - 32: __ccgo_ts + 16660, - 33: __ccgo_ts + 11806, - 34: __ccgo_ts + 11802, - 35: __ccgo_ts + 16666, - 36: __ccgo_ts + 16671, - 37: __ccgo_ts + 16676, - 38: __ccgo_ts + 16520, - 39: __ccgo_ts + 16562, - 40: __ccgo_ts + 16681, - 41: __ccgo_ts + 16688, - 42: __ccgo_ts + 16695, - 43: __ccgo_ts + 9067, - 44: __ccgo_ts + 16703, - 45: __ccgo_ts + 5493, - 46: __ccgo_ts + 16709, - 47: __ccgo_ts + 16520, - 48: __ccgo_ts + 16562, - 49: __ccgo_ts + 16714, - 50: __ccgo_ts + 16719, - 51: __ccgo_ts + 15916, - 52: __ccgo_ts + 16724, - 53: __ccgo_ts + 16737, - 54: __ccgo_ts + 16746, - 55: __ccgo_ts + 16753, - 56: __ccgo_ts + 16764, + 0: __ccgo_ts + 5554, + 1: __ccgo_ts + 16607, + 2: __ccgo_ts + 9192, + 3: __ccgo_ts + 16611, + 4: __ccgo_ts + 16616, + 5: __ccgo_ts + 16619, + 6: __ccgo_ts + 16629, + 7: __ccgo_ts + 16639, + 8: __ccgo_ts + 16645, + 9: __ccgo_ts + 16649, + 10: __ccgo_ts + 16654, + 11: __ccgo_ts + 16659, + 12: __ccgo_ts + 16667, + 13: __ccgo_ts + 16678, + 14: __ccgo_ts + 16681, + 15: __ccgo_ts + 16688, + 16: __ccgo_ts + 16649, + 17: __ccgo_ts + 16654, + 18: __ccgo_ts + 16695, + 19: __ccgo_ts + 16700, + 20: __ccgo_ts + 16703, + 21: __ccgo_ts + 16710, + 22: __ccgo_ts + 16645, + 23: __ccgo_ts + 16649, + 24: __ccgo_ts + 16716, + 25: __ccgo_ts + 16721, + 26: __ccgo_ts + 16726, + 27: __ccgo_ts + 16649, + 28: __ccgo_ts + 16730, + 29: __ccgo_ts + 16654, + 30: __ccgo_ts + 16738, + 31: __ccgo_ts + 16742, + 32: __ccgo_ts + 16747, + 33: __ccgo_ts + 11931, + 34: __ccgo_ts + 11927, + 35: __ccgo_ts + 16753, + 36: __ccgo_ts + 16758, + 37: __ccgo_ts + 16763, + 38: __ccgo_ts + 16607, + 39: __ccgo_ts + 16649, + 40: __ccgo_ts + 16768, + 41: __ccgo_ts + 16775, + 42: __ccgo_ts + 16782, + 43: __ccgo_ts + 9192, + 44: __ccgo_ts + 16790, + 45: __ccgo_ts + 5557, + 46: __ccgo_ts + 16796, + 47: __ccgo_ts + 16607, + 48: __ccgo_ts + 16649, + 49: __ccgo_ts + 16801, + 50: __ccgo_ts + 16806, + 51: __ccgo_ts + 15995, + 52: __ccgo_ts + 16811, + 53: __ccgo_ts + 16824, + 54: __ccgo_ts + 16833, + 55: __ccgo_ts + 16840, + 56: __ccgo_ts + 16851, } // C documentation @@ -116437,191 +117256,191 @@ type PragmaName = TPragmaName var _aPragmaName = [66]TPragmaName{ 0: { - FzName: __ccgo_ts + 16772, + FzName: __ccgo_ts + 16859, FePragTyp: uint8(PragTyp_ANALYSIS_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 1: { - FzName: __ccgo_ts + 16787, + FzName: __ccgo_ts + 16874, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_APPLICATION_ID), }, 2: { - FzName: __ccgo_ts + 16802, + FzName: __ccgo_ts + 16889, FePragTyp: uint8(PragTyp_AUTO_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 3: { - FzName: __ccgo_ts + 16814, + FzName: __ccgo_ts + 16901, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_AutoIndex), }, 4: { - FzName: __ccgo_ts + 16830, + FzName: __ccgo_ts + 16917, FePragTyp: uint8(PragTyp_BUSY_TIMEOUT), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(56), FnPragCName: uint8(1), }, 5: { - FzName: __ccgo_ts + 16753, + FzName: __ccgo_ts + 16840, FePragTyp: uint8(PragTyp_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 6: { - FzName: __ccgo_ts + 16843, + FzName: __ccgo_ts + 16930, FePragTyp: uint8(PragTyp_CACHE_SPILL), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 7: { - FzName: __ccgo_ts + 16855, + FzName: __ccgo_ts + 16942, FePragTyp: uint8(PragTyp_CASE_SENSITIVE_LIKE), FmPragFlg: uint8(PragFlg_NoColumns), }, 8: { - FzName: __ccgo_ts + 16875, + FzName: __ccgo_ts + 16962, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CellSizeCk), }, 9: { - FzName: __ccgo_ts + 16891, + FzName: __ccgo_ts + 16978, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CkptFullFSync), }, 10: { - FzName: __ccgo_ts + 16912, + FzName: __ccgo_ts + 16999, FePragTyp: uint8(PragTyp_COLLATION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(38), FnPragCName: uint8(2), }, 11: { - FzName: __ccgo_ts + 16927, + FzName: __ccgo_ts + 17014, FePragTyp: uint8(PragTyp_COMPILE_OPTIONS), FmPragFlg: uint8(PragFlg_Result0), }, 12: { - FzName: __ccgo_ts + 16943, + FzName: __ccgo_ts + 17030, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00001)) << libc.Int32FromInt32(32), }, 13: { - FzName: __ccgo_ts + 16957, + FzName: __ccgo_ts + 17044, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_DATA_VERSION), }, 14: { - FzName: __ccgo_ts + 16970, + FzName: __ccgo_ts + 17057, FePragTyp: uint8(PragTyp_DATABASE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(47), FnPragCName: uint8(3), }, 15: { - FzName: __ccgo_ts + 16984, + FzName: __ccgo_ts + 17071, FePragTyp: uint8(PragTyp_DEFAULT_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiPragCName: uint8(55), FnPragCName: uint8(1), }, 16: { - FzName: __ccgo_ts + 17003, + FzName: __ccgo_ts + 17090, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_DeferFKs), }, 17: { - FzName: __ccgo_ts + 17022, + FzName: __ccgo_ts + 17109, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_NullCallback), }, 18: { - FzName: __ccgo_ts + 17045, + FzName: __ccgo_ts + 17132, FePragTyp: uint8(PragTyp_ENCODING), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 19: { - FzName: __ccgo_ts + 17054, + FzName: __ccgo_ts + 17141, FePragTyp: uint8(PragTyp_FOREIGN_KEY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(43), FnPragCName: uint8(4), }, 20: { - FzName: __ccgo_ts + 17072, + FzName: __ccgo_ts + 17159, FePragTyp: uint8(PragTyp_FOREIGN_KEY_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FnPragCName: uint8(8), }, 21: { - FzName: __ccgo_ts + 17089, + FzName: __ccgo_ts + 17176, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ForeignKeys), }, 22: { - FzName: __ccgo_ts + 17102, + FzName: __ccgo_ts + 17189, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), }, 23: { - FzName: __ccgo_ts + 17117, + FzName: __ccgo_ts + 17204, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullColNames), }, 24: { - FzName: __ccgo_ts + 17135, + FzName: __ccgo_ts + 17222, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullFSync), }, 25: { - FzName: __ccgo_ts + 17145, + FzName: __ccgo_ts + 17232, FePragTyp: uint8(PragTyp_FUNCTION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(27), FnPragCName: uint8(6), }, 26: { - FzName: __ccgo_ts + 17159, + FzName: __ccgo_ts + 17246, FePragTyp: uint8(PragTyp_HARD_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 27: { - FzName: __ccgo_ts + 17175, + FzName: __ccgo_ts + 17262, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_IgnoreChecks), }, 28: { - FzName: __ccgo_ts + 17200, + FzName: __ccgo_ts + 17287, FePragTyp: uint8(PragTyp_INCREMENTAL_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_NoColumns)), }, 29: { - FzName: __ccgo_ts + 17219, + FzName: __ccgo_ts + 17306, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), FnPragCName: uint8(3), }, 30: { - FzName: __ccgo_ts + 17230, + FzName: __ccgo_ts + 17317, FePragTyp: uint8(PragTyp_INDEX_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(38), FnPragCName: uint8(5), }, 31: { - FzName: __ccgo_ts + 17241, + FzName: __ccgo_ts + 17328, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), @@ -116629,146 +117448,146 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 32: { - FzName: __ccgo_ts + 17253, + FzName: __ccgo_ts + 17340, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 33: { - FzName: __ccgo_ts + 17269, + FzName: __ccgo_ts + 17356, FePragTyp: uint8(PragTyp_JOURNAL_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 34: { - FzName: __ccgo_ts + 17282, + FzName: __ccgo_ts + 17369, FePragTyp: uint8(PragTyp_JOURNAL_SIZE_LIMIT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 35: { - FzName: __ccgo_ts + 17301, + FzName: __ccgo_ts + 17388, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_LegacyAlter), }, 36: { - FzName: __ccgo_ts + 17320, + FzName: __ccgo_ts + 17407, FePragTyp: uint8(PragTyp_LOCKING_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 37: { - FzName: __ccgo_ts + 17333, + FzName: __ccgo_ts + 17420, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 38: { - FzName: __ccgo_ts + 17348, + FzName: __ccgo_ts + 17435, FePragTyp: uint8(PragTyp_MMAP_SIZE), }, 39: { - FzName: __ccgo_ts + 17358, + FzName: __ccgo_ts + 17445, FePragTyp: uint8(PragTyp_MODULE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 40: { - FzName: __ccgo_ts + 17370, + FzName: __ccgo_ts + 17457, FePragTyp: uint8(PragTyp_OPTIMIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_NeedSchema)), }, 41: { - FzName: __ccgo_ts + 17379, + FzName: __ccgo_ts + 17466, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 42: { - FzName: __ccgo_ts + 17390, + FzName: __ccgo_ts + 17477, FePragTyp: uint8(PragTyp_PAGE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 43: { - FzName: __ccgo_ts + 17400, + FzName: __ccgo_ts + 17487, FePragTyp: uint8(PragTyp_PRAGMA_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 44: { - FzName: __ccgo_ts + 17412, + FzName: __ccgo_ts + 17499, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_QueryOnly), }, 45: { - FzName: __ccgo_ts + 17423, + FzName: __ccgo_ts + 17510, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 46: { - FzName: __ccgo_ts + 17435, + FzName: __ccgo_ts + 17522, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00004)) << libc.Int32FromInt32(32), }, 47: { - FzName: __ccgo_ts + 17452, + FzName: __ccgo_ts + 17539, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_RecTriggers), }, 48: { - FzName: __ccgo_ts + 17471, + FzName: __ccgo_ts + 17558, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ReverseOrder), }, 49: { - FzName: __ccgo_ts + 17497, + FzName: __ccgo_ts + 17584, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_SCHEMA_VERSION), }, 50: { - FzName: __ccgo_ts + 17512, + FzName: __ccgo_ts + 17599, FePragTyp: uint8(PragTyp_SECURE_DELETE), FmPragFlg: uint8(PragFlg_Result0), }, 51: { - FzName: __ccgo_ts + 17526, + FzName: __ccgo_ts + 17613, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ShortColNames), }, 52: { - FzName: __ccgo_ts + 17545, + FzName: __ccgo_ts + 17632, FePragTyp: uint8(PragTyp_SHRINK_MEMORY), FmPragFlg: uint8(PragFlg_NoColumns), }, 53: { - FzName: __ccgo_ts + 17559, + FzName: __ccgo_ts + 17646, FePragTyp: uint8(PragTyp_SOFT_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 54: { - FzName: __ccgo_ts + 17575, + FzName: __ccgo_ts + 17662, FePragTyp: uint8(PragTyp_SYNCHRONOUS), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 55: { - FzName: __ccgo_ts + 17587, + FzName: __ccgo_ts + 17674, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), FnPragCName: uint8(6), }, 56: { - FzName: __ccgo_ts + 17598, + FzName: __ccgo_ts + 17685, FePragTyp: uint8(PragTyp_TABLE_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1)), FiPragCName: uint8(15), FnPragCName: uint8(6), }, 57: { - FzName: __ccgo_ts + 17609, + FzName: __ccgo_ts + 17696, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), @@ -116776,45 +117595,45 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 58: { - FzName: __ccgo_ts + 17621, + FzName: __ccgo_ts + 17708, FePragTyp: uint8(PragTyp_TEMP_STORE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 59: { - FzName: __ccgo_ts + 17632, + FzName: __ccgo_ts + 17719, FePragTyp: uint8(PragTyp_TEMP_STORE_DIRECTORY), FmPragFlg: uint8(PragFlg_NoColumns1), }, 60: { - FzName: __ccgo_ts + 17653, + FzName: __ccgo_ts + 17740, FePragTyp: uint8(PragTyp_THREADS), FmPragFlg: uint8(PragFlg_Result0), }, 61: { - FzName: __ccgo_ts + 17661, + FzName: __ccgo_ts + 17748, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_TrustedSchema), }, 62: { - FzName: __ccgo_ts + 17676, + FzName: __ccgo_ts + 17763, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_USER_VERSION), }, 63: { - FzName: __ccgo_ts + 17689, + FzName: __ccgo_ts + 17776, FePragTyp: uint8(PragTyp_WAL_AUTOCHECKPOINT), }, 64: { - FzName: __ccgo_ts + 17708, + FzName: __ccgo_ts + 17795, FePragTyp: uint8(PragTyp_WAL_CHECKPOINT), FmPragFlg: uint8(PragFlg_NeedSchema), FiPragCName: uint8(50), FnPragCName: uint8(3), }, 65: { - FzName: __ccgo_ts + 17723, + FzName: __ccgo_ts + 17810, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(SQLITE_WriteSchema) | libc.Int32FromInt32(SQLITE_NoSchemaError)), @@ -116826,6 +117645,31 @@ var _aPragmaName = [66]TPragmaName{ /************** End of pragma.h **********************************************/ /************** Continuing where we left off in pragma.c *********************/ +/* +** When the 0x10 bit of PRAGMA optimize is set, any ANALYZE commands +** will be run with an analysis_limit set to the lessor of the value of +** the following macro or to the actual analysis_limit if it is non-zero, +** in order to prevent PRAGMA optimize from running for too long. +** +** The value of 2000 is chosen emperically so that the worst-case run-time +** for PRAGMA optimize does not exceed 100 milliseconds against a variety +** of test databases on a RaspberryPI-4 compiled using -Os and without +** -DSQLITE_DEBUG. Of course, your mileage may vary. For the purpose of +** this paragraph, "worst-case" means that ANALYZE ends up being +** run on every table in the database. The worst case typically only +** happens if PRAGMA optimize is run on a database file for which ANALYZE +** has not been previously run and the 0x10000 flag is included so that +** all tables are analyzed. The usual case for PRAGMA optimize is that +** no ANALYZE commands will be run at all, or if any ANALYZE happens it +** will be against a single table, so that expected timing for PRAGMA +** optimize on a PI-4 is more like 1 millisecond or less with the 0x10000 +** flag or less than 100 microseconds without the 0x10000 flag. +** +** An analysis limit of 2000 is almost always sufficient for the query +** planner to fully characterize an index. The additional accuracy from +** a larger analysis is not usually helpful. + */ + // C documentation // // /* @@ -116915,10 +117759,10 @@ func _sqlite3GetBoolean(tls *libc.TLS, z uintptr, dflt Tu8) (r Tu8) { // */ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { if z != 0 { - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17739) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17826) { return int32(PAGER_LOCKINGMODE_EXCLUSIVE) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17749) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17836) { return PAGER_LOCKINGMODE_NORMAL } } @@ -116936,13 +117780,13 @@ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { func _getAutoVacuum(tls *libc.TLS, z uintptr) (r int32) { var i, v1 int32 _, _ = i, v1 - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8227) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8352) { return BTREE_AUTOVACUUM_NONE } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17756) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17843) { return int32(BTREE_AUTOVACUUM_FULL) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17761) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17848) { return int32(BTREE_AUTOVACUUM_INCR) } i = _sqlite3Atoi(tls, z) @@ -116965,10 +117809,10 @@ func _getTempStore(tls *libc.TLS, z uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(z))) <= int32('2') { return int32(*(*uint8)(unsafe.Pointer(z))) - int32('0') } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+16714) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+16801) == 0 { return int32(1) } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+17773) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+17860) == 0 { return int32(2) } else { return 0 @@ -116990,7 +117834,7 @@ func _invalidateTempStorage(tls *libc.TLS, pParse uintptr) (r int32) { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt != uintptr(0) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || _sqlite3BtreeTxnState(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) != SQLITE_TXN_NONE { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17780, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17867, 0) return int32(SQLITE_ERROR) } _sqlite3BtreeClose(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) @@ -117125,15 +117969,15 @@ func _actionName(tls *libc.TLS, action Tu8) (r uintptr) { _ = zName switch int32(action) { case int32(OE_SetNull): - zName = __ccgo_ts + 17842 + zName = __ccgo_ts + 17929 case int32(OE_SetDflt): - zName = __ccgo_ts + 17851 + zName = __ccgo_ts + 17938 case int32(OE_Cascade): - zName = __ccgo_ts + 17863 + zName = __ccgo_ts + 17950 case int32(OE_Restrict): - zName = __ccgo_ts + 17871 + zName = __ccgo_ts + 17958 default: - zName = __ccgo_ts + 17880 + zName = __ccgo_ts + 17967 _ = libc.Int32FromInt32(0) break } @@ -117162,12 +118006,12 @@ func _sqlite3JournalModename(tls *libc.TLS, eMode int32) (r uintptr) { } var _azModeName = [6]uintptr{ - 0: __ccgo_ts + 17890, - 1: __ccgo_ts + 17897, - 2: __ccgo_ts + 17905, - 3: __ccgo_ts + 17909, - 4: __ccgo_ts + 17773, - 5: __ccgo_ts + 17918, + 0: __ccgo_ts + 17977, + 1: __ccgo_ts + 17984, + 2: __ccgo_ts + 17992, + 3: __ccgo_ts + 17996, + 4: __ccgo_ts + 17860, + 5: __ccgo_ts + 18005, } // C documentation @@ -117233,15 +118077,15 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s goto _1 } if (*TFuncDef)(unsafe.Pointer(p)).FxValue != uintptr(0) { - zType = __ccgo_ts + 17943 + zType = __ccgo_ts + 18030 } else { if (*TFuncDef)(unsafe.Pointer(p)).FxFinalize != uintptr(0) { - zType = __ccgo_ts + 17945 + zType = __ccgo_ts + 18032 } else { - zType = __ccgo_ts + 7626 + zType = __ccgo_ts + 7751 } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+17947, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18034, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) goto _1 _1: ; @@ -117250,9 +118094,9 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s } var _azEnc = [4]uintptr{ - 1: __ccgo_ts + 17922, - 2: __ccgo_ts + 17927, - 3: __ccgo_ts + 17935, + 1: __ccgo_ts + 18009, + 2: __ccgo_ts + 18014, + 3: __ccgo_ts + 18022, } // C documentation @@ -117293,15 +118137,15 @@ func _integrityCheckResultRow(tls *libc.TLS, v uintptr) (r int32) { func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pValue uintptr, minusFlag int32) { bp := tls.Alloc(240) defer tls.Free(240) - var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, mxIdx, n, nHidden, nIdx, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v60, v62, v63, v64, v65, v68 int32 - var aOp, aOp1, aOp2, aOp3, aOp4, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v61, v66, v8 uintptr + var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v48, v50, v64, v66, v67, v68, v69, v72, v75, v76 int32 + var aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v65, v70, v8 uintptr var azOrigin [3]uintptr var cnum Ti16 var enc Tu8 var iPrior Tsqlite3_int64 + var iRange, szThreshold TLogEst var mask Tu64 var opMask Tu32 - var szThreshold TLogEst var _ /* N at bp+136 */ Tsqlite3_int64 var _ /* N at bp+144 */ Tsqlite3_int64 var _ /* N at bp+152 */ Tsqlite3_int64 @@ -117322,7 +118166,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p var _ /* size at bp+60 */ int32 var _ /* sz at bp+64 */ Tsqlite3_int64 var _ /* x at bp+40 */ Ti64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iPrior, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, mxIdx, n, nHidden, nIdx, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v5, v60, v61, v62, v63, v64, v65, v66, v68, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iPrior, iRange, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v48, v5, v50, v64, v65, v66, v67, v68, v69, v70, v72, v75, v76, v8 zLeft = uintptr(0) /* Nul-terminated UTF-8 string */ zRight = uintptr(0) /* Nul-terminated UTF-8 string , or NULL */ zDb = uintptr(0) /* return value form SQLITE_FCNTL_PRAGMA */ @@ -117351,7 +118195,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p return } if minusFlag != 0 { - zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+17954, libc.VaList(bp+176, pValue)) + zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+18041, libc.VaList(bp+176, pValue)) } else { zRight = _sqlite3NameFromToken(tls, db, pValue) } @@ -117395,7 +118239,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } if rc != int32(SQLITE_NOTFOUND) { if (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0] != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3804, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3868, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) Xsqlite3_free(tls, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0]) } (*TParse)(unsafe.Pointer(pParse)).FnErr++ @@ -117502,7 +118346,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p b = -int32(1) _ = libc.Int32FromInt32(0) if zRight != 0 { - if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+17958) == 0 { + if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18045) == 0 { b = int32(2) } else { b = int32(_sqlite3GetBoolean(tls, zRight, uint8(0))) @@ -117573,7 +118417,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p */ fallthrough case int32(PragTyp_LOCKING_MODE): - zRet = __ccgo_ts + 17749 + zRet = __ccgo_ts + 17836 eMode = _getLockingMode(tls, zRight) if (*TToken)(unsafe.Pointer(pId2)).Fn == uint32(0) && eMode == -int32(1) { /* Simple "PRAGMA locking_mode;" statement. This is a query for @@ -117603,7 +118447,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } _ = libc.Int32FromInt32(0) if eMode == int32(PAGER_LOCKINGMODE_EXCLUSIVE) { - zRet = __ccgo_ts + 17739 + zRet = __ccgo_ts + 17826 } _returnSingleText(tls, v, zRet) break @@ -117898,7 +118742,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if *(*uint8)(unsafe.Pointer(zRight)) != 0 { rc = _sqlite3OsAccess(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, zRight, int32(SQLITE_ACCESS_READWRITE), bp+72) if rc != SQLITE_OK || *(*int32)(unsafe.Pointer(bp + 72)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17963, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18050, 0) Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) goto pragma_out } @@ -117908,7 +118752,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } Xsqlite3_free(tls, Xsqlite3_temp_directory) if *(*uint8)(unsafe.Pointer(zRight)) != 0 { - Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+176, zRight)) + Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+176, zRight)) } else { Xsqlite3_temp_directory = uintptr(0) } @@ -117930,7 +118774,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _returnSingleInt(tls, v, int64(int32((*TDb)(unsafe.Pointer(pDb)).Fsafety_level)-int32(1))) } else { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17988, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18075, 0) } else { if iDb != int32(1) { iLevel = (int32(_getSafetyLevel(tls, zRight, 0, uint8(1))) + int32(1)) & int32(PAGER_SYNCHRONOUS_MASK) @@ -117963,7 +118807,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if mask == uint64(SQLITE_DeferFKs) { (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = 0 } - if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18041) == 0 { + if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18128) == 0 { /* IMP: R-60817-01178 If the argument is "RESET" then schema ** writing is disabled (as with "PRAGMA writable_schema=OFF") and, ** in addition, the schema is reloaded. */ @@ -118046,9 +118890,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - v14 = __ccgo_ts + 18047 + v14 = __ccgo_ts + 18134 } else { - v14 = __ccgo_ts + 18055 + v14 = __ccgo_ts + 18142 } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 { v15 = int32(1) @@ -118060,7 +118904,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v16 = *(*uintptr)(unsafe.Pointer(pColExpr + 8)) } - _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1657), v15, v16, k, isHidden)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1671), v15, v16, k, isHidden)) goto _12 _12: ; @@ -118119,7 +118963,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pTab1 = (*THashElem)(unsafe.Pointer(k1)).Fdata if int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) == 0 { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18062, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18149, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 80)) = uintptr(0) Xsqlite3_prepare(tls, db, zSql, -int32(1), bp+80, uintptr(0)) @@ -118127,7 +118971,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3DbFree(tls, db, zSql) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1627, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1641, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) } pHash = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FpSchema + 8 @@ -118149,19 +118993,19 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _20 } if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10805 + zType = __ccgo_ts + 10930 } else { if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 13053 + zType = __ccgo_ts + 13178 } else { if (*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Shadow) != 0 { - zType = __ccgo_ts + 18078 + zType = __ccgo_ts + 18165 } else { - zType = __ccgo_ts + 9067 + zType = __ccgo_ts + 9192 } } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18085, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18172, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) goto _20 _20: ; @@ -118209,9 +119053,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v22 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab3)).FaCol + uintptr(cnum)*16))).FzCnName } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18092, libc.VaList(bp+176, i1, int32(cnum), v22)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18179, libc.VaList(bp+176, i1, int32(cnum), v22)) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18097, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) + _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18184, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) } _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), int32(1), (*TParse)(unsafe.Pointer(pParse)).FnMem) goto _21 @@ -118235,11 +119079,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } azOrigin = [3]uintptr{ - 0: __ccgo_ts + 18102, - 1: __ccgo_ts + 18104, - 2: __ccgo_ts + 16591, + 0: __ccgo_ts + 18189, + 1: __ccgo_ts + 18191, + 2: __ccgo_ts + 16678, } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18106, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18193, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) goto _23 _23: ; @@ -118259,7 +119103,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _24 } _ = libc.Int32FromInt32(0) - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18112, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18199, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) goto _24 _24: ; @@ -118276,7 +119120,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pColl = (*THashElem)(unsafe.Pointer(p)).Fdata v26 = i4 i4++ - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18116, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18203, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) goto _25 _25: ; @@ -118328,7 +119172,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } pMod = (*THashElem)(unsafe.Pointer(j1)).Fdata - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7626, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7751, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) goto _30 _30: ; @@ -118340,7 +119184,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i6 < int32(libc.Uint64FromInt64(1584)/libc.Uint64FromInt64(24))) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7626, libc.VaList(bp+176, _aPragmaName[i6].FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7751, libc.VaList(bp+176, _aPragmaName[i6].FzName)) goto _31 _31: ; @@ -118366,7 +119210,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(j2 < (*TFKey)(unsafe.Pointer(pFK)).FnCol) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18119, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18128)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18206, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18215)) goto _32 _32: ; @@ -118512,7 +119356,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regResult+int32(1)) } - _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18133, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) + _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18220, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), regResult, int32(4)) _sqlite3VdbeResolveLabel(tls, v, addrOk) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 96))) @@ -118582,7 +119426,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p /* Set the maximum error count */ *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) if zRight != 0 { - if _sqlite3GetInt32(tls, zRight, bp+104) != 0 { + if _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pValue)).Fz, bp+104) != 0 { if *(*int32)(unsafe.Pointer(bp + 104)) <= 0 { *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) } @@ -118602,8 +119446,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i9 < (*Tsqlite3)(unsafe.Pointer(db)).FnDb) { break } /* Array of root page numbers of all btrees */ - cnt = 0 /* Number of entries in aRoot[] */ - mxIdx = 0 /* Maximum number of indexes for any table */ + cnt = 0 /* Number of entries in aRoot[] */ if libc.Bool(OMIT_TEMPDB != 0) && i9 == int32(1) { goto _40 } @@ -118645,9 +119488,6 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pIdx3 = (*TIndex)(unsafe.Pointer(pIdx3)).FpNext nIdx++ } - if nIdx > mxIdx { - mxIdx = nIdx - } goto _41 _41: ; @@ -118703,16 +119543,78 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } *(*int32)(unsafe.Pointer(aRoot)) = cnt /* Make sure sufficient number of registers have been allocated */ - _sqlite3TouchRegister(tls, pParse, int32(8)+mxIdx) + _sqlite3TouchRegister(tls, pParse, int32(8)+cnt) _sqlite3ClearTempRegCache(tls, pParse) /* Do the b-tree integrity checks */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(2), cnt, int32(1), aRoot, -int32(14)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(1), cnt, int32(8), aRoot, -int32(14)) _sqlite3VdbeChangeP5(tls, v, uint16(uint8(i9))) addr1 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(2)) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18137, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18224, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(2), int32(3), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, addr1) + /* Check that the indexes all have the right number of rows */ + if pObjTab != 0 { + v48 = int32(1) + } else { + v48 = 0 + } + cnt = v48 + _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18248) + x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst + for { + if !(x2 != 0) { + break + } + iTab = 0 + pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab9 { + goto _49 + } + if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + v50 = cnt + cnt++ + iTab = v50 + } else { + iTab = cnt + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx5 + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { + break + } + iTab++ + goto _51 + _51: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + } + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if (*TIndex)(unsafe.Pointer(pIdx5)).FpPartIdxWhere == uintptr(0) { + addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+cnt, 0, int32(8)+iTab) + _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) + _integrityCheckResultRow(tls, v) + _sqlite3VdbeJumpHere(tls, v, addr1) + } + cnt++ + goto _52 + _52: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + goto _49 + _49: + ; + x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext + } /* Make sure all the indices are constructed correctly. */ x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst @@ -118720,39 +119622,39 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata pPrior = uintptr(0) r1 = -int32(1) /* Maximum non-virtual column number */ - if pObjTab != 0 && pObjTab != pTab9 { - goto _48 + if pObjTab != 0 && pObjTab != pTab10 { + goto _53 } - if !(int32((*TTable)(unsafe.Pointer(pTab9)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { - goto _48 + if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _53 } - if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { pPk1 = uintptr(0) r2 = 0 } else { - pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab9) + pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab10) r2 = _sqlite3GetTempRange(tls, pParse, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), int32(1), r2, r2+int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)-int32(1)) } - _sqlite3OpenTableAndIndices(tls, pParse, pTab9, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) + _sqlite3OpenTableAndIndices(tls, pParse, pTab10, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) /* reg[7] counts the number of entries in the table. ** reg[8+i] counts the number of entries in the i-th index */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(7)) j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(8)+j4) /* index entries counter */ - goto _49 - _49: + goto _54 + _54: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } _ = libc.Int32FromInt32(0) @@ -118765,29 +119667,29 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** by the OP_IsType code, so it is a required step. */ _ = libc.Int32FromInt32(0) - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { mxCol = -int32(1) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { + if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { mxCol++ } - goto _50 - _50: + goto _55 + _55: ; j4++ } - if mxCol == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { + if mxCol == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { mxCol-- } } else { /* COLFLAG_VIRTUAL columns are not included in the WITHOUT ROWID ** PK index column-count, so there is no need to account for them ** in this case. */ - mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab9))).FnColumn) - int32(1) + mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab10))).FnColumn) - int32(1) } if mxCol >= 0 { _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 108)), mxCol, int32(3)) @@ -118797,7 +119699,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if pPk1 != 0 { a1 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 108)), 0, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), r2) - zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18161, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18277, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a1) @@ -118808,8 +119710,8 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprCodeLoadIndexColumn(tls, pParse, pPk1, *(*int32)(unsafe.Pointer(bp + 108)), j4, r2+j4) - goto _51 - _51: + goto _56 + _56: ; j4++ } @@ -118824,15 +119726,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** (4) Datatype for numeric columns in non-STRICT tables must not ** be a TEXT value that can be losslessly converted to numeric. */ - bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_Strict) != uint32(0)) + bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_Strict) != uint32(0)) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - pCol1 = (*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ - if j4 == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { - goto _52 + pCol1 = (*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ + if j4 == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { + goto _57 } if bStrict != 0 { doTypeCheck = libc.BoolInt32(int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4)) > int32(COLTYPE_ANY)) @@ -118840,28 +119742,28 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p doTypeCheck = libc.BoolInt32(int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) > int32(SQLITE_AFF_BLOB)) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf>>0)) == 0 && !(doTypeCheck != 0) { - goto _52 + goto _57 } /* Compute the operands that will be needed for OP_IsType */ p4 = int32(SQLITE_NULL) if int32((*TColumn)(unsafe.Pointer(pCol1)).FcolFlags)&int32(COLFLAG_VIRTUAL) != 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) p11 = -int32(1) p3 = int32(3) } else { if (*TColumn)(unsafe.Pointer(pCol1)).FiDflt != 0 { *(*uintptr)(unsafe.Pointer(bp + 120)) = uintptr(0) - _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab9, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol1)).Faffinity, bp+120) + _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab10, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol1)).Faffinity, bp+120) if *(*uintptr)(unsafe.Pointer(bp + 120)) != 0 { p4 = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) } } p11 = *(*int32)(unsafe.Pointer(bp + 108)) - if !((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { - p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab9), int16(j4))) + if !((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { + p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab10), int16(j4))) } else { - p3 = int32(_sqlite3TableColumnToStorage(tls, pTab9, int16(j4))) + p3 = int32(_sqlite3TableColumnToStorage(tls, pTab10, int16(j4))) } } labelError = _sqlite3VdbeMakeLabel(tls, pParse) @@ -118878,10 +119780,10 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** is REAL, we have to load the actual data using OP_Column ** to reliably determine if the value is a NULL. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), p11, p3, int32(3)) - _sqlite3ColumnDefault(tls, v, pTab9, j4, int32(3)) + _sqlite3ColumnDefault(tls, v, pTab10, j4, int32(3)) jmp3 = _sqlite3VdbeAddOp2(tls, v, int32(OP_NotNull), int32(3), labelOk) } - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18197, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18313, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) if doTypeCheck != 0 { _sqlite3VdbeGoto(tls, v, labelError) @@ -118895,7 +119797,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _ = libc.Int32FromInt32(0) _sqlite3VdbeChangeP5(tls, v, uint16(_aStdTypeMask[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)])) - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18217, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18333, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) == int32(SQLITE_AFF_TEXT) { @@ -118903,7 +119805,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** NULL, TEXT, or BLOB. */ _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18239, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18355, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) >= int32(SQLITE_AFF_NUMERIC) { @@ -118912,12 +119814,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1b)) /* NULL, INT, FLOAT, or BLOB */ if p11 >= 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18262, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18378, -int32(1)) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), -int32(1), labelOk, int32(3), p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18264, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18380, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } } @@ -118925,14 +119827,14 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeResolveLabel(tls, v, labelError) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, labelOk) - goto _52 - _52: + goto _57 + _57: ; j4++ } /* Verify CHECK constraints */ - if (*TTable)(unsafe.Pointer(pTab9)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { - pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab9)).FpCheck, 0) + if (*TTable)(unsafe.Pointer(pTab10)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { + pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab10)).FpCheck, 0) if int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { addrCkFault = _sqlite3VdbeMakeLabel(tls, pParse) addrCkOk = _sqlite3VdbeMakeLabel(tls, pParse) @@ -118943,15 +119845,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprIfFalse(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8 + uintptr(k3)*32))).FpExpr, addrCkFault, 0) - goto _53 - _53: + goto _58 + _58: ; k3-- } _sqlite3ExprIfTrue(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8))).FpExpr, addrCkOk, int32(SQLITE_JUMPIFNULL)) _sqlite3VdbeResolveLabel(tls, v, addrCkFault) (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 - zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18284, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18400, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr2, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, addrCkOk) @@ -118961,25 +119863,25 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(isQuick != 0) { /* Omit the remaining tests for quick_check */ /* Validate index entries for the current row */ j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } ckUniq = _sqlite3VdbeMakeLabel(tls, pParse) - if pPk1 == pIdx5 { - goto _54 + if pPk1 == pIdx6 { + goto _59 } - r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx5, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) - pPrior = pIdx5 + r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx6, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) + pPrior = pIdx6 _sqlite3VdbeAddOp2(tls, v, int32(OP_AddImm), int32(8)+j4, int32(1)) /* increment entry count */ /* Verify that an index entry exists for the current table row */ - jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18314) + jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18430) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18319) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18435) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) - jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx6)).FzName) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) jmp4 = _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, jmp21) @@ -118987,12 +119889,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** that extracts the rowid off the end of the index record. ** But it only works correctly if index record does not have ** any extra bytes at the end. Verify that this is the case. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { _sqlite3VdbeAddOp2(tls, v, int32(OP_IdxRowid), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)-int32(1)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18340) + jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)-int32(1)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18456) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18376) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18492) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp7) } @@ -119001,101 +119903,77 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p label6 = 0 kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { - goto _55 + if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { + goto _60 } if label6 == 0 { label6 = _sqlite3VdbeMakeLabel(tls, pParse) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 112))+j4, kk, int32(3)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ne), int32(3), label6, r1+kk) - goto _55 - _55: + goto _60 + _60: ; kk++ } if label6 != 0 { jmp6 = _sqlite3VdbeAddOp0(tls, v, int32(OP_Goto)) _sqlite3VdbeResolveLabel(tls, v, label6) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18314) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18430) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18387) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18503) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp6) } /* For UNIQUE indexes, verify that only one entry exists with the ** current key. The entry is unique if (1) any column is NULL ** or (2) the next entry has a different key */ - if int32((*TIndex)(unsafe.Pointer(pIdx5)).FonError) != OE_None { + if int32((*TIndex)(unsafe.Pointer(pIdx6)).FonError) != OE_None { uniqOk = _sqlite3VdbeMakeLabel(tls, pParse) kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FaiColumn + uintptr(kk)*2))) + iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FaiColumn + uintptr(kk)*2))) _ = libc.Int32FromInt32(0) - if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { - goto _56 + if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { + goto _61 } _sqlite3VdbeAddOp2(tls, v, int32(OP_IsNull), r1+kk, uniqOk) - goto _56 - _56: + goto _61 + _61: ; kk++ } jmp61 = _sqlite3VdbeAddOp1(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 112))+j4) _sqlite3VdbeGoto(tls, v, uniqOk) _sqlite3VdbeJumpHere(tls, v, jmp61) - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18414) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18530) _sqlite3VdbeGoto(tls, v, jmp5) _sqlite3VdbeResolveLabel(tls, v, uniqOk) } _sqlite3VdbeJumpHere(tls, v, jmp4) _sqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp + 128))) - goto _54 - _54: + goto _59 + _59: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } } _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 108)), loopTop) _sqlite3VdbeJumpHere(tls, v, loopTop-int32(1)) - if !(isQuick != 0) { - _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18441) - j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex - for { - if !(pIdx5 != 0) { - break - } - if pPk1 == pIdx5 { - goto _57 - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+j4, 0, int32(3)) - _sqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL)) - _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) - _integrityCheckResultRow(tls, v) - _sqlite3VdbeJumpHere(tls, v, addr1) - goto _57 - _57: - ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext - j4++ - } - if pPk1 != 0 { - _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) - } + if pPk1 != 0 { + _ = libc.Int32FromInt32(0) + _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) } - goto _48 - _48: + goto _53 + _53: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -119107,60 +119985,60 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata - if pObjTab != 0 && pObjTab != pTab10 { - goto _58 + pTab11 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab11 { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == TABTYP_NORM { - goto _58 + if int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == TABTYP_NORM { + goto _62 } - if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { - goto _58 + if !(int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FnCol) <= 0 { + if int32((*TTable)(unsafe.Pointer(pTab11)).FnCol) <= 0 { zMod = *(*uintptr)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).FazArg)) + })(unsafe.Pointer(pTab11 + 64))).FazArg)) if _sqlite3HashFind(tls, db+576, zMod) == uintptr(0) { - goto _58 + goto _62 } } - _sqlite3ViewGetColumnNames(tls, pParse, pTab10) + _sqlite3ViewGetColumnNames(tls, pParse, pTab11) if (*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp == uintptr(0) { - goto _58 + })(unsafe.Pointer(pTab11 + 64))).Fp == uintptr(0) { + goto _62 } pVTab = (*TVTable)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp)).FpVtab + })(unsafe.Pointer(pTab11 + 64))).Fp)).FpVtab if pVTab == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FiVersion < int32(4) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FxIntegrity == uintptr(0) { - goto _58 + goto _62 } _sqlite3VdbeAddOp3(tls, v, int32(OP_VCheck), i9, int32(3), isQuick) - (*TTable)(unsafe.Pointer(pTab10)).FnTabRef++ - _sqlite3VdbeAppendP4(tls, v, pTab10, -int32(16)) + (*TTable)(unsafe.Pointer(pTab11)).FnTabRef++ + _sqlite3VdbeAppendP4(tls, v, pTab11, -int32(16)) a11 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a11) - goto _58 - goto _58 - _58: + goto _62 + goto _62 + _62: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -119173,7 +120051,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if aOp2 != 0 { (*(*TVdbeOp)(unsafe.Pointer(aOp2))).Fp2 = int32(1) - *(*int32)(unsafe.Pointer(bp + 104)) (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 2*24))).Fp4type = int8(-libc.Int32FromInt32(1)) - *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18470 + *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18557 (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 5*24))).Fp4type = int8(-libc.Int32FromInt32(1)) *(*uintptr)(unsafe.Pointer(aOp2 + 5*24 + 16)) = _sqlite3ErrStr(tls, int32(SQLITE_CORRUPT)) } @@ -119234,20 +120112,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc != 0 { - v60 = int32((*struct { + v64 = int32((*struct { FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc) } else { - v60 = int32(SQLITE_UTF16LE) + v64 = int32(SQLITE_UTF16LE) } - enc = uint8(v60) + enc = uint8(v64) (*TSchema)(unsafe.Pointer((*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema)).Fenc = enc _sqlite3SetTextEncoding(tls, db, enc) break } - goto _59 - _59: + goto _63 + _63: ; pEnc += 16 } @@ -119255,7 +120133,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).FzName != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18531, libc.VaList(bp+176, zRight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18618, libc.VaList(bp+176, zRight)) } } } @@ -119333,11 +120211,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p i10 = 0 (*TParse)(unsafe.Pointer(pParse)).FnMem = int32(1) for { - v62 = i10 + v66 = i10 i10++ - v61 = Xsqlite3_compileoption_get(tls, v62) - zOpt = v61 - if !(v61 != uintptr(0)) { + v65 = Xsqlite3_compileoption_get(tls, v66) + zOpt = v65 + if !(v65 != uintptr(0)) { break } _sqlite3VdbeLoadString(tls, v, int32(1), zOpt) @@ -119353,20 +120231,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p fallthrough case int32(PragTyp_WAL_CHECKPOINT): if (*TToken)(unsafe.Pointer(pId2)).Fz != 0 { - v63 = iDb + v67 = iDb } else { - v63 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) + v67 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) } - iBt = v63 + iBt = v67 eMode2 = SQLITE_CHECKPOINT_PASSIVE if zRight != 0 { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17756) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17843) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_FULL) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18556) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18643) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_RESTART) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17909) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17996) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_TRUNCATE) } } @@ -119390,11 +120268,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p Xsqlite3_wal_autocheckpoint(tls, db, _sqlite3Atoi(tls, zRight)) } if (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback == __ccgo_fp(_sqlite3WalDefaultHook) { - v64 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) + v68 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) } else { - v64 = 0 + v68 = 0 } - _returnSingleInt(tls, v, int64(v64)) + _returnSingleInt(tls, v, int64(v68)) break /* ** PRAGMA shrink_memory @@ -119422,47 +120300,68 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** ** The optional argument is a bitmask of optimizations to perform: ** - ** 0x0001 Debugging mode. Do not actually perform any optimizations - ** but instead return one line of text for each optimization - ** that would have been done. Off by default. + ** 0x00001 Debugging mode. Do not actually perform any optimizations + ** but instead return one line of text for each optimization + ** that would have been done. Off by default. ** - ** 0x0002 Run ANALYZE on tables that might benefit. On by default. - ** See below for additional information. + ** 0x00002 Run ANALYZE on tables that might benefit. On by default. + ** See below for additional information. ** - ** 0x0004 (Not yet implemented) Record usage and performance - ** information from the current session in the - ** database file so that it will be available to "optimize" - ** pragmas run by future database connections. + ** 0x00010 Run all ANALYZE operations using an analysis_limit that + ** is the lessor of the current analysis_limit and the + ** SQLITE_DEFAULT_OPTIMIZE_LIMIT compile-time option. + ** The default value of SQLITE_DEFAULT_OPTIMIZE_LIMIT is + ** currently (2024-02-19) set to 2000, which is such that + ** the worst case run-time for PRAGMA optimize on a 100MB + ** database will usually be less than 100 milliseconds on + ** a RaspberryPI-4 class machine. On by default. ** - ** 0x0008 (Not yet implemented) Create indexes that might have - ** been helpful to recent queries + ** 0x10000 Look at tables to see if they need to be reanalyzed + ** due to growth or shrinkage even if they have not been + ** queried during the current connection. Off by default. ** - ** The default MASK is and always shall be 0xfffe. 0xfffe means perform all - ** of the optimizations listed above except Debug Mode, including new - ** optimizations that have not yet been invented. If new optimizations are - ** ever added that should be off by default, those off-by-default - ** optimizations will have bitmasks of 0x10000 or larger. + ** The default MASK is and always shall be 0x0fffe. In the current + ** implementation, the default mask only covers the 0x00002 optimization, + ** though additional optimizations that are covered by 0x0fffe might be + ** added in the future. Optimizations that are off by default and must + ** be explicitly requested have masks of 0x10000 or greater. ** ** DETERMINATION OF WHEN TO RUN ANALYZE ** ** In the current implementation, a table is analyzed if only if all of ** the following are true: ** - ** (1) MASK bit 0x02 is set. + ** (1) MASK bit 0x00002 is set. + ** + ** (2) The table is an ordinary table, not a virtual table or view. ** - ** (2) The query planner used sqlite_stat1-style statistics for one or - ** more indexes of the table at some point during the lifetime of - ** the current connection. + ** (3) The table name does not begin with "sqlite_". ** - ** (3) One or more indexes of the table are currently unanalyzed OR - ** the number of rows in the table has increased by 25 times or more - ** since the last time ANALYZE was run. + ** (4) One or more of the following is true: + ** (4a) The 0x10000 MASK bit is set. + ** (4b) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. + ** (4c) The query planner used sqlite_stat1-style statistics for one + ** or more indexes of the table at some point during the lifetime + ** of the current connection. + ** + ** (5) One or more of the following is true: + ** (5a) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. (Same as 4a) + ** (5b) The number of rows in the table has increased or decreased by + ** 10-fold. In other words, the current size of the table is + ** 10 times larger than the size in sqlite_stat1 or else the + ** current size is less than 1/10th the size in sqlite_stat1. ** ** The rules for when tables are analyzed are likely to change in - ** future releases. + ** future releases. Future versions of SQLite might accept a string + ** literal argument to this pragma that contains a mnemonic description + ** of the options rather than a bitmap. */ fallthrough - case int32(PragTyp_OPTIMIZE): /* Mask of operations to perform */ + case int32(PragTyp_OPTIMIZE): /* Analysis limit to use */ + nCheck = 0 /* Number of tables to be optimized */ + nBtree = 0 /* Number of indexes on the current table */ if zRight != 0 { opMask = uint32(_sqlite3Atoi(tls, zRight)) if opMask&uint32(0x02) == uint32(0) { @@ -119471,22 +120370,31 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { opMask = uint32(0xfffe) } - v66 = pParse + 52 - v65 = *(*int32)(unsafe.Pointer(v66)) - *(*int32)(unsafe.Pointer(v66))++ - iTabCur = v65 + if opMask&uint32(0x10) == uint32(0) { + nLimit = 0 + } else { + if (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit > 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit < int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) { + nLimit = 0 + } else { + nLimit = int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) + } + } + v70 = pParse + 52 + v69 = *(*int32)(unsafe.Pointer(v70)) + *(*int32)(unsafe.Pointer(v70))++ + iTabCur = v69 if zDb != 0 { - v68 = iDb + v72 = iDb } else { - v68 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) + v72 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) } - iDbLast = v68 + iDbLast = v72 for { if !(iDb <= iDbLast) { break } if iDb == int32(1) { - goto _67 + goto _71 } _sqlite3CodeVerifySchema(tls, pParse, iDb) pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema @@ -119495,53 +120403,122 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(k4 != 0) { break } - pTab11 = (*THashElem)(unsafe.Pointer(k4)).Fdata - /* If table pTab has not been used in a way that would benefit from - ** having analysis statistics during the current session, then skip it. - ** This also has the effect of skipping virtual tables and views */ - if (*TTable)(unsafe.Pointer(pTab11)).FtabFlags&uint32(TF_StatsUsed) == uint32(0) { - goto _69 + pTab12 = (*THashElem)(unsafe.Pointer(k4)).Fdata + /* This only works for ordinary tables */ + if !(int32((*TTable)(unsafe.Pointer(pTab12)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _73 } - /* Reanalyze if the table is 25 times larger than the last analysis */ - szThreshold = int16(int32((*TTable)(unsafe.Pointer(pTab11)).FnRowLogEst) + int32(46)) - _ = libc.Int32FromInt32(0) - pIdx6 = (*TTable)(unsafe.Pointer(pTab11)).FpIndex + /* Do not scan system tables */ + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab12)).FzName, __ccgo_ts+6598, int32(7)) { + goto _73 + } + /* Find the size of the table as last recorded in sqlite_stat1. + ** If any index is unanalyzed, then the threshold is -1 to + ** indicate a new, unanalyzed index + */ + szThreshold = (*TTable)(unsafe.Pointer(pTab12)).FnRowLogEst + nIndex = 0 + pIdx7 = (*TTable)(unsafe.Pointer(pTab12)).FpIndex for { - if !(pIdx6 != 0) { + if !(pIdx7 != 0) { break } - if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx6 + 100))&0x80>>7)) != 0) { - szThreshold = 0 /* Always analyze if any index lacks statistics */ - break + nIndex++ + if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx7 + 100))&0x80>>7)) != 0) { + szThreshold = int16(-int32(1)) /* Always analyze if any index lacks statistics */ } - goto _70 - _70: + goto _74 + _74: ; - pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext + pIdx7 = (*TIndex)(unsafe.Pointer(pIdx7)).FpNext + } + /* If table pTab has not been used in a way that would benefit from + ** having analysis statistics during the current session, then skip it, + ** unless the 0x10000 MASK bit is set. */ + if (*TTable)(unsafe.Pointer(pTab12)).FtabFlags&uint32(TF_MaybeReanalyze) != uint32(0) { + /* Check for size change if stat1 has been used for a query */ + } else { + if opMask&uint32(0x10000) != 0 { + /* Check for size change if 0x10000 is set */ + } else { + if (*TTable)(unsafe.Pointer(pTab12)).FpIndex != uintptr(0) && int32(szThreshold) < 0 { + /* Do analysis if unanalyzed indexes exists */ + } else { + /* Otherwise, we can skip this table */ + goto _73 + } + } } - if szThreshold != 0 { - _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab11, int32(OP_OpenRead)) - _sqlite3VdbeAddOp3(tls, v, int32(OP_IfSmaller), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), int32(szThreshold)) + nCheck++ + if nCheck == int32(2) { + /* If ANALYZE might be invoked two or more times, hold a write + ** transaction for efficiency */ + _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) + } + nBtree += nIndex + int32(1) + /* Reanalyze if the table is 10 times larger or smaller than + ** the last analysis. Unconditional reanalysis if there are + ** unanalyzed indexes. */ + _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab12, int32(OP_OpenRead)) + if int32(szThreshold) >= 0 { + iRange = int16(33) /* 10x size change */ + if int32(szThreshold) >= int32(iRange) { + v75 = int32(szThreshold) - int32(iRange) + } else { + v75 = -int32(1) + } + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IfSizeBetween), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), v75, int32(szThreshold)+int32(iRange)) + } else { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1))) } - zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18564, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab11)).FzName)) + zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18651, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab12)).FzName)) if opMask&uint32(0x01) != 0 { r11 = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, r11, 0, zSubSql, -int32(6)) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), r11, int32(1)) } else { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), 0, 0, 0, zSubSql, -int32(6)) + if nLimit != 0 { + v76 = int32(0x02) + } else { + v76 = 00 + } + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), v76, nLimit, 0, zSubSql, -int32(6)) } - goto _69 - _69: + goto _73 + _73: ; k4 = (*THashElem)(unsafe.Pointer(k4)).Fnext } - goto _67 - _67: + goto _71 + _71: ; iDb++ } _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) + /* In a schema with a large number of tables and indexes, scale back + ** the analysis_limit to avoid excess run-time in the worst case. + */ + if !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && nLimit > 0 && nBtree > int32(100) { + nLimit = int32(100) * nLimit / nBtree + if nLimit < int32(100) { + nLimit = int32(100) + } + aOp5 = _sqlite3VdbeGetOp(tls, v, 0) + iEnd = _sqlite3VdbeCurrentAddr(tls, v) + iAddr1 = 0 + for { + if !(iAddr1 < iEnd) { + break + } + if int32((*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fopcode) == int32(OP_SqlExec) { + (*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fp2 = nLimit + } + goto _77 + _77: + ; + iAddr1++ + } + } break /* ** PRAGMA busy_timeout @@ -119636,6 +120613,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** instructions to the VM. */ if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_NoColumns1) != 0 && zRight != 0 { } + goto pragma_out pragma_out: ; _sqlite3DbFree(tls, db, zLeft) @@ -119767,34 +120745,34 @@ var _encnames1 = [9]struct { Fenc Tu8 }{ 0: { - FzName: __ccgo_ts + 18473, + FzName: __ccgo_ts + 18560, Fenc: uint8(SQLITE_UTF8), }, 1: { - FzName: __ccgo_ts + 18478, + FzName: __ccgo_ts + 18565, Fenc: uint8(SQLITE_UTF8), }, 2: { - FzName: __ccgo_ts + 18484, + FzName: __ccgo_ts + 18571, Fenc: uint8(SQLITE_UTF16LE), }, 3: { - FzName: __ccgo_ts + 18493, + FzName: __ccgo_ts + 18580, Fenc: uint8(SQLITE_UTF16BE), }, 4: { - FzName: __ccgo_ts + 18502, + FzName: __ccgo_ts + 18589, Fenc: uint8(SQLITE_UTF16LE), }, 5: { - FzName: __ccgo_ts + 18510, + FzName: __ccgo_ts + 18597, Fenc: uint8(SQLITE_UTF16BE), }, 6: { - FzName: __ccgo_ts + 18518, + FzName: __ccgo_ts + 18605, }, 7: { - FzName: __ccgo_ts + 18525, + FzName: __ccgo_ts + 18612, }, 8: {}, } @@ -119890,14 +120868,14 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg _ = argc _ = argv _sqlite3StrAccumInit(tls, bp, uintptr(0), bp+32, int32(200), 0) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18582) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18669) i = 0 j = int32((*TPragmaName)(unsafe.Pointer(pPragma)).FiPragCName) for { if !(i < int32((*TPragmaName)(unsafe.Pointer(pPragma)).FnPragCName)) { break } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18597, libc.VaList(bp+240, int32(cSep), _pragCName[j])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18684, libc.VaList(bp+240, int32(cSep), _pragCName[j])) cSep = uint8(',') goto _1 _1: @@ -119906,19 +120884,19 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg j++ } if i == 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18604, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18691, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) i++ } j = 0 if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_Result1) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18610) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18697) j++ } if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&(libc.Int32FromInt32(PragFlg_SchemaOpt)|libc.Int32FromInt32(PragFlg_SchemaReq)) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18622) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18709) j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5115, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5179, int32(1)) _sqlite3StrAccumFinish(tls, bp) _ = libc.Int32FromInt32(0) rc = Xsqlite3_declare_vtab(tls, db, bp+32) @@ -119934,7 +120912,7 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg (*TPragmaVtab)(unsafe.Pointer(pTab)).FnHidden = uint8(j) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) } *(*uintptr)(unsafe.Pointer(ppVtab)) = pTab return rc @@ -119980,14 +120958,14 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) { break } - if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { goto _1 } if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fop) != int32(SQLITE_INDEX_CONSTRAINT_EQ) { goto _1 } - if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { - goto _1 + if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + return int32(SQLITE_CONSTRAINT) } j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn - int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) _ = libc.Int32FromInt32(0) @@ -120006,16 +120984,13 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 j = seen[0] - int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) - if seen[int32(1)] == 0 { - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(1000) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(1000) - return SQLITE_OK - } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(20) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(20) - j = seen[int32(1)] - int32(1) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + if seen[int32(1)] != 0 { + j = seen[int32(1)] - int32(1) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + } return SQLITE_OK } @@ -120043,6 +121018,7 @@ func _pragmaVtabCursorClear(tls *libc.TLS, pCsr uintptr) { _ = i Xsqlite3_finalize(tls, (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma) (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma = uintptr(0) + (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FiRowid = 0 i = 0 for { if !(i < int32(libc.Uint64FromInt64(16)/libc.Uint64FromInt64(8))) { @@ -120121,7 +121097,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if zText != 0 { - *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+40, zText)) + *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+40, zText)) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -120133,13 +121109,13 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr j++ } _sqlite3StrAccumInit(tls, bp, uintptr(0), uintptr(0), 0, *(*int32)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb + 136 + 1*4))) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18637) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18724) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18645, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18732, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) } Xsqlite3_str_appendall(tls, bp, (*TPragmaName)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).FpName)).FzName) if *(*uintptr)(unsafe.Pointer(pCsr + 24)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18649, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18736, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) } zSql = _sqlite3StrAccumFinish(tls, bp) if zSql == uintptr(0) { @@ -120148,7 +121124,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr rc = Xsqlite3_prepare_v2(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), pCsr+8, uintptr(0)) Xsqlite3_free(tls, zSql) if rc != SQLITE_OK { - (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) + (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) return rc } return _pragmaVtabNext(tls, pVtabCursor) @@ -120276,24 +121252,24 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) /* A error message has already been generated. Do not overwrite it */ } else { if (*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(libc.Int32FromInt32(INITFLAG_AlterMask)) != 0 { - *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18683, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) + *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18770, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) (*TInitData)(unsafe.Pointer(pData)).Frc = int32(SQLITE_ERROR) } else { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_WriteSchema) != 0 { - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140891)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141840)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) } else { - v1 = __ccgo_ts + 5117 + v1 = __ccgo_ts + 5181 } zObj = v1 - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18711, libc.VaList(bp+8, zObj)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18798, libc.VaList(bp+8, zObj)) if zExtra != 0 && *(*uint8)(unsafe.Pointer(zExtra)) != 0 { - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18742, libc.VaList(bp+8, z, zExtra)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18829, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140898)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141847)) } } } @@ -120301,9 +121277,9 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) } var _azAlterType = [3]uintptr{ - 0: __ccgo_ts + 18653, - 1: __ccgo_ts + 18660, - 2: __ccgo_ts + 18672, + 0: __ccgo_ts + 18740, + 1: __ccgo_ts + 18747, + 2: __ccgo_ts + 18759, } // C documentation @@ -120383,7 +121359,7 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(iDb) if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), db+192) == 0 || (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage && (*TInitData)(unsafe.Pointer(pData)).FmxPage > uint32(0) { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14525) + _corruptSchema(tls, pData, argv, __ccgo_ts+14618) } } libc.SetBitFieldPtr8Uint32(db+192+8, libc.Uint32FromInt32(0), 0, 0x1) @@ -120418,11 +121394,11 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr } else { pIndex = _sqlite3FindIndex(tls, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName) if pIndex == uintptr(0) { - _corruptSchema(tls, pData, argv, __ccgo_ts+18750) + _corruptSchema(tls, pData, argv, __ccgo_ts+18837) } else { if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), pIndex+88) == 0 || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum < uint32(2) || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage || _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14525) + _corruptSchema(tls, pData, argv, __ccgo_ts+14618) } } } @@ -120466,18 +121442,18 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** table name will be inserted automatically by the parser so we can just ** use the abbreviation "x" here. The parser will also automatically tag ** the schema table as read-only. */ - (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9067 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9192 if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6542 + v2 = __ccgo_ts + 6606 } else { - v2 = __ccgo_ts + 6075 + v2 = __ccgo_ts + 6139 } v1 = v2 zSchemaTabName = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(2)] = (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8139 - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18763 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8264 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18850 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(5)] = uintptr(0) (*(*TInitData)(unsafe.Pointer(bp + 72))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 72))).FiDb = iDb @@ -120567,7 +121543,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl } else { /* If opening an attached database, the encoding much match ENC(db) */ if (*(*[5]int32)(unsafe.Pointer(bp + 48)))[libc.Int32FromInt32(BTREE_TEXT_ENCODING)-libc.Int32FromInt32(1)]&int32(3) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12104) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12229) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -120593,7 +121569,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = uint8(1) } if int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) > int32(SQLITE_MAX_FILE_FORMAT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18835) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18922) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -120609,7 +121585,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl */ _ = libc.Int32FromInt32(0) (*(*TInitData)(unsafe.Pointer(bp + 72))).FmxPage = _sqlite3BtreeLastPage(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18859, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18946, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) rc = Xsqlite3_exec(tls, db, zSql, __ccgo_fp(_sqlite3InitCallback), bp+72, uintptr(0)) @@ -120647,12 +121623,14 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** curMain and calling sqlite3BtreeEnter(). For an error that occurs ** before that point, jump to error_out. */ + goto initone_error_out initone_error_out: ; if openedTransaction != 0 { _sqlite3BtreeCommit(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) } _sqlite3BtreeLeave(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) + goto error_out error_out: ; if rc != 0 { @@ -120924,7 +121902,12 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup - pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + if _sqlite3FaultSim(tls, int32(300)) != 0 { + pCleanup = uintptr(0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) + } else { + pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + } if pCleanup != 0 { (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup @@ -120956,7 +121939,7 @@ func _sqlite3ParseObjectInit(tls *libc.TLS, pParse uintptr, db uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FpParse = pParse (*TParse)(unsafe.Pointer(pParse)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1627, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1641, 0) } } @@ -120992,7 +121975,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } _ = libc.Int32FromInt32(0) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1627, 0) + _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1641, 0) v1 = libc.Int32FromInt32(SQLITE_NOMEM) rc = v1 (*Tsqlite3)(unsafe.Pointer(db)).FerrCode = v1 @@ -121043,7 +122026,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep rc = _sqlite3BtreeSchemaLocked(tls, pBt) if rc != 0 { zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FzDbSName - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18893, libc.VaList(bp+432, zDb)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18980, libc.VaList(bp+432, zDb)) goto end_prepare } } @@ -121059,7 +122042,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep if nBytes >= 0 && (nBytes == 0 || int32(*(*uint8)(unsafe.Pointer(zSql + uintptr(nBytes-int32(1))))) != 0) { mxLen = *(*int32)(unsafe.Pointer(db + 136 + 1*4)) if nBytes > mxLen { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+18923, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+19010, 0) rc = _sqlite3ApiExit(tls, db, int32(SQLITE_TOOBIG)) goto end_prepare } @@ -121095,7 +122078,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep _ = libc.Int32FromInt32(0) rc = (*(*TParse)(unsafe.Pointer(bp))).Frc if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3804, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3868, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) } else { _sqlite3Error(tls, db, rc) @@ -121112,6 +122095,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep (*(*TParse)(unsafe.Pointer(bp))).FpTriggerPrg = (*TTriggerPrg)(unsafe.Pointer(pT)).FpNext _sqlite3DbFree(tls, db, pT) } + goto end_prepare end_prepare: ; _sqlite3ParseObjectReset(tls, bp) @@ -121125,7 +122109,7 @@ func _sqlite3LockAndPrepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int3 cnt = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141699)) + return _sqlite3MisuseError(tls, int32(142654)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -121268,7 +122252,7 @@ func _sqlite3Prepare16(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, pr rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141848)) + return _sqlite3MisuseError(tls, int32(142803)) } if nBytes >= 0 { z = zSql @@ -121678,15 +122662,15 @@ func _sqlite3JoinType(tls *libc.TLS, pParse uintptr, pA uintptr, pB uintptr, pC i++ } if jointype&(libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER)) == libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER) || jointype&int32(JT_ERROR) != 0 || jointype&(libc.Int32FromInt32(JT_OUTER)|libc.Int32FromInt32(JT_LEFT)|libc.Int32FromInt32(JT_RIGHT)) == int32(JT_OUTER) { - zSp1 = __ccgo_ts + 11211 - zSp2 = __ccgo_ts + 11211 + zSp1 = __ccgo_ts + 11336 + zSp2 = __ccgo_ts + 11336 if pB == uintptr(0) { zSp1++ } if pC == uintptr(0) { zSp2++ } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18942, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19029, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) jointype = int32(JT_INNER) } return jointype @@ -121989,7 +122973,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { if int32((*TSrcItem)(unsafe.Pointer(pRight)).Ffg.Fjointype)&int32(JT_NATURAL) != 0 { pUsing = uintptr(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x400>>10)) != 0 || *(*uintptr)(unsafe.Pointer(pRight + 72)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18972, libc.VaList(bp+16, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19059, libc.VaList(bp+16, 0)) return int32(1) } j = 0 @@ -122042,7 +123026,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { zName1 = (*(*TIdList_item)(unsafe.Pointer(pList + 8 + uintptr(j)*16))).FzName iRightCol = _sqlite3ColumnIndex(tls, pRightTab, zName1) if iRightCol < 0 || _tableAndColumnIndex(tls, pSrc, 0, i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19022, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19109, libc.VaList(bp+16, zName1)) return int32(1) } pE1 = _sqlite3CreateColumnExpr(tls, db, pSrc, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) @@ -122064,7 +123048,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { pFuncArgs = uintptr(0) /* Arguments to the coalesce() */ for _tableAndColumnIndex(tls, pSrc, *(*int32)(unsafe.Pointer(bp))+int32(1), i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) != 0 { if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 60 + 4))&0x400>>10)) == 0 || _sqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 72)), zName1) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19086, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19173, libc.VaList(bp+16, zName1)) break } pFuncArgs = _sqlite3ExprListAppend(tls, pParse, pFuncArgs, pE1) @@ -122110,7 +123094,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { } var _tkCoalesce = TToken{ - Fz: __ccgo_ts + 6739, + Fz: __ccgo_ts + 6803, Fn: uint32(8), } @@ -122910,13 +123894,13 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { _ = z switch id { case int32(TK_ALL): - z = __ccgo_ts + 19123 + z = __ccgo_ts + 19210 case int32(TK_INTERSECT): - z = __ccgo_ts + 19133 + z = __ccgo_ts + 19220 case int32(TK_EXCEPT): - z = __ccgo_ts + 19143 + z = __ccgo_ts + 19230 default: - z = __ccgo_ts + 19150 + z = __ccgo_ts + 19237 break } return z @@ -122937,7 +123921,7 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { func _explainTempTable(tls *libc.TLS, pParse uintptr, zUsage uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19156, libc.VaList(bp+8, zUsage)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19243, libc.VaList(bp+8, zUsage)) } /* @@ -122971,12 +123955,17 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, iParm = (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm /* True if sorter record includes seq. no. */ nRefKey = 0 aOutEx = (*TSelect)(unsafe.Pointer(p)).FpEList + 8 - if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat > 0 { - v1 = __ccgo_ts + 19179 + nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat == 0 || nKey == int32(1) { + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat != 0 { + v1 = __ccgo_ts + 19266 + } else { + v1 = __ccgo_ts + 1671 + } + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19280, libc.VaList(bp+8, v1)) } else { - v1 = __ccgo_ts + 1657 + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19311, libc.VaList(bp+8, nKey)) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19194, libc.VaList(bp+8, v1)) _ = libc.Int32FromInt32(0) if (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut != 0 { _sqlite3VdbeAddOp2(tls, v, int32(OP_Gosub), (*TSortCtx)(unsafe.Pointer(pSort)).FregReturn, (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut) @@ -122999,7 +123988,6 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, regRow = _sqlite3GetTempRange(tls, pParse, nColumn) } } - nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat if int32((*TSortCtx)(unsafe.Pointer(pSort)).FsortFlags)&int32(SORTFLAG_UseSorter) != 0 { v3 = pParse + 56 *(*int32)(unsafe.Pointer(v3))++ @@ -123225,7 +124213,7 @@ func _columnTypeImpl(tls *libc.TLS, pNC uintptr, pExpr uintptr, pzOrigDb uintptr _ = libc.Int32FromInt32(0) if iCol < 0 { zType = __ccgo_ts + 1145 - *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16703 + *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16790 } else { *(*uintptr)(unsafe.Pointer(bp + 16)) = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, uintptr(0)) @@ -123378,13 +124366,13 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } _ = libc.Int32FromInt32(0) if iCol < 0 { - zCol = __ccgo_ts + 16703 + zCol = __ccgo_ts + 16790 } else { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } if fullName != 0 { zName1 = uintptr(0) - zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12390, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) + zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12515, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zName1, __ccgo_fp(_sqlite3OomClear)) } else { _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zCol, uintptr(-libc.Int32FromInt32(1))) @@ -123392,7 +124380,7 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } else { z = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32))).FzEName if z == uintptr(0) { - v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19225, libc.VaList(bp+8, i+int32(1))) + v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19357, libc.VaList(bp+8, i+int32(1))) } else { v2 = _sqlite3DbStrDup(tls, db, z) } @@ -123486,7 +124474,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if iCol >= 0 { v3 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } else { - v3 = __ccgo_ts + 16703 + v3 = __ccgo_ts + 16790 } zName = v3 } else { @@ -123502,7 +124490,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if zName != 0 && !(_sqlite3IsTrueOrFalse(tls, zName) != 0) { zName = _sqlite3DbStrDup(tls, db, zName) } else { - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19225, libc.VaList(bp+40, i+int32(1))) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19357, libc.VaList(bp+40, i+int32(1))) } /* Make sure the column name is unique. If the name is not unique, ** append an integer to the name so that it becomes unique. @@ -123538,7 +124526,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, } *(*Tu32)(unsafe.Pointer(bp))++ v8 = *(*Tu32)(unsafe.Pointer(bp)) - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19234, libc.VaList(bp+40, nName, zName, v8)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19366, libc.VaList(bp+40, nName, zName, v8)) _sqlite3ProgressCheck(tls, pParse) if *(*Tu32)(unsafe.Pointer(bp)) > uint32(3) { Xsqlite3_randomness(tls, int32(4), bp) @@ -123598,9 +124586,9 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS defer tls.Free(64) var a, db, p, pCol, pColl, pS2, zType, p4, p5 uintptr var i, j, m int32 - var m1, n Ti64 + var k, n Ti64 var _ /* sNC at bp+0 */ TNameContext - _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, m, m1, n, p, pCol, pColl, pS2, zType, p4, p5 + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, k, m, n, p, pCol, pColl, pS2, zType, p4, p5 db = (*TParse)(unsafe.Pointer(pParse)).Fdb _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -123621,17 +124609,22 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS if !(i < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } + m = 0 + pS2 = pSelect *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags) & libc.Int32FromInt32(COLFLAG_NOINSERT)) p = (*(*TExprList_item)(unsafe.Pointer(a + uintptr(i)*32))).FpExpr /* pCol->szEst = ... // Column size est for SELECT tables never used */ (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, p) + for int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) && (*TSelect)(unsafe.Pointer(pS2)).FpNext != uintptr(0) { + m |= _sqlite3ExprDataType(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext + (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + } if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) { (*TColumn)(unsafe.Pointer(pCol)).Faffinity = aff } - if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && (*TSelect)(unsafe.Pointer(pSelect)).FpNext != 0 { - m = 0 - m = 0 - pS2 = (*TSelect)(unsafe.Pointer(pSelect)).FpNext + if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && ((*TSelect)(unsafe.Pointer(pS2)).FpNext != 0 || pS2 != pSelect) { + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext for { if !(pS2 != 0) { break @@ -123656,7 +124649,7 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS zType = _columnTypeImpl(tls, bp, p, uintptr(0), uintptr(0), uintptr(0)) if zType == uintptr(0) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) != int32(_sqlite3AffinityType(tls, zType, uintptr(0))) { if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_NUMERIC) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_FLEXNUM) { - zType = __ccgo_ts + 19242 + zType = __ccgo_ts + 19374 } else { zType = uintptr(0) j = int32(1) @@ -123676,13 +124669,13 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS } } if zType != 0 { - m1 = int64(_sqlite3Strlen30(tls, zType)) + k = int64(_sqlite3Strlen30(tls, zType)) n = int64(_sqlite3Strlen30(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) - (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+m1+int64(2))) + (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+k+int64(2))) p4 = pCol + 14 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) & ^(libc.Int32FromInt32(COLFLAG_HASTYPE) | libc.Int32FromInt32(COLFLAG_HASCOLL))) if (*TColumn)(unsafe.Pointer(pCol)).FzCnName != 0 { - libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(m1+int64(1))) + libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(k+int64(1))) p5 = pCol + 14 *(*Tu16)(unsafe.Pointer(p5)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p5))) | libc.Int32FromInt32(COLFLAG_HASTYPE)) } @@ -123978,7 +124971,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest iDistinct = 0 /* To ensure unique results if UNION */ eDest = int32(SRT_Fifo) /* Registers used by LIMIT and OFFSET */ if (*TSelect)(unsafe.Pointer(p)).FpWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19246, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19378, 0) return } /* Obtain authorization to do a recursive query */ @@ -124071,7 +125064,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest break } if (*TSelect)(unsafe.Pointer(pFirstRec)).FselFlags&uint32(SF_Aggregate) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19295, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19427, 0) goto end_of_recursive_query } (*TSelect)(unsafe.Pointer(pFirstRec)).Fop = uint8(TK_ALL) @@ -124086,7 +125079,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest /* Store the results of the setup-query in Queue. */ pSetup = (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior (*TSelect)(unsafe.Pointer(pSetup)).FpNext = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19337, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19469, 0) rc = _sqlite3Select(tls, pParse, pSetup, bp) (*TSelect)(unsafe.Pointer(pSetup)).FpNext = p if rc != 0 { @@ -124114,13 +125107,14 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest ** the value for the recursive-table. Store the results in the Queue. */ (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19343, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19475, 0) _sqlite3Select(tls, pParse, p, bp) _ = libc.Int32FromInt32(0) (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = pSetup /* Keep running the loop until the Queue is empty */ _sqlite3VdbeGoto(tls, v, addrTop) _sqlite3VdbeResolveLabel(tls, v, addrBreak) + goto end_of_recursive_query end_of_recursive_query: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSelect)(unsafe.Pointer(p)).FpOrderBy) @@ -124172,11 +125166,11 @@ func _multiSelectValues(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) nRow += bShowAll } if nRow == int32(1) { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } else { - v1 = __ccgo_ts + 19358 + v1 = __ccgo_ts + 19490 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19360, libc.VaList(bp+8, nRow, v1)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19492, libc.VaList(bp+8, nRow, v1)) for p != 0 { _selectInnerLoop(tls, pParse, p, -int32(1), uintptr(0), uintptr(0), pDest, int32(1), int32(1)) if !(bShowAll != 0) { @@ -124291,8 +125285,8 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in return _multiSelectOrderBy(tls, pParse, p, pDest) } else { if (*TSelect)(unsafe.Pointer(pPrior)).FpPrior == uintptr(0) { - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19383, 0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19398, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19515, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19530, 0) } /* Generate code for the left and right SELECT statements. */ @@ -124318,7 +125312,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in _sqlite3VdbeAddOp3(tls, v, int32(OP_OffsetLimit), (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TSelect)(unsafe.Pointer(p)).FiOffset+int32(1), (*TSelect)(unsafe.Pointer(p)).FiOffset) } } - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19123, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19210, 0) rc = _sqlite3Select(tls, pParse, p, bp) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -124375,7 +125369,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 48))).FeDest = op - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19417, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19549, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+48) _ = libc.Int32FromInt32(0) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior @@ -124441,7 +125435,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit1 = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 88))).FiSDParm = tab2 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19417, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19549, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+88) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -124547,6 +125541,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in } _sqlite3KeyInfoUnref(tls, pKeyInfo) } + goto multi_select_end multi_select_end: ; (*TSelectDest)(unsafe.Pointer(pDest)).FiSdst = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst @@ -124567,9 +125562,9 @@ func _sqlite3SelectWrongNumTermsError(tls *libc.TLS, pParse uintptr, p uintptr) bp := tls.Alloc(16) defer tls.Free(16) if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Values) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19438, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19570, 0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19484, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19616, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) } } @@ -124955,8 +125950,8 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy = _sqlite3ExprListDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pOrderBy, 0) - _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7376) - _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7376) + _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7501) + _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7501) /* Compute the limit registers */ _computeLimitRegisters(tls, pParse, p, labelEnd) if (*TSelect)(unsafe.Pointer(p)).FiLimit != 0 && op == int32(TK_ALL) { @@ -125000,14 +125995,14 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr regOutB = v21 _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), regAddrA) _sqlite3SelectDestInit(tls, bp+40, int32(SRT_Coroutine), regAddrB) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19566, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19698, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) /* Generate a coroutine to evaluate the SELECT statement to the ** left of the compound operator - the "A" select. */ addrSelectA = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regAddrA, 0, addrSelectA) (*TSelect)(unsafe.Pointer(pPrior)).FiLimit = regLimitA - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19577, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19709, 0) _sqlite3Select(tls, pParse, pPrior, bp) _sqlite3VdbeEndCoroutine(tls, v, regAddrA) _sqlite3VdbeJumpHere(tls, v, addr1) @@ -125020,7 +126015,7 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr savedOffset = (*TSelect)(unsafe.Pointer(p)).FiOffset (*TSelect)(unsafe.Pointer(p)).FiLimit = regLimitB (*TSelect)(unsafe.Pointer(p)).FiOffset = 0 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19582, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19714, 0) _sqlite3Select(tls, pParse, p, bp+40) (*TSelect)(unsafe.Pointer(p)).FiLimit = savedLimit (*TSelect)(unsafe.Pointer(p)).FiOffset = savedOffset @@ -125238,7 +126233,7 @@ func _substExpr(tls *libc.TLS, pSubst uintptr, pExpr uintptr) (r uintptr) { if pColl != 0 { v1 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v1 = __ccgo_ts + 5095 + v1 = __ccgo_ts + 5159 } pExpr = _sqlite3ExprAddCollateString(tls, (*TSubstContext)(unsafe.Pointer(pSubst)).FpParse, pExpr, v1) } @@ -126302,10 +127297,10 @@ func _findConstInWhere(tls *libc.TLS, pConst uintptr, pExpr uintptr) { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pLeft) != 0 { + if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pLeft) != 0 { _constInsert(tls, pConst, pRight, pLeft, pExpr) } - if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pRight) != 0 { + if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pRight) != 0 { _constInsert(tls, pConst, pLeft, pRight, pExpr) } } @@ -126546,6 +127541,18 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** The hope is that the terms added to the inner query will make it more // ** efficient. // ** +// ** NAME AMBIGUITY +// ** +// ** This optimization is called the "WHERE-clause push-down optimization". +// ** +// ** Do not confuse this optimization with another unrelated optimization +// ** with a similar name: The "MySQL push-down optimization" causes WHERE +// ** clause terms that can be evaluated using only the index and without +// ** reference to the table are run first, so that if they are false, +// ** unnecessary table seeks are avoided. +// ** +// ** RULES +// ** // ** Do not attempt this optimization if: // ** // ** (1) (** This restriction was removed on 2017-09-29. We used to @@ -126611,10 +127618,10 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** (9c) There is a RIGHT JOIN (or FULL JOIN) in between the ON/USING // ** clause and the subquery. // ** -// ** Without this restriction, the push-down optimization might move -// ** the ON/USING filter expression from the left side of a RIGHT JOIN -// ** over to the right side, which leads to incorrect answers. See -// ** also restriction (6) in sqlite3ExprIsSingleTableConstraint(). +// ** Without this restriction, the WHERE-clause push-down optimization +// ** might move the ON/USING filter expression from the left side of a +// ** RIGHT JOIN over to the right side, which leads to incorrect answers. +// ** See also restriction (6) in sqlite3ExprIsSingleTableConstraint(). // ** // ** (10) The inner query is not the right-hand table of a RIGHT JOIN. // ** @@ -126709,7 +127716,7 @@ func _pushDownWhereTerms(tls *libc.TLS, pParse uintptr, pSubq uintptr, pWhere ui nChng += _pushDownWhereTerms(tls, pParse, pSubq, (*TExpr)(unsafe.Pointer(pWhere)).FpRight, pSrcList, iSrc) pWhere = (*TExpr)(unsafe.Pointer(pWhere)).FpLeft } - if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc) != 0 { + if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc, int32(1)) != 0 { nChng++ *(*Tu32)(unsafe.Pointer(pSubq + 4)) |= uint32(SF_PushDown) for pSubq != 0 { @@ -126888,13 +127895,13 @@ func _minMaxQuery(tls *libc.TLS, db uintptr, pFunc uintptr, ppMinMax uintptr) (r } _ = libc.Int32FromInt32(0) zFunc = *(*uintptr)(unsafe.Pointer(pFunc + 8)) - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15559) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15652) == 0 { eRet = int32(WHERE_ORDERBY_MIN) if _sqlite3ExprCanBeNull(tls, (*(*TExprList_item)(unsafe.Pointer(pEList + 8))).FpExpr) != 0 { sortFlags = uint8(KEYINFO_ORDER_BIGNULL) } } else { - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15563) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15656) == 0 { eRet = int32(WHERE_ORDERBY_MAX) sortFlags = uint8(KEYINFO_ORDER_DESC) } else { @@ -126990,7 +127997,7 @@ func _sqlite3IndexedByLookup(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r in pIdx = (*TIndex)(unsafe.Pointer(pIdx)).FpNext } if !(pIdx != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19588, libc.VaList(bp+8, zIndexedBy, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19720, libc.VaList(bp+8, zIndexedBy, 0)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) return int32(SQLITE_ERROR) } @@ -127117,7 +128124,7 @@ func _cannotBeFunction(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x4>>2)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19606, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19738, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) return int32(1) } return 0 @@ -127299,7 +128306,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom *(*Tu32)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect + 4)) |= uint32(SF_CopyCte) _ = libc.Int32FromInt32(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x2>>1)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19629, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19761, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) return int32(2) } libc.SetBitFieldPtr16Uint32(pFrom+60+4, libc.Uint32FromInt32(1), 8, 0x100) @@ -127324,7 +128331,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ libc.SetBitFieldPtr16Uint32(pItem+60+4, libc.Uint32FromInt32(1), 6, 0x40) if (*TSelect)(unsafe.Pointer(pRecTerm)).FselFlags&uint32(SF_Recursive) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19649, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19781, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) return int32(2) } *(*Tu32)(unsafe.Pointer(pRecTerm + 4)) |= uint32(SF_Recursive) @@ -127346,7 +128353,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } pRecTerm = (*TSelect)(unsafe.Pointer(pRecTerm)).FpPrior } - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19692 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19824 pSavedWith = (*TParse)(unsafe.Pointer(pParse)).FpWith (*TParse)(unsafe.Pointer(pParse)).FpWith = *(*uintptr)(unsafe.Pointer(bp)) if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { @@ -127382,7 +128389,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom pEList = (*TSelect)(unsafe.Pointer(pLeft)).FpEList if (*TCte)(unsafe.Pointer(pCte)).FpCols != 0 { if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr != (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19715, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19847, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) (*TParse)(unsafe.Pointer(pParse)).FpWith = pSavedWith return int32(2) } @@ -127391,9 +128398,9 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom _sqlite3ColumnsFromExprList(tls, pParse, pEList, pTab+54, pTab+8) if bMayRecursive != 0 { if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19753 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19885 } else { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19787 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19919 } _sqlite3WalkSelect(tls, pWalker, pSel) } @@ -127454,7 +128461,7 @@ func _sqlite3ExpandSubquery(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int if (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias != 0 { (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3DbStrDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias) } else { - (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19825, libc.VaList(bp+8, pFrom)) + (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19957, libc.VaList(bp+8, pFrom)) } for (*TSelect)(unsafe.Pointer(pSel)).FpPrior != 0 { pSel = (*TSelect)(unsafe.Pointer(pSel)).FpPrior @@ -127618,7 +128625,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { return int32(WRC_Abort) } if (*TTable)(unsafe.Pointer(pTab)).FnTabRef >= uint32(0xffff) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19829, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19961, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) (*TSrcItem)(unsafe.Pointer(pFrom)).FpTab = uintptr(0) return int32(WRC_Abort) } @@ -127634,7 +128641,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_EnableView) == uint64(0) && (*TTable)(unsafe.Pointer(pTab)).FpSchema != (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19868, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20000, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } (*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect = _sqlite3SelectDup(tls, db, (*(*struct { FpSelect uintptr @@ -127649,7 +128656,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).Fp)).FeVtabRisk) > libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15118, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15211, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } } _ = libc.Int32FromInt32(0) @@ -127786,7 +128793,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if iDb >= 0 { v10 = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName } else { - v10 = __ccgo_ts + 6599 + v10 = __ccgo_ts + 6663 } zSchemaName = v10 } @@ -127804,7 +128811,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if pNew != 0 { pX = pNew + 8 + uintptr((*TExprList)(unsafe.Pointer(pNew)).FnExpr-int32(1))*32 _ = libc.Int32FromInt32(0) - (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19899, libc.VaList(bp+8, zUName)) + (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20031, libc.VaList(bp+8, zUName)) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(ENAME_TAB), 0, 0x3) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(1), 7, 0x80) } @@ -127886,7 +128893,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, (*(*TExprList_item)(unsafe.Pointer(pNestedFrom + 8 + uintptr(j)*32))).FzEName) } else { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19904, libc.VaList(bp+8, zSchemaName, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20036, libc.VaList(bp+8, zSchemaName, zTabName, zName)) } if j == int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) { v13 = int32(ENAME_ROWID) @@ -127899,7 +128906,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } } else { if longNames != 0 { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12390, libc.VaList(bp+8, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12515, libc.VaList(bp+8, zTabName, zName)) libc.SetBitFieldPtr16Uint32(pX1+16+4, libc.Uint32FromInt32(ENAME_NAME), 0, 0x3) } else { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, zName) @@ -127919,9 +128926,9 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if !(tableSeen != 0) { if zTName != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19913, libc.VaList(bp+8, zTName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20045, libc.VaList(bp+8, zTName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19931, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20063, 0) } } } @@ -127935,7 +128942,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if (*TSelect)(unsafe.Pointer(p)).FpEList != 0 { if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpEList)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19951, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20083, 0) return int32(WRC_Abort) } if elistFlags&uint32(libc.Int32FromInt32(EP_HasFunc)|libc.Int32FromInt32(EP_Subquery)) != uint32(0) { @@ -128297,12 +129304,12 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { pE = (*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFExpr _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(pE + 32)) == uintptr(0) || (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pE + 32)))).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19982, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20114, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct = -int32(1) } else { pKeyInfo = _sqlite3KeyInfoFromExprList(tls, pParse, *(*uintptr)(unsafe.Pointer(pE + 32)), 0, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistAddr = _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct, 0, 0, pKeyInfo, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20033, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20165, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } } if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab >= 0 { @@ -128328,7 +129335,7 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { (*TKeyInfo)(unsafe.Pointer(pKeyInfo1)).FnKeyField++ } _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab, (*TExprList)(unsafe.Pointer(pOBList)).FnExpr+nExtra, 0, pKeyInfo1, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20066, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20198, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } goto _1 _1: @@ -128653,16 +129660,16 @@ func _explainSimpleCount(tls *libc.TLS, pParse uintptr, pTab uintptr, pIdx uintp if int32((*TParse)(unsafe.Pointer(pParse)).Fexplain) == int32(2) { bCover = libc.BoolInt32(pIdx != uintptr(0) && ((*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) || !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == libc.Int32FromInt32(SQLITE_IDXTYPE_PRIMARYKEY)))) if bCover != 0 { - v1 = __ccgo_ts + 20099 + v1 = __ccgo_ts + 20231 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } if bCover != 0 { v2 = (*TIndex)(unsafe.Pointer(pIdx)).FzName } else { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20122, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20254, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) } } @@ -128694,7 +129701,7 @@ func _havingToWhereExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 ** statements AggInfo structure. */ if _sqlite3ExprIsConstantOrGroupBy(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, pExpr, (*TSelect)(unsafe.Pointer(pS)).FpGroupBy) != 0 && libc.BoolInt32((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse)) == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb - pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8139) + pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8264) if pNew != 0 { pWhere = (*TSelect)(unsafe.Pointer(pS)).FpWhere t = *(*TExpr)(unsafe.Pointer(pNew)) @@ -128854,7 +129861,7 @@ func _countOfViewOptimization(tls *libc.TLS, pParse uintptr, p uintptr) (r int32 return 0 } /* Result is an aggregate */ _ = libc.Int32FromInt32(0) - if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15853) != 0 { + if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15946) != 0 { return 0 } /* Is count() */ _ = libc.Int32FromInt32(0) @@ -129127,7 +130134,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { v1 = (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p0)).FpTab)).FzName } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20134, libc.VaList(bp+176, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20266, libc.VaList(bp+176, v1)) goto select_end } /* Clear the SF_UFSrcCheck flag. The check has already been performed, @@ -129230,7 +130237,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Catch mismatch in the declared columns of a view and the number of ** columns in the SELECT on the RHS */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) != (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20188, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20320, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) goto select_end } /* Do not attempt the usual optimizations (flattening and ORDER BY @@ -129368,12 +130375,12 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r ** string for the fake column name seems safer. */ if (*TSrcItem)(unsafe.Pointer(pItem1)).FcolUsed == uint64(0) && (*TSrcItem)(unsafe.Pointer(pItem1)).FzName != uintptr(0) { - _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1657, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) + _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1671, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) } /* Generate code for all sub-queries in the FROM clause */ pSub1 = (*TSrcItem)(unsafe.Pointer(pItem1)).FpSelect - if pSub1 == uintptr(0) { + if pSub1 == uintptr(0) || (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub != 0 { goto _10 } /* The code for a subquery should only be generated once. */ @@ -129414,7 +130421,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn, 0, addrTop) (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub = addrTop _sqlite3SelectDestInit(tls, bp+72, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20228, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20360, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow libc.SetBitFieldPtr16Uint32(pItem1+60+4, libc.Uint32FromInt32(1), 5, 0x20) @@ -129462,7 +130469,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { } _sqlite3SelectDestInit(tls, bp+72, int32(SRT_EphemTab), (*TSrcItem)(unsafe.Pointer(pItem1)).FiCursor) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20243, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20375, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow if onceAddr != 0 { @@ -129880,11 +130887,11 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r groupBySort = 0 } else { if (*(*TDistinctCtx)(unsafe.Pointer(bp))).FisTnct != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Distinct) == uint32(0) { - v44 = __ccgo_ts + 20259 + v44 = __ccgo_ts + 20391 } else { - v44 = __ccgo_ts + 20268 + v44 = __ccgo_ts + 20400 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19156, libc.VaList(bp+176, v44)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19243, libc.VaList(bp+176, v44)) groupBySort = int32(1) nGroupBy = (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr nCol = nGroupBy @@ -130208,7 +131215,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeResolveLabel(tls, v, addrEnd) } /* endif aggregate query */ if int32((*(*TDistinctCtx)(unsafe.Pointer(bp))).FeTnctType) == int32(WHERE_DISTINCT_UNORDERED) { - _explainTempTable(tls, pParse, __ccgo_ts+20259) + _explainTempTable(tls, pParse, __ccgo_ts+20391) } /* If there is an ORDER BY clause, then we need to sort the results ** and send them to the callback one by one. @@ -130226,6 +131233,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Control jumps to here if an error is encountered above, or upon ** successful coding of the SELECT. */ + goto select_end select_end: ; _ = libc.Int32FromInt32(0) @@ -130316,7 +131324,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr if !(i < nCol) { break } - z = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) + z = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) if z == uintptr(0) { goto malloc_failed } @@ -130332,7 +131340,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr } else { if int32((*TTabResult)(unsafe.Pointer(p)).FnColumn) != nCol { Xsqlite3_free(tls, (*TTabResult)(unsafe.Pointer(p)).FzErrMsg) - (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20277, 0) + (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20409, 0) (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) return int32(1) } @@ -130367,6 +131375,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr (*TTabResult)(unsafe.Pointer(p)).FnRow++ } return 0 + goto malloc_failed malloc_failed: ; (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) @@ -130422,7 +131431,7 @@ func Xsqlite3_get_table(tls *libc.TLS, db uintptr, zSql uintptr, pazResult uintp if (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg != 0 { if pzErrMsg != 0 { Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pzErrMsg))) - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) } Xsqlite3_free(tls, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg) } @@ -130592,7 +131601,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if isTemp != 0 { /* If TEMP was specified, then the trigger name may not be qualified. */ if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20342, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20474, 0) goto trigger_cleanup } iDb = int32(1) @@ -130633,7 +131642,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } _ = libc.Int32FromInt32(0) - _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20388, *(*uintptr)(unsafe.Pointer(bp))) + _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20520, *(*uintptr)(unsafe.Pointer(bp))) if _sqlite3FixSrcList(tls, bp+8, pTableName) != 0 { goto trigger_cleanup } @@ -130643,11 +131652,11 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_orphan_error } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20396, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20528, 0) goto trigger_orphan_error } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, db) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20437, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20569, 0) goto trigger_orphan_error } /* Check that the trigger name is not reserved and that no trigger of the @@ -130657,14 +131666,14 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 _ = libc.Int32FromInt32(0) goto trigger_cleanup } - if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20388, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { + if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20520, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { goto trigger_cleanup } _ = libc.Int32FromInt32(0) if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema+56, zName) != 0 { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20477, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20609, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -130673,8 +131682,8 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 } } /* Do not create a trigger on a system table */ - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6534, int32(7)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20503, 0) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6598, int32(7)) == 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20635, 0) goto trigger_cleanup } /* INSTEAD of triggers are only for views and views only support INSTEAD @@ -130682,15 +131691,15 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && tr_tm != int32(TK_INSTEAD) { if tr_tm == int32(TK_BEFORE) { - v1 = __ccgo_ts + 20541 + v1 = __ccgo_ts + 20673 } else { - v1 = __ccgo_ts + 20548 + v1 = __ccgo_ts + 20680 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20554, libc.VaList(bp+112, v1, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20686, libc.VaList(bp+112, v1, pTableName+8)) goto trigger_orphan_error } if !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) && tr_tm == int32(TK_INSTEAD) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20591, libc.VaList(bp+112, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20723, libc.VaList(bp+112, pTableName+8)) goto trigger_orphan_error } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -130710,9 +131719,9 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iTabDb == int32(1) { - v3 = __ccgo_ts + 6542 + v3 = __ccgo_ts + 6606 } else { - v3 = __ccgo_ts + 6075 + v3 = __ccgo_ts + 6139 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto trigger_cleanup @@ -130754,6 +131763,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 pColumns = uintptr(0) _ = libc.Int32FromInt32(0) (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger = pTrigger + goto trigger_cleanup trigger_cleanup: ; _sqlite3DbFree(tls, db, zName) @@ -130766,6 +131776,7 @@ trigger_cleanup: _ = libc.Int32FromInt32(0) } return + goto trigger_orphan_error trigger_orphan_error: ; if int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) == int32(1) { @@ -130812,7 +131823,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl pStepList = (*TTriggerStep)(unsafe.Pointer(pStepList)).FpNext } _sqlite3TokenInit(tls, bp+96, (*TTrigger)(unsafe.Pointer(pTrig)).FzName) - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20388, bp+96) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20520, bp+96) if _sqlite3FixTriggerStep(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).Fstep_list) != 0 || _sqlite3FixExpr(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).FpWhen) != 0 { goto triggerfinish_cleanup } @@ -130835,7 +131846,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl break } if (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget != uintptr(0) && _sqlite3ShadowTableName(tls, db, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20637, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20769, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) goto triggerfinish_cleanup } goto _1 @@ -130851,10 +131862,10 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) z = _sqlite3DbStrNDup(tls, db, (*TToken)(unsafe.Pointer(pAll)).Fz, uint64((*TToken)(unsafe.Pointer(pAll)).Fn)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20685, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20817, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) _sqlite3DbFree(tls, db, z) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20760, libc.VaList(bp+120, zName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20892, libc.VaList(bp+120, zName)), uint16(0)) } } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { @@ -130874,6 +131885,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } } } + goto triggerfinish_cleanup triggerfinish_cleanup: ; _sqlite3DeleteTrigger(tls, db, pTrig) @@ -131129,7 +132141,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int } if !(pTrigger != 0) { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20789, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20921, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, zDb) } @@ -131137,6 +132149,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int goto drop_trigger_cleanup } _sqlite3DropTriggerPtr(tls, pParse, pTrigger) + goto drop_trigger_cleanup drop_trigger_cleanup: ; _sqlite3SrcListDelete(tls, db, pName) @@ -131172,9 +132185,9 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { code = int32(SQLITE_DROP_TRIGGER) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6542 + v1 = __ccgo_ts + 6606 } else { - v1 = __ccgo_ts + 6075 + v1 = __ccgo_ts + 6139 } zTab = v1 if iDb == int32(1) { @@ -131189,7 +132202,7 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { v2 = _sqlite3GetVdbe(tls, pParse) v = v2 if v2 != uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20809, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20941, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropTrigger), iDb, 0, 0, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName, 0) } @@ -131325,11 +132338,11 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { if op != int32(TK_INSERT) { if op == int32(TK_DELETE) { - v1 = __ccgo_ts + 20871 + v1 = __ccgo_ts + 21003 } else { - v1 = __ccgo_ts + 20878 + v1 = __ccgo_ts + 21010 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20885, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21017, libc.VaList(bp+8, v1)) } (*TTrigger)(unsafe.Pointer(p)).Ftr_tm = uint8(TRIGGER_BEFORE) } else { @@ -131346,6 +132359,7 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, p = (*TTrigger)(unsafe.Pointer(p)).FpNext } } + goto exit_triggers_exist exit_triggers_exist: ; if pMask != 0 { @@ -131435,7 +132449,7 @@ func _isAsteriskTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pTerm)).FpRight)).Fop) != int32(TK_ASTERISK) { return 0 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20933, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21065, 0) return int32(1) } @@ -131500,6 +132514,81 @@ func _sqlite3ExpandReturning(tls *libc.TLS, pParse uintptr, pList uintptr, pTab return pNew } +// C documentation +// +// /* If the Expr node is a subquery or an EXISTS operator or an IN operator that +// ** uses a subquery, and if the subquery is SF_Correlated, then mark the +// ** expression as EP_VarSelect. +// */ +func _sqlite3ReturningSubqueryVarSelect(tls *libc.TLS, NotUsed uintptr, pExpr uintptr) (r int32) { + _ = NotUsed + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) && (*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FselFlags&uint32(SF_Correlated) != uint32(0) { + *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** If the SELECT references the table pWalker->u.pTab, then do two things: +// ** +// ** (1) Mark the SELECT as as SF_Correlated. +// ** (2) Set pWalker->eCode to non-zero so that the caller will know +// ** that (1) has happened. +// */ +func _sqlite3ReturningSubqueryCorrelated(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + var i int32 + var pSrc uintptr + _, _ = i, pSrc + _ = libc.Int32FromInt32(0) + pSrc = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + _ = libc.Int32FromInt32(0) + i = 0 + for { + if !(i < (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) { + break + } + if (*(*TSrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104))).FpTab == *(*uintptr)(unsafe.Pointer(pWalker + 40)) { + *(*Tu32)(unsafe.Pointer(pSelect + 4)) |= uint32(SF_Correlated) + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + break + } + goto _1 + _1: + ; + i++ + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Scan the expression list that is the argument to RETURNING looking +// ** for subqueries that depend on the table which is being modified in the +// ** statement that is hosting the RETURNING clause (pTab). Mark all such +// ** subqueries as SF_Correlated. If the subqueries are part of an +// ** expression, mark the expression as EP_VarSelect. +// ** +// ** https://sqlite.org/forum/forumpost/2c83569ce8945d39 +// */ +func _sqlite3ProcessReturningSubqueries(tls *libc.TLS, pEList uintptr, pTab uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ExprWalkNoop) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3ReturningSubqueryCorrelated) + *(*uintptr)(unsafe.Pointer(bp + 40)) = pTab + _sqlite3WalkExprList(tls, bp, pEList) + if (*(*TWalker)(unsafe.Pointer(bp))).FeCode != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ReturningSubqueryVarSelect) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) + _sqlite3WalkExprList(tls, bp, pEList) + } +} + // C documentation // // /* @@ -131536,6 +132625,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab (*(*TSelect)(unsafe.Pointer(bp))).FpSrc = bp + 128 (*(*TSrcList)(unsafe.Pointer(bp + 128))).FnSrc = int32(1) (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FpTab = pTab + (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FzName = (*TTable)(unsafe.Pointer(pTab)).FzName /* tag-20240424-1 */ (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FiCursor = -int32(1) _sqlite3SelectPrep(tls, pParse, bp, uintptr(0)) if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { @@ -131561,6 +132651,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab if _sqlite3ResolveExprListNames(tls, bp+240, pNew) == SQLITE_OK && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) { nCol = (*TExprList)(unsafe.Pointer(pNew)).FnExpr reg = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(1) + _sqlite3ProcessReturningSubqueries(tls, pNew, pTab) *(*int32)(unsafe.Pointer(pParse + 56)) += nCol + int32(2) (*TReturning)(unsafe.Pointer(pReturning)).FiRetReg = reg i = 0 @@ -131633,7 +132724,7 @@ func _codeTriggerProgram(tls *libc.TLS, pParse uintptr, pStepList uintptr, orcon (*TParse)(unsafe.Pointer(pParse)).FeOrconf = uint8(v2) _ = libc.Int32FromInt32(0) if (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6272, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6336, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) } switch int32((*TTriggerStep)(unsafe.Pointer(pStep)).Fop) { case int32(TK_UPDATE): @@ -131740,7 +132831,7 @@ func _codeRowTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab uintp v = _sqlite3GetVdbe(tls, bp+56) if v != 0 { if (*TTrigger)(unsafe.Pointer(pTrigger)).FzName != 0 { - _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+20975, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) + _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+21107, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) } /* If one was specified, code the WHEN clause. If it evaluates to false ** (or NULL) the sub-vdbe is immediately halted by jumping to the @@ -132454,7 +133545,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui chngPk = uint8(1) } else { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20989, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21121, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto update_cleanup } } @@ -132474,13 +133565,13 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui pRowidExpr = (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FpExpr iRowidExpr = i } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21025, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21157, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto update_cleanup } } if j < 0 { - v11 = __ccgo_ts + 7914 + v11 = __ccgo_ts + 8039 } else { v11 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName } @@ -133176,8 +134267,9 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui ** that information. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21044) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21176) } + goto update_cleanup update_cleanup: ; _sqlite3AuthContextPop(tls, bp) @@ -133624,9 +134716,9 @@ func _sqlite3UpsertAnalyzeTarget(tls *libc.TLS, pParse uintptr, pTabList uintptr if nClause == 0 && (*TUpsert)(unsafe.Pointer(pUpsert)).FpNextUpsert == uintptr(0) { (*(*[16]uint8)(unsafe.Pointer(bp + 200)))[0] = uint8(0) } else { - Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21057, libc.VaList(bp+224, nClause+int32(1))) + Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21189, libc.VaList(bp+224, nClause+int32(1))) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21061, libc.VaList(bp+224, bp+200)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21193, libc.VaList(bp+224, bp+200)) return int32(SQLITE_ERROR) } goto _1 @@ -133732,7 +134824,7 @@ func _sqlite3UpsertDoUpdate(tls *libc.TLS, pParse uintptr, pUpsert uintptr, pTab i++ } i = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), iDataCur, 0, iPk, nPk) - _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12479, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12604, -int32(1)) _sqlite3MayAbort(tls, pParse) _sqlite3VdbeJumpHere(tls, v, i) } @@ -133815,7 +134907,7 @@ func _execSql(tls *libc.TLS, db uintptr, pzErrMsg uintptr, zSql uintptr) (r int3 ** corrupt the sqlite_schema.sql field with other kinds of statements ** then run VACUUM to get those statements to execute at inappropriate ** times. */ - if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21134, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21138, uint64(3)) == 0) { + if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21266, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21270, uint64(3)) == 0) { rc = _execSql(tls, db, pzErrMsg, zSubSql) if rc != SQLITE_OK { break @@ -133916,6 +135008,7 @@ func _sqlite3Vacuum(tls *libc.TLS, pParse uintptr, _pNm uintptr, pInto uintptr) _sqlite3VdbeAddOp2(tls, v, int32(OP_Vacuum), iDb, iIntoReg) _sqlite3VdbeUsesBtree(tls, v, iDb) } + goto build_vacuum_end build_vacuum_end: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pInto) @@ -133943,24 +135036,24 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p pDb = uintptr(0) /* Name of output file */ pgflags = uint32(PAGER_SYNCHRONOUS_OFF) /* sync flags for output db */ if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21142) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21274) return int32(SQLITE_ERROR) /* IMP: R-12218-18073 */ } if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive > int32(1) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21182) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21314) return int32(SQLITE_ERROR) /* IMP: R-15610-35227 */ } saved_openFlags = (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags if pOut != 0 { if Xsqlite3_value_type(tls, pOut) != int32(SQLITE_TEXT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21225) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21357) return int32(SQLITE_ERROR) } zOut = Xsqlite3_value_text(tls, pOut) *(*uint32)(unsafe.Pointer(db + 76)) &= uint32(^libc.Int32FromInt32(SQLITE_OPEN_READONLY)) *(*uint32)(unsafe.Pointer(db + 76)) |= uint32(libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE)) } else { - zOut = __ccgo_ts + 1657 + zOut = __ccgo_ts + 1671 } /* Save the current value of the database flags so that it can be ** restored before returning. Then set the writable-schema flag, and @@ -133992,7 +135085,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** to write the journal header file. */ nDb = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21243, libc.VaList(bp+24, zOut)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21375, libc.VaList(bp+24, zOut)) (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags = saved_openFlags if rc != SQLITE_OK { goto end_of_vacuum @@ -134006,7 +135099,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p *(*Ti64)(unsafe.Pointer(bp)) = 0 if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != uintptr(0) && (_sqlite3OsFileSize(tls, id, bp) != SQLITE_OK || *(*Ti64)(unsafe.Pointer(bp)) > 0) { rc = int32(SQLITE_ERROR) - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21266) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21398) goto end_of_vacuum } *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_VacuumInto) @@ -134023,7 +135116,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** file. This is done before the sqlite3BtreeGetPageSize(pMain) call below, ** to ensure that we do not try to change the page-size on a WAL database. */ - rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14888) + rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14981) if rc != SQLITE_OK { goto end_of_vacuum } @@ -134054,11 +135147,11 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** in the temporary database. */ (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(nDb) /* force new CREATE statements into vacuum_db */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21293, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21425, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21401, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21533, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } @@ -134067,7 +135160,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** an "INSERT INTO vacuum_db.xxx SELECT * FROM main.xxx;" to copy ** the contents to the temporary database. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21455, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21587, libc.VaList(bp+24, zDbMain)) _ = libc.Int32FromInt32(0) *(*Tu32)(unsafe.Pointer(db + 44)) &= uint32(^libc.Int32FromInt32(DBFLAG_Vacuum)) if rc != SQLITE_OK { @@ -134078,7 +135171,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** associated storage, so all we have to do is copy their entries ** from the schema table. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21606, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21738, libc.VaList(bp+24, zDbMain)) if rc != 0 { goto end_of_vacuum } @@ -134120,6 +135213,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p nRes = _sqlite3BtreeGetRequestedReserve(tls, pTemp) rc = _sqlite3BtreeSetPageSize(tls, pMain, _sqlite3BtreeGetPageSize(tls, pTemp), nRes, int32(1)) } + goto end_of_vacuum end_of_vacuum: ; /* Restore the original value of db->flags */ @@ -134625,7 +135719,7 @@ func _addModuleArgument(tls *libc.TLS, pParse uintptr, pTable uintptr, zArg uint FazArg uintptr Fp uintptr })(unsafe.Pointer(pTable + 64))).FnArg+int32(3) >= *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12709, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12834, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) } azModuleArg = _sqlite3DbRealloc(tls, db, (*(*struct { FnArg int32 @@ -134752,7 +135846,7 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { if pEnd != 0 { (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fn = uint32(int32(int64((*TToken)(unsafe.Pointer(pEnd)).Fz)-int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz))) + (*TToken)(unsafe.Pointer(pEnd)).Fn } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21736, libc.VaList(bp+8, pParse+272)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21868, libc.VaList(bp+8, pParse+272)) /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. @@ -134762,11 +135856,11 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { ** by sqlite3StartTable(). */ iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+21760, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+21892, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) v = _sqlite3GetVdbe(tls, pParse) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) - zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21859, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) + zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21991, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, zWhere, uint16(0)) _sqlite3DbFree(tls, db, zStmt) v2 = pParse + 56 @@ -134856,7 +135950,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, break } if (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab == pTab { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21878, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22010, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(SQLITE_LOCKED) } goto _1 @@ -134893,6 +135987,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = bp (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+16, bp+32) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -134901,9 +135997,9 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, _ = libc.Int32FromInt32(0) if SQLITE_OK != rc { if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21920, libc.VaList(bp+48, zModuleName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22052, libc.VaList(bp+48, zModuleName)) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3804, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3868, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) } _sqlite3DbFree(tls, db, pVTable) @@ -134916,8 +136012,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*TModule)(unsafe.Pointer(pMod)).FnRefModule++ (*TVTable)(unsafe.Pointer(pVTable)).FnRef = int32(1) if (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared == 0 { - zFormat = __ccgo_ts + 21950 - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + zFormat = __ccgo_ts + 22082 + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, zModuleName)) _sqlite3VtabUnlock(tls, pVTable) rc = int32(SQLITE_ERROR) } else { @@ -134942,7 +136038,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(iCol < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } - zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1657) + zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1671) i = 0 nType = _sqlite3Strlen30(tls, zType) i = 0 @@ -134950,7 +136046,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(i < nType) { break } - if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16594, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { + if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16681, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { break } goto _3 @@ -135034,13 +136130,13 @@ func _sqlite3VtabCallConnect(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).FazArg)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21996, libc.VaList(bp+16, zModule)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22128, libc.VaList(bp+16, zModule)) rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxConnect, bp) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3804, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3868, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) (*TParse)(unsafe.Pointer(pParse)).Frc = rc } _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) @@ -135122,7 +136218,7 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, ** error. Otherwise, do nothing. */ if pMod == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxDestroy == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21996, libc.VaList(bp+8, zMod)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22128, libc.VaList(bp+8, zMod)) rc = int32(SQLITE_ERROR) } else { rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate, pzErr) @@ -135148,18 +136244,42 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r int32) { bp := tls.Alloc(448) defer tls.Free(448) - var initBusy, rc int32 - var pCtx, pIdx, pNew, pTab, v2 uintptr - var v1 Ti16 + var i, initBusy, rc int32 + var pCtx, pIdx, pNew, pTab, z, v3 uintptr + var v2 Ti16 var _ /* sParse at bp+0 */ TParse - _, _, _, _, _, _, _, _ = initBusy, pCtx, pIdx, pNew, pTab, rc, v1, v2 + var _ /* tokenType at bp+424 */ int32 + _, _, _, _, _, _, _, _, _, _ = i, initBusy, pCtx, pIdx, pNew, pTab, rc, z, v2, v3 rc = SQLITE_OK + /* Verify that the first two keywords in the CREATE TABLE statement + ** really are "CREATE" and "TABLE". If this is not the case, then + ** sqlite3_declare_vtab() is being misused. + */ + z = zCreateTable + i = 0 + for { + if !(_aKeyword1[i] != 0) { + break + } + *(*int32)(unsafe.Pointer(bp + 424)) = 0 + for cond := true; cond; cond = *(*int32)(unsafe.Pointer(bp + 424)) == int32(TK_SPACE) { + z += uintptr(_sqlite3GetToken(tls, z, bp+424)) + } + if *(*int32)(unsafe.Pointer(bp + 424)) != int32(_aKeyword1[i]) { + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+22147, 0) + return int32(SQLITE_ERROR) + } + goto _1 + _1: + ; + i++ + } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pCtx = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(pCtx != 0) || (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared != 0 { - _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(155155))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(156227))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(155157)) + return _sqlite3MisuseError(tls, int32(156229)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _ = libc.Int32FromInt32(0) @@ -135173,7 +136293,10 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i initBusy = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) (*(*TParse)(unsafe.Pointer(bp))).FnQueryLoop = int16(1) - if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) && (*(*TParse)(unsafe.Pointer(bp))).FpNewTable != uintptr(0) && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && int32((*TTable)(unsafe.Pointer((*(*TParse)(unsafe.Pointer(bp))).FpNewTable)).FeTabType) == TABTYP_NORM { + if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if !((*TTable)(unsafe.Pointer(pTab)).FaCol != 0) { pNew = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable @@ -135183,9 +136306,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpDfltList) - v1 = (*TTable)(unsafe.Pointer(pNew)).FnCol - (*TTable)(unsafe.Pointer(pTab)).FnCol = v1 - (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v1 + v2 = (*TTable)(unsafe.Pointer(pNew)).FnCol + (*TTable)(unsafe.Pointer(pTab)).FnCol = v2 + (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v2 *(*Tu32)(unsafe.Pointer(pTab + 48)) |= (*TTable)(unsafe.Pointer(pNew)).FtabFlags & uint32(libc.Int32FromInt32(TF_WithoutRowid)|libc.Int32FromInt32(TF_NoVisibleRowid)) (*TTable)(unsafe.Pointer(pNew)).FnCol = 0 (*TTable)(unsafe.Pointer(pNew)).FaCol = uintptr(0) @@ -135207,11 +136330,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared = int32(1) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - v2 = __ccgo_ts + 3804 + v3 = __ccgo_ts + 3868 } else { - v2 = uintptr(0) + v3 = uintptr(0) } - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v2, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v3, libc.VaList(bp+440, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) rc = int32(SQLITE_ERROR) } @@ -135228,6 +136351,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i return rc } +var _aKeyword1 = [3]Tu8{ + 0: uint8(TK_CREATE), + 1: uint8(TK_TABLE), +} + // C documentation // // /* @@ -135689,7 +136817,7 @@ func _sqlite3VtabEponymousTableInit(tls *libc.TLS, pParse uintptr, pMod uintptr) _addModuleArgument(tls, pParse, pTab, _sqlite3DbStrDup(tls, db, (*TTable)(unsafe.Pointer(pTab)).FzName)) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer(pModule)).FxConnect, bp) if rc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3804, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3868, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3VtabEponymousTableClear(tls, db, pMod) } @@ -135756,7 +136884,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) p = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(p != 0) { - rc = _sqlite3MisuseError(tls, int32(155651)) + rc = _sqlite3MisuseError(tls, int32(156723)) } else { _ = libc.Int32FromInt32(0) ap = va @@ -135770,7 +136898,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in case int32(SQLITE_VTAB_USES_ALL_SCHEMAS): (*TVTable)(unsafe.Pointer((*TVtabCtx)(unsafe.Pointer(p)).FpVTable)).FbAllSchemas = uint8(1) default: - rc = _sqlite3MisuseError(tls, int32(155673)) + rc = _sqlite3MisuseError(tls, int32(156745)) break } _ = ap @@ -136492,10 +137620,10 @@ type WhereInfo1 = TWhereInfo1 func _explainIndexColumnName(tls *libc.TLS, pIdx uintptr, i int32) (r uintptr) { i = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) if i == -int32(2) { - return __ccgo_ts + 22015 + return __ccgo_ts + 22160 } if i == -int32(1) { - return __ccgo_ts + 16703 + return __ccgo_ts + 16790 } return (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(i)*16))).FzCnName } @@ -136515,10 +137643,10 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, _ = i _ = libc.Int32FromInt32(0) if bAnd != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22022, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22167, int32(5)) } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22028, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22173, int32(1)) } i = 0 for { @@ -136526,7 +137654,7 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13099, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13224, int32(1)) } Xsqlite3_str_appendall(tls, pStr, _explainIndexColumnName(tls, pIdx, iTerm+i)) goto _1 @@ -136535,11 +137663,11 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5115, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5179, int32(1)) } Xsqlite3_str_append(tls, pStr, zOp, int32(1)) if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22028, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22173, int32(1)) } i = 0 for { @@ -136547,16 +137675,16 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13099, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13224, int32(1)) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5117, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5181, int32(1)) goto _2 _2: ; i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5115, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5179, int32(1)) } } @@ -136589,7 +137717,7 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { if int32(nEq) == 0 && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) == uint32(0) { return } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22030, int32(2)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22175, int32(2)) i = 0 for { if !(i < int32(nEq)) { @@ -136597,12 +137725,12 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } z = _explainIndexColumnName(tls, pIndex, i) if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22022, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22167, int32(5)) } if i >= int32(nSkip) { - v2 = __ccgo_ts + 22033 + v2 = __ccgo_ts + 22178 } else { - v2 = __ccgo_ts + 22038 + v2 = __ccgo_ts + 22183 } Xsqlite3_str_appendf(tls, pStr, v2, libc.VaList(bp+8, z)) goto _1 @@ -136612,13 +137740,13 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } j = i if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_BTM_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22046) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22191) i = int32(1) } if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_TOP_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22048) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22193) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5115, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5179, int32(1)) } // C documentation @@ -136661,11 +137789,11 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if isSearch != 0 { - v2 = __ccgo_ts + 22050 + v2 = __ccgo_ts + 22195 } else { - v2 = __ccgo_ts + 22057 + v2 = __ccgo_ts + 22202 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22062, libc.VaList(bp+144, v2, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22207, libc.VaList(bp+144, v2, pItem)) if flags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_VIRTUALTABLE)) == uint32(0) { zFmt = uintptr(0) _ = libc.Int32FromInt32(0) @@ -136673,37 +137801,37 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _ = libc.Int32FromInt32(0) if !((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) && int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { if isSearch != 0 { - zFmt = __ccgo_ts + 11262 + zFmt = __ccgo_ts + 11387 } } else { if flags&uint32(WHERE_PARTIALIDX) != 0 { - zFmt = __ccgo_ts + 22068 + zFmt = __ccgo_ts + 22213 } else { if flags&uint32(WHERE_AUTO_INDEX) != 0 { - zFmt = __ccgo_ts + 22101 + zFmt = __ccgo_ts + 22246 } else { if flags&uint32(WHERE_IDX_ONLY) != 0 { - zFmt = __ccgo_ts + 22126 + zFmt = __ccgo_ts + 22271 } else { - zFmt = __ccgo_ts + 22144 + zFmt = __ccgo_ts + 22289 } } } } if zFmt != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22153, int32(7)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22298, int32(7)) Xsqlite3_str_appendf(tls, bp, zFmt, libc.VaList(bp+144, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) _explainIndexRange(tls, bp, pLoop) } } else { if flags&uint32(WHERE_IPK) != uint32(0) && flags&uint32(WHERE_CONSTRAINT) != uint32(0) { - zRowid = __ccgo_ts + 16703 - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22161, libc.VaList(bp+144, zRowid)) + zRowid = __ccgo_ts + 16790 + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22306, libc.VaList(bp+144, zRowid)) if flags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != 0 { cRangeOp = uint8('=') } else { if flags&uint32(WHERE_BOTH_LIMIT) == uint32(WHERE_BOTH_LIMIT) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22192, libc.VaList(bp+144, zRowid)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22337, libc.VaList(bp+144, zRowid)) cRangeOp = uint8('<') } else { if flags&uint32(WHERE_BTM_LIMIT) != 0 { @@ -136714,10 +137842,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22202, libc.VaList(bp+144, int32(cRangeOp))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22347, libc.VaList(bp+144, int32(cRangeOp))) } else { if flags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22207, libc.VaList(bp+144, (*(*struct { + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22352, libc.VaList(bp+144, (*(*struct { FidxNum int32 F__ccgo4 uint8 FisOrdered Ti8 @@ -136736,7 +137864,7 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } if int32((*TSrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&int32(JT_LEFT) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22234, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22379, 0) } zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) @@ -136770,14 +137898,14 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Initial space for EQP output string */ _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22245, libc.VaList(bp+144, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22390, libc.VaList(bp+144, pItem)) pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_IPK) != 0 { pTab = (*TSrcItem)(unsafe.Pointer(pItem)).FpTab if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22033, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22178, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) } else { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22266, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22411, 0) } } else { i = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) @@ -136787,16 +137915,16 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp } z = _explainIndexColumnName(tls, (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex, i) if i > int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22022, int32(5)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22167, int32(5)) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22033, libc.VaList(bp+144, z)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22178, libc.VaList(bp+144, z)) goto _1 _1: ; i++ } } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5115, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5179, int32(1)) zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) return ret @@ -137662,6 +138790,35 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 } } +// C documentation +// +// /* +// ** Loop pLoop is a WHERE_INDEXED level that uses at least one IN(...) +// ** operator. Return true if level pLoop is guaranteed to visit only one +// ** row for each key generated for the index. +// */ +func _whereLoopIsOneRow(tls *libc.TLS, pLoop uintptr) (r int32) { + var ii int32 + _ = ii + if (*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FonError != 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) == 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq) == int32((*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FnKeyCol) { + ii = 0 + for { + if !(ii < int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq)) { + break + } + if int32((*TWhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(ii)*8)))).FeOperator)&(libc.Int32FromInt32(WO_IS)|libc.Int32FromInt32(WO_ISNULL)) != 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) + } + return 0 +} + // C documentation // // /* @@ -138392,7 +139549,10 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI _ = libc.Int32FromInt32(0) } /* Record the instruction used to terminate the loop. */ - if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 { + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 || (*(*struct { + FnIn int32 + FaInLoop uintptr + })(unsafe.Pointer(pLevel + 72))).FnIn != 0 && regBignull == 0 && _whereLoopIsOneRow(tls, pLoop) != 0 { (*TWhereLevel)(unsafe.Pointer(pLevel)).Fop = uint8(OP_Noop) } else { if bRev != 0 { @@ -138569,7 +139729,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** eliminating duplicates from other WHERE clauses, the action for each ** sub-WHERE clause is to to invoke the main loop body as a subroutine. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22274, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22419, 0) ii = 0 for { if !(ii < (*TWhereClause)(unsafe.Pointer(pOrWc)).FnTerm) { @@ -138592,7 +139752,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI pOrExpr = pAndExpr } /* Loop through table entries that match term pOrTerm. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22289, libc.VaList(bp+96, ii+int32(1))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22434, libc.VaList(bp+96, ii+int32(1))) pSubWInfo = _sqlite3WhereBegin(tls, pParse, pOrTab, pOrExpr, uintptr(0), uintptr(0), uintptr(0), uint16(WHERE_OR_SUBCLAUSE), iCovCur) _ = libc.Int32FromInt32(0) if pSubWInfo != 0 { @@ -138763,6 +139923,12 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** iLoop==3: Code all remaining expressions. ** ** An effort is made to skip unnecessary iterations of the loop. + ** + ** This optimization of causing simple query restrictions to occur before + ** more complex one is call the "push-down" optimization in MySQL. Here + ** in SQLite, the name is "MySQL push-down", since there is also another + ** totally unrelated optimization called "WHERE-clause push-down". + ** Sometimes the qualifier is omitted, resulting in an ambiguity, so beware. */ if pIdx != 0 { v60 = int32(1) @@ -138964,6 +140130,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** to the results of the OUTER JOIN. The following loop generates the ** appropriate WHERE clause constraint checks. tag-20220513a. */ + goto code_outer_join_constraints code_outer_join_constraints: ; pTerm = (*TWhereClause)(unsafe.Pointer(pWC)).Fa @@ -139068,9 +140235,9 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe defer tls.Free(128) var addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, nPk, r, v3 int32 var mAll TBitmask - var pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr + var pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr var _ /* sFrom at bp+0 */ TSrcList - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pRJ = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpRJ @@ -139079,13 +140246,18 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop pTabItem = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 mAll = uint64(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22298, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22443, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) k = 0 for { if !(k < iLevel) { break } + _ = libc.Int32FromInt32(0) + pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*104 mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x20>>5)) != 0 { + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pRight)).FpSelect)).FpEList)).FnExpr-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiTabCur) iIdxCur = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiIdxCur if iIdxCur != 0 { @@ -139620,19 +140792,19 @@ var _aOp = [4]struct { FeOp2 uint8 }{ 0: { - FzOp: __ccgo_ts + 16552, + FzOp: __ccgo_ts + 16639, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_MATCH), }, 1: { - FzOp: __ccgo_ts + 15883, + FzOp: __ccgo_ts + 15976, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_GLOB), }, 2: { - FzOp: __ccgo_ts + 15362, + FzOp: __ccgo_ts + 15455, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_LIKE), }, 3: { - FzOp: __ccgo_ts + 22312, + FzOp: __ccgo_ts + 22457, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_REGEXP), }, } @@ -140291,7 +141463,7 @@ func _exprMightBeIndexed2(tls *libc.TLS, pFrom uintptr, aiCurCol uintptr, pExpr goto _4 } _ = libc.Int32FromInt32(0) - if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_STRING) { + if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && !(_sqlite3ExprIsConstant(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr) != 0) { *(*int32)(unsafe.Pointer(aiCurCol)) = iCur *(*int32)(unsafe.Pointer(aiCurCol + 1*4)) = -int32(2) return int32(1) @@ -140451,7 +141623,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { extraRight = x - uint64(1) /* ON clause terms may not be used with an index ** on left table of a LEFT JOIN. Ticket #3015 */ if prereqAll>>libc.Int32FromInt32(1) >= x { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22319, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22464, 0) return } } else { @@ -140463,7 +141635,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { ** if there is a RIGHT or FULL JOIN in the query. This makes SQLite ** more like other systems, and also preserves legacy. */ if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc > 0 && int32((*(*TSrcItem)(unsafe.Pointer(pSrc + 8))).Ffg.Fjointype)&int32(JT_LTORJ) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22319, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22464, 0) return } *(*Tu32)(unsafe.Pointer(pExpr + 4)) &= uint32(^libc.Int32FromInt32(EP_InnerON)) @@ -140554,7 +141726,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { if op == int32(TK_ISNULL) && !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != libc.Uint32FromInt32(0)) && 0 == _sqlite3ExprCanBeNull(tls, pLeft) { _ = libc.Int32FromInt32(0) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_TRUEFALSE) /* See tag-20230504-1 */ - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 7900 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 8025 *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_IsFalse)) (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqAll = uint64(0) (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator = uint16(0) @@ -140657,7 +141829,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { *(*Tu8)(unsafe.Pointer(pC)) = uint8(int32(c1) + int32(1)) } if *(*int32)(unsafe.Pointer(bp + 12)) != 0 { - v13 = __ccgo_ts + 22360 + v13 = __ccgo_ts + 22505 } else { v13 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } @@ -140930,6 +142102,9 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FleftCursor != iCsr { return } + if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FprereqRight != uint64(0) { + return + } goto _1 _1: ; @@ -140960,10 +142135,12 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { } /* All conditions are met. Add the terms to the where-clause object. */ _ = libc.Int32FromInt32(0) - _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) - if (*TSelect)(unsafe.Pointer(p)).FiOffset > 0 { + if (*TSelect)(unsafe.Pointer(p)).FiOffset != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiOffset, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpRight, iCsr, int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } + if (*TSelect)(unsafe.Pointer(p)).FiOffset == 0 || (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { + _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) + } } } @@ -141195,7 +142372,7 @@ func _sqlite3WhereTabFuncArgs(tls *libc.TLS, pParse uintptr, pItem uintptr, pWC k++ } if k >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22367, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22512, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) return } pColRef = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_COLUMN), uintptr(0), 0) @@ -141530,6 +142707,7 @@ func _whereOrInsert(tls *libc.TLS, pSet uintptr, prereq TBitmask, rRun TLogEst, return 0 } } + goto whereOrInsert_done whereOrInsert_done: ; (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq = prereq @@ -141636,6 +142814,50 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { return uintptr(0) } +// C documentation +// +// /* +// ** Term pTerm is guaranteed to be a WO_IN term. It may be a component term +// ** of a vector IN expression of the form "(x, y, ...) IN (SELECT ...)". +// ** This function checks to see if the term is compatible with an index +// ** column with affinity idxaff (one of the SQLITE_AFF_XYZ values). If so, +// ** it returns a pointer to the name of the collation sequence (e.g. "BINARY" +// ** or "NOCASE") used by the comparison in pTerm. If it is not compatible +// ** with affinity idxaff, NULL is returned. +// */ +func _indexInAffinityOk(tls *libc.TLS, pParse uintptr, pTerm uintptr, idxaff Tu8) (r uintptr) { + bp := tls.Alloc(80) + defer tls.Free(80) + var iField int32 + var pRet, pX, v1 uintptr + var _ /* inexpr at bp+0 */ TExpr + _, _, _, _ = iField, pRet, pX, v1 + pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr + _ = libc.Int32FromInt32(0) + if _sqlite3ExprIsVector(tls, (*TExpr)(unsafe.Pointer(pX)).FpLeft) != 0 { + iField = (*(*struct { + FleftColumn int32 + FiField int32 + })(unsafe.Pointer(pTerm + 32))).FiField - int32(1) + (*(*TExpr)(unsafe.Pointer(bp))).Fflags = uint32(0) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_EQ) + (*(*TExpr)(unsafe.Pointer(bp))).FpLeft = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pX)).FpLeft + 32)) + 8 + uintptr(iField)*32))).FpExpr + _ = libc.Int32FromInt32(0) + (*(*TExpr)(unsafe.Pointer(bp))).FpRight = (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pX + 32)))).FpEList + 8 + uintptr(iField)*32))).FpExpr + pX = bp + } + if _sqlite3IndexAffinityOk(tls, pX, idxaff) != 0 { + pRet = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pRet != 0 { + v1 = (*TCollSeq)(unsafe.Pointer(pRet)).FzName + } else { + v1 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + return v1 + } + return uintptr(0) +} + // C documentation // // /* @@ -141646,10 +142868,10 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { var iColumn Ti16 var iCur, j, k int32 - var pColl, pParse, pTerm, pWC, pX, v2 uintptr - var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, v2, v3, v5 /* The term being tested */ - k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ + var pColl, pParse, pTerm, pWC, pX, zCollName, v2, v5 uintptr + var v3, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, zCollName, v2, v3, v5, v6 /* The term being tested */ + k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ _ = libc.Int32FromInt32(0) pWC = (*TWhereScan)(unsafe.Pointer(pScan)).FpWC for int32(1) != 0 { @@ -141697,22 +142919,32 @@ func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { if (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName != 0 && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_ISNULL) == 0 { pParse = (*TWhereInfo)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr - if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { - goto _1 - } - _ = libc.Int32FromInt32(0) - pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) - if pColl == uintptr(0) { - pColl = (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FpDfltColl + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_IN) != 0 { + zCollName = _indexInAffinityOk(tls, pParse, pTerm, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) + if !(zCollName != 0) { + goto _1 + } + } else { + if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { + goto _1 + } + _ = libc.Int32FromInt32(0) + pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pColl != 0 { + v5 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName + } else { + v5 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + zCollName = v5 } - if _sqlite3StrICmp(tls, (*TCollSeq)(unsafe.Pointer(pColl)).FzName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { + if _sqlite3StrICmp(tls, zCollName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { goto _1 } } - if v5 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v5 { + if v6 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v6 { pX = (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight } - if v5 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { + if v6 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { goto _1 } (*TWhereScan)(unsafe.Pointer(pScan)).FpWC = pWC @@ -142206,7 +143438,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea /* Make the automatic index a partial index if there are terms in the ** WHERE clause (or the ON clause of a LEFT join) that constrain which ** rows of the target table (pSrc) that can be used. */ - if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)) != 0 { + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom), 0) != 0 { pPartial = _sqlite3ExprAnd(tls, pParse, pPartial, _sqlite3ExprDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr, 0)) } if _termCanDriveIndex(tls, pTerm, pSrc, notReady) != 0 { @@ -142222,7 +143454,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea } cMask = v2 if !(sentWarning != 0) { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_WARNING)|libc.Int32FromInt32(1)<>14)) != 0) { eDistinct = int32(2) + libc.BoolInt32(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_SORTBYGROUP) != 0) } else { if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_GROUPBY) != 0 { @@ -142717,7 +143950,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB */ pIdxInfo = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(96)+(libc.Uint64FromInt64(12)+libc.Uint64FromInt64(8))*uint64(nTerm)+uint64(8)*uint64(nOrderBy)+uint64(40)+uint64(8)*uint64(nTerm)) if pIdxInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1627, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1641, 0) return uintptr(0) } pHidden = pIdxInfo + 1*96 @@ -142809,7 +144042,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB break } pExpr1 = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr - if _sqlite3ExprIsConstant(tls, pExpr1) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr1) != 0 { goto _11 } _ = libc.Int32FromInt32(0) @@ -142888,9 +144121,9 @@ func _vtabBestIndex(tls *libc.TLS, pParse uintptr, pTab uintptr, p uintptr) (r i _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) } else { if !((*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3804, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3868, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3804, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3868, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) } } } @@ -144262,7 +145495,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x4>>2)) != 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) } - if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 && int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x2>>1)) == 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ) | libc.Int32FromInt32(WO_IN) | libc.Int32FromInt32(WO_IS)) } } @@ -144514,10 +145747,13 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } } } - /* Set rCostIdx to the cost of visiting selected rows in index. Add - ** it to pNew->rRun, which is currently set to the cost of the index - ** seek only. Then, if this is a non-covering index, add the cost of - ** visiting the rows in the main table. */ + /* Set rCostIdx to the estimated cost of visiting selected rows in the + ** index. The estimate is the sum of two values: + ** 1. The cost of doing one search-by-key to find the first matching + ** entry + ** 2. Stepping forward in the index pNew->nOut times to find all + ** additional matching entries. + */ _ = libc.Int32FromInt32(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_IPK) { /* The pProbe->szIdxRow is low for an IPK table since the interior @@ -144528,7 +145764,14 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } else { rCostIdx = int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut) + int32(1) + int32(15)*int32((*TIndex)(unsafe.Pointer(pProbe)).FszIdxRow)/int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FszTabRow)) } - (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + rCostIdx = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + /* Estimate the cost of running the loop. If all data is coming + ** from the index, then this is just the cost of doing the index + ** lookup and scan. But if some data is coming out of the main table, + ** we also have to add in the cost of doing pNew->nOut searches to + ** locate the row in the main table that corresponds to the index entry. + */ + (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = rCostIdx if (*TWhereLoop)(unsafe.Pointer(pNew)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IDX_ONLY)|libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_EXPRIDX)) == uint32(0) { (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun, int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut)+int32(16))) } @@ -144634,7 +145877,7 @@ func _indexMightHelpWithOrderBy(tls *libc.TLS, pBuilder uintptr, pIndex uintptr, if pExpr == uintptr(0) { goto _2 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { + if (int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) || int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_COLUMN)) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) < 0 { return int32(1) } @@ -144971,7 +146214,7 @@ func _wherePartIdxExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, pPart uintpt if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) != int32(TK_COLUMN) { return } - if !(_sqlite3ExprIsConstant(tls, pRight) != 0) { + if !(_sqlite3ExprIsConstant(tls, uintptr(0), pRight) != 0) { return } if !(_sqlite3IsBinary(tls, _sqlite3ExprCompareCollSeq(tls, pParse, pPart)) != 0) { @@ -145306,7 +146549,7 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in ** unique index is used (making the index functionally non-unique) ** then the sqlite_stat1 data becomes important for scoring the ** plan */ - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) } _sqlite3Stat4ProbeFree(tls, (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec) (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = 0 @@ -145335,6 +146578,31 @@ func _isLimitTerm(tls *libc.TLS, pTerm uintptr) (r int32) { return libc.BoolInt32(int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) >= int32(SQLITE_INDEX_CONSTRAINT_LIMIT) && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) <= int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } +// C documentation +// +// /* +// ** Return true if the first nCons constraints in the pUsage array are +// ** marked as in-use (have argvIndex>0). False otherwise. +// */ +func _allConstraintsUsed(tls *libc.TLS, aUsage uintptr, nCons int32) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < nCons) { + break + } + if (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer(aUsage + uintptr(ii)*8))).FargvIndex <= 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + // C documentation // // /* @@ -145432,7 +146700,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if v3 >= 0 { j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).FiTermOffset if iTerm >= nConstraint || j < 0 || j >= (*TWhereClause)(unsafe.Pointer(pWC)).FnTerm || *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(iTerm)*8)) != uintptr(0) || int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22440, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22585, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } pTerm1 = (*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(j)*56 @@ -145479,13 +146747,19 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, _ = libc.Int32FromInt32(0) } } + /* Unless pbRetryLimit is non-NULL, there should be no LIMIT/OFFSET + ** terms. And if there are any, they should follow all other terms. */ + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if _isLimitTerm(tls, pTerm1) != 0 && *(*int32)(unsafe.Pointer(pbIn)) != 0 { + if _isLimitTerm(tls, pTerm1) != 0 && (*(*int32)(unsafe.Pointer(pbIn)) != 0 || !(_allConstraintsUsed(tls, pUsage, i) != 0)) { /* If there is an IN(...) term handled as an == (separate call to ** xFilter for each value on the RHS of the IN) and a LIMIT or - ** OFFSET term handled as well, the plan is unusable. Set output - ** variable *pbRetryLimit to true to tell the caller to retry with - ** LIMIT and OFFSET disabled. */ + ** OFFSET term handled as well, the plan is unusable. Similarly, + ** if there is a LIMIT/OFFSET and there are other unused terms, + ** the plan cannot be used. In these cases set variable *pbRetryLimit + ** to true to tell the caller to retry with LIMIT and OFFSET + ** disabled. */ if (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FneedToFreeIdxStr != 0 { Xsqlite3_free(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = uintptr(0) @@ -145510,7 +146784,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(i)*8)) == uintptr(0) { /* The non-zero argvIdx values must be contiguous. Raise an ** error if they are not */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22440, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22585, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } goto _6 @@ -145663,7 +146937,7 @@ func Xsqlite3_vtab_rhs_value(tls *libc.TLS, pIdxInfo uintptr, iCons int32, ppVal pVal = uintptr(0) rc = SQLITE_OK if iCons < 0 || iCons >= (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint { - rc = _sqlite3MisuseError(tls, int32(165251)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(166453)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = (*TWhereClause)(unsafe.Pointer((*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC)).Fa + uintptr((*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset)*56 @@ -146111,7 +147385,7 @@ func _whereLoopAddAll(tls *libc.TLS, pBuilder uintptr) (r int32) { if rc != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { if rc == int32(SQLITE_DONE) { /* We hit the query planner search limit set by iPlanLimit */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22466, 0) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22611, 0) rc = SQLITE_OK } else { break @@ -146500,7 +147774,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, } p = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr mTerm = _sqlite3WhereExprUsage(tls, pWInfo+592, p) - if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, p) != 0) { + if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, uintptr(0), p) != 0) { goto _9 } if mTerm & ^orderDistinctMask == uint64(0) { @@ -146921,7 +148195,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) iLoop++ } if nFrom == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22501, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22646, 0) _sqlite3DbFreeNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pSpace) return int32(SQLITE_ERROR) } @@ -146971,9 +148245,8 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) if int32((*TWherePath)(unsafe.Pointer(pFrom)).FisOrdered) == (*TExprList)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_ORDERED) } - if (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy != 0 && int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) > (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr { - (*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = int8((*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr) - } + /* vvv--- See check-in [12ad822d9b827777] on 2023-03-16 ---vvv */ + _ = libc.Int32FromInt32(0) } else { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FrevMask = (*TWherePath)(unsafe.Pointer(pFrom)).FrevLoop if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) <= 0 { @@ -147011,6 +148284,97 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) return SQLITE_OK } +// C documentation +// +// /* +// ** This routine implements a heuristic designed to improve query planning. +// ** This routine is called in between the first and second call to +// ** wherePathSolver(). Hence the name "Interstage" "Heuristic". +// ** +// ** The first call to wherePathSolver() (hereafter just "solver()") computes +// ** the best path without regard to the order of the outputs. The second call +// ** to the solver() builds upon the first call to try to find an alternative +// ** path that satisfies the ORDER BY clause. +// ** +// ** This routine looks at the results of the first solver() run, and for +// ** every FROM clause term in the resulting query plan that uses an equality +// ** constraint against an index, disable other WhereLoops for that same +// ** FROM clause term that would try to do a full-table scan. This prevents +// ** an index search from being converted into a full-table scan in order to +// ** satisfy an ORDER BY clause, since even though we might get slightly better +// ** performance using the full-scan without sorting if the output size +// ** estimates are very precise, we might also get severe performance +// ** degradation using the full-scan if the output size estimate is too large. +// ** It is better to err on the side of caution. +// ** +// ** Except, if the first solver() call generated a full-table scan in an outer +// ** loop then stop this analysis at the first full-scan, since the second +// ** solver() run might try to swap that full-scan for another in order to +// ** get the output into the correct order. In other words, we allow a +// ** rewrite like this: +// ** +// ** First Solver() Second Solver() +// ** |-- SCAN t1 |-- SCAN t2 +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** The purpose of this routine is to disallow rewrites such as: +// ** +// ** First Solver() Second Solver() +// ** |-- SEARCH t1 |-- SCAN t2 <--- bad! +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** See test cases in test/whereN.test for the real-world query that +// ** originally provoked this heuristic. +// */ +func _whereInterstageHeuristic(tls *libc.TLS, pWInfo uintptr) { + var i int32 + var iTab Tu8 + var p, pLoop uintptr + _, _, _, _ = i, iTab, p, pLoop + i = 0 + for { + if !(i < int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)) { + break + } + p = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(i)*104))).FpWLoop + if p == uintptr(0) { + break + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { + goto _1 + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_NULL)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != uint32(0) { + iTab = (*TWhereLoop)(unsafe.Pointer(p)).FiTab + pLoop = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpLoops + for { + if !(pLoop != 0) { + break + } + if int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab) != int32(iTab) { + goto _2 + } + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_CONSTRAINT)|libc.Int32FromInt32(WHERE_AUTO_INDEX)) != uint32(0) { + /* Auto-index and index-constrained loops allowed to remain */ + goto _2 + } + (*TWhereLoop)(unsafe.Pointer(pLoop)).Fprereq = uint64(-libc.Int32FromInt32(1)) /* Prevent 2nd solver() from using this one */ + goto _2 + _2: + ; + pLoop = (*TWhereLoop)(unsafe.Pointer(pLoop)).FpNextLoop + } + } else { + break + } + goto _1 + _1: + ; + i++ + } +} + // C documentation // // /* @@ -147329,7 +148693,7 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasStat1) == uint32(0) { break } - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) if i >= int32(1) && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&reqFlags == reqFlags && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_INDEXED)) != uint32(0) { if int32(nSearch) > int32((*TTable)(unsafe.Pointer(pTab)).FnRowLogEst) { *(*Tu32)(unsafe.Pointer(pLoop + 48)) |= uint32(WHERE_BLOOMFILTER) @@ -147344,6 +148708,69 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { } } +// C documentation +// +// /* +// ** Expression Node callback for sqlite3ExprCanReturnSubtype(). +// ** +// ** Only a function call is able to return a subtype. So if the node +// ** is not a function call, return WRC_Prune immediately. +// ** +// ** A function call is able to return a subtype if it has the +// ** SQLITE_RESULT_SUBTYPE property. +// ** +// ** Assume that every function is able to pass-through a subtype from +// ** one of its argument (using sqlite3_result_value()). Most functions +// ** are not this way, but we don't have a mechanism to distinguish those +// ** that are from those that are not, so assume they all work this way. +// ** That means that if one of its arguments is another function and that +// ** other function is able to return a subtype, then this function is +// ** able to return a subtype. +// */ +func _exprNodeCanReturnSubtype(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef uintptr + var n, v1 int32 + _, _, _, _ = db, n, pDef, v1 + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_FUNCTION) { + return int32(WRC_Prune) + } + _ = libc.Int32FromInt32(0) + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { + v1 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr + } else { + v1 = 0 + } + n = v1 + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + return int32(WRC_Prune) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Return TRUE if expression pExpr is able to return a subtype. +// ** +// ** A TRUE return does not guarantee that a subtype will be returned. +// ** It only indicates that a subtype return is possible. False positives +// ** are acceptable as they only disable an optimization. False negatives, +// ** on the other hand, can lead to incorrect answers. +// */ +func _sqlite3ExprCanReturnSubtype(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeCanReturnSubtype) + _sqlite3WalkExpr(tls, bp, pExpr) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) +} + // C documentation // // /* @@ -147358,9 +148785,9 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { // ** references to the corresponding column of the index. // */ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur int32, pTabItem uintptr) { - var db, p, pArg, pDef, pExpr, pTab uintptr - var i, j, n, v2 int32 - _, _, _, _, _, _, _, _, _, _ = db, i, j, n, p, pArg, pDef, pExpr, pTab, v2 + var i, j int32 + var p, pArg, pExpr, pTab uintptr + _, _, _, _, _, _ = i, j, p, pArg, pExpr, pTab _ = libc.Int32FromInt32(0) pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable i = 0 @@ -147378,22 +148805,14 @@ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur i goto _1 } } - if _sqlite3ExprIsConstant(tls, pExpr) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) != 0 { goto _1 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) { - db = (*TParse)(unsafe.Pointer(pParse)).Fdb - _ = libc.Int32FromInt32(0) - if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { - v2 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr - } else { - v2 = 0 - } - n = v2 - pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) - if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { - goto _1 - } + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) && _sqlite3ExprCanReturnSubtype(tls, pParse, pExpr) != 0 { + /* Functions that might set a subtype should not be replaced by the + ** value taken from an expression index since the index omits the + ** subtype. https://sqlite.org/forum/forumpost/68d284c86b082c3e */ + goto _1 } p = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(32)) if p == uintptr(0) { @@ -147567,7 +148986,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** bits in a Bitmask */ if (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc > int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22519, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22664, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) return uintptr(0) } /* This function normally generates a nested loop for all tables in @@ -147640,7 +149059,9 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if int32(wctrlFlags)&int32(WHERE_WANT_DISTINCT) != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_DistinctOpt)) == uint32(0) { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_UNIQUE) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22547, 0) + if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FselFlags&uint32(SF_MultiValue) == uint32(0) { + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22692, 0) + } } else { /* Assign a bit from the bitmask to every term in the FROM clause. ** @@ -147774,6 +149195,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy != 0 { + _whereInterstageHeuristic(tls, pWInfo) _wherePathSolver(tls, pWInfo, int16(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut)+int32(1))) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto whereBeginError @@ -148072,6 +149494,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiEndWhere = _sqlite3VdbeCurrentAddr(tls, v) return pWInfo /* Jump here if malloc fails */ + goto whereBeginError whereBeginError: ; if pWInfo != 0 { @@ -148095,10 +149518,10 @@ whereBeginError: // ** sqlite3WhereBegin() for additional information. // */ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { - var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, r1, ws, x, v4, v7 int32 - var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr + var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, r1, ws, x, v4, v7 int32 + var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pTabList = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList @@ -148241,7 +149664,14 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { addr = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfPos), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin) _ = libc.Int32FromInt32(0) if ws&int32(WHERE_IDX_ONLY) == 0 { + pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 _ = libc.Int32FromInt32(0) + if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x20>>5)) != 0 { + n1 = (*TSrcItem)(unsafe.Pointer(pSrc)).FregResult + _ = libc.Int32FromInt32(0) + m = int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FnCol) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, n1, n1+m-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur) } if ws&int32(WHERE_INDEXED) != 0 || ws&int32(WHERE_MULTI_OR) != 0 && *(*uintptr)(unsafe.Pointer(&(*TWhereLevel)(unsafe.Pointer(pLevel)).Fu)) != 0 { @@ -148290,6 +149720,7 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { ** OP_Rowid becomes OP_Null. */ if int32(uint32(*(*uint16)(unsafe.Pointer(pTabItem + 60 + 4))&0x20>>5)) != 0 { + _ = libc.Int32FromInt32(0) _translateColumnToCopy(tls, pParse, (*TWhereLevel)(unsafe.Pointer(pLevel)).FaddrBody, (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur, (*TSrcItem)(unsafe.Pointer(pTabItem)).FregResult, 0) goto _9 } @@ -148661,9 +150092,10 @@ func _nth_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) _ = nArg _ = apArg return + goto error_out error_out: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22565, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22710, -int32(1)) } func _nth_valueFinalizeFunc(tls *libc.TLS, pCtx uintptr) { @@ -148850,7 +150282,7 @@ func _ntileStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { if (*TNtileCtx)(unsafe.Pointer(p)).FnTotal == 0 { (*TNtileCtx)(unsafe.Pointer(p)).FnParam = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apArg))) if (*TNtileCtx)(unsafe.Pointer(p)).FnParam <= 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22621, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22766, -int32(1)) } } (*TNtileCtx)(unsafe.Pointer(p)).FnTotal++ @@ -149178,7 +150610,7 @@ func _windowFind(tls *libc.TLS, pParse uintptr, pList uintptr, zName uintptr) (r p = (*TWindow)(unsafe.Pointer(p)).FpNextWin } if p == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22666, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22811, libc.VaList(bp+8, zName)) } return p } @@ -149229,12 +150661,12 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin _sqlite3WindowChain(tls, pParse, pWin, pList) } if int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) == int32(TK_RANGE) && ((*TWindow)(unsafe.Pointer(pWin)).FpStart != 0 || (*TWindow)(unsafe.Pointer(pWin)).FpEnd != 0) && ((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy == uintptr(0) || (*TExprList)(unsafe.Pointer((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy)).FnExpr != int32(1)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22685, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22830, 0) } else { if (*TFuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TWindow)(unsafe.Pointer(pWin)).FpFilter != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22756, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22901, 0) } else { aUp = [8]struct { FzFunc uintptr @@ -149307,7 +150739,7 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin (*TWindow)(unsafe.Pointer(pWin)).FeEnd = uint8(aUp[i].FeEnd) (*TWindow)(unsafe.Pointer(pWin)).FeExclude = uint8(0) if int32((*TWindow)(unsafe.Pointer(pWin)).FeStart) == int32(TK_FOLLOWING) { - (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8139) + (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8264) } break } @@ -149595,7 +151027,7 @@ func _disallowAggregatesInOrderByCb(tls *libc.TLS, pWalker uintptr, pExpr uintpt defer tls.Free(16) if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_FUNCTION) && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { _ = libc.Int32FromInt32(0) - _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22819, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) + _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22964, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) } return WRC_Continue } @@ -149738,7 +151170,7 @@ func _sqlite3WindowRewrite(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { ** keep everything legal in this case. */ if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1731)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1791)) } pSub = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(bp)), pSrc, pWhere, pGroupBy, pHaving, pSort, uint32(0), uintptr(0)) (*TSelect)(unsafe.Pointer(p)).FpSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), uintptr(0), uintptr(0)) @@ -149843,7 +151275,7 @@ func _sqlite3WindowListDelete(tls *libc.TLS, db uintptr, p uintptr) { // ** variable values in the expression tree. // */ func _sqlite3WindowOffsetExpr(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r uintptr) { - if 0 == _sqlite3ExprIsConstant(tls, pExpr) { + if 0 == _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) { if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameExprUnmap(tls, pParse, pExpr) } @@ -149889,7 +151321,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 ** frame boundary. */ if eStart == int32(TK_CURRENT) && eEnd == int32(TK_PRECEDING) || eStart == int32(TK_FOLLOWING) && (eEnd == int32(TK_PRECEDING) || eEnd == int32(TK_CURRENT)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22845, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22990, 0) goto windowAllocErr } pWin = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) @@ -149907,6 +151339,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 (*TWindow)(unsafe.Pointer(pWin)).FpEnd = _sqlite3WindowOffsetExpr(tls, pParse, pEnd) (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3WindowOffsetExpr(tls, pParse, pStart) return pWin + goto windowAllocErr windowAllocErr: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pEnd) @@ -149956,18 +151389,18 @@ func _sqlite3WindowChain(tls *libc.TLS, pParse uintptr, pWin uintptr, pList uint zErr = uintptr(0) /* Check for errors */ if (*TWindow)(unsafe.Pointer(pWin)).FpPartition != 0 { - zErr = __ccgo_ts + 22877 + zErr = __ccgo_ts + 23022 } else { if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 && (*TWindow)(unsafe.Pointer(pWin)).FpOrderBy != 0 { - zErr = __ccgo_ts + 22894 + zErr = __ccgo_ts + 23039 } else { if int32((*TWindow)(unsafe.Pointer(pExist)).FbImplicitFrame) == 0 { - zErr = __ccgo_ts + 22910 + zErr = __ccgo_ts + 23055 } } } if zErr != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22930, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23075, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) } else { (*TWindow)(unsafe.Pointer(pWin)).FpPartition = _sqlite3ExprListDup(tls, db, (*TWindow)(unsafe.Pointer(pExist)).FpPartition, 0) if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 { @@ -149995,7 +151428,7 @@ func _sqlite3WindowAttach(tls *libc.TLS, pParse uintptr, p uintptr, pWin uintptr *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(libc.Int32FromInt32(EP_WinFunc) | libc.Int32FromInt32(EP_FullSize)) (*TWindow)(unsafe.Pointer(pWin)).FpOwner = p if (*TExpr)(unsafe.Pointer(p)).Fflags&uint32(EP_Distinct) != 0 && int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) != int32(TK_FILTER) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22963, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23108, 0) } } else { _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pWin) @@ -150197,7 +151630,7 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regZero) if eCond >= int32(WINDOW_STARTING_NUM) { regString = _sqlite3GetTempReg(tls, pParse) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1657, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1671, -int32(1)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, _sqlite3VdbeCurrentAddr(tls, v)+int32(2), reg) _sqlite3VdbeChangeP5(tls, v, uint16(libc.Int32FromInt32(SQLITE_AFF_NUMERIC)|libc.Int32FromInt32(SQLITE_JUMPIFNULL))) _ = libc.Int32FromInt32(0) @@ -150218,11 +151651,11 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { } var _azErr = [5]uintptr{ - 0: __ccgo_ts + 23010, - 1: __ccgo_ts + 23063, - 2: __ccgo_ts + 22565, - 3: __ccgo_ts + 23114, - 4: __ccgo_ts + 23166, + 0: __ccgo_ts + 23155, + 1: __ccgo_ts + 23208, + 2: __ccgo_ts + 22710, + 3: __ccgo_ts + 23259, + 4: __ccgo_ts + 23311, } var _aOp1 = [5]int32{ @@ -150994,7 +152427,7 @@ func _windowCodeRangeTest(tls *libc.TLS, p uintptr, op int32, csr1 int32, regVal ** the add/subtract is skipped for these, as required. If reg1 is a NULL, ** then the arithmetic is performed, but since adding or subtracting from ** NULL is always NULL anyway, this case is handled as required too. */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1657, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1671, -int32(1)) addrGe = _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, 0, reg1) if op == int32(OP_Ge) && arith == int32(OP_Add) || op == int32(OP_Le) && arith == int32(OP_Subtract) { _sqlite3VdbeAddOp3(tls, v, op, reg2, lbl, reg1) @@ -152035,11 +153468,11 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { cnt++ if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != 0 || (*TSelect)(unsafe.Pointer(pLoop)).FpLimit != 0 { if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != uintptr(0) { - v1 = __ccgo_ts + 23216 + v1 = __ccgo_ts + 23361 } else { - v1 = __ccgo_ts + 23225 + v1 = __ccgo_ts + 23370 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23231, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23376, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) break } } @@ -152048,7 +153481,7 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { mxSelect = v2 } if v3 && v2 > 0 && cnt > mxSelect { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23273, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23418, 0) } } } @@ -152068,6 +153501,23 @@ func _attachWithToSelect(tls *libc.TLS, pParse uintptr, pSelect uintptr, pWith u return pSelect } +// C documentation +// +// /* Memory allocator for parser stack resizing. This is a thin wrapper around +// ** sqlite3_realloc() that includes a call to sqlite3FaultSim() to facilitate +// ** testing. +// */ +func _parserStackRealloc(tls *libc.TLS, pOld uintptr, newSize Tsqlite3_uint64) (r uintptr) { + var v1 uintptr + _ = v1 + if _sqlite3FaultSim(tls, int32(700)) != 0 { + v1 = uintptr(0) + } else { + v1 = Xsqlite3_realloc(tls, pOld, int32(newSize)) + } + return v1 +} + // C documentation // // /* Construct a new Expr object from a single token */ @@ -152137,7 +153587,7 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId _ = p p = _sqlite3ExprListAppend(tls, pParse, pPrior, uintptr(0)) if (hasCollate != 0 || sortOrder != -int32(1)) && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23307, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23452, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) } _sqlite3ExprListSetName(tls, pParse, p, pIdToken, int32(1)) return p @@ -152187,6 +153637,9 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser // ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser // ** sqlite3ParserCTX_* As sqlite3ParserARG_ except for %extra_context +// ** YYREALLOC Name of the realloc() function to use +// ** YYFREE Name of the free() function to use +// ** YYDYNSTACK True if stack space should be extended on heap // ** YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** YYNSTATE the combined number of states. @@ -152200,31 +153653,33 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** YY_NO_ACTION The yy_action[] code for no-op // ** YY_MIN_REDUCE Minimum value for reduce actions // ** YY_MAX_REDUCE Maximum value for reduce actions +// ** YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type TYYMINORTYPE = struct { Fyy0 [0]TToken - Fyy33 [0]uintptr - Fyy41 [0]uintptr - Fyy47 [0]uintptr - Fyy131 [0]uintptr - Fyy180 [0]TTrigEvent - Fyy231 [0]struct { + Fyy14 [0]uintptr + Fyy59 [0]uintptr + Fyy67 [0]uintptr + Fyy122 [0]uintptr + Fyy132 [0]uintptr + Fyy144 [0]int32 + Fyy168 [0]uintptr + Fyy203 [0]uintptr + Fyy211 [0]uintptr + Fyy269 [0]TOnOrUsing + Fyy286 [0]TTrigEvent + Fyy383 [0]struct { Fvalue int32 Fmask int32 } - Fyy254 [0]uintptr - Fyy285 [0]Tu32 - Fyy322 [0]uintptr - Fyy385 [0]uintptr - Fyy394 [0]int32 - Fyy444 [0]uintptr - Fyy516 [0]Tu8 - Fyy521 [0]uintptr - Fyy522 [0]uintptr - Fyy528 [0]uintptr - Fyy561 [0]TOnOrUsing - Fyy595 [0]TFrameBound + Fyy391 [0]Tu32 + Fyy427 [0]uintptr + Fyy454 [0]uintptr + Fyy462 [0]Tu8 + Fyy509 [0]TFrameBound + Fyy555 [0]uintptr Fyyinit int32 F__ccgo_pad20 [12]byte } @@ -152242,6 +153697,13 @@ type YYMINORTYPE = TYYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -152294,2152 +153756,2194 @@ type YYMINORTYPE = TYYMINORTYPE // ** yy_default[] Default action for each state. // ** // *********** Begin parsing tables **********************************************/ -var _yy_action = [2100]uint16{ - 0: uint16(572), - 1: uint16(210), - 2: uint16(572), - 3: uint16(119), - 4: uint16(116), - 5: uint16(231), - 6: uint16(572), - 7: uint16(119), - 8: uint16(116), - 9: uint16(231), - 10: uint16(572), - 11: uint16(1317), - 12: uint16(379), - 13: uint16(1296), - 14: uint16(410), - 15: uint16(566), - 16: uint16(566), - 17: uint16(566), - 18: uint16(572), - 19: uint16(411), - 20: uint16(380), - 21: uint16(1317), - 22: uint16(1279), - 23: uint16(42), - 24: uint16(42), - 25: uint16(42), - 26: uint16(42), - 27: uint16(210), - 28: uint16(1529), - 29: uint16(72), - 30: uint16(72), - 31: uint16(974), - 32: uint16(421), - 33: uint16(42), - 34: uint16(42), - 35: uint16(495), - 36: uint16(305), - 37: uint16(281), - 38: uint16(305), - 39: uint16(975), - 40: uint16(399), - 41: uint16(72), - 42: uint16(72), - 43: uint16(126), - 44: uint16(127), - 45: uint16(81), - 46: uint16(1217), - 47: uint16(1217), - 48: uint16(1054), - 49: uint16(1057), - 50: uint16(1044), - 51: uint16(1044), - 52: uint16(124), - 53: uint16(124), - 54: uint16(125), - 55: uint16(125), - 56: uint16(125), - 57: uint16(125), - 58: uint16(480), - 59: uint16(411), - 60: uint16(1244), - 61: uint16(1), - 62: uint16(1), - 63: uint16(578), - 64: uint16(2), - 65: uint16(1248), - 66: uint16(554), - 67: uint16(119), - 68: uint16(116), - 69: uint16(231), - 70: uint16(319), - 71: uint16(484), - 72: uint16(147), - 73: uint16(484), - 74: uint16(528), - 75: uint16(119), - 76: uint16(116), - 77: uint16(231), - 78: uint16(533), - 79: uint16(1330), - 80: uint16(419), - 81: uint16(527), - 82: uint16(143), - 83: uint16(126), - 84: uint16(127), - 85: uint16(81), - 86: uint16(1217), - 87: uint16(1217), - 88: uint16(1054), - 89: uint16(1057), - 90: uint16(1044), - 91: uint16(1044), - 92: uint16(124), - 93: uint16(124), - 94: uint16(125), - 95: uint16(125), - 96: uint16(125), - 97: uint16(125), - 98: uint16(119), - 99: uint16(116), - 100: uint16(231), - 101: uint16(329), - 102: uint16(123), - 103: uint16(123), - 104: uint16(123), - 105: uint16(123), - 106: uint16(122), - 107: uint16(122), - 108: uint16(121), - 109: uint16(121), - 110: uint16(121), - 111: uint16(120), - 112: uint16(117), - 113: uint16(448), - 114: uint16(286), - 115: uint16(286), - 116: uint16(286), - 117: uint16(286), - 118: uint16(446), - 119: uint16(446), - 120: uint16(446), - 121: uint16(1568), - 122: uint16(378), - 123: uint16(1570), - 124: uint16(1193), - 125: uint16(377), - 126: uint16(1164), - 127: uint16(569), - 128: uint16(1164), - 129: uint16(569), - 130: uint16(411), - 131: uint16(1568), - 132: uint16(541), - 133: uint16(261), - 134: uint16(228), - 135: uint16(448), - 136: uint16(102), - 137: uint16(146), - 138: uint16(453), - 139: uint16(318), - 140: uint16(563), - 141: uint16(242), - 142: uint16(123), - 143: uint16(123), - 144: uint16(123), - 145: uint16(123), - 146: uint16(122), - 147: uint16(122), - 148: uint16(121), - 149: uint16(121), - 150: uint16(121), - 151: uint16(120), - 152: uint16(117), - 153: uint16(448), - 154: uint16(126), - 155: uint16(127), - 156: uint16(81), - 157: uint16(1217), - 158: uint16(1217), - 159: uint16(1054), - 160: uint16(1057), - 161: uint16(1044), - 162: uint16(1044), - 163: uint16(124), - 164: uint16(124), - 165: uint16(125), - 166: uint16(125), - 167: uint16(125), - 168: uint16(125), - 169: uint16(143), - 170: uint16(296), - 171: uint16(1193), - 172: uint16(341), - 173: uint16(452), - 174: uint16(121), - 175: uint16(121), - 176: uint16(121), - 177: uint16(120), - 178: uint16(117), - 179: uint16(448), - 180: uint16(128), - 181: uint16(1193), - 182: uint16(1194), - 183: uint16(1193), - 184: uint16(149), - 185: uint16(445), - 186: uint16(444), - 187: uint16(572), - 188: uint16(120), - 189: uint16(117), - 190: uint16(448), - 191: uint16(125), - 192: uint16(125), - 193: uint16(125), - 194: uint16(125), - 195: uint16(118), - 196: uint16(123), - 197: uint16(123), - 198: uint16(123), - 199: uint16(123), - 200: uint16(122), - 201: uint16(122), - 202: uint16(121), - 203: uint16(121), - 204: uint16(121), - 205: uint16(120), - 206: uint16(117), - 207: uint16(448), - 208: uint16(458), - 209: uint16(114), - 210: uint16(13), - 211: uint16(13), - 212: uint16(550), - 213: uint16(123), - 214: uint16(123), - 215: uint16(123), - 216: uint16(123), - 217: uint16(122), - 218: uint16(122), - 219: uint16(121), - 220: uint16(121), - 221: uint16(121), - 222: uint16(120), - 223: uint16(117), - 224: uint16(448), - 225: uint16(424), - 226: uint16(318), - 227: uint16(563), - 228: uint16(1193), - 229: uint16(1194), - 230: uint16(1193), - 231: uint16(150), - 232: uint16(1225), - 233: uint16(411), - 234: uint16(1225), - 235: uint16(125), - 236: uint16(125), - 237: uint16(125), - 238: uint16(125), - 239: uint16(123), - 240: uint16(123), - 241: uint16(123), - 242: uint16(123), - 243: uint16(122), - 244: uint16(122), - 245: uint16(121), - 246: uint16(121), - 247: uint16(121), - 248: uint16(120), - 249: uint16(117), - 250: uint16(448), - 251: uint16(469), - 252: uint16(344), - 253: uint16(1041), - 254: uint16(1041), - 255: uint16(1055), - 256: uint16(1058), - 257: uint16(126), - 258: uint16(127), - 259: uint16(81), - 260: uint16(1217), - 261: uint16(1217), - 262: uint16(1054), - 263: uint16(1057), - 264: uint16(1044), - 265: uint16(1044), - 266: uint16(124), - 267: uint16(124), - 268: uint16(125), - 269: uint16(125), - 270: uint16(125), - 271: uint16(125), - 272: uint16(1282), - 273: uint16(526), - 274: uint16(224), - 275: uint16(1193), - 276: uint16(572), - 277: uint16(411), - 278: uint16(226), - 279: uint16(519), - 280: uint16(177), - 281: uint16(83), - 282: uint16(84), - 283: uint16(123), - 284: uint16(123), - 285: uint16(123), - 286: uint16(123), - 287: uint16(122), - 288: uint16(122), - 289: uint16(121), - 290: uint16(121), - 291: uint16(121), - 292: uint16(120), - 293: uint16(117), - 294: uint16(448), - 295: uint16(1010), - 296: uint16(16), - 297: uint16(16), - 298: uint16(1193), - 299: uint16(134), - 300: uint16(134), - 301: uint16(126), - 302: uint16(127), - 303: uint16(81), - 304: uint16(1217), - 305: uint16(1217), - 306: uint16(1054), - 307: uint16(1057), - 308: uint16(1044), - 309: uint16(1044), - 310: uint16(124), - 311: uint16(124), - 312: uint16(125), - 313: uint16(125), - 314: uint16(125), - 315: uint16(125), - 316: uint16(123), - 317: uint16(123), - 318: uint16(123), - 319: uint16(123), - 320: uint16(122), - 321: uint16(122), - 322: uint16(121), - 323: uint16(121), - 324: uint16(121), - 325: uint16(120), - 326: uint16(117), - 327: uint16(448), - 328: uint16(1045), - 329: uint16(550), - 330: uint16(1193), - 331: uint16(375), - 332: uint16(1193), - 333: uint16(1194), - 334: uint16(1193), - 335: uint16(254), - 336: uint16(1438), - 337: uint16(401), - 338: uint16(508), - 339: uint16(505), - 340: uint16(504), - 341: uint16(112), - 342: uint16(564), - 343: uint16(570), +var _yy_action = [2142]uint16{ + 0: uint16(576), + 1: uint16(128), + 2: uint16(125), + 3: uint16(232), + 4: uint16(1622), + 5: uint16(549), + 6: uint16(576), + 7: uint16(1290), + 8: uint16(1281), + 9: uint16(576), + 10: uint16(328), + 11: uint16(576), + 12: uint16(1300), + 13: uint16(212), + 14: uint16(576), + 15: uint16(128), + 16: uint16(125), + 17: uint16(232), + 18: uint16(578), + 19: uint16(412), + 20: uint16(578), + 21: uint16(391), + 22: uint16(1542), + 23: uint16(51), + 24: uint16(51), + 25: uint16(523), + 26: uint16(405), + 27: uint16(1293), + 28: uint16(529), + 29: uint16(51), + 30: uint16(51), + 31: uint16(983), + 32: uint16(51), + 33: uint16(51), + 34: uint16(81), + 35: uint16(81), + 36: uint16(1107), + 37: uint16(61), + 38: uint16(61), + 39: uint16(984), + 40: uint16(1107), + 41: uint16(1292), + 42: uint16(380), + 43: uint16(135), + 44: uint16(136), + 45: uint16(90), + 46: uint16(1228), + 47: uint16(1228), + 48: uint16(1063), + 49: uint16(1066), + 50: uint16(1053), + 51: uint16(1053), + 52: uint16(133), + 53: uint16(133), + 54: uint16(134), + 55: uint16(134), + 56: uint16(134), + 57: uint16(134), + 58: uint16(1577), + 59: uint16(412), + 60: uint16(287), + 61: uint16(287), + 62: uint16(7), + 63: uint16(287), + 64: uint16(287), + 65: uint16(422), + 66: uint16(1050), + 67: uint16(1050), + 68: uint16(1064), + 69: uint16(1067), + 70: uint16(289), + 71: uint16(556), + 72: uint16(492), + 73: uint16(573), + 74: uint16(524), + 75: uint16(561), + 76: uint16(573), + 77: uint16(497), + 78: uint16(561), + 79: uint16(482), + 80: uint16(530), + 81: uint16(262), + 82: uint16(229), + 83: uint16(135), + 84: uint16(136), + 85: uint16(90), + 86: uint16(1228), + 87: uint16(1228), + 88: uint16(1063), + 89: uint16(1066), + 90: uint16(1053), + 91: uint16(1053), + 92: uint16(133), + 93: uint16(133), + 94: uint16(134), + 95: uint16(134), + 96: uint16(134), + 97: uint16(134), + 98: uint16(128), + 99: uint16(125), + 100: uint16(232), + 101: uint16(1506), + 102: uint16(132), + 103: uint16(132), + 104: uint16(132), + 105: uint16(132), + 106: uint16(131), + 107: uint16(131), + 108: uint16(130), + 109: uint16(130), + 110: uint16(130), + 111: uint16(129), + 112: uint16(126), + 113: uint16(450), + 114: uint16(1204), + 115: uint16(1255), + 116: uint16(1), + 117: uint16(1), + 118: uint16(582), + 119: uint16(2), + 120: uint16(1259), + 121: uint16(1571), + 122: uint16(420), + 123: uint16(1582), + 124: uint16(379), + 125: uint16(320), + 126: uint16(1174), + 127: uint16(153), + 128: uint16(1174), + 129: uint16(1584), + 130: uint16(412), + 131: uint16(378), + 132: uint16(1582), + 133: uint16(543), + 134: uint16(1341), + 135: uint16(330), + 136: uint16(111), + 137: uint16(570), + 138: uint16(570), + 139: uint16(570), + 140: uint16(293), + 141: uint16(1054), + 142: uint16(132), + 143: uint16(132), + 144: uint16(132), + 145: uint16(132), + 146: uint16(131), + 147: uint16(131), + 148: uint16(130), + 149: uint16(130), + 150: uint16(130), + 151: uint16(129), + 152: uint16(126), + 153: uint16(450), + 154: uint16(135), + 155: uint16(136), + 156: uint16(90), + 157: uint16(1228), + 158: uint16(1228), + 159: uint16(1063), + 160: uint16(1066), + 161: uint16(1053), + 162: uint16(1053), + 163: uint16(133), + 164: uint16(133), + 165: uint16(134), + 166: uint16(134), + 167: uint16(134), + 168: uint16(134), + 169: uint16(287), + 170: uint16(287), + 171: uint16(1204), + 172: uint16(1205), + 173: uint16(1204), + 174: uint16(255), + 175: uint16(287), + 176: uint16(287), + 177: uint16(510), + 178: uint16(507), + 179: uint16(506), + 180: uint16(137), + 181: uint16(455), + 182: uint16(573), + 183: uint16(212), + 184: uint16(561), + 185: uint16(447), + 186: uint16(446), + 187: uint16(505), + 188: uint16(573), + 189: uint16(1616), + 190: uint16(561), + 191: uint16(134), + 192: uint16(134), + 193: uint16(134), + 194: uint16(134), + 195: uint16(127), + 196: uint16(400), + 197: uint16(243), + 198: uint16(132), + 199: uint16(132), + 200: uint16(132), + 201: uint16(132), + 202: uint16(131), + 203: uint16(131), + 204: uint16(130), + 205: uint16(130), + 206: uint16(130), + 207: uint16(129), + 208: uint16(126), + 209: uint16(450), + 210: uint16(282), + 211: uint16(471), + 212: uint16(345), + 213: uint16(132), + 214: uint16(132), + 215: uint16(132), + 216: uint16(132), + 217: uint16(131), + 218: uint16(131), + 219: uint16(130), + 220: uint16(130), + 221: uint16(130), + 222: uint16(129), + 223: uint16(126), + 224: uint16(450), + 225: uint16(574), + 226: uint16(155), + 227: uint16(936), + 228: uint16(936), + 229: uint16(454), + 230: uint16(227), + 231: uint16(521), + 232: uint16(1236), + 233: uint16(412), + 234: uint16(1236), + 235: uint16(134), + 236: uint16(134), + 237: uint16(134), + 238: uint16(134), + 239: uint16(132), + 240: uint16(132), + 241: uint16(132), + 242: uint16(132), + 243: uint16(131), + 244: uint16(131), + 245: uint16(130), + 246: uint16(130), + 247: uint16(130), + 248: uint16(129), + 249: uint16(126), + 250: uint16(450), + 251: uint16(130), + 252: uint16(130), + 253: uint16(130), + 254: uint16(129), + 255: uint16(126), + 256: uint16(450), + 257: uint16(135), + 258: uint16(136), + 259: uint16(90), + 260: uint16(1228), + 261: uint16(1228), + 262: uint16(1063), + 263: uint16(1066), + 264: uint16(1053), + 265: uint16(1053), + 266: uint16(133), + 267: uint16(133), + 268: uint16(134), + 269: uint16(134), + 270: uint16(134), + 271: uint16(134), + 272: uint16(128), + 273: uint16(125), + 274: uint16(232), + 275: uint16(450), + 276: uint16(576), + 277: uint16(412), + 278: uint16(397), + 279: uint16(1249), + 280: uint16(180), + 281: uint16(92), + 282: uint16(93), + 283: uint16(132), + 284: uint16(132), + 285: uint16(132), + 286: uint16(132), + 287: uint16(131), + 288: uint16(131), + 289: uint16(130), + 290: uint16(130), + 291: uint16(130), + 292: uint16(129), + 293: uint16(126), + 294: uint16(450), + 295: uint16(381), + 296: uint16(387), + 297: uint16(1204), + 298: uint16(383), + 299: uint16(81), + 300: uint16(81), + 301: uint16(135), + 302: uint16(136), + 303: uint16(90), + 304: uint16(1228), + 305: uint16(1228), + 306: uint16(1063), + 307: uint16(1066), + 308: uint16(1053), + 309: uint16(1053), + 310: uint16(133), + 311: uint16(133), + 312: uint16(134), + 313: uint16(134), + 314: uint16(134), + 315: uint16(134), + 316: uint16(132), + 317: uint16(132), + 318: uint16(132), + 319: uint16(132), + 320: uint16(131), + 321: uint16(131), + 322: uint16(130), + 323: uint16(130), + 324: uint16(130), + 325: uint16(129), + 326: uint16(126), + 327: uint16(450), + 328: uint16(131), + 329: uint16(131), + 330: uint16(130), + 331: uint16(130), + 332: uint16(130), + 333: uint16(129), + 334: uint16(126), + 335: uint16(450), + 336: uint16(556), + 337: uint16(1204), + 338: uint16(302), + 339: uint16(319), + 340: uint16(567), + 341: uint16(121), + 342: uint16(568), + 343: uint16(480), 344: uint16(4), - 345: uint16(929), - 346: uint16(929), - 347: uint16(435), - 348: uint16(503), - 349: uint16(342), - 350: uint16(464), - 351: uint16(330), - 352: uint16(362), - 353: uint16(396), - 354: uint16(1238), - 355: uint16(1193), - 356: uint16(1194), - 357: uint16(1193), - 358: uint16(567), - 359: uint16(572), - 360: uint16(123), - 361: uint16(123), - 362: uint16(123), - 363: uint16(123), - 364: uint16(122), - 365: uint16(122), - 366: uint16(121), - 367: uint16(121), - 368: uint16(121), - 369: uint16(120), - 370: uint16(117), - 371: uint16(448), - 372: uint16(286), - 373: uint16(286), - 374: uint16(371), - 375: uint16(1581), - 376: uint16(1607), - 377: uint16(445), - 378: uint16(444), - 379: uint16(155), - 380: uint16(411), - 381: uint16(449), - 382: uint16(72), - 383: uint16(72), - 384: uint16(1289), - 385: uint16(569), - 386: uint16(1222), - 387: uint16(1193), - 388: uint16(1194), - 389: uint16(1193), - 390: uint16(86), - 391: uint16(1224), - 392: uint16(273), - 393: uint16(561), - 394: uint16(547), - 395: uint16(520), - 396: uint16(520), - 397: uint16(572), - 398: uint16(99), - 399: uint16(1223), - 400: uint16(6), - 401: uint16(1281), - 402: uint16(476), - 403: uint16(143), - 404: uint16(126), - 405: uint16(127), - 406: uint16(81), - 407: uint16(1217), - 408: uint16(1217), - 409: uint16(1054), - 410: uint16(1057), - 411: uint16(1044), - 412: uint16(1044), - 413: uint16(124), - 414: uint16(124), - 415: uint16(125), - 416: uint16(125), - 417: uint16(125), - 418: uint16(125), - 419: uint16(554), - 420: uint16(13), - 421: uint16(13), - 422: uint16(1031), - 423: uint16(511), - 424: uint16(1225), - 425: uint16(1193), - 426: uint16(1225), - 427: uint16(553), - 428: uint16(110), - 429: uint16(110), - 430: uint16(224), - 431: uint16(572), - 432: uint16(1239), - 433: uint16(177), - 434: uint16(572), - 435: uint16(429), - 436: uint16(111), - 437: uint16(199), - 438: uint16(449), - 439: uint16(573), - 440: uint16(449), - 441: uint16(432), - 442: uint16(1555), - 443: uint16(1019), - 444: uint16(327), - 445: uint16(555), - 446: uint16(1193), - 447: uint16(272), - 448: uint16(289), - 449: uint16(370), - 450: uint16(514), - 451: uint16(365), - 452: uint16(513), - 453: uint16(259), - 454: uint16(72), - 455: uint16(72), - 456: uint16(547), - 457: uint16(72), - 458: uint16(72), - 459: uint16(361), - 460: uint16(318), - 461: uint16(563), - 462: uint16(1613), - 463: uint16(123), - 464: uint16(123), - 465: uint16(123), - 466: uint16(123), - 467: uint16(122), - 468: uint16(122), - 469: uint16(121), - 470: uint16(121), - 471: uint16(121), - 472: uint16(120), - 473: uint16(117), - 474: uint16(448), - 475: uint16(1019), - 476: uint16(1019), - 477: uint16(1021), - 478: uint16(1022), - 479: uint16(28), - 480: uint16(286), - 481: uint16(286), - 482: uint16(1193), - 483: uint16(1194), - 484: uint16(1193), - 485: uint16(1159), - 486: uint16(572), - 487: uint16(1612), - 488: uint16(411), - 489: uint16(904), - 490: uint16(192), - 491: uint16(554), - 492: uint16(358), - 493: uint16(569), - 494: uint16(554), - 495: uint16(940), - 496: uint16(537), - 497: uint16(521), - 498: uint16(1159), - 499: uint16(437), - 500: uint16(415), - 501: uint16(1159), - 502: uint16(556), - 503: uint16(1193), - 504: uint16(1194), - 505: uint16(1193), - 506: uint16(572), - 507: uint16(548), - 508: uint16(548), - 509: uint16(52), - 510: uint16(52), - 511: uint16(216), - 512: uint16(126), - 513: uint16(127), - 514: uint16(81), - 515: uint16(1217), - 516: uint16(1217), - 517: uint16(1054), - 518: uint16(1057), - 519: uint16(1044), - 520: uint16(1044), - 521: uint16(124), - 522: uint16(124), - 523: uint16(125), - 524: uint16(125), - 525: uint16(125), - 526: uint16(125), - 527: uint16(1193), - 528: uint16(478), - 529: uint16(136), - 530: uint16(136), - 531: uint16(411), - 532: uint16(286), - 533: uint16(286), - 534: uint16(1493), - 535: uint16(509), - 536: uint16(122), - 537: uint16(122), - 538: uint16(121), - 539: uint16(121), - 540: uint16(121), - 541: uint16(120), - 542: uint16(117), - 543: uint16(448), - 544: uint16(1010), - 545: uint16(569), - 546: uint16(522), - 547: uint16(219), - 548: uint16(545), - 549: uint16(545), - 550: uint16(318), - 551: uint16(563), - 552: uint16(143), - 553: uint16(6), - 554: uint16(536), - 555: uint16(126), - 556: uint16(127), - 557: uint16(81), - 558: uint16(1217), - 559: uint16(1217), - 560: uint16(1054), - 561: uint16(1057), - 562: uint16(1044), - 563: uint16(1044), - 564: uint16(124), - 565: uint16(124), - 566: uint16(125), - 567: uint16(125), - 568: uint16(125), - 569: uint16(125), - 570: uint16(1557), - 571: uint16(123), - 572: uint16(123), - 573: uint16(123), - 574: uint16(123), - 575: uint16(122), - 576: uint16(122), - 577: uint16(121), - 578: uint16(121), - 579: uint16(121), - 580: uint16(120), - 581: uint16(117), - 582: uint16(448), - 583: uint16(489), - 584: uint16(1193), - 585: uint16(1194), - 586: uint16(1193), - 587: uint16(486), - 588: uint16(283), - 589: uint16(1270), - 590: uint16(960), - 591: uint16(254), - 592: uint16(1193), - 593: uint16(375), - 594: uint16(508), - 595: uint16(505), - 596: uint16(504), - 597: uint16(1193), - 598: uint16(342), - 599: uint16(574), - 600: uint16(1193), - 601: uint16(574), - 602: uint16(411), - 603: uint16(294), - 604: uint16(503), - 605: uint16(960), - 606: uint16(879), - 607: uint16(193), - 608: uint16(484), - 609: uint16(318), - 610: uint16(563), - 611: uint16(386), - 612: uint16(292), - 613: uint16(382), - 614: uint16(123), - 615: uint16(123), - 616: uint16(123), - 617: uint16(123), - 618: uint16(122), - 619: uint16(122), - 620: uint16(121), - 621: uint16(121), - 622: uint16(121), - 623: uint16(120), - 624: uint16(117), - 625: uint16(448), - 626: uint16(126), - 627: uint16(127), - 628: uint16(81), - 629: uint16(1217), - 630: uint16(1217), - 631: uint16(1054), - 632: uint16(1057), - 633: uint16(1044), - 634: uint16(1044), - 635: uint16(124), - 636: uint16(124), - 637: uint16(125), - 638: uint16(125), - 639: uint16(125), - 640: uint16(125), - 641: uint16(411), - 642: uint16(396), - 643: uint16(1139), - 644: uint16(1193), - 645: uint16(872), - 646: uint16(101), - 647: uint16(286), - 648: uint16(286), - 649: uint16(1193), - 650: uint16(1194), - 651: uint16(1193), - 652: uint16(375), - 653: uint16(1096), - 654: uint16(1193), - 655: uint16(1194), - 656: uint16(1193), - 657: uint16(1193), - 658: uint16(1194), - 659: uint16(1193), - 660: uint16(569), - 661: uint16(459), - 662: uint16(33), - 663: uint16(375), - 664: uint16(235), - 665: uint16(126), - 666: uint16(127), - 667: uint16(81), - 668: uint16(1217), - 669: uint16(1217), - 670: uint16(1054), - 671: uint16(1057), - 672: uint16(1044), - 673: uint16(1044), - 674: uint16(124), - 675: uint16(124), - 676: uint16(125), - 677: uint16(125), - 678: uint16(125), - 679: uint16(125), - 680: uint16(1437), - 681: uint16(962), - 682: uint16(572), - 683: uint16(230), - 684: uint16(961), - 685: uint16(123), - 686: uint16(123), - 687: uint16(123), - 688: uint16(123), - 689: uint16(122), - 690: uint16(122), - 691: uint16(121), - 692: uint16(121), - 693: uint16(121), - 694: uint16(120), - 695: uint16(117), - 696: uint16(448), - 697: uint16(1159), - 698: uint16(230), - 699: uint16(1193), - 700: uint16(158), - 701: uint16(1193), - 702: uint16(1194), - 703: uint16(1193), - 704: uint16(1556), - 705: uint16(13), - 706: uint16(13), - 707: uint16(303), - 708: uint16(960), - 709: uint16(1233), - 710: uint16(1159), - 711: uint16(154), - 712: uint16(411), - 713: uint16(1159), - 714: uint16(375), - 715: uint16(1584), - 716: uint16(1177), - 717: uint16(5), - 718: uint16(371), - 719: uint16(1581), - 720: uint16(431), - 721: uint16(1239), - 722: uint16(3), - 723: uint16(960), - 724: uint16(123), - 725: uint16(123), - 726: uint16(123), - 727: uint16(123), - 728: uint16(122), - 729: uint16(122), - 730: uint16(121), - 731: uint16(121), - 732: uint16(121), - 733: uint16(120), - 734: uint16(117), - 735: uint16(448), - 736: uint16(126), - 737: uint16(127), - 738: uint16(81), - 739: uint16(1217), - 740: uint16(1217), - 741: uint16(1054), - 742: uint16(1057), - 743: uint16(1044), - 744: uint16(1044), - 745: uint16(124), - 746: uint16(124), - 747: uint16(125), - 748: uint16(125), - 749: uint16(125), - 750: uint16(125), - 751: uint16(411), - 752: uint16(210), - 753: uint16(571), - 754: uint16(1193), - 755: uint16(1032), - 756: uint16(1193), - 757: uint16(1194), - 758: uint16(1193), - 759: uint16(1193), - 760: uint16(390), - 761: uint16(855), - 762: uint16(156), - 763: uint16(1555), - 764: uint16(376), - 765: uint16(404), - 766: uint16(1101), - 767: uint16(1101), - 768: uint16(492), - 769: uint16(572), - 770: uint16(469), - 771: uint16(344), - 772: uint16(1322), - 773: uint16(1322), - 774: uint16(1555), - 775: uint16(126), - 776: uint16(127), - 777: uint16(81), - 778: uint16(1217), - 779: uint16(1217), - 780: uint16(1054), - 781: uint16(1057), - 782: uint16(1044), - 783: uint16(1044), - 784: uint16(124), - 785: uint16(124), - 786: uint16(125), - 787: uint16(125), - 788: uint16(125), - 789: uint16(125), - 790: uint16(130), - 791: uint16(572), - 792: uint16(13), - 793: uint16(13), - 794: uint16(532), - 795: uint16(123), - 796: uint16(123), - 797: uint16(123), - 798: uint16(123), - 799: uint16(122), - 800: uint16(122), - 801: uint16(121), - 802: uint16(121), - 803: uint16(121), - 804: uint16(120), - 805: uint16(117), - 806: uint16(448), - 807: uint16(304), - 808: uint16(572), - 809: uint16(457), - 810: uint16(229), - 811: uint16(1193), - 812: uint16(1194), - 813: uint16(1193), - 814: uint16(13), - 815: uint16(13), - 816: uint16(1193), - 817: uint16(1194), - 818: uint16(1193), - 819: uint16(1300), - 820: uint16(467), - 821: uint16(1270), - 822: uint16(411), - 823: uint16(1320), - 824: uint16(1320), - 825: uint16(1555), - 826: uint16(1015), - 827: uint16(457), - 828: uint16(456), - 829: uint16(436), - 830: uint16(301), - 831: uint16(72), - 832: uint16(72), - 833: uint16(1268), - 834: uint16(123), - 835: uint16(123), - 836: uint16(123), - 837: uint16(123), - 838: uint16(122), - 839: uint16(122), - 840: uint16(121), - 841: uint16(121), - 842: uint16(121), - 843: uint16(120), - 844: uint16(117), - 845: uint16(448), - 846: uint16(126), - 847: uint16(127), - 848: uint16(81), - 849: uint16(1217), - 850: uint16(1217), - 851: uint16(1054), - 852: uint16(1057), - 853: uint16(1044), - 854: uint16(1044), - 855: uint16(124), - 856: uint16(124), - 857: uint16(125), - 858: uint16(125), - 859: uint16(125), - 860: uint16(125), - 861: uint16(411), - 862: uint16(384), - 863: uint16(1076), - 864: uint16(1159), - 865: uint16(286), - 866: uint16(286), - 867: uint16(421), - 868: uint16(314), - 869: uint16(280), - 870: uint16(280), - 871: uint16(287), - 872: uint16(287), - 873: uint16(461), - 874: uint16(408), - 875: uint16(407), - 876: uint16(1539), - 877: uint16(1159), - 878: uint16(569), - 879: uint16(572), - 880: uint16(1159), - 881: uint16(1196), - 882: uint16(569), - 883: uint16(409), - 884: uint16(569), - 885: uint16(126), - 886: uint16(127), - 887: uint16(81), - 888: uint16(1217), - 889: uint16(1217), - 890: uint16(1054), - 891: uint16(1057), - 892: uint16(1044), - 893: uint16(1044), - 894: uint16(124), - 895: uint16(124), - 896: uint16(125), - 897: uint16(125), - 898: uint16(125), - 899: uint16(125), - 900: uint16(457), - 901: uint16(1485), - 902: uint16(13), - 903: uint16(13), - 904: uint16(1541), - 905: uint16(123), - 906: uint16(123), - 907: uint16(123), - 908: uint16(123), - 909: uint16(122), - 910: uint16(122), - 911: uint16(121), - 912: uint16(121), - 913: uint16(121), - 914: uint16(120), - 915: uint16(117), - 916: uint16(448), - 917: uint16(202), - 918: uint16(572), - 919: uint16(462), - 920: uint16(1587), - 921: uint16(578), - 922: uint16(2), - 923: uint16(1248), - 924: uint16(843), - 925: uint16(844), - 926: uint16(845), - 927: uint16(1563), - 928: uint16(319), - 929: uint16(409), - 930: uint16(147), - 931: uint16(6), - 932: uint16(411), - 933: uint16(257), - 934: uint16(256), - 935: uint16(255), - 936: uint16(208), - 937: uint16(1330), - 938: uint16(9), - 939: uint16(1196), - 940: uint16(264), - 941: uint16(72), - 942: uint16(72), - 943: uint16(1436), - 944: uint16(123), - 945: uint16(123), - 946: uint16(123), - 947: uint16(123), - 948: uint16(122), - 949: uint16(122), - 950: uint16(121), - 951: uint16(121), - 952: uint16(121), - 953: uint16(120), - 954: uint16(117), - 955: uint16(448), - 956: uint16(126), - 957: uint16(127), - 958: uint16(81), - 959: uint16(1217), - 960: uint16(1217), - 961: uint16(1054), - 962: uint16(1057), - 963: uint16(1044), - 964: uint16(1044), - 965: uint16(124), - 966: uint16(124), - 967: uint16(125), - 968: uint16(125), - 969: uint16(125), - 970: uint16(125), - 971: uint16(572), - 972: uint16(286), - 973: uint16(286), - 974: uint16(572), - 975: uint16(1213), - 976: uint16(411), - 977: uint16(577), - 978: uint16(315), - 979: uint16(1248), - 980: uint16(421), - 981: uint16(371), - 982: uint16(1581), - 983: uint16(356), - 984: uint16(319), - 985: uint16(569), - 986: uint16(147), - 987: uint16(495), - 988: uint16(529), - 989: uint16(1644), - 990: uint16(397), - 991: uint16(935), - 992: uint16(495), - 993: uint16(1330), - 994: uint16(71), - 995: uint16(71), - 996: uint16(934), - 997: uint16(72), - 998: uint16(72), - 999: uint16(242), - 1000: uint16(1328), - 1001: uint16(105), - 1002: uint16(81), - 1003: uint16(1217), - 1004: uint16(1217), - 1005: uint16(1054), - 1006: uint16(1057), - 1007: uint16(1044), - 1008: uint16(1044), - 1009: uint16(124), - 1010: uint16(124), - 1011: uint16(125), - 1012: uint16(125), - 1013: uint16(125), - 1014: uint16(125), - 1015: uint16(123), - 1016: uint16(123), - 1017: uint16(123), - 1018: uint16(123), - 1019: uint16(122), - 1020: uint16(122), - 1021: uint16(121), - 1022: uint16(121), - 1023: uint16(121), - 1024: uint16(120), - 1025: uint16(117), - 1026: uint16(448), - 1027: uint16(1117), - 1028: uint16(286), - 1029: uint16(286), - 1030: uint16(1422), - 1031: uint16(452), - 1032: uint16(1528), - 1033: uint16(1213), - 1034: uint16(443), - 1035: uint16(286), - 1036: uint16(286), - 1037: uint16(1492), - 1038: uint16(1355), - 1039: uint16(313), - 1040: uint16(478), - 1041: uint16(569), - 1042: uint16(1118), - 1043: uint16(454), - 1044: uint16(351), - 1045: uint16(495), - 1046: uint16(354), - 1047: uint16(1266), - 1048: uint16(569), - 1049: uint16(209), - 1050: uint16(572), - 1051: uint16(418), - 1052: uint16(179), - 1053: uint16(572), - 1054: uint16(1031), - 1055: uint16(242), - 1056: uint16(385), - 1057: uint16(1119), - 1058: uint16(523), - 1059: uint16(123), - 1060: uint16(123), - 1061: uint16(123), - 1062: uint16(123), - 1063: uint16(122), - 1064: uint16(122), - 1065: uint16(121), - 1066: uint16(121), - 1067: uint16(121), - 1068: uint16(120), - 1069: uint16(117), - 1070: uint16(448), - 1071: uint16(1020), - 1072: uint16(108), - 1073: uint16(72), - 1074: uint16(72), - 1075: uint16(1019), - 1076: uint16(13), - 1077: uint16(13), - 1078: uint16(915), - 1079: uint16(572), - 1080: uint16(1498), - 1081: uint16(572), - 1082: uint16(286), - 1083: uint16(286), - 1084: uint16(98), - 1085: uint16(530), - 1086: uint16(1537), - 1087: uint16(452), - 1088: uint16(916), - 1089: uint16(1334), - 1090: uint16(1329), - 1091: uint16(203), - 1092: uint16(411), - 1093: uint16(286), - 1094: uint16(286), - 1095: uint16(569), - 1096: uint16(152), - 1097: uint16(211), - 1098: uint16(1498), - 1099: uint16(1500), - 1100: uint16(426), - 1101: uint16(569), - 1102: uint16(56), - 1103: uint16(56), - 1104: uint16(57), - 1105: uint16(57), - 1106: uint16(569), - 1107: uint16(1019), - 1108: uint16(1019), - 1109: uint16(1021), - 1110: uint16(447), - 1111: uint16(572), - 1112: uint16(411), - 1113: uint16(531), - 1114: uint16(12), - 1115: uint16(297), - 1116: uint16(126), - 1117: uint16(127), - 1118: uint16(81), - 1119: uint16(1217), - 1120: uint16(1217), - 1121: uint16(1054), - 1122: uint16(1057), - 1123: uint16(1044), - 1124: uint16(1044), - 1125: uint16(124), - 1126: uint16(124), - 1127: uint16(125), - 1128: uint16(125), - 1129: uint16(125), - 1130: uint16(125), - 1131: uint16(572), - 1132: uint16(411), - 1133: uint16(867), - 1134: uint16(15), - 1135: uint16(15), - 1136: uint16(126), - 1137: uint16(127), - 1138: uint16(81), - 1139: uint16(1217), - 1140: uint16(1217), - 1141: uint16(1054), - 1142: uint16(1057), - 1143: uint16(1044), - 1144: uint16(1044), - 1145: uint16(124), - 1146: uint16(124), - 1147: uint16(125), - 1148: uint16(125), - 1149: uint16(125), - 1150: uint16(125), - 1151: uint16(373), - 1152: uint16(529), - 1153: uint16(264), - 1154: uint16(44), - 1155: uint16(44), - 1156: uint16(126), - 1157: uint16(115), - 1158: uint16(81), - 1159: uint16(1217), - 1160: uint16(1217), - 1161: uint16(1054), - 1162: uint16(1057), - 1163: uint16(1044), - 1164: uint16(1044), - 1165: uint16(124), - 1166: uint16(124), - 1167: uint16(125), - 1168: uint16(125), - 1169: uint16(125), - 1170: uint16(125), - 1171: uint16(1498), - 1172: uint16(478), - 1173: uint16(1271), - 1174: uint16(417), - 1175: uint16(123), - 1176: uint16(123), - 1177: uint16(123), - 1178: uint16(123), - 1179: uint16(122), - 1180: uint16(122), - 1181: uint16(121), - 1182: uint16(121), - 1183: uint16(121), - 1184: uint16(120), - 1185: uint16(117), - 1186: uint16(448), - 1187: uint16(205), - 1188: uint16(1213), - 1189: uint16(495), - 1190: uint16(430), - 1191: uint16(867), - 1192: uint16(468), - 1193: uint16(322), - 1194: uint16(495), - 1195: uint16(123), - 1196: uint16(123), - 1197: uint16(123), - 1198: uint16(123), - 1199: uint16(122), - 1200: uint16(122), - 1201: uint16(121), - 1202: uint16(121), - 1203: uint16(121), - 1204: uint16(120), - 1205: uint16(117), - 1206: uint16(448), - 1207: uint16(572), - 1208: uint16(557), - 1209: uint16(1140), - 1210: uint16(1642), - 1211: uint16(1422), - 1212: uint16(1642), - 1213: uint16(543), - 1214: uint16(572), - 1215: uint16(123), - 1216: uint16(123), - 1217: uint16(123), - 1218: uint16(123), - 1219: uint16(122), - 1220: uint16(122), - 1221: uint16(121), - 1222: uint16(121), - 1223: uint16(121), - 1224: uint16(120), - 1225: uint16(117), - 1226: uint16(448), - 1227: uint16(572), - 1228: uint16(1422), - 1229: uint16(572), - 1230: uint16(13), - 1231: uint16(13), - 1232: uint16(542), - 1233: uint16(323), - 1234: uint16(1325), - 1235: uint16(411), - 1236: uint16(334), - 1237: uint16(58), - 1238: uint16(58), - 1239: uint16(349), - 1240: uint16(1422), - 1241: uint16(1170), - 1242: uint16(326), - 1243: uint16(286), - 1244: uint16(286), - 1245: uint16(549), - 1246: uint16(1213), - 1247: uint16(300), - 1248: uint16(895), - 1249: uint16(530), - 1250: uint16(45), - 1251: uint16(45), - 1252: uint16(59), - 1253: uint16(59), - 1254: uint16(1140), - 1255: uint16(1643), - 1256: uint16(569), - 1257: uint16(1643), - 1258: uint16(565), - 1259: uint16(417), - 1260: uint16(127), - 1261: uint16(81), - 1262: uint16(1217), - 1263: uint16(1217), - 1264: uint16(1054), - 1265: uint16(1057), - 1266: uint16(1044), - 1267: uint16(1044), - 1268: uint16(124), - 1269: uint16(124), - 1270: uint16(125), - 1271: uint16(125), - 1272: uint16(125), - 1273: uint16(125), - 1274: uint16(1367), - 1275: uint16(373), - 1276: uint16(500), - 1277: uint16(290), - 1278: uint16(1193), - 1279: uint16(512), - 1280: uint16(1366), - 1281: uint16(427), - 1282: uint16(394), - 1283: uint16(394), - 1284: uint16(393), - 1285: uint16(275), - 1286: uint16(391), - 1287: uint16(896), - 1288: uint16(1138), - 1289: uint16(852), - 1290: uint16(478), - 1291: uint16(258), - 1292: uint16(1422), - 1293: uint16(1170), - 1294: uint16(463), - 1295: uint16(1159), - 1296: uint16(12), - 1297: uint16(331), - 1298: uint16(428), - 1299: uint16(333), - 1300: uint16(1117), - 1301: uint16(460), - 1302: uint16(236), - 1303: uint16(258), - 1304: uint16(325), - 1305: uint16(460), - 1306: uint16(544), - 1307: uint16(1544), - 1308: uint16(1159), - 1309: uint16(1098), - 1310: uint16(491), - 1311: uint16(1159), - 1312: uint16(324), - 1313: uint16(1098), - 1314: uint16(440), - 1315: uint16(1118), - 1316: uint16(335), - 1317: uint16(516), - 1318: uint16(123), - 1319: uint16(123), - 1320: uint16(123), - 1321: uint16(123), - 1322: uint16(122), - 1323: uint16(122), - 1324: uint16(121), - 1325: uint16(121), - 1326: uint16(121), - 1327: uint16(120), - 1328: uint16(117), - 1329: uint16(448), - 1330: uint16(1119), - 1331: uint16(318), - 1332: uint16(563), - 1333: uint16(1138), - 1334: uint16(572), - 1335: uint16(1193), - 1336: uint16(1194), - 1337: uint16(1193), - 1338: uint16(112), - 1339: uint16(564), - 1340: uint16(201), + 345: uint16(555), + 346: uint16(1149), + 347: uint16(1657), + 348: uint16(1628), + 349: uint16(1657), + 350: uint16(45), + 351: uint16(128), + 352: uint16(125), + 353: uint16(232), + 354: uint16(1204), + 355: uint16(1205), + 356: uint16(1204), + 357: uint16(1250), + 358: uint16(571), + 359: uint16(1169), + 360: uint16(132), + 361: uint16(132), + 362: uint16(132), + 363: uint16(132), + 364: uint16(131), + 365: uint16(131), + 366: uint16(130), + 367: uint16(130), + 368: uint16(130), + 369: uint16(129), + 370: uint16(126), + 371: uint16(450), + 372: uint16(1169), + 373: uint16(287), + 374: uint16(287), + 375: uint16(1169), + 376: uint16(1019), + 377: uint16(576), + 378: uint16(422), + 379: uint16(1019), + 380: uint16(412), + 381: uint16(451), + 382: uint16(1602), + 383: uint16(582), + 384: uint16(2), + 385: uint16(1259), + 386: uint16(573), + 387: uint16(44), + 388: uint16(561), + 389: uint16(95), + 390: uint16(320), + 391: uint16(110), + 392: uint16(153), + 393: uint16(565), + 394: uint16(1204), + 395: uint16(1205), + 396: uint16(1204), + 397: uint16(522), + 398: uint16(522), + 399: uint16(1341), + 400: uint16(81), + 401: uint16(81), + 402: uint16(7), + 403: uint16(44), + 404: uint16(135), + 405: uint16(136), + 406: uint16(90), + 407: uint16(1228), + 408: uint16(1228), + 409: uint16(1063), + 410: uint16(1066), + 411: uint16(1053), + 412: uint16(1053), + 413: uint16(133), + 414: uint16(133), + 415: uint16(134), + 416: uint16(134), + 417: uint16(134), + 418: uint16(134), + 419: uint16(295), + 420: uint16(1149), + 421: uint16(1658), + 422: uint16(1040), + 423: uint16(1658), + 424: uint16(1204), + 425: uint16(1147), + 426: uint16(319), + 427: uint16(567), + 428: uint16(119), + 429: uint16(119), + 430: uint16(343), + 431: uint16(466), + 432: uint16(331), + 433: uint16(343), + 434: uint16(287), + 435: uint16(287), + 436: uint16(120), + 437: uint16(556), + 438: uint16(451), + 439: uint16(577), + 440: uint16(451), + 441: uint16(1169), + 442: uint16(1169), + 443: uint16(1028), + 444: uint16(319), + 445: uint16(567), + 446: uint16(438), + 447: uint16(573), + 448: uint16(210), + 449: uint16(561), + 450: uint16(1339), + 451: uint16(1451), + 452: uint16(546), + 453: uint16(531), + 454: uint16(1169), + 455: uint16(1169), + 456: uint16(1598), + 457: uint16(1169), + 458: uint16(1169), + 459: uint16(416), + 460: uint16(319), + 461: uint16(567), + 462: uint16(243), + 463: uint16(132), + 464: uint16(132), + 465: uint16(132), + 466: uint16(132), + 467: uint16(131), + 468: uint16(131), + 469: uint16(130), + 470: uint16(130), + 471: uint16(130), + 472: uint16(129), + 473: uint16(126), + 474: uint16(450), + 475: uint16(1028), + 476: uint16(1028), + 477: uint16(1030), + 478: uint16(1031), + 479: uint16(35), + 480: uint16(44), + 481: uint16(1204), + 482: uint16(1205), + 483: uint16(1204), + 484: uint16(472), + 485: uint16(287), + 486: uint16(287), + 487: uint16(1328), + 488: uint16(412), + 489: uint16(1307), + 490: uint16(372), + 491: uint16(1595), + 492: uint16(359), + 493: uint16(225), + 494: uint16(454), + 495: uint16(1204), + 496: uint16(195), + 497: uint16(1328), + 498: uint16(573), + 499: uint16(1147), + 500: uint16(561), + 501: uint16(1333), + 502: uint16(1333), + 503: uint16(274), + 504: uint16(576), + 505: uint16(1188), + 506: uint16(576), + 507: uint16(340), + 508: uint16(46), + 509: uint16(196), + 510: uint16(537), + 511: uint16(217), + 512: uint16(135), + 513: uint16(136), + 514: uint16(90), + 515: uint16(1228), + 516: uint16(1228), + 517: uint16(1063), + 518: uint16(1066), + 519: uint16(1053), + 520: uint16(1053), + 521: uint16(133), + 522: uint16(133), + 523: uint16(134), + 524: uint16(134), + 525: uint16(134), + 526: uint16(134), + 527: uint16(19), + 528: uint16(19), + 529: uint16(19), + 530: uint16(19), + 531: uint16(412), + 532: uint16(581), + 533: uint16(1204), + 534: uint16(1259), + 535: uint16(511), + 536: uint16(1204), + 537: uint16(319), + 538: uint16(567), + 539: uint16(320), + 540: uint16(944), + 541: uint16(153), + 542: uint16(425), + 543: uint16(491), + 544: uint16(430), + 545: uint16(943), + 546: uint16(1204), + 547: uint16(488), + 548: uint16(1341), + 549: uint16(1450), + 550: uint16(532), + 551: uint16(1277), + 552: uint16(1204), + 553: uint16(1205), + 554: uint16(1204), + 555: uint16(135), + 556: uint16(136), + 557: uint16(90), + 558: uint16(1228), + 559: uint16(1228), + 560: uint16(1063), + 561: uint16(1066), + 562: uint16(1053), + 563: uint16(1053), + 564: uint16(133), + 565: uint16(133), + 566: uint16(134), + 567: uint16(134), + 568: uint16(134), + 569: uint16(134), + 570: uint16(575), + 571: uint16(132), + 572: uint16(132), + 573: uint16(132), + 574: uint16(132), + 575: uint16(131), + 576: uint16(131), + 577: uint16(130), + 578: uint16(130), + 579: uint16(130), + 580: uint16(129), + 581: uint16(126), + 582: uint16(450), + 583: uint16(287), + 584: uint16(287), + 585: uint16(528), + 586: uint16(287), + 587: uint16(287), + 588: uint16(372), + 589: uint16(1595), + 590: uint16(1204), + 591: uint16(1205), + 592: uint16(1204), + 593: uint16(1204), + 594: uint16(1205), + 595: uint16(1204), + 596: uint16(573), + 597: uint16(486), + 598: uint16(561), + 599: uint16(573), + 600: uint16(889), + 601: uint16(561), + 602: uint16(412), + 603: uint16(1204), + 604: uint16(1205), + 605: uint16(1204), + 606: uint16(886), + 607: uint16(40), + 608: uint16(22), + 609: uint16(22), + 610: uint16(220), + 611: uint16(243), + 612: uint16(525), + 613: uint16(1449), + 614: uint16(132), + 615: uint16(132), + 616: uint16(132), + 617: uint16(132), + 618: uint16(131), + 619: uint16(131), + 620: uint16(130), + 621: uint16(130), + 622: uint16(130), + 623: uint16(129), + 624: uint16(126), + 625: uint16(450), + 626: uint16(135), + 627: uint16(136), + 628: uint16(90), + 629: uint16(1228), + 630: uint16(1228), + 631: uint16(1063), + 632: uint16(1066), + 633: uint16(1053), + 634: uint16(1053), + 635: uint16(133), + 636: uint16(133), + 637: uint16(134), + 638: uint16(134), + 639: uint16(134), + 640: uint16(134), + 641: uint16(412), + 642: uint16(180), + 643: uint16(454), + 644: uint16(1204), + 645: uint16(879), + 646: uint16(255), + 647: uint16(287), + 648: uint16(287), + 649: uint16(510), + 650: uint16(507), + 651: uint16(506), + 652: uint16(372), + 653: uint16(1595), + 654: uint16(1568), + 655: uint16(1331), + 656: uint16(1331), + 657: uint16(576), + 658: uint16(889), + 659: uint16(505), + 660: uint16(573), + 661: uint16(44), + 662: uint16(561), + 663: uint16(559), + 664: uint16(1207), + 665: uint16(135), + 666: uint16(136), + 667: uint16(90), + 668: uint16(1228), + 669: uint16(1228), + 670: uint16(1063), + 671: uint16(1066), + 672: uint16(1053), + 673: uint16(1053), + 674: uint16(133), + 675: uint16(133), + 676: uint16(134), + 677: uint16(134), + 678: uint16(134), + 679: uint16(134), + 680: uint16(81), + 681: uint16(81), + 682: uint16(422), + 683: uint16(576), + 684: uint16(377), + 685: uint16(132), + 686: uint16(132), + 687: uint16(132), + 688: uint16(132), + 689: uint16(131), + 690: uint16(131), + 691: uint16(130), + 692: uint16(130), + 693: uint16(130), + 694: uint16(129), + 695: uint16(126), + 696: uint16(450), + 697: uint16(297), + 698: uint16(287), + 699: uint16(287), + 700: uint16(460), + 701: uint16(1204), + 702: uint16(1205), + 703: uint16(1204), + 704: uint16(1204), + 705: uint16(534), + 706: uint16(19), + 707: uint16(19), + 708: uint16(448), + 709: uint16(448), + 710: uint16(448), + 711: uint16(573), + 712: uint16(412), + 713: uint16(561), + 714: uint16(230), + 715: uint16(436), + 716: uint16(1187), + 717: uint16(535), + 718: uint16(319), + 719: uint16(567), + 720: uint16(363), + 721: uint16(432), + 722: uint16(1207), + 723: uint16(1435), + 724: uint16(132), + 725: uint16(132), + 726: uint16(132), + 727: uint16(132), + 728: uint16(131), + 729: uint16(131), + 730: uint16(130), + 731: uint16(130), + 732: uint16(130), + 733: uint16(129), + 734: uint16(126), + 735: uint16(450), + 736: uint16(135), + 737: uint16(136), + 738: uint16(90), + 739: uint16(1228), + 740: uint16(1228), + 741: uint16(1063), + 742: uint16(1066), + 743: uint16(1053), + 744: uint16(1053), + 745: uint16(133), + 746: uint16(133), + 747: uint16(134), + 748: uint16(134), + 749: uint16(134), + 750: uint16(134), + 751: uint16(412), + 752: uint16(211), + 753: uint16(949), + 754: uint16(1169), + 755: uint16(1041), + 756: uint16(1110), + 757: uint16(1110), + 758: uint16(494), + 759: uint16(547), + 760: uint16(547), + 761: uint16(1204), + 762: uint16(1205), + 763: uint16(1204), + 764: uint16(7), + 765: uint16(539), + 766: uint16(1570), + 767: uint16(1169), + 768: uint16(376), + 769: uint16(576), + 770: uint16(1169), + 771: uint16(5), + 772: uint16(1204), + 773: uint16(486), + 774: uint16(3), + 775: uint16(135), + 776: uint16(136), + 777: uint16(90), + 778: uint16(1228), + 779: uint16(1228), + 780: uint16(1063), + 781: uint16(1066), + 782: uint16(1053), + 783: uint16(1053), + 784: uint16(133), + 785: uint16(133), + 786: uint16(134), + 787: uint16(134), + 788: uint16(134), + 789: uint16(134), + 790: uint16(576), + 791: uint16(513), + 792: uint16(19), + 793: uint16(19), + 794: uint16(427), + 795: uint16(132), + 796: uint16(132), + 797: uint16(132), + 798: uint16(132), + 799: uint16(131), + 800: uint16(131), + 801: uint16(130), + 802: uint16(130), + 803: uint16(130), + 804: uint16(129), + 805: uint16(126), + 806: uint16(450), + 807: uint16(305), + 808: uint16(1204), + 809: uint16(433), + 810: uint16(225), + 811: uint16(1204), + 812: uint16(385), + 813: uint16(19), + 814: uint16(19), + 815: uint16(273), + 816: uint16(290), + 817: uint16(371), + 818: uint16(516), + 819: uint16(366), + 820: uint16(515), + 821: uint16(260), + 822: uint16(412), + 823: uint16(538), + 824: uint16(1568), + 825: uint16(549), + 826: uint16(1024), + 827: uint16(362), + 828: uint16(437), + 829: uint16(1204), + 830: uint16(1205), + 831: uint16(1204), + 832: uint16(902), + 833: uint16(1552), + 834: uint16(132), + 835: uint16(132), + 836: uint16(132), + 837: uint16(132), + 838: uint16(131), + 839: uint16(131), + 840: uint16(130), + 841: uint16(130), + 842: uint16(130), + 843: uint16(129), + 844: uint16(126), + 845: uint16(450), + 846: uint16(135), + 847: uint16(136), + 848: uint16(90), + 849: uint16(1228), + 850: uint16(1228), + 851: uint16(1063), + 852: uint16(1066), + 853: uint16(1053), + 854: uint16(1053), + 855: uint16(133), + 856: uint16(133), + 857: uint16(134), + 858: uint16(134), + 859: uint16(134), + 860: uint16(134), + 861: uint16(412), + 862: uint16(1435), + 863: uint16(514), + 864: uint16(1281), + 865: uint16(1204), + 866: uint16(1205), + 867: uint16(1204), + 868: uint16(1204), + 869: uint16(1205), + 870: uint16(1204), + 871: uint16(903), + 872: uint16(48), + 873: uint16(342), + 874: uint16(1568), + 875: uint16(1568), + 876: uint16(1279), + 877: uint16(1627), + 878: uint16(1568), + 879: uint16(911), + 880: uint16(576), + 881: uint16(129), + 882: uint16(126), + 883: uint16(450), + 884: uint16(110), + 885: uint16(135), + 886: uint16(136), + 887: uint16(90), + 888: uint16(1228), + 889: uint16(1228), + 890: uint16(1063), + 891: uint16(1066), + 892: uint16(1053), + 893: uint16(1053), + 894: uint16(133), + 895: uint16(133), + 896: uint16(134), + 897: uint16(134), + 898: uint16(134), + 899: uint16(134), + 900: uint16(265), + 901: uint16(576), + 902: uint16(459), + 903: uint16(19), + 904: uint16(19), + 905: uint16(132), + 906: uint16(132), + 907: uint16(132), + 908: uint16(132), + 909: uint16(131), + 910: uint16(131), + 911: uint16(130), + 912: uint16(130), + 913: uint16(130), + 914: uint16(129), + 915: uint16(126), + 916: uint16(450), + 917: uint16(1345), + 918: uint16(204), + 919: uint16(576), + 920: uint16(459), + 921: uint16(458), + 922: uint16(50), + 923: uint16(47), + 924: uint16(19), + 925: uint16(19), + 926: uint16(49), + 927: uint16(434), + 928: uint16(1105), + 929: uint16(573), + 930: uint16(497), + 931: uint16(561), + 932: uint16(412), + 933: uint16(428), + 934: uint16(108), + 935: uint16(1224), + 936: uint16(1569), + 937: uint16(1554), + 938: uint16(376), + 939: uint16(205), + 940: uint16(550), + 941: uint16(550), + 942: uint16(81), + 943: uint16(81), + 944: uint16(132), + 945: uint16(132), + 946: uint16(132), + 947: uint16(132), + 948: uint16(131), + 949: uint16(131), + 950: uint16(130), + 951: uint16(130), + 952: uint16(130), + 953: uint16(129), + 954: uint16(126), + 955: uint16(450), + 956: uint16(135), + 957: uint16(136), + 958: uint16(90), + 959: uint16(1228), + 960: uint16(1228), + 961: uint16(1063), + 962: uint16(1066), + 963: uint16(1053), + 964: uint16(1053), + 965: uint16(133), + 966: uint16(133), + 967: uint16(134), + 968: uint16(134), + 969: uint16(134), + 970: uint16(134), + 971: uint16(480), + 972: uint16(576), + 973: uint16(1204), + 974: uint16(576), + 975: uint16(1541), + 976: uint16(412), + 977: uint16(1435), + 978: uint16(969), + 979: uint16(315), + 980: uint16(1659), + 981: uint16(398), + 982: uint16(284), + 983: uint16(497), + 984: uint16(969), + 985: uint16(893), + 986: uint16(1569), + 987: uint16(1569), + 988: uint16(376), + 989: uint16(376), + 990: uint16(1569), + 991: uint16(461), + 992: uint16(376), + 993: uint16(1224), + 994: uint16(459), + 995: uint16(80), + 996: uint16(80), + 997: uint16(81), + 998: uint16(81), + 999: uint16(497), + 1000: uint16(374), + 1001: uint16(114), + 1002: uint16(90), + 1003: uint16(1228), + 1004: uint16(1228), + 1005: uint16(1063), + 1006: uint16(1066), + 1007: uint16(1053), + 1008: uint16(1053), + 1009: uint16(133), + 1010: uint16(133), + 1011: uint16(134), + 1012: uint16(134), + 1013: uint16(134), + 1014: uint16(134), + 1015: uint16(132), + 1016: uint16(132), + 1017: uint16(132), + 1018: uint16(132), + 1019: uint16(131), + 1020: uint16(131), + 1021: uint16(130), + 1022: uint16(130), + 1023: uint16(130), + 1024: uint16(129), + 1025: uint16(126), + 1026: uint16(450), + 1027: uint16(1204), + 1028: uint16(1505), + 1029: uint16(576), + 1030: uint16(1204), + 1031: uint16(1205), + 1032: uint16(1204), + 1033: uint16(1366), + 1034: uint16(316), + 1035: uint16(486), + 1036: uint16(281), + 1037: uint16(281), + 1038: uint16(497), + 1039: uint16(431), + 1040: uint16(557), + 1041: uint16(288), + 1042: uint16(288), + 1043: uint16(402), + 1044: uint16(1340), + 1045: uint16(471), + 1046: uint16(345), + 1047: uint16(298), + 1048: uint16(429), + 1049: uint16(573), + 1050: uint16(576), + 1051: uint16(561), + 1052: uint16(81), + 1053: uint16(81), + 1054: uint16(573), + 1055: uint16(374), + 1056: uint16(561), + 1057: uint16(971), + 1058: uint16(386), + 1059: uint16(132), + 1060: uint16(132), + 1061: uint16(132), + 1062: uint16(132), + 1063: uint16(131), + 1064: uint16(131), + 1065: uint16(130), + 1066: uint16(130), + 1067: uint16(130), + 1068: uint16(129), + 1069: uint16(126), + 1070: uint16(450), + 1071: uint16(231), + 1072: uint16(117), + 1073: uint16(81), + 1074: uint16(81), + 1075: uint16(287), + 1076: uint16(287), + 1077: uint16(231), + 1078: uint16(287), + 1079: uint16(287), + 1080: uint16(576), + 1081: uint16(1511), + 1082: uint16(576), + 1083: uint16(1336), + 1084: uint16(1204), + 1085: uint16(1205), + 1086: uint16(1204), + 1087: uint16(139), + 1088: uint16(573), + 1089: uint16(556), + 1090: uint16(561), + 1091: uint16(573), + 1092: uint16(412), + 1093: uint16(561), + 1094: uint16(441), + 1095: uint16(456), + 1096: uint16(969), + 1097: uint16(213), + 1098: uint16(558), + 1099: uint16(1511), + 1100: uint16(1513), + 1101: uint16(1550), + 1102: uint16(969), + 1103: uint16(143), + 1104: uint16(143), + 1105: uint16(145), + 1106: uint16(145), + 1107: uint16(1368), + 1108: uint16(314), + 1109: uint16(478), + 1110: uint16(444), + 1111: uint16(970), + 1112: uint16(412), + 1113: uint16(850), + 1114: uint16(851), + 1115: uint16(852), + 1116: uint16(135), + 1117: uint16(136), + 1118: uint16(90), + 1119: uint16(1228), + 1120: uint16(1228), + 1121: uint16(1063), + 1122: uint16(1066), + 1123: uint16(1053), + 1124: uint16(1053), + 1125: uint16(133), + 1126: uint16(133), + 1127: uint16(134), + 1128: uint16(134), + 1129: uint16(134), + 1130: uint16(134), + 1131: uint16(357), + 1132: uint16(412), + 1133: uint16(397), + 1134: uint16(1148), + 1135: uint16(304), + 1136: uint16(135), + 1137: uint16(136), + 1138: uint16(90), + 1139: uint16(1228), + 1140: uint16(1228), + 1141: uint16(1063), + 1142: uint16(1066), + 1143: uint16(1053), + 1144: uint16(1053), + 1145: uint16(133), + 1146: uint16(133), + 1147: uint16(134), + 1148: uint16(134), + 1149: uint16(134), + 1150: uint16(134), + 1151: uint16(1575), + 1152: uint16(323), + 1153: uint16(6), + 1154: uint16(862), + 1155: uint16(7), + 1156: uint16(135), + 1157: uint16(124), + 1158: uint16(90), + 1159: uint16(1228), + 1160: uint16(1228), + 1161: uint16(1063), + 1162: uint16(1066), + 1163: uint16(1053), + 1164: uint16(1053), + 1165: uint16(133), + 1166: uint16(133), + 1167: uint16(134), + 1168: uint16(134), + 1169: uint16(134), + 1170: uint16(134), + 1171: uint16(409), + 1172: uint16(408), + 1173: uint16(1511), + 1174: uint16(212), + 1175: uint16(132), + 1176: uint16(132), + 1177: uint16(132), + 1178: uint16(132), + 1179: uint16(131), + 1180: uint16(131), + 1181: uint16(130), + 1182: uint16(130), + 1183: uint16(130), + 1184: uint16(129), + 1185: uint16(126), + 1186: uint16(450), + 1187: uint16(411), + 1188: uint16(118), + 1189: uint16(1204), + 1190: uint16(116), + 1191: uint16(10), + 1192: uint16(352), + 1193: uint16(265), + 1194: uint16(355), + 1195: uint16(132), + 1196: uint16(132), + 1197: uint16(132), + 1198: uint16(132), + 1199: uint16(131), + 1200: uint16(131), + 1201: uint16(130), + 1202: uint16(130), + 1203: uint16(130), + 1204: uint16(129), + 1205: uint16(126), + 1206: uint16(450), + 1207: uint16(576), + 1208: uint16(324), + 1209: uint16(306), + 1210: uint16(576), + 1211: uint16(306), + 1212: uint16(1250), + 1213: uint16(469), + 1214: uint16(158), + 1215: uint16(132), + 1216: uint16(132), + 1217: uint16(132), + 1218: uint16(132), + 1219: uint16(131), + 1220: uint16(131), + 1221: uint16(130), + 1222: uint16(130), + 1223: uint16(130), + 1224: uint16(129), + 1225: uint16(126), + 1226: uint16(450), + 1227: uint16(207), + 1228: uint16(1224), + 1229: uint16(1126), + 1230: uint16(65), + 1231: uint16(65), + 1232: uint16(470), + 1233: uint16(66), + 1234: uint16(66), + 1235: uint16(412), + 1236: uint16(447), + 1237: uint16(446), + 1238: uint16(882), + 1239: uint16(531), + 1240: uint16(335), + 1241: uint16(258), + 1242: uint16(257), + 1243: uint16(256), + 1244: uint16(1127), + 1245: uint16(1233), + 1246: uint16(1204), + 1247: uint16(1205), + 1248: uint16(1204), + 1249: uint16(327), + 1250: uint16(1235), + 1251: uint16(874), + 1252: uint16(159), + 1253: uint16(576), + 1254: uint16(16), + 1255: uint16(480), + 1256: uint16(1085), + 1257: uint16(1040), + 1258: uint16(1234), + 1259: uint16(1128), + 1260: uint16(136), + 1261: uint16(90), + 1262: uint16(1228), + 1263: uint16(1228), + 1264: uint16(1063), + 1265: uint16(1066), + 1266: uint16(1053), + 1267: uint16(1053), + 1268: uint16(133), + 1269: uint16(133), + 1270: uint16(134), + 1271: uint16(134), + 1272: uint16(134), + 1273: uint16(134), + 1274: uint16(1029), + 1275: uint16(576), + 1276: uint16(81), + 1277: uint16(81), + 1278: uint16(1028), + 1279: uint16(1040), + 1280: uint16(922), + 1281: uint16(576), + 1282: uint16(463), + 1283: uint16(1236), + 1284: uint16(576), + 1285: uint16(1236), + 1286: uint16(1224), + 1287: uint16(502), + 1288: uint16(107), + 1289: uint16(1435), + 1290: uint16(923), + 1291: uint16(6), + 1292: uint16(576), + 1293: uint16(410), + 1294: uint16(1498), + 1295: uint16(882), + 1296: uint16(1029), + 1297: uint16(480), + 1298: uint16(21), + 1299: uint16(21), + 1300: uint16(1028), + 1301: uint16(332), + 1302: uint16(1380), + 1303: uint16(334), + 1304: uint16(53), + 1305: uint16(53), + 1306: uint16(497), + 1307: uint16(81), + 1308: uint16(81), + 1309: uint16(874), + 1310: uint16(1028), + 1311: uint16(1028), + 1312: uint16(1030), + 1313: uint16(445), + 1314: uint16(259), + 1315: uint16(19), + 1316: uint16(19), + 1317: uint16(533), + 1318: uint16(132), + 1319: uint16(132), + 1320: uint16(132), + 1321: uint16(132), + 1322: uint16(131), + 1323: uint16(131), + 1324: uint16(130), + 1325: uint16(130), + 1326: uint16(130), + 1327: uint16(129), + 1328: uint16(126), + 1329: uint16(450), + 1330: uint16(551), + 1331: uint16(301), + 1332: uint16(1028), + 1333: uint16(1028), + 1334: uint16(1030), + 1335: uint16(107), + 1336: uint16(532), + 1337: uint16(545), + 1338: uint16(121), + 1339: uint16(568), + 1340: uint16(1188), 1341: uint16(4), - 1342: uint16(238), - 1343: uint16(433), - 1344: uint16(935), - 1345: uint16(490), - 1346: uint16(285), - 1347: uint16(228), - 1348: uint16(1517), - 1349: uint16(934), - 1350: uint16(170), - 1351: uint16(560), - 1352: uint16(572), - 1353: uint16(142), - 1354: uint16(1516), - 1355: uint16(567), - 1356: uint16(572), - 1357: uint16(60), - 1358: uint16(60), - 1359: uint16(572), - 1360: uint16(416), - 1361: uint16(572), - 1362: uint16(441), - 1363: uint16(572), - 1364: uint16(535), - 1365: uint16(302), - 1366: uint16(875), - 1367: uint16(8), - 1368: uint16(487), - 1369: uint16(572), - 1370: uint16(237), - 1371: uint16(572), - 1372: uint16(416), - 1373: uint16(572), - 1374: uint16(485), - 1375: uint16(61), - 1376: uint16(61), - 1377: uint16(572), - 1378: uint16(449), - 1379: uint16(62), - 1380: uint16(62), - 1381: uint16(332), - 1382: uint16(63), - 1383: uint16(63), - 1384: uint16(46), - 1385: uint16(46), - 1386: uint16(47), - 1387: uint16(47), - 1388: uint16(361), - 1389: uint16(572), - 1390: uint16(561), - 1391: uint16(572), - 1392: uint16(48), - 1393: uint16(48), - 1394: uint16(50), - 1395: uint16(50), - 1396: uint16(51), - 1397: uint16(51), - 1398: uint16(572), - 1399: uint16(295), - 1400: uint16(64), - 1401: uint16(64), - 1402: uint16(482), - 1403: uint16(295), - 1404: uint16(539), - 1405: uint16(412), - 1406: uint16(471), - 1407: uint16(1031), - 1408: uint16(572), - 1409: uint16(538), - 1410: uint16(318), - 1411: uint16(563), - 1412: uint16(65), - 1413: uint16(65), - 1414: uint16(66), - 1415: uint16(66), - 1416: uint16(409), - 1417: uint16(475), - 1418: uint16(572), - 1419: uint16(1031), - 1420: uint16(572), - 1421: uint16(14), - 1422: uint16(14), - 1423: uint16(875), - 1424: uint16(1020), - 1425: uint16(110), - 1426: uint16(110), - 1427: uint16(409), - 1428: uint16(1019), - 1429: uint16(572), - 1430: uint16(474), - 1431: uint16(67), - 1432: uint16(67), - 1433: uint16(111), - 1434: uint16(455), - 1435: uint16(449), - 1436: uint16(573), - 1437: uint16(449), - 1438: uint16(98), - 1439: uint16(317), - 1440: uint16(1019), - 1441: uint16(132), - 1442: uint16(132), - 1443: uint16(133), - 1444: uint16(133), - 1445: uint16(572), - 1446: uint16(1561), - 1447: uint16(572), - 1448: uint16(974), - 1449: uint16(409), - 1450: uint16(6), - 1451: uint16(1562), - 1452: uint16(68), - 1453: uint16(68), - 1454: uint16(1560), - 1455: uint16(6), - 1456: uint16(975), - 1457: uint16(572), - 1458: uint16(6), - 1459: uint16(1559), - 1460: uint16(1019), - 1461: uint16(1019), - 1462: uint16(1021), - 1463: uint16(6), - 1464: uint16(346), - 1465: uint16(218), - 1466: uint16(101), - 1467: uint16(531), - 1468: uint16(53), - 1469: uint16(53), - 1470: uint16(69), - 1471: uint16(69), - 1472: uint16(1019), - 1473: uint16(1019), - 1474: uint16(1021), - 1475: uint16(1022), - 1476: uint16(28), - 1477: uint16(1586), - 1478: uint16(1181), - 1479: uint16(451), - 1480: uint16(70), - 1481: uint16(70), - 1482: uint16(290), - 1483: uint16(87), - 1484: uint16(215), - 1485: uint16(31), - 1486: uint16(1363), - 1487: uint16(394), - 1488: uint16(394), - 1489: uint16(393), - 1490: uint16(275), - 1491: uint16(391), - 1492: uint16(350), - 1493: uint16(109), - 1494: uint16(852), - 1495: uint16(107), - 1496: uint16(572), - 1497: uint16(112), - 1498: uint16(564), - 1499: uint16(483), - 1500: uint16(4), - 1501: uint16(1212), - 1502: uint16(572), - 1503: uint16(239), - 1504: uint16(153), - 1505: uint16(572), - 1506: uint16(39), - 1507: uint16(236), - 1508: uint16(1299), - 1509: uint16(325), - 1510: uint16(112), - 1511: uint16(564), - 1512: uint16(1298), - 1513: uint16(4), - 1514: uint16(567), - 1515: uint16(572), - 1516: uint16(32), - 1517: uint16(324), - 1518: uint16(572), - 1519: uint16(54), - 1520: uint16(54), - 1521: uint16(572), - 1522: uint16(1135), - 1523: uint16(353), - 1524: uint16(398), - 1525: uint16(165), - 1526: uint16(165), - 1527: uint16(567), - 1528: uint16(166), - 1529: uint16(166), - 1530: uint16(572), - 1531: uint16(291), - 1532: uint16(355), - 1533: uint16(572), - 1534: uint16(17), - 1535: uint16(357), - 1536: uint16(572), - 1537: uint16(449), - 1538: uint16(77), - 1539: uint16(77), - 1540: uint16(1313), - 1541: uint16(55), - 1542: uint16(55), - 1543: uint16(1297), - 1544: uint16(73), - 1545: uint16(73), - 1546: uint16(572), - 1547: uint16(238), - 1548: uint16(470), - 1549: uint16(561), - 1550: uint16(449), - 1551: uint16(472), - 1552: uint16(364), - 1553: uint16(135), - 1554: uint16(135), - 1555: uint16(170), - 1556: uint16(74), - 1557: uint16(74), - 1558: uint16(142), - 1559: uint16(163), - 1560: uint16(163), - 1561: uint16(374), - 1562: uint16(561), - 1563: uint16(539), - 1564: uint16(572), - 1565: uint16(321), - 1566: uint16(572), - 1567: uint16(886), - 1568: uint16(540), - 1569: uint16(137), - 1570: uint16(137), - 1571: uint16(339), - 1572: uint16(1353), - 1573: uint16(422), - 1574: uint16(298), - 1575: uint16(237), - 1576: uint16(539), - 1577: uint16(572), - 1578: uint16(1031), - 1579: uint16(572), - 1580: uint16(340), - 1581: uint16(538), - 1582: uint16(101), - 1583: uint16(369), - 1584: uint16(110), - 1585: uint16(110), - 1586: uint16(162), - 1587: uint16(131), - 1588: uint16(131), - 1589: uint16(164), - 1590: uint16(164), - 1591: uint16(1031), - 1592: uint16(111), - 1593: uint16(368), - 1594: uint16(449), - 1595: uint16(573), - 1596: uint16(449), + 1342: uint16(1126), + 1343: uint16(1576), + 1344: uint16(449), + 1345: uint16(576), + 1346: uint16(462), + 1347: uint16(7), + 1348: uint16(1282), + 1349: uint16(418), + 1350: uint16(462), + 1351: uint16(350), + 1352: uint16(1435), + 1353: uint16(576), + 1354: uint16(518), + 1355: uint16(571), + 1356: uint16(544), + 1357: uint16(1127), + 1358: uint16(121), + 1359: uint16(568), + 1360: uint16(442), + 1361: uint16(4), + 1362: uint16(1188), + 1363: uint16(464), + 1364: uint16(533), + 1365: uint16(1180), + 1366: uint16(1223), + 1367: uint16(9), + 1368: uint16(67), + 1369: uint16(67), + 1370: uint16(487), + 1371: uint16(576), + 1372: uint16(1128), + 1373: uint16(303), + 1374: uint16(410), + 1375: uint16(571), + 1376: uint16(54), + 1377: uint16(54), + 1378: uint16(451), + 1379: uint16(576), + 1380: uint16(123), + 1381: uint16(944), + 1382: uint16(576), + 1383: uint16(417), + 1384: uint16(576), + 1385: uint16(333), + 1386: uint16(943), + 1387: uint16(1379), + 1388: uint16(576), + 1389: uint16(236), + 1390: uint16(565), + 1391: uint16(576), + 1392: uint16(1574), + 1393: uint16(564), + 1394: uint16(68), + 1395: uint16(68), + 1396: uint16(7), + 1397: uint16(576), + 1398: uint16(451), + 1399: uint16(362), + 1400: uint16(419), + 1401: uint16(182), + 1402: uint16(69), + 1403: uint16(69), + 1404: uint16(541), + 1405: uint16(70), + 1406: uint16(70), + 1407: uint16(71), + 1408: uint16(71), + 1409: uint16(540), + 1410: uint16(565), + 1411: uint16(72), + 1412: uint16(72), + 1413: uint16(484), + 1414: uint16(55), + 1415: uint16(55), + 1416: uint16(473), + 1417: uint16(1180), + 1418: uint16(296), + 1419: uint16(1040), + 1420: uint16(56), + 1421: uint16(56), + 1422: uint16(296), + 1423: uint16(493), + 1424: uint16(541), + 1425: uint16(119), + 1426: uint16(119), + 1427: uint16(410), + 1428: uint16(1573), + 1429: uint16(542), + 1430: uint16(569), + 1431: uint16(418), + 1432: uint16(7), + 1433: uint16(120), + 1434: uint16(1244), + 1435: uint16(451), + 1436: uint16(577), + 1437: uint16(451), + 1438: uint16(465), + 1439: uint16(1040), + 1440: uint16(1028), + 1441: uint16(576), + 1442: uint16(1557), + 1443: uint16(552), + 1444: uint16(476), + 1445: uint16(119), + 1446: uint16(119), + 1447: uint16(527), + 1448: uint16(259), + 1449: uint16(121), + 1450: uint16(568), + 1451: uint16(240), + 1452: uint16(4), + 1453: uint16(120), + 1454: uint16(576), + 1455: uint16(451), + 1456: uint16(577), + 1457: uint16(451), + 1458: uint16(576), + 1459: uint16(477), + 1460: uint16(1028), + 1461: uint16(576), + 1462: uint16(156), + 1463: uint16(576), + 1464: uint16(57), + 1465: uint16(57), + 1466: uint16(571), + 1467: uint16(576), + 1468: uint16(286), + 1469: uint16(229), + 1470: uint16(410), + 1471: uint16(336), + 1472: uint16(1028), + 1473: uint16(1028), + 1474: uint16(1030), + 1475: uint16(1031), + 1476: uint16(35), + 1477: uint16(59), + 1478: uint16(59), + 1479: uint16(219), + 1480: uint16(983), + 1481: uint16(60), + 1482: uint16(60), + 1483: uint16(220), + 1484: uint16(73), + 1485: uint16(73), + 1486: uint16(74), + 1487: uint16(74), + 1488: uint16(984), + 1489: uint16(451), + 1490: uint16(75), + 1491: uint16(75), + 1492: uint16(1028), + 1493: uint16(1028), + 1494: uint16(1030), + 1495: uint16(1031), + 1496: uint16(35), + 1497: uint16(96), + 1498: uint16(216), + 1499: uint16(291), + 1500: uint16(552), + 1501: uint16(565), + 1502: uint16(1188), + 1503: uint16(318), + 1504: uint16(395), + 1505: uint16(395), + 1506: uint16(394), + 1507: uint16(276), + 1508: uint16(392), + 1509: uint16(576), + 1510: uint16(485), + 1511: uint16(859), + 1512: uint16(474), + 1513: uint16(1311), + 1514: uint16(410), + 1515: uint16(541), + 1516: uint16(576), + 1517: uint16(417), + 1518: uint16(1530), + 1519: uint16(1144), + 1520: uint16(540), + 1521: uint16(399), + 1522: uint16(1188), + 1523: uint16(292), + 1524: uint16(237), + 1525: uint16(1153), + 1526: uint16(326), + 1527: uint16(38), + 1528: uint16(23), + 1529: uint16(576), + 1530: uint16(1040), + 1531: uint16(576), + 1532: uint16(20), + 1533: uint16(20), + 1534: uint16(325), + 1535: uint16(299), + 1536: uint16(119), + 1537: uint16(119), + 1538: uint16(164), + 1539: uint16(76), + 1540: uint16(76), + 1541: uint16(1529), + 1542: uint16(121), + 1543: uint16(568), + 1544: uint16(120), + 1545: uint16(4), + 1546: uint16(451), + 1547: uint16(577), + 1548: uint16(451), + 1549: uint16(203), + 1550: uint16(576), + 1551: uint16(1028), + 1552: uint16(141), + 1553: uint16(141), + 1554: uint16(142), + 1555: uint16(142), + 1556: uint16(576), + 1557: uint16(322), + 1558: uint16(39), + 1559: uint16(571), + 1560: uint16(341), + 1561: uint16(1021), + 1562: uint16(110), + 1563: uint16(264), + 1564: uint16(239), + 1565: uint16(901), + 1566: uint16(900), + 1567: uint16(423), + 1568: uint16(242), + 1569: uint16(908), + 1570: uint16(909), + 1571: uint16(370), + 1572: uint16(173), + 1573: uint16(77), + 1574: uint16(77), + 1575: uint16(43), + 1576: uint16(479), + 1577: uint16(1310), + 1578: uint16(264), + 1579: uint16(62), + 1580: uint16(62), + 1581: uint16(369), + 1582: uint16(451), + 1583: uint16(1028), + 1584: uint16(1028), + 1585: uint16(1030), + 1586: uint16(1031), + 1587: uint16(35), + 1588: uint16(1601), + 1589: uint16(1192), + 1590: uint16(453), + 1591: uint16(1092), + 1592: uint16(238), + 1593: uint16(291), + 1594: uint16(565), + 1595: uint16(163), + 1596: uint16(1309), 1597: uint16(110), - 1598: uint16(110), - 1599: uint16(1019), - 1600: uint16(157), - 1601: uint16(157), - 1602: uint16(141), - 1603: uint16(141), - 1604: uint16(572), - 1605: uint16(111), - 1606: uint16(572), - 1607: uint16(449), - 1608: uint16(573), - 1609: uint16(449), - 1610: uint16(412), - 1611: uint16(288), - 1612: uint16(1019), - 1613: uint16(572), - 1614: uint16(882), - 1615: uint16(318), - 1616: uint16(563), - 1617: uint16(572), - 1618: uint16(219), - 1619: uint16(572), - 1620: uint16(241), - 1621: uint16(1012), - 1622: uint16(477), - 1623: uint16(263), - 1624: uint16(263), - 1625: uint16(894), - 1626: uint16(893), - 1627: uint16(140), - 1628: uint16(140), - 1629: uint16(138), - 1630: uint16(138), - 1631: uint16(1019), - 1632: uint16(1019), - 1633: uint16(1021), - 1634: uint16(1022), - 1635: uint16(28), - 1636: uint16(139), - 1637: uint16(139), - 1638: uint16(525), - 1639: uint16(455), - 1640: uint16(76), - 1641: uint16(76), - 1642: uint16(78), - 1643: uint16(78), - 1644: uint16(1019), - 1645: uint16(1019), - 1646: uint16(1021), - 1647: uint16(1022), - 1648: uint16(28), - 1649: uint16(1181), - 1650: uint16(451), - 1651: uint16(572), - 1652: uint16(1083), - 1653: uint16(290), - 1654: uint16(112), - 1655: uint16(564), - 1656: uint16(1575), - 1657: uint16(4), - 1658: uint16(394), - 1659: uint16(394), - 1660: uint16(393), - 1661: uint16(275), - 1662: uint16(391), - 1663: uint16(572), - 1664: uint16(1023), - 1665: uint16(852), - 1666: uint16(572), - 1667: uint16(479), - 1668: uint16(345), - 1669: uint16(263), - 1670: uint16(101), - 1671: uint16(567), - 1672: uint16(882), - 1673: uint16(1376), - 1674: uint16(75), - 1675: uint16(75), - 1676: uint16(1421), - 1677: uint16(501), - 1678: uint16(236), - 1679: uint16(260), - 1680: uint16(325), - 1681: uint16(112), - 1682: uint16(564), - 1683: uint16(359), - 1684: uint16(4), - 1685: uint16(101), - 1686: uint16(43), - 1687: uint16(43), - 1688: uint16(324), - 1689: uint16(49), - 1690: uint16(49), - 1691: uint16(901), - 1692: uint16(902), - 1693: uint16(161), - 1694: uint16(449), - 1695: uint16(101), - 1696: uint16(977), - 1697: uint16(978), - 1698: uint16(567), - 1699: uint16(1079), - 1700: uint16(1349), - 1701: uint16(260), - 1702: uint16(965), - 1703: uint16(932), - 1704: uint16(263), - 1705: uint16(114), - 1706: uint16(561), - 1707: uint16(1095), - 1708: uint16(517), - 1709: uint16(1095), - 1710: uint16(1083), - 1711: uint16(1094), - 1712: uint16(865), - 1713: uint16(1094), - 1714: uint16(151), - 1715: uint16(933), - 1716: uint16(1144), - 1717: uint16(114), - 1718: uint16(238), - 1719: uint16(1361), - 1720: uint16(558), - 1721: uint16(449), - 1722: uint16(1023), - 1723: uint16(559), - 1724: uint16(1426), - 1725: uint16(1278), - 1726: uint16(170), - 1727: uint16(1269), - 1728: uint16(1257), - 1729: uint16(142), - 1730: uint16(1601), - 1731: uint16(1256), - 1732: uint16(1258), - 1733: uint16(561), - 1734: uint16(1594), - 1735: uint16(1031), - 1736: uint16(496), - 1737: uint16(278), - 1738: uint16(213), - 1739: uint16(1346), - 1740: uint16(310), - 1741: uint16(110), - 1742: uint16(110), - 1743: uint16(939), - 1744: uint16(311), - 1745: uint16(312), - 1746: uint16(237), - 1747: uint16(11), - 1748: uint16(234), - 1749: uint16(111), - 1750: uint16(221), - 1751: uint16(449), - 1752: uint16(573), - 1753: uint16(449), - 1754: uint16(293), - 1755: uint16(395), - 1756: uint16(1019), - 1757: uint16(1408), - 1758: uint16(337), - 1759: uint16(1403), - 1760: uint16(1396), - 1761: uint16(338), - 1762: uint16(1031), - 1763: uint16(299), - 1764: uint16(343), - 1765: uint16(1413), - 1766: uint16(1412), - 1767: uint16(481), - 1768: uint16(110), - 1769: uint16(110), - 1770: uint16(506), - 1771: uint16(402), - 1772: uint16(225), - 1773: uint16(1296), - 1774: uint16(206), - 1775: uint16(367), - 1776: uint16(111), - 1777: uint16(1358), - 1778: uint16(449), - 1779: uint16(573), - 1780: uint16(449), - 1781: uint16(412), - 1782: uint16(1359), - 1783: uint16(1019), - 1784: uint16(1489), - 1785: uint16(1488), - 1786: uint16(318), - 1787: uint16(563), - 1788: uint16(1019), - 1789: uint16(1019), - 1790: uint16(1021), - 1791: uint16(1022), - 1792: uint16(28), - 1793: uint16(562), - 1794: uint16(207), - 1795: uint16(220), - 1796: uint16(80), - 1797: uint16(564), - 1798: uint16(389), - 1799: uint16(4), - 1800: uint16(1597), - 1801: uint16(1357), - 1802: uint16(552), - 1803: uint16(1356), - 1804: uint16(1233), - 1805: uint16(181), - 1806: uint16(267), - 1807: uint16(232), - 1808: uint16(1536), - 1809: uint16(1534), - 1810: uint16(455), - 1811: uint16(1230), - 1812: uint16(420), - 1813: uint16(567), - 1814: uint16(82), - 1815: uint16(1019), - 1816: uint16(1019), - 1817: uint16(1021), - 1818: uint16(1022), - 1819: uint16(28), - 1820: uint16(86), - 1821: uint16(217), - 1822: uint16(85), - 1823: uint16(1494), - 1824: uint16(190), - 1825: uint16(175), - 1826: uint16(183), - 1827: uint16(465), - 1828: uint16(185), - 1829: uint16(466), - 1830: uint16(36), - 1831: uint16(1409), - 1832: uint16(186), - 1833: uint16(187), - 1834: uint16(188), - 1835: uint16(499), - 1836: uint16(449), - 1837: uint16(244), - 1838: uint16(37), - 1839: uint16(99), - 1840: uint16(400), - 1841: uint16(1415), - 1842: uint16(1414), - 1843: uint16(488), - 1844: uint16(1417), - 1845: uint16(194), - 1846: uint16(473), - 1847: uint16(403), - 1848: uint16(561), - 1849: uint16(1483), - 1850: uint16(248), - 1851: uint16(92), - 1852: uint16(1505), - 1853: uint16(494), - 1854: uint16(198), - 1855: uint16(279), - 1856: uint16(112), - 1857: uint16(564), - 1858: uint16(250), - 1859: uint16(4), - 1860: uint16(348), - 1861: uint16(497), - 1862: uint16(405), - 1863: uint16(352), - 1864: uint16(1259), - 1865: uint16(251), - 1866: uint16(252), - 1867: uint16(515), - 1868: uint16(1316), - 1869: uint16(434), - 1870: uint16(1315), - 1871: uint16(1314), - 1872: uint16(94), - 1873: uint16(567), - 1874: uint16(1307), - 1875: uint16(886), - 1876: uint16(1306), - 1877: uint16(1031), - 1878: uint16(226), - 1879: uint16(406), - 1880: uint16(1611), - 1881: uint16(1610), - 1882: uint16(438), - 1883: uint16(110), - 1884: uint16(110), - 1885: uint16(1580), - 1886: uint16(1286), - 1887: uint16(524), - 1888: uint16(439), - 1889: uint16(308), - 1890: uint16(266), - 1891: uint16(111), - 1892: uint16(1285), - 1893: uint16(449), - 1894: uint16(573), - 1895: uint16(449), - 1896: uint16(449), - 1897: uint16(309), - 1898: uint16(1019), - 1899: uint16(366), - 1900: uint16(1284), - 1901: uint16(1609), - 1902: uint16(265), - 1903: uint16(1566), - 1904: uint16(1565), - 1905: uint16(442), - 1906: uint16(372), - 1907: uint16(1381), - 1908: uint16(561), - 1909: uint16(129), - 1910: uint16(550), - 1911: uint16(1380), - 1912: uint16(10), - 1913: uint16(1470), - 1914: uint16(383), - 1915: uint16(106), - 1916: uint16(316), - 1917: uint16(551), - 1918: uint16(100), - 1919: uint16(35), - 1920: uint16(534), - 1921: uint16(575), - 1922: uint16(212), - 1923: uint16(1339), - 1924: uint16(381), - 1925: uint16(387), - 1926: uint16(1187), - 1927: uint16(1338), - 1928: uint16(274), - 1929: uint16(276), - 1930: uint16(1019), - 1931: uint16(1019), - 1932: uint16(1021), - 1933: uint16(1022), - 1934: uint16(28), - 1935: uint16(277), - 1936: uint16(413), - 1937: uint16(1031), - 1938: uint16(576), - 1939: uint16(1254), - 1940: uint16(388), - 1941: uint16(1521), - 1942: uint16(1249), - 1943: uint16(110), - 1944: uint16(110), - 1945: uint16(167), - 1946: uint16(1522), - 1947: uint16(168), - 1948: uint16(148), - 1949: uint16(1520), - 1950: uint16(1519), - 1951: uint16(111), - 1952: uint16(306), - 1953: uint16(449), - 1954: uint16(573), - 1955: uint16(449), - 1956: uint16(222), - 1957: uint16(223), - 1958: uint16(1019), - 1959: uint16(839), - 1960: uint16(169), - 1961: uint16(79), - 1962: uint16(450), - 1963: uint16(214), - 1964: uint16(414), - 1965: uint16(233), - 1966: uint16(320), - 1967: uint16(145), - 1968: uint16(1093), - 1969: uint16(1091), - 1970: uint16(328), - 1971: uint16(182), - 1972: uint16(171), - 1973: uint16(1212), - 1974: uint16(918), - 1975: uint16(184), - 1976: uint16(240), - 1977: uint16(336), - 1978: uint16(243), - 1979: uint16(1107), - 1980: uint16(189), - 1981: uint16(172), - 1982: uint16(173), - 1983: uint16(423), - 1984: uint16(425), - 1985: uint16(88), - 1986: uint16(180), - 1987: uint16(191), - 1988: uint16(89), - 1989: uint16(90), - 1990: uint16(1019), - 1991: uint16(1019), - 1992: uint16(1021), - 1993: uint16(1022), - 1994: uint16(28), - 1995: uint16(91), - 1996: uint16(174), - 1997: uint16(1110), - 1998: uint16(245), - 1999: uint16(1106), - 2000: uint16(246), - 2001: uint16(159), - 2002: uint16(18), - 2003: uint16(247), - 2004: uint16(347), - 2005: uint16(1099), - 2006: uint16(263), - 2007: uint16(195), - 2008: uint16(1227), - 2009: uint16(493), - 2010: uint16(249), - 2011: uint16(196), - 2012: uint16(38), - 2013: uint16(854), - 2014: uint16(498), - 2015: uint16(368), - 2016: uint16(253), - 2017: uint16(360), - 2018: uint16(897), - 2019: uint16(197), - 2020: uint16(502), - 2021: uint16(93), - 2022: uint16(19), - 2023: uint16(20), - 2024: uint16(507), - 2025: uint16(884), - 2026: uint16(363), - 2027: uint16(510), - 2028: uint16(95), - 2029: uint16(307), - 2030: uint16(160), - 2031: uint16(96), - 2032: uint16(518), - 2033: uint16(97), - 2034: uint16(1175), - 2035: uint16(1060), - 2036: uint16(1146), - 2037: uint16(40), - 2038: uint16(21), - 2039: uint16(227), - 2040: uint16(176), - 2041: uint16(1145), - 2042: uint16(282), - 2043: uint16(284), - 2044: uint16(969), - 2045: uint16(200), - 2046: uint16(963), - 2047: uint16(114), - 2048: uint16(262), - 2049: uint16(1165), - 2050: uint16(22), - 2051: uint16(23), - 2052: uint16(24), - 2053: uint16(1161), - 2054: uint16(1169), - 2055: uint16(25), - 2056: uint16(1163), - 2057: uint16(1150), - 2058: uint16(34), - 2059: uint16(26), - 2060: uint16(1168), - 2061: uint16(546), - 2062: uint16(27), - 2063: uint16(204), - 2064: uint16(101), - 2065: uint16(103), - 2066: uint16(104), - 2067: uint16(1074), - 2068: uint16(7), - 2069: uint16(1061), - 2070: uint16(1059), - 2071: uint16(1063), - 2072: uint16(1116), - 2073: uint16(1064), - 2074: uint16(1115), - 2075: uint16(268), - 2076: uint16(269), - 2077: uint16(29), - 2078: uint16(41), - 2079: uint16(270), - 2080: uint16(1024), - 2081: uint16(866), - 2082: uint16(113), - 2083: uint16(30), - 2084: uint16(568), - 2085: uint16(392), - 2086: uint16(1183), - 2087: uint16(144), - 2088: uint16(178), - 2089: uint16(1182), - 2090: uint16(271), - 2091: uint16(928), - 2092: uint16(1245), - 2093: uint16(1245), - 2094: uint16(1245), - 2095: uint16(1245), - 2096: uint16(1245), - 2097: uint16(1245), - 2098: uint16(1245), - 2099: uint16(1602), -} -var _yy_lookahead = [2285]uint16{ - 0: uint16(193), - 1: uint16(193), - 2: uint16(193), - 3: uint16(274), - 4: uint16(275), - 5: uint16(276), - 6: uint16(193), - 7: uint16(274), - 8: uint16(275), - 9: uint16(276), - 10: uint16(193), - 11: uint16(223), - 12: uint16(219), - 13: uint16(225), - 14: uint16(206), - 15: uint16(210), - 16: uint16(211), - 17: uint16(212), - 18: uint16(193), + 1598: uint16(395), + 1599: uint16(395), + 1600: uint16(394), + 1601: uint16(276), + 1602: uint16(392), + 1603: uint16(986), + 1604: uint16(987), + 1605: uint16(859), + 1606: uint16(481), + 1607: uint16(346), + 1608: uint16(264), + 1609: uint16(110), + 1610: uint16(1032), + 1611: uint16(489), + 1612: uint16(576), + 1613: uint16(1188), + 1614: uint16(503), + 1615: uint16(1088), + 1616: uint16(261), + 1617: uint16(261), + 1618: uint16(237), + 1619: uint16(576), + 1620: uint16(326), + 1621: uint16(121), + 1622: uint16(568), + 1623: uint16(1040), + 1624: uint16(4), + 1625: uint16(347), + 1626: uint16(1376), + 1627: uint16(413), + 1628: uint16(325), + 1629: uint16(119), + 1630: uint16(119), + 1631: uint16(948), + 1632: uint16(319), + 1633: uint16(567), + 1634: uint16(351), + 1635: uint16(78), + 1636: uint16(78), + 1637: uint16(120), + 1638: uint16(571), + 1639: uint16(451), + 1640: uint16(577), + 1641: uint16(451), + 1642: uint16(79), + 1643: uint16(79), + 1644: uint16(1028), + 1645: uint16(354), + 1646: uint16(356), + 1647: uint16(576), + 1648: uint16(360), + 1649: uint16(1092), + 1650: uint16(110), + 1651: uint16(576), + 1652: uint16(974), + 1653: uint16(942), + 1654: uint16(264), + 1655: uint16(123), + 1656: uint16(457), + 1657: uint16(358), + 1658: uint16(239), + 1659: uint16(576), + 1660: uint16(519), + 1661: uint16(451), + 1662: uint16(939), + 1663: uint16(1104), + 1664: uint16(123), + 1665: uint16(1104), + 1666: uint16(173), + 1667: uint16(576), + 1668: uint16(1032), + 1669: uint16(43), + 1670: uint16(63), + 1671: uint16(63), + 1672: uint16(1324), + 1673: uint16(565), + 1674: uint16(168), + 1675: uint16(168), + 1676: uint16(1028), + 1677: uint16(1028), + 1678: uint16(1030), + 1679: uint16(1031), + 1680: uint16(35), + 1681: uint16(576), + 1682: uint16(169), + 1683: uint16(169), + 1684: uint16(1308), + 1685: uint16(872), + 1686: uint16(238), + 1687: uint16(157), + 1688: uint16(1589), + 1689: uint16(576), + 1690: uint16(86), + 1691: uint16(86), + 1692: uint16(365), + 1693: uint16(89), + 1694: uint16(568), + 1695: uint16(375), + 1696: uint16(4), + 1697: uint16(1103), + 1698: uint16(941), + 1699: uint16(1103), + 1700: uint16(123), + 1701: uint16(576), + 1702: uint16(1040), + 1703: uint16(1389), + 1704: uint16(64), + 1705: uint16(64), + 1706: uint16(1188), + 1707: uint16(1434), + 1708: uint16(119), + 1709: uint16(119), + 1710: uint16(571), + 1711: uint16(576), + 1712: uint16(82), + 1713: uint16(82), + 1714: uint16(563), + 1715: uint16(576), + 1716: uint16(120), + 1717: uint16(165), + 1718: uint16(451), + 1719: uint16(577), + 1720: uint16(451), + 1721: uint16(413), + 1722: uint16(1362), + 1723: uint16(1028), + 1724: uint16(144), + 1725: uint16(144), + 1726: uint16(319), + 1727: uint16(567), + 1728: uint16(576), + 1729: uint16(1374), + 1730: uint16(562), + 1731: uint16(498), + 1732: uint16(279), + 1733: uint16(451), + 1734: uint16(83), + 1735: uint16(83), + 1736: uint16(1439), + 1737: uint16(576), + 1738: uint16(166), + 1739: uint16(166), + 1740: uint16(576), + 1741: uint16(1289), + 1742: uint16(554), + 1743: uint16(576), + 1744: uint16(1280), + 1745: uint16(565), + 1746: uint16(576), + 1747: uint16(12), + 1748: uint16(576), + 1749: uint16(1268), + 1750: uint16(457), + 1751: uint16(146), + 1752: uint16(146), + 1753: uint16(1267), + 1754: uint16(576), + 1755: uint16(1028), + 1756: uint16(1028), + 1757: uint16(1030), + 1758: uint16(1031), + 1759: uint16(35), + 1760: uint16(140), + 1761: uint16(140), + 1762: uint16(1269), + 1763: uint16(167), + 1764: uint16(167), + 1765: uint16(1609), + 1766: uint16(160), + 1767: uint16(160), + 1768: uint16(1359), + 1769: uint16(150), + 1770: uint16(150), + 1771: uint16(149), + 1772: uint16(149), + 1773: uint16(311), + 1774: uint16(1040), + 1775: uint16(576), + 1776: uint16(312), + 1777: uint16(147), + 1778: uint16(147), + 1779: uint16(313), + 1780: uint16(119), + 1781: uint16(119), + 1782: uint16(222), + 1783: uint16(235), + 1784: uint16(576), + 1785: uint16(1188), + 1786: uint16(396), + 1787: uint16(576), + 1788: uint16(120), + 1789: uint16(576), + 1790: uint16(451), + 1791: uint16(577), + 1792: uint16(451), + 1793: uint16(1192), + 1794: uint16(453), + 1795: uint16(1028), + 1796: uint16(508), + 1797: uint16(291), + 1798: uint16(148), + 1799: uint16(148), + 1800: uint16(1421), + 1801: uint16(1612), + 1802: uint16(395), + 1803: uint16(395), + 1804: uint16(394), + 1805: uint16(276), + 1806: uint16(392), + 1807: uint16(85), + 1808: uint16(85), + 1809: uint16(859), + 1810: uint16(87), + 1811: uint16(87), + 1812: uint16(84), + 1813: uint16(84), + 1814: uint16(553), + 1815: uint16(576), + 1816: uint16(294), + 1817: uint16(576), + 1818: uint16(1426), + 1819: uint16(338), + 1820: uint16(339), + 1821: uint16(1425), + 1822: uint16(237), + 1823: uint16(300), + 1824: uint16(326), + 1825: uint16(1416), + 1826: uint16(1409), + 1827: uint16(1028), + 1828: uint16(1028), + 1829: uint16(1030), + 1830: uint16(1031), + 1831: uint16(35), + 1832: uint16(325), + 1833: uint16(344), + 1834: uint16(403), + 1835: uint16(483), + 1836: uint16(226), + 1837: uint16(1307), + 1838: uint16(52), + 1839: uint16(52), + 1840: uint16(58), + 1841: uint16(58), + 1842: uint16(368), + 1843: uint16(1371), + 1844: uint16(1502), + 1845: uint16(566), + 1846: uint16(1501), + 1847: uint16(121), + 1848: uint16(568), + 1849: uint16(221), + 1850: uint16(4), + 1851: uint16(208), + 1852: uint16(268), + 1853: uint16(209), + 1854: uint16(390), + 1855: uint16(1244), + 1856: uint16(1549), + 1857: uint16(1188), + 1858: uint16(1372), + 1859: uint16(1370), + 1860: uint16(1369), + 1861: uint16(1547), + 1862: uint16(239), + 1863: uint16(184), + 1864: uint16(571), + 1865: uint16(233), + 1866: uint16(421), + 1867: uint16(1241), + 1868: uint16(95), + 1869: uint16(218), + 1870: uint16(173), + 1871: uint16(1507), + 1872: uint16(193), + 1873: uint16(43), + 1874: uint16(91), + 1875: uint16(94), + 1876: uint16(178), + 1877: uint16(186), + 1878: uint16(467), + 1879: uint16(188), + 1880: uint16(468), + 1881: uint16(1422), + 1882: uint16(13), + 1883: uint16(189), + 1884: uint16(190), + 1885: uint16(191), + 1886: uint16(501), + 1887: uint16(451), + 1888: uint16(245), + 1889: uint16(108), + 1890: uint16(238), + 1891: uint16(401), + 1892: uint16(1428), + 1893: uint16(1427), + 1894: uint16(1430), + 1895: uint16(475), + 1896: uint16(404), + 1897: uint16(1496), + 1898: uint16(197), + 1899: uint16(565), + 1900: uint16(14), + 1901: uint16(490), + 1902: uint16(249), + 1903: uint16(101), + 1904: uint16(1518), + 1905: uint16(496), + 1906: uint16(349), + 1907: uint16(280), + 1908: uint16(251), + 1909: uint16(201), + 1910: uint16(353), + 1911: uint16(499), + 1912: uint16(252), + 1913: uint16(406), + 1914: uint16(1270), + 1915: uint16(253), + 1916: uint16(517), + 1917: uint16(1327), + 1918: uint16(1326), + 1919: uint16(435), + 1920: uint16(1325), + 1921: uint16(1318), + 1922: uint16(103), + 1923: uint16(893), + 1924: uint16(1296), + 1925: uint16(413), + 1926: uint16(227), + 1927: uint16(407), + 1928: uint16(1040), + 1929: uint16(1626), + 1930: uint16(319), + 1931: uint16(567), + 1932: uint16(1625), + 1933: uint16(1297), + 1934: uint16(119), + 1935: uint16(119), + 1936: uint16(439), + 1937: uint16(367), + 1938: uint16(1317), + 1939: uint16(1295), + 1940: uint16(1624), + 1941: uint16(526), + 1942: uint16(120), + 1943: uint16(440), + 1944: uint16(451), + 1945: uint16(577), + 1946: uint16(451), + 1947: uint16(1594), + 1948: uint16(309), + 1949: uint16(1028), + 1950: uint16(310), + 1951: uint16(373), + 1952: uint16(266), + 1953: uint16(267), + 1954: uint16(457), + 1955: uint16(1580), + 1956: uint16(1579), + 1957: uint16(443), + 1958: uint16(138), + 1959: uint16(1394), + 1960: uint16(552), + 1961: uint16(1393), + 1962: uint16(11), + 1963: uint16(1483), + 1964: uint16(384), + 1965: uint16(115), + 1966: uint16(317), + 1967: uint16(1350), + 1968: uint16(109), + 1969: uint16(536), + 1970: uint16(42), + 1971: uint16(579), + 1972: uint16(382), + 1973: uint16(214), + 1974: uint16(1349), + 1975: uint16(388), + 1976: uint16(1198), + 1977: uint16(389), + 1978: uint16(275), + 1979: uint16(277), + 1980: uint16(278), + 1981: uint16(1028), + 1982: uint16(1028), + 1983: uint16(1030), + 1984: uint16(1031), + 1985: uint16(35), + 1986: uint16(580), + 1987: uint16(1265), + 1988: uint16(414), + 1989: uint16(1260), + 1990: uint16(170), + 1991: uint16(415), + 1992: uint16(183), + 1993: uint16(1534), + 1994: uint16(1535), + 1995: uint16(1533), + 1996: uint16(171), + 1997: uint16(154), + 1998: uint16(307), + 1999: uint16(1532), + 2000: uint16(846), + 2001: uint16(223), + 2002: uint16(224), + 2003: uint16(88), + 2004: uint16(452), + 2005: uint16(215), + 2006: uint16(172), + 2007: uint16(321), + 2008: uint16(234), + 2009: uint16(1102), + 2010: uint16(152), + 2011: uint16(1188), + 2012: uint16(1100), + 2013: uint16(329), + 2014: uint16(185), + 2015: uint16(174), + 2016: uint16(1223), + 2017: uint16(925), + 2018: uint16(187), + 2019: uint16(241), + 2020: uint16(337), + 2021: uint16(244), + 2022: uint16(1116), + 2023: uint16(192), + 2024: uint16(175), + 2025: uint16(176), + 2026: uint16(424), + 2027: uint16(426), + 2028: uint16(97), + 2029: uint16(194), + 2030: uint16(98), + 2031: uint16(99), + 2032: uint16(100), + 2033: uint16(177), + 2034: uint16(1119), + 2035: uint16(1115), + 2036: uint16(246), + 2037: uint16(247), + 2038: uint16(161), + 2039: uint16(24), + 2040: uint16(248), + 2041: uint16(348), + 2042: uint16(1238), + 2043: uint16(264), + 2044: uint16(1108), + 2045: uint16(250), + 2046: uint16(495), + 2047: uint16(199), + 2048: uint16(198), + 2049: uint16(15), + 2050: uint16(861), + 2051: uint16(500), + 2052: uint16(369), + 2053: uint16(254), + 2054: uint16(504), + 2055: uint16(509), + 2056: uint16(512), + 2057: uint16(200), + 2058: uint16(102), + 2059: uint16(25), + 2060: uint16(179), + 2061: uint16(361), + 2062: uint16(26), + 2063: uint16(364), + 2064: uint16(104), + 2065: uint16(891), + 2066: uint16(308), + 2067: uint16(162), + 2068: uint16(105), + 2069: uint16(904), + 2070: uint16(520), + 2071: uint16(106), + 2072: uint16(1185), + 2073: uint16(1069), + 2074: uint16(1155), + 2075: uint16(17), + 2076: uint16(228), + 2077: uint16(27), + 2078: uint16(1154), + 2079: uint16(283), + 2080: uint16(285), + 2081: uint16(263), + 2082: uint16(978), + 2083: uint16(202), + 2084: uint16(972), + 2085: uint16(123), + 2086: uint16(28), + 2087: uint16(1175), + 2088: uint16(29), + 2089: uint16(30), + 2090: uint16(1179), + 2091: uint16(1171), + 2092: uint16(31), + 2093: uint16(1173), + 2094: uint16(1160), + 2095: uint16(41), + 2096: uint16(32), + 2097: uint16(206), + 2098: uint16(548), + 2099: uint16(33), + 2100: uint16(110), + 2101: uint16(1178), + 2102: uint16(1083), + 2103: uint16(8), + 2104: uint16(112), + 2105: uint16(1070), + 2106: uint16(113), + 2107: uint16(1068), + 2108: uint16(1072), + 2109: uint16(34), + 2110: uint16(1073), + 2111: uint16(560), + 2112: uint16(1125), + 2113: uint16(269), + 2114: uint16(1124), + 2115: uint16(270), + 2116: uint16(36), + 2117: uint16(18), + 2118: uint16(1194), + 2119: uint16(1033), + 2120: uint16(873), + 2121: uint16(151), + 2122: uint16(122), + 2123: uint16(37), + 2124: uint16(393), + 2125: uint16(271), + 2126: uint16(272), + 2127: uint16(572), + 2128: uint16(181), + 2129: uint16(1193), + 2130: uint16(1256), + 2131: uint16(1256), + 2132: uint16(1256), + 2133: uint16(935), + 2134: uint16(1256), + 2135: uint16(1256), + 2136: uint16(1256), + 2137: uint16(1256), + 2138: uint16(1256), + 2139: uint16(1256), + 2140: uint16(1256), + 2141: uint16(1617), +} +var _yy_lookahead = [2328]uint16{ + 0: uint16(194), + 1: uint16(276), + 2: uint16(277), + 3: uint16(278), + 4: uint16(216), + 5: uint16(194), + 6: uint16(194), + 7: uint16(217), + 8: uint16(194), + 9: uint16(194), + 10: uint16(194), + 11: uint16(194), + 12: uint16(224), + 13: uint16(194), + 14: uint16(194), + 15: uint16(276), + 16: uint16(277), + 17: uint16(278), + 18: uint16(204), 19: uint16(19), - 20: uint16(219), - 21: uint16(233), - 22: uint16(216), - 23: uint16(216), - 24: uint16(217), - 25: uint16(216), - 26: uint16(217), - 27: uint16(193), - 28: uint16(295), - 29: uint16(216), - 30: uint16(217), + 20: uint16(206), + 21: uint16(202), + 22: uint16(297), + 23: uint16(217), + 24: uint16(218), + 25: uint16(205), + 26: uint16(207), + 27: uint16(217), + 28: uint16(205), + 29: uint16(217), + 30: uint16(218), 31: uint16(31), - 32: uint16(193), - 33: uint16(216), + 32: uint16(217), + 33: uint16(218), 34: uint16(217), - 35: uint16(193), - 36: uint16(228), - 37: uint16(213), - 38: uint16(230), + 35: uint16(218), + 36: uint16(29), + 37: uint16(217), + 38: uint16(218), 39: uint16(39), - 40: uint16(206), - 41: uint16(216), - 42: uint16(217), + 40: uint16(33), + 41: uint16(217), + 42: uint16(220), 43: uint16(43), 44: uint16(44), 45: uint16(45), @@ -154455,31 +155959,31 @@ var _yy_lookahead = [2285]uint16{ 55: uint16(55), 56: uint16(56), 57: uint16(57), - 58: uint16(193), + 58: uint16(312), 59: uint16(19), - 60: uint16(185), - 61: uint16(186), - 62: uint16(187), - 63: uint16(188), - 64: uint16(189), - 65: uint16(190), - 66: uint16(253), - 67: uint16(274), - 68: uint16(275), - 69: uint16(276), - 70: uint16(195), - 71: uint16(193), - 72: uint16(197), - 73: uint16(193), - 74: uint16(261), - 75: uint16(274), - 76: uint16(275), - 77: uint16(276), - 78: uint16(253), - 79: uint16(204), - 80: uint16(238), - 81: uint16(204), - 82: uint16(81), + 60: uint16(240), + 61: uint16(241), + 62: uint16(316), + 63: uint16(240), + 64: uint16(241), + 65: uint16(194), + 66: uint16(46), + 67: uint16(47), + 68: uint16(48), + 69: uint16(49), + 70: uint16(22), + 71: uint16(254), + 72: uint16(65), + 73: uint16(253), + 74: uint16(254), + 75: uint16(255), + 76: uint16(253), + 77: uint16(194), + 78: uint16(255), + 79: uint16(194), + 80: uint16(263), + 81: uint16(258), + 82: uint16(259), 83: uint16(43), 84: uint16(44), 85: uint16(45), @@ -154495,10 +155999,10 @@ var _yy_lookahead = [2285]uint16{ 95: uint16(55), 96: uint16(56), 97: uint16(57), - 98: uint16(274), - 99: uint16(275), - 100: uint16(276), - 101: uint16(262), + 98: uint16(276), + 99: uint16(277), + 100: uint16(278), + 101: uint16(285), 102: uint16(102), 103: uint16(103), 104: uint16(104), @@ -154511,34 +156015,34 @@ var _yy_lookahead = [2285]uint16{ 111: uint16(111), 112: uint16(112), 113: uint16(113), - 114: uint16(239), - 115: uint16(240), - 116: uint16(239), - 117: uint16(240), - 118: uint16(210), - 119: uint16(211), - 120: uint16(212), - 121: uint16(314), - 122: uint16(315), - 123: uint16(314), - 124: uint16(59), - 125: uint16(316), + 114: uint16(59), + 115: uint16(186), + 116: uint16(187), + 117: uint16(188), + 118: uint16(189), + 119: uint16(190), + 120: uint16(191), + 121: uint16(310), + 122: uint16(239), + 123: uint16(317), + 124: uint16(318), + 125: uint16(196), 126: uint16(86), - 127: uint16(252), + 127: uint16(198), 128: uint16(88), - 129: uint16(252), + 129: uint16(317), 130: uint16(19), - 131: uint16(314), - 132: uint16(315), - 133: uint16(256), - 134: uint16(257), - 135: uint16(113), + 131: uint16(319), + 132: uint16(317), + 133: uint16(318), + 134: uint16(205), + 135: uint16(264), 136: uint16(25), - 137: uint16(72), - 138: uint16(296), - 139: uint16(138), - 140: uint16(139), - 141: uint16(266), + 137: uint16(211), + 138: uint16(212), + 139: uint16(213), + 140: uint16(205), + 141: uint16(121), 142: uint16(102), 143: uint16(103), 144: uint16(104), @@ -154566,50 +156070,50 @@ var _yy_lookahead = [2285]uint16{ 166: uint16(55), 167: uint16(56), 168: uint16(57), - 169: uint16(81), - 170: uint16(292), - 171: uint16(59), - 172: uint16(292), - 173: uint16(298), - 174: uint16(108), - 175: uint16(109), - 176: uint16(110), - 177: uint16(111), - 178: uint16(112), - 179: uint16(113), + 169: uint16(240), + 170: uint16(241), + 171: uint16(116), + 172: uint16(117), + 173: uint16(118), + 174: uint16(119), + 175: uint16(240), + 176: uint16(241), + 177: uint16(122), + 178: uint16(123), + 179: uint16(124), 180: uint16(69), - 181: uint16(116), - 182: uint16(117), - 183: uint16(118), - 184: uint16(72), + 181: uint16(298), + 182: uint16(253), + 183: uint16(194), + 184: uint16(255), 185: uint16(106), 186: uint16(107), - 187: uint16(193), - 188: uint16(111), - 189: uint16(112), - 190: uint16(113), + 187: uint16(132), + 188: uint16(253), + 189: uint16(141), + 190: uint16(255), 191: uint16(54), 192: uint16(55), 193: uint16(56), 194: uint16(57), 195: uint16(58), - 196: uint16(102), - 197: uint16(103), - 198: uint16(104), - 199: uint16(105), - 200: uint16(106), - 201: uint16(107), - 202: uint16(108), - 203: uint16(109), - 204: uint16(110), - 205: uint16(111), - 206: uint16(112), - 207: uint16(113), - 208: uint16(120), - 209: uint16(25), - 210: uint16(216), - 211: uint16(217), - 212: uint16(145), + 196: uint16(207), + 197: uint16(268), + 198: uint16(102), + 199: uint16(103), + 200: uint16(104), + 201: uint16(105), + 202: uint16(106), + 203: uint16(107), + 204: uint16(108), + 205: uint16(109), + 206: uint16(110), + 207: uint16(111), + 208: uint16(112), + 209: uint16(113), + 210: uint16(214), + 211: uint16(128), + 212: uint16(129), 213: uint16(102), 214: uint16(103), 215: uint16(104), @@ -154622,13 +156126,13 @@ var _yy_lookahead = [2285]uint16{ 222: uint16(111), 223: uint16(112), 224: uint16(113), - 225: uint16(231), - 226: uint16(138), - 227: uint16(139), - 228: uint16(116), - 229: uint16(117), - 230: uint16(118), - 231: uint16(164), + 225: uint16(134), + 226: uint16(25), + 227: uint16(136), + 228: uint16(137), + 229: uint16(300), + 230: uint16(165), + 231: uint16(166), 232: uint16(153), 233: uint16(19), 234: uint16(155), @@ -154648,12 +156152,12 @@ var _yy_lookahead = [2285]uint16{ 248: uint16(111), 249: uint16(112), 250: uint16(113), - 251: uint16(128), - 252: uint16(129), - 253: uint16(46), - 254: uint16(47), - 255: uint16(48), - 256: uint16(49), + 251: uint16(108), + 252: uint16(109), + 253: uint16(110), + 254: uint16(111), + 255: uint16(112), + 256: uint16(113), 257: uint16(43), 258: uint16(44), 259: uint16(45), @@ -154669,15 +156173,15 @@ var _yy_lookahead = [2285]uint16{ 269: uint16(55), 270: uint16(56), 271: uint16(57), - 272: uint16(216), - 273: uint16(193), - 274: uint16(25), - 275: uint16(59), - 276: uint16(193), + 272: uint16(276), + 273: uint16(277), + 274: uint16(278), + 275: uint16(113), + 276: uint16(194), 277: uint16(19), - 278: uint16(165), - 279: uint16(166), - 280: uint16(193), + 278: uint16(22), + 279: uint16(23), + 280: uint16(194), 281: uint16(67), 282: uint16(24), 283: uint16(102), @@ -154692,12 +156196,12 @@ var _yy_lookahead = [2285]uint16{ 292: uint16(111), 293: uint16(112), 294: uint16(113), - 295: uint16(73), - 296: uint16(216), - 297: uint16(217), - 298: uint16(59), - 299: uint16(216), - 300: uint16(217), + 295: uint16(220), + 296: uint16(250), + 297: uint16(59), + 298: uint16(252), + 299: uint16(217), + 300: uint16(218), 301: uint16(43), 302: uint16(44), 303: uint16(45), @@ -154725,38 +156229,38 @@ var _yy_lookahead = [2285]uint16{ 325: uint16(111), 326: uint16(112), 327: uint16(113), - 328: uint16(121), - 329: uint16(145), - 330: uint16(59), - 331: uint16(193), - 332: uint16(116), - 333: uint16(117), - 334: uint16(118), - 335: uint16(119), - 336: uint16(273), - 337: uint16(204), - 338: uint16(122), - 339: uint16(123), - 340: uint16(124), + 328: uint16(106), + 329: uint16(107), + 330: uint16(108), + 331: uint16(109), + 332: uint16(110), + 333: uint16(111), + 334: uint16(112), + 335: uint16(113), + 336: uint16(254), + 337: uint16(59), + 338: uint16(205), + 339: uint16(138), + 340: uint16(139), 341: uint16(19), 342: uint16(20), - 343: uint16(134), + 343: uint16(194), 344: uint16(22), - 345: uint16(136), - 346: uint16(137), - 347: uint16(19), - 348: uint16(132), - 349: uint16(127), - 350: uint16(128), - 351: uint16(129), - 352: uint16(24), - 353: uint16(22), - 354: uint16(23), - 355: uint16(116), - 356: uint16(117), - 357: uint16(118), + 345: uint16(263), + 346: uint16(22), + 347: uint16(23), + 348: uint16(231), + 349: uint16(25), + 350: uint16(72), + 351: uint16(276), + 352: uint16(277), + 353: uint16(278), + 354: uint16(116), + 355: uint16(117), + 356: uint16(118), + 357: uint16(101), 358: uint16(36), - 359: uint16(193), + 359: uint16(76), 360: uint16(102), 361: uint16(103), 362: uint16(104), @@ -154769,37 +156273,37 @@ var _yy_lookahead = [2285]uint16{ 369: uint16(111), 370: uint16(112), 371: uint16(113), - 372: uint16(239), + 372: uint16(89), 373: uint16(240), - 374: uint16(311), - 375: uint16(312), - 376: uint16(215), - 377: uint16(106), - 378: uint16(107), - 379: uint16(241), + 374: uint16(241), + 375: uint16(92), + 376: uint16(73), + 377: uint16(194), + 378: uint16(194), + 379: uint16(73), 380: uint16(19), 381: uint16(59), - 382: uint16(216), - 383: uint16(217), - 384: uint16(223), - 385: uint16(252), - 386: uint16(115), - 387: uint16(116), - 388: uint16(117), - 389: uint16(118), - 390: uint16(151), - 391: uint16(120), - 392: uint16(26), + 382: uint16(188), + 383: uint16(189), + 384: uint16(190), + 385: uint16(191), + 386: uint16(253), + 387: uint16(81), + 388: uint16(255), + 389: uint16(151), + 390: uint16(196), + 391: uint16(25), + 392: uint16(198), 393: uint16(71), - 394: uint16(193), - 395: uint16(308), - 396: uint16(309), - 397: uint16(193), - 398: uint16(149), - 399: uint16(128), - 400: uint16(313), - 401: uint16(216), - 402: uint16(269), + 394: uint16(116), + 395: uint16(117), + 396: uint16(118), + 397: uint16(311), + 398: uint16(312), + 399: uint16(205), + 400: uint16(217), + 401: uint16(218), + 402: uint16(316), 403: uint16(81), 404: uint16(43), 405: uint16(44), @@ -154816,50 +156320,50 @@ var _yy_lookahead = [2285]uint16{ 416: uint16(55), 417: uint16(56), 418: uint16(57), - 419: uint16(253), - 420: uint16(216), - 421: uint16(217), + 419: uint16(270), + 420: uint16(22), + 421: uint16(23), 422: uint16(100), - 423: uint16(95), - 424: uint16(153), - 425: uint16(59), - 426: uint16(155), - 427: uint16(261), + 423: uint16(25), + 424: uint16(59), + 425: uint16(101), + 426: uint16(138), + 427: uint16(139), 428: uint16(106), 429: uint16(107), - 430: uint16(25), - 431: uint16(193), - 432: uint16(101), - 433: uint16(193), - 434: uint16(193), - 435: uint16(231), + 430: uint16(127), + 431: uint16(128), + 432: uint16(129), + 433: uint16(127), + 434: uint16(240), + 435: uint16(241), 436: uint16(114), - 437: uint16(25), + 437: uint16(254), 438: uint16(116), 439: uint16(117), 440: uint16(118), - 441: uint16(113), - 442: uint16(304), + 441: uint16(76), + 442: uint16(76), 443: uint16(121), - 444: uint16(193), - 445: uint16(204), - 446: uint16(59), - 447: uint16(119), - 448: uint16(120), - 449: uint16(121), - 450: uint16(122), - 451: uint16(123), - 452: uint16(124), - 453: uint16(125), - 454: uint16(216), - 455: uint16(217), - 456: uint16(193), - 457: uint16(216), - 458: uint16(217), - 459: uint16(131), + 444: uint16(138), + 445: uint16(139), + 446: uint16(263), + 447: uint16(253), + 448: uint16(264), + 449: uint16(255), + 450: uint16(205), + 451: uint16(275), + 452: uint16(87), + 453: uint16(19), + 454: uint16(89), + 455: uint16(89), + 456: uint16(194), + 457: uint16(92), + 458: uint16(92), + 459: uint16(199), 460: uint16(138), 461: uint16(139), - 462: uint16(230), + 462: uint16(268), 463: uint16(102), 464: uint16(103), 465: uint16(104), @@ -154877,37 +156381,37 @@ var _yy_lookahead = [2285]uint16{ 477: uint16(155), 478: uint16(156), 479: uint16(157), - 480: uint16(239), - 481: uint16(240), - 482: uint16(116), - 483: uint16(117), - 484: uint16(118), - 485: uint16(76), - 486: uint16(193), - 487: uint16(23), + 480: uint16(81), + 481: uint16(116), + 482: uint16(117), + 483: uint16(118), + 484: uint16(129), + 485: uint16(240), + 486: uint16(241), + 487: uint16(224), 488: uint16(19), - 489: uint16(25), - 490: uint16(22), - 491: uint16(253), + 489: uint16(226), + 490: uint16(314), + 491: uint16(315), 492: uint16(23), - 493: uint16(252), - 494: uint16(253), - 495: uint16(108), - 496: uint16(87), - 497: uint16(204), - 498: uint16(89), - 499: uint16(261), - 500: uint16(198), - 501: uint16(92), - 502: uint16(261), - 503: uint16(116), - 504: uint16(117), - 505: uint16(118), - 506: uint16(193), - 507: uint16(306), - 508: uint16(307), - 509: uint16(216), - 510: uint16(217), + 493: uint16(25), + 494: uint16(300), + 495: uint16(59), + 496: uint16(22), + 497: uint16(234), + 498: uint16(253), + 499: uint16(101), + 500: uint16(255), + 501: uint16(236), + 502: uint16(237), + 503: uint16(26), + 504: uint16(194), + 505: uint16(183), + 506: uint16(194), + 507: uint16(152), + 508: uint16(72), + 509: uint16(22), + 510: uint16(145), 511: uint16(150), 512: uint16(43), 513: uint16(44), @@ -154924,34 +156428,34 @@ var _yy_lookahead = [2285]uint16{ 524: uint16(55), 525: uint16(56), 526: uint16(57), - 527: uint16(59), - 528: uint16(193), - 529: uint16(216), - 530: uint16(217), + 527: uint16(217), + 528: uint16(218), + 529: uint16(217), + 530: uint16(218), 531: uint16(19), - 532: uint16(239), - 533: uint16(240), - 534: uint16(283), + 532: uint16(189), + 533: uint16(59), + 534: uint16(191), 535: uint16(23), - 536: uint16(106), - 537: uint16(107), - 538: uint16(108), - 539: uint16(109), - 540: uint16(110), - 541: uint16(111), - 542: uint16(112), - 543: uint16(113), - 544: uint16(73), - 545: uint16(252), - 546: uint16(253), - 547: uint16(142), - 548: uint16(308), - 549: uint16(309), - 550: uint16(138), - 551: uint16(139), - 552: uint16(81), - 553: uint16(313), - 554: uint16(145), + 536: uint16(59), + 537: uint16(138), + 538: uint16(139), + 539: uint16(196), + 540: uint16(135), + 541: uint16(198), + 542: uint16(232), + 543: uint16(283), + 544: uint16(232), + 545: uint16(140), + 546: uint16(59), + 547: uint16(287), + 548: uint16(205), + 549: uint16(275), + 550: uint16(116), + 551: uint16(205), + 552: uint16(116), + 553: uint16(117), + 554: uint16(118), 555: uint16(43), 556: uint16(44), 557: uint16(45), @@ -154967,7 +156471,7 @@ var _yy_lookahead = [2285]uint16{ 567: uint16(55), 568: uint16(56), 569: uint16(57), - 570: uint16(307), + 570: uint16(194), 571: uint16(102), 572: uint16(103), 573: uint16(104), @@ -154980,37 +156484,37 @@ var _yy_lookahead = [2285]uint16{ 580: uint16(111), 581: uint16(112), 582: uint16(113), - 583: uint16(281), - 584: uint16(116), - 585: uint16(117), - 586: uint16(118), - 587: uint16(285), - 588: uint16(23), - 589: uint16(193), - 590: uint16(25), - 591: uint16(119), - 592: uint16(59), - 593: uint16(193), - 594: uint16(122), - 595: uint16(123), - 596: uint16(124), - 597: uint16(59), - 598: uint16(127), - 599: uint16(203), + 583: uint16(240), + 584: uint16(241), + 585: uint16(194), + 586: uint16(240), + 587: uint16(241), + 588: uint16(314), + 589: uint16(315), + 590: uint16(116), + 591: uint16(117), + 592: uint16(118), + 593: uint16(116), + 594: uint16(117), + 595: uint16(118), + 596: uint16(253), + 597: uint16(194), + 598: uint16(255), + 599: uint16(253), 600: uint16(59), - 601: uint16(205), + 601: uint16(255), 602: uint16(19), - 603: uint16(268), - 604: uint16(132), - 605: uint16(25), + 603: uint16(116), + 604: uint16(117), + 605: uint16(118), 606: uint16(23), 607: uint16(22), - 608: uint16(193), - 609: uint16(138), - 610: uint16(139), - 611: uint16(249), - 612: uint16(204), - 613: uint16(251), + 608: uint16(217), + 609: uint16(218), + 610: uint16(142), + 611: uint16(268), + 612: uint16(205), + 613: uint16(275), 614: uint16(102), 615: uint16(103), 616: uint16(104), @@ -155039,29 +156543,29 @@ var _yy_lookahead = [2285]uint16{ 639: uint16(56), 640: uint16(57), 641: uint16(19), - 642: uint16(22), - 643: uint16(23), + 642: uint16(194), + 643: uint16(300), 644: uint16(59), 645: uint16(23), - 646: uint16(25), - 647: uint16(239), - 648: uint16(240), - 649: uint16(116), - 650: uint16(117), - 651: uint16(118), - 652: uint16(193), - 653: uint16(11), - 654: uint16(116), - 655: uint16(117), - 656: uint16(118), - 657: uint16(116), + 646: uint16(119), + 647: uint16(240), + 648: uint16(241), + 649: uint16(122), + 650: uint16(123), + 651: uint16(124), + 652: uint16(314), + 653: uint16(315), + 654: uint16(194), + 655: uint16(236), + 656: uint16(237), + 657: uint16(194), 658: uint16(117), - 659: uint16(118), - 660: uint16(252), - 661: uint16(269), - 662: uint16(22), - 663: uint16(193), - 664: uint16(15), + 659: uint16(132), + 660: uint16(253), + 661: uint16(81), + 662: uint16(255), + 663: uint16(205), + 664: uint16(59), 665: uint16(43), 666: uint16(44), 667: uint16(45), @@ -155077,11 +156581,11 @@ var _yy_lookahead = [2285]uint16{ 677: uint16(55), 678: uint16(56), 679: uint16(57), - 680: uint16(273), - 681: uint16(143), - 682: uint16(193), - 683: uint16(118), - 684: uint16(143), + 680: uint16(217), + 681: uint16(218), + 682: uint16(194), + 683: uint16(194), + 684: uint16(194), 685: uint16(102), 686: uint16(103), 687: uint16(104), @@ -155094,33 +156598,33 @@ var _yy_lookahead = [2285]uint16{ 694: uint16(111), 695: uint16(112), 696: uint16(113), - 697: uint16(76), - 698: uint16(118), - 699: uint16(59), - 700: uint16(241), + 697: uint16(294), + 698: uint16(240), + 699: uint16(241), + 700: uint16(120), 701: uint16(116), 702: uint16(117), 703: uint16(118), - 704: uint16(304), - 705: uint16(216), + 704: uint16(59), + 705: uint16(194), 706: uint16(217), - 707: uint16(292), - 708: uint16(143), - 709: uint16(60), - 710: uint16(89), - 711: uint16(241), + 707: uint16(218), + 708: uint16(211), + 709: uint16(212), + 710: uint16(213), + 711: uint16(253), 712: uint16(19), - 713: uint16(92), - 714: uint16(193), - 715: uint16(193), + 713: uint16(255), + 714: uint16(194), + 715: uint16(19), 716: uint16(23), - 717: uint16(22), - 718: uint16(311), - 719: uint16(312), - 720: uint16(231), - 721: uint16(101), - 722: uint16(22), - 723: uint16(143), + 717: uint16(254), + 718: uint16(138), + 719: uint16(139), + 720: uint16(24), + 721: uint16(232), + 722: uint16(117), + 723: uint16(194), 724: uint16(102), 725: uint16(103), 726: uint16(104), @@ -155149,29 +156653,29 @@ var _yy_lookahead = [2285]uint16{ 749: uint16(56), 750: uint16(57), 751: uint16(19), - 752: uint16(193), - 753: uint16(193), - 754: uint16(59), + 752: uint16(264), + 753: uint16(108), + 754: uint16(76), 755: uint16(23), - 756: uint16(116), - 757: uint16(117), - 758: uint16(118), - 759: uint16(59), - 760: uint16(201), - 761: uint16(21), - 762: uint16(241), - 763: uint16(304), - 764: uint16(193), - 765: uint16(206), - 766: uint16(127), - 767: uint16(128), - 768: uint16(129), - 769: uint16(193), - 770: uint16(128), - 771: uint16(129), - 772: uint16(235), - 773: uint16(236), - 774: uint16(304), + 756: uint16(127), + 757: uint16(128), + 758: uint16(129), + 759: uint16(311), + 760: uint16(312), + 761: uint16(116), + 762: uint16(117), + 763: uint16(118), + 764: uint16(316), + 765: uint16(87), + 766: uint16(306), + 767: uint16(89), + 768: uint16(308), + 769: uint16(194), + 770: uint16(92), + 771: uint16(22), + 772: uint16(59), + 773: uint16(194), + 774: uint16(22), 775: uint16(43), 776: uint16(44), 777: uint16(45), @@ -155187,11 +156691,11 @@ var _yy_lookahead = [2285]uint16{ 787: uint16(55), 788: uint16(56), 789: uint16(57), - 790: uint16(22), - 791: uint16(193), - 792: uint16(216), - 793: uint16(217), - 794: uint16(193), + 790: uint16(194), + 791: uint16(95), + 792: uint16(217), + 793: uint16(218), + 794: uint16(265), 795: uint16(102), 796: uint16(103), 797: uint16(104), @@ -155204,33 +156708,33 @@ var _yy_lookahead = [2285]uint16{ 804: uint16(111), 805: uint16(112), 806: uint16(113), - 807: uint16(231), - 808: uint16(193), - 809: uint16(193), - 810: uint16(193), - 811: uint16(116), - 812: uint16(117), - 813: uint16(118), - 814: uint16(216), - 815: uint16(217), - 816: uint16(116), - 817: uint16(117), - 818: uint16(118), - 819: uint16(226), - 820: uint16(80), - 821: uint16(193), + 807: uint16(232), + 808: uint16(59), + 809: uint16(113), + 810: uint16(25), + 811: uint16(59), + 812: uint16(194), + 813: uint16(217), + 814: uint16(218), + 815: uint16(119), + 816: uint16(120), + 817: uint16(121), + 818: uint16(122), + 819: uint16(123), + 820: uint16(124), + 821: uint16(125), 822: uint16(19), - 823: uint16(235), - 824: uint16(236), - 825: uint16(304), + 823: uint16(145), + 824: uint16(194), + 825: uint16(194), 826: uint16(23), - 827: uint16(211), - 828: uint16(212), - 829: uint16(231), - 830: uint16(204), - 831: uint16(216), - 832: uint16(217), - 833: uint16(205), + 827: uint16(131), + 828: uint16(232), + 829: uint16(116), + 830: uint16(117), + 831: uint16(118), + 832: uint16(35), + 833: uint16(194), 834: uint16(102), 835: uint16(103), 836: uint16(104), @@ -155259,29 +156763,29 @@ var _yy_lookahead = [2285]uint16{ 859: uint16(56), 860: uint16(57), 861: uint16(19), - 862: uint16(193), - 863: uint16(123), - 864: uint16(76), - 865: uint16(239), - 866: uint16(240), - 867: uint16(193), - 868: uint16(253), - 869: uint16(239), - 870: uint16(240), - 871: uint16(239), - 872: uint16(240), - 873: uint16(244), - 874: uint16(106), - 875: uint16(107), - 876: uint16(193), - 877: uint16(89), - 878: uint16(252), - 879: uint16(193), - 880: uint16(92), - 881: uint16(59), - 882: uint16(252), - 883: uint16(254), - 884: uint16(252), + 862: uint16(194), + 863: uint16(66), + 864: uint16(194), + 865: uint16(116), + 866: uint16(117), + 867: uint16(118), + 868: uint16(116), + 869: uint16(117), + 870: uint16(118), + 871: uint16(74), + 872: uint16(242), + 873: uint16(294), + 874: uint16(194), + 875: uint16(194), + 876: uint16(206), + 877: uint16(23), + 878: uint16(194), + 879: uint16(25), + 880: uint16(194), + 881: uint16(111), + 882: uint16(112), + 883: uint16(113), + 884: uint16(25), 885: uint16(43), 886: uint16(44), 887: uint16(45), @@ -155297,11 +156801,11 @@ var _yy_lookahead = [2285]uint16{ 897: uint16(55), 898: uint16(56), 899: uint16(57), - 900: uint16(284), - 901: uint16(161), - 902: uint16(216), + 900: uint16(24), + 901: uint16(194), + 902: uint16(194), 903: uint16(217), - 904: uint16(193), + 904: uint16(218), 905: uint16(102), 906: uint16(103), 907: uint16(104), @@ -155314,33 +156818,33 @@ var _yy_lookahead = [2285]uint16{ 914: uint16(111), 915: uint16(112), 916: uint16(113), - 917: uint16(231), - 918: uint16(193), - 919: uint16(244), - 920: uint16(187), - 921: uint16(188), - 922: uint16(189), - 923: uint16(190), - 924: uint16(7), - 925: uint16(8), - 926: uint16(9), - 927: uint16(309), - 928: uint16(195), - 929: uint16(254), - 930: uint16(197), - 931: uint16(313), + 917: uint16(241), + 918: uint16(232), + 919: uint16(194), + 920: uint16(212), + 921: uint16(213), + 922: uint16(242), + 923: uint16(242), + 924: uint16(217), + 925: uint16(218), + 926: uint16(242), + 927: uint16(130), + 928: uint16(11), + 929: uint16(253), + 930: uint16(194), + 931: uint16(255), 932: uint16(19), - 933: uint16(127), - 934: uint16(128), - 935: uint16(129), - 936: uint16(262), - 937: uint16(204), - 938: uint16(22), - 939: uint16(117), - 940: uint16(24), - 941: uint16(216), + 933: uint16(265), + 934: uint16(149), + 935: uint16(59), + 936: uint16(306), + 937: uint16(194), + 938: uint16(308), + 939: uint16(232), + 940: uint16(309), + 941: uint16(310), 942: uint16(217), - 943: uint16(273), + 943: uint16(218), 944: uint16(102), 945: uint16(103), 946: uint16(104), @@ -155368,36 +156872,36 @@ var _yy_lookahead = [2285]uint16{ 968: uint16(55), 969: uint16(56), 970: uint16(57), - 971: uint16(193), - 972: uint16(239), - 973: uint16(240), - 974: uint16(193), - 975: uint16(59), + 971: uint16(194), + 972: uint16(194), + 973: uint16(59), + 974: uint16(194), + 975: uint16(239), 976: uint16(19), - 977: uint16(188), - 978: uint16(253), - 979: uint16(190), - 980: uint16(193), - 981: uint16(311), - 982: uint16(312), - 983: uint16(16), - 984: uint16(195), - 985: uint16(252), - 986: uint16(197), - 987: uint16(193), - 988: uint16(19), - 989: uint16(301), - 990: uint16(302), - 991: uint16(135), - 992: uint16(193), - 993: uint16(204), - 994: uint16(216), + 977: uint16(194), + 978: uint16(25), + 979: uint16(254), + 980: uint16(303), + 981: uint16(304), + 982: uint16(23), + 983: uint16(194), + 984: uint16(25), + 985: uint16(126), + 986: uint16(306), + 987: uint16(306), + 988: uint16(308), + 989: uint16(308), + 990: uint16(306), + 991: uint16(271), + 992: uint16(308), + 993: uint16(117), + 994: uint16(286), 995: uint16(217), - 996: uint16(140), - 997: uint16(216), - 998: uint16(217), - 999: uint16(266), - 1000: uint16(204), + 996: uint16(218), + 997: uint16(217), + 998: uint16(218), + 999: uint16(194), + 1000: uint16(194), 1001: uint16(159), 1002: uint16(45), 1003: uint16(46), @@ -155424,38 +156928,38 @@ var _yy_lookahead = [2285]uint16{ 1024: uint16(111), 1025: uint16(112), 1026: uint16(113), - 1027: uint16(12), + 1027: uint16(59), 1028: uint16(239), - 1029: uint16(240), - 1030: uint16(193), - 1031: uint16(298), - 1032: uint16(238), - 1033: uint16(117), - 1034: uint16(253), - 1035: uint16(239), + 1029: uint16(194), + 1030: uint16(116), + 1031: uint16(117), + 1032: uint16(118), + 1033: uint16(260), + 1034: uint16(254), + 1035: uint16(194), 1036: uint16(240), - 1037: uint16(238), - 1038: uint16(259), - 1039: uint16(260), - 1040: uint16(193), - 1041: uint16(252), - 1042: uint16(27), - 1043: uint16(193), - 1044: uint16(77), - 1045: uint16(193), - 1046: uint16(79), - 1047: uint16(204), - 1048: uint16(252), - 1049: uint16(262), - 1050: uint16(193), - 1051: uint16(299), - 1052: uint16(300), - 1053: uint16(193), - 1054: uint16(100), - 1055: uint16(266), - 1056: uint16(278), - 1057: uint16(42), - 1058: uint16(204), + 1037: uint16(241), + 1038: uint16(194), + 1039: uint16(233), + 1040: uint16(205), + 1041: uint16(240), + 1042: uint16(241), + 1043: uint16(205), + 1044: uint16(239), + 1045: uint16(128), + 1046: uint16(129), + 1047: uint16(270), + 1048: uint16(265), + 1049: uint16(253), + 1050: uint16(194), + 1051: uint16(255), + 1052: uint16(217), + 1053: uint16(218), + 1054: uint16(253), + 1055: uint16(194), + 1056: uint16(255), + 1057: uint16(143), + 1058: uint16(280), 1059: uint16(102), 1060: uint16(103), 1061: uint16(104), @@ -155468,51 +156972,51 @@ var _yy_lookahead = [2285]uint16{ 1068: uint16(111), 1069: uint16(112), 1070: uint16(113), - 1071: uint16(117), + 1071: uint16(118), 1072: uint16(159), - 1073: uint16(216), - 1074: uint16(217), - 1075: uint16(121), - 1076: uint16(216), - 1077: uint16(217), - 1078: uint16(63), - 1079: uint16(193), - 1080: uint16(193), - 1081: uint16(193), - 1082: uint16(239), - 1083: uint16(240), - 1084: uint16(115), - 1085: uint16(116), - 1086: uint16(193), - 1087: uint16(298), - 1088: uint16(73), - 1089: uint16(240), - 1090: uint16(238), - 1091: uint16(231), + 1073: uint16(217), + 1074: uint16(218), + 1075: uint16(240), + 1076: uint16(241), + 1077: uint16(118), + 1078: uint16(240), + 1079: uint16(241), + 1080: uint16(194), + 1081: uint16(194), + 1082: uint16(194), + 1083: uint16(239), + 1084: uint16(116), + 1085: uint16(117), + 1086: uint16(118), + 1087: uint16(22), + 1088: uint16(253), + 1089: uint16(254), + 1090: uint16(255), + 1091: uint16(253), 1092: uint16(19), - 1093: uint16(239), - 1094: uint16(240), - 1095: uint16(252), - 1096: uint16(22), + 1093: uint16(255), + 1094: uint16(233), + 1095: uint16(194), + 1096: uint16(143), 1097: uint16(24), - 1098: uint16(211), + 1098: uint16(263), 1099: uint16(212), - 1100: uint16(263), - 1101: uint16(252), - 1102: uint16(216), + 1100: uint16(213), + 1101: uint16(194), + 1102: uint16(143), 1103: uint16(217), - 1104: uint16(216), + 1104: uint16(218), 1105: uint16(217), - 1106: uint16(252), - 1107: uint16(153), - 1108: uint16(154), - 1109: uint16(155), - 1110: uint16(253), - 1111: uint16(193), + 1106: uint16(218), + 1107: uint16(261), + 1108: uint16(262), + 1109: uint16(271), + 1110: uint16(254), + 1111: uint16(143), 1112: uint16(19), - 1113: uint16(144), - 1114: uint16(213), - 1115: uint16(268), + 1113: uint16(7), + 1114: uint16(8), + 1115: uint16(9), 1116: uint16(43), 1117: uint16(44), 1118: uint16(45), @@ -155528,11 +157032,11 @@ var _yy_lookahead = [2285]uint16{ 1128: uint16(55), 1129: uint16(56), 1130: uint16(57), - 1131: uint16(193), + 1131: uint16(16), 1132: uint16(19), - 1133: uint16(59), - 1134: uint16(216), - 1135: uint16(217), + 1133: uint16(22), + 1134: uint16(23), + 1135: uint16(294), 1136: uint16(43), 1137: uint16(44), 1138: uint16(45), @@ -155548,11 +157052,11 @@ var _yy_lookahead = [2285]uint16{ 1148: uint16(55), 1149: uint16(56), 1150: uint16(57), - 1151: uint16(193), - 1152: uint16(19), - 1153: uint16(24), - 1154: uint16(216), - 1155: uint16(217), + 1151: uint16(312), + 1152: uint16(194), + 1153: uint16(214), + 1154: uint16(21), + 1155: uint16(316), 1156: uint16(43), 1157: uint16(44), 1158: uint16(45), @@ -155568,10 +157072,10 @@ var _yy_lookahead = [2285]uint16{ 1168: uint16(55), 1169: uint16(56), 1170: uint16(57), - 1171: uint16(284), - 1172: uint16(193), - 1173: uint16(208), - 1174: uint16(209), + 1171: uint16(106), + 1172: uint16(107), + 1173: uint16(286), + 1174: uint16(194), 1175: uint16(102), 1176: uint16(103), 1177: uint16(104), @@ -155584,14 +157088,14 @@ var _yy_lookahead = [2285]uint16{ 1184: uint16(111), 1185: uint16(112), 1186: uint16(113), - 1187: uint16(286), - 1188: uint16(59), - 1189: uint16(193), - 1190: uint16(232), - 1191: uint16(117), - 1192: uint16(291), - 1193: uint16(193), - 1194: uint16(193), + 1187: uint16(207), + 1188: uint16(158), + 1189: uint16(59), + 1190: uint16(160), + 1191: uint16(22), + 1192: uint16(77), + 1193: uint16(24), + 1194: uint16(79), 1195: uint16(102), 1196: uint16(103), 1197: uint16(104), @@ -155604,14 +157108,14 @@ var _yy_lookahead = [2285]uint16{ 1204: uint16(111), 1205: uint16(112), 1206: uint16(113), - 1207: uint16(193), - 1208: uint16(204), - 1209: uint16(22), - 1210: uint16(23), - 1211: uint16(193), - 1212: uint16(25), - 1213: uint16(66), - 1214: uint16(193), + 1207: uint16(194), + 1208: uint16(194), + 1209: uint16(229), + 1210: uint16(194), + 1211: uint16(231), + 1212: uint16(101), + 1213: uint16(80), + 1214: uint16(22), 1215: uint16(102), 1216: uint16(103), 1217: uint16(104), @@ -155624,39 +157128,39 @@ var _yy_lookahead = [2285]uint16{ 1224: uint16(111), 1225: uint16(112), 1226: uint16(113), - 1227: uint16(193), - 1228: uint16(193), - 1229: uint16(193), - 1230: uint16(216), - 1231: uint16(217), - 1232: uint16(85), - 1233: uint16(193), - 1234: uint16(238), + 1227: uint16(288), + 1228: uint16(59), + 1229: uint16(12), + 1230: uint16(217), + 1231: uint16(218), + 1232: uint16(293), + 1233: uint16(217), + 1234: uint16(218), 1235: uint16(19), - 1236: uint16(16), - 1237: uint16(216), - 1238: uint16(217), - 1239: uint16(238), - 1240: uint16(193), - 1241: uint16(94), - 1242: uint16(193), - 1243: uint16(239), - 1244: uint16(240), - 1245: uint16(231), - 1246: uint16(117), - 1247: uint16(268), - 1248: uint16(35), - 1249: uint16(116), - 1250: uint16(216), - 1251: uint16(217), - 1252: uint16(216), - 1253: uint16(217), - 1254: uint16(22), - 1255: uint16(23), - 1256: uint16(252), - 1257: uint16(25), - 1258: uint16(208), - 1259: uint16(209), + 1236: uint16(106), + 1237: uint16(107), + 1238: uint16(59), + 1239: uint16(19), + 1240: uint16(16), + 1241: uint16(127), + 1242: uint16(128), + 1243: uint16(129), + 1244: uint16(27), + 1245: uint16(115), + 1246: uint16(116), + 1247: uint16(117), + 1248: uint16(118), + 1249: uint16(194), + 1250: uint16(120), + 1251: uint16(59), + 1252: uint16(22), + 1253: uint16(194), + 1254: uint16(24), + 1255: uint16(194), + 1256: uint16(123), + 1257: uint16(100), + 1258: uint16(128), + 1259: uint16(42), 1260: uint16(44), 1261: uint16(45), 1262: uint16(46), @@ -155671,50 +157175,50 @@ var _yy_lookahead = [2285]uint16{ 1271: uint16(55), 1272: uint16(56), 1273: uint16(57), - 1274: uint16(193), - 1275: uint16(193), - 1276: uint16(19), - 1277: uint16(5), - 1278: uint16(59), - 1279: uint16(66), - 1280: uint16(193), - 1281: uint16(263), - 1282: uint16(10), - 1283: uint16(11), - 1284: uint16(12), - 1285: uint16(13), - 1286: uint16(14), - 1287: uint16(74), - 1288: uint16(101), - 1289: uint16(17), - 1290: uint16(193), - 1291: uint16(46), - 1292: uint16(193), - 1293: uint16(146), - 1294: uint16(193), - 1295: uint16(76), - 1296: uint16(213), - 1297: uint16(77), - 1298: uint16(263), - 1299: uint16(79), - 1300: uint16(12), - 1301: uint16(260), - 1302: uint16(30), - 1303: uint16(46), - 1304: uint16(32), - 1305: uint16(264), - 1306: uint16(87), - 1307: uint16(193), - 1308: uint16(89), - 1309: uint16(29), - 1310: uint16(263), - 1311: uint16(92), - 1312: uint16(40), - 1313: uint16(33), - 1314: uint16(232), - 1315: uint16(27), - 1316: uint16(193), - 1317: uint16(108), + 1274: uint16(117), + 1275: uint16(194), + 1276: uint16(217), + 1277: uint16(218), + 1278: uint16(121), + 1279: uint16(100), + 1280: uint16(63), + 1281: uint16(194), + 1282: uint16(245), + 1283: uint16(153), + 1284: uint16(194), + 1285: uint16(155), + 1286: uint16(117), + 1287: uint16(19), + 1288: uint16(115), + 1289: uint16(194), + 1290: uint16(73), + 1291: uint16(214), + 1292: uint16(194), + 1293: uint16(256), + 1294: uint16(161), + 1295: uint16(116), + 1296: uint16(117), + 1297: uint16(194), + 1298: uint16(217), + 1299: uint16(218), + 1300: uint16(121), + 1301: uint16(77), + 1302: uint16(194), + 1303: uint16(79), + 1304: uint16(217), + 1305: uint16(218), + 1306: uint16(194), + 1307: uint16(217), + 1308: uint16(218), + 1309: uint16(117), + 1310: uint16(153), + 1311: uint16(154), + 1312: uint16(155), + 1313: uint16(254), + 1314: uint16(46), + 1315: uint16(217), + 1316: uint16(218), + 1317: uint16(144), 1318: uint16(102), 1319: uint16(103), 1320: uint16(104), @@ -155727,1025 +157231,1068 @@ var _yy_lookahead = [2285]uint16{ 1327: uint16(111), 1328: uint16(112), 1329: uint16(113), - 1330: uint16(42), - 1331: uint16(138), - 1332: uint16(139), - 1333: uint16(101), - 1334: uint16(193), - 1335: uint16(116), - 1336: uint16(117), - 1337: uint16(118), + 1330: uint16(232), + 1331: uint16(270), + 1332: uint16(153), + 1333: uint16(154), + 1334: uint16(155), + 1335: uint16(115), + 1336: uint16(116), + 1337: uint16(66), 1338: uint16(19), 1339: uint16(20), - 1340: uint16(255), + 1340: uint16(183), 1341: uint16(22), - 1342: uint16(70), - 1343: uint16(130), - 1344: uint16(135), - 1345: uint16(65), - 1346: uint16(256), - 1347: uint16(257), - 1348: uint16(193), - 1349: uint16(140), - 1350: uint16(78), - 1351: uint16(63), - 1352: uint16(193), - 1353: uint16(81), - 1354: uint16(193), + 1342: uint16(12), + 1343: uint16(312), + 1344: uint16(254), + 1345: uint16(194), + 1346: uint16(262), + 1347: uint16(316), + 1348: uint16(209), + 1349: uint16(210), + 1350: uint16(266), + 1351: uint16(239), + 1352: uint16(194), + 1353: uint16(194), + 1354: uint16(108), 1355: uint16(36), - 1356: uint16(193), - 1357: uint16(216), - 1358: uint16(217), - 1359: uint16(193), - 1360: uint16(115), - 1361: uint16(193), - 1362: uint16(263), - 1363: uint16(193), - 1364: uint16(145), - 1365: uint16(268), - 1366: uint16(59), + 1356: uint16(85), + 1357: uint16(27), + 1358: uint16(19), + 1359: uint16(20), + 1360: uint16(265), + 1361: uint16(22), + 1362: uint16(183), + 1363: uint16(245), + 1364: uint16(144), + 1365: uint16(94), + 1366: uint16(25), 1367: uint16(48), - 1368: uint16(193), - 1369: uint16(193), - 1370: uint16(98), - 1371: uint16(193), - 1372: uint16(115), - 1373: uint16(193), - 1374: uint16(291), - 1375: uint16(216), + 1368: uint16(217), + 1369: uint16(218), + 1370: uint16(293), + 1371: uint16(194), + 1372: uint16(42), + 1373: uint16(270), + 1374: uint16(256), + 1375: uint16(36), 1376: uint16(217), - 1377: uint16(193), + 1377: uint16(218), 1378: uint16(59), - 1379: uint16(216), - 1380: uint16(217), - 1381: uint16(161), - 1382: uint16(216), - 1383: uint16(217), - 1384: uint16(216), - 1385: uint16(217), - 1386: uint16(216), - 1387: uint16(217), - 1388: uint16(131), - 1389: uint16(193), + 1379: uint16(194), + 1380: uint16(25), + 1381: uint16(135), + 1382: uint16(194), + 1383: uint16(115), + 1384: uint16(194), + 1385: uint16(161), + 1386: uint16(140), + 1387: uint16(194), + 1388: uint16(194), + 1389: uint16(15), 1390: uint16(71), - 1391: uint16(193), - 1392: uint16(216), - 1393: uint16(217), - 1394: uint16(216), - 1395: uint16(217), - 1396: uint16(216), - 1397: uint16(217), - 1398: uint16(193), - 1399: uint16(260), - 1400: uint16(216), - 1401: uint16(217), - 1402: uint16(19), - 1403: uint16(264), + 1391: uint16(194), + 1392: uint16(312), + 1393: uint16(63), + 1394: uint16(217), + 1395: uint16(218), + 1396: uint16(316), + 1397: uint16(194), + 1398: uint16(59), + 1399: uint16(131), + 1400: uint16(301), + 1401: uint16(302), + 1402: uint16(217), + 1403: uint16(218), 1404: uint16(85), - 1405: uint16(133), - 1406: uint16(244), - 1407: uint16(100), - 1408: uint16(193), + 1405: uint16(217), + 1406: uint16(218), + 1407: uint16(217), + 1408: uint16(218), 1409: uint16(90), - 1410: uint16(138), - 1411: uint16(139), - 1412: uint16(216), - 1413: uint16(217), - 1414: uint16(216), - 1415: uint16(217), - 1416: uint16(254), - 1417: uint16(244), - 1418: uint16(193), + 1410: uint16(71), + 1411: uint16(217), + 1412: uint16(218), + 1413: uint16(19), + 1414: uint16(217), + 1415: uint16(218), + 1416: uint16(245), + 1417: uint16(146), + 1418: uint16(262), 1419: uint16(100), - 1420: uint16(193), - 1421: uint16(216), - 1422: uint16(217), - 1423: uint16(116), - 1424: uint16(117), + 1420: uint16(217), + 1421: uint16(218), + 1422: uint16(266), + 1423: uint16(265), + 1424: uint16(85), 1425: uint16(106), 1426: uint16(107), - 1427: uint16(254), - 1428: uint16(121), - 1429: uint16(193), - 1430: uint16(115), - 1431: uint16(216), - 1432: uint16(217), + 1427: uint16(256), + 1428: uint16(312), + 1429: uint16(90), + 1430: uint16(209), + 1431: uint16(210), + 1432: uint16(316), 1433: uint16(114), - 1434: uint16(162), + 1434: uint16(60), 1435: uint16(116), 1436: uint16(117), 1437: uint16(118), - 1438: uint16(115), - 1439: uint16(244), + 1438: uint16(194), + 1439: uint16(100), 1440: uint16(121), - 1441: uint16(216), - 1442: uint16(217), - 1443: uint16(216), - 1444: uint16(217), - 1445: uint16(193), - 1446: uint16(309), - 1447: uint16(193), - 1448: uint16(31), - 1449: uint16(254), - 1450: uint16(313), - 1451: uint16(309), - 1452: uint16(216), - 1453: uint16(217), - 1454: uint16(309), - 1455: uint16(313), - 1456: uint16(39), - 1457: uint16(193), - 1458: uint16(313), - 1459: uint16(309), - 1460: uint16(153), - 1461: uint16(154), - 1462: uint16(155), - 1463: uint16(313), - 1464: uint16(193), - 1465: uint16(150), - 1466: uint16(25), - 1467: uint16(144), - 1468: uint16(216), - 1469: uint16(217), - 1470: uint16(216), - 1471: uint16(217), + 1441: uint16(194), + 1442: uint16(194), + 1443: uint16(145), + 1444: uint16(115), + 1445: uint16(106), + 1446: uint16(107), + 1447: uint16(19), + 1448: uint16(46), + 1449: uint16(19), + 1450: uint16(20), + 1451: uint16(24), + 1452: uint16(22), + 1453: uint16(114), + 1454: uint16(194), + 1455: uint16(116), + 1456: uint16(117), + 1457: uint16(118), + 1458: uint16(194), + 1459: uint16(245), + 1460: uint16(121), + 1461: uint16(194), + 1462: uint16(164), + 1463: uint16(194), + 1464: uint16(217), + 1465: uint16(218), + 1466: uint16(36), + 1467: uint16(194), + 1468: uint16(258), + 1469: uint16(259), + 1470: uint16(256), + 1471: uint16(194), 1472: uint16(153), 1473: uint16(154), 1474: uint16(155), 1475: uint16(156), 1476: uint16(157), - 1478: uint16(1), - 1479: uint16(2), - 1480: uint16(216), + 1477: uint16(217), + 1478: uint16(218), + 1479: uint16(150), + 1480: uint16(31), 1481: uint16(217), - 1482: uint16(5), - 1483: uint16(149), - 1484: uint16(150), - 1485: uint16(22), - 1486: uint16(193), - 1487: uint16(10), - 1488: uint16(11), - 1489: uint16(12), - 1490: uint16(13), - 1491: uint16(14), - 1492: uint16(193), - 1493: uint16(158), - 1494: uint16(17), - 1495: uint16(160), - 1496: uint16(193), - 1497: uint16(19), - 1498: uint16(20), - 1499: uint16(116), - 1500: uint16(22), - 1501: uint16(25), - 1502: uint16(193), - 1503: uint16(24), - 1504: uint16(22), - 1505: uint16(193), - 1506: uint16(24), - 1507: uint16(30), - 1508: uint16(226), - 1509: uint16(32), - 1510: uint16(19), - 1511: uint16(20), - 1512: uint16(226), - 1513: uint16(22), - 1514: uint16(36), - 1515: uint16(193), - 1516: uint16(53), - 1517: uint16(40), - 1518: uint16(193), - 1519: uint16(216), - 1520: uint16(217), - 1521: uint16(193), - 1522: uint16(23), - 1523: uint16(193), - 1524: uint16(25), - 1525: uint16(216), - 1526: uint16(217), - 1527: uint16(36), - 1528: uint16(216), - 1529: uint16(217), - 1530: uint16(193), - 1531: uint16(99), - 1532: uint16(193), - 1533: uint16(193), - 1534: uint16(22), - 1535: uint16(193), - 1536: uint16(193), - 1537: uint16(59), - 1538: uint16(216), + 1482: uint16(218), + 1483: uint16(142), + 1484: uint16(217), + 1485: uint16(218), + 1486: uint16(217), + 1487: uint16(218), + 1488: uint16(39), + 1489: uint16(59), + 1490: uint16(217), + 1491: uint16(218), + 1492: uint16(153), + 1493: uint16(154), + 1494: uint16(155), + 1495: uint16(156), + 1496: uint16(157), + 1497: uint16(149), + 1498: uint16(150), + 1499: uint16(5), + 1500: uint16(145), + 1501: uint16(71), + 1502: uint16(183), + 1503: uint16(245), + 1504: uint16(10), + 1505: uint16(11), + 1506: uint16(12), + 1507: uint16(13), + 1508: uint16(14), + 1509: uint16(194), + 1510: uint16(116), + 1511: uint16(17), + 1512: uint16(129), + 1513: uint16(227), + 1514: uint16(256), + 1515: uint16(85), + 1516: uint16(194), + 1517: uint16(115), + 1518: uint16(194), + 1519: uint16(23), + 1520: uint16(90), + 1521: uint16(25), + 1522: uint16(183), + 1523: uint16(99), + 1524: uint16(30), + 1525: uint16(97), + 1526: uint16(32), + 1527: uint16(22), + 1528: uint16(22), + 1529: uint16(194), + 1530: uint16(100), + 1531: uint16(194), + 1532: uint16(217), + 1533: uint16(218), + 1534: uint16(40), + 1535: uint16(152), + 1536: uint16(106), + 1537: uint16(107), + 1538: uint16(23), 1539: uint16(217), - 1540: uint16(193), - 1541: uint16(216), - 1542: uint16(217), - 1543: uint16(193), - 1544: uint16(216), - 1545: uint16(217), - 1546: uint16(193), - 1547: uint16(70), - 1548: uint16(129), - 1549: uint16(71), - 1550: uint16(59), - 1551: uint16(129), - 1552: uint16(193), - 1553: uint16(216), + 1540: uint16(218), + 1541: uint16(194), + 1542: uint16(19), + 1543: uint16(20), + 1544: uint16(114), + 1545: uint16(22), + 1546: uint16(116), + 1547: uint16(117), + 1548: uint16(118), + 1549: uint16(257), + 1550: uint16(194), + 1551: uint16(121), + 1552: uint16(217), + 1553: uint16(218), 1554: uint16(217), - 1555: uint16(78), - 1556: uint16(216), - 1557: uint16(217), - 1558: uint16(81), - 1559: uint16(216), - 1560: uint16(217), - 1561: uint16(193), - 1562: uint16(71), - 1563: uint16(85), - 1564: uint16(193), - 1565: uint16(133), - 1566: uint16(193), - 1567: uint16(126), - 1568: uint16(90), - 1569: uint16(216), - 1570: uint16(217), - 1571: uint16(152), - 1572: uint16(258), - 1573: uint16(61), - 1574: uint16(152), - 1575: uint16(98), - 1576: uint16(85), - 1577: uint16(193), - 1578: uint16(100), - 1579: uint16(193), - 1580: uint16(23), - 1581: uint16(90), - 1582: uint16(25), - 1583: uint16(121), - 1584: uint16(106), - 1585: uint16(107), - 1586: uint16(23), - 1587: uint16(216), - 1588: uint16(217), - 1589: uint16(216), - 1590: uint16(217), - 1591: uint16(100), - 1592: uint16(114), - 1593: uint16(131), - 1594: uint16(116), - 1595: uint16(117), - 1596: uint16(118), - 1597: uint16(106), - 1598: uint16(107), - 1599: uint16(121), - 1600: uint16(216), - 1601: uint16(217), - 1602: uint16(216), - 1603: uint16(217), - 1604: uint16(193), - 1605: uint16(114), - 1606: uint16(193), - 1607: uint16(116), - 1608: uint16(117), - 1609: uint16(118), - 1610: uint16(133), - 1611: uint16(22), - 1612: uint16(121), - 1613: uint16(193), - 1614: uint16(59), - 1615: uint16(138), - 1616: uint16(139), - 1617: uint16(193), - 1618: uint16(142), - 1619: uint16(193), - 1620: uint16(141), - 1621: uint16(23), - 1622: uint16(23), - 1623: uint16(25), - 1624: uint16(25), - 1625: uint16(120), - 1626: uint16(121), - 1627: uint16(216), - 1628: uint16(217), - 1629: uint16(216), - 1630: uint16(217), - 1631: uint16(153), - 1632: uint16(154), - 1633: uint16(155), - 1634: uint16(156), - 1635: uint16(157), - 1636: uint16(216), - 1637: uint16(217), - 1638: uint16(19), - 1639: uint16(162), - 1640: uint16(216), - 1641: uint16(217), - 1642: uint16(216), - 1643: uint16(217), - 1644: uint16(153), - 1645: uint16(154), - 1646: uint16(155), - 1647: uint16(156), - 1648: uint16(157), - 1649: uint16(1), - 1650: uint16(2), - 1651: uint16(193), - 1652: uint16(59), - 1653: uint16(5), - 1654: uint16(19), - 1655: uint16(20), - 1656: uint16(318), - 1657: uint16(22), - 1658: uint16(10), - 1659: uint16(11), - 1660: uint16(12), - 1661: uint16(13), - 1662: uint16(14), - 1663: uint16(193), - 1664: uint16(59), - 1665: uint16(17), - 1666: uint16(193), - 1667: uint16(23), - 1668: uint16(23), - 1669: uint16(25), - 1670: uint16(25), - 1671: uint16(36), - 1672: uint16(117), - 1673: uint16(193), - 1674: uint16(216), - 1675: uint16(217), - 1676: uint16(193), - 1677: uint16(23), - 1678: uint16(30), - 1679: uint16(25), - 1680: uint16(32), - 1681: uint16(19), - 1682: uint16(20), - 1683: uint16(23), - 1684: uint16(22), - 1685: uint16(25), - 1686: uint16(216), - 1687: uint16(217), - 1688: uint16(40), - 1689: uint16(216), + 1555: uint16(218), + 1556: uint16(194), + 1557: uint16(133), + 1558: uint16(53), + 1559: uint16(36), + 1560: uint16(23), + 1561: uint16(23), + 1562: uint16(25), + 1563: uint16(25), + 1564: uint16(70), + 1565: uint16(120), + 1566: uint16(121), + 1567: uint16(61), + 1568: uint16(141), + 1569: uint16(7), + 1570: uint16(8), + 1571: uint16(121), + 1572: uint16(78), + 1573: uint16(217), + 1574: uint16(218), + 1575: uint16(81), + 1576: uint16(23), + 1577: uint16(227), + 1578: uint16(25), + 1579: uint16(217), + 1580: uint16(218), + 1581: uint16(131), + 1582: uint16(59), + 1583: uint16(153), + 1584: uint16(154), + 1585: uint16(155), + 1586: uint16(156), + 1587: uint16(157), + 1589: uint16(1), + 1590: uint16(2), + 1591: uint16(59), + 1592: uint16(98), + 1593: uint16(5), + 1594: uint16(71), + 1595: uint16(23), + 1596: uint16(227), + 1597: uint16(25), + 1598: uint16(10), + 1599: uint16(11), + 1600: uint16(12), + 1601: uint16(13), + 1602: uint16(14), + 1603: uint16(83), + 1604: uint16(84), + 1605: uint16(17), + 1606: uint16(23), + 1607: uint16(23), + 1608: uint16(25), + 1609: uint16(25), + 1610: uint16(59), + 1611: uint16(194), + 1612: uint16(194), + 1613: uint16(183), + 1614: uint16(23), + 1615: uint16(23), + 1616: uint16(25), + 1617: uint16(25), + 1618: uint16(30), + 1619: uint16(194), + 1620: uint16(32), + 1621: uint16(19), + 1622: uint16(20), + 1623: uint16(100), + 1624: uint16(22), + 1625: uint16(194), + 1626: uint16(194), + 1627: uint16(133), + 1628: uint16(40), + 1629: uint16(106), + 1630: uint16(107), + 1631: uint16(108), + 1632: uint16(138), + 1633: uint16(139), + 1634: uint16(194), + 1635: uint16(217), + 1636: uint16(218), + 1637: uint16(114), + 1638: uint16(36), + 1639: uint16(116), + 1640: uint16(117), + 1641: uint16(118), + 1642: uint16(217), + 1643: uint16(218), + 1644: uint16(121), + 1645: uint16(194), + 1646: uint16(194), + 1647: uint16(194), + 1648: uint16(23), + 1649: uint16(117), + 1650: uint16(25), + 1651: uint16(194), + 1652: uint16(23), + 1653: uint16(23), + 1654: uint16(25), + 1655: uint16(25), + 1656: uint16(162), + 1657: uint16(194), + 1658: uint16(70), + 1659: uint16(194), + 1660: uint16(145), + 1661: uint16(59), + 1662: uint16(23), + 1663: uint16(153), + 1664: uint16(25), + 1665: uint16(155), + 1666: uint16(78), + 1667: uint16(194), + 1668: uint16(117), + 1669: uint16(81), + 1670: uint16(217), + 1671: uint16(218), + 1672: uint16(194), + 1673: uint16(71), + 1674: uint16(217), + 1675: uint16(218), + 1676: uint16(153), + 1677: uint16(154), + 1678: uint16(155), + 1679: uint16(156), + 1680: uint16(157), + 1681: uint16(194), + 1682: uint16(217), + 1683: uint16(218), + 1684: uint16(194), + 1685: uint16(23), + 1686: uint16(98), + 1687: uint16(25), + 1688: uint16(321), + 1689: uint16(194), 1690: uint16(217), - 1691: uint16(7), - 1692: uint16(8), - 1693: uint16(23), - 1694: uint16(59), - 1695: uint16(25), - 1696: uint16(83), - 1697: uint16(84), - 1698: uint16(36), - 1699: uint16(23), - 1700: uint16(193), - 1701: uint16(25), - 1702: uint16(23), - 1703: uint16(23), - 1704: uint16(25), - 1705: uint16(25), - 1706: uint16(71), - 1707: uint16(153), - 1708: uint16(145), - 1709: uint16(155), - 1710: uint16(117), - 1711: uint16(153), - 1712: uint16(23), - 1713: uint16(155), - 1714: uint16(25), - 1715: uint16(23), - 1716: uint16(97), - 1717: uint16(25), - 1718: uint16(70), - 1719: uint16(193), - 1720: uint16(193), - 1721: uint16(59), - 1722: uint16(117), - 1723: uint16(236), - 1724: uint16(193), - 1725: uint16(193), - 1726: uint16(78), - 1727: uint16(193), - 1728: uint16(193), - 1729: uint16(81), - 1730: uint16(141), - 1731: uint16(193), - 1732: uint16(193), - 1733: uint16(71), - 1734: uint16(193), - 1735: uint16(100), - 1736: uint16(288), - 1737: uint16(287), - 1738: uint16(242), - 1739: uint16(255), - 1740: uint16(255), - 1741: uint16(106), - 1742: uint16(107), - 1743: uint16(108), - 1744: uint16(255), - 1745: uint16(255), - 1746: uint16(98), - 1747: uint16(243), - 1748: uint16(297), - 1749: uint16(114), - 1750: uint16(214), - 1751: uint16(116), - 1752: uint16(117), - 1753: uint16(118), - 1754: uint16(245), - 1755: uint16(191), - 1756: uint16(121), - 1757: uint16(271), - 1758: uint16(293), - 1759: uint16(267), - 1760: uint16(267), - 1761: uint16(246), - 1762: uint16(100), - 1763: uint16(246), - 1764: uint16(245), - 1765: uint16(271), - 1766: uint16(271), - 1767: uint16(293), - 1768: uint16(106), - 1769: uint16(107), - 1770: uint16(220), - 1771: uint16(271), - 1772: uint16(229), - 1773: uint16(225), - 1774: uint16(249), - 1775: uint16(219), - 1776: uint16(114), - 1777: uint16(259), - 1778: uint16(116), - 1779: uint16(117), - 1780: uint16(118), - 1781: uint16(133), - 1782: uint16(259), - 1783: uint16(121), - 1784: uint16(219), - 1785: uint16(219), - 1786: uint16(138), - 1787: uint16(139), - 1788: uint16(153), - 1789: uint16(154), - 1790: uint16(155), - 1791: uint16(156), - 1792: uint16(157), - 1793: uint16(280), - 1794: uint16(249), - 1795: uint16(243), - 1796: uint16(19), - 1797: uint16(20), - 1798: uint16(245), - 1799: uint16(22), - 1800: uint16(196), - 1801: uint16(259), - 1802: uint16(140), - 1803: uint16(259), - 1804: uint16(60), - 1805: uint16(297), - 1806: uint16(141), - 1807: uint16(297), - 1808: uint16(200), - 1809: uint16(200), - 1810: uint16(162), - 1811: uint16(38), - 1812: uint16(200), - 1813: uint16(36), - 1814: uint16(294), - 1815: uint16(153), - 1816: uint16(154), - 1817: uint16(155), - 1818: uint16(156), - 1819: uint16(157), - 1820: uint16(151), - 1821: uint16(150), - 1822: uint16(294), - 1823: uint16(283), - 1824: uint16(22), - 1825: uint16(43), - 1826: uint16(234), - 1827: uint16(18), - 1828: uint16(237), - 1829: uint16(200), - 1830: uint16(270), - 1831: uint16(272), - 1832: uint16(237), - 1833: uint16(237), - 1834: uint16(237), - 1835: uint16(18), - 1836: uint16(59), - 1837: uint16(199), - 1838: uint16(270), - 1839: uint16(149), - 1840: uint16(246), - 1841: uint16(272), - 1842: uint16(272), - 1843: uint16(200), - 1844: uint16(234), - 1845: uint16(234), - 1846: uint16(246), - 1847: uint16(246), - 1848: uint16(71), - 1849: uint16(246), - 1850: uint16(199), - 1851: uint16(158), - 1852: uint16(290), - 1853: uint16(62), - 1854: uint16(22), - 1855: uint16(200), - 1856: uint16(19), - 1857: uint16(20), - 1858: uint16(199), - 1859: uint16(22), - 1860: uint16(289), - 1861: uint16(221), - 1862: uint16(221), - 1863: uint16(200), - 1864: uint16(200), - 1865: uint16(199), - 1866: uint16(199), - 1867: uint16(115), - 1868: uint16(218), - 1869: uint16(64), - 1870: uint16(218), - 1871: uint16(218), + 1691: uint16(218), + 1692: uint16(194), + 1693: uint16(19), + 1694: uint16(20), + 1695: uint16(194), + 1696: uint16(22), + 1697: uint16(153), + 1698: uint16(23), + 1699: uint16(155), + 1700: uint16(25), + 1701: uint16(194), + 1702: uint16(100), + 1703: uint16(194), + 1704: uint16(217), + 1705: uint16(218), + 1706: uint16(183), + 1707: uint16(194), + 1708: uint16(106), + 1709: uint16(107), + 1710: uint16(36), + 1711: uint16(194), + 1712: uint16(217), + 1713: uint16(218), + 1714: uint16(237), + 1715: uint16(194), + 1716: uint16(114), + 1717: uint16(243), + 1718: uint16(116), + 1719: uint16(117), + 1720: uint16(118), + 1721: uint16(133), + 1722: uint16(194), + 1723: uint16(121), + 1724: uint16(217), + 1725: uint16(218), + 1726: uint16(138), + 1727: uint16(139), + 1728: uint16(194), + 1729: uint16(194), + 1730: uint16(194), + 1731: uint16(290), + 1732: uint16(289), + 1733: uint16(59), + 1734: uint16(217), + 1735: uint16(218), + 1736: uint16(194), + 1737: uint16(194), + 1738: uint16(217), + 1739: uint16(218), + 1740: uint16(194), + 1741: uint16(194), + 1742: uint16(140), + 1743: uint16(194), + 1744: uint16(194), + 1745: uint16(71), + 1746: uint16(194), + 1747: uint16(244), + 1748: uint16(194), + 1749: uint16(194), + 1750: uint16(162), + 1751: uint16(217), + 1752: uint16(218), + 1753: uint16(194), + 1754: uint16(194), + 1755: uint16(153), + 1756: uint16(154), + 1757: uint16(155), + 1758: uint16(156), + 1759: uint16(157), + 1760: uint16(217), + 1761: uint16(218), + 1762: uint16(194), + 1763: uint16(217), + 1764: uint16(218), + 1765: uint16(194), + 1766: uint16(217), + 1767: uint16(218), + 1768: uint16(257), + 1769: uint16(217), + 1770: uint16(218), + 1771: uint16(217), + 1772: uint16(218), + 1773: uint16(257), + 1774: uint16(100), + 1775: uint16(194), + 1776: uint16(257), + 1777: uint16(217), + 1778: uint16(218), + 1779: uint16(257), + 1780: uint16(106), + 1781: uint16(107), + 1782: uint16(215), + 1783: uint16(299), + 1784: uint16(194), + 1785: uint16(183), + 1786: uint16(192), + 1787: uint16(194), + 1788: uint16(114), + 1789: uint16(194), + 1790: uint16(116), + 1791: uint16(117), + 1792: uint16(118), + 1793: uint16(1), + 1794: uint16(2), + 1795: uint16(121), + 1796: uint16(221), + 1797: uint16(5), + 1798: uint16(217), + 1799: uint16(218), + 1800: uint16(273), + 1801: uint16(197), + 1802: uint16(10), + 1803: uint16(11), + 1804: uint16(12), + 1805: uint16(13), + 1806: uint16(14), + 1807: uint16(217), + 1808: uint16(218), + 1809: uint16(17), + 1810: uint16(217), + 1811: uint16(218), + 1812: uint16(217), + 1813: uint16(218), + 1814: uint16(140), + 1815: uint16(194), + 1816: uint16(246), + 1817: uint16(194), + 1818: uint16(273), + 1819: uint16(295), + 1820: uint16(247), + 1821: uint16(273), + 1822: uint16(30), + 1823: uint16(247), + 1824: uint16(32), + 1825: uint16(269), + 1826: uint16(269), + 1827: uint16(153), + 1828: uint16(154), + 1829: uint16(155), + 1830: uint16(156), + 1831: uint16(157), + 1832: uint16(40), + 1833: uint16(246), + 1834: uint16(273), + 1835: uint16(295), + 1836: uint16(230), + 1837: uint16(226), + 1838: uint16(217), + 1839: uint16(218), + 1840: uint16(217), + 1841: uint16(218), + 1842: uint16(220), + 1843: uint16(261), + 1844: uint16(220), + 1845: uint16(282), + 1846: uint16(220), + 1847: uint16(19), + 1848: uint16(20), + 1849: uint16(244), + 1850: uint16(22), + 1851: uint16(250), + 1852: uint16(141), + 1853: uint16(250), + 1854: uint16(246), + 1855: uint16(60), + 1856: uint16(201), + 1857: uint16(183), + 1858: uint16(261), + 1859: uint16(261), + 1860: uint16(261), + 1861: uint16(201), + 1862: uint16(70), + 1863: uint16(299), + 1864: uint16(36), + 1865: uint16(299), + 1866: uint16(201), + 1867: uint16(38), + 1868: uint16(151), + 1869: uint16(150), + 1870: uint16(78), + 1871: uint16(285), 1872: uint16(22), - 1873: uint16(36), - 1874: uint16(227), - 1875: uint16(126), - 1876: uint16(227), - 1877: uint16(100), - 1878: uint16(165), - 1879: uint16(221), - 1880: uint16(224), - 1881: uint16(224), - 1882: uint16(24), - 1883: uint16(106), - 1884: uint16(107), - 1885: uint16(312), - 1886: uint16(218), - 1887: uint16(305), - 1888: uint16(113), - 1889: uint16(282), - 1890: uint16(91), - 1891: uint16(114), - 1892: uint16(220), - 1893: uint16(116), - 1894: uint16(117), - 1895: uint16(118), - 1896: uint16(59), - 1897: uint16(282), - 1898: uint16(121), - 1899: uint16(218), - 1900: uint16(218), - 1901: uint16(218), + 1873: uint16(81), + 1874: uint16(296), + 1875: uint16(296), + 1876: uint16(43), + 1877: uint16(235), + 1878: uint16(18), + 1879: uint16(238), + 1880: uint16(201), + 1881: uint16(274), + 1882: uint16(272), + 1883: uint16(238), + 1884: uint16(238), + 1885: uint16(238), + 1886: uint16(18), + 1887: uint16(59), + 1888: uint16(200), + 1889: uint16(149), + 1890: uint16(98), + 1891: uint16(247), + 1892: uint16(274), + 1893: uint16(274), + 1894: uint16(235), + 1895: uint16(247), + 1896: uint16(247), + 1897: uint16(247), + 1898: uint16(235), + 1899: uint16(71), + 1900: uint16(272), + 1901: uint16(201), 1902: uint16(200), - 1903: uint16(317), - 1904: uint16(317), - 1905: uint16(82), - 1906: uint16(221), - 1907: uint16(265), - 1908: uint16(71), - 1909: uint16(148), - 1910: uint16(145), - 1911: uint16(265), - 1912: uint16(22), - 1913: uint16(277), - 1914: uint16(200), - 1915: uint16(158), - 1916: uint16(279), - 1917: uint16(140), - 1918: uint16(147), - 1919: uint16(25), - 1920: uint16(146), - 1921: uint16(202), - 1922: uint16(248), - 1923: uint16(250), - 1924: uint16(249), - 1925: uint16(247), - 1926: uint16(13), - 1927: uint16(250), - 1928: uint16(194), - 1929: uint16(194), - 1930: uint16(153), - 1931: uint16(154), - 1932: uint16(155), - 1933: uint16(156), - 1934: uint16(157), - 1935: uint16(6), - 1936: uint16(303), - 1937: uint16(100), - 1938: uint16(192), - 1939: uint16(192), - 1940: uint16(246), - 1941: uint16(213), - 1942: uint16(192), - 1943: uint16(106), - 1944: uint16(107), - 1945: uint16(207), - 1946: uint16(213), - 1947: uint16(207), - 1948: uint16(222), - 1949: uint16(213), - 1950: uint16(213), - 1951: uint16(114), - 1952: uint16(222), - 1953: uint16(116), - 1954: uint16(117), - 1955: uint16(118), - 1956: uint16(214), - 1957: uint16(214), - 1958: uint16(121), - 1959: uint16(4), - 1960: uint16(207), - 1961: uint16(213), - 1962: uint16(3), - 1963: uint16(22), - 1964: uint16(303), - 1965: uint16(15), - 1966: uint16(163), - 1967: uint16(16), - 1968: uint16(23), - 1969: uint16(23), - 1970: uint16(139), - 1971: uint16(151), - 1972: uint16(130), - 1973: uint16(25), - 1974: uint16(20), - 1975: uint16(142), - 1976: uint16(24), - 1977: uint16(16), - 1978: uint16(144), - 1979: uint16(1), - 1980: uint16(142), - 1981: uint16(130), - 1982: uint16(130), - 1983: uint16(61), - 1984: uint16(37), - 1985: uint16(53), - 1986: uint16(300), - 1987: uint16(151), - 1988: uint16(53), - 1989: uint16(53), - 1990: uint16(153), - 1991: uint16(154), - 1992: uint16(155), - 1993: uint16(156), - 1994: uint16(157), - 1995: uint16(53), - 1996: uint16(130), - 1997: uint16(116), - 1998: uint16(34), - 1999: uint16(1), - 2000: uint16(141), - 2001: uint16(5), - 2002: uint16(22), - 2003: uint16(115), - 2004: uint16(161), - 2005: uint16(68), - 2006: uint16(25), - 2007: uint16(68), - 2008: uint16(75), - 2009: uint16(41), - 2010: uint16(141), - 2011: uint16(115), - 2012: uint16(24), - 2013: uint16(20), - 2014: uint16(19), - 2015: uint16(131), - 2016: uint16(125), - 2017: uint16(23), - 2018: uint16(28), - 2019: uint16(22), - 2020: uint16(67), - 2021: uint16(22), - 2022: uint16(22), - 2023: uint16(22), - 2024: uint16(67), - 2025: uint16(59), - 2026: uint16(24), - 2027: uint16(96), - 2028: uint16(22), - 2029: uint16(67), - 2030: uint16(23), - 2031: uint16(149), - 2032: uint16(22), - 2033: uint16(25), - 2034: uint16(23), - 2035: uint16(23), - 2036: uint16(23), - 2037: uint16(22), - 2038: uint16(34), - 2039: uint16(141), - 2040: uint16(37), - 2041: uint16(97), - 2042: uint16(23), - 2043: uint16(23), - 2044: uint16(116), - 2045: uint16(22), - 2046: uint16(143), - 2047: uint16(25), - 2048: uint16(34), - 2049: uint16(75), - 2050: uint16(34), - 2051: uint16(34), - 2052: uint16(34), - 2053: uint16(88), - 2054: uint16(75), - 2055: uint16(34), - 2056: uint16(86), - 2057: uint16(23), + 1903: uint16(158), + 1904: uint16(292), + 1905: uint16(62), + 1906: uint16(291), + 1907: uint16(201), + 1908: uint16(200), + 1909: uint16(22), + 1910: uint16(201), + 1911: uint16(222), + 1912: uint16(200), + 1913: uint16(222), + 1914: uint16(201), + 1915: uint16(200), + 1916: uint16(115), + 1917: uint16(219), + 1918: uint16(219), + 1919: uint16(64), + 1920: uint16(219), + 1921: uint16(228), + 1922: uint16(22), + 1923: uint16(126), + 1924: uint16(221), + 1925: uint16(133), + 1926: uint16(165), + 1927: uint16(222), + 1928: uint16(100), + 1929: uint16(225), + 1930: uint16(138), + 1931: uint16(139), + 1932: uint16(225), + 1933: uint16(219), + 1934: uint16(106), + 1935: uint16(107), + 1936: uint16(24), + 1937: uint16(219), + 1938: uint16(228), + 1939: uint16(219), + 1940: uint16(219), + 1941: uint16(307), + 1942: uint16(114), + 1943: uint16(113), + 1944: uint16(116), + 1945: uint16(117), + 1946: uint16(118), + 1947: uint16(315), + 1948: uint16(284), + 1949: uint16(121), + 1950: uint16(284), + 1951: uint16(222), + 1952: uint16(201), + 1953: uint16(91), + 1954: uint16(162), + 1955: uint16(320), + 1956: uint16(320), + 1957: uint16(82), + 1958: uint16(148), + 1959: uint16(267), + 1960: uint16(145), + 1961: uint16(267), + 1962: uint16(22), + 1963: uint16(279), + 1964: uint16(201), + 1965: uint16(158), + 1966: uint16(281), + 1967: uint16(251), + 1968: uint16(147), + 1969: uint16(146), + 1970: uint16(25), + 1971: uint16(203), + 1972: uint16(250), + 1973: uint16(249), + 1974: uint16(251), + 1975: uint16(248), + 1976: uint16(13), + 1977: uint16(247), + 1978: uint16(195), + 1979: uint16(195), + 1980: uint16(6), + 1981: uint16(153), + 1982: uint16(154), + 1983: uint16(155), + 1984: uint16(156), + 1985: uint16(157), + 1986: uint16(193), + 1987: uint16(193), + 1988: uint16(305), + 1989: uint16(193), + 1990: uint16(208), + 1991: uint16(305), + 1992: uint16(302), + 1993: uint16(214), + 1994: uint16(214), + 1995: uint16(214), + 1996: uint16(208), + 1997: uint16(223), + 1998: uint16(223), + 1999: uint16(214), + 2000: uint16(4), + 2001: uint16(215), + 2002: uint16(215), + 2003: uint16(214), + 2004: uint16(3), + 2005: uint16(22), + 2006: uint16(208), + 2007: uint16(163), + 2008: uint16(15), + 2009: uint16(23), + 2010: uint16(16), + 2011: uint16(183), + 2012: uint16(23), + 2013: uint16(139), + 2014: uint16(151), + 2015: uint16(130), + 2016: uint16(25), + 2017: uint16(20), + 2018: uint16(142), + 2019: uint16(24), + 2020: uint16(16), + 2021: uint16(144), + 2022: uint16(1), + 2023: uint16(142), + 2024: uint16(130), + 2025: uint16(130), + 2026: uint16(61), + 2027: uint16(37), + 2028: uint16(53), + 2029: uint16(151), + 2030: uint16(53), + 2031: uint16(53), + 2032: uint16(53), + 2033: uint16(130), + 2034: uint16(116), + 2035: uint16(1), + 2036: uint16(34), + 2037: uint16(141), + 2038: uint16(5), + 2039: uint16(22), + 2040: uint16(115), + 2041: uint16(161), + 2042: uint16(75), + 2043: uint16(25), + 2044: uint16(68), + 2045: uint16(141), + 2046: uint16(41), + 2047: uint16(115), + 2048: uint16(68), + 2049: uint16(24), + 2050: uint16(20), + 2051: uint16(19), + 2052: uint16(131), + 2053: uint16(125), + 2054: uint16(67), + 2055: uint16(67), + 2056: uint16(96), + 2057: uint16(22), 2058: uint16(22), - 2059: uint16(34), - 2060: uint16(93), - 2061: uint16(24), - 2062: uint16(34), - 2063: uint16(25), - 2064: uint16(25), - 2065: uint16(142), - 2066: uint16(142), + 2059: uint16(22), + 2060: uint16(37), + 2061: uint16(23), + 2062: uint16(22), + 2063: uint16(24), + 2064: uint16(22), + 2065: uint16(59), + 2066: uint16(67), 2067: uint16(23), - 2068: uint16(44), - 2069: uint16(23), - 2070: uint16(23), - 2071: uint16(23), + 2068: uint16(149), + 2069: uint16(28), + 2070: uint16(22), + 2071: uint16(25), 2072: uint16(23), - 2073: uint16(11), + 2073: uint16(23), 2074: uint16(23), - 2075: uint16(25), - 2076: uint16(22), - 2077: uint16(22), - 2078: uint16(22), - 2079: uint16(141), + 2075: uint16(22), + 2076: uint16(141), + 2077: uint16(34), + 2078: uint16(97), + 2079: uint16(23), 2080: uint16(23), - 2081: uint16(23), - 2082: uint16(22), + 2081: uint16(34), + 2082: uint16(116), 2083: uint16(22), - 2084: uint16(25), - 2085: uint16(15), - 2086: uint16(1), - 2087: uint16(23), - 2088: uint16(25), - 2089: uint16(1), - 2090: uint16(141), - 2091: uint16(135), - 2092: uint16(319), - 2093: uint16(319), - 2094: uint16(319), - 2095: uint16(319), - 2096: uint16(319), - 2097: uint16(319), - 2098: uint16(319), - 2099: uint16(141), - 2100: uint16(319), - 2101: uint16(319), - 2102: uint16(319), - 2103: uint16(319), - 2104: uint16(319), - 2105: uint16(319), - 2106: uint16(319), - 2107: uint16(319), - 2108: uint16(319), - 2109: uint16(319), - 2110: uint16(319), - 2111: uint16(319), - 2112: uint16(319), - 2113: uint16(319), - 2114: uint16(319), - 2115: uint16(319), - 2116: uint16(319), - 2117: uint16(319), - 2118: uint16(319), - 2119: uint16(319), - 2120: uint16(319), - 2121: uint16(319), - 2122: uint16(319), - 2123: uint16(319), - 2124: uint16(319), - 2125: uint16(319), - 2126: uint16(319), - 2127: uint16(319), - 2128: uint16(319), - 2129: uint16(319), - 2130: uint16(319), - 2131: uint16(319), - 2132: uint16(319), - 2133: uint16(319), - 2134: uint16(319), - 2135: uint16(319), - 2136: uint16(319), - 2137: uint16(319), - 2138: uint16(319), - 2139: uint16(319), - 2140: uint16(319), - 2141: uint16(319), - 2142: uint16(319), - 2143: uint16(319), - 2144: uint16(319), - 2145: uint16(319), - 2146: uint16(319), - 2147: uint16(319), - 2148: uint16(319), - 2149: uint16(319), - 2150: uint16(319), - 2151: uint16(319), - 2152: uint16(319), - 2153: uint16(319), - 2154: uint16(319), - 2155: uint16(319), - 2156: uint16(319), - 2157: uint16(319), - 2158: uint16(319), - 2159: uint16(319), - 2160: uint16(319), - 2161: uint16(319), - 2162: uint16(319), - 2163: uint16(319), - 2164: uint16(319), - 2165: uint16(319), - 2166: uint16(319), - 2167: uint16(319), - 2168: uint16(319), - 2169: uint16(319), - 2170: uint16(319), - 2171: uint16(319), - 2172: uint16(319), - 2173: uint16(319), - 2174: uint16(319), - 2175: uint16(319), - 2176: uint16(319), - 2177: uint16(319), - 2178: uint16(319), - 2179: uint16(319), - 2180: uint16(319), - 2181: uint16(319), - 2182: uint16(319), - 2183: uint16(319), - 2184: uint16(319), - 2185: uint16(319), - 2186: uint16(319), - 2187: uint16(319), - 2188: uint16(319), - 2189: uint16(319), - 2190: uint16(319), - 2191: uint16(319), - 2192: uint16(319), - 2193: uint16(319), - 2194: uint16(319), - 2195: uint16(319), - 2196: uint16(319), - 2197: uint16(319), - 2198: uint16(319), - 2199: uint16(319), - 2200: uint16(319), - 2201: uint16(319), - 2202: uint16(319), - 2203: uint16(319), - 2204: uint16(319), - 2205: uint16(319), - 2206: uint16(319), - 2207: uint16(319), - 2208: uint16(319), - 2209: uint16(319), - 2210: uint16(319), - 2211: uint16(319), - 2212: uint16(319), - 2213: uint16(319), - 2214: uint16(319), - 2215: uint16(319), - 2216: uint16(319), - 2217: uint16(319), - 2218: uint16(319), - 2219: uint16(319), - 2220: uint16(319), - 2221: uint16(319), - 2222: uint16(319), - 2223: uint16(319), - 2224: uint16(319), - 2225: uint16(319), - 2226: uint16(319), - 2227: uint16(319), - 2228: uint16(319), - 2229: uint16(319), - 2230: uint16(319), - 2231: uint16(319), - 2232: uint16(319), - 2233: uint16(319), - 2234: uint16(319), - 2235: uint16(319), - 2236: uint16(319), - 2237: uint16(319), - 2238: uint16(319), - 2239: uint16(319), - 2240: uint16(319), - 2241: uint16(319), - 2242: uint16(319), - 2243: uint16(319), - 2244: uint16(319), - 2245: uint16(319), - 2246: uint16(319), - 2247: uint16(319), - 2248: uint16(319), - 2249: uint16(319), - 2250: uint16(319), - 2251: uint16(319), - 2252: uint16(319), - 2253: uint16(319), - 2254: uint16(319), - 2255: uint16(319), - 2256: uint16(319), - 2257: uint16(319), - 2258: uint16(319), - 2259: uint16(319), - 2260: uint16(319), - 2261: uint16(319), - 2262: uint16(319), - 2263: uint16(319), - 2264: uint16(319), - 2265: uint16(319), - 2266: uint16(319), - 2267: uint16(319), - 2268: uint16(319), - 2269: uint16(319), - 2270: uint16(319), - 2271: uint16(319), - 2272: uint16(319), - 2273: uint16(319), - 2274: uint16(319), - 2275: uint16(319), - 2276: uint16(319), - 2277: uint16(319), - 2278: uint16(319), - 2279: uint16(319), - 2280: uint16(319), - 2281: uint16(319), - 2282: uint16(319), - 2283: uint16(319), - 2284: uint16(319), -} -var _yy_shift_ofst = [579]uint16{ - 0: uint16(1648), - 1: uint16(1477), - 2: uint16(1272), + 2084: uint16(143), + 2085: uint16(25), + 2086: uint16(34), + 2087: uint16(75), + 2088: uint16(34), + 2089: uint16(34), + 2090: uint16(75), + 2091: uint16(88), + 2092: uint16(34), + 2093: uint16(86), + 2094: uint16(23), + 2095: uint16(22), + 2096: uint16(34), + 2097: uint16(25), + 2098: uint16(24), + 2099: uint16(34), + 2100: uint16(25), + 2101: uint16(93), + 2102: uint16(23), + 2103: uint16(44), + 2104: uint16(142), + 2105: uint16(23), + 2106: uint16(142), + 2107: uint16(23), + 2108: uint16(23), + 2109: uint16(22), + 2110: uint16(11), + 2111: uint16(25), + 2112: uint16(23), + 2113: uint16(25), + 2114: uint16(23), + 2115: uint16(22), + 2116: uint16(22), + 2117: uint16(22), + 2118: uint16(1), + 2119: uint16(23), + 2120: uint16(23), + 2121: uint16(23), + 2122: uint16(22), + 2123: uint16(22), + 2124: uint16(15), + 2125: uint16(141), + 2126: uint16(141), + 2127: uint16(25), + 2128: uint16(25), + 2129: uint16(1), + 2130: uint16(322), + 2131: uint16(322), + 2132: uint16(322), + 2133: uint16(135), + 2134: uint16(322), + 2135: uint16(322), + 2136: uint16(322), + 2137: uint16(322), + 2138: uint16(322), + 2139: uint16(322), + 2140: uint16(322), + 2141: uint16(141), + 2142: uint16(322), + 2143: uint16(322), + 2144: uint16(322), + 2145: uint16(322), + 2146: uint16(322), + 2147: uint16(322), + 2148: uint16(322), + 2149: uint16(322), + 2150: uint16(322), + 2151: uint16(322), + 2152: uint16(322), + 2153: uint16(322), + 2154: uint16(322), + 2155: uint16(322), + 2156: uint16(322), + 2157: uint16(322), + 2158: uint16(322), + 2159: uint16(322), + 2160: uint16(322), + 2161: uint16(322), + 2162: uint16(322), + 2163: uint16(322), + 2164: uint16(322), + 2165: uint16(322), + 2166: uint16(322), + 2167: uint16(322), + 2168: uint16(322), + 2169: uint16(322), + 2170: uint16(322), + 2171: uint16(322), + 2172: uint16(322), + 2173: uint16(322), + 2174: uint16(322), + 2175: uint16(322), + 2176: uint16(322), + 2177: uint16(322), + 2178: uint16(322), + 2179: uint16(322), + 2180: uint16(322), + 2181: uint16(322), + 2182: uint16(322), + 2183: uint16(322), + 2184: uint16(322), + 2185: uint16(322), + 2186: uint16(322), + 2187: uint16(322), + 2188: uint16(322), + 2189: uint16(322), + 2190: uint16(322), + 2191: uint16(322), + 2192: uint16(322), + 2193: uint16(322), + 2194: uint16(322), + 2195: uint16(322), + 2196: uint16(322), + 2197: uint16(322), + 2198: uint16(322), + 2199: uint16(322), + 2200: uint16(322), + 2201: uint16(322), + 2202: uint16(322), + 2203: uint16(322), + 2204: uint16(322), + 2205: uint16(322), + 2206: uint16(322), + 2207: uint16(322), + 2208: uint16(322), + 2209: uint16(322), + 2210: uint16(322), + 2211: uint16(322), + 2212: uint16(322), + 2213: uint16(322), + 2214: uint16(322), + 2215: uint16(322), + 2216: uint16(322), + 2217: uint16(322), + 2218: uint16(322), + 2219: uint16(322), + 2220: uint16(322), + 2221: uint16(322), + 2222: uint16(322), + 2223: uint16(322), + 2224: uint16(322), + 2225: uint16(322), + 2226: uint16(322), + 2227: uint16(322), + 2228: uint16(322), + 2229: uint16(322), + 2230: uint16(322), + 2231: uint16(322), + 2232: uint16(322), + 2233: uint16(322), + 2234: uint16(322), + 2235: uint16(322), + 2236: uint16(322), + 2237: uint16(322), + 2238: uint16(322), + 2239: uint16(322), + 2240: uint16(322), + 2241: uint16(322), + 2242: uint16(322), + 2243: uint16(322), + 2244: uint16(322), + 2245: uint16(322), + 2246: uint16(322), + 2247: uint16(322), + 2248: uint16(322), + 2249: uint16(322), + 2250: uint16(322), + 2251: uint16(322), + 2252: uint16(322), + 2253: uint16(322), + 2254: uint16(322), + 2255: uint16(322), + 2256: uint16(322), + 2257: uint16(322), + 2258: uint16(322), + 2259: uint16(322), + 2260: uint16(322), + 2261: uint16(322), + 2262: uint16(322), + 2263: uint16(322), + 2264: uint16(322), + 2265: uint16(322), + 2266: uint16(322), + 2267: uint16(322), + 2268: uint16(322), + 2269: uint16(322), + 2270: uint16(322), + 2271: uint16(322), + 2272: uint16(322), + 2273: uint16(322), + 2274: uint16(322), + 2275: uint16(322), + 2276: uint16(322), + 2277: uint16(322), + 2278: uint16(322), + 2279: uint16(322), + 2280: uint16(322), + 2281: uint16(322), + 2282: uint16(322), + 2283: uint16(322), + 2284: uint16(322), + 2285: uint16(322), + 2286: uint16(322), + 2287: uint16(322), + 2288: uint16(322), + 2289: uint16(322), + 2290: uint16(322), + 2291: uint16(322), + 2292: uint16(322), + 2293: uint16(322), + 2294: uint16(322), + 2295: uint16(322), + 2296: uint16(322), + 2297: uint16(322), + 2298: uint16(322), + 2299: uint16(322), + 2300: uint16(322), + 2301: uint16(322), + 2302: uint16(322), + 2303: uint16(322), + 2304: uint16(322), + 2305: uint16(322), + 2306: uint16(322), + 2307: uint16(322), + 2308: uint16(322), + 2309: uint16(322), + 2310: uint16(322), + 2311: uint16(322), + 2312: uint16(322), + 2313: uint16(322), + 2314: uint16(322), + 2315: uint16(322), + 2316: uint16(322), + 2317: uint16(322), + 2318: uint16(322), + 2319: uint16(322), + 2320: uint16(322), + 2321: uint16(322), + 2322: uint16(322), + 2323: uint16(322), + 2324: uint16(322), + 2325: uint16(322), + 2326: uint16(322), + 2327: uint16(322), +} +var _yy_shift_ofst = [583]uint16{ + 0: uint16(1792), + 1: uint16(1588), + 2: uint16(1494), 3: uint16(322), 4: uint16(322), - 5: uint16(1), - 6: uint16(1319), - 7: uint16(1478), - 8: uint16(1491), - 9: uint16(1837), - 10: uint16(1837), - 11: uint16(1837), - 12: uint16(471), - 15: uint16(214), - 16: uint16(1093), - 17: uint16(1837), - 18: uint16(1837), - 19: uint16(1837), - 20: uint16(1837), - 21: uint16(1837), - 22: uint16(1837), - 23: uint16(1837), - 24: uint16(1837), - 25: uint16(1837), - 26: uint16(1837), - 27: uint16(1837), - 28: uint16(1837), - 29: uint16(1837), - 30: uint16(1837), - 31: uint16(271), - 32: uint16(271), - 33: uint16(1219), - 34: uint16(1219), - 35: uint16(216), - 36: uint16(88), - 37: uint16(1), - 38: uint16(1), - 39: uint16(1), - 40: uint16(1), - 41: uint16(1), - 42: uint16(40), - 43: uint16(111), - 44: uint16(258), - 45: uint16(361), - 46: uint16(469), - 47: uint16(512), - 48: uint16(583), - 49: uint16(622), - 50: uint16(693), - 51: uint16(732), - 52: uint16(803), - 53: uint16(842), - 54: uint16(913), - 55: uint16(1073), - 56: uint16(1093), - 57: uint16(1093), - 58: uint16(1093), - 59: uint16(1093), - 60: uint16(1093), - 61: uint16(1093), - 62: uint16(1093), - 63: uint16(1093), - 64: uint16(1093), + 5: uint16(399), + 6: uint16(306), + 7: uint16(1319), + 8: uint16(1339), + 9: uint16(1430), + 10: uint16(1828), + 11: uint16(1828), + 12: uint16(1828), + 13: uint16(580), + 14: uint16(399), + 15: uint16(399), + 16: uint16(399), + 17: uint16(399), + 18: uint16(399), + 21: uint16(214), + 22: uint16(1093), + 23: uint16(1828), + 24: uint16(1828), + 25: uint16(1828), + 26: uint16(1828), + 27: uint16(1828), + 28: uint16(1828), + 29: uint16(1828), + 30: uint16(1828), + 31: uint16(1828), + 32: uint16(1828), + 33: uint16(1828), + 34: uint16(1828), + 35: uint16(1828), + 36: uint16(1828), + 37: uint16(1828), + 38: uint16(1130), + 39: uint16(1130), + 40: uint16(365), + 41: uint16(365), + 42: uint16(55), + 43: uint16(278), + 44: uint16(436), + 45: uint16(713), + 46: uint16(713), + 47: uint16(201), + 48: uint16(201), + 49: uint16(201), + 50: uint16(201), + 51: uint16(40), + 52: uint16(111), + 53: uint16(258), + 54: uint16(361), + 55: uint16(469), + 56: uint16(512), + 57: uint16(583), + 58: uint16(622), + 59: uint16(693), + 60: uint16(732), + 61: uint16(803), + 62: uint16(842), + 63: uint16(913), + 64: uint16(1073), 65: uint16(1093), 66: uint16(1093), 67: uint16(1093), @@ -156755,1505 +158302,1514 @@ var _yy_shift_ofst = [579]uint16{ 71: uint16(1093), 72: uint16(1093), 73: uint16(1093), - 74: uint16(1113), + 74: uint16(1093), 75: uint16(1093), - 76: uint16(1216), - 77: uint16(957), - 78: uint16(957), - 79: uint16(1635), - 80: uint16(1662), - 81: uint16(1777), - 82: uint16(1837), - 83: uint16(1837), - 84: uint16(1837), - 85: uint16(1837), - 86: uint16(1837), - 87: uint16(1837), - 88: uint16(1837), - 89: uint16(1837), - 90: uint16(1837), - 91: uint16(1837), - 92: uint16(1837), - 93: uint16(1837), - 94: uint16(1837), - 95: uint16(1837), - 96: uint16(1837), - 97: uint16(1837), - 98: uint16(1837), - 99: uint16(1837), - 100: uint16(1837), - 101: uint16(1837), - 102: uint16(1837), - 103: uint16(1837), - 104: uint16(1837), - 105: uint16(1837), - 106: uint16(1837), - 107: uint16(1837), - 108: uint16(1837), - 109: uint16(1837), - 110: uint16(1837), - 111: uint16(1837), - 112: uint16(1837), - 113: uint16(1837), - 114: uint16(1837), - 115: uint16(1837), - 116: uint16(1837), - 117: uint16(1837), - 118: uint16(1837), - 119: uint16(1837), - 120: uint16(1837), - 121: uint16(1837), - 122: uint16(1837), - 123: uint16(1837), - 124: uint16(1837), - 125: uint16(1837), - 126: uint16(1837), - 127: uint16(1837), - 128: uint16(1837), - 129: uint16(1837), - 130: uint16(1837), - 131: uint16(137), - 132: uint16(181), - 133: uint16(181), - 134: uint16(181), - 135: uint16(181), - 136: uint16(181), - 137: uint16(181), - 138: uint16(181), - 139: uint16(94), - 140: uint16(430), - 141: uint16(66), - 142: uint16(65), - 143: uint16(112), - 144: uint16(366), - 145: uint16(533), - 146: uint16(533), - 147: uint16(740), - 148: uint16(1257), - 149: uint16(533), - 150: uint16(533), - 151: uint16(79), - 152: uint16(79), - 153: uint16(533), - 154: uint16(412), - 155: uint16(412), - 156: uint16(412), - 157: uint16(77), - 158: uint16(412), - 159: uint16(123), - 160: uint16(113), - 161: uint16(113), - 162: uint16(113), - 163: uint16(22), - 164: uint16(22), - 165: uint16(2100), - 166: uint16(2100), - 167: uint16(328), - 168: uint16(328), - 169: uint16(328), - 170: uint16(239), - 171: uint16(468), - 172: uint16(468), - 173: uint16(468), - 174: uint16(468), - 175: uint16(1015), - 176: uint16(1015), - 177: uint16(409), - 178: uint16(366), - 179: uint16(1187), - 180: uint16(1232), - 181: uint16(533), - 182: uint16(533), - 183: uint16(533), - 184: uint16(533), - 185: uint16(533), - 186: uint16(533), - 187: uint16(533), - 188: uint16(533), - 189: uint16(533), - 190: uint16(533), - 191: uint16(533), - 192: uint16(533), - 193: uint16(533), - 194: uint16(533), - 195: uint16(533), - 196: uint16(533), - 197: uint16(533), - 198: uint16(533), - 199: uint16(533), - 200: uint16(533), - 201: uint16(969), - 202: uint16(621), - 203: uint16(621), - 204: uint16(533), - 205: uint16(642), - 206: uint16(788), - 207: uint16(788), - 208: uint16(1133), - 209: uint16(1133), - 210: uint16(822), - 211: uint16(822), - 212: uint16(67), - 213: uint16(1193), - 214: uint16(2100), - 215: uint16(2100), - 216: uint16(2100), - 217: uint16(2100), - 218: uint16(2100), - 219: uint16(2100), - 220: uint16(2100), - 221: uint16(1307), - 222: uint16(954), - 223: uint16(954), - 224: uint16(585), - 225: uint16(472), - 226: uint16(640), - 227: uint16(387), - 228: uint16(695), - 229: uint16(538), - 230: uint16(541), - 231: uint16(700), - 232: uint16(533), - 233: uint16(533), - 234: uint16(533), - 235: uint16(533), - 236: uint16(533), - 237: uint16(533), - 238: uint16(533), - 239: uint16(533), - 240: uint16(533), - 241: uint16(533), - 242: uint16(222), - 243: uint16(533), - 244: uint16(533), - 245: uint16(533), - 246: uint16(533), - 247: uint16(533), - 248: uint16(533), - 249: uint16(533), - 250: uint16(533), - 251: uint16(533), - 252: uint16(533), - 253: uint16(533), - 254: uint16(533), - 255: uint16(1213), - 256: uint16(1213), - 257: uint16(1213), - 258: uint16(533), - 259: uint16(533), - 260: uint16(533), - 261: uint16(565), - 262: uint16(533), - 263: uint16(533), - 264: uint16(533), - 265: uint16(916), - 266: uint16(1147), - 267: uint16(533), - 268: uint16(533), - 269: uint16(1288), - 270: uint16(533), - 271: uint16(533), - 272: uint16(533), - 273: uint16(533), - 274: uint16(533), - 275: uint16(533), - 276: uint16(533), - 277: uint16(533), - 278: uint16(639), - 279: uint16(1280), - 280: uint16(209), - 281: uint16(1129), - 282: uint16(1129), - 283: uint16(1129), - 284: uint16(1129), - 285: uint16(580), - 286: uint16(209), - 287: uint16(209), - 288: uint16(1209), - 289: uint16(768), - 290: uint16(917), - 291: uint16(649), - 292: uint16(1315), - 293: uint16(1334), - 294: uint16(405), - 295: uint16(1334), - 296: uint16(1383), - 297: uint16(249), - 298: uint16(1315), - 299: uint16(1315), - 300: uint16(249), - 301: uint16(1315), - 302: uint16(405), - 303: uint16(1383), - 304: uint16(1441), - 305: uint16(464), - 306: uint16(1245), - 307: uint16(1417), - 308: uint16(1417), - 309: uint16(1417), - 310: uint16(1323), - 311: uint16(1323), - 312: uint16(1323), - 313: uint16(1323), - 314: uint16(184), - 315: uint16(184), - 316: uint16(1335), - 317: uint16(1476), - 318: uint16(856), - 319: uint16(1482), - 320: uint16(1744), - 321: uint16(1744), - 322: uint16(1665), - 323: uint16(1665), - 324: uint16(1773), - 325: uint16(1773), - 326: uint16(1665), - 327: uint16(1669), - 328: uint16(1671), - 329: uint16(1802), - 330: uint16(1782), - 331: uint16(1809), - 332: uint16(1809), - 333: uint16(1809), - 334: uint16(1809), - 335: uint16(1665), - 336: uint16(1817), - 337: uint16(1690), - 338: uint16(1671), - 339: uint16(1671), - 340: uint16(1690), - 341: uint16(1802), - 342: uint16(1782), - 343: uint16(1690), - 344: uint16(1782), - 345: uint16(1690), - 346: uint16(1665), - 347: uint16(1817), - 348: uint16(1693), - 349: uint16(1791), - 350: uint16(1665), - 351: uint16(1817), - 352: uint16(1832), - 353: uint16(1665), - 354: uint16(1817), - 355: uint16(1665), - 356: uint16(1817), - 357: uint16(1832), - 358: uint16(1752), - 359: uint16(1752), - 360: uint16(1752), - 361: uint16(1805), - 362: uint16(1850), - 363: uint16(1850), - 364: uint16(1832), - 365: uint16(1752), - 366: uint16(1749), - 367: uint16(1752), - 368: uint16(1805), - 369: uint16(1752), - 370: uint16(1752), - 371: uint16(1713), - 372: uint16(1858), - 373: uint16(1775), - 374: uint16(1775), - 375: uint16(1832), - 376: uint16(1665), - 377: uint16(1799), - 378: uint16(1799), - 379: uint16(1823), - 380: uint16(1823), - 381: uint16(1761), - 382: uint16(1765), - 383: uint16(1890), - 384: uint16(1665), - 385: uint16(1757), - 386: uint16(1761), - 387: uint16(1771), - 388: uint16(1774), - 389: uint16(1690), - 390: uint16(1894), - 391: uint16(1913), - 392: uint16(1913), - 393: uint16(1929), - 394: uint16(1929), - 395: uint16(1929), - 396: uint16(2100), - 397: uint16(2100), - 398: uint16(2100), - 399: uint16(2100), - 400: uint16(2100), - 401: uint16(2100), - 402: uint16(2100), - 403: uint16(2100), - 404: uint16(2100), - 405: uint16(2100), - 406: uint16(2100), - 407: uint16(2100), - 408: uint16(2100), - 409: uint16(2100), - 410: uint16(2100), - 411: uint16(207), - 412: uint16(1220), - 413: uint16(331), - 414: uint16(620), - 415: uint16(967), - 416: uint16(806), - 417: uint16(1074), - 418: uint16(1499), - 419: uint16(1432), - 420: uint16(1463), - 421: uint16(1479), - 422: uint16(1419), - 423: uint16(1422), - 424: uint16(1557), - 425: uint16(1512), - 426: uint16(1598), - 427: uint16(1599), - 428: uint16(1644), - 429: uint16(1645), - 430: uint16(1654), - 431: uint16(1660), - 432: uint16(1555), - 433: uint16(1505), - 434: uint16(1684), - 435: uint16(1462), - 436: uint16(1670), - 437: uint16(1563), - 438: uint16(1619), - 439: uint16(1593), - 440: uint16(1676), - 441: uint16(1679), - 442: uint16(1613), - 443: uint16(1680), - 444: uint16(1554), - 445: uint16(1558), - 446: uint16(1689), - 447: uint16(1692), - 448: uint16(1605), - 449: uint16(1589), - 450: uint16(1955), - 451: uint16(1959), - 452: uint16(1941), - 453: uint16(1803), - 454: uint16(1950), - 455: uint16(1951), - 456: uint16(1945), - 457: uint16(1946), - 458: uint16(1831), - 459: uint16(1820), - 460: uint16(1842), - 461: uint16(1948), - 462: uint16(1948), - 463: uint16(1952), - 464: uint16(1833), - 465: uint16(1954), - 466: uint16(1834), - 467: uint16(1961), - 468: uint16(1978), - 469: uint16(1838), - 470: uint16(1851), - 471: uint16(1948), - 472: uint16(1852), - 473: uint16(1922), - 474: uint16(1947), - 475: uint16(1948), - 476: uint16(1836), - 477: uint16(1932), - 478: uint16(1935), - 479: uint16(1936), - 480: uint16(1942), - 481: uint16(1866), - 482: uint16(1881), - 483: uint16(1964), - 484: uint16(1859), - 485: uint16(1998), - 486: uint16(1996), - 487: uint16(1980), - 488: uint16(1888), - 489: uint16(1843), - 490: uint16(1937), - 491: uint16(1981), - 492: uint16(1939), - 493: uint16(1933), - 494: uint16(1968), - 495: uint16(1869), - 496: uint16(1896), - 497: uint16(1988), - 498: uint16(1993), - 499: uint16(1995), - 500: uint16(1884), - 501: uint16(1891), - 502: uint16(1997), - 503: uint16(1953), - 504: uint16(1999), - 505: uint16(2000), - 506: uint16(1994), - 507: uint16(2001), - 508: uint16(1957), - 509: uint16(1966), - 510: uint16(2002), - 511: uint16(1931), - 512: uint16(1990), - 513: uint16(2006), - 514: uint16(1962), - 515: uint16(2003), - 516: uint16(2007), - 517: uint16(2004), - 518: uint16(1882), - 519: uint16(2010), - 520: uint16(2011), - 521: uint16(2012), - 522: uint16(2008), - 523: uint16(2013), - 524: uint16(2015), - 525: uint16(1944), - 526: uint16(1898), - 527: uint16(2019), - 528: uint16(2020), - 529: uint16(1928), - 530: uint16(2014), - 531: uint16(2023), - 532: uint16(1903), - 533: uint16(2022), - 534: uint16(2016), - 535: uint16(2017), - 536: uint16(2018), - 537: uint16(2021), - 538: uint16(1965), - 539: uint16(1974), - 540: uint16(1970), - 541: uint16(2024), - 542: uint16(1979), - 543: uint16(1967), - 544: uint16(2025), - 545: uint16(2034), - 546: uint16(2036), - 547: uint16(2037), - 548: uint16(2038), - 549: uint16(2039), - 550: uint16(2028), - 551: uint16(1923), - 552: uint16(1924), - 553: uint16(2044), - 554: uint16(2022), - 555: uint16(2046), - 556: uint16(2047), - 557: uint16(2048), - 558: uint16(2049), - 559: uint16(2050), - 560: uint16(2051), - 561: uint16(2054), - 562: uint16(2062), - 563: uint16(2055), - 564: uint16(2056), - 565: uint16(2057), - 566: uint16(2058), - 567: uint16(2060), - 568: uint16(2061), - 569: uint16(2059), - 570: uint16(1956), - 571: uint16(1938), - 572: uint16(1949), - 573: uint16(1958), - 574: uint16(2063), - 575: uint16(2064), - 576: uint16(2070), - 577: uint16(2085), - 578: uint16(2088), -} -var _yy_reduce_ofst = [411]int16{ - 0: int16(-int32(125)), - 1: int16(733), - 2: int16(789), - 3: int16(241), - 4: int16(293), - 5: int16(-int32(123)), - 6: int16(-int32(193)), - 7: int16(-int32(191)), - 8: int16(-int32(183)), - 9: int16(-int32(187)), - 10: int16(166), - 11: int16(238), - 12: int16(133), - 13: int16(-int32(207)), - 14: int16(-int32(199)), - 15: int16(-int32(267)), - 16: int16(-int32(176)), - 17: int16(-int32(6)), - 18: int16(204), - 19: int16(489), - 20: int16(576), - 21: int16(598), - 22: int16(-int32(175)), - 23: int16(686), - 24: int16(860), - 25: int16(615), - 26: int16(725), - 27: int16(1014), - 28: int16(778), - 29: int16(781), - 30: int16(857), - 31: int16(616), - 32: int16(887), - 33: int16(87), - 34: int16(240), - 35: int16(-int32(192)), - 36: int16(408), - 37: int16(626), - 38: int16(796), - 39: int16(843), - 40: int16(854), - 41: int16(1004), - 42: int16(-int32(271)), - 43: int16(-int32(271)), - 44: int16(-int32(271)), - 45: int16(-int32(271)), - 46: int16(-int32(271)), - 47: int16(-int32(271)), - 48: int16(-int32(271)), - 49: int16(-int32(271)), - 50: int16(-int32(271)), - 51: int16(-int32(271)), - 52: int16(-int32(271)), - 53: int16(-int32(271)), - 54: int16(-int32(271)), - 55: int16(-int32(271)), - 56: int16(-int32(271)), - 57: int16(-int32(271)), - 58: int16(-int32(271)), - 59: int16(-int32(271)), - 60: int16(-int32(271)), - 61: int16(-int32(271)), - 62: int16(-int32(271)), - 63: int16(-int32(271)), - 64: int16(-int32(271)), - 65: int16(-int32(271)), - 66: int16(-int32(271)), - 67: int16(-int32(271)), - 68: int16(-int32(271)), - 69: int16(-int32(271)), - 70: int16(-int32(271)), - 71: int16(-int32(271)), - 72: int16(-int32(271)), - 73: int16(-int32(271)), - 74: int16(-int32(271)), - 75: int16(-int32(271)), - 76: int16(-int32(271)), - 77: int16(-int32(271)), - 78: int16(-int32(271)), - 79: int16(80), - 80: int16(83), - 81: int16(313), - 82: int16(886), - 83: int16(888), - 84: int16(918), - 85: int16(938), - 86: int16(1021), - 87: int16(1034), - 88: int16(1036), - 89: int16(1141), - 90: int16(1159), - 91: int16(1163), - 92: int16(1166), - 93: int16(1168), - 94: int16(1170), - 95: int16(1176), - 96: int16(1178), - 97: int16(1180), - 98: int16(1184), - 99: int16(1196), - 100: int16(1198), - 101: int16(1205), - 102: int16(1215), - 103: int16(1225), - 104: int16(1227), - 105: int16(1236), - 106: int16(1252), - 107: int16(1254), - 108: int16(1264), - 109: int16(1303), - 110: int16(1309), - 111: int16(1312), - 112: int16(1322), - 113: int16(1325), - 114: int16(1328), - 115: int16(1337), - 116: int16(1340), - 117: int16(1343), - 118: int16(1353), - 119: int16(1371), - 120: int16(1373), - 121: int16(1384), - 122: int16(1386), - 123: int16(1411), - 124: int16(1413), - 125: int16(1420), - 126: int16(1424), - 127: int16(1426), - 128: int16(1458), - 129: int16(1470), - 130: int16(1473), - 131: int16(-int32(271)), - 132: int16(-int32(271)), - 133: int16(-int32(271)), - 134: int16(-int32(271)), - 135: int16(-int32(271)), - 136: int16(-int32(271)), - 137: int16(-int32(271)), - 138: int16(-int32(271)), - 139: int16(-int32(271)), - 140: int16(-int32(271)), - 141: int16(-int32(271)), - 142: int16(138), - 143: int16(459), - 144: int16(396), - 145: int16(-int32(158)), - 146: int16(470), - 147: int16(302), - 148: int16(-int32(212)), - 149: int16(521), - 150: int16(201), - 151: int16(-int32(195)), - 152: int16(-int32(92)), - 153: int16(559), - 154: int16(630), - 155: int16(632), - 156: int16(630), - 157: int16(-int32(271)), - 158: int16(632), - 159: int16(901), - 160: int16(63), - 161: int16(407), - 162: int16(670), - 163: int16(-int32(271)), - 164: int16(-int32(271)), - 165: int16(-int32(271)), - 166: int16(-int32(271)), - 167: int16(161), - 168: int16(161), - 169: int16(161), - 170: int16(251), - 171: int16(335), - 172: int16(847), - 173: int16(979), - 174: int16(1097), - 175: int16(537), - 176: int16(588), - 177: int16(618), - 178: int16(628), - 179: int16(688), - 180: int16(688), - 181: int16(-int32(166)), - 182: int16(-int32(161)), - 183: int16(674), - 184: int16(787), - 185: int16(794), - 186: int16(799), - 187: int16(852), - 188: int16(996), - 189: int16(-int32(122)), - 190: int16(837), - 191: int16(-int32(120)), - 192: int16(1018), - 193: int16(1035), - 194: int16(415), - 195: int16(1047), - 196: int16(1001), - 197: int16(958), - 198: int16(1082), - 199: int16(400), - 200: int16(1099), - 201: int16(779), - 202: int16(1137), - 203: int16(1142), - 204: int16(263), - 205: int16(1083), - 206: int16(1145), - 207: int16(1150), - 208: int16(1041), - 209: int16(1139), - 210: int16(965), - 211: int16(1050), - 212: int16(362), - 213: int16(849), - 214: int16(752), - 215: int16(629), - 216: int16(675), - 217: int16(1162), - 218: int16(1173), - 219: int16(1090), - 220: int16(1195), - 221: int16(-int32(194)), - 222: int16(56), - 223: int16(185), - 224: int16(-int32(135)), - 225: int16(232), - 226: int16(522), - 227: int16(560), - 228: int16(571), - 229: int16(601), - 230: int16(617), - 231: int16(669), - 232: int16(683), - 233: int16(711), - 234: int16(850), - 235: int16(893), - 236: int16(1000), - 237: int16(1040), - 238: int16(1049), - 239: int16(1081), - 240: int16(1087), - 241: int16(1101), - 242: int16(392), - 243: int16(1114), - 244: int16(1123), - 245: int16(1155), - 246: int16(1161), - 247: int16(1175), - 248: int16(1271), - 249: int16(1293), - 250: int16(1299), - 251: int16(1330), - 252: int16(1339), - 253: int16(1342), - 254: int16(1347), - 255: int16(593), - 256: int16(1282), - 257: int16(1286), - 258: int16(1350), - 259: int16(1359), - 260: int16(1368), - 261: int16(1314), - 262: int16(1480), - 263: int16(1483), - 264: int16(1507), - 265: int16(1085), - 266: int16(1338), - 267: int16(1526), - 268: int16(1527), - 269: int16(1487), - 270: int16(1531), - 271: int16(560), - 272: int16(1532), - 273: int16(1534), - 274: int16(1535), - 275: int16(1538), - 276: int16(1539), - 277: int16(1541), - 278: int16(1448), - 279: int16(1450), - 280: int16(1496), - 281: int16(1484), - 282: int16(1485), - 283: int16(1489), - 284: int16(1490), - 285: int16(1314), - 286: int16(1496), - 287: int16(1496), - 288: int16(1504), - 289: int16(1536), - 290: int16(1564), - 291: int16(1451), - 292: int16(1486), - 293: int16(1492), - 294: int16(1509), - 295: int16(1493), - 296: int16(1465), - 297: int16(1515), - 298: int16(1494), - 299: int16(1495), - 300: int16(1517), - 301: int16(1500), - 302: int16(1519), - 303: int16(1474), - 304: int16(1550), - 305: int16(1543), - 306: int16(1548), - 307: int16(1556), - 308: int16(1565), - 309: int16(1566), - 310: int16(1518), - 311: int16(1523), - 312: int16(1542), - 313: int16(1544), - 314: int16(1525), - 315: int16(1545), - 316: int16(1513), - 317: int16(1553), - 318: int16(1552), - 319: int16(1604), - 320: int16(1508), - 321: int16(1510), - 322: int16(1608), - 323: int16(1609), - 324: int16(1520), - 325: int16(1528), - 326: int16(1612), - 327: int16(1540), - 328: int16(1559), - 329: int16(1560), - 330: int16(1592), - 331: int16(1591), - 332: int16(1595), - 333: int16(1596), - 334: int16(1597), - 335: int16(1629), - 336: int16(1638), - 337: int16(1594), - 338: int16(1569), - 339: int16(1570), - 340: int16(1600), - 341: int16(1568), - 342: int16(1610), - 343: int16(1601), - 344: int16(1611), - 345: int16(1603), - 346: int16(1643), - 347: int16(1651), - 348: int16(1562), - 349: int16(1571), - 350: int16(1655), - 351: int16(1659), - 352: int16(1640), - 353: int16(1663), - 354: int16(1666), - 355: int16(1664), - 356: int16(1667), - 357: int16(1641), - 358: int16(1650), - 359: int16(1652), - 360: int16(1653), - 361: int16(1647), - 362: int16(1656), - 363: int16(1657), - 364: int16(1658), - 365: int16(1668), - 366: int16(1672), - 367: int16(1681), - 368: int16(1649), - 369: int16(1682), - 370: int16(1683), - 371: int16(1573), - 372: int16(1582), - 373: int16(1607), - 374: int16(1615), - 375: int16(1685), - 376: int16(1702), - 377: int16(1586), - 378: int16(1587), - 379: int16(1642), - 380: int16(1646), - 381: int16(1673), - 382: int16(1675), - 383: int16(1636), - 384: int16(1714), - 385: int16(1637), - 386: int16(1677), - 387: int16(1674), - 388: int16(1678), - 389: int16(1694), - 390: int16(1719), - 391: int16(1734), - 392: int16(1735), - 393: int16(1746), - 394: int16(1747), - 395: int16(1750), - 396: int16(1633), - 397: int16(1661), + 76: uint16(1093), + 77: uint16(1093), + 78: uint16(1093), + 79: uint16(1093), + 80: uint16(1093), + 81: uint16(1093), + 82: uint16(1093), + 83: uint16(1113), + 84: uint16(1093), + 85: uint16(1216), + 86: uint16(957), + 87: uint16(957), + 88: uint16(1523), + 89: uint16(1602), + 90: uint16(1674), + 91: uint16(1828), + 92: uint16(1828), + 93: uint16(1828), + 94: uint16(1828), + 95: uint16(1828), + 96: uint16(1828), + 97: uint16(1828), + 98: uint16(1828), + 99: uint16(1828), + 100: uint16(1828), + 101: uint16(1828), + 102: uint16(1828), + 103: uint16(1828), + 104: uint16(1828), + 105: uint16(1828), + 106: uint16(1828), + 107: uint16(1828), + 108: uint16(1828), + 109: uint16(1828), + 110: uint16(1828), + 111: uint16(1828), + 112: uint16(1828), + 113: uint16(1828), + 114: uint16(1828), + 115: uint16(1828), + 116: uint16(1828), + 117: uint16(1828), + 118: uint16(1828), + 119: uint16(1828), + 120: uint16(1828), + 121: uint16(1828), + 122: uint16(1828), + 123: uint16(1828), + 124: uint16(1828), + 125: uint16(1828), + 126: uint16(1828), + 127: uint16(1828), + 128: uint16(1828), + 129: uint16(1828), + 130: uint16(1828), + 131: uint16(1828), + 132: uint16(1828), + 133: uint16(1828), + 134: uint16(1828), + 135: uint16(1828), + 136: uint16(1828), + 137: uint16(1828), + 138: uint16(1828), + 139: uint16(1828), + 140: uint16(137), + 141: uint16(181), + 142: uint16(181), + 143: uint16(181), + 144: uint16(181), + 145: uint16(181), + 146: uint16(181), + 147: uint16(181), + 148: uint16(96), + 149: uint16(222), + 150: uint16(143), + 151: uint16(477), + 152: uint16(713), + 153: uint16(1133), + 154: uint16(1268), + 155: uint16(713), + 156: uint16(713), + 157: uint16(79), + 158: uint16(79), + 159: uint16(713), + 160: uint16(770), + 161: uint16(83), + 162: uint16(65), + 163: uint16(65), + 164: uint16(65), + 165: uint16(288), + 166: uint16(162), + 167: uint16(162), + 168: uint16(2142), + 169: uint16(2142), + 170: uint16(696), + 171: uint16(696), + 172: uint16(696), + 173: uint16(238), + 174: uint16(474), + 175: uint16(474), + 176: uint16(474), + 177: uint16(474), + 178: uint16(1217), + 179: uint16(1217), + 180: uint16(678), + 181: uint16(477), + 182: uint16(324), + 183: uint16(398), + 184: uint16(713), + 185: uint16(713), + 186: uint16(713), + 187: uint16(713), + 188: uint16(713), + 189: uint16(713), + 190: uint16(713), + 191: uint16(713), + 192: uint16(713), + 193: uint16(713), + 194: uint16(713), + 195: uint16(713), + 196: uint16(713), + 197: uint16(713), + 198: uint16(713), + 199: uint16(713), + 200: uint16(713), + 201: uint16(713), + 202: uint16(713), + 203: uint16(1220), + 204: uint16(366), + 205: uint16(366), + 206: uint16(713), + 207: uint16(917), + 208: uint16(283), + 209: uint16(283), + 210: uint16(434), + 211: uint16(434), + 212: uint16(605), + 213: uint16(605), + 214: uint16(1298), + 215: uint16(2142), + 216: uint16(2142), + 217: uint16(2142), + 218: uint16(2142), + 219: uint16(2142), + 220: uint16(2142), + 221: uint16(2142), + 222: uint16(1179), + 223: uint16(1157), + 224: uint16(1157), + 225: uint16(487), + 226: uint16(527), + 227: uint16(585), + 228: uint16(645), + 229: uint16(749), + 230: uint16(914), + 231: uint16(968), + 232: uint16(752), + 233: uint16(713), + 234: uint16(713), + 235: uint16(713), + 236: uint16(713), + 237: uint16(713), + 238: uint16(713), + 239: uint16(713), + 240: uint16(713), + 241: uint16(713), + 242: uint16(713), + 243: uint16(303), + 244: uint16(713), + 245: uint16(713), + 246: uint16(713), + 247: uint16(713), + 248: uint16(713), + 249: uint16(713), + 250: uint16(713), + 251: uint16(713), + 252: uint16(713), + 253: uint16(713), + 254: uint16(713), + 255: uint16(713), + 256: uint16(797), + 257: uint16(797), + 258: uint16(797), + 259: uint16(713), + 260: uint16(713), + 261: uint16(713), + 262: uint16(959), + 263: uint16(713), + 264: uint16(713), + 265: uint16(713), + 266: uint16(1169), + 267: uint16(1271), + 268: uint16(713), + 269: uint16(713), + 270: uint16(1330), + 271: uint16(713), + 272: uint16(713), + 273: uint16(713), + 274: uint16(713), + 275: uint16(713), + 276: uint16(713), + 277: uint16(713), + 278: uint16(713), + 279: uint16(629), + 280: uint16(7), + 281: uint16(91), + 282: uint16(876), + 283: uint16(876), + 284: uint16(876), + 285: uint16(876), + 286: uint16(953), + 287: uint16(91), + 288: uint16(91), + 289: uint16(1246), + 290: uint16(1065), + 291: uint16(1106), + 292: uint16(1374), + 293: uint16(1329), + 294: uint16(1348), + 295: uint16(468), + 296: uint16(1348), + 297: uint16(1394), + 298: uint16(785), + 299: uint16(1329), + 300: uint16(1329), + 301: uint16(785), + 302: uint16(1329), + 303: uint16(468), + 304: uint16(1394), + 305: uint16(859), + 306: uint16(854), + 307: uint16(1402), + 308: uint16(1449), + 309: uint16(1449), + 310: uint16(1449), + 311: uint16(1173), + 312: uint16(1173), + 313: uint16(1173), + 314: uint16(1173), + 315: uint16(1355), + 316: uint16(1355), + 317: uint16(1030), + 318: uint16(1341), + 319: uint16(405), + 320: uint16(1230), + 321: uint16(1795), + 322: uint16(1795), + 323: uint16(1711), + 324: uint16(1711), + 325: uint16(1829), + 326: uint16(1829), + 327: uint16(1711), + 328: uint16(1717), + 329: uint16(1719), + 330: uint16(1850), + 331: uint16(1833), + 332: uint16(1860), + 333: uint16(1860), + 334: uint16(1860), + 335: uint16(1860), + 336: uint16(1711), + 337: uint16(1868), + 338: uint16(1740), + 339: uint16(1719), + 340: uint16(1719), + 341: uint16(1740), + 342: uint16(1850), + 343: uint16(1833), + 344: uint16(1740), + 345: uint16(1833), + 346: uint16(1740), + 347: uint16(1711), + 348: uint16(1868), + 349: uint16(1745), + 350: uint16(1843), + 351: uint16(1711), + 352: uint16(1868), + 353: uint16(1887), + 354: uint16(1711), + 355: uint16(1868), + 356: uint16(1711), + 357: uint16(1868), + 358: uint16(1887), + 359: uint16(1801), + 360: uint16(1801), + 361: uint16(1801), + 362: uint16(1855), + 363: uint16(1900), + 364: uint16(1900), + 365: uint16(1887), + 366: uint16(1801), + 367: uint16(1797), + 368: uint16(1801), + 369: uint16(1855), + 370: uint16(1801), + 371: uint16(1801), + 372: uint16(1761), + 373: uint16(1912), + 374: uint16(1830), + 375: uint16(1830), + 376: uint16(1887), + 377: uint16(1711), + 378: uint16(1862), + 379: uint16(1862), + 380: uint16(1875), + 381: uint16(1875), + 382: uint16(1810), + 383: uint16(1815), + 384: uint16(1940), + 385: uint16(1711), + 386: uint16(1807), + 387: uint16(1810), + 388: uint16(1821), + 389: uint16(1823), + 390: uint16(1740), + 391: uint16(1945), + 392: uint16(1963), + 393: uint16(1963), + 394: uint16(1974), + 395: uint16(1974), + 396: uint16(1974), + 397: uint16(2142), + 398: uint16(2142), + 399: uint16(2142), + 400: uint16(2142), + 401: uint16(2142), + 402: uint16(2142), + 403: uint16(2142), + 404: uint16(2142), + 405: uint16(2142), + 406: uint16(2142), + 407: uint16(2142), + 408: uint16(2142), + 409: uint16(2142), + 410: uint16(2142), + 411: uint16(2142), + 412: uint16(20), + 413: uint16(1224), + 414: uint16(256), + 415: uint16(1111), + 416: uint16(1115), + 417: uint16(1114), + 418: uint16(1192), + 419: uint16(1496), + 420: uint16(1424), + 421: uint16(1505), + 422: uint16(1427), + 423: uint16(355), + 424: uint16(1383), + 425: uint16(1537), + 426: uint16(1506), + 427: uint16(1538), + 428: uint16(1553), + 429: uint16(1583), + 430: uint16(1584), + 431: uint16(1591), + 432: uint16(1625), + 433: uint16(541), + 434: uint16(1445), + 435: uint16(1562), + 436: uint16(1450), + 437: uint16(1572), + 438: uint16(1515), + 439: uint16(1428), + 440: uint16(1532), + 441: uint16(1592), + 442: uint16(1629), + 443: uint16(1520), + 444: uint16(1630), + 445: uint16(1639), + 446: uint16(1510), + 447: uint16(1544), + 448: uint16(1662), + 449: uint16(1675), + 450: uint16(1551), + 451: uint16(48), + 452: uint16(1996), + 453: uint16(2001), + 454: uint16(1983), + 455: uint16(1844), + 456: uint16(1993), + 457: uint16(1994), + 458: uint16(1986), + 459: uint16(1989), + 460: uint16(1874), + 461: uint16(1863), + 462: uint16(1885), + 463: uint16(1991), + 464: uint16(1991), + 465: uint16(1995), + 466: uint16(1876), + 467: uint16(1997), + 468: uint16(1877), + 469: uint16(2004), + 470: uint16(2021), + 471: uint16(1881), + 472: uint16(1894), + 473: uint16(1991), + 474: uint16(1895), + 475: uint16(1965), + 476: uint16(1990), + 477: uint16(1991), + 478: uint16(1878), + 479: uint16(1975), + 480: uint16(1977), + 481: uint16(1978), + 482: uint16(1979), + 483: uint16(1903), + 484: uint16(1918), + 485: uint16(2002), + 486: uint16(1896), + 487: uint16(2034), + 488: uint16(2033), + 489: uint16(2017), + 490: uint16(1925), + 491: uint16(1880), + 492: uint16(1976), + 493: uint16(2018), + 494: uint16(1980), + 495: uint16(1967), + 496: uint16(2005), + 497: uint16(1904), + 498: uint16(1932), + 499: uint16(2025), + 500: uint16(2030), + 501: uint16(2032), + 502: uint16(1921), + 503: uint16(1928), + 504: uint16(2035), + 505: uint16(1987), + 506: uint16(2036), + 507: uint16(2037), + 508: uint16(2038), + 509: uint16(2040), + 510: uint16(1988), + 511: uint16(2006), + 512: uint16(2039), + 513: uint16(1960), + 514: uint16(2041), + 515: uint16(2042), + 516: uint16(1999), + 517: uint16(2023), + 518: uint16(2044), + 519: uint16(2043), + 520: uint16(1919), + 521: uint16(2048), + 522: uint16(2049), + 523: uint16(2050), + 524: uint16(2046), + 525: uint16(2051), + 526: uint16(2053), + 527: uint16(1981), + 528: uint16(1935), + 529: uint16(2056), + 530: uint16(2057), + 531: uint16(1966), + 532: uint16(2047), + 533: uint16(2061), + 534: uint16(1941), + 535: uint16(2060), + 536: uint16(2052), + 537: uint16(2054), + 538: uint16(2055), + 539: uint16(2058), + 540: uint16(2003), + 541: uint16(2012), + 542: uint16(2007), + 543: uint16(2059), + 544: uint16(2015), + 545: uint16(2008), + 546: uint16(2062), + 547: uint16(2071), + 548: uint16(2073), + 549: uint16(2074), + 550: uint16(2072), + 551: uint16(2075), + 552: uint16(2065), + 553: uint16(1962), + 554: uint16(1964), + 555: uint16(2079), + 556: uint16(2060), + 557: uint16(2082), + 558: uint16(2084), + 559: uint16(2085), + 560: uint16(2087), + 561: uint16(2086), + 562: uint16(2089), + 563: uint16(2088), + 564: uint16(2091), + 565: uint16(2093), + 566: uint16(2099), + 567: uint16(2094), + 568: uint16(2095), + 569: uint16(2096), + 570: uint16(2097), + 571: uint16(2100), + 572: uint16(2101), + 573: uint16(2102), + 574: uint16(1998), + 575: uint16(1984), + 576: uint16(1985), + 577: uint16(2000), + 578: uint16(2103), + 579: uint16(2098), + 580: uint16(2109), + 581: uint16(2117), + 582: uint16(2128), +} +var _yy_reduce_ofst = [412]int16{ + 0: int16(-int32(71)), + 1: int16(194), + 2: int16(343), + 3: int16(835), + 4: int16(-int32(180)), + 5: int16(-int32(177)), + 6: int16(838), + 7: int16(-int32(194)), + 8: int16(-int32(188)), + 9: int16(-int32(185)), + 10: int16(-int32(183)), + 11: int16(82), + 12: int16(183), + 13: int16(-int32(65)), + 14: int16(133), + 15: int16(245), + 16: int16(346), + 17: int16(407), + 18: int16(458), + 19: int16(-int32(178)), + 20: int16(75), + 21: int16(-int32(275)), + 22: int16(-int32(4)), + 23: int16(310), + 24: int16(312), + 25: int16(489), + 26: int16(575), + 27: int16(596), + 28: int16(463), + 29: int16(686), + 30: int16(707), + 31: int16(725), + 32: int16(780), + 33: int16(1098), + 34: int16(856), + 35: int16(778), + 36: int16(1059), + 37: int16(1090), + 38: int16(708), + 39: int16(887), + 40: int16(86), + 41: int16(448), + 42: int16(980), + 43: int16(630), + 44: int16(680), + 45: int16(681), + 46: int16(684), + 47: int16(796), + 48: int16(801), + 49: int16(796), + 50: int16(801), + 51: int16(-int32(261)), + 52: int16(-int32(261)), + 53: int16(-int32(261)), + 54: int16(-int32(261)), + 55: int16(-int32(261)), + 56: int16(-int32(261)), + 57: int16(-int32(261)), + 58: int16(-int32(261)), + 59: int16(-int32(261)), + 60: int16(-int32(261)), + 61: int16(-int32(261)), + 62: int16(-int32(261)), + 63: int16(-int32(261)), + 64: int16(-int32(261)), + 65: int16(-int32(261)), + 66: int16(-int32(261)), + 67: int16(-int32(261)), + 68: int16(-int32(261)), + 69: int16(-int32(261)), + 70: int16(-int32(261)), + 71: int16(-int32(261)), + 72: int16(-int32(261)), + 73: int16(-int32(261)), + 74: int16(-int32(261)), + 75: int16(-int32(261)), + 76: int16(-int32(261)), + 77: int16(-int32(261)), + 78: int16(-int32(261)), + 79: int16(-int32(261)), + 80: int16(-int32(261)), + 81: int16(-int32(261)), + 82: int16(-int32(261)), + 83: int16(-int32(261)), + 84: int16(-int32(261)), + 85: int16(-int32(261)), + 86: int16(-int32(261)), + 87: int16(-int32(261)), + 88: int16(391), + 89: int16(886), + 90: int16(888), + 91: int16(1013), + 92: int16(1016), + 93: int16(1081), + 94: int16(1087), + 95: int16(1151), + 96: int16(1159), + 97: int16(1177), + 98: int16(1185), + 99: int16(1188), + 100: int16(1190), + 101: int16(1194), + 102: int16(1197), + 103: int16(1203), + 104: int16(1247), + 105: int16(1260), + 106: int16(1264), + 107: int16(1267), + 108: int16(1269), + 109: int16(1273), + 110: int16(1315), + 111: int16(1322), + 112: int16(1335), + 113: int16(1337), + 114: int16(1356), + 115: int16(1362), + 116: int16(1418), + 117: int16(1425), + 118: int16(1453), + 119: int16(1457), + 120: int16(1465), + 121: int16(1473), + 122: int16(1487), + 123: int16(1495), + 124: int16(1507), + 125: int16(1517), + 126: int16(1521), + 127: int16(1534), + 128: int16(1543), + 129: int16(1546), + 130: int16(1549), + 131: int16(1552), + 132: int16(1554), + 133: int16(1560), + 134: int16(1581), + 135: int16(1590), + 136: int16(1593), + 137: int16(1595), + 138: int16(1621), + 139: int16(1623), + 140: int16(-int32(261)), + 141: int16(-int32(261)), + 142: int16(-int32(261)), + 143: int16(-int32(261)), + 144: int16(-int32(261)), + 145: int16(-int32(261)), + 146: int16(-int32(261)), + 147: int16(-int32(261)), + 148: int16(-int32(261)), + 149: int16(-int32(261)), + 150: int16(-int32(261)), + 151: int16(-int32(186)), + 152: int16(-int32(117)), + 153: int16(260), + 154: int16(263), + 155: int16(460), + 156: int16(631), + 157: int16(-int32(74)), + 158: int16(497), + 159: int16(-int32(181)), + 160: int16(-int32(261)), + 161: int16(939), + 162: int16(176), + 163: int16(274), + 164: int16(338), + 165: int16(676), + 166: int16(-int32(261)), + 167: int16(-int32(261)), + 168: int16(-int32(261)), + 169: int16(-int32(261)), + 170: int16(-int32(212)), + 171: int16(-int32(212)), + 172: int16(-int32(212)), + 173: int16(-int32(184)), + 174: int16(149), + 175: int16(777), + 176: int16(1061), + 177: int16(1103), + 178: int16(265), + 179: int16(419), + 180: int16(-int32(254)), + 181: int16(670), + 182: int16(677), + 183: int16(677), + 184: int16(-int32(11)), + 185: int16(-int32(129)), + 186: int16(184), + 187: int16(488), + 188: int16(736), + 189: int16(789), + 190: int16(805), + 191: int16(844), + 192: int16(403), + 193: int16(529), + 194: int16(579), + 195: int16(668), + 196: int16(783), + 197: int16(841), + 198: int16(1158), + 199: int16(1112), + 200: int16(806), + 201: int16(861), + 202: int16(1095), + 203: int16(846), + 204: int16(839), + 205: int16(1031), + 206: int16(-int32(189)), + 207: int16(1077), + 208: int16(1080), + 209: int16(1116), + 210: int16(1084), + 211: int16(1156), + 212: int16(1139), + 213: int16(1221), + 214: int16(46), + 215: int16(1099), + 216: int16(1037), + 217: int16(1118), + 218: int16(1171), + 219: int16(1214), + 220: int16(1210), + 221: int16(1258), + 222: int16(-int32(210)), + 223: int16(-int32(190)), + 224: int16(-int32(176)), + 225: int16(-int32(115)), + 226: int16(117), + 227: int16(262), + 228: int16(376), + 229: int16(490), + 230: int16(511), + 231: int16(520), + 232: int16(618), + 233: int16(639), + 234: int16(743), + 235: int16(901), + 236: int16(907), + 237: int16(958), + 238: int16(1014), + 239: int16(1055), + 240: int16(1108), + 241: int16(1193), + 242: int16(1244), + 243: int16(720), + 244: int16(1248), + 245: int16(1277), + 246: int16(1324), + 247: int16(1347), + 248: int16(1417), + 249: int16(1431), + 250: int16(1432), + 251: int16(1440), + 252: int16(1451), + 253: int16(1452), + 254: int16(1463), + 255: int16(1478), + 256: int16(1286), + 257: int16(1350), + 258: int16(1369), + 259: int16(1490), + 260: int16(1498), + 261: int16(1501), + 262: int16(773), + 263: int16(1509), + 264: int16(1513), + 265: int16(1528), + 266: int16(1292), + 267: int16(1367), + 268: int16(1535), + 269: int16(1536), + 270: int16(1477), + 271: int16(1542), + 272: int16(376), + 273: int16(1547), + 274: int16(1550), + 275: int16(1555), + 276: int16(1559), + 277: int16(1568), + 278: int16(1571), + 279: int16(1441), + 280: int16(1443), + 281: int16(1474), + 282: int16(1511), + 283: int16(1516), + 284: int16(1519), + 285: int16(1522), + 286: int16(773), + 287: int16(1474), + 288: int16(1474), + 289: int16(1503), + 290: int16(1567), + 291: int16(1594), + 292: int16(1484), + 293: int16(1527), + 294: int16(1556), + 295: int16(1570), + 296: int16(1557), + 297: int16(1524), + 298: int16(1573), + 299: int16(1545), + 300: int16(1548), + 301: int16(1576), + 302: int16(1561), + 303: int16(1587), + 304: int16(1540), + 305: int16(1575), + 306: int16(1606), + 307: int16(1611), + 308: int16(1622), + 309: int16(1624), + 310: int16(1626), + 311: int16(1582), + 312: int16(1597), + 313: int16(1598), + 314: int16(1599), + 315: int16(1601), + 316: int16(1603), + 317: int16(1563), + 318: int16(1608), + 319: int16(1605), + 320: int16(1604), + 321: int16(1564), + 322: int16(1566), + 323: int16(1655), + 324: int16(1660), + 325: int16(1578), + 326: int16(1579), + 327: int16(1665), + 328: int16(1586), + 329: int16(1607), + 330: int16(1610), + 331: int16(1642), + 332: int16(1641), + 333: int16(1645), + 334: int16(1646), + 335: int16(1647), + 336: int16(1679), + 337: int16(1688), + 338: int16(1644), + 339: int16(1618), + 340: int16(1619), + 341: int16(1648), + 342: int16(1628), + 343: int16(1659), + 344: int16(1649), + 345: int16(1663), + 346: int16(1650), + 347: int16(1700), + 348: int16(1702), + 349: int16(1612), + 350: int16(1615), + 351: int16(1706), + 352: int16(1708), + 353: int16(1689), + 354: int16(1709), + 355: int16(1712), + 356: int16(1713), + 357: int16(1715), + 358: int16(1691), + 359: int16(1698), + 360: int16(1699), + 361: int16(1701), + 362: int16(1693), + 363: int16(1704), + 364: int16(1707), + 365: int16(1705), + 366: int16(1714), + 367: int16(1703), + 368: int16(1718), + 369: int16(1710), + 370: int16(1720), + 371: int16(1721), + 372: int16(1632), + 373: int16(1634), + 374: int16(1664), + 375: int16(1666), + 376: int16(1729), + 377: int16(1751), + 378: int16(1635), + 379: int16(1636), + 380: int16(1692), + 381: int16(1694), + 382: int16(1716), + 383: int16(1722), + 384: int16(1684), + 385: int16(1763), + 386: int16(1685), + 387: int16(1723), + 388: int16(1724), + 389: int16(1727), + 390: int16(1730), + 391: int16(1768), + 392: int16(1783), + 393: int16(1784), + 394: int16(1793), + 395: int16(1794), + 396: int16(1796), + 397: int16(1683), 398: int16(1686), - 399: int16(1738), - 400: int16(1728), - 401: int16(1733), - 402: int16(1736), - 403: int16(1737), - 404: int16(1740), - 405: int16(1726), - 406: int16(1730), - 407: int16(1742), - 408: int16(1743), - 409: int16(1748), - 410: int16(1753), -} -var _yy_default = [579]uint16{ - 0: uint16(1648), - 1: uint16(1648), - 2: uint16(1648), - 3: uint16(1478), - 4: uint16(1243), - 5: uint16(1354), - 6: uint16(1243), - 7: uint16(1243), - 8: uint16(1243), - 9: uint16(1478), - 10: uint16(1478), - 11: uint16(1478), - 12: uint16(1243), - 13: uint16(1384), - 14: uint16(1384), - 15: uint16(1531), - 16: uint16(1276), - 17: uint16(1243), - 18: uint16(1243), - 19: uint16(1243), - 20: uint16(1243), - 21: uint16(1243), - 22: uint16(1243), - 23: uint16(1243), - 24: uint16(1243), - 25: uint16(1243), - 26: uint16(1243), - 27: uint16(1243), - 28: uint16(1477), - 29: uint16(1243), - 30: uint16(1243), - 31: uint16(1243), - 32: uint16(1243), - 33: uint16(1564), - 34: uint16(1564), - 35: uint16(1243), - 36: uint16(1243), - 37: uint16(1243), - 38: uint16(1243), - 39: uint16(1243), - 40: uint16(1243), - 41: uint16(1243), - 42: uint16(1243), - 43: uint16(1393), - 44: uint16(1243), - 45: uint16(1400), - 46: uint16(1243), - 47: uint16(1243), - 48: uint16(1243), - 49: uint16(1243), - 50: uint16(1243), - 51: uint16(1479), - 52: uint16(1480), - 53: uint16(1243), - 54: uint16(1243), - 55: uint16(1243), - 56: uint16(1530), - 57: uint16(1532), - 58: uint16(1495), - 59: uint16(1407), - 60: uint16(1406), - 61: uint16(1405), - 62: uint16(1404), - 63: uint16(1513), - 64: uint16(1372), - 65: uint16(1398), - 66: uint16(1391), - 67: uint16(1395), - 68: uint16(1474), - 69: uint16(1475), - 70: uint16(1473), - 71: uint16(1626), - 72: uint16(1480), - 73: uint16(1479), - 74: uint16(1243), - 75: uint16(1394), - 76: uint16(1442), - 77: uint16(1458), - 78: uint16(1441), - 79: uint16(1243), - 80: uint16(1243), - 81: uint16(1243), - 82: uint16(1243), - 83: uint16(1243), - 84: uint16(1243), - 85: uint16(1243), - 86: uint16(1243), - 87: uint16(1243), - 88: uint16(1243), - 89: uint16(1243), - 90: uint16(1243), - 91: uint16(1243), - 92: uint16(1243), - 93: uint16(1243), - 94: uint16(1243), - 95: uint16(1243), - 96: uint16(1243), - 97: uint16(1243), - 98: uint16(1243), - 99: uint16(1243), - 100: uint16(1243), - 101: uint16(1243), - 102: uint16(1243), - 103: uint16(1243), - 104: uint16(1243), - 105: uint16(1243), - 106: uint16(1243), - 107: uint16(1243), - 108: uint16(1243), - 109: uint16(1243), - 110: uint16(1243), - 111: uint16(1243), - 112: uint16(1243), - 113: uint16(1243), - 114: uint16(1243), - 115: uint16(1243), - 116: uint16(1243), - 117: uint16(1243), - 118: uint16(1243), - 119: uint16(1243), - 120: uint16(1243), - 121: uint16(1243), - 122: uint16(1243), - 123: uint16(1243), - 124: uint16(1243), - 125: uint16(1243), - 126: uint16(1243), - 127: uint16(1243), - 128: uint16(1243), - 129: uint16(1243), - 130: uint16(1243), - 131: uint16(1450), - 132: uint16(1457), - 133: uint16(1456), - 134: uint16(1455), - 135: uint16(1464), - 136: uint16(1454), - 137: uint16(1451), - 138: uint16(1444), - 139: uint16(1443), - 140: uint16(1445), - 141: uint16(1446), - 142: uint16(1243), - 143: uint16(1243), - 144: uint16(1267), - 145: uint16(1243), - 146: uint16(1243), - 147: uint16(1264), - 148: uint16(1318), - 149: uint16(1243), - 150: uint16(1243), - 151: uint16(1243), - 152: uint16(1243), - 153: uint16(1243), - 154: uint16(1550), - 155: uint16(1549), - 156: uint16(1243), - 157: uint16(1447), - 158: uint16(1243), - 159: uint16(1276), - 160: uint16(1435), - 161: uint16(1434), - 162: uint16(1433), - 163: uint16(1461), - 164: uint16(1448), - 165: uint16(1460), - 166: uint16(1459), - 167: uint16(1538), - 168: uint16(1600), - 169: uint16(1599), - 170: uint16(1496), - 171: uint16(1243), - 172: uint16(1243), - 173: uint16(1243), - 174: uint16(1243), - 175: uint16(1243), - 176: uint16(1243), - 177: uint16(1564), - 178: uint16(1243), - 179: uint16(1243), - 180: uint16(1243), - 181: uint16(1243), - 182: uint16(1243), - 183: uint16(1243), - 184: uint16(1243), - 185: uint16(1243), - 186: uint16(1243), - 187: uint16(1243), - 188: uint16(1243), - 189: uint16(1243), - 190: uint16(1243), - 191: uint16(1243), - 192: uint16(1243), - 193: uint16(1243), - 194: uint16(1243), - 195: uint16(1243), - 196: uint16(1243), - 197: uint16(1243), - 198: uint16(1243), - 199: uint16(1243), - 200: uint16(1243), - 201: uint16(1374), - 202: uint16(1564), - 203: uint16(1564), - 204: uint16(1243), - 205: uint16(1276), - 206: uint16(1564), - 207: uint16(1564), - 208: uint16(1375), - 209: uint16(1375), - 210: uint16(1272), - 211: uint16(1272), - 212: uint16(1378), - 213: uint16(1243), - 214: uint16(1545), - 215: uint16(1345), - 216: uint16(1345), - 217: uint16(1345), - 218: uint16(1345), - 219: uint16(1354), - 220: uint16(1345), - 221: uint16(1243), - 222: uint16(1243), - 223: uint16(1243), - 224: uint16(1243), - 225: uint16(1243), - 226: uint16(1243), - 227: uint16(1243), - 228: uint16(1243), - 229: uint16(1243), - 230: uint16(1243), - 231: uint16(1243), - 232: uint16(1243), - 233: uint16(1243), - 234: uint16(1243), - 235: uint16(1243), - 236: uint16(1535), - 237: uint16(1533), - 238: uint16(1243), - 239: uint16(1243), - 240: uint16(1243), - 241: uint16(1243), - 242: uint16(1243), - 243: uint16(1243), - 244: uint16(1243), - 245: uint16(1243), - 246: uint16(1243), - 247: uint16(1243), - 248: uint16(1243), - 249: uint16(1243), - 250: uint16(1243), - 251: uint16(1243), - 252: uint16(1243), - 253: uint16(1243), - 254: uint16(1243), - 255: uint16(1243), - 256: uint16(1243), - 257: uint16(1243), - 258: uint16(1243), - 259: uint16(1243), - 260: uint16(1243), - 261: uint16(1243), - 262: uint16(1243), - 263: uint16(1243), - 264: uint16(1243), - 265: uint16(1350), - 266: uint16(1243), - 267: uint16(1243), - 268: uint16(1243), - 269: uint16(1243), - 270: uint16(1243), - 271: uint16(1243), - 272: uint16(1243), - 273: uint16(1243), - 274: uint16(1243), - 275: uint16(1243), - 276: uint16(1243), - 277: uint16(1593), - 278: uint16(1243), - 279: uint16(1508), - 280: uint16(1332), - 281: uint16(1350), - 282: uint16(1350), - 283: uint16(1350), - 284: uint16(1350), - 285: uint16(1352), - 286: uint16(1333), - 287: uint16(1331), - 288: uint16(1344), - 289: uint16(1277), - 290: uint16(1250), - 291: uint16(1640), - 292: uint16(1410), - 293: uint16(1399), - 294: uint16(1351), - 295: uint16(1399), - 296: uint16(1637), - 297: uint16(1397), + 399: int16(1690), + 400: int16(1782), + 401: int16(1779), + 402: int16(1780), + 403: int16(1781), + 404: int16(1785), + 405: int16(1788), + 406: int16(1774), + 407: int16(1775), + 408: int16(1786), + 409: int16(1787), + 410: int16(1789), + 411: int16(1798), +} +var _yy_default = [583]uint16{ + 0: uint16(1663), + 1: uint16(1663), + 2: uint16(1663), + 3: uint16(1491), + 4: uint16(1254), + 5: uint16(1367), + 6: uint16(1254), + 7: uint16(1254), + 8: uint16(1254), + 9: uint16(1254), + 10: uint16(1491), + 11: uint16(1491), + 12: uint16(1491), + 13: uint16(1254), + 14: uint16(1254), + 15: uint16(1254), + 16: uint16(1254), + 17: uint16(1254), + 18: uint16(1254), + 19: uint16(1397), + 20: uint16(1397), + 21: uint16(1544), + 22: uint16(1287), + 23: uint16(1254), + 24: uint16(1254), + 25: uint16(1254), + 26: uint16(1254), + 27: uint16(1254), + 28: uint16(1254), + 29: uint16(1254), + 30: uint16(1254), + 31: uint16(1254), + 32: uint16(1254), + 33: uint16(1254), + 34: uint16(1254), + 35: uint16(1490), + 36: uint16(1254), + 37: uint16(1254), + 38: uint16(1254), + 39: uint16(1254), + 40: uint16(1578), + 41: uint16(1578), + 42: uint16(1254), + 43: uint16(1254), + 44: uint16(1254), + 45: uint16(1254), + 46: uint16(1254), + 47: uint16(1563), + 48: uint16(1562), + 49: uint16(1254), + 50: uint16(1254), + 51: uint16(1254), + 52: uint16(1406), + 53: uint16(1254), + 54: uint16(1413), + 55: uint16(1254), + 56: uint16(1254), + 57: uint16(1254), + 58: uint16(1254), + 59: uint16(1254), + 60: uint16(1492), + 61: uint16(1493), + 62: uint16(1254), + 63: uint16(1254), + 64: uint16(1254), + 65: uint16(1543), + 66: uint16(1545), + 67: uint16(1508), + 68: uint16(1420), + 69: uint16(1419), + 70: uint16(1418), + 71: uint16(1417), + 72: uint16(1526), + 73: uint16(1385), + 74: uint16(1411), + 75: uint16(1404), + 76: uint16(1408), + 77: uint16(1487), + 78: uint16(1488), + 79: uint16(1486), + 80: uint16(1641), + 81: uint16(1493), + 82: uint16(1492), + 83: uint16(1254), + 84: uint16(1407), + 85: uint16(1455), + 86: uint16(1471), + 87: uint16(1454), + 88: uint16(1254), + 89: uint16(1254), + 90: uint16(1254), + 91: uint16(1254), + 92: uint16(1254), + 93: uint16(1254), + 94: uint16(1254), + 95: uint16(1254), + 96: uint16(1254), + 97: uint16(1254), + 98: uint16(1254), + 99: uint16(1254), + 100: uint16(1254), + 101: uint16(1254), + 102: uint16(1254), + 103: uint16(1254), + 104: uint16(1254), + 105: uint16(1254), + 106: uint16(1254), + 107: uint16(1254), + 108: uint16(1254), + 109: uint16(1254), + 110: uint16(1254), + 111: uint16(1254), + 112: uint16(1254), + 113: uint16(1254), + 114: uint16(1254), + 115: uint16(1254), + 116: uint16(1254), + 117: uint16(1254), + 118: uint16(1254), + 119: uint16(1254), + 120: uint16(1254), + 121: uint16(1254), + 122: uint16(1254), + 123: uint16(1254), + 124: uint16(1254), + 125: uint16(1254), + 126: uint16(1254), + 127: uint16(1254), + 128: uint16(1254), + 129: uint16(1254), + 130: uint16(1254), + 131: uint16(1254), + 132: uint16(1254), + 133: uint16(1254), + 134: uint16(1254), + 135: uint16(1254), + 136: uint16(1254), + 137: uint16(1254), + 138: uint16(1254), + 139: uint16(1254), + 140: uint16(1463), + 141: uint16(1470), + 142: uint16(1469), + 143: uint16(1468), + 144: uint16(1477), + 145: uint16(1467), + 146: uint16(1464), + 147: uint16(1457), + 148: uint16(1456), + 149: uint16(1458), + 150: uint16(1459), + 151: uint16(1278), + 152: uint16(1254), + 153: uint16(1275), + 154: uint16(1329), + 155: uint16(1254), + 156: uint16(1254), + 157: uint16(1254), + 158: uint16(1254), + 159: uint16(1254), + 160: uint16(1460), + 161: uint16(1287), + 162: uint16(1448), + 163: uint16(1447), + 164: uint16(1446), + 165: uint16(1254), + 166: uint16(1474), + 167: uint16(1461), + 168: uint16(1473), + 169: uint16(1472), + 170: uint16(1551), + 171: uint16(1615), + 172: uint16(1614), + 173: uint16(1509), + 174: uint16(1254), + 175: uint16(1254), + 176: uint16(1254), + 177: uint16(1254), + 178: uint16(1254), + 179: uint16(1254), + 180: uint16(1578), + 181: uint16(1254), + 182: uint16(1254), + 183: uint16(1254), + 184: uint16(1254), + 185: uint16(1254), + 186: uint16(1254), + 187: uint16(1254), + 188: uint16(1254), + 189: uint16(1254), + 190: uint16(1254), + 191: uint16(1254), + 192: uint16(1254), + 193: uint16(1254), + 194: uint16(1254), + 195: uint16(1254), + 196: uint16(1254), + 197: uint16(1254), + 198: uint16(1254), + 199: uint16(1254), + 200: uint16(1254), + 201: uint16(1254), + 202: uint16(1254), + 203: uint16(1387), + 204: uint16(1578), + 205: uint16(1578), + 206: uint16(1254), + 207: uint16(1287), + 208: uint16(1578), + 209: uint16(1578), + 210: uint16(1388), + 211: uint16(1388), + 212: uint16(1283), + 213: uint16(1283), + 214: uint16(1391), + 215: uint16(1558), + 216: uint16(1358), + 217: uint16(1358), + 218: uint16(1358), + 219: uint16(1358), + 220: uint16(1367), + 221: uint16(1358), + 222: uint16(1254), + 223: uint16(1254), + 224: uint16(1254), + 225: uint16(1254), + 226: uint16(1254), + 227: uint16(1254), + 228: uint16(1254), + 229: uint16(1254), + 230: uint16(1254), + 231: uint16(1254), + 232: uint16(1254), + 233: uint16(1254), + 234: uint16(1254), + 235: uint16(1254), + 236: uint16(1254), + 237: uint16(1548), + 238: uint16(1546), + 239: uint16(1254), + 240: uint16(1254), + 241: uint16(1254), + 242: uint16(1254), + 243: uint16(1254), + 244: uint16(1254), + 245: uint16(1254), + 246: uint16(1254), + 247: uint16(1254), + 248: uint16(1254), + 249: uint16(1254), + 250: uint16(1254), + 251: uint16(1254), + 252: uint16(1254), + 253: uint16(1254), + 254: uint16(1254), + 255: uint16(1254), + 256: uint16(1254), + 257: uint16(1254), + 258: uint16(1254), + 259: uint16(1254), + 260: uint16(1254), + 261: uint16(1254), + 262: uint16(1254), + 263: uint16(1254), + 264: uint16(1254), + 265: uint16(1254), + 266: uint16(1363), + 267: uint16(1254), + 268: uint16(1254), + 269: uint16(1254), + 270: uint16(1254), + 271: uint16(1254), + 272: uint16(1254), + 273: uint16(1254), + 274: uint16(1254), + 275: uint16(1254), + 276: uint16(1254), + 277: uint16(1254), + 278: uint16(1608), + 279: uint16(1254), + 280: uint16(1521), + 281: uint16(1343), + 282: uint16(1363), + 283: uint16(1363), + 284: uint16(1363), + 285: uint16(1363), + 286: uint16(1365), + 287: uint16(1344), + 288: uint16(1342), + 289: uint16(1357), + 290: uint16(1288), + 291: uint16(1261), + 292: uint16(1655), + 293: uint16(1423), + 294: uint16(1412), + 295: uint16(1364), + 296: uint16(1412), + 297: uint16(1652), 298: uint16(1410), - 299: uint16(1410), - 300: uint16(1397), + 299: uint16(1423), + 300: uint16(1423), 301: uint16(1410), - 302: uint16(1351), - 303: uint16(1637), - 304: uint16(1293), - 305: uint16(1615), - 306: uint16(1288), - 307: uint16(1384), - 308: uint16(1384), - 309: uint16(1384), - 310: uint16(1374), - 311: uint16(1374), - 312: uint16(1374), - 313: uint16(1374), - 314: uint16(1378), - 315: uint16(1378), - 316: uint16(1476), - 317: uint16(1351), - 318: uint16(1344), - 319: uint16(1243), - 320: uint16(1640), - 321: uint16(1640), - 322: uint16(1360), - 323: uint16(1360), - 324: uint16(1639), - 325: uint16(1639), - 326: uint16(1360), - 327: uint16(1496), - 328: uint16(1623), - 329: uint16(1419), - 330: uint16(1321), - 331: uint16(1327), - 332: uint16(1327), - 333: uint16(1327), - 334: uint16(1327), - 335: uint16(1360), - 336: uint16(1261), - 337: uint16(1397), - 338: uint16(1623), - 339: uint16(1623), - 340: uint16(1397), - 341: uint16(1419), - 342: uint16(1321), - 343: uint16(1397), - 344: uint16(1321), - 345: uint16(1397), - 346: uint16(1360), - 347: uint16(1261), - 348: uint16(1512), - 349: uint16(1634), - 350: uint16(1360), - 351: uint16(1261), - 352: uint16(1486), - 353: uint16(1360), - 354: uint16(1261), - 355: uint16(1360), - 356: uint16(1261), - 357: uint16(1486), - 358: uint16(1319), - 359: uint16(1319), - 360: uint16(1319), - 361: uint16(1308), - 362: uint16(1243), - 363: uint16(1243), - 364: uint16(1486), - 365: uint16(1319), - 366: uint16(1293), - 367: uint16(1319), - 368: uint16(1308), + 302: uint16(1423), + 303: uint16(1364), + 304: uint16(1652), + 305: uint16(1304), + 306: uint16(1630), + 307: uint16(1299), + 308: uint16(1397), + 309: uint16(1397), + 310: uint16(1397), + 311: uint16(1387), + 312: uint16(1387), + 313: uint16(1387), + 314: uint16(1387), + 315: uint16(1391), + 316: uint16(1391), + 317: uint16(1489), + 318: uint16(1364), + 319: uint16(1357), + 320: uint16(1254), + 321: uint16(1655), + 322: uint16(1655), + 323: uint16(1373), + 324: uint16(1373), + 325: uint16(1654), + 326: uint16(1654), + 327: uint16(1373), + 328: uint16(1509), + 329: uint16(1638), + 330: uint16(1432), + 331: uint16(1332), + 332: uint16(1338), + 333: uint16(1338), + 334: uint16(1338), + 335: uint16(1338), + 336: uint16(1373), + 337: uint16(1272), + 338: uint16(1410), + 339: uint16(1638), + 340: uint16(1638), + 341: uint16(1410), + 342: uint16(1432), + 343: uint16(1332), + 344: uint16(1410), + 345: uint16(1332), + 346: uint16(1410), + 347: uint16(1373), + 348: uint16(1272), + 349: uint16(1525), + 350: uint16(1649), + 351: uint16(1373), + 352: uint16(1272), + 353: uint16(1499), + 354: uint16(1373), + 355: uint16(1272), + 356: uint16(1373), + 357: uint16(1272), + 358: uint16(1499), + 359: uint16(1330), + 360: uint16(1330), + 361: uint16(1330), + 362: uint16(1319), + 363: uint16(1254), + 364: uint16(1254), + 365: uint16(1499), + 366: uint16(1330), + 367: uint16(1304), + 368: uint16(1330), 369: uint16(1319), - 370: uint16(1319), - 371: uint16(1582), - 372: uint16(1243), - 373: uint16(1490), - 374: uint16(1490), - 375: uint16(1486), - 376: uint16(1360), - 377: uint16(1574), - 378: uint16(1574), - 379: uint16(1387), - 380: uint16(1387), - 381: uint16(1392), - 382: uint16(1378), - 383: uint16(1481), - 384: uint16(1360), - 385: uint16(1243), - 386: uint16(1392), - 387: uint16(1390), - 388: uint16(1388), - 389: uint16(1397), - 390: uint16(1311), - 391: uint16(1596), - 392: uint16(1596), - 393: uint16(1592), - 394: uint16(1592), - 395: uint16(1592), - 396: uint16(1645), - 397: uint16(1645), - 398: uint16(1545), - 399: uint16(1608), - 400: uint16(1276), - 401: uint16(1276), - 402: uint16(1276), - 403: uint16(1276), - 404: uint16(1608), - 405: uint16(1295), - 406: uint16(1295), - 407: uint16(1277), - 408: uint16(1277), - 409: uint16(1276), - 410: uint16(1608), - 411: uint16(1243), - 412: uint16(1243), - 413: uint16(1243), - 414: uint16(1243), - 415: uint16(1243), - 416: uint16(1243), - 417: uint16(1603), - 418: uint16(1243), - 419: uint16(1540), - 420: uint16(1497), - 421: uint16(1364), - 422: uint16(1243), - 423: uint16(1243), - 424: uint16(1243), - 425: uint16(1243), - 426: uint16(1243), - 427: uint16(1243), - 428: uint16(1243), - 429: uint16(1243), - 430: uint16(1243), - 431: uint16(1243), - 432: uint16(1243), - 433: uint16(1243), - 434: uint16(1243), - 435: uint16(1243), - 436: uint16(1243), - 437: uint16(1243), - 438: uint16(1551), - 439: uint16(1243), - 440: uint16(1243), - 441: uint16(1243), - 442: uint16(1243), - 443: uint16(1243), - 444: uint16(1243), - 445: uint16(1243), - 446: uint16(1243), - 447: uint16(1243), - 448: uint16(1243), - 449: uint16(1424), - 450: uint16(1243), - 451: uint16(1246), - 452: uint16(1542), - 453: uint16(1243), - 454: uint16(1243), - 455: uint16(1243), - 456: uint16(1243), - 457: uint16(1243), - 458: uint16(1243), - 459: uint16(1243), - 460: uint16(1243), - 461: uint16(1401), - 462: uint16(1402), - 463: uint16(1365), - 464: uint16(1243), - 465: uint16(1243), - 466: uint16(1243), - 467: uint16(1243), - 468: uint16(1243), - 469: uint16(1243), - 470: uint16(1243), - 471: uint16(1416), - 472: uint16(1243), - 473: uint16(1243), - 474: uint16(1243), - 475: uint16(1411), - 476: uint16(1243), - 477: uint16(1243), - 478: uint16(1243), - 479: uint16(1243), - 480: uint16(1243), - 481: uint16(1243), - 482: uint16(1243), - 483: uint16(1243), - 484: uint16(1636), - 485: uint16(1243), - 486: uint16(1243), - 487: uint16(1243), - 488: uint16(1243), - 489: uint16(1243), - 490: uint16(1243), - 491: uint16(1511), - 492: uint16(1510), - 493: uint16(1243), - 494: uint16(1243), - 495: uint16(1362), - 496: uint16(1243), - 497: uint16(1243), - 498: uint16(1243), - 499: uint16(1243), - 500: uint16(1243), - 501: uint16(1243), - 502: uint16(1243), - 503: uint16(1243), - 504: uint16(1243), - 505: uint16(1243), - 506: uint16(1243), - 507: uint16(1243), - 508: uint16(1243), - 509: uint16(1291), - 510: uint16(1243), - 511: uint16(1243), - 512: uint16(1243), - 513: uint16(1243), - 514: uint16(1243), - 515: uint16(1243), - 516: uint16(1243), - 517: uint16(1243), - 518: uint16(1243), - 519: uint16(1243), - 520: uint16(1243), - 521: uint16(1243), - 522: uint16(1243), - 523: uint16(1243), - 524: uint16(1243), - 525: uint16(1243), - 526: uint16(1243), - 527: uint16(1243), - 528: uint16(1243), - 529: uint16(1243), - 530: uint16(1243), - 531: uint16(1243), - 532: uint16(1243), - 533: uint16(1389), - 534: uint16(1243), - 535: uint16(1243), - 536: uint16(1243), - 537: uint16(1243), - 538: uint16(1243), - 539: uint16(1243), - 540: uint16(1243), - 541: uint16(1243), - 542: uint16(1243), - 543: uint16(1243), - 544: uint16(1243), - 545: uint16(1243), - 546: uint16(1243), - 547: uint16(1243), - 548: uint16(1579), - 549: uint16(1379), - 550: uint16(1243), - 551: uint16(1243), - 552: uint16(1243), - 553: uint16(1243), - 554: uint16(1627), - 555: uint16(1243), - 556: uint16(1243), - 557: uint16(1243), - 558: uint16(1243), - 559: uint16(1243), - 560: uint16(1243), - 561: uint16(1243), - 562: uint16(1243), - 563: uint16(1243), - 564: uint16(1243), - 565: uint16(1243), - 566: uint16(1243), - 567: uint16(1243), - 568: uint16(1243), - 569: uint16(1619), - 570: uint16(1335), - 571: uint16(1425), - 572: uint16(1243), - 573: uint16(1428), - 574: uint16(1265), - 575: uint16(1243), - 576: uint16(1255), - 577: uint16(1243), - 578: uint16(1243), + 370: uint16(1330), + 371: uint16(1330), + 372: uint16(1596), + 373: uint16(1254), + 374: uint16(1503), + 375: uint16(1503), + 376: uint16(1499), + 377: uint16(1373), + 378: uint16(1588), + 379: uint16(1588), + 380: uint16(1400), + 381: uint16(1400), + 382: uint16(1405), + 383: uint16(1391), + 384: uint16(1494), + 385: uint16(1373), + 386: uint16(1254), + 387: uint16(1405), + 388: uint16(1403), + 389: uint16(1401), + 390: uint16(1410), + 391: uint16(1322), + 392: uint16(1611), + 393: uint16(1611), + 394: uint16(1607), + 395: uint16(1607), + 396: uint16(1607), + 397: uint16(1660), + 398: uint16(1660), + 399: uint16(1558), + 400: uint16(1623), + 401: uint16(1287), + 402: uint16(1287), + 403: uint16(1287), + 404: uint16(1287), + 405: uint16(1623), + 406: uint16(1306), + 407: uint16(1306), + 408: uint16(1288), + 409: uint16(1288), + 410: uint16(1287), + 411: uint16(1623), + 412: uint16(1254), + 413: uint16(1254), + 414: uint16(1254), + 415: uint16(1254), + 416: uint16(1254), + 417: uint16(1254), + 418: uint16(1618), + 419: uint16(1254), + 420: uint16(1553), + 421: uint16(1510), + 422: uint16(1377), + 423: uint16(1254), + 424: uint16(1254), + 425: uint16(1254), + 426: uint16(1254), + 427: uint16(1254), + 428: uint16(1254), + 429: uint16(1254), + 430: uint16(1254), + 431: uint16(1254), + 432: uint16(1254), + 433: uint16(1254), + 434: uint16(1254), + 435: uint16(1254), + 436: uint16(1254), + 437: uint16(1254), + 438: uint16(1254), + 439: uint16(1564), + 440: uint16(1254), + 441: uint16(1254), + 442: uint16(1254), + 443: uint16(1254), + 444: uint16(1254), + 445: uint16(1254), + 446: uint16(1254), + 447: uint16(1254), + 448: uint16(1254), + 449: uint16(1254), + 450: uint16(1254), + 451: uint16(1437), + 452: uint16(1254), + 453: uint16(1257), + 454: uint16(1555), + 455: uint16(1254), + 456: uint16(1254), + 457: uint16(1254), + 458: uint16(1254), + 459: uint16(1254), + 460: uint16(1254), + 461: uint16(1254), + 462: uint16(1254), + 463: uint16(1414), + 464: uint16(1415), + 465: uint16(1378), + 466: uint16(1254), + 467: uint16(1254), + 468: uint16(1254), + 469: uint16(1254), + 470: uint16(1254), + 471: uint16(1254), + 472: uint16(1254), + 473: uint16(1429), + 474: uint16(1254), + 475: uint16(1254), + 476: uint16(1254), + 477: uint16(1424), + 478: uint16(1254), + 479: uint16(1254), + 480: uint16(1254), + 481: uint16(1254), + 482: uint16(1254), + 483: uint16(1254), + 484: uint16(1254), + 485: uint16(1254), + 486: uint16(1651), + 487: uint16(1254), + 488: uint16(1254), + 489: uint16(1254), + 490: uint16(1254), + 491: uint16(1254), + 492: uint16(1254), + 493: uint16(1524), + 494: uint16(1523), + 495: uint16(1254), + 496: uint16(1254), + 497: uint16(1375), + 498: uint16(1254), + 499: uint16(1254), + 500: uint16(1254), + 501: uint16(1254), + 502: uint16(1254), + 503: uint16(1254), + 504: uint16(1254), + 505: uint16(1254), + 506: uint16(1254), + 507: uint16(1254), + 508: uint16(1254), + 509: uint16(1254), + 510: uint16(1254), + 511: uint16(1302), + 512: uint16(1254), + 513: uint16(1254), + 514: uint16(1254), + 515: uint16(1254), + 516: uint16(1254), + 517: uint16(1254), + 518: uint16(1254), + 519: uint16(1254), + 520: uint16(1254), + 521: uint16(1254), + 522: uint16(1254), + 523: uint16(1254), + 524: uint16(1254), + 525: uint16(1254), + 526: uint16(1254), + 527: uint16(1254), + 528: uint16(1254), + 529: uint16(1254), + 530: uint16(1254), + 531: uint16(1254), + 532: uint16(1254), + 533: uint16(1254), + 534: uint16(1254), + 535: uint16(1402), + 536: uint16(1254), + 537: uint16(1254), + 538: uint16(1254), + 539: uint16(1254), + 540: uint16(1254), + 541: uint16(1254), + 542: uint16(1254), + 543: uint16(1254), + 544: uint16(1254), + 545: uint16(1254), + 546: uint16(1254), + 547: uint16(1254), + 548: uint16(1254), + 549: uint16(1254), + 550: uint16(1593), + 551: uint16(1392), + 552: uint16(1254), + 553: uint16(1254), + 554: uint16(1254), + 555: uint16(1254), + 556: uint16(1642), + 557: uint16(1254), + 558: uint16(1254), + 559: uint16(1254), + 560: uint16(1254), + 561: uint16(1352), + 562: uint16(1254), + 563: uint16(1254), + 564: uint16(1254), + 565: uint16(1254), + 566: uint16(1254), + 567: uint16(1254), + 568: uint16(1254), + 569: uint16(1254), + 570: uint16(1254), + 571: uint16(1254), + 572: uint16(1254), + 573: uint16(1634), + 574: uint16(1346), + 575: uint16(1438), + 576: uint16(1254), + 577: uint16(1441), + 578: uint16(1276), + 579: uint16(1254), + 580: uint16(1266), + 581: uint16(1254), + 582: uint16(1254), } /********** End of lemon-generated parsing tables *****************************/ @@ -158274,7 +159830,7 @@ var _yy_default = [579]uint16{ // ** to revert to identifiers if they keyword does not apply in the context where // ** it appears. // */ -var _yyFallback = [185]uint16{ +var _yyFallback = [186]uint16{ 2: uint16(59), 3: uint16(59), 4: uint16(59), @@ -158387,8 +159943,9 @@ type yyStackEntry = TyyStackEntry type TyyParser1 = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser1 = TyyParser1 @@ -158396,14 +159953,46 @@ type yyParser1 = TyyParser1 type TyyParser = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser = TyyParser /* #include */ +// C documentation +// +// /* +// ** Try to increase the size of the parser stack. Return the number +// ** of errors. Return 0 on success. +// */ +func _yyGrowStack(tls *libc.TLS, p uintptr) (r int32) { + var idx, newSize, oldSize int32 + var pNew uintptr + _, _, _, _ = idx, newSize, oldSize, pNew + oldSize = int32(1) + int32((int64((*TyyParser)(unsafe.Pointer(p)).FyystackEnd)-int64((*TyyParser)(unsafe.Pointer(p)).Fyystack))/24) + newSize = oldSize*int32(2) + int32(100) + idx = int32((int64((*TyyParser)(unsafe.Pointer(p)).Fyytos) - int64((*TyyParser)(unsafe.Pointer(p)).Fyystack)) / 24) + if (*TyyParser)(unsafe.Pointer(p)).Fyystack == p+32 { + pNew = _parserStackRealloc(tls, uintptr(0), uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + libc.Xmemcpy(tls, pNew, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(oldSize)*uint64(24)) + } else { + pNew = _parserStackRealloc(tls, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + } + (*TyyParser)(unsafe.Pointer(p)).Fyystack = pNew + (*TyyParser)(unsafe.Pointer(p)).Fyytos = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(idx)*24 + (*TyyParser)(unsafe.Pointer(p)).FyystackEnd = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(newSize-int32(1))*24 + return 0 +} + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -158419,10 +160008,11 @@ func _sqlite3ParserInit(tls *libc.TLS, yypRawParser uintptr, pParse uintptr) { _ = yypParser yypParser = yypRawParser (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = yypParser + 16 - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fstateno = uint16(0) - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fmajor = uint16(0) - (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = yypParser + 16 + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack = yypParser + 32 + (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fstateno = uint16(0) + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fmajor = uint16(0) } // C documentation @@ -158450,103 +160040,105 @@ func _yy_destructor(tls *libc.TLS, yypParser uintptr, yymajor uint16, yypminor u ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case int32(204): /* select */ + case int32(205): /* select */ + fallthrough + case int32(240): /* selectnowith */ fallthrough - case int32(239): /* selectnowith */ + case int32(241): /* oneselect */ fallthrough - case int32(240): /* oneselect */ + case int32(253): /* values */ fallthrough - case int32(252): /* values */ + case int32(255): /* mvalues */ _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(216): /* term */ + case int32(217): /* term */ fallthrough - case int32(217): /* expr */ + case int32(218): /* expr */ fallthrough - case int32(246): /* where_opt */ + case int32(247): /* where_opt */ fallthrough - case int32(248): /* having_opt */ + case int32(249): /* having_opt */ fallthrough - case int32(267): /* where_opt_ret */ + case int32(269): /* where_opt_ret */ fallthrough - case int32(278): /* case_operand */ + case int32(280): /* case_operand */ fallthrough - case int32(280): /* case_else */ + case int32(282): /* case_else */ fallthrough - case int32(283): /* vinto */ + case int32(285): /* vinto */ fallthrough - case int32(290): /* when_clause */ + case int32(292): /* when_clause */ fallthrough - case int32(295): /* key_opt */ + case int32(297): /* key_opt */ fallthrough - case int32(311): /* filter_clause */ + case int32(314): /* filter_clause */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(221): /* eidlist_opt */ + case int32(222): /* eidlist_opt */ fallthrough - case int32(231): /* sortlist */ + case int32(232): /* sortlist */ fallthrough - case int32(232): /* eidlist */ + case int32(233): /* eidlist */ fallthrough - case int32(244): /* selcollist */ + case int32(245): /* selcollist */ fallthrough - case int32(247): /* groupby_opt */ + case int32(248): /* groupby_opt */ fallthrough - case int32(249): /* orderby_opt */ + case int32(250): /* orderby_opt */ fallthrough - case int32(253): /* nexprlist */ + case int32(254): /* nexprlist */ fallthrough - case int32(254): /* sclp */ + case int32(256): /* sclp */ fallthrough - case int32(261): /* exprlist */ + case int32(263): /* exprlist */ fallthrough - case int32(268): /* setlist */ + case int32(270): /* setlist */ fallthrough - case int32(277): /* paren_exprlist */ + case int32(279): /* paren_exprlist */ fallthrough - case int32(279): /* case_exprlist */ + case int32(281): /* case_exprlist */ fallthrough - case int32(310): /* part_opt */ + case int32(313): /* part_opt */ _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(238): /* fullname */ + case int32(239): /* fullname */ fallthrough - case int32(245): /* from */ + case int32(246): /* from */ fallthrough - case int32(256): /* seltablist */ + case int32(258): /* seltablist */ fallthrough - case int32(257): /* stl_prefix */ + case int32(259): /* stl_prefix */ fallthrough - case int32(262): /* xfullname */ + case int32(264): /* xfullname */ _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(241): /* wqlist */ + case int32(242): /* wqlist */ _sqlite3WithDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(251): /* window_clause */ + case int32(252): /* window_clause */ fallthrough - case int32(306): /* windowdefn_list */ + case int32(309): /* windowdefn_list */ _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(263): /* idlist */ + case int32(265): /* idlist */ fallthrough - case int32(270): /* idlist_opt */ + case int32(272): /* idlist_opt */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(273): /* filter_over */ + case int32(275): /* filter_over */ fallthrough - case int32(307): /* windowdefn */ + case int32(310): /* windowdefn */ fallthrough - case int32(308): /* window */ + case int32(311): /* window */ fallthrough - case int32(309): /* frame_opt */ + case int32(312): /* frame_opt */ fallthrough - case int32(312): /* over_clause */ + case int32(315): /* over_clause */ _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(286): /* trigger_cmd_list */ + case int32(288): /* trigger_cmd_list */ fallthrough - case int32(291): /* trigger_cmd */ + case int32(293): /* trigger_cmd */ _sqlite3DeleteTriggerStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(288): /* trigger_event */ + case int32(290): /* trigger_event */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TTrigEvent)(unsafe.Pointer(yypminor))).Fb) - case int32(314): /* frame_bound */ + case int32(317): /* frame_bound */ fallthrough - case int32(315): /* frame_bound_s */ + case int32(318): /* frame_bound_s */ fallthrough - case int32(316): /* frame_bound_e */ + case int32(319): /* frame_bound_e */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TFrameBound)(unsafe.Pointer(yypminor))).FpExpr) break /********* End destructor definitions *****************************************/ @@ -158582,11 +160174,20 @@ func _yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var pParser, yytos uintptr + _, _ = pParser, yytos pParser = p - for (*TyyParser)(unsafe.Pointer(pParser)).Fyytos > pParser+16 { - _yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling yy_pop_parser_stack() for each + ** element left in the stack */ + yytos = (*TyyParser)(unsafe.Pointer(pParser)).Fyytos + for yytos > (*TyyParser)(unsafe.Pointer(pParser)).Fyystack { + if int32((*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor) >= int32(YY_MIN_DSTRCTR) { + _yy_destructor(tls, pParser, (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor, yytos+8) + } + yytos -= 24 + } + if (*TyyParser)(unsafe.Pointer(pParser)).Fyystack != pParser+32 { + Xsqlite3_free(tls, (*TyyParser)(unsafe.Pointer(pParser)).Fyystack) } } @@ -158681,13 +160282,13 @@ func _yyStackOverflow(tls *libc.TLS, yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse - for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > yypParser+16 { + for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack { _yy_pop_parser_stack(tls, yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23345, 0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) /******** End %stack_overflow code ********************************************/ /* Suppress warning about unused %extra_argument var */ (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse @@ -158706,15 +160307,19 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint var yytos uintptr _ = yytos (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos += 24 - if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 - _yyStackOverflow(tls, yypParser) - return + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + if yytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { + if _yyGrowStack(tls, yypParser) != 0 { + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 + _yyStackOverflow(tls, yypParser) + return + } + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + _ = libc.Int32FromInt32(0) } if int32(yyNewState) > int32(YY_MAX_SHIFT) { yyNewState = uint16(int32(yyNewState) + (libc.Int32FromInt32(YY_MIN_REDUCE) - libc.Int32FromInt32(YY_MIN_SHIFTREDUCE))) } - yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos (*TyyStackEntry)(unsafe.Pointer(yytos)).Fstateno = yyNewState (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor = yyMajor *(*TToken)(unsafe.Pointer(yytos + 8)) = yyMinor @@ -158724,419 +160329,423 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint // // /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side // ** of that rule */ -var _yyRuleInfoLhs = [405]uint16{ - 0: uint16(189), - 1: uint16(189), - 2: uint16(188), - 3: uint16(190), - 4: uint16(191), - 5: uint16(191), - 6: uint16(191), - 7: uint16(191), - 8: uint16(190), - 9: uint16(190), - 10: uint16(190), - 11: uint16(190), - 12: uint16(190), - 13: uint16(195), - 14: uint16(197), - 15: uint16(199), - 16: uint16(199), - 17: uint16(198), - 18: uint16(198), - 19: uint16(196), - 20: uint16(196), - 21: uint16(203), - 22: uint16(203), - 23: uint16(205), - 24: uint16(205), - 25: uint16(206), - 26: uint16(208), - 27: uint16(208), - 28: uint16(208), - 29: uint16(209), - 30: uint16(213), - 31: uint16(214), - 32: uint16(215), - 33: uint16(215), - 34: uint16(215), - 35: uint16(215), - 36: uint16(215), - 37: uint16(215), - 38: uint16(215), - 39: uint16(215), - 40: uint16(215), - 41: uint16(215), - 42: uint16(215), - 43: uint16(215), - 44: uint16(215), - 45: uint16(224), - 46: uint16(224), - 47: uint16(220), - 48: uint16(220), - 49: uint16(222), - 50: uint16(222), - 51: uint16(225), - 52: uint16(225), - 53: uint16(225), - 54: uint16(225), - 55: uint16(226), - 56: uint16(226), - 57: uint16(226), - 58: uint16(226), - 59: uint16(226), - 60: uint16(223), - 61: uint16(223), - 62: uint16(227), - 63: uint16(227), - 64: uint16(227), - 65: uint16(202), - 66: uint16(229), - 67: uint16(230), - 68: uint16(230), - 69: uint16(230), - 70: uint16(230), - 71: uint16(230), - 72: uint16(233), - 73: uint16(218), - 74: uint16(218), - 75: uint16(234), - 76: uint16(234), - 77: uint16(235), - 78: uint16(235), - 79: uint16(190), - 80: uint16(237), - 81: uint16(237), - 82: uint16(190), - 83: uint16(190), - 84: uint16(190), - 85: uint16(204), - 86: uint16(204), - 87: uint16(204), - 88: uint16(239), - 89: uint16(242), - 90: uint16(242), - 91: uint16(242), - 92: uint16(240), - 93: uint16(240), - 94: uint16(252), - 95: uint16(252), - 96: uint16(243), - 97: uint16(243), - 98: uint16(243), - 99: uint16(254), +var _yyRuleInfoLhs = [409]uint16{ + 0: uint16(190), + 1: uint16(190), + 2: uint16(189), + 3: uint16(191), + 4: uint16(192), + 5: uint16(192), + 6: uint16(192), + 7: uint16(192), + 8: uint16(191), + 9: uint16(191), + 10: uint16(191), + 11: uint16(191), + 12: uint16(191), + 13: uint16(196), + 14: uint16(198), + 15: uint16(200), + 16: uint16(200), + 17: uint16(199), + 18: uint16(199), + 19: uint16(197), + 20: uint16(197), + 21: uint16(204), + 22: uint16(204), + 23: uint16(206), + 24: uint16(206), + 25: uint16(207), + 26: uint16(209), + 27: uint16(209), + 28: uint16(209), + 29: uint16(210), + 30: uint16(214), + 31: uint16(215), + 32: uint16(216), + 33: uint16(216), + 34: uint16(216), + 35: uint16(216), + 36: uint16(216), + 37: uint16(216), + 38: uint16(216), + 39: uint16(216), + 40: uint16(216), + 41: uint16(216), + 42: uint16(216), + 43: uint16(216), + 44: uint16(216), + 45: uint16(225), + 46: uint16(225), + 47: uint16(221), + 48: uint16(221), + 49: uint16(223), + 50: uint16(223), + 51: uint16(226), + 52: uint16(226), + 53: uint16(226), + 54: uint16(226), + 55: uint16(227), + 56: uint16(227), + 57: uint16(227), + 58: uint16(227), + 59: uint16(227), + 60: uint16(224), + 61: uint16(224), + 62: uint16(228), + 63: uint16(228), + 64: uint16(228), + 65: uint16(203), + 66: uint16(230), + 67: uint16(231), + 68: uint16(231), + 69: uint16(231), + 70: uint16(231), + 71: uint16(231), + 72: uint16(234), + 73: uint16(219), + 74: uint16(219), + 75: uint16(235), + 76: uint16(235), + 77: uint16(236), + 78: uint16(236), + 79: uint16(191), + 80: uint16(238), + 81: uint16(238), + 82: uint16(191), + 83: uint16(191), + 84: uint16(191), + 85: uint16(205), + 86: uint16(205), + 87: uint16(205), + 88: uint16(240), + 89: uint16(243), + 90: uint16(243), + 91: uint16(243), + 92: uint16(241), + 93: uint16(241), + 94: uint16(253), + 95: uint16(241), + 96: uint16(255), + 97: uint16(255), + 98: uint16(244), + 99: uint16(244), 100: uint16(244), - 101: uint16(244), - 102: uint16(244), - 103: uint16(255), - 104: uint16(255), - 105: uint16(245), - 106: uint16(245), - 107: uint16(257), - 108: uint16(257), - 109: uint16(256), - 110: uint16(256), - 111: uint16(256), - 112: uint16(256), - 113: uint16(256), - 114: uint16(200), - 115: uint16(200), - 116: uint16(238), - 117: uint16(238), - 118: uint16(262), - 119: uint16(262), - 120: uint16(262), - 121: uint16(262), - 122: uint16(258), - 123: uint16(258), - 124: uint16(258), - 125: uint16(258), - 126: uint16(259), - 127: uint16(259), - 128: uint16(259), - 129: uint16(264), - 130: uint16(260), - 131: uint16(260), - 132: uint16(249), - 133: uint16(249), - 134: uint16(231), - 135: uint16(231), - 136: uint16(219), - 137: uint16(219), - 138: uint16(219), - 139: uint16(265), - 140: uint16(265), - 141: uint16(265), - 142: uint16(247), - 143: uint16(247), + 101: uint16(256), + 102: uint16(245), + 103: uint16(245), + 104: uint16(245), + 105: uint16(257), + 106: uint16(257), + 107: uint16(246), + 108: uint16(246), + 109: uint16(259), + 110: uint16(259), + 111: uint16(258), + 112: uint16(258), + 113: uint16(258), + 114: uint16(258), + 115: uint16(258), + 116: uint16(201), + 117: uint16(201), + 118: uint16(239), + 119: uint16(239), + 120: uint16(264), + 121: uint16(264), + 122: uint16(264), + 123: uint16(264), + 124: uint16(260), + 125: uint16(260), + 126: uint16(260), + 127: uint16(260), + 128: uint16(261), + 129: uint16(261), + 130: uint16(261), + 131: uint16(266), + 132: uint16(262), + 133: uint16(262), + 134: uint16(250), + 135: uint16(250), + 136: uint16(232), + 137: uint16(232), + 138: uint16(220), + 139: uint16(220), + 140: uint16(220), + 141: uint16(267), + 142: uint16(267), + 143: uint16(267), 144: uint16(248), 145: uint16(248), - 146: uint16(250), - 147: uint16(250), - 148: uint16(250), - 149: uint16(250), - 150: uint16(190), - 151: uint16(246), - 152: uint16(246), - 153: uint16(267), - 154: uint16(267), - 155: uint16(267), - 156: uint16(267), - 157: uint16(190), - 158: uint16(268), - 159: uint16(268), - 160: uint16(268), - 161: uint16(268), - 162: uint16(190), - 163: uint16(190), - 164: uint16(271), - 165: uint16(271), - 166: uint16(271), - 167: uint16(271), - 168: uint16(271), - 169: uint16(271), - 170: uint16(272), - 171: uint16(269), - 172: uint16(269), - 173: uint16(270), - 174: uint16(270), - 175: uint16(263), - 176: uint16(263), - 177: uint16(217), - 178: uint16(217), - 179: uint16(217), - 180: uint16(217), - 181: uint16(216), - 182: uint16(216), - 183: uint16(216), + 146: uint16(249), + 147: uint16(249), + 148: uint16(251), + 149: uint16(251), + 150: uint16(251), + 151: uint16(251), + 152: uint16(191), + 153: uint16(247), + 154: uint16(247), + 155: uint16(269), + 156: uint16(269), + 157: uint16(269), + 158: uint16(269), + 159: uint16(191), + 160: uint16(270), + 161: uint16(270), + 162: uint16(270), + 163: uint16(270), + 164: uint16(191), + 165: uint16(191), + 166: uint16(273), + 167: uint16(273), + 168: uint16(273), + 169: uint16(273), + 170: uint16(273), + 171: uint16(273), + 172: uint16(274), + 173: uint16(271), + 174: uint16(271), + 175: uint16(272), + 176: uint16(272), + 177: uint16(265), + 178: uint16(265), + 179: uint16(218), + 180: uint16(218), + 181: uint16(218), + 182: uint16(218), + 183: uint16(217), 184: uint16(217), 185: uint16(217), - 186: uint16(217), - 187: uint16(217), - 188: uint16(217), - 189: uint16(217), - 190: uint16(217), - 191: uint16(217), - 192: uint16(217), - 193: uint16(216), - 194: uint16(217), + 186: uint16(218), + 187: uint16(218), + 188: uint16(218), + 189: uint16(218), + 190: uint16(218), + 191: uint16(218), + 192: uint16(218), + 193: uint16(218), + 194: uint16(218), 195: uint16(217), - 196: uint16(217), - 197: uint16(217), - 198: uint16(217), - 199: uint16(217), - 200: uint16(217), - 201: uint16(217), - 202: uint16(217), - 203: uint16(274), - 204: uint16(217), - 205: uint16(217), - 206: uint16(217), - 207: uint16(217), - 208: uint16(217), - 209: uint16(217), - 210: uint16(217), - 211: uint16(217), - 212: uint16(217), - 213: uint16(217), - 214: uint16(217), - 215: uint16(217), - 216: uint16(275), - 217: uint16(275), - 218: uint16(217), - 219: uint16(276), - 220: uint16(276), - 221: uint16(217), - 222: uint16(217), - 223: uint16(217), - 224: uint16(217), - 225: uint16(217), - 226: uint16(217), - 227: uint16(279), - 228: uint16(279), - 229: uint16(280), - 230: uint16(280), - 231: uint16(278), - 232: uint16(261), - 233: uint16(253), - 234: uint16(253), - 235: uint16(277), - 236: uint16(277), - 237: uint16(190), - 238: uint16(281), - 239: uint16(281), - 240: uint16(221), - 241: uint16(221), - 242: uint16(232), - 243: uint16(232), - 244: uint16(282), - 245: uint16(282), - 246: uint16(190), - 247: uint16(190), - 248: uint16(190), - 249: uint16(283), - 250: uint16(283), - 251: uint16(190), - 252: uint16(190), - 253: uint16(190), - 254: uint16(190), - 255: uint16(190), - 256: uint16(211), - 257: uint16(212), - 258: uint16(190), - 259: uint16(285), - 260: uint16(287), + 196: uint16(218), + 197: uint16(218), + 198: uint16(218), + 199: uint16(218), + 200: uint16(218), + 201: uint16(218), + 202: uint16(218), + 203: uint16(218), + 204: uint16(218), + 205: uint16(276), + 206: uint16(218), + 207: uint16(218), + 208: uint16(218), + 209: uint16(218), + 210: uint16(218), + 211: uint16(218), + 212: uint16(218), + 213: uint16(218), + 214: uint16(218), + 215: uint16(218), + 216: uint16(218), + 217: uint16(218), + 218: uint16(277), + 219: uint16(277), + 220: uint16(218), + 221: uint16(278), + 222: uint16(278), + 223: uint16(218), + 224: uint16(218), + 225: uint16(218), + 226: uint16(218), + 227: uint16(218), + 228: uint16(218), + 229: uint16(281), + 230: uint16(281), + 231: uint16(282), + 232: uint16(282), + 233: uint16(280), + 234: uint16(263), + 235: uint16(254), + 236: uint16(254), + 237: uint16(279), + 238: uint16(279), + 239: uint16(191), + 240: uint16(283), + 241: uint16(283), + 242: uint16(222), + 243: uint16(222), + 244: uint16(233), + 245: uint16(233), + 246: uint16(284), + 247: uint16(284), + 248: uint16(191), + 249: uint16(191), + 250: uint16(191), + 251: uint16(285), + 252: uint16(285), + 253: uint16(191), + 254: uint16(191), + 255: uint16(191), + 256: uint16(191), + 257: uint16(191), + 258: uint16(212), + 259: uint16(213), + 260: uint16(191), 261: uint16(287), - 262: uint16(287), - 263: uint16(288), - 264: uint16(288), - 265: uint16(288), + 262: uint16(289), + 263: uint16(289), + 264: uint16(289), + 265: uint16(290), 266: uint16(290), 267: uint16(290), - 268: uint16(286), - 269: uint16(286), - 270: uint16(292), - 271: uint16(293), - 272: uint16(293), - 273: uint16(291), - 274: uint16(291), - 275: uint16(291), - 276: uint16(291), - 277: uint16(217), - 278: uint16(217), - 279: uint16(236), - 280: uint16(236), - 281: uint16(236), - 282: uint16(190), - 283: uint16(190), - 284: uint16(190), - 285: uint16(295), - 286: uint16(295), - 287: uint16(190), - 288: uint16(190), - 289: uint16(190), - 290: uint16(190), - 291: uint16(190), - 292: uint16(190), - 293: uint16(190), - 294: uint16(296), - 295: uint16(190), - 296: uint16(190), - 297: uint16(190), - 298: uint16(298), - 299: uint16(300), - 300: uint16(301), - 301: uint16(301), - 302: uint16(302), - 303: uint16(266), - 304: uint16(266), - 305: uint16(305), - 306: uint16(305), - 307: uint16(305), - 308: uint16(304), - 309: uint16(241), - 310: uint16(241), - 311: uint16(306), - 312: uint16(307), - 313: uint16(308), - 314: uint16(308), - 315: uint16(308), - 316: uint16(308), - 317: uint16(308), - 318: uint16(309), - 319: uint16(309), - 320: uint16(309), - 321: uint16(313), - 322: uint16(315), - 323: uint16(315), + 268: uint16(292), + 269: uint16(292), + 270: uint16(288), + 271: uint16(288), + 272: uint16(294), + 273: uint16(295), + 274: uint16(295), + 275: uint16(293), + 276: uint16(293), + 277: uint16(293), + 278: uint16(293), + 279: uint16(218), + 280: uint16(218), + 281: uint16(237), + 282: uint16(237), + 283: uint16(237), + 284: uint16(191), + 285: uint16(191), + 286: uint16(191), + 287: uint16(297), + 288: uint16(297), + 289: uint16(191), + 290: uint16(191), + 291: uint16(191), + 292: uint16(191), + 293: uint16(191), + 294: uint16(191), + 295: uint16(191), + 296: uint16(298), + 297: uint16(191), + 298: uint16(191), + 299: uint16(191), + 300: uint16(300), + 301: uint16(302), + 302: uint16(303), + 303: uint16(303), + 304: uint16(304), + 305: uint16(268), + 306: uint16(268), + 307: uint16(307), + 308: uint16(307), + 309: uint16(307), + 310: uint16(306), + 311: uint16(308), + 312: uint16(242), + 313: uint16(242), + 314: uint16(309), + 315: uint16(310), + 316: uint16(311), + 317: uint16(311), + 318: uint16(311), + 319: uint16(311), + 320: uint16(311), + 321: uint16(312), + 322: uint16(312), + 323: uint16(312), 324: uint16(316), - 325: uint16(316), - 326: uint16(314), - 327: uint16(314), - 328: uint16(317), + 325: uint16(318), + 326: uint16(318), + 327: uint16(319), + 328: uint16(319), 329: uint16(317), - 330: uint16(318), - 331: uint16(318), - 332: uint16(318), - 333: uint16(251), - 334: uint16(273), - 335: uint16(273), - 336: uint16(273), - 337: uint16(312), - 338: uint16(312), - 339: uint16(311), - 340: uint16(185), - 341: uint16(186), - 342: uint16(186), - 343: uint16(187), - 344: uint16(187), + 330: uint16(317), + 331: uint16(320), + 332: uint16(320), + 333: uint16(321), + 334: uint16(321), + 335: uint16(321), + 336: uint16(252), + 337: uint16(275), + 338: uint16(275), + 339: uint16(275), + 340: uint16(315), + 341: uint16(315), + 342: uint16(314), + 343: uint16(217), + 344: uint16(186), 345: uint16(187), - 346: uint16(192), - 347: uint16(192), - 348: uint16(192), - 349: uint16(194), - 350: uint16(194), - 351: uint16(190), - 352: uint16(203), - 353: uint16(201), - 354: uint16(201), - 355: uint16(193), - 356: uint16(193), - 357: uint16(208), - 358: uint16(209), - 359: uint16(210), - 360: uint16(210), - 361: uint16(207), - 362: uint16(207), - 363: uint16(215), - 364: uint16(215), - 365: uint16(215), - 366: uint16(202), - 367: uint16(228), - 368: uint16(228), - 369: uint16(229), - 370: uint16(233), - 371: uint16(235), - 372: uint16(239), - 373: uint16(240), - 374: uint16(254), - 375: uint16(255), - 376: uint16(264), - 377: uint16(272), - 378: uint16(217), - 379: uint16(274), - 380: uint16(278), - 381: uint16(261), - 382: uint16(284), - 383: uint16(284), - 384: uint16(284), - 385: uint16(284), - 386: uint16(284), - 387: uint16(211), - 388: uint16(289), - 389: uint16(289), - 390: uint16(292), - 391: uint16(293), - 392: uint16(294), - 393: uint16(294), - 394: uint16(297), - 395: uint16(297), - 396: uint16(299), - 397: uint16(299), - 398: uint16(300), - 399: uint16(303), - 400: uint16(303), - 401: uint16(303), - 402: uint16(266), - 403: uint16(306), - 404: uint16(308), + 346: uint16(187), + 347: uint16(188), + 348: uint16(188), + 349: uint16(188), + 350: uint16(193), + 351: uint16(193), + 352: uint16(193), + 353: uint16(195), + 354: uint16(195), + 355: uint16(191), + 356: uint16(204), + 357: uint16(202), + 358: uint16(202), + 359: uint16(194), + 360: uint16(194), + 361: uint16(209), + 362: uint16(210), + 363: uint16(211), + 364: uint16(211), + 365: uint16(208), + 366: uint16(208), + 367: uint16(216), + 368: uint16(216), + 369: uint16(216), + 370: uint16(203), + 371: uint16(229), + 372: uint16(229), + 373: uint16(230), + 374: uint16(234), + 375: uint16(236), + 376: uint16(240), + 377: uint16(241), + 378: uint16(256), + 379: uint16(257), + 380: uint16(266), + 381: uint16(274), + 382: uint16(218), + 383: uint16(276), + 384: uint16(280), + 385: uint16(263), + 386: uint16(286), + 387: uint16(286), + 388: uint16(286), + 389: uint16(286), + 390: uint16(286), + 391: uint16(212), + 392: uint16(291), + 393: uint16(291), + 394: uint16(294), + 395: uint16(295), + 396: uint16(296), + 397: uint16(296), + 398: uint16(299), + 399: uint16(299), + 400: uint16(301), + 401: uint16(301), + 402: uint16(302), + 403: uint16(305), + 404: uint16(305), + 405: uint16(305), + 406: uint16(268), + 407: uint16(309), + 408: uint16(311), } // C documentation // // /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number // ** of symbols on the right-hand side of that rule. */ -var _yyRuleInfoNRhs = [405]int8{ +var _yyRuleInfoNRhs = [409]int8{ 0: int8(-int32(1)), 1: int8(-int32(3)), 2: int8(-int32(1)), @@ -159217,273 +160826,277 @@ var _yyRuleInfoNRhs = [405]int8{ 92: int8(-int32(9)), 93: int8(-int32(10)), 94: int8(-int32(4)), - 95: int8(-int32(5)), - 96: int8(-int32(1)), - 97: int8(-int32(1)), - 100: int8(-int32(5)), - 101: int8(-int32(3)), + 95: int8(-int32(1)), + 96: int8(-int32(5)), + 97: int8(-int32(5)), + 98: int8(-int32(1)), + 99: int8(-int32(1)), 102: int8(-int32(5)), - 103: int8(-int32(2)), - 106: int8(-int32(2)), - 107: int8(-int32(2)), - 109: int8(-int32(5)), - 110: int8(-int32(6)), - 111: int8(-int32(8)), + 103: int8(-int32(3)), + 104: int8(-int32(5)), + 105: int8(-int32(2)), + 108: int8(-int32(2)), + 109: int8(-int32(2)), + 111: int8(-int32(5)), 112: int8(-int32(6)), - 113: int8(-int32(6)), - 115: int8(-int32(2)), - 116: int8(-int32(1)), - 117: int8(-int32(3)), + 113: int8(-int32(8)), + 114: int8(-int32(6)), + 115: int8(-int32(6)), + 117: int8(-int32(2)), 118: int8(-int32(1)), 119: int8(-int32(3)), - 120: int8(-int32(5)), + 120: int8(-int32(1)), 121: int8(-int32(3)), - 122: int8(-int32(1)), - 123: int8(-int32(2)), - 124: int8(-int32(3)), - 125: int8(-int32(4)), - 126: int8(-int32(2)), + 122: int8(-int32(5)), + 123: int8(-int32(3)), + 124: int8(-int32(1)), + 125: int8(-int32(2)), + 126: int8(-int32(3)), 127: int8(-int32(4)), - 130: int8(-int32(3)), - 131: int8(-int32(2)), - 133: int8(-int32(3)), - 134: int8(-int32(5)), + 128: int8(-int32(2)), + 129: int8(-int32(4)), + 132: int8(-int32(3)), + 133: int8(-int32(2)), 135: int8(-int32(3)), - 136: int8(-int32(1)), - 137: int8(-int32(1)), - 139: int8(-int32(2)), - 140: int8(-int32(2)), - 143: int8(-int32(3)), - 145: int8(-int32(2)), + 136: int8(-int32(5)), + 137: int8(-int32(3)), + 138: int8(-int32(1)), + 139: int8(-int32(1)), + 141: int8(-int32(2)), + 142: int8(-int32(2)), + 145: int8(-int32(3)), 147: int8(-int32(2)), - 148: int8(-int32(4)), - 149: int8(-int32(4)), - 150: int8(-int32(6)), - 152: int8(-int32(2)), + 149: int8(-int32(2)), + 150: int8(-int32(4)), + 151: int8(-int32(4)), + 152: int8(-int32(6)), 154: int8(-int32(2)), - 155: int8(-int32(2)), - 156: int8(-int32(4)), - 157: int8(-int32(9)), - 158: int8(-int32(5)), - 159: int8(-int32(7)), - 160: int8(-int32(3)), - 161: int8(-int32(5)), - 162: int8(-int32(7)), - 163: int8(-int32(8)), - 165: int8(-int32(2)), - 166: int8(-int32(12)), - 167: int8(-int32(9)), - 168: int8(-int32(5)), - 169: int8(-int32(8)), - 170: int8(-int32(2)), - 171: int8(-int32(2)), - 172: int8(-int32(1)), - 174: int8(-int32(3)), - 175: int8(-int32(3)), - 176: int8(-int32(1)), + 156: int8(-int32(2)), + 157: int8(-int32(2)), + 158: int8(-int32(4)), + 159: int8(-int32(9)), + 160: int8(-int32(5)), + 161: int8(-int32(7)), + 162: int8(-int32(3)), + 163: int8(-int32(5)), + 164: int8(-int32(7)), + 165: int8(-int32(8)), + 167: int8(-int32(2)), + 168: int8(-int32(12)), + 169: int8(-int32(9)), + 170: int8(-int32(5)), + 171: int8(-int32(8)), + 172: int8(-int32(2)), + 173: int8(-int32(2)), + 174: int8(-int32(1)), + 176: int8(-int32(3)), 177: int8(-int32(3)), 178: int8(-int32(1)), 179: int8(-int32(3)), - 180: int8(-int32(5)), - 181: int8(-int32(1)), - 182: int8(-int32(1)), + 180: int8(-int32(1)), + 181: int8(-int32(3)), + 182: int8(-int32(5)), 183: int8(-int32(1)), 184: int8(-int32(1)), - 185: int8(-int32(3)), - 186: int8(-int32(6)), - 187: int8(-int32(5)), - 188: int8(-int32(8)), - 189: int8(-int32(4)), - 190: int8(-int32(6)), - 191: int8(-int32(9)), - 192: int8(-int32(5)), - 193: int8(-int32(1)), + 185: int8(-int32(1)), + 186: int8(-int32(1)), + 187: int8(-int32(3)), + 188: int8(-int32(6)), + 189: int8(-int32(5)), + 190: int8(-int32(8)), + 191: int8(-int32(4)), + 192: int8(-int32(6)), + 193: int8(-int32(9)), 194: int8(-int32(5)), - 195: int8(-int32(3)), - 196: int8(-int32(3)), + 195: int8(-int32(1)), + 196: int8(-int32(5)), 197: int8(-int32(3)), 198: int8(-int32(3)), 199: int8(-int32(3)), 200: int8(-int32(3)), 201: int8(-int32(3)), 202: int8(-int32(3)), - 203: int8(-int32(2)), + 203: int8(-int32(3)), 204: int8(-int32(3)), - 205: int8(-int32(5)), - 206: int8(-int32(2)), - 207: int8(-int32(3)), - 208: int8(-int32(3)), - 209: int8(-int32(4)), - 210: int8(-int32(6)), - 211: int8(-int32(5)), - 212: int8(-int32(2)), - 213: int8(-int32(2)), + 205: int8(-int32(2)), + 206: int8(-int32(3)), + 207: int8(-int32(5)), + 208: int8(-int32(2)), + 209: int8(-int32(3)), + 210: int8(-int32(3)), + 211: int8(-int32(4)), + 212: int8(-int32(6)), + 213: int8(-int32(5)), 214: int8(-int32(2)), - 215: int8(-int32(3)), - 216: int8(-int32(1)), - 217: int8(-int32(2)), - 218: int8(-int32(5)), - 219: int8(-int32(1)), - 220: int8(-int32(2)), - 221: int8(-int32(5)), - 222: int8(-int32(3)), + 215: int8(-int32(2)), + 216: int8(-int32(2)), + 217: int8(-int32(3)), + 218: int8(-int32(1)), + 219: int8(-int32(2)), + 220: int8(-int32(5)), + 221: int8(-int32(1)), + 222: int8(-int32(2)), 223: int8(-int32(5)), - 224: int8(-int32(5)), - 225: int8(-int32(4)), + 224: int8(-int32(3)), + 225: int8(-int32(5)), 226: int8(-int32(5)), - 227: int8(-int32(5)), - 228: int8(-int32(4)), - 229: int8(-int32(2)), - 233: int8(-int32(3)), - 234: int8(-int32(1)), - 236: int8(-int32(3)), - 237: int8(-int32(12)), - 238: int8(-int32(1)), - 241: int8(-int32(3)), - 242: int8(-int32(5)), + 227: int8(-int32(4)), + 228: int8(-int32(5)), + 229: int8(-int32(5)), + 230: int8(-int32(4)), + 231: int8(-int32(2)), + 235: int8(-int32(3)), + 236: int8(-int32(1)), + 238: int8(-int32(3)), + 239: int8(-int32(12)), + 240: int8(-int32(1)), 243: int8(-int32(3)), - 245: int8(-int32(2)), - 246: int8(-int32(4)), + 244: int8(-int32(5)), + 245: int8(-int32(3)), 247: int8(-int32(2)), - 248: int8(-int32(3)), + 248: int8(-int32(4)), 249: int8(-int32(2)), - 251: int8(-int32(3)), - 252: int8(-int32(5)), - 253: int8(-int32(6)), + 250: int8(-int32(3)), + 251: int8(-int32(2)), + 253: int8(-int32(3)), 254: int8(-int32(5)), 255: int8(-int32(6)), - 256: int8(-int32(2)), - 257: int8(-int32(2)), - 258: int8(-int32(5)), - 259: int8(-int32(11)), - 260: int8(-int32(1)), - 261: int8(-int32(2)), - 263: int8(-int32(1)), - 264: int8(-int32(1)), - 265: int8(-int32(3)), - 267: int8(-int32(2)), - 268: int8(-int32(3)), + 256: int8(-int32(5)), + 257: int8(-int32(6)), + 258: int8(-int32(2)), + 259: int8(-int32(2)), + 260: int8(-int32(5)), + 261: int8(-int32(11)), + 262: int8(-int32(1)), + 263: int8(-int32(2)), + 265: int8(-int32(1)), + 266: int8(-int32(1)), + 267: int8(-int32(3)), 269: int8(-int32(2)), 270: int8(-int32(3)), - 271: int8(-int32(3)), - 272: int8(-int32(2)), - 273: int8(-int32(9)), - 274: int8(-int32(8)), - 275: int8(-int32(6)), - 276: int8(-int32(3)), - 277: int8(-int32(4)), - 278: int8(-int32(6)), - 279: int8(-int32(1)), - 280: int8(-int32(1)), + 271: int8(-int32(2)), + 272: int8(-int32(3)), + 273: int8(-int32(3)), + 274: int8(-int32(2)), + 275: int8(-int32(9)), + 276: int8(-int32(8)), + 277: int8(-int32(6)), + 278: int8(-int32(3)), + 279: int8(-int32(4)), + 280: int8(-int32(6)), 281: int8(-int32(1)), - 282: int8(-int32(4)), - 283: int8(-int32(6)), - 284: int8(-int32(3)), - 286: int8(-int32(2)), - 287: int8(-int32(1)), - 288: int8(-int32(3)), + 282: int8(-int32(1)), + 283: int8(-int32(1)), + 284: int8(-int32(4)), + 285: int8(-int32(6)), + 286: int8(-int32(3)), + 288: int8(-int32(2)), 289: int8(-int32(1)), 290: int8(-int32(3)), - 291: int8(-int32(6)), - 292: int8(-int32(7)), + 291: int8(-int32(1)), + 292: int8(-int32(3)), 293: int8(-int32(6)), - 294: int8(-int32(1)), - 295: int8(-int32(8)), + 294: int8(-int32(7)), + 295: int8(-int32(6)), 296: int8(-int32(1)), - 297: int8(-int32(4)), - 298: int8(-int32(8)), - 300: int8(-int32(1)), - 301: int8(-int32(3)), + 297: int8(-int32(8)), + 298: int8(-int32(1)), + 299: int8(-int32(4)), + 300: int8(-int32(8)), 302: int8(-int32(1)), - 303: int8(-int32(2)), - 304: int8(-int32(3)), - 305: int8(-int32(1)), - 306: int8(-int32(2)), - 307: int8(-int32(3)), - 308: int8(-int32(6)), - 309: int8(-int32(1)), - 310: int8(-int32(3)), - 311: int8(-int32(3)), - 312: int8(-int32(5)), - 313: int8(-int32(5)), - 314: int8(-int32(6)), - 315: int8(-int32(4)), + 303: int8(-int32(3)), + 304: int8(-int32(1)), + 305: int8(-int32(2)), + 306: int8(-int32(3)), + 307: int8(-int32(1)), + 308: int8(-int32(2)), + 309: int8(-int32(3)), + 310: int8(-int32(6)), + 311: int8(-int32(1)), + 312: int8(-int32(1)), + 313: int8(-int32(3)), + 314: int8(-int32(3)), + 315: int8(-int32(5)), 316: int8(-int32(5)), - 317: int8(-int32(2)), - 319: int8(-int32(3)), - 320: int8(-int32(6)), - 321: int8(-int32(1)), - 322: int8(-int32(1)), - 323: int8(-int32(2)), + 317: int8(-int32(6)), + 318: int8(-int32(4)), + 319: int8(-int32(5)), + 320: int8(-int32(2)), + 322: int8(-int32(3)), + 323: int8(-int32(6)), 324: int8(-int32(1)), - 325: int8(-int32(2)), + 325: int8(-int32(1)), 326: int8(-int32(2)), - 327: int8(-int32(2)), + 327: int8(-int32(1)), + 328: int8(-int32(2)), 329: int8(-int32(2)), 330: int8(-int32(2)), - 331: int8(-int32(2)), - 332: int8(-int32(1)), + 332: int8(-int32(2)), 333: int8(-int32(2)), 334: int8(-int32(2)), 335: int8(-int32(1)), - 336: int8(-int32(1)), - 337: int8(-int32(4)), - 338: int8(-int32(2)), - 339: int8(-int32(5)), - 340: int8(-int32(1)), + 336: int8(-int32(2)), + 337: int8(-int32(2)), + 338: int8(-int32(1)), + 339: int8(-int32(1)), + 340: int8(-int32(4)), 341: int8(-int32(2)), - 342: int8(-int32(1)), + 342: int8(-int32(5)), 343: int8(-int32(1)), - 344: int8(-int32(2)), - 345: int8(-int32(3)), + 344: int8(-int32(1)), + 345: int8(-int32(2)), + 346: int8(-int32(1)), 347: int8(-int32(1)), 348: int8(-int32(2)), - 349: int8(-int32(1)), - 351: int8(-int32(2)), - 352: int8(-int32(1)), - 353: int8(-int32(4)), - 354: int8(-int32(2)), - 355: int8(-int32(1)), + 349: int8(-int32(3)), + 351: int8(-int32(1)), + 352: int8(-int32(2)), + 353: int8(-int32(1)), + 355: int8(-int32(2)), 356: int8(-int32(1)), - 357: int8(-int32(1)), - 358: int8(-int32(1)), + 357: int8(-int32(4)), + 358: int8(-int32(2)), 359: int8(-int32(1)), 360: int8(-int32(1)), - 361: int8(-int32(2)), - 363: int8(-int32(2)), - 364: int8(-int32(4)), + 361: int8(-int32(1)), + 362: int8(-int32(1)), + 363: int8(-int32(1)), + 364: int8(-int32(1)), 365: int8(-int32(2)), - 366: int8(-int32(2)), - 367: int8(-int32(3)), - 368: int8(-int32(1)), - 370: int8(-int32(1)), - 371: int8(-int32(1)), + 367: int8(-int32(2)), + 368: int8(-int32(4)), + 369: int8(-int32(2)), + 370: int8(-int32(2)), + 371: int8(-int32(3)), 372: int8(-int32(1)), - 373: int8(-int32(1)), - 374: int8(-int32(2)), + 374: int8(-int32(1)), 375: int8(-int32(1)), 376: int8(-int32(1)), - 378: int8(-int32(1)), + 377: int8(-int32(1)), + 378: int8(-int32(2)), 379: int8(-int32(1)), 380: int8(-int32(1)), - 381: int8(-int32(1)), 382: int8(-int32(1)), 383: int8(-int32(1)), 384: int8(-int32(1)), 385: int8(-int32(1)), 386: int8(-int32(1)), 387: int8(-int32(1)), - 389: int8(-int32(3)), + 388: int8(-int32(1)), + 389: int8(-int32(1)), 390: int8(-int32(1)), - 392: int8(-int32(1)), - 395: int8(-int32(1)), + 391: int8(-int32(1)), + 393: int8(-int32(3)), + 394: int8(-int32(1)), 396: int8(-int32(1)), - 397: int8(-int32(3)), - 398: int8(-int32(2)), - 400: int8(-int32(4)), - 401: int8(-int32(2)), - 403: int8(-int32(1)), - 404: int8(-int32(1)), + 399: int8(-int32(1)), + 400: int8(-int32(1)), + 401: int8(-int32(3)), + 402: int8(-int32(2)), + 404: int8(-int32(4)), + 405: int8(-int32(2)), + 407: int8(-int32(1)), + 408: int8(-int32(1)), } // C documentation @@ -159501,18 +161114,19 @@ var _yyRuleInfoNRhs = [405]int8{ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int32, yyLookaheadToken TToken, pParse uintptr) (r uint16) { bp := tls.Alloc(144) defer tls.Free(144) - var bNot, bNot1, nExpr, yygoto, yysize, v344 int32 + var bNot, bNot1, nExpr, yygoto, yysize int32 var n Tu32 - var p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v343, v345, v346, v347, v348 uintptr + var op Tu8 + var p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v347, v348, v349, v350, v351 uintptr var yyact uint16 - var v349 TToken + var v352 TToken var _ /* all at bp+104 */ TToken var _ /* as at bp+72 */ TToken var _ /* dest at bp+16 */ TSelectDest var _ /* t at bp+88 */ TToken var _ /* x at bp+56 */ TToken var _ /* yylhsminor at bp+0 */ TYYMINORTYPE - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v343, v344, v345, v346, v347, v348, v349 /* Amount to pop the stack */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, op, p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v347, v348, v349, v350, v351, v352 /* Amount to pop the stack */ _ = yyLookahead _ = yyLookaheadToken yymsp = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos @@ -159533,7 +161147,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _7 case uint32(7): goto _8 - case uint32(321): + case uint32(324): goto _9 case uint32(9): goto _10 @@ -159561,9 +161175,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _21 case uint32(81): goto _22 - case uint32(98): + case uint32(100): goto _23 - case uint32(244): + case uint32(246): goto _24 case uint32(16): goto _25 @@ -159587,7 +161201,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _34 case uint32(26): goto _35 - case uint32(104): + case uint32(106): goto _36 case uint32(27): goto _37 @@ -159661,17 +161275,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _71 case uint32(61): goto _72 - case uint32(171): + case uint32(173): goto _73 case uint32(80): goto _74 case uint32(63): goto _75 - case uint32(217): + case uint32(219): goto _76 - case uint32(220): + case uint32(222): goto _77 - case uint32(245): + case uint32(247): goto _78 case uint32(64): goto _79 @@ -159693,7 +161307,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _87 case uint32(77): goto _88 - case uint32(172): + case uint32(174): goto _89 case uint32(78): goto _90 @@ -159727,47 +161341,47 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _104 case uint32(95): goto _105 - case uint32(96): - goto _106 case uint32(97): + goto _106 + case uint32(96): goto _107 - case uint32(132): + case uint32(98): goto _108 case uint32(99): goto _109 - case uint32(142): + case uint32(134): goto _110 - case uint32(232): + case uint32(101): goto _111 - case uint32(235): + case uint32(144): goto _112 - case uint32(240): + case uint32(234): goto _113 - case uint32(100): + case uint32(237): goto _114 - case uint32(101): + case uint32(242): goto _115 case uint32(102): goto _116 - case uint32(115): - goto _117 case uint32(103): + goto _117 + case uint32(104): goto _118 - case uint32(256): + case uint32(117): goto _119 - case uint32(257): + case uint32(105): goto _120 - case uint32(108): + case uint32(258): goto _121 - case uint32(105): + case uint32(259): goto _122 - case uint32(106): + case uint32(110): goto _123 case uint32(107): goto _124 - case uint32(109): + case uint32(108): goto _125 - case uint32(110): + case uint32(109): goto _126 case uint32(111): goto _127 @@ -159775,13 +161389,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _128 case uint32(113): goto _129 - case uint32(129): - goto _130 case uint32(114): + goto _130 + case uint32(115): goto _131 - case uint32(116): + case uint32(131): goto _132 - case uint32(117): + case uint32(116): goto _133 case uint32(118): goto _134 @@ -159805,15 +161419,15 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _143 case uint32(128): goto _144 - case uint32(130): + case uint32(129): goto _145 - case uint32(131): + case uint32(130): goto _146 - case uint32(143): + case uint32(132): goto _147 case uint32(133): goto _148 - case uint32(134): + case uint32(145): goto _149 case uint32(135): goto _150 @@ -159821,49 +161435,49 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _151 case uint32(137): goto _152 - case uint32(141): - goto _153 case uint32(138): - goto _154 + goto _153 case uint32(139): + goto _154 + case uint32(143): goto _155 case uint32(140): goto _156 - case uint32(146): + case uint32(141): goto _157 - case uint32(144): + case uint32(142): goto _158 - case uint32(151): + case uint32(148): goto _159 - case uint32(153): + case uint32(146): goto _160 - case uint32(230): + case uint32(153): goto _161 - case uint32(231): + case uint32(155): goto _162 - case uint32(250): + case uint32(232): goto _163 - case uint32(152): + case uint32(233): goto _164 - case uint32(145): + case uint32(252): goto _165 case uint32(154): goto _166 - case uint32(229): + case uint32(147): goto _167 - case uint32(249): + case uint32(156): goto _168 - case uint32(147): + case uint32(231): goto _169 - case uint32(148): + case uint32(251): goto _170 case uint32(149): goto _171 case uint32(150): goto _172 - case uint32(155): + case uint32(151): goto _173 - case uint32(156): + case uint32(152): goto _174 case uint32(157): goto _175 @@ -159893,9 +161507,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _187 case uint32(170): goto _188 - case uint32(173): + case uint32(171): goto _189 - case uint32(174): + case uint32(172): goto _190 case uint32(175): goto _191 @@ -159909,13 +161523,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _195 case uint32(180): goto _196 - case uint32(182): - goto _197 case uint32(181): + goto _197 + case uint32(182): goto _198 - case uint32(183): - goto _199 case uint32(184): + goto _199 + case uint32(183): goto _200 case uint32(185): goto _201 @@ -159939,13 +161553,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _210 case uint32(195): goto _211 - case uint32(197): - goto _212 case uint32(196): + goto _212 + case uint32(197): goto _213 - case uint32(198): - goto _214 case uint32(199): + goto _214 + case uint32(198): goto _215 case uint32(200): goto _216 @@ -159971,23 +161585,23 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _226 case uint32(211): goto _227 - case uint32(213): - goto _228 case uint32(212): + goto _228 + case uint32(213): goto _229 - case uint32(214): - goto _230 case uint32(215): + goto _230 + case uint32(214): goto _231 - case uint32(219): - goto _232 case uint32(216): + goto _232 + case uint32(217): goto _233 - case uint32(218): - goto _234 case uint32(221): + goto _234 + case uint32(218): goto _235 - case uint32(222): + case uint32(220): goto _236 case uint32(223): goto _237 @@ -160001,35 +161615,35 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _241 case uint32(228): goto _242 - case uint32(233): + case uint32(229): goto _243 - case uint32(234): + case uint32(230): goto _244 - case uint32(241): + case uint32(235): goto _245 case uint32(236): goto _246 - case uint32(237): + case uint32(243): goto _247 - case uint32(280): - goto _248 case uint32(238): - goto _249 + goto _248 case uint32(239): + goto _249 + case uint32(282): goto _250 - case uint32(242): + case uint32(240): goto _251 - case uint32(243): + case uint32(241): goto _252 - case uint32(246): + case uint32(244): goto _253 - case uint32(247): + case uint32(245): goto _254 case uint32(248): goto _255 - case uint32(251): + case uint32(249): goto _256 - case uint32(252): + case uint32(250): goto _257 case uint32(253): goto _258 @@ -160037,9 +161651,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _259 case uint32(255): goto _260 - case uint32(258): + case uint32(256): goto _261 - case uint32(259): + case uint32(257): goto _262 case uint32(260): goto _263 @@ -160047,21 +161661,21 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _264 case uint32(262): goto _265 - case uint32(264): - goto _266 case uint32(263): + goto _266 + case uint32(264): goto _267 - case uint32(265): + case uint32(266): goto _268 - case uint32(285): + case uint32(265): goto _269 - case uint32(266): + case uint32(267): goto _270 - case uint32(286): + case uint32(287): goto _271 - case uint32(267): - goto _272 case uint32(268): + goto _272 + case uint32(288): goto _273 case uint32(269): goto _274 @@ -160085,17 +161699,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _283 case uint32(279): goto _284 - case uint32(281): + case uint32(280): goto _285 - case uint32(282): + case uint32(281): goto _286 case uint32(283): goto _287 case uint32(284): goto _288 - case uint32(287): + case uint32(285): goto _289 - case uint32(288): + case uint32(286): goto _290 case uint32(289): goto _291 @@ -160119,19 +161733,19 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _300 case uint32(299): goto _301 - case uint32(301): - goto _302 case uint32(300): + goto _302 + case uint32(301): goto _303 - case uint32(302): + case uint32(303): goto _304 - case uint32(304): + case uint32(302): goto _305 - case uint32(303): + case uint32(304): goto _306 - case uint32(305): - goto _307 case uint32(306): + goto _307 + case uint32(305): goto _308 case uint32(307): goto _309 @@ -160161,31 +161775,31 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _321 case uint32(320): goto _322 - case uint32(324): + case uint32(321): goto _323 case uint32(322): goto _324 - case uint32(325): - goto _325 case uint32(323): - goto _326 + goto _325 case uint32(327): + goto _326 + case uint32(325): goto _327 - case uint32(326): - goto _328 case uint32(328): + goto _328 + case uint32(326): goto _329 - case uint32(329): + case uint32(330): goto _330 - case uint32(331): + case uint32(329): goto _331 - case uint32(330): + case uint32(331): goto _332 case uint32(332): goto _333 - case uint32(333): - goto _334 case uint32(334): + goto _334 + case uint32(333): goto _335 case uint32(335): goto _336 @@ -160197,34 +161811,42 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _339 case uint32(339): goto _340 - default: + case uint32(340): goto _341 + case uint32(341): + goto _342 + case uint32(342): + goto _343 + case uint32(343): + goto _344 + default: + goto _345 } - goto _342 + goto _346 _1: ; /* explain ::= EXPLAIN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(1) } - goto _342 + goto _346 _2: ; /* explain ::= EXPLAIN QUERY PLAN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(2) } - goto _342 + goto _346 _3: ; /* cmdx ::= cmd */ _sqlite3FinishCoding(tls, pParse) - goto _342 + goto _346 _4: ; /* cmd ::= BEGIN transtype trans_opt */ _sqlite3BeginTransaction(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _5: ; /* transtype ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_DEFERRED) - goto _342 + goto _346 _7: ; /* transtype ::= DEFERRED */ _6: @@ -160234,33 +161856,33 @@ _8: _9: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 + goto _346 _11: ; /* cmd ::= COMMIT|END trans_opt */ _10: ; _sqlite3EndTransaction(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor)) - goto _342 + goto _346 _12: ; /* cmd ::= SAVEPOINT nm */ _sqlite3Savepoint(tls, pParse, SAVEPOINT_BEGIN, yymsp+8) - goto _342 + goto _346 _13: ; /* cmd ::= RELEASE savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_RELEASE), yymsp+8) - goto _342 + goto _346 _14: ; /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_ROLLBACK), yymsp+8) - goto _342 + goto _346 _15: ; /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ _sqlite3StartTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), 0, 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _16: ; /* createkw ::= CREATE */ _disableLookaside(tls, pParse) - goto _342 + goto _346 _18: ; /* ifnotexists ::= */ _17: @@ -160278,56 +161900,56 @@ _23: _24: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = 0 - goto _342 + goto _346 _25: ; /* ifnotexists ::= IF NOT EXISTS */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(1) - goto _342 + goto _346 _26: ; /* temp ::= TEMP */ *(*int32)(unsafe.Pointer(yymsp + 8)) = libc.BoolInt32(int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0) - goto _342 + goto _346 _27: ; /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ _sqlite3EndTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*Tu32)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 + goto _346 _28: ; /* create_table_args ::= AS select */ _sqlite3EndTable(tls, pParse, uintptr(0), uintptr(0), uint32(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _29: ; /* table_option_set ::= */ *(*Tu32)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint32(0) - goto _342 + goto _346 _30: ; /* table_option_set ::= table_option_set COMMA table_option */ *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) | *(*Tu32)(unsafe.Pointer(yymsp + 8)) *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _31: ; /* table_option ::= WITHOUT nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16703, int32(5)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16790, int32(5)) == 0 { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) } else { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23367, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23490, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } - goto _342 + goto _346 _32: ; /* table_option ::= nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16616, int32(6)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16703, int32(6)) == 0 { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(TF_Strict) } else { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23367, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23490, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } *(*Tu32)(unsafe.Pointer(yymsp + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _33: ; /* columnname ::= nm typetoken */ _sqlite3AddColumn(tls, pParse, *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*TToken)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _35: ; /* typetoken ::= */ _34: @@ -160336,52 +161958,52 @@ _36: ; *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 + goto _346 _37: ; /* typetoken ::= typename LP signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) - goto _342 + goto _346 _38: ; /* typetoken ::= typename LP signed COMMA signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))))) - goto _342 + goto _346 _39: ; /* typename ::= typename ID|STRING */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) + uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) - goto _342 + goto _346 _40: ; /* scanpt ::= */ _ = libc.Int32FromInt32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken.Fz - goto _342 + goto _346 _41: ; /* scantok ::= */ _ = libc.Int32FromInt32(0) *(*TToken)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken - goto _342 + goto _346 _43: ; /* ccons ::= CONSTRAINT nm */ _42: ; (*TParse)(unsafe.Pointer(pParse)).FconstraintName = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _44: ; /* ccons ::= DEFAULT scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _45: ; /* ccons ::= DEFAULT LP expr RP */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))+uintptr(1), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _46: ; /* ccons ::= DEFAULT PLUS scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _47: ; /* ccons ::= DEFAULT MINUS scantok term */ p = _sqlite3PExpr(tls, pParse, int32(TK_UMINUS), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) _sqlite3AddDefaultValue(tls, pParse, p, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _48: ; /* ccons ::= DEFAULT scantok ID|INDEXED */ p1 = _tokenExpr(tls, pParse, int32(TK_STRING), *(*TToken)(unsafe.Pointer(yymsp + 8))) @@ -160389,99 +162011,99 @@ _48: _sqlite3ExprIdToTrueFalse(tls, p1) } _sqlite3AddDefaultValue(tls, pParse, p1, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - goto _342 + goto _346 _49: ; /* ccons ::= NOT NULL onconf */ _sqlite3AddNotNull(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _50: ; /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ _sqlite3AddPrimaryKey(tls, pParse, uintptr(0), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _51: ; /* ccons ::= UNIQUE onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _52: ; /* ccons ::= CHECK LP expr RP */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _53: ; /* ccons ::= REFERENCES nm eidlist_opt refargs */ _sqlite3CreateForeignKey(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _54: ; /* ccons ::= defer_subclause */ _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _55: ; /* ccons ::= COLLATE ID|STRING */ _sqlite3AddCollateType(tls, pParse, yymsp+8) - goto _342 + goto _346 _56: ; /* generated ::= LP expr RP */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 + goto _346 _57: ; /* generated ::= LP expr RP ID */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 + goto _346 _58: ; /* autoinc ::= AUTOINCR */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(1) - goto _342 + goto _346 _59: ; /* refargs ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = libc.Int32FromInt32(OE_None) * libc.Int32FromInt32(0x0101) /* EV: R-19803-45884 */ - goto _342 + goto _346 _60: ; /* refargs ::= refargs refarg */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) & ^*(*int32)(unsafe.Pointer(yymsp + 8 + 4)) | *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _61: ; /* refarg ::= MATCH nm */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _62: ; /* refarg ::= ON INSERT refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _63: ; /* refarg ::= ON DELETE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x0000ff) - goto _342 + goto _346 _64: ; /* refarg ::= ON UPDATE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) << int32(8) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x00ff00) - goto _342 + goto _346 _65: ; /* refact ::= SET NULL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetNull) /* EV: R-33326-45252 */ - goto _342 + goto _346 _66: ; /* refact ::= SET DEFAULT */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetDflt) /* EV: R-33326-45252 */ - goto _342 + goto _346 _67: ; /* refact ::= CASCADE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Cascade) /* EV: R-33326-45252 */ - goto _342 + goto _346 _68: ; /* refact ::= RESTRICT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Restrict) /* EV: R-33326-45252 */ - goto _342 + goto _346 _69: ; /* refact ::= NO ACTION */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = OE_None /* EV: R-33326-45252 */ - goto _342 + goto _346 _70: ; /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 - goto _342 + goto _346 _72: ; /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ _71: @@ -160489,7 +162111,7 @@ _71: _73: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _75: ; /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ _74: @@ -160501,64 +162123,64 @@ _77: _78: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(1) - goto _342 + goto _346 _79: ; /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 - goto _342 + goto _346 _80: ; /* tconscomma ::= COMMA */ (*TParse)(unsafe.Pointer(pParse)).FconstraintName.Fn = uint32(0) - goto _342 + goto _346 _81: ; /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ _sqlite3AddPrimaryKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), 0) - goto _342 + goto _346 _82: ; /* tcons ::= UNIQUE LP sortlist RP onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _83: ; /* tcons ::= CHECK LP expr RP onconf */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _84: ; /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ _sqlite3CreateForeignKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _86: ; /* onconf ::= */ _85: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(OE_Default) - goto _342 + goto _346 _87: ; /* onconf ::= ON CONFLICT resolvetype */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _88: ; /* resolvetype ::= IGNORE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Ignore) - goto _342 + goto _346 _90: ; /* resolvetype ::= REPLACE */ _89: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Replace) - goto _342 + goto _346 _91: ; /* cmd ::= DROP TABLE ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _92: ; /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ _sqlite3CreateView(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) - goto _342 + goto _346 _93: ; /* cmd ::= DROP VIEW ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), int32(1), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _94: ; /* cmd ::= select */ *(*TSelectDest)(unsafe.Pointer(bp + 16)) = TSelectDest{ @@ -160566,22 +162188,22 @@ _94: } _sqlite3Select(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), bp+16) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _95: ; /* select ::= WITH wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _96: ; /* select ::= WITH RECURSIVE wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _97: ; /* select ::= selectnowith */ p2 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) if p2 != 0 { _parserDoubleLinkSelect(tls, pParse, p2) } - goto _342 + goto _346 _98: ; /* selectnowith ::= selectnowith multiselect_op oneselect */ pRhs = *(*uintptr)(unsafe.Pointer(yymsp + 8)) @@ -160606,21 +162228,21 @@ _98: _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pLhs) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = pRhs - goto _342 + goto _346 _100: ; /* multiselect_op ::= UNION */ _99: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-OP*/ - goto _342 + goto _346 _101: ; /* multiselect_op ::= UNION ALL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_ALL) - goto _342 + goto _346 _102: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _103: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(9))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -160629,116 +162251,111 @@ _103: } else { _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) } - goto _342 + goto _346 _104: ; /* values ::= VALUES LP nexprlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) - goto _342 + goto _346 _105: - ; /* values ::= values COMMA LP nexprlist RP */ - pLeft = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) - pRight = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(libc.Int32FromInt32(SF_Values)|libc.Int32FromInt32(SF_MultiValue)), uintptr(0)) - if pLeft != 0 { - *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) - } - if pRight != 0 { - (*TSelect)(unsafe.Pointer(pRight)).Fop = uint8(TK_ALL) - (*TSelect)(unsafe.Pointer(pRight)).FpPrior = pLeft - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pRight - } else { - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pLeft - } - goto _342 + ; /* oneselect ::= mvalues */ + _sqlite3MultiValuesEnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_107: + ; /* mvalues ::= values COMMA LP nexprlist RP */ _106: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3MultiValues(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_108: ; /* distinct ::= DISTINCT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_Distinct) - goto _342 -_107: + goto _346 +_109: ; /* distinct ::= ALL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_All) - goto _342 -_109: + goto _346 +_111: ; /* sclp ::= */ -_108: - ; _110: ; -_111: - ; _112: ; _113: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 _114: + ; +_115: + ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 +_116: ; /* selcollist ::= sclp scanpt expr scanpt as */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) > uint32(0) { _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+8, int32(1)) } _sqlite3ExprListSetSpan(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_115: + goto _346 +_117: ; /* selcollist ::= sclp scanpt STAR */ p3 = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_ASTERISK), uintptr(0)) _sqlite3ExprSetErrorOffset(tls, p3, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), p3) - goto _342 -_116: + goto _346 +_118: ; /* selcollist ::= sclp scanpt nm DOT STAR */ - pRight1 = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) - _sqlite3ExprSetErrorOffset(tls, pRight1, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) - pLeft1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft1, pRight1) + pRight = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) + _sqlite3ExprSetErrorOffset(tls, pRight, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) + pLeft = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) + pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft, pRight) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pDot) - goto _342 -_118: + goto _346 +_120: ; /* as ::= AS nm */ -_117: - ; _119: ; -_120: +_121: ; - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 _122: + ; + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) + goto _346 +_124: ; /* from ::= */ -_121: +_123: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_123: + goto _346 +_125: ; /* from ::= FROM seltablist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) _sqlite3SrcListShiftJoinType(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_124: + goto _346 +_126: ; /* stl_prefix ::= seltablist joinop */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 && (*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc > 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8 + uintptr((*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc-int32(1))*104))).Ffg.Fjointype = uint8(*(*int32)(unsafe.Pointer(yymsp + 8))) } - goto _342 -_125: + goto _346 +_127: ; /* seltablist ::= stl_prefix nm dbnm as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) - goto _342 -_126: + goto _346 +_128: ; /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_127: + goto _346 +_129: ; /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListFuncArgs(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) - goto _342 -_128: + goto _346 +_130: ; /* seltablist ::= stl_prefix LP select RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_129: + goto _346 +_131: ; /* seltablist ::= stl_prefix LP seltablist RP as on_using */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) == uintptr(0) && *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) == uint32(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8)) == uintptr(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) @@ -160760,9 +162377,9 @@ _129: libc.SetBitFieldPtr16Uint32(pOld+60+4, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pNew+60+4, libc.Uint32FromInt32(1), 2, 0x4) } - v343 = libc.UintptrFromInt32(0) - (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v343 - (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v343 + v347 = libc.UintptrFromInt32(0) + (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v347 + (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v347 (*TSrcItem)(unsafe.Pointer(pOld)).FpSelect = uintptr(0) } _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) @@ -160772,189 +162389,189 @@ _129: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, pSubquery, yymsp+8) } } - goto _342 -_131: + goto _346 +_133: ; /* dbnm ::= */ -_130: +_132: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) - goto _342 -_132: + goto _346 +_134: ; /* fullname ::= nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_133: + goto _346 +_135: ; /* fullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_134: + goto _346 +_136: ; /* xfullname ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) /*A-overwrites-X*/ - goto _342 -_135: + goto _346 +_137: ; /* xfullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) /*A-overwrites-X*/ - goto _342 -_136: + goto _346 +_138: ; /* xfullname ::= nm DOT nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_137: + goto _346 +_139: ; /* xfullname ::= nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0)) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_138: + goto _346 +_140: ; /* joinop ::= COMMA|JOIN */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(JT_INNER) - goto _342 -_139: + goto _346 +_141: ; /* joinop ::= JOIN_KW JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), uintptr(0)) /*X-overwrites-A*/ - goto _342 -_140: + goto _346 +_142: ; /* joinop ::= JOIN_KW nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0)) /*X-overwrites-A*/ - goto _342 -_141: + goto _346 +_143: ; /* joinop ::= JOIN_KW nm nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) /*X-overwrites-A*/ - goto _342 -_142: + goto _346 +_144: ; /* on_using ::= ON expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uintptr(0) - goto _342 -_143: + goto _346 +_145: ; /* on_using ::= USING LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_144: + goto _346 +_146: ; /* on_using ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uintptr(0) - goto _342 -_145: + goto _346 +_147: ; /* indexed_by ::= INDEXED BY nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 -_146: + goto _346 +_148: ; /* indexed_by ::= NOT INDEXED */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(1) - goto _342 -_148: + goto _346 +_150: ; /* orderby_opt ::= ORDER BY sortlist */ -_147: +_149: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_149: + goto _346 +_151: ; /* sortlist ::= sortlist COMMA expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_150: + goto _346 +_152: ; /* sortlist ::= expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) /*A-overwrites-Y*/ _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_151: + goto _346 +_153: ; /* sortorder ::= ASC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = SQLITE_SO_ASC - goto _342 -_152: + goto _346 +_154: ; /* sortorder ::= DESC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_154: + goto _346 +_156: ; /* sortorder ::= */ -_153: +_155: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = -int32(1) - goto _342 -_155: + goto _346 +_157: ; /* nulls ::= NULLS FIRST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = SQLITE_SO_ASC - goto _342 -_156: + goto _346 +_158: ; /* nulls ::= NULLS LAST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_158: + goto _346 +_160: ; /* having_opt ::= */ -_157: - ; _159: ; -_160: - ; _161: ; _162: ; _163: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_165: - ; /* having_opt ::= HAVING expr */ _164: ; -_166: +_165: ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 _167: + ; /* having_opt ::= HAVING expr */ +_166: ; _168: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 _169: + ; +_170: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + goto _346 +_171: ; /* limit_opt ::= LIMIT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 -_170: + goto _346 +_172: ; /* limit_opt ::= LIMIT expr OFFSET expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_171: + goto _346 +_173: ; /* limit_opt ::= LIMIT expr COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 -_172: + goto _346 +_174: ; /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) _sqlite3DeleteFrom(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0)) - goto _342 -_173: + goto _346 +_175: ; /* where_opt_ret ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) - goto _342 -_174: + goto _346 +_176: ; /* where_opt_ret ::= WHERE expr RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) - goto _342 -_175: + goto _346 +_177: ; /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) - _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23394) + _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23517) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { pFromClause = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) if (*TSrcList)(unsafe.Pointer(pFromClause)).FnSrc > int32(1) { @@ -160966,95 +162583,95 @@ _175: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendList(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), pFromClause) } _sqlite3Update(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_176: + goto _346 +_178: ; /* setlist ::= setlist COMMA nm EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) - goto _342 -_177: + goto _346 +_179: ; /* setlist ::= setlist COMMA LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_178: + goto _346 +_180: ; /* setlist ::= nm EQ expr */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_179: + goto _346 +_181: ; /* setlist ::= LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_180: + goto _346 +_182: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_181: + goto _346 +_183: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0)) - goto _342 -_182: + goto _346 +_184: ; /* upsert ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_183: + goto _346 +_185: ; /* upsert ::= RETURNING selcollist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_184: + goto _346 +_186: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(11))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_185: + goto _346 +_187: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_186: + goto _346 +_188: ; /* upsert ::= ON CONFLICT DO NOTHING returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_187: + goto _346 +_189: ; /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_188: + goto _346 +_190: ; /* returning ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_189: + goto _346 +_191: ; /* idlist_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_190: + goto _346 +_192: ; /* idlist_opt ::= LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_191: + goto _346 +_193: ; /* idlist ::= idlist COMMA nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3IdListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 -_192: + goto _346 +_194: ; /* idlist ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3IdListAppend(tls, pParse, uintptr(0), yymsp+8) /*A-overwrites-Y*/ - goto _342 -_193: + goto _346 +_195: ; /* expr ::= LP expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_194: + goto _346 +_196: ; /* expr ::= ID|INDEXED|JOIN_KW */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_195: + goto _346 +_197: ; /* expr ::= nm DOT nm */ temp1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) temp2 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp1, temp2) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_196: + goto _346 +_198: ; /* expr ::= nm DOT nm DOT nm */ temp11 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) temp21 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) @@ -161065,22 +162682,22 @@ _196: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp11, temp4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_198: + goto _346 +_200: ; /* term ::= NULL|FLOAT|BLOB */ -_197: +_199: ; *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_199: + goto _346 +_201: ; /* term ::= INTEGER */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), yymsp+8, int32(1)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 52)) = int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8))) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_200: + goto _346 +_202: ; /* expr ::= VARIABLE */ if !(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8))))) == int32('#') && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)) + 1))])&int32(0x04) != 0) { n = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) @@ -161093,7 +162710,7 @@ _200: *(*TToken)(unsafe.Pointer(bp + 88)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) /*A-overwrites-X*/ _ = libc.Int32FromInt32(0) if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23403, libc.VaList(bp+128, bp+88)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23526, libc.VaList(bp+128, bp+88)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = uintptr(0) } else { *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_REGISTER), uintptr(0), uintptr(0)) @@ -161102,57 +162719,57 @@ _200: } } } - goto _342 -_201: + goto _346 +_203: ; /* expr ::= expr COLLATE ID|STRING */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAddCollateToken(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8, int32(1)) - goto _342 -_202: + goto _346 +_204: ; /* expr ::= CAST LP expr AS typetoken RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_CAST), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) _sqlite3ExprAttachSubtrees(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) - goto _342 -_203: + goto _346 +_205: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_204: + goto _346 +_206: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_205: + goto _346 +_207: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_206: + goto _346 +_208: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_207: + goto _346 +_209: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_208: + goto _346 +_210: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, 0) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_209: + goto _346 +_211: ; /* term ::= CTIME_KW */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_210: + goto _346 +_212: ; /* expr ::= LP nexprlist COMMA expr RP */ pList = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_VECTOR), uintptr(0), uintptr(0)) @@ -161164,33 +162781,33 @@ _210: } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) } - goto _342 -_211: + goto _346 +_213: ; /* expr ::= expr AND expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_213: + goto _346 +_215: ; /* expr ::= expr OR expr */ -_212: - ; _214: ; -_215: - ; _216: ; _217: ; _218: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 _219: + ; +_220: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_221: ; /* likeop ::= NOT LIKE_KW|MATCH */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) |= uint32(0x80000000) /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/ - goto _342 -_220: + goto _346 +_222: ; /* expr ::= expr likeop expr */ bNot = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -161203,8 +162820,8 @@ _220: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_221: + goto _346 +_223: ; /* expr ::= expr likeop expr ESCAPE expr */ bNot1 = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -161218,65 +162835,69 @@ _221: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_222: + goto _346 +_224: ; /* expr ::= expr ISNULL|NOTNULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_223: + goto _346 +_225: ; /* expr ::= expr NOT NULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOTNULL), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uintptr(0)) - goto _342 -_224: + goto _346 +_226: ; /* expr ::= expr IS expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_225: + goto _346 +_227: ; /* expr ::= expr IS NOT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_226: + goto _346 +_228: ; /* expr ::= expr IS NOT DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_227: + goto _346 +_229: ; /* expr ::= expr IS DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_229: + goto _346 +_231: ; /* expr ::= NOT expr */ -_228: +_230: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) /*A-overwrites-B*/ - goto _342 -_230: + goto _346 +_232: ; /* expr ::= PLUS|MINUS expr */ - if int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) == int32(TK_PLUS) { - v344 = int32(TK_UPLUS) + p4 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + op = uint8(int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) + (libc.Int32FromInt32(TK_UPLUS) - libc.Int32FromInt32(TK_PLUS))) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if p4 != 0 && int32((*TExpr)(unsafe.Pointer(p4)).Fop) == int32(TK_UPLUS) { + (*TExpr)(unsafe.Pointer(p4)).Fop = op + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = p4 } else { - v344 = int32(TK_UMINUS) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(op), p4, uintptr(0)) + /*A-overwrites-B*/ } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, v344, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - /*A-overwrites-B*/ - goto _342 -_231: + goto _346 +_233: ; /* expr ::= expr PTR expr */ pList3 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList3 = _sqlite3ExprListAppend(tls, pParse, pList3, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, pList3, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_233: + goto _346 +_235: ; /* between_op ::= BETWEEN */ -_232: +_234: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = 0 - goto _342 -_234: + goto _346 +_236: ; /* expr ::= expr between_op expr AND expr */ pList4 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList4 = _sqlite3ExprListAppend(tls, pParse, pList4, *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -161289,8 +162910,8 @@ _234: if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_235: + goto _346 +_237: ; /* expr ::= expr in_op LP exprlist RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) == uintptr(0) { /* Expressions of the form @@ -161303,17 +162924,17 @@ _235: */ _sqlite3ExprUnmapAndDelete(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { - v345 = __ccgo_ts + 7895 + v348 = __ccgo_ts + 8020 } else { - v345 = __ccgo_ts + 7900 + v348 = __ccgo_ts + 8025 } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v345) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v348) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { _sqlite3ExprIdToTrueFalse(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } } else { pRHS = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr - if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { + if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pParse, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr = uintptr(0) _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) pRHS = _sqlite3PExpr(tls, pParse, int32(TK_UPLUS), pRHS, uintptr(0)) @@ -161347,463 +162968,467 @@ _235: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } } - goto _342 -_236: + goto _346 +_238: ; /* expr ::= LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_SELECT), uintptr(0), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_237: + goto _346 +_239: ; /* expr ::= expr in_op LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_238: + goto _346 +_240: ; /* expr ::= expr in_op nm dbnm paren_exprlist */ pSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) pSelect = _sqlite3SelectNew(tls, pParse, uintptr(0), pSrc, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { if pSelect != 0 { - v346 = pSrc + v349 = pSrc } else { - v346 = uintptr(0) + v349 = uintptr(0) } - _sqlite3SrcListFuncArgs(tls, pParse, v346, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + _sqlite3SrcListFuncArgs(tls, pParse, v349, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pSelect) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_239: + goto _346 +_241: ; /* expr ::= EXISTS LP select RP */ - v347 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v347 - p4 = v347 - _sqlite3PExprAddSelect(tls, pParse, p4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_240: + v350 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v350 + p5 = v350 + _sqlite3PExprAddSelect(tls, pParse, p5, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_242: ; /* expr ::= CASE case_operand case_exprlist case_else END */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_CASE), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { - v348 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + v351 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } else { - v348 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + v351 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) } - *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v348 + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v351 _sqlite3ExprSetHeightAndFlags(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } - goto _342 -_241: + goto _346 +_243: ; /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_242: + goto _346 +_244: ; /* case_exprlist ::= WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_243: + goto _346 +_245: ; /* nexprlist ::= nexprlist COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_244: + goto _346 +_246: ; /* nexprlist ::= expr */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_246: + goto _346 +_248: ; /* paren_exprlist ::= LP exprlist RP */ -_245: +_247: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_247: + goto _346 +_249: ; /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ _sqlite3CreateIndex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, uintptr(0)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(11))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8)), SQLITE_SO_ASC, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), uint8(SQLITE_IDXTYPE_APPDEF)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && (*TParse)(unsafe.Pointer(pParse)).FpNewIndex != 0 { _sqlite3RenameTokenMap(tls, pParse, (*TIndex)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpNewIndex)).FzName, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) } - goto _342 -_249: + goto _346 +_251: ; /* uniqueflag ::= UNIQUE */ -_248: +_250: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Abort) - goto _342 -_250: + goto _346 +_252: ; /* uniqueflag ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = OE_None - goto _342 -_251: + goto _346 +_253: ; /* eidlist ::= eidlist COMMA nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_252: + goto _346 +_254: ; /* eidlist ::= nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_253: + goto _346 +_255: ; /* cmd ::= DROP INDEX ifexists fullname */ _sqlite3DropIndex(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_254: + goto _346 +_256: ; /* cmd ::= VACUUM vinto */ _sqlite3Vacuum(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_255: + goto _346 +_257: ; /* cmd ::= VACUUM nm vinto */ _sqlite3Vacuum(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_256: + goto _346 +_258: ; /* cmd ::= PRAGMA nm dbnm */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, uintptr(0), 0) - goto _342 -_257: + goto _346 +_259: ; /* cmd ::= PRAGMA nm dbnm EQ nmnum */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, 0) - goto _342 -_258: + goto _346 +_260: ; /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) - goto _342 -_259: + goto _346 +_261: ; /* cmd ::= PRAGMA nm dbnm EQ minus_num */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, int32(1)) - goto _342 -_260: + goto _346 +_262: ; /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) - goto _342 -_261: + goto _346 +_263: ; /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ (*(*TToken)(unsafe.Pointer(bp + 104))).Fz = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) (*(*TToken)(unsafe.Pointer(bp + 104))).Fn = uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) + *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) _sqlite3FinishTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), bp+104) - goto _342 -_262: + goto _346 +_264: ; /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ _sqlite3BeginTrigger(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8 + 8)) == uint32(0) { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) } else { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) } - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v349 /*A-overwrites-T*/ - goto _342 -_263: + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v352 /*A-overwrites-T*/ + goto _346 +_265: ; /* trigger_time ::= BEFORE|AFTER */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_264: + goto _346 +_266: ; /* trigger_time ::= INSTEAD OF */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_INSTEAD) - goto _342 -_265: + goto _346 +_267: ; /* trigger_time ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_BEFORE) - goto _342 -_267: + goto _346 +_269: ; /* trigger_event ::= DELETE|INSERT */ -_266: +_268: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) = uintptr(0) - goto _342 -_268: + goto _346 +_270: ; /* trigger_event ::= UPDATE OF idlist */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(TK_UPDATE) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_270: + goto _346 +_272: ; /* when_clause ::= */ -_269: +_271: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_272: + goto _346 +_274: ; /* when_clause ::= WHEN expr */ -_271: +_273: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_273: + goto _346 +_275: ; /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ _ = libc.Int32FromInt32(0) (*TTriggerStep)(unsafe.Pointer((*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast)).FpNext = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_274: + goto _346 +_276: ; /* trigger_cmd_list ::= trigger_cmd SEMI */ _ = libc.Int32FromInt32(0) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_275: + goto _346 +_277: ; /* trnm ::= nm DOT nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23427, 0) - goto _342 -_276: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23550, 0) + goto _346 +_278: ; /* tridxby ::= INDEXED BY nm */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23522, 0) - goto _342 -_277: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23645, 0) + goto _346 +_279: ; /* tridxby ::= NOT INDEXED */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23606, 0) - goto _342 -_278: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23729, 0) + goto _346 +_280: ; /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerUpdateStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_279: + goto _346 +_281: ; /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_280: + goto _346 +_282: ; /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerDeleteStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_281: + goto _346 +_283: ; /* trigger_cmd ::= scanpt select scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_282: + goto _346 +_284: ; /* expr ::= RAISE LP IGNORE RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_RAISE), uintptr(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)))).FaffExpr = uint8(OE_Ignore) } - goto _342 -_283: + goto _346 +_285: ; /* expr ::= RAISE LP raisetype COMMA nm RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_RAISE), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)))).FaffExpr = uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) } - goto _342 -_284: + goto _346 +_286: ; /* raisetype ::= ROLLBACK */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Rollback) - goto _342 -_285: + goto _346 +_287: ; /* raisetype ::= FAIL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Fail) - goto _342 -_286: + goto _346 +_288: ; /* cmd ::= DROP TRIGGER ifexists fullname */ _sqlite3DropTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_287: + goto _346 +_289: ; /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ _sqlite3Attach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_288: + goto _346 +_290: ; /* cmd ::= DETACH database_kw_opt expr */ _sqlite3Detach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_289: + goto _346 +_291: ; /* cmd ::= REINDEX */ _sqlite3Reindex(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_290: + goto _346 +_292: ; /* cmd ::= REINDEX nm dbnm */ _sqlite3Reindex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_291: + goto _346 +_293: ; /* cmd ::= ANALYZE */ _sqlite3Analyze(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_292: + goto _346 +_294: ; /* cmd ::= ANALYZE nm dbnm */ _sqlite3Analyze(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_293: + goto _346 +_295: ; /* cmd ::= ALTER TABLE fullname RENAME TO nm */ _sqlite3AlterRenameTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_294: + goto _346 +_296: ; /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(int32(int64((*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fz)-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) + (*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fn _sqlite3AlterFinishAddColumn(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_295: + goto _346 +_297: ; /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ _sqlite3AlterDropColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_296: + goto _346 +_298: ; /* add_column_fullname ::= fullname */ _disableLookaside(tls, pParse) _sqlite3AlterBeginAddColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_297: + goto _346 +_299: ; /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ _sqlite3AlterRenameColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) - goto _342 -_298: + goto _346 +_300: ; /* cmd ::= create_vtab */ _sqlite3VtabFinishParse(tls, pParse, uintptr(0)) - goto _342 -_299: + goto _346 +_301: ; /* cmd ::= create_vtab LP vtabarglist RP */ _sqlite3VtabFinishParse(tls, pParse, yymsp+8) - goto _342 -_300: + goto _346 +_302: ; /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ _sqlite3VtabBeginParse(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) - goto _342 -_301: + goto _346 +_303: ; /* vtabarg ::= */ _sqlite3VtabArgInit(tls, pParse) - goto _342 -_303: + goto _346 +_305: ; /* vtabargtoken ::= ANY */ -_302: - ; _304: ; - _sqlite3VtabArgExtend(tls, pParse, yymsp+8) - goto _342 _306: + ; + _sqlite3VtabArgExtend(tls, pParse, yymsp+8) + goto _346 +_308: ; /* with ::= WITH wqlist */ -_305: +_307: ; _sqlite3WithPush(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint8(1)) - goto _342 -_307: + goto _346 +_309: ; /* wqas ::= AS */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8(M10d_Any) - goto _342 -_308: + goto _346 +_310: ; /* wqas ::= AS MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8(M10d_Yes) - goto _342 -_309: + goto _346 +_311: ; /* wqas ::= AS NOT MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = uint8(M10d_No) - goto _342 -_310: - ; /* wqitem ::= nm eidlist_opt wqas LP select RP */ + goto _346 +_312: + ; /* wqitem ::= withnm eidlist_opt wqas LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3CteNew(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) /*A-overwrites-X*/ - goto _342 -_311: + goto _346 +_313: + ; /* withnm ::= nm */ + (*TParse)(unsafe.Pointer(pParse)).FbHasWith = uint8(1) + goto _346 +_314: ; /* wqlist ::= wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3WithAdd(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_312: + goto _346 +_315: ; /* wqlist ::= wqlist COMMA wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3WithAdd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_313: + goto _346 +_316: ; /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ _ = libc.Int32FromInt32(0) _sqlite3WindowChain(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpNextWin = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_314: + goto _346 +_317: ; /* windowdefn ::= nm AS LP window RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)))) } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_315: + goto _346 +_318: ; /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_316: + goto _346 +_319: ; /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_317: + goto _346 +_320: ; /* window ::= ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_318: + goto _346 +_321: ; /* window ::= nm ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_319: + goto _346 +_322: ; /* window ::= nm frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_320: + goto _346 +_323: ; /* frame_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = _sqlite3WindowAlloc(tls, pParse, 0, int32(TK_UNBOUNDED), uintptr(0), int32(TK_CURRENT), uintptr(0), uint8(0)) - goto _342 -_321: + goto _346 +_324: ; /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), int32(TK_CURRENT), uintptr(0), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_322: + goto _346 +_325: ; /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_324: + goto _346 +_327: ; /* frame_bound_s ::= frame_bound */ -_323: +_326: ; *(*TFrameBound)(unsafe.Pointer(bp)) = *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_326: + goto _346 +_329: ; /* frame_bound_s ::= UNBOUNDED PRECEDING */ -_325: +_328: ; -_327: +_330: ; (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = uintptr(0) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_328: + goto _346 +_331: ; /* frame_bound ::= expr PRECEDING|FOLLOWING */ (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_329: + goto _346 +_332: ; /* frame_exclude_opt ::= */ *(*Tu8)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint8(0) - goto _342 -_330: + goto _346 +_333: ; /* frame_exclude_opt ::= EXCLUDE frame_exclude */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*Tu8)(unsafe.Pointer(yymsp + 8)) - goto _342 -_332: + goto _346 +_335: ; /* frame_exclude ::= NO OTHERS */ -_331: +_334: ; *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) /*A-overwrites-X*/ - goto _342 -_333: + goto _346 +_336: ; /* frame_exclude ::= GROUP|TIES */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_334: + goto _346 +_337: ; /* window_clause ::= WINDOW windowdefn_list */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_335: + goto _346 +_338: ; /* filter_over ::= filter_clause over_clause */ if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpFilter = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) @@ -161812,13 +163437,13 @@ _335: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_336: + goto _346 +_339: ; /* filter_over ::= over_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_337: + goto _346 +_340: ; /* filter_over ::= filter_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { @@ -161828,24 +163453,30 @@ _337: _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_338: + goto _346 +_341: ; /* over_clause ::= OVER LP window RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) _ = libc.Int32FromInt32(0) - goto _342 -_339: + goto _346 +_342: ; /* over_clause ::= OVER nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) } - goto _342 -_340: + goto _346 +_343: ; /* filter_clause ::= FILTER LP WHERE expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_341: + goto _346 +_344: + ; /* term ::= QNUMBER */ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) + _sqlite3DequoteNumber(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp))))) + *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + goto _346 +_345: ; _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -161862,9 +163493,9 @@ _341: _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - goto _342 + goto _346 /********** End reduce actions ************************************************/ -_342: +_346: ; _ = libc.Int32FromInt32(0) yygoto = int32(_yyRuleInfoLhs[yyruleno]) @@ -161901,9 +163532,9 @@ func _yy_syntax_error(tls *libc.TLS, yypParser uintptr, yymajor int32, _yyminor /************ Begin %syntax_error code ****************************************/ _ = yymajor /* Silence some compiler warnings */ if *(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp))).Fz)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23403, libc.VaList(bp+24, bp)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23526, libc.VaList(bp+24, bp)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23691, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23814, 0) } /************ End %syntax_error code ******************************************/ /* Suppress warning about unused %extra_argument variable */ @@ -161972,8 +163603,10 @@ func _sqlite3Parser(tls *libc.TLS, yyp uintptr, yymajor int32, yyminor TToken) { ** enough on the stack to push the LHS value */ if int32(_yyRuleInfoNRhs[yyruleno]) == 0 { if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos >= (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - _yyStackOverflow(tls, yypParser) - break + if _yyGrowStack(tls, yypParser) != 0 { + _yyStackOverflow(tls, yypParser) + break + } } } yyact = _yy_reduce(tls, yypParser, yyruleno, yymajor, yyminor, pParse) @@ -164125,9 +165758,9 @@ func _analyzeFilterKeyword(tls *libc.TLS, _z uintptr, lastToken int32) (r int32) // ** Store the token type in *tokenType before returning. // */ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { - var c, delim, i, n, v10, v14, v16, v19, v20, v3, v5, v7, v8 int32 - var v15, v6 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v14, v15, v16, v19, v20, v3, v5, v6, v7, v8 + var c, delim, i, n, v10, v16, v18, v21, v22, v3, v5, v7, v8 int32 + var v17, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v16, v17, v18, v21, v22, v3, v5, v6, v7, v8 switch int32(_aiClass[*(*uint8)(unsafe.Pointer(z))]) { /* Switch on the character-class of the first byte ** of the token. See the comment on the CC_ defines ** above. */ @@ -164323,39 +165956,83 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('X')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + 2))])&int32(0x08) != 0 { i = int32(3) for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { + if !(int32(1) != 0) { break } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } goto _11 _11: ; i++ } - return i - } - i = 0 - for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _12 - _12: - ; - i++ - } - if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { - i++ - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + } else { + i = 0 + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _12 + _12: + ; i++ } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) - } - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { - i += int32(2) - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } i++ + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _13 + _13: + ; + i++ + } + } + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } + i += int32(2) + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _14 + _14: + ; + i++ + } } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) } for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x46) != 0 { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_ILLEGAL) @@ -164366,24 +166043,24 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { i = int32(1) c = int32(*(*uint8)(unsafe.Pointer(z))) for { - if v15 = c != int32(']'); v15 { - v14 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v14 + if v17 = c != int32(']'); v17 { + v16 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v16 } - if !(v15 && v14 != 0) { + if !(v17 && v16 != 0) { break } - goto _13 - _13: + goto _15 + _15: ; i++ } if c == int32(']') { - v16 = int32(TK_ID) + v18 = int32(TK_ID) } else { - v16 = int32(TK_ILLEGAL) + v18 = int32(TK_ILLEGAL) } - *(*int32)(unsafe.Pointer(tokenType)) = v16 + *(*int32)(unsafe.Pointer(tokenType)) = v18 return i case int32(CC_VARNUM): *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) @@ -164392,8 +166069,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { break } - goto _17 - _17: + goto _19 + _19: ; i++ } @@ -164405,9 +166082,9 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) i = int32(1) for { - v19 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v19 - if !(v19 != 0) { + v21 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v21 + if !(v21 != 0) { break } if int32(_sqlite3CtypeMap[uint8(c)])&int32(0x46) != 0 { @@ -164416,12 +166093,12 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if c == int32('(') && n > 0 { for { i++ - goto _21 - _21: + goto _23 + _23: ; - v20 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v20 - if !(v20 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { + v22 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v22 + if !(v22 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { break } } @@ -164439,8 +166116,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { } } } - goto _18 - _18: + goto _20 + _20: ; i++ } @@ -164458,8 +166135,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_aiClass[*(*uint8)(unsafe.Pointer(z + uintptr(i)))]) <= int32(CC_KYWD)) { break } - goto _22 - _22: + goto _24 + _24: ; i++ } @@ -164480,8 +166157,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { break } - goto _23 - _23: + goto _25 + _25: ; i++ } @@ -164533,7 +166210,7 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { var lastTokenParsed, mxSqlLen, n, nErr int32 var _ /* sEngine at bp+8 */ TyyParser var _ /* tokenType at bp+0 */ int32 - var _ /* x at bp+2432 */ TToken + var _ /* x at bp+2440 */ TToken _, _, _, _, _, _, _ = db, lastTokenParsed, mxSqlLen, n, nErr, pEngine, pParentParse nErr = 0 /* The LEMON-generated LALR(1) parser */ n = 0 /* type of the next token */ @@ -164600,10 +166277,12 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(bp)) = _analyzeFilterKeyword(tls, zSql+6, lastTokenParsed) } else { - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fz = zSql - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fn = uint32(n) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23708, libc.VaList(bp+2456, bp+2432)) - break + if *(*int32)(unsafe.Pointer(bp)) != int32(TK_QNUMBER) { + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fz = zSql + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fn = uint32(n) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23831, libc.VaList(bp+2464, bp+2440)) + break + } } } } @@ -164626,9 +166305,9 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { } if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg != 0 || (*TParse)(unsafe.Pointer(pParse)).Frc != SQLITE_OK && (*TParse)(unsafe.Pointer(pParse)).Frc != int32(SQLITE_DONE) { if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg == uintptr(0) { - (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3804, libc.VaList(bp+2456, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) + (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3868, libc.VaList(bp+2464, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) } - Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23733, libc.VaList(bp+2456, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) + Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23856, libc.VaList(bp+2464, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) nErr++ } (*TParse)(unsafe.Pointer(pParse)).FzTail = zSql @@ -164821,7 +166500,7 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('c'): fallthrough case int32('C'): - if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23744, int32(6)) == 0 { + if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23867, int32(6)) == 0 { token = uint8(tkCREATE) } else { token = uint8(tkOTHER) @@ -164829,13 +166508,13 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('t'): fallthrough case int32('T'): - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20388, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20520, int32(7)) == 0 { token = uint8(tkTRIGGER) } else { - if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23751, int32(4)) == 0 { + if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23874, int32(4)) == 0 { token = uint8(tkTEMP) } else { - if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23756, int32(9)) == 0 { + if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23879, int32(9)) == 0 { token = uint8(tkTEMP) } else { token = uint8(tkOTHER) @@ -164845,10 +166524,10 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('e'): fallthrough case int32('E'): - if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23766, int32(3)) == 0 { + if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23889, int32(3)) == 0 { token = uint8(tkEND) } else { - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23770, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23893, int32(7)) == 0 { token = uint8(tkEXPLAIN) } else { token = uint8(tkOTHER) @@ -165108,8 +166787,6 @@ func _hasHighPrecisionDouble(tls *libc.TLS, rc int32) (r int32) { // ** without blocking. // */ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { - ng := runtime.GOMAXPROCS(1) - defer func() { runtime.GOMAXPROCS(ng) }() var pMainMtx uintptr var rc int32 _, _ = pMainMtx, rc /* Result code */ @@ -165122,7 +166799,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** must be complete. So isInit must not be set until the very end ** of this routine. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { return SQLITE_OK } /* Make sure the mutex subsystem is initialized. If unable to @@ -165182,7 +166859,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** call to sqlite3PcacheInitialize(). */ Xsqlite3_mutex_enter(tls, _sqlite3Config.FpInitMutex) - if _sqlite3Config.FisInit == 0 && _sqlite3Config.FinProgress == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 && _sqlite3Config.FinProgress == 0 { _sqlite3Config.FinProgress = int32(1) libc.Xmemset(tls, uintptr(unsafe.Pointer(&_sqlite3BuiltinFunctions)), 0, uint64(184)) _sqlite3RegisterBuiltinFunctions(tls) @@ -165198,7 +166875,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { } if rc == SQLITE_OK { _sqlite3PCacheBufferSetup(tls, _sqlite3Config.FpPage, _sqlite3Config.FszPage, _sqlite3Config.FnPage) - _sqlite3Config.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, int32(1)) } _sqlite3Config.FinProgress = 0 } @@ -165224,7 +166901,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { */ /* Experimentally determine if high-precision floating point is ** available. */ - _sqlite3Config.FbUseLongDouble = uint8(_hasHighPrecisionDouble(tls, rc)) + // disabled return rc } @@ -165239,10 +166916,10 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { // ** when this routine is invoked, then this routine is a harmless no-op. // */ func Xsqlite3_shutdown(tls *libc.TLS) (r int32) { - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { Xsqlite3_os_end(tls) Xsqlite3_reset_auto_extension(tls) - _sqlite3Config.FisInit = 0 + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, 0) } if _sqlite3Config.FisPCacheInit != 0 { _sqlite3PcacheShutdown(tls) @@ -165290,9 +166967,9 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { ** the SQLite library is in use. Except, a few selected opcodes ** are allowed. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)<= 0 && rc < int32(libc.Uint64FromInt64(232)/libc.Uint64FromInt64(8)) && _aMsg[rc] != uintptr(0) { @@ -166442,31 +168119,31 @@ func _sqlite3ErrStr(tls *libc.TLS, rc int32) (r uintptr) { } var _aMsg = [29]uintptr{ - 0: __ccgo_ts + 23846, - 1: __ccgo_ts + 23859, - 3: __ccgo_ts + 23875, - 4: __ccgo_ts + 23900, - 5: __ccgo_ts + 23914, - 6: __ccgo_ts + 23933, - 7: __ccgo_ts + 1627, - 8: __ccgo_ts + 23958, - 9: __ccgo_ts + 23995, - 10: __ccgo_ts + 24007, - 11: __ccgo_ts + 24022, - 12: __ccgo_ts + 24055, - 13: __ccgo_ts + 24073, - 14: __ccgo_ts + 24098, - 15: __ccgo_ts + 24127, - 17: __ccgo_ts + 6030, - 18: __ccgo_ts + 5432, - 19: __ccgo_ts + 24144, - 20: __ccgo_ts + 24162, - 21: __ccgo_ts + 24180, - 23: __ccgo_ts + 24214, - 25: __ccgo_ts + 24235, - 26: __ccgo_ts + 24261, - 27: __ccgo_ts + 24284, - 28: __ccgo_ts + 24305, + 0: __ccgo_ts + 23969, + 1: __ccgo_ts + 23982, + 3: __ccgo_ts + 23998, + 4: __ccgo_ts + 24023, + 5: __ccgo_ts + 24037, + 6: __ccgo_ts + 24056, + 7: __ccgo_ts + 1641, + 8: __ccgo_ts + 24081, + 9: __ccgo_ts + 24118, + 10: __ccgo_ts + 24130, + 11: __ccgo_ts + 24145, + 12: __ccgo_ts + 24178, + 13: __ccgo_ts + 24196, + 14: __ccgo_ts + 24221, + 15: __ccgo_ts + 24250, + 17: __ccgo_ts + 6094, + 18: __ccgo_ts + 5496, + 19: __ccgo_ts + 24267, + 20: __ccgo_ts + 24285, + 21: __ccgo_ts + 24303, + 23: __ccgo_ts + 24337, + 25: __ccgo_ts + 24358, + 26: __ccgo_ts + 24384, + 27: __ccgo_ts + 24407, + 28: __ccgo_ts + 24428, } // C documentation @@ -166648,7 +168325,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if zFunctionName == uintptr(0) || xSFunc != uintptr(0) && xFinal != uintptr(0) || libc.BoolInt32(xFinal == uintptr(0)) != libc.BoolInt32(xStep == uintptr(0)) || libc.BoolInt32(xValue == uintptr(0)) != libc.BoolInt32(xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { - return _sqlite3MisuseError(tls, int32(180244)) + return _sqlite3MisuseError(tls, int32(181689)) } _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -166694,7 +168371,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i p = _sqlite3FindFunction(tls, db, zFunctionName, nArg, uint8(enc), uint8(0)) if p != 0 && (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) == uint32(enc) && int32((*TFuncDef)(unsafe.Pointer(p)).FnArg) == nArg { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24402, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24525, 0) _ = libc.Int32FromInt32(0) return int32(SQLITE_BUSY) } else { @@ -166767,6 +168444,7 @@ func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, en (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } + goto out out: ; rc = _sqlite3ApiExit(tls, db, rc) @@ -166823,7 +168501,7 @@ func _sqlite3InvalidFunction(tls *libc.TLS, context uintptr, NotUsed int32, NotU zName = Xsqlite3_user_data(tls, context) _ = NotUsed _ = NotUsed2 - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24465, libc.VaList(bp+8, zName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24588, libc.VaList(bp+8, zName)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -166854,7 +168532,7 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i if rc != 0 { return SQLITE_OK } - zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, zName)) + zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, zName)) if zCopy == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -167102,7 +168780,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in if eMode < SQLITE_CHECKPOINT_PASSIVE || eMode > int32(SQLITE_CHECKPOINT_TRUNCATE) { /* EVIDENCE-OF: R-03996-12088 The M parameter must be a valid checkpoint ** mode: */ - return _sqlite3MisuseError(tls, int32(180859)) + return _sqlite3MisuseError(tls, int32(182304)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*uint8)(unsafe.Pointer(zDb)) != 0 { @@ -167112,7 +168790,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in } if iDb < 0 { rc = int32(SQLITE_ERROR) - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24516, libc.VaList(bp+8, zDb)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24639, libc.VaList(bp+8, zDb)) } else { (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0 rc = _sqlite3Checkpoint(tls, db, iDb, eMode, pnLog, pnCkpt) @@ -167237,7 +168915,7 @@ func Xsqlite3_errmsg(tls *libc.TLS, db uintptr) (r uintptr) { return _sqlite3ErrStr(tls, int32(SQLITE_NOMEM)) } if !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(180995))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(182440))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -167370,7 +169048,7 @@ var _misuse = [34]Tu16{ // */ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181074)) + return _sqlite3MisuseError(tls, int32(182519)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -167380,7 +169058,7 @@ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { func Xsqlite3_extended_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181083)) + return _sqlite3MisuseError(tls, int32(182528)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -167430,7 +169108,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui enc2 = int32(SQLITE_UTF16LE) } if enc2 < int32(SQLITE_UTF8) || enc2 > int32(SQLITE_UTF16BE) { - return _sqlite3MisuseError(tls, int32(181131)) + return _sqlite3MisuseError(tls, int32(182576)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -167439,7 +169117,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui pColl = _sqlite3FindCollSeq(tls, db, uint8(enc2), zName, 0) if pColl != 0 && (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp != 0 { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24537, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24660, 0) return int32(SQLITE_BUSY) } _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -167600,7 +169278,7 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u zVfs = zDefaultVfs nUri = _sqlite3Strlen30(tls, zUri) _ = libc.Int32FromInt32(0) - if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24605, uint64(5)) == 0 { /* Input character index */ + if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24728, uint64(5)) == 0 { /* Input character index */ iOut = 0 /* Output character index */ nByte = uint64(nUri + int32(8)) /* Bytes of space to allocate */ /* Make sure the SQLITE_OPEN_URI flag is set to indicate to the VFS xOpen @@ -167630,8 +169308,8 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u for *(*uint8)(unsafe.Pointer(zUri + uintptr(iIn))) != 0 && int32(*(*uint8)(unsafe.Pointer(zUri + uintptr(iIn)))) != int32('/') { iIn++ } - if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24611, zUri+7, uint64(9)) != 0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24621, libc.VaList(bp+8, iIn-int32(7), zUri+7)) + if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24734, zUri+7, uint64(9)) != 0) { + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24744, libc.VaList(bp+8, iIn-int32(7), zUri+7)) rc = int32(SQLITE_ERROR) goto parse_uri_out } @@ -167721,24 +169399,24 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u nOpt = _sqlite3Strlen30(tls, zOpt) zVal = zOpt + uintptr(nOpt+int32(1)) nVal = _sqlite3Strlen30(tls, zVal) - if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24649, zOpt, uint64(3)) == 0 { + if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24772, zOpt, uint64(3)) == 0 { zVfs = zVal } else { aMode = uintptr(0) zModeType = uintptr(0) mask = 0 limit = 0 - if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24653, zOpt, uint64(5)) == 0 { + if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24776, zOpt, uint64(5)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_SHAREDCACHE) | libc.Int32FromInt32(SQLITE_OPEN_PRIVATECACHE) aMode = uintptr(unsafe.Pointer(&_aCacheMode)) limit = mask - zModeType = __ccgo_ts + 24653 + zModeType = __ccgo_ts + 24776 } - if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24674, zOpt, uint64(4)) == 0 { + if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24797, zOpt, uint64(4)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_READONLY) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_MEMORY) aMode = uintptr(unsafe.Pointer(&_aOpenMode)) limit = int32(uint32(mask) & flags) - zModeType = __ccgo_ts + 3413 + zModeType = __ccgo_ts + 3477 } if aMode != 0 { mode = 0 @@ -167767,12 +169445,12 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u i++ } if mode == 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24689, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24812, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_ERROR) goto parse_uri_out } if mode & ^libc.Int32FromInt32(SQLITE_OPEN_MEMORY) > limit { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24709, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24832, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_PERM) goto parse_uri_out } @@ -167796,9 +169474,10 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u } *(*uintptr)(unsafe.Pointer(ppVfs)) = Xsqlite3_vfs_find(tls, zVfs) if *(*uintptr)(unsafe.Pointer(ppVfs)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24733, libc.VaList(bp+8, zVfs)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24856, libc.VaList(bp+8, zVfs)) rc = int32(SQLITE_ERROR) } + goto parse_uri_out parse_uri_out: ; if rc != SQLITE_OK { @@ -167815,11 +169494,11 @@ var _aCacheMode = [3]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24659, + Fz: __ccgo_ts + 24782, Fmode: int32(SQLITE_OPEN_SHAREDCACHE), }, 1: { - Fz: __ccgo_ts + 24666, + Fz: __ccgo_ts + 24789, Fmode: int32(SQLITE_OPEN_PRIVATECACHE), }, 2: {}, @@ -167830,19 +169509,19 @@ var _aOpenMode = [5]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24679, + Fz: __ccgo_ts + 24802, Fmode: int32(SQLITE_OPEN_READONLY), }, 1: { - Fz: __ccgo_ts + 24682, + Fz: __ccgo_ts + 24805, Fmode: int32(SQLITE_OPEN_READWRITE), }, 2: { - Fz: __ccgo_ts + 24685, + Fz: __ccgo_ts + 24808, Fmode: libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE), }, 3: { - Fz: __ccgo_ts + 17773, + Fz: __ccgo_ts + 17860, Fmode: int32(SQLITE_OPEN_MEMORY), }, 4: {}, @@ -167971,8 +169650,8 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16BE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16LE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+22360, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+24749, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+22505, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+24872, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto opendb_out } @@ -167996,7 +169675,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* READWRITE */ /* READWRITE | CREATE */ if int32(1)<<(*(*uint32)(unsafe.Pointer(bp))&uint32(7))&int32(0x46) == 0 { - rc = _sqlite3MisuseError(tls, int32(181803)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(183248)) /* IMP: R-18321-05872 */ } else { rc = _sqlite3ParseUri(tls, zVfs, zFilename, bp, db, bp+8, bp+16) } @@ -168005,7 +169684,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _sqlite3OomFault(tls, db) } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { - v2 = __ccgo_ts + 3804 + v2 = __ccgo_ts + 3868 } else { v2 = uintptr(0) } @@ -168033,9 +169712,9 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* The default safety_level for the main database is FULL; for the temp ** database it is OFF. This matches the pager layer defaults. */ - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6594 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6658 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).Fsafety_level = uint8(libc.Int32FromInt32(SQLITE_DEFAULT_SYNCHRONOUS) + libc.Int32FromInt32(1)) - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 23751 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 23874 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).Fsafety_level = uint8(PAGER_SYNCHRONOUS_OFF) (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState = uint8(SQLITE_STATE_OPEN) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -168080,6 +169759,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* Enable the lookaside-malloc subsystem */ _setupLookaside(tls, db, uintptr(0), _sqlite3Config.FszLookaside, _sqlite3Config.FnLookaside) Xsqlite3_wal_autocheckpoint(tls, db, int32(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT)) + goto opendb_out opendb_out: ; if db != 0 { @@ -168130,7 +169810,7 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc } if zFilename == uintptr(0) { - zFilename = __ccgo_ts + 24755 + zFilename = __ccgo_ts + 24878 } pVal = _sqlite3ValueNew(tls, uintptr(0)) _sqlite3ValueSetStr(tls, pVal, -int32(1), zFilename, uint8(SQLITE_UTF16LE), libc.UintptrFromInt32(0)) @@ -168351,20 +170031,20 @@ func Xsqlite3_get_autocommit(tls *libc.TLS, db uintptr) (r int32) { func _sqlite3ReportError(tls *libc.TLS, iErr int32, lineno int32, zType uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) - Xsqlite3_log(tls, iErr, __ccgo_ts+24758, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) + Xsqlite3_log(tls, iErr, __ccgo_ts+24881, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) return iErr } func _sqlite3CorruptError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24783) + return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24906) } func _sqlite3MisuseError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24803) + return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24926) } func _sqlite3CantopenError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24810) + return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24933) } // C documentation @@ -168470,6 +170150,7 @@ func Xsqlite3_table_column_metadata(tls *libc.TLS, db uintptr, zDbName uintptr, if !(zCollSeq != 0) { zCollSeq = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } + goto error_out error_out: ; _sqlite3BtreeLeaveAll(tls, db) @@ -168494,11 +170175,11 @@ error_out: } if SQLITE_OK == rc && !(pTab != 0) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24827, libc.VaList(bp+16, zTableName, zColumnName)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24950, libc.VaList(bp+16, zTableName, zColumnName)) rc = int32(SQLITE_ERROR) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v3 = __ccgo_ts + 3804 + v3 = __ccgo_ts + 3868 } else { v3 = uintptr(0) } @@ -168937,7 +170618,7 @@ func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) (r int32) { */ fallthrough case int32(SQLITE_TESTCTRL_ISINIT): - if _sqlite3Config.FisInit == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 { rc = int32(SQLITE_ERROR) } break @@ -169527,7 +171208,7 @@ func Xsqlite3_compileoption_used(tls *libc.TLS, zOptName uintptr) (r int32) { var _ /* nOpt at bp+0 */ int32 _, _, _ = azCompileOpt, i, n azCompileOpt = _sqlite3CompileOptions(tls, bp) - if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24855, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24978, int32(7)) == 0 { zOptName += uintptr(7) } n = _sqlite3Strlen30(tls, zOptName) @@ -169749,7 +171430,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui _leaveMutex(tls) _ = libc.Int32FromInt32(0) if rc != 0 { - v2 = __ccgo_ts + 24863 + v2 = __ccgo_ts + 24986 } else { v2 = uintptr(0) } @@ -170632,23 +172313,23 @@ func _sqlite3ConnectionClosed(tls *libc.TLS, db uintptr) { // ** string must correspond to the JSONB_* integer above. // */ var _jsonbType = [17]uintptr{ - 0: __ccgo_ts + 1643, - 1: __ccgo_ts + 7895, - 2: __ccgo_ts + 7900, - 3: __ccgo_ts + 6315, - 4: __ccgo_ts + 6315, - 5: __ccgo_ts + 6310, - 6: __ccgo_ts + 6310, - 7: __ccgo_ts + 8206, - 8: __ccgo_ts + 8206, - 9: __ccgo_ts + 8206, - 10: __ccgo_ts + 8206, - 11: __ccgo_ts + 24886, - 12: __ccgo_ts + 24892, - 13: __ccgo_ts + 1657, - 14: __ccgo_ts + 1657, - 15: __ccgo_ts + 1657, - 16: __ccgo_ts + 1657, + 0: __ccgo_ts + 1657, + 1: __ccgo_ts + 8020, + 2: __ccgo_ts + 8025, + 3: __ccgo_ts + 6379, + 4: __ccgo_ts + 6379, + 5: __ccgo_ts + 6374, + 6: __ccgo_ts + 6374, + 7: __ccgo_ts + 8331, + 8: __ccgo_ts + 8331, + 9: __ccgo_ts + 8331, + 10: __ccgo_ts + 8331, + 11: __ccgo_ts + 25009, + 12: __ccgo_ts + 25015, + 13: __ccgo_ts + 1671, + 14: __ccgo_ts + 1671, + 15: __ccgo_ts + 1671, + 16: __ccgo_ts + 1671, } // C documentation @@ -171419,6 +173100,46 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { _jsonAppendChar(tls, p, uint8(',')) } +// C documentation +// +// /* c is a control character. Append the canonical JSON representation +// ** of that control character to p. +// ** +// ** This routine assumes that the output buffer has already been enlarged +// ** sufficiently to hold the worst-case encoding plus a nul terminator. +// */ +func _jsonAppendControlChar(tls *libc.TLS, p uintptr, c Tu8) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if _aSpecial[c] != 0 { + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = uint8('\\') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = _aSpecial[c] + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(2) + } else { + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = uint8('\\') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = uint8('u') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(2)))) = uint8('0') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(3)))) = uint8('0') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(4)))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 25022 + uintptr(int32(c)>>int32(4)))) + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(5)))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 25022 + uintptr(int32(c)&int32(0xf)))) + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(6) + } +} + +var _aSpecial = [32]uint8{ + 8: uint8('b'), + 9: uint8('t'), + 10: uint8('n'), + 12: uint8('f'), + 13: uint8('r'), +} + // C documentation // // /* Append the N-byte string in zIn to the end of the JsonString string @@ -171432,9 +173153,9 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { var c Tu8 var k Tu32 - var z, v10, v12, v14, v16, v18, v2, v20, v22, v24, v6, v8 uintptr - var v1, v11, v13, v15, v17, v19, v21, v23, v5, v7, v9 Tu64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v5, v6, v7, v8, v9 + var z, v10, v2, v4, v6, v8 uintptr + var v1, v3, v5, v7, v9 Tu64 + _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v2, v3, v4, v5, v6, v7, v8, v9 z = zIn if z == uintptr(0) { return @@ -171491,90 +173212,41 @@ func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { N -= k } c = *(*Tu8)(unsafe.Pointer(z)) - if !(int32(c) == int32('"') || int32(c) == int32('\\')) { - goto _3 - } - json_simple_escape: - ; - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { - return - } - v6 = p + 24 - v5 = *(*Tu64)(unsafe.Pointer(v6)) - *(*Tu64)(unsafe.Pointer(v6))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = uint8('\\') - v8 = p + 24 - v7 = *(*Tu64)(unsafe.Pointer(v8)) - *(*Tu64)(unsafe.Pointer(v8))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = c - goto _4 - _3: - ; - if int32(c) == int32('\'') { - v10 = p + 24 - v9 = *(*Tu64)(unsafe.Pointer(v10)) - *(*Tu64)(unsafe.Pointer(v10))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = c - } else { - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - if _aSpecial[c] != 0 { - c = _aSpecial[c] - goto json_simple_escape - } - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + if int32(c) == int32('"') || int32(c) == int32('\\') { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { return } - v12 = p + 24 - v11 = *(*Tu64)(unsafe.Pointer(v12)) - *(*Tu64)(unsafe.Pointer(v12))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v11))) = uint8('\\') - v14 = p + 24 - v13 = *(*Tu64)(unsafe.Pointer(v14)) - *(*Tu64)(unsafe.Pointer(v14))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v13))) = uint8('u') - v16 = p + 24 - v15 = *(*Tu64)(unsafe.Pointer(v16)) - *(*Tu64)(unsafe.Pointer(v16))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v15))) = uint8('0') - v18 = p + 24 - v17 = *(*Tu64)(unsafe.Pointer(v18)) - *(*Tu64)(unsafe.Pointer(v18))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v17))) = uint8('0') - v20 = p + 24 - v19 = *(*Tu64)(unsafe.Pointer(v20)) - *(*Tu64)(unsafe.Pointer(v20))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v19))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 24899 + uintptr(int32(c)>>int32(4)))) - v22 = p + 24 - v21 = *(*Tu64)(unsafe.Pointer(v22)) - *(*Tu64)(unsafe.Pointer(v22))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v21))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 24899 + uintptr(int32(c)&int32(0xf)))) + v4 = p + 24 + v3 = *(*Tu64)(unsafe.Pointer(v4)) + *(*Tu64)(unsafe.Pointer(v4))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v3))) = uint8('\\') + v6 = p + 24 + v5 = *(*Tu64)(unsafe.Pointer(v6)) + *(*Tu64)(unsafe.Pointer(v6))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = c + } else { + if int32(c) == int32('\'') { + v8 = p + 24 + v7 = *(*Tu64)(unsafe.Pointer(v8)) + *(*Tu64)(unsafe.Pointer(v8))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = c + } else { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + return + } + _jsonAppendControlChar(tls, p, c) + } } - _4: - ; z++ N-- } - v24 = p + 24 - v23 = *(*Tu64)(unsafe.Pointer(v24)) - *(*Tu64)(unsafe.Pointer(v24))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v23))) = uint8('"') + v10 = p + 24 + v9 = *(*Tu64)(unsafe.Pointer(v10)) + *(*Tu64)(unsafe.Pointer(v10))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = uint8('"') _ = libc.Int32FromInt32(0) } -var _aSpecial = [32]uint8{ - 8: uint8('b'), - 9: uint8('t'), - 10: uint8('n'), - 12: uint8('f'), - 13: uint8('r'), -} - // C documentation // // /* @@ -171590,9 +173262,9 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _, _, _, _ = n, n1, z, z1 switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_NULL): - _jsonAppendRawNZ(tls, p, __ccgo_ts+1643, uint32(4)) + _jsonAppendRawNZ(tls, p, __ccgo_ts+1657, uint32(4)) case int32(SQLITE_FLOAT): - _jsonPrintf(tls, int32(100), p, __ccgo_ts+15332, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) + _jsonPrintf(tls, int32(100), p, __ccgo_ts+15425, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) case int32(SQLITE_INTEGER): z = Xsqlite3_value_text(tls, pValue) n = uint32(Xsqlite3_value_bytes(tls, pValue)) @@ -171613,7 +173285,7 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _jsonTranslateBlobToText(tls, bp, uint32(0), p) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr) == 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24916, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25039, -int32(1)) (*TJsonString)(unsafe.Pointer(p)).FeErr = uint8(JSTRING_ERR) _jsonStringReset(tls, p) } @@ -171669,7 +173341,7 @@ func _jsonReturnString(tls *libc.TLS, p uintptr, pParse uintptr, ctx uintptr) { Xsqlite3_result_error_nomem(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr)&int32(JSTRING_MALFORMED) != 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25068, -int32(1)) } } } @@ -171917,6 +173589,7 @@ func _json5Whitespace(tls *libc.TLS, zIn uintptr) (r int32) { goto whitespace_done } } + goto whitespace_done whitespace_done: ; return n @@ -171952,8 +173625,8 @@ var _aNanInfName = [5]TNanInfName{ Fn: uint8(3), FeType: uint8(JSONB_FLOAT), FnRepl: uint8(7), - FzMatch: __ccgo_ts + 24960, - FzRepl: __ccgo_ts + 24964, + FzMatch: __ccgo_ts + 25083, + FzRepl: __ccgo_ts + 25087, }, 1: { Fc1: uint8('i'), @@ -171961,32 +173634,32 @@ var _aNanInfName = [5]TNanInfName{ Fn: uint8(8), FeType: uint8(JSONB_FLOAT), FnRepl: uint8(7), - FzMatch: __ccgo_ts + 24972, - FzRepl: __ccgo_ts + 24964, + FzMatch: __ccgo_ts + 25095, + FzRepl: __ccgo_ts + 25087, }, 2: { Fc1: uint8('n'), Fc2: uint8('N'), Fn: uint8(3), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 1648, - FzRepl: __ccgo_ts + 1643, + FzMatch: __ccgo_ts + 1662, + FzRepl: __ccgo_ts + 1657, }, 3: { Fc1: uint8('q'), Fc2: uint8('Q'), Fn: uint8(4), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 24981, - FzRepl: __ccgo_ts + 1643, + FzMatch: __ccgo_ts + 25104, + FzRepl: __ccgo_ts + 1657, }, 4: { Fc1: uint8('s'), Fc2: uint8('S'), Fn: uint8(4), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 24986, - FzRepl: __ccgo_ts + 1643, + FzMatch: __ccgo_ts + 25109, + FzRepl: __ccgo_ts + 1657, }, } @@ -172001,7 +173674,7 @@ func _jsonWrongNumArgs(tls *libc.TLS, pCtx uintptr, zFuncName uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24991, libc.VaList(bp+8, zFuncName)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25114, libc.VaList(bp+8, zFuncName)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) } @@ -172455,30 +174128,37 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept return j + uint32(1) } } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) <= int32(0x1f) { + /* Control characters in JSON5 string literals are ok */ + if int32(x) == int32(JSONB_TEXTJ) { + return j + uint32(1) + } } else { - if libc.Xstrchr(tls, __ccgo_ts+25034, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { - j++ + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { + return j + uint32(1) } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { - if j+uint32(5) >= k { - return j + uint32(1) - } - if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { - return j + uint32(1) - } + if libc.Xstrchr(tls, __ccgo_ts+25157, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { j++ } else { - if int32(x) != int32(JSONB_TEXT5) { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { + if j+uint32(5) >= k { + return j + uint32(1) + } + if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { + return j + uint32(1) + } + j++ } else { - *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) - szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) - if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + if int32(x) != int32(JSONB_TEXT5) { return j + uint32(1) + } else { + *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) + szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) + if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + return j + uint32(1) + } + j += szC - uint32(1) } - j += szC - uint32(1) } } } @@ -172576,6 +174256,7 @@ func _jsonTranslateTextToBlob(tls *libc.TLS, pParse uintptr, i Tu32) (r int32) { var _ /* op at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cDelim, iBlob, iStart, iThis, j, k, k1, nn, opcode, seenE, t, x, z, v40, v41, v43, v44, v46, v48 z = (*TJsonParse)(unsafe.Pointer(pParse)).FzJson + goto json_parse_restart json_parse_restart: ; switch int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) { @@ -172731,6 +174412,7 @@ _1: } j = (*TJsonParse)(unsafe.Pointer(pParse)).FiErr + uint32(1) } + goto parse_object_value parse_object_value: ; x = _jsonTranslateTextToBlob(tls, pParse, j) @@ -172858,6 +174540,7 @@ _3: ; /* Parse string */ opcode = uint8(JSONB_TEXT) + goto parse_string parse_string: ; cDelim = *(*uint8)(unsafe.Pointer(z + uintptr(i))) @@ -172906,9 +174589,14 @@ parse_string: } } else { if int32(c) <= int32(0x1f) { - /* Control characters are not allowed in strings */ - (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j - return -int32(1) + if int32(c) == 0 { + (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j + return -int32(1) + } + /* Control characters are not allowed in canonical JSON string + ** literals, but are allowed in JSON5 string literals. */ + opcode = uint8(JSONB_TEXT5) + (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) } else { if int32(c) == int32('"') { opcode = uint8(JSONB_TEXT5) @@ -172922,7 +174610,7 @@ parse_string: return int32(j + uint32(1)) _5: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7895, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8020, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_TRUE)) return int32(i + uint32(4)) } @@ -172930,7 +174618,7 @@ _5: return -int32(1) _6: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7900, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(5))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8025, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(5))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_FALSE)) return int32(i + uint32(5)) } @@ -172975,6 +174663,7 @@ _8: ; /* Parse number */ t = uint8(0x00) /* Bit 0x01: JSON5. Bit 0x02: FLOAT */ + goto parse_number parse_number: ; seenE = uint8(0) @@ -173010,14 +174699,14 @@ parse_number: /* JSON5 allows for "+Infinity" and "-Infinity" using exactly ** that case. SQLite also allows these in any case and it allows ** "+inf" and "-inf". */ - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+24960, int32(3)) == 0 { + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+25083, int32(3)) == 0 { (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('-') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25043) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25166) } else { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25050) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25173) } - if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25056, int32(5)) == 0 { + if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25179, int32(5)) == 0 { v48 = int32(9) } else { v48 = int32(4) @@ -173056,6 +174745,7 @@ parse_number: } } } + goto parse_number_2 parse_number_2: ; j = i + uint32(1) @@ -173114,6 +174804,7 @@ parse_number_2: return -int32(1) } } + goto parse_number_finish parse_number_finish: ; _ = libc.Int32FromInt32(0) @@ -173179,11 +174870,10 @@ _29: return -int32(1) _37: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1643, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1657, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) return int32(i + uint32(4)) } - /* fall-through into the default case that checks for NaN */ _38: ; c = *(*uint8)(unsafe.Pointer(z + uintptr(i))) @@ -173203,7 +174893,7 @@ _38: goto _51 } if int32(_aNanInfName[k1].FeType) == int32(JSONB_FLOAT) { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25050) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25173) } else { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) } @@ -173248,7 +174938,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 i += _json5Whitespace(tls, zJson+uintptr(i)) if *(*uint8)(unsafe.Pointer(zJson + uintptr(i))) != 0 { if pCtx != 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25068, -int32(1)) } _jsonParseReset(tls, pParse) return int32(1) @@ -173261,7 +174951,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 if (*TJsonParse)(unsafe.Pointer(pParse)).Foom != 0 { Xsqlite3_result_error_nomem(tls, pCtx) } else { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25068, -int32(1)) } } _jsonParseReset(tls, pParse) @@ -173426,15 +175116,15 @@ func _jsonTranslateBlobToText(tls *libc.TLS, pParse uintptr, i Tu32, pOut uintpt goto _16 _2: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1643, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1657, uint32(4)) return i + uint32(1) _3: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7895, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8020, uint32(4)) return i + uint32(1) _4: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7900, uint32(5)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8025, uint32(5)) return i + uint32(1) _6: ; @@ -173483,9 +175173,9 @@ _7: k++ } if bOverflow != 0 { - v19 = __ccgo_ts + 24964 + v19 = __ccgo_ts + 25087 } else { - v19 = __ccgo_ts + 11762 + v19 = __ccgo_ts + 11887 } _jsonPrintf(tls, int32(100), pOut, v19, libc.VaList(bp+16, u)) goto _16 @@ -173533,7 +175223,7 @@ _11: for sz2 > uint32(0) { k2 = uint32(0) for { - if !(k2 < sz2 && int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('\\') && int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('"')) { + if !(k2 < sz2 && (_jsonIsOk[*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))] != 0 || int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) == int32('\''))) { break } goto _21 @@ -173550,7 +175240,16 @@ _11: sz2 -= k2 } if int32(*(*uint8)(unsafe.Pointer(zIn2))) == int32('"') { - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25062, uint32(2)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25185, uint32(2)) + zIn2++ + sz2-- + continue + } + if int32(*(*uint8)(unsafe.Pointer(zIn2))) <= int32(0x1f) { + if (*TJsonString)(unsafe.Pointer(pOut)).FnUsed+uint64(7) > (*TJsonString)(unsafe.Pointer(pOut)).FnAlloc && _jsonStringGrow(tls, pOut, uint32(7)) != 0 { + break + } + _jsonAppendControlChar(tls, pOut, *(*uint8)(unsafe.Pointer(zIn2))) zIn2++ sz2-- continue @@ -173566,7 +175265,7 @@ _11: case int32('\''): _jsonAppendChar(tls, pOut, uint8('\'')) case int32('v'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25065, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25188, uint32(6)) case int32('x'): if sz2 < uint32(4) { p23 = pOut + 33 @@ -173574,12 +175273,12 @@ _11: sz2 = uint32(2) break } - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25072, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25195, uint32(4)) _jsonAppendRawNZ(tls, pOut, zIn2+2, uint32(2)) zIn2 += uintptr(2) sz2 -= uint32(2) case int32('0'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25077, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25200, uint32(6)) case int32('\r'): if sz2 > uint32(2) && int32(*(*uint8)(unsafe.Pointer(zIn2 + 2))) == int32('\n') { zIn2++ @@ -173658,6 +175357,7 @@ _14: goto _16 _15: ; + goto malformed_jsonb malformed_jsonb: ; p29 = pOut + 33 @@ -173668,6 +175368,140 @@ _16: return i + n + *(*Tu32)(unsafe.Pointer(bp)) } +// C documentation +// +// /* Context for recursion of json_pretty() +// */ +type TJsonPretty = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty = TJsonPretty + +type TJsonPretty1 = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty1 = TJsonPretty1 + +// C documentation +// +// /* Append indentation to the pretty JSON under construction */ +func _jsonPrettyIndent(tls *libc.TLS, pPretty uintptr) { + var jj Tu32 + _ = jj + jj = uint32(0) + for { + if !(jj < (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent) { + break + } + _jsonAppendRaw(tls, (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut, (*TJsonPretty)(unsafe.Pointer(pPretty)).FzIndent, (*TJsonPretty)(unsafe.Pointer(pPretty)).FszIndent) + goto _1 + _1: + ; + jj++ + } +} + +// C documentation +// +// /* +// ** Translate the binary JSONB representation of JSON beginning at +// ** pParse->aBlob[i] into a JSON text string. Append the JSON +// ** text onto the end of pOut. Return the index in pParse->aBlob[] +// ** of the first byte past the end of the element that is translated. +// ** +// ** This is a variant of jsonTranslateBlobToText() that "pretty-prints" +// ** the output. Extra whitespace is inserted to make the JSON easier +// ** for humans to read. +// ** +// ** If an error is detected in the BLOB input, the pOut->eErr flag +// ** might get set to JSTRING_MALFORMED. But not all BLOB input errors +// ** are detected. So a malformed JSONB input might either result +// ** in an error, or in incorrect JSON. +// ** +// ** The pOut->eErr JSTRING_OOM flag is set on a OOM. +// */ +func _jsonTranslateBlobToPrettyText(tls *libc.TLS, pPretty uintptr, i Tu32) (r Tu32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var iEnd, j, n Tu32 + var pOut, pParse, p1, p2 uintptr + var _ /* sz at bp+0 */ Tu32 + _, _, _, _, _, _, _ = iEnd, j, n, pOut, pParse, p1, p2 + pParse = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpParse + pOut = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut + n = _jsonbPayloadSize(tls, pParse, i, bp) + if n == uint32(0) { + p1 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + return (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob + uint32(1) + } + switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { + case int32(JSONB_ARRAY): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, uint8('[')) + if j < iEnd { + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25207, uint32(2)) + } + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, uint8(']')) + i = iEnd + case int32(JSONB_OBJECT): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, uint8('{')) + if j < iEnd { + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToText(tls, pParse, j, pOut) + if j > iEnd { + p2 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p2)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p2))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25210, uint32(2)) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25207, uint32(2)) + } + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, uint8('}')) + i = iEnd + default: + i = _jsonTranslateBlobToText(tls, pParse, i, pOut) + break + } + return i +} + // C documentation // // /* Return true if the input pJson @@ -174395,7 +176229,7 @@ func _jsonReturnFromBlob(tls *libc.TLS, pParse uintptr, i Tu32, pCtx uintptr, te db = Xsqlite3_context_db_handle(tls, pCtx) n = _jsonbPayloadSize(tls, pParse, i, bp) if n == uint32(0) { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25068, -int32(1)) return } switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { @@ -174504,6 +176338,7 @@ _6: if *(*Tu32)(unsafe.Pointer(bp)) == uint32(0) { goto returnfromblob_malformed } + goto to_double to_double: ; z1 = _sqlite3DbStrNDup(tls, db, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(i+n), uint64(int32(*(*Tu32)(unsafe.Pointer(bp))))) @@ -174626,13 +176461,15 @@ _14: _15: ; return + goto returnfromblob_oom returnfromblob_oom: ; Xsqlite3_result_error_nomem(tls, pCtx) return + goto returnfromblob_malformed returnfromblob_malformed: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25068, -int32(1)) return } @@ -174673,7 +176510,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob = Xsqlite3_value_blob(tls, pArg) (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob = uint32(Xsqlite3_value_bytes(tls, pArg)) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24916, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25039, -int32(1)) return int32(1) } case int32(SQLITE_TEXT): @@ -174686,7 +176523,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FzJson = zJson (*TJsonParse)(unsafe.Pointer(pParse)).FnJson = nJson if _jsonConvertTextToBlob(tls, pParse, ctx) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25068, -int32(1)) _sqlite3DbFree(tls, (*TJsonParse)(unsafe.Pointer(pParse)).Fdb, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob) libc.Xmemset(tls, pParse, 0, uint64(72)) return int32(1) @@ -174705,10 +176542,10 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin return int32(1) } if int32(*(*uint8)(unsafe.Pointer(z))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25050) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25173) } else { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('-') && int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25043) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25166) } else { _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(n), z) } @@ -174747,7 +176584,7 @@ func _jsonBadPathError(tls *libc.TLS, ctx uintptr, zPath uintptr) (r uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25084, libc.VaList(bp+8, zPath)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25213, libc.VaList(bp+8, zPath)) if ctx == uintptr(0) { return zMsg } @@ -174840,11 +176677,12 @@ func _jsonInsertIntoBlob(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr, e _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto jsonInsertIntoBlob_patherror jsonInsertIntoBlob_patherror: ; _jsonParseFree(tls, p) if rc == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25068, -int32(1)) } else { _jsonBadPathError(tls, ctx, zPath) } @@ -174929,6 +176767,7 @@ func _jsonParseFuncArg(tls *libc.TLS, ctx uintptr, pArg uintptr, flgs Tu32) (r u } } db = Xsqlite3_context_db_handle(tls, ctx) + goto rebuild_from_cache rebuild_from_cache: ; p = _sqlite3DbMallocZero(tls, db, uint64(72)) @@ -175019,6 +176858,7 @@ rebuild_from_cache: } } return p + goto json_pfa_malformed json_pfa_malformed: ; if flgs&uint32(JSON_KEEPERROR) != 0 { @@ -175026,9 +176866,10 @@ json_pfa_malformed: return p } else { _jsonParseFree(tls, p) - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25068, -int32(1)) return uintptr(0) } + goto json_pfa_oom json_pfa_oom: ; _jsonParseFree(tls, pFromCache) @@ -175160,7 +177001,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if int32(*(*uint8)(unsafe.Pointer(zPath))) == int32('$') { v1 = zPath + uintptr(1) } else { - v1 = __ccgo_ts + 25102 + v1 = __ccgo_ts + 25231 } i = _jsonLookupStep(tls, p, uint32(0), v1, uint32(0)) if i >= uint32(JSON_LOOKUP_PATHERROR) { @@ -175170,7 +177011,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25068, -int32(1)) } } eErr = uint8(1) @@ -175188,25 +177029,6 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) _jsonParseFree(tls, p) } -// C documentation -// -// /* True if the string is all digits */ -func _jsonAllDigits(tls *libc.TLS, z uintptr, n int32) (r int32) { - var i int32 - _ = i - i = 0 - for { - if !(i < n && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _1 - _1: - ; - i++ - } - return libc.BoolInt32(i == n) -} - // C documentation // // /* True if the string is all alphanumerics and underscores */ @@ -175293,21 +177115,21 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { ** [NUMBER] ==> $[NUMBER] // Not PG. Purely for convenience */ _jsonStringInit(tls, bp, ctx) - if _jsonAllDigits(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25104, uint32(1)) + if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) == int32(SQLITE_INTEGER) { + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25233, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+5170, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+5234, uint32(2)) } else { if _jsonAllAlphanum(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1670, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1684, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { if int32(*(*uint8)(unsafe.Pointer(zPath))) == int32('[') && nPath >= int32(3) && int32(*(*uint8)(unsafe.Pointer(zPath + uintptr(nPath-int32(1))))) == int32(']') { _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25106, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25235, uint32(2)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25109, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25238, uint32(1)) } } } @@ -175344,11 +177166,11 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { goto json_extract_error /* Return NULL if not found */ } else { _jsonAppendSeparator(tls, bp) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1643, uint32(4)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1657, uint32(4)) } } else { if j == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25068, -int32(1)) goto json_extract_error } else { _jsonBadPathError(tls, ctx, zPath) @@ -175368,6 +177190,7 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } } + goto json_extract_error json_extract_error: ; _jsonStringReset(tls, bp) @@ -175618,7 +177441,7 @@ func _jsonPatchFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == int32(JSON_MERGE_OOM) { Xsqlite3_result_error_nomem(tls, ctx) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25068, -int32(1)) } } _jsonParseFree(tls, pPatch) @@ -175642,7 +177465,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { var _ /* jx at bp+0 */ TJsonString _, _, _ = i, n, z if argc&int32(1) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25111, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25240, -int32(1)) return } _jsonStringInit(tls, bp, ctx) @@ -175653,7 +177476,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { break } if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) != int32(SQLITE_TEXT) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25162, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25291, -int32(1)) _jsonStringReset(tls, bp) return } @@ -175725,7 +177548,7 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25068, -int32(1)) } } goto json_remove_done @@ -175738,9 +177561,11 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto json_remove_patherror json_remove_patherror: ; _jsonBadPathError(tls, ctx, zPath) + goto json_remove_done json_remove_done: ; _jsonParseFree(tls, p) @@ -175760,7 +177585,7 @@ func _jsonReplaceFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { return } if argc&int32(1) == 0 { - _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15805) + _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15898) return } _jsonInsertIntoBlob(tls, ctx, argc, argv, int32(JEDIT_REPL)) @@ -175791,9 +177616,9 @@ func _jsonSetFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { } if argc&int32(1) == 0 { if bIsSet != 0 { - v1 = __ccgo_ts + 25196 + v1 = __ccgo_ts + 25325 } else { - v1 = __ccgo_ts + 25200 + v1 = __ccgo_ts + 25329 } _jsonWrongNumArgs(tls, ctx, v1) return @@ -175841,7 +177666,7 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25068, -int32(1)) } } goto json_type_done @@ -175850,11 +177675,54 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { i = uint32(0) } Xsqlite3_result_text(tls, ctx, _jsonbType[int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(p)).FaBlob + uintptr(i))))&int32(0x0f)], -int32(1), libc.UintptrFromInt32(0)) + goto json_type_done json_type_done: ; _jsonParseFree(tls, p) } +// C documentation +// +// /* +// ** json_pretty(JSON) +// ** json_pretty(JSON, INDENT) +// ** +// ** Return text that is a pretty-printed rendering of the input JSON. +// ** If the argument is not valid JSON, return NULL. +// ** +// ** The INDENT argument is text that is used for indentation. If omitted, +// ** it defaults to four spaces (the same as PostgreSQL). +// */ +func _jsonPrettyFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { + bp := tls.Alloc(176) + defer tls.Free(176) + var v1 uintptr + var v2 bool + var _ /* s at bp+0 */ TJsonString + var _ /* x at bp+136 */ TJsonPretty + _, _ = v1, v2 /* Pretty printing context */ + libc.Xmemset(tls, bp+136, 0, uint64(32)) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse = _jsonParseFuncArg(tls, ctx, *(*uintptr)(unsafe.Pointer(argv)), uint32(0)) + if (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse == uintptr(0) { + return + } + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpOut = bp + _jsonStringInit(tls, bp, ctx) + if v2 = argc == int32(1); !v2 { + v1 = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = v1 + } + if v2 || v1 == uintptr(0) { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = __ccgo_ts + 25336 + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(4) + } else { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(libc.Xstrlen(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent)) + } + _jsonTranslateBlobToPrettyText(tls, bp+136, uint32(0)) + _jsonReturnString(tls, bp, uintptr(0), uintptr(0)) + _jsonParseFree(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse) +} + // C documentation // // /* @@ -175929,7 +177797,7 @@ func _jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if argc == int32(2) { f = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if f < int64(1) || f > int64(15) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25207, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25341, -int32(1)) return } flags = uint8(f & int64(0x0f)) @@ -176119,7 +177987,7 @@ func _jsonArrayCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25264, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25398, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -176268,7 +178136,7 @@ func _jsonObjectCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25267, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25401, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -176371,7 +178239,7 @@ func _jsonEachConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv _ = argv _ = argc _ = pAux - rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25270) + rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25404) if rc == SQLITE_OK { pNew = _sqlite3DbMallocZero(tls, db, uint64(32)) *(*uintptr)(unsafe.Pointer(ppVtab)) = pNew @@ -176507,7 +178375,7 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TJsonEachCursor)(unsafe.Pointer(p)).FeType) == int32(JSONB_ARRAY) { - _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25353, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) + _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25487, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) } else { *(*Tu32)(unsafe.Pointer(bp)) = uint32(0) needQuote = 0 @@ -176533,9 +178401,9 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { } } if needQuote != 0 { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25360, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25494, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } else { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25368, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25502, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } } } @@ -176925,7 +178793,7 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a i = v5 (*TJsonEachCursor)(unsafe.Pointer(p)).FeType = uint8(0) (*TJsonEachCursor)(unsafe.Pointer(p)).FnRoot = uint32(1) - _jsonAppendRaw(tls, p+56, __ccgo_ts+25374, uint32(1)) + _jsonAppendRaw(tls, p+56, __ccgo_ts+25508, uint32(1)) } (*TJsonEachCursor)(unsafe.Pointer(p)).FnParent = uint32(0) n = _jsonbPayloadSize(tls, p+192, i, bp) @@ -176945,10 +178813,11 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent))).FiValue = i } return SQLITE_OK + goto json_each_malformed_input json_each_malformed_input: ; Xsqlite3_free(tls, (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg) - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24945, 0) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25068, 0) _jsonEachCursorReset(tls, p) if (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg != 0 { v6 = int32(SQLITE_ERROR) @@ -177002,183 +178871,193 @@ func init() { // ** Register JSON functions. // */ func _sqlite3RegisterJsonFunctions(tls *libc.TLS) { - _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2304)/libc.Uint64FromInt64(72))) + _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2448)/libc.Uint64FromInt64(72))) } -var _aJsonFunc = [32]TFuncDef{ +var _aJsonFunc = [34]TFuncDef{ 0: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25376, + FzName: __ccgo_ts + 25510, }, 1: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25381, + FzName: __ccgo_ts + 25515, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25387, + FzName: __ccgo_ts + 25521, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25398, + FzName: __ccgo_ts + 25532, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25410, + FzName: __ccgo_ts + 25544, }, 5: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25410, + FzName: __ccgo_ts + 25544, }, 6: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25428, + FzName: __ccgo_ts + 25562, }, 7: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25448, + FzName: __ccgo_ts + 25582, }, 8: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25461, + FzName: __ccgo_ts + 25595, }, 9: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_JSON) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25475, + FzName: __ccgo_ts + 25609, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_SQL) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25478, + FzName: __ccgo_ts + 25612, }, 11: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25482, + FzName: __ccgo_ts + 25616, }, 12: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25494, + FzName: __ccgo_ts + 25628, }, 13: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25507, + FzName: __ccgo_ts + 25641, }, 14: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25519, + FzName: __ccgo_ts + 25653, }, 15: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25532, + FzName: __ccgo_ts + 25666, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25543, + FzName: __ccgo_ts + 25677, }, 17: { FnArg: int8(1), - FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25555, + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25689, }, 18: { + FnArg: int8(2), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25689, + }, + 19: { + FnArg: int8(1), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25701, + }, + 20: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25566, + FzName: __ccgo_ts + 25712, }, - 19: { + 21: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25578, + FzName: __ccgo_ts + 25724, }, - 20: { + 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25591, + FzName: __ccgo_ts + 25737, }, - 21: { + 23: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25604, + FzName: __ccgo_ts + 25750, }, - 22: { + 24: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25618, + FzName: __ccgo_ts + 25764, }, - 23: { + 25: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25627, + FzName: __ccgo_ts + 25773, }, - 24: { + 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25637, + FzName: __ccgo_ts + 25783, }, - 25: { + 27: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25637, + FzName: __ccgo_ts + 25783, }, - 26: { + 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25647, + FzName: __ccgo_ts + 25793, }, - 27: { + 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25647, + FzName: __ccgo_ts + 25793, }, - 28: { + 30: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25658, + FzName: __ccgo_ts + 25804, }, - 29: { + 31: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25675, + FzName: __ccgo_ts + 25821, }, - 30: { + 32: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25693, + FzName: __ccgo_ts + 25839, }, - 31: { + 33: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25711, + FzName: __ccgo_ts + 25857, }, } @@ -177201,33 +179080,35 @@ func init() { *(*uintptr)(unsafe.Add(p, 1032)) = __ccgo_fp(_jsonObjectFunc) *(*uintptr)(unsafe.Add(p, 1104)) = __ccgo_fp(_jsonPatchFunc) *(*uintptr)(unsafe.Add(p, 1176)) = __ccgo_fp(_jsonPatchFunc) - *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonQuoteFunc) - *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2048)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2056)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2064)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2120)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2128)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2136)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonQuoteFunc) + *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2208)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2280)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2328)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2336)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2344)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2352)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2400)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2408)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2416)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2424)) = __ccgo_fp(_jsonGroupInverse) } // C documentation @@ -177259,11 +179140,11 @@ var _aMod = [2]struct { FpModule uintptr }{ 0: { - FzName: __ccgo_ts + 25730, + FzName: __ccgo_ts + 25876, FpModule: uintptr(unsafe.Pointer(&_jsonEachModule)), }, 1: { - FzName: __ccgo_ts + 25740, + FzName: __ccgo_ts + 25886, FpModule: uintptr(unsafe.Pointer(&_jsonTreeModule)), }, } @@ -177916,7 +179797,7 @@ func _nodeAcquire(tls *libc.TLS, pRtree uintptr, iNode Ti64, pParent uintptr, pp } } if (*TRtree)(unsafe.Pointer(pRtree)).FpNodeBlob == uintptr(0) { - rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25750, iNode, 0, pRtree+112) + rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25896, iNode, 0, pRtree+112) } if rc != 0 { *(*uintptr)(unsafe.Pointer(ppNode)) = uintptr(0) @@ -178228,7 +180109,7 @@ func _rtreeDestroy(tls *libc.TLS, pVtab uintptr) (r int32) { var rc int32 _, _, _ = pRtree, rc, zCreate pRtree = pVtab - zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25755, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25901, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if !(zCreate != 0) { rc = int32(SQLITE_NOMEM) } else { @@ -179162,7 +181043,7 @@ func _findLeafNode(tls *libc.TLS, pRtree uintptr, iRowid Ti64, ppLeaf uintptr, p func _deserializeGeometry(tls *libc.TLS, pValue uintptr, pCons uintptr) (r int32) { var pBlob, pInfo, pSrc uintptr _, _, _ = pBlob, pInfo, pSrc /* Callback information */ - pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25837) + pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25983) if pSrc == uintptr(0) { return int32(SQLITE_ERROR) } @@ -179217,7 +181098,7 @@ func _rtreeFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintp iRowid = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) *(*Ti64)(unsafe.Pointer(bp + 24)) = 0 eType = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv))) - if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv))) == float64(iRowid) { + if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && 0 == _sqlite3IntFloatCompare(tls, iRowid, Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))) { rc = _findLeafNode(tls, pRtree, iRowid, bp+16, bp+24) } else { rc = SQLITE_OK @@ -180272,6 +182153,7 @@ func _SplitNode(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iHe rc = _nodeRelease(tls, pRtree, pLeft) pLeft = uintptr(0) } + goto splitnode_out splitnode_out: ; _nodeRelease(tls, pRtree, pRight) @@ -180705,7 +182587,7 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) _, _, _, _, _, _ = rc, zCol, zCol1, zCol2, zSql, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) _ = libc.Int32FromInt32(0) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25851, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25997, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if zSql != 0 { rc = Xsqlite3_prepare_v2(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, -int32(1), bp, uintptr(0)) } else { @@ -180715,11 +182597,11 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) if rc == SQLITE_OK { if iCol == 0 { zCol = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25871, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26017, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) } else { zCol1 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol) zCol2 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol+int32(1)) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25903, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26049, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) } } Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -180882,6 +182764,7 @@ func _rtreeUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pRow rc = Xsqlite3_reset(tls, pUp) } } + goto constraint constraint: ; _rtreeRelease(tls, pRtree) @@ -180897,6 +182780,7 @@ func _rtreeBeginTransaction(tls *libc.TLS, pVtab uintptr) (r int32) { var pRtree uintptr _ = pRtree pRtree = pVtab + _ = libc.Int32FromInt32(0) (*TRtree)(unsafe.Pointer(pRtree)).FinWrTrans = uint8(1) return SQLITE_OK } @@ -180933,7 +182817,7 @@ func _rtreeRename(tls *libc.TLS, pVtab uintptr, zNewName uintptr) (r int32) { _, _, _ = pRtree, rc, zSql pRtree = pVtab rc = int32(SQLITE_NOMEM) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25940, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26086, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) if zSql != 0 { _nodeBlobReset(tls, pRtree) rc = Xsqlite3_exec(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, uintptr(0), uintptr(0), uintptr(0)) @@ -180987,9 +182871,9 @@ func _rtreeQueryStat1(tls *libc.TLS, db uintptr, pRtree uintptr) (r int32) { var v2 int64 var _ /* p at bp+0 */ uintptr _, _, _, _, _, _ = nRow, rc, zFmt, zSql, v1, v2 - zFmt = __ccgo_ts + 26085 + zFmt = __ccgo_ts + 26231 nRow = int64(RTREE_MIN_ROWEST) - rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11591, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11716, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc != SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FnRowEst = int64(RTREE_DEFAULT_ROWEST) if rc == int32(SQLITE_ERROR) { @@ -181047,9 +182931,9 @@ func _rtreeShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName1 = [3]uintptr{ - 0: __ccgo_ts + 26141, - 1: __ccgo_ts + 5493, - 2: __ccgo_ts + 16703, + 0: __ccgo_ts + 26287, + 1: __ccgo_ts + 5557, + 2: __ccgo_ts + 16790, } var _rtreeModule = Tsqlite3_module{ @@ -181093,21 +182977,21 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref (*TRtree)(unsafe.Pointer(pRtree)).Fdb = db if isCreate != 0 { p = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26555, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26701, libc.VaList(bp+8, zDb, zPrefix)) ii = 0 for { if !(ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26617, libc.VaList(bp+8, ii)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26763, libc.VaList(bp+8, ii)) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26622, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26686, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26756, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26768, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26832, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26902, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) zCreate = Xsqlite3_str_finish(tls, p) if !(zCreate != 0) { return int32(SQLITE_NOMEM) @@ -181137,7 +183021,7 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } else { /* An UPSERT is very slightly slower than REPLACE, but it is needed ** if there are auxiliary columns */ - zFormat = __ccgo_ts + 26805 + zFormat = __ccgo_ts + 26951 } zSql = Xsqlite3_mprintf(tls, zFormat, libc.VaList(bp+8, zDb, zPrefix)) if zSql != 0 { @@ -181152,31 +183036,31 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref i++ } if (*TRtree)(unsafe.Pointer(pRtree)).FnAux != 0 && rc != int32(SQLITE_NOMEM) { - (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+26913, libc.VaList(bp+8, zDb, zPrefix)) + (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+27059, libc.VaList(bp+8, zDb, zPrefix)) if (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { p1 = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26958, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27104, libc.VaList(bp+8, zDb, zPrefix)) ii1 = 0 for { if !(ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } if ii1 != 0 { - Xsqlite3_str_append(tls, p1, __ccgo_ts+13099, int32(1)) + Xsqlite3_str_append(tls, p1, __ccgo_ts+13224, int32(1)) } if ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull) { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26985, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27131, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) } else { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27007, libc.VaList(bp+8, ii1, ii1+int32(2))) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27153, libc.VaList(bp+8, ii1, ii1+int32(2))) } goto _3 _3: ; ii1++ } - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27015, 0) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27161, 0) zSql1 = Xsqlite3_str_finish(tls, p1) if zSql1 == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -181190,14 +183074,14 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } var _azSql = [8]uintptr{ - 0: __ccgo_ts + 26146, - 1: __ccgo_ts + 26199, - 2: __ccgo_ts + 26244, - 3: __ccgo_ts + 26296, - 4: __ccgo_ts + 26350, - 5: __ccgo_ts + 26395, - 6: __ccgo_ts + 26453, - 7: __ccgo_ts + 26508, + 0: __ccgo_ts + 26292, + 1: __ccgo_ts + 26345, + 2: __ccgo_ts + 26390, + 3: __ccgo_ts + 26442, + 4: __ccgo_ts + 26496, + 5: __ccgo_ts + 26541, + 6: __ccgo_ts + 26599, + 7: __ccgo_ts + 26654, } // C documentation @@ -181255,7 +183139,7 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE _, _ = rc, zSql if isCreate != 0 { *(*int32)(unsafe.Pointer(bp)) = 0 - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27031, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27177, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) rc = _getIntFromStmt(tls, db, zSql, bp) if rc == SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = *(*int32)(unsafe.Pointer(bp)) - int32(64) @@ -181263,17 +183147,17 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = int32(4) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*int32(RTREE_MAXCELLS) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } } else { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27051, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27197, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) rc = _getIntFromStmt(tls, db, zSql, pRtree+32) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } else { if (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize < libc.Int32FromInt32(512)-libc.Int32FromInt32(64) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< libc.Int32FromInt32(RTREE_MAX_AUX_COLUMN)+libc.Int32FromInt32(3) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) return int32(SQLITE_ERROR) } Xsqlite3_vtab_config(tls, db, int32(SQLITE_VTAB_CONSTRAINT_SUPPORT), libc.VaList(bp+8, int32(1))) @@ -181350,13 +183234,13 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27294, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27440, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27300, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27446, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) ii = int32(4) for { if !(ii < argc) { @@ -181365,7 +183249,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt zArg = *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)) if int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('+') { (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27324, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27470, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) } else { if int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux) > 0 { break @@ -181379,19 +183263,19 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27351, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27497, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) } else { if ii < argc { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, aErrMsg[int32(4)])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, aErrMsg[int32(4)])) rc = int32(SQLITE_ERROR) } else { v3 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v3 if SQLITE_OK != v3 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } } @@ -181414,7 +183298,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } } if iErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, aErrMsg[iErr])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, aErrMsg[iErr])) goto rtreeInit_fail } (*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell = uint8(int32(8) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)*int32(4)) @@ -181425,11 +183309,12 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto rtreeInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto rtreeInit_fail rtreeInit_fail: ; if rc == SQLITE_OK { @@ -181442,8 +183327,8 @@ rtreeInit_fail: } var _azFormat = [2]uintptr{ - 0: __ccgo_ts + 27330, - 1: __ccgo_ts + 27341, + 0: __ccgo_ts + 27476, + 1: __ccgo_ts + 27487, } // C documentation @@ -181501,21 +183386,21 @@ func _rtreenode(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { } _nodeGetCell(tls, bp+40, bp, ii, bp+1008) if ii > 0 { - Xsqlite3_str_append(tls, pOut, __ccgo_ts+11211, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+11336, int32(1)) } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27354, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27500, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) jj = 0 for { if !(jj < int32((*(*TRtree)(unsafe.Pointer(bp + 40))).FnDim2)) { break } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27360, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27506, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) goto _2 _2: ; jj++ } - Xsqlite3_str_append(tls, pOut, __ccgo_ts+27364, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+27510, int32(1)) goto _1 _1: ; @@ -181542,7 +183427,7 @@ func _rtreedepth(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { _ = zBlob _ = nArg if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apArg))) != int32(SQLITE_BLOB) || Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(apArg))) < int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+27366, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+27512, -int32(1)) } else { zBlob = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(apArg))) if zBlob != 0 { @@ -181660,11 +183545,11 @@ func _rtreeCheckAppendMsg(tls *libc.TLS, pCheck uintptr, zFmt uintptr, va uintpt (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } else { if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport != 0 { - v1 = __ccgo_ts + 4212 + v1 = __ccgo_ts + 4276 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27399, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27545, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport == uintptr(0) { (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } @@ -181698,7 +183583,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt _, _, _ = nNode, pNode, pRet pRet = uintptr(0) /* Return value */ if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode == uintptr(0) { - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27406, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27552, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) } if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { Xsqlite3_bind_int64(tls, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, int32(1), iNode) @@ -181715,7 +183600,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt } _rtreeCheckReset(tls, pCheck, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && pRet == uintptr(0) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27451, libc.VaList(bp+8, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27597, libc.VaList(bp+8, iNode)) } } return pRet @@ -181744,8 +183629,8 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i var rc int32 _, _, _, _, _, _ = azSql, ii, pStmt, rc, v1, v2 azSql = [2]uintptr{ - 0: __ccgo_ts + 27483, - 1: __ccgo_ts + 27537, + 0: __ccgo_ts + 27629, + 1: __ccgo_ts + 27683, } _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) == uintptr(0) { @@ -181759,21 +183644,21 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i rc = Xsqlite3_step(tls, pStmt) if rc == int32(SQLITE_DONE) { if bLeaf != 0 { - v1 = __ccgo_ts + 27585 + v1 = __ccgo_ts + 27731 } else { - v1 = __ccgo_ts + 27593 + v1 = __ccgo_ts + 27739 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27602, libc.VaList(bp+8, iKey, iVal, v1)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27748, libc.VaList(bp+8, iKey, iVal, v1)) } else { if rc == int32(SQLITE_ROW) { ii = Xsqlite3_column_int64(tls, pStmt, 0) if ii != iVal { if bLeaf != 0 { - v2 = __ccgo_ts + 27585 + v2 = __ccgo_ts + 27731 } else { - v2 = __ccgo_ts + 27593 + v2 = __ccgo_ts + 27739 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27647, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27793, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) } } } @@ -181818,7 +183703,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 v2 = libc.BoolInt32(*(*TRtreeValue)(unsafe.Pointer(bp)) > *(*TRtreeValue)(unsafe.Pointer(bp + 4))) } if v2 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27705, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27851, libc.VaList(bp+24, i, iCell, iNode)) } if pParent != 0 { _readCoord(tls, pParent+uintptr(libc.Int32FromInt32(4)*libc.Int32FromInt32(2)*i), bp+8) @@ -181836,7 +183721,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 } } if v5 || v4 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27753, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27899, libc.VaList(bp+24, i, iCell, iNode)) } } goto _1 @@ -181871,19 +183756,19 @@ func _rtreeCheckNode(tls *libc.TLS, pCheck uintptr, iDepth int32, aParent uintpt aNode = _rtreeCheckGetNode(tls, pCheck, iNode, bp) if aNode != 0 { if *(*int32)(unsafe.Pointer(bp)) < int32(4) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27820, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27966, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) } else { /* Used to iterate through cells */ if aParent == uintptr(0) { iDepth = _readInt16(tls, aNode) if iDepth > int32(RTREE_MAX_DEPTH) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27854, libc.VaList(bp+16, iDepth)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28000, libc.VaList(bp+16, iDepth)) Xsqlite3_free(tls, aNode) return } } nCell = _readInt16(tls, aNode+2) if int32(4)+nCell*(int32(8)+(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnDim*int32(2)*int32(4)) > *(*int32)(unsafe.Pointer(bp)) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27884, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28030, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) } else { i = 0 for { @@ -181928,12 +183813,12 @@ func _rtreeCheckCount(tls *libc.TLS, pCheck uintptr, zTbl uintptr, nExpect Ti64) var pCount uintptr _, _ = nActual, pCount if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { - pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27939, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) + pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+28085, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) if pCount != 0 { if Xsqlite3_step(tls, pCount) == int32(SQLITE_ROW) { nActual = Xsqlite3_column_int64(tls, pCount, 0) if nActual != nExpect { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27970, libc.VaList(bp+8, zTbl, nExpect, nActual)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28116, libc.VaList(bp+8, zTbl, nExpect, nActual)) } } (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = Xsqlite3_finalize(tls, pCount) @@ -181962,7 +183847,7 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzDb = zDb (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzTab = zTab /* Find the number of auxiliary columns */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28037, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28183, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { nAux = Xsqlite3_column_count(tls, pStmt) - int32(2) Xsqlite3_finalize(tls, pStmt) @@ -181972,11 +183857,11 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe } } /* Find number of dimensions in the rtree table. */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25851, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25997, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim = (Xsqlite3_column_count(tls, pStmt) - int32(1) - nAux) / int32(2) if (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim < int32(1) { - _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28065, 0) + _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28211, 0) } else { if int32(SQLITE_ROW) == Xsqlite3_step(tls, pStmt) { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FbInt = libc.BoolInt32(Xsqlite3_column_type(tls, pStmt, int32(1)) == int32(SQLITE_INTEGER)) @@ -181992,8 +183877,8 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe if (*(*TRtreeCheck)(unsafe.Pointer(bp))).Frc == SQLITE_OK { _rtreeCheckNode(tls, bp, 0, uintptr(0), int64(1)) } - _rtreeCheckCount(tls, bp, __ccgo_ts+28096, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) - _rtreeCheckCount(tls, bp, __ccgo_ts+28103, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28242, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28249, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) } /* Finalize SQL statements used by the integrity-check */ Xsqlite3_finalize(tls, (*(*TRtreeCheck)(unsafe.Pointer(bp))).FpGetNode) @@ -182021,7 +183906,7 @@ func _rtreeIntegrity(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zName uintpt _ = isQuick rc = _rtreeCheckTable(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, pzErr) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28111, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28257, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) if *(*uintptr)(unsafe.Pointer(pzErr)) == uintptr(0) { rc = int32(SQLITE_NOMEM) } @@ -182072,13 +183957,13 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { var _ /* zReport at bp+0 */ uintptr _, _, _, _ = rc, zDb, zTab, v1 if nArg != int32(1) && nArg != int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+28130, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+28276, -int32(1)) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zDb = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg))) if nArg == int32(1) { zTab = zDb - zDb = __ccgo_ts + 6594 + zDb = __ccgo_ts + 6658 } else { zTab = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8))) } @@ -182087,7 +183972,7 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(bp)) } else { - v1 = __ccgo_ts + 18470 + v1 = __ccgo_ts + 18557 } Xsqlite3_result_text(tls, ctx, v1, -int32(1), uintptr(-libc.Int32FromInt32(1))) } else { @@ -182420,6 +184305,7 @@ func _geopolyParseJson(tls *libc.TLS, z uintptr, pRc uintptr) (r uintptr) { rc = int32(SQLITE_ERROR) } } + goto parse_json_err parse_json_err: ; if pRc != 0 { @@ -182553,19 +184439,19 @@ func _geopolyJsonFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if p != 0 { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) - Xsqlite3_str_append(tls, x, __ccgo_ts+25104, int32(1)) + Xsqlite3_str_append(tls, x, __ccgo_ts+25233, int32(1)) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28181, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28327, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28192, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28338, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -182594,20 +184480,20 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) cSep = uint8('\'') - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28203, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28349, 0) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28221, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28367, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) cSep = uint8(' ') goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28229, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28375, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) i = int32(1) for { if !(i < argc) { @@ -182615,14 +184501,14 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if z != 0 && *(*uint8)(unsafe.Pointer(z)) != 0 { - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28237, libc.VaList(bp+8, z)) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28383, libc.VaList(bp+8, z)) } goto _2 _2: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28241, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28387, 0) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -182928,6 +184814,7 @@ func _geopolyBBox(tls *libc.TLS, context uintptr, pPoly uintptr, aCoord uintptr, if !(aCoord == uintptr(0)) { goto _6 } + goto geopolyBboxFill geopolyBboxFill: ; pOut = Xsqlite3_realloc64(tls, p, libc.Uint64FromInt64(40)+libc.Uint64FromInt64(4)*libc.Uint64FromInt32(2)*uint64(libc.Int32FromInt32(4)-libc.Int32FromInt32(4))) @@ -183031,8 +184918,8 @@ func _geopolyBBoxStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if pBBox == uintptr(0) { return } - if (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit == 0 { - (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit = int32(1) + if libc.AtomicLoadPInt32(pBBox) == 0 { + libc.AtomicStorePInt32(pBBox, int32(1)) libc.Xmemcpy(tls, pBBox+4, bp, libc.Uint64FromInt64(4)*libc.Uint64FromInt32(4)) } else { if *(*TRtreeValue)(unsafe.Pointer(bp)) < *(*TRtreeValue)(unsafe.Pointer(pBBox + 4)) { @@ -183659,6 +185546,7 @@ func _geopolyOverlap(tls *libc.TLS, p1 uintptr, p2 uintptr) (r int32) { } } } + goto geopolyOverlapDone geopolyOverlapDone: ; Xsqlite3_free(tls, p) @@ -183750,13 +185638,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27294, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27440, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28254, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28400, 0) (*TRtree)(unsafe.Pointer(pRtree)).FnAux = uint8(1) /* Add one for _shape */ (*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull = uint8(1) /* The _shape column is always not-null */ ii = int32(3) @@ -183765,13 +185653,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint break } (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28276, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28422, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27351, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27497, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) @@ -183779,7 +185667,7 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint v2 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v2 if SQLITE_OK != v2 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } Xsqlite3_free(tls, zSql) @@ -183794,11 +185682,12 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto geopolyInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto geopolyInit_fail geopolyInit_fail: ; if rc == SQLITE_OK { @@ -183952,6 +185841,7 @@ func _geopolyFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uin *(*int32)(unsafe.Pointer(bp + 8)) = _rtreeStepToLeaf(tls, pCsr) } } + goto geopoly_filter_end geopoly_filter_end: ; _nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp))) @@ -184009,7 +185899,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iRowidTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(1) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16703 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16790 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).Fomit = uint8(1) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(30) @@ -184019,7 +185909,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iFuncTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = idxNum - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28280 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28426 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).Fomit = uint8(0) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(300) @@ -184027,7 +185917,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { return SQLITE_OK } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(4) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28286 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28432 (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(3e+06) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(100000) return SQLITE_OK @@ -184149,7 +186039,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR _geopolyBBox(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(aData + 2*8)), bp+8+8, bp) if *(*int32)(unsafe.Pointer(bp)) != 0 { if *(*int32)(unsafe.Pointer(bp)) == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28295, 0) + (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28441, 0) } goto geopoly_update_end } @@ -184237,6 +186127,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, pUp) } } + goto geopoly_update_end geopoly_update_end: ; _rtreeRelease(tls, pRtree) @@ -184252,12 +186143,12 @@ geopoly_update_end: func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28335) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28481) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28351) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28497) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) @@ -184328,7 +186219,7 @@ func _sqlite3_geopoly_init(tls *libc.TLS, db uintptr) (r int32) { i++ } if rc == SQLITE_OK { - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28528, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28674, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) } return rc } @@ -184342,61 +186233,61 @@ var _aFunc = [12]struct { 0: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28366, + FzName: __ccgo_ts + 28512, }, 1: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28379, + FzName: __ccgo_ts + 28525, }, 2: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28392, + FzName: __ccgo_ts + 28538, }, 3: { FnArg: int8(-int32(1)), FbPure: uint8(1), - FzName: __ccgo_ts + 28405, + FzName: __ccgo_ts + 28551, }, 4: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28351, + FzName: __ccgo_ts + 28497, }, 5: { FnArg: int8(3), FbPure: uint8(1), - FzName: __ccgo_ts + 28417, + FzName: __ccgo_ts + 28563, }, 6: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28335, + FzName: __ccgo_ts + 28481, }, 7: { FnArg: int8(1), - FzName: __ccgo_ts + 28440, + FzName: __ccgo_ts + 28586, }, 8: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28454, + FzName: __ccgo_ts + 28600, }, 9: { FnArg: int8(7), FbPure: uint8(1), - FzName: __ccgo_ts + 28467, + FzName: __ccgo_ts + 28613, }, 10: { FnArg: int8(4), FbPure: uint8(1), - FzName: __ccgo_ts + 28481, + FzName: __ccgo_ts + 28627, }, 11: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28497, + FzName: __ccgo_ts + 28643, }, } @@ -184422,7 +186313,7 @@ var _aAgg = [1]struct { FzName uintptr }{ 0: { - FzName: __ccgo_ts + 28509, + FzName: __ccgo_ts + 28655, }, } @@ -184447,20 +186338,20 @@ func _sqlite3RtreeInit(tls *libc.TLS, db uintptr) (r int32) { var rc, utf8 int32 _, _, _, _ = c, c1, rc, utf8 utf8 = int32(SQLITE_UTF8) - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28536, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28682, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28546, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28692, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28557, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28703, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { c = libc.UintptrFromInt32(RTREE_COORD_REAL32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28280, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28426, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) } if rc == SQLITE_OK { c1 = libc.UintptrFromInt32(RTREE_COORD_INT32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28568, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28714, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) } if rc == SQLITE_OK { rc = _sqlite3_geopoly_init(tls, db) @@ -184562,7 +186453,7 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { Xsqlite3_result_error_nomem(tls, ctx) _rtreeMatchArgFree(tls, pBlob) } else { - Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25837, __ccgo_fp(_rtreeMatchArgFree)) + Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25983, __ccgo_fp(_rtreeMatchArgFree)) } } } @@ -185780,7 +187671,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt /* Figure out the size of the output */ nOut = _rbuDeltaOutputSize(tls, aDelta, nDelta) if nOut < 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+28578, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28724, -int32(1)) return } aOut = Xsqlite3_malloc(tls, nOut+int32(1)) @@ -185790,7 +187681,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt nOut2 = _rbuDeltaApply(tls, aOrig, nOrig, aDelta, nDelta, aOut) if nOut2 != nOut { Xsqlite3_free(tls, aOut) - Xsqlite3_result_error(tls, context, __ccgo_ts+28578, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28724, -int32(1)) } else { Xsqlite3_result_blob(tls, context, aOut, nOut, __ccgo_fp(Xsqlite3_free)) } @@ -185816,7 +187707,7 @@ func _prepareAndCollectError(tls *libc.TLS, db uintptr, ppStmt uintptr, pzErrmsg _ = rc rc = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), ppStmt, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) } return rc @@ -185839,7 +187730,7 @@ func _resetAndCollectError(tls *libc.TLS, pStmt uintptr, pzErrmsg uintptr) (r in _ = rc rc = Xsqlite3_reset(tls, pStmt) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) } return rc } @@ -185972,7 +187863,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { /* Free any SQLite statements used while processing the previous object */ _rbuObjIterClearStatements(tls, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28599, uintptr(0), uintptr(0), p+64) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28745, uintptr(0), uintptr(0), p+64) } if rc == SQLITE_OK { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 { @@ -185982,6 +187873,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { if rc != int32(SQLITE_ROW) { rc = _resetAndCollectError(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, p+64) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = uintptr(0) + (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = uintptr(0) } else { (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, 0) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, int32(1)) @@ -186062,7 +187954,7 @@ func _rbuTargetNameFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { Xsqlite3_result_text(tls, pCtx, zIn, -int32(1), libc.UintptrFromInt32(0)) } } else { - if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25750, zIn, uint64(4)) == 0 { + if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25896, zIn, uint64(4)) == 0 { i = int32(4) for { if !(int32(*(*uint8)(unsafe.Pointer(zIn + uintptr(i)))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(zIn + uintptr(i)))) <= int32('9')) { @@ -186099,13 +187991,13 @@ func _rbuObjIterFirst(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { _, _ = rc, v1 libc.Xmemset(tls, pIter, 0, uint64(192)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 28770 + v1 = __ccgo_ts + 28916 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+28811, libc.VaList(bp+8, v1))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+28957, libc.VaList(bp+8, v1))) if rc == SQLITE_OK { - rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+28961) + rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+29107) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup = int32(1) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -186273,7 +188165,7 @@ func _rbuFinalize(tls *libc.TLS, p uintptr, pStmt uintptr) { rc = Xsqlite3_finalize(tls, pStmt) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && rc != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } @@ -186335,7 +188227,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu *(*int32)(unsafe.Pointer(peType)) = RBU_PK_NOTABLE *(*int32)(unsafe.Pointer(piPk)) = 0 _ = libc.Int32FromInt32(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29086, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29232, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK || Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0]) != int32(SQLITE_ROW) { /* Either an error, or no such table. */ goto rbuTableType_end @@ -186345,7 +188237,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } *(*int32)(unsafe.Pointer(piTnum)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0], int32(1)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29205, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29351, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { goto rbuTableType_end } @@ -186353,7 +188245,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu zOrig = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(3)) zIdx = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(1)) if zOrig != 0 && zIdx != 0 && int32(*(*Tu8)(unsafe.Pointer(zOrig))) == int32('p') { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29226, libc.VaList(bp+40, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29372, libc.VaList(bp+40, zIdx))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)]) == int32(SQLITE_ROW) { *(*int32)(unsafe.Pointer(piPk)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)], 0) @@ -186365,7 +188257,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29277, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29423, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { for Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)]) == int32(SQLITE_ROW) { if Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)], int32(5)) > 0 { @@ -186375,6 +188267,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu } *(*int32)(unsafe.Pointer(peType)) = int32(RBU_PK_NONE) } + goto rbuTableType_end rbuTableType_end: ; i = uint32(0) @@ -186408,7 +188301,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { bIndex = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { libc.Xmemcpy(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk, uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29298, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29444, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FnIndex = 0 for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -186421,7 +188314,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { if bPartial != 0 { libc.Xmemset(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, int32(0x01), uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29326, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29472, libc.VaList(bp+24, zIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) if iCid >= 0 { @@ -186475,7 +188368,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 _rbuTableType(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, pIter+72, bp+8, pIter+108) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NOTABLE { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+19913, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+20045, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc @@ -186487,7 +188380,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 /* Populate the azTblCol[] and nTblCol variables based on the columns ** of the input table. Ignore any input table columns that begin with ** "rbu_". */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29355, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29501, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { nCol = Xsqlite3_column_count(tls, *(*uintptr)(unsafe.Pointer(bp))) _rbuAllocateIterArrays(tls, p, pIter, nCol) @@ -186498,7 +188391,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 break } zName = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), i) - if Xsqlite3_strnicmp(tls, __ccgo_ts+29374, zName, int32(4)) != 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+29520, zName, int32(4)) != 0 { zCopy = _rbuStrndup(tls, zName, p+56) *(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)*4)) = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol v3 = pIter + 16 @@ -186506,7 +188399,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 *(*int32)(unsafe.Pointer(v3))++ *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(v2)*8)) = zCopy } else { - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29379, zName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29525, zName) { bRbuRowid = int32(1) } } @@ -186520,17 +188413,17 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && bRbuRowid != libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) if bRbuRowid != 0 { - v4 = __ccgo_ts + 29389 + v4 = __ccgo_ts + 29535 } else { - v4 = __ccgo_ts + 29402 + v4 = __ccgo_ts + 29548 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29411, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29557, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) } /* Check that all non-HIDDEN columns in the destination table are also ** present in the input table. Populate the abTblPk[], azTblType[] and ** aiTblOrder[] arrays at the same time. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29440, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29586, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zName1 = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -186552,7 +188445,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 } if i == (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29462, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29608, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) } else { iPk = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) bNotNull = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) @@ -186594,15 +188487,15 @@ func _rbuObjIterGetCollist(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) var z, zList, zSep uintptr _, _, _, _ = i, z, zList, zSep zList = uintptr(0) - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } z = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+29489, libc.VaList(bp+8, zList, zSep, z)) - zSep = __ccgo_ts + 14999 + zList = _rbuMPrintf(tls, p, __ccgo_ts+29635, libc.VaList(bp+8, zList, zSep, z)) + zSep = __ccgo_ts + 15092 goto _1 _1: ; @@ -186627,7 +188520,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, _, _, _, _, _ = i, iPk, zCol, zRet, zSep iPk = int32(1) zRet = uintptr(0) - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 for int32(1) != 0 { i = 0 for { @@ -186636,7 +188529,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, } if int32(*(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == iPk { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29498, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29644, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) zSep = zSeparator break } @@ -186684,21 +188577,21 @@ func _rbuVacuumTableStart(tls *libc.TLS, p uintptr, pIter uintptr, bRowid int32, *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zRet = uintptr(0) if bRowid != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29511, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29657, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iMax = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29543, libc.VaList(bp+16, iMax)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29689, libc.VaList(bp+16, iMax)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1657, __ccgo_ts+14999, __ccgo_ts+29566) - zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29572, __ccgo_ts+29579, __ccgo_ts+5115) - zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1657, __ccgo_ts+14999, __ccgo_ts+1657) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1671, __ccgo_ts+15092, __ccgo_ts+29712) + zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29718, __ccgo_ts+29725, __ccgo_ts+5179) + zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1671, __ccgo_ts+15092, __ccgo_ts+1671) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29587, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29733, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zVal = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29629, libc.VaList(bp+16, zList, zVal)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29775, libc.VaList(bp+16, zList, zVal)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } @@ -186747,10 +188640,10 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { zVector = uintptr(0) zRet = uintptr(0) bFailed = 0 - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 iCol = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29326, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29472, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(4)) @@ -186773,15 +188666,15 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _ = libc.Int32FromInt32(0) zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { - zCol = __ccgo_ts + 29649 + zCol = __ccgo_ts + 29795 } } else { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) } - zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29657, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29678, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) - zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29714, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) - zSep = __ccgo_ts + 14999 + zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29803, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29824, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) + zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29860, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) + zSep = __ccgo_ts + 15092 iCol++ } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) @@ -186790,9 +188683,9 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29741, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29887, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 iCol = 0 for { if !(iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol) { @@ -186807,19 +188700,20 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { break } } - zVector = _rbuMPrintf(tls, p, __ccgo_ts+29789, libc.VaList(bp+24, zVector, zSep, zQuoted)) - zSep = __ccgo_ts + 14999 + zVector = _rbuMPrintf(tls, p, __ccgo_ts+29935, libc.VaList(bp+24, zVector, zSep, zQuoted)) + zSep = __ccgo_ts + 15092 goto _2 _2: ; iCol++ } if !(bFailed != 0) { - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29796, libc.VaList(bp+24, zLhs, zVector)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29942, libc.VaList(bp+24, zLhs, zVector)) } } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } + goto index_start_out index_start_out: ; Xsqlite3_free(tls, zOrder) @@ -186868,12 +188762,12 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zImpPK = uintptr(0) /* String to return via *pzImposterPK */ zWhere = uintptr(0) /* String to return via *pzWhere */ nBind = 0 /* Value to return via *pnBind */ - zCom = __ccgo_ts + 1657 /* Set to ", " later on */ - zAnd = __ccgo_ts + 1657 /* Set to " AND " later on */ + zCom = __ccgo_ts + 1671 /* Set to ", " later on */ + zAnd = __ccgo_ts + 1671 /* Set to " AND " later on */ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_xinfo = ? */ if rc == SQLITE_OK { _ = libc.Int32FromInt32(0) - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29326, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29472, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -186882,8 +188776,8 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = uintptr(0) if iCid == -int32(2) { iSeq = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29808, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) - zType = __ccgo_ts + 1657 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29954, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) + zType = __ccgo_ts + 1671 } else { if iCid < 0 { /* An integer primary key. If the table has an explicit IPK, use @@ -186903,9 +188797,9 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - zCol = __ccgo_ts + 29649 + zCol = __ccgo_ts + 29795 } else { - zCol = __ccgo_ts + 29379 + zCol = __ccgo_ts + 29525 } } zType = __ccgo_ts + 1145 @@ -186913,24 +188807,24 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) zType = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)) } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29830, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29976, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) } if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbUnique == 0 || Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) != 0 { if bDesc != 0 { - v2 = __ccgo_ts + 29566 + v2 = __ccgo_ts + 29712 } else { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } zOrder = v2 - zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29850, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) + zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29996, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) } - zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+29871, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) - zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+29904, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) + zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+30017, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) + zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+30050, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) if zRet == uintptr(0) || zImpPK == uintptr(0) || zImpCols == uintptr(0) || zWhere == uintptr(0) { rc = int32(SQLITE_NOMEM) } - zCom = __ccgo_ts + 14999 - zAnd = __ccgo_ts + 22022 + zCom = __ccgo_ts + 15092 + zAnd = __ccgo_ts + 22167 nBind++ } rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -186976,7 +188870,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr _, _, _, _ = i, zCol, zList, zS zList = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zS = __ccgo_ts + 1657 + zS = __ccgo_ts + 1671 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -186984,11 +188878,11 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed + uintptr(i))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29928, libc.VaList(bp+8, zList, zS, zObj, zCol)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30074, libc.VaList(bp+8, zList, zS, zObj, zCol)) } else { - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29940, libc.VaList(bp+8, zList, zS)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30086, libc.VaList(bp+8, zList, zS)) } - zS = __ccgo_ts + 14999 + zS = __ccgo_ts + 15092 if zList == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) break @@ -187000,7 +188894,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } /* For a table with implicit rowids, append "old._rowid_" to the list. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29949, libc.VaList(bp+8, zList, zObj)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30095, libc.VaList(bp+8, zList, zObj)) } } return zList @@ -187026,27 +188920,27 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _ = i, i1, zCol, zList, zSep, zSep1 zList = uintptr(0) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29964, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30110, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29978, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) - zSep = __ccgo_ts + 22022 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30124, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) + zSep = __ccgo_ts + 22167 } goto _1 _1: ; i++ } - zList = _rbuMPrintf(tls, p, __ccgo_ts+29990, libc.VaList(bp+8, zList)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30136, libc.VaList(bp+8, zList)) } else { - zSep1 = __ccgo_ts + 1657 + zSep1 = __ccgo_ts + 1671 i1 = 0 for { if !(i1 < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -187054,8 +188948,8 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i1))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i1)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+30040, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) - zSep1 = __ccgo_ts + 22022 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30186, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) + zSep1 = __ccgo_ts + 22167 } goto _2 _2: @@ -187078,7 +188972,7 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { // */ func _rbuBadControlError(tls *libc.TLS, p uintptr) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30053, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30199, 0) } // C documentation @@ -187112,7 +189006,7 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt if int32(libc.Xstrlen(tls, zMask)) != (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { _rbuBadControlError(tls, p) } else { - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -187120,16 +189014,16 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt } c = *(*uint8)(unsafe.Pointer(zMask + uintptr(*(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(i)*4))))) if int32(c) == int32('x') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30040, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14999 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30186, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15092 } else { if int32(c) == int32('d') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30079, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14999 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30225, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15092 } else { if int32(c) == int32('f') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30109, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14999 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30255, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15092 } } } @@ -187214,16 +189108,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { z = uintptr(0) _ = libc.Int32FromInt32(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zSep = __ccgo_ts + 30146 + zSep = __ccgo_ts + 30292 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_list = (pIter->zTbl) */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA index_xinfo = */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29298, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29444, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zOrig = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) - if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16591) == 0 { + if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16678) == 0 { zIdx = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29326, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29472, libc.VaList(bp+24, zIdx))) } break } @@ -187234,16 +189128,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { /* int iCid = sqlite3_column_int(pXInfo, 0); */ zCol = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(2)) if Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) != 0 { - v1 = __ccgo_ts + 29566 + v1 = __ccgo_ts + 29712 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } zDesc = v1 - z = _rbuMPrintf(tls, p, __ccgo_ts+30159, libc.VaList(bp+24, z, zSep, zCol, zDesc)) - zSep = __ccgo_ts + 14999 + z = _rbuMPrintf(tls, p, __ccgo_ts+30305, libc.VaList(bp+24, z, zSep, zCol, zDesc)) + zSep = __ccgo_ts + 15092 } } - z = _rbuMPrintf(tls, p, __ccgo_ts+30170, libc.VaList(bp+24, z)) + z = _rbuMPrintf(tls, p, __ccgo_ts+30316, libc.VaList(bp+24, z)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } return z @@ -187283,13 +189177,13 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* SELECT name ... WHERE rootpage = $tnum */ zIdx = uintptr(0) /* Name of PK index */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA main.index_xinfo = $zIdx */ - zComma = __ccgo_ts + 1657 + zComma = __ccgo_ts + 1671 zCols = uintptr(0) /* Used to build up list of table cols */ zPk = uintptr(0) /* Used to build up table PK declaration */ /* Figure out the name of the primary key index for the current table. ** This is needed for the argument to "PRAGMA index_xinfo". Set ** zIdx to point to a nul-terminated string containing this name. */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30174) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30320) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), tnum) if int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -187297,7 +189191,7 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { } } if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29326, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29472, libc.VaList(bp+24, zIdx))) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { @@ -187306,21 +189200,21 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) bDesc = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(4)) - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30224, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30370, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) if bDesc != 0 { - v1 = __ccgo_ts + 29566 + v1 = __ccgo_ts + 29712 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } - zPk = _rbuMPrintf(tls, p, __ccgo_ts+30246, libc.VaList(bp+24, zPk, zComma, iCid, v1)) - zComma = __ccgo_ts + 14999 + zPk = _rbuMPrintf(tls, p, __ccgo_ts+30392, libc.VaList(bp+24, zPk, zComma, iCid, v1)) + zComma = __ccgo_ts + 15092 } } - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30256, libc.VaList(bp+24, zCols)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30402, libc.VaList(bp+24, zCols)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30271, libc.VaList(bp+24, zCols, zPk)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30417, libc.VaList(bp+24, zCols, zPk)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, 0, 0)) } } @@ -187355,30 +189249,30 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { _, _, _, _, _, _, _, _, _ = iCol, tnum, zCol, zComma, zPk, zPk1, zSql, v2, v3 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { tnum = (*TRbuObjIter)(unsafe.Pointer(pIter)).FiTnum - zComma = __ccgo_ts + 1657 + zComma = __ccgo_ts + 1671 zSql = uintptr(0) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, 0, int32(1))) iCol = 0 for { if !((*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } - zPk = __ccgo_ts + 1657 + zPk = __ccgo_ts + 1671 zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCol)*8)) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_IPK) && *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(iCol))) != 0 { /* If the target table column is an "INTEGER PRIMARY KEY", add ** "PRIMARY KEY" to the imposter table column declaration. */ - zPk = __ccgo_ts + 30333 + zPk = __ccgo_ts + 30479 } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iCol))) != 0 { - v2 = __ccgo_ts + 30346 + v2 = __ccgo_ts + 30492 } else { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30356, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) - zComma = __ccgo_ts + 14999 + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30502, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) + zComma = __ccgo_ts + 15092 goto _1 _1: ; @@ -187387,17 +189281,17 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { zPk1 = _rbuWithoutRowidPK(tls, p, pIter) if zPk1 != 0 { - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30383, libc.VaList(bp+16, zSql, zPk1)) + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30529, libc.VaList(bp+16, zSql, zPk1)) } } - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, int32(1), tnum)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, int32(1), tnum)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { - v3 = __ccgo_ts + 30390 + v3 = __ccgo_ts + 30536 } else { - v3 = __ccgo_ts + 1657 + v3 = __ccgo_ts + 1671 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30405, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, 0, 0)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30551, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, 0, 0)) } } @@ -187424,7 +189318,7 @@ func _rbuObjIterPrepareTmpInsert(tls *libc.TLS, p uintptr, pIter uintptr, zColli zBind = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1)+bRbuRowid) if zBind != 0 { _ = libc.Int32FromInt32(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30437, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30583, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) } } @@ -187472,7 +189366,7 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt zRet = uintptr(0) _ = libc.Int32FromInt32(0) if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30494) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30640) } if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3_bind_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx, -int32(1), libc.UintptrFromInt32(0)) @@ -187643,7 +189537,7 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zIdx = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx zLimit = uintptr(0) if nOffset != 0 { - zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30560, libc.VaList(bp+40, nOffset)) + zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30706, libc.VaList(bp+40, nOffset)) if !(zLimit != 0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } @@ -187661,18 +189555,18 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zCollist = _rbuObjIterGetIndexCols(tls, p, pIter, bp, bp+8, bp+16, bp+24) zBind = _rbuObjIterGetBindlist(tls, p, *(*int32)(unsafe.Pointer(bp + 24))) /* Create the imposter table used to write to this index. */ - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, 0, int32(1))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30580, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30726, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, 0, 0)) /* Create the statement to insert index entries */ (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = *(*int32)(unsafe.Pointer(bp + 24)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30645, libc.VaList(bp+40, zTbl, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30791, libc.VaList(bp+40, zTbl, zBind))) } /* And to delete index entries */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30681, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30827, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) } /* Create the SELECT statement to read keys in sorted order */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -187687,26 +189581,26 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } if zStart != 0 { if zPart != 0 { - v2 = __ccgo_ts + 30715 + v2 = __ccgo_ts + 30861 } else { - v2 = __ccgo_ts + 30719 + v2 = __ccgo_ts + 30865 } v1 = v2 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30725, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30871, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) Xsqlite3_free(tls, zStart) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30786, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30932, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) } else { if zPart != 0 { - v3 = __ccgo_ts + 30715 + v3 = __ccgo_ts + 30861 } else { - v3 = __ccgo_ts + 30719 + v3 = __ccgo_ts + 30865 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30847, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30993, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -187725,62 +189619,62 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zTbl1 = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl /* Imposter table name */ zBindings = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+bRbuRowid) zWhere1 = _rbuObjIterGetWhere(tls, p, pIter) - zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6605) - zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6601) + zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6669) + zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6665) zCollist = _rbuObjIterGetCollist(tls, p, pIter) (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol /* Create the imposter table or tables (if required). */ _rbuCreateImposterTable(tls, p, pIter) _rbuCreateImposterTable2(tls, p, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) { - v4 = __ccgo_ts + 1657 + v4 = __ccgo_ts + 1671 } else { - v4 = __ccgo_ts + 31006 + v4 = __ccgo_ts + 31152 } zWrite = v4 /* Create the INSERT statement to write to the target PK b-tree */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if bRbuRowid != 0 { - v5 = __ccgo_ts + 31015 + v5 = __ccgo_ts + 31161 } else { - v5 = __ccgo_ts + 1657 + v5 = __ccgo_ts + 1671 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31025, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31171, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) } /* Create the DELETE statement to write to the target PK b-tree. ** Because it only performs INSERT operations, this is not required for ** an rbu vacuum handle. */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31061, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31207, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) } if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zRbuRowid = __ccgo_ts + 1657 + zRbuRowid = __ccgo_ts + 1671 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zRbuRowid = __ccgo_ts + 31089 + zRbuRowid = __ccgo_ts + 31235 } /* Create the rbu_tmp_xxx table and the triggers to populate it. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - v6 = __ccgo_ts + 31101 + v6 = __ccgo_ts + 31247 } else { - v6 = __ccgo_ts + 1657 + v6 = __ccgo_ts + 1671 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31118, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31194, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31264, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31340, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31493, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31639, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) } _rbuObjIterPrepareTmpInsert(tls, p, pIter, zCollist, zRbuRowid) } /* Create the SELECT statement to read keys from data_xxx */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zRbuRowid1 = __ccgo_ts + 1657 + zRbuRowid1 = __ccgo_ts + 1671 zStart1 = uintptr(0) zOrder = uintptr(0) if bRbuRowid != 0 { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v7 = __ccgo_ts + 31592 + v7 = __ccgo_ts + 31738 } else { - v7 = __ccgo_ts + 31602 + v7 = __ccgo_ts + 31748 } zRbuRowid1 = v7 } @@ -187793,28 +189687,28 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } } if bRbuRowid != 0 { - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29649, 0) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29795, 0) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1657, __ccgo_ts+14999, __ccgo_ts+1657) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1671, __ccgo_ts+15092, __ccgo_ts+1671) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v8 = __ccgo_ts + 31613 + v8 = __ccgo_ts + 31759 } else { - v8 = __ccgo_ts + 1657 + v8 = __ccgo_ts + 1671 } if zStart1 != 0 { v9 = zStart1 } else { - v9 = __ccgo_ts + 1657 + v9 = __ccgo_ts + 1671 } if zOrder != 0 { - v10 = __ccgo_ts + 23216 + v10 = __ccgo_ts + 23361 } else { - v10 = __ccgo_ts + 1657 + v10 = __ccgo_ts + 1671 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31619, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31765, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) } Xsqlite3_free(tls, zStart1) Xsqlite3_free(tls, zOrder) @@ -187901,11 +189795,11 @@ func _rbuGetUpdateStmt(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintptr, p (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpNext = (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate = pUp if zSet != 0 { - zPrefix = __ccgo_ts + 1657 + zPrefix = __ccgo_ts + 1671 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { - zPrefix = __ccgo_ts + 31006 + zPrefix = __ccgo_ts + 31152 } - zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31667, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) + zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31813, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pUp+8, p+64, zUpdate) *(*uintptr)(unsafe.Pointer(ppStmt)) = (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate } @@ -187932,7 +189826,7 @@ func _rbuOpenDbhandle(tls *libc.TLS, p uintptr, zName uintptr, bUseVfs int32) (r } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_open_v2(tls, zName, bp, flags, v1) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) Xsqlite3_close(tls, *(*uintptr)(unsafe.Pointer(bp))) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) } @@ -187979,7 +189873,7 @@ func _rbuLoadState(tls *libc.TLS, p uintptr) (r uintptr) { if pRet == uintptr(0) { return uintptr(0) } - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31697, libc.VaList(bp+24, p+48))) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31843, libc.VaList(bp+24, p+48))) for *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { switch Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) { case int32(RBU_STATE_STAGE): @@ -188041,27 +189935,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu = _rbuOpenDbhandle(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, int32(1)) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain = dbMain if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6594, int32(SQLITE_FCNTL_RBUCNT), p) + Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6658, int32(SQLITE_FCNTL_RBUCNT), p) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState == uintptr(0) { - zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6594) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31727, libc.VaList(bp+8, zFile, zFile)) + zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6658) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31873, libc.VaList(bp+8, zFile, zFile)) } } /* If using separate RBU and state databases, attach the state database to ** the RBU db handle now. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState != 0 { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31755, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) - libc.Xmemcpy(tls, p+48, __ccgo_ts+3427, uint64(4)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31901, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+3491, uint64(4)) } else { - libc.Xmemcpy(tls, p+48, __ccgo_ts+6594, uint64(4)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+6658, uint64(4)) } /* If it has not already been created, create the rbu_state table */ - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31773, libc.VaList(bp+8, p+48)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31919, libc.VaList(bp+8, p+48)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { bOpen = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FnRbu = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FpRbuFd = uintptr(0) - rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6594, int32(SQLITE_FCNTL_RBUCNT), p) + rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6658, int32(SQLITE_FCNTL_RBUCNT), p) if rc != int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc } @@ -188094,10 +189988,10 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) return } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31839, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31985, 0) } else { zExtra = uintptr(0) - if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24605, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { + if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24728, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { zExtra = (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu + 5 for *(*uint8)(unsafe.Pointer(zExtra)) != 0 { v1 = zExtra @@ -188111,16 +190005,16 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if zExtra == uintptr(0) { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } else { - v2 = __ccgo_ts + 31871 + v2 = __ccgo_ts + 32017 } if zExtra == uintptr(0) { - v3 = __ccgo_ts + 1657 + v3 = __ccgo_ts + 1671 } else { v3 = zExtra } - zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+31873, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6594), v2, v3)) + zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+32019, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6658), v2, v3)) if zTarget == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) return @@ -188131,27 +190025,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31905, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32051, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31920, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32066, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31937, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32083, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, int32(SQLITE_FCNTL_RBU), p) } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31953, 0) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32099, 0) /* Mark the database file just opened as an RBU target database. If ** this call returns SQLITE_NOTFOUND, then the RBU vfs is not in use. ** This is an error. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, int32(SQLITE_FCNTL_RBU), p) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31981, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32127, 0) } } @@ -188201,7 +190095,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxShmMap})))(tls, pDb, 0, libc.Int32FromInt32(32)*libc.Int32FromInt32(1024), 0, bp) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - iRet = int64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))<= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+32981, zState+uintptr(n-int32(7)), uint64(7)) { + if n >= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+33127, zState+uintptr(n-int32(7)), uint64(7)) { return _rbuMisuseError(tls) } } @@ -189443,7 +191337,7 @@ func _rbuEditErrmsg(tls *libc.TLS, p uintptr) { if !(uint64(i) < nErrmsg-uint64(8)) { break } - if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31006, uint64(8)) == 0 { + if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31152, uint64(8)) == 0 { nDel = int32(8) for int32(*(*uint8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) <= int32('9') { nDel++ @@ -189471,7 +191365,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { if p != 0 { /* Commit the transaction to the *-oal file. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14903, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14996, uintptr(0), uintptr(0), p+64) } /* Sync the db file if currently doing an incremental checkpoint */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { @@ -189480,7 +191374,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { } _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14903, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14996, uintptr(0), uintptr(0), p+64) } /* Close any open statement handles. */ _rbuObjIterFinalize(tls, p+80) @@ -189490,7 +191384,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { ** specifying the current target and state databases to start a new ** vacuum from scratch. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu != 0 { - rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32989, uintptr(0), uintptr(0), uintptr(0)) + rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33135, uintptr(0), uintptr(0), uintptr(0)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_DONE) && rc2 != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc2 } @@ -189605,7 +191499,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14903, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14996, uintptr(0), uintptr(0), uintptr(0)) } } /* Sync the db file */ @@ -189619,19 +191513,19 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14903, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14996, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 14888 + v1 = __ccgo_ts + 14981 } else { - v1 = __ccgo_ts + 32941 + v1 = __ccgo_ts + 33087 } zBegin = v1 rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, zBegin, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32941, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33087, uintptr(0), uintptr(0), uintptr(0)) } } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -190205,7 +192099,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r rc = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xControl})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, int32(SQLITE_FCNTL_ZIPVFS), bp) if rc == SQLITE_OK { rc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33016, 0) + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33162, 0) } else { if rc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpTargetFd = p @@ -190231,7 +192125,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r if rc == SQLITE_OK && op == int32(SQLITE_FCNTL_VFSNAME) { pRbuVfs = (*Trbu_file)(unsafe.Pointer(p)).FpRbuVfs zIn = *(*uintptr)(unsafe.Pointer(pArg)) - zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33039, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) + zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33185, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) *(*uintptr)(unsafe.Pointer(pArg)) = zOut if zOut == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -190432,7 +192326,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag if pDb != 0 { if (*Trbu_file)(unsafe.Pointer(pDb)).FpRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FeStage == int32(RBU_STAGE_OAL) { if (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FzTarget == uintptr(0) { - zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6594) + zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6658) zOpen = Xsqlite3_filename_wal(tls, zOpen) } nOpen = libc.Xstrlen(tls, zOpen) @@ -190446,7 +192340,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag } else { (*Trbu_file)(unsafe.Pointer(pFd)).FpRbu = (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).FpRbu } - if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33050, 0) != 0 { + if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33196, 0) != 0 { _ = libc.Int32FromInt32(0) oflags = libc.Int32FromInt32(SQLITE_OPEN_TEMP_DB) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_EXCLUSIVE) | libc.Int32FromInt32(SQLITE_OPEN_DELETEONCLOSE) zOpen = uintptr(0) @@ -191001,7 +192895,7 @@ func _statConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint _sqlite3TokenInit(tls, bp, *(*uintptr)(unsafe.Pointer(argv + 3*8))) iDb = _sqlite3FindDb(tls, db, bp) if iDb < 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12200, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12325, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) return int32(SQLITE_ERROR) } } else { @@ -191395,6 +193289,7 @@ func _statDecodePage(tls *libc.TLS, pBt uintptr, p uintptr) (r int32) { } } return SQLITE_OK + goto statPageIsCorrupt statPageIsCorrupt: ; (*TStatPage)(unsafe.Pointer(p)).Fflags = uint8(0) @@ -191485,6 +193380,7 @@ func _statNext(tls *libc.TLS, pCursor uintptr) (r int32) { pPager = _sqlite3BtreePager(tls, pBt) Xsqlite3_free(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath) (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = uintptr(0) + goto statNextRestart statNextRestart: ; if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage < 0 { @@ -191502,7 +193398,7 @@ statNextRestart: (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiPgno = iRoot (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33061, 0) + v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33207, 0) z = v1 (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FzPath = v1 if z == uintptr(0) { @@ -191540,8 +193436,8 @@ statNextRestart: if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { (*TStatCursor)(unsafe.Pointer(pCsr)).FzName = Xsqlite3_column_text(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FpStmt, 0) (*TStatCursor)(unsafe.Pointer(pCsr)).FiPageno = *(*Tu32)(unsafe.Pointer((*TStatCell)(unsafe.Pointer(pCell)).FaOvfl + uintptr(iOvfl)*4)) - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33063 - v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33072, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33209 + v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33218, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) z = v2 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v2 if z == uintptr(0) { @@ -191570,7 +193466,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage++ if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage >= int32(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(222551)) + return _sqlite3CorruptError(tls, int32(224206)) } _ = libc.Int32FromInt32(0) if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { @@ -191582,7 +193478,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnPage++ (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33084, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) + v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33230, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) z = v4 (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FzPath = v4 if z == uintptr(0) { @@ -191605,13 +193501,13 @@ statNextRestart: case int32(0x05): /* table internal */ fallthrough case int32(0x02): /* index internal */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33092 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33238 case int32(0x0D): /* table leaf */ fallthrough case int32(0x0A): /* index leaf */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33101 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33247 default: - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33106 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33252 break } *(*int32)(unsafe.Pointer(pCsr + 2108)) += (*TStatPage)(unsafe.Pointer(p1)).FnCell @@ -191620,7 +193516,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnMxPayload = (*TStatPage)(unsafe.Pointer(p1)).FnMxPayload } if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) + v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) z = v5 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v5 if z == uintptr(0) { @@ -191709,12 +193605,12 @@ func _statFilter(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uintptr, a (*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg = uint8(0) } pSql = Xsqlite3_str_new(tls, (*TStatTable)(unsafe.Pointer(pTab)).Fdb) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33116, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33262, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) if zName != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33271, libc.VaList(bp+8, zName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33417, libc.VaList(bp+8, zName)) } if idxNum&int32(0x08) != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33285, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33431, 0) } zSql = Xsqlite3_str_finish(tls, pSql) if zSql == uintptr(0) { @@ -191791,7 +193687,7 @@ func _statRowid(tls *libc.TLS, pCursor uintptr, pRowid uintptr) (r int32) { // ** Invoke this routine to register the "dbstat" virtual table module // */ func _sqlite3DbstatRegister(tls *libc.TLS, db uintptr) (r int32) { - return Xsqlite3_create_module(tls, db, __ccgo_ts+33300, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) + return Xsqlite3_create_module(tls, db, __ccgo_ts+33446, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) } var _dbstat_module = Tsqlite3_module{} @@ -193080,20 +194976,20 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, *(*uintptr)(unsafe.Pointer(pazDflt)) = uintptr(0) } nThis = _sqlite3Strlen30(tls, zThis) - if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11591, zThis) { + if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11716, zThis) { rc = Xsqlite3_table_column_metadata(tls, db, zDb, zThis, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { /* For sqlite_stat1, pretend that (tbl,idx) is the PRIMARY KEY. */ - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33307, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33453, 0) } else { if rc == int32(SQLITE_ERROR) { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1657, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1671, 0) } else { return rc } } } else { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33428, libc.VaList(bp+16, zDb, zThis)) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33574, libc.VaList(bp+16, zDb, zThis)) } if !(zPragma != 0) { return int32(SQLITE_NOMEM) @@ -193117,7 +195013,7 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, bRowid = 0 } nDbCol += bRowid - nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+29649)) + nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+29795)) rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp))) if rc == SQLITE_OK { nByte = Tsqlite3_int64(uint64(nByte) + uint64(nDbCol)*(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(2)+libc.Uint64FromInt64(1)+libc.Uint64FromInt32(1)+libc.Uint64FromInt32(1))) @@ -193141,8 +195037,8 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, } i = 0 if bRowid != 0 { - nName = libc.Xstrlen(tls, __ccgo_ts+29649) - libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29649, nName+uint64(1)) + nName = libc.Xstrlen(tls, __ccgo_ts+29795) + libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29795, nName+uint64(1)) *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)) = pAlloc pAlloc += uintptr(nName + uint64(1)) *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) = uint8(1) @@ -193235,7 +195131,7 @@ func _sessionInitTable(tls *libc.TLS, pSession uintptr, pTab uintptr, db uintptr ; i++ } - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11591, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11716, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 = int32(1) } if pSession != 0 && (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize != 0 { @@ -193527,10 +195423,10 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin _, _, _, _ = ii, zDflt, zSep, v2 *(*TSessionBuffer)(unsafe.Pointer(bp)) = TSessionBuffer{} *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK - zSep = __ccgo_ts + 11211 + zSep = __ccgo_ts + 11336 ii = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33457, 0) + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33603, 0) ii = 0 for { if !(ii < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol) { @@ -193539,11 +195435,11 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin if *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) != 0 { v2 = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) } else { - v2 = __ccgo_ts + 1658 + v2 = __ccgo_ts + 1672 } zDflt = v2 - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5085, libc.VaList(bp+32, zSep, zDflt)) - zSep = __ccgo_ts + 14999 + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5149, libc.VaList(bp+32, zSep, zDflt)) + zSep = __ccgo_ts + 15092 goto _1 _1: ; @@ -193862,7 +195758,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u rc = int32(SQLITE_NOMEM) goto error_out } - _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1657, uint8(0), libc.UintptrFromInt32(0)) + _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1671, uint8(0), libc.UintptrFromInt32(0)) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpZeroBlob = p } } @@ -193983,6 +195879,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u } } /* If an error has occurred, mark the session object as failed. */ + goto error_out error_out: ; if (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 != 0 { @@ -194192,7 +196089,7 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr var i int32 var zRet, zSep uintptr _, _, _ = i, zRet, zSep - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 zRet = uintptr(0) i = 0 for { @@ -194200,8 +196097,8 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr break } if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33464, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 22022 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33610, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 22167 if zRet == uintptr(0) { break } @@ -194220,7 +196117,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint var bHave, i int32 var zRet, zSep uintptr _, _, _, _ = bHave, i, zRet, zSep - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 zRet = uintptr(0) bHave = 0 i = 0 @@ -194230,8 +196127,8 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if int32(*(*Tu8)(unsafe.Pointer(abPK + uintptr(i)))) == 0 { bHave = int32(1) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33498, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 33539 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33644, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 33685 if zRet == uintptr(0) { break } @@ -194243,7 +196140,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if bHave == 0 { _ = libc.Int32FromInt32(0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1731, 0) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1791, 0) } return zRet } @@ -194254,12 +196151,12 @@ func _sessionSelectFindNew(tls *libc.TLS, zDb1 uintptr, zDb2 uintptr, bRowid int var zRet, zSel, v1 uintptr _, _, _ = zRet, zSel, v1 if bRowid != 0 { - v1 = __ccgo_ts + 33544 + v1 = __ccgo_ts + 33690 } else { - v1 = __ccgo_ts + 6599 + v1 = __ccgo_ts + 6663 } zSel = v1 - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33555, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33701, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) return zRet } @@ -194320,11 +196217,11 @@ func _sessionAllCols(tls *libc.TLS, zDb uintptr, pTab uintptr) (r uintptr) { break } if zRet != 0 { - v2 = __ccgo_ts + 14999 + v2 = __ccgo_ts + 15092 } else { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33634, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33780, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) if !(zRet != 0) { break } @@ -194352,7 +196249,7 @@ func _sessionDiffFindModified(tls *libc.TLS, pSession uintptr, pTab uintptr, zFr } else { z1 = _sessionAllCols(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, pTab) z2 = _sessionAllCols(tls, zFrom, pTab) - zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33653, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) + zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33799, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) if zStmt == uintptr(0) || z1 == uintptr(0) || z2 == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -194452,7 +196349,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if bMismatch != 0 { if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33710, 0) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33856, 0) } rc = int32(SQLITE_SCHEMA) } @@ -194478,6 +196375,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u } Xsqlite3_free(tls, zExpr) } + goto diff_out diff_out: ; _sessionPreupdateHooks(tls, pSession) @@ -194783,7 +196681,7 @@ func _sessionAppendInteger(tls *libc.TLS, p uintptr, iVal int32, pRc uintptr) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* aBuf at bp+0 */ [24]uint8 - Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5147, libc.VaList(bp+32, iVal)) + Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5211, libc.VaList(bp+32, iVal)) _sessionAppendStr(tls, p, bp, pRc) } @@ -195078,23 +196976,23 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt _, _, _, _, _, _, _ = i, nSql, zCols, zSep, zSql, v1, v3 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK zSql = uintptr(0) - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 if bRowid != 0 { - v1 = __ccgo_ts + 33544 + v1 = __ccgo_ts + 33690 } else { - v1 = __ccgo_ts + 6599 + v1 = __ccgo_ts + 6663 } zCols = v1 nSql = -int32(1) *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 24)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 40)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+33737, bp) - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11591, zTab) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+33741, bp) - _sessionAppendStr(tls, bp+24, __ccgo_ts+33765, bp) - _sessionAppendStr(tls, bp+40, __ccgo_ts+33774, bp) - zCols = __ccgo_ts + 33819 + _sessionAppendStr(tls, bp+8, __ccgo_ts+33883, bp) + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11716, zTab) { + _sessionAppendStr(tls, bp+8, __ccgo_ts+33887, bp) + _sessionAppendStr(tls, bp+24, __ccgo_ts+33911, bp) + _sessionAppendStr(tls, bp+40, __ccgo_ts+33920, bp) + zCols = __ccgo_ts + 33965 } else { i = 0 for { @@ -195104,11 +197002,11 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { _sessionAppendStr(tls, bp+24, zSep, bp) _sessionAppendStr(tls, bp+40, zSep, bp) - zSep = __ccgo_ts + 14999 + zSep = __ccgo_ts + 15092 _sessionAppendIdent(tls, bp+24, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), bp) - _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+33833, libc.VaList(bp+64, i+int32(1))) + _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+33979, libc.VaList(bp+64, i+int32(1))) } else { - _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+33837, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+33983, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) } goto _2 _2: @@ -195120,9 +197018,9 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if bIgnoreNoop != 0 { v3 = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf } else { - v3 = __ccgo_ts + 1657 + v3 = __ccgo_ts + 1671 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+33864, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+34010, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) if zSql == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } @@ -195268,7 +197166,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, if (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc != 0 { return (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc } - *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+33906, uintptr(0), uintptr(0), uintptr(0)) + *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+34052, uintptr(0), uintptr(0), uintptr(0)) if *(*int32)(unsafe.Pointer(bp + 16)) != SQLITE_OK { return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -195375,7 +197273,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } } Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf) - Xsqlite3_exec(tls, db, __ccgo_ts+33926, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34072, uintptr(0), uintptr(0), uintptr(0)) Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db)) return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -195796,7 +197694,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, int32(9)) if rc == SQLITE_OK { if (*TSessionInput)(unsafe.Pointer(pIn)).FiNext >= (*TSessionInput)(unsafe.Pointer(pIn)).FnData { - rc = _sqlite3CorruptError(tls, int32(226700)) + rc = _sqlite3CorruptError(tls, int32(228355)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -195821,7 +197719,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, *(*int32)(unsafe.Pointer(bp))) if rc == SQLITE_OK { if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext { - rc = _sqlite3CorruptError(tls, int32(226720)) + rc = _sqlite3CorruptError(tls, int32(228375)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -195836,7 +197734,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap } if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) { if (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext < int32(8) { - rc = _sqlite3CorruptError(tls, int32(226730)) + rc = _sqlite3CorruptError(tls, int32(228385)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -195892,7 +197790,7 @@ func _sessionChangesetBufferTblhdr(tls *libc.TLS, pIn uintptr, pnByte uintptr) ( ** large value for nCol may cause nRead to wrap around and become ** negative. Leading to a crash. */ if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > int32(65536) { - rc = _sqlite3CorruptError(tls, int32(226778)) + rc = _sqlite3CorruptError(tls, int32(228433)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -195998,7 +197896,7 @@ func _sessionChangesetReadTblhdr(tls *libc.TLS, p uintptr) (r int32) { (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FnBuf = 0 _sessionBufferGrow(tls, p+72, int64(nByte), bp) } else { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(226866)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(228521)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -196071,12 +197969,12 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK { return (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc } + _sessionDiscardData(tls, p) + (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext /* If the iterator is already at the end of the changeset, return DONE. */ if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext >= (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FnData { return int32(SQLITE_DONE) } - _sessionDiscardData(tls, p) - (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext v3 = p + 8 v2 = *(*int32)(unsafe.Pointer(v3)) *(*int32)(unsafe.Pointer(v3))++ @@ -196107,7 +198005,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin /* The first record in the changeset is not a table header. Must be a ** corrupt changeset. */ _ = libc.Int32FromInt32(0) - v7 = _sqlite3CorruptError(tls, int32(226952)) + v7 = _sqlite3CorruptError(tls, int32(228607)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -196117,7 +198015,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = int32(*(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr(v8)))) if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_DELETE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_INSERT) { - v10 = _sqlite3CorruptError(tls, int32(226958)) + v10 = _sqlite3CorruptError(tls, int32(228613)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -196198,7 +198096,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin _ = libc.Int32FromInt32(0) *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i+(*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*8)) if *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) == uintptr(0) { - v16 = _sqlite3CorruptError(tls, int32(227002)) + v16 = _sqlite3CorruptError(tls, int32(228657)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -196609,7 +198507,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(227367)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(229022)) goto finished_invert } _ = libc.Int32FromInt32(0) @@ -196631,6 +198529,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } + goto finished_invert finished_invert: ; Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf) @@ -196813,18 +198712,18 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 } if pUp == uintptr(0) { nByte = int32(uint64(24) * uint64(nU32) * uint64(4)) - bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11591) == 0) + bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11716) == 0) pUp = Xsqlite3_malloc(tls, nByte) if pUp == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } else { - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 libc.Xmemset(tls, bp+8, 0, uint64(16)) (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask = pUp + 1*24 libc.Xmemcpy(tls, (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, uint64(nU32)*uint64(4)) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33944, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34090, bp) _sessionAppendIdent(tls, bp+8, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33957, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34103, bp) /* Create the assignments part of the UPDATE */ ii = 0 for { @@ -196834,9 +198733,9 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if int32(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii)))) == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol+ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33963, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34109, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(1), bp) - zSep = __ccgo_ts + 14999 + zSep = __ccgo_ts + 15092 } goto _2 _2: @@ -196844,8 +198743,8 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 ii++ } /* Create the WHERE clause part of the UPDATE */ - zSep = __ccgo_ts + 1657 - _sessionAppendStr(tls, bp+8, __ccgo_ts+33968, bp) + zSep = __ccgo_ts + 1671 + _sessionAppendStr(tls, bp+8, __ccgo_ts+34114, bp) ii = 0 for { if !(ii < (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol) { @@ -196855,13 +198754,13 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 _sessionAppendStr(tls, bp+8, zSep, bp) if bStat1 != 0 && ii == int32(1) { _ = libc.Int32FromInt32(0) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33976, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34122, bp) } else { _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34051, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34197, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(2), bp) } - zSep = __ccgo_ts + 22022 + zSep = __ccgo_ts + 22167 } goto _3 _3: @@ -196945,13 +198844,13 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in var _ /* buf at bp+8 */ TSessionBuffer var _ /* rc at bp+0 */ int32 _, _, _ = i, nPk, zSep - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} nPk = 0 - _sessionAppendStr(tls, bp+8, __ccgo_ts+34057, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34203, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33968, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34114, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -196961,9 +198860,9 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in nPk++ _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33963, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34109, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 22022 + zSep = __ccgo_ts + 22167 } goto _1 _1: @@ -196971,10 +198870,10 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in i++ } if nPk < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol { - _sessionAppendStr(tls, bp+8, __ccgo_ts+34075, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34221, bp) _sessionAppendInteger(tls, bp+8, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol+int32(1), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33539, bp) - zSep = __ccgo_ts + 1657 + _sessionAppendStr(tls, bp+8, __ccgo_ts+33685, bp) + zSep = __ccgo_ts + 1671 i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -196983,16 +198882,16 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in if !(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0) { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34051, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34197, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 34083 + zSep = __ccgo_ts + 34229 } goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5115, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5179, bp) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+8, uintptr(0)) @@ -197018,7 +198917,7 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in // */ func _sessionSelectRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r int32) { /* TODO */ - return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6594, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) + return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6658, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) } // C documentation @@ -197041,16 +198940,16 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+34088, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34234, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+22028, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+22173, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } if i != 0 { - _sessionAppendStr(tls, bp+8, __ccgo_ts+14999, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+15092, bp) } _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) goto _1 @@ -197058,19 +198957,19 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34106, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34252, bp) i = int32(1) for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34117, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34263, bp) goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5115, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5179, bp) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+16, uintptr(0)) } @@ -197093,12 +198992,12 @@ func _sessionPrepare(tls *libc.TLS, db uintptr, pp uintptr, zSql uintptr) (r int func _sessionStat1Sql(tls *libc.TLS, db uintptr, p uintptr) (r int32) { var rc int32 _ = rc - rc = _sessionSelectRow(tls, db, __ccgo_ts+11591, p) + rc = _sessionSelectRow(tls, db, __ccgo_ts+11716, p) if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34121) + rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34267) } if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34234) + rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34380) } return rc } @@ -197165,7 +199064,7 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(227849)) + rc = _sqlite3CorruptError(tls, int32(229504)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -197593,7 +199492,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34378, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34524, uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { rc = _sessionBindRow(tls, pIter, __ccgo_fp(Xsqlite3changeset_new), (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FabPK, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) Xsqlite3_bind_int(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol+int32(1), int32(1)) @@ -197606,7 +199505,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34399, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34545, uintptr(0), uintptr(0), uintptr(0)) } } } @@ -197702,10 +199601,10 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbIgnoreNoop = libc.BoolUint8(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_IGNORENOOP) != 0)) Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, db)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34418, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34564, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34444, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34590, uintptr(0), uintptr(0), uintptr(0)) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) @@ -197736,7 +199635,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui ** non-zero, proceed. */ schemaMismatch = libc.BoolInt32(xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { - *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) + *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { rc = int32(SQLITE_NOMEM) break @@ -197746,7 +199645,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } else { nMinCol = 0 Xsqlite3changeset_pk(tls, pIter, bp+152, uintptr(0)) - rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6594, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) + rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6658, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) if rc != SQLITE_OK { break } @@ -197765,18 +199664,18 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol == 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34474, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34620, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol < *(*int32)(unsafe.Pointer(bp + 136)) { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34518, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34664, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) } else { if *(*int32)(unsafe.Pointer(bp + 136)) < nMinCol || libc.Xmemcmp(tls, (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FabPK, *(*uintptr)(unsafe.Pointer(bp + 152)), uint64(*(*int32)(unsafe.Pointer(bp + 136)))) != 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34589, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34735, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol = *(*int32)(unsafe.Pointer(bp + 136)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11591) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11716) { v2 = _sessionStat1Sql(tls, db, bp+8) rc = v2 if v2 != 0 { @@ -197833,13 +199732,13 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } } } - Xsqlite3_exec(tls, db, __ccgo_ts+34649, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34795, uintptr(0), uintptr(0), uintptr(0)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34679, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34825, uintptr(0), uintptr(0), uintptr(0)) } else { - Xsqlite3_exec(tls, db, __ccgo_ts+34703, uintptr(0), uintptr(0), uintptr(0)) - Xsqlite3_exec(tls, db, __ccgo_ts+34679, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34849, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34825, uintptr(0), uintptr(0), uintptr(0)) } } _ = libc.Int32FromInt32(0) @@ -197933,6 +199832,7 @@ type Tsqlite3_changegroup1 = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -198299,118 +200199,145 @@ func _sessionChangesetExtendRecord(tls *libc.TLS, pGrp uintptr, pTab uintptr, nC // C documentation // // /* -// ** Add all changes in the changeset traversed by the iterator passed as -// ** the first argument to the changegroup hash tables. +// ** Locate or create a SessionTable object that may be used to add the +// ** change currently pointed to by iterator pIter to changegroup pGrp. +// ** If successful, set output variable (*ppTab) to point to the table +// ** object and return SQLITE_OK. Otherwise, if some error occurs, return +// ** an SQLite error code and leave (*ppTab) set to NULL. // */ -func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { - bp := tls.Alloc(80) - defer tls.Free(80) - var bPkOnly1, bPkOnly2, iHash, nNew, rc int32 - var pExist, pTab, pp, ppTab uintptr - var _ /* aRec at bp+0 */ uintptr - var _ /* abPK at bp+64 */ uintptr - var _ /* bIndirect at bp+48 */ int32 - var _ /* nCol at bp+40 */ int32 - var _ /* nRec at bp+8 */ int32 - var _ /* op at bp+44 */ int32 - var _ /* pChange at bp+56 */ uintptr - var _ /* rec at bp+16 */ TSessionBuffer - var _ /* zNew at bp+32 */ uintptr - _, _, _, _, _, _, _, _, _ = bPkOnly1, bPkOnly2, iHash, nNew, pExist, pTab, pp, ppTab, rc +func _sessionChangesetFindTable(tls *libc.TLS, pGrp uintptr, zTab uintptr, pIter uintptr, ppTab uintptr) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var nTab, rc int32 + var pTab, ppNew uintptr + var _ /* abPK at bp+0 */ uintptr + var _ /* nCol at bp+8 */ int32 + _, _, _, _ = nTab, pTab, ppNew, rc rc = SQLITE_OK pTab = uintptr(0) - *(*TSessionBuffer)(unsafe.Pointer(bp + 16)) = TSessionBuffer{} - for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { - pExist = uintptr(0) - /* Ensure that only changesets, or only patchsets, but not a mixture - ** of both, are being combined. It is an error to try to combine a - ** changeset and a patchset. */ - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset - } else { - if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { - rc = int32(SQLITE_ERROR) - break - } + nTab = int32(libc.Xstrlen(tls, zTab)) + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(ppTab)) = uintptr(0) + Xsqlite3changeset_pk(tls, pIter, bp, bp+8) + /* Search the list for an existing table */ + pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList + for { + if !(pTab != 0) { + break } - Xsqlite3changeset_op(tls, pIter, bp+32, bp+40, bp+44, bp+48) - if !(pTab != 0) || Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), (*TSessionTable)(unsafe.Pointer(pTab)).FzName) != 0 { - /* Search the list for a matching table */ - nNew = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)))) - Xsqlite3changeset_pk(tls, pIter, bp+64, uintptr(0)) - pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList - for { - if !(pTab != 0) { - break - } - if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), nNew+int32(1)) { - break - } - goto _1 - _1: - ; - pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext - } - if !(pTab != 0) { - pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 40)))+uint64(nNew)+uint64(1)) - if !(pTab != 0) { - rc = int32(SQLITE_NOMEM) - break - } - libc.Xmemset(tls, pTab, 0, uint64(80)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 40)) - (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp + 64)), uint64(*(*int32)(unsafe.Pointer(bp + 40)))) - (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 40))) - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), uint64(nNew+int32(1))) - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 - rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) - if rc != 0 { - _ = libc.Int32FromInt32(0) - Xsqlite3_free(tls, pTab) - break - } - } - /* The new object must be linked on to the end of the list, not - ** simply added to the start of it. This is to ensure that the - ** tables within the output of sqlite3changegroup_output() are in - ** the right order. */ - ppTab = pGrp + 8 - for { - if !(*(*uintptr)(unsafe.Pointer(ppTab)) != 0) { - break - } - goto _2 - _2: - ; - ppTab = *(*uintptr)(unsafe.Pointer(ppTab)) - } - *(*uintptr)(unsafe.Pointer(ppTab)) = pTab - } - if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*uintptr)(unsafe.Pointer(bp + 64))) != 0) { - rc = int32(SQLITE_SCHEMA) - break - } + if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, nTab+int32(1)) { + break } - if *(*int32)(unsafe.Pointer(bp + 40)) < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol { - _ = libc.Int32FromInt32(0) - rc = _sessionChangesetExtendRecord(tls, pGrp, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*int32)(unsafe.Pointer(bp + 44)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+16) + goto _1 + _1: + ; + pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext + } + /* If one was not found above, create a new table now */ + if !(pTab != 0) { + pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 8)))+uint64(nTab)+uint64(1)) + if !(pTab != 0) { + return int32(SQLITE_NOMEM) + } + libc.Xmemset(tls, pTab, 0, uint64(80)) + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 8)) + (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp)), uint64(*(*int32)(unsafe.Pointer(bp + 8)))) + (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 8))) + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, uint64(nTab+int32(1))) + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 + rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) if rc != 0 { + _ = libc.Int32FromInt32(0) + Xsqlite3_free(tls, pTab) + return rc + } + } + /* The new object must be linked on to the end of the list, not + ** simply added to the start of it. This is to ensure that the + ** tables within the output of sqlite3changegroup_output() are in + ** the right order. */ + ppNew = pGrp + 8 + for { + if !(*(*uintptr)(unsafe.Pointer(ppNew)) != 0) { break } - *(*uintptr)(unsafe.Pointer(bp)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf - *(*int32)(unsafe.Pointer(bp + 8)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf + goto _2 + _2: + ; + ppNew = *(*uintptr)(unsafe.Pointer(ppNew)) } - if _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pTab) != 0 { - rc = int32(SQLITE_NOMEM) - break + *(*uintptr)(unsafe.Pointer(ppNew)) = pTab + } + /* Check that the table is compatible. */ + if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 8)), *(*uintptr)(unsafe.Pointer(bp))) != 0) { + rc = int32(SQLITE_SCHEMA) + } + *(*uintptr)(unsafe.Pointer(ppTab)) = pTab + return rc +} + +// C documentation +// +// /* +// ** Add the change currently indicated by iterator pIter to the hash table +// ** belonging to changegroup pGrp. +// */ +func _sessionOneChangeToHash(tls *libc.TLS, pGrp uintptr, pIter uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var aRec, pBuf, pExist, pp uintptr + var bPkOnly1, bPkOnly2, iHash, nRec, rc int32 + var _ /* bIndirect at bp+8 */ int32 + var _ /* nCol at bp+0 */ int32 + var _ /* op at bp+4 */ int32 + var _ /* pChange at bp+16 */ uintptr + var _ /* pTab at bp+24 */ uintptr + var _ /* zTab at bp+32 */ uintptr + _, _, _, _, _, _, _, _, _ = aRec, bPkOnly1, bPkOnly2, iHash, nRec, pBuf, pExist, pp, rc + rc = SQLITE_OK + *(*int32)(unsafe.Pointer(bp)) = 0 + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + iHash = 0 + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0) + pExist = uintptr(0) + pp = uintptr(0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0) + aRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FaData + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent+int32(2)) + nRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent - int32(2) + /* Ensure that only changesets, or only patchsets, but not a mixture + ** of both, are being combined. It is an error to try to combine a + ** changeset and a patchset. */ + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset + } else { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { + rc = int32(SQLITE_ERROR) } - iHash = int32(_sessionChangeHash(tls, pTab, libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)), *(*uintptr)(unsafe.Pointer(bp)), (*TSessionTable)(unsafe.Pointer(pTab)).FnChange)) + } + if rc == SQLITE_OK { + *(*uintptr)(unsafe.Pointer(bp + 32)) = uintptr(0) + Xsqlite3changeset_op(tls, pIter, bp+32, bp, bp+4, bp+8) + rc = _sessionChangesetFindTable(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 32)), pIter, bp+24) + } + if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) < (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnCol { + pBuf = pGrp + 16 + rc = _sessionChangesetExtendRecord(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 24)), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), aRec, nRec, pBuf) + aRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FaBuf + nRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FnBuf + _ = libc.Int32FromInt32(0) + } + if rc == SQLITE_OK && _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp + 24))) != 0 { + rc = int32(SQLITE_NOMEM) + } + if rc == SQLITE_OK { /* Search for existing entry. If found, remove it from the hash table. - ** Code below may link it back in. - */ - pp = (*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8 + ** Code below may link it back in. */ + iHash = int32(_sessionChangeHash(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)), aRec, (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnChange)) + pp = (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8 for { if !(*(*uintptr)(unsafe.Pointer(pp)) != 0) { break @@ -198419,30 +200346,54 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase bPkOnly2 = 0 if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 { bPkOnly1 = libc.BoolInt32(int32((*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).Fop) == int32(SQLITE_DELETE)) - bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)) + bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)) } - if _sessionChangeEqual(tls, pTab, bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, *(*uintptr)(unsafe.Pointer(bp))) != 0 { + if _sessionChangeEqual(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, aRec) != 0 { pExist = *(*uintptr)(unsafe.Pointer(pp)) *(*uintptr)(unsafe.Pointer(pp)) = (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry-- + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry-- break } - goto _3 - _3: + goto _1 + _1: ; pp = *(*uintptr)(unsafe.Pointer(pp)) + 24 } - rc = _sessionChangeMerge(tls, pTab, bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 44)), *(*int32)(unsafe.Pointer(bp + 48)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+56) - if rc != 0 { + } + if rc == SQLITE_OK { + rc = _sessionChangeMerge(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 4)), *(*int32)(unsafe.Pointer(bp + 8)), aRec, nRec, bp+16) + } + if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { + (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) + *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 16)) + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry++ + } + if rc == SQLITE_OK { + rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc + } + return rc +} + +// C documentation +// +// /* +// ** Add all changes in the changeset traversed by the iterator passed as +// ** the first argument to the changegroup hash tables. +// */ +func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var rc int32 + var _ /* aRec at bp+0 */ uintptr + var _ /* nRec at bp+8 */ int32 + _ = rc + rc = SQLITE_OK + for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { + rc = _sessionOneChangeToHash(tls, pGrp, pIter, bRebase) + if rc != SQLITE_OK { break } - if *(*uintptr)(unsafe.Pointer(bp + 56)) != 0 { - (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 56)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) - *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 56)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry++ - } } - Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf) if rc == SQLITE_OK { rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc } @@ -198553,11 +200504,11 @@ func Xsqlite3changegroup_new(tls *libc.TLS, pp uintptr) (r int32) { var rc int32 _, _ = p, rc rc = SQLITE_OK /* New object */ - p = Xsqlite3_malloc(tls, int32(32)) + p = Xsqlite3_malloc(tls, int32(48)) if p == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, p, 0, uint64(32)) + libc.Xmemset(tls, p, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(pp)) = p return rc @@ -198579,7 +200530,7 @@ func Xsqlite3changegroup_schema(tls *libc.TLS, pGrp uintptr, db uintptr, zDb uin ** or after sqlite3changegroup_schema() has already been called. */ rc = int32(SQLITE_MISUSE) } else { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, zDb)) + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, zDb)) if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -198609,6 +200560,19 @@ func Xsqlite3changegroup_add(tls *libc.TLS, pGrp uintptr, nData int32, pData uin return rc } +// C documentation +// +// /* +// ** Add a single change to a changeset-group. +// */ +func Xsqlite3changegroup_add_change(tls *libc.TLS, pGrp uintptr, pIter uintptr) (r int32) { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent == (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc != SQLITE_OK || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbInvert != 0 { + /* Iterator does not point to any valid entry or is an INVERT iterator. */ + return int32(SQLITE_ERROR) + } + return _sessionOneChangeToHash(tls, pGrp, pIter, 0) +} + // C documentation // // /* @@ -198656,6 +200620,7 @@ func Xsqlite3changegroup_delete(tls *libc.TLS, pGrp uintptr) { if pGrp != 0 { Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList) + Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Frec.FaBuf) Xsqlite3_free(tls, pGrp) } } @@ -199023,11 +200988,11 @@ func Xsqlite3rebaser_create(tls *libc.TLS, ppNew uintptr) (r int32) { var rc int32 _, _ = pNew, rc rc = SQLITE_OK - pNew = Xsqlite3_malloc(tls, int32(32)) + pNew = Xsqlite3_malloc(tls, int32(48)) if pNew == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, pNew, 0, uint64(32)) + libc.Xmemset(tls, pNew, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(ppNew)) = pNew return rc @@ -199101,6 +201066,7 @@ func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn u func Xsqlite3rebaser_delete(tls *libc.TLS, p uintptr) { if p != 0 { _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.FpList) + Xsqlite3_free(tls, (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.Frec.FaBuf) Xsqlite3_free(tls, p) } } @@ -199732,6 +201698,9 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** sqlite3Fts5ParserARG_STORE Code to store %extra_argument into fts5yypParser // ** sqlite3Fts5ParserARG_FETCH Code to extract %extra_argument from fts5yypParser // ** sqlite3Fts5ParserCTX_* As sqlite3Fts5ParserARG_ except for %extra_context +// ** fts5YYREALLOC Name of the realloc() function to use +// ** fts5YYFREE Name of the free() function to use +// ** fts5YYDYNSTACK True if stack space should be extended on heap // ** fts5YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** fts5YYNSTATE the combined number of states. @@ -199745,6 +201714,8 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** fts5YY_NO_ACTION The fts5yy_action[] code for no-op // ** fts5YY_MIN_REDUCE Minimum value for reduce actions // ** fts5YY_MAX_REDUCE Maximum value for reduce actions +// ** fts5YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** fts5YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type Tfts5YYMINORTYPE = struct { @@ -199771,6 +201742,13 @@ type fts5YYMINORTYPE = Tfts5YYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -200200,8 +202178,9 @@ type fts5yyStackEntry = Tfts5yyStackEntry type Tfts5yyParser1 = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser1 = Tfts5yyParser1 @@ -200209,14 +202188,19 @@ type fts5yyParser1 = Tfts5yyParser1 type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser = Tfts5yyParser /* #include */ +/* For builds that do no have a growable stack, fts5yyGrowStack always +** returns an error. + */ + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3Fts5ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -200231,10 +202215,11 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { var fts5yypParser uintptr _ = fts5yypParser fts5yypParser = fts5yypRawParser - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = fts5yypParser + 16 - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fstateno = uint8(0) - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fmajor = uint8(0) - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = fts5yypParser + 16 + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack = fts5yypParser + 32 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fstateno = uint8(0) + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fmajor = uint8(0) } // C documentation @@ -200254,7 +202239,7 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2424)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -200338,11 +202323,17 @@ func _fts5yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var fts5yytos, pParser uintptr + _, _ = fts5yytos, pParser pParser = p - for (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos > pParser+16 { - _fts5yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling fts5yy_pop_parser_stack() for each + ** element left in the stack */ + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos + for fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yystack { + if int32((*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor) >= int32(fts5YY_MIN_DSTRCTR) { + _fts5yy_destructor(tls, pParser, (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor, fts5yytos+8) + } + fts5yytos -= 24 } } @@ -200442,13 +202433,13 @@ func _fts5yyStackOverflow(tls *libc.TLS, fts5yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse - for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > fts5yypParser+16 { + for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack { _fts5yy_pop_parser_stack(tls, fts5yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34731, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34877, 0) /******** End %stack_overflow code ********************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument var */ } @@ -200466,15 +202457,19 @@ func _fts5yy_shift(tls *libc.TLS, fts5yypParser uintptr, fts5yyNewState uint8, f var fts5yytos uintptr _ = fts5yytos (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos += 24 - if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 - _fts5yyStackOverflow(tls, fts5yypParser) - return + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + if fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { + if int32(1) != 0 { + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 + _fts5yyStackOverflow(tls, fts5yypParser) + return + } + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + _ = libc.Int32FromInt32(0) } if int32(fts5yyNewState) > int32(fts5YY_MAX_SHIFT) { fts5yyNewState = uint8(int32(fts5yyNewState) + (libc.Int32FromInt32(fts5YY_MIN_REDUCE) - libc.Int32FromInt32(fts5YY_MIN_SHIFTREDUCE))) } - fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fstateno = fts5yyNewState (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor = fts5yyMajor *(*TFts5Token)(unsafe.Pointer(fts5yytos + 8)) = fts5yyMinor @@ -200804,7 +202799,7 @@ func _fts5yy_syntax_error(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor int3 pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse /************ Begin %syntax_error code ****************************************/ _ = fts5yymajor /* Silence a compiler warning */ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34759, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34905, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) /************ End %syntax_error code ******************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument variable */ } @@ -200870,8 +202865,10 @@ func _sqlite3Fts5Parser(tls *libc.TLS, fts5yyp uintptr, fts5yymajor int32, fts5y ** enough on the stack to push the LHS value */ if int32(_fts5yyRuleInfoNRhs[fts5yyruleno]) == 0 { if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos >= (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - _fts5yyStackOverflow(tls, fts5yypParser) - break + if int32(1) != 0 { + _fts5yyStackOverflow(tls, fts5yypParser) + break + } } } fts5yyact = _fts5yy_reduce(tls, fts5yypParser, fts5yyruleno, fts5yymajor, fts5yyminor) @@ -201112,7 +203109,7 @@ func _fts5HighlightAppend(tls *libc.TLS, pRc uintptr, p uintptr, z uintptr, n in if n < 0 { n = int32(libc.Xstrlen(tls, z)) } - (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34790, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) + (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34936, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) if (*THighlightContext)(unsafe.Pointer(p)).FzOut == uintptr(0) { *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) } @@ -201210,7 +203207,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint var _ /* rc at bp+104 */ int32 _, _ = iCol, zErr if nVal != int32(3) { - zErr = __ccgo_ts + 34797 + zErr = __ccgo_ts + 34943 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -201221,7 +203218,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint (*(*THighlightContext)(unsafe.Pointer(bp))).FiRangeEnd = -int32(1) *(*int32)(unsafe.Pointer(bp + 104)) = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnText})))(tls, pFts, iCol, bp+24, bp+32) if *(*int32)(unsafe.Pointer(bp + 104)) == int32(SQLITE_RANGE) { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1657, -int32(1), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1671, -int32(1), libc.UintptrFromInt32(0)) *(*int32)(unsafe.Pointer(bp + 104)) = SQLITE_OK } else { if (*(*THighlightContext)(unsafe.Pointer(bp))).FzIn != 0 { @@ -201422,7 +203419,7 @@ func _fts5ValueToText(tls *libc.TLS, pVal uintptr) (r uintptr) { if zRet != 0 { v1 = zRet } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } return v1 } @@ -201456,7 +203453,7 @@ func _fts5SnippetFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintpt nBestScore = 0 /* Score of best snippet */ *(*int32)(unsafe.Pointer(bp + 112)) = 0 if nVal != int32(5) { - zErr = __ccgo_ts + 34847 + zErr = __ccgo_ts + 34993 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -201837,15 +203834,15 @@ func _sqlite3Fts5AuxInit(tls *libc.TLS, pApi uintptr) (r int32) { FxDestroy uintptr }{ 0: { - FzFunc: __ccgo_ts + 34895, + FzFunc: __ccgo_ts + 35041, FxFunc: __ccgo_fp(_fts5SnippetFunction), }, 1: { - FzFunc: __ccgo_ts + 34903, + FzFunc: __ccgo_ts + 35049, FxFunc: __ccgo_fp(_fts5HighlightFunction), }, 2: { - FzFunc: __ccgo_ts + 34913, + FzFunc: __ccgo_ts + 35059, FxFunc: __ccgo_fp(_fts5Bm25Function), }, } @@ -202510,7 +204507,7 @@ func _fts5ConfigSkipLiteral(tls *libc.TLS, pIn uintptr) (r uintptr) { case int32('n'): fallthrough case int32('N'): - if Xsqlite3_strnicmp(tls, __ccgo_ts+1643, p, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+1657, p, int32(4)) == 0 { p = p + 4 } else { p = uintptr(0) @@ -202716,7 +204713,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _, _, _, _, _, _, _, _, _, _, _, _ = azArg, bFirst, nArg, nByte, nCmd, nPre, p, p1, p2, pDel, pSpace, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK nCmd = int32(libc.Xstrlen(tls, zCmd)) - if Xsqlite3_strnicmp(tls, __ccgo_ts+34918, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35064, zCmd, nCmd) == 0 { nByte = int32(libc.Uint64FromInt64(4) * libc.Uint64FromInt32(FTS5_MAX_PREFIX_INDEXES)) bFirst = int32(1) if (*TFts5Config)(unsafe.Pointer(pConfig)).FaPrefix == uintptr(0) { @@ -202742,12 +204739,12 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } } if int32(*(*uint8)(unsafe.Pointer(p))) < int32('0') || int32(*(*uint8)(unsafe.Pointer(p))) > int32('9') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34925, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35071, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } if (*TFts5Config)(unsafe.Pointer(pConfig)).FnPrefix == int32(FTS5_MAX_PREFIX_INDEXES) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34956, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35102, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -202756,7 +204753,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC p++ } if nPre <= 0 || nPre >= int32(1000) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34989, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35135, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -202767,7 +204764,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _ = libc.Int32FromInt32(0) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35026, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35172, zCmd, nCmd) == 0 { p1 = zArg nArg = int64(libc.Xstrlen(tls, zArg) + uint64(1)) azArg = _sqlite3Fts5MallocZero(tls, bp, int64(uint64(8)*uint64(nArg))) @@ -202775,7 +204772,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC pSpace = pDel if azArg != 0 && pSpace != 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35035, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35181, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { nArg = 0 @@ -202802,7 +204799,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC nArg++ } if p1 == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35068, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35214, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5GetTokenizer(tls, pGlobal, azArg, int32(nArg), pConfig, pzErr) @@ -202813,58 +204810,58 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC Xsqlite3_free(tls, pDel) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35102, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35248, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent != FTS5_CONTENT_NORMAL { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35110, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35256, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if *(*uint8)(unsafe.Pointer(zArg)) != 0 { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_EXTERNAL) - (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35142, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) + (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35288, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_NONE) } } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35148, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35294, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35167, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35313, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35210, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35356, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35224, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35370, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, zArg, -int32(1)) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35262, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35408, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35273, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35419, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+5508, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+5572, zCmd, nCmd) == 0 { *(*[4]TFts5Enum)(unsafe.Pointer(bp + 8)) = [4]TFts5Enum{ 0: { - FzName: __ccgo_ts + 8227, + FzName: __ccgo_ts + 8352, FeVal: int32(FTS5_DETAIL_NONE), }, 1: { - FzName: __ccgo_ts + 17756, + FzName: __ccgo_ts + 17843, }, 2: { - FzName: __ccgo_ts + 35308, + FzName: __ccgo_ts + 35454, FeVal: int32(FTS5_DETAIL_COLUMNS), }, 3: {}, @@ -202872,20 +204869,20 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC v2 = _fts5ConfigSetEnum(tls, bp+8, zArg, pConfig+96) *(*int32)(unsafe.Pointer(bp)) = v2 if v2 != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35316, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35462, 0) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35347, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35493, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35357, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35503, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbTokendata = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35391, libc.VaList(bp+80, nCmd, zCmd)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35537, libc.VaList(bp+80, nCmd, zCmd)) return int32(SQLITE_ERROR) } @@ -202959,15 +204956,15 @@ func _fts5ConfigParseColumn(tls *libc.TLS, p uintptr, zCol uintptr, zArg uintptr var v2 uintptr _, _, _ = rc, v1, v2 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35419) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16703) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35424, libc.VaList(bp+8, zCol)) + if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35565) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16790) { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35570, libc.VaList(bp+8, zCol)) rc = int32(SQLITE_ERROR) } else { if zArg != 0 { - if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35454) { + if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35600) { *(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FabUnindexed + uintptr((*TFts5Config)(unsafe.Pointer(p)).FnCol))) = uint8(1) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35464, libc.VaList(bp+8, zArg)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35610, libc.VaList(bp+8, zArg)) rc = int32(SQLITE_ERROR) } } @@ -202993,7 +204990,7 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TFts5Buffer)(unsafe.Pointer(bp + 8)) = TFts5Buffer{} - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35495, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35641, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) if (*TFts5Config)(unsafe.Pointer(p)).FeContent != int32(FTS5_CONTENT_NONE) { i = 0 for { @@ -203001,9 +204998,9 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { break } if (*TFts5Config)(unsafe.Pointer(p)).FeContent == int32(FTS5_CONTENT_EXTERNAL) { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35500, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35646, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) } else { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35507, libc.VaList(bp+32, i)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35653, libc.VaList(bp+32, i)) } goto _1 _1: @@ -203064,8 +205061,8 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in (*TFts5Config)(unsafe.Pointer(pRet)).FzName = _sqlite3Fts5Strndup(tls, bp, *(*uintptr)(unsafe.Pointer(azArg + 2*8)), -int32(1)) (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize = int32(1) (*TFts5Config)(unsafe.Pointer(pRet)).FeDetail = FTS5_DETAIL_FULL - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35419) == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35515, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35565) == 0 { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35661, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } _ = libc.Int32FromInt32(0) @@ -203098,19 +205095,19 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { if z == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35544, libc.VaList(bp+40, zOrig)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35690, libc.VaList(bp+40, zOrig)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bOption != 0 { if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { v4 = *(*uintptr)(unsafe.Pointer(bp + 8)) } else { - v4 = __ccgo_ts + 1657 + v4 = __ccgo_ts + 1671 } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { v5 = *(*uintptr)(unsafe.Pointer(bp + 16)) } else { - v5 = __ccgo_ts + 1657 + v5 = __ccgo_ts + 1671 } *(*int32)(unsafe.Pointer(bp)) = _fts5ConfigParseSpecial(tls, pGlobal, pRet, v4, v5, pzErr) } else { @@ -203128,7 +205125,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } /* We only allow contentless_delete=1 if the table is indeed contentless. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FeContent != int32(FTS5_CONTENT_NONE) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35564, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35710, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* We only allow contentless_delete=1 if columnsize=0 is not present. @@ -203136,7 +205133,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in ** This restriction may be removed at some point. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35614, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35760, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* If a tokenizer= option was successfully parsed, the tokenizer has @@ -203150,18 +205147,18 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in zTail = uintptr(0) _ = libc.Int32FromInt32(0) if (*TFts5Config)(unsafe.Pointer(pRet)).FeContent == FTS5_CONTENT_NORMAL { - zTail = __ccgo_ts + 35102 + zTail = __ccgo_ts + 35248 } else { if (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize != 0 { - zTail = __ccgo_ts + 35669 + zTail = __ccgo_ts + 35815 } } if zTail != 0 { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35677, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35823, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid == uintptr(0) { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16703, -int32(1)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16790, -int32(1)) } /* Formulate the zContentExprlist text */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -203225,25 +205222,25 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { var _ /* rc at bp+0 */ int32 _, _, _, _ = i, zSep, zSql, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35688, 0) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35834, 0) i = 0 for { if !(zSql != 0 && i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } if i == 0 { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } else { - v2 = __ccgo_ts + 14999 + v2 = __ccgo_ts + 15092 } zSep = v2 - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35704, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35850, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) goto _1 _1: ; i++ } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35711, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35419)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35857, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35565)) _ = libc.Int32FromInt32(0) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_declare_vtab(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql) @@ -203391,7 +205388,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV var _ /* zRankArgs at bp+8 */ uintptr _, _, _, _, _, _, _, _, _, _ = bVal, nAutomerge, nCrisisMerge, nHashSize, nUsermerge, nVal, pgsz, rc, zIn, v1 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35737) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35883) { pgsz = 0 if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { pgsz = Xsqlite3_value_int(tls, pVal) @@ -203402,7 +205399,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).Fpgsz = pgsz } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35742) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35888) { nHashSize = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nHashSize = Xsqlite3_value_int(tls, pVal) @@ -203413,7 +205410,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnHashSize = nHashSize } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35751) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35897) { nAutomerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nAutomerge = Xsqlite3_value_int(tls, pVal) @@ -203427,7 +205424,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnAutomerge = nAutomerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35761) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35907) { nUsermerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nUsermerge = Xsqlite3_value_int(tls, pVal) @@ -203438,7 +205435,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnUsermerge = nUsermerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35771) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35917) { nCrisisMerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nCrisisMerge = Xsqlite3_value_int(tls, pVal) @@ -203455,7 +205452,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnCrisisMerge = nCrisisMerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35783) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35929) { nVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nVal = Xsqlite3_value_int(tls, pVal) @@ -203470,7 +205467,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } (*TFts5Config)(unsafe.Pointer(pConfig)).FnDeleteMerge = nVal } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35419) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35565) { zIn = Xsqlite3_value_text(tls, pVal) rc = _sqlite3Fts5ConfigParseRank(tls, zIn, bp, bp+8) if rc == SQLITE_OK { @@ -203485,7 +205482,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35795) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35941) { bVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { bVal = Xsqlite3_value_int(tls, pVal) @@ -203527,7 +205524,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in var _ /* p at bp+0 */ uintptr var _ /* rc at bp+8 */ int32 _, _, _, _, _ = iVersion, pVal, zK, zSelect, zSql - zSelect = __ccgo_ts + 35809 + zSelect = __ccgo_ts + 35955 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_OK iVersion = 0 @@ -203548,7 +205545,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in for int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zK = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) pVal = Xsqlite3_column_value(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) - if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35841) { + if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35987) { iVersion = Xsqlite3_value_int(tls, pVal) } else { *(*int32)(unsafe.Pointer(bp + 12)) = 0 @@ -203561,7 +205558,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in *(*int32)(unsafe.Pointer(bp + 8)) = int32(SQLITE_ERROR) if (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg != 0 { _ = libc.Int32FromInt32(0) - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35849, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35995, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = iVersion @@ -203783,7 +205780,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr } } if int32(*(*uint8)(unsafe.Pointer(z2))) == int32('\000') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35920, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36066, 0) return FTS5_EOF } goto _1 @@ -203794,7 +205791,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z2) - int64(z)) default: if _sqlite3Fts5IsBareword(tls, *(*uint8)(unsafe.Pointer(z))) == 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35940, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36086, libc.VaList(bp+8, z)) return FTS5_EOF } tok = int32(FTS5_STRING) @@ -203809,13 +205806,13 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr z21++ } (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z21) - int64(z)) - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35971, uint64(2)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36117, uint64(2)) == 0 { tok = int32(FTS5_OR) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35974, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36120, uint64(3)) == 0 { tok = int32(FTS5_NOT) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30715, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30861, uint64(3)) == 0 { tok = int32(FTS5_AND) } break @@ -204236,6 +206233,7 @@ func _fts5ExprSynonymList(tls *libc.TLS, pTerm uintptr, iRowid Ti64, pBuf uintpt *(*int32)(unsafe.Pointer(pn)) = (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn } } + goto synonym_poslist_out synonym_poslist_out: ; if aIter != bp { @@ -204368,6 +206366,7 @@ func _fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMat i++ } } + goto ismatch_out ismatch_out: ; *(*int32)(unsafe.Pointer(pbMatch)) = libc.BoolInt32((*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn > 0) @@ -204575,6 +206574,7 @@ func _fts5ExprNearIsMatch(tls *libc.TLS, pRc uintptr, pNear uintptr) (r int32) { goto ismatch_out } } + goto ismatch_out ismatch_out: ; bRet = libc.BoolInt32((*TFts5Buffer)(unsafe.Pointer((*(*TFts5NearTrimmer)(unsafe.Pointer(a))).FpOut)).Fn > 0) @@ -205920,8 +207920,8 @@ func _sqlite3Fts5ExprClonePhrase(tls *libc.TLS, pExpr uintptr, iPhrase int32, pp func _sqlite3Fts5ParseNear(tls *libc.TLS, pParse uintptr, pTok uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+35978, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34759, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) + if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+36124, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34905, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) } } @@ -205941,7 +207941,7 @@ func _sqlite3Fts5ParseSetDistance(tls *libc.TLS, pParse uintptr, pNear uintptr, } c = *(*uint8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i))) if int32(c) < int32('0') || int32(c) > int32('9') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35983, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36129, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) return } nNear = nNear*int32(10) + (int32(*(*uint8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i)))) - int32('0')) @@ -206081,7 +208081,7 @@ func _sqlite3Fts5ParseColset(tls *libc.TLS, pParse uintptr, pColset uintptr, p u iCol++ } if iCol == (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21025, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21157, libc.VaList(bp+8, z)) } else { pRet = _fts5ParseColset(tls, pParse, pColset, iCol) } @@ -206208,7 +208208,7 @@ func _sqlite3Fts5ParseSetColset(tls *libc.TLS, pParse uintptr, pExpr uintptr, pC var _ /* pFree at bp+0 */ uintptr *(*uintptr)(unsafe.Pointer(bp)) = pColset if (*TFts5Config)(unsafe.Pointer((*TFts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FeDetail == int32(FTS5_DETAIL_NONE) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36012, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36158, 0) } else { _fts5ParseSetColset(tls, pParse, pExpr, pColset, bp) } @@ -206405,11 +208405,11 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin pPhrase = *(*uintptr)(unsafe.Pointer(pNear + 24)) if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase != int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 0 && (*(*TFts5ExprTerm)(unsafe.Pointer(pPhrase + 32))).FbFirst != 0 { if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase == int32(1) { - v2 = __ccgo_ts + 36065 + v2 = __ccgo_ts + 36211 } else { - v2 = __ccgo_ts + 35978 + v2 = __ccgo_ts + 36124 } - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36072, libc.VaList(bp+8, v2)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36218, libc.VaList(bp+8, v2)) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -206418,7 +208418,7 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin _fts5ExprAddChildren(tls, pRet, pLeft) _fts5ExprAddChildren(tls, pRet, pRight) if (*TFts5ExprNode)(unsafe.Pointer(pRet)).FiHeight > int32(SQLITE_FTS5_MAX_EXPR_DEPTH) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36122, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36268, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -208587,7 +210587,7 @@ func _fts5DataRead(tls *libc.TLS, p uintptr, iRowid Ti64) (r uintptr) { ** to the requested entry. */ if (*TFts5Index)(unsafe.Pointer(p)).FpReader == uintptr(0) && rc == SQLITE_OK { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36175, iRowid, 0, p+72) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36321, iRowid, 0, p+72) } /* If either of the sqlite3_blob_open() or sqlite3_blob_reopen() calls ** above returned SQLITE_ERROR, return SQLITE_CORRUPT_VTAB instead. @@ -208681,7 +210681,7 @@ func _fts5DataWrite(tls *libc.TLS, p uintptr, iRowid Ti64, pData uintptr, nData } if (*TFts5Index)(unsafe.Pointer(p)).FpWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36181, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36327, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return } @@ -208710,7 +210710,7 @@ func _fts5DataDelete(tls *libc.TLS, p uintptr, iFirst Ti64, iLast Ti64) { } if (*TFts5Index)(unsafe.Pointer(p)).FpDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36232, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36378, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if _fts5IndexPrepareStmt(tls, p, p+88, zSql) != 0 { return } @@ -208744,7 +210744,7 @@ func _fts5DataRemoveSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { } if (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36281, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36427, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter, int32(1), iSegid) @@ -208914,7 +210914,7 @@ func _fts5StructureDecode(tls *libc.TLS, pData uintptr, nData int32, piCookie ui } i = int32(4) /* Check if this is a V2 structure record. Set bStructureV2 if it is. */ - if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36321, uint64(4)) { + if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36467, uint64(4)) { i += int32(4) bStructureV2 = int32(1) } @@ -209107,7 +211107,7 @@ func _fts5IndexDataVersion(tls *libc.TLS, p uintptr) (r Ti64) { iVersion = 0 if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*TFts5Index)(unsafe.Pointer(p)).FpDataVersion == uintptr(0) { - (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36326, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) + (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36472, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return 0 } @@ -209195,7 +211195,7 @@ func _fts5StructureWrite(tls *libc.TLS, p uintptr, pStruct uintptr) { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = int32(4) if (*TFts5Structure)(unsafe.Pointer(pStruct)).FnOriginCntr > uint64(0) { _ = libc.Int32FromInt32(0) - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36321, uint64(4)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36467, uint64(4)) *(*int32)(unsafe.Pointer(bp + 8)) += int32(4) } *(*int32)(unsafe.Pointer(bp + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), uint64((*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel)) @@ -210173,6 +212173,7 @@ func _fts5SegIterNext_None(tls *libc.TLS, p uintptr, pIter uintptr, pbNewTerm ui } _fts5SegIterLoadNPos(tls, p, pIter) return + goto next_none_eof next_none_eof: ; _fts5DataRelease(tls, (*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf) @@ -210549,6 +212550,7 @@ func _fts5LeafSeek(tls *libc.TLS, p uintptr, bGe int32, pIter uintptr, pTerm uin *(*Tu32)(unsafe.Pointer(bp)) += uint32(_sqlite3Fts5GetVarint32(tls, a+uintptr(*(*Tu32)(unsafe.Pointer(bp))), bp+4)) } } + goto search_failed search_failed: ; if bGe == 0 { @@ -210580,6 +212582,7 @@ search_failed: } } } + goto search_success search_success: ; if int64(*(*Tu32)(unsafe.Pointer(bp)))+int64(*(*Tu32)(unsafe.Pointer(bp + 8))) > int64(n) || *(*Tu32)(unsafe.Pointer(bp + 8)) < uint32(1) { @@ -210609,7 +212612,7 @@ func _fts5IdxSelectStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36349, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36495, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect } @@ -210701,7 +212704,7 @@ func _fts5IdxNextStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36433, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36579, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect } @@ -211834,6 +213837,7 @@ func _fts5IterSetOutputs_Col100(tls *libc.TLS, pIter uintptr, pSeg uintptr) { iPrevOut = iPrev } } + goto setoutputs_col_out setoutputs_col_out: ; (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*TFts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp @@ -212059,6 +214063,7 @@ func _fts5MultiIterNew(tls *libc.TLS, p uintptr, pStruct uintptr, flags int32, p _fts5MultiIterFree(tls, pNew) *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) } + goto fts5MultiIterNew_post_check fts5MultiIterNew_post_check: ; _ = libc.Int32FromInt32(0) @@ -212378,7 +214383,7 @@ func _fts5WriteFlushBtree(tls *libc.TLS, p uintptr, pWriter uintptr) { if (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn > 0 { v1 = (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fp } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } z = v1 /* The following was already done in fts5WriteInit(): */ @@ -212747,7 +214752,7 @@ func _fts5WriteInit(tls *libc.TLS, p uintptr, pWriter uintptr, iSegid int32) { _sqlite3Fts5BufferSize(tls, p+60, pWriter+8+8, uint32(nBuffer)) if (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36515, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36661, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { /* Initialize the 4-byte leaf-page header to 0x00. */ @@ -213248,7 +215253,7 @@ func _fts5SecureDeleteIdxEntry(tls *libc.TLS, p uintptr, iSegid int32, iPgno int if iPgno != int32(1) { _ = libc.Int32FromInt32(0) if (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx == uintptr(0) { - _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36572, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36718, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx, int32(1), iSegid) @@ -214788,7 +216793,7 @@ func _sqlite3Fts5IndexReinit(tls *libc.TLS, p uintptr) (r int32) { if (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FbContentlessDelete != 0 { (*(*TFts5Structure)(unsafe.Pointer(bp))).FnOriginCntr = uint64(1) } - _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1657, 0) + _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1671, 0) _fts5StructureWrite(tls, p, bp) return _fts5IndexReturn(tls, p) } @@ -214815,11 +216820,11 @@ func _sqlite3Fts5IndexOpen(tls *libc.TLS, pConfig uintptr, bCreate int32, pp uin if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Index)(unsafe.Pointer(p)).FpConfig = pConfig (*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit = int32(FTS5_WORK_UNIT) - (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36633, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36779, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl != 0 && bCreate != 0 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25750, __ccgo_ts+36641, 0, pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25896, __ccgo_ts+36787, 0, pzErr) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11802, __ccgo_ts+36676, int32(1), pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11927, __ccgo_ts+36822, int32(1), pzErr) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5IndexReinit(tls, p) @@ -215358,7 +217363,7 @@ func _fts5SetupTokendataIter(tls *libc.TLS, p uintptr, pToken uintptr, nToken in pNew = _fts5MultiIterAlloc(tls, p, (*TFts5Structure)(unsafe.Pointer(pStruct)).FnSegment) if pSmall != 0 { _sqlite3Fts5BufferSet(tls, p+60, bp, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fn, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+36720) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+36866) } else { _sqlite3Fts5BufferSet(tls, p+60, bp, nToken, pToken) } @@ -215888,7 +217893,7 @@ func _sqlite3Fts5IndexSetCookie(tls *libc.TLS, p uintptr, iNew int32) (r int32) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) _ = libc.Int32FromInt32(0) _sqlite3Fts5Put32(tls, bp, iNew) - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36175, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36321, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) if rc == SQLITE_OK { Xsqlite3_blob_write(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), bp, int32(4), 0) rc = Xsqlite3_blob_close(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) @@ -216487,7 +218492,7 @@ func _fts5IndexIntegrityCheckSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { if (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst == 0 { return } - _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36722, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) + _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36868, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) /* Iterate through the b-tree hierarchy. */ for (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { /* Data for this leaf */ zIdxTerm = Xsqlite3_column_blob(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -216720,7 +218725,7 @@ func _sqlite3Fts5IndexIntegrityCheck(tls *libc.TLS, p uintptr, cksum Tu64, bUseC } else { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = 0 _fts5SegiterPoslist(tls, p, *(*uintptr)(unsafe.Pointer(bp + 16))+104+uintptr((*(*TFts5CResult)(unsafe.Pointer((*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaFirst + 1*4))).FiFirst)*128, uintptr(0), bp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+36808) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+36954) for 0 == _sqlite3Fts5PoslistNext64(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn, bp+40, bp+32) { iCol = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) >> libc.Int32FromInt32(32)) iTokOff = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) & libc.Int64FromInt32(0x7FFFFFFF)) @@ -217318,7 +219323,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36813, 0) + (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36959, 0) return int32(SQLITE_ERROR) } idxStr = Xsqlite3_malloc(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint*int32(8)+int32(1)) @@ -217358,7 +219363,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v3 = iIdxStr iIdxStr++ *(*uint8)(unsafe.Pointer(idxStr + uintptr(v3))) = uint8('M') - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5147, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5211, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) _ = libc.Int32FromInt32(0) } @@ -217380,7 +219385,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v6 = int32('G') } *(*uint8)(unsafe.Pointer(idxStr + uintptr(v5))) = uint8(v6) - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5147, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5211, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) iCons++ v7 = iCons @@ -217822,7 +219827,7 @@ func _fts5NextMethod(tls *libc.TLS, pCursor uintptr) (r int32) { *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_EOF) rc = Xsqlite3_reset(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpStmt) if rc != SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } } else { rc = SQLITE_OK @@ -217849,7 +219854,7 @@ func _fts5PrepareStatement(tls *libc.TLS, ppStmt uintptr, pConfig uintptr, zFmt } else { rc = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } Xsqlite3_free(tls, zSql) } @@ -217884,21 +219889,21 @@ func _fts5CursorFirstSorted(tls *libc.TLS, pTab uintptr, pCsr uintptr, bDesc int ** ** If SQLite a built-in statement cache, this wouldn't be a problem. */ if zRankArgs != 0 { - v1 = __ccgo_ts + 14999 + v1 = __ccgo_ts + 15092 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } if zRankArgs != 0 { v2 = zRankArgs } else { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } if bDesc != 0 { - v3 = __ccgo_ts + 36852 + v3 = __ccgo_ts + 36998 } else { - v3 = __ccgo_ts + 36857 + v3 = __ccgo_ts + 37003 } - rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+36861, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) + rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+37007, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpSorter = pSorter if rc == SQLITE_OK { _ = libc.Int32FromInt32(0) @@ -217958,14 +219963,14 @@ func _fts5SpecialMatch(tls *libc.TLS, pTab uintptr, pCsr uintptr, zQuery uintptr } _ = libc.Int32FromInt32(0) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan = int32(FTS5_PLAN_SPECIAL) - if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+36916, z, n) { + if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+37062, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = int64(_sqlite3Fts5IndexReads(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)) } else { - if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5490, z, n) { + if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5554, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId } else { /* An unrecognized directive. Return an error message. */ - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36922, libc.VaList(bp+8, n, z)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37068, libc.VaList(bp+8, n, z)) rc = int32(SQLITE_ERROR) } } @@ -218015,7 +220020,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { zRank = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank zRankArgs = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs if zRankArgs != 0 { - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36950, libc.VaList(bp+24, zRankArgs)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37096, libc.VaList(bp+24, zRankArgs)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp+8, uintptr(0)) @@ -218051,7 +220056,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { pAux = _fts5FindAuxiliary(tls, pTab, zRank) if pAux == uintptr(0) { _ = libc.Int32FromInt32(0) - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36960, libc.VaList(bp+24, zRank)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37106, libc.VaList(bp+24, zRank)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -218085,7 +220090,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_FREE_ZRANK) } else { if rc == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36981, libc.VaList(bp+24, z)) + (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37127, libc.VaList(bp+24, z)) } } } else { @@ -218093,7 +220098,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRank (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRankArgs } else { - (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 34913 + (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 35059 (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = uintptr(0) } } @@ -218144,7 +220149,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint iIdxStr = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36813, 0) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36959, 0) return int32(SQLITE_ERROR) } if (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan != 0 { @@ -218174,7 +220179,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint case int32('M'): zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8))) if zText == uintptr(0) { - zText = __ccgo_ts + 1657 + zText = __ccgo_ts + 1671 } iCol = 0 for cond := true; cond; cond = int32(*(*uint8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) <= int32('9') { @@ -218302,7 +220307,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent == uintptr(0) { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37014, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37160, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) rc = int32(SQLITE_ERROR) } else { /* This is either a full-table scan (ePlan==FTS5_PLAN_SCAN) or a lookup @@ -218327,6 +220332,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } } + goto filter_out filter_out: ; _sqlite3Fts5ExprFree(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -218445,7 +220451,7 @@ func _fts5SeekCursor(tls *libc.TLS, pCsr uintptr, bErrormsg int32) (r int32) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< int32(1) { - v1 = __ccgo_ts + 20878 + v1 = __ccgo_ts + 21010 } else { - v1 = __ccgo_ts + 37292 + v1 = __ccgo_ts + 37438 } - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37304, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37450, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if nArg == int32(1) { @@ -218710,7 +220716,7 @@ func _fts5UpdateMethod(tls *libc.TLS, pVtab uintptr, nArg int32, apVal uintptr, } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && bUpdateOrDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FbSecureDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion == int32(FTS5_CURRENT_VERSION) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35841, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35987, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = int32(FTS5_CURRENT_VERSION_SECUREDELETE) } @@ -219511,7 +221517,7 @@ func _fts5ApiCallback(tls *libc.TLS, context uintptr, argc int32, argv uintptr) iCsrId = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) pCsr = _fts5CursorFromCsrid(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal, iCsrId) if pCsr == uintptr(0) || (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan == 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37341, libc.VaList(bp+8, iCsrId)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37487, libc.VaList(bp+8, iCsrId)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } else { @@ -219703,7 +221709,7 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg = uintptr(0) } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 && Xsqlite3_vtab_nochange(tls, pCtx) != 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37362, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37508, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -219946,7 +221952,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr if pMod == uintptr(0) { _ = libc.Int32FromInt32(0) rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37433, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37579, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) } else { if azArg != 0 { v2 = azArg + 1*8 @@ -219962,7 +221968,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr (*TFts5Config)(unsafe.Pointer(pConfig)).FpTokApi = pMod + 16 if rc != SQLITE_OK { if pzErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37455, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37601, 0) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FePattern = _sqlite3Fts5TokenizerPattern(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pMod)).Fx.FxCreate, (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok) @@ -220018,7 +222024,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { pGlobal = Xsqlite3_user_data(tls, pCtx) _ = nArg _ = libc.Int32FromInt32(0) - ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37486) + ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37632) if ppApi != 0 { *(*uintptr)(unsafe.Pointer(ppApi)) = pGlobal } @@ -220033,7 +222039,7 @@ func _fts5SourceIdFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apUnused uintptr _ = libc.Int32FromInt32(0) _ = nArg _ = apUnused - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37499, -int32(1), uintptr(-libc.Int32FromInt32(1))) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37645, -int32(1), uintptr(-libc.Int32FromInt32(1))) } // C documentation @@ -220062,11 +222068,11 @@ func _fts5ShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName2 = [5]uintptr{ - 0: __ccgo_ts + 37590, - 1: __ccgo_ts + 35102, - 2: __ccgo_ts + 25750, - 3: __ccgo_ts + 35669, - 4: __ccgo_ts + 11802, + 0: __ccgo_ts + 37736, + 1: __ccgo_ts + 35248, + 2: __ccgo_ts + 25896, + 3: __ccgo_ts + 35815, + 4: __ccgo_ts + 11927, } // C documentation @@ -220080,21 +222086,27 @@ func _fts5IntegrityMethod(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zTabnam bp := tls.Alloc(32) defer tls.Free(32) var pTab uintptr - var rc int32 - _, _ = pTab, rc + var rc, v1 int32 + _, _, _ = pTab, rc, v1 pTab = pVtab _ = libc.Int32FromInt32(0) _ = isQuick rc = _sqlite3Fts5StorageIntegrity(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, 0) if rc&int32(0xff) == int32(SQLITE_CORRUPT) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37597, libc.VaList(bp+8, zSchema, zTabname)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37743, libc.VaList(bp+8, zSchema, zTabname)) + if *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { + v1 = SQLITE_OK + } else { + v1 = int32(SQLITE_NOMEM) + } + rc = v1 } else { if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37643, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37789, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) } } _sqlite3Fts5IndexCloseReader(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex) - return SQLITE_OK + return rc } func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { @@ -220113,7 +222125,7 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateFunction = __ccgo_fp(_fts5CreateAux) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateTokenizer = __ccgo_fp(_fts5CreateTokenizer) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxFindTokenizer = __ccgo_fp(_fts5FindTokenizer) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37706, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37852, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) if rc == SQLITE_OK { rc = _sqlite3Fts5IndexInit(tls, db) } @@ -220130,10 +222142,10 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { rc = _sqlite3Fts5VocabInit(tls, pGlobal, db) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37706, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37852, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37711, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37857, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) } } /* If SQLITE_FTS5_ENABLE_TEST_MI is defined, assume that the file @@ -220238,17 +222250,17 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(eStmt)*8)) == uintptr(0) { azStmt = [11]uintptr{ - 0: __ccgo_ts + 37726, - 1: __ccgo_ts + 37794, - 2: __ccgo_ts + 37863, - 3: __ccgo_ts + 37896, - 4: __ccgo_ts + 37935, - 5: __ccgo_ts + 37975, - 6: __ccgo_ts + 38014, - 7: __ccgo_ts + 38057, - 8: __ccgo_ts + 38096, - 9: __ccgo_ts + 38140, - 10: __ccgo_ts + 38180, + 0: __ccgo_ts + 37872, + 1: __ccgo_ts + 37940, + 2: __ccgo_ts + 38009, + 3: __ccgo_ts + 38042, + 4: __ccgo_ts + 38081, + 5: __ccgo_ts + 38121, + 6: __ccgo_ts + 38160, + 7: __ccgo_ts + 38203, + 8: __ccgo_ts + 38242, + 9: __ccgo_ts + 38286, + 10: __ccgo_ts + 38326, } pC = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig zSql = uintptr(0) @@ -220285,16 +222297,16 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, } case int32(FTS5_STMT_REPLACE_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v2 = __ccgo_ts + 38203 + v2 = __ccgo_ts + 38349 } else { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName, v2)) case int32(FTS5_STMT_LOOKUP_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v3 = __ccgo_ts + 38206 + v3 = __ccgo_ts + 38352 } else { - v3 = __ccgo_ts + 1657 + v3 = __ccgo_ts + 1671 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, v3, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName)) default: @@ -220313,7 +222325,7 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, (*TFts5Config)(unsafe.Pointer((*TFts5Storage)(unsafe.Pointer(p)).FpConfig)).FbLock-- Xsqlite3_free(tls, zSql) if rc != SQLITE_OK && pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) } } } @@ -220350,12 +222362,12 @@ func _sqlite3Fts5DropAll(tls *libc.TLS, pConfig uintptr) (r int32) { defer tls.Free(64) var rc int32 _ = rc - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38214, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38360, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38318, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38464, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38356, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38502, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } return rc } @@ -220364,7 +222376,7 @@ func _fts5StorageRenameOne(tls *libc.TLS, pConfig uintptr, pRc uintptr, zTail ui bp := tls.Alloc(48) defer tls.Free(48) if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38394, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) + *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38540, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) } } @@ -220376,14 +222388,14 @@ func _sqlite3Fts5StorageRename(tls *libc.TLS, pStorage uintptr, zName uintptr) ( _ = pConfig pConfig = (*TFts5Storage)(unsafe.Pointer(pStorage)).FpConfig *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageSync(tls, pStorage) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25750, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11802, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37590, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25896, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11927, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37736, zName) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35669, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35815, zName) } if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35102, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35248, zName) } return *(*int32)(unsafe.Pointer(bp)) } @@ -220403,13 +222415,13 @@ func _sqlite3Fts5CreateTable(tls *libc.TLS, pConfig uintptr, zPost uintptr, zDef _, _ = rc, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if bWithout != 0 { - v1 = __ccgo_ts + 30390 + v1 = __ccgo_ts + 30536 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38436, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38582, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38466, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38612, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -220450,36 +222462,36 @@ func _sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCr if zDefn == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38510, 0) + Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38656, 0) iOff = int32(libc.Xstrlen(tls, zDefn)) i = 0 for { if !(i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } - Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38533, libc.VaList(bp+8, i)) + Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38679, libc.VaList(bp+8, i)) iOff += int32(libc.Xstrlen(tls, zDefn+uintptr(iOff))) goto _2 _2: ; i++ } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35102, zDefn, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35248, zDefn, 0, pzErr) } Xsqlite3_free(tls, zDefn) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - zCols = __ccgo_ts + 38539 + zCols = __ccgo_ts + 38685 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 { - zCols = __ccgo_ts + 38571 + zCols = __ccgo_ts + 38717 } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35669, zCols, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35815, zCols, 0, pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37590, __ccgo_ts+38619, int32(1), pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37736, __ccgo_ts+38765, int32(1), pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35841, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35987, uintptr(0), int32(FTS5_CURRENT_VERSION)) } } if rc != 0 { @@ -220826,9 +222838,9 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig (*TFts5Storage)(unsafe.Pointer(p)).FbTotalsValid = 0 /* Delete the contents of the %_data and %_docsize tables. */ - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38636, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38782, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38686, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38832, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } /* Reinitialize the %_data table. This call creates the initial structure ** and averages records. */ @@ -220836,7 +222848,7 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3Fts5IndexReinit(tls, (*TFts5Storage)(unsafe.Pointer(p)).FpIndex) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35841, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35987, uintptr(0), int32(FTS5_CURRENT_VERSION)) } return rc } @@ -221050,7 +223062,7 @@ func _fts5StorageCount(tls *libc.TLS, p uintptr, zSuffix uintptr, pnRow uintptr) var _ /* pCnt at bp+0 */ uintptr _, _, _ = pConfig, rc, zSql pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38715, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38861, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -221261,14 +223273,14 @@ func _sqlite3Fts5StorageIntegrity(tls *libc.TLS, p uintptr, iArg int32) (r int32 ** number of rows. */ if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { *(*Ti64)(unsafe.Pointer(bp + 48)) = 0 - rc = _fts5StorageCount(tls, p, __ccgo_ts+35102, bp+48) + rc = _fts5StorageCount(tls, p, __ccgo_ts+35248, bp+48) if rc == SQLITE_OK && *(*Ti64)(unsafe.Pointer(bp + 48)) != (*TFts5Storage)(unsafe.Pointer(p)).FnTotalRow { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<= int32('A') && int32(*(*uint8)(unsafe.Pointer(zCsr))) <= int32('Z') { @@ -222198,6 +224212,7 @@ _5: goto _2 _1: ; + goto tokenize_done tokenize_done: ; if rc == int32(SQLITE_DONE) { @@ -222261,7 +224276,7 @@ func _fts5PorterCreate(tls *libc.TLS, pCtx uintptr, azArg uintptr, nArg int32, p pApi = pCtx rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zBase = __ccgo_ts + 38807 + zBase = __ccgo_ts + 38953 if nArg > 0 { zBase = *(*uintptr)(unsafe.Pointer(azArg)) } @@ -222478,64 +224493,64 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38817, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38963, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38820, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38966, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38825, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38971, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('e'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38830, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38976, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38833, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38979, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('l'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38836, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38982, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38841, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38987, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38846, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38992, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38850, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38996, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38856, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39002, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38861, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39007, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -222544,49 +224559,49 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38865, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39011, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1_and_S_or_T(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38869, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39015, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } } case int32('s'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38872, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39018, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('t'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38876, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39022, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38880, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39026, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38884, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39030, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38888, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39034, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('z'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38892, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39038, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -222603,20 +224618,20 @@ func _fts5PorterStep1B2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38896, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38876, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39042, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39022, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('b'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38899, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38902, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39045, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39048, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38906, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38892, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39052, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39038, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } @@ -222632,75 +224647,75 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38909, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39055, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38876, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39022, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38917, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39063, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38924, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39070, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(4) } } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38929, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39075, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38825, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38971, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38934, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39080, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38820, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38966, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } } case int32('e'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38939, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39085, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38892, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39038, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('g'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38944, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39090, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15916, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15995, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('l'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38949, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39095, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38902, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39048, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38953, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39099, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38817, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38963, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38958, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39104, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38861, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39007, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38964, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39110, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38968, uint64(1)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39114, uint64(1)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(1) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38970, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39116, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38884, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39030, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } @@ -222709,48 +224724,48 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38976, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39122, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38892, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39038, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38984, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39130, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38876, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39022, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38990, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39136, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38876, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39022, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } } } case int32('s'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38995, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39141, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38817, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38963, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39001, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39147, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38888, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39034, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39009, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39155, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39017, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39163, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39021, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39167, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38884, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39030, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } @@ -222758,21 +224773,21 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39029, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39175, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38817, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38963, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39035, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39181, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38888, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39034, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39041, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39187, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38902, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39048, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(3) } } @@ -222790,48 +224805,48 @@ func _fts5PorterStep3(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39048, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39194, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38833, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38979, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } case int32('s'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39053, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39199, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39058, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39204, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38833, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38979, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39064, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39210, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38833, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38979, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39017, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39163, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39070, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39216, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } case int32('z'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39076, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39222, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38817, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38963, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } @@ -222847,13 +224862,13 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('e'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39082, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39228, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39086, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39232, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(2) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39089, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39235, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) ret = int32(1) @@ -222861,7 +224876,7 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39092, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39238, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) ret = int32(1) @@ -222947,6 +224962,7 @@ func _fts5PorterCb(tls *libc.TLS, pCtx uintptr, tflags int32, pToken uintptr, nT *(*int32)(unsafe.Pointer(bp))-- } return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, aBuf, *(*int32)(unsafe.Pointer(bp)), iStart, iEnd) + goto pass_through pass_through: ; return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, pToken, nToken, iStart, iEnd) @@ -223022,14 +225038,14 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p break } zArg = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+int32(1))*8)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39096) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39242) { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || *(*uint8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { (*TTrigramTokenizer)(unsafe.Pointer(pNew)).FbFold = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('0')) } } else { - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38789) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38935) { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('2') || *(*uint8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { @@ -223304,7 +225320,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { Fx Tfts5_tokenizer }{ 0: { - FzName: __ccgo_ts + 38807, + FzName: __ccgo_ts + 38953, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5UnicodeCreate), FxDelete: __ccgo_fp(_fts5UnicodeDelete), @@ -223312,7 +225328,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 1: { - FzName: __ccgo_ts + 39111, + FzName: __ccgo_ts + 39257, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5AsciiCreate), FxDelete: __ccgo_fp(_fts5AsciiDelete), @@ -223320,7 +225336,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 2: { - FzName: __ccgo_ts + 39117, + FzName: __ccgo_ts + 39263, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5PorterCreate), FxDelete: __ccgo_fp(_fts5PorterDelete), @@ -223328,7 +225344,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 3: { - FzName: __ccgo_ts + 39124, + FzName: __ccgo_ts + 39270, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5TriCreate), FxDelete: __ccgo_fp(_fts5TriDelete), @@ -228873,16 +230889,16 @@ func _fts5VocabTableType(tls *libc.TLS, zType uintptr, pzErr uintptr, peType uin zCopy = _sqlite3Fts5Strndup(tls, bp, zType, -int32(1)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { _sqlite3Fts5Dequote(tls, zCopy) - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39132) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39278) == 0 { *(*int32)(unsafe.Pointer(peType)) = FTS5_VOCAB_COL } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39136) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39282) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_ROW) } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39140) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39286) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_INSTANCE) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39149, libc.VaList(bp+16, zCopy)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39295, libc.VaList(bp+16, zCopy)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -228951,15 +230967,15 @@ func _fts5VocabInitVtab(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg var _ /* rc at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _ = azSchema, bDb, nByte, nDb, nTab, pRet, zDb, zTab, zType, v1, v2, v3 azSchema = [3]uintptr{ - 0: __ccgo_ts + 39183, - 1: __ccgo_ts + 39223, - 2: __ccgo_ts + 39258, + 0: __ccgo_ts + 39329, + 1: __ccgo_ts + 39369, + 2: __ccgo_ts + 39404, } pRet = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+23751, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) + bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+23874, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) if argc != int32(5) && bDb == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39301, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39447, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bDb != 0 { @@ -229130,10 +231146,10 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) zSql = uintptr(0) if (*TFts5VocabTable)(unsafe.Pointer(pTab)).FbBusy != 0 { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39334, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39480, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) return int32(SQLITE_ERROR) } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39365, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39511, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, (*TFts5VocabTable)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), bp+8, uintptr(0)) } @@ -229153,7 +231169,7 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39416, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39562, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } else { @@ -229462,7 +231478,7 @@ func _fts5VocabFilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, zUnuse if pLe != 0 { zCopy = Xsqlite3_value_text(tls, pLe) if zCopy == uintptr(0) { - zCopy = __ccgo_ts + 1657 + zCopy = __ccgo_ts + 1671 } (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm = Xsqlite3_value_bytes(tls, pLe) (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm = Xsqlite3_malloc(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm+int32(1)) @@ -229590,7 +231606,7 @@ func _sqlite3Fts5VocabInit(tls *libc.TLS, pGlobal uintptr, db uintptr) (r int32) var p uintptr _ = p p = pGlobal - return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39442, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) + return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39588, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) } var _fts5Vocab = Tsqlite3_module{ @@ -229643,7 +231659,7 @@ func init() { // /************** End of stmt.c ************************************************/ // /* Return the source-id for this library */ func Xsqlite3_sourceid(tls *libc.TLS) (r uintptr) { - return __ccgo_ts + 39452 + return __ccgo_ts + 39598 } type TAggInfo_col = struct { @@ -229925,11 +231941,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]uint8{'3', '.', '4', '5', '.', '3'} +var Xsqlite3_version = [7]uint8{'3', '.', '4', '6', '.', '0'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-10.2.1 20210110\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%04d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00(subquery-%u)\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSmaller\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00PRAGMA \"%w\".integrity_check(%Q)\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00ceiling\x00floor\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00wrong # of entries in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00RIGHT PART OF \x00USE TEMP B-TREE FOR %sORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00parser stack overflow\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-10.2.1 20210110\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00ceiling\x00floor\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%04d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00%u-ROW VALUES CLAUSE\x00(subquery-%u)\x00unrecognized token: \"%s\"\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSizeBetween\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: \"%s\" - should this be a string literal in single-quotes?\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00SCAN %S\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00wrong # of entries in index \x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00LAST TERM OF \x00USE TEMP B-TREE FOR %sORDER BY\x00USE TEMP B-TREE FOR LAST %d TERMS OF ORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00syntax error\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00,\n\x00: \x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00 \x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_pretty\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00" type Sqlite3_int64 = sqlite3_int64 type Sqlite3_mutex_methods = sqlite3_mutex_methods diff --git a/vendor/modernc.org/sqlite/lib/sqlite_linux_riscv64.go b/vendor/modernc.org/sqlite/lib/sqlite_linux_riscv64.go index 5cdde0ba..3aedd92b 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_linux_riscv64.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_linux_riscv64.go @@ -1,4 +1,4 @@ -// Code generated for linux/riscv64 by 'generator --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -import runtime -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -extended-errors -o sqlite3.go sqlite3.c -I/tmp/libsqlite3/sqlite-amalgamation-3450300/ccgo -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. +// Code generated for linux/riscv64 by 'generator --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libz/include/linux/riscv64 -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libtcl8.6/include/linux/riscv64 -extended-errors -o sqlite3.go sqlite3.c -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. //go:build linux && riscv64 // +build linux,riscv64 @@ -10,8 +10,6 @@ import ( "unsafe" "modernc.org/libc" - - "runtime" ) var ( @@ -1047,6 +1045,7 @@ const OPFLG_IN1 = 2 const OPFLG_IN2 = 4 const OPFLG_IN3 = 8 const OPFLG_JUMP = 1 +const OPFLG_JUMP0 = 128 const OPFLG_NCYCLE = 64 const OPFLG_OUT2 = 16 const OPFLG_OUT3 = 32 @@ -1124,7 +1123,7 @@ const OP_IfNotOpen = 25 const OP_IfNotZero = 60 const OP_IfNullRow = 20 const OP_IfPos = 59 -const OP_IfSmaller = 33 +const OP_IfSizeBetween = 33 const OP_IncrVacuum = 62 const OP_Init = 8 const OP_InitCoroutine = 11 @@ -1528,6 +1527,7 @@ const SF_ComplexResult = 262144 const SF_Compound = 256 const SF_Converted = 65536 const SF_CopyCte = 67108864 +const SF_Correlated = 536870912 const SF_Distinct = 1 const SF_Expanded = 64 const SF_FixedLimit = 16384 @@ -1802,6 +1802,7 @@ const SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT = -1 const SQLITE_DEFAULT_LOOKASIDE = 40 const SQLITE_DEFAULT_MEMSTATUS = 0 const SQLITE_DEFAULT_MMAP_SIZE = 0 +const SQLITE_DEFAULT_OPTIMIZE_LIMIT = 2000 const SQLITE_DEFAULT_PAGE_SIZE = 4096 const SQLITE_DEFAULT_PCACHE_INITSZ = 20 const SQLITE_DEFAULT_PROXYDIR_PERMISSIONS = 493 @@ -1819,6 +1820,7 @@ const SQLITE_DESERIALIZE_READONLY = 4 const SQLITE_DESERIALIZE_RESIZEABLE = 2 const SQLITE_DETACH = 25 const SQLITE_DETERMINISTIC = 2048 +const SQLITE_DIGIT_SEPARATOR = 95 const SQLITE_DIRECTONLY = 524288 const SQLITE_DIRECT_OVERFLOW_READ = 1 const SQLITE_DONE = 101 @@ -2243,7 +2245,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355" +const SQLITE_SOURCE_ID = "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2351,8 +2353,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.45.3" -const SQLITE_VERSION_NUMBER = 3045003 +const SQLITE_VERSION = "3.46.0" +const SQLITE_VERSION_NUMBER = 3046000 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -2513,11 +2515,11 @@ const TF_HasStat1 = 16 const TF_HasStat4 = 8192 const TF_HasStored = 64 const TF_HasVirtual = 32 +const TF_MaybeReanalyze = 256 const TF_NoVisibleRowid = 512 const TF_OOOHidden = 1024 const TF_Readonly = 1 const TF_Shadow = 4096 -const TF_StatsUsed = 256 const TF_Strict = 65536 const TF_WithoutRowid = 128 const TIMER_ABSTIME = 1 @@ -2674,7 +2676,7 @@ const TK_ID = 59 const TK_IF = 18 const TK_IF_NULL_ROW = 179 const TK_IGNORE = 63 -const TK_ILLEGAL = 184 +const TK_ILLEGAL = 185 const TK_IMMEDIATE = 8 const TK_IN = 49 const TK_INDEX = 161 @@ -2722,6 +2724,7 @@ const TK_PRAGMA = 70 const TK_PRECEDING = 88 const TK_PRIMARY = 122 const TK_PTR = 112 +const TK_QNUMBER = 183 const TK_QUERY = 3 const TK_RAISE = 71 const TK_RANGE = 89 @@ -2746,7 +2749,7 @@ const TK_SELECT_COLUMN = 178 const TK_SEMI = 1 const TK_SET = 130 const TK_SLASH = 109 -const TK_SPACE = 183 +const TK_SPACE = 184 const TK_SPAN = 181 const TK_STAR = 108 const TK_STRING = 117 @@ -2759,12 +2762,12 @@ const TK_TRANSACTION = 6 const TK_TRIGGER = 77 const TK_TRUEFALSE = 170 const TK_TRUTH = 175 -const TK_UMINUS = 173 +const TK_UMINUS = 174 const TK_UNBOUNDED = 90 const TK_UNION = 134 const TK_UNIQUE = 123 const TK_UPDATE = 129 -const TK_UPLUS = 174 +const TK_UPLUS = 173 const TK_USING = 144 const TK_VACUUM = 78 const TK_VALUES = 139 @@ -2920,31 +2923,37 @@ const W_OK = 2 const XN_EXPR = -2 const XN_ROWID = -1 const X_OK = 1 +const YYDYNSTACK = 1 const YYFALLBACK = 1 +const YYFREE = 0 +const YYGROWABLESTACK = 1 const YYMALLOCARGTYPE = 0 -const YYNOCODE = 319 +const YYNOCODE = 322 const YYNOERRORRECOVERY = 1 -const YYNRULE = 405 -const YYNRULE_WITH_ACTION = 340 -const YYNSTATE = 579 -const YYNTOKEN = 185 +const YYNRULE = 409 +const YYNRULE_WITH_ACTION = 344 +const YYNSTATE = 583 +const YYNTOKEN = 186 const YYPARSEFREENEVERNULL = 1 +const YYREALLOC = 0 const YYSTACKDEPTH = 100 const YYWILDCARD = 101 -const YY_ACCEPT_ACTION = 1244 -const YY_ACTTAB_COUNT = 2100 -const YY_ERROR_ACTION = 1243 -const YY_MAX_REDUCE = 1650 -const YY_MAX_SHIFT = 578 -const YY_MAX_SHIFTREDUCE = 1242 -const YY_MIN_REDUCE = 1246 -const YY_MIN_SHIFTREDUCE = 838 -const YY_NO_ACTION = 1245 -const YY_REDUCE_COUNT = 410 -const YY_REDUCE_MAX = 1753 -const YY_REDUCE_MIN = -271 -const YY_SHIFT_COUNT = 578 -const YY_SHIFT_MAX = 2088 +const YY_ACCEPT_ACTION = 1255 +const YY_ACTTAB_COUNT = 2142 +const YY_ERROR_ACTION = 1254 +const YY_MAX_DSTRCTR = 319 +const YY_MAX_REDUCE = 1665 +const YY_MAX_SHIFT = 582 +const YY_MAX_SHIFTREDUCE = 1253 +const YY_MIN_DSTRCTR = 205 +const YY_MIN_REDUCE = 1257 +const YY_MIN_SHIFTREDUCE = 845 +const YY_NO_ACTION = 1256 +const YY_REDUCE_COUNT = 411 +const YY_REDUCE_MAX = 1798 +const YY_REDUCE_MIN = -275 +const YY_SHIFT_COUNT = 582 +const YY_SHIFT_MAX = 2128 const YY_SHIFT_MIN = 0 const _ALLOCA_H = 1 const _ASSERT_H = 1 @@ -3584,6 +3593,9 @@ const fdatasync = 0 const first_valueInvFunc = 0 const first_valueValueFunc = 0 const fts5GetVarint = 0 +const fts5YYDYNSTACK = 0 +const fts5YYFREE = 0 +const fts5YYGROWABLESTACK = 0 const fts5YYMALLOCARGTYPE = 0 const fts5YYNFTS5TOKEN = 16 const fts5YYNOCODE = 27 @@ -3592,13 +3604,16 @@ const fts5YYNRULE = 28 const fts5YYNRULE_WITH_ACTION = 28 const fts5YYNSTATE = 35 const fts5YYPARSEFREENOTNULL = 1 +const fts5YYREALLOC = 0 const fts5YYSTACKDEPTH = 100 const fts5YY_ACCEPT_ACTION = 81 const fts5YY_ACTTAB_COUNT = 105 const fts5YY_ERROR_ACTION = 80 +const fts5YY_MAX_DSTRCTR = 24 const fts5YY_MAX_REDUCE = 110 const fts5YY_MAX_SHIFT = 34 const fts5YY_MAX_SHIFTREDUCE = 79 +const fts5YY_MIN_DSTRCTR = 16 const fts5YY_MIN_REDUCE = 83 const fts5YY_MIN_SHIFTREDUCE = 52 const fts5YY_NO_ACTION = 82 @@ -4020,11 +4035,11 @@ type sqlite3_file1 = Tsqlite3_file1 // ** // ** xLock() upgrades the database file lock. In other words, xLock() moves the // ** database file lock in the direction NONE toward EXCLUSIVE. The argument to -// ** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +// ** xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never // ** SQLITE_LOCK_NONE. If the database file lock is already at or above the // ** requested lock, then the call to xLock() is a no-op. // ** xUnlock() downgrades the database file lock to either SHARED or NONE. -// * If the lock is already at or below the requested lock state, then the call +// ** If the lock is already at or below the requested lock state, then the call // ** to xUnlock() is a no-op. // ** The xCheckReservedLock() method checks whether any database connection, // ** either in this process or in some other process, is holding a RESERVED, @@ -5804,6 +5819,7 @@ type Tsqlite3_changegroup = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -6130,8 +6146,8 @@ type Fts5PhraseIter1 = TFts5PhraseIter1 ** EXTENSION API FUNCTIONS ** ** xUserData(pFts): -** Return a copy of the context pointer the extension function was -** registered with. +** Return a copy of the pUserData pointer passed to the xCreateFunction() +** API when the extension function was registered. ** ** xColumnTotalSize(pFts, iCol, pnToken): ** If parameter iCol is less than zero, set output variable *pnToken @@ -7888,7 +7904,7 @@ type uptr = Tuptr ** 0x00000010 Display sqlite3_index_info xBestIndex calls ** 0x00000020 Range an equality scan metrics ** 0x00000040 IN operator decisions -** 0x00000080 WhereLoop cost adjustements +** 0x00000080 WhereLoop cost adjustments ** 0x00000100 ** 0x00000200 Covering index decisions ** 0x00000400 OR optimization @@ -8400,6 +8416,7 @@ type TParse = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -8619,6 +8636,7 @@ type TSrcItem = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -10895,10 +10913,12 @@ type IdList1 = TIdList1 ** ** Union member validity: ** -** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc -** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy -** u2.pIBIndex fg.isIndexedBy && !fg.isCte -** u2.pCteUse fg.isCte && !fg.isIndexedBy +** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc +** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy +** u1.nRow !fg.isTabFunc && !fg.isIndexedBy +** +** u2.pIBIndex fg.isIndexedBy && !fg.isCte +** u2.pCteUse fg.isCte && !fg.isIndexedBy */ type TSrcItem1 = struct { FpSchema uintptr @@ -10924,6 +10944,7 @@ type TSrcItem1 = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -11327,6 +11348,7 @@ type TParse1 = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -12689,12 +12711,12 @@ var _sqlite3WhereTrace = uint32(0) var _sqlite3OpcodeProperty = [190]uint8{ 4: uint8(0x10), 6: uint8(0x41), - 8: uint8(0x01), + 8: uint8(0x81), 9: uint8(0x01), 10: uint8(0x01), - 11: uint8(0x01), - 12: uint8(0x03), - 13: uint8(0x03), + 11: uint8(0x81), + 12: uint8(0x83), + 13: uint8(0x83), 14: uint8(0x01), 15: uint8(0x01), 16: uint8(0x03), @@ -12702,22 +12724,22 @@ var _sqlite3OpcodeProperty = [190]uint8{ 18: uint8(0x01), 19: uint8(0x12), 20: uint8(0x01), - 21: uint8(0x49), - 22: uint8(0x49), - 23: uint8(0x49), - 24: uint8(0x49), + 21: uint8(0xc9), + 22: uint8(0xc9), + 23: uint8(0xc9), + 24: uint8(0xc9), 25: uint8(0x01), 26: uint8(0x49), 27: uint8(0x49), 28: uint8(0x49), 29: uint8(0x49), - 30: uint8(0x49), + 30: uint8(0xc9), 31: uint8(0x49), - 32: uint8(0x41), + 32: uint8(0xc1), 33: uint8(0x01), 34: uint8(0x41), 35: uint8(0x41), - 36: uint8(0x41), + 36: uint8(0xc1), 37: uint8(0x01), 38: uint8(0x41), 39: uint8(0x41), @@ -12729,7 +12751,7 @@ var _sqlite3OpcodeProperty = [190]uint8{ 45: uint8(0x41), 46: uint8(0x23), 47: uint8(0x0b), - 48: uint8(0x01), + 48: uint8(0x81), 49: uint8(0x01), 50: uint8(0x03), 51: uint8(0x03), @@ -13599,7 +13621,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= int32(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(23890)) + return _sqlite3MisuseError(tls, int32(23961)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -13962,43 +13984,37 @@ type itimerspec = Titimerspec // ** A structure for holding a single date and time. // */ type TDateTime = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD uint8 - FrawS uint8 - FvalidYMD uint8 - FvalidHMS uint8 - FvalidTZ uint8 - FtzSet uint8 - FisError uint8 - FuseSubsec uint8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD uint8 + FvalidYMD uint8 + FvalidHMS uint8 + FnFloor uint8 + F__ccgo44 uint8 } type DateTime = TDateTime type TDateTime1 = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD uint8 - FrawS uint8 - FvalidYMD uint8 - FvalidHMS uint8 - FvalidTZ uint8 - FtzSet uint8 - FisError uint8 - FuseSubsec uint8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD uint8 + FvalidYMD uint8 + FvalidHMS uint8 + FnFloor uint8 + F__ccgo44 uint8 } type DateTime1 = TDateTime1 @@ -14068,6 +14084,7 @@ func _getDigits(tls *libc.TLS, zDate uintptr, zFormat uintptr, va uintptr) (r in cnt++ zFormat += uintptr(4) } + goto end_getDigits end_getDigits: ; _ = ap @@ -14124,6 +14141,8 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } else { if c == int32('Z') || c == int32('z') { zDate++ + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) goto zulu_time } else { return libc.BoolInt32(c != 0) @@ -14136,12 +14155,12 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } zDate += uintptr(5) (*TDateTime)(unsafe.Pointer(p)).Ftz = sgn * (*(*int32)(unsafe.Pointer(bp + 4)) + *(*int32)(unsafe.Pointer(bp))*int32(60)) + goto zulu_time zulu_time: ; for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(zDate))])&int32(0x01) != 0 { zDate++ } - (*TDateTime)(unsafe.Pointer(p)).FtzSet = uint8(1) return libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zDate))) != 0) } @@ -14158,11 +14177,10 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var ms, rScale float64 - var v1 int32 var _ /* h at bp+0 */ int32 var _ /* m at bp+4 */ int32 var _ /* s at bp+8 */ int32 - _, _, _ = ms, rScale, v1 + _, _ = ms, rScale ms = float64(0) if _getDigits(tls, zDate, __ccgo_ts+1162, libc.VaList(bp+24, bp, bp+4)) != int32(2) { return int32(1) @@ -14188,7 +14206,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 8)) = 0 } (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) (*TDateTime)(unsafe.Pointer(p)).Fh = *(*int32)(unsafe.Pointer(bp)) (*TDateTime)(unsafe.Pointer(p)).Fm = *(*int32)(unsafe.Pointer(bp + 4)) @@ -14196,12 +14214,6 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { if _parseTimezone(tls, zDate, p) != 0 { return int32(1) } - if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { - v1 = int32(1) - } else { - v1 = 0 - } - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(v1) return 0 } @@ -14212,7 +14224,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { // */ func _datetimeError(tls *libc.TLS, p uintptr) { libc.Xmemset(tls, p, 0, uint64(48)) - (*TDateTime)(unsafe.Pointer(p)).FisError = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 1, 0x2) } // C documentation @@ -14238,7 +14250,7 @@ func _computeJD(tls *libc.TLS, p uintptr) { M = int32(1) D = int32(1) } - if Y < -int32(4713) || Y > int32(9999) || (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Y < -int32(4713) || Y > int32(9999) || int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { _datetimeError(tls, p) return } @@ -14254,11 +14266,44 @@ func _computeJD(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) if (*TDateTime)(unsafe.Pointer(p)).FvalidHMS != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) += int64((*TDateTime)(unsafe.Pointer(p)).Fh*int32(3600000)+(*TDateTime)(unsafe.Pointer(p)).Fm*int32(60000)) + int64((*TDateTime)(unsafe.Pointer(p)).Fs*libc.Float64FromInt32(1000)+libc.Float64FromFloat64(0.5)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64((*TDateTime)(unsafe.Pointer(p)).Ftz * int32(60000)) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + } + } +} + +// C documentation +// +// /* +// ** Given the YYYY-MM-DD information current in p, determine if there +// ** is day-of-month overflow and set nFloor to the number of days that +// ** would need to be subtracted from the date in order to bring the +// ** date back to the end of the month. +// */ +func _computeFloor(tls *libc.TLS, p uintptr) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if (*TDateTime)(unsafe.Pointer(p)).FD <= int32(28) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } else { + if int32(1)<<(*TDateTime)(unsafe.Pointer(p)).FM&int32(0x15aa) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FM != int32(2) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = libc.BoolUint8((*TDateTime)(unsafe.Pointer(p)).FD == libc.Int32FromInt32(31)) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FY%int32(4) != 0 || (*TDateTime)(unsafe.Pointer(p)).FY%int32(100) == 0 && (*TDateTime)(unsafe.Pointer(p)).FY%int32(400) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8((*TDateTime)(unsafe.Pointer(p)).FD - int32(28)) + } else { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8((*TDateTime)(unsafe.Pointer(p)).FD - int32(29)) + } + } } } } @@ -14317,12 +14362,15 @@ func _parseYyyyMmDd(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FY = v1 (*TDateTime)(unsafe.Pointer(p)).FM = *(*int32)(unsafe.Pointer(bp + 4)) (*TDateTime)(unsafe.Pointer(p)).FD = *(*int32)(unsafe.Pointer(bp + 8)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + _computeFloor(tls, p) + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { _computeJD(tls, p) } return 0 } +/* Forward declaration */ + // C documentation // // /* @@ -14334,6 +14382,9 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) (*TDateTime)(unsafe.Pointer(p)).FiJD = _sqlite3StmtCurrentTime(tls, context) if (*TDateTime)(unsafe.Pointer(p)).FiJD > 0 { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + _clearYMD_HMS_TZ(tls, p) return 0 } else { return int32(1) @@ -14351,7 +14402,7 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) // */ func _setRawDateNumber(tls *libc.TLS, p uintptr, r float64) { (*TDateTime)(unsafe.Pointer(p)).Fs = r - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 0, 0x1) if r >= float64(0) && r < float64(5.3734845e+06) { (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r*libc.Float64FromFloat64(8.64e+07) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) @@ -14394,7 +14445,7 @@ func _parseDateOrTime(tls *libc.TLS, context uintptr, zDate uintptr, p uintptr) return 0 } else { if (_sqlite3StrICmp(tls, zDate, __ccgo_ts+1190) == 0 || _sqlite3StrICmp(tls, zDate, __ccgo_ts+1197) == 0) && _sqlite3NotPureFunc(tls, context) != 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) return _setDateTimeToCurrent(tls, context, p) } } @@ -14486,7 +14537,7 @@ func _computeHMS(tls *libc.TLS, p uintptr) { day_min = day_ms / int32(60000) (*TDateTime)(unsafe.Pointer(p)).Fm = day_min % int32(60) (*TDateTime)(unsafe.Pointer(p)).Fh = day_min / int32(60) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) } @@ -14508,7 +14559,7 @@ func _computeYMD_HMS(tls *libc.TLS, p uintptr) { func _clearYMD_HMS_TZ(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 } /* @@ -14609,9 +14660,9 @@ func _toLocaltime(tls *libc.TLS, p uintptr, pCtx uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FisError = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 1, 0x2) return SQLITE_OK } @@ -14659,13 +14710,13 @@ var _aXformType = [6]struct { FnName: uint8(5), FzName: [7]uint8{'m', 'o', 'n', 't', 'h'}, FrLimit: float32(176546), - FrXform: float32(2.592e+06), + FrXform: float32(libc.Float64FromFloat64(30) * libc.Float64FromFloat64(86400)), }, 5: { FnName: uint8(4), FzName: [7]uint8{'y', 'e', 'a', 'r'}, FrLimit: float32(14713), - FrXform: float32(3.1536e+07), + FrXform: float32(libc.Float64FromFloat64(365) * libc.Float64FromFloat64(86400)), }, } @@ -14679,15 +14730,15 @@ var _aXformType = [6]struct { func _autoAdjustDate(tls *libc.TLS, p uintptr) { var r float64 _ = r - if !((*TDateTime)(unsafe.Pointer(p)).FrawS != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + if !(int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } else { if (*TDateTime)(unsafe.Pointer(p)).Fs >= float64(int64(-libc.Int32FromInt32(21086676))*libc.Int64FromInt32(10000)) && (*TDateTime)(unsafe.Pointer(p)).Fs <= float64(libc.Int64FromInt32(25340230)*libc.Int64FromInt32(10000)+libc.Int64FromInt32(799)) { r = (*TDateTime)(unsafe.Pointer(p)).Fs*float64(1000) + float64(2.1086676e+14) _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } } @@ -14704,14 +14755,20 @@ func _autoAdjustDate(tls *libc.TLS, p uintptr) { // ** NNN.NNNN seconds // ** NNN months // ** NNN years +// ** +/-YYYY-MM-DD HH:MM:SS.SSS +// ** ceiling +// ** floor // ** start of month // ** start of year // ** start of week // ** start of day // ** weekday N // ** unixepoch +// ** auto // ** localtime // ** utc +// ** subsec +// ** subsecond // ** // ** Return 0 on success and 1 if there is any kind of error. If the error // ** is in a system call (i.e. localtime()), then an error message is written @@ -14722,12 +14779,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, bp := tls.Alloc(160) defer tls.Free(160) var Z, day Tsqlite3_int64 - var cnt, i, rc, x, y, v12, v2, v5, v7, v9 int32 - var iErr, iGuess, iOrigJD, v1 Ti64 - var rRounder, v10 float64 + var cnt, i, rc, x, y, v1, v10, v13, v3, v6, v8 int32 + var iErr, iGuess, iOrigJD, v2 Ti64 + var rRounder, v11 float64 var z0 uint8 var z2 uintptr - var v3, v6 bool + var v4, v7 bool var _ /* D at bp+64 */ int32 var _ /* M at bp+60 */ int32 var _ /* Y at bp+56 */ int32 @@ -14736,7 +14793,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, var _ /* new at bp+8 */ TDateTime var _ /* r at bp+0 */ float64 var _ /* tx at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v12, v2, v3, v5, v6, v7, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v11, v13, v2, v3, v4, v6, v7, v8 rc = int32(1) switch int32(_sqlite3UpperToLower[*(*uint8)(unsafe.Pointer(z))]) { case int32('a'): @@ -14753,6 +14810,33 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _autoAdjustDate(tls, p) rc = 0 } + case int32('c'): + /* + ** ceiling + ** + ** Resolve day-of-month overflow by rolling forward into the next + ** month. As this is the default action, this modifier is really + ** a no-op that is only included for symmetry. See "floor". + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1235) == 0 { + _computeJD(tls, p) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } + case int32('f'): + /* + ** floor + ** + ** Resolve day-of-month overflow by rolling back to the end of the + ** previous month. + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1243) == 0 { + _computeJD(tls, p) + *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64(int32((*TDateTime)(unsafe.Pointer(p)).FnFloor) * int32(86400000)) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + } case int32('j'): /* ** julianday @@ -14762,13 +14846,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** value in the allowed range of julian day numbers understood by ** SQLite (0..5373484.5) then the result will be NULL. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1235) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1249) == 0 { if idx > int32(1) { return int32(1) } /* IMP: R-31176-64601 */ - if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { rc = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } case int32('l'): @@ -14777,8 +14861,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Assuming the current time value is UTC (a.k.a. GMT), shift it to ** show local time. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1245) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - rc = _toLocaltime(tls, p, pCtx) + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1259) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x10>>4)) != 0 { + v1 = SQLITE_OK + } else { + v1 = _toLocaltime(tls, p, pCtx) + } + rc = v1 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 4, 0x10) } case int32('u'): /* @@ -14787,7 +14878,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Treat the current value of p->s as the number of ** seconds since 1970. Convert to a real julian day number. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1255) == 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1269) == 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { if idx > int32(1) { return int32(1) } /* IMP: R-49255-55373 */ @@ -14796,17 +14887,17 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(*(*float64)(unsafe.Pointer(bp)) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) rc = 0 } } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1265) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - if int32((*TDateTime)(unsafe.Pointer(p)).FtzSet) == 0 { /* Guess at the corresponding utc time */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1279) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x8>>3)) == 0 { /* Guess at the corresponding utc time */ cnt = 0 /* Guess is off by this much */ _computeJD(tls, p) - v1 = (*TDateTime)(unsafe.Pointer(p)).FiJD - iOrigJD = v1 - iGuess = v1 + v2 = (*TDateTime)(unsafe.Pointer(p)).FiJD + iOrigJD = v2 + iGuess = v2 iErr = 0 for { libc.Xmemset(tls, bp+8, 0, uint64(48)) @@ -14819,21 +14910,22 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, bp+8) iErr = (*(*TDateTime)(unsafe.Pointer(bp + 8))).FiJD - iOrigJD - goto _4 - _4: + goto _5 + _5: ; - if v3 = iErr != 0; v3 { - v2 = cnt + if v4 = iErr != 0; v4 { + v3 = cnt cnt++ } - if !(v3 && v2 < int32(3)) { + if !(v4 && v3 < int32(3)) { break } } libc.Xmemset(tls, p, 0, uint64(48)) (*TDateTime)(unsafe.Pointer(p)).FiJD = iGuess (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FtzSet = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) } rc = SQLITE_OK } @@ -14846,13 +14938,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** weekday N where 0==Sunday, 1==Monday, and so forth. If the ** date is already on the appropriate weekday, this is a no-op. */ - if v6 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1269, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v6 { - v5 = int32(*(*float64)(unsafe.Pointer(bp))) - n = v5 + if v7 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1283, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v7 { + v6 = int32(*(*float64)(unsafe.Pointer(bp))) + n = v6 } - if v6 && float64(v5) == *(*float64)(unsafe.Pointer(bp)) { + if v7 && float64(v6) == *(*float64)(unsafe.Pointer(bp)) { _computeYMD_HMS(tls, p) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) _computeJD(tls, p) Z = ((*TDateTime)(unsafe.Pointer(p)).FiJD + int64(129600000)) / int64(86400000) % int64(7) @@ -14876,9 +14968,9 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Show subsecond precision in the output of datetime() and ** unixepoch() and strftime('%s'). */ - if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1278, int32(9)) != 0 { + if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1292, int32(9)) != 0 { if Xsqlite3_stricmp(tls, z, __ccgo_ts+1190) == 0 || Xsqlite3_stricmp(tls, z, __ccgo_ts+1197) == 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) rc = 0 } break @@ -14889,23 +14981,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z += uintptr(9) _computeYMD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) - v7 = libc.Int32FromInt32(0) - (*TDateTime)(unsafe.Pointer(p)).Fm = v7 - (*TDateTime)(unsafe.Pointer(p)).Fh = v7 + v8 = libc.Int32FromInt32(0) + (*TDateTime)(unsafe.Pointer(p)).Fm = v8 + (*TDateTime)(unsafe.Pointer(p)).Fh = v8 (*TDateTime)(unsafe.Pointer(p)).Fs = float64(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1288) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1302) == 0 { (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1294) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1308) == 0 { (*TDateTime)(unsafe.Pointer(p)).FM = int32(1) (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1299) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1313) == 0 { rc = 0 } } @@ -14947,15 +15039,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } if int32(*(*uint8)(unsafe.Pointer(z + uintptr(n)))) == int32('-') { - if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1303, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1317, libc.VaList(bp+136, bp+56)) == int32(1) { break } - if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1307, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1321, libc.VaList(bp+136, bp+56)) == int32(1) { break } } - goto _8 - _8: + goto _9 + _9: ; n++ } @@ -14972,12 +15064,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } /* Must start with +/- */ if n == int32(5) { - if _getDigits(tls, z+1, __ccgo_ts+1311, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1325, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } } else { _ = libc.Int32FromInt32(0) - if _getDigits(tls, z+1, __ccgo_ts+1323, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1337, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } z++ @@ -14999,13 +15091,14 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, *(*int32)(unsafe.Pointer(p + 12)) += *(*int32)(unsafe.Pointer(bp + 60)) } if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v9 + x = v10 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) _computeJD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) @@ -15049,7 +15142,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z++ } n = _sqlite3Strlen30(tls, z) - if n > int32(10) || n < int32(3) { + if n < int32(3) || n > int32(10) { break } if int32(_sqlite3UpperToLower[*(*uint8)(unsafe.Pointer(z + uintptr(n-int32(1))))]) == int32('s') { @@ -15058,11 +15151,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeJD(tls, p) _ = libc.Int32FromInt32(0) if *(*float64)(unsafe.Pointer(bp)) < libc.Float64FromInt32(0) { - v10 = -libc.Float64FromFloat64(0.5) + v11 = -libc.Float64FromFloat64(0.5) } else { - v10 = +libc.Float64FromFloat64(0.5) + v11 = +libc.Float64FromFloat64(0.5) } - rRounder = v10 + rRounder = v11 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) i = 0 for { if !(i < int32(libc.Uint64FromInt64(96)/libc.Uint64FromInt64(16))) { @@ -15075,20 +15169,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 12)) += int32(*(*float64)(unsafe.Pointer(bp))) if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v12 + x = v13 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) case int32(5): /* Special processing to add years */ y = int32(*(*float64)(unsafe.Pointer(bp))) _ = libc.Int32FromInt32(0) _computeYMD_HMS(tls, p) + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(p + 8)) += y + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) break @@ -15098,8 +15195,8 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, rc = 0 break } - goto _11 - _11: + goto _12 + _12: ; i++ } @@ -15158,7 +15255,7 @@ func _isDate(tls *libc.TLS, context uintptr, argc int32, argv uintptr, p uintptr i++ } _computeJD(tls, p) - if (*TDateTime)(unsafe.Pointer(p)).FisError != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x2>>1)) != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { return int32(1) } if argc == int32(1) && (*TDateTime)(unsafe.Pointer(p)).FvalidYMD != 0 && (*TDateTime)(unsafe.Pointer(p)).FD > int32(28) { @@ -15206,7 +15303,7 @@ func _unixepochFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _ /* x at bp+0 */ TDateTime if _isDate(tls, context, argc, argv, bp) == 0 { _computeJD(tls, bp) - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { Xsqlite3_result_double(tls, context, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000)) } else { Xsqlite3_result_int64(tls, context, (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/int64(1000)-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000)) @@ -15251,7 +15348,7 @@ func _datetimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(15)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(16)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(17)] = uint8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(18)] = uint8(int32('0') + s/int32(10000)%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(19)] = uint8(int32('0') + s/int32(1000)%int32(10)) @@ -15299,7 +15396,7 @@ func _timeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(3)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(4)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(5)] = uint8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(6)] = uint8(int32('0') + s/int32(10000)%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(7)] = uint8(int32('0') + s/int32(1000)%int32(10)) @@ -15360,6 +15457,62 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } +// C documentation +// +// /* +// ** Compute the number of days after the most recent January 1. +// ** +// ** In other words, compute the zero-based day number for the +// ** current year: +// ** +// ** Jan01 = 0, Jan02 = 1, ..., Jan31 = 30, Feb01 = 31, ... +// ** Dec31 = 364 or 365. +// */ +func _daysAfterJan01(tls *libc.TLS, pDate uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* jan01 at bp+0 */ TDateTime + *(*TDateTime)(unsafe.Pointer(bp)) = *(*TDateTime)(unsafe.Pointer(pDate)) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + (*(*TDateTime)(unsafe.Pointer(bp))).FvalidJD = uint8(0) + (*(*TDateTime)(unsafe.Pointer(bp))).FM = int32(1) + (*(*TDateTime)(unsafe.Pointer(bp))).FD = int32(1) + _computeJD(tls, bp) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD - (*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Monday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Monday, 1=Tuesday, 2=Wednesday, ..., 6=Sunday. +// */ +func _daysAfterMonday(tls *libc.TLS, pDate uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(43200000))/libc.Int64FromInt32(86400000)) % int32(7) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Sunday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Sunday, 1=Monday, 2=Tues, ..., 6=Saturday +// */ +func _daysAfterSunday(tls *libc.TLS, pDate uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)) % int32(7) +} + // C documentation // // /* @@ -15367,33 +15520,48 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { // ** // ** Return a string described by FORMAT. Conversions as follows: // ** -// ** %d day of month +// ** %d day of month 01-31 +// ** %e day of month 1-31 // ** %f ** fractional seconds SS.SSS +// ** %F ISO date. YYYY-MM-DD +// ** %G ISO year corresponding to %V 0000-9999. +// ** %g 2-digit ISO year corresponding to %V 00-99 // ** %H hour 00-24 -// ** %j day of year 000-366 +// ** %k hour 0-24 (leading zero converted to space) +// ** %I hour 01-12 +// ** %j day of year 001-366 // ** %J ** julian day number +// ** %l hour 1-12 (leading zero converted to space) // ** %m month 01-12 // ** %M minute 00-59 +// ** %p "am" or "pm" +// ** %P "AM" or "PM" +// ** %R time as HH:MM // ** %s seconds since 1970-01-01 // ** %S seconds 00-59 -// ** %w day of week 0-6 Sunday==0 -// ** %W week of year 00-53 +// ** %T time as HH:MM:SS +// ** %u day of week 1-7 Monday==1, Sunday==7 +// ** %w day of week 0-6 Sunday==0, Monday==1 +// ** %U week of year 00-53 (First Sunday is start of week 01) +// ** %V week of year 01-53 (First week containing Thursday is week 01) +// ** %W week of year 00-53 (First Monday is start of week 01) // ** %Y year 0000-9999 // ** %% % // */ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { - bp := tls.Alloc(160) - defer tls.Free(160) + bp := tls.Alloc(208) + defer tls.Free(208) var c, cf uint8 var db, zFmt, v3, v4, v5, v6, v7 uintptr - var h, nDay, wd int32 + var h int32 var i, j, v2 Tsize_t var iS Ti64 var s float64 var _ /* sRes at bp+48 */ Tsqlite3_str var _ /* x at bp+0 */ TDateTime + var _ /* y at bp+128 */ TDateTime var _ /* y at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, nDay, s, wd, zFmt, v2, v3, v4, v5, v6, v7 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, s, zFmt, v2, v3, v4, v5, v6, v7 if argc == 0 { return } @@ -15426,28 +15594,42 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { fallthrough case int32('e'): if int32(cf) == int32('d') { - v3 = __ccgo_ts + 1335 + v3 = __ccgo_ts + 1349 } else { - v3 = __ccgo_ts + 1340 + v3 = __ccgo_ts + 1354 } - Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) - case int32('f'): + Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('f'): /* Fractional seconds. (Non-standard) */ s = (*(*TDateTime)(unsafe.Pointer(bp))).Fs if s > float64(59.999) { s = float64(59.999) } - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1344, libc.VaList(bp+136, s)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+184, s)) case int32('F'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1351, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1365, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('G'): /* Fall thru */ + fallthrough + case int32('g'): + *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) + _ = libc.Int32FromInt32(0) + /* Move y so that it is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidYMD = uint8(0) + _computeYMD(tls, bp+80) + if int32(cf) == int32('g') { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY%int32(100))) + } else { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1380, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY)) + } case int32('H'): fallthrough case int32('k'): if int32(cf) == int32('H') { - v4 = __ccgo_ts + 1335 + v4 = __ccgo_ts + 1349 } else { - v4 = __ccgo_ts + 1340 + v4 = __ccgo_ts + 1354 } - Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) + Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) case int32('I'): /* Fall thru */ fallthrough case int32('l'): @@ -15459,73 +15641,72 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { h = int32(12) } if int32(cf) == int32('I') { - v5 = __ccgo_ts + 1335 + v5 = __ccgo_ts + 1349 } else { - v5 = __ccgo_ts + 1340 + v5 = __ccgo_ts + 1354 } - Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+136, h)) - case int32('W'): /* Fall thru */ - fallthrough - case int32('j'): /* Number of days since 1st day of year */ - *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidJD = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FM = int32(1) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FD = int32(1) - _computeJD(tls, bp+80) - nDay = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) - if int32(cf) == int32('W') { /* 0=Monday, 1=Tuesday, ... 6=Sunday */ - wd = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000) % libc.Int64FromInt32(7)) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1335, libc.VaList(bp+136, (nDay+int32(7)-wd)/int32(7))) - } else { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1366, libc.VaList(bp+136, nDay+int32(1))) - } - case int32('J'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1371, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) + Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+184, h)) + case int32('j'): /* Day of year. Jan01==1, Jan02==2, and so forth */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1385, libc.VaList(bp+184, _daysAfterJan01(tls, bp)+int32(1))) + case int32('J'): /* Julian day number. (Non-standard) */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1390, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) case int32('m'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1335, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) case int32('M'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1335, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('p'): /* Fall thru */ fallthrough case int32('P'): if (*(*TDateTime)(unsafe.Pointer(bp))).Fh >= int32(12) { if int32(cf) == int32('p') { - v6 = __ccgo_ts + 1377 + v6 = __ccgo_ts + 1396 } else { - v6 = __ccgo_ts + 1380 + v6 = __ccgo_ts + 1399 } Xsqlite3_str_append(tls, bp+48, v6, int32(2)) } else { if int32(cf) == int32('p') { - v7 = __ccgo_ts + 1383 + v7 = __ccgo_ts + 1402 } else { - v7 = __ccgo_ts + 1386 + v7 = __ccgo_ts + 1405 } Xsqlite3_str_append(tls, bp+48, v7, int32(2)) } case int32('R'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1389, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1408, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('s'): - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1399, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1418, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) } else { iS = (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/libc.Int64FromInt32(1000) - libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1404, libc.VaList(bp+136, iS)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1423, libc.VaList(bp+184, iS)) } case int32('S'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1335, libc.VaList(bp+136, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+184, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) case int32('T'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1409, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) - case int32('u'): /* Fall thru */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1428, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + case int32('u'): /* Day of week. 1 to 7. Monday==1, Sunday==7 */ fallthrough - case int32('w'): - c = uint8(int32(uint8(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)%libc.Int64FromInt32(7))) + int32('0')) + case int32('w'): /* Day of week. 0 to 6. Sunday==0, Monday==1 */ + c = uint8(int32(uint8(_daysAfterSunday(tls, bp))) + int32('0')) if int32(c) == int32('0') && int32(cf) == int32('u') { c = uint8('7') } Xsqlite3_str_appendchar(tls, bp+48, int32(1), c) + case int32('U'): /* Week num. 00-53. First Sun of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterSunday(tls, bp)+int32(7))/int32(7))) + case int32('V'): /* Week num. 01-53. First week with a Thur is week 01 */ + *(*TDateTime)(unsafe.Pointer(bp + 128)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Adjust y so that is the Thursday in the same week as x */ + _ = libc.Int32FromInt32(0) + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FvalidYMD = uint8(0) + _computeYMD(tls, bp+128) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+184, _daysAfterJan01(tls, bp+128)/int32(7)+int32(1))) + case int32('W'): /* Week num. 00-53. First Mon of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1349, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterMonday(tls, bp)+int32(7))/int32(7))) case int32('Y'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1424, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1380, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) case int32('%'): Xsqlite3_str_appendchar(tls, bp+48, int32(1), uint8('%')) default: @@ -15678,12 +15859,10 @@ func _timediffFunc(tls *libc.TLS, context uintptr, NotUsed1 int32, argv uintptr) p2 = bp *(*Tsqlite3_int64)(unsafe.Pointer(p2)) = Tsqlite3_int64(uint64(*(*Tsqlite3_int64)(unsafe.Pointer(p2))) + libc.Uint64FromInt32(1486995408)*libc.Uint64FromInt32(100000)) } - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidYMD = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidHMS = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidTZ = uint8(0) + _clearYMD_HMS_TZ(tls, bp) _computeYMD_HMS(tls, bp) _sqlite3StrAccumInit(tls, bp+96, uintptr(0), uintptr(0), 0, int32(100)) - Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1429, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) + Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1443, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) _sqlite3ResultStrAccum(tls, context, bp+96) } @@ -15716,55 +15895,55 @@ var _aDateTimeFuncs = [10]TFuncDef{ FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1235, + FzName: __ccgo_ts + 1249, }, 1: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1255, + FzName: __ccgo_ts + 1269, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1463, + FzName: __ccgo_ts + 1477, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1468, + FzName: __ccgo_ts + 1482, }, 4: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1473, + FzName: __ccgo_ts + 1487, }, 5: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1482, + FzName: __ccgo_ts + 1496, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1491, + FzName: __ccgo_ts + 1505, }, 7: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1500, + FzName: __ccgo_ts + 1514, }, 8: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1513, + FzName: __ccgo_ts + 1527, }, 9: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1531, + FzName: __ccgo_ts + 1545, }, } @@ -16446,7 +16625,7 @@ func _sqlite3MemMalloc(tls *libc.TLS, nByte int32) (r uintptr) { *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1544, libc.VaList(bp+8, nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1558, libc.VaList(bp+8, nByte)) } return p } @@ -16511,7 +16690,7 @@ func _sqlite3MemRealloc(tls *libc.TLS, pPrior uintptr, nByte int32) (r uintptr) *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1582, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1596, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) } return p } @@ -17927,7 +18106,7 @@ func _sqlite3OomFault(tls *libc.TLS, db uintptr) (r uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++ (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = uint16(0) if (*Tsqlite3)(unsafe.Pointer(db)).FpParse != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1632, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) pParse = (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).FpOuterParse for { @@ -18354,7 +18533,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li v3 = int32(*(*uint8)(unsafe.Pointer(v4))) c = v3 if v3 == 0 { - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1632, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1646, int32(1)) break } /* Find out what flags are present */ @@ -18771,9 +18950,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial != 0 { if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial) == int32(2) { if flag_zeropad != 0 { - v57 = __ccgo_ts + 1634 + v57 = __ccgo_ts + 1648 } else { - v57 = __ccgo_ts + 1639 + v57 = __ccgo_ts + 1653 } bufpt = v57 length = _sqlite3Strlen30(tls, bufpt) @@ -18784,7 +18963,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP = int32(1000) (*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fn = int32(1) } else { - libc.Xmemcpy(tls, bp, __ccgo_ts+1643, uint64(5)) + libc.Xmemcpy(tls, bp, __ccgo_ts+1657, uint64(5)) bufpt = bp if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fsign) == int32('-') { /* no-op */ @@ -18806,14 +18985,13 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li prefix = flag_prefix } exp = (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP - int32(1) - if int32(xtype) == int32(etGENERIC) && precision > 0 { - precision-- - } /* ** If the field type is etGENERIC, then convert to either etEXP ** or etFLOAT, as appropriate. */ if int32(xtype) == int32(etGENERIC) { + _ = libc.Int32FromInt32(0) + precision-- flag_rtz = libc.BoolUint8(!(flag_alternateform != 0)) if exp < -int32(4) || exp > precision { xtype = uint8(etEXP) @@ -19120,7 +19298,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li bufpt = libc.VaUintptr(&ap) } if bufpt == uintptr(0) { - bufpt = __ccgo_ts + 1648 + bufpt = __ccgo_ts + 1662 } else { if int32(xtype) == int32(etDYNSTRING) { if (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnChar == uint32(0) && (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FmxAlloc != 0 && width == 0 && precision < 0 && int32((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FaccError) == 0 { @@ -19174,6 +19352,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } else { length = int32(0x7fffffff) & int32(libc.Xstrlen(tls, bufpt)) } + goto adjust_width_for_utf8 adjust_width_for_utf8: ; if flag_altform2 != 0 && width > 0 { @@ -19208,9 +19387,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li isnull = libc.BoolInt32(escarg == uintptr(0)) if isnull != 0 { if int32(xtype) == int32(etSQLESCAPE2) { - v98 = __ccgo_ts + 1649 + v98 = __ccgo_ts + 1663 } else { - v98 = __ccgo_ts + 1654 + v98 = __ccgo_ts + 1668 } escarg = v98 } @@ -19330,7 +19509,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*TSrcItem)(unsafe.Pointer(pItem)).FzName != 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1661, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1675, int32(1)) } Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzName) } else { @@ -19338,11 +19517,16 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzAlias) } else { pSel = (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect - _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* Because of tag-20240424-1 */ if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_NestedFrom) != 0 { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1663, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1677, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) } else { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1673, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_MultiValue) != 0 { + _ = libc.Int32FromInt32(0) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1687, libc.VaList(bp+128, *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pItem)).Fu1)))) + } else { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1708, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + } } } } @@ -19631,7 +19815,7 @@ func _sqlite3ResultStrAccum(tls *libc.TLS, pCtx uintptr, p uintptr) { if int32((*TStrAccum)(unsafe.Pointer(p)).FprintfFlags)&int32(SQLITE_PRINTF_MALLOCED) != 0 { Xsqlite3_result_text(tls, pCtx, (*TStrAccum)(unsafe.Pointer(p)).FzText, int32((*TStrAccum)(unsafe.Pointer(p)).FnChar), __ccgo_fp(_sqlite3OomClear)) } else { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1648, 0, libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1662, 0, libc.UintptrFromInt32(0)) Xsqlite3_str_reset(tls, p) } } @@ -20946,6 +21130,7 @@ func _sqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc Tu8) (r in (*TMem)(unsafe.Pointer(pMem)).Fz = zOut (*TMem)(unsafe.Pointer(pMem)).FzMalloc = (*TMem)(unsafe.Pointer(pMem)).Fz (*TMem)(unsafe.Pointer(pMem)).FszMalloc = _sqlite3DbMallocSize(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).Fz) + goto translate_out translate_out: ; return SQLITE_OK @@ -21569,6 +21754,62 @@ func _sqlite3DequoteExpr(tls *libc.TLS, p uintptr) { _sqlite3Dequote(tls, *(*uintptr)(unsafe.Pointer(p + 8))) } +// C documentation +// +// /* +// ** Expression p is a QNUMBER (quoted number). Dequote the value in p->u.zToken +// ** and set the type to INTEGER or FLOAT. "Quoted" integers or floats are those +// ** that contain '_' characters that must be removed before further processing. +// */ +func _sqlite3DequoteNumber(tls *libc.TLS, pParse uintptr, p uintptr) { + bp := tls.Alloc(32) + defer tls.Free(32) + var bHex int32 + var pIn, pOut, v1, v3 uintptr + var _ /* iValue at bp+0 */ int32 + _, _, _, _, _ = bHex, pIn, pOut, v1, v3 + _ = libc.Int32FromInt32(0) + if p != 0 { + pIn = *(*uintptr)(unsafe.Pointer(p + 8)) + pOut = *(*uintptr)(unsafe.Pointer(p + 8)) + bHex = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(pIn + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(pIn + 1))) == int32('X'))) + _ = libc.Int32FromInt32(0) + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + for { + if int32(*(*uint8)(unsafe.Pointer(pIn))) != int32('_') { + v3 = pOut + pOut++ + *(*uint8)(unsafe.Pointer(v3)) = *(*uint8)(unsafe.Pointer(pIn)) + if int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('E') || int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('.') { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_FLOAT) + } + } else { + if bHex == 0 && (!(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1))))])&libc.Int32FromInt32(0x04) != 0) || !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + 1))])&libc.Int32FromInt32(0x04) != 0)) || bHex == int32(1) && (!(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1))))])&libc.Int32FromInt32(0x08) != 0) || !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + 1))])&libc.Int32FromInt32(0x08) != 0)) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1722, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(p + 8)))) + } + } + goto _2 + _2: + ; + v1 = pIn + pIn++ + if !(*(*uint8)(unsafe.Pointer(v1)) != 0) { + break + } + } + if bHex != 0 { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + } + /* tag-20240227-a: If after dequoting, the number is an integer that + ** fits in 32 bits, then it must be converted into EP_IntValue. Other + ** parts of the code expect this. See also tag-20240227-b. */ + if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_INTEGER) && _sqlite3GetInt32(tls, *(*uintptr)(unsafe.Pointer(p + 8)), bp) != 0 { + *(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(p)).Fu)) = *(*int32)(unsafe.Pointer(bp)) + *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(EP_IntValue) + } + } +} + // C documentation // // /* @@ -21930,6 +22171,7 @@ func _sqlite3AtoF(tls *libc.TLS, z uintptr, pResult uintptr, length int32, enc T for z < zEnd && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z))])&int32(0x01) != 0 { z += uintptr(incr) } + goto do_atof_calc do_atof_calc: ; /* Zero is a special case */ @@ -22037,6 +22279,7 @@ do_atof_calc: *(*float64)(unsafe.Pointer(pResult)) = -*(*float64)(unsafe.Pointer(pResult)) } _ = libc.Int32FromInt32(0) + goto atof_return atof_return: ; /* return true if number and no extra non-whitespace characters after */ @@ -22121,7 +22364,7 @@ func _compare2pow63(tls *libc.TLS, zNum uintptr, incr int32) (r int32) { _, _, _ = c, i, pow63 c = 0 /* 012345678901234567 */ - pow63 = __ccgo_ts + 1687 + pow63 = __ccgo_ts + 1747 i = 0 for { if !(c == 0 && i < int32(18)) { @@ -22353,7 +22596,7 @@ func _sqlite3DecOrHexToI64(tls *libc.TLS, z uintptr, pOut uintptr) (r int32) { } return 0 } else { - n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1706)) + n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1766)) if *(*uint8)(unsafe.Pointer(z + uintptr(n))) != 0 { n++ } @@ -22511,7 +22754,7 @@ func _sqlite3FpDecode(tls *libc.TLS, p uintptr, _r float64, iRound int32, mxRoun (*TFpDecode)(unsafe.Pointer(p)).Fsign = uint8('+') (*TFpDecode)(unsafe.Pointer(p)).Fn = int32(1) (*TFpDecode)(unsafe.Pointer(p)).FiDP = int32(1) - (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1722 + (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1782 return } else { (*TFpDecode)(unsafe.Pointer(p)).Fsign = uint8('+') @@ -23072,7 +23315,7 @@ func _sqlite3HexToBlob(tls *libc.TLS, db uintptr, z uintptr, n int32) (r uintptr func _logBadConnection(tls *libc.TLS, zType uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1724, libc.VaList(bp+8, zType)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1784, libc.VaList(bp+8, zType)) } // C documentation @@ -23095,13 +23338,13 @@ func _sqlite3SafetyCheckOk(tls *libc.TLS, db uintptr) (r int32) { var eOpenState Tu8 _ = eOpenState if db == uintptr(0) { - _logBadConnection(tls, __ccgo_ts+1649) + _logBadConnection(tls, __ccgo_ts+1663) return 0 } eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_OPEN) { if _sqlite3SafetyCheckSickOrOk(tls, db) != 0 { - _logBadConnection(tls, __ccgo_ts+1769) + _logBadConnection(tls, __ccgo_ts+1829) } return 0 } else { @@ -23115,7 +23358,7 @@ func _sqlite3SafetyCheckSickOrOk(tls *libc.TLS, db uintptr) (r int32) { _ = eOpenState eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_SICK) && int32(eOpenState) != int32(SQLITE_STATE_OPEN) && int32(eOpenState) != int32(SQLITE_STATE_BUSY) { - _logBadConnection(tls, __ccgo_ts+1778) + _logBadConnection(tls, __ccgo_ts+1838) return 0 } else { return int32(1) @@ -23774,196 +24017,196 @@ func _sqlite3OpcodeName(tls *libc.TLS, i int32) (r uintptr) { } var _azName = [190]uintptr{ - 0: __ccgo_ts + 1786, - 1: __ccgo_ts + 1796, - 2: __ccgo_ts + 1807, - 3: __ccgo_ts + 1819, - 4: __ccgo_ts + 1830, - 5: __ccgo_ts + 1842, - 6: __ccgo_ts + 1849, - 7: __ccgo_ts + 1857, - 8: __ccgo_ts + 1865, - 9: __ccgo_ts + 1870, - 10: __ccgo_ts + 1875, - 11: __ccgo_ts + 1881, - 12: __ccgo_ts + 1895, - 13: __ccgo_ts + 1901, - 14: __ccgo_ts + 1911, - 15: __ccgo_ts + 1916, - 16: __ccgo_ts + 1921, - 17: __ccgo_ts + 1924, - 18: __ccgo_ts + 1930, - 19: __ccgo_ts + 1937, - 20: __ccgo_ts + 1941, - 21: __ccgo_ts + 1951, - 22: __ccgo_ts + 1958, - 23: __ccgo_ts + 1965, - 24: __ccgo_ts + 1972, - 25: __ccgo_ts + 1979, - 26: __ccgo_ts + 1989, - 27: __ccgo_ts + 1998, - 28: __ccgo_ts + 2009, - 29: __ccgo_ts + 2018, - 30: __ccgo_ts + 2024, - 31: __ccgo_ts + 2034, - 32: __ccgo_ts + 2044, - 33: __ccgo_ts + 2049, - 34: __ccgo_ts + 2059, - 35: __ccgo_ts + 2070, - 36: __ccgo_ts + 2075, - 37: __ccgo_ts + 2082, - 38: __ccgo_ts + 2093, - 39: __ccgo_ts + 2098, - 40: __ccgo_ts + 2103, - 41: __ccgo_ts + 2109, - 42: __ccgo_ts + 2115, - 43: __ccgo_ts + 2121, - 44: __ccgo_ts + 2124, - 45: __ccgo_ts + 2128, - 46: __ccgo_ts + 2134, - 47: __ccgo_ts + 2145, - 48: __ccgo_ts + 2156, - 49: __ccgo_ts + 2164, - 50: __ccgo_ts + 2173, - 51: __ccgo_ts + 2180, - 52: __ccgo_ts + 2188, - 53: __ccgo_ts + 2191, - 54: __ccgo_ts + 2194, - 55: __ccgo_ts + 2197, - 56: __ccgo_ts + 2200, - 57: __ccgo_ts + 2203, - 58: __ccgo_ts + 2206, - 59: __ccgo_ts + 2213, - 60: __ccgo_ts + 2219, - 61: __ccgo_ts + 2229, - 62: __ccgo_ts + 2242, - 63: __ccgo_ts + 2253, - 64: __ccgo_ts + 2259, - 65: __ccgo_ts + 2266, - 66: __ccgo_ts + 2275, - 67: __ccgo_ts + 2284, - 68: __ccgo_ts + 2291, - 69: __ccgo_ts + 2304, - 70: __ccgo_ts + 2315, - 71: __ccgo_ts + 2320, - 72: __ccgo_ts + 2328, - 73: __ccgo_ts + 2334, - 74: __ccgo_ts + 2341, - 75: __ccgo_ts + 2353, - 76: __ccgo_ts + 2358, - 77: __ccgo_ts + 2367, - 78: __ccgo_ts + 2372, - 79: __ccgo_ts + 2381, - 80: __ccgo_ts + 2386, - 81: __ccgo_ts + 2391, - 82: __ccgo_ts + 2397, - 83: __ccgo_ts + 2405, - 84: __ccgo_ts + 2413, - 85: __ccgo_ts + 2423, - 86: __ccgo_ts + 2431, - 87: __ccgo_ts + 2438, - 88: __ccgo_ts + 2451, - 89: __ccgo_ts + 2456, - 90: __ccgo_ts + 2468, - 91: __ccgo_ts + 2476, - 92: __ccgo_ts + 2483, - 93: __ccgo_ts + 2494, - 94: __ccgo_ts + 2501, - 95: __ccgo_ts + 2508, - 96: __ccgo_ts + 2518, - 97: __ccgo_ts + 2527, - 98: __ccgo_ts + 2538, - 99: __ccgo_ts + 2544, - 100: __ccgo_ts + 2555, - 101: __ccgo_ts + 2565, - 102: __ccgo_ts + 2575, - 103: __ccgo_ts + 2582, - 104: __ccgo_ts + 2588, - 105: __ccgo_ts + 2598, - 106: __ccgo_ts + 2609, - 107: __ccgo_ts + 2613, - 108: __ccgo_ts + 2622, - 109: __ccgo_ts + 2631, - 110: __ccgo_ts + 2638, - 111: __ccgo_ts + 2648, - 112: __ccgo_ts + 2655, - 113: __ccgo_ts + 2664, - 114: __ccgo_ts + 2674, - 115: __ccgo_ts + 2681, - 116: __ccgo_ts + 2689, - 117: __ccgo_ts + 2703, - 118: __ccgo_ts + 2711, - 119: __ccgo_ts + 2725, - 120: __ccgo_ts + 2736, - 121: __ccgo_ts + 2749, - 122: __ccgo_ts + 2760, - 123: __ccgo_ts + 2766, - 124: __ccgo_ts + 2778, - 125: __ccgo_ts + 2787, - 126: __ccgo_ts + 2795, - 127: __ccgo_ts + 2804, - 128: __ccgo_ts + 2813, - 129: __ccgo_ts + 2820, - 130: __ccgo_ts + 2828, - 131: __ccgo_ts + 2835, - 132: __ccgo_ts + 2846, - 133: __ccgo_ts + 2860, - 134: __ccgo_ts + 2871, - 135: __ccgo_ts + 2879, - 136: __ccgo_ts + 2885, - 137: __ccgo_ts + 2893, - 138: __ccgo_ts + 2901, - 139: __ccgo_ts + 2911, - 140: __ccgo_ts + 2924, - 141: __ccgo_ts + 2934, - 142: __ccgo_ts + 2947, - 143: __ccgo_ts + 2956, - 144: __ccgo_ts + 2967, - 145: __ccgo_ts + 2975, - 146: __ccgo_ts + 2981, - 147: __ccgo_ts + 2993, - 148: __ccgo_ts + 3005, - 149: __ccgo_ts + 3013, - 150: __ccgo_ts + 3025, - 151: __ccgo_ts + 3038, - 152: __ccgo_ts + 3048, - 153: __ccgo_ts + 3058, - 154: __ccgo_ts + 3063, - 155: __ccgo_ts + 3075, - 156: __ccgo_ts + 3087, - 157: __ccgo_ts + 3097, - 158: __ccgo_ts + 3103, - 159: __ccgo_ts + 3113, - 160: __ccgo_ts + 3120, - 161: __ccgo_ts + 3132, - 162: __ccgo_ts + 3143, - 163: __ccgo_ts + 3151, - 164: __ccgo_ts + 3160, - 165: __ccgo_ts + 3169, - 166: __ccgo_ts + 3178, - 167: __ccgo_ts + 3185, - 168: __ccgo_ts + 3196, - 169: __ccgo_ts + 3209, - 170: __ccgo_ts + 3219, - 171: __ccgo_ts + 3226, - 172: __ccgo_ts + 3234, - 173: __ccgo_ts + 3243, - 174: __ccgo_ts + 3249, - 175: __ccgo_ts + 3256, - 176: __ccgo_ts + 3264, - 177: __ccgo_ts + 3272, - 178: __ccgo_ts + 3280, - 179: __ccgo_ts + 3290, - 180: __ccgo_ts + 3299, - 181: __ccgo_ts + 3310, - 182: __ccgo_ts + 3321, - 183: __ccgo_ts + 3332, - 184: __ccgo_ts + 3342, - 185: __ccgo_ts + 3348, - 186: __ccgo_ts + 3359, - 187: __ccgo_ts + 3370, - 188: __ccgo_ts + 3375, - 189: __ccgo_ts + 3383, + 0: __ccgo_ts + 1846, + 1: __ccgo_ts + 1856, + 2: __ccgo_ts + 1867, + 3: __ccgo_ts + 1879, + 4: __ccgo_ts + 1890, + 5: __ccgo_ts + 1902, + 6: __ccgo_ts + 1909, + 7: __ccgo_ts + 1917, + 8: __ccgo_ts + 1925, + 9: __ccgo_ts + 1930, + 10: __ccgo_ts + 1935, + 11: __ccgo_ts + 1941, + 12: __ccgo_ts + 1955, + 13: __ccgo_ts + 1961, + 14: __ccgo_ts + 1971, + 15: __ccgo_ts + 1976, + 16: __ccgo_ts + 1981, + 17: __ccgo_ts + 1984, + 18: __ccgo_ts + 1990, + 19: __ccgo_ts + 1997, + 20: __ccgo_ts + 2001, + 21: __ccgo_ts + 2011, + 22: __ccgo_ts + 2018, + 23: __ccgo_ts + 2025, + 24: __ccgo_ts + 2032, + 25: __ccgo_ts + 2039, + 26: __ccgo_ts + 2049, + 27: __ccgo_ts + 2058, + 28: __ccgo_ts + 2069, + 29: __ccgo_ts + 2078, + 30: __ccgo_ts + 2084, + 31: __ccgo_ts + 2094, + 32: __ccgo_ts + 2104, + 33: __ccgo_ts + 2109, + 34: __ccgo_ts + 2123, + 35: __ccgo_ts + 2134, + 36: __ccgo_ts + 2139, + 37: __ccgo_ts + 2146, + 38: __ccgo_ts + 2157, + 39: __ccgo_ts + 2162, + 40: __ccgo_ts + 2167, + 41: __ccgo_ts + 2173, + 42: __ccgo_ts + 2179, + 43: __ccgo_ts + 2185, + 44: __ccgo_ts + 2188, + 45: __ccgo_ts + 2192, + 46: __ccgo_ts + 2198, + 47: __ccgo_ts + 2209, + 48: __ccgo_ts + 2220, + 49: __ccgo_ts + 2228, + 50: __ccgo_ts + 2237, + 51: __ccgo_ts + 2244, + 52: __ccgo_ts + 2252, + 53: __ccgo_ts + 2255, + 54: __ccgo_ts + 2258, + 55: __ccgo_ts + 2261, + 56: __ccgo_ts + 2264, + 57: __ccgo_ts + 2267, + 58: __ccgo_ts + 2270, + 59: __ccgo_ts + 2277, + 60: __ccgo_ts + 2283, + 61: __ccgo_ts + 2293, + 62: __ccgo_ts + 2306, + 63: __ccgo_ts + 2317, + 64: __ccgo_ts + 2323, + 65: __ccgo_ts + 2330, + 66: __ccgo_ts + 2339, + 67: __ccgo_ts + 2348, + 68: __ccgo_ts + 2355, + 69: __ccgo_ts + 2368, + 70: __ccgo_ts + 2379, + 71: __ccgo_ts + 2384, + 72: __ccgo_ts + 2392, + 73: __ccgo_ts + 2398, + 74: __ccgo_ts + 2405, + 75: __ccgo_ts + 2417, + 76: __ccgo_ts + 2422, + 77: __ccgo_ts + 2431, + 78: __ccgo_ts + 2436, + 79: __ccgo_ts + 2445, + 80: __ccgo_ts + 2450, + 81: __ccgo_ts + 2455, + 82: __ccgo_ts + 2461, + 83: __ccgo_ts + 2469, + 84: __ccgo_ts + 2477, + 85: __ccgo_ts + 2487, + 86: __ccgo_ts + 2495, + 87: __ccgo_ts + 2502, + 88: __ccgo_ts + 2515, + 89: __ccgo_ts + 2520, + 90: __ccgo_ts + 2532, + 91: __ccgo_ts + 2540, + 92: __ccgo_ts + 2547, + 93: __ccgo_ts + 2558, + 94: __ccgo_ts + 2565, + 95: __ccgo_ts + 2572, + 96: __ccgo_ts + 2582, + 97: __ccgo_ts + 2591, + 98: __ccgo_ts + 2602, + 99: __ccgo_ts + 2608, + 100: __ccgo_ts + 2619, + 101: __ccgo_ts + 2629, + 102: __ccgo_ts + 2639, + 103: __ccgo_ts + 2646, + 104: __ccgo_ts + 2652, + 105: __ccgo_ts + 2662, + 106: __ccgo_ts + 2673, + 107: __ccgo_ts + 2677, + 108: __ccgo_ts + 2686, + 109: __ccgo_ts + 2695, + 110: __ccgo_ts + 2702, + 111: __ccgo_ts + 2712, + 112: __ccgo_ts + 2719, + 113: __ccgo_ts + 2728, + 114: __ccgo_ts + 2738, + 115: __ccgo_ts + 2745, + 116: __ccgo_ts + 2753, + 117: __ccgo_ts + 2767, + 118: __ccgo_ts + 2775, + 119: __ccgo_ts + 2789, + 120: __ccgo_ts + 2800, + 121: __ccgo_ts + 2813, + 122: __ccgo_ts + 2824, + 123: __ccgo_ts + 2830, + 124: __ccgo_ts + 2842, + 125: __ccgo_ts + 2851, + 126: __ccgo_ts + 2859, + 127: __ccgo_ts + 2868, + 128: __ccgo_ts + 2877, + 129: __ccgo_ts + 2884, + 130: __ccgo_ts + 2892, + 131: __ccgo_ts + 2899, + 132: __ccgo_ts + 2910, + 133: __ccgo_ts + 2924, + 134: __ccgo_ts + 2935, + 135: __ccgo_ts + 2943, + 136: __ccgo_ts + 2949, + 137: __ccgo_ts + 2957, + 138: __ccgo_ts + 2965, + 139: __ccgo_ts + 2975, + 140: __ccgo_ts + 2988, + 141: __ccgo_ts + 2998, + 142: __ccgo_ts + 3011, + 143: __ccgo_ts + 3020, + 144: __ccgo_ts + 3031, + 145: __ccgo_ts + 3039, + 146: __ccgo_ts + 3045, + 147: __ccgo_ts + 3057, + 148: __ccgo_ts + 3069, + 149: __ccgo_ts + 3077, + 150: __ccgo_ts + 3089, + 151: __ccgo_ts + 3102, + 152: __ccgo_ts + 3112, + 153: __ccgo_ts + 3122, + 154: __ccgo_ts + 3127, + 155: __ccgo_ts + 3139, + 156: __ccgo_ts + 3151, + 157: __ccgo_ts + 3161, + 158: __ccgo_ts + 3167, + 159: __ccgo_ts + 3177, + 160: __ccgo_ts + 3184, + 161: __ccgo_ts + 3196, + 162: __ccgo_ts + 3207, + 163: __ccgo_ts + 3215, + 164: __ccgo_ts + 3224, + 165: __ccgo_ts + 3233, + 166: __ccgo_ts + 3242, + 167: __ccgo_ts + 3249, + 168: __ccgo_ts + 3260, + 169: __ccgo_ts + 3273, + 170: __ccgo_ts + 3283, + 171: __ccgo_ts + 3290, + 172: __ccgo_ts + 3298, + 173: __ccgo_ts + 3307, + 174: __ccgo_ts + 3313, + 175: __ccgo_ts + 3320, + 176: __ccgo_ts + 3328, + 177: __ccgo_ts + 3336, + 178: __ccgo_ts + 3344, + 179: __ccgo_ts + 3354, + 180: __ccgo_ts + 3363, + 181: __ccgo_ts + 3374, + 182: __ccgo_ts + 3385, + 183: __ccgo_ts + 3396, + 184: __ccgo_ts + 3406, + 185: __ccgo_ts + 3412, + 186: __ccgo_ts + 3423, + 187: __ccgo_ts + 3434, + 188: __ccgo_ts + 3439, + 189: __ccgo_ts + 3447, } type Tstat = struct { @@ -24707,91 +24950,91 @@ type unix_syscall = Tunix_syscall // */ var _aSyscall = [29]Tunix_syscall{ 0: { - FzName: __ccgo_ts + 3393, + FzName: __ccgo_ts + 3457, }, 1: { - FzName: __ccgo_ts + 3398, + FzName: __ccgo_ts + 3462, }, 2: { - FzName: __ccgo_ts + 3404, + FzName: __ccgo_ts + 3468, }, 3: { - FzName: __ccgo_ts + 3411, + FzName: __ccgo_ts + 3475, }, 4: { - FzName: __ccgo_ts + 3418, + FzName: __ccgo_ts + 3482, }, 5: { - FzName: __ccgo_ts + 3423, + FzName: __ccgo_ts + 3487, }, 6: { - FzName: __ccgo_ts + 3429, + FzName: __ccgo_ts + 3493, }, 7: { - FzName: __ccgo_ts + 3439, + FzName: __ccgo_ts + 3503, }, 8: { - FzName: __ccgo_ts + 3445, + FzName: __ccgo_ts + 3509, }, 9: { - FzName: __ccgo_ts + 3450, + FzName: __ccgo_ts + 3514, }, 10: { - FzName: __ccgo_ts + 3456, + FzName: __ccgo_ts + 3520, }, 11: { - FzName: __ccgo_ts + 3464, + FzName: __ccgo_ts + 3528, }, 12: { - FzName: __ccgo_ts + 3470, + FzName: __ccgo_ts + 3534, }, 13: { - FzName: __ccgo_ts + 3477, + FzName: __ccgo_ts + 3541, }, 14: { - FzName: __ccgo_ts + 3486, + FzName: __ccgo_ts + 3550, }, 15: { - FzName: __ccgo_ts + 3493, + FzName: __ccgo_ts + 3557, }, 16: { - FzName: __ccgo_ts + 3503, + FzName: __ccgo_ts + 3567, }, 17: { - FzName: __ccgo_ts + 3510, + FzName: __ccgo_ts + 3574, }, 18: { - FzName: __ccgo_ts + 3524, + FzName: __ccgo_ts + 3588, }, 19: { - FzName: __ccgo_ts + 3530, + FzName: __ccgo_ts + 3594, }, 20: { - FzName: __ccgo_ts + 3536, + FzName: __ccgo_ts + 3600, }, 21: { - FzName: __ccgo_ts + 3543, + FzName: __ccgo_ts + 3607, }, 22: { - FzName: __ccgo_ts + 3551, + FzName: __ccgo_ts + 3615, }, 23: { - FzName: __ccgo_ts + 3556, + FzName: __ccgo_ts + 3620, }, 24: { - FzName: __ccgo_ts + 3563, + FzName: __ccgo_ts + 3627, }, 25: { - FzName: __ccgo_ts + 3570, + FzName: __ccgo_ts + 3634, }, 26: { - FzName: __ccgo_ts + 3582, + FzName: __ccgo_ts + 3646, }, 27: { - FzName: __ccgo_ts + 3591, + FzName: __ccgo_ts + 3655, }, 28: { - FzName: __ccgo_ts + 3597, + FzName: __ccgo_ts + 3661, }, } @@ -25030,9 +25273,9 @@ func _robust_open(tls *libc.TLS, z uintptr, f int32, m Tmode_t) (r int32) { (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(16)].FpCurrent})))(tls, z) } (*(*func(*libc.TLS, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(1)].FpCurrent})))(tls, fd) - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3603, libc.VaList(bp+136, z, fd)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3667, libc.VaList(bp+136, z, fd)) fd = -int32(1) - if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3646, O_RDONLY, int32(m)) < 0 { + if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3710, O_RDONLY, int32(m)) < 0 { break } } @@ -25350,11 +25593,11 @@ func _unixLogErrorAtLine(tls *libc.TLS, errcode int32, zFunc uintptr, zPath uint ** equivalent to errno. Otherwise, use strerror_r(). */ /* This is a threadsafe build, but strerror_r() is not available. */ - zErr = __ccgo_ts + 1648 + zErr = __ccgo_ts + 1662 if zPath == uintptr(0) { - zPath = __ccgo_ts + 1648 + zPath = __ccgo_ts + 1662 } - Xsqlite3_log(tls, errcode, __ccgo_ts+3656, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) + Xsqlite3_log(tls, errcode, __ccgo_ts+3720, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) return errcode } @@ -25382,7 +25625,7 @@ func _robust_close(tls *libc.TLS, pFile uintptr, h int32, lineno int32) { } else { v1 = uintptr(0) } - _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(16)< uint32(1) { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3740, libc.VaList(bp+136, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3804, libc.VaList(bp+136, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } if _fileHasMoved(tls, pFile) != 0 { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3767, libc.VaList(bp+136, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3831, libc.VaList(bp+136, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } } @@ -25902,6 +26145,7 @@ func _unixLock(tls *libc.TLS, id uintptr, eFileLock int32) (r int32) { (*TunixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock) (*TunixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(eFileLock) } + goto end_lock end_lock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -26033,6 +26277,7 @@ func _posixUnlock(tls *libc.TLS, id uintptr, eFileLock int32, handleNFSUnlock in _closePendingFds(tls, pFile) } } + goto end_unlock end_unlock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -26074,7 +26319,7 @@ func _closeUnixFile(tls *libc.TLS, id uintptr) (r int32) { pFile = id _unixUnmapfile(tls, pFile) if (*TunixFile)(unsafe.Pointer(pFile)).Fh >= 0 { - _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40172)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40505)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -26701,7 +26946,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { var _ /* zDirname at bp+0 */ [513]uint8 _, _ = fd, ii fd = -int32(1) - Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3795, libc.VaList(bp+528, zFilename)) + Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3859, libc.VaList(bp+528, zFilename)) ii = int32(libc.Xstrlen(tls, bp)) for { if !(ii > 0 && int32((*(*[513]uint8)(unsafe.Pointer(bp)))[ii]) != int32('/')) { @@ -26727,7 +26972,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(41778)), __ccgo_ts+3510, bp, int32(41778)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42111)), __ccgo_ts+3574, bp, int32(42111)) } // C documentation @@ -26766,7 +27011,7 @@ func _unixSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { rc = _full_fsync(tls, (*TunixFile)(unsafe.Pointer(pFile)).Fh, isFullsync, isDataOnly) if rc != 0 { _storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))) - return _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(4)<= nSize { iWrite = nSize - int64(1) } - nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1648, int32(1)) + nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1662, int32(1)) if nWrite != int32(1) { return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(3)<= 0 { - _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42583)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42916)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -27389,7 +27634,7 @@ func _unixLockSharedMemory(tls *libc.TLS, pDbFd uintptr, pShmNode uintptr) (r in ** help detect if a -shm file truncation is legitimate or is the work ** or a rogue process. */ if rc == SQLITE_OK && _robust_ftruncate(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(3)) != 0 { - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(18)< iRegion { @@ -27988,7 +28235,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { var pNew, pOrig, pReq, zErr uintptr var v1 Tsqlite3_int64 _, _, _, _, _, _, _, _, _ = flags, h, nOrig, nReuse, pNew, pOrig, pReq, zErr, v1 - zErr = __ccgo_ts + 3551 + zErr = __ccgo_ts + 3615 h = (*TunixFile)(unsafe.Pointer(pFd)).Fh /* File descriptor open on db file */ pOrig = (*TunixFile)(unsafe.Pointer(pFd)).FpMapRegion /* Pointer to current file mapping */ nOrig = (*TunixFile)(unsafe.Pointer(pFd)).FmmapSizeActual /* Size of pOrig region in bytes */ @@ -28008,7 +28255,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { (*(*func(*libc.TLS, uintptr, Tsize_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, pReq, uint64(nOrig-nReuse)) } pNew = (*(*func(*libc.TLS, uintptr, Tsize_t, Tsize_t, int32, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(24)].FpCurrent})))(tls, pOrig, uint64(nReuse), uint64(nNew), int32(MREMAP_MAYMOVE), 0) - zErr = __ccgo_ts + 3563 + zErr = __ccgo_ts + 3627 /* The attempt to extend the existing mapping failed. Free it. */ if pNew == uintptr(-libc.Int32FromInt32(1)) || pNew == uintptr(0) { (*(*func(*libc.TLS, uintptr, Tsize_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, pOrig, uint64(nReuse)) @@ -28021,7 +28268,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { if pNew == uintptr(-libc.Int32FromInt32(1)) { pNew = uintptr(0) nNew = 0 - _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43401)) + _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43734)) /* If the mmap() above failed, assume that all subsequent mmap() calls ** will probably fail too. Fall back to using xRead/xWrite exclusively ** in this case. */ @@ -28365,11 +28612,11 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam } else { v1 = uintptr(0) } - if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3829, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { + if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3893, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { p2 = pNew + 30 *(*uint16)(unsafe.Pointer(p2)) = uint16(int32(*(*uint16)(unsafe.Pointer(p2))) | libc.Int32FromInt32(UNIXFILE_PSOW)) } - if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3834) == 0 { + if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3898) == 0 { p3 = pNew + 30 *(*uint16)(unsafe.Pointer(p3)) = uint16(int32(*(*uint16)(unsafe.Pointer(p3))) | libc.Int32FromInt32(UNIXFILE_EXCL)) } @@ -28400,7 +28647,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam ** implicit assumption here is that if fstat() fails, things are in ** such bad shape that dropping a lock or two doesn't matter much. */ - _robust_close(tls, pNew, h, int32(43909)) + _robust_close(tls, pNew, h, int32(44242)) h = -int32(1) } _unixLeaveMutex(tls) @@ -28412,7 +28659,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam if zLockFile == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3844, libc.VaList(bp+8, zFilename)) + Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3908, libc.VaList(bp+8, zFilename)) } (*TunixFile)(unsafe.Pointer(pNew)).FlockingContext = zLockFile } @@ -28420,7 +28667,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam _storeLastErrno(tls, pNew, 0) if rc != SQLITE_OK { if h >= 0 { - _robust_close(tls, pNew, h, int32(43994)) + _robust_close(tls, pNew, h, int32(44327)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -28435,10 +28682,10 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam // ** Directories to consider for temp files. // */ var _azTempDirs = [6]uintptr{ - 2: __ccgo_ts + 3852, - 3: __ccgo_ts + 3861, - 4: __ccgo_ts + 3870, - 5: __ccgo_ts + 1661, + 2: __ccgo_ts + 3916, + 3: __ccgo_ts + 3925, + 4: __ccgo_ts + 3934, + 5: __ccgo_ts + 1675, } // C documentation @@ -28447,8 +28694,8 @@ var _azTempDirs = [6]uintptr{ // ** Initialize first two members of azTempDirs[] array. // */ func _unixTempFileInit(tls *libc.TLS) { - _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3875) - _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3889) + _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3939) + _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3953) } // C documentation @@ -28511,7 +28758,7 @@ func _unixGetTempname(tls *libc.TLS, nBuf int32, zBuf uintptr) (r int32) { Xsqlite3_randomness(tls, int32(8), bp) _ = libc.Int32FromInt32(0) *(*uint8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2)))) = uint8(0) - Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3896, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) + Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3960, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) if v2 = int32(*(*uint8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2))))) != 0; !v2 { v1 = iLimit iLimit++ @@ -28684,7 +28931,7 @@ func _findCreateFileMode(tls *libc.TLS, zPath uintptr, flags int32, pMode uintpt ** filename, check for the "modeof" parameter. If present, interpret ** its value as a filename and try to copy the mode, uid and gid from ** that file. */ - z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3913) + z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3977) if z != 0 { rc = _getFileMode(tls, z, pMode, pUid, pGid) } @@ -28722,12 +28969,12 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags bp := tls.Alloc(528) defer tls.Free(528) var ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, rc, rc2 int32 - var p, pUnused, zName uintptr + var p, pReadonly, pUnused, zName uintptr var _ /* gid at bp+524 */ Tgid_t var _ /* openMode at bp+516 */ Tmode_t var _ /* uid at bp+520 */ Tuid_t var _ /* zTmpname at bp+0 */ [514]uint8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pUnused, rc, rc2, zName + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pReadonly, pUnused, rc, rc2, zName p = pFile fd = -int32(1) /* File descriptor returned by open() */ openFlags = 0 /* Flags to pass to open() */ @@ -28837,17 +29084,24 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } else { if *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) != int32(EISDIR) && isReadWrite != 0 { /* Failed to open the file for read/write access. Try read-only. */ + pReadonly = uintptr(0) flags &= ^(libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE)) openFlags &= ^(libc.Int32FromInt32(O_RDWR) | libc.Int32FromInt32(O_CREAT)) flags |= int32(SQLITE_OPEN_READONLY) openFlags |= O_RDONLY isReadonly = int32(1) - fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 516))) + pReadonly = _findReusableFd(tls, zName, flags) + if pReadonly != 0 { + fd = (*TUnixUnusedFd)(unsafe.Pointer(pReadonly)).Ffd + Xsqlite3_free(tls, pReadonly) + } else { + fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 516))) + } } } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44435)), __ccgo_ts+3393, zName, int32(44435)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44775)), __ccgo_ts+3457, zName, int32(44775)) if rc == SQLITE_OK { rc = rc2 } @@ -28899,6 +29153,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } _ = libc.Int32FromInt32(0) rc = _fillInUnixFile(tls, pVfs, fd, pFile, zPath, ctrlFlags) + goto open_finished open_finished: ; if rc != SQLITE_OK { @@ -28925,7 +29180,7 @@ func _unixDelete(tls *libc.TLS, NotUsed uintptr, zPath uintptr, dirSync int32) ( if *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) == int32(ENOENT) { rc = libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(23)< int32(SQLITE_MAX_SYMLINK) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(44686)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45026)) return } got = (*(*func(*libc.TLS, uintptr, uintptr, Tsize_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls, zIn, bp+128, libc.Uint64FromInt64(4098)-libc.Uint64FromInt32(2)) if got <= 0 || got >= libc.Int64FromInt64(4098)-libc.Int64FromInt32(2) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44691)), __ccgo_ts+3582, zIn, int32(44691)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45031)), __ccgo_ts+3646, zIn, int32(45031)) return } (*(*[4098]uint8)(unsafe.Pointer(bp + 128)))[got] = uint8(0) @@ -29129,14 +29384,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if int32(*(*uint8)(unsafe.Pointer(zPath))) != int32('/') { if (*(*func(*libc.TLS, uintptr, Tsize_t) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(3)].FpCurrent})))(tls, bp+24, libc.Uint64FromInt64(4098)-libc.Uint64FromInt32(2)) == uintptr(0) { - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44749)), __ccgo_ts+3411, zPath, int32(44749)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45089)), __ccgo_ts+3475, zPath, int32(45089)) } _appendAllPathElements(tls, bp, bp+24) } _appendAllPathElements(tls, bp, zPath) *(*uint8)(unsafe.Pointer(zOut + uintptr((*(*TDbPath)(unsafe.Pointer(bp))).FnUsed))) = uint8(0) if (*(*TDbPath)(unsafe.Pointer(bp))).Frc != 0 || (*(*TDbPath)(unsafe.Pointer(bp))).FnUsed < int32(2) { - return _sqlite3CantopenError(tls, int32(44755)) + return _sqlite3CantopenError(tls, int32(45095)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<= (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4)/libc.Uint64FromInt32(2) { @@ -31009,6 +31266,7 @@ bitvec_set_rehash: return rc } } + goto bitvec_set_end bitvec_set_end: ; (*TBitvec)(unsafe.Pointer(p)).FnSet++ @@ -31242,6 +31500,7 @@ func _sqlite3BitvecBuiltinTest(tls *libc.TLS, sz int32, aOp uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp))++ } /* Free allocated structure */ + goto bitvec_end bitvec_end: ; Xsqlite3_free(tls, pTmpSpace) @@ -32530,7 +32789,7 @@ func _sqlite3PCacheBufferSetup(tls *libc.TLS, pBuf uintptr, sz int32, n int32) { var p uintptr var v1, v2, v3, v4 int32 _, _, _, _, _ = p, v1, v2, v3, v4 - if _pcache1_g.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80) != 0 { if pBuf == uintptr(0) { v1 = libc.Int32FromInt32(0) n = v1 @@ -33080,7 +33339,7 @@ func _pcache1Init(tls *libc.TLS, NotUsed uintptr) (r int32) { _pcache1_g.FnInitPage = 0 } _pcache1_g.Fgrp.FmxPinned = uint32(10) - _pcache1_g.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80, int32(1)) return SQLITE_OK } @@ -36663,6 +36922,7 @@ func _pager_delsuper(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) { } _sqlite3OsClose(tls, pSuper) rc = _sqlite3OsDelete(tls, pVfs, zSuper, 0) + goto delsuper_out delsuper_out: ; Xsqlite3_free(tls, zFree) @@ -36999,6 +37259,7 @@ func _pager_playback(tls *libc.TLS, pPager uintptr, isHot int32) (r int32) { } /*NOTREACHED*/ _ = libc.Int32FromInt32(0) + goto end_playback end_playback: ; if rc == SQLITE_OK { @@ -37042,7 +37303,7 @@ end_playback: rc = _pager_delsuper(tls, pPager, zSuper) } if isHot != 0 && nPlayback != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(2)< int64(1) { _sqlite3PagerUnrefNotNull(tls, pPgOld) - return _sqlite3CorruptError(tls, int32(63973)) + return _sqlite3CorruptError(tls, int32(64313)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | int32((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -41376,7 +41641,7 @@ func _sqlite3PagerCheckpoint(tls *libc.TLS, pPager uintptr, db uintptr, eMode in ** sqlite3_wal_checkpoint() call, but it happens very rarely. ** https://sqlite.org/forum/forumpost/fd0f19d229156939 */ - Xsqlite3_exec(tls, db, __ccgo_ts+4109, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+4173, uintptr(0), uintptr(0), uintptr(0)) } if (*TPager)(unsafe.Pointer(pPager)).FpWal != 0 { if eMode == SQLITE_CHECKPOINT_PASSIVE { @@ -42857,7 +43122,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(65899)) + return _sqlite3CorruptError(tls, int32(66239)) } goto _1 _1: @@ -42949,7 +43214,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { ** are able to understand */ version = _sqlite3Get4byte(tls, bp+8+4) if version != uint32(WAL_MAX_VERSION) { - rc = _sqlite3CantopenError(tls, int32(66031)) + rc = _sqlite3CantopenError(tls, int32(66371)) goto finished } /* Malloc a buffer to read frames into. */ @@ -43046,6 +43311,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { } Xsqlite3_free(tls, aFrame) } + goto finished finished: ; if rc == SQLITE_OK { @@ -43090,9 +43356,10 @@ finished: ** checkpointing the log file. */ if (*TWal)(unsafe.Pointer(pWal)).Fhdr.FnPage != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(1)< int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(71032)) + rc = _sqlite3CorruptError(tls, int32(71421)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } @@ -47847,7 +48123,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if key == uint32(0) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71230)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71619)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -47860,12 +48136,12 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, /* The first byte of the extra data is the MemPage.isInit byte. ** If that byte is set, it means this page is also being used ** as a btree page. */ - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71243)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71632)) goto ptrmap_exit } offset = int32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71248)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71637)) goto ptrmap_exit } _ = libc.Int32FromInt32(0) @@ -47879,6 +48155,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _sqlite3Put4byte(tls, pPtrmap+uintptr(offset+int32(1)), parent) } } + goto ptrmap_exit ptrmap_exit: ; _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -47910,7 +48187,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = int32(libc.Uint32FromInt32(5) * (key - uint32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(71293)) + return _sqlite3CorruptError(tls, int32(71682)) } _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -47920,7 +48197,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if int32(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || int32(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(71301)) + return _sqlite3CorruptError(tls, int32(71690)) } return SQLITE_OK } @@ -48359,7 +48636,7 @@ func _ptrmapPutOvflPtr(tls *libc.TLS, pPage uintptr, pSrc uintptr, pCell uintptr (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if uint64(pCell) < uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) && uint64(pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal)) > uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71741)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72130)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(int32((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -48405,12 +48682,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71799)) + return _sqlite3CorruptError(tls, int32(72188)) } if iFree != 0 { iFree2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71802)) + return _sqlite3CorruptError(tls, int32(72191)) } if 0 == iFree2 || int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -48418,21 +48695,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(71810)) + return _sqlite3CorruptError(tls, int32(72199)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(71813)) + return _sqlite3CorruptError(tls, int32(72202)) } sz2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(71815)) + return _sqlite3CorruptError(tls, int32(72204)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), uint64(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(71819)) + return _sqlite3CorruptError(tls, int32(72208)) } } cbrk = top + sz @@ -48480,13 +48757,13 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { ** if PRAGMA cell_size_check=ON. */ if pc > iCellLast { - return _sqlite3CorruptError(tls, int32(71852)) + return _sqlite3CorruptError(tls, int32(72241)) } _ = libc.Int32FromInt32(0) size = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, src+uintptr(pc))) cbrk -= size if cbrk < iCellStart || pc+size > usableSize { - return _sqlite3CorruptError(tls, int32(71858)) + return _sqlite3CorruptError(tls, int32(72247)) } _ = libc.Int32FromInt32(0) *(*Tu8)(unsafe.Pointer(pAddr1)) = uint8(cbrk >> libc.Int32FromInt32(8)) @@ -48499,11 +48776,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { } } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))) = uint8(0) + goto defragment_out defragment_out: ; _ = libc.Int32FromInt32(0) if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(71872)) + return _sqlite3CorruptError(tls, int32(72261)) } _ = libc.Int32FromInt32(0) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = uint8(cbrk >> libc.Int32FromInt32(8)) @@ -48566,7 +48844,7 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint } else { if x+pc > maxPC { /* This slot extends off the end of the usable part of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71929)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72318)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -48583,14 +48861,14 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint if pc <= iAddr { if pc != 0 { /* The next slot in the chain comes before the current slot */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71944)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72333)) } return uintptr(0) } } if pc > maxPC+nByte-int32(4) { /* The free slot chain extends off the end of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71951)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72340)) } return uintptr(0) } @@ -48641,11 +48919,11 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r if top == 0 && (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize == uint32(65536) { top = int32(65536) } else { - return _sqlite3CorruptError(tls, int32(71999)) + return _sqlite3CorruptError(tls, int32(72388)) } } else { if top > int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(72002)) + return _sqlite3CorruptError(tls, int32(72391)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -48660,7 +48938,7 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r g2 = v1 *(*int32)(unsafe.Pointer(pIdx)) = v1 if g2 <= gap { - return _sqlite3CorruptError(tls, int32(72019)) + return _sqlite3CorruptError(tls, int32(72408)) } else { return SQLITE_OK } @@ -48753,12 +49031,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if int32(iFreeBlk) == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(72098)) + return _sqlite3CorruptError(tls, int32(72487)) } iPtr = iFreeBlk } if uint32(iFreeBlk) > (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(72103)) + return _sqlite3CorruptError(tls, int32(72492)) } _ = libc.Int32FromInt32(0) /* At this point: @@ -48770,11 +49048,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if iFreeBlk != 0 && iEnd+uint32(3) >= uint32(iFreeBlk) { nFrag = uint8(uint32(iFreeBlk) - iEnd) if iEnd > uint32(iFreeBlk) { - return _sqlite3CorruptError(tls, int32(72115)) + return _sqlite3CorruptError(tls, int32(72504)) } iEnd = uint32(int32(iFreeBlk) + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iFreeBlk)+int32(2)))))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - return _sqlite3CorruptError(tls, int32(72118)) + return _sqlite3CorruptError(tls, int32(72507)) } iSize = uint16(iEnd - uint32(iStart)) iFreeBlk = uint16(int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= int32(iStart) { if iPtrEnd > int32(iStart) { - return _sqlite3CorruptError(tls, int32(72131)) + return _sqlite3CorruptError(tls, int32(72520)) } nFrag = Tu8(int32(nFrag) + (int32(iStart) - iPtrEnd)) iSize = uint16(iEnd - uint32(iPtr)) @@ -48795,7 +49073,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) } } if int32(nFrag) > int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(72137)) + return _sqlite3CorruptError(tls, int32(72526)) } p2 = data + uintptr(int32(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - int32(nFrag)) @@ -48812,10 +49090,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) ** so just extend the cell content area rather than create another ** freelist entry */ if int32(iStart) < int32(x) { - return _sqlite3CorruptError(tls, int32(72151)) + return _sqlite3CorruptError(tls, int32(72540)) } if int32(iPtr) != int32(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(72152)) + return _sqlite3CorruptError(tls, int32(72541)) } *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)))) = uint8(int32(iFreeBlk) >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)) + 1)) = uint8(iFreeBlk) @@ -48878,7 +49156,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtrIdxLeaf) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72206)) + return _sqlite3CorruptError(tls, int32(72595)) } } } else { @@ -48904,7 +49182,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtr) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72230)) + return _sqlite3CorruptError(tls, int32(72619)) } } } @@ -48951,12 +49229,12 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-55530-52930 In a well-formed b-tree page, there will ** always be at least one cell before the first freeblock. */ - return _sqlite3CorruptError(tls, int32(72281)) + return _sqlite3CorruptError(tls, int32(72670)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(72286)) + return _sqlite3CorruptError(tls, int32(72675)) } next = uint32(int32(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(72296)) + return _sqlite3CorruptError(tls, int32(72685)) } if uint32(pc)+size > uint32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(72300)) + return _sqlite3CorruptError(tls, int32(72689)) } } /* At this point, nFree contains the sum of the offset to the start @@ -48983,7 +49261,7 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { ** area, according to the page header, lies within the page. */ if nFree > usableSize || nFree < iCellFirst { - return _sqlite3CorruptError(tls, int32(72312)) + return _sqlite3CorruptError(tls, int32(72701)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16(nFree - iCellFirst)) return SQLITE_OK @@ -49014,11 +49292,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))) if pc < iCellFirst || pc > iCellLast { - return _sqlite3CorruptError(tls, int32(72343)) + return _sqlite3CorruptError(tls, int32(72732)) } sz = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, data+uintptr(pc))) if pc+sz > usableSize { - return _sqlite3CorruptError(tls, int32(72348)) + return _sqlite3CorruptError(tls, int32(72737)) } goto _1 _1: @@ -49054,7 +49332,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-28594-02890 The one-byte flag at offset 0 indicating ** the b-tree page type. */ if _decodeFlags(tls, pPage, int32(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(72380)) + return _sqlite3CorruptError(tls, int32(72769)) } _ = libc.Int32FromInt32(0) (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) @@ -49068,7 +49346,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = uint16(int32(*(*Tu8)(unsafe.Pointer(data + 3)))< ((*TBtShared)(unsafe.Pointer(pBt)).FpageSize-uint32(8))/uint32(6) { /* To many cells for a single page. The page must be corrupt */ - return _sqlite3CorruptError(tls, int32(72394)) + return _sqlite3CorruptError(tls, int32(72783)) } /* EVIDENCE-OF: R-24089-57979 If a page contains no cells (which is only ** possible for a root page of a table that contains no rows) then the @@ -49234,7 +49512,7 @@ func _getAndInitPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, bRe _ = libc.Int32FromInt32(0) if pgno > _btreePagecount(tls, pBt) { *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72537)) + return _sqlite3CorruptError(tls, int32(72926)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -49311,7 +49589,7 @@ func _btreeGetUnusedPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FpDbPage) > int32(1) { _releasePage(tls, *(*uintptr)(unsafe.Pointer(ppPage))) *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72609)) + return _sqlite3CorruptError(tls, int32(72998)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -49403,7 +49681,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt /* Set the variable isMemdb to true for an in-memory database, or ** false for a file-based database. */ - isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4190) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) + isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4254) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -49638,6 +49916,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt } } *(*uintptr)(unsafe.Pointer(ppBtree)) = p + goto btree_open_out btree_open_out: ; if rc != SQLITE_OK { @@ -50223,7 +50502,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { ** The original design allowed these amounts to vary, but as of ** version 3.6.0, we require them to be fixed. */ - if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4199, uint64(3)) != 0 { + if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4263, uint64(3)) != 0 { goto page1_init_failed } /* EVIDENCE-OF: R-51873-39618 The page size for a database file is @@ -50262,7 +50541,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { } if nPage > *(*Tu32)(unsafe.Pointer(bp + 8)) { if _sqlite3WritableSchema(tls, (*TBtShared)(unsafe.Pointer(pBt)).Fdb) == 0 { - rc = _sqlite3CorruptError(tls, int32(73547)) + rc = _sqlite3CorruptError(tls, int32(73936)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -50317,6 +50596,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 = *(*uintptr)(unsafe.Pointer(bp)) (*TBtShared)(unsafe.Pointer(pBt)).FnPage = nPage return SQLITE_OK + goto page1_init_failed page1_init_failed: ; _releasePageOne(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -50601,6 +50881,7 @@ func _btreeBeginTrans(tls *libc.TLS, p uintptr, wrflag int32, pSchemaVersion uin } } } + goto trans_begun trans_begun: ; if rc == SQLITE_OK { @@ -50722,7 +51003,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if int32(eType) == int32(PTRMAP_OVERFLOW2) { /* The pointer is always the first 4 bytes of the page in this case. */ if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData) != iFrom { - return _sqlite3CorruptError(tls, int32(73995)) + return _sqlite3CorruptError(tls, int32(74384)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -50746,7 +51027,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74014)) + return _sqlite3CorruptError(tls, int32(74403)) } if iFrom == _sqlite3Get4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4)) { _sqlite3Put4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4), iTo) @@ -50755,7 +51036,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } } else { if pCell+uintptr(4) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74023)) + return _sqlite3CorruptError(tls, int32(74412)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -50769,7 +51050,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if int32(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(74035)) + return _sqlite3CorruptError(tls, int32(74424)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -50802,7 +51083,7 @@ func _relocatePage(tls *libc.TLS, pBt uintptr, pDbPage uintptr, eType Tu8, iPtrP _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iDbPage < uint32(3) { - return _sqlite3CorruptError(tls, int32(74070)) + return _sqlite3CorruptError(tls, int32(74459)) } /* Move page iDbPage from its current location to page number iFreePage */ *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3PagerMovepage(tls, pPager, (*TMemPage)(unsafe.Pointer(pDbPage)).FpDbPage, iFreePage, isCommit) @@ -50900,7 +51181,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(74168)) + return _sqlite3CorruptError(tls, int32(74557)) } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -50939,7 +51220,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if *(*TPgno)(unsafe.Pointer(bp + 24)) > dbSize { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) - return _sqlite3CorruptError(tls, int32(74220)) + return _sqlite3CorruptError(tls, int32(74609)) } } _ = libc.Int32FromInt32(0) @@ -51008,7 +51289,7 @@ func _sqlite3BtreeIncrVacuum(tls *libc.TLS, p uintptr) (r int32) { nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) nFin = _finalDbSize(tls, pBt, nOrig, nFree) if nOrig < nFin || nFree >= nOrig { - rc = _sqlite3CorruptError(tls, int32(74288)) + rc = _sqlite3CorruptError(tls, int32(74677)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -51054,7 +51335,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { ** is either a pointer-map page or the pending-byte page. If one ** is encountered, this indicates corruption. */ - return _sqlite3CorruptError(tls, int32(74339)) + return _sqlite3CorruptError(tls, int32(74728)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -51084,7 +51365,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(74366)) + return _sqlite3CorruptError(tls, int32(74755)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -51582,7 +51863,7 @@ func _btreeCursor(tls *libc.TLS, p uintptr, iTable TPgno, wrFlag int32, pKeyInfo _ = libc.Int32FromInt32(0) if iTable <= uint32(1) { if iTable < uint32(1) { - return _sqlite3CorruptError(tls, int32(74830)) + return _sqlite3CorruptError(tls, int32(75219)) } else { if _btreePagecount(tls, pBt) == uint32(0) { _ = libc.Int32FromInt32(0) @@ -51996,7 +52277,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(75235)) + return _sqlite3CorruptError(tls, int32(75624)) } _ = libc.Int32FromInt32(0) _getCellInfo(tls, pCur) @@ -52009,7 +52290,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin ** &aPayload[pCur->info.nLocal] > &pPage->aData[pBt->usableSize] ** but is recast into its current form to avoid integer overflow problems */ - return _sqlite3CorruptError(tls, int32(75250)) + return _sqlite3CorruptError(tls, int32(75639)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -52037,7 +52318,11 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_ValidOvfl) == 0 { nOvfl = int32(((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnPayload - uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) + ovflSize - uint32(1)) / ovflSize) if (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow == uintptr(0) || nOvfl*libc.Int32FromInt64(4) > _sqlite3MallocSize(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow) { - aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + if _sqlite3FaultSim(tls, int32(413)) != 0 { + aNew = uintptr(0) + } else { + aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + } if aNew == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -52048,6 +52333,9 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin p1 = pCur + 1 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(BTCF_ValidOvfl)) } else { + /* Sanity check the validity of the overflow page cache */ + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* If the overflow page-list cache has been allocated and the ** entry for the first required overflow page is valid, skip ** directly to it. @@ -52062,7 +52350,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin for *(*TPgno)(unsafe.Pointer(bp)) != 0 { /* If required, populate the overflow page-list cache. */ if *(*TPgno)(unsafe.Pointer(bp)) > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(75312)) + return _sqlite3CorruptError(tls, int32(75710)) } _ = libc.Int32FromInt32(0) *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) @@ -52139,7 +52427,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin } if rc == SQLITE_OK && amt > uint32(0) { /* Overflow chain ends prematurely */ - return _sqlite3CorruptError(tls, int32(75396)) + return _sqlite3CorruptError(tls, int32(75794)) } return rc } @@ -52292,7 +52580,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(75534)) + return _sqlite3CorruptError(tls, int32(75932)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -52305,7 +52593,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(75548)) + rc = _sqlite3CorruptError(tls, int32(75946)) } if rc != 0 { v3 = pCur + 84 @@ -52435,8 +52723,9 @@ func _moveToRoot(tls *libc.TLS, pCur uintptr) (r int32) { ** (or the freelist). */ _ = libc.Int32FromInt32(0) if int32((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != int32((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(75683)) + return _sqlite3CorruptError(tls, int32(76081)) } + goto skip_init skip_init: ; (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(0) @@ -52448,7 +52737,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(75695)) + return _sqlite3CorruptError(tls, int32(76093)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -52597,6 +52886,7 @@ func _sqlite3BtreeLast(tls *libc.TLS, pCur uintptr, pRes uintptr) (r int32) { _ = libc.Int32FromInt32(0) /* If the cursor already points to the last entry, this is a no-op. */ if CURSOR_VALID == int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) && int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_AtLast) != 0 { + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pRes)) = 0 return SQLITE_OK } @@ -52650,6 +52940,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh } if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey < intKey { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_AtLast) != 0 { + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pRes)) = -int32(1) return SQLITE_OK } @@ -52712,7 +53003,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(75937)) + return _sqlite3CorruptError(tls, int32(76342)) } } } @@ -52760,6 +53051,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh rc = SQLITE_OK goto moveto_table_finish } + goto moveto_table_next_layer moveto_table_next_layer: ; if lwr >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { @@ -52775,6 +53067,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh goto _1 _1: } + goto moveto_table_finish moveto_table_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -52926,7 +53219,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes p3 = pCur + 1 *(*Tu8)(unsafe.Pointer(p3)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p3))) & ^libc.Int32FromInt32(BTCF_ValidOvfl)) if !((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76133)) + return _sqlite3CorruptError(tls, int32(76538)) } goto bypass_moveto_root /* Start search on the current page */ } @@ -52941,6 +53234,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes } return rc } + goto bypass_moveto_root bypass_moveto_root: ; _ = libc.Int32FromInt32(0) @@ -52997,7 +53291,7 @@ bypass_moveto_root: /* Invalid key size: 0x80 0x80 0x01 */ /* Minimum legal index key size */ if nCell < int32(2) || uint32(nCell)/(*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FusableSize > (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(76220)) + rc = _sqlite3CorruptError(tls, int32(76625)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, uint64(nCell+nOverrun)) @@ -53030,7 +53324,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(76252)) + rc = _sqlite3CorruptError(tls, int32(76657)) } goto moveto_index_finish } @@ -53067,7 +53361,7 @@ bypass_moveto_root: p9 = pCur + 1 *(*Tu8)(unsafe.Pointer(p9)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p9))) & ^(libc.Int32FromInt32(BTCF_ValidNKey) | libc.Int32FromInt32(BTCF_ValidOvfl))) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(76283)) + return _sqlite3CorruptError(tls, int32(76688)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = uint16(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -53076,7 +53370,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76294)) + rc = _sqlite3CorruptError(tls, int32(76699)) } if rc != 0 { v11 = pCur + 84 @@ -53090,6 +53384,7 @@ bypass_moveto_root: goto _4 _4: } + goto moveto_index_finish moveto_index_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -53127,11 +53422,11 @@ func _sqlite3BtreeRowCountEst(tls *libc.TLS, pCur uintptr) (r Ti64) { _, _ = i, n _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - /* Currently this interface is only called by the OP_IfSmaller - ** opcode, and it that case the cursor will always be valid and - ** will always point to a leaf node. */ + /* Currently this interface is only called by the OP_IfSizeBetween + ** opcode and the OP_Count opcode with P3=1. In either case, + ** the cursor will always be valid unless the btree is empty. */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID { - return int64(-int32(1)) + return 0 } if int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).Fleaf) == 0 { return int64(-int32(1)) @@ -53209,7 +53504,7 @@ func _btreeNext(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76395)) + return _sqlite3CorruptError(tls, int32(76800)) } if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -53324,7 +53619,7 @@ func _btreePrevious(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76488)) + return _sqlite3CorruptError(tls, int32(76893)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -53418,7 +53713,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt ** stores the total number of pages on the freelist. */ n = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+36) if n >= mxPage { - return _sqlite3CorruptError(tls, int32(76578)) + return _sqlite3CorruptError(tls, int32(76983)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -53475,7 +53770,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(76634)) + rc = _sqlite3CorruptError(tls, int32(77039)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -53504,7 +53799,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { if k > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/libc.Uint32FromInt32(4)-libc.Uint32FromInt32(2) { /* Value of k is out of range. Database corruption */ - rc = _sqlite3CorruptError(tls, int32(76663)) + rc = _sqlite3CorruptError(tls, int32(77068)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -53531,7 +53826,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { iNewTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+8) if iNewTrunk > mxPage { - rc = _sqlite3CorruptError(tls, int32(76697)) + rc = _sqlite3CorruptError(tls, int32(77102)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -53603,7 +53898,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } iPage = _sqlite3Get4byte(tls, aData+uintptr(uint32(8)+closest*uint32(4))) if iPage > mxPage || iPage < uint32(2) { - rc = _sqlite3CorruptError(tls, int32(76762)) + rc = _sqlite3CorruptError(tls, int32(77167)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -53706,6 +54001,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } } _ = libc.Int32FromInt32(0) + goto end_allocate_page end_allocate_page: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -53748,7 +54044,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iPage < uint32(2) || iPage > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(76889)) + return _sqlite3CorruptError(tls, int32(77294)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -53799,7 +54095,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in if nFree != uint32(0) { /* Initial number of leaf cells on trunk page */ iTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32) if iTrunk > _btreePagecount(tls, pBt) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76936)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77341)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -53809,7 +54105,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in nLeaf = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+4) _ = libc.Int32FromInt32(0) if nLeaf > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(2) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76947)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77352)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -53864,6 +54160,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData, iTrunk) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData+4, uint32(0)) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32, iPage) + goto freepage_out freepage_out: ; if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -53900,7 +54197,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp _ = libc.Int32FromInt32(0) if pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { /* Cell extends past end of page */ - return _sqlite3CorruptError(tls, int32(77036)) + return _sqlite3CorruptError(tls, int32(77441)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -53920,7 +54217,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp /* 0 is not a legal page number and page 1 cannot be an ** overflow page. Therefore if ovflPgno<2 or past the end of the ** file the database must be corrupt. */ - return _sqlite3CorruptError(tls, int32(77053)) + return _sqlite3CorruptError(tls, int32(77458)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -53943,7 +54240,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp ** caller is iterating through or using in some other way, this ** can be problematic. */ - rc = _sqlite3CorruptError(tls, int32(77073)) + rc = _sqlite3CorruptError(tls, int32(77478)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -54179,7 +54476,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = uint32(int32(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77329)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77734)) return } rc = _freeSpace(tls, pPage, uint16(pc), uint16(sz)) @@ -54614,12 +54911,12 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg _ = libc.Int32FromInt32(0) if uint64(pCell) >= uint64(aData+uintptr(j)) && uint64(pCell) < uint64(pEnd) { if uint64(pCell+uintptr(sz)) > uint64(pEnd) { - return _sqlite3CorruptError(tls, int32(77718)) + return _sqlite3CorruptError(tls, int32(78123)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(77723)) + return _sqlite3CorruptError(tls, int32(78128)) } } pData -= uintptr(sz) @@ -54627,7 +54924,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = uint8(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(77729)) + return _sqlite3CorruptError(tls, int32(78134)) } libc.Xmemmove(tls, pData, pCell, uint64(sz)) _ = libc.Int32FromInt32(0) @@ -54726,7 +55023,7 @@ func _pageInsertArray(tls *libc.TLS, pPg uintptr, pBegin uintptr, ppData uintptr _ = libc.Int32FromInt32(0) if uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))+uintptr(sz)) > uint64(pEnd) && uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))) < uint64(pEnd) { _ = libc.Int32FromInt32(0) - _sqlite3CorruptError(tls, int32(77814)) + _sqlite3CorruptError(tls, int32(78219)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), uint64(sz)) @@ -54876,7 +55173,7 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p if iOld < iNew { nShift = _pageFreeArray(tls, pPg, iOld, iNew-iOld, pCArray) if nShift > nCell { - return _sqlite3CorruptError(tls, int32(77936)) + return _sqlite3CorruptError(tls, int32(78341)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), uint64(nCell*int32(2))) nCell -= nShift @@ -54946,11 +55243,12 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)))) = uint8((int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)) + 1)) = uint8(int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) return SQLITE_OK + goto editpage_fail editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(78010)) + return _sqlite3CorruptError(tls, int32(78415)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -54998,7 +55296,7 @@ func _balance_quick(tls *libc.TLS, pParent uintptr, pPage uintptr, pSpace uintpt _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(78050)) + return _sqlite3CorruptError(tls, int32(78455)) } /* dbfuzz001.test */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -55374,7 +55672,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78471)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78876)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -55397,7 +55695,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa libc.Xmemset(tls, (*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell+uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*2, 0, uint64(2)*uint64(limit+int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78495)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78900)) goto balance_cleanup } limit = int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -55540,7 +55838,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa if i+int32(1) >= k { k = i + int32(2) if k > libc.Int32FromInt32(NB)+libc.Int32FromInt32(2) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78596)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79001)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -55583,7 +55881,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v10 = 0 } if cntNew[i] <= v10 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78629)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79034)) goto balance_cleanup } } @@ -55644,7 +55942,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v15 = 0 } if cntNew[i-int32(1)] <= v15 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78673)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79078)) goto balance_cleanup } goto _11 @@ -55677,7 +55975,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) nNew++ if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) != int32(1)+libc.BoolInt32(i == iParentIdx-nxDiv) && *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78706)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79111)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -55920,7 +56218,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa } pSrcEnd = *(*uintptr)(unsafe.Pointer(bp + 112 + 32 + uintptr(k)*8)) if uint64(pCell1) < uint64(pSrcEnd) && uint64(pCell1+uintptr(sz2)) > uint64(pSrcEnd) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78906)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79311)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -56069,6 +56367,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa /* ** Cleanup before returning. */ + goto balance_cleanup balance_cleanup: ; _sqlite3DbFree(tls, uintptr(0), (*(*TCellArray)(unsafe.Pointer(bp + 112))).FapCell) @@ -56184,7 +56483,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && int32((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(79138)) + return _sqlite3CorruptError(tls, int32(79543)) } goto _1 _1: @@ -56259,7 +56558,7 @@ func _balance(tls *libc.TLS, pCur uintptr) (r int32) { /* The page being written is not a root page, and there is currently ** more than one reference to it. This only happens if the page is one ** of its own ancestor pages. Corruption. */ - rc = _sqlite3CorruptError(tls, int32(79198)) + rc = _sqlite3CorruptError(tls, int32(79603)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = int32(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -56422,7 +56721,7 @@ func _btreeOverwriteOverflowCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int return rc } if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1) || (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FisInit != 0 { - rc = _sqlite3CorruptError(tls, int32(79362)) + rc = _sqlite3CorruptError(tls, int32(79767)) } else { if uint32(iOffset)+ovflPageSize < uint32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -56453,7 +56752,7 @@ func _btreeOverwriteCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int32) { nTotal = (*TBtreePayload)(unsafe.Pointer(pX)).FnData + (*TBtreePayload)(unsafe.Pointer(pX)).FnZero /* Total bytes of to write */ pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage /* Page being written */ if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload+uintptr((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd || (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FcellOffset) { - return _sqlite3CorruptError(tls, int32(79390)) + return _sqlite3CorruptError(tls, int32(79795)) } if int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -56540,7 +56839,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** Which can only happen if the SQLITE_NoSchemaError flag was set when ** the schema was loaded. This cannot be asserted though, as a user might ** set the flag, load the schema, and then unset the flag. */ - return _sqlite3CorruptError(tls, int32(79471)) + return _sqlite3CorruptError(tls, int32(79876)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -56643,7 +56942,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79594)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79999)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -56685,7 +56984,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if *(*int32)(unsafe.Pointer(bp + 4)) == 0 { _ = libc.Int32FromInt32(0) if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79636)) + return _sqlite3CorruptError(tls, int32(80041)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -56715,10 +57014,10 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry. */ _ = libc.Int32FromInt32(0) /* clearCell never fails when nLocal==nPayload */ if oldCell < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+uintptr(10) { - return _sqlite3CorruptError(tls, int32(79663)) + return _sqlite3CorruptError(tls, int32(80068)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79666)) + return _sqlite3CorruptError(tls, int32(80071)) } libc.Xmemcpy(tls, oldCell, newCell, uint64(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -56790,6 +57089,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s } } _ = libc.Int32FromInt32(0) + goto end_insert end_insert: ; return *(*int32)(unsafe.Pointer(bp)) @@ -56842,7 +57142,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T nIn = uint32((*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnLocal) aIn = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload if aIn+uintptr(nIn) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79768)) + return _sqlite3CorruptError(tls, int32(80173)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -56864,7 +57164,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T } if nRem > nIn { if aIn+uintptr(nIn)+uintptr(4) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79793)) + return _sqlite3CorruptError(tls, int32(80198)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -56973,7 +57273,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(79889)) + return _sqlite3CorruptError(tls, int32(80294)) } } _ = libc.Int32FromInt32(0) @@ -56981,14 +57281,14 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { iCellIdx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(79898)) + return _sqlite3CorruptError(tls, int32(80303)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCellIdx)))))) if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 && _btreeComputeFreeSpace(tls, pPage) != 0 { - return _sqlite3CorruptError(tls, int32(79902)) + return _sqlite3CorruptError(tls, int32(80307)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79905)) + return _sqlite3CorruptError(tls, int32(80310)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -57083,7 +57383,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { } pCell = (*TMemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(int32(2)*(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FnCell)-int32(1)))))))) if pCell < (*TMemPage)(unsafe.Pointer(pLeaf)).FaData+4 { - return _sqlite3CorruptError(tls, int32(79996)) + return _sqlite3CorruptError(tls, int32(80401)) } nCell = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pLeaf)).FxCellSize})))(tls, pLeaf, pCell)) _ = libc.Int32FromInt32(0) @@ -57203,7 +57503,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags */ _sqlite3BtreeGetMeta(tls, p, int32(BTREE_LARGEST_ROOT_PAGE), bp+8) if *(*TPgno)(unsafe.Pointer(bp + 8)) > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80112)) + return _sqlite3CorruptError(tls, int32(80517)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -57245,7 +57545,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags } *(*int32)(unsafe.Pointer(bp + 12)) = _ptrmapGet(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 8)), bp+32, bp+36) if int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80160)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80565)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -57332,14 +57632,14 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _, _, _, _ = hdr, i, pCell, v2 _ = libc.Int32FromInt32(0) if pgno > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80250)) + return _sqlite3CorruptError(tls, int32(80655)) } *(*int32)(unsafe.Pointer(bp + 8)) = _getAndInitPage(tls, pBt, pgno, bp, 0) if *(*int32)(unsafe.Pointer(bp + 8)) != 0 { return *(*int32)(unsafe.Pointer(bp + 8)) } if int32((*TBtShared)(unsafe.Pointer(pBt)).FopenFlags)&int32(BTREE_SINGLE) == 0 && _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1)+libc.BoolInt32(pgno == uint32(1)) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80257)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80662)) goto cleardatabasepage_out } hdr = int32((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -57390,6 +57690,7 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _zeroPage(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData + uintptr(hdr))))|int32(PTF_LEAF)) } } + goto cleardatabasepage_out cleardatabasepage_out: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -57479,7 +57780,7 @@ func _btreeDropTable(tls *libc.TLS, p uintptr, iTable TPgno, piMoved uintptr) (r _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iTable > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80361)) + return _sqlite3CorruptError(tls, int32(80766)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, int32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -57755,7 +58056,7 @@ func _checkAppendMsg(tls *libc.TLS, pCheck uintptr, zFormat uintptr, va uintptr) (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr++ ap = va if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FerrMsg.FnChar != 0 { - Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4203, int32(1)) + Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4267, int32(1)) } if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx != 0 { Xsqlite3_str_appendf(tls, pCheck+72, (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx, libc.VaList(bp+8, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv0, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv2)) @@ -57807,11 +58108,11 @@ func _checkRef(tls *libc.TLS, pCheck uintptr, iPage TPgno) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if iPage > (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnCkPage || iPage == uint32(0) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4205, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4269, libc.VaList(bp+8, iPage)) return int32(1) } if _getPageReferenced(tls, pCheck, iPage) != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4228, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4292, libc.VaList(bp+8, iPage)) return int32(1) } _setPageReferenced(tls, pCheck, iPage) @@ -57837,11 +58138,11 @@ func _checkPtrmap(tls *libc.TLS, pCheck uintptr, iChild TPgno, eType Tu8, iParen if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FusableSize/uint32(4)-uint32(2) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4358, libc.VaList(bp+16, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4422, libc.VaList(bp+16, iPage)) N-- } else { i = 0 @@ -57913,11 +58214,11 @@ func _checkList(tls *libc.TLS, pCheck uintptr, isFreeList int32, iPage TPgno, N } if N != 0 && nErrAtStart == (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr { if isFreeList != 0 { - v2 = __ccgo_ts + 4397 + v2 = __ccgo_ts + 4461 } else { - v2 = __ccgo_ts + 4402 + v2 = __ccgo_ts + 4466 } - _checkAppendMsg(tls, pCheck, __ccgo_ts+4423, libc.VaList(bp+16, v2, expected-N, expected)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4487, libc.VaList(bp+16, v2, expected-N, expected)) } } @@ -58054,12 +58355,12 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr if _checkRef(tls, pCheck, iPage) != 0 { return 0 } - (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4449 + (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4513 (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = iPage v1 = _btreeGetPage(tls, pBt, iPage, bp+8, 0) rc = v1 if v1 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4467, libc.VaList(bp+56, rc)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4531, libc.VaList(bp+56, rc)) if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< usableSize-uint32(4) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4621, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4685, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) doCoverageCheck = 0 goto _4 } pCell = data + uintptr(pc) (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FxParseCell})))(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), pCell, bp+24) if pc+uint32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnSize) > usableSize { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4651, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4715, 0) doCoverageCheck = 0 goto _4 } @@ -58145,7 +58449,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr v5 = libc.BoolInt32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey >= *(*Ti64)(unsafe.Pointer(bp))) } if v5 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4675, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4739, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) } *(*Ti64)(unsafe.Pointer(bp)) = (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey keyCanBeEqual = 0 /* Only the first key on the page may ==maxKey */ @@ -58169,7 +58473,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr d2 = _checkTreePage(tls, pCheck, uint32(pgno), bp, *(*Ti64)(unsafe.Pointer(bp))) keyCanBeEqual = 0 if d2 != depth { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4699, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4763, 0) depth = d2 } } else { @@ -58206,6 +58510,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr i-- } } + _ = libc.Int32FromInt32(0) /* Add the freeblocks to the min-heap ** ** EVIDENCE-OF: R-20690-50594 The second field of the b-tree page header @@ -58246,7 +58551,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr prev = contentOffset - uint32(1) /* Implied first min-heap entry */ for _btreeHeapPull(tls, heap, bp+16) != 0 { if prev&uint32(0xffff) >= *(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4724, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4788, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) break } else { nFrag = int32(uint32(nFrag) + (*(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) - prev&libc.Uint32FromInt32(0xffff) - libc.Uint32FromInt32(1))) @@ -58260,9 +58565,10 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr ** number of fragmented free bytes within the cell content area. */ if *(*Tu32)(unsafe.Pointer(heap)) == uint32(0) && nFrag != int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4761, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4825, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) } } + goto end_of_check end_of_check: ; if !(doCoverageCheck != 0) { @@ -58299,22 +58605,23 @@ end_of_check: // ** the unverified btrees. Except, if aRoot[1] is 1, then the freelist // ** checks are still performed. // */ -func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { - bp := tls.Alloc(256) - defer tls.Free(256) +func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, aCnt uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { + bp := tls.Alloc(272) + defer tls.Free(272) var bCkFreelist, bPartial int32 var i, mx, mxInHdr TPgno var pBt uintptr var savedDbFlags Tu64 - var _ /* notUsed at bp+224 */ Ti64 + var _ /* notUsed at bp+232 */ Ti64 var _ /* sCheck at bp+0 */ TIntegrityCk - var _ /* zErr at bp+120 */ [100]uint8 + var _ /* zErr at bp+128 */ [100]uint8 _, _, _, _, _, _, _ = bCkFreelist, bPartial, i, mx, mxInHdr, pBt, savedDbFlags pBt = (*TBtree)(unsafe.Pointer(p)).FpBt savedDbFlags = (*Tsqlite3)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags bPartial = 0 /* True if not checking all btrees */ bCkFreelist = int32(1) /* True to scan the freelist */ _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* aRoot[0]==0 means this is a partial check */ if *(*TPgno)(unsafe.Pointer(aRoot)) == uint32(0) { _ = libc.Int32FromInt32(0) @@ -58326,13 +58633,13 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin _sqlite3BtreeEnter(tls, p) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - libc.Xmemset(tls, bp, 0, uint64(120)) + libc.Xmemset(tls, bp, 0, uint64(128)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fdb = db (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt = pBt (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage = _btreePagecount(tls, (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr = mxErr - _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+120, int32(100), int32(SQLITE_MAX_LENGTH)) + _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+128, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FerrMsg.FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage == uint32(0) { goto integrity_ck_cleanup @@ -58354,7 +58661,7 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin /* Check the integrity of the freelist */ if bCkFreelist != 0 { - (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4813 + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4877 _checkList(tls, bp, int32(1), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+32), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = uintptr(0) } @@ -58378,11 +58685,11 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } mxInHdr = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+52) if mx != mxInHdr { - _checkAppendMsg(tls, bp, __ccgo_ts+4824, libc.VaList(bp+240, mx, mxInHdr)) + _checkAppendMsg(tls, bp, __ccgo_ts+4888, libc.VaList(bp+248, mx, mxInHdr)) } } else { if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+64) != uint32(0) { - _checkAppendMsg(tls, bp, __ccgo_ts+4869, 0) + _checkAppendMsg(tls, bp, __ccgo_ts+4933, 0) } } } @@ -58392,14 +58699,15 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin if !(int32(i) < nRoot && (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr != 0) { break } - if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) == uint32(0) { - goto _2 - } - if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { - _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnRow = 0 + if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) != 0 { + if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { + _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + } + (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fv0 = *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) + _checkTreePage(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), bp+232, libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)< nRec || iHdr >= *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84303)) + iHdr = uint32(uint8(v1)) + if *(*Tu32)(unsafe.Pointer(bp + 4)) > uint32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84745)) } - iField = *(*int32)(unsafe.Pointer(bp + 4)) + iField = int64(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 for { if !(i <= iCol) { @@ -61574,19 +61918,19 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } else { v3 = int32(_sqlite3GetVarint32(tls, a+uintptr(iHdr), bp)) } - iHdr += int32(uint8(v3)) - if iHdr > *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84309)) + iHdr += uint32(uint8(v3)) + if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84751)) } - szField = int32(_sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp)))) - iField += szField + szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) + iField += int64(szField) goto _2 _2: ; i++ } - if iField > nRec { - return _sqlite3CorruptError(tls, int32(84315)) + if iField > int64(nRec) { + return _sqlite3CorruptError(tls, int32(84757)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -61596,7 +61940,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC return int32(SQLITE_NOMEM) } } - _sqlite3VdbeSerialGet(tls, a+uintptr(iField-szField), *(*Tu32)(unsafe.Pointer(bp)), pMem) + _sqlite3VdbeSerialGet(tls, a+uintptr(iField-int64(szField)), *(*Tu32)(unsafe.Pointer(bp)), pMem) (*TMem)(unsafe.Pointer(pMem)).Fenc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc return SQLITE_OK } @@ -62032,6 +62376,7 @@ func _sqlite3VdbeMultiLoad(tls *libc.TLS, p uintptr, iDest int32, zTypes uintptr i++ } _sqlite3VdbeAddOp2(tls, p, int32(OP_ResultRow), iDest, i) + goto skip_op_resultrow skip_op_resultrow: ; _ = ap @@ -62410,6 +62755,11 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { _ = libc.Int32FromInt32(0) /* True because of tag-20230419-1 */ (*TOp)(unsafe.Pointer(pOp)).Fp2 = *(*int32)(unsafe.Pointer(aLabel + uintptr(^(*TOp)(unsafe.Pointer(pOp)).Fp2)*4)) } + /* OPFLG_JUMP opcodes never have P2==0, though OPFLG_JUMP0 opcodes + ** might */ + _ = libc.Int32FromInt32(0) + /* Jumps never go off the end of the bytecode array */ + _ = libc.Int32FromInt32(0) break } /* The mkopcodeh.tcl script has so arranged things that the only @@ -62420,6 +62770,7 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { _ = libc.Int32FromInt32(0) pOp -= 24 } + goto resolve_p2_values_loop_exit resolve_p2_values_loop_exit: ; if aLabel != 0 { @@ -62960,7 +63311,7 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { case -int32(8): pKeyInfo = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5081, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5145, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) j = 0 for { if !(j < int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)) { @@ -62970,68 +63321,68 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { if pColl != 0 { v2 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } zColl = v2 - if libc.Xstrcmp(tls, zColl, __ccgo_ts+5086) == 0 { - zColl = __ccgo_ts + 5093 + if libc.Xstrcmp(tls, zColl, __ccgo_ts+5150) == 0 { + zColl = __ccgo_ts + 5157 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_DESC) != 0 { - v3 = __ccgo_ts + 5074 + v3 = __ccgo_ts + 5138 } else { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_BIGNULL) != 0 { - v4 = __ccgo_ts + 5095 + v4 = __ccgo_ts + 5159 } else { - v4 = __ccgo_ts + 1648 + v4 = __ccgo_ts + 1662 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5098, libc.VaList(bp+40, v3, v4, zColl)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5162, libc.VaList(bp+40, v3, v4, zColl)) goto _1 _1: ; j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5170, int32(1)) case -int32(2): pColl1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5122, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5186, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) case -int32(7): pDef = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5131, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5195, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) case -int32(15): pDef1 = (*Tsqlite3_context)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpFunc - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5131, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5195, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) case -int32(13): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1404, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1423, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(3): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5138, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5202, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) case -int32(12): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1371, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1390, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(10): pMem = *(*uintptr)(unsafe.Pointer(pOp + 16)) if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Str) != 0 { zP4 = (*TMem)(unsafe.Pointer(pMem)).Fz } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1404, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1423, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1371, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1390, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Null) != 0 { - zP4 = __ccgo_ts + 1649 + zP4 = __ccgo_ts + 1663 } else { _ = libc.Int32FromInt32(0) - zP4 = __ccgo_ts + 5141 + zP4 = __ccgo_ts + 5205 } } } } case -int32(11): pVtab = (*TVTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5148, libc.VaList(bp+40, pVtab)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5212, libc.VaList(bp+40, pVtab)) case -int32(14): ai = *(*uintptr)(unsafe.Pointer(pOp + 16)) n = *(*Tu32)(unsafe.Pointer(ai)) /* The first element of an INTARRAY is always the @@ -63046,15 +63397,15 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } else { v6 = int32(',') } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5156, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5220, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) goto _5 _5: ; i++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5161, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5225, int32(1)) case -int32(4): - zP4 = __ccgo_ts + 5163 + zP4 = __ccgo_ts + 5227 case -int32(5): zP4 = (*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FzName default: @@ -63070,10 +63421,10 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } var _encnames = [4]uintptr{ - 0: __ccgo_ts + 5108, - 1: __ccgo_ts + 5110, - 2: __ccgo_ts + 5112, - 3: __ccgo_ts + 5117, + 0: __ccgo_ts + 5172, + 1: __ccgo_ts + 5174, + 2: __ccgo_ts + 5176, + 3: __ccgo_ts + 5181, } // C documentation @@ -64065,7 +64416,7 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { retryCount = 0 /* Select a super-journal file name */ nMainFile = _sqlite3Strlen30(tls, zMainFile) - zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5171, libc.VaList(bp+24, 0, zMainFile, 0)) + zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5235, libc.VaList(bp+24, 0, zMainFile, 0)) if zSuper == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -64073,18 +64424,18 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { for cond := true; cond; cond = rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 8)) != 0 { if retryCount != 0 { if retryCount > int32(100) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5183, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5247, libc.VaList(bp+24, zSuper)) _sqlite3OsDelete(tls, pVfs, zSuper, 0) break } else { if retryCount == int32(1) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5197, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5261, libc.VaList(bp+24, zSuper)) } } } retryCount++ Xsqlite3_randomness(tls, int32(4), bp+12) - Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5212, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) + Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5276, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) /* The antipenultimate character of the super-journal name must ** be "9" to avoid name collisions when using 8+3 filenames. */ _ = libc.Int32FromInt32(0) @@ -64321,7 +64672,7 @@ func _sqlite3VdbeCheckFk(tls *libc.TLS, p uintptr, deferred int32) (r int32) { if deferred != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredCons+(*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons > 0 || !(deferred != 0) && (*TVdbe)(unsafe.Pointer(p)).FnFkConstraint > 0 { (*TVdbe)(unsafe.Pointer(p)).Frc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(3)< y { return +libc.Int32FromInt32(1) } - s = float64(i) - if s < r { + if float64(i) < r { v2 = -int32(1) } else { - v2 = libc.BoolInt32(s > r) + v2 = libc.BoolInt32(float64(i) > r) } return v2 } @@ -65667,7 +66017,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89131))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89580))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -65762,7 +66112,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || int32((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89212))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89661))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -65798,7 +66148,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = int32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+uint32(nStr) > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89242))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89691))) return 0 /* Corruption */ } else { if int32((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -65854,7 +66204,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += uint32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89293))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89742))) return 0 /* Corrupt index */ } } @@ -65976,6 +66326,7 @@ func _vdbeRecordCompareString(tls *libc.TLS, nKey1 int32, pKey1 uintptr, pPKey2 _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(bp)) = int32(int8(*(*Tu8)(unsafe.Pointer(aKey1 + 1)))) + goto vrcs_restart vrcs_restart: ; if *(*int32)(unsafe.Pointer(bp)) < int32(12) { @@ -65994,7 +66345,7 @@ vrcs_restart: szHdr = int32(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89456))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89905))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -66147,10 +66498,11 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr return SQLITE_OK /* Jump here if database corruption is detected after m has been ** allocated. Free the m object and return SQLITE_CORRUPT. */ + goto idx_rowid_corruption idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(89614)) + return _sqlite3CorruptError(tls, int32(90063)) } // C documentation @@ -66183,7 +66535,7 @@ func _sqlite3VdbeIdxKeyCompare(tls *libc.TLS, db uintptr, pC uintptr, pUnpacked ** that btreeParseCellPtr() and sqlite3GetVarint32() are implemented */ if nCellKey <= 0 || nCellKey > int64(0x7fffffff) { *(*int32)(unsafe.Pointer(res)) = 0 - return _sqlite3CorruptError(tls, int32(89647)) + return _sqlite3CorruptError(tls, int32(90096)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(nCellKey), bp) @@ -66339,15 +66691,15 @@ func _sqlite3NotPureFunc(tls *libc.TLS, pCtx uintptr) (r int32) { pOp = (*TVdbe)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe)).FaOp + uintptr((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FiOp)*24 if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_PureFunc) { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_IsCheck) != 0 { - zContext = __ccgo_ts + 5255 + zContext = __ccgo_ts + 5319 } else { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_GenCol) != 0 { - zContext = __ccgo_ts + 5274 + zContext = __ccgo_ts + 5338 } else { - zContext = __ccgo_ts + 5293 + zContext = __ccgo_ts + 5357 } } - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5302, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5366, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) return 0 @@ -66526,7 +66878,7 @@ func Xsqlite3_expired(tls *libc.TLS, pStmt uintptr) (r int32) { // */ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { if (*TVdbe)(unsafe.Pointer(p)).Fdb == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5338, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5402, 0) return int32(1) } else { return 0 @@ -66536,7 +66888,7 @@ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { func _vdbeSafetyNotNull(tls *libc.TLS, p uintptr) (r int32) { if p == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5383, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5447, 0) return int32(1) } else { return _vdbeSafety(tls, p) @@ -66598,7 +66950,7 @@ func Xsqlite3_finalize(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt db = (*TVdbe)(unsafe.Pointer(v)).Fdb if _vdbeSafety(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90035)) + return _sqlite3MisuseError(tls, int32(90484)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -67129,7 +67481,7 @@ func Xsqlite3_result_error_code(tls *libc.TLS, pCtx uintptr, errCode int32) { func Xsqlite3_result_error_toobig(tls *libc.TLS, pCtx uintptr) { _ = libc.Int32FromInt32(0) (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = int32(SQLITE_TOOBIG) - _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5423, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) + _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5487, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) } // C documentation @@ -67211,6 +67563,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) db = (*TVdbe)(unsafe.Pointer(p)).Fdb if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_RUN_STATE) { + goto restart_step restart_step: ; if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) == int32(VDBE_READY_STATE) { @@ -67314,6 +67667,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { rc = (*TVdbe)(unsafe.Pointer(p)).Frc } } + goto end_of_step end_of_step: ; /* There are only a limited number of result codes allowed from the @@ -67338,7 +67692,7 @@ func Xsqlite3_step(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt /* the prepared statement */ cnt = 0 /* The database connection */ if _vdbeSafetyNotNull(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90829)) + return _sqlite3MisuseError(tls, int32(91278)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -67472,7 +67826,7 @@ func _valueFromValueList(tls *libc.TLS, pVal uintptr, ppOut uintptr, bNext int32 _, _, _, _, _, _, _ = iOff, pOut, pRhs, rc, sz, zBuf, v1 *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) if pVal == uintptr(0) { - return _sqlite3MisuseError(tls, int32(90950)) + return _sqlite3MisuseError(tls, int32(91399)) } if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -67703,6 +68057,7 @@ func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, (*TAuxData)(unsafe.Pointer(pAuxData)).FpAux = pAux (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = xDelete return + goto failed failed: ; if xDelete != 0 { @@ -67944,18 +68299,18 @@ func Xsqlite3_column_type(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { // ** Column names appropriate for EXPLAIN or EXPLAIN QUERY PLAN. // */ var _azExplainColNames8 = [12]uintptr{ - 0: __ccgo_ts + 5446, - 1: __ccgo_ts + 5451, - 2: __ccgo_ts + 5458, - 3: __ccgo_ts + 5461, - 4: __ccgo_ts + 5464, - 5: __ccgo_ts + 5467, - 6: __ccgo_ts + 5470, - 7: __ccgo_ts + 5473, - 8: __ccgo_ts + 5481, - 9: __ccgo_ts + 5484, - 10: __ccgo_ts + 5491, - 11: __ccgo_ts + 5499, + 0: __ccgo_ts + 5510, + 1: __ccgo_ts + 5515, + 2: __ccgo_ts + 5522, + 3: __ccgo_ts + 5525, + 4: __ccgo_ts + 5528, + 5: __ccgo_ts + 5531, + 6: __ccgo_ts + 5534, + 7: __ccgo_ts + 5537, + 8: __ccgo_ts + 5545, + 9: __ccgo_ts + 5548, + 10: __ccgo_ts + 5555, + 11: __ccgo_ts + 5563, } var _azExplainColNames16data = [60]Tu16{ 0: uint16('a'), @@ -68091,6 +68446,7 @@ func _columnName(tls *libc.TLS, pStmt uintptr, N int32, useUtf16 int32, useType ret = uintptr(0) } } + goto columnName_end columnName_end: ; Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -68200,14 +68556,14 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { var v2 bool _, _, _ = pVar, v1, v2 if _vdbeSafetyNotNull(tls, p) != 0 { - return _sqlite3MisuseError(tls, int32(91554)) + return _sqlite3MisuseError(tls, int32(92003)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(91558))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(92007))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5506, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(91562)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5570, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) + return _sqlite3MisuseError(tls, int32(92011)) } if i >= uint32((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -68781,7 +69137,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp /* Test that this call is being made from within an SQLITE_DELETE or ** SQLITE_UPDATE pre-update callback, and that iIdx is within range. */ if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_INSERT) { - rc = _sqlite3MisuseError(tls, int32(92098)) + rc = _sqlite3MisuseError(tls, int32(92547)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -68828,6 +69184,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } } + goto preupdate_old_out preupdate_old_out: ; _sqlite3Error(tls, db, rc) @@ -68911,7 +69268,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp rc = SQLITE_OK p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(92221)) + rc = _sqlite3MisuseError(tls, int32(92670)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -68979,6 +69336,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } *(*uintptr)(unsafe.Pointer(ppValue)) = pMem + goto preupdate_new_out preupdate_new_out: ; _sqlite3Error(tls, db, rc) @@ -69087,7 +69445,7 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr break } } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5546, int32(3)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5610, int32(3)) _ = libc.Int32FromInt32(0) Xsqlite3_str_append(tls, bp+8, zStart, int32(int64(zRawSql)-int64(zStart))) } @@ -69126,13 +69484,13 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr _ = libc.Int32FromInt32(0) pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(*(*int32)(unsafe.Pointer(bp))-int32(1))*56 if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Null) != 0 { - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1649, int32(4)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1663, int32(4)) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1404, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1423, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5067, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5131, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Str) != 0 { /* Number of bytes of the string text to include in output */ enc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc @@ -69147,29 +69505,29 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr pVar = bp + 40 } nOut = (*TMem)(unsafe.Pointer(pVar)).Fn - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5550, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5614, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) if int32(enc) != int32(SQLITE_UTF8) { _sqlite3VdbeMemRelease(tls, bp+40) } } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Zero) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5557, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5621, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) } else { /* Number of bytes of the blob to include in output */ _ = libc.Int32FromInt32(0) - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5570, int32(2)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5634, int32(2)) nOut1 = (*TMem)(unsafe.Pointer(pVar)).Fn i = 0 for { if !(i < nOut1) { break } - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5573, libc.VaList(bp+104, int32(*(*uint8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5637, libc.VaList(bp+104, int32(*(*uint8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) goto _3 _3: ; i++ } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5578, int32(1)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5642, int32(1)) } } } @@ -69784,7 +70142,7 @@ var _azTypes = [5]uintptr{ 1: __ccgo_ts + 1144, 2: __ccgo_ts + 1149, 3: __ccgo_ts + 1127, - 4: __ccgo_ts + 1649, + 4: __ccgo_ts + 1663, } // C documentation @@ -69798,7 +70156,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { defer tls.Free(976) var aCol, aMem, aOffset, aOp, aPermute, aRoot, apArg, apArg1, db, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pnErr, t1, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v240, v241, v242, v250, v251, v252, v253, v255, v263, v278, v279, v286, v288, v297, v298, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 uintptr var affinity uint8 - var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 + var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, savedAnalysisLimit, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 var colCacheCtr, iAddr, iMap, iPrior, idx, len11, n3, p22, p23, serialType, serial_type, v213, v214, v216, v221, v222 Tu32 var encoding, isWriteLock, mTrace, op, p5, resetSchemaOnFault, vtabOnConflict, v225 Tu8 var flags1, flags11, flags2, flags3, flags31, newType, nullFlag, type1, type2, typeMask, v190 Tu16 @@ -69855,7 +70213,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { var _ /* z at bp+688 */ uintptr var _ /* zErr at bp+632 */ uintptr var _ /* zErr at bp+792 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, savedAnalysisLimit, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 aOp = (*TVdbe)(unsafe.Pointer(p)).FaOp /* Copy of p->aOp */ pOp = aOp /* Current operation */ rc = SQLITE_OK /* Value to return */ @@ -70131,7 +70489,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto _109 case int32(OP_SeekEnd): goto _110 - case int32(OP_IfSmaller): + case int32(OP_IfSizeBetween): goto _111 case int32(OP_Sort): goto _112 @@ -70333,6 +70691,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { */ _2: ; /* jump */ + goto jump_to_p2_and_check_for_interrupt jump_to_p2_and_check_for_interrupt: ; pOp = aOp + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp2-int32(1))*24 @@ -70346,6 +70705,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** way for performance, to avoid having to run the interrupt and progress ** checks on every opcode. This helps sqlite3_step() to run about 1.5% ** faster according to "valgrind --tool=cachegrind" */ + goto check_for_interrupt check_for_interrupt: ; if libc.AtomicLoadNInt32(db+432, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0 { @@ -70426,7 +70786,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: EndCoroutine */ _5: - ; /* jump */ + ; /* jump0 */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -70439,6 +70799,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* Most jump operations do a goto to this spot in order to update ** the pOp pointer. */ + goto jump_to_p2 jump_to_p2: ; _ = libc.Int32FromInt32(0) /* There are never any jumps to instruction 0 */ @@ -70449,7 +70810,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** ** The instruction at the address in register P1 is a Yield. ** Jump to the P2 parameter of that Yield. - ** After the jump, register P1 becomes undefined. + ** After the jump, the value register P1 is left with a value + ** such that subsequent OP_Yields go back to the this same + ** OP_EndCoroutine instruction. ** ** See also: InitCoroutine */ @@ -70461,8 +70824,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pCaller = aOp + uintptr(*(*Ti64)(unsafe.Pointer(pIn1)))*24 _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) + *(*Ti64)(unsafe.Pointer(pIn1)) = int64(int32((int64(pOp)-int64((*TVdbe)(unsafe.Pointer(p)).FaOp))/24) - int32(1)) pOp = aOp + uintptr((*TVdbeOp)(unsafe.Pointer(pCaller)).Fp2-int32(1))*24 - (*TMem)(unsafe.Pointer(pIn1)).Fflags = uint16(MEM_Undefined) goto _187 /* Opcode: Yield P1 P2 * * * ** @@ -70561,15 +70924,15 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) if (*TVdbe)(unsafe.Pointer(p)).Frc != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+5614, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) + _sqlite3VdbeError(tls, p, __ccgo_ts+5678, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) if *(*uintptr)(unsafe.Pointer(pOp + 16)) != 0 { - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5635, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5699, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } } else { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } pcx = int32((int64(pOp) - int64(aOp)) / 24) - Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5642, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) + Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5706, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) } rc = _sqlite3VdbeHalt(tls, p) _ = libc.Int32FromInt32(0) @@ -70774,18 +71137,14 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } (*TMem)(unsafe.Pointer(pOut)).Fenc = encoding goto _187 - /* Opcode: Variable P1 P2 * P4 * - ** Synopsis: r[P2]=parameter(P1,P4) + /* Opcode: Variable P1 P2 * * * + ** Synopsis: r[P2]=parameter(P1) ** ** Transfer the values of bound parameter P1 into register P2 - ** - ** If the parameter is named, then its name appears in P4. - ** The P4 value is used by sqlite3_bind_parameter_name(). */ _19: ; /* Value being transferred */ _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1-int32(1))*56 if _sqlite3VdbeMemTooBig(tls, pVar) != 0 { goto too_big @@ -71087,6 +71446,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(int32(type1)&int32(type2)&int32(MEM_Int) != 0) { goto _200 } + goto int_math int_math: ; iA = *(*Ti64)(unsafe.Pointer(pIn1)) @@ -71139,6 +71499,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if int32(type1)&int32(type2)&int32(MEM_Int) != 0 { goto int_math } + goto fp_math fp_math: ; rA = _sqlite3VdbeRealValue(tls, pIn1) @@ -71178,6 +71539,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _201: ; goto _187 + goto arithmetic_result_is_null arithmetic_result_is_null: ; _sqlite3VdbeMemSetNull(tls, pOut) @@ -71319,7 +71681,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** raise an SQLITE_MISMATCH exception. */ _38: - ; /* jump, in1 */ + ; /* jump0, in1 */ pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 if int32((*TMem)(unsafe.Pointer(pIn1)).Fflags)&int32(MEM_Int) == 0 { _applyAffinity(tls, pIn1, uint8(SQLITE_AFF_NUMERIC), encoding) @@ -72090,6 +72452,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) pC3 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) p22 = uint32((*TOp)(unsafe.Pointer(pOp)).Fp2) + goto op_column_restart op_column_restart: ; _ = libc.Int32FromInt32(0) @@ -72229,6 +72592,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { zData = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaRow } /* Fill in pC->aType[i] and aOffset[i] values through the p2-th field. */ + goto op_column_read_header op_column_read_header: ; i1 = int32((*TVdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed) @@ -72371,16 +72735,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } } + goto op_column_out op_column_out: ; goto _187 + goto op_column_corrupt op_column_corrupt: ; if (*(*TOp)(unsafe.Pointer(aOp))).Fp3 > 0 { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(95863)) + rc = _sqlite3CorruptError(tls, int32(96311)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -72486,9 +72852,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } _ = libc.Int32FromInt32(0) goto _187 + goto vdbe_type_error vdbe_type_error: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5666, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) + _sqlite3VdbeError(tls, p, __ccgo_ts+5730, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(12)< 0 && p12 == int32(SAVEPOINT_RELEASE) { /* It is not possible to release (commit) a savepoint if there are ** active write statements. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5780, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5844, 0) rc = int32(SQLITE_BUSY) } else { /* Determine whether or not this is a transaction savepoint. If so, @@ -73121,7 +73488,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If this instruction implements a COMMIT and other VMs are writing ** return an error indicating that the other VMs must complete first. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5834, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5898, 0) rc = int32(SQLITE_BUSY) goto abort_due_to_error } else { @@ -73151,12 +73518,12 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto vdbe_return } else { if !(desiredAutoCommit != 0) { - v250 = __ccgo_ts + 5889 + v250 = __ccgo_ts + 5953 } else { if iRollback != 0 { - v251 = __ccgo_ts + 5937 + v251 = __ccgo_ts + 6001 } else { - v251 = __ccgo_ts + 5980 + v251 = __ccgo_ts + 6044 } v250 = v251 } @@ -73258,7 +73625,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** SQL statement was prepared. */ _sqlite3DbFree(tls, db, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg) - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6021) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6085) /* If the schema-cookie from the database file matches the cookie ** stored with the in-memory representation of the schema, do ** not reload the schema from the database file. @@ -73528,6 +73895,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** and report database corruption if they were not, but this check has ** since moved into the btree layer. */ (*TVdbeCursor)(unsafe.Pointer(pCur)).FisTable = libc.BoolUint8(int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) != -int32(8)) + goto open_cursor_set_hints open_cursor_set_hints: ; _ = libc.Int32FromInt32(0) @@ -73615,7 +73983,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fn = 0 - (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1648 + (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1662 } pCx1 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) if pCx1 != 0 && !(int32(TBool(*(*uint8)(unsafe.Pointer(pCx1 + 8))&0x8>>3)) != 0) && (*TOp)(unsafe.Pointer(pOp)).Fp2 <= int32((*TVdbeCursor)(unsafe.Pointer(pCx1)).FnField) { @@ -73731,7 +74099,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** is the only cursor opcode that works with a pseudo-table. ** ** P3 is the number of fields in the records that will be stored by - ** the pseudo-table. + ** the pseudo-table. If P2 is 0 or negative then the pseudo-cursor + ** will return NULL for every column. */ _83: ; @@ -73853,11 +74222,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: Found, NotFound, SeekGt, SeekGe, SeekLt */ _88: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _87: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _86: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _85: ; /* Only interested in == results */ _ = libc.Int32FromInt32(0) @@ -74020,6 +74389,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 112)) = _sqlite3BtreeEof(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48))) } } + goto seek_not_found seek_not_found: ; _ = libc.Int32FromInt32(0) @@ -74134,6 +74504,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(*(*int32)(unsafe.Pointer(bp + 160)) > 0 && int32((*TOp)(unsafe.Pointer(pOp)).Fp5) == 0) { goto _259 } + goto seekscan_search_fail seekscan_search_fail: ; /* Jump to SeekGE.P2, ending the loop */ @@ -74461,6 +74832,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) iKey1 = uint64(*(*Ti64)(unsafe.Pointer(pIn3))) + goto notExistsWithKey notExistsWithKey: ; pC10 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) @@ -74480,7 +74852,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp + 248)) != 0 { _ = libc.Int32FromInt32(0) if (*TOp)(unsafe.Pointer(pOp)).Fp2 == 0 { - rc = _sqlite3CorruptError(tls, int32(98111)) + rc = _sqlite3CorruptError(tls, int32(98565)) } else { goto jump_to_p2 } @@ -75155,14 +75527,20 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } goto _187 - /* Opcode: IfSmaller P1 P2 P3 * * + /* Opcode: IfSizeBetween P1 P2 P3 P4 * + ** + ** Let N be the approximate number of rows in the table or index + ** with cursor P1 and let X be 10*log2(N) if N is positive or -1 + ** if N is zero. ** - ** Estimate the number of rows in the table P1. Jump to P2 if that - ** estimate is less than approximately 2**(0.1*P3). + ** Jump to P2 if X is in between P3 and P4, inclusive. */ _111: ; _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) pC20 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) _ = libc.Int32FromInt32(0) pCrsr5 = *(*uintptr)(unsafe.Pointer(pC20 + 48)) @@ -75171,12 +75549,14 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { goto abort_due_to_error } - if *(*int32)(unsafe.Pointer(bp + 396)) == 0 { + if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { + sz = int64(-int32(1)) /* -Infinity encoding */ + } else { sz = _sqlite3BtreeRowCountEst(tls, pCrsr5) - if sz >= 0 && int32(_sqlite3LogEst(tls, uint64(sz))) < (*TOp)(unsafe.Pointer(pOp)).Fp3 { - *(*int32)(unsafe.Pointer(bp + 396)) = int32(1) - } + _ = libc.Int32FromInt32(0) + sz = int64(_sqlite3LogEst(tls, uint64(sz))) } + *(*int32)(unsafe.Pointer(bp + 396)) = libc.BoolInt32(sz >= int64((*TOp)(unsafe.Pointer(pOp)).Fp3) && sz <= int64((*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { goto jump_to_p2 } @@ -75332,6 +75712,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) rc = _sqlite3BtreeNext(tls, *(*uintptr)(unsafe.Pointer(pC22 + 48)), (*TOp)(unsafe.Pointer(pOp)).Fp3) + goto next_tail next_tail: ; (*TVdbeCursor)(unsafe.Pointer(pC22)).FcacheStatus = uint32(CACHE_STALE) @@ -75482,7 +75863,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } else { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 && !(_sqlite3WritableSchema(tls, db) != 0) { - rc = _sqlite3ReportError(tls, libc.Int32FromInt32(SQLITE_CORRUPT)|libc.Int32FromInt32(3)< int64(0x7fffffff) { - rc = _sqlite3CorruptError(tls, int32(99398)) + rc = _sqlite3CorruptError(tls, int32(99862)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -75828,11 +76209,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } *(*Ti64)(unsafe.Pointer(pOut)) = int64(*(*TPgno)(unsafe.Pointer(bp + 624))) goto _187 - /* Opcode: SqlExec * * * P4 * + /* Opcode: SqlExec P1 P2 * P4 * ** ** Run the SQL statement or statements specified in the P4 string. - ** Disable Auth and Trace callbacks while those statements are running if - ** P1 is true. + ** + ** The P1 parameter is a bitmask of options: + ** + ** 0x0001 Disable Auth and Trace callbacks while the statements + ** in P4 are running. + ** + ** 0x0002 Set db->nAnalysisLimit to P2 while the statements in + ** P4 are running. + ** */ _132: ; @@ -75840,16 +76228,21 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*uintptr)(unsafe.Pointer(bp + 632)) = uintptr(0) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth mTrace = (*Tsqlite3)(unsafe.Pointer(db)).FmTrace - if (*TOp)(unsafe.Pointer(pOp)).Fp1 != 0 { + savedAnalysisLimit = (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0001) != 0 { (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(0) } + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0002) != 0 { + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = (*TOp)(unsafe.Pointer(pOp)).Fp2 + } rc = Xsqlite3_exec(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16)), uintptr(0), uintptr(0), bp+632) (*Tsqlite3)(unsafe.Pointer(db)).FnSqlExec-- (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = mTrace + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = savedAnalysisLimit if *(*uintptr)(unsafe.Pointer(bp + 632)) != 0 || rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 632))) if rc == int32(SQLITE_NOMEM) { goto no_mem @@ -75882,13 +76275,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_SchemaChange) libc.SetBitFieldPtr16Uint32(p+200, libc.Uint32FromInt32(0), 0, 0x3) } else { - zSchema = __ccgo_ts + 6066 + zSchema = __ccgo_ts + 6130 (*(*TInitData)(unsafe.Pointer(bp + 640))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 640))).FiDb = iDb3 (*(*TInitData)(unsafe.Pointer(bp + 640))).FpzErrMsg = p + 168 (*(*TInitData)(unsafe.Pointer(bp + 640))).FmInitFlags = uint32(0) (*(*TInitData)(unsafe.Pointer(bp + 640))).FmxPage = _sqlite3BtreeLastPage(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6080, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6144, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -75905,7 +76298,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* The OP_ParseSchema opcode with a non-NULL P4 argument should parse ** at least one SQL statement. Any less than that indicates that ** the sqlite_schema table is corrupt. */ - rc = _sqlite3CorruptError(tls, int32(99678)) + rc = _sqlite3CorruptError(tls, int32(100155)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -75972,11 +76365,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* Opcode: IntegrityCk P1 P2 P3 P4 P5 ** ** Do an analysis of the currently open database. Store in - ** register P1 the text of an error message describing any problems. - ** If no problems are found, store a NULL in register P1. + ** register (P1+1) the text of an error message describing any problems. + ** If no problems are found, store a NULL in register (P1+1). ** - ** The register P3 contains one less than the maximum number of allowed errors. - ** At most reg(P3) errors will be reported. + ** The register (P1) contains one less than the maximum number of allowed + ** errors. At most reg(P1) errors will be reported. ** In other words, the analysis stops as soon as reg(P1) errors are ** seen. Reg(P1) is updated with the number of errors remaining. ** @@ -75991,18 +76384,20 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _138: ; /* Register keeping track of errors remaining */ _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) nRoot = (*TOp)(unsafe.Pointer(pOp)).Fp2 aRoot = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 _ = libc.Int32FromInt32(0) + pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 _ = libc.Int32FromInt32(0) - pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 _ = libc.Int32FromInt32(0) + pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1+int32(1))*56 _ = libc.Int32FromInt32(0) - rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) + _ = libc.Int32FromInt32(0) + rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, aMem+uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) _sqlite3VdbeMemSetNull(tls, pIn1) if *(*int32)(unsafe.Pointer(bp + 680)) == 0 { _ = libc.Int32FromInt32(0) @@ -76116,7 +76511,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** P1 contains the address of the memory cell that contains the first memory ** cell in an array of values used as arguments to the sub-program. P2 ** contains the address to jump to if the sub-program throws an IGNORE - ** exception using the RAISE() function. Register P3 contains the address + ** exception using the RAISE() function. P2 might be zero, if there is + ** no possibility that an IGNORE exception will be raised. + ** Register P3 contains the address ** of a memory cell in this (the parent) VM that is used to allocate the ** memory required by the sub-vdbe at runtime. ** @@ -76158,7 +76555,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } if (*TVdbe)(unsafe.Pointer(p)).FnFrame >= *(*int32)(unsafe.Pointer(db + 136 + 10*4)) { rc = int32(SQLITE_ERROR) - _sqlite3VdbeError(tls, p, __ccgo_ts+6123, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6187, 0) goto abort_due_to_error } /* Register pRt is used to store the memory required to save the state @@ -76542,7 +76939,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* IMP: R-24505-23230 */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError } if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FskipFlag != 0 { @@ -76604,7 +77001,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3VdbeMemFinalize(tls, pMem3, *(*uintptr)(unsafe.Pointer(pOp + 16))) } if rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) goto abort_due_to_error } _sqlite3VdbeChangeEncoding(tls, pMem3, int32(encoding)) @@ -76689,11 +77086,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeRead > int32(1) { rc = int32(SQLITE_ERROR) if eNew == int32(PAGER_JOURNALMODE_WAL) { - v286 = __ccgo_ts + 6160 + v286 = __ccgo_ts + 6224 } else { - v286 = __ccgo_ts + 6165 + v286 = __ccgo_ts + 6229 } - _sqlite3VdbeError(tls, p, __ccgo_ts+6172, libc.VaList(bp+944, v286)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6236, libc.VaList(bp+944, v286)) goto abort_due_to_error } else { if eOld == int32(PAGER_JOURNALMODE_WAL) { @@ -76861,7 +77258,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { if rc&int32(0xFF) == int32(SQLITE_LOCKED) { z1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - _sqlite3VdbeError(tls, p, __ccgo_ts+6224, libc.VaList(bp+944, z1)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6288, libc.VaList(bp+944, z1)) } goto abort_due_to_error } @@ -77039,7 +77436,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TValueList)(unsafe.Pointer(pRhs)).FpOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 pOut = _out2Prerelease(tls, p, pOp) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6253, __ccgo_fp(_sqlite3VdbeValueListFree)) + _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6317, __ccgo_fp(_sqlite3VdbeValueListFree)) goto _187 /* Opcode: VFilter P1 P2 P3 P4 * ** Synopsis: iplan=r[P3] zplan='P4' @@ -77144,7 +77541,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_module)(unsafe.Pointer(pModule4)).FxColumn})))(tls, *(*uintptr)(unsafe.Pointer(pCur5 + 48)), bp+800, (*TOp)(unsafe.Pointer(pOp)).Fp2) _sqlite3VtabImportErrmsg(tls, p, pVtab4) if (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) rc = (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError } _sqlite3VdbeChangeEncoding(tls, pDest2, int32(encoding)) @@ -77413,7 +77810,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If the function returned an error, throw an exception */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3795, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3859, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError } _sqlite3VdbeDeleteAuxData(tls, db, p+296, (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FiOp, (*TOp)(unsafe.Pointer(pOp)).Fp1) @@ -77575,7 +77972,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { Xsqlite3_free(tls, z2) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeExec > int32(1) { - z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6263, libc.VaList(bp+944, zTrace)) + z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6327, libc.VaList(bp+944, zTrace)) (*(*func(*libc.TLS, Tu32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*Tsqlite3)(unsafe.Pointer(db)).Ftrace))})))(tls, uint32(SQLITE_TRACE_STMT), (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg, p, z3) _sqlite3DbFree(tls, db, z3) } else { @@ -77642,22 +78039,23 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If we reach this point, it means that execution is finished with ** an error of some kind. */ + goto abort_due_to_error abort_due_to_error: ; if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)<= nProgressLimit && (*Tsqlite3)(unsafe.Pointer(db)).FxProgress != uintptr(0) { @@ -77693,22 +78092,25 @@ vdbe_return: /* Jump to here if a string or blob larger than SQLITE_MAX_LENGTH ** is encountered. */ + goto too_big too_big: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5423, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5487, 0) rc = int32(SQLITE_TOOBIG) goto abort_due_to_error /* Jump to here if a malloc() fails. */ + goto no_mem no_mem: ; _sqlite3OomFault(tls, db) - _sqlite3VdbeError(tls, p, __ccgo_ts+1618, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+1632, 0) rc = int32(SQLITE_NOMEM) goto abort_due_to_error /* Jump to here if the sqlite3_interrupt() API sets the interrupt ** flag. */ + goto abort_due_to_interrupt abort_due_to_interrupt: ; _ = libc.Int32FromInt32(0) @@ -77718,10 +78120,10 @@ abort_due_to_interrupt: } var _azType = [4]uintptr{ - 0: __ccgo_ts + 5580, - 1: __ccgo_ts + 5589, - 2: __ccgo_ts + 5596, - 3: __ccgo_ts + 5602, + 0: __ccgo_ts + 5644, + 1: __ccgo_ts + 5653, + 2: __ccgo_ts + 5660, + 3: __ccgo_ts + 5666, } var _and_logic = [9]uint8{ @@ -77875,16 +78277,16 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr type1 = v1 if type1 < uint32(12) { if type1 == uint32(0) { - v2 = __ccgo_ts + 1634 + v2 = __ccgo_ts + 1648 } else { if type1 == uint32(7) { - v3 = __ccgo_ts + 6301 + v3 = __ccgo_ts + 6365 } else { - v3 = __ccgo_ts + 6306 + v3 = __ccgo_ts + 6370 } v2 = v3 } - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6314, libc.VaList(bp+8, v2)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6378, libc.VaList(bp+8, v2)) rc = int32(SQLITE_ERROR) Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) @@ -77902,10 +78304,10 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr rc = Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) if rc == SQLITE_OK { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6343, libc.VaList(bp+8, iRow)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6407, libc.VaList(bp+8, iRow)) rc = int32(SQLITE_ERROR) } else { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) } } } @@ -77947,15 +78349,15 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, pTab = _sqlite3LocateTable(tls, bp+8, uint32(0), zTable, zDb) if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6363, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6427, libc.VaList(bp+440, zTable)) } if pTab != 0 && !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6393, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6457, libc.VaList(bp+440, zTable)) } if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6429, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6493, libc.VaList(bp+440, zTable)) } if !(pTab != 0) { if (*(*TParse)(unsafe.Pointer(bp + 8))).FzErrMsg != 0 { @@ -77985,7 +78387,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6450, libc.VaList(bp+440, zColumn)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6514, libc.VaList(bp+440, zColumn)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -78012,7 +78414,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, break } if (*(*TsColMap)(unsafe.Pointer(pFKey + 64 + uintptr(j)*16))).FiFrom == iCol { - zFault = __ccgo_ts + 6471 + zFault = __ccgo_ts + 6535 } goto _3 _3: @@ -78037,7 +78439,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } /* FIXME: Be smarter about indexes that use expressions */ if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == iCol || int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == -int32(2) { - zFault = __ccgo_ts + 6483 + zFault = __ccgo_ts + 6547 } goto _5 _5: @@ -78051,7 +78453,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if zFault != 0 { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6491, libc.VaList(bp+440, zFault)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6555, libc.VaList(bp+440, zFault)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -78114,6 +78516,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } _sqlite3ParseObjectReset(tls, bp+8) } + goto blob_open_out blob_open_out: ; if rc == SQLITE_OK && int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { @@ -78125,7 +78528,7 @@ blob_open_out: _sqlite3DbFree(tls, db, pBlob) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v7 = __ccgo_ts + 3795 + v7 = __ccgo_ts + 3859 } else { v7 = libc.UintptrFromInt32(0) } @@ -78215,7 +78618,7 @@ func _blobReadWrite(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset in _, _, _, _, _ = db, iKey, p, rc, v p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102190)) + return _sqlite3MisuseError(tls, int32(102671)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -78317,7 +78720,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r _, _, _, _ = db, p, rc, v1 p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102290)) + return _sqlite3MisuseError(tls, int32(102771)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -78331,7 +78734,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r rc = _blobSeekToRow(tls, p, iRow, bp) if rc != SQLITE_OK { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v1 = __ccgo_ts + 3795 + v1 = __ccgo_ts + 3859 } else { v1 = libc.UintptrFromInt32(0) } @@ -82548,25 +82951,25 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema _ = zLegacy _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6525, int32(7)) != 0 { + if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6589, int32(7)) != 0 { return 0 } zLegacy = (*TTable)(unsafe.Pointer(pTab)).FzName - if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6533+7) == 0 { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6552+7) == 0 { + if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6597+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6616+7) == 0 { return int32(1) } if pSchema == uintptr(0) { return 0 } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6066+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6130+7) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6571+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6635+7) == 0 { return int32(1) } } else { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6571+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6635+7) == 0 { return int32(1) } } @@ -82602,28 +83005,29 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema // ** If the name cannot be resolved unambiguously, leave an error message // ** in pParse and return WRC_Abort. Return WRC_Prune on success. // */ -func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol uintptr, pNC uintptr, pExpr uintptr) (r int32) { +func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRight uintptr, pNC uintptr, pExpr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var cnt, cntTab, eNewExprOp, hit, i, iCol, j, nSubquery, op, v5 int32 - var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10 uintptr + var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10 uintptr var hCol, hCol1 Tu8 var v7, v8 uint32 var _ /* bRowid at bp+8 */ int32 var _ /* pFJMatch at bp+0 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10, v5, v7, v8 /* Loop counters */ - cnt = 0 /* Number of matching column names */ - cntTab = 0 /* Number of potential "rowid" matches */ - nSubquery = 0 /* How many levels of subquery */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ - pMatch = uintptr(0) /* The matching pSrcList item */ - pTopNC = pNC /* First namecontext in the list */ - pSchema = uintptr(0) /* Schema of the expression */ - eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ - pTab = uintptr(0) /* A column of pTab */ - *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ - _ = libc.Int32FromInt32(0) /* the name context cannot be NULL. */ - _ = libc.Int32FromInt32(0) /* The Z in X.Y.Z cannot be NULL */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10, v5, v7, v8 /* Loop counters */ + cnt = 0 /* Number of matching column names */ + cntTab = 0 /* Number of potential "rowid" matches */ + nSubquery = 0 /* How many levels of subquery */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ + pMatch = uintptr(0) /* The matching pSrcList item */ + pTopNC = pNC /* First namecontext in the list */ + pSchema = uintptr(0) /* Schema of the expression */ + eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ + pTab = uintptr(0) /* A column of pTab */ + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + zCol = *(*uintptr)(unsafe.Pointer(pRight + 8)) + _ = libc.Int32FromInt32(0) /* the name context cannot be NULL. */ + _ = libc.Int32FromInt32(0) /* The Z in X.Y.Z cannot be NULL */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) /* Initialize the node to no-match */ @@ -82655,7 +83059,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ; i++ } - if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6585, zDb) == 0 { + if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6649, zDb) == 0 { /* This branch is taken when the main database has been renamed ** using SQLITE_DBCONFIG_MAINDBNAME. */ pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema @@ -82757,7 +83161,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TTable)(unsafe.Pointer(pTab)).FpSchema != pSchema { goto _2 } - if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6590) != 0 { + if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6654) != 0 { goto _2 } } @@ -82872,16 +83276,16 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol op = int32((*TParse)(unsafe.Pointer(pParse)).FeTriggerOp) _ = libc.Int32FromInt32(0) if (*TParse)(unsafe.Pointer(pParse)).FbReturning != 0 { - if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0) { + if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0 || _isValidSchemaTableName(tls, zTab, (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab, uintptr(0)) != 0) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = libc.BoolInt32(op != int32(TK_DELETE)) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } } else { - if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6592, zTab) == 0 { + if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6656, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(1) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } else { - if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6596, zTab) == 0 { + if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6660, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = 0 pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } @@ -82890,7 +83294,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UUpsert) != 0 && zTab != uintptr(0) { pUpsert = *(*uintptr)(unsafe.Pointer(pNC + 16)) - if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6600, zTab) == 0 { + if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6664, zTab) == 0 { pTab = (*(*TSrcItem)(unsafe.Pointer((*TUpsert)(unsafe.Pointer(pUpsert)).FpUpsertSrc + 8))).FpTab (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(EXCLUDED_TABLE_NUMBER) } @@ -83012,15 +83416,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol _ = libc.Int32FromInt32(0) pOrig = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(j)*32))).FpExpr if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 && (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6609, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6673, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Win)) != uint32(0) && ((*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 || pNC != pTopNC) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6640, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6704, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if _sqlite3ExprVectorSize(tls, pOrig) != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6677, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6741, 0) return int32(WRC_Abort) } _resolveAlias(tls, pParse, pEList, j, pExpr, nSubquery) @@ -83074,7 +83478,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** a huge amount of legacy SQL that uses it. So for now, we just ** issue a warning. */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6695, libc.VaList(bp+24, zCol)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6759, libc.VaList(bp+24, zCol)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_STRING) libc.Xmemset(tls, pExpr+64, 0, uint64(8)) return int32(WRC_Prune) @@ -83105,7 +83509,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } _extendFJMatch(tls, pParse, bp, pMatch, (*TExpr)(unsafe.Pointer(pExpr)).FiColumn) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_FUNCTION) - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6730 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6794 *(*uintptr)(unsafe.Pointer(pExpr + 32)) = *(*uintptr)(unsafe.Pointer(bp)) cnt = int32(1) goto lookupname_end @@ -83115,18 +83519,22 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } } if cnt == 0 { - v10 = __ccgo_ts + 6739 + v10 = __ccgo_ts + 6803 } else { - v10 = __ccgo_ts + 6754 + v10 = __ccgo_ts + 6818 } zErr = v10 if zDb != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6776, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6840, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) } else { if zTab != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6789, libc.VaList(bp+24, zErr, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6853, libc.VaList(bp+24, zErr, zTab, zCol)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6799, libc.VaList(bp+24, zErr, zCol)) + if cnt == 0 && (*TExpr)(unsafe.Pointer(pRight)).Fflags&uint32(libc.Int32FromInt32(EP_DblQuoted)) != uint32(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6863, libc.VaList(bp+24, zErr, zCol)) + } else { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6924, libc.VaList(bp+24, zErr, zCol)) + } } } _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -83157,10 +83565,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** If a generated column is referenced, set bits for every column ** of the table. */ - if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 && cnt == int32(1) && pMatch != uintptr(0) { - *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + if pMatch != 0 { + if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { + *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + } else { + libc.SetBitFieldPtr16Uint32(pMatch+60+4, libc.Uint32FromInt32(1), 14, 0x4000) + } } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(eNewExprOp) + goto lookupname_end lookupname_end: ; if cnt == int32(1) { @@ -83253,19 +83666,19 @@ func _notValidImpl(tls *libc.TLS, pParse uintptr, pNC uintptr, zMsg uintptr, pEx defer tls.Free(32) var zIn uintptr _ = zIn - zIn = __ccgo_ts + 6806 + zIn = __ccgo_ts + 6931 if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IdxExpr) != 0 { - zIn = __ccgo_ts + 6834 + zIn = __ccgo_ts + 6959 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IsCheck) != 0 { - zIn = __ccgo_ts + 6852 + zIn = __ccgo_ts + 6977 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_GenCol) != 0 { - zIn = __ccgo_ts + 6870 + zIn = __ccgo_ts + 6995 } } } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6888, libc.VaList(bp+8, zMsg, zIn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7013, libc.VaList(bp+8, zMsg, zIn)) if pExpr != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } @@ -83315,8 +83728,8 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { var anRef [8]int32 var auth, i, is_agg, n, nLeft, nRef, nRight, no_such_func, rc, savedAllowFlags, wrong_num_args, v12, v4, v6, v7 int32 var enc Tu8 - var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zColumn, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zColumn, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 + var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 pNC = *(*uintptr)(unsafe.Pointer(pWalker + 40)) _ = libc.Int32FromInt32(0) pParse = (*TNameContext)(unsafe.Pointer(pNC)).FpParse @@ -83441,12 +83854,12 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { zDb = uintptr(0) zTable = uintptr(0) _ = libc.Int32FromInt32(0) - zColumn = *(*uintptr)(unsafe.Pointer(pExpr + 8)) + pRight = pExpr } else { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+6908, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7033, uintptr(0), pExpr) } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_ID) { @@ -83460,14 +83873,13 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { } _ = libc.Int32FromInt32(0) zTable = *(*uintptr)(unsafe.Pointer(pLeft + 8)) - zColumn = *(*uintptr)(unsafe.Pointer(pRight + 8)) _ = libc.Int32FromInt32(0) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameTokenRemap(tls, pParse, pExpr, pRight) _sqlite3RenameTokenRemap(tls, pParse, pExpr+64, pLeft) } } - return _lookupName(tls, pParse, zDb, zTable, zColumn, pNC, pExpr) + return _lookupName(tls, pParse, zDb, zTable, pRight, pNC, pExpr) /* Resolve function names */ fallthrough @@ -83508,7 +83920,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if n == int32(2) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = _exprProbability(tls, (*(*TExprList_item)(unsafe.Pointer(pList + 8 + 1*32))).FpExpr) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6925, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7050, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } } else { @@ -83532,7 +83944,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { auth = _sqlite3AuthCheck(tls, pParse, int32(SQLITE_FUNCTION), uintptr(0), (*TFuncDef)(unsafe.Pointer(pDef)).FzName, uintptr(0)) if auth != SQLITE_OK { if auth == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6989, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7114, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) @@ -83554,7 +83966,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { ** all this. */ _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7025, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7150, uintptr(0), pExpr) } } else { _ = libc.Int32FromInt32(0) /* Must fit in 8 bits */ @@ -83579,29 +83991,29 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if 0 == libc.BoolInt32(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME)) { _ = libc.Int32FromInt32(0) if pDef != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FxValue == uintptr(0) && pWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7053, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7178, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 || is_agg != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 && !(pWin != 0) || is_agg != 0 && pWin != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 { if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 || pWin != 0 { - zType = __ccgo_ts + 7096 + zType = __ccgo_ts + 7221 } else { - zType = __ccgo_ts + 7103 + zType = __ccgo_ts + 7228 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7113, libc.VaList(bp+8, zType, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7238, libc.VaList(bp+8, zType, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ is_agg = 0 } else { if no_such_func != 0 && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7141, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7266, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if wrong_num_args != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7163, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7288, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7207, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7332, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { @@ -83625,7 +84037,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { *(*int32)(unsafe.Pointer(pNC + 40)) &= ^(libc.Int32FromInt32(NC_AllowWin) | v7) } } else { - if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { is_agg = int32(1) } } @@ -83691,21 +84103,23 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { case int32(TK_IN): if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) { nRef = (*TNameContext)(unsafe.Pointer(pNC)).FnRef + _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_SelfRef) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7255, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7380, pExpr, pExpr) } else { _sqlite3WalkSelect(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 32))) } _ = libc.Int32FromInt32(0) if nRef != (*TNameContext)(unsafe.Pointer(pNC)).FnRef { *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 4)) |= uint32(SF_Correlated) } *(*int32)(unsafe.Pointer(pNC + 40)) |= int32(NC_Subquery) } case int32(TK_VARIABLE): _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IsCheck)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7266, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7391, pExpr, pExpr) } case int32(TK_IS): fallthrough @@ -83755,7 +84169,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { nRight = _sqlite3ExprVectorSize(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight) } if nLeft != nRight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6677, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6741, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } break @@ -83883,7 +84297,7 @@ func _resolveOrderByTermToExprList(tls *libc.TLS, pParse uintptr, pSelect uintpt func _resolveOutOfRangeError(tls *libc.TLS, pParse uintptr, zType uintptr, i int32, mx int32, pError uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7277, libc.VaList(bp+8, i, zType, mx)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7402, libc.VaList(bp+8, i, zType, mx)) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pError) } @@ -83918,7 +84332,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7333, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7458, 0) return int32(1) } i = 0 @@ -83957,7 +84371,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } if _sqlite3ExprIsInteger(tls, pE, bp) != 0 { if *(*int32)(unsafe.Pointer(bp)) <= 0 || *(*int32)(unsafe.Pointer(bp)) > (*TExprList)(unsafe.Pointer(pEList)).FnExpr { - _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7367, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) + _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7492, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) return int32(1) } } else { @@ -84030,7 +84444,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r break } if int32(uint32(*(*uint16)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32 + 16 + 4))&0x4>>2)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7373, libc.VaList(bp+16, i+int32(1))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7498, libc.VaList(bp+16, i+int32(1))) return int32(1) } goto _3 @@ -84064,7 +84478,7 @@ func _sqlite3ResolveOrderGroupBy(tls *libc.TLS, pParse uintptr, pSelect uintptr, return 0 } if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7434, libc.VaList(bp+8, zType)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7559, libc.VaList(bp+8, zType)) return int32(1) } pEList = (*TSelect)(unsafe.Pointer(pSelect)).FpEList @@ -84316,6 +84730,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } pItem = (*TSelect)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*104 + _ = libc.Int32FromInt32(0) /* Test of tag-20240424-1*/ if (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FselFlags&uint32(SF_Resolved) == uint32(0) { if pOuterNC != 0 { v3 = (*TNameContext)(unsafe.Pointer(pOuterNC)).FnRef @@ -84388,7 +84803,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { (*(*TNameContext)(unsafe.Pointer(bp))).FncFlags |= int32(NC_UEList) if (*TSelect)(unsafe.Pointer(p)).FpHaving != 0 { if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Aggregate) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7465, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7590, 0) return int32(WRC_Abort) } if _sqlite3ResolveExprNames(tls, bp, (*TSelect)(unsafe.Pointer(p)).FpHaving) != 0 { @@ -84455,7 +84870,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** is not detected until much later, and so we need to go ahead and ** resolve those symbols on the incorrect ORDER BY for consistency. */ - if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7367) != 0 { + if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7492) != 0 { return int32(WRC_Abort) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -84466,7 +84881,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** the GROUP BY clause does not contain aggregate functions. */ if pGroupBy != 0 { - if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7504) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { + if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7629) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(WRC_Abort) } i = 0 @@ -84476,7 +84891,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } if (*TExpr)(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(pItem2)).FpExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7510, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7635, 0) return int32(WRC_Abort) } goto _6 @@ -85507,7 +85922,7 @@ func _codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32 return } if nLeft != _sqlite3ExprVectorSize(tls, pRight) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6677, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6741, 0) return } _ = libc.Int32FromInt32(0) @@ -85592,7 +86007,7 @@ func _sqlite3ExprCheckHeight(tls *libc.TLS, pParse uintptr, nHeight int32) (r in rc = SQLITE_OK mxHeight = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 3*4)) if nHeight > mxHeight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7569, libc.VaList(bp+8, mxHeight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7694, libc.VaList(bp+8, mxHeight)) rc = int32(SQLITE_ERROR) } return rc @@ -85758,11 +86173,12 @@ func _sqlite3ExprSetErrorOffset(tls *libc.TLS, pExpr uintptr, iOfst int32) { // ** appear to be quoted. If the quotes were of the form "..." (double-quotes) // ** then the EP_DblQuoted flag is set on the expression node. // ** -// ** Special case: If op==TK_INTEGER and pToken points to a string that -// ** can be translated into a 32-bit integer, then the token is not -// ** stored in u.zToken. Instead, the integer values is written -// ** into u.iValue and the EP_IntValue flag is set. No extra storage +// ** Special case (tag-20240227-a): If op==TK_INTEGER and pToken points to +// ** a string that can be translated into a 32-bit integer, then the token is +// ** not stored in u.zToken. Instead, the integer values is written +// ** into u.iValue and the EP_IntValue flag is set. No extra storage // ** is allocated to hold the integer text and the dequote flag is ignored. +// ** See also tag-20240227-b. // */ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequote int32) (r uintptr) { bp := tls.Alloc(16) @@ -85776,7 +86192,7 @@ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequ _ = libc.Int32FromInt32(0) if pToken != 0 { if op != int32(TK_INTEGER) || (*TToken)(unsafe.Pointer(pToken)).Fz == uintptr(0) || _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pToken)).Fz, bp) == 0 { - nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) + nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) /* tag-20240227-a */ _ = libc.Int32FromInt32(0) } } @@ -85945,11 +86361,11 @@ func _sqlite3ExprListToValues(tls *libc.TLS, pParse uintptr, nElem int32, pEList } if nExprElem != nElem { if nExprElem > int32(1) { - v2 = __ccgo_ts + 7617 + v2 = __ccgo_ts + 7742 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7619, libc.VaList(bp+8, nExprElem, v2, nElem)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7744, libc.VaList(bp+8, nExprElem, v2, nElem)) break } _ = libc.Int32FromInt32(0) @@ -85999,7 +86415,7 @@ func _sqlite3ExprAnd(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintpt if f&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_InnerON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { _sqlite3ExprDeferredDelete(tls, pParse, pLeft) _sqlite3ExprDeferredDelete(tls, pParse, pRight) - return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1722) + return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1782) } else { return _sqlite3PExpr(tls, pParse, int32(TK_AND), pLeft, pRight) } @@ -86029,7 +86445,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pNew + 52)) = int32(int64((*TToken)(unsafe.Pointer(pToken)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) if pList != 0 && (*TExprList)(unsafe.Pointer(pList)).FnExpr > *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 6*4)) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7663, libc.VaList(bp+8, pToken)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7788, libc.VaList(bp+8, pToken)) } *(*uintptr)(unsafe.Pointer(pNew + 32)) = pList *(*Tu32)(unsafe.Pointer(pNew + 4)) |= uint32(libc.Int32FromInt32(EP_HasFunc)) @@ -86050,7 +86466,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u func _sqlite3ExprOrderByAggregateError(tls *libc.TLS, pParse uintptr, p uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7697, libc.VaList(bp+8, p)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7822, libc.VaList(bp+8, p)) } // C documentation @@ -86129,7 +86545,7 @@ func _sqlite3ExprFunctionUsable(tls *libc.TLS, pParse uintptr, pExpr uintptr, pD ** SQLITE_DBCONFIG_TRUSTED_SCHEMA is off (meaning ** that the schema is possibly tainted). */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7747, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7872, libc.VaList(bp+8, pExpr)) } } } @@ -86186,7 +86602,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n bOk = libc.BoolInt32(0 == _sqlite3Atoi64(tls, z+1, bp, int32(n-uint32(1)), uint8(SQLITE_UTF8))) } if bOk == 0 || *(*Ti64)(unsafe.Pointer(bp)) < int64(1) || *(*Ti64)(unsafe.Pointer(bp)) > int64(*(*int32)(unsafe.Pointer(db + 136 + 9*4))) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7767, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7892, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) return } @@ -86219,7 +86635,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n } (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = x if int32(x) > *(*int32)(unsafe.Pointer(db + 136 + 9*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7810, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7935, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } } @@ -86230,8 +86646,13 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n // ** Recursively delete an expression tree. // */ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { + var pLeft uintptr + _ = pLeft _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) + goto exprDeleteRestart +exprDeleteRestart: + ; _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -86239,9 +86660,6 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)|libc.Int32FromInt32(EP_Leaf)) != libc.Uint32FromInt32(0)) { /* The Expr.x union is never used at the same time as Expr.pRight */ _ = libc.Int32FromInt32(0) - if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { - _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpLeft) - } if (*TExpr)(unsafe.Pointer(p)).FpRight != 0 { _ = libc.Int32FromInt32(0) _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpRight) @@ -86256,6 +86674,17 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { } } } + if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { + pLeft = (*TExpr)(unsafe.Pointer(p)).FpLeft + if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) && !((*TExpr)(unsafe.Pointer(pLeft)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { + /* Avoid unnecessary recursion on unary operators */ + _sqlite3DbNNFreeNN(tls, db, p) + p = pLeft + goto exprDeleteRestart + } else { + _sqlite3ExprDeleteNN(tls, db, pLeft) + } + } } if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { _sqlite3DbNNFreeNN(tls, db, p) @@ -86302,11 +86731,11 @@ func _sqlite3ClearOnOrUsing(tls *libc.TLS, db uintptr, p uintptr) { // ** // ** The pExpr might be deleted immediately on an OOM error. // ** -// ** The deferred delete is (currently) implemented by adding the -// ** pExpr to the pParse->pConstExpr list with a register number of 0. +// ** Return 0 if the delete was successfully deferred. Return non-zero +// ** if the delete happened immediately because of an OOM. // */ -func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) { - _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr) +func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + return libc.BoolInt32(uintptr(0) == _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr)) } // C documentation @@ -86825,16 +87254,20 @@ func _sqlite3SrcListDup(tls *libc.TLS, db uintptr, p uintptr, flags int32) (r ui (*TSrcItem)(unsafe.Pointer(pNewItem)).FiCursor = (*TSrcItem)(unsafe.Pointer(pOldItem)).FiCursor (*TSrcItem)(unsafe.Pointer(pNewItem)).FaddrFillSub = (*TSrcItem)(unsafe.Pointer(pOldItem)).FaddrFillSub (*TSrcItem)(unsafe.Pointer(pNewItem)).FregReturn = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregReturn + (*TSrcItem)(unsafe.Pointer(pNewItem)).FregResult = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregResult if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x2>>1)) != 0 { *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3DbStrDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88))) + } else { + if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { + *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) + } else { + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pNewItem)).Fu1)) = *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pOldItem)).Fu1)) + } } (*TSrcItem)(unsafe.Pointer(pNewItem)).Fu2 = (*TSrcItem)(unsafe.Pointer(pOldItem)).Fu2 if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x100>>8)) != 0 { (*TCteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNewItem + 96)))).FnUse++ } - if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { - *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) - } v4 = (*TSrcItem)(unsafe.Pointer(pOldItem)).FpTab (*TSrcItem)(unsafe.Pointer(pNewItem)).FpTab = v4 pTab = v4 @@ -87100,7 +87533,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, n = v2 } if v3 && (*TIdList)(unsafe.Pointer(pColumns)).FnId != v2 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7833, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7958, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) goto vector_append_error } i = 0 @@ -87136,6 +87569,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, ** the RHS and LHS sizes match during code generation. */ (*TExpr)(unsafe.Pointer(pFirst)).FiTable = (*TIdList)(unsafe.Pointer(pColumns)).FnId } + goto vector_append_error vector_append_error: ; _sqlite3ExprUnmapAndDelete(tls, pParse, pExpr) @@ -87244,7 +87678,7 @@ func _sqlite3ExprListCheckLength(tls *libc.TLS, pParse uintptr, pEList uintptr, _ = mx mx = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 2*4)) if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr > mx { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7863, libc.VaList(bp+8, zObject)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7988, libc.VaList(bp+8, zObject)) } } @@ -87346,10 +87780,10 @@ func _sqlite3SelectWalkFail(tls *libc.TLS, pWalker uintptr, NotUsed uintptr) (r // ** anything else 0 // */ func _sqlite3IsTrueOrFalse(tls *libc.TLS, zIn uintptr) (r Tu32) { - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7886) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8011) == 0 { return uint32(EP_IsTrue) } - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7891) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8016) == 0 { return uint32(EP_IsFalse) } return uint32(0) @@ -87436,6 +87870,52 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { return pExpr } +// C documentation +// +// /* +// ** pExpr is a TK_FUNCTION node. Try to determine whether or not the +// ** function is a constant function. A function is constant if all of +// ** the following are true: +// ** +// ** (1) It is a scalar function (not an aggregate or window function) +// ** (2) It has either the SQLITE_FUNC_CONSTANT or SQLITE_FUNC_SLOCHNG +// ** property. +// ** (3) All of its arguments are constants +// ** +// ** This routine sets pWalker->eCode to 0 if pExpr is not a constant. +// ** It makes no changes to pWalker->eCode if pExpr is constant. In +// ** every case, it returns WRC_Abort. +// ** +// ** Called as a service subroutine from exprNodeIsConstant(). +// */ +func _exprNodeIsConstantFunction(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef, pList, v1 uintptr + var n int32 + var v2 bool + _, _, _, _, _, _ = db, n, pDef, pList, v1, v2 /* The database */ + _ = libc.Int32FromInt32(0) + if v2 = (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)) != uint32(0); !v2 { + v1 = *(*uintptr)(unsafe.Pointer(pExpr + 32)) + pList = v1 + } + if v2 || v1 == uintptr(0) { + n = 0 + } else { + n = (*TExprList)(unsafe.Pointer(pList)).FnExpr + _sqlite3WalkExprList(tls, pWalker, pList) + if int32((*TWalker)(unsafe.Pointer(pWalker)).FeCode) == 0 { + return int32(WRC_Abort) + } + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)|libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG)) == uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) +} + // C documentation // // /* @@ -87465,6 +87945,7 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { // ** malformed schema error. // */ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + _ = libc.Int32FromInt32(0) /* If pWalker->eCode is 2 then any term of the expression that comes from ** the ON or USING clauses of an outer join disqualifies the expression ** from being considered constant. */ @@ -87483,8 +87964,12 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 } return WRC_Continue } else { - (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) - return int32(WRC_Abort) + if (*TWalker)(unsafe.Pointer(pWalker)).FpParse != 0 { + return _exprNodeIsConstantFunction(tls, pWalker, pExpr) + } else { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } } fallthrough case int32(TK_ID): @@ -87511,6 +87996,8 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 case int32(TK_REGISTER): fallthrough case int32(TK_DOT): + fallthrough + case int32(TK_RAISE): (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) return int32(WRC_Abort) case int32(TK_VARIABLE): @@ -87536,14 +88023,14 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 return r } -func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32) { +func _exprIsConst(tls *libc.TLS, pParse uintptr, p uintptr, initFlag int32) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* w at bp+0 */ TWalker (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(initFlag) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) - *(*int32)(unsafe.Pointer(bp + 40)) = iCur _sqlite3WalkExpr(tls, bp, p) return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } @@ -87557,9 +88044,15 @@ func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32 // ** For the purposes of this function, a double-quoted string (ex: "abc") // ** is considered a variable but a single-quoted string (ex: 'abc') is // ** a constant. +// ** +// ** The pParse parameter may be NULL. But if it is NULL, there is no way +// ** to determine if function calls are constant or not, and hence all +// ** function calls will be considered to be non-constant. If pParse is +// ** not NULL, then a function call might be constant, depending on the +// ** function and on its parameters. // */ -func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(1), 0) +func _sqlite3ExprIsConstant(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(1)) } // C documentation @@ -87577,8 +88070,26 @@ func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { // ** can be added to the pParse->pConstExpr list and evaluated once when // ** the prepared statement starts up. See sqlite3ExprCodeRunJustOnce(). // */ -func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(2), 0) +func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(2)) +} + +// C documentation +// +// /* +// ** This routine examines sub-SELECT statements as an expression is being +// ** walked as part of sqlite3ExprIsTableConstant(). Sub-SELECTs are considered +// ** constant as long as they are uncorrelated - meaning that they do not +// ** contain any terms from outer contexts. +// */ +func _exprSelectWalkTableConstant(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if (*TSelect)(unsafe.Pointer(pSelect)).FselFlags&uint32(SF_Correlated) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) } // C documentation @@ -87588,9 +88099,25 @@ func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { // ** for any single row of the table with cursor iCur. In other words, the // ** expression must not refer to any non-deterministic function nor any // ** table other than iCur. +// ** +// ** Consider uncorrelated subqueries to be constants if the bAllowSubq +// ** parameter is true. // */ -func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) { - return _exprIsConst(tls, p, int32(3), iCur) +func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32, bAllowSubq int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(3) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = uintptr(0) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) + if bAllowSubq != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_exprSelectWalkTableConstant) + } else { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) + } + *(*int32)(unsafe.Pointer(bp + 40)) = iCur + _sqlite3WalkExpr(tls, bp, p) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } // C documentation @@ -87610,7 +88137,10 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** // ** (1) pExpr cannot refer to any table other than pSrc->iCursor. // ** -// ** (2) pExpr cannot use subqueries or non-deterministic functions. +// ** (2a) pExpr cannot use subqueries unless the bAllowSubq parameter is +// ** true and the subquery is non-correlated +// ** +// ** (2b) pExpr cannot use non-deterministic functions. // ** // ** (3) pSrc cannot be part of the left operand for a RIGHT JOIN. // ** (Is there some way to relax this constraint?) @@ -87636,7 +88166,7 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** which leads to incorrect answers. See also restriction (9) // ** on push-down. // */ -func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32) (r int32) { +func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32, bAllowSubq int32) (r int32) { var jj int32 var pSrc uintptr _, _ = jj, pSrc @@ -87674,7 +88204,8 @@ func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList jj++ } } - return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor) /* rules (1), (2) */ + /* Rules (1), (2a), and (2b) handled by the following: */ + return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor, bAllowSubq) } // C documentation @@ -87773,7 +88304,7 @@ func _sqlite3ExprIsConstantOrGroupBy(tls *libc.TLS, pParse uintptr, p uintptr, p // */ func _sqlite3ExprIsConstantOrFunction(tls *libc.TLS, p uintptr, isInit Tu8) (r int32) { _ = libc.Int32FromInt32(0) - return _exprIsConst(tls, p, int32(4)+int32(isInit), 0) + return _exprIsConst(tls, uintptr(0), p, int32(4)+int32(isInit)) } // C documentation @@ -87917,13 +88448,13 @@ func _sqlite3ExprNeedsNoAffinityChange(tls *libc.TLS, p uintptr, aff uint8) (r i // ** Return TRUE if the given string is a row-id column name. // */ func _sqlite3IsRowid(tls *libc.TLS, z uintptr) (r int32) { - if _sqlite3StrICmp(tls, z, __ccgo_ts+7897) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8022) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7905) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8030) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7911) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8036) == 0 { return int32(1) } return 0 @@ -87941,9 +88472,9 @@ func _sqlite3RowidAlias(tls *libc.TLS, pTab uintptr) (r uintptr) { var iCol, ii int32 _, _, _ = azOpt, iCol, ii azOpt = [3]uintptr{ - 0: __ccgo_ts + 7897, - 1: __ccgo_ts + 7905, - 2: __ccgo_ts + 7911, + 0: __ccgo_ts + 8022, + 1: __ccgo_ts + 8030, + 2: __ccgo_ts + 8036, } _ = libc.Int32FromInt32(0) ii = 0 @@ -88067,14 +88598,14 @@ func _sqlite3SetHasNullFlag(tls *libc.TLS, v uintptr, iCur int32, regHasNull int // ** The argument is an IN operator with a list (not a subquery) on the // ** right-hand side. Return TRUE if that list is constant. // */ -func _sqlite3InRhsIsConstant(tls *libc.TLS, pIn uintptr) (r int32) { +func _sqlite3InRhsIsConstant(tls *libc.TLS, pParse uintptr, pIn uintptr) (r int32) { var pLHS uintptr var res int32 _, _ = pLHS, res _ = libc.Int32FromInt32(0) pLHS = (*TExpr)(unsafe.Pointer(pIn)).FpLeft (*TExpr)(unsafe.Pointer(pIn)).FpLeft = uintptr(0) - res = _sqlite3ExprIsConstant(tls, pIn) + res = _sqlite3ExprIsConstant(tls, pParse, pIn) (*TExpr)(unsafe.Pointer(pIn)).FpLeft = pLHS return res } @@ -88232,7 +88763,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 iAddr = _sqlite3VdbeAddOp0(tls, v, int32(OP_Once)) _sqlite3OpenTable(tls, pParse, iTab, iDb, pTab, int32(OP_OpenRead)) eType = int32(IN_INDEX_ROWID) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+7915, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+8040, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) _sqlite3VdbeJumpHere(tls, v, iAddr) } else { /* Iterator variable */ affinity_ok = int32(1) @@ -88335,7 +88866,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 if colUsed == libc.Uint64FromInt32(1)<0 so that the new limit is either 1 or 0 */ db = (*TParse)(unsafe.Pointer(pParse)).Fdb - pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1722) + pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1782) if pLimit != 0 { (*TExpr)(unsafe.Pointer(pLimit)).FaffExpr = uint8(SQLITE_AFF_NUMERIC) pLimit = _sqlite3PExpr(tls, pParse, int32(TK_NE), _sqlite3ExprDup(tls, db, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft, 0), pLimit) @@ -88846,7 +89377,7 @@ func _sqlite3CodeSubselect(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int3 (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft = pLimit } else { /* If there is no pre-existing limit add a limit of 1 */ - pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8130) + pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8255) (*TSelect)(unsafe.Pointer(pSel)).FpLimit = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), pLimit, uintptr(0)) } (*TSelect)(unsafe.Pointer(pSel)).FiLimit = 0 @@ -89176,11 +89707,13 @@ func _sqlite3ExprCodeIN(tls *libc.TLS, pParse uintptr, pExpr uintptr, destIfFals } /* Jumps here in order to return true. */ _sqlite3VdbeJumpHere(tls, v, addrTruthOp) + goto sqlite3ExprCodeIN_finished sqlite3ExprCodeIN_finished: ; if rLhs != rLhsOrig { _sqlite3ReleaseTempReg(tls, pParse, rLhs) } + goto sqlite3ExprCodeIN_oom_error sqlite3ExprCodeIN_oom_error: ; _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiMap) @@ -89240,13 +89773,13 @@ func _codeInteger(tls *libc.TLS, pParse uintptr, pExpr uintptr, negFlag int32, i _ = libc.Int32FromInt32(0) c = _sqlite3DecOrHexToI64(tls, z, bp) if c == int32(3) && !(negFlag != 0) || c == int32(2) || negFlag != 0 && *(*Ti64)(unsafe.Pointer(bp)) == int64(-libc.Int32FromInt32(1))-(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<= (*TAggInfo)(unsafe.Pointer(pInfo)).FnFunc { _ = libc.Int32FromInt32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8223, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8348, libc.VaList(bp+160, pExpr)) } else { _ = libc.Int32FromInt32(0) return (*TAggInfo)(unsafe.Pointer(pInfo)).FiFirstReg + (*TAggInfo)(unsafe.Pointer(pInfo)).FnColumn + int32((*TExpr)(unsafe.Pointer(pExpr)).FiAgg) @@ -90046,7 +90574,7 @@ expr_code_doover: if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { return (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FregResult } - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { /* SQL functions can be expensive. So try to avoid running them ** multiple times if we know they always give the same result */ return _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) @@ -90064,7 +90592,7 @@ expr_code_doover: zId = *(*uintptr)(unsafe.Pointer(pExpr + 8)) pDef = _sqlite3FindFunction(tls, db, zId, nFarg, enc, uint8(0)) if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8250, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8375, libc.VaList(bp+160, pExpr)) break } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_INLINE) != uint32(0) && pFarg != uintptr(0) { @@ -90081,7 +90609,7 @@ expr_code_doover: if !(i < nFarg) { break } - if i < int32(32) && _sqlite3ExprIsConstant(tls, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { + if i < int32(32) && _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { constMask |= libc.Uint32FromInt32(1) << i } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_NEEDCOLL) != uint32(0) && !(pColl != 0) { @@ -90178,7 +90706,7 @@ expr_code_doover: _ = libc.Int32FromInt32(0) n1 = _sqlite3ExprVectorSize(tls, pLeft2) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != n1 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7833, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7958, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) } return (*TExpr)(unsafe.Pointer(pLeft2)).FiTable + int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) case int32(TK_IN): @@ -90210,8 +90738,9 @@ expr_code_doover: if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Collate)) != libc.Uint32FromInt32(0)) { /* A TK_COLLATE Expr node without the EP_Collate tag is a so-called ** "SOFT-COLLATE" that is added to constraints that are pushed down - ** from outer queries into sub-queries by the push-down optimization. - ** Clear subtypes as subtypes may not cross a subquery boundary. + ** from outer queries into sub-queries by the WHERE-clause push-down + ** optimization. Clear subtypes as subtypes may not cross a subquery + ** boundary. */ _ = libc.Int32FromInt32(0) _sqlite3ExprCode(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, target) @@ -90246,7 +90775,7 @@ expr_code_doover: _sqlite3VdbeAddOp1(tls, v, int32(OP_RealAffinity), target) } case int32(TK_VECTOR): - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6677, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6741, 0) break /* TK_IF_NULL_ROW Expr nodes are inserted ahead of expressions ** that derive from the right-hand table of a LEFT JOIN. The @@ -90368,7 +90897,7 @@ expr_code_doover: case int32(TK_RAISE): _ = libc.Int32FromInt32(0) if !((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != 0) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8274, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8399, 0) return 0 } if int32((*TExpr)(unsafe.Pointer(pExpr)).FaffExpr) == int32(OE_Abort) { @@ -90492,7 +91021,7 @@ func _sqlite3ExprCodeTemp(tls *libc.TLS, pParse uintptr, pExpr uintptr, pReg uin var r1, r2 int32 _, _ = r1, r2 pExpr = _sqlite3ExprSkipCollateAndLikely(tls, pExpr) - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { *(*int32)(unsafe.Pointer(pReg)) = 0 r2 = _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) } else { @@ -90565,7 +91094,7 @@ func _sqlite3ExprCodeCopy(tls *libc.TLS, pParse uintptr, pExpr uintptr, target i // ** might choose to code the expression at initialization time. // */ func _sqlite3ExprCodeFactorable(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) { - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target) } else { _sqlite3ExprCodeCopy(tls, pParse, pExpr, target) @@ -90636,7 +91165,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ _sqlite3VdbeAddOp2(tls, v, int32(copyOp), j+srcReg-int32(1), target+i) } } else { - if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target+i) } else { inReg = _sqlite3ExprCodeTarget(tls, pParse, pExpr, target+i) @@ -90911,6 +91440,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsTrue)) == uint32(EP_IsTrue) { @@ -91132,6 +91662,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) { @@ -91979,18 +92510,16 @@ func _agginfoPersistExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnColumn && (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } else { _ = libc.Int32FromInt32(0) if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnFunc && (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } @@ -92112,6 +92641,7 @@ func _findOrCreateAggInfoColumn(tls *libc.TLS, pParse uintptr, pAggInfo uintptr, *(*Tu16)(unsafe.Pointer(v4))++ (*TAggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = int16(v3) } + goto fix_up_expr fix_up_expr: ; _ = libc.Int32FromInt32(0) @@ -92559,8 +93089,8 @@ func _sqlite3FirstAvailableRegister(tls *libc.TLS, pParse uintptr, iMin int32) ( func _isAlterableTable(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) - if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6525, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8324, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6589, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8449, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -92579,9 +93109,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, bp := tls.Alloc(48) defer tls.Free(48) (*TParse)(unsafe.Pointer(pParse)).FcolNamesSet = uint8(1) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8352, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8477, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8527, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8652, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) } } @@ -92597,9 +93127,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, func _renameFixQuotes(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8701, libc.VaList(bp+8, zDb, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8826, libc.VaList(bp+8, zDb, zDb)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8848, 0) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8973, 0) } } @@ -92657,7 +93187,7 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName ** in database iDb. If so, this is an error. */ if _sqlite3FindTable(tls, db, zName, zDb) != 0 || _sqlite3FindIndex(tls, db, zName, zDb) != 0 || _sqlite3IsShadowTableOf(tls, db, pTab, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8999, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9124, libc.VaList(bp+8, zName)) goto exit_rename_table } /* Make sure it is not a system table being altered, or a reserved name @@ -92666,11 +93196,11 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { goto exit_rename_table } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9058, zName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9183, zName) { goto exit_rename_table } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9064, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9189, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_rename_table } /* Invoke the authorization callback. */ @@ -92700,21 +93230,21 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName nTabName = _sqlite3Utf8CharLen(tls, zTabName, -int32(1)) /* Rewrite all CREATE TABLE, INDEX, TRIGGER or VIEW statements in ** the schema to use the new table name. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9091, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9216, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) /* Update the tbl_name and name columns of the sqlite_schema table ** as required. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9275, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9400, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) /* If the sqlite_sequence table exists in this database, then update ** it with the new table name. */ - if _sqlite3FindTable(tls, db, __ccgo_ts+9580, zDb) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9596, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if _sqlite3FindTable(tls, db, __ccgo_ts+9705, zDb) != 0 { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9721, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* If the table being renamed is not itself part of the temp database, ** edit view and trigger definitions within the temp database ** as required. */ if iDb != int32(1) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9654, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9779, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) } /* If this is a virtual table, invoke the xRename() function if ** one is defined. The xRename() callback will modify the names @@ -92730,7 +93260,8 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp4(tls, v, int32(OP_VRename), i, 0, 0, pVTab, -int32(11)) } _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+9919, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+10044, 0) + goto exit_rename_table exit_rename_table: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -92746,7 +93277,7 @@ exit_rename_table: func _sqlite3ErrorIfNotEmpty(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zErr uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9932, libc.VaList(bp+8, zErr, zDb, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10057, libc.VaList(bp+8, zErr, zDb, zTab)) } // C documentation @@ -92791,11 +93322,11 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** column must not be NULL. */ if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9970, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10095, 0) return } if (*TTable)(unsafe.Pointer(pNew)).FpIndex != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10002, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10127, 0) return } if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) == 0 { @@ -92813,10 +93344,10 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpFKey != 0 && pDflt != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10029) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10154) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && !(pDflt != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10088) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10213) } /* Ensure the default expression is something that sqlite3ValueFromExpr() ** can handle (i.e. not CURRENT_TIME etc.) @@ -92830,13 +93361,13 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr return } if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10141) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10266) } _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp))) } } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_STORED) != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10187) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10312) } } /* Modify the CREATE TABLE statement. */ @@ -92852,7 +93383,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** have to use printf() to translate between these units: */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10214, libc.VaList(bp+16, zDb, (*(*struct { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10339, libc.VaList(bp+16, zDb, (*(*struct { FaddColOffset int32 FpFKey uintptr FpDfltList uintptr @@ -92880,7 +93411,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterAdd)) /* Verify that constraints are still satisfied */ if (*TTable)(unsafe.Pointer(pNew)).FpCheck != uintptr(0) || int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Strict) != uint32(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10360, libc.VaList(bp+16, zTab, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10485, libc.VaList(bp+16, zTab, zDb)) } } } @@ -92920,12 +93451,12 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { goto exit_begin_add_column } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10713, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10838, 0) goto exit_begin_add_column } /* Make sure this is not an attempt to ALTER a view. */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10747, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10872, 0) goto exit_begin_add_column } if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { @@ -92953,7 +93484,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { nAlloc = (int32((*TTable)(unsafe.Pointer(pNew)).FnCol)-int32(1))/int32(8)*int32(8) + int32(8) _ = libc.Int32FromInt32(0) (*TTable)(unsafe.Pointer(pNew)).FaCol = _sqlite3DbMallocZero(tls, db, uint64(16)*uint64(nAlloc)) - (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10777, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10902, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !((*TTable)(unsafe.Pointer(pNew)).FaCol != 0) || !((*TTable)(unsafe.Pointer(pNew)).FzName != 0) { _ = libc.Int32FromInt32(0) goto exit_begin_add_column @@ -92993,6 +93524,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { FpDfltList uintptr })(unsafe.Pointer(pTab + 64))).FaddColOffset _ = libc.Int32FromInt32(0) + goto exit_begin_add_column exit_begin_add_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -93016,18 +93548,18 @@ func _isRealTable(tls *libc.TLS, pParse uintptr, pTab uintptr, bDrop int32) (r i _, _ = zType, v1 zType = uintptr(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10796 + zType = __ccgo_ts + 10921 } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 10801 + zType = __ccgo_ts + 10926 } if zType != 0 { if bDrop != 0 { - v1 = __ccgo_ts + 10815 + v1 = __ccgo_ts + 10940 } else { - v1 = __ccgo_ts + 10832 + v1 = __ccgo_ts + 10957 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10850, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10975, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -93089,11 +93621,11 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld iCol++ } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10868, libc.VaList(bp+8, pOld)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10993, libc.VaList(bp+8, pOld)) goto exit_rename_column } /* Ensure the schema contains no double-quoted strings */ - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1648, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1662, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1))) /* Do the rename operation using a recursive UPDATE statement that ** uses the sqlite_rename_column() SQL function to compute the new @@ -93106,11 +93638,12 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld } _ = libc.Int32FromInt32(0) bQuote = int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pNew)).Fz))]) & int32(0x80) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10889, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11071, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11014, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11196, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iSchema, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+9919, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+10044, int32(1)) + goto exit_rename_column exit_rename_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -93588,11 +94121,11 @@ func _renameColumnParseError(tls *libc.TLS, pCtx uintptr, zWhen uintptr, pType u zT = Xsqlite3_value_text(tls, pType) zN = Xsqlite3_value_text(tls, pObject) if *(*uint8)(unsafe.Pointer(zWhen)) != 0 { - v1 = __ccgo_ts + 11202 + v1 = __ccgo_ts + 11327 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11204, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) + zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11329, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, zErr) } @@ -93669,8 +94202,8 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin if zSql == uintptr(0) { return int32(SQLITE_NOMEM) } - if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11227, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(116682)) + if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11352, int32(7)) != 0 { + return _sqlite3CorruptError(tls, int32(117285)) } if bTemp != 0 { v1 = int32(1) @@ -93686,7 +94219,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin rc = int32(SQLITE_NOMEM) } if rc == SQLITE_OK && ((*TParse)(unsafe.Pointer(p)).FpNewTable == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewIndex == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewTrigger == uintptr(0)) { - rc = _sqlite3CorruptError(tls, int32(116693)) + rc = _sqlite3CorruptError(tls, int32(117296)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -93725,7 +94258,7 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, ** ALTER TABLE statement was quoted (bQuote==1), then set zNew to ** point to zQuot so that all substitutions are made using the ** quoted version of the new column name. */ - zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11235, libc.VaList(bp+8, zNew)) + zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11360, libc.VaList(bp+8, zNew)) if zQuot == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -93771,11 +94304,11 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, *(*uint8)(unsafe.Pointer(zBuf1 + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn))) = uint8(0) _sqlite3Dequote(tls, zBuf1) if int32(*(*uint8)(unsafe.Pointer((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn)))) == int32('\'') { - v1 = __ccgo_ts + 11202 + v1 = __ccgo_ts + 11327 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11241, libc.VaList(bp+8, zBuf1, v1)) + Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11366, libc.VaList(bp+8, zBuf1, v1)) zReplace = zBuf2 nReplace = uint32(_sqlite3Strlen30(tls, zReplace)) } @@ -94259,6 +94792,7 @@ func _renameColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintp } _ = libc.Int32FromInt32(0) rc = _renameEditSql(tls, context, bp, zSql, zNew, bQuote) + goto renameColumnFunc_done renameColumnFunc_done: ; if rc != SQLITE_OK { @@ -94266,7 +94800,7 @@ renameColumnFunc_done: Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv))) } else { if (*(*TParse)(unsafe.Pointer(bp + 32))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1648, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) + _renameColumnParseError(tls, context, __ccgo_ts+1662, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -94495,7 +95029,7 @@ func _renameTableFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintpt Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv + 3*8))) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1648, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) + _renameColumnParseError(tls, context, __ccgo_ts+1662, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -94757,7 +95291,7 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr pTab = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable if pTab == uintptr(0) || int32((*TTable)(unsafe.Pointer(pTab)).FnCol) == int32(1) || iCol >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { /* This can happen if the sqlite_schema table is corrupt */ - rc = _sqlite3CorruptError(tls, int32(117652)) + rc = _sqlite3CorruptError(tls, int32(118255)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -94775,9 +95309,10 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr (*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz-- } } - zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11246, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) + zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11371, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) Xsqlite3_result_text(tls, context, zNew, -int32(1), uintptr(-libc.Int32FromInt32(1))) Xsqlite3_free(tls, zNew) + goto drop_column_done drop_column_done: ; _renameParseCleanup(tls, bp) @@ -94801,8 +95336,9 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName bp := tls.Alloc(48) defer tls.Free(48) var addr, i, iCol, iColPos, iCur, iDb, iPos, nField, reg, regOut, regRec, v2, v4, v7 int32 + var aff uint8 var db, pPk, pTab, v, zCol, zDb, v1, v3, v5, v8 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, aff, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Database containing pTab ("main" etc.) */ zCol = uintptr(0) /* Index of column zCol in pTab->aCol[] */ /* Look up the table being altered. */ @@ -94831,23 +95367,23 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName } iCol = _sqlite3ColumnIndex(tls, pTab, zCol) if iCol < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10868, libc.VaList(bp+8, pName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10993, libc.VaList(bp+8, pName)) goto exit_drop_column } /* Do not allow the user to drop a PRIMARY KEY column or a column ** constrained by a UNIQUE constraint. */ if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_PRIMKEY)|libc.Int32FromInt32(COLFLAG_UNIQUE)) != 0 { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - v1 = __ccgo_ts + 11253 + v1 = __ccgo_ts + 11378 } else { - v1 = __ccgo_ts + 5589 + v1 = __ccgo_ts + 5653 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11265, libc.VaList(bp+8, v1, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11390, libc.VaList(bp+8, v1, zCol)) goto exit_drop_column } /* Do not allow the number of columns to go to zero */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) <= int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11293, libc.VaList(bp+8, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11418, libc.VaList(bp+8, zCol)) goto exit_drop_column } /* Edit the sqlite_schema table */ @@ -94858,12 +95394,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_ALTER_TABLE), zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol) != 0 { goto exit_drop_column } - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1648, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1662, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1))) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11341, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11466, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterDrop)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11462, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11587, int32(1)) /* Edit rows of table on disk */ if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 && int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { pPk = uintptr(0) @@ -94921,7 +95457,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if i == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regOut) } else { + aff = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity + if int32(aff) == int32(SQLITE_AFF_REAL) { + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = uint8(SQLITE_AFF_NUMERIC) + } _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, i, regOut) + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = aff } nField++ } @@ -94946,6 +95487,7 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iCur, addr+int32(1)) _sqlite3VdbeJumpHere(tls, v, addr) } + goto exit_drop_column exit_drop_column: ; _sqlite3DbFree(tls, db, zCol) @@ -94965,27 +95507,27 @@ var _aAlterTableFuncs = [5]TFuncDef{ 0: { FnArg: int8(9), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11480, + FzName: __ccgo_ts + 11605, }, 1: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11501, + FzName: __ccgo_ts + 11626, }, 2: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11521, + FzName: __ccgo_ts + 11646, }, 3: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11540, + FzName: __ccgo_ts + 11665, }, 4: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11559, + FzName: __ccgo_ts + 11684, }, } @@ -95198,7 +95740,7 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW ** side-effect of the CREATE TABLE statement is to leave the rootpage ** of the new table in register pParse->regRoot. This is important ** because the OpenWrite opcode below will be needing it. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11662, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11787, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) aRoot[i] = uint32((*TParse)(unsafe.Pointer(pParse)).FregRoot) aCreateTbl[i] = uint8(OPFLAG_P2ISREG) } @@ -95209,10 +95751,10 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW aRoot[i] = (*TTable)(unsafe.Pointer(pStat)).Ftnum _sqlite3TableLock(tls, pParse, iDb, aRoot[i], uint8(1), zTab) if zWhere != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11685, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11810, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11715, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11840, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) } else { /* The sqlite_stat[134] table already exists. Delete all rows. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Clear), int32(aRoot[i]), iDb) @@ -95245,15 +95787,15 @@ var _aTable = [3]struct { FzCols uintptr }{ 0: { - FzName: __ccgo_ts + 11582, - FzCols: __ccgo_ts + 11595, + FzName: __ccgo_ts + 11707, + FzCols: __ccgo_ts + 11720, }, 1: { - FzName: __ccgo_ts + 11608, - FzCols: __ccgo_ts + 11621, + FzName: __ccgo_ts + 11733, + FzCols: __ccgo_ts + 11746, }, 2: { - FzName: __ccgo_ts + 11649, + FzName: __ccgo_ts + 11774, }, } @@ -95562,7 +96104,7 @@ func _statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statInitFuncdef = TFuncDef{ FnArg: int8(4), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11733, + FzName: __ccgo_ts + 11858, } func init() { @@ -95716,6 +96258,7 @@ func _sampleInsert(tls *libc.TLS, p uintptr, pNew uintptr, nEqZero int32) { (*TStatAccum)(unsafe.Pointer(p)).FnSample++ /* Zero the first nEqZero entries in the anEq[] array. */ libc.Xmemset(tls, (*TStatSample)(unsafe.Pointer(pSample)).FanEq, 0, uint64(8)*uint64(nEqZero)) + goto find_new_min find_new_min: ; if (*TStatAccum)(unsafe.Pointer(p)).FnSample >= (*TStatAccum)(unsafe.Pointer(p)).FmxSample { @@ -95947,7 +96490,7 @@ func _statPush(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statPushFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(2) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11743, + FzName: __ccgo_ts + 11868, } func init() { @@ -96000,7 +96543,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } else { v1 = (*TStatAccum)(unsafe.Pointer(p)).FnRow } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11753, libc.VaList(bp+72, v1)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11878, libc.VaList(bp+72, v1)) i = 0 for { if !(i < (*TStatAccum)(unsafe.Pointer(p)).FnKeyCol) { @@ -96011,7 +96554,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if iVal == uint64(2) && (*TStatAccum)(unsafe.Pointer(p)).FnRow*uint64(10) <= nDistinct*uint64(11) { iVal = uint64(1) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11758, libc.VaList(bp+72, iVal)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11883, libc.VaList(bp+72, iVal)) _ = libc.Int32FromInt32(0) goto _2 _2: @@ -96052,7 +96595,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if !(i1 < (*TStatAccum)(unsafe.Pointer(p)).FnCol) { break } - Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+11764, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) + Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+11889, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) goto _3 _3: ; @@ -96070,7 +96613,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statGetFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(1) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11770, + FzName: __ccgo_ts + 11895, } func init() { @@ -96092,9 +96635,9 @@ func _callStatGet(tls *libc.TLS, pParse uintptr, regStat int32, iParam int32, re // */ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr, iStatCur int32, iMem int32, iTab int32) { var aGotoChng, db, pColl, pIdx, pPk, pStat1, pX, v, zIdxName uintptr - var addrIsNull, addrNext, addrNextRow, addrRewind, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 + var addrGotoEnd, addrIsNull, addrNext, addrNextRow, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 var needTableCnt, seekOp Tu8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrIsNull, addrNext, addrNextRow, addrRewind, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrGotoEnd, addrIsNull, addrNext, addrNextRow, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Loop counter */ jZeroRows = -int32(1) /* Index of database containing pTab */ needTableCnt = uint8(1) @@ -96138,7 +96681,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Do not gather statistics on views or virtual tables */ return } - if Xsqlite3_strlike(tls, __ccgo_ts+11779, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { + if Xsqlite3_strlike(tls, __ccgo_ts+11904, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { /* Do not gather statistics on system tables */ return } @@ -96155,7 +96698,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint return } (*TTable)(unsafe.Pointer(pStat1)).FzName = pStat1 + 1*104 - libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11582, uint64(13)) + libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11707, uint64(13)) (*TTable)(unsafe.Pointer(pStat1)).FnCol = int16(3) (*TTable)(unsafe.Pointer(pStat1)).FiPKey = int16(-int32(1)) _sqlite3VdbeAddOp4(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Noop), 0, 0, 0, pStat1, -int32(6)) @@ -96209,9 +96752,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* ** Pseudo-code for loop that calls stat_push(): ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() ** goto chng_addr_0; ** ** next_row: @@ -96246,34 +96794,31 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _ = libc.Int32FromInt32(0) _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenRead), iIdxCur, int32((*TIndex)(unsafe.Pointer(pIdx)).Ftnum), iDb) _sqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx) - /* Invoke the stat_init() function. The arguments are: + /* Implementation of the following: ** + ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() + ** goto chng_addr_0; + */ + _ = libc.Int32FromInt32(0) + _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + /* Arguments to stat_init(): ** (1) the number of columns in the index including the rowid ** (or for a WITHOUT ROWID table, the number of PK columns), ** (2) the number of columns in the key without the rowid/pk - ** (3) estimated number of rows in the index, - */ + ** (3) estimated number of rows in the index. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), nCol, regStat+int32(1)) _ = libc.Int32FromInt32(0) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol), regRowid) - if (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0) { - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iIdxCur, regTemp) - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - } else { - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, int32(1)) - } - _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) != uint32(0))) _sqlite3VdbeAddFunctionCall(tls, pParse, 0, regStat+int32(1), regStat, int32(4), uintptr(unsafe.Pointer(&_statInitFuncdef)), 0) - /* Implementation of the following: - ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; - ** regChng = 0 - ** goto next_push_0; - ** - */ + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regChng) addrNextRow = _sqlite3VdbeCurrentAddr(tls, v) if nColTest > 0 { @@ -96385,9 +96930,15 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iIdxCur, addrNextRow) } /* Add the entry to the stat1 table. */ + if (*TIndex)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 { + /* Partial indexes might get a zero-entry in sqlite_stat1. But + ** an empty table is omitted from sqlite_stat1. */ + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + addrGotoEnd = 0 + } _callStatGet(tls, pParse, regStat, STAT_GET_STAT1, regStat1) _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11789, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11914, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP4(tls, v, -int32(1), pStat1, -int32(5)) @@ -96406,6 +96957,11 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint v18 = int32(OP_NotFound) } seekOp = uint8(v18) + /* No STAT4 data is generated if the number of rows is zero */ + if addrGotoEnd == 0 { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Cast), regStat1, int32(SQLITE_AFF_INTEGER)) + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) + } if doOnce != 0 { mxCol = nCol /* Compute the maximum number of columns in any index */ @@ -96460,7 +97016,9 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeJumpHere(tls, v, addrIsNull) } /* End of analysis */ - _sqlite3VdbeJumpHere(tls, v, addrRewind) + if addrGotoEnd != 0 { + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + } goto _13 _13: ; @@ -96474,7 +97032,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint jZeroRows = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regIdxname) _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11789, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11914, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND)) @@ -96549,9 +97107,9 @@ func _analyzeTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr iStatCur = (*TParse)(unsafe.Pointer(pParse)).FnTab *(*int32)(unsafe.Pointer(pParse + 52)) += int32(3) if pOnlyIdx != 0 { - _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11793) + _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11918) } else { - _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11797) + _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11922) } _analyzeOneTable(tls, pParse, pTab, pOnlyIdx, iStatCur, (*TParse)(unsafe.Pointer(pParse)).FnMem+int32(1), (*TParse)(unsafe.Pointer(pParse)).FnTab) _loadAnalysis(tls, pParse, iDb) @@ -96682,7 +97240,7 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, _, _, _, _, _, _ = c, i, sz, v, z, v2 z = zIntArray if z == uintptr(0) { - z = __ccgo_ts + 1648 + z = __ccgo_ts + 1662 } i = 0 for { @@ -96717,17 +97275,17 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 6, 0x40) for *(*uint8)(unsafe.Pointer(z)) != 0 { - if Xsqlite3_strglob(tls, __ccgo_ts+11801, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11926, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 2, 0x4) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11812, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11937, z) == 0 { sz = _sqlite3Atoi(tls, z+uintptr(3)) if sz < int32(2) { sz = int32(2) } (*TIndex)(unsafe.Pointer(pIndex)).FszIdxRow = _sqlite3LogEst(tls, uint64(sz)) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11822, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11947, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 6, 0x40) } } @@ -97111,11 +97669,11 @@ func _loadStat4(tls *libc.TLS, db uintptr, zDb uintptr) (r int32) { rc = SQLITE_OK _ = libc.Int32FromInt32(0) if v2 = (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0); v2 { - v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11608, zDb) + v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11733, zDb) pStat4 = v1 } if v2 && v1 != uintptr(0) && int32((*TTable)(unsafe.Pointer(pStat4)).FeTabType) == TABTYP_NORM { - rc = _loadStatTbl(tls, db, __ccgo_ts+11834, __ccgo_ts+11903, zDb) + rc = _loadStatTbl(tls, db, __ccgo_ts+11959, __ccgo_ts+12028, zDb) } return rc } @@ -97184,10 +97742,10 @@ func _sqlite3AnalysisLoad(tls *libc.TLS, db uintptr, iDb int32) (r int32) { /* Load new statistics out of the sqlite_stat1 table */ (*(*TanalysisInfo)(unsafe.Pointer(bp))).Fdb = db (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName - v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11582, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) + v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11707, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) pStat1 = v3 if v3 != 0 && int32((*TTable)(unsafe.Pointer(pStat1)).FeTabType) == TABTYP_NORM { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+11955, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+12080, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -97301,7 +97859,7 @@ func _resolveAttachExpr(tls *libc.TLS, pName uintptr, pExpr uintptr) (r int32) { // ** database iDb attached to handle db. // */ func _sqlite3DbIsNamed(tls *libc.TLS, db uintptr, iDb int32, zName uintptr) (r int32) { - return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6585, zName) == 0) + return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6649, zName) == 0) } // C documentation @@ -97343,21 +97901,21 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { zFile = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) zName = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if zFile == uintptr(0) { - zFile = __ccgo_ts + 1648 + zFile = __ccgo_ts + 1662 } if zName == uintptr(0) { - zName = __ccgo_ts + 1648 + zName = __ccgo_ts + 1662 } if int32(uint32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x4>>2)) != 0 { /* This is not a real ATTACH. Instead, this routine is being called ** from sqlite3_deserialize() to close database db->init.iDb and ** reopen it as a MemDB */ *(*uintptr)(unsafe.Pointer(bp + 40)) = uintptr(0) - *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+3967) + *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+4031) if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { return } - rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+11996, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) + rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12121, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) if rc == SQLITE_OK { pNewSchema = _sqlite3SchemaGet(tls, db, *(*uintptr)(unsafe.Pointer(bp + 40))) if pNewSchema != 0 { @@ -97388,7 +97946,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { ** * Specified database name already being used. */ if (*Tsqlite3)(unsafe.Pointer(db)).FnDb >= *(*int32)(unsafe.Pointer(db + 136 + 7*4))+int32(2) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+11999, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12124, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) goto attach_error } i = 0 @@ -97398,7 +97956,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } _ = libc.Int32FromInt32(0) if _sqlite3DbIsNamed(tls, db, i, zName) != 0 { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12036, libc.VaList(bp+56, zName)) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12161, libc.VaList(bp+56, zName)) goto attach_error } goto _1 @@ -97447,7 +98005,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FnoSharedCache = uint8(0) if rc == int32(SQLITE_CONSTRAINT) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12066, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12191, 0) } else { if rc == SQLITE_OK { (*TDb)(unsafe.Pointer(pNew)).FpSchema = _sqlite3SchemaGet(tls, db, (*TDb)(unsafe.Pointer(pNew)).FpBt) @@ -97455,7 +98013,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { rc = int32(SQLITE_NOMEM) } else { if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Ffile_format != 0 && int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Fenc) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12095, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12220, 0) rc = int32(SQLITE_ERROR) } } @@ -97501,16 +98059,17 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)<= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12191, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12316, libc.VaList(bp+136, zName)) goto detach_error } if i < int32(2) { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12212, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12337, libc.VaList(bp+136, zName)) goto detach_error } if _sqlite3BtreeTxnState(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != SQLITE_TXN_NONE || _sqlite3BtreeIsInBackup(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != 0 { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12238, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12363, libc.VaList(bp+136, zName)) goto detach_error } /* If any TEMP triggers reference the schema being detached, move those @@ -97592,6 +98151,7 @@ func _detachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*TDb)(unsafe.Pointer(pDb)).FpSchema = uintptr(0) _sqlite3CollapseDatabaseArray(tls, db) return + goto detach_error detach_error: ; Xsqlite3_result_error(tls, context, bp, -int32(1)) @@ -97648,6 +98208,7 @@ func _codeAttach(tls *libc.TLS, pParse uintptr, type1 int32, pFunc uintptr, pAut */ _sqlite3VdbeAddOp1(tls, v, int32(OP_Expire), libc.BoolInt32(type1 == int32(SQLITE_ATTACH))) } + goto attach_end attach_end: ; _sqlite3ExprDelete(tls, db, pFilename) @@ -97669,7 +98230,7 @@ func _sqlite3Detach(tls *libc.TLS, pParse uintptr, pDbname uintptr) { var _detach_func = TFuncDef{ FnArg: int8(1), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12260, + FzName: __ccgo_ts + 12385, } func init() { @@ -97691,7 +98252,7 @@ func _sqlite3Attach(tls *libc.TLS, pParse uintptr, p uintptr, pDbname uintptr, p var _attach_func = TFuncDef{ FnArg: int8(3), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12274, + FzName: __ccgo_ts + 12399, } func init() { @@ -97717,7 +98278,7 @@ func _fixExprCb(tls *libc.TLS, p uintptr, pExpr uintptr) (r int32) { if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer((*TDbFixer)(unsafe.Pointer(pFix)).FpParse)).Fdb)).Finit1.Fbusy != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } else { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12288, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12413, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) return int32(WRC_Abort) } } @@ -97751,7 +98312,7 @@ func _fixSelectCb(tls *libc.TLS, p uintptr, pSelect uintptr) (r int32) { if int32((*TDbFixer)(unsafe.Pointer(pFix)).FbTemp) == 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { if iDb != _sqlite3FindDbName(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12312, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12437, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) return int32(WRC_Abort) } _sqlite3DbFree(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) @@ -97968,7 +98529,7 @@ func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uint // ** user-supplied authorization function returned an illegal value. // */ func _sqliteAuthBadReturnCode(tls *libc.TLS, pParse uintptr) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12358, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12483, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) } @@ -97996,11 +98557,11 @@ func _sqlite3AuthReadCol(tls *libc.TLS, pParse uintptr, zTab uintptr, zCol uintp } rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, int32(SQLITE_READ), zTab, zCol, zDb, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12381, libc.VaList(bp+8, zTab, zCol)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12506, libc.VaList(bp+8, zTab, zCol)) if (*Tsqlite3)(unsafe.Pointer(db)).FnDb > int32(2) || iDb != 0 { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12387, libc.VaList(bp+8, zDb, z)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12512, libc.VaList(bp+8, zDb, z)) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12393, libc.VaList(bp+8, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12518, libc.VaList(bp+8, z)) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != int32(SQLITE_IGNORE) && rc != SQLITE_OK { @@ -98066,7 +98627,7 @@ func _sqlite3AuthRead(tls *libc.TLS, pParse uintptr, pExpr uintptr, pSchema uint _ = libc.Int32FromInt32(0) zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName } else { - zCol = __ccgo_ts + 7905 + zCol = __ccgo_ts + 8030 } } _ = libc.Int32FromInt32(0) @@ -98103,7 +98664,7 @@ func _sqlite3AuthCheck(tls *libc.TLS, pParse uintptr, code int32, zArg1 uintptr, ** parameters can be either NULL or a string. */ rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, code, zArg1, zArg2, zArg3, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12420, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12545, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != SQLITE_OK && rc != int32(SQLITE_IGNORE) { @@ -98538,21 +99099,21 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp if i >= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { /* No match against the official names. But always match "main" ** to schema 0 as a legacy fallback. */ - if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6585) == 0 { + if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6649) == 0 { i = 0 } else { return uintptr(0) } } p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, zName) - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6525, int32(7)) == 0 { + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6589, int32(7)) == 0 { if i == int32(1) { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6552+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6571+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6066+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6533) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6616+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6635+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6130+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6597) } } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6571+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6066) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6635+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6130) } } } @@ -98583,12 +99144,12 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp ; i++ } - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6525, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6571+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6066) + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6589, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6635+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6130) } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6552+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6533) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6616+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6597) } } } @@ -98626,7 +99187,7 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt ** can be an eponymous virtual table. */ if int32((*TParse)(unsafe.Pointer(pParse)).FprepFlags)&int32(SQLITE_PREPARE_NO_VTAB) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 { pMod = _sqlite3HashFind(tls, db+576, zName) - if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12435, int32(7)) == 0 { + if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12560, int32(7)) == 0 { pMod = _sqlite3PragmaVtabRegister(tls, db, zName) } if pMod != 0 && _sqlite3VtabEponymousTableInit(tls, pParse, pMod) != 0 { @@ -98644,15 +99205,15 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt } if p == uintptr(0) { if flags&uint32(LOCATE_VIEW) != 0 { - v1 = __ccgo_ts + 12443 + v1 = __ccgo_ts + 12568 } else { - v1 = __ccgo_ts + 12456 + v1 = __ccgo_ts + 12581 } zMsg = v1 if zDbase != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6789, libc.VaList(bp+8, zMsg, zDbase, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6853, libc.VaList(bp+8, zMsg, zDbase, zName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6799, libc.VaList(bp+8, zMsg, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6924, libc.VaList(bp+8, zMsg, zName)) } } else { _ = libc.Int32FromInt32(0) @@ -98692,12 +99253,12 @@ func _sqlite3LocateTableItem(tls *libc.TLS, pParse uintptr, flags Tu32, p uintpt // ** names into the new preferred names, as appropriate. // */ func _sqlite3PreferredTableName(tls *libc.TLS, zName uintptr) (r uintptr) { - if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6525, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6066+7) == 0 { - return __ccgo_ts + 6571 + if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6589, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6130+7) == 0 { + return __ccgo_ts + 6635 } - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6533+7) == 0 { - return __ccgo_ts + 6552 + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6597+7) == 0 { + return __ccgo_ts + 6616 } } return zName @@ -99243,7 +99804,7 @@ func _sqlite3OpenSchemaTable(tls *libc.TLS, p uintptr, iDb int32) { var v uintptr _ = v v = _sqlite3GetVdbe(tls, p) - _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6066) + _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6130) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_OpenWrite), 0, int32(SCHEMA_ROOT), iDb, int32(5)) if (*TParse)(unsafe.Pointer(p)).FnTab == 0 { (*TParse)(unsafe.Pointer(p)).FnTab = int32(1) @@ -99275,7 +99836,7 @@ func _sqlite3FindDbName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) { } /* "main" is always an acceptable alias for the primary database ** even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME. */ - if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6585, zName) { + if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6649, zName) { break } goto _1 @@ -99334,13 +99895,13 @@ func _sqlite3TwoPartName(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u _ = libc.Int32FromInt32(0) if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12470, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12595, 0) return -int32(1) } *(*uintptr)(unsafe.Pointer(pUnqual)) = pName2 iDb = _sqlite3FindDb(tls, db, pName1) if iDb < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12487, libc.VaList(bp+8, pName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12612, libc.VaList(bp+8, pName1)) return -int32(1) } } else { @@ -99385,12 +99946,12 @@ func _sqlite3CheckObjectName(tls *libc.TLS, pParse uintptr, zName uintptr, zType } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if Xsqlite3_stricmp(tls, zType, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit))) != 0 || Xsqlite3_stricmp(tls, zName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 1*8))) != 0 || Xsqlite3_stricmp(tls, zTblName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 2*8))) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1648, 0) /* corruptSchema() will supply the error */ + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1662, 0) /* corruptSchema() will supply the error */ return int32(SQLITE_ERROR) } } else { - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6525, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12507, libc.VaList(bp+8, zName)) + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6589, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12632, libc.VaList(bp+8, zName)) return int32(SQLITE_ERROR) } } @@ -99606,9 +100167,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Special case: Parsing the sqlite_schema or sqlite_temp_schema schema */ iDb = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6533 + v1 = __ccgo_ts + 6597 } else { - v1 = __ccgo_ts + 6066 + v1 = __ccgo_ts + 6130 } zName = _sqlite3DbStrDup(tls, db, v1) *(*uintptr)(unsafe.Pointer(bp)) = pName1 @@ -99621,7 +100182,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 && (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) && iDb != int32(1) { /* If creating a temp table, the name may not be qualified. Unless ** the database name is "temp" anyway. */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12549, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12674, 0) return } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 { @@ -99637,9 +100198,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui return } if isView != 0 { - v2 = __ccgo_ts + 10796 + v2 = __ccgo_ts + 10921 } else { - v2 = __ccgo_ts + 9058 + v2 = __ccgo_ts + 9183 } if _sqlite3CheckObjectName(tls, pParse, zName, v2, zName) != 0 { goto begin_table_error @@ -99651,9 +100212,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui _ = libc.Int32FromInt32(0) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp == int32(1) { - v3 = __ccgo_ts + 6533 + v3 = __ccgo_ts + 6597 } else { - v3 = __ccgo_ts + 6066 + v3 = __ccgo_ts + 6130 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto begin_table_error @@ -99677,11 +100238,11 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if pTable != 0 { if !(noErr != 0) { if int32((*TTable)(unsafe.Pointer(pTable)).FeTabType) == int32(TABTYP_VIEW) { - v4 = __ccgo_ts + 10796 + v4 = __ccgo_ts + 10921 } else { - v4 = __ccgo_ts + 9058 + v4 = __ccgo_ts + 9183 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12590, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12715, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -99690,7 +100251,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui goto begin_table_error } if _sqlite3FindIndex(tls, db, zName, zDb1) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12611, libc.VaList(bp+16, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12736, libc.VaList(bp+16, zName)) goto begin_table_error } } @@ -99782,6 +100343,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Normal (non-error) return. */ return /* If an error occurs, we jump here */ + goto begin_table_error begin_table_error: ; (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) @@ -99845,7 +100407,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { _, _, _ = db, pHash, pRet db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12646, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12771, 0) } else { _ = libc.Int32FromInt32(0) } @@ -99862,7 +100424,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return } - Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+12680, libc.VaList(bp+8, pParse)) + Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+12805, libc.VaList(bp+8, pParse)) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.FzName = pRet + 196 (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Fop = uint8(TK_RETURNING) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Ftr_tm = uint8(TRIGGER_AFTER) @@ -99910,7 +100472,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok return } if int32((*TTable)(unsafe.Pointer(p)).FnCol)+int32(1) > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12700, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12825, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) return } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -99920,12 +100482,12 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok ** by the parser, we can sometimes end up with a typename that ends ** with "generated always". Check for this case and omit the surplus ** text. */ - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12723, int32(6)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12848, int32(6)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(6) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- } - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12730, int32(9)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12855, int32(9)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(9) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- @@ -99974,7 +100536,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok break } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FhName) == int32(hName) && _sqlite3StrICmp(tls, z, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FzCnName) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12740, libc.VaList(bp+40, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12865, libc.VaList(bp+40, z)) _sqlite3DbFree(tls, db, z) return } @@ -100184,10 +100746,10 @@ func _sqlite3AddDefaultValue(tls *libc.TLS, pParse uintptr, pExpr uintptr, zStar isInit = libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) != int32(1)) pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(p)).FnCol)-int32(1))*16 if !(_sqlite3ExprIsConstantOrFunction(tls, pExpr, uint8(isInit)) != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12766, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12891, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12811, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12936, 0) } else { libc.Xmemset(tls, bp, 0, uint64(72)) (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_SPAN) @@ -100245,7 +100807,7 @@ func _makeColumnPartOfPrimaryKey(tls *libc.TLS, pParse uintptr, pCol uintptr) { p1 = pCol + 14 *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(COLFLAG_PRIMKEY)) if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12852, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12977, 0) } } @@ -100282,7 +100844,7 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError goto primary_key_exit } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasPrimaryKey) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12904, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13029, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto primary_key_exit } *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_HasPrimaryKey) @@ -100341,12 +100903,13 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError _sqlite3HasExplicitNulls(tls, pParse, pList) } else { if autoInc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12945, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13070, 0) } else { _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), pList, onError, uintptr(0), uintptr(0), sortOrder, 0, uint8(SQLITE_IDXTYPE_PRIMARYKEY)) pList = uintptr(0) } } + goto primary_key_exit primary_key_exit: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) @@ -100457,17 +101020,17 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui } pCol = (*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-int32(1))*16 if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) == int32(PARSE_MODE_DECLARE_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13001, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13126, 0) goto generated_done } if int32((*TColumn)(unsafe.Pointer(pCol)).FiDflt) > 0 { goto generated_error } if pType != 0 { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13044, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13169, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { /* no-op */ } else { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13052, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13177, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { eType = uint8(COLFLAG_STORED) } else { goto generated_error @@ -100498,9 +101061,11 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui _sqlite3ColumnSetExpr(tls, pParse, pTab, pCol, pExpr) pExpr = uintptr(0) goto generated_done + goto generated_error generated_error: ; - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13059, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13184, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + goto generated_done generated_done: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -100663,13 +101228,13 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { } n += _identLength(tls, (*TTable)(unsafe.Pointer(p)).FzName) if n < int32(50) { - zSep = __ccgo_ts + 1648 - zSep2 = __ccgo_ts + 13090 - zEnd = __ccgo_ts + 5106 + zSep = __ccgo_ts + 1662 + zSep2 = __ccgo_ts + 13215 + zEnd = __ccgo_ts + 5170 } else { - zSep = __ccgo_ts + 13092 - zSep2 = __ccgo_ts + 13096 - zEnd = __ccgo_ts + 13101 + zSep = __ccgo_ts + 13217 + zSep2 = __ccgo_ts + 13221 + zEnd = __ccgo_ts + 13226 } n += int32(35) + int32(6)*int32((*TTable)(unsafe.Pointer(p)).FnCol) zStmt = _sqlite3DbMallocRaw(tls, uintptr(0), uint64(n)) @@ -100677,7 +101242,7 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { _sqlite3OomFault(tls, db) return uintptr(0) } - Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13104, 0) + Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13229, 0) *(*int32)(unsafe.Pointer(bp)) = _sqlite3Strlen30(tls, zStmt) _identPut(tls, zStmt, bp, (*TTable)(unsafe.Pointer(p)).FzName) v2 = *(*int32)(unsafe.Pointer(bp)) @@ -100707,17 +101272,17 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { i++ pCol += 16 } - Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3795, libc.VaList(bp+16, zEnd)) + Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3859, libc.VaList(bp+16, zEnd)) return zStmt } var _azType1 = [6]uintptr{ - 0: __ccgo_ts + 1648, - 1: __ccgo_ts + 13118, - 2: __ccgo_ts + 13124, - 3: __ccgo_ts + 13129, - 4: __ccgo_ts + 13134, - 5: __ccgo_ts + 13124, + 0: __ccgo_ts + 1662, + 1: __ccgo_ts + 13243, + 2: __ccgo_ts + 13249, + 3: __ccgo_ts + 13254, + 4: __ccgo_ts + 13259, + 5: __ccgo_ts + 13249, } // C documentation @@ -101316,13 +101881,13 @@ func _sqlite3ShadowTableName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr, tabOpts Tu32, pSelect uintptr) { bp := tls.Alloc(112) defer tls.Free(112) - var addrInsLoop, addrTop, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v4, v6, v8 int32 + var addrInsLoop, addrTop, iCsr, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v10, v4, v6, v8 int32 var colFlags Tu32 - var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v5, v7, v9 uintptr - var v10 Ti16 + var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v13, v5, v7, v9 uintptr + var v12 Ti16 var _ /* dest at bp+0 */ TSelectDest - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v4, v5, v6, v7, v8, v9 /* The new table */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iCsr, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v12, v13, v4, v5, v6, v7, v8, v9 /* The new table */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ if pEnd == uintptr(0) && pSelect == uintptr(0) { return } @@ -101344,7 +101909,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if pSelect != 0 || !(int32((*TTable)(unsafe.Pointer(p)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) && (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1648, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1662, 0) return } (*TTable)(unsafe.Pointer(p)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum @@ -101371,9 +101936,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(ii)*16 if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf0>>4)) == COLTYPE_CUSTOM { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_HASTYPE) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13140, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1648))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13265, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1662))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13173, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13298, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } return } else { @@ -101396,11 +101961,11 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* Special processing for WITHOUT ROWID Tables */ if tabOpts&uint32(TF_WithoutRowid) != 0 { if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13200, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13325, 0) return } if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasPrimaryKey) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13250, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13375, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) return } *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) @@ -101447,7 +102012,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ii1++ } if nNG == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13282, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13407, 0) return } } @@ -101481,12 +102046,12 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if int32((*TTable)(unsafe.Pointer(p)).FeTabType) == TABTYP_NORM { /* A regular table */ - zType = __ccgo_ts + 9058 - zType2 = __ccgo_ts + 13326 + zType = __ccgo_ts + 9183 + zType2 = __ccgo_ts + 13451 } else { /* A view */ - zType = __ccgo_ts + 10796 - zType2 = __ccgo_ts + 13332 + zType = __ccgo_ts + 10921 + zType2 = __ccgo_ts + 13457 } /* If this is a CREATE TABLE xx AS SELECT ..., execute the SELECT ** statement to populate the new table. The root-page number for the @@ -101501,29 +102066,31 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** a schema-lock excludes all other database users, the write-lock would ** be redundant. */ - if pSelect != 0 { /* A table that describes the SELECT results */ + if pSelect != 0 { /* Write cursor on the new table */ if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) (*TParse)(unsafe.Pointer(pParse)).FnErr++ return } - v5 = pParse + 56 - *(*int32)(unsafe.Pointer(v5))++ + v5 = pParse + 52 v4 = *(*int32)(unsafe.Pointer(v5)) - regYield = v4 + *(*int32)(unsafe.Pointer(v5))++ + iCsr = v4 v7 = pParse + 56 *(*int32)(unsafe.Pointer(v7))++ v6 = *(*int32)(unsafe.Pointer(v7)) - regRec = v6 + regYield = v6 v9 = pParse + 56 *(*int32)(unsafe.Pointer(v9))++ v8 = *(*int32)(unsafe.Pointer(v9)) - regRowid = v8 - _ = libc.Int32FromInt32(0) + regRec = v8 + v11 = pParse + 56 + *(*int32)(unsafe.Pointer(v11))++ + v10 = *(*int32)(unsafe.Pointer(v11)) + regRowid = v10 _sqlite3MayAbort(tls, pParse) - _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), int32(1), (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) + _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), iCsr, (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_P2ISREG)) - (*TParse)(unsafe.Pointer(pParse)).FnTab = int32(2) addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { @@ -101534,9 +102101,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr return } _ = libc.Int32FromInt32(0) - v10 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol - (*TTable)(unsafe.Pointer(p)).FnNVCol = v10 - (*TTable)(unsafe.Pointer(p)).FnCol = v10 + v12 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol + (*TTable)(unsafe.Pointer(p)).FnNVCol = v12 + (*TTable)(unsafe.Pointer(p)).FnCol = v12 (*TTable)(unsafe.Pointer(p)).FaCol = (*TTable)(unsafe.Pointer(pSelTab)).FaCol (*TTable)(unsafe.Pointer(pSelTab)).FnCol = 0 (*TTable)(unsafe.Pointer(pSelTab)).FaCol = uintptr(0) @@ -101551,33 +102118,33 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr addrInsLoop = _sqlite3VdbeAddOp1(tls, v, int32(OP_Yield), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSDParm) _sqlite3VdbeAddOp3(tls, v, int32(OP_MakeRecord), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst, (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst, regRec) _sqlite3TableAffinity(tls, v, p, 0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), int32(1), regRowid) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), int32(1), regRec, regRowid) + _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iCsr, regRowid) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iCsr, regRec, regRowid) _sqlite3VdbeGoto(tls, v, addrInsLoop) _sqlite3VdbeJumpHere(tls, v, addrInsLoop) - _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), int32(1)) + _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), iCsr) } /* Compute the complete text of the CREATE statement */ if pSelect != 0 { zStmt = _createTableStmt(tls, db, p) } else { if tabOpts != 0 { - v11 = pParse + 288 + v13 = pParse + 288 } else { - v11 = pEnd + v13 = pEnd } - pEnd2 = v11 + pEnd2 = v13 n = int32(int64((*TToken)(unsafe.Pointer(pEnd2)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) if int32(*(*uint8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pEnd2)).Fz))) != int32(';') { n = int32(uint32(n) + (*TToken)(unsafe.Pointer(pEnd2)).Fn) } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13337, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13462, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) } /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13352, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13477, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) _sqlite3DbFree(tls, db, zStmt) _sqlite3ChangeCookie(tls, pParse, iDb) /* Check to see if we need to create an sqlite_sequence table for @@ -101587,17 +102154,16 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 _ = libc.Int32FromInt32(0) if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).FpSeqTab == uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13450, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13575, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) } } /* Reparse everything to update our internal data structures */ - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13492, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13617, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) /* Test for cycles in generated columns and illegal expressions ** in CHECK constraints and in DEFAULT clauses. */ if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasGenerated) != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13526, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(0x0001), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13651, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13547, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } /* Add the table to the in-memory representation of the database. */ @@ -101617,7 +102183,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** then record a pointer to this table in the main database structure ** so that INSERT can find the table easily. */ _ = libc.Int32FromInt32(0) - if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9580) == 0 { + if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9705) == 0 { _ = libc.Int32FromInt32(0) (*TSchema)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FpSchema)).FpSeqTab = p } @@ -101652,7 +102218,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*uintptr)(unsafe.Pointer(bp + 112)) = uintptr(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if int32((*TParse)(unsafe.Pointer(pParse)).FnVar) > 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13579, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13672, 0) goto create_view_fail } _sqlite3StartTable(tls, pParse, pName1, pName2, isTemp, int32(1), 0, noErr) @@ -101669,7 +102235,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(TF_NoVisibleRowid) /* Never allow rowid in view */ _sqlite3TwoPartName(tls, pParse, pName1, pName2, bp+112) iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(p)).FpSchema) - _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+10796, *(*uintptr)(unsafe.Pointer(bp + 112))) + _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+10921, *(*uintptr)(unsafe.Pointer(bp + 112))) if _sqlite3FixSelect(tls, bp+16, pSelect) != 0 { goto create_view_fail } @@ -101713,6 +102279,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui (*(*TToken)(unsafe.Pointer(bp))).Fn = uint32(1) /* Use sqlite3EndTable() to add the view to the schema table */ _sqlite3EndTable(tls, pParse, uintptr(0), bp, uint32(0), uintptr(0)) + goto create_view_fail create_view_fail: ; _sqlite3SelectDelete(tls, db, pSelect) @@ -101768,7 +102335,7 @@ func _viewGetColumnNames(tls *libc.TLS, pParse uintptr, pTable uintptr) (r int32 ** SELECT * FROM temp.ex1; */ if int32((*TTable)(unsafe.Pointer(pTable)).FnCol) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13615, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13708, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) return int32(1) } _ = libc.Int32FromInt32(0) @@ -101960,7 +102527,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { v = _sqlite3GetVdbe(tls, pParse) r1 = _sqlite3GetTempReg(tls, pParse) if iTable < int32(2) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13645, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13738, 0) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Destroy), iTable, r1, iDb) _sqlite3MayAbort(tls, pParse) @@ -101973,7 +102540,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { ** is in register NNN. See grammar rules associated with the TK_REGISTER ** token for additional information. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13660, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13753, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) _sqlite3ReleaseTempReg(tls, pParse, r1) } @@ -102058,9 +102625,9 @@ func _sqlite3ClearStatTables(tls *libc.TLS, pParse uintptr, iDb int32, zType uin if !(i <= int32(4)) { break } - Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13727, libc.VaList(bp+32, i)) + Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13820, libc.VaList(bp+32, i)) if _sqlite3FindTable(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, bp, zDbName) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11685, libc.VaList(bp+32, zDbName, bp, zType, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11810, libc.VaList(bp+32, zDbName, bp, zType, zName)) } goto _1 _1: @@ -102103,7 +102670,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** move as a result of the drop (can happen in auto-vacuum mode). */ if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13741, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13834, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* Drop all entries in the schema table that refer to the ** table. The program name loops through the schema table and deletes @@ -102112,7 +102679,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** created in the temp database that refers to a table in another ** database. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13786, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13879, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !(isView != 0) && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { _destroyTable(tls, pParse, pTab) } @@ -102147,11 +102714,11 @@ func _sqlite3ReadOnlyShadowTables(tls *libc.TLS, db uintptr) (r int32) { // ** Return true if it is not allowed to drop the given table // */ func _tableMayNotBeDropped(tls *libc.TLS, db uintptr, pTab uintptr) (r int32) { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6525, int32(7)) == 0 { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3418, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6589, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3482, int32(4)) == 0 { return 0 } - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7266, int32(10)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7391, int32(10)) == 0 { return 0 } return int32(1) @@ -102210,9 +102777,9 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6533 + v1 = __ccgo_ts + 6597 } else { - v1 = __ccgo_ts + 6066 + v1 = __ccgo_ts + 6130 } zTab = v1 zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName @@ -102245,18 +102812,18 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if _tableMayNotBeDropped(tls, db, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13853, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13946, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Ensure DROP TABLE is not used on a view, and DROP VIEW is not used ** on a table. */ if isView != 0 && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13881, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13974, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } if !(isView != 0) && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13915, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14008, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Generate code to remove the table from the schema table @@ -102266,11 +102833,12 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) if !(isView != 0) { - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11797, (*TTable)(unsafe.Pointer(pTab)).FzName) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11922, (*TTable)(unsafe.Pointer(pTab)).FzName) _sqlite3FkDropTable(tls, pParse, pName, pTab) } _sqlite3CodeDropTable(tls, pParse, pTab, iDb, isView) } + goto exit_drop_table exit_drop_table: ; _sqlite3SrcListDelete(tls, db, pName) @@ -102314,13 +102882,13 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p goto fk_end } if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13947, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14040, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) goto fk_end } nCol = int32(1) } else { if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14010, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14103, 0) goto fk_end } else { nCol = (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr @@ -102384,7 +102952,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p j++ } if j >= int32((*TTable)(unsafe.Pointer(p)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14104, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14197, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) goto fk_end } if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { @@ -102439,6 +103007,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p FpDfltList uintptr })(unsafe.Pointer(p + 64))).FpFKey = pFKey pFKey = uintptr(0) + goto fk_end fk_end: ; _sqlite3DbFree(tls, db, pFKey) @@ -102647,11 +103216,11 @@ func _sqlite3HasExplicitNulls(tls *libc.TLS, pParse uintptr, pList uintptr) (r i if int32(uint32(*(*uint16)(unsafe.Pointer(pList + 8 + uintptr(i)*32 + 16 + 4))&0x20>>5)) != 0 { sf = (*(*TExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32))).Ffg.FsortFlags if int32(sf) == 0 || int32(sf) == int32(3) { - v2 = __ccgo_ts + 14150 + v2 = __ccgo_ts + 14243 } else { - v2 = __ccgo_ts + 14156 + v2 = __ccgo_ts + 14249 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14161, libc.VaList(bp+8, v2)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14254, libc.VaList(bp+8, v2)) return int32(1) } goto _1 @@ -102733,7 +103302,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = int32(1) } } - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14189, *(*uintptr)(unsafe.Pointer(bp + 96))) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14282, *(*uintptr)(unsafe.Pointer(bp + 96))) if _sqlite3FixSrcList(tls, bp, pTblName) != 0 { /* Because the parser constructs pTblName from a single identifier, ** sqlite3FixSrcList can never fail. */ @@ -102745,7 +103314,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } if iDb == int32(1) && (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema != (*TTable)(unsafe.Pointer(pTab)).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14195, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14288, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { @@ -102762,16 +103331,16 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 _ = libc.Int32FromInt32(0) - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6525, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14245, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6589, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14338, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14273, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14366, 0) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14298, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14391, 0) goto exit_create_index } /* @@ -102793,19 +103362,19 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } _ = libc.Int32FromInt32(0) - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14189, (*TTable)(unsafe.Pointer(pTab)).FzName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14282, (*TTable)(unsafe.Pointer(pTab)).FzName) { goto exit_create_index } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if !((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0) { if _sqlite3FindTable(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14332, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14425, libc.VaList(bp+136, zName)) goto exit_create_index } } if _sqlite3FindIndex(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { if !(ifNotExist != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14366, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14459, libc.VaList(bp+136, zName)) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -102827,7 +103396,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pLoop = (*TIndex)(unsafe.Pointer(pLoop)).FpNext n++ } - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14390, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14483, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) if zName == uintptr(0) { goto exit_create_index } @@ -102845,9 +103414,9 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { zDb = (*TDb)(unsafe.Pointer(pDb)).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6533 + v2 = __ccgo_ts + 6597 } else { - v2 = __ccgo_ts + 6066 + v2 = __ccgo_ts + 6130 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v2, uintptr(0), zDb) != 0 { goto exit_create_index @@ -102876,7 +103445,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u _ = libc.Int32FromInt32(0) _sqlite3ExprListSetSortOrder(tls, pList, sortOrder, -int32(1)) } else { - _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14189) + _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14282) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { goto exit_create_index } @@ -102966,7 +103535,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pCExpr = _sqlite3ExprSkipCollate(tls, (*TExprList_item)(unsafe.Pointer(pListItem)).FpExpr) if int32((*TExpr)(unsafe.Pointer(pCExpr)).Fop) != int32(TK_COLUMN) { if pTab == (*TParse)(unsafe.Pointer(pParse)).FpNewTable { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14413, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14506, 0) goto exit_create_index } if (*TIndex)(unsafe.Pointer(pIndex)).FaColExpr == uintptr(0) { @@ -103123,7 +103692,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u ** explicitly specified behavior for the index. */ if !(int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) || int32((*TIndex)(unsafe.Pointer(pIndex)).FonError) == int32(OE_Default)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14474, libc.VaList(bp+136, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14567, libc.VaList(bp+136, 0)) } if int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) { (*TIndex)(unsafe.Pointer(pIdx)).FonError = (*TIndex)(unsafe.Pointer(pIndex)).FonError @@ -103156,8 +103725,8 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != uintptr(0) { (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14516, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125123)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14609, 0) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125741)) goto exit_create_index } } @@ -103198,11 +103767,11 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* A named index with an explicit CREATE INDEX statement */ if onError == OE_None { - v13 = __ccgo_ts + 1648 + v13 = __ccgo_ts + 1662 } else { - v13 = __ccgo_ts + 14533 + v13 = __ccgo_ts + 14626 } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14541, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14634, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) } else { /* An automatic index created by a PRIMARY KEY or UNIQUE constraint */ /* zStmt = sqlite3MPrintf(""); */ @@ -103210,7 +103779,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* Add an entry in sqlite_schema for this index */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14561, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14654, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) _sqlite3DbFree(tls, db, zStmt) /* Fill the index with data and reparse the schema. Code an OP_Expire ** to invalidate all pre-compiled statements. @@ -103218,7 +103787,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != 0 { _sqlite3RefillIndex(tls, pParse, pIndex, iMem) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14620, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14713, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Expire), 0, int32(1)) } _sqlite3VdbeJumpHere(tls, v, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum)) @@ -103237,6 +103806,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } } /* Clean up before exiting */ + goto exit_create_index exit_create_index: ; if pIndex != 0 { @@ -103387,7 +103957,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pIndex = _sqlite3FindIndex(tls, db, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzName, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) if pIndex == uintptr(0) { if !(ifExists != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14647, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14740, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) _sqlite3ForceNotReadOnly(tls, pParse) @@ -103396,7 +103966,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in goto exit_drop_index } if int32(uint32(*(*uint16)(unsafe.Pointer(pIndex + 100))&0x3>>0)) != SQLITE_IDXTYPE_APPDEF { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14665, libc.VaList(bp+8, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14758, libc.VaList(bp+8, 0)) goto exit_drop_index } iDb = _sqlite3SchemaToIndex(tls, db, (*TIndex)(unsafe.Pointer(pIndex)).FpSchema) @@ -103404,9 +103974,9 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pTab = (*TIndex)(unsafe.Pointer(pIndex)).FpTable zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6533 + v1 = __ccgo_ts + 6597 } else { - v1 = __ccgo_ts + 6066 + v1 = __ccgo_ts + 6130 } zTab = v1 if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_DELETE), zTab, uintptr(0), zDb) != 0 { @@ -103422,12 +103992,13 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in v = _sqlite3GetVdbe(tls, pParse) if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14738, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11793, (*TIndex)(unsafe.Pointer(pIndex)).FzName) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14831, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11918, (*TIndex)(unsafe.Pointer(pIndex)).FzName) _sqlite3ChangeCookie(tls, pParse, iDb) _destroyRootPage(tls, pParse, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum), iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropIndex), iDb, 0, 0, (*TIndex)(unsafe.Pointer(pIndex)).FzName, 0) } + goto exit_drop_index exit_drop_index: ; _sqlite3SrcListDelete(tls, db, pName) @@ -103619,7 +104190,7 @@ func _sqlite3SrcListEnlarge(tls *libc.TLS, pParse uintptr, pSrc uintptr, nExtra nAlloc = int64(2)*int64((*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) + int64(nExtra) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc+nExtra >= int32(SQLITE_MAX_SRCLIST) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14798, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14891, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) return uintptr(0) } if nAlloc > int64(SQLITE_MAX_SRCLIST) { @@ -103856,11 +104427,11 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa db = (*TParse)(unsafe.Pointer(pParse)).Fdb if !(p != 0) && pOnUsing != uintptr(0) && ((*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 || (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpUsing != 0) { if (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 { - v1 = __ccgo_ts + 14834 + v1 = __ccgo_ts + 14927 } else { - v1 = __ccgo_ts + 14837 + v1 = __ccgo_ts + 14930 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14843, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14936, libc.VaList(bp+8, v1)) goto append_from_error } p = _sqlite3SrcListAppend(tls, pParse, p, pTable, pDatabase) @@ -103903,6 +104474,7 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa } } return p + goto append_from_error append_from_error: ; _ = libc.Int32FromInt32(0) @@ -104076,7 +104648,7 @@ func _sqlite3BeginTransaction(tls *libc.TLS, pParse uintptr, type1 int32) { _ = libc.Int32FromInt32(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb _ = libc.Int32FromInt32(0) - if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14879, uintptr(0), uintptr(0)) != 0 { + if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14972, uintptr(0), uintptr(0)) != 0 { return } v = _sqlite3GetVdbe(tls, pParse) @@ -104126,9 +104698,9 @@ func _sqlite3EndTransaction(tls *libc.TLS, pParse uintptr, eType int32) { _ = libc.Int32FromInt32(0) isRollback = libc.BoolInt32(eType == int32(TK_ROLLBACK)) if isRollback != 0 { - v1 = __ccgo_ts + 14885 + v1 = __ccgo_ts + 14978 } else { - v1 = __ccgo_ts + 14894 + v1 = __ccgo_ts + 14987 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), v1, uintptr(0), uintptr(0)) != 0 { return @@ -104161,9 +104733,9 @@ func _sqlite3Savepoint(tls *libc.TLS, pParse uintptr, op int32, pName uintptr) { } var _az = [3]uintptr{ - 0: __ccgo_ts + 14879, - 1: __ccgo_ts + 14901, - 2: __ccgo_ts + 14885, + 0: __ccgo_ts + 14972, + 1: __ccgo_ts + 14994, + 2: __ccgo_ts + 14978, } // C documentation @@ -104183,7 +104755,7 @@ func _sqlite3OpenTempDatabase(tls *libc.TLS, pParse uintptr) (r int32) { if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt == uintptr(0) && !((*TParse)(unsafe.Pointer(pParse)).Fexplain != 0) { rc = _sqlite3BtreeOpen(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), db, bp, 0, _flags) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14909, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15002, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = rc return int32(1) } @@ -104374,7 +104946,7 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable _sqlite3StrAccumInit(tls, bp, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), 0, *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136))) if (*TIndex)(unsafe.Pointer(pIdx)).FaColExpr != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+14979, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+15072, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) } else { j = 0 for { @@ -104384,10 +104956,10 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx _ = libc.Int32FromInt32(0) zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)))*16))).FzCnName if j != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+14990, int32(2)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+15083, int32(2)) } Xsqlite3_str_appendall(tls, bp, (*TTable)(unsafe.Pointer(pTab)).FzName) - Xsqlite3_str_append(tls, bp, __ccgo_ts+1661, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+1675, int32(1)) Xsqlite3_str_appendall(tls, bp, zCol) goto _1 _1: @@ -104416,10 +104988,10 @@ func _sqlite3RowidConstraint(tls *libc.TLS, pParse uintptr, onError int32, pTab var zMsg uintptr _, _ = rc, zMsg if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12381, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12506, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(6)< libc.BoolInt32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15109, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15202, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } return 0 } @@ -105548,11 +106120,11 @@ func _sqlite3IsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr, pTrigger ui bp := tls.Alloc(16) defer tls.Free(16) if _tabIsReadOnly(tls, pParse, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15142, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15235, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && (pTrigger == uintptr(0) || (*TTrigger)(unsafe.Pointer(pTrigger)).FbReturning != 0 && (*TTrigger)(unsafe.Pointer(pTrigger)).FpNext == uintptr(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15171, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15264, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -105977,8 +106549,9 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** invoke the callback function. */ if memCnt != 0 { - _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15209) + _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15302) } + goto delete_from_cleanup delete_from_cleanup: ; _sqlite3AuthContextPop(tls, bp+8) @@ -106125,7 +106698,7 @@ func _sqlite3GenerateRowDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, pTri v3 = 0 } _sqlite3VdbeAddOp2(tls, v, int32(OP_Delete), iDataCur, v3) - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11582) { + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11707) { _sqlite3VdbeAppendP4(tls, v, pTab, -int32(5)) } if int32(eMode) != ONEPASS_OFF { @@ -106443,11 +107016,11 @@ func _typeofFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } var _azType2 = [5]uintptr{ - 0: __ccgo_ts + 6306, - 1: __ccgo_ts + 6301, - 2: __ccgo_ts + 8197, - 3: __ccgo_ts + 8192, - 4: __ccgo_ts + 1634, + 0: __ccgo_ts + 6370, + 1: __ccgo_ts + 6365, + 2: __ccgo_ts + 8322, + 3: __ccgo_ts + 8317, + 4: __ccgo_ts + 1648, } // C documentation @@ -106564,7 +107137,7 @@ func _absFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { /* IMP: R-31676-45509 If X is the integer -9223372036854775808 ** then abs(X) throws an integer overflow error since there is no ** equivalent positive 64-bit two complement value. */ - Xsqlite3_result_error(tls, context, __ccgo_ts+15222, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15315, -int32(1)) return } iVal = -iVal @@ -106659,11 +107232,13 @@ func _instrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } Xsqlite3_result_int(tls, context, N) + goto endInstr endInstr: ; Xsqlite3_value_free(tls, pC1) Xsqlite3_value_free(tls, pC2) return + goto endInstrOOM endInstrOOM: ; Xsqlite3_result_error_nomem(tls, context) @@ -106881,7 +107456,7 @@ func _roundFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } *(*float64)(unsafe.Pointer(bp)) = float64(int64(*(*float64)(unsafe.Pointer(bp)) + v1)) } else { - zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15239, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) + zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15332, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) if zBuf == uintptr(0) { Xsqlite3_result_error_nomem(tls, context) return @@ -107465,7 +108040,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { */ nPat = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) if nPat > *(*int32)(unsafe.Pointer(db + 136 + 8*4)) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15245, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15338, -int32(1)) return } if argc == int32(3) { @@ -107477,7 +108052,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { return } if _sqlite3Utf8CharLen(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), -int32(1)) != int32(1) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15278, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15371, -int32(1)) return } escape = _sqlite3Utf8Read(tls, bp+8) @@ -107559,7 +108134,7 @@ func _errlogFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { defer tls.Free(16) _ = argc _ = context - Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) + Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) } // C documentation @@ -107649,17 +108224,17 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_FLOAT): r1 = Xsqlite3_value_double(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15323, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15416, libc.VaList(bp+16, r1)) zVal = Xsqlite3_str_value(tls, pStr) if zVal != 0 { _sqlite3AtoF(tls, zVal, bp, int32((*TStrAccum)(unsafe.Pointer(pStr)).FnChar), uint8(SQLITE_UTF8)) if r1 != *(*float64)(unsafe.Pointer(bp)) { Xsqlite3_str_reset(tls, pStr) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15331, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15424, libc.VaList(bp+16, r1)) } } case int32(SQLITE_INTEGER): - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1404, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1423, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) case int32(SQLITE_BLOB): zBlob = Xsqlite3_value_blob(tls, pValue) nBlob = int64(Xsqlite3_value_bytes(tls, pValue)) @@ -107687,10 +108262,10 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { } case int32(SQLITE_TEXT): zArg = Xsqlite3_value_text(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15339, libc.VaList(bp+16, zArg)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15432, libc.VaList(bp+16, zArg)) default: _ = libc.Int32FromInt32(0) - Xsqlite3_str_append(tls, pStr, __ccgo_ts+1649, int32(4)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+1663, int32(4)) break } } @@ -107929,7 +108504,7 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { var v3 uint32 var _ /* zHex at bp+0 */ uintptr _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, ch, d, nHex, nPass, p, pBlob, zPass, v1, v2, v3, v4, v5, v6 - zPass = __ccgo_ts + 1648 + zPass = __ccgo_ts + 1662 nPass = 0 *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) nHex = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) @@ -107985,10 +108560,12 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { *(*Tu8)(unsafe.Pointer(v6)) = uint8(int32(_sqlite3HexToInt(tls, int32(c)))< 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fapprox != 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fovrfl != 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+15222, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15315, -int32(1)) } else { if !(_sqlite3IsOverflow(tls, (*TSumCtx)(unsafe.Pointer(p)).FrErr) != 0) { Xsqlite3_result_double(tls, context, (*TSumCtx)(unsafe.Pointer(p)).FrSum+(*TSumCtx)(unsafe.Pointer(p)).FrErr) @@ -109014,7 +109591,7 @@ func _groupConcatValue(tls *libc.TLS, context uintptr) { func _sqlite3RegisterPerConnectionBuiltinFunctions(tls *libc.TLS, db uintptr) { var rc int32 _ = rc - rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15347, int32(2)) + rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15440, int32(2)) _ = libc.Int32FromInt32(0) if rc == int32(SQLITE_NOMEM) { _sqlite3OomFault(tls, db) @@ -109044,8 +109621,8 @@ func _sqlite3RegisterLikeFunctions(tls *libc.TLS, db uintptr, caseSensitive int3 if !(nArg <= int32(3)) { break } - _sqlite3CreateFunc(tls, db, __ccgo_ts+15353, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15353, nArg, uint8(SQLITE_UTF8), uint8(0)) + _sqlite3CreateFunc(tls, db, __ccgo_ts+15446, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15446, nArg, uint8(SQLITE_UTF8), uint8(0)) *(*Tu32)(unsafe.Pointer(pDef + 4)) |= uint32(flags) *(*Tu32)(unsafe.Pointer(pDef + 4)) &= uint32(^libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)) goto _1 @@ -109365,562 +109942,562 @@ var _aBuiltinFunc = [110]TFuncDef{ FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_implies_nonnull_row))), - FzName: __ccgo_ts + 15358, + FzName: __ccgo_ts + 15451, }, 1: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_compare))), - FzName: __ccgo_ts + 15378, + FzName: __ccgo_ts + 15471, }, 2: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_implies_expr))), - FzName: __ccgo_ts + 15391, + FzName: __ccgo_ts + 15484, }, 3: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_affinity))), - FzName: __ccgo_ts + 15409, + FzName: __ccgo_ts + 15502, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15418, + FzName: __ccgo_ts + 15511, }, 5: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15426, + FzName: __ccgo_ts + 15519, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15426, + FzName: __ccgo_ts + 15519, }, 7: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15441, + FzName: __ccgo_ts + 15534, }, 8: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15467, + FzName: __ccgo_ts + 15560, }, 9: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15492, + FzName: __ccgo_ts + 15585, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15501, + FzName: __ccgo_ts + 15594, }, 11: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15512, + FzName: __ccgo_ts + 15605, }, 12: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_sqlite_offset))), - FzName: __ccgo_ts + 15519, + FzName: __ccgo_ts + 15612, }, 13: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15533, + FzName: __ccgo_ts + 15626, }, 14: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15533, + FzName: __ccgo_ts + 15626, }, 15: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15539, + FzName: __ccgo_ts + 15632, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15539, + FzName: __ccgo_ts + 15632, }, 17: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15545, + FzName: __ccgo_ts + 15638, }, 18: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15545, + FzName: __ccgo_ts + 15638, }, 19: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15550, + FzName: __ccgo_ts + 15643, }, 20: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15550, + FzName: __ccgo_ts + 15643, }, 21: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15550, + FzName: __ccgo_ts + 15643, }, 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 23: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 24: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 25: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15558, + FzName: __ccgo_ts + 15651, }, 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15565, + FzName: __ccgo_ts + 15658, }, 27: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_LENGTH)), - FzName: __ccgo_ts + 15573, + FzName: __ccgo_ts + 15666, }, 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_BYTELEN)), - FzName: __ccgo_ts + 15580, + FzName: __ccgo_ts + 15673, }, 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15593, + FzName: __ccgo_ts + 15686, }, 30: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15599, + FzName: __ccgo_ts + 15692, }, 31: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15606, + FzName: __ccgo_ts + 15699, }, 32: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15613, + FzName: __ccgo_ts + 15706, }, 33: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15621, + FzName: __ccgo_ts + 15714, }, 34: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15626, + FzName: __ccgo_ts + 15719, }, 35: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15630, + FzName: __ccgo_ts + 15723, }, 36: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15630, + FzName: __ccgo_ts + 15723, }, 37: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15636, + FzName: __ccgo_ts + 15729, }, 38: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15642, + FzName: __ccgo_ts + 15735, }, 39: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15648, + FzName: __ccgo_ts + 15741, }, 40: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15652, + FzName: __ccgo_ts + 15745, }, 41: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15652, + FzName: __ccgo_ts + 15745, }, 42: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15658, + FzName: __ccgo_ts + 15751, }, 43: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15658, + FzName: __ccgo_ts + 15751, }, 44: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15665, + FzName: __ccgo_ts + 15758, }, 45: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15665, + FzName: __ccgo_ts + 15758, }, 46: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15665, + FzName: __ccgo_ts + 15758, }, 47: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15675, + FzName: __ccgo_ts + 15768, }, 48: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15682, + FzName: __ccgo_ts + 15775, }, 49: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15689, + FzName: __ccgo_ts + 15782, }, 50: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15700, + FzName: __ccgo_ts + 15793, }, 51: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15707, + FzName: __ccgo_ts + 15800, }, 52: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15722, + FzName: __ccgo_ts + 15815, }, 53: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15739, + FzName: __ccgo_ts + 15832, }, 54: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15750, + FzName: __ccgo_ts + 15843, }, 55: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15756, + FzName: __ccgo_ts + 15849, }, 56: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15774, + FzName: __ccgo_ts + 15867, }, 57: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15782, + FzName: __ccgo_ts + 15875, }, 58: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15796, + FzName: __ccgo_ts + 15889, }, 59: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15804, + FzName: __ccgo_ts + 15897, }, 60: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15813, + FzName: __ccgo_ts + 15906, }, 61: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15813, + FzName: __ccgo_ts + 15906, }, 62: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15820, + FzName: __ccgo_ts + 15913, }, 63: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15820, + FzName: __ccgo_ts + 15913, }, 64: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15830, + FzName: __ccgo_ts + 15923, }, 65: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15834, + FzName: __ccgo_ts + 15927, }, 66: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15840, + FzName: __ccgo_ts + 15933, }, 67: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_COUNT) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15844, + FzName: __ccgo_ts + 15937, }, 68: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15844, + FzName: __ccgo_ts + 15937, }, 69: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15850, + FzName: __ccgo_ts + 15943, }, 70: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15850, + FzName: __ccgo_ts + 15943, }, 71: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15863, + FzName: __ccgo_ts + 15956, }, 72: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE) | libc.Int32FromInt32(SQLITE_FUNC_CASE)), FpUserData: uintptr(unsafe.Pointer(&_globInfo)), - FzName: __ccgo_ts + 15874, + FzName: __ccgo_ts + 15967, }, 73: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15353, + FzName: __ccgo_ts + 15446, }, 74: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15353, + FzName: __ccgo_ts + 15446, }, 75: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6730, + FzName: __ccgo_ts + 6794, }, 76: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6730, + FzName: __ccgo_ts + 6794, }, 77: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15879, + FzName: __ccgo_ts + 15972, }, 78: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15884, + FzName: __ccgo_ts + 1235, }, 79: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15892, + FzName: __ccgo_ts + 1243, }, 80: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15898, + FzName: __ccgo_ts + 15977, }, 81: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15904, + FzName: __ccgo_ts + 15983, }, 82: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15907, + FzName: __ccgo_ts + 15986, }, 83: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15911, + FzName: __ccgo_ts + 15990, }, 84: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15917, + FzName: __ccgo_ts + 15996, }, 85: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15907, + FzName: __ccgo_ts + 15986, }, 86: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15922, + FzName: __ccgo_ts + 16001, }, 87: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15926, + FzName: __ccgo_ts + 16005, }, 88: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15930, + FzName: __ccgo_ts + 16009, }, 89: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15936, + FzName: __ccgo_ts + 16015, }, 90: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15940, + FzName: __ccgo_ts + 16019, }, 91: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15945, + FzName: __ccgo_ts + 16024, }, 92: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15950, + FzName: __ccgo_ts + 16029, }, 93: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15955, + FzName: __ccgo_ts + 16034, }, 94: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15961, + FzName: __ccgo_ts + 16040, }, 95: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15965, + FzName: __ccgo_ts + 16044, }, 96: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15969, + FzName: __ccgo_ts + 16048, }, 97: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15973, + FzName: __ccgo_ts + 16052, }, 98: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15978, + FzName: __ccgo_ts + 16057, }, 99: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15983, + FzName: __ccgo_ts + 16062, }, 100: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15988, + FzName: __ccgo_ts + 16067, }, 101: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15994, + FzName: __ccgo_ts + 16073, }, 102: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16000, + FzName: __ccgo_ts + 16079, }, 103: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16006, + FzName: __ccgo_ts + 16085, }, 104: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16011, + FzName: __ccgo_ts + 16090, }, 105: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16019, + FzName: __ccgo_ts + 16098, }, 106: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16027, + FzName: __ccgo_ts + 16106, }, 107: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16030, + FzName: __ccgo_ts + 16109, }, 108: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 6730, + FzName: __ccgo_ts + 6794, }, 109: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_iif))), - FzName: __ccgo_ts + 16035, + FzName: __ccgo_ts + 16114, }, } @@ -110401,7 +110978,7 @@ func _sqlite3FkLocateIndex(tls *libc.TLS, pParse uintptr, pParent uintptr, pFKey } if !(pIdx != 0) { if !((*TParse)(unsafe.Pointer(pParse)).FdisableTriggers != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16039, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16118, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) } _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiCol) return int32(1) @@ -111533,11 +112110,11 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr break } *(*TToken)(unsafe.Pointer(bp + 16)) = TToken{ - Fz: __ccgo_ts + 6596, + Fz: __ccgo_ts + 6660, Fn: uint32(3), } /* Literal "old" token */ *(*TToken)(unsafe.Pointer(bp + 32)) = TToken{ - Fz: __ccgo_ts + 6592, + Fz: __ccgo_ts + 6656, Fn: uint32(3), } /* tFromCol = OLD.tToCol */ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -111604,7 +112181,7 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr nFrom = _sqlite3Strlen30(tls, zFrom) if action == int32(OE_Restrict) { iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5225) + pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5289) if pRaise != 0 { (*TExpr)(unsafe.Pointer(pRaise)).FaffExpr = uint8(OE_Abort) } @@ -112212,7 +112789,7 @@ func _sqlite3ComputeGeneratedColumns(tls *libc.TLS, pParse uintptr, iRegStore in } } if pRedo != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8162, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8287, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) } (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 } @@ -112479,6 +113056,226 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { } } +// C documentation +// +// /* +// ** If argument pVal is a Select object returned by an sqlite3MultiValues() +// ** that was able to use the co-routine optimization, finish coding the +// ** co-routine. +// */ +func _sqlite3MultiValuesEnd(tls *libc.TLS, pParse uintptr, pVal uintptr) { + var pItem uintptr + _ = pItem + if pVal != 0 && (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pVal)).FpSrc)).FnSrc > 0 { + pItem = (*TSelect)(unsafe.Pointer(pVal)).FpSrc + 8 + _sqlite3VdbeEndCoroutine(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn) + _sqlite3VdbeJumpHere(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FaddrFillSub-int32(1)) + } +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are constant. +// */ +func _exprListIsConstant(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + if 0 == _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are both constant and have no affinity. +// */ +func _exprListIsNoAffinity(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + var pExpr uintptr + _, _ = ii, pExpr + if _exprListIsConstant(tls, pParse, pRow) == 0 { + return 0 + } + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + pExpr = (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if 0 != int32(_sqlite3ExprAffinity(tls, pExpr)) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** This function is called by the parser for the second and subsequent +// ** rows of a multi-row VALUES clause. Argument pLeft is the part of +// ** the VALUES clause already parsed, argument pRow is the vector of values +// ** for the new row. The Select object returned represents the complete +// ** VALUES clause, including the new row. +// ** +// ** There are two ways in which this may be achieved - by incremental +// ** coding of a co-routine (the "co-routine" method) or by returning a +// ** Select object equivalent to the following (the "UNION ALL" method): +// ** +// ** "pLeft UNION ALL SELECT pRow" +// ** +// ** If the VALUES clause contains a lot of rows, this compound Select +// ** object may consume a lot of memory. +// ** +// ** When the co-routine method is used, each row that will be returned +// ** by the VALUES clause is coded into part of a co-routine as it is +// ** passed to this function. The returned Select object is equivalent to: +// ** +// ** SELECT * FROM ( +// ** Select object to read co-routine +// ** ) +// ** +// ** The co-routine method is used in most cases. Exceptions are: +// ** +// ** a) If the current statement has a WITH clause. This is to avoid +// ** statements like: +// ** +// ** WITH cte AS ( VALUES('x'), ('y') ... ) +// ** SELECT * FROM cte AS a, cte AS b; +// ** +// ** This will not work, as the co-routine uses a hard-coded register +// ** for its OP_Yield instructions, and so it is not possible for two +// ** cursors to iterate through it concurrently. +// ** +// ** b) The schema is currently being parsed (i.e. the VALUES clause is part +// ** of a schema item like a VIEW or TRIGGER). In this case there is no VM +// ** being generated when parsing is taking place, and so generating +// ** a co-routine is not possible. +// ** +// ** c) There are non-constant expressions in the VALUES clause (e.g. +// ** the VALUES clause is part of a correlated sub-query). +// ** +// ** d) One or more of the values in the first row of the VALUES clause +// ** has an affinity (i.e. is a CAST expression). This causes problems +// ** because the complex rules SQLite uses (see function +// ** sqlite3SubqueryColumnTypes() in select.c) to determine the effective +// ** affinity of such a column for all rows require access to all values in +// ** the column simultaneously. +// */ +func _sqlite3MultiValues(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRow uintptr) (r uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var f, v1 int32 + var p, pRet, pSelect, v, v2 uintptr + var _ /* dest at bp+0 */ TSelectDest + _, _, _, _, _, _, _ = f, p, pRet, pSelect, v, v1, v2 + if (*TParse)(unsafe.Pointer(pParse)).FbHasWith != 0 || (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy != 0 || _exprListIsConstant(tls, pParse, pRow) == 0 || (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 && _exprListIsNoAffinity(tls, pParse, (*TSelect)(unsafe.Pointer(pLeft)).FpEList) == 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { + /* The co-routine method cannot be used. Fall back to UNION ALL. */ + pSelect = uintptr(0) + f = libc.Int32FromInt32(SF_Values) | libc.Int32FromInt32(SF_MultiValue) + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc != 0 { + _sqlite3MultiValuesEnd(tls, pParse, pLeft) + f = int32(SF_Values) + } else { + if (*TSelect)(unsafe.Pointer(pLeft)).FpPrior != 0 { + /* In this case set the SF_MultiValue flag only if it was set on pLeft */ + f = int32(uint32(f) & (*TSelect)(unsafe.Pointer(pLeft)).FselFlags) + } + } + pSelect = _sqlite3SelectNew(tls, pParse, pRow, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(f), uintptr(0)) + *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) + if pSelect != 0 { + (*TSelect)(unsafe.Pointer(pSelect)).Fop = uint8(TK_ALL) + (*TSelect)(unsafe.Pointer(pSelect)).FpPrior = pLeft + pLeft = pSelect + } + } else { + p = uintptr(0) /* SrcItem that reads from co-routine */ + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 { + /* Co-routine has not yet been started and the special Select object + ** that accesses the co-routine has not yet been created. This block + ** does both those things. */ + v = _sqlite3GetVdbe(tls, pParse) + pRet = _sqlite3SelectNew(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) + /* Ensure the database schema has been read. This is to ensure we have + ** the correct text encoding. */ + if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmDbFlags&uint32(DBFLAG_SchemaKnownOk) == uint32(0) { + _sqlite3ReadSchema(tls, pParse) + } + if pRet != 0 { + (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pRet)).FpSrc)).FnSrc = int32(1) + (*TSelect)(unsafe.Pointer(pRet)).FpPrior = (*TSelect)(unsafe.Pointer(pLeft)).FpPrior + (*TSelect)(unsafe.Pointer(pRet)).Fop = (*TSelect)(unsafe.Pointer(pLeft)).Fop + (*TSelect)(unsafe.Pointer(pLeft)).FpPrior = uintptr(0) + (*TSelect)(unsafe.Pointer(pLeft)).Fop = uint8(TK_SELECT) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + p = (*TSelect)(unsafe.Pointer(pRet)).FpSrc + 8 + (*TSrcItem)(unsafe.Pointer(p)).FpSelect = pLeft + libc.SetBitFieldPtr16Uint32(p+60+4, libc.Uint32FromInt32(1), 5, 0x20) + (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + v2 = pParse + 56 + *(*int32)(unsafe.Pointer(v2))++ + v1 = *(*int32)(unsafe.Pointer(v2)) + (*TSrcItem)(unsafe.Pointer(p)).FregReturn = v1 + (*TSrcItem)(unsafe.Pointer(p)).FiCursor = -int32(1) + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1)) = uint32(2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn, 0, (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub) + _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + /* Allocate registers for the output of the co-routine. Do so so + ** that there are two unused registers immediately before those + ** used by the co-routine. This allows the code in sqlite3Insert() + ** to use these registers directly, instead of copying the output + ** of the co-routine to a separate array for processing. */ + (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(3) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpEList)).FnExpr + *(*int32)(unsafe.Pointer(pParse + 56)) += int32(2) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst + *(*Tu32)(unsafe.Pointer(pLeft + 4)) |= uint32(SF_MultiValue) + _sqlite3Select(tls, pParse, pLeft, bp) + (*TSrcItem)(unsafe.Pointer(p)).FregResult = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst + _ = libc.Int32FromInt32(0) + pLeft = pRet + } + } else { + p = (*TSelect)(unsafe.Pointer(pLeft)).FpSrc + 8 + _ = libc.Int32FromInt32(0) + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1))++ + } + if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { + _ = libc.Int32FromInt32(0) + if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p)).FpSelect)).FpEList)).FnExpr != (*TExprList)(unsafe.Pointer(pRow)).FnExpr { + _sqlite3SelectWrongNumTermsError(tls, pParse, (*TSrcItem)(unsafe.Pointer(p)).FpSelect) + } else { + _sqlite3ExprCodeExprList(tls, pParse, pRow, (*TSrcItem)(unsafe.Pointer(p)).FregResult, 0, uint8(0)) + _sqlite3VdbeAddOp1(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Yield), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + } + } + _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pRow) + } + return pLeft +} + // C documentation // // /* @@ -112581,27 +113378,27 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uintptr, pColumn uintptr, onError int32, pUpsert uintptr) { bp := tls.Alloc(160) defer tls.Free(160) - var aRegIdx, db, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, v, v13, v16, v18, v6, v9 uintptr - var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v12, v15, v17, v19, v23, v24, v5, v7, v8 int32 + var aRegIdx, db, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, v, v10, v14, v17, v19, v7 uintptr + var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v13, v16, v18, v20, v24, v25, v5, v6, v8, v9 int32 var appendFlag, bIdListInOrder, useTempTable, withoutRowid Tu8 - var colFlags, v21 Tu32 + var colFlags, v22 Tu32 var _ /* dest at bp+8 */ TSelectDest var _ /* iDataCur at bp+0 */ int32 var _ /* iIdxCur at bp+4 */ int32 var _ /* isReplace at bp+112 */ int32 var _ /* sNC at bp+56 */ TNameContext var _ /* tmask at bp+48 */ int32 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v12, v13, v15, v16, v17, v18, v19, v21, v23, v24, v5, v6, v7, v8, v9 /* Number of columns in the data */ - nHidden = 0 /* Number of hidden columns if TABLE is virtual */ - *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ - *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ - ipkColumn = -int32(1) /* Label for the end of the insertion loop */ - srcTab = 0 /* Data comes from this temporary cursor if >=0 */ - addrInsTop = 0 /* Jump to label "D" */ - addrCont = 0 /* Index of database holding TABLE */ - useTempTable = uint8(0) /* Store SELECT results in intermediate table */ - appendFlag = uint8(0) /* True if IDLIST is in table order */ - pList = uintptr(0) /* Register in which to store next column */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v10, v13, v14, v16, v17, v18, v19, v20, v22, v24, v25, v5, v6, v7, v8, v9 /* Number of columns in the data */ + nHidden = 0 /* Number of hidden columns if TABLE is virtual */ + *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ + *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ + ipkColumn = -int32(1) /* Label for the end of the insertion loop */ + srcTab = 0 /* Data comes from this temporary cursor if >=0 */ + addrInsTop = 0 /* Jump to label "D" */ + addrCont = 0 /* Index of database holding TABLE */ + useTempTable = uint8(0) /* Store SELECT results in intermediate table */ + appendFlag = uint8(0) /* True if IDLIST is in table order */ + pList = uintptr(0) /* Register in which to store next column */ /* Register allocations */ regFromSelect = 0 /* Base register for data coming from SELECT */ regAutoinc = 0 /* Register holding the AUTOINCREMENT counter */ @@ -112748,7 +113545,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _ = libc.Int32FromInt32(0) } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_STORED)|libc.Int32FromInt32(COLFLAG_VIRTUAL)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16084, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16163, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto insert_cleanup } break @@ -112763,7 +113560,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i bIdListInOrder = uint8(0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16125, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16204, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto insert_cleanup } @@ -112780,31 +113577,49 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** co-routine is the common header to the 3rd and 4th templates. */ if pSelect != 0 { /* Result code */ - v6 = pParse + 56 - *(*int32)(unsafe.Pointer(v6))++ - v5 = *(*int32)(unsafe.Pointer(v6)) - regYield = v5 - addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) - _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) - _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) - if bIdListInOrder != 0 { - v7 = regData + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc)).FnSrc == int32(1) && int32(uint32(*(*uint16)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + 60 + 4))&0x20>>5)) != 0 && (*TSelect)(unsafe.Pointer(pSelect)).FpPrior == uintptr(0) { + pItem = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSDParm = (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn + regFromSelect = (*TSrcItem)(unsafe.Pointer(pItem)).FregResult + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FpEList)).FnExpr + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+16236, libc.VaList(bp+128, pItem)) + if bIdListInOrder != 0 && nColumn == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { + regData = regFromSelect + regRowid = regData - int32(1) + if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { + v5 = int32(1) + } else { + v5 = 0 + } + regIns = regRowid - v5 + } } else { - v7 = 0 - } - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v7 - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) - rc = _sqlite3Select(tls, pParse, pSelect, bp+8) - regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst - _ = libc.Int32FromInt32(0) - if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { - goto insert_cleanup + v7 = pParse + 56 + *(*int32)(unsafe.Pointer(v7))++ + v6 = *(*int32)(unsafe.Pointer(v7)) /* Top of the co-routine */ + regYield = v6 + addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) + _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) + if bIdListInOrder != 0 { + v8 = regData + } else { + v8 = 0 + } + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) + rc = _sqlite3Select(tls, pParse, pSelect, bp+8) + regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst + _ = libc.Int32FromInt32(0) + if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { + goto insert_cleanup + } + _ = libc.Int32FromInt32(0) + _sqlite3VdbeEndCoroutine(tls, v, regYield) + _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ + _ = libc.Int32FromInt32(0) + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr } - _ = libc.Int32FromInt32(0) - _sqlite3VdbeEndCoroutine(tls, v, regYield) - _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ - _ = libc.Int32FromInt32(0) - nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr /* Set useTempTable to TRUE if the result of the SELECT statement ** should be written into a temporary table (template 4). Set to ** FALSE if each output row of the SELECT can be written directly into @@ -112818,10 +113633,10 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin useTempTable = uint8(1) } if useTempTable != 0 { /* Label "L" */ - v9 = pParse + 52 - v8 = *(*int32)(unsafe.Pointer(v9)) - *(*int32)(unsafe.Pointer(v9))++ - srcTab = v8 + v10 = pParse + 52 + v9 = *(*int32)(unsafe.Pointer(v10)) + *(*int32)(unsafe.Pointer(v10))++ + srcTab = v9 regRec = _sqlite3GetTempReg(tls, pParse) regTempRowid = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp2(tls, v, int32(OP_OpenEphemeral), srcTab, nColumn) @@ -112863,8 +113678,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { ipkColumn-- } - goto _10 - _10: + goto _11 + _11: ; i-- } @@ -112884,28 +113699,28 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_NOINSERT) != 0 { nHidden++ } - goto _11 - _11: + goto _12 + _12: ; i++ } } if nColumn != int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16157, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16244, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) goto insert_cleanup } } if pColumn != uintptr(0) && nColumn != (*TIdList)(unsafe.Pointer(pColumn)).FnId { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16209, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16296, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) goto insert_cleanup } /* Initialize the count of rows to be inserted */ if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&(uint64(libc.Int32FromInt32(0x00001))<= 0 { /* tag-20191021-001: If the INTEGER PRIMARY KEY is being generated by the ** SELECT, go ahead and copy the value into the rowid slot now, so that @@ -113021,18 +113836,18 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** using excess space. The file format definition requires this extra ** NULL - we cannot optimize further by skipping the column completely */ _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) - goto _20 + goto _21 } - v21 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) - colFlags = v21 - if v21&uint32(COLFLAG_NOINSERT) != uint32(0) { + v22 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) + colFlags = v22 + if v22&uint32(COLFLAG_NOINSERT) != uint32(0) { nHidden++ if colFlags&uint32(COLFLAG_VIRTUAL) != uint32(0) { /* Virtual columns do not participate in OP_MakeRecord. So back up ** iRegStore by one slot to compensate for the iRegStore++ in the ** outer for() loop */ iRegStore-- - goto _20 + goto _21 } else { if colFlags&uint32(COLFLAG_STORED) != uint32(0) { /* Stored columns are computed later. But if there are BEFORE @@ -113042,13 +113857,13 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if *(*int32)(unsafe.Pointer(bp + 48))&int32(TRIGGER_BEFORE) != 0 { _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) } - goto _20 + goto _21 } else { if pColumn == uintptr(0) { /* Hidden columns that are not explicitly named in the INSERT ** get there default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } } } @@ -113060,8 +113875,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if !(j < (*TIdList)(unsafe.Pointer(pColumn)).FnId && *(*int32)(unsafe.Pointer(pColumn + 8 + uintptr(j)*16 + 8)) != i) { break } - goto _22 - _22: + goto _23 + _23: ; j++ } @@ -113069,14 +113884,14 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin /* A column not named in the insert column list gets its ** default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } k = j } else { if nColumn == 0 { /* This is INSERT INTO ... DEFAULT VALUES. Load the default value. */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } else { k = i - nHidden } @@ -113093,16 +113908,16 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin y = _sqlite3ExprCodeTarget(tls, pParse, pX, iRegStore) if y != iRegStore { if (*TExpr)(unsafe.Pointer(pX)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) { - v23 = int32(OP_Copy) + v24 = int32(OP_Copy) } else { - v23 = int32(OP_SCopy) + v24 = int32(OP_SCopy) } - _sqlite3VdbeAddOp2(tls, v, v23, y, iRegStore) + _sqlite3VdbeAddOp2(tls, v, v24, y, iRegStore) } } } - goto _20 - _20: + goto _21 + _21: ; i++ iRegStore++ @@ -113215,11 +114030,11 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VtabMakeWritable(tls, pParse, pTab) _sqlite3VdbeAddOp4(tls, v, int32(OP_VUpdate), int32(1), int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+int32(2), regIns, pVTab, -int32(11)) if onError == int32(OE_Default) { - v24 = int32(OE_Abort) + v25 = int32(OE_Abort) } else { - v24 = onError + v25 = onError } - _sqlite3VdbeChangeP5(tls, v, uint16(v24)) + _sqlite3VdbeChangeP5(tls, v, uint16(v25)) _sqlite3MayAbort(tls, pParse) } else { *(*int32)(unsafe.Pointer(bp + 112)) = 0 /* True to use OPFLAG_SEEKRESULT */ @@ -113262,6 +114077,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VdbeJumpHere(tls, v, addrInsTop) } } + goto insert_end insert_end: ; /* Update the sqlite_sequence table by storing the content of the @@ -113277,8 +114093,9 @@ insert_end: ** invoke the callback function. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16301) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16388) } + goto insert_cleanup insert_cleanup: ; _sqlite3SrcListDelete(tls, db, pTabList) @@ -113675,7 +114492,7 @@ func _sqlite3GenerateConstraintChecks(tls *libc.TLS, pParse uintptr, pTab uintpt case int32(OE_Rollback): fallthrough case int32(OE_Fail): - zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12381, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12506, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) _sqlite3VdbeAddOp3(tls, v, int32(OP_HaltIfNull), libc.Int32FromInt32(SQLITE_CONSTRAINT)|libc.Int32FromInt32(5)<= 0 && !(int32(*(*uint8)(unsafe.Pointer(zFile + uintptr(iFile)))) == libc.Int32FromUint8('/'))) { @@ -115950,7 +116768,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp iFile-- } iFile++ - if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16350, int32(3)) == 0 { + if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16437, int32(3)) == 0 { iFile += int32(3) } iEntry = int32(8) @@ -115970,7 +116788,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp ; iFile++ } - libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16354, uint64(6)) + libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16441, uint64(6)) zEntry = zAltEntry xInit = _sqlite3OsDlSym(tls, pVfs, handle, zEntry) } @@ -115982,7 +116800,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v7 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16360, libc.VaList(bp+16, zEntry, zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16447, libc.VaList(bp+16, zEntry, zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -115997,7 +116815,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp return SQLITE_OK } if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16403, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16490, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3OsDlClose(tls, pVfs, handle) @@ -116018,6 +116836,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*int32)(unsafe.Pointer(v9))++ *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaExtension + uintptr(v8)*8)) = handle return SQLITE_OK + goto extension_not_found extension_not_found: ; if pzErrMsg != 0 { @@ -116027,7 +116846,7 @@ extension_not_found: *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v10 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16435, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16522, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -116036,7 +116855,7 @@ extension_not_found: /* Shared library endings to try if zFile cannot be loaded as written */ var _azEndings = [1]uintptr{ - 0: __ccgo_ts + 16315, + 0: __ccgo_ts + 16402, } func Xsqlite3_load_extension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintptr, pzErrMsg uintptr) (r int32) { @@ -116271,7 +117090,7 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { rc = v2 } if v3 && v2 != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16472, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16559, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) go1 = 0 } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -116325,63 +117144,63 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { // ** result column is different from the name of the pragma // */ var _pragCName = [57]uintptr{ - 0: __ccgo_ts + 5481, - 1: __ccgo_ts + 16511, - 2: __ccgo_ts + 9058, - 3: __ccgo_ts + 16515, - 4: __ccgo_ts + 16520, - 5: __ccgo_ts + 16523, - 6: __ccgo_ts + 16533, - 7: __ccgo_ts + 16543, - 8: __ccgo_ts + 16549, - 9: __ccgo_ts + 16553, - 10: __ccgo_ts + 16558, - 11: __ccgo_ts + 16563, - 12: __ccgo_ts + 16571, - 13: __ccgo_ts + 16582, - 14: __ccgo_ts + 16585, - 15: __ccgo_ts + 16592, - 16: __ccgo_ts + 16553, - 17: __ccgo_ts + 16558, - 18: __ccgo_ts + 16599, - 19: __ccgo_ts + 16604, - 20: __ccgo_ts + 16607, - 21: __ccgo_ts + 16614, - 22: __ccgo_ts + 16549, - 23: __ccgo_ts + 16553, - 24: __ccgo_ts + 16620, - 25: __ccgo_ts + 16625, - 26: __ccgo_ts + 16630, - 27: __ccgo_ts + 16553, - 28: __ccgo_ts + 16634, - 29: __ccgo_ts + 16558, - 30: __ccgo_ts + 16642, - 31: __ccgo_ts + 16646, - 32: __ccgo_ts + 16651, - 33: __ccgo_ts + 11797, - 34: __ccgo_ts + 11793, - 35: __ccgo_ts + 16657, - 36: __ccgo_ts + 16662, - 37: __ccgo_ts + 16667, - 38: __ccgo_ts + 16511, - 39: __ccgo_ts + 16553, - 40: __ccgo_ts + 16672, - 41: __ccgo_ts + 16679, - 42: __ccgo_ts + 16686, - 43: __ccgo_ts + 9058, - 44: __ccgo_ts + 16694, - 45: __ccgo_ts + 5484, - 46: __ccgo_ts + 16700, - 47: __ccgo_ts + 16511, - 48: __ccgo_ts + 16553, - 49: __ccgo_ts + 16705, - 50: __ccgo_ts + 16710, - 51: __ccgo_ts + 15907, - 52: __ccgo_ts + 16715, - 53: __ccgo_ts + 16728, - 54: __ccgo_ts + 16737, - 55: __ccgo_ts + 16744, - 56: __ccgo_ts + 16755, + 0: __ccgo_ts + 5545, + 1: __ccgo_ts + 16598, + 2: __ccgo_ts + 9183, + 3: __ccgo_ts + 16602, + 4: __ccgo_ts + 16607, + 5: __ccgo_ts + 16610, + 6: __ccgo_ts + 16620, + 7: __ccgo_ts + 16630, + 8: __ccgo_ts + 16636, + 9: __ccgo_ts + 16640, + 10: __ccgo_ts + 16645, + 11: __ccgo_ts + 16650, + 12: __ccgo_ts + 16658, + 13: __ccgo_ts + 16669, + 14: __ccgo_ts + 16672, + 15: __ccgo_ts + 16679, + 16: __ccgo_ts + 16640, + 17: __ccgo_ts + 16645, + 18: __ccgo_ts + 16686, + 19: __ccgo_ts + 16691, + 20: __ccgo_ts + 16694, + 21: __ccgo_ts + 16701, + 22: __ccgo_ts + 16636, + 23: __ccgo_ts + 16640, + 24: __ccgo_ts + 16707, + 25: __ccgo_ts + 16712, + 26: __ccgo_ts + 16717, + 27: __ccgo_ts + 16640, + 28: __ccgo_ts + 16721, + 29: __ccgo_ts + 16645, + 30: __ccgo_ts + 16729, + 31: __ccgo_ts + 16733, + 32: __ccgo_ts + 16738, + 33: __ccgo_ts + 11922, + 34: __ccgo_ts + 11918, + 35: __ccgo_ts + 16744, + 36: __ccgo_ts + 16749, + 37: __ccgo_ts + 16754, + 38: __ccgo_ts + 16598, + 39: __ccgo_ts + 16640, + 40: __ccgo_ts + 16759, + 41: __ccgo_ts + 16766, + 42: __ccgo_ts + 16773, + 43: __ccgo_ts + 9183, + 44: __ccgo_ts + 16781, + 45: __ccgo_ts + 5548, + 46: __ccgo_ts + 16787, + 47: __ccgo_ts + 16598, + 48: __ccgo_ts + 16640, + 49: __ccgo_ts + 16792, + 50: __ccgo_ts + 16797, + 51: __ccgo_ts + 15986, + 52: __ccgo_ts + 16802, + 53: __ccgo_ts + 16815, + 54: __ccgo_ts + 16824, + 55: __ccgo_ts + 16831, + 56: __ccgo_ts + 16842, } // C documentation @@ -116400,191 +117219,191 @@ type PragmaName = TPragmaName var _aPragmaName = [66]TPragmaName{ 0: { - FzName: __ccgo_ts + 16763, + FzName: __ccgo_ts + 16850, FePragTyp: uint8(PragTyp_ANALYSIS_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 1: { - FzName: __ccgo_ts + 16778, + FzName: __ccgo_ts + 16865, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_APPLICATION_ID), }, 2: { - FzName: __ccgo_ts + 16793, + FzName: __ccgo_ts + 16880, FePragTyp: uint8(PragTyp_AUTO_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 3: { - FzName: __ccgo_ts + 16805, + FzName: __ccgo_ts + 16892, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_AutoIndex), }, 4: { - FzName: __ccgo_ts + 16821, + FzName: __ccgo_ts + 16908, FePragTyp: uint8(PragTyp_BUSY_TIMEOUT), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(56), FnPragCName: uint8(1), }, 5: { - FzName: __ccgo_ts + 16744, + FzName: __ccgo_ts + 16831, FePragTyp: uint8(PragTyp_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 6: { - FzName: __ccgo_ts + 16834, + FzName: __ccgo_ts + 16921, FePragTyp: uint8(PragTyp_CACHE_SPILL), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 7: { - FzName: __ccgo_ts + 16846, + FzName: __ccgo_ts + 16933, FePragTyp: uint8(PragTyp_CASE_SENSITIVE_LIKE), FmPragFlg: uint8(PragFlg_NoColumns), }, 8: { - FzName: __ccgo_ts + 16866, + FzName: __ccgo_ts + 16953, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CellSizeCk), }, 9: { - FzName: __ccgo_ts + 16882, + FzName: __ccgo_ts + 16969, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CkptFullFSync), }, 10: { - FzName: __ccgo_ts + 16903, + FzName: __ccgo_ts + 16990, FePragTyp: uint8(PragTyp_COLLATION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(38), FnPragCName: uint8(2), }, 11: { - FzName: __ccgo_ts + 16918, + FzName: __ccgo_ts + 17005, FePragTyp: uint8(PragTyp_COMPILE_OPTIONS), FmPragFlg: uint8(PragFlg_Result0), }, 12: { - FzName: __ccgo_ts + 16934, + FzName: __ccgo_ts + 17021, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00001)) << libc.Int32FromInt32(32), }, 13: { - FzName: __ccgo_ts + 16948, + FzName: __ccgo_ts + 17035, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_DATA_VERSION), }, 14: { - FzName: __ccgo_ts + 16961, + FzName: __ccgo_ts + 17048, FePragTyp: uint8(PragTyp_DATABASE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(47), FnPragCName: uint8(3), }, 15: { - FzName: __ccgo_ts + 16975, + FzName: __ccgo_ts + 17062, FePragTyp: uint8(PragTyp_DEFAULT_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiPragCName: uint8(55), FnPragCName: uint8(1), }, 16: { - FzName: __ccgo_ts + 16994, + FzName: __ccgo_ts + 17081, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_DeferFKs), }, 17: { - FzName: __ccgo_ts + 17013, + FzName: __ccgo_ts + 17100, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_NullCallback), }, 18: { - FzName: __ccgo_ts + 17036, + FzName: __ccgo_ts + 17123, FePragTyp: uint8(PragTyp_ENCODING), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 19: { - FzName: __ccgo_ts + 17045, + FzName: __ccgo_ts + 17132, FePragTyp: uint8(PragTyp_FOREIGN_KEY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(43), FnPragCName: uint8(4), }, 20: { - FzName: __ccgo_ts + 17063, + FzName: __ccgo_ts + 17150, FePragTyp: uint8(PragTyp_FOREIGN_KEY_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FnPragCName: uint8(8), }, 21: { - FzName: __ccgo_ts + 17080, + FzName: __ccgo_ts + 17167, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ForeignKeys), }, 22: { - FzName: __ccgo_ts + 17093, + FzName: __ccgo_ts + 17180, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), }, 23: { - FzName: __ccgo_ts + 17108, + FzName: __ccgo_ts + 17195, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullColNames), }, 24: { - FzName: __ccgo_ts + 17126, + FzName: __ccgo_ts + 17213, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullFSync), }, 25: { - FzName: __ccgo_ts + 17136, + FzName: __ccgo_ts + 17223, FePragTyp: uint8(PragTyp_FUNCTION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(27), FnPragCName: uint8(6), }, 26: { - FzName: __ccgo_ts + 17150, + FzName: __ccgo_ts + 17237, FePragTyp: uint8(PragTyp_HARD_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 27: { - FzName: __ccgo_ts + 17166, + FzName: __ccgo_ts + 17253, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_IgnoreChecks), }, 28: { - FzName: __ccgo_ts + 17191, + FzName: __ccgo_ts + 17278, FePragTyp: uint8(PragTyp_INCREMENTAL_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_NoColumns)), }, 29: { - FzName: __ccgo_ts + 17210, + FzName: __ccgo_ts + 17297, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), FnPragCName: uint8(3), }, 30: { - FzName: __ccgo_ts + 17221, + FzName: __ccgo_ts + 17308, FePragTyp: uint8(PragTyp_INDEX_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(38), FnPragCName: uint8(5), }, 31: { - FzName: __ccgo_ts + 17232, + FzName: __ccgo_ts + 17319, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), @@ -116592,146 +117411,146 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 32: { - FzName: __ccgo_ts + 17244, + FzName: __ccgo_ts + 17331, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 33: { - FzName: __ccgo_ts + 17260, + FzName: __ccgo_ts + 17347, FePragTyp: uint8(PragTyp_JOURNAL_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 34: { - FzName: __ccgo_ts + 17273, + FzName: __ccgo_ts + 17360, FePragTyp: uint8(PragTyp_JOURNAL_SIZE_LIMIT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 35: { - FzName: __ccgo_ts + 17292, + FzName: __ccgo_ts + 17379, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_LegacyAlter), }, 36: { - FzName: __ccgo_ts + 17311, + FzName: __ccgo_ts + 17398, FePragTyp: uint8(PragTyp_LOCKING_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 37: { - FzName: __ccgo_ts + 17324, + FzName: __ccgo_ts + 17411, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 38: { - FzName: __ccgo_ts + 17339, + FzName: __ccgo_ts + 17426, FePragTyp: uint8(PragTyp_MMAP_SIZE), }, 39: { - FzName: __ccgo_ts + 17349, + FzName: __ccgo_ts + 17436, FePragTyp: uint8(PragTyp_MODULE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 40: { - FzName: __ccgo_ts + 17361, + FzName: __ccgo_ts + 17448, FePragTyp: uint8(PragTyp_OPTIMIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_NeedSchema)), }, 41: { - FzName: __ccgo_ts + 17370, + FzName: __ccgo_ts + 17457, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 42: { - FzName: __ccgo_ts + 17381, + FzName: __ccgo_ts + 17468, FePragTyp: uint8(PragTyp_PAGE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 43: { - FzName: __ccgo_ts + 17391, + FzName: __ccgo_ts + 17478, FePragTyp: uint8(PragTyp_PRAGMA_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 44: { - FzName: __ccgo_ts + 17403, + FzName: __ccgo_ts + 17490, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_QueryOnly), }, 45: { - FzName: __ccgo_ts + 17414, + FzName: __ccgo_ts + 17501, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 46: { - FzName: __ccgo_ts + 17426, + FzName: __ccgo_ts + 17513, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00004)) << libc.Int32FromInt32(32), }, 47: { - FzName: __ccgo_ts + 17443, + FzName: __ccgo_ts + 17530, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_RecTriggers), }, 48: { - FzName: __ccgo_ts + 17462, + FzName: __ccgo_ts + 17549, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ReverseOrder), }, 49: { - FzName: __ccgo_ts + 17488, + FzName: __ccgo_ts + 17575, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_SCHEMA_VERSION), }, 50: { - FzName: __ccgo_ts + 17503, + FzName: __ccgo_ts + 17590, FePragTyp: uint8(PragTyp_SECURE_DELETE), FmPragFlg: uint8(PragFlg_Result0), }, 51: { - FzName: __ccgo_ts + 17517, + FzName: __ccgo_ts + 17604, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ShortColNames), }, 52: { - FzName: __ccgo_ts + 17536, + FzName: __ccgo_ts + 17623, FePragTyp: uint8(PragTyp_SHRINK_MEMORY), FmPragFlg: uint8(PragFlg_NoColumns), }, 53: { - FzName: __ccgo_ts + 17550, + FzName: __ccgo_ts + 17637, FePragTyp: uint8(PragTyp_SOFT_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 54: { - FzName: __ccgo_ts + 17566, + FzName: __ccgo_ts + 17653, FePragTyp: uint8(PragTyp_SYNCHRONOUS), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 55: { - FzName: __ccgo_ts + 17578, + FzName: __ccgo_ts + 17665, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), FnPragCName: uint8(6), }, 56: { - FzName: __ccgo_ts + 17589, + FzName: __ccgo_ts + 17676, FePragTyp: uint8(PragTyp_TABLE_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1)), FiPragCName: uint8(15), FnPragCName: uint8(6), }, 57: { - FzName: __ccgo_ts + 17600, + FzName: __ccgo_ts + 17687, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), @@ -116739,45 +117558,45 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 58: { - FzName: __ccgo_ts + 17612, + FzName: __ccgo_ts + 17699, FePragTyp: uint8(PragTyp_TEMP_STORE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 59: { - FzName: __ccgo_ts + 17623, + FzName: __ccgo_ts + 17710, FePragTyp: uint8(PragTyp_TEMP_STORE_DIRECTORY), FmPragFlg: uint8(PragFlg_NoColumns1), }, 60: { - FzName: __ccgo_ts + 17644, + FzName: __ccgo_ts + 17731, FePragTyp: uint8(PragTyp_THREADS), FmPragFlg: uint8(PragFlg_Result0), }, 61: { - FzName: __ccgo_ts + 17652, + FzName: __ccgo_ts + 17739, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_TrustedSchema), }, 62: { - FzName: __ccgo_ts + 17667, + FzName: __ccgo_ts + 17754, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_USER_VERSION), }, 63: { - FzName: __ccgo_ts + 17680, + FzName: __ccgo_ts + 17767, FePragTyp: uint8(PragTyp_WAL_AUTOCHECKPOINT), }, 64: { - FzName: __ccgo_ts + 17699, + FzName: __ccgo_ts + 17786, FePragTyp: uint8(PragTyp_WAL_CHECKPOINT), FmPragFlg: uint8(PragFlg_NeedSchema), FiPragCName: uint8(50), FnPragCName: uint8(3), }, 65: { - FzName: __ccgo_ts + 17714, + FzName: __ccgo_ts + 17801, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(SQLITE_WriteSchema) | libc.Int32FromInt32(SQLITE_NoSchemaError)), @@ -116789,6 +117608,31 @@ var _aPragmaName = [66]TPragmaName{ /************** End of pragma.h **********************************************/ /************** Continuing where we left off in pragma.c *********************/ +/* +** When the 0x10 bit of PRAGMA optimize is set, any ANALYZE commands +** will be run with an analysis_limit set to the lessor of the value of +** the following macro or to the actual analysis_limit if it is non-zero, +** in order to prevent PRAGMA optimize from running for too long. +** +** The value of 2000 is chosen emperically so that the worst-case run-time +** for PRAGMA optimize does not exceed 100 milliseconds against a variety +** of test databases on a RaspberryPI-4 compiled using -Os and without +** -DSQLITE_DEBUG. Of course, your mileage may vary. For the purpose of +** this paragraph, "worst-case" means that ANALYZE ends up being +** run on every table in the database. The worst case typically only +** happens if PRAGMA optimize is run on a database file for which ANALYZE +** has not been previously run and the 0x10000 flag is included so that +** all tables are analyzed. The usual case for PRAGMA optimize is that +** no ANALYZE commands will be run at all, or if any ANALYZE happens it +** will be against a single table, so that expected timing for PRAGMA +** optimize on a PI-4 is more like 1 millisecond or less with the 0x10000 +** flag or less than 100 microseconds without the 0x10000 flag. +** +** An analysis limit of 2000 is almost always sufficient for the query +** planner to fully characterize an index. The additional accuracy from +** a larger analysis is not usually helpful. + */ + // C documentation // // /* @@ -116878,10 +117722,10 @@ func _sqlite3GetBoolean(tls *libc.TLS, z uintptr, dflt Tu8) (r Tu8) { // */ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { if z != 0 { - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17730) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17817) { return int32(PAGER_LOCKINGMODE_EXCLUSIVE) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17740) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17827) { return PAGER_LOCKINGMODE_NORMAL } } @@ -116899,13 +117743,13 @@ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { func _getAutoVacuum(tls *libc.TLS, z uintptr) (r int32) { var i, v1 int32 _, _ = i, v1 - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8218) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8343) { return BTREE_AUTOVACUUM_NONE } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17747) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17834) { return int32(BTREE_AUTOVACUUM_FULL) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17752) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17839) { return int32(BTREE_AUTOVACUUM_INCR) } i = _sqlite3Atoi(tls, z) @@ -116928,10 +117772,10 @@ func _getTempStore(tls *libc.TLS, z uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(z))) <= int32('2') { return int32(*(*uint8)(unsafe.Pointer(z))) - int32('0') } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+16705) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+16792) == 0 { return int32(1) } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+17764) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+17851) == 0 { return int32(2) } else { return 0 @@ -116953,7 +117797,7 @@ func _invalidateTempStorage(tls *libc.TLS, pParse uintptr) (r int32) { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt != uintptr(0) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || _sqlite3BtreeTxnState(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) != SQLITE_TXN_NONE { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17771, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17858, 0) return int32(SQLITE_ERROR) } _sqlite3BtreeClose(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) @@ -117088,15 +117932,15 @@ func _actionName(tls *libc.TLS, action Tu8) (r uintptr) { _ = zName switch int32(action) { case int32(OE_SetNull): - zName = __ccgo_ts + 17833 + zName = __ccgo_ts + 17920 case int32(OE_SetDflt): - zName = __ccgo_ts + 17842 + zName = __ccgo_ts + 17929 case int32(OE_Cascade): - zName = __ccgo_ts + 17854 + zName = __ccgo_ts + 17941 case int32(OE_Restrict): - zName = __ccgo_ts + 17862 + zName = __ccgo_ts + 17949 default: - zName = __ccgo_ts + 17871 + zName = __ccgo_ts + 17958 _ = libc.Int32FromInt32(0) break } @@ -117125,12 +117969,12 @@ func _sqlite3JournalModename(tls *libc.TLS, eMode int32) (r uintptr) { } var _azModeName = [6]uintptr{ - 0: __ccgo_ts + 17881, - 1: __ccgo_ts + 17888, - 2: __ccgo_ts + 17896, - 3: __ccgo_ts + 17900, - 4: __ccgo_ts + 17764, - 5: __ccgo_ts + 17909, + 0: __ccgo_ts + 17968, + 1: __ccgo_ts + 17975, + 2: __ccgo_ts + 17983, + 3: __ccgo_ts + 17987, + 4: __ccgo_ts + 17851, + 5: __ccgo_ts + 17996, } // C documentation @@ -117196,15 +118040,15 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s goto _1 } if (*TFuncDef)(unsafe.Pointer(p)).FxValue != uintptr(0) { - zType = __ccgo_ts + 17934 + zType = __ccgo_ts + 18021 } else { if (*TFuncDef)(unsafe.Pointer(p)).FxFinalize != uintptr(0) { - zType = __ccgo_ts + 17936 + zType = __ccgo_ts + 18023 } else { - zType = __ccgo_ts + 7617 + zType = __ccgo_ts + 7742 } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+17938, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18025, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) goto _1 _1: ; @@ -117213,9 +118057,9 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s } var _azEnc = [4]uintptr{ - 1: __ccgo_ts + 17913, - 2: __ccgo_ts + 17918, - 3: __ccgo_ts + 17926, + 1: __ccgo_ts + 18000, + 2: __ccgo_ts + 18005, + 3: __ccgo_ts + 18013, } // C documentation @@ -117256,15 +118100,15 @@ func _integrityCheckResultRow(tls *libc.TLS, v uintptr) (r int32) { func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pValue uintptr, minusFlag int32) { bp := tls.Alloc(240) defer tls.Free(240) - var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, mxIdx, n, nHidden, nIdx, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v60, v62, v63, v64, v65, v68 int32 - var aOp, aOp1, aOp2, aOp3, aOp4, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v61, v66, v8 uintptr + var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v48, v50, v64, v66, v67, v68, v69, v72, v75, v76 int32 + var aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v65, v70, v8 uintptr var azOrigin [3]uintptr var cnum Ti16 var enc Tu8 var iPrior Tsqlite3_int64 + var iRange, szThreshold TLogEst var mask Tu64 var opMask Tu32 - var szThreshold TLogEst var _ /* N at bp+136 */ Tsqlite3_int64 var _ /* N at bp+144 */ Tsqlite3_int64 var _ /* N at bp+152 */ Tsqlite3_int64 @@ -117285,7 +118129,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p var _ /* size at bp+60 */ int32 var _ /* sz at bp+64 */ Tsqlite3_int64 var _ /* x at bp+40 */ Ti64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iPrior, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, mxIdx, n, nHidden, nIdx, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v5, v60, v61, v62, v63, v64, v65, v66, v68, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iPrior, iRange, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v48, v5, v50, v64, v65, v66, v67, v68, v69, v70, v72, v75, v76, v8 zLeft = uintptr(0) /* Nul-terminated UTF-8 string */ zRight = uintptr(0) /* Nul-terminated UTF-8 string , or NULL */ zDb = uintptr(0) /* return value form SQLITE_FCNTL_PRAGMA */ @@ -117314,7 +118158,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p return } if minusFlag != 0 { - zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+17945, libc.VaList(bp+176, pValue)) + zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+18032, libc.VaList(bp+176, pValue)) } else { zRight = _sqlite3NameFromToken(tls, db, pValue) } @@ -117358,7 +118202,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } if rc != int32(SQLITE_NOTFOUND) { if (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0] != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) Xsqlite3_free(tls, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0]) } (*TParse)(unsafe.Pointer(pParse)).FnErr++ @@ -117465,7 +118309,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p b = -int32(1) _ = libc.Int32FromInt32(0) if zRight != 0 { - if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+17949) == 0 { + if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18036) == 0 { b = int32(2) } else { b = int32(_sqlite3GetBoolean(tls, zRight, uint8(0))) @@ -117536,7 +118380,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p */ fallthrough case int32(PragTyp_LOCKING_MODE): - zRet = __ccgo_ts + 17740 + zRet = __ccgo_ts + 17827 eMode = _getLockingMode(tls, zRight) if (*TToken)(unsafe.Pointer(pId2)).Fn == uint32(0) && eMode == -int32(1) { /* Simple "PRAGMA locking_mode;" statement. This is a query for @@ -117566,7 +118410,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } _ = libc.Int32FromInt32(0) if eMode == int32(PAGER_LOCKINGMODE_EXCLUSIVE) { - zRet = __ccgo_ts + 17730 + zRet = __ccgo_ts + 17817 } _returnSingleText(tls, v, zRet) break @@ -117861,7 +118705,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if *(*uint8)(unsafe.Pointer(zRight)) != 0 { rc = _sqlite3OsAccess(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, zRight, int32(SQLITE_ACCESS_READWRITE), bp+72) if rc != SQLITE_OK || *(*int32)(unsafe.Pointer(bp + 72)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17954, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18041, 0) Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) goto pragma_out } @@ -117871,7 +118715,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } Xsqlite3_free(tls, Xsqlite3_temp_directory) if *(*uint8)(unsafe.Pointer(zRight)) != 0 { - Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+176, zRight)) + Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+176, zRight)) } else { Xsqlite3_temp_directory = uintptr(0) } @@ -117893,7 +118737,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _returnSingleInt(tls, v, int64(int32((*TDb)(unsafe.Pointer(pDb)).Fsafety_level)-int32(1))) } else { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17979, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18066, 0) } else { if iDb != int32(1) { iLevel = (int32(_getSafetyLevel(tls, zRight, 0, uint8(1))) + int32(1)) & int32(PAGER_SYNCHRONOUS_MASK) @@ -117926,7 +118770,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if mask == uint64(SQLITE_DeferFKs) { (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = 0 } - if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18032) == 0 { + if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18119) == 0 { /* IMP: R-60817-01178 If the argument is "RESET" then schema ** writing is disabled (as with "PRAGMA writable_schema=OFF") and, ** in addition, the schema is reloaded. */ @@ -118009,9 +118853,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - v14 = __ccgo_ts + 18038 + v14 = __ccgo_ts + 18125 } else { - v14 = __ccgo_ts + 18046 + v14 = __ccgo_ts + 18133 } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 { v15 = int32(1) @@ -118023,7 +118867,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v16 = *(*uintptr)(unsafe.Pointer(pColExpr + 8)) } - _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1648), v15, v16, k, isHidden)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1662), v15, v16, k, isHidden)) goto _12 _12: ; @@ -118082,7 +118926,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pTab1 = (*THashElem)(unsafe.Pointer(k1)).Fdata if int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) == 0 { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18053, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18140, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 80)) = uintptr(0) Xsqlite3_prepare(tls, db, zSql, -int32(1), bp+80, uintptr(0)) @@ -118090,7 +118934,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3DbFree(tls, db, zSql) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1632, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) } pHash = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FpSchema + 8 @@ -118112,19 +118956,19 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _20 } if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10796 + zType = __ccgo_ts + 10921 } else { if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 13044 + zType = __ccgo_ts + 13169 } else { if (*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Shadow) != 0 { - zType = __ccgo_ts + 18069 + zType = __ccgo_ts + 18156 } else { - zType = __ccgo_ts + 9058 + zType = __ccgo_ts + 9183 } } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18076, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18163, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) goto _20 _20: ; @@ -118172,9 +119016,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v22 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab3)).FaCol + uintptr(cnum)*16))).FzCnName } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18083, libc.VaList(bp+176, i1, int32(cnum), v22)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18170, libc.VaList(bp+176, i1, int32(cnum), v22)) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18088, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) + _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18175, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) } _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), int32(1), (*TParse)(unsafe.Pointer(pParse)).FnMem) goto _21 @@ -118198,11 +119042,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } azOrigin = [3]uintptr{ - 0: __ccgo_ts + 18093, - 1: __ccgo_ts + 18095, - 2: __ccgo_ts + 16582, + 0: __ccgo_ts + 18180, + 1: __ccgo_ts + 18182, + 2: __ccgo_ts + 16669, } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18097, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18184, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) goto _23 _23: ; @@ -118222,7 +119066,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _24 } _ = libc.Int32FromInt32(0) - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18103, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18190, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) goto _24 _24: ; @@ -118239,7 +119083,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pColl = (*THashElem)(unsafe.Pointer(p)).Fdata v26 = i4 i4++ - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18107, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18194, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) goto _25 _25: ; @@ -118291,7 +119135,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } pMod = (*THashElem)(unsafe.Pointer(j1)).Fdata - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7617, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7742, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) goto _30 _30: ; @@ -118303,7 +119147,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i6 < int32(libc.Uint64FromInt64(1584)/libc.Uint64FromInt64(24))) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7617, libc.VaList(bp+176, _aPragmaName[i6].FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7742, libc.VaList(bp+176, _aPragmaName[i6].FzName)) goto _31 _31: ; @@ -118329,7 +119173,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(j2 < (*TFKey)(unsafe.Pointer(pFK)).FnCol) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18110, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18119)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18197, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18206)) goto _32 _32: ; @@ -118475,7 +119319,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regResult+int32(1)) } - _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18124, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) + _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18211, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), regResult, int32(4)) _sqlite3VdbeResolveLabel(tls, v, addrOk) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 96))) @@ -118545,7 +119389,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p /* Set the maximum error count */ *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) if zRight != 0 { - if _sqlite3GetInt32(tls, zRight, bp+104) != 0 { + if _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pValue)).Fz, bp+104) != 0 { if *(*int32)(unsafe.Pointer(bp + 104)) <= 0 { *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) } @@ -118565,8 +119409,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i9 < (*Tsqlite3)(unsafe.Pointer(db)).FnDb) { break } /* Array of root page numbers of all btrees */ - cnt = 0 /* Number of entries in aRoot[] */ - mxIdx = 0 /* Maximum number of indexes for any table */ + cnt = 0 /* Number of entries in aRoot[] */ if libc.Bool(OMIT_TEMPDB != 0) && i9 == int32(1) { goto _40 } @@ -118608,9 +119451,6 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pIdx3 = (*TIndex)(unsafe.Pointer(pIdx3)).FpNext nIdx++ } - if nIdx > mxIdx { - mxIdx = nIdx - } goto _41 _41: ; @@ -118666,16 +119506,78 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } *(*int32)(unsafe.Pointer(aRoot)) = cnt /* Make sure sufficient number of registers have been allocated */ - _sqlite3TouchRegister(tls, pParse, int32(8)+mxIdx) + _sqlite3TouchRegister(tls, pParse, int32(8)+cnt) _sqlite3ClearTempRegCache(tls, pParse) /* Do the b-tree integrity checks */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(2), cnt, int32(1), aRoot, -int32(14)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(1), cnt, int32(8), aRoot, -int32(14)) _sqlite3VdbeChangeP5(tls, v, uint16(uint8(i9))) addr1 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(2)) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18128, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18215, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(2), int32(3), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, addr1) + /* Check that the indexes all have the right number of rows */ + if pObjTab != 0 { + v48 = int32(1) + } else { + v48 = 0 + } + cnt = v48 + _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18239) + x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst + for { + if !(x2 != 0) { + break + } + iTab = 0 + pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab9 { + goto _49 + } + if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + v50 = cnt + cnt++ + iTab = v50 + } else { + iTab = cnt + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx5 + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { + break + } + iTab++ + goto _51 + _51: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + } + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if (*TIndex)(unsafe.Pointer(pIdx5)).FpPartIdxWhere == uintptr(0) { + addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+cnt, 0, int32(8)+iTab) + _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) + _integrityCheckResultRow(tls, v) + _sqlite3VdbeJumpHere(tls, v, addr1) + } + cnt++ + goto _52 + _52: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + goto _49 + _49: + ; + x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext + } /* Make sure all the indices are constructed correctly. */ x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst @@ -118683,39 +119585,39 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata pPrior = uintptr(0) r1 = -int32(1) /* Maximum non-virtual column number */ - if pObjTab != 0 && pObjTab != pTab9 { - goto _48 + if pObjTab != 0 && pObjTab != pTab10 { + goto _53 } - if !(int32((*TTable)(unsafe.Pointer(pTab9)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { - goto _48 + if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _53 } - if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { pPk1 = uintptr(0) r2 = 0 } else { - pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab9) + pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab10) r2 = _sqlite3GetTempRange(tls, pParse, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), int32(1), r2, r2+int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)-int32(1)) } - _sqlite3OpenTableAndIndices(tls, pParse, pTab9, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) + _sqlite3OpenTableAndIndices(tls, pParse, pTab10, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) /* reg[7] counts the number of entries in the table. ** reg[8+i] counts the number of entries in the i-th index */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(7)) j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(8)+j4) /* index entries counter */ - goto _49 - _49: + goto _54 + _54: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } _ = libc.Int32FromInt32(0) @@ -118728,29 +119630,29 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** by the OP_IsType code, so it is a required step. */ _ = libc.Int32FromInt32(0) - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { mxCol = -int32(1) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { + if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { mxCol++ } - goto _50 - _50: + goto _55 + _55: ; j4++ } - if mxCol == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { + if mxCol == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { mxCol-- } } else { /* COLFLAG_VIRTUAL columns are not included in the WITHOUT ROWID ** PK index column-count, so there is no need to account for them ** in this case. */ - mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab9))).FnColumn) - int32(1) + mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab10))).FnColumn) - int32(1) } if mxCol >= 0 { _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 108)), mxCol, int32(3)) @@ -118760,7 +119662,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if pPk1 != 0 { a1 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 108)), 0, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), r2) - zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18152, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18268, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a1) @@ -118771,8 +119673,8 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprCodeLoadIndexColumn(tls, pParse, pPk1, *(*int32)(unsafe.Pointer(bp + 108)), j4, r2+j4) - goto _51 - _51: + goto _56 + _56: ; j4++ } @@ -118787,15 +119689,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** (4) Datatype for numeric columns in non-STRICT tables must not ** be a TEXT value that can be losslessly converted to numeric. */ - bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_Strict) != uint32(0)) + bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_Strict) != uint32(0)) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - pCol1 = (*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ - if j4 == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { - goto _52 + pCol1 = (*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ + if j4 == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { + goto _57 } if bStrict != 0 { doTypeCheck = libc.BoolInt32(int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4)) > int32(COLTYPE_ANY)) @@ -118803,28 +119705,28 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p doTypeCheck = libc.BoolInt32(int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) > int32(SQLITE_AFF_BLOB)) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf>>0)) == 0 && !(doTypeCheck != 0) { - goto _52 + goto _57 } /* Compute the operands that will be needed for OP_IsType */ p4 = int32(SQLITE_NULL) if int32((*TColumn)(unsafe.Pointer(pCol1)).FcolFlags)&int32(COLFLAG_VIRTUAL) != 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) p11 = -int32(1) p3 = int32(3) } else { if (*TColumn)(unsafe.Pointer(pCol1)).FiDflt != 0 { *(*uintptr)(unsafe.Pointer(bp + 120)) = uintptr(0) - _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab9, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol1)).Faffinity, bp+120) + _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab10, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol1)).Faffinity, bp+120) if *(*uintptr)(unsafe.Pointer(bp + 120)) != 0 { p4 = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) } } p11 = *(*int32)(unsafe.Pointer(bp + 108)) - if !((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { - p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab9), int16(j4))) + if !((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { + p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab10), int16(j4))) } else { - p3 = int32(_sqlite3TableColumnToStorage(tls, pTab9, int16(j4))) + p3 = int32(_sqlite3TableColumnToStorage(tls, pTab10, int16(j4))) } } labelError = _sqlite3VdbeMakeLabel(tls, pParse) @@ -118841,10 +119743,10 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** is REAL, we have to load the actual data using OP_Column ** to reliably determine if the value is a NULL. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), p11, p3, int32(3)) - _sqlite3ColumnDefault(tls, v, pTab9, j4, int32(3)) + _sqlite3ColumnDefault(tls, v, pTab10, j4, int32(3)) jmp3 = _sqlite3VdbeAddOp2(tls, v, int32(OP_NotNull), int32(3), labelOk) } - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18188, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18304, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) if doTypeCheck != 0 { _sqlite3VdbeGoto(tls, v, labelError) @@ -118858,7 +119760,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _ = libc.Int32FromInt32(0) _sqlite3VdbeChangeP5(tls, v, uint16(_aStdTypeMask[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)])) - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18208, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18324, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) == int32(SQLITE_AFF_TEXT) { @@ -118866,7 +119768,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** NULL, TEXT, or BLOB. */ _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18230, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18346, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) >= int32(SQLITE_AFF_NUMERIC) { @@ -118875,12 +119777,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1b)) /* NULL, INT, FLOAT, or BLOB */ if p11 >= 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18253, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18369, -int32(1)) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), -int32(1), labelOk, int32(3), p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18255, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18371, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } } @@ -118888,14 +119790,14 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeResolveLabel(tls, v, labelError) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, labelOk) - goto _52 - _52: + goto _57 + _57: ; j4++ } /* Verify CHECK constraints */ - if (*TTable)(unsafe.Pointer(pTab9)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { - pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab9)).FpCheck, 0) + if (*TTable)(unsafe.Pointer(pTab10)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { + pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab10)).FpCheck, 0) if int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { addrCkFault = _sqlite3VdbeMakeLabel(tls, pParse) addrCkOk = _sqlite3VdbeMakeLabel(tls, pParse) @@ -118906,15 +119808,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprIfFalse(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8 + uintptr(k3)*32))).FpExpr, addrCkFault, 0) - goto _53 - _53: + goto _58 + _58: ; k3-- } _sqlite3ExprIfTrue(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8))).FpExpr, addrCkOk, int32(SQLITE_JUMPIFNULL)) _sqlite3VdbeResolveLabel(tls, v, addrCkFault) (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 - zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18275, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18391, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr2, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, addrCkOk) @@ -118924,25 +119826,25 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(isQuick != 0) { /* Omit the remaining tests for quick_check */ /* Validate index entries for the current row */ j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } ckUniq = _sqlite3VdbeMakeLabel(tls, pParse) - if pPk1 == pIdx5 { - goto _54 + if pPk1 == pIdx6 { + goto _59 } - r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx5, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) - pPrior = pIdx5 + r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx6, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) + pPrior = pIdx6 _sqlite3VdbeAddOp2(tls, v, int32(OP_AddImm), int32(8)+j4, int32(1)) /* increment entry count */ /* Verify that an index entry exists for the current table row */ - jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18305) + jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18421) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18310) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18426) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) - jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx6)).FzName) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) jmp4 = _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, jmp21) @@ -118950,12 +119852,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** that extracts the rowid off the end of the index record. ** But it only works correctly if index record does not have ** any extra bytes at the end. Verify that this is the case. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { _sqlite3VdbeAddOp2(tls, v, int32(OP_IdxRowid), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)-int32(1)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18331) + jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)-int32(1)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18447) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18367) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18483) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp7) } @@ -118964,101 +119866,77 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p label6 = 0 kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { - goto _55 + if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { + goto _60 } if label6 == 0 { label6 = _sqlite3VdbeMakeLabel(tls, pParse) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 112))+j4, kk, int32(3)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ne), int32(3), label6, r1+kk) - goto _55 - _55: + goto _60 + _60: ; kk++ } if label6 != 0 { jmp6 = _sqlite3VdbeAddOp0(tls, v, int32(OP_Goto)) _sqlite3VdbeResolveLabel(tls, v, label6) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18305) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18421) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18378) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18494) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp6) } /* For UNIQUE indexes, verify that only one entry exists with the ** current key. The entry is unique if (1) any column is NULL ** or (2) the next entry has a different key */ - if int32((*TIndex)(unsafe.Pointer(pIdx5)).FonError) != OE_None { + if int32((*TIndex)(unsafe.Pointer(pIdx6)).FonError) != OE_None { uniqOk = _sqlite3VdbeMakeLabel(tls, pParse) kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FaiColumn + uintptr(kk)*2))) + iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FaiColumn + uintptr(kk)*2))) _ = libc.Int32FromInt32(0) - if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { - goto _56 + if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { + goto _61 } _sqlite3VdbeAddOp2(tls, v, int32(OP_IsNull), r1+kk, uniqOk) - goto _56 - _56: + goto _61 + _61: ; kk++ } jmp61 = _sqlite3VdbeAddOp1(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 112))+j4) _sqlite3VdbeGoto(tls, v, uniqOk) _sqlite3VdbeJumpHere(tls, v, jmp61) - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18405) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18521) _sqlite3VdbeGoto(tls, v, jmp5) _sqlite3VdbeResolveLabel(tls, v, uniqOk) } _sqlite3VdbeJumpHere(tls, v, jmp4) _sqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp + 128))) - goto _54 - _54: + goto _59 + _59: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } } _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 108)), loopTop) _sqlite3VdbeJumpHere(tls, v, loopTop-int32(1)) - if !(isQuick != 0) { - _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18432) - j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex - for { - if !(pIdx5 != 0) { - break - } - if pPk1 == pIdx5 { - goto _57 - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+j4, 0, int32(3)) - _sqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL)) - _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) - _integrityCheckResultRow(tls, v) - _sqlite3VdbeJumpHere(tls, v, addr1) - goto _57 - _57: - ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext - j4++ - } - if pPk1 != 0 { - _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) - } + if pPk1 != 0 { + _ = libc.Int32FromInt32(0) + _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) } - goto _48 - _48: + goto _53 + _53: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -119070,60 +119948,60 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata - if pObjTab != 0 && pObjTab != pTab10 { - goto _58 + pTab11 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab11 { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == TABTYP_NORM { - goto _58 + if int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == TABTYP_NORM { + goto _62 } - if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { - goto _58 + if !(int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FnCol) <= 0 { + if int32((*TTable)(unsafe.Pointer(pTab11)).FnCol) <= 0 { zMod = *(*uintptr)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).FazArg)) + })(unsafe.Pointer(pTab11 + 64))).FazArg)) if _sqlite3HashFind(tls, db+576, zMod) == uintptr(0) { - goto _58 + goto _62 } } - _sqlite3ViewGetColumnNames(tls, pParse, pTab10) + _sqlite3ViewGetColumnNames(tls, pParse, pTab11) if (*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp == uintptr(0) { - goto _58 + })(unsafe.Pointer(pTab11 + 64))).Fp == uintptr(0) { + goto _62 } pVTab = (*TVTable)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp)).FpVtab + })(unsafe.Pointer(pTab11 + 64))).Fp)).FpVtab if pVTab == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FiVersion < int32(4) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FxIntegrity == uintptr(0) { - goto _58 + goto _62 } _sqlite3VdbeAddOp3(tls, v, int32(OP_VCheck), i9, int32(3), isQuick) - (*TTable)(unsafe.Pointer(pTab10)).FnTabRef++ - _sqlite3VdbeAppendP4(tls, v, pTab10, -int32(16)) + (*TTable)(unsafe.Pointer(pTab11)).FnTabRef++ + _sqlite3VdbeAppendP4(tls, v, pTab11, -int32(16)) a11 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a11) - goto _58 - goto _58 - _58: + goto _62 + goto _62 + _62: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -119136,7 +120014,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if aOp2 != 0 { (*(*TVdbeOp)(unsafe.Pointer(aOp2))).Fp2 = int32(1) - *(*int32)(unsafe.Pointer(bp + 104)) (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 2*24))).Fp4type = int8(-libc.Int32FromInt32(1)) - *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18461 + *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18548 (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 5*24))).Fp4type = int8(-libc.Int32FromInt32(1)) *(*uintptr)(unsafe.Pointer(aOp2 + 5*24 + 16)) = _sqlite3ErrStr(tls, int32(SQLITE_CORRUPT)) } @@ -119197,20 +120075,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc != 0 { - v60 = int32((*struct { + v64 = int32((*struct { FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc) } else { - v60 = int32(SQLITE_UTF16LE) + v64 = int32(SQLITE_UTF16LE) } - enc = uint8(v60) + enc = uint8(v64) (*TSchema)(unsafe.Pointer((*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema)).Fenc = enc _sqlite3SetTextEncoding(tls, db, enc) break } - goto _59 - _59: + goto _63 + _63: ; pEnc += 16 } @@ -119218,7 +120096,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).FzName != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18522, libc.VaList(bp+176, zRight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18609, libc.VaList(bp+176, zRight)) } } } @@ -119296,11 +120174,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p i10 = 0 (*TParse)(unsafe.Pointer(pParse)).FnMem = int32(1) for { - v62 = i10 + v66 = i10 i10++ - v61 = Xsqlite3_compileoption_get(tls, v62) - zOpt = v61 - if !(v61 != uintptr(0)) { + v65 = Xsqlite3_compileoption_get(tls, v66) + zOpt = v65 + if !(v65 != uintptr(0)) { break } _sqlite3VdbeLoadString(tls, v, int32(1), zOpt) @@ -119316,20 +120194,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p fallthrough case int32(PragTyp_WAL_CHECKPOINT): if (*TToken)(unsafe.Pointer(pId2)).Fz != 0 { - v63 = iDb + v67 = iDb } else { - v63 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) + v67 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) } - iBt = v63 + iBt = v67 eMode2 = SQLITE_CHECKPOINT_PASSIVE if zRight != 0 { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17747) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17834) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_FULL) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18547) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18634) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_RESTART) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17900) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17987) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_TRUNCATE) } } @@ -119353,11 +120231,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p Xsqlite3_wal_autocheckpoint(tls, db, _sqlite3Atoi(tls, zRight)) } if (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback == __ccgo_fp(_sqlite3WalDefaultHook) { - v64 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) + v68 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) } else { - v64 = 0 + v68 = 0 } - _returnSingleInt(tls, v, int64(v64)) + _returnSingleInt(tls, v, int64(v68)) break /* ** PRAGMA shrink_memory @@ -119385,47 +120263,68 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** ** The optional argument is a bitmask of optimizations to perform: ** - ** 0x0001 Debugging mode. Do not actually perform any optimizations - ** but instead return one line of text for each optimization - ** that would have been done. Off by default. + ** 0x00001 Debugging mode. Do not actually perform any optimizations + ** but instead return one line of text for each optimization + ** that would have been done. Off by default. ** - ** 0x0002 Run ANALYZE on tables that might benefit. On by default. - ** See below for additional information. + ** 0x00002 Run ANALYZE on tables that might benefit. On by default. + ** See below for additional information. ** - ** 0x0004 (Not yet implemented) Record usage and performance - ** information from the current session in the - ** database file so that it will be available to "optimize" - ** pragmas run by future database connections. + ** 0x00010 Run all ANALYZE operations using an analysis_limit that + ** is the lessor of the current analysis_limit and the + ** SQLITE_DEFAULT_OPTIMIZE_LIMIT compile-time option. + ** The default value of SQLITE_DEFAULT_OPTIMIZE_LIMIT is + ** currently (2024-02-19) set to 2000, which is such that + ** the worst case run-time for PRAGMA optimize on a 100MB + ** database will usually be less than 100 milliseconds on + ** a RaspberryPI-4 class machine. On by default. ** - ** 0x0008 (Not yet implemented) Create indexes that might have - ** been helpful to recent queries + ** 0x10000 Look at tables to see if they need to be reanalyzed + ** due to growth or shrinkage even if they have not been + ** queried during the current connection. Off by default. ** - ** The default MASK is and always shall be 0xfffe. 0xfffe means perform all - ** of the optimizations listed above except Debug Mode, including new - ** optimizations that have not yet been invented. If new optimizations are - ** ever added that should be off by default, those off-by-default - ** optimizations will have bitmasks of 0x10000 or larger. + ** The default MASK is and always shall be 0x0fffe. In the current + ** implementation, the default mask only covers the 0x00002 optimization, + ** though additional optimizations that are covered by 0x0fffe might be + ** added in the future. Optimizations that are off by default and must + ** be explicitly requested have masks of 0x10000 or greater. ** ** DETERMINATION OF WHEN TO RUN ANALYZE ** ** In the current implementation, a table is analyzed if only if all of ** the following are true: ** - ** (1) MASK bit 0x02 is set. + ** (1) MASK bit 0x00002 is set. + ** + ** (2) The table is an ordinary table, not a virtual table or view. ** - ** (2) The query planner used sqlite_stat1-style statistics for one or - ** more indexes of the table at some point during the lifetime of - ** the current connection. + ** (3) The table name does not begin with "sqlite_". ** - ** (3) One or more indexes of the table are currently unanalyzed OR - ** the number of rows in the table has increased by 25 times or more - ** since the last time ANALYZE was run. + ** (4) One or more of the following is true: + ** (4a) The 0x10000 MASK bit is set. + ** (4b) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. + ** (4c) The query planner used sqlite_stat1-style statistics for one + ** or more indexes of the table at some point during the lifetime + ** of the current connection. + ** + ** (5) One or more of the following is true: + ** (5a) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. (Same as 4a) + ** (5b) The number of rows in the table has increased or decreased by + ** 10-fold. In other words, the current size of the table is + ** 10 times larger than the size in sqlite_stat1 or else the + ** current size is less than 1/10th the size in sqlite_stat1. ** ** The rules for when tables are analyzed are likely to change in - ** future releases. + ** future releases. Future versions of SQLite might accept a string + ** literal argument to this pragma that contains a mnemonic description + ** of the options rather than a bitmap. */ fallthrough - case int32(PragTyp_OPTIMIZE): /* Mask of operations to perform */ + case int32(PragTyp_OPTIMIZE): /* Analysis limit to use */ + nCheck = 0 /* Number of tables to be optimized */ + nBtree = 0 /* Number of indexes on the current table */ if zRight != 0 { opMask = uint32(_sqlite3Atoi(tls, zRight)) if opMask&uint32(0x02) == uint32(0) { @@ -119434,22 +120333,31 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { opMask = uint32(0xfffe) } - v66 = pParse + 52 - v65 = *(*int32)(unsafe.Pointer(v66)) - *(*int32)(unsafe.Pointer(v66))++ - iTabCur = v65 + if opMask&uint32(0x10) == uint32(0) { + nLimit = 0 + } else { + if (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit > 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit < int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) { + nLimit = 0 + } else { + nLimit = int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) + } + } + v70 = pParse + 52 + v69 = *(*int32)(unsafe.Pointer(v70)) + *(*int32)(unsafe.Pointer(v70))++ + iTabCur = v69 if zDb != 0 { - v68 = iDb + v72 = iDb } else { - v68 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) + v72 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) } - iDbLast = v68 + iDbLast = v72 for { if !(iDb <= iDbLast) { break } if iDb == int32(1) { - goto _67 + goto _71 } _sqlite3CodeVerifySchema(tls, pParse, iDb) pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema @@ -119458,53 +120366,122 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(k4 != 0) { break } - pTab11 = (*THashElem)(unsafe.Pointer(k4)).Fdata - /* If table pTab has not been used in a way that would benefit from - ** having analysis statistics during the current session, then skip it. - ** This also has the effect of skipping virtual tables and views */ - if (*TTable)(unsafe.Pointer(pTab11)).FtabFlags&uint32(TF_StatsUsed) == uint32(0) { - goto _69 + pTab12 = (*THashElem)(unsafe.Pointer(k4)).Fdata + /* This only works for ordinary tables */ + if !(int32((*TTable)(unsafe.Pointer(pTab12)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _73 } - /* Reanalyze if the table is 25 times larger than the last analysis */ - szThreshold = int16(int32((*TTable)(unsafe.Pointer(pTab11)).FnRowLogEst) + int32(46)) - _ = libc.Int32FromInt32(0) - pIdx6 = (*TTable)(unsafe.Pointer(pTab11)).FpIndex + /* Do not scan system tables */ + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab12)).FzName, __ccgo_ts+6589, int32(7)) { + goto _73 + } + /* Find the size of the table as last recorded in sqlite_stat1. + ** If any index is unanalyzed, then the threshold is -1 to + ** indicate a new, unanalyzed index + */ + szThreshold = (*TTable)(unsafe.Pointer(pTab12)).FnRowLogEst + nIndex = 0 + pIdx7 = (*TTable)(unsafe.Pointer(pTab12)).FpIndex for { - if !(pIdx6 != 0) { + if !(pIdx7 != 0) { break } - if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx6 + 100))&0x80>>7)) != 0) { - szThreshold = 0 /* Always analyze if any index lacks statistics */ - break + nIndex++ + if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx7 + 100))&0x80>>7)) != 0) { + szThreshold = int16(-int32(1)) /* Always analyze if any index lacks statistics */ } - goto _70 - _70: + goto _74 + _74: ; - pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext + pIdx7 = (*TIndex)(unsafe.Pointer(pIdx7)).FpNext + } + /* If table pTab has not been used in a way that would benefit from + ** having analysis statistics during the current session, then skip it, + ** unless the 0x10000 MASK bit is set. */ + if (*TTable)(unsafe.Pointer(pTab12)).FtabFlags&uint32(TF_MaybeReanalyze) != uint32(0) { + /* Check for size change if stat1 has been used for a query */ + } else { + if opMask&uint32(0x10000) != 0 { + /* Check for size change if 0x10000 is set */ + } else { + if (*TTable)(unsafe.Pointer(pTab12)).FpIndex != uintptr(0) && int32(szThreshold) < 0 { + /* Do analysis if unanalyzed indexes exists */ + } else { + /* Otherwise, we can skip this table */ + goto _73 + } + } } - if szThreshold != 0 { - _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab11, int32(OP_OpenRead)) - _sqlite3VdbeAddOp3(tls, v, int32(OP_IfSmaller), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), int32(szThreshold)) + nCheck++ + if nCheck == int32(2) { + /* If ANALYZE might be invoked two or more times, hold a write + ** transaction for efficiency */ + _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) + } + nBtree += nIndex + int32(1) + /* Reanalyze if the table is 10 times larger or smaller than + ** the last analysis. Unconditional reanalysis if there are + ** unanalyzed indexes. */ + _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab12, int32(OP_OpenRead)) + if int32(szThreshold) >= 0 { + iRange = int16(33) /* 10x size change */ + if int32(szThreshold) >= int32(iRange) { + v75 = int32(szThreshold) - int32(iRange) + } else { + v75 = -int32(1) + } + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IfSizeBetween), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), v75, int32(szThreshold)+int32(iRange)) + } else { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1))) } - zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18555, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab11)).FzName)) + zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18642, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab12)).FzName)) if opMask&uint32(0x01) != 0 { r11 = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, r11, 0, zSubSql, -int32(6)) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), r11, int32(1)) } else { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), 0, 0, 0, zSubSql, -int32(6)) + if nLimit != 0 { + v76 = int32(0x02) + } else { + v76 = 00 + } + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), v76, nLimit, 0, zSubSql, -int32(6)) } - goto _69 - _69: + goto _73 + _73: ; k4 = (*THashElem)(unsafe.Pointer(k4)).Fnext } - goto _67 - _67: + goto _71 + _71: ; iDb++ } _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) + /* In a schema with a large number of tables and indexes, scale back + ** the analysis_limit to avoid excess run-time in the worst case. + */ + if !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && nLimit > 0 && nBtree > int32(100) { + nLimit = int32(100) * nLimit / nBtree + if nLimit < int32(100) { + nLimit = int32(100) + } + aOp5 = _sqlite3VdbeGetOp(tls, v, 0) + iEnd = _sqlite3VdbeCurrentAddr(tls, v) + iAddr1 = 0 + for { + if !(iAddr1 < iEnd) { + break + } + if int32((*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fopcode) == int32(OP_SqlExec) { + (*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fp2 = nLimit + } + goto _77 + _77: + ; + iAddr1++ + } + } break /* ** PRAGMA busy_timeout @@ -119599,6 +120576,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** instructions to the VM. */ if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_NoColumns1) != 0 && zRight != 0 { } + goto pragma_out pragma_out: ; _sqlite3DbFree(tls, db, zLeft) @@ -119730,34 +120708,34 @@ var _encnames1 = [9]struct { Fenc Tu8 }{ 0: { - FzName: __ccgo_ts + 18464, + FzName: __ccgo_ts + 18551, Fenc: uint8(SQLITE_UTF8), }, 1: { - FzName: __ccgo_ts + 18469, + FzName: __ccgo_ts + 18556, Fenc: uint8(SQLITE_UTF8), }, 2: { - FzName: __ccgo_ts + 18475, + FzName: __ccgo_ts + 18562, Fenc: uint8(SQLITE_UTF16LE), }, 3: { - FzName: __ccgo_ts + 18484, + FzName: __ccgo_ts + 18571, Fenc: uint8(SQLITE_UTF16BE), }, 4: { - FzName: __ccgo_ts + 18493, + FzName: __ccgo_ts + 18580, Fenc: uint8(SQLITE_UTF16LE), }, 5: { - FzName: __ccgo_ts + 18501, + FzName: __ccgo_ts + 18588, Fenc: uint8(SQLITE_UTF16BE), }, 6: { - FzName: __ccgo_ts + 18509, + FzName: __ccgo_ts + 18596, }, 7: { - FzName: __ccgo_ts + 18516, + FzName: __ccgo_ts + 18603, }, 8: {}, } @@ -119853,14 +120831,14 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg _ = argc _ = argv _sqlite3StrAccumInit(tls, bp, uintptr(0), bp+32, int32(200), 0) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18573) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18660) i = 0 j = int32((*TPragmaName)(unsafe.Pointer(pPragma)).FiPragCName) for { if !(i < int32((*TPragmaName)(unsafe.Pointer(pPragma)).FnPragCName)) { break } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18588, libc.VaList(bp+240, int32(cSep), _pragCName[j])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18675, libc.VaList(bp+240, int32(cSep), _pragCName[j])) cSep = uint8(',') goto _1 _1: @@ -119869,19 +120847,19 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg j++ } if i == 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18595, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18682, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) i++ } j = 0 if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_Result1) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18601) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18688) j++ } if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&(libc.Int32FromInt32(PragFlg_SchemaOpt)|libc.Int32FromInt32(PragFlg_SchemaReq)) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18613) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18700) j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5170, int32(1)) _sqlite3StrAccumFinish(tls, bp) _ = libc.Int32FromInt32(0) rc = Xsqlite3_declare_vtab(tls, db, bp+32) @@ -119897,7 +120875,7 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg (*TPragmaVtab)(unsafe.Pointer(pTab)).FnHidden = uint8(j) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) } *(*uintptr)(unsafe.Pointer(ppVtab)) = pTab return rc @@ -119943,14 +120921,14 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) { break } - if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { goto _1 } if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fop) != int32(SQLITE_INDEX_CONSTRAINT_EQ) { goto _1 } - if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { - goto _1 + if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + return int32(SQLITE_CONSTRAINT) } j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn - int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) _ = libc.Int32FromInt32(0) @@ -119969,16 +120947,13 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 j = seen[0] - int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) - if seen[int32(1)] == 0 { - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(1000) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(1000) - return SQLITE_OK - } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(20) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(20) - j = seen[int32(1)] - int32(1) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + if seen[int32(1)] != 0 { + j = seen[int32(1)] - int32(1) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + } return SQLITE_OK } @@ -120006,6 +120981,7 @@ func _pragmaVtabCursorClear(tls *libc.TLS, pCsr uintptr) { _ = i Xsqlite3_finalize(tls, (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma) (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma = uintptr(0) + (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FiRowid = 0 i = 0 for { if !(i < int32(libc.Uint64FromInt64(16)/libc.Uint64FromInt64(8))) { @@ -120084,7 +121060,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if zText != 0 { - *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+40, zText)) + *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+40, zText)) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -120096,13 +121072,13 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr j++ } _sqlite3StrAccumInit(tls, bp, uintptr(0), uintptr(0), 0, *(*int32)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb + 136 + 1*4))) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18628) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18715) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18636, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18723, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) } Xsqlite3_str_appendall(tls, bp, (*TPragmaName)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).FpName)).FzName) if *(*uintptr)(unsafe.Pointer(pCsr + 24)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18640, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18727, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) } zSql = _sqlite3StrAccumFinish(tls, bp) if zSql == uintptr(0) { @@ -120111,7 +121087,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr rc = Xsqlite3_prepare_v2(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), pCsr+8, uintptr(0)) Xsqlite3_free(tls, zSql) if rc != SQLITE_OK { - (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) + (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) return rc } return _pragmaVtabNext(tls, pVtabCursor) @@ -120239,24 +121215,24 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) /* A error message has already been generated. Do not overwrite it */ } else { if (*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(libc.Int32FromInt32(INITFLAG_AlterMask)) != 0 { - *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18674, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) + *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18761, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) (*TInitData)(unsafe.Pointer(pData)).Frc = int32(SQLITE_ERROR) } else { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_WriteSchema) != 0 { - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140891)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141840)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) } else { - v1 = __ccgo_ts + 5108 + v1 = __ccgo_ts + 5172 } zObj = v1 - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18702, libc.VaList(bp+8, zObj)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18789, libc.VaList(bp+8, zObj)) if zExtra != 0 && *(*uint8)(unsafe.Pointer(zExtra)) != 0 { - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18733, libc.VaList(bp+8, z, zExtra)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18820, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140898)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141847)) } } } @@ -120264,9 +121240,9 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) } var _azAlterType = [3]uintptr{ - 0: __ccgo_ts + 18644, - 1: __ccgo_ts + 18651, - 2: __ccgo_ts + 18663, + 0: __ccgo_ts + 18731, + 1: __ccgo_ts + 18738, + 2: __ccgo_ts + 18750, } // C documentation @@ -120346,7 +121322,7 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(iDb) if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), db+192) == 0 || (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage && (*TInitData)(unsafe.Pointer(pData)).FmxPage > uint32(0) { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14516) + _corruptSchema(tls, pData, argv, __ccgo_ts+14609) } } libc.SetBitFieldPtr8Uint32(db+192+8, libc.Uint32FromInt32(0), 0, 0x1) @@ -120381,11 +121357,11 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr } else { pIndex = _sqlite3FindIndex(tls, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName) if pIndex == uintptr(0) { - _corruptSchema(tls, pData, argv, __ccgo_ts+18741) + _corruptSchema(tls, pData, argv, __ccgo_ts+18828) } else { if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), pIndex+88) == 0 || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum < uint32(2) || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage || _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14516) + _corruptSchema(tls, pData, argv, __ccgo_ts+14609) } } } @@ -120429,18 +121405,18 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** table name will be inserted automatically by the parser so we can just ** use the abbreviation "x" here. The parser will also automatically tag ** the schema table as read-only. */ - (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9058 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9183 if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6533 + v2 = __ccgo_ts + 6597 } else { - v2 = __ccgo_ts + 6066 + v2 = __ccgo_ts + 6130 } v1 = v2 zSchemaTabName = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(2)] = (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8130 - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18754 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8255 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18841 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(5)] = uintptr(0) (*(*TInitData)(unsafe.Pointer(bp + 72))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 72))).FiDb = iDb @@ -120530,7 +121506,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl } else { /* If opening an attached database, the encoding much match ENC(db) */ if (*(*[5]int32)(unsafe.Pointer(bp + 48)))[libc.Int32FromInt32(BTREE_TEXT_ENCODING)-libc.Int32FromInt32(1)]&int32(3) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12095) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12220) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -120556,7 +121532,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = uint8(1) } if int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) > int32(SQLITE_MAX_FILE_FORMAT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18826) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18913) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -120572,7 +121548,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl */ _ = libc.Int32FromInt32(0) (*(*TInitData)(unsafe.Pointer(bp + 72))).FmxPage = _sqlite3BtreeLastPage(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18850, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18937, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) rc = Xsqlite3_exec(tls, db, zSql, __ccgo_fp(_sqlite3InitCallback), bp+72, uintptr(0)) @@ -120610,12 +121586,14 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** curMain and calling sqlite3BtreeEnter(). For an error that occurs ** before that point, jump to error_out. */ + goto initone_error_out initone_error_out: ; if openedTransaction != 0 { _sqlite3BtreeCommit(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) } _sqlite3BtreeLeave(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) + goto error_out error_out: ; if rc != 0 { @@ -120887,7 +121865,12 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup - pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + if _sqlite3FaultSim(tls, int32(300)) != 0 { + pCleanup = uintptr(0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) + } else { + pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + } if pCleanup != 0 { (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup @@ -120919,7 +121902,7 @@ func _sqlite3ParseObjectInit(tls *libc.TLS, pParse uintptr, db uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FpParse = pParse (*TParse)(unsafe.Pointer(pParse)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1632, 0) } } @@ -120955,7 +121938,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } _ = libc.Int32FromInt32(0) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1632, 0) v1 = libc.Int32FromInt32(SQLITE_NOMEM) rc = v1 (*Tsqlite3)(unsafe.Pointer(db)).FerrCode = v1 @@ -121006,7 +121989,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep rc = _sqlite3BtreeSchemaLocked(tls, pBt) if rc != 0 { zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FzDbSName - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18884, libc.VaList(bp+432, zDb)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18971, libc.VaList(bp+432, zDb)) goto end_prepare } } @@ -121022,7 +122005,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep if nBytes >= 0 && (nBytes == 0 || int32(*(*uint8)(unsafe.Pointer(zSql + uintptr(nBytes-int32(1))))) != 0) { mxLen = *(*int32)(unsafe.Pointer(db + 136 + 1*4)) if nBytes > mxLen { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+18914, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+19001, 0) rc = _sqlite3ApiExit(tls, db, int32(SQLITE_TOOBIG)) goto end_prepare } @@ -121058,7 +122041,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep _ = libc.Int32FromInt32(0) rc = (*(*TParse)(unsafe.Pointer(bp))).Frc if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3795, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3859, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) } else { _sqlite3Error(tls, db, rc) @@ -121075,6 +122058,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep (*(*TParse)(unsafe.Pointer(bp))).FpTriggerPrg = (*TTriggerPrg)(unsafe.Pointer(pT)).FpNext _sqlite3DbFree(tls, db, pT) } + goto end_prepare end_prepare: ; _sqlite3ParseObjectReset(tls, bp) @@ -121088,7 +122072,7 @@ func _sqlite3LockAndPrepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int3 cnt = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141699)) + return _sqlite3MisuseError(tls, int32(142654)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -121231,7 +122215,7 @@ func _sqlite3Prepare16(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, pr rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141848)) + return _sqlite3MisuseError(tls, int32(142803)) } if nBytes >= 0 { z = zSql @@ -121641,15 +122625,15 @@ func _sqlite3JoinType(tls *libc.TLS, pParse uintptr, pA uintptr, pB uintptr, pC i++ } if jointype&(libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER)) == libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER) || jointype&int32(JT_ERROR) != 0 || jointype&(libc.Int32FromInt32(JT_OUTER)|libc.Int32FromInt32(JT_LEFT)|libc.Int32FromInt32(JT_RIGHT)) == int32(JT_OUTER) { - zSp1 = __ccgo_ts + 11202 - zSp2 = __ccgo_ts + 11202 + zSp1 = __ccgo_ts + 11327 + zSp2 = __ccgo_ts + 11327 if pB == uintptr(0) { zSp1++ } if pC == uintptr(0) { zSp2++ } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18933, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19020, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) jointype = int32(JT_INNER) } return jointype @@ -121952,7 +122936,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { if int32((*TSrcItem)(unsafe.Pointer(pRight)).Ffg.Fjointype)&int32(JT_NATURAL) != 0 { pUsing = uintptr(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x400>>10)) != 0 || *(*uintptr)(unsafe.Pointer(pRight + 72)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18963, libc.VaList(bp+16, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19050, libc.VaList(bp+16, 0)) return int32(1) } j = 0 @@ -122005,7 +122989,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { zName1 = (*(*TIdList_item)(unsafe.Pointer(pList + 8 + uintptr(j)*16))).FzName iRightCol = _sqlite3ColumnIndex(tls, pRightTab, zName1) if iRightCol < 0 || _tableAndColumnIndex(tls, pSrc, 0, i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19013, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19100, libc.VaList(bp+16, zName1)) return int32(1) } pE1 = _sqlite3CreateColumnExpr(tls, db, pSrc, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) @@ -122027,7 +123011,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { pFuncArgs = uintptr(0) /* Arguments to the coalesce() */ for _tableAndColumnIndex(tls, pSrc, *(*int32)(unsafe.Pointer(bp))+int32(1), i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) != 0 { if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 60 + 4))&0x400>>10)) == 0 || _sqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 72)), zName1) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19077, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19164, libc.VaList(bp+16, zName1)) break } pFuncArgs = _sqlite3ExprListAppend(tls, pParse, pFuncArgs, pE1) @@ -122073,7 +123057,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { } var _tkCoalesce = TToken{ - Fz: __ccgo_ts + 6730, + Fz: __ccgo_ts + 6794, Fn: uint32(8), } @@ -122873,13 +123857,13 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { _ = z switch id { case int32(TK_ALL): - z = __ccgo_ts + 19114 + z = __ccgo_ts + 19201 case int32(TK_INTERSECT): - z = __ccgo_ts + 19124 + z = __ccgo_ts + 19211 case int32(TK_EXCEPT): - z = __ccgo_ts + 19134 + z = __ccgo_ts + 19221 default: - z = __ccgo_ts + 19141 + z = __ccgo_ts + 19228 break } return z @@ -122900,7 +123884,7 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { func _explainTempTable(tls *libc.TLS, pParse uintptr, zUsage uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19147, libc.VaList(bp+8, zUsage)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19234, libc.VaList(bp+8, zUsage)) } /* @@ -122934,12 +123918,17 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, iParm = (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm /* True if sorter record includes seq. no. */ nRefKey = 0 aOutEx = (*TSelect)(unsafe.Pointer(p)).FpEList + 8 - if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat > 0 { - v1 = __ccgo_ts + 19170 + nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat == 0 || nKey == int32(1) { + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat != 0 { + v1 = __ccgo_ts + 19257 + } else { + v1 = __ccgo_ts + 1662 + } + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19271, libc.VaList(bp+8, v1)) } else { - v1 = __ccgo_ts + 1648 + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19302, libc.VaList(bp+8, nKey)) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19185, libc.VaList(bp+8, v1)) _ = libc.Int32FromInt32(0) if (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut != 0 { _sqlite3VdbeAddOp2(tls, v, int32(OP_Gosub), (*TSortCtx)(unsafe.Pointer(pSort)).FregReturn, (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut) @@ -122962,7 +123951,6 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, regRow = _sqlite3GetTempRange(tls, pParse, nColumn) } } - nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat if int32((*TSortCtx)(unsafe.Pointer(pSort)).FsortFlags)&int32(SORTFLAG_UseSorter) != 0 { v3 = pParse + 56 *(*int32)(unsafe.Pointer(v3))++ @@ -123188,7 +124176,7 @@ func _columnTypeImpl(tls *libc.TLS, pNC uintptr, pExpr uintptr, pzOrigDb uintptr _ = libc.Int32FromInt32(0) if iCol < 0 { zType = __ccgo_ts + 1136 - *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16694 + *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16781 } else { *(*uintptr)(unsafe.Pointer(bp + 16)) = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, uintptr(0)) @@ -123341,13 +124329,13 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } _ = libc.Int32FromInt32(0) if iCol < 0 { - zCol = __ccgo_ts + 16694 + zCol = __ccgo_ts + 16781 } else { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } if fullName != 0 { zName1 = uintptr(0) - zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12381, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) + zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12506, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zName1, __ccgo_fp(_sqlite3OomClear)) } else { _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zCol, uintptr(-libc.Int32FromInt32(1))) @@ -123355,7 +124343,7 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } else { z = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32))).FzEName if z == uintptr(0) { - v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19216, libc.VaList(bp+8, i+int32(1))) + v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19348, libc.VaList(bp+8, i+int32(1))) } else { v2 = _sqlite3DbStrDup(tls, db, z) } @@ -123449,7 +124437,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if iCol >= 0 { v3 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } else { - v3 = __ccgo_ts + 16694 + v3 = __ccgo_ts + 16781 } zName = v3 } else { @@ -123465,7 +124453,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if zName != 0 && !(_sqlite3IsTrueOrFalse(tls, zName) != 0) { zName = _sqlite3DbStrDup(tls, db, zName) } else { - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19216, libc.VaList(bp+40, i+int32(1))) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19348, libc.VaList(bp+40, i+int32(1))) } /* Make sure the column name is unique. If the name is not unique, ** append an integer to the name so that it becomes unique. @@ -123501,7 +124489,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, } *(*Tu32)(unsafe.Pointer(bp))++ v8 = *(*Tu32)(unsafe.Pointer(bp)) - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19225, libc.VaList(bp+40, nName, zName, v8)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19357, libc.VaList(bp+40, nName, zName, v8)) _sqlite3ProgressCheck(tls, pParse) if *(*Tu32)(unsafe.Pointer(bp)) > uint32(3) { Xsqlite3_randomness(tls, int32(4), bp) @@ -123561,9 +124549,9 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS defer tls.Free(64) var a, db, p, pCol, pColl, pS2, zType, p4, p5 uintptr var i, j, m int32 - var m1, n Ti64 + var k, n Ti64 var _ /* sNC at bp+0 */ TNameContext - _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, m, m1, n, p, pCol, pColl, pS2, zType, p4, p5 + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, k, m, n, p, pCol, pColl, pS2, zType, p4, p5 db = (*TParse)(unsafe.Pointer(pParse)).Fdb _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -123584,17 +124572,22 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS if !(i < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } + m = 0 + pS2 = pSelect *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags) & libc.Int32FromInt32(COLFLAG_NOINSERT)) p = (*(*TExprList_item)(unsafe.Pointer(a + uintptr(i)*32))).FpExpr /* pCol->szEst = ... // Column size est for SELECT tables never used */ (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, p) + for int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) && (*TSelect)(unsafe.Pointer(pS2)).FpNext != uintptr(0) { + m |= _sqlite3ExprDataType(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext + (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + } if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) { (*TColumn)(unsafe.Pointer(pCol)).Faffinity = aff } - if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && (*TSelect)(unsafe.Pointer(pSelect)).FpNext != 0 { - m = 0 - m = 0 - pS2 = (*TSelect)(unsafe.Pointer(pSelect)).FpNext + if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && ((*TSelect)(unsafe.Pointer(pS2)).FpNext != 0 || pS2 != pSelect) { + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext for { if !(pS2 != 0) { break @@ -123619,7 +124612,7 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS zType = _columnTypeImpl(tls, bp, p, uintptr(0), uintptr(0), uintptr(0)) if zType == uintptr(0) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) != int32(_sqlite3AffinityType(tls, zType, uintptr(0))) { if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_NUMERIC) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_FLEXNUM) { - zType = __ccgo_ts + 19233 + zType = __ccgo_ts + 19365 } else { zType = uintptr(0) j = int32(1) @@ -123639,13 +124632,13 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS } } if zType != 0 { - m1 = int64(_sqlite3Strlen30(tls, zType)) + k = int64(_sqlite3Strlen30(tls, zType)) n = int64(_sqlite3Strlen30(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) - (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+m1+int64(2))) + (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+k+int64(2))) p4 = pCol + 14 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) & ^(libc.Int32FromInt32(COLFLAG_HASTYPE) | libc.Int32FromInt32(COLFLAG_HASCOLL))) if (*TColumn)(unsafe.Pointer(pCol)).FzCnName != 0 { - libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(m1+int64(1))) + libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(k+int64(1))) p5 = pCol + 14 *(*Tu16)(unsafe.Pointer(p5)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p5))) | libc.Int32FromInt32(COLFLAG_HASTYPE)) } @@ -123941,7 +124934,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest iDistinct = 0 /* To ensure unique results if UNION */ eDest = int32(SRT_Fifo) /* Registers used by LIMIT and OFFSET */ if (*TSelect)(unsafe.Pointer(p)).FpWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19237, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19369, 0) return } /* Obtain authorization to do a recursive query */ @@ -124034,7 +125027,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest break } if (*TSelect)(unsafe.Pointer(pFirstRec)).FselFlags&uint32(SF_Aggregate) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19286, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19418, 0) goto end_of_recursive_query } (*TSelect)(unsafe.Pointer(pFirstRec)).Fop = uint8(TK_ALL) @@ -124049,7 +125042,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest /* Store the results of the setup-query in Queue. */ pSetup = (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior (*TSelect)(unsafe.Pointer(pSetup)).FpNext = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19328, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19460, 0) rc = _sqlite3Select(tls, pParse, pSetup, bp) (*TSelect)(unsafe.Pointer(pSetup)).FpNext = p if rc != 0 { @@ -124077,13 +125070,14 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest ** the value for the recursive-table. Store the results in the Queue. */ (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19334, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19466, 0) _sqlite3Select(tls, pParse, p, bp) _ = libc.Int32FromInt32(0) (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = pSetup /* Keep running the loop until the Queue is empty */ _sqlite3VdbeGoto(tls, v, addrTop) _sqlite3VdbeResolveLabel(tls, v, addrBreak) + goto end_of_recursive_query end_of_recursive_query: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSelect)(unsafe.Pointer(p)).FpOrderBy) @@ -124135,11 +125129,11 @@ func _multiSelectValues(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) nRow += bShowAll } if nRow == int32(1) { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } else { - v1 = __ccgo_ts + 19349 + v1 = __ccgo_ts + 19481 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19351, libc.VaList(bp+8, nRow, v1)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19483, libc.VaList(bp+8, nRow, v1)) for p != 0 { _selectInnerLoop(tls, pParse, p, -int32(1), uintptr(0), uintptr(0), pDest, int32(1), int32(1)) if !(bShowAll != 0) { @@ -124254,8 +125248,8 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in return _multiSelectOrderBy(tls, pParse, p, pDest) } else { if (*TSelect)(unsafe.Pointer(pPrior)).FpPrior == uintptr(0) { - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19374, 0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19389, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19506, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19521, 0) } /* Generate code for the left and right SELECT statements. */ @@ -124281,7 +125275,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in _sqlite3VdbeAddOp3(tls, v, int32(OP_OffsetLimit), (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TSelect)(unsafe.Pointer(p)).FiOffset+int32(1), (*TSelect)(unsafe.Pointer(p)).FiOffset) } } - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19114, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19201, 0) rc = _sqlite3Select(tls, pParse, p, bp) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -124338,7 +125332,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 48))).FeDest = op - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19408, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19540, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+48) _ = libc.Int32FromInt32(0) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior @@ -124404,7 +125398,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit1 = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 88))).FiSDParm = tab2 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19408, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19540, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+88) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -124510,6 +125504,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in } _sqlite3KeyInfoUnref(tls, pKeyInfo) } + goto multi_select_end multi_select_end: ; (*TSelectDest)(unsafe.Pointer(pDest)).FiSdst = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst @@ -124530,9 +125525,9 @@ func _sqlite3SelectWrongNumTermsError(tls *libc.TLS, pParse uintptr, p uintptr) bp := tls.Alloc(16) defer tls.Free(16) if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Values) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19429, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19561, 0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19475, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19607, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) } } @@ -124918,8 +125913,8 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy = _sqlite3ExprListDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pOrderBy, 0) - _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7367) - _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7367) + _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7492) + _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7492) /* Compute the limit registers */ _computeLimitRegisters(tls, pParse, p, labelEnd) if (*TSelect)(unsafe.Pointer(p)).FiLimit != 0 && op == int32(TK_ALL) { @@ -124963,14 +125958,14 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr regOutB = v21 _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), regAddrA) _sqlite3SelectDestInit(tls, bp+40, int32(SRT_Coroutine), regAddrB) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19557, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19689, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) /* Generate a coroutine to evaluate the SELECT statement to the ** left of the compound operator - the "A" select. */ addrSelectA = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regAddrA, 0, addrSelectA) (*TSelect)(unsafe.Pointer(pPrior)).FiLimit = regLimitA - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19568, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19700, 0) _sqlite3Select(tls, pParse, pPrior, bp) _sqlite3VdbeEndCoroutine(tls, v, regAddrA) _sqlite3VdbeJumpHere(tls, v, addr1) @@ -124983,7 +125978,7 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr savedOffset = (*TSelect)(unsafe.Pointer(p)).FiOffset (*TSelect)(unsafe.Pointer(p)).FiLimit = regLimitB (*TSelect)(unsafe.Pointer(p)).FiOffset = 0 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19573, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19705, 0) _sqlite3Select(tls, pParse, p, bp+40) (*TSelect)(unsafe.Pointer(p)).FiLimit = savedLimit (*TSelect)(unsafe.Pointer(p)).FiOffset = savedOffset @@ -125201,7 +126196,7 @@ func _substExpr(tls *libc.TLS, pSubst uintptr, pExpr uintptr) (r uintptr) { if pColl != 0 { v1 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v1 = __ccgo_ts + 5086 + v1 = __ccgo_ts + 5150 } pExpr = _sqlite3ExprAddCollateString(tls, (*TSubstContext)(unsafe.Pointer(pSubst)).FpParse, pExpr, v1) } @@ -126265,10 +127260,10 @@ func _findConstInWhere(tls *libc.TLS, pConst uintptr, pExpr uintptr) { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pLeft) != 0 { + if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pLeft) != 0 { _constInsert(tls, pConst, pRight, pLeft, pExpr) } - if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pRight) != 0 { + if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pRight) != 0 { _constInsert(tls, pConst, pLeft, pRight, pExpr) } } @@ -126509,6 +127504,18 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** The hope is that the terms added to the inner query will make it more // ** efficient. // ** +// ** NAME AMBIGUITY +// ** +// ** This optimization is called the "WHERE-clause push-down optimization". +// ** +// ** Do not confuse this optimization with another unrelated optimization +// ** with a similar name: The "MySQL push-down optimization" causes WHERE +// ** clause terms that can be evaluated using only the index and without +// ** reference to the table are run first, so that if they are false, +// ** unnecessary table seeks are avoided. +// ** +// ** RULES +// ** // ** Do not attempt this optimization if: // ** // ** (1) (** This restriction was removed on 2017-09-29. We used to @@ -126574,10 +127581,10 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** (9c) There is a RIGHT JOIN (or FULL JOIN) in between the ON/USING // ** clause and the subquery. // ** -// ** Without this restriction, the push-down optimization might move -// ** the ON/USING filter expression from the left side of a RIGHT JOIN -// ** over to the right side, which leads to incorrect answers. See -// ** also restriction (6) in sqlite3ExprIsSingleTableConstraint(). +// ** Without this restriction, the WHERE-clause push-down optimization +// ** might move the ON/USING filter expression from the left side of a +// ** RIGHT JOIN over to the right side, which leads to incorrect answers. +// ** See also restriction (6) in sqlite3ExprIsSingleTableConstraint(). // ** // ** (10) The inner query is not the right-hand table of a RIGHT JOIN. // ** @@ -126672,7 +127679,7 @@ func _pushDownWhereTerms(tls *libc.TLS, pParse uintptr, pSubq uintptr, pWhere ui nChng += _pushDownWhereTerms(tls, pParse, pSubq, (*TExpr)(unsafe.Pointer(pWhere)).FpRight, pSrcList, iSrc) pWhere = (*TExpr)(unsafe.Pointer(pWhere)).FpLeft } - if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc) != 0 { + if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc, int32(1)) != 0 { nChng++ *(*Tu32)(unsafe.Pointer(pSubq + 4)) |= uint32(SF_PushDown) for pSubq != 0 { @@ -126851,13 +127858,13 @@ func _minMaxQuery(tls *libc.TLS, db uintptr, pFunc uintptr, ppMinMax uintptr) (r } _ = libc.Int32FromInt32(0) zFunc = *(*uintptr)(unsafe.Pointer(pFunc + 8)) - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15550) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15643) == 0 { eRet = int32(WHERE_ORDERBY_MIN) if _sqlite3ExprCanBeNull(tls, (*(*TExprList_item)(unsafe.Pointer(pEList + 8))).FpExpr) != 0 { sortFlags = uint8(KEYINFO_ORDER_BIGNULL) } } else { - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15554) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15647) == 0 { eRet = int32(WHERE_ORDERBY_MAX) sortFlags = uint8(KEYINFO_ORDER_DESC) } else { @@ -126953,7 +127960,7 @@ func _sqlite3IndexedByLookup(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r in pIdx = (*TIndex)(unsafe.Pointer(pIdx)).FpNext } if !(pIdx != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19579, libc.VaList(bp+8, zIndexedBy, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19711, libc.VaList(bp+8, zIndexedBy, 0)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) return int32(SQLITE_ERROR) } @@ -127080,7 +128087,7 @@ func _cannotBeFunction(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x4>>2)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19597, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19729, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) return int32(1) } return 0 @@ -127262,7 +128269,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom *(*Tu32)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect + 4)) |= uint32(SF_CopyCte) _ = libc.Int32FromInt32(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x2>>1)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19620, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19752, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) return int32(2) } libc.SetBitFieldPtr16Uint32(pFrom+60+4, libc.Uint32FromInt32(1), 8, 0x100) @@ -127287,7 +128294,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ libc.SetBitFieldPtr16Uint32(pItem+60+4, libc.Uint32FromInt32(1), 6, 0x40) if (*TSelect)(unsafe.Pointer(pRecTerm)).FselFlags&uint32(SF_Recursive) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19640, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19772, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) return int32(2) } *(*Tu32)(unsafe.Pointer(pRecTerm + 4)) |= uint32(SF_Recursive) @@ -127309,7 +128316,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } pRecTerm = (*TSelect)(unsafe.Pointer(pRecTerm)).FpPrior } - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19683 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19815 pSavedWith = (*TParse)(unsafe.Pointer(pParse)).FpWith (*TParse)(unsafe.Pointer(pParse)).FpWith = *(*uintptr)(unsafe.Pointer(bp)) if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { @@ -127345,7 +128352,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom pEList = (*TSelect)(unsafe.Pointer(pLeft)).FpEList if (*TCte)(unsafe.Pointer(pCte)).FpCols != 0 { if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr != (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19706, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19838, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) (*TParse)(unsafe.Pointer(pParse)).FpWith = pSavedWith return int32(2) } @@ -127354,9 +128361,9 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom _sqlite3ColumnsFromExprList(tls, pParse, pEList, pTab+54, pTab+8) if bMayRecursive != 0 { if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19744 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19876 } else { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19778 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19910 } _sqlite3WalkSelect(tls, pWalker, pSel) } @@ -127417,7 +128424,7 @@ func _sqlite3ExpandSubquery(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int if (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias != 0 { (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3DbStrDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias) } else { - (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19816, libc.VaList(bp+8, pFrom)) + (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19948, libc.VaList(bp+8, pFrom)) } for (*TSelect)(unsafe.Pointer(pSel)).FpPrior != 0 { pSel = (*TSelect)(unsafe.Pointer(pSel)).FpPrior @@ -127581,7 +128588,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { return int32(WRC_Abort) } if (*TTable)(unsafe.Pointer(pTab)).FnTabRef >= uint32(0xffff) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19820, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19952, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) (*TSrcItem)(unsafe.Pointer(pFrom)).FpTab = uintptr(0) return int32(WRC_Abort) } @@ -127597,7 +128604,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_EnableView) == uint64(0) && (*TTable)(unsafe.Pointer(pTab)).FpSchema != (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19859, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19991, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } (*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect = _sqlite3SelectDup(tls, db, (*(*struct { FpSelect uintptr @@ -127612,7 +128619,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).Fp)).FeVtabRisk) > libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15109, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15202, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } } _ = libc.Int32FromInt32(0) @@ -127749,7 +128756,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if iDb >= 0 { v10 = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName } else { - v10 = __ccgo_ts + 6590 + v10 = __ccgo_ts + 6654 } zSchemaName = v10 } @@ -127767,7 +128774,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if pNew != 0 { pX = pNew + 8 + uintptr((*TExprList)(unsafe.Pointer(pNew)).FnExpr-int32(1))*32 _ = libc.Int32FromInt32(0) - (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19890, libc.VaList(bp+8, zUName)) + (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20022, libc.VaList(bp+8, zUName)) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(ENAME_TAB), 0, 0x3) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(1), 7, 0x80) } @@ -127849,7 +128856,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, (*(*TExprList_item)(unsafe.Pointer(pNestedFrom + 8 + uintptr(j)*32))).FzEName) } else { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19895, libc.VaList(bp+8, zSchemaName, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20027, libc.VaList(bp+8, zSchemaName, zTabName, zName)) } if j == int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) { v13 = int32(ENAME_ROWID) @@ -127862,7 +128869,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } } else { if longNames != 0 { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12381, libc.VaList(bp+8, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12506, libc.VaList(bp+8, zTabName, zName)) libc.SetBitFieldPtr16Uint32(pX1+16+4, libc.Uint32FromInt32(ENAME_NAME), 0, 0x3) } else { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, zName) @@ -127882,9 +128889,9 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if !(tableSeen != 0) { if zTName != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19904, libc.VaList(bp+8, zTName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20036, libc.VaList(bp+8, zTName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19922, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20054, 0) } } } @@ -127898,7 +128905,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if (*TSelect)(unsafe.Pointer(p)).FpEList != 0 { if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpEList)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19942, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20074, 0) return int32(WRC_Abort) } if elistFlags&uint32(libc.Int32FromInt32(EP_HasFunc)|libc.Int32FromInt32(EP_Subquery)) != uint32(0) { @@ -128260,12 +129267,12 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { pE = (*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFExpr _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(pE + 32)) == uintptr(0) || (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pE + 32)))).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19973, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20105, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct = -int32(1) } else { pKeyInfo = _sqlite3KeyInfoFromExprList(tls, pParse, *(*uintptr)(unsafe.Pointer(pE + 32)), 0, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistAddr = _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct, 0, 0, pKeyInfo, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20024, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20156, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } } if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab >= 0 { @@ -128291,7 +129298,7 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { (*TKeyInfo)(unsafe.Pointer(pKeyInfo1)).FnKeyField++ } _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab, (*TExprList)(unsafe.Pointer(pOBList)).FnExpr+nExtra, 0, pKeyInfo1, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20057, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20189, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } goto _1 _1: @@ -128616,16 +129623,16 @@ func _explainSimpleCount(tls *libc.TLS, pParse uintptr, pTab uintptr, pIdx uintp if int32((*TParse)(unsafe.Pointer(pParse)).Fexplain) == int32(2) { bCover = libc.BoolInt32(pIdx != uintptr(0) && ((*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) || !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == libc.Int32FromInt32(SQLITE_IDXTYPE_PRIMARYKEY)))) if bCover != 0 { - v1 = __ccgo_ts + 20090 + v1 = __ccgo_ts + 20222 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } if bCover != 0 { v2 = (*TIndex)(unsafe.Pointer(pIdx)).FzName } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20113, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20245, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) } } @@ -128657,7 +129664,7 @@ func _havingToWhereExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 ** statements AggInfo structure. */ if _sqlite3ExprIsConstantOrGroupBy(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, pExpr, (*TSelect)(unsafe.Pointer(pS)).FpGroupBy) != 0 && libc.BoolInt32((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse)) == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb - pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8130) + pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8255) if pNew != 0 { pWhere = (*TSelect)(unsafe.Pointer(pS)).FpWhere t = *(*TExpr)(unsafe.Pointer(pNew)) @@ -128817,7 +129824,7 @@ func _countOfViewOptimization(tls *libc.TLS, pParse uintptr, p uintptr) (r int32 return 0 } /* Result is an aggregate */ _ = libc.Int32FromInt32(0) - if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15844) != 0 { + if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15937) != 0 { return 0 } /* Is count() */ _ = libc.Int32FromInt32(0) @@ -129090,7 +130097,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { v1 = (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p0)).FpTab)).FzName } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20125, libc.VaList(bp+176, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20257, libc.VaList(bp+176, v1)) goto select_end } /* Clear the SF_UFSrcCheck flag. The check has already been performed, @@ -129193,7 +130200,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Catch mismatch in the declared columns of a view and the number of ** columns in the SELECT on the RHS */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) != (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20179, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20311, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) goto select_end } /* Do not attempt the usual optimizations (flattening and ORDER BY @@ -129331,12 +130338,12 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r ** string for the fake column name seems safer. */ if (*TSrcItem)(unsafe.Pointer(pItem1)).FcolUsed == uint64(0) && (*TSrcItem)(unsafe.Pointer(pItem1)).FzName != uintptr(0) { - _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1648, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) + _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1662, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) } /* Generate code for all sub-queries in the FROM clause */ pSub1 = (*TSrcItem)(unsafe.Pointer(pItem1)).FpSelect - if pSub1 == uintptr(0) { + if pSub1 == uintptr(0) || (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub != 0 { goto _10 } /* The code for a subquery should only be generated once. */ @@ -129377,7 +130384,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn, 0, addrTop) (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub = addrTop _sqlite3SelectDestInit(tls, bp+72, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20219, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20351, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow libc.SetBitFieldPtr16Uint32(pItem1+60+4, libc.Uint32FromInt32(1), 5, 0x20) @@ -129425,7 +130432,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { } _sqlite3SelectDestInit(tls, bp+72, int32(SRT_EphemTab), (*TSrcItem)(unsafe.Pointer(pItem1)).FiCursor) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20234, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20366, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow if onceAddr != 0 { @@ -129843,11 +130850,11 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r groupBySort = 0 } else { if (*(*TDistinctCtx)(unsafe.Pointer(bp))).FisTnct != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Distinct) == uint32(0) { - v44 = __ccgo_ts + 20250 + v44 = __ccgo_ts + 20382 } else { - v44 = __ccgo_ts + 20259 + v44 = __ccgo_ts + 20391 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19147, libc.VaList(bp+176, v44)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19234, libc.VaList(bp+176, v44)) groupBySort = int32(1) nGroupBy = (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr nCol = nGroupBy @@ -130171,7 +131178,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeResolveLabel(tls, v, addrEnd) } /* endif aggregate query */ if int32((*(*TDistinctCtx)(unsafe.Pointer(bp))).FeTnctType) == int32(WHERE_DISTINCT_UNORDERED) { - _explainTempTable(tls, pParse, __ccgo_ts+20250) + _explainTempTable(tls, pParse, __ccgo_ts+20382) } /* If there is an ORDER BY clause, then we need to sort the results ** and send them to the callback one by one. @@ -130189,6 +131196,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Control jumps to here if an error is encountered above, or upon ** successful coding of the SELECT. */ + goto select_end select_end: ; _ = libc.Int32FromInt32(0) @@ -130279,7 +131287,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr if !(i < nCol) { break } - z = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) + z = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) if z == uintptr(0) { goto malloc_failed } @@ -130295,7 +131303,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr } else { if int32((*TTabResult)(unsafe.Pointer(p)).FnColumn) != nCol { Xsqlite3_free(tls, (*TTabResult)(unsafe.Pointer(p)).FzErrMsg) - (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20268, 0) + (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20400, 0) (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) return int32(1) } @@ -130330,6 +131338,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr (*TTabResult)(unsafe.Pointer(p)).FnRow++ } return 0 + goto malloc_failed malloc_failed: ; (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) @@ -130385,7 +131394,7 @@ func Xsqlite3_get_table(tls *libc.TLS, db uintptr, zSql uintptr, pazResult uintp if (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg != 0 { if pzErrMsg != 0 { Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pzErrMsg))) - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) } Xsqlite3_free(tls, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg) } @@ -130555,7 +131564,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if isTemp != 0 { /* If TEMP was specified, then the trigger name may not be qualified. */ if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20333, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20465, 0) goto trigger_cleanup } iDb = int32(1) @@ -130596,7 +131605,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } _ = libc.Int32FromInt32(0) - _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20379, *(*uintptr)(unsafe.Pointer(bp))) + _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20511, *(*uintptr)(unsafe.Pointer(bp))) if _sqlite3FixSrcList(tls, bp+8, pTableName) != 0 { goto trigger_cleanup } @@ -130606,11 +131615,11 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_orphan_error } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20387, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20519, 0) goto trigger_orphan_error } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, db) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20428, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20560, 0) goto trigger_orphan_error } /* Check that the trigger name is not reserved and that no trigger of the @@ -130620,14 +131629,14 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 _ = libc.Int32FromInt32(0) goto trigger_cleanup } - if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20379, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { + if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20511, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { goto trigger_cleanup } _ = libc.Int32FromInt32(0) if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema+56, zName) != 0 { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20468, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20600, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -130636,8 +131645,8 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 } } /* Do not create a trigger on a system table */ - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6525, int32(7)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20494, 0) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6589, int32(7)) == 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20626, 0) goto trigger_cleanup } /* INSTEAD of triggers are only for views and views only support INSTEAD @@ -130645,15 +131654,15 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && tr_tm != int32(TK_INSTEAD) { if tr_tm == int32(TK_BEFORE) { - v1 = __ccgo_ts + 20532 + v1 = __ccgo_ts + 20664 } else { - v1 = __ccgo_ts + 20539 + v1 = __ccgo_ts + 20671 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20545, libc.VaList(bp+112, v1, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20677, libc.VaList(bp+112, v1, pTableName+8)) goto trigger_orphan_error } if !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) && tr_tm == int32(TK_INSTEAD) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20582, libc.VaList(bp+112, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20714, libc.VaList(bp+112, pTableName+8)) goto trigger_orphan_error } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -130673,9 +131682,9 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iTabDb == int32(1) { - v3 = __ccgo_ts + 6533 + v3 = __ccgo_ts + 6597 } else { - v3 = __ccgo_ts + 6066 + v3 = __ccgo_ts + 6130 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto trigger_cleanup @@ -130717,6 +131726,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 pColumns = uintptr(0) _ = libc.Int32FromInt32(0) (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger = pTrigger + goto trigger_cleanup trigger_cleanup: ; _sqlite3DbFree(tls, db, zName) @@ -130729,6 +131739,7 @@ trigger_cleanup: _ = libc.Int32FromInt32(0) } return + goto trigger_orphan_error trigger_orphan_error: ; if int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) == int32(1) { @@ -130775,7 +131786,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl pStepList = (*TTriggerStep)(unsafe.Pointer(pStepList)).FpNext } _sqlite3TokenInit(tls, bp+96, (*TTrigger)(unsafe.Pointer(pTrig)).FzName) - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20379, bp+96) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20511, bp+96) if _sqlite3FixTriggerStep(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).Fstep_list) != 0 || _sqlite3FixExpr(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).FpWhen) != 0 { goto triggerfinish_cleanup } @@ -130798,7 +131809,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl break } if (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget != uintptr(0) && _sqlite3ShadowTableName(tls, db, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20628, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20760, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) goto triggerfinish_cleanup } goto _1 @@ -130814,10 +131825,10 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) z = _sqlite3DbStrNDup(tls, db, (*TToken)(unsafe.Pointer(pAll)).Fz, uint64((*TToken)(unsafe.Pointer(pAll)).Fn)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20676, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20808, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) _sqlite3DbFree(tls, db, z) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20751, libc.VaList(bp+120, zName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20883, libc.VaList(bp+120, zName)), uint16(0)) } } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { @@ -130837,6 +131848,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } } } + goto triggerfinish_cleanup triggerfinish_cleanup: ; _sqlite3DeleteTrigger(tls, db, pTrig) @@ -131092,7 +132104,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int } if !(pTrigger != 0) { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20780, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20912, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, zDb) } @@ -131100,6 +132112,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int goto drop_trigger_cleanup } _sqlite3DropTriggerPtr(tls, pParse, pTrigger) + goto drop_trigger_cleanup drop_trigger_cleanup: ; _sqlite3SrcListDelete(tls, db, pName) @@ -131135,9 +132148,9 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { code = int32(SQLITE_DROP_TRIGGER) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6533 + v1 = __ccgo_ts + 6597 } else { - v1 = __ccgo_ts + 6066 + v1 = __ccgo_ts + 6130 } zTab = v1 if iDb == int32(1) { @@ -131152,7 +132165,7 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { v2 = _sqlite3GetVdbe(tls, pParse) v = v2 if v2 != uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20800, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20932, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropTrigger), iDb, 0, 0, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName, 0) } @@ -131288,11 +132301,11 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { if op != int32(TK_INSERT) { if op == int32(TK_DELETE) { - v1 = __ccgo_ts + 20862 + v1 = __ccgo_ts + 20994 } else { - v1 = __ccgo_ts + 20869 + v1 = __ccgo_ts + 21001 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20876, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21008, libc.VaList(bp+8, v1)) } (*TTrigger)(unsafe.Pointer(p)).Ftr_tm = uint8(TRIGGER_BEFORE) } else { @@ -131309,6 +132322,7 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, p = (*TTrigger)(unsafe.Pointer(p)).FpNext } } + goto exit_triggers_exist exit_triggers_exist: ; if pMask != 0 { @@ -131398,7 +132412,7 @@ func _isAsteriskTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pTerm)).FpRight)).Fop) != int32(TK_ASTERISK) { return 0 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20924, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21056, 0) return int32(1) } @@ -131463,6 +132477,81 @@ func _sqlite3ExpandReturning(tls *libc.TLS, pParse uintptr, pList uintptr, pTab return pNew } +// C documentation +// +// /* If the Expr node is a subquery or an EXISTS operator or an IN operator that +// ** uses a subquery, and if the subquery is SF_Correlated, then mark the +// ** expression as EP_VarSelect. +// */ +func _sqlite3ReturningSubqueryVarSelect(tls *libc.TLS, NotUsed uintptr, pExpr uintptr) (r int32) { + _ = NotUsed + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) && (*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FselFlags&uint32(SF_Correlated) != uint32(0) { + *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** If the SELECT references the table pWalker->u.pTab, then do two things: +// ** +// ** (1) Mark the SELECT as as SF_Correlated. +// ** (2) Set pWalker->eCode to non-zero so that the caller will know +// ** that (1) has happened. +// */ +func _sqlite3ReturningSubqueryCorrelated(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + var i int32 + var pSrc uintptr + _, _ = i, pSrc + _ = libc.Int32FromInt32(0) + pSrc = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + _ = libc.Int32FromInt32(0) + i = 0 + for { + if !(i < (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) { + break + } + if (*(*TSrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104))).FpTab == *(*uintptr)(unsafe.Pointer(pWalker + 40)) { + *(*Tu32)(unsafe.Pointer(pSelect + 4)) |= uint32(SF_Correlated) + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + break + } + goto _1 + _1: + ; + i++ + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Scan the expression list that is the argument to RETURNING looking +// ** for subqueries that depend on the table which is being modified in the +// ** statement that is hosting the RETURNING clause (pTab). Mark all such +// ** subqueries as SF_Correlated. If the subqueries are part of an +// ** expression, mark the expression as EP_VarSelect. +// ** +// ** https://sqlite.org/forum/forumpost/2c83569ce8945d39 +// */ +func _sqlite3ProcessReturningSubqueries(tls *libc.TLS, pEList uintptr, pTab uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ExprWalkNoop) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3ReturningSubqueryCorrelated) + *(*uintptr)(unsafe.Pointer(bp + 40)) = pTab + _sqlite3WalkExprList(tls, bp, pEList) + if (*(*TWalker)(unsafe.Pointer(bp))).FeCode != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ReturningSubqueryVarSelect) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) + _sqlite3WalkExprList(tls, bp, pEList) + } +} + // C documentation // // /* @@ -131499,6 +132588,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab (*(*TSelect)(unsafe.Pointer(bp))).FpSrc = bp + 128 (*(*TSrcList)(unsafe.Pointer(bp + 128))).FnSrc = int32(1) (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FpTab = pTab + (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FzName = (*TTable)(unsafe.Pointer(pTab)).FzName /* tag-20240424-1 */ (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FiCursor = -int32(1) _sqlite3SelectPrep(tls, pParse, bp, uintptr(0)) if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { @@ -131524,6 +132614,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab if _sqlite3ResolveExprListNames(tls, bp+240, pNew) == SQLITE_OK && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) { nCol = (*TExprList)(unsafe.Pointer(pNew)).FnExpr reg = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(1) + _sqlite3ProcessReturningSubqueries(tls, pNew, pTab) *(*int32)(unsafe.Pointer(pParse + 56)) += nCol + int32(2) (*TReturning)(unsafe.Pointer(pReturning)).FiRetReg = reg i = 0 @@ -131596,7 +132687,7 @@ func _codeTriggerProgram(tls *libc.TLS, pParse uintptr, pStepList uintptr, orcon (*TParse)(unsafe.Pointer(pParse)).FeOrconf = uint8(v2) _ = libc.Int32FromInt32(0) if (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6263, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6327, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) } switch int32((*TTriggerStep)(unsafe.Pointer(pStep)).Fop) { case int32(TK_UPDATE): @@ -131703,7 +132794,7 @@ func _codeRowTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab uintp v = _sqlite3GetVdbe(tls, bp+56) if v != 0 { if (*TTrigger)(unsafe.Pointer(pTrigger)).FzName != 0 { - _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+20966, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) + _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+21098, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) } /* If one was specified, code the WHEN clause. If it evaluates to false ** (or NULL) the sub-vdbe is immediately halted by jumping to the @@ -132417,7 +133508,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui chngPk = uint8(1) } else { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20980, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21112, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto update_cleanup } } @@ -132437,13 +133528,13 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui pRowidExpr = (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FpExpr iRowidExpr = i } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21016, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21148, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto update_cleanup } } if j < 0 { - v11 = __ccgo_ts + 7905 + v11 = __ccgo_ts + 8030 } else { v11 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName } @@ -133139,8 +134230,9 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui ** that information. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21035) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21167) } + goto update_cleanup update_cleanup: ; _sqlite3AuthContextPop(tls, bp) @@ -133587,9 +134679,9 @@ func _sqlite3UpsertAnalyzeTarget(tls *libc.TLS, pParse uintptr, pTabList uintptr if nClause == 0 && (*TUpsert)(unsafe.Pointer(pUpsert)).FpNextUpsert == uintptr(0) { (*(*[16]uint8)(unsafe.Pointer(bp + 200)))[0] = uint8(0) } else { - Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21048, libc.VaList(bp+224, nClause+int32(1))) + Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21180, libc.VaList(bp+224, nClause+int32(1))) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21052, libc.VaList(bp+224, bp+200)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21184, libc.VaList(bp+224, bp+200)) return int32(SQLITE_ERROR) } goto _1 @@ -133695,7 +134787,7 @@ func _sqlite3UpsertDoUpdate(tls *libc.TLS, pParse uintptr, pUpsert uintptr, pTab i++ } i = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), iDataCur, 0, iPk, nPk) - _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12470, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12595, -int32(1)) _sqlite3MayAbort(tls, pParse) _sqlite3VdbeJumpHere(tls, v, i) } @@ -133778,7 +134870,7 @@ func _execSql(tls *libc.TLS, db uintptr, pzErrMsg uintptr, zSql uintptr) (r int3 ** corrupt the sqlite_schema.sql field with other kinds of statements ** then run VACUUM to get those statements to execute at inappropriate ** times. */ - if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21125, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21129, uint64(3)) == 0) { + if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21257, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21261, uint64(3)) == 0) { rc = _execSql(tls, db, pzErrMsg, zSubSql) if rc != SQLITE_OK { break @@ -133879,6 +134971,7 @@ func _sqlite3Vacuum(tls *libc.TLS, pParse uintptr, _pNm uintptr, pInto uintptr) _sqlite3VdbeAddOp2(tls, v, int32(OP_Vacuum), iDb, iIntoReg) _sqlite3VdbeUsesBtree(tls, v, iDb) } + goto build_vacuum_end build_vacuum_end: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pInto) @@ -133906,24 +134999,24 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p pDb = uintptr(0) /* Name of output file */ pgflags = uint32(PAGER_SYNCHRONOUS_OFF) /* sync flags for output db */ if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21133) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21265) return int32(SQLITE_ERROR) /* IMP: R-12218-18073 */ } if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive > int32(1) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21173) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21305) return int32(SQLITE_ERROR) /* IMP: R-15610-35227 */ } saved_openFlags = (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags if pOut != 0 { if Xsqlite3_value_type(tls, pOut) != int32(SQLITE_TEXT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21216) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21348) return int32(SQLITE_ERROR) } zOut = Xsqlite3_value_text(tls, pOut) *(*uint32)(unsafe.Pointer(db + 76)) &= uint32(^libc.Int32FromInt32(SQLITE_OPEN_READONLY)) *(*uint32)(unsafe.Pointer(db + 76)) |= uint32(libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE)) } else { - zOut = __ccgo_ts + 1648 + zOut = __ccgo_ts + 1662 } /* Save the current value of the database flags so that it can be ** restored before returning. Then set the writable-schema flag, and @@ -133955,7 +135048,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** to write the journal header file. */ nDb = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21234, libc.VaList(bp+24, zOut)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21366, libc.VaList(bp+24, zOut)) (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags = saved_openFlags if rc != SQLITE_OK { goto end_of_vacuum @@ -133969,7 +135062,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p *(*Ti64)(unsafe.Pointer(bp)) = 0 if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != uintptr(0) && (_sqlite3OsFileSize(tls, id, bp) != SQLITE_OK || *(*Ti64)(unsafe.Pointer(bp)) > 0) { rc = int32(SQLITE_ERROR) - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21257) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21389) goto end_of_vacuum } *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_VacuumInto) @@ -133986,7 +135079,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** file. This is done before the sqlite3BtreeGetPageSize(pMain) call below, ** to ensure that we do not try to change the page-size on a WAL database. */ - rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14879) + rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14972) if rc != SQLITE_OK { goto end_of_vacuum } @@ -134017,11 +135110,11 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** in the temporary database. */ (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(nDb) /* force new CREATE statements into vacuum_db */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21284, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21416, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21392, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21524, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } @@ -134030,7 +135123,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** an "INSERT INTO vacuum_db.xxx SELECT * FROM main.xxx;" to copy ** the contents to the temporary database. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21446, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21578, libc.VaList(bp+24, zDbMain)) _ = libc.Int32FromInt32(0) *(*Tu32)(unsafe.Pointer(db + 44)) &= uint32(^libc.Int32FromInt32(DBFLAG_Vacuum)) if rc != SQLITE_OK { @@ -134041,7 +135134,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** associated storage, so all we have to do is copy their entries ** from the schema table. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21597, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21729, libc.VaList(bp+24, zDbMain)) if rc != 0 { goto end_of_vacuum } @@ -134083,6 +135176,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p nRes = _sqlite3BtreeGetRequestedReserve(tls, pTemp) rc = _sqlite3BtreeSetPageSize(tls, pMain, _sqlite3BtreeGetPageSize(tls, pTemp), nRes, int32(1)) } + goto end_of_vacuum end_of_vacuum: ; /* Restore the original value of db->flags */ @@ -134588,7 +135682,7 @@ func _addModuleArgument(tls *libc.TLS, pParse uintptr, pTable uintptr, zArg uint FazArg uintptr Fp uintptr })(unsafe.Pointer(pTable + 64))).FnArg+int32(3) >= *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12700, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12825, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) } azModuleArg = _sqlite3DbRealloc(tls, db, (*(*struct { FnArg int32 @@ -134715,7 +135809,7 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { if pEnd != 0 { (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fn = uint32(int32(int64((*TToken)(unsafe.Pointer(pEnd)).Fz)-int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz))) + (*TToken)(unsafe.Pointer(pEnd)).Fn } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21727, libc.VaList(bp+8, pParse+272)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21859, libc.VaList(bp+8, pParse+272)) /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. @@ -134725,11 +135819,11 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { ** by sqlite3StartTable(). */ iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+21751, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+21883, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) v = _sqlite3GetVdbe(tls, pParse) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) - zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21850, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) + zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21982, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, zWhere, uint16(0)) _sqlite3DbFree(tls, db, zStmt) v2 = pParse + 56 @@ -134819,7 +135913,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, break } if (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab == pTab { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21869, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22001, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(SQLITE_LOCKED) } goto _1 @@ -134856,6 +135950,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = bp (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+16, bp+32) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -134864,9 +135960,9 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, _ = libc.Int32FromInt32(0) if SQLITE_OK != rc { if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21911, libc.VaList(bp+48, zModuleName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22043, libc.VaList(bp+48, zModuleName)) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3795, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3859, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) } _sqlite3DbFree(tls, db, pVTable) @@ -134879,8 +135975,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*TModule)(unsafe.Pointer(pMod)).FnRefModule++ (*TVTable)(unsafe.Pointer(pVTable)).FnRef = int32(1) if (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared == 0 { - zFormat = __ccgo_ts + 21941 - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + zFormat = __ccgo_ts + 22073 + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, zModuleName)) _sqlite3VtabUnlock(tls, pVTable) rc = int32(SQLITE_ERROR) } else { @@ -134905,7 +136001,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(iCol < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } - zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1648) + zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1662) i = 0 nType = _sqlite3Strlen30(tls, zType) i = 0 @@ -134913,7 +136009,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(i < nType) { break } - if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16585, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { + if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16672, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { break } goto _3 @@ -134997,13 +136093,13 @@ func _sqlite3VtabCallConnect(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).FazArg)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21987, libc.VaList(bp+16, zModule)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22119, libc.VaList(bp+16, zModule)) rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxConnect, bp) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) (*TParse)(unsafe.Pointer(pParse)).Frc = rc } _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) @@ -135085,7 +136181,7 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, ** error. Otherwise, do nothing. */ if pMod == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxDestroy == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21987, libc.VaList(bp+8, zMod)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22119, libc.VaList(bp+8, zMod)) rc = int32(SQLITE_ERROR) } else { rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate, pzErr) @@ -135111,18 +136207,42 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r int32) { bp := tls.Alloc(448) defer tls.Free(448) - var initBusy, rc int32 - var pCtx, pIdx, pNew, pTab, v2 uintptr - var v1 Ti16 + var i, initBusy, rc int32 + var pCtx, pIdx, pNew, pTab, z, v3 uintptr + var v2 Ti16 var _ /* sParse at bp+0 */ TParse - _, _, _, _, _, _, _, _ = initBusy, pCtx, pIdx, pNew, pTab, rc, v1, v2 + var _ /* tokenType at bp+424 */ int32 + _, _, _, _, _, _, _, _, _, _ = i, initBusy, pCtx, pIdx, pNew, pTab, rc, z, v2, v3 rc = SQLITE_OK + /* Verify that the first two keywords in the CREATE TABLE statement + ** really are "CREATE" and "TABLE". If this is not the case, then + ** sqlite3_declare_vtab() is being misused. + */ + z = zCreateTable + i = 0 + for { + if !(_aKeyword1[i] != 0) { + break + } + *(*int32)(unsafe.Pointer(bp + 424)) = 0 + for cond := true; cond; cond = *(*int32)(unsafe.Pointer(bp + 424)) == int32(TK_SPACE) { + z += uintptr(_sqlite3GetToken(tls, z, bp+424)) + } + if *(*int32)(unsafe.Pointer(bp + 424)) != int32(_aKeyword1[i]) { + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+22138, 0) + return int32(SQLITE_ERROR) + } + goto _1 + _1: + ; + i++ + } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pCtx = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(pCtx != 0) || (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared != 0 { - _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(155155))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(156227))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(155157)) + return _sqlite3MisuseError(tls, int32(156229)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _ = libc.Int32FromInt32(0) @@ -135136,7 +136256,10 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i initBusy = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) (*(*TParse)(unsafe.Pointer(bp))).FnQueryLoop = int16(1) - if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) && (*(*TParse)(unsafe.Pointer(bp))).FpNewTable != uintptr(0) && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && int32((*TTable)(unsafe.Pointer((*(*TParse)(unsafe.Pointer(bp))).FpNewTable)).FeTabType) == TABTYP_NORM { + if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if !((*TTable)(unsafe.Pointer(pTab)).FaCol != 0) { pNew = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable @@ -135146,9 +136269,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpDfltList) - v1 = (*TTable)(unsafe.Pointer(pNew)).FnCol - (*TTable)(unsafe.Pointer(pTab)).FnCol = v1 - (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v1 + v2 = (*TTable)(unsafe.Pointer(pNew)).FnCol + (*TTable)(unsafe.Pointer(pTab)).FnCol = v2 + (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v2 *(*Tu32)(unsafe.Pointer(pTab + 48)) |= (*TTable)(unsafe.Pointer(pNew)).FtabFlags & uint32(libc.Int32FromInt32(TF_WithoutRowid)|libc.Int32FromInt32(TF_NoVisibleRowid)) (*TTable)(unsafe.Pointer(pNew)).FnCol = 0 (*TTable)(unsafe.Pointer(pNew)).FaCol = uintptr(0) @@ -135170,11 +136293,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared = int32(1) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - v2 = __ccgo_ts + 3795 + v3 = __ccgo_ts + 3859 } else { - v2 = uintptr(0) + v3 = uintptr(0) } - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v2, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v3, libc.VaList(bp+440, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) rc = int32(SQLITE_ERROR) } @@ -135191,6 +136314,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i return rc } +var _aKeyword1 = [3]Tu8{ + 0: uint8(TK_CREATE), + 1: uint8(TK_TABLE), +} + // C documentation // // /* @@ -135652,7 +136780,7 @@ func _sqlite3VtabEponymousTableInit(tls *libc.TLS, pParse uintptr, pMod uintptr) _addModuleArgument(tls, pParse, pTab, _sqlite3DbStrDup(tls, db, (*TTable)(unsafe.Pointer(pTab)).FzName)) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer(pModule)).FxConnect, bp) if rc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3VtabEponymousTableClear(tls, db, pMod) } @@ -135719,7 +136847,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) p = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(p != 0) { - rc = _sqlite3MisuseError(tls, int32(155651)) + rc = _sqlite3MisuseError(tls, int32(156723)) } else { _ = libc.Int32FromInt32(0) ap = va @@ -135733,7 +136861,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in case int32(SQLITE_VTAB_USES_ALL_SCHEMAS): (*TVTable)(unsafe.Pointer((*TVtabCtx)(unsafe.Pointer(p)).FpVTable)).FbAllSchemas = uint8(1) default: - rc = _sqlite3MisuseError(tls, int32(155673)) + rc = _sqlite3MisuseError(tls, int32(156745)) break } _ = ap @@ -136455,10 +137583,10 @@ type WhereInfo1 = TWhereInfo1 func _explainIndexColumnName(tls *libc.TLS, pIdx uintptr, i int32) (r uintptr) { i = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) if i == -int32(2) { - return __ccgo_ts + 22006 + return __ccgo_ts + 22151 } if i == -int32(1) { - return __ccgo_ts + 16694 + return __ccgo_ts + 16781 } return (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(i)*16))).FzCnName } @@ -136478,10 +137606,10 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, _ = i _ = libc.Int32FromInt32(0) if bAnd != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22013, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22158, int32(5)) } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22019, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22164, int32(1)) } i = 0 for { @@ -136489,7 +137617,7 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13090, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13215, int32(1)) } Xsqlite3_str_appendall(tls, pStr, _explainIndexColumnName(tls, pIdx, iTerm+i)) goto _1 @@ -136498,11 +137626,11 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5170, int32(1)) } Xsqlite3_str_append(tls, pStr, zOp, int32(1)) if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22019, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22164, int32(1)) } i = 0 for { @@ -136510,16 +137638,16 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13090, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13215, int32(1)) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5108, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5172, int32(1)) goto _2 _2: ; i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5170, int32(1)) } } @@ -136552,7 +137680,7 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { if int32(nEq) == 0 && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) == uint32(0) { return } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22021, int32(2)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22166, int32(2)) i = 0 for { if !(i < int32(nEq)) { @@ -136560,12 +137688,12 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } z = _explainIndexColumnName(tls, pIndex, i) if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22013, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22158, int32(5)) } if i >= int32(nSkip) { - v2 = __ccgo_ts + 22024 + v2 = __ccgo_ts + 22169 } else { - v2 = __ccgo_ts + 22029 + v2 = __ccgo_ts + 22174 } Xsqlite3_str_appendf(tls, pStr, v2, libc.VaList(bp+8, z)) goto _1 @@ -136575,13 +137703,13 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } j = i if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_BTM_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22037) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22182) i = int32(1) } if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_TOP_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22039) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22184) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5170, int32(1)) } // C documentation @@ -136624,11 +137752,11 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if isSearch != 0 { - v2 = __ccgo_ts + 22041 + v2 = __ccgo_ts + 22186 } else { - v2 = __ccgo_ts + 22048 + v2 = __ccgo_ts + 22193 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22053, libc.VaList(bp+144, v2, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22198, libc.VaList(bp+144, v2, pItem)) if flags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_VIRTUALTABLE)) == uint32(0) { zFmt = uintptr(0) _ = libc.Int32FromInt32(0) @@ -136636,37 +137764,37 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _ = libc.Int32FromInt32(0) if !((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) && int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { if isSearch != 0 { - zFmt = __ccgo_ts + 11253 + zFmt = __ccgo_ts + 11378 } } else { if flags&uint32(WHERE_PARTIALIDX) != 0 { - zFmt = __ccgo_ts + 22059 + zFmt = __ccgo_ts + 22204 } else { if flags&uint32(WHERE_AUTO_INDEX) != 0 { - zFmt = __ccgo_ts + 22092 + zFmt = __ccgo_ts + 22237 } else { if flags&uint32(WHERE_IDX_ONLY) != 0 { - zFmt = __ccgo_ts + 22117 + zFmt = __ccgo_ts + 22262 } else { - zFmt = __ccgo_ts + 22135 + zFmt = __ccgo_ts + 22280 } } } } if zFmt != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22144, int32(7)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22289, int32(7)) Xsqlite3_str_appendf(tls, bp, zFmt, libc.VaList(bp+144, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) _explainIndexRange(tls, bp, pLoop) } } else { if flags&uint32(WHERE_IPK) != uint32(0) && flags&uint32(WHERE_CONSTRAINT) != uint32(0) { - zRowid = __ccgo_ts + 16694 - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22152, libc.VaList(bp+144, zRowid)) + zRowid = __ccgo_ts + 16781 + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22297, libc.VaList(bp+144, zRowid)) if flags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != 0 { cRangeOp = uint8('=') } else { if flags&uint32(WHERE_BOTH_LIMIT) == uint32(WHERE_BOTH_LIMIT) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22183, libc.VaList(bp+144, zRowid)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22328, libc.VaList(bp+144, zRowid)) cRangeOp = uint8('<') } else { if flags&uint32(WHERE_BTM_LIMIT) != 0 { @@ -136677,10 +137805,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22193, libc.VaList(bp+144, int32(cRangeOp))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22338, libc.VaList(bp+144, int32(cRangeOp))) } else { if flags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22198, libc.VaList(bp+144, (*(*struct { + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22343, libc.VaList(bp+144, (*(*struct { FidxNum int32 F__ccgo4 uint8 FisOrdered Ti8 @@ -136699,7 +137827,7 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } if int32((*TSrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&int32(JT_LEFT) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22225, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22370, 0) } zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) @@ -136733,14 +137861,14 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Initial space for EQP output string */ _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22236, libc.VaList(bp+144, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22381, libc.VaList(bp+144, pItem)) pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_IPK) != 0 { pTab = (*TSrcItem)(unsafe.Pointer(pItem)).FpTab if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22024, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22169, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) } else { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22257, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22402, 0) } } else { i = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) @@ -136750,16 +137878,16 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp } z = _explainIndexColumnName(tls, (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex, i) if i > int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22013, int32(5)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22158, int32(5)) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22024, libc.VaList(bp+144, z)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22169, libc.VaList(bp+144, z)) goto _1 _1: ; i++ } } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5106, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5170, int32(1)) zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) return ret @@ -137625,6 +138753,35 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 } } +// C documentation +// +// /* +// ** Loop pLoop is a WHERE_INDEXED level that uses at least one IN(...) +// ** operator. Return true if level pLoop is guaranteed to visit only one +// ** row for each key generated for the index. +// */ +func _whereLoopIsOneRow(tls *libc.TLS, pLoop uintptr) (r int32) { + var ii int32 + _ = ii + if (*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FonError != 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) == 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq) == int32((*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FnKeyCol) { + ii = 0 + for { + if !(ii < int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq)) { + break + } + if int32((*TWhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(ii)*8)))).FeOperator)&(libc.Int32FromInt32(WO_IS)|libc.Int32FromInt32(WO_ISNULL)) != 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) + } + return 0 +} + // C documentation // // /* @@ -138355,7 +139512,10 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI _ = libc.Int32FromInt32(0) } /* Record the instruction used to terminate the loop. */ - if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 { + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 || (*(*struct { + FnIn int32 + FaInLoop uintptr + })(unsafe.Pointer(pLevel + 72))).FnIn != 0 && regBignull == 0 && _whereLoopIsOneRow(tls, pLoop) != 0 { (*TWhereLevel)(unsafe.Pointer(pLevel)).Fop = uint8(OP_Noop) } else { if bRev != 0 { @@ -138532,7 +139692,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** eliminating duplicates from other WHERE clauses, the action for each ** sub-WHERE clause is to to invoke the main loop body as a subroutine. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22265, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22410, 0) ii = 0 for { if !(ii < (*TWhereClause)(unsafe.Pointer(pOrWc)).FnTerm) { @@ -138555,7 +139715,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI pOrExpr = pAndExpr } /* Loop through table entries that match term pOrTerm. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22280, libc.VaList(bp+96, ii+int32(1))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22425, libc.VaList(bp+96, ii+int32(1))) pSubWInfo = _sqlite3WhereBegin(tls, pParse, pOrTab, pOrExpr, uintptr(0), uintptr(0), uintptr(0), uint16(WHERE_OR_SUBCLAUSE), iCovCur) _ = libc.Int32FromInt32(0) if pSubWInfo != 0 { @@ -138726,6 +139886,12 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** iLoop==3: Code all remaining expressions. ** ** An effort is made to skip unnecessary iterations of the loop. + ** + ** This optimization of causing simple query restrictions to occur before + ** more complex one is call the "push-down" optimization in MySQL. Here + ** in SQLite, the name is "MySQL push-down", since there is also another + ** totally unrelated optimization called "WHERE-clause push-down". + ** Sometimes the qualifier is omitted, resulting in an ambiguity, so beware. */ if pIdx != 0 { v60 = int32(1) @@ -138927,6 +140093,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** to the results of the OUTER JOIN. The following loop generates the ** appropriate WHERE clause constraint checks. tag-20220513a. */ + goto code_outer_join_constraints code_outer_join_constraints: ; pTerm = (*TWhereClause)(unsafe.Pointer(pWC)).Fa @@ -139031,9 +140198,9 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe defer tls.Free(128) var addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, nPk, r, v3 int32 var mAll TBitmask - var pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr + var pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr var _ /* sFrom at bp+0 */ TSrcList - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pRJ = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpRJ @@ -139042,13 +140209,18 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop pTabItem = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 mAll = uint64(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22289, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22434, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) k = 0 for { if !(k < iLevel) { break } + _ = libc.Int32FromInt32(0) + pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*104 mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x20>>5)) != 0 { + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pRight)).FpSelect)).FpEList)).FnExpr-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiTabCur) iIdxCur = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiIdxCur if iIdxCur != 0 { @@ -139583,19 +140755,19 @@ var _aOp = [4]struct { FeOp2 uint8 }{ 0: { - FzOp: __ccgo_ts + 16543, + FzOp: __ccgo_ts + 16630, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_MATCH), }, 1: { - FzOp: __ccgo_ts + 15874, + FzOp: __ccgo_ts + 15967, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_GLOB), }, 2: { - FzOp: __ccgo_ts + 15353, + FzOp: __ccgo_ts + 15446, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_LIKE), }, 3: { - FzOp: __ccgo_ts + 22303, + FzOp: __ccgo_ts + 22448, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_REGEXP), }, } @@ -140254,7 +141426,7 @@ func _exprMightBeIndexed2(tls *libc.TLS, pFrom uintptr, aiCurCol uintptr, pExpr goto _4 } _ = libc.Int32FromInt32(0) - if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_STRING) { + if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && !(_sqlite3ExprIsConstant(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr) != 0) { *(*int32)(unsafe.Pointer(aiCurCol)) = iCur *(*int32)(unsafe.Pointer(aiCurCol + 1*4)) = -int32(2) return int32(1) @@ -140414,7 +141586,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { extraRight = x - uint64(1) /* ON clause terms may not be used with an index ** on left table of a LEFT JOIN. Ticket #3015 */ if prereqAll>>libc.Int32FromInt32(1) >= x { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22310, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22455, 0) return } } else { @@ -140426,7 +141598,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { ** if there is a RIGHT or FULL JOIN in the query. This makes SQLite ** more like other systems, and also preserves legacy. */ if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc > 0 && int32((*(*TSrcItem)(unsafe.Pointer(pSrc + 8))).Ffg.Fjointype)&int32(JT_LTORJ) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22310, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22455, 0) return } *(*Tu32)(unsafe.Pointer(pExpr + 4)) &= uint32(^libc.Int32FromInt32(EP_InnerON)) @@ -140517,7 +141689,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { if op == int32(TK_ISNULL) && !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != libc.Uint32FromInt32(0)) && 0 == _sqlite3ExprCanBeNull(tls, pLeft) { _ = libc.Int32FromInt32(0) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_TRUEFALSE) /* See tag-20230504-1 */ - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 7891 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 8016 *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_IsFalse)) (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqAll = uint64(0) (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator = uint16(0) @@ -140620,7 +141792,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { *(*Tu8)(unsafe.Pointer(pC)) = uint8(int32(c1) + int32(1)) } if *(*int32)(unsafe.Pointer(bp + 12)) != 0 { - v13 = __ccgo_ts + 22351 + v13 = __ccgo_ts + 22496 } else { v13 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } @@ -140893,6 +142065,9 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FleftCursor != iCsr { return } + if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FprereqRight != uint64(0) { + return + } goto _1 _1: ; @@ -140923,10 +142098,12 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { } /* All conditions are met. Add the terms to the where-clause object. */ _ = libc.Int32FromInt32(0) - _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) - if (*TSelect)(unsafe.Pointer(p)).FiOffset > 0 { + if (*TSelect)(unsafe.Pointer(p)).FiOffset != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiOffset, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpRight, iCsr, int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } + if (*TSelect)(unsafe.Pointer(p)).FiOffset == 0 || (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { + _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) + } } } @@ -141158,7 +142335,7 @@ func _sqlite3WhereTabFuncArgs(tls *libc.TLS, pParse uintptr, pItem uintptr, pWC k++ } if k >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22358, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22503, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) return } pColRef = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_COLUMN), uintptr(0), 0) @@ -141493,6 +142670,7 @@ func _whereOrInsert(tls *libc.TLS, pSet uintptr, prereq TBitmask, rRun TLogEst, return 0 } } + goto whereOrInsert_done whereOrInsert_done: ; (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq = prereq @@ -141599,6 +142777,50 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { return uintptr(0) } +// C documentation +// +// /* +// ** Term pTerm is guaranteed to be a WO_IN term. It may be a component term +// ** of a vector IN expression of the form "(x, y, ...) IN (SELECT ...)". +// ** This function checks to see if the term is compatible with an index +// ** column with affinity idxaff (one of the SQLITE_AFF_XYZ values). If so, +// ** it returns a pointer to the name of the collation sequence (e.g. "BINARY" +// ** or "NOCASE") used by the comparison in pTerm. If it is not compatible +// ** with affinity idxaff, NULL is returned. +// */ +func _indexInAffinityOk(tls *libc.TLS, pParse uintptr, pTerm uintptr, idxaff Tu8) (r uintptr) { + bp := tls.Alloc(80) + defer tls.Free(80) + var iField int32 + var pRet, pX, v1 uintptr + var _ /* inexpr at bp+0 */ TExpr + _, _, _, _ = iField, pRet, pX, v1 + pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr + _ = libc.Int32FromInt32(0) + if _sqlite3ExprIsVector(tls, (*TExpr)(unsafe.Pointer(pX)).FpLeft) != 0 { + iField = (*(*struct { + FleftColumn int32 + FiField int32 + })(unsafe.Pointer(pTerm + 32))).FiField - int32(1) + (*(*TExpr)(unsafe.Pointer(bp))).Fflags = uint32(0) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_EQ) + (*(*TExpr)(unsafe.Pointer(bp))).FpLeft = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pX)).FpLeft + 32)) + 8 + uintptr(iField)*32))).FpExpr + _ = libc.Int32FromInt32(0) + (*(*TExpr)(unsafe.Pointer(bp))).FpRight = (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pX + 32)))).FpEList + 8 + uintptr(iField)*32))).FpExpr + pX = bp + } + if _sqlite3IndexAffinityOk(tls, pX, idxaff) != 0 { + pRet = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pRet != 0 { + v1 = (*TCollSeq)(unsafe.Pointer(pRet)).FzName + } else { + v1 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + return v1 + } + return uintptr(0) +} + // C documentation // // /* @@ -141609,10 +142831,10 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { var iColumn Ti16 var iCur, j, k int32 - var pColl, pParse, pTerm, pWC, pX, v2 uintptr - var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, v2, v3, v5 /* The term being tested */ - k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ + var pColl, pParse, pTerm, pWC, pX, zCollName, v2, v5 uintptr + var v3, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, zCollName, v2, v3, v5, v6 /* The term being tested */ + k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ _ = libc.Int32FromInt32(0) pWC = (*TWhereScan)(unsafe.Pointer(pScan)).FpWC for int32(1) != 0 { @@ -141660,22 +142882,32 @@ func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { if (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName != 0 && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_ISNULL) == 0 { pParse = (*TWhereInfo)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr - if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { - goto _1 - } - _ = libc.Int32FromInt32(0) - pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) - if pColl == uintptr(0) { - pColl = (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FpDfltColl + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_IN) != 0 { + zCollName = _indexInAffinityOk(tls, pParse, pTerm, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) + if !(zCollName != 0) { + goto _1 + } + } else { + if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { + goto _1 + } + _ = libc.Int32FromInt32(0) + pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pColl != 0 { + v5 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName + } else { + v5 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + zCollName = v5 } - if _sqlite3StrICmp(tls, (*TCollSeq)(unsafe.Pointer(pColl)).FzName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { + if _sqlite3StrICmp(tls, zCollName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { goto _1 } } - if v5 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v5 { + if v6 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v6 { pX = (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight } - if v5 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { + if v6 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { goto _1 } (*TWhereScan)(unsafe.Pointer(pScan)).FpWC = pWC @@ -142169,7 +143401,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea /* Make the automatic index a partial index if there are terms in the ** WHERE clause (or the ON clause of a LEFT join) that constrain which ** rows of the target table (pSrc) that can be used. */ - if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)) != 0 { + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom), 0) != 0 { pPartial = _sqlite3ExprAnd(tls, pParse, pPartial, _sqlite3ExprDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr, 0)) } if _termCanDriveIndex(tls, pTerm, pSrc, notReady) != 0 { @@ -142185,7 +143417,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea } cMask = v2 if !(sentWarning != 0) { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_WARNING)|libc.Int32FromInt32(1)<>14)) != 0) { eDistinct = int32(2) + libc.BoolInt32(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_SORTBYGROUP) != 0) } else { if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_GROUPBY) != 0 { @@ -142680,7 +143913,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB */ pIdxInfo = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(96)+(libc.Uint64FromInt64(12)+libc.Uint64FromInt64(8))*uint64(nTerm)+uint64(8)*uint64(nOrderBy)+uint64(40)+uint64(8)*uint64(nTerm)) if pIdxInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1618, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1632, 0) return uintptr(0) } pHidden = pIdxInfo + 1*96 @@ -142772,7 +144005,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB break } pExpr1 = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr - if _sqlite3ExprIsConstant(tls, pExpr1) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr1) != 0 { goto _11 } _ = libc.Int32FromInt32(0) @@ -142851,9 +144084,9 @@ func _vtabBestIndex(tls *libc.TLS, pParse uintptr, pTab uintptr, p uintptr) (r i _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) } else { if !((*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3795, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3859, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) } } } @@ -144225,7 +145458,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x4>>2)) != 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) } - if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 && int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x2>>1)) == 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ) | libc.Int32FromInt32(WO_IN) | libc.Int32FromInt32(WO_IS)) } } @@ -144477,10 +145710,13 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } } } - /* Set rCostIdx to the cost of visiting selected rows in index. Add - ** it to pNew->rRun, which is currently set to the cost of the index - ** seek only. Then, if this is a non-covering index, add the cost of - ** visiting the rows in the main table. */ + /* Set rCostIdx to the estimated cost of visiting selected rows in the + ** index. The estimate is the sum of two values: + ** 1. The cost of doing one search-by-key to find the first matching + ** entry + ** 2. Stepping forward in the index pNew->nOut times to find all + ** additional matching entries. + */ _ = libc.Int32FromInt32(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_IPK) { /* The pProbe->szIdxRow is low for an IPK table since the interior @@ -144491,7 +145727,14 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } else { rCostIdx = int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut) + int32(1) + int32(15)*int32((*TIndex)(unsafe.Pointer(pProbe)).FszIdxRow)/int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FszTabRow)) } - (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + rCostIdx = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + /* Estimate the cost of running the loop. If all data is coming + ** from the index, then this is just the cost of doing the index + ** lookup and scan. But if some data is coming out of the main table, + ** we also have to add in the cost of doing pNew->nOut searches to + ** locate the row in the main table that corresponds to the index entry. + */ + (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = rCostIdx if (*TWhereLoop)(unsafe.Pointer(pNew)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IDX_ONLY)|libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_EXPRIDX)) == uint32(0) { (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun, int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut)+int32(16))) } @@ -144597,7 +145840,7 @@ func _indexMightHelpWithOrderBy(tls *libc.TLS, pBuilder uintptr, pIndex uintptr, if pExpr == uintptr(0) { goto _2 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { + if (int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) || int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_COLUMN)) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) < 0 { return int32(1) } @@ -144934,7 +146177,7 @@ func _wherePartIdxExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, pPart uintpt if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) != int32(TK_COLUMN) { return } - if !(_sqlite3ExprIsConstant(tls, pRight) != 0) { + if !(_sqlite3ExprIsConstant(tls, uintptr(0), pRight) != 0) { return } if !(_sqlite3IsBinary(tls, _sqlite3ExprCompareCollSeq(tls, pParse, pPart)) != 0) { @@ -145269,7 +146512,7 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in ** unique index is used (making the index functionally non-unique) ** then the sqlite_stat1 data becomes important for scoring the ** plan */ - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) } _sqlite3Stat4ProbeFree(tls, (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec) (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = 0 @@ -145298,6 +146541,31 @@ func _isLimitTerm(tls *libc.TLS, pTerm uintptr) (r int32) { return libc.BoolInt32(int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) >= int32(SQLITE_INDEX_CONSTRAINT_LIMIT) && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) <= int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } +// C documentation +// +// /* +// ** Return true if the first nCons constraints in the pUsage array are +// ** marked as in-use (have argvIndex>0). False otherwise. +// */ +func _allConstraintsUsed(tls *libc.TLS, aUsage uintptr, nCons int32) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < nCons) { + break + } + if (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer(aUsage + uintptr(ii)*8))).FargvIndex <= 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + // C documentation // // /* @@ -145395,7 +146663,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if v3 >= 0 { j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).FiTermOffset if iTerm >= nConstraint || j < 0 || j >= (*TWhereClause)(unsafe.Pointer(pWC)).FnTerm || *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(iTerm)*8)) != uintptr(0) || int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22431, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22576, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } pTerm1 = (*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(j)*56 @@ -145442,13 +146710,19 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, _ = libc.Int32FromInt32(0) } } + /* Unless pbRetryLimit is non-NULL, there should be no LIMIT/OFFSET + ** terms. And if there are any, they should follow all other terms. */ + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if _isLimitTerm(tls, pTerm1) != 0 && *(*int32)(unsafe.Pointer(pbIn)) != 0 { + if _isLimitTerm(tls, pTerm1) != 0 && (*(*int32)(unsafe.Pointer(pbIn)) != 0 || !(_allConstraintsUsed(tls, pUsage, i) != 0)) { /* If there is an IN(...) term handled as an == (separate call to ** xFilter for each value on the RHS of the IN) and a LIMIT or - ** OFFSET term handled as well, the plan is unusable. Set output - ** variable *pbRetryLimit to true to tell the caller to retry with - ** LIMIT and OFFSET disabled. */ + ** OFFSET term handled as well, the plan is unusable. Similarly, + ** if there is a LIMIT/OFFSET and there are other unused terms, + ** the plan cannot be used. In these cases set variable *pbRetryLimit + ** to true to tell the caller to retry with LIMIT and OFFSET + ** disabled. */ if (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FneedToFreeIdxStr != 0 { Xsqlite3_free(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = uintptr(0) @@ -145473,7 +146747,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(i)*8)) == uintptr(0) { /* The non-zero argvIdx values must be contiguous. Raise an ** error if they are not */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22431, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22576, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } goto _6 @@ -145626,7 +146900,7 @@ func Xsqlite3_vtab_rhs_value(tls *libc.TLS, pIdxInfo uintptr, iCons int32, ppVal pVal = uintptr(0) rc = SQLITE_OK if iCons < 0 || iCons >= (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint { - rc = _sqlite3MisuseError(tls, int32(165251)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(166453)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = (*TWhereClause)(unsafe.Pointer((*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC)).Fa + uintptr((*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset)*56 @@ -146074,7 +147348,7 @@ func _whereLoopAddAll(tls *libc.TLS, pBuilder uintptr) (r int32) { if rc != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { if rc == int32(SQLITE_DONE) { /* We hit the query planner search limit set by iPlanLimit */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22457, 0) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22602, 0) rc = SQLITE_OK } else { break @@ -146463,7 +147737,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, } p = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr mTerm = _sqlite3WhereExprUsage(tls, pWInfo+592, p) - if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, p) != 0) { + if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, uintptr(0), p) != 0) { goto _9 } if mTerm & ^orderDistinctMask == uint64(0) { @@ -146884,7 +148158,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) iLoop++ } if nFrom == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22492, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22637, 0) _sqlite3DbFreeNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pSpace) return int32(SQLITE_ERROR) } @@ -146934,9 +148208,8 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) if int32((*TWherePath)(unsafe.Pointer(pFrom)).FisOrdered) == (*TExprList)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_ORDERED) } - if (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy != 0 && int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) > (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr { - (*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = int8((*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr) - } + /* vvv--- See check-in [12ad822d9b827777] on 2023-03-16 ---vvv */ + _ = libc.Int32FromInt32(0) } else { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FrevMask = (*TWherePath)(unsafe.Pointer(pFrom)).FrevLoop if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) <= 0 { @@ -146974,6 +148247,97 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) return SQLITE_OK } +// C documentation +// +// /* +// ** This routine implements a heuristic designed to improve query planning. +// ** This routine is called in between the first and second call to +// ** wherePathSolver(). Hence the name "Interstage" "Heuristic". +// ** +// ** The first call to wherePathSolver() (hereafter just "solver()") computes +// ** the best path without regard to the order of the outputs. The second call +// ** to the solver() builds upon the first call to try to find an alternative +// ** path that satisfies the ORDER BY clause. +// ** +// ** This routine looks at the results of the first solver() run, and for +// ** every FROM clause term in the resulting query plan that uses an equality +// ** constraint against an index, disable other WhereLoops for that same +// ** FROM clause term that would try to do a full-table scan. This prevents +// ** an index search from being converted into a full-table scan in order to +// ** satisfy an ORDER BY clause, since even though we might get slightly better +// ** performance using the full-scan without sorting if the output size +// ** estimates are very precise, we might also get severe performance +// ** degradation using the full-scan if the output size estimate is too large. +// ** It is better to err on the side of caution. +// ** +// ** Except, if the first solver() call generated a full-table scan in an outer +// ** loop then stop this analysis at the first full-scan, since the second +// ** solver() run might try to swap that full-scan for another in order to +// ** get the output into the correct order. In other words, we allow a +// ** rewrite like this: +// ** +// ** First Solver() Second Solver() +// ** |-- SCAN t1 |-- SCAN t2 +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** The purpose of this routine is to disallow rewrites such as: +// ** +// ** First Solver() Second Solver() +// ** |-- SEARCH t1 |-- SCAN t2 <--- bad! +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** See test cases in test/whereN.test for the real-world query that +// ** originally provoked this heuristic. +// */ +func _whereInterstageHeuristic(tls *libc.TLS, pWInfo uintptr) { + var i int32 + var iTab Tu8 + var p, pLoop uintptr + _, _, _, _ = i, iTab, p, pLoop + i = 0 + for { + if !(i < int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)) { + break + } + p = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(i)*104))).FpWLoop + if p == uintptr(0) { + break + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { + goto _1 + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_NULL)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != uint32(0) { + iTab = (*TWhereLoop)(unsafe.Pointer(p)).FiTab + pLoop = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpLoops + for { + if !(pLoop != 0) { + break + } + if int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab) != int32(iTab) { + goto _2 + } + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_CONSTRAINT)|libc.Int32FromInt32(WHERE_AUTO_INDEX)) != uint32(0) { + /* Auto-index and index-constrained loops allowed to remain */ + goto _2 + } + (*TWhereLoop)(unsafe.Pointer(pLoop)).Fprereq = uint64(-libc.Int32FromInt32(1)) /* Prevent 2nd solver() from using this one */ + goto _2 + _2: + ; + pLoop = (*TWhereLoop)(unsafe.Pointer(pLoop)).FpNextLoop + } + } else { + break + } + goto _1 + _1: + ; + i++ + } +} + // C documentation // // /* @@ -147292,7 +148656,7 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasStat1) == uint32(0) { break } - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) if i >= int32(1) && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&reqFlags == reqFlags && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_INDEXED)) != uint32(0) { if int32(nSearch) > int32((*TTable)(unsafe.Pointer(pTab)).FnRowLogEst) { *(*Tu32)(unsafe.Pointer(pLoop + 48)) |= uint32(WHERE_BLOOMFILTER) @@ -147307,6 +148671,69 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { } } +// C documentation +// +// /* +// ** Expression Node callback for sqlite3ExprCanReturnSubtype(). +// ** +// ** Only a function call is able to return a subtype. So if the node +// ** is not a function call, return WRC_Prune immediately. +// ** +// ** A function call is able to return a subtype if it has the +// ** SQLITE_RESULT_SUBTYPE property. +// ** +// ** Assume that every function is able to pass-through a subtype from +// ** one of its argument (using sqlite3_result_value()). Most functions +// ** are not this way, but we don't have a mechanism to distinguish those +// ** that are from those that are not, so assume they all work this way. +// ** That means that if one of its arguments is another function and that +// ** other function is able to return a subtype, then this function is +// ** able to return a subtype. +// */ +func _exprNodeCanReturnSubtype(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef uintptr + var n, v1 int32 + _, _, _, _ = db, n, pDef, v1 + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_FUNCTION) { + return int32(WRC_Prune) + } + _ = libc.Int32FromInt32(0) + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { + v1 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr + } else { + v1 = 0 + } + n = v1 + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + return int32(WRC_Prune) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Return TRUE if expression pExpr is able to return a subtype. +// ** +// ** A TRUE return does not guarantee that a subtype will be returned. +// ** It only indicates that a subtype return is possible. False positives +// ** are acceptable as they only disable an optimization. False negatives, +// ** on the other hand, can lead to incorrect answers. +// */ +func _sqlite3ExprCanReturnSubtype(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeCanReturnSubtype) + _sqlite3WalkExpr(tls, bp, pExpr) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) +} + // C documentation // // /* @@ -147321,9 +148748,9 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { // ** references to the corresponding column of the index. // */ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur int32, pTabItem uintptr) { - var db, p, pArg, pDef, pExpr, pTab uintptr - var i, j, n, v2 int32 - _, _, _, _, _, _, _, _, _, _ = db, i, j, n, p, pArg, pDef, pExpr, pTab, v2 + var i, j int32 + var p, pArg, pExpr, pTab uintptr + _, _, _, _, _, _ = i, j, p, pArg, pExpr, pTab _ = libc.Int32FromInt32(0) pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable i = 0 @@ -147341,22 +148768,14 @@ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur i goto _1 } } - if _sqlite3ExprIsConstant(tls, pExpr) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) != 0 { goto _1 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) { - db = (*TParse)(unsafe.Pointer(pParse)).Fdb - _ = libc.Int32FromInt32(0) - if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { - v2 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr - } else { - v2 = 0 - } - n = v2 - pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) - if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { - goto _1 - } + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) && _sqlite3ExprCanReturnSubtype(tls, pParse, pExpr) != 0 { + /* Functions that might set a subtype should not be replaced by the + ** value taken from an expression index since the index omits the + ** subtype. https://sqlite.org/forum/forumpost/68d284c86b082c3e */ + goto _1 } p = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(32)) if p == uintptr(0) { @@ -147530,7 +148949,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** bits in a Bitmask */ if (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc > int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22510, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22655, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) return uintptr(0) } /* This function normally generates a nested loop for all tables in @@ -147603,7 +149022,9 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if int32(wctrlFlags)&int32(WHERE_WANT_DISTINCT) != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_DistinctOpt)) == uint32(0) { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_UNIQUE) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22538, 0) + if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FselFlags&uint32(SF_MultiValue) == uint32(0) { + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22683, 0) + } } else { /* Assign a bit from the bitmask to every term in the FROM clause. ** @@ -147737,6 +149158,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy != 0 { + _whereInterstageHeuristic(tls, pWInfo) _wherePathSolver(tls, pWInfo, int16(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut)+int32(1))) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto whereBeginError @@ -148035,6 +149457,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiEndWhere = _sqlite3VdbeCurrentAddr(tls, v) return pWInfo /* Jump here if malloc fails */ + goto whereBeginError whereBeginError: ; if pWInfo != 0 { @@ -148058,10 +149481,10 @@ whereBeginError: // ** sqlite3WhereBegin() for additional information. // */ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { - var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, r1, ws, x, v4, v7 int32 - var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr + var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, r1, ws, x, v4, v7 int32 + var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pTabList = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList @@ -148204,7 +149627,14 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { addr = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfPos), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin) _ = libc.Int32FromInt32(0) if ws&int32(WHERE_IDX_ONLY) == 0 { + pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 _ = libc.Int32FromInt32(0) + if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x20>>5)) != 0 { + n1 = (*TSrcItem)(unsafe.Pointer(pSrc)).FregResult + _ = libc.Int32FromInt32(0) + m = int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FnCol) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, n1, n1+m-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur) } if ws&int32(WHERE_INDEXED) != 0 || ws&int32(WHERE_MULTI_OR) != 0 && *(*uintptr)(unsafe.Pointer(&(*TWhereLevel)(unsafe.Pointer(pLevel)).Fu)) != 0 { @@ -148253,6 +149683,7 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { ** OP_Rowid becomes OP_Null. */ if int32(uint32(*(*uint16)(unsafe.Pointer(pTabItem + 60 + 4))&0x20>>5)) != 0 { + _ = libc.Int32FromInt32(0) _translateColumnToCopy(tls, pParse, (*TWhereLevel)(unsafe.Pointer(pLevel)).FaddrBody, (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur, (*TSrcItem)(unsafe.Pointer(pTabItem)).FregResult, 0) goto _9 } @@ -148624,9 +150055,10 @@ func _nth_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) _ = nArg _ = apArg return + goto error_out error_out: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22556, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22701, -int32(1)) } func _nth_valueFinalizeFunc(tls *libc.TLS, pCtx uintptr) { @@ -148813,7 +150245,7 @@ func _ntileStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { if (*TNtileCtx)(unsafe.Pointer(p)).FnTotal == 0 { (*TNtileCtx)(unsafe.Pointer(p)).FnParam = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apArg))) if (*TNtileCtx)(unsafe.Pointer(p)).FnParam <= 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22612, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22757, -int32(1)) } } (*TNtileCtx)(unsafe.Pointer(p)).FnTotal++ @@ -149141,7 +150573,7 @@ func _windowFind(tls *libc.TLS, pParse uintptr, pList uintptr, zName uintptr) (r p = (*TWindow)(unsafe.Pointer(p)).FpNextWin } if p == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22657, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22802, libc.VaList(bp+8, zName)) } return p } @@ -149192,12 +150624,12 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin _sqlite3WindowChain(tls, pParse, pWin, pList) } if int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) == int32(TK_RANGE) && ((*TWindow)(unsafe.Pointer(pWin)).FpStart != 0 || (*TWindow)(unsafe.Pointer(pWin)).FpEnd != 0) && ((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy == uintptr(0) || (*TExprList)(unsafe.Pointer((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy)).FnExpr != int32(1)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22676, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22821, 0) } else { if (*TFuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TWindow)(unsafe.Pointer(pWin)).FpFilter != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22747, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22892, 0) } else { aUp = [8]struct { FzFunc uintptr @@ -149270,7 +150702,7 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin (*TWindow)(unsafe.Pointer(pWin)).FeEnd = uint8(aUp[i].FeEnd) (*TWindow)(unsafe.Pointer(pWin)).FeExclude = uint8(0) if int32((*TWindow)(unsafe.Pointer(pWin)).FeStart) == int32(TK_FOLLOWING) { - (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8130) + (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8255) } break } @@ -149558,7 +150990,7 @@ func _disallowAggregatesInOrderByCb(tls *libc.TLS, pWalker uintptr, pExpr uintpt defer tls.Free(16) if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_FUNCTION) && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { _ = libc.Int32FromInt32(0) - _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22810, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) + _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22955, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) } return WRC_Continue } @@ -149701,7 +151133,7 @@ func _sqlite3WindowRewrite(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { ** keep everything legal in this case. */ if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1722)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1782)) } pSub = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(bp)), pSrc, pWhere, pGroupBy, pHaving, pSort, uint32(0), uintptr(0)) (*TSelect)(unsafe.Pointer(p)).FpSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), uintptr(0), uintptr(0)) @@ -149806,7 +151238,7 @@ func _sqlite3WindowListDelete(tls *libc.TLS, db uintptr, p uintptr) { // ** variable values in the expression tree. // */ func _sqlite3WindowOffsetExpr(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r uintptr) { - if 0 == _sqlite3ExprIsConstant(tls, pExpr) { + if 0 == _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) { if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameExprUnmap(tls, pParse, pExpr) } @@ -149852,7 +151284,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 ** frame boundary. */ if eStart == int32(TK_CURRENT) && eEnd == int32(TK_PRECEDING) || eStart == int32(TK_FOLLOWING) && (eEnd == int32(TK_PRECEDING) || eEnd == int32(TK_CURRENT)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22836, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22981, 0) goto windowAllocErr } pWin = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) @@ -149870,6 +151302,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 (*TWindow)(unsafe.Pointer(pWin)).FpEnd = _sqlite3WindowOffsetExpr(tls, pParse, pEnd) (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3WindowOffsetExpr(tls, pParse, pStart) return pWin + goto windowAllocErr windowAllocErr: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pEnd) @@ -149919,18 +151352,18 @@ func _sqlite3WindowChain(tls *libc.TLS, pParse uintptr, pWin uintptr, pList uint zErr = uintptr(0) /* Check for errors */ if (*TWindow)(unsafe.Pointer(pWin)).FpPartition != 0 { - zErr = __ccgo_ts + 22868 + zErr = __ccgo_ts + 23013 } else { if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 && (*TWindow)(unsafe.Pointer(pWin)).FpOrderBy != 0 { - zErr = __ccgo_ts + 22885 + zErr = __ccgo_ts + 23030 } else { if int32((*TWindow)(unsafe.Pointer(pExist)).FbImplicitFrame) == 0 { - zErr = __ccgo_ts + 22901 + zErr = __ccgo_ts + 23046 } } } if zErr != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22921, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23066, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) } else { (*TWindow)(unsafe.Pointer(pWin)).FpPartition = _sqlite3ExprListDup(tls, db, (*TWindow)(unsafe.Pointer(pExist)).FpPartition, 0) if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 { @@ -149958,7 +151391,7 @@ func _sqlite3WindowAttach(tls *libc.TLS, pParse uintptr, p uintptr, pWin uintptr *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(libc.Int32FromInt32(EP_WinFunc) | libc.Int32FromInt32(EP_FullSize)) (*TWindow)(unsafe.Pointer(pWin)).FpOwner = p if (*TExpr)(unsafe.Pointer(p)).Fflags&uint32(EP_Distinct) != 0 && int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) != int32(TK_FILTER) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22954, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23099, 0) } } else { _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pWin) @@ -150160,7 +151593,7 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regZero) if eCond >= int32(WINDOW_STARTING_NUM) { regString = _sqlite3GetTempReg(tls, pParse) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1648, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1662, -int32(1)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, _sqlite3VdbeCurrentAddr(tls, v)+int32(2), reg) _sqlite3VdbeChangeP5(tls, v, uint16(libc.Int32FromInt32(SQLITE_AFF_NUMERIC)|libc.Int32FromInt32(SQLITE_JUMPIFNULL))) _ = libc.Int32FromInt32(0) @@ -150181,11 +151614,11 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { } var _azErr = [5]uintptr{ - 0: __ccgo_ts + 23001, - 1: __ccgo_ts + 23054, - 2: __ccgo_ts + 22556, - 3: __ccgo_ts + 23105, - 4: __ccgo_ts + 23157, + 0: __ccgo_ts + 23146, + 1: __ccgo_ts + 23199, + 2: __ccgo_ts + 22701, + 3: __ccgo_ts + 23250, + 4: __ccgo_ts + 23302, } var _aOp1 = [5]int32{ @@ -150957,7 +152390,7 @@ func _windowCodeRangeTest(tls *libc.TLS, p uintptr, op int32, csr1 int32, regVal ** the add/subtract is skipped for these, as required. If reg1 is a NULL, ** then the arithmetic is performed, but since adding or subtracting from ** NULL is always NULL anyway, this case is handled as required too. */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1648, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1662, -int32(1)) addrGe = _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, 0, reg1) if op == int32(OP_Ge) && arith == int32(OP_Add) || op == int32(OP_Le) && arith == int32(OP_Subtract) { _sqlite3VdbeAddOp3(tls, v, op, reg2, lbl, reg1) @@ -151998,11 +153431,11 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { cnt++ if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != 0 || (*TSelect)(unsafe.Pointer(pLoop)).FpLimit != 0 { if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != uintptr(0) { - v1 = __ccgo_ts + 23207 + v1 = __ccgo_ts + 23352 } else { - v1 = __ccgo_ts + 23216 + v1 = __ccgo_ts + 23361 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23222, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23367, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) break } } @@ -152011,7 +153444,7 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { mxSelect = v2 } if v3 && v2 > 0 && cnt > mxSelect { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23264, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23409, 0) } } } @@ -152031,6 +153464,23 @@ func _attachWithToSelect(tls *libc.TLS, pParse uintptr, pSelect uintptr, pWith u return pSelect } +// C documentation +// +// /* Memory allocator for parser stack resizing. This is a thin wrapper around +// ** sqlite3_realloc() that includes a call to sqlite3FaultSim() to facilitate +// ** testing. +// */ +func _parserStackRealloc(tls *libc.TLS, pOld uintptr, newSize Tsqlite3_uint64) (r uintptr) { + var v1 uintptr + _ = v1 + if _sqlite3FaultSim(tls, int32(700)) != 0 { + v1 = uintptr(0) + } else { + v1 = Xsqlite3_realloc(tls, pOld, int32(newSize)) + } + return v1 +} + // C documentation // // /* Construct a new Expr object from a single token */ @@ -152100,7 +153550,7 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId _ = p p = _sqlite3ExprListAppend(tls, pParse, pPrior, uintptr(0)) if (hasCollate != 0 || sortOrder != -int32(1)) && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23298, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23443, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) } _sqlite3ExprListSetName(tls, pParse, p, pIdToken, int32(1)) return p @@ -152150,6 +153600,9 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser // ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser // ** sqlite3ParserCTX_* As sqlite3ParserARG_ except for %extra_context +// ** YYREALLOC Name of the realloc() function to use +// ** YYFREE Name of the free() function to use +// ** YYDYNSTACK True if stack space should be extended on heap // ** YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** YYNSTATE the combined number of states. @@ -152163,31 +153616,33 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** YY_NO_ACTION The yy_action[] code for no-op // ** YY_MIN_REDUCE Minimum value for reduce actions // ** YY_MAX_REDUCE Maximum value for reduce actions +// ** YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type TYYMINORTYPE = struct { Fyy0 [0]TToken - Fyy33 [0]uintptr - Fyy41 [0]uintptr - Fyy47 [0]uintptr - Fyy131 [0]uintptr - Fyy180 [0]TTrigEvent - Fyy231 [0]struct { + Fyy14 [0]uintptr + Fyy59 [0]uintptr + Fyy67 [0]uintptr + Fyy122 [0]uintptr + Fyy132 [0]uintptr + Fyy144 [0]int32 + Fyy168 [0]uintptr + Fyy203 [0]uintptr + Fyy211 [0]uintptr + Fyy269 [0]TOnOrUsing + Fyy286 [0]TTrigEvent + Fyy383 [0]struct { Fvalue int32 Fmask int32 } - Fyy254 [0]uintptr - Fyy285 [0]Tu32 - Fyy322 [0]uintptr - Fyy385 [0]uintptr - Fyy394 [0]int32 - Fyy444 [0]uintptr - Fyy516 [0]Tu8 - Fyy521 [0]uintptr - Fyy522 [0]uintptr - Fyy528 [0]uintptr - Fyy561 [0]TOnOrUsing - Fyy595 [0]TFrameBound + Fyy391 [0]Tu32 + Fyy427 [0]uintptr + Fyy454 [0]uintptr + Fyy462 [0]Tu8 + Fyy509 [0]TFrameBound + Fyy555 [0]uintptr Fyyinit int32 F__ccgo_pad20 [12]byte } @@ -152205,6 +153660,13 @@ type YYMINORTYPE = TYYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -152257,2152 +153719,2194 @@ type YYMINORTYPE = TYYMINORTYPE // ** yy_default[] Default action for each state. // ** // *********** Begin parsing tables **********************************************/ -var _yy_action = [2100]uint16{ - 0: uint16(572), - 1: uint16(210), - 2: uint16(572), - 3: uint16(119), - 4: uint16(116), - 5: uint16(231), - 6: uint16(572), - 7: uint16(119), - 8: uint16(116), - 9: uint16(231), - 10: uint16(572), - 11: uint16(1317), - 12: uint16(379), - 13: uint16(1296), - 14: uint16(410), - 15: uint16(566), - 16: uint16(566), - 17: uint16(566), - 18: uint16(572), - 19: uint16(411), - 20: uint16(380), - 21: uint16(1317), - 22: uint16(1279), - 23: uint16(42), - 24: uint16(42), - 25: uint16(42), - 26: uint16(42), - 27: uint16(210), - 28: uint16(1529), - 29: uint16(72), - 30: uint16(72), - 31: uint16(974), - 32: uint16(421), - 33: uint16(42), - 34: uint16(42), - 35: uint16(495), - 36: uint16(305), - 37: uint16(281), - 38: uint16(305), - 39: uint16(975), - 40: uint16(399), - 41: uint16(72), - 42: uint16(72), - 43: uint16(126), - 44: uint16(127), - 45: uint16(81), - 46: uint16(1217), - 47: uint16(1217), - 48: uint16(1054), - 49: uint16(1057), - 50: uint16(1044), - 51: uint16(1044), - 52: uint16(124), - 53: uint16(124), - 54: uint16(125), - 55: uint16(125), - 56: uint16(125), - 57: uint16(125), - 58: uint16(480), - 59: uint16(411), - 60: uint16(1244), - 61: uint16(1), - 62: uint16(1), - 63: uint16(578), - 64: uint16(2), - 65: uint16(1248), - 66: uint16(554), - 67: uint16(119), - 68: uint16(116), - 69: uint16(231), - 70: uint16(319), - 71: uint16(484), - 72: uint16(147), - 73: uint16(484), - 74: uint16(528), - 75: uint16(119), - 76: uint16(116), - 77: uint16(231), - 78: uint16(533), - 79: uint16(1330), - 80: uint16(419), - 81: uint16(527), - 82: uint16(143), - 83: uint16(126), - 84: uint16(127), - 85: uint16(81), - 86: uint16(1217), - 87: uint16(1217), - 88: uint16(1054), - 89: uint16(1057), - 90: uint16(1044), - 91: uint16(1044), - 92: uint16(124), - 93: uint16(124), - 94: uint16(125), - 95: uint16(125), - 96: uint16(125), - 97: uint16(125), - 98: uint16(119), - 99: uint16(116), - 100: uint16(231), - 101: uint16(329), - 102: uint16(123), - 103: uint16(123), - 104: uint16(123), - 105: uint16(123), - 106: uint16(122), - 107: uint16(122), - 108: uint16(121), - 109: uint16(121), - 110: uint16(121), - 111: uint16(120), - 112: uint16(117), - 113: uint16(448), - 114: uint16(286), - 115: uint16(286), - 116: uint16(286), - 117: uint16(286), - 118: uint16(446), - 119: uint16(446), - 120: uint16(446), - 121: uint16(1568), - 122: uint16(378), - 123: uint16(1570), - 124: uint16(1193), - 125: uint16(377), - 126: uint16(1164), - 127: uint16(569), - 128: uint16(1164), - 129: uint16(569), - 130: uint16(411), - 131: uint16(1568), - 132: uint16(541), - 133: uint16(261), - 134: uint16(228), - 135: uint16(448), - 136: uint16(102), - 137: uint16(146), - 138: uint16(453), - 139: uint16(318), - 140: uint16(563), - 141: uint16(242), - 142: uint16(123), - 143: uint16(123), - 144: uint16(123), - 145: uint16(123), - 146: uint16(122), - 147: uint16(122), - 148: uint16(121), - 149: uint16(121), - 150: uint16(121), - 151: uint16(120), - 152: uint16(117), - 153: uint16(448), - 154: uint16(126), - 155: uint16(127), - 156: uint16(81), - 157: uint16(1217), - 158: uint16(1217), - 159: uint16(1054), - 160: uint16(1057), - 161: uint16(1044), - 162: uint16(1044), - 163: uint16(124), - 164: uint16(124), - 165: uint16(125), - 166: uint16(125), - 167: uint16(125), - 168: uint16(125), - 169: uint16(143), - 170: uint16(296), - 171: uint16(1193), - 172: uint16(341), - 173: uint16(452), - 174: uint16(121), - 175: uint16(121), - 176: uint16(121), - 177: uint16(120), - 178: uint16(117), - 179: uint16(448), - 180: uint16(128), - 181: uint16(1193), - 182: uint16(1194), - 183: uint16(1193), - 184: uint16(149), - 185: uint16(445), - 186: uint16(444), - 187: uint16(572), - 188: uint16(120), - 189: uint16(117), - 190: uint16(448), - 191: uint16(125), - 192: uint16(125), - 193: uint16(125), - 194: uint16(125), - 195: uint16(118), - 196: uint16(123), - 197: uint16(123), - 198: uint16(123), - 199: uint16(123), - 200: uint16(122), - 201: uint16(122), - 202: uint16(121), - 203: uint16(121), - 204: uint16(121), - 205: uint16(120), - 206: uint16(117), - 207: uint16(448), - 208: uint16(458), - 209: uint16(114), - 210: uint16(13), - 211: uint16(13), - 212: uint16(550), - 213: uint16(123), - 214: uint16(123), - 215: uint16(123), - 216: uint16(123), - 217: uint16(122), - 218: uint16(122), - 219: uint16(121), - 220: uint16(121), - 221: uint16(121), - 222: uint16(120), - 223: uint16(117), - 224: uint16(448), - 225: uint16(424), - 226: uint16(318), - 227: uint16(563), - 228: uint16(1193), - 229: uint16(1194), - 230: uint16(1193), - 231: uint16(150), - 232: uint16(1225), - 233: uint16(411), - 234: uint16(1225), - 235: uint16(125), - 236: uint16(125), - 237: uint16(125), - 238: uint16(125), - 239: uint16(123), - 240: uint16(123), - 241: uint16(123), - 242: uint16(123), - 243: uint16(122), - 244: uint16(122), - 245: uint16(121), - 246: uint16(121), - 247: uint16(121), - 248: uint16(120), - 249: uint16(117), - 250: uint16(448), - 251: uint16(469), - 252: uint16(344), - 253: uint16(1041), - 254: uint16(1041), - 255: uint16(1055), - 256: uint16(1058), - 257: uint16(126), - 258: uint16(127), - 259: uint16(81), - 260: uint16(1217), - 261: uint16(1217), - 262: uint16(1054), - 263: uint16(1057), - 264: uint16(1044), - 265: uint16(1044), - 266: uint16(124), - 267: uint16(124), - 268: uint16(125), - 269: uint16(125), - 270: uint16(125), - 271: uint16(125), - 272: uint16(1282), - 273: uint16(526), - 274: uint16(224), - 275: uint16(1193), - 276: uint16(572), - 277: uint16(411), - 278: uint16(226), - 279: uint16(519), - 280: uint16(177), - 281: uint16(83), - 282: uint16(84), - 283: uint16(123), - 284: uint16(123), - 285: uint16(123), - 286: uint16(123), - 287: uint16(122), - 288: uint16(122), - 289: uint16(121), - 290: uint16(121), - 291: uint16(121), - 292: uint16(120), - 293: uint16(117), - 294: uint16(448), - 295: uint16(1010), - 296: uint16(16), - 297: uint16(16), - 298: uint16(1193), - 299: uint16(134), - 300: uint16(134), - 301: uint16(126), - 302: uint16(127), - 303: uint16(81), - 304: uint16(1217), - 305: uint16(1217), - 306: uint16(1054), - 307: uint16(1057), - 308: uint16(1044), - 309: uint16(1044), - 310: uint16(124), - 311: uint16(124), - 312: uint16(125), - 313: uint16(125), - 314: uint16(125), - 315: uint16(125), - 316: uint16(123), - 317: uint16(123), - 318: uint16(123), - 319: uint16(123), - 320: uint16(122), - 321: uint16(122), - 322: uint16(121), - 323: uint16(121), - 324: uint16(121), - 325: uint16(120), - 326: uint16(117), - 327: uint16(448), - 328: uint16(1045), - 329: uint16(550), - 330: uint16(1193), - 331: uint16(375), - 332: uint16(1193), - 333: uint16(1194), - 334: uint16(1193), - 335: uint16(254), - 336: uint16(1438), - 337: uint16(401), - 338: uint16(508), - 339: uint16(505), - 340: uint16(504), - 341: uint16(112), - 342: uint16(564), - 343: uint16(570), +var _yy_action = [2142]uint16{ + 0: uint16(576), + 1: uint16(128), + 2: uint16(125), + 3: uint16(232), + 4: uint16(1622), + 5: uint16(549), + 6: uint16(576), + 7: uint16(1290), + 8: uint16(1281), + 9: uint16(576), + 10: uint16(328), + 11: uint16(576), + 12: uint16(1300), + 13: uint16(212), + 14: uint16(576), + 15: uint16(128), + 16: uint16(125), + 17: uint16(232), + 18: uint16(578), + 19: uint16(412), + 20: uint16(578), + 21: uint16(391), + 22: uint16(1542), + 23: uint16(51), + 24: uint16(51), + 25: uint16(523), + 26: uint16(405), + 27: uint16(1293), + 28: uint16(529), + 29: uint16(51), + 30: uint16(51), + 31: uint16(983), + 32: uint16(51), + 33: uint16(51), + 34: uint16(81), + 35: uint16(81), + 36: uint16(1107), + 37: uint16(61), + 38: uint16(61), + 39: uint16(984), + 40: uint16(1107), + 41: uint16(1292), + 42: uint16(380), + 43: uint16(135), + 44: uint16(136), + 45: uint16(90), + 46: uint16(1228), + 47: uint16(1228), + 48: uint16(1063), + 49: uint16(1066), + 50: uint16(1053), + 51: uint16(1053), + 52: uint16(133), + 53: uint16(133), + 54: uint16(134), + 55: uint16(134), + 56: uint16(134), + 57: uint16(134), + 58: uint16(1577), + 59: uint16(412), + 60: uint16(287), + 61: uint16(287), + 62: uint16(7), + 63: uint16(287), + 64: uint16(287), + 65: uint16(422), + 66: uint16(1050), + 67: uint16(1050), + 68: uint16(1064), + 69: uint16(1067), + 70: uint16(289), + 71: uint16(556), + 72: uint16(492), + 73: uint16(573), + 74: uint16(524), + 75: uint16(561), + 76: uint16(573), + 77: uint16(497), + 78: uint16(561), + 79: uint16(482), + 80: uint16(530), + 81: uint16(262), + 82: uint16(229), + 83: uint16(135), + 84: uint16(136), + 85: uint16(90), + 86: uint16(1228), + 87: uint16(1228), + 88: uint16(1063), + 89: uint16(1066), + 90: uint16(1053), + 91: uint16(1053), + 92: uint16(133), + 93: uint16(133), + 94: uint16(134), + 95: uint16(134), + 96: uint16(134), + 97: uint16(134), + 98: uint16(128), + 99: uint16(125), + 100: uint16(232), + 101: uint16(1506), + 102: uint16(132), + 103: uint16(132), + 104: uint16(132), + 105: uint16(132), + 106: uint16(131), + 107: uint16(131), + 108: uint16(130), + 109: uint16(130), + 110: uint16(130), + 111: uint16(129), + 112: uint16(126), + 113: uint16(450), + 114: uint16(1204), + 115: uint16(1255), + 116: uint16(1), + 117: uint16(1), + 118: uint16(582), + 119: uint16(2), + 120: uint16(1259), + 121: uint16(1571), + 122: uint16(420), + 123: uint16(1582), + 124: uint16(379), + 125: uint16(320), + 126: uint16(1174), + 127: uint16(153), + 128: uint16(1174), + 129: uint16(1584), + 130: uint16(412), + 131: uint16(378), + 132: uint16(1582), + 133: uint16(543), + 134: uint16(1341), + 135: uint16(330), + 136: uint16(111), + 137: uint16(570), + 138: uint16(570), + 139: uint16(570), + 140: uint16(293), + 141: uint16(1054), + 142: uint16(132), + 143: uint16(132), + 144: uint16(132), + 145: uint16(132), + 146: uint16(131), + 147: uint16(131), + 148: uint16(130), + 149: uint16(130), + 150: uint16(130), + 151: uint16(129), + 152: uint16(126), + 153: uint16(450), + 154: uint16(135), + 155: uint16(136), + 156: uint16(90), + 157: uint16(1228), + 158: uint16(1228), + 159: uint16(1063), + 160: uint16(1066), + 161: uint16(1053), + 162: uint16(1053), + 163: uint16(133), + 164: uint16(133), + 165: uint16(134), + 166: uint16(134), + 167: uint16(134), + 168: uint16(134), + 169: uint16(287), + 170: uint16(287), + 171: uint16(1204), + 172: uint16(1205), + 173: uint16(1204), + 174: uint16(255), + 175: uint16(287), + 176: uint16(287), + 177: uint16(510), + 178: uint16(507), + 179: uint16(506), + 180: uint16(137), + 181: uint16(455), + 182: uint16(573), + 183: uint16(212), + 184: uint16(561), + 185: uint16(447), + 186: uint16(446), + 187: uint16(505), + 188: uint16(573), + 189: uint16(1616), + 190: uint16(561), + 191: uint16(134), + 192: uint16(134), + 193: uint16(134), + 194: uint16(134), + 195: uint16(127), + 196: uint16(400), + 197: uint16(243), + 198: uint16(132), + 199: uint16(132), + 200: uint16(132), + 201: uint16(132), + 202: uint16(131), + 203: uint16(131), + 204: uint16(130), + 205: uint16(130), + 206: uint16(130), + 207: uint16(129), + 208: uint16(126), + 209: uint16(450), + 210: uint16(282), + 211: uint16(471), + 212: uint16(345), + 213: uint16(132), + 214: uint16(132), + 215: uint16(132), + 216: uint16(132), + 217: uint16(131), + 218: uint16(131), + 219: uint16(130), + 220: uint16(130), + 221: uint16(130), + 222: uint16(129), + 223: uint16(126), + 224: uint16(450), + 225: uint16(574), + 226: uint16(155), + 227: uint16(936), + 228: uint16(936), + 229: uint16(454), + 230: uint16(227), + 231: uint16(521), + 232: uint16(1236), + 233: uint16(412), + 234: uint16(1236), + 235: uint16(134), + 236: uint16(134), + 237: uint16(134), + 238: uint16(134), + 239: uint16(132), + 240: uint16(132), + 241: uint16(132), + 242: uint16(132), + 243: uint16(131), + 244: uint16(131), + 245: uint16(130), + 246: uint16(130), + 247: uint16(130), + 248: uint16(129), + 249: uint16(126), + 250: uint16(450), + 251: uint16(130), + 252: uint16(130), + 253: uint16(130), + 254: uint16(129), + 255: uint16(126), + 256: uint16(450), + 257: uint16(135), + 258: uint16(136), + 259: uint16(90), + 260: uint16(1228), + 261: uint16(1228), + 262: uint16(1063), + 263: uint16(1066), + 264: uint16(1053), + 265: uint16(1053), + 266: uint16(133), + 267: uint16(133), + 268: uint16(134), + 269: uint16(134), + 270: uint16(134), + 271: uint16(134), + 272: uint16(128), + 273: uint16(125), + 274: uint16(232), + 275: uint16(450), + 276: uint16(576), + 277: uint16(412), + 278: uint16(397), + 279: uint16(1249), + 280: uint16(180), + 281: uint16(92), + 282: uint16(93), + 283: uint16(132), + 284: uint16(132), + 285: uint16(132), + 286: uint16(132), + 287: uint16(131), + 288: uint16(131), + 289: uint16(130), + 290: uint16(130), + 291: uint16(130), + 292: uint16(129), + 293: uint16(126), + 294: uint16(450), + 295: uint16(381), + 296: uint16(387), + 297: uint16(1204), + 298: uint16(383), + 299: uint16(81), + 300: uint16(81), + 301: uint16(135), + 302: uint16(136), + 303: uint16(90), + 304: uint16(1228), + 305: uint16(1228), + 306: uint16(1063), + 307: uint16(1066), + 308: uint16(1053), + 309: uint16(1053), + 310: uint16(133), + 311: uint16(133), + 312: uint16(134), + 313: uint16(134), + 314: uint16(134), + 315: uint16(134), + 316: uint16(132), + 317: uint16(132), + 318: uint16(132), + 319: uint16(132), + 320: uint16(131), + 321: uint16(131), + 322: uint16(130), + 323: uint16(130), + 324: uint16(130), + 325: uint16(129), + 326: uint16(126), + 327: uint16(450), + 328: uint16(131), + 329: uint16(131), + 330: uint16(130), + 331: uint16(130), + 332: uint16(130), + 333: uint16(129), + 334: uint16(126), + 335: uint16(450), + 336: uint16(556), + 337: uint16(1204), + 338: uint16(302), + 339: uint16(319), + 340: uint16(567), + 341: uint16(121), + 342: uint16(568), + 343: uint16(480), 344: uint16(4), - 345: uint16(929), - 346: uint16(929), - 347: uint16(435), - 348: uint16(503), - 349: uint16(342), - 350: uint16(464), - 351: uint16(330), - 352: uint16(362), - 353: uint16(396), - 354: uint16(1238), - 355: uint16(1193), - 356: uint16(1194), - 357: uint16(1193), - 358: uint16(567), - 359: uint16(572), - 360: uint16(123), - 361: uint16(123), - 362: uint16(123), - 363: uint16(123), - 364: uint16(122), - 365: uint16(122), - 366: uint16(121), - 367: uint16(121), - 368: uint16(121), - 369: uint16(120), - 370: uint16(117), - 371: uint16(448), - 372: uint16(286), - 373: uint16(286), - 374: uint16(371), - 375: uint16(1581), - 376: uint16(1607), - 377: uint16(445), - 378: uint16(444), - 379: uint16(155), - 380: uint16(411), - 381: uint16(449), - 382: uint16(72), - 383: uint16(72), - 384: uint16(1289), - 385: uint16(569), - 386: uint16(1222), - 387: uint16(1193), - 388: uint16(1194), - 389: uint16(1193), - 390: uint16(86), - 391: uint16(1224), - 392: uint16(273), - 393: uint16(561), - 394: uint16(547), - 395: uint16(520), - 396: uint16(520), - 397: uint16(572), - 398: uint16(99), - 399: uint16(1223), - 400: uint16(6), - 401: uint16(1281), - 402: uint16(476), - 403: uint16(143), - 404: uint16(126), - 405: uint16(127), - 406: uint16(81), - 407: uint16(1217), - 408: uint16(1217), - 409: uint16(1054), - 410: uint16(1057), - 411: uint16(1044), - 412: uint16(1044), - 413: uint16(124), - 414: uint16(124), - 415: uint16(125), - 416: uint16(125), - 417: uint16(125), - 418: uint16(125), - 419: uint16(554), - 420: uint16(13), - 421: uint16(13), - 422: uint16(1031), - 423: uint16(511), - 424: uint16(1225), - 425: uint16(1193), - 426: uint16(1225), - 427: uint16(553), - 428: uint16(110), - 429: uint16(110), - 430: uint16(224), - 431: uint16(572), - 432: uint16(1239), - 433: uint16(177), - 434: uint16(572), - 435: uint16(429), - 436: uint16(111), - 437: uint16(199), - 438: uint16(449), - 439: uint16(573), - 440: uint16(449), - 441: uint16(432), - 442: uint16(1555), - 443: uint16(1019), - 444: uint16(327), - 445: uint16(555), - 446: uint16(1193), - 447: uint16(272), - 448: uint16(289), - 449: uint16(370), - 450: uint16(514), - 451: uint16(365), - 452: uint16(513), - 453: uint16(259), - 454: uint16(72), - 455: uint16(72), - 456: uint16(547), - 457: uint16(72), - 458: uint16(72), - 459: uint16(361), - 460: uint16(318), - 461: uint16(563), - 462: uint16(1613), - 463: uint16(123), - 464: uint16(123), - 465: uint16(123), - 466: uint16(123), - 467: uint16(122), - 468: uint16(122), - 469: uint16(121), - 470: uint16(121), - 471: uint16(121), - 472: uint16(120), - 473: uint16(117), - 474: uint16(448), - 475: uint16(1019), - 476: uint16(1019), - 477: uint16(1021), - 478: uint16(1022), - 479: uint16(28), - 480: uint16(286), - 481: uint16(286), - 482: uint16(1193), - 483: uint16(1194), - 484: uint16(1193), - 485: uint16(1159), - 486: uint16(572), - 487: uint16(1612), - 488: uint16(411), - 489: uint16(904), - 490: uint16(192), - 491: uint16(554), - 492: uint16(358), - 493: uint16(569), - 494: uint16(554), - 495: uint16(940), - 496: uint16(537), - 497: uint16(521), - 498: uint16(1159), - 499: uint16(437), - 500: uint16(415), - 501: uint16(1159), - 502: uint16(556), - 503: uint16(1193), - 504: uint16(1194), - 505: uint16(1193), - 506: uint16(572), - 507: uint16(548), - 508: uint16(548), - 509: uint16(52), - 510: uint16(52), - 511: uint16(216), - 512: uint16(126), - 513: uint16(127), - 514: uint16(81), - 515: uint16(1217), - 516: uint16(1217), - 517: uint16(1054), - 518: uint16(1057), - 519: uint16(1044), - 520: uint16(1044), - 521: uint16(124), - 522: uint16(124), - 523: uint16(125), - 524: uint16(125), - 525: uint16(125), - 526: uint16(125), - 527: uint16(1193), - 528: uint16(478), - 529: uint16(136), - 530: uint16(136), - 531: uint16(411), - 532: uint16(286), - 533: uint16(286), - 534: uint16(1493), - 535: uint16(509), - 536: uint16(122), - 537: uint16(122), - 538: uint16(121), - 539: uint16(121), - 540: uint16(121), - 541: uint16(120), - 542: uint16(117), - 543: uint16(448), - 544: uint16(1010), - 545: uint16(569), - 546: uint16(522), - 547: uint16(219), - 548: uint16(545), - 549: uint16(545), - 550: uint16(318), - 551: uint16(563), - 552: uint16(143), - 553: uint16(6), - 554: uint16(536), - 555: uint16(126), - 556: uint16(127), - 557: uint16(81), - 558: uint16(1217), - 559: uint16(1217), - 560: uint16(1054), - 561: uint16(1057), - 562: uint16(1044), - 563: uint16(1044), - 564: uint16(124), - 565: uint16(124), - 566: uint16(125), - 567: uint16(125), - 568: uint16(125), - 569: uint16(125), - 570: uint16(1557), - 571: uint16(123), - 572: uint16(123), - 573: uint16(123), - 574: uint16(123), - 575: uint16(122), - 576: uint16(122), - 577: uint16(121), - 578: uint16(121), - 579: uint16(121), - 580: uint16(120), - 581: uint16(117), - 582: uint16(448), - 583: uint16(489), - 584: uint16(1193), - 585: uint16(1194), - 586: uint16(1193), - 587: uint16(486), - 588: uint16(283), - 589: uint16(1270), - 590: uint16(960), - 591: uint16(254), - 592: uint16(1193), - 593: uint16(375), - 594: uint16(508), - 595: uint16(505), - 596: uint16(504), - 597: uint16(1193), - 598: uint16(342), - 599: uint16(574), - 600: uint16(1193), - 601: uint16(574), - 602: uint16(411), - 603: uint16(294), - 604: uint16(503), - 605: uint16(960), - 606: uint16(879), - 607: uint16(193), - 608: uint16(484), - 609: uint16(318), - 610: uint16(563), - 611: uint16(386), - 612: uint16(292), - 613: uint16(382), - 614: uint16(123), - 615: uint16(123), - 616: uint16(123), - 617: uint16(123), - 618: uint16(122), - 619: uint16(122), - 620: uint16(121), - 621: uint16(121), - 622: uint16(121), - 623: uint16(120), - 624: uint16(117), - 625: uint16(448), - 626: uint16(126), - 627: uint16(127), - 628: uint16(81), - 629: uint16(1217), - 630: uint16(1217), - 631: uint16(1054), - 632: uint16(1057), - 633: uint16(1044), - 634: uint16(1044), - 635: uint16(124), - 636: uint16(124), - 637: uint16(125), - 638: uint16(125), - 639: uint16(125), - 640: uint16(125), - 641: uint16(411), - 642: uint16(396), - 643: uint16(1139), - 644: uint16(1193), - 645: uint16(872), - 646: uint16(101), - 647: uint16(286), - 648: uint16(286), - 649: uint16(1193), - 650: uint16(1194), - 651: uint16(1193), - 652: uint16(375), - 653: uint16(1096), - 654: uint16(1193), - 655: uint16(1194), - 656: uint16(1193), - 657: uint16(1193), - 658: uint16(1194), - 659: uint16(1193), - 660: uint16(569), - 661: uint16(459), - 662: uint16(33), - 663: uint16(375), - 664: uint16(235), - 665: uint16(126), - 666: uint16(127), - 667: uint16(81), - 668: uint16(1217), - 669: uint16(1217), - 670: uint16(1054), - 671: uint16(1057), - 672: uint16(1044), - 673: uint16(1044), - 674: uint16(124), - 675: uint16(124), - 676: uint16(125), - 677: uint16(125), - 678: uint16(125), - 679: uint16(125), - 680: uint16(1437), - 681: uint16(962), - 682: uint16(572), - 683: uint16(230), - 684: uint16(961), - 685: uint16(123), - 686: uint16(123), - 687: uint16(123), - 688: uint16(123), - 689: uint16(122), - 690: uint16(122), - 691: uint16(121), - 692: uint16(121), - 693: uint16(121), - 694: uint16(120), - 695: uint16(117), - 696: uint16(448), - 697: uint16(1159), - 698: uint16(230), - 699: uint16(1193), - 700: uint16(158), - 701: uint16(1193), - 702: uint16(1194), - 703: uint16(1193), - 704: uint16(1556), - 705: uint16(13), - 706: uint16(13), - 707: uint16(303), - 708: uint16(960), - 709: uint16(1233), - 710: uint16(1159), - 711: uint16(154), - 712: uint16(411), - 713: uint16(1159), - 714: uint16(375), - 715: uint16(1584), - 716: uint16(1177), - 717: uint16(5), - 718: uint16(371), - 719: uint16(1581), - 720: uint16(431), - 721: uint16(1239), - 722: uint16(3), - 723: uint16(960), - 724: uint16(123), - 725: uint16(123), - 726: uint16(123), - 727: uint16(123), - 728: uint16(122), - 729: uint16(122), - 730: uint16(121), - 731: uint16(121), - 732: uint16(121), - 733: uint16(120), - 734: uint16(117), - 735: uint16(448), - 736: uint16(126), - 737: uint16(127), - 738: uint16(81), - 739: uint16(1217), - 740: uint16(1217), - 741: uint16(1054), - 742: uint16(1057), - 743: uint16(1044), - 744: uint16(1044), - 745: uint16(124), - 746: uint16(124), - 747: uint16(125), - 748: uint16(125), - 749: uint16(125), - 750: uint16(125), - 751: uint16(411), - 752: uint16(210), - 753: uint16(571), - 754: uint16(1193), - 755: uint16(1032), - 756: uint16(1193), - 757: uint16(1194), - 758: uint16(1193), - 759: uint16(1193), - 760: uint16(390), - 761: uint16(855), - 762: uint16(156), - 763: uint16(1555), - 764: uint16(376), - 765: uint16(404), - 766: uint16(1101), - 767: uint16(1101), - 768: uint16(492), - 769: uint16(572), - 770: uint16(469), - 771: uint16(344), - 772: uint16(1322), - 773: uint16(1322), - 774: uint16(1555), - 775: uint16(126), - 776: uint16(127), - 777: uint16(81), - 778: uint16(1217), - 779: uint16(1217), - 780: uint16(1054), - 781: uint16(1057), - 782: uint16(1044), - 783: uint16(1044), - 784: uint16(124), - 785: uint16(124), - 786: uint16(125), - 787: uint16(125), - 788: uint16(125), - 789: uint16(125), - 790: uint16(130), - 791: uint16(572), - 792: uint16(13), - 793: uint16(13), - 794: uint16(532), - 795: uint16(123), - 796: uint16(123), - 797: uint16(123), - 798: uint16(123), - 799: uint16(122), - 800: uint16(122), - 801: uint16(121), - 802: uint16(121), - 803: uint16(121), - 804: uint16(120), - 805: uint16(117), - 806: uint16(448), - 807: uint16(304), - 808: uint16(572), - 809: uint16(457), - 810: uint16(229), - 811: uint16(1193), - 812: uint16(1194), - 813: uint16(1193), - 814: uint16(13), - 815: uint16(13), - 816: uint16(1193), - 817: uint16(1194), - 818: uint16(1193), - 819: uint16(1300), - 820: uint16(467), - 821: uint16(1270), - 822: uint16(411), - 823: uint16(1320), - 824: uint16(1320), - 825: uint16(1555), - 826: uint16(1015), - 827: uint16(457), - 828: uint16(456), - 829: uint16(436), - 830: uint16(301), - 831: uint16(72), - 832: uint16(72), - 833: uint16(1268), - 834: uint16(123), - 835: uint16(123), - 836: uint16(123), - 837: uint16(123), - 838: uint16(122), - 839: uint16(122), - 840: uint16(121), - 841: uint16(121), - 842: uint16(121), - 843: uint16(120), - 844: uint16(117), - 845: uint16(448), - 846: uint16(126), - 847: uint16(127), - 848: uint16(81), - 849: uint16(1217), - 850: uint16(1217), - 851: uint16(1054), - 852: uint16(1057), - 853: uint16(1044), - 854: uint16(1044), - 855: uint16(124), - 856: uint16(124), - 857: uint16(125), - 858: uint16(125), - 859: uint16(125), - 860: uint16(125), - 861: uint16(411), - 862: uint16(384), - 863: uint16(1076), - 864: uint16(1159), - 865: uint16(286), - 866: uint16(286), - 867: uint16(421), - 868: uint16(314), - 869: uint16(280), - 870: uint16(280), - 871: uint16(287), - 872: uint16(287), - 873: uint16(461), - 874: uint16(408), - 875: uint16(407), - 876: uint16(1539), - 877: uint16(1159), - 878: uint16(569), - 879: uint16(572), - 880: uint16(1159), - 881: uint16(1196), - 882: uint16(569), - 883: uint16(409), - 884: uint16(569), - 885: uint16(126), - 886: uint16(127), - 887: uint16(81), - 888: uint16(1217), - 889: uint16(1217), - 890: uint16(1054), - 891: uint16(1057), - 892: uint16(1044), - 893: uint16(1044), - 894: uint16(124), - 895: uint16(124), - 896: uint16(125), - 897: uint16(125), - 898: uint16(125), - 899: uint16(125), - 900: uint16(457), - 901: uint16(1485), - 902: uint16(13), - 903: uint16(13), - 904: uint16(1541), - 905: uint16(123), - 906: uint16(123), - 907: uint16(123), - 908: uint16(123), - 909: uint16(122), - 910: uint16(122), - 911: uint16(121), - 912: uint16(121), - 913: uint16(121), - 914: uint16(120), - 915: uint16(117), - 916: uint16(448), - 917: uint16(202), - 918: uint16(572), - 919: uint16(462), - 920: uint16(1587), - 921: uint16(578), - 922: uint16(2), - 923: uint16(1248), - 924: uint16(843), - 925: uint16(844), - 926: uint16(845), - 927: uint16(1563), - 928: uint16(319), - 929: uint16(409), - 930: uint16(147), - 931: uint16(6), - 932: uint16(411), - 933: uint16(257), - 934: uint16(256), - 935: uint16(255), - 936: uint16(208), - 937: uint16(1330), - 938: uint16(9), - 939: uint16(1196), - 940: uint16(264), - 941: uint16(72), - 942: uint16(72), - 943: uint16(1436), - 944: uint16(123), - 945: uint16(123), - 946: uint16(123), - 947: uint16(123), - 948: uint16(122), - 949: uint16(122), - 950: uint16(121), - 951: uint16(121), - 952: uint16(121), - 953: uint16(120), - 954: uint16(117), - 955: uint16(448), - 956: uint16(126), - 957: uint16(127), - 958: uint16(81), - 959: uint16(1217), - 960: uint16(1217), - 961: uint16(1054), - 962: uint16(1057), - 963: uint16(1044), - 964: uint16(1044), - 965: uint16(124), - 966: uint16(124), - 967: uint16(125), - 968: uint16(125), - 969: uint16(125), - 970: uint16(125), - 971: uint16(572), - 972: uint16(286), - 973: uint16(286), - 974: uint16(572), - 975: uint16(1213), - 976: uint16(411), - 977: uint16(577), - 978: uint16(315), - 979: uint16(1248), - 980: uint16(421), - 981: uint16(371), - 982: uint16(1581), - 983: uint16(356), - 984: uint16(319), - 985: uint16(569), - 986: uint16(147), - 987: uint16(495), - 988: uint16(529), - 989: uint16(1644), - 990: uint16(397), - 991: uint16(935), - 992: uint16(495), - 993: uint16(1330), - 994: uint16(71), - 995: uint16(71), - 996: uint16(934), - 997: uint16(72), - 998: uint16(72), - 999: uint16(242), - 1000: uint16(1328), - 1001: uint16(105), - 1002: uint16(81), - 1003: uint16(1217), - 1004: uint16(1217), - 1005: uint16(1054), - 1006: uint16(1057), - 1007: uint16(1044), - 1008: uint16(1044), - 1009: uint16(124), - 1010: uint16(124), - 1011: uint16(125), - 1012: uint16(125), - 1013: uint16(125), - 1014: uint16(125), - 1015: uint16(123), - 1016: uint16(123), - 1017: uint16(123), - 1018: uint16(123), - 1019: uint16(122), - 1020: uint16(122), - 1021: uint16(121), - 1022: uint16(121), - 1023: uint16(121), - 1024: uint16(120), - 1025: uint16(117), - 1026: uint16(448), - 1027: uint16(1117), - 1028: uint16(286), - 1029: uint16(286), - 1030: uint16(1422), - 1031: uint16(452), - 1032: uint16(1528), - 1033: uint16(1213), - 1034: uint16(443), - 1035: uint16(286), - 1036: uint16(286), - 1037: uint16(1492), - 1038: uint16(1355), - 1039: uint16(313), - 1040: uint16(478), - 1041: uint16(569), - 1042: uint16(1118), - 1043: uint16(454), - 1044: uint16(351), - 1045: uint16(495), - 1046: uint16(354), - 1047: uint16(1266), - 1048: uint16(569), - 1049: uint16(209), - 1050: uint16(572), - 1051: uint16(418), - 1052: uint16(179), - 1053: uint16(572), - 1054: uint16(1031), - 1055: uint16(242), - 1056: uint16(385), - 1057: uint16(1119), - 1058: uint16(523), - 1059: uint16(123), - 1060: uint16(123), - 1061: uint16(123), - 1062: uint16(123), - 1063: uint16(122), - 1064: uint16(122), - 1065: uint16(121), - 1066: uint16(121), - 1067: uint16(121), - 1068: uint16(120), - 1069: uint16(117), - 1070: uint16(448), - 1071: uint16(1020), - 1072: uint16(108), - 1073: uint16(72), - 1074: uint16(72), - 1075: uint16(1019), - 1076: uint16(13), - 1077: uint16(13), - 1078: uint16(915), - 1079: uint16(572), - 1080: uint16(1498), - 1081: uint16(572), - 1082: uint16(286), - 1083: uint16(286), - 1084: uint16(98), - 1085: uint16(530), - 1086: uint16(1537), - 1087: uint16(452), - 1088: uint16(916), - 1089: uint16(1334), - 1090: uint16(1329), - 1091: uint16(203), - 1092: uint16(411), - 1093: uint16(286), - 1094: uint16(286), - 1095: uint16(569), - 1096: uint16(152), - 1097: uint16(211), - 1098: uint16(1498), - 1099: uint16(1500), - 1100: uint16(426), - 1101: uint16(569), - 1102: uint16(56), - 1103: uint16(56), - 1104: uint16(57), - 1105: uint16(57), - 1106: uint16(569), - 1107: uint16(1019), - 1108: uint16(1019), - 1109: uint16(1021), - 1110: uint16(447), - 1111: uint16(572), - 1112: uint16(411), - 1113: uint16(531), - 1114: uint16(12), - 1115: uint16(297), - 1116: uint16(126), - 1117: uint16(127), - 1118: uint16(81), - 1119: uint16(1217), - 1120: uint16(1217), - 1121: uint16(1054), - 1122: uint16(1057), - 1123: uint16(1044), - 1124: uint16(1044), - 1125: uint16(124), - 1126: uint16(124), - 1127: uint16(125), - 1128: uint16(125), - 1129: uint16(125), - 1130: uint16(125), - 1131: uint16(572), - 1132: uint16(411), - 1133: uint16(867), - 1134: uint16(15), - 1135: uint16(15), - 1136: uint16(126), - 1137: uint16(127), - 1138: uint16(81), - 1139: uint16(1217), - 1140: uint16(1217), - 1141: uint16(1054), - 1142: uint16(1057), - 1143: uint16(1044), - 1144: uint16(1044), - 1145: uint16(124), - 1146: uint16(124), - 1147: uint16(125), - 1148: uint16(125), - 1149: uint16(125), - 1150: uint16(125), - 1151: uint16(373), - 1152: uint16(529), - 1153: uint16(264), - 1154: uint16(44), - 1155: uint16(44), - 1156: uint16(126), - 1157: uint16(115), - 1158: uint16(81), - 1159: uint16(1217), - 1160: uint16(1217), - 1161: uint16(1054), - 1162: uint16(1057), - 1163: uint16(1044), - 1164: uint16(1044), - 1165: uint16(124), - 1166: uint16(124), - 1167: uint16(125), - 1168: uint16(125), - 1169: uint16(125), - 1170: uint16(125), - 1171: uint16(1498), - 1172: uint16(478), - 1173: uint16(1271), - 1174: uint16(417), - 1175: uint16(123), - 1176: uint16(123), - 1177: uint16(123), - 1178: uint16(123), - 1179: uint16(122), - 1180: uint16(122), - 1181: uint16(121), - 1182: uint16(121), - 1183: uint16(121), - 1184: uint16(120), - 1185: uint16(117), - 1186: uint16(448), - 1187: uint16(205), - 1188: uint16(1213), - 1189: uint16(495), - 1190: uint16(430), - 1191: uint16(867), - 1192: uint16(468), - 1193: uint16(322), - 1194: uint16(495), - 1195: uint16(123), - 1196: uint16(123), - 1197: uint16(123), - 1198: uint16(123), - 1199: uint16(122), - 1200: uint16(122), - 1201: uint16(121), - 1202: uint16(121), - 1203: uint16(121), - 1204: uint16(120), - 1205: uint16(117), - 1206: uint16(448), - 1207: uint16(572), - 1208: uint16(557), - 1209: uint16(1140), - 1210: uint16(1642), - 1211: uint16(1422), - 1212: uint16(1642), - 1213: uint16(543), - 1214: uint16(572), - 1215: uint16(123), - 1216: uint16(123), - 1217: uint16(123), - 1218: uint16(123), - 1219: uint16(122), - 1220: uint16(122), - 1221: uint16(121), - 1222: uint16(121), - 1223: uint16(121), - 1224: uint16(120), - 1225: uint16(117), - 1226: uint16(448), - 1227: uint16(572), - 1228: uint16(1422), - 1229: uint16(572), - 1230: uint16(13), - 1231: uint16(13), - 1232: uint16(542), - 1233: uint16(323), - 1234: uint16(1325), - 1235: uint16(411), - 1236: uint16(334), - 1237: uint16(58), - 1238: uint16(58), - 1239: uint16(349), - 1240: uint16(1422), - 1241: uint16(1170), - 1242: uint16(326), - 1243: uint16(286), - 1244: uint16(286), - 1245: uint16(549), - 1246: uint16(1213), - 1247: uint16(300), - 1248: uint16(895), - 1249: uint16(530), - 1250: uint16(45), - 1251: uint16(45), - 1252: uint16(59), - 1253: uint16(59), - 1254: uint16(1140), - 1255: uint16(1643), - 1256: uint16(569), - 1257: uint16(1643), - 1258: uint16(565), - 1259: uint16(417), - 1260: uint16(127), - 1261: uint16(81), - 1262: uint16(1217), - 1263: uint16(1217), - 1264: uint16(1054), - 1265: uint16(1057), - 1266: uint16(1044), - 1267: uint16(1044), - 1268: uint16(124), - 1269: uint16(124), - 1270: uint16(125), - 1271: uint16(125), - 1272: uint16(125), - 1273: uint16(125), - 1274: uint16(1367), - 1275: uint16(373), - 1276: uint16(500), - 1277: uint16(290), - 1278: uint16(1193), - 1279: uint16(512), - 1280: uint16(1366), - 1281: uint16(427), - 1282: uint16(394), - 1283: uint16(394), - 1284: uint16(393), - 1285: uint16(275), - 1286: uint16(391), - 1287: uint16(896), - 1288: uint16(1138), - 1289: uint16(852), - 1290: uint16(478), - 1291: uint16(258), - 1292: uint16(1422), - 1293: uint16(1170), - 1294: uint16(463), - 1295: uint16(1159), - 1296: uint16(12), - 1297: uint16(331), - 1298: uint16(428), - 1299: uint16(333), - 1300: uint16(1117), - 1301: uint16(460), - 1302: uint16(236), - 1303: uint16(258), - 1304: uint16(325), - 1305: uint16(460), - 1306: uint16(544), - 1307: uint16(1544), - 1308: uint16(1159), - 1309: uint16(1098), - 1310: uint16(491), - 1311: uint16(1159), - 1312: uint16(324), - 1313: uint16(1098), - 1314: uint16(440), - 1315: uint16(1118), - 1316: uint16(335), - 1317: uint16(516), - 1318: uint16(123), - 1319: uint16(123), - 1320: uint16(123), - 1321: uint16(123), - 1322: uint16(122), - 1323: uint16(122), - 1324: uint16(121), - 1325: uint16(121), - 1326: uint16(121), - 1327: uint16(120), - 1328: uint16(117), - 1329: uint16(448), - 1330: uint16(1119), - 1331: uint16(318), - 1332: uint16(563), - 1333: uint16(1138), - 1334: uint16(572), - 1335: uint16(1193), - 1336: uint16(1194), - 1337: uint16(1193), - 1338: uint16(112), - 1339: uint16(564), - 1340: uint16(201), + 345: uint16(555), + 346: uint16(1149), + 347: uint16(1657), + 348: uint16(1628), + 349: uint16(1657), + 350: uint16(45), + 351: uint16(128), + 352: uint16(125), + 353: uint16(232), + 354: uint16(1204), + 355: uint16(1205), + 356: uint16(1204), + 357: uint16(1250), + 358: uint16(571), + 359: uint16(1169), + 360: uint16(132), + 361: uint16(132), + 362: uint16(132), + 363: uint16(132), + 364: uint16(131), + 365: uint16(131), + 366: uint16(130), + 367: uint16(130), + 368: uint16(130), + 369: uint16(129), + 370: uint16(126), + 371: uint16(450), + 372: uint16(1169), + 373: uint16(287), + 374: uint16(287), + 375: uint16(1169), + 376: uint16(1019), + 377: uint16(576), + 378: uint16(422), + 379: uint16(1019), + 380: uint16(412), + 381: uint16(451), + 382: uint16(1602), + 383: uint16(582), + 384: uint16(2), + 385: uint16(1259), + 386: uint16(573), + 387: uint16(44), + 388: uint16(561), + 389: uint16(95), + 390: uint16(320), + 391: uint16(110), + 392: uint16(153), + 393: uint16(565), + 394: uint16(1204), + 395: uint16(1205), + 396: uint16(1204), + 397: uint16(522), + 398: uint16(522), + 399: uint16(1341), + 400: uint16(81), + 401: uint16(81), + 402: uint16(7), + 403: uint16(44), + 404: uint16(135), + 405: uint16(136), + 406: uint16(90), + 407: uint16(1228), + 408: uint16(1228), + 409: uint16(1063), + 410: uint16(1066), + 411: uint16(1053), + 412: uint16(1053), + 413: uint16(133), + 414: uint16(133), + 415: uint16(134), + 416: uint16(134), + 417: uint16(134), + 418: uint16(134), + 419: uint16(295), + 420: uint16(1149), + 421: uint16(1658), + 422: uint16(1040), + 423: uint16(1658), + 424: uint16(1204), + 425: uint16(1147), + 426: uint16(319), + 427: uint16(567), + 428: uint16(119), + 429: uint16(119), + 430: uint16(343), + 431: uint16(466), + 432: uint16(331), + 433: uint16(343), + 434: uint16(287), + 435: uint16(287), + 436: uint16(120), + 437: uint16(556), + 438: uint16(451), + 439: uint16(577), + 440: uint16(451), + 441: uint16(1169), + 442: uint16(1169), + 443: uint16(1028), + 444: uint16(319), + 445: uint16(567), + 446: uint16(438), + 447: uint16(573), + 448: uint16(210), + 449: uint16(561), + 450: uint16(1339), + 451: uint16(1451), + 452: uint16(546), + 453: uint16(531), + 454: uint16(1169), + 455: uint16(1169), + 456: uint16(1598), + 457: uint16(1169), + 458: uint16(1169), + 459: uint16(416), + 460: uint16(319), + 461: uint16(567), + 462: uint16(243), + 463: uint16(132), + 464: uint16(132), + 465: uint16(132), + 466: uint16(132), + 467: uint16(131), + 468: uint16(131), + 469: uint16(130), + 470: uint16(130), + 471: uint16(130), + 472: uint16(129), + 473: uint16(126), + 474: uint16(450), + 475: uint16(1028), + 476: uint16(1028), + 477: uint16(1030), + 478: uint16(1031), + 479: uint16(35), + 480: uint16(44), + 481: uint16(1204), + 482: uint16(1205), + 483: uint16(1204), + 484: uint16(472), + 485: uint16(287), + 486: uint16(287), + 487: uint16(1328), + 488: uint16(412), + 489: uint16(1307), + 490: uint16(372), + 491: uint16(1595), + 492: uint16(359), + 493: uint16(225), + 494: uint16(454), + 495: uint16(1204), + 496: uint16(195), + 497: uint16(1328), + 498: uint16(573), + 499: uint16(1147), + 500: uint16(561), + 501: uint16(1333), + 502: uint16(1333), + 503: uint16(274), + 504: uint16(576), + 505: uint16(1188), + 506: uint16(576), + 507: uint16(340), + 508: uint16(46), + 509: uint16(196), + 510: uint16(537), + 511: uint16(217), + 512: uint16(135), + 513: uint16(136), + 514: uint16(90), + 515: uint16(1228), + 516: uint16(1228), + 517: uint16(1063), + 518: uint16(1066), + 519: uint16(1053), + 520: uint16(1053), + 521: uint16(133), + 522: uint16(133), + 523: uint16(134), + 524: uint16(134), + 525: uint16(134), + 526: uint16(134), + 527: uint16(19), + 528: uint16(19), + 529: uint16(19), + 530: uint16(19), + 531: uint16(412), + 532: uint16(581), + 533: uint16(1204), + 534: uint16(1259), + 535: uint16(511), + 536: uint16(1204), + 537: uint16(319), + 538: uint16(567), + 539: uint16(320), + 540: uint16(944), + 541: uint16(153), + 542: uint16(425), + 543: uint16(491), + 544: uint16(430), + 545: uint16(943), + 546: uint16(1204), + 547: uint16(488), + 548: uint16(1341), + 549: uint16(1450), + 550: uint16(532), + 551: uint16(1277), + 552: uint16(1204), + 553: uint16(1205), + 554: uint16(1204), + 555: uint16(135), + 556: uint16(136), + 557: uint16(90), + 558: uint16(1228), + 559: uint16(1228), + 560: uint16(1063), + 561: uint16(1066), + 562: uint16(1053), + 563: uint16(1053), + 564: uint16(133), + 565: uint16(133), + 566: uint16(134), + 567: uint16(134), + 568: uint16(134), + 569: uint16(134), + 570: uint16(575), + 571: uint16(132), + 572: uint16(132), + 573: uint16(132), + 574: uint16(132), + 575: uint16(131), + 576: uint16(131), + 577: uint16(130), + 578: uint16(130), + 579: uint16(130), + 580: uint16(129), + 581: uint16(126), + 582: uint16(450), + 583: uint16(287), + 584: uint16(287), + 585: uint16(528), + 586: uint16(287), + 587: uint16(287), + 588: uint16(372), + 589: uint16(1595), + 590: uint16(1204), + 591: uint16(1205), + 592: uint16(1204), + 593: uint16(1204), + 594: uint16(1205), + 595: uint16(1204), + 596: uint16(573), + 597: uint16(486), + 598: uint16(561), + 599: uint16(573), + 600: uint16(889), + 601: uint16(561), + 602: uint16(412), + 603: uint16(1204), + 604: uint16(1205), + 605: uint16(1204), + 606: uint16(886), + 607: uint16(40), + 608: uint16(22), + 609: uint16(22), + 610: uint16(220), + 611: uint16(243), + 612: uint16(525), + 613: uint16(1449), + 614: uint16(132), + 615: uint16(132), + 616: uint16(132), + 617: uint16(132), + 618: uint16(131), + 619: uint16(131), + 620: uint16(130), + 621: uint16(130), + 622: uint16(130), + 623: uint16(129), + 624: uint16(126), + 625: uint16(450), + 626: uint16(135), + 627: uint16(136), + 628: uint16(90), + 629: uint16(1228), + 630: uint16(1228), + 631: uint16(1063), + 632: uint16(1066), + 633: uint16(1053), + 634: uint16(1053), + 635: uint16(133), + 636: uint16(133), + 637: uint16(134), + 638: uint16(134), + 639: uint16(134), + 640: uint16(134), + 641: uint16(412), + 642: uint16(180), + 643: uint16(454), + 644: uint16(1204), + 645: uint16(879), + 646: uint16(255), + 647: uint16(287), + 648: uint16(287), + 649: uint16(510), + 650: uint16(507), + 651: uint16(506), + 652: uint16(372), + 653: uint16(1595), + 654: uint16(1568), + 655: uint16(1331), + 656: uint16(1331), + 657: uint16(576), + 658: uint16(889), + 659: uint16(505), + 660: uint16(573), + 661: uint16(44), + 662: uint16(561), + 663: uint16(559), + 664: uint16(1207), + 665: uint16(135), + 666: uint16(136), + 667: uint16(90), + 668: uint16(1228), + 669: uint16(1228), + 670: uint16(1063), + 671: uint16(1066), + 672: uint16(1053), + 673: uint16(1053), + 674: uint16(133), + 675: uint16(133), + 676: uint16(134), + 677: uint16(134), + 678: uint16(134), + 679: uint16(134), + 680: uint16(81), + 681: uint16(81), + 682: uint16(422), + 683: uint16(576), + 684: uint16(377), + 685: uint16(132), + 686: uint16(132), + 687: uint16(132), + 688: uint16(132), + 689: uint16(131), + 690: uint16(131), + 691: uint16(130), + 692: uint16(130), + 693: uint16(130), + 694: uint16(129), + 695: uint16(126), + 696: uint16(450), + 697: uint16(297), + 698: uint16(287), + 699: uint16(287), + 700: uint16(460), + 701: uint16(1204), + 702: uint16(1205), + 703: uint16(1204), + 704: uint16(1204), + 705: uint16(534), + 706: uint16(19), + 707: uint16(19), + 708: uint16(448), + 709: uint16(448), + 710: uint16(448), + 711: uint16(573), + 712: uint16(412), + 713: uint16(561), + 714: uint16(230), + 715: uint16(436), + 716: uint16(1187), + 717: uint16(535), + 718: uint16(319), + 719: uint16(567), + 720: uint16(363), + 721: uint16(432), + 722: uint16(1207), + 723: uint16(1435), + 724: uint16(132), + 725: uint16(132), + 726: uint16(132), + 727: uint16(132), + 728: uint16(131), + 729: uint16(131), + 730: uint16(130), + 731: uint16(130), + 732: uint16(130), + 733: uint16(129), + 734: uint16(126), + 735: uint16(450), + 736: uint16(135), + 737: uint16(136), + 738: uint16(90), + 739: uint16(1228), + 740: uint16(1228), + 741: uint16(1063), + 742: uint16(1066), + 743: uint16(1053), + 744: uint16(1053), + 745: uint16(133), + 746: uint16(133), + 747: uint16(134), + 748: uint16(134), + 749: uint16(134), + 750: uint16(134), + 751: uint16(412), + 752: uint16(211), + 753: uint16(949), + 754: uint16(1169), + 755: uint16(1041), + 756: uint16(1110), + 757: uint16(1110), + 758: uint16(494), + 759: uint16(547), + 760: uint16(547), + 761: uint16(1204), + 762: uint16(1205), + 763: uint16(1204), + 764: uint16(7), + 765: uint16(539), + 766: uint16(1570), + 767: uint16(1169), + 768: uint16(376), + 769: uint16(576), + 770: uint16(1169), + 771: uint16(5), + 772: uint16(1204), + 773: uint16(486), + 774: uint16(3), + 775: uint16(135), + 776: uint16(136), + 777: uint16(90), + 778: uint16(1228), + 779: uint16(1228), + 780: uint16(1063), + 781: uint16(1066), + 782: uint16(1053), + 783: uint16(1053), + 784: uint16(133), + 785: uint16(133), + 786: uint16(134), + 787: uint16(134), + 788: uint16(134), + 789: uint16(134), + 790: uint16(576), + 791: uint16(513), + 792: uint16(19), + 793: uint16(19), + 794: uint16(427), + 795: uint16(132), + 796: uint16(132), + 797: uint16(132), + 798: uint16(132), + 799: uint16(131), + 800: uint16(131), + 801: uint16(130), + 802: uint16(130), + 803: uint16(130), + 804: uint16(129), + 805: uint16(126), + 806: uint16(450), + 807: uint16(305), + 808: uint16(1204), + 809: uint16(433), + 810: uint16(225), + 811: uint16(1204), + 812: uint16(385), + 813: uint16(19), + 814: uint16(19), + 815: uint16(273), + 816: uint16(290), + 817: uint16(371), + 818: uint16(516), + 819: uint16(366), + 820: uint16(515), + 821: uint16(260), + 822: uint16(412), + 823: uint16(538), + 824: uint16(1568), + 825: uint16(549), + 826: uint16(1024), + 827: uint16(362), + 828: uint16(437), + 829: uint16(1204), + 830: uint16(1205), + 831: uint16(1204), + 832: uint16(902), + 833: uint16(1552), + 834: uint16(132), + 835: uint16(132), + 836: uint16(132), + 837: uint16(132), + 838: uint16(131), + 839: uint16(131), + 840: uint16(130), + 841: uint16(130), + 842: uint16(130), + 843: uint16(129), + 844: uint16(126), + 845: uint16(450), + 846: uint16(135), + 847: uint16(136), + 848: uint16(90), + 849: uint16(1228), + 850: uint16(1228), + 851: uint16(1063), + 852: uint16(1066), + 853: uint16(1053), + 854: uint16(1053), + 855: uint16(133), + 856: uint16(133), + 857: uint16(134), + 858: uint16(134), + 859: uint16(134), + 860: uint16(134), + 861: uint16(412), + 862: uint16(1435), + 863: uint16(514), + 864: uint16(1281), + 865: uint16(1204), + 866: uint16(1205), + 867: uint16(1204), + 868: uint16(1204), + 869: uint16(1205), + 870: uint16(1204), + 871: uint16(903), + 872: uint16(48), + 873: uint16(342), + 874: uint16(1568), + 875: uint16(1568), + 876: uint16(1279), + 877: uint16(1627), + 878: uint16(1568), + 879: uint16(911), + 880: uint16(576), + 881: uint16(129), + 882: uint16(126), + 883: uint16(450), + 884: uint16(110), + 885: uint16(135), + 886: uint16(136), + 887: uint16(90), + 888: uint16(1228), + 889: uint16(1228), + 890: uint16(1063), + 891: uint16(1066), + 892: uint16(1053), + 893: uint16(1053), + 894: uint16(133), + 895: uint16(133), + 896: uint16(134), + 897: uint16(134), + 898: uint16(134), + 899: uint16(134), + 900: uint16(265), + 901: uint16(576), + 902: uint16(459), + 903: uint16(19), + 904: uint16(19), + 905: uint16(132), + 906: uint16(132), + 907: uint16(132), + 908: uint16(132), + 909: uint16(131), + 910: uint16(131), + 911: uint16(130), + 912: uint16(130), + 913: uint16(130), + 914: uint16(129), + 915: uint16(126), + 916: uint16(450), + 917: uint16(1345), + 918: uint16(204), + 919: uint16(576), + 920: uint16(459), + 921: uint16(458), + 922: uint16(50), + 923: uint16(47), + 924: uint16(19), + 925: uint16(19), + 926: uint16(49), + 927: uint16(434), + 928: uint16(1105), + 929: uint16(573), + 930: uint16(497), + 931: uint16(561), + 932: uint16(412), + 933: uint16(428), + 934: uint16(108), + 935: uint16(1224), + 936: uint16(1569), + 937: uint16(1554), + 938: uint16(376), + 939: uint16(205), + 940: uint16(550), + 941: uint16(550), + 942: uint16(81), + 943: uint16(81), + 944: uint16(132), + 945: uint16(132), + 946: uint16(132), + 947: uint16(132), + 948: uint16(131), + 949: uint16(131), + 950: uint16(130), + 951: uint16(130), + 952: uint16(130), + 953: uint16(129), + 954: uint16(126), + 955: uint16(450), + 956: uint16(135), + 957: uint16(136), + 958: uint16(90), + 959: uint16(1228), + 960: uint16(1228), + 961: uint16(1063), + 962: uint16(1066), + 963: uint16(1053), + 964: uint16(1053), + 965: uint16(133), + 966: uint16(133), + 967: uint16(134), + 968: uint16(134), + 969: uint16(134), + 970: uint16(134), + 971: uint16(480), + 972: uint16(576), + 973: uint16(1204), + 974: uint16(576), + 975: uint16(1541), + 976: uint16(412), + 977: uint16(1435), + 978: uint16(969), + 979: uint16(315), + 980: uint16(1659), + 981: uint16(398), + 982: uint16(284), + 983: uint16(497), + 984: uint16(969), + 985: uint16(893), + 986: uint16(1569), + 987: uint16(1569), + 988: uint16(376), + 989: uint16(376), + 990: uint16(1569), + 991: uint16(461), + 992: uint16(376), + 993: uint16(1224), + 994: uint16(459), + 995: uint16(80), + 996: uint16(80), + 997: uint16(81), + 998: uint16(81), + 999: uint16(497), + 1000: uint16(374), + 1001: uint16(114), + 1002: uint16(90), + 1003: uint16(1228), + 1004: uint16(1228), + 1005: uint16(1063), + 1006: uint16(1066), + 1007: uint16(1053), + 1008: uint16(1053), + 1009: uint16(133), + 1010: uint16(133), + 1011: uint16(134), + 1012: uint16(134), + 1013: uint16(134), + 1014: uint16(134), + 1015: uint16(132), + 1016: uint16(132), + 1017: uint16(132), + 1018: uint16(132), + 1019: uint16(131), + 1020: uint16(131), + 1021: uint16(130), + 1022: uint16(130), + 1023: uint16(130), + 1024: uint16(129), + 1025: uint16(126), + 1026: uint16(450), + 1027: uint16(1204), + 1028: uint16(1505), + 1029: uint16(576), + 1030: uint16(1204), + 1031: uint16(1205), + 1032: uint16(1204), + 1033: uint16(1366), + 1034: uint16(316), + 1035: uint16(486), + 1036: uint16(281), + 1037: uint16(281), + 1038: uint16(497), + 1039: uint16(431), + 1040: uint16(557), + 1041: uint16(288), + 1042: uint16(288), + 1043: uint16(402), + 1044: uint16(1340), + 1045: uint16(471), + 1046: uint16(345), + 1047: uint16(298), + 1048: uint16(429), + 1049: uint16(573), + 1050: uint16(576), + 1051: uint16(561), + 1052: uint16(81), + 1053: uint16(81), + 1054: uint16(573), + 1055: uint16(374), + 1056: uint16(561), + 1057: uint16(971), + 1058: uint16(386), + 1059: uint16(132), + 1060: uint16(132), + 1061: uint16(132), + 1062: uint16(132), + 1063: uint16(131), + 1064: uint16(131), + 1065: uint16(130), + 1066: uint16(130), + 1067: uint16(130), + 1068: uint16(129), + 1069: uint16(126), + 1070: uint16(450), + 1071: uint16(231), + 1072: uint16(117), + 1073: uint16(81), + 1074: uint16(81), + 1075: uint16(287), + 1076: uint16(287), + 1077: uint16(231), + 1078: uint16(287), + 1079: uint16(287), + 1080: uint16(576), + 1081: uint16(1511), + 1082: uint16(576), + 1083: uint16(1336), + 1084: uint16(1204), + 1085: uint16(1205), + 1086: uint16(1204), + 1087: uint16(139), + 1088: uint16(573), + 1089: uint16(556), + 1090: uint16(561), + 1091: uint16(573), + 1092: uint16(412), + 1093: uint16(561), + 1094: uint16(441), + 1095: uint16(456), + 1096: uint16(969), + 1097: uint16(213), + 1098: uint16(558), + 1099: uint16(1511), + 1100: uint16(1513), + 1101: uint16(1550), + 1102: uint16(969), + 1103: uint16(143), + 1104: uint16(143), + 1105: uint16(145), + 1106: uint16(145), + 1107: uint16(1368), + 1108: uint16(314), + 1109: uint16(478), + 1110: uint16(444), + 1111: uint16(970), + 1112: uint16(412), + 1113: uint16(850), + 1114: uint16(851), + 1115: uint16(852), + 1116: uint16(135), + 1117: uint16(136), + 1118: uint16(90), + 1119: uint16(1228), + 1120: uint16(1228), + 1121: uint16(1063), + 1122: uint16(1066), + 1123: uint16(1053), + 1124: uint16(1053), + 1125: uint16(133), + 1126: uint16(133), + 1127: uint16(134), + 1128: uint16(134), + 1129: uint16(134), + 1130: uint16(134), + 1131: uint16(357), + 1132: uint16(412), + 1133: uint16(397), + 1134: uint16(1148), + 1135: uint16(304), + 1136: uint16(135), + 1137: uint16(136), + 1138: uint16(90), + 1139: uint16(1228), + 1140: uint16(1228), + 1141: uint16(1063), + 1142: uint16(1066), + 1143: uint16(1053), + 1144: uint16(1053), + 1145: uint16(133), + 1146: uint16(133), + 1147: uint16(134), + 1148: uint16(134), + 1149: uint16(134), + 1150: uint16(134), + 1151: uint16(1575), + 1152: uint16(323), + 1153: uint16(6), + 1154: uint16(862), + 1155: uint16(7), + 1156: uint16(135), + 1157: uint16(124), + 1158: uint16(90), + 1159: uint16(1228), + 1160: uint16(1228), + 1161: uint16(1063), + 1162: uint16(1066), + 1163: uint16(1053), + 1164: uint16(1053), + 1165: uint16(133), + 1166: uint16(133), + 1167: uint16(134), + 1168: uint16(134), + 1169: uint16(134), + 1170: uint16(134), + 1171: uint16(409), + 1172: uint16(408), + 1173: uint16(1511), + 1174: uint16(212), + 1175: uint16(132), + 1176: uint16(132), + 1177: uint16(132), + 1178: uint16(132), + 1179: uint16(131), + 1180: uint16(131), + 1181: uint16(130), + 1182: uint16(130), + 1183: uint16(130), + 1184: uint16(129), + 1185: uint16(126), + 1186: uint16(450), + 1187: uint16(411), + 1188: uint16(118), + 1189: uint16(1204), + 1190: uint16(116), + 1191: uint16(10), + 1192: uint16(352), + 1193: uint16(265), + 1194: uint16(355), + 1195: uint16(132), + 1196: uint16(132), + 1197: uint16(132), + 1198: uint16(132), + 1199: uint16(131), + 1200: uint16(131), + 1201: uint16(130), + 1202: uint16(130), + 1203: uint16(130), + 1204: uint16(129), + 1205: uint16(126), + 1206: uint16(450), + 1207: uint16(576), + 1208: uint16(324), + 1209: uint16(306), + 1210: uint16(576), + 1211: uint16(306), + 1212: uint16(1250), + 1213: uint16(469), + 1214: uint16(158), + 1215: uint16(132), + 1216: uint16(132), + 1217: uint16(132), + 1218: uint16(132), + 1219: uint16(131), + 1220: uint16(131), + 1221: uint16(130), + 1222: uint16(130), + 1223: uint16(130), + 1224: uint16(129), + 1225: uint16(126), + 1226: uint16(450), + 1227: uint16(207), + 1228: uint16(1224), + 1229: uint16(1126), + 1230: uint16(65), + 1231: uint16(65), + 1232: uint16(470), + 1233: uint16(66), + 1234: uint16(66), + 1235: uint16(412), + 1236: uint16(447), + 1237: uint16(446), + 1238: uint16(882), + 1239: uint16(531), + 1240: uint16(335), + 1241: uint16(258), + 1242: uint16(257), + 1243: uint16(256), + 1244: uint16(1127), + 1245: uint16(1233), + 1246: uint16(1204), + 1247: uint16(1205), + 1248: uint16(1204), + 1249: uint16(327), + 1250: uint16(1235), + 1251: uint16(874), + 1252: uint16(159), + 1253: uint16(576), + 1254: uint16(16), + 1255: uint16(480), + 1256: uint16(1085), + 1257: uint16(1040), + 1258: uint16(1234), + 1259: uint16(1128), + 1260: uint16(136), + 1261: uint16(90), + 1262: uint16(1228), + 1263: uint16(1228), + 1264: uint16(1063), + 1265: uint16(1066), + 1266: uint16(1053), + 1267: uint16(1053), + 1268: uint16(133), + 1269: uint16(133), + 1270: uint16(134), + 1271: uint16(134), + 1272: uint16(134), + 1273: uint16(134), + 1274: uint16(1029), + 1275: uint16(576), + 1276: uint16(81), + 1277: uint16(81), + 1278: uint16(1028), + 1279: uint16(1040), + 1280: uint16(922), + 1281: uint16(576), + 1282: uint16(463), + 1283: uint16(1236), + 1284: uint16(576), + 1285: uint16(1236), + 1286: uint16(1224), + 1287: uint16(502), + 1288: uint16(107), + 1289: uint16(1435), + 1290: uint16(923), + 1291: uint16(6), + 1292: uint16(576), + 1293: uint16(410), + 1294: uint16(1498), + 1295: uint16(882), + 1296: uint16(1029), + 1297: uint16(480), + 1298: uint16(21), + 1299: uint16(21), + 1300: uint16(1028), + 1301: uint16(332), + 1302: uint16(1380), + 1303: uint16(334), + 1304: uint16(53), + 1305: uint16(53), + 1306: uint16(497), + 1307: uint16(81), + 1308: uint16(81), + 1309: uint16(874), + 1310: uint16(1028), + 1311: uint16(1028), + 1312: uint16(1030), + 1313: uint16(445), + 1314: uint16(259), + 1315: uint16(19), + 1316: uint16(19), + 1317: uint16(533), + 1318: uint16(132), + 1319: uint16(132), + 1320: uint16(132), + 1321: uint16(132), + 1322: uint16(131), + 1323: uint16(131), + 1324: uint16(130), + 1325: uint16(130), + 1326: uint16(130), + 1327: uint16(129), + 1328: uint16(126), + 1329: uint16(450), + 1330: uint16(551), + 1331: uint16(301), + 1332: uint16(1028), + 1333: uint16(1028), + 1334: uint16(1030), + 1335: uint16(107), + 1336: uint16(532), + 1337: uint16(545), + 1338: uint16(121), + 1339: uint16(568), + 1340: uint16(1188), 1341: uint16(4), - 1342: uint16(238), - 1343: uint16(433), - 1344: uint16(935), - 1345: uint16(490), - 1346: uint16(285), - 1347: uint16(228), - 1348: uint16(1517), - 1349: uint16(934), - 1350: uint16(170), - 1351: uint16(560), - 1352: uint16(572), - 1353: uint16(142), - 1354: uint16(1516), - 1355: uint16(567), - 1356: uint16(572), - 1357: uint16(60), - 1358: uint16(60), - 1359: uint16(572), - 1360: uint16(416), - 1361: uint16(572), - 1362: uint16(441), - 1363: uint16(572), - 1364: uint16(535), - 1365: uint16(302), - 1366: uint16(875), - 1367: uint16(8), - 1368: uint16(487), - 1369: uint16(572), - 1370: uint16(237), - 1371: uint16(572), - 1372: uint16(416), - 1373: uint16(572), - 1374: uint16(485), - 1375: uint16(61), - 1376: uint16(61), - 1377: uint16(572), - 1378: uint16(449), - 1379: uint16(62), - 1380: uint16(62), - 1381: uint16(332), - 1382: uint16(63), - 1383: uint16(63), - 1384: uint16(46), - 1385: uint16(46), - 1386: uint16(47), - 1387: uint16(47), - 1388: uint16(361), - 1389: uint16(572), - 1390: uint16(561), - 1391: uint16(572), - 1392: uint16(48), - 1393: uint16(48), - 1394: uint16(50), - 1395: uint16(50), - 1396: uint16(51), - 1397: uint16(51), - 1398: uint16(572), - 1399: uint16(295), - 1400: uint16(64), - 1401: uint16(64), - 1402: uint16(482), - 1403: uint16(295), - 1404: uint16(539), - 1405: uint16(412), - 1406: uint16(471), - 1407: uint16(1031), - 1408: uint16(572), - 1409: uint16(538), - 1410: uint16(318), - 1411: uint16(563), - 1412: uint16(65), - 1413: uint16(65), - 1414: uint16(66), - 1415: uint16(66), - 1416: uint16(409), - 1417: uint16(475), - 1418: uint16(572), - 1419: uint16(1031), - 1420: uint16(572), - 1421: uint16(14), - 1422: uint16(14), - 1423: uint16(875), - 1424: uint16(1020), - 1425: uint16(110), - 1426: uint16(110), - 1427: uint16(409), - 1428: uint16(1019), - 1429: uint16(572), - 1430: uint16(474), - 1431: uint16(67), - 1432: uint16(67), - 1433: uint16(111), - 1434: uint16(455), - 1435: uint16(449), - 1436: uint16(573), - 1437: uint16(449), - 1438: uint16(98), - 1439: uint16(317), - 1440: uint16(1019), - 1441: uint16(132), - 1442: uint16(132), - 1443: uint16(133), - 1444: uint16(133), - 1445: uint16(572), - 1446: uint16(1561), - 1447: uint16(572), - 1448: uint16(974), - 1449: uint16(409), - 1450: uint16(6), - 1451: uint16(1562), - 1452: uint16(68), - 1453: uint16(68), - 1454: uint16(1560), - 1455: uint16(6), - 1456: uint16(975), - 1457: uint16(572), - 1458: uint16(6), - 1459: uint16(1559), - 1460: uint16(1019), - 1461: uint16(1019), - 1462: uint16(1021), - 1463: uint16(6), - 1464: uint16(346), - 1465: uint16(218), - 1466: uint16(101), - 1467: uint16(531), - 1468: uint16(53), - 1469: uint16(53), - 1470: uint16(69), - 1471: uint16(69), - 1472: uint16(1019), - 1473: uint16(1019), - 1474: uint16(1021), - 1475: uint16(1022), - 1476: uint16(28), - 1477: uint16(1586), - 1478: uint16(1181), - 1479: uint16(451), - 1480: uint16(70), - 1481: uint16(70), - 1482: uint16(290), - 1483: uint16(87), - 1484: uint16(215), - 1485: uint16(31), - 1486: uint16(1363), - 1487: uint16(394), - 1488: uint16(394), - 1489: uint16(393), - 1490: uint16(275), - 1491: uint16(391), - 1492: uint16(350), - 1493: uint16(109), - 1494: uint16(852), - 1495: uint16(107), - 1496: uint16(572), - 1497: uint16(112), - 1498: uint16(564), - 1499: uint16(483), - 1500: uint16(4), - 1501: uint16(1212), - 1502: uint16(572), - 1503: uint16(239), - 1504: uint16(153), - 1505: uint16(572), - 1506: uint16(39), - 1507: uint16(236), - 1508: uint16(1299), - 1509: uint16(325), - 1510: uint16(112), - 1511: uint16(564), - 1512: uint16(1298), - 1513: uint16(4), - 1514: uint16(567), - 1515: uint16(572), - 1516: uint16(32), - 1517: uint16(324), - 1518: uint16(572), - 1519: uint16(54), - 1520: uint16(54), - 1521: uint16(572), - 1522: uint16(1135), - 1523: uint16(353), - 1524: uint16(398), - 1525: uint16(165), - 1526: uint16(165), - 1527: uint16(567), - 1528: uint16(166), - 1529: uint16(166), - 1530: uint16(572), - 1531: uint16(291), - 1532: uint16(355), - 1533: uint16(572), - 1534: uint16(17), - 1535: uint16(357), - 1536: uint16(572), - 1537: uint16(449), - 1538: uint16(77), - 1539: uint16(77), - 1540: uint16(1313), - 1541: uint16(55), - 1542: uint16(55), - 1543: uint16(1297), - 1544: uint16(73), - 1545: uint16(73), - 1546: uint16(572), - 1547: uint16(238), - 1548: uint16(470), - 1549: uint16(561), - 1550: uint16(449), - 1551: uint16(472), - 1552: uint16(364), - 1553: uint16(135), - 1554: uint16(135), - 1555: uint16(170), - 1556: uint16(74), - 1557: uint16(74), - 1558: uint16(142), - 1559: uint16(163), - 1560: uint16(163), - 1561: uint16(374), - 1562: uint16(561), - 1563: uint16(539), - 1564: uint16(572), - 1565: uint16(321), - 1566: uint16(572), - 1567: uint16(886), - 1568: uint16(540), - 1569: uint16(137), - 1570: uint16(137), - 1571: uint16(339), - 1572: uint16(1353), - 1573: uint16(422), - 1574: uint16(298), - 1575: uint16(237), - 1576: uint16(539), - 1577: uint16(572), - 1578: uint16(1031), - 1579: uint16(572), - 1580: uint16(340), - 1581: uint16(538), - 1582: uint16(101), - 1583: uint16(369), - 1584: uint16(110), - 1585: uint16(110), - 1586: uint16(162), - 1587: uint16(131), - 1588: uint16(131), - 1589: uint16(164), - 1590: uint16(164), - 1591: uint16(1031), - 1592: uint16(111), - 1593: uint16(368), - 1594: uint16(449), - 1595: uint16(573), - 1596: uint16(449), + 1342: uint16(1126), + 1343: uint16(1576), + 1344: uint16(449), + 1345: uint16(576), + 1346: uint16(462), + 1347: uint16(7), + 1348: uint16(1282), + 1349: uint16(418), + 1350: uint16(462), + 1351: uint16(350), + 1352: uint16(1435), + 1353: uint16(576), + 1354: uint16(518), + 1355: uint16(571), + 1356: uint16(544), + 1357: uint16(1127), + 1358: uint16(121), + 1359: uint16(568), + 1360: uint16(442), + 1361: uint16(4), + 1362: uint16(1188), + 1363: uint16(464), + 1364: uint16(533), + 1365: uint16(1180), + 1366: uint16(1223), + 1367: uint16(9), + 1368: uint16(67), + 1369: uint16(67), + 1370: uint16(487), + 1371: uint16(576), + 1372: uint16(1128), + 1373: uint16(303), + 1374: uint16(410), + 1375: uint16(571), + 1376: uint16(54), + 1377: uint16(54), + 1378: uint16(451), + 1379: uint16(576), + 1380: uint16(123), + 1381: uint16(944), + 1382: uint16(576), + 1383: uint16(417), + 1384: uint16(576), + 1385: uint16(333), + 1386: uint16(943), + 1387: uint16(1379), + 1388: uint16(576), + 1389: uint16(236), + 1390: uint16(565), + 1391: uint16(576), + 1392: uint16(1574), + 1393: uint16(564), + 1394: uint16(68), + 1395: uint16(68), + 1396: uint16(7), + 1397: uint16(576), + 1398: uint16(451), + 1399: uint16(362), + 1400: uint16(419), + 1401: uint16(182), + 1402: uint16(69), + 1403: uint16(69), + 1404: uint16(541), + 1405: uint16(70), + 1406: uint16(70), + 1407: uint16(71), + 1408: uint16(71), + 1409: uint16(540), + 1410: uint16(565), + 1411: uint16(72), + 1412: uint16(72), + 1413: uint16(484), + 1414: uint16(55), + 1415: uint16(55), + 1416: uint16(473), + 1417: uint16(1180), + 1418: uint16(296), + 1419: uint16(1040), + 1420: uint16(56), + 1421: uint16(56), + 1422: uint16(296), + 1423: uint16(493), + 1424: uint16(541), + 1425: uint16(119), + 1426: uint16(119), + 1427: uint16(410), + 1428: uint16(1573), + 1429: uint16(542), + 1430: uint16(569), + 1431: uint16(418), + 1432: uint16(7), + 1433: uint16(120), + 1434: uint16(1244), + 1435: uint16(451), + 1436: uint16(577), + 1437: uint16(451), + 1438: uint16(465), + 1439: uint16(1040), + 1440: uint16(1028), + 1441: uint16(576), + 1442: uint16(1557), + 1443: uint16(552), + 1444: uint16(476), + 1445: uint16(119), + 1446: uint16(119), + 1447: uint16(527), + 1448: uint16(259), + 1449: uint16(121), + 1450: uint16(568), + 1451: uint16(240), + 1452: uint16(4), + 1453: uint16(120), + 1454: uint16(576), + 1455: uint16(451), + 1456: uint16(577), + 1457: uint16(451), + 1458: uint16(576), + 1459: uint16(477), + 1460: uint16(1028), + 1461: uint16(576), + 1462: uint16(156), + 1463: uint16(576), + 1464: uint16(57), + 1465: uint16(57), + 1466: uint16(571), + 1467: uint16(576), + 1468: uint16(286), + 1469: uint16(229), + 1470: uint16(410), + 1471: uint16(336), + 1472: uint16(1028), + 1473: uint16(1028), + 1474: uint16(1030), + 1475: uint16(1031), + 1476: uint16(35), + 1477: uint16(59), + 1478: uint16(59), + 1479: uint16(219), + 1480: uint16(983), + 1481: uint16(60), + 1482: uint16(60), + 1483: uint16(220), + 1484: uint16(73), + 1485: uint16(73), + 1486: uint16(74), + 1487: uint16(74), + 1488: uint16(984), + 1489: uint16(451), + 1490: uint16(75), + 1491: uint16(75), + 1492: uint16(1028), + 1493: uint16(1028), + 1494: uint16(1030), + 1495: uint16(1031), + 1496: uint16(35), + 1497: uint16(96), + 1498: uint16(216), + 1499: uint16(291), + 1500: uint16(552), + 1501: uint16(565), + 1502: uint16(1188), + 1503: uint16(318), + 1504: uint16(395), + 1505: uint16(395), + 1506: uint16(394), + 1507: uint16(276), + 1508: uint16(392), + 1509: uint16(576), + 1510: uint16(485), + 1511: uint16(859), + 1512: uint16(474), + 1513: uint16(1311), + 1514: uint16(410), + 1515: uint16(541), + 1516: uint16(576), + 1517: uint16(417), + 1518: uint16(1530), + 1519: uint16(1144), + 1520: uint16(540), + 1521: uint16(399), + 1522: uint16(1188), + 1523: uint16(292), + 1524: uint16(237), + 1525: uint16(1153), + 1526: uint16(326), + 1527: uint16(38), + 1528: uint16(23), + 1529: uint16(576), + 1530: uint16(1040), + 1531: uint16(576), + 1532: uint16(20), + 1533: uint16(20), + 1534: uint16(325), + 1535: uint16(299), + 1536: uint16(119), + 1537: uint16(119), + 1538: uint16(164), + 1539: uint16(76), + 1540: uint16(76), + 1541: uint16(1529), + 1542: uint16(121), + 1543: uint16(568), + 1544: uint16(120), + 1545: uint16(4), + 1546: uint16(451), + 1547: uint16(577), + 1548: uint16(451), + 1549: uint16(203), + 1550: uint16(576), + 1551: uint16(1028), + 1552: uint16(141), + 1553: uint16(141), + 1554: uint16(142), + 1555: uint16(142), + 1556: uint16(576), + 1557: uint16(322), + 1558: uint16(39), + 1559: uint16(571), + 1560: uint16(341), + 1561: uint16(1021), + 1562: uint16(110), + 1563: uint16(264), + 1564: uint16(239), + 1565: uint16(901), + 1566: uint16(900), + 1567: uint16(423), + 1568: uint16(242), + 1569: uint16(908), + 1570: uint16(909), + 1571: uint16(370), + 1572: uint16(173), + 1573: uint16(77), + 1574: uint16(77), + 1575: uint16(43), + 1576: uint16(479), + 1577: uint16(1310), + 1578: uint16(264), + 1579: uint16(62), + 1580: uint16(62), + 1581: uint16(369), + 1582: uint16(451), + 1583: uint16(1028), + 1584: uint16(1028), + 1585: uint16(1030), + 1586: uint16(1031), + 1587: uint16(35), + 1588: uint16(1601), + 1589: uint16(1192), + 1590: uint16(453), + 1591: uint16(1092), + 1592: uint16(238), + 1593: uint16(291), + 1594: uint16(565), + 1595: uint16(163), + 1596: uint16(1309), 1597: uint16(110), - 1598: uint16(110), - 1599: uint16(1019), - 1600: uint16(157), - 1601: uint16(157), - 1602: uint16(141), - 1603: uint16(141), - 1604: uint16(572), - 1605: uint16(111), - 1606: uint16(572), - 1607: uint16(449), - 1608: uint16(573), - 1609: uint16(449), - 1610: uint16(412), - 1611: uint16(288), - 1612: uint16(1019), - 1613: uint16(572), - 1614: uint16(882), - 1615: uint16(318), - 1616: uint16(563), - 1617: uint16(572), - 1618: uint16(219), - 1619: uint16(572), - 1620: uint16(241), - 1621: uint16(1012), - 1622: uint16(477), - 1623: uint16(263), - 1624: uint16(263), - 1625: uint16(894), - 1626: uint16(893), - 1627: uint16(140), - 1628: uint16(140), - 1629: uint16(138), - 1630: uint16(138), - 1631: uint16(1019), - 1632: uint16(1019), - 1633: uint16(1021), - 1634: uint16(1022), - 1635: uint16(28), - 1636: uint16(139), - 1637: uint16(139), - 1638: uint16(525), - 1639: uint16(455), - 1640: uint16(76), - 1641: uint16(76), - 1642: uint16(78), - 1643: uint16(78), - 1644: uint16(1019), - 1645: uint16(1019), - 1646: uint16(1021), - 1647: uint16(1022), - 1648: uint16(28), - 1649: uint16(1181), - 1650: uint16(451), - 1651: uint16(572), - 1652: uint16(1083), - 1653: uint16(290), - 1654: uint16(112), - 1655: uint16(564), - 1656: uint16(1575), - 1657: uint16(4), - 1658: uint16(394), - 1659: uint16(394), - 1660: uint16(393), - 1661: uint16(275), - 1662: uint16(391), - 1663: uint16(572), - 1664: uint16(1023), - 1665: uint16(852), - 1666: uint16(572), - 1667: uint16(479), - 1668: uint16(345), - 1669: uint16(263), - 1670: uint16(101), - 1671: uint16(567), - 1672: uint16(882), - 1673: uint16(1376), - 1674: uint16(75), - 1675: uint16(75), - 1676: uint16(1421), - 1677: uint16(501), - 1678: uint16(236), - 1679: uint16(260), - 1680: uint16(325), - 1681: uint16(112), - 1682: uint16(564), - 1683: uint16(359), - 1684: uint16(4), - 1685: uint16(101), - 1686: uint16(43), - 1687: uint16(43), - 1688: uint16(324), - 1689: uint16(49), - 1690: uint16(49), - 1691: uint16(901), - 1692: uint16(902), - 1693: uint16(161), - 1694: uint16(449), - 1695: uint16(101), - 1696: uint16(977), - 1697: uint16(978), - 1698: uint16(567), - 1699: uint16(1079), - 1700: uint16(1349), - 1701: uint16(260), - 1702: uint16(965), - 1703: uint16(932), - 1704: uint16(263), - 1705: uint16(114), - 1706: uint16(561), - 1707: uint16(1095), - 1708: uint16(517), - 1709: uint16(1095), - 1710: uint16(1083), - 1711: uint16(1094), - 1712: uint16(865), - 1713: uint16(1094), - 1714: uint16(151), - 1715: uint16(933), - 1716: uint16(1144), - 1717: uint16(114), - 1718: uint16(238), - 1719: uint16(1361), - 1720: uint16(558), - 1721: uint16(449), - 1722: uint16(1023), - 1723: uint16(559), - 1724: uint16(1426), - 1725: uint16(1278), - 1726: uint16(170), - 1727: uint16(1269), - 1728: uint16(1257), - 1729: uint16(142), - 1730: uint16(1601), - 1731: uint16(1256), - 1732: uint16(1258), - 1733: uint16(561), - 1734: uint16(1594), - 1735: uint16(1031), - 1736: uint16(496), - 1737: uint16(278), - 1738: uint16(213), - 1739: uint16(1346), - 1740: uint16(310), - 1741: uint16(110), - 1742: uint16(110), - 1743: uint16(939), - 1744: uint16(311), - 1745: uint16(312), - 1746: uint16(237), - 1747: uint16(11), - 1748: uint16(234), - 1749: uint16(111), - 1750: uint16(221), - 1751: uint16(449), - 1752: uint16(573), - 1753: uint16(449), - 1754: uint16(293), - 1755: uint16(395), - 1756: uint16(1019), - 1757: uint16(1408), - 1758: uint16(337), - 1759: uint16(1403), - 1760: uint16(1396), - 1761: uint16(338), - 1762: uint16(1031), - 1763: uint16(299), - 1764: uint16(343), - 1765: uint16(1413), - 1766: uint16(1412), - 1767: uint16(481), - 1768: uint16(110), - 1769: uint16(110), - 1770: uint16(506), - 1771: uint16(402), - 1772: uint16(225), - 1773: uint16(1296), - 1774: uint16(206), - 1775: uint16(367), - 1776: uint16(111), - 1777: uint16(1358), - 1778: uint16(449), - 1779: uint16(573), - 1780: uint16(449), - 1781: uint16(412), - 1782: uint16(1359), - 1783: uint16(1019), - 1784: uint16(1489), - 1785: uint16(1488), - 1786: uint16(318), - 1787: uint16(563), - 1788: uint16(1019), - 1789: uint16(1019), - 1790: uint16(1021), - 1791: uint16(1022), - 1792: uint16(28), - 1793: uint16(562), - 1794: uint16(207), - 1795: uint16(220), - 1796: uint16(80), - 1797: uint16(564), - 1798: uint16(389), - 1799: uint16(4), - 1800: uint16(1597), - 1801: uint16(1357), - 1802: uint16(552), - 1803: uint16(1356), - 1804: uint16(1233), - 1805: uint16(181), - 1806: uint16(267), - 1807: uint16(232), - 1808: uint16(1536), - 1809: uint16(1534), - 1810: uint16(455), - 1811: uint16(1230), - 1812: uint16(420), - 1813: uint16(567), - 1814: uint16(82), - 1815: uint16(1019), - 1816: uint16(1019), - 1817: uint16(1021), - 1818: uint16(1022), - 1819: uint16(28), - 1820: uint16(86), - 1821: uint16(217), - 1822: uint16(85), - 1823: uint16(1494), - 1824: uint16(190), - 1825: uint16(175), - 1826: uint16(183), - 1827: uint16(465), - 1828: uint16(185), - 1829: uint16(466), - 1830: uint16(36), - 1831: uint16(1409), - 1832: uint16(186), - 1833: uint16(187), - 1834: uint16(188), - 1835: uint16(499), - 1836: uint16(449), - 1837: uint16(244), - 1838: uint16(37), - 1839: uint16(99), - 1840: uint16(400), - 1841: uint16(1415), - 1842: uint16(1414), - 1843: uint16(488), - 1844: uint16(1417), - 1845: uint16(194), - 1846: uint16(473), - 1847: uint16(403), - 1848: uint16(561), - 1849: uint16(1483), - 1850: uint16(248), - 1851: uint16(92), - 1852: uint16(1505), - 1853: uint16(494), - 1854: uint16(198), - 1855: uint16(279), - 1856: uint16(112), - 1857: uint16(564), - 1858: uint16(250), - 1859: uint16(4), - 1860: uint16(348), - 1861: uint16(497), - 1862: uint16(405), - 1863: uint16(352), - 1864: uint16(1259), - 1865: uint16(251), - 1866: uint16(252), - 1867: uint16(515), - 1868: uint16(1316), - 1869: uint16(434), - 1870: uint16(1315), - 1871: uint16(1314), - 1872: uint16(94), - 1873: uint16(567), - 1874: uint16(1307), - 1875: uint16(886), - 1876: uint16(1306), - 1877: uint16(1031), - 1878: uint16(226), - 1879: uint16(406), - 1880: uint16(1611), - 1881: uint16(1610), - 1882: uint16(438), - 1883: uint16(110), - 1884: uint16(110), - 1885: uint16(1580), - 1886: uint16(1286), - 1887: uint16(524), - 1888: uint16(439), - 1889: uint16(308), - 1890: uint16(266), - 1891: uint16(111), - 1892: uint16(1285), - 1893: uint16(449), - 1894: uint16(573), - 1895: uint16(449), - 1896: uint16(449), - 1897: uint16(309), - 1898: uint16(1019), - 1899: uint16(366), - 1900: uint16(1284), - 1901: uint16(1609), - 1902: uint16(265), - 1903: uint16(1566), - 1904: uint16(1565), - 1905: uint16(442), - 1906: uint16(372), - 1907: uint16(1381), - 1908: uint16(561), - 1909: uint16(129), - 1910: uint16(550), - 1911: uint16(1380), - 1912: uint16(10), - 1913: uint16(1470), - 1914: uint16(383), - 1915: uint16(106), - 1916: uint16(316), - 1917: uint16(551), - 1918: uint16(100), - 1919: uint16(35), - 1920: uint16(534), - 1921: uint16(575), - 1922: uint16(212), - 1923: uint16(1339), - 1924: uint16(381), - 1925: uint16(387), - 1926: uint16(1187), - 1927: uint16(1338), - 1928: uint16(274), - 1929: uint16(276), - 1930: uint16(1019), - 1931: uint16(1019), - 1932: uint16(1021), - 1933: uint16(1022), - 1934: uint16(28), - 1935: uint16(277), - 1936: uint16(413), - 1937: uint16(1031), - 1938: uint16(576), - 1939: uint16(1254), - 1940: uint16(388), - 1941: uint16(1521), - 1942: uint16(1249), - 1943: uint16(110), - 1944: uint16(110), - 1945: uint16(167), - 1946: uint16(1522), - 1947: uint16(168), - 1948: uint16(148), - 1949: uint16(1520), - 1950: uint16(1519), - 1951: uint16(111), - 1952: uint16(306), - 1953: uint16(449), - 1954: uint16(573), - 1955: uint16(449), - 1956: uint16(222), - 1957: uint16(223), - 1958: uint16(1019), - 1959: uint16(839), - 1960: uint16(169), - 1961: uint16(79), - 1962: uint16(450), - 1963: uint16(214), - 1964: uint16(414), - 1965: uint16(233), - 1966: uint16(320), - 1967: uint16(145), - 1968: uint16(1093), - 1969: uint16(1091), - 1970: uint16(328), - 1971: uint16(182), - 1972: uint16(171), - 1973: uint16(1212), - 1974: uint16(918), - 1975: uint16(184), - 1976: uint16(240), - 1977: uint16(336), - 1978: uint16(243), - 1979: uint16(1107), - 1980: uint16(189), - 1981: uint16(172), - 1982: uint16(173), - 1983: uint16(423), - 1984: uint16(425), - 1985: uint16(88), - 1986: uint16(180), - 1987: uint16(191), - 1988: uint16(89), - 1989: uint16(90), - 1990: uint16(1019), - 1991: uint16(1019), - 1992: uint16(1021), - 1993: uint16(1022), - 1994: uint16(28), - 1995: uint16(91), - 1996: uint16(174), - 1997: uint16(1110), - 1998: uint16(245), - 1999: uint16(1106), - 2000: uint16(246), - 2001: uint16(159), - 2002: uint16(18), - 2003: uint16(247), - 2004: uint16(347), - 2005: uint16(1099), - 2006: uint16(263), - 2007: uint16(195), - 2008: uint16(1227), - 2009: uint16(493), - 2010: uint16(249), - 2011: uint16(196), - 2012: uint16(38), - 2013: uint16(854), - 2014: uint16(498), - 2015: uint16(368), - 2016: uint16(253), - 2017: uint16(360), - 2018: uint16(897), - 2019: uint16(197), - 2020: uint16(502), - 2021: uint16(93), - 2022: uint16(19), - 2023: uint16(20), - 2024: uint16(507), - 2025: uint16(884), - 2026: uint16(363), - 2027: uint16(510), - 2028: uint16(95), - 2029: uint16(307), - 2030: uint16(160), - 2031: uint16(96), - 2032: uint16(518), - 2033: uint16(97), - 2034: uint16(1175), - 2035: uint16(1060), - 2036: uint16(1146), - 2037: uint16(40), - 2038: uint16(21), - 2039: uint16(227), - 2040: uint16(176), - 2041: uint16(1145), - 2042: uint16(282), - 2043: uint16(284), - 2044: uint16(969), - 2045: uint16(200), - 2046: uint16(963), - 2047: uint16(114), - 2048: uint16(262), - 2049: uint16(1165), - 2050: uint16(22), - 2051: uint16(23), - 2052: uint16(24), - 2053: uint16(1161), - 2054: uint16(1169), - 2055: uint16(25), - 2056: uint16(1163), - 2057: uint16(1150), - 2058: uint16(34), - 2059: uint16(26), - 2060: uint16(1168), - 2061: uint16(546), - 2062: uint16(27), - 2063: uint16(204), - 2064: uint16(101), - 2065: uint16(103), - 2066: uint16(104), - 2067: uint16(1074), - 2068: uint16(7), - 2069: uint16(1061), - 2070: uint16(1059), - 2071: uint16(1063), - 2072: uint16(1116), - 2073: uint16(1064), - 2074: uint16(1115), - 2075: uint16(268), - 2076: uint16(269), - 2077: uint16(29), - 2078: uint16(41), - 2079: uint16(270), - 2080: uint16(1024), - 2081: uint16(866), - 2082: uint16(113), - 2083: uint16(30), - 2084: uint16(568), - 2085: uint16(392), - 2086: uint16(1183), - 2087: uint16(144), - 2088: uint16(178), - 2089: uint16(1182), - 2090: uint16(271), - 2091: uint16(928), - 2092: uint16(1245), - 2093: uint16(1245), - 2094: uint16(1245), - 2095: uint16(1245), - 2096: uint16(1245), - 2097: uint16(1245), - 2098: uint16(1245), - 2099: uint16(1602), -} -var _yy_lookahead = [2285]uint16{ - 0: uint16(193), - 1: uint16(193), - 2: uint16(193), - 3: uint16(274), - 4: uint16(275), - 5: uint16(276), - 6: uint16(193), - 7: uint16(274), - 8: uint16(275), - 9: uint16(276), - 10: uint16(193), - 11: uint16(223), - 12: uint16(219), - 13: uint16(225), - 14: uint16(206), - 15: uint16(210), - 16: uint16(211), - 17: uint16(212), - 18: uint16(193), + 1598: uint16(395), + 1599: uint16(395), + 1600: uint16(394), + 1601: uint16(276), + 1602: uint16(392), + 1603: uint16(986), + 1604: uint16(987), + 1605: uint16(859), + 1606: uint16(481), + 1607: uint16(346), + 1608: uint16(264), + 1609: uint16(110), + 1610: uint16(1032), + 1611: uint16(489), + 1612: uint16(576), + 1613: uint16(1188), + 1614: uint16(503), + 1615: uint16(1088), + 1616: uint16(261), + 1617: uint16(261), + 1618: uint16(237), + 1619: uint16(576), + 1620: uint16(326), + 1621: uint16(121), + 1622: uint16(568), + 1623: uint16(1040), + 1624: uint16(4), + 1625: uint16(347), + 1626: uint16(1376), + 1627: uint16(413), + 1628: uint16(325), + 1629: uint16(119), + 1630: uint16(119), + 1631: uint16(948), + 1632: uint16(319), + 1633: uint16(567), + 1634: uint16(351), + 1635: uint16(78), + 1636: uint16(78), + 1637: uint16(120), + 1638: uint16(571), + 1639: uint16(451), + 1640: uint16(577), + 1641: uint16(451), + 1642: uint16(79), + 1643: uint16(79), + 1644: uint16(1028), + 1645: uint16(354), + 1646: uint16(356), + 1647: uint16(576), + 1648: uint16(360), + 1649: uint16(1092), + 1650: uint16(110), + 1651: uint16(576), + 1652: uint16(974), + 1653: uint16(942), + 1654: uint16(264), + 1655: uint16(123), + 1656: uint16(457), + 1657: uint16(358), + 1658: uint16(239), + 1659: uint16(576), + 1660: uint16(519), + 1661: uint16(451), + 1662: uint16(939), + 1663: uint16(1104), + 1664: uint16(123), + 1665: uint16(1104), + 1666: uint16(173), + 1667: uint16(576), + 1668: uint16(1032), + 1669: uint16(43), + 1670: uint16(63), + 1671: uint16(63), + 1672: uint16(1324), + 1673: uint16(565), + 1674: uint16(168), + 1675: uint16(168), + 1676: uint16(1028), + 1677: uint16(1028), + 1678: uint16(1030), + 1679: uint16(1031), + 1680: uint16(35), + 1681: uint16(576), + 1682: uint16(169), + 1683: uint16(169), + 1684: uint16(1308), + 1685: uint16(872), + 1686: uint16(238), + 1687: uint16(157), + 1688: uint16(1589), + 1689: uint16(576), + 1690: uint16(86), + 1691: uint16(86), + 1692: uint16(365), + 1693: uint16(89), + 1694: uint16(568), + 1695: uint16(375), + 1696: uint16(4), + 1697: uint16(1103), + 1698: uint16(941), + 1699: uint16(1103), + 1700: uint16(123), + 1701: uint16(576), + 1702: uint16(1040), + 1703: uint16(1389), + 1704: uint16(64), + 1705: uint16(64), + 1706: uint16(1188), + 1707: uint16(1434), + 1708: uint16(119), + 1709: uint16(119), + 1710: uint16(571), + 1711: uint16(576), + 1712: uint16(82), + 1713: uint16(82), + 1714: uint16(563), + 1715: uint16(576), + 1716: uint16(120), + 1717: uint16(165), + 1718: uint16(451), + 1719: uint16(577), + 1720: uint16(451), + 1721: uint16(413), + 1722: uint16(1362), + 1723: uint16(1028), + 1724: uint16(144), + 1725: uint16(144), + 1726: uint16(319), + 1727: uint16(567), + 1728: uint16(576), + 1729: uint16(1374), + 1730: uint16(562), + 1731: uint16(498), + 1732: uint16(279), + 1733: uint16(451), + 1734: uint16(83), + 1735: uint16(83), + 1736: uint16(1439), + 1737: uint16(576), + 1738: uint16(166), + 1739: uint16(166), + 1740: uint16(576), + 1741: uint16(1289), + 1742: uint16(554), + 1743: uint16(576), + 1744: uint16(1280), + 1745: uint16(565), + 1746: uint16(576), + 1747: uint16(12), + 1748: uint16(576), + 1749: uint16(1268), + 1750: uint16(457), + 1751: uint16(146), + 1752: uint16(146), + 1753: uint16(1267), + 1754: uint16(576), + 1755: uint16(1028), + 1756: uint16(1028), + 1757: uint16(1030), + 1758: uint16(1031), + 1759: uint16(35), + 1760: uint16(140), + 1761: uint16(140), + 1762: uint16(1269), + 1763: uint16(167), + 1764: uint16(167), + 1765: uint16(1609), + 1766: uint16(160), + 1767: uint16(160), + 1768: uint16(1359), + 1769: uint16(150), + 1770: uint16(150), + 1771: uint16(149), + 1772: uint16(149), + 1773: uint16(311), + 1774: uint16(1040), + 1775: uint16(576), + 1776: uint16(312), + 1777: uint16(147), + 1778: uint16(147), + 1779: uint16(313), + 1780: uint16(119), + 1781: uint16(119), + 1782: uint16(222), + 1783: uint16(235), + 1784: uint16(576), + 1785: uint16(1188), + 1786: uint16(396), + 1787: uint16(576), + 1788: uint16(120), + 1789: uint16(576), + 1790: uint16(451), + 1791: uint16(577), + 1792: uint16(451), + 1793: uint16(1192), + 1794: uint16(453), + 1795: uint16(1028), + 1796: uint16(508), + 1797: uint16(291), + 1798: uint16(148), + 1799: uint16(148), + 1800: uint16(1421), + 1801: uint16(1612), + 1802: uint16(395), + 1803: uint16(395), + 1804: uint16(394), + 1805: uint16(276), + 1806: uint16(392), + 1807: uint16(85), + 1808: uint16(85), + 1809: uint16(859), + 1810: uint16(87), + 1811: uint16(87), + 1812: uint16(84), + 1813: uint16(84), + 1814: uint16(553), + 1815: uint16(576), + 1816: uint16(294), + 1817: uint16(576), + 1818: uint16(1426), + 1819: uint16(338), + 1820: uint16(339), + 1821: uint16(1425), + 1822: uint16(237), + 1823: uint16(300), + 1824: uint16(326), + 1825: uint16(1416), + 1826: uint16(1409), + 1827: uint16(1028), + 1828: uint16(1028), + 1829: uint16(1030), + 1830: uint16(1031), + 1831: uint16(35), + 1832: uint16(325), + 1833: uint16(344), + 1834: uint16(403), + 1835: uint16(483), + 1836: uint16(226), + 1837: uint16(1307), + 1838: uint16(52), + 1839: uint16(52), + 1840: uint16(58), + 1841: uint16(58), + 1842: uint16(368), + 1843: uint16(1371), + 1844: uint16(1502), + 1845: uint16(566), + 1846: uint16(1501), + 1847: uint16(121), + 1848: uint16(568), + 1849: uint16(221), + 1850: uint16(4), + 1851: uint16(208), + 1852: uint16(268), + 1853: uint16(209), + 1854: uint16(390), + 1855: uint16(1244), + 1856: uint16(1549), + 1857: uint16(1188), + 1858: uint16(1372), + 1859: uint16(1370), + 1860: uint16(1369), + 1861: uint16(1547), + 1862: uint16(239), + 1863: uint16(184), + 1864: uint16(571), + 1865: uint16(233), + 1866: uint16(421), + 1867: uint16(1241), + 1868: uint16(95), + 1869: uint16(218), + 1870: uint16(173), + 1871: uint16(1507), + 1872: uint16(193), + 1873: uint16(43), + 1874: uint16(91), + 1875: uint16(94), + 1876: uint16(178), + 1877: uint16(186), + 1878: uint16(467), + 1879: uint16(188), + 1880: uint16(468), + 1881: uint16(1422), + 1882: uint16(13), + 1883: uint16(189), + 1884: uint16(190), + 1885: uint16(191), + 1886: uint16(501), + 1887: uint16(451), + 1888: uint16(245), + 1889: uint16(108), + 1890: uint16(238), + 1891: uint16(401), + 1892: uint16(1428), + 1893: uint16(1427), + 1894: uint16(1430), + 1895: uint16(475), + 1896: uint16(404), + 1897: uint16(1496), + 1898: uint16(197), + 1899: uint16(565), + 1900: uint16(14), + 1901: uint16(490), + 1902: uint16(249), + 1903: uint16(101), + 1904: uint16(1518), + 1905: uint16(496), + 1906: uint16(349), + 1907: uint16(280), + 1908: uint16(251), + 1909: uint16(201), + 1910: uint16(353), + 1911: uint16(499), + 1912: uint16(252), + 1913: uint16(406), + 1914: uint16(1270), + 1915: uint16(253), + 1916: uint16(517), + 1917: uint16(1327), + 1918: uint16(1326), + 1919: uint16(435), + 1920: uint16(1325), + 1921: uint16(1318), + 1922: uint16(103), + 1923: uint16(893), + 1924: uint16(1296), + 1925: uint16(413), + 1926: uint16(227), + 1927: uint16(407), + 1928: uint16(1040), + 1929: uint16(1626), + 1930: uint16(319), + 1931: uint16(567), + 1932: uint16(1625), + 1933: uint16(1297), + 1934: uint16(119), + 1935: uint16(119), + 1936: uint16(439), + 1937: uint16(367), + 1938: uint16(1317), + 1939: uint16(1295), + 1940: uint16(1624), + 1941: uint16(526), + 1942: uint16(120), + 1943: uint16(440), + 1944: uint16(451), + 1945: uint16(577), + 1946: uint16(451), + 1947: uint16(1594), + 1948: uint16(309), + 1949: uint16(1028), + 1950: uint16(310), + 1951: uint16(373), + 1952: uint16(266), + 1953: uint16(267), + 1954: uint16(457), + 1955: uint16(1580), + 1956: uint16(1579), + 1957: uint16(443), + 1958: uint16(138), + 1959: uint16(1394), + 1960: uint16(552), + 1961: uint16(1393), + 1962: uint16(11), + 1963: uint16(1483), + 1964: uint16(384), + 1965: uint16(115), + 1966: uint16(317), + 1967: uint16(1350), + 1968: uint16(109), + 1969: uint16(536), + 1970: uint16(42), + 1971: uint16(579), + 1972: uint16(382), + 1973: uint16(214), + 1974: uint16(1349), + 1975: uint16(388), + 1976: uint16(1198), + 1977: uint16(389), + 1978: uint16(275), + 1979: uint16(277), + 1980: uint16(278), + 1981: uint16(1028), + 1982: uint16(1028), + 1983: uint16(1030), + 1984: uint16(1031), + 1985: uint16(35), + 1986: uint16(580), + 1987: uint16(1265), + 1988: uint16(414), + 1989: uint16(1260), + 1990: uint16(170), + 1991: uint16(415), + 1992: uint16(183), + 1993: uint16(1534), + 1994: uint16(1535), + 1995: uint16(1533), + 1996: uint16(171), + 1997: uint16(154), + 1998: uint16(307), + 1999: uint16(1532), + 2000: uint16(846), + 2001: uint16(223), + 2002: uint16(224), + 2003: uint16(88), + 2004: uint16(452), + 2005: uint16(215), + 2006: uint16(172), + 2007: uint16(321), + 2008: uint16(234), + 2009: uint16(1102), + 2010: uint16(152), + 2011: uint16(1188), + 2012: uint16(1100), + 2013: uint16(329), + 2014: uint16(185), + 2015: uint16(174), + 2016: uint16(1223), + 2017: uint16(925), + 2018: uint16(187), + 2019: uint16(241), + 2020: uint16(337), + 2021: uint16(244), + 2022: uint16(1116), + 2023: uint16(192), + 2024: uint16(175), + 2025: uint16(176), + 2026: uint16(424), + 2027: uint16(426), + 2028: uint16(97), + 2029: uint16(194), + 2030: uint16(98), + 2031: uint16(99), + 2032: uint16(100), + 2033: uint16(177), + 2034: uint16(1119), + 2035: uint16(1115), + 2036: uint16(246), + 2037: uint16(247), + 2038: uint16(161), + 2039: uint16(24), + 2040: uint16(248), + 2041: uint16(348), + 2042: uint16(1238), + 2043: uint16(264), + 2044: uint16(1108), + 2045: uint16(250), + 2046: uint16(495), + 2047: uint16(199), + 2048: uint16(198), + 2049: uint16(15), + 2050: uint16(861), + 2051: uint16(500), + 2052: uint16(369), + 2053: uint16(254), + 2054: uint16(504), + 2055: uint16(509), + 2056: uint16(512), + 2057: uint16(200), + 2058: uint16(102), + 2059: uint16(25), + 2060: uint16(179), + 2061: uint16(361), + 2062: uint16(26), + 2063: uint16(364), + 2064: uint16(104), + 2065: uint16(891), + 2066: uint16(308), + 2067: uint16(162), + 2068: uint16(105), + 2069: uint16(904), + 2070: uint16(520), + 2071: uint16(106), + 2072: uint16(1185), + 2073: uint16(1069), + 2074: uint16(1155), + 2075: uint16(17), + 2076: uint16(228), + 2077: uint16(27), + 2078: uint16(1154), + 2079: uint16(283), + 2080: uint16(285), + 2081: uint16(263), + 2082: uint16(978), + 2083: uint16(202), + 2084: uint16(972), + 2085: uint16(123), + 2086: uint16(28), + 2087: uint16(1175), + 2088: uint16(29), + 2089: uint16(30), + 2090: uint16(1179), + 2091: uint16(1171), + 2092: uint16(31), + 2093: uint16(1173), + 2094: uint16(1160), + 2095: uint16(41), + 2096: uint16(32), + 2097: uint16(206), + 2098: uint16(548), + 2099: uint16(33), + 2100: uint16(110), + 2101: uint16(1178), + 2102: uint16(1083), + 2103: uint16(8), + 2104: uint16(112), + 2105: uint16(1070), + 2106: uint16(113), + 2107: uint16(1068), + 2108: uint16(1072), + 2109: uint16(34), + 2110: uint16(1073), + 2111: uint16(560), + 2112: uint16(1125), + 2113: uint16(269), + 2114: uint16(1124), + 2115: uint16(270), + 2116: uint16(36), + 2117: uint16(18), + 2118: uint16(1194), + 2119: uint16(1033), + 2120: uint16(873), + 2121: uint16(151), + 2122: uint16(122), + 2123: uint16(37), + 2124: uint16(393), + 2125: uint16(271), + 2126: uint16(272), + 2127: uint16(572), + 2128: uint16(181), + 2129: uint16(1193), + 2130: uint16(1256), + 2131: uint16(1256), + 2132: uint16(1256), + 2133: uint16(935), + 2134: uint16(1256), + 2135: uint16(1256), + 2136: uint16(1256), + 2137: uint16(1256), + 2138: uint16(1256), + 2139: uint16(1256), + 2140: uint16(1256), + 2141: uint16(1617), +} +var _yy_lookahead = [2328]uint16{ + 0: uint16(194), + 1: uint16(276), + 2: uint16(277), + 3: uint16(278), + 4: uint16(216), + 5: uint16(194), + 6: uint16(194), + 7: uint16(217), + 8: uint16(194), + 9: uint16(194), + 10: uint16(194), + 11: uint16(194), + 12: uint16(224), + 13: uint16(194), + 14: uint16(194), + 15: uint16(276), + 16: uint16(277), + 17: uint16(278), + 18: uint16(204), 19: uint16(19), - 20: uint16(219), - 21: uint16(233), - 22: uint16(216), - 23: uint16(216), - 24: uint16(217), - 25: uint16(216), - 26: uint16(217), - 27: uint16(193), - 28: uint16(295), - 29: uint16(216), - 30: uint16(217), + 20: uint16(206), + 21: uint16(202), + 22: uint16(297), + 23: uint16(217), + 24: uint16(218), + 25: uint16(205), + 26: uint16(207), + 27: uint16(217), + 28: uint16(205), + 29: uint16(217), + 30: uint16(218), 31: uint16(31), - 32: uint16(193), - 33: uint16(216), + 32: uint16(217), + 33: uint16(218), 34: uint16(217), - 35: uint16(193), - 36: uint16(228), - 37: uint16(213), - 38: uint16(230), + 35: uint16(218), + 36: uint16(29), + 37: uint16(217), + 38: uint16(218), 39: uint16(39), - 40: uint16(206), - 41: uint16(216), - 42: uint16(217), + 40: uint16(33), + 41: uint16(217), + 42: uint16(220), 43: uint16(43), 44: uint16(44), 45: uint16(45), @@ -154418,31 +155922,31 @@ var _yy_lookahead = [2285]uint16{ 55: uint16(55), 56: uint16(56), 57: uint16(57), - 58: uint16(193), + 58: uint16(312), 59: uint16(19), - 60: uint16(185), - 61: uint16(186), - 62: uint16(187), - 63: uint16(188), - 64: uint16(189), - 65: uint16(190), - 66: uint16(253), - 67: uint16(274), - 68: uint16(275), - 69: uint16(276), - 70: uint16(195), - 71: uint16(193), - 72: uint16(197), - 73: uint16(193), - 74: uint16(261), - 75: uint16(274), - 76: uint16(275), - 77: uint16(276), - 78: uint16(253), - 79: uint16(204), - 80: uint16(238), - 81: uint16(204), - 82: uint16(81), + 60: uint16(240), + 61: uint16(241), + 62: uint16(316), + 63: uint16(240), + 64: uint16(241), + 65: uint16(194), + 66: uint16(46), + 67: uint16(47), + 68: uint16(48), + 69: uint16(49), + 70: uint16(22), + 71: uint16(254), + 72: uint16(65), + 73: uint16(253), + 74: uint16(254), + 75: uint16(255), + 76: uint16(253), + 77: uint16(194), + 78: uint16(255), + 79: uint16(194), + 80: uint16(263), + 81: uint16(258), + 82: uint16(259), 83: uint16(43), 84: uint16(44), 85: uint16(45), @@ -154458,10 +155962,10 @@ var _yy_lookahead = [2285]uint16{ 95: uint16(55), 96: uint16(56), 97: uint16(57), - 98: uint16(274), - 99: uint16(275), - 100: uint16(276), - 101: uint16(262), + 98: uint16(276), + 99: uint16(277), + 100: uint16(278), + 101: uint16(285), 102: uint16(102), 103: uint16(103), 104: uint16(104), @@ -154474,34 +155978,34 @@ var _yy_lookahead = [2285]uint16{ 111: uint16(111), 112: uint16(112), 113: uint16(113), - 114: uint16(239), - 115: uint16(240), - 116: uint16(239), - 117: uint16(240), - 118: uint16(210), - 119: uint16(211), - 120: uint16(212), - 121: uint16(314), - 122: uint16(315), - 123: uint16(314), - 124: uint16(59), - 125: uint16(316), + 114: uint16(59), + 115: uint16(186), + 116: uint16(187), + 117: uint16(188), + 118: uint16(189), + 119: uint16(190), + 120: uint16(191), + 121: uint16(310), + 122: uint16(239), + 123: uint16(317), + 124: uint16(318), + 125: uint16(196), 126: uint16(86), - 127: uint16(252), + 127: uint16(198), 128: uint16(88), - 129: uint16(252), + 129: uint16(317), 130: uint16(19), - 131: uint16(314), - 132: uint16(315), - 133: uint16(256), - 134: uint16(257), - 135: uint16(113), + 131: uint16(319), + 132: uint16(317), + 133: uint16(318), + 134: uint16(205), + 135: uint16(264), 136: uint16(25), - 137: uint16(72), - 138: uint16(296), - 139: uint16(138), - 140: uint16(139), - 141: uint16(266), + 137: uint16(211), + 138: uint16(212), + 139: uint16(213), + 140: uint16(205), + 141: uint16(121), 142: uint16(102), 143: uint16(103), 144: uint16(104), @@ -154529,50 +156033,50 @@ var _yy_lookahead = [2285]uint16{ 166: uint16(55), 167: uint16(56), 168: uint16(57), - 169: uint16(81), - 170: uint16(292), - 171: uint16(59), - 172: uint16(292), - 173: uint16(298), - 174: uint16(108), - 175: uint16(109), - 176: uint16(110), - 177: uint16(111), - 178: uint16(112), - 179: uint16(113), + 169: uint16(240), + 170: uint16(241), + 171: uint16(116), + 172: uint16(117), + 173: uint16(118), + 174: uint16(119), + 175: uint16(240), + 176: uint16(241), + 177: uint16(122), + 178: uint16(123), + 179: uint16(124), 180: uint16(69), - 181: uint16(116), - 182: uint16(117), - 183: uint16(118), - 184: uint16(72), + 181: uint16(298), + 182: uint16(253), + 183: uint16(194), + 184: uint16(255), 185: uint16(106), 186: uint16(107), - 187: uint16(193), - 188: uint16(111), - 189: uint16(112), - 190: uint16(113), + 187: uint16(132), + 188: uint16(253), + 189: uint16(141), + 190: uint16(255), 191: uint16(54), 192: uint16(55), 193: uint16(56), 194: uint16(57), 195: uint16(58), - 196: uint16(102), - 197: uint16(103), - 198: uint16(104), - 199: uint16(105), - 200: uint16(106), - 201: uint16(107), - 202: uint16(108), - 203: uint16(109), - 204: uint16(110), - 205: uint16(111), - 206: uint16(112), - 207: uint16(113), - 208: uint16(120), - 209: uint16(25), - 210: uint16(216), - 211: uint16(217), - 212: uint16(145), + 196: uint16(207), + 197: uint16(268), + 198: uint16(102), + 199: uint16(103), + 200: uint16(104), + 201: uint16(105), + 202: uint16(106), + 203: uint16(107), + 204: uint16(108), + 205: uint16(109), + 206: uint16(110), + 207: uint16(111), + 208: uint16(112), + 209: uint16(113), + 210: uint16(214), + 211: uint16(128), + 212: uint16(129), 213: uint16(102), 214: uint16(103), 215: uint16(104), @@ -154585,13 +156089,13 @@ var _yy_lookahead = [2285]uint16{ 222: uint16(111), 223: uint16(112), 224: uint16(113), - 225: uint16(231), - 226: uint16(138), - 227: uint16(139), - 228: uint16(116), - 229: uint16(117), - 230: uint16(118), - 231: uint16(164), + 225: uint16(134), + 226: uint16(25), + 227: uint16(136), + 228: uint16(137), + 229: uint16(300), + 230: uint16(165), + 231: uint16(166), 232: uint16(153), 233: uint16(19), 234: uint16(155), @@ -154611,12 +156115,12 @@ var _yy_lookahead = [2285]uint16{ 248: uint16(111), 249: uint16(112), 250: uint16(113), - 251: uint16(128), - 252: uint16(129), - 253: uint16(46), - 254: uint16(47), - 255: uint16(48), - 256: uint16(49), + 251: uint16(108), + 252: uint16(109), + 253: uint16(110), + 254: uint16(111), + 255: uint16(112), + 256: uint16(113), 257: uint16(43), 258: uint16(44), 259: uint16(45), @@ -154632,15 +156136,15 @@ var _yy_lookahead = [2285]uint16{ 269: uint16(55), 270: uint16(56), 271: uint16(57), - 272: uint16(216), - 273: uint16(193), - 274: uint16(25), - 275: uint16(59), - 276: uint16(193), + 272: uint16(276), + 273: uint16(277), + 274: uint16(278), + 275: uint16(113), + 276: uint16(194), 277: uint16(19), - 278: uint16(165), - 279: uint16(166), - 280: uint16(193), + 278: uint16(22), + 279: uint16(23), + 280: uint16(194), 281: uint16(67), 282: uint16(24), 283: uint16(102), @@ -154655,12 +156159,12 @@ var _yy_lookahead = [2285]uint16{ 292: uint16(111), 293: uint16(112), 294: uint16(113), - 295: uint16(73), - 296: uint16(216), - 297: uint16(217), - 298: uint16(59), - 299: uint16(216), - 300: uint16(217), + 295: uint16(220), + 296: uint16(250), + 297: uint16(59), + 298: uint16(252), + 299: uint16(217), + 300: uint16(218), 301: uint16(43), 302: uint16(44), 303: uint16(45), @@ -154688,38 +156192,38 @@ var _yy_lookahead = [2285]uint16{ 325: uint16(111), 326: uint16(112), 327: uint16(113), - 328: uint16(121), - 329: uint16(145), - 330: uint16(59), - 331: uint16(193), - 332: uint16(116), - 333: uint16(117), - 334: uint16(118), - 335: uint16(119), - 336: uint16(273), - 337: uint16(204), - 338: uint16(122), - 339: uint16(123), - 340: uint16(124), + 328: uint16(106), + 329: uint16(107), + 330: uint16(108), + 331: uint16(109), + 332: uint16(110), + 333: uint16(111), + 334: uint16(112), + 335: uint16(113), + 336: uint16(254), + 337: uint16(59), + 338: uint16(205), + 339: uint16(138), + 340: uint16(139), 341: uint16(19), 342: uint16(20), - 343: uint16(134), + 343: uint16(194), 344: uint16(22), - 345: uint16(136), - 346: uint16(137), - 347: uint16(19), - 348: uint16(132), - 349: uint16(127), - 350: uint16(128), - 351: uint16(129), - 352: uint16(24), - 353: uint16(22), - 354: uint16(23), - 355: uint16(116), - 356: uint16(117), - 357: uint16(118), + 345: uint16(263), + 346: uint16(22), + 347: uint16(23), + 348: uint16(231), + 349: uint16(25), + 350: uint16(72), + 351: uint16(276), + 352: uint16(277), + 353: uint16(278), + 354: uint16(116), + 355: uint16(117), + 356: uint16(118), + 357: uint16(101), 358: uint16(36), - 359: uint16(193), + 359: uint16(76), 360: uint16(102), 361: uint16(103), 362: uint16(104), @@ -154732,37 +156236,37 @@ var _yy_lookahead = [2285]uint16{ 369: uint16(111), 370: uint16(112), 371: uint16(113), - 372: uint16(239), + 372: uint16(89), 373: uint16(240), - 374: uint16(311), - 375: uint16(312), - 376: uint16(215), - 377: uint16(106), - 378: uint16(107), - 379: uint16(241), + 374: uint16(241), + 375: uint16(92), + 376: uint16(73), + 377: uint16(194), + 378: uint16(194), + 379: uint16(73), 380: uint16(19), 381: uint16(59), - 382: uint16(216), - 383: uint16(217), - 384: uint16(223), - 385: uint16(252), - 386: uint16(115), - 387: uint16(116), - 388: uint16(117), - 389: uint16(118), - 390: uint16(151), - 391: uint16(120), - 392: uint16(26), + 382: uint16(188), + 383: uint16(189), + 384: uint16(190), + 385: uint16(191), + 386: uint16(253), + 387: uint16(81), + 388: uint16(255), + 389: uint16(151), + 390: uint16(196), + 391: uint16(25), + 392: uint16(198), 393: uint16(71), - 394: uint16(193), - 395: uint16(308), - 396: uint16(309), - 397: uint16(193), - 398: uint16(149), - 399: uint16(128), - 400: uint16(313), - 401: uint16(216), - 402: uint16(269), + 394: uint16(116), + 395: uint16(117), + 396: uint16(118), + 397: uint16(311), + 398: uint16(312), + 399: uint16(205), + 400: uint16(217), + 401: uint16(218), + 402: uint16(316), 403: uint16(81), 404: uint16(43), 405: uint16(44), @@ -154779,50 +156283,50 @@ var _yy_lookahead = [2285]uint16{ 416: uint16(55), 417: uint16(56), 418: uint16(57), - 419: uint16(253), - 420: uint16(216), - 421: uint16(217), + 419: uint16(270), + 420: uint16(22), + 421: uint16(23), 422: uint16(100), - 423: uint16(95), - 424: uint16(153), - 425: uint16(59), - 426: uint16(155), - 427: uint16(261), + 423: uint16(25), + 424: uint16(59), + 425: uint16(101), + 426: uint16(138), + 427: uint16(139), 428: uint16(106), 429: uint16(107), - 430: uint16(25), - 431: uint16(193), - 432: uint16(101), - 433: uint16(193), - 434: uint16(193), - 435: uint16(231), + 430: uint16(127), + 431: uint16(128), + 432: uint16(129), + 433: uint16(127), + 434: uint16(240), + 435: uint16(241), 436: uint16(114), - 437: uint16(25), + 437: uint16(254), 438: uint16(116), 439: uint16(117), 440: uint16(118), - 441: uint16(113), - 442: uint16(304), + 441: uint16(76), + 442: uint16(76), 443: uint16(121), - 444: uint16(193), - 445: uint16(204), - 446: uint16(59), - 447: uint16(119), - 448: uint16(120), - 449: uint16(121), - 450: uint16(122), - 451: uint16(123), - 452: uint16(124), - 453: uint16(125), - 454: uint16(216), - 455: uint16(217), - 456: uint16(193), - 457: uint16(216), - 458: uint16(217), - 459: uint16(131), + 444: uint16(138), + 445: uint16(139), + 446: uint16(263), + 447: uint16(253), + 448: uint16(264), + 449: uint16(255), + 450: uint16(205), + 451: uint16(275), + 452: uint16(87), + 453: uint16(19), + 454: uint16(89), + 455: uint16(89), + 456: uint16(194), + 457: uint16(92), + 458: uint16(92), + 459: uint16(199), 460: uint16(138), 461: uint16(139), - 462: uint16(230), + 462: uint16(268), 463: uint16(102), 464: uint16(103), 465: uint16(104), @@ -154840,37 +156344,37 @@ var _yy_lookahead = [2285]uint16{ 477: uint16(155), 478: uint16(156), 479: uint16(157), - 480: uint16(239), - 481: uint16(240), - 482: uint16(116), - 483: uint16(117), - 484: uint16(118), - 485: uint16(76), - 486: uint16(193), - 487: uint16(23), + 480: uint16(81), + 481: uint16(116), + 482: uint16(117), + 483: uint16(118), + 484: uint16(129), + 485: uint16(240), + 486: uint16(241), + 487: uint16(224), 488: uint16(19), - 489: uint16(25), - 490: uint16(22), - 491: uint16(253), + 489: uint16(226), + 490: uint16(314), + 491: uint16(315), 492: uint16(23), - 493: uint16(252), - 494: uint16(253), - 495: uint16(108), - 496: uint16(87), - 497: uint16(204), - 498: uint16(89), - 499: uint16(261), - 500: uint16(198), - 501: uint16(92), - 502: uint16(261), - 503: uint16(116), - 504: uint16(117), - 505: uint16(118), - 506: uint16(193), - 507: uint16(306), - 508: uint16(307), - 509: uint16(216), - 510: uint16(217), + 493: uint16(25), + 494: uint16(300), + 495: uint16(59), + 496: uint16(22), + 497: uint16(234), + 498: uint16(253), + 499: uint16(101), + 500: uint16(255), + 501: uint16(236), + 502: uint16(237), + 503: uint16(26), + 504: uint16(194), + 505: uint16(183), + 506: uint16(194), + 507: uint16(152), + 508: uint16(72), + 509: uint16(22), + 510: uint16(145), 511: uint16(150), 512: uint16(43), 513: uint16(44), @@ -154887,34 +156391,34 @@ var _yy_lookahead = [2285]uint16{ 524: uint16(55), 525: uint16(56), 526: uint16(57), - 527: uint16(59), - 528: uint16(193), - 529: uint16(216), - 530: uint16(217), + 527: uint16(217), + 528: uint16(218), + 529: uint16(217), + 530: uint16(218), 531: uint16(19), - 532: uint16(239), - 533: uint16(240), - 534: uint16(283), + 532: uint16(189), + 533: uint16(59), + 534: uint16(191), 535: uint16(23), - 536: uint16(106), - 537: uint16(107), - 538: uint16(108), - 539: uint16(109), - 540: uint16(110), - 541: uint16(111), - 542: uint16(112), - 543: uint16(113), - 544: uint16(73), - 545: uint16(252), - 546: uint16(253), - 547: uint16(142), - 548: uint16(308), - 549: uint16(309), - 550: uint16(138), - 551: uint16(139), - 552: uint16(81), - 553: uint16(313), - 554: uint16(145), + 536: uint16(59), + 537: uint16(138), + 538: uint16(139), + 539: uint16(196), + 540: uint16(135), + 541: uint16(198), + 542: uint16(232), + 543: uint16(283), + 544: uint16(232), + 545: uint16(140), + 546: uint16(59), + 547: uint16(287), + 548: uint16(205), + 549: uint16(275), + 550: uint16(116), + 551: uint16(205), + 552: uint16(116), + 553: uint16(117), + 554: uint16(118), 555: uint16(43), 556: uint16(44), 557: uint16(45), @@ -154930,7 +156434,7 @@ var _yy_lookahead = [2285]uint16{ 567: uint16(55), 568: uint16(56), 569: uint16(57), - 570: uint16(307), + 570: uint16(194), 571: uint16(102), 572: uint16(103), 573: uint16(104), @@ -154943,37 +156447,37 @@ var _yy_lookahead = [2285]uint16{ 580: uint16(111), 581: uint16(112), 582: uint16(113), - 583: uint16(281), - 584: uint16(116), - 585: uint16(117), - 586: uint16(118), - 587: uint16(285), - 588: uint16(23), - 589: uint16(193), - 590: uint16(25), - 591: uint16(119), - 592: uint16(59), - 593: uint16(193), - 594: uint16(122), - 595: uint16(123), - 596: uint16(124), - 597: uint16(59), - 598: uint16(127), - 599: uint16(203), + 583: uint16(240), + 584: uint16(241), + 585: uint16(194), + 586: uint16(240), + 587: uint16(241), + 588: uint16(314), + 589: uint16(315), + 590: uint16(116), + 591: uint16(117), + 592: uint16(118), + 593: uint16(116), + 594: uint16(117), + 595: uint16(118), + 596: uint16(253), + 597: uint16(194), + 598: uint16(255), + 599: uint16(253), 600: uint16(59), - 601: uint16(205), + 601: uint16(255), 602: uint16(19), - 603: uint16(268), - 604: uint16(132), - 605: uint16(25), + 603: uint16(116), + 604: uint16(117), + 605: uint16(118), 606: uint16(23), 607: uint16(22), - 608: uint16(193), - 609: uint16(138), - 610: uint16(139), - 611: uint16(249), - 612: uint16(204), - 613: uint16(251), + 608: uint16(217), + 609: uint16(218), + 610: uint16(142), + 611: uint16(268), + 612: uint16(205), + 613: uint16(275), 614: uint16(102), 615: uint16(103), 616: uint16(104), @@ -155002,29 +156506,29 @@ var _yy_lookahead = [2285]uint16{ 639: uint16(56), 640: uint16(57), 641: uint16(19), - 642: uint16(22), - 643: uint16(23), + 642: uint16(194), + 643: uint16(300), 644: uint16(59), 645: uint16(23), - 646: uint16(25), - 647: uint16(239), - 648: uint16(240), - 649: uint16(116), - 650: uint16(117), - 651: uint16(118), - 652: uint16(193), - 653: uint16(11), - 654: uint16(116), - 655: uint16(117), - 656: uint16(118), - 657: uint16(116), + 646: uint16(119), + 647: uint16(240), + 648: uint16(241), + 649: uint16(122), + 650: uint16(123), + 651: uint16(124), + 652: uint16(314), + 653: uint16(315), + 654: uint16(194), + 655: uint16(236), + 656: uint16(237), + 657: uint16(194), 658: uint16(117), - 659: uint16(118), - 660: uint16(252), - 661: uint16(269), - 662: uint16(22), - 663: uint16(193), - 664: uint16(15), + 659: uint16(132), + 660: uint16(253), + 661: uint16(81), + 662: uint16(255), + 663: uint16(205), + 664: uint16(59), 665: uint16(43), 666: uint16(44), 667: uint16(45), @@ -155040,11 +156544,11 @@ var _yy_lookahead = [2285]uint16{ 677: uint16(55), 678: uint16(56), 679: uint16(57), - 680: uint16(273), - 681: uint16(143), - 682: uint16(193), - 683: uint16(118), - 684: uint16(143), + 680: uint16(217), + 681: uint16(218), + 682: uint16(194), + 683: uint16(194), + 684: uint16(194), 685: uint16(102), 686: uint16(103), 687: uint16(104), @@ -155057,33 +156561,33 @@ var _yy_lookahead = [2285]uint16{ 694: uint16(111), 695: uint16(112), 696: uint16(113), - 697: uint16(76), - 698: uint16(118), - 699: uint16(59), - 700: uint16(241), + 697: uint16(294), + 698: uint16(240), + 699: uint16(241), + 700: uint16(120), 701: uint16(116), 702: uint16(117), 703: uint16(118), - 704: uint16(304), - 705: uint16(216), + 704: uint16(59), + 705: uint16(194), 706: uint16(217), - 707: uint16(292), - 708: uint16(143), - 709: uint16(60), - 710: uint16(89), - 711: uint16(241), + 707: uint16(218), + 708: uint16(211), + 709: uint16(212), + 710: uint16(213), + 711: uint16(253), 712: uint16(19), - 713: uint16(92), - 714: uint16(193), - 715: uint16(193), + 713: uint16(255), + 714: uint16(194), + 715: uint16(19), 716: uint16(23), - 717: uint16(22), - 718: uint16(311), - 719: uint16(312), - 720: uint16(231), - 721: uint16(101), - 722: uint16(22), - 723: uint16(143), + 717: uint16(254), + 718: uint16(138), + 719: uint16(139), + 720: uint16(24), + 721: uint16(232), + 722: uint16(117), + 723: uint16(194), 724: uint16(102), 725: uint16(103), 726: uint16(104), @@ -155112,29 +156616,29 @@ var _yy_lookahead = [2285]uint16{ 749: uint16(56), 750: uint16(57), 751: uint16(19), - 752: uint16(193), - 753: uint16(193), - 754: uint16(59), + 752: uint16(264), + 753: uint16(108), + 754: uint16(76), 755: uint16(23), - 756: uint16(116), - 757: uint16(117), - 758: uint16(118), - 759: uint16(59), - 760: uint16(201), - 761: uint16(21), - 762: uint16(241), - 763: uint16(304), - 764: uint16(193), - 765: uint16(206), - 766: uint16(127), - 767: uint16(128), - 768: uint16(129), - 769: uint16(193), - 770: uint16(128), - 771: uint16(129), - 772: uint16(235), - 773: uint16(236), - 774: uint16(304), + 756: uint16(127), + 757: uint16(128), + 758: uint16(129), + 759: uint16(311), + 760: uint16(312), + 761: uint16(116), + 762: uint16(117), + 763: uint16(118), + 764: uint16(316), + 765: uint16(87), + 766: uint16(306), + 767: uint16(89), + 768: uint16(308), + 769: uint16(194), + 770: uint16(92), + 771: uint16(22), + 772: uint16(59), + 773: uint16(194), + 774: uint16(22), 775: uint16(43), 776: uint16(44), 777: uint16(45), @@ -155150,11 +156654,11 @@ var _yy_lookahead = [2285]uint16{ 787: uint16(55), 788: uint16(56), 789: uint16(57), - 790: uint16(22), - 791: uint16(193), - 792: uint16(216), - 793: uint16(217), - 794: uint16(193), + 790: uint16(194), + 791: uint16(95), + 792: uint16(217), + 793: uint16(218), + 794: uint16(265), 795: uint16(102), 796: uint16(103), 797: uint16(104), @@ -155167,33 +156671,33 @@ var _yy_lookahead = [2285]uint16{ 804: uint16(111), 805: uint16(112), 806: uint16(113), - 807: uint16(231), - 808: uint16(193), - 809: uint16(193), - 810: uint16(193), - 811: uint16(116), - 812: uint16(117), - 813: uint16(118), - 814: uint16(216), - 815: uint16(217), - 816: uint16(116), - 817: uint16(117), - 818: uint16(118), - 819: uint16(226), - 820: uint16(80), - 821: uint16(193), + 807: uint16(232), + 808: uint16(59), + 809: uint16(113), + 810: uint16(25), + 811: uint16(59), + 812: uint16(194), + 813: uint16(217), + 814: uint16(218), + 815: uint16(119), + 816: uint16(120), + 817: uint16(121), + 818: uint16(122), + 819: uint16(123), + 820: uint16(124), + 821: uint16(125), 822: uint16(19), - 823: uint16(235), - 824: uint16(236), - 825: uint16(304), + 823: uint16(145), + 824: uint16(194), + 825: uint16(194), 826: uint16(23), - 827: uint16(211), - 828: uint16(212), - 829: uint16(231), - 830: uint16(204), - 831: uint16(216), - 832: uint16(217), - 833: uint16(205), + 827: uint16(131), + 828: uint16(232), + 829: uint16(116), + 830: uint16(117), + 831: uint16(118), + 832: uint16(35), + 833: uint16(194), 834: uint16(102), 835: uint16(103), 836: uint16(104), @@ -155222,29 +156726,29 @@ var _yy_lookahead = [2285]uint16{ 859: uint16(56), 860: uint16(57), 861: uint16(19), - 862: uint16(193), - 863: uint16(123), - 864: uint16(76), - 865: uint16(239), - 866: uint16(240), - 867: uint16(193), - 868: uint16(253), - 869: uint16(239), - 870: uint16(240), - 871: uint16(239), - 872: uint16(240), - 873: uint16(244), - 874: uint16(106), - 875: uint16(107), - 876: uint16(193), - 877: uint16(89), - 878: uint16(252), - 879: uint16(193), - 880: uint16(92), - 881: uint16(59), - 882: uint16(252), - 883: uint16(254), - 884: uint16(252), + 862: uint16(194), + 863: uint16(66), + 864: uint16(194), + 865: uint16(116), + 866: uint16(117), + 867: uint16(118), + 868: uint16(116), + 869: uint16(117), + 870: uint16(118), + 871: uint16(74), + 872: uint16(242), + 873: uint16(294), + 874: uint16(194), + 875: uint16(194), + 876: uint16(206), + 877: uint16(23), + 878: uint16(194), + 879: uint16(25), + 880: uint16(194), + 881: uint16(111), + 882: uint16(112), + 883: uint16(113), + 884: uint16(25), 885: uint16(43), 886: uint16(44), 887: uint16(45), @@ -155260,11 +156764,11 @@ var _yy_lookahead = [2285]uint16{ 897: uint16(55), 898: uint16(56), 899: uint16(57), - 900: uint16(284), - 901: uint16(161), - 902: uint16(216), + 900: uint16(24), + 901: uint16(194), + 902: uint16(194), 903: uint16(217), - 904: uint16(193), + 904: uint16(218), 905: uint16(102), 906: uint16(103), 907: uint16(104), @@ -155277,33 +156781,33 @@ var _yy_lookahead = [2285]uint16{ 914: uint16(111), 915: uint16(112), 916: uint16(113), - 917: uint16(231), - 918: uint16(193), - 919: uint16(244), - 920: uint16(187), - 921: uint16(188), - 922: uint16(189), - 923: uint16(190), - 924: uint16(7), - 925: uint16(8), - 926: uint16(9), - 927: uint16(309), - 928: uint16(195), - 929: uint16(254), - 930: uint16(197), - 931: uint16(313), + 917: uint16(241), + 918: uint16(232), + 919: uint16(194), + 920: uint16(212), + 921: uint16(213), + 922: uint16(242), + 923: uint16(242), + 924: uint16(217), + 925: uint16(218), + 926: uint16(242), + 927: uint16(130), + 928: uint16(11), + 929: uint16(253), + 930: uint16(194), + 931: uint16(255), 932: uint16(19), - 933: uint16(127), - 934: uint16(128), - 935: uint16(129), - 936: uint16(262), - 937: uint16(204), - 938: uint16(22), - 939: uint16(117), - 940: uint16(24), - 941: uint16(216), + 933: uint16(265), + 934: uint16(149), + 935: uint16(59), + 936: uint16(306), + 937: uint16(194), + 938: uint16(308), + 939: uint16(232), + 940: uint16(309), + 941: uint16(310), 942: uint16(217), - 943: uint16(273), + 943: uint16(218), 944: uint16(102), 945: uint16(103), 946: uint16(104), @@ -155331,36 +156835,36 @@ var _yy_lookahead = [2285]uint16{ 968: uint16(55), 969: uint16(56), 970: uint16(57), - 971: uint16(193), - 972: uint16(239), - 973: uint16(240), - 974: uint16(193), - 975: uint16(59), + 971: uint16(194), + 972: uint16(194), + 973: uint16(59), + 974: uint16(194), + 975: uint16(239), 976: uint16(19), - 977: uint16(188), - 978: uint16(253), - 979: uint16(190), - 980: uint16(193), - 981: uint16(311), - 982: uint16(312), - 983: uint16(16), - 984: uint16(195), - 985: uint16(252), - 986: uint16(197), - 987: uint16(193), - 988: uint16(19), - 989: uint16(301), - 990: uint16(302), - 991: uint16(135), - 992: uint16(193), - 993: uint16(204), - 994: uint16(216), + 977: uint16(194), + 978: uint16(25), + 979: uint16(254), + 980: uint16(303), + 981: uint16(304), + 982: uint16(23), + 983: uint16(194), + 984: uint16(25), + 985: uint16(126), + 986: uint16(306), + 987: uint16(306), + 988: uint16(308), + 989: uint16(308), + 990: uint16(306), + 991: uint16(271), + 992: uint16(308), + 993: uint16(117), + 994: uint16(286), 995: uint16(217), - 996: uint16(140), - 997: uint16(216), - 998: uint16(217), - 999: uint16(266), - 1000: uint16(204), + 996: uint16(218), + 997: uint16(217), + 998: uint16(218), + 999: uint16(194), + 1000: uint16(194), 1001: uint16(159), 1002: uint16(45), 1003: uint16(46), @@ -155387,38 +156891,38 @@ var _yy_lookahead = [2285]uint16{ 1024: uint16(111), 1025: uint16(112), 1026: uint16(113), - 1027: uint16(12), + 1027: uint16(59), 1028: uint16(239), - 1029: uint16(240), - 1030: uint16(193), - 1031: uint16(298), - 1032: uint16(238), - 1033: uint16(117), - 1034: uint16(253), - 1035: uint16(239), + 1029: uint16(194), + 1030: uint16(116), + 1031: uint16(117), + 1032: uint16(118), + 1033: uint16(260), + 1034: uint16(254), + 1035: uint16(194), 1036: uint16(240), - 1037: uint16(238), - 1038: uint16(259), - 1039: uint16(260), - 1040: uint16(193), - 1041: uint16(252), - 1042: uint16(27), - 1043: uint16(193), - 1044: uint16(77), - 1045: uint16(193), - 1046: uint16(79), - 1047: uint16(204), - 1048: uint16(252), - 1049: uint16(262), - 1050: uint16(193), - 1051: uint16(299), - 1052: uint16(300), - 1053: uint16(193), - 1054: uint16(100), - 1055: uint16(266), - 1056: uint16(278), - 1057: uint16(42), - 1058: uint16(204), + 1037: uint16(241), + 1038: uint16(194), + 1039: uint16(233), + 1040: uint16(205), + 1041: uint16(240), + 1042: uint16(241), + 1043: uint16(205), + 1044: uint16(239), + 1045: uint16(128), + 1046: uint16(129), + 1047: uint16(270), + 1048: uint16(265), + 1049: uint16(253), + 1050: uint16(194), + 1051: uint16(255), + 1052: uint16(217), + 1053: uint16(218), + 1054: uint16(253), + 1055: uint16(194), + 1056: uint16(255), + 1057: uint16(143), + 1058: uint16(280), 1059: uint16(102), 1060: uint16(103), 1061: uint16(104), @@ -155431,51 +156935,51 @@ var _yy_lookahead = [2285]uint16{ 1068: uint16(111), 1069: uint16(112), 1070: uint16(113), - 1071: uint16(117), + 1071: uint16(118), 1072: uint16(159), - 1073: uint16(216), - 1074: uint16(217), - 1075: uint16(121), - 1076: uint16(216), - 1077: uint16(217), - 1078: uint16(63), - 1079: uint16(193), - 1080: uint16(193), - 1081: uint16(193), - 1082: uint16(239), - 1083: uint16(240), - 1084: uint16(115), - 1085: uint16(116), - 1086: uint16(193), - 1087: uint16(298), - 1088: uint16(73), - 1089: uint16(240), - 1090: uint16(238), - 1091: uint16(231), + 1073: uint16(217), + 1074: uint16(218), + 1075: uint16(240), + 1076: uint16(241), + 1077: uint16(118), + 1078: uint16(240), + 1079: uint16(241), + 1080: uint16(194), + 1081: uint16(194), + 1082: uint16(194), + 1083: uint16(239), + 1084: uint16(116), + 1085: uint16(117), + 1086: uint16(118), + 1087: uint16(22), + 1088: uint16(253), + 1089: uint16(254), + 1090: uint16(255), + 1091: uint16(253), 1092: uint16(19), - 1093: uint16(239), - 1094: uint16(240), - 1095: uint16(252), - 1096: uint16(22), + 1093: uint16(255), + 1094: uint16(233), + 1095: uint16(194), + 1096: uint16(143), 1097: uint16(24), - 1098: uint16(211), + 1098: uint16(263), 1099: uint16(212), - 1100: uint16(263), - 1101: uint16(252), - 1102: uint16(216), + 1100: uint16(213), + 1101: uint16(194), + 1102: uint16(143), 1103: uint16(217), - 1104: uint16(216), + 1104: uint16(218), 1105: uint16(217), - 1106: uint16(252), - 1107: uint16(153), - 1108: uint16(154), - 1109: uint16(155), - 1110: uint16(253), - 1111: uint16(193), + 1106: uint16(218), + 1107: uint16(261), + 1108: uint16(262), + 1109: uint16(271), + 1110: uint16(254), + 1111: uint16(143), 1112: uint16(19), - 1113: uint16(144), - 1114: uint16(213), - 1115: uint16(268), + 1113: uint16(7), + 1114: uint16(8), + 1115: uint16(9), 1116: uint16(43), 1117: uint16(44), 1118: uint16(45), @@ -155491,11 +156995,11 @@ var _yy_lookahead = [2285]uint16{ 1128: uint16(55), 1129: uint16(56), 1130: uint16(57), - 1131: uint16(193), + 1131: uint16(16), 1132: uint16(19), - 1133: uint16(59), - 1134: uint16(216), - 1135: uint16(217), + 1133: uint16(22), + 1134: uint16(23), + 1135: uint16(294), 1136: uint16(43), 1137: uint16(44), 1138: uint16(45), @@ -155511,11 +157015,11 @@ var _yy_lookahead = [2285]uint16{ 1148: uint16(55), 1149: uint16(56), 1150: uint16(57), - 1151: uint16(193), - 1152: uint16(19), - 1153: uint16(24), - 1154: uint16(216), - 1155: uint16(217), + 1151: uint16(312), + 1152: uint16(194), + 1153: uint16(214), + 1154: uint16(21), + 1155: uint16(316), 1156: uint16(43), 1157: uint16(44), 1158: uint16(45), @@ -155531,10 +157035,10 @@ var _yy_lookahead = [2285]uint16{ 1168: uint16(55), 1169: uint16(56), 1170: uint16(57), - 1171: uint16(284), - 1172: uint16(193), - 1173: uint16(208), - 1174: uint16(209), + 1171: uint16(106), + 1172: uint16(107), + 1173: uint16(286), + 1174: uint16(194), 1175: uint16(102), 1176: uint16(103), 1177: uint16(104), @@ -155547,14 +157051,14 @@ var _yy_lookahead = [2285]uint16{ 1184: uint16(111), 1185: uint16(112), 1186: uint16(113), - 1187: uint16(286), - 1188: uint16(59), - 1189: uint16(193), - 1190: uint16(232), - 1191: uint16(117), - 1192: uint16(291), - 1193: uint16(193), - 1194: uint16(193), + 1187: uint16(207), + 1188: uint16(158), + 1189: uint16(59), + 1190: uint16(160), + 1191: uint16(22), + 1192: uint16(77), + 1193: uint16(24), + 1194: uint16(79), 1195: uint16(102), 1196: uint16(103), 1197: uint16(104), @@ -155567,14 +157071,14 @@ var _yy_lookahead = [2285]uint16{ 1204: uint16(111), 1205: uint16(112), 1206: uint16(113), - 1207: uint16(193), - 1208: uint16(204), - 1209: uint16(22), - 1210: uint16(23), - 1211: uint16(193), - 1212: uint16(25), - 1213: uint16(66), - 1214: uint16(193), + 1207: uint16(194), + 1208: uint16(194), + 1209: uint16(229), + 1210: uint16(194), + 1211: uint16(231), + 1212: uint16(101), + 1213: uint16(80), + 1214: uint16(22), 1215: uint16(102), 1216: uint16(103), 1217: uint16(104), @@ -155587,39 +157091,39 @@ var _yy_lookahead = [2285]uint16{ 1224: uint16(111), 1225: uint16(112), 1226: uint16(113), - 1227: uint16(193), - 1228: uint16(193), - 1229: uint16(193), - 1230: uint16(216), - 1231: uint16(217), - 1232: uint16(85), - 1233: uint16(193), - 1234: uint16(238), + 1227: uint16(288), + 1228: uint16(59), + 1229: uint16(12), + 1230: uint16(217), + 1231: uint16(218), + 1232: uint16(293), + 1233: uint16(217), + 1234: uint16(218), 1235: uint16(19), - 1236: uint16(16), - 1237: uint16(216), - 1238: uint16(217), - 1239: uint16(238), - 1240: uint16(193), - 1241: uint16(94), - 1242: uint16(193), - 1243: uint16(239), - 1244: uint16(240), - 1245: uint16(231), - 1246: uint16(117), - 1247: uint16(268), - 1248: uint16(35), - 1249: uint16(116), - 1250: uint16(216), - 1251: uint16(217), - 1252: uint16(216), - 1253: uint16(217), - 1254: uint16(22), - 1255: uint16(23), - 1256: uint16(252), - 1257: uint16(25), - 1258: uint16(208), - 1259: uint16(209), + 1236: uint16(106), + 1237: uint16(107), + 1238: uint16(59), + 1239: uint16(19), + 1240: uint16(16), + 1241: uint16(127), + 1242: uint16(128), + 1243: uint16(129), + 1244: uint16(27), + 1245: uint16(115), + 1246: uint16(116), + 1247: uint16(117), + 1248: uint16(118), + 1249: uint16(194), + 1250: uint16(120), + 1251: uint16(59), + 1252: uint16(22), + 1253: uint16(194), + 1254: uint16(24), + 1255: uint16(194), + 1256: uint16(123), + 1257: uint16(100), + 1258: uint16(128), + 1259: uint16(42), 1260: uint16(44), 1261: uint16(45), 1262: uint16(46), @@ -155634,50 +157138,50 @@ var _yy_lookahead = [2285]uint16{ 1271: uint16(55), 1272: uint16(56), 1273: uint16(57), - 1274: uint16(193), - 1275: uint16(193), - 1276: uint16(19), - 1277: uint16(5), - 1278: uint16(59), - 1279: uint16(66), - 1280: uint16(193), - 1281: uint16(263), - 1282: uint16(10), - 1283: uint16(11), - 1284: uint16(12), - 1285: uint16(13), - 1286: uint16(14), - 1287: uint16(74), - 1288: uint16(101), - 1289: uint16(17), - 1290: uint16(193), - 1291: uint16(46), - 1292: uint16(193), - 1293: uint16(146), - 1294: uint16(193), - 1295: uint16(76), - 1296: uint16(213), - 1297: uint16(77), - 1298: uint16(263), - 1299: uint16(79), - 1300: uint16(12), - 1301: uint16(260), - 1302: uint16(30), - 1303: uint16(46), - 1304: uint16(32), - 1305: uint16(264), - 1306: uint16(87), - 1307: uint16(193), - 1308: uint16(89), - 1309: uint16(29), - 1310: uint16(263), - 1311: uint16(92), - 1312: uint16(40), - 1313: uint16(33), - 1314: uint16(232), - 1315: uint16(27), - 1316: uint16(193), - 1317: uint16(108), + 1274: uint16(117), + 1275: uint16(194), + 1276: uint16(217), + 1277: uint16(218), + 1278: uint16(121), + 1279: uint16(100), + 1280: uint16(63), + 1281: uint16(194), + 1282: uint16(245), + 1283: uint16(153), + 1284: uint16(194), + 1285: uint16(155), + 1286: uint16(117), + 1287: uint16(19), + 1288: uint16(115), + 1289: uint16(194), + 1290: uint16(73), + 1291: uint16(214), + 1292: uint16(194), + 1293: uint16(256), + 1294: uint16(161), + 1295: uint16(116), + 1296: uint16(117), + 1297: uint16(194), + 1298: uint16(217), + 1299: uint16(218), + 1300: uint16(121), + 1301: uint16(77), + 1302: uint16(194), + 1303: uint16(79), + 1304: uint16(217), + 1305: uint16(218), + 1306: uint16(194), + 1307: uint16(217), + 1308: uint16(218), + 1309: uint16(117), + 1310: uint16(153), + 1311: uint16(154), + 1312: uint16(155), + 1313: uint16(254), + 1314: uint16(46), + 1315: uint16(217), + 1316: uint16(218), + 1317: uint16(144), 1318: uint16(102), 1319: uint16(103), 1320: uint16(104), @@ -155690,1025 +157194,1068 @@ var _yy_lookahead = [2285]uint16{ 1327: uint16(111), 1328: uint16(112), 1329: uint16(113), - 1330: uint16(42), - 1331: uint16(138), - 1332: uint16(139), - 1333: uint16(101), - 1334: uint16(193), - 1335: uint16(116), - 1336: uint16(117), - 1337: uint16(118), + 1330: uint16(232), + 1331: uint16(270), + 1332: uint16(153), + 1333: uint16(154), + 1334: uint16(155), + 1335: uint16(115), + 1336: uint16(116), + 1337: uint16(66), 1338: uint16(19), 1339: uint16(20), - 1340: uint16(255), + 1340: uint16(183), 1341: uint16(22), - 1342: uint16(70), - 1343: uint16(130), - 1344: uint16(135), - 1345: uint16(65), - 1346: uint16(256), - 1347: uint16(257), - 1348: uint16(193), - 1349: uint16(140), - 1350: uint16(78), - 1351: uint16(63), - 1352: uint16(193), - 1353: uint16(81), - 1354: uint16(193), + 1342: uint16(12), + 1343: uint16(312), + 1344: uint16(254), + 1345: uint16(194), + 1346: uint16(262), + 1347: uint16(316), + 1348: uint16(209), + 1349: uint16(210), + 1350: uint16(266), + 1351: uint16(239), + 1352: uint16(194), + 1353: uint16(194), + 1354: uint16(108), 1355: uint16(36), - 1356: uint16(193), - 1357: uint16(216), - 1358: uint16(217), - 1359: uint16(193), - 1360: uint16(115), - 1361: uint16(193), - 1362: uint16(263), - 1363: uint16(193), - 1364: uint16(145), - 1365: uint16(268), - 1366: uint16(59), + 1356: uint16(85), + 1357: uint16(27), + 1358: uint16(19), + 1359: uint16(20), + 1360: uint16(265), + 1361: uint16(22), + 1362: uint16(183), + 1363: uint16(245), + 1364: uint16(144), + 1365: uint16(94), + 1366: uint16(25), 1367: uint16(48), - 1368: uint16(193), - 1369: uint16(193), - 1370: uint16(98), - 1371: uint16(193), - 1372: uint16(115), - 1373: uint16(193), - 1374: uint16(291), - 1375: uint16(216), + 1368: uint16(217), + 1369: uint16(218), + 1370: uint16(293), + 1371: uint16(194), + 1372: uint16(42), + 1373: uint16(270), + 1374: uint16(256), + 1375: uint16(36), 1376: uint16(217), - 1377: uint16(193), + 1377: uint16(218), 1378: uint16(59), - 1379: uint16(216), - 1380: uint16(217), - 1381: uint16(161), - 1382: uint16(216), - 1383: uint16(217), - 1384: uint16(216), - 1385: uint16(217), - 1386: uint16(216), - 1387: uint16(217), - 1388: uint16(131), - 1389: uint16(193), + 1379: uint16(194), + 1380: uint16(25), + 1381: uint16(135), + 1382: uint16(194), + 1383: uint16(115), + 1384: uint16(194), + 1385: uint16(161), + 1386: uint16(140), + 1387: uint16(194), + 1388: uint16(194), + 1389: uint16(15), 1390: uint16(71), - 1391: uint16(193), - 1392: uint16(216), - 1393: uint16(217), - 1394: uint16(216), - 1395: uint16(217), - 1396: uint16(216), - 1397: uint16(217), - 1398: uint16(193), - 1399: uint16(260), - 1400: uint16(216), - 1401: uint16(217), - 1402: uint16(19), - 1403: uint16(264), + 1391: uint16(194), + 1392: uint16(312), + 1393: uint16(63), + 1394: uint16(217), + 1395: uint16(218), + 1396: uint16(316), + 1397: uint16(194), + 1398: uint16(59), + 1399: uint16(131), + 1400: uint16(301), + 1401: uint16(302), + 1402: uint16(217), + 1403: uint16(218), 1404: uint16(85), - 1405: uint16(133), - 1406: uint16(244), - 1407: uint16(100), - 1408: uint16(193), + 1405: uint16(217), + 1406: uint16(218), + 1407: uint16(217), + 1408: uint16(218), 1409: uint16(90), - 1410: uint16(138), - 1411: uint16(139), - 1412: uint16(216), - 1413: uint16(217), - 1414: uint16(216), - 1415: uint16(217), - 1416: uint16(254), - 1417: uint16(244), - 1418: uint16(193), + 1410: uint16(71), + 1411: uint16(217), + 1412: uint16(218), + 1413: uint16(19), + 1414: uint16(217), + 1415: uint16(218), + 1416: uint16(245), + 1417: uint16(146), + 1418: uint16(262), 1419: uint16(100), - 1420: uint16(193), - 1421: uint16(216), - 1422: uint16(217), - 1423: uint16(116), - 1424: uint16(117), + 1420: uint16(217), + 1421: uint16(218), + 1422: uint16(266), + 1423: uint16(265), + 1424: uint16(85), 1425: uint16(106), 1426: uint16(107), - 1427: uint16(254), - 1428: uint16(121), - 1429: uint16(193), - 1430: uint16(115), - 1431: uint16(216), - 1432: uint16(217), + 1427: uint16(256), + 1428: uint16(312), + 1429: uint16(90), + 1430: uint16(209), + 1431: uint16(210), + 1432: uint16(316), 1433: uint16(114), - 1434: uint16(162), + 1434: uint16(60), 1435: uint16(116), 1436: uint16(117), 1437: uint16(118), - 1438: uint16(115), - 1439: uint16(244), + 1438: uint16(194), + 1439: uint16(100), 1440: uint16(121), - 1441: uint16(216), - 1442: uint16(217), - 1443: uint16(216), - 1444: uint16(217), - 1445: uint16(193), - 1446: uint16(309), - 1447: uint16(193), - 1448: uint16(31), - 1449: uint16(254), - 1450: uint16(313), - 1451: uint16(309), - 1452: uint16(216), - 1453: uint16(217), - 1454: uint16(309), - 1455: uint16(313), - 1456: uint16(39), - 1457: uint16(193), - 1458: uint16(313), - 1459: uint16(309), - 1460: uint16(153), - 1461: uint16(154), - 1462: uint16(155), - 1463: uint16(313), - 1464: uint16(193), - 1465: uint16(150), - 1466: uint16(25), - 1467: uint16(144), - 1468: uint16(216), - 1469: uint16(217), - 1470: uint16(216), - 1471: uint16(217), + 1441: uint16(194), + 1442: uint16(194), + 1443: uint16(145), + 1444: uint16(115), + 1445: uint16(106), + 1446: uint16(107), + 1447: uint16(19), + 1448: uint16(46), + 1449: uint16(19), + 1450: uint16(20), + 1451: uint16(24), + 1452: uint16(22), + 1453: uint16(114), + 1454: uint16(194), + 1455: uint16(116), + 1456: uint16(117), + 1457: uint16(118), + 1458: uint16(194), + 1459: uint16(245), + 1460: uint16(121), + 1461: uint16(194), + 1462: uint16(164), + 1463: uint16(194), + 1464: uint16(217), + 1465: uint16(218), + 1466: uint16(36), + 1467: uint16(194), + 1468: uint16(258), + 1469: uint16(259), + 1470: uint16(256), + 1471: uint16(194), 1472: uint16(153), 1473: uint16(154), 1474: uint16(155), 1475: uint16(156), 1476: uint16(157), - 1478: uint16(1), - 1479: uint16(2), - 1480: uint16(216), + 1477: uint16(217), + 1478: uint16(218), + 1479: uint16(150), + 1480: uint16(31), 1481: uint16(217), - 1482: uint16(5), - 1483: uint16(149), - 1484: uint16(150), - 1485: uint16(22), - 1486: uint16(193), - 1487: uint16(10), - 1488: uint16(11), - 1489: uint16(12), - 1490: uint16(13), - 1491: uint16(14), - 1492: uint16(193), - 1493: uint16(158), - 1494: uint16(17), - 1495: uint16(160), - 1496: uint16(193), - 1497: uint16(19), - 1498: uint16(20), - 1499: uint16(116), - 1500: uint16(22), - 1501: uint16(25), - 1502: uint16(193), - 1503: uint16(24), - 1504: uint16(22), - 1505: uint16(193), - 1506: uint16(24), - 1507: uint16(30), - 1508: uint16(226), - 1509: uint16(32), - 1510: uint16(19), - 1511: uint16(20), - 1512: uint16(226), - 1513: uint16(22), - 1514: uint16(36), - 1515: uint16(193), - 1516: uint16(53), - 1517: uint16(40), - 1518: uint16(193), - 1519: uint16(216), - 1520: uint16(217), - 1521: uint16(193), - 1522: uint16(23), - 1523: uint16(193), - 1524: uint16(25), - 1525: uint16(216), - 1526: uint16(217), - 1527: uint16(36), - 1528: uint16(216), - 1529: uint16(217), - 1530: uint16(193), - 1531: uint16(99), - 1532: uint16(193), - 1533: uint16(193), - 1534: uint16(22), - 1535: uint16(193), - 1536: uint16(193), - 1537: uint16(59), - 1538: uint16(216), + 1482: uint16(218), + 1483: uint16(142), + 1484: uint16(217), + 1485: uint16(218), + 1486: uint16(217), + 1487: uint16(218), + 1488: uint16(39), + 1489: uint16(59), + 1490: uint16(217), + 1491: uint16(218), + 1492: uint16(153), + 1493: uint16(154), + 1494: uint16(155), + 1495: uint16(156), + 1496: uint16(157), + 1497: uint16(149), + 1498: uint16(150), + 1499: uint16(5), + 1500: uint16(145), + 1501: uint16(71), + 1502: uint16(183), + 1503: uint16(245), + 1504: uint16(10), + 1505: uint16(11), + 1506: uint16(12), + 1507: uint16(13), + 1508: uint16(14), + 1509: uint16(194), + 1510: uint16(116), + 1511: uint16(17), + 1512: uint16(129), + 1513: uint16(227), + 1514: uint16(256), + 1515: uint16(85), + 1516: uint16(194), + 1517: uint16(115), + 1518: uint16(194), + 1519: uint16(23), + 1520: uint16(90), + 1521: uint16(25), + 1522: uint16(183), + 1523: uint16(99), + 1524: uint16(30), + 1525: uint16(97), + 1526: uint16(32), + 1527: uint16(22), + 1528: uint16(22), + 1529: uint16(194), + 1530: uint16(100), + 1531: uint16(194), + 1532: uint16(217), + 1533: uint16(218), + 1534: uint16(40), + 1535: uint16(152), + 1536: uint16(106), + 1537: uint16(107), + 1538: uint16(23), 1539: uint16(217), - 1540: uint16(193), - 1541: uint16(216), - 1542: uint16(217), - 1543: uint16(193), - 1544: uint16(216), - 1545: uint16(217), - 1546: uint16(193), - 1547: uint16(70), - 1548: uint16(129), - 1549: uint16(71), - 1550: uint16(59), - 1551: uint16(129), - 1552: uint16(193), - 1553: uint16(216), + 1540: uint16(218), + 1541: uint16(194), + 1542: uint16(19), + 1543: uint16(20), + 1544: uint16(114), + 1545: uint16(22), + 1546: uint16(116), + 1547: uint16(117), + 1548: uint16(118), + 1549: uint16(257), + 1550: uint16(194), + 1551: uint16(121), + 1552: uint16(217), + 1553: uint16(218), 1554: uint16(217), - 1555: uint16(78), - 1556: uint16(216), - 1557: uint16(217), - 1558: uint16(81), - 1559: uint16(216), - 1560: uint16(217), - 1561: uint16(193), - 1562: uint16(71), - 1563: uint16(85), - 1564: uint16(193), - 1565: uint16(133), - 1566: uint16(193), - 1567: uint16(126), - 1568: uint16(90), - 1569: uint16(216), - 1570: uint16(217), - 1571: uint16(152), - 1572: uint16(258), - 1573: uint16(61), - 1574: uint16(152), - 1575: uint16(98), - 1576: uint16(85), - 1577: uint16(193), - 1578: uint16(100), - 1579: uint16(193), - 1580: uint16(23), - 1581: uint16(90), - 1582: uint16(25), - 1583: uint16(121), - 1584: uint16(106), - 1585: uint16(107), - 1586: uint16(23), - 1587: uint16(216), - 1588: uint16(217), - 1589: uint16(216), - 1590: uint16(217), - 1591: uint16(100), - 1592: uint16(114), - 1593: uint16(131), - 1594: uint16(116), - 1595: uint16(117), - 1596: uint16(118), - 1597: uint16(106), - 1598: uint16(107), - 1599: uint16(121), - 1600: uint16(216), - 1601: uint16(217), - 1602: uint16(216), - 1603: uint16(217), - 1604: uint16(193), - 1605: uint16(114), - 1606: uint16(193), - 1607: uint16(116), - 1608: uint16(117), - 1609: uint16(118), - 1610: uint16(133), - 1611: uint16(22), - 1612: uint16(121), - 1613: uint16(193), - 1614: uint16(59), - 1615: uint16(138), - 1616: uint16(139), - 1617: uint16(193), - 1618: uint16(142), - 1619: uint16(193), - 1620: uint16(141), - 1621: uint16(23), - 1622: uint16(23), - 1623: uint16(25), - 1624: uint16(25), - 1625: uint16(120), - 1626: uint16(121), - 1627: uint16(216), - 1628: uint16(217), - 1629: uint16(216), - 1630: uint16(217), - 1631: uint16(153), - 1632: uint16(154), - 1633: uint16(155), - 1634: uint16(156), - 1635: uint16(157), - 1636: uint16(216), - 1637: uint16(217), - 1638: uint16(19), - 1639: uint16(162), - 1640: uint16(216), - 1641: uint16(217), - 1642: uint16(216), - 1643: uint16(217), - 1644: uint16(153), - 1645: uint16(154), - 1646: uint16(155), - 1647: uint16(156), - 1648: uint16(157), - 1649: uint16(1), - 1650: uint16(2), - 1651: uint16(193), - 1652: uint16(59), - 1653: uint16(5), - 1654: uint16(19), - 1655: uint16(20), - 1656: uint16(318), - 1657: uint16(22), - 1658: uint16(10), - 1659: uint16(11), - 1660: uint16(12), - 1661: uint16(13), - 1662: uint16(14), - 1663: uint16(193), - 1664: uint16(59), - 1665: uint16(17), - 1666: uint16(193), - 1667: uint16(23), - 1668: uint16(23), - 1669: uint16(25), - 1670: uint16(25), - 1671: uint16(36), - 1672: uint16(117), - 1673: uint16(193), - 1674: uint16(216), - 1675: uint16(217), - 1676: uint16(193), - 1677: uint16(23), - 1678: uint16(30), - 1679: uint16(25), - 1680: uint16(32), - 1681: uint16(19), - 1682: uint16(20), - 1683: uint16(23), - 1684: uint16(22), - 1685: uint16(25), - 1686: uint16(216), - 1687: uint16(217), - 1688: uint16(40), - 1689: uint16(216), + 1555: uint16(218), + 1556: uint16(194), + 1557: uint16(133), + 1558: uint16(53), + 1559: uint16(36), + 1560: uint16(23), + 1561: uint16(23), + 1562: uint16(25), + 1563: uint16(25), + 1564: uint16(70), + 1565: uint16(120), + 1566: uint16(121), + 1567: uint16(61), + 1568: uint16(141), + 1569: uint16(7), + 1570: uint16(8), + 1571: uint16(121), + 1572: uint16(78), + 1573: uint16(217), + 1574: uint16(218), + 1575: uint16(81), + 1576: uint16(23), + 1577: uint16(227), + 1578: uint16(25), + 1579: uint16(217), + 1580: uint16(218), + 1581: uint16(131), + 1582: uint16(59), + 1583: uint16(153), + 1584: uint16(154), + 1585: uint16(155), + 1586: uint16(156), + 1587: uint16(157), + 1589: uint16(1), + 1590: uint16(2), + 1591: uint16(59), + 1592: uint16(98), + 1593: uint16(5), + 1594: uint16(71), + 1595: uint16(23), + 1596: uint16(227), + 1597: uint16(25), + 1598: uint16(10), + 1599: uint16(11), + 1600: uint16(12), + 1601: uint16(13), + 1602: uint16(14), + 1603: uint16(83), + 1604: uint16(84), + 1605: uint16(17), + 1606: uint16(23), + 1607: uint16(23), + 1608: uint16(25), + 1609: uint16(25), + 1610: uint16(59), + 1611: uint16(194), + 1612: uint16(194), + 1613: uint16(183), + 1614: uint16(23), + 1615: uint16(23), + 1616: uint16(25), + 1617: uint16(25), + 1618: uint16(30), + 1619: uint16(194), + 1620: uint16(32), + 1621: uint16(19), + 1622: uint16(20), + 1623: uint16(100), + 1624: uint16(22), + 1625: uint16(194), + 1626: uint16(194), + 1627: uint16(133), + 1628: uint16(40), + 1629: uint16(106), + 1630: uint16(107), + 1631: uint16(108), + 1632: uint16(138), + 1633: uint16(139), + 1634: uint16(194), + 1635: uint16(217), + 1636: uint16(218), + 1637: uint16(114), + 1638: uint16(36), + 1639: uint16(116), + 1640: uint16(117), + 1641: uint16(118), + 1642: uint16(217), + 1643: uint16(218), + 1644: uint16(121), + 1645: uint16(194), + 1646: uint16(194), + 1647: uint16(194), + 1648: uint16(23), + 1649: uint16(117), + 1650: uint16(25), + 1651: uint16(194), + 1652: uint16(23), + 1653: uint16(23), + 1654: uint16(25), + 1655: uint16(25), + 1656: uint16(162), + 1657: uint16(194), + 1658: uint16(70), + 1659: uint16(194), + 1660: uint16(145), + 1661: uint16(59), + 1662: uint16(23), + 1663: uint16(153), + 1664: uint16(25), + 1665: uint16(155), + 1666: uint16(78), + 1667: uint16(194), + 1668: uint16(117), + 1669: uint16(81), + 1670: uint16(217), + 1671: uint16(218), + 1672: uint16(194), + 1673: uint16(71), + 1674: uint16(217), + 1675: uint16(218), + 1676: uint16(153), + 1677: uint16(154), + 1678: uint16(155), + 1679: uint16(156), + 1680: uint16(157), + 1681: uint16(194), + 1682: uint16(217), + 1683: uint16(218), + 1684: uint16(194), + 1685: uint16(23), + 1686: uint16(98), + 1687: uint16(25), + 1688: uint16(321), + 1689: uint16(194), 1690: uint16(217), - 1691: uint16(7), - 1692: uint16(8), - 1693: uint16(23), - 1694: uint16(59), - 1695: uint16(25), - 1696: uint16(83), - 1697: uint16(84), - 1698: uint16(36), - 1699: uint16(23), - 1700: uint16(193), - 1701: uint16(25), - 1702: uint16(23), - 1703: uint16(23), - 1704: uint16(25), - 1705: uint16(25), - 1706: uint16(71), - 1707: uint16(153), - 1708: uint16(145), - 1709: uint16(155), - 1710: uint16(117), - 1711: uint16(153), - 1712: uint16(23), - 1713: uint16(155), - 1714: uint16(25), - 1715: uint16(23), - 1716: uint16(97), - 1717: uint16(25), - 1718: uint16(70), - 1719: uint16(193), - 1720: uint16(193), - 1721: uint16(59), - 1722: uint16(117), - 1723: uint16(236), - 1724: uint16(193), - 1725: uint16(193), - 1726: uint16(78), - 1727: uint16(193), - 1728: uint16(193), - 1729: uint16(81), - 1730: uint16(141), - 1731: uint16(193), - 1732: uint16(193), - 1733: uint16(71), - 1734: uint16(193), - 1735: uint16(100), - 1736: uint16(288), - 1737: uint16(287), - 1738: uint16(242), - 1739: uint16(255), - 1740: uint16(255), - 1741: uint16(106), - 1742: uint16(107), - 1743: uint16(108), - 1744: uint16(255), - 1745: uint16(255), - 1746: uint16(98), - 1747: uint16(243), - 1748: uint16(297), - 1749: uint16(114), - 1750: uint16(214), - 1751: uint16(116), - 1752: uint16(117), - 1753: uint16(118), - 1754: uint16(245), - 1755: uint16(191), - 1756: uint16(121), - 1757: uint16(271), - 1758: uint16(293), - 1759: uint16(267), - 1760: uint16(267), - 1761: uint16(246), - 1762: uint16(100), - 1763: uint16(246), - 1764: uint16(245), - 1765: uint16(271), - 1766: uint16(271), - 1767: uint16(293), - 1768: uint16(106), - 1769: uint16(107), - 1770: uint16(220), - 1771: uint16(271), - 1772: uint16(229), - 1773: uint16(225), - 1774: uint16(249), - 1775: uint16(219), - 1776: uint16(114), - 1777: uint16(259), - 1778: uint16(116), - 1779: uint16(117), - 1780: uint16(118), - 1781: uint16(133), - 1782: uint16(259), - 1783: uint16(121), - 1784: uint16(219), - 1785: uint16(219), - 1786: uint16(138), - 1787: uint16(139), - 1788: uint16(153), - 1789: uint16(154), - 1790: uint16(155), - 1791: uint16(156), - 1792: uint16(157), - 1793: uint16(280), - 1794: uint16(249), - 1795: uint16(243), - 1796: uint16(19), - 1797: uint16(20), - 1798: uint16(245), - 1799: uint16(22), - 1800: uint16(196), - 1801: uint16(259), - 1802: uint16(140), - 1803: uint16(259), - 1804: uint16(60), - 1805: uint16(297), - 1806: uint16(141), - 1807: uint16(297), - 1808: uint16(200), - 1809: uint16(200), - 1810: uint16(162), - 1811: uint16(38), - 1812: uint16(200), - 1813: uint16(36), - 1814: uint16(294), - 1815: uint16(153), - 1816: uint16(154), - 1817: uint16(155), - 1818: uint16(156), - 1819: uint16(157), - 1820: uint16(151), - 1821: uint16(150), - 1822: uint16(294), - 1823: uint16(283), - 1824: uint16(22), - 1825: uint16(43), - 1826: uint16(234), - 1827: uint16(18), - 1828: uint16(237), - 1829: uint16(200), - 1830: uint16(270), - 1831: uint16(272), - 1832: uint16(237), - 1833: uint16(237), - 1834: uint16(237), - 1835: uint16(18), - 1836: uint16(59), - 1837: uint16(199), - 1838: uint16(270), - 1839: uint16(149), - 1840: uint16(246), - 1841: uint16(272), - 1842: uint16(272), - 1843: uint16(200), - 1844: uint16(234), - 1845: uint16(234), - 1846: uint16(246), - 1847: uint16(246), - 1848: uint16(71), - 1849: uint16(246), - 1850: uint16(199), - 1851: uint16(158), - 1852: uint16(290), - 1853: uint16(62), - 1854: uint16(22), - 1855: uint16(200), - 1856: uint16(19), - 1857: uint16(20), - 1858: uint16(199), - 1859: uint16(22), - 1860: uint16(289), - 1861: uint16(221), - 1862: uint16(221), - 1863: uint16(200), - 1864: uint16(200), - 1865: uint16(199), - 1866: uint16(199), - 1867: uint16(115), - 1868: uint16(218), - 1869: uint16(64), - 1870: uint16(218), - 1871: uint16(218), + 1691: uint16(218), + 1692: uint16(194), + 1693: uint16(19), + 1694: uint16(20), + 1695: uint16(194), + 1696: uint16(22), + 1697: uint16(153), + 1698: uint16(23), + 1699: uint16(155), + 1700: uint16(25), + 1701: uint16(194), + 1702: uint16(100), + 1703: uint16(194), + 1704: uint16(217), + 1705: uint16(218), + 1706: uint16(183), + 1707: uint16(194), + 1708: uint16(106), + 1709: uint16(107), + 1710: uint16(36), + 1711: uint16(194), + 1712: uint16(217), + 1713: uint16(218), + 1714: uint16(237), + 1715: uint16(194), + 1716: uint16(114), + 1717: uint16(243), + 1718: uint16(116), + 1719: uint16(117), + 1720: uint16(118), + 1721: uint16(133), + 1722: uint16(194), + 1723: uint16(121), + 1724: uint16(217), + 1725: uint16(218), + 1726: uint16(138), + 1727: uint16(139), + 1728: uint16(194), + 1729: uint16(194), + 1730: uint16(194), + 1731: uint16(290), + 1732: uint16(289), + 1733: uint16(59), + 1734: uint16(217), + 1735: uint16(218), + 1736: uint16(194), + 1737: uint16(194), + 1738: uint16(217), + 1739: uint16(218), + 1740: uint16(194), + 1741: uint16(194), + 1742: uint16(140), + 1743: uint16(194), + 1744: uint16(194), + 1745: uint16(71), + 1746: uint16(194), + 1747: uint16(244), + 1748: uint16(194), + 1749: uint16(194), + 1750: uint16(162), + 1751: uint16(217), + 1752: uint16(218), + 1753: uint16(194), + 1754: uint16(194), + 1755: uint16(153), + 1756: uint16(154), + 1757: uint16(155), + 1758: uint16(156), + 1759: uint16(157), + 1760: uint16(217), + 1761: uint16(218), + 1762: uint16(194), + 1763: uint16(217), + 1764: uint16(218), + 1765: uint16(194), + 1766: uint16(217), + 1767: uint16(218), + 1768: uint16(257), + 1769: uint16(217), + 1770: uint16(218), + 1771: uint16(217), + 1772: uint16(218), + 1773: uint16(257), + 1774: uint16(100), + 1775: uint16(194), + 1776: uint16(257), + 1777: uint16(217), + 1778: uint16(218), + 1779: uint16(257), + 1780: uint16(106), + 1781: uint16(107), + 1782: uint16(215), + 1783: uint16(299), + 1784: uint16(194), + 1785: uint16(183), + 1786: uint16(192), + 1787: uint16(194), + 1788: uint16(114), + 1789: uint16(194), + 1790: uint16(116), + 1791: uint16(117), + 1792: uint16(118), + 1793: uint16(1), + 1794: uint16(2), + 1795: uint16(121), + 1796: uint16(221), + 1797: uint16(5), + 1798: uint16(217), + 1799: uint16(218), + 1800: uint16(273), + 1801: uint16(197), + 1802: uint16(10), + 1803: uint16(11), + 1804: uint16(12), + 1805: uint16(13), + 1806: uint16(14), + 1807: uint16(217), + 1808: uint16(218), + 1809: uint16(17), + 1810: uint16(217), + 1811: uint16(218), + 1812: uint16(217), + 1813: uint16(218), + 1814: uint16(140), + 1815: uint16(194), + 1816: uint16(246), + 1817: uint16(194), + 1818: uint16(273), + 1819: uint16(295), + 1820: uint16(247), + 1821: uint16(273), + 1822: uint16(30), + 1823: uint16(247), + 1824: uint16(32), + 1825: uint16(269), + 1826: uint16(269), + 1827: uint16(153), + 1828: uint16(154), + 1829: uint16(155), + 1830: uint16(156), + 1831: uint16(157), + 1832: uint16(40), + 1833: uint16(246), + 1834: uint16(273), + 1835: uint16(295), + 1836: uint16(230), + 1837: uint16(226), + 1838: uint16(217), + 1839: uint16(218), + 1840: uint16(217), + 1841: uint16(218), + 1842: uint16(220), + 1843: uint16(261), + 1844: uint16(220), + 1845: uint16(282), + 1846: uint16(220), + 1847: uint16(19), + 1848: uint16(20), + 1849: uint16(244), + 1850: uint16(22), + 1851: uint16(250), + 1852: uint16(141), + 1853: uint16(250), + 1854: uint16(246), + 1855: uint16(60), + 1856: uint16(201), + 1857: uint16(183), + 1858: uint16(261), + 1859: uint16(261), + 1860: uint16(261), + 1861: uint16(201), + 1862: uint16(70), + 1863: uint16(299), + 1864: uint16(36), + 1865: uint16(299), + 1866: uint16(201), + 1867: uint16(38), + 1868: uint16(151), + 1869: uint16(150), + 1870: uint16(78), + 1871: uint16(285), 1872: uint16(22), - 1873: uint16(36), - 1874: uint16(227), - 1875: uint16(126), - 1876: uint16(227), - 1877: uint16(100), - 1878: uint16(165), - 1879: uint16(221), - 1880: uint16(224), - 1881: uint16(224), - 1882: uint16(24), - 1883: uint16(106), - 1884: uint16(107), - 1885: uint16(312), - 1886: uint16(218), - 1887: uint16(305), - 1888: uint16(113), - 1889: uint16(282), - 1890: uint16(91), - 1891: uint16(114), - 1892: uint16(220), - 1893: uint16(116), - 1894: uint16(117), - 1895: uint16(118), - 1896: uint16(59), - 1897: uint16(282), - 1898: uint16(121), - 1899: uint16(218), - 1900: uint16(218), - 1901: uint16(218), + 1873: uint16(81), + 1874: uint16(296), + 1875: uint16(296), + 1876: uint16(43), + 1877: uint16(235), + 1878: uint16(18), + 1879: uint16(238), + 1880: uint16(201), + 1881: uint16(274), + 1882: uint16(272), + 1883: uint16(238), + 1884: uint16(238), + 1885: uint16(238), + 1886: uint16(18), + 1887: uint16(59), + 1888: uint16(200), + 1889: uint16(149), + 1890: uint16(98), + 1891: uint16(247), + 1892: uint16(274), + 1893: uint16(274), + 1894: uint16(235), + 1895: uint16(247), + 1896: uint16(247), + 1897: uint16(247), + 1898: uint16(235), + 1899: uint16(71), + 1900: uint16(272), + 1901: uint16(201), 1902: uint16(200), - 1903: uint16(317), - 1904: uint16(317), - 1905: uint16(82), - 1906: uint16(221), - 1907: uint16(265), - 1908: uint16(71), - 1909: uint16(148), - 1910: uint16(145), - 1911: uint16(265), - 1912: uint16(22), - 1913: uint16(277), - 1914: uint16(200), - 1915: uint16(158), - 1916: uint16(279), - 1917: uint16(140), - 1918: uint16(147), - 1919: uint16(25), - 1920: uint16(146), - 1921: uint16(202), - 1922: uint16(248), - 1923: uint16(250), - 1924: uint16(249), - 1925: uint16(247), - 1926: uint16(13), - 1927: uint16(250), - 1928: uint16(194), - 1929: uint16(194), - 1930: uint16(153), - 1931: uint16(154), - 1932: uint16(155), - 1933: uint16(156), - 1934: uint16(157), - 1935: uint16(6), - 1936: uint16(303), - 1937: uint16(100), - 1938: uint16(192), - 1939: uint16(192), - 1940: uint16(246), - 1941: uint16(213), - 1942: uint16(192), - 1943: uint16(106), - 1944: uint16(107), - 1945: uint16(207), - 1946: uint16(213), - 1947: uint16(207), - 1948: uint16(222), - 1949: uint16(213), - 1950: uint16(213), - 1951: uint16(114), - 1952: uint16(222), - 1953: uint16(116), - 1954: uint16(117), - 1955: uint16(118), - 1956: uint16(214), - 1957: uint16(214), - 1958: uint16(121), - 1959: uint16(4), - 1960: uint16(207), - 1961: uint16(213), - 1962: uint16(3), - 1963: uint16(22), - 1964: uint16(303), - 1965: uint16(15), - 1966: uint16(163), - 1967: uint16(16), - 1968: uint16(23), - 1969: uint16(23), - 1970: uint16(139), - 1971: uint16(151), - 1972: uint16(130), - 1973: uint16(25), - 1974: uint16(20), - 1975: uint16(142), - 1976: uint16(24), - 1977: uint16(16), - 1978: uint16(144), - 1979: uint16(1), - 1980: uint16(142), - 1981: uint16(130), - 1982: uint16(130), - 1983: uint16(61), - 1984: uint16(37), - 1985: uint16(53), - 1986: uint16(300), - 1987: uint16(151), - 1988: uint16(53), - 1989: uint16(53), - 1990: uint16(153), - 1991: uint16(154), - 1992: uint16(155), - 1993: uint16(156), - 1994: uint16(157), - 1995: uint16(53), - 1996: uint16(130), - 1997: uint16(116), - 1998: uint16(34), - 1999: uint16(1), - 2000: uint16(141), - 2001: uint16(5), - 2002: uint16(22), - 2003: uint16(115), - 2004: uint16(161), - 2005: uint16(68), - 2006: uint16(25), - 2007: uint16(68), - 2008: uint16(75), - 2009: uint16(41), - 2010: uint16(141), - 2011: uint16(115), - 2012: uint16(24), - 2013: uint16(20), - 2014: uint16(19), - 2015: uint16(131), - 2016: uint16(125), - 2017: uint16(23), - 2018: uint16(28), - 2019: uint16(22), - 2020: uint16(67), - 2021: uint16(22), - 2022: uint16(22), - 2023: uint16(22), - 2024: uint16(67), - 2025: uint16(59), - 2026: uint16(24), - 2027: uint16(96), - 2028: uint16(22), - 2029: uint16(67), - 2030: uint16(23), - 2031: uint16(149), - 2032: uint16(22), - 2033: uint16(25), - 2034: uint16(23), - 2035: uint16(23), - 2036: uint16(23), - 2037: uint16(22), - 2038: uint16(34), - 2039: uint16(141), - 2040: uint16(37), - 2041: uint16(97), - 2042: uint16(23), - 2043: uint16(23), - 2044: uint16(116), - 2045: uint16(22), - 2046: uint16(143), - 2047: uint16(25), - 2048: uint16(34), - 2049: uint16(75), - 2050: uint16(34), - 2051: uint16(34), - 2052: uint16(34), - 2053: uint16(88), - 2054: uint16(75), - 2055: uint16(34), - 2056: uint16(86), - 2057: uint16(23), + 1903: uint16(158), + 1904: uint16(292), + 1905: uint16(62), + 1906: uint16(291), + 1907: uint16(201), + 1908: uint16(200), + 1909: uint16(22), + 1910: uint16(201), + 1911: uint16(222), + 1912: uint16(200), + 1913: uint16(222), + 1914: uint16(201), + 1915: uint16(200), + 1916: uint16(115), + 1917: uint16(219), + 1918: uint16(219), + 1919: uint16(64), + 1920: uint16(219), + 1921: uint16(228), + 1922: uint16(22), + 1923: uint16(126), + 1924: uint16(221), + 1925: uint16(133), + 1926: uint16(165), + 1927: uint16(222), + 1928: uint16(100), + 1929: uint16(225), + 1930: uint16(138), + 1931: uint16(139), + 1932: uint16(225), + 1933: uint16(219), + 1934: uint16(106), + 1935: uint16(107), + 1936: uint16(24), + 1937: uint16(219), + 1938: uint16(228), + 1939: uint16(219), + 1940: uint16(219), + 1941: uint16(307), + 1942: uint16(114), + 1943: uint16(113), + 1944: uint16(116), + 1945: uint16(117), + 1946: uint16(118), + 1947: uint16(315), + 1948: uint16(284), + 1949: uint16(121), + 1950: uint16(284), + 1951: uint16(222), + 1952: uint16(201), + 1953: uint16(91), + 1954: uint16(162), + 1955: uint16(320), + 1956: uint16(320), + 1957: uint16(82), + 1958: uint16(148), + 1959: uint16(267), + 1960: uint16(145), + 1961: uint16(267), + 1962: uint16(22), + 1963: uint16(279), + 1964: uint16(201), + 1965: uint16(158), + 1966: uint16(281), + 1967: uint16(251), + 1968: uint16(147), + 1969: uint16(146), + 1970: uint16(25), + 1971: uint16(203), + 1972: uint16(250), + 1973: uint16(249), + 1974: uint16(251), + 1975: uint16(248), + 1976: uint16(13), + 1977: uint16(247), + 1978: uint16(195), + 1979: uint16(195), + 1980: uint16(6), + 1981: uint16(153), + 1982: uint16(154), + 1983: uint16(155), + 1984: uint16(156), + 1985: uint16(157), + 1986: uint16(193), + 1987: uint16(193), + 1988: uint16(305), + 1989: uint16(193), + 1990: uint16(208), + 1991: uint16(305), + 1992: uint16(302), + 1993: uint16(214), + 1994: uint16(214), + 1995: uint16(214), + 1996: uint16(208), + 1997: uint16(223), + 1998: uint16(223), + 1999: uint16(214), + 2000: uint16(4), + 2001: uint16(215), + 2002: uint16(215), + 2003: uint16(214), + 2004: uint16(3), + 2005: uint16(22), + 2006: uint16(208), + 2007: uint16(163), + 2008: uint16(15), + 2009: uint16(23), + 2010: uint16(16), + 2011: uint16(183), + 2012: uint16(23), + 2013: uint16(139), + 2014: uint16(151), + 2015: uint16(130), + 2016: uint16(25), + 2017: uint16(20), + 2018: uint16(142), + 2019: uint16(24), + 2020: uint16(16), + 2021: uint16(144), + 2022: uint16(1), + 2023: uint16(142), + 2024: uint16(130), + 2025: uint16(130), + 2026: uint16(61), + 2027: uint16(37), + 2028: uint16(53), + 2029: uint16(151), + 2030: uint16(53), + 2031: uint16(53), + 2032: uint16(53), + 2033: uint16(130), + 2034: uint16(116), + 2035: uint16(1), + 2036: uint16(34), + 2037: uint16(141), + 2038: uint16(5), + 2039: uint16(22), + 2040: uint16(115), + 2041: uint16(161), + 2042: uint16(75), + 2043: uint16(25), + 2044: uint16(68), + 2045: uint16(141), + 2046: uint16(41), + 2047: uint16(115), + 2048: uint16(68), + 2049: uint16(24), + 2050: uint16(20), + 2051: uint16(19), + 2052: uint16(131), + 2053: uint16(125), + 2054: uint16(67), + 2055: uint16(67), + 2056: uint16(96), + 2057: uint16(22), 2058: uint16(22), - 2059: uint16(34), - 2060: uint16(93), - 2061: uint16(24), - 2062: uint16(34), - 2063: uint16(25), - 2064: uint16(25), - 2065: uint16(142), - 2066: uint16(142), + 2059: uint16(22), + 2060: uint16(37), + 2061: uint16(23), + 2062: uint16(22), + 2063: uint16(24), + 2064: uint16(22), + 2065: uint16(59), + 2066: uint16(67), 2067: uint16(23), - 2068: uint16(44), - 2069: uint16(23), - 2070: uint16(23), - 2071: uint16(23), + 2068: uint16(149), + 2069: uint16(28), + 2070: uint16(22), + 2071: uint16(25), 2072: uint16(23), - 2073: uint16(11), + 2073: uint16(23), 2074: uint16(23), - 2075: uint16(25), - 2076: uint16(22), - 2077: uint16(22), - 2078: uint16(22), - 2079: uint16(141), + 2075: uint16(22), + 2076: uint16(141), + 2077: uint16(34), + 2078: uint16(97), + 2079: uint16(23), 2080: uint16(23), - 2081: uint16(23), - 2082: uint16(22), + 2081: uint16(34), + 2082: uint16(116), 2083: uint16(22), - 2084: uint16(25), - 2085: uint16(15), - 2086: uint16(1), - 2087: uint16(23), - 2088: uint16(25), - 2089: uint16(1), - 2090: uint16(141), - 2091: uint16(135), - 2092: uint16(319), - 2093: uint16(319), - 2094: uint16(319), - 2095: uint16(319), - 2096: uint16(319), - 2097: uint16(319), - 2098: uint16(319), - 2099: uint16(141), - 2100: uint16(319), - 2101: uint16(319), - 2102: uint16(319), - 2103: uint16(319), - 2104: uint16(319), - 2105: uint16(319), - 2106: uint16(319), - 2107: uint16(319), - 2108: uint16(319), - 2109: uint16(319), - 2110: uint16(319), - 2111: uint16(319), - 2112: uint16(319), - 2113: uint16(319), - 2114: uint16(319), - 2115: uint16(319), - 2116: uint16(319), - 2117: uint16(319), - 2118: uint16(319), - 2119: uint16(319), - 2120: uint16(319), - 2121: uint16(319), - 2122: uint16(319), - 2123: uint16(319), - 2124: uint16(319), - 2125: uint16(319), - 2126: uint16(319), - 2127: uint16(319), - 2128: uint16(319), - 2129: uint16(319), - 2130: uint16(319), - 2131: uint16(319), - 2132: uint16(319), - 2133: uint16(319), - 2134: uint16(319), - 2135: uint16(319), - 2136: uint16(319), - 2137: uint16(319), - 2138: uint16(319), - 2139: uint16(319), - 2140: uint16(319), - 2141: uint16(319), - 2142: uint16(319), - 2143: uint16(319), - 2144: uint16(319), - 2145: uint16(319), - 2146: uint16(319), - 2147: uint16(319), - 2148: uint16(319), - 2149: uint16(319), - 2150: uint16(319), - 2151: uint16(319), - 2152: uint16(319), - 2153: uint16(319), - 2154: uint16(319), - 2155: uint16(319), - 2156: uint16(319), - 2157: uint16(319), - 2158: uint16(319), - 2159: uint16(319), - 2160: uint16(319), - 2161: uint16(319), - 2162: uint16(319), - 2163: uint16(319), - 2164: uint16(319), - 2165: uint16(319), - 2166: uint16(319), - 2167: uint16(319), - 2168: uint16(319), - 2169: uint16(319), - 2170: uint16(319), - 2171: uint16(319), - 2172: uint16(319), - 2173: uint16(319), - 2174: uint16(319), - 2175: uint16(319), - 2176: uint16(319), - 2177: uint16(319), - 2178: uint16(319), - 2179: uint16(319), - 2180: uint16(319), - 2181: uint16(319), - 2182: uint16(319), - 2183: uint16(319), - 2184: uint16(319), - 2185: uint16(319), - 2186: uint16(319), - 2187: uint16(319), - 2188: uint16(319), - 2189: uint16(319), - 2190: uint16(319), - 2191: uint16(319), - 2192: uint16(319), - 2193: uint16(319), - 2194: uint16(319), - 2195: uint16(319), - 2196: uint16(319), - 2197: uint16(319), - 2198: uint16(319), - 2199: uint16(319), - 2200: uint16(319), - 2201: uint16(319), - 2202: uint16(319), - 2203: uint16(319), - 2204: uint16(319), - 2205: uint16(319), - 2206: uint16(319), - 2207: uint16(319), - 2208: uint16(319), - 2209: uint16(319), - 2210: uint16(319), - 2211: uint16(319), - 2212: uint16(319), - 2213: uint16(319), - 2214: uint16(319), - 2215: uint16(319), - 2216: uint16(319), - 2217: uint16(319), - 2218: uint16(319), - 2219: uint16(319), - 2220: uint16(319), - 2221: uint16(319), - 2222: uint16(319), - 2223: uint16(319), - 2224: uint16(319), - 2225: uint16(319), - 2226: uint16(319), - 2227: uint16(319), - 2228: uint16(319), - 2229: uint16(319), - 2230: uint16(319), - 2231: uint16(319), - 2232: uint16(319), - 2233: uint16(319), - 2234: uint16(319), - 2235: uint16(319), - 2236: uint16(319), - 2237: uint16(319), - 2238: uint16(319), - 2239: uint16(319), - 2240: uint16(319), - 2241: uint16(319), - 2242: uint16(319), - 2243: uint16(319), - 2244: uint16(319), - 2245: uint16(319), - 2246: uint16(319), - 2247: uint16(319), - 2248: uint16(319), - 2249: uint16(319), - 2250: uint16(319), - 2251: uint16(319), - 2252: uint16(319), - 2253: uint16(319), - 2254: uint16(319), - 2255: uint16(319), - 2256: uint16(319), - 2257: uint16(319), - 2258: uint16(319), - 2259: uint16(319), - 2260: uint16(319), - 2261: uint16(319), - 2262: uint16(319), - 2263: uint16(319), - 2264: uint16(319), - 2265: uint16(319), - 2266: uint16(319), - 2267: uint16(319), - 2268: uint16(319), - 2269: uint16(319), - 2270: uint16(319), - 2271: uint16(319), - 2272: uint16(319), - 2273: uint16(319), - 2274: uint16(319), - 2275: uint16(319), - 2276: uint16(319), - 2277: uint16(319), - 2278: uint16(319), - 2279: uint16(319), - 2280: uint16(319), - 2281: uint16(319), - 2282: uint16(319), - 2283: uint16(319), - 2284: uint16(319), -} -var _yy_shift_ofst = [579]uint16{ - 0: uint16(1648), - 1: uint16(1477), - 2: uint16(1272), + 2084: uint16(143), + 2085: uint16(25), + 2086: uint16(34), + 2087: uint16(75), + 2088: uint16(34), + 2089: uint16(34), + 2090: uint16(75), + 2091: uint16(88), + 2092: uint16(34), + 2093: uint16(86), + 2094: uint16(23), + 2095: uint16(22), + 2096: uint16(34), + 2097: uint16(25), + 2098: uint16(24), + 2099: uint16(34), + 2100: uint16(25), + 2101: uint16(93), + 2102: uint16(23), + 2103: uint16(44), + 2104: uint16(142), + 2105: uint16(23), + 2106: uint16(142), + 2107: uint16(23), + 2108: uint16(23), + 2109: uint16(22), + 2110: uint16(11), + 2111: uint16(25), + 2112: uint16(23), + 2113: uint16(25), + 2114: uint16(23), + 2115: uint16(22), + 2116: uint16(22), + 2117: uint16(22), + 2118: uint16(1), + 2119: uint16(23), + 2120: uint16(23), + 2121: uint16(23), + 2122: uint16(22), + 2123: uint16(22), + 2124: uint16(15), + 2125: uint16(141), + 2126: uint16(141), + 2127: uint16(25), + 2128: uint16(25), + 2129: uint16(1), + 2130: uint16(322), + 2131: uint16(322), + 2132: uint16(322), + 2133: uint16(135), + 2134: uint16(322), + 2135: uint16(322), + 2136: uint16(322), + 2137: uint16(322), + 2138: uint16(322), + 2139: uint16(322), + 2140: uint16(322), + 2141: uint16(141), + 2142: uint16(322), + 2143: uint16(322), + 2144: uint16(322), + 2145: uint16(322), + 2146: uint16(322), + 2147: uint16(322), + 2148: uint16(322), + 2149: uint16(322), + 2150: uint16(322), + 2151: uint16(322), + 2152: uint16(322), + 2153: uint16(322), + 2154: uint16(322), + 2155: uint16(322), + 2156: uint16(322), + 2157: uint16(322), + 2158: uint16(322), + 2159: uint16(322), + 2160: uint16(322), + 2161: uint16(322), + 2162: uint16(322), + 2163: uint16(322), + 2164: uint16(322), + 2165: uint16(322), + 2166: uint16(322), + 2167: uint16(322), + 2168: uint16(322), + 2169: uint16(322), + 2170: uint16(322), + 2171: uint16(322), + 2172: uint16(322), + 2173: uint16(322), + 2174: uint16(322), + 2175: uint16(322), + 2176: uint16(322), + 2177: uint16(322), + 2178: uint16(322), + 2179: uint16(322), + 2180: uint16(322), + 2181: uint16(322), + 2182: uint16(322), + 2183: uint16(322), + 2184: uint16(322), + 2185: uint16(322), + 2186: uint16(322), + 2187: uint16(322), + 2188: uint16(322), + 2189: uint16(322), + 2190: uint16(322), + 2191: uint16(322), + 2192: uint16(322), + 2193: uint16(322), + 2194: uint16(322), + 2195: uint16(322), + 2196: uint16(322), + 2197: uint16(322), + 2198: uint16(322), + 2199: uint16(322), + 2200: uint16(322), + 2201: uint16(322), + 2202: uint16(322), + 2203: uint16(322), + 2204: uint16(322), + 2205: uint16(322), + 2206: uint16(322), + 2207: uint16(322), + 2208: uint16(322), + 2209: uint16(322), + 2210: uint16(322), + 2211: uint16(322), + 2212: uint16(322), + 2213: uint16(322), + 2214: uint16(322), + 2215: uint16(322), + 2216: uint16(322), + 2217: uint16(322), + 2218: uint16(322), + 2219: uint16(322), + 2220: uint16(322), + 2221: uint16(322), + 2222: uint16(322), + 2223: uint16(322), + 2224: uint16(322), + 2225: uint16(322), + 2226: uint16(322), + 2227: uint16(322), + 2228: uint16(322), + 2229: uint16(322), + 2230: uint16(322), + 2231: uint16(322), + 2232: uint16(322), + 2233: uint16(322), + 2234: uint16(322), + 2235: uint16(322), + 2236: uint16(322), + 2237: uint16(322), + 2238: uint16(322), + 2239: uint16(322), + 2240: uint16(322), + 2241: uint16(322), + 2242: uint16(322), + 2243: uint16(322), + 2244: uint16(322), + 2245: uint16(322), + 2246: uint16(322), + 2247: uint16(322), + 2248: uint16(322), + 2249: uint16(322), + 2250: uint16(322), + 2251: uint16(322), + 2252: uint16(322), + 2253: uint16(322), + 2254: uint16(322), + 2255: uint16(322), + 2256: uint16(322), + 2257: uint16(322), + 2258: uint16(322), + 2259: uint16(322), + 2260: uint16(322), + 2261: uint16(322), + 2262: uint16(322), + 2263: uint16(322), + 2264: uint16(322), + 2265: uint16(322), + 2266: uint16(322), + 2267: uint16(322), + 2268: uint16(322), + 2269: uint16(322), + 2270: uint16(322), + 2271: uint16(322), + 2272: uint16(322), + 2273: uint16(322), + 2274: uint16(322), + 2275: uint16(322), + 2276: uint16(322), + 2277: uint16(322), + 2278: uint16(322), + 2279: uint16(322), + 2280: uint16(322), + 2281: uint16(322), + 2282: uint16(322), + 2283: uint16(322), + 2284: uint16(322), + 2285: uint16(322), + 2286: uint16(322), + 2287: uint16(322), + 2288: uint16(322), + 2289: uint16(322), + 2290: uint16(322), + 2291: uint16(322), + 2292: uint16(322), + 2293: uint16(322), + 2294: uint16(322), + 2295: uint16(322), + 2296: uint16(322), + 2297: uint16(322), + 2298: uint16(322), + 2299: uint16(322), + 2300: uint16(322), + 2301: uint16(322), + 2302: uint16(322), + 2303: uint16(322), + 2304: uint16(322), + 2305: uint16(322), + 2306: uint16(322), + 2307: uint16(322), + 2308: uint16(322), + 2309: uint16(322), + 2310: uint16(322), + 2311: uint16(322), + 2312: uint16(322), + 2313: uint16(322), + 2314: uint16(322), + 2315: uint16(322), + 2316: uint16(322), + 2317: uint16(322), + 2318: uint16(322), + 2319: uint16(322), + 2320: uint16(322), + 2321: uint16(322), + 2322: uint16(322), + 2323: uint16(322), + 2324: uint16(322), + 2325: uint16(322), + 2326: uint16(322), + 2327: uint16(322), +} +var _yy_shift_ofst = [583]uint16{ + 0: uint16(1792), + 1: uint16(1588), + 2: uint16(1494), 3: uint16(322), 4: uint16(322), - 5: uint16(1), - 6: uint16(1319), - 7: uint16(1478), - 8: uint16(1491), - 9: uint16(1837), - 10: uint16(1837), - 11: uint16(1837), - 12: uint16(471), - 15: uint16(214), - 16: uint16(1093), - 17: uint16(1837), - 18: uint16(1837), - 19: uint16(1837), - 20: uint16(1837), - 21: uint16(1837), - 22: uint16(1837), - 23: uint16(1837), - 24: uint16(1837), - 25: uint16(1837), - 26: uint16(1837), - 27: uint16(1837), - 28: uint16(1837), - 29: uint16(1837), - 30: uint16(1837), - 31: uint16(271), - 32: uint16(271), - 33: uint16(1219), - 34: uint16(1219), - 35: uint16(216), - 36: uint16(88), - 37: uint16(1), - 38: uint16(1), - 39: uint16(1), - 40: uint16(1), - 41: uint16(1), - 42: uint16(40), - 43: uint16(111), - 44: uint16(258), - 45: uint16(361), - 46: uint16(469), - 47: uint16(512), - 48: uint16(583), - 49: uint16(622), - 50: uint16(693), - 51: uint16(732), - 52: uint16(803), - 53: uint16(842), - 54: uint16(913), - 55: uint16(1073), - 56: uint16(1093), - 57: uint16(1093), - 58: uint16(1093), - 59: uint16(1093), - 60: uint16(1093), - 61: uint16(1093), - 62: uint16(1093), - 63: uint16(1093), - 64: uint16(1093), + 5: uint16(399), + 6: uint16(306), + 7: uint16(1319), + 8: uint16(1339), + 9: uint16(1430), + 10: uint16(1828), + 11: uint16(1828), + 12: uint16(1828), + 13: uint16(580), + 14: uint16(399), + 15: uint16(399), + 16: uint16(399), + 17: uint16(399), + 18: uint16(399), + 21: uint16(214), + 22: uint16(1093), + 23: uint16(1828), + 24: uint16(1828), + 25: uint16(1828), + 26: uint16(1828), + 27: uint16(1828), + 28: uint16(1828), + 29: uint16(1828), + 30: uint16(1828), + 31: uint16(1828), + 32: uint16(1828), + 33: uint16(1828), + 34: uint16(1828), + 35: uint16(1828), + 36: uint16(1828), + 37: uint16(1828), + 38: uint16(1130), + 39: uint16(1130), + 40: uint16(365), + 41: uint16(365), + 42: uint16(55), + 43: uint16(278), + 44: uint16(436), + 45: uint16(713), + 46: uint16(713), + 47: uint16(201), + 48: uint16(201), + 49: uint16(201), + 50: uint16(201), + 51: uint16(40), + 52: uint16(111), + 53: uint16(258), + 54: uint16(361), + 55: uint16(469), + 56: uint16(512), + 57: uint16(583), + 58: uint16(622), + 59: uint16(693), + 60: uint16(732), + 61: uint16(803), + 62: uint16(842), + 63: uint16(913), + 64: uint16(1073), 65: uint16(1093), 66: uint16(1093), 67: uint16(1093), @@ -156718,1505 +158265,1514 @@ var _yy_shift_ofst = [579]uint16{ 71: uint16(1093), 72: uint16(1093), 73: uint16(1093), - 74: uint16(1113), + 74: uint16(1093), 75: uint16(1093), - 76: uint16(1216), - 77: uint16(957), - 78: uint16(957), - 79: uint16(1635), - 80: uint16(1662), - 81: uint16(1777), - 82: uint16(1837), - 83: uint16(1837), - 84: uint16(1837), - 85: uint16(1837), - 86: uint16(1837), - 87: uint16(1837), - 88: uint16(1837), - 89: uint16(1837), - 90: uint16(1837), - 91: uint16(1837), - 92: uint16(1837), - 93: uint16(1837), - 94: uint16(1837), - 95: uint16(1837), - 96: uint16(1837), - 97: uint16(1837), - 98: uint16(1837), - 99: uint16(1837), - 100: uint16(1837), - 101: uint16(1837), - 102: uint16(1837), - 103: uint16(1837), - 104: uint16(1837), - 105: uint16(1837), - 106: uint16(1837), - 107: uint16(1837), - 108: uint16(1837), - 109: uint16(1837), - 110: uint16(1837), - 111: uint16(1837), - 112: uint16(1837), - 113: uint16(1837), - 114: uint16(1837), - 115: uint16(1837), - 116: uint16(1837), - 117: uint16(1837), - 118: uint16(1837), - 119: uint16(1837), - 120: uint16(1837), - 121: uint16(1837), - 122: uint16(1837), - 123: uint16(1837), - 124: uint16(1837), - 125: uint16(1837), - 126: uint16(1837), - 127: uint16(1837), - 128: uint16(1837), - 129: uint16(1837), - 130: uint16(1837), - 131: uint16(137), - 132: uint16(181), - 133: uint16(181), - 134: uint16(181), - 135: uint16(181), - 136: uint16(181), - 137: uint16(181), - 138: uint16(181), - 139: uint16(94), - 140: uint16(430), - 141: uint16(66), - 142: uint16(65), - 143: uint16(112), - 144: uint16(366), - 145: uint16(533), - 146: uint16(533), - 147: uint16(740), - 148: uint16(1257), - 149: uint16(533), - 150: uint16(533), - 151: uint16(79), - 152: uint16(79), - 153: uint16(533), - 154: uint16(412), - 155: uint16(412), - 156: uint16(412), - 157: uint16(77), - 158: uint16(412), - 159: uint16(123), - 160: uint16(113), - 161: uint16(113), - 162: uint16(113), - 163: uint16(22), - 164: uint16(22), - 165: uint16(2100), - 166: uint16(2100), - 167: uint16(328), - 168: uint16(328), - 169: uint16(328), - 170: uint16(239), - 171: uint16(468), - 172: uint16(468), - 173: uint16(468), - 174: uint16(468), - 175: uint16(1015), - 176: uint16(1015), - 177: uint16(409), - 178: uint16(366), - 179: uint16(1187), - 180: uint16(1232), - 181: uint16(533), - 182: uint16(533), - 183: uint16(533), - 184: uint16(533), - 185: uint16(533), - 186: uint16(533), - 187: uint16(533), - 188: uint16(533), - 189: uint16(533), - 190: uint16(533), - 191: uint16(533), - 192: uint16(533), - 193: uint16(533), - 194: uint16(533), - 195: uint16(533), - 196: uint16(533), - 197: uint16(533), - 198: uint16(533), - 199: uint16(533), - 200: uint16(533), - 201: uint16(969), - 202: uint16(621), - 203: uint16(621), - 204: uint16(533), - 205: uint16(642), - 206: uint16(788), - 207: uint16(788), - 208: uint16(1133), - 209: uint16(1133), - 210: uint16(822), - 211: uint16(822), - 212: uint16(67), - 213: uint16(1193), - 214: uint16(2100), - 215: uint16(2100), - 216: uint16(2100), - 217: uint16(2100), - 218: uint16(2100), - 219: uint16(2100), - 220: uint16(2100), - 221: uint16(1307), - 222: uint16(954), - 223: uint16(954), - 224: uint16(585), - 225: uint16(472), - 226: uint16(640), - 227: uint16(387), - 228: uint16(695), - 229: uint16(538), - 230: uint16(541), - 231: uint16(700), - 232: uint16(533), - 233: uint16(533), - 234: uint16(533), - 235: uint16(533), - 236: uint16(533), - 237: uint16(533), - 238: uint16(533), - 239: uint16(533), - 240: uint16(533), - 241: uint16(533), - 242: uint16(222), - 243: uint16(533), - 244: uint16(533), - 245: uint16(533), - 246: uint16(533), - 247: uint16(533), - 248: uint16(533), - 249: uint16(533), - 250: uint16(533), - 251: uint16(533), - 252: uint16(533), - 253: uint16(533), - 254: uint16(533), - 255: uint16(1213), - 256: uint16(1213), - 257: uint16(1213), - 258: uint16(533), - 259: uint16(533), - 260: uint16(533), - 261: uint16(565), - 262: uint16(533), - 263: uint16(533), - 264: uint16(533), - 265: uint16(916), - 266: uint16(1147), - 267: uint16(533), - 268: uint16(533), - 269: uint16(1288), - 270: uint16(533), - 271: uint16(533), - 272: uint16(533), - 273: uint16(533), - 274: uint16(533), - 275: uint16(533), - 276: uint16(533), - 277: uint16(533), - 278: uint16(639), - 279: uint16(1280), - 280: uint16(209), - 281: uint16(1129), - 282: uint16(1129), - 283: uint16(1129), - 284: uint16(1129), - 285: uint16(580), - 286: uint16(209), - 287: uint16(209), - 288: uint16(1209), - 289: uint16(768), - 290: uint16(917), - 291: uint16(649), - 292: uint16(1315), - 293: uint16(1334), - 294: uint16(405), - 295: uint16(1334), - 296: uint16(1383), - 297: uint16(249), - 298: uint16(1315), - 299: uint16(1315), - 300: uint16(249), - 301: uint16(1315), - 302: uint16(405), - 303: uint16(1383), - 304: uint16(1441), - 305: uint16(464), - 306: uint16(1245), - 307: uint16(1417), - 308: uint16(1417), - 309: uint16(1417), - 310: uint16(1323), - 311: uint16(1323), - 312: uint16(1323), - 313: uint16(1323), - 314: uint16(184), - 315: uint16(184), - 316: uint16(1335), - 317: uint16(1476), - 318: uint16(856), - 319: uint16(1482), - 320: uint16(1744), - 321: uint16(1744), - 322: uint16(1665), - 323: uint16(1665), - 324: uint16(1773), - 325: uint16(1773), - 326: uint16(1665), - 327: uint16(1669), - 328: uint16(1671), - 329: uint16(1802), - 330: uint16(1782), - 331: uint16(1809), - 332: uint16(1809), - 333: uint16(1809), - 334: uint16(1809), - 335: uint16(1665), - 336: uint16(1817), - 337: uint16(1690), - 338: uint16(1671), - 339: uint16(1671), - 340: uint16(1690), - 341: uint16(1802), - 342: uint16(1782), - 343: uint16(1690), - 344: uint16(1782), - 345: uint16(1690), - 346: uint16(1665), - 347: uint16(1817), - 348: uint16(1693), - 349: uint16(1791), - 350: uint16(1665), - 351: uint16(1817), - 352: uint16(1832), - 353: uint16(1665), - 354: uint16(1817), - 355: uint16(1665), - 356: uint16(1817), - 357: uint16(1832), - 358: uint16(1752), - 359: uint16(1752), - 360: uint16(1752), - 361: uint16(1805), - 362: uint16(1850), - 363: uint16(1850), - 364: uint16(1832), - 365: uint16(1752), - 366: uint16(1749), - 367: uint16(1752), - 368: uint16(1805), - 369: uint16(1752), - 370: uint16(1752), - 371: uint16(1713), - 372: uint16(1858), - 373: uint16(1775), - 374: uint16(1775), - 375: uint16(1832), - 376: uint16(1665), - 377: uint16(1799), - 378: uint16(1799), - 379: uint16(1823), - 380: uint16(1823), - 381: uint16(1761), - 382: uint16(1765), - 383: uint16(1890), - 384: uint16(1665), - 385: uint16(1757), - 386: uint16(1761), - 387: uint16(1771), - 388: uint16(1774), - 389: uint16(1690), - 390: uint16(1894), - 391: uint16(1913), - 392: uint16(1913), - 393: uint16(1929), - 394: uint16(1929), - 395: uint16(1929), - 396: uint16(2100), - 397: uint16(2100), - 398: uint16(2100), - 399: uint16(2100), - 400: uint16(2100), - 401: uint16(2100), - 402: uint16(2100), - 403: uint16(2100), - 404: uint16(2100), - 405: uint16(2100), - 406: uint16(2100), - 407: uint16(2100), - 408: uint16(2100), - 409: uint16(2100), - 410: uint16(2100), - 411: uint16(207), - 412: uint16(1220), - 413: uint16(331), - 414: uint16(620), - 415: uint16(967), - 416: uint16(806), - 417: uint16(1074), - 418: uint16(1499), - 419: uint16(1432), - 420: uint16(1463), - 421: uint16(1479), - 422: uint16(1419), - 423: uint16(1422), - 424: uint16(1557), - 425: uint16(1512), - 426: uint16(1598), - 427: uint16(1599), - 428: uint16(1644), - 429: uint16(1645), - 430: uint16(1654), - 431: uint16(1660), - 432: uint16(1555), - 433: uint16(1505), - 434: uint16(1684), - 435: uint16(1462), - 436: uint16(1670), - 437: uint16(1563), - 438: uint16(1619), - 439: uint16(1593), - 440: uint16(1676), - 441: uint16(1679), - 442: uint16(1613), - 443: uint16(1680), - 444: uint16(1554), - 445: uint16(1558), - 446: uint16(1689), - 447: uint16(1692), - 448: uint16(1605), - 449: uint16(1589), - 450: uint16(1955), - 451: uint16(1959), - 452: uint16(1941), - 453: uint16(1803), - 454: uint16(1950), - 455: uint16(1951), - 456: uint16(1945), - 457: uint16(1946), - 458: uint16(1831), - 459: uint16(1820), - 460: uint16(1842), - 461: uint16(1948), - 462: uint16(1948), - 463: uint16(1952), - 464: uint16(1833), - 465: uint16(1954), - 466: uint16(1834), - 467: uint16(1961), - 468: uint16(1978), - 469: uint16(1838), - 470: uint16(1851), - 471: uint16(1948), - 472: uint16(1852), - 473: uint16(1922), - 474: uint16(1947), - 475: uint16(1948), - 476: uint16(1836), - 477: uint16(1932), - 478: uint16(1935), - 479: uint16(1936), - 480: uint16(1942), - 481: uint16(1866), - 482: uint16(1881), - 483: uint16(1964), - 484: uint16(1859), - 485: uint16(1998), - 486: uint16(1996), - 487: uint16(1980), - 488: uint16(1888), - 489: uint16(1843), - 490: uint16(1937), - 491: uint16(1981), - 492: uint16(1939), - 493: uint16(1933), - 494: uint16(1968), - 495: uint16(1869), - 496: uint16(1896), - 497: uint16(1988), - 498: uint16(1993), - 499: uint16(1995), - 500: uint16(1884), - 501: uint16(1891), - 502: uint16(1997), - 503: uint16(1953), - 504: uint16(1999), - 505: uint16(2000), - 506: uint16(1994), - 507: uint16(2001), - 508: uint16(1957), - 509: uint16(1966), - 510: uint16(2002), - 511: uint16(1931), - 512: uint16(1990), - 513: uint16(2006), - 514: uint16(1962), - 515: uint16(2003), - 516: uint16(2007), - 517: uint16(2004), - 518: uint16(1882), - 519: uint16(2010), - 520: uint16(2011), - 521: uint16(2012), - 522: uint16(2008), - 523: uint16(2013), - 524: uint16(2015), - 525: uint16(1944), - 526: uint16(1898), - 527: uint16(2019), - 528: uint16(2020), - 529: uint16(1928), - 530: uint16(2014), - 531: uint16(2023), - 532: uint16(1903), - 533: uint16(2022), - 534: uint16(2016), - 535: uint16(2017), - 536: uint16(2018), - 537: uint16(2021), - 538: uint16(1965), - 539: uint16(1974), - 540: uint16(1970), - 541: uint16(2024), - 542: uint16(1979), - 543: uint16(1967), - 544: uint16(2025), - 545: uint16(2034), - 546: uint16(2036), - 547: uint16(2037), - 548: uint16(2038), - 549: uint16(2039), - 550: uint16(2028), - 551: uint16(1923), - 552: uint16(1924), - 553: uint16(2044), - 554: uint16(2022), - 555: uint16(2046), - 556: uint16(2047), - 557: uint16(2048), - 558: uint16(2049), - 559: uint16(2050), - 560: uint16(2051), - 561: uint16(2054), - 562: uint16(2062), - 563: uint16(2055), - 564: uint16(2056), - 565: uint16(2057), - 566: uint16(2058), - 567: uint16(2060), - 568: uint16(2061), - 569: uint16(2059), - 570: uint16(1956), - 571: uint16(1938), - 572: uint16(1949), - 573: uint16(1958), - 574: uint16(2063), - 575: uint16(2064), - 576: uint16(2070), - 577: uint16(2085), - 578: uint16(2088), -} -var _yy_reduce_ofst = [411]int16{ - 0: int16(-int32(125)), - 1: int16(733), - 2: int16(789), - 3: int16(241), - 4: int16(293), - 5: int16(-int32(123)), - 6: int16(-int32(193)), - 7: int16(-int32(191)), - 8: int16(-int32(183)), - 9: int16(-int32(187)), - 10: int16(166), - 11: int16(238), - 12: int16(133), - 13: int16(-int32(207)), - 14: int16(-int32(199)), - 15: int16(-int32(267)), - 16: int16(-int32(176)), - 17: int16(-int32(6)), - 18: int16(204), - 19: int16(489), - 20: int16(576), - 21: int16(598), - 22: int16(-int32(175)), - 23: int16(686), - 24: int16(860), - 25: int16(615), - 26: int16(725), - 27: int16(1014), - 28: int16(778), - 29: int16(781), - 30: int16(857), - 31: int16(616), - 32: int16(887), - 33: int16(87), - 34: int16(240), - 35: int16(-int32(192)), - 36: int16(408), - 37: int16(626), - 38: int16(796), - 39: int16(843), - 40: int16(854), - 41: int16(1004), - 42: int16(-int32(271)), - 43: int16(-int32(271)), - 44: int16(-int32(271)), - 45: int16(-int32(271)), - 46: int16(-int32(271)), - 47: int16(-int32(271)), - 48: int16(-int32(271)), - 49: int16(-int32(271)), - 50: int16(-int32(271)), - 51: int16(-int32(271)), - 52: int16(-int32(271)), - 53: int16(-int32(271)), - 54: int16(-int32(271)), - 55: int16(-int32(271)), - 56: int16(-int32(271)), - 57: int16(-int32(271)), - 58: int16(-int32(271)), - 59: int16(-int32(271)), - 60: int16(-int32(271)), - 61: int16(-int32(271)), - 62: int16(-int32(271)), - 63: int16(-int32(271)), - 64: int16(-int32(271)), - 65: int16(-int32(271)), - 66: int16(-int32(271)), - 67: int16(-int32(271)), - 68: int16(-int32(271)), - 69: int16(-int32(271)), - 70: int16(-int32(271)), - 71: int16(-int32(271)), - 72: int16(-int32(271)), - 73: int16(-int32(271)), - 74: int16(-int32(271)), - 75: int16(-int32(271)), - 76: int16(-int32(271)), - 77: int16(-int32(271)), - 78: int16(-int32(271)), - 79: int16(80), - 80: int16(83), - 81: int16(313), - 82: int16(886), - 83: int16(888), - 84: int16(918), - 85: int16(938), - 86: int16(1021), - 87: int16(1034), - 88: int16(1036), - 89: int16(1141), - 90: int16(1159), - 91: int16(1163), - 92: int16(1166), - 93: int16(1168), - 94: int16(1170), - 95: int16(1176), - 96: int16(1178), - 97: int16(1180), - 98: int16(1184), - 99: int16(1196), - 100: int16(1198), - 101: int16(1205), - 102: int16(1215), - 103: int16(1225), - 104: int16(1227), - 105: int16(1236), - 106: int16(1252), - 107: int16(1254), - 108: int16(1264), - 109: int16(1303), - 110: int16(1309), - 111: int16(1312), - 112: int16(1322), - 113: int16(1325), - 114: int16(1328), - 115: int16(1337), - 116: int16(1340), - 117: int16(1343), - 118: int16(1353), - 119: int16(1371), - 120: int16(1373), - 121: int16(1384), - 122: int16(1386), - 123: int16(1411), - 124: int16(1413), - 125: int16(1420), - 126: int16(1424), - 127: int16(1426), - 128: int16(1458), - 129: int16(1470), - 130: int16(1473), - 131: int16(-int32(271)), - 132: int16(-int32(271)), - 133: int16(-int32(271)), - 134: int16(-int32(271)), - 135: int16(-int32(271)), - 136: int16(-int32(271)), - 137: int16(-int32(271)), - 138: int16(-int32(271)), - 139: int16(-int32(271)), - 140: int16(-int32(271)), - 141: int16(-int32(271)), - 142: int16(138), - 143: int16(459), - 144: int16(396), - 145: int16(-int32(158)), - 146: int16(470), - 147: int16(302), - 148: int16(-int32(212)), - 149: int16(521), - 150: int16(201), - 151: int16(-int32(195)), - 152: int16(-int32(92)), - 153: int16(559), - 154: int16(630), - 155: int16(632), - 156: int16(630), - 157: int16(-int32(271)), - 158: int16(632), - 159: int16(901), - 160: int16(63), - 161: int16(407), - 162: int16(670), - 163: int16(-int32(271)), - 164: int16(-int32(271)), - 165: int16(-int32(271)), - 166: int16(-int32(271)), - 167: int16(161), - 168: int16(161), - 169: int16(161), - 170: int16(251), - 171: int16(335), - 172: int16(847), - 173: int16(979), - 174: int16(1097), - 175: int16(537), - 176: int16(588), - 177: int16(618), - 178: int16(628), - 179: int16(688), - 180: int16(688), - 181: int16(-int32(166)), - 182: int16(-int32(161)), - 183: int16(674), - 184: int16(787), - 185: int16(794), - 186: int16(799), - 187: int16(852), - 188: int16(996), - 189: int16(-int32(122)), - 190: int16(837), - 191: int16(-int32(120)), - 192: int16(1018), - 193: int16(1035), - 194: int16(415), - 195: int16(1047), - 196: int16(1001), - 197: int16(958), - 198: int16(1082), - 199: int16(400), - 200: int16(1099), - 201: int16(779), - 202: int16(1137), - 203: int16(1142), - 204: int16(263), - 205: int16(1083), - 206: int16(1145), - 207: int16(1150), - 208: int16(1041), - 209: int16(1139), - 210: int16(965), - 211: int16(1050), - 212: int16(362), - 213: int16(849), - 214: int16(752), - 215: int16(629), - 216: int16(675), - 217: int16(1162), - 218: int16(1173), - 219: int16(1090), - 220: int16(1195), - 221: int16(-int32(194)), - 222: int16(56), - 223: int16(185), - 224: int16(-int32(135)), - 225: int16(232), - 226: int16(522), - 227: int16(560), - 228: int16(571), - 229: int16(601), - 230: int16(617), - 231: int16(669), - 232: int16(683), - 233: int16(711), - 234: int16(850), - 235: int16(893), - 236: int16(1000), - 237: int16(1040), - 238: int16(1049), - 239: int16(1081), - 240: int16(1087), - 241: int16(1101), - 242: int16(392), - 243: int16(1114), - 244: int16(1123), - 245: int16(1155), - 246: int16(1161), - 247: int16(1175), - 248: int16(1271), - 249: int16(1293), - 250: int16(1299), - 251: int16(1330), - 252: int16(1339), - 253: int16(1342), - 254: int16(1347), - 255: int16(593), - 256: int16(1282), - 257: int16(1286), - 258: int16(1350), - 259: int16(1359), - 260: int16(1368), - 261: int16(1314), - 262: int16(1480), - 263: int16(1483), - 264: int16(1507), - 265: int16(1085), - 266: int16(1338), - 267: int16(1526), - 268: int16(1527), - 269: int16(1487), - 270: int16(1531), - 271: int16(560), - 272: int16(1532), - 273: int16(1534), - 274: int16(1535), - 275: int16(1538), - 276: int16(1539), - 277: int16(1541), - 278: int16(1448), - 279: int16(1450), - 280: int16(1496), - 281: int16(1484), - 282: int16(1485), - 283: int16(1489), - 284: int16(1490), - 285: int16(1314), - 286: int16(1496), - 287: int16(1496), - 288: int16(1504), - 289: int16(1536), - 290: int16(1564), - 291: int16(1451), - 292: int16(1486), - 293: int16(1492), - 294: int16(1509), - 295: int16(1493), - 296: int16(1465), - 297: int16(1515), - 298: int16(1494), - 299: int16(1495), - 300: int16(1517), - 301: int16(1500), - 302: int16(1519), - 303: int16(1474), - 304: int16(1550), - 305: int16(1543), - 306: int16(1548), - 307: int16(1556), - 308: int16(1565), - 309: int16(1566), - 310: int16(1518), - 311: int16(1523), - 312: int16(1542), - 313: int16(1544), - 314: int16(1525), - 315: int16(1545), - 316: int16(1513), - 317: int16(1553), - 318: int16(1552), - 319: int16(1604), - 320: int16(1508), - 321: int16(1510), - 322: int16(1608), - 323: int16(1609), - 324: int16(1520), - 325: int16(1528), - 326: int16(1612), - 327: int16(1540), - 328: int16(1559), - 329: int16(1560), - 330: int16(1592), - 331: int16(1591), - 332: int16(1595), - 333: int16(1596), - 334: int16(1597), - 335: int16(1629), - 336: int16(1638), - 337: int16(1594), - 338: int16(1569), - 339: int16(1570), - 340: int16(1600), - 341: int16(1568), - 342: int16(1610), - 343: int16(1601), - 344: int16(1611), - 345: int16(1603), - 346: int16(1643), - 347: int16(1651), - 348: int16(1562), - 349: int16(1571), - 350: int16(1655), - 351: int16(1659), - 352: int16(1640), - 353: int16(1663), - 354: int16(1666), - 355: int16(1664), - 356: int16(1667), - 357: int16(1641), - 358: int16(1650), - 359: int16(1652), - 360: int16(1653), - 361: int16(1647), - 362: int16(1656), - 363: int16(1657), - 364: int16(1658), - 365: int16(1668), - 366: int16(1672), - 367: int16(1681), - 368: int16(1649), - 369: int16(1682), - 370: int16(1683), - 371: int16(1573), - 372: int16(1582), - 373: int16(1607), - 374: int16(1615), - 375: int16(1685), - 376: int16(1702), - 377: int16(1586), - 378: int16(1587), - 379: int16(1642), - 380: int16(1646), - 381: int16(1673), - 382: int16(1675), - 383: int16(1636), - 384: int16(1714), - 385: int16(1637), - 386: int16(1677), - 387: int16(1674), - 388: int16(1678), - 389: int16(1694), - 390: int16(1719), - 391: int16(1734), - 392: int16(1735), - 393: int16(1746), - 394: int16(1747), - 395: int16(1750), - 396: int16(1633), - 397: int16(1661), + 76: uint16(1093), + 77: uint16(1093), + 78: uint16(1093), + 79: uint16(1093), + 80: uint16(1093), + 81: uint16(1093), + 82: uint16(1093), + 83: uint16(1113), + 84: uint16(1093), + 85: uint16(1216), + 86: uint16(957), + 87: uint16(957), + 88: uint16(1523), + 89: uint16(1602), + 90: uint16(1674), + 91: uint16(1828), + 92: uint16(1828), + 93: uint16(1828), + 94: uint16(1828), + 95: uint16(1828), + 96: uint16(1828), + 97: uint16(1828), + 98: uint16(1828), + 99: uint16(1828), + 100: uint16(1828), + 101: uint16(1828), + 102: uint16(1828), + 103: uint16(1828), + 104: uint16(1828), + 105: uint16(1828), + 106: uint16(1828), + 107: uint16(1828), + 108: uint16(1828), + 109: uint16(1828), + 110: uint16(1828), + 111: uint16(1828), + 112: uint16(1828), + 113: uint16(1828), + 114: uint16(1828), + 115: uint16(1828), + 116: uint16(1828), + 117: uint16(1828), + 118: uint16(1828), + 119: uint16(1828), + 120: uint16(1828), + 121: uint16(1828), + 122: uint16(1828), + 123: uint16(1828), + 124: uint16(1828), + 125: uint16(1828), + 126: uint16(1828), + 127: uint16(1828), + 128: uint16(1828), + 129: uint16(1828), + 130: uint16(1828), + 131: uint16(1828), + 132: uint16(1828), + 133: uint16(1828), + 134: uint16(1828), + 135: uint16(1828), + 136: uint16(1828), + 137: uint16(1828), + 138: uint16(1828), + 139: uint16(1828), + 140: uint16(137), + 141: uint16(181), + 142: uint16(181), + 143: uint16(181), + 144: uint16(181), + 145: uint16(181), + 146: uint16(181), + 147: uint16(181), + 148: uint16(96), + 149: uint16(222), + 150: uint16(143), + 151: uint16(477), + 152: uint16(713), + 153: uint16(1133), + 154: uint16(1268), + 155: uint16(713), + 156: uint16(713), + 157: uint16(79), + 158: uint16(79), + 159: uint16(713), + 160: uint16(770), + 161: uint16(83), + 162: uint16(65), + 163: uint16(65), + 164: uint16(65), + 165: uint16(288), + 166: uint16(162), + 167: uint16(162), + 168: uint16(2142), + 169: uint16(2142), + 170: uint16(696), + 171: uint16(696), + 172: uint16(696), + 173: uint16(238), + 174: uint16(474), + 175: uint16(474), + 176: uint16(474), + 177: uint16(474), + 178: uint16(1217), + 179: uint16(1217), + 180: uint16(678), + 181: uint16(477), + 182: uint16(324), + 183: uint16(398), + 184: uint16(713), + 185: uint16(713), + 186: uint16(713), + 187: uint16(713), + 188: uint16(713), + 189: uint16(713), + 190: uint16(713), + 191: uint16(713), + 192: uint16(713), + 193: uint16(713), + 194: uint16(713), + 195: uint16(713), + 196: uint16(713), + 197: uint16(713), + 198: uint16(713), + 199: uint16(713), + 200: uint16(713), + 201: uint16(713), + 202: uint16(713), + 203: uint16(1220), + 204: uint16(366), + 205: uint16(366), + 206: uint16(713), + 207: uint16(917), + 208: uint16(283), + 209: uint16(283), + 210: uint16(434), + 211: uint16(434), + 212: uint16(605), + 213: uint16(605), + 214: uint16(1298), + 215: uint16(2142), + 216: uint16(2142), + 217: uint16(2142), + 218: uint16(2142), + 219: uint16(2142), + 220: uint16(2142), + 221: uint16(2142), + 222: uint16(1179), + 223: uint16(1157), + 224: uint16(1157), + 225: uint16(487), + 226: uint16(527), + 227: uint16(585), + 228: uint16(645), + 229: uint16(749), + 230: uint16(914), + 231: uint16(968), + 232: uint16(752), + 233: uint16(713), + 234: uint16(713), + 235: uint16(713), + 236: uint16(713), + 237: uint16(713), + 238: uint16(713), + 239: uint16(713), + 240: uint16(713), + 241: uint16(713), + 242: uint16(713), + 243: uint16(303), + 244: uint16(713), + 245: uint16(713), + 246: uint16(713), + 247: uint16(713), + 248: uint16(713), + 249: uint16(713), + 250: uint16(713), + 251: uint16(713), + 252: uint16(713), + 253: uint16(713), + 254: uint16(713), + 255: uint16(713), + 256: uint16(797), + 257: uint16(797), + 258: uint16(797), + 259: uint16(713), + 260: uint16(713), + 261: uint16(713), + 262: uint16(959), + 263: uint16(713), + 264: uint16(713), + 265: uint16(713), + 266: uint16(1169), + 267: uint16(1271), + 268: uint16(713), + 269: uint16(713), + 270: uint16(1330), + 271: uint16(713), + 272: uint16(713), + 273: uint16(713), + 274: uint16(713), + 275: uint16(713), + 276: uint16(713), + 277: uint16(713), + 278: uint16(713), + 279: uint16(629), + 280: uint16(7), + 281: uint16(91), + 282: uint16(876), + 283: uint16(876), + 284: uint16(876), + 285: uint16(876), + 286: uint16(953), + 287: uint16(91), + 288: uint16(91), + 289: uint16(1246), + 290: uint16(1065), + 291: uint16(1106), + 292: uint16(1374), + 293: uint16(1329), + 294: uint16(1348), + 295: uint16(468), + 296: uint16(1348), + 297: uint16(1394), + 298: uint16(785), + 299: uint16(1329), + 300: uint16(1329), + 301: uint16(785), + 302: uint16(1329), + 303: uint16(468), + 304: uint16(1394), + 305: uint16(859), + 306: uint16(854), + 307: uint16(1402), + 308: uint16(1449), + 309: uint16(1449), + 310: uint16(1449), + 311: uint16(1173), + 312: uint16(1173), + 313: uint16(1173), + 314: uint16(1173), + 315: uint16(1355), + 316: uint16(1355), + 317: uint16(1030), + 318: uint16(1341), + 319: uint16(405), + 320: uint16(1230), + 321: uint16(1795), + 322: uint16(1795), + 323: uint16(1711), + 324: uint16(1711), + 325: uint16(1829), + 326: uint16(1829), + 327: uint16(1711), + 328: uint16(1717), + 329: uint16(1719), + 330: uint16(1850), + 331: uint16(1833), + 332: uint16(1860), + 333: uint16(1860), + 334: uint16(1860), + 335: uint16(1860), + 336: uint16(1711), + 337: uint16(1868), + 338: uint16(1740), + 339: uint16(1719), + 340: uint16(1719), + 341: uint16(1740), + 342: uint16(1850), + 343: uint16(1833), + 344: uint16(1740), + 345: uint16(1833), + 346: uint16(1740), + 347: uint16(1711), + 348: uint16(1868), + 349: uint16(1745), + 350: uint16(1843), + 351: uint16(1711), + 352: uint16(1868), + 353: uint16(1887), + 354: uint16(1711), + 355: uint16(1868), + 356: uint16(1711), + 357: uint16(1868), + 358: uint16(1887), + 359: uint16(1801), + 360: uint16(1801), + 361: uint16(1801), + 362: uint16(1855), + 363: uint16(1900), + 364: uint16(1900), + 365: uint16(1887), + 366: uint16(1801), + 367: uint16(1797), + 368: uint16(1801), + 369: uint16(1855), + 370: uint16(1801), + 371: uint16(1801), + 372: uint16(1761), + 373: uint16(1912), + 374: uint16(1830), + 375: uint16(1830), + 376: uint16(1887), + 377: uint16(1711), + 378: uint16(1862), + 379: uint16(1862), + 380: uint16(1875), + 381: uint16(1875), + 382: uint16(1810), + 383: uint16(1815), + 384: uint16(1940), + 385: uint16(1711), + 386: uint16(1807), + 387: uint16(1810), + 388: uint16(1821), + 389: uint16(1823), + 390: uint16(1740), + 391: uint16(1945), + 392: uint16(1963), + 393: uint16(1963), + 394: uint16(1974), + 395: uint16(1974), + 396: uint16(1974), + 397: uint16(2142), + 398: uint16(2142), + 399: uint16(2142), + 400: uint16(2142), + 401: uint16(2142), + 402: uint16(2142), + 403: uint16(2142), + 404: uint16(2142), + 405: uint16(2142), + 406: uint16(2142), + 407: uint16(2142), + 408: uint16(2142), + 409: uint16(2142), + 410: uint16(2142), + 411: uint16(2142), + 412: uint16(20), + 413: uint16(1224), + 414: uint16(256), + 415: uint16(1111), + 416: uint16(1115), + 417: uint16(1114), + 418: uint16(1192), + 419: uint16(1496), + 420: uint16(1424), + 421: uint16(1505), + 422: uint16(1427), + 423: uint16(355), + 424: uint16(1383), + 425: uint16(1537), + 426: uint16(1506), + 427: uint16(1538), + 428: uint16(1553), + 429: uint16(1583), + 430: uint16(1584), + 431: uint16(1591), + 432: uint16(1625), + 433: uint16(541), + 434: uint16(1445), + 435: uint16(1562), + 436: uint16(1450), + 437: uint16(1572), + 438: uint16(1515), + 439: uint16(1428), + 440: uint16(1532), + 441: uint16(1592), + 442: uint16(1629), + 443: uint16(1520), + 444: uint16(1630), + 445: uint16(1639), + 446: uint16(1510), + 447: uint16(1544), + 448: uint16(1662), + 449: uint16(1675), + 450: uint16(1551), + 451: uint16(48), + 452: uint16(1996), + 453: uint16(2001), + 454: uint16(1983), + 455: uint16(1844), + 456: uint16(1993), + 457: uint16(1994), + 458: uint16(1986), + 459: uint16(1989), + 460: uint16(1874), + 461: uint16(1863), + 462: uint16(1885), + 463: uint16(1991), + 464: uint16(1991), + 465: uint16(1995), + 466: uint16(1876), + 467: uint16(1997), + 468: uint16(1877), + 469: uint16(2004), + 470: uint16(2021), + 471: uint16(1881), + 472: uint16(1894), + 473: uint16(1991), + 474: uint16(1895), + 475: uint16(1965), + 476: uint16(1990), + 477: uint16(1991), + 478: uint16(1878), + 479: uint16(1975), + 480: uint16(1977), + 481: uint16(1978), + 482: uint16(1979), + 483: uint16(1903), + 484: uint16(1918), + 485: uint16(2002), + 486: uint16(1896), + 487: uint16(2034), + 488: uint16(2033), + 489: uint16(2017), + 490: uint16(1925), + 491: uint16(1880), + 492: uint16(1976), + 493: uint16(2018), + 494: uint16(1980), + 495: uint16(1967), + 496: uint16(2005), + 497: uint16(1904), + 498: uint16(1932), + 499: uint16(2025), + 500: uint16(2030), + 501: uint16(2032), + 502: uint16(1921), + 503: uint16(1928), + 504: uint16(2035), + 505: uint16(1987), + 506: uint16(2036), + 507: uint16(2037), + 508: uint16(2038), + 509: uint16(2040), + 510: uint16(1988), + 511: uint16(2006), + 512: uint16(2039), + 513: uint16(1960), + 514: uint16(2041), + 515: uint16(2042), + 516: uint16(1999), + 517: uint16(2023), + 518: uint16(2044), + 519: uint16(2043), + 520: uint16(1919), + 521: uint16(2048), + 522: uint16(2049), + 523: uint16(2050), + 524: uint16(2046), + 525: uint16(2051), + 526: uint16(2053), + 527: uint16(1981), + 528: uint16(1935), + 529: uint16(2056), + 530: uint16(2057), + 531: uint16(1966), + 532: uint16(2047), + 533: uint16(2061), + 534: uint16(1941), + 535: uint16(2060), + 536: uint16(2052), + 537: uint16(2054), + 538: uint16(2055), + 539: uint16(2058), + 540: uint16(2003), + 541: uint16(2012), + 542: uint16(2007), + 543: uint16(2059), + 544: uint16(2015), + 545: uint16(2008), + 546: uint16(2062), + 547: uint16(2071), + 548: uint16(2073), + 549: uint16(2074), + 550: uint16(2072), + 551: uint16(2075), + 552: uint16(2065), + 553: uint16(1962), + 554: uint16(1964), + 555: uint16(2079), + 556: uint16(2060), + 557: uint16(2082), + 558: uint16(2084), + 559: uint16(2085), + 560: uint16(2087), + 561: uint16(2086), + 562: uint16(2089), + 563: uint16(2088), + 564: uint16(2091), + 565: uint16(2093), + 566: uint16(2099), + 567: uint16(2094), + 568: uint16(2095), + 569: uint16(2096), + 570: uint16(2097), + 571: uint16(2100), + 572: uint16(2101), + 573: uint16(2102), + 574: uint16(1998), + 575: uint16(1984), + 576: uint16(1985), + 577: uint16(2000), + 578: uint16(2103), + 579: uint16(2098), + 580: uint16(2109), + 581: uint16(2117), + 582: uint16(2128), +} +var _yy_reduce_ofst = [412]int16{ + 0: int16(-int32(71)), + 1: int16(194), + 2: int16(343), + 3: int16(835), + 4: int16(-int32(180)), + 5: int16(-int32(177)), + 6: int16(838), + 7: int16(-int32(194)), + 8: int16(-int32(188)), + 9: int16(-int32(185)), + 10: int16(-int32(183)), + 11: int16(82), + 12: int16(183), + 13: int16(-int32(65)), + 14: int16(133), + 15: int16(245), + 16: int16(346), + 17: int16(407), + 18: int16(458), + 19: int16(-int32(178)), + 20: int16(75), + 21: int16(-int32(275)), + 22: int16(-int32(4)), + 23: int16(310), + 24: int16(312), + 25: int16(489), + 26: int16(575), + 27: int16(596), + 28: int16(463), + 29: int16(686), + 30: int16(707), + 31: int16(725), + 32: int16(780), + 33: int16(1098), + 34: int16(856), + 35: int16(778), + 36: int16(1059), + 37: int16(1090), + 38: int16(708), + 39: int16(887), + 40: int16(86), + 41: int16(448), + 42: int16(980), + 43: int16(630), + 44: int16(680), + 45: int16(681), + 46: int16(684), + 47: int16(796), + 48: int16(801), + 49: int16(796), + 50: int16(801), + 51: int16(-int32(261)), + 52: int16(-int32(261)), + 53: int16(-int32(261)), + 54: int16(-int32(261)), + 55: int16(-int32(261)), + 56: int16(-int32(261)), + 57: int16(-int32(261)), + 58: int16(-int32(261)), + 59: int16(-int32(261)), + 60: int16(-int32(261)), + 61: int16(-int32(261)), + 62: int16(-int32(261)), + 63: int16(-int32(261)), + 64: int16(-int32(261)), + 65: int16(-int32(261)), + 66: int16(-int32(261)), + 67: int16(-int32(261)), + 68: int16(-int32(261)), + 69: int16(-int32(261)), + 70: int16(-int32(261)), + 71: int16(-int32(261)), + 72: int16(-int32(261)), + 73: int16(-int32(261)), + 74: int16(-int32(261)), + 75: int16(-int32(261)), + 76: int16(-int32(261)), + 77: int16(-int32(261)), + 78: int16(-int32(261)), + 79: int16(-int32(261)), + 80: int16(-int32(261)), + 81: int16(-int32(261)), + 82: int16(-int32(261)), + 83: int16(-int32(261)), + 84: int16(-int32(261)), + 85: int16(-int32(261)), + 86: int16(-int32(261)), + 87: int16(-int32(261)), + 88: int16(391), + 89: int16(886), + 90: int16(888), + 91: int16(1013), + 92: int16(1016), + 93: int16(1081), + 94: int16(1087), + 95: int16(1151), + 96: int16(1159), + 97: int16(1177), + 98: int16(1185), + 99: int16(1188), + 100: int16(1190), + 101: int16(1194), + 102: int16(1197), + 103: int16(1203), + 104: int16(1247), + 105: int16(1260), + 106: int16(1264), + 107: int16(1267), + 108: int16(1269), + 109: int16(1273), + 110: int16(1315), + 111: int16(1322), + 112: int16(1335), + 113: int16(1337), + 114: int16(1356), + 115: int16(1362), + 116: int16(1418), + 117: int16(1425), + 118: int16(1453), + 119: int16(1457), + 120: int16(1465), + 121: int16(1473), + 122: int16(1487), + 123: int16(1495), + 124: int16(1507), + 125: int16(1517), + 126: int16(1521), + 127: int16(1534), + 128: int16(1543), + 129: int16(1546), + 130: int16(1549), + 131: int16(1552), + 132: int16(1554), + 133: int16(1560), + 134: int16(1581), + 135: int16(1590), + 136: int16(1593), + 137: int16(1595), + 138: int16(1621), + 139: int16(1623), + 140: int16(-int32(261)), + 141: int16(-int32(261)), + 142: int16(-int32(261)), + 143: int16(-int32(261)), + 144: int16(-int32(261)), + 145: int16(-int32(261)), + 146: int16(-int32(261)), + 147: int16(-int32(261)), + 148: int16(-int32(261)), + 149: int16(-int32(261)), + 150: int16(-int32(261)), + 151: int16(-int32(186)), + 152: int16(-int32(117)), + 153: int16(260), + 154: int16(263), + 155: int16(460), + 156: int16(631), + 157: int16(-int32(74)), + 158: int16(497), + 159: int16(-int32(181)), + 160: int16(-int32(261)), + 161: int16(939), + 162: int16(176), + 163: int16(274), + 164: int16(338), + 165: int16(676), + 166: int16(-int32(261)), + 167: int16(-int32(261)), + 168: int16(-int32(261)), + 169: int16(-int32(261)), + 170: int16(-int32(212)), + 171: int16(-int32(212)), + 172: int16(-int32(212)), + 173: int16(-int32(184)), + 174: int16(149), + 175: int16(777), + 176: int16(1061), + 177: int16(1103), + 178: int16(265), + 179: int16(419), + 180: int16(-int32(254)), + 181: int16(670), + 182: int16(677), + 183: int16(677), + 184: int16(-int32(11)), + 185: int16(-int32(129)), + 186: int16(184), + 187: int16(488), + 188: int16(736), + 189: int16(789), + 190: int16(805), + 191: int16(844), + 192: int16(403), + 193: int16(529), + 194: int16(579), + 195: int16(668), + 196: int16(783), + 197: int16(841), + 198: int16(1158), + 199: int16(1112), + 200: int16(806), + 201: int16(861), + 202: int16(1095), + 203: int16(846), + 204: int16(839), + 205: int16(1031), + 206: int16(-int32(189)), + 207: int16(1077), + 208: int16(1080), + 209: int16(1116), + 210: int16(1084), + 211: int16(1156), + 212: int16(1139), + 213: int16(1221), + 214: int16(46), + 215: int16(1099), + 216: int16(1037), + 217: int16(1118), + 218: int16(1171), + 219: int16(1214), + 220: int16(1210), + 221: int16(1258), + 222: int16(-int32(210)), + 223: int16(-int32(190)), + 224: int16(-int32(176)), + 225: int16(-int32(115)), + 226: int16(117), + 227: int16(262), + 228: int16(376), + 229: int16(490), + 230: int16(511), + 231: int16(520), + 232: int16(618), + 233: int16(639), + 234: int16(743), + 235: int16(901), + 236: int16(907), + 237: int16(958), + 238: int16(1014), + 239: int16(1055), + 240: int16(1108), + 241: int16(1193), + 242: int16(1244), + 243: int16(720), + 244: int16(1248), + 245: int16(1277), + 246: int16(1324), + 247: int16(1347), + 248: int16(1417), + 249: int16(1431), + 250: int16(1432), + 251: int16(1440), + 252: int16(1451), + 253: int16(1452), + 254: int16(1463), + 255: int16(1478), + 256: int16(1286), + 257: int16(1350), + 258: int16(1369), + 259: int16(1490), + 260: int16(1498), + 261: int16(1501), + 262: int16(773), + 263: int16(1509), + 264: int16(1513), + 265: int16(1528), + 266: int16(1292), + 267: int16(1367), + 268: int16(1535), + 269: int16(1536), + 270: int16(1477), + 271: int16(1542), + 272: int16(376), + 273: int16(1547), + 274: int16(1550), + 275: int16(1555), + 276: int16(1559), + 277: int16(1568), + 278: int16(1571), + 279: int16(1441), + 280: int16(1443), + 281: int16(1474), + 282: int16(1511), + 283: int16(1516), + 284: int16(1519), + 285: int16(1522), + 286: int16(773), + 287: int16(1474), + 288: int16(1474), + 289: int16(1503), + 290: int16(1567), + 291: int16(1594), + 292: int16(1484), + 293: int16(1527), + 294: int16(1556), + 295: int16(1570), + 296: int16(1557), + 297: int16(1524), + 298: int16(1573), + 299: int16(1545), + 300: int16(1548), + 301: int16(1576), + 302: int16(1561), + 303: int16(1587), + 304: int16(1540), + 305: int16(1575), + 306: int16(1606), + 307: int16(1611), + 308: int16(1622), + 309: int16(1624), + 310: int16(1626), + 311: int16(1582), + 312: int16(1597), + 313: int16(1598), + 314: int16(1599), + 315: int16(1601), + 316: int16(1603), + 317: int16(1563), + 318: int16(1608), + 319: int16(1605), + 320: int16(1604), + 321: int16(1564), + 322: int16(1566), + 323: int16(1655), + 324: int16(1660), + 325: int16(1578), + 326: int16(1579), + 327: int16(1665), + 328: int16(1586), + 329: int16(1607), + 330: int16(1610), + 331: int16(1642), + 332: int16(1641), + 333: int16(1645), + 334: int16(1646), + 335: int16(1647), + 336: int16(1679), + 337: int16(1688), + 338: int16(1644), + 339: int16(1618), + 340: int16(1619), + 341: int16(1648), + 342: int16(1628), + 343: int16(1659), + 344: int16(1649), + 345: int16(1663), + 346: int16(1650), + 347: int16(1700), + 348: int16(1702), + 349: int16(1612), + 350: int16(1615), + 351: int16(1706), + 352: int16(1708), + 353: int16(1689), + 354: int16(1709), + 355: int16(1712), + 356: int16(1713), + 357: int16(1715), + 358: int16(1691), + 359: int16(1698), + 360: int16(1699), + 361: int16(1701), + 362: int16(1693), + 363: int16(1704), + 364: int16(1707), + 365: int16(1705), + 366: int16(1714), + 367: int16(1703), + 368: int16(1718), + 369: int16(1710), + 370: int16(1720), + 371: int16(1721), + 372: int16(1632), + 373: int16(1634), + 374: int16(1664), + 375: int16(1666), + 376: int16(1729), + 377: int16(1751), + 378: int16(1635), + 379: int16(1636), + 380: int16(1692), + 381: int16(1694), + 382: int16(1716), + 383: int16(1722), + 384: int16(1684), + 385: int16(1763), + 386: int16(1685), + 387: int16(1723), + 388: int16(1724), + 389: int16(1727), + 390: int16(1730), + 391: int16(1768), + 392: int16(1783), + 393: int16(1784), + 394: int16(1793), + 395: int16(1794), + 396: int16(1796), + 397: int16(1683), 398: int16(1686), - 399: int16(1738), - 400: int16(1728), - 401: int16(1733), - 402: int16(1736), - 403: int16(1737), - 404: int16(1740), - 405: int16(1726), - 406: int16(1730), - 407: int16(1742), - 408: int16(1743), - 409: int16(1748), - 410: int16(1753), -} -var _yy_default = [579]uint16{ - 0: uint16(1648), - 1: uint16(1648), - 2: uint16(1648), - 3: uint16(1478), - 4: uint16(1243), - 5: uint16(1354), - 6: uint16(1243), - 7: uint16(1243), - 8: uint16(1243), - 9: uint16(1478), - 10: uint16(1478), - 11: uint16(1478), - 12: uint16(1243), - 13: uint16(1384), - 14: uint16(1384), - 15: uint16(1531), - 16: uint16(1276), - 17: uint16(1243), - 18: uint16(1243), - 19: uint16(1243), - 20: uint16(1243), - 21: uint16(1243), - 22: uint16(1243), - 23: uint16(1243), - 24: uint16(1243), - 25: uint16(1243), - 26: uint16(1243), - 27: uint16(1243), - 28: uint16(1477), - 29: uint16(1243), - 30: uint16(1243), - 31: uint16(1243), - 32: uint16(1243), - 33: uint16(1564), - 34: uint16(1564), - 35: uint16(1243), - 36: uint16(1243), - 37: uint16(1243), - 38: uint16(1243), - 39: uint16(1243), - 40: uint16(1243), - 41: uint16(1243), - 42: uint16(1243), - 43: uint16(1393), - 44: uint16(1243), - 45: uint16(1400), - 46: uint16(1243), - 47: uint16(1243), - 48: uint16(1243), - 49: uint16(1243), - 50: uint16(1243), - 51: uint16(1479), - 52: uint16(1480), - 53: uint16(1243), - 54: uint16(1243), - 55: uint16(1243), - 56: uint16(1530), - 57: uint16(1532), - 58: uint16(1495), - 59: uint16(1407), - 60: uint16(1406), - 61: uint16(1405), - 62: uint16(1404), - 63: uint16(1513), - 64: uint16(1372), - 65: uint16(1398), - 66: uint16(1391), - 67: uint16(1395), - 68: uint16(1474), - 69: uint16(1475), - 70: uint16(1473), - 71: uint16(1626), - 72: uint16(1480), - 73: uint16(1479), - 74: uint16(1243), - 75: uint16(1394), - 76: uint16(1442), - 77: uint16(1458), - 78: uint16(1441), - 79: uint16(1243), - 80: uint16(1243), - 81: uint16(1243), - 82: uint16(1243), - 83: uint16(1243), - 84: uint16(1243), - 85: uint16(1243), - 86: uint16(1243), - 87: uint16(1243), - 88: uint16(1243), - 89: uint16(1243), - 90: uint16(1243), - 91: uint16(1243), - 92: uint16(1243), - 93: uint16(1243), - 94: uint16(1243), - 95: uint16(1243), - 96: uint16(1243), - 97: uint16(1243), - 98: uint16(1243), - 99: uint16(1243), - 100: uint16(1243), - 101: uint16(1243), - 102: uint16(1243), - 103: uint16(1243), - 104: uint16(1243), - 105: uint16(1243), - 106: uint16(1243), - 107: uint16(1243), - 108: uint16(1243), - 109: uint16(1243), - 110: uint16(1243), - 111: uint16(1243), - 112: uint16(1243), - 113: uint16(1243), - 114: uint16(1243), - 115: uint16(1243), - 116: uint16(1243), - 117: uint16(1243), - 118: uint16(1243), - 119: uint16(1243), - 120: uint16(1243), - 121: uint16(1243), - 122: uint16(1243), - 123: uint16(1243), - 124: uint16(1243), - 125: uint16(1243), - 126: uint16(1243), - 127: uint16(1243), - 128: uint16(1243), - 129: uint16(1243), - 130: uint16(1243), - 131: uint16(1450), - 132: uint16(1457), - 133: uint16(1456), - 134: uint16(1455), - 135: uint16(1464), - 136: uint16(1454), - 137: uint16(1451), - 138: uint16(1444), - 139: uint16(1443), - 140: uint16(1445), - 141: uint16(1446), - 142: uint16(1243), - 143: uint16(1243), - 144: uint16(1267), - 145: uint16(1243), - 146: uint16(1243), - 147: uint16(1264), - 148: uint16(1318), - 149: uint16(1243), - 150: uint16(1243), - 151: uint16(1243), - 152: uint16(1243), - 153: uint16(1243), - 154: uint16(1550), - 155: uint16(1549), - 156: uint16(1243), - 157: uint16(1447), - 158: uint16(1243), - 159: uint16(1276), - 160: uint16(1435), - 161: uint16(1434), - 162: uint16(1433), - 163: uint16(1461), - 164: uint16(1448), - 165: uint16(1460), - 166: uint16(1459), - 167: uint16(1538), - 168: uint16(1600), - 169: uint16(1599), - 170: uint16(1496), - 171: uint16(1243), - 172: uint16(1243), - 173: uint16(1243), - 174: uint16(1243), - 175: uint16(1243), - 176: uint16(1243), - 177: uint16(1564), - 178: uint16(1243), - 179: uint16(1243), - 180: uint16(1243), - 181: uint16(1243), - 182: uint16(1243), - 183: uint16(1243), - 184: uint16(1243), - 185: uint16(1243), - 186: uint16(1243), - 187: uint16(1243), - 188: uint16(1243), - 189: uint16(1243), - 190: uint16(1243), - 191: uint16(1243), - 192: uint16(1243), - 193: uint16(1243), - 194: uint16(1243), - 195: uint16(1243), - 196: uint16(1243), - 197: uint16(1243), - 198: uint16(1243), - 199: uint16(1243), - 200: uint16(1243), - 201: uint16(1374), - 202: uint16(1564), - 203: uint16(1564), - 204: uint16(1243), - 205: uint16(1276), - 206: uint16(1564), - 207: uint16(1564), - 208: uint16(1375), - 209: uint16(1375), - 210: uint16(1272), - 211: uint16(1272), - 212: uint16(1378), - 213: uint16(1243), - 214: uint16(1545), - 215: uint16(1345), - 216: uint16(1345), - 217: uint16(1345), - 218: uint16(1345), - 219: uint16(1354), - 220: uint16(1345), - 221: uint16(1243), - 222: uint16(1243), - 223: uint16(1243), - 224: uint16(1243), - 225: uint16(1243), - 226: uint16(1243), - 227: uint16(1243), - 228: uint16(1243), - 229: uint16(1243), - 230: uint16(1243), - 231: uint16(1243), - 232: uint16(1243), - 233: uint16(1243), - 234: uint16(1243), - 235: uint16(1243), - 236: uint16(1535), - 237: uint16(1533), - 238: uint16(1243), - 239: uint16(1243), - 240: uint16(1243), - 241: uint16(1243), - 242: uint16(1243), - 243: uint16(1243), - 244: uint16(1243), - 245: uint16(1243), - 246: uint16(1243), - 247: uint16(1243), - 248: uint16(1243), - 249: uint16(1243), - 250: uint16(1243), - 251: uint16(1243), - 252: uint16(1243), - 253: uint16(1243), - 254: uint16(1243), - 255: uint16(1243), - 256: uint16(1243), - 257: uint16(1243), - 258: uint16(1243), - 259: uint16(1243), - 260: uint16(1243), - 261: uint16(1243), - 262: uint16(1243), - 263: uint16(1243), - 264: uint16(1243), - 265: uint16(1350), - 266: uint16(1243), - 267: uint16(1243), - 268: uint16(1243), - 269: uint16(1243), - 270: uint16(1243), - 271: uint16(1243), - 272: uint16(1243), - 273: uint16(1243), - 274: uint16(1243), - 275: uint16(1243), - 276: uint16(1243), - 277: uint16(1593), - 278: uint16(1243), - 279: uint16(1508), - 280: uint16(1332), - 281: uint16(1350), - 282: uint16(1350), - 283: uint16(1350), - 284: uint16(1350), - 285: uint16(1352), - 286: uint16(1333), - 287: uint16(1331), - 288: uint16(1344), - 289: uint16(1277), - 290: uint16(1250), - 291: uint16(1640), - 292: uint16(1410), - 293: uint16(1399), - 294: uint16(1351), - 295: uint16(1399), - 296: uint16(1637), - 297: uint16(1397), + 399: int16(1690), + 400: int16(1782), + 401: int16(1779), + 402: int16(1780), + 403: int16(1781), + 404: int16(1785), + 405: int16(1788), + 406: int16(1774), + 407: int16(1775), + 408: int16(1786), + 409: int16(1787), + 410: int16(1789), + 411: int16(1798), +} +var _yy_default = [583]uint16{ + 0: uint16(1663), + 1: uint16(1663), + 2: uint16(1663), + 3: uint16(1491), + 4: uint16(1254), + 5: uint16(1367), + 6: uint16(1254), + 7: uint16(1254), + 8: uint16(1254), + 9: uint16(1254), + 10: uint16(1491), + 11: uint16(1491), + 12: uint16(1491), + 13: uint16(1254), + 14: uint16(1254), + 15: uint16(1254), + 16: uint16(1254), + 17: uint16(1254), + 18: uint16(1254), + 19: uint16(1397), + 20: uint16(1397), + 21: uint16(1544), + 22: uint16(1287), + 23: uint16(1254), + 24: uint16(1254), + 25: uint16(1254), + 26: uint16(1254), + 27: uint16(1254), + 28: uint16(1254), + 29: uint16(1254), + 30: uint16(1254), + 31: uint16(1254), + 32: uint16(1254), + 33: uint16(1254), + 34: uint16(1254), + 35: uint16(1490), + 36: uint16(1254), + 37: uint16(1254), + 38: uint16(1254), + 39: uint16(1254), + 40: uint16(1578), + 41: uint16(1578), + 42: uint16(1254), + 43: uint16(1254), + 44: uint16(1254), + 45: uint16(1254), + 46: uint16(1254), + 47: uint16(1563), + 48: uint16(1562), + 49: uint16(1254), + 50: uint16(1254), + 51: uint16(1254), + 52: uint16(1406), + 53: uint16(1254), + 54: uint16(1413), + 55: uint16(1254), + 56: uint16(1254), + 57: uint16(1254), + 58: uint16(1254), + 59: uint16(1254), + 60: uint16(1492), + 61: uint16(1493), + 62: uint16(1254), + 63: uint16(1254), + 64: uint16(1254), + 65: uint16(1543), + 66: uint16(1545), + 67: uint16(1508), + 68: uint16(1420), + 69: uint16(1419), + 70: uint16(1418), + 71: uint16(1417), + 72: uint16(1526), + 73: uint16(1385), + 74: uint16(1411), + 75: uint16(1404), + 76: uint16(1408), + 77: uint16(1487), + 78: uint16(1488), + 79: uint16(1486), + 80: uint16(1641), + 81: uint16(1493), + 82: uint16(1492), + 83: uint16(1254), + 84: uint16(1407), + 85: uint16(1455), + 86: uint16(1471), + 87: uint16(1454), + 88: uint16(1254), + 89: uint16(1254), + 90: uint16(1254), + 91: uint16(1254), + 92: uint16(1254), + 93: uint16(1254), + 94: uint16(1254), + 95: uint16(1254), + 96: uint16(1254), + 97: uint16(1254), + 98: uint16(1254), + 99: uint16(1254), + 100: uint16(1254), + 101: uint16(1254), + 102: uint16(1254), + 103: uint16(1254), + 104: uint16(1254), + 105: uint16(1254), + 106: uint16(1254), + 107: uint16(1254), + 108: uint16(1254), + 109: uint16(1254), + 110: uint16(1254), + 111: uint16(1254), + 112: uint16(1254), + 113: uint16(1254), + 114: uint16(1254), + 115: uint16(1254), + 116: uint16(1254), + 117: uint16(1254), + 118: uint16(1254), + 119: uint16(1254), + 120: uint16(1254), + 121: uint16(1254), + 122: uint16(1254), + 123: uint16(1254), + 124: uint16(1254), + 125: uint16(1254), + 126: uint16(1254), + 127: uint16(1254), + 128: uint16(1254), + 129: uint16(1254), + 130: uint16(1254), + 131: uint16(1254), + 132: uint16(1254), + 133: uint16(1254), + 134: uint16(1254), + 135: uint16(1254), + 136: uint16(1254), + 137: uint16(1254), + 138: uint16(1254), + 139: uint16(1254), + 140: uint16(1463), + 141: uint16(1470), + 142: uint16(1469), + 143: uint16(1468), + 144: uint16(1477), + 145: uint16(1467), + 146: uint16(1464), + 147: uint16(1457), + 148: uint16(1456), + 149: uint16(1458), + 150: uint16(1459), + 151: uint16(1278), + 152: uint16(1254), + 153: uint16(1275), + 154: uint16(1329), + 155: uint16(1254), + 156: uint16(1254), + 157: uint16(1254), + 158: uint16(1254), + 159: uint16(1254), + 160: uint16(1460), + 161: uint16(1287), + 162: uint16(1448), + 163: uint16(1447), + 164: uint16(1446), + 165: uint16(1254), + 166: uint16(1474), + 167: uint16(1461), + 168: uint16(1473), + 169: uint16(1472), + 170: uint16(1551), + 171: uint16(1615), + 172: uint16(1614), + 173: uint16(1509), + 174: uint16(1254), + 175: uint16(1254), + 176: uint16(1254), + 177: uint16(1254), + 178: uint16(1254), + 179: uint16(1254), + 180: uint16(1578), + 181: uint16(1254), + 182: uint16(1254), + 183: uint16(1254), + 184: uint16(1254), + 185: uint16(1254), + 186: uint16(1254), + 187: uint16(1254), + 188: uint16(1254), + 189: uint16(1254), + 190: uint16(1254), + 191: uint16(1254), + 192: uint16(1254), + 193: uint16(1254), + 194: uint16(1254), + 195: uint16(1254), + 196: uint16(1254), + 197: uint16(1254), + 198: uint16(1254), + 199: uint16(1254), + 200: uint16(1254), + 201: uint16(1254), + 202: uint16(1254), + 203: uint16(1387), + 204: uint16(1578), + 205: uint16(1578), + 206: uint16(1254), + 207: uint16(1287), + 208: uint16(1578), + 209: uint16(1578), + 210: uint16(1388), + 211: uint16(1388), + 212: uint16(1283), + 213: uint16(1283), + 214: uint16(1391), + 215: uint16(1558), + 216: uint16(1358), + 217: uint16(1358), + 218: uint16(1358), + 219: uint16(1358), + 220: uint16(1367), + 221: uint16(1358), + 222: uint16(1254), + 223: uint16(1254), + 224: uint16(1254), + 225: uint16(1254), + 226: uint16(1254), + 227: uint16(1254), + 228: uint16(1254), + 229: uint16(1254), + 230: uint16(1254), + 231: uint16(1254), + 232: uint16(1254), + 233: uint16(1254), + 234: uint16(1254), + 235: uint16(1254), + 236: uint16(1254), + 237: uint16(1548), + 238: uint16(1546), + 239: uint16(1254), + 240: uint16(1254), + 241: uint16(1254), + 242: uint16(1254), + 243: uint16(1254), + 244: uint16(1254), + 245: uint16(1254), + 246: uint16(1254), + 247: uint16(1254), + 248: uint16(1254), + 249: uint16(1254), + 250: uint16(1254), + 251: uint16(1254), + 252: uint16(1254), + 253: uint16(1254), + 254: uint16(1254), + 255: uint16(1254), + 256: uint16(1254), + 257: uint16(1254), + 258: uint16(1254), + 259: uint16(1254), + 260: uint16(1254), + 261: uint16(1254), + 262: uint16(1254), + 263: uint16(1254), + 264: uint16(1254), + 265: uint16(1254), + 266: uint16(1363), + 267: uint16(1254), + 268: uint16(1254), + 269: uint16(1254), + 270: uint16(1254), + 271: uint16(1254), + 272: uint16(1254), + 273: uint16(1254), + 274: uint16(1254), + 275: uint16(1254), + 276: uint16(1254), + 277: uint16(1254), + 278: uint16(1608), + 279: uint16(1254), + 280: uint16(1521), + 281: uint16(1343), + 282: uint16(1363), + 283: uint16(1363), + 284: uint16(1363), + 285: uint16(1363), + 286: uint16(1365), + 287: uint16(1344), + 288: uint16(1342), + 289: uint16(1357), + 290: uint16(1288), + 291: uint16(1261), + 292: uint16(1655), + 293: uint16(1423), + 294: uint16(1412), + 295: uint16(1364), + 296: uint16(1412), + 297: uint16(1652), 298: uint16(1410), - 299: uint16(1410), - 300: uint16(1397), + 299: uint16(1423), + 300: uint16(1423), 301: uint16(1410), - 302: uint16(1351), - 303: uint16(1637), - 304: uint16(1293), - 305: uint16(1615), - 306: uint16(1288), - 307: uint16(1384), - 308: uint16(1384), - 309: uint16(1384), - 310: uint16(1374), - 311: uint16(1374), - 312: uint16(1374), - 313: uint16(1374), - 314: uint16(1378), - 315: uint16(1378), - 316: uint16(1476), - 317: uint16(1351), - 318: uint16(1344), - 319: uint16(1243), - 320: uint16(1640), - 321: uint16(1640), - 322: uint16(1360), - 323: uint16(1360), - 324: uint16(1639), - 325: uint16(1639), - 326: uint16(1360), - 327: uint16(1496), - 328: uint16(1623), - 329: uint16(1419), - 330: uint16(1321), - 331: uint16(1327), - 332: uint16(1327), - 333: uint16(1327), - 334: uint16(1327), - 335: uint16(1360), - 336: uint16(1261), - 337: uint16(1397), - 338: uint16(1623), - 339: uint16(1623), - 340: uint16(1397), - 341: uint16(1419), - 342: uint16(1321), - 343: uint16(1397), - 344: uint16(1321), - 345: uint16(1397), - 346: uint16(1360), - 347: uint16(1261), - 348: uint16(1512), - 349: uint16(1634), - 350: uint16(1360), - 351: uint16(1261), - 352: uint16(1486), - 353: uint16(1360), - 354: uint16(1261), - 355: uint16(1360), - 356: uint16(1261), - 357: uint16(1486), - 358: uint16(1319), - 359: uint16(1319), - 360: uint16(1319), - 361: uint16(1308), - 362: uint16(1243), - 363: uint16(1243), - 364: uint16(1486), - 365: uint16(1319), - 366: uint16(1293), - 367: uint16(1319), - 368: uint16(1308), + 302: uint16(1423), + 303: uint16(1364), + 304: uint16(1652), + 305: uint16(1304), + 306: uint16(1630), + 307: uint16(1299), + 308: uint16(1397), + 309: uint16(1397), + 310: uint16(1397), + 311: uint16(1387), + 312: uint16(1387), + 313: uint16(1387), + 314: uint16(1387), + 315: uint16(1391), + 316: uint16(1391), + 317: uint16(1489), + 318: uint16(1364), + 319: uint16(1357), + 320: uint16(1254), + 321: uint16(1655), + 322: uint16(1655), + 323: uint16(1373), + 324: uint16(1373), + 325: uint16(1654), + 326: uint16(1654), + 327: uint16(1373), + 328: uint16(1509), + 329: uint16(1638), + 330: uint16(1432), + 331: uint16(1332), + 332: uint16(1338), + 333: uint16(1338), + 334: uint16(1338), + 335: uint16(1338), + 336: uint16(1373), + 337: uint16(1272), + 338: uint16(1410), + 339: uint16(1638), + 340: uint16(1638), + 341: uint16(1410), + 342: uint16(1432), + 343: uint16(1332), + 344: uint16(1410), + 345: uint16(1332), + 346: uint16(1410), + 347: uint16(1373), + 348: uint16(1272), + 349: uint16(1525), + 350: uint16(1649), + 351: uint16(1373), + 352: uint16(1272), + 353: uint16(1499), + 354: uint16(1373), + 355: uint16(1272), + 356: uint16(1373), + 357: uint16(1272), + 358: uint16(1499), + 359: uint16(1330), + 360: uint16(1330), + 361: uint16(1330), + 362: uint16(1319), + 363: uint16(1254), + 364: uint16(1254), + 365: uint16(1499), + 366: uint16(1330), + 367: uint16(1304), + 368: uint16(1330), 369: uint16(1319), - 370: uint16(1319), - 371: uint16(1582), - 372: uint16(1243), - 373: uint16(1490), - 374: uint16(1490), - 375: uint16(1486), - 376: uint16(1360), - 377: uint16(1574), - 378: uint16(1574), - 379: uint16(1387), - 380: uint16(1387), - 381: uint16(1392), - 382: uint16(1378), - 383: uint16(1481), - 384: uint16(1360), - 385: uint16(1243), - 386: uint16(1392), - 387: uint16(1390), - 388: uint16(1388), - 389: uint16(1397), - 390: uint16(1311), - 391: uint16(1596), - 392: uint16(1596), - 393: uint16(1592), - 394: uint16(1592), - 395: uint16(1592), - 396: uint16(1645), - 397: uint16(1645), - 398: uint16(1545), - 399: uint16(1608), - 400: uint16(1276), - 401: uint16(1276), - 402: uint16(1276), - 403: uint16(1276), - 404: uint16(1608), - 405: uint16(1295), - 406: uint16(1295), - 407: uint16(1277), - 408: uint16(1277), - 409: uint16(1276), - 410: uint16(1608), - 411: uint16(1243), - 412: uint16(1243), - 413: uint16(1243), - 414: uint16(1243), - 415: uint16(1243), - 416: uint16(1243), - 417: uint16(1603), - 418: uint16(1243), - 419: uint16(1540), - 420: uint16(1497), - 421: uint16(1364), - 422: uint16(1243), - 423: uint16(1243), - 424: uint16(1243), - 425: uint16(1243), - 426: uint16(1243), - 427: uint16(1243), - 428: uint16(1243), - 429: uint16(1243), - 430: uint16(1243), - 431: uint16(1243), - 432: uint16(1243), - 433: uint16(1243), - 434: uint16(1243), - 435: uint16(1243), - 436: uint16(1243), - 437: uint16(1243), - 438: uint16(1551), - 439: uint16(1243), - 440: uint16(1243), - 441: uint16(1243), - 442: uint16(1243), - 443: uint16(1243), - 444: uint16(1243), - 445: uint16(1243), - 446: uint16(1243), - 447: uint16(1243), - 448: uint16(1243), - 449: uint16(1424), - 450: uint16(1243), - 451: uint16(1246), - 452: uint16(1542), - 453: uint16(1243), - 454: uint16(1243), - 455: uint16(1243), - 456: uint16(1243), - 457: uint16(1243), - 458: uint16(1243), - 459: uint16(1243), - 460: uint16(1243), - 461: uint16(1401), - 462: uint16(1402), - 463: uint16(1365), - 464: uint16(1243), - 465: uint16(1243), - 466: uint16(1243), - 467: uint16(1243), - 468: uint16(1243), - 469: uint16(1243), - 470: uint16(1243), - 471: uint16(1416), - 472: uint16(1243), - 473: uint16(1243), - 474: uint16(1243), - 475: uint16(1411), - 476: uint16(1243), - 477: uint16(1243), - 478: uint16(1243), - 479: uint16(1243), - 480: uint16(1243), - 481: uint16(1243), - 482: uint16(1243), - 483: uint16(1243), - 484: uint16(1636), - 485: uint16(1243), - 486: uint16(1243), - 487: uint16(1243), - 488: uint16(1243), - 489: uint16(1243), - 490: uint16(1243), - 491: uint16(1511), - 492: uint16(1510), - 493: uint16(1243), - 494: uint16(1243), - 495: uint16(1362), - 496: uint16(1243), - 497: uint16(1243), - 498: uint16(1243), - 499: uint16(1243), - 500: uint16(1243), - 501: uint16(1243), - 502: uint16(1243), - 503: uint16(1243), - 504: uint16(1243), - 505: uint16(1243), - 506: uint16(1243), - 507: uint16(1243), - 508: uint16(1243), - 509: uint16(1291), - 510: uint16(1243), - 511: uint16(1243), - 512: uint16(1243), - 513: uint16(1243), - 514: uint16(1243), - 515: uint16(1243), - 516: uint16(1243), - 517: uint16(1243), - 518: uint16(1243), - 519: uint16(1243), - 520: uint16(1243), - 521: uint16(1243), - 522: uint16(1243), - 523: uint16(1243), - 524: uint16(1243), - 525: uint16(1243), - 526: uint16(1243), - 527: uint16(1243), - 528: uint16(1243), - 529: uint16(1243), - 530: uint16(1243), - 531: uint16(1243), - 532: uint16(1243), - 533: uint16(1389), - 534: uint16(1243), - 535: uint16(1243), - 536: uint16(1243), - 537: uint16(1243), - 538: uint16(1243), - 539: uint16(1243), - 540: uint16(1243), - 541: uint16(1243), - 542: uint16(1243), - 543: uint16(1243), - 544: uint16(1243), - 545: uint16(1243), - 546: uint16(1243), - 547: uint16(1243), - 548: uint16(1579), - 549: uint16(1379), - 550: uint16(1243), - 551: uint16(1243), - 552: uint16(1243), - 553: uint16(1243), - 554: uint16(1627), - 555: uint16(1243), - 556: uint16(1243), - 557: uint16(1243), - 558: uint16(1243), - 559: uint16(1243), - 560: uint16(1243), - 561: uint16(1243), - 562: uint16(1243), - 563: uint16(1243), - 564: uint16(1243), - 565: uint16(1243), - 566: uint16(1243), - 567: uint16(1243), - 568: uint16(1243), - 569: uint16(1619), - 570: uint16(1335), - 571: uint16(1425), - 572: uint16(1243), - 573: uint16(1428), - 574: uint16(1265), - 575: uint16(1243), - 576: uint16(1255), - 577: uint16(1243), - 578: uint16(1243), + 370: uint16(1330), + 371: uint16(1330), + 372: uint16(1596), + 373: uint16(1254), + 374: uint16(1503), + 375: uint16(1503), + 376: uint16(1499), + 377: uint16(1373), + 378: uint16(1588), + 379: uint16(1588), + 380: uint16(1400), + 381: uint16(1400), + 382: uint16(1405), + 383: uint16(1391), + 384: uint16(1494), + 385: uint16(1373), + 386: uint16(1254), + 387: uint16(1405), + 388: uint16(1403), + 389: uint16(1401), + 390: uint16(1410), + 391: uint16(1322), + 392: uint16(1611), + 393: uint16(1611), + 394: uint16(1607), + 395: uint16(1607), + 396: uint16(1607), + 397: uint16(1660), + 398: uint16(1660), + 399: uint16(1558), + 400: uint16(1623), + 401: uint16(1287), + 402: uint16(1287), + 403: uint16(1287), + 404: uint16(1287), + 405: uint16(1623), + 406: uint16(1306), + 407: uint16(1306), + 408: uint16(1288), + 409: uint16(1288), + 410: uint16(1287), + 411: uint16(1623), + 412: uint16(1254), + 413: uint16(1254), + 414: uint16(1254), + 415: uint16(1254), + 416: uint16(1254), + 417: uint16(1254), + 418: uint16(1618), + 419: uint16(1254), + 420: uint16(1553), + 421: uint16(1510), + 422: uint16(1377), + 423: uint16(1254), + 424: uint16(1254), + 425: uint16(1254), + 426: uint16(1254), + 427: uint16(1254), + 428: uint16(1254), + 429: uint16(1254), + 430: uint16(1254), + 431: uint16(1254), + 432: uint16(1254), + 433: uint16(1254), + 434: uint16(1254), + 435: uint16(1254), + 436: uint16(1254), + 437: uint16(1254), + 438: uint16(1254), + 439: uint16(1564), + 440: uint16(1254), + 441: uint16(1254), + 442: uint16(1254), + 443: uint16(1254), + 444: uint16(1254), + 445: uint16(1254), + 446: uint16(1254), + 447: uint16(1254), + 448: uint16(1254), + 449: uint16(1254), + 450: uint16(1254), + 451: uint16(1437), + 452: uint16(1254), + 453: uint16(1257), + 454: uint16(1555), + 455: uint16(1254), + 456: uint16(1254), + 457: uint16(1254), + 458: uint16(1254), + 459: uint16(1254), + 460: uint16(1254), + 461: uint16(1254), + 462: uint16(1254), + 463: uint16(1414), + 464: uint16(1415), + 465: uint16(1378), + 466: uint16(1254), + 467: uint16(1254), + 468: uint16(1254), + 469: uint16(1254), + 470: uint16(1254), + 471: uint16(1254), + 472: uint16(1254), + 473: uint16(1429), + 474: uint16(1254), + 475: uint16(1254), + 476: uint16(1254), + 477: uint16(1424), + 478: uint16(1254), + 479: uint16(1254), + 480: uint16(1254), + 481: uint16(1254), + 482: uint16(1254), + 483: uint16(1254), + 484: uint16(1254), + 485: uint16(1254), + 486: uint16(1651), + 487: uint16(1254), + 488: uint16(1254), + 489: uint16(1254), + 490: uint16(1254), + 491: uint16(1254), + 492: uint16(1254), + 493: uint16(1524), + 494: uint16(1523), + 495: uint16(1254), + 496: uint16(1254), + 497: uint16(1375), + 498: uint16(1254), + 499: uint16(1254), + 500: uint16(1254), + 501: uint16(1254), + 502: uint16(1254), + 503: uint16(1254), + 504: uint16(1254), + 505: uint16(1254), + 506: uint16(1254), + 507: uint16(1254), + 508: uint16(1254), + 509: uint16(1254), + 510: uint16(1254), + 511: uint16(1302), + 512: uint16(1254), + 513: uint16(1254), + 514: uint16(1254), + 515: uint16(1254), + 516: uint16(1254), + 517: uint16(1254), + 518: uint16(1254), + 519: uint16(1254), + 520: uint16(1254), + 521: uint16(1254), + 522: uint16(1254), + 523: uint16(1254), + 524: uint16(1254), + 525: uint16(1254), + 526: uint16(1254), + 527: uint16(1254), + 528: uint16(1254), + 529: uint16(1254), + 530: uint16(1254), + 531: uint16(1254), + 532: uint16(1254), + 533: uint16(1254), + 534: uint16(1254), + 535: uint16(1402), + 536: uint16(1254), + 537: uint16(1254), + 538: uint16(1254), + 539: uint16(1254), + 540: uint16(1254), + 541: uint16(1254), + 542: uint16(1254), + 543: uint16(1254), + 544: uint16(1254), + 545: uint16(1254), + 546: uint16(1254), + 547: uint16(1254), + 548: uint16(1254), + 549: uint16(1254), + 550: uint16(1593), + 551: uint16(1392), + 552: uint16(1254), + 553: uint16(1254), + 554: uint16(1254), + 555: uint16(1254), + 556: uint16(1642), + 557: uint16(1254), + 558: uint16(1254), + 559: uint16(1254), + 560: uint16(1254), + 561: uint16(1352), + 562: uint16(1254), + 563: uint16(1254), + 564: uint16(1254), + 565: uint16(1254), + 566: uint16(1254), + 567: uint16(1254), + 568: uint16(1254), + 569: uint16(1254), + 570: uint16(1254), + 571: uint16(1254), + 572: uint16(1254), + 573: uint16(1634), + 574: uint16(1346), + 575: uint16(1438), + 576: uint16(1254), + 577: uint16(1441), + 578: uint16(1276), + 579: uint16(1254), + 580: uint16(1266), + 581: uint16(1254), + 582: uint16(1254), } /********** End of lemon-generated parsing tables *****************************/ @@ -158237,7 +159793,7 @@ var _yy_default = [579]uint16{ // ** to revert to identifiers if they keyword does not apply in the context where // ** it appears. // */ -var _yyFallback = [185]uint16{ +var _yyFallback = [186]uint16{ 2: uint16(59), 3: uint16(59), 4: uint16(59), @@ -158350,8 +159906,9 @@ type yyStackEntry = TyyStackEntry type TyyParser1 = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser1 = TyyParser1 @@ -158359,14 +159916,46 @@ type yyParser1 = TyyParser1 type TyyParser = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser = TyyParser /* #include */ +// C documentation +// +// /* +// ** Try to increase the size of the parser stack. Return the number +// ** of errors. Return 0 on success. +// */ +func _yyGrowStack(tls *libc.TLS, p uintptr) (r int32) { + var idx, newSize, oldSize int32 + var pNew uintptr + _, _, _, _ = idx, newSize, oldSize, pNew + oldSize = int32(1) + int32((int64((*TyyParser)(unsafe.Pointer(p)).FyystackEnd)-int64((*TyyParser)(unsafe.Pointer(p)).Fyystack))/24) + newSize = oldSize*int32(2) + int32(100) + idx = int32((int64((*TyyParser)(unsafe.Pointer(p)).Fyytos) - int64((*TyyParser)(unsafe.Pointer(p)).Fyystack)) / 24) + if (*TyyParser)(unsafe.Pointer(p)).Fyystack == p+32 { + pNew = _parserStackRealloc(tls, uintptr(0), uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + libc.Xmemcpy(tls, pNew, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(oldSize)*uint64(24)) + } else { + pNew = _parserStackRealloc(tls, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + } + (*TyyParser)(unsafe.Pointer(p)).Fyystack = pNew + (*TyyParser)(unsafe.Pointer(p)).Fyytos = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(idx)*24 + (*TyyParser)(unsafe.Pointer(p)).FyystackEnd = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(newSize-int32(1))*24 + return 0 +} + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -158382,10 +159971,11 @@ func _sqlite3ParserInit(tls *libc.TLS, yypRawParser uintptr, pParse uintptr) { _ = yypParser yypParser = yypRawParser (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = yypParser + 16 - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fstateno = uint16(0) - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fmajor = uint16(0) - (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = yypParser + 16 + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack = yypParser + 32 + (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fstateno = uint16(0) + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fmajor = uint16(0) } // C documentation @@ -158413,103 +160003,105 @@ func _yy_destructor(tls *libc.TLS, yypParser uintptr, yymajor uint16, yypminor u ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case int32(204): /* select */ + case int32(205): /* select */ + fallthrough + case int32(240): /* selectnowith */ fallthrough - case int32(239): /* selectnowith */ + case int32(241): /* oneselect */ fallthrough - case int32(240): /* oneselect */ + case int32(253): /* values */ fallthrough - case int32(252): /* values */ + case int32(255): /* mvalues */ _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(216): /* term */ + case int32(217): /* term */ fallthrough - case int32(217): /* expr */ + case int32(218): /* expr */ fallthrough - case int32(246): /* where_opt */ + case int32(247): /* where_opt */ fallthrough - case int32(248): /* having_opt */ + case int32(249): /* having_opt */ fallthrough - case int32(267): /* where_opt_ret */ + case int32(269): /* where_opt_ret */ fallthrough - case int32(278): /* case_operand */ + case int32(280): /* case_operand */ fallthrough - case int32(280): /* case_else */ + case int32(282): /* case_else */ fallthrough - case int32(283): /* vinto */ + case int32(285): /* vinto */ fallthrough - case int32(290): /* when_clause */ + case int32(292): /* when_clause */ fallthrough - case int32(295): /* key_opt */ + case int32(297): /* key_opt */ fallthrough - case int32(311): /* filter_clause */ + case int32(314): /* filter_clause */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(221): /* eidlist_opt */ + case int32(222): /* eidlist_opt */ fallthrough - case int32(231): /* sortlist */ + case int32(232): /* sortlist */ fallthrough - case int32(232): /* eidlist */ + case int32(233): /* eidlist */ fallthrough - case int32(244): /* selcollist */ + case int32(245): /* selcollist */ fallthrough - case int32(247): /* groupby_opt */ + case int32(248): /* groupby_opt */ fallthrough - case int32(249): /* orderby_opt */ + case int32(250): /* orderby_opt */ fallthrough - case int32(253): /* nexprlist */ + case int32(254): /* nexprlist */ fallthrough - case int32(254): /* sclp */ + case int32(256): /* sclp */ fallthrough - case int32(261): /* exprlist */ + case int32(263): /* exprlist */ fallthrough - case int32(268): /* setlist */ + case int32(270): /* setlist */ fallthrough - case int32(277): /* paren_exprlist */ + case int32(279): /* paren_exprlist */ fallthrough - case int32(279): /* case_exprlist */ + case int32(281): /* case_exprlist */ fallthrough - case int32(310): /* part_opt */ + case int32(313): /* part_opt */ _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(238): /* fullname */ + case int32(239): /* fullname */ fallthrough - case int32(245): /* from */ + case int32(246): /* from */ fallthrough - case int32(256): /* seltablist */ + case int32(258): /* seltablist */ fallthrough - case int32(257): /* stl_prefix */ + case int32(259): /* stl_prefix */ fallthrough - case int32(262): /* xfullname */ + case int32(264): /* xfullname */ _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(241): /* wqlist */ + case int32(242): /* wqlist */ _sqlite3WithDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(251): /* window_clause */ + case int32(252): /* window_clause */ fallthrough - case int32(306): /* windowdefn_list */ + case int32(309): /* windowdefn_list */ _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(263): /* idlist */ + case int32(265): /* idlist */ fallthrough - case int32(270): /* idlist_opt */ + case int32(272): /* idlist_opt */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(273): /* filter_over */ + case int32(275): /* filter_over */ fallthrough - case int32(307): /* windowdefn */ + case int32(310): /* windowdefn */ fallthrough - case int32(308): /* window */ + case int32(311): /* window */ fallthrough - case int32(309): /* frame_opt */ + case int32(312): /* frame_opt */ fallthrough - case int32(312): /* over_clause */ + case int32(315): /* over_clause */ _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(286): /* trigger_cmd_list */ + case int32(288): /* trigger_cmd_list */ fallthrough - case int32(291): /* trigger_cmd */ + case int32(293): /* trigger_cmd */ _sqlite3DeleteTriggerStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(288): /* trigger_event */ + case int32(290): /* trigger_event */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TTrigEvent)(unsafe.Pointer(yypminor))).Fb) - case int32(314): /* frame_bound */ + case int32(317): /* frame_bound */ fallthrough - case int32(315): /* frame_bound_s */ + case int32(318): /* frame_bound_s */ fallthrough - case int32(316): /* frame_bound_e */ + case int32(319): /* frame_bound_e */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TFrameBound)(unsafe.Pointer(yypminor))).FpExpr) break /********* End destructor definitions *****************************************/ @@ -158545,11 +160137,20 @@ func _yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var pParser, yytos uintptr + _, _ = pParser, yytos pParser = p - for (*TyyParser)(unsafe.Pointer(pParser)).Fyytos > pParser+16 { - _yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling yy_pop_parser_stack() for each + ** element left in the stack */ + yytos = (*TyyParser)(unsafe.Pointer(pParser)).Fyytos + for yytos > (*TyyParser)(unsafe.Pointer(pParser)).Fyystack { + if int32((*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor) >= int32(YY_MIN_DSTRCTR) { + _yy_destructor(tls, pParser, (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor, yytos+8) + } + yytos -= 24 + } + if (*TyyParser)(unsafe.Pointer(pParser)).Fyystack != pParser+32 { + Xsqlite3_free(tls, (*TyyParser)(unsafe.Pointer(pParser)).Fyystack) } } @@ -158644,13 +160245,13 @@ func _yyStackOverflow(tls *libc.TLS, yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse - for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > yypParser+16 { + for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack { _yy_pop_parser_stack(tls, yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23336, 0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) /******** End %stack_overflow code ********************************************/ /* Suppress warning about unused %extra_argument var */ (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse @@ -158669,15 +160270,19 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint var yytos uintptr _ = yytos (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos += 24 - if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 - _yyStackOverflow(tls, yypParser) - return + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + if yytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { + if _yyGrowStack(tls, yypParser) != 0 { + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 + _yyStackOverflow(tls, yypParser) + return + } + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + _ = libc.Int32FromInt32(0) } if int32(yyNewState) > int32(YY_MAX_SHIFT) { yyNewState = uint16(int32(yyNewState) + (libc.Int32FromInt32(YY_MIN_REDUCE) - libc.Int32FromInt32(YY_MIN_SHIFTREDUCE))) } - yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos (*TyyStackEntry)(unsafe.Pointer(yytos)).Fstateno = yyNewState (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor = yyMajor *(*TToken)(unsafe.Pointer(yytos + 8)) = yyMinor @@ -158687,419 +160292,423 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint // // /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side // ** of that rule */ -var _yyRuleInfoLhs = [405]uint16{ - 0: uint16(189), - 1: uint16(189), - 2: uint16(188), - 3: uint16(190), - 4: uint16(191), - 5: uint16(191), - 6: uint16(191), - 7: uint16(191), - 8: uint16(190), - 9: uint16(190), - 10: uint16(190), - 11: uint16(190), - 12: uint16(190), - 13: uint16(195), - 14: uint16(197), - 15: uint16(199), - 16: uint16(199), - 17: uint16(198), - 18: uint16(198), - 19: uint16(196), - 20: uint16(196), - 21: uint16(203), - 22: uint16(203), - 23: uint16(205), - 24: uint16(205), - 25: uint16(206), - 26: uint16(208), - 27: uint16(208), - 28: uint16(208), - 29: uint16(209), - 30: uint16(213), - 31: uint16(214), - 32: uint16(215), - 33: uint16(215), - 34: uint16(215), - 35: uint16(215), - 36: uint16(215), - 37: uint16(215), - 38: uint16(215), - 39: uint16(215), - 40: uint16(215), - 41: uint16(215), - 42: uint16(215), - 43: uint16(215), - 44: uint16(215), - 45: uint16(224), - 46: uint16(224), - 47: uint16(220), - 48: uint16(220), - 49: uint16(222), - 50: uint16(222), - 51: uint16(225), - 52: uint16(225), - 53: uint16(225), - 54: uint16(225), - 55: uint16(226), - 56: uint16(226), - 57: uint16(226), - 58: uint16(226), - 59: uint16(226), - 60: uint16(223), - 61: uint16(223), - 62: uint16(227), - 63: uint16(227), - 64: uint16(227), - 65: uint16(202), - 66: uint16(229), - 67: uint16(230), - 68: uint16(230), - 69: uint16(230), - 70: uint16(230), - 71: uint16(230), - 72: uint16(233), - 73: uint16(218), - 74: uint16(218), - 75: uint16(234), - 76: uint16(234), - 77: uint16(235), - 78: uint16(235), - 79: uint16(190), - 80: uint16(237), - 81: uint16(237), - 82: uint16(190), - 83: uint16(190), - 84: uint16(190), - 85: uint16(204), - 86: uint16(204), - 87: uint16(204), - 88: uint16(239), - 89: uint16(242), - 90: uint16(242), - 91: uint16(242), - 92: uint16(240), - 93: uint16(240), - 94: uint16(252), - 95: uint16(252), - 96: uint16(243), - 97: uint16(243), - 98: uint16(243), - 99: uint16(254), +var _yyRuleInfoLhs = [409]uint16{ + 0: uint16(190), + 1: uint16(190), + 2: uint16(189), + 3: uint16(191), + 4: uint16(192), + 5: uint16(192), + 6: uint16(192), + 7: uint16(192), + 8: uint16(191), + 9: uint16(191), + 10: uint16(191), + 11: uint16(191), + 12: uint16(191), + 13: uint16(196), + 14: uint16(198), + 15: uint16(200), + 16: uint16(200), + 17: uint16(199), + 18: uint16(199), + 19: uint16(197), + 20: uint16(197), + 21: uint16(204), + 22: uint16(204), + 23: uint16(206), + 24: uint16(206), + 25: uint16(207), + 26: uint16(209), + 27: uint16(209), + 28: uint16(209), + 29: uint16(210), + 30: uint16(214), + 31: uint16(215), + 32: uint16(216), + 33: uint16(216), + 34: uint16(216), + 35: uint16(216), + 36: uint16(216), + 37: uint16(216), + 38: uint16(216), + 39: uint16(216), + 40: uint16(216), + 41: uint16(216), + 42: uint16(216), + 43: uint16(216), + 44: uint16(216), + 45: uint16(225), + 46: uint16(225), + 47: uint16(221), + 48: uint16(221), + 49: uint16(223), + 50: uint16(223), + 51: uint16(226), + 52: uint16(226), + 53: uint16(226), + 54: uint16(226), + 55: uint16(227), + 56: uint16(227), + 57: uint16(227), + 58: uint16(227), + 59: uint16(227), + 60: uint16(224), + 61: uint16(224), + 62: uint16(228), + 63: uint16(228), + 64: uint16(228), + 65: uint16(203), + 66: uint16(230), + 67: uint16(231), + 68: uint16(231), + 69: uint16(231), + 70: uint16(231), + 71: uint16(231), + 72: uint16(234), + 73: uint16(219), + 74: uint16(219), + 75: uint16(235), + 76: uint16(235), + 77: uint16(236), + 78: uint16(236), + 79: uint16(191), + 80: uint16(238), + 81: uint16(238), + 82: uint16(191), + 83: uint16(191), + 84: uint16(191), + 85: uint16(205), + 86: uint16(205), + 87: uint16(205), + 88: uint16(240), + 89: uint16(243), + 90: uint16(243), + 91: uint16(243), + 92: uint16(241), + 93: uint16(241), + 94: uint16(253), + 95: uint16(241), + 96: uint16(255), + 97: uint16(255), + 98: uint16(244), + 99: uint16(244), 100: uint16(244), - 101: uint16(244), - 102: uint16(244), - 103: uint16(255), - 104: uint16(255), - 105: uint16(245), - 106: uint16(245), - 107: uint16(257), - 108: uint16(257), - 109: uint16(256), - 110: uint16(256), - 111: uint16(256), - 112: uint16(256), - 113: uint16(256), - 114: uint16(200), - 115: uint16(200), - 116: uint16(238), - 117: uint16(238), - 118: uint16(262), - 119: uint16(262), - 120: uint16(262), - 121: uint16(262), - 122: uint16(258), - 123: uint16(258), - 124: uint16(258), - 125: uint16(258), - 126: uint16(259), - 127: uint16(259), - 128: uint16(259), - 129: uint16(264), - 130: uint16(260), - 131: uint16(260), - 132: uint16(249), - 133: uint16(249), - 134: uint16(231), - 135: uint16(231), - 136: uint16(219), - 137: uint16(219), - 138: uint16(219), - 139: uint16(265), - 140: uint16(265), - 141: uint16(265), - 142: uint16(247), - 143: uint16(247), + 101: uint16(256), + 102: uint16(245), + 103: uint16(245), + 104: uint16(245), + 105: uint16(257), + 106: uint16(257), + 107: uint16(246), + 108: uint16(246), + 109: uint16(259), + 110: uint16(259), + 111: uint16(258), + 112: uint16(258), + 113: uint16(258), + 114: uint16(258), + 115: uint16(258), + 116: uint16(201), + 117: uint16(201), + 118: uint16(239), + 119: uint16(239), + 120: uint16(264), + 121: uint16(264), + 122: uint16(264), + 123: uint16(264), + 124: uint16(260), + 125: uint16(260), + 126: uint16(260), + 127: uint16(260), + 128: uint16(261), + 129: uint16(261), + 130: uint16(261), + 131: uint16(266), + 132: uint16(262), + 133: uint16(262), + 134: uint16(250), + 135: uint16(250), + 136: uint16(232), + 137: uint16(232), + 138: uint16(220), + 139: uint16(220), + 140: uint16(220), + 141: uint16(267), + 142: uint16(267), + 143: uint16(267), 144: uint16(248), 145: uint16(248), - 146: uint16(250), - 147: uint16(250), - 148: uint16(250), - 149: uint16(250), - 150: uint16(190), - 151: uint16(246), - 152: uint16(246), - 153: uint16(267), - 154: uint16(267), - 155: uint16(267), - 156: uint16(267), - 157: uint16(190), - 158: uint16(268), - 159: uint16(268), - 160: uint16(268), - 161: uint16(268), - 162: uint16(190), - 163: uint16(190), - 164: uint16(271), - 165: uint16(271), - 166: uint16(271), - 167: uint16(271), - 168: uint16(271), - 169: uint16(271), - 170: uint16(272), - 171: uint16(269), - 172: uint16(269), - 173: uint16(270), - 174: uint16(270), - 175: uint16(263), - 176: uint16(263), - 177: uint16(217), - 178: uint16(217), - 179: uint16(217), - 180: uint16(217), - 181: uint16(216), - 182: uint16(216), - 183: uint16(216), + 146: uint16(249), + 147: uint16(249), + 148: uint16(251), + 149: uint16(251), + 150: uint16(251), + 151: uint16(251), + 152: uint16(191), + 153: uint16(247), + 154: uint16(247), + 155: uint16(269), + 156: uint16(269), + 157: uint16(269), + 158: uint16(269), + 159: uint16(191), + 160: uint16(270), + 161: uint16(270), + 162: uint16(270), + 163: uint16(270), + 164: uint16(191), + 165: uint16(191), + 166: uint16(273), + 167: uint16(273), + 168: uint16(273), + 169: uint16(273), + 170: uint16(273), + 171: uint16(273), + 172: uint16(274), + 173: uint16(271), + 174: uint16(271), + 175: uint16(272), + 176: uint16(272), + 177: uint16(265), + 178: uint16(265), + 179: uint16(218), + 180: uint16(218), + 181: uint16(218), + 182: uint16(218), + 183: uint16(217), 184: uint16(217), 185: uint16(217), - 186: uint16(217), - 187: uint16(217), - 188: uint16(217), - 189: uint16(217), - 190: uint16(217), - 191: uint16(217), - 192: uint16(217), - 193: uint16(216), - 194: uint16(217), + 186: uint16(218), + 187: uint16(218), + 188: uint16(218), + 189: uint16(218), + 190: uint16(218), + 191: uint16(218), + 192: uint16(218), + 193: uint16(218), + 194: uint16(218), 195: uint16(217), - 196: uint16(217), - 197: uint16(217), - 198: uint16(217), - 199: uint16(217), - 200: uint16(217), - 201: uint16(217), - 202: uint16(217), - 203: uint16(274), - 204: uint16(217), - 205: uint16(217), - 206: uint16(217), - 207: uint16(217), - 208: uint16(217), - 209: uint16(217), - 210: uint16(217), - 211: uint16(217), - 212: uint16(217), - 213: uint16(217), - 214: uint16(217), - 215: uint16(217), - 216: uint16(275), - 217: uint16(275), - 218: uint16(217), - 219: uint16(276), - 220: uint16(276), - 221: uint16(217), - 222: uint16(217), - 223: uint16(217), - 224: uint16(217), - 225: uint16(217), - 226: uint16(217), - 227: uint16(279), - 228: uint16(279), - 229: uint16(280), - 230: uint16(280), - 231: uint16(278), - 232: uint16(261), - 233: uint16(253), - 234: uint16(253), - 235: uint16(277), - 236: uint16(277), - 237: uint16(190), - 238: uint16(281), - 239: uint16(281), - 240: uint16(221), - 241: uint16(221), - 242: uint16(232), - 243: uint16(232), - 244: uint16(282), - 245: uint16(282), - 246: uint16(190), - 247: uint16(190), - 248: uint16(190), - 249: uint16(283), - 250: uint16(283), - 251: uint16(190), - 252: uint16(190), - 253: uint16(190), - 254: uint16(190), - 255: uint16(190), - 256: uint16(211), - 257: uint16(212), - 258: uint16(190), - 259: uint16(285), - 260: uint16(287), + 196: uint16(218), + 197: uint16(218), + 198: uint16(218), + 199: uint16(218), + 200: uint16(218), + 201: uint16(218), + 202: uint16(218), + 203: uint16(218), + 204: uint16(218), + 205: uint16(276), + 206: uint16(218), + 207: uint16(218), + 208: uint16(218), + 209: uint16(218), + 210: uint16(218), + 211: uint16(218), + 212: uint16(218), + 213: uint16(218), + 214: uint16(218), + 215: uint16(218), + 216: uint16(218), + 217: uint16(218), + 218: uint16(277), + 219: uint16(277), + 220: uint16(218), + 221: uint16(278), + 222: uint16(278), + 223: uint16(218), + 224: uint16(218), + 225: uint16(218), + 226: uint16(218), + 227: uint16(218), + 228: uint16(218), + 229: uint16(281), + 230: uint16(281), + 231: uint16(282), + 232: uint16(282), + 233: uint16(280), + 234: uint16(263), + 235: uint16(254), + 236: uint16(254), + 237: uint16(279), + 238: uint16(279), + 239: uint16(191), + 240: uint16(283), + 241: uint16(283), + 242: uint16(222), + 243: uint16(222), + 244: uint16(233), + 245: uint16(233), + 246: uint16(284), + 247: uint16(284), + 248: uint16(191), + 249: uint16(191), + 250: uint16(191), + 251: uint16(285), + 252: uint16(285), + 253: uint16(191), + 254: uint16(191), + 255: uint16(191), + 256: uint16(191), + 257: uint16(191), + 258: uint16(212), + 259: uint16(213), + 260: uint16(191), 261: uint16(287), - 262: uint16(287), - 263: uint16(288), - 264: uint16(288), - 265: uint16(288), + 262: uint16(289), + 263: uint16(289), + 264: uint16(289), + 265: uint16(290), 266: uint16(290), 267: uint16(290), - 268: uint16(286), - 269: uint16(286), - 270: uint16(292), - 271: uint16(293), - 272: uint16(293), - 273: uint16(291), - 274: uint16(291), - 275: uint16(291), - 276: uint16(291), - 277: uint16(217), - 278: uint16(217), - 279: uint16(236), - 280: uint16(236), - 281: uint16(236), - 282: uint16(190), - 283: uint16(190), - 284: uint16(190), - 285: uint16(295), - 286: uint16(295), - 287: uint16(190), - 288: uint16(190), - 289: uint16(190), - 290: uint16(190), - 291: uint16(190), - 292: uint16(190), - 293: uint16(190), - 294: uint16(296), - 295: uint16(190), - 296: uint16(190), - 297: uint16(190), - 298: uint16(298), - 299: uint16(300), - 300: uint16(301), - 301: uint16(301), - 302: uint16(302), - 303: uint16(266), - 304: uint16(266), - 305: uint16(305), - 306: uint16(305), - 307: uint16(305), - 308: uint16(304), - 309: uint16(241), - 310: uint16(241), - 311: uint16(306), - 312: uint16(307), - 313: uint16(308), - 314: uint16(308), - 315: uint16(308), - 316: uint16(308), - 317: uint16(308), - 318: uint16(309), - 319: uint16(309), - 320: uint16(309), - 321: uint16(313), - 322: uint16(315), - 323: uint16(315), + 268: uint16(292), + 269: uint16(292), + 270: uint16(288), + 271: uint16(288), + 272: uint16(294), + 273: uint16(295), + 274: uint16(295), + 275: uint16(293), + 276: uint16(293), + 277: uint16(293), + 278: uint16(293), + 279: uint16(218), + 280: uint16(218), + 281: uint16(237), + 282: uint16(237), + 283: uint16(237), + 284: uint16(191), + 285: uint16(191), + 286: uint16(191), + 287: uint16(297), + 288: uint16(297), + 289: uint16(191), + 290: uint16(191), + 291: uint16(191), + 292: uint16(191), + 293: uint16(191), + 294: uint16(191), + 295: uint16(191), + 296: uint16(298), + 297: uint16(191), + 298: uint16(191), + 299: uint16(191), + 300: uint16(300), + 301: uint16(302), + 302: uint16(303), + 303: uint16(303), + 304: uint16(304), + 305: uint16(268), + 306: uint16(268), + 307: uint16(307), + 308: uint16(307), + 309: uint16(307), + 310: uint16(306), + 311: uint16(308), + 312: uint16(242), + 313: uint16(242), + 314: uint16(309), + 315: uint16(310), + 316: uint16(311), + 317: uint16(311), + 318: uint16(311), + 319: uint16(311), + 320: uint16(311), + 321: uint16(312), + 322: uint16(312), + 323: uint16(312), 324: uint16(316), - 325: uint16(316), - 326: uint16(314), - 327: uint16(314), - 328: uint16(317), + 325: uint16(318), + 326: uint16(318), + 327: uint16(319), + 328: uint16(319), 329: uint16(317), - 330: uint16(318), - 331: uint16(318), - 332: uint16(318), - 333: uint16(251), - 334: uint16(273), - 335: uint16(273), - 336: uint16(273), - 337: uint16(312), - 338: uint16(312), - 339: uint16(311), - 340: uint16(185), - 341: uint16(186), - 342: uint16(186), - 343: uint16(187), - 344: uint16(187), + 330: uint16(317), + 331: uint16(320), + 332: uint16(320), + 333: uint16(321), + 334: uint16(321), + 335: uint16(321), + 336: uint16(252), + 337: uint16(275), + 338: uint16(275), + 339: uint16(275), + 340: uint16(315), + 341: uint16(315), + 342: uint16(314), + 343: uint16(217), + 344: uint16(186), 345: uint16(187), - 346: uint16(192), - 347: uint16(192), - 348: uint16(192), - 349: uint16(194), - 350: uint16(194), - 351: uint16(190), - 352: uint16(203), - 353: uint16(201), - 354: uint16(201), - 355: uint16(193), - 356: uint16(193), - 357: uint16(208), - 358: uint16(209), - 359: uint16(210), - 360: uint16(210), - 361: uint16(207), - 362: uint16(207), - 363: uint16(215), - 364: uint16(215), - 365: uint16(215), - 366: uint16(202), - 367: uint16(228), - 368: uint16(228), - 369: uint16(229), - 370: uint16(233), - 371: uint16(235), - 372: uint16(239), - 373: uint16(240), - 374: uint16(254), - 375: uint16(255), - 376: uint16(264), - 377: uint16(272), - 378: uint16(217), - 379: uint16(274), - 380: uint16(278), - 381: uint16(261), - 382: uint16(284), - 383: uint16(284), - 384: uint16(284), - 385: uint16(284), - 386: uint16(284), - 387: uint16(211), - 388: uint16(289), - 389: uint16(289), - 390: uint16(292), - 391: uint16(293), - 392: uint16(294), - 393: uint16(294), - 394: uint16(297), - 395: uint16(297), - 396: uint16(299), - 397: uint16(299), - 398: uint16(300), - 399: uint16(303), - 400: uint16(303), - 401: uint16(303), - 402: uint16(266), - 403: uint16(306), - 404: uint16(308), + 346: uint16(187), + 347: uint16(188), + 348: uint16(188), + 349: uint16(188), + 350: uint16(193), + 351: uint16(193), + 352: uint16(193), + 353: uint16(195), + 354: uint16(195), + 355: uint16(191), + 356: uint16(204), + 357: uint16(202), + 358: uint16(202), + 359: uint16(194), + 360: uint16(194), + 361: uint16(209), + 362: uint16(210), + 363: uint16(211), + 364: uint16(211), + 365: uint16(208), + 366: uint16(208), + 367: uint16(216), + 368: uint16(216), + 369: uint16(216), + 370: uint16(203), + 371: uint16(229), + 372: uint16(229), + 373: uint16(230), + 374: uint16(234), + 375: uint16(236), + 376: uint16(240), + 377: uint16(241), + 378: uint16(256), + 379: uint16(257), + 380: uint16(266), + 381: uint16(274), + 382: uint16(218), + 383: uint16(276), + 384: uint16(280), + 385: uint16(263), + 386: uint16(286), + 387: uint16(286), + 388: uint16(286), + 389: uint16(286), + 390: uint16(286), + 391: uint16(212), + 392: uint16(291), + 393: uint16(291), + 394: uint16(294), + 395: uint16(295), + 396: uint16(296), + 397: uint16(296), + 398: uint16(299), + 399: uint16(299), + 400: uint16(301), + 401: uint16(301), + 402: uint16(302), + 403: uint16(305), + 404: uint16(305), + 405: uint16(305), + 406: uint16(268), + 407: uint16(309), + 408: uint16(311), } // C documentation // // /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number // ** of symbols on the right-hand side of that rule. */ -var _yyRuleInfoNRhs = [405]int8{ +var _yyRuleInfoNRhs = [409]int8{ 0: int8(-int32(1)), 1: int8(-int32(3)), 2: int8(-int32(1)), @@ -159180,273 +160789,277 @@ var _yyRuleInfoNRhs = [405]int8{ 92: int8(-int32(9)), 93: int8(-int32(10)), 94: int8(-int32(4)), - 95: int8(-int32(5)), - 96: int8(-int32(1)), - 97: int8(-int32(1)), - 100: int8(-int32(5)), - 101: int8(-int32(3)), + 95: int8(-int32(1)), + 96: int8(-int32(5)), + 97: int8(-int32(5)), + 98: int8(-int32(1)), + 99: int8(-int32(1)), 102: int8(-int32(5)), - 103: int8(-int32(2)), - 106: int8(-int32(2)), - 107: int8(-int32(2)), - 109: int8(-int32(5)), - 110: int8(-int32(6)), - 111: int8(-int32(8)), + 103: int8(-int32(3)), + 104: int8(-int32(5)), + 105: int8(-int32(2)), + 108: int8(-int32(2)), + 109: int8(-int32(2)), + 111: int8(-int32(5)), 112: int8(-int32(6)), - 113: int8(-int32(6)), - 115: int8(-int32(2)), - 116: int8(-int32(1)), - 117: int8(-int32(3)), + 113: int8(-int32(8)), + 114: int8(-int32(6)), + 115: int8(-int32(6)), + 117: int8(-int32(2)), 118: int8(-int32(1)), 119: int8(-int32(3)), - 120: int8(-int32(5)), + 120: int8(-int32(1)), 121: int8(-int32(3)), - 122: int8(-int32(1)), - 123: int8(-int32(2)), - 124: int8(-int32(3)), - 125: int8(-int32(4)), - 126: int8(-int32(2)), + 122: int8(-int32(5)), + 123: int8(-int32(3)), + 124: int8(-int32(1)), + 125: int8(-int32(2)), + 126: int8(-int32(3)), 127: int8(-int32(4)), - 130: int8(-int32(3)), - 131: int8(-int32(2)), - 133: int8(-int32(3)), - 134: int8(-int32(5)), + 128: int8(-int32(2)), + 129: int8(-int32(4)), + 132: int8(-int32(3)), + 133: int8(-int32(2)), 135: int8(-int32(3)), - 136: int8(-int32(1)), - 137: int8(-int32(1)), - 139: int8(-int32(2)), - 140: int8(-int32(2)), - 143: int8(-int32(3)), - 145: int8(-int32(2)), + 136: int8(-int32(5)), + 137: int8(-int32(3)), + 138: int8(-int32(1)), + 139: int8(-int32(1)), + 141: int8(-int32(2)), + 142: int8(-int32(2)), + 145: int8(-int32(3)), 147: int8(-int32(2)), - 148: int8(-int32(4)), - 149: int8(-int32(4)), - 150: int8(-int32(6)), - 152: int8(-int32(2)), + 149: int8(-int32(2)), + 150: int8(-int32(4)), + 151: int8(-int32(4)), + 152: int8(-int32(6)), 154: int8(-int32(2)), - 155: int8(-int32(2)), - 156: int8(-int32(4)), - 157: int8(-int32(9)), - 158: int8(-int32(5)), - 159: int8(-int32(7)), - 160: int8(-int32(3)), - 161: int8(-int32(5)), - 162: int8(-int32(7)), - 163: int8(-int32(8)), - 165: int8(-int32(2)), - 166: int8(-int32(12)), - 167: int8(-int32(9)), - 168: int8(-int32(5)), - 169: int8(-int32(8)), - 170: int8(-int32(2)), - 171: int8(-int32(2)), - 172: int8(-int32(1)), - 174: int8(-int32(3)), - 175: int8(-int32(3)), - 176: int8(-int32(1)), + 156: int8(-int32(2)), + 157: int8(-int32(2)), + 158: int8(-int32(4)), + 159: int8(-int32(9)), + 160: int8(-int32(5)), + 161: int8(-int32(7)), + 162: int8(-int32(3)), + 163: int8(-int32(5)), + 164: int8(-int32(7)), + 165: int8(-int32(8)), + 167: int8(-int32(2)), + 168: int8(-int32(12)), + 169: int8(-int32(9)), + 170: int8(-int32(5)), + 171: int8(-int32(8)), + 172: int8(-int32(2)), + 173: int8(-int32(2)), + 174: int8(-int32(1)), + 176: int8(-int32(3)), 177: int8(-int32(3)), 178: int8(-int32(1)), 179: int8(-int32(3)), - 180: int8(-int32(5)), - 181: int8(-int32(1)), - 182: int8(-int32(1)), + 180: int8(-int32(1)), + 181: int8(-int32(3)), + 182: int8(-int32(5)), 183: int8(-int32(1)), 184: int8(-int32(1)), - 185: int8(-int32(3)), - 186: int8(-int32(6)), - 187: int8(-int32(5)), - 188: int8(-int32(8)), - 189: int8(-int32(4)), - 190: int8(-int32(6)), - 191: int8(-int32(9)), - 192: int8(-int32(5)), - 193: int8(-int32(1)), + 185: int8(-int32(1)), + 186: int8(-int32(1)), + 187: int8(-int32(3)), + 188: int8(-int32(6)), + 189: int8(-int32(5)), + 190: int8(-int32(8)), + 191: int8(-int32(4)), + 192: int8(-int32(6)), + 193: int8(-int32(9)), 194: int8(-int32(5)), - 195: int8(-int32(3)), - 196: int8(-int32(3)), + 195: int8(-int32(1)), + 196: int8(-int32(5)), 197: int8(-int32(3)), 198: int8(-int32(3)), 199: int8(-int32(3)), 200: int8(-int32(3)), 201: int8(-int32(3)), 202: int8(-int32(3)), - 203: int8(-int32(2)), + 203: int8(-int32(3)), 204: int8(-int32(3)), - 205: int8(-int32(5)), - 206: int8(-int32(2)), - 207: int8(-int32(3)), - 208: int8(-int32(3)), - 209: int8(-int32(4)), - 210: int8(-int32(6)), - 211: int8(-int32(5)), - 212: int8(-int32(2)), - 213: int8(-int32(2)), + 205: int8(-int32(2)), + 206: int8(-int32(3)), + 207: int8(-int32(5)), + 208: int8(-int32(2)), + 209: int8(-int32(3)), + 210: int8(-int32(3)), + 211: int8(-int32(4)), + 212: int8(-int32(6)), + 213: int8(-int32(5)), 214: int8(-int32(2)), - 215: int8(-int32(3)), - 216: int8(-int32(1)), - 217: int8(-int32(2)), - 218: int8(-int32(5)), - 219: int8(-int32(1)), - 220: int8(-int32(2)), - 221: int8(-int32(5)), - 222: int8(-int32(3)), + 215: int8(-int32(2)), + 216: int8(-int32(2)), + 217: int8(-int32(3)), + 218: int8(-int32(1)), + 219: int8(-int32(2)), + 220: int8(-int32(5)), + 221: int8(-int32(1)), + 222: int8(-int32(2)), 223: int8(-int32(5)), - 224: int8(-int32(5)), - 225: int8(-int32(4)), + 224: int8(-int32(3)), + 225: int8(-int32(5)), 226: int8(-int32(5)), - 227: int8(-int32(5)), - 228: int8(-int32(4)), - 229: int8(-int32(2)), - 233: int8(-int32(3)), - 234: int8(-int32(1)), - 236: int8(-int32(3)), - 237: int8(-int32(12)), - 238: int8(-int32(1)), - 241: int8(-int32(3)), - 242: int8(-int32(5)), + 227: int8(-int32(4)), + 228: int8(-int32(5)), + 229: int8(-int32(5)), + 230: int8(-int32(4)), + 231: int8(-int32(2)), + 235: int8(-int32(3)), + 236: int8(-int32(1)), + 238: int8(-int32(3)), + 239: int8(-int32(12)), + 240: int8(-int32(1)), 243: int8(-int32(3)), - 245: int8(-int32(2)), - 246: int8(-int32(4)), + 244: int8(-int32(5)), + 245: int8(-int32(3)), 247: int8(-int32(2)), - 248: int8(-int32(3)), + 248: int8(-int32(4)), 249: int8(-int32(2)), - 251: int8(-int32(3)), - 252: int8(-int32(5)), - 253: int8(-int32(6)), + 250: int8(-int32(3)), + 251: int8(-int32(2)), + 253: int8(-int32(3)), 254: int8(-int32(5)), 255: int8(-int32(6)), - 256: int8(-int32(2)), - 257: int8(-int32(2)), - 258: int8(-int32(5)), - 259: int8(-int32(11)), - 260: int8(-int32(1)), - 261: int8(-int32(2)), - 263: int8(-int32(1)), - 264: int8(-int32(1)), - 265: int8(-int32(3)), - 267: int8(-int32(2)), - 268: int8(-int32(3)), + 256: int8(-int32(5)), + 257: int8(-int32(6)), + 258: int8(-int32(2)), + 259: int8(-int32(2)), + 260: int8(-int32(5)), + 261: int8(-int32(11)), + 262: int8(-int32(1)), + 263: int8(-int32(2)), + 265: int8(-int32(1)), + 266: int8(-int32(1)), + 267: int8(-int32(3)), 269: int8(-int32(2)), 270: int8(-int32(3)), - 271: int8(-int32(3)), - 272: int8(-int32(2)), - 273: int8(-int32(9)), - 274: int8(-int32(8)), - 275: int8(-int32(6)), - 276: int8(-int32(3)), - 277: int8(-int32(4)), - 278: int8(-int32(6)), - 279: int8(-int32(1)), - 280: int8(-int32(1)), + 271: int8(-int32(2)), + 272: int8(-int32(3)), + 273: int8(-int32(3)), + 274: int8(-int32(2)), + 275: int8(-int32(9)), + 276: int8(-int32(8)), + 277: int8(-int32(6)), + 278: int8(-int32(3)), + 279: int8(-int32(4)), + 280: int8(-int32(6)), 281: int8(-int32(1)), - 282: int8(-int32(4)), - 283: int8(-int32(6)), - 284: int8(-int32(3)), - 286: int8(-int32(2)), - 287: int8(-int32(1)), - 288: int8(-int32(3)), + 282: int8(-int32(1)), + 283: int8(-int32(1)), + 284: int8(-int32(4)), + 285: int8(-int32(6)), + 286: int8(-int32(3)), + 288: int8(-int32(2)), 289: int8(-int32(1)), 290: int8(-int32(3)), - 291: int8(-int32(6)), - 292: int8(-int32(7)), + 291: int8(-int32(1)), + 292: int8(-int32(3)), 293: int8(-int32(6)), - 294: int8(-int32(1)), - 295: int8(-int32(8)), + 294: int8(-int32(7)), + 295: int8(-int32(6)), 296: int8(-int32(1)), - 297: int8(-int32(4)), - 298: int8(-int32(8)), - 300: int8(-int32(1)), - 301: int8(-int32(3)), + 297: int8(-int32(8)), + 298: int8(-int32(1)), + 299: int8(-int32(4)), + 300: int8(-int32(8)), 302: int8(-int32(1)), - 303: int8(-int32(2)), - 304: int8(-int32(3)), - 305: int8(-int32(1)), - 306: int8(-int32(2)), - 307: int8(-int32(3)), - 308: int8(-int32(6)), - 309: int8(-int32(1)), - 310: int8(-int32(3)), - 311: int8(-int32(3)), - 312: int8(-int32(5)), - 313: int8(-int32(5)), - 314: int8(-int32(6)), - 315: int8(-int32(4)), + 303: int8(-int32(3)), + 304: int8(-int32(1)), + 305: int8(-int32(2)), + 306: int8(-int32(3)), + 307: int8(-int32(1)), + 308: int8(-int32(2)), + 309: int8(-int32(3)), + 310: int8(-int32(6)), + 311: int8(-int32(1)), + 312: int8(-int32(1)), + 313: int8(-int32(3)), + 314: int8(-int32(3)), + 315: int8(-int32(5)), 316: int8(-int32(5)), - 317: int8(-int32(2)), - 319: int8(-int32(3)), - 320: int8(-int32(6)), - 321: int8(-int32(1)), - 322: int8(-int32(1)), - 323: int8(-int32(2)), + 317: int8(-int32(6)), + 318: int8(-int32(4)), + 319: int8(-int32(5)), + 320: int8(-int32(2)), + 322: int8(-int32(3)), + 323: int8(-int32(6)), 324: int8(-int32(1)), - 325: int8(-int32(2)), + 325: int8(-int32(1)), 326: int8(-int32(2)), - 327: int8(-int32(2)), + 327: int8(-int32(1)), + 328: int8(-int32(2)), 329: int8(-int32(2)), 330: int8(-int32(2)), - 331: int8(-int32(2)), - 332: int8(-int32(1)), + 332: int8(-int32(2)), 333: int8(-int32(2)), 334: int8(-int32(2)), 335: int8(-int32(1)), - 336: int8(-int32(1)), - 337: int8(-int32(4)), - 338: int8(-int32(2)), - 339: int8(-int32(5)), - 340: int8(-int32(1)), + 336: int8(-int32(2)), + 337: int8(-int32(2)), + 338: int8(-int32(1)), + 339: int8(-int32(1)), + 340: int8(-int32(4)), 341: int8(-int32(2)), - 342: int8(-int32(1)), + 342: int8(-int32(5)), 343: int8(-int32(1)), - 344: int8(-int32(2)), - 345: int8(-int32(3)), + 344: int8(-int32(1)), + 345: int8(-int32(2)), + 346: int8(-int32(1)), 347: int8(-int32(1)), 348: int8(-int32(2)), - 349: int8(-int32(1)), - 351: int8(-int32(2)), - 352: int8(-int32(1)), - 353: int8(-int32(4)), - 354: int8(-int32(2)), - 355: int8(-int32(1)), + 349: int8(-int32(3)), + 351: int8(-int32(1)), + 352: int8(-int32(2)), + 353: int8(-int32(1)), + 355: int8(-int32(2)), 356: int8(-int32(1)), - 357: int8(-int32(1)), - 358: int8(-int32(1)), + 357: int8(-int32(4)), + 358: int8(-int32(2)), 359: int8(-int32(1)), 360: int8(-int32(1)), - 361: int8(-int32(2)), - 363: int8(-int32(2)), - 364: int8(-int32(4)), + 361: int8(-int32(1)), + 362: int8(-int32(1)), + 363: int8(-int32(1)), + 364: int8(-int32(1)), 365: int8(-int32(2)), - 366: int8(-int32(2)), - 367: int8(-int32(3)), - 368: int8(-int32(1)), - 370: int8(-int32(1)), - 371: int8(-int32(1)), + 367: int8(-int32(2)), + 368: int8(-int32(4)), + 369: int8(-int32(2)), + 370: int8(-int32(2)), + 371: int8(-int32(3)), 372: int8(-int32(1)), - 373: int8(-int32(1)), - 374: int8(-int32(2)), + 374: int8(-int32(1)), 375: int8(-int32(1)), 376: int8(-int32(1)), - 378: int8(-int32(1)), + 377: int8(-int32(1)), + 378: int8(-int32(2)), 379: int8(-int32(1)), 380: int8(-int32(1)), - 381: int8(-int32(1)), 382: int8(-int32(1)), 383: int8(-int32(1)), 384: int8(-int32(1)), 385: int8(-int32(1)), 386: int8(-int32(1)), 387: int8(-int32(1)), - 389: int8(-int32(3)), + 388: int8(-int32(1)), + 389: int8(-int32(1)), 390: int8(-int32(1)), - 392: int8(-int32(1)), - 395: int8(-int32(1)), + 391: int8(-int32(1)), + 393: int8(-int32(3)), + 394: int8(-int32(1)), 396: int8(-int32(1)), - 397: int8(-int32(3)), - 398: int8(-int32(2)), - 400: int8(-int32(4)), - 401: int8(-int32(2)), - 403: int8(-int32(1)), - 404: int8(-int32(1)), + 399: int8(-int32(1)), + 400: int8(-int32(1)), + 401: int8(-int32(3)), + 402: int8(-int32(2)), + 404: int8(-int32(4)), + 405: int8(-int32(2)), + 407: int8(-int32(1)), + 408: int8(-int32(1)), } // C documentation @@ -159464,18 +161077,19 @@ var _yyRuleInfoNRhs = [405]int8{ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int32, yyLookaheadToken TToken, pParse uintptr) (r uint16) { bp := tls.Alloc(144) defer tls.Free(144) - var bNot, bNot1, nExpr, yygoto, yysize, v344 int32 + var bNot, bNot1, nExpr, yygoto, yysize int32 var n Tu32 - var p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v343, v345, v346, v347, v348 uintptr + var op Tu8 + var p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v347, v348, v349, v350, v351 uintptr var yyact uint16 - var v349 TToken + var v352 TToken var _ /* all at bp+104 */ TToken var _ /* as at bp+72 */ TToken var _ /* dest at bp+16 */ TSelectDest var _ /* t at bp+88 */ TToken var _ /* x at bp+56 */ TToken var _ /* yylhsminor at bp+0 */ TYYMINORTYPE - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v343, v344, v345, v346, v347, v348, v349 /* Amount to pop the stack */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, op, p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v347, v348, v349, v350, v351, v352 /* Amount to pop the stack */ _ = yyLookahead _ = yyLookaheadToken yymsp = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos @@ -159496,7 +161110,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _7 case uint32(7): goto _8 - case uint32(321): + case uint32(324): goto _9 case uint32(9): goto _10 @@ -159524,9 +161138,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _21 case uint32(81): goto _22 - case uint32(98): + case uint32(100): goto _23 - case uint32(244): + case uint32(246): goto _24 case uint32(16): goto _25 @@ -159550,7 +161164,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _34 case uint32(26): goto _35 - case uint32(104): + case uint32(106): goto _36 case uint32(27): goto _37 @@ -159624,17 +161238,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _71 case uint32(61): goto _72 - case uint32(171): + case uint32(173): goto _73 case uint32(80): goto _74 case uint32(63): goto _75 - case uint32(217): + case uint32(219): goto _76 - case uint32(220): + case uint32(222): goto _77 - case uint32(245): + case uint32(247): goto _78 case uint32(64): goto _79 @@ -159656,7 +161270,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _87 case uint32(77): goto _88 - case uint32(172): + case uint32(174): goto _89 case uint32(78): goto _90 @@ -159690,47 +161304,47 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _104 case uint32(95): goto _105 - case uint32(96): - goto _106 case uint32(97): + goto _106 + case uint32(96): goto _107 - case uint32(132): + case uint32(98): goto _108 case uint32(99): goto _109 - case uint32(142): + case uint32(134): goto _110 - case uint32(232): + case uint32(101): goto _111 - case uint32(235): + case uint32(144): goto _112 - case uint32(240): + case uint32(234): goto _113 - case uint32(100): + case uint32(237): goto _114 - case uint32(101): + case uint32(242): goto _115 case uint32(102): goto _116 - case uint32(115): - goto _117 case uint32(103): + goto _117 + case uint32(104): goto _118 - case uint32(256): + case uint32(117): goto _119 - case uint32(257): + case uint32(105): goto _120 - case uint32(108): + case uint32(258): goto _121 - case uint32(105): + case uint32(259): goto _122 - case uint32(106): + case uint32(110): goto _123 case uint32(107): goto _124 - case uint32(109): + case uint32(108): goto _125 - case uint32(110): + case uint32(109): goto _126 case uint32(111): goto _127 @@ -159738,13 +161352,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _128 case uint32(113): goto _129 - case uint32(129): - goto _130 case uint32(114): + goto _130 + case uint32(115): goto _131 - case uint32(116): + case uint32(131): goto _132 - case uint32(117): + case uint32(116): goto _133 case uint32(118): goto _134 @@ -159768,15 +161382,15 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _143 case uint32(128): goto _144 - case uint32(130): + case uint32(129): goto _145 - case uint32(131): + case uint32(130): goto _146 - case uint32(143): + case uint32(132): goto _147 case uint32(133): goto _148 - case uint32(134): + case uint32(145): goto _149 case uint32(135): goto _150 @@ -159784,49 +161398,49 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _151 case uint32(137): goto _152 - case uint32(141): - goto _153 case uint32(138): - goto _154 + goto _153 case uint32(139): + goto _154 + case uint32(143): goto _155 case uint32(140): goto _156 - case uint32(146): + case uint32(141): goto _157 - case uint32(144): + case uint32(142): goto _158 - case uint32(151): + case uint32(148): goto _159 - case uint32(153): + case uint32(146): goto _160 - case uint32(230): + case uint32(153): goto _161 - case uint32(231): + case uint32(155): goto _162 - case uint32(250): + case uint32(232): goto _163 - case uint32(152): + case uint32(233): goto _164 - case uint32(145): + case uint32(252): goto _165 case uint32(154): goto _166 - case uint32(229): + case uint32(147): goto _167 - case uint32(249): + case uint32(156): goto _168 - case uint32(147): + case uint32(231): goto _169 - case uint32(148): + case uint32(251): goto _170 case uint32(149): goto _171 case uint32(150): goto _172 - case uint32(155): + case uint32(151): goto _173 - case uint32(156): + case uint32(152): goto _174 case uint32(157): goto _175 @@ -159856,9 +161470,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _187 case uint32(170): goto _188 - case uint32(173): + case uint32(171): goto _189 - case uint32(174): + case uint32(172): goto _190 case uint32(175): goto _191 @@ -159872,13 +161486,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _195 case uint32(180): goto _196 - case uint32(182): - goto _197 case uint32(181): + goto _197 + case uint32(182): goto _198 - case uint32(183): - goto _199 case uint32(184): + goto _199 + case uint32(183): goto _200 case uint32(185): goto _201 @@ -159902,13 +161516,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _210 case uint32(195): goto _211 - case uint32(197): - goto _212 case uint32(196): + goto _212 + case uint32(197): goto _213 - case uint32(198): - goto _214 case uint32(199): + goto _214 + case uint32(198): goto _215 case uint32(200): goto _216 @@ -159934,23 +161548,23 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _226 case uint32(211): goto _227 - case uint32(213): - goto _228 case uint32(212): + goto _228 + case uint32(213): goto _229 - case uint32(214): - goto _230 case uint32(215): + goto _230 + case uint32(214): goto _231 - case uint32(219): - goto _232 case uint32(216): + goto _232 + case uint32(217): goto _233 - case uint32(218): - goto _234 case uint32(221): + goto _234 + case uint32(218): goto _235 - case uint32(222): + case uint32(220): goto _236 case uint32(223): goto _237 @@ -159964,35 +161578,35 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _241 case uint32(228): goto _242 - case uint32(233): + case uint32(229): goto _243 - case uint32(234): + case uint32(230): goto _244 - case uint32(241): + case uint32(235): goto _245 case uint32(236): goto _246 - case uint32(237): + case uint32(243): goto _247 - case uint32(280): - goto _248 case uint32(238): - goto _249 + goto _248 case uint32(239): + goto _249 + case uint32(282): goto _250 - case uint32(242): + case uint32(240): goto _251 - case uint32(243): + case uint32(241): goto _252 - case uint32(246): + case uint32(244): goto _253 - case uint32(247): + case uint32(245): goto _254 case uint32(248): goto _255 - case uint32(251): + case uint32(249): goto _256 - case uint32(252): + case uint32(250): goto _257 case uint32(253): goto _258 @@ -160000,9 +161614,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _259 case uint32(255): goto _260 - case uint32(258): + case uint32(256): goto _261 - case uint32(259): + case uint32(257): goto _262 case uint32(260): goto _263 @@ -160010,21 +161624,21 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _264 case uint32(262): goto _265 - case uint32(264): - goto _266 case uint32(263): + goto _266 + case uint32(264): goto _267 - case uint32(265): + case uint32(266): goto _268 - case uint32(285): + case uint32(265): goto _269 - case uint32(266): + case uint32(267): goto _270 - case uint32(286): + case uint32(287): goto _271 - case uint32(267): - goto _272 case uint32(268): + goto _272 + case uint32(288): goto _273 case uint32(269): goto _274 @@ -160048,17 +161662,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _283 case uint32(279): goto _284 - case uint32(281): + case uint32(280): goto _285 - case uint32(282): + case uint32(281): goto _286 case uint32(283): goto _287 case uint32(284): goto _288 - case uint32(287): + case uint32(285): goto _289 - case uint32(288): + case uint32(286): goto _290 case uint32(289): goto _291 @@ -160082,19 +161696,19 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _300 case uint32(299): goto _301 - case uint32(301): - goto _302 case uint32(300): + goto _302 + case uint32(301): goto _303 - case uint32(302): + case uint32(303): goto _304 - case uint32(304): + case uint32(302): goto _305 - case uint32(303): + case uint32(304): goto _306 - case uint32(305): - goto _307 case uint32(306): + goto _307 + case uint32(305): goto _308 case uint32(307): goto _309 @@ -160124,31 +161738,31 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _321 case uint32(320): goto _322 - case uint32(324): + case uint32(321): goto _323 case uint32(322): goto _324 - case uint32(325): - goto _325 case uint32(323): - goto _326 + goto _325 case uint32(327): + goto _326 + case uint32(325): goto _327 - case uint32(326): - goto _328 case uint32(328): + goto _328 + case uint32(326): goto _329 - case uint32(329): + case uint32(330): goto _330 - case uint32(331): + case uint32(329): goto _331 - case uint32(330): + case uint32(331): goto _332 case uint32(332): goto _333 - case uint32(333): - goto _334 case uint32(334): + goto _334 + case uint32(333): goto _335 case uint32(335): goto _336 @@ -160160,34 +161774,42 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _339 case uint32(339): goto _340 - default: + case uint32(340): goto _341 + case uint32(341): + goto _342 + case uint32(342): + goto _343 + case uint32(343): + goto _344 + default: + goto _345 } - goto _342 + goto _346 _1: ; /* explain ::= EXPLAIN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(1) } - goto _342 + goto _346 _2: ; /* explain ::= EXPLAIN QUERY PLAN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(2) } - goto _342 + goto _346 _3: ; /* cmdx ::= cmd */ _sqlite3FinishCoding(tls, pParse) - goto _342 + goto _346 _4: ; /* cmd ::= BEGIN transtype trans_opt */ _sqlite3BeginTransaction(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _5: ; /* transtype ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_DEFERRED) - goto _342 + goto _346 _7: ; /* transtype ::= DEFERRED */ _6: @@ -160197,33 +161819,33 @@ _8: _9: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 + goto _346 _11: ; /* cmd ::= COMMIT|END trans_opt */ _10: ; _sqlite3EndTransaction(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor)) - goto _342 + goto _346 _12: ; /* cmd ::= SAVEPOINT nm */ _sqlite3Savepoint(tls, pParse, SAVEPOINT_BEGIN, yymsp+8) - goto _342 + goto _346 _13: ; /* cmd ::= RELEASE savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_RELEASE), yymsp+8) - goto _342 + goto _346 _14: ; /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_ROLLBACK), yymsp+8) - goto _342 + goto _346 _15: ; /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ _sqlite3StartTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), 0, 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _16: ; /* createkw ::= CREATE */ _disableLookaside(tls, pParse) - goto _342 + goto _346 _18: ; /* ifnotexists ::= */ _17: @@ -160241,56 +161863,56 @@ _23: _24: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = 0 - goto _342 + goto _346 _25: ; /* ifnotexists ::= IF NOT EXISTS */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(1) - goto _342 + goto _346 _26: ; /* temp ::= TEMP */ *(*int32)(unsafe.Pointer(yymsp + 8)) = libc.BoolInt32(int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0) - goto _342 + goto _346 _27: ; /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ _sqlite3EndTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*Tu32)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 + goto _346 _28: ; /* create_table_args ::= AS select */ _sqlite3EndTable(tls, pParse, uintptr(0), uintptr(0), uint32(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _29: ; /* table_option_set ::= */ *(*Tu32)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint32(0) - goto _342 + goto _346 _30: ; /* table_option_set ::= table_option_set COMMA table_option */ *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) | *(*Tu32)(unsafe.Pointer(yymsp + 8)) *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _31: ; /* table_option ::= WITHOUT nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16694, int32(5)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16781, int32(5)) == 0 { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) } else { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23358, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23481, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } - goto _342 + goto _346 _32: ; /* table_option ::= nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16607, int32(6)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16694, int32(6)) == 0 { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(TF_Strict) } else { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23358, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23481, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } *(*Tu32)(unsafe.Pointer(yymsp + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _33: ; /* columnname ::= nm typetoken */ _sqlite3AddColumn(tls, pParse, *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*TToken)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _35: ; /* typetoken ::= */ _34: @@ -160299,52 +161921,52 @@ _36: ; *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 + goto _346 _37: ; /* typetoken ::= typename LP signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) - goto _342 + goto _346 _38: ; /* typetoken ::= typename LP signed COMMA signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))))) - goto _342 + goto _346 _39: ; /* typename ::= typename ID|STRING */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) + uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) - goto _342 + goto _346 _40: ; /* scanpt ::= */ _ = libc.Int32FromInt32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken.Fz - goto _342 + goto _346 _41: ; /* scantok ::= */ _ = libc.Int32FromInt32(0) *(*TToken)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken - goto _342 + goto _346 _43: ; /* ccons ::= CONSTRAINT nm */ _42: ; (*TParse)(unsafe.Pointer(pParse)).FconstraintName = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _44: ; /* ccons ::= DEFAULT scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _45: ; /* ccons ::= DEFAULT LP expr RP */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))+uintptr(1), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _46: ; /* ccons ::= DEFAULT PLUS scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _47: ; /* ccons ::= DEFAULT MINUS scantok term */ p = _sqlite3PExpr(tls, pParse, int32(TK_UMINUS), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) _sqlite3AddDefaultValue(tls, pParse, p, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _48: ; /* ccons ::= DEFAULT scantok ID|INDEXED */ p1 = _tokenExpr(tls, pParse, int32(TK_STRING), *(*TToken)(unsafe.Pointer(yymsp + 8))) @@ -160352,99 +161974,99 @@ _48: _sqlite3ExprIdToTrueFalse(tls, p1) } _sqlite3AddDefaultValue(tls, pParse, p1, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - goto _342 + goto _346 _49: ; /* ccons ::= NOT NULL onconf */ _sqlite3AddNotNull(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _50: ; /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ _sqlite3AddPrimaryKey(tls, pParse, uintptr(0), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _51: ; /* ccons ::= UNIQUE onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _52: ; /* ccons ::= CHECK LP expr RP */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _53: ; /* ccons ::= REFERENCES nm eidlist_opt refargs */ _sqlite3CreateForeignKey(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _54: ; /* ccons ::= defer_subclause */ _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _55: ; /* ccons ::= COLLATE ID|STRING */ _sqlite3AddCollateType(tls, pParse, yymsp+8) - goto _342 + goto _346 _56: ; /* generated ::= LP expr RP */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 + goto _346 _57: ; /* generated ::= LP expr RP ID */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 + goto _346 _58: ; /* autoinc ::= AUTOINCR */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(1) - goto _342 + goto _346 _59: ; /* refargs ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = libc.Int32FromInt32(OE_None) * libc.Int32FromInt32(0x0101) /* EV: R-19803-45884 */ - goto _342 + goto _346 _60: ; /* refargs ::= refargs refarg */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) & ^*(*int32)(unsafe.Pointer(yymsp + 8 + 4)) | *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _61: ; /* refarg ::= MATCH nm */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _62: ; /* refarg ::= ON INSERT refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _63: ; /* refarg ::= ON DELETE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x0000ff) - goto _342 + goto _346 _64: ; /* refarg ::= ON UPDATE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) << int32(8) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x00ff00) - goto _342 + goto _346 _65: ; /* refact ::= SET NULL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetNull) /* EV: R-33326-45252 */ - goto _342 + goto _346 _66: ; /* refact ::= SET DEFAULT */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetDflt) /* EV: R-33326-45252 */ - goto _342 + goto _346 _67: ; /* refact ::= CASCADE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Cascade) /* EV: R-33326-45252 */ - goto _342 + goto _346 _68: ; /* refact ::= RESTRICT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Restrict) /* EV: R-33326-45252 */ - goto _342 + goto _346 _69: ; /* refact ::= NO ACTION */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = OE_None /* EV: R-33326-45252 */ - goto _342 + goto _346 _70: ; /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 - goto _342 + goto _346 _72: ; /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ _71: @@ -160452,7 +162074,7 @@ _71: _73: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _75: ; /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ _74: @@ -160464,64 +162086,64 @@ _77: _78: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(1) - goto _342 + goto _346 _79: ; /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 - goto _342 + goto _346 _80: ; /* tconscomma ::= COMMA */ (*TParse)(unsafe.Pointer(pParse)).FconstraintName.Fn = uint32(0) - goto _342 + goto _346 _81: ; /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ _sqlite3AddPrimaryKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), 0) - goto _342 + goto _346 _82: ; /* tcons ::= UNIQUE LP sortlist RP onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _83: ; /* tcons ::= CHECK LP expr RP onconf */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _84: ; /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ _sqlite3CreateForeignKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _86: ; /* onconf ::= */ _85: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(OE_Default) - goto _342 + goto _346 _87: ; /* onconf ::= ON CONFLICT resolvetype */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _88: ; /* resolvetype ::= IGNORE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Ignore) - goto _342 + goto _346 _90: ; /* resolvetype ::= REPLACE */ _89: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Replace) - goto _342 + goto _346 _91: ; /* cmd ::= DROP TABLE ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _92: ; /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ _sqlite3CreateView(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) - goto _342 + goto _346 _93: ; /* cmd ::= DROP VIEW ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), int32(1), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _94: ; /* cmd ::= select */ *(*TSelectDest)(unsafe.Pointer(bp + 16)) = TSelectDest{ @@ -160529,22 +162151,22 @@ _94: } _sqlite3Select(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), bp+16) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _95: ; /* select ::= WITH wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _96: ; /* select ::= WITH RECURSIVE wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _97: ; /* select ::= selectnowith */ p2 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) if p2 != 0 { _parserDoubleLinkSelect(tls, pParse, p2) } - goto _342 + goto _346 _98: ; /* selectnowith ::= selectnowith multiselect_op oneselect */ pRhs = *(*uintptr)(unsafe.Pointer(yymsp + 8)) @@ -160569,21 +162191,21 @@ _98: _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pLhs) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = pRhs - goto _342 + goto _346 _100: ; /* multiselect_op ::= UNION */ _99: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-OP*/ - goto _342 + goto _346 _101: ; /* multiselect_op ::= UNION ALL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_ALL) - goto _342 + goto _346 _102: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _103: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(9))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -160592,116 +162214,111 @@ _103: } else { _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) } - goto _342 + goto _346 _104: ; /* values ::= VALUES LP nexprlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) - goto _342 + goto _346 _105: - ; /* values ::= values COMMA LP nexprlist RP */ - pLeft = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) - pRight = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(libc.Int32FromInt32(SF_Values)|libc.Int32FromInt32(SF_MultiValue)), uintptr(0)) - if pLeft != 0 { - *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) - } - if pRight != 0 { - (*TSelect)(unsafe.Pointer(pRight)).Fop = uint8(TK_ALL) - (*TSelect)(unsafe.Pointer(pRight)).FpPrior = pLeft - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pRight - } else { - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pLeft - } - goto _342 + ; /* oneselect ::= mvalues */ + _sqlite3MultiValuesEnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_107: + ; /* mvalues ::= values COMMA LP nexprlist RP */ _106: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3MultiValues(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_108: ; /* distinct ::= DISTINCT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_Distinct) - goto _342 -_107: + goto _346 +_109: ; /* distinct ::= ALL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_All) - goto _342 -_109: + goto _346 +_111: ; /* sclp ::= */ -_108: - ; _110: ; -_111: - ; _112: ; _113: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 _114: + ; +_115: + ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 +_116: ; /* selcollist ::= sclp scanpt expr scanpt as */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) > uint32(0) { _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+8, int32(1)) } _sqlite3ExprListSetSpan(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_115: + goto _346 +_117: ; /* selcollist ::= sclp scanpt STAR */ p3 = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_ASTERISK), uintptr(0)) _sqlite3ExprSetErrorOffset(tls, p3, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), p3) - goto _342 -_116: + goto _346 +_118: ; /* selcollist ::= sclp scanpt nm DOT STAR */ - pRight1 = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) - _sqlite3ExprSetErrorOffset(tls, pRight1, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) - pLeft1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft1, pRight1) + pRight = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) + _sqlite3ExprSetErrorOffset(tls, pRight, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) + pLeft = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) + pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft, pRight) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pDot) - goto _342 -_118: + goto _346 +_120: ; /* as ::= AS nm */ -_117: - ; _119: ; -_120: +_121: ; - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 _122: + ; + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) + goto _346 +_124: ; /* from ::= */ -_121: +_123: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_123: + goto _346 +_125: ; /* from ::= FROM seltablist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) _sqlite3SrcListShiftJoinType(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_124: + goto _346 +_126: ; /* stl_prefix ::= seltablist joinop */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 && (*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc > 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8 + uintptr((*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc-int32(1))*104))).Ffg.Fjointype = uint8(*(*int32)(unsafe.Pointer(yymsp + 8))) } - goto _342 -_125: + goto _346 +_127: ; /* seltablist ::= stl_prefix nm dbnm as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) - goto _342 -_126: + goto _346 +_128: ; /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_127: + goto _346 +_129: ; /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListFuncArgs(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) - goto _342 -_128: + goto _346 +_130: ; /* seltablist ::= stl_prefix LP select RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_129: + goto _346 +_131: ; /* seltablist ::= stl_prefix LP seltablist RP as on_using */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) == uintptr(0) && *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) == uint32(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8)) == uintptr(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) @@ -160723,9 +162340,9 @@ _129: libc.SetBitFieldPtr16Uint32(pOld+60+4, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pNew+60+4, libc.Uint32FromInt32(1), 2, 0x4) } - v343 = libc.UintptrFromInt32(0) - (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v343 - (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v343 + v347 = libc.UintptrFromInt32(0) + (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v347 + (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v347 (*TSrcItem)(unsafe.Pointer(pOld)).FpSelect = uintptr(0) } _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) @@ -160735,189 +162352,189 @@ _129: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, pSubquery, yymsp+8) } } - goto _342 -_131: + goto _346 +_133: ; /* dbnm ::= */ -_130: +_132: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) - goto _342 -_132: + goto _346 +_134: ; /* fullname ::= nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_133: + goto _346 +_135: ; /* fullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_134: + goto _346 +_136: ; /* xfullname ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) /*A-overwrites-X*/ - goto _342 -_135: + goto _346 +_137: ; /* xfullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) /*A-overwrites-X*/ - goto _342 -_136: + goto _346 +_138: ; /* xfullname ::= nm DOT nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_137: + goto _346 +_139: ; /* xfullname ::= nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0)) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_138: + goto _346 +_140: ; /* joinop ::= COMMA|JOIN */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(JT_INNER) - goto _342 -_139: + goto _346 +_141: ; /* joinop ::= JOIN_KW JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), uintptr(0)) /*X-overwrites-A*/ - goto _342 -_140: + goto _346 +_142: ; /* joinop ::= JOIN_KW nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0)) /*X-overwrites-A*/ - goto _342 -_141: + goto _346 +_143: ; /* joinop ::= JOIN_KW nm nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) /*X-overwrites-A*/ - goto _342 -_142: + goto _346 +_144: ; /* on_using ::= ON expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uintptr(0) - goto _342 -_143: + goto _346 +_145: ; /* on_using ::= USING LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_144: + goto _346 +_146: ; /* on_using ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uintptr(0) - goto _342 -_145: + goto _346 +_147: ; /* indexed_by ::= INDEXED BY nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 -_146: + goto _346 +_148: ; /* indexed_by ::= NOT INDEXED */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(1) - goto _342 -_148: + goto _346 +_150: ; /* orderby_opt ::= ORDER BY sortlist */ -_147: +_149: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_149: + goto _346 +_151: ; /* sortlist ::= sortlist COMMA expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_150: + goto _346 +_152: ; /* sortlist ::= expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) /*A-overwrites-Y*/ _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_151: + goto _346 +_153: ; /* sortorder ::= ASC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = SQLITE_SO_ASC - goto _342 -_152: + goto _346 +_154: ; /* sortorder ::= DESC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_154: + goto _346 +_156: ; /* sortorder ::= */ -_153: +_155: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = -int32(1) - goto _342 -_155: + goto _346 +_157: ; /* nulls ::= NULLS FIRST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = SQLITE_SO_ASC - goto _342 -_156: + goto _346 +_158: ; /* nulls ::= NULLS LAST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_158: + goto _346 +_160: ; /* having_opt ::= */ -_157: - ; _159: ; -_160: - ; _161: ; _162: ; _163: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_165: - ; /* having_opt ::= HAVING expr */ _164: ; -_166: +_165: ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 _167: + ; /* having_opt ::= HAVING expr */ +_166: ; _168: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 _169: + ; +_170: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + goto _346 +_171: ; /* limit_opt ::= LIMIT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 -_170: + goto _346 +_172: ; /* limit_opt ::= LIMIT expr OFFSET expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_171: + goto _346 +_173: ; /* limit_opt ::= LIMIT expr COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 -_172: + goto _346 +_174: ; /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) _sqlite3DeleteFrom(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0)) - goto _342 -_173: + goto _346 +_175: ; /* where_opt_ret ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) - goto _342 -_174: + goto _346 +_176: ; /* where_opt_ret ::= WHERE expr RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) - goto _342 -_175: + goto _346 +_177: ; /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) - _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23385) + _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23508) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { pFromClause = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) if (*TSrcList)(unsafe.Pointer(pFromClause)).FnSrc > int32(1) { @@ -160929,95 +162546,95 @@ _175: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendList(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), pFromClause) } _sqlite3Update(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_176: + goto _346 +_178: ; /* setlist ::= setlist COMMA nm EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) - goto _342 -_177: + goto _346 +_179: ; /* setlist ::= setlist COMMA LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_178: + goto _346 +_180: ; /* setlist ::= nm EQ expr */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_179: + goto _346 +_181: ; /* setlist ::= LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_180: + goto _346 +_182: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_181: + goto _346 +_183: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0)) - goto _342 -_182: + goto _346 +_184: ; /* upsert ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_183: + goto _346 +_185: ; /* upsert ::= RETURNING selcollist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_184: + goto _346 +_186: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(11))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_185: + goto _346 +_187: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_186: + goto _346 +_188: ; /* upsert ::= ON CONFLICT DO NOTHING returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_187: + goto _346 +_189: ; /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_188: + goto _346 +_190: ; /* returning ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_189: + goto _346 +_191: ; /* idlist_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_190: + goto _346 +_192: ; /* idlist_opt ::= LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_191: + goto _346 +_193: ; /* idlist ::= idlist COMMA nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3IdListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 -_192: + goto _346 +_194: ; /* idlist ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3IdListAppend(tls, pParse, uintptr(0), yymsp+8) /*A-overwrites-Y*/ - goto _342 -_193: + goto _346 +_195: ; /* expr ::= LP expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_194: + goto _346 +_196: ; /* expr ::= ID|INDEXED|JOIN_KW */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_195: + goto _346 +_197: ; /* expr ::= nm DOT nm */ temp1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) temp2 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp1, temp2) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_196: + goto _346 +_198: ; /* expr ::= nm DOT nm DOT nm */ temp11 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) temp21 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) @@ -161028,22 +162645,22 @@ _196: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp11, temp4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_198: + goto _346 +_200: ; /* term ::= NULL|FLOAT|BLOB */ -_197: +_199: ; *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_199: + goto _346 +_201: ; /* term ::= INTEGER */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), yymsp+8, int32(1)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 52)) = int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8))) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_200: + goto _346 +_202: ; /* expr ::= VARIABLE */ if !(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8))))) == int32('#') && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)) + 1))])&int32(0x04) != 0) { n = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) @@ -161056,7 +162673,7 @@ _200: *(*TToken)(unsafe.Pointer(bp + 88)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) /*A-overwrites-X*/ _ = libc.Int32FromInt32(0) if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23394, libc.VaList(bp+128, bp+88)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23517, libc.VaList(bp+128, bp+88)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = uintptr(0) } else { *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_REGISTER), uintptr(0), uintptr(0)) @@ -161065,57 +162682,57 @@ _200: } } } - goto _342 -_201: + goto _346 +_203: ; /* expr ::= expr COLLATE ID|STRING */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAddCollateToken(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8, int32(1)) - goto _342 -_202: + goto _346 +_204: ; /* expr ::= CAST LP expr AS typetoken RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_CAST), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) _sqlite3ExprAttachSubtrees(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) - goto _342 -_203: + goto _346 +_205: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_204: + goto _346 +_206: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_205: + goto _346 +_207: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_206: + goto _346 +_208: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_207: + goto _346 +_209: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_208: + goto _346 +_210: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, 0) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_209: + goto _346 +_211: ; /* term ::= CTIME_KW */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_210: + goto _346 +_212: ; /* expr ::= LP nexprlist COMMA expr RP */ pList = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_VECTOR), uintptr(0), uintptr(0)) @@ -161127,33 +162744,33 @@ _210: } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) } - goto _342 -_211: + goto _346 +_213: ; /* expr ::= expr AND expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_213: + goto _346 +_215: ; /* expr ::= expr OR expr */ -_212: - ; _214: ; -_215: - ; _216: ; _217: ; _218: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 _219: + ; +_220: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_221: ; /* likeop ::= NOT LIKE_KW|MATCH */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) |= uint32(0x80000000) /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/ - goto _342 -_220: + goto _346 +_222: ; /* expr ::= expr likeop expr */ bNot = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -161166,8 +162783,8 @@ _220: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_221: + goto _346 +_223: ; /* expr ::= expr likeop expr ESCAPE expr */ bNot1 = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -161181,65 +162798,69 @@ _221: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_222: + goto _346 +_224: ; /* expr ::= expr ISNULL|NOTNULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_223: + goto _346 +_225: ; /* expr ::= expr NOT NULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOTNULL), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uintptr(0)) - goto _342 -_224: + goto _346 +_226: ; /* expr ::= expr IS expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_225: + goto _346 +_227: ; /* expr ::= expr IS NOT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_226: + goto _346 +_228: ; /* expr ::= expr IS NOT DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_227: + goto _346 +_229: ; /* expr ::= expr IS DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_229: + goto _346 +_231: ; /* expr ::= NOT expr */ -_228: +_230: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) /*A-overwrites-B*/ - goto _342 -_230: + goto _346 +_232: ; /* expr ::= PLUS|MINUS expr */ - if int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) == int32(TK_PLUS) { - v344 = int32(TK_UPLUS) + p4 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + op = uint8(int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) + (libc.Int32FromInt32(TK_UPLUS) - libc.Int32FromInt32(TK_PLUS))) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if p4 != 0 && int32((*TExpr)(unsafe.Pointer(p4)).Fop) == int32(TK_UPLUS) { + (*TExpr)(unsafe.Pointer(p4)).Fop = op + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = p4 } else { - v344 = int32(TK_UMINUS) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(op), p4, uintptr(0)) + /*A-overwrites-B*/ } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, v344, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - /*A-overwrites-B*/ - goto _342 -_231: + goto _346 +_233: ; /* expr ::= expr PTR expr */ pList3 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList3 = _sqlite3ExprListAppend(tls, pParse, pList3, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, pList3, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_233: + goto _346 +_235: ; /* between_op ::= BETWEEN */ -_232: +_234: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = 0 - goto _342 -_234: + goto _346 +_236: ; /* expr ::= expr between_op expr AND expr */ pList4 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList4 = _sqlite3ExprListAppend(tls, pParse, pList4, *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -161252,8 +162873,8 @@ _234: if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_235: + goto _346 +_237: ; /* expr ::= expr in_op LP exprlist RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) == uintptr(0) { /* Expressions of the form @@ -161266,17 +162887,17 @@ _235: */ _sqlite3ExprUnmapAndDelete(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { - v345 = __ccgo_ts + 7886 + v348 = __ccgo_ts + 8011 } else { - v345 = __ccgo_ts + 7891 + v348 = __ccgo_ts + 8016 } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v345) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v348) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { _sqlite3ExprIdToTrueFalse(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } } else { pRHS = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr - if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { + if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pParse, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr = uintptr(0) _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) pRHS = _sqlite3PExpr(tls, pParse, int32(TK_UPLUS), pRHS, uintptr(0)) @@ -161310,463 +162931,467 @@ _235: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } } - goto _342 -_236: + goto _346 +_238: ; /* expr ::= LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_SELECT), uintptr(0), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_237: + goto _346 +_239: ; /* expr ::= expr in_op LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_238: + goto _346 +_240: ; /* expr ::= expr in_op nm dbnm paren_exprlist */ pSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) pSelect = _sqlite3SelectNew(tls, pParse, uintptr(0), pSrc, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { if pSelect != 0 { - v346 = pSrc + v349 = pSrc } else { - v346 = uintptr(0) + v349 = uintptr(0) } - _sqlite3SrcListFuncArgs(tls, pParse, v346, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + _sqlite3SrcListFuncArgs(tls, pParse, v349, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pSelect) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_239: + goto _346 +_241: ; /* expr ::= EXISTS LP select RP */ - v347 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v347 - p4 = v347 - _sqlite3PExprAddSelect(tls, pParse, p4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_240: + v350 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v350 + p5 = v350 + _sqlite3PExprAddSelect(tls, pParse, p5, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_242: ; /* expr ::= CASE case_operand case_exprlist case_else END */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_CASE), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { - v348 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + v351 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } else { - v348 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + v351 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) } - *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v348 + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v351 _sqlite3ExprSetHeightAndFlags(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } - goto _342 -_241: + goto _346 +_243: ; /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_242: + goto _346 +_244: ; /* case_exprlist ::= WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_243: + goto _346 +_245: ; /* nexprlist ::= nexprlist COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_244: + goto _346 +_246: ; /* nexprlist ::= expr */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_246: + goto _346 +_248: ; /* paren_exprlist ::= LP exprlist RP */ -_245: +_247: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_247: + goto _346 +_249: ; /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ _sqlite3CreateIndex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, uintptr(0)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(11))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8)), SQLITE_SO_ASC, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), uint8(SQLITE_IDXTYPE_APPDEF)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && (*TParse)(unsafe.Pointer(pParse)).FpNewIndex != 0 { _sqlite3RenameTokenMap(tls, pParse, (*TIndex)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpNewIndex)).FzName, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) } - goto _342 -_249: + goto _346 +_251: ; /* uniqueflag ::= UNIQUE */ -_248: +_250: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Abort) - goto _342 -_250: + goto _346 +_252: ; /* uniqueflag ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = OE_None - goto _342 -_251: + goto _346 +_253: ; /* eidlist ::= eidlist COMMA nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_252: + goto _346 +_254: ; /* eidlist ::= nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_253: + goto _346 +_255: ; /* cmd ::= DROP INDEX ifexists fullname */ _sqlite3DropIndex(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_254: + goto _346 +_256: ; /* cmd ::= VACUUM vinto */ _sqlite3Vacuum(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_255: + goto _346 +_257: ; /* cmd ::= VACUUM nm vinto */ _sqlite3Vacuum(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_256: + goto _346 +_258: ; /* cmd ::= PRAGMA nm dbnm */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, uintptr(0), 0) - goto _342 -_257: + goto _346 +_259: ; /* cmd ::= PRAGMA nm dbnm EQ nmnum */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, 0) - goto _342 -_258: + goto _346 +_260: ; /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) - goto _342 -_259: + goto _346 +_261: ; /* cmd ::= PRAGMA nm dbnm EQ minus_num */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, int32(1)) - goto _342 -_260: + goto _346 +_262: ; /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) - goto _342 -_261: + goto _346 +_263: ; /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ (*(*TToken)(unsafe.Pointer(bp + 104))).Fz = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) (*(*TToken)(unsafe.Pointer(bp + 104))).Fn = uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) + *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) _sqlite3FinishTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), bp+104) - goto _342 -_262: + goto _346 +_264: ; /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ _sqlite3BeginTrigger(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8 + 8)) == uint32(0) { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) } else { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) } - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v349 /*A-overwrites-T*/ - goto _342 -_263: + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v352 /*A-overwrites-T*/ + goto _346 +_265: ; /* trigger_time ::= BEFORE|AFTER */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_264: + goto _346 +_266: ; /* trigger_time ::= INSTEAD OF */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_INSTEAD) - goto _342 -_265: + goto _346 +_267: ; /* trigger_time ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_BEFORE) - goto _342 -_267: + goto _346 +_269: ; /* trigger_event ::= DELETE|INSERT */ -_266: +_268: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) = uintptr(0) - goto _342 -_268: + goto _346 +_270: ; /* trigger_event ::= UPDATE OF idlist */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(TK_UPDATE) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_270: + goto _346 +_272: ; /* when_clause ::= */ -_269: +_271: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_272: + goto _346 +_274: ; /* when_clause ::= WHEN expr */ -_271: +_273: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_273: + goto _346 +_275: ; /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ _ = libc.Int32FromInt32(0) (*TTriggerStep)(unsafe.Pointer((*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast)).FpNext = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_274: + goto _346 +_276: ; /* trigger_cmd_list ::= trigger_cmd SEMI */ _ = libc.Int32FromInt32(0) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_275: + goto _346 +_277: ; /* trnm ::= nm DOT nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23418, 0) - goto _342 -_276: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23541, 0) + goto _346 +_278: ; /* tridxby ::= INDEXED BY nm */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23513, 0) - goto _342 -_277: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23636, 0) + goto _346 +_279: ; /* tridxby ::= NOT INDEXED */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23597, 0) - goto _342 -_278: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23720, 0) + goto _346 +_280: ; /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerUpdateStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_279: + goto _346 +_281: ; /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_280: + goto _346 +_282: ; /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerDeleteStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_281: + goto _346 +_283: ; /* trigger_cmd ::= scanpt select scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_282: + goto _346 +_284: ; /* expr ::= RAISE LP IGNORE RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_RAISE), uintptr(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)))).FaffExpr = uint8(OE_Ignore) } - goto _342 -_283: + goto _346 +_285: ; /* expr ::= RAISE LP raisetype COMMA nm RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_RAISE), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)))).FaffExpr = uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) } - goto _342 -_284: + goto _346 +_286: ; /* raisetype ::= ROLLBACK */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Rollback) - goto _342 -_285: + goto _346 +_287: ; /* raisetype ::= FAIL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Fail) - goto _342 -_286: + goto _346 +_288: ; /* cmd ::= DROP TRIGGER ifexists fullname */ _sqlite3DropTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_287: + goto _346 +_289: ; /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ _sqlite3Attach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_288: + goto _346 +_290: ; /* cmd ::= DETACH database_kw_opt expr */ _sqlite3Detach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_289: + goto _346 +_291: ; /* cmd ::= REINDEX */ _sqlite3Reindex(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_290: + goto _346 +_292: ; /* cmd ::= REINDEX nm dbnm */ _sqlite3Reindex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_291: + goto _346 +_293: ; /* cmd ::= ANALYZE */ _sqlite3Analyze(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_292: + goto _346 +_294: ; /* cmd ::= ANALYZE nm dbnm */ _sqlite3Analyze(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_293: + goto _346 +_295: ; /* cmd ::= ALTER TABLE fullname RENAME TO nm */ _sqlite3AlterRenameTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_294: + goto _346 +_296: ; /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(int32(int64((*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fz)-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) + (*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fn _sqlite3AlterFinishAddColumn(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_295: + goto _346 +_297: ; /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ _sqlite3AlterDropColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_296: + goto _346 +_298: ; /* add_column_fullname ::= fullname */ _disableLookaside(tls, pParse) _sqlite3AlterBeginAddColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_297: + goto _346 +_299: ; /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ _sqlite3AlterRenameColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) - goto _342 -_298: + goto _346 +_300: ; /* cmd ::= create_vtab */ _sqlite3VtabFinishParse(tls, pParse, uintptr(0)) - goto _342 -_299: + goto _346 +_301: ; /* cmd ::= create_vtab LP vtabarglist RP */ _sqlite3VtabFinishParse(tls, pParse, yymsp+8) - goto _342 -_300: + goto _346 +_302: ; /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ _sqlite3VtabBeginParse(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) - goto _342 -_301: + goto _346 +_303: ; /* vtabarg ::= */ _sqlite3VtabArgInit(tls, pParse) - goto _342 -_303: + goto _346 +_305: ; /* vtabargtoken ::= ANY */ -_302: - ; _304: ; - _sqlite3VtabArgExtend(tls, pParse, yymsp+8) - goto _342 _306: + ; + _sqlite3VtabArgExtend(tls, pParse, yymsp+8) + goto _346 +_308: ; /* with ::= WITH wqlist */ -_305: +_307: ; _sqlite3WithPush(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint8(1)) - goto _342 -_307: + goto _346 +_309: ; /* wqas ::= AS */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8(M10d_Any) - goto _342 -_308: + goto _346 +_310: ; /* wqas ::= AS MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8(M10d_Yes) - goto _342 -_309: + goto _346 +_311: ; /* wqas ::= AS NOT MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = uint8(M10d_No) - goto _342 -_310: - ; /* wqitem ::= nm eidlist_opt wqas LP select RP */ + goto _346 +_312: + ; /* wqitem ::= withnm eidlist_opt wqas LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3CteNew(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) /*A-overwrites-X*/ - goto _342 -_311: + goto _346 +_313: + ; /* withnm ::= nm */ + (*TParse)(unsafe.Pointer(pParse)).FbHasWith = uint8(1) + goto _346 +_314: ; /* wqlist ::= wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3WithAdd(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_312: + goto _346 +_315: ; /* wqlist ::= wqlist COMMA wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3WithAdd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_313: + goto _346 +_316: ; /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ _ = libc.Int32FromInt32(0) _sqlite3WindowChain(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpNextWin = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_314: + goto _346 +_317: ; /* windowdefn ::= nm AS LP window RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)))) } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_315: + goto _346 +_318: ; /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_316: + goto _346 +_319: ; /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_317: + goto _346 +_320: ; /* window ::= ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_318: + goto _346 +_321: ; /* window ::= nm ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_319: + goto _346 +_322: ; /* window ::= nm frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_320: + goto _346 +_323: ; /* frame_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = _sqlite3WindowAlloc(tls, pParse, 0, int32(TK_UNBOUNDED), uintptr(0), int32(TK_CURRENT), uintptr(0), uint8(0)) - goto _342 -_321: + goto _346 +_324: ; /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), int32(TK_CURRENT), uintptr(0), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_322: + goto _346 +_325: ; /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_324: + goto _346 +_327: ; /* frame_bound_s ::= frame_bound */ -_323: +_326: ; *(*TFrameBound)(unsafe.Pointer(bp)) = *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_326: + goto _346 +_329: ; /* frame_bound_s ::= UNBOUNDED PRECEDING */ -_325: +_328: ; -_327: +_330: ; (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = uintptr(0) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_328: + goto _346 +_331: ; /* frame_bound ::= expr PRECEDING|FOLLOWING */ (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_329: + goto _346 +_332: ; /* frame_exclude_opt ::= */ *(*Tu8)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint8(0) - goto _342 -_330: + goto _346 +_333: ; /* frame_exclude_opt ::= EXCLUDE frame_exclude */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*Tu8)(unsafe.Pointer(yymsp + 8)) - goto _342 -_332: + goto _346 +_335: ; /* frame_exclude ::= NO OTHERS */ -_331: +_334: ; *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) /*A-overwrites-X*/ - goto _342 -_333: + goto _346 +_336: ; /* frame_exclude ::= GROUP|TIES */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_334: + goto _346 +_337: ; /* window_clause ::= WINDOW windowdefn_list */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_335: + goto _346 +_338: ; /* filter_over ::= filter_clause over_clause */ if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpFilter = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) @@ -161775,13 +163400,13 @@ _335: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_336: + goto _346 +_339: ; /* filter_over ::= over_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_337: + goto _346 +_340: ; /* filter_over ::= filter_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { @@ -161791,24 +163416,30 @@ _337: _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_338: + goto _346 +_341: ; /* over_clause ::= OVER LP window RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) _ = libc.Int32FromInt32(0) - goto _342 -_339: + goto _346 +_342: ; /* over_clause ::= OVER nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) } - goto _342 -_340: + goto _346 +_343: ; /* filter_clause ::= FILTER LP WHERE expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_341: + goto _346 +_344: + ; /* term ::= QNUMBER */ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) + _sqlite3DequoteNumber(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp))))) + *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + goto _346 +_345: ; _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -161825,9 +163456,9 @@ _341: _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - goto _342 + goto _346 /********** End reduce actions ************************************************/ -_342: +_346: ; _ = libc.Int32FromInt32(0) yygoto = int32(_yyRuleInfoLhs[yyruleno]) @@ -161864,9 +163495,9 @@ func _yy_syntax_error(tls *libc.TLS, yypParser uintptr, yymajor int32, _yyminor /************ Begin %syntax_error code ****************************************/ _ = yymajor /* Silence some compiler warnings */ if *(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp))).Fz)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23394, libc.VaList(bp+24, bp)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23517, libc.VaList(bp+24, bp)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23682, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23805, 0) } /************ End %syntax_error code ******************************************/ /* Suppress warning about unused %extra_argument variable */ @@ -161935,8 +163566,10 @@ func _sqlite3Parser(tls *libc.TLS, yyp uintptr, yymajor int32, yyminor TToken) { ** enough on the stack to push the LHS value */ if int32(_yyRuleInfoNRhs[yyruleno]) == 0 { if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos >= (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - _yyStackOverflow(tls, yypParser) - break + if _yyGrowStack(tls, yypParser) != 0 { + _yyStackOverflow(tls, yypParser) + break + } } } yyact = _yy_reduce(tls, yypParser, yyruleno, yymajor, yyminor, pParse) @@ -164088,9 +165721,9 @@ func _analyzeFilterKeyword(tls *libc.TLS, _z uintptr, lastToken int32) (r int32) // ** Store the token type in *tokenType before returning. // */ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { - var c, delim, i, n, v10, v14, v16, v19, v20, v3, v5, v7, v8 int32 - var v15, v6 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v14, v15, v16, v19, v20, v3, v5, v6, v7, v8 + var c, delim, i, n, v10, v16, v18, v21, v22, v3, v5, v7, v8 int32 + var v17, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v16, v17, v18, v21, v22, v3, v5, v6, v7, v8 switch int32(_aiClass[*(*uint8)(unsafe.Pointer(z))]) { /* Switch on the character-class of the first byte ** of the token. See the comment on the CC_ defines ** above. */ @@ -164286,39 +165919,83 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('X')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + 2))])&int32(0x08) != 0 { i = int32(3) for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { + if !(int32(1) != 0) { break } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } goto _11 _11: ; i++ } - return i - } - i = 0 - for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _12 - _12: - ; - i++ - } - if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { - i++ - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + } else { + i = 0 + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _12 + _12: + ; i++ } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) - } - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { - i += int32(2) - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } i++ + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _13 + _13: + ; + i++ + } + } + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } + i += int32(2) + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _14 + _14: + ; + i++ + } } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) } for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x46) != 0 { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_ILLEGAL) @@ -164329,24 +166006,24 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { i = int32(1) c = int32(*(*uint8)(unsafe.Pointer(z))) for { - if v15 = c != int32(']'); v15 { - v14 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v14 + if v17 = c != int32(']'); v17 { + v16 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v16 } - if !(v15 && v14 != 0) { + if !(v17 && v16 != 0) { break } - goto _13 - _13: + goto _15 + _15: ; i++ } if c == int32(']') { - v16 = int32(TK_ID) + v18 = int32(TK_ID) } else { - v16 = int32(TK_ILLEGAL) + v18 = int32(TK_ILLEGAL) } - *(*int32)(unsafe.Pointer(tokenType)) = v16 + *(*int32)(unsafe.Pointer(tokenType)) = v18 return i case int32(CC_VARNUM): *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) @@ -164355,8 +166032,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { break } - goto _17 - _17: + goto _19 + _19: ; i++ } @@ -164368,9 +166045,9 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) i = int32(1) for { - v19 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v19 - if !(v19 != 0) { + v21 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v21 + if !(v21 != 0) { break } if int32(_sqlite3CtypeMap[uint8(c)])&int32(0x46) != 0 { @@ -164379,12 +166056,12 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if c == int32('(') && n > 0 { for { i++ - goto _21 - _21: + goto _23 + _23: ; - v20 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v20 - if !(v20 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { + v22 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v22 + if !(v22 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { break } } @@ -164402,8 +166079,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { } } } - goto _18 - _18: + goto _20 + _20: ; i++ } @@ -164421,8 +166098,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_aiClass[*(*uint8)(unsafe.Pointer(z + uintptr(i)))]) <= int32(CC_KYWD)) { break } - goto _22 - _22: + goto _24 + _24: ; i++ } @@ -164443,8 +166120,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { break } - goto _23 - _23: + goto _25 + _25: ; i++ } @@ -164496,7 +166173,7 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { var lastTokenParsed, mxSqlLen, n, nErr int32 var _ /* sEngine at bp+8 */ TyyParser var _ /* tokenType at bp+0 */ int32 - var _ /* x at bp+2432 */ TToken + var _ /* x at bp+2440 */ TToken _, _, _, _, _, _, _ = db, lastTokenParsed, mxSqlLen, n, nErr, pEngine, pParentParse nErr = 0 /* The LEMON-generated LALR(1) parser */ n = 0 /* type of the next token */ @@ -164563,10 +166240,12 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(bp)) = _analyzeFilterKeyword(tls, zSql+6, lastTokenParsed) } else { - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fz = zSql - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fn = uint32(n) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23699, libc.VaList(bp+2456, bp+2432)) - break + if *(*int32)(unsafe.Pointer(bp)) != int32(TK_QNUMBER) { + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fz = zSql + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fn = uint32(n) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23822, libc.VaList(bp+2464, bp+2440)) + break + } } } } @@ -164589,9 +166268,9 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { } if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg != 0 || (*TParse)(unsafe.Pointer(pParse)).Frc != SQLITE_OK && (*TParse)(unsafe.Pointer(pParse)).Frc != int32(SQLITE_DONE) { if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg == uintptr(0) { - (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3795, libc.VaList(bp+2456, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) + (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3859, libc.VaList(bp+2464, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) } - Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23724, libc.VaList(bp+2456, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) + Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23847, libc.VaList(bp+2464, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) nErr++ } (*TParse)(unsafe.Pointer(pParse)).FzTail = zSql @@ -164784,7 +166463,7 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('c'): fallthrough case int32('C'): - if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23735, int32(6)) == 0 { + if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23858, int32(6)) == 0 { token = uint8(tkCREATE) } else { token = uint8(tkOTHER) @@ -164792,13 +166471,13 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('t'): fallthrough case int32('T'): - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20379, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20511, int32(7)) == 0 { token = uint8(tkTRIGGER) } else { - if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23742, int32(4)) == 0 { + if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23865, int32(4)) == 0 { token = uint8(tkTEMP) } else { - if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23747, int32(9)) == 0 { + if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23870, int32(9)) == 0 { token = uint8(tkTEMP) } else { token = uint8(tkOTHER) @@ -164808,10 +166487,10 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('e'): fallthrough case int32('E'): - if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23757, int32(3)) == 0 { + if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23880, int32(3)) == 0 { token = uint8(tkEND) } else { - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23761, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23884, int32(7)) == 0 { token = uint8(tkEXPLAIN) } else { token = uint8(tkOTHER) @@ -165071,8 +166750,6 @@ func _hasHighPrecisionDouble(tls *libc.TLS, rc int32) (r int32) { // ** without blocking. // */ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { - ng := runtime.GOMAXPROCS(1) - defer func() { runtime.GOMAXPROCS(ng) }() var pMainMtx uintptr var rc int32 _, _ = pMainMtx, rc /* Result code */ @@ -165085,7 +166762,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** must be complete. So isInit must not be set until the very end ** of this routine. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { return SQLITE_OK } /* Make sure the mutex subsystem is initialized. If unable to @@ -165145,7 +166822,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** call to sqlite3PcacheInitialize(). */ Xsqlite3_mutex_enter(tls, _sqlite3Config.FpInitMutex) - if _sqlite3Config.FisInit == 0 && _sqlite3Config.FinProgress == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 && _sqlite3Config.FinProgress == 0 { _sqlite3Config.FinProgress = int32(1) libc.Xmemset(tls, uintptr(unsafe.Pointer(&_sqlite3BuiltinFunctions)), 0, uint64(184)) _sqlite3RegisterBuiltinFunctions(tls) @@ -165161,7 +166838,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { } if rc == SQLITE_OK { _sqlite3PCacheBufferSetup(tls, _sqlite3Config.FpPage, _sqlite3Config.FszPage, _sqlite3Config.FnPage) - _sqlite3Config.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, int32(1)) } _sqlite3Config.FinProgress = 0 } @@ -165187,7 +166864,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { */ /* Experimentally determine if high-precision floating point is ** available. */ - _sqlite3Config.FbUseLongDouble = uint8(_hasHighPrecisionDouble(tls, rc)) + // disabled return rc } @@ -165202,10 +166879,10 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { // ** when this routine is invoked, then this routine is a harmless no-op. // */ func Xsqlite3_shutdown(tls *libc.TLS) (r int32) { - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { Xsqlite3_os_end(tls) Xsqlite3_reset_auto_extension(tls) - _sqlite3Config.FisInit = 0 + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, 0) } if _sqlite3Config.FisPCacheInit != 0 { _sqlite3PcacheShutdown(tls) @@ -165253,9 +166930,9 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { ** the SQLite library is in use. Except, a few selected opcodes ** are allowed. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)<= 0 && rc < int32(libc.Uint64FromInt64(232)/libc.Uint64FromInt64(8)) && _aMsg[rc] != uintptr(0) { @@ -166405,31 +168082,31 @@ func _sqlite3ErrStr(tls *libc.TLS, rc int32) (r uintptr) { } var _aMsg = [29]uintptr{ - 0: __ccgo_ts + 23837, - 1: __ccgo_ts + 23850, - 3: __ccgo_ts + 23866, - 4: __ccgo_ts + 23891, - 5: __ccgo_ts + 23905, - 6: __ccgo_ts + 23924, - 7: __ccgo_ts + 1618, - 8: __ccgo_ts + 23949, - 9: __ccgo_ts + 23986, - 10: __ccgo_ts + 23998, - 11: __ccgo_ts + 24013, - 12: __ccgo_ts + 24046, - 13: __ccgo_ts + 24064, - 14: __ccgo_ts + 24089, - 15: __ccgo_ts + 24118, - 17: __ccgo_ts + 6021, - 18: __ccgo_ts + 5423, - 19: __ccgo_ts + 24135, - 20: __ccgo_ts + 24153, - 21: __ccgo_ts + 24171, - 23: __ccgo_ts + 24205, - 25: __ccgo_ts + 24226, - 26: __ccgo_ts + 24252, - 27: __ccgo_ts + 24275, - 28: __ccgo_ts + 24296, + 0: __ccgo_ts + 23960, + 1: __ccgo_ts + 23973, + 3: __ccgo_ts + 23989, + 4: __ccgo_ts + 24014, + 5: __ccgo_ts + 24028, + 6: __ccgo_ts + 24047, + 7: __ccgo_ts + 1632, + 8: __ccgo_ts + 24072, + 9: __ccgo_ts + 24109, + 10: __ccgo_ts + 24121, + 11: __ccgo_ts + 24136, + 12: __ccgo_ts + 24169, + 13: __ccgo_ts + 24187, + 14: __ccgo_ts + 24212, + 15: __ccgo_ts + 24241, + 17: __ccgo_ts + 6085, + 18: __ccgo_ts + 5487, + 19: __ccgo_ts + 24258, + 20: __ccgo_ts + 24276, + 21: __ccgo_ts + 24294, + 23: __ccgo_ts + 24328, + 25: __ccgo_ts + 24349, + 26: __ccgo_ts + 24375, + 27: __ccgo_ts + 24398, + 28: __ccgo_ts + 24419, } // C documentation @@ -166611,7 +168288,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if zFunctionName == uintptr(0) || xSFunc != uintptr(0) && xFinal != uintptr(0) || libc.BoolInt32(xFinal == uintptr(0)) != libc.BoolInt32(xStep == uintptr(0)) || libc.BoolInt32(xValue == uintptr(0)) != libc.BoolInt32(xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { - return _sqlite3MisuseError(tls, int32(180244)) + return _sqlite3MisuseError(tls, int32(181689)) } _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -166657,7 +168334,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i p = _sqlite3FindFunction(tls, db, zFunctionName, nArg, uint8(enc), uint8(0)) if p != 0 && (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) == uint32(enc) && int32((*TFuncDef)(unsafe.Pointer(p)).FnArg) == nArg { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24393, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24516, 0) _ = libc.Int32FromInt32(0) return int32(SQLITE_BUSY) } else { @@ -166730,6 +168407,7 @@ func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, en (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } + goto out out: ; rc = _sqlite3ApiExit(tls, db, rc) @@ -166786,7 +168464,7 @@ func _sqlite3InvalidFunction(tls *libc.TLS, context uintptr, NotUsed int32, NotU zName = Xsqlite3_user_data(tls, context) _ = NotUsed _ = NotUsed2 - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24456, libc.VaList(bp+8, zName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24579, libc.VaList(bp+8, zName)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -166817,7 +168495,7 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i if rc != 0 { return SQLITE_OK } - zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, zName)) + zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, zName)) if zCopy == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -167065,7 +168743,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in if eMode < SQLITE_CHECKPOINT_PASSIVE || eMode > int32(SQLITE_CHECKPOINT_TRUNCATE) { /* EVIDENCE-OF: R-03996-12088 The M parameter must be a valid checkpoint ** mode: */ - return _sqlite3MisuseError(tls, int32(180859)) + return _sqlite3MisuseError(tls, int32(182304)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*uint8)(unsafe.Pointer(zDb)) != 0 { @@ -167075,7 +168753,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in } if iDb < 0 { rc = int32(SQLITE_ERROR) - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24507, libc.VaList(bp+8, zDb)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24630, libc.VaList(bp+8, zDb)) } else { (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0 rc = _sqlite3Checkpoint(tls, db, iDb, eMode, pnLog, pnCkpt) @@ -167200,7 +168878,7 @@ func Xsqlite3_errmsg(tls *libc.TLS, db uintptr) (r uintptr) { return _sqlite3ErrStr(tls, int32(SQLITE_NOMEM)) } if !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(180995))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(182440))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -167333,7 +169011,7 @@ var _misuse = [34]Tu16{ // */ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181074)) + return _sqlite3MisuseError(tls, int32(182519)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -167343,7 +169021,7 @@ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { func Xsqlite3_extended_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181083)) + return _sqlite3MisuseError(tls, int32(182528)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -167393,7 +169071,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui enc2 = int32(SQLITE_UTF16LE) } if enc2 < int32(SQLITE_UTF8) || enc2 > int32(SQLITE_UTF16BE) { - return _sqlite3MisuseError(tls, int32(181131)) + return _sqlite3MisuseError(tls, int32(182576)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -167402,7 +169080,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui pColl = _sqlite3FindCollSeq(tls, db, uint8(enc2), zName, 0) if pColl != 0 && (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp != 0 { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24528, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24651, 0) return int32(SQLITE_BUSY) } _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -167563,7 +169241,7 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u zVfs = zDefaultVfs nUri = _sqlite3Strlen30(tls, zUri) _ = libc.Int32FromInt32(0) - if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24596, uint64(5)) == 0 { /* Input character index */ + if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24719, uint64(5)) == 0 { /* Input character index */ iOut = 0 /* Output character index */ nByte = uint64(nUri + int32(8)) /* Bytes of space to allocate */ /* Make sure the SQLITE_OPEN_URI flag is set to indicate to the VFS xOpen @@ -167593,8 +169271,8 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u for *(*uint8)(unsafe.Pointer(zUri + uintptr(iIn))) != 0 && int32(*(*uint8)(unsafe.Pointer(zUri + uintptr(iIn)))) != int32('/') { iIn++ } - if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24602, zUri+7, uint64(9)) != 0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24612, libc.VaList(bp+8, iIn-int32(7), zUri+7)) + if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24725, zUri+7, uint64(9)) != 0) { + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24735, libc.VaList(bp+8, iIn-int32(7), zUri+7)) rc = int32(SQLITE_ERROR) goto parse_uri_out } @@ -167684,24 +169362,24 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u nOpt = _sqlite3Strlen30(tls, zOpt) zVal = zOpt + uintptr(nOpt+int32(1)) nVal = _sqlite3Strlen30(tls, zVal) - if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24640, zOpt, uint64(3)) == 0 { + if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24763, zOpt, uint64(3)) == 0 { zVfs = zVal } else { aMode = uintptr(0) zModeType = uintptr(0) mask = 0 limit = 0 - if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24644, zOpt, uint64(5)) == 0 { + if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24767, zOpt, uint64(5)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_SHAREDCACHE) | libc.Int32FromInt32(SQLITE_OPEN_PRIVATECACHE) aMode = uintptr(unsafe.Pointer(&_aCacheMode)) limit = mask - zModeType = __ccgo_ts + 24644 + zModeType = __ccgo_ts + 24767 } - if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24665, zOpt, uint64(4)) == 0 { + if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24788, zOpt, uint64(4)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_READONLY) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_MEMORY) aMode = uintptr(unsafe.Pointer(&_aOpenMode)) limit = int32(uint32(mask) & flags) - zModeType = __ccgo_ts + 3404 + zModeType = __ccgo_ts + 3468 } if aMode != 0 { mode = 0 @@ -167730,12 +169408,12 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u i++ } if mode == 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24680, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24803, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_ERROR) goto parse_uri_out } if mode & ^libc.Int32FromInt32(SQLITE_OPEN_MEMORY) > limit { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24700, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24823, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_PERM) goto parse_uri_out } @@ -167759,9 +169437,10 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u } *(*uintptr)(unsafe.Pointer(ppVfs)) = Xsqlite3_vfs_find(tls, zVfs) if *(*uintptr)(unsafe.Pointer(ppVfs)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24724, libc.VaList(bp+8, zVfs)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24847, libc.VaList(bp+8, zVfs)) rc = int32(SQLITE_ERROR) } + goto parse_uri_out parse_uri_out: ; if rc != SQLITE_OK { @@ -167778,11 +169457,11 @@ var _aCacheMode = [3]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24650, + Fz: __ccgo_ts + 24773, Fmode: int32(SQLITE_OPEN_SHAREDCACHE), }, 1: { - Fz: __ccgo_ts + 24657, + Fz: __ccgo_ts + 24780, Fmode: int32(SQLITE_OPEN_PRIVATECACHE), }, 2: {}, @@ -167793,19 +169472,19 @@ var _aOpenMode = [5]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24670, + Fz: __ccgo_ts + 24793, Fmode: int32(SQLITE_OPEN_READONLY), }, 1: { - Fz: __ccgo_ts + 24673, + Fz: __ccgo_ts + 24796, Fmode: int32(SQLITE_OPEN_READWRITE), }, 2: { - Fz: __ccgo_ts + 24676, + Fz: __ccgo_ts + 24799, Fmode: libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE), }, 3: { - Fz: __ccgo_ts + 17764, + Fz: __ccgo_ts + 17851, Fmode: int32(SQLITE_OPEN_MEMORY), }, 4: {}, @@ -167934,8 +169613,8 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16BE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16LE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+22351, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+24740, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+22496, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+24863, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto opendb_out } @@ -167959,7 +169638,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* READWRITE */ /* READWRITE | CREATE */ if int32(1)<<(*(*uint32)(unsafe.Pointer(bp))&uint32(7))&int32(0x46) == 0 { - rc = _sqlite3MisuseError(tls, int32(181803)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(183248)) /* IMP: R-18321-05872 */ } else { rc = _sqlite3ParseUri(tls, zVfs, zFilename, bp, db, bp+8, bp+16) } @@ -167968,7 +169647,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _sqlite3OomFault(tls, db) } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { - v2 = __ccgo_ts + 3795 + v2 = __ccgo_ts + 3859 } else { v2 = uintptr(0) } @@ -167996,9 +169675,9 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* The default safety_level for the main database is FULL; for the temp ** database it is OFF. This matches the pager layer defaults. */ - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6585 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6649 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).Fsafety_level = uint8(libc.Int32FromInt32(SQLITE_DEFAULT_SYNCHRONOUS) + libc.Int32FromInt32(1)) - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 23742 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 23865 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).Fsafety_level = uint8(PAGER_SYNCHRONOUS_OFF) (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState = uint8(SQLITE_STATE_OPEN) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -168043,6 +169722,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* Enable the lookaside-malloc subsystem */ _setupLookaside(tls, db, uintptr(0), _sqlite3Config.FszLookaside, _sqlite3Config.FnLookaside) Xsqlite3_wal_autocheckpoint(tls, db, int32(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT)) + goto opendb_out opendb_out: ; if db != 0 { @@ -168093,7 +169773,7 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc } if zFilename == uintptr(0) { - zFilename = __ccgo_ts + 24746 + zFilename = __ccgo_ts + 24869 } pVal = _sqlite3ValueNew(tls, uintptr(0)) _sqlite3ValueSetStr(tls, pVal, -int32(1), zFilename, uint8(SQLITE_UTF16LE), libc.UintptrFromInt32(0)) @@ -168314,20 +169994,20 @@ func Xsqlite3_get_autocommit(tls *libc.TLS, db uintptr) (r int32) { func _sqlite3ReportError(tls *libc.TLS, iErr int32, lineno int32, zType uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) - Xsqlite3_log(tls, iErr, __ccgo_ts+24749, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) + Xsqlite3_log(tls, iErr, __ccgo_ts+24872, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) return iErr } func _sqlite3CorruptError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24774) + return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24897) } func _sqlite3MisuseError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24794) + return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24917) } func _sqlite3CantopenError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24801) + return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24924) } // C documentation @@ -168433,6 +170113,7 @@ func Xsqlite3_table_column_metadata(tls *libc.TLS, db uintptr, zDbName uintptr, if !(zCollSeq != 0) { zCollSeq = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } + goto error_out error_out: ; _sqlite3BtreeLeaveAll(tls, db) @@ -168457,11 +170138,11 @@ error_out: } if SQLITE_OK == rc && !(pTab != 0) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24818, libc.VaList(bp+16, zTableName, zColumnName)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24941, libc.VaList(bp+16, zTableName, zColumnName)) rc = int32(SQLITE_ERROR) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v3 = __ccgo_ts + 3795 + v3 = __ccgo_ts + 3859 } else { v3 = uintptr(0) } @@ -168900,7 +170581,7 @@ func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) (r int32) { */ fallthrough case int32(SQLITE_TESTCTRL_ISINIT): - if _sqlite3Config.FisInit == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 { rc = int32(SQLITE_ERROR) } break @@ -169490,7 +171171,7 @@ func Xsqlite3_compileoption_used(tls *libc.TLS, zOptName uintptr) (r int32) { var _ /* nOpt at bp+0 */ int32 _, _, _ = azCompileOpt, i, n azCompileOpt = _sqlite3CompileOptions(tls, bp) - if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24846, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24969, int32(7)) == 0 { zOptName += uintptr(7) } n = _sqlite3Strlen30(tls, zOptName) @@ -169712,7 +171393,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui _leaveMutex(tls) _ = libc.Int32FromInt32(0) if rc != 0 { - v2 = __ccgo_ts + 24854 + v2 = __ccgo_ts + 24977 } else { v2 = uintptr(0) } @@ -170595,23 +172276,23 @@ func _sqlite3ConnectionClosed(tls *libc.TLS, db uintptr) { // ** string must correspond to the JSONB_* integer above. // */ var _jsonbType = [17]uintptr{ - 0: __ccgo_ts + 1634, - 1: __ccgo_ts + 7886, - 2: __ccgo_ts + 7891, - 3: __ccgo_ts + 6306, - 4: __ccgo_ts + 6306, - 5: __ccgo_ts + 6301, - 6: __ccgo_ts + 6301, - 7: __ccgo_ts + 8197, - 8: __ccgo_ts + 8197, - 9: __ccgo_ts + 8197, - 10: __ccgo_ts + 8197, - 11: __ccgo_ts + 24877, - 12: __ccgo_ts + 24883, - 13: __ccgo_ts + 1648, - 14: __ccgo_ts + 1648, - 15: __ccgo_ts + 1648, - 16: __ccgo_ts + 1648, + 0: __ccgo_ts + 1648, + 1: __ccgo_ts + 8011, + 2: __ccgo_ts + 8016, + 3: __ccgo_ts + 6370, + 4: __ccgo_ts + 6370, + 5: __ccgo_ts + 6365, + 6: __ccgo_ts + 6365, + 7: __ccgo_ts + 8322, + 8: __ccgo_ts + 8322, + 9: __ccgo_ts + 8322, + 10: __ccgo_ts + 8322, + 11: __ccgo_ts + 25000, + 12: __ccgo_ts + 25006, + 13: __ccgo_ts + 1662, + 14: __ccgo_ts + 1662, + 15: __ccgo_ts + 1662, + 16: __ccgo_ts + 1662, } // C documentation @@ -171382,6 +173063,46 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { _jsonAppendChar(tls, p, uint8(',')) } +// C documentation +// +// /* c is a control character. Append the canonical JSON representation +// ** of that control character to p. +// ** +// ** This routine assumes that the output buffer has already been enlarged +// ** sufficiently to hold the worst-case encoding plus a nul terminator. +// */ +func _jsonAppendControlChar(tls *libc.TLS, p uintptr, c Tu8) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if _aSpecial[c] != 0 { + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = uint8('\\') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = _aSpecial[c] + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(2) + } else { + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = uint8('\\') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = uint8('u') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(2)))) = uint8('0') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(3)))) = uint8('0') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(4)))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 25013 + uintptr(int32(c)>>int32(4)))) + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(5)))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 25013 + uintptr(int32(c)&int32(0xf)))) + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(6) + } +} + +var _aSpecial = [32]uint8{ + 8: uint8('b'), + 9: uint8('t'), + 10: uint8('n'), + 12: uint8('f'), + 13: uint8('r'), +} + // C documentation // // /* Append the N-byte string in zIn to the end of the JsonString string @@ -171395,9 +173116,9 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { var c Tu8 var k Tu32 - var z, v10, v12, v14, v16, v18, v2, v20, v22, v24, v6, v8 uintptr - var v1, v11, v13, v15, v17, v19, v21, v23, v5, v7, v9 Tu64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v5, v6, v7, v8, v9 + var z, v10, v2, v4, v6, v8 uintptr + var v1, v3, v5, v7, v9 Tu64 + _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v2, v3, v4, v5, v6, v7, v8, v9 z = zIn if z == uintptr(0) { return @@ -171454,90 +173175,41 @@ func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { N -= k } c = *(*Tu8)(unsafe.Pointer(z)) - if !(int32(c) == int32('"') || int32(c) == int32('\\')) { - goto _3 - } - json_simple_escape: - ; - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { - return - } - v6 = p + 24 - v5 = *(*Tu64)(unsafe.Pointer(v6)) - *(*Tu64)(unsafe.Pointer(v6))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = uint8('\\') - v8 = p + 24 - v7 = *(*Tu64)(unsafe.Pointer(v8)) - *(*Tu64)(unsafe.Pointer(v8))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = c - goto _4 - _3: - ; - if int32(c) == int32('\'') { - v10 = p + 24 - v9 = *(*Tu64)(unsafe.Pointer(v10)) - *(*Tu64)(unsafe.Pointer(v10))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = c - } else { - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - if _aSpecial[c] != 0 { - c = _aSpecial[c] - goto json_simple_escape - } - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + if int32(c) == int32('"') || int32(c) == int32('\\') { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { return } - v12 = p + 24 - v11 = *(*Tu64)(unsafe.Pointer(v12)) - *(*Tu64)(unsafe.Pointer(v12))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v11))) = uint8('\\') - v14 = p + 24 - v13 = *(*Tu64)(unsafe.Pointer(v14)) - *(*Tu64)(unsafe.Pointer(v14))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v13))) = uint8('u') - v16 = p + 24 - v15 = *(*Tu64)(unsafe.Pointer(v16)) - *(*Tu64)(unsafe.Pointer(v16))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v15))) = uint8('0') - v18 = p + 24 - v17 = *(*Tu64)(unsafe.Pointer(v18)) - *(*Tu64)(unsafe.Pointer(v18))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v17))) = uint8('0') - v20 = p + 24 - v19 = *(*Tu64)(unsafe.Pointer(v20)) - *(*Tu64)(unsafe.Pointer(v20))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v19))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 24890 + uintptr(int32(c)>>int32(4)))) - v22 = p + 24 - v21 = *(*Tu64)(unsafe.Pointer(v22)) - *(*Tu64)(unsafe.Pointer(v22))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v21))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 24890 + uintptr(int32(c)&int32(0xf)))) + v4 = p + 24 + v3 = *(*Tu64)(unsafe.Pointer(v4)) + *(*Tu64)(unsafe.Pointer(v4))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v3))) = uint8('\\') + v6 = p + 24 + v5 = *(*Tu64)(unsafe.Pointer(v6)) + *(*Tu64)(unsafe.Pointer(v6))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = c + } else { + if int32(c) == int32('\'') { + v8 = p + 24 + v7 = *(*Tu64)(unsafe.Pointer(v8)) + *(*Tu64)(unsafe.Pointer(v8))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = c + } else { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + return + } + _jsonAppendControlChar(tls, p, c) + } } - _4: - ; z++ N-- } - v24 = p + 24 - v23 = *(*Tu64)(unsafe.Pointer(v24)) - *(*Tu64)(unsafe.Pointer(v24))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v23))) = uint8('"') + v10 = p + 24 + v9 = *(*Tu64)(unsafe.Pointer(v10)) + *(*Tu64)(unsafe.Pointer(v10))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = uint8('"') _ = libc.Int32FromInt32(0) } -var _aSpecial = [32]uint8{ - 8: uint8('b'), - 9: uint8('t'), - 10: uint8('n'), - 12: uint8('f'), - 13: uint8('r'), -} - // C documentation // // /* @@ -171553,9 +173225,9 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _, _, _, _ = n, n1, z, z1 switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_NULL): - _jsonAppendRawNZ(tls, p, __ccgo_ts+1634, uint32(4)) + _jsonAppendRawNZ(tls, p, __ccgo_ts+1648, uint32(4)) case int32(SQLITE_FLOAT): - _jsonPrintf(tls, int32(100), p, __ccgo_ts+15323, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) + _jsonPrintf(tls, int32(100), p, __ccgo_ts+15416, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) case int32(SQLITE_INTEGER): z = Xsqlite3_value_text(tls, pValue) n = uint32(Xsqlite3_value_bytes(tls, pValue)) @@ -171576,7 +173248,7 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _jsonTranslateBlobToText(tls, bp, uint32(0), p) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr) == 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24907, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25030, -int32(1)) (*TJsonString)(unsafe.Pointer(p)).FeErr = uint8(JSTRING_ERR) _jsonStringReset(tls, p) } @@ -171632,7 +173304,7 @@ func _jsonReturnString(tls *libc.TLS, p uintptr, pParse uintptr, ctx uintptr) { Xsqlite3_result_error_nomem(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr)&int32(JSTRING_MALFORMED) != 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25059, -int32(1)) } } } @@ -171880,6 +173552,7 @@ func _json5Whitespace(tls *libc.TLS, zIn uintptr) (r int32) { goto whitespace_done } } + goto whitespace_done whitespace_done: ; return n @@ -171915,8 +173588,8 @@ var _aNanInfName = [5]TNanInfName{ Fn: uint8(3), FeType: uint8(JSONB_FLOAT), FnRepl: uint8(7), - FzMatch: __ccgo_ts + 24951, - FzRepl: __ccgo_ts + 24955, + FzMatch: __ccgo_ts + 25074, + FzRepl: __ccgo_ts + 25078, }, 1: { Fc1: uint8('i'), @@ -171924,32 +173597,32 @@ var _aNanInfName = [5]TNanInfName{ Fn: uint8(8), FeType: uint8(JSONB_FLOAT), FnRepl: uint8(7), - FzMatch: __ccgo_ts + 24963, - FzRepl: __ccgo_ts + 24955, + FzMatch: __ccgo_ts + 25086, + FzRepl: __ccgo_ts + 25078, }, 2: { Fc1: uint8('n'), Fc2: uint8('N'), Fn: uint8(3), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 1639, - FzRepl: __ccgo_ts + 1634, + FzMatch: __ccgo_ts + 1653, + FzRepl: __ccgo_ts + 1648, }, 3: { Fc1: uint8('q'), Fc2: uint8('Q'), Fn: uint8(4), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 24972, - FzRepl: __ccgo_ts + 1634, + FzMatch: __ccgo_ts + 25095, + FzRepl: __ccgo_ts + 1648, }, 4: { Fc1: uint8('s'), Fc2: uint8('S'), Fn: uint8(4), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 24977, - FzRepl: __ccgo_ts + 1634, + FzMatch: __ccgo_ts + 25100, + FzRepl: __ccgo_ts + 1648, }, } @@ -171964,7 +173637,7 @@ func _jsonWrongNumArgs(tls *libc.TLS, pCtx uintptr, zFuncName uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24982, libc.VaList(bp+8, zFuncName)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25105, libc.VaList(bp+8, zFuncName)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) } @@ -172418,30 +174091,37 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept return j + uint32(1) } } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) <= int32(0x1f) { + /* Control characters in JSON5 string literals are ok */ + if int32(x) == int32(JSONB_TEXTJ) { + return j + uint32(1) + } } else { - if libc.Xstrchr(tls, __ccgo_ts+25025, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { - j++ + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { + return j + uint32(1) } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { - if j+uint32(5) >= k { - return j + uint32(1) - } - if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { - return j + uint32(1) - } + if libc.Xstrchr(tls, __ccgo_ts+25148, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { j++ } else { - if int32(x) != int32(JSONB_TEXT5) { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { + if j+uint32(5) >= k { + return j + uint32(1) + } + if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { + return j + uint32(1) + } + j++ } else { - *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) - szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) - if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + if int32(x) != int32(JSONB_TEXT5) { return j + uint32(1) + } else { + *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) + szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) + if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + return j + uint32(1) + } + j += szC - uint32(1) } - j += szC - uint32(1) } } } @@ -172539,6 +174219,7 @@ func _jsonTranslateTextToBlob(tls *libc.TLS, pParse uintptr, i Tu32) (r int32) { var _ /* op at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cDelim, iBlob, iStart, iThis, j, k, k1, nn, opcode, seenE, t, x, z, v40, v41, v43, v44, v46, v48 z = (*TJsonParse)(unsafe.Pointer(pParse)).FzJson + goto json_parse_restart json_parse_restart: ; switch int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) { @@ -172694,6 +174375,7 @@ _1: } j = (*TJsonParse)(unsafe.Pointer(pParse)).FiErr + uint32(1) } + goto parse_object_value parse_object_value: ; x = _jsonTranslateTextToBlob(tls, pParse, j) @@ -172821,6 +174503,7 @@ _3: ; /* Parse string */ opcode = uint8(JSONB_TEXT) + goto parse_string parse_string: ; cDelim = *(*uint8)(unsafe.Pointer(z + uintptr(i))) @@ -172869,9 +174552,14 @@ parse_string: } } else { if int32(c) <= int32(0x1f) { - /* Control characters are not allowed in strings */ - (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j - return -int32(1) + if int32(c) == 0 { + (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j + return -int32(1) + } + /* Control characters are not allowed in canonical JSON string + ** literals, but are allowed in JSON5 string literals. */ + opcode = uint8(JSONB_TEXT5) + (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) } else { if int32(c) == int32('"') { opcode = uint8(JSONB_TEXT5) @@ -172885,7 +174573,7 @@ parse_string: return int32(j + uint32(1)) _5: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7886, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8011, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_TRUE)) return int32(i + uint32(4)) } @@ -172893,7 +174581,7 @@ _5: return -int32(1) _6: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7891, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(5))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8016, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(5))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_FALSE)) return int32(i + uint32(5)) } @@ -172938,6 +174626,7 @@ _8: ; /* Parse number */ t = uint8(0x00) /* Bit 0x01: JSON5. Bit 0x02: FLOAT */ + goto parse_number parse_number: ; seenE = uint8(0) @@ -172973,14 +174662,14 @@ parse_number: /* JSON5 allows for "+Infinity" and "-Infinity" using exactly ** that case. SQLite also allows these in any case and it allows ** "+inf" and "-inf". */ - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+24951, int32(3)) == 0 { + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+25074, int32(3)) == 0 { (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('-') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25034) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25157) } else { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25041) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25164) } - if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25047, int32(5)) == 0 { + if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25170, int32(5)) == 0 { v48 = int32(9) } else { v48 = int32(4) @@ -173019,6 +174708,7 @@ parse_number: } } } + goto parse_number_2 parse_number_2: ; j = i + uint32(1) @@ -173077,6 +174767,7 @@ parse_number_2: return -int32(1) } } + goto parse_number_finish parse_number_finish: ; _ = libc.Int32FromInt32(0) @@ -173142,11 +174833,10 @@ _29: return -int32(1) _37: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1634, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1648, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) return int32(i + uint32(4)) } - /* fall-through into the default case that checks for NaN */ _38: ; c = *(*uint8)(unsafe.Pointer(z + uintptr(i))) @@ -173166,7 +174856,7 @@ _38: goto _51 } if int32(_aNanInfName[k1].FeType) == int32(JSONB_FLOAT) { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25041) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25164) } else { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) } @@ -173211,7 +174901,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 i += _json5Whitespace(tls, zJson+uintptr(i)) if *(*uint8)(unsafe.Pointer(zJson + uintptr(i))) != 0 { if pCtx != 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25059, -int32(1)) } _jsonParseReset(tls, pParse) return int32(1) @@ -173224,7 +174914,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 if (*TJsonParse)(unsafe.Pointer(pParse)).Foom != 0 { Xsqlite3_result_error_nomem(tls, pCtx) } else { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25059, -int32(1)) } } _jsonParseReset(tls, pParse) @@ -173389,15 +175079,15 @@ func _jsonTranslateBlobToText(tls *libc.TLS, pParse uintptr, i Tu32, pOut uintpt goto _16 _2: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1634, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1648, uint32(4)) return i + uint32(1) _3: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7886, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8011, uint32(4)) return i + uint32(1) _4: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7891, uint32(5)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8016, uint32(5)) return i + uint32(1) _6: ; @@ -173446,9 +175136,9 @@ _7: k++ } if bOverflow != 0 { - v19 = __ccgo_ts + 24955 + v19 = __ccgo_ts + 25078 } else { - v19 = __ccgo_ts + 11753 + v19 = __ccgo_ts + 11878 } _jsonPrintf(tls, int32(100), pOut, v19, libc.VaList(bp+16, u)) goto _16 @@ -173496,7 +175186,7 @@ _11: for sz2 > uint32(0) { k2 = uint32(0) for { - if !(k2 < sz2 && int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('\\') && int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('"')) { + if !(k2 < sz2 && (_jsonIsOk[*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))] != 0 || int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) == int32('\''))) { break } goto _21 @@ -173513,7 +175203,16 @@ _11: sz2 -= k2 } if int32(*(*uint8)(unsafe.Pointer(zIn2))) == int32('"') { - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25053, uint32(2)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25176, uint32(2)) + zIn2++ + sz2-- + continue + } + if int32(*(*uint8)(unsafe.Pointer(zIn2))) <= int32(0x1f) { + if (*TJsonString)(unsafe.Pointer(pOut)).FnUsed+uint64(7) > (*TJsonString)(unsafe.Pointer(pOut)).FnAlloc && _jsonStringGrow(tls, pOut, uint32(7)) != 0 { + break + } + _jsonAppendControlChar(tls, pOut, *(*uint8)(unsafe.Pointer(zIn2))) zIn2++ sz2-- continue @@ -173529,7 +175228,7 @@ _11: case int32('\''): _jsonAppendChar(tls, pOut, uint8('\'')) case int32('v'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25056, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25179, uint32(6)) case int32('x'): if sz2 < uint32(4) { p23 = pOut + 33 @@ -173537,12 +175236,12 @@ _11: sz2 = uint32(2) break } - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25063, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25186, uint32(4)) _jsonAppendRawNZ(tls, pOut, zIn2+2, uint32(2)) zIn2 += uintptr(2) sz2 -= uint32(2) case int32('0'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25068, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25191, uint32(6)) case int32('\r'): if sz2 > uint32(2) && int32(*(*uint8)(unsafe.Pointer(zIn2 + 2))) == int32('\n') { zIn2++ @@ -173621,6 +175320,7 @@ _14: goto _16 _15: ; + goto malformed_jsonb malformed_jsonb: ; p29 = pOut + 33 @@ -173631,6 +175331,140 @@ _16: return i + n + *(*Tu32)(unsafe.Pointer(bp)) } +// C documentation +// +// /* Context for recursion of json_pretty() +// */ +type TJsonPretty = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty = TJsonPretty + +type TJsonPretty1 = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty1 = TJsonPretty1 + +// C documentation +// +// /* Append indentation to the pretty JSON under construction */ +func _jsonPrettyIndent(tls *libc.TLS, pPretty uintptr) { + var jj Tu32 + _ = jj + jj = uint32(0) + for { + if !(jj < (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent) { + break + } + _jsonAppendRaw(tls, (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut, (*TJsonPretty)(unsafe.Pointer(pPretty)).FzIndent, (*TJsonPretty)(unsafe.Pointer(pPretty)).FszIndent) + goto _1 + _1: + ; + jj++ + } +} + +// C documentation +// +// /* +// ** Translate the binary JSONB representation of JSON beginning at +// ** pParse->aBlob[i] into a JSON text string. Append the JSON +// ** text onto the end of pOut. Return the index in pParse->aBlob[] +// ** of the first byte past the end of the element that is translated. +// ** +// ** This is a variant of jsonTranslateBlobToText() that "pretty-prints" +// ** the output. Extra whitespace is inserted to make the JSON easier +// ** for humans to read. +// ** +// ** If an error is detected in the BLOB input, the pOut->eErr flag +// ** might get set to JSTRING_MALFORMED. But not all BLOB input errors +// ** are detected. So a malformed JSONB input might either result +// ** in an error, or in incorrect JSON. +// ** +// ** The pOut->eErr JSTRING_OOM flag is set on a OOM. +// */ +func _jsonTranslateBlobToPrettyText(tls *libc.TLS, pPretty uintptr, i Tu32) (r Tu32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var iEnd, j, n Tu32 + var pOut, pParse, p1, p2 uintptr + var _ /* sz at bp+0 */ Tu32 + _, _, _, _, _, _, _ = iEnd, j, n, pOut, pParse, p1, p2 + pParse = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpParse + pOut = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut + n = _jsonbPayloadSize(tls, pParse, i, bp) + if n == uint32(0) { + p1 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + return (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob + uint32(1) + } + switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { + case int32(JSONB_ARRAY): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, uint8('[')) + if j < iEnd { + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25198, uint32(2)) + } + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, uint8(']')) + i = iEnd + case int32(JSONB_OBJECT): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, uint8('{')) + if j < iEnd { + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToText(tls, pParse, j, pOut) + if j > iEnd { + p2 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p2)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p2))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25201, uint32(2)) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25198, uint32(2)) + } + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, uint8('}')) + i = iEnd + default: + i = _jsonTranslateBlobToText(tls, pParse, i, pOut) + break + } + return i +} + // C documentation // // /* Return true if the input pJson @@ -174358,7 +176192,7 @@ func _jsonReturnFromBlob(tls *libc.TLS, pParse uintptr, i Tu32, pCtx uintptr, te db = Xsqlite3_context_db_handle(tls, pCtx) n = _jsonbPayloadSize(tls, pParse, i, bp) if n == uint32(0) { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25059, -int32(1)) return } switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { @@ -174467,6 +176301,7 @@ _6: if *(*Tu32)(unsafe.Pointer(bp)) == uint32(0) { goto returnfromblob_malformed } + goto to_double to_double: ; z1 = _sqlite3DbStrNDup(tls, db, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(i+n), uint64(int32(*(*Tu32)(unsafe.Pointer(bp))))) @@ -174589,13 +176424,15 @@ _14: _15: ; return + goto returnfromblob_oom returnfromblob_oom: ; Xsqlite3_result_error_nomem(tls, pCtx) return + goto returnfromblob_malformed returnfromblob_malformed: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25059, -int32(1)) return } @@ -174636,7 +176473,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob = Xsqlite3_value_blob(tls, pArg) (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob = uint32(Xsqlite3_value_bytes(tls, pArg)) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24907, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25030, -int32(1)) return int32(1) } case int32(SQLITE_TEXT): @@ -174649,7 +176486,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FzJson = zJson (*TJsonParse)(unsafe.Pointer(pParse)).FnJson = nJson if _jsonConvertTextToBlob(tls, pParse, ctx) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) _sqlite3DbFree(tls, (*TJsonParse)(unsafe.Pointer(pParse)).Fdb, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob) libc.Xmemset(tls, pParse, 0, uint64(72)) return int32(1) @@ -174668,10 +176505,10 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin return int32(1) } if int32(*(*uint8)(unsafe.Pointer(z))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25041) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25164) } else { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('-') && int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25034) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25157) } else { _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(n), z) } @@ -174710,7 +176547,7 @@ func _jsonBadPathError(tls *libc.TLS, ctx uintptr, zPath uintptr) (r uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25075, libc.VaList(bp+8, zPath)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25204, libc.VaList(bp+8, zPath)) if ctx == uintptr(0) { return zMsg } @@ -174803,11 +176640,12 @@ func _jsonInsertIntoBlob(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr, e _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto jsonInsertIntoBlob_patherror jsonInsertIntoBlob_patherror: ; _jsonParseFree(tls, p) if rc == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } else { _jsonBadPathError(tls, ctx, zPath) } @@ -174892,6 +176730,7 @@ func _jsonParseFuncArg(tls *libc.TLS, ctx uintptr, pArg uintptr, flgs Tu32) (r u } } db = Xsqlite3_context_db_handle(tls, ctx) + goto rebuild_from_cache rebuild_from_cache: ; p = _sqlite3DbMallocZero(tls, db, uint64(72)) @@ -174982,6 +176821,7 @@ rebuild_from_cache: } } return p + goto json_pfa_malformed json_pfa_malformed: ; if flgs&uint32(JSON_KEEPERROR) != 0 { @@ -174989,9 +176829,10 @@ json_pfa_malformed: return p } else { _jsonParseFree(tls, p) - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) return uintptr(0) } + goto json_pfa_oom json_pfa_oom: ; _jsonParseFree(tls, pFromCache) @@ -175123,7 +176964,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if int32(*(*uint8)(unsafe.Pointer(zPath))) == int32('$') { v1 = zPath + uintptr(1) } else { - v1 = __ccgo_ts + 25093 + v1 = __ccgo_ts + 25222 } i = _jsonLookupStep(tls, p, uint32(0), v1, uint32(0)) if i >= uint32(JSON_LOOKUP_PATHERROR) { @@ -175133,7 +176974,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } } eErr = uint8(1) @@ -175151,25 +176992,6 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) _jsonParseFree(tls, p) } -// C documentation -// -// /* True if the string is all digits */ -func _jsonAllDigits(tls *libc.TLS, z uintptr, n int32) (r int32) { - var i int32 - _ = i - i = 0 - for { - if !(i < n && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _1 - _1: - ; - i++ - } - return libc.BoolInt32(i == n) -} - // C documentation // // /* True if the string is all alphanumerics and underscores */ @@ -175256,21 +177078,21 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { ** [NUMBER] ==> $[NUMBER] // Not PG. Purely for convenience */ _jsonStringInit(tls, bp, ctx) - if _jsonAllDigits(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25095, uint32(1)) + if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) == int32(SQLITE_INTEGER) { + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25224, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+5161, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+5225, uint32(2)) } else { if _jsonAllAlphanum(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1661, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1675, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { if int32(*(*uint8)(unsafe.Pointer(zPath))) == int32('[') && nPath >= int32(3) && int32(*(*uint8)(unsafe.Pointer(zPath + uintptr(nPath-int32(1))))) == int32(']') { _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25097, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25226, uint32(2)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25100, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25229, uint32(1)) } } } @@ -175307,11 +177129,11 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { goto json_extract_error /* Return NULL if not found */ } else { _jsonAppendSeparator(tls, bp) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1634, uint32(4)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1648, uint32(4)) } } else { if j == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) goto json_extract_error } else { _jsonBadPathError(tls, ctx, zPath) @@ -175331,6 +177153,7 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } } + goto json_extract_error json_extract_error: ; _jsonStringReset(tls, bp) @@ -175581,7 +177404,7 @@ func _jsonPatchFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == int32(JSON_MERGE_OOM) { Xsqlite3_result_error_nomem(tls, ctx) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } } _jsonParseFree(tls, pPatch) @@ -175605,7 +177428,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { var _ /* jx at bp+0 */ TJsonString _, _, _ = i, n, z if argc&int32(1) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25102, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25231, -int32(1)) return } _jsonStringInit(tls, bp, ctx) @@ -175616,7 +177439,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { break } if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) != int32(SQLITE_TEXT) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25153, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25282, -int32(1)) _jsonStringReset(tls, bp) return } @@ -175688,7 +177511,7 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } } goto json_remove_done @@ -175701,9 +177524,11 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto json_remove_patherror json_remove_patherror: ; _jsonBadPathError(tls, ctx, zPath) + goto json_remove_done json_remove_done: ; _jsonParseFree(tls, p) @@ -175723,7 +177548,7 @@ func _jsonReplaceFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { return } if argc&int32(1) == 0 { - _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15796) + _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15889) return } _jsonInsertIntoBlob(tls, ctx, argc, argv, int32(JEDIT_REPL)) @@ -175754,9 +177579,9 @@ func _jsonSetFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { } if argc&int32(1) == 0 { if bIsSet != 0 { - v1 = __ccgo_ts + 25187 + v1 = __ccgo_ts + 25316 } else { - v1 = __ccgo_ts + 25191 + v1 = __ccgo_ts + 25320 } _jsonWrongNumArgs(tls, ctx, v1) return @@ -175804,7 +177629,7 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24936, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25059, -int32(1)) } } goto json_type_done @@ -175813,11 +177638,54 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { i = uint32(0) } Xsqlite3_result_text(tls, ctx, _jsonbType[int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(p)).FaBlob + uintptr(i))))&int32(0x0f)], -int32(1), libc.UintptrFromInt32(0)) + goto json_type_done json_type_done: ; _jsonParseFree(tls, p) } +// C documentation +// +// /* +// ** json_pretty(JSON) +// ** json_pretty(JSON, INDENT) +// ** +// ** Return text that is a pretty-printed rendering of the input JSON. +// ** If the argument is not valid JSON, return NULL. +// ** +// ** The INDENT argument is text that is used for indentation. If omitted, +// ** it defaults to four spaces (the same as PostgreSQL). +// */ +func _jsonPrettyFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { + bp := tls.Alloc(176) + defer tls.Free(176) + var v1 uintptr + var v2 bool + var _ /* s at bp+0 */ TJsonString + var _ /* x at bp+136 */ TJsonPretty + _, _ = v1, v2 /* Pretty printing context */ + libc.Xmemset(tls, bp+136, 0, uint64(32)) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse = _jsonParseFuncArg(tls, ctx, *(*uintptr)(unsafe.Pointer(argv)), uint32(0)) + if (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse == uintptr(0) { + return + } + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpOut = bp + _jsonStringInit(tls, bp, ctx) + if v2 = argc == int32(1); !v2 { + v1 = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = v1 + } + if v2 || v1 == uintptr(0) { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = __ccgo_ts + 25327 + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(4) + } else { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(libc.Xstrlen(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent)) + } + _jsonTranslateBlobToPrettyText(tls, bp+136, uint32(0)) + _jsonReturnString(tls, bp, uintptr(0), uintptr(0)) + _jsonParseFree(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse) +} + // C documentation // // /* @@ -175892,7 +177760,7 @@ func _jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if argc == int32(2) { f = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if f < int64(1) || f > int64(15) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25198, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25332, -int32(1)) return } flags = uint8(f & int64(0x0f)) @@ -176082,7 +177950,7 @@ func _jsonArrayCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25255, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25389, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -176231,7 +178099,7 @@ func _jsonObjectCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25258, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25392, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -176334,7 +178202,7 @@ func _jsonEachConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv _ = argv _ = argc _ = pAux - rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25261) + rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25395) if rc == SQLITE_OK { pNew = _sqlite3DbMallocZero(tls, db, uint64(32)) *(*uintptr)(unsafe.Pointer(ppVtab)) = pNew @@ -176470,7 +178338,7 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TJsonEachCursor)(unsafe.Pointer(p)).FeType) == int32(JSONB_ARRAY) { - _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25344, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) + _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25478, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) } else { *(*Tu32)(unsafe.Pointer(bp)) = uint32(0) needQuote = 0 @@ -176496,9 +178364,9 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { } } if needQuote != 0 { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25351, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25485, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } else { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25359, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25493, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } } } @@ -176888,7 +178756,7 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a i = v5 (*TJsonEachCursor)(unsafe.Pointer(p)).FeType = uint8(0) (*TJsonEachCursor)(unsafe.Pointer(p)).FnRoot = uint32(1) - _jsonAppendRaw(tls, p+56, __ccgo_ts+25365, uint32(1)) + _jsonAppendRaw(tls, p+56, __ccgo_ts+25499, uint32(1)) } (*TJsonEachCursor)(unsafe.Pointer(p)).FnParent = uint32(0) n = _jsonbPayloadSize(tls, p+192, i, bp) @@ -176908,10 +178776,11 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent))).FiValue = i } return SQLITE_OK + goto json_each_malformed_input json_each_malformed_input: ; Xsqlite3_free(tls, (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg) - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24936, 0) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25059, 0) _jsonEachCursorReset(tls, p) if (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg != 0 { v6 = int32(SQLITE_ERROR) @@ -176965,183 +178834,193 @@ func init() { // ** Register JSON functions. // */ func _sqlite3RegisterJsonFunctions(tls *libc.TLS) { - _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2304)/libc.Uint64FromInt64(72))) + _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2448)/libc.Uint64FromInt64(72))) } -var _aJsonFunc = [32]TFuncDef{ +var _aJsonFunc = [34]TFuncDef{ 0: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25367, + FzName: __ccgo_ts + 25501, }, 1: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25372, + FzName: __ccgo_ts + 25506, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25378, + FzName: __ccgo_ts + 25512, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25389, + FzName: __ccgo_ts + 25523, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25401, + FzName: __ccgo_ts + 25535, }, 5: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25401, + FzName: __ccgo_ts + 25535, }, 6: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25419, + FzName: __ccgo_ts + 25553, }, 7: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25439, + FzName: __ccgo_ts + 25573, }, 8: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25452, + FzName: __ccgo_ts + 25586, }, 9: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_JSON) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25466, + FzName: __ccgo_ts + 25600, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_SQL) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25469, + FzName: __ccgo_ts + 25603, }, 11: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25473, + FzName: __ccgo_ts + 25607, }, 12: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25485, + FzName: __ccgo_ts + 25619, }, 13: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25498, + FzName: __ccgo_ts + 25632, }, 14: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25510, + FzName: __ccgo_ts + 25644, }, 15: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25523, + FzName: __ccgo_ts + 25657, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25534, + FzName: __ccgo_ts + 25668, }, 17: { FnArg: int8(1), - FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25546, + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25680, }, 18: { + FnArg: int8(2), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25680, + }, + 19: { + FnArg: int8(1), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25692, + }, + 20: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25557, + FzName: __ccgo_ts + 25703, }, - 19: { + 21: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25569, + FzName: __ccgo_ts + 25715, }, - 20: { + 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25582, + FzName: __ccgo_ts + 25728, }, - 21: { + 23: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25595, + FzName: __ccgo_ts + 25741, }, - 22: { + 24: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25609, + FzName: __ccgo_ts + 25755, }, - 23: { + 25: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25618, + FzName: __ccgo_ts + 25764, }, - 24: { + 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25628, + FzName: __ccgo_ts + 25774, }, - 25: { + 27: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25628, + FzName: __ccgo_ts + 25774, }, - 26: { + 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25638, + FzName: __ccgo_ts + 25784, }, - 27: { + 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25638, + FzName: __ccgo_ts + 25784, }, - 28: { + 30: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25649, + FzName: __ccgo_ts + 25795, }, - 29: { + 31: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25666, + FzName: __ccgo_ts + 25812, }, - 30: { + 32: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25684, + FzName: __ccgo_ts + 25830, }, - 31: { + 33: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25702, + FzName: __ccgo_ts + 25848, }, } @@ -177164,33 +179043,35 @@ func init() { *(*uintptr)(unsafe.Add(p, 1032)) = __ccgo_fp(_jsonObjectFunc) *(*uintptr)(unsafe.Add(p, 1104)) = __ccgo_fp(_jsonPatchFunc) *(*uintptr)(unsafe.Add(p, 1176)) = __ccgo_fp(_jsonPatchFunc) - *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonQuoteFunc) - *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2048)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2056)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2064)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2120)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2128)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2136)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonQuoteFunc) + *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2208)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2280)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2328)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2336)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2344)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2352)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2400)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2408)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2416)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2424)) = __ccgo_fp(_jsonGroupInverse) } // C documentation @@ -177222,11 +179103,11 @@ var _aMod = [2]struct { FpModule uintptr }{ 0: { - FzName: __ccgo_ts + 25721, + FzName: __ccgo_ts + 25867, FpModule: uintptr(unsafe.Pointer(&_jsonEachModule)), }, 1: { - FzName: __ccgo_ts + 25731, + FzName: __ccgo_ts + 25877, FpModule: uintptr(unsafe.Pointer(&_jsonTreeModule)), }, } @@ -177879,7 +179760,7 @@ func _nodeAcquire(tls *libc.TLS, pRtree uintptr, iNode Ti64, pParent uintptr, pp } } if (*TRtree)(unsafe.Pointer(pRtree)).FpNodeBlob == uintptr(0) { - rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25741, iNode, 0, pRtree+112) + rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25887, iNode, 0, pRtree+112) } if rc != 0 { *(*uintptr)(unsafe.Pointer(ppNode)) = uintptr(0) @@ -178191,7 +180072,7 @@ func _rtreeDestroy(tls *libc.TLS, pVtab uintptr) (r int32) { var rc int32 _, _, _ = pRtree, rc, zCreate pRtree = pVtab - zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25746, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25892, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if !(zCreate != 0) { rc = int32(SQLITE_NOMEM) } else { @@ -179125,7 +181006,7 @@ func _findLeafNode(tls *libc.TLS, pRtree uintptr, iRowid Ti64, ppLeaf uintptr, p func _deserializeGeometry(tls *libc.TLS, pValue uintptr, pCons uintptr) (r int32) { var pBlob, pInfo, pSrc uintptr _, _, _ = pBlob, pInfo, pSrc /* Callback information */ - pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25828) + pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25974) if pSrc == uintptr(0) { return int32(SQLITE_ERROR) } @@ -179180,7 +181061,7 @@ func _rtreeFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintp iRowid = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) *(*Ti64)(unsafe.Pointer(bp + 24)) = 0 eType = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv))) - if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv))) == float64(iRowid) { + if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && 0 == _sqlite3IntFloatCompare(tls, iRowid, Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))) { rc = _findLeafNode(tls, pRtree, iRowid, bp+16, bp+24) } else { rc = SQLITE_OK @@ -180235,6 +182116,7 @@ func _SplitNode(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iHe rc = _nodeRelease(tls, pRtree, pLeft) pLeft = uintptr(0) } + goto splitnode_out splitnode_out: ; _nodeRelease(tls, pRtree, pRight) @@ -180668,7 +182550,7 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) _, _, _, _, _, _ = rc, zCol, zCol1, zCol2, zSql, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) _ = libc.Int32FromInt32(0) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25842, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25988, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if zSql != 0 { rc = Xsqlite3_prepare_v2(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, -int32(1), bp, uintptr(0)) } else { @@ -180678,11 +182560,11 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) if rc == SQLITE_OK { if iCol == 0 { zCol = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25862, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26008, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) } else { zCol1 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol) zCol2 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol+int32(1)) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25894, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26040, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) } } Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -180845,6 +182727,7 @@ func _rtreeUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pRow rc = Xsqlite3_reset(tls, pUp) } } + goto constraint constraint: ; _rtreeRelease(tls, pRtree) @@ -180860,6 +182743,7 @@ func _rtreeBeginTransaction(tls *libc.TLS, pVtab uintptr) (r int32) { var pRtree uintptr _ = pRtree pRtree = pVtab + _ = libc.Int32FromInt32(0) (*TRtree)(unsafe.Pointer(pRtree)).FinWrTrans = uint8(1) return SQLITE_OK } @@ -180896,7 +182780,7 @@ func _rtreeRename(tls *libc.TLS, pVtab uintptr, zNewName uintptr) (r int32) { _, _, _ = pRtree, rc, zSql pRtree = pVtab rc = int32(SQLITE_NOMEM) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25931, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26077, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) if zSql != 0 { _nodeBlobReset(tls, pRtree) rc = Xsqlite3_exec(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, uintptr(0), uintptr(0), uintptr(0)) @@ -180950,9 +182834,9 @@ func _rtreeQueryStat1(tls *libc.TLS, db uintptr, pRtree uintptr) (r int32) { var v2 int64 var _ /* p at bp+0 */ uintptr _, _, _, _, _, _ = nRow, rc, zFmt, zSql, v1, v2 - zFmt = __ccgo_ts + 26076 + zFmt = __ccgo_ts + 26222 nRow = int64(RTREE_MIN_ROWEST) - rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11582, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11707, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc != SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FnRowEst = int64(RTREE_DEFAULT_ROWEST) if rc == int32(SQLITE_ERROR) { @@ -181010,9 +182894,9 @@ func _rtreeShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName1 = [3]uintptr{ - 0: __ccgo_ts + 26132, - 1: __ccgo_ts + 5484, - 2: __ccgo_ts + 16694, + 0: __ccgo_ts + 26278, + 1: __ccgo_ts + 5548, + 2: __ccgo_ts + 16781, } var _rtreeModule = Tsqlite3_module{ @@ -181056,21 +182940,21 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref (*TRtree)(unsafe.Pointer(pRtree)).Fdb = db if isCreate != 0 { p = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26546, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26692, libc.VaList(bp+8, zDb, zPrefix)) ii = 0 for { if !(ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26608, libc.VaList(bp+8, ii)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26754, libc.VaList(bp+8, ii)) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26613, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26677, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26747, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26759, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26823, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26893, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) zCreate = Xsqlite3_str_finish(tls, p) if !(zCreate != 0) { return int32(SQLITE_NOMEM) @@ -181100,7 +182984,7 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } else { /* An UPSERT is very slightly slower than REPLACE, but it is needed ** if there are auxiliary columns */ - zFormat = __ccgo_ts + 26796 + zFormat = __ccgo_ts + 26942 } zSql = Xsqlite3_mprintf(tls, zFormat, libc.VaList(bp+8, zDb, zPrefix)) if zSql != 0 { @@ -181115,31 +182999,31 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref i++ } if (*TRtree)(unsafe.Pointer(pRtree)).FnAux != 0 && rc != int32(SQLITE_NOMEM) { - (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+26904, libc.VaList(bp+8, zDb, zPrefix)) + (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+27050, libc.VaList(bp+8, zDb, zPrefix)) if (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { p1 = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26949, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27095, libc.VaList(bp+8, zDb, zPrefix)) ii1 = 0 for { if !(ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } if ii1 != 0 { - Xsqlite3_str_append(tls, p1, __ccgo_ts+13090, int32(1)) + Xsqlite3_str_append(tls, p1, __ccgo_ts+13215, int32(1)) } if ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull) { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26976, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27122, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) } else { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26998, libc.VaList(bp+8, ii1, ii1+int32(2))) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27144, libc.VaList(bp+8, ii1, ii1+int32(2))) } goto _3 _3: ; ii1++ } - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27006, 0) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27152, 0) zSql1 = Xsqlite3_str_finish(tls, p1) if zSql1 == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -181153,14 +183037,14 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } var _azSql = [8]uintptr{ - 0: __ccgo_ts + 26137, - 1: __ccgo_ts + 26190, - 2: __ccgo_ts + 26235, - 3: __ccgo_ts + 26287, - 4: __ccgo_ts + 26341, - 5: __ccgo_ts + 26386, - 6: __ccgo_ts + 26444, - 7: __ccgo_ts + 26499, + 0: __ccgo_ts + 26283, + 1: __ccgo_ts + 26336, + 2: __ccgo_ts + 26381, + 3: __ccgo_ts + 26433, + 4: __ccgo_ts + 26487, + 5: __ccgo_ts + 26532, + 6: __ccgo_ts + 26590, + 7: __ccgo_ts + 26645, } // C documentation @@ -181218,7 +183102,7 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE _, _ = rc, zSql if isCreate != 0 { *(*int32)(unsafe.Pointer(bp)) = 0 - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27022, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27168, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) rc = _getIntFromStmt(tls, db, zSql, bp) if rc == SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = *(*int32)(unsafe.Pointer(bp)) - int32(64) @@ -181226,17 +183110,17 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = int32(4) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*int32(RTREE_MAXCELLS) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } } else { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27042, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27188, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) rc = _getIntFromStmt(tls, db, zSql, pRtree+32) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } else { if (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize < libc.Int32FromInt32(512)-libc.Int32FromInt32(64) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< libc.Int32FromInt32(RTREE_MAX_AUX_COLUMN)+libc.Int32FromInt32(3) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) return int32(SQLITE_ERROR) } Xsqlite3_vtab_config(tls, db, int32(SQLITE_VTAB_CONSTRAINT_SUPPORT), libc.VaList(bp+8, int32(1))) @@ -181313,13 +183197,13 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27285, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27431, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27291, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27437, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) ii = int32(4) for { if !(ii < argc) { @@ -181328,7 +183212,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt zArg = *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)) if int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('+') { (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27315, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27461, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) } else { if int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux) > 0 { break @@ -181342,19 +183226,19 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27342, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27488, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) } else { if ii < argc { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, aErrMsg[int32(4)])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, aErrMsg[int32(4)])) rc = int32(SQLITE_ERROR) } else { v3 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v3 if SQLITE_OK != v3 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } } @@ -181377,7 +183261,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } } if iErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, aErrMsg[iErr])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, aErrMsg[iErr])) goto rtreeInit_fail } (*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell = uint8(int32(8) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)*int32(4)) @@ -181388,11 +183272,12 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto rtreeInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto rtreeInit_fail rtreeInit_fail: ; if rc == SQLITE_OK { @@ -181405,8 +183290,8 @@ rtreeInit_fail: } var _azFormat = [2]uintptr{ - 0: __ccgo_ts + 27321, - 1: __ccgo_ts + 27332, + 0: __ccgo_ts + 27467, + 1: __ccgo_ts + 27478, } // C documentation @@ -181464,21 +183349,21 @@ func _rtreenode(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { } _nodeGetCell(tls, bp+40, bp, ii, bp+1008) if ii > 0 { - Xsqlite3_str_append(tls, pOut, __ccgo_ts+11202, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+11327, int32(1)) } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27345, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27491, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) jj = 0 for { if !(jj < int32((*(*TRtree)(unsafe.Pointer(bp + 40))).FnDim2)) { break } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27351, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27497, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) goto _2 _2: ; jj++ } - Xsqlite3_str_append(tls, pOut, __ccgo_ts+27355, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+27501, int32(1)) goto _1 _1: ; @@ -181505,7 +183390,7 @@ func _rtreedepth(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { _ = zBlob _ = nArg if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apArg))) != int32(SQLITE_BLOB) || Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(apArg))) < int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+27357, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+27503, -int32(1)) } else { zBlob = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(apArg))) if zBlob != 0 { @@ -181623,11 +183508,11 @@ func _rtreeCheckAppendMsg(tls *libc.TLS, pCheck uintptr, zFmt uintptr, va uintpt (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } else { if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport != 0 { - v1 = __ccgo_ts + 4203 + v1 = __ccgo_ts + 4267 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27390, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27536, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport == uintptr(0) { (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } @@ -181661,7 +183546,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt _, _, _ = nNode, pNode, pRet pRet = uintptr(0) /* Return value */ if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode == uintptr(0) { - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27397, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27543, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) } if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { Xsqlite3_bind_int64(tls, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, int32(1), iNode) @@ -181678,7 +183563,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt } _rtreeCheckReset(tls, pCheck, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && pRet == uintptr(0) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27442, libc.VaList(bp+8, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27588, libc.VaList(bp+8, iNode)) } } return pRet @@ -181707,8 +183592,8 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i var rc int32 _, _, _, _, _, _ = azSql, ii, pStmt, rc, v1, v2 azSql = [2]uintptr{ - 0: __ccgo_ts + 27474, - 1: __ccgo_ts + 27528, + 0: __ccgo_ts + 27620, + 1: __ccgo_ts + 27674, } _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) == uintptr(0) { @@ -181722,21 +183607,21 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i rc = Xsqlite3_step(tls, pStmt) if rc == int32(SQLITE_DONE) { if bLeaf != 0 { - v1 = __ccgo_ts + 27576 + v1 = __ccgo_ts + 27722 } else { - v1 = __ccgo_ts + 27584 + v1 = __ccgo_ts + 27730 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27593, libc.VaList(bp+8, iKey, iVal, v1)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27739, libc.VaList(bp+8, iKey, iVal, v1)) } else { if rc == int32(SQLITE_ROW) { ii = Xsqlite3_column_int64(tls, pStmt, 0) if ii != iVal { if bLeaf != 0 { - v2 = __ccgo_ts + 27576 + v2 = __ccgo_ts + 27722 } else { - v2 = __ccgo_ts + 27584 + v2 = __ccgo_ts + 27730 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27638, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27784, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) } } } @@ -181781,7 +183666,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 v2 = libc.BoolInt32(*(*TRtreeValue)(unsafe.Pointer(bp)) > *(*TRtreeValue)(unsafe.Pointer(bp + 4))) } if v2 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27696, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27842, libc.VaList(bp+24, i, iCell, iNode)) } if pParent != 0 { _readCoord(tls, pParent+uintptr(libc.Int32FromInt32(4)*libc.Int32FromInt32(2)*i), bp+8) @@ -181799,7 +183684,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 } } if v5 || v4 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27744, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27890, libc.VaList(bp+24, i, iCell, iNode)) } } goto _1 @@ -181834,19 +183719,19 @@ func _rtreeCheckNode(tls *libc.TLS, pCheck uintptr, iDepth int32, aParent uintpt aNode = _rtreeCheckGetNode(tls, pCheck, iNode, bp) if aNode != 0 { if *(*int32)(unsafe.Pointer(bp)) < int32(4) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27811, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27957, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) } else { /* Used to iterate through cells */ if aParent == uintptr(0) { iDepth = _readInt16(tls, aNode) if iDepth > int32(RTREE_MAX_DEPTH) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27845, libc.VaList(bp+16, iDepth)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27991, libc.VaList(bp+16, iDepth)) Xsqlite3_free(tls, aNode) return } } nCell = _readInt16(tls, aNode+2) if int32(4)+nCell*(int32(8)+(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnDim*int32(2)*int32(4)) > *(*int32)(unsafe.Pointer(bp)) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27875, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28021, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) } else { i = 0 for { @@ -181891,12 +183776,12 @@ func _rtreeCheckCount(tls *libc.TLS, pCheck uintptr, zTbl uintptr, nExpect Ti64) var pCount uintptr _, _ = nActual, pCount if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { - pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27930, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) + pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+28076, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) if pCount != 0 { if Xsqlite3_step(tls, pCount) == int32(SQLITE_ROW) { nActual = Xsqlite3_column_int64(tls, pCount, 0) if nActual != nExpect { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27961, libc.VaList(bp+8, zTbl, nExpect, nActual)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28107, libc.VaList(bp+8, zTbl, nExpect, nActual)) } } (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = Xsqlite3_finalize(tls, pCount) @@ -181925,7 +183810,7 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzDb = zDb (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzTab = zTab /* Find the number of auxiliary columns */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28028, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28174, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { nAux = Xsqlite3_column_count(tls, pStmt) - int32(2) Xsqlite3_finalize(tls, pStmt) @@ -181935,11 +183820,11 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe } } /* Find number of dimensions in the rtree table. */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25842, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25988, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim = (Xsqlite3_column_count(tls, pStmt) - int32(1) - nAux) / int32(2) if (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim < int32(1) { - _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28056, 0) + _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28202, 0) } else { if int32(SQLITE_ROW) == Xsqlite3_step(tls, pStmt) { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FbInt = libc.BoolInt32(Xsqlite3_column_type(tls, pStmt, int32(1)) == int32(SQLITE_INTEGER)) @@ -181955,8 +183840,8 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe if (*(*TRtreeCheck)(unsafe.Pointer(bp))).Frc == SQLITE_OK { _rtreeCheckNode(tls, bp, 0, uintptr(0), int64(1)) } - _rtreeCheckCount(tls, bp, __ccgo_ts+28087, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) - _rtreeCheckCount(tls, bp, __ccgo_ts+28094, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28233, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28240, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) } /* Finalize SQL statements used by the integrity-check */ Xsqlite3_finalize(tls, (*(*TRtreeCheck)(unsafe.Pointer(bp))).FpGetNode) @@ -181984,7 +183869,7 @@ func _rtreeIntegrity(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zName uintpt _ = isQuick rc = _rtreeCheckTable(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, pzErr) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28102, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28248, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) if *(*uintptr)(unsafe.Pointer(pzErr)) == uintptr(0) { rc = int32(SQLITE_NOMEM) } @@ -182035,13 +183920,13 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { var _ /* zReport at bp+0 */ uintptr _, _, _, _ = rc, zDb, zTab, v1 if nArg != int32(1) && nArg != int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+28121, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+28267, -int32(1)) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zDb = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg))) if nArg == int32(1) { zTab = zDb - zDb = __ccgo_ts + 6585 + zDb = __ccgo_ts + 6649 } else { zTab = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8))) } @@ -182050,7 +183935,7 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(bp)) } else { - v1 = __ccgo_ts + 18461 + v1 = __ccgo_ts + 18548 } Xsqlite3_result_text(tls, ctx, v1, -int32(1), uintptr(-libc.Int32FromInt32(1))) } else { @@ -182383,6 +184268,7 @@ func _geopolyParseJson(tls *libc.TLS, z uintptr, pRc uintptr) (r uintptr) { rc = int32(SQLITE_ERROR) } } + goto parse_json_err parse_json_err: ; if pRc != 0 { @@ -182516,19 +184402,19 @@ func _geopolyJsonFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if p != 0 { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) - Xsqlite3_str_append(tls, x, __ccgo_ts+25095, int32(1)) + Xsqlite3_str_append(tls, x, __ccgo_ts+25224, int32(1)) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28172, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28318, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28183, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28329, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -182557,20 +184443,20 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) cSep = uint8('\'') - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28194, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28340, 0) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28212, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28358, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) cSep = uint8(' ') goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28220, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28366, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) i = int32(1) for { if !(i < argc) { @@ -182578,14 +184464,14 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if z != 0 && *(*uint8)(unsafe.Pointer(z)) != 0 { - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28228, libc.VaList(bp+8, z)) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28374, libc.VaList(bp+8, z)) } goto _2 _2: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28232, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28378, 0) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -182891,6 +184777,7 @@ func _geopolyBBox(tls *libc.TLS, context uintptr, pPoly uintptr, aCoord uintptr, if !(aCoord == uintptr(0)) { goto _6 } + goto geopolyBboxFill geopolyBboxFill: ; pOut = Xsqlite3_realloc64(tls, p, libc.Uint64FromInt64(40)+libc.Uint64FromInt64(4)*libc.Uint64FromInt32(2)*uint64(libc.Int32FromInt32(4)-libc.Int32FromInt32(4))) @@ -182994,8 +184881,8 @@ func _geopolyBBoxStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if pBBox == uintptr(0) { return } - if (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit == 0 { - (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit = int32(1) + if libc.AtomicLoadPInt32(pBBox) == 0 { + libc.AtomicStorePInt32(pBBox, int32(1)) libc.Xmemcpy(tls, pBBox+4, bp, libc.Uint64FromInt64(4)*libc.Uint64FromInt32(4)) } else { if *(*TRtreeValue)(unsafe.Pointer(bp)) < *(*TRtreeValue)(unsafe.Pointer(pBBox + 4)) { @@ -183622,6 +185509,7 @@ func _geopolyOverlap(tls *libc.TLS, p1 uintptr, p2 uintptr) (r int32) { } } } + goto geopolyOverlapDone geopolyOverlapDone: ; Xsqlite3_free(tls, p) @@ -183713,13 +185601,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27285, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27431, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28245, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28391, 0) (*TRtree)(unsafe.Pointer(pRtree)).FnAux = uint8(1) /* Add one for _shape */ (*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull = uint8(1) /* The _shape column is always not-null */ ii = int32(3) @@ -183728,13 +185616,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint break } (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28267, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28413, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27342, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27488, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) @@ -183742,7 +185630,7 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint v2 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v2 if SQLITE_OK != v2 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } Xsqlite3_free(tls, zSql) @@ -183757,11 +185645,12 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto geopolyInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto geopolyInit_fail geopolyInit_fail: ; if rc == SQLITE_OK { @@ -183915,6 +185804,7 @@ func _geopolyFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uin *(*int32)(unsafe.Pointer(bp + 8)) = _rtreeStepToLeaf(tls, pCsr) } } + goto geopoly_filter_end geopoly_filter_end: ; _nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp))) @@ -183972,7 +185862,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iRowidTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(1) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16694 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16781 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).Fomit = uint8(1) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(30) @@ -183982,7 +185872,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iFuncTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = idxNum - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28271 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28417 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).Fomit = uint8(0) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(300) @@ -183990,7 +185880,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { return SQLITE_OK } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(4) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28277 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28423 (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(3e+06) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(100000) return SQLITE_OK @@ -184112,7 +186002,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR _geopolyBBox(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(aData + 2*8)), bp+8+8, bp) if *(*int32)(unsafe.Pointer(bp)) != 0 { if *(*int32)(unsafe.Pointer(bp)) == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28286, 0) + (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28432, 0) } goto geopoly_update_end } @@ -184200,6 +186090,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, pUp) } } + goto geopoly_update_end geopoly_update_end: ; _rtreeRelease(tls, pRtree) @@ -184215,12 +186106,12 @@ geopoly_update_end: func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28326) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28472) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28342) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28488) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) @@ -184291,7 +186182,7 @@ func _sqlite3_geopoly_init(tls *libc.TLS, db uintptr) (r int32) { i++ } if rc == SQLITE_OK { - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28519, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28665, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) } return rc } @@ -184305,61 +186196,61 @@ var _aFunc = [12]struct { 0: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28357, + FzName: __ccgo_ts + 28503, }, 1: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28370, + FzName: __ccgo_ts + 28516, }, 2: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28383, + FzName: __ccgo_ts + 28529, }, 3: { FnArg: int8(-int32(1)), FbPure: uint8(1), - FzName: __ccgo_ts + 28396, + FzName: __ccgo_ts + 28542, }, 4: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28342, + FzName: __ccgo_ts + 28488, }, 5: { FnArg: int8(3), FbPure: uint8(1), - FzName: __ccgo_ts + 28408, + FzName: __ccgo_ts + 28554, }, 6: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28326, + FzName: __ccgo_ts + 28472, }, 7: { FnArg: int8(1), - FzName: __ccgo_ts + 28431, + FzName: __ccgo_ts + 28577, }, 8: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28445, + FzName: __ccgo_ts + 28591, }, 9: { FnArg: int8(7), FbPure: uint8(1), - FzName: __ccgo_ts + 28458, + FzName: __ccgo_ts + 28604, }, 10: { FnArg: int8(4), FbPure: uint8(1), - FzName: __ccgo_ts + 28472, + FzName: __ccgo_ts + 28618, }, 11: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28488, + FzName: __ccgo_ts + 28634, }, } @@ -184385,7 +186276,7 @@ var _aAgg = [1]struct { FzName uintptr }{ 0: { - FzName: __ccgo_ts + 28500, + FzName: __ccgo_ts + 28646, }, } @@ -184410,20 +186301,20 @@ func _sqlite3RtreeInit(tls *libc.TLS, db uintptr) (r int32) { var rc, utf8 int32 _, _, _, _ = c, c1, rc, utf8 utf8 = int32(SQLITE_UTF8) - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28527, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28673, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28537, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28683, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28548, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28694, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { c = libc.UintptrFromInt32(RTREE_COORD_REAL32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28271, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28417, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) } if rc == SQLITE_OK { c1 = libc.UintptrFromInt32(RTREE_COORD_INT32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28559, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28705, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) } if rc == SQLITE_OK { rc = _sqlite3_geopoly_init(tls, db) @@ -184525,7 +186416,7 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { Xsqlite3_result_error_nomem(tls, ctx) _rtreeMatchArgFree(tls, pBlob) } else { - Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25828, __ccgo_fp(_rtreeMatchArgFree)) + Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25974, __ccgo_fp(_rtreeMatchArgFree)) } } } @@ -185743,7 +187634,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt /* Figure out the size of the output */ nOut = _rbuDeltaOutputSize(tls, aDelta, nDelta) if nOut < 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+28569, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28715, -int32(1)) return } aOut = Xsqlite3_malloc(tls, nOut+int32(1)) @@ -185753,7 +187644,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt nOut2 = _rbuDeltaApply(tls, aOrig, nOrig, aDelta, nDelta, aOut) if nOut2 != nOut { Xsqlite3_free(tls, aOut) - Xsqlite3_result_error(tls, context, __ccgo_ts+28569, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28715, -int32(1)) } else { Xsqlite3_result_blob(tls, context, aOut, nOut, __ccgo_fp(Xsqlite3_free)) } @@ -185779,7 +187670,7 @@ func _prepareAndCollectError(tls *libc.TLS, db uintptr, ppStmt uintptr, pzErrmsg _ = rc rc = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), ppStmt, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) } return rc @@ -185802,7 +187693,7 @@ func _resetAndCollectError(tls *libc.TLS, pStmt uintptr, pzErrmsg uintptr) (r in _ = rc rc = Xsqlite3_reset(tls, pStmt) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) } return rc } @@ -185935,7 +187826,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { /* Free any SQLite statements used while processing the previous object */ _rbuObjIterClearStatements(tls, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28590, uintptr(0), uintptr(0), p+64) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28736, uintptr(0), uintptr(0), p+64) } if rc == SQLITE_OK { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 { @@ -185945,6 +187836,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { if rc != int32(SQLITE_ROW) { rc = _resetAndCollectError(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, p+64) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = uintptr(0) + (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = uintptr(0) } else { (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, 0) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, int32(1)) @@ -186025,7 +187917,7 @@ func _rbuTargetNameFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { Xsqlite3_result_text(tls, pCtx, zIn, -int32(1), libc.UintptrFromInt32(0)) } } else { - if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25741, zIn, uint64(4)) == 0 { + if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25887, zIn, uint64(4)) == 0 { i = int32(4) for { if !(int32(*(*uint8)(unsafe.Pointer(zIn + uintptr(i)))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(zIn + uintptr(i)))) <= int32('9')) { @@ -186062,13 +187954,13 @@ func _rbuObjIterFirst(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { _, _ = rc, v1 libc.Xmemset(tls, pIter, 0, uint64(192)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 28761 + v1 = __ccgo_ts + 28907 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+28802, libc.VaList(bp+8, v1))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+28948, libc.VaList(bp+8, v1))) if rc == SQLITE_OK { - rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+28952) + rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+29098) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup = int32(1) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -186236,7 +188128,7 @@ func _rbuFinalize(tls *libc.TLS, p uintptr, pStmt uintptr) { rc = Xsqlite3_finalize(tls, pStmt) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && rc != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } @@ -186298,7 +188190,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu *(*int32)(unsafe.Pointer(peType)) = RBU_PK_NOTABLE *(*int32)(unsafe.Pointer(piPk)) = 0 _ = libc.Int32FromInt32(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29077, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29223, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK || Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0]) != int32(SQLITE_ROW) { /* Either an error, or no such table. */ goto rbuTableType_end @@ -186308,7 +188200,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } *(*int32)(unsafe.Pointer(piTnum)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0], int32(1)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29196, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29342, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { goto rbuTableType_end } @@ -186316,7 +188208,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu zOrig = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(3)) zIdx = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(1)) if zOrig != 0 && zIdx != 0 && int32(*(*Tu8)(unsafe.Pointer(zOrig))) == int32('p') { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29217, libc.VaList(bp+40, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29363, libc.VaList(bp+40, zIdx))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)]) == int32(SQLITE_ROW) { *(*int32)(unsafe.Pointer(piPk)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)], 0) @@ -186328,7 +188220,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29268, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29414, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { for Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)]) == int32(SQLITE_ROW) { if Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)], int32(5)) > 0 { @@ -186338,6 +188230,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu } *(*int32)(unsafe.Pointer(peType)) = int32(RBU_PK_NONE) } + goto rbuTableType_end rbuTableType_end: ; i = uint32(0) @@ -186371,7 +188264,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { bIndex = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { libc.Xmemcpy(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk, uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29289, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29435, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FnIndex = 0 for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -186384,7 +188277,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { if bPartial != 0 { libc.Xmemset(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, int32(0x01), uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+24, zIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) if iCid >= 0 { @@ -186438,7 +188331,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 _rbuTableType(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, pIter+72, bp+8, pIter+108) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NOTABLE { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+19904, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+20036, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc @@ -186450,7 +188343,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 /* Populate the azTblCol[] and nTblCol variables based on the columns ** of the input table. Ignore any input table columns that begin with ** "rbu_". */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29346, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29492, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { nCol = Xsqlite3_column_count(tls, *(*uintptr)(unsafe.Pointer(bp))) _rbuAllocateIterArrays(tls, p, pIter, nCol) @@ -186461,7 +188354,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 break } zName = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), i) - if Xsqlite3_strnicmp(tls, __ccgo_ts+29365, zName, int32(4)) != 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+29511, zName, int32(4)) != 0 { zCopy = _rbuStrndup(tls, zName, p+56) *(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)*4)) = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol v3 = pIter + 16 @@ -186469,7 +188362,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 *(*int32)(unsafe.Pointer(v3))++ *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(v2)*8)) = zCopy } else { - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29370, zName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29516, zName) { bRbuRowid = int32(1) } } @@ -186483,17 +188376,17 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && bRbuRowid != libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) if bRbuRowid != 0 { - v4 = __ccgo_ts + 29380 + v4 = __ccgo_ts + 29526 } else { - v4 = __ccgo_ts + 29393 + v4 = __ccgo_ts + 29539 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29402, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29548, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) } /* Check that all non-HIDDEN columns in the destination table are also ** present in the input table. Populate the abTblPk[], azTblType[] and ** aiTblOrder[] arrays at the same time. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29431, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29577, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zName1 = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -186515,7 +188408,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 } if i == (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29453, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29599, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) } else { iPk = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) bNotNull = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) @@ -186557,15 +188450,15 @@ func _rbuObjIterGetCollist(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) var z, zList, zSep uintptr _, _, _, _ = i, z, zList, zSep zList = uintptr(0) - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } z = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+29480, libc.VaList(bp+8, zList, zSep, z)) - zSep = __ccgo_ts + 14990 + zList = _rbuMPrintf(tls, p, __ccgo_ts+29626, libc.VaList(bp+8, zList, zSep, z)) + zSep = __ccgo_ts + 15083 goto _1 _1: ; @@ -186590,7 +188483,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, _, _, _, _, _ = i, iPk, zCol, zRet, zSep iPk = int32(1) zRet = uintptr(0) - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 for int32(1) != 0 { i = 0 for { @@ -186599,7 +188492,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, } if int32(*(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == iPk { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29489, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29635, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) zSep = zSeparator break } @@ -186647,21 +188540,21 @@ func _rbuVacuumTableStart(tls *libc.TLS, p uintptr, pIter uintptr, bRowid int32, *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zRet = uintptr(0) if bRowid != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29502, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29648, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iMax = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29534, libc.VaList(bp+16, iMax)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29680, libc.VaList(bp+16, iMax)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1648, __ccgo_ts+14990, __ccgo_ts+29557) - zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29563, __ccgo_ts+29570, __ccgo_ts+5106) - zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1648, __ccgo_ts+14990, __ccgo_ts+1648) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1662, __ccgo_ts+15083, __ccgo_ts+29703) + zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29709, __ccgo_ts+29716, __ccgo_ts+5170) + zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1662, __ccgo_ts+15083, __ccgo_ts+1662) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29578, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29724, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zVal = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29620, libc.VaList(bp+16, zList, zVal)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29766, libc.VaList(bp+16, zList, zVal)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } @@ -186710,10 +188603,10 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { zVector = uintptr(0) zRet = uintptr(0) bFailed = 0 - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 iCol = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(4)) @@ -186736,15 +188629,15 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _ = libc.Int32FromInt32(0) zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { - zCol = __ccgo_ts + 29640 + zCol = __ccgo_ts + 29786 } } else { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) } - zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29648, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29669, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) - zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29705, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) - zSep = __ccgo_ts + 14990 + zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29794, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29815, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) + zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29851, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) + zSep = __ccgo_ts + 15083 iCol++ } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) @@ -186753,9 +188646,9 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29732, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29878, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 iCol = 0 for { if !(iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol) { @@ -186770,19 +188663,20 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { break } } - zVector = _rbuMPrintf(tls, p, __ccgo_ts+29780, libc.VaList(bp+24, zVector, zSep, zQuoted)) - zSep = __ccgo_ts + 14990 + zVector = _rbuMPrintf(tls, p, __ccgo_ts+29926, libc.VaList(bp+24, zVector, zSep, zQuoted)) + zSep = __ccgo_ts + 15083 goto _2 _2: ; iCol++ } if !(bFailed != 0) { - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29787, libc.VaList(bp+24, zLhs, zVector)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29933, libc.VaList(bp+24, zLhs, zVector)) } } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } + goto index_start_out index_start_out: ; Xsqlite3_free(tls, zOrder) @@ -186831,12 +188725,12 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zImpPK = uintptr(0) /* String to return via *pzImposterPK */ zWhere = uintptr(0) /* String to return via *pzWhere */ nBind = 0 /* Value to return via *pnBind */ - zCom = __ccgo_ts + 1648 /* Set to ", " later on */ - zAnd = __ccgo_ts + 1648 /* Set to " AND " later on */ + zCom = __ccgo_ts + 1662 /* Set to ", " later on */ + zAnd = __ccgo_ts + 1662 /* Set to " AND " later on */ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_xinfo = ? */ if rc == SQLITE_OK { _ = libc.Int32FromInt32(0) - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -186845,8 +188739,8 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = uintptr(0) if iCid == -int32(2) { iSeq = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29799, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) - zType = __ccgo_ts + 1648 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29945, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) + zType = __ccgo_ts + 1662 } else { if iCid < 0 { /* An integer primary key. If the table has an explicit IPK, use @@ -186866,9 +188760,9 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - zCol = __ccgo_ts + 29640 + zCol = __ccgo_ts + 29786 } else { - zCol = __ccgo_ts + 29370 + zCol = __ccgo_ts + 29516 } } zType = __ccgo_ts + 1136 @@ -186876,24 +188770,24 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) zType = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)) } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29821, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29967, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) } if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbUnique == 0 || Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) != 0 { if bDesc != 0 { - v2 = __ccgo_ts + 29557 + v2 = __ccgo_ts + 29703 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } zOrder = v2 - zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29841, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) + zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29987, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) } - zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+29862, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) - zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+29895, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) + zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+30008, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) + zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+30041, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) if zRet == uintptr(0) || zImpPK == uintptr(0) || zImpCols == uintptr(0) || zWhere == uintptr(0) { rc = int32(SQLITE_NOMEM) } - zCom = __ccgo_ts + 14990 - zAnd = __ccgo_ts + 22013 + zCom = __ccgo_ts + 15083 + zAnd = __ccgo_ts + 22158 nBind++ } rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -186939,7 +188833,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr _, _, _, _ = i, zCol, zList, zS zList = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zS = __ccgo_ts + 1648 + zS = __ccgo_ts + 1662 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -186947,11 +188841,11 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed + uintptr(i))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29919, libc.VaList(bp+8, zList, zS, zObj, zCol)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30065, libc.VaList(bp+8, zList, zS, zObj, zCol)) } else { - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29931, libc.VaList(bp+8, zList, zS)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30077, libc.VaList(bp+8, zList, zS)) } - zS = __ccgo_ts + 14990 + zS = __ccgo_ts + 15083 if zList == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) break @@ -186963,7 +188857,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } /* For a table with implicit rowids, append "old._rowid_" to the list. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29940, libc.VaList(bp+8, zList, zObj)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30086, libc.VaList(bp+8, zList, zObj)) } } return zList @@ -186989,27 +188883,27 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _ = i, i1, zCol, zList, zSep, zSep1 zList = uintptr(0) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29955, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30101, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29969, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) - zSep = __ccgo_ts + 22013 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30115, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) + zSep = __ccgo_ts + 22158 } goto _1 _1: ; i++ } - zList = _rbuMPrintf(tls, p, __ccgo_ts+29981, libc.VaList(bp+8, zList)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30127, libc.VaList(bp+8, zList)) } else { - zSep1 = __ccgo_ts + 1648 + zSep1 = __ccgo_ts + 1662 i1 = 0 for { if !(i1 < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -187017,8 +188911,8 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i1))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i1)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+30031, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) - zSep1 = __ccgo_ts + 22013 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30177, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) + zSep1 = __ccgo_ts + 22158 } goto _2 _2: @@ -187041,7 +188935,7 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { // */ func _rbuBadControlError(tls *libc.TLS, p uintptr) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30044, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30190, 0) } // C documentation @@ -187075,7 +188969,7 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt if int32(libc.Xstrlen(tls, zMask)) != (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { _rbuBadControlError(tls, p) } else { - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -187083,16 +188977,16 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt } c = *(*uint8)(unsafe.Pointer(zMask + uintptr(*(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(i)*4))))) if int32(c) == int32('x') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30031, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14990 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30177, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15083 } else { if int32(c) == int32('d') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30070, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14990 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30216, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15083 } else { if int32(c) == int32('f') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30100, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14990 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30246, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15083 } } } @@ -187177,16 +189071,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { z = uintptr(0) _ = libc.Int32FromInt32(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zSep = __ccgo_ts + 30137 + zSep = __ccgo_ts + 30283 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_list = (pIter->zTbl) */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA index_xinfo = */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29289, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29435, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zOrig = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) - if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16582) == 0 { + if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16669) == 0 { zIdx = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+24, zIdx))) } break } @@ -187197,16 +189091,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { /* int iCid = sqlite3_column_int(pXInfo, 0); */ zCol = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(2)) if Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) != 0 { - v1 = __ccgo_ts + 29557 + v1 = __ccgo_ts + 29703 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } zDesc = v1 - z = _rbuMPrintf(tls, p, __ccgo_ts+30150, libc.VaList(bp+24, z, zSep, zCol, zDesc)) - zSep = __ccgo_ts + 14990 + z = _rbuMPrintf(tls, p, __ccgo_ts+30296, libc.VaList(bp+24, z, zSep, zCol, zDesc)) + zSep = __ccgo_ts + 15083 } } - z = _rbuMPrintf(tls, p, __ccgo_ts+30161, libc.VaList(bp+24, z)) + z = _rbuMPrintf(tls, p, __ccgo_ts+30307, libc.VaList(bp+24, z)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } return z @@ -187246,13 +189140,13 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* SELECT name ... WHERE rootpage = $tnum */ zIdx = uintptr(0) /* Name of PK index */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA main.index_xinfo = $zIdx */ - zComma = __ccgo_ts + 1648 + zComma = __ccgo_ts + 1662 zCols = uintptr(0) /* Used to build up list of table cols */ zPk = uintptr(0) /* Used to build up table PK declaration */ /* Figure out the name of the primary key index for the current table. ** This is needed for the argument to "PRAGMA index_xinfo". Set ** zIdx to point to a nul-terminated string containing this name. */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30165) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30311) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), tnum) if int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -187260,7 +189154,7 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { } } if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29317, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29463, libc.VaList(bp+24, zIdx))) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { @@ -187269,21 +189163,21 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) bDesc = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(4)) - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30215, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30361, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) if bDesc != 0 { - v1 = __ccgo_ts + 29557 + v1 = __ccgo_ts + 29703 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - zPk = _rbuMPrintf(tls, p, __ccgo_ts+30237, libc.VaList(bp+24, zPk, zComma, iCid, v1)) - zComma = __ccgo_ts + 14990 + zPk = _rbuMPrintf(tls, p, __ccgo_ts+30383, libc.VaList(bp+24, zPk, zComma, iCid, v1)) + zComma = __ccgo_ts + 15083 } } - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30247, libc.VaList(bp+24, zCols)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30393, libc.VaList(bp+24, zCols)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30262, libc.VaList(bp+24, zCols, zPk)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30408, libc.VaList(bp+24, zCols, zPk)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, 0)) } } @@ -187318,30 +189212,30 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { _, _, _, _, _, _, _, _, _ = iCol, tnum, zCol, zComma, zPk, zPk1, zSql, v2, v3 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { tnum = (*TRbuObjIter)(unsafe.Pointer(pIter)).FiTnum - zComma = __ccgo_ts + 1648 + zComma = __ccgo_ts + 1662 zSql = uintptr(0) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, int32(1))) iCol = 0 for { if !((*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } - zPk = __ccgo_ts + 1648 + zPk = __ccgo_ts + 1662 zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCol)*8)) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_IPK) && *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(iCol))) != 0 { /* If the target table column is an "INTEGER PRIMARY KEY", add ** "PRIMARY KEY" to the imposter table column declaration. */ - zPk = __ccgo_ts + 30324 + zPk = __ccgo_ts + 30470 } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iCol))) != 0 { - v2 = __ccgo_ts + 30337 + v2 = __ccgo_ts + 30483 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30347, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) - zComma = __ccgo_ts + 14990 + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30493, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) + zComma = __ccgo_ts + 15083 goto _1 _1: ; @@ -187350,17 +189244,17 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { zPk1 = _rbuWithoutRowidPK(tls, p, pIter) if zPk1 != 0 { - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30374, libc.VaList(bp+16, zSql, zPk1)) + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30520, libc.VaList(bp+16, zSql, zPk1)) } } - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(1), tnum)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(1), tnum)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { - v3 = __ccgo_ts + 30381 + v3 = __ccgo_ts + 30527 } else { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30396, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, 0)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30542, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, 0)) } } @@ -187387,7 +189281,7 @@ func _rbuObjIterPrepareTmpInsert(tls *libc.TLS, p uintptr, pIter uintptr, zColli zBind = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1)+bRbuRowid) if zBind != 0 { _ = libc.Int32FromInt32(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30428, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30574, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) } } @@ -187435,7 +189329,7 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt zRet = uintptr(0) _ = libc.Int32FromInt32(0) if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30485) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30631) } if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3_bind_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx, -int32(1), libc.UintptrFromInt32(0)) @@ -187606,7 +189500,7 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zIdx = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx zLimit = uintptr(0) if nOffset != 0 { - zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30551, libc.VaList(bp+40, nOffset)) + zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30697, libc.VaList(bp+40, nOffset)) if !(zLimit != 0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } @@ -187624,18 +189518,18 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zCollist = _rbuObjIterGetIndexCols(tls, p, pIter, bp, bp+8, bp+16, bp+24) zBind = _rbuObjIterGetBindlist(tls, p, *(*int32)(unsafe.Pointer(bp + 24))) /* Create the imposter table used to write to this index. */ - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, int32(1))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30571, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30717, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, 0, 0)) /* Create the statement to insert index entries */ (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = *(*int32)(unsafe.Pointer(bp + 24)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30636, libc.VaList(bp+40, zTbl, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30782, libc.VaList(bp+40, zTbl, zBind))) } /* And to delete index entries */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30672, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30818, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) } /* Create the SELECT statement to read keys in sorted order */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -187650,26 +189544,26 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } if zStart != 0 { if zPart != 0 { - v2 = __ccgo_ts + 30706 + v2 = __ccgo_ts + 30852 } else { - v2 = __ccgo_ts + 30710 + v2 = __ccgo_ts + 30856 } v1 = v2 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30716, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30862, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) Xsqlite3_free(tls, zStart) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30777, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30923, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) } else { if zPart != 0 { - v3 = __ccgo_ts + 30706 + v3 = __ccgo_ts + 30852 } else { - v3 = __ccgo_ts + 30710 + v3 = __ccgo_ts + 30856 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30838, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30984, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -187688,62 +189582,62 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zTbl1 = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl /* Imposter table name */ zBindings = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+bRbuRowid) zWhere1 = _rbuObjIterGetWhere(tls, p, pIter) - zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6596) - zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6592) + zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6660) + zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6656) zCollist = _rbuObjIterGetCollist(tls, p, pIter) (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol /* Create the imposter table or tables (if required). */ _rbuCreateImposterTable(tls, p, pIter) _rbuCreateImposterTable2(tls, p, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) { - v4 = __ccgo_ts + 1648 + v4 = __ccgo_ts + 1662 } else { - v4 = __ccgo_ts + 30997 + v4 = __ccgo_ts + 31143 } zWrite = v4 /* Create the INSERT statement to write to the target PK b-tree */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if bRbuRowid != 0 { - v5 = __ccgo_ts + 31006 + v5 = __ccgo_ts + 31152 } else { - v5 = __ccgo_ts + 1648 + v5 = __ccgo_ts + 1662 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31016, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31162, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) } /* Create the DELETE statement to write to the target PK b-tree. ** Because it only performs INSERT operations, this is not required for ** an rbu vacuum handle. */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31052, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31198, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) } if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zRbuRowid = __ccgo_ts + 1648 + zRbuRowid = __ccgo_ts + 1662 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zRbuRowid = __ccgo_ts + 31080 + zRbuRowid = __ccgo_ts + 31226 } /* Create the rbu_tmp_xxx table and the triggers to populate it. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - v6 = __ccgo_ts + 31092 + v6 = __ccgo_ts + 31238 } else { - v6 = __ccgo_ts + 1648 + v6 = __ccgo_ts + 1662 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31109, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31185, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31255, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31331, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31484, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31630, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) } _rbuObjIterPrepareTmpInsert(tls, p, pIter, zCollist, zRbuRowid) } /* Create the SELECT statement to read keys from data_xxx */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zRbuRowid1 = __ccgo_ts + 1648 + zRbuRowid1 = __ccgo_ts + 1662 zStart1 = uintptr(0) zOrder = uintptr(0) if bRbuRowid != 0 { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v7 = __ccgo_ts + 31583 + v7 = __ccgo_ts + 31729 } else { - v7 = __ccgo_ts + 31593 + v7 = __ccgo_ts + 31739 } zRbuRowid1 = v7 } @@ -187756,28 +189650,28 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } } if bRbuRowid != 0 { - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29640, 0) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29786, 0) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1648, __ccgo_ts+14990, __ccgo_ts+1648) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1662, __ccgo_ts+15083, __ccgo_ts+1662) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v8 = __ccgo_ts + 31604 + v8 = __ccgo_ts + 31750 } else { - v8 = __ccgo_ts + 1648 + v8 = __ccgo_ts + 1662 } if zStart1 != 0 { v9 = zStart1 } else { - v9 = __ccgo_ts + 1648 + v9 = __ccgo_ts + 1662 } if zOrder != 0 { - v10 = __ccgo_ts + 23207 + v10 = __ccgo_ts + 23352 } else { - v10 = __ccgo_ts + 1648 + v10 = __ccgo_ts + 1662 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31610, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31756, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) } Xsqlite3_free(tls, zStart1) Xsqlite3_free(tls, zOrder) @@ -187864,11 +189758,11 @@ func _rbuGetUpdateStmt(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintptr, p (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpNext = (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate = pUp if zSet != 0 { - zPrefix = __ccgo_ts + 1648 + zPrefix = __ccgo_ts + 1662 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { - zPrefix = __ccgo_ts + 30997 + zPrefix = __ccgo_ts + 31143 } - zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31658, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) + zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31804, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pUp+8, p+64, zUpdate) *(*uintptr)(unsafe.Pointer(ppStmt)) = (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate } @@ -187895,7 +189789,7 @@ func _rbuOpenDbhandle(tls *libc.TLS, p uintptr, zName uintptr, bUseVfs int32) (r } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_open_v2(tls, zName, bp, flags, v1) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) Xsqlite3_close(tls, *(*uintptr)(unsafe.Pointer(bp))) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) } @@ -187942,7 +189836,7 @@ func _rbuLoadState(tls *libc.TLS, p uintptr) (r uintptr) { if pRet == uintptr(0) { return uintptr(0) } - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31688, libc.VaList(bp+24, p+48))) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31834, libc.VaList(bp+24, p+48))) for *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { switch Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) { case int32(RBU_STATE_STAGE): @@ -188004,27 +189898,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu = _rbuOpenDbhandle(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, int32(1)) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain = dbMain if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6585, int32(SQLITE_FCNTL_RBUCNT), p) + Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6649, int32(SQLITE_FCNTL_RBUCNT), p) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState == uintptr(0) { - zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6585) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31718, libc.VaList(bp+8, zFile, zFile)) + zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6649) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31864, libc.VaList(bp+8, zFile, zFile)) } } /* If using separate RBU and state databases, attach the state database to ** the RBU db handle now. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState != 0 { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31746, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) - libc.Xmemcpy(tls, p+48, __ccgo_ts+3418, uint64(4)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31892, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+3482, uint64(4)) } else { - libc.Xmemcpy(tls, p+48, __ccgo_ts+6585, uint64(4)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+6649, uint64(4)) } /* If it has not already been created, create the rbu_state table */ - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31764, libc.VaList(bp+8, p+48)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31910, libc.VaList(bp+8, p+48)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { bOpen = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FnRbu = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FpRbuFd = uintptr(0) - rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6585, int32(SQLITE_FCNTL_RBUCNT), p) + rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6649, int32(SQLITE_FCNTL_RBUCNT), p) if rc != int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc } @@ -188057,10 +189951,10 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) return } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31830, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31976, 0) } else { zExtra = uintptr(0) - if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24596, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { + if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24719, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { zExtra = (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu + 5 for *(*uint8)(unsafe.Pointer(zExtra)) != 0 { v1 = zExtra @@ -188074,16 +189968,16 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if zExtra == uintptr(0) { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } else { - v2 = __ccgo_ts + 31862 + v2 = __ccgo_ts + 32008 } if zExtra == uintptr(0) { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } else { v3 = zExtra } - zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+31864, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6585), v2, v3)) + zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+32010, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6649), v2, v3)) if zTarget == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) return @@ -188094,27 +189988,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31896, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32042, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31911, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32057, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31928, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32074, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(SQLITE_FCNTL_RBU), p) } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31944, 0) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32090, 0) /* Mark the database file just opened as an RBU target database. If ** this call returns SQLITE_NOTFOUND, then the RBU vfs is not in use. ** This is an error. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6585, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6649, int32(SQLITE_FCNTL_RBU), p) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31972, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32118, 0) } } @@ -188164,7 +190058,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxShmMap})))(tls, pDb, 0, libc.Int32FromInt32(32)*libc.Int32FromInt32(1024), 0, bp) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - iRet = int64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))<= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+32972, zState+uintptr(n-int32(7)), uint64(7)) { + if n >= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+33118, zState+uintptr(n-int32(7)), uint64(7)) { return _rbuMisuseError(tls) } } @@ -189406,7 +191300,7 @@ func _rbuEditErrmsg(tls *libc.TLS, p uintptr) { if !(uint64(i) < nErrmsg-uint64(8)) { break } - if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+30997, uint64(8)) == 0 { + if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31143, uint64(8)) == 0 { nDel = int32(8) for int32(*(*uint8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) <= int32('9') { nDel++ @@ -189434,7 +191328,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { if p != 0 { /* Commit the transaction to the *-oal file. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14894, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14987, uintptr(0), uintptr(0), p+64) } /* Sync the db file if currently doing an incremental checkpoint */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { @@ -189443,7 +191337,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { } _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14894, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14987, uintptr(0), uintptr(0), p+64) } /* Close any open statement handles. */ _rbuObjIterFinalize(tls, p+80) @@ -189453,7 +191347,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { ** specifying the current target and state databases to start a new ** vacuum from scratch. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu != 0 { - rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32980, uintptr(0), uintptr(0), uintptr(0)) + rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33126, uintptr(0), uintptr(0), uintptr(0)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_DONE) && rc2 != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc2 } @@ -189568,7 +191462,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14894, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14987, uintptr(0), uintptr(0), uintptr(0)) } } /* Sync the db file */ @@ -189582,19 +191476,19 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14894, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14987, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 14879 + v1 = __ccgo_ts + 14972 } else { - v1 = __ccgo_ts + 32932 + v1 = __ccgo_ts + 33078 } zBegin = v1 rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, zBegin, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32932, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33078, uintptr(0), uintptr(0), uintptr(0)) } } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -190168,7 +192062,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r rc = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xControl})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, int32(SQLITE_FCNTL_ZIPVFS), bp) if rc == SQLITE_OK { rc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33007, 0) + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33153, 0) } else { if rc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpTargetFd = p @@ -190194,7 +192088,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r if rc == SQLITE_OK && op == int32(SQLITE_FCNTL_VFSNAME) { pRbuVfs = (*Trbu_file)(unsafe.Pointer(p)).FpRbuVfs zIn = *(*uintptr)(unsafe.Pointer(pArg)) - zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33030, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) + zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33176, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) *(*uintptr)(unsafe.Pointer(pArg)) = zOut if zOut == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -190395,7 +192289,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag if pDb != 0 { if (*Trbu_file)(unsafe.Pointer(pDb)).FpRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FeStage == int32(RBU_STAGE_OAL) { if (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FzTarget == uintptr(0) { - zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6585) + zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6649) zOpen = Xsqlite3_filename_wal(tls, zOpen) } nOpen = libc.Xstrlen(tls, zOpen) @@ -190409,7 +192303,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag } else { (*Trbu_file)(unsafe.Pointer(pFd)).FpRbu = (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).FpRbu } - if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33041, 0) != 0 { + if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33187, 0) != 0 { _ = libc.Int32FromInt32(0) oflags = libc.Int32FromInt32(SQLITE_OPEN_TEMP_DB) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_EXCLUSIVE) | libc.Int32FromInt32(SQLITE_OPEN_DELETEONCLOSE) zOpen = uintptr(0) @@ -190964,7 +192858,7 @@ func _statConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint _sqlite3TokenInit(tls, bp, *(*uintptr)(unsafe.Pointer(argv + 3*8))) iDb = _sqlite3FindDb(tls, db, bp) if iDb < 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12191, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12316, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) return int32(SQLITE_ERROR) } } else { @@ -191358,6 +193252,7 @@ func _statDecodePage(tls *libc.TLS, pBt uintptr, p uintptr) (r int32) { } } return SQLITE_OK + goto statPageIsCorrupt statPageIsCorrupt: ; (*TStatPage)(unsafe.Pointer(p)).Fflags = uint8(0) @@ -191448,6 +193343,7 @@ func _statNext(tls *libc.TLS, pCursor uintptr) (r int32) { pPager = _sqlite3BtreePager(tls, pBt) Xsqlite3_free(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath) (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = uintptr(0) + goto statNextRestart statNextRestart: ; if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage < 0 { @@ -191465,7 +193361,7 @@ statNextRestart: (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiPgno = iRoot (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33052, 0) + v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33198, 0) z = v1 (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FzPath = v1 if z == uintptr(0) { @@ -191503,8 +193399,8 @@ statNextRestart: if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { (*TStatCursor)(unsafe.Pointer(pCsr)).FzName = Xsqlite3_column_text(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FpStmt, 0) (*TStatCursor)(unsafe.Pointer(pCsr)).FiPageno = *(*Tu32)(unsafe.Pointer((*TStatCell)(unsafe.Pointer(pCell)).FaOvfl + uintptr(iOvfl)*4)) - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33054 - v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33063, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33200 + v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33209, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) z = v2 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v2 if z == uintptr(0) { @@ -191533,7 +193429,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage++ if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage >= int32(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(222551)) + return _sqlite3CorruptError(tls, int32(224206)) } _ = libc.Int32FromInt32(0) if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { @@ -191545,7 +193441,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnPage++ (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33075, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) + v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33221, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) z = v4 (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FzPath = v4 if z == uintptr(0) { @@ -191568,13 +193464,13 @@ statNextRestart: case int32(0x05): /* table internal */ fallthrough case int32(0x02): /* index internal */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33083 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33229 case int32(0x0D): /* table leaf */ fallthrough case int32(0x0A): /* index leaf */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33092 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33238 default: - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33097 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33243 break } *(*int32)(unsafe.Pointer(pCsr + 2108)) += (*TStatPage)(unsafe.Pointer(p1)).FnCell @@ -191583,7 +193479,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnMxPayload = (*TStatPage)(unsafe.Pointer(p1)).FnMxPayload } if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) + v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) z = v5 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v5 if z == uintptr(0) { @@ -191672,12 +193568,12 @@ func _statFilter(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uintptr, a (*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg = uint8(0) } pSql = Xsqlite3_str_new(tls, (*TStatTable)(unsafe.Pointer(pTab)).Fdb) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33107, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33253, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) if zName != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33262, libc.VaList(bp+8, zName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33408, libc.VaList(bp+8, zName)) } if idxNum&int32(0x08) != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33276, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33422, 0) } zSql = Xsqlite3_str_finish(tls, pSql) if zSql == uintptr(0) { @@ -191754,7 +193650,7 @@ func _statRowid(tls *libc.TLS, pCursor uintptr, pRowid uintptr) (r int32) { // ** Invoke this routine to register the "dbstat" virtual table module // */ func _sqlite3DbstatRegister(tls *libc.TLS, db uintptr) (r int32) { - return Xsqlite3_create_module(tls, db, __ccgo_ts+33291, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) + return Xsqlite3_create_module(tls, db, __ccgo_ts+33437, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) } var _dbstat_module = Tsqlite3_module{} @@ -193043,20 +194939,20 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, *(*uintptr)(unsafe.Pointer(pazDflt)) = uintptr(0) } nThis = _sqlite3Strlen30(tls, zThis) - if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11582, zThis) { + if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11707, zThis) { rc = Xsqlite3_table_column_metadata(tls, db, zDb, zThis, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { /* For sqlite_stat1, pretend that (tbl,idx) is the PRIMARY KEY. */ - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33298, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33444, 0) } else { if rc == int32(SQLITE_ERROR) { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1648, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1662, 0) } else { return rc } } } else { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33419, libc.VaList(bp+16, zDb, zThis)) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33565, libc.VaList(bp+16, zDb, zThis)) } if !(zPragma != 0) { return int32(SQLITE_NOMEM) @@ -193080,7 +194976,7 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, bRowid = 0 } nDbCol += bRowid - nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+29640)) + nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+29786)) rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp))) if rc == SQLITE_OK { nByte = Tsqlite3_int64(uint64(nByte) + uint64(nDbCol)*(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(2)+libc.Uint64FromInt64(1)+libc.Uint64FromInt32(1)+libc.Uint64FromInt32(1))) @@ -193104,8 +195000,8 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, } i = 0 if bRowid != 0 { - nName = libc.Xstrlen(tls, __ccgo_ts+29640) - libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29640, nName+uint64(1)) + nName = libc.Xstrlen(tls, __ccgo_ts+29786) + libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29786, nName+uint64(1)) *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)) = pAlloc pAlloc += uintptr(nName + uint64(1)) *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) = uint8(1) @@ -193198,7 +195094,7 @@ func _sessionInitTable(tls *libc.TLS, pSession uintptr, pTab uintptr, db uintptr ; i++ } - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11582, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11707, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 = int32(1) } if pSession != 0 && (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize != 0 { @@ -193490,10 +195386,10 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin _, _, _, _ = ii, zDflt, zSep, v2 *(*TSessionBuffer)(unsafe.Pointer(bp)) = TSessionBuffer{} *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK - zSep = __ccgo_ts + 11202 + zSep = __ccgo_ts + 11327 ii = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33448, 0) + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33594, 0) ii = 0 for { if !(ii < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol) { @@ -193502,11 +195398,11 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin if *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) != 0 { v2 = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) } else { - v2 = __ccgo_ts + 1649 + v2 = __ccgo_ts + 1663 } zDflt = v2 - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5076, libc.VaList(bp+32, zSep, zDflt)) - zSep = __ccgo_ts + 14990 + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5140, libc.VaList(bp+32, zSep, zDflt)) + zSep = __ccgo_ts + 15083 goto _1 _1: ; @@ -193825,7 +195721,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u rc = int32(SQLITE_NOMEM) goto error_out } - _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1648, uint8(0), libc.UintptrFromInt32(0)) + _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1662, uint8(0), libc.UintptrFromInt32(0)) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpZeroBlob = p } } @@ -193946,6 +195842,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u } } /* If an error has occurred, mark the session object as failed. */ + goto error_out error_out: ; if (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 != 0 { @@ -194155,7 +196052,7 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr var i int32 var zRet, zSep uintptr _, _, _ = i, zRet, zSep - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 zRet = uintptr(0) i = 0 for { @@ -194163,8 +196060,8 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr break } if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33455, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 22013 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33601, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 22158 if zRet == uintptr(0) { break } @@ -194183,7 +196080,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint var bHave, i int32 var zRet, zSep uintptr _, _, _, _ = bHave, i, zRet, zSep - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 zRet = uintptr(0) bHave = 0 i = 0 @@ -194193,8 +196090,8 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if int32(*(*Tu8)(unsafe.Pointer(abPK + uintptr(i)))) == 0 { bHave = int32(1) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33489, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 33530 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33635, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 33676 if zRet == uintptr(0) { break } @@ -194206,7 +196103,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if bHave == 0 { _ = libc.Int32FromInt32(0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1722, 0) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1782, 0) } return zRet } @@ -194217,12 +196114,12 @@ func _sessionSelectFindNew(tls *libc.TLS, zDb1 uintptr, zDb2 uintptr, bRowid int var zRet, zSel, v1 uintptr _, _, _ = zRet, zSel, v1 if bRowid != 0 { - v1 = __ccgo_ts + 33535 + v1 = __ccgo_ts + 33681 } else { - v1 = __ccgo_ts + 6590 + v1 = __ccgo_ts + 6654 } zSel = v1 - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33546, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33692, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) return zRet } @@ -194283,11 +196180,11 @@ func _sessionAllCols(tls *libc.TLS, zDb uintptr, pTab uintptr) (r uintptr) { break } if zRet != 0 { - v2 = __ccgo_ts + 14990 + v2 = __ccgo_ts + 15083 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33625, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33771, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) if !(zRet != 0) { break } @@ -194315,7 +196212,7 @@ func _sessionDiffFindModified(tls *libc.TLS, pSession uintptr, pTab uintptr, zFr } else { z1 = _sessionAllCols(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, pTab) z2 = _sessionAllCols(tls, zFrom, pTab) - zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33644, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) + zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33790, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) if zStmt == uintptr(0) || z1 == uintptr(0) || z2 == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -194415,7 +196312,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if bMismatch != 0 { if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33701, 0) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33847, 0) } rc = int32(SQLITE_SCHEMA) } @@ -194441,6 +196338,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u } Xsqlite3_free(tls, zExpr) } + goto diff_out diff_out: ; _sessionPreupdateHooks(tls, pSession) @@ -194746,7 +196644,7 @@ func _sessionAppendInteger(tls *libc.TLS, p uintptr, iVal int32, pRc uintptr) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* aBuf at bp+0 */ [24]uint8 - Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5138, libc.VaList(bp+32, iVal)) + Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5202, libc.VaList(bp+32, iVal)) _sessionAppendStr(tls, p, bp, pRc) } @@ -195041,23 +196939,23 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt _, _, _, _, _, _, _ = i, nSql, zCols, zSep, zSql, v1, v3 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK zSql = uintptr(0) - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 if bRowid != 0 { - v1 = __ccgo_ts + 33535 + v1 = __ccgo_ts + 33681 } else { - v1 = __ccgo_ts + 6590 + v1 = __ccgo_ts + 6654 } zCols = v1 nSql = -int32(1) *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 24)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 40)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+33728, bp) - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11582, zTab) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+33732, bp) - _sessionAppendStr(tls, bp+24, __ccgo_ts+33756, bp) - _sessionAppendStr(tls, bp+40, __ccgo_ts+33765, bp) - zCols = __ccgo_ts + 33810 + _sessionAppendStr(tls, bp+8, __ccgo_ts+33874, bp) + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11707, zTab) { + _sessionAppendStr(tls, bp+8, __ccgo_ts+33878, bp) + _sessionAppendStr(tls, bp+24, __ccgo_ts+33902, bp) + _sessionAppendStr(tls, bp+40, __ccgo_ts+33911, bp) + zCols = __ccgo_ts + 33956 } else { i = 0 for { @@ -195067,11 +196965,11 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { _sessionAppendStr(tls, bp+24, zSep, bp) _sessionAppendStr(tls, bp+40, zSep, bp) - zSep = __ccgo_ts + 14990 + zSep = __ccgo_ts + 15083 _sessionAppendIdent(tls, bp+24, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), bp) - _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+33824, libc.VaList(bp+64, i+int32(1))) + _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+33970, libc.VaList(bp+64, i+int32(1))) } else { - _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+33828, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+33974, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) } goto _2 _2: @@ -195083,9 +196981,9 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if bIgnoreNoop != 0 { v3 = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf } else { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+33855, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+34001, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) if zSql == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } @@ -195231,7 +197129,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, if (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc != 0 { return (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc } - *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+33897, uintptr(0), uintptr(0), uintptr(0)) + *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+34043, uintptr(0), uintptr(0), uintptr(0)) if *(*int32)(unsafe.Pointer(bp + 16)) != SQLITE_OK { return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -195338,7 +197236,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } } Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf) - Xsqlite3_exec(tls, db, __ccgo_ts+33917, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34063, uintptr(0), uintptr(0), uintptr(0)) Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db)) return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -195759,7 +197657,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, int32(9)) if rc == SQLITE_OK { if (*TSessionInput)(unsafe.Pointer(pIn)).FiNext >= (*TSessionInput)(unsafe.Pointer(pIn)).FnData { - rc = _sqlite3CorruptError(tls, int32(226700)) + rc = _sqlite3CorruptError(tls, int32(228355)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -195784,7 +197682,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, *(*int32)(unsafe.Pointer(bp))) if rc == SQLITE_OK { if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext { - rc = _sqlite3CorruptError(tls, int32(226720)) + rc = _sqlite3CorruptError(tls, int32(228375)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -195799,7 +197697,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap } if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) { if (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext < int32(8) { - rc = _sqlite3CorruptError(tls, int32(226730)) + rc = _sqlite3CorruptError(tls, int32(228385)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -195855,7 +197753,7 @@ func _sessionChangesetBufferTblhdr(tls *libc.TLS, pIn uintptr, pnByte uintptr) ( ** large value for nCol may cause nRead to wrap around and become ** negative. Leading to a crash. */ if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > int32(65536) { - rc = _sqlite3CorruptError(tls, int32(226778)) + rc = _sqlite3CorruptError(tls, int32(228433)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -195961,7 +197859,7 @@ func _sessionChangesetReadTblhdr(tls *libc.TLS, p uintptr) (r int32) { (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FnBuf = 0 _sessionBufferGrow(tls, p+72, int64(nByte), bp) } else { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(226866)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(228521)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -196034,12 +197932,12 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK { return (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc } + _sessionDiscardData(tls, p) + (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext /* If the iterator is already at the end of the changeset, return DONE. */ if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext >= (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FnData { return int32(SQLITE_DONE) } - _sessionDiscardData(tls, p) - (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext v3 = p + 8 v2 = *(*int32)(unsafe.Pointer(v3)) *(*int32)(unsafe.Pointer(v3))++ @@ -196070,7 +197968,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin /* The first record in the changeset is not a table header. Must be a ** corrupt changeset. */ _ = libc.Int32FromInt32(0) - v7 = _sqlite3CorruptError(tls, int32(226952)) + v7 = _sqlite3CorruptError(tls, int32(228607)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -196080,7 +197978,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = int32(*(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr(v8)))) if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_DELETE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_INSERT) { - v10 = _sqlite3CorruptError(tls, int32(226958)) + v10 = _sqlite3CorruptError(tls, int32(228613)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -196161,7 +198059,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin _ = libc.Int32FromInt32(0) *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i+(*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*8)) if *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) == uintptr(0) { - v16 = _sqlite3CorruptError(tls, int32(227002)) + v16 = _sqlite3CorruptError(tls, int32(228657)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -196572,7 +198470,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(227367)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(229022)) goto finished_invert } _ = libc.Int32FromInt32(0) @@ -196594,6 +198492,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } + goto finished_invert finished_invert: ; Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf) @@ -196776,18 +198675,18 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 } if pUp == uintptr(0) { nByte = int32(uint64(24) * uint64(nU32) * uint64(4)) - bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11582) == 0) + bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11707) == 0) pUp = Xsqlite3_malloc(tls, nByte) if pUp == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } else { - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 libc.Xmemset(tls, bp+8, 0, uint64(16)) (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask = pUp + 1*24 libc.Xmemcpy(tls, (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, uint64(nU32)*uint64(4)) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33935, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34081, bp) _sessionAppendIdent(tls, bp+8, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33948, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34094, bp) /* Create the assignments part of the UPDATE */ ii = 0 for { @@ -196797,9 +198696,9 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if int32(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii)))) == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol+ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33954, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34100, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(1), bp) - zSep = __ccgo_ts + 14990 + zSep = __ccgo_ts + 15083 } goto _2 _2: @@ -196807,8 +198706,8 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 ii++ } /* Create the WHERE clause part of the UPDATE */ - zSep = __ccgo_ts + 1648 - _sessionAppendStr(tls, bp+8, __ccgo_ts+33959, bp) + zSep = __ccgo_ts + 1662 + _sessionAppendStr(tls, bp+8, __ccgo_ts+34105, bp) ii = 0 for { if !(ii < (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol) { @@ -196818,13 +198717,13 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 _sessionAppendStr(tls, bp+8, zSep, bp) if bStat1 != 0 && ii == int32(1) { _ = libc.Int32FromInt32(0) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33967, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34113, bp) } else { _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34042, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34188, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(2), bp) } - zSep = __ccgo_ts + 22013 + zSep = __ccgo_ts + 22158 } goto _3 _3: @@ -196908,13 +198807,13 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in var _ /* buf at bp+8 */ TSessionBuffer var _ /* rc at bp+0 */ int32 _, _, _ = i, nPk, zSep - zSep = __ccgo_ts + 1648 + zSep = __ccgo_ts + 1662 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} nPk = 0 - _sessionAppendStr(tls, bp+8, __ccgo_ts+34048, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34194, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33959, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34105, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -196924,9 +198823,9 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in nPk++ _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33954, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34100, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 22013 + zSep = __ccgo_ts + 22158 } goto _1 _1: @@ -196934,10 +198833,10 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in i++ } if nPk < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol { - _sessionAppendStr(tls, bp+8, __ccgo_ts+34066, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34212, bp) _sessionAppendInteger(tls, bp+8, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol+int32(1), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33530, bp) - zSep = __ccgo_ts + 1648 + _sessionAppendStr(tls, bp+8, __ccgo_ts+33676, bp) + zSep = __ccgo_ts + 1662 i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -196946,16 +198845,16 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in if !(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0) { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34042, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34188, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 34074 + zSep = __ccgo_ts + 34220 } goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5106, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5170, bp) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+8, uintptr(0)) @@ -196981,7 +198880,7 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in // */ func _sessionSelectRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r int32) { /* TODO */ - return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6585, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) + return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6649, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) } // C documentation @@ -197004,16 +198903,16 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+34079, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34225, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+22019, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+22164, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } if i != 0 { - _sessionAppendStr(tls, bp+8, __ccgo_ts+14990, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+15083, bp) } _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) goto _1 @@ -197021,19 +198920,19 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34097, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34243, bp) i = int32(1) for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34108, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34254, bp) goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5106, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5170, bp) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+16, uintptr(0)) } @@ -197056,12 +198955,12 @@ func _sessionPrepare(tls *libc.TLS, db uintptr, pp uintptr, zSql uintptr) (r int func _sessionStat1Sql(tls *libc.TLS, db uintptr, p uintptr) (r int32) { var rc int32 _ = rc - rc = _sessionSelectRow(tls, db, __ccgo_ts+11582, p) + rc = _sessionSelectRow(tls, db, __ccgo_ts+11707, p) if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34112) + rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34258) } if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34225) + rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34371) } return rc } @@ -197128,7 +199027,7 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(227849)) + rc = _sqlite3CorruptError(tls, int32(229504)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -197556,7 +199455,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34369, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34515, uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { rc = _sessionBindRow(tls, pIter, __ccgo_fp(Xsqlite3changeset_new), (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FabPK, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) Xsqlite3_bind_int(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol+int32(1), int32(1)) @@ -197569,7 +199468,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34390, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34536, uintptr(0), uintptr(0), uintptr(0)) } } } @@ -197665,10 +199564,10 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbIgnoreNoop = libc.BoolUint8(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_IGNORENOOP) != 0)) Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, db)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34409, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34555, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34435, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34581, uintptr(0), uintptr(0), uintptr(0)) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) @@ -197699,7 +199598,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui ** non-zero, proceed. */ schemaMismatch = libc.BoolInt32(xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { - *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) + *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { rc = int32(SQLITE_NOMEM) break @@ -197709,7 +199608,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } else { nMinCol = 0 Xsqlite3changeset_pk(tls, pIter, bp+152, uintptr(0)) - rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6585, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) + rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6649, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) if rc != SQLITE_OK { break } @@ -197728,18 +199627,18 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol == 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34465, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34611, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol < *(*int32)(unsafe.Pointer(bp + 136)) { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34509, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34655, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) } else { if *(*int32)(unsafe.Pointer(bp + 136)) < nMinCol || libc.Xmemcmp(tls, (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FabPK, *(*uintptr)(unsafe.Pointer(bp + 152)), uint64(*(*int32)(unsafe.Pointer(bp + 136)))) != 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34580, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34726, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol = *(*int32)(unsafe.Pointer(bp + 136)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11582) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11707) { v2 = _sessionStat1Sql(tls, db, bp+8) rc = v2 if v2 != 0 { @@ -197796,13 +199695,13 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } } } - Xsqlite3_exec(tls, db, __ccgo_ts+34640, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34786, uintptr(0), uintptr(0), uintptr(0)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34670, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34816, uintptr(0), uintptr(0), uintptr(0)) } else { - Xsqlite3_exec(tls, db, __ccgo_ts+34694, uintptr(0), uintptr(0), uintptr(0)) - Xsqlite3_exec(tls, db, __ccgo_ts+34670, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34840, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34816, uintptr(0), uintptr(0), uintptr(0)) } } _ = libc.Int32FromInt32(0) @@ -197896,6 +199795,7 @@ type Tsqlite3_changegroup1 = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -198262,118 +200162,145 @@ func _sessionChangesetExtendRecord(tls *libc.TLS, pGrp uintptr, pTab uintptr, nC // C documentation // // /* -// ** Add all changes in the changeset traversed by the iterator passed as -// ** the first argument to the changegroup hash tables. +// ** Locate or create a SessionTable object that may be used to add the +// ** change currently pointed to by iterator pIter to changegroup pGrp. +// ** If successful, set output variable (*ppTab) to point to the table +// ** object and return SQLITE_OK. Otherwise, if some error occurs, return +// ** an SQLite error code and leave (*ppTab) set to NULL. // */ -func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { - bp := tls.Alloc(80) - defer tls.Free(80) - var bPkOnly1, bPkOnly2, iHash, nNew, rc int32 - var pExist, pTab, pp, ppTab uintptr - var _ /* aRec at bp+0 */ uintptr - var _ /* abPK at bp+64 */ uintptr - var _ /* bIndirect at bp+48 */ int32 - var _ /* nCol at bp+40 */ int32 - var _ /* nRec at bp+8 */ int32 - var _ /* op at bp+44 */ int32 - var _ /* pChange at bp+56 */ uintptr - var _ /* rec at bp+16 */ TSessionBuffer - var _ /* zNew at bp+32 */ uintptr - _, _, _, _, _, _, _, _, _ = bPkOnly1, bPkOnly2, iHash, nNew, pExist, pTab, pp, ppTab, rc +func _sessionChangesetFindTable(tls *libc.TLS, pGrp uintptr, zTab uintptr, pIter uintptr, ppTab uintptr) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var nTab, rc int32 + var pTab, ppNew uintptr + var _ /* abPK at bp+0 */ uintptr + var _ /* nCol at bp+8 */ int32 + _, _, _, _ = nTab, pTab, ppNew, rc rc = SQLITE_OK pTab = uintptr(0) - *(*TSessionBuffer)(unsafe.Pointer(bp + 16)) = TSessionBuffer{} - for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { - pExist = uintptr(0) - /* Ensure that only changesets, or only patchsets, but not a mixture - ** of both, are being combined. It is an error to try to combine a - ** changeset and a patchset. */ - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset - } else { - if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { - rc = int32(SQLITE_ERROR) - break - } + nTab = int32(libc.Xstrlen(tls, zTab)) + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(ppTab)) = uintptr(0) + Xsqlite3changeset_pk(tls, pIter, bp, bp+8) + /* Search the list for an existing table */ + pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList + for { + if !(pTab != 0) { + break } - Xsqlite3changeset_op(tls, pIter, bp+32, bp+40, bp+44, bp+48) - if !(pTab != 0) || Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), (*TSessionTable)(unsafe.Pointer(pTab)).FzName) != 0 { - /* Search the list for a matching table */ - nNew = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)))) - Xsqlite3changeset_pk(tls, pIter, bp+64, uintptr(0)) - pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList - for { - if !(pTab != 0) { - break - } - if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), nNew+int32(1)) { - break - } - goto _1 - _1: - ; - pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext - } - if !(pTab != 0) { - pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 40)))+uint64(nNew)+uint64(1)) - if !(pTab != 0) { - rc = int32(SQLITE_NOMEM) - break - } - libc.Xmemset(tls, pTab, 0, uint64(80)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 40)) - (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp + 64)), uint64(*(*int32)(unsafe.Pointer(bp + 40)))) - (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 40))) - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), uint64(nNew+int32(1))) - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 - rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) - if rc != 0 { - _ = libc.Int32FromInt32(0) - Xsqlite3_free(tls, pTab) - break - } - } - /* The new object must be linked on to the end of the list, not - ** simply added to the start of it. This is to ensure that the - ** tables within the output of sqlite3changegroup_output() are in - ** the right order. */ - ppTab = pGrp + 8 - for { - if !(*(*uintptr)(unsafe.Pointer(ppTab)) != 0) { - break - } - goto _2 - _2: - ; - ppTab = *(*uintptr)(unsafe.Pointer(ppTab)) - } - *(*uintptr)(unsafe.Pointer(ppTab)) = pTab - } - if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*uintptr)(unsafe.Pointer(bp + 64))) != 0) { - rc = int32(SQLITE_SCHEMA) - break - } + if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, nTab+int32(1)) { + break } - if *(*int32)(unsafe.Pointer(bp + 40)) < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol { - _ = libc.Int32FromInt32(0) - rc = _sessionChangesetExtendRecord(tls, pGrp, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*int32)(unsafe.Pointer(bp + 44)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+16) + goto _1 + _1: + ; + pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext + } + /* If one was not found above, create a new table now */ + if !(pTab != 0) { + pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 8)))+uint64(nTab)+uint64(1)) + if !(pTab != 0) { + return int32(SQLITE_NOMEM) + } + libc.Xmemset(tls, pTab, 0, uint64(80)) + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 8)) + (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp)), uint64(*(*int32)(unsafe.Pointer(bp + 8)))) + (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 8))) + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, uint64(nTab+int32(1))) + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 + rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) if rc != 0 { + _ = libc.Int32FromInt32(0) + Xsqlite3_free(tls, pTab) + return rc + } + } + /* The new object must be linked on to the end of the list, not + ** simply added to the start of it. This is to ensure that the + ** tables within the output of sqlite3changegroup_output() are in + ** the right order. */ + ppNew = pGrp + 8 + for { + if !(*(*uintptr)(unsafe.Pointer(ppNew)) != 0) { break } - *(*uintptr)(unsafe.Pointer(bp)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf - *(*int32)(unsafe.Pointer(bp + 8)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf + goto _2 + _2: + ; + ppNew = *(*uintptr)(unsafe.Pointer(ppNew)) } - if _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pTab) != 0 { - rc = int32(SQLITE_NOMEM) - break + *(*uintptr)(unsafe.Pointer(ppNew)) = pTab + } + /* Check that the table is compatible. */ + if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 8)), *(*uintptr)(unsafe.Pointer(bp))) != 0) { + rc = int32(SQLITE_SCHEMA) + } + *(*uintptr)(unsafe.Pointer(ppTab)) = pTab + return rc +} + +// C documentation +// +// /* +// ** Add the change currently indicated by iterator pIter to the hash table +// ** belonging to changegroup pGrp. +// */ +func _sessionOneChangeToHash(tls *libc.TLS, pGrp uintptr, pIter uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var aRec, pBuf, pExist, pp uintptr + var bPkOnly1, bPkOnly2, iHash, nRec, rc int32 + var _ /* bIndirect at bp+8 */ int32 + var _ /* nCol at bp+0 */ int32 + var _ /* op at bp+4 */ int32 + var _ /* pChange at bp+16 */ uintptr + var _ /* pTab at bp+24 */ uintptr + var _ /* zTab at bp+32 */ uintptr + _, _, _, _, _, _, _, _, _ = aRec, bPkOnly1, bPkOnly2, iHash, nRec, pBuf, pExist, pp, rc + rc = SQLITE_OK + *(*int32)(unsafe.Pointer(bp)) = 0 + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + iHash = 0 + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0) + pExist = uintptr(0) + pp = uintptr(0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0) + aRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FaData + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent+int32(2)) + nRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent - int32(2) + /* Ensure that only changesets, or only patchsets, but not a mixture + ** of both, are being combined. It is an error to try to combine a + ** changeset and a patchset. */ + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset + } else { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { + rc = int32(SQLITE_ERROR) } - iHash = int32(_sessionChangeHash(tls, pTab, libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)), *(*uintptr)(unsafe.Pointer(bp)), (*TSessionTable)(unsafe.Pointer(pTab)).FnChange)) + } + if rc == SQLITE_OK { + *(*uintptr)(unsafe.Pointer(bp + 32)) = uintptr(0) + Xsqlite3changeset_op(tls, pIter, bp+32, bp, bp+4, bp+8) + rc = _sessionChangesetFindTable(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 32)), pIter, bp+24) + } + if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) < (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnCol { + pBuf = pGrp + 16 + rc = _sessionChangesetExtendRecord(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 24)), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), aRec, nRec, pBuf) + aRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FaBuf + nRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FnBuf + _ = libc.Int32FromInt32(0) + } + if rc == SQLITE_OK && _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp + 24))) != 0 { + rc = int32(SQLITE_NOMEM) + } + if rc == SQLITE_OK { /* Search for existing entry. If found, remove it from the hash table. - ** Code below may link it back in. - */ - pp = (*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8 + ** Code below may link it back in. */ + iHash = int32(_sessionChangeHash(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)), aRec, (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnChange)) + pp = (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8 for { if !(*(*uintptr)(unsafe.Pointer(pp)) != 0) { break @@ -198382,30 +200309,54 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase bPkOnly2 = 0 if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 { bPkOnly1 = libc.BoolInt32(int32((*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).Fop) == int32(SQLITE_DELETE)) - bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)) + bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)) } - if _sessionChangeEqual(tls, pTab, bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, *(*uintptr)(unsafe.Pointer(bp))) != 0 { + if _sessionChangeEqual(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, aRec) != 0 { pExist = *(*uintptr)(unsafe.Pointer(pp)) *(*uintptr)(unsafe.Pointer(pp)) = (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry-- + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry-- break } - goto _3 - _3: + goto _1 + _1: ; pp = *(*uintptr)(unsafe.Pointer(pp)) + 24 } - rc = _sessionChangeMerge(tls, pTab, bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 44)), *(*int32)(unsafe.Pointer(bp + 48)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+56) - if rc != 0 { + } + if rc == SQLITE_OK { + rc = _sessionChangeMerge(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 4)), *(*int32)(unsafe.Pointer(bp + 8)), aRec, nRec, bp+16) + } + if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { + (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) + *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 16)) + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry++ + } + if rc == SQLITE_OK { + rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc + } + return rc +} + +// C documentation +// +// /* +// ** Add all changes in the changeset traversed by the iterator passed as +// ** the first argument to the changegroup hash tables. +// */ +func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var rc int32 + var _ /* aRec at bp+0 */ uintptr + var _ /* nRec at bp+8 */ int32 + _ = rc + rc = SQLITE_OK + for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { + rc = _sessionOneChangeToHash(tls, pGrp, pIter, bRebase) + if rc != SQLITE_OK { break } - if *(*uintptr)(unsafe.Pointer(bp + 56)) != 0 { - (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 56)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) - *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 56)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry++ - } } - Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf) if rc == SQLITE_OK { rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc } @@ -198516,11 +200467,11 @@ func Xsqlite3changegroup_new(tls *libc.TLS, pp uintptr) (r int32) { var rc int32 _, _ = p, rc rc = SQLITE_OK /* New object */ - p = Xsqlite3_malloc(tls, int32(32)) + p = Xsqlite3_malloc(tls, int32(48)) if p == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, p, 0, uint64(32)) + libc.Xmemset(tls, p, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(pp)) = p return rc @@ -198542,7 +200493,7 @@ func Xsqlite3changegroup_schema(tls *libc.TLS, pGrp uintptr, db uintptr, zDb uin ** or after sqlite3changegroup_schema() has already been called. */ rc = int32(SQLITE_MISUSE) } else { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, zDb)) + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, zDb)) if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -198572,6 +200523,19 @@ func Xsqlite3changegroup_add(tls *libc.TLS, pGrp uintptr, nData int32, pData uin return rc } +// C documentation +// +// /* +// ** Add a single change to a changeset-group. +// */ +func Xsqlite3changegroup_add_change(tls *libc.TLS, pGrp uintptr, pIter uintptr) (r int32) { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent == (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc != SQLITE_OK || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbInvert != 0 { + /* Iterator does not point to any valid entry or is an INVERT iterator. */ + return int32(SQLITE_ERROR) + } + return _sessionOneChangeToHash(tls, pGrp, pIter, 0) +} + // C documentation // // /* @@ -198619,6 +200583,7 @@ func Xsqlite3changegroup_delete(tls *libc.TLS, pGrp uintptr) { if pGrp != 0 { Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList) + Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Frec.FaBuf) Xsqlite3_free(tls, pGrp) } } @@ -198986,11 +200951,11 @@ func Xsqlite3rebaser_create(tls *libc.TLS, ppNew uintptr) (r int32) { var rc int32 _, _ = pNew, rc rc = SQLITE_OK - pNew = Xsqlite3_malloc(tls, int32(32)) + pNew = Xsqlite3_malloc(tls, int32(48)) if pNew == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, pNew, 0, uint64(32)) + libc.Xmemset(tls, pNew, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(ppNew)) = pNew return rc @@ -199064,6 +201029,7 @@ func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn u func Xsqlite3rebaser_delete(tls *libc.TLS, p uintptr) { if p != 0 { _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.FpList) + Xsqlite3_free(tls, (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.Frec.FaBuf) Xsqlite3_free(tls, p) } } @@ -199695,6 +201661,9 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** sqlite3Fts5ParserARG_STORE Code to store %extra_argument into fts5yypParser // ** sqlite3Fts5ParserARG_FETCH Code to extract %extra_argument from fts5yypParser // ** sqlite3Fts5ParserCTX_* As sqlite3Fts5ParserARG_ except for %extra_context +// ** fts5YYREALLOC Name of the realloc() function to use +// ** fts5YYFREE Name of the free() function to use +// ** fts5YYDYNSTACK True if stack space should be extended on heap // ** fts5YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** fts5YYNSTATE the combined number of states. @@ -199708,6 +201677,8 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** fts5YY_NO_ACTION The fts5yy_action[] code for no-op // ** fts5YY_MIN_REDUCE Minimum value for reduce actions // ** fts5YY_MAX_REDUCE Maximum value for reduce actions +// ** fts5YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** fts5YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type Tfts5YYMINORTYPE = struct { @@ -199734,6 +201705,13 @@ type fts5YYMINORTYPE = Tfts5YYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -200163,8 +202141,9 @@ type fts5yyStackEntry = Tfts5yyStackEntry type Tfts5yyParser1 = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser1 = Tfts5yyParser1 @@ -200172,14 +202151,19 @@ type fts5yyParser1 = Tfts5yyParser1 type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser = Tfts5yyParser /* #include */ +/* For builds that do no have a growable stack, fts5yyGrowStack always +** returns an error. + */ + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3Fts5ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -200194,10 +202178,11 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { var fts5yypParser uintptr _ = fts5yypParser fts5yypParser = fts5yypRawParser - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = fts5yypParser + 16 - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fstateno = uint8(0) - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fmajor = uint8(0) - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = fts5yypParser + 16 + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack = fts5yypParser + 32 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fstateno = uint8(0) + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fmajor = uint8(0) } // C documentation @@ -200217,7 +202202,7 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2424)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -200301,11 +202286,17 @@ func _fts5yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var fts5yytos, pParser uintptr + _, _ = fts5yytos, pParser pParser = p - for (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos > pParser+16 { - _fts5yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling fts5yy_pop_parser_stack() for each + ** element left in the stack */ + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos + for fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yystack { + if int32((*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor) >= int32(fts5YY_MIN_DSTRCTR) { + _fts5yy_destructor(tls, pParser, (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor, fts5yytos+8) + } + fts5yytos -= 24 } } @@ -200405,13 +202396,13 @@ func _fts5yyStackOverflow(tls *libc.TLS, fts5yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse - for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > fts5yypParser+16 { + for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack { _fts5yy_pop_parser_stack(tls, fts5yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34722, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34868, 0) /******** End %stack_overflow code ********************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument var */ } @@ -200429,15 +202420,19 @@ func _fts5yy_shift(tls *libc.TLS, fts5yypParser uintptr, fts5yyNewState uint8, f var fts5yytos uintptr _ = fts5yytos (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos += 24 - if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 - _fts5yyStackOverflow(tls, fts5yypParser) - return + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + if fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { + if int32(1) != 0 { + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 + _fts5yyStackOverflow(tls, fts5yypParser) + return + } + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + _ = libc.Int32FromInt32(0) } if int32(fts5yyNewState) > int32(fts5YY_MAX_SHIFT) { fts5yyNewState = uint8(int32(fts5yyNewState) + (libc.Int32FromInt32(fts5YY_MIN_REDUCE) - libc.Int32FromInt32(fts5YY_MIN_SHIFTREDUCE))) } - fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fstateno = fts5yyNewState (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor = fts5yyMajor *(*TFts5Token)(unsafe.Pointer(fts5yytos + 8)) = fts5yyMinor @@ -200767,7 +202762,7 @@ func _fts5yy_syntax_error(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor int3 pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse /************ Begin %syntax_error code ****************************************/ _ = fts5yymajor /* Silence a compiler warning */ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34750, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34896, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) /************ End %syntax_error code ******************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument variable */ } @@ -200833,8 +202828,10 @@ func _sqlite3Fts5Parser(tls *libc.TLS, fts5yyp uintptr, fts5yymajor int32, fts5y ** enough on the stack to push the LHS value */ if int32(_fts5yyRuleInfoNRhs[fts5yyruleno]) == 0 { if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos >= (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - _fts5yyStackOverflow(tls, fts5yypParser) - break + if int32(1) != 0 { + _fts5yyStackOverflow(tls, fts5yypParser) + break + } } } fts5yyact = _fts5yy_reduce(tls, fts5yypParser, fts5yyruleno, fts5yymajor, fts5yyminor) @@ -201075,7 +203072,7 @@ func _fts5HighlightAppend(tls *libc.TLS, pRc uintptr, p uintptr, z uintptr, n in if n < 0 { n = int32(libc.Xstrlen(tls, z)) } - (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34781, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) + (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34927, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) if (*THighlightContext)(unsafe.Pointer(p)).FzOut == uintptr(0) { *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) } @@ -201173,7 +203170,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint var _ /* rc at bp+104 */ int32 _, _ = iCol, zErr if nVal != int32(3) { - zErr = __ccgo_ts + 34788 + zErr = __ccgo_ts + 34934 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -201184,7 +203181,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint (*(*THighlightContext)(unsafe.Pointer(bp))).FiRangeEnd = -int32(1) *(*int32)(unsafe.Pointer(bp + 104)) = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnText})))(tls, pFts, iCol, bp+24, bp+32) if *(*int32)(unsafe.Pointer(bp + 104)) == int32(SQLITE_RANGE) { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1648, -int32(1), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1662, -int32(1), libc.UintptrFromInt32(0)) *(*int32)(unsafe.Pointer(bp + 104)) = SQLITE_OK } else { if (*(*THighlightContext)(unsafe.Pointer(bp))).FzIn != 0 { @@ -201385,7 +203382,7 @@ func _fts5ValueToText(tls *libc.TLS, pVal uintptr) (r uintptr) { if zRet != 0 { v1 = zRet } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } return v1 } @@ -201419,7 +203416,7 @@ func _fts5SnippetFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintpt nBestScore = 0 /* Score of best snippet */ *(*int32)(unsafe.Pointer(bp + 112)) = 0 if nVal != int32(5) { - zErr = __ccgo_ts + 34838 + zErr = __ccgo_ts + 34984 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -201800,15 +203797,15 @@ func _sqlite3Fts5AuxInit(tls *libc.TLS, pApi uintptr) (r int32) { FxDestroy uintptr }{ 0: { - FzFunc: __ccgo_ts + 34886, + FzFunc: __ccgo_ts + 35032, FxFunc: __ccgo_fp(_fts5SnippetFunction), }, 1: { - FzFunc: __ccgo_ts + 34894, + FzFunc: __ccgo_ts + 35040, FxFunc: __ccgo_fp(_fts5HighlightFunction), }, 2: { - FzFunc: __ccgo_ts + 34904, + FzFunc: __ccgo_ts + 35050, FxFunc: __ccgo_fp(_fts5Bm25Function), }, } @@ -202473,7 +204470,7 @@ func _fts5ConfigSkipLiteral(tls *libc.TLS, pIn uintptr) (r uintptr) { case int32('n'): fallthrough case int32('N'): - if Xsqlite3_strnicmp(tls, __ccgo_ts+1634, p, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+1648, p, int32(4)) == 0 { p = p + 4 } else { p = uintptr(0) @@ -202679,7 +204676,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _, _, _, _, _, _, _, _, _, _, _, _ = azArg, bFirst, nArg, nByte, nCmd, nPre, p, p1, p2, pDel, pSpace, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK nCmd = int32(libc.Xstrlen(tls, zCmd)) - if Xsqlite3_strnicmp(tls, __ccgo_ts+34909, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35055, zCmd, nCmd) == 0 { nByte = int32(libc.Uint64FromInt64(4) * libc.Uint64FromInt32(FTS5_MAX_PREFIX_INDEXES)) bFirst = int32(1) if (*TFts5Config)(unsafe.Pointer(pConfig)).FaPrefix == uintptr(0) { @@ -202705,12 +204702,12 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } } if int32(*(*uint8)(unsafe.Pointer(p))) < int32('0') || int32(*(*uint8)(unsafe.Pointer(p))) > int32('9') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34916, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35062, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } if (*TFts5Config)(unsafe.Pointer(pConfig)).FnPrefix == int32(FTS5_MAX_PREFIX_INDEXES) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34947, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35093, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -202719,7 +204716,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC p++ } if nPre <= 0 || nPre >= int32(1000) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34980, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35126, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -202730,7 +204727,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _ = libc.Int32FromInt32(0) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35017, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35163, zCmd, nCmd) == 0 { p1 = zArg nArg = int64(libc.Xstrlen(tls, zArg) + uint64(1)) azArg = _sqlite3Fts5MallocZero(tls, bp, int64(uint64(8)*uint64(nArg))) @@ -202738,7 +204735,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC pSpace = pDel if azArg != 0 && pSpace != 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35026, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35172, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { nArg = 0 @@ -202765,7 +204762,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC nArg++ } if p1 == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35059, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35205, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5GetTokenizer(tls, pGlobal, azArg, int32(nArg), pConfig, pzErr) @@ -202776,58 +204773,58 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC Xsqlite3_free(tls, pDel) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35093, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35239, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent != FTS5_CONTENT_NORMAL { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35101, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35247, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if *(*uint8)(unsafe.Pointer(zArg)) != 0 { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_EXTERNAL) - (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35133, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) + (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35279, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_NONE) } } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35139, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35285, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35158, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35304, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35201, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35347, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35215, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35361, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, zArg, -int32(1)) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35253, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35399, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35264, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35410, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+5499, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+5563, zCmd, nCmd) == 0 { *(*[4]TFts5Enum)(unsafe.Pointer(bp + 8)) = [4]TFts5Enum{ 0: { - FzName: __ccgo_ts + 8218, + FzName: __ccgo_ts + 8343, FeVal: int32(FTS5_DETAIL_NONE), }, 1: { - FzName: __ccgo_ts + 17747, + FzName: __ccgo_ts + 17834, }, 2: { - FzName: __ccgo_ts + 35299, + FzName: __ccgo_ts + 35445, FeVal: int32(FTS5_DETAIL_COLUMNS), }, 3: {}, @@ -202835,20 +204832,20 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC v2 = _fts5ConfigSetEnum(tls, bp+8, zArg, pConfig+96) *(*int32)(unsafe.Pointer(bp)) = v2 if v2 != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35307, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35453, 0) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35338, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35484, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35348, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35494, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbTokendata = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35382, libc.VaList(bp+80, nCmd, zCmd)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35528, libc.VaList(bp+80, nCmd, zCmd)) return int32(SQLITE_ERROR) } @@ -202922,15 +204919,15 @@ func _fts5ConfigParseColumn(tls *libc.TLS, p uintptr, zCol uintptr, zArg uintptr var v2 uintptr _, _, _ = rc, v1, v2 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35410) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16694) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35415, libc.VaList(bp+8, zCol)) + if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35556) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16781) { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35561, libc.VaList(bp+8, zCol)) rc = int32(SQLITE_ERROR) } else { if zArg != 0 { - if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35445) { + if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35591) { *(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FabUnindexed + uintptr((*TFts5Config)(unsafe.Pointer(p)).FnCol))) = uint8(1) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35455, libc.VaList(bp+8, zArg)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35601, libc.VaList(bp+8, zArg)) rc = int32(SQLITE_ERROR) } } @@ -202956,7 +204953,7 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TFts5Buffer)(unsafe.Pointer(bp + 8)) = TFts5Buffer{} - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35486, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35632, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) if (*TFts5Config)(unsafe.Pointer(p)).FeContent != int32(FTS5_CONTENT_NONE) { i = 0 for { @@ -202964,9 +204961,9 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { break } if (*TFts5Config)(unsafe.Pointer(p)).FeContent == int32(FTS5_CONTENT_EXTERNAL) { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35491, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35637, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) } else { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35498, libc.VaList(bp+32, i)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35644, libc.VaList(bp+32, i)) } goto _1 _1: @@ -203027,8 +205024,8 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in (*TFts5Config)(unsafe.Pointer(pRet)).FzName = _sqlite3Fts5Strndup(tls, bp, *(*uintptr)(unsafe.Pointer(azArg + 2*8)), -int32(1)) (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize = int32(1) (*TFts5Config)(unsafe.Pointer(pRet)).FeDetail = FTS5_DETAIL_FULL - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35410) == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35506, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35556) == 0 { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35652, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } _ = libc.Int32FromInt32(0) @@ -203061,19 +205058,19 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { if z == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35535, libc.VaList(bp+40, zOrig)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35681, libc.VaList(bp+40, zOrig)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bOption != 0 { if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { v4 = *(*uintptr)(unsafe.Pointer(bp + 8)) } else { - v4 = __ccgo_ts + 1648 + v4 = __ccgo_ts + 1662 } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { v5 = *(*uintptr)(unsafe.Pointer(bp + 16)) } else { - v5 = __ccgo_ts + 1648 + v5 = __ccgo_ts + 1662 } *(*int32)(unsafe.Pointer(bp)) = _fts5ConfigParseSpecial(tls, pGlobal, pRet, v4, v5, pzErr) } else { @@ -203091,7 +205088,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } /* We only allow contentless_delete=1 if the table is indeed contentless. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FeContent != int32(FTS5_CONTENT_NONE) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35555, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35701, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* We only allow contentless_delete=1 if columnsize=0 is not present. @@ -203099,7 +205096,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in ** This restriction may be removed at some point. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35605, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35751, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* If a tokenizer= option was successfully parsed, the tokenizer has @@ -203113,18 +205110,18 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in zTail = uintptr(0) _ = libc.Int32FromInt32(0) if (*TFts5Config)(unsafe.Pointer(pRet)).FeContent == FTS5_CONTENT_NORMAL { - zTail = __ccgo_ts + 35093 + zTail = __ccgo_ts + 35239 } else { if (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize != 0 { - zTail = __ccgo_ts + 35660 + zTail = __ccgo_ts + 35806 } } if zTail != 0 { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35668, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35814, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid == uintptr(0) { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16694, -int32(1)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16781, -int32(1)) } /* Formulate the zContentExprlist text */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -203188,25 +205185,25 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { var _ /* rc at bp+0 */ int32 _, _, _, _ = i, zSep, zSql, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35679, 0) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35825, 0) i = 0 for { if !(zSql != 0 && i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } if i == 0 { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } else { - v2 = __ccgo_ts + 14990 + v2 = __ccgo_ts + 15083 } zSep = v2 - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35695, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35841, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) goto _1 _1: ; i++ } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35702, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35410)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35848, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35556)) _ = libc.Int32FromInt32(0) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_declare_vtab(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql) @@ -203354,7 +205351,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV var _ /* zRankArgs at bp+8 */ uintptr _, _, _, _, _, _, _, _, _, _ = bVal, nAutomerge, nCrisisMerge, nHashSize, nUsermerge, nVal, pgsz, rc, zIn, v1 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35728) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35874) { pgsz = 0 if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { pgsz = Xsqlite3_value_int(tls, pVal) @@ -203365,7 +205362,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).Fpgsz = pgsz } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35733) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35879) { nHashSize = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nHashSize = Xsqlite3_value_int(tls, pVal) @@ -203376,7 +205373,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnHashSize = nHashSize } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35742) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35888) { nAutomerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nAutomerge = Xsqlite3_value_int(tls, pVal) @@ -203390,7 +205387,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnAutomerge = nAutomerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35752) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35898) { nUsermerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nUsermerge = Xsqlite3_value_int(tls, pVal) @@ -203401,7 +205398,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnUsermerge = nUsermerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35762) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35908) { nCrisisMerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nCrisisMerge = Xsqlite3_value_int(tls, pVal) @@ -203418,7 +205415,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnCrisisMerge = nCrisisMerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35774) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35920) { nVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nVal = Xsqlite3_value_int(tls, pVal) @@ -203433,7 +205430,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } (*TFts5Config)(unsafe.Pointer(pConfig)).FnDeleteMerge = nVal } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35410) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35556) { zIn = Xsqlite3_value_text(tls, pVal) rc = _sqlite3Fts5ConfigParseRank(tls, zIn, bp, bp+8) if rc == SQLITE_OK { @@ -203448,7 +205445,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35786) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35932) { bVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { bVal = Xsqlite3_value_int(tls, pVal) @@ -203490,7 +205487,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in var _ /* p at bp+0 */ uintptr var _ /* rc at bp+8 */ int32 _, _, _, _, _ = iVersion, pVal, zK, zSelect, zSql - zSelect = __ccgo_ts + 35800 + zSelect = __ccgo_ts + 35946 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_OK iVersion = 0 @@ -203511,7 +205508,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in for int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zK = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) pVal = Xsqlite3_column_value(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) - if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35832) { + if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35978) { iVersion = Xsqlite3_value_int(tls, pVal) } else { *(*int32)(unsafe.Pointer(bp + 12)) = 0 @@ -203524,7 +205521,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in *(*int32)(unsafe.Pointer(bp + 8)) = int32(SQLITE_ERROR) if (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg != 0 { _ = libc.Int32FromInt32(0) - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35840, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35986, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = iVersion @@ -203746,7 +205743,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr } } if int32(*(*uint8)(unsafe.Pointer(z2))) == int32('\000') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35911, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36057, 0) return FTS5_EOF } goto _1 @@ -203757,7 +205754,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z2) - int64(z)) default: if _sqlite3Fts5IsBareword(tls, *(*uint8)(unsafe.Pointer(z))) == 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35931, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36077, libc.VaList(bp+8, z)) return FTS5_EOF } tok = int32(FTS5_STRING) @@ -203772,13 +205769,13 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr z21++ } (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z21) - int64(z)) - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35962, uint64(2)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36108, uint64(2)) == 0 { tok = int32(FTS5_OR) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35965, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36111, uint64(3)) == 0 { tok = int32(FTS5_NOT) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30706, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30852, uint64(3)) == 0 { tok = int32(FTS5_AND) } break @@ -204199,6 +206196,7 @@ func _fts5ExprSynonymList(tls *libc.TLS, pTerm uintptr, iRowid Ti64, pBuf uintpt *(*int32)(unsafe.Pointer(pn)) = (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn } } + goto synonym_poslist_out synonym_poslist_out: ; if aIter != bp { @@ -204331,6 +206329,7 @@ func _fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMat i++ } } + goto ismatch_out ismatch_out: ; *(*int32)(unsafe.Pointer(pbMatch)) = libc.BoolInt32((*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn > 0) @@ -204538,6 +206537,7 @@ func _fts5ExprNearIsMatch(tls *libc.TLS, pRc uintptr, pNear uintptr) (r int32) { goto ismatch_out } } + goto ismatch_out ismatch_out: ; bRet = libc.BoolInt32((*TFts5Buffer)(unsafe.Pointer((*(*TFts5NearTrimmer)(unsafe.Pointer(a))).FpOut)).Fn > 0) @@ -205883,8 +207883,8 @@ func _sqlite3Fts5ExprClonePhrase(tls *libc.TLS, pExpr uintptr, iPhrase int32, pp func _sqlite3Fts5ParseNear(tls *libc.TLS, pParse uintptr, pTok uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+35969, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34750, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) + if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+36115, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34896, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) } } @@ -205904,7 +207904,7 @@ func _sqlite3Fts5ParseSetDistance(tls *libc.TLS, pParse uintptr, pNear uintptr, } c = *(*uint8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i))) if int32(c) < int32('0') || int32(c) > int32('9') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35974, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36120, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) return } nNear = nNear*int32(10) + (int32(*(*uint8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i)))) - int32('0')) @@ -206044,7 +208044,7 @@ func _sqlite3Fts5ParseColset(tls *libc.TLS, pParse uintptr, pColset uintptr, p u iCol++ } if iCol == (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21016, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21148, libc.VaList(bp+8, z)) } else { pRet = _fts5ParseColset(tls, pParse, pColset, iCol) } @@ -206171,7 +208171,7 @@ func _sqlite3Fts5ParseSetColset(tls *libc.TLS, pParse uintptr, pExpr uintptr, pC var _ /* pFree at bp+0 */ uintptr *(*uintptr)(unsafe.Pointer(bp)) = pColset if (*TFts5Config)(unsafe.Pointer((*TFts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FeDetail == int32(FTS5_DETAIL_NONE) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36003, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36149, 0) } else { _fts5ParseSetColset(tls, pParse, pExpr, pColset, bp) } @@ -206368,11 +208368,11 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin pPhrase = *(*uintptr)(unsafe.Pointer(pNear + 24)) if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase != int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 0 && (*(*TFts5ExprTerm)(unsafe.Pointer(pPhrase + 32))).FbFirst != 0 { if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase == int32(1) { - v2 = __ccgo_ts + 36056 + v2 = __ccgo_ts + 36202 } else { - v2 = __ccgo_ts + 35969 + v2 = __ccgo_ts + 36115 } - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36063, libc.VaList(bp+8, v2)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36209, libc.VaList(bp+8, v2)) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -206381,7 +208381,7 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin _fts5ExprAddChildren(tls, pRet, pLeft) _fts5ExprAddChildren(tls, pRet, pRight) if (*TFts5ExprNode)(unsafe.Pointer(pRet)).FiHeight > int32(SQLITE_FTS5_MAX_EXPR_DEPTH) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36113, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36259, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -208550,7 +210550,7 @@ func _fts5DataRead(tls *libc.TLS, p uintptr, iRowid Ti64) (r uintptr) { ** to the requested entry. */ if (*TFts5Index)(unsafe.Pointer(p)).FpReader == uintptr(0) && rc == SQLITE_OK { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36166, iRowid, 0, p+72) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36312, iRowid, 0, p+72) } /* If either of the sqlite3_blob_open() or sqlite3_blob_reopen() calls ** above returned SQLITE_ERROR, return SQLITE_CORRUPT_VTAB instead. @@ -208644,7 +210644,7 @@ func _fts5DataWrite(tls *libc.TLS, p uintptr, iRowid Ti64, pData uintptr, nData } if (*TFts5Index)(unsafe.Pointer(p)).FpWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36172, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36318, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return } @@ -208673,7 +210673,7 @@ func _fts5DataDelete(tls *libc.TLS, p uintptr, iFirst Ti64, iLast Ti64) { } if (*TFts5Index)(unsafe.Pointer(p)).FpDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36223, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36369, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if _fts5IndexPrepareStmt(tls, p, p+88, zSql) != 0 { return } @@ -208707,7 +210707,7 @@ func _fts5DataRemoveSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { } if (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36272, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36418, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter, int32(1), iSegid) @@ -208877,7 +210877,7 @@ func _fts5StructureDecode(tls *libc.TLS, pData uintptr, nData int32, piCookie ui } i = int32(4) /* Check if this is a V2 structure record. Set bStructureV2 if it is. */ - if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36312, uint64(4)) { + if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36458, uint64(4)) { i += int32(4) bStructureV2 = int32(1) } @@ -209070,7 +211070,7 @@ func _fts5IndexDataVersion(tls *libc.TLS, p uintptr) (r Ti64) { iVersion = 0 if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*TFts5Index)(unsafe.Pointer(p)).FpDataVersion == uintptr(0) { - (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36317, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) + (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36463, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return 0 } @@ -209158,7 +211158,7 @@ func _fts5StructureWrite(tls *libc.TLS, p uintptr, pStruct uintptr) { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = int32(4) if (*TFts5Structure)(unsafe.Pointer(pStruct)).FnOriginCntr > uint64(0) { _ = libc.Int32FromInt32(0) - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36312, uint64(4)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36458, uint64(4)) *(*int32)(unsafe.Pointer(bp + 8)) += int32(4) } *(*int32)(unsafe.Pointer(bp + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), uint64((*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel)) @@ -210136,6 +212136,7 @@ func _fts5SegIterNext_None(tls *libc.TLS, p uintptr, pIter uintptr, pbNewTerm ui } _fts5SegIterLoadNPos(tls, p, pIter) return + goto next_none_eof next_none_eof: ; _fts5DataRelease(tls, (*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf) @@ -210512,6 +212513,7 @@ func _fts5LeafSeek(tls *libc.TLS, p uintptr, bGe int32, pIter uintptr, pTerm uin *(*Tu32)(unsafe.Pointer(bp)) += uint32(_sqlite3Fts5GetVarint32(tls, a+uintptr(*(*Tu32)(unsafe.Pointer(bp))), bp+4)) } } + goto search_failed search_failed: ; if bGe == 0 { @@ -210543,6 +212545,7 @@ search_failed: } } } + goto search_success search_success: ; if int64(*(*Tu32)(unsafe.Pointer(bp)))+int64(*(*Tu32)(unsafe.Pointer(bp + 8))) > int64(n) || *(*Tu32)(unsafe.Pointer(bp + 8)) < uint32(1) { @@ -210572,7 +212575,7 @@ func _fts5IdxSelectStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36340, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36486, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect } @@ -210664,7 +212667,7 @@ func _fts5IdxNextStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36424, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36570, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect } @@ -211797,6 +213800,7 @@ func _fts5IterSetOutputs_Col100(tls *libc.TLS, pIter uintptr, pSeg uintptr) { iPrevOut = iPrev } } + goto setoutputs_col_out setoutputs_col_out: ; (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*TFts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp @@ -212022,6 +214026,7 @@ func _fts5MultiIterNew(tls *libc.TLS, p uintptr, pStruct uintptr, flags int32, p _fts5MultiIterFree(tls, pNew) *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) } + goto fts5MultiIterNew_post_check fts5MultiIterNew_post_check: ; _ = libc.Int32FromInt32(0) @@ -212341,7 +214346,7 @@ func _fts5WriteFlushBtree(tls *libc.TLS, p uintptr, pWriter uintptr) { if (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn > 0 { v1 = (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fp } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } z = v1 /* The following was already done in fts5WriteInit(): */ @@ -212710,7 +214715,7 @@ func _fts5WriteInit(tls *libc.TLS, p uintptr, pWriter uintptr, iSegid int32) { _sqlite3Fts5BufferSize(tls, p+60, pWriter+8+8, uint32(nBuffer)) if (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36506, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36652, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { /* Initialize the 4-byte leaf-page header to 0x00. */ @@ -213211,7 +215216,7 @@ func _fts5SecureDeleteIdxEntry(tls *libc.TLS, p uintptr, iSegid int32, iPgno int if iPgno != int32(1) { _ = libc.Int32FromInt32(0) if (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx == uintptr(0) { - _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36563, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36709, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx, int32(1), iSegid) @@ -214751,7 +216756,7 @@ func _sqlite3Fts5IndexReinit(tls *libc.TLS, p uintptr) (r int32) { if (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FbContentlessDelete != 0 { (*(*TFts5Structure)(unsafe.Pointer(bp))).FnOriginCntr = uint64(1) } - _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1648, 0) + _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1662, 0) _fts5StructureWrite(tls, p, bp) return _fts5IndexReturn(tls, p) } @@ -214778,11 +216783,11 @@ func _sqlite3Fts5IndexOpen(tls *libc.TLS, pConfig uintptr, bCreate int32, pp uin if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Index)(unsafe.Pointer(p)).FpConfig = pConfig (*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit = int32(FTS5_WORK_UNIT) - (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36624, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36770, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl != 0 && bCreate != 0 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25741, __ccgo_ts+36632, 0, pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25887, __ccgo_ts+36778, 0, pzErr) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11793, __ccgo_ts+36667, int32(1), pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11918, __ccgo_ts+36813, int32(1), pzErr) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5IndexReinit(tls, p) @@ -215321,7 +217326,7 @@ func _fts5SetupTokendataIter(tls *libc.TLS, p uintptr, pToken uintptr, nToken in pNew = _fts5MultiIterAlloc(tls, p, (*TFts5Structure)(unsafe.Pointer(pStruct)).FnSegment) if pSmall != 0 { _sqlite3Fts5BufferSet(tls, p+60, bp, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fn, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+36711) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+36857) } else { _sqlite3Fts5BufferSet(tls, p+60, bp, nToken, pToken) } @@ -215851,7 +217856,7 @@ func _sqlite3Fts5IndexSetCookie(tls *libc.TLS, p uintptr, iNew int32) (r int32) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) _ = libc.Int32FromInt32(0) _sqlite3Fts5Put32(tls, bp, iNew) - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36166, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36312, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) if rc == SQLITE_OK { Xsqlite3_blob_write(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), bp, int32(4), 0) rc = Xsqlite3_blob_close(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) @@ -216450,7 +218455,7 @@ func _fts5IndexIntegrityCheckSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { if (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst == 0 { return } - _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36713, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) + _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36859, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) /* Iterate through the b-tree hierarchy. */ for (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { /* Data for this leaf */ zIdxTerm = Xsqlite3_column_blob(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -216683,7 +218688,7 @@ func _sqlite3Fts5IndexIntegrityCheck(tls *libc.TLS, p uintptr, cksum Tu64, bUseC } else { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = 0 _fts5SegiterPoslist(tls, p, *(*uintptr)(unsafe.Pointer(bp + 16))+104+uintptr((*(*TFts5CResult)(unsafe.Pointer((*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaFirst + 1*4))).FiFirst)*128, uintptr(0), bp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+36799) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+36945) for 0 == _sqlite3Fts5PoslistNext64(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn, bp+40, bp+32) { iCol = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) >> libc.Int32FromInt32(32)) iTokOff = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) & libc.Int64FromInt32(0x7FFFFFFF)) @@ -217281,7 +219286,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36804, 0) + (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36950, 0) return int32(SQLITE_ERROR) } idxStr = Xsqlite3_malloc(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint*int32(8)+int32(1)) @@ -217321,7 +219326,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v3 = iIdxStr iIdxStr++ *(*uint8)(unsafe.Pointer(idxStr + uintptr(v3))) = uint8('M') - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5138, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5202, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) _ = libc.Int32FromInt32(0) } @@ -217343,7 +219348,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v6 = int32('G') } *(*uint8)(unsafe.Pointer(idxStr + uintptr(v5))) = uint8(v6) - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5138, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5202, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) iCons++ v7 = iCons @@ -217785,7 +219790,7 @@ func _fts5NextMethod(tls *libc.TLS, pCursor uintptr) (r int32) { *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_EOF) rc = Xsqlite3_reset(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpStmt) if rc != SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } } else { rc = SQLITE_OK @@ -217812,7 +219817,7 @@ func _fts5PrepareStatement(tls *libc.TLS, ppStmt uintptr, pConfig uintptr, zFmt } else { rc = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } Xsqlite3_free(tls, zSql) } @@ -217847,21 +219852,21 @@ func _fts5CursorFirstSorted(tls *libc.TLS, pTab uintptr, pCsr uintptr, bDesc int ** ** If SQLite a built-in statement cache, this wouldn't be a problem. */ if zRankArgs != 0 { - v1 = __ccgo_ts + 14990 + v1 = __ccgo_ts + 15083 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } if zRankArgs != 0 { v2 = zRankArgs } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } if bDesc != 0 { - v3 = __ccgo_ts + 36843 + v3 = __ccgo_ts + 36989 } else { - v3 = __ccgo_ts + 36848 + v3 = __ccgo_ts + 36994 } - rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+36852, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) + rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+36998, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpSorter = pSorter if rc == SQLITE_OK { _ = libc.Int32FromInt32(0) @@ -217921,14 +219926,14 @@ func _fts5SpecialMatch(tls *libc.TLS, pTab uintptr, pCsr uintptr, zQuery uintptr } _ = libc.Int32FromInt32(0) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan = int32(FTS5_PLAN_SPECIAL) - if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+36907, z, n) { + if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+37053, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = int64(_sqlite3Fts5IndexReads(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)) } else { - if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5481, z, n) { + if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5545, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId } else { /* An unrecognized directive. Return an error message. */ - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36913, libc.VaList(bp+8, n, z)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37059, libc.VaList(bp+8, n, z)) rc = int32(SQLITE_ERROR) } } @@ -217978,7 +219983,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { zRank = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank zRankArgs = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs if zRankArgs != 0 { - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36941, libc.VaList(bp+24, zRankArgs)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37087, libc.VaList(bp+24, zRankArgs)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp+8, uintptr(0)) @@ -218014,7 +220019,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { pAux = _fts5FindAuxiliary(tls, pTab, zRank) if pAux == uintptr(0) { _ = libc.Int32FromInt32(0) - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36951, libc.VaList(bp+24, zRank)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37097, libc.VaList(bp+24, zRank)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -218048,7 +220053,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_FREE_ZRANK) } else { if rc == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36972, libc.VaList(bp+24, z)) + (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37118, libc.VaList(bp+24, z)) } } } else { @@ -218056,7 +220061,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRank (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRankArgs } else { - (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 34904 + (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 35050 (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = uintptr(0) } } @@ -218107,7 +220112,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint iIdxStr = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36804, 0) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36950, 0) return int32(SQLITE_ERROR) } if (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan != 0 { @@ -218137,7 +220142,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint case int32('M'): zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8))) if zText == uintptr(0) { - zText = __ccgo_ts + 1648 + zText = __ccgo_ts + 1662 } iCol = 0 for cond := true; cond; cond = int32(*(*uint8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) <= int32('9') { @@ -218265,7 +220270,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent == uintptr(0) { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37005, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37151, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) rc = int32(SQLITE_ERROR) } else { /* This is either a full-table scan (ePlan==FTS5_PLAN_SCAN) or a lookup @@ -218290,6 +220295,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } } + goto filter_out filter_out: ; _sqlite3Fts5ExprFree(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -218408,7 +220414,7 @@ func _fts5SeekCursor(tls *libc.TLS, pCsr uintptr, bErrormsg int32) (r int32) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< int32(1) { - v1 = __ccgo_ts + 20869 + v1 = __ccgo_ts + 21001 } else { - v1 = __ccgo_ts + 37283 + v1 = __ccgo_ts + 37429 } - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37295, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37441, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if nArg == int32(1) { @@ -218673,7 +220679,7 @@ func _fts5UpdateMethod(tls *libc.TLS, pVtab uintptr, nArg int32, apVal uintptr, } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && bUpdateOrDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FbSecureDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion == int32(FTS5_CURRENT_VERSION) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35832, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35978, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = int32(FTS5_CURRENT_VERSION_SECUREDELETE) } @@ -219474,7 +221480,7 @@ func _fts5ApiCallback(tls *libc.TLS, context uintptr, argc int32, argv uintptr) iCsrId = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) pCsr = _fts5CursorFromCsrid(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal, iCsrId) if pCsr == uintptr(0) || (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan == 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37332, libc.VaList(bp+8, iCsrId)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37478, libc.VaList(bp+8, iCsrId)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } else { @@ -219666,7 +221672,7 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg = uintptr(0) } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 && Xsqlite3_vtab_nochange(tls, pCtx) != 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37353, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37499, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -219909,7 +221915,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr if pMod == uintptr(0) { _ = libc.Int32FromInt32(0) rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37424, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37570, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) } else { if azArg != 0 { v2 = azArg + 1*8 @@ -219925,7 +221931,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr (*TFts5Config)(unsafe.Pointer(pConfig)).FpTokApi = pMod + 16 if rc != SQLITE_OK { if pzErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37446, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37592, 0) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FePattern = _sqlite3Fts5TokenizerPattern(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pMod)).Fx.FxCreate, (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok) @@ -219981,7 +221987,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { pGlobal = Xsqlite3_user_data(tls, pCtx) _ = nArg _ = libc.Int32FromInt32(0) - ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37477) + ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37623) if ppApi != 0 { *(*uintptr)(unsafe.Pointer(ppApi)) = pGlobal } @@ -219996,7 +222002,7 @@ func _fts5SourceIdFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apUnused uintptr _ = libc.Int32FromInt32(0) _ = nArg _ = apUnused - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37490, -int32(1), uintptr(-libc.Int32FromInt32(1))) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37636, -int32(1), uintptr(-libc.Int32FromInt32(1))) } // C documentation @@ -220025,11 +222031,11 @@ func _fts5ShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName2 = [5]uintptr{ - 0: __ccgo_ts + 37581, - 1: __ccgo_ts + 35093, - 2: __ccgo_ts + 25741, - 3: __ccgo_ts + 35660, - 4: __ccgo_ts + 11793, + 0: __ccgo_ts + 37727, + 1: __ccgo_ts + 35239, + 2: __ccgo_ts + 25887, + 3: __ccgo_ts + 35806, + 4: __ccgo_ts + 11918, } // C documentation @@ -220043,21 +222049,27 @@ func _fts5IntegrityMethod(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zTabnam bp := tls.Alloc(32) defer tls.Free(32) var pTab uintptr - var rc int32 - _, _ = pTab, rc + var rc, v1 int32 + _, _, _ = pTab, rc, v1 pTab = pVtab _ = libc.Int32FromInt32(0) _ = isQuick rc = _sqlite3Fts5StorageIntegrity(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, 0) if rc&int32(0xff) == int32(SQLITE_CORRUPT) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37588, libc.VaList(bp+8, zSchema, zTabname)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37734, libc.VaList(bp+8, zSchema, zTabname)) + if *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { + v1 = SQLITE_OK + } else { + v1 = int32(SQLITE_NOMEM) + } + rc = v1 } else { if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37634, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37780, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) } } _sqlite3Fts5IndexCloseReader(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex) - return SQLITE_OK + return rc } func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { @@ -220076,7 +222088,7 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateFunction = __ccgo_fp(_fts5CreateAux) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateTokenizer = __ccgo_fp(_fts5CreateTokenizer) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxFindTokenizer = __ccgo_fp(_fts5FindTokenizer) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37697, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37843, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) if rc == SQLITE_OK { rc = _sqlite3Fts5IndexInit(tls, db) } @@ -220093,10 +222105,10 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { rc = _sqlite3Fts5VocabInit(tls, pGlobal, db) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37697, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37843, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37702, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37848, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) } } /* If SQLITE_FTS5_ENABLE_TEST_MI is defined, assume that the file @@ -220201,17 +222213,17 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(eStmt)*8)) == uintptr(0) { azStmt = [11]uintptr{ - 0: __ccgo_ts + 37717, - 1: __ccgo_ts + 37785, - 2: __ccgo_ts + 37854, - 3: __ccgo_ts + 37887, - 4: __ccgo_ts + 37926, - 5: __ccgo_ts + 37966, - 6: __ccgo_ts + 38005, - 7: __ccgo_ts + 38048, - 8: __ccgo_ts + 38087, - 9: __ccgo_ts + 38131, - 10: __ccgo_ts + 38171, + 0: __ccgo_ts + 37863, + 1: __ccgo_ts + 37931, + 2: __ccgo_ts + 38000, + 3: __ccgo_ts + 38033, + 4: __ccgo_ts + 38072, + 5: __ccgo_ts + 38112, + 6: __ccgo_ts + 38151, + 7: __ccgo_ts + 38194, + 8: __ccgo_ts + 38233, + 9: __ccgo_ts + 38277, + 10: __ccgo_ts + 38317, } pC = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig zSql = uintptr(0) @@ -220248,16 +222260,16 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, } case int32(FTS5_STMT_REPLACE_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v2 = __ccgo_ts + 38194 + v2 = __ccgo_ts + 38340 } else { - v2 = __ccgo_ts + 1648 + v2 = __ccgo_ts + 1662 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName, v2)) case int32(FTS5_STMT_LOOKUP_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v3 = __ccgo_ts + 38197 + v3 = __ccgo_ts + 38343 } else { - v3 = __ccgo_ts + 1648 + v3 = __ccgo_ts + 1662 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, v3, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName)) default: @@ -220276,7 +222288,7 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, (*TFts5Config)(unsafe.Pointer((*TFts5Storage)(unsafe.Pointer(p)).FpConfig)).FbLock-- Xsqlite3_free(tls, zSql) if rc != SQLITE_OK && pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3795, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3859, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) } } } @@ -220313,12 +222325,12 @@ func _sqlite3Fts5DropAll(tls *libc.TLS, pConfig uintptr) (r int32) { defer tls.Free(64) var rc int32 _ = rc - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38205, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38351, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38309, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38455, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38347, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38493, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } return rc } @@ -220327,7 +222339,7 @@ func _fts5StorageRenameOne(tls *libc.TLS, pConfig uintptr, pRc uintptr, zTail ui bp := tls.Alloc(48) defer tls.Free(48) if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38385, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) + *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38531, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) } } @@ -220339,14 +222351,14 @@ func _sqlite3Fts5StorageRename(tls *libc.TLS, pStorage uintptr, zName uintptr) ( _ = pConfig pConfig = (*TFts5Storage)(unsafe.Pointer(pStorage)).FpConfig *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageSync(tls, pStorage) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25741, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11793, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37581, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25887, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11918, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37727, zName) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35660, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35806, zName) } if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35093, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35239, zName) } return *(*int32)(unsafe.Pointer(bp)) } @@ -220366,13 +222378,13 @@ func _sqlite3Fts5CreateTable(tls *libc.TLS, pConfig uintptr, zPost uintptr, zDef _, _ = rc, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if bWithout != 0 { - v1 = __ccgo_ts + 30381 + v1 = __ccgo_ts + 30527 } else { - v1 = __ccgo_ts + 1648 + v1 = __ccgo_ts + 1662 } - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38427, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38573, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38457, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38603, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -220413,36 +222425,36 @@ func _sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCr if zDefn == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38501, 0) + Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38647, 0) iOff = int32(libc.Xstrlen(tls, zDefn)) i = 0 for { if !(i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } - Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38524, libc.VaList(bp+8, i)) + Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38670, libc.VaList(bp+8, i)) iOff += int32(libc.Xstrlen(tls, zDefn+uintptr(iOff))) goto _2 _2: ; i++ } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35093, zDefn, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35239, zDefn, 0, pzErr) } Xsqlite3_free(tls, zDefn) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - zCols = __ccgo_ts + 38530 + zCols = __ccgo_ts + 38676 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 { - zCols = __ccgo_ts + 38562 + zCols = __ccgo_ts + 38708 } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35660, zCols, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35806, zCols, 0, pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37581, __ccgo_ts+38610, int32(1), pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37727, __ccgo_ts+38756, int32(1), pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35832, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35978, uintptr(0), int32(FTS5_CURRENT_VERSION)) } } if rc != 0 { @@ -220789,9 +222801,9 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig (*TFts5Storage)(unsafe.Pointer(p)).FbTotalsValid = 0 /* Delete the contents of the %_data and %_docsize tables. */ - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38627, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38773, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38677, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38823, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } /* Reinitialize the %_data table. This call creates the initial structure ** and averages records. */ @@ -220799,7 +222811,7 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3Fts5IndexReinit(tls, (*TFts5Storage)(unsafe.Pointer(p)).FpIndex) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35832, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35978, uintptr(0), int32(FTS5_CURRENT_VERSION)) } return rc } @@ -221013,7 +223025,7 @@ func _fts5StorageCount(tls *libc.TLS, p uintptr, zSuffix uintptr, pnRow uintptr) var _ /* pCnt at bp+0 */ uintptr _, _, _ = pConfig, rc, zSql pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38706, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38852, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -221224,14 +223236,14 @@ func _sqlite3Fts5StorageIntegrity(tls *libc.TLS, p uintptr, iArg int32) (r int32 ** number of rows. */ if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { *(*Ti64)(unsafe.Pointer(bp + 48)) = 0 - rc = _fts5StorageCount(tls, p, __ccgo_ts+35093, bp+48) + rc = _fts5StorageCount(tls, p, __ccgo_ts+35239, bp+48) if rc == SQLITE_OK && *(*Ti64)(unsafe.Pointer(bp + 48)) != (*TFts5Storage)(unsafe.Pointer(p)).FnTotalRow { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<= int32('A') && int32(*(*uint8)(unsafe.Pointer(zCsr))) <= int32('Z') { @@ -222161,6 +224175,7 @@ _5: goto _2 _1: ; + goto tokenize_done tokenize_done: ; if rc == int32(SQLITE_DONE) { @@ -222224,7 +224239,7 @@ func _fts5PorterCreate(tls *libc.TLS, pCtx uintptr, azArg uintptr, nArg int32, p pApi = pCtx rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zBase = __ccgo_ts + 38798 + zBase = __ccgo_ts + 38944 if nArg > 0 { zBase = *(*uintptr)(unsafe.Pointer(azArg)) } @@ -222441,64 +224456,64 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38808, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38954, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38811, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38957, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38816, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38962, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('e'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38821, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38967, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38824, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38970, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('l'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38827, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38973, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38832, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38978, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38837, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38983, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38841, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38987, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38847, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38993, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38852, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38998, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -222507,49 +224522,49 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38856, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39002, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1_and_S_or_T(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38860, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39006, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } } case int32('s'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38863, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39009, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('t'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38867, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39013, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38871, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39017, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38875, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39021, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38879, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39025, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('z'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38883, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39029, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -222566,20 +224581,20 @@ func _fts5PorterStep1B2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38887, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38867, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39033, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39013, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('b'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38890, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38893, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39036, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39039, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38897, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38883, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39043, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39029, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } @@ -222595,75 +224610,75 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38900, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39046, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38867, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39013, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38908, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39054, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38915, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39061, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(4) } } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38920, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39066, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38816, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38962, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38925, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39071, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38811, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38957, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } } case int32('e'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38930, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39076, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38883, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39029, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('g'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38935, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39081, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15907, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15986, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('l'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38940, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39086, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38893, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39039, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38944, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39090, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38808, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38954, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38949, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39095, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38852, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38998, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38955, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39101, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38959, uint64(1)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39105, uint64(1)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(1) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38961, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39107, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38875, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39021, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } @@ -222672,48 +224687,48 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38967, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39113, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38883, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39029, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38975, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39121, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38867, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39013, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38981, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39127, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38867, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39013, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } } } case int32('s'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38986, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39132, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38808, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38954, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38992, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39138, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38879, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39025, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39000, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39146, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39008, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39154, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39012, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39158, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38875, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39021, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } @@ -222721,21 +224736,21 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39020, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39166, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38808, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38954, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39026, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39172, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38879, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39025, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39032, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39178, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38893, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39039, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(3) } } @@ -222753,48 +224768,48 @@ func _fts5PorterStep3(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39039, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39185, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38824, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38970, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } case int32('s'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39044, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39190, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39049, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39195, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38824, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38970, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39055, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39201, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38824, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38970, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39008, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39154, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39061, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39207, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } case int32('z'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39067, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39213, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38808, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38954, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } @@ -222810,13 +224825,13 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('e'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39073, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39219, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39077, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39223, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(2) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39080, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39226, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) ret = int32(1) @@ -222824,7 +224839,7 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39083, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39229, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) ret = int32(1) @@ -222910,6 +224925,7 @@ func _fts5PorterCb(tls *libc.TLS, pCtx uintptr, tflags int32, pToken uintptr, nT *(*int32)(unsafe.Pointer(bp))-- } return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, aBuf, *(*int32)(unsafe.Pointer(bp)), iStart, iEnd) + goto pass_through pass_through: ; return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, pToken, nToken, iStart, iEnd) @@ -222985,14 +225001,14 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p break } zArg = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+int32(1))*8)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39087) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39233) { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || *(*uint8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { (*TTrigramTokenizer)(unsafe.Pointer(pNew)).FbFold = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('0')) } } else { - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38780) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38926) { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('2') || *(*uint8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { @@ -223267,7 +225283,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { Fx Tfts5_tokenizer }{ 0: { - FzName: __ccgo_ts + 38798, + FzName: __ccgo_ts + 38944, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5UnicodeCreate), FxDelete: __ccgo_fp(_fts5UnicodeDelete), @@ -223275,7 +225291,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 1: { - FzName: __ccgo_ts + 39102, + FzName: __ccgo_ts + 39248, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5AsciiCreate), FxDelete: __ccgo_fp(_fts5AsciiDelete), @@ -223283,7 +225299,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 2: { - FzName: __ccgo_ts + 39108, + FzName: __ccgo_ts + 39254, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5PorterCreate), FxDelete: __ccgo_fp(_fts5PorterDelete), @@ -223291,7 +225307,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 3: { - FzName: __ccgo_ts + 39115, + FzName: __ccgo_ts + 39261, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5TriCreate), FxDelete: __ccgo_fp(_fts5TriDelete), @@ -228836,16 +230852,16 @@ func _fts5VocabTableType(tls *libc.TLS, zType uintptr, pzErr uintptr, peType uin zCopy = _sqlite3Fts5Strndup(tls, bp, zType, -int32(1)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { _sqlite3Fts5Dequote(tls, zCopy) - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39123) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39269) == 0 { *(*int32)(unsafe.Pointer(peType)) = FTS5_VOCAB_COL } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39127) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39273) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_ROW) } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39131) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39277) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_INSTANCE) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39140, libc.VaList(bp+16, zCopy)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39286, libc.VaList(bp+16, zCopy)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -228914,15 +230930,15 @@ func _fts5VocabInitVtab(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg var _ /* rc at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _ = azSchema, bDb, nByte, nDb, nTab, pRet, zDb, zTab, zType, v1, v2, v3 azSchema = [3]uintptr{ - 0: __ccgo_ts + 39174, - 1: __ccgo_ts + 39214, - 2: __ccgo_ts + 39249, + 0: __ccgo_ts + 39320, + 1: __ccgo_ts + 39360, + 2: __ccgo_ts + 39395, } pRet = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+23742, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) + bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+23865, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) if argc != int32(5) && bDb == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39292, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39438, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bDb != 0 { @@ -229093,10 +231109,10 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) zSql = uintptr(0) if (*TFts5VocabTable)(unsafe.Pointer(pTab)).FbBusy != 0 { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39325, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39471, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) return int32(SQLITE_ERROR) } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39356, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39502, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, (*TFts5VocabTable)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), bp+8, uintptr(0)) } @@ -229116,7 +231132,7 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39407, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39553, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } else { @@ -229425,7 +231441,7 @@ func _fts5VocabFilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, zUnuse if pLe != 0 { zCopy = Xsqlite3_value_text(tls, pLe) if zCopy == uintptr(0) { - zCopy = __ccgo_ts + 1648 + zCopy = __ccgo_ts + 1662 } (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm = Xsqlite3_value_bytes(tls, pLe) (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm = Xsqlite3_malloc(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm+int32(1)) @@ -229553,7 +231569,7 @@ func _sqlite3Fts5VocabInit(tls *libc.TLS, pGlobal uintptr, db uintptr) (r int32) var p uintptr _ = p p = pGlobal - return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39433, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) + return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39579, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) } var _fts5Vocab = Tsqlite3_module{ @@ -229606,7 +231622,7 @@ func init() { // /************** End of stmt.c ************************************************/ // /* Return the source-id for this library */ func Xsqlite3_sourceid(tls *libc.TLS) (r uintptr) { - return __ccgo_ts + 39443 + return __ccgo_ts + 39589 } type TAggInfo_col = struct { @@ -229888,11 +231904,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]uint8{'3', '.', '4', '5', '.', '3'} +var Xsqlite3_version = [7]uint8{'3', '.', '4', '6', '.', '0'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-11.2.0\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%04d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00(subquery-%u)\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSmaller\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00PRAGMA \"%w\".integrity_check(%Q)\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00ceiling\x00floor\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00wrong # of entries in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00RIGHT PART OF \x00USE TEMP B-TREE FOR %sORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00parser stack overflow\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-11.2.0\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00ceiling\x00floor\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%04d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00%u-ROW VALUES CLAUSE\x00(subquery-%u)\x00unrecognized token: \"%s\"\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSizeBetween\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: \"%s\" - should this be a string literal in single-quotes?\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00SCAN %S\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00wrong # of entries in index \x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00LAST TERM OF \x00USE TEMP B-TREE FOR %sORDER BY\x00USE TEMP B-TREE FOR LAST %d TERMS OF ORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00syntax error\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00,\n\x00: \x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00 \x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_pretty\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00" type Sqlite3_int64 = sqlite3_int64 type Sqlite3_mutex_methods = sqlite3_mutex_methods diff --git a/vendor/modernc.org/sqlite/lib/sqlite_linux_s390x.go b/vendor/modernc.org/sqlite/lib/sqlite_linux_s390x.go index ca700f3b..2c276e6c 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_linux_s390x.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_linux_s390x.go @@ -1,4 +1,4 @@ -// Code generated for linux/s390x by 'generator -mlong-double-64 --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -import runtime -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -extended-errors -o sqlite3.go sqlite3.c -I/tmp/libsqlite3/sqlite-amalgamation-3450300/ccgo -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. +// Code generated for linux/s390x by 'generator -mlong-double-64 --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libz/include/linux/s390x -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libtcl8.6/include/linux/s390x -extended-errors -o sqlite3.go sqlite3.c -DSQLITE_MUTEX_NOOP -DSQLITE_OS_UNIX=1 -eval-all-macros', DO NOT EDIT. //go:build linux && s390x // +build linux,s390x @@ -10,8 +10,6 @@ import ( "unsafe" "modernc.org/libc" - - "runtime" ) var ( @@ -1015,6 +1013,7 @@ const OPFLG_IN1 = 2 const OPFLG_IN2 = 4 const OPFLG_IN3 = 8 const OPFLG_JUMP = 1 +const OPFLG_JUMP0 = 128 const OPFLG_NCYCLE = 64 const OPFLG_OUT2 = 16 const OPFLG_OUT3 = 32 @@ -1092,7 +1091,7 @@ const OP_IfNotOpen = 25 const OP_IfNotZero = 60 const OP_IfNullRow = 20 const OP_IfPos = 59 -const OP_IfSmaller = 33 +const OP_IfSizeBetween = 33 const OP_IncrVacuum = 62 const OP_Init = 8 const OP_InitCoroutine = 11 @@ -1495,6 +1494,7 @@ const SF_ComplexResult = 262144 const SF_Compound = 256 const SF_Converted = 65536 const SF_CopyCte = 67108864 +const SF_Correlated = 536870912 const SF_Distinct = 1 const SF_Expanded = 64 const SF_FixedLimit = 16384 @@ -1767,6 +1767,7 @@ const SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT = -1 const SQLITE_DEFAULT_LOOKASIDE = 40 const SQLITE_DEFAULT_MEMSTATUS = 0 const SQLITE_DEFAULT_MMAP_SIZE = 0 +const SQLITE_DEFAULT_OPTIMIZE_LIMIT = 2000 const SQLITE_DEFAULT_PAGE_SIZE = 4096 const SQLITE_DEFAULT_PCACHE_INITSZ = 20 const SQLITE_DEFAULT_PROXYDIR_PERMISSIONS = 493 @@ -1784,6 +1785,7 @@ const SQLITE_DESERIALIZE_READONLY = 4 const SQLITE_DESERIALIZE_RESIZEABLE = 2 const SQLITE_DETACH = 25 const SQLITE_DETERMINISTIC = 2048 +const SQLITE_DIGIT_SEPARATOR = 95 const SQLITE_DIRECTONLY = 524288 const SQLITE_DIRECT_OVERFLOW_READ = 1 const SQLITE_DONE = 101 @@ -2208,7 +2210,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355" +const SQLITE_SOURCE_ID = "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2316,8 +2318,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 3 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.45.3" -const SQLITE_VERSION_NUMBER = 3045003 +const SQLITE_VERSION = "3.46.0" +const SQLITE_VERSION_NUMBER = 3046000 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -2474,11 +2476,11 @@ const TF_HasStat1 = 16 const TF_HasStat4 = 8192 const TF_HasStored = 64 const TF_HasVirtual = 32 +const TF_MaybeReanalyze = 256 const TF_NoVisibleRowid = 512 const TF_OOOHidden = 1024 const TF_Readonly = 1 const TF_Shadow = 4096 -const TF_StatsUsed = 256 const TF_Strict = 65536 const TF_WithoutRowid = 128 const TIMER_ABSTIME = 1 @@ -2635,7 +2637,7 @@ const TK_ID = 59 const TK_IF = 18 const TK_IF_NULL_ROW = 179 const TK_IGNORE = 63 -const TK_ILLEGAL = 184 +const TK_ILLEGAL = 185 const TK_IMMEDIATE = 8 const TK_IN = 49 const TK_INDEX = 161 @@ -2683,6 +2685,7 @@ const TK_PRAGMA = 70 const TK_PRECEDING = 88 const TK_PRIMARY = 122 const TK_PTR = 112 +const TK_QNUMBER = 183 const TK_QUERY = 3 const TK_RAISE = 71 const TK_RANGE = 89 @@ -2707,7 +2710,7 @@ const TK_SELECT_COLUMN = 178 const TK_SEMI = 1 const TK_SET = 130 const TK_SLASH = 109 -const TK_SPACE = 183 +const TK_SPACE = 184 const TK_SPAN = 181 const TK_STAR = 108 const TK_STRING = 117 @@ -2720,12 +2723,12 @@ const TK_TRANSACTION = 6 const TK_TRIGGER = 77 const TK_TRUEFALSE = 170 const TK_TRUTH = 175 -const TK_UMINUS = 173 +const TK_UMINUS = 174 const TK_UNBOUNDED = 90 const TK_UNION = 134 const TK_UNIQUE = 123 const TK_UPDATE = 129 -const TK_UPLUS = 174 +const TK_UPLUS = 173 const TK_USING = 144 const TK_VACUUM = 78 const TK_VALUES = 139 @@ -2881,31 +2884,37 @@ const W_OK = 2 const XN_EXPR = -2 const XN_ROWID = -1 const X_OK = 1 +const YYDYNSTACK = 1 const YYFALLBACK = 1 +const YYFREE = 0 +const YYGROWABLESTACK = 1 const YYMALLOCARGTYPE = 0 -const YYNOCODE = 319 +const YYNOCODE = 322 const YYNOERRORRECOVERY = 1 -const YYNRULE = 405 -const YYNRULE_WITH_ACTION = 340 -const YYNSTATE = 579 -const YYNTOKEN = 185 +const YYNRULE = 409 +const YYNRULE_WITH_ACTION = 344 +const YYNSTATE = 583 +const YYNTOKEN = 186 const YYPARSEFREENEVERNULL = 1 +const YYREALLOC = 0 const YYSTACKDEPTH = 100 const YYWILDCARD = 101 -const YY_ACCEPT_ACTION = 1244 -const YY_ACTTAB_COUNT = 2100 -const YY_ERROR_ACTION = 1243 -const YY_MAX_REDUCE = 1650 -const YY_MAX_SHIFT = 578 -const YY_MAX_SHIFTREDUCE = 1242 -const YY_MIN_REDUCE = 1246 -const YY_MIN_SHIFTREDUCE = 838 -const YY_NO_ACTION = 1245 -const YY_REDUCE_COUNT = 410 -const YY_REDUCE_MAX = 1753 -const YY_REDUCE_MIN = -271 -const YY_SHIFT_COUNT = 578 -const YY_SHIFT_MAX = 2088 +const YY_ACCEPT_ACTION = 1255 +const YY_ACTTAB_COUNT = 2142 +const YY_ERROR_ACTION = 1254 +const YY_MAX_DSTRCTR = 319 +const YY_MAX_REDUCE = 1665 +const YY_MAX_SHIFT = 582 +const YY_MAX_SHIFTREDUCE = 1253 +const YY_MIN_DSTRCTR = 205 +const YY_MIN_REDUCE = 1257 +const YY_MIN_SHIFTREDUCE = 845 +const YY_NO_ACTION = 1256 +const YY_REDUCE_COUNT = 411 +const YY_REDUCE_MAX = 1798 +const YY_REDUCE_MIN = -275 +const YY_SHIFT_COUNT = 582 +const YY_SHIFT_MAX = 2128 const YY_SHIFT_MIN = 0 const _ALLOCA_H = 1 const _ASSERT_H = 1 @@ -3519,6 +3528,9 @@ const fdatasync = 0 const first_valueInvFunc = 0 const first_valueValueFunc = 0 const fts5GetVarint = 0 +const fts5YYDYNSTACK = 0 +const fts5YYFREE = 0 +const fts5YYGROWABLESTACK = 0 const fts5YYMALLOCARGTYPE = 0 const fts5YYNFTS5TOKEN = 16 const fts5YYNOCODE = 27 @@ -3527,13 +3539,16 @@ const fts5YYNRULE = 28 const fts5YYNRULE_WITH_ACTION = 28 const fts5YYNSTATE = 35 const fts5YYPARSEFREENOTNULL = 1 +const fts5YYREALLOC = 0 const fts5YYSTACKDEPTH = 100 const fts5YY_ACCEPT_ACTION = 81 const fts5YY_ACTTAB_COUNT = 105 const fts5YY_ERROR_ACTION = 80 +const fts5YY_MAX_DSTRCTR = 24 const fts5YY_MAX_REDUCE = 110 const fts5YY_MAX_SHIFT = 34 const fts5YY_MAX_SHIFTREDUCE = 79 +const fts5YY_MIN_DSTRCTR = 16 const fts5YY_MIN_REDUCE = 83 const fts5YY_MIN_SHIFTREDUCE = 52 const fts5YY_NO_ACTION = 82 @@ -3955,11 +3970,11 @@ type sqlite3_file1 = Tsqlite3_file1 // ** // ** xLock() upgrades the database file lock. In other words, xLock() moves the // ** database file lock in the direction NONE toward EXCLUSIVE. The argument to -// ** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +// ** xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never // ** SQLITE_LOCK_NONE. If the database file lock is already at or above the // ** requested lock, then the call to xLock() is a no-op. // ** xUnlock() downgrades the database file lock to either SHARED or NONE. -// * If the lock is already at or below the requested lock state, then the call +// ** If the lock is already at or below the requested lock state, then the call // ** to xUnlock() is a no-op. // ** The xCheckReservedLock() method checks whether any database connection, // ** either in this process or in some other process, is holding a RESERVED, @@ -5739,6 +5754,7 @@ type Tsqlite3_changegroup = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -6065,8 +6081,8 @@ type Fts5PhraseIter1 = TFts5PhraseIter1 ** EXTENSION API FUNCTIONS ** ** xUserData(pFts): -** Return a copy of the context pointer the extension function was -** registered with. +** Return a copy of the pUserData pointer passed to the xCreateFunction() +** API when the extension function was registered. ** ** xColumnTotalSize(pFts, iCol, pnToken): ** If parameter iCol is less than zero, set output variable *pnToken @@ -7822,7 +7838,7 @@ type uptr = Tuptr ** 0x00000010 Display sqlite3_index_info xBestIndex calls ** 0x00000020 Range an equality scan metrics ** 0x00000040 IN operator decisions -** 0x00000080 WhereLoop cost adjustements +** 0x00000080 WhereLoop cost adjustments ** 0x00000100 ** 0x00000200 Covering index decisions ** 0x00000400 OR optimization @@ -8334,6 +8350,7 @@ type TParse = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -8553,6 +8570,7 @@ type TSrcItem = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -10829,10 +10847,12 @@ type IdList1 = TIdList1 ** ** Union member validity: ** -** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc -** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy -** u2.pIBIndex fg.isIndexedBy && !fg.isCte -** u2.pCteUse fg.isCte && !fg.isIndexedBy +** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc +** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy +** u1.nRow !fg.isTabFunc && !fg.isIndexedBy +** +** u2.pIBIndex fg.isIndexedBy && !fg.isCte +** u2.pCteUse fg.isCte && !fg.isIndexedBy */ type TSrcItem1 = struct { FpSchema uintptr @@ -10858,6 +10878,7 @@ type TSrcItem1 = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -11261,6 +11282,7 @@ type TParse1 = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -12623,12 +12645,12 @@ var _sqlite3WhereTrace = uint32(0) var _sqlite3OpcodeProperty = [190]uint8{ 4: uint8(0x10), 6: uint8(0x41), - 8: uint8(0x01), + 8: uint8(0x81), 9: uint8(0x01), 10: uint8(0x01), - 11: uint8(0x01), - 12: uint8(0x03), - 13: uint8(0x03), + 11: uint8(0x81), + 12: uint8(0x83), + 13: uint8(0x83), 14: uint8(0x01), 15: uint8(0x01), 16: uint8(0x03), @@ -12636,22 +12658,22 @@ var _sqlite3OpcodeProperty = [190]uint8{ 18: uint8(0x01), 19: uint8(0x12), 20: uint8(0x01), - 21: uint8(0x49), - 22: uint8(0x49), - 23: uint8(0x49), - 24: uint8(0x49), + 21: uint8(0xc9), + 22: uint8(0xc9), + 23: uint8(0xc9), + 24: uint8(0xc9), 25: uint8(0x01), 26: uint8(0x49), 27: uint8(0x49), 28: uint8(0x49), 29: uint8(0x49), - 30: uint8(0x49), + 30: uint8(0xc9), 31: uint8(0x49), - 32: uint8(0x41), + 32: uint8(0xc1), 33: uint8(0x01), 34: uint8(0x41), 35: uint8(0x41), - 36: uint8(0x41), + 36: uint8(0xc1), 37: uint8(0x01), 38: uint8(0x41), 39: uint8(0x41), @@ -12663,7 +12685,7 @@ var _sqlite3OpcodeProperty = [190]uint8{ 45: uint8(0x41), 46: uint8(0x23), 47: uint8(0x0b), - 48: uint8(0x01), + 48: uint8(0x81), 49: uint8(0x01), 50: uint8(0x03), 51: uint8(0x03), @@ -13533,7 +13555,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= int32(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(23890)) + return _sqlite3MisuseError(tls, int32(23961)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -13896,43 +13918,37 @@ type itimerspec = Titimerspec // ** A structure for holding a single date and time. // */ type TDateTime = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD uint8 - FrawS uint8 - FvalidYMD uint8 - FvalidHMS uint8 - FvalidTZ uint8 - FtzSet uint8 - FisError uint8 - FuseSubsec uint8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD uint8 + FvalidYMD uint8 + FvalidHMS uint8 + FnFloor uint8 + F__ccgo44 uint8 } type DateTime = TDateTime type TDateTime1 = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD uint8 - FrawS uint8 - FvalidYMD uint8 - FvalidHMS uint8 - FvalidTZ uint8 - FtzSet uint8 - FisError uint8 - FuseSubsec uint8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD uint8 + FvalidYMD uint8 + FvalidHMS uint8 + FnFloor uint8 + F__ccgo44 uint8 } type DateTime1 = TDateTime1 @@ -14002,6 +14018,7 @@ func _getDigits(tls *libc.TLS, zDate uintptr, zFormat uintptr, va uintptr) (r in cnt++ zFormat += uintptr(4) } + goto end_getDigits end_getDigits: ; _ = ap @@ -14058,6 +14075,8 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } else { if c == int32('Z') || c == int32('z') { zDate++ + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) goto zulu_time } else { return libc.BoolInt32(c != 0) @@ -14070,12 +14089,12 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } zDate += uintptr(5) (*TDateTime)(unsafe.Pointer(p)).Ftz = sgn * (*(*int32)(unsafe.Pointer(bp + 4)) + *(*int32)(unsafe.Pointer(bp))*int32(60)) + goto zulu_time zulu_time: ; for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(zDate))])&int32(0x01) != 0 { zDate++ } - (*TDateTime)(unsafe.Pointer(p)).FtzSet = uint8(1) return libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zDate))) != 0) } @@ -14092,11 +14111,10 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var ms, rScale float64 - var v1 int32 var _ /* h at bp+0 */ int32 var _ /* m at bp+4 */ int32 var _ /* s at bp+8 */ int32 - _, _, _ = ms, rScale, v1 + _, _ = ms, rScale ms = float64(0) if _getDigits(tls, zDate, __ccgo_ts+1171, libc.VaList(bp+24, bp, bp+4)) != int32(2) { return int32(1) @@ -14122,7 +14140,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 8)) = 0 } (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) (*TDateTime)(unsafe.Pointer(p)).Fh = *(*int32)(unsafe.Pointer(bp)) (*TDateTime)(unsafe.Pointer(p)).Fm = *(*int32)(unsafe.Pointer(bp + 4)) @@ -14130,12 +14148,6 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { if _parseTimezone(tls, zDate, p) != 0 { return int32(1) } - if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { - v1 = int32(1) - } else { - v1 = 0 - } - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(v1) return 0 } @@ -14146,7 +14158,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { // */ func _datetimeError(tls *libc.TLS, p uintptr) { libc.Xmemset(tls, p, 0, uint64(48)) - (*TDateTime)(unsafe.Pointer(p)).FisError = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 1, 0x2) } // C documentation @@ -14172,7 +14184,7 @@ func _computeJD(tls *libc.TLS, p uintptr) { M = int32(1) D = int32(1) } - if Y < -int32(4713) || Y > int32(9999) || (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Y < -int32(4713) || Y > int32(9999) || int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { _datetimeError(tls, p) return } @@ -14188,11 +14200,44 @@ func _computeJD(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) if (*TDateTime)(unsafe.Pointer(p)).FvalidHMS != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) += int64((*TDateTime)(unsafe.Pointer(p)).Fh*int32(3600000)+(*TDateTime)(unsafe.Pointer(p)).Fm*int32(60000)) + int64((*TDateTime)(unsafe.Pointer(p)).Fs*libc.Float64FromInt32(1000)+libc.Float64FromFloat64(0.5)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64((*TDateTime)(unsafe.Pointer(p)).Ftz * int32(60000)) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + } + } +} + +// C documentation +// +// /* +// ** Given the YYYY-MM-DD information current in p, determine if there +// ** is day-of-month overflow and set nFloor to the number of days that +// ** would need to be subtracted from the date in order to bring the +// ** date back to the end of the month. +// */ +func _computeFloor(tls *libc.TLS, p uintptr) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if (*TDateTime)(unsafe.Pointer(p)).FD <= int32(28) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } else { + if int32(1)<<(*TDateTime)(unsafe.Pointer(p)).FM&int32(0x15aa) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FM != int32(2) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = libc.BoolUint8((*TDateTime)(unsafe.Pointer(p)).FD == libc.Int32FromInt32(31)) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FY%int32(4) != 0 || (*TDateTime)(unsafe.Pointer(p)).FY%int32(100) == 0 && (*TDateTime)(unsafe.Pointer(p)).FY%int32(400) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8((*TDateTime)(unsafe.Pointer(p)).FD - int32(28)) + } else { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8((*TDateTime)(unsafe.Pointer(p)).FD - int32(29)) + } + } } } } @@ -14251,12 +14296,15 @@ func _parseYyyyMmDd(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FY = v1 (*TDateTime)(unsafe.Pointer(p)).FM = *(*int32)(unsafe.Pointer(bp + 4)) (*TDateTime)(unsafe.Pointer(p)).FD = *(*int32)(unsafe.Pointer(bp + 8)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + _computeFloor(tls, p) + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { _computeJD(tls, p) } return 0 } +/* Forward declaration */ + // C documentation // // /* @@ -14268,6 +14316,9 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) (*TDateTime)(unsafe.Pointer(p)).FiJD = _sqlite3StmtCurrentTime(tls, context) if (*TDateTime)(unsafe.Pointer(p)).FiJD > 0 { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + _clearYMD_HMS_TZ(tls, p) return 0 } else { return int32(1) @@ -14285,7 +14336,7 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) // */ func _setRawDateNumber(tls *libc.TLS, p uintptr, r float64) { (*TDateTime)(unsafe.Pointer(p)).Fs = r - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 0, 0x1) if r >= float64(0) && r < float64(5.3734845e+06) { (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r*libc.Float64FromFloat64(8.64e+07) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) @@ -14328,7 +14379,7 @@ func _parseDateOrTime(tls *libc.TLS, context uintptr, zDate uintptr, p uintptr) return 0 } else { if (_sqlite3StrICmp(tls, zDate, __ccgo_ts+1199) == 0 || _sqlite3StrICmp(tls, zDate, __ccgo_ts+1206) == 0) && _sqlite3NotPureFunc(tls, context) != 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) return _setDateTimeToCurrent(tls, context, p) } } @@ -14420,7 +14471,7 @@ func _computeHMS(tls *libc.TLS, p uintptr) { day_min = day_ms / int32(60000) (*TDateTime)(unsafe.Pointer(p)).Fm = day_min % int32(60) (*TDateTime)(unsafe.Pointer(p)).Fh = day_min / int32(60) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) } @@ -14442,7 +14493,7 @@ func _computeYMD_HMS(tls *libc.TLS, p uintptr) { func _clearYMD_HMS_TZ(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 } /* @@ -14543,9 +14594,9 @@ func _toLocaltime(tls *libc.TLS, p uintptr, pCtx uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FisError = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 1, 0x2) return SQLITE_OK } @@ -14593,13 +14644,13 @@ var _aXformType = [6]struct { FnName: uint8(5), FzName: [7]uint8{'m', 'o', 'n', 't', 'h'}, FrLimit: float32(176546), - FrXform: float32(2.592e+06), + FrXform: float32(libc.Float64FromFloat64(30) * libc.Float64FromFloat64(86400)), }, 5: { FnName: uint8(4), FzName: [7]uint8{'y', 'e', 'a', 'r'}, FrLimit: float32(14713), - FrXform: float32(3.1536e+07), + FrXform: float32(libc.Float64FromFloat64(365) * libc.Float64FromFloat64(86400)), }, } @@ -14613,15 +14664,15 @@ var _aXformType = [6]struct { func _autoAdjustDate(tls *libc.TLS, p uintptr) { var r float64 _ = r - if !((*TDateTime)(unsafe.Pointer(p)).FrawS != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + if !(int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } else { if (*TDateTime)(unsafe.Pointer(p)).Fs >= float64(int64(-libc.Int32FromInt32(21086676))*libc.Int64FromInt32(10000)) && (*TDateTime)(unsafe.Pointer(p)).Fs <= float64(libc.Int64FromInt32(25340230)*libc.Int64FromInt32(10000)+libc.Int64FromInt32(799)) { r = (*TDateTime)(unsafe.Pointer(p)).Fs*float64(1000) + float64(2.1086676e+14) _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } } @@ -14638,14 +14689,20 @@ func _autoAdjustDate(tls *libc.TLS, p uintptr) { // ** NNN.NNNN seconds // ** NNN months // ** NNN years +// ** +/-YYYY-MM-DD HH:MM:SS.SSS +// ** ceiling +// ** floor // ** start of month // ** start of year // ** start of week // ** start of day // ** weekday N // ** unixepoch +// ** auto // ** localtime // ** utc +// ** subsec +// ** subsecond // ** // ** Return 0 on success and 1 if there is any kind of error. If the error // ** is in a system call (i.e. localtime()), then an error message is written @@ -14656,12 +14713,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, bp := tls.Alloc(160) defer tls.Free(160) var Z, day Tsqlite3_int64 - var cnt, i, rc, x, y, v12, v2, v5, v7, v9 int32 - var iErr, iGuess, iOrigJD, v1 Ti64 - var rRounder, v10 float64 + var cnt, i, rc, x, y, v1, v10, v13, v3, v6, v8 int32 + var iErr, iGuess, iOrigJD, v2 Ti64 + var rRounder, v11 float64 var z0 uint8 var z2 uintptr - var v3, v6 bool + var v4, v7 bool var _ /* D at bp+64 */ int32 var _ /* M at bp+60 */ int32 var _ /* Y at bp+56 */ int32 @@ -14670,7 +14727,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, var _ /* new at bp+8 */ TDateTime var _ /* r at bp+0 */ float64 var _ /* tx at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v12, v2, v3, v5, v6, v7, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v11, v13, v2, v3, v4, v6, v7, v8 rc = int32(1) switch int32(_sqlite3UpperToLower[*(*uint8)(unsafe.Pointer(z))]) { case int32('a'): @@ -14687,6 +14744,33 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _autoAdjustDate(tls, p) rc = 0 } + case int32('c'): + /* + ** ceiling + ** + ** Resolve day-of-month overflow by rolling forward into the next + ** month. As this is the default action, this modifier is really + ** a no-op that is only included for symmetry. See "floor". + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1244) == 0 { + _computeJD(tls, p) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) + } + case int32('f'): + /* + ** floor + ** + ** Resolve day-of-month overflow by rolling back to the end of the + ** previous month. + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1252) == 0 { + _computeJD(tls, p) + *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64(int32((*TDateTime)(unsafe.Pointer(p)).FnFloor) * int32(86400000)) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + } case int32('j'): /* ** julianday @@ -14696,13 +14780,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** value in the allowed range of julian day numbers understood by ** SQLite (0..5373484.5) then the result will be NULL. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1244) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1258) == 0 { if idx > int32(1) { return int32(1) } /* IMP: R-31176-64601 */ - if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { rc = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } case int32('l'): @@ -14711,8 +14795,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Assuming the current time value is UTC (a.k.a. GMT), shift it to ** show local time. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1254) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - rc = _toLocaltime(tls, p, pCtx) + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1268) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x10>>4)) != 0 { + v1 = SQLITE_OK + } else { + v1 = _toLocaltime(tls, p, pCtx) + } + rc = v1 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 4, 0x10) } case int32('u'): /* @@ -14721,7 +14812,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Treat the current value of p->s as the number of ** seconds since 1970. Convert to a real julian day number. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1264) == 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1278) == 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { if idx > int32(1) { return int32(1) } /* IMP: R-49255-55373 */ @@ -14730,17 +14821,17 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(*(*float64)(unsafe.Pointer(bp)) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) rc = 0 } } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1274) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - if int32((*TDateTime)(unsafe.Pointer(p)).FtzSet) == 0 { /* Guess at the corresponding utc time */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1288) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x8>>3)) == 0 { /* Guess at the corresponding utc time */ cnt = 0 /* Guess is off by this much */ _computeJD(tls, p) - v1 = (*TDateTime)(unsafe.Pointer(p)).FiJD - iOrigJD = v1 - iGuess = v1 + v2 = (*TDateTime)(unsafe.Pointer(p)).FiJD + iOrigJD = v2 + iGuess = v2 iErr = 0 for { libc.Xmemset(tls, bp+8, 0, uint64(48)) @@ -14753,21 +14844,22 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, bp+8) iErr = (*(*TDateTime)(unsafe.Pointer(bp + 8))).FiJD - iOrigJD - goto _4 - _4: + goto _5 + _5: ; - if v3 = iErr != 0; v3 { - v2 = cnt + if v4 = iErr != 0; v4 { + v3 = cnt cnt++ } - if !(v3 && v2 < int32(3)) { + if !(v4 && v3 < int32(3)) { break } } libc.Xmemset(tls, p, 0, uint64(48)) (*TDateTime)(unsafe.Pointer(p)).FiJD = iGuess (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(1) - (*TDateTime)(unsafe.Pointer(p)).FtzSet = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) } rc = SQLITE_OK } @@ -14780,13 +14872,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** weekday N where 0==Sunday, 1==Monday, and so forth. If the ** date is already on the appropriate weekday, this is a no-op. */ - if v6 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1278, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v6 { - v5 = int32(*(*float64)(unsafe.Pointer(bp))) - n = v5 + if v7 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1292, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v7 { + v6 = int32(*(*float64)(unsafe.Pointer(bp))) + n = v6 } - if v6 && float64(v5) == *(*float64)(unsafe.Pointer(bp)) { + if v7 && float64(v6) == *(*float64)(unsafe.Pointer(bp)) { _computeYMD_HMS(tls, p) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) _computeJD(tls, p) Z = ((*TDateTime)(unsafe.Pointer(p)).FiJD + int64(129600000)) / int64(86400000) % int64(7) @@ -14810,9 +14902,9 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Show subsecond precision in the output of datetime() and ** unixepoch() and strftime('%s'). */ - if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1287, int32(9)) != 0 { + if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1301, int32(9)) != 0 { if Xsqlite3_stricmp(tls, z, __ccgo_ts+1199) == 0 || Xsqlite3_stricmp(tls, z, __ccgo_ts+1206) == 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = uint8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) rc = 0 } break @@ -14823,23 +14915,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z += uintptr(9) _computeYMD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(1) - v7 = libc.Int32FromInt32(0) - (*TDateTime)(unsafe.Pointer(p)).Fm = v7 - (*TDateTime)(unsafe.Pointer(p)).Fh = v7 + v8 = libc.Int32FromInt32(0) + (*TDateTime)(unsafe.Pointer(p)).Fm = v8 + (*TDateTime)(unsafe.Pointer(p)).Fh = v8 (*TDateTime)(unsafe.Pointer(p)).Fs = float64(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = uint8(0) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = uint8(0) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1297) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1311) == 0 { (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1303) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1317) == 0 { (*TDateTime)(unsafe.Pointer(p)).FM = int32(1) (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1308) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1322) == 0 { rc = 0 } } @@ -14881,15 +14973,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } if int32(*(*uint8)(unsafe.Pointer(z + uintptr(n)))) == int32('-') { - if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1312, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1326, libc.VaList(bp+136, bp+56)) == int32(1) { break } - if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1316, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1330, libc.VaList(bp+136, bp+56)) == int32(1) { break } } - goto _8 - _8: + goto _9 + _9: ; n++ } @@ -14906,12 +14998,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } /* Must start with +/- */ if n == int32(5) { - if _getDigits(tls, z+1, __ccgo_ts+1320, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1334, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } } else { _ = libc.Int32FromInt32(0) - if _getDigits(tls, z+1, __ccgo_ts+1332, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1346, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } z++ @@ -14933,13 +15025,14 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, *(*int32)(unsafe.Pointer(p + 12)) += *(*int32)(unsafe.Pointer(bp + 60)) } if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v9 + x = v10 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) _computeJD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = uint8(0) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(0) @@ -14983,7 +15076,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z++ } n = _sqlite3Strlen30(tls, z) - if n > int32(10) || n < int32(3) { + if n < int32(3) || n > int32(10) { break } if int32(_sqlite3UpperToLower[*(*uint8)(unsafe.Pointer(z + uintptr(n-int32(1))))]) == int32('s') { @@ -14992,11 +15085,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeJD(tls, p) _ = libc.Int32FromInt32(0) if *(*float64)(unsafe.Pointer(bp)) < libc.Float64FromInt32(0) { - v10 = -libc.Float64FromFloat64(0.5) + v11 = -libc.Float64FromFloat64(0.5) } else { - v10 = +libc.Float64FromFloat64(0.5) + v11 = +libc.Float64FromFloat64(0.5) } - rRounder = v10 + rRounder = v11 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = uint8(0) i = 0 for { if !(i < int32(libc.Uint64FromInt64(96)/libc.Uint64FromInt64(16))) { @@ -15009,20 +15103,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 12)) += int32(*(*float64)(unsafe.Pointer(bp))) if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v12 + x = v13 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) case int32(5): /* Special processing to add years */ y = int32(*(*float64)(unsafe.Pointer(bp))) _ = libc.Int32FromInt32(0) _computeYMD_HMS(tls, p) + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(p + 8)) += y + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = uint8(0) *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) break @@ -15032,8 +15129,8 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, rc = 0 break } - goto _11 - _11: + goto _12 + _12: ; i++ } @@ -15092,7 +15189,7 @@ func _isDate(tls *libc.TLS, context uintptr, argc int32, argv uintptr, p uintptr i++ } _computeJD(tls, p) - if (*TDateTime)(unsafe.Pointer(p)).FisError != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x2>>1)) != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { return int32(1) } if argc == int32(1) && (*TDateTime)(unsafe.Pointer(p)).FvalidYMD != 0 && (*TDateTime)(unsafe.Pointer(p)).FD > int32(28) { @@ -15140,7 +15237,7 @@ func _unixepochFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _ /* x at bp+0 */ TDateTime if _isDate(tls, context, argc, argv, bp) == 0 { _computeJD(tls, bp) - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { Xsqlite3_result_double(tls, context, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000)) } else { Xsqlite3_result_int64(tls, context, (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/int64(1000)-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000)) @@ -15185,7 +15282,7 @@ func _datetimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(15)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(16)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(17)] = uint8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(18)] = uint8(int32('0') + s/int32(10000)%int32(10)) (*(*[32]uint8)(unsafe.Pointer(bp + 48)))[int32(19)] = uint8(int32('0') + s/int32(1000)%int32(10)) @@ -15233,7 +15330,7 @@ func _timeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(3)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(4)] = uint8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(5)] = uint8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(6)] = uint8(int32('0') + s/int32(10000)%int32(10)) (*(*[16]uint8)(unsafe.Pointer(bp + 48)))[int32(7)] = uint8(int32('0') + s/int32(1000)%int32(10)) @@ -15294,6 +15391,62 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } +// C documentation +// +// /* +// ** Compute the number of days after the most recent January 1. +// ** +// ** In other words, compute the zero-based day number for the +// ** current year: +// ** +// ** Jan01 = 0, Jan02 = 1, ..., Jan31 = 30, Feb01 = 31, ... +// ** Dec31 = 364 or 365. +// */ +func _daysAfterJan01(tls *libc.TLS, pDate uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* jan01 at bp+0 */ TDateTime + *(*TDateTime)(unsafe.Pointer(bp)) = *(*TDateTime)(unsafe.Pointer(pDate)) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + (*(*TDateTime)(unsafe.Pointer(bp))).FvalidJD = uint8(0) + (*(*TDateTime)(unsafe.Pointer(bp))).FM = int32(1) + (*(*TDateTime)(unsafe.Pointer(bp))).FD = int32(1) + _computeJD(tls, bp) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD - (*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Monday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Monday, 1=Tuesday, 2=Wednesday, ..., 6=Sunday. +// */ +func _daysAfterMonday(tls *libc.TLS, pDate uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(43200000))/libc.Int64FromInt32(86400000)) % int32(7) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Sunday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Sunday, 1=Monday, 2=Tues, ..., 6=Saturday +// */ +func _daysAfterSunday(tls *libc.TLS, pDate uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)) % int32(7) +} + // C documentation // // /* @@ -15301,33 +15454,48 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { // ** // ** Return a string described by FORMAT. Conversions as follows: // ** -// ** %d day of month +// ** %d day of month 01-31 +// ** %e day of month 1-31 // ** %f ** fractional seconds SS.SSS +// ** %F ISO date. YYYY-MM-DD +// ** %G ISO year corresponding to %V 0000-9999. +// ** %g 2-digit ISO year corresponding to %V 00-99 // ** %H hour 00-24 -// ** %j day of year 000-366 +// ** %k hour 0-24 (leading zero converted to space) +// ** %I hour 01-12 +// ** %j day of year 001-366 // ** %J ** julian day number +// ** %l hour 1-12 (leading zero converted to space) // ** %m month 01-12 // ** %M minute 00-59 +// ** %p "am" or "pm" +// ** %P "AM" or "PM" +// ** %R time as HH:MM // ** %s seconds since 1970-01-01 // ** %S seconds 00-59 -// ** %w day of week 0-6 Sunday==0 -// ** %W week of year 00-53 +// ** %T time as HH:MM:SS +// ** %u day of week 1-7 Monday==1, Sunday==7 +// ** %w day of week 0-6 Sunday==0, Monday==1 +// ** %U week of year 00-53 (First Sunday is start of week 01) +// ** %V week of year 01-53 (First week containing Thursday is week 01) +// ** %W week of year 00-53 (First Monday is start of week 01) // ** %Y year 0000-9999 // ** %% % // */ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { - bp := tls.Alloc(160) - defer tls.Free(160) + bp := tls.Alloc(208) + defer tls.Free(208) var c, cf uint8 var db, zFmt, v3, v4, v5, v6, v7 uintptr - var h, nDay, wd int32 + var h int32 var i, j, v2 Tsize_t var iS Ti64 var s float64 var _ /* sRes at bp+48 */ Tsqlite3_str var _ /* x at bp+0 */ TDateTime + var _ /* y at bp+128 */ TDateTime var _ /* y at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, nDay, s, wd, zFmt, v2, v3, v4, v5, v6, v7 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, s, zFmt, v2, v3, v4, v5, v6, v7 if argc == 0 { return } @@ -15360,28 +15528,42 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { fallthrough case int32('e'): if int32(cf) == int32('d') { - v3 = __ccgo_ts + 1344 + v3 = __ccgo_ts + 1358 } else { - v3 = __ccgo_ts + 1349 + v3 = __ccgo_ts + 1363 } - Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) - case int32('f'): + Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('f'): /* Fractional seconds. (Non-standard) */ s = (*(*TDateTime)(unsafe.Pointer(bp))).Fs if s > float64(59.999) { s = float64(59.999) } - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1353, libc.VaList(bp+136, s)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1367, libc.VaList(bp+184, s)) case int32('F'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1360, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1374, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('G'): /* Fall thru */ + fallthrough + case int32('g'): + *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) + _ = libc.Int32FromInt32(0) + /* Move y so that it is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidYMD = uint8(0) + _computeYMD(tls, bp+80) + if int32(cf) == int32('g') { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY%int32(100))) + } else { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1389, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY)) + } case int32('H'): fallthrough case int32('k'): if int32(cf) == int32('H') { - v4 = __ccgo_ts + 1344 + v4 = __ccgo_ts + 1358 } else { - v4 = __ccgo_ts + 1349 + v4 = __ccgo_ts + 1363 } - Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) + Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) case int32('I'): /* Fall thru */ fallthrough case int32('l'): @@ -15393,73 +15575,72 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { h = int32(12) } if int32(cf) == int32('I') { - v5 = __ccgo_ts + 1344 + v5 = __ccgo_ts + 1358 } else { - v5 = __ccgo_ts + 1349 + v5 = __ccgo_ts + 1363 } - Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+136, h)) - case int32('W'): /* Fall thru */ - fallthrough - case int32('j'): /* Number of days since 1st day of year */ - *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidJD = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FM = int32(1) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FD = int32(1) - _computeJD(tls, bp+80) - nDay = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) - if int32(cf) == int32('W') { /* 0=Monday, 1=Tuesday, ... 6=Sunday */ - wd = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000) % libc.Int64FromInt32(7)) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1344, libc.VaList(bp+136, (nDay+int32(7)-wd)/int32(7))) - } else { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1375, libc.VaList(bp+136, nDay+int32(1))) - } - case int32('J'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1380, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) + Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+184, h)) + case int32('j'): /* Day of year. Jan01==1, Jan02==2, and so forth */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1394, libc.VaList(bp+184, _daysAfterJan01(tls, bp)+int32(1))) + case int32('J'): /* Julian day number. (Non-standard) */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1399, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) case int32('m'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1344, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) case int32('M'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1344, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('p'): /* Fall thru */ fallthrough case int32('P'): if (*(*TDateTime)(unsafe.Pointer(bp))).Fh >= int32(12) { if int32(cf) == int32('p') { - v6 = __ccgo_ts + 1386 + v6 = __ccgo_ts + 1405 } else { - v6 = __ccgo_ts + 1389 + v6 = __ccgo_ts + 1408 } Xsqlite3_str_append(tls, bp+48, v6, int32(2)) } else { if int32(cf) == int32('p') { - v7 = __ccgo_ts + 1392 + v7 = __ccgo_ts + 1411 } else { - v7 = __ccgo_ts + 1395 + v7 = __ccgo_ts + 1414 } Xsqlite3_str_append(tls, bp+48, v7, int32(2)) } case int32('R'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1398, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1417, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('s'): - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1408, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1427, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) } else { iS = (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/libc.Int64FromInt32(1000) - libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1413, libc.VaList(bp+136, iS)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1432, libc.VaList(bp+184, iS)) } case int32('S'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1344, libc.VaList(bp+136, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+184, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) case int32('T'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1418, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) - case int32('u'): /* Fall thru */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1437, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + case int32('u'): /* Day of week. 1 to 7. Monday==1, Sunday==7 */ fallthrough - case int32('w'): - c = uint8(int32(uint8(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)%libc.Int64FromInt32(7))) + int32('0')) + case int32('w'): /* Day of week. 0 to 6. Sunday==0, Monday==1 */ + c = uint8(int32(uint8(_daysAfterSunday(tls, bp))) + int32('0')) if int32(c) == int32('0') && int32(cf) == int32('u') { c = uint8('7') } Xsqlite3_str_appendchar(tls, bp+48, int32(1), c) + case int32('U'): /* Week num. 00-53. First Sun of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterSunday(tls, bp)+int32(7))/int32(7))) + case int32('V'): /* Week num. 01-53. First week with a Thur is week 01 */ + *(*TDateTime)(unsafe.Pointer(bp + 128)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Adjust y so that is the Thursday in the same week as x */ + _ = libc.Int32FromInt32(0) + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FvalidYMD = uint8(0) + _computeYMD(tls, bp+128) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+184, _daysAfterJan01(tls, bp+128)/int32(7)+int32(1))) + case int32('W'): /* Week num. 00-53. First Mon of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1358, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterMonday(tls, bp)+int32(7))/int32(7))) case int32('Y'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1433, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1389, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) case int32('%'): Xsqlite3_str_appendchar(tls, bp+48, int32(1), uint8('%')) default: @@ -15612,12 +15793,10 @@ func _timediffFunc(tls *libc.TLS, context uintptr, NotUsed1 int32, argv uintptr) p2 = bp *(*Tsqlite3_int64)(unsafe.Pointer(p2)) = Tsqlite3_int64(uint64(*(*Tsqlite3_int64)(unsafe.Pointer(p2))) + libc.Uint64FromInt32(1486995408)*libc.Uint64FromInt32(100000)) } - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidYMD = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidHMS = uint8(0) - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidTZ = uint8(0) + _clearYMD_HMS_TZ(tls, bp) _computeYMD_HMS(tls, bp) _sqlite3StrAccumInit(tls, bp+96, uintptr(0), uintptr(0), 0, int32(100)) - Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1438, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) + Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1452, libc.VaList(bp+136, int32(sign), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) _sqlite3ResultStrAccum(tls, context, bp+96) } @@ -15650,55 +15829,55 @@ var _aDateTimeFuncs = [10]TFuncDef{ FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1244, + FzName: __ccgo_ts + 1258, }, 1: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1264, + FzName: __ccgo_ts + 1278, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1472, + FzName: __ccgo_ts + 1486, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1477, + FzName: __ccgo_ts + 1491, }, 4: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1482, + FzName: __ccgo_ts + 1496, }, 5: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1491, + FzName: __ccgo_ts + 1505, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1500, + FzName: __ccgo_ts + 1514, }, 7: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1509, + FzName: __ccgo_ts + 1523, }, 8: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1522, + FzName: __ccgo_ts + 1536, }, 9: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1540, + FzName: __ccgo_ts + 1554, }, } @@ -16380,7 +16559,7 @@ func _sqlite3MemMalloc(tls *libc.TLS, nByte int32) (r uintptr) { *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1553, libc.VaList(bp+8, nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1567, libc.VaList(bp+8, nByte)) } return p } @@ -16445,7 +16624,7 @@ func _sqlite3MemRealloc(tls *libc.TLS, pPrior uintptr, nByte int32) (r uintptr) *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(nByte) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1591, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1605, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) } return p } @@ -17861,7 +18040,7 @@ func _sqlite3OomFault(tls *libc.TLS, db uintptr) (r uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++ (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = uint16(0) if (*Tsqlite3)(unsafe.Pointer(db)).FpParse != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1627, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1641, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) pParse = (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).FpOuterParse for { @@ -18288,7 +18467,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li v3 = int32(*(*uint8)(unsafe.Pointer(v4))) c = v3 if v3 == 0 { - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1641, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1655, int32(1)) break } /* Find out what flags are present */ @@ -18705,9 +18884,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial != 0 { if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial) == int32(2) { if flag_zeropad != 0 { - v57 = __ccgo_ts + 1643 + v57 = __ccgo_ts + 1657 } else { - v57 = __ccgo_ts + 1648 + v57 = __ccgo_ts + 1662 } bufpt = v57 length = _sqlite3Strlen30(tls, bufpt) @@ -18718,7 +18897,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP = int32(1000) (*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fn = int32(1) } else { - libc.Xmemcpy(tls, bp, __ccgo_ts+1652, uint64(5)) + libc.Xmemcpy(tls, bp, __ccgo_ts+1666, uint64(5)) bufpt = bp if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fsign) == int32('-') { /* no-op */ @@ -18740,14 +18919,13 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li prefix = flag_prefix } exp = (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP - int32(1) - if int32(xtype) == int32(etGENERIC) && precision > 0 { - precision-- - } /* ** If the field type is etGENERIC, then convert to either etEXP ** or etFLOAT, as appropriate. */ if int32(xtype) == int32(etGENERIC) { + _ = libc.Int32FromInt32(0) + precision-- flag_rtz = libc.BoolUint8(!(flag_alternateform != 0)) if exp < -int32(4) || exp > precision { xtype = uint8(etEXP) @@ -19054,7 +19232,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li bufpt = libc.VaUintptr(&ap) } if bufpt == uintptr(0) { - bufpt = __ccgo_ts + 1657 + bufpt = __ccgo_ts + 1671 } else { if int32(xtype) == int32(etDYNSTRING) { if (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnChar == uint32(0) && (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FmxAlloc != 0 && width == 0 && precision < 0 && int32((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FaccError) == 0 { @@ -19108,6 +19286,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } else { length = int32(0x7fffffff) & int32(libc.Xstrlen(tls, bufpt)) } + goto adjust_width_for_utf8 adjust_width_for_utf8: ; if flag_altform2 != 0 && width > 0 { @@ -19142,9 +19321,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li isnull = libc.BoolInt32(escarg == uintptr(0)) if isnull != 0 { if int32(xtype) == int32(etSQLESCAPE2) { - v98 = __ccgo_ts + 1658 + v98 = __ccgo_ts + 1672 } else { - v98 = __ccgo_ts + 1663 + v98 = __ccgo_ts + 1677 } escarg = v98 } @@ -19264,7 +19443,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*TSrcItem)(unsafe.Pointer(pItem)).FzName != 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1670, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1684, int32(1)) } Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzName) } else { @@ -19272,11 +19451,16 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzAlias) } else { pSel = (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect - _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* Because of tag-20240424-1 */ if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_NestedFrom) != 0 { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1672, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1686, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) } else { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1682, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_MultiValue) != 0 { + _ = libc.Int32FromInt32(0) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1696, libc.VaList(bp+128, *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pItem)).Fu1)))) + } else { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1717, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + } } } } @@ -19565,7 +19749,7 @@ func _sqlite3ResultStrAccum(tls *libc.TLS, pCtx uintptr, p uintptr) { if int32((*TStrAccum)(unsafe.Pointer(p)).FprintfFlags)&int32(SQLITE_PRINTF_MALLOCED) != 0 { Xsqlite3_result_text(tls, pCtx, (*TStrAccum)(unsafe.Pointer(p)).FzText, int32((*TStrAccum)(unsafe.Pointer(p)).FnChar), __ccgo_fp(_sqlite3OomClear)) } else { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1657, 0, libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1671, 0, libc.UintptrFromInt32(0)) Xsqlite3_str_reset(tls, p) } } @@ -20880,6 +21064,7 @@ func _sqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc Tu8) (r in (*TMem)(unsafe.Pointer(pMem)).Fz = zOut (*TMem)(unsafe.Pointer(pMem)).FzMalloc = (*TMem)(unsafe.Pointer(pMem)).Fz (*TMem)(unsafe.Pointer(pMem)).FszMalloc = _sqlite3DbMallocSize(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).Fz) + goto translate_out translate_out: ; return SQLITE_OK @@ -21509,6 +21694,62 @@ func _sqlite3DequoteExpr(tls *libc.TLS, p uintptr) { _sqlite3Dequote(tls, *(*uintptr)(unsafe.Pointer(p + 8))) } +// C documentation +// +// /* +// ** Expression p is a QNUMBER (quoted number). Dequote the value in p->u.zToken +// ** and set the type to INTEGER or FLOAT. "Quoted" integers or floats are those +// ** that contain '_' characters that must be removed before further processing. +// */ +func _sqlite3DequoteNumber(tls *libc.TLS, pParse uintptr, p uintptr) { + bp := tls.Alloc(32) + defer tls.Free(32) + var bHex int32 + var pIn, pOut, v1, v3 uintptr + var _ /* iValue at bp+0 */ int32 + _, _, _, _, _ = bHex, pIn, pOut, v1, v3 + _ = libc.Int32FromInt32(0) + if p != 0 { + pIn = *(*uintptr)(unsafe.Pointer(p + 8)) + pOut = *(*uintptr)(unsafe.Pointer(p + 8)) + bHex = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(pIn + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(pIn + 1))) == int32('X'))) + _ = libc.Int32FromInt32(0) + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + for { + if int32(*(*uint8)(unsafe.Pointer(pIn))) != int32('_') { + v3 = pOut + pOut++ + *(*uint8)(unsafe.Pointer(v3)) = *(*uint8)(unsafe.Pointer(pIn)) + if int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('E') || int32(*(*uint8)(unsafe.Pointer(pIn))) == int32('.') { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_FLOAT) + } + } else { + if bHex == 0 && (!(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1))))])&libc.Int32FromInt32(0x04) != 0) || !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + 1))])&libc.Int32FromInt32(0x04) != 0)) || bHex == int32(1) && (!(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1))))])&libc.Int32FromInt32(0x08) != 0) || !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + 1))])&libc.Int32FromInt32(0x08) != 0)) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1731, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(p + 8)))) + } + } + goto _2 + _2: + ; + v1 = pIn + pIn++ + if !(*(*uint8)(unsafe.Pointer(v1)) != 0) { + break + } + } + if bHex != 0 { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + } + /* tag-20240227-a: If after dequoting, the number is an integer that + ** fits in 32 bits, then it must be converted into EP_IntValue. Other + ** parts of the code expect this. See also tag-20240227-b. */ + if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_INTEGER) && _sqlite3GetInt32(tls, *(*uintptr)(unsafe.Pointer(p + 8)), bp) != 0 { + *(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(p)).Fu)) = *(*int32)(unsafe.Pointer(bp)) + *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(EP_IntValue) + } + } +} + // C documentation // // /* @@ -21870,6 +22111,7 @@ func _sqlite3AtoF(tls *libc.TLS, z uintptr, pResult uintptr, length int32, enc T for z < zEnd && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z))])&int32(0x01) != 0 { z += uintptr(incr) } + goto do_atof_calc do_atof_calc: ; /* Zero is a special case */ @@ -21977,6 +22219,7 @@ do_atof_calc: *(*float64)(unsafe.Pointer(pResult)) = -*(*float64)(unsafe.Pointer(pResult)) } _ = libc.Int32FromInt32(0) + goto atof_return atof_return: ; /* return true if number and no extra non-whitespace characters after */ @@ -22061,7 +22304,7 @@ func _compare2pow63(tls *libc.TLS, zNum uintptr, incr int32) (r int32) { _, _, _ = c, i, pow63 c = 0 /* 012345678901234567 */ - pow63 = __ccgo_ts + 1696 + pow63 = __ccgo_ts + 1756 i = 0 for { if !(c == 0 && i < int32(18)) { @@ -22293,7 +22536,7 @@ func _sqlite3DecOrHexToI64(tls *libc.TLS, z uintptr, pOut uintptr) (r int32) { } return 0 } else { - n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1715)) + n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1775)) if *(*uint8)(unsafe.Pointer(z + uintptr(n))) != 0 { n++ } @@ -22451,7 +22694,7 @@ func _sqlite3FpDecode(tls *libc.TLS, p uintptr, _r float64, iRound int32, mxRoun (*TFpDecode)(unsafe.Pointer(p)).Fsign = uint8('+') (*TFpDecode)(unsafe.Pointer(p)).Fn = int32(1) (*TFpDecode)(unsafe.Pointer(p)).FiDP = int32(1) - (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1731 + (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1791 return } else { (*TFpDecode)(unsafe.Pointer(p)).Fsign = uint8('+') @@ -23011,7 +23254,7 @@ func _sqlite3HexToBlob(tls *libc.TLS, db uintptr, z uintptr, n int32) (r uintptr func _logBadConnection(tls *libc.TLS, zType uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1733, libc.VaList(bp+8, zType)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1793, libc.VaList(bp+8, zType)) } // C documentation @@ -23034,13 +23277,13 @@ func _sqlite3SafetyCheckOk(tls *libc.TLS, db uintptr) (r int32) { var eOpenState Tu8 _ = eOpenState if db == uintptr(0) { - _logBadConnection(tls, __ccgo_ts+1658) + _logBadConnection(tls, __ccgo_ts+1672) return 0 } eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_OPEN) { if _sqlite3SafetyCheckSickOrOk(tls, db) != 0 { - _logBadConnection(tls, __ccgo_ts+1778) + _logBadConnection(tls, __ccgo_ts+1838) } return 0 } else { @@ -23054,7 +23297,7 @@ func _sqlite3SafetyCheckSickOrOk(tls *libc.TLS, db uintptr) (r int32) { _ = eOpenState eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(eOpenState) != int32(SQLITE_STATE_SICK) && int32(eOpenState) != int32(SQLITE_STATE_OPEN) && int32(eOpenState) != int32(SQLITE_STATE_BUSY) { - _logBadConnection(tls, __ccgo_ts+1787) + _logBadConnection(tls, __ccgo_ts+1847) return 0 } else { return int32(1) @@ -23713,196 +23956,196 @@ func _sqlite3OpcodeName(tls *libc.TLS, i int32) (r uintptr) { } var _azName = [190]uintptr{ - 0: __ccgo_ts + 1795, - 1: __ccgo_ts + 1805, - 2: __ccgo_ts + 1816, - 3: __ccgo_ts + 1828, - 4: __ccgo_ts + 1839, - 5: __ccgo_ts + 1851, - 6: __ccgo_ts + 1858, - 7: __ccgo_ts + 1866, - 8: __ccgo_ts + 1874, - 9: __ccgo_ts + 1879, - 10: __ccgo_ts + 1884, - 11: __ccgo_ts + 1890, - 12: __ccgo_ts + 1904, - 13: __ccgo_ts + 1910, - 14: __ccgo_ts + 1920, - 15: __ccgo_ts + 1925, - 16: __ccgo_ts + 1930, - 17: __ccgo_ts + 1933, - 18: __ccgo_ts + 1939, - 19: __ccgo_ts + 1946, - 20: __ccgo_ts + 1950, - 21: __ccgo_ts + 1960, - 22: __ccgo_ts + 1967, - 23: __ccgo_ts + 1974, - 24: __ccgo_ts + 1981, - 25: __ccgo_ts + 1988, - 26: __ccgo_ts + 1998, - 27: __ccgo_ts + 2007, - 28: __ccgo_ts + 2018, - 29: __ccgo_ts + 2027, - 30: __ccgo_ts + 2033, - 31: __ccgo_ts + 2043, - 32: __ccgo_ts + 2053, - 33: __ccgo_ts + 2058, - 34: __ccgo_ts + 2068, - 35: __ccgo_ts + 2079, - 36: __ccgo_ts + 2084, - 37: __ccgo_ts + 2091, - 38: __ccgo_ts + 2102, - 39: __ccgo_ts + 2107, - 40: __ccgo_ts + 2112, - 41: __ccgo_ts + 2118, - 42: __ccgo_ts + 2124, - 43: __ccgo_ts + 2130, - 44: __ccgo_ts + 2133, - 45: __ccgo_ts + 2137, - 46: __ccgo_ts + 2143, - 47: __ccgo_ts + 2154, - 48: __ccgo_ts + 2165, - 49: __ccgo_ts + 2173, - 50: __ccgo_ts + 2182, - 51: __ccgo_ts + 2189, - 52: __ccgo_ts + 2197, - 53: __ccgo_ts + 2200, - 54: __ccgo_ts + 2203, - 55: __ccgo_ts + 2206, - 56: __ccgo_ts + 2209, - 57: __ccgo_ts + 2212, - 58: __ccgo_ts + 2215, - 59: __ccgo_ts + 2222, - 60: __ccgo_ts + 2228, - 61: __ccgo_ts + 2238, - 62: __ccgo_ts + 2251, - 63: __ccgo_ts + 2262, - 64: __ccgo_ts + 2268, - 65: __ccgo_ts + 2275, - 66: __ccgo_ts + 2284, - 67: __ccgo_ts + 2293, - 68: __ccgo_ts + 2300, - 69: __ccgo_ts + 2313, - 70: __ccgo_ts + 2324, - 71: __ccgo_ts + 2329, - 72: __ccgo_ts + 2337, - 73: __ccgo_ts + 2343, - 74: __ccgo_ts + 2350, - 75: __ccgo_ts + 2362, - 76: __ccgo_ts + 2367, - 77: __ccgo_ts + 2376, - 78: __ccgo_ts + 2381, - 79: __ccgo_ts + 2390, - 80: __ccgo_ts + 2395, - 81: __ccgo_ts + 2400, - 82: __ccgo_ts + 2406, - 83: __ccgo_ts + 2414, - 84: __ccgo_ts + 2422, - 85: __ccgo_ts + 2432, - 86: __ccgo_ts + 2440, - 87: __ccgo_ts + 2447, - 88: __ccgo_ts + 2460, - 89: __ccgo_ts + 2465, - 90: __ccgo_ts + 2477, - 91: __ccgo_ts + 2485, - 92: __ccgo_ts + 2492, - 93: __ccgo_ts + 2503, - 94: __ccgo_ts + 2510, - 95: __ccgo_ts + 2517, - 96: __ccgo_ts + 2527, - 97: __ccgo_ts + 2536, - 98: __ccgo_ts + 2547, - 99: __ccgo_ts + 2553, - 100: __ccgo_ts + 2564, - 101: __ccgo_ts + 2574, - 102: __ccgo_ts + 2584, - 103: __ccgo_ts + 2591, - 104: __ccgo_ts + 2597, - 105: __ccgo_ts + 2607, - 106: __ccgo_ts + 2618, - 107: __ccgo_ts + 2622, - 108: __ccgo_ts + 2631, - 109: __ccgo_ts + 2640, - 110: __ccgo_ts + 2647, - 111: __ccgo_ts + 2657, - 112: __ccgo_ts + 2664, - 113: __ccgo_ts + 2673, - 114: __ccgo_ts + 2683, - 115: __ccgo_ts + 2690, - 116: __ccgo_ts + 2698, - 117: __ccgo_ts + 2712, - 118: __ccgo_ts + 2720, - 119: __ccgo_ts + 2734, - 120: __ccgo_ts + 2745, - 121: __ccgo_ts + 2758, - 122: __ccgo_ts + 2769, - 123: __ccgo_ts + 2775, - 124: __ccgo_ts + 2787, - 125: __ccgo_ts + 2796, - 126: __ccgo_ts + 2804, - 127: __ccgo_ts + 2813, - 128: __ccgo_ts + 2822, - 129: __ccgo_ts + 2829, - 130: __ccgo_ts + 2837, - 131: __ccgo_ts + 2844, - 132: __ccgo_ts + 2855, - 133: __ccgo_ts + 2869, - 134: __ccgo_ts + 2880, - 135: __ccgo_ts + 2888, - 136: __ccgo_ts + 2894, - 137: __ccgo_ts + 2902, - 138: __ccgo_ts + 2910, - 139: __ccgo_ts + 2920, - 140: __ccgo_ts + 2933, - 141: __ccgo_ts + 2943, - 142: __ccgo_ts + 2956, - 143: __ccgo_ts + 2965, - 144: __ccgo_ts + 2976, - 145: __ccgo_ts + 2984, - 146: __ccgo_ts + 2990, - 147: __ccgo_ts + 3002, - 148: __ccgo_ts + 3014, - 149: __ccgo_ts + 3022, - 150: __ccgo_ts + 3034, - 151: __ccgo_ts + 3047, - 152: __ccgo_ts + 3057, - 153: __ccgo_ts + 3067, - 154: __ccgo_ts + 3072, - 155: __ccgo_ts + 3084, - 156: __ccgo_ts + 3096, - 157: __ccgo_ts + 3106, - 158: __ccgo_ts + 3112, - 159: __ccgo_ts + 3122, - 160: __ccgo_ts + 3129, - 161: __ccgo_ts + 3141, - 162: __ccgo_ts + 3152, - 163: __ccgo_ts + 3160, - 164: __ccgo_ts + 3169, - 165: __ccgo_ts + 3178, - 166: __ccgo_ts + 3187, - 167: __ccgo_ts + 3194, - 168: __ccgo_ts + 3205, - 169: __ccgo_ts + 3218, - 170: __ccgo_ts + 3228, - 171: __ccgo_ts + 3235, - 172: __ccgo_ts + 3243, - 173: __ccgo_ts + 3252, - 174: __ccgo_ts + 3258, - 175: __ccgo_ts + 3265, - 176: __ccgo_ts + 3273, - 177: __ccgo_ts + 3281, - 178: __ccgo_ts + 3289, - 179: __ccgo_ts + 3299, - 180: __ccgo_ts + 3308, - 181: __ccgo_ts + 3319, - 182: __ccgo_ts + 3330, - 183: __ccgo_ts + 3341, - 184: __ccgo_ts + 3351, - 185: __ccgo_ts + 3357, - 186: __ccgo_ts + 3368, - 187: __ccgo_ts + 3379, - 188: __ccgo_ts + 3384, - 189: __ccgo_ts + 3392, + 0: __ccgo_ts + 1855, + 1: __ccgo_ts + 1865, + 2: __ccgo_ts + 1876, + 3: __ccgo_ts + 1888, + 4: __ccgo_ts + 1899, + 5: __ccgo_ts + 1911, + 6: __ccgo_ts + 1918, + 7: __ccgo_ts + 1926, + 8: __ccgo_ts + 1934, + 9: __ccgo_ts + 1939, + 10: __ccgo_ts + 1944, + 11: __ccgo_ts + 1950, + 12: __ccgo_ts + 1964, + 13: __ccgo_ts + 1970, + 14: __ccgo_ts + 1980, + 15: __ccgo_ts + 1985, + 16: __ccgo_ts + 1990, + 17: __ccgo_ts + 1993, + 18: __ccgo_ts + 1999, + 19: __ccgo_ts + 2006, + 20: __ccgo_ts + 2010, + 21: __ccgo_ts + 2020, + 22: __ccgo_ts + 2027, + 23: __ccgo_ts + 2034, + 24: __ccgo_ts + 2041, + 25: __ccgo_ts + 2048, + 26: __ccgo_ts + 2058, + 27: __ccgo_ts + 2067, + 28: __ccgo_ts + 2078, + 29: __ccgo_ts + 2087, + 30: __ccgo_ts + 2093, + 31: __ccgo_ts + 2103, + 32: __ccgo_ts + 2113, + 33: __ccgo_ts + 2118, + 34: __ccgo_ts + 2132, + 35: __ccgo_ts + 2143, + 36: __ccgo_ts + 2148, + 37: __ccgo_ts + 2155, + 38: __ccgo_ts + 2166, + 39: __ccgo_ts + 2171, + 40: __ccgo_ts + 2176, + 41: __ccgo_ts + 2182, + 42: __ccgo_ts + 2188, + 43: __ccgo_ts + 2194, + 44: __ccgo_ts + 2197, + 45: __ccgo_ts + 2201, + 46: __ccgo_ts + 2207, + 47: __ccgo_ts + 2218, + 48: __ccgo_ts + 2229, + 49: __ccgo_ts + 2237, + 50: __ccgo_ts + 2246, + 51: __ccgo_ts + 2253, + 52: __ccgo_ts + 2261, + 53: __ccgo_ts + 2264, + 54: __ccgo_ts + 2267, + 55: __ccgo_ts + 2270, + 56: __ccgo_ts + 2273, + 57: __ccgo_ts + 2276, + 58: __ccgo_ts + 2279, + 59: __ccgo_ts + 2286, + 60: __ccgo_ts + 2292, + 61: __ccgo_ts + 2302, + 62: __ccgo_ts + 2315, + 63: __ccgo_ts + 2326, + 64: __ccgo_ts + 2332, + 65: __ccgo_ts + 2339, + 66: __ccgo_ts + 2348, + 67: __ccgo_ts + 2357, + 68: __ccgo_ts + 2364, + 69: __ccgo_ts + 2377, + 70: __ccgo_ts + 2388, + 71: __ccgo_ts + 2393, + 72: __ccgo_ts + 2401, + 73: __ccgo_ts + 2407, + 74: __ccgo_ts + 2414, + 75: __ccgo_ts + 2426, + 76: __ccgo_ts + 2431, + 77: __ccgo_ts + 2440, + 78: __ccgo_ts + 2445, + 79: __ccgo_ts + 2454, + 80: __ccgo_ts + 2459, + 81: __ccgo_ts + 2464, + 82: __ccgo_ts + 2470, + 83: __ccgo_ts + 2478, + 84: __ccgo_ts + 2486, + 85: __ccgo_ts + 2496, + 86: __ccgo_ts + 2504, + 87: __ccgo_ts + 2511, + 88: __ccgo_ts + 2524, + 89: __ccgo_ts + 2529, + 90: __ccgo_ts + 2541, + 91: __ccgo_ts + 2549, + 92: __ccgo_ts + 2556, + 93: __ccgo_ts + 2567, + 94: __ccgo_ts + 2574, + 95: __ccgo_ts + 2581, + 96: __ccgo_ts + 2591, + 97: __ccgo_ts + 2600, + 98: __ccgo_ts + 2611, + 99: __ccgo_ts + 2617, + 100: __ccgo_ts + 2628, + 101: __ccgo_ts + 2638, + 102: __ccgo_ts + 2648, + 103: __ccgo_ts + 2655, + 104: __ccgo_ts + 2661, + 105: __ccgo_ts + 2671, + 106: __ccgo_ts + 2682, + 107: __ccgo_ts + 2686, + 108: __ccgo_ts + 2695, + 109: __ccgo_ts + 2704, + 110: __ccgo_ts + 2711, + 111: __ccgo_ts + 2721, + 112: __ccgo_ts + 2728, + 113: __ccgo_ts + 2737, + 114: __ccgo_ts + 2747, + 115: __ccgo_ts + 2754, + 116: __ccgo_ts + 2762, + 117: __ccgo_ts + 2776, + 118: __ccgo_ts + 2784, + 119: __ccgo_ts + 2798, + 120: __ccgo_ts + 2809, + 121: __ccgo_ts + 2822, + 122: __ccgo_ts + 2833, + 123: __ccgo_ts + 2839, + 124: __ccgo_ts + 2851, + 125: __ccgo_ts + 2860, + 126: __ccgo_ts + 2868, + 127: __ccgo_ts + 2877, + 128: __ccgo_ts + 2886, + 129: __ccgo_ts + 2893, + 130: __ccgo_ts + 2901, + 131: __ccgo_ts + 2908, + 132: __ccgo_ts + 2919, + 133: __ccgo_ts + 2933, + 134: __ccgo_ts + 2944, + 135: __ccgo_ts + 2952, + 136: __ccgo_ts + 2958, + 137: __ccgo_ts + 2966, + 138: __ccgo_ts + 2974, + 139: __ccgo_ts + 2984, + 140: __ccgo_ts + 2997, + 141: __ccgo_ts + 3007, + 142: __ccgo_ts + 3020, + 143: __ccgo_ts + 3029, + 144: __ccgo_ts + 3040, + 145: __ccgo_ts + 3048, + 146: __ccgo_ts + 3054, + 147: __ccgo_ts + 3066, + 148: __ccgo_ts + 3078, + 149: __ccgo_ts + 3086, + 150: __ccgo_ts + 3098, + 151: __ccgo_ts + 3111, + 152: __ccgo_ts + 3121, + 153: __ccgo_ts + 3131, + 154: __ccgo_ts + 3136, + 155: __ccgo_ts + 3148, + 156: __ccgo_ts + 3160, + 157: __ccgo_ts + 3170, + 158: __ccgo_ts + 3176, + 159: __ccgo_ts + 3186, + 160: __ccgo_ts + 3193, + 161: __ccgo_ts + 3205, + 162: __ccgo_ts + 3216, + 163: __ccgo_ts + 3224, + 164: __ccgo_ts + 3233, + 165: __ccgo_ts + 3242, + 166: __ccgo_ts + 3251, + 167: __ccgo_ts + 3258, + 168: __ccgo_ts + 3269, + 169: __ccgo_ts + 3282, + 170: __ccgo_ts + 3292, + 171: __ccgo_ts + 3299, + 172: __ccgo_ts + 3307, + 173: __ccgo_ts + 3316, + 174: __ccgo_ts + 3322, + 175: __ccgo_ts + 3329, + 176: __ccgo_ts + 3337, + 177: __ccgo_ts + 3345, + 178: __ccgo_ts + 3353, + 179: __ccgo_ts + 3363, + 180: __ccgo_ts + 3372, + 181: __ccgo_ts + 3383, + 182: __ccgo_ts + 3394, + 183: __ccgo_ts + 3405, + 184: __ccgo_ts + 3415, + 185: __ccgo_ts + 3421, + 186: __ccgo_ts + 3432, + 187: __ccgo_ts + 3443, + 188: __ccgo_ts + 3448, + 189: __ccgo_ts + 3456, } type Tstat = struct { @@ -24642,91 +24885,91 @@ type unix_syscall = Tunix_syscall // */ var _aSyscall = [29]Tunix_syscall{ 0: { - FzName: __ccgo_ts + 3402, + FzName: __ccgo_ts + 3466, }, 1: { - FzName: __ccgo_ts + 3407, + FzName: __ccgo_ts + 3471, }, 2: { - FzName: __ccgo_ts + 3413, + FzName: __ccgo_ts + 3477, }, 3: { - FzName: __ccgo_ts + 3420, + FzName: __ccgo_ts + 3484, }, 4: { - FzName: __ccgo_ts + 3427, + FzName: __ccgo_ts + 3491, }, 5: { - FzName: __ccgo_ts + 3432, + FzName: __ccgo_ts + 3496, }, 6: { - FzName: __ccgo_ts + 3438, + FzName: __ccgo_ts + 3502, }, 7: { - FzName: __ccgo_ts + 3448, + FzName: __ccgo_ts + 3512, }, 8: { - FzName: __ccgo_ts + 3454, + FzName: __ccgo_ts + 3518, }, 9: { - FzName: __ccgo_ts + 3459, + FzName: __ccgo_ts + 3523, }, 10: { - FzName: __ccgo_ts + 3465, + FzName: __ccgo_ts + 3529, }, 11: { - FzName: __ccgo_ts + 3473, + FzName: __ccgo_ts + 3537, }, 12: { - FzName: __ccgo_ts + 3479, + FzName: __ccgo_ts + 3543, }, 13: { - FzName: __ccgo_ts + 3486, + FzName: __ccgo_ts + 3550, }, 14: { - FzName: __ccgo_ts + 3495, + FzName: __ccgo_ts + 3559, }, 15: { - FzName: __ccgo_ts + 3502, + FzName: __ccgo_ts + 3566, }, 16: { - FzName: __ccgo_ts + 3512, + FzName: __ccgo_ts + 3576, }, 17: { - FzName: __ccgo_ts + 3519, + FzName: __ccgo_ts + 3583, }, 18: { - FzName: __ccgo_ts + 3533, + FzName: __ccgo_ts + 3597, }, 19: { - FzName: __ccgo_ts + 3539, + FzName: __ccgo_ts + 3603, }, 20: { - FzName: __ccgo_ts + 3545, + FzName: __ccgo_ts + 3609, }, 21: { - FzName: __ccgo_ts + 3552, + FzName: __ccgo_ts + 3616, }, 22: { - FzName: __ccgo_ts + 3560, + FzName: __ccgo_ts + 3624, }, 23: { - FzName: __ccgo_ts + 3565, + FzName: __ccgo_ts + 3629, }, 24: { - FzName: __ccgo_ts + 3572, + FzName: __ccgo_ts + 3636, }, 25: { - FzName: __ccgo_ts + 3579, + FzName: __ccgo_ts + 3643, }, 26: { - FzName: __ccgo_ts + 3591, + FzName: __ccgo_ts + 3655, }, 27: { - FzName: __ccgo_ts + 3600, + FzName: __ccgo_ts + 3664, }, 28: { - FzName: __ccgo_ts + 3606, + FzName: __ccgo_ts + 3670, }, } @@ -24965,9 +25208,9 @@ func _robust_open(tls *libc.TLS, z uintptr, f int32, m Tmode_t) (r int32) { (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(16)].FpCurrent})))(tls, z) } (*(*func(*libc.TLS, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(1)].FpCurrent})))(tls, fd) - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3612, libc.VaList(bp+152, z, fd)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3676, libc.VaList(bp+152, z, fd)) fd = -int32(1) - if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3655, O_RDONLY, int32(m)) < 0 { + if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3719, O_RDONLY, int32(m)) < 0 { break } } @@ -25285,11 +25528,11 @@ func _unixLogErrorAtLine(tls *libc.TLS, errcode int32, zFunc uintptr, zPath uint ** equivalent to errno. Otherwise, use strerror_r(). */ /* This is a threadsafe build, but strerror_r() is not available. */ - zErr = __ccgo_ts + 1657 + zErr = __ccgo_ts + 1671 if zPath == uintptr(0) { - zPath = __ccgo_ts + 1657 + zPath = __ccgo_ts + 1671 } - Xsqlite3_log(tls, errcode, __ccgo_ts+3665, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) + Xsqlite3_log(tls, errcode, __ccgo_ts+3729, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) return errcode } @@ -25317,7 +25560,7 @@ func _robust_close(tls *libc.TLS, pFile uintptr, h int32, lineno int32) { } else { v1 = uintptr(0) } - _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(16)< uint64(1) { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3749, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3813, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } if _fileHasMoved(tls, pFile) != 0 { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3776, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3840, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } } @@ -25837,6 +26080,7 @@ func _unixLock(tls *libc.TLS, id uintptr, eFileLock int32) (r int32) { (*TunixFile)(unsafe.Pointer(pFile)).FeFileLock = uint8(eFileLock) (*TunixInodeInfo)(unsafe.Pointer(pInode)).FeFileLock = uint8(eFileLock) } + goto end_lock end_lock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -25968,6 +26212,7 @@ func _posixUnlock(tls *libc.TLS, id uintptr, eFileLock int32, handleNFSUnlock in _closePendingFds(tls, pFile) } } + goto end_unlock end_unlock: ; Xsqlite3_mutex_leave(tls, (*TunixInodeInfo)(unsafe.Pointer(pInode)).FpLockMutex) @@ -26009,7 +26254,7 @@ func _closeUnixFile(tls *libc.TLS, id uintptr) (r int32) { pFile = id _unixUnmapfile(tls, pFile) if (*TunixFile)(unsafe.Pointer(pFile)).Fh >= 0 { - _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40172)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40505)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -26636,7 +26881,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { var _ /* zDirname at bp+0 */ [513]uint8 _, _ = fd, ii fd = -int32(1) - Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3804, libc.VaList(bp+528, zFilename)) + Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3868, libc.VaList(bp+528, zFilename)) ii = int32(libc.Xstrlen(tls, bp)) for { if !(ii > 0 && int32((*(*[513]uint8)(unsafe.Pointer(bp)))[ii]) != int32('/')) { @@ -26662,7 +26907,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(41778)), __ccgo_ts+3519, bp, int32(41778)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42111)), __ccgo_ts+3583, bp, int32(42111)) } // C documentation @@ -26701,7 +26946,7 @@ func _unixSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { rc = _full_fsync(tls, (*TunixFile)(unsafe.Pointer(pFile)).Fh, isFullsync, isDataOnly) if rc != 0 { _storeLastErrno(tls, pFile, *(*int32)(unsafe.Pointer(libc.X__errno_location(tls)))) - return _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(4)<= nSize { iWrite = nSize - int64(1) } - nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1657, int32(1)) + nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1671, int32(1)) if nWrite != int32(1) { return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(3)<= 0 { - _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42583)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(42916)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -27324,7 +27569,7 @@ func _unixLockSharedMemory(tls *libc.TLS, pDbFd uintptr, pShmNode uintptr) (r in ** help detect if a -shm file truncation is legitimate or is the work ** or a rogue process. */ if rc == SQLITE_OK && _robust_ftruncate(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(3)) != 0 { - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(18)< iRegion { @@ -27923,7 +28170,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { var pNew, pOrig, pReq, zErr uintptr var v1 Tsqlite3_int64 _, _, _, _, _, _, _, _, _ = flags, h, nOrig, nReuse, pNew, pOrig, pReq, zErr, v1 - zErr = __ccgo_ts + 3560 + zErr = __ccgo_ts + 3624 h = (*TunixFile)(unsafe.Pointer(pFd)).Fh /* File descriptor open on db file */ pOrig = (*TunixFile)(unsafe.Pointer(pFd)).FpMapRegion /* Pointer to current file mapping */ nOrig = (*TunixFile)(unsafe.Pointer(pFd)).FmmapSizeActual /* Size of pOrig region in bytes */ @@ -27943,7 +28190,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { (*(*func(*libc.TLS, uintptr, Tsize_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, pReq, uint64(nOrig-nReuse)) } pNew = (*(*func(*libc.TLS, uintptr, Tsize_t, Tsize_t, int32, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(24)].FpCurrent})))(tls, pOrig, uint64(nReuse), uint64(nNew), int32(MREMAP_MAYMOVE), 0) - zErr = __ccgo_ts + 3572 + zErr = __ccgo_ts + 3636 /* The attempt to extend the existing mapping failed. Free it. */ if pNew == uintptr(-libc.Int32FromInt32(1)) || pNew == uintptr(0) { (*(*func(*libc.TLS, uintptr, Tsize_t) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(23)].FpCurrent})))(tls, pOrig, uint64(nReuse)) @@ -27956,7 +28203,7 @@ func _unixRemapfile(tls *libc.TLS, pFd uintptr, nNew Ti64) { if pNew == uintptr(-libc.Int32FromInt32(1)) { pNew = uintptr(0) nNew = 0 - _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43401)) + _unixLogErrorAtLine(tls, SQLITE_OK, zErr, (*TunixFile)(unsafe.Pointer(pFd)).FzPath, int32(43734)) /* If the mmap() above failed, assume that all subsequent mmap() calls ** will probably fail too. Fall back to using xRead/xWrite exclusively ** in this case. */ @@ -28300,11 +28547,11 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam } else { v1 = uintptr(0) } - if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3838, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { + if Xsqlite3_uri_boolean(tls, v1, __ccgo_ts+3902, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { p2 = pNew + 30 *(*uint16)(unsafe.Pointer(p2)) = uint16(int32(*(*uint16)(unsafe.Pointer(p2))) | libc.Int32FromInt32(UNIXFILE_PSOW)) } - if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3843) == 0 { + if libc.Xstrcmp(tls, (*Tsqlite3_vfs)(unsafe.Pointer(pVfs)).FzName, __ccgo_ts+3907) == 0 { p3 = pNew + 30 *(*uint16)(unsafe.Pointer(p3)) = uint16(int32(*(*uint16)(unsafe.Pointer(p3))) | libc.Int32FromInt32(UNIXFILE_EXCL)) } @@ -28335,7 +28582,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam ** implicit assumption here is that if fstat() fails, things are in ** such bad shape that dropping a lock or two doesn't matter much. */ - _robust_close(tls, pNew, h, int32(43909)) + _robust_close(tls, pNew, h, int32(44242)) h = -int32(1) } _unixLeaveMutex(tls) @@ -28347,7 +28594,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam if zLockFile == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3853, libc.VaList(bp+8, zFilename)) + Xsqlite3_snprintf(tls, nFilename, zLockFile, __ccgo_ts+3917, libc.VaList(bp+8, zFilename)) } (*TunixFile)(unsafe.Pointer(pNew)).FlockingContext = zLockFile } @@ -28355,7 +28602,7 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam _storeLastErrno(tls, pNew, 0) if rc != SQLITE_OK { if h >= 0 { - _robust_close(tls, pNew, h, int32(43994)) + _robust_close(tls, pNew, h, int32(44327)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -28370,10 +28617,10 @@ func _fillInUnixFile(tls *libc.TLS, pVfs uintptr, h int32, pId uintptr, zFilenam // ** Directories to consider for temp files. // */ var _azTempDirs = [6]uintptr{ - 2: __ccgo_ts + 3861, - 3: __ccgo_ts + 3870, - 4: __ccgo_ts + 3879, - 5: __ccgo_ts + 1670, + 2: __ccgo_ts + 3925, + 3: __ccgo_ts + 3934, + 4: __ccgo_ts + 3943, + 5: __ccgo_ts + 1684, } // C documentation @@ -28382,8 +28629,8 @@ var _azTempDirs = [6]uintptr{ // ** Initialize first two members of azTempDirs[] array. // */ func _unixTempFileInit(tls *libc.TLS) { - _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3884) - _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3898) + _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3948) + _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3962) } // C documentation @@ -28446,7 +28693,7 @@ func _unixGetTempname(tls *libc.TLS, nBuf int32, zBuf uintptr) (r int32) { Xsqlite3_randomness(tls, int32(8), bp) _ = libc.Int32FromInt32(0) *(*uint8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2)))) = uint8(0) - Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3905, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) + Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3969, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) if v2 = int32(*(*uint8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2))))) != 0; !v2 { v1 = iLimit iLimit++ @@ -28619,7 +28866,7 @@ func _findCreateFileMode(tls *libc.TLS, zPath uintptr, flags int32, pMode uintpt ** filename, check for the "modeof" parameter. If present, interpret ** its value as a filename and try to copy the mode, uid and gid from ** that file. */ - z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3922) + z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+3986) if z != 0 { rc = _getFileMode(tls, z, pMode, pUid, pGid) } @@ -28657,12 +28904,12 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags bp := tls.Alloc(528) defer tls.Free(528) var ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, rc, rc2 int32 - var p, pUnused, zName uintptr + var p, pReadonly, pUnused, zName uintptr var _ /* gid at bp+524 */ Tgid_t var _ /* openMode at bp+516 */ Tmode_t var _ /* uid at bp+520 */ Tuid_t var _ /* zTmpname at bp+0 */ [514]uint8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pUnused, rc, rc2, zName + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = ctrlFlags, eType, fd, isCreate, isDelete, isExclusive, isNewJrnl, isReadWrite, isReadonly, noLock, openFlags, p, pReadonly, pUnused, rc, rc2, zName p = pFile fd = -int32(1) /* File descriptor returned by open() */ openFlags = 0 /* Flags to pass to open() */ @@ -28772,17 +29019,24 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } else { if *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) != int32(EISDIR) && isReadWrite != 0 { /* Failed to open the file for read/write access. Try read-only. */ + pReadonly = uintptr(0) flags &= ^(libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE)) openFlags &= ^(libc.Int32FromInt32(O_RDWR) | libc.Int32FromInt32(O_CREAT)) flags |= int32(SQLITE_OPEN_READONLY) openFlags |= O_RDONLY isReadonly = int32(1) - fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 516))) + pReadonly = _findReusableFd(tls, zName, flags) + if pReadonly != 0 { + fd = (*TUnixUnusedFd)(unsafe.Pointer(pReadonly)).Ffd + Xsqlite3_free(tls, pReadonly) + } else { + fd = _robust_open(tls, zName, openFlags, *(*Tmode_t)(unsafe.Pointer(bp + 516))) + } } } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44435)), __ccgo_ts+3402, zName, int32(44435)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44775)), __ccgo_ts+3466, zName, int32(44775)) if rc == SQLITE_OK { rc = rc2 } @@ -28834,6 +29088,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } _ = libc.Int32FromInt32(0) rc = _fillInUnixFile(tls, pVfs, fd, pFile, zPath, ctrlFlags) + goto open_finished open_finished: ; if rc != SQLITE_OK { @@ -28860,7 +29115,7 @@ func _unixDelete(tls *libc.TLS, NotUsed uintptr, zPath uintptr, dirSync int32) ( if *(*int32)(unsafe.Pointer(libc.X__errno_location(tls))) == int32(ENOENT) { rc = libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(23)< int32(SQLITE_MAX_SYMLINK) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(44686)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45026)) return } got = (*(*func(*libc.TLS, uintptr, uintptr, Tsize_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls, zIn, bp+144, libc.Uint64FromInt64(4098)-libc.Uint64FromInt32(2)) if got <= 0 || got >= libc.Int64FromInt64(4098)-libc.Int64FromInt32(2) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44691)), __ccgo_ts+3591, zIn, int32(44691)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45031)), __ccgo_ts+3655, zIn, int32(45031)) return } (*(*[4098]uint8)(unsafe.Pointer(bp + 144)))[got] = uint8(0) @@ -29064,14 +29319,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if int32(*(*uint8)(unsafe.Pointer(zPath))) != int32('/') { if (*(*func(*libc.TLS, uintptr, Tsize_t) uintptr)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(3)].FpCurrent})))(tls, bp+24, libc.Uint64FromInt64(4098)-libc.Uint64FromInt32(2)) == uintptr(0) { - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(44749)), __ccgo_ts+3420, zPath, int32(44749)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45089)), __ccgo_ts+3484, zPath, int32(45089)) } _appendAllPathElements(tls, bp, bp+24) } _appendAllPathElements(tls, bp, zPath) *(*uint8)(unsafe.Pointer(zOut + uintptr((*(*TDbPath)(unsafe.Pointer(bp))).FnUsed))) = uint8(0) if (*(*TDbPath)(unsafe.Pointer(bp))).Frc != 0 || (*(*TDbPath)(unsafe.Pointer(bp))).FnUsed < int32(2) { - return _sqlite3CantopenError(tls, int32(44755)) + return _sqlite3CantopenError(tls, int32(45095)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<= (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4)/libc.Uint64FromInt32(2) { @@ -30944,6 +31201,7 @@ bitvec_set_rehash: return rc } } + goto bitvec_set_end bitvec_set_end: ; (*TBitvec)(unsafe.Pointer(p)).FnSet++ @@ -31177,6 +31435,7 @@ func _sqlite3BitvecBuiltinTest(tls *libc.TLS, sz int32, aOp uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp))++ } /* Free allocated structure */ + goto bitvec_end bitvec_end: ; Xsqlite3_free(tls, pTmpSpace) @@ -32465,7 +32724,7 @@ func _sqlite3PCacheBufferSetup(tls *libc.TLS, pBuf uintptr, sz int32, n int32) { var p uintptr var v1, v2, v3, v4 int32 _, _, _, _, _ = p, v1, v2, v3, v4 - if _pcache1_g.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80) != 0 { if pBuf == uintptr(0) { v1 = libc.Int32FromInt32(0) n = v1 @@ -33015,7 +33274,7 @@ func _pcache1Init(tls *libc.TLS, NotUsed uintptr) (r int32) { _pcache1_g.FnInitPage = 0 } _pcache1_g.Fgrp.FmxPinned = uint32(10) - _pcache1_g.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80, int32(1)) return SQLITE_OK } @@ -36598,6 +36857,7 @@ func _pager_delsuper(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) { } _sqlite3OsClose(tls, pSuper) rc = _sqlite3OsDelete(tls, pVfs, zSuper, 0) + goto delsuper_out delsuper_out: ; Xsqlite3_free(tls, zFree) @@ -36934,6 +37194,7 @@ func _pager_playback(tls *libc.TLS, pPager uintptr, isHot int32) (r int32) { } /*NOTREACHED*/ _ = libc.Int32FromInt32(0) + goto end_playback end_playback: ; if rc == SQLITE_OK { @@ -36977,7 +37238,7 @@ end_playback: rc = _pager_delsuper(tls, pPager, zSuper) } if isHot != 0 && nPlayback != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(2)< int64(1) { _sqlite3PagerUnrefNotNull(tls, pPgOld) - return _sqlite3CorruptError(tls, int32(63973)) + return _sqlite3CorruptError(tls, int32(64313)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | int32((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -41311,7 +41576,7 @@ func _sqlite3PagerCheckpoint(tls *libc.TLS, pPager uintptr, db uintptr, eMode in ** sqlite3_wal_checkpoint() call, but it happens very rarely. ** https://sqlite.org/forum/forumpost/fd0f19d229156939 */ - Xsqlite3_exec(tls, db, __ccgo_ts+4118, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+4182, uintptr(0), uintptr(0), uintptr(0)) } if (*TPager)(unsafe.Pointer(pPager)).FpWal != 0 { if eMode == SQLITE_CHECKPOINT_PASSIVE { @@ -42792,7 +43057,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(65899)) + return _sqlite3CorruptError(tls, int32(66239)) } goto _1 _1: @@ -42884,7 +43149,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { ** are able to understand */ version = _sqlite3Get4byte(tls, bp+8+4) if version != uint32(WAL_MAX_VERSION) { - rc = _sqlite3CantopenError(tls, int32(66031)) + rc = _sqlite3CantopenError(tls, int32(66371)) goto finished } /* Malloc a buffer to read frames into. */ @@ -42981,6 +43246,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { } Xsqlite3_free(tls, aFrame) } + goto finished finished: ; if rc == SQLITE_OK { @@ -43025,9 +43291,10 @@ finished: ** checkpointing the log file. */ if (*TWal)(unsafe.Pointer(pWal)).Fhdr.FnPage != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(1)< int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(71032)) + rc = _sqlite3CorruptError(tls, int32(71421)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } @@ -47782,7 +48058,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if key == uint32(0) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71230)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71619)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -47795,12 +48071,12 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, /* The first byte of the extra data is the MemPage.isInit byte. ** If that byte is set, it means this page is also being used ** as a btree page. */ - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71243)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71632)) goto ptrmap_exit } offset = int32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71248)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71637)) goto ptrmap_exit } _ = libc.Int32FromInt32(0) @@ -47814,6 +48090,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _sqlite3Put4byte(tls, pPtrmap+uintptr(offset+int32(1)), parent) } } + goto ptrmap_exit ptrmap_exit: ; _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -47845,7 +48122,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = int32(libc.Uint32FromInt32(5) * (key - uint32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(71293)) + return _sqlite3CorruptError(tls, int32(71682)) } _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -47855,7 +48132,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if int32(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || int32(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(71301)) + return _sqlite3CorruptError(tls, int32(71690)) } return SQLITE_OK } @@ -48294,7 +48571,7 @@ func _ptrmapPutOvflPtr(tls *libc.TLS, pPage uintptr, pSrc uintptr, pCell uintptr (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if uint64(pCell) < uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) && uint64(pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal)) > uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71741)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72130)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(int32((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -48340,12 +48617,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71799)) + return _sqlite3CorruptError(tls, int32(72188)) } if iFree != 0 { iFree2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71802)) + return _sqlite3CorruptError(tls, int32(72191)) } if 0 == iFree2 || int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -48353,21 +48630,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(71810)) + return _sqlite3CorruptError(tls, int32(72199)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(71813)) + return _sqlite3CorruptError(tls, int32(72202)) } sz2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(71815)) + return _sqlite3CorruptError(tls, int32(72204)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), uint64(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(71819)) + return _sqlite3CorruptError(tls, int32(72208)) } } cbrk = top + sz @@ -48415,13 +48692,13 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { ** if PRAGMA cell_size_check=ON. */ if pc > iCellLast { - return _sqlite3CorruptError(tls, int32(71852)) + return _sqlite3CorruptError(tls, int32(72241)) } _ = libc.Int32FromInt32(0) size = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, src+uintptr(pc))) cbrk -= size if cbrk < iCellStart || pc+size > usableSize { - return _sqlite3CorruptError(tls, int32(71858)) + return _sqlite3CorruptError(tls, int32(72247)) } _ = libc.Int32FromInt32(0) *(*Tu8)(unsafe.Pointer(pAddr1)) = uint8(cbrk >> libc.Int32FromInt32(8)) @@ -48434,11 +48711,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { } } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))) = uint8(0) + goto defragment_out defragment_out: ; _ = libc.Int32FromInt32(0) if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(71872)) + return _sqlite3CorruptError(tls, int32(72261)) } _ = libc.Int32FromInt32(0) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = uint8(cbrk >> libc.Int32FromInt32(8)) @@ -48501,7 +48779,7 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint } else { if x+pc > maxPC { /* This slot extends off the end of the usable part of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71929)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72318)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -48518,14 +48796,14 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint if pc <= iAddr { if pc != 0 { /* The next slot in the chain comes before the current slot */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71944)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72333)) } return uintptr(0) } } if pc > maxPC+nByte-int32(4) { /* The free slot chain extends off the end of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71951)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72340)) } return uintptr(0) } @@ -48576,11 +48854,11 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r if top == 0 && (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize == uint32(65536) { top = int32(65536) } else { - return _sqlite3CorruptError(tls, int32(71999)) + return _sqlite3CorruptError(tls, int32(72388)) } } else { if top > int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(72002)) + return _sqlite3CorruptError(tls, int32(72391)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -48595,7 +48873,7 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r g2 = v1 *(*int32)(unsafe.Pointer(pIdx)) = v1 if g2 <= gap { - return _sqlite3CorruptError(tls, int32(72019)) + return _sqlite3CorruptError(tls, int32(72408)) } else { return SQLITE_OK } @@ -48688,12 +48966,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if int32(iFreeBlk) == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(72098)) + return _sqlite3CorruptError(tls, int32(72487)) } iPtr = iFreeBlk } if uint32(iFreeBlk) > (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(72103)) + return _sqlite3CorruptError(tls, int32(72492)) } _ = libc.Int32FromInt32(0) /* At this point: @@ -48705,11 +48983,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if iFreeBlk != 0 && iEnd+uint32(3) >= uint32(iFreeBlk) { nFrag = uint8(uint32(iFreeBlk) - iEnd) if iEnd > uint32(iFreeBlk) { - return _sqlite3CorruptError(tls, int32(72115)) + return _sqlite3CorruptError(tls, int32(72504)) } iEnd = uint32(int32(iFreeBlk) + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(iFreeBlk)+int32(2)))))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - return _sqlite3CorruptError(tls, int32(72118)) + return _sqlite3CorruptError(tls, int32(72507)) } iSize = uint16(iEnd - uint32(iStart)) iFreeBlk = uint16(int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= int32(iStart) { if iPtrEnd > int32(iStart) { - return _sqlite3CorruptError(tls, int32(72131)) + return _sqlite3CorruptError(tls, int32(72520)) } nFrag = Tu8(int32(nFrag) + (int32(iStart) - iPtrEnd)) iSize = uint16(iEnd - uint32(iPtr)) @@ -48730,7 +49008,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) } } if int32(nFrag) > int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(72137)) + return _sqlite3CorruptError(tls, int32(72526)) } p2 = data + uintptr(int32(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - int32(nFrag)) @@ -48747,10 +49025,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) ** so just extend the cell content area rather than create another ** freelist entry */ if int32(iStart) < int32(x) { - return _sqlite3CorruptError(tls, int32(72151)) + return _sqlite3CorruptError(tls, int32(72540)) } if int32(iPtr) != int32(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(72152)) + return _sqlite3CorruptError(tls, int32(72541)) } *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)))) = uint8(int32(iFreeBlk) >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)) + 1)) = uint8(iFreeBlk) @@ -48813,7 +49091,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtrIdxLeaf) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72206)) + return _sqlite3CorruptError(tls, int32(72595)) } } } else { @@ -48839,7 +49117,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtr) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72230)) + return _sqlite3CorruptError(tls, int32(72619)) } } } @@ -48886,12 +49164,12 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-55530-52930 In a well-formed b-tree page, there will ** always be at least one cell before the first freeblock. */ - return _sqlite3CorruptError(tls, int32(72281)) + return _sqlite3CorruptError(tls, int32(72670)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(72286)) + return _sqlite3CorruptError(tls, int32(72675)) } next = uint32(int32(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(72296)) + return _sqlite3CorruptError(tls, int32(72685)) } if uint32(pc)+size > uint32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(72300)) + return _sqlite3CorruptError(tls, int32(72689)) } } /* At this point, nFree contains the sum of the offset to the start @@ -48918,7 +49196,7 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { ** area, according to the page header, lies within the page. */ if nFree > usableSize || nFree < iCellFirst { - return _sqlite3CorruptError(tls, int32(72312)) + return _sqlite3CorruptError(tls, int32(72701)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16(nFree - iCellFirst)) return SQLITE_OK @@ -48949,11 +49227,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = int32(*(*Tu16)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2))))) if pc < iCellFirst || pc > iCellLast { - return _sqlite3CorruptError(tls, int32(72343)) + return _sqlite3CorruptError(tls, int32(72732)) } sz = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, data+uintptr(pc))) if pc+sz > usableSize { - return _sqlite3CorruptError(tls, int32(72348)) + return _sqlite3CorruptError(tls, int32(72737)) } goto _1 _1: @@ -48989,7 +49267,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-28594-02890 The one-byte flag at offset 0 indicating ** the b-tree page type. */ if _decodeFlags(tls, pPage, int32(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(72380)) + return _sqlite3CorruptError(tls, int32(72769)) } _ = libc.Int32FromInt32(0) (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) @@ -49003,7 +49281,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = uint16(int32(*(*Tu8)(unsafe.Pointer(data + 3)))< ((*TBtShared)(unsafe.Pointer(pBt)).FpageSize-uint32(8))/uint32(6) { /* To many cells for a single page. The page must be corrupt */ - return _sqlite3CorruptError(tls, int32(72394)) + return _sqlite3CorruptError(tls, int32(72783)) } /* EVIDENCE-OF: R-24089-57979 If a page contains no cells (which is only ** possible for a root page of a table that contains no rows) then the @@ -49169,7 +49447,7 @@ func _getAndInitPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, bRe _ = libc.Int32FromInt32(0) if pgno > _btreePagecount(tls, pBt) { *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72537)) + return _sqlite3CorruptError(tls, int32(72926)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -49246,7 +49524,7 @@ func _btreeGetUnusedPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FpDbPage) > int32(1) { _releasePage(tls, *(*uintptr)(unsafe.Pointer(ppPage))) *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72609)) + return _sqlite3CorruptError(tls, int32(72998)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -49338,7 +49616,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt /* Set the variable isMemdb to true for an in-memory database, or ** false for a file-based database. */ - isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4199) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) + isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4263) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -49573,6 +49851,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt } } *(*uintptr)(unsafe.Pointer(ppBtree)) = p + goto btree_open_out btree_open_out: ; if rc != SQLITE_OK { @@ -50158,7 +50437,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { ** The original design allowed these amounts to vary, but as of ** version 3.6.0, we require them to be fixed. */ - if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4208, uint64(3)) != 0 { + if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4272, uint64(3)) != 0 { goto page1_init_failed } /* EVIDENCE-OF: R-51873-39618 The page size for a database file is @@ -50197,7 +50476,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { } if nPage > *(*Tu32)(unsafe.Pointer(bp + 8)) { if _sqlite3WritableSchema(tls, (*TBtShared)(unsafe.Pointer(pBt)).Fdb) == 0 { - rc = _sqlite3CorruptError(tls, int32(73547)) + rc = _sqlite3CorruptError(tls, int32(73936)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -50252,6 +50531,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 = *(*uintptr)(unsafe.Pointer(bp)) (*TBtShared)(unsafe.Pointer(pBt)).FnPage = nPage return SQLITE_OK + goto page1_init_failed page1_init_failed: ; _releasePageOne(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -50536,6 +50816,7 @@ func _btreeBeginTrans(tls *libc.TLS, p uintptr, wrflag int32, pSchemaVersion uin } } } + goto trans_begun trans_begun: ; if rc == SQLITE_OK { @@ -50657,7 +50938,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if int32(eType) == int32(PTRMAP_OVERFLOW2) { /* The pointer is always the first 4 bytes of the page in this case. */ if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData) != iFrom { - return _sqlite3CorruptError(tls, int32(73995)) + return _sqlite3CorruptError(tls, int32(74384)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -50681,7 +50962,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74014)) + return _sqlite3CorruptError(tls, int32(74403)) } if iFrom == _sqlite3Get4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4)) { _sqlite3Put4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4), iTo) @@ -50690,7 +50971,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } } else { if pCell+uintptr(4) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74023)) + return _sqlite3CorruptError(tls, int32(74412)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -50704,7 +50985,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if int32(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(74035)) + return _sqlite3CorruptError(tls, int32(74424)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -50737,7 +51018,7 @@ func _relocatePage(tls *libc.TLS, pBt uintptr, pDbPage uintptr, eType Tu8, iPtrP _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iDbPage < uint32(3) { - return _sqlite3CorruptError(tls, int32(74070)) + return _sqlite3CorruptError(tls, int32(74459)) } /* Move page iDbPage from its current location to page number iFreePage */ *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3PagerMovepage(tls, pPager, (*TMemPage)(unsafe.Pointer(pDbPage)).FpDbPage, iFreePage, isCommit) @@ -50835,7 +51116,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(74168)) + return _sqlite3CorruptError(tls, int32(74557)) } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -50874,7 +51155,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if *(*TPgno)(unsafe.Pointer(bp + 24)) > dbSize { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) - return _sqlite3CorruptError(tls, int32(74220)) + return _sqlite3CorruptError(tls, int32(74609)) } } _ = libc.Int32FromInt32(0) @@ -50943,7 +51224,7 @@ func _sqlite3BtreeIncrVacuum(tls *libc.TLS, p uintptr) (r int32) { nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) nFin = _finalDbSize(tls, pBt, nOrig, nFree) if nOrig < nFin || nFree >= nOrig { - rc = _sqlite3CorruptError(tls, int32(74288)) + rc = _sqlite3CorruptError(tls, int32(74677)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50989,7 +51270,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { ** is either a pointer-map page or the pending-byte page. If one ** is encountered, this indicates corruption. */ - return _sqlite3CorruptError(tls, int32(74339)) + return _sqlite3CorruptError(tls, int32(74728)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -51019,7 +51300,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(74366)) + return _sqlite3CorruptError(tls, int32(74755)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -51517,7 +51798,7 @@ func _btreeCursor(tls *libc.TLS, p uintptr, iTable TPgno, wrFlag int32, pKeyInfo _ = libc.Int32FromInt32(0) if iTable <= uint32(1) { if iTable < uint32(1) { - return _sqlite3CorruptError(tls, int32(74830)) + return _sqlite3CorruptError(tls, int32(75219)) } else { if _btreePagecount(tls, pBt) == uint32(0) { _ = libc.Int32FromInt32(0) @@ -51931,7 +52212,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(75235)) + return _sqlite3CorruptError(tls, int32(75624)) } _ = libc.Int32FromInt32(0) _getCellInfo(tls, pCur) @@ -51944,7 +52225,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin ** &aPayload[pCur->info.nLocal] > &pPage->aData[pBt->usableSize] ** but is recast into its current form to avoid integer overflow problems */ - return _sqlite3CorruptError(tls, int32(75250)) + return _sqlite3CorruptError(tls, int32(75639)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -51972,7 +52253,11 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_ValidOvfl) == 0 { nOvfl = int32(((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnPayload - uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) + ovflSize - uint32(1)) / ovflSize) if (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow == uintptr(0) || nOvfl*libc.Int32FromInt64(4) > _sqlite3MallocSize(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow) { - aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + if _sqlite3FaultSim(tls, int32(413)) != 0 { + aNew = uintptr(0) + } else { + aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + } if aNew == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -51983,6 +52268,9 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin p1 = pCur + 1 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(BTCF_ValidOvfl)) } else { + /* Sanity check the validity of the overflow page cache */ + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* If the overflow page-list cache has been allocated and the ** entry for the first required overflow page is valid, skip ** directly to it. @@ -51997,7 +52285,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin for *(*TPgno)(unsafe.Pointer(bp)) != 0 { /* If required, populate the overflow page-list cache. */ if *(*TPgno)(unsafe.Pointer(bp)) > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(75312)) + return _sqlite3CorruptError(tls, int32(75710)) } _ = libc.Int32FromInt32(0) *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) @@ -52074,7 +52362,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin } if rc == SQLITE_OK && amt > uint32(0) { /* Overflow chain ends prematurely */ - return _sqlite3CorruptError(tls, int32(75396)) + return _sqlite3CorruptError(tls, int32(75794)) } return rc } @@ -52227,7 +52515,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(75534)) + return _sqlite3CorruptError(tls, int32(75932)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -52240,7 +52528,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(75548)) + rc = _sqlite3CorruptError(tls, int32(75946)) } if rc != 0 { v3 = pCur + 84 @@ -52370,8 +52658,9 @@ func _moveToRoot(tls *libc.TLS, pCur uintptr) (r int32) { ** (or the freelist). */ _ = libc.Int32FromInt32(0) if int32((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != int32((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(75683)) + return _sqlite3CorruptError(tls, int32(76081)) } + goto skip_init skip_init: ; (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(0) @@ -52383,7 +52672,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(75695)) + return _sqlite3CorruptError(tls, int32(76093)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -52532,6 +52821,7 @@ func _sqlite3BtreeLast(tls *libc.TLS, pCur uintptr, pRes uintptr) (r int32) { _ = libc.Int32FromInt32(0) /* If the cursor already points to the last entry, this is a no-op. */ if CURSOR_VALID == int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) && int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_AtLast) != 0 { + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pRes)) = 0 return SQLITE_OK } @@ -52585,6 +52875,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh } if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnKey < intKey { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_AtLast) != 0 { + _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pRes)) = -int32(1) return SQLITE_OK } @@ -52647,7 +52938,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(75937)) + return _sqlite3CorruptError(tls, int32(76342)) } } } @@ -52695,6 +52986,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh rc = SQLITE_OK goto moveto_table_finish } + goto moveto_table_next_layer moveto_table_next_layer: ; if lwr >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { @@ -52710,6 +53002,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh goto _1 _1: } + goto moveto_table_finish moveto_table_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -52861,7 +53154,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes p3 = pCur + 1 *(*Tu8)(unsafe.Pointer(p3)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p3))) & ^libc.Int32FromInt32(BTCF_ValidOvfl)) if !((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76133)) + return _sqlite3CorruptError(tls, int32(76538)) } goto bypass_moveto_root /* Start search on the current page */ } @@ -52876,6 +53169,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes } return rc } + goto bypass_moveto_root bypass_moveto_root: ; _ = libc.Int32FromInt32(0) @@ -52932,7 +53226,7 @@ bypass_moveto_root: /* Invalid key size: 0x80 0x80 0x01 */ /* Minimum legal index key size */ if nCell < int32(2) || uint32(nCell)/(*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FusableSize > (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(76220)) + rc = _sqlite3CorruptError(tls, int32(76625)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, uint64(nCell+nOverrun)) @@ -52965,7 +53259,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(76252)) + rc = _sqlite3CorruptError(tls, int32(76657)) } goto moveto_index_finish } @@ -53002,7 +53296,7 @@ bypass_moveto_root: p9 = pCur + 1 *(*Tu8)(unsafe.Pointer(p9)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p9))) & ^(libc.Int32FromInt32(BTCF_ValidNKey) | libc.Int32FromInt32(BTCF_ValidOvfl))) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(76283)) + return _sqlite3CorruptError(tls, int32(76688)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = uint16(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -53011,7 +53305,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76294)) + rc = _sqlite3CorruptError(tls, int32(76699)) } if rc != 0 { v11 = pCur + 84 @@ -53025,6 +53319,7 @@ bypass_moveto_root: goto _4 _4: } + goto moveto_index_finish moveto_index_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -53062,11 +53357,11 @@ func _sqlite3BtreeRowCountEst(tls *libc.TLS, pCur uintptr) (r Ti64) { _, _ = i, n _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - /* Currently this interface is only called by the OP_IfSmaller - ** opcode, and it that case the cursor will always be valid and - ** will always point to a leaf node. */ + /* Currently this interface is only called by the OP_IfSizeBetween + ** opcode and the OP_Count opcode with P3=1. In either case, + ** the cursor will always be valid unless the btree is empty. */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID { - return int64(-int32(1)) + return 0 } if int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).Fleaf) == 0 { return int64(-int32(1)) @@ -53144,7 +53439,7 @@ func _btreeNext(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76395)) + return _sqlite3CorruptError(tls, int32(76800)) } if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -53259,7 +53554,7 @@ func _btreePrevious(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76488)) + return _sqlite3CorruptError(tls, int32(76893)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -53353,7 +53648,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt ** stores the total number of pages on the freelist. */ n = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+36) if n >= mxPage { - return _sqlite3CorruptError(tls, int32(76578)) + return _sqlite3CorruptError(tls, int32(76983)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -53410,7 +53705,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(76634)) + rc = _sqlite3CorruptError(tls, int32(77039)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -53439,7 +53734,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { if k > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/libc.Uint32FromInt32(4)-libc.Uint32FromInt32(2) { /* Value of k is out of range. Database corruption */ - rc = _sqlite3CorruptError(tls, int32(76663)) + rc = _sqlite3CorruptError(tls, int32(77068)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -53466,7 +53761,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { iNewTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+8) if iNewTrunk > mxPage { - rc = _sqlite3CorruptError(tls, int32(76697)) + rc = _sqlite3CorruptError(tls, int32(77102)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -53538,7 +53833,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } iPage = _sqlite3Get4byte(tls, aData+uintptr(uint32(8)+closest*uint32(4))) if iPage > mxPage || iPage < uint32(2) { - rc = _sqlite3CorruptError(tls, int32(76762)) + rc = _sqlite3CorruptError(tls, int32(77167)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -53641,6 +53936,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } } _ = libc.Int32FromInt32(0) + goto end_allocate_page end_allocate_page: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -53683,7 +53979,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iPage < uint32(2) || iPage > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(76889)) + return _sqlite3CorruptError(tls, int32(77294)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -53734,7 +54030,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in if nFree != uint32(0) { /* Initial number of leaf cells on trunk page */ iTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32) if iTrunk > _btreePagecount(tls, pBt) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76936)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77341)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -53744,7 +54040,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in nLeaf = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+4) _ = libc.Int32FromInt32(0) if nLeaf > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(2) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76947)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77352)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -53799,6 +54095,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData, iTrunk) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData+4, uint32(0)) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32, iPage) + goto freepage_out freepage_out: ; if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -53835,7 +54132,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp _ = libc.Int32FromInt32(0) if pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { /* Cell extends past end of page */ - return _sqlite3CorruptError(tls, int32(77036)) + return _sqlite3CorruptError(tls, int32(77441)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -53855,7 +54152,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp /* 0 is not a legal page number and page 1 cannot be an ** overflow page. Therefore if ovflPgno<2 or past the end of the ** file the database must be corrupt. */ - return _sqlite3CorruptError(tls, int32(77053)) + return _sqlite3CorruptError(tls, int32(77458)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -53878,7 +54175,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp ** caller is iterating through or using in some other way, this ** can be problematic. */ - rc = _sqlite3CorruptError(tls, int32(77073)) + rc = _sqlite3CorruptError(tls, int32(77478)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -54114,7 +54411,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = uint32(int32(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77329)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77734)) return } rc = _freeSpace(tls, pPage, uint16(pc), uint16(sz)) @@ -54549,12 +54846,12 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg _ = libc.Int32FromInt32(0) if uint64(pCell) >= uint64(aData+uintptr(j)) && uint64(pCell) < uint64(pEnd) { if uint64(pCell+uintptr(sz)) > uint64(pEnd) { - return _sqlite3CorruptError(tls, int32(77718)) + return _sqlite3CorruptError(tls, int32(78123)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(77723)) + return _sqlite3CorruptError(tls, int32(78128)) } } pData -= uintptr(sz) @@ -54562,7 +54859,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = uint8(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(77729)) + return _sqlite3CorruptError(tls, int32(78134)) } libc.Xmemmove(tls, pData, pCell, uint64(sz)) _ = libc.Int32FromInt32(0) @@ -54661,7 +54958,7 @@ func _pageInsertArray(tls *libc.TLS, pPg uintptr, pBegin uintptr, ppData uintptr _ = libc.Int32FromInt32(0) if uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))+uintptr(sz)) > uint64(pEnd) && uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))) < uint64(pEnd) { _ = libc.Int32FromInt32(0) - _sqlite3CorruptError(tls, int32(77814)) + _sqlite3CorruptError(tls, int32(78219)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), uint64(sz)) @@ -54811,7 +55108,7 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p if iOld < iNew { nShift = _pageFreeArray(tls, pPg, iOld, iNew-iOld, pCArray) if nShift > nCell { - return _sqlite3CorruptError(tls, int32(77936)) + return _sqlite3CorruptError(tls, int32(78341)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), uint64(nCell*int32(2))) nCell -= nShift @@ -54881,11 +55178,12 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)))) = uint8((int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)) + 1)) = uint8(int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(aData)) return SQLITE_OK + goto editpage_fail editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(78010)) + return _sqlite3CorruptError(tls, int32(78415)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -54933,7 +55231,7 @@ func _balance_quick(tls *libc.TLS, pParent uintptr, pPage uintptr, pSpace uintpt _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(78050)) + return _sqlite3CorruptError(tls, int32(78455)) } /* dbfuzz001.test */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -55309,7 +55607,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78471)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78876)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -55332,7 +55630,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa libc.Xmemset(tls, (*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell+uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*2, 0, uint64(2)*uint64(limit+int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78495)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78900)) goto balance_cleanup } limit = int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -55475,7 +55773,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa if i+int32(1) >= k { k = i + int32(2) if k > libc.Int32FromInt32(NB)+libc.Int32FromInt32(2) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78596)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79001)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -55518,7 +55816,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v10 = 0 } if cntNew[i] <= v10 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78629)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79034)) goto balance_cleanup } } @@ -55579,7 +55877,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v15 = 0 } if cntNew[i-int32(1)] <= v15 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78673)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79078)) goto balance_cleanup } goto _11 @@ -55612,7 +55910,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) nNew++ if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) != int32(1)+libc.BoolInt32(i == iParentIdx-nxDiv) && *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78706)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79111)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -55855,7 +56153,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa } pSrcEnd = *(*uintptr)(unsafe.Pointer(bp + 112 + 32 + uintptr(k)*8)) if uint64(pCell1) < uint64(pSrcEnd) && uint64(pCell1+uintptr(sz2)) > uint64(pSrcEnd) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78906)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79311)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -56004,6 +56302,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa /* ** Cleanup before returning. */ + goto balance_cleanup balance_cleanup: ; _sqlite3DbFree(tls, uintptr(0), (*(*TCellArray)(unsafe.Pointer(bp + 112))).FapCell) @@ -56119,7 +56418,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && int32((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(79138)) + return _sqlite3CorruptError(tls, int32(79543)) } goto _1 _1: @@ -56194,7 +56493,7 @@ func _balance(tls *libc.TLS, pCur uintptr) (r int32) { /* The page being written is not a root page, and there is currently ** more than one reference to it. This only happens if the page is one ** of its own ancestor pages. Corruption. */ - rc = _sqlite3CorruptError(tls, int32(79198)) + rc = _sqlite3CorruptError(tls, int32(79603)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = int32(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -56357,7 +56656,7 @@ func _btreeOverwriteOverflowCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int return rc } if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1) || (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FisInit != 0 { - rc = _sqlite3CorruptError(tls, int32(79362)) + rc = _sqlite3CorruptError(tls, int32(79767)) } else { if uint32(iOffset)+ovflPageSize < uint32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -56388,7 +56687,7 @@ func _btreeOverwriteCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int32) { nTotal = (*TBtreePayload)(unsafe.Pointer(pX)).FnData + (*TBtreePayload)(unsafe.Pointer(pX)).FnZero /* Total bytes of to write */ pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage /* Page being written */ if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload+uintptr((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd || (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FcellOffset) { - return _sqlite3CorruptError(tls, int32(79390)) + return _sqlite3CorruptError(tls, int32(79795)) } if int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -56475,7 +56774,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** Which can only happen if the SQLITE_NoSchemaError flag was set when ** the schema was loaded. This cannot be asserted though, as a user might ** set the flag, load the schema, and then unset the flag. */ - return _sqlite3CorruptError(tls, int32(79471)) + return _sqlite3CorruptError(tls, int32(79876)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -56578,7 +56877,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79594)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79999)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -56620,7 +56919,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if *(*int32)(unsafe.Pointer(bp + 4)) == 0 { _ = libc.Int32FromInt32(0) if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79636)) + return _sqlite3CorruptError(tls, int32(80041)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -56650,10 +56949,10 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry. */ _ = libc.Int32FromInt32(0) /* clearCell never fails when nLocal==nPayload */ if oldCell < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+uintptr(10) { - return _sqlite3CorruptError(tls, int32(79663)) + return _sqlite3CorruptError(tls, int32(80068)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79666)) + return _sqlite3CorruptError(tls, int32(80071)) } libc.Xmemcpy(tls, oldCell, newCell, uint64(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -56725,6 +57024,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s } } _ = libc.Int32FromInt32(0) + goto end_insert end_insert: ; return *(*int32)(unsafe.Pointer(bp)) @@ -56777,7 +57077,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T nIn = uint32((*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnLocal) aIn = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload if aIn+uintptr(nIn) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79768)) + return _sqlite3CorruptError(tls, int32(80173)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -56799,7 +57099,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T } if nRem > nIn { if aIn+uintptr(nIn)+uintptr(4) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79793)) + return _sqlite3CorruptError(tls, int32(80198)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -56908,7 +57208,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(79889)) + return _sqlite3CorruptError(tls, int32(80294)) } } _ = libc.Int32FromInt32(0) @@ -56916,14 +57216,14 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { iCellIdx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(79898)) + return _sqlite3CorruptError(tls, int32(80303)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&int32(*(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCellIdx))))) if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 && _btreeComputeFreeSpace(tls, pPage) != 0 { - return _sqlite3CorruptError(tls, int32(79902)) + return _sqlite3CorruptError(tls, int32(80307)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79905)) + return _sqlite3CorruptError(tls, int32(80310)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -57018,7 +57318,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { } pCell = (*TMemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&int32(*(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(int32(2)*(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FnCell)-int32(1))))))) if pCell < (*TMemPage)(unsafe.Pointer(pLeaf)).FaData+4 { - return _sqlite3CorruptError(tls, int32(79996)) + return _sqlite3CorruptError(tls, int32(80401)) } nCell = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pLeaf)).FxCellSize})))(tls, pLeaf, pCell)) _ = libc.Int32FromInt32(0) @@ -57138,7 +57438,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags */ _sqlite3BtreeGetMeta(tls, p, int32(BTREE_LARGEST_ROOT_PAGE), bp+8) if *(*TPgno)(unsafe.Pointer(bp + 8)) > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80112)) + return _sqlite3CorruptError(tls, int32(80517)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -57180,7 +57480,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags } *(*int32)(unsafe.Pointer(bp + 12)) = _ptrmapGet(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 8)), bp+32, bp+36) if int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80160)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80565)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -57267,14 +57567,14 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _, _, _, _ = hdr, i, pCell, v2 _ = libc.Int32FromInt32(0) if pgno > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80250)) + return _sqlite3CorruptError(tls, int32(80655)) } *(*int32)(unsafe.Pointer(bp + 8)) = _getAndInitPage(tls, pBt, pgno, bp, 0) if *(*int32)(unsafe.Pointer(bp + 8)) != 0 { return *(*int32)(unsafe.Pointer(bp + 8)) } if int32((*TBtShared)(unsafe.Pointer(pBt)).FopenFlags)&int32(BTREE_SINGLE) == 0 && _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1)+libc.BoolInt32(pgno == uint32(1)) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80257)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80662)) goto cleardatabasepage_out } hdr = int32((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -57325,6 +57625,7 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _zeroPage(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData + uintptr(hdr))))|int32(PTF_LEAF)) } } + goto cleardatabasepage_out cleardatabasepage_out: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -57414,7 +57715,7 @@ func _btreeDropTable(tls *libc.TLS, p uintptr, iTable TPgno, piMoved uintptr) (r _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if iTable > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80361)) + return _sqlite3CorruptError(tls, int32(80766)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, int32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -57690,7 +57991,7 @@ func _checkAppendMsg(tls *libc.TLS, pCheck uintptr, zFormat uintptr, va uintptr) (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr++ ap = va if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FerrMsg.FnChar != 0 { - Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4212, int32(1)) + Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4276, int32(1)) } if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx != 0 { Xsqlite3_str_appendf(tls, pCheck+72, (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx, libc.VaList(bp+8, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv0, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv2)) @@ -57742,11 +58043,11 @@ func _checkRef(tls *libc.TLS, pCheck uintptr, iPage TPgno) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if iPage > (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnCkPage || iPage == uint32(0) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4214, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4278, libc.VaList(bp+8, iPage)) return int32(1) } if _getPageReferenced(tls, pCheck, iPage) != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4237, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4301, libc.VaList(bp+8, iPage)) return int32(1) } _setPageReferenced(tls, pCheck, iPage) @@ -57772,11 +58073,11 @@ func _checkPtrmap(tls *libc.TLS, pCheck uintptr, iChild TPgno, eType Tu8, iParen if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FusableSize/uint32(4)-uint32(2) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4367, libc.VaList(bp+16, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4431, libc.VaList(bp+16, iPage)) N-- } else { i = 0 @@ -57848,11 +58149,11 @@ func _checkList(tls *libc.TLS, pCheck uintptr, isFreeList int32, iPage TPgno, N } if N != 0 && nErrAtStart == (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr { if isFreeList != 0 { - v2 = __ccgo_ts + 4406 + v2 = __ccgo_ts + 4470 } else { - v2 = __ccgo_ts + 4411 + v2 = __ccgo_ts + 4475 } - _checkAppendMsg(tls, pCheck, __ccgo_ts+4432, libc.VaList(bp+16, v2, expected-N, expected)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4496, libc.VaList(bp+16, v2, expected-N, expected)) } } @@ -57989,12 +58290,12 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr if _checkRef(tls, pCheck, iPage) != 0 { return 0 } - (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4458 + (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4522 (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = iPage v1 = _btreeGetPage(tls, pBt, iPage, bp+8, 0) rc = v1 if v1 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4476, libc.VaList(bp+56, rc)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4540, libc.VaList(bp+56, rc)) if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< usableSize-uint32(4) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4630, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4694, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) doCoverageCheck = 0 goto _4 } pCell = data + uintptr(pc) (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FxParseCell})))(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), pCell, bp+24) if pc+uint32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnSize) > usableSize { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4660, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4724, 0) doCoverageCheck = 0 goto _4 } @@ -58080,7 +58384,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr v5 = libc.BoolInt32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey >= *(*Ti64)(unsafe.Pointer(bp))) } if v5 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4684, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4748, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) } *(*Ti64)(unsafe.Pointer(bp)) = (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey keyCanBeEqual = 0 /* Only the first key on the page may ==maxKey */ @@ -58104,7 +58408,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr d2 = _checkTreePage(tls, pCheck, uint32(pgno), bp, *(*Ti64)(unsafe.Pointer(bp))) keyCanBeEqual = 0 if d2 != depth { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4708, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4772, 0) depth = d2 } } else { @@ -58141,6 +58445,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr i-- } } + _ = libc.Int32FromInt32(0) /* Add the freeblocks to the min-heap ** ** EVIDENCE-OF: R-20690-50594 The second field of the b-tree page header @@ -58181,7 +58486,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr prev = contentOffset - uint32(1) /* Implied first min-heap entry */ for _btreeHeapPull(tls, heap, bp+16) != 0 { if prev&uint32(0xffff) >= *(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4733, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4797, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) break } else { nFrag = int32(uint32(nFrag) + (*(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) - prev&libc.Uint32FromInt32(0xffff) - libc.Uint32FromInt32(1))) @@ -58195,9 +58500,10 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr ** number of fragmented free bytes within the cell content area. */ if *(*Tu32)(unsafe.Pointer(heap)) == uint32(0) && nFrag != int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4770, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4834, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) } } + goto end_of_check end_of_check: ; if !(doCoverageCheck != 0) { @@ -58234,22 +58540,23 @@ end_of_check: // ** the unverified btrees. Except, if aRoot[1] is 1, then the freelist // ** checks are still performed. // */ -func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { - bp := tls.Alloc(256) - defer tls.Free(256) +func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, aCnt uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { + bp := tls.Alloc(272) + defer tls.Free(272) var bCkFreelist, bPartial int32 var i, mx, mxInHdr TPgno var pBt uintptr var savedDbFlags Tu64 - var _ /* notUsed at bp+224 */ Ti64 + var _ /* notUsed at bp+232 */ Ti64 var _ /* sCheck at bp+0 */ TIntegrityCk - var _ /* zErr at bp+120 */ [100]uint8 + var _ /* zErr at bp+128 */ [100]uint8 _, _, _, _, _, _, _ = bCkFreelist, bPartial, i, mx, mxInHdr, pBt, savedDbFlags pBt = (*TBtree)(unsafe.Pointer(p)).FpBt savedDbFlags = (*Tsqlite3)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags bPartial = 0 /* True if not checking all btrees */ bCkFreelist = int32(1) /* True to scan the freelist */ _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) /* aRoot[0]==0 means this is a partial check */ if *(*TPgno)(unsafe.Pointer(aRoot)) == uint32(0) { _ = libc.Int32FromInt32(0) @@ -58261,13 +58568,13 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin _sqlite3BtreeEnter(tls, p) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - libc.Xmemset(tls, bp, 0, uint64(120)) + libc.Xmemset(tls, bp, 0, uint64(128)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fdb = db (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt = pBt (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage = _btreePagecount(tls, (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr = mxErr - _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+120, int32(100), int32(SQLITE_MAX_LENGTH)) + _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+128, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FerrMsg.FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage == uint32(0) { goto integrity_ck_cleanup @@ -58289,7 +58596,7 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin /* Check the integrity of the freelist */ if bCkFreelist != 0 { - (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4822 + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4886 _checkList(tls, bp, int32(1), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+32), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = uintptr(0) } @@ -58313,11 +58620,11 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } mxInHdr = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+52) if mx != mxInHdr { - _checkAppendMsg(tls, bp, __ccgo_ts+4833, libc.VaList(bp+240, mx, mxInHdr)) + _checkAppendMsg(tls, bp, __ccgo_ts+4897, libc.VaList(bp+248, mx, mxInHdr)) } } else { if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+64) != uint32(0) { - _checkAppendMsg(tls, bp, __ccgo_ts+4878, 0) + _checkAppendMsg(tls, bp, __ccgo_ts+4942, 0) } } } @@ -58327,14 +58634,15 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin if !(int32(i) < nRoot && (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr != 0) { break } - if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) == uint32(0) { - goto _2 - } - if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { - _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnRow = 0 + if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) != 0 { + if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { + _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + } + (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fv0 = *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) + _checkTreePage(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), bp+232, libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)< nRec || iHdr >= *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84303)) + iHdr = uint32(uint8(v1)) + if *(*Tu32)(unsafe.Pointer(bp + 4)) > uint32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84745)) } - iField = *(*int32)(unsafe.Pointer(bp + 4)) + iField = int64(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 for { if !(i <= iCol) { @@ -61509,19 +61853,19 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } else { v3 = int32(_sqlite3GetVarint32(tls, a+uintptr(iHdr), bp)) } - iHdr += int32(uint8(v3)) - if iHdr > *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84309)) + iHdr += uint32(uint8(v3)) + if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84751)) } - szField = int32(_sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp)))) - iField += szField + szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) + iField += int64(szField) goto _2 _2: ; i++ } - if iField > nRec { - return _sqlite3CorruptError(tls, int32(84315)) + if iField > int64(nRec) { + return _sqlite3CorruptError(tls, int32(84757)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -61531,7 +61875,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC return int32(SQLITE_NOMEM) } } - _sqlite3VdbeSerialGet(tls, a+uintptr(iField-szField), *(*Tu32)(unsafe.Pointer(bp)), pMem) + _sqlite3VdbeSerialGet(tls, a+uintptr(iField-int64(szField)), *(*Tu32)(unsafe.Pointer(bp)), pMem) (*TMem)(unsafe.Pointer(pMem)).Fenc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc return SQLITE_OK } @@ -61967,6 +62311,7 @@ func _sqlite3VdbeMultiLoad(tls *libc.TLS, p uintptr, iDest int32, zTypes uintptr i++ } _sqlite3VdbeAddOp2(tls, p, int32(OP_ResultRow), iDest, i) + goto skip_op_resultrow skip_op_resultrow: ; _ = ap @@ -62345,6 +62690,11 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { _ = libc.Int32FromInt32(0) /* True because of tag-20230419-1 */ (*TOp)(unsafe.Pointer(pOp)).Fp2 = *(*int32)(unsafe.Pointer(aLabel + uintptr(^(*TOp)(unsafe.Pointer(pOp)).Fp2)*4)) } + /* OPFLG_JUMP opcodes never have P2==0, though OPFLG_JUMP0 opcodes + ** might */ + _ = libc.Int32FromInt32(0) + /* Jumps never go off the end of the bytecode array */ + _ = libc.Int32FromInt32(0) break } /* The mkopcodeh.tcl script has so arranged things that the only @@ -62355,6 +62705,7 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { _ = libc.Int32FromInt32(0) pOp -= 24 } + goto resolve_p2_values_loop_exit resolve_p2_values_loop_exit: ; if aLabel != 0 { @@ -62895,7 +63246,7 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { case -int32(8): pKeyInfo = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5090, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5154, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) j = 0 for { if !(j < int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)) { @@ -62905,68 +63256,68 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { if pColl != 0 { v2 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } zColl = v2 - if libc.Xstrcmp(tls, zColl, __ccgo_ts+5095) == 0 { - zColl = __ccgo_ts + 5102 + if libc.Xstrcmp(tls, zColl, __ccgo_ts+5159) == 0 { + zColl = __ccgo_ts + 5166 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_DESC) != 0 { - v3 = __ccgo_ts + 5083 + v3 = __ccgo_ts + 5147 } else { - v3 = __ccgo_ts + 1657 + v3 = __ccgo_ts + 1671 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_BIGNULL) != 0 { - v4 = __ccgo_ts + 5104 + v4 = __ccgo_ts + 5168 } else { - v4 = __ccgo_ts + 1657 + v4 = __ccgo_ts + 1671 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5107, libc.VaList(bp+40, v3, v4, zColl)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5171, libc.VaList(bp+40, v3, v4, zColl)) goto _1 _1: ; j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5115, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5179, int32(1)) case -int32(2): pColl1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5131, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5195, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) case -int32(7): pDef = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5140, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5204, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) case -int32(15): pDef1 = (*Tsqlite3_context)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpFunc - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5140, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5204, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) case -int32(13): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1413, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1432, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(3): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5147, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5211, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) case -int32(12): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1380, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1399, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(10): pMem = *(*uintptr)(unsafe.Pointer(pOp + 16)) if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Str) != 0 { zP4 = (*TMem)(unsafe.Pointer(pMem)).Fz } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1413, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1432, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1380, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1399, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Null) != 0 { - zP4 = __ccgo_ts + 1658 + zP4 = __ccgo_ts + 1672 } else { _ = libc.Int32FromInt32(0) - zP4 = __ccgo_ts + 5150 + zP4 = __ccgo_ts + 5214 } } } } case -int32(11): pVtab = (*TVTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5157, libc.VaList(bp+40, pVtab)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5221, libc.VaList(bp+40, pVtab)) case -int32(14): ai = *(*uintptr)(unsafe.Pointer(pOp + 16)) n = *(*Tu32)(unsafe.Pointer(ai)) /* The first element of an INTARRAY is always the @@ -62981,15 +63332,15 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } else { v6 = int32(',') } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5165, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5229, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) goto _5 _5: ; i++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5170, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5234, int32(1)) case -int32(4): - zP4 = __ccgo_ts + 5172 + zP4 = __ccgo_ts + 5236 case -int32(5): zP4 = (*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FzName default: @@ -63005,10 +63356,10 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } var _encnames = [4]uintptr{ - 0: __ccgo_ts + 5117, - 1: __ccgo_ts + 5119, - 2: __ccgo_ts + 5121, - 3: __ccgo_ts + 5126, + 0: __ccgo_ts + 5181, + 1: __ccgo_ts + 5183, + 2: __ccgo_ts + 5185, + 3: __ccgo_ts + 5190, } // C documentation @@ -64000,7 +64351,7 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { retryCount = 0 /* Select a super-journal file name */ nMainFile = _sqlite3Strlen30(tls, zMainFile) - zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5180, libc.VaList(bp+24, 0, zMainFile, 0)) + zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5244, libc.VaList(bp+24, 0, zMainFile, 0)) if zSuper == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -64008,18 +64359,18 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { for cond := true; cond; cond = rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 8)) != 0 { if retryCount != 0 { if retryCount > int32(100) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5192, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5256, libc.VaList(bp+24, zSuper)) _sqlite3OsDelete(tls, pVfs, zSuper, 0) break } else { if retryCount == int32(1) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5206, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5270, libc.VaList(bp+24, zSuper)) } } } retryCount++ Xsqlite3_randomness(tls, int32(4), bp+12) - Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5221, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) + Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5285, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) /* The antipenultimate character of the super-journal name must ** be "9" to avoid name collisions when using 8+3 filenames. */ _ = libc.Int32FromInt32(0) @@ -64256,7 +64607,7 @@ func _sqlite3VdbeCheckFk(tls *libc.TLS, p uintptr, deferred int32) (r int32) { if deferred != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredCons+(*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons > 0 || !(deferred != 0) && (*TVdbe)(unsafe.Pointer(p)).FnFkConstraint > 0 { (*TVdbe)(unsafe.Pointer(p)).Frc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(3)< y { return +libc.Int32FromInt32(1) } - s = float64(i) - if s < r { + if float64(i) < r { v2 = -int32(1) } else { - v2 = libc.BoolInt32(s > r) + v2 = libc.BoolInt32(float64(i) > r) } return v2 } @@ -65602,7 +65952,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89131))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89580))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -65697,7 +66047,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || int32((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89212))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89661))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -65733,7 +66083,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = int32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+uint32(nStr) > uint32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89242))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89691))) return 0 /* Corruption */ } else { if int32((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -65789,7 +66139,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += uint32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89293))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89742))) return 0 /* Corrupt index */ } } @@ -65911,6 +66261,7 @@ func _vdbeRecordCompareString(tls *libc.TLS, nKey1 int32, pKey1 uintptr, pPKey2 _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(bp)) = int32(int8(*(*Tu8)(unsafe.Pointer(aKey1 + 1)))) + goto vrcs_restart vrcs_restart: ; if *(*int32)(unsafe.Pointer(bp)) < int32(12) { @@ -65929,7 +66280,7 @@ vrcs_restart: szHdr = int32(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89456))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89905))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -66082,10 +66433,11 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr return SQLITE_OK /* Jump here if database corruption is detected after m has been ** allocated. Free the m object and return SQLITE_CORRUPT. */ + goto idx_rowid_corruption idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(89614)) + return _sqlite3CorruptError(tls, int32(90063)) } // C documentation @@ -66118,7 +66470,7 @@ func _sqlite3VdbeIdxKeyCompare(tls *libc.TLS, db uintptr, pC uintptr, pUnpacked ** that btreeParseCellPtr() and sqlite3GetVarint32() are implemented */ if nCellKey <= 0 || nCellKey > int64(0x7fffffff) { *(*int32)(unsafe.Pointer(res)) = 0 - return _sqlite3CorruptError(tls, int32(89647)) + return _sqlite3CorruptError(tls, int32(90096)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(nCellKey), bp) @@ -66274,15 +66626,15 @@ func _sqlite3NotPureFunc(tls *libc.TLS, pCtx uintptr) (r int32) { pOp = (*TVdbe)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe)).FaOp + uintptr((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FiOp)*24 if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_PureFunc) { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_IsCheck) != 0 { - zContext = __ccgo_ts + 5264 + zContext = __ccgo_ts + 5328 } else { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_GenCol) != 0 { - zContext = __ccgo_ts + 5283 + zContext = __ccgo_ts + 5347 } else { - zContext = __ccgo_ts + 5302 + zContext = __ccgo_ts + 5366 } } - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5311, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5375, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) return 0 @@ -66461,7 +66813,7 @@ func Xsqlite3_expired(tls *libc.TLS, pStmt uintptr) (r int32) { // */ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { if (*TVdbe)(unsafe.Pointer(p)).Fdb == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5347, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5411, 0) return int32(1) } else { return 0 @@ -66471,7 +66823,7 @@ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { func _vdbeSafetyNotNull(tls *libc.TLS, p uintptr) (r int32) { if p == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5392, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5456, 0) return int32(1) } else { return _vdbeSafety(tls, p) @@ -66533,7 +66885,7 @@ func Xsqlite3_finalize(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt db = (*TVdbe)(unsafe.Pointer(v)).Fdb if _vdbeSafety(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90035)) + return _sqlite3MisuseError(tls, int32(90484)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -67064,7 +67416,7 @@ func Xsqlite3_result_error_code(tls *libc.TLS, pCtx uintptr, errCode int32) { func Xsqlite3_result_error_toobig(tls *libc.TLS, pCtx uintptr) { _ = libc.Int32FromInt32(0) (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = int32(SQLITE_TOOBIG) - _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5432, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) + _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5496, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) } // C documentation @@ -67146,6 +67498,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) db = (*TVdbe)(unsafe.Pointer(p)).Fdb if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_RUN_STATE) { + goto restart_step restart_step: ; if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) == int32(VDBE_READY_STATE) { @@ -67249,6 +67602,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { rc = (*TVdbe)(unsafe.Pointer(p)).Frc } } + goto end_of_step end_of_step: ; /* There are only a limited number of result codes allowed from the @@ -67273,7 +67627,7 @@ func Xsqlite3_step(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt /* the prepared statement */ cnt = 0 /* The database connection */ if _vdbeSafetyNotNull(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90829)) + return _sqlite3MisuseError(tls, int32(91278)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -67407,7 +67761,7 @@ func _valueFromValueList(tls *libc.TLS, pVal uintptr, ppOut uintptr, bNext int32 _, _, _, _, _, _, _ = iOff, pOut, pRhs, rc, sz, zBuf, v1 *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) if pVal == uintptr(0) { - return _sqlite3MisuseError(tls, int32(90950)) + return _sqlite3MisuseError(tls, int32(91399)) } if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -67638,6 +67992,7 @@ func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, (*TAuxData)(unsafe.Pointer(pAuxData)).FpAux = pAux (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = xDelete return + goto failed failed: ; if xDelete != 0 { @@ -67879,18 +68234,18 @@ func Xsqlite3_column_type(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { // ** Column names appropriate for EXPLAIN or EXPLAIN QUERY PLAN. // */ var _azExplainColNames8 = [12]uintptr{ - 0: __ccgo_ts + 5455, - 1: __ccgo_ts + 5460, - 2: __ccgo_ts + 5467, - 3: __ccgo_ts + 5470, - 4: __ccgo_ts + 5473, - 5: __ccgo_ts + 5476, - 6: __ccgo_ts + 5479, - 7: __ccgo_ts + 5482, - 8: __ccgo_ts + 5490, - 9: __ccgo_ts + 5493, - 10: __ccgo_ts + 5500, - 11: __ccgo_ts + 5508, + 0: __ccgo_ts + 5519, + 1: __ccgo_ts + 5524, + 2: __ccgo_ts + 5531, + 3: __ccgo_ts + 5534, + 4: __ccgo_ts + 5537, + 5: __ccgo_ts + 5540, + 6: __ccgo_ts + 5543, + 7: __ccgo_ts + 5546, + 8: __ccgo_ts + 5554, + 9: __ccgo_ts + 5557, + 10: __ccgo_ts + 5564, + 11: __ccgo_ts + 5572, } var _azExplainColNames16data = [60]Tu16{ 0: uint16('a'), @@ -68026,6 +68381,7 @@ func _columnName(tls *libc.TLS, pStmt uintptr, N int32, useUtf16 int32, useType ret = uintptr(0) } } + goto columnName_end columnName_end: ; Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -68135,14 +68491,14 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { var v2 bool _, _, _ = pVar, v1, v2 if _vdbeSafetyNotNull(tls, p) != 0 { - return _sqlite3MisuseError(tls, int32(91554)) + return _sqlite3MisuseError(tls, int32(92003)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(91558))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(92007))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5515, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(91562)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5579, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) + return _sqlite3MisuseError(tls, int32(92011)) } if i >= uint32((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -68716,7 +69072,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp /* Test that this call is being made from within an SQLITE_DELETE or ** SQLITE_UPDATE pre-update callback, and that iIdx is within range. */ if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_INSERT) { - rc = _sqlite3MisuseError(tls, int32(92098)) + rc = _sqlite3MisuseError(tls, int32(92547)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -68763,6 +69119,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } } + goto preupdate_old_out preupdate_old_out: ; _sqlite3Error(tls, db, rc) @@ -68846,7 +69203,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp rc = SQLITE_OK p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(92221)) + rc = _sqlite3MisuseError(tls, int32(92670)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -68914,6 +69271,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } *(*uintptr)(unsafe.Pointer(ppValue)) = pMem + goto preupdate_new_out preupdate_new_out: ; _sqlite3Error(tls, db, rc) @@ -69022,7 +69380,7 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr break } } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5555, int32(3)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5619, int32(3)) _ = libc.Int32FromInt32(0) Xsqlite3_str_append(tls, bp+8, zStart, int32(int64(zRawSql)-int64(zStart))) } @@ -69061,13 +69419,13 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr _ = libc.Int32FromInt32(0) pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(*(*int32)(unsafe.Pointer(bp))-int32(1))*56 if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Null) != 0 { - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1658, int32(4)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1672, int32(4)) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1413, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1432, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5076, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5140, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Str) != 0 { /* Number of bytes of the string text to include in output */ enc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc @@ -69082,29 +69440,29 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr pVar = bp + 40 } nOut = (*TMem)(unsafe.Pointer(pVar)).Fn - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5559, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5623, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) if int32(enc) != int32(SQLITE_UTF8) { _sqlite3VdbeMemRelease(tls, bp+40) } } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Zero) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5566, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5630, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) } else { /* Number of bytes of the blob to include in output */ _ = libc.Int32FromInt32(0) - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5579, int32(2)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5643, int32(2)) nOut1 = (*TMem)(unsafe.Pointer(pVar)).Fn i = 0 for { if !(i < nOut1) { break } - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5582, libc.VaList(bp+104, int32(*(*uint8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5646, libc.VaList(bp+104, int32(*(*uint8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) goto _3 _3: ; i++ } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5587, int32(1)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5651, int32(1)) } } } @@ -69719,7 +70077,7 @@ var _azTypes = [5]uintptr{ 1: __ccgo_ts + 1153, 2: __ccgo_ts + 1158, 3: __ccgo_ts + 1136, - 4: __ccgo_ts + 1658, + 4: __ccgo_ts + 1672, } // C documentation @@ -69733,7 +70091,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { defer tls.Free(976) var aCol, aMem, aOffset, aOp, aPermute, aRoot, apArg, apArg1, db, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pnErr, t1, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v240, v241, v242, v250, v251, v252, v253, v255, v263, v278, v279, v286, v288, v297, v298, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 uintptr var affinity uint8 - var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 + var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, savedAnalysisLimit, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 var colCacheCtr, iAddr, iMap, iPrior, idx, len11, n3, p22, p23, serialType, serial_type, v213, v214, v216, v221, v222 Tu32 var encoding, isWriteLock, mTrace, op, p5, resetSchemaOnFault, vtabOnConflict, v225 Tu8 var flags1, flags11, flags2, flags3, flags31, newType, nullFlag, type1, type2, typeMask, v190 Tu16 @@ -69790,7 +70148,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { var _ /* z at bp+688 */ uintptr var _ /* zErr at bp+632 */ uintptr var _ /* zErr at bp+792 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, savedAnalysisLimit, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 aOp = (*TVdbe)(unsafe.Pointer(p)).FaOp /* Copy of p->aOp */ pOp = aOp /* Current operation */ rc = SQLITE_OK /* Value to return */ @@ -70066,7 +70424,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto _109 case int32(OP_SeekEnd): goto _110 - case int32(OP_IfSmaller): + case int32(OP_IfSizeBetween): goto _111 case int32(OP_Sort): goto _112 @@ -70268,6 +70626,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { */ _2: ; /* jump */ + goto jump_to_p2_and_check_for_interrupt jump_to_p2_and_check_for_interrupt: ; pOp = aOp + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp2-int32(1))*24 @@ -70281,6 +70640,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** way for performance, to avoid having to run the interrupt and progress ** checks on every opcode. This helps sqlite3_step() to run about 1.5% ** faster according to "valgrind --tool=cachegrind" */ + goto check_for_interrupt check_for_interrupt: ; if libc.AtomicLoadNInt32(db+432, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0 { @@ -70361,7 +70721,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: EndCoroutine */ _5: - ; /* jump */ + ; /* jump0 */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -70374,6 +70734,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* Most jump operations do a goto to this spot in order to update ** the pOp pointer. */ + goto jump_to_p2 jump_to_p2: ; _ = libc.Int32FromInt32(0) /* There are never any jumps to instruction 0 */ @@ -70384,7 +70745,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** ** The instruction at the address in register P1 is a Yield. ** Jump to the P2 parameter of that Yield. - ** After the jump, register P1 becomes undefined. + ** After the jump, the value register P1 is left with a value + ** such that subsequent OP_Yields go back to the this same + ** OP_EndCoroutine instruction. ** ** See also: InitCoroutine */ @@ -70396,8 +70759,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pCaller = aOp + uintptr(*(*Ti64)(unsafe.Pointer(pIn1)))*24 _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) + *(*Ti64)(unsafe.Pointer(pIn1)) = int64(int32((int64(pOp)-int64((*TVdbe)(unsafe.Pointer(p)).FaOp))/24) - int32(1)) pOp = aOp + uintptr((*TVdbeOp)(unsafe.Pointer(pCaller)).Fp2-int32(1))*24 - (*TMem)(unsafe.Pointer(pIn1)).Fflags = uint16(MEM_Undefined) goto _187 /* Opcode: Yield P1 P2 * * * ** @@ -70496,15 +70859,15 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) if (*TVdbe)(unsafe.Pointer(p)).Frc != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+5623, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) + _sqlite3VdbeError(tls, p, __ccgo_ts+5687, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) if *(*uintptr)(unsafe.Pointer(pOp + 16)) != 0 { - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5644, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5708, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } } else { - _sqlite3VdbeError(tls, p, __ccgo_ts+3804, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3868, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } pcx = int32((int64(pOp) - int64(aOp)) / 24) - Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5651, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) + Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5715, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) } rc = _sqlite3VdbeHalt(tls, p) _ = libc.Int32FromInt32(0) @@ -70709,18 +71072,14 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } (*TMem)(unsafe.Pointer(pOut)).Fenc = encoding goto _187 - /* Opcode: Variable P1 P2 * P4 * - ** Synopsis: r[P2]=parameter(P1,P4) + /* Opcode: Variable P1 P2 * * * + ** Synopsis: r[P2]=parameter(P1) ** ** Transfer the values of bound parameter P1 into register P2 - ** - ** If the parameter is named, then its name appears in P4. - ** The P4 value is used by sqlite3_bind_parameter_name(). */ _19: ; /* Value being transferred */ _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1-int32(1))*56 if _sqlite3VdbeMemTooBig(tls, pVar) != 0 { goto too_big @@ -71022,6 +71381,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(int32(type1)&int32(type2)&int32(MEM_Int) != 0) { goto _200 } + goto int_math int_math: ; iA = *(*Ti64)(unsafe.Pointer(pIn1)) @@ -71074,6 +71434,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if int32(type1)&int32(type2)&int32(MEM_Int) != 0 { goto int_math } + goto fp_math fp_math: ; rA = _sqlite3VdbeRealValue(tls, pIn1) @@ -71113,6 +71474,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _201: ; goto _187 + goto arithmetic_result_is_null arithmetic_result_is_null: ; _sqlite3VdbeMemSetNull(tls, pOut) @@ -71254,7 +71616,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** raise an SQLITE_MISMATCH exception. */ _38: - ; /* jump, in1 */ + ; /* jump0, in1 */ pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 if int32((*TMem)(unsafe.Pointer(pIn1)).Fflags)&int32(MEM_Int) == 0 { _applyAffinity(tls, pIn1, uint8(SQLITE_AFF_NUMERIC), encoding) @@ -72025,6 +72387,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) pC3 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) p22 = uint32((*TOp)(unsafe.Pointer(pOp)).Fp2) + goto op_column_restart op_column_restart: ; _ = libc.Int32FromInt32(0) @@ -72164,6 +72527,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { zData = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaRow } /* Fill in pC->aType[i] and aOffset[i] values through the p2-th field. */ + goto op_column_read_header op_column_read_header: ; i1 = int32((*TVdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed) @@ -72306,16 +72670,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } } + goto op_column_out op_column_out: ; goto _187 + goto op_column_corrupt op_column_corrupt: ; if (*(*TOp)(unsafe.Pointer(aOp))).Fp3 > 0 { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(95863)) + rc = _sqlite3CorruptError(tls, int32(96311)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -72421,9 +72787,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } _ = libc.Int32FromInt32(0) goto _187 + goto vdbe_type_error vdbe_type_error: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5675, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) + _sqlite3VdbeError(tls, p, __ccgo_ts+5739, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(12)< 0 && p12 == int32(SAVEPOINT_RELEASE) { /* It is not possible to release (commit) a savepoint if there are ** active write statements. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5789, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5853, 0) rc = int32(SQLITE_BUSY) } else { /* Determine whether or not this is a transaction savepoint. If so, @@ -73056,7 +73423,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If this instruction implements a COMMIT and other VMs are writing ** return an error indicating that the other VMs must complete first. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+5843, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5907, 0) rc = int32(SQLITE_BUSY) goto abort_due_to_error } else { @@ -73086,12 +73453,12 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto vdbe_return } else { if !(desiredAutoCommit != 0) { - v250 = __ccgo_ts + 5898 + v250 = __ccgo_ts + 5962 } else { if iRollback != 0 { - v251 = __ccgo_ts + 5946 + v251 = __ccgo_ts + 6010 } else { - v251 = __ccgo_ts + 5989 + v251 = __ccgo_ts + 6053 } v250 = v251 } @@ -73193,7 +73560,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** SQL statement was prepared. */ _sqlite3DbFree(tls, db, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg) - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6030) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6094) /* If the schema-cookie from the database file matches the cookie ** stored with the in-memory representation of the schema, do ** not reload the schema from the database file. @@ -73463,6 +73830,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** and report database corruption if they were not, but this check has ** since moved into the btree layer. */ (*TVdbeCursor)(unsafe.Pointer(pCur)).FisTable = libc.BoolUint8(int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) != -int32(8)) + goto open_cursor_set_hints open_cursor_set_hints: ; _ = libc.Int32FromInt32(0) @@ -73550,7 +73918,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fn = 0 - (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1657 + (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1671 } pCx1 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) if pCx1 != 0 && !(int32(TBool(*(*uint8)(unsafe.Pointer(pCx1 + 8))&0x8>>3)) != 0) && (*TOp)(unsafe.Pointer(pOp)).Fp2 <= int32((*TVdbeCursor)(unsafe.Pointer(pCx1)).FnField) { @@ -73666,7 +74034,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** is the only cursor opcode that works with a pseudo-table. ** ** P3 is the number of fields in the records that will be stored by - ** the pseudo-table. + ** the pseudo-table. If P2 is 0 or negative then the pseudo-cursor + ** will return NULL for every column. */ _83: ; @@ -73788,11 +74157,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: Found, NotFound, SeekGt, SeekGe, SeekLt */ _88: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _87: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _86: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _85: ; /* Only interested in == results */ _ = libc.Int32FromInt32(0) @@ -73955,6 +74324,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 112)) = _sqlite3BtreeEof(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48))) } } + goto seek_not_found seek_not_found: ; _ = libc.Int32FromInt32(0) @@ -74069,6 +74439,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(*(*int32)(unsafe.Pointer(bp + 160)) > 0 && int32((*TOp)(unsafe.Pointer(pOp)).Fp5) == 0) { goto _259 } + goto seekscan_search_fail seekscan_search_fail: ; /* Jump to SeekGE.P2, ending the loop */ @@ -74396,6 +74767,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) iKey1 = uint64(*(*Ti64)(unsafe.Pointer(pIn3))) + goto notExistsWithKey notExistsWithKey: ; pC10 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) @@ -74415,7 +74787,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp + 248)) != 0 { _ = libc.Int32FromInt32(0) if (*TOp)(unsafe.Pointer(pOp)).Fp2 == 0 { - rc = _sqlite3CorruptError(tls, int32(98111)) + rc = _sqlite3CorruptError(tls, int32(98565)) } else { goto jump_to_p2 } @@ -75090,14 +75462,20 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } goto _187 - /* Opcode: IfSmaller P1 P2 P3 * * + /* Opcode: IfSizeBetween P1 P2 P3 P4 * + ** + ** Let N be the approximate number of rows in the table or index + ** with cursor P1 and let X be 10*log2(N) if N is positive or -1 + ** if N is zero. ** - ** Estimate the number of rows in the table P1. Jump to P2 if that - ** estimate is less than approximately 2**(0.1*P3). + ** Jump to P2 if X is in between P3 and P4, inclusive. */ _111: ; _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) pC20 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) _ = libc.Int32FromInt32(0) pCrsr5 = *(*uintptr)(unsafe.Pointer(pC20 + 48)) @@ -75106,12 +75484,14 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { goto abort_due_to_error } - if *(*int32)(unsafe.Pointer(bp + 396)) == 0 { + if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { + sz = int64(-int32(1)) /* -Infinity encoding */ + } else { sz = _sqlite3BtreeRowCountEst(tls, pCrsr5) - if sz >= 0 && int32(_sqlite3LogEst(tls, uint64(sz))) < (*TOp)(unsafe.Pointer(pOp)).Fp3 { - *(*int32)(unsafe.Pointer(bp + 396)) = int32(1) - } + _ = libc.Int32FromInt32(0) + sz = int64(_sqlite3LogEst(tls, uint64(sz))) } + *(*int32)(unsafe.Pointer(bp + 396)) = libc.BoolInt32(sz >= int64((*TOp)(unsafe.Pointer(pOp)).Fp3) && sz <= int64((*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { goto jump_to_p2 } @@ -75267,6 +75647,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) rc = _sqlite3BtreeNext(tls, *(*uintptr)(unsafe.Pointer(pC22 + 48)), (*TOp)(unsafe.Pointer(pOp)).Fp3) + goto next_tail next_tail: ; (*TVdbeCursor)(unsafe.Pointer(pC22)).FcacheStatus = uint32(CACHE_STALE) @@ -75417,7 +75798,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } else { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 && !(_sqlite3WritableSchema(tls, db) != 0) { - rc = _sqlite3ReportError(tls, libc.Int32FromInt32(SQLITE_CORRUPT)|libc.Int32FromInt32(3)< int64(0x7fffffff) { - rc = _sqlite3CorruptError(tls, int32(99398)) + rc = _sqlite3CorruptError(tls, int32(99862)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -75763,11 +76144,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } *(*Ti64)(unsafe.Pointer(pOut)) = int64(*(*TPgno)(unsafe.Pointer(bp + 624))) goto _187 - /* Opcode: SqlExec * * * P4 * + /* Opcode: SqlExec P1 P2 * P4 * ** ** Run the SQL statement or statements specified in the P4 string. - ** Disable Auth and Trace callbacks while those statements are running if - ** P1 is true. + ** + ** The P1 parameter is a bitmask of options: + ** + ** 0x0001 Disable Auth and Trace callbacks while the statements + ** in P4 are running. + ** + ** 0x0002 Set db->nAnalysisLimit to P2 while the statements in + ** P4 are running. + ** */ _132: ; @@ -75775,16 +76163,21 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*uintptr)(unsafe.Pointer(bp + 632)) = uintptr(0) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth mTrace = (*Tsqlite3)(unsafe.Pointer(db)).FmTrace - if (*TOp)(unsafe.Pointer(pOp)).Fp1 != 0 { + savedAnalysisLimit = (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0001) != 0 { (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(0) } + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0002) != 0 { + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = (*TOp)(unsafe.Pointer(pOp)).Fp2 + } rc = Xsqlite3_exec(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16)), uintptr(0), uintptr(0), bp+632) (*Tsqlite3)(unsafe.Pointer(db)).FnSqlExec-- (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = mTrace + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = savedAnalysisLimit if *(*uintptr)(unsafe.Pointer(bp + 632)) != 0 || rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3804, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3868, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 632))) if rc == int32(SQLITE_NOMEM) { goto no_mem @@ -75817,13 +76210,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_SchemaChange) libc.SetBitFieldPtr16Uint32(p+200, libc.Uint32FromInt32(0), 0, 0x3) } else { - zSchema = __ccgo_ts + 6075 + zSchema = __ccgo_ts + 6139 (*(*TInitData)(unsafe.Pointer(bp + 640))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 640))).FiDb = iDb3 (*(*TInitData)(unsafe.Pointer(bp + 640))).FpzErrMsg = p + 168 (*(*TInitData)(unsafe.Pointer(bp + 640))).FmInitFlags = uint32(0) (*(*TInitData)(unsafe.Pointer(bp + 640))).FmxPage = _sqlite3BtreeLastPage(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6089, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6153, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -75840,7 +76233,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* The OP_ParseSchema opcode with a non-NULL P4 argument should parse ** at least one SQL statement. Any less than that indicates that ** the sqlite_schema table is corrupt. */ - rc = _sqlite3CorruptError(tls, int32(99678)) + rc = _sqlite3CorruptError(tls, int32(100155)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -75907,11 +76300,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* Opcode: IntegrityCk P1 P2 P3 P4 P5 ** ** Do an analysis of the currently open database. Store in - ** register P1 the text of an error message describing any problems. - ** If no problems are found, store a NULL in register P1. + ** register (P1+1) the text of an error message describing any problems. + ** If no problems are found, store a NULL in register (P1+1). ** - ** The register P3 contains one less than the maximum number of allowed errors. - ** At most reg(P3) errors will be reported. + ** The register (P1) contains one less than the maximum number of allowed + ** errors. At most reg(P1) errors will be reported. ** In other words, the analysis stops as soon as reg(P1) errors are ** seen. Reg(P1) is updated with the number of errors remaining. ** @@ -75926,18 +76319,20 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _138: ; /* Register keeping track of errors remaining */ _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) nRoot = (*TOp)(unsafe.Pointer(pOp)).Fp2 aRoot = *(*uintptr)(unsafe.Pointer(pOp + 16)) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 _ = libc.Int32FromInt32(0) + pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 _ = libc.Int32FromInt32(0) - pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 _ = libc.Int32FromInt32(0) + pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1+int32(1))*56 _ = libc.Int32FromInt32(0) - rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) + _ = libc.Int32FromInt32(0) + rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, aMem+uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) _sqlite3VdbeMemSetNull(tls, pIn1) if *(*int32)(unsafe.Pointer(bp + 680)) == 0 { _ = libc.Int32FromInt32(0) @@ -76051,7 +76446,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** P1 contains the address of the memory cell that contains the first memory ** cell in an array of values used as arguments to the sub-program. P2 ** contains the address to jump to if the sub-program throws an IGNORE - ** exception using the RAISE() function. Register P3 contains the address + ** exception using the RAISE() function. P2 might be zero, if there is + ** no possibility that an IGNORE exception will be raised. + ** Register P3 contains the address ** of a memory cell in this (the parent) VM that is used to allocate the ** memory required by the sub-vdbe at runtime. ** @@ -76093,7 +76490,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } if (*TVdbe)(unsafe.Pointer(p)).FnFrame >= *(*int32)(unsafe.Pointer(db + 136 + 10*4)) { rc = int32(SQLITE_ERROR) - _sqlite3VdbeError(tls, p, __ccgo_ts+6132, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6196, 0) goto abort_due_to_error } /* Register pRt is used to store the memory required to save the state @@ -76477,7 +76874,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* IMP: R-24505-23230 */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3804, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3868, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError } if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FskipFlag != 0 { @@ -76539,7 +76936,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3VdbeMemFinalize(tls, pMem3, *(*uintptr)(unsafe.Pointer(pOp + 16))) } if rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3804, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3868, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) goto abort_due_to_error } _sqlite3VdbeChangeEncoding(tls, pMem3, int32(encoding)) @@ -76624,11 +77021,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeRead > int32(1) { rc = int32(SQLITE_ERROR) if eNew == int32(PAGER_JOURNALMODE_WAL) { - v286 = __ccgo_ts + 6169 + v286 = __ccgo_ts + 6233 } else { - v286 = __ccgo_ts + 6174 + v286 = __ccgo_ts + 6238 } - _sqlite3VdbeError(tls, p, __ccgo_ts+6181, libc.VaList(bp+944, v286)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6245, libc.VaList(bp+944, v286)) goto abort_due_to_error } else { if eOld == int32(PAGER_JOURNALMODE_WAL) { @@ -76796,7 +77193,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { if rc&int32(0xFF) == int32(SQLITE_LOCKED) { z1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - _sqlite3VdbeError(tls, p, __ccgo_ts+6233, libc.VaList(bp+944, z1)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6297, libc.VaList(bp+944, z1)) } goto abort_due_to_error } @@ -76974,7 +77371,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TValueList)(unsafe.Pointer(pRhs)).FpOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 pOut = _out2Prerelease(tls, p, pOp) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6262, __ccgo_fp(_sqlite3VdbeValueListFree)) + _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6326, __ccgo_fp(_sqlite3VdbeValueListFree)) goto _187 /* Opcode: VFilter P1 P2 P3 P4 * ** Synopsis: iplan=r[P3] zplan='P4' @@ -77079,7 +77476,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_module)(unsafe.Pointer(pModule4)).FxColumn})))(tls, *(*uintptr)(unsafe.Pointer(pCur5 + 48)), bp+800, (*TOp)(unsafe.Pointer(pOp)).Fp2) _sqlite3VtabImportErrmsg(tls, p, pVtab4) if (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3804, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3868, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) rc = (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError } _sqlite3VdbeChangeEncoding(tls, pDest2, int32(encoding)) @@ -77348,7 +77745,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If the function returned an error, throw an exception */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+3804, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3868, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError } _sqlite3VdbeDeleteAuxData(tls, db, p+296, (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FiOp, (*TOp)(unsafe.Pointer(pOp)).Fp1) @@ -77510,7 +77907,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { Xsqlite3_free(tls, z2) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeExec > int32(1) { - z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6272, libc.VaList(bp+944, zTrace)) + z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6336, libc.VaList(bp+944, zTrace)) (*(*func(*libc.TLS, Tu32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*Tsqlite3)(unsafe.Pointer(db)).Ftrace))})))(tls, uint32(SQLITE_TRACE_STMT), (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg, p, z3) _sqlite3DbFree(tls, db, z3) } else { @@ -77577,22 +77974,23 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If we reach this point, it means that execution is finished with ** an error of some kind. */ + goto abort_due_to_error abort_due_to_error: ; if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)<= nProgressLimit && (*Tsqlite3)(unsafe.Pointer(db)).FxProgress != uintptr(0) { @@ -77628,22 +78027,25 @@ vdbe_return: /* Jump to here if a string or blob larger than SQLITE_MAX_LENGTH ** is encountered. */ + goto too_big too_big: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5432, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5496, 0) rc = int32(SQLITE_TOOBIG) goto abort_due_to_error /* Jump to here if a malloc() fails. */ + goto no_mem no_mem: ; _sqlite3OomFault(tls, db) - _sqlite3VdbeError(tls, p, __ccgo_ts+1627, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+1641, 0) rc = int32(SQLITE_NOMEM) goto abort_due_to_error /* Jump to here if the sqlite3_interrupt() API sets the interrupt ** flag. */ + goto abort_due_to_interrupt abort_due_to_interrupt: ; _ = libc.Int32FromInt32(0) @@ -77653,10 +78055,10 @@ abort_due_to_interrupt: } var _azType = [4]uintptr{ - 0: __ccgo_ts + 5589, - 1: __ccgo_ts + 5598, - 2: __ccgo_ts + 5605, - 3: __ccgo_ts + 5611, + 0: __ccgo_ts + 5653, + 1: __ccgo_ts + 5662, + 2: __ccgo_ts + 5669, + 3: __ccgo_ts + 5675, } var _and_logic = [9]uint8{ @@ -77810,16 +78212,16 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr type1 = v1 if type1 < uint32(12) { if type1 == uint32(0) { - v2 = __ccgo_ts + 1643 + v2 = __ccgo_ts + 1657 } else { if type1 == uint32(7) { - v3 = __ccgo_ts + 6310 + v3 = __ccgo_ts + 6374 } else { - v3 = __ccgo_ts + 6315 + v3 = __ccgo_ts + 6379 } v2 = v3 } - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6323, libc.VaList(bp+8, v2)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6387, libc.VaList(bp+8, v2)) rc = int32(SQLITE_ERROR) Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) @@ -77837,10 +78239,10 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr rc = Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) if rc == SQLITE_OK { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6352, libc.VaList(bp+8, iRow)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+6416, libc.VaList(bp+8, iRow)) rc = int32(SQLITE_ERROR) } else { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) } } } @@ -77882,15 +78284,15 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, pTab = _sqlite3LocateTable(tls, bp+8, uint32(0), zTable, zDb) if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6372, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6436, libc.VaList(bp+440, zTable)) } if pTab != 0 && !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6402, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6466, libc.VaList(bp+440, zTable)) } if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6438, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+6502, libc.VaList(bp+440, zTable)) } if !(pTab != 0) { if (*(*TParse)(unsafe.Pointer(bp + 8))).FzErrMsg != 0 { @@ -77920,7 +78322,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6459, libc.VaList(bp+440, zColumn)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6523, libc.VaList(bp+440, zColumn)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -77947,7 +78349,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, break } if (*(*TsColMap)(unsafe.Pointer(pFKey + 64 + uintptr(j)*16))).FiFrom == iCol { - zFault = __ccgo_ts + 6480 + zFault = __ccgo_ts + 6544 } goto _3 _3: @@ -77972,7 +78374,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } /* FIXME: Be smarter about indexes that use expressions */ if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == iCol || int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == -int32(2) { - zFault = __ccgo_ts + 6492 + zFault = __ccgo_ts + 6556 } goto _5 _5: @@ -77986,7 +78388,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if zFault != 0 { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6500, libc.VaList(bp+440, zFault)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+6564, libc.VaList(bp+440, zFault)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -78049,6 +78451,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } _sqlite3ParseObjectReset(tls, bp+8) } + goto blob_open_out blob_open_out: ; if rc == SQLITE_OK && int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { @@ -78060,7 +78463,7 @@ blob_open_out: _sqlite3DbFree(tls, db, pBlob) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v7 = __ccgo_ts + 3804 + v7 = __ccgo_ts + 3868 } else { v7 = libc.UintptrFromInt32(0) } @@ -78150,7 +78553,7 @@ func _blobReadWrite(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset in _, _, _, _, _ = db, iKey, p, rc, v p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102190)) + return _sqlite3MisuseError(tls, int32(102671)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -78252,7 +78655,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r _, _, _, _ = db, p, rc, v1 p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102290)) + return _sqlite3MisuseError(tls, int32(102771)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -78266,7 +78669,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r rc = _blobSeekToRow(tls, p, iRow, bp) if rc != SQLITE_OK { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v1 = __ccgo_ts + 3804 + v1 = __ccgo_ts + 3868 } else { v1 = libc.UintptrFromInt32(0) } @@ -82483,25 +82886,25 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema _ = zLegacy _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6534, int32(7)) != 0 { + if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6598, int32(7)) != 0 { return 0 } zLegacy = (*TTable)(unsafe.Pointer(pTab)).FzName - if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6542+7) == 0 { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6561+7) == 0 { + if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6606+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6625+7) == 0 { return int32(1) } if pSchema == uintptr(0) { return 0 } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6075+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6139+7) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6580+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6644+7) == 0 { return int32(1) } } else { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6580+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6644+7) == 0 { return int32(1) } } @@ -82537,28 +82940,29 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema // ** If the name cannot be resolved unambiguously, leave an error message // ** in pParse and return WRC_Abort. Return WRC_Prune on success. // */ -func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol uintptr, pNC uintptr, pExpr uintptr) (r int32) { +func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRight uintptr, pNC uintptr, pExpr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var cnt, cntTab, eNewExprOp, hit, i, iCol, j, nSubquery, op, v5 int32 - var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10 uintptr + var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10 uintptr var hCol, hCol1 Tu8 var v7, v8 uint32 var _ /* bRowid at bp+8 */ int32 var _ /* pFJMatch at bp+0 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10, v5, v7, v8 /* Loop counters */ - cnt = 0 /* Number of matching column names */ - cntTab = 0 /* Number of potential "rowid" matches */ - nSubquery = 0 /* How many levels of subquery */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ - pMatch = uintptr(0) /* The matching pSrcList item */ - pTopNC = pNC /* First namecontext in the list */ - pSchema = uintptr(0) /* Schema of the expression */ - eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ - pTab = uintptr(0) /* A column of pTab */ - *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ - _ = libc.Int32FromInt32(0) /* the name context cannot be NULL. */ - _ = libc.Int32FromInt32(0) /* The Z in X.Y.Z cannot be NULL */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10, v5, v7, v8 /* Loop counters */ + cnt = 0 /* Number of matching column names */ + cntTab = 0 /* Number of potential "rowid" matches */ + nSubquery = 0 /* How many levels of subquery */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ + pMatch = uintptr(0) /* The matching pSrcList item */ + pTopNC = pNC /* First namecontext in the list */ + pSchema = uintptr(0) /* Schema of the expression */ + eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ + pTab = uintptr(0) /* A column of pTab */ + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + zCol = *(*uintptr)(unsafe.Pointer(pRight + 8)) + _ = libc.Int32FromInt32(0) /* the name context cannot be NULL. */ + _ = libc.Int32FromInt32(0) /* The Z in X.Y.Z cannot be NULL */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) /* Initialize the node to no-match */ @@ -82590,7 +82994,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ; i++ } - if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6594, zDb) == 0 { + if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6658, zDb) == 0 { /* This branch is taken when the main database has been renamed ** using SQLITE_DBCONFIG_MAINDBNAME. */ pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema @@ -82692,7 +83096,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TTable)(unsafe.Pointer(pTab)).FpSchema != pSchema { goto _2 } - if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6599) != 0 { + if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6663) != 0 { goto _2 } } @@ -82807,16 +83211,16 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol op = int32((*TParse)(unsafe.Pointer(pParse)).FeTriggerOp) _ = libc.Int32FromInt32(0) if (*TParse)(unsafe.Pointer(pParse)).FbReturning != 0 { - if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0) { + if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0 || _isValidSchemaTableName(tls, zTab, (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab, uintptr(0)) != 0) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = libc.BoolInt32(op != int32(TK_DELETE)) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } } else { - if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6601, zTab) == 0 { + if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6665, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(1) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } else { - if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6605, zTab) == 0 { + if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6669, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = 0 pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } @@ -82825,7 +83229,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UUpsert) != 0 && zTab != uintptr(0) { pUpsert = *(*uintptr)(unsafe.Pointer(pNC + 16)) - if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6609, zTab) == 0 { + if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6673, zTab) == 0 { pTab = (*(*TSrcItem)(unsafe.Pointer((*TUpsert)(unsafe.Pointer(pUpsert)).FpUpsertSrc + 8))).FpTab (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(EXCLUDED_TABLE_NUMBER) } @@ -82947,15 +83351,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol _ = libc.Int32FromInt32(0) pOrig = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(j)*32))).FpExpr if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 && (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6618, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6682, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Win)) != uint32(0) && ((*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 || pNC != pTopNC) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6649, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6713, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if _sqlite3ExprVectorSize(tls, pOrig) != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6686, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6750, 0) return int32(WRC_Abort) } _resolveAlias(tls, pParse, pEList, j, pExpr, nSubquery) @@ -83009,7 +83413,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** a huge amount of legacy SQL that uses it. So for now, we just ** issue a warning. */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6704, libc.VaList(bp+24, zCol)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6768, libc.VaList(bp+24, zCol)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_STRING) libc.Xmemset(tls, pExpr+64, 0, uint64(8)) return int32(WRC_Prune) @@ -83040,7 +83444,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } _extendFJMatch(tls, pParse, bp, pMatch, (*TExpr)(unsafe.Pointer(pExpr)).FiColumn) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_FUNCTION) - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6739 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6803 *(*uintptr)(unsafe.Pointer(pExpr + 32)) = *(*uintptr)(unsafe.Pointer(bp)) cnt = int32(1) goto lookupname_end @@ -83050,18 +83454,22 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } } if cnt == 0 { - v10 = __ccgo_ts + 6748 + v10 = __ccgo_ts + 6812 } else { - v10 = __ccgo_ts + 6763 + v10 = __ccgo_ts + 6827 } zErr = v10 if zDb != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6785, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6849, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) } else { if zTab != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6798, libc.VaList(bp+24, zErr, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6862, libc.VaList(bp+24, zErr, zTab, zCol)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6808, libc.VaList(bp+24, zErr, zCol)) + if cnt == 0 && (*TExpr)(unsafe.Pointer(pRight)).Fflags&uint32(libc.Int32FromInt32(EP_DblQuoted)) != uint32(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6872, libc.VaList(bp+24, zErr, zCol)) + } else { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6933, libc.VaList(bp+24, zErr, zCol)) + } } } _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -83092,10 +83500,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** If a generated column is referenced, set bits for every column ** of the table. */ - if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 && cnt == int32(1) && pMatch != uintptr(0) { - *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + if pMatch != 0 { + if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { + *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + } else { + libc.SetBitFieldPtr16Uint32(pMatch+60+4, libc.Uint32FromInt32(1), 14, 0x4000) + } } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(eNewExprOp) + goto lookupname_end lookupname_end: ; if cnt == int32(1) { @@ -83188,19 +83601,19 @@ func _notValidImpl(tls *libc.TLS, pParse uintptr, pNC uintptr, zMsg uintptr, pEx defer tls.Free(32) var zIn uintptr _ = zIn - zIn = __ccgo_ts + 6815 + zIn = __ccgo_ts + 6940 if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IdxExpr) != 0 { - zIn = __ccgo_ts + 6843 + zIn = __ccgo_ts + 6968 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IsCheck) != 0 { - zIn = __ccgo_ts + 6861 + zIn = __ccgo_ts + 6986 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_GenCol) != 0 { - zIn = __ccgo_ts + 6879 + zIn = __ccgo_ts + 7004 } } } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6897, libc.VaList(bp+8, zMsg, zIn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7022, libc.VaList(bp+8, zMsg, zIn)) if pExpr != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } @@ -83250,8 +83663,8 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { var anRef [8]int32 var auth, i, is_agg, n, nLeft, nRef, nRight, no_such_func, rc, savedAllowFlags, wrong_num_args, v12, v4, v6, v7 int32 var enc Tu8 - var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zColumn, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zColumn, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 + var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 pNC = *(*uintptr)(unsafe.Pointer(pWalker + 40)) _ = libc.Int32FromInt32(0) pParse = (*TNameContext)(unsafe.Pointer(pNC)).FpParse @@ -83376,12 +83789,12 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { zDb = uintptr(0) zTable = uintptr(0) _ = libc.Int32FromInt32(0) - zColumn = *(*uintptr)(unsafe.Pointer(pExpr + 8)) + pRight = pExpr } else { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+6917, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7042, uintptr(0), pExpr) } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_ID) { @@ -83395,14 +83808,13 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { } _ = libc.Int32FromInt32(0) zTable = *(*uintptr)(unsafe.Pointer(pLeft + 8)) - zColumn = *(*uintptr)(unsafe.Pointer(pRight + 8)) _ = libc.Int32FromInt32(0) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameTokenRemap(tls, pParse, pExpr, pRight) _sqlite3RenameTokenRemap(tls, pParse, pExpr+64, pLeft) } } - return _lookupName(tls, pParse, zDb, zTable, zColumn, pNC, pExpr) + return _lookupName(tls, pParse, zDb, zTable, pRight, pNC, pExpr) /* Resolve function names */ fallthrough @@ -83443,7 +83855,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if n == int32(2) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = _exprProbability(tls, (*(*TExprList_item)(unsafe.Pointer(pList + 8 + 1*32))).FpExpr) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6934, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7059, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } } else { @@ -83467,7 +83879,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { auth = _sqlite3AuthCheck(tls, pParse, int32(SQLITE_FUNCTION), uintptr(0), (*TFuncDef)(unsafe.Pointer(pDef)).FzName, uintptr(0)) if auth != SQLITE_OK { if auth == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6998, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7123, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) @@ -83489,7 +83901,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { ** all this. */ _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7034, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7159, uintptr(0), pExpr) } } else { _ = libc.Int32FromInt32(0) /* Must fit in 8 bits */ @@ -83514,29 +83926,29 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if 0 == libc.BoolInt32(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME)) { _ = libc.Int32FromInt32(0) if pDef != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FxValue == uintptr(0) && pWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7062, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7187, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 || is_agg != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 && !(pWin != 0) || is_agg != 0 && pWin != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 { if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 || pWin != 0 { - zType = __ccgo_ts + 7105 + zType = __ccgo_ts + 7230 } else { - zType = __ccgo_ts + 7112 + zType = __ccgo_ts + 7237 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7122, libc.VaList(bp+8, zType, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7247, libc.VaList(bp+8, zType, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ is_agg = 0 } else { if no_such_func != 0 && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7150, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7275, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if wrong_num_args != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7172, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7297, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7216, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7341, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { @@ -83560,7 +83972,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { *(*int32)(unsafe.Pointer(pNC + 40)) &= ^(libc.Int32FromInt32(NC_AllowWin) | v7) } } else { - if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { is_agg = int32(1) } } @@ -83626,21 +84038,23 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { case int32(TK_IN): if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) { nRef = (*TNameContext)(unsafe.Pointer(pNC)).FnRef + _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_SelfRef) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7264, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7389, pExpr, pExpr) } else { _sqlite3WalkSelect(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 32))) } _ = libc.Int32FromInt32(0) if nRef != (*TNameContext)(unsafe.Pointer(pNC)).FnRef { *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 4)) |= uint32(SF_Correlated) } *(*int32)(unsafe.Pointer(pNC + 40)) |= int32(NC_Subquery) } case int32(TK_VARIABLE): _ = libc.Int32FromInt32(0) if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IsCheck)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+7275, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7400, pExpr, pExpr) } case int32(TK_IS): fallthrough @@ -83690,7 +84104,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { nRight = _sqlite3ExprVectorSize(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight) } if nLeft != nRight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6686, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6750, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } break @@ -83818,7 +84232,7 @@ func _resolveOrderByTermToExprList(tls *libc.TLS, pParse uintptr, pSelect uintpt func _resolveOutOfRangeError(tls *libc.TLS, pParse uintptr, zType uintptr, i int32, mx int32, pError uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7286, libc.VaList(bp+8, i, zType, mx)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7411, libc.VaList(bp+8, i, zType, mx)) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pError) } @@ -83853,7 +84267,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7342, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7467, 0) return int32(1) } i = 0 @@ -83892,7 +84306,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } if _sqlite3ExprIsInteger(tls, pE, bp) != 0 { if *(*int32)(unsafe.Pointer(bp)) <= 0 || *(*int32)(unsafe.Pointer(bp)) > (*TExprList)(unsafe.Pointer(pEList)).FnExpr { - _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7376, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) + _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7501, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) return int32(1) } } else { @@ -83965,7 +84379,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r break } if int32(uint32(*(*uint16)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32 + 16 + 4))&0x4>>2)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7382, libc.VaList(bp+16, i+int32(1))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7507, libc.VaList(bp+16, i+int32(1))) return int32(1) } goto _3 @@ -83999,7 +84413,7 @@ func _sqlite3ResolveOrderGroupBy(tls *libc.TLS, pParse uintptr, pSelect uintptr, return 0 } if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7443, libc.VaList(bp+8, zType)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7568, libc.VaList(bp+8, zType)) return int32(1) } pEList = (*TSelect)(unsafe.Pointer(pSelect)).FpEList @@ -84251,6 +84665,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } pItem = (*TSelect)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*104 + _ = libc.Int32FromInt32(0) /* Test of tag-20240424-1*/ if (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FselFlags&uint32(SF_Resolved) == uint32(0) { if pOuterNC != 0 { v3 = (*TNameContext)(unsafe.Pointer(pOuterNC)).FnRef @@ -84323,7 +84738,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { (*(*TNameContext)(unsafe.Pointer(bp))).FncFlags |= int32(NC_UEList) if (*TSelect)(unsafe.Pointer(p)).FpHaving != 0 { if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Aggregate) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7474, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7599, 0) return int32(WRC_Abort) } if _sqlite3ResolveExprNames(tls, bp, (*TSelect)(unsafe.Pointer(p)).FpHaving) != 0 { @@ -84390,7 +84805,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** is not detected until much later, and so we need to go ahead and ** resolve those symbols on the incorrect ORDER BY for consistency. */ - if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7376) != 0 { + if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7501) != 0 { return int32(WRC_Abort) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -84401,7 +84816,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** the GROUP BY clause does not contain aggregate functions. */ if pGroupBy != 0 { - if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7513) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { + if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7638) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(WRC_Abort) } i = 0 @@ -84411,7 +84826,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } if (*TExpr)(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(pItem2)).FpExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7519, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7644, 0) return int32(WRC_Abort) } goto _6 @@ -85442,7 +85857,7 @@ func _codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32 return } if nLeft != _sqlite3ExprVectorSize(tls, pRight) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6686, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6750, 0) return } _ = libc.Int32FromInt32(0) @@ -85527,7 +85942,7 @@ func _sqlite3ExprCheckHeight(tls *libc.TLS, pParse uintptr, nHeight int32) (r in rc = SQLITE_OK mxHeight = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 3*4)) if nHeight > mxHeight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7578, libc.VaList(bp+8, mxHeight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7703, libc.VaList(bp+8, mxHeight)) rc = int32(SQLITE_ERROR) } return rc @@ -85693,11 +86108,12 @@ func _sqlite3ExprSetErrorOffset(tls *libc.TLS, pExpr uintptr, iOfst int32) { // ** appear to be quoted. If the quotes were of the form "..." (double-quotes) // ** then the EP_DblQuoted flag is set on the expression node. // ** -// ** Special case: If op==TK_INTEGER and pToken points to a string that -// ** can be translated into a 32-bit integer, then the token is not -// ** stored in u.zToken. Instead, the integer values is written -// ** into u.iValue and the EP_IntValue flag is set. No extra storage +// ** Special case (tag-20240227-a): If op==TK_INTEGER and pToken points to +// ** a string that can be translated into a 32-bit integer, then the token is +// ** not stored in u.zToken. Instead, the integer values is written +// ** into u.iValue and the EP_IntValue flag is set. No extra storage // ** is allocated to hold the integer text and the dequote flag is ignored. +// ** See also tag-20240227-b. // */ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequote int32) (r uintptr) { bp := tls.Alloc(16) @@ -85711,7 +86127,7 @@ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequ _ = libc.Int32FromInt32(0) if pToken != 0 { if op != int32(TK_INTEGER) || (*TToken)(unsafe.Pointer(pToken)).Fz == uintptr(0) || _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pToken)).Fz, bp) == 0 { - nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) + nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) /* tag-20240227-a */ _ = libc.Int32FromInt32(0) } } @@ -85880,11 +86296,11 @@ func _sqlite3ExprListToValues(tls *libc.TLS, pParse uintptr, nElem int32, pEList } if nExprElem != nElem { if nExprElem > int32(1) { - v2 = __ccgo_ts + 7626 + v2 = __ccgo_ts + 7751 } else { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7628, libc.VaList(bp+8, nExprElem, v2, nElem)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7753, libc.VaList(bp+8, nExprElem, v2, nElem)) break } _ = libc.Int32FromInt32(0) @@ -85934,7 +86350,7 @@ func _sqlite3ExprAnd(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintpt if f&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_InnerON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { _sqlite3ExprDeferredDelete(tls, pParse, pLeft) _sqlite3ExprDeferredDelete(tls, pParse, pRight) - return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1731) + return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1791) } else { return _sqlite3PExpr(tls, pParse, int32(TK_AND), pLeft, pRight) } @@ -85964,7 +86380,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(pNew + 52)) = int32(int64((*TToken)(unsafe.Pointer(pToken)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) if pList != 0 && (*TExprList)(unsafe.Pointer(pList)).FnExpr > *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 6*4)) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7672, libc.VaList(bp+8, pToken)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7797, libc.VaList(bp+8, pToken)) } *(*uintptr)(unsafe.Pointer(pNew + 32)) = pList *(*Tu32)(unsafe.Pointer(pNew + 4)) |= uint32(libc.Int32FromInt32(EP_HasFunc)) @@ -85985,7 +86401,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u func _sqlite3ExprOrderByAggregateError(tls *libc.TLS, pParse uintptr, p uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7706, libc.VaList(bp+8, p)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7831, libc.VaList(bp+8, p)) } // C documentation @@ -86064,7 +86480,7 @@ func _sqlite3ExprFunctionUsable(tls *libc.TLS, pParse uintptr, pExpr uintptr, pD ** SQLITE_DBCONFIG_TRUSTED_SCHEMA is off (meaning ** that the schema is possibly tainted). */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7756, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7881, libc.VaList(bp+8, pExpr)) } } } @@ -86121,7 +86537,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n bOk = libc.BoolInt32(0 == _sqlite3Atoi64(tls, z+1, bp, int32(n-uint32(1)), uint8(SQLITE_UTF8))) } if bOk == 0 || *(*Ti64)(unsafe.Pointer(bp)) < int64(1) || *(*Ti64)(unsafe.Pointer(bp)) > int64(*(*int32)(unsafe.Pointer(db + 136 + 9*4))) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7776, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7901, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) return } @@ -86154,7 +86570,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n } (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = x if int32(x) > *(*int32)(unsafe.Pointer(db + 136 + 9*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7819, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7944, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } } @@ -86165,8 +86581,13 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n // ** Recursively delete an expression tree. // */ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { + var pLeft uintptr + _ = pLeft _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) + goto exprDeleteRestart +exprDeleteRestart: + ; _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -86174,9 +86595,6 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)|libc.Int32FromInt32(EP_Leaf)) != libc.Uint32FromInt32(0)) { /* The Expr.x union is never used at the same time as Expr.pRight */ _ = libc.Int32FromInt32(0) - if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { - _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpLeft) - } if (*TExpr)(unsafe.Pointer(p)).FpRight != 0 { _ = libc.Int32FromInt32(0) _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpRight) @@ -86191,6 +86609,17 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { } } } + if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { + pLeft = (*TExpr)(unsafe.Pointer(p)).FpLeft + if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) && !((*TExpr)(unsafe.Pointer(pLeft)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { + /* Avoid unnecessary recursion on unary operators */ + _sqlite3DbNNFreeNN(tls, db, p) + p = pLeft + goto exprDeleteRestart + } else { + _sqlite3ExprDeleteNN(tls, db, pLeft) + } + } } if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { _sqlite3DbNNFreeNN(tls, db, p) @@ -86237,11 +86666,11 @@ func _sqlite3ClearOnOrUsing(tls *libc.TLS, db uintptr, p uintptr) { // ** // ** The pExpr might be deleted immediately on an OOM error. // ** -// ** The deferred delete is (currently) implemented by adding the -// ** pExpr to the pParse->pConstExpr list with a register number of 0. +// ** Return 0 if the delete was successfully deferred. Return non-zero +// ** if the delete happened immediately because of an OOM. // */ -func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) { - _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr) +func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + return libc.BoolInt32(uintptr(0) == _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr)) } // C documentation @@ -86760,16 +87189,20 @@ func _sqlite3SrcListDup(tls *libc.TLS, db uintptr, p uintptr, flags int32) (r ui (*TSrcItem)(unsafe.Pointer(pNewItem)).FiCursor = (*TSrcItem)(unsafe.Pointer(pOldItem)).FiCursor (*TSrcItem)(unsafe.Pointer(pNewItem)).FaddrFillSub = (*TSrcItem)(unsafe.Pointer(pOldItem)).FaddrFillSub (*TSrcItem)(unsafe.Pointer(pNewItem)).FregReturn = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregReturn + (*TSrcItem)(unsafe.Pointer(pNewItem)).FregResult = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregResult if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x2>>1)) != 0 { *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3DbStrDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88))) + } else { + if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { + *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) + } else { + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pNewItem)).Fu1)) = *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pOldItem)).Fu1)) + } } (*TSrcItem)(unsafe.Pointer(pNewItem)).Fu2 = (*TSrcItem)(unsafe.Pointer(pOldItem)).Fu2 if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x100>>8)) != 0 { (*TCteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNewItem + 96)))).FnUse++ } - if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { - *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) - } v4 = (*TSrcItem)(unsafe.Pointer(pOldItem)).FpTab (*TSrcItem)(unsafe.Pointer(pNewItem)).FpTab = v4 pTab = v4 @@ -87035,7 +87468,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, n = v2 } if v3 && (*TIdList)(unsafe.Pointer(pColumns)).FnId != v2 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7842, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7967, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) goto vector_append_error } i = 0 @@ -87071,6 +87504,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, ** the RHS and LHS sizes match during code generation. */ (*TExpr)(unsafe.Pointer(pFirst)).FiTable = (*TIdList)(unsafe.Pointer(pColumns)).FnId } + goto vector_append_error vector_append_error: ; _sqlite3ExprUnmapAndDelete(tls, pParse, pExpr) @@ -87179,7 +87613,7 @@ func _sqlite3ExprListCheckLength(tls *libc.TLS, pParse uintptr, pEList uintptr, _ = mx mx = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 2*4)) if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr > mx { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7872, libc.VaList(bp+8, zObject)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7997, libc.VaList(bp+8, zObject)) } } @@ -87281,10 +87715,10 @@ func _sqlite3SelectWalkFail(tls *libc.TLS, pWalker uintptr, NotUsed uintptr) (r // ** anything else 0 // */ func _sqlite3IsTrueOrFalse(tls *libc.TLS, zIn uintptr) (r Tu32) { - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7895) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8020) == 0 { return uint32(EP_IsTrue) } - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+7900) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8025) == 0 { return uint32(EP_IsFalse) } return uint32(0) @@ -87371,6 +87805,52 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { return pExpr } +// C documentation +// +// /* +// ** pExpr is a TK_FUNCTION node. Try to determine whether or not the +// ** function is a constant function. A function is constant if all of +// ** the following are true: +// ** +// ** (1) It is a scalar function (not an aggregate or window function) +// ** (2) It has either the SQLITE_FUNC_CONSTANT or SQLITE_FUNC_SLOCHNG +// ** property. +// ** (3) All of its arguments are constants +// ** +// ** This routine sets pWalker->eCode to 0 if pExpr is not a constant. +// ** It makes no changes to pWalker->eCode if pExpr is constant. In +// ** every case, it returns WRC_Abort. +// ** +// ** Called as a service subroutine from exprNodeIsConstant(). +// */ +func _exprNodeIsConstantFunction(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef, pList, v1 uintptr + var n int32 + var v2 bool + _, _, _, _, _, _ = db, n, pDef, pList, v1, v2 /* The database */ + _ = libc.Int32FromInt32(0) + if v2 = (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)) != uint32(0); !v2 { + v1 = *(*uintptr)(unsafe.Pointer(pExpr + 32)) + pList = v1 + } + if v2 || v1 == uintptr(0) { + n = 0 + } else { + n = (*TExprList)(unsafe.Pointer(pList)).FnExpr + _sqlite3WalkExprList(tls, pWalker, pList) + if int32((*TWalker)(unsafe.Pointer(pWalker)).FeCode) == 0 { + return int32(WRC_Abort) + } + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)|libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG)) == uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) +} + // C documentation // // /* @@ -87400,6 +87880,7 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { // ** malformed schema error. // */ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + _ = libc.Int32FromInt32(0) /* If pWalker->eCode is 2 then any term of the expression that comes from ** the ON or USING clauses of an outer join disqualifies the expression ** from being considered constant. */ @@ -87418,8 +87899,12 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 } return WRC_Continue } else { - (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) - return int32(WRC_Abort) + if (*TWalker)(unsafe.Pointer(pWalker)).FpParse != 0 { + return _exprNodeIsConstantFunction(tls, pWalker, pExpr) + } else { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } } fallthrough case int32(TK_ID): @@ -87446,6 +87931,8 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 case int32(TK_REGISTER): fallthrough case int32(TK_DOT): + fallthrough + case int32(TK_RAISE): (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) return int32(WRC_Abort) case int32(TK_VARIABLE): @@ -87471,14 +87958,14 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 return r } -func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32) { +func _exprIsConst(tls *libc.TLS, pParse uintptr, p uintptr, initFlag int32) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* w at bp+0 */ TWalker (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(initFlag) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) - *(*int32)(unsafe.Pointer(bp + 40)) = iCur _sqlite3WalkExpr(tls, bp, p) return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } @@ -87492,9 +87979,15 @@ func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32 // ** For the purposes of this function, a double-quoted string (ex: "abc") // ** is considered a variable but a single-quoted string (ex: 'abc') is // ** a constant. +// ** +// ** The pParse parameter may be NULL. But if it is NULL, there is no way +// ** to determine if function calls are constant or not, and hence all +// ** function calls will be considered to be non-constant. If pParse is +// ** not NULL, then a function call might be constant, depending on the +// ** function and on its parameters. // */ -func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(1), 0) +func _sqlite3ExprIsConstant(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(1)) } // C documentation @@ -87512,8 +88005,26 @@ func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { // ** can be added to the pParse->pConstExpr list and evaluated once when // ** the prepared statement starts up. See sqlite3ExprCodeRunJustOnce(). // */ -func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(2), 0) +func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(2)) +} + +// C documentation +// +// /* +// ** This routine examines sub-SELECT statements as an expression is being +// ** walked as part of sqlite3ExprIsTableConstant(). Sub-SELECTs are considered +// ** constant as long as they are uncorrelated - meaning that they do not +// ** contain any terms from outer contexts. +// */ +func _exprSelectWalkTableConstant(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if (*TSelect)(unsafe.Pointer(pSelect)).FselFlags&uint32(SF_Correlated) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) } // C documentation @@ -87523,9 +88034,25 @@ func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { // ** for any single row of the table with cursor iCur. In other words, the // ** expression must not refer to any non-deterministic function nor any // ** table other than iCur. +// ** +// ** Consider uncorrelated subqueries to be constants if the bAllowSubq +// ** parameter is true. // */ -func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) { - return _exprIsConst(tls, p, int32(3), iCur) +func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32, bAllowSubq int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(3) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = uintptr(0) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) + if bAllowSubq != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_exprSelectWalkTableConstant) + } else { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) + } + *(*int32)(unsafe.Pointer(bp + 40)) = iCur + _sqlite3WalkExpr(tls, bp, p) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } // C documentation @@ -87545,7 +88072,10 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** // ** (1) pExpr cannot refer to any table other than pSrc->iCursor. // ** -// ** (2) pExpr cannot use subqueries or non-deterministic functions. +// ** (2a) pExpr cannot use subqueries unless the bAllowSubq parameter is +// ** true and the subquery is non-correlated +// ** +// ** (2b) pExpr cannot use non-deterministic functions. // ** // ** (3) pSrc cannot be part of the left operand for a RIGHT JOIN. // ** (Is there some way to relax this constraint?) @@ -87571,7 +88101,7 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** which leads to incorrect answers. See also restriction (9) // ** on push-down. // */ -func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32) (r int32) { +func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32, bAllowSubq int32) (r int32) { var jj int32 var pSrc uintptr _, _ = jj, pSrc @@ -87609,7 +88139,8 @@ func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList jj++ } } - return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor) /* rules (1), (2) */ + /* Rules (1), (2a), and (2b) handled by the following: */ + return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor, bAllowSubq) } // C documentation @@ -87708,7 +88239,7 @@ func _sqlite3ExprIsConstantOrGroupBy(tls *libc.TLS, pParse uintptr, p uintptr, p // */ func _sqlite3ExprIsConstantOrFunction(tls *libc.TLS, p uintptr, isInit Tu8) (r int32) { _ = libc.Int32FromInt32(0) - return _exprIsConst(tls, p, int32(4)+int32(isInit), 0) + return _exprIsConst(tls, uintptr(0), p, int32(4)+int32(isInit)) } // C documentation @@ -87852,13 +88383,13 @@ func _sqlite3ExprNeedsNoAffinityChange(tls *libc.TLS, p uintptr, aff uint8) (r i // ** Return TRUE if the given string is a row-id column name. // */ func _sqlite3IsRowid(tls *libc.TLS, z uintptr) (r int32) { - if _sqlite3StrICmp(tls, z, __ccgo_ts+7906) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8031) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7914) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8039) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+7920) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8045) == 0 { return int32(1) } return 0 @@ -87876,9 +88407,9 @@ func _sqlite3RowidAlias(tls *libc.TLS, pTab uintptr) (r uintptr) { var iCol, ii int32 _, _, _ = azOpt, iCol, ii azOpt = [3]uintptr{ - 0: __ccgo_ts + 7906, - 1: __ccgo_ts + 7914, - 2: __ccgo_ts + 7920, + 0: __ccgo_ts + 8031, + 1: __ccgo_ts + 8039, + 2: __ccgo_ts + 8045, } _ = libc.Int32FromInt32(0) ii = 0 @@ -88002,14 +88533,14 @@ func _sqlite3SetHasNullFlag(tls *libc.TLS, v uintptr, iCur int32, regHasNull int // ** The argument is an IN operator with a list (not a subquery) on the // ** right-hand side. Return TRUE if that list is constant. // */ -func _sqlite3InRhsIsConstant(tls *libc.TLS, pIn uintptr) (r int32) { +func _sqlite3InRhsIsConstant(tls *libc.TLS, pParse uintptr, pIn uintptr) (r int32) { var pLHS uintptr var res int32 _, _ = pLHS, res _ = libc.Int32FromInt32(0) pLHS = (*TExpr)(unsafe.Pointer(pIn)).FpLeft (*TExpr)(unsafe.Pointer(pIn)).FpLeft = uintptr(0) - res = _sqlite3ExprIsConstant(tls, pIn) + res = _sqlite3ExprIsConstant(tls, pParse, pIn) (*TExpr)(unsafe.Pointer(pIn)).FpLeft = pLHS return res } @@ -88167,7 +88698,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 iAddr = _sqlite3VdbeAddOp0(tls, v, int32(OP_Once)) _sqlite3OpenTable(tls, pParse, iTab, iDb, pTab, int32(OP_OpenRead)) eType = int32(IN_INDEX_ROWID) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+7924, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+8049, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) _sqlite3VdbeJumpHere(tls, v, iAddr) } else { /* Iterator variable */ affinity_ok = int32(1) @@ -88270,7 +88801,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 if colUsed == libc.Uint64FromInt32(1)<0 so that the new limit is either 1 or 0 */ db = (*TParse)(unsafe.Pointer(pParse)).Fdb - pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1731) + pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1791) if pLimit != 0 { (*TExpr)(unsafe.Pointer(pLimit)).FaffExpr = uint8(SQLITE_AFF_NUMERIC) pLimit = _sqlite3PExpr(tls, pParse, int32(TK_NE), _sqlite3ExprDup(tls, db, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft, 0), pLimit) @@ -88781,7 +89312,7 @@ func _sqlite3CodeSubselect(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int3 (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft = pLimit } else { /* If there is no pre-existing limit add a limit of 1 */ - pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8139) + pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8264) (*TSelect)(unsafe.Pointer(pSel)).FpLimit = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), pLimit, uintptr(0)) } (*TSelect)(unsafe.Pointer(pSel)).FiLimit = 0 @@ -89111,11 +89642,13 @@ func _sqlite3ExprCodeIN(tls *libc.TLS, pParse uintptr, pExpr uintptr, destIfFals } /* Jumps here in order to return true. */ _sqlite3VdbeJumpHere(tls, v, addrTruthOp) + goto sqlite3ExprCodeIN_finished sqlite3ExprCodeIN_finished: ; if rLhs != rLhsOrig { _sqlite3ReleaseTempReg(tls, pParse, rLhs) } + goto sqlite3ExprCodeIN_oom_error sqlite3ExprCodeIN_oom_error: ; _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiMap) @@ -89175,13 +89708,13 @@ func _codeInteger(tls *libc.TLS, pParse uintptr, pExpr uintptr, negFlag int32, i _ = libc.Int32FromInt32(0) c = _sqlite3DecOrHexToI64(tls, z, bp) if c == int32(3) && !(negFlag != 0) || c == int32(2) || negFlag != 0 && *(*Ti64)(unsafe.Pointer(bp)) == int64(-libc.Int32FromInt32(1))-(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<= (*TAggInfo)(unsafe.Pointer(pInfo)).FnFunc { _ = libc.Int32FromInt32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8232, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8357, libc.VaList(bp+160, pExpr)) } else { _ = libc.Int32FromInt32(0) return (*TAggInfo)(unsafe.Pointer(pInfo)).FiFirstReg + (*TAggInfo)(unsafe.Pointer(pInfo)).FnColumn + int32((*TExpr)(unsafe.Pointer(pExpr)).FiAgg) @@ -89981,7 +90509,7 @@ expr_code_doover: if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { return (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FregResult } - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { /* SQL functions can be expensive. So try to avoid running them ** multiple times if we know they always give the same result */ return _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) @@ -89999,7 +90527,7 @@ expr_code_doover: zId = *(*uintptr)(unsafe.Pointer(pExpr + 8)) pDef = _sqlite3FindFunction(tls, db, zId, nFarg, enc, uint8(0)) if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8259, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8384, libc.VaList(bp+160, pExpr)) break } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_INLINE) != uint32(0) && pFarg != uintptr(0) { @@ -90016,7 +90544,7 @@ expr_code_doover: if !(i < nFarg) { break } - if i < int32(32) && _sqlite3ExprIsConstant(tls, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { + if i < int32(32) && _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { constMask |= libc.Uint32FromInt32(1) << i } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_NEEDCOLL) != uint32(0) && !(pColl != 0) { @@ -90113,7 +90641,7 @@ expr_code_doover: _ = libc.Int32FromInt32(0) n1 = _sqlite3ExprVectorSize(tls, pLeft2) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != n1 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7842, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7967, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) } return (*TExpr)(unsafe.Pointer(pLeft2)).FiTable + int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) case int32(TK_IN): @@ -90145,8 +90673,9 @@ expr_code_doover: if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Collate)) != libc.Uint32FromInt32(0)) { /* A TK_COLLATE Expr node without the EP_Collate tag is a so-called ** "SOFT-COLLATE" that is added to constraints that are pushed down - ** from outer queries into sub-queries by the push-down optimization. - ** Clear subtypes as subtypes may not cross a subquery boundary. + ** from outer queries into sub-queries by the WHERE-clause push-down + ** optimization. Clear subtypes as subtypes may not cross a subquery + ** boundary. */ _ = libc.Int32FromInt32(0) _sqlite3ExprCode(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, target) @@ -90181,7 +90710,7 @@ expr_code_doover: _sqlite3VdbeAddOp1(tls, v, int32(OP_RealAffinity), target) } case int32(TK_VECTOR): - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6686, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6750, 0) break /* TK_IF_NULL_ROW Expr nodes are inserted ahead of expressions ** that derive from the right-hand table of a LEFT JOIN. The @@ -90303,7 +90832,7 @@ expr_code_doover: case int32(TK_RAISE): _ = libc.Int32FromInt32(0) if !((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != 0) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8283, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8408, 0) return 0 } if int32((*TExpr)(unsafe.Pointer(pExpr)).FaffExpr) == int32(OE_Abort) { @@ -90427,7 +90956,7 @@ func _sqlite3ExprCodeTemp(tls *libc.TLS, pParse uintptr, pExpr uintptr, pReg uin var r1, r2 int32 _, _ = r1, r2 pExpr = _sqlite3ExprSkipCollateAndLikely(tls, pExpr) - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { *(*int32)(unsafe.Pointer(pReg)) = 0 r2 = _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) } else { @@ -90500,7 +91029,7 @@ func _sqlite3ExprCodeCopy(tls *libc.TLS, pParse uintptr, pExpr uintptr, target i // ** might choose to code the expression at initialization time. // */ func _sqlite3ExprCodeFactorable(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) { - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target) } else { _sqlite3ExprCodeCopy(tls, pParse, pExpr, target) @@ -90571,7 +91100,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ _sqlite3VdbeAddOp2(tls, v, int32(copyOp), j+srcReg-int32(1), target+i) } } else { - if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if int32(flags)&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target+i) } else { inReg = _sqlite3ExprCodeTarget(tls, pParse, pExpr, target+i) @@ -90846,6 +91375,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsTrue)) == uint32(EP_IsTrue) { @@ -91067,6 +91597,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) { @@ -91914,18 +92445,16 @@ func _agginfoPersistExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnColumn && (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } else { _ = libc.Int32FromInt32(0) if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnFunc && (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } @@ -92047,6 +92576,7 @@ func _findOrCreateAggInfoColumn(tls *libc.TLS, pParse uintptr, pAggInfo uintptr, *(*Tu16)(unsafe.Pointer(v4))++ (*TAggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = int16(v3) } + goto fix_up_expr fix_up_expr: ; _ = libc.Int32FromInt32(0) @@ -92494,8 +93024,8 @@ func _sqlite3FirstAvailableRegister(tls *libc.TLS, pParse uintptr, iMin int32) ( func _isAlterableTable(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) - if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6534, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8333, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6598, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8458, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -92514,9 +93044,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, bp := tls.Alloc(48) defer tls.Free(48) (*TParse)(unsafe.Pointer(pParse)).FcolNamesSet = uint8(1) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8361, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8486, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8536, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8661, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) } } @@ -92532,9 +93062,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, func _renameFixQuotes(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8710, libc.VaList(bp+8, zDb, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8835, libc.VaList(bp+8, zDb, zDb)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8857, 0) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8982, 0) } } @@ -92592,7 +93122,7 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName ** in database iDb. If so, this is an error. */ if _sqlite3FindTable(tls, db, zName, zDb) != 0 || _sqlite3FindIndex(tls, db, zName, zDb) != 0 || _sqlite3IsShadowTableOf(tls, db, pTab, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9008, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9133, libc.VaList(bp+8, zName)) goto exit_rename_table } /* Make sure it is not a system table being altered, or a reserved name @@ -92601,11 +93131,11 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { goto exit_rename_table } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9067, zName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9192, zName) { goto exit_rename_table } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9073, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9198, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_rename_table } /* Invoke the authorization callback. */ @@ -92635,21 +93165,21 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName nTabName = _sqlite3Utf8CharLen(tls, zTabName, -int32(1)) /* Rewrite all CREATE TABLE, INDEX, TRIGGER or VIEW statements in ** the schema to use the new table name. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9100, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9225, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) /* Update the tbl_name and name columns of the sqlite_schema table ** as required. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9284, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9409, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) /* If the sqlite_sequence table exists in this database, then update ** it with the new table name. */ - if _sqlite3FindTable(tls, db, __ccgo_ts+9589, zDb) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9605, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if _sqlite3FindTable(tls, db, __ccgo_ts+9714, zDb) != 0 { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9730, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* If the table being renamed is not itself part of the temp database, ** edit view and trigger definitions within the temp database ** as required. */ if iDb != int32(1) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9663, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9788, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) } /* If this is a virtual table, invoke the xRename() function if ** one is defined. The xRename() callback will modify the names @@ -92665,7 +93195,8 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp4(tls, v, int32(OP_VRename), i, 0, 0, pVTab, -int32(11)) } _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+9928, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+10053, 0) + goto exit_rename_table exit_rename_table: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -92681,7 +93212,7 @@ exit_rename_table: func _sqlite3ErrorIfNotEmpty(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zErr uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9941, libc.VaList(bp+8, zErr, zDb, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10066, libc.VaList(bp+8, zErr, zDb, zTab)) } // C documentation @@ -92726,11 +93257,11 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** column must not be NULL. */ if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9979, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10104, 0) return } if (*TTable)(unsafe.Pointer(pNew)).FpIndex != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10011, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10136, 0) return } if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) == 0 { @@ -92748,10 +93279,10 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpFKey != 0 && pDflt != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10038) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10163) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && !(pDflt != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10097) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10222) } /* Ensure the default expression is something that sqlite3ValueFromExpr() ** can handle (i.e. not CURRENT_TIME etc.) @@ -92765,13 +93296,13 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr return } if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10150) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10275) } _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp))) } } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_STORED) != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10196) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10321) } } /* Modify the CREATE TABLE statement. */ @@ -92787,7 +93318,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** have to use printf() to translate between these units: */ _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10223, libc.VaList(bp+16, zDb, (*(*struct { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10348, libc.VaList(bp+16, zDb, (*(*struct { FaddColOffset int32 FpFKey uintptr FpDfltList uintptr @@ -92815,7 +93346,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterAdd)) /* Verify that constraints are still satisfied */ if (*TTable)(unsafe.Pointer(pNew)).FpCheck != uintptr(0) || int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Strict) != uint32(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10369, libc.VaList(bp+16, zTab, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10494, libc.VaList(bp+16, zTab, zDb)) } } } @@ -92855,12 +93386,12 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { goto exit_begin_add_column } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10722, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10847, 0) goto exit_begin_add_column } /* Make sure this is not an attempt to ALTER a view. */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10756, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10881, 0) goto exit_begin_add_column } if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { @@ -92888,7 +93419,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { nAlloc = (int32((*TTable)(unsafe.Pointer(pNew)).FnCol)-int32(1))/int32(8)*int32(8) + int32(8) _ = libc.Int32FromInt32(0) (*TTable)(unsafe.Pointer(pNew)).FaCol = _sqlite3DbMallocZero(tls, db, uint64(16)*uint64(nAlloc)) - (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10786, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+10911, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !((*TTable)(unsafe.Pointer(pNew)).FaCol != 0) || !((*TTable)(unsafe.Pointer(pNew)).FzName != 0) { _ = libc.Int32FromInt32(0) goto exit_begin_add_column @@ -92928,6 +93459,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { FpDfltList uintptr })(unsafe.Pointer(pTab + 64))).FaddColOffset _ = libc.Int32FromInt32(0) + goto exit_begin_add_column exit_begin_add_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -92951,18 +93483,18 @@ func _isRealTable(tls *libc.TLS, pParse uintptr, pTab uintptr, bDrop int32) (r i _, _ = zType, v1 zType = uintptr(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10805 + zType = __ccgo_ts + 10930 } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 10810 + zType = __ccgo_ts + 10935 } if zType != 0 { if bDrop != 0 { - v1 = __ccgo_ts + 10824 + v1 = __ccgo_ts + 10949 } else { - v1 = __ccgo_ts + 10841 + v1 = __ccgo_ts + 10966 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10859, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10984, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -93024,11 +93556,11 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld iCol++ } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10877, libc.VaList(bp+8, pOld)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11002, libc.VaList(bp+8, pOld)) goto exit_rename_column } /* Ensure the schema contains no double-quoted strings */ - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1657, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1671, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1))) /* Do the rename operation using a recursive UPDATE statement that ** uses the sqlite_rename_column() SQL function to compute the new @@ -93041,11 +93573,12 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld } _ = libc.Int32FromInt32(0) bQuote = int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pNew)).Fz))]) & int32(0x80) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10898, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11080, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11023, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11205, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iSchema, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+9928, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+10053, int32(1)) + goto exit_rename_column exit_rename_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -93523,11 +94056,11 @@ func _renameColumnParseError(tls *libc.TLS, pCtx uintptr, zWhen uintptr, pType u zT = Xsqlite3_value_text(tls, pType) zN = Xsqlite3_value_text(tls, pObject) if *(*uint8)(unsafe.Pointer(zWhen)) != 0 { - v1 = __ccgo_ts + 11211 + v1 = __ccgo_ts + 11336 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } - zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11213, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) + zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11338, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, zErr) } @@ -93604,8 +94137,8 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin if zSql == uintptr(0) { return int32(SQLITE_NOMEM) } - if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11236, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(116682)) + if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11361, int32(7)) != 0 { + return _sqlite3CorruptError(tls, int32(117285)) } if bTemp != 0 { v1 = int32(1) @@ -93621,7 +94154,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin rc = int32(SQLITE_NOMEM) } if rc == SQLITE_OK && ((*TParse)(unsafe.Pointer(p)).FpNewTable == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewIndex == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewTrigger == uintptr(0)) { - rc = _sqlite3CorruptError(tls, int32(116693)) + rc = _sqlite3CorruptError(tls, int32(117296)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -93660,7 +94193,7 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, ** ALTER TABLE statement was quoted (bQuote==1), then set zNew to ** point to zQuot so that all substitutions are made using the ** quoted version of the new column name. */ - zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11244, libc.VaList(bp+8, zNew)) + zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11369, libc.VaList(bp+8, zNew)) if zQuot == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -93706,11 +94239,11 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, *(*uint8)(unsafe.Pointer(zBuf1 + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn))) = uint8(0) _sqlite3Dequote(tls, zBuf1) if int32(*(*uint8)(unsafe.Pointer((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn)))) == int32('\'') { - v1 = __ccgo_ts + 11211 + v1 = __ccgo_ts + 11336 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } - Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11250, libc.VaList(bp+8, zBuf1, v1)) + Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+11375, libc.VaList(bp+8, zBuf1, v1)) zReplace = zBuf2 nReplace = uint32(_sqlite3Strlen30(tls, zReplace)) } @@ -94194,6 +94727,7 @@ func _renameColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintp } _ = libc.Int32FromInt32(0) rc = _renameEditSql(tls, context, bp, zSql, zNew, bQuote) + goto renameColumnFunc_done renameColumnFunc_done: ; if rc != SQLITE_OK { @@ -94201,7 +94735,7 @@ renameColumnFunc_done: Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv))) } else { if (*(*TParse)(unsafe.Pointer(bp + 32))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1657, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) + _renameColumnParseError(tls, context, __ccgo_ts+1671, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -94430,7 +94964,7 @@ func _renameTableFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintpt Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv + 3*8))) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1657, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) + _renameColumnParseError(tls, context, __ccgo_ts+1671, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -94692,7 +95226,7 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr pTab = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable if pTab == uintptr(0) || int32((*TTable)(unsafe.Pointer(pTab)).FnCol) == int32(1) || iCol >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { /* This can happen if the sqlite_schema table is corrupt */ - rc = _sqlite3CorruptError(tls, int32(117652)) + rc = _sqlite3CorruptError(tls, int32(118255)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -94710,9 +95244,10 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr (*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz-- } } - zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11255, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) + zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11380, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) Xsqlite3_result_text(tls, context, zNew, -int32(1), uintptr(-libc.Int32FromInt32(1))) Xsqlite3_free(tls, zNew) + goto drop_column_done drop_column_done: ; _renameParseCleanup(tls, bp) @@ -94736,8 +95271,9 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName bp := tls.Alloc(48) defer tls.Free(48) var addr, i, iCol, iColPos, iCur, iDb, iPos, nField, reg, regOut, regRec, v2, v4, v7 int32 + var aff uint8 var db, pPk, pTab, v, zCol, zDb, v1, v3, v5, v8 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, aff, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Database containing pTab ("main" etc.) */ zCol = uintptr(0) /* Index of column zCol in pTab->aCol[] */ /* Look up the table being altered. */ @@ -94766,23 +95302,23 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName } iCol = _sqlite3ColumnIndex(tls, pTab, zCol) if iCol < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10877, libc.VaList(bp+8, pName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11002, libc.VaList(bp+8, pName)) goto exit_drop_column } /* Do not allow the user to drop a PRIMARY KEY column or a column ** constrained by a UNIQUE constraint. */ if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_PRIMKEY)|libc.Int32FromInt32(COLFLAG_UNIQUE)) != 0 { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - v1 = __ccgo_ts + 11262 + v1 = __ccgo_ts + 11387 } else { - v1 = __ccgo_ts + 5598 + v1 = __ccgo_ts + 5662 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11274, libc.VaList(bp+8, v1, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11399, libc.VaList(bp+8, v1, zCol)) goto exit_drop_column } /* Do not allow the number of columns to go to zero */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) <= int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11302, libc.VaList(bp+8, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11427, libc.VaList(bp+8, zCol)) goto exit_drop_column } /* Edit the sqlite_schema table */ @@ -94793,12 +95329,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_ALTER_TABLE), zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol) != 0 { goto exit_drop_column } - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1657, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1671, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1))) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11350, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11475, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterDrop)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11471, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11596, int32(1)) /* Edit rows of table on disk */ if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 && int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { pPk = uintptr(0) @@ -94856,7 +95392,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if i == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regOut) } else { + aff = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity + if int32(aff) == int32(SQLITE_AFF_REAL) { + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = uint8(SQLITE_AFF_NUMERIC) + } _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, i, regOut) + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = aff } nField++ } @@ -94881,6 +95422,7 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iCur, addr+int32(1)) _sqlite3VdbeJumpHere(tls, v, addr) } + goto exit_drop_column exit_drop_column: ; _sqlite3DbFree(tls, db, zCol) @@ -94900,27 +95442,27 @@ var _aAlterTableFuncs = [5]TFuncDef{ 0: { FnArg: int8(9), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11489, + FzName: __ccgo_ts + 11614, }, 1: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11510, + FzName: __ccgo_ts + 11635, }, 2: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11530, + FzName: __ccgo_ts + 11655, }, 3: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11549, + FzName: __ccgo_ts + 11674, }, 4: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11568, + FzName: __ccgo_ts + 11693, }, } @@ -95133,7 +95675,7 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW ** side-effect of the CREATE TABLE statement is to leave the rootpage ** of the new table in register pParse->regRoot. This is important ** because the OpenWrite opcode below will be needing it. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11671, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11796, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) aRoot[i] = uint32((*TParse)(unsafe.Pointer(pParse)).FregRoot) aCreateTbl[i] = uint8(OPFLAG_P2ISREG) } @@ -95144,10 +95686,10 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW aRoot[i] = (*TTable)(unsafe.Pointer(pStat)).Ftnum _sqlite3TableLock(tls, pParse, iDb, aRoot[i], uint8(1), zTab) if zWhere != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11694, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11819, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11724, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11849, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) } else { /* The sqlite_stat[134] table already exists. Delete all rows. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Clear), int32(aRoot[i]), iDb) @@ -95180,15 +95722,15 @@ var _aTable = [3]struct { FzCols uintptr }{ 0: { - FzName: __ccgo_ts + 11591, - FzCols: __ccgo_ts + 11604, + FzName: __ccgo_ts + 11716, + FzCols: __ccgo_ts + 11729, }, 1: { - FzName: __ccgo_ts + 11617, - FzCols: __ccgo_ts + 11630, + FzName: __ccgo_ts + 11742, + FzCols: __ccgo_ts + 11755, }, 2: { - FzName: __ccgo_ts + 11658, + FzName: __ccgo_ts + 11783, }, } @@ -95497,7 +96039,7 @@ func _statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statInitFuncdef = TFuncDef{ FnArg: int8(4), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11742, + FzName: __ccgo_ts + 11867, } func init() { @@ -95651,6 +96193,7 @@ func _sampleInsert(tls *libc.TLS, p uintptr, pNew uintptr, nEqZero int32) { (*TStatAccum)(unsafe.Pointer(p)).FnSample++ /* Zero the first nEqZero entries in the anEq[] array. */ libc.Xmemset(tls, (*TStatSample)(unsafe.Pointer(pSample)).FanEq, 0, uint64(8)*uint64(nEqZero)) + goto find_new_min find_new_min: ; if (*TStatAccum)(unsafe.Pointer(p)).FnSample >= (*TStatAccum)(unsafe.Pointer(p)).FmxSample { @@ -95882,7 +96425,7 @@ func _statPush(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statPushFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(2) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11752, + FzName: __ccgo_ts + 11877, } func init() { @@ -95935,7 +96478,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } else { v1 = (*TStatAccum)(unsafe.Pointer(p)).FnRow } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11762, libc.VaList(bp+72, v1)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11887, libc.VaList(bp+72, v1)) i = 0 for { if !(i < (*TStatAccum)(unsafe.Pointer(p)).FnKeyCol) { @@ -95946,7 +96489,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if iVal == uint64(2) && (*TStatAccum)(unsafe.Pointer(p)).FnRow*uint64(10) <= nDistinct*uint64(11) { iVal = uint64(1) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11767, libc.VaList(bp+72, iVal)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11892, libc.VaList(bp+72, iVal)) _ = libc.Int32FromInt32(0) goto _2 _2: @@ -95987,7 +96530,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if !(i1 < (*TStatAccum)(unsafe.Pointer(p)).FnCol) { break } - Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+11773, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) + Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+11898, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) goto _3 _3: ; @@ -96005,7 +96548,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statGetFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(1) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11779, + FzName: __ccgo_ts + 11904, } func init() { @@ -96027,9 +96570,9 @@ func _callStatGet(tls *libc.TLS, pParse uintptr, regStat int32, iParam int32, re // */ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr, iStatCur int32, iMem int32, iTab int32) { var aGotoChng, db, pColl, pIdx, pPk, pStat1, pX, v, zIdxName uintptr - var addrIsNull, addrNext, addrNextRow, addrRewind, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 + var addrGotoEnd, addrIsNull, addrNext, addrNextRow, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 var needTableCnt, seekOp Tu8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrIsNull, addrNext, addrNextRow, addrRewind, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrGotoEnd, addrIsNull, addrNext, addrNextRow, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Loop counter */ jZeroRows = -int32(1) /* Index of database containing pTab */ needTableCnt = uint8(1) @@ -96073,7 +96616,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Do not gather statistics on views or virtual tables */ return } - if Xsqlite3_strlike(tls, __ccgo_ts+11788, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { + if Xsqlite3_strlike(tls, __ccgo_ts+11913, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { /* Do not gather statistics on system tables */ return } @@ -96090,7 +96633,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint return } (*TTable)(unsafe.Pointer(pStat1)).FzName = pStat1 + 1*104 - libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11591, uint64(13)) + libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11716, uint64(13)) (*TTable)(unsafe.Pointer(pStat1)).FnCol = int16(3) (*TTable)(unsafe.Pointer(pStat1)).FiPKey = int16(-int32(1)) _sqlite3VdbeAddOp4(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Noop), 0, 0, 0, pStat1, -int32(6)) @@ -96144,9 +96687,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* ** Pseudo-code for loop that calls stat_push(): ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() ** goto chng_addr_0; ** ** next_row: @@ -96181,34 +96729,31 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _ = libc.Int32FromInt32(0) _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenRead), iIdxCur, int32((*TIndex)(unsafe.Pointer(pIdx)).Ftnum), iDb) _sqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx) - /* Invoke the stat_init() function. The arguments are: + /* Implementation of the following: ** + ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() + ** goto chng_addr_0; + */ + _ = libc.Int32FromInt32(0) + _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + /* Arguments to stat_init(): ** (1) the number of columns in the index including the rowid ** (or for a WITHOUT ROWID table, the number of PK columns), ** (2) the number of columns in the key without the rowid/pk - ** (3) estimated number of rows in the index, - */ + ** (3) estimated number of rows in the index. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), nCol, regStat+int32(1)) _ = libc.Int32FromInt32(0) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol), regRowid) - if (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0) { - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iIdxCur, regTemp) - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - } else { - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, int32(1)) - } - _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) != uint32(0))) _sqlite3VdbeAddFunctionCall(tls, pParse, 0, regStat+int32(1), regStat, int32(4), uintptr(unsafe.Pointer(&_statInitFuncdef)), 0) - /* Implementation of the following: - ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; - ** regChng = 0 - ** goto next_push_0; - ** - */ + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regChng) addrNextRow = _sqlite3VdbeCurrentAddr(tls, v) if nColTest > 0 { @@ -96320,9 +96865,15 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iIdxCur, addrNextRow) } /* Add the entry to the stat1 table. */ + if (*TIndex)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 { + /* Partial indexes might get a zero-entry in sqlite_stat1. But + ** an empty table is omitted from sqlite_stat1. */ + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + addrGotoEnd = 0 + } _callStatGet(tls, pParse, regStat, STAT_GET_STAT1, regStat1) _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11798, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11923, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP4(tls, v, -int32(1), pStat1, -int32(5)) @@ -96341,6 +96892,11 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint v18 = int32(OP_NotFound) } seekOp = uint8(v18) + /* No STAT4 data is generated if the number of rows is zero */ + if addrGotoEnd == 0 { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Cast), regStat1, int32(SQLITE_AFF_INTEGER)) + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) + } if doOnce != 0 { mxCol = nCol /* Compute the maximum number of columns in any index */ @@ -96395,7 +96951,9 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeJumpHere(tls, v, addrIsNull) } /* End of analysis */ - _sqlite3VdbeJumpHere(tls, v, addrRewind) + if addrGotoEnd != 0 { + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + } goto _13 _13: ; @@ -96409,7 +96967,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint jZeroRows = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regIdxname) _ = libc.Int32FromInt32(0) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11798, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+11923, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND)) @@ -96484,9 +97042,9 @@ func _analyzeTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr iStatCur = (*TParse)(unsafe.Pointer(pParse)).FnTab *(*int32)(unsafe.Pointer(pParse + 52)) += int32(3) if pOnlyIdx != 0 { - _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11802) + _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+11927) } else { - _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11806) + _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11931) } _analyzeOneTable(tls, pParse, pTab, pOnlyIdx, iStatCur, (*TParse)(unsafe.Pointer(pParse)).FnMem+int32(1), (*TParse)(unsafe.Pointer(pParse)).FnTab) _loadAnalysis(tls, pParse, iDb) @@ -96617,7 +97175,7 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, _, _, _, _, _, _ = c, i, sz, v, z, v2 z = zIntArray if z == uintptr(0) { - z = __ccgo_ts + 1657 + z = __ccgo_ts + 1671 } i = 0 for { @@ -96652,17 +97210,17 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 6, 0x40) for *(*uint8)(unsafe.Pointer(z)) != 0 { - if Xsqlite3_strglob(tls, __ccgo_ts+11810, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11935, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 2, 0x4) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11821, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11946, z) == 0 { sz = _sqlite3Atoi(tls, z+uintptr(3)) if sz < int32(2) { sz = int32(2) } (*TIndex)(unsafe.Pointer(pIndex)).FszIdxRow = _sqlite3LogEst(tls, uint64(sz)) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+11831, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+11956, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 6, 0x40) } } @@ -97046,11 +97604,11 @@ func _loadStat4(tls *libc.TLS, db uintptr, zDb uintptr) (r int32) { rc = SQLITE_OK _ = libc.Int32FromInt32(0) if v2 = (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0); v2 { - v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11617, zDb) + v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11742, zDb) pStat4 = v1 } if v2 && v1 != uintptr(0) && int32((*TTable)(unsafe.Pointer(pStat4)).FeTabType) == TABTYP_NORM { - rc = _loadStatTbl(tls, db, __ccgo_ts+11843, __ccgo_ts+11912, zDb) + rc = _loadStatTbl(tls, db, __ccgo_ts+11968, __ccgo_ts+12037, zDb) } return rc } @@ -97119,10 +97677,10 @@ func _sqlite3AnalysisLoad(tls *libc.TLS, db uintptr, iDb int32) (r int32) { /* Load new statistics out of the sqlite_stat1 table */ (*(*TanalysisInfo)(unsafe.Pointer(bp))).Fdb = db (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName - v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11591, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) + v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11716, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) pStat1 = v3 if v3 != 0 && int32((*TTable)(unsafe.Pointer(pStat1)).FeTabType) == TABTYP_NORM { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+11964, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+12089, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -97236,7 +97794,7 @@ func _resolveAttachExpr(tls *libc.TLS, pName uintptr, pExpr uintptr) (r int32) { // ** database iDb attached to handle db. // */ func _sqlite3DbIsNamed(tls *libc.TLS, db uintptr, iDb int32, zName uintptr) (r int32) { - return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6594, zName) == 0) + return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+6658, zName) == 0) } // C documentation @@ -97278,21 +97836,21 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { zFile = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) zName = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if zFile == uintptr(0) { - zFile = __ccgo_ts + 1657 + zFile = __ccgo_ts + 1671 } if zName == uintptr(0) { - zName = __ccgo_ts + 1657 + zName = __ccgo_ts + 1671 } if int32(uint32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x4>>2)) != 0 { /* This is not a real ATTACH. Instead, this routine is being called ** from sqlite3_deserialize() to close database db->init.iDb and ** reopen it as a MemDB */ *(*uintptr)(unsafe.Pointer(bp + 40)) = uintptr(0) - *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+3976) + *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+4040) if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { return } - rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12005, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) + rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12130, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) if rc == SQLITE_OK { pNewSchema = _sqlite3SchemaGet(tls, db, *(*uintptr)(unsafe.Pointer(bp + 40))) if pNewSchema != 0 { @@ -97323,7 +97881,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { ** * Specified database name already being used. */ if (*Tsqlite3)(unsafe.Pointer(db)).FnDb >= *(*int32)(unsafe.Pointer(db + 136 + 7*4))+int32(2) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12008, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12133, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) goto attach_error } i = 0 @@ -97333,7 +97891,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } _ = libc.Int32FromInt32(0) if _sqlite3DbIsNamed(tls, db, i, zName) != 0 { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12045, libc.VaList(bp+56, zName)) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12170, libc.VaList(bp+56, zName)) goto attach_error } goto _1 @@ -97382,7 +97940,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FnoSharedCache = uint8(0) if rc == int32(SQLITE_CONSTRAINT) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12075, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12200, 0) } else { if rc == SQLITE_OK { (*TDb)(unsafe.Pointer(pNew)).FpSchema = _sqlite3SchemaGet(tls, db, (*TDb)(unsafe.Pointer(pNew)).FpBt) @@ -97390,7 +97948,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { rc = int32(SQLITE_NOMEM) } else { if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Ffile_format != 0 && int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Fenc) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12104, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12229, 0) rc = int32(SQLITE_ERROR) } } @@ -97436,16 +97994,17 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)<= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12200, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12325, libc.VaList(bp+136, zName)) goto detach_error } if i < int32(2) { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12221, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12346, libc.VaList(bp+136, zName)) goto detach_error } if _sqlite3BtreeTxnState(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != SQLITE_TXN_NONE || _sqlite3BtreeIsInBackup(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != 0 { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12247, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12372, libc.VaList(bp+136, zName)) goto detach_error } /* If any TEMP triggers reference the schema being detached, move those @@ -97527,6 +98086,7 @@ func _detachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*TDb)(unsafe.Pointer(pDb)).FpSchema = uintptr(0) _sqlite3CollapseDatabaseArray(tls, db) return + goto detach_error detach_error: ; Xsqlite3_result_error(tls, context, bp, -int32(1)) @@ -97583,6 +98143,7 @@ func _codeAttach(tls *libc.TLS, pParse uintptr, type1 int32, pFunc uintptr, pAut */ _sqlite3VdbeAddOp1(tls, v, int32(OP_Expire), libc.BoolInt32(type1 == int32(SQLITE_ATTACH))) } + goto attach_end attach_end: ; _sqlite3ExprDelete(tls, db, pFilename) @@ -97604,7 +98165,7 @@ func _sqlite3Detach(tls *libc.TLS, pParse uintptr, pDbname uintptr) { var _detach_func = TFuncDef{ FnArg: int8(1), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12269, + FzName: __ccgo_ts + 12394, } func init() { @@ -97626,7 +98187,7 @@ func _sqlite3Attach(tls *libc.TLS, pParse uintptr, p uintptr, pDbname uintptr, p var _attach_func = TFuncDef{ FnArg: int8(3), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12283, + FzName: __ccgo_ts + 12408, } func init() { @@ -97652,7 +98213,7 @@ func _fixExprCb(tls *libc.TLS, p uintptr, pExpr uintptr) (r int32) { if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer((*TDbFixer)(unsafe.Pointer(pFix)).FpParse)).Fdb)).Finit1.Fbusy != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } else { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12297, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12422, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) return int32(WRC_Abort) } } @@ -97686,7 +98247,7 @@ func _fixSelectCb(tls *libc.TLS, p uintptr, pSelect uintptr) (r int32) { if int32((*TDbFixer)(unsafe.Pointer(pFix)).FbTemp) == 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { if iDb != _sqlite3FindDbName(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12321, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12446, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) return int32(WRC_Abort) } _sqlite3DbFree(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) @@ -97903,7 +98464,7 @@ func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uint // ** user-supplied authorization function returned an illegal value. // */ func _sqliteAuthBadReturnCode(tls *libc.TLS, pParse uintptr) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12367, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12492, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) } @@ -97931,11 +98492,11 @@ func _sqlite3AuthReadCol(tls *libc.TLS, pParse uintptr, zTab uintptr, zCol uintp } rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, int32(SQLITE_READ), zTab, zCol, zDb, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12390, libc.VaList(bp+8, zTab, zCol)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12515, libc.VaList(bp+8, zTab, zCol)) if (*Tsqlite3)(unsafe.Pointer(db)).FnDb > int32(2) || iDb != 0 { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12396, libc.VaList(bp+8, zDb, z)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12521, libc.VaList(bp+8, zDb, z)) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12402, libc.VaList(bp+8, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12527, libc.VaList(bp+8, z)) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != int32(SQLITE_IGNORE) && rc != SQLITE_OK { @@ -98001,7 +98562,7 @@ func _sqlite3AuthRead(tls *libc.TLS, pParse uintptr, pExpr uintptr, pSchema uint _ = libc.Int32FromInt32(0) zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName } else { - zCol = __ccgo_ts + 7914 + zCol = __ccgo_ts + 8039 } } _ = libc.Int32FromInt32(0) @@ -98038,7 +98599,7 @@ func _sqlite3AuthCheck(tls *libc.TLS, pParse uintptr, code int32, zArg1 uintptr, ** parameters can be either NULL or a string. */ rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, code, zArg1, zArg2, zArg3, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12429, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12554, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != SQLITE_OK && rc != int32(SQLITE_IGNORE) { @@ -98473,21 +99034,21 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp if i >= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { /* No match against the official names. But always match "main" ** to schema 0 as a legacy fallback. */ - if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6594) == 0 { + if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6658) == 0 { i = 0 } else { return uintptr(0) } } p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, zName) - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6534, int32(7)) == 0 { + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6598, int32(7)) == 0 { if i == int32(1) { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6561+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6580+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6075+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6542) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6625+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6644+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6139+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6606) } } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6580+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6075) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6644+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6139) } } } @@ -98518,12 +99079,12 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp ; i++ } - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6534, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6580+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6075) + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6598, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6644+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6139) } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6561+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6542) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6625+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6606) } } } @@ -98561,7 +99122,7 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt ** can be an eponymous virtual table. */ if int32((*TParse)(unsafe.Pointer(pParse)).FprepFlags)&int32(SQLITE_PREPARE_NO_VTAB) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 { pMod = _sqlite3HashFind(tls, db+576, zName) - if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12444, int32(7)) == 0 { + if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12569, int32(7)) == 0 { pMod = _sqlite3PragmaVtabRegister(tls, db, zName) } if pMod != 0 && _sqlite3VtabEponymousTableInit(tls, pParse, pMod) != 0 { @@ -98579,15 +99140,15 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt } if p == uintptr(0) { if flags&uint32(LOCATE_VIEW) != 0 { - v1 = __ccgo_ts + 12452 + v1 = __ccgo_ts + 12577 } else { - v1 = __ccgo_ts + 12465 + v1 = __ccgo_ts + 12590 } zMsg = v1 if zDbase != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6798, libc.VaList(bp+8, zMsg, zDbase, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6862, libc.VaList(bp+8, zMsg, zDbase, zName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6808, libc.VaList(bp+8, zMsg, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6933, libc.VaList(bp+8, zMsg, zName)) } } else { _ = libc.Int32FromInt32(0) @@ -98627,12 +99188,12 @@ func _sqlite3LocateTableItem(tls *libc.TLS, pParse uintptr, flags Tu32, p uintpt // ** names into the new preferred names, as appropriate. // */ func _sqlite3PreferredTableName(tls *libc.TLS, zName uintptr) (r uintptr) { - if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6534, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6075+7) == 0 { - return __ccgo_ts + 6580 + if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6598, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6139+7) == 0 { + return __ccgo_ts + 6644 } - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6542+7) == 0 { - return __ccgo_ts + 6561 + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6606+7) == 0 { + return __ccgo_ts + 6625 } } return zName @@ -99178,7 +99739,7 @@ func _sqlite3OpenSchemaTable(tls *libc.TLS, p uintptr, iDb int32) { var v uintptr _ = v v = _sqlite3GetVdbe(tls, p) - _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6075) + _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6139) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_OpenWrite), 0, int32(SCHEMA_ROOT), iDb, int32(5)) if (*TParse)(unsafe.Pointer(p)).FnTab == 0 { (*TParse)(unsafe.Pointer(p)).FnTab = int32(1) @@ -99210,7 +99771,7 @@ func _sqlite3FindDbName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) { } /* "main" is always an acceptable alias for the primary database ** even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME. */ - if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6594, zName) { + if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6658, zName) { break } goto _1 @@ -99269,13 +99830,13 @@ func _sqlite3TwoPartName(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u _ = libc.Int32FromInt32(0) if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12479, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12604, 0) return -int32(1) } *(*uintptr)(unsafe.Pointer(pUnqual)) = pName2 iDb = _sqlite3FindDb(tls, db, pName1) if iDb < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12496, libc.VaList(bp+8, pName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12621, libc.VaList(bp+8, pName1)) return -int32(1) } } else { @@ -99320,12 +99881,12 @@ func _sqlite3CheckObjectName(tls *libc.TLS, pParse uintptr, zName uintptr, zType } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if Xsqlite3_stricmp(tls, zType, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit))) != 0 || Xsqlite3_stricmp(tls, zName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 1*8))) != 0 || Xsqlite3_stricmp(tls, zTblName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 2*8))) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1657, 0) /* corruptSchema() will supply the error */ + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1671, 0) /* corruptSchema() will supply the error */ return int32(SQLITE_ERROR) } } else { - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6534, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12516, libc.VaList(bp+8, zName)) + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6598, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12641, libc.VaList(bp+8, zName)) return int32(SQLITE_ERROR) } } @@ -99541,9 +100102,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Special case: Parsing the sqlite_schema or sqlite_temp_schema schema */ iDb = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6542 + v1 = __ccgo_ts + 6606 } else { - v1 = __ccgo_ts + 6075 + v1 = __ccgo_ts + 6139 } zName = _sqlite3DbStrDup(tls, db, v1) *(*uintptr)(unsafe.Pointer(bp)) = pName1 @@ -99556,7 +100117,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 && (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) && iDb != int32(1) { /* If creating a temp table, the name may not be qualified. Unless ** the database name is "temp" anyway. */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12558, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12683, 0) return } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 { @@ -99572,9 +100133,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui return } if isView != 0 { - v2 = __ccgo_ts + 10805 + v2 = __ccgo_ts + 10930 } else { - v2 = __ccgo_ts + 9067 + v2 = __ccgo_ts + 9192 } if _sqlite3CheckObjectName(tls, pParse, zName, v2, zName) != 0 { goto begin_table_error @@ -99586,9 +100147,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui _ = libc.Int32FromInt32(0) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp == int32(1) { - v3 = __ccgo_ts + 6542 + v3 = __ccgo_ts + 6606 } else { - v3 = __ccgo_ts + 6075 + v3 = __ccgo_ts + 6139 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto begin_table_error @@ -99612,11 +100173,11 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if pTable != 0 { if !(noErr != 0) { if int32((*TTable)(unsafe.Pointer(pTable)).FeTabType) == int32(TABTYP_VIEW) { - v4 = __ccgo_ts + 10805 + v4 = __ccgo_ts + 10930 } else { - v4 = __ccgo_ts + 9067 + v4 = __ccgo_ts + 9192 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12599, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12724, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -99625,7 +100186,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui goto begin_table_error } if _sqlite3FindIndex(tls, db, zName, zDb1) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12620, libc.VaList(bp+16, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12745, libc.VaList(bp+16, zName)) goto begin_table_error } } @@ -99717,6 +100278,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Normal (non-error) return. */ return /* If an error occurs, we jump here */ + goto begin_table_error begin_table_error: ; (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) @@ -99780,7 +100342,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { _, _, _ = db, pHash, pRet db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12655, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12780, 0) } else { _ = libc.Int32FromInt32(0) } @@ -99797,7 +100359,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return } - Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+12689, libc.VaList(bp+8, pParse)) + Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+12814, libc.VaList(bp+8, pParse)) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.FzName = pRet + 196 (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Fop = uint8(TK_RETURNING) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Ftr_tm = uint8(TRIGGER_AFTER) @@ -99845,7 +100407,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok return } if int32((*TTable)(unsafe.Pointer(p)).FnCol)+int32(1) > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12709, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12834, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) return } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -99855,12 +100417,12 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok ** by the parser, we can sometimes end up with a typename that ends ** with "generated always". Check for this case and omit the surplus ** text. */ - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12732, int32(6)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+12857, int32(6)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(6) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- } - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12739, int32(9)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+12864, int32(9)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(9) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- @@ -99909,7 +100471,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok break } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FhName) == int32(hName) && _sqlite3StrICmp(tls, z, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FzCnName) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12749, libc.VaList(bp+40, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12874, libc.VaList(bp+40, z)) _sqlite3DbFree(tls, db, z) return } @@ -100119,10 +100681,10 @@ func _sqlite3AddDefaultValue(tls *libc.TLS, pParse uintptr, pExpr uintptr, zStar isInit = libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) != int32(1)) pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(p)).FnCol)-int32(1))*16 if !(_sqlite3ExprIsConstantOrFunction(tls, pExpr, uint8(isInit)) != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12775, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12900, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12820, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12945, 0) } else { libc.Xmemset(tls, bp, 0, uint64(72)) (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_SPAN) @@ -100180,7 +100742,7 @@ func _makeColumnPartOfPrimaryKey(tls *libc.TLS, pParse uintptr, pCol uintptr) { p1 = pCol + 14 *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(COLFLAG_PRIMKEY)) if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12861, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12986, 0) } } @@ -100217,7 +100779,7 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError goto primary_key_exit } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasPrimaryKey) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12913, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13038, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto primary_key_exit } *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_HasPrimaryKey) @@ -100276,12 +100838,13 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError _sqlite3HasExplicitNulls(tls, pParse, pList) } else { if autoInc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12954, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13079, 0) } else { _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), pList, onError, uintptr(0), uintptr(0), sortOrder, 0, uint8(SQLITE_IDXTYPE_PRIMARYKEY)) pList = uintptr(0) } } + goto primary_key_exit primary_key_exit: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) @@ -100392,17 +100955,17 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui } pCol = (*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-int32(1))*16 if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) == int32(PARSE_MODE_DECLARE_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13010, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13135, 0) goto generated_done } if int32((*TColumn)(unsafe.Pointer(pCol)).FiDflt) > 0 { goto generated_error } if pType != 0 { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13053, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13178, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { /* no-op */ } else { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13061, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13186, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { eType = uint8(COLFLAG_STORED) } else { goto generated_error @@ -100433,9 +100996,11 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui _sqlite3ColumnSetExpr(tls, pParse, pTab, pCol, pExpr) pExpr = uintptr(0) goto generated_done + goto generated_error generated_error: ; - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13068, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13193, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + goto generated_done generated_done: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -100598,13 +101163,13 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { } n += _identLength(tls, (*TTable)(unsafe.Pointer(p)).FzName) if n < int32(50) { - zSep = __ccgo_ts + 1657 - zSep2 = __ccgo_ts + 13099 - zEnd = __ccgo_ts + 5115 + zSep = __ccgo_ts + 1671 + zSep2 = __ccgo_ts + 13224 + zEnd = __ccgo_ts + 5179 } else { - zSep = __ccgo_ts + 13101 - zSep2 = __ccgo_ts + 13105 - zEnd = __ccgo_ts + 13110 + zSep = __ccgo_ts + 13226 + zSep2 = __ccgo_ts + 13230 + zEnd = __ccgo_ts + 13235 } n += int32(35) + int32(6)*int32((*TTable)(unsafe.Pointer(p)).FnCol) zStmt = _sqlite3DbMallocRaw(tls, uintptr(0), uint64(n)) @@ -100612,7 +101177,7 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { _sqlite3OomFault(tls, db) return uintptr(0) } - Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13113, 0) + Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+13238, 0) *(*int32)(unsafe.Pointer(bp)) = _sqlite3Strlen30(tls, zStmt) _identPut(tls, zStmt, bp, (*TTable)(unsafe.Pointer(p)).FzName) v2 = *(*int32)(unsafe.Pointer(bp)) @@ -100642,17 +101207,17 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { i++ pCol += 16 } - Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3804, libc.VaList(bp+16, zEnd)) + Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+3868, libc.VaList(bp+16, zEnd)) return zStmt } var _azType1 = [6]uintptr{ - 0: __ccgo_ts + 1657, - 1: __ccgo_ts + 13127, - 2: __ccgo_ts + 13133, - 3: __ccgo_ts + 13138, - 4: __ccgo_ts + 13143, - 5: __ccgo_ts + 13133, + 0: __ccgo_ts + 1671, + 1: __ccgo_ts + 13252, + 2: __ccgo_ts + 13258, + 3: __ccgo_ts + 13263, + 4: __ccgo_ts + 13268, + 5: __ccgo_ts + 13258, } // C documentation @@ -101251,13 +101816,13 @@ func _sqlite3ShadowTableName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr, tabOpts Tu32, pSelect uintptr) { bp := tls.Alloc(112) defer tls.Free(112) - var addrInsLoop, addrTop, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v4, v6, v8 int32 + var addrInsLoop, addrTop, iCsr, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v10, v4, v6, v8 int32 var colFlags Tu32 - var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v5, v7, v9 uintptr - var v10 Ti16 + var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v13, v5, v7, v9 uintptr + var v12 Ti16 var _ /* dest at bp+0 */ TSelectDest - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v4, v5, v6, v7, v8, v9 /* The new table */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iCsr, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v12, v13, v4, v5, v6, v7, v8, v9 /* The new table */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ if pEnd == uintptr(0) && pSelect == uintptr(0) { return } @@ -101279,7 +101844,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if pSelect != 0 || !(int32((*TTable)(unsafe.Pointer(p)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) && (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1657, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1671, 0) return } (*TTable)(unsafe.Pointer(p)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum @@ -101306,9 +101871,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(ii)*16 if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf0>>4)) == COLTYPE_CUSTOM { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_HASTYPE) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13149, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1657))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13274, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1671))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13182, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13307, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } return } else { @@ -101331,11 +101896,11 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* Special processing for WITHOUT ROWID Tables */ if tabOpts&uint32(TF_WithoutRowid) != 0 { if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13209, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13334, 0) return } if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasPrimaryKey) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13259, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13384, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) return } *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) @@ -101382,7 +101947,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ii1++ } if nNG == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13291, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13416, 0) return } } @@ -101416,12 +101981,12 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if int32((*TTable)(unsafe.Pointer(p)).FeTabType) == TABTYP_NORM { /* A regular table */ - zType = __ccgo_ts + 9067 - zType2 = __ccgo_ts + 13335 + zType = __ccgo_ts + 9192 + zType2 = __ccgo_ts + 13460 } else { /* A view */ - zType = __ccgo_ts + 10805 - zType2 = __ccgo_ts + 13341 + zType = __ccgo_ts + 10930 + zType2 = __ccgo_ts + 13466 } /* If this is a CREATE TABLE xx AS SELECT ..., execute the SELECT ** statement to populate the new table. The root-page number for the @@ -101436,29 +102001,31 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** a schema-lock excludes all other database users, the write-lock would ** be redundant. */ - if pSelect != 0 { /* A table that describes the SELECT results */ + if pSelect != 0 { /* Write cursor on the new table */ if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) (*TParse)(unsafe.Pointer(pParse)).FnErr++ return } - v5 = pParse + 56 - *(*int32)(unsafe.Pointer(v5))++ + v5 = pParse + 52 v4 = *(*int32)(unsafe.Pointer(v5)) - regYield = v4 + *(*int32)(unsafe.Pointer(v5))++ + iCsr = v4 v7 = pParse + 56 *(*int32)(unsafe.Pointer(v7))++ v6 = *(*int32)(unsafe.Pointer(v7)) - regRec = v6 + regYield = v6 v9 = pParse + 56 *(*int32)(unsafe.Pointer(v9))++ v8 = *(*int32)(unsafe.Pointer(v9)) - regRowid = v8 - _ = libc.Int32FromInt32(0) + regRec = v8 + v11 = pParse + 56 + *(*int32)(unsafe.Pointer(v11))++ + v10 = *(*int32)(unsafe.Pointer(v11)) + regRowid = v10 _sqlite3MayAbort(tls, pParse) - _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), int32(1), (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) + _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), iCsr, (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_P2ISREG)) - (*TParse)(unsafe.Pointer(pParse)).FnTab = int32(2) addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { @@ -101469,9 +102036,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr return } _ = libc.Int32FromInt32(0) - v10 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol - (*TTable)(unsafe.Pointer(p)).FnNVCol = v10 - (*TTable)(unsafe.Pointer(p)).FnCol = v10 + v12 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol + (*TTable)(unsafe.Pointer(p)).FnNVCol = v12 + (*TTable)(unsafe.Pointer(p)).FnCol = v12 (*TTable)(unsafe.Pointer(p)).FaCol = (*TTable)(unsafe.Pointer(pSelTab)).FaCol (*TTable)(unsafe.Pointer(pSelTab)).FnCol = 0 (*TTable)(unsafe.Pointer(pSelTab)).FaCol = uintptr(0) @@ -101486,33 +102053,33 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr addrInsLoop = _sqlite3VdbeAddOp1(tls, v, int32(OP_Yield), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSDParm) _sqlite3VdbeAddOp3(tls, v, int32(OP_MakeRecord), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst, (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst, regRec) _sqlite3TableAffinity(tls, v, p, 0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), int32(1), regRowid) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), int32(1), regRec, regRowid) + _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iCsr, regRowid) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iCsr, regRec, regRowid) _sqlite3VdbeGoto(tls, v, addrInsLoop) _sqlite3VdbeJumpHere(tls, v, addrInsLoop) - _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), int32(1)) + _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), iCsr) } /* Compute the complete text of the CREATE statement */ if pSelect != 0 { zStmt = _createTableStmt(tls, db, p) } else { if tabOpts != 0 { - v11 = pParse + 288 + v13 = pParse + 288 } else { - v11 = pEnd + v13 = pEnd } - pEnd2 = v11 + pEnd2 = v13 n = int32(int64((*TToken)(unsafe.Pointer(pEnd2)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) if int32(*(*uint8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pEnd2)).Fz))) != int32(';') { n = int32(uint32(n) + (*TToken)(unsafe.Pointer(pEnd2)).Fn) } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13346, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13471, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) } /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13361, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13486, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) _sqlite3DbFree(tls, db, zStmt) _sqlite3ChangeCookie(tls, pParse, iDb) /* Check to see if we need to create an sqlite_sequence table for @@ -101522,17 +102089,16 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 _ = libc.Int32FromInt32(0) if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).FpSeqTab == uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13459, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13584, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) } } /* Reparse everything to update our internal data structures */ - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13501, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13626, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) /* Test for cycles in generated columns and illegal expressions ** in CHECK constraints and in DEFAULT clauses. */ if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasGenerated) != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13535, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(0x0001), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13660, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13556, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } /* Add the table to the in-memory representation of the database. */ @@ -101552,7 +102118,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** then record a pointer to this table in the main database structure ** so that INSERT can find the table easily. */ _ = libc.Int32FromInt32(0) - if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9589) == 0 { + if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9714) == 0 { _ = libc.Int32FromInt32(0) (*TSchema)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FpSchema)).FpSeqTab = p } @@ -101587,7 +102153,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*uintptr)(unsafe.Pointer(bp + 112)) = uintptr(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if int32((*TParse)(unsafe.Pointer(pParse)).FnVar) > 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13588, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13681, 0) goto create_view_fail } _sqlite3StartTable(tls, pParse, pName1, pName2, isTemp, int32(1), 0, noErr) @@ -101604,7 +102170,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(TF_NoVisibleRowid) /* Never allow rowid in view */ _sqlite3TwoPartName(tls, pParse, pName1, pName2, bp+112) iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(p)).FpSchema) - _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+10805, *(*uintptr)(unsafe.Pointer(bp + 112))) + _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+10930, *(*uintptr)(unsafe.Pointer(bp + 112))) if _sqlite3FixSelect(tls, bp+16, pSelect) != 0 { goto create_view_fail } @@ -101648,6 +102214,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui (*(*TToken)(unsafe.Pointer(bp))).Fn = uint32(1) /* Use sqlite3EndTable() to add the view to the schema table */ _sqlite3EndTable(tls, pParse, uintptr(0), bp, uint32(0), uintptr(0)) + goto create_view_fail create_view_fail: ; _sqlite3SelectDelete(tls, db, pSelect) @@ -101703,7 +102270,7 @@ func _viewGetColumnNames(tls *libc.TLS, pParse uintptr, pTable uintptr) (r int32 ** SELECT * FROM temp.ex1; */ if int32((*TTable)(unsafe.Pointer(pTable)).FnCol) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13624, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13717, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) return int32(1) } _ = libc.Int32FromInt32(0) @@ -101895,7 +102462,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { v = _sqlite3GetVdbe(tls, pParse) r1 = _sqlite3GetTempReg(tls, pParse) if iTable < int32(2) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13654, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13747, 0) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Destroy), iTable, r1, iDb) _sqlite3MayAbort(tls, pParse) @@ -101908,7 +102475,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { ** is in register NNN. See grammar rules associated with the TK_REGISTER ** token for additional information. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13669, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13762, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) _sqlite3ReleaseTempReg(tls, pParse, r1) } @@ -101993,9 +102560,9 @@ func _sqlite3ClearStatTables(tls *libc.TLS, pParse uintptr, iDb int32, zType uin if !(i <= int32(4)) { break } - Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13736, libc.VaList(bp+32, i)) + Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13829, libc.VaList(bp+32, i)) if _sqlite3FindTable(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, bp, zDbName) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11694, libc.VaList(bp+32, zDbName, bp, zType, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11819, libc.VaList(bp+32, zDbName, bp, zType, zName)) } goto _1 _1: @@ -102038,7 +102605,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** move as a result of the drop (can happen in auto-vacuum mode). */ if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13750, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13843, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* Drop all entries in the schema table that refer to the ** table. The program name loops through the schema table and deletes @@ -102047,7 +102614,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** created in the temp database that refers to a table in another ** database. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13795, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13888, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !(isView != 0) && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { _destroyTable(tls, pParse, pTab) } @@ -102082,11 +102649,11 @@ func _sqlite3ReadOnlyShadowTables(tls *libc.TLS, db uintptr) (r int32) { // ** Return true if it is not allowed to drop the given table // */ func _tableMayNotBeDropped(tls *libc.TLS, db uintptr, pTab uintptr) (r int32) { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6534, int32(7)) == 0 { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3427, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6598, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3491, int32(4)) == 0 { return 0 } - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7275, int32(10)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7400, int32(10)) == 0 { return 0 } return int32(1) @@ -102145,9 +102712,9 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6542 + v1 = __ccgo_ts + 6606 } else { - v1 = __ccgo_ts + 6075 + v1 = __ccgo_ts + 6139 } zTab = v1 zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName @@ -102180,18 +102747,18 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if _tableMayNotBeDropped(tls, db, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13862, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13955, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Ensure DROP TABLE is not used on a view, and DROP VIEW is not used ** on a table. */ if isView != 0 && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13890, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13983, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } if !(isView != 0) && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13924, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14017, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Generate code to remove the table from the schema table @@ -102201,11 +102768,12 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) if !(isView != 0) { - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11806, (*TTable)(unsafe.Pointer(pTab)).FzName) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11931, (*TTable)(unsafe.Pointer(pTab)).FzName) _sqlite3FkDropTable(tls, pParse, pName, pTab) } _sqlite3CodeDropTable(tls, pParse, pTab, iDb, isView) } + goto exit_drop_table exit_drop_table: ; _sqlite3SrcListDelete(tls, db, pName) @@ -102249,13 +102817,13 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p goto fk_end } if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13956, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14049, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) goto fk_end } nCol = int32(1) } else { if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14019, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14112, 0) goto fk_end } else { nCol = (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr @@ -102319,7 +102887,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p j++ } if j >= int32((*TTable)(unsafe.Pointer(p)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14113, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14206, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) goto fk_end } if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { @@ -102374,6 +102942,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p FpDfltList uintptr })(unsafe.Pointer(p + 64))).FpFKey = pFKey pFKey = uintptr(0) + goto fk_end fk_end: ; _sqlite3DbFree(tls, db, pFKey) @@ -102582,11 +103151,11 @@ func _sqlite3HasExplicitNulls(tls *libc.TLS, pParse uintptr, pList uintptr) (r i if int32(uint32(*(*uint16)(unsafe.Pointer(pList + 8 + uintptr(i)*32 + 16 + 4))&0x20>>5)) != 0 { sf = (*(*TExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32))).Ffg.FsortFlags if int32(sf) == 0 || int32(sf) == int32(3) { - v2 = __ccgo_ts + 14159 + v2 = __ccgo_ts + 14252 } else { - v2 = __ccgo_ts + 14165 + v2 = __ccgo_ts + 14258 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14170, libc.VaList(bp+8, v2)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14263, libc.VaList(bp+8, v2)) return int32(1) } goto _1 @@ -102668,7 +103237,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = int32(1) } } - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14198, *(*uintptr)(unsafe.Pointer(bp + 96))) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14291, *(*uintptr)(unsafe.Pointer(bp + 96))) if _sqlite3FixSrcList(tls, bp, pTblName) != 0 { /* Because the parser constructs pTblName from a single identifier, ** sqlite3FixSrcList can never fail. */ @@ -102680,7 +103249,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } if iDb == int32(1) && (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema != (*TTable)(unsafe.Pointer(pTab)).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14204, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14297, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { @@ -102697,16 +103266,16 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 _ = libc.Int32FromInt32(0) - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6534, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14254, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6598, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14347, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14282, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14375, 0) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14307, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14400, 0) goto exit_create_index } /* @@ -102728,19 +103297,19 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } _ = libc.Int32FromInt32(0) - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14198, (*TTable)(unsafe.Pointer(pTab)).FzName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14291, (*TTable)(unsafe.Pointer(pTab)).FzName) { goto exit_create_index } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if !((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0) { if _sqlite3FindTable(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14341, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14434, libc.VaList(bp+136, zName)) goto exit_create_index } } if _sqlite3FindIndex(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { if !(ifNotExist != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14375, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14468, libc.VaList(bp+136, zName)) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -102762,7 +103331,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pLoop = (*TIndex)(unsafe.Pointer(pLoop)).FpNext n++ } - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14399, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14492, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) if zName == uintptr(0) { goto exit_create_index } @@ -102780,9 +103349,9 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { zDb = (*TDb)(unsafe.Pointer(pDb)).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6542 + v2 = __ccgo_ts + 6606 } else { - v2 = __ccgo_ts + 6075 + v2 = __ccgo_ts + 6139 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v2, uintptr(0), zDb) != 0 { goto exit_create_index @@ -102811,7 +103380,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u _ = libc.Int32FromInt32(0) _sqlite3ExprListSetSortOrder(tls, pList, sortOrder, -int32(1)) } else { - _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14198) + _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14291) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { goto exit_create_index } @@ -102901,7 +103470,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pCExpr = _sqlite3ExprSkipCollate(tls, (*TExprList_item)(unsafe.Pointer(pListItem)).FpExpr) if int32((*TExpr)(unsafe.Pointer(pCExpr)).Fop) != int32(TK_COLUMN) { if pTab == (*TParse)(unsafe.Pointer(pParse)).FpNewTable { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14422, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14515, 0) goto exit_create_index } if (*TIndex)(unsafe.Pointer(pIndex)).FaColExpr == uintptr(0) { @@ -103058,7 +103627,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u ** explicitly specified behavior for the index. */ if !(int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) || int32((*TIndex)(unsafe.Pointer(pIndex)).FonError) == int32(OE_Default)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14483, libc.VaList(bp+136, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14576, libc.VaList(bp+136, 0)) } if int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) { (*TIndex)(unsafe.Pointer(pIdx)).FonError = (*TIndex)(unsafe.Pointer(pIndex)).FonError @@ -103091,8 +103660,8 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != uintptr(0) { (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14525, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125123)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14618, 0) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125741)) goto exit_create_index } } @@ -103133,11 +103702,11 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* A named index with an explicit CREATE INDEX statement */ if onError == OE_None { - v13 = __ccgo_ts + 1657 + v13 = __ccgo_ts + 1671 } else { - v13 = __ccgo_ts + 14542 + v13 = __ccgo_ts + 14635 } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14550, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14643, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) } else { /* An automatic index created by a PRIMARY KEY or UNIQUE constraint */ /* zStmt = sqlite3MPrintf(""); */ @@ -103145,7 +103714,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* Add an entry in sqlite_schema for this index */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14570, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14663, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) _sqlite3DbFree(tls, db, zStmt) /* Fill the index with data and reparse the schema. Code an OP_Expire ** to invalidate all pre-compiled statements. @@ -103153,7 +103722,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != 0 { _sqlite3RefillIndex(tls, pParse, pIndex, iMem) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14629, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14722, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Expire), 0, int32(1)) } _sqlite3VdbeJumpHere(tls, v, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum)) @@ -103172,6 +103741,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } } /* Clean up before exiting */ + goto exit_create_index exit_create_index: ; if pIndex != 0 { @@ -103322,7 +103892,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pIndex = _sqlite3FindIndex(tls, db, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzName, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) if pIndex == uintptr(0) { if !(ifExists != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14656, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14749, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) _sqlite3ForceNotReadOnly(tls, pParse) @@ -103331,7 +103901,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in goto exit_drop_index } if int32(uint32(*(*uint16)(unsafe.Pointer(pIndex + 100))&0x3>>0)) != SQLITE_IDXTYPE_APPDEF { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14674, libc.VaList(bp+8, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14767, libc.VaList(bp+8, 0)) goto exit_drop_index } iDb = _sqlite3SchemaToIndex(tls, db, (*TIndex)(unsafe.Pointer(pIndex)).FpSchema) @@ -103339,9 +103909,9 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pTab = (*TIndex)(unsafe.Pointer(pIndex)).FpTable zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6542 + v1 = __ccgo_ts + 6606 } else { - v1 = __ccgo_ts + 6075 + v1 = __ccgo_ts + 6139 } zTab = v1 if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_DELETE), zTab, uintptr(0), zDb) != 0 { @@ -103357,12 +103927,13 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in v = _sqlite3GetVdbe(tls, pParse) if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14747, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11802, (*TIndex)(unsafe.Pointer(pIndex)).FzName) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14840, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+11927, (*TIndex)(unsafe.Pointer(pIndex)).FzName) _sqlite3ChangeCookie(tls, pParse, iDb) _destroyRootPage(tls, pParse, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum), iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropIndex), iDb, 0, 0, (*TIndex)(unsafe.Pointer(pIndex)).FzName, 0) } + goto exit_drop_index exit_drop_index: ; _sqlite3SrcListDelete(tls, db, pName) @@ -103554,7 +104125,7 @@ func _sqlite3SrcListEnlarge(tls *libc.TLS, pParse uintptr, pSrc uintptr, nExtra nAlloc = int64(2)*int64((*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) + int64(nExtra) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc+nExtra >= int32(SQLITE_MAX_SRCLIST) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14807, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14900, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) return uintptr(0) } if nAlloc > int64(SQLITE_MAX_SRCLIST) { @@ -103791,11 +104362,11 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa db = (*TParse)(unsafe.Pointer(pParse)).Fdb if !(p != 0) && pOnUsing != uintptr(0) && ((*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 || (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpUsing != 0) { if (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 { - v1 = __ccgo_ts + 14843 + v1 = __ccgo_ts + 14936 } else { - v1 = __ccgo_ts + 14846 + v1 = __ccgo_ts + 14939 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14852, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14945, libc.VaList(bp+8, v1)) goto append_from_error } p = _sqlite3SrcListAppend(tls, pParse, p, pTable, pDatabase) @@ -103838,6 +104409,7 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa } } return p + goto append_from_error append_from_error: ; _ = libc.Int32FromInt32(0) @@ -104011,7 +104583,7 @@ func _sqlite3BeginTransaction(tls *libc.TLS, pParse uintptr, type1 int32) { _ = libc.Int32FromInt32(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb _ = libc.Int32FromInt32(0) - if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14888, uintptr(0), uintptr(0)) != 0 { + if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+14981, uintptr(0), uintptr(0)) != 0 { return } v = _sqlite3GetVdbe(tls, pParse) @@ -104061,9 +104633,9 @@ func _sqlite3EndTransaction(tls *libc.TLS, pParse uintptr, eType int32) { _ = libc.Int32FromInt32(0) isRollback = libc.BoolInt32(eType == int32(TK_ROLLBACK)) if isRollback != 0 { - v1 = __ccgo_ts + 14894 + v1 = __ccgo_ts + 14987 } else { - v1 = __ccgo_ts + 14903 + v1 = __ccgo_ts + 14996 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), v1, uintptr(0), uintptr(0)) != 0 { return @@ -104096,9 +104668,9 @@ func _sqlite3Savepoint(tls *libc.TLS, pParse uintptr, op int32, pName uintptr) { } var _az = [3]uintptr{ - 0: __ccgo_ts + 14888, - 1: __ccgo_ts + 14910, - 2: __ccgo_ts + 14894, + 0: __ccgo_ts + 14981, + 1: __ccgo_ts + 15003, + 2: __ccgo_ts + 14987, } // C documentation @@ -104118,7 +104690,7 @@ func _sqlite3OpenTempDatabase(tls *libc.TLS, pParse uintptr) (r int32) { if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt == uintptr(0) && !((*TParse)(unsafe.Pointer(pParse)).Fexplain != 0) { rc = _sqlite3BtreeOpen(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), db, bp, 0, _flags) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14918, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15011, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = rc return int32(1) } @@ -104309,7 +104881,7 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable _sqlite3StrAccumInit(tls, bp, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), 0, *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136))) if (*TIndex)(unsafe.Pointer(pIdx)).FaColExpr != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+14988, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+15081, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) } else { j = 0 for { @@ -104319,10 +104891,10 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx _ = libc.Int32FromInt32(0) zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)))*16))).FzCnName if j != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+14999, int32(2)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+15092, int32(2)) } Xsqlite3_str_appendall(tls, bp, (*TTable)(unsafe.Pointer(pTab)).FzName) - Xsqlite3_str_append(tls, bp, __ccgo_ts+1670, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+1684, int32(1)) Xsqlite3_str_appendall(tls, bp, zCol) goto _1 _1: @@ -104351,10 +104923,10 @@ func _sqlite3RowidConstraint(tls *libc.TLS, pParse uintptr, onError int32, pTab var zMsg uintptr _, _ = rc, zMsg if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12390, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12515, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(6)< libc.BoolInt32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15118, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15211, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } return 0 } @@ -105483,11 +106055,11 @@ func _sqlite3IsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr, pTrigger ui bp := tls.Alloc(16) defer tls.Free(16) if _tabIsReadOnly(tls, pParse, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15151, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15244, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && (pTrigger == uintptr(0) || (*TTrigger)(unsafe.Pointer(pTrigger)).FbReturning != 0 && (*TTrigger)(unsafe.Pointer(pTrigger)).FpNext == uintptr(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15180, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15273, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -105912,8 +106484,9 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** invoke the callback function. */ if memCnt != 0 { - _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15218) + _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15311) } + goto delete_from_cleanup delete_from_cleanup: ; _sqlite3AuthContextPop(tls, bp+8) @@ -106060,7 +106633,7 @@ func _sqlite3GenerateRowDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, pTri v3 = 0 } _sqlite3VdbeAddOp2(tls, v, int32(OP_Delete), iDataCur, v3) - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11591) { + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11716) { _sqlite3VdbeAppendP4(tls, v, pTab, -int32(5)) } if int32(eMode) != ONEPASS_OFF { @@ -106378,11 +106951,11 @@ func _typeofFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } var _azType2 = [5]uintptr{ - 0: __ccgo_ts + 6315, - 1: __ccgo_ts + 6310, - 2: __ccgo_ts + 8206, - 3: __ccgo_ts + 8201, - 4: __ccgo_ts + 1643, + 0: __ccgo_ts + 6379, + 1: __ccgo_ts + 6374, + 2: __ccgo_ts + 8331, + 3: __ccgo_ts + 8326, + 4: __ccgo_ts + 1657, } // C documentation @@ -106499,7 +107072,7 @@ func _absFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { /* IMP: R-31676-45509 If X is the integer -9223372036854775808 ** then abs(X) throws an integer overflow error since there is no ** equivalent positive 64-bit two complement value. */ - Xsqlite3_result_error(tls, context, __ccgo_ts+15231, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15324, -int32(1)) return } iVal = -iVal @@ -106594,11 +107167,13 @@ func _instrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } Xsqlite3_result_int(tls, context, N) + goto endInstr endInstr: ; Xsqlite3_value_free(tls, pC1) Xsqlite3_value_free(tls, pC2) return + goto endInstrOOM endInstrOOM: ; Xsqlite3_result_error_nomem(tls, context) @@ -106816,7 +107391,7 @@ func _roundFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } *(*float64)(unsafe.Pointer(bp)) = float64(int64(*(*float64)(unsafe.Pointer(bp)) + v1)) } else { - zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15248, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) + zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15341, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) if zBuf == uintptr(0) { Xsqlite3_result_error_nomem(tls, context) return @@ -107400,7 +107975,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { */ nPat = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) if nPat > *(*int32)(unsafe.Pointer(db + 136 + 8*4)) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15254, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15347, -int32(1)) return } if argc == int32(3) { @@ -107412,7 +107987,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { return } if _sqlite3Utf8CharLen(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), -int32(1)) != int32(1) { - Xsqlite3_result_error(tls, context, __ccgo_ts+15287, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15380, -int32(1)) return } escape = _sqlite3Utf8Read(tls, bp+8) @@ -107494,7 +108069,7 @@ func _errlogFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { defer tls.Free(16) _ = argc _ = context - Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) + Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) } // C documentation @@ -107584,17 +108159,17 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_FLOAT): r1 = Xsqlite3_value_double(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15332, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15425, libc.VaList(bp+16, r1)) zVal = Xsqlite3_str_value(tls, pStr) if zVal != 0 { _sqlite3AtoF(tls, zVal, bp, int32((*TStrAccum)(unsafe.Pointer(pStr)).FnChar), uint8(SQLITE_UTF8)) if r1 != *(*float64)(unsafe.Pointer(bp)) { Xsqlite3_str_reset(tls, pStr) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15340, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15433, libc.VaList(bp+16, r1)) } } case int32(SQLITE_INTEGER): - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1413, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1432, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) case int32(SQLITE_BLOB): zBlob = Xsqlite3_value_blob(tls, pValue) nBlob = int64(Xsqlite3_value_bytes(tls, pValue)) @@ -107622,10 +108197,10 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { } case int32(SQLITE_TEXT): zArg = Xsqlite3_value_text(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15348, libc.VaList(bp+16, zArg)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15441, libc.VaList(bp+16, zArg)) default: _ = libc.Int32FromInt32(0) - Xsqlite3_str_append(tls, pStr, __ccgo_ts+1658, int32(4)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+1672, int32(4)) break } } @@ -107864,7 +108439,7 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { var v3 uint32 var _ /* zHex at bp+0 */ uintptr _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, ch, d, nHex, nPass, p, pBlob, zPass, v1, v2, v3, v4, v5, v6 - zPass = __ccgo_ts + 1657 + zPass = __ccgo_ts + 1671 nPass = 0 *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) nHex = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) @@ -107920,10 +108495,12 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { *(*Tu8)(unsafe.Pointer(v6)) = uint8(int32(_sqlite3HexToInt(tls, int32(c)))< 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fapprox != 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fovrfl != 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+15231, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15324, -int32(1)) } else { if !(_sqlite3IsOverflow(tls, (*TSumCtx)(unsafe.Pointer(p)).FrErr) != 0) { Xsqlite3_result_double(tls, context, (*TSumCtx)(unsafe.Pointer(p)).FrSum+(*TSumCtx)(unsafe.Pointer(p)).FrErr) @@ -108949,7 +109526,7 @@ func _groupConcatValue(tls *libc.TLS, context uintptr) { func _sqlite3RegisterPerConnectionBuiltinFunctions(tls *libc.TLS, db uintptr) { var rc int32 _ = rc - rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15356, int32(2)) + rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15449, int32(2)) _ = libc.Int32FromInt32(0) if rc == int32(SQLITE_NOMEM) { _sqlite3OomFault(tls, db) @@ -108979,8 +109556,8 @@ func _sqlite3RegisterLikeFunctions(tls *libc.TLS, db uintptr, caseSensitive int3 if !(nArg <= int32(3)) { break } - _sqlite3CreateFunc(tls, db, __ccgo_ts+15362, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15362, nArg, uint8(SQLITE_UTF8), uint8(0)) + _sqlite3CreateFunc(tls, db, __ccgo_ts+15455, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15455, nArg, uint8(SQLITE_UTF8), uint8(0)) *(*Tu32)(unsafe.Pointer(pDef + 4)) |= uint32(flags) *(*Tu32)(unsafe.Pointer(pDef + 4)) &= uint32(^libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)) goto _1 @@ -109300,562 +109877,562 @@ var _aBuiltinFunc = [110]TFuncDef{ FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_implies_nonnull_row))), - FzName: __ccgo_ts + 15367, + FzName: __ccgo_ts + 15460, }, 1: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_compare))), - FzName: __ccgo_ts + 15387, + FzName: __ccgo_ts + 15480, }, 2: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_implies_expr))), - FzName: __ccgo_ts + 15400, + FzName: __ccgo_ts + 15493, }, 3: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_affinity))), - FzName: __ccgo_ts + 15418, + FzName: __ccgo_ts + 15511, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15427, + FzName: __ccgo_ts + 15520, }, 5: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15435, + FzName: __ccgo_ts + 15528, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15435, + FzName: __ccgo_ts + 15528, }, 7: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15450, + FzName: __ccgo_ts + 15543, }, 8: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15476, + FzName: __ccgo_ts + 15569, }, 9: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15501, + FzName: __ccgo_ts + 15594, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15510, + FzName: __ccgo_ts + 15603, }, 11: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 15521, + FzName: __ccgo_ts + 15614, }, 12: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_sqlite_offset))), - FzName: __ccgo_ts + 15528, + FzName: __ccgo_ts + 15621, }, 13: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15542, + FzName: __ccgo_ts + 15635, }, 14: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15542, + FzName: __ccgo_ts + 15635, }, 15: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15548, + FzName: __ccgo_ts + 15641, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15548, + FzName: __ccgo_ts + 15641, }, 17: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 18: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 15554, + FzName: __ccgo_ts + 15647, }, 19: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15559, + FzName: __ccgo_ts + 15652, }, 20: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15559, + FzName: __ccgo_ts + 15652, }, 21: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15559, + FzName: __ccgo_ts + 15652, }, 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15563, + FzName: __ccgo_ts + 15656, }, 23: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15563, + FzName: __ccgo_ts + 15656, }, 24: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15563, + FzName: __ccgo_ts + 15656, }, 25: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15567, + FzName: __ccgo_ts + 15660, }, 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 15574, + FzName: __ccgo_ts + 15667, }, 27: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_LENGTH)), - FzName: __ccgo_ts + 15582, + FzName: __ccgo_ts + 15675, }, 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_BYTELEN)), - FzName: __ccgo_ts + 15589, + FzName: __ccgo_ts + 15682, }, 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15602, + FzName: __ccgo_ts + 15695, }, 30: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15608, + FzName: __ccgo_ts + 15701, }, 31: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15615, + FzName: __ccgo_ts + 15708, }, 32: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15622, + FzName: __ccgo_ts + 15715, }, 33: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15630, + FzName: __ccgo_ts + 15723, }, 34: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15635, + FzName: __ccgo_ts + 15728, }, 35: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15639, + FzName: __ccgo_ts + 15732, }, 36: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15639, + FzName: __ccgo_ts + 15732, }, 37: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15645, + FzName: __ccgo_ts + 15738, }, 38: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15651, + FzName: __ccgo_ts + 15744, }, 39: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15657, + FzName: __ccgo_ts + 15750, }, 40: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15661, + FzName: __ccgo_ts + 15754, }, 41: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15661, + FzName: __ccgo_ts + 15754, }, 42: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15667, + FzName: __ccgo_ts + 15760, }, 43: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15667, + FzName: __ccgo_ts + 15760, }, 44: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15674, + FzName: __ccgo_ts + 15767, }, 45: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15674, + FzName: __ccgo_ts + 15767, }, 46: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15674, + FzName: __ccgo_ts + 15767, }, 47: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15684, + FzName: __ccgo_ts + 15777, }, 48: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15691, + FzName: __ccgo_ts + 15784, }, 49: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15698, + FzName: __ccgo_ts + 15791, }, 50: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15709, + FzName: __ccgo_ts + 15802, }, 51: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15716, + FzName: __ccgo_ts + 15809, }, 52: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15731, + FzName: __ccgo_ts + 15824, }, 53: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15748, + FzName: __ccgo_ts + 15841, }, 54: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15759, + FzName: __ccgo_ts + 15852, }, 55: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15765, + FzName: __ccgo_ts + 15858, }, 56: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15783, + FzName: __ccgo_ts + 15876, }, 57: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15791, + FzName: __ccgo_ts + 15884, }, 58: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15805, + FzName: __ccgo_ts + 15898, }, 59: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15813, + FzName: __ccgo_ts + 15906, }, 60: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15822, + FzName: __ccgo_ts + 15915, }, 61: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15822, + FzName: __ccgo_ts + 15915, }, 62: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15829, + FzName: __ccgo_ts + 15922, }, 63: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15829, + FzName: __ccgo_ts + 15922, }, 64: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15839, + FzName: __ccgo_ts + 15932, }, 65: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15843, + FzName: __ccgo_ts + 15936, }, 66: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15849, + FzName: __ccgo_ts + 15942, }, 67: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_COUNT) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15853, + FzName: __ccgo_ts + 15946, }, 68: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 15853, + FzName: __ccgo_ts + 15946, }, 69: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15859, + FzName: __ccgo_ts + 15952, }, 70: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15859, + FzName: __ccgo_ts + 15952, }, 71: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 15872, + FzName: __ccgo_ts + 15965, }, 72: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE) | libc.Int32FromInt32(SQLITE_FUNC_CASE)), FpUserData: uintptr(unsafe.Pointer(&_globInfo)), - FzName: __ccgo_ts + 15883, + FzName: __ccgo_ts + 15976, }, 73: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15362, + FzName: __ccgo_ts + 15455, }, 74: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 15362, + FzName: __ccgo_ts + 15455, }, 75: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6739, + FzName: __ccgo_ts + 6803, }, 76: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 6739, + FzName: __ccgo_ts + 6803, }, 77: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15888, + FzName: __ccgo_ts + 15981, }, 78: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15893, + FzName: __ccgo_ts + 1244, }, 79: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15901, + FzName: __ccgo_ts + 1252, }, 80: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15907, + FzName: __ccgo_ts + 15986, }, 81: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15913, + FzName: __ccgo_ts + 15992, }, 82: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15916, + FzName: __ccgo_ts + 15995, }, 83: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 15920, + FzName: __ccgo_ts + 15999, }, 84: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 15926, + FzName: __ccgo_ts + 16005, }, 85: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15916, + FzName: __ccgo_ts + 15995, }, 86: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15931, + FzName: __ccgo_ts + 16010, }, 87: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15935, + FzName: __ccgo_ts + 16014, }, 88: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15939, + FzName: __ccgo_ts + 16018, }, 89: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15945, + FzName: __ccgo_ts + 16024, }, 90: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15949, + FzName: __ccgo_ts + 16028, }, 91: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15954, + FzName: __ccgo_ts + 16033, }, 92: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15959, + FzName: __ccgo_ts + 16038, }, 93: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15964, + FzName: __ccgo_ts + 16043, }, 94: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15970, + FzName: __ccgo_ts + 16049, }, 95: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15974, + FzName: __ccgo_ts + 16053, }, 96: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15978, + FzName: __ccgo_ts + 16057, }, 97: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15982, + FzName: __ccgo_ts + 16061, }, 98: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15987, + FzName: __ccgo_ts + 16066, }, 99: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15992, + FzName: __ccgo_ts + 16071, }, 100: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15997, + FzName: __ccgo_ts + 16076, }, 101: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16003, + FzName: __ccgo_ts + 16082, }, 102: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16009, + FzName: __ccgo_ts + 16088, }, 103: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16015, + FzName: __ccgo_ts + 16094, }, 104: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16020, + FzName: __ccgo_ts + 16099, }, 105: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16028, + FzName: __ccgo_ts + 16107, }, 106: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16036, + FzName: __ccgo_ts + 16115, }, 107: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16039, + FzName: __ccgo_ts + 16118, }, 108: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 6739, + FzName: __ccgo_ts + 6803, }, 109: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_iif))), - FzName: __ccgo_ts + 16044, + FzName: __ccgo_ts + 16123, }, } @@ -110336,7 +110913,7 @@ func _sqlite3FkLocateIndex(tls *libc.TLS, pParse uintptr, pParent uintptr, pFKey } if !(pIdx != 0) { if !((*TParse)(unsafe.Pointer(pParse)).FdisableTriggers != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16048, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16127, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) } _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiCol) return int32(1) @@ -111468,11 +112045,11 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr break } *(*TToken)(unsafe.Pointer(bp + 16)) = TToken{ - Fz: __ccgo_ts + 6605, + Fz: __ccgo_ts + 6669, Fn: uint32(3), } /* Literal "old" token */ *(*TToken)(unsafe.Pointer(bp + 32)) = TToken{ - Fz: __ccgo_ts + 6601, + Fz: __ccgo_ts + 6665, Fn: uint32(3), } /* tFromCol = OLD.tToCol */ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -111539,7 +112116,7 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr nFrom = _sqlite3Strlen30(tls, zFrom) if action == int32(OE_Restrict) { iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5234) + pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+5298) if pRaise != 0 { (*TExpr)(unsafe.Pointer(pRaise)).FaffExpr = uint8(OE_Abort) } @@ -112147,7 +112724,7 @@ func _sqlite3ComputeGeneratedColumns(tls *libc.TLS, pParse uintptr, iRegStore in } } if pRedo != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8171, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8296, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) } (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 } @@ -112414,6 +112991,226 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { } } +// C documentation +// +// /* +// ** If argument pVal is a Select object returned by an sqlite3MultiValues() +// ** that was able to use the co-routine optimization, finish coding the +// ** co-routine. +// */ +func _sqlite3MultiValuesEnd(tls *libc.TLS, pParse uintptr, pVal uintptr) { + var pItem uintptr + _ = pItem + if pVal != 0 && (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pVal)).FpSrc)).FnSrc > 0 { + pItem = (*TSelect)(unsafe.Pointer(pVal)).FpSrc + 8 + _sqlite3VdbeEndCoroutine(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn) + _sqlite3VdbeJumpHere(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FaddrFillSub-int32(1)) + } +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are constant. +// */ +func _exprListIsConstant(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + if 0 == _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are both constant and have no affinity. +// */ +func _exprListIsNoAffinity(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + var pExpr uintptr + _, _ = ii, pExpr + if _exprListIsConstant(tls, pParse, pRow) == 0 { + return 0 + } + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + pExpr = (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if 0 != int32(_sqlite3ExprAffinity(tls, pExpr)) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** This function is called by the parser for the second and subsequent +// ** rows of a multi-row VALUES clause. Argument pLeft is the part of +// ** the VALUES clause already parsed, argument pRow is the vector of values +// ** for the new row. The Select object returned represents the complete +// ** VALUES clause, including the new row. +// ** +// ** There are two ways in which this may be achieved - by incremental +// ** coding of a co-routine (the "co-routine" method) or by returning a +// ** Select object equivalent to the following (the "UNION ALL" method): +// ** +// ** "pLeft UNION ALL SELECT pRow" +// ** +// ** If the VALUES clause contains a lot of rows, this compound Select +// ** object may consume a lot of memory. +// ** +// ** When the co-routine method is used, each row that will be returned +// ** by the VALUES clause is coded into part of a co-routine as it is +// ** passed to this function. The returned Select object is equivalent to: +// ** +// ** SELECT * FROM ( +// ** Select object to read co-routine +// ** ) +// ** +// ** The co-routine method is used in most cases. Exceptions are: +// ** +// ** a) If the current statement has a WITH clause. This is to avoid +// ** statements like: +// ** +// ** WITH cte AS ( VALUES('x'), ('y') ... ) +// ** SELECT * FROM cte AS a, cte AS b; +// ** +// ** This will not work, as the co-routine uses a hard-coded register +// ** for its OP_Yield instructions, and so it is not possible for two +// ** cursors to iterate through it concurrently. +// ** +// ** b) The schema is currently being parsed (i.e. the VALUES clause is part +// ** of a schema item like a VIEW or TRIGGER). In this case there is no VM +// ** being generated when parsing is taking place, and so generating +// ** a co-routine is not possible. +// ** +// ** c) There are non-constant expressions in the VALUES clause (e.g. +// ** the VALUES clause is part of a correlated sub-query). +// ** +// ** d) One or more of the values in the first row of the VALUES clause +// ** has an affinity (i.e. is a CAST expression). This causes problems +// ** because the complex rules SQLite uses (see function +// ** sqlite3SubqueryColumnTypes() in select.c) to determine the effective +// ** affinity of such a column for all rows require access to all values in +// ** the column simultaneously. +// */ +func _sqlite3MultiValues(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRow uintptr) (r uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var f, v1 int32 + var p, pRet, pSelect, v, v2 uintptr + var _ /* dest at bp+0 */ TSelectDest + _, _, _, _, _, _, _ = f, p, pRet, pSelect, v, v1, v2 + if (*TParse)(unsafe.Pointer(pParse)).FbHasWith != 0 || (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy != 0 || _exprListIsConstant(tls, pParse, pRow) == 0 || (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 && _exprListIsNoAffinity(tls, pParse, (*TSelect)(unsafe.Pointer(pLeft)).FpEList) == 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { + /* The co-routine method cannot be used. Fall back to UNION ALL. */ + pSelect = uintptr(0) + f = libc.Int32FromInt32(SF_Values) | libc.Int32FromInt32(SF_MultiValue) + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc != 0 { + _sqlite3MultiValuesEnd(tls, pParse, pLeft) + f = int32(SF_Values) + } else { + if (*TSelect)(unsafe.Pointer(pLeft)).FpPrior != 0 { + /* In this case set the SF_MultiValue flag only if it was set on pLeft */ + f = int32(uint32(f) & (*TSelect)(unsafe.Pointer(pLeft)).FselFlags) + } + } + pSelect = _sqlite3SelectNew(tls, pParse, pRow, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(f), uintptr(0)) + *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) + if pSelect != 0 { + (*TSelect)(unsafe.Pointer(pSelect)).Fop = uint8(TK_ALL) + (*TSelect)(unsafe.Pointer(pSelect)).FpPrior = pLeft + pLeft = pSelect + } + } else { + p = uintptr(0) /* SrcItem that reads from co-routine */ + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 { + /* Co-routine has not yet been started and the special Select object + ** that accesses the co-routine has not yet been created. This block + ** does both those things. */ + v = _sqlite3GetVdbe(tls, pParse) + pRet = _sqlite3SelectNew(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) + /* Ensure the database schema has been read. This is to ensure we have + ** the correct text encoding. */ + if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmDbFlags&uint32(DBFLAG_SchemaKnownOk) == uint32(0) { + _sqlite3ReadSchema(tls, pParse) + } + if pRet != 0 { + (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pRet)).FpSrc)).FnSrc = int32(1) + (*TSelect)(unsafe.Pointer(pRet)).FpPrior = (*TSelect)(unsafe.Pointer(pLeft)).FpPrior + (*TSelect)(unsafe.Pointer(pRet)).Fop = (*TSelect)(unsafe.Pointer(pLeft)).Fop + (*TSelect)(unsafe.Pointer(pLeft)).FpPrior = uintptr(0) + (*TSelect)(unsafe.Pointer(pLeft)).Fop = uint8(TK_SELECT) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + p = (*TSelect)(unsafe.Pointer(pRet)).FpSrc + 8 + (*TSrcItem)(unsafe.Pointer(p)).FpSelect = pLeft + libc.SetBitFieldPtr16Uint32(p+60+4, libc.Uint32FromInt32(1), 5, 0x20) + (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + v2 = pParse + 56 + *(*int32)(unsafe.Pointer(v2))++ + v1 = *(*int32)(unsafe.Pointer(v2)) + (*TSrcItem)(unsafe.Pointer(p)).FregReturn = v1 + (*TSrcItem)(unsafe.Pointer(p)).FiCursor = -int32(1) + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1)) = uint32(2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn, 0, (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub) + _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + /* Allocate registers for the output of the co-routine. Do so so + ** that there are two unused registers immediately before those + ** used by the co-routine. This allows the code in sqlite3Insert() + ** to use these registers directly, instead of copying the output + ** of the co-routine to a separate array for processing. */ + (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(3) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpEList)).FnExpr + *(*int32)(unsafe.Pointer(pParse + 56)) += int32(2) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst + *(*Tu32)(unsafe.Pointer(pLeft + 4)) |= uint32(SF_MultiValue) + _sqlite3Select(tls, pParse, pLeft, bp) + (*TSrcItem)(unsafe.Pointer(p)).FregResult = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst + _ = libc.Int32FromInt32(0) + pLeft = pRet + } + } else { + p = (*TSelect)(unsafe.Pointer(pLeft)).FpSrc + 8 + _ = libc.Int32FromInt32(0) + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1))++ + } + if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { + _ = libc.Int32FromInt32(0) + if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p)).FpSelect)).FpEList)).FnExpr != (*TExprList)(unsafe.Pointer(pRow)).FnExpr { + _sqlite3SelectWrongNumTermsError(tls, pParse, (*TSrcItem)(unsafe.Pointer(p)).FpSelect) + } else { + _sqlite3ExprCodeExprList(tls, pParse, pRow, (*TSrcItem)(unsafe.Pointer(p)).FregResult, 0, uint8(0)) + _sqlite3VdbeAddOp1(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Yield), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + } + } + _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pRow) + } + return pLeft +} + // C documentation // // /* @@ -112516,27 +113313,27 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uintptr, pColumn uintptr, onError int32, pUpsert uintptr) { bp := tls.Alloc(160) defer tls.Free(160) - var aRegIdx, db, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, v, v13, v16, v18, v6, v9 uintptr - var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v12, v15, v17, v19, v23, v24, v5, v7, v8 int32 + var aRegIdx, db, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, v, v10, v14, v17, v19, v7 uintptr + var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v13, v16, v18, v20, v24, v25, v5, v6, v8, v9 int32 var appendFlag, bIdListInOrder, useTempTable, withoutRowid Tu8 - var colFlags, v21 Tu32 + var colFlags, v22 Tu32 var _ /* dest at bp+8 */ TSelectDest var _ /* iDataCur at bp+0 */ int32 var _ /* iIdxCur at bp+4 */ int32 var _ /* isReplace at bp+112 */ int32 var _ /* sNC at bp+56 */ TNameContext var _ /* tmask at bp+48 */ int32 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v12, v13, v15, v16, v17, v18, v19, v21, v23, v24, v5, v6, v7, v8, v9 /* Number of columns in the data */ - nHidden = 0 /* Number of hidden columns if TABLE is virtual */ - *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ - *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ - ipkColumn = -int32(1) /* Label for the end of the insertion loop */ - srcTab = 0 /* Data comes from this temporary cursor if >=0 */ - addrInsTop = 0 /* Jump to label "D" */ - addrCont = 0 /* Index of database holding TABLE */ - useTempTable = uint8(0) /* Store SELECT results in intermediate table */ - appendFlag = uint8(0) /* True if IDLIST is in table order */ - pList = uintptr(0) /* Register in which to store next column */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v10, v13, v14, v16, v17, v18, v19, v20, v22, v24, v25, v5, v6, v7, v8, v9 /* Number of columns in the data */ + nHidden = 0 /* Number of hidden columns if TABLE is virtual */ + *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ + *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ + ipkColumn = -int32(1) /* Label for the end of the insertion loop */ + srcTab = 0 /* Data comes from this temporary cursor if >=0 */ + addrInsTop = 0 /* Jump to label "D" */ + addrCont = 0 /* Index of database holding TABLE */ + useTempTable = uint8(0) /* Store SELECT results in intermediate table */ + appendFlag = uint8(0) /* True if IDLIST is in table order */ + pList = uintptr(0) /* Register in which to store next column */ /* Register allocations */ regFromSelect = 0 /* Base register for data coming from SELECT */ regAutoinc = 0 /* Register holding the AUTOINCREMENT counter */ @@ -112683,7 +113480,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _ = libc.Int32FromInt32(0) } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_STORED)|libc.Int32FromInt32(COLFLAG_VIRTUAL)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16093, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16172, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto insert_cleanup } break @@ -112698,7 +113495,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i bIdListInOrder = uint8(0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16134, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16213, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto insert_cleanup } @@ -112715,31 +113512,49 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** co-routine is the common header to the 3rd and 4th templates. */ if pSelect != 0 { /* Result code */ - v6 = pParse + 56 - *(*int32)(unsafe.Pointer(v6))++ - v5 = *(*int32)(unsafe.Pointer(v6)) - regYield = v5 - addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) - _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) - _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) - if bIdListInOrder != 0 { - v7 = regData + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc)).FnSrc == int32(1) && int32(uint32(*(*uint16)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + 60 + 4))&0x20>>5)) != 0 && (*TSelect)(unsafe.Pointer(pSelect)).FpPrior == uintptr(0) { + pItem = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSDParm = (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn + regFromSelect = (*TSrcItem)(unsafe.Pointer(pItem)).FregResult + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FpEList)).FnExpr + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+16245, libc.VaList(bp+128, pItem)) + if bIdListInOrder != 0 && nColumn == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { + regData = regFromSelect + regRowid = regData - int32(1) + if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { + v5 = int32(1) + } else { + v5 = 0 + } + regIns = regRowid - v5 + } } else { - v7 = 0 - } - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v7 - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) - rc = _sqlite3Select(tls, pParse, pSelect, bp+8) - regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst - _ = libc.Int32FromInt32(0) - if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { - goto insert_cleanup + v7 = pParse + 56 + *(*int32)(unsafe.Pointer(v7))++ + v6 = *(*int32)(unsafe.Pointer(v7)) /* Top of the co-routine */ + regYield = v6 + addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) + _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) + if bIdListInOrder != 0 { + v8 = regData + } else { + v8 = 0 + } + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) + rc = _sqlite3Select(tls, pParse, pSelect, bp+8) + regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst + _ = libc.Int32FromInt32(0) + if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { + goto insert_cleanup + } + _ = libc.Int32FromInt32(0) + _sqlite3VdbeEndCoroutine(tls, v, regYield) + _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ + _ = libc.Int32FromInt32(0) + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr } - _ = libc.Int32FromInt32(0) - _sqlite3VdbeEndCoroutine(tls, v, regYield) - _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ - _ = libc.Int32FromInt32(0) - nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr /* Set useTempTable to TRUE if the result of the SELECT statement ** should be written into a temporary table (template 4). Set to ** FALSE if each output row of the SELECT can be written directly into @@ -112753,10 +113568,10 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin useTempTable = uint8(1) } if useTempTable != 0 { /* Label "L" */ - v9 = pParse + 52 - v8 = *(*int32)(unsafe.Pointer(v9)) - *(*int32)(unsafe.Pointer(v9))++ - srcTab = v8 + v10 = pParse + 52 + v9 = *(*int32)(unsafe.Pointer(v10)) + *(*int32)(unsafe.Pointer(v10))++ + srcTab = v9 regRec = _sqlite3GetTempReg(tls, pParse) regTempRowid = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp2(tls, v, int32(OP_OpenEphemeral), srcTab, nColumn) @@ -112798,8 +113613,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { ipkColumn-- } - goto _10 - _10: + goto _11 + _11: ; i-- } @@ -112819,28 +113634,28 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_NOINSERT) != 0 { nHidden++ } - goto _11 - _11: + goto _12 + _12: ; i++ } } if nColumn != int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16166, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16253, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) goto insert_cleanup } } if pColumn != uintptr(0) && nColumn != (*TIdList)(unsafe.Pointer(pColumn)).FnId { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16218, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16305, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) goto insert_cleanup } /* Initialize the count of rows to be inserted */ if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&(uint64(libc.Int32FromInt32(0x00001))<= 0 { /* tag-20191021-001: If the INTEGER PRIMARY KEY is being generated by the ** SELECT, go ahead and copy the value into the rowid slot now, so that @@ -112956,18 +113771,18 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** using excess space. The file format definition requires this extra ** NULL - we cannot optimize further by skipping the column completely */ _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) - goto _20 + goto _21 } - v21 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) - colFlags = v21 - if v21&uint32(COLFLAG_NOINSERT) != uint32(0) { + v22 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) + colFlags = v22 + if v22&uint32(COLFLAG_NOINSERT) != uint32(0) { nHidden++ if colFlags&uint32(COLFLAG_VIRTUAL) != uint32(0) { /* Virtual columns do not participate in OP_MakeRecord. So back up ** iRegStore by one slot to compensate for the iRegStore++ in the ** outer for() loop */ iRegStore-- - goto _20 + goto _21 } else { if colFlags&uint32(COLFLAG_STORED) != uint32(0) { /* Stored columns are computed later. But if there are BEFORE @@ -112977,13 +113792,13 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if *(*int32)(unsafe.Pointer(bp + 48))&int32(TRIGGER_BEFORE) != 0 { _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) } - goto _20 + goto _21 } else { if pColumn == uintptr(0) { /* Hidden columns that are not explicitly named in the INSERT ** get there default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } } } @@ -112995,8 +113810,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if !(j < (*TIdList)(unsafe.Pointer(pColumn)).FnId && *(*int32)(unsafe.Pointer(pColumn + 8 + uintptr(j)*16 + 8)) != i) { break } - goto _22 - _22: + goto _23 + _23: ; j++ } @@ -113004,14 +113819,14 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin /* A column not named in the insert column list gets its ** default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } k = j } else { if nColumn == 0 { /* This is INSERT INTO ... DEFAULT VALUES. Load the default value. */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } else { k = i - nHidden } @@ -113028,16 +113843,16 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin y = _sqlite3ExprCodeTarget(tls, pParse, pX, iRegStore) if y != iRegStore { if (*TExpr)(unsafe.Pointer(pX)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) { - v23 = int32(OP_Copy) + v24 = int32(OP_Copy) } else { - v23 = int32(OP_SCopy) + v24 = int32(OP_SCopy) } - _sqlite3VdbeAddOp2(tls, v, v23, y, iRegStore) + _sqlite3VdbeAddOp2(tls, v, v24, y, iRegStore) } } } - goto _20 - _20: + goto _21 + _21: ; i++ iRegStore++ @@ -113150,11 +113965,11 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VtabMakeWritable(tls, pParse, pTab) _sqlite3VdbeAddOp4(tls, v, int32(OP_VUpdate), int32(1), int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+int32(2), regIns, pVTab, -int32(11)) if onError == int32(OE_Default) { - v24 = int32(OE_Abort) + v25 = int32(OE_Abort) } else { - v24 = onError + v25 = onError } - _sqlite3VdbeChangeP5(tls, v, uint16(v24)) + _sqlite3VdbeChangeP5(tls, v, uint16(v25)) _sqlite3MayAbort(tls, pParse) } else { *(*int32)(unsafe.Pointer(bp + 112)) = 0 /* True to use OPFLAG_SEEKRESULT */ @@ -113197,6 +114012,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VdbeJumpHere(tls, v, addrInsTop) } } + goto insert_end insert_end: ; /* Update the sqlite_sequence table by storing the content of the @@ -113212,8 +114028,9 @@ insert_end: ** invoke the callback function. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16310) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16397) } + goto insert_cleanup insert_cleanup: ; _sqlite3SrcListDelete(tls, db, pTabList) @@ -113610,7 +114427,7 @@ func _sqlite3GenerateConstraintChecks(tls *libc.TLS, pParse uintptr, pTab uintpt case int32(OE_Rollback): fallthrough case int32(OE_Fail): - zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12390, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12515, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) _sqlite3VdbeAddOp3(tls, v, int32(OP_HaltIfNull), libc.Int32FromInt32(SQLITE_CONSTRAINT)|libc.Int32FromInt32(5)<= 0 && !(int32(*(*uint8)(unsafe.Pointer(zFile + uintptr(iFile)))) == libc.Int32FromUint8('/'))) { @@ -115885,7 +116703,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp iFile-- } iFile++ - if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16359, int32(3)) == 0 { + if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16446, int32(3)) == 0 { iFile += int32(3) } iEntry = int32(8) @@ -115905,7 +116723,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp ; iFile++ } - libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16363, uint64(6)) + libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16450, uint64(6)) zEntry = zAltEntry xInit = _sqlite3OsDlSym(tls, pVfs, handle, zEntry) } @@ -115917,7 +116735,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v7 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16369, libc.VaList(bp+16, zEntry, zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16456, libc.VaList(bp+16, zEntry, zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -115932,7 +116750,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp return SQLITE_OK } if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16412, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16499, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3OsDlClose(tls, pVfs, handle) @@ -115953,6 +116771,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*int32)(unsafe.Pointer(v9))++ *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaExtension + uintptr(v8)*8)) = handle return SQLITE_OK + goto extension_not_found extension_not_found: ; if pzErrMsg != 0 { @@ -115962,7 +116781,7 @@ extension_not_found: *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v10 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16444, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) + Xsqlite3_snprintf(tls, int32(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16531, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -115971,7 +116790,7 @@ extension_not_found: /* Shared library endings to try if zFile cannot be loaded as written */ var _azEndings = [1]uintptr{ - 0: __ccgo_ts + 16324, + 0: __ccgo_ts + 16411, } func Xsqlite3_load_extension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintptr, pzErrMsg uintptr) (r int32) { @@ -116206,7 +117025,7 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { rc = v2 } if v3 && v2 != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16481, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16568, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) go1 = 0 } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -116260,63 +117079,63 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { // ** result column is different from the name of the pragma // */ var _pragCName = [57]uintptr{ - 0: __ccgo_ts + 5490, - 1: __ccgo_ts + 16520, - 2: __ccgo_ts + 9067, - 3: __ccgo_ts + 16524, - 4: __ccgo_ts + 16529, - 5: __ccgo_ts + 16532, - 6: __ccgo_ts + 16542, - 7: __ccgo_ts + 16552, - 8: __ccgo_ts + 16558, - 9: __ccgo_ts + 16562, - 10: __ccgo_ts + 16567, - 11: __ccgo_ts + 16572, - 12: __ccgo_ts + 16580, - 13: __ccgo_ts + 16591, - 14: __ccgo_ts + 16594, - 15: __ccgo_ts + 16601, - 16: __ccgo_ts + 16562, - 17: __ccgo_ts + 16567, - 18: __ccgo_ts + 16608, - 19: __ccgo_ts + 16613, - 20: __ccgo_ts + 16616, - 21: __ccgo_ts + 16623, - 22: __ccgo_ts + 16558, - 23: __ccgo_ts + 16562, - 24: __ccgo_ts + 16629, - 25: __ccgo_ts + 16634, - 26: __ccgo_ts + 16639, - 27: __ccgo_ts + 16562, - 28: __ccgo_ts + 16643, - 29: __ccgo_ts + 16567, - 30: __ccgo_ts + 16651, - 31: __ccgo_ts + 16655, - 32: __ccgo_ts + 16660, - 33: __ccgo_ts + 11806, - 34: __ccgo_ts + 11802, - 35: __ccgo_ts + 16666, - 36: __ccgo_ts + 16671, - 37: __ccgo_ts + 16676, - 38: __ccgo_ts + 16520, - 39: __ccgo_ts + 16562, - 40: __ccgo_ts + 16681, - 41: __ccgo_ts + 16688, - 42: __ccgo_ts + 16695, - 43: __ccgo_ts + 9067, - 44: __ccgo_ts + 16703, - 45: __ccgo_ts + 5493, - 46: __ccgo_ts + 16709, - 47: __ccgo_ts + 16520, - 48: __ccgo_ts + 16562, - 49: __ccgo_ts + 16714, - 50: __ccgo_ts + 16719, - 51: __ccgo_ts + 15916, - 52: __ccgo_ts + 16724, - 53: __ccgo_ts + 16737, - 54: __ccgo_ts + 16746, - 55: __ccgo_ts + 16753, - 56: __ccgo_ts + 16764, + 0: __ccgo_ts + 5554, + 1: __ccgo_ts + 16607, + 2: __ccgo_ts + 9192, + 3: __ccgo_ts + 16611, + 4: __ccgo_ts + 16616, + 5: __ccgo_ts + 16619, + 6: __ccgo_ts + 16629, + 7: __ccgo_ts + 16639, + 8: __ccgo_ts + 16645, + 9: __ccgo_ts + 16649, + 10: __ccgo_ts + 16654, + 11: __ccgo_ts + 16659, + 12: __ccgo_ts + 16667, + 13: __ccgo_ts + 16678, + 14: __ccgo_ts + 16681, + 15: __ccgo_ts + 16688, + 16: __ccgo_ts + 16649, + 17: __ccgo_ts + 16654, + 18: __ccgo_ts + 16695, + 19: __ccgo_ts + 16700, + 20: __ccgo_ts + 16703, + 21: __ccgo_ts + 16710, + 22: __ccgo_ts + 16645, + 23: __ccgo_ts + 16649, + 24: __ccgo_ts + 16716, + 25: __ccgo_ts + 16721, + 26: __ccgo_ts + 16726, + 27: __ccgo_ts + 16649, + 28: __ccgo_ts + 16730, + 29: __ccgo_ts + 16654, + 30: __ccgo_ts + 16738, + 31: __ccgo_ts + 16742, + 32: __ccgo_ts + 16747, + 33: __ccgo_ts + 11931, + 34: __ccgo_ts + 11927, + 35: __ccgo_ts + 16753, + 36: __ccgo_ts + 16758, + 37: __ccgo_ts + 16763, + 38: __ccgo_ts + 16607, + 39: __ccgo_ts + 16649, + 40: __ccgo_ts + 16768, + 41: __ccgo_ts + 16775, + 42: __ccgo_ts + 16782, + 43: __ccgo_ts + 9192, + 44: __ccgo_ts + 16790, + 45: __ccgo_ts + 5557, + 46: __ccgo_ts + 16796, + 47: __ccgo_ts + 16607, + 48: __ccgo_ts + 16649, + 49: __ccgo_ts + 16801, + 50: __ccgo_ts + 16806, + 51: __ccgo_ts + 15995, + 52: __ccgo_ts + 16811, + 53: __ccgo_ts + 16824, + 54: __ccgo_ts + 16833, + 55: __ccgo_ts + 16840, + 56: __ccgo_ts + 16851, } // C documentation @@ -116335,191 +117154,191 @@ type PragmaName = TPragmaName var _aPragmaName = [66]TPragmaName{ 0: { - FzName: __ccgo_ts + 16772, + FzName: __ccgo_ts + 16859, FePragTyp: uint8(PragTyp_ANALYSIS_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 1: { - FzName: __ccgo_ts + 16787, + FzName: __ccgo_ts + 16874, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_APPLICATION_ID), }, 2: { - FzName: __ccgo_ts + 16802, + FzName: __ccgo_ts + 16889, FePragTyp: uint8(PragTyp_AUTO_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 3: { - FzName: __ccgo_ts + 16814, + FzName: __ccgo_ts + 16901, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_AutoIndex), }, 4: { - FzName: __ccgo_ts + 16830, + FzName: __ccgo_ts + 16917, FePragTyp: uint8(PragTyp_BUSY_TIMEOUT), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(56), FnPragCName: uint8(1), }, 5: { - FzName: __ccgo_ts + 16753, + FzName: __ccgo_ts + 16840, FePragTyp: uint8(PragTyp_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 6: { - FzName: __ccgo_ts + 16843, + FzName: __ccgo_ts + 16930, FePragTyp: uint8(PragTyp_CACHE_SPILL), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 7: { - FzName: __ccgo_ts + 16855, + FzName: __ccgo_ts + 16942, FePragTyp: uint8(PragTyp_CASE_SENSITIVE_LIKE), FmPragFlg: uint8(PragFlg_NoColumns), }, 8: { - FzName: __ccgo_ts + 16875, + FzName: __ccgo_ts + 16962, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CellSizeCk), }, 9: { - FzName: __ccgo_ts + 16891, + FzName: __ccgo_ts + 16978, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CkptFullFSync), }, 10: { - FzName: __ccgo_ts + 16912, + FzName: __ccgo_ts + 16999, FePragTyp: uint8(PragTyp_COLLATION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(38), FnPragCName: uint8(2), }, 11: { - FzName: __ccgo_ts + 16927, + FzName: __ccgo_ts + 17014, FePragTyp: uint8(PragTyp_COMPILE_OPTIONS), FmPragFlg: uint8(PragFlg_Result0), }, 12: { - FzName: __ccgo_ts + 16943, + FzName: __ccgo_ts + 17030, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00001)) << libc.Int32FromInt32(32), }, 13: { - FzName: __ccgo_ts + 16957, + FzName: __ccgo_ts + 17044, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_DATA_VERSION), }, 14: { - FzName: __ccgo_ts + 16970, + FzName: __ccgo_ts + 17057, FePragTyp: uint8(PragTyp_DATABASE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(47), FnPragCName: uint8(3), }, 15: { - FzName: __ccgo_ts + 16984, + FzName: __ccgo_ts + 17071, FePragTyp: uint8(PragTyp_DEFAULT_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiPragCName: uint8(55), FnPragCName: uint8(1), }, 16: { - FzName: __ccgo_ts + 17003, + FzName: __ccgo_ts + 17090, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_DeferFKs), }, 17: { - FzName: __ccgo_ts + 17022, + FzName: __ccgo_ts + 17109, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_NullCallback), }, 18: { - FzName: __ccgo_ts + 17045, + FzName: __ccgo_ts + 17132, FePragTyp: uint8(PragTyp_ENCODING), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 19: { - FzName: __ccgo_ts + 17054, + FzName: __ccgo_ts + 17141, FePragTyp: uint8(PragTyp_FOREIGN_KEY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(43), FnPragCName: uint8(4), }, 20: { - FzName: __ccgo_ts + 17072, + FzName: __ccgo_ts + 17159, FePragTyp: uint8(PragTyp_FOREIGN_KEY_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FnPragCName: uint8(8), }, 21: { - FzName: __ccgo_ts + 17089, + FzName: __ccgo_ts + 17176, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ForeignKeys), }, 22: { - FzName: __ccgo_ts + 17102, + FzName: __ccgo_ts + 17189, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), }, 23: { - FzName: __ccgo_ts + 17117, + FzName: __ccgo_ts + 17204, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullColNames), }, 24: { - FzName: __ccgo_ts + 17135, + FzName: __ccgo_ts + 17222, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullFSync), }, 25: { - FzName: __ccgo_ts + 17145, + FzName: __ccgo_ts + 17232, FePragTyp: uint8(PragTyp_FUNCTION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(27), FnPragCName: uint8(6), }, 26: { - FzName: __ccgo_ts + 17159, + FzName: __ccgo_ts + 17246, FePragTyp: uint8(PragTyp_HARD_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 27: { - FzName: __ccgo_ts + 17175, + FzName: __ccgo_ts + 17262, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_IgnoreChecks), }, 28: { - FzName: __ccgo_ts + 17200, + FzName: __ccgo_ts + 17287, FePragTyp: uint8(PragTyp_INCREMENTAL_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_NoColumns)), }, 29: { - FzName: __ccgo_ts + 17219, + FzName: __ccgo_ts + 17306, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), FnPragCName: uint8(3), }, 30: { - FzName: __ccgo_ts + 17230, + FzName: __ccgo_ts + 17317, FePragTyp: uint8(PragTyp_INDEX_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(38), FnPragCName: uint8(5), }, 31: { - FzName: __ccgo_ts + 17241, + FzName: __ccgo_ts + 17328, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), @@ -116527,146 +117346,146 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 32: { - FzName: __ccgo_ts + 17253, + FzName: __ccgo_ts + 17340, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 33: { - FzName: __ccgo_ts + 17269, + FzName: __ccgo_ts + 17356, FePragTyp: uint8(PragTyp_JOURNAL_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 34: { - FzName: __ccgo_ts + 17282, + FzName: __ccgo_ts + 17369, FePragTyp: uint8(PragTyp_JOURNAL_SIZE_LIMIT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 35: { - FzName: __ccgo_ts + 17301, + FzName: __ccgo_ts + 17388, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_LegacyAlter), }, 36: { - FzName: __ccgo_ts + 17320, + FzName: __ccgo_ts + 17407, FePragTyp: uint8(PragTyp_LOCKING_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 37: { - FzName: __ccgo_ts + 17333, + FzName: __ccgo_ts + 17420, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 38: { - FzName: __ccgo_ts + 17348, + FzName: __ccgo_ts + 17435, FePragTyp: uint8(PragTyp_MMAP_SIZE), }, 39: { - FzName: __ccgo_ts + 17358, + FzName: __ccgo_ts + 17445, FePragTyp: uint8(PragTyp_MODULE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 40: { - FzName: __ccgo_ts + 17370, + FzName: __ccgo_ts + 17457, FePragTyp: uint8(PragTyp_OPTIMIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_NeedSchema)), }, 41: { - FzName: __ccgo_ts + 17379, + FzName: __ccgo_ts + 17466, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 42: { - FzName: __ccgo_ts + 17390, + FzName: __ccgo_ts + 17477, FePragTyp: uint8(PragTyp_PAGE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 43: { - FzName: __ccgo_ts + 17400, + FzName: __ccgo_ts + 17487, FePragTyp: uint8(PragTyp_PRAGMA_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 44: { - FzName: __ccgo_ts + 17412, + FzName: __ccgo_ts + 17499, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_QueryOnly), }, 45: { - FzName: __ccgo_ts + 17423, + FzName: __ccgo_ts + 17510, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 46: { - FzName: __ccgo_ts + 17435, + FzName: __ccgo_ts + 17522, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00004)) << libc.Int32FromInt32(32), }, 47: { - FzName: __ccgo_ts + 17452, + FzName: __ccgo_ts + 17539, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_RecTriggers), }, 48: { - FzName: __ccgo_ts + 17471, + FzName: __ccgo_ts + 17558, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ReverseOrder), }, 49: { - FzName: __ccgo_ts + 17497, + FzName: __ccgo_ts + 17584, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_SCHEMA_VERSION), }, 50: { - FzName: __ccgo_ts + 17512, + FzName: __ccgo_ts + 17599, FePragTyp: uint8(PragTyp_SECURE_DELETE), FmPragFlg: uint8(PragFlg_Result0), }, 51: { - FzName: __ccgo_ts + 17526, + FzName: __ccgo_ts + 17613, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ShortColNames), }, 52: { - FzName: __ccgo_ts + 17545, + FzName: __ccgo_ts + 17632, FePragTyp: uint8(PragTyp_SHRINK_MEMORY), FmPragFlg: uint8(PragFlg_NoColumns), }, 53: { - FzName: __ccgo_ts + 17559, + FzName: __ccgo_ts + 17646, FePragTyp: uint8(PragTyp_SOFT_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 54: { - FzName: __ccgo_ts + 17575, + FzName: __ccgo_ts + 17662, FePragTyp: uint8(PragTyp_SYNCHRONOUS), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 55: { - FzName: __ccgo_ts + 17587, + FzName: __ccgo_ts + 17674, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), FnPragCName: uint8(6), }, 56: { - FzName: __ccgo_ts + 17598, + FzName: __ccgo_ts + 17685, FePragTyp: uint8(PragTyp_TABLE_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1)), FiPragCName: uint8(15), FnPragCName: uint8(6), }, 57: { - FzName: __ccgo_ts + 17609, + FzName: __ccgo_ts + 17696, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), @@ -116674,45 +117493,45 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 58: { - FzName: __ccgo_ts + 17621, + FzName: __ccgo_ts + 17708, FePragTyp: uint8(PragTyp_TEMP_STORE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 59: { - FzName: __ccgo_ts + 17632, + FzName: __ccgo_ts + 17719, FePragTyp: uint8(PragTyp_TEMP_STORE_DIRECTORY), FmPragFlg: uint8(PragFlg_NoColumns1), }, 60: { - FzName: __ccgo_ts + 17653, + FzName: __ccgo_ts + 17740, FePragTyp: uint8(PragTyp_THREADS), FmPragFlg: uint8(PragFlg_Result0), }, 61: { - FzName: __ccgo_ts + 17661, + FzName: __ccgo_ts + 17748, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_TrustedSchema), }, 62: { - FzName: __ccgo_ts + 17676, + FzName: __ccgo_ts + 17763, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_USER_VERSION), }, 63: { - FzName: __ccgo_ts + 17689, + FzName: __ccgo_ts + 17776, FePragTyp: uint8(PragTyp_WAL_AUTOCHECKPOINT), }, 64: { - FzName: __ccgo_ts + 17708, + FzName: __ccgo_ts + 17795, FePragTyp: uint8(PragTyp_WAL_CHECKPOINT), FmPragFlg: uint8(PragFlg_NeedSchema), FiPragCName: uint8(50), FnPragCName: uint8(3), }, 65: { - FzName: __ccgo_ts + 17723, + FzName: __ccgo_ts + 17810, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(SQLITE_WriteSchema) | libc.Int32FromInt32(SQLITE_NoSchemaError)), @@ -116724,6 +117543,31 @@ var _aPragmaName = [66]TPragmaName{ /************** End of pragma.h **********************************************/ /************** Continuing where we left off in pragma.c *********************/ +/* +** When the 0x10 bit of PRAGMA optimize is set, any ANALYZE commands +** will be run with an analysis_limit set to the lessor of the value of +** the following macro or to the actual analysis_limit if it is non-zero, +** in order to prevent PRAGMA optimize from running for too long. +** +** The value of 2000 is chosen emperically so that the worst-case run-time +** for PRAGMA optimize does not exceed 100 milliseconds against a variety +** of test databases on a RaspberryPI-4 compiled using -Os and without +** -DSQLITE_DEBUG. Of course, your mileage may vary. For the purpose of +** this paragraph, "worst-case" means that ANALYZE ends up being +** run on every table in the database. The worst case typically only +** happens if PRAGMA optimize is run on a database file for which ANALYZE +** has not been previously run and the 0x10000 flag is included so that +** all tables are analyzed. The usual case for PRAGMA optimize is that +** no ANALYZE commands will be run at all, or if any ANALYZE happens it +** will be against a single table, so that expected timing for PRAGMA +** optimize on a PI-4 is more like 1 millisecond or less with the 0x10000 +** flag or less than 100 microseconds without the 0x10000 flag. +** +** An analysis limit of 2000 is almost always sufficient for the query +** planner to fully characterize an index. The additional accuracy from +** a larger analysis is not usually helpful. + */ + // C documentation // // /* @@ -116813,10 +117657,10 @@ func _sqlite3GetBoolean(tls *libc.TLS, z uintptr, dflt Tu8) (r Tu8) { // */ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { if z != 0 { - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17739) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17826) { return int32(PAGER_LOCKINGMODE_EXCLUSIVE) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17749) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17836) { return PAGER_LOCKINGMODE_NORMAL } } @@ -116834,13 +117678,13 @@ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { func _getAutoVacuum(tls *libc.TLS, z uintptr) (r int32) { var i, v1 int32 _, _ = i, v1 - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8227) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8352) { return BTREE_AUTOVACUUM_NONE } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17756) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17843) { return int32(BTREE_AUTOVACUUM_FULL) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17761) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17848) { return int32(BTREE_AUTOVACUUM_INCR) } i = _sqlite3Atoi(tls, z) @@ -116863,10 +117707,10 @@ func _getTempStore(tls *libc.TLS, z uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(z))) <= int32('2') { return int32(*(*uint8)(unsafe.Pointer(z))) - int32('0') } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+16714) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+16801) == 0 { return int32(1) } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+17773) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+17860) == 0 { return int32(2) } else { return 0 @@ -116888,7 +117732,7 @@ func _invalidateTempStorage(tls *libc.TLS, pParse uintptr) (r int32) { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt != uintptr(0) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || _sqlite3BtreeTxnState(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) != SQLITE_TXN_NONE { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17780, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17867, 0) return int32(SQLITE_ERROR) } _sqlite3BtreeClose(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) @@ -117023,15 +117867,15 @@ func _actionName(tls *libc.TLS, action Tu8) (r uintptr) { _ = zName switch int32(action) { case int32(OE_SetNull): - zName = __ccgo_ts + 17842 + zName = __ccgo_ts + 17929 case int32(OE_SetDflt): - zName = __ccgo_ts + 17851 + zName = __ccgo_ts + 17938 case int32(OE_Cascade): - zName = __ccgo_ts + 17863 + zName = __ccgo_ts + 17950 case int32(OE_Restrict): - zName = __ccgo_ts + 17871 + zName = __ccgo_ts + 17958 default: - zName = __ccgo_ts + 17880 + zName = __ccgo_ts + 17967 _ = libc.Int32FromInt32(0) break } @@ -117060,12 +117904,12 @@ func _sqlite3JournalModename(tls *libc.TLS, eMode int32) (r uintptr) { } var _azModeName = [6]uintptr{ - 0: __ccgo_ts + 17890, - 1: __ccgo_ts + 17897, - 2: __ccgo_ts + 17905, - 3: __ccgo_ts + 17909, - 4: __ccgo_ts + 17773, - 5: __ccgo_ts + 17918, + 0: __ccgo_ts + 17977, + 1: __ccgo_ts + 17984, + 2: __ccgo_ts + 17992, + 3: __ccgo_ts + 17996, + 4: __ccgo_ts + 17860, + 5: __ccgo_ts + 18005, } // C documentation @@ -117131,15 +117975,15 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s goto _1 } if (*TFuncDef)(unsafe.Pointer(p)).FxValue != uintptr(0) { - zType = __ccgo_ts + 17943 + zType = __ccgo_ts + 18030 } else { if (*TFuncDef)(unsafe.Pointer(p)).FxFinalize != uintptr(0) { - zType = __ccgo_ts + 17945 + zType = __ccgo_ts + 18032 } else { - zType = __ccgo_ts + 7626 + zType = __ccgo_ts + 7751 } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+17947, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18034, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) goto _1 _1: ; @@ -117148,9 +117992,9 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s } var _azEnc = [4]uintptr{ - 1: __ccgo_ts + 17922, - 2: __ccgo_ts + 17927, - 3: __ccgo_ts + 17935, + 1: __ccgo_ts + 18009, + 2: __ccgo_ts + 18014, + 3: __ccgo_ts + 18022, } // C documentation @@ -117191,15 +118035,15 @@ func _integrityCheckResultRow(tls *libc.TLS, v uintptr) (r int32) { func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pValue uintptr, minusFlag int32) { bp := tls.Alloc(240) defer tls.Free(240) - var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, mxIdx, n, nHidden, nIdx, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v60, v62, v63, v64, v65, v68 int32 - var aOp, aOp1, aOp2, aOp3, aOp4, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v61, v66, v8 uintptr + var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v48, v50, v64, v66, v67, v68, v69, v72, v75, v76 int32 + var aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v65, v70, v8 uintptr var azOrigin [3]uintptr var cnum Ti16 var enc Tu8 var iPrior Tsqlite3_int64 + var iRange, szThreshold TLogEst var mask Tu64 var opMask Tu32 - var szThreshold TLogEst var _ /* N at bp+136 */ Tsqlite3_int64 var _ /* N at bp+144 */ Tsqlite3_int64 var _ /* N at bp+152 */ Tsqlite3_int64 @@ -117220,7 +118064,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p var _ /* size at bp+60 */ int32 var _ /* sz at bp+64 */ Tsqlite3_int64 var _ /* x at bp+40 */ Ti64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iPrior, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, mxIdx, n, nHidden, nIdx, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v5, v60, v61, v62, v63, v64, v65, v66, v68, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iPrior, iRange, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v48, v5, v50, v64, v65, v66, v67, v68, v69, v70, v72, v75, v76, v8 zLeft = uintptr(0) /* Nul-terminated UTF-8 string */ zRight = uintptr(0) /* Nul-terminated UTF-8 string , or NULL */ zDb = uintptr(0) /* return value form SQLITE_FCNTL_PRAGMA */ @@ -117249,7 +118093,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p return } if minusFlag != 0 { - zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+17954, libc.VaList(bp+176, pValue)) + zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+18041, libc.VaList(bp+176, pValue)) } else { zRight = _sqlite3NameFromToken(tls, db, pValue) } @@ -117293,7 +118137,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } if rc != int32(SQLITE_NOTFOUND) { if (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0] != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3804, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3868, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) Xsqlite3_free(tls, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0]) } (*TParse)(unsafe.Pointer(pParse)).FnErr++ @@ -117400,7 +118244,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p b = -int32(1) _ = libc.Int32FromInt32(0) if zRight != 0 { - if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+17958) == 0 { + if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18045) == 0 { b = int32(2) } else { b = int32(_sqlite3GetBoolean(tls, zRight, uint8(0))) @@ -117471,7 +118315,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p */ fallthrough case int32(PragTyp_LOCKING_MODE): - zRet = __ccgo_ts + 17749 + zRet = __ccgo_ts + 17836 eMode = _getLockingMode(tls, zRight) if (*TToken)(unsafe.Pointer(pId2)).Fn == uint32(0) && eMode == -int32(1) { /* Simple "PRAGMA locking_mode;" statement. This is a query for @@ -117501,7 +118345,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } _ = libc.Int32FromInt32(0) if eMode == int32(PAGER_LOCKINGMODE_EXCLUSIVE) { - zRet = __ccgo_ts + 17739 + zRet = __ccgo_ts + 17826 } _returnSingleText(tls, v, zRet) break @@ -117796,7 +118640,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if *(*uint8)(unsafe.Pointer(zRight)) != 0 { rc = _sqlite3OsAccess(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, zRight, int32(SQLITE_ACCESS_READWRITE), bp+72) if rc != SQLITE_OK || *(*int32)(unsafe.Pointer(bp + 72)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17963, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18050, 0) Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) goto pragma_out } @@ -117806,7 +118650,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } Xsqlite3_free(tls, Xsqlite3_temp_directory) if *(*uint8)(unsafe.Pointer(zRight)) != 0 { - Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+176, zRight)) + Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+176, zRight)) } else { Xsqlite3_temp_directory = uintptr(0) } @@ -117828,7 +118672,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _returnSingleInt(tls, v, int64(int32((*TDb)(unsafe.Pointer(pDb)).Fsafety_level)-int32(1))) } else { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17988, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18075, 0) } else { if iDb != int32(1) { iLevel = (int32(_getSafetyLevel(tls, zRight, 0, uint8(1))) + int32(1)) & int32(PAGER_SYNCHRONOUS_MASK) @@ -117861,7 +118705,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if mask == uint64(SQLITE_DeferFKs) { (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = 0 } - if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18041) == 0 { + if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18128) == 0 { /* IMP: R-60817-01178 If the argument is "RESET" then schema ** writing is disabled (as with "PRAGMA writable_schema=OFF") and, ** in addition, the schema is reloaded. */ @@ -117944,9 +118788,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - v14 = __ccgo_ts + 18047 + v14 = __ccgo_ts + 18134 } else { - v14 = __ccgo_ts + 18055 + v14 = __ccgo_ts + 18142 } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 { v15 = int32(1) @@ -117958,7 +118802,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v16 = *(*uintptr)(unsafe.Pointer(pColExpr + 8)) } - _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1657), v15, v16, k, isHidden)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1671), v15, v16, k, isHidden)) goto _12 _12: ; @@ -118017,7 +118861,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pTab1 = (*THashElem)(unsafe.Pointer(k1)).Fdata if int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) == 0 { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18062, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18149, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 80)) = uintptr(0) Xsqlite3_prepare(tls, db, zSql, -int32(1), bp+80, uintptr(0)) @@ -118025,7 +118869,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3DbFree(tls, db, zSql) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1627, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1641, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) } pHash = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FpSchema + 8 @@ -118047,19 +118891,19 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _20 } if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 10805 + zType = __ccgo_ts + 10930 } else { if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 13053 + zType = __ccgo_ts + 13178 } else { if (*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Shadow) != 0 { - zType = __ccgo_ts + 18078 + zType = __ccgo_ts + 18165 } else { - zType = __ccgo_ts + 9067 + zType = __ccgo_ts + 9192 } } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18085, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18172, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) goto _20 _20: ; @@ -118107,9 +118951,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v22 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab3)).FaCol + uintptr(cnum)*16))).FzCnName } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18092, libc.VaList(bp+176, i1, int32(cnum), v22)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18179, libc.VaList(bp+176, i1, int32(cnum), v22)) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18097, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) + _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18184, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) } _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), int32(1), (*TParse)(unsafe.Pointer(pParse)).FnMem) goto _21 @@ -118133,11 +118977,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } azOrigin = [3]uintptr{ - 0: __ccgo_ts + 18102, - 1: __ccgo_ts + 18104, - 2: __ccgo_ts + 16591, + 0: __ccgo_ts + 18189, + 1: __ccgo_ts + 18191, + 2: __ccgo_ts + 16678, } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18106, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18193, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) goto _23 _23: ; @@ -118157,7 +119001,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _24 } _ = libc.Int32FromInt32(0) - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18112, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18199, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) goto _24 _24: ; @@ -118174,7 +119018,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pColl = (*THashElem)(unsafe.Pointer(p)).Fdata v26 = i4 i4++ - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18116, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18203, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) goto _25 _25: ; @@ -118226,7 +119070,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } pMod = (*THashElem)(unsafe.Pointer(j1)).Fdata - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7626, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7751, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) goto _30 _30: ; @@ -118238,7 +119082,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i6 < int32(libc.Uint64FromInt64(1584)/libc.Uint64FromInt64(24))) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7626, libc.VaList(bp+176, _aPragmaName[i6].FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7751, libc.VaList(bp+176, _aPragmaName[i6].FzName)) goto _31 _31: ; @@ -118264,7 +119108,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(j2 < (*TFKey)(unsafe.Pointer(pFK)).FnCol) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18119, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18128)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18206, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+18215)) goto _32 _32: ; @@ -118410,7 +119254,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regResult+int32(1)) } - _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18133, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) + _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18220, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), regResult, int32(4)) _sqlite3VdbeResolveLabel(tls, v, addrOk) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 96))) @@ -118480,7 +119324,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p /* Set the maximum error count */ *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) if zRight != 0 { - if _sqlite3GetInt32(tls, zRight, bp+104) != 0 { + if _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pValue)).Fz, bp+104) != 0 { if *(*int32)(unsafe.Pointer(bp + 104)) <= 0 { *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) } @@ -118500,8 +119344,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i9 < (*Tsqlite3)(unsafe.Pointer(db)).FnDb) { break } /* Array of root page numbers of all btrees */ - cnt = 0 /* Number of entries in aRoot[] */ - mxIdx = 0 /* Maximum number of indexes for any table */ + cnt = 0 /* Number of entries in aRoot[] */ if libc.Bool(OMIT_TEMPDB != 0) && i9 == int32(1) { goto _40 } @@ -118543,9 +119386,6 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pIdx3 = (*TIndex)(unsafe.Pointer(pIdx3)).FpNext nIdx++ } - if nIdx > mxIdx { - mxIdx = nIdx - } goto _41 _41: ; @@ -118601,16 +119441,78 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } *(*int32)(unsafe.Pointer(aRoot)) = cnt /* Make sure sufficient number of registers have been allocated */ - _sqlite3TouchRegister(tls, pParse, int32(8)+mxIdx) + _sqlite3TouchRegister(tls, pParse, int32(8)+cnt) _sqlite3ClearTempRegCache(tls, pParse) /* Do the b-tree integrity checks */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(2), cnt, int32(1), aRoot, -int32(14)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(1), cnt, int32(8), aRoot, -int32(14)) _sqlite3VdbeChangeP5(tls, v, uint16(uint8(i9))) addr1 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(2)) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18137, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+18224, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(2), int32(3), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, addr1) + /* Check that the indexes all have the right number of rows */ + if pObjTab != 0 { + v48 = int32(1) + } else { + v48 = 0 + } + cnt = v48 + _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18248) + x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst + for { + if !(x2 != 0) { + break + } + iTab = 0 + pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab9 { + goto _49 + } + if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + v50 = cnt + cnt++ + iTab = v50 + } else { + iTab = cnt + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx5 + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { + break + } + iTab++ + goto _51 + _51: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + } + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if (*TIndex)(unsafe.Pointer(pIdx5)).FpPartIdxWhere == uintptr(0) { + addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+cnt, 0, int32(8)+iTab) + _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) + _integrityCheckResultRow(tls, v) + _sqlite3VdbeJumpHere(tls, v, addr1) + } + cnt++ + goto _52 + _52: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + goto _49 + _49: + ; + x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext + } /* Make sure all the indices are constructed correctly. */ x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst @@ -118618,39 +119520,39 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata pPrior = uintptr(0) r1 = -int32(1) /* Maximum non-virtual column number */ - if pObjTab != 0 && pObjTab != pTab9 { - goto _48 + if pObjTab != 0 && pObjTab != pTab10 { + goto _53 } - if !(int32((*TTable)(unsafe.Pointer(pTab9)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { - goto _48 + if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _53 } - if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { pPk1 = uintptr(0) r2 = 0 } else { - pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab9) + pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab10) r2 = _sqlite3GetTempRange(tls, pParse, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), int32(1), r2, r2+int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)-int32(1)) } - _sqlite3OpenTableAndIndices(tls, pParse, pTab9, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) + _sqlite3OpenTableAndIndices(tls, pParse, pTab10, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) /* reg[7] counts the number of entries in the table. ** reg[8+i] counts the number of entries in the i-th index */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(7)) j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(8)+j4) /* index entries counter */ - goto _49 - _49: + goto _54 + _54: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } _ = libc.Int32FromInt32(0) @@ -118663,29 +119565,29 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** by the OP_IsType code, so it is a required step. */ _ = libc.Int32FromInt32(0) - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { mxCol = -int32(1) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { + if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { mxCol++ } - goto _50 - _50: + goto _55 + _55: ; j4++ } - if mxCol == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { + if mxCol == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { mxCol-- } } else { /* COLFLAG_VIRTUAL columns are not included in the WITHOUT ROWID ** PK index column-count, so there is no need to account for them ** in this case. */ - mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab9))).FnColumn) - int32(1) + mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab10))).FnColumn) - int32(1) } if mxCol >= 0 { _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 108)), mxCol, int32(3)) @@ -118695,7 +119597,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if pPk1 != 0 { a1 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 108)), 0, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), r2) - zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18161, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18277, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a1) @@ -118706,8 +119608,8 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprCodeLoadIndexColumn(tls, pParse, pPk1, *(*int32)(unsafe.Pointer(bp + 108)), j4, r2+j4) - goto _51 - _51: + goto _56 + _56: ; j4++ } @@ -118722,15 +119624,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** (4) Datatype for numeric columns in non-STRICT tables must not ** be a TEXT value that can be losslessly converted to numeric. */ - bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_Strict) != uint32(0)) + bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_Strict) != uint32(0)) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - pCol1 = (*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ - if j4 == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { - goto _52 + pCol1 = (*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ + if j4 == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { + goto _57 } if bStrict != 0 { doTypeCheck = libc.BoolInt32(int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4)) > int32(COLTYPE_ANY)) @@ -118738,28 +119640,28 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p doTypeCheck = libc.BoolInt32(int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) > int32(SQLITE_AFF_BLOB)) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf>>0)) == 0 && !(doTypeCheck != 0) { - goto _52 + goto _57 } /* Compute the operands that will be needed for OP_IsType */ p4 = int32(SQLITE_NULL) if int32((*TColumn)(unsafe.Pointer(pCol1)).FcolFlags)&int32(COLFLAG_VIRTUAL) != 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) p11 = -int32(1) p3 = int32(3) } else { if (*TColumn)(unsafe.Pointer(pCol1)).FiDflt != 0 { *(*uintptr)(unsafe.Pointer(bp + 120)) = uintptr(0) - _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab9, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol1)).Faffinity, bp+120) + _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab10, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol1)).Faffinity, bp+120) if *(*uintptr)(unsafe.Pointer(bp + 120)) != 0 { p4 = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) } } p11 = *(*int32)(unsafe.Pointer(bp + 108)) - if !((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { - p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab9), int16(j4))) + if !((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { + p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab10), int16(j4))) } else { - p3 = int32(_sqlite3TableColumnToStorage(tls, pTab9, int16(j4))) + p3 = int32(_sqlite3TableColumnToStorage(tls, pTab10, int16(j4))) } } labelError = _sqlite3VdbeMakeLabel(tls, pParse) @@ -118776,10 +119678,10 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** is REAL, we have to load the actual data using OP_Column ** to reliably determine if the value is a NULL. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), p11, p3, int32(3)) - _sqlite3ColumnDefault(tls, v, pTab9, j4, int32(3)) + _sqlite3ColumnDefault(tls, v, pTab10, j4, int32(3)) jmp3 = _sqlite3VdbeAddOp2(tls, v, int32(OP_NotNull), int32(3), labelOk) } - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18197, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18313, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) if doTypeCheck != 0 { _sqlite3VdbeGoto(tls, v, labelError) @@ -118793,7 +119695,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _ = libc.Int32FromInt32(0) _sqlite3VdbeChangeP5(tls, v, uint16(_aStdTypeMask[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)])) - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18217, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18333, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) == int32(SQLITE_AFF_TEXT) { @@ -118801,7 +119703,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** NULL, TEXT, or BLOB. */ _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18239, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18355, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) >= int32(SQLITE_AFF_NUMERIC) { @@ -118810,12 +119712,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1b)) /* NULL, INT, FLOAT, or BLOB */ if p11 >= 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18262, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18378, -int32(1)) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), -int32(1), labelOk, int32(3), p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18264, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18380, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } } @@ -118823,14 +119725,14 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeResolveLabel(tls, v, labelError) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, labelOk) - goto _52 - _52: + goto _57 + _57: ; j4++ } /* Verify CHECK constraints */ - if (*TTable)(unsafe.Pointer(pTab9)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { - pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab9)).FpCheck, 0) + if (*TTable)(unsafe.Pointer(pTab10)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { + pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab10)).FpCheck, 0) if int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { addrCkFault = _sqlite3VdbeMakeLabel(tls, pParse) addrCkOk = _sqlite3VdbeMakeLabel(tls, pParse) @@ -118841,15 +119743,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprIfFalse(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8 + uintptr(k3)*32))).FpExpr, addrCkFault, 0) - goto _53 - _53: + goto _58 + _58: ; k3-- } _sqlite3ExprIfTrue(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8))).FpExpr, addrCkOk, int32(SQLITE_JUMPIFNULL)) _sqlite3VdbeResolveLabel(tls, v, addrCkFault) (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 - zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18284, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18400, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr2, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, addrCkOk) @@ -118859,25 +119761,25 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(isQuick != 0) { /* Omit the remaining tests for quick_check */ /* Validate index entries for the current row */ j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } ckUniq = _sqlite3VdbeMakeLabel(tls, pParse) - if pPk1 == pIdx5 { - goto _54 + if pPk1 == pIdx6 { + goto _59 } - r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx5, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) - pPrior = pIdx5 + r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx6, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) + pPrior = pIdx6 _sqlite3VdbeAddOp2(tls, v, int32(OP_AddImm), int32(8)+j4, int32(1)) /* increment entry count */ /* Verify that an index entry exists for the current table row */ - jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18314) + jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18430) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18319) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18435) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) - jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx6)).FzName) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) jmp4 = _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, jmp21) @@ -118885,12 +119787,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** that extracts the rowid off the end of the index record. ** But it only works correctly if index record does not have ** any extra bytes at the end. Verify that this is the case. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { _sqlite3VdbeAddOp2(tls, v, int32(OP_IdxRowid), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)-int32(1)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18340) + jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)-int32(1)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18456) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18376) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18492) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp7) } @@ -118899,101 +119801,77 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p label6 = 0 kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { - goto _55 + if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { + goto _60 } if label6 == 0 { label6 = _sqlite3VdbeMakeLabel(tls, pParse) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 112))+j4, kk, int32(3)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ne), int32(3), label6, r1+kk) - goto _55 - _55: + goto _60 + _60: ; kk++ } if label6 != 0 { jmp6 = _sqlite3VdbeAddOp0(tls, v, int32(OP_Goto)) _sqlite3VdbeResolveLabel(tls, v, label6) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18314) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18430) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18387) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18503) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp6) } /* For UNIQUE indexes, verify that only one entry exists with the ** current key. The entry is unique if (1) any column is NULL ** or (2) the next entry has a different key */ - if int32((*TIndex)(unsafe.Pointer(pIdx5)).FonError) != OE_None { + if int32((*TIndex)(unsafe.Pointer(pIdx6)).FonError) != OE_None { uniqOk = _sqlite3VdbeMakeLabel(tls, pParse) kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FaiColumn + uintptr(kk)*2))) + iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FaiColumn + uintptr(kk)*2))) _ = libc.Int32FromInt32(0) - if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { - goto _56 + if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { + goto _61 } _sqlite3VdbeAddOp2(tls, v, int32(OP_IsNull), r1+kk, uniqOk) - goto _56 - _56: + goto _61 + _61: ; kk++ } jmp61 = _sqlite3VdbeAddOp1(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 112))+j4) _sqlite3VdbeGoto(tls, v, uniqOk) _sqlite3VdbeJumpHere(tls, v, jmp61) - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18414) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18530) _sqlite3VdbeGoto(tls, v, jmp5) _sqlite3VdbeResolveLabel(tls, v, uniqOk) } _sqlite3VdbeJumpHere(tls, v, jmp4) _sqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp + 128))) - goto _54 - _54: + goto _59 + _59: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } } _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 108)), loopTop) _sqlite3VdbeJumpHere(tls, v, loopTop-int32(1)) - if !(isQuick != 0) { - _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18441) - j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex - for { - if !(pIdx5 != 0) { - break - } - if pPk1 == pIdx5 { - goto _57 - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+j4, 0, int32(3)) - _sqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL)) - _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) - _integrityCheckResultRow(tls, v) - _sqlite3VdbeJumpHere(tls, v, addr1) - goto _57 - _57: - ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext - j4++ - } - if pPk1 != 0 { - _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) - } + if pPk1 != 0 { + _ = libc.Int32FromInt32(0) + _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) } - goto _48 - _48: + goto _53 + _53: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -119005,60 +119883,60 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata - if pObjTab != 0 && pObjTab != pTab10 { - goto _58 + pTab11 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab11 { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == TABTYP_NORM { - goto _58 + if int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == TABTYP_NORM { + goto _62 } - if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { - goto _58 + if !(int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FnCol) <= 0 { + if int32((*TTable)(unsafe.Pointer(pTab11)).FnCol) <= 0 { zMod = *(*uintptr)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).FazArg)) + })(unsafe.Pointer(pTab11 + 64))).FazArg)) if _sqlite3HashFind(tls, db+576, zMod) == uintptr(0) { - goto _58 + goto _62 } } - _sqlite3ViewGetColumnNames(tls, pParse, pTab10) + _sqlite3ViewGetColumnNames(tls, pParse, pTab11) if (*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp == uintptr(0) { - goto _58 + })(unsafe.Pointer(pTab11 + 64))).Fp == uintptr(0) { + goto _62 } pVTab = (*TVTable)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp)).FpVtab + })(unsafe.Pointer(pTab11 + 64))).Fp)).FpVtab if pVTab == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FiVersion < int32(4) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FxIntegrity == uintptr(0) { - goto _58 + goto _62 } _sqlite3VdbeAddOp3(tls, v, int32(OP_VCheck), i9, int32(3), isQuick) - (*TTable)(unsafe.Pointer(pTab10)).FnTabRef++ - _sqlite3VdbeAppendP4(tls, v, pTab10, -int32(16)) + (*TTable)(unsafe.Pointer(pTab11)).FnTabRef++ + _sqlite3VdbeAppendP4(tls, v, pTab11, -int32(16)) a11 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a11) - goto _58 - goto _58 - _58: + goto _62 + goto _62 + _62: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -119071,7 +119949,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if aOp2 != 0 { (*(*TVdbeOp)(unsafe.Pointer(aOp2))).Fp2 = int32(1) - *(*int32)(unsafe.Pointer(bp + 104)) (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 2*24))).Fp4type = int8(-libc.Int32FromInt32(1)) - *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18470 + *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18557 (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 5*24))).Fp4type = int8(-libc.Int32FromInt32(1)) *(*uintptr)(unsafe.Pointer(aOp2 + 5*24 + 16)) = _sqlite3ErrStr(tls, int32(SQLITE_CORRUPT)) } @@ -119132,20 +120010,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc != 0 { - v60 = int32((*struct { + v64 = int32((*struct { FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc) } else { - v60 = int32(SQLITE_UTF16BE) + v64 = int32(SQLITE_UTF16BE) } - enc = uint8(v60) + enc = uint8(v64) (*TSchema)(unsafe.Pointer((*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema)).Fenc = enc _sqlite3SetTextEncoding(tls, db, enc) break } - goto _59 - _59: + goto _63 + _63: ; pEnc += 16 } @@ -119153,7 +120031,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).FzName != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18531, libc.VaList(bp+176, zRight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18618, libc.VaList(bp+176, zRight)) } } } @@ -119231,11 +120109,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p i10 = 0 (*TParse)(unsafe.Pointer(pParse)).FnMem = int32(1) for { - v62 = i10 + v66 = i10 i10++ - v61 = Xsqlite3_compileoption_get(tls, v62) - zOpt = v61 - if !(v61 != uintptr(0)) { + v65 = Xsqlite3_compileoption_get(tls, v66) + zOpt = v65 + if !(v65 != uintptr(0)) { break } _sqlite3VdbeLoadString(tls, v, int32(1), zOpt) @@ -119251,20 +120129,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p fallthrough case int32(PragTyp_WAL_CHECKPOINT): if (*TToken)(unsafe.Pointer(pId2)).Fz != 0 { - v63 = iDb + v67 = iDb } else { - v63 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) + v67 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) } - iBt = v63 + iBt = v67 eMode2 = SQLITE_CHECKPOINT_PASSIVE if zRight != 0 { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17756) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17843) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_FULL) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18556) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18643) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_RESTART) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17909) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+17996) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_TRUNCATE) } } @@ -119288,11 +120166,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p Xsqlite3_wal_autocheckpoint(tls, db, _sqlite3Atoi(tls, zRight)) } if (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback == __ccgo_fp(_sqlite3WalDefaultHook) { - v64 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) + v68 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) } else { - v64 = 0 + v68 = 0 } - _returnSingleInt(tls, v, int64(v64)) + _returnSingleInt(tls, v, int64(v68)) break /* ** PRAGMA shrink_memory @@ -119320,47 +120198,68 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** ** The optional argument is a bitmask of optimizations to perform: ** - ** 0x0001 Debugging mode. Do not actually perform any optimizations - ** but instead return one line of text for each optimization - ** that would have been done. Off by default. + ** 0x00001 Debugging mode. Do not actually perform any optimizations + ** but instead return one line of text for each optimization + ** that would have been done. Off by default. ** - ** 0x0002 Run ANALYZE on tables that might benefit. On by default. - ** See below for additional information. + ** 0x00002 Run ANALYZE on tables that might benefit. On by default. + ** See below for additional information. ** - ** 0x0004 (Not yet implemented) Record usage and performance - ** information from the current session in the - ** database file so that it will be available to "optimize" - ** pragmas run by future database connections. + ** 0x00010 Run all ANALYZE operations using an analysis_limit that + ** is the lessor of the current analysis_limit and the + ** SQLITE_DEFAULT_OPTIMIZE_LIMIT compile-time option. + ** The default value of SQLITE_DEFAULT_OPTIMIZE_LIMIT is + ** currently (2024-02-19) set to 2000, which is such that + ** the worst case run-time for PRAGMA optimize on a 100MB + ** database will usually be less than 100 milliseconds on + ** a RaspberryPI-4 class machine. On by default. ** - ** 0x0008 (Not yet implemented) Create indexes that might have - ** been helpful to recent queries + ** 0x10000 Look at tables to see if they need to be reanalyzed + ** due to growth or shrinkage even if they have not been + ** queried during the current connection. Off by default. ** - ** The default MASK is and always shall be 0xfffe. 0xfffe means perform all - ** of the optimizations listed above except Debug Mode, including new - ** optimizations that have not yet been invented. If new optimizations are - ** ever added that should be off by default, those off-by-default - ** optimizations will have bitmasks of 0x10000 or larger. + ** The default MASK is and always shall be 0x0fffe. In the current + ** implementation, the default mask only covers the 0x00002 optimization, + ** though additional optimizations that are covered by 0x0fffe might be + ** added in the future. Optimizations that are off by default and must + ** be explicitly requested have masks of 0x10000 or greater. ** ** DETERMINATION OF WHEN TO RUN ANALYZE ** ** In the current implementation, a table is analyzed if only if all of ** the following are true: ** - ** (1) MASK bit 0x02 is set. + ** (1) MASK bit 0x00002 is set. + ** + ** (2) The table is an ordinary table, not a virtual table or view. ** - ** (2) The query planner used sqlite_stat1-style statistics for one or - ** more indexes of the table at some point during the lifetime of - ** the current connection. + ** (3) The table name does not begin with "sqlite_". ** - ** (3) One or more indexes of the table are currently unanalyzed OR - ** the number of rows in the table has increased by 25 times or more - ** since the last time ANALYZE was run. + ** (4) One or more of the following is true: + ** (4a) The 0x10000 MASK bit is set. + ** (4b) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. + ** (4c) The query planner used sqlite_stat1-style statistics for one + ** or more indexes of the table at some point during the lifetime + ** of the current connection. + ** + ** (5) One or more of the following is true: + ** (5a) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. (Same as 4a) + ** (5b) The number of rows in the table has increased or decreased by + ** 10-fold. In other words, the current size of the table is + ** 10 times larger than the size in sqlite_stat1 or else the + ** current size is less than 1/10th the size in sqlite_stat1. ** ** The rules for when tables are analyzed are likely to change in - ** future releases. + ** future releases. Future versions of SQLite might accept a string + ** literal argument to this pragma that contains a mnemonic description + ** of the options rather than a bitmap. */ fallthrough - case int32(PragTyp_OPTIMIZE): /* Mask of operations to perform */ + case int32(PragTyp_OPTIMIZE): /* Analysis limit to use */ + nCheck = 0 /* Number of tables to be optimized */ + nBtree = 0 /* Number of indexes on the current table */ if zRight != 0 { opMask = uint32(_sqlite3Atoi(tls, zRight)) if opMask&uint32(0x02) == uint32(0) { @@ -119369,22 +120268,31 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { opMask = uint32(0xfffe) } - v66 = pParse + 52 - v65 = *(*int32)(unsafe.Pointer(v66)) - *(*int32)(unsafe.Pointer(v66))++ - iTabCur = v65 + if opMask&uint32(0x10) == uint32(0) { + nLimit = 0 + } else { + if (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit > 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit < int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) { + nLimit = 0 + } else { + nLimit = int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) + } + } + v70 = pParse + 52 + v69 = *(*int32)(unsafe.Pointer(v70)) + *(*int32)(unsafe.Pointer(v70))++ + iTabCur = v69 if zDb != 0 { - v68 = iDb + v72 = iDb } else { - v68 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) + v72 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) } - iDbLast = v68 + iDbLast = v72 for { if !(iDb <= iDbLast) { break } if iDb == int32(1) { - goto _67 + goto _71 } _sqlite3CodeVerifySchema(tls, pParse, iDb) pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema @@ -119393,53 +120301,122 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(k4 != 0) { break } - pTab11 = (*THashElem)(unsafe.Pointer(k4)).Fdata - /* If table pTab has not been used in a way that would benefit from - ** having analysis statistics during the current session, then skip it. - ** This also has the effect of skipping virtual tables and views */ - if (*TTable)(unsafe.Pointer(pTab11)).FtabFlags&uint32(TF_StatsUsed) == uint32(0) { - goto _69 + pTab12 = (*THashElem)(unsafe.Pointer(k4)).Fdata + /* This only works for ordinary tables */ + if !(int32((*TTable)(unsafe.Pointer(pTab12)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _73 } - /* Reanalyze if the table is 25 times larger than the last analysis */ - szThreshold = int16(int32((*TTable)(unsafe.Pointer(pTab11)).FnRowLogEst) + int32(46)) - _ = libc.Int32FromInt32(0) - pIdx6 = (*TTable)(unsafe.Pointer(pTab11)).FpIndex + /* Do not scan system tables */ + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab12)).FzName, __ccgo_ts+6598, int32(7)) { + goto _73 + } + /* Find the size of the table as last recorded in sqlite_stat1. + ** If any index is unanalyzed, then the threshold is -1 to + ** indicate a new, unanalyzed index + */ + szThreshold = (*TTable)(unsafe.Pointer(pTab12)).FnRowLogEst + nIndex = 0 + pIdx7 = (*TTable)(unsafe.Pointer(pTab12)).FpIndex for { - if !(pIdx6 != 0) { + if !(pIdx7 != 0) { break } - if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx6 + 100))&0x80>>7)) != 0) { - szThreshold = 0 /* Always analyze if any index lacks statistics */ - break + nIndex++ + if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx7 + 100))&0x80>>7)) != 0) { + szThreshold = int16(-int32(1)) /* Always analyze if any index lacks statistics */ } - goto _70 - _70: + goto _74 + _74: ; - pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext + pIdx7 = (*TIndex)(unsafe.Pointer(pIdx7)).FpNext + } + /* If table pTab has not been used in a way that would benefit from + ** having analysis statistics during the current session, then skip it, + ** unless the 0x10000 MASK bit is set. */ + if (*TTable)(unsafe.Pointer(pTab12)).FtabFlags&uint32(TF_MaybeReanalyze) != uint32(0) { + /* Check for size change if stat1 has been used for a query */ + } else { + if opMask&uint32(0x10000) != 0 { + /* Check for size change if 0x10000 is set */ + } else { + if (*TTable)(unsafe.Pointer(pTab12)).FpIndex != uintptr(0) && int32(szThreshold) < 0 { + /* Do analysis if unanalyzed indexes exists */ + } else { + /* Otherwise, we can skip this table */ + goto _73 + } + } } - if szThreshold != 0 { - _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab11, int32(OP_OpenRead)) - _sqlite3VdbeAddOp3(tls, v, int32(OP_IfSmaller), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), int32(szThreshold)) + nCheck++ + if nCheck == int32(2) { + /* If ANALYZE might be invoked two or more times, hold a write + ** transaction for efficiency */ + _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) + } + nBtree += nIndex + int32(1) + /* Reanalyze if the table is 10 times larger or smaller than + ** the last analysis. Unconditional reanalysis if there are + ** unanalyzed indexes. */ + _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab12, int32(OP_OpenRead)) + if int32(szThreshold) >= 0 { + iRange = int16(33) /* 10x size change */ + if int32(szThreshold) >= int32(iRange) { + v75 = int32(szThreshold) - int32(iRange) + } else { + v75 = -int32(1) + } + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IfSizeBetween), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), v75, int32(szThreshold)+int32(iRange)) + } else { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1))) } - zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18564, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab11)).FzName)) + zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18651, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab12)).FzName)) if opMask&uint32(0x01) != 0 { r11 = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, r11, 0, zSubSql, -int32(6)) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), r11, int32(1)) } else { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), 0, 0, 0, zSubSql, -int32(6)) + if nLimit != 0 { + v76 = int32(0x02) + } else { + v76 = 00 + } + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), v76, nLimit, 0, zSubSql, -int32(6)) } - goto _69 - _69: + goto _73 + _73: ; k4 = (*THashElem)(unsafe.Pointer(k4)).Fnext } - goto _67 - _67: + goto _71 + _71: ; iDb++ } _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) + /* In a schema with a large number of tables and indexes, scale back + ** the analysis_limit to avoid excess run-time in the worst case. + */ + if !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && nLimit > 0 && nBtree > int32(100) { + nLimit = int32(100) * nLimit / nBtree + if nLimit < int32(100) { + nLimit = int32(100) + } + aOp5 = _sqlite3VdbeGetOp(tls, v, 0) + iEnd = _sqlite3VdbeCurrentAddr(tls, v) + iAddr1 = 0 + for { + if !(iAddr1 < iEnd) { + break + } + if int32((*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fopcode) == int32(OP_SqlExec) { + (*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fp2 = nLimit + } + goto _77 + _77: + ; + iAddr1++ + } + } break /* ** PRAGMA busy_timeout @@ -119534,6 +120511,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** instructions to the VM. */ if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_NoColumns1) != 0 && zRight != 0 { } + goto pragma_out pragma_out: ; _sqlite3DbFree(tls, db, zLeft) @@ -119665,34 +120643,34 @@ var _encnames1 = [9]struct { Fenc Tu8 }{ 0: { - FzName: __ccgo_ts + 18473, + FzName: __ccgo_ts + 18560, Fenc: uint8(SQLITE_UTF8), }, 1: { - FzName: __ccgo_ts + 18478, + FzName: __ccgo_ts + 18565, Fenc: uint8(SQLITE_UTF8), }, 2: { - FzName: __ccgo_ts + 18484, + FzName: __ccgo_ts + 18571, Fenc: uint8(SQLITE_UTF16LE), }, 3: { - FzName: __ccgo_ts + 18493, + FzName: __ccgo_ts + 18580, Fenc: uint8(SQLITE_UTF16BE), }, 4: { - FzName: __ccgo_ts + 18502, + FzName: __ccgo_ts + 18589, Fenc: uint8(SQLITE_UTF16LE), }, 5: { - FzName: __ccgo_ts + 18510, + FzName: __ccgo_ts + 18597, Fenc: uint8(SQLITE_UTF16BE), }, 6: { - FzName: __ccgo_ts + 18518, + FzName: __ccgo_ts + 18605, }, 7: { - FzName: __ccgo_ts + 18525, + FzName: __ccgo_ts + 18612, }, 8: {}, } @@ -119788,14 +120766,14 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg _ = argc _ = argv _sqlite3StrAccumInit(tls, bp, uintptr(0), bp+32, int32(200), 0) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18582) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18669) i = 0 j = int32((*TPragmaName)(unsafe.Pointer(pPragma)).FiPragCName) for { if !(i < int32((*TPragmaName)(unsafe.Pointer(pPragma)).FnPragCName)) { break } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18597, libc.VaList(bp+240, int32(cSep), _pragCName[j])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18684, libc.VaList(bp+240, int32(cSep), _pragCName[j])) cSep = uint8(',') goto _1 _1: @@ -119804,19 +120782,19 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg j++ } if i == 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18604, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18691, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) i++ } j = 0 if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_Result1) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18610) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18697) j++ } if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&(libc.Int32FromInt32(PragFlg_SchemaOpt)|libc.Int32FromInt32(PragFlg_SchemaReq)) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18622) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18709) j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5115, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5179, int32(1)) _sqlite3StrAccumFinish(tls, bp) _ = libc.Int32FromInt32(0) rc = Xsqlite3_declare_vtab(tls, db, bp+32) @@ -119832,7 +120810,7 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg (*TPragmaVtab)(unsafe.Pointer(pTab)).FnHidden = uint8(j) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) } *(*uintptr)(unsafe.Pointer(ppVtab)) = pTab return rc @@ -119878,14 +120856,14 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) { break } - if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { goto _1 } if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fop) != int32(SQLITE_INDEX_CONSTRAINT_EQ) { goto _1 } - if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { - goto _1 + if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + return int32(SQLITE_CONSTRAINT) } j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn - int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) _ = libc.Int32FromInt32(0) @@ -119904,16 +120882,13 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 j = seen[0] - int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) - if seen[int32(1)] == 0 { - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(1000) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(1000) - return SQLITE_OK - } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(20) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(20) - j = seen[int32(1)] - int32(1) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + if seen[int32(1)] != 0 { + j = seen[int32(1)] - int32(1) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + } return SQLITE_OK } @@ -119941,6 +120916,7 @@ func _pragmaVtabCursorClear(tls *libc.TLS, pCsr uintptr) { _ = i Xsqlite3_finalize(tls, (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma) (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma = uintptr(0) + (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FiRowid = 0 i = 0 for { if !(i < int32(libc.Uint64FromInt64(16)/libc.Uint64FromInt64(8))) { @@ -120019,7 +120995,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if zText != 0 { - *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+40, zText)) + *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+40, zText)) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -120031,13 +121007,13 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr j++ } _sqlite3StrAccumInit(tls, bp, uintptr(0), uintptr(0), 0, *(*int32)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb + 136 + 1*4))) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18637) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18724) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18645, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18732, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) } Xsqlite3_str_appendall(tls, bp, (*TPragmaName)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).FpName)).FzName) if *(*uintptr)(unsafe.Pointer(pCsr + 24)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18649, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18736, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) } zSql = _sqlite3StrAccumFinish(tls, bp) if zSql == uintptr(0) { @@ -120046,7 +121022,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr rc = Xsqlite3_prepare_v2(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), pCsr+8, uintptr(0)) Xsqlite3_free(tls, zSql) if rc != SQLITE_OK { - (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) + (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) return rc } return _pragmaVtabNext(tls, pVtabCursor) @@ -120174,24 +121150,24 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) /* A error message has already been generated. Do not overwrite it */ } else { if (*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(libc.Int32FromInt32(INITFLAG_AlterMask)) != 0 { - *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18683, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) + *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18770, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) (*TInitData)(unsafe.Pointer(pData)).Frc = int32(SQLITE_ERROR) } else { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_WriteSchema) != 0 { - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140891)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141840)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) } else { - v1 = __ccgo_ts + 5117 + v1 = __ccgo_ts + 5181 } zObj = v1 - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18711, libc.VaList(bp+8, zObj)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18798, libc.VaList(bp+8, zObj)) if zExtra != 0 && *(*uint8)(unsafe.Pointer(zExtra)) != 0 { - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18742, libc.VaList(bp+8, z, zExtra)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18829, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140898)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141847)) } } } @@ -120199,9 +121175,9 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) } var _azAlterType = [3]uintptr{ - 0: __ccgo_ts + 18653, - 1: __ccgo_ts + 18660, - 2: __ccgo_ts + 18672, + 0: __ccgo_ts + 18740, + 1: __ccgo_ts + 18747, + 2: __ccgo_ts + 18759, } // C documentation @@ -120281,7 +121257,7 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(iDb) if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), db+192) == 0 || (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage && (*TInitData)(unsafe.Pointer(pData)).FmxPage > uint32(0) { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14525) + _corruptSchema(tls, pData, argv, __ccgo_ts+14618) } } libc.SetBitFieldPtr8Uint32(db+192+8, libc.Uint32FromInt32(0), 0, 0x1) @@ -120316,11 +121292,11 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr } else { pIndex = _sqlite3FindIndex(tls, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName) if pIndex == uintptr(0) { - _corruptSchema(tls, pData, argv, __ccgo_ts+18750) + _corruptSchema(tls, pData, argv, __ccgo_ts+18837) } else { if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), pIndex+88) == 0 || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum < uint32(2) || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage || _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+14525) + _corruptSchema(tls, pData, argv, __ccgo_ts+14618) } } } @@ -120364,18 +121340,18 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** table name will be inserted automatically by the parser so we can just ** use the abbreviation "x" here. The parser will also automatically tag ** the schema table as read-only. */ - (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9067 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9192 if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6542 + v2 = __ccgo_ts + 6606 } else { - v2 = __ccgo_ts + 6075 + v2 = __ccgo_ts + 6139 } v1 = v2 zSchemaTabName = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(2)] = (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8139 - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18763 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8264 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 18850 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(5)] = uintptr(0) (*(*TInitData)(unsafe.Pointer(bp + 72))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 72))).FiDb = iDb @@ -120465,7 +121441,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl } else { /* If opening an attached database, the encoding much match ENC(db) */ if (*(*[5]int32)(unsafe.Pointer(bp + 48)))[libc.Int32FromInt32(BTREE_TEXT_ENCODING)-libc.Int32FromInt32(1)]&int32(3) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12104) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12229) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -120491,7 +121467,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = uint8(1) } if int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) > int32(SQLITE_MAX_FILE_FORMAT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18835) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+18922) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -120507,7 +121483,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl */ _ = libc.Int32FromInt32(0) (*(*TInitData)(unsafe.Pointer(bp + 72))).FmxPage = _sqlite3BtreeLastPage(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18859, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18946, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) rc = Xsqlite3_exec(tls, db, zSql, __ccgo_fp(_sqlite3InitCallback), bp+72, uintptr(0)) @@ -120545,12 +121521,14 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** curMain and calling sqlite3BtreeEnter(). For an error that occurs ** before that point, jump to error_out. */ + goto initone_error_out initone_error_out: ; if openedTransaction != 0 { _sqlite3BtreeCommit(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) } _sqlite3BtreeLeave(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) + goto error_out error_out: ; if rc != 0 { @@ -120822,7 +121800,12 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup - pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + if _sqlite3FaultSim(tls, int32(300)) != 0 { + pCleanup = uintptr(0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) + } else { + pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + } if pCleanup != 0 { (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup @@ -120854,7 +121837,7 @@ func _sqlite3ParseObjectInit(tls *libc.TLS, pParse uintptr, db uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FpParse = pParse (*TParse)(unsafe.Pointer(pParse)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1627, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1641, 0) } } @@ -120890,7 +121873,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } _ = libc.Int32FromInt32(0) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1627, 0) + _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1641, 0) v1 = libc.Int32FromInt32(SQLITE_NOMEM) rc = v1 (*Tsqlite3)(unsafe.Pointer(db)).FerrCode = v1 @@ -120941,7 +121924,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep rc = _sqlite3BtreeSchemaLocked(tls, pBt) if rc != 0 { zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FzDbSName - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18893, libc.VaList(bp+432, zDb)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+18980, libc.VaList(bp+432, zDb)) goto end_prepare } } @@ -120957,7 +121940,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep if nBytes >= 0 && (nBytes == 0 || int32(*(*uint8)(unsafe.Pointer(zSql + uintptr(nBytes-int32(1))))) != 0) { mxLen = *(*int32)(unsafe.Pointer(db + 136 + 1*4)) if nBytes > mxLen { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+18923, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+19010, 0) rc = _sqlite3ApiExit(tls, db, int32(SQLITE_TOOBIG)) goto end_prepare } @@ -120993,7 +121976,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep _ = libc.Int32FromInt32(0) rc = (*(*TParse)(unsafe.Pointer(bp))).Frc if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3804, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3868, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) } else { _sqlite3Error(tls, db, rc) @@ -121010,6 +121993,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep (*(*TParse)(unsafe.Pointer(bp))).FpTriggerPrg = (*TTriggerPrg)(unsafe.Pointer(pT)).FpNext _sqlite3DbFree(tls, db, pT) } + goto end_prepare end_prepare: ; _sqlite3ParseObjectReset(tls, bp) @@ -121023,7 +122007,7 @@ func _sqlite3LockAndPrepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int3 cnt = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141699)) + return _sqlite3MisuseError(tls, int32(142654)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -121166,7 +122150,7 @@ func _sqlite3Prepare16(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, pr rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141848)) + return _sqlite3MisuseError(tls, int32(142803)) } if nBytes >= 0 { z = zSql @@ -121576,15 +122560,15 @@ func _sqlite3JoinType(tls *libc.TLS, pParse uintptr, pA uintptr, pB uintptr, pC i++ } if jointype&(libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER)) == libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER) || jointype&int32(JT_ERROR) != 0 || jointype&(libc.Int32FromInt32(JT_OUTER)|libc.Int32FromInt32(JT_LEFT)|libc.Int32FromInt32(JT_RIGHT)) == int32(JT_OUTER) { - zSp1 = __ccgo_ts + 11211 - zSp2 = __ccgo_ts + 11211 + zSp1 = __ccgo_ts + 11336 + zSp2 = __ccgo_ts + 11336 if pB == uintptr(0) { zSp1++ } if pC == uintptr(0) { zSp2++ } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18942, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19029, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) jointype = int32(JT_INNER) } return jointype @@ -121887,7 +122871,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { if int32((*TSrcItem)(unsafe.Pointer(pRight)).Ffg.Fjointype)&int32(JT_NATURAL) != 0 { pUsing = uintptr(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x400>>10)) != 0 || *(*uintptr)(unsafe.Pointer(pRight + 72)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18972, libc.VaList(bp+16, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19059, libc.VaList(bp+16, 0)) return int32(1) } j = 0 @@ -121940,7 +122924,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { zName1 = (*(*TIdList_item)(unsafe.Pointer(pList + 8 + uintptr(j)*16))).FzName iRightCol = _sqlite3ColumnIndex(tls, pRightTab, zName1) if iRightCol < 0 || _tableAndColumnIndex(tls, pSrc, 0, i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19022, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19109, libc.VaList(bp+16, zName1)) return int32(1) } pE1 = _sqlite3CreateColumnExpr(tls, db, pSrc, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) @@ -121962,7 +122946,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { pFuncArgs = uintptr(0) /* Arguments to the coalesce() */ for _tableAndColumnIndex(tls, pSrc, *(*int32)(unsafe.Pointer(bp))+int32(1), i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) != 0 { if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 60 + 4))&0x400>>10)) == 0 || _sqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 72)), zName1) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19086, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19173, libc.VaList(bp+16, zName1)) break } pFuncArgs = _sqlite3ExprListAppend(tls, pParse, pFuncArgs, pE1) @@ -122008,7 +122992,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { } var _tkCoalesce = TToken{ - Fz: __ccgo_ts + 6739, + Fz: __ccgo_ts + 6803, Fn: uint32(8), } @@ -122808,13 +123792,13 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { _ = z switch id { case int32(TK_ALL): - z = __ccgo_ts + 19123 + z = __ccgo_ts + 19210 case int32(TK_INTERSECT): - z = __ccgo_ts + 19133 + z = __ccgo_ts + 19220 case int32(TK_EXCEPT): - z = __ccgo_ts + 19143 + z = __ccgo_ts + 19230 default: - z = __ccgo_ts + 19150 + z = __ccgo_ts + 19237 break } return z @@ -122835,7 +123819,7 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { func _explainTempTable(tls *libc.TLS, pParse uintptr, zUsage uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19156, libc.VaList(bp+8, zUsage)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19243, libc.VaList(bp+8, zUsage)) } /* @@ -122869,12 +123853,17 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, iParm = (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm /* True if sorter record includes seq. no. */ nRefKey = 0 aOutEx = (*TSelect)(unsafe.Pointer(p)).FpEList + 8 - if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat > 0 { - v1 = __ccgo_ts + 19179 + nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat == 0 || nKey == int32(1) { + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat != 0 { + v1 = __ccgo_ts + 19266 + } else { + v1 = __ccgo_ts + 1671 + } + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19280, libc.VaList(bp+8, v1)) } else { - v1 = __ccgo_ts + 1657 + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19311, libc.VaList(bp+8, nKey)) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19194, libc.VaList(bp+8, v1)) _ = libc.Int32FromInt32(0) if (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut != 0 { _sqlite3VdbeAddOp2(tls, v, int32(OP_Gosub), (*TSortCtx)(unsafe.Pointer(pSort)).FregReturn, (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut) @@ -122897,7 +123886,6 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, regRow = _sqlite3GetTempRange(tls, pParse, nColumn) } } - nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat if int32((*TSortCtx)(unsafe.Pointer(pSort)).FsortFlags)&int32(SORTFLAG_UseSorter) != 0 { v3 = pParse + 56 *(*int32)(unsafe.Pointer(v3))++ @@ -123123,7 +124111,7 @@ func _columnTypeImpl(tls *libc.TLS, pNC uintptr, pExpr uintptr, pzOrigDb uintptr _ = libc.Int32FromInt32(0) if iCol < 0 { zType = __ccgo_ts + 1145 - *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16703 + *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16790 } else { *(*uintptr)(unsafe.Pointer(bp + 16)) = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, uintptr(0)) @@ -123276,13 +124264,13 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } _ = libc.Int32FromInt32(0) if iCol < 0 { - zCol = __ccgo_ts + 16703 + zCol = __ccgo_ts + 16790 } else { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } if fullName != 0 { zName1 = uintptr(0) - zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12390, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) + zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12515, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zName1, __ccgo_fp(_sqlite3OomClear)) } else { _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zCol, uintptr(-libc.Int32FromInt32(1))) @@ -123290,7 +124278,7 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } else { z = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32))).FzEName if z == uintptr(0) { - v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19225, libc.VaList(bp+8, i+int32(1))) + v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19357, libc.VaList(bp+8, i+int32(1))) } else { v2 = _sqlite3DbStrDup(tls, db, z) } @@ -123384,7 +124372,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if iCol >= 0 { v3 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } else { - v3 = __ccgo_ts + 16703 + v3 = __ccgo_ts + 16790 } zName = v3 } else { @@ -123400,7 +124388,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if zName != 0 && !(_sqlite3IsTrueOrFalse(tls, zName) != 0) { zName = _sqlite3DbStrDup(tls, db, zName) } else { - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19225, libc.VaList(bp+40, i+int32(1))) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19357, libc.VaList(bp+40, i+int32(1))) } /* Make sure the column name is unique. If the name is not unique, ** append an integer to the name so that it becomes unique. @@ -123436,7 +124424,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, } *(*Tu32)(unsafe.Pointer(bp))++ v8 = *(*Tu32)(unsafe.Pointer(bp)) - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19234, libc.VaList(bp+40, nName, zName, v8)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19366, libc.VaList(bp+40, nName, zName, v8)) _sqlite3ProgressCheck(tls, pParse) if *(*Tu32)(unsafe.Pointer(bp)) > uint32(3) { Xsqlite3_randomness(tls, int32(4), bp) @@ -123496,9 +124484,9 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS defer tls.Free(64) var a, db, p, pCol, pColl, pS2, zType, p4, p5 uintptr var i, j, m int32 - var m1, n Ti64 + var k, n Ti64 var _ /* sNC at bp+0 */ TNameContext - _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, m, m1, n, p, pCol, pColl, pS2, zType, p4, p5 + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, k, m, n, p, pCol, pColl, pS2, zType, p4, p5 db = (*TParse)(unsafe.Pointer(pParse)).Fdb _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -123519,17 +124507,22 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS if !(i < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } + m = 0 + pS2 = pSelect *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags) & libc.Int32FromInt32(COLFLAG_NOINSERT)) p = (*(*TExprList_item)(unsafe.Pointer(a + uintptr(i)*32))).FpExpr /* pCol->szEst = ... // Column size est for SELECT tables never used */ (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, p) + for int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) && (*TSelect)(unsafe.Pointer(pS2)).FpNext != uintptr(0) { + m |= _sqlite3ExprDataType(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext + (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + } if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) { (*TColumn)(unsafe.Pointer(pCol)).Faffinity = aff } - if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && (*TSelect)(unsafe.Pointer(pSelect)).FpNext != 0 { - m = 0 - m = 0 - pS2 = (*TSelect)(unsafe.Pointer(pSelect)).FpNext + if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && ((*TSelect)(unsafe.Pointer(pS2)).FpNext != 0 || pS2 != pSelect) { + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext for { if !(pS2 != 0) { break @@ -123554,7 +124547,7 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS zType = _columnTypeImpl(tls, bp, p, uintptr(0), uintptr(0), uintptr(0)) if zType == uintptr(0) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) != int32(_sqlite3AffinityType(tls, zType, uintptr(0))) { if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_NUMERIC) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_FLEXNUM) { - zType = __ccgo_ts + 19242 + zType = __ccgo_ts + 19374 } else { zType = uintptr(0) j = int32(1) @@ -123574,13 +124567,13 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS } } if zType != 0 { - m1 = int64(_sqlite3Strlen30(tls, zType)) + k = int64(_sqlite3Strlen30(tls, zType)) n = int64(_sqlite3Strlen30(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) - (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+m1+int64(2))) + (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+k+int64(2))) p4 = pCol + 14 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) & ^(libc.Int32FromInt32(COLFLAG_HASTYPE) | libc.Int32FromInt32(COLFLAG_HASCOLL))) if (*TColumn)(unsafe.Pointer(pCol)).FzCnName != 0 { - libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(m1+int64(1))) + libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(k+int64(1))) p5 = pCol + 14 *(*Tu16)(unsafe.Pointer(p5)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p5))) | libc.Int32FromInt32(COLFLAG_HASTYPE)) } @@ -123876,7 +124869,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest iDistinct = 0 /* To ensure unique results if UNION */ eDest = int32(SRT_Fifo) /* Registers used by LIMIT and OFFSET */ if (*TSelect)(unsafe.Pointer(p)).FpWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19246, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19378, 0) return } /* Obtain authorization to do a recursive query */ @@ -123969,7 +124962,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest break } if (*TSelect)(unsafe.Pointer(pFirstRec)).FselFlags&uint32(SF_Aggregate) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19295, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19427, 0) goto end_of_recursive_query } (*TSelect)(unsafe.Pointer(pFirstRec)).Fop = uint8(TK_ALL) @@ -123984,7 +124977,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest /* Store the results of the setup-query in Queue. */ pSetup = (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior (*TSelect)(unsafe.Pointer(pSetup)).FpNext = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19337, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19469, 0) rc = _sqlite3Select(tls, pParse, pSetup, bp) (*TSelect)(unsafe.Pointer(pSetup)).FpNext = p if rc != 0 { @@ -124012,13 +125005,14 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest ** the value for the recursive-table. Store the results in the Queue. */ (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19343, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19475, 0) _sqlite3Select(tls, pParse, p, bp) _ = libc.Int32FromInt32(0) (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = pSetup /* Keep running the loop until the Queue is empty */ _sqlite3VdbeGoto(tls, v, addrTop) _sqlite3VdbeResolveLabel(tls, v, addrBreak) + goto end_of_recursive_query end_of_recursive_query: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSelect)(unsafe.Pointer(p)).FpOrderBy) @@ -124070,11 +125064,11 @@ func _multiSelectValues(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) nRow += bShowAll } if nRow == int32(1) { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } else { - v1 = __ccgo_ts + 19358 + v1 = __ccgo_ts + 19490 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19360, libc.VaList(bp+8, nRow, v1)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19492, libc.VaList(bp+8, nRow, v1)) for p != 0 { _selectInnerLoop(tls, pParse, p, -int32(1), uintptr(0), uintptr(0), pDest, int32(1), int32(1)) if !(bShowAll != 0) { @@ -124189,8 +125183,8 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in return _multiSelectOrderBy(tls, pParse, p, pDest) } else { if (*TSelect)(unsafe.Pointer(pPrior)).FpPrior == uintptr(0) { - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19383, 0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19398, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19515, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19530, 0) } /* Generate code for the left and right SELECT statements. */ @@ -124216,7 +125210,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in _sqlite3VdbeAddOp3(tls, v, int32(OP_OffsetLimit), (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TSelect)(unsafe.Pointer(p)).FiOffset+int32(1), (*TSelect)(unsafe.Pointer(p)).FiOffset) } } - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19123, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19210, 0) rc = _sqlite3Select(tls, pParse, p, bp) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -124273,7 +125267,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 48))).FeDest = op - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19417, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19549, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+48) _ = libc.Int32FromInt32(0) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior @@ -124339,7 +125333,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit1 = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 88))).FiSDParm = tab2 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19417, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19549, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+88) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -124445,6 +125439,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in } _sqlite3KeyInfoUnref(tls, pKeyInfo) } + goto multi_select_end multi_select_end: ; (*TSelectDest)(unsafe.Pointer(pDest)).FiSdst = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst @@ -124465,9 +125460,9 @@ func _sqlite3SelectWrongNumTermsError(tls *libc.TLS, pParse uintptr, p uintptr) bp := tls.Alloc(16) defer tls.Free(16) if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Values) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19438, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19570, 0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19484, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19616, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) } } @@ -124853,8 +125848,8 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy = _sqlite3ExprListDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pOrderBy, 0) - _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7376) - _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7376) + _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7501) + _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7501) /* Compute the limit registers */ _computeLimitRegisters(tls, pParse, p, labelEnd) if (*TSelect)(unsafe.Pointer(p)).FiLimit != 0 && op == int32(TK_ALL) { @@ -124898,14 +125893,14 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr regOutB = v21 _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), regAddrA) _sqlite3SelectDestInit(tls, bp+40, int32(SRT_Coroutine), regAddrB) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19566, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19698, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) /* Generate a coroutine to evaluate the SELECT statement to the ** left of the compound operator - the "A" select. */ addrSelectA = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regAddrA, 0, addrSelectA) (*TSelect)(unsafe.Pointer(pPrior)).FiLimit = regLimitA - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19577, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19709, 0) _sqlite3Select(tls, pParse, pPrior, bp) _sqlite3VdbeEndCoroutine(tls, v, regAddrA) _sqlite3VdbeJumpHere(tls, v, addr1) @@ -124918,7 +125913,7 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr savedOffset = (*TSelect)(unsafe.Pointer(p)).FiOffset (*TSelect)(unsafe.Pointer(p)).FiLimit = regLimitB (*TSelect)(unsafe.Pointer(p)).FiOffset = 0 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19582, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19714, 0) _sqlite3Select(tls, pParse, p, bp+40) (*TSelect)(unsafe.Pointer(p)).FiLimit = savedLimit (*TSelect)(unsafe.Pointer(p)).FiOffset = savedOffset @@ -125136,7 +126131,7 @@ func _substExpr(tls *libc.TLS, pSubst uintptr, pExpr uintptr) (r uintptr) { if pColl != 0 { v1 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v1 = __ccgo_ts + 5095 + v1 = __ccgo_ts + 5159 } pExpr = _sqlite3ExprAddCollateString(tls, (*TSubstContext)(unsafe.Pointer(pSubst)).FpParse, pExpr, v1) } @@ -126200,10 +127195,10 @@ func _findConstInWhere(tls *libc.TLS, pConst uintptr, pExpr uintptr) { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pLeft) != 0 { + if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pLeft) != 0 { _constInsert(tls, pConst, pRight, pLeft, pExpr) } - if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pRight) != 0 { + if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pRight) != 0 { _constInsert(tls, pConst, pLeft, pRight, pExpr) } } @@ -126444,6 +127439,18 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** The hope is that the terms added to the inner query will make it more // ** efficient. // ** +// ** NAME AMBIGUITY +// ** +// ** This optimization is called the "WHERE-clause push-down optimization". +// ** +// ** Do not confuse this optimization with another unrelated optimization +// ** with a similar name: The "MySQL push-down optimization" causes WHERE +// ** clause terms that can be evaluated using only the index and without +// ** reference to the table are run first, so that if they are false, +// ** unnecessary table seeks are avoided. +// ** +// ** RULES +// ** // ** Do not attempt this optimization if: // ** // ** (1) (** This restriction was removed on 2017-09-29. We used to @@ -126509,10 +127516,10 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** (9c) There is a RIGHT JOIN (or FULL JOIN) in between the ON/USING // ** clause and the subquery. // ** -// ** Without this restriction, the push-down optimization might move -// ** the ON/USING filter expression from the left side of a RIGHT JOIN -// ** over to the right side, which leads to incorrect answers. See -// ** also restriction (6) in sqlite3ExprIsSingleTableConstraint(). +// ** Without this restriction, the WHERE-clause push-down optimization +// ** might move the ON/USING filter expression from the left side of a +// ** RIGHT JOIN over to the right side, which leads to incorrect answers. +// ** See also restriction (6) in sqlite3ExprIsSingleTableConstraint(). // ** // ** (10) The inner query is not the right-hand table of a RIGHT JOIN. // ** @@ -126607,7 +127614,7 @@ func _pushDownWhereTerms(tls *libc.TLS, pParse uintptr, pSubq uintptr, pWhere ui nChng += _pushDownWhereTerms(tls, pParse, pSubq, (*TExpr)(unsafe.Pointer(pWhere)).FpRight, pSrcList, iSrc) pWhere = (*TExpr)(unsafe.Pointer(pWhere)).FpLeft } - if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc) != 0 { + if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc, int32(1)) != 0 { nChng++ *(*Tu32)(unsafe.Pointer(pSubq + 4)) |= uint32(SF_PushDown) for pSubq != 0 { @@ -126786,13 +127793,13 @@ func _minMaxQuery(tls *libc.TLS, db uintptr, pFunc uintptr, ppMinMax uintptr) (r } _ = libc.Int32FromInt32(0) zFunc = *(*uintptr)(unsafe.Pointer(pFunc + 8)) - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15559) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15652) == 0 { eRet = int32(WHERE_ORDERBY_MIN) if _sqlite3ExprCanBeNull(tls, (*(*TExprList_item)(unsafe.Pointer(pEList + 8))).FpExpr) != 0 { sortFlags = uint8(KEYINFO_ORDER_BIGNULL) } } else { - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15563) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15656) == 0 { eRet = int32(WHERE_ORDERBY_MAX) sortFlags = uint8(KEYINFO_ORDER_DESC) } else { @@ -126888,7 +127895,7 @@ func _sqlite3IndexedByLookup(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r in pIdx = (*TIndex)(unsafe.Pointer(pIdx)).FpNext } if !(pIdx != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19588, libc.VaList(bp+8, zIndexedBy, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19720, libc.VaList(bp+8, zIndexedBy, 0)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) return int32(SQLITE_ERROR) } @@ -127015,7 +128022,7 @@ func _cannotBeFunction(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x4>>2)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19606, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19738, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) return int32(1) } return 0 @@ -127197,7 +128204,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom *(*Tu32)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect + 4)) |= uint32(SF_CopyCte) _ = libc.Int32FromInt32(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x2>>1)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19629, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19761, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) return int32(2) } libc.SetBitFieldPtr16Uint32(pFrom+60+4, libc.Uint32FromInt32(1), 8, 0x100) @@ -127222,7 +128229,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ libc.SetBitFieldPtr16Uint32(pItem+60+4, libc.Uint32FromInt32(1), 6, 0x40) if (*TSelect)(unsafe.Pointer(pRecTerm)).FselFlags&uint32(SF_Recursive) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19649, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19781, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) return int32(2) } *(*Tu32)(unsafe.Pointer(pRecTerm + 4)) |= uint32(SF_Recursive) @@ -127244,7 +128251,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } pRecTerm = (*TSelect)(unsafe.Pointer(pRecTerm)).FpPrior } - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19692 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19824 pSavedWith = (*TParse)(unsafe.Pointer(pParse)).FpWith (*TParse)(unsafe.Pointer(pParse)).FpWith = *(*uintptr)(unsafe.Pointer(bp)) if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { @@ -127280,7 +128287,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom pEList = (*TSelect)(unsafe.Pointer(pLeft)).FpEList if (*TCte)(unsafe.Pointer(pCte)).FpCols != 0 { if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr != (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19715, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19847, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) (*TParse)(unsafe.Pointer(pParse)).FpWith = pSavedWith return int32(2) } @@ -127289,9 +128296,9 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom _sqlite3ColumnsFromExprList(tls, pParse, pEList, pTab+54, pTab+8) if bMayRecursive != 0 { if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19753 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19885 } else { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19787 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 19919 } _sqlite3WalkSelect(tls, pWalker, pSel) } @@ -127352,7 +128359,7 @@ func _sqlite3ExpandSubquery(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int if (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias != 0 { (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3DbStrDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias) } else { - (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19825, libc.VaList(bp+8, pFrom)) + (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+19957, libc.VaList(bp+8, pFrom)) } for (*TSelect)(unsafe.Pointer(pSel)).FpPrior != 0 { pSel = (*TSelect)(unsafe.Pointer(pSel)).FpPrior @@ -127516,7 +128523,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { return int32(WRC_Abort) } if (*TTable)(unsafe.Pointer(pTab)).FnTabRef >= uint32(0xffff) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19829, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19961, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) (*TSrcItem)(unsafe.Pointer(pFrom)).FpTab = uintptr(0) return int32(WRC_Abort) } @@ -127532,7 +128539,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_EnableView) == uint64(0) && (*TTable)(unsafe.Pointer(pTab)).FpSchema != (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19868, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20000, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } (*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect = _sqlite3SelectDup(tls, db, (*(*struct { FpSelect uintptr @@ -127547,7 +128554,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).Fp)).FeVtabRisk) > libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15118, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15211, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } } _ = libc.Int32FromInt32(0) @@ -127684,7 +128691,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if iDb >= 0 { v10 = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName } else { - v10 = __ccgo_ts + 6599 + v10 = __ccgo_ts + 6663 } zSchemaName = v10 } @@ -127702,7 +128709,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if pNew != 0 { pX = pNew + 8 + uintptr((*TExprList)(unsafe.Pointer(pNew)).FnExpr-int32(1))*32 _ = libc.Int32FromInt32(0) - (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19899, libc.VaList(bp+8, zUName)) + (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20031, libc.VaList(bp+8, zUName)) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(ENAME_TAB), 0, 0x3) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(1), 7, 0x80) } @@ -127784,7 +128791,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { _ = libc.Int32FromInt32(0) (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, (*(*TExprList_item)(unsafe.Pointer(pNestedFrom + 8 + uintptr(j)*32))).FzEName) } else { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+19904, libc.VaList(bp+8, zSchemaName, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20036, libc.VaList(bp+8, zSchemaName, zTabName, zName)) } if j == int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) { v13 = int32(ENAME_ROWID) @@ -127797,7 +128804,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } } else { if longNames != 0 { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12390, libc.VaList(bp+8, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12515, libc.VaList(bp+8, zTabName, zName)) libc.SetBitFieldPtr16Uint32(pX1+16+4, libc.Uint32FromInt32(ENAME_NAME), 0, 0x3) } else { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, zName) @@ -127817,9 +128824,9 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if !(tableSeen != 0) { if zTName != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19913, libc.VaList(bp+8, zTName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20045, libc.VaList(bp+8, zTName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19931, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20063, 0) } } } @@ -127833,7 +128840,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if (*TSelect)(unsafe.Pointer(p)).FpEList != 0 { if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpEList)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19951, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20083, 0) return int32(WRC_Abort) } if elistFlags&uint32(libc.Int32FromInt32(EP_HasFunc)|libc.Int32FromInt32(EP_Subquery)) != uint32(0) { @@ -128195,12 +129202,12 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { pE = (*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFExpr _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(pE + 32)) == uintptr(0) || (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pE + 32)))).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19982, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20114, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct = -int32(1) } else { pKeyInfo = _sqlite3KeyInfoFromExprList(tls, pParse, *(*uintptr)(unsafe.Pointer(pE + 32)), 0, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistAddr = _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct, 0, 0, pKeyInfo, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20033, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20165, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } } if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab >= 0 { @@ -128226,7 +129233,7 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { (*TKeyInfo)(unsafe.Pointer(pKeyInfo1)).FnKeyField++ } _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab, (*TExprList)(unsafe.Pointer(pOBList)).FnExpr+nExtra, 0, pKeyInfo1, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20066, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20198, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } goto _1 _1: @@ -128551,16 +129558,16 @@ func _explainSimpleCount(tls *libc.TLS, pParse uintptr, pTab uintptr, pIdx uintp if int32((*TParse)(unsafe.Pointer(pParse)).Fexplain) == int32(2) { bCover = libc.BoolInt32(pIdx != uintptr(0) && ((*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) || !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == libc.Int32FromInt32(SQLITE_IDXTYPE_PRIMARYKEY)))) if bCover != 0 { - v1 = __ccgo_ts + 20099 + v1 = __ccgo_ts + 20231 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } if bCover != 0 { v2 = (*TIndex)(unsafe.Pointer(pIdx)).FzName } else { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20122, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20254, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) } } @@ -128592,7 +129599,7 @@ func _havingToWhereExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 ** statements AggInfo structure. */ if _sqlite3ExprIsConstantOrGroupBy(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, pExpr, (*TSelect)(unsafe.Pointer(pS)).FpGroupBy) != 0 && libc.BoolInt32((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse)) == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb - pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8139) + pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8264) if pNew != 0 { pWhere = (*TSelect)(unsafe.Pointer(pS)).FpWhere t = *(*TExpr)(unsafe.Pointer(pNew)) @@ -128752,7 +129759,7 @@ func _countOfViewOptimization(tls *libc.TLS, pParse uintptr, p uintptr) (r int32 return 0 } /* Result is an aggregate */ _ = libc.Int32FromInt32(0) - if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15853) != 0 { + if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+15946) != 0 { return 0 } /* Is count() */ _ = libc.Int32FromInt32(0) @@ -129025,7 +130032,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { v1 = (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p0)).FpTab)).FzName } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20134, libc.VaList(bp+176, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20266, libc.VaList(bp+176, v1)) goto select_end } /* Clear the SF_UFSrcCheck flag. The check has already been performed, @@ -129128,7 +130135,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Catch mismatch in the declared columns of a view and the number of ** columns in the SELECT on the RHS */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) != (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20188, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20320, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) goto select_end } /* Do not attempt the usual optimizations (flattening and ORDER BY @@ -129266,12 +130273,12 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r ** string for the fake column name seems safer. */ if (*TSrcItem)(unsafe.Pointer(pItem1)).FcolUsed == uint64(0) && (*TSrcItem)(unsafe.Pointer(pItem1)).FzName != uintptr(0) { - _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1657, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) + _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1671, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) } /* Generate code for all sub-queries in the FROM clause */ pSub1 = (*TSrcItem)(unsafe.Pointer(pItem1)).FpSelect - if pSub1 == uintptr(0) { + if pSub1 == uintptr(0) || (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub != 0 { goto _10 } /* The code for a subquery should only be generated once. */ @@ -129312,7 +130319,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn, 0, addrTop) (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub = addrTop _sqlite3SelectDestInit(tls, bp+72, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20228, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20360, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow libc.SetBitFieldPtr16Uint32(pItem1+60+4, libc.Uint32FromInt32(1), 5, 0x20) @@ -129360,7 +130367,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { } _sqlite3SelectDestInit(tls, bp+72, int32(SRT_EphemTab), (*TSrcItem)(unsafe.Pointer(pItem1)).FiCursor) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20243, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20375, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow if onceAddr != 0 { @@ -129778,11 +130785,11 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r groupBySort = 0 } else { if (*(*TDistinctCtx)(unsafe.Pointer(bp))).FisTnct != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Distinct) == uint32(0) { - v44 = __ccgo_ts + 20259 + v44 = __ccgo_ts + 20391 } else { - v44 = __ccgo_ts + 20268 + v44 = __ccgo_ts + 20400 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19156, libc.VaList(bp+176, v44)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19243, libc.VaList(bp+176, v44)) groupBySort = int32(1) nGroupBy = (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr nCol = nGroupBy @@ -130106,7 +131113,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeResolveLabel(tls, v, addrEnd) } /* endif aggregate query */ if int32((*(*TDistinctCtx)(unsafe.Pointer(bp))).FeTnctType) == int32(WHERE_DISTINCT_UNORDERED) { - _explainTempTable(tls, pParse, __ccgo_ts+20259) + _explainTempTable(tls, pParse, __ccgo_ts+20391) } /* If there is an ORDER BY clause, then we need to sort the results ** and send them to the callback one by one. @@ -130124,6 +131131,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Control jumps to here if an error is encountered above, or upon ** successful coding of the SELECT. */ + goto select_end select_end: ; _ = libc.Int32FromInt32(0) @@ -130214,7 +131222,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr if !(i < nCol) { break } - z = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) + z = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) if z == uintptr(0) { goto malloc_failed } @@ -130230,7 +131238,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr } else { if int32((*TTabResult)(unsafe.Pointer(p)).FnColumn) != nCol { Xsqlite3_free(tls, (*TTabResult)(unsafe.Pointer(p)).FzErrMsg) - (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20277, 0) + (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20409, 0) (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) return int32(1) } @@ -130265,6 +131273,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr (*TTabResult)(unsafe.Pointer(p)).FnRow++ } return 0 + goto malloc_failed malloc_failed: ; (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) @@ -130320,7 +131329,7 @@ func Xsqlite3_get_table(tls *libc.TLS, db uintptr, zSql uintptr, pazResult uintp if (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg != 0 { if pzErrMsg != 0 { Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pzErrMsg))) - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) } Xsqlite3_free(tls, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg) } @@ -130490,7 +131499,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if isTemp != 0 { /* If TEMP was specified, then the trigger name may not be qualified. */ if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20342, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20474, 0) goto trigger_cleanup } iDb = int32(1) @@ -130531,7 +131540,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } _ = libc.Int32FromInt32(0) - _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20388, *(*uintptr)(unsafe.Pointer(bp))) + _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20520, *(*uintptr)(unsafe.Pointer(bp))) if _sqlite3FixSrcList(tls, bp+8, pTableName) != 0 { goto trigger_cleanup } @@ -130541,11 +131550,11 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_orphan_error } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20396, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20528, 0) goto trigger_orphan_error } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, db) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20437, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20569, 0) goto trigger_orphan_error } /* Check that the trigger name is not reserved and that no trigger of the @@ -130555,14 +131564,14 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 _ = libc.Int32FromInt32(0) goto trigger_cleanup } - if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20388, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { + if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20520, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { goto trigger_cleanup } _ = libc.Int32FromInt32(0) if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema+56, zName) != 0 { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20477, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20609, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) } else { _ = libc.Int32FromInt32(0) _sqlite3CodeVerifySchema(tls, pParse, iDb) @@ -130571,8 +131580,8 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 } } /* Do not create a trigger on a system table */ - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6534, int32(7)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20503, 0) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6598, int32(7)) == 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20635, 0) goto trigger_cleanup } /* INSTEAD of triggers are only for views and views only support INSTEAD @@ -130580,15 +131589,15 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && tr_tm != int32(TK_INSTEAD) { if tr_tm == int32(TK_BEFORE) { - v1 = __ccgo_ts + 20541 + v1 = __ccgo_ts + 20673 } else { - v1 = __ccgo_ts + 20548 + v1 = __ccgo_ts + 20680 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20554, libc.VaList(bp+112, v1, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20686, libc.VaList(bp+112, v1, pTableName+8)) goto trigger_orphan_error } if !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) && tr_tm == int32(TK_INSTEAD) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20591, libc.VaList(bp+112, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20723, libc.VaList(bp+112, pTableName+8)) goto trigger_orphan_error } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -130608,9 +131617,9 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iTabDb == int32(1) { - v3 = __ccgo_ts + 6542 + v3 = __ccgo_ts + 6606 } else { - v3 = __ccgo_ts + 6075 + v3 = __ccgo_ts + 6139 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto trigger_cleanup @@ -130652,6 +131661,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 pColumns = uintptr(0) _ = libc.Int32FromInt32(0) (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger = pTrigger + goto trigger_cleanup trigger_cleanup: ; _sqlite3DbFree(tls, db, zName) @@ -130664,6 +131674,7 @@ trigger_cleanup: _ = libc.Int32FromInt32(0) } return + goto trigger_orphan_error trigger_orphan_error: ; if int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) == int32(1) { @@ -130710,7 +131721,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl pStepList = (*TTriggerStep)(unsafe.Pointer(pStepList)).FpNext } _sqlite3TokenInit(tls, bp+96, (*TTrigger)(unsafe.Pointer(pTrig)).FzName) - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20388, bp+96) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20520, bp+96) if _sqlite3FixTriggerStep(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).Fstep_list) != 0 || _sqlite3FixExpr(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).FpWhen) != 0 { goto triggerfinish_cleanup } @@ -130733,7 +131744,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl break } if (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget != uintptr(0) && _sqlite3ShadowTableName(tls, db, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20637, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20769, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) goto triggerfinish_cleanup } goto _1 @@ -130749,10 +131760,10 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) z = _sqlite3DbStrNDup(tls, db, (*TToken)(unsafe.Pointer(pAll)).Fz, uint64((*TToken)(unsafe.Pointer(pAll)).Fn)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20685, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20817, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) _sqlite3DbFree(tls, db, z) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20760, libc.VaList(bp+120, zName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+20892, libc.VaList(bp+120, zName)), uint16(0)) } } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { @@ -130772,6 +131783,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } } } + goto triggerfinish_cleanup triggerfinish_cleanup: ; _sqlite3DeleteTrigger(tls, db, pTrig) @@ -131027,7 +132039,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int } if !(pTrigger != 0) { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20789, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20921, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, zDb) } @@ -131035,6 +132047,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int goto drop_trigger_cleanup } _sqlite3DropTriggerPtr(tls, pParse, pTrigger) + goto drop_trigger_cleanup drop_trigger_cleanup: ; _sqlite3SrcListDelete(tls, db, pName) @@ -131070,9 +132083,9 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { code = int32(SQLITE_DROP_TRIGGER) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6542 + v1 = __ccgo_ts + 6606 } else { - v1 = __ccgo_ts + 6075 + v1 = __ccgo_ts + 6139 } zTab = v1 if iDb == int32(1) { @@ -131087,7 +132100,7 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { v2 = _sqlite3GetVdbe(tls, pParse) v = v2 if v2 != uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+20809, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+20941, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropTrigger), iDb, 0, 0, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName, 0) } @@ -131223,11 +132236,11 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { if op != int32(TK_INSERT) { if op == int32(TK_DELETE) { - v1 = __ccgo_ts + 20871 + v1 = __ccgo_ts + 21003 } else { - v1 = __ccgo_ts + 20878 + v1 = __ccgo_ts + 21010 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20885, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21017, libc.VaList(bp+8, v1)) } (*TTrigger)(unsafe.Pointer(p)).Ftr_tm = uint8(TRIGGER_BEFORE) } else { @@ -131244,6 +132257,7 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, p = (*TTrigger)(unsafe.Pointer(p)).FpNext } } + goto exit_triggers_exist exit_triggers_exist: ; if pMask != 0 { @@ -131333,7 +132347,7 @@ func _isAsteriskTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pTerm)).FpRight)).Fop) != int32(TK_ASTERISK) { return 0 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20933, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21065, 0) return int32(1) } @@ -131398,6 +132412,81 @@ func _sqlite3ExpandReturning(tls *libc.TLS, pParse uintptr, pList uintptr, pTab return pNew } +// C documentation +// +// /* If the Expr node is a subquery or an EXISTS operator or an IN operator that +// ** uses a subquery, and if the subquery is SF_Correlated, then mark the +// ** expression as EP_VarSelect. +// */ +func _sqlite3ReturningSubqueryVarSelect(tls *libc.TLS, NotUsed uintptr, pExpr uintptr) (r int32) { + _ = NotUsed + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) && (*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FselFlags&uint32(SF_Correlated) != uint32(0) { + *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** If the SELECT references the table pWalker->u.pTab, then do two things: +// ** +// ** (1) Mark the SELECT as as SF_Correlated. +// ** (2) Set pWalker->eCode to non-zero so that the caller will know +// ** that (1) has happened. +// */ +func _sqlite3ReturningSubqueryCorrelated(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + var i int32 + var pSrc uintptr + _, _ = i, pSrc + _ = libc.Int32FromInt32(0) + pSrc = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + _ = libc.Int32FromInt32(0) + i = 0 + for { + if !(i < (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) { + break + } + if (*(*TSrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104))).FpTab == *(*uintptr)(unsafe.Pointer(pWalker + 40)) { + *(*Tu32)(unsafe.Pointer(pSelect + 4)) |= uint32(SF_Correlated) + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + break + } + goto _1 + _1: + ; + i++ + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Scan the expression list that is the argument to RETURNING looking +// ** for subqueries that depend on the table which is being modified in the +// ** statement that is hosting the RETURNING clause (pTab). Mark all such +// ** subqueries as SF_Correlated. If the subqueries are part of an +// ** expression, mark the expression as EP_VarSelect. +// ** +// ** https://sqlite.org/forum/forumpost/2c83569ce8945d39 +// */ +func _sqlite3ProcessReturningSubqueries(tls *libc.TLS, pEList uintptr, pTab uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ExprWalkNoop) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3ReturningSubqueryCorrelated) + *(*uintptr)(unsafe.Pointer(bp + 40)) = pTab + _sqlite3WalkExprList(tls, bp, pEList) + if (*(*TWalker)(unsafe.Pointer(bp))).FeCode != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ReturningSubqueryVarSelect) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) + _sqlite3WalkExprList(tls, bp, pEList) + } +} + // C documentation // // /* @@ -131434,6 +132523,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab (*(*TSelect)(unsafe.Pointer(bp))).FpSrc = bp + 128 (*(*TSrcList)(unsafe.Pointer(bp + 128))).FnSrc = int32(1) (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FpTab = pTab + (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FzName = (*TTable)(unsafe.Pointer(pTab)).FzName /* tag-20240424-1 */ (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FiCursor = -int32(1) _sqlite3SelectPrep(tls, pParse, bp, uintptr(0)) if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { @@ -131459,6 +132549,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab if _sqlite3ResolveExprListNames(tls, bp+240, pNew) == SQLITE_OK && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) { nCol = (*TExprList)(unsafe.Pointer(pNew)).FnExpr reg = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(1) + _sqlite3ProcessReturningSubqueries(tls, pNew, pTab) *(*int32)(unsafe.Pointer(pParse + 56)) += nCol + int32(2) (*TReturning)(unsafe.Pointer(pReturning)).FiRetReg = reg i = 0 @@ -131531,7 +132622,7 @@ func _codeTriggerProgram(tls *libc.TLS, pParse uintptr, pStepList uintptr, orcon (*TParse)(unsafe.Pointer(pParse)).FeOrconf = uint8(v2) _ = libc.Int32FromInt32(0) if (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6272, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6336, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) } switch int32((*TTriggerStep)(unsafe.Pointer(pStep)).Fop) { case int32(TK_UPDATE): @@ -131638,7 +132729,7 @@ func _codeRowTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab uintp v = _sqlite3GetVdbe(tls, bp+56) if v != 0 { if (*TTrigger)(unsafe.Pointer(pTrigger)).FzName != 0 { - _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+20975, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) + _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+21107, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) } /* If one was specified, code the WHEN clause. If it evaluates to false ** (or NULL) the sub-vdbe is immediately halted by jumping to the @@ -132352,7 +133443,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui chngPk = uint8(1) } else { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20989, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21121, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto update_cleanup } } @@ -132372,13 +133463,13 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui pRowidExpr = (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FpExpr iRowidExpr = i } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21025, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21157, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto update_cleanup } } if j < 0 { - v11 = __ccgo_ts + 7914 + v11 = __ccgo_ts + 8039 } else { v11 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName } @@ -133074,8 +134165,9 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui ** that information. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21044) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21176) } + goto update_cleanup update_cleanup: ; _sqlite3AuthContextPop(tls, bp) @@ -133522,9 +134614,9 @@ func _sqlite3UpsertAnalyzeTarget(tls *libc.TLS, pParse uintptr, pTabList uintptr if nClause == 0 && (*TUpsert)(unsafe.Pointer(pUpsert)).FpNextUpsert == uintptr(0) { (*(*[16]uint8)(unsafe.Pointer(bp + 200)))[0] = uint8(0) } else { - Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21057, libc.VaList(bp+224, nClause+int32(1))) + Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21189, libc.VaList(bp+224, nClause+int32(1))) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21061, libc.VaList(bp+224, bp+200)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21193, libc.VaList(bp+224, bp+200)) return int32(SQLITE_ERROR) } goto _1 @@ -133630,7 +134722,7 @@ func _sqlite3UpsertDoUpdate(tls *libc.TLS, pParse uintptr, pUpsert uintptr, pTab i++ } i = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), iDataCur, 0, iPk, nPk) - _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12479, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12604, -int32(1)) _sqlite3MayAbort(tls, pParse) _sqlite3VdbeJumpHere(tls, v, i) } @@ -133713,7 +134805,7 @@ func _execSql(tls *libc.TLS, db uintptr, pzErrMsg uintptr, zSql uintptr) (r int3 ** corrupt the sqlite_schema.sql field with other kinds of statements ** then run VACUUM to get those statements to execute at inappropriate ** times. */ - if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21134, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21138, uint64(3)) == 0) { + if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21266, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21270, uint64(3)) == 0) { rc = _execSql(tls, db, pzErrMsg, zSubSql) if rc != SQLITE_OK { break @@ -133814,6 +134906,7 @@ func _sqlite3Vacuum(tls *libc.TLS, pParse uintptr, _pNm uintptr, pInto uintptr) _sqlite3VdbeAddOp2(tls, v, int32(OP_Vacuum), iDb, iIntoReg) _sqlite3VdbeUsesBtree(tls, v, iDb) } + goto build_vacuum_end build_vacuum_end: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pInto) @@ -133841,24 +134934,24 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p pDb = uintptr(0) /* Name of output file */ pgflags = uint32(PAGER_SYNCHRONOUS_OFF) /* sync flags for output db */ if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21142) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21274) return int32(SQLITE_ERROR) /* IMP: R-12218-18073 */ } if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive > int32(1) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21182) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21314) return int32(SQLITE_ERROR) /* IMP: R-15610-35227 */ } saved_openFlags = (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags if pOut != 0 { if Xsqlite3_value_type(tls, pOut) != int32(SQLITE_TEXT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21225) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21357) return int32(SQLITE_ERROR) } zOut = Xsqlite3_value_text(tls, pOut) *(*uint32)(unsafe.Pointer(db + 76)) &= uint32(^libc.Int32FromInt32(SQLITE_OPEN_READONLY)) *(*uint32)(unsafe.Pointer(db + 76)) |= uint32(libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE)) } else { - zOut = __ccgo_ts + 1657 + zOut = __ccgo_ts + 1671 } /* Save the current value of the database flags so that it can be ** restored before returning. Then set the writable-schema flag, and @@ -133890,7 +134983,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** to write the journal header file. */ nDb = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21243, libc.VaList(bp+24, zOut)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21375, libc.VaList(bp+24, zOut)) (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags = saved_openFlags if rc != SQLITE_OK { goto end_of_vacuum @@ -133904,7 +134997,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p *(*Ti64)(unsafe.Pointer(bp)) = 0 if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != uintptr(0) && (_sqlite3OsFileSize(tls, id, bp) != SQLITE_OK || *(*Ti64)(unsafe.Pointer(bp)) > 0) { rc = int32(SQLITE_ERROR) - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21266) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21398) goto end_of_vacuum } *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_VacuumInto) @@ -133921,7 +135014,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** file. This is done before the sqlite3BtreeGetPageSize(pMain) call below, ** to ensure that we do not try to change the page-size on a WAL database. */ - rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14888) + rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+14981) if rc != SQLITE_OK { goto end_of_vacuum } @@ -133952,11 +135045,11 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** in the temporary database. */ (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(nDb) /* force new CREATE statements into vacuum_db */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21293, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21425, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21401, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21533, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } @@ -133965,7 +135058,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** an "INSERT INTO vacuum_db.xxx SELECT * FROM main.xxx;" to copy ** the contents to the temporary database. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21455, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21587, libc.VaList(bp+24, zDbMain)) _ = libc.Int32FromInt32(0) *(*Tu32)(unsafe.Pointer(db + 44)) &= uint32(^libc.Int32FromInt32(DBFLAG_Vacuum)) if rc != SQLITE_OK { @@ -133976,7 +135069,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** associated storage, so all we have to do is copy their entries ** from the schema table. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21606, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21738, libc.VaList(bp+24, zDbMain)) if rc != 0 { goto end_of_vacuum } @@ -134018,6 +135111,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p nRes = _sqlite3BtreeGetRequestedReserve(tls, pTemp) rc = _sqlite3BtreeSetPageSize(tls, pMain, _sqlite3BtreeGetPageSize(tls, pTemp), nRes, int32(1)) } + goto end_of_vacuum end_of_vacuum: ; /* Restore the original value of db->flags */ @@ -134523,7 +135617,7 @@ func _addModuleArgument(tls *libc.TLS, pParse uintptr, pTable uintptr, zArg uint FazArg uintptr Fp uintptr })(unsafe.Pointer(pTable + 64))).FnArg+int32(3) >= *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12709, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12834, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) } azModuleArg = _sqlite3DbRealloc(tls, db, (*(*struct { FnArg int32 @@ -134650,7 +135744,7 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { if pEnd != 0 { (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fn = uint32(int32(int64((*TToken)(unsafe.Pointer(pEnd)).Fz)-int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz))) + (*TToken)(unsafe.Pointer(pEnd)).Fn } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21736, libc.VaList(bp+8, pParse+272)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+21868, libc.VaList(bp+8, pParse+272)) /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. @@ -134660,11 +135754,11 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { ** by sqlite3StartTable(). */ iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+21760, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+21892, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) v = _sqlite3GetVdbe(tls, pParse) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) - zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21859, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) + zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+21991, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, zWhere, uint16(0)) _sqlite3DbFree(tls, db, zStmt) v2 = pParse + 56 @@ -134754,7 +135848,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, break } if (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab == pTab { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21878, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22010, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(SQLITE_LOCKED) } goto _1 @@ -134791,6 +135885,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = bp (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+16, bp+32) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -134799,9 +135895,9 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, _ = libc.Int32FromInt32(0) if SQLITE_OK != rc { if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21920, libc.VaList(bp+48, zModuleName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22052, libc.VaList(bp+48, zModuleName)) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3804, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3868, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) } _sqlite3DbFree(tls, db, pVTable) @@ -134814,8 +135910,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*TModule)(unsafe.Pointer(pMod)).FnRefModule++ (*TVTable)(unsafe.Pointer(pVTable)).FnRef = int32(1) if (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared == 0 { - zFormat = __ccgo_ts + 21950 - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + zFormat = __ccgo_ts + 22082 + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, zModuleName)) _sqlite3VtabUnlock(tls, pVTable) rc = int32(SQLITE_ERROR) } else { @@ -134840,7 +135936,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(iCol < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } - zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1657) + zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1671) i = 0 nType = _sqlite3Strlen30(tls, zType) i = 0 @@ -134848,7 +135944,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(i < nType) { break } - if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16594, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { + if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16681, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { break } goto _3 @@ -134932,13 +136028,13 @@ func _sqlite3VtabCallConnect(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).FazArg)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21996, libc.VaList(bp+16, zModule)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22128, libc.VaList(bp+16, zModule)) rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxConnect, bp) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3804, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3868, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) (*TParse)(unsafe.Pointer(pParse)).Frc = rc } _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) @@ -135020,7 +136116,7 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, ** error. Otherwise, do nothing. */ if pMod == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxDestroy == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+21996, libc.VaList(bp+8, zMod)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22128, libc.VaList(bp+8, zMod)) rc = int32(SQLITE_ERROR) } else { rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate, pzErr) @@ -135046,18 +136142,42 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r int32) { bp := tls.Alloc(448) defer tls.Free(448) - var initBusy, rc int32 - var pCtx, pIdx, pNew, pTab, v2 uintptr - var v1 Ti16 + var i, initBusy, rc int32 + var pCtx, pIdx, pNew, pTab, z, v3 uintptr + var v2 Ti16 var _ /* sParse at bp+0 */ TParse - _, _, _, _, _, _, _, _ = initBusy, pCtx, pIdx, pNew, pTab, rc, v1, v2 + var _ /* tokenType at bp+424 */ int32 + _, _, _, _, _, _, _, _, _, _ = i, initBusy, pCtx, pIdx, pNew, pTab, rc, z, v2, v3 rc = SQLITE_OK + /* Verify that the first two keywords in the CREATE TABLE statement + ** really are "CREATE" and "TABLE". If this is not the case, then + ** sqlite3_declare_vtab() is being misused. + */ + z = zCreateTable + i = 0 + for { + if !(_aKeyword1[i] != 0) { + break + } + *(*int32)(unsafe.Pointer(bp + 424)) = 0 + for cond := true; cond; cond = *(*int32)(unsafe.Pointer(bp + 424)) == int32(TK_SPACE) { + z += uintptr(_sqlite3GetToken(tls, z, bp+424)) + } + if *(*int32)(unsafe.Pointer(bp + 424)) != int32(_aKeyword1[i]) { + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+22147, 0) + return int32(SQLITE_ERROR) + } + goto _1 + _1: + ; + i++ + } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pCtx = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(pCtx != 0) || (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared != 0 { - _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(155155))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(156227))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(155157)) + return _sqlite3MisuseError(tls, int32(156229)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _ = libc.Int32FromInt32(0) @@ -135071,7 +136191,10 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i initBusy = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) (*(*TParse)(unsafe.Pointer(bp))).FnQueryLoop = int16(1) - if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) && (*(*TParse)(unsafe.Pointer(bp))).FpNewTable != uintptr(0) && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && int32((*TTable)(unsafe.Pointer((*(*TParse)(unsafe.Pointer(bp))).FpNewTable)).FeTabType) == TABTYP_NORM { + if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if !((*TTable)(unsafe.Pointer(pTab)).FaCol != 0) { pNew = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable @@ -135081,9 +136204,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpDfltList) - v1 = (*TTable)(unsafe.Pointer(pNew)).FnCol - (*TTable)(unsafe.Pointer(pTab)).FnCol = v1 - (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v1 + v2 = (*TTable)(unsafe.Pointer(pNew)).FnCol + (*TTable)(unsafe.Pointer(pTab)).FnCol = v2 + (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v2 *(*Tu32)(unsafe.Pointer(pTab + 48)) |= (*TTable)(unsafe.Pointer(pNew)).FtabFlags & uint32(libc.Int32FromInt32(TF_WithoutRowid)|libc.Int32FromInt32(TF_NoVisibleRowid)) (*TTable)(unsafe.Pointer(pNew)).FnCol = 0 (*TTable)(unsafe.Pointer(pNew)).FaCol = uintptr(0) @@ -135105,11 +136228,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared = int32(1) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - v2 = __ccgo_ts + 3804 + v3 = __ccgo_ts + 3868 } else { - v2 = uintptr(0) + v3 = uintptr(0) } - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v2, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v3, libc.VaList(bp+440, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) rc = int32(SQLITE_ERROR) } @@ -135126,6 +136249,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i return rc } +var _aKeyword1 = [3]Tu8{ + 0: uint8(TK_CREATE), + 1: uint8(TK_TABLE), +} + // C documentation // // /* @@ -135587,7 +136715,7 @@ func _sqlite3VtabEponymousTableInit(tls *libc.TLS, pParse uintptr, pMod uintptr) _addModuleArgument(tls, pParse, pTab, _sqlite3DbStrDup(tls, db, (*TTable)(unsafe.Pointer(pTab)).FzName)) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer(pModule)).FxConnect, bp) if rc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3804, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3868, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3VtabEponymousTableClear(tls, db, pMod) } @@ -135654,7 +136782,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) p = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(p != 0) { - rc = _sqlite3MisuseError(tls, int32(155651)) + rc = _sqlite3MisuseError(tls, int32(156723)) } else { _ = libc.Int32FromInt32(0) ap = va @@ -135668,7 +136796,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in case int32(SQLITE_VTAB_USES_ALL_SCHEMAS): (*TVTable)(unsafe.Pointer((*TVtabCtx)(unsafe.Pointer(p)).FpVTable)).FbAllSchemas = uint8(1) default: - rc = _sqlite3MisuseError(tls, int32(155673)) + rc = _sqlite3MisuseError(tls, int32(156745)) break } _ = ap @@ -136390,10 +137518,10 @@ type WhereInfo1 = TWhereInfo1 func _explainIndexColumnName(tls *libc.TLS, pIdx uintptr, i int32) (r uintptr) { i = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) if i == -int32(2) { - return __ccgo_ts + 22015 + return __ccgo_ts + 22160 } if i == -int32(1) { - return __ccgo_ts + 16703 + return __ccgo_ts + 16790 } return (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(i)*16))).FzCnName } @@ -136413,10 +137541,10 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, _ = i _ = libc.Int32FromInt32(0) if bAnd != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22022, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22167, int32(5)) } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22028, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22173, int32(1)) } i = 0 for { @@ -136424,7 +137552,7 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13099, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13224, int32(1)) } Xsqlite3_str_appendall(tls, pStr, _explainIndexColumnName(tls, pIdx, iTerm+i)) goto _1 @@ -136433,11 +137561,11 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5115, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5179, int32(1)) } Xsqlite3_str_append(tls, pStr, zOp, int32(1)) if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22028, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22173, int32(1)) } i = 0 for { @@ -136445,16 +137573,16 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13099, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13224, int32(1)) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5117, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5181, int32(1)) goto _2 _2: ; i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5115, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5179, int32(1)) } } @@ -136487,7 +137615,7 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { if int32(nEq) == 0 && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) == uint32(0) { return } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22030, int32(2)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22175, int32(2)) i = 0 for { if !(i < int32(nEq)) { @@ -136495,12 +137623,12 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } z = _explainIndexColumnName(tls, pIndex, i) if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22022, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22167, int32(5)) } if i >= int32(nSkip) { - v2 = __ccgo_ts + 22033 + v2 = __ccgo_ts + 22178 } else { - v2 = __ccgo_ts + 22038 + v2 = __ccgo_ts + 22183 } Xsqlite3_str_appendf(tls, pStr, v2, libc.VaList(bp+8, z)) goto _1 @@ -136510,13 +137638,13 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } j = i if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_BTM_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22046) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+22191) i = int32(1) } if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_TOP_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22048) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+22193) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5115, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5179, int32(1)) } // C documentation @@ -136559,11 +137687,11 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if isSearch != 0 { - v2 = __ccgo_ts + 22050 + v2 = __ccgo_ts + 22195 } else { - v2 = __ccgo_ts + 22057 + v2 = __ccgo_ts + 22202 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22062, libc.VaList(bp+144, v2, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22207, libc.VaList(bp+144, v2, pItem)) if flags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_VIRTUALTABLE)) == uint32(0) { zFmt = uintptr(0) _ = libc.Int32FromInt32(0) @@ -136571,37 +137699,37 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _ = libc.Int32FromInt32(0) if !((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) && int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { if isSearch != 0 { - zFmt = __ccgo_ts + 11262 + zFmt = __ccgo_ts + 11387 } } else { if flags&uint32(WHERE_PARTIALIDX) != 0 { - zFmt = __ccgo_ts + 22068 + zFmt = __ccgo_ts + 22213 } else { if flags&uint32(WHERE_AUTO_INDEX) != 0 { - zFmt = __ccgo_ts + 22101 + zFmt = __ccgo_ts + 22246 } else { if flags&uint32(WHERE_IDX_ONLY) != 0 { - zFmt = __ccgo_ts + 22126 + zFmt = __ccgo_ts + 22271 } else { - zFmt = __ccgo_ts + 22144 + zFmt = __ccgo_ts + 22289 } } } } if zFmt != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22153, int32(7)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22298, int32(7)) Xsqlite3_str_appendf(tls, bp, zFmt, libc.VaList(bp+144, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) _explainIndexRange(tls, bp, pLoop) } } else { if flags&uint32(WHERE_IPK) != uint32(0) && flags&uint32(WHERE_CONSTRAINT) != uint32(0) { - zRowid = __ccgo_ts + 16703 - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22161, libc.VaList(bp+144, zRowid)) + zRowid = __ccgo_ts + 16790 + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22306, libc.VaList(bp+144, zRowid)) if flags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != 0 { cRangeOp = uint8('=') } else { if flags&uint32(WHERE_BOTH_LIMIT) == uint32(WHERE_BOTH_LIMIT) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22192, libc.VaList(bp+144, zRowid)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22337, libc.VaList(bp+144, zRowid)) cRangeOp = uint8('<') } else { if flags&uint32(WHERE_BTM_LIMIT) != 0 { @@ -136612,10 +137740,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22202, libc.VaList(bp+144, int32(cRangeOp))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22347, libc.VaList(bp+144, int32(cRangeOp))) } else { if flags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22207, libc.VaList(bp+144, (*(*struct { + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22352, libc.VaList(bp+144, (*(*struct { FidxNum int32 F__ccgo4 uint8 FisOrdered Ti8 @@ -136634,7 +137762,7 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } if int32((*TSrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&int32(JT_LEFT) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22234, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22379, 0) } zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) @@ -136668,14 +137796,14 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Initial space for EQP output string */ _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22245, libc.VaList(bp+144, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22390, libc.VaList(bp+144, pItem)) pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_IPK) != 0 { pTab = (*TSrcItem)(unsafe.Pointer(pItem)).FpTab if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22033, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22178, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) } else { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22266, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22411, 0) } } else { i = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) @@ -136685,16 +137813,16 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp } z = _explainIndexColumnName(tls, (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex, i) if i > int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22022, int32(5)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22167, int32(5)) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22033, libc.VaList(bp+144, z)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22178, libc.VaList(bp+144, z)) goto _1 _1: ; i++ } } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5115, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5179, int32(1)) zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) return ret @@ -137560,6 +138688,35 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 } } +// C documentation +// +// /* +// ** Loop pLoop is a WHERE_INDEXED level that uses at least one IN(...) +// ** operator. Return true if level pLoop is guaranteed to visit only one +// ** row for each key generated for the index. +// */ +func _whereLoopIsOneRow(tls *libc.TLS, pLoop uintptr) (r int32) { + var ii int32 + _ = ii + if (*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FonError != 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) == 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq) == int32((*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FnKeyCol) { + ii = 0 + for { + if !(ii < int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq)) { + break + } + if int32((*TWhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(ii)*8)))).FeOperator)&(libc.Int32FromInt32(WO_IS)|libc.Int32FromInt32(WO_ISNULL)) != 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) + } + return 0 +} + // C documentation // // /* @@ -138290,7 +139447,10 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI _ = libc.Int32FromInt32(0) } /* Record the instruction used to terminate the loop. */ - if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 { + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 || (*(*struct { + FnIn int32 + FaInLoop uintptr + })(unsafe.Pointer(pLevel + 72))).FnIn != 0 && regBignull == 0 && _whereLoopIsOneRow(tls, pLoop) != 0 { (*TWhereLevel)(unsafe.Pointer(pLevel)).Fop = uint8(OP_Noop) } else { if bRev != 0 { @@ -138467,7 +139627,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** eliminating duplicates from other WHERE clauses, the action for each ** sub-WHERE clause is to to invoke the main loop body as a subroutine. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22274, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22419, 0) ii = 0 for { if !(ii < (*TWhereClause)(unsafe.Pointer(pOrWc)).FnTerm) { @@ -138490,7 +139650,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI pOrExpr = pAndExpr } /* Loop through table entries that match term pOrTerm. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22289, libc.VaList(bp+96, ii+int32(1))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22434, libc.VaList(bp+96, ii+int32(1))) pSubWInfo = _sqlite3WhereBegin(tls, pParse, pOrTab, pOrExpr, uintptr(0), uintptr(0), uintptr(0), uint16(WHERE_OR_SUBCLAUSE), iCovCur) _ = libc.Int32FromInt32(0) if pSubWInfo != 0 { @@ -138661,6 +139821,12 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** iLoop==3: Code all remaining expressions. ** ** An effort is made to skip unnecessary iterations of the loop. + ** + ** This optimization of causing simple query restrictions to occur before + ** more complex one is call the "push-down" optimization in MySQL. Here + ** in SQLite, the name is "MySQL push-down", since there is also another + ** totally unrelated optimization called "WHERE-clause push-down". + ** Sometimes the qualifier is omitted, resulting in an ambiguity, so beware. */ if pIdx != 0 { v60 = int32(1) @@ -138862,6 +140028,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** to the results of the OUTER JOIN. The following loop generates the ** appropriate WHERE clause constraint checks. tag-20220513a. */ + goto code_outer_join_constraints code_outer_join_constraints: ; pTerm = (*TWhereClause)(unsafe.Pointer(pWC)).Fa @@ -138966,9 +140133,9 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe defer tls.Free(128) var addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, nPk, r, v3 int32 var mAll TBitmask - var pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr + var pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr var _ /* sFrom at bp+0 */ TSrcList - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pRJ = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpRJ @@ -138977,13 +140144,18 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop pTabItem = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 mAll = uint64(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22298, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22443, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) k = 0 for { if !(k < iLevel) { break } + _ = libc.Int32FromInt32(0) + pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*104 mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x20>>5)) != 0 { + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pRight)).FpSelect)).FpEList)).FnExpr-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiTabCur) iIdxCur = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiIdxCur if iIdxCur != 0 { @@ -139518,19 +140690,19 @@ var _aOp = [4]struct { FeOp2 uint8 }{ 0: { - FzOp: __ccgo_ts + 16552, + FzOp: __ccgo_ts + 16639, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_MATCH), }, 1: { - FzOp: __ccgo_ts + 15883, + FzOp: __ccgo_ts + 15976, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_GLOB), }, 2: { - FzOp: __ccgo_ts + 15362, + FzOp: __ccgo_ts + 15455, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_LIKE), }, 3: { - FzOp: __ccgo_ts + 22312, + FzOp: __ccgo_ts + 22457, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_REGEXP), }, } @@ -140189,7 +141361,7 @@ func _exprMightBeIndexed2(tls *libc.TLS, pFrom uintptr, aiCurCol uintptr, pExpr goto _4 } _ = libc.Int32FromInt32(0) - if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_STRING) { + if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && !(_sqlite3ExprIsConstant(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr) != 0) { *(*int32)(unsafe.Pointer(aiCurCol)) = iCur *(*int32)(unsafe.Pointer(aiCurCol + 1*4)) = -int32(2) return int32(1) @@ -140349,7 +141521,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { extraRight = x - uint64(1) /* ON clause terms may not be used with an index ** on left table of a LEFT JOIN. Ticket #3015 */ if prereqAll>>libc.Int32FromInt32(1) >= x { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22319, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22464, 0) return } } else { @@ -140361,7 +141533,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { ** if there is a RIGHT or FULL JOIN in the query. This makes SQLite ** more like other systems, and also preserves legacy. */ if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc > 0 && int32((*(*TSrcItem)(unsafe.Pointer(pSrc + 8))).Ffg.Fjointype)&int32(JT_LTORJ) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22319, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22464, 0) return } *(*Tu32)(unsafe.Pointer(pExpr + 4)) &= uint32(^libc.Int32FromInt32(EP_InnerON)) @@ -140452,7 +141624,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { if op == int32(TK_ISNULL) && !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != libc.Uint32FromInt32(0)) && 0 == _sqlite3ExprCanBeNull(tls, pLeft) { _ = libc.Int32FromInt32(0) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_TRUEFALSE) /* See tag-20230504-1 */ - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 7900 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 8025 *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_IsFalse)) (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqAll = uint64(0) (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator = uint16(0) @@ -140555,7 +141727,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { *(*Tu8)(unsafe.Pointer(pC)) = uint8(int32(c1) + int32(1)) } if *(*int32)(unsafe.Pointer(bp + 12)) != 0 { - v13 = __ccgo_ts + 22360 + v13 = __ccgo_ts + 22505 } else { v13 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } @@ -140828,6 +142000,9 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FleftCursor != iCsr { return } + if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FprereqRight != uint64(0) { + return + } goto _1 _1: ; @@ -140858,10 +142033,12 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { } /* All conditions are met. Add the terms to the where-clause object. */ _ = libc.Int32FromInt32(0) - _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) - if (*TSelect)(unsafe.Pointer(p)).FiOffset > 0 { + if (*TSelect)(unsafe.Pointer(p)).FiOffset != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiOffset, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpRight, iCsr, int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } + if (*TSelect)(unsafe.Pointer(p)).FiOffset == 0 || (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { + _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) + } } } @@ -141093,7 +142270,7 @@ func _sqlite3WhereTabFuncArgs(tls *libc.TLS, pParse uintptr, pItem uintptr, pWC k++ } if k >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22367, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22512, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) return } pColRef = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_COLUMN), uintptr(0), 0) @@ -141428,6 +142605,7 @@ func _whereOrInsert(tls *libc.TLS, pSet uintptr, prereq TBitmask, rRun TLogEst, return 0 } } + goto whereOrInsert_done whereOrInsert_done: ; (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq = prereq @@ -141534,6 +142712,50 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { return uintptr(0) } +// C documentation +// +// /* +// ** Term pTerm is guaranteed to be a WO_IN term. It may be a component term +// ** of a vector IN expression of the form "(x, y, ...) IN (SELECT ...)". +// ** This function checks to see if the term is compatible with an index +// ** column with affinity idxaff (one of the SQLITE_AFF_XYZ values). If so, +// ** it returns a pointer to the name of the collation sequence (e.g. "BINARY" +// ** or "NOCASE") used by the comparison in pTerm. If it is not compatible +// ** with affinity idxaff, NULL is returned. +// */ +func _indexInAffinityOk(tls *libc.TLS, pParse uintptr, pTerm uintptr, idxaff Tu8) (r uintptr) { + bp := tls.Alloc(80) + defer tls.Free(80) + var iField int32 + var pRet, pX, v1 uintptr + var _ /* inexpr at bp+0 */ TExpr + _, _, _, _ = iField, pRet, pX, v1 + pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr + _ = libc.Int32FromInt32(0) + if _sqlite3ExprIsVector(tls, (*TExpr)(unsafe.Pointer(pX)).FpLeft) != 0 { + iField = (*(*struct { + FleftColumn int32 + FiField int32 + })(unsafe.Pointer(pTerm + 32))).FiField - int32(1) + (*(*TExpr)(unsafe.Pointer(bp))).Fflags = uint32(0) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_EQ) + (*(*TExpr)(unsafe.Pointer(bp))).FpLeft = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pX)).FpLeft + 32)) + 8 + uintptr(iField)*32))).FpExpr + _ = libc.Int32FromInt32(0) + (*(*TExpr)(unsafe.Pointer(bp))).FpRight = (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pX + 32)))).FpEList + 8 + uintptr(iField)*32))).FpExpr + pX = bp + } + if _sqlite3IndexAffinityOk(tls, pX, idxaff) != 0 { + pRet = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pRet != 0 { + v1 = (*TCollSeq)(unsafe.Pointer(pRet)).FzName + } else { + v1 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + return v1 + } + return uintptr(0) +} + // C documentation // // /* @@ -141544,10 +142766,10 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { var iColumn Ti16 var iCur, j, k int32 - var pColl, pParse, pTerm, pWC, pX, v2 uintptr - var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, v2, v3, v5 /* The term being tested */ - k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ + var pColl, pParse, pTerm, pWC, pX, zCollName, v2, v5 uintptr + var v3, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, zCollName, v2, v3, v5, v6 /* The term being tested */ + k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ _ = libc.Int32FromInt32(0) pWC = (*TWhereScan)(unsafe.Pointer(pScan)).FpWC for int32(1) != 0 { @@ -141595,22 +142817,32 @@ func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { if (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName != 0 && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_ISNULL) == 0 { pParse = (*TWhereInfo)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr - if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { - goto _1 - } - _ = libc.Int32FromInt32(0) - pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) - if pColl == uintptr(0) { - pColl = (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FpDfltColl + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_IN) != 0 { + zCollName = _indexInAffinityOk(tls, pParse, pTerm, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) + if !(zCollName != 0) { + goto _1 + } + } else { + if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { + goto _1 + } + _ = libc.Int32FromInt32(0) + pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pColl != 0 { + v5 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName + } else { + v5 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + zCollName = v5 } - if _sqlite3StrICmp(tls, (*TCollSeq)(unsafe.Pointer(pColl)).FzName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { + if _sqlite3StrICmp(tls, zCollName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { goto _1 } } - if v5 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v5 { + if v6 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v6 { pX = (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight } - if v5 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { + if v6 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { goto _1 } (*TWhereScan)(unsafe.Pointer(pScan)).FpWC = pWC @@ -142104,7 +143336,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea /* Make the automatic index a partial index if there are terms in the ** WHERE clause (or the ON clause of a LEFT join) that constrain which ** rows of the target table (pSrc) that can be used. */ - if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)) != 0 { + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom), 0) != 0 { pPartial = _sqlite3ExprAnd(tls, pParse, pPartial, _sqlite3ExprDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr, 0)) } if _termCanDriveIndex(tls, pTerm, pSrc, notReady) != 0 { @@ -142120,7 +143352,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea } cMask = v2 if !(sentWarning != 0) { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_WARNING)|libc.Int32FromInt32(1)<>14)) != 0) { eDistinct = int32(2) + libc.BoolInt32(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_SORTBYGROUP) != 0) } else { if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_GROUPBY) != 0 { @@ -142615,7 +143848,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB */ pIdxInfo = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(96)+(libc.Uint64FromInt64(12)+libc.Uint64FromInt64(8))*uint64(nTerm)+uint64(8)*uint64(nOrderBy)+uint64(40)+uint64(8)*uint64(nTerm)) if pIdxInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1627, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1641, 0) return uintptr(0) } pHidden = pIdxInfo + 1*96 @@ -142707,7 +143940,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB break } pExpr1 = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr - if _sqlite3ExprIsConstant(tls, pExpr1) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr1) != 0 { goto _11 } _ = libc.Int32FromInt32(0) @@ -142786,9 +144019,9 @@ func _vtabBestIndex(tls *libc.TLS, pParse uintptr, pTab uintptr, p uintptr) (r i _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) } else { if !((*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3804, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3868, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3804, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3868, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) } } } @@ -144160,7 +145393,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x4>>2)) != 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) } - if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 && int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x2>>1)) == 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ) | libc.Int32FromInt32(WO_IN) | libc.Int32FromInt32(WO_IS)) } } @@ -144412,10 +145645,13 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } } } - /* Set rCostIdx to the cost of visiting selected rows in index. Add - ** it to pNew->rRun, which is currently set to the cost of the index - ** seek only. Then, if this is a non-covering index, add the cost of - ** visiting the rows in the main table. */ + /* Set rCostIdx to the estimated cost of visiting selected rows in the + ** index. The estimate is the sum of two values: + ** 1. The cost of doing one search-by-key to find the first matching + ** entry + ** 2. Stepping forward in the index pNew->nOut times to find all + ** additional matching entries. + */ _ = libc.Int32FromInt32(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_IPK) { /* The pProbe->szIdxRow is low for an IPK table since the interior @@ -144426,7 +145662,14 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } else { rCostIdx = int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut) + int32(1) + int32(15)*int32((*TIndex)(unsafe.Pointer(pProbe)).FszIdxRow)/int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FszTabRow)) } - (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + rCostIdx = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + /* Estimate the cost of running the loop. If all data is coming + ** from the index, then this is just the cost of doing the index + ** lookup and scan. But if some data is coming out of the main table, + ** we also have to add in the cost of doing pNew->nOut searches to + ** locate the row in the main table that corresponds to the index entry. + */ + (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = rCostIdx if (*TWhereLoop)(unsafe.Pointer(pNew)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IDX_ONLY)|libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_EXPRIDX)) == uint32(0) { (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun, int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut)+int32(16))) } @@ -144532,7 +145775,7 @@ func _indexMightHelpWithOrderBy(tls *libc.TLS, pBuilder uintptr, pIndex uintptr, if pExpr == uintptr(0) { goto _2 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { + if (int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) || int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_COLUMN)) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) < 0 { return int32(1) } @@ -144869,7 +146112,7 @@ func _wherePartIdxExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, pPart uintpt if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) != int32(TK_COLUMN) { return } - if !(_sqlite3ExprIsConstant(tls, pRight) != 0) { + if !(_sqlite3ExprIsConstant(tls, uintptr(0), pRight) != 0) { return } if !(_sqlite3IsBinary(tls, _sqlite3ExprCompareCollSeq(tls, pParse, pPart)) != 0) { @@ -145204,7 +146447,7 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in ** unique index is used (making the index functionally non-unique) ** then the sqlite_stat1 data becomes important for scoring the ** plan */ - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) } _sqlite3Stat4ProbeFree(tls, (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec) (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = 0 @@ -145233,6 +146476,31 @@ func _isLimitTerm(tls *libc.TLS, pTerm uintptr) (r int32) { return libc.BoolInt32(int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) >= int32(SQLITE_INDEX_CONSTRAINT_LIMIT) && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) <= int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } +// C documentation +// +// /* +// ** Return true if the first nCons constraints in the pUsage array are +// ** marked as in-use (have argvIndex>0). False otherwise. +// */ +func _allConstraintsUsed(tls *libc.TLS, aUsage uintptr, nCons int32) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < nCons) { + break + } + if (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer(aUsage + uintptr(ii)*8))).FargvIndex <= 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + // C documentation // // /* @@ -145330,7 +146598,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if v3 >= 0 { j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).FiTermOffset if iTerm >= nConstraint || j < 0 || j >= (*TWhereClause)(unsafe.Pointer(pWC)).FnTerm || *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(iTerm)*8)) != uintptr(0) || int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22440, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22585, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } pTerm1 = (*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(j)*56 @@ -145377,13 +146645,19 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, _ = libc.Int32FromInt32(0) } } + /* Unless pbRetryLimit is non-NULL, there should be no LIMIT/OFFSET + ** terms. And if there are any, they should follow all other terms. */ + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - if _isLimitTerm(tls, pTerm1) != 0 && *(*int32)(unsafe.Pointer(pbIn)) != 0 { + if _isLimitTerm(tls, pTerm1) != 0 && (*(*int32)(unsafe.Pointer(pbIn)) != 0 || !(_allConstraintsUsed(tls, pUsage, i) != 0)) { /* If there is an IN(...) term handled as an == (separate call to ** xFilter for each value on the RHS of the IN) and a LIMIT or - ** OFFSET term handled as well, the plan is unusable. Set output - ** variable *pbRetryLimit to true to tell the caller to retry with - ** LIMIT and OFFSET disabled. */ + ** OFFSET term handled as well, the plan is unusable. Similarly, + ** if there is a LIMIT/OFFSET and there are other unused terms, + ** the plan cannot be used. In these cases set variable *pbRetryLimit + ** to true to tell the caller to retry with LIMIT and OFFSET + ** disabled. */ if (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FneedToFreeIdxStr != 0 { Xsqlite3_free(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = uintptr(0) @@ -145408,7 +146682,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(i)*8)) == uintptr(0) { /* The non-zero argvIdx values must be contiguous. Raise an ** error if they are not */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22440, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22585, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } goto _6 @@ -145561,7 +146835,7 @@ func Xsqlite3_vtab_rhs_value(tls *libc.TLS, pIdxInfo uintptr, iCons int32, ppVal pVal = uintptr(0) rc = SQLITE_OK if iCons < 0 || iCons >= (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint { - rc = _sqlite3MisuseError(tls, int32(165251)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(166453)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = (*TWhereClause)(unsafe.Pointer((*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC)).Fa + uintptr((*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset)*56 @@ -146009,7 +147283,7 @@ func _whereLoopAddAll(tls *libc.TLS, pBuilder uintptr) (r int32) { if rc != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { if rc == int32(SQLITE_DONE) { /* We hit the query planner search limit set by iPlanLimit */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22466, 0) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22611, 0) rc = SQLITE_OK } else { break @@ -146398,7 +147672,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, } p = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr mTerm = _sqlite3WhereExprUsage(tls, pWInfo+592, p) - if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, p) != 0) { + if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, uintptr(0), p) != 0) { goto _9 } if mTerm & ^orderDistinctMask == uint64(0) { @@ -146819,7 +148093,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) iLoop++ } if nFrom == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22501, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22646, 0) _sqlite3DbFreeNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pSpace) return int32(SQLITE_ERROR) } @@ -146869,9 +148143,8 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) if int32((*TWherePath)(unsafe.Pointer(pFrom)).FisOrdered) == (*TExprList)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_ORDERED) } - if (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy != 0 && int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) > (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr { - (*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = int8((*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr) - } + /* vvv--- See check-in [12ad822d9b827777] on 2023-03-16 ---vvv */ + _ = libc.Int32FromInt32(0) } else { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FrevMask = (*TWherePath)(unsafe.Pointer(pFrom)).FrevLoop if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) <= 0 { @@ -146909,6 +148182,97 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) return SQLITE_OK } +// C documentation +// +// /* +// ** This routine implements a heuristic designed to improve query planning. +// ** This routine is called in between the first and second call to +// ** wherePathSolver(). Hence the name "Interstage" "Heuristic". +// ** +// ** The first call to wherePathSolver() (hereafter just "solver()") computes +// ** the best path without regard to the order of the outputs. The second call +// ** to the solver() builds upon the first call to try to find an alternative +// ** path that satisfies the ORDER BY clause. +// ** +// ** This routine looks at the results of the first solver() run, and for +// ** every FROM clause term in the resulting query plan that uses an equality +// ** constraint against an index, disable other WhereLoops for that same +// ** FROM clause term that would try to do a full-table scan. This prevents +// ** an index search from being converted into a full-table scan in order to +// ** satisfy an ORDER BY clause, since even though we might get slightly better +// ** performance using the full-scan without sorting if the output size +// ** estimates are very precise, we might also get severe performance +// ** degradation using the full-scan if the output size estimate is too large. +// ** It is better to err on the side of caution. +// ** +// ** Except, if the first solver() call generated a full-table scan in an outer +// ** loop then stop this analysis at the first full-scan, since the second +// ** solver() run might try to swap that full-scan for another in order to +// ** get the output into the correct order. In other words, we allow a +// ** rewrite like this: +// ** +// ** First Solver() Second Solver() +// ** |-- SCAN t1 |-- SCAN t2 +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** The purpose of this routine is to disallow rewrites such as: +// ** +// ** First Solver() Second Solver() +// ** |-- SEARCH t1 |-- SCAN t2 <--- bad! +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** See test cases in test/whereN.test for the real-world query that +// ** originally provoked this heuristic. +// */ +func _whereInterstageHeuristic(tls *libc.TLS, pWInfo uintptr) { + var i int32 + var iTab Tu8 + var p, pLoop uintptr + _, _, _, _ = i, iTab, p, pLoop + i = 0 + for { + if !(i < int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)) { + break + } + p = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(i)*104))).FpWLoop + if p == uintptr(0) { + break + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { + goto _1 + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_NULL)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != uint32(0) { + iTab = (*TWhereLoop)(unsafe.Pointer(p)).FiTab + pLoop = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpLoops + for { + if !(pLoop != 0) { + break + } + if int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab) != int32(iTab) { + goto _2 + } + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_CONSTRAINT)|libc.Int32FromInt32(WHERE_AUTO_INDEX)) != uint32(0) { + /* Auto-index and index-constrained loops allowed to remain */ + goto _2 + } + (*TWhereLoop)(unsafe.Pointer(pLoop)).Fprereq = uint64(-libc.Int32FromInt32(1)) /* Prevent 2nd solver() from using this one */ + goto _2 + _2: + ; + pLoop = (*TWhereLoop)(unsafe.Pointer(pLoop)).FpNextLoop + } + } else { + break + } + goto _1 + _1: + ; + i++ + } +} + // C documentation // // /* @@ -147227,7 +148591,7 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasStat1) == uint32(0) { break } - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) if i >= int32(1) && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&reqFlags == reqFlags && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_INDEXED)) != uint32(0) { if int32(nSearch) > int32((*TTable)(unsafe.Pointer(pTab)).FnRowLogEst) { *(*Tu32)(unsafe.Pointer(pLoop + 48)) |= uint32(WHERE_BLOOMFILTER) @@ -147242,6 +148606,69 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { } } +// C documentation +// +// /* +// ** Expression Node callback for sqlite3ExprCanReturnSubtype(). +// ** +// ** Only a function call is able to return a subtype. So if the node +// ** is not a function call, return WRC_Prune immediately. +// ** +// ** A function call is able to return a subtype if it has the +// ** SQLITE_RESULT_SUBTYPE property. +// ** +// ** Assume that every function is able to pass-through a subtype from +// ** one of its argument (using sqlite3_result_value()). Most functions +// ** are not this way, but we don't have a mechanism to distinguish those +// ** that are from those that are not, so assume they all work this way. +// ** That means that if one of its arguments is another function and that +// ** other function is able to return a subtype, then this function is +// ** able to return a subtype. +// */ +func _exprNodeCanReturnSubtype(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef uintptr + var n, v1 int32 + _, _, _, _ = db, n, pDef, v1 + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_FUNCTION) { + return int32(WRC_Prune) + } + _ = libc.Int32FromInt32(0) + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { + v1 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr + } else { + v1 = 0 + } + n = v1 + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + return int32(WRC_Prune) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Return TRUE if expression pExpr is able to return a subtype. +// ** +// ** A TRUE return does not guarantee that a subtype will be returned. +// ** It only indicates that a subtype return is possible. False positives +// ** are acceptable as they only disable an optimization. False negatives, +// ** on the other hand, can lead to incorrect answers. +// */ +func _sqlite3ExprCanReturnSubtype(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeCanReturnSubtype) + _sqlite3WalkExpr(tls, bp, pExpr) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) +} + // C documentation // // /* @@ -147256,9 +148683,9 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { // ** references to the corresponding column of the index. // */ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur int32, pTabItem uintptr) { - var db, p, pArg, pDef, pExpr, pTab uintptr - var i, j, n, v2 int32 - _, _, _, _, _, _, _, _, _, _ = db, i, j, n, p, pArg, pDef, pExpr, pTab, v2 + var i, j int32 + var p, pArg, pExpr, pTab uintptr + _, _, _, _, _, _ = i, j, p, pArg, pExpr, pTab _ = libc.Int32FromInt32(0) pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable i = 0 @@ -147276,22 +148703,14 @@ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur i goto _1 } } - if _sqlite3ExprIsConstant(tls, pExpr) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) != 0 { goto _1 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) { - db = (*TParse)(unsafe.Pointer(pParse)).Fdb - _ = libc.Int32FromInt32(0) - if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { - v2 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr - } else { - v2 = 0 - } - n = v2 - pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) - if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { - goto _1 - } + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) && _sqlite3ExprCanReturnSubtype(tls, pParse, pExpr) != 0 { + /* Functions that might set a subtype should not be replaced by the + ** value taken from an expression index since the index omits the + ** subtype. https://sqlite.org/forum/forumpost/68d284c86b082c3e */ + goto _1 } p = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(32)) if p == uintptr(0) { @@ -147465,7 +148884,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** bits in a Bitmask */ if (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc > int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22519, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22664, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) return uintptr(0) } /* This function normally generates a nested loop for all tables in @@ -147538,7 +148957,9 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if int32(wctrlFlags)&int32(WHERE_WANT_DISTINCT) != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_DistinctOpt)) == uint32(0) { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_UNIQUE) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22547, 0) + if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FselFlags&uint32(SF_MultiValue) == uint32(0) { + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22692, 0) + } } else { /* Assign a bit from the bitmask to every term in the FROM clause. ** @@ -147672,6 +149093,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy != 0 { + _whereInterstageHeuristic(tls, pWInfo) _wherePathSolver(tls, pWInfo, int16(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut)+int32(1))) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto whereBeginError @@ -147970,6 +149392,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiEndWhere = _sqlite3VdbeCurrentAddr(tls, v) return pWInfo /* Jump here if malloc fails */ + goto whereBeginError whereBeginError: ; if pWInfo != 0 { @@ -147993,10 +149416,10 @@ whereBeginError: // ** sqlite3WhereBegin() for additional information. // */ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { - var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, r1, ws, x, v4, v7 int32 - var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr + var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, r1, ws, x, v4, v7 int32 + var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pTabList = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList @@ -148139,7 +149562,14 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { addr = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfPos), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin) _ = libc.Int32FromInt32(0) if ws&int32(WHERE_IDX_ONLY) == 0 { + pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 _ = libc.Int32FromInt32(0) + if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x20>>5)) != 0 { + n1 = (*TSrcItem)(unsafe.Pointer(pSrc)).FregResult + _ = libc.Int32FromInt32(0) + m = int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FnCol) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, n1, n1+m-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur) } if ws&int32(WHERE_INDEXED) != 0 || ws&int32(WHERE_MULTI_OR) != 0 && *(*uintptr)(unsafe.Pointer(&(*TWhereLevel)(unsafe.Pointer(pLevel)).Fu)) != 0 { @@ -148188,6 +149618,7 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { ** OP_Rowid becomes OP_Null. */ if int32(uint32(*(*uint16)(unsafe.Pointer(pTabItem + 60 + 4))&0x20>>5)) != 0 { + _ = libc.Int32FromInt32(0) _translateColumnToCopy(tls, pParse, (*TWhereLevel)(unsafe.Pointer(pLevel)).FaddrBody, (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur, (*TSrcItem)(unsafe.Pointer(pTabItem)).FregResult, 0) goto _9 } @@ -148559,9 +149990,10 @@ func _nth_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) _ = nArg _ = apArg return + goto error_out error_out: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22565, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22710, -int32(1)) } func _nth_valueFinalizeFunc(tls *libc.TLS, pCtx uintptr) { @@ -148748,7 +150180,7 @@ func _ntileStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { if (*TNtileCtx)(unsafe.Pointer(p)).FnTotal == 0 { (*TNtileCtx)(unsafe.Pointer(p)).FnParam = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apArg))) if (*TNtileCtx)(unsafe.Pointer(p)).FnParam <= 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22621, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22766, -int32(1)) } } (*TNtileCtx)(unsafe.Pointer(p)).FnTotal++ @@ -149076,7 +150508,7 @@ func _windowFind(tls *libc.TLS, pParse uintptr, pList uintptr, zName uintptr) (r p = (*TWindow)(unsafe.Pointer(p)).FpNextWin } if p == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22666, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22811, libc.VaList(bp+8, zName)) } return p } @@ -149127,12 +150559,12 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin _sqlite3WindowChain(tls, pParse, pWin, pList) } if int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) == int32(TK_RANGE) && ((*TWindow)(unsafe.Pointer(pWin)).FpStart != 0 || (*TWindow)(unsafe.Pointer(pWin)).FpEnd != 0) && ((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy == uintptr(0) || (*TExprList)(unsafe.Pointer((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy)).FnExpr != int32(1)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22685, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22830, 0) } else { if (*TFuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TWindow)(unsafe.Pointer(pWin)).FpFilter != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22756, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22901, 0) } else { aUp = [8]struct { FzFunc uintptr @@ -149205,7 +150637,7 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin (*TWindow)(unsafe.Pointer(pWin)).FeEnd = uint8(aUp[i].FeEnd) (*TWindow)(unsafe.Pointer(pWin)).FeExclude = uint8(0) if int32((*TWindow)(unsafe.Pointer(pWin)).FeStart) == int32(TK_FOLLOWING) { - (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8139) + (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8264) } break } @@ -149493,7 +150925,7 @@ func _disallowAggregatesInOrderByCb(tls *libc.TLS, pWalker uintptr, pExpr uintpt defer tls.Free(16) if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_FUNCTION) && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { _ = libc.Int32FromInt32(0) - _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22819, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) + _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+22964, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) } return WRC_Continue } @@ -149636,7 +151068,7 @@ func _sqlite3WindowRewrite(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { ** keep everything legal in this case. */ if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1731)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1791)) } pSub = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(bp)), pSrc, pWhere, pGroupBy, pHaving, pSort, uint32(0), uintptr(0)) (*TSelect)(unsafe.Pointer(p)).FpSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), uintptr(0), uintptr(0)) @@ -149741,7 +151173,7 @@ func _sqlite3WindowListDelete(tls *libc.TLS, db uintptr, p uintptr) { // ** variable values in the expression tree. // */ func _sqlite3WindowOffsetExpr(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r uintptr) { - if 0 == _sqlite3ExprIsConstant(tls, pExpr) { + if 0 == _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) { if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameExprUnmap(tls, pParse, pExpr) } @@ -149787,7 +151219,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 ** frame boundary. */ if eStart == int32(TK_CURRENT) && eEnd == int32(TK_PRECEDING) || eStart == int32(TK_FOLLOWING) && (eEnd == int32(TK_PRECEDING) || eEnd == int32(TK_CURRENT)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22845, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22990, 0) goto windowAllocErr } pWin = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) @@ -149805,6 +151237,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 (*TWindow)(unsafe.Pointer(pWin)).FpEnd = _sqlite3WindowOffsetExpr(tls, pParse, pEnd) (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3WindowOffsetExpr(tls, pParse, pStart) return pWin + goto windowAllocErr windowAllocErr: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pEnd) @@ -149854,18 +151287,18 @@ func _sqlite3WindowChain(tls *libc.TLS, pParse uintptr, pWin uintptr, pList uint zErr = uintptr(0) /* Check for errors */ if (*TWindow)(unsafe.Pointer(pWin)).FpPartition != 0 { - zErr = __ccgo_ts + 22877 + zErr = __ccgo_ts + 23022 } else { if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 && (*TWindow)(unsafe.Pointer(pWin)).FpOrderBy != 0 { - zErr = __ccgo_ts + 22894 + zErr = __ccgo_ts + 23039 } else { if int32((*TWindow)(unsafe.Pointer(pExist)).FbImplicitFrame) == 0 { - zErr = __ccgo_ts + 22910 + zErr = __ccgo_ts + 23055 } } } if zErr != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22930, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23075, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) } else { (*TWindow)(unsafe.Pointer(pWin)).FpPartition = _sqlite3ExprListDup(tls, db, (*TWindow)(unsafe.Pointer(pExist)).FpPartition, 0) if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 { @@ -149893,7 +151326,7 @@ func _sqlite3WindowAttach(tls *libc.TLS, pParse uintptr, p uintptr, pWin uintptr *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(libc.Int32FromInt32(EP_WinFunc) | libc.Int32FromInt32(EP_FullSize)) (*TWindow)(unsafe.Pointer(pWin)).FpOwner = p if (*TExpr)(unsafe.Pointer(p)).Fflags&uint32(EP_Distinct) != 0 && int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) != int32(TK_FILTER) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22963, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23108, 0) } } else { _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pWin) @@ -150095,7 +151528,7 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regZero) if eCond >= int32(WINDOW_STARTING_NUM) { regString = _sqlite3GetTempReg(tls, pParse) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1657, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1671, -int32(1)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, _sqlite3VdbeCurrentAddr(tls, v)+int32(2), reg) _sqlite3VdbeChangeP5(tls, v, uint16(libc.Int32FromInt32(SQLITE_AFF_NUMERIC)|libc.Int32FromInt32(SQLITE_JUMPIFNULL))) _ = libc.Int32FromInt32(0) @@ -150116,11 +151549,11 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { } var _azErr = [5]uintptr{ - 0: __ccgo_ts + 23010, - 1: __ccgo_ts + 23063, - 2: __ccgo_ts + 22565, - 3: __ccgo_ts + 23114, - 4: __ccgo_ts + 23166, + 0: __ccgo_ts + 23155, + 1: __ccgo_ts + 23208, + 2: __ccgo_ts + 22710, + 3: __ccgo_ts + 23259, + 4: __ccgo_ts + 23311, } var _aOp1 = [5]int32{ @@ -150892,7 +152325,7 @@ func _windowCodeRangeTest(tls *libc.TLS, p uintptr, op int32, csr1 int32, regVal ** the add/subtract is skipped for these, as required. If reg1 is a NULL, ** then the arithmetic is performed, but since adding or subtracting from ** NULL is always NULL anyway, this case is handled as required too. */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1657, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1671, -int32(1)) addrGe = _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, 0, reg1) if op == int32(OP_Ge) && arith == int32(OP_Add) || op == int32(OP_Le) && arith == int32(OP_Subtract) { _sqlite3VdbeAddOp3(tls, v, op, reg2, lbl, reg1) @@ -151933,11 +153366,11 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { cnt++ if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != 0 || (*TSelect)(unsafe.Pointer(pLoop)).FpLimit != 0 { if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != uintptr(0) { - v1 = __ccgo_ts + 23216 + v1 = __ccgo_ts + 23361 } else { - v1 = __ccgo_ts + 23225 + v1 = __ccgo_ts + 23370 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23231, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23376, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) break } } @@ -151946,7 +153379,7 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { mxSelect = v2 } if v3 && v2 > 0 && cnt > mxSelect { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23273, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23418, 0) } } } @@ -151966,6 +153399,23 @@ func _attachWithToSelect(tls *libc.TLS, pParse uintptr, pSelect uintptr, pWith u return pSelect } +// C documentation +// +// /* Memory allocator for parser stack resizing. This is a thin wrapper around +// ** sqlite3_realloc() that includes a call to sqlite3FaultSim() to facilitate +// ** testing. +// */ +func _parserStackRealloc(tls *libc.TLS, pOld uintptr, newSize Tsqlite3_uint64) (r uintptr) { + var v1 uintptr + _ = v1 + if _sqlite3FaultSim(tls, int32(700)) != 0 { + v1 = uintptr(0) + } else { + v1 = Xsqlite3_realloc(tls, pOld, int32(newSize)) + } + return v1 +} + // C documentation // // /* Construct a new Expr object from a single token */ @@ -152035,7 +153485,7 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId _ = p p = _sqlite3ExprListAppend(tls, pParse, pPrior, uintptr(0)) if (hasCollate != 0 || sortOrder != -int32(1)) && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23307, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23452, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) } _sqlite3ExprListSetName(tls, pParse, p, pIdToken, int32(1)) return p @@ -152085,6 +153535,9 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser // ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser // ** sqlite3ParserCTX_* As sqlite3ParserARG_ except for %extra_context +// ** YYREALLOC Name of the realloc() function to use +// ** YYFREE Name of the free() function to use +// ** YYDYNSTACK True if stack space should be extended on heap // ** YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** YYNSTATE the combined number of states. @@ -152098,31 +153551,33 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** YY_NO_ACTION The yy_action[] code for no-op // ** YY_MIN_REDUCE Minimum value for reduce actions // ** YY_MAX_REDUCE Maximum value for reduce actions +// ** YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type TYYMINORTYPE = struct { Fyy0 [0]TToken - Fyy33 [0]uintptr - Fyy41 [0]uintptr - Fyy47 [0]uintptr - Fyy131 [0]uintptr - Fyy180 [0]TTrigEvent - Fyy231 [0]struct { + Fyy14 [0]uintptr + Fyy59 [0]uintptr + Fyy67 [0]uintptr + Fyy122 [0]uintptr + Fyy132 [0]uintptr + Fyy144 [0]int32 + Fyy168 [0]uintptr + Fyy203 [0]uintptr + Fyy211 [0]uintptr + Fyy269 [0]TOnOrUsing + Fyy286 [0]TTrigEvent + Fyy383 [0]struct { Fvalue int32 Fmask int32 } - Fyy254 [0]uintptr - Fyy285 [0]Tu32 - Fyy322 [0]uintptr - Fyy385 [0]uintptr - Fyy394 [0]int32 - Fyy444 [0]uintptr - Fyy516 [0]Tu8 - Fyy521 [0]uintptr - Fyy522 [0]uintptr - Fyy528 [0]uintptr - Fyy561 [0]TOnOrUsing - Fyy595 [0]TFrameBound + Fyy391 [0]Tu32 + Fyy427 [0]uintptr + Fyy454 [0]uintptr + Fyy462 [0]Tu8 + Fyy509 [0]TFrameBound + Fyy555 [0]uintptr Fyyinit int32 F__ccgo_pad20 [12]byte } @@ -152140,6 +153595,13 @@ type YYMINORTYPE = TYYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -152192,2152 +153654,2194 @@ type YYMINORTYPE = TYYMINORTYPE // ** yy_default[] Default action for each state. // ** // *********** Begin parsing tables **********************************************/ -var _yy_action = [2100]uint16{ - 0: uint16(572), - 1: uint16(210), - 2: uint16(572), - 3: uint16(119), - 4: uint16(116), - 5: uint16(231), - 6: uint16(572), - 7: uint16(119), - 8: uint16(116), - 9: uint16(231), - 10: uint16(572), - 11: uint16(1317), - 12: uint16(379), - 13: uint16(1296), - 14: uint16(410), - 15: uint16(566), - 16: uint16(566), - 17: uint16(566), - 18: uint16(572), - 19: uint16(411), - 20: uint16(380), - 21: uint16(1317), - 22: uint16(1279), - 23: uint16(42), - 24: uint16(42), - 25: uint16(42), - 26: uint16(42), - 27: uint16(210), - 28: uint16(1529), - 29: uint16(72), - 30: uint16(72), - 31: uint16(974), - 32: uint16(421), - 33: uint16(42), - 34: uint16(42), - 35: uint16(495), - 36: uint16(305), - 37: uint16(281), - 38: uint16(305), - 39: uint16(975), - 40: uint16(399), - 41: uint16(72), - 42: uint16(72), - 43: uint16(126), - 44: uint16(127), - 45: uint16(81), - 46: uint16(1217), - 47: uint16(1217), - 48: uint16(1054), - 49: uint16(1057), - 50: uint16(1044), - 51: uint16(1044), - 52: uint16(124), - 53: uint16(124), - 54: uint16(125), - 55: uint16(125), - 56: uint16(125), - 57: uint16(125), - 58: uint16(480), - 59: uint16(411), - 60: uint16(1244), - 61: uint16(1), - 62: uint16(1), - 63: uint16(578), - 64: uint16(2), - 65: uint16(1248), - 66: uint16(554), - 67: uint16(119), - 68: uint16(116), - 69: uint16(231), - 70: uint16(319), - 71: uint16(484), - 72: uint16(147), - 73: uint16(484), - 74: uint16(528), - 75: uint16(119), - 76: uint16(116), - 77: uint16(231), - 78: uint16(533), - 79: uint16(1330), - 80: uint16(419), - 81: uint16(527), - 82: uint16(143), - 83: uint16(126), - 84: uint16(127), - 85: uint16(81), - 86: uint16(1217), - 87: uint16(1217), - 88: uint16(1054), - 89: uint16(1057), - 90: uint16(1044), - 91: uint16(1044), - 92: uint16(124), - 93: uint16(124), - 94: uint16(125), - 95: uint16(125), - 96: uint16(125), - 97: uint16(125), - 98: uint16(119), - 99: uint16(116), - 100: uint16(231), - 101: uint16(329), - 102: uint16(123), - 103: uint16(123), - 104: uint16(123), - 105: uint16(123), - 106: uint16(122), - 107: uint16(122), - 108: uint16(121), - 109: uint16(121), - 110: uint16(121), - 111: uint16(120), - 112: uint16(117), - 113: uint16(448), - 114: uint16(286), - 115: uint16(286), - 116: uint16(286), - 117: uint16(286), - 118: uint16(446), - 119: uint16(446), - 120: uint16(446), - 121: uint16(1568), - 122: uint16(378), - 123: uint16(1570), - 124: uint16(1193), - 125: uint16(377), - 126: uint16(1164), - 127: uint16(569), - 128: uint16(1164), - 129: uint16(569), - 130: uint16(411), - 131: uint16(1568), - 132: uint16(541), - 133: uint16(261), - 134: uint16(228), - 135: uint16(448), - 136: uint16(102), - 137: uint16(146), - 138: uint16(453), - 139: uint16(318), - 140: uint16(563), - 141: uint16(242), - 142: uint16(123), - 143: uint16(123), - 144: uint16(123), - 145: uint16(123), - 146: uint16(122), - 147: uint16(122), - 148: uint16(121), - 149: uint16(121), - 150: uint16(121), - 151: uint16(120), - 152: uint16(117), - 153: uint16(448), - 154: uint16(126), - 155: uint16(127), - 156: uint16(81), - 157: uint16(1217), - 158: uint16(1217), - 159: uint16(1054), - 160: uint16(1057), - 161: uint16(1044), - 162: uint16(1044), - 163: uint16(124), - 164: uint16(124), - 165: uint16(125), - 166: uint16(125), - 167: uint16(125), - 168: uint16(125), - 169: uint16(143), - 170: uint16(296), - 171: uint16(1193), - 172: uint16(341), - 173: uint16(452), - 174: uint16(121), - 175: uint16(121), - 176: uint16(121), - 177: uint16(120), - 178: uint16(117), - 179: uint16(448), - 180: uint16(128), - 181: uint16(1193), - 182: uint16(1194), - 183: uint16(1193), - 184: uint16(149), - 185: uint16(445), - 186: uint16(444), - 187: uint16(572), - 188: uint16(120), - 189: uint16(117), - 190: uint16(448), - 191: uint16(125), - 192: uint16(125), - 193: uint16(125), - 194: uint16(125), - 195: uint16(118), - 196: uint16(123), - 197: uint16(123), - 198: uint16(123), - 199: uint16(123), - 200: uint16(122), - 201: uint16(122), - 202: uint16(121), - 203: uint16(121), - 204: uint16(121), - 205: uint16(120), - 206: uint16(117), - 207: uint16(448), - 208: uint16(458), - 209: uint16(114), - 210: uint16(13), - 211: uint16(13), - 212: uint16(550), - 213: uint16(123), - 214: uint16(123), - 215: uint16(123), - 216: uint16(123), - 217: uint16(122), - 218: uint16(122), - 219: uint16(121), - 220: uint16(121), - 221: uint16(121), - 222: uint16(120), - 223: uint16(117), - 224: uint16(448), - 225: uint16(424), - 226: uint16(318), - 227: uint16(563), - 228: uint16(1193), - 229: uint16(1194), - 230: uint16(1193), - 231: uint16(150), - 232: uint16(1225), - 233: uint16(411), - 234: uint16(1225), - 235: uint16(125), - 236: uint16(125), - 237: uint16(125), - 238: uint16(125), - 239: uint16(123), - 240: uint16(123), - 241: uint16(123), - 242: uint16(123), - 243: uint16(122), - 244: uint16(122), - 245: uint16(121), - 246: uint16(121), - 247: uint16(121), - 248: uint16(120), - 249: uint16(117), - 250: uint16(448), - 251: uint16(469), - 252: uint16(344), - 253: uint16(1041), - 254: uint16(1041), - 255: uint16(1055), - 256: uint16(1058), - 257: uint16(126), - 258: uint16(127), - 259: uint16(81), - 260: uint16(1217), - 261: uint16(1217), - 262: uint16(1054), - 263: uint16(1057), - 264: uint16(1044), - 265: uint16(1044), - 266: uint16(124), - 267: uint16(124), - 268: uint16(125), - 269: uint16(125), - 270: uint16(125), - 271: uint16(125), - 272: uint16(1282), - 273: uint16(526), - 274: uint16(224), - 275: uint16(1193), - 276: uint16(572), - 277: uint16(411), - 278: uint16(226), - 279: uint16(519), - 280: uint16(177), - 281: uint16(83), - 282: uint16(84), - 283: uint16(123), - 284: uint16(123), - 285: uint16(123), - 286: uint16(123), - 287: uint16(122), - 288: uint16(122), - 289: uint16(121), - 290: uint16(121), - 291: uint16(121), - 292: uint16(120), - 293: uint16(117), - 294: uint16(448), - 295: uint16(1010), - 296: uint16(16), - 297: uint16(16), - 298: uint16(1193), - 299: uint16(134), - 300: uint16(134), - 301: uint16(126), - 302: uint16(127), - 303: uint16(81), - 304: uint16(1217), - 305: uint16(1217), - 306: uint16(1054), - 307: uint16(1057), - 308: uint16(1044), - 309: uint16(1044), - 310: uint16(124), - 311: uint16(124), - 312: uint16(125), - 313: uint16(125), - 314: uint16(125), - 315: uint16(125), - 316: uint16(123), - 317: uint16(123), - 318: uint16(123), - 319: uint16(123), - 320: uint16(122), - 321: uint16(122), - 322: uint16(121), - 323: uint16(121), - 324: uint16(121), - 325: uint16(120), - 326: uint16(117), - 327: uint16(448), - 328: uint16(1045), - 329: uint16(550), - 330: uint16(1193), - 331: uint16(375), - 332: uint16(1193), - 333: uint16(1194), - 334: uint16(1193), - 335: uint16(254), - 336: uint16(1438), - 337: uint16(401), - 338: uint16(508), - 339: uint16(505), - 340: uint16(504), - 341: uint16(112), - 342: uint16(564), - 343: uint16(570), +var _yy_action = [2142]uint16{ + 0: uint16(576), + 1: uint16(128), + 2: uint16(125), + 3: uint16(232), + 4: uint16(1622), + 5: uint16(549), + 6: uint16(576), + 7: uint16(1290), + 8: uint16(1281), + 9: uint16(576), + 10: uint16(328), + 11: uint16(576), + 12: uint16(1300), + 13: uint16(212), + 14: uint16(576), + 15: uint16(128), + 16: uint16(125), + 17: uint16(232), + 18: uint16(578), + 19: uint16(412), + 20: uint16(578), + 21: uint16(391), + 22: uint16(1542), + 23: uint16(51), + 24: uint16(51), + 25: uint16(523), + 26: uint16(405), + 27: uint16(1293), + 28: uint16(529), + 29: uint16(51), + 30: uint16(51), + 31: uint16(983), + 32: uint16(51), + 33: uint16(51), + 34: uint16(81), + 35: uint16(81), + 36: uint16(1107), + 37: uint16(61), + 38: uint16(61), + 39: uint16(984), + 40: uint16(1107), + 41: uint16(1292), + 42: uint16(380), + 43: uint16(135), + 44: uint16(136), + 45: uint16(90), + 46: uint16(1228), + 47: uint16(1228), + 48: uint16(1063), + 49: uint16(1066), + 50: uint16(1053), + 51: uint16(1053), + 52: uint16(133), + 53: uint16(133), + 54: uint16(134), + 55: uint16(134), + 56: uint16(134), + 57: uint16(134), + 58: uint16(1577), + 59: uint16(412), + 60: uint16(287), + 61: uint16(287), + 62: uint16(7), + 63: uint16(287), + 64: uint16(287), + 65: uint16(422), + 66: uint16(1050), + 67: uint16(1050), + 68: uint16(1064), + 69: uint16(1067), + 70: uint16(289), + 71: uint16(556), + 72: uint16(492), + 73: uint16(573), + 74: uint16(524), + 75: uint16(561), + 76: uint16(573), + 77: uint16(497), + 78: uint16(561), + 79: uint16(482), + 80: uint16(530), + 81: uint16(262), + 82: uint16(229), + 83: uint16(135), + 84: uint16(136), + 85: uint16(90), + 86: uint16(1228), + 87: uint16(1228), + 88: uint16(1063), + 89: uint16(1066), + 90: uint16(1053), + 91: uint16(1053), + 92: uint16(133), + 93: uint16(133), + 94: uint16(134), + 95: uint16(134), + 96: uint16(134), + 97: uint16(134), + 98: uint16(128), + 99: uint16(125), + 100: uint16(232), + 101: uint16(1506), + 102: uint16(132), + 103: uint16(132), + 104: uint16(132), + 105: uint16(132), + 106: uint16(131), + 107: uint16(131), + 108: uint16(130), + 109: uint16(130), + 110: uint16(130), + 111: uint16(129), + 112: uint16(126), + 113: uint16(450), + 114: uint16(1204), + 115: uint16(1255), + 116: uint16(1), + 117: uint16(1), + 118: uint16(582), + 119: uint16(2), + 120: uint16(1259), + 121: uint16(1571), + 122: uint16(420), + 123: uint16(1582), + 124: uint16(379), + 125: uint16(320), + 126: uint16(1174), + 127: uint16(153), + 128: uint16(1174), + 129: uint16(1584), + 130: uint16(412), + 131: uint16(378), + 132: uint16(1582), + 133: uint16(543), + 134: uint16(1341), + 135: uint16(330), + 136: uint16(111), + 137: uint16(570), + 138: uint16(570), + 139: uint16(570), + 140: uint16(293), + 141: uint16(1054), + 142: uint16(132), + 143: uint16(132), + 144: uint16(132), + 145: uint16(132), + 146: uint16(131), + 147: uint16(131), + 148: uint16(130), + 149: uint16(130), + 150: uint16(130), + 151: uint16(129), + 152: uint16(126), + 153: uint16(450), + 154: uint16(135), + 155: uint16(136), + 156: uint16(90), + 157: uint16(1228), + 158: uint16(1228), + 159: uint16(1063), + 160: uint16(1066), + 161: uint16(1053), + 162: uint16(1053), + 163: uint16(133), + 164: uint16(133), + 165: uint16(134), + 166: uint16(134), + 167: uint16(134), + 168: uint16(134), + 169: uint16(287), + 170: uint16(287), + 171: uint16(1204), + 172: uint16(1205), + 173: uint16(1204), + 174: uint16(255), + 175: uint16(287), + 176: uint16(287), + 177: uint16(510), + 178: uint16(507), + 179: uint16(506), + 180: uint16(137), + 181: uint16(455), + 182: uint16(573), + 183: uint16(212), + 184: uint16(561), + 185: uint16(447), + 186: uint16(446), + 187: uint16(505), + 188: uint16(573), + 189: uint16(1616), + 190: uint16(561), + 191: uint16(134), + 192: uint16(134), + 193: uint16(134), + 194: uint16(134), + 195: uint16(127), + 196: uint16(400), + 197: uint16(243), + 198: uint16(132), + 199: uint16(132), + 200: uint16(132), + 201: uint16(132), + 202: uint16(131), + 203: uint16(131), + 204: uint16(130), + 205: uint16(130), + 206: uint16(130), + 207: uint16(129), + 208: uint16(126), + 209: uint16(450), + 210: uint16(282), + 211: uint16(471), + 212: uint16(345), + 213: uint16(132), + 214: uint16(132), + 215: uint16(132), + 216: uint16(132), + 217: uint16(131), + 218: uint16(131), + 219: uint16(130), + 220: uint16(130), + 221: uint16(130), + 222: uint16(129), + 223: uint16(126), + 224: uint16(450), + 225: uint16(574), + 226: uint16(155), + 227: uint16(936), + 228: uint16(936), + 229: uint16(454), + 230: uint16(227), + 231: uint16(521), + 232: uint16(1236), + 233: uint16(412), + 234: uint16(1236), + 235: uint16(134), + 236: uint16(134), + 237: uint16(134), + 238: uint16(134), + 239: uint16(132), + 240: uint16(132), + 241: uint16(132), + 242: uint16(132), + 243: uint16(131), + 244: uint16(131), + 245: uint16(130), + 246: uint16(130), + 247: uint16(130), + 248: uint16(129), + 249: uint16(126), + 250: uint16(450), + 251: uint16(130), + 252: uint16(130), + 253: uint16(130), + 254: uint16(129), + 255: uint16(126), + 256: uint16(450), + 257: uint16(135), + 258: uint16(136), + 259: uint16(90), + 260: uint16(1228), + 261: uint16(1228), + 262: uint16(1063), + 263: uint16(1066), + 264: uint16(1053), + 265: uint16(1053), + 266: uint16(133), + 267: uint16(133), + 268: uint16(134), + 269: uint16(134), + 270: uint16(134), + 271: uint16(134), + 272: uint16(128), + 273: uint16(125), + 274: uint16(232), + 275: uint16(450), + 276: uint16(576), + 277: uint16(412), + 278: uint16(397), + 279: uint16(1249), + 280: uint16(180), + 281: uint16(92), + 282: uint16(93), + 283: uint16(132), + 284: uint16(132), + 285: uint16(132), + 286: uint16(132), + 287: uint16(131), + 288: uint16(131), + 289: uint16(130), + 290: uint16(130), + 291: uint16(130), + 292: uint16(129), + 293: uint16(126), + 294: uint16(450), + 295: uint16(381), + 296: uint16(387), + 297: uint16(1204), + 298: uint16(383), + 299: uint16(81), + 300: uint16(81), + 301: uint16(135), + 302: uint16(136), + 303: uint16(90), + 304: uint16(1228), + 305: uint16(1228), + 306: uint16(1063), + 307: uint16(1066), + 308: uint16(1053), + 309: uint16(1053), + 310: uint16(133), + 311: uint16(133), + 312: uint16(134), + 313: uint16(134), + 314: uint16(134), + 315: uint16(134), + 316: uint16(132), + 317: uint16(132), + 318: uint16(132), + 319: uint16(132), + 320: uint16(131), + 321: uint16(131), + 322: uint16(130), + 323: uint16(130), + 324: uint16(130), + 325: uint16(129), + 326: uint16(126), + 327: uint16(450), + 328: uint16(131), + 329: uint16(131), + 330: uint16(130), + 331: uint16(130), + 332: uint16(130), + 333: uint16(129), + 334: uint16(126), + 335: uint16(450), + 336: uint16(556), + 337: uint16(1204), + 338: uint16(302), + 339: uint16(319), + 340: uint16(567), + 341: uint16(121), + 342: uint16(568), + 343: uint16(480), 344: uint16(4), - 345: uint16(929), - 346: uint16(929), - 347: uint16(435), - 348: uint16(503), - 349: uint16(342), - 350: uint16(464), - 351: uint16(330), - 352: uint16(362), - 353: uint16(396), - 354: uint16(1238), - 355: uint16(1193), - 356: uint16(1194), - 357: uint16(1193), - 358: uint16(567), - 359: uint16(572), - 360: uint16(123), - 361: uint16(123), - 362: uint16(123), - 363: uint16(123), - 364: uint16(122), - 365: uint16(122), - 366: uint16(121), - 367: uint16(121), - 368: uint16(121), - 369: uint16(120), - 370: uint16(117), - 371: uint16(448), - 372: uint16(286), - 373: uint16(286), - 374: uint16(371), - 375: uint16(1581), - 376: uint16(1607), - 377: uint16(445), - 378: uint16(444), - 379: uint16(155), - 380: uint16(411), - 381: uint16(449), - 382: uint16(72), - 383: uint16(72), - 384: uint16(1289), - 385: uint16(569), - 386: uint16(1222), - 387: uint16(1193), - 388: uint16(1194), - 389: uint16(1193), - 390: uint16(86), - 391: uint16(1224), - 392: uint16(273), - 393: uint16(561), - 394: uint16(547), - 395: uint16(520), - 396: uint16(520), - 397: uint16(572), - 398: uint16(99), - 399: uint16(1223), - 400: uint16(6), - 401: uint16(1281), - 402: uint16(476), - 403: uint16(143), - 404: uint16(126), - 405: uint16(127), - 406: uint16(81), - 407: uint16(1217), - 408: uint16(1217), - 409: uint16(1054), - 410: uint16(1057), - 411: uint16(1044), - 412: uint16(1044), - 413: uint16(124), - 414: uint16(124), - 415: uint16(125), - 416: uint16(125), - 417: uint16(125), - 418: uint16(125), - 419: uint16(554), - 420: uint16(13), - 421: uint16(13), - 422: uint16(1031), - 423: uint16(511), - 424: uint16(1225), - 425: uint16(1193), - 426: uint16(1225), - 427: uint16(553), - 428: uint16(110), - 429: uint16(110), - 430: uint16(224), - 431: uint16(572), - 432: uint16(1239), - 433: uint16(177), - 434: uint16(572), - 435: uint16(429), - 436: uint16(111), - 437: uint16(199), - 438: uint16(449), - 439: uint16(573), - 440: uint16(449), - 441: uint16(432), - 442: uint16(1555), - 443: uint16(1019), - 444: uint16(327), - 445: uint16(555), - 446: uint16(1193), - 447: uint16(272), - 448: uint16(289), - 449: uint16(370), - 450: uint16(514), - 451: uint16(365), - 452: uint16(513), - 453: uint16(259), - 454: uint16(72), - 455: uint16(72), - 456: uint16(547), - 457: uint16(72), - 458: uint16(72), - 459: uint16(361), - 460: uint16(318), - 461: uint16(563), - 462: uint16(1613), - 463: uint16(123), - 464: uint16(123), - 465: uint16(123), - 466: uint16(123), - 467: uint16(122), - 468: uint16(122), - 469: uint16(121), - 470: uint16(121), - 471: uint16(121), - 472: uint16(120), - 473: uint16(117), - 474: uint16(448), - 475: uint16(1019), - 476: uint16(1019), - 477: uint16(1021), - 478: uint16(1022), - 479: uint16(28), - 480: uint16(286), - 481: uint16(286), - 482: uint16(1193), - 483: uint16(1194), - 484: uint16(1193), - 485: uint16(1159), - 486: uint16(572), - 487: uint16(1612), - 488: uint16(411), - 489: uint16(904), - 490: uint16(192), - 491: uint16(554), - 492: uint16(358), - 493: uint16(569), - 494: uint16(554), - 495: uint16(940), - 496: uint16(537), - 497: uint16(521), - 498: uint16(1159), - 499: uint16(437), - 500: uint16(415), - 501: uint16(1159), - 502: uint16(556), - 503: uint16(1193), - 504: uint16(1194), - 505: uint16(1193), - 506: uint16(572), - 507: uint16(548), - 508: uint16(548), - 509: uint16(52), - 510: uint16(52), - 511: uint16(216), - 512: uint16(126), - 513: uint16(127), - 514: uint16(81), - 515: uint16(1217), - 516: uint16(1217), - 517: uint16(1054), - 518: uint16(1057), - 519: uint16(1044), - 520: uint16(1044), - 521: uint16(124), - 522: uint16(124), - 523: uint16(125), - 524: uint16(125), - 525: uint16(125), - 526: uint16(125), - 527: uint16(1193), - 528: uint16(478), - 529: uint16(136), - 530: uint16(136), - 531: uint16(411), - 532: uint16(286), - 533: uint16(286), - 534: uint16(1493), - 535: uint16(509), - 536: uint16(122), - 537: uint16(122), - 538: uint16(121), - 539: uint16(121), - 540: uint16(121), - 541: uint16(120), - 542: uint16(117), - 543: uint16(448), - 544: uint16(1010), - 545: uint16(569), - 546: uint16(522), - 547: uint16(219), - 548: uint16(545), - 549: uint16(545), - 550: uint16(318), - 551: uint16(563), - 552: uint16(143), - 553: uint16(6), - 554: uint16(536), - 555: uint16(126), - 556: uint16(127), - 557: uint16(81), - 558: uint16(1217), - 559: uint16(1217), - 560: uint16(1054), - 561: uint16(1057), - 562: uint16(1044), - 563: uint16(1044), - 564: uint16(124), - 565: uint16(124), - 566: uint16(125), - 567: uint16(125), - 568: uint16(125), - 569: uint16(125), - 570: uint16(1557), - 571: uint16(123), - 572: uint16(123), - 573: uint16(123), - 574: uint16(123), - 575: uint16(122), - 576: uint16(122), - 577: uint16(121), - 578: uint16(121), - 579: uint16(121), - 580: uint16(120), - 581: uint16(117), - 582: uint16(448), - 583: uint16(489), - 584: uint16(1193), - 585: uint16(1194), - 586: uint16(1193), - 587: uint16(486), - 588: uint16(283), - 589: uint16(1270), - 590: uint16(960), - 591: uint16(254), - 592: uint16(1193), - 593: uint16(375), - 594: uint16(508), - 595: uint16(505), - 596: uint16(504), - 597: uint16(1193), - 598: uint16(342), - 599: uint16(574), - 600: uint16(1193), - 601: uint16(574), - 602: uint16(411), - 603: uint16(294), - 604: uint16(503), - 605: uint16(960), - 606: uint16(879), - 607: uint16(193), - 608: uint16(484), - 609: uint16(318), - 610: uint16(563), - 611: uint16(386), - 612: uint16(292), - 613: uint16(382), - 614: uint16(123), - 615: uint16(123), - 616: uint16(123), - 617: uint16(123), - 618: uint16(122), - 619: uint16(122), - 620: uint16(121), - 621: uint16(121), - 622: uint16(121), - 623: uint16(120), - 624: uint16(117), - 625: uint16(448), - 626: uint16(126), - 627: uint16(127), - 628: uint16(81), - 629: uint16(1217), - 630: uint16(1217), - 631: uint16(1054), - 632: uint16(1057), - 633: uint16(1044), - 634: uint16(1044), - 635: uint16(124), - 636: uint16(124), - 637: uint16(125), - 638: uint16(125), - 639: uint16(125), - 640: uint16(125), - 641: uint16(411), - 642: uint16(396), - 643: uint16(1139), - 644: uint16(1193), - 645: uint16(872), - 646: uint16(101), - 647: uint16(286), - 648: uint16(286), - 649: uint16(1193), - 650: uint16(1194), - 651: uint16(1193), - 652: uint16(375), - 653: uint16(1096), - 654: uint16(1193), - 655: uint16(1194), - 656: uint16(1193), - 657: uint16(1193), - 658: uint16(1194), - 659: uint16(1193), - 660: uint16(569), - 661: uint16(459), - 662: uint16(33), - 663: uint16(375), - 664: uint16(235), - 665: uint16(126), - 666: uint16(127), - 667: uint16(81), - 668: uint16(1217), - 669: uint16(1217), - 670: uint16(1054), - 671: uint16(1057), - 672: uint16(1044), - 673: uint16(1044), - 674: uint16(124), - 675: uint16(124), - 676: uint16(125), - 677: uint16(125), - 678: uint16(125), - 679: uint16(125), - 680: uint16(1437), - 681: uint16(962), - 682: uint16(572), - 683: uint16(230), - 684: uint16(961), - 685: uint16(123), - 686: uint16(123), - 687: uint16(123), - 688: uint16(123), - 689: uint16(122), - 690: uint16(122), - 691: uint16(121), - 692: uint16(121), - 693: uint16(121), - 694: uint16(120), - 695: uint16(117), - 696: uint16(448), - 697: uint16(1159), - 698: uint16(230), - 699: uint16(1193), - 700: uint16(158), - 701: uint16(1193), - 702: uint16(1194), - 703: uint16(1193), - 704: uint16(1556), - 705: uint16(13), - 706: uint16(13), - 707: uint16(303), - 708: uint16(960), - 709: uint16(1233), - 710: uint16(1159), - 711: uint16(154), - 712: uint16(411), - 713: uint16(1159), - 714: uint16(375), - 715: uint16(1584), - 716: uint16(1177), - 717: uint16(5), - 718: uint16(371), - 719: uint16(1581), - 720: uint16(431), - 721: uint16(1239), - 722: uint16(3), - 723: uint16(960), - 724: uint16(123), - 725: uint16(123), - 726: uint16(123), - 727: uint16(123), - 728: uint16(122), - 729: uint16(122), - 730: uint16(121), - 731: uint16(121), - 732: uint16(121), - 733: uint16(120), - 734: uint16(117), - 735: uint16(448), - 736: uint16(126), - 737: uint16(127), - 738: uint16(81), - 739: uint16(1217), - 740: uint16(1217), - 741: uint16(1054), - 742: uint16(1057), - 743: uint16(1044), - 744: uint16(1044), - 745: uint16(124), - 746: uint16(124), - 747: uint16(125), - 748: uint16(125), - 749: uint16(125), - 750: uint16(125), - 751: uint16(411), - 752: uint16(210), - 753: uint16(571), - 754: uint16(1193), - 755: uint16(1032), - 756: uint16(1193), - 757: uint16(1194), - 758: uint16(1193), - 759: uint16(1193), - 760: uint16(390), - 761: uint16(855), - 762: uint16(156), - 763: uint16(1555), - 764: uint16(376), - 765: uint16(404), - 766: uint16(1101), - 767: uint16(1101), - 768: uint16(492), - 769: uint16(572), - 770: uint16(469), - 771: uint16(344), - 772: uint16(1322), - 773: uint16(1322), - 774: uint16(1555), - 775: uint16(126), - 776: uint16(127), - 777: uint16(81), - 778: uint16(1217), - 779: uint16(1217), - 780: uint16(1054), - 781: uint16(1057), - 782: uint16(1044), - 783: uint16(1044), - 784: uint16(124), - 785: uint16(124), - 786: uint16(125), - 787: uint16(125), - 788: uint16(125), - 789: uint16(125), - 790: uint16(130), - 791: uint16(572), - 792: uint16(13), - 793: uint16(13), - 794: uint16(532), - 795: uint16(123), - 796: uint16(123), - 797: uint16(123), - 798: uint16(123), - 799: uint16(122), - 800: uint16(122), - 801: uint16(121), - 802: uint16(121), - 803: uint16(121), - 804: uint16(120), - 805: uint16(117), - 806: uint16(448), - 807: uint16(304), - 808: uint16(572), - 809: uint16(457), - 810: uint16(229), - 811: uint16(1193), - 812: uint16(1194), - 813: uint16(1193), - 814: uint16(13), - 815: uint16(13), - 816: uint16(1193), - 817: uint16(1194), - 818: uint16(1193), - 819: uint16(1300), - 820: uint16(467), - 821: uint16(1270), - 822: uint16(411), - 823: uint16(1320), - 824: uint16(1320), - 825: uint16(1555), - 826: uint16(1015), - 827: uint16(457), - 828: uint16(456), - 829: uint16(436), - 830: uint16(301), - 831: uint16(72), - 832: uint16(72), - 833: uint16(1268), - 834: uint16(123), - 835: uint16(123), - 836: uint16(123), - 837: uint16(123), - 838: uint16(122), - 839: uint16(122), - 840: uint16(121), - 841: uint16(121), - 842: uint16(121), - 843: uint16(120), - 844: uint16(117), - 845: uint16(448), - 846: uint16(126), - 847: uint16(127), - 848: uint16(81), - 849: uint16(1217), - 850: uint16(1217), - 851: uint16(1054), - 852: uint16(1057), - 853: uint16(1044), - 854: uint16(1044), - 855: uint16(124), - 856: uint16(124), - 857: uint16(125), - 858: uint16(125), - 859: uint16(125), - 860: uint16(125), - 861: uint16(411), - 862: uint16(384), - 863: uint16(1076), - 864: uint16(1159), - 865: uint16(286), - 866: uint16(286), - 867: uint16(421), - 868: uint16(314), - 869: uint16(280), - 870: uint16(280), - 871: uint16(287), - 872: uint16(287), - 873: uint16(461), - 874: uint16(408), - 875: uint16(407), - 876: uint16(1539), - 877: uint16(1159), - 878: uint16(569), - 879: uint16(572), - 880: uint16(1159), - 881: uint16(1196), - 882: uint16(569), - 883: uint16(409), - 884: uint16(569), - 885: uint16(126), - 886: uint16(127), - 887: uint16(81), - 888: uint16(1217), - 889: uint16(1217), - 890: uint16(1054), - 891: uint16(1057), - 892: uint16(1044), - 893: uint16(1044), - 894: uint16(124), - 895: uint16(124), - 896: uint16(125), - 897: uint16(125), - 898: uint16(125), - 899: uint16(125), - 900: uint16(457), - 901: uint16(1485), - 902: uint16(13), - 903: uint16(13), - 904: uint16(1541), - 905: uint16(123), - 906: uint16(123), - 907: uint16(123), - 908: uint16(123), - 909: uint16(122), - 910: uint16(122), - 911: uint16(121), - 912: uint16(121), - 913: uint16(121), - 914: uint16(120), - 915: uint16(117), - 916: uint16(448), - 917: uint16(202), - 918: uint16(572), - 919: uint16(462), - 920: uint16(1587), - 921: uint16(578), - 922: uint16(2), - 923: uint16(1248), - 924: uint16(843), - 925: uint16(844), - 926: uint16(845), - 927: uint16(1563), - 928: uint16(319), - 929: uint16(409), - 930: uint16(147), - 931: uint16(6), - 932: uint16(411), - 933: uint16(257), - 934: uint16(256), - 935: uint16(255), - 936: uint16(208), - 937: uint16(1330), - 938: uint16(9), - 939: uint16(1196), - 940: uint16(264), - 941: uint16(72), - 942: uint16(72), - 943: uint16(1436), - 944: uint16(123), - 945: uint16(123), - 946: uint16(123), - 947: uint16(123), - 948: uint16(122), - 949: uint16(122), - 950: uint16(121), - 951: uint16(121), - 952: uint16(121), - 953: uint16(120), - 954: uint16(117), - 955: uint16(448), - 956: uint16(126), - 957: uint16(127), - 958: uint16(81), - 959: uint16(1217), - 960: uint16(1217), - 961: uint16(1054), - 962: uint16(1057), - 963: uint16(1044), - 964: uint16(1044), - 965: uint16(124), - 966: uint16(124), - 967: uint16(125), - 968: uint16(125), - 969: uint16(125), - 970: uint16(125), - 971: uint16(572), - 972: uint16(286), - 973: uint16(286), - 974: uint16(572), - 975: uint16(1213), - 976: uint16(411), - 977: uint16(577), - 978: uint16(315), - 979: uint16(1248), - 980: uint16(421), - 981: uint16(371), - 982: uint16(1581), - 983: uint16(356), - 984: uint16(319), - 985: uint16(569), - 986: uint16(147), - 987: uint16(495), - 988: uint16(529), - 989: uint16(1644), - 990: uint16(397), - 991: uint16(935), - 992: uint16(495), - 993: uint16(1330), - 994: uint16(71), - 995: uint16(71), - 996: uint16(934), - 997: uint16(72), - 998: uint16(72), - 999: uint16(242), - 1000: uint16(1328), - 1001: uint16(105), - 1002: uint16(81), - 1003: uint16(1217), - 1004: uint16(1217), - 1005: uint16(1054), - 1006: uint16(1057), - 1007: uint16(1044), - 1008: uint16(1044), - 1009: uint16(124), - 1010: uint16(124), - 1011: uint16(125), - 1012: uint16(125), - 1013: uint16(125), - 1014: uint16(125), - 1015: uint16(123), - 1016: uint16(123), - 1017: uint16(123), - 1018: uint16(123), - 1019: uint16(122), - 1020: uint16(122), - 1021: uint16(121), - 1022: uint16(121), - 1023: uint16(121), - 1024: uint16(120), - 1025: uint16(117), - 1026: uint16(448), - 1027: uint16(1117), - 1028: uint16(286), - 1029: uint16(286), - 1030: uint16(1422), - 1031: uint16(452), - 1032: uint16(1528), - 1033: uint16(1213), - 1034: uint16(443), - 1035: uint16(286), - 1036: uint16(286), - 1037: uint16(1492), - 1038: uint16(1355), - 1039: uint16(313), - 1040: uint16(478), - 1041: uint16(569), - 1042: uint16(1118), - 1043: uint16(454), - 1044: uint16(351), - 1045: uint16(495), - 1046: uint16(354), - 1047: uint16(1266), - 1048: uint16(569), - 1049: uint16(209), - 1050: uint16(572), - 1051: uint16(418), - 1052: uint16(179), - 1053: uint16(572), - 1054: uint16(1031), - 1055: uint16(242), - 1056: uint16(385), - 1057: uint16(1119), - 1058: uint16(523), - 1059: uint16(123), - 1060: uint16(123), - 1061: uint16(123), - 1062: uint16(123), - 1063: uint16(122), - 1064: uint16(122), - 1065: uint16(121), - 1066: uint16(121), - 1067: uint16(121), - 1068: uint16(120), - 1069: uint16(117), - 1070: uint16(448), - 1071: uint16(1020), - 1072: uint16(108), - 1073: uint16(72), - 1074: uint16(72), - 1075: uint16(1019), - 1076: uint16(13), - 1077: uint16(13), - 1078: uint16(915), - 1079: uint16(572), - 1080: uint16(1498), - 1081: uint16(572), - 1082: uint16(286), - 1083: uint16(286), - 1084: uint16(98), - 1085: uint16(530), - 1086: uint16(1537), - 1087: uint16(452), - 1088: uint16(916), - 1089: uint16(1334), - 1090: uint16(1329), - 1091: uint16(203), - 1092: uint16(411), - 1093: uint16(286), - 1094: uint16(286), - 1095: uint16(569), - 1096: uint16(152), - 1097: uint16(211), - 1098: uint16(1498), - 1099: uint16(1500), - 1100: uint16(426), - 1101: uint16(569), - 1102: uint16(56), - 1103: uint16(56), - 1104: uint16(57), - 1105: uint16(57), - 1106: uint16(569), - 1107: uint16(1019), - 1108: uint16(1019), - 1109: uint16(1021), - 1110: uint16(447), - 1111: uint16(572), - 1112: uint16(411), - 1113: uint16(531), - 1114: uint16(12), - 1115: uint16(297), - 1116: uint16(126), - 1117: uint16(127), - 1118: uint16(81), - 1119: uint16(1217), - 1120: uint16(1217), - 1121: uint16(1054), - 1122: uint16(1057), - 1123: uint16(1044), - 1124: uint16(1044), - 1125: uint16(124), - 1126: uint16(124), - 1127: uint16(125), - 1128: uint16(125), - 1129: uint16(125), - 1130: uint16(125), - 1131: uint16(572), - 1132: uint16(411), - 1133: uint16(867), - 1134: uint16(15), - 1135: uint16(15), - 1136: uint16(126), - 1137: uint16(127), - 1138: uint16(81), - 1139: uint16(1217), - 1140: uint16(1217), - 1141: uint16(1054), - 1142: uint16(1057), - 1143: uint16(1044), - 1144: uint16(1044), - 1145: uint16(124), - 1146: uint16(124), - 1147: uint16(125), - 1148: uint16(125), - 1149: uint16(125), - 1150: uint16(125), - 1151: uint16(373), - 1152: uint16(529), - 1153: uint16(264), - 1154: uint16(44), - 1155: uint16(44), - 1156: uint16(126), - 1157: uint16(115), - 1158: uint16(81), - 1159: uint16(1217), - 1160: uint16(1217), - 1161: uint16(1054), - 1162: uint16(1057), - 1163: uint16(1044), - 1164: uint16(1044), - 1165: uint16(124), - 1166: uint16(124), - 1167: uint16(125), - 1168: uint16(125), - 1169: uint16(125), - 1170: uint16(125), - 1171: uint16(1498), - 1172: uint16(478), - 1173: uint16(1271), - 1174: uint16(417), - 1175: uint16(123), - 1176: uint16(123), - 1177: uint16(123), - 1178: uint16(123), - 1179: uint16(122), - 1180: uint16(122), - 1181: uint16(121), - 1182: uint16(121), - 1183: uint16(121), - 1184: uint16(120), - 1185: uint16(117), - 1186: uint16(448), - 1187: uint16(205), - 1188: uint16(1213), - 1189: uint16(495), - 1190: uint16(430), - 1191: uint16(867), - 1192: uint16(468), - 1193: uint16(322), - 1194: uint16(495), - 1195: uint16(123), - 1196: uint16(123), - 1197: uint16(123), - 1198: uint16(123), - 1199: uint16(122), - 1200: uint16(122), - 1201: uint16(121), - 1202: uint16(121), - 1203: uint16(121), - 1204: uint16(120), - 1205: uint16(117), - 1206: uint16(448), - 1207: uint16(572), - 1208: uint16(557), - 1209: uint16(1140), - 1210: uint16(1642), - 1211: uint16(1422), - 1212: uint16(1642), - 1213: uint16(543), - 1214: uint16(572), - 1215: uint16(123), - 1216: uint16(123), - 1217: uint16(123), - 1218: uint16(123), - 1219: uint16(122), - 1220: uint16(122), - 1221: uint16(121), - 1222: uint16(121), - 1223: uint16(121), - 1224: uint16(120), - 1225: uint16(117), - 1226: uint16(448), - 1227: uint16(572), - 1228: uint16(1422), - 1229: uint16(572), - 1230: uint16(13), - 1231: uint16(13), - 1232: uint16(542), - 1233: uint16(323), - 1234: uint16(1325), - 1235: uint16(411), - 1236: uint16(334), - 1237: uint16(58), - 1238: uint16(58), - 1239: uint16(349), - 1240: uint16(1422), - 1241: uint16(1170), - 1242: uint16(326), - 1243: uint16(286), - 1244: uint16(286), - 1245: uint16(549), - 1246: uint16(1213), - 1247: uint16(300), - 1248: uint16(895), - 1249: uint16(530), - 1250: uint16(45), - 1251: uint16(45), - 1252: uint16(59), - 1253: uint16(59), - 1254: uint16(1140), - 1255: uint16(1643), - 1256: uint16(569), - 1257: uint16(1643), - 1258: uint16(565), - 1259: uint16(417), - 1260: uint16(127), - 1261: uint16(81), - 1262: uint16(1217), - 1263: uint16(1217), - 1264: uint16(1054), - 1265: uint16(1057), - 1266: uint16(1044), - 1267: uint16(1044), - 1268: uint16(124), - 1269: uint16(124), - 1270: uint16(125), - 1271: uint16(125), - 1272: uint16(125), - 1273: uint16(125), - 1274: uint16(1367), - 1275: uint16(373), - 1276: uint16(500), - 1277: uint16(290), - 1278: uint16(1193), - 1279: uint16(512), - 1280: uint16(1366), - 1281: uint16(427), - 1282: uint16(394), - 1283: uint16(394), - 1284: uint16(393), - 1285: uint16(275), - 1286: uint16(391), - 1287: uint16(896), - 1288: uint16(1138), - 1289: uint16(852), - 1290: uint16(478), - 1291: uint16(258), - 1292: uint16(1422), - 1293: uint16(1170), - 1294: uint16(463), - 1295: uint16(1159), - 1296: uint16(12), - 1297: uint16(331), - 1298: uint16(428), - 1299: uint16(333), - 1300: uint16(1117), - 1301: uint16(460), - 1302: uint16(236), - 1303: uint16(258), - 1304: uint16(325), - 1305: uint16(460), - 1306: uint16(544), - 1307: uint16(1544), - 1308: uint16(1159), - 1309: uint16(1098), - 1310: uint16(491), - 1311: uint16(1159), - 1312: uint16(324), - 1313: uint16(1098), - 1314: uint16(440), - 1315: uint16(1118), - 1316: uint16(335), - 1317: uint16(516), - 1318: uint16(123), - 1319: uint16(123), - 1320: uint16(123), - 1321: uint16(123), - 1322: uint16(122), - 1323: uint16(122), - 1324: uint16(121), - 1325: uint16(121), - 1326: uint16(121), - 1327: uint16(120), - 1328: uint16(117), - 1329: uint16(448), - 1330: uint16(1119), - 1331: uint16(318), - 1332: uint16(563), - 1333: uint16(1138), - 1334: uint16(572), - 1335: uint16(1193), - 1336: uint16(1194), - 1337: uint16(1193), - 1338: uint16(112), - 1339: uint16(564), - 1340: uint16(201), + 345: uint16(555), + 346: uint16(1149), + 347: uint16(1657), + 348: uint16(1628), + 349: uint16(1657), + 350: uint16(45), + 351: uint16(128), + 352: uint16(125), + 353: uint16(232), + 354: uint16(1204), + 355: uint16(1205), + 356: uint16(1204), + 357: uint16(1250), + 358: uint16(571), + 359: uint16(1169), + 360: uint16(132), + 361: uint16(132), + 362: uint16(132), + 363: uint16(132), + 364: uint16(131), + 365: uint16(131), + 366: uint16(130), + 367: uint16(130), + 368: uint16(130), + 369: uint16(129), + 370: uint16(126), + 371: uint16(450), + 372: uint16(1169), + 373: uint16(287), + 374: uint16(287), + 375: uint16(1169), + 376: uint16(1019), + 377: uint16(576), + 378: uint16(422), + 379: uint16(1019), + 380: uint16(412), + 381: uint16(451), + 382: uint16(1602), + 383: uint16(582), + 384: uint16(2), + 385: uint16(1259), + 386: uint16(573), + 387: uint16(44), + 388: uint16(561), + 389: uint16(95), + 390: uint16(320), + 391: uint16(110), + 392: uint16(153), + 393: uint16(565), + 394: uint16(1204), + 395: uint16(1205), + 396: uint16(1204), + 397: uint16(522), + 398: uint16(522), + 399: uint16(1341), + 400: uint16(81), + 401: uint16(81), + 402: uint16(7), + 403: uint16(44), + 404: uint16(135), + 405: uint16(136), + 406: uint16(90), + 407: uint16(1228), + 408: uint16(1228), + 409: uint16(1063), + 410: uint16(1066), + 411: uint16(1053), + 412: uint16(1053), + 413: uint16(133), + 414: uint16(133), + 415: uint16(134), + 416: uint16(134), + 417: uint16(134), + 418: uint16(134), + 419: uint16(295), + 420: uint16(1149), + 421: uint16(1658), + 422: uint16(1040), + 423: uint16(1658), + 424: uint16(1204), + 425: uint16(1147), + 426: uint16(319), + 427: uint16(567), + 428: uint16(119), + 429: uint16(119), + 430: uint16(343), + 431: uint16(466), + 432: uint16(331), + 433: uint16(343), + 434: uint16(287), + 435: uint16(287), + 436: uint16(120), + 437: uint16(556), + 438: uint16(451), + 439: uint16(577), + 440: uint16(451), + 441: uint16(1169), + 442: uint16(1169), + 443: uint16(1028), + 444: uint16(319), + 445: uint16(567), + 446: uint16(438), + 447: uint16(573), + 448: uint16(210), + 449: uint16(561), + 450: uint16(1339), + 451: uint16(1451), + 452: uint16(546), + 453: uint16(531), + 454: uint16(1169), + 455: uint16(1169), + 456: uint16(1598), + 457: uint16(1169), + 458: uint16(1169), + 459: uint16(416), + 460: uint16(319), + 461: uint16(567), + 462: uint16(243), + 463: uint16(132), + 464: uint16(132), + 465: uint16(132), + 466: uint16(132), + 467: uint16(131), + 468: uint16(131), + 469: uint16(130), + 470: uint16(130), + 471: uint16(130), + 472: uint16(129), + 473: uint16(126), + 474: uint16(450), + 475: uint16(1028), + 476: uint16(1028), + 477: uint16(1030), + 478: uint16(1031), + 479: uint16(35), + 480: uint16(44), + 481: uint16(1204), + 482: uint16(1205), + 483: uint16(1204), + 484: uint16(472), + 485: uint16(287), + 486: uint16(287), + 487: uint16(1328), + 488: uint16(412), + 489: uint16(1307), + 490: uint16(372), + 491: uint16(1595), + 492: uint16(359), + 493: uint16(225), + 494: uint16(454), + 495: uint16(1204), + 496: uint16(195), + 497: uint16(1328), + 498: uint16(573), + 499: uint16(1147), + 500: uint16(561), + 501: uint16(1333), + 502: uint16(1333), + 503: uint16(274), + 504: uint16(576), + 505: uint16(1188), + 506: uint16(576), + 507: uint16(340), + 508: uint16(46), + 509: uint16(196), + 510: uint16(537), + 511: uint16(217), + 512: uint16(135), + 513: uint16(136), + 514: uint16(90), + 515: uint16(1228), + 516: uint16(1228), + 517: uint16(1063), + 518: uint16(1066), + 519: uint16(1053), + 520: uint16(1053), + 521: uint16(133), + 522: uint16(133), + 523: uint16(134), + 524: uint16(134), + 525: uint16(134), + 526: uint16(134), + 527: uint16(19), + 528: uint16(19), + 529: uint16(19), + 530: uint16(19), + 531: uint16(412), + 532: uint16(581), + 533: uint16(1204), + 534: uint16(1259), + 535: uint16(511), + 536: uint16(1204), + 537: uint16(319), + 538: uint16(567), + 539: uint16(320), + 540: uint16(944), + 541: uint16(153), + 542: uint16(425), + 543: uint16(491), + 544: uint16(430), + 545: uint16(943), + 546: uint16(1204), + 547: uint16(488), + 548: uint16(1341), + 549: uint16(1450), + 550: uint16(532), + 551: uint16(1277), + 552: uint16(1204), + 553: uint16(1205), + 554: uint16(1204), + 555: uint16(135), + 556: uint16(136), + 557: uint16(90), + 558: uint16(1228), + 559: uint16(1228), + 560: uint16(1063), + 561: uint16(1066), + 562: uint16(1053), + 563: uint16(1053), + 564: uint16(133), + 565: uint16(133), + 566: uint16(134), + 567: uint16(134), + 568: uint16(134), + 569: uint16(134), + 570: uint16(575), + 571: uint16(132), + 572: uint16(132), + 573: uint16(132), + 574: uint16(132), + 575: uint16(131), + 576: uint16(131), + 577: uint16(130), + 578: uint16(130), + 579: uint16(130), + 580: uint16(129), + 581: uint16(126), + 582: uint16(450), + 583: uint16(287), + 584: uint16(287), + 585: uint16(528), + 586: uint16(287), + 587: uint16(287), + 588: uint16(372), + 589: uint16(1595), + 590: uint16(1204), + 591: uint16(1205), + 592: uint16(1204), + 593: uint16(1204), + 594: uint16(1205), + 595: uint16(1204), + 596: uint16(573), + 597: uint16(486), + 598: uint16(561), + 599: uint16(573), + 600: uint16(889), + 601: uint16(561), + 602: uint16(412), + 603: uint16(1204), + 604: uint16(1205), + 605: uint16(1204), + 606: uint16(886), + 607: uint16(40), + 608: uint16(22), + 609: uint16(22), + 610: uint16(220), + 611: uint16(243), + 612: uint16(525), + 613: uint16(1449), + 614: uint16(132), + 615: uint16(132), + 616: uint16(132), + 617: uint16(132), + 618: uint16(131), + 619: uint16(131), + 620: uint16(130), + 621: uint16(130), + 622: uint16(130), + 623: uint16(129), + 624: uint16(126), + 625: uint16(450), + 626: uint16(135), + 627: uint16(136), + 628: uint16(90), + 629: uint16(1228), + 630: uint16(1228), + 631: uint16(1063), + 632: uint16(1066), + 633: uint16(1053), + 634: uint16(1053), + 635: uint16(133), + 636: uint16(133), + 637: uint16(134), + 638: uint16(134), + 639: uint16(134), + 640: uint16(134), + 641: uint16(412), + 642: uint16(180), + 643: uint16(454), + 644: uint16(1204), + 645: uint16(879), + 646: uint16(255), + 647: uint16(287), + 648: uint16(287), + 649: uint16(510), + 650: uint16(507), + 651: uint16(506), + 652: uint16(372), + 653: uint16(1595), + 654: uint16(1568), + 655: uint16(1331), + 656: uint16(1331), + 657: uint16(576), + 658: uint16(889), + 659: uint16(505), + 660: uint16(573), + 661: uint16(44), + 662: uint16(561), + 663: uint16(559), + 664: uint16(1207), + 665: uint16(135), + 666: uint16(136), + 667: uint16(90), + 668: uint16(1228), + 669: uint16(1228), + 670: uint16(1063), + 671: uint16(1066), + 672: uint16(1053), + 673: uint16(1053), + 674: uint16(133), + 675: uint16(133), + 676: uint16(134), + 677: uint16(134), + 678: uint16(134), + 679: uint16(134), + 680: uint16(81), + 681: uint16(81), + 682: uint16(422), + 683: uint16(576), + 684: uint16(377), + 685: uint16(132), + 686: uint16(132), + 687: uint16(132), + 688: uint16(132), + 689: uint16(131), + 690: uint16(131), + 691: uint16(130), + 692: uint16(130), + 693: uint16(130), + 694: uint16(129), + 695: uint16(126), + 696: uint16(450), + 697: uint16(297), + 698: uint16(287), + 699: uint16(287), + 700: uint16(460), + 701: uint16(1204), + 702: uint16(1205), + 703: uint16(1204), + 704: uint16(1204), + 705: uint16(534), + 706: uint16(19), + 707: uint16(19), + 708: uint16(448), + 709: uint16(448), + 710: uint16(448), + 711: uint16(573), + 712: uint16(412), + 713: uint16(561), + 714: uint16(230), + 715: uint16(436), + 716: uint16(1187), + 717: uint16(535), + 718: uint16(319), + 719: uint16(567), + 720: uint16(363), + 721: uint16(432), + 722: uint16(1207), + 723: uint16(1435), + 724: uint16(132), + 725: uint16(132), + 726: uint16(132), + 727: uint16(132), + 728: uint16(131), + 729: uint16(131), + 730: uint16(130), + 731: uint16(130), + 732: uint16(130), + 733: uint16(129), + 734: uint16(126), + 735: uint16(450), + 736: uint16(135), + 737: uint16(136), + 738: uint16(90), + 739: uint16(1228), + 740: uint16(1228), + 741: uint16(1063), + 742: uint16(1066), + 743: uint16(1053), + 744: uint16(1053), + 745: uint16(133), + 746: uint16(133), + 747: uint16(134), + 748: uint16(134), + 749: uint16(134), + 750: uint16(134), + 751: uint16(412), + 752: uint16(211), + 753: uint16(949), + 754: uint16(1169), + 755: uint16(1041), + 756: uint16(1110), + 757: uint16(1110), + 758: uint16(494), + 759: uint16(547), + 760: uint16(547), + 761: uint16(1204), + 762: uint16(1205), + 763: uint16(1204), + 764: uint16(7), + 765: uint16(539), + 766: uint16(1570), + 767: uint16(1169), + 768: uint16(376), + 769: uint16(576), + 770: uint16(1169), + 771: uint16(5), + 772: uint16(1204), + 773: uint16(486), + 774: uint16(3), + 775: uint16(135), + 776: uint16(136), + 777: uint16(90), + 778: uint16(1228), + 779: uint16(1228), + 780: uint16(1063), + 781: uint16(1066), + 782: uint16(1053), + 783: uint16(1053), + 784: uint16(133), + 785: uint16(133), + 786: uint16(134), + 787: uint16(134), + 788: uint16(134), + 789: uint16(134), + 790: uint16(576), + 791: uint16(513), + 792: uint16(19), + 793: uint16(19), + 794: uint16(427), + 795: uint16(132), + 796: uint16(132), + 797: uint16(132), + 798: uint16(132), + 799: uint16(131), + 800: uint16(131), + 801: uint16(130), + 802: uint16(130), + 803: uint16(130), + 804: uint16(129), + 805: uint16(126), + 806: uint16(450), + 807: uint16(305), + 808: uint16(1204), + 809: uint16(433), + 810: uint16(225), + 811: uint16(1204), + 812: uint16(385), + 813: uint16(19), + 814: uint16(19), + 815: uint16(273), + 816: uint16(290), + 817: uint16(371), + 818: uint16(516), + 819: uint16(366), + 820: uint16(515), + 821: uint16(260), + 822: uint16(412), + 823: uint16(538), + 824: uint16(1568), + 825: uint16(549), + 826: uint16(1024), + 827: uint16(362), + 828: uint16(437), + 829: uint16(1204), + 830: uint16(1205), + 831: uint16(1204), + 832: uint16(902), + 833: uint16(1552), + 834: uint16(132), + 835: uint16(132), + 836: uint16(132), + 837: uint16(132), + 838: uint16(131), + 839: uint16(131), + 840: uint16(130), + 841: uint16(130), + 842: uint16(130), + 843: uint16(129), + 844: uint16(126), + 845: uint16(450), + 846: uint16(135), + 847: uint16(136), + 848: uint16(90), + 849: uint16(1228), + 850: uint16(1228), + 851: uint16(1063), + 852: uint16(1066), + 853: uint16(1053), + 854: uint16(1053), + 855: uint16(133), + 856: uint16(133), + 857: uint16(134), + 858: uint16(134), + 859: uint16(134), + 860: uint16(134), + 861: uint16(412), + 862: uint16(1435), + 863: uint16(514), + 864: uint16(1281), + 865: uint16(1204), + 866: uint16(1205), + 867: uint16(1204), + 868: uint16(1204), + 869: uint16(1205), + 870: uint16(1204), + 871: uint16(903), + 872: uint16(48), + 873: uint16(342), + 874: uint16(1568), + 875: uint16(1568), + 876: uint16(1279), + 877: uint16(1627), + 878: uint16(1568), + 879: uint16(911), + 880: uint16(576), + 881: uint16(129), + 882: uint16(126), + 883: uint16(450), + 884: uint16(110), + 885: uint16(135), + 886: uint16(136), + 887: uint16(90), + 888: uint16(1228), + 889: uint16(1228), + 890: uint16(1063), + 891: uint16(1066), + 892: uint16(1053), + 893: uint16(1053), + 894: uint16(133), + 895: uint16(133), + 896: uint16(134), + 897: uint16(134), + 898: uint16(134), + 899: uint16(134), + 900: uint16(265), + 901: uint16(576), + 902: uint16(459), + 903: uint16(19), + 904: uint16(19), + 905: uint16(132), + 906: uint16(132), + 907: uint16(132), + 908: uint16(132), + 909: uint16(131), + 910: uint16(131), + 911: uint16(130), + 912: uint16(130), + 913: uint16(130), + 914: uint16(129), + 915: uint16(126), + 916: uint16(450), + 917: uint16(1345), + 918: uint16(204), + 919: uint16(576), + 920: uint16(459), + 921: uint16(458), + 922: uint16(50), + 923: uint16(47), + 924: uint16(19), + 925: uint16(19), + 926: uint16(49), + 927: uint16(434), + 928: uint16(1105), + 929: uint16(573), + 930: uint16(497), + 931: uint16(561), + 932: uint16(412), + 933: uint16(428), + 934: uint16(108), + 935: uint16(1224), + 936: uint16(1569), + 937: uint16(1554), + 938: uint16(376), + 939: uint16(205), + 940: uint16(550), + 941: uint16(550), + 942: uint16(81), + 943: uint16(81), + 944: uint16(132), + 945: uint16(132), + 946: uint16(132), + 947: uint16(132), + 948: uint16(131), + 949: uint16(131), + 950: uint16(130), + 951: uint16(130), + 952: uint16(130), + 953: uint16(129), + 954: uint16(126), + 955: uint16(450), + 956: uint16(135), + 957: uint16(136), + 958: uint16(90), + 959: uint16(1228), + 960: uint16(1228), + 961: uint16(1063), + 962: uint16(1066), + 963: uint16(1053), + 964: uint16(1053), + 965: uint16(133), + 966: uint16(133), + 967: uint16(134), + 968: uint16(134), + 969: uint16(134), + 970: uint16(134), + 971: uint16(480), + 972: uint16(576), + 973: uint16(1204), + 974: uint16(576), + 975: uint16(1541), + 976: uint16(412), + 977: uint16(1435), + 978: uint16(969), + 979: uint16(315), + 980: uint16(1659), + 981: uint16(398), + 982: uint16(284), + 983: uint16(497), + 984: uint16(969), + 985: uint16(893), + 986: uint16(1569), + 987: uint16(1569), + 988: uint16(376), + 989: uint16(376), + 990: uint16(1569), + 991: uint16(461), + 992: uint16(376), + 993: uint16(1224), + 994: uint16(459), + 995: uint16(80), + 996: uint16(80), + 997: uint16(81), + 998: uint16(81), + 999: uint16(497), + 1000: uint16(374), + 1001: uint16(114), + 1002: uint16(90), + 1003: uint16(1228), + 1004: uint16(1228), + 1005: uint16(1063), + 1006: uint16(1066), + 1007: uint16(1053), + 1008: uint16(1053), + 1009: uint16(133), + 1010: uint16(133), + 1011: uint16(134), + 1012: uint16(134), + 1013: uint16(134), + 1014: uint16(134), + 1015: uint16(132), + 1016: uint16(132), + 1017: uint16(132), + 1018: uint16(132), + 1019: uint16(131), + 1020: uint16(131), + 1021: uint16(130), + 1022: uint16(130), + 1023: uint16(130), + 1024: uint16(129), + 1025: uint16(126), + 1026: uint16(450), + 1027: uint16(1204), + 1028: uint16(1505), + 1029: uint16(576), + 1030: uint16(1204), + 1031: uint16(1205), + 1032: uint16(1204), + 1033: uint16(1366), + 1034: uint16(316), + 1035: uint16(486), + 1036: uint16(281), + 1037: uint16(281), + 1038: uint16(497), + 1039: uint16(431), + 1040: uint16(557), + 1041: uint16(288), + 1042: uint16(288), + 1043: uint16(402), + 1044: uint16(1340), + 1045: uint16(471), + 1046: uint16(345), + 1047: uint16(298), + 1048: uint16(429), + 1049: uint16(573), + 1050: uint16(576), + 1051: uint16(561), + 1052: uint16(81), + 1053: uint16(81), + 1054: uint16(573), + 1055: uint16(374), + 1056: uint16(561), + 1057: uint16(971), + 1058: uint16(386), + 1059: uint16(132), + 1060: uint16(132), + 1061: uint16(132), + 1062: uint16(132), + 1063: uint16(131), + 1064: uint16(131), + 1065: uint16(130), + 1066: uint16(130), + 1067: uint16(130), + 1068: uint16(129), + 1069: uint16(126), + 1070: uint16(450), + 1071: uint16(231), + 1072: uint16(117), + 1073: uint16(81), + 1074: uint16(81), + 1075: uint16(287), + 1076: uint16(287), + 1077: uint16(231), + 1078: uint16(287), + 1079: uint16(287), + 1080: uint16(576), + 1081: uint16(1511), + 1082: uint16(576), + 1083: uint16(1336), + 1084: uint16(1204), + 1085: uint16(1205), + 1086: uint16(1204), + 1087: uint16(139), + 1088: uint16(573), + 1089: uint16(556), + 1090: uint16(561), + 1091: uint16(573), + 1092: uint16(412), + 1093: uint16(561), + 1094: uint16(441), + 1095: uint16(456), + 1096: uint16(969), + 1097: uint16(213), + 1098: uint16(558), + 1099: uint16(1511), + 1100: uint16(1513), + 1101: uint16(1550), + 1102: uint16(969), + 1103: uint16(143), + 1104: uint16(143), + 1105: uint16(145), + 1106: uint16(145), + 1107: uint16(1368), + 1108: uint16(314), + 1109: uint16(478), + 1110: uint16(444), + 1111: uint16(970), + 1112: uint16(412), + 1113: uint16(850), + 1114: uint16(851), + 1115: uint16(852), + 1116: uint16(135), + 1117: uint16(136), + 1118: uint16(90), + 1119: uint16(1228), + 1120: uint16(1228), + 1121: uint16(1063), + 1122: uint16(1066), + 1123: uint16(1053), + 1124: uint16(1053), + 1125: uint16(133), + 1126: uint16(133), + 1127: uint16(134), + 1128: uint16(134), + 1129: uint16(134), + 1130: uint16(134), + 1131: uint16(357), + 1132: uint16(412), + 1133: uint16(397), + 1134: uint16(1148), + 1135: uint16(304), + 1136: uint16(135), + 1137: uint16(136), + 1138: uint16(90), + 1139: uint16(1228), + 1140: uint16(1228), + 1141: uint16(1063), + 1142: uint16(1066), + 1143: uint16(1053), + 1144: uint16(1053), + 1145: uint16(133), + 1146: uint16(133), + 1147: uint16(134), + 1148: uint16(134), + 1149: uint16(134), + 1150: uint16(134), + 1151: uint16(1575), + 1152: uint16(323), + 1153: uint16(6), + 1154: uint16(862), + 1155: uint16(7), + 1156: uint16(135), + 1157: uint16(124), + 1158: uint16(90), + 1159: uint16(1228), + 1160: uint16(1228), + 1161: uint16(1063), + 1162: uint16(1066), + 1163: uint16(1053), + 1164: uint16(1053), + 1165: uint16(133), + 1166: uint16(133), + 1167: uint16(134), + 1168: uint16(134), + 1169: uint16(134), + 1170: uint16(134), + 1171: uint16(409), + 1172: uint16(408), + 1173: uint16(1511), + 1174: uint16(212), + 1175: uint16(132), + 1176: uint16(132), + 1177: uint16(132), + 1178: uint16(132), + 1179: uint16(131), + 1180: uint16(131), + 1181: uint16(130), + 1182: uint16(130), + 1183: uint16(130), + 1184: uint16(129), + 1185: uint16(126), + 1186: uint16(450), + 1187: uint16(411), + 1188: uint16(118), + 1189: uint16(1204), + 1190: uint16(116), + 1191: uint16(10), + 1192: uint16(352), + 1193: uint16(265), + 1194: uint16(355), + 1195: uint16(132), + 1196: uint16(132), + 1197: uint16(132), + 1198: uint16(132), + 1199: uint16(131), + 1200: uint16(131), + 1201: uint16(130), + 1202: uint16(130), + 1203: uint16(130), + 1204: uint16(129), + 1205: uint16(126), + 1206: uint16(450), + 1207: uint16(576), + 1208: uint16(324), + 1209: uint16(306), + 1210: uint16(576), + 1211: uint16(306), + 1212: uint16(1250), + 1213: uint16(469), + 1214: uint16(158), + 1215: uint16(132), + 1216: uint16(132), + 1217: uint16(132), + 1218: uint16(132), + 1219: uint16(131), + 1220: uint16(131), + 1221: uint16(130), + 1222: uint16(130), + 1223: uint16(130), + 1224: uint16(129), + 1225: uint16(126), + 1226: uint16(450), + 1227: uint16(207), + 1228: uint16(1224), + 1229: uint16(1126), + 1230: uint16(65), + 1231: uint16(65), + 1232: uint16(470), + 1233: uint16(66), + 1234: uint16(66), + 1235: uint16(412), + 1236: uint16(447), + 1237: uint16(446), + 1238: uint16(882), + 1239: uint16(531), + 1240: uint16(335), + 1241: uint16(258), + 1242: uint16(257), + 1243: uint16(256), + 1244: uint16(1127), + 1245: uint16(1233), + 1246: uint16(1204), + 1247: uint16(1205), + 1248: uint16(1204), + 1249: uint16(327), + 1250: uint16(1235), + 1251: uint16(874), + 1252: uint16(159), + 1253: uint16(576), + 1254: uint16(16), + 1255: uint16(480), + 1256: uint16(1085), + 1257: uint16(1040), + 1258: uint16(1234), + 1259: uint16(1128), + 1260: uint16(136), + 1261: uint16(90), + 1262: uint16(1228), + 1263: uint16(1228), + 1264: uint16(1063), + 1265: uint16(1066), + 1266: uint16(1053), + 1267: uint16(1053), + 1268: uint16(133), + 1269: uint16(133), + 1270: uint16(134), + 1271: uint16(134), + 1272: uint16(134), + 1273: uint16(134), + 1274: uint16(1029), + 1275: uint16(576), + 1276: uint16(81), + 1277: uint16(81), + 1278: uint16(1028), + 1279: uint16(1040), + 1280: uint16(922), + 1281: uint16(576), + 1282: uint16(463), + 1283: uint16(1236), + 1284: uint16(576), + 1285: uint16(1236), + 1286: uint16(1224), + 1287: uint16(502), + 1288: uint16(107), + 1289: uint16(1435), + 1290: uint16(923), + 1291: uint16(6), + 1292: uint16(576), + 1293: uint16(410), + 1294: uint16(1498), + 1295: uint16(882), + 1296: uint16(1029), + 1297: uint16(480), + 1298: uint16(21), + 1299: uint16(21), + 1300: uint16(1028), + 1301: uint16(332), + 1302: uint16(1380), + 1303: uint16(334), + 1304: uint16(53), + 1305: uint16(53), + 1306: uint16(497), + 1307: uint16(81), + 1308: uint16(81), + 1309: uint16(874), + 1310: uint16(1028), + 1311: uint16(1028), + 1312: uint16(1030), + 1313: uint16(445), + 1314: uint16(259), + 1315: uint16(19), + 1316: uint16(19), + 1317: uint16(533), + 1318: uint16(132), + 1319: uint16(132), + 1320: uint16(132), + 1321: uint16(132), + 1322: uint16(131), + 1323: uint16(131), + 1324: uint16(130), + 1325: uint16(130), + 1326: uint16(130), + 1327: uint16(129), + 1328: uint16(126), + 1329: uint16(450), + 1330: uint16(551), + 1331: uint16(301), + 1332: uint16(1028), + 1333: uint16(1028), + 1334: uint16(1030), + 1335: uint16(107), + 1336: uint16(532), + 1337: uint16(545), + 1338: uint16(121), + 1339: uint16(568), + 1340: uint16(1188), 1341: uint16(4), - 1342: uint16(238), - 1343: uint16(433), - 1344: uint16(935), - 1345: uint16(490), - 1346: uint16(285), - 1347: uint16(228), - 1348: uint16(1517), - 1349: uint16(934), - 1350: uint16(170), - 1351: uint16(560), - 1352: uint16(572), - 1353: uint16(142), - 1354: uint16(1516), - 1355: uint16(567), - 1356: uint16(572), - 1357: uint16(60), - 1358: uint16(60), - 1359: uint16(572), - 1360: uint16(416), - 1361: uint16(572), - 1362: uint16(441), - 1363: uint16(572), - 1364: uint16(535), - 1365: uint16(302), - 1366: uint16(875), - 1367: uint16(8), - 1368: uint16(487), - 1369: uint16(572), - 1370: uint16(237), - 1371: uint16(572), - 1372: uint16(416), - 1373: uint16(572), - 1374: uint16(485), - 1375: uint16(61), - 1376: uint16(61), - 1377: uint16(572), - 1378: uint16(449), - 1379: uint16(62), - 1380: uint16(62), - 1381: uint16(332), - 1382: uint16(63), - 1383: uint16(63), - 1384: uint16(46), - 1385: uint16(46), - 1386: uint16(47), - 1387: uint16(47), - 1388: uint16(361), - 1389: uint16(572), - 1390: uint16(561), - 1391: uint16(572), - 1392: uint16(48), - 1393: uint16(48), - 1394: uint16(50), - 1395: uint16(50), - 1396: uint16(51), - 1397: uint16(51), - 1398: uint16(572), - 1399: uint16(295), - 1400: uint16(64), - 1401: uint16(64), - 1402: uint16(482), - 1403: uint16(295), - 1404: uint16(539), - 1405: uint16(412), - 1406: uint16(471), - 1407: uint16(1031), - 1408: uint16(572), - 1409: uint16(538), - 1410: uint16(318), - 1411: uint16(563), - 1412: uint16(65), - 1413: uint16(65), - 1414: uint16(66), - 1415: uint16(66), - 1416: uint16(409), - 1417: uint16(475), - 1418: uint16(572), - 1419: uint16(1031), - 1420: uint16(572), - 1421: uint16(14), - 1422: uint16(14), - 1423: uint16(875), - 1424: uint16(1020), - 1425: uint16(110), - 1426: uint16(110), - 1427: uint16(409), - 1428: uint16(1019), - 1429: uint16(572), - 1430: uint16(474), - 1431: uint16(67), - 1432: uint16(67), - 1433: uint16(111), - 1434: uint16(455), - 1435: uint16(449), - 1436: uint16(573), - 1437: uint16(449), - 1438: uint16(98), - 1439: uint16(317), - 1440: uint16(1019), - 1441: uint16(132), - 1442: uint16(132), - 1443: uint16(133), - 1444: uint16(133), - 1445: uint16(572), - 1446: uint16(1561), - 1447: uint16(572), - 1448: uint16(974), - 1449: uint16(409), - 1450: uint16(6), - 1451: uint16(1562), - 1452: uint16(68), - 1453: uint16(68), - 1454: uint16(1560), - 1455: uint16(6), - 1456: uint16(975), - 1457: uint16(572), - 1458: uint16(6), - 1459: uint16(1559), - 1460: uint16(1019), - 1461: uint16(1019), - 1462: uint16(1021), - 1463: uint16(6), - 1464: uint16(346), - 1465: uint16(218), - 1466: uint16(101), - 1467: uint16(531), - 1468: uint16(53), - 1469: uint16(53), - 1470: uint16(69), - 1471: uint16(69), - 1472: uint16(1019), - 1473: uint16(1019), - 1474: uint16(1021), - 1475: uint16(1022), - 1476: uint16(28), - 1477: uint16(1586), - 1478: uint16(1181), - 1479: uint16(451), - 1480: uint16(70), - 1481: uint16(70), - 1482: uint16(290), - 1483: uint16(87), - 1484: uint16(215), - 1485: uint16(31), - 1486: uint16(1363), - 1487: uint16(394), - 1488: uint16(394), - 1489: uint16(393), - 1490: uint16(275), - 1491: uint16(391), - 1492: uint16(350), - 1493: uint16(109), - 1494: uint16(852), - 1495: uint16(107), - 1496: uint16(572), - 1497: uint16(112), - 1498: uint16(564), - 1499: uint16(483), - 1500: uint16(4), - 1501: uint16(1212), - 1502: uint16(572), - 1503: uint16(239), - 1504: uint16(153), - 1505: uint16(572), - 1506: uint16(39), - 1507: uint16(236), - 1508: uint16(1299), - 1509: uint16(325), - 1510: uint16(112), - 1511: uint16(564), - 1512: uint16(1298), - 1513: uint16(4), - 1514: uint16(567), - 1515: uint16(572), - 1516: uint16(32), - 1517: uint16(324), - 1518: uint16(572), - 1519: uint16(54), - 1520: uint16(54), - 1521: uint16(572), - 1522: uint16(1135), - 1523: uint16(353), - 1524: uint16(398), - 1525: uint16(165), - 1526: uint16(165), - 1527: uint16(567), - 1528: uint16(166), - 1529: uint16(166), - 1530: uint16(572), - 1531: uint16(291), - 1532: uint16(355), - 1533: uint16(572), - 1534: uint16(17), - 1535: uint16(357), - 1536: uint16(572), - 1537: uint16(449), - 1538: uint16(77), - 1539: uint16(77), - 1540: uint16(1313), - 1541: uint16(55), - 1542: uint16(55), - 1543: uint16(1297), - 1544: uint16(73), - 1545: uint16(73), - 1546: uint16(572), - 1547: uint16(238), - 1548: uint16(470), - 1549: uint16(561), - 1550: uint16(449), - 1551: uint16(472), - 1552: uint16(364), - 1553: uint16(135), - 1554: uint16(135), - 1555: uint16(170), - 1556: uint16(74), - 1557: uint16(74), - 1558: uint16(142), - 1559: uint16(163), - 1560: uint16(163), - 1561: uint16(374), - 1562: uint16(561), - 1563: uint16(539), - 1564: uint16(572), - 1565: uint16(321), - 1566: uint16(572), - 1567: uint16(886), - 1568: uint16(540), - 1569: uint16(137), - 1570: uint16(137), - 1571: uint16(339), - 1572: uint16(1353), - 1573: uint16(422), - 1574: uint16(298), - 1575: uint16(237), - 1576: uint16(539), - 1577: uint16(572), - 1578: uint16(1031), - 1579: uint16(572), - 1580: uint16(340), - 1581: uint16(538), - 1582: uint16(101), - 1583: uint16(369), - 1584: uint16(110), - 1585: uint16(110), - 1586: uint16(162), - 1587: uint16(131), - 1588: uint16(131), - 1589: uint16(164), - 1590: uint16(164), - 1591: uint16(1031), - 1592: uint16(111), - 1593: uint16(368), - 1594: uint16(449), - 1595: uint16(573), - 1596: uint16(449), + 1342: uint16(1126), + 1343: uint16(1576), + 1344: uint16(449), + 1345: uint16(576), + 1346: uint16(462), + 1347: uint16(7), + 1348: uint16(1282), + 1349: uint16(418), + 1350: uint16(462), + 1351: uint16(350), + 1352: uint16(1435), + 1353: uint16(576), + 1354: uint16(518), + 1355: uint16(571), + 1356: uint16(544), + 1357: uint16(1127), + 1358: uint16(121), + 1359: uint16(568), + 1360: uint16(442), + 1361: uint16(4), + 1362: uint16(1188), + 1363: uint16(464), + 1364: uint16(533), + 1365: uint16(1180), + 1366: uint16(1223), + 1367: uint16(9), + 1368: uint16(67), + 1369: uint16(67), + 1370: uint16(487), + 1371: uint16(576), + 1372: uint16(1128), + 1373: uint16(303), + 1374: uint16(410), + 1375: uint16(571), + 1376: uint16(54), + 1377: uint16(54), + 1378: uint16(451), + 1379: uint16(576), + 1380: uint16(123), + 1381: uint16(944), + 1382: uint16(576), + 1383: uint16(417), + 1384: uint16(576), + 1385: uint16(333), + 1386: uint16(943), + 1387: uint16(1379), + 1388: uint16(576), + 1389: uint16(236), + 1390: uint16(565), + 1391: uint16(576), + 1392: uint16(1574), + 1393: uint16(564), + 1394: uint16(68), + 1395: uint16(68), + 1396: uint16(7), + 1397: uint16(576), + 1398: uint16(451), + 1399: uint16(362), + 1400: uint16(419), + 1401: uint16(182), + 1402: uint16(69), + 1403: uint16(69), + 1404: uint16(541), + 1405: uint16(70), + 1406: uint16(70), + 1407: uint16(71), + 1408: uint16(71), + 1409: uint16(540), + 1410: uint16(565), + 1411: uint16(72), + 1412: uint16(72), + 1413: uint16(484), + 1414: uint16(55), + 1415: uint16(55), + 1416: uint16(473), + 1417: uint16(1180), + 1418: uint16(296), + 1419: uint16(1040), + 1420: uint16(56), + 1421: uint16(56), + 1422: uint16(296), + 1423: uint16(493), + 1424: uint16(541), + 1425: uint16(119), + 1426: uint16(119), + 1427: uint16(410), + 1428: uint16(1573), + 1429: uint16(542), + 1430: uint16(569), + 1431: uint16(418), + 1432: uint16(7), + 1433: uint16(120), + 1434: uint16(1244), + 1435: uint16(451), + 1436: uint16(577), + 1437: uint16(451), + 1438: uint16(465), + 1439: uint16(1040), + 1440: uint16(1028), + 1441: uint16(576), + 1442: uint16(1557), + 1443: uint16(552), + 1444: uint16(476), + 1445: uint16(119), + 1446: uint16(119), + 1447: uint16(527), + 1448: uint16(259), + 1449: uint16(121), + 1450: uint16(568), + 1451: uint16(240), + 1452: uint16(4), + 1453: uint16(120), + 1454: uint16(576), + 1455: uint16(451), + 1456: uint16(577), + 1457: uint16(451), + 1458: uint16(576), + 1459: uint16(477), + 1460: uint16(1028), + 1461: uint16(576), + 1462: uint16(156), + 1463: uint16(576), + 1464: uint16(57), + 1465: uint16(57), + 1466: uint16(571), + 1467: uint16(576), + 1468: uint16(286), + 1469: uint16(229), + 1470: uint16(410), + 1471: uint16(336), + 1472: uint16(1028), + 1473: uint16(1028), + 1474: uint16(1030), + 1475: uint16(1031), + 1476: uint16(35), + 1477: uint16(59), + 1478: uint16(59), + 1479: uint16(219), + 1480: uint16(983), + 1481: uint16(60), + 1482: uint16(60), + 1483: uint16(220), + 1484: uint16(73), + 1485: uint16(73), + 1486: uint16(74), + 1487: uint16(74), + 1488: uint16(984), + 1489: uint16(451), + 1490: uint16(75), + 1491: uint16(75), + 1492: uint16(1028), + 1493: uint16(1028), + 1494: uint16(1030), + 1495: uint16(1031), + 1496: uint16(35), + 1497: uint16(96), + 1498: uint16(216), + 1499: uint16(291), + 1500: uint16(552), + 1501: uint16(565), + 1502: uint16(1188), + 1503: uint16(318), + 1504: uint16(395), + 1505: uint16(395), + 1506: uint16(394), + 1507: uint16(276), + 1508: uint16(392), + 1509: uint16(576), + 1510: uint16(485), + 1511: uint16(859), + 1512: uint16(474), + 1513: uint16(1311), + 1514: uint16(410), + 1515: uint16(541), + 1516: uint16(576), + 1517: uint16(417), + 1518: uint16(1530), + 1519: uint16(1144), + 1520: uint16(540), + 1521: uint16(399), + 1522: uint16(1188), + 1523: uint16(292), + 1524: uint16(237), + 1525: uint16(1153), + 1526: uint16(326), + 1527: uint16(38), + 1528: uint16(23), + 1529: uint16(576), + 1530: uint16(1040), + 1531: uint16(576), + 1532: uint16(20), + 1533: uint16(20), + 1534: uint16(325), + 1535: uint16(299), + 1536: uint16(119), + 1537: uint16(119), + 1538: uint16(164), + 1539: uint16(76), + 1540: uint16(76), + 1541: uint16(1529), + 1542: uint16(121), + 1543: uint16(568), + 1544: uint16(120), + 1545: uint16(4), + 1546: uint16(451), + 1547: uint16(577), + 1548: uint16(451), + 1549: uint16(203), + 1550: uint16(576), + 1551: uint16(1028), + 1552: uint16(141), + 1553: uint16(141), + 1554: uint16(142), + 1555: uint16(142), + 1556: uint16(576), + 1557: uint16(322), + 1558: uint16(39), + 1559: uint16(571), + 1560: uint16(341), + 1561: uint16(1021), + 1562: uint16(110), + 1563: uint16(264), + 1564: uint16(239), + 1565: uint16(901), + 1566: uint16(900), + 1567: uint16(423), + 1568: uint16(242), + 1569: uint16(908), + 1570: uint16(909), + 1571: uint16(370), + 1572: uint16(173), + 1573: uint16(77), + 1574: uint16(77), + 1575: uint16(43), + 1576: uint16(479), + 1577: uint16(1310), + 1578: uint16(264), + 1579: uint16(62), + 1580: uint16(62), + 1581: uint16(369), + 1582: uint16(451), + 1583: uint16(1028), + 1584: uint16(1028), + 1585: uint16(1030), + 1586: uint16(1031), + 1587: uint16(35), + 1588: uint16(1601), + 1589: uint16(1192), + 1590: uint16(453), + 1591: uint16(1092), + 1592: uint16(238), + 1593: uint16(291), + 1594: uint16(565), + 1595: uint16(163), + 1596: uint16(1309), 1597: uint16(110), - 1598: uint16(110), - 1599: uint16(1019), - 1600: uint16(157), - 1601: uint16(157), - 1602: uint16(141), - 1603: uint16(141), - 1604: uint16(572), - 1605: uint16(111), - 1606: uint16(572), - 1607: uint16(449), - 1608: uint16(573), - 1609: uint16(449), - 1610: uint16(412), - 1611: uint16(288), - 1612: uint16(1019), - 1613: uint16(572), - 1614: uint16(882), - 1615: uint16(318), - 1616: uint16(563), - 1617: uint16(572), - 1618: uint16(219), - 1619: uint16(572), - 1620: uint16(241), - 1621: uint16(1012), - 1622: uint16(477), - 1623: uint16(263), - 1624: uint16(263), - 1625: uint16(894), - 1626: uint16(893), - 1627: uint16(140), - 1628: uint16(140), - 1629: uint16(138), - 1630: uint16(138), - 1631: uint16(1019), - 1632: uint16(1019), - 1633: uint16(1021), - 1634: uint16(1022), - 1635: uint16(28), - 1636: uint16(139), - 1637: uint16(139), - 1638: uint16(525), - 1639: uint16(455), - 1640: uint16(76), - 1641: uint16(76), - 1642: uint16(78), - 1643: uint16(78), - 1644: uint16(1019), - 1645: uint16(1019), - 1646: uint16(1021), - 1647: uint16(1022), - 1648: uint16(28), - 1649: uint16(1181), - 1650: uint16(451), - 1651: uint16(572), - 1652: uint16(1083), - 1653: uint16(290), - 1654: uint16(112), - 1655: uint16(564), - 1656: uint16(1575), - 1657: uint16(4), - 1658: uint16(394), - 1659: uint16(394), - 1660: uint16(393), - 1661: uint16(275), - 1662: uint16(391), - 1663: uint16(572), - 1664: uint16(1023), - 1665: uint16(852), - 1666: uint16(572), - 1667: uint16(479), - 1668: uint16(345), - 1669: uint16(263), - 1670: uint16(101), - 1671: uint16(567), - 1672: uint16(882), - 1673: uint16(1376), - 1674: uint16(75), - 1675: uint16(75), - 1676: uint16(1421), - 1677: uint16(501), - 1678: uint16(236), - 1679: uint16(260), - 1680: uint16(325), - 1681: uint16(112), - 1682: uint16(564), - 1683: uint16(359), - 1684: uint16(4), - 1685: uint16(101), - 1686: uint16(43), - 1687: uint16(43), - 1688: uint16(324), - 1689: uint16(49), - 1690: uint16(49), - 1691: uint16(901), - 1692: uint16(902), - 1693: uint16(161), - 1694: uint16(449), - 1695: uint16(101), - 1696: uint16(977), - 1697: uint16(978), - 1698: uint16(567), - 1699: uint16(1079), - 1700: uint16(1349), - 1701: uint16(260), - 1702: uint16(965), - 1703: uint16(932), - 1704: uint16(263), - 1705: uint16(114), - 1706: uint16(561), - 1707: uint16(1095), - 1708: uint16(517), - 1709: uint16(1095), - 1710: uint16(1083), - 1711: uint16(1094), - 1712: uint16(865), - 1713: uint16(1094), - 1714: uint16(151), - 1715: uint16(933), - 1716: uint16(1144), - 1717: uint16(114), - 1718: uint16(238), - 1719: uint16(1361), - 1720: uint16(558), - 1721: uint16(449), - 1722: uint16(1023), - 1723: uint16(559), - 1724: uint16(1426), - 1725: uint16(1278), - 1726: uint16(170), - 1727: uint16(1269), - 1728: uint16(1257), - 1729: uint16(142), - 1730: uint16(1601), - 1731: uint16(1256), - 1732: uint16(1258), - 1733: uint16(561), - 1734: uint16(1594), - 1735: uint16(1031), - 1736: uint16(496), - 1737: uint16(278), - 1738: uint16(213), - 1739: uint16(1346), - 1740: uint16(310), - 1741: uint16(110), - 1742: uint16(110), - 1743: uint16(939), - 1744: uint16(311), - 1745: uint16(312), - 1746: uint16(237), - 1747: uint16(11), - 1748: uint16(234), - 1749: uint16(111), - 1750: uint16(221), - 1751: uint16(449), - 1752: uint16(573), - 1753: uint16(449), - 1754: uint16(293), - 1755: uint16(395), - 1756: uint16(1019), - 1757: uint16(1408), - 1758: uint16(337), - 1759: uint16(1403), - 1760: uint16(1396), - 1761: uint16(338), - 1762: uint16(1031), - 1763: uint16(299), - 1764: uint16(343), - 1765: uint16(1413), - 1766: uint16(1412), - 1767: uint16(481), - 1768: uint16(110), - 1769: uint16(110), - 1770: uint16(506), - 1771: uint16(402), - 1772: uint16(225), - 1773: uint16(1296), - 1774: uint16(206), - 1775: uint16(367), - 1776: uint16(111), - 1777: uint16(1358), - 1778: uint16(449), - 1779: uint16(573), - 1780: uint16(449), - 1781: uint16(412), - 1782: uint16(1359), - 1783: uint16(1019), - 1784: uint16(1489), - 1785: uint16(1488), - 1786: uint16(318), - 1787: uint16(563), - 1788: uint16(1019), - 1789: uint16(1019), - 1790: uint16(1021), - 1791: uint16(1022), - 1792: uint16(28), - 1793: uint16(562), - 1794: uint16(207), - 1795: uint16(220), - 1796: uint16(80), - 1797: uint16(564), - 1798: uint16(389), - 1799: uint16(4), - 1800: uint16(1597), - 1801: uint16(1357), - 1802: uint16(552), - 1803: uint16(1356), - 1804: uint16(1233), - 1805: uint16(181), - 1806: uint16(267), - 1807: uint16(232), - 1808: uint16(1536), - 1809: uint16(1534), - 1810: uint16(455), - 1811: uint16(1230), - 1812: uint16(420), - 1813: uint16(567), - 1814: uint16(82), - 1815: uint16(1019), - 1816: uint16(1019), - 1817: uint16(1021), - 1818: uint16(1022), - 1819: uint16(28), - 1820: uint16(86), - 1821: uint16(217), - 1822: uint16(85), - 1823: uint16(1494), - 1824: uint16(190), - 1825: uint16(175), - 1826: uint16(183), - 1827: uint16(465), - 1828: uint16(185), - 1829: uint16(466), - 1830: uint16(36), - 1831: uint16(1409), - 1832: uint16(186), - 1833: uint16(187), - 1834: uint16(188), - 1835: uint16(499), - 1836: uint16(449), - 1837: uint16(244), - 1838: uint16(37), - 1839: uint16(99), - 1840: uint16(400), - 1841: uint16(1415), - 1842: uint16(1414), - 1843: uint16(488), - 1844: uint16(1417), - 1845: uint16(194), - 1846: uint16(473), - 1847: uint16(403), - 1848: uint16(561), - 1849: uint16(1483), - 1850: uint16(248), - 1851: uint16(92), - 1852: uint16(1505), - 1853: uint16(494), - 1854: uint16(198), - 1855: uint16(279), - 1856: uint16(112), - 1857: uint16(564), - 1858: uint16(250), - 1859: uint16(4), - 1860: uint16(348), - 1861: uint16(497), - 1862: uint16(405), - 1863: uint16(352), - 1864: uint16(1259), - 1865: uint16(251), - 1866: uint16(252), - 1867: uint16(515), - 1868: uint16(1316), - 1869: uint16(434), - 1870: uint16(1315), - 1871: uint16(1314), - 1872: uint16(94), - 1873: uint16(567), - 1874: uint16(1307), - 1875: uint16(886), - 1876: uint16(1306), - 1877: uint16(1031), - 1878: uint16(226), - 1879: uint16(406), - 1880: uint16(1611), - 1881: uint16(1610), - 1882: uint16(438), - 1883: uint16(110), - 1884: uint16(110), - 1885: uint16(1580), - 1886: uint16(1286), - 1887: uint16(524), - 1888: uint16(439), - 1889: uint16(308), - 1890: uint16(266), - 1891: uint16(111), - 1892: uint16(1285), - 1893: uint16(449), - 1894: uint16(573), - 1895: uint16(449), - 1896: uint16(449), - 1897: uint16(309), - 1898: uint16(1019), - 1899: uint16(366), - 1900: uint16(1284), - 1901: uint16(1609), - 1902: uint16(265), - 1903: uint16(1566), - 1904: uint16(1565), - 1905: uint16(442), - 1906: uint16(372), - 1907: uint16(1381), - 1908: uint16(561), - 1909: uint16(129), - 1910: uint16(550), - 1911: uint16(1380), - 1912: uint16(10), - 1913: uint16(1470), - 1914: uint16(383), - 1915: uint16(106), - 1916: uint16(316), - 1917: uint16(551), - 1918: uint16(100), - 1919: uint16(35), - 1920: uint16(534), - 1921: uint16(575), - 1922: uint16(212), - 1923: uint16(1339), - 1924: uint16(381), - 1925: uint16(387), - 1926: uint16(1187), - 1927: uint16(1338), - 1928: uint16(274), - 1929: uint16(276), - 1930: uint16(1019), - 1931: uint16(1019), - 1932: uint16(1021), - 1933: uint16(1022), - 1934: uint16(28), - 1935: uint16(277), - 1936: uint16(413), - 1937: uint16(1031), - 1938: uint16(576), - 1939: uint16(1254), - 1940: uint16(388), - 1941: uint16(1521), - 1942: uint16(1249), - 1943: uint16(110), - 1944: uint16(110), - 1945: uint16(167), - 1946: uint16(1522), - 1947: uint16(168), - 1948: uint16(148), - 1949: uint16(1520), - 1950: uint16(1519), - 1951: uint16(111), - 1952: uint16(306), - 1953: uint16(449), - 1954: uint16(573), - 1955: uint16(449), - 1956: uint16(222), - 1957: uint16(223), - 1958: uint16(1019), - 1959: uint16(839), - 1960: uint16(169), - 1961: uint16(79), - 1962: uint16(450), - 1963: uint16(214), - 1964: uint16(414), - 1965: uint16(233), - 1966: uint16(320), - 1967: uint16(145), - 1968: uint16(1093), - 1969: uint16(1091), - 1970: uint16(328), - 1971: uint16(182), - 1972: uint16(171), - 1973: uint16(1212), - 1974: uint16(918), - 1975: uint16(184), - 1976: uint16(240), - 1977: uint16(336), - 1978: uint16(243), - 1979: uint16(1107), - 1980: uint16(189), - 1981: uint16(172), - 1982: uint16(173), - 1983: uint16(423), - 1984: uint16(425), - 1985: uint16(88), - 1986: uint16(180), - 1987: uint16(191), - 1988: uint16(89), - 1989: uint16(90), - 1990: uint16(1019), - 1991: uint16(1019), - 1992: uint16(1021), - 1993: uint16(1022), - 1994: uint16(28), - 1995: uint16(91), - 1996: uint16(174), - 1997: uint16(1110), - 1998: uint16(245), - 1999: uint16(1106), - 2000: uint16(246), - 2001: uint16(159), - 2002: uint16(18), - 2003: uint16(247), - 2004: uint16(347), - 2005: uint16(1099), - 2006: uint16(263), - 2007: uint16(195), - 2008: uint16(1227), - 2009: uint16(493), - 2010: uint16(249), - 2011: uint16(196), - 2012: uint16(38), - 2013: uint16(854), - 2014: uint16(498), - 2015: uint16(368), - 2016: uint16(253), - 2017: uint16(360), - 2018: uint16(897), - 2019: uint16(197), - 2020: uint16(502), - 2021: uint16(93), - 2022: uint16(19), - 2023: uint16(20), - 2024: uint16(507), - 2025: uint16(884), - 2026: uint16(363), - 2027: uint16(510), - 2028: uint16(95), - 2029: uint16(307), - 2030: uint16(160), - 2031: uint16(96), - 2032: uint16(518), - 2033: uint16(97), - 2034: uint16(1175), - 2035: uint16(1060), - 2036: uint16(1146), - 2037: uint16(40), - 2038: uint16(21), - 2039: uint16(227), - 2040: uint16(176), - 2041: uint16(1145), - 2042: uint16(282), - 2043: uint16(284), - 2044: uint16(969), - 2045: uint16(200), - 2046: uint16(963), - 2047: uint16(114), - 2048: uint16(262), - 2049: uint16(1165), - 2050: uint16(22), - 2051: uint16(23), - 2052: uint16(24), - 2053: uint16(1161), - 2054: uint16(1169), - 2055: uint16(25), - 2056: uint16(1163), - 2057: uint16(1150), - 2058: uint16(34), - 2059: uint16(26), - 2060: uint16(1168), - 2061: uint16(546), - 2062: uint16(27), - 2063: uint16(204), - 2064: uint16(101), - 2065: uint16(103), - 2066: uint16(104), - 2067: uint16(1074), - 2068: uint16(7), - 2069: uint16(1061), - 2070: uint16(1059), - 2071: uint16(1063), - 2072: uint16(1116), - 2073: uint16(1064), - 2074: uint16(1115), - 2075: uint16(268), - 2076: uint16(269), - 2077: uint16(29), - 2078: uint16(41), - 2079: uint16(270), - 2080: uint16(1024), - 2081: uint16(866), - 2082: uint16(113), - 2083: uint16(30), - 2084: uint16(568), - 2085: uint16(392), - 2086: uint16(1183), - 2087: uint16(144), - 2088: uint16(178), - 2089: uint16(1182), - 2090: uint16(271), - 2091: uint16(928), - 2092: uint16(1245), - 2093: uint16(1245), - 2094: uint16(1245), - 2095: uint16(1245), - 2096: uint16(1245), - 2097: uint16(1245), - 2098: uint16(1245), - 2099: uint16(1602), -} -var _yy_lookahead = [2285]uint16{ - 0: uint16(193), - 1: uint16(193), - 2: uint16(193), - 3: uint16(274), - 4: uint16(275), - 5: uint16(276), - 6: uint16(193), - 7: uint16(274), - 8: uint16(275), - 9: uint16(276), - 10: uint16(193), - 11: uint16(223), - 12: uint16(219), - 13: uint16(225), - 14: uint16(206), - 15: uint16(210), - 16: uint16(211), - 17: uint16(212), - 18: uint16(193), + 1598: uint16(395), + 1599: uint16(395), + 1600: uint16(394), + 1601: uint16(276), + 1602: uint16(392), + 1603: uint16(986), + 1604: uint16(987), + 1605: uint16(859), + 1606: uint16(481), + 1607: uint16(346), + 1608: uint16(264), + 1609: uint16(110), + 1610: uint16(1032), + 1611: uint16(489), + 1612: uint16(576), + 1613: uint16(1188), + 1614: uint16(503), + 1615: uint16(1088), + 1616: uint16(261), + 1617: uint16(261), + 1618: uint16(237), + 1619: uint16(576), + 1620: uint16(326), + 1621: uint16(121), + 1622: uint16(568), + 1623: uint16(1040), + 1624: uint16(4), + 1625: uint16(347), + 1626: uint16(1376), + 1627: uint16(413), + 1628: uint16(325), + 1629: uint16(119), + 1630: uint16(119), + 1631: uint16(948), + 1632: uint16(319), + 1633: uint16(567), + 1634: uint16(351), + 1635: uint16(78), + 1636: uint16(78), + 1637: uint16(120), + 1638: uint16(571), + 1639: uint16(451), + 1640: uint16(577), + 1641: uint16(451), + 1642: uint16(79), + 1643: uint16(79), + 1644: uint16(1028), + 1645: uint16(354), + 1646: uint16(356), + 1647: uint16(576), + 1648: uint16(360), + 1649: uint16(1092), + 1650: uint16(110), + 1651: uint16(576), + 1652: uint16(974), + 1653: uint16(942), + 1654: uint16(264), + 1655: uint16(123), + 1656: uint16(457), + 1657: uint16(358), + 1658: uint16(239), + 1659: uint16(576), + 1660: uint16(519), + 1661: uint16(451), + 1662: uint16(939), + 1663: uint16(1104), + 1664: uint16(123), + 1665: uint16(1104), + 1666: uint16(173), + 1667: uint16(576), + 1668: uint16(1032), + 1669: uint16(43), + 1670: uint16(63), + 1671: uint16(63), + 1672: uint16(1324), + 1673: uint16(565), + 1674: uint16(168), + 1675: uint16(168), + 1676: uint16(1028), + 1677: uint16(1028), + 1678: uint16(1030), + 1679: uint16(1031), + 1680: uint16(35), + 1681: uint16(576), + 1682: uint16(169), + 1683: uint16(169), + 1684: uint16(1308), + 1685: uint16(872), + 1686: uint16(238), + 1687: uint16(157), + 1688: uint16(1589), + 1689: uint16(576), + 1690: uint16(86), + 1691: uint16(86), + 1692: uint16(365), + 1693: uint16(89), + 1694: uint16(568), + 1695: uint16(375), + 1696: uint16(4), + 1697: uint16(1103), + 1698: uint16(941), + 1699: uint16(1103), + 1700: uint16(123), + 1701: uint16(576), + 1702: uint16(1040), + 1703: uint16(1389), + 1704: uint16(64), + 1705: uint16(64), + 1706: uint16(1188), + 1707: uint16(1434), + 1708: uint16(119), + 1709: uint16(119), + 1710: uint16(571), + 1711: uint16(576), + 1712: uint16(82), + 1713: uint16(82), + 1714: uint16(563), + 1715: uint16(576), + 1716: uint16(120), + 1717: uint16(165), + 1718: uint16(451), + 1719: uint16(577), + 1720: uint16(451), + 1721: uint16(413), + 1722: uint16(1362), + 1723: uint16(1028), + 1724: uint16(144), + 1725: uint16(144), + 1726: uint16(319), + 1727: uint16(567), + 1728: uint16(576), + 1729: uint16(1374), + 1730: uint16(562), + 1731: uint16(498), + 1732: uint16(279), + 1733: uint16(451), + 1734: uint16(83), + 1735: uint16(83), + 1736: uint16(1439), + 1737: uint16(576), + 1738: uint16(166), + 1739: uint16(166), + 1740: uint16(576), + 1741: uint16(1289), + 1742: uint16(554), + 1743: uint16(576), + 1744: uint16(1280), + 1745: uint16(565), + 1746: uint16(576), + 1747: uint16(12), + 1748: uint16(576), + 1749: uint16(1268), + 1750: uint16(457), + 1751: uint16(146), + 1752: uint16(146), + 1753: uint16(1267), + 1754: uint16(576), + 1755: uint16(1028), + 1756: uint16(1028), + 1757: uint16(1030), + 1758: uint16(1031), + 1759: uint16(35), + 1760: uint16(140), + 1761: uint16(140), + 1762: uint16(1269), + 1763: uint16(167), + 1764: uint16(167), + 1765: uint16(1609), + 1766: uint16(160), + 1767: uint16(160), + 1768: uint16(1359), + 1769: uint16(150), + 1770: uint16(150), + 1771: uint16(149), + 1772: uint16(149), + 1773: uint16(311), + 1774: uint16(1040), + 1775: uint16(576), + 1776: uint16(312), + 1777: uint16(147), + 1778: uint16(147), + 1779: uint16(313), + 1780: uint16(119), + 1781: uint16(119), + 1782: uint16(222), + 1783: uint16(235), + 1784: uint16(576), + 1785: uint16(1188), + 1786: uint16(396), + 1787: uint16(576), + 1788: uint16(120), + 1789: uint16(576), + 1790: uint16(451), + 1791: uint16(577), + 1792: uint16(451), + 1793: uint16(1192), + 1794: uint16(453), + 1795: uint16(1028), + 1796: uint16(508), + 1797: uint16(291), + 1798: uint16(148), + 1799: uint16(148), + 1800: uint16(1421), + 1801: uint16(1612), + 1802: uint16(395), + 1803: uint16(395), + 1804: uint16(394), + 1805: uint16(276), + 1806: uint16(392), + 1807: uint16(85), + 1808: uint16(85), + 1809: uint16(859), + 1810: uint16(87), + 1811: uint16(87), + 1812: uint16(84), + 1813: uint16(84), + 1814: uint16(553), + 1815: uint16(576), + 1816: uint16(294), + 1817: uint16(576), + 1818: uint16(1426), + 1819: uint16(338), + 1820: uint16(339), + 1821: uint16(1425), + 1822: uint16(237), + 1823: uint16(300), + 1824: uint16(326), + 1825: uint16(1416), + 1826: uint16(1409), + 1827: uint16(1028), + 1828: uint16(1028), + 1829: uint16(1030), + 1830: uint16(1031), + 1831: uint16(35), + 1832: uint16(325), + 1833: uint16(344), + 1834: uint16(403), + 1835: uint16(483), + 1836: uint16(226), + 1837: uint16(1307), + 1838: uint16(52), + 1839: uint16(52), + 1840: uint16(58), + 1841: uint16(58), + 1842: uint16(368), + 1843: uint16(1371), + 1844: uint16(1502), + 1845: uint16(566), + 1846: uint16(1501), + 1847: uint16(121), + 1848: uint16(568), + 1849: uint16(221), + 1850: uint16(4), + 1851: uint16(208), + 1852: uint16(268), + 1853: uint16(209), + 1854: uint16(390), + 1855: uint16(1244), + 1856: uint16(1549), + 1857: uint16(1188), + 1858: uint16(1372), + 1859: uint16(1370), + 1860: uint16(1369), + 1861: uint16(1547), + 1862: uint16(239), + 1863: uint16(184), + 1864: uint16(571), + 1865: uint16(233), + 1866: uint16(421), + 1867: uint16(1241), + 1868: uint16(95), + 1869: uint16(218), + 1870: uint16(173), + 1871: uint16(1507), + 1872: uint16(193), + 1873: uint16(43), + 1874: uint16(91), + 1875: uint16(94), + 1876: uint16(178), + 1877: uint16(186), + 1878: uint16(467), + 1879: uint16(188), + 1880: uint16(468), + 1881: uint16(1422), + 1882: uint16(13), + 1883: uint16(189), + 1884: uint16(190), + 1885: uint16(191), + 1886: uint16(501), + 1887: uint16(451), + 1888: uint16(245), + 1889: uint16(108), + 1890: uint16(238), + 1891: uint16(401), + 1892: uint16(1428), + 1893: uint16(1427), + 1894: uint16(1430), + 1895: uint16(475), + 1896: uint16(404), + 1897: uint16(1496), + 1898: uint16(197), + 1899: uint16(565), + 1900: uint16(14), + 1901: uint16(490), + 1902: uint16(249), + 1903: uint16(101), + 1904: uint16(1518), + 1905: uint16(496), + 1906: uint16(349), + 1907: uint16(280), + 1908: uint16(251), + 1909: uint16(201), + 1910: uint16(353), + 1911: uint16(499), + 1912: uint16(252), + 1913: uint16(406), + 1914: uint16(1270), + 1915: uint16(253), + 1916: uint16(517), + 1917: uint16(1327), + 1918: uint16(1326), + 1919: uint16(435), + 1920: uint16(1325), + 1921: uint16(1318), + 1922: uint16(103), + 1923: uint16(893), + 1924: uint16(1296), + 1925: uint16(413), + 1926: uint16(227), + 1927: uint16(407), + 1928: uint16(1040), + 1929: uint16(1626), + 1930: uint16(319), + 1931: uint16(567), + 1932: uint16(1625), + 1933: uint16(1297), + 1934: uint16(119), + 1935: uint16(119), + 1936: uint16(439), + 1937: uint16(367), + 1938: uint16(1317), + 1939: uint16(1295), + 1940: uint16(1624), + 1941: uint16(526), + 1942: uint16(120), + 1943: uint16(440), + 1944: uint16(451), + 1945: uint16(577), + 1946: uint16(451), + 1947: uint16(1594), + 1948: uint16(309), + 1949: uint16(1028), + 1950: uint16(310), + 1951: uint16(373), + 1952: uint16(266), + 1953: uint16(267), + 1954: uint16(457), + 1955: uint16(1580), + 1956: uint16(1579), + 1957: uint16(443), + 1958: uint16(138), + 1959: uint16(1394), + 1960: uint16(552), + 1961: uint16(1393), + 1962: uint16(11), + 1963: uint16(1483), + 1964: uint16(384), + 1965: uint16(115), + 1966: uint16(317), + 1967: uint16(1350), + 1968: uint16(109), + 1969: uint16(536), + 1970: uint16(42), + 1971: uint16(579), + 1972: uint16(382), + 1973: uint16(214), + 1974: uint16(1349), + 1975: uint16(388), + 1976: uint16(1198), + 1977: uint16(389), + 1978: uint16(275), + 1979: uint16(277), + 1980: uint16(278), + 1981: uint16(1028), + 1982: uint16(1028), + 1983: uint16(1030), + 1984: uint16(1031), + 1985: uint16(35), + 1986: uint16(580), + 1987: uint16(1265), + 1988: uint16(414), + 1989: uint16(1260), + 1990: uint16(170), + 1991: uint16(415), + 1992: uint16(183), + 1993: uint16(1534), + 1994: uint16(1535), + 1995: uint16(1533), + 1996: uint16(171), + 1997: uint16(154), + 1998: uint16(307), + 1999: uint16(1532), + 2000: uint16(846), + 2001: uint16(223), + 2002: uint16(224), + 2003: uint16(88), + 2004: uint16(452), + 2005: uint16(215), + 2006: uint16(172), + 2007: uint16(321), + 2008: uint16(234), + 2009: uint16(1102), + 2010: uint16(152), + 2011: uint16(1188), + 2012: uint16(1100), + 2013: uint16(329), + 2014: uint16(185), + 2015: uint16(174), + 2016: uint16(1223), + 2017: uint16(925), + 2018: uint16(187), + 2019: uint16(241), + 2020: uint16(337), + 2021: uint16(244), + 2022: uint16(1116), + 2023: uint16(192), + 2024: uint16(175), + 2025: uint16(176), + 2026: uint16(424), + 2027: uint16(426), + 2028: uint16(97), + 2029: uint16(194), + 2030: uint16(98), + 2031: uint16(99), + 2032: uint16(100), + 2033: uint16(177), + 2034: uint16(1119), + 2035: uint16(1115), + 2036: uint16(246), + 2037: uint16(247), + 2038: uint16(161), + 2039: uint16(24), + 2040: uint16(248), + 2041: uint16(348), + 2042: uint16(1238), + 2043: uint16(264), + 2044: uint16(1108), + 2045: uint16(250), + 2046: uint16(495), + 2047: uint16(199), + 2048: uint16(198), + 2049: uint16(15), + 2050: uint16(861), + 2051: uint16(500), + 2052: uint16(369), + 2053: uint16(254), + 2054: uint16(504), + 2055: uint16(509), + 2056: uint16(512), + 2057: uint16(200), + 2058: uint16(102), + 2059: uint16(25), + 2060: uint16(179), + 2061: uint16(361), + 2062: uint16(26), + 2063: uint16(364), + 2064: uint16(104), + 2065: uint16(891), + 2066: uint16(308), + 2067: uint16(162), + 2068: uint16(105), + 2069: uint16(904), + 2070: uint16(520), + 2071: uint16(106), + 2072: uint16(1185), + 2073: uint16(1069), + 2074: uint16(1155), + 2075: uint16(17), + 2076: uint16(228), + 2077: uint16(27), + 2078: uint16(1154), + 2079: uint16(283), + 2080: uint16(285), + 2081: uint16(263), + 2082: uint16(978), + 2083: uint16(202), + 2084: uint16(972), + 2085: uint16(123), + 2086: uint16(28), + 2087: uint16(1175), + 2088: uint16(29), + 2089: uint16(30), + 2090: uint16(1179), + 2091: uint16(1171), + 2092: uint16(31), + 2093: uint16(1173), + 2094: uint16(1160), + 2095: uint16(41), + 2096: uint16(32), + 2097: uint16(206), + 2098: uint16(548), + 2099: uint16(33), + 2100: uint16(110), + 2101: uint16(1178), + 2102: uint16(1083), + 2103: uint16(8), + 2104: uint16(112), + 2105: uint16(1070), + 2106: uint16(113), + 2107: uint16(1068), + 2108: uint16(1072), + 2109: uint16(34), + 2110: uint16(1073), + 2111: uint16(560), + 2112: uint16(1125), + 2113: uint16(269), + 2114: uint16(1124), + 2115: uint16(270), + 2116: uint16(36), + 2117: uint16(18), + 2118: uint16(1194), + 2119: uint16(1033), + 2120: uint16(873), + 2121: uint16(151), + 2122: uint16(122), + 2123: uint16(37), + 2124: uint16(393), + 2125: uint16(271), + 2126: uint16(272), + 2127: uint16(572), + 2128: uint16(181), + 2129: uint16(1193), + 2130: uint16(1256), + 2131: uint16(1256), + 2132: uint16(1256), + 2133: uint16(935), + 2134: uint16(1256), + 2135: uint16(1256), + 2136: uint16(1256), + 2137: uint16(1256), + 2138: uint16(1256), + 2139: uint16(1256), + 2140: uint16(1256), + 2141: uint16(1617), +} +var _yy_lookahead = [2328]uint16{ + 0: uint16(194), + 1: uint16(276), + 2: uint16(277), + 3: uint16(278), + 4: uint16(216), + 5: uint16(194), + 6: uint16(194), + 7: uint16(217), + 8: uint16(194), + 9: uint16(194), + 10: uint16(194), + 11: uint16(194), + 12: uint16(224), + 13: uint16(194), + 14: uint16(194), + 15: uint16(276), + 16: uint16(277), + 17: uint16(278), + 18: uint16(204), 19: uint16(19), - 20: uint16(219), - 21: uint16(233), - 22: uint16(216), - 23: uint16(216), - 24: uint16(217), - 25: uint16(216), - 26: uint16(217), - 27: uint16(193), - 28: uint16(295), - 29: uint16(216), - 30: uint16(217), + 20: uint16(206), + 21: uint16(202), + 22: uint16(297), + 23: uint16(217), + 24: uint16(218), + 25: uint16(205), + 26: uint16(207), + 27: uint16(217), + 28: uint16(205), + 29: uint16(217), + 30: uint16(218), 31: uint16(31), - 32: uint16(193), - 33: uint16(216), + 32: uint16(217), + 33: uint16(218), 34: uint16(217), - 35: uint16(193), - 36: uint16(228), - 37: uint16(213), - 38: uint16(230), + 35: uint16(218), + 36: uint16(29), + 37: uint16(217), + 38: uint16(218), 39: uint16(39), - 40: uint16(206), - 41: uint16(216), - 42: uint16(217), + 40: uint16(33), + 41: uint16(217), + 42: uint16(220), 43: uint16(43), 44: uint16(44), 45: uint16(45), @@ -154353,31 +155857,31 @@ var _yy_lookahead = [2285]uint16{ 55: uint16(55), 56: uint16(56), 57: uint16(57), - 58: uint16(193), + 58: uint16(312), 59: uint16(19), - 60: uint16(185), - 61: uint16(186), - 62: uint16(187), - 63: uint16(188), - 64: uint16(189), - 65: uint16(190), - 66: uint16(253), - 67: uint16(274), - 68: uint16(275), - 69: uint16(276), - 70: uint16(195), - 71: uint16(193), - 72: uint16(197), - 73: uint16(193), - 74: uint16(261), - 75: uint16(274), - 76: uint16(275), - 77: uint16(276), - 78: uint16(253), - 79: uint16(204), - 80: uint16(238), - 81: uint16(204), - 82: uint16(81), + 60: uint16(240), + 61: uint16(241), + 62: uint16(316), + 63: uint16(240), + 64: uint16(241), + 65: uint16(194), + 66: uint16(46), + 67: uint16(47), + 68: uint16(48), + 69: uint16(49), + 70: uint16(22), + 71: uint16(254), + 72: uint16(65), + 73: uint16(253), + 74: uint16(254), + 75: uint16(255), + 76: uint16(253), + 77: uint16(194), + 78: uint16(255), + 79: uint16(194), + 80: uint16(263), + 81: uint16(258), + 82: uint16(259), 83: uint16(43), 84: uint16(44), 85: uint16(45), @@ -154393,10 +155897,10 @@ var _yy_lookahead = [2285]uint16{ 95: uint16(55), 96: uint16(56), 97: uint16(57), - 98: uint16(274), - 99: uint16(275), - 100: uint16(276), - 101: uint16(262), + 98: uint16(276), + 99: uint16(277), + 100: uint16(278), + 101: uint16(285), 102: uint16(102), 103: uint16(103), 104: uint16(104), @@ -154409,34 +155913,34 @@ var _yy_lookahead = [2285]uint16{ 111: uint16(111), 112: uint16(112), 113: uint16(113), - 114: uint16(239), - 115: uint16(240), - 116: uint16(239), - 117: uint16(240), - 118: uint16(210), - 119: uint16(211), - 120: uint16(212), - 121: uint16(314), - 122: uint16(315), - 123: uint16(314), - 124: uint16(59), - 125: uint16(316), + 114: uint16(59), + 115: uint16(186), + 116: uint16(187), + 117: uint16(188), + 118: uint16(189), + 119: uint16(190), + 120: uint16(191), + 121: uint16(310), + 122: uint16(239), + 123: uint16(317), + 124: uint16(318), + 125: uint16(196), 126: uint16(86), - 127: uint16(252), + 127: uint16(198), 128: uint16(88), - 129: uint16(252), + 129: uint16(317), 130: uint16(19), - 131: uint16(314), - 132: uint16(315), - 133: uint16(256), - 134: uint16(257), - 135: uint16(113), + 131: uint16(319), + 132: uint16(317), + 133: uint16(318), + 134: uint16(205), + 135: uint16(264), 136: uint16(25), - 137: uint16(72), - 138: uint16(296), - 139: uint16(138), - 140: uint16(139), - 141: uint16(266), + 137: uint16(211), + 138: uint16(212), + 139: uint16(213), + 140: uint16(205), + 141: uint16(121), 142: uint16(102), 143: uint16(103), 144: uint16(104), @@ -154464,50 +155968,50 @@ var _yy_lookahead = [2285]uint16{ 166: uint16(55), 167: uint16(56), 168: uint16(57), - 169: uint16(81), - 170: uint16(292), - 171: uint16(59), - 172: uint16(292), - 173: uint16(298), - 174: uint16(108), - 175: uint16(109), - 176: uint16(110), - 177: uint16(111), - 178: uint16(112), - 179: uint16(113), + 169: uint16(240), + 170: uint16(241), + 171: uint16(116), + 172: uint16(117), + 173: uint16(118), + 174: uint16(119), + 175: uint16(240), + 176: uint16(241), + 177: uint16(122), + 178: uint16(123), + 179: uint16(124), 180: uint16(69), - 181: uint16(116), - 182: uint16(117), - 183: uint16(118), - 184: uint16(72), + 181: uint16(298), + 182: uint16(253), + 183: uint16(194), + 184: uint16(255), 185: uint16(106), 186: uint16(107), - 187: uint16(193), - 188: uint16(111), - 189: uint16(112), - 190: uint16(113), + 187: uint16(132), + 188: uint16(253), + 189: uint16(141), + 190: uint16(255), 191: uint16(54), 192: uint16(55), 193: uint16(56), 194: uint16(57), 195: uint16(58), - 196: uint16(102), - 197: uint16(103), - 198: uint16(104), - 199: uint16(105), - 200: uint16(106), - 201: uint16(107), - 202: uint16(108), - 203: uint16(109), - 204: uint16(110), - 205: uint16(111), - 206: uint16(112), - 207: uint16(113), - 208: uint16(120), - 209: uint16(25), - 210: uint16(216), - 211: uint16(217), - 212: uint16(145), + 196: uint16(207), + 197: uint16(268), + 198: uint16(102), + 199: uint16(103), + 200: uint16(104), + 201: uint16(105), + 202: uint16(106), + 203: uint16(107), + 204: uint16(108), + 205: uint16(109), + 206: uint16(110), + 207: uint16(111), + 208: uint16(112), + 209: uint16(113), + 210: uint16(214), + 211: uint16(128), + 212: uint16(129), 213: uint16(102), 214: uint16(103), 215: uint16(104), @@ -154520,13 +156024,13 @@ var _yy_lookahead = [2285]uint16{ 222: uint16(111), 223: uint16(112), 224: uint16(113), - 225: uint16(231), - 226: uint16(138), - 227: uint16(139), - 228: uint16(116), - 229: uint16(117), - 230: uint16(118), - 231: uint16(164), + 225: uint16(134), + 226: uint16(25), + 227: uint16(136), + 228: uint16(137), + 229: uint16(300), + 230: uint16(165), + 231: uint16(166), 232: uint16(153), 233: uint16(19), 234: uint16(155), @@ -154546,12 +156050,12 @@ var _yy_lookahead = [2285]uint16{ 248: uint16(111), 249: uint16(112), 250: uint16(113), - 251: uint16(128), - 252: uint16(129), - 253: uint16(46), - 254: uint16(47), - 255: uint16(48), - 256: uint16(49), + 251: uint16(108), + 252: uint16(109), + 253: uint16(110), + 254: uint16(111), + 255: uint16(112), + 256: uint16(113), 257: uint16(43), 258: uint16(44), 259: uint16(45), @@ -154567,15 +156071,15 @@ var _yy_lookahead = [2285]uint16{ 269: uint16(55), 270: uint16(56), 271: uint16(57), - 272: uint16(216), - 273: uint16(193), - 274: uint16(25), - 275: uint16(59), - 276: uint16(193), + 272: uint16(276), + 273: uint16(277), + 274: uint16(278), + 275: uint16(113), + 276: uint16(194), 277: uint16(19), - 278: uint16(165), - 279: uint16(166), - 280: uint16(193), + 278: uint16(22), + 279: uint16(23), + 280: uint16(194), 281: uint16(67), 282: uint16(24), 283: uint16(102), @@ -154590,12 +156094,12 @@ var _yy_lookahead = [2285]uint16{ 292: uint16(111), 293: uint16(112), 294: uint16(113), - 295: uint16(73), - 296: uint16(216), - 297: uint16(217), - 298: uint16(59), - 299: uint16(216), - 300: uint16(217), + 295: uint16(220), + 296: uint16(250), + 297: uint16(59), + 298: uint16(252), + 299: uint16(217), + 300: uint16(218), 301: uint16(43), 302: uint16(44), 303: uint16(45), @@ -154623,38 +156127,38 @@ var _yy_lookahead = [2285]uint16{ 325: uint16(111), 326: uint16(112), 327: uint16(113), - 328: uint16(121), - 329: uint16(145), - 330: uint16(59), - 331: uint16(193), - 332: uint16(116), - 333: uint16(117), - 334: uint16(118), - 335: uint16(119), - 336: uint16(273), - 337: uint16(204), - 338: uint16(122), - 339: uint16(123), - 340: uint16(124), + 328: uint16(106), + 329: uint16(107), + 330: uint16(108), + 331: uint16(109), + 332: uint16(110), + 333: uint16(111), + 334: uint16(112), + 335: uint16(113), + 336: uint16(254), + 337: uint16(59), + 338: uint16(205), + 339: uint16(138), + 340: uint16(139), 341: uint16(19), 342: uint16(20), - 343: uint16(134), + 343: uint16(194), 344: uint16(22), - 345: uint16(136), - 346: uint16(137), - 347: uint16(19), - 348: uint16(132), - 349: uint16(127), - 350: uint16(128), - 351: uint16(129), - 352: uint16(24), - 353: uint16(22), - 354: uint16(23), - 355: uint16(116), - 356: uint16(117), - 357: uint16(118), + 345: uint16(263), + 346: uint16(22), + 347: uint16(23), + 348: uint16(231), + 349: uint16(25), + 350: uint16(72), + 351: uint16(276), + 352: uint16(277), + 353: uint16(278), + 354: uint16(116), + 355: uint16(117), + 356: uint16(118), + 357: uint16(101), 358: uint16(36), - 359: uint16(193), + 359: uint16(76), 360: uint16(102), 361: uint16(103), 362: uint16(104), @@ -154667,37 +156171,37 @@ var _yy_lookahead = [2285]uint16{ 369: uint16(111), 370: uint16(112), 371: uint16(113), - 372: uint16(239), + 372: uint16(89), 373: uint16(240), - 374: uint16(311), - 375: uint16(312), - 376: uint16(215), - 377: uint16(106), - 378: uint16(107), - 379: uint16(241), + 374: uint16(241), + 375: uint16(92), + 376: uint16(73), + 377: uint16(194), + 378: uint16(194), + 379: uint16(73), 380: uint16(19), 381: uint16(59), - 382: uint16(216), - 383: uint16(217), - 384: uint16(223), - 385: uint16(252), - 386: uint16(115), - 387: uint16(116), - 388: uint16(117), - 389: uint16(118), - 390: uint16(151), - 391: uint16(120), - 392: uint16(26), + 382: uint16(188), + 383: uint16(189), + 384: uint16(190), + 385: uint16(191), + 386: uint16(253), + 387: uint16(81), + 388: uint16(255), + 389: uint16(151), + 390: uint16(196), + 391: uint16(25), + 392: uint16(198), 393: uint16(71), - 394: uint16(193), - 395: uint16(308), - 396: uint16(309), - 397: uint16(193), - 398: uint16(149), - 399: uint16(128), - 400: uint16(313), - 401: uint16(216), - 402: uint16(269), + 394: uint16(116), + 395: uint16(117), + 396: uint16(118), + 397: uint16(311), + 398: uint16(312), + 399: uint16(205), + 400: uint16(217), + 401: uint16(218), + 402: uint16(316), 403: uint16(81), 404: uint16(43), 405: uint16(44), @@ -154714,50 +156218,50 @@ var _yy_lookahead = [2285]uint16{ 416: uint16(55), 417: uint16(56), 418: uint16(57), - 419: uint16(253), - 420: uint16(216), - 421: uint16(217), + 419: uint16(270), + 420: uint16(22), + 421: uint16(23), 422: uint16(100), - 423: uint16(95), - 424: uint16(153), - 425: uint16(59), - 426: uint16(155), - 427: uint16(261), + 423: uint16(25), + 424: uint16(59), + 425: uint16(101), + 426: uint16(138), + 427: uint16(139), 428: uint16(106), 429: uint16(107), - 430: uint16(25), - 431: uint16(193), - 432: uint16(101), - 433: uint16(193), - 434: uint16(193), - 435: uint16(231), + 430: uint16(127), + 431: uint16(128), + 432: uint16(129), + 433: uint16(127), + 434: uint16(240), + 435: uint16(241), 436: uint16(114), - 437: uint16(25), + 437: uint16(254), 438: uint16(116), 439: uint16(117), 440: uint16(118), - 441: uint16(113), - 442: uint16(304), + 441: uint16(76), + 442: uint16(76), 443: uint16(121), - 444: uint16(193), - 445: uint16(204), - 446: uint16(59), - 447: uint16(119), - 448: uint16(120), - 449: uint16(121), - 450: uint16(122), - 451: uint16(123), - 452: uint16(124), - 453: uint16(125), - 454: uint16(216), - 455: uint16(217), - 456: uint16(193), - 457: uint16(216), - 458: uint16(217), - 459: uint16(131), + 444: uint16(138), + 445: uint16(139), + 446: uint16(263), + 447: uint16(253), + 448: uint16(264), + 449: uint16(255), + 450: uint16(205), + 451: uint16(275), + 452: uint16(87), + 453: uint16(19), + 454: uint16(89), + 455: uint16(89), + 456: uint16(194), + 457: uint16(92), + 458: uint16(92), + 459: uint16(199), 460: uint16(138), 461: uint16(139), - 462: uint16(230), + 462: uint16(268), 463: uint16(102), 464: uint16(103), 465: uint16(104), @@ -154775,37 +156279,37 @@ var _yy_lookahead = [2285]uint16{ 477: uint16(155), 478: uint16(156), 479: uint16(157), - 480: uint16(239), - 481: uint16(240), - 482: uint16(116), - 483: uint16(117), - 484: uint16(118), - 485: uint16(76), - 486: uint16(193), - 487: uint16(23), + 480: uint16(81), + 481: uint16(116), + 482: uint16(117), + 483: uint16(118), + 484: uint16(129), + 485: uint16(240), + 486: uint16(241), + 487: uint16(224), 488: uint16(19), - 489: uint16(25), - 490: uint16(22), - 491: uint16(253), + 489: uint16(226), + 490: uint16(314), + 491: uint16(315), 492: uint16(23), - 493: uint16(252), - 494: uint16(253), - 495: uint16(108), - 496: uint16(87), - 497: uint16(204), - 498: uint16(89), - 499: uint16(261), - 500: uint16(198), - 501: uint16(92), - 502: uint16(261), - 503: uint16(116), - 504: uint16(117), - 505: uint16(118), - 506: uint16(193), - 507: uint16(306), - 508: uint16(307), - 509: uint16(216), - 510: uint16(217), + 493: uint16(25), + 494: uint16(300), + 495: uint16(59), + 496: uint16(22), + 497: uint16(234), + 498: uint16(253), + 499: uint16(101), + 500: uint16(255), + 501: uint16(236), + 502: uint16(237), + 503: uint16(26), + 504: uint16(194), + 505: uint16(183), + 506: uint16(194), + 507: uint16(152), + 508: uint16(72), + 509: uint16(22), + 510: uint16(145), 511: uint16(150), 512: uint16(43), 513: uint16(44), @@ -154822,34 +156326,34 @@ var _yy_lookahead = [2285]uint16{ 524: uint16(55), 525: uint16(56), 526: uint16(57), - 527: uint16(59), - 528: uint16(193), - 529: uint16(216), - 530: uint16(217), + 527: uint16(217), + 528: uint16(218), + 529: uint16(217), + 530: uint16(218), 531: uint16(19), - 532: uint16(239), - 533: uint16(240), - 534: uint16(283), + 532: uint16(189), + 533: uint16(59), + 534: uint16(191), 535: uint16(23), - 536: uint16(106), - 537: uint16(107), - 538: uint16(108), - 539: uint16(109), - 540: uint16(110), - 541: uint16(111), - 542: uint16(112), - 543: uint16(113), - 544: uint16(73), - 545: uint16(252), - 546: uint16(253), - 547: uint16(142), - 548: uint16(308), - 549: uint16(309), - 550: uint16(138), - 551: uint16(139), - 552: uint16(81), - 553: uint16(313), - 554: uint16(145), + 536: uint16(59), + 537: uint16(138), + 538: uint16(139), + 539: uint16(196), + 540: uint16(135), + 541: uint16(198), + 542: uint16(232), + 543: uint16(283), + 544: uint16(232), + 545: uint16(140), + 546: uint16(59), + 547: uint16(287), + 548: uint16(205), + 549: uint16(275), + 550: uint16(116), + 551: uint16(205), + 552: uint16(116), + 553: uint16(117), + 554: uint16(118), 555: uint16(43), 556: uint16(44), 557: uint16(45), @@ -154865,7 +156369,7 @@ var _yy_lookahead = [2285]uint16{ 567: uint16(55), 568: uint16(56), 569: uint16(57), - 570: uint16(307), + 570: uint16(194), 571: uint16(102), 572: uint16(103), 573: uint16(104), @@ -154878,37 +156382,37 @@ var _yy_lookahead = [2285]uint16{ 580: uint16(111), 581: uint16(112), 582: uint16(113), - 583: uint16(281), - 584: uint16(116), - 585: uint16(117), - 586: uint16(118), - 587: uint16(285), - 588: uint16(23), - 589: uint16(193), - 590: uint16(25), - 591: uint16(119), - 592: uint16(59), - 593: uint16(193), - 594: uint16(122), - 595: uint16(123), - 596: uint16(124), - 597: uint16(59), - 598: uint16(127), - 599: uint16(203), + 583: uint16(240), + 584: uint16(241), + 585: uint16(194), + 586: uint16(240), + 587: uint16(241), + 588: uint16(314), + 589: uint16(315), + 590: uint16(116), + 591: uint16(117), + 592: uint16(118), + 593: uint16(116), + 594: uint16(117), + 595: uint16(118), + 596: uint16(253), + 597: uint16(194), + 598: uint16(255), + 599: uint16(253), 600: uint16(59), - 601: uint16(205), + 601: uint16(255), 602: uint16(19), - 603: uint16(268), - 604: uint16(132), - 605: uint16(25), + 603: uint16(116), + 604: uint16(117), + 605: uint16(118), 606: uint16(23), 607: uint16(22), - 608: uint16(193), - 609: uint16(138), - 610: uint16(139), - 611: uint16(249), - 612: uint16(204), - 613: uint16(251), + 608: uint16(217), + 609: uint16(218), + 610: uint16(142), + 611: uint16(268), + 612: uint16(205), + 613: uint16(275), 614: uint16(102), 615: uint16(103), 616: uint16(104), @@ -154937,29 +156441,29 @@ var _yy_lookahead = [2285]uint16{ 639: uint16(56), 640: uint16(57), 641: uint16(19), - 642: uint16(22), - 643: uint16(23), + 642: uint16(194), + 643: uint16(300), 644: uint16(59), 645: uint16(23), - 646: uint16(25), - 647: uint16(239), - 648: uint16(240), - 649: uint16(116), - 650: uint16(117), - 651: uint16(118), - 652: uint16(193), - 653: uint16(11), - 654: uint16(116), - 655: uint16(117), - 656: uint16(118), - 657: uint16(116), + 646: uint16(119), + 647: uint16(240), + 648: uint16(241), + 649: uint16(122), + 650: uint16(123), + 651: uint16(124), + 652: uint16(314), + 653: uint16(315), + 654: uint16(194), + 655: uint16(236), + 656: uint16(237), + 657: uint16(194), 658: uint16(117), - 659: uint16(118), - 660: uint16(252), - 661: uint16(269), - 662: uint16(22), - 663: uint16(193), - 664: uint16(15), + 659: uint16(132), + 660: uint16(253), + 661: uint16(81), + 662: uint16(255), + 663: uint16(205), + 664: uint16(59), 665: uint16(43), 666: uint16(44), 667: uint16(45), @@ -154975,11 +156479,11 @@ var _yy_lookahead = [2285]uint16{ 677: uint16(55), 678: uint16(56), 679: uint16(57), - 680: uint16(273), - 681: uint16(143), - 682: uint16(193), - 683: uint16(118), - 684: uint16(143), + 680: uint16(217), + 681: uint16(218), + 682: uint16(194), + 683: uint16(194), + 684: uint16(194), 685: uint16(102), 686: uint16(103), 687: uint16(104), @@ -154992,33 +156496,33 @@ var _yy_lookahead = [2285]uint16{ 694: uint16(111), 695: uint16(112), 696: uint16(113), - 697: uint16(76), - 698: uint16(118), - 699: uint16(59), - 700: uint16(241), + 697: uint16(294), + 698: uint16(240), + 699: uint16(241), + 700: uint16(120), 701: uint16(116), 702: uint16(117), 703: uint16(118), - 704: uint16(304), - 705: uint16(216), + 704: uint16(59), + 705: uint16(194), 706: uint16(217), - 707: uint16(292), - 708: uint16(143), - 709: uint16(60), - 710: uint16(89), - 711: uint16(241), + 707: uint16(218), + 708: uint16(211), + 709: uint16(212), + 710: uint16(213), + 711: uint16(253), 712: uint16(19), - 713: uint16(92), - 714: uint16(193), - 715: uint16(193), + 713: uint16(255), + 714: uint16(194), + 715: uint16(19), 716: uint16(23), - 717: uint16(22), - 718: uint16(311), - 719: uint16(312), - 720: uint16(231), - 721: uint16(101), - 722: uint16(22), - 723: uint16(143), + 717: uint16(254), + 718: uint16(138), + 719: uint16(139), + 720: uint16(24), + 721: uint16(232), + 722: uint16(117), + 723: uint16(194), 724: uint16(102), 725: uint16(103), 726: uint16(104), @@ -155047,29 +156551,29 @@ var _yy_lookahead = [2285]uint16{ 749: uint16(56), 750: uint16(57), 751: uint16(19), - 752: uint16(193), - 753: uint16(193), - 754: uint16(59), + 752: uint16(264), + 753: uint16(108), + 754: uint16(76), 755: uint16(23), - 756: uint16(116), - 757: uint16(117), - 758: uint16(118), - 759: uint16(59), - 760: uint16(201), - 761: uint16(21), - 762: uint16(241), - 763: uint16(304), - 764: uint16(193), - 765: uint16(206), - 766: uint16(127), - 767: uint16(128), - 768: uint16(129), - 769: uint16(193), - 770: uint16(128), - 771: uint16(129), - 772: uint16(235), - 773: uint16(236), - 774: uint16(304), + 756: uint16(127), + 757: uint16(128), + 758: uint16(129), + 759: uint16(311), + 760: uint16(312), + 761: uint16(116), + 762: uint16(117), + 763: uint16(118), + 764: uint16(316), + 765: uint16(87), + 766: uint16(306), + 767: uint16(89), + 768: uint16(308), + 769: uint16(194), + 770: uint16(92), + 771: uint16(22), + 772: uint16(59), + 773: uint16(194), + 774: uint16(22), 775: uint16(43), 776: uint16(44), 777: uint16(45), @@ -155085,11 +156589,11 @@ var _yy_lookahead = [2285]uint16{ 787: uint16(55), 788: uint16(56), 789: uint16(57), - 790: uint16(22), - 791: uint16(193), - 792: uint16(216), - 793: uint16(217), - 794: uint16(193), + 790: uint16(194), + 791: uint16(95), + 792: uint16(217), + 793: uint16(218), + 794: uint16(265), 795: uint16(102), 796: uint16(103), 797: uint16(104), @@ -155102,33 +156606,33 @@ var _yy_lookahead = [2285]uint16{ 804: uint16(111), 805: uint16(112), 806: uint16(113), - 807: uint16(231), - 808: uint16(193), - 809: uint16(193), - 810: uint16(193), - 811: uint16(116), - 812: uint16(117), - 813: uint16(118), - 814: uint16(216), - 815: uint16(217), - 816: uint16(116), - 817: uint16(117), - 818: uint16(118), - 819: uint16(226), - 820: uint16(80), - 821: uint16(193), + 807: uint16(232), + 808: uint16(59), + 809: uint16(113), + 810: uint16(25), + 811: uint16(59), + 812: uint16(194), + 813: uint16(217), + 814: uint16(218), + 815: uint16(119), + 816: uint16(120), + 817: uint16(121), + 818: uint16(122), + 819: uint16(123), + 820: uint16(124), + 821: uint16(125), 822: uint16(19), - 823: uint16(235), - 824: uint16(236), - 825: uint16(304), + 823: uint16(145), + 824: uint16(194), + 825: uint16(194), 826: uint16(23), - 827: uint16(211), - 828: uint16(212), - 829: uint16(231), - 830: uint16(204), - 831: uint16(216), - 832: uint16(217), - 833: uint16(205), + 827: uint16(131), + 828: uint16(232), + 829: uint16(116), + 830: uint16(117), + 831: uint16(118), + 832: uint16(35), + 833: uint16(194), 834: uint16(102), 835: uint16(103), 836: uint16(104), @@ -155157,29 +156661,29 @@ var _yy_lookahead = [2285]uint16{ 859: uint16(56), 860: uint16(57), 861: uint16(19), - 862: uint16(193), - 863: uint16(123), - 864: uint16(76), - 865: uint16(239), - 866: uint16(240), - 867: uint16(193), - 868: uint16(253), - 869: uint16(239), - 870: uint16(240), - 871: uint16(239), - 872: uint16(240), - 873: uint16(244), - 874: uint16(106), - 875: uint16(107), - 876: uint16(193), - 877: uint16(89), - 878: uint16(252), - 879: uint16(193), - 880: uint16(92), - 881: uint16(59), - 882: uint16(252), - 883: uint16(254), - 884: uint16(252), + 862: uint16(194), + 863: uint16(66), + 864: uint16(194), + 865: uint16(116), + 866: uint16(117), + 867: uint16(118), + 868: uint16(116), + 869: uint16(117), + 870: uint16(118), + 871: uint16(74), + 872: uint16(242), + 873: uint16(294), + 874: uint16(194), + 875: uint16(194), + 876: uint16(206), + 877: uint16(23), + 878: uint16(194), + 879: uint16(25), + 880: uint16(194), + 881: uint16(111), + 882: uint16(112), + 883: uint16(113), + 884: uint16(25), 885: uint16(43), 886: uint16(44), 887: uint16(45), @@ -155195,11 +156699,11 @@ var _yy_lookahead = [2285]uint16{ 897: uint16(55), 898: uint16(56), 899: uint16(57), - 900: uint16(284), - 901: uint16(161), - 902: uint16(216), + 900: uint16(24), + 901: uint16(194), + 902: uint16(194), 903: uint16(217), - 904: uint16(193), + 904: uint16(218), 905: uint16(102), 906: uint16(103), 907: uint16(104), @@ -155212,33 +156716,33 @@ var _yy_lookahead = [2285]uint16{ 914: uint16(111), 915: uint16(112), 916: uint16(113), - 917: uint16(231), - 918: uint16(193), - 919: uint16(244), - 920: uint16(187), - 921: uint16(188), - 922: uint16(189), - 923: uint16(190), - 924: uint16(7), - 925: uint16(8), - 926: uint16(9), - 927: uint16(309), - 928: uint16(195), - 929: uint16(254), - 930: uint16(197), - 931: uint16(313), + 917: uint16(241), + 918: uint16(232), + 919: uint16(194), + 920: uint16(212), + 921: uint16(213), + 922: uint16(242), + 923: uint16(242), + 924: uint16(217), + 925: uint16(218), + 926: uint16(242), + 927: uint16(130), + 928: uint16(11), + 929: uint16(253), + 930: uint16(194), + 931: uint16(255), 932: uint16(19), - 933: uint16(127), - 934: uint16(128), - 935: uint16(129), - 936: uint16(262), - 937: uint16(204), - 938: uint16(22), - 939: uint16(117), - 940: uint16(24), - 941: uint16(216), + 933: uint16(265), + 934: uint16(149), + 935: uint16(59), + 936: uint16(306), + 937: uint16(194), + 938: uint16(308), + 939: uint16(232), + 940: uint16(309), + 941: uint16(310), 942: uint16(217), - 943: uint16(273), + 943: uint16(218), 944: uint16(102), 945: uint16(103), 946: uint16(104), @@ -155266,36 +156770,36 @@ var _yy_lookahead = [2285]uint16{ 968: uint16(55), 969: uint16(56), 970: uint16(57), - 971: uint16(193), - 972: uint16(239), - 973: uint16(240), - 974: uint16(193), - 975: uint16(59), + 971: uint16(194), + 972: uint16(194), + 973: uint16(59), + 974: uint16(194), + 975: uint16(239), 976: uint16(19), - 977: uint16(188), - 978: uint16(253), - 979: uint16(190), - 980: uint16(193), - 981: uint16(311), - 982: uint16(312), - 983: uint16(16), - 984: uint16(195), - 985: uint16(252), - 986: uint16(197), - 987: uint16(193), - 988: uint16(19), - 989: uint16(301), - 990: uint16(302), - 991: uint16(135), - 992: uint16(193), - 993: uint16(204), - 994: uint16(216), + 977: uint16(194), + 978: uint16(25), + 979: uint16(254), + 980: uint16(303), + 981: uint16(304), + 982: uint16(23), + 983: uint16(194), + 984: uint16(25), + 985: uint16(126), + 986: uint16(306), + 987: uint16(306), + 988: uint16(308), + 989: uint16(308), + 990: uint16(306), + 991: uint16(271), + 992: uint16(308), + 993: uint16(117), + 994: uint16(286), 995: uint16(217), - 996: uint16(140), - 997: uint16(216), - 998: uint16(217), - 999: uint16(266), - 1000: uint16(204), + 996: uint16(218), + 997: uint16(217), + 998: uint16(218), + 999: uint16(194), + 1000: uint16(194), 1001: uint16(159), 1002: uint16(45), 1003: uint16(46), @@ -155322,38 +156826,38 @@ var _yy_lookahead = [2285]uint16{ 1024: uint16(111), 1025: uint16(112), 1026: uint16(113), - 1027: uint16(12), + 1027: uint16(59), 1028: uint16(239), - 1029: uint16(240), - 1030: uint16(193), - 1031: uint16(298), - 1032: uint16(238), - 1033: uint16(117), - 1034: uint16(253), - 1035: uint16(239), + 1029: uint16(194), + 1030: uint16(116), + 1031: uint16(117), + 1032: uint16(118), + 1033: uint16(260), + 1034: uint16(254), + 1035: uint16(194), 1036: uint16(240), - 1037: uint16(238), - 1038: uint16(259), - 1039: uint16(260), - 1040: uint16(193), - 1041: uint16(252), - 1042: uint16(27), - 1043: uint16(193), - 1044: uint16(77), - 1045: uint16(193), - 1046: uint16(79), - 1047: uint16(204), - 1048: uint16(252), - 1049: uint16(262), - 1050: uint16(193), - 1051: uint16(299), - 1052: uint16(300), - 1053: uint16(193), - 1054: uint16(100), - 1055: uint16(266), - 1056: uint16(278), - 1057: uint16(42), - 1058: uint16(204), + 1037: uint16(241), + 1038: uint16(194), + 1039: uint16(233), + 1040: uint16(205), + 1041: uint16(240), + 1042: uint16(241), + 1043: uint16(205), + 1044: uint16(239), + 1045: uint16(128), + 1046: uint16(129), + 1047: uint16(270), + 1048: uint16(265), + 1049: uint16(253), + 1050: uint16(194), + 1051: uint16(255), + 1052: uint16(217), + 1053: uint16(218), + 1054: uint16(253), + 1055: uint16(194), + 1056: uint16(255), + 1057: uint16(143), + 1058: uint16(280), 1059: uint16(102), 1060: uint16(103), 1061: uint16(104), @@ -155366,51 +156870,51 @@ var _yy_lookahead = [2285]uint16{ 1068: uint16(111), 1069: uint16(112), 1070: uint16(113), - 1071: uint16(117), + 1071: uint16(118), 1072: uint16(159), - 1073: uint16(216), - 1074: uint16(217), - 1075: uint16(121), - 1076: uint16(216), - 1077: uint16(217), - 1078: uint16(63), - 1079: uint16(193), - 1080: uint16(193), - 1081: uint16(193), - 1082: uint16(239), - 1083: uint16(240), - 1084: uint16(115), - 1085: uint16(116), - 1086: uint16(193), - 1087: uint16(298), - 1088: uint16(73), - 1089: uint16(240), - 1090: uint16(238), - 1091: uint16(231), + 1073: uint16(217), + 1074: uint16(218), + 1075: uint16(240), + 1076: uint16(241), + 1077: uint16(118), + 1078: uint16(240), + 1079: uint16(241), + 1080: uint16(194), + 1081: uint16(194), + 1082: uint16(194), + 1083: uint16(239), + 1084: uint16(116), + 1085: uint16(117), + 1086: uint16(118), + 1087: uint16(22), + 1088: uint16(253), + 1089: uint16(254), + 1090: uint16(255), + 1091: uint16(253), 1092: uint16(19), - 1093: uint16(239), - 1094: uint16(240), - 1095: uint16(252), - 1096: uint16(22), + 1093: uint16(255), + 1094: uint16(233), + 1095: uint16(194), + 1096: uint16(143), 1097: uint16(24), - 1098: uint16(211), + 1098: uint16(263), 1099: uint16(212), - 1100: uint16(263), - 1101: uint16(252), - 1102: uint16(216), + 1100: uint16(213), + 1101: uint16(194), + 1102: uint16(143), 1103: uint16(217), - 1104: uint16(216), + 1104: uint16(218), 1105: uint16(217), - 1106: uint16(252), - 1107: uint16(153), - 1108: uint16(154), - 1109: uint16(155), - 1110: uint16(253), - 1111: uint16(193), + 1106: uint16(218), + 1107: uint16(261), + 1108: uint16(262), + 1109: uint16(271), + 1110: uint16(254), + 1111: uint16(143), 1112: uint16(19), - 1113: uint16(144), - 1114: uint16(213), - 1115: uint16(268), + 1113: uint16(7), + 1114: uint16(8), + 1115: uint16(9), 1116: uint16(43), 1117: uint16(44), 1118: uint16(45), @@ -155426,11 +156930,11 @@ var _yy_lookahead = [2285]uint16{ 1128: uint16(55), 1129: uint16(56), 1130: uint16(57), - 1131: uint16(193), + 1131: uint16(16), 1132: uint16(19), - 1133: uint16(59), - 1134: uint16(216), - 1135: uint16(217), + 1133: uint16(22), + 1134: uint16(23), + 1135: uint16(294), 1136: uint16(43), 1137: uint16(44), 1138: uint16(45), @@ -155446,11 +156950,11 @@ var _yy_lookahead = [2285]uint16{ 1148: uint16(55), 1149: uint16(56), 1150: uint16(57), - 1151: uint16(193), - 1152: uint16(19), - 1153: uint16(24), - 1154: uint16(216), - 1155: uint16(217), + 1151: uint16(312), + 1152: uint16(194), + 1153: uint16(214), + 1154: uint16(21), + 1155: uint16(316), 1156: uint16(43), 1157: uint16(44), 1158: uint16(45), @@ -155466,10 +156970,10 @@ var _yy_lookahead = [2285]uint16{ 1168: uint16(55), 1169: uint16(56), 1170: uint16(57), - 1171: uint16(284), - 1172: uint16(193), - 1173: uint16(208), - 1174: uint16(209), + 1171: uint16(106), + 1172: uint16(107), + 1173: uint16(286), + 1174: uint16(194), 1175: uint16(102), 1176: uint16(103), 1177: uint16(104), @@ -155482,14 +156986,14 @@ var _yy_lookahead = [2285]uint16{ 1184: uint16(111), 1185: uint16(112), 1186: uint16(113), - 1187: uint16(286), - 1188: uint16(59), - 1189: uint16(193), - 1190: uint16(232), - 1191: uint16(117), - 1192: uint16(291), - 1193: uint16(193), - 1194: uint16(193), + 1187: uint16(207), + 1188: uint16(158), + 1189: uint16(59), + 1190: uint16(160), + 1191: uint16(22), + 1192: uint16(77), + 1193: uint16(24), + 1194: uint16(79), 1195: uint16(102), 1196: uint16(103), 1197: uint16(104), @@ -155502,14 +157006,14 @@ var _yy_lookahead = [2285]uint16{ 1204: uint16(111), 1205: uint16(112), 1206: uint16(113), - 1207: uint16(193), - 1208: uint16(204), - 1209: uint16(22), - 1210: uint16(23), - 1211: uint16(193), - 1212: uint16(25), - 1213: uint16(66), - 1214: uint16(193), + 1207: uint16(194), + 1208: uint16(194), + 1209: uint16(229), + 1210: uint16(194), + 1211: uint16(231), + 1212: uint16(101), + 1213: uint16(80), + 1214: uint16(22), 1215: uint16(102), 1216: uint16(103), 1217: uint16(104), @@ -155522,39 +157026,39 @@ var _yy_lookahead = [2285]uint16{ 1224: uint16(111), 1225: uint16(112), 1226: uint16(113), - 1227: uint16(193), - 1228: uint16(193), - 1229: uint16(193), - 1230: uint16(216), - 1231: uint16(217), - 1232: uint16(85), - 1233: uint16(193), - 1234: uint16(238), + 1227: uint16(288), + 1228: uint16(59), + 1229: uint16(12), + 1230: uint16(217), + 1231: uint16(218), + 1232: uint16(293), + 1233: uint16(217), + 1234: uint16(218), 1235: uint16(19), - 1236: uint16(16), - 1237: uint16(216), - 1238: uint16(217), - 1239: uint16(238), - 1240: uint16(193), - 1241: uint16(94), - 1242: uint16(193), - 1243: uint16(239), - 1244: uint16(240), - 1245: uint16(231), - 1246: uint16(117), - 1247: uint16(268), - 1248: uint16(35), - 1249: uint16(116), - 1250: uint16(216), - 1251: uint16(217), - 1252: uint16(216), - 1253: uint16(217), - 1254: uint16(22), - 1255: uint16(23), - 1256: uint16(252), - 1257: uint16(25), - 1258: uint16(208), - 1259: uint16(209), + 1236: uint16(106), + 1237: uint16(107), + 1238: uint16(59), + 1239: uint16(19), + 1240: uint16(16), + 1241: uint16(127), + 1242: uint16(128), + 1243: uint16(129), + 1244: uint16(27), + 1245: uint16(115), + 1246: uint16(116), + 1247: uint16(117), + 1248: uint16(118), + 1249: uint16(194), + 1250: uint16(120), + 1251: uint16(59), + 1252: uint16(22), + 1253: uint16(194), + 1254: uint16(24), + 1255: uint16(194), + 1256: uint16(123), + 1257: uint16(100), + 1258: uint16(128), + 1259: uint16(42), 1260: uint16(44), 1261: uint16(45), 1262: uint16(46), @@ -155569,50 +157073,50 @@ var _yy_lookahead = [2285]uint16{ 1271: uint16(55), 1272: uint16(56), 1273: uint16(57), - 1274: uint16(193), - 1275: uint16(193), - 1276: uint16(19), - 1277: uint16(5), - 1278: uint16(59), - 1279: uint16(66), - 1280: uint16(193), - 1281: uint16(263), - 1282: uint16(10), - 1283: uint16(11), - 1284: uint16(12), - 1285: uint16(13), - 1286: uint16(14), - 1287: uint16(74), - 1288: uint16(101), - 1289: uint16(17), - 1290: uint16(193), - 1291: uint16(46), - 1292: uint16(193), - 1293: uint16(146), - 1294: uint16(193), - 1295: uint16(76), - 1296: uint16(213), - 1297: uint16(77), - 1298: uint16(263), - 1299: uint16(79), - 1300: uint16(12), - 1301: uint16(260), - 1302: uint16(30), - 1303: uint16(46), - 1304: uint16(32), - 1305: uint16(264), - 1306: uint16(87), - 1307: uint16(193), - 1308: uint16(89), - 1309: uint16(29), - 1310: uint16(263), - 1311: uint16(92), - 1312: uint16(40), - 1313: uint16(33), - 1314: uint16(232), - 1315: uint16(27), - 1316: uint16(193), - 1317: uint16(108), + 1274: uint16(117), + 1275: uint16(194), + 1276: uint16(217), + 1277: uint16(218), + 1278: uint16(121), + 1279: uint16(100), + 1280: uint16(63), + 1281: uint16(194), + 1282: uint16(245), + 1283: uint16(153), + 1284: uint16(194), + 1285: uint16(155), + 1286: uint16(117), + 1287: uint16(19), + 1288: uint16(115), + 1289: uint16(194), + 1290: uint16(73), + 1291: uint16(214), + 1292: uint16(194), + 1293: uint16(256), + 1294: uint16(161), + 1295: uint16(116), + 1296: uint16(117), + 1297: uint16(194), + 1298: uint16(217), + 1299: uint16(218), + 1300: uint16(121), + 1301: uint16(77), + 1302: uint16(194), + 1303: uint16(79), + 1304: uint16(217), + 1305: uint16(218), + 1306: uint16(194), + 1307: uint16(217), + 1308: uint16(218), + 1309: uint16(117), + 1310: uint16(153), + 1311: uint16(154), + 1312: uint16(155), + 1313: uint16(254), + 1314: uint16(46), + 1315: uint16(217), + 1316: uint16(218), + 1317: uint16(144), 1318: uint16(102), 1319: uint16(103), 1320: uint16(104), @@ -155625,1025 +157129,1068 @@ var _yy_lookahead = [2285]uint16{ 1327: uint16(111), 1328: uint16(112), 1329: uint16(113), - 1330: uint16(42), - 1331: uint16(138), - 1332: uint16(139), - 1333: uint16(101), - 1334: uint16(193), - 1335: uint16(116), - 1336: uint16(117), - 1337: uint16(118), + 1330: uint16(232), + 1331: uint16(270), + 1332: uint16(153), + 1333: uint16(154), + 1334: uint16(155), + 1335: uint16(115), + 1336: uint16(116), + 1337: uint16(66), 1338: uint16(19), 1339: uint16(20), - 1340: uint16(255), + 1340: uint16(183), 1341: uint16(22), - 1342: uint16(70), - 1343: uint16(130), - 1344: uint16(135), - 1345: uint16(65), - 1346: uint16(256), - 1347: uint16(257), - 1348: uint16(193), - 1349: uint16(140), - 1350: uint16(78), - 1351: uint16(63), - 1352: uint16(193), - 1353: uint16(81), - 1354: uint16(193), + 1342: uint16(12), + 1343: uint16(312), + 1344: uint16(254), + 1345: uint16(194), + 1346: uint16(262), + 1347: uint16(316), + 1348: uint16(209), + 1349: uint16(210), + 1350: uint16(266), + 1351: uint16(239), + 1352: uint16(194), + 1353: uint16(194), + 1354: uint16(108), 1355: uint16(36), - 1356: uint16(193), - 1357: uint16(216), - 1358: uint16(217), - 1359: uint16(193), - 1360: uint16(115), - 1361: uint16(193), - 1362: uint16(263), - 1363: uint16(193), - 1364: uint16(145), - 1365: uint16(268), - 1366: uint16(59), + 1356: uint16(85), + 1357: uint16(27), + 1358: uint16(19), + 1359: uint16(20), + 1360: uint16(265), + 1361: uint16(22), + 1362: uint16(183), + 1363: uint16(245), + 1364: uint16(144), + 1365: uint16(94), + 1366: uint16(25), 1367: uint16(48), - 1368: uint16(193), - 1369: uint16(193), - 1370: uint16(98), - 1371: uint16(193), - 1372: uint16(115), - 1373: uint16(193), - 1374: uint16(291), - 1375: uint16(216), + 1368: uint16(217), + 1369: uint16(218), + 1370: uint16(293), + 1371: uint16(194), + 1372: uint16(42), + 1373: uint16(270), + 1374: uint16(256), + 1375: uint16(36), 1376: uint16(217), - 1377: uint16(193), + 1377: uint16(218), 1378: uint16(59), - 1379: uint16(216), - 1380: uint16(217), - 1381: uint16(161), - 1382: uint16(216), - 1383: uint16(217), - 1384: uint16(216), - 1385: uint16(217), - 1386: uint16(216), - 1387: uint16(217), - 1388: uint16(131), - 1389: uint16(193), + 1379: uint16(194), + 1380: uint16(25), + 1381: uint16(135), + 1382: uint16(194), + 1383: uint16(115), + 1384: uint16(194), + 1385: uint16(161), + 1386: uint16(140), + 1387: uint16(194), + 1388: uint16(194), + 1389: uint16(15), 1390: uint16(71), - 1391: uint16(193), - 1392: uint16(216), - 1393: uint16(217), - 1394: uint16(216), - 1395: uint16(217), - 1396: uint16(216), - 1397: uint16(217), - 1398: uint16(193), - 1399: uint16(260), - 1400: uint16(216), - 1401: uint16(217), - 1402: uint16(19), - 1403: uint16(264), + 1391: uint16(194), + 1392: uint16(312), + 1393: uint16(63), + 1394: uint16(217), + 1395: uint16(218), + 1396: uint16(316), + 1397: uint16(194), + 1398: uint16(59), + 1399: uint16(131), + 1400: uint16(301), + 1401: uint16(302), + 1402: uint16(217), + 1403: uint16(218), 1404: uint16(85), - 1405: uint16(133), - 1406: uint16(244), - 1407: uint16(100), - 1408: uint16(193), + 1405: uint16(217), + 1406: uint16(218), + 1407: uint16(217), + 1408: uint16(218), 1409: uint16(90), - 1410: uint16(138), - 1411: uint16(139), - 1412: uint16(216), - 1413: uint16(217), - 1414: uint16(216), - 1415: uint16(217), - 1416: uint16(254), - 1417: uint16(244), - 1418: uint16(193), + 1410: uint16(71), + 1411: uint16(217), + 1412: uint16(218), + 1413: uint16(19), + 1414: uint16(217), + 1415: uint16(218), + 1416: uint16(245), + 1417: uint16(146), + 1418: uint16(262), 1419: uint16(100), - 1420: uint16(193), - 1421: uint16(216), - 1422: uint16(217), - 1423: uint16(116), - 1424: uint16(117), + 1420: uint16(217), + 1421: uint16(218), + 1422: uint16(266), + 1423: uint16(265), + 1424: uint16(85), 1425: uint16(106), 1426: uint16(107), - 1427: uint16(254), - 1428: uint16(121), - 1429: uint16(193), - 1430: uint16(115), - 1431: uint16(216), - 1432: uint16(217), + 1427: uint16(256), + 1428: uint16(312), + 1429: uint16(90), + 1430: uint16(209), + 1431: uint16(210), + 1432: uint16(316), 1433: uint16(114), - 1434: uint16(162), + 1434: uint16(60), 1435: uint16(116), 1436: uint16(117), 1437: uint16(118), - 1438: uint16(115), - 1439: uint16(244), + 1438: uint16(194), + 1439: uint16(100), 1440: uint16(121), - 1441: uint16(216), - 1442: uint16(217), - 1443: uint16(216), - 1444: uint16(217), - 1445: uint16(193), - 1446: uint16(309), - 1447: uint16(193), - 1448: uint16(31), - 1449: uint16(254), - 1450: uint16(313), - 1451: uint16(309), - 1452: uint16(216), - 1453: uint16(217), - 1454: uint16(309), - 1455: uint16(313), - 1456: uint16(39), - 1457: uint16(193), - 1458: uint16(313), - 1459: uint16(309), - 1460: uint16(153), - 1461: uint16(154), - 1462: uint16(155), - 1463: uint16(313), - 1464: uint16(193), - 1465: uint16(150), - 1466: uint16(25), - 1467: uint16(144), - 1468: uint16(216), - 1469: uint16(217), - 1470: uint16(216), - 1471: uint16(217), + 1441: uint16(194), + 1442: uint16(194), + 1443: uint16(145), + 1444: uint16(115), + 1445: uint16(106), + 1446: uint16(107), + 1447: uint16(19), + 1448: uint16(46), + 1449: uint16(19), + 1450: uint16(20), + 1451: uint16(24), + 1452: uint16(22), + 1453: uint16(114), + 1454: uint16(194), + 1455: uint16(116), + 1456: uint16(117), + 1457: uint16(118), + 1458: uint16(194), + 1459: uint16(245), + 1460: uint16(121), + 1461: uint16(194), + 1462: uint16(164), + 1463: uint16(194), + 1464: uint16(217), + 1465: uint16(218), + 1466: uint16(36), + 1467: uint16(194), + 1468: uint16(258), + 1469: uint16(259), + 1470: uint16(256), + 1471: uint16(194), 1472: uint16(153), 1473: uint16(154), 1474: uint16(155), 1475: uint16(156), 1476: uint16(157), - 1478: uint16(1), - 1479: uint16(2), - 1480: uint16(216), + 1477: uint16(217), + 1478: uint16(218), + 1479: uint16(150), + 1480: uint16(31), 1481: uint16(217), - 1482: uint16(5), - 1483: uint16(149), - 1484: uint16(150), - 1485: uint16(22), - 1486: uint16(193), - 1487: uint16(10), - 1488: uint16(11), - 1489: uint16(12), - 1490: uint16(13), - 1491: uint16(14), - 1492: uint16(193), - 1493: uint16(158), - 1494: uint16(17), - 1495: uint16(160), - 1496: uint16(193), - 1497: uint16(19), - 1498: uint16(20), - 1499: uint16(116), - 1500: uint16(22), - 1501: uint16(25), - 1502: uint16(193), - 1503: uint16(24), - 1504: uint16(22), - 1505: uint16(193), - 1506: uint16(24), - 1507: uint16(30), - 1508: uint16(226), - 1509: uint16(32), - 1510: uint16(19), - 1511: uint16(20), - 1512: uint16(226), - 1513: uint16(22), - 1514: uint16(36), - 1515: uint16(193), - 1516: uint16(53), - 1517: uint16(40), - 1518: uint16(193), - 1519: uint16(216), - 1520: uint16(217), - 1521: uint16(193), - 1522: uint16(23), - 1523: uint16(193), - 1524: uint16(25), - 1525: uint16(216), - 1526: uint16(217), - 1527: uint16(36), - 1528: uint16(216), - 1529: uint16(217), - 1530: uint16(193), - 1531: uint16(99), - 1532: uint16(193), - 1533: uint16(193), - 1534: uint16(22), - 1535: uint16(193), - 1536: uint16(193), - 1537: uint16(59), - 1538: uint16(216), + 1482: uint16(218), + 1483: uint16(142), + 1484: uint16(217), + 1485: uint16(218), + 1486: uint16(217), + 1487: uint16(218), + 1488: uint16(39), + 1489: uint16(59), + 1490: uint16(217), + 1491: uint16(218), + 1492: uint16(153), + 1493: uint16(154), + 1494: uint16(155), + 1495: uint16(156), + 1496: uint16(157), + 1497: uint16(149), + 1498: uint16(150), + 1499: uint16(5), + 1500: uint16(145), + 1501: uint16(71), + 1502: uint16(183), + 1503: uint16(245), + 1504: uint16(10), + 1505: uint16(11), + 1506: uint16(12), + 1507: uint16(13), + 1508: uint16(14), + 1509: uint16(194), + 1510: uint16(116), + 1511: uint16(17), + 1512: uint16(129), + 1513: uint16(227), + 1514: uint16(256), + 1515: uint16(85), + 1516: uint16(194), + 1517: uint16(115), + 1518: uint16(194), + 1519: uint16(23), + 1520: uint16(90), + 1521: uint16(25), + 1522: uint16(183), + 1523: uint16(99), + 1524: uint16(30), + 1525: uint16(97), + 1526: uint16(32), + 1527: uint16(22), + 1528: uint16(22), + 1529: uint16(194), + 1530: uint16(100), + 1531: uint16(194), + 1532: uint16(217), + 1533: uint16(218), + 1534: uint16(40), + 1535: uint16(152), + 1536: uint16(106), + 1537: uint16(107), + 1538: uint16(23), 1539: uint16(217), - 1540: uint16(193), - 1541: uint16(216), - 1542: uint16(217), - 1543: uint16(193), - 1544: uint16(216), - 1545: uint16(217), - 1546: uint16(193), - 1547: uint16(70), - 1548: uint16(129), - 1549: uint16(71), - 1550: uint16(59), - 1551: uint16(129), - 1552: uint16(193), - 1553: uint16(216), + 1540: uint16(218), + 1541: uint16(194), + 1542: uint16(19), + 1543: uint16(20), + 1544: uint16(114), + 1545: uint16(22), + 1546: uint16(116), + 1547: uint16(117), + 1548: uint16(118), + 1549: uint16(257), + 1550: uint16(194), + 1551: uint16(121), + 1552: uint16(217), + 1553: uint16(218), 1554: uint16(217), - 1555: uint16(78), - 1556: uint16(216), - 1557: uint16(217), - 1558: uint16(81), - 1559: uint16(216), - 1560: uint16(217), - 1561: uint16(193), - 1562: uint16(71), - 1563: uint16(85), - 1564: uint16(193), - 1565: uint16(133), - 1566: uint16(193), - 1567: uint16(126), - 1568: uint16(90), - 1569: uint16(216), - 1570: uint16(217), - 1571: uint16(152), - 1572: uint16(258), - 1573: uint16(61), - 1574: uint16(152), - 1575: uint16(98), - 1576: uint16(85), - 1577: uint16(193), - 1578: uint16(100), - 1579: uint16(193), - 1580: uint16(23), - 1581: uint16(90), - 1582: uint16(25), - 1583: uint16(121), - 1584: uint16(106), - 1585: uint16(107), - 1586: uint16(23), - 1587: uint16(216), - 1588: uint16(217), - 1589: uint16(216), - 1590: uint16(217), - 1591: uint16(100), - 1592: uint16(114), - 1593: uint16(131), - 1594: uint16(116), - 1595: uint16(117), - 1596: uint16(118), - 1597: uint16(106), - 1598: uint16(107), - 1599: uint16(121), - 1600: uint16(216), - 1601: uint16(217), - 1602: uint16(216), - 1603: uint16(217), - 1604: uint16(193), - 1605: uint16(114), - 1606: uint16(193), - 1607: uint16(116), - 1608: uint16(117), - 1609: uint16(118), - 1610: uint16(133), - 1611: uint16(22), - 1612: uint16(121), - 1613: uint16(193), - 1614: uint16(59), - 1615: uint16(138), - 1616: uint16(139), - 1617: uint16(193), - 1618: uint16(142), - 1619: uint16(193), - 1620: uint16(141), - 1621: uint16(23), - 1622: uint16(23), - 1623: uint16(25), - 1624: uint16(25), - 1625: uint16(120), - 1626: uint16(121), - 1627: uint16(216), - 1628: uint16(217), - 1629: uint16(216), - 1630: uint16(217), - 1631: uint16(153), - 1632: uint16(154), - 1633: uint16(155), - 1634: uint16(156), - 1635: uint16(157), - 1636: uint16(216), - 1637: uint16(217), - 1638: uint16(19), - 1639: uint16(162), - 1640: uint16(216), - 1641: uint16(217), - 1642: uint16(216), - 1643: uint16(217), - 1644: uint16(153), - 1645: uint16(154), - 1646: uint16(155), - 1647: uint16(156), - 1648: uint16(157), - 1649: uint16(1), - 1650: uint16(2), - 1651: uint16(193), - 1652: uint16(59), - 1653: uint16(5), - 1654: uint16(19), - 1655: uint16(20), - 1656: uint16(318), - 1657: uint16(22), - 1658: uint16(10), - 1659: uint16(11), - 1660: uint16(12), - 1661: uint16(13), - 1662: uint16(14), - 1663: uint16(193), - 1664: uint16(59), - 1665: uint16(17), - 1666: uint16(193), - 1667: uint16(23), - 1668: uint16(23), - 1669: uint16(25), - 1670: uint16(25), - 1671: uint16(36), - 1672: uint16(117), - 1673: uint16(193), - 1674: uint16(216), - 1675: uint16(217), - 1676: uint16(193), - 1677: uint16(23), - 1678: uint16(30), - 1679: uint16(25), - 1680: uint16(32), - 1681: uint16(19), - 1682: uint16(20), - 1683: uint16(23), - 1684: uint16(22), - 1685: uint16(25), - 1686: uint16(216), - 1687: uint16(217), - 1688: uint16(40), - 1689: uint16(216), + 1555: uint16(218), + 1556: uint16(194), + 1557: uint16(133), + 1558: uint16(53), + 1559: uint16(36), + 1560: uint16(23), + 1561: uint16(23), + 1562: uint16(25), + 1563: uint16(25), + 1564: uint16(70), + 1565: uint16(120), + 1566: uint16(121), + 1567: uint16(61), + 1568: uint16(141), + 1569: uint16(7), + 1570: uint16(8), + 1571: uint16(121), + 1572: uint16(78), + 1573: uint16(217), + 1574: uint16(218), + 1575: uint16(81), + 1576: uint16(23), + 1577: uint16(227), + 1578: uint16(25), + 1579: uint16(217), + 1580: uint16(218), + 1581: uint16(131), + 1582: uint16(59), + 1583: uint16(153), + 1584: uint16(154), + 1585: uint16(155), + 1586: uint16(156), + 1587: uint16(157), + 1589: uint16(1), + 1590: uint16(2), + 1591: uint16(59), + 1592: uint16(98), + 1593: uint16(5), + 1594: uint16(71), + 1595: uint16(23), + 1596: uint16(227), + 1597: uint16(25), + 1598: uint16(10), + 1599: uint16(11), + 1600: uint16(12), + 1601: uint16(13), + 1602: uint16(14), + 1603: uint16(83), + 1604: uint16(84), + 1605: uint16(17), + 1606: uint16(23), + 1607: uint16(23), + 1608: uint16(25), + 1609: uint16(25), + 1610: uint16(59), + 1611: uint16(194), + 1612: uint16(194), + 1613: uint16(183), + 1614: uint16(23), + 1615: uint16(23), + 1616: uint16(25), + 1617: uint16(25), + 1618: uint16(30), + 1619: uint16(194), + 1620: uint16(32), + 1621: uint16(19), + 1622: uint16(20), + 1623: uint16(100), + 1624: uint16(22), + 1625: uint16(194), + 1626: uint16(194), + 1627: uint16(133), + 1628: uint16(40), + 1629: uint16(106), + 1630: uint16(107), + 1631: uint16(108), + 1632: uint16(138), + 1633: uint16(139), + 1634: uint16(194), + 1635: uint16(217), + 1636: uint16(218), + 1637: uint16(114), + 1638: uint16(36), + 1639: uint16(116), + 1640: uint16(117), + 1641: uint16(118), + 1642: uint16(217), + 1643: uint16(218), + 1644: uint16(121), + 1645: uint16(194), + 1646: uint16(194), + 1647: uint16(194), + 1648: uint16(23), + 1649: uint16(117), + 1650: uint16(25), + 1651: uint16(194), + 1652: uint16(23), + 1653: uint16(23), + 1654: uint16(25), + 1655: uint16(25), + 1656: uint16(162), + 1657: uint16(194), + 1658: uint16(70), + 1659: uint16(194), + 1660: uint16(145), + 1661: uint16(59), + 1662: uint16(23), + 1663: uint16(153), + 1664: uint16(25), + 1665: uint16(155), + 1666: uint16(78), + 1667: uint16(194), + 1668: uint16(117), + 1669: uint16(81), + 1670: uint16(217), + 1671: uint16(218), + 1672: uint16(194), + 1673: uint16(71), + 1674: uint16(217), + 1675: uint16(218), + 1676: uint16(153), + 1677: uint16(154), + 1678: uint16(155), + 1679: uint16(156), + 1680: uint16(157), + 1681: uint16(194), + 1682: uint16(217), + 1683: uint16(218), + 1684: uint16(194), + 1685: uint16(23), + 1686: uint16(98), + 1687: uint16(25), + 1688: uint16(321), + 1689: uint16(194), 1690: uint16(217), - 1691: uint16(7), - 1692: uint16(8), - 1693: uint16(23), - 1694: uint16(59), - 1695: uint16(25), - 1696: uint16(83), - 1697: uint16(84), - 1698: uint16(36), - 1699: uint16(23), - 1700: uint16(193), - 1701: uint16(25), - 1702: uint16(23), - 1703: uint16(23), - 1704: uint16(25), - 1705: uint16(25), - 1706: uint16(71), - 1707: uint16(153), - 1708: uint16(145), - 1709: uint16(155), - 1710: uint16(117), - 1711: uint16(153), - 1712: uint16(23), - 1713: uint16(155), - 1714: uint16(25), - 1715: uint16(23), - 1716: uint16(97), - 1717: uint16(25), - 1718: uint16(70), - 1719: uint16(193), - 1720: uint16(193), - 1721: uint16(59), - 1722: uint16(117), - 1723: uint16(236), - 1724: uint16(193), - 1725: uint16(193), - 1726: uint16(78), - 1727: uint16(193), - 1728: uint16(193), - 1729: uint16(81), - 1730: uint16(141), - 1731: uint16(193), - 1732: uint16(193), - 1733: uint16(71), - 1734: uint16(193), - 1735: uint16(100), - 1736: uint16(288), - 1737: uint16(287), - 1738: uint16(242), - 1739: uint16(255), - 1740: uint16(255), - 1741: uint16(106), - 1742: uint16(107), - 1743: uint16(108), - 1744: uint16(255), - 1745: uint16(255), - 1746: uint16(98), - 1747: uint16(243), - 1748: uint16(297), - 1749: uint16(114), - 1750: uint16(214), - 1751: uint16(116), - 1752: uint16(117), - 1753: uint16(118), - 1754: uint16(245), - 1755: uint16(191), - 1756: uint16(121), - 1757: uint16(271), - 1758: uint16(293), - 1759: uint16(267), - 1760: uint16(267), - 1761: uint16(246), - 1762: uint16(100), - 1763: uint16(246), - 1764: uint16(245), - 1765: uint16(271), - 1766: uint16(271), - 1767: uint16(293), - 1768: uint16(106), - 1769: uint16(107), - 1770: uint16(220), - 1771: uint16(271), - 1772: uint16(229), - 1773: uint16(225), - 1774: uint16(249), - 1775: uint16(219), - 1776: uint16(114), - 1777: uint16(259), - 1778: uint16(116), - 1779: uint16(117), - 1780: uint16(118), - 1781: uint16(133), - 1782: uint16(259), - 1783: uint16(121), - 1784: uint16(219), - 1785: uint16(219), - 1786: uint16(138), - 1787: uint16(139), - 1788: uint16(153), - 1789: uint16(154), - 1790: uint16(155), - 1791: uint16(156), - 1792: uint16(157), - 1793: uint16(280), - 1794: uint16(249), - 1795: uint16(243), - 1796: uint16(19), - 1797: uint16(20), - 1798: uint16(245), - 1799: uint16(22), - 1800: uint16(196), - 1801: uint16(259), - 1802: uint16(140), - 1803: uint16(259), - 1804: uint16(60), - 1805: uint16(297), - 1806: uint16(141), - 1807: uint16(297), - 1808: uint16(200), - 1809: uint16(200), - 1810: uint16(162), - 1811: uint16(38), - 1812: uint16(200), - 1813: uint16(36), - 1814: uint16(294), - 1815: uint16(153), - 1816: uint16(154), - 1817: uint16(155), - 1818: uint16(156), - 1819: uint16(157), - 1820: uint16(151), - 1821: uint16(150), - 1822: uint16(294), - 1823: uint16(283), - 1824: uint16(22), - 1825: uint16(43), - 1826: uint16(234), - 1827: uint16(18), - 1828: uint16(237), - 1829: uint16(200), - 1830: uint16(270), - 1831: uint16(272), - 1832: uint16(237), - 1833: uint16(237), - 1834: uint16(237), - 1835: uint16(18), - 1836: uint16(59), - 1837: uint16(199), - 1838: uint16(270), - 1839: uint16(149), - 1840: uint16(246), - 1841: uint16(272), - 1842: uint16(272), - 1843: uint16(200), - 1844: uint16(234), - 1845: uint16(234), - 1846: uint16(246), - 1847: uint16(246), - 1848: uint16(71), - 1849: uint16(246), - 1850: uint16(199), - 1851: uint16(158), - 1852: uint16(290), - 1853: uint16(62), - 1854: uint16(22), - 1855: uint16(200), - 1856: uint16(19), - 1857: uint16(20), - 1858: uint16(199), - 1859: uint16(22), - 1860: uint16(289), - 1861: uint16(221), - 1862: uint16(221), - 1863: uint16(200), - 1864: uint16(200), - 1865: uint16(199), - 1866: uint16(199), - 1867: uint16(115), - 1868: uint16(218), - 1869: uint16(64), - 1870: uint16(218), - 1871: uint16(218), + 1691: uint16(218), + 1692: uint16(194), + 1693: uint16(19), + 1694: uint16(20), + 1695: uint16(194), + 1696: uint16(22), + 1697: uint16(153), + 1698: uint16(23), + 1699: uint16(155), + 1700: uint16(25), + 1701: uint16(194), + 1702: uint16(100), + 1703: uint16(194), + 1704: uint16(217), + 1705: uint16(218), + 1706: uint16(183), + 1707: uint16(194), + 1708: uint16(106), + 1709: uint16(107), + 1710: uint16(36), + 1711: uint16(194), + 1712: uint16(217), + 1713: uint16(218), + 1714: uint16(237), + 1715: uint16(194), + 1716: uint16(114), + 1717: uint16(243), + 1718: uint16(116), + 1719: uint16(117), + 1720: uint16(118), + 1721: uint16(133), + 1722: uint16(194), + 1723: uint16(121), + 1724: uint16(217), + 1725: uint16(218), + 1726: uint16(138), + 1727: uint16(139), + 1728: uint16(194), + 1729: uint16(194), + 1730: uint16(194), + 1731: uint16(290), + 1732: uint16(289), + 1733: uint16(59), + 1734: uint16(217), + 1735: uint16(218), + 1736: uint16(194), + 1737: uint16(194), + 1738: uint16(217), + 1739: uint16(218), + 1740: uint16(194), + 1741: uint16(194), + 1742: uint16(140), + 1743: uint16(194), + 1744: uint16(194), + 1745: uint16(71), + 1746: uint16(194), + 1747: uint16(244), + 1748: uint16(194), + 1749: uint16(194), + 1750: uint16(162), + 1751: uint16(217), + 1752: uint16(218), + 1753: uint16(194), + 1754: uint16(194), + 1755: uint16(153), + 1756: uint16(154), + 1757: uint16(155), + 1758: uint16(156), + 1759: uint16(157), + 1760: uint16(217), + 1761: uint16(218), + 1762: uint16(194), + 1763: uint16(217), + 1764: uint16(218), + 1765: uint16(194), + 1766: uint16(217), + 1767: uint16(218), + 1768: uint16(257), + 1769: uint16(217), + 1770: uint16(218), + 1771: uint16(217), + 1772: uint16(218), + 1773: uint16(257), + 1774: uint16(100), + 1775: uint16(194), + 1776: uint16(257), + 1777: uint16(217), + 1778: uint16(218), + 1779: uint16(257), + 1780: uint16(106), + 1781: uint16(107), + 1782: uint16(215), + 1783: uint16(299), + 1784: uint16(194), + 1785: uint16(183), + 1786: uint16(192), + 1787: uint16(194), + 1788: uint16(114), + 1789: uint16(194), + 1790: uint16(116), + 1791: uint16(117), + 1792: uint16(118), + 1793: uint16(1), + 1794: uint16(2), + 1795: uint16(121), + 1796: uint16(221), + 1797: uint16(5), + 1798: uint16(217), + 1799: uint16(218), + 1800: uint16(273), + 1801: uint16(197), + 1802: uint16(10), + 1803: uint16(11), + 1804: uint16(12), + 1805: uint16(13), + 1806: uint16(14), + 1807: uint16(217), + 1808: uint16(218), + 1809: uint16(17), + 1810: uint16(217), + 1811: uint16(218), + 1812: uint16(217), + 1813: uint16(218), + 1814: uint16(140), + 1815: uint16(194), + 1816: uint16(246), + 1817: uint16(194), + 1818: uint16(273), + 1819: uint16(295), + 1820: uint16(247), + 1821: uint16(273), + 1822: uint16(30), + 1823: uint16(247), + 1824: uint16(32), + 1825: uint16(269), + 1826: uint16(269), + 1827: uint16(153), + 1828: uint16(154), + 1829: uint16(155), + 1830: uint16(156), + 1831: uint16(157), + 1832: uint16(40), + 1833: uint16(246), + 1834: uint16(273), + 1835: uint16(295), + 1836: uint16(230), + 1837: uint16(226), + 1838: uint16(217), + 1839: uint16(218), + 1840: uint16(217), + 1841: uint16(218), + 1842: uint16(220), + 1843: uint16(261), + 1844: uint16(220), + 1845: uint16(282), + 1846: uint16(220), + 1847: uint16(19), + 1848: uint16(20), + 1849: uint16(244), + 1850: uint16(22), + 1851: uint16(250), + 1852: uint16(141), + 1853: uint16(250), + 1854: uint16(246), + 1855: uint16(60), + 1856: uint16(201), + 1857: uint16(183), + 1858: uint16(261), + 1859: uint16(261), + 1860: uint16(261), + 1861: uint16(201), + 1862: uint16(70), + 1863: uint16(299), + 1864: uint16(36), + 1865: uint16(299), + 1866: uint16(201), + 1867: uint16(38), + 1868: uint16(151), + 1869: uint16(150), + 1870: uint16(78), + 1871: uint16(285), 1872: uint16(22), - 1873: uint16(36), - 1874: uint16(227), - 1875: uint16(126), - 1876: uint16(227), - 1877: uint16(100), - 1878: uint16(165), - 1879: uint16(221), - 1880: uint16(224), - 1881: uint16(224), - 1882: uint16(24), - 1883: uint16(106), - 1884: uint16(107), - 1885: uint16(312), - 1886: uint16(218), - 1887: uint16(305), - 1888: uint16(113), - 1889: uint16(282), - 1890: uint16(91), - 1891: uint16(114), - 1892: uint16(220), - 1893: uint16(116), - 1894: uint16(117), - 1895: uint16(118), - 1896: uint16(59), - 1897: uint16(282), - 1898: uint16(121), - 1899: uint16(218), - 1900: uint16(218), - 1901: uint16(218), + 1873: uint16(81), + 1874: uint16(296), + 1875: uint16(296), + 1876: uint16(43), + 1877: uint16(235), + 1878: uint16(18), + 1879: uint16(238), + 1880: uint16(201), + 1881: uint16(274), + 1882: uint16(272), + 1883: uint16(238), + 1884: uint16(238), + 1885: uint16(238), + 1886: uint16(18), + 1887: uint16(59), + 1888: uint16(200), + 1889: uint16(149), + 1890: uint16(98), + 1891: uint16(247), + 1892: uint16(274), + 1893: uint16(274), + 1894: uint16(235), + 1895: uint16(247), + 1896: uint16(247), + 1897: uint16(247), + 1898: uint16(235), + 1899: uint16(71), + 1900: uint16(272), + 1901: uint16(201), 1902: uint16(200), - 1903: uint16(317), - 1904: uint16(317), - 1905: uint16(82), - 1906: uint16(221), - 1907: uint16(265), - 1908: uint16(71), - 1909: uint16(148), - 1910: uint16(145), - 1911: uint16(265), - 1912: uint16(22), - 1913: uint16(277), - 1914: uint16(200), - 1915: uint16(158), - 1916: uint16(279), - 1917: uint16(140), - 1918: uint16(147), - 1919: uint16(25), - 1920: uint16(146), - 1921: uint16(202), - 1922: uint16(248), - 1923: uint16(250), - 1924: uint16(249), - 1925: uint16(247), - 1926: uint16(13), - 1927: uint16(250), - 1928: uint16(194), - 1929: uint16(194), - 1930: uint16(153), - 1931: uint16(154), - 1932: uint16(155), - 1933: uint16(156), - 1934: uint16(157), - 1935: uint16(6), - 1936: uint16(303), - 1937: uint16(100), - 1938: uint16(192), - 1939: uint16(192), - 1940: uint16(246), - 1941: uint16(213), - 1942: uint16(192), - 1943: uint16(106), - 1944: uint16(107), - 1945: uint16(207), - 1946: uint16(213), - 1947: uint16(207), - 1948: uint16(222), - 1949: uint16(213), - 1950: uint16(213), - 1951: uint16(114), - 1952: uint16(222), - 1953: uint16(116), - 1954: uint16(117), - 1955: uint16(118), - 1956: uint16(214), - 1957: uint16(214), - 1958: uint16(121), - 1959: uint16(4), - 1960: uint16(207), - 1961: uint16(213), - 1962: uint16(3), - 1963: uint16(22), - 1964: uint16(303), - 1965: uint16(15), - 1966: uint16(163), - 1967: uint16(16), - 1968: uint16(23), - 1969: uint16(23), - 1970: uint16(139), - 1971: uint16(151), - 1972: uint16(130), - 1973: uint16(25), - 1974: uint16(20), - 1975: uint16(142), - 1976: uint16(24), - 1977: uint16(16), - 1978: uint16(144), - 1979: uint16(1), - 1980: uint16(142), - 1981: uint16(130), - 1982: uint16(130), - 1983: uint16(61), - 1984: uint16(37), - 1985: uint16(53), - 1986: uint16(300), - 1987: uint16(151), - 1988: uint16(53), - 1989: uint16(53), - 1990: uint16(153), - 1991: uint16(154), - 1992: uint16(155), - 1993: uint16(156), - 1994: uint16(157), - 1995: uint16(53), - 1996: uint16(130), - 1997: uint16(116), - 1998: uint16(34), - 1999: uint16(1), - 2000: uint16(141), - 2001: uint16(5), - 2002: uint16(22), - 2003: uint16(115), - 2004: uint16(161), - 2005: uint16(68), - 2006: uint16(25), - 2007: uint16(68), - 2008: uint16(75), - 2009: uint16(41), - 2010: uint16(141), - 2011: uint16(115), - 2012: uint16(24), - 2013: uint16(20), - 2014: uint16(19), - 2015: uint16(131), - 2016: uint16(125), - 2017: uint16(23), - 2018: uint16(28), - 2019: uint16(22), - 2020: uint16(67), - 2021: uint16(22), - 2022: uint16(22), - 2023: uint16(22), - 2024: uint16(67), - 2025: uint16(59), - 2026: uint16(24), - 2027: uint16(96), - 2028: uint16(22), - 2029: uint16(67), - 2030: uint16(23), - 2031: uint16(149), - 2032: uint16(22), - 2033: uint16(25), - 2034: uint16(23), - 2035: uint16(23), - 2036: uint16(23), - 2037: uint16(22), - 2038: uint16(34), - 2039: uint16(141), - 2040: uint16(37), - 2041: uint16(97), - 2042: uint16(23), - 2043: uint16(23), - 2044: uint16(116), - 2045: uint16(22), - 2046: uint16(143), - 2047: uint16(25), - 2048: uint16(34), - 2049: uint16(75), - 2050: uint16(34), - 2051: uint16(34), - 2052: uint16(34), - 2053: uint16(88), - 2054: uint16(75), - 2055: uint16(34), - 2056: uint16(86), - 2057: uint16(23), + 1903: uint16(158), + 1904: uint16(292), + 1905: uint16(62), + 1906: uint16(291), + 1907: uint16(201), + 1908: uint16(200), + 1909: uint16(22), + 1910: uint16(201), + 1911: uint16(222), + 1912: uint16(200), + 1913: uint16(222), + 1914: uint16(201), + 1915: uint16(200), + 1916: uint16(115), + 1917: uint16(219), + 1918: uint16(219), + 1919: uint16(64), + 1920: uint16(219), + 1921: uint16(228), + 1922: uint16(22), + 1923: uint16(126), + 1924: uint16(221), + 1925: uint16(133), + 1926: uint16(165), + 1927: uint16(222), + 1928: uint16(100), + 1929: uint16(225), + 1930: uint16(138), + 1931: uint16(139), + 1932: uint16(225), + 1933: uint16(219), + 1934: uint16(106), + 1935: uint16(107), + 1936: uint16(24), + 1937: uint16(219), + 1938: uint16(228), + 1939: uint16(219), + 1940: uint16(219), + 1941: uint16(307), + 1942: uint16(114), + 1943: uint16(113), + 1944: uint16(116), + 1945: uint16(117), + 1946: uint16(118), + 1947: uint16(315), + 1948: uint16(284), + 1949: uint16(121), + 1950: uint16(284), + 1951: uint16(222), + 1952: uint16(201), + 1953: uint16(91), + 1954: uint16(162), + 1955: uint16(320), + 1956: uint16(320), + 1957: uint16(82), + 1958: uint16(148), + 1959: uint16(267), + 1960: uint16(145), + 1961: uint16(267), + 1962: uint16(22), + 1963: uint16(279), + 1964: uint16(201), + 1965: uint16(158), + 1966: uint16(281), + 1967: uint16(251), + 1968: uint16(147), + 1969: uint16(146), + 1970: uint16(25), + 1971: uint16(203), + 1972: uint16(250), + 1973: uint16(249), + 1974: uint16(251), + 1975: uint16(248), + 1976: uint16(13), + 1977: uint16(247), + 1978: uint16(195), + 1979: uint16(195), + 1980: uint16(6), + 1981: uint16(153), + 1982: uint16(154), + 1983: uint16(155), + 1984: uint16(156), + 1985: uint16(157), + 1986: uint16(193), + 1987: uint16(193), + 1988: uint16(305), + 1989: uint16(193), + 1990: uint16(208), + 1991: uint16(305), + 1992: uint16(302), + 1993: uint16(214), + 1994: uint16(214), + 1995: uint16(214), + 1996: uint16(208), + 1997: uint16(223), + 1998: uint16(223), + 1999: uint16(214), + 2000: uint16(4), + 2001: uint16(215), + 2002: uint16(215), + 2003: uint16(214), + 2004: uint16(3), + 2005: uint16(22), + 2006: uint16(208), + 2007: uint16(163), + 2008: uint16(15), + 2009: uint16(23), + 2010: uint16(16), + 2011: uint16(183), + 2012: uint16(23), + 2013: uint16(139), + 2014: uint16(151), + 2015: uint16(130), + 2016: uint16(25), + 2017: uint16(20), + 2018: uint16(142), + 2019: uint16(24), + 2020: uint16(16), + 2021: uint16(144), + 2022: uint16(1), + 2023: uint16(142), + 2024: uint16(130), + 2025: uint16(130), + 2026: uint16(61), + 2027: uint16(37), + 2028: uint16(53), + 2029: uint16(151), + 2030: uint16(53), + 2031: uint16(53), + 2032: uint16(53), + 2033: uint16(130), + 2034: uint16(116), + 2035: uint16(1), + 2036: uint16(34), + 2037: uint16(141), + 2038: uint16(5), + 2039: uint16(22), + 2040: uint16(115), + 2041: uint16(161), + 2042: uint16(75), + 2043: uint16(25), + 2044: uint16(68), + 2045: uint16(141), + 2046: uint16(41), + 2047: uint16(115), + 2048: uint16(68), + 2049: uint16(24), + 2050: uint16(20), + 2051: uint16(19), + 2052: uint16(131), + 2053: uint16(125), + 2054: uint16(67), + 2055: uint16(67), + 2056: uint16(96), + 2057: uint16(22), 2058: uint16(22), - 2059: uint16(34), - 2060: uint16(93), - 2061: uint16(24), - 2062: uint16(34), - 2063: uint16(25), - 2064: uint16(25), - 2065: uint16(142), - 2066: uint16(142), + 2059: uint16(22), + 2060: uint16(37), + 2061: uint16(23), + 2062: uint16(22), + 2063: uint16(24), + 2064: uint16(22), + 2065: uint16(59), + 2066: uint16(67), 2067: uint16(23), - 2068: uint16(44), - 2069: uint16(23), - 2070: uint16(23), - 2071: uint16(23), + 2068: uint16(149), + 2069: uint16(28), + 2070: uint16(22), + 2071: uint16(25), 2072: uint16(23), - 2073: uint16(11), + 2073: uint16(23), 2074: uint16(23), - 2075: uint16(25), - 2076: uint16(22), - 2077: uint16(22), - 2078: uint16(22), - 2079: uint16(141), + 2075: uint16(22), + 2076: uint16(141), + 2077: uint16(34), + 2078: uint16(97), + 2079: uint16(23), 2080: uint16(23), - 2081: uint16(23), - 2082: uint16(22), + 2081: uint16(34), + 2082: uint16(116), 2083: uint16(22), - 2084: uint16(25), - 2085: uint16(15), - 2086: uint16(1), - 2087: uint16(23), - 2088: uint16(25), - 2089: uint16(1), - 2090: uint16(141), - 2091: uint16(135), - 2092: uint16(319), - 2093: uint16(319), - 2094: uint16(319), - 2095: uint16(319), - 2096: uint16(319), - 2097: uint16(319), - 2098: uint16(319), - 2099: uint16(141), - 2100: uint16(319), - 2101: uint16(319), - 2102: uint16(319), - 2103: uint16(319), - 2104: uint16(319), - 2105: uint16(319), - 2106: uint16(319), - 2107: uint16(319), - 2108: uint16(319), - 2109: uint16(319), - 2110: uint16(319), - 2111: uint16(319), - 2112: uint16(319), - 2113: uint16(319), - 2114: uint16(319), - 2115: uint16(319), - 2116: uint16(319), - 2117: uint16(319), - 2118: uint16(319), - 2119: uint16(319), - 2120: uint16(319), - 2121: uint16(319), - 2122: uint16(319), - 2123: uint16(319), - 2124: uint16(319), - 2125: uint16(319), - 2126: uint16(319), - 2127: uint16(319), - 2128: uint16(319), - 2129: uint16(319), - 2130: uint16(319), - 2131: uint16(319), - 2132: uint16(319), - 2133: uint16(319), - 2134: uint16(319), - 2135: uint16(319), - 2136: uint16(319), - 2137: uint16(319), - 2138: uint16(319), - 2139: uint16(319), - 2140: uint16(319), - 2141: uint16(319), - 2142: uint16(319), - 2143: uint16(319), - 2144: uint16(319), - 2145: uint16(319), - 2146: uint16(319), - 2147: uint16(319), - 2148: uint16(319), - 2149: uint16(319), - 2150: uint16(319), - 2151: uint16(319), - 2152: uint16(319), - 2153: uint16(319), - 2154: uint16(319), - 2155: uint16(319), - 2156: uint16(319), - 2157: uint16(319), - 2158: uint16(319), - 2159: uint16(319), - 2160: uint16(319), - 2161: uint16(319), - 2162: uint16(319), - 2163: uint16(319), - 2164: uint16(319), - 2165: uint16(319), - 2166: uint16(319), - 2167: uint16(319), - 2168: uint16(319), - 2169: uint16(319), - 2170: uint16(319), - 2171: uint16(319), - 2172: uint16(319), - 2173: uint16(319), - 2174: uint16(319), - 2175: uint16(319), - 2176: uint16(319), - 2177: uint16(319), - 2178: uint16(319), - 2179: uint16(319), - 2180: uint16(319), - 2181: uint16(319), - 2182: uint16(319), - 2183: uint16(319), - 2184: uint16(319), - 2185: uint16(319), - 2186: uint16(319), - 2187: uint16(319), - 2188: uint16(319), - 2189: uint16(319), - 2190: uint16(319), - 2191: uint16(319), - 2192: uint16(319), - 2193: uint16(319), - 2194: uint16(319), - 2195: uint16(319), - 2196: uint16(319), - 2197: uint16(319), - 2198: uint16(319), - 2199: uint16(319), - 2200: uint16(319), - 2201: uint16(319), - 2202: uint16(319), - 2203: uint16(319), - 2204: uint16(319), - 2205: uint16(319), - 2206: uint16(319), - 2207: uint16(319), - 2208: uint16(319), - 2209: uint16(319), - 2210: uint16(319), - 2211: uint16(319), - 2212: uint16(319), - 2213: uint16(319), - 2214: uint16(319), - 2215: uint16(319), - 2216: uint16(319), - 2217: uint16(319), - 2218: uint16(319), - 2219: uint16(319), - 2220: uint16(319), - 2221: uint16(319), - 2222: uint16(319), - 2223: uint16(319), - 2224: uint16(319), - 2225: uint16(319), - 2226: uint16(319), - 2227: uint16(319), - 2228: uint16(319), - 2229: uint16(319), - 2230: uint16(319), - 2231: uint16(319), - 2232: uint16(319), - 2233: uint16(319), - 2234: uint16(319), - 2235: uint16(319), - 2236: uint16(319), - 2237: uint16(319), - 2238: uint16(319), - 2239: uint16(319), - 2240: uint16(319), - 2241: uint16(319), - 2242: uint16(319), - 2243: uint16(319), - 2244: uint16(319), - 2245: uint16(319), - 2246: uint16(319), - 2247: uint16(319), - 2248: uint16(319), - 2249: uint16(319), - 2250: uint16(319), - 2251: uint16(319), - 2252: uint16(319), - 2253: uint16(319), - 2254: uint16(319), - 2255: uint16(319), - 2256: uint16(319), - 2257: uint16(319), - 2258: uint16(319), - 2259: uint16(319), - 2260: uint16(319), - 2261: uint16(319), - 2262: uint16(319), - 2263: uint16(319), - 2264: uint16(319), - 2265: uint16(319), - 2266: uint16(319), - 2267: uint16(319), - 2268: uint16(319), - 2269: uint16(319), - 2270: uint16(319), - 2271: uint16(319), - 2272: uint16(319), - 2273: uint16(319), - 2274: uint16(319), - 2275: uint16(319), - 2276: uint16(319), - 2277: uint16(319), - 2278: uint16(319), - 2279: uint16(319), - 2280: uint16(319), - 2281: uint16(319), - 2282: uint16(319), - 2283: uint16(319), - 2284: uint16(319), -} -var _yy_shift_ofst = [579]uint16{ - 0: uint16(1648), - 1: uint16(1477), - 2: uint16(1272), + 2084: uint16(143), + 2085: uint16(25), + 2086: uint16(34), + 2087: uint16(75), + 2088: uint16(34), + 2089: uint16(34), + 2090: uint16(75), + 2091: uint16(88), + 2092: uint16(34), + 2093: uint16(86), + 2094: uint16(23), + 2095: uint16(22), + 2096: uint16(34), + 2097: uint16(25), + 2098: uint16(24), + 2099: uint16(34), + 2100: uint16(25), + 2101: uint16(93), + 2102: uint16(23), + 2103: uint16(44), + 2104: uint16(142), + 2105: uint16(23), + 2106: uint16(142), + 2107: uint16(23), + 2108: uint16(23), + 2109: uint16(22), + 2110: uint16(11), + 2111: uint16(25), + 2112: uint16(23), + 2113: uint16(25), + 2114: uint16(23), + 2115: uint16(22), + 2116: uint16(22), + 2117: uint16(22), + 2118: uint16(1), + 2119: uint16(23), + 2120: uint16(23), + 2121: uint16(23), + 2122: uint16(22), + 2123: uint16(22), + 2124: uint16(15), + 2125: uint16(141), + 2126: uint16(141), + 2127: uint16(25), + 2128: uint16(25), + 2129: uint16(1), + 2130: uint16(322), + 2131: uint16(322), + 2132: uint16(322), + 2133: uint16(135), + 2134: uint16(322), + 2135: uint16(322), + 2136: uint16(322), + 2137: uint16(322), + 2138: uint16(322), + 2139: uint16(322), + 2140: uint16(322), + 2141: uint16(141), + 2142: uint16(322), + 2143: uint16(322), + 2144: uint16(322), + 2145: uint16(322), + 2146: uint16(322), + 2147: uint16(322), + 2148: uint16(322), + 2149: uint16(322), + 2150: uint16(322), + 2151: uint16(322), + 2152: uint16(322), + 2153: uint16(322), + 2154: uint16(322), + 2155: uint16(322), + 2156: uint16(322), + 2157: uint16(322), + 2158: uint16(322), + 2159: uint16(322), + 2160: uint16(322), + 2161: uint16(322), + 2162: uint16(322), + 2163: uint16(322), + 2164: uint16(322), + 2165: uint16(322), + 2166: uint16(322), + 2167: uint16(322), + 2168: uint16(322), + 2169: uint16(322), + 2170: uint16(322), + 2171: uint16(322), + 2172: uint16(322), + 2173: uint16(322), + 2174: uint16(322), + 2175: uint16(322), + 2176: uint16(322), + 2177: uint16(322), + 2178: uint16(322), + 2179: uint16(322), + 2180: uint16(322), + 2181: uint16(322), + 2182: uint16(322), + 2183: uint16(322), + 2184: uint16(322), + 2185: uint16(322), + 2186: uint16(322), + 2187: uint16(322), + 2188: uint16(322), + 2189: uint16(322), + 2190: uint16(322), + 2191: uint16(322), + 2192: uint16(322), + 2193: uint16(322), + 2194: uint16(322), + 2195: uint16(322), + 2196: uint16(322), + 2197: uint16(322), + 2198: uint16(322), + 2199: uint16(322), + 2200: uint16(322), + 2201: uint16(322), + 2202: uint16(322), + 2203: uint16(322), + 2204: uint16(322), + 2205: uint16(322), + 2206: uint16(322), + 2207: uint16(322), + 2208: uint16(322), + 2209: uint16(322), + 2210: uint16(322), + 2211: uint16(322), + 2212: uint16(322), + 2213: uint16(322), + 2214: uint16(322), + 2215: uint16(322), + 2216: uint16(322), + 2217: uint16(322), + 2218: uint16(322), + 2219: uint16(322), + 2220: uint16(322), + 2221: uint16(322), + 2222: uint16(322), + 2223: uint16(322), + 2224: uint16(322), + 2225: uint16(322), + 2226: uint16(322), + 2227: uint16(322), + 2228: uint16(322), + 2229: uint16(322), + 2230: uint16(322), + 2231: uint16(322), + 2232: uint16(322), + 2233: uint16(322), + 2234: uint16(322), + 2235: uint16(322), + 2236: uint16(322), + 2237: uint16(322), + 2238: uint16(322), + 2239: uint16(322), + 2240: uint16(322), + 2241: uint16(322), + 2242: uint16(322), + 2243: uint16(322), + 2244: uint16(322), + 2245: uint16(322), + 2246: uint16(322), + 2247: uint16(322), + 2248: uint16(322), + 2249: uint16(322), + 2250: uint16(322), + 2251: uint16(322), + 2252: uint16(322), + 2253: uint16(322), + 2254: uint16(322), + 2255: uint16(322), + 2256: uint16(322), + 2257: uint16(322), + 2258: uint16(322), + 2259: uint16(322), + 2260: uint16(322), + 2261: uint16(322), + 2262: uint16(322), + 2263: uint16(322), + 2264: uint16(322), + 2265: uint16(322), + 2266: uint16(322), + 2267: uint16(322), + 2268: uint16(322), + 2269: uint16(322), + 2270: uint16(322), + 2271: uint16(322), + 2272: uint16(322), + 2273: uint16(322), + 2274: uint16(322), + 2275: uint16(322), + 2276: uint16(322), + 2277: uint16(322), + 2278: uint16(322), + 2279: uint16(322), + 2280: uint16(322), + 2281: uint16(322), + 2282: uint16(322), + 2283: uint16(322), + 2284: uint16(322), + 2285: uint16(322), + 2286: uint16(322), + 2287: uint16(322), + 2288: uint16(322), + 2289: uint16(322), + 2290: uint16(322), + 2291: uint16(322), + 2292: uint16(322), + 2293: uint16(322), + 2294: uint16(322), + 2295: uint16(322), + 2296: uint16(322), + 2297: uint16(322), + 2298: uint16(322), + 2299: uint16(322), + 2300: uint16(322), + 2301: uint16(322), + 2302: uint16(322), + 2303: uint16(322), + 2304: uint16(322), + 2305: uint16(322), + 2306: uint16(322), + 2307: uint16(322), + 2308: uint16(322), + 2309: uint16(322), + 2310: uint16(322), + 2311: uint16(322), + 2312: uint16(322), + 2313: uint16(322), + 2314: uint16(322), + 2315: uint16(322), + 2316: uint16(322), + 2317: uint16(322), + 2318: uint16(322), + 2319: uint16(322), + 2320: uint16(322), + 2321: uint16(322), + 2322: uint16(322), + 2323: uint16(322), + 2324: uint16(322), + 2325: uint16(322), + 2326: uint16(322), + 2327: uint16(322), +} +var _yy_shift_ofst = [583]uint16{ + 0: uint16(1792), + 1: uint16(1588), + 2: uint16(1494), 3: uint16(322), 4: uint16(322), - 5: uint16(1), - 6: uint16(1319), - 7: uint16(1478), - 8: uint16(1491), - 9: uint16(1837), - 10: uint16(1837), - 11: uint16(1837), - 12: uint16(471), - 15: uint16(214), - 16: uint16(1093), - 17: uint16(1837), - 18: uint16(1837), - 19: uint16(1837), - 20: uint16(1837), - 21: uint16(1837), - 22: uint16(1837), - 23: uint16(1837), - 24: uint16(1837), - 25: uint16(1837), - 26: uint16(1837), - 27: uint16(1837), - 28: uint16(1837), - 29: uint16(1837), - 30: uint16(1837), - 31: uint16(271), - 32: uint16(271), - 33: uint16(1219), - 34: uint16(1219), - 35: uint16(216), - 36: uint16(88), - 37: uint16(1), - 38: uint16(1), - 39: uint16(1), - 40: uint16(1), - 41: uint16(1), - 42: uint16(40), - 43: uint16(111), - 44: uint16(258), - 45: uint16(361), - 46: uint16(469), - 47: uint16(512), - 48: uint16(583), - 49: uint16(622), - 50: uint16(693), - 51: uint16(732), - 52: uint16(803), - 53: uint16(842), - 54: uint16(913), - 55: uint16(1073), - 56: uint16(1093), - 57: uint16(1093), - 58: uint16(1093), - 59: uint16(1093), - 60: uint16(1093), - 61: uint16(1093), - 62: uint16(1093), - 63: uint16(1093), - 64: uint16(1093), + 5: uint16(399), + 6: uint16(306), + 7: uint16(1319), + 8: uint16(1339), + 9: uint16(1430), + 10: uint16(1828), + 11: uint16(1828), + 12: uint16(1828), + 13: uint16(580), + 14: uint16(399), + 15: uint16(399), + 16: uint16(399), + 17: uint16(399), + 18: uint16(399), + 21: uint16(214), + 22: uint16(1093), + 23: uint16(1828), + 24: uint16(1828), + 25: uint16(1828), + 26: uint16(1828), + 27: uint16(1828), + 28: uint16(1828), + 29: uint16(1828), + 30: uint16(1828), + 31: uint16(1828), + 32: uint16(1828), + 33: uint16(1828), + 34: uint16(1828), + 35: uint16(1828), + 36: uint16(1828), + 37: uint16(1828), + 38: uint16(1130), + 39: uint16(1130), + 40: uint16(365), + 41: uint16(365), + 42: uint16(55), + 43: uint16(278), + 44: uint16(436), + 45: uint16(713), + 46: uint16(713), + 47: uint16(201), + 48: uint16(201), + 49: uint16(201), + 50: uint16(201), + 51: uint16(40), + 52: uint16(111), + 53: uint16(258), + 54: uint16(361), + 55: uint16(469), + 56: uint16(512), + 57: uint16(583), + 58: uint16(622), + 59: uint16(693), + 60: uint16(732), + 61: uint16(803), + 62: uint16(842), + 63: uint16(913), + 64: uint16(1073), 65: uint16(1093), 66: uint16(1093), 67: uint16(1093), @@ -156653,1505 +158200,1514 @@ var _yy_shift_ofst = [579]uint16{ 71: uint16(1093), 72: uint16(1093), 73: uint16(1093), - 74: uint16(1113), + 74: uint16(1093), 75: uint16(1093), - 76: uint16(1216), - 77: uint16(957), - 78: uint16(957), - 79: uint16(1635), - 80: uint16(1662), - 81: uint16(1777), - 82: uint16(1837), - 83: uint16(1837), - 84: uint16(1837), - 85: uint16(1837), - 86: uint16(1837), - 87: uint16(1837), - 88: uint16(1837), - 89: uint16(1837), - 90: uint16(1837), - 91: uint16(1837), - 92: uint16(1837), - 93: uint16(1837), - 94: uint16(1837), - 95: uint16(1837), - 96: uint16(1837), - 97: uint16(1837), - 98: uint16(1837), - 99: uint16(1837), - 100: uint16(1837), - 101: uint16(1837), - 102: uint16(1837), - 103: uint16(1837), - 104: uint16(1837), - 105: uint16(1837), - 106: uint16(1837), - 107: uint16(1837), - 108: uint16(1837), - 109: uint16(1837), - 110: uint16(1837), - 111: uint16(1837), - 112: uint16(1837), - 113: uint16(1837), - 114: uint16(1837), - 115: uint16(1837), - 116: uint16(1837), - 117: uint16(1837), - 118: uint16(1837), - 119: uint16(1837), - 120: uint16(1837), - 121: uint16(1837), - 122: uint16(1837), - 123: uint16(1837), - 124: uint16(1837), - 125: uint16(1837), - 126: uint16(1837), - 127: uint16(1837), - 128: uint16(1837), - 129: uint16(1837), - 130: uint16(1837), - 131: uint16(137), - 132: uint16(181), - 133: uint16(181), - 134: uint16(181), - 135: uint16(181), - 136: uint16(181), - 137: uint16(181), - 138: uint16(181), - 139: uint16(94), - 140: uint16(430), - 141: uint16(66), - 142: uint16(65), - 143: uint16(112), - 144: uint16(366), - 145: uint16(533), - 146: uint16(533), - 147: uint16(740), - 148: uint16(1257), - 149: uint16(533), - 150: uint16(533), - 151: uint16(79), - 152: uint16(79), - 153: uint16(533), - 154: uint16(412), - 155: uint16(412), - 156: uint16(412), - 157: uint16(77), - 158: uint16(412), - 159: uint16(123), - 160: uint16(113), - 161: uint16(113), - 162: uint16(113), - 163: uint16(22), - 164: uint16(22), - 165: uint16(2100), - 166: uint16(2100), - 167: uint16(328), - 168: uint16(328), - 169: uint16(328), - 170: uint16(239), - 171: uint16(468), - 172: uint16(468), - 173: uint16(468), - 174: uint16(468), - 175: uint16(1015), - 176: uint16(1015), - 177: uint16(409), - 178: uint16(366), - 179: uint16(1187), - 180: uint16(1232), - 181: uint16(533), - 182: uint16(533), - 183: uint16(533), - 184: uint16(533), - 185: uint16(533), - 186: uint16(533), - 187: uint16(533), - 188: uint16(533), - 189: uint16(533), - 190: uint16(533), - 191: uint16(533), - 192: uint16(533), - 193: uint16(533), - 194: uint16(533), - 195: uint16(533), - 196: uint16(533), - 197: uint16(533), - 198: uint16(533), - 199: uint16(533), - 200: uint16(533), - 201: uint16(969), - 202: uint16(621), - 203: uint16(621), - 204: uint16(533), - 205: uint16(642), - 206: uint16(788), - 207: uint16(788), - 208: uint16(1133), - 209: uint16(1133), - 210: uint16(822), - 211: uint16(822), - 212: uint16(67), - 213: uint16(1193), - 214: uint16(2100), - 215: uint16(2100), - 216: uint16(2100), - 217: uint16(2100), - 218: uint16(2100), - 219: uint16(2100), - 220: uint16(2100), - 221: uint16(1307), - 222: uint16(954), - 223: uint16(954), - 224: uint16(585), - 225: uint16(472), - 226: uint16(640), - 227: uint16(387), - 228: uint16(695), - 229: uint16(538), - 230: uint16(541), - 231: uint16(700), - 232: uint16(533), - 233: uint16(533), - 234: uint16(533), - 235: uint16(533), - 236: uint16(533), - 237: uint16(533), - 238: uint16(533), - 239: uint16(533), - 240: uint16(533), - 241: uint16(533), - 242: uint16(222), - 243: uint16(533), - 244: uint16(533), - 245: uint16(533), - 246: uint16(533), - 247: uint16(533), - 248: uint16(533), - 249: uint16(533), - 250: uint16(533), - 251: uint16(533), - 252: uint16(533), - 253: uint16(533), - 254: uint16(533), - 255: uint16(1213), - 256: uint16(1213), - 257: uint16(1213), - 258: uint16(533), - 259: uint16(533), - 260: uint16(533), - 261: uint16(565), - 262: uint16(533), - 263: uint16(533), - 264: uint16(533), - 265: uint16(916), - 266: uint16(1147), - 267: uint16(533), - 268: uint16(533), - 269: uint16(1288), - 270: uint16(533), - 271: uint16(533), - 272: uint16(533), - 273: uint16(533), - 274: uint16(533), - 275: uint16(533), - 276: uint16(533), - 277: uint16(533), - 278: uint16(639), - 279: uint16(1280), - 280: uint16(209), - 281: uint16(1129), - 282: uint16(1129), - 283: uint16(1129), - 284: uint16(1129), - 285: uint16(580), - 286: uint16(209), - 287: uint16(209), - 288: uint16(1209), - 289: uint16(768), - 290: uint16(917), - 291: uint16(649), - 292: uint16(1315), - 293: uint16(1334), - 294: uint16(405), - 295: uint16(1334), - 296: uint16(1383), - 297: uint16(249), - 298: uint16(1315), - 299: uint16(1315), - 300: uint16(249), - 301: uint16(1315), - 302: uint16(405), - 303: uint16(1383), - 304: uint16(1441), - 305: uint16(464), - 306: uint16(1245), - 307: uint16(1417), - 308: uint16(1417), - 309: uint16(1417), - 310: uint16(1323), - 311: uint16(1323), - 312: uint16(1323), - 313: uint16(1323), - 314: uint16(184), - 315: uint16(184), - 316: uint16(1335), - 317: uint16(1476), - 318: uint16(856), - 319: uint16(1482), - 320: uint16(1744), - 321: uint16(1744), - 322: uint16(1665), - 323: uint16(1665), - 324: uint16(1773), - 325: uint16(1773), - 326: uint16(1665), - 327: uint16(1669), - 328: uint16(1671), - 329: uint16(1802), - 330: uint16(1782), - 331: uint16(1809), - 332: uint16(1809), - 333: uint16(1809), - 334: uint16(1809), - 335: uint16(1665), - 336: uint16(1817), - 337: uint16(1690), - 338: uint16(1671), - 339: uint16(1671), - 340: uint16(1690), - 341: uint16(1802), - 342: uint16(1782), - 343: uint16(1690), - 344: uint16(1782), - 345: uint16(1690), - 346: uint16(1665), - 347: uint16(1817), - 348: uint16(1693), - 349: uint16(1791), - 350: uint16(1665), - 351: uint16(1817), - 352: uint16(1832), - 353: uint16(1665), - 354: uint16(1817), - 355: uint16(1665), - 356: uint16(1817), - 357: uint16(1832), - 358: uint16(1752), - 359: uint16(1752), - 360: uint16(1752), - 361: uint16(1805), - 362: uint16(1850), - 363: uint16(1850), - 364: uint16(1832), - 365: uint16(1752), - 366: uint16(1749), - 367: uint16(1752), - 368: uint16(1805), - 369: uint16(1752), - 370: uint16(1752), - 371: uint16(1713), - 372: uint16(1858), - 373: uint16(1775), - 374: uint16(1775), - 375: uint16(1832), - 376: uint16(1665), - 377: uint16(1799), - 378: uint16(1799), - 379: uint16(1823), - 380: uint16(1823), - 381: uint16(1761), - 382: uint16(1765), - 383: uint16(1890), - 384: uint16(1665), - 385: uint16(1757), - 386: uint16(1761), - 387: uint16(1771), - 388: uint16(1774), - 389: uint16(1690), - 390: uint16(1894), - 391: uint16(1913), - 392: uint16(1913), - 393: uint16(1929), - 394: uint16(1929), - 395: uint16(1929), - 396: uint16(2100), - 397: uint16(2100), - 398: uint16(2100), - 399: uint16(2100), - 400: uint16(2100), - 401: uint16(2100), - 402: uint16(2100), - 403: uint16(2100), - 404: uint16(2100), - 405: uint16(2100), - 406: uint16(2100), - 407: uint16(2100), - 408: uint16(2100), - 409: uint16(2100), - 410: uint16(2100), - 411: uint16(207), - 412: uint16(1220), - 413: uint16(331), - 414: uint16(620), - 415: uint16(967), - 416: uint16(806), - 417: uint16(1074), - 418: uint16(1499), - 419: uint16(1432), - 420: uint16(1463), - 421: uint16(1479), - 422: uint16(1419), - 423: uint16(1422), - 424: uint16(1557), - 425: uint16(1512), - 426: uint16(1598), - 427: uint16(1599), - 428: uint16(1644), - 429: uint16(1645), - 430: uint16(1654), - 431: uint16(1660), - 432: uint16(1555), - 433: uint16(1505), - 434: uint16(1684), - 435: uint16(1462), - 436: uint16(1670), - 437: uint16(1563), - 438: uint16(1619), - 439: uint16(1593), - 440: uint16(1676), - 441: uint16(1679), - 442: uint16(1613), - 443: uint16(1680), - 444: uint16(1554), - 445: uint16(1558), - 446: uint16(1689), - 447: uint16(1692), - 448: uint16(1605), - 449: uint16(1589), - 450: uint16(1955), - 451: uint16(1959), - 452: uint16(1941), - 453: uint16(1803), - 454: uint16(1950), - 455: uint16(1951), - 456: uint16(1945), - 457: uint16(1946), - 458: uint16(1831), - 459: uint16(1820), - 460: uint16(1842), - 461: uint16(1948), - 462: uint16(1948), - 463: uint16(1952), - 464: uint16(1833), - 465: uint16(1954), - 466: uint16(1834), - 467: uint16(1961), - 468: uint16(1978), - 469: uint16(1838), - 470: uint16(1851), - 471: uint16(1948), - 472: uint16(1852), - 473: uint16(1922), - 474: uint16(1947), - 475: uint16(1948), - 476: uint16(1836), - 477: uint16(1932), - 478: uint16(1935), - 479: uint16(1936), - 480: uint16(1942), - 481: uint16(1866), - 482: uint16(1881), - 483: uint16(1964), - 484: uint16(1859), - 485: uint16(1998), - 486: uint16(1996), - 487: uint16(1980), - 488: uint16(1888), - 489: uint16(1843), - 490: uint16(1937), - 491: uint16(1981), - 492: uint16(1939), - 493: uint16(1933), - 494: uint16(1968), - 495: uint16(1869), - 496: uint16(1896), - 497: uint16(1988), - 498: uint16(1993), - 499: uint16(1995), - 500: uint16(1884), - 501: uint16(1891), - 502: uint16(1997), - 503: uint16(1953), - 504: uint16(1999), - 505: uint16(2000), - 506: uint16(1994), - 507: uint16(2001), - 508: uint16(1957), - 509: uint16(1966), - 510: uint16(2002), - 511: uint16(1931), - 512: uint16(1990), - 513: uint16(2006), - 514: uint16(1962), - 515: uint16(2003), - 516: uint16(2007), - 517: uint16(2004), - 518: uint16(1882), - 519: uint16(2010), - 520: uint16(2011), - 521: uint16(2012), - 522: uint16(2008), - 523: uint16(2013), - 524: uint16(2015), - 525: uint16(1944), - 526: uint16(1898), - 527: uint16(2019), - 528: uint16(2020), - 529: uint16(1928), - 530: uint16(2014), - 531: uint16(2023), - 532: uint16(1903), - 533: uint16(2022), - 534: uint16(2016), - 535: uint16(2017), - 536: uint16(2018), - 537: uint16(2021), - 538: uint16(1965), - 539: uint16(1974), - 540: uint16(1970), - 541: uint16(2024), - 542: uint16(1979), - 543: uint16(1967), - 544: uint16(2025), - 545: uint16(2034), - 546: uint16(2036), - 547: uint16(2037), - 548: uint16(2038), - 549: uint16(2039), - 550: uint16(2028), - 551: uint16(1923), - 552: uint16(1924), - 553: uint16(2044), - 554: uint16(2022), - 555: uint16(2046), - 556: uint16(2047), - 557: uint16(2048), - 558: uint16(2049), - 559: uint16(2050), - 560: uint16(2051), - 561: uint16(2054), - 562: uint16(2062), - 563: uint16(2055), - 564: uint16(2056), - 565: uint16(2057), - 566: uint16(2058), - 567: uint16(2060), - 568: uint16(2061), - 569: uint16(2059), - 570: uint16(1956), - 571: uint16(1938), - 572: uint16(1949), - 573: uint16(1958), - 574: uint16(2063), - 575: uint16(2064), - 576: uint16(2070), - 577: uint16(2085), - 578: uint16(2088), -} -var _yy_reduce_ofst = [411]int16{ - 0: int16(-int32(125)), - 1: int16(733), - 2: int16(789), - 3: int16(241), - 4: int16(293), - 5: int16(-int32(123)), - 6: int16(-int32(193)), - 7: int16(-int32(191)), - 8: int16(-int32(183)), - 9: int16(-int32(187)), - 10: int16(166), - 11: int16(238), - 12: int16(133), - 13: int16(-int32(207)), - 14: int16(-int32(199)), - 15: int16(-int32(267)), - 16: int16(-int32(176)), - 17: int16(-int32(6)), - 18: int16(204), - 19: int16(489), - 20: int16(576), - 21: int16(598), - 22: int16(-int32(175)), - 23: int16(686), - 24: int16(860), - 25: int16(615), - 26: int16(725), - 27: int16(1014), - 28: int16(778), - 29: int16(781), - 30: int16(857), - 31: int16(616), - 32: int16(887), - 33: int16(87), - 34: int16(240), - 35: int16(-int32(192)), - 36: int16(408), - 37: int16(626), - 38: int16(796), - 39: int16(843), - 40: int16(854), - 41: int16(1004), - 42: int16(-int32(271)), - 43: int16(-int32(271)), - 44: int16(-int32(271)), - 45: int16(-int32(271)), - 46: int16(-int32(271)), - 47: int16(-int32(271)), - 48: int16(-int32(271)), - 49: int16(-int32(271)), - 50: int16(-int32(271)), - 51: int16(-int32(271)), - 52: int16(-int32(271)), - 53: int16(-int32(271)), - 54: int16(-int32(271)), - 55: int16(-int32(271)), - 56: int16(-int32(271)), - 57: int16(-int32(271)), - 58: int16(-int32(271)), - 59: int16(-int32(271)), - 60: int16(-int32(271)), - 61: int16(-int32(271)), - 62: int16(-int32(271)), - 63: int16(-int32(271)), - 64: int16(-int32(271)), - 65: int16(-int32(271)), - 66: int16(-int32(271)), - 67: int16(-int32(271)), - 68: int16(-int32(271)), - 69: int16(-int32(271)), - 70: int16(-int32(271)), - 71: int16(-int32(271)), - 72: int16(-int32(271)), - 73: int16(-int32(271)), - 74: int16(-int32(271)), - 75: int16(-int32(271)), - 76: int16(-int32(271)), - 77: int16(-int32(271)), - 78: int16(-int32(271)), - 79: int16(80), - 80: int16(83), - 81: int16(313), - 82: int16(886), - 83: int16(888), - 84: int16(918), - 85: int16(938), - 86: int16(1021), - 87: int16(1034), - 88: int16(1036), - 89: int16(1141), - 90: int16(1159), - 91: int16(1163), - 92: int16(1166), - 93: int16(1168), - 94: int16(1170), - 95: int16(1176), - 96: int16(1178), - 97: int16(1180), - 98: int16(1184), - 99: int16(1196), - 100: int16(1198), - 101: int16(1205), - 102: int16(1215), - 103: int16(1225), - 104: int16(1227), - 105: int16(1236), - 106: int16(1252), - 107: int16(1254), - 108: int16(1264), - 109: int16(1303), - 110: int16(1309), - 111: int16(1312), - 112: int16(1322), - 113: int16(1325), - 114: int16(1328), - 115: int16(1337), - 116: int16(1340), - 117: int16(1343), - 118: int16(1353), - 119: int16(1371), - 120: int16(1373), - 121: int16(1384), - 122: int16(1386), - 123: int16(1411), - 124: int16(1413), - 125: int16(1420), - 126: int16(1424), - 127: int16(1426), - 128: int16(1458), - 129: int16(1470), - 130: int16(1473), - 131: int16(-int32(271)), - 132: int16(-int32(271)), - 133: int16(-int32(271)), - 134: int16(-int32(271)), - 135: int16(-int32(271)), - 136: int16(-int32(271)), - 137: int16(-int32(271)), - 138: int16(-int32(271)), - 139: int16(-int32(271)), - 140: int16(-int32(271)), - 141: int16(-int32(271)), - 142: int16(138), - 143: int16(459), - 144: int16(396), - 145: int16(-int32(158)), - 146: int16(470), - 147: int16(302), - 148: int16(-int32(212)), - 149: int16(521), - 150: int16(201), - 151: int16(-int32(195)), - 152: int16(-int32(92)), - 153: int16(559), - 154: int16(630), - 155: int16(632), - 156: int16(630), - 157: int16(-int32(271)), - 158: int16(632), - 159: int16(901), - 160: int16(63), - 161: int16(407), - 162: int16(670), - 163: int16(-int32(271)), - 164: int16(-int32(271)), - 165: int16(-int32(271)), - 166: int16(-int32(271)), - 167: int16(161), - 168: int16(161), - 169: int16(161), - 170: int16(251), - 171: int16(335), - 172: int16(847), - 173: int16(979), - 174: int16(1097), - 175: int16(537), - 176: int16(588), - 177: int16(618), - 178: int16(628), - 179: int16(688), - 180: int16(688), - 181: int16(-int32(166)), - 182: int16(-int32(161)), - 183: int16(674), - 184: int16(787), - 185: int16(794), - 186: int16(799), - 187: int16(852), - 188: int16(996), - 189: int16(-int32(122)), - 190: int16(837), - 191: int16(-int32(120)), - 192: int16(1018), - 193: int16(1035), - 194: int16(415), - 195: int16(1047), - 196: int16(1001), - 197: int16(958), - 198: int16(1082), - 199: int16(400), - 200: int16(1099), - 201: int16(779), - 202: int16(1137), - 203: int16(1142), - 204: int16(263), - 205: int16(1083), - 206: int16(1145), - 207: int16(1150), - 208: int16(1041), - 209: int16(1139), - 210: int16(965), - 211: int16(1050), - 212: int16(362), - 213: int16(849), - 214: int16(752), - 215: int16(629), - 216: int16(675), - 217: int16(1162), - 218: int16(1173), - 219: int16(1090), - 220: int16(1195), - 221: int16(-int32(194)), - 222: int16(56), - 223: int16(185), - 224: int16(-int32(135)), - 225: int16(232), - 226: int16(522), - 227: int16(560), - 228: int16(571), - 229: int16(601), - 230: int16(617), - 231: int16(669), - 232: int16(683), - 233: int16(711), - 234: int16(850), - 235: int16(893), - 236: int16(1000), - 237: int16(1040), - 238: int16(1049), - 239: int16(1081), - 240: int16(1087), - 241: int16(1101), - 242: int16(392), - 243: int16(1114), - 244: int16(1123), - 245: int16(1155), - 246: int16(1161), - 247: int16(1175), - 248: int16(1271), - 249: int16(1293), - 250: int16(1299), - 251: int16(1330), - 252: int16(1339), - 253: int16(1342), - 254: int16(1347), - 255: int16(593), - 256: int16(1282), - 257: int16(1286), - 258: int16(1350), - 259: int16(1359), - 260: int16(1368), - 261: int16(1314), - 262: int16(1480), - 263: int16(1483), - 264: int16(1507), - 265: int16(1085), - 266: int16(1338), - 267: int16(1526), - 268: int16(1527), - 269: int16(1487), - 270: int16(1531), - 271: int16(560), - 272: int16(1532), - 273: int16(1534), - 274: int16(1535), - 275: int16(1538), - 276: int16(1539), - 277: int16(1541), - 278: int16(1448), - 279: int16(1450), - 280: int16(1496), - 281: int16(1484), - 282: int16(1485), - 283: int16(1489), - 284: int16(1490), - 285: int16(1314), - 286: int16(1496), - 287: int16(1496), - 288: int16(1504), - 289: int16(1536), - 290: int16(1564), - 291: int16(1451), - 292: int16(1486), - 293: int16(1492), - 294: int16(1509), - 295: int16(1493), - 296: int16(1465), - 297: int16(1515), - 298: int16(1494), - 299: int16(1495), - 300: int16(1517), - 301: int16(1500), - 302: int16(1519), - 303: int16(1474), - 304: int16(1550), - 305: int16(1543), - 306: int16(1548), - 307: int16(1556), - 308: int16(1565), - 309: int16(1566), - 310: int16(1518), - 311: int16(1523), - 312: int16(1542), - 313: int16(1544), - 314: int16(1525), - 315: int16(1545), - 316: int16(1513), - 317: int16(1553), - 318: int16(1552), - 319: int16(1604), - 320: int16(1508), - 321: int16(1510), - 322: int16(1608), - 323: int16(1609), - 324: int16(1520), - 325: int16(1528), - 326: int16(1612), - 327: int16(1540), - 328: int16(1559), - 329: int16(1560), - 330: int16(1592), - 331: int16(1591), - 332: int16(1595), - 333: int16(1596), - 334: int16(1597), - 335: int16(1629), - 336: int16(1638), - 337: int16(1594), - 338: int16(1569), - 339: int16(1570), - 340: int16(1600), - 341: int16(1568), - 342: int16(1610), - 343: int16(1601), - 344: int16(1611), - 345: int16(1603), - 346: int16(1643), - 347: int16(1651), - 348: int16(1562), - 349: int16(1571), - 350: int16(1655), - 351: int16(1659), - 352: int16(1640), - 353: int16(1663), - 354: int16(1666), - 355: int16(1664), - 356: int16(1667), - 357: int16(1641), - 358: int16(1650), - 359: int16(1652), - 360: int16(1653), - 361: int16(1647), - 362: int16(1656), - 363: int16(1657), - 364: int16(1658), - 365: int16(1668), - 366: int16(1672), - 367: int16(1681), - 368: int16(1649), - 369: int16(1682), - 370: int16(1683), - 371: int16(1573), - 372: int16(1582), - 373: int16(1607), - 374: int16(1615), - 375: int16(1685), - 376: int16(1702), - 377: int16(1586), - 378: int16(1587), - 379: int16(1642), - 380: int16(1646), - 381: int16(1673), - 382: int16(1675), - 383: int16(1636), - 384: int16(1714), - 385: int16(1637), - 386: int16(1677), - 387: int16(1674), - 388: int16(1678), - 389: int16(1694), - 390: int16(1719), - 391: int16(1734), - 392: int16(1735), - 393: int16(1746), - 394: int16(1747), - 395: int16(1750), - 396: int16(1633), - 397: int16(1661), + 76: uint16(1093), + 77: uint16(1093), + 78: uint16(1093), + 79: uint16(1093), + 80: uint16(1093), + 81: uint16(1093), + 82: uint16(1093), + 83: uint16(1113), + 84: uint16(1093), + 85: uint16(1216), + 86: uint16(957), + 87: uint16(957), + 88: uint16(1523), + 89: uint16(1602), + 90: uint16(1674), + 91: uint16(1828), + 92: uint16(1828), + 93: uint16(1828), + 94: uint16(1828), + 95: uint16(1828), + 96: uint16(1828), + 97: uint16(1828), + 98: uint16(1828), + 99: uint16(1828), + 100: uint16(1828), + 101: uint16(1828), + 102: uint16(1828), + 103: uint16(1828), + 104: uint16(1828), + 105: uint16(1828), + 106: uint16(1828), + 107: uint16(1828), + 108: uint16(1828), + 109: uint16(1828), + 110: uint16(1828), + 111: uint16(1828), + 112: uint16(1828), + 113: uint16(1828), + 114: uint16(1828), + 115: uint16(1828), + 116: uint16(1828), + 117: uint16(1828), + 118: uint16(1828), + 119: uint16(1828), + 120: uint16(1828), + 121: uint16(1828), + 122: uint16(1828), + 123: uint16(1828), + 124: uint16(1828), + 125: uint16(1828), + 126: uint16(1828), + 127: uint16(1828), + 128: uint16(1828), + 129: uint16(1828), + 130: uint16(1828), + 131: uint16(1828), + 132: uint16(1828), + 133: uint16(1828), + 134: uint16(1828), + 135: uint16(1828), + 136: uint16(1828), + 137: uint16(1828), + 138: uint16(1828), + 139: uint16(1828), + 140: uint16(137), + 141: uint16(181), + 142: uint16(181), + 143: uint16(181), + 144: uint16(181), + 145: uint16(181), + 146: uint16(181), + 147: uint16(181), + 148: uint16(96), + 149: uint16(222), + 150: uint16(143), + 151: uint16(477), + 152: uint16(713), + 153: uint16(1133), + 154: uint16(1268), + 155: uint16(713), + 156: uint16(713), + 157: uint16(79), + 158: uint16(79), + 159: uint16(713), + 160: uint16(770), + 161: uint16(83), + 162: uint16(65), + 163: uint16(65), + 164: uint16(65), + 165: uint16(288), + 166: uint16(162), + 167: uint16(162), + 168: uint16(2142), + 169: uint16(2142), + 170: uint16(696), + 171: uint16(696), + 172: uint16(696), + 173: uint16(238), + 174: uint16(474), + 175: uint16(474), + 176: uint16(474), + 177: uint16(474), + 178: uint16(1217), + 179: uint16(1217), + 180: uint16(678), + 181: uint16(477), + 182: uint16(324), + 183: uint16(398), + 184: uint16(713), + 185: uint16(713), + 186: uint16(713), + 187: uint16(713), + 188: uint16(713), + 189: uint16(713), + 190: uint16(713), + 191: uint16(713), + 192: uint16(713), + 193: uint16(713), + 194: uint16(713), + 195: uint16(713), + 196: uint16(713), + 197: uint16(713), + 198: uint16(713), + 199: uint16(713), + 200: uint16(713), + 201: uint16(713), + 202: uint16(713), + 203: uint16(1220), + 204: uint16(366), + 205: uint16(366), + 206: uint16(713), + 207: uint16(917), + 208: uint16(283), + 209: uint16(283), + 210: uint16(434), + 211: uint16(434), + 212: uint16(605), + 213: uint16(605), + 214: uint16(1298), + 215: uint16(2142), + 216: uint16(2142), + 217: uint16(2142), + 218: uint16(2142), + 219: uint16(2142), + 220: uint16(2142), + 221: uint16(2142), + 222: uint16(1179), + 223: uint16(1157), + 224: uint16(1157), + 225: uint16(487), + 226: uint16(527), + 227: uint16(585), + 228: uint16(645), + 229: uint16(749), + 230: uint16(914), + 231: uint16(968), + 232: uint16(752), + 233: uint16(713), + 234: uint16(713), + 235: uint16(713), + 236: uint16(713), + 237: uint16(713), + 238: uint16(713), + 239: uint16(713), + 240: uint16(713), + 241: uint16(713), + 242: uint16(713), + 243: uint16(303), + 244: uint16(713), + 245: uint16(713), + 246: uint16(713), + 247: uint16(713), + 248: uint16(713), + 249: uint16(713), + 250: uint16(713), + 251: uint16(713), + 252: uint16(713), + 253: uint16(713), + 254: uint16(713), + 255: uint16(713), + 256: uint16(797), + 257: uint16(797), + 258: uint16(797), + 259: uint16(713), + 260: uint16(713), + 261: uint16(713), + 262: uint16(959), + 263: uint16(713), + 264: uint16(713), + 265: uint16(713), + 266: uint16(1169), + 267: uint16(1271), + 268: uint16(713), + 269: uint16(713), + 270: uint16(1330), + 271: uint16(713), + 272: uint16(713), + 273: uint16(713), + 274: uint16(713), + 275: uint16(713), + 276: uint16(713), + 277: uint16(713), + 278: uint16(713), + 279: uint16(629), + 280: uint16(7), + 281: uint16(91), + 282: uint16(876), + 283: uint16(876), + 284: uint16(876), + 285: uint16(876), + 286: uint16(953), + 287: uint16(91), + 288: uint16(91), + 289: uint16(1246), + 290: uint16(1065), + 291: uint16(1106), + 292: uint16(1374), + 293: uint16(1329), + 294: uint16(1348), + 295: uint16(468), + 296: uint16(1348), + 297: uint16(1394), + 298: uint16(785), + 299: uint16(1329), + 300: uint16(1329), + 301: uint16(785), + 302: uint16(1329), + 303: uint16(468), + 304: uint16(1394), + 305: uint16(859), + 306: uint16(854), + 307: uint16(1402), + 308: uint16(1449), + 309: uint16(1449), + 310: uint16(1449), + 311: uint16(1173), + 312: uint16(1173), + 313: uint16(1173), + 314: uint16(1173), + 315: uint16(1355), + 316: uint16(1355), + 317: uint16(1030), + 318: uint16(1341), + 319: uint16(405), + 320: uint16(1230), + 321: uint16(1795), + 322: uint16(1795), + 323: uint16(1711), + 324: uint16(1711), + 325: uint16(1829), + 326: uint16(1829), + 327: uint16(1711), + 328: uint16(1717), + 329: uint16(1719), + 330: uint16(1850), + 331: uint16(1833), + 332: uint16(1860), + 333: uint16(1860), + 334: uint16(1860), + 335: uint16(1860), + 336: uint16(1711), + 337: uint16(1868), + 338: uint16(1740), + 339: uint16(1719), + 340: uint16(1719), + 341: uint16(1740), + 342: uint16(1850), + 343: uint16(1833), + 344: uint16(1740), + 345: uint16(1833), + 346: uint16(1740), + 347: uint16(1711), + 348: uint16(1868), + 349: uint16(1745), + 350: uint16(1843), + 351: uint16(1711), + 352: uint16(1868), + 353: uint16(1887), + 354: uint16(1711), + 355: uint16(1868), + 356: uint16(1711), + 357: uint16(1868), + 358: uint16(1887), + 359: uint16(1801), + 360: uint16(1801), + 361: uint16(1801), + 362: uint16(1855), + 363: uint16(1900), + 364: uint16(1900), + 365: uint16(1887), + 366: uint16(1801), + 367: uint16(1797), + 368: uint16(1801), + 369: uint16(1855), + 370: uint16(1801), + 371: uint16(1801), + 372: uint16(1761), + 373: uint16(1912), + 374: uint16(1830), + 375: uint16(1830), + 376: uint16(1887), + 377: uint16(1711), + 378: uint16(1862), + 379: uint16(1862), + 380: uint16(1875), + 381: uint16(1875), + 382: uint16(1810), + 383: uint16(1815), + 384: uint16(1940), + 385: uint16(1711), + 386: uint16(1807), + 387: uint16(1810), + 388: uint16(1821), + 389: uint16(1823), + 390: uint16(1740), + 391: uint16(1945), + 392: uint16(1963), + 393: uint16(1963), + 394: uint16(1974), + 395: uint16(1974), + 396: uint16(1974), + 397: uint16(2142), + 398: uint16(2142), + 399: uint16(2142), + 400: uint16(2142), + 401: uint16(2142), + 402: uint16(2142), + 403: uint16(2142), + 404: uint16(2142), + 405: uint16(2142), + 406: uint16(2142), + 407: uint16(2142), + 408: uint16(2142), + 409: uint16(2142), + 410: uint16(2142), + 411: uint16(2142), + 412: uint16(20), + 413: uint16(1224), + 414: uint16(256), + 415: uint16(1111), + 416: uint16(1115), + 417: uint16(1114), + 418: uint16(1192), + 419: uint16(1496), + 420: uint16(1424), + 421: uint16(1505), + 422: uint16(1427), + 423: uint16(355), + 424: uint16(1383), + 425: uint16(1537), + 426: uint16(1506), + 427: uint16(1538), + 428: uint16(1553), + 429: uint16(1583), + 430: uint16(1584), + 431: uint16(1591), + 432: uint16(1625), + 433: uint16(541), + 434: uint16(1445), + 435: uint16(1562), + 436: uint16(1450), + 437: uint16(1572), + 438: uint16(1515), + 439: uint16(1428), + 440: uint16(1532), + 441: uint16(1592), + 442: uint16(1629), + 443: uint16(1520), + 444: uint16(1630), + 445: uint16(1639), + 446: uint16(1510), + 447: uint16(1544), + 448: uint16(1662), + 449: uint16(1675), + 450: uint16(1551), + 451: uint16(48), + 452: uint16(1996), + 453: uint16(2001), + 454: uint16(1983), + 455: uint16(1844), + 456: uint16(1993), + 457: uint16(1994), + 458: uint16(1986), + 459: uint16(1989), + 460: uint16(1874), + 461: uint16(1863), + 462: uint16(1885), + 463: uint16(1991), + 464: uint16(1991), + 465: uint16(1995), + 466: uint16(1876), + 467: uint16(1997), + 468: uint16(1877), + 469: uint16(2004), + 470: uint16(2021), + 471: uint16(1881), + 472: uint16(1894), + 473: uint16(1991), + 474: uint16(1895), + 475: uint16(1965), + 476: uint16(1990), + 477: uint16(1991), + 478: uint16(1878), + 479: uint16(1975), + 480: uint16(1977), + 481: uint16(1978), + 482: uint16(1979), + 483: uint16(1903), + 484: uint16(1918), + 485: uint16(2002), + 486: uint16(1896), + 487: uint16(2034), + 488: uint16(2033), + 489: uint16(2017), + 490: uint16(1925), + 491: uint16(1880), + 492: uint16(1976), + 493: uint16(2018), + 494: uint16(1980), + 495: uint16(1967), + 496: uint16(2005), + 497: uint16(1904), + 498: uint16(1932), + 499: uint16(2025), + 500: uint16(2030), + 501: uint16(2032), + 502: uint16(1921), + 503: uint16(1928), + 504: uint16(2035), + 505: uint16(1987), + 506: uint16(2036), + 507: uint16(2037), + 508: uint16(2038), + 509: uint16(2040), + 510: uint16(1988), + 511: uint16(2006), + 512: uint16(2039), + 513: uint16(1960), + 514: uint16(2041), + 515: uint16(2042), + 516: uint16(1999), + 517: uint16(2023), + 518: uint16(2044), + 519: uint16(2043), + 520: uint16(1919), + 521: uint16(2048), + 522: uint16(2049), + 523: uint16(2050), + 524: uint16(2046), + 525: uint16(2051), + 526: uint16(2053), + 527: uint16(1981), + 528: uint16(1935), + 529: uint16(2056), + 530: uint16(2057), + 531: uint16(1966), + 532: uint16(2047), + 533: uint16(2061), + 534: uint16(1941), + 535: uint16(2060), + 536: uint16(2052), + 537: uint16(2054), + 538: uint16(2055), + 539: uint16(2058), + 540: uint16(2003), + 541: uint16(2012), + 542: uint16(2007), + 543: uint16(2059), + 544: uint16(2015), + 545: uint16(2008), + 546: uint16(2062), + 547: uint16(2071), + 548: uint16(2073), + 549: uint16(2074), + 550: uint16(2072), + 551: uint16(2075), + 552: uint16(2065), + 553: uint16(1962), + 554: uint16(1964), + 555: uint16(2079), + 556: uint16(2060), + 557: uint16(2082), + 558: uint16(2084), + 559: uint16(2085), + 560: uint16(2087), + 561: uint16(2086), + 562: uint16(2089), + 563: uint16(2088), + 564: uint16(2091), + 565: uint16(2093), + 566: uint16(2099), + 567: uint16(2094), + 568: uint16(2095), + 569: uint16(2096), + 570: uint16(2097), + 571: uint16(2100), + 572: uint16(2101), + 573: uint16(2102), + 574: uint16(1998), + 575: uint16(1984), + 576: uint16(1985), + 577: uint16(2000), + 578: uint16(2103), + 579: uint16(2098), + 580: uint16(2109), + 581: uint16(2117), + 582: uint16(2128), +} +var _yy_reduce_ofst = [412]int16{ + 0: int16(-int32(71)), + 1: int16(194), + 2: int16(343), + 3: int16(835), + 4: int16(-int32(180)), + 5: int16(-int32(177)), + 6: int16(838), + 7: int16(-int32(194)), + 8: int16(-int32(188)), + 9: int16(-int32(185)), + 10: int16(-int32(183)), + 11: int16(82), + 12: int16(183), + 13: int16(-int32(65)), + 14: int16(133), + 15: int16(245), + 16: int16(346), + 17: int16(407), + 18: int16(458), + 19: int16(-int32(178)), + 20: int16(75), + 21: int16(-int32(275)), + 22: int16(-int32(4)), + 23: int16(310), + 24: int16(312), + 25: int16(489), + 26: int16(575), + 27: int16(596), + 28: int16(463), + 29: int16(686), + 30: int16(707), + 31: int16(725), + 32: int16(780), + 33: int16(1098), + 34: int16(856), + 35: int16(778), + 36: int16(1059), + 37: int16(1090), + 38: int16(708), + 39: int16(887), + 40: int16(86), + 41: int16(448), + 42: int16(980), + 43: int16(630), + 44: int16(680), + 45: int16(681), + 46: int16(684), + 47: int16(796), + 48: int16(801), + 49: int16(796), + 50: int16(801), + 51: int16(-int32(261)), + 52: int16(-int32(261)), + 53: int16(-int32(261)), + 54: int16(-int32(261)), + 55: int16(-int32(261)), + 56: int16(-int32(261)), + 57: int16(-int32(261)), + 58: int16(-int32(261)), + 59: int16(-int32(261)), + 60: int16(-int32(261)), + 61: int16(-int32(261)), + 62: int16(-int32(261)), + 63: int16(-int32(261)), + 64: int16(-int32(261)), + 65: int16(-int32(261)), + 66: int16(-int32(261)), + 67: int16(-int32(261)), + 68: int16(-int32(261)), + 69: int16(-int32(261)), + 70: int16(-int32(261)), + 71: int16(-int32(261)), + 72: int16(-int32(261)), + 73: int16(-int32(261)), + 74: int16(-int32(261)), + 75: int16(-int32(261)), + 76: int16(-int32(261)), + 77: int16(-int32(261)), + 78: int16(-int32(261)), + 79: int16(-int32(261)), + 80: int16(-int32(261)), + 81: int16(-int32(261)), + 82: int16(-int32(261)), + 83: int16(-int32(261)), + 84: int16(-int32(261)), + 85: int16(-int32(261)), + 86: int16(-int32(261)), + 87: int16(-int32(261)), + 88: int16(391), + 89: int16(886), + 90: int16(888), + 91: int16(1013), + 92: int16(1016), + 93: int16(1081), + 94: int16(1087), + 95: int16(1151), + 96: int16(1159), + 97: int16(1177), + 98: int16(1185), + 99: int16(1188), + 100: int16(1190), + 101: int16(1194), + 102: int16(1197), + 103: int16(1203), + 104: int16(1247), + 105: int16(1260), + 106: int16(1264), + 107: int16(1267), + 108: int16(1269), + 109: int16(1273), + 110: int16(1315), + 111: int16(1322), + 112: int16(1335), + 113: int16(1337), + 114: int16(1356), + 115: int16(1362), + 116: int16(1418), + 117: int16(1425), + 118: int16(1453), + 119: int16(1457), + 120: int16(1465), + 121: int16(1473), + 122: int16(1487), + 123: int16(1495), + 124: int16(1507), + 125: int16(1517), + 126: int16(1521), + 127: int16(1534), + 128: int16(1543), + 129: int16(1546), + 130: int16(1549), + 131: int16(1552), + 132: int16(1554), + 133: int16(1560), + 134: int16(1581), + 135: int16(1590), + 136: int16(1593), + 137: int16(1595), + 138: int16(1621), + 139: int16(1623), + 140: int16(-int32(261)), + 141: int16(-int32(261)), + 142: int16(-int32(261)), + 143: int16(-int32(261)), + 144: int16(-int32(261)), + 145: int16(-int32(261)), + 146: int16(-int32(261)), + 147: int16(-int32(261)), + 148: int16(-int32(261)), + 149: int16(-int32(261)), + 150: int16(-int32(261)), + 151: int16(-int32(186)), + 152: int16(-int32(117)), + 153: int16(260), + 154: int16(263), + 155: int16(460), + 156: int16(631), + 157: int16(-int32(74)), + 158: int16(497), + 159: int16(-int32(181)), + 160: int16(-int32(261)), + 161: int16(939), + 162: int16(176), + 163: int16(274), + 164: int16(338), + 165: int16(676), + 166: int16(-int32(261)), + 167: int16(-int32(261)), + 168: int16(-int32(261)), + 169: int16(-int32(261)), + 170: int16(-int32(212)), + 171: int16(-int32(212)), + 172: int16(-int32(212)), + 173: int16(-int32(184)), + 174: int16(149), + 175: int16(777), + 176: int16(1061), + 177: int16(1103), + 178: int16(265), + 179: int16(419), + 180: int16(-int32(254)), + 181: int16(670), + 182: int16(677), + 183: int16(677), + 184: int16(-int32(11)), + 185: int16(-int32(129)), + 186: int16(184), + 187: int16(488), + 188: int16(736), + 189: int16(789), + 190: int16(805), + 191: int16(844), + 192: int16(403), + 193: int16(529), + 194: int16(579), + 195: int16(668), + 196: int16(783), + 197: int16(841), + 198: int16(1158), + 199: int16(1112), + 200: int16(806), + 201: int16(861), + 202: int16(1095), + 203: int16(846), + 204: int16(839), + 205: int16(1031), + 206: int16(-int32(189)), + 207: int16(1077), + 208: int16(1080), + 209: int16(1116), + 210: int16(1084), + 211: int16(1156), + 212: int16(1139), + 213: int16(1221), + 214: int16(46), + 215: int16(1099), + 216: int16(1037), + 217: int16(1118), + 218: int16(1171), + 219: int16(1214), + 220: int16(1210), + 221: int16(1258), + 222: int16(-int32(210)), + 223: int16(-int32(190)), + 224: int16(-int32(176)), + 225: int16(-int32(115)), + 226: int16(117), + 227: int16(262), + 228: int16(376), + 229: int16(490), + 230: int16(511), + 231: int16(520), + 232: int16(618), + 233: int16(639), + 234: int16(743), + 235: int16(901), + 236: int16(907), + 237: int16(958), + 238: int16(1014), + 239: int16(1055), + 240: int16(1108), + 241: int16(1193), + 242: int16(1244), + 243: int16(720), + 244: int16(1248), + 245: int16(1277), + 246: int16(1324), + 247: int16(1347), + 248: int16(1417), + 249: int16(1431), + 250: int16(1432), + 251: int16(1440), + 252: int16(1451), + 253: int16(1452), + 254: int16(1463), + 255: int16(1478), + 256: int16(1286), + 257: int16(1350), + 258: int16(1369), + 259: int16(1490), + 260: int16(1498), + 261: int16(1501), + 262: int16(773), + 263: int16(1509), + 264: int16(1513), + 265: int16(1528), + 266: int16(1292), + 267: int16(1367), + 268: int16(1535), + 269: int16(1536), + 270: int16(1477), + 271: int16(1542), + 272: int16(376), + 273: int16(1547), + 274: int16(1550), + 275: int16(1555), + 276: int16(1559), + 277: int16(1568), + 278: int16(1571), + 279: int16(1441), + 280: int16(1443), + 281: int16(1474), + 282: int16(1511), + 283: int16(1516), + 284: int16(1519), + 285: int16(1522), + 286: int16(773), + 287: int16(1474), + 288: int16(1474), + 289: int16(1503), + 290: int16(1567), + 291: int16(1594), + 292: int16(1484), + 293: int16(1527), + 294: int16(1556), + 295: int16(1570), + 296: int16(1557), + 297: int16(1524), + 298: int16(1573), + 299: int16(1545), + 300: int16(1548), + 301: int16(1576), + 302: int16(1561), + 303: int16(1587), + 304: int16(1540), + 305: int16(1575), + 306: int16(1606), + 307: int16(1611), + 308: int16(1622), + 309: int16(1624), + 310: int16(1626), + 311: int16(1582), + 312: int16(1597), + 313: int16(1598), + 314: int16(1599), + 315: int16(1601), + 316: int16(1603), + 317: int16(1563), + 318: int16(1608), + 319: int16(1605), + 320: int16(1604), + 321: int16(1564), + 322: int16(1566), + 323: int16(1655), + 324: int16(1660), + 325: int16(1578), + 326: int16(1579), + 327: int16(1665), + 328: int16(1586), + 329: int16(1607), + 330: int16(1610), + 331: int16(1642), + 332: int16(1641), + 333: int16(1645), + 334: int16(1646), + 335: int16(1647), + 336: int16(1679), + 337: int16(1688), + 338: int16(1644), + 339: int16(1618), + 340: int16(1619), + 341: int16(1648), + 342: int16(1628), + 343: int16(1659), + 344: int16(1649), + 345: int16(1663), + 346: int16(1650), + 347: int16(1700), + 348: int16(1702), + 349: int16(1612), + 350: int16(1615), + 351: int16(1706), + 352: int16(1708), + 353: int16(1689), + 354: int16(1709), + 355: int16(1712), + 356: int16(1713), + 357: int16(1715), + 358: int16(1691), + 359: int16(1698), + 360: int16(1699), + 361: int16(1701), + 362: int16(1693), + 363: int16(1704), + 364: int16(1707), + 365: int16(1705), + 366: int16(1714), + 367: int16(1703), + 368: int16(1718), + 369: int16(1710), + 370: int16(1720), + 371: int16(1721), + 372: int16(1632), + 373: int16(1634), + 374: int16(1664), + 375: int16(1666), + 376: int16(1729), + 377: int16(1751), + 378: int16(1635), + 379: int16(1636), + 380: int16(1692), + 381: int16(1694), + 382: int16(1716), + 383: int16(1722), + 384: int16(1684), + 385: int16(1763), + 386: int16(1685), + 387: int16(1723), + 388: int16(1724), + 389: int16(1727), + 390: int16(1730), + 391: int16(1768), + 392: int16(1783), + 393: int16(1784), + 394: int16(1793), + 395: int16(1794), + 396: int16(1796), + 397: int16(1683), 398: int16(1686), - 399: int16(1738), - 400: int16(1728), - 401: int16(1733), - 402: int16(1736), - 403: int16(1737), - 404: int16(1740), - 405: int16(1726), - 406: int16(1730), - 407: int16(1742), - 408: int16(1743), - 409: int16(1748), - 410: int16(1753), -} -var _yy_default = [579]uint16{ - 0: uint16(1648), - 1: uint16(1648), - 2: uint16(1648), - 3: uint16(1478), - 4: uint16(1243), - 5: uint16(1354), - 6: uint16(1243), - 7: uint16(1243), - 8: uint16(1243), - 9: uint16(1478), - 10: uint16(1478), - 11: uint16(1478), - 12: uint16(1243), - 13: uint16(1384), - 14: uint16(1384), - 15: uint16(1531), - 16: uint16(1276), - 17: uint16(1243), - 18: uint16(1243), - 19: uint16(1243), - 20: uint16(1243), - 21: uint16(1243), - 22: uint16(1243), - 23: uint16(1243), - 24: uint16(1243), - 25: uint16(1243), - 26: uint16(1243), - 27: uint16(1243), - 28: uint16(1477), - 29: uint16(1243), - 30: uint16(1243), - 31: uint16(1243), - 32: uint16(1243), - 33: uint16(1564), - 34: uint16(1564), - 35: uint16(1243), - 36: uint16(1243), - 37: uint16(1243), - 38: uint16(1243), - 39: uint16(1243), - 40: uint16(1243), - 41: uint16(1243), - 42: uint16(1243), - 43: uint16(1393), - 44: uint16(1243), - 45: uint16(1400), - 46: uint16(1243), - 47: uint16(1243), - 48: uint16(1243), - 49: uint16(1243), - 50: uint16(1243), - 51: uint16(1479), - 52: uint16(1480), - 53: uint16(1243), - 54: uint16(1243), - 55: uint16(1243), - 56: uint16(1530), - 57: uint16(1532), - 58: uint16(1495), - 59: uint16(1407), - 60: uint16(1406), - 61: uint16(1405), - 62: uint16(1404), - 63: uint16(1513), - 64: uint16(1372), - 65: uint16(1398), - 66: uint16(1391), - 67: uint16(1395), - 68: uint16(1474), - 69: uint16(1475), - 70: uint16(1473), - 71: uint16(1626), - 72: uint16(1480), - 73: uint16(1479), - 74: uint16(1243), - 75: uint16(1394), - 76: uint16(1442), - 77: uint16(1458), - 78: uint16(1441), - 79: uint16(1243), - 80: uint16(1243), - 81: uint16(1243), - 82: uint16(1243), - 83: uint16(1243), - 84: uint16(1243), - 85: uint16(1243), - 86: uint16(1243), - 87: uint16(1243), - 88: uint16(1243), - 89: uint16(1243), - 90: uint16(1243), - 91: uint16(1243), - 92: uint16(1243), - 93: uint16(1243), - 94: uint16(1243), - 95: uint16(1243), - 96: uint16(1243), - 97: uint16(1243), - 98: uint16(1243), - 99: uint16(1243), - 100: uint16(1243), - 101: uint16(1243), - 102: uint16(1243), - 103: uint16(1243), - 104: uint16(1243), - 105: uint16(1243), - 106: uint16(1243), - 107: uint16(1243), - 108: uint16(1243), - 109: uint16(1243), - 110: uint16(1243), - 111: uint16(1243), - 112: uint16(1243), - 113: uint16(1243), - 114: uint16(1243), - 115: uint16(1243), - 116: uint16(1243), - 117: uint16(1243), - 118: uint16(1243), - 119: uint16(1243), - 120: uint16(1243), - 121: uint16(1243), - 122: uint16(1243), - 123: uint16(1243), - 124: uint16(1243), - 125: uint16(1243), - 126: uint16(1243), - 127: uint16(1243), - 128: uint16(1243), - 129: uint16(1243), - 130: uint16(1243), - 131: uint16(1450), - 132: uint16(1457), - 133: uint16(1456), - 134: uint16(1455), - 135: uint16(1464), - 136: uint16(1454), - 137: uint16(1451), - 138: uint16(1444), - 139: uint16(1443), - 140: uint16(1445), - 141: uint16(1446), - 142: uint16(1243), - 143: uint16(1243), - 144: uint16(1267), - 145: uint16(1243), - 146: uint16(1243), - 147: uint16(1264), - 148: uint16(1318), - 149: uint16(1243), - 150: uint16(1243), - 151: uint16(1243), - 152: uint16(1243), - 153: uint16(1243), - 154: uint16(1550), - 155: uint16(1549), - 156: uint16(1243), - 157: uint16(1447), - 158: uint16(1243), - 159: uint16(1276), - 160: uint16(1435), - 161: uint16(1434), - 162: uint16(1433), - 163: uint16(1461), - 164: uint16(1448), - 165: uint16(1460), - 166: uint16(1459), - 167: uint16(1538), - 168: uint16(1600), - 169: uint16(1599), - 170: uint16(1496), - 171: uint16(1243), - 172: uint16(1243), - 173: uint16(1243), - 174: uint16(1243), - 175: uint16(1243), - 176: uint16(1243), - 177: uint16(1564), - 178: uint16(1243), - 179: uint16(1243), - 180: uint16(1243), - 181: uint16(1243), - 182: uint16(1243), - 183: uint16(1243), - 184: uint16(1243), - 185: uint16(1243), - 186: uint16(1243), - 187: uint16(1243), - 188: uint16(1243), - 189: uint16(1243), - 190: uint16(1243), - 191: uint16(1243), - 192: uint16(1243), - 193: uint16(1243), - 194: uint16(1243), - 195: uint16(1243), - 196: uint16(1243), - 197: uint16(1243), - 198: uint16(1243), - 199: uint16(1243), - 200: uint16(1243), - 201: uint16(1374), - 202: uint16(1564), - 203: uint16(1564), - 204: uint16(1243), - 205: uint16(1276), - 206: uint16(1564), - 207: uint16(1564), - 208: uint16(1375), - 209: uint16(1375), - 210: uint16(1272), - 211: uint16(1272), - 212: uint16(1378), - 213: uint16(1243), - 214: uint16(1545), - 215: uint16(1345), - 216: uint16(1345), - 217: uint16(1345), - 218: uint16(1345), - 219: uint16(1354), - 220: uint16(1345), - 221: uint16(1243), - 222: uint16(1243), - 223: uint16(1243), - 224: uint16(1243), - 225: uint16(1243), - 226: uint16(1243), - 227: uint16(1243), - 228: uint16(1243), - 229: uint16(1243), - 230: uint16(1243), - 231: uint16(1243), - 232: uint16(1243), - 233: uint16(1243), - 234: uint16(1243), - 235: uint16(1243), - 236: uint16(1535), - 237: uint16(1533), - 238: uint16(1243), - 239: uint16(1243), - 240: uint16(1243), - 241: uint16(1243), - 242: uint16(1243), - 243: uint16(1243), - 244: uint16(1243), - 245: uint16(1243), - 246: uint16(1243), - 247: uint16(1243), - 248: uint16(1243), - 249: uint16(1243), - 250: uint16(1243), - 251: uint16(1243), - 252: uint16(1243), - 253: uint16(1243), - 254: uint16(1243), - 255: uint16(1243), - 256: uint16(1243), - 257: uint16(1243), - 258: uint16(1243), - 259: uint16(1243), - 260: uint16(1243), - 261: uint16(1243), - 262: uint16(1243), - 263: uint16(1243), - 264: uint16(1243), - 265: uint16(1350), - 266: uint16(1243), - 267: uint16(1243), - 268: uint16(1243), - 269: uint16(1243), - 270: uint16(1243), - 271: uint16(1243), - 272: uint16(1243), - 273: uint16(1243), - 274: uint16(1243), - 275: uint16(1243), - 276: uint16(1243), - 277: uint16(1593), - 278: uint16(1243), - 279: uint16(1508), - 280: uint16(1332), - 281: uint16(1350), - 282: uint16(1350), - 283: uint16(1350), - 284: uint16(1350), - 285: uint16(1352), - 286: uint16(1333), - 287: uint16(1331), - 288: uint16(1344), - 289: uint16(1277), - 290: uint16(1250), - 291: uint16(1640), - 292: uint16(1410), - 293: uint16(1399), - 294: uint16(1351), - 295: uint16(1399), - 296: uint16(1637), - 297: uint16(1397), + 399: int16(1690), + 400: int16(1782), + 401: int16(1779), + 402: int16(1780), + 403: int16(1781), + 404: int16(1785), + 405: int16(1788), + 406: int16(1774), + 407: int16(1775), + 408: int16(1786), + 409: int16(1787), + 410: int16(1789), + 411: int16(1798), +} +var _yy_default = [583]uint16{ + 0: uint16(1663), + 1: uint16(1663), + 2: uint16(1663), + 3: uint16(1491), + 4: uint16(1254), + 5: uint16(1367), + 6: uint16(1254), + 7: uint16(1254), + 8: uint16(1254), + 9: uint16(1254), + 10: uint16(1491), + 11: uint16(1491), + 12: uint16(1491), + 13: uint16(1254), + 14: uint16(1254), + 15: uint16(1254), + 16: uint16(1254), + 17: uint16(1254), + 18: uint16(1254), + 19: uint16(1397), + 20: uint16(1397), + 21: uint16(1544), + 22: uint16(1287), + 23: uint16(1254), + 24: uint16(1254), + 25: uint16(1254), + 26: uint16(1254), + 27: uint16(1254), + 28: uint16(1254), + 29: uint16(1254), + 30: uint16(1254), + 31: uint16(1254), + 32: uint16(1254), + 33: uint16(1254), + 34: uint16(1254), + 35: uint16(1490), + 36: uint16(1254), + 37: uint16(1254), + 38: uint16(1254), + 39: uint16(1254), + 40: uint16(1578), + 41: uint16(1578), + 42: uint16(1254), + 43: uint16(1254), + 44: uint16(1254), + 45: uint16(1254), + 46: uint16(1254), + 47: uint16(1563), + 48: uint16(1562), + 49: uint16(1254), + 50: uint16(1254), + 51: uint16(1254), + 52: uint16(1406), + 53: uint16(1254), + 54: uint16(1413), + 55: uint16(1254), + 56: uint16(1254), + 57: uint16(1254), + 58: uint16(1254), + 59: uint16(1254), + 60: uint16(1492), + 61: uint16(1493), + 62: uint16(1254), + 63: uint16(1254), + 64: uint16(1254), + 65: uint16(1543), + 66: uint16(1545), + 67: uint16(1508), + 68: uint16(1420), + 69: uint16(1419), + 70: uint16(1418), + 71: uint16(1417), + 72: uint16(1526), + 73: uint16(1385), + 74: uint16(1411), + 75: uint16(1404), + 76: uint16(1408), + 77: uint16(1487), + 78: uint16(1488), + 79: uint16(1486), + 80: uint16(1641), + 81: uint16(1493), + 82: uint16(1492), + 83: uint16(1254), + 84: uint16(1407), + 85: uint16(1455), + 86: uint16(1471), + 87: uint16(1454), + 88: uint16(1254), + 89: uint16(1254), + 90: uint16(1254), + 91: uint16(1254), + 92: uint16(1254), + 93: uint16(1254), + 94: uint16(1254), + 95: uint16(1254), + 96: uint16(1254), + 97: uint16(1254), + 98: uint16(1254), + 99: uint16(1254), + 100: uint16(1254), + 101: uint16(1254), + 102: uint16(1254), + 103: uint16(1254), + 104: uint16(1254), + 105: uint16(1254), + 106: uint16(1254), + 107: uint16(1254), + 108: uint16(1254), + 109: uint16(1254), + 110: uint16(1254), + 111: uint16(1254), + 112: uint16(1254), + 113: uint16(1254), + 114: uint16(1254), + 115: uint16(1254), + 116: uint16(1254), + 117: uint16(1254), + 118: uint16(1254), + 119: uint16(1254), + 120: uint16(1254), + 121: uint16(1254), + 122: uint16(1254), + 123: uint16(1254), + 124: uint16(1254), + 125: uint16(1254), + 126: uint16(1254), + 127: uint16(1254), + 128: uint16(1254), + 129: uint16(1254), + 130: uint16(1254), + 131: uint16(1254), + 132: uint16(1254), + 133: uint16(1254), + 134: uint16(1254), + 135: uint16(1254), + 136: uint16(1254), + 137: uint16(1254), + 138: uint16(1254), + 139: uint16(1254), + 140: uint16(1463), + 141: uint16(1470), + 142: uint16(1469), + 143: uint16(1468), + 144: uint16(1477), + 145: uint16(1467), + 146: uint16(1464), + 147: uint16(1457), + 148: uint16(1456), + 149: uint16(1458), + 150: uint16(1459), + 151: uint16(1278), + 152: uint16(1254), + 153: uint16(1275), + 154: uint16(1329), + 155: uint16(1254), + 156: uint16(1254), + 157: uint16(1254), + 158: uint16(1254), + 159: uint16(1254), + 160: uint16(1460), + 161: uint16(1287), + 162: uint16(1448), + 163: uint16(1447), + 164: uint16(1446), + 165: uint16(1254), + 166: uint16(1474), + 167: uint16(1461), + 168: uint16(1473), + 169: uint16(1472), + 170: uint16(1551), + 171: uint16(1615), + 172: uint16(1614), + 173: uint16(1509), + 174: uint16(1254), + 175: uint16(1254), + 176: uint16(1254), + 177: uint16(1254), + 178: uint16(1254), + 179: uint16(1254), + 180: uint16(1578), + 181: uint16(1254), + 182: uint16(1254), + 183: uint16(1254), + 184: uint16(1254), + 185: uint16(1254), + 186: uint16(1254), + 187: uint16(1254), + 188: uint16(1254), + 189: uint16(1254), + 190: uint16(1254), + 191: uint16(1254), + 192: uint16(1254), + 193: uint16(1254), + 194: uint16(1254), + 195: uint16(1254), + 196: uint16(1254), + 197: uint16(1254), + 198: uint16(1254), + 199: uint16(1254), + 200: uint16(1254), + 201: uint16(1254), + 202: uint16(1254), + 203: uint16(1387), + 204: uint16(1578), + 205: uint16(1578), + 206: uint16(1254), + 207: uint16(1287), + 208: uint16(1578), + 209: uint16(1578), + 210: uint16(1388), + 211: uint16(1388), + 212: uint16(1283), + 213: uint16(1283), + 214: uint16(1391), + 215: uint16(1558), + 216: uint16(1358), + 217: uint16(1358), + 218: uint16(1358), + 219: uint16(1358), + 220: uint16(1367), + 221: uint16(1358), + 222: uint16(1254), + 223: uint16(1254), + 224: uint16(1254), + 225: uint16(1254), + 226: uint16(1254), + 227: uint16(1254), + 228: uint16(1254), + 229: uint16(1254), + 230: uint16(1254), + 231: uint16(1254), + 232: uint16(1254), + 233: uint16(1254), + 234: uint16(1254), + 235: uint16(1254), + 236: uint16(1254), + 237: uint16(1548), + 238: uint16(1546), + 239: uint16(1254), + 240: uint16(1254), + 241: uint16(1254), + 242: uint16(1254), + 243: uint16(1254), + 244: uint16(1254), + 245: uint16(1254), + 246: uint16(1254), + 247: uint16(1254), + 248: uint16(1254), + 249: uint16(1254), + 250: uint16(1254), + 251: uint16(1254), + 252: uint16(1254), + 253: uint16(1254), + 254: uint16(1254), + 255: uint16(1254), + 256: uint16(1254), + 257: uint16(1254), + 258: uint16(1254), + 259: uint16(1254), + 260: uint16(1254), + 261: uint16(1254), + 262: uint16(1254), + 263: uint16(1254), + 264: uint16(1254), + 265: uint16(1254), + 266: uint16(1363), + 267: uint16(1254), + 268: uint16(1254), + 269: uint16(1254), + 270: uint16(1254), + 271: uint16(1254), + 272: uint16(1254), + 273: uint16(1254), + 274: uint16(1254), + 275: uint16(1254), + 276: uint16(1254), + 277: uint16(1254), + 278: uint16(1608), + 279: uint16(1254), + 280: uint16(1521), + 281: uint16(1343), + 282: uint16(1363), + 283: uint16(1363), + 284: uint16(1363), + 285: uint16(1363), + 286: uint16(1365), + 287: uint16(1344), + 288: uint16(1342), + 289: uint16(1357), + 290: uint16(1288), + 291: uint16(1261), + 292: uint16(1655), + 293: uint16(1423), + 294: uint16(1412), + 295: uint16(1364), + 296: uint16(1412), + 297: uint16(1652), 298: uint16(1410), - 299: uint16(1410), - 300: uint16(1397), + 299: uint16(1423), + 300: uint16(1423), 301: uint16(1410), - 302: uint16(1351), - 303: uint16(1637), - 304: uint16(1293), - 305: uint16(1615), - 306: uint16(1288), - 307: uint16(1384), - 308: uint16(1384), - 309: uint16(1384), - 310: uint16(1374), - 311: uint16(1374), - 312: uint16(1374), - 313: uint16(1374), - 314: uint16(1378), - 315: uint16(1378), - 316: uint16(1476), - 317: uint16(1351), - 318: uint16(1344), - 319: uint16(1243), - 320: uint16(1640), - 321: uint16(1640), - 322: uint16(1360), - 323: uint16(1360), - 324: uint16(1639), - 325: uint16(1639), - 326: uint16(1360), - 327: uint16(1496), - 328: uint16(1623), - 329: uint16(1419), - 330: uint16(1321), - 331: uint16(1327), - 332: uint16(1327), - 333: uint16(1327), - 334: uint16(1327), - 335: uint16(1360), - 336: uint16(1261), - 337: uint16(1397), - 338: uint16(1623), - 339: uint16(1623), - 340: uint16(1397), - 341: uint16(1419), - 342: uint16(1321), - 343: uint16(1397), - 344: uint16(1321), - 345: uint16(1397), - 346: uint16(1360), - 347: uint16(1261), - 348: uint16(1512), - 349: uint16(1634), - 350: uint16(1360), - 351: uint16(1261), - 352: uint16(1486), - 353: uint16(1360), - 354: uint16(1261), - 355: uint16(1360), - 356: uint16(1261), - 357: uint16(1486), - 358: uint16(1319), - 359: uint16(1319), - 360: uint16(1319), - 361: uint16(1308), - 362: uint16(1243), - 363: uint16(1243), - 364: uint16(1486), - 365: uint16(1319), - 366: uint16(1293), - 367: uint16(1319), - 368: uint16(1308), + 302: uint16(1423), + 303: uint16(1364), + 304: uint16(1652), + 305: uint16(1304), + 306: uint16(1630), + 307: uint16(1299), + 308: uint16(1397), + 309: uint16(1397), + 310: uint16(1397), + 311: uint16(1387), + 312: uint16(1387), + 313: uint16(1387), + 314: uint16(1387), + 315: uint16(1391), + 316: uint16(1391), + 317: uint16(1489), + 318: uint16(1364), + 319: uint16(1357), + 320: uint16(1254), + 321: uint16(1655), + 322: uint16(1655), + 323: uint16(1373), + 324: uint16(1373), + 325: uint16(1654), + 326: uint16(1654), + 327: uint16(1373), + 328: uint16(1509), + 329: uint16(1638), + 330: uint16(1432), + 331: uint16(1332), + 332: uint16(1338), + 333: uint16(1338), + 334: uint16(1338), + 335: uint16(1338), + 336: uint16(1373), + 337: uint16(1272), + 338: uint16(1410), + 339: uint16(1638), + 340: uint16(1638), + 341: uint16(1410), + 342: uint16(1432), + 343: uint16(1332), + 344: uint16(1410), + 345: uint16(1332), + 346: uint16(1410), + 347: uint16(1373), + 348: uint16(1272), + 349: uint16(1525), + 350: uint16(1649), + 351: uint16(1373), + 352: uint16(1272), + 353: uint16(1499), + 354: uint16(1373), + 355: uint16(1272), + 356: uint16(1373), + 357: uint16(1272), + 358: uint16(1499), + 359: uint16(1330), + 360: uint16(1330), + 361: uint16(1330), + 362: uint16(1319), + 363: uint16(1254), + 364: uint16(1254), + 365: uint16(1499), + 366: uint16(1330), + 367: uint16(1304), + 368: uint16(1330), 369: uint16(1319), - 370: uint16(1319), - 371: uint16(1582), - 372: uint16(1243), - 373: uint16(1490), - 374: uint16(1490), - 375: uint16(1486), - 376: uint16(1360), - 377: uint16(1574), - 378: uint16(1574), - 379: uint16(1387), - 380: uint16(1387), - 381: uint16(1392), - 382: uint16(1378), - 383: uint16(1481), - 384: uint16(1360), - 385: uint16(1243), - 386: uint16(1392), - 387: uint16(1390), - 388: uint16(1388), - 389: uint16(1397), - 390: uint16(1311), - 391: uint16(1596), - 392: uint16(1596), - 393: uint16(1592), - 394: uint16(1592), - 395: uint16(1592), - 396: uint16(1645), - 397: uint16(1645), - 398: uint16(1545), - 399: uint16(1608), - 400: uint16(1276), - 401: uint16(1276), - 402: uint16(1276), - 403: uint16(1276), - 404: uint16(1608), - 405: uint16(1295), - 406: uint16(1295), - 407: uint16(1277), - 408: uint16(1277), - 409: uint16(1276), - 410: uint16(1608), - 411: uint16(1243), - 412: uint16(1243), - 413: uint16(1243), - 414: uint16(1243), - 415: uint16(1243), - 416: uint16(1243), - 417: uint16(1603), - 418: uint16(1243), - 419: uint16(1540), - 420: uint16(1497), - 421: uint16(1364), - 422: uint16(1243), - 423: uint16(1243), - 424: uint16(1243), - 425: uint16(1243), - 426: uint16(1243), - 427: uint16(1243), - 428: uint16(1243), - 429: uint16(1243), - 430: uint16(1243), - 431: uint16(1243), - 432: uint16(1243), - 433: uint16(1243), - 434: uint16(1243), - 435: uint16(1243), - 436: uint16(1243), - 437: uint16(1243), - 438: uint16(1551), - 439: uint16(1243), - 440: uint16(1243), - 441: uint16(1243), - 442: uint16(1243), - 443: uint16(1243), - 444: uint16(1243), - 445: uint16(1243), - 446: uint16(1243), - 447: uint16(1243), - 448: uint16(1243), - 449: uint16(1424), - 450: uint16(1243), - 451: uint16(1246), - 452: uint16(1542), - 453: uint16(1243), - 454: uint16(1243), - 455: uint16(1243), - 456: uint16(1243), - 457: uint16(1243), - 458: uint16(1243), - 459: uint16(1243), - 460: uint16(1243), - 461: uint16(1401), - 462: uint16(1402), - 463: uint16(1365), - 464: uint16(1243), - 465: uint16(1243), - 466: uint16(1243), - 467: uint16(1243), - 468: uint16(1243), - 469: uint16(1243), - 470: uint16(1243), - 471: uint16(1416), - 472: uint16(1243), - 473: uint16(1243), - 474: uint16(1243), - 475: uint16(1411), - 476: uint16(1243), - 477: uint16(1243), - 478: uint16(1243), - 479: uint16(1243), - 480: uint16(1243), - 481: uint16(1243), - 482: uint16(1243), - 483: uint16(1243), - 484: uint16(1636), - 485: uint16(1243), - 486: uint16(1243), - 487: uint16(1243), - 488: uint16(1243), - 489: uint16(1243), - 490: uint16(1243), - 491: uint16(1511), - 492: uint16(1510), - 493: uint16(1243), - 494: uint16(1243), - 495: uint16(1362), - 496: uint16(1243), - 497: uint16(1243), - 498: uint16(1243), - 499: uint16(1243), - 500: uint16(1243), - 501: uint16(1243), - 502: uint16(1243), - 503: uint16(1243), - 504: uint16(1243), - 505: uint16(1243), - 506: uint16(1243), - 507: uint16(1243), - 508: uint16(1243), - 509: uint16(1291), - 510: uint16(1243), - 511: uint16(1243), - 512: uint16(1243), - 513: uint16(1243), - 514: uint16(1243), - 515: uint16(1243), - 516: uint16(1243), - 517: uint16(1243), - 518: uint16(1243), - 519: uint16(1243), - 520: uint16(1243), - 521: uint16(1243), - 522: uint16(1243), - 523: uint16(1243), - 524: uint16(1243), - 525: uint16(1243), - 526: uint16(1243), - 527: uint16(1243), - 528: uint16(1243), - 529: uint16(1243), - 530: uint16(1243), - 531: uint16(1243), - 532: uint16(1243), - 533: uint16(1389), - 534: uint16(1243), - 535: uint16(1243), - 536: uint16(1243), - 537: uint16(1243), - 538: uint16(1243), - 539: uint16(1243), - 540: uint16(1243), - 541: uint16(1243), - 542: uint16(1243), - 543: uint16(1243), - 544: uint16(1243), - 545: uint16(1243), - 546: uint16(1243), - 547: uint16(1243), - 548: uint16(1579), - 549: uint16(1379), - 550: uint16(1243), - 551: uint16(1243), - 552: uint16(1243), - 553: uint16(1243), - 554: uint16(1627), - 555: uint16(1243), - 556: uint16(1243), - 557: uint16(1243), - 558: uint16(1243), - 559: uint16(1243), - 560: uint16(1243), - 561: uint16(1243), - 562: uint16(1243), - 563: uint16(1243), - 564: uint16(1243), - 565: uint16(1243), - 566: uint16(1243), - 567: uint16(1243), - 568: uint16(1243), - 569: uint16(1619), - 570: uint16(1335), - 571: uint16(1425), - 572: uint16(1243), - 573: uint16(1428), - 574: uint16(1265), - 575: uint16(1243), - 576: uint16(1255), - 577: uint16(1243), - 578: uint16(1243), + 370: uint16(1330), + 371: uint16(1330), + 372: uint16(1596), + 373: uint16(1254), + 374: uint16(1503), + 375: uint16(1503), + 376: uint16(1499), + 377: uint16(1373), + 378: uint16(1588), + 379: uint16(1588), + 380: uint16(1400), + 381: uint16(1400), + 382: uint16(1405), + 383: uint16(1391), + 384: uint16(1494), + 385: uint16(1373), + 386: uint16(1254), + 387: uint16(1405), + 388: uint16(1403), + 389: uint16(1401), + 390: uint16(1410), + 391: uint16(1322), + 392: uint16(1611), + 393: uint16(1611), + 394: uint16(1607), + 395: uint16(1607), + 396: uint16(1607), + 397: uint16(1660), + 398: uint16(1660), + 399: uint16(1558), + 400: uint16(1623), + 401: uint16(1287), + 402: uint16(1287), + 403: uint16(1287), + 404: uint16(1287), + 405: uint16(1623), + 406: uint16(1306), + 407: uint16(1306), + 408: uint16(1288), + 409: uint16(1288), + 410: uint16(1287), + 411: uint16(1623), + 412: uint16(1254), + 413: uint16(1254), + 414: uint16(1254), + 415: uint16(1254), + 416: uint16(1254), + 417: uint16(1254), + 418: uint16(1618), + 419: uint16(1254), + 420: uint16(1553), + 421: uint16(1510), + 422: uint16(1377), + 423: uint16(1254), + 424: uint16(1254), + 425: uint16(1254), + 426: uint16(1254), + 427: uint16(1254), + 428: uint16(1254), + 429: uint16(1254), + 430: uint16(1254), + 431: uint16(1254), + 432: uint16(1254), + 433: uint16(1254), + 434: uint16(1254), + 435: uint16(1254), + 436: uint16(1254), + 437: uint16(1254), + 438: uint16(1254), + 439: uint16(1564), + 440: uint16(1254), + 441: uint16(1254), + 442: uint16(1254), + 443: uint16(1254), + 444: uint16(1254), + 445: uint16(1254), + 446: uint16(1254), + 447: uint16(1254), + 448: uint16(1254), + 449: uint16(1254), + 450: uint16(1254), + 451: uint16(1437), + 452: uint16(1254), + 453: uint16(1257), + 454: uint16(1555), + 455: uint16(1254), + 456: uint16(1254), + 457: uint16(1254), + 458: uint16(1254), + 459: uint16(1254), + 460: uint16(1254), + 461: uint16(1254), + 462: uint16(1254), + 463: uint16(1414), + 464: uint16(1415), + 465: uint16(1378), + 466: uint16(1254), + 467: uint16(1254), + 468: uint16(1254), + 469: uint16(1254), + 470: uint16(1254), + 471: uint16(1254), + 472: uint16(1254), + 473: uint16(1429), + 474: uint16(1254), + 475: uint16(1254), + 476: uint16(1254), + 477: uint16(1424), + 478: uint16(1254), + 479: uint16(1254), + 480: uint16(1254), + 481: uint16(1254), + 482: uint16(1254), + 483: uint16(1254), + 484: uint16(1254), + 485: uint16(1254), + 486: uint16(1651), + 487: uint16(1254), + 488: uint16(1254), + 489: uint16(1254), + 490: uint16(1254), + 491: uint16(1254), + 492: uint16(1254), + 493: uint16(1524), + 494: uint16(1523), + 495: uint16(1254), + 496: uint16(1254), + 497: uint16(1375), + 498: uint16(1254), + 499: uint16(1254), + 500: uint16(1254), + 501: uint16(1254), + 502: uint16(1254), + 503: uint16(1254), + 504: uint16(1254), + 505: uint16(1254), + 506: uint16(1254), + 507: uint16(1254), + 508: uint16(1254), + 509: uint16(1254), + 510: uint16(1254), + 511: uint16(1302), + 512: uint16(1254), + 513: uint16(1254), + 514: uint16(1254), + 515: uint16(1254), + 516: uint16(1254), + 517: uint16(1254), + 518: uint16(1254), + 519: uint16(1254), + 520: uint16(1254), + 521: uint16(1254), + 522: uint16(1254), + 523: uint16(1254), + 524: uint16(1254), + 525: uint16(1254), + 526: uint16(1254), + 527: uint16(1254), + 528: uint16(1254), + 529: uint16(1254), + 530: uint16(1254), + 531: uint16(1254), + 532: uint16(1254), + 533: uint16(1254), + 534: uint16(1254), + 535: uint16(1402), + 536: uint16(1254), + 537: uint16(1254), + 538: uint16(1254), + 539: uint16(1254), + 540: uint16(1254), + 541: uint16(1254), + 542: uint16(1254), + 543: uint16(1254), + 544: uint16(1254), + 545: uint16(1254), + 546: uint16(1254), + 547: uint16(1254), + 548: uint16(1254), + 549: uint16(1254), + 550: uint16(1593), + 551: uint16(1392), + 552: uint16(1254), + 553: uint16(1254), + 554: uint16(1254), + 555: uint16(1254), + 556: uint16(1642), + 557: uint16(1254), + 558: uint16(1254), + 559: uint16(1254), + 560: uint16(1254), + 561: uint16(1352), + 562: uint16(1254), + 563: uint16(1254), + 564: uint16(1254), + 565: uint16(1254), + 566: uint16(1254), + 567: uint16(1254), + 568: uint16(1254), + 569: uint16(1254), + 570: uint16(1254), + 571: uint16(1254), + 572: uint16(1254), + 573: uint16(1634), + 574: uint16(1346), + 575: uint16(1438), + 576: uint16(1254), + 577: uint16(1441), + 578: uint16(1276), + 579: uint16(1254), + 580: uint16(1266), + 581: uint16(1254), + 582: uint16(1254), } /********** End of lemon-generated parsing tables *****************************/ @@ -158172,7 +159728,7 @@ var _yy_default = [579]uint16{ // ** to revert to identifiers if they keyword does not apply in the context where // ** it appears. // */ -var _yyFallback = [185]uint16{ +var _yyFallback = [186]uint16{ 2: uint16(59), 3: uint16(59), 4: uint16(59), @@ -158285,8 +159841,9 @@ type yyStackEntry = TyyStackEntry type TyyParser1 = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser1 = TyyParser1 @@ -158294,14 +159851,46 @@ type yyParser1 = TyyParser1 type TyyParser = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser = TyyParser /* #include */ +// C documentation +// +// /* +// ** Try to increase the size of the parser stack. Return the number +// ** of errors. Return 0 on success. +// */ +func _yyGrowStack(tls *libc.TLS, p uintptr) (r int32) { + var idx, newSize, oldSize int32 + var pNew uintptr + _, _, _, _ = idx, newSize, oldSize, pNew + oldSize = int32(1) + int32((int64((*TyyParser)(unsafe.Pointer(p)).FyystackEnd)-int64((*TyyParser)(unsafe.Pointer(p)).Fyystack))/24) + newSize = oldSize*int32(2) + int32(100) + idx = int32((int64((*TyyParser)(unsafe.Pointer(p)).Fyytos) - int64((*TyyParser)(unsafe.Pointer(p)).Fyystack)) / 24) + if (*TyyParser)(unsafe.Pointer(p)).Fyystack == p+32 { + pNew = _parserStackRealloc(tls, uintptr(0), uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + libc.Xmemcpy(tls, pNew, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(oldSize)*uint64(24)) + } else { + pNew = _parserStackRealloc(tls, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(newSize)*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + } + (*TyyParser)(unsafe.Pointer(p)).Fyystack = pNew + (*TyyParser)(unsafe.Pointer(p)).Fyytos = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(idx)*24 + (*TyyParser)(unsafe.Pointer(p)).FyystackEnd = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(newSize-int32(1))*24 + return 0 +} + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -158317,10 +159906,11 @@ func _sqlite3ParserInit(tls *libc.TLS, yypRawParser uintptr, pParse uintptr) { _ = yypParser yypParser = yypRawParser (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = yypParser + 16 - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fstateno = uint16(0) - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fmajor = uint16(0) - (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = yypParser + 16 + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack = yypParser + 32 + (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fstateno = uint16(0) + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fmajor = uint16(0) } // C documentation @@ -158348,103 +159938,105 @@ func _yy_destructor(tls *libc.TLS, yypParser uintptr, yymajor uint16, yypminor u ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case int32(204): /* select */ + case int32(205): /* select */ + fallthrough + case int32(240): /* selectnowith */ fallthrough - case int32(239): /* selectnowith */ + case int32(241): /* oneselect */ fallthrough - case int32(240): /* oneselect */ + case int32(253): /* values */ fallthrough - case int32(252): /* values */ + case int32(255): /* mvalues */ _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(216): /* term */ + case int32(217): /* term */ fallthrough - case int32(217): /* expr */ + case int32(218): /* expr */ fallthrough - case int32(246): /* where_opt */ + case int32(247): /* where_opt */ fallthrough - case int32(248): /* having_opt */ + case int32(249): /* having_opt */ fallthrough - case int32(267): /* where_opt_ret */ + case int32(269): /* where_opt_ret */ fallthrough - case int32(278): /* case_operand */ + case int32(280): /* case_operand */ fallthrough - case int32(280): /* case_else */ + case int32(282): /* case_else */ fallthrough - case int32(283): /* vinto */ + case int32(285): /* vinto */ fallthrough - case int32(290): /* when_clause */ + case int32(292): /* when_clause */ fallthrough - case int32(295): /* key_opt */ + case int32(297): /* key_opt */ fallthrough - case int32(311): /* filter_clause */ + case int32(314): /* filter_clause */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(221): /* eidlist_opt */ + case int32(222): /* eidlist_opt */ fallthrough - case int32(231): /* sortlist */ + case int32(232): /* sortlist */ fallthrough - case int32(232): /* eidlist */ + case int32(233): /* eidlist */ fallthrough - case int32(244): /* selcollist */ + case int32(245): /* selcollist */ fallthrough - case int32(247): /* groupby_opt */ + case int32(248): /* groupby_opt */ fallthrough - case int32(249): /* orderby_opt */ + case int32(250): /* orderby_opt */ fallthrough - case int32(253): /* nexprlist */ + case int32(254): /* nexprlist */ fallthrough - case int32(254): /* sclp */ + case int32(256): /* sclp */ fallthrough - case int32(261): /* exprlist */ + case int32(263): /* exprlist */ fallthrough - case int32(268): /* setlist */ + case int32(270): /* setlist */ fallthrough - case int32(277): /* paren_exprlist */ + case int32(279): /* paren_exprlist */ fallthrough - case int32(279): /* case_exprlist */ + case int32(281): /* case_exprlist */ fallthrough - case int32(310): /* part_opt */ + case int32(313): /* part_opt */ _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(238): /* fullname */ + case int32(239): /* fullname */ fallthrough - case int32(245): /* from */ + case int32(246): /* from */ fallthrough - case int32(256): /* seltablist */ + case int32(258): /* seltablist */ fallthrough - case int32(257): /* stl_prefix */ + case int32(259): /* stl_prefix */ fallthrough - case int32(262): /* xfullname */ + case int32(264): /* xfullname */ _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(241): /* wqlist */ + case int32(242): /* wqlist */ _sqlite3WithDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(251): /* window_clause */ + case int32(252): /* window_clause */ fallthrough - case int32(306): /* windowdefn_list */ + case int32(309): /* windowdefn_list */ _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(263): /* idlist */ + case int32(265): /* idlist */ fallthrough - case int32(270): /* idlist_opt */ + case int32(272): /* idlist_opt */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(273): /* filter_over */ + case int32(275): /* filter_over */ fallthrough - case int32(307): /* windowdefn */ + case int32(310): /* windowdefn */ fallthrough - case int32(308): /* window */ + case int32(311): /* window */ fallthrough - case int32(309): /* frame_opt */ + case int32(312): /* frame_opt */ fallthrough - case int32(312): /* over_clause */ + case int32(315): /* over_clause */ _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(286): /* trigger_cmd_list */ + case int32(288): /* trigger_cmd_list */ fallthrough - case int32(291): /* trigger_cmd */ + case int32(293): /* trigger_cmd */ _sqlite3DeleteTriggerStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(288): /* trigger_event */ + case int32(290): /* trigger_event */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TTrigEvent)(unsafe.Pointer(yypminor))).Fb) - case int32(314): /* frame_bound */ + case int32(317): /* frame_bound */ fallthrough - case int32(315): /* frame_bound_s */ + case int32(318): /* frame_bound_s */ fallthrough - case int32(316): /* frame_bound_e */ + case int32(319): /* frame_bound_e */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TFrameBound)(unsafe.Pointer(yypminor))).FpExpr) break /********* End destructor definitions *****************************************/ @@ -158480,11 +160072,20 @@ func _yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var pParser, yytos uintptr + _, _ = pParser, yytos pParser = p - for (*TyyParser)(unsafe.Pointer(pParser)).Fyytos > pParser+16 { - _yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling yy_pop_parser_stack() for each + ** element left in the stack */ + yytos = (*TyyParser)(unsafe.Pointer(pParser)).Fyytos + for yytos > (*TyyParser)(unsafe.Pointer(pParser)).Fyystack { + if int32((*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor) >= int32(YY_MIN_DSTRCTR) { + _yy_destructor(tls, pParser, (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor, yytos+8) + } + yytos -= 24 + } + if (*TyyParser)(unsafe.Pointer(pParser)).Fyystack != pParser+32 { + Xsqlite3_free(tls, (*TyyParser)(unsafe.Pointer(pParser)).Fyystack) } } @@ -158579,13 +160180,13 @@ func _yyStackOverflow(tls *libc.TLS, yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse - for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > yypParser+16 { + for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack { _yy_pop_parser_stack(tls, yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23345, 0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) /******** End %stack_overflow code ********************************************/ /* Suppress warning about unused %extra_argument var */ (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse @@ -158604,15 +160205,19 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint var yytos uintptr _ = yytos (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos += 24 - if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 - _yyStackOverflow(tls, yypParser) - return + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + if yytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { + if _yyGrowStack(tls, yypParser) != 0 { + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 + _yyStackOverflow(tls, yypParser) + return + } + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + _ = libc.Int32FromInt32(0) } if int32(yyNewState) > int32(YY_MAX_SHIFT) { yyNewState = uint16(int32(yyNewState) + (libc.Int32FromInt32(YY_MIN_REDUCE) - libc.Int32FromInt32(YY_MIN_SHIFTREDUCE))) } - yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos (*TyyStackEntry)(unsafe.Pointer(yytos)).Fstateno = yyNewState (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor = yyMajor *(*TToken)(unsafe.Pointer(yytos + 8)) = yyMinor @@ -158622,419 +160227,423 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint // // /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side // ** of that rule */ -var _yyRuleInfoLhs = [405]uint16{ - 0: uint16(189), - 1: uint16(189), - 2: uint16(188), - 3: uint16(190), - 4: uint16(191), - 5: uint16(191), - 6: uint16(191), - 7: uint16(191), - 8: uint16(190), - 9: uint16(190), - 10: uint16(190), - 11: uint16(190), - 12: uint16(190), - 13: uint16(195), - 14: uint16(197), - 15: uint16(199), - 16: uint16(199), - 17: uint16(198), - 18: uint16(198), - 19: uint16(196), - 20: uint16(196), - 21: uint16(203), - 22: uint16(203), - 23: uint16(205), - 24: uint16(205), - 25: uint16(206), - 26: uint16(208), - 27: uint16(208), - 28: uint16(208), - 29: uint16(209), - 30: uint16(213), - 31: uint16(214), - 32: uint16(215), - 33: uint16(215), - 34: uint16(215), - 35: uint16(215), - 36: uint16(215), - 37: uint16(215), - 38: uint16(215), - 39: uint16(215), - 40: uint16(215), - 41: uint16(215), - 42: uint16(215), - 43: uint16(215), - 44: uint16(215), - 45: uint16(224), - 46: uint16(224), - 47: uint16(220), - 48: uint16(220), - 49: uint16(222), - 50: uint16(222), - 51: uint16(225), - 52: uint16(225), - 53: uint16(225), - 54: uint16(225), - 55: uint16(226), - 56: uint16(226), - 57: uint16(226), - 58: uint16(226), - 59: uint16(226), - 60: uint16(223), - 61: uint16(223), - 62: uint16(227), - 63: uint16(227), - 64: uint16(227), - 65: uint16(202), - 66: uint16(229), - 67: uint16(230), - 68: uint16(230), - 69: uint16(230), - 70: uint16(230), - 71: uint16(230), - 72: uint16(233), - 73: uint16(218), - 74: uint16(218), - 75: uint16(234), - 76: uint16(234), - 77: uint16(235), - 78: uint16(235), - 79: uint16(190), - 80: uint16(237), - 81: uint16(237), - 82: uint16(190), - 83: uint16(190), - 84: uint16(190), - 85: uint16(204), - 86: uint16(204), - 87: uint16(204), - 88: uint16(239), - 89: uint16(242), - 90: uint16(242), - 91: uint16(242), - 92: uint16(240), - 93: uint16(240), - 94: uint16(252), - 95: uint16(252), - 96: uint16(243), - 97: uint16(243), - 98: uint16(243), - 99: uint16(254), +var _yyRuleInfoLhs = [409]uint16{ + 0: uint16(190), + 1: uint16(190), + 2: uint16(189), + 3: uint16(191), + 4: uint16(192), + 5: uint16(192), + 6: uint16(192), + 7: uint16(192), + 8: uint16(191), + 9: uint16(191), + 10: uint16(191), + 11: uint16(191), + 12: uint16(191), + 13: uint16(196), + 14: uint16(198), + 15: uint16(200), + 16: uint16(200), + 17: uint16(199), + 18: uint16(199), + 19: uint16(197), + 20: uint16(197), + 21: uint16(204), + 22: uint16(204), + 23: uint16(206), + 24: uint16(206), + 25: uint16(207), + 26: uint16(209), + 27: uint16(209), + 28: uint16(209), + 29: uint16(210), + 30: uint16(214), + 31: uint16(215), + 32: uint16(216), + 33: uint16(216), + 34: uint16(216), + 35: uint16(216), + 36: uint16(216), + 37: uint16(216), + 38: uint16(216), + 39: uint16(216), + 40: uint16(216), + 41: uint16(216), + 42: uint16(216), + 43: uint16(216), + 44: uint16(216), + 45: uint16(225), + 46: uint16(225), + 47: uint16(221), + 48: uint16(221), + 49: uint16(223), + 50: uint16(223), + 51: uint16(226), + 52: uint16(226), + 53: uint16(226), + 54: uint16(226), + 55: uint16(227), + 56: uint16(227), + 57: uint16(227), + 58: uint16(227), + 59: uint16(227), + 60: uint16(224), + 61: uint16(224), + 62: uint16(228), + 63: uint16(228), + 64: uint16(228), + 65: uint16(203), + 66: uint16(230), + 67: uint16(231), + 68: uint16(231), + 69: uint16(231), + 70: uint16(231), + 71: uint16(231), + 72: uint16(234), + 73: uint16(219), + 74: uint16(219), + 75: uint16(235), + 76: uint16(235), + 77: uint16(236), + 78: uint16(236), + 79: uint16(191), + 80: uint16(238), + 81: uint16(238), + 82: uint16(191), + 83: uint16(191), + 84: uint16(191), + 85: uint16(205), + 86: uint16(205), + 87: uint16(205), + 88: uint16(240), + 89: uint16(243), + 90: uint16(243), + 91: uint16(243), + 92: uint16(241), + 93: uint16(241), + 94: uint16(253), + 95: uint16(241), + 96: uint16(255), + 97: uint16(255), + 98: uint16(244), + 99: uint16(244), 100: uint16(244), - 101: uint16(244), - 102: uint16(244), - 103: uint16(255), - 104: uint16(255), - 105: uint16(245), - 106: uint16(245), - 107: uint16(257), - 108: uint16(257), - 109: uint16(256), - 110: uint16(256), - 111: uint16(256), - 112: uint16(256), - 113: uint16(256), - 114: uint16(200), - 115: uint16(200), - 116: uint16(238), - 117: uint16(238), - 118: uint16(262), - 119: uint16(262), - 120: uint16(262), - 121: uint16(262), - 122: uint16(258), - 123: uint16(258), - 124: uint16(258), - 125: uint16(258), - 126: uint16(259), - 127: uint16(259), - 128: uint16(259), - 129: uint16(264), - 130: uint16(260), - 131: uint16(260), - 132: uint16(249), - 133: uint16(249), - 134: uint16(231), - 135: uint16(231), - 136: uint16(219), - 137: uint16(219), - 138: uint16(219), - 139: uint16(265), - 140: uint16(265), - 141: uint16(265), - 142: uint16(247), - 143: uint16(247), + 101: uint16(256), + 102: uint16(245), + 103: uint16(245), + 104: uint16(245), + 105: uint16(257), + 106: uint16(257), + 107: uint16(246), + 108: uint16(246), + 109: uint16(259), + 110: uint16(259), + 111: uint16(258), + 112: uint16(258), + 113: uint16(258), + 114: uint16(258), + 115: uint16(258), + 116: uint16(201), + 117: uint16(201), + 118: uint16(239), + 119: uint16(239), + 120: uint16(264), + 121: uint16(264), + 122: uint16(264), + 123: uint16(264), + 124: uint16(260), + 125: uint16(260), + 126: uint16(260), + 127: uint16(260), + 128: uint16(261), + 129: uint16(261), + 130: uint16(261), + 131: uint16(266), + 132: uint16(262), + 133: uint16(262), + 134: uint16(250), + 135: uint16(250), + 136: uint16(232), + 137: uint16(232), + 138: uint16(220), + 139: uint16(220), + 140: uint16(220), + 141: uint16(267), + 142: uint16(267), + 143: uint16(267), 144: uint16(248), 145: uint16(248), - 146: uint16(250), - 147: uint16(250), - 148: uint16(250), - 149: uint16(250), - 150: uint16(190), - 151: uint16(246), - 152: uint16(246), - 153: uint16(267), - 154: uint16(267), - 155: uint16(267), - 156: uint16(267), - 157: uint16(190), - 158: uint16(268), - 159: uint16(268), - 160: uint16(268), - 161: uint16(268), - 162: uint16(190), - 163: uint16(190), - 164: uint16(271), - 165: uint16(271), - 166: uint16(271), - 167: uint16(271), - 168: uint16(271), - 169: uint16(271), - 170: uint16(272), - 171: uint16(269), - 172: uint16(269), - 173: uint16(270), - 174: uint16(270), - 175: uint16(263), - 176: uint16(263), - 177: uint16(217), - 178: uint16(217), - 179: uint16(217), - 180: uint16(217), - 181: uint16(216), - 182: uint16(216), - 183: uint16(216), + 146: uint16(249), + 147: uint16(249), + 148: uint16(251), + 149: uint16(251), + 150: uint16(251), + 151: uint16(251), + 152: uint16(191), + 153: uint16(247), + 154: uint16(247), + 155: uint16(269), + 156: uint16(269), + 157: uint16(269), + 158: uint16(269), + 159: uint16(191), + 160: uint16(270), + 161: uint16(270), + 162: uint16(270), + 163: uint16(270), + 164: uint16(191), + 165: uint16(191), + 166: uint16(273), + 167: uint16(273), + 168: uint16(273), + 169: uint16(273), + 170: uint16(273), + 171: uint16(273), + 172: uint16(274), + 173: uint16(271), + 174: uint16(271), + 175: uint16(272), + 176: uint16(272), + 177: uint16(265), + 178: uint16(265), + 179: uint16(218), + 180: uint16(218), + 181: uint16(218), + 182: uint16(218), + 183: uint16(217), 184: uint16(217), 185: uint16(217), - 186: uint16(217), - 187: uint16(217), - 188: uint16(217), - 189: uint16(217), - 190: uint16(217), - 191: uint16(217), - 192: uint16(217), - 193: uint16(216), - 194: uint16(217), + 186: uint16(218), + 187: uint16(218), + 188: uint16(218), + 189: uint16(218), + 190: uint16(218), + 191: uint16(218), + 192: uint16(218), + 193: uint16(218), + 194: uint16(218), 195: uint16(217), - 196: uint16(217), - 197: uint16(217), - 198: uint16(217), - 199: uint16(217), - 200: uint16(217), - 201: uint16(217), - 202: uint16(217), - 203: uint16(274), - 204: uint16(217), - 205: uint16(217), - 206: uint16(217), - 207: uint16(217), - 208: uint16(217), - 209: uint16(217), - 210: uint16(217), - 211: uint16(217), - 212: uint16(217), - 213: uint16(217), - 214: uint16(217), - 215: uint16(217), - 216: uint16(275), - 217: uint16(275), - 218: uint16(217), - 219: uint16(276), - 220: uint16(276), - 221: uint16(217), - 222: uint16(217), - 223: uint16(217), - 224: uint16(217), - 225: uint16(217), - 226: uint16(217), - 227: uint16(279), - 228: uint16(279), - 229: uint16(280), - 230: uint16(280), - 231: uint16(278), - 232: uint16(261), - 233: uint16(253), - 234: uint16(253), - 235: uint16(277), - 236: uint16(277), - 237: uint16(190), - 238: uint16(281), - 239: uint16(281), - 240: uint16(221), - 241: uint16(221), - 242: uint16(232), - 243: uint16(232), - 244: uint16(282), - 245: uint16(282), - 246: uint16(190), - 247: uint16(190), - 248: uint16(190), - 249: uint16(283), - 250: uint16(283), - 251: uint16(190), - 252: uint16(190), - 253: uint16(190), - 254: uint16(190), - 255: uint16(190), - 256: uint16(211), - 257: uint16(212), - 258: uint16(190), - 259: uint16(285), - 260: uint16(287), + 196: uint16(218), + 197: uint16(218), + 198: uint16(218), + 199: uint16(218), + 200: uint16(218), + 201: uint16(218), + 202: uint16(218), + 203: uint16(218), + 204: uint16(218), + 205: uint16(276), + 206: uint16(218), + 207: uint16(218), + 208: uint16(218), + 209: uint16(218), + 210: uint16(218), + 211: uint16(218), + 212: uint16(218), + 213: uint16(218), + 214: uint16(218), + 215: uint16(218), + 216: uint16(218), + 217: uint16(218), + 218: uint16(277), + 219: uint16(277), + 220: uint16(218), + 221: uint16(278), + 222: uint16(278), + 223: uint16(218), + 224: uint16(218), + 225: uint16(218), + 226: uint16(218), + 227: uint16(218), + 228: uint16(218), + 229: uint16(281), + 230: uint16(281), + 231: uint16(282), + 232: uint16(282), + 233: uint16(280), + 234: uint16(263), + 235: uint16(254), + 236: uint16(254), + 237: uint16(279), + 238: uint16(279), + 239: uint16(191), + 240: uint16(283), + 241: uint16(283), + 242: uint16(222), + 243: uint16(222), + 244: uint16(233), + 245: uint16(233), + 246: uint16(284), + 247: uint16(284), + 248: uint16(191), + 249: uint16(191), + 250: uint16(191), + 251: uint16(285), + 252: uint16(285), + 253: uint16(191), + 254: uint16(191), + 255: uint16(191), + 256: uint16(191), + 257: uint16(191), + 258: uint16(212), + 259: uint16(213), + 260: uint16(191), 261: uint16(287), - 262: uint16(287), - 263: uint16(288), - 264: uint16(288), - 265: uint16(288), + 262: uint16(289), + 263: uint16(289), + 264: uint16(289), + 265: uint16(290), 266: uint16(290), 267: uint16(290), - 268: uint16(286), - 269: uint16(286), - 270: uint16(292), - 271: uint16(293), - 272: uint16(293), - 273: uint16(291), - 274: uint16(291), - 275: uint16(291), - 276: uint16(291), - 277: uint16(217), - 278: uint16(217), - 279: uint16(236), - 280: uint16(236), - 281: uint16(236), - 282: uint16(190), - 283: uint16(190), - 284: uint16(190), - 285: uint16(295), - 286: uint16(295), - 287: uint16(190), - 288: uint16(190), - 289: uint16(190), - 290: uint16(190), - 291: uint16(190), - 292: uint16(190), - 293: uint16(190), - 294: uint16(296), - 295: uint16(190), - 296: uint16(190), - 297: uint16(190), - 298: uint16(298), - 299: uint16(300), - 300: uint16(301), - 301: uint16(301), - 302: uint16(302), - 303: uint16(266), - 304: uint16(266), - 305: uint16(305), - 306: uint16(305), - 307: uint16(305), - 308: uint16(304), - 309: uint16(241), - 310: uint16(241), - 311: uint16(306), - 312: uint16(307), - 313: uint16(308), - 314: uint16(308), - 315: uint16(308), - 316: uint16(308), - 317: uint16(308), - 318: uint16(309), - 319: uint16(309), - 320: uint16(309), - 321: uint16(313), - 322: uint16(315), - 323: uint16(315), + 268: uint16(292), + 269: uint16(292), + 270: uint16(288), + 271: uint16(288), + 272: uint16(294), + 273: uint16(295), + 274: uint16(295), + 275: uint16(293), + 276: uint16(293), + 277: uint16(293), + 278: uint16(293), + 279: uint16(218), + 280: uint16(218), + 281: uint16(237), + 282: uint16(237), + 283: uint16(237), + 284: uint16(191), + 285: uint16(191), + 286: uint16(191), + 287: uint16(297), + 288: uint16(297), + 289: uint16(191), + 290: uint16(191), + 291: uint16(191), + 292: uint16(191), + 293: uint16(191), + 294: uint16(191), + 295: uint16(191), + 296: uint16(298), + 297: uint16(191), + 298: uint16(191), + 299: uint16(191), + 300: uint16(300), + 301: uint16(302), + 302: uint16(303), + 303: uint16(303), + 304: uint16(304), + 305: uint16(268), + 306: uint16(268), + 307: uint16(307), + 308: uint16(307), + 309: uint16(307), + 310: uint16(306), + 311: uint16(308), + 312: uint16(242), + 313: uint16(242), + 314: uint16(309), + 315: uint16(310), + 316: uint16(311), + 317: uint16(311), + 318: uint16(311), + 319: uint16(311), + 320: uint16(311), + 321: uint16(312), + 322: uint16(312), + 323: uint16(312), 324: uint16(316), - 325: uint16(316), - 326: uint16(314), - 327: uint16(314), - 328: uint16(317), + 325: uint16(318), + 326: uint16(318), + 327: uint16(319), + 328: uint16(319), 329: uint16(317), - 330: uint16(318), - 331: uint16(318), - 332: uint16(318), - 333: uint16(251), - 334: uint16(273), - 335: uint16(273), - 336: uint16(273), - 337: uint16(312), - 338: uint16(312), - 339: uint16(311), - 340: uint16(185), - 341: uint16(186), - 342: uint16(186), - 343: uint16(187), - 344: uint16(187), + 330: uint16(317), + 331: uint16(320), + 332: uint16(320), + 333: uint16(321), + 334: uint16(321), + 335: uint16(321), + 336: uint16(252), + 337: uint16(275), + 338: uint16(275), + 339: uint16(275), + 340: uint16(315), + 341: uint16(315), + 342: uint16(314), + 343: uint16(217), + 344: uint16(186), 345: uint16(187), - 346: uint16(192), - 347: uint16(192), - 348: uint16(192), - 349: uint16(194), - 350: uint16(194), - 351: uint16(190), - 352: uint16(203), - 353: uint16(201), - 354: uint16(201), - 355: uint16(193), - 356: uint16(193), - 357: uint16(208), - 358: uint16(209), - 359: uint16(210), - 360: uint16(210), - 361: uint16(207), - 362: uint16(207), - 363: uint16(215), - 364: uint16(215), - 365: uint16(215), - 366: uint16(202), - 367: uint16(228), - 368: uint16(228), - 369: uint16(229), - 370: uint16(233), - 371: uint16(235), - 372: uint16(239), - 373: uint16(240), - 374: uint16(254), - 375: uint16(255), - 376: uint16(264), - 377: uint16(272), - 378: uint16(217), - 379: uint16(274), - 380: uint16(278), - 381: uint16(261), - 382: uint16(284), - 383: uint16(284), - 384: uint16(284), - 385: uint16(284), - 386: uint16(284), - 387: uint16(211), - 388: uint16(289), - 389: uint16(289), - 390: uint16(292), - 391: uint16(293), - 392: uint16(294), - 393: uint16(294), - 394: uint16(297), - 395: uint16(297), - 396: uint16(299), - 397: uint16(299), - 398: uint16(300), - 399: uint16(303), - 400: uint16(303), - 401: uint16(303), - 402: uint16(266), - 403: uint16(306), - 404: uint16(308), + 346: uint16(187), + 347: uint16(188), + 348: uint16(188), + 349: uint16(188), + 350: uint16(193), + 351: uint16(193), + 352: uint16(193), + 353: uint16(195), + 354: uint16(195), + 355: uint16(191), + 356: uint16(204), + 357: uint16(202), + 358: uint16(202), + 359: uint16(194), + 360: uint16(194), + 361: uint16(209), + 362: uint16(210), + 363: uint16(211), + 364: uint16(211), + 365: uint16(208), + 366: uint16(208), + 367: uint16(216), + 368: uint16(216), + 369: uint16(216), + 370: uint16(203), + 371: uint16(229), + 372: uint16(229), + 373: uint16(230), + 374: uint16(234), + 375: uint16(236), + 376: uint16(240), + 377: uint16(241), + 378: uint16(256), + 379: uint16(257), + 380: uint16(266), + 381: uint16(274), + 382: uint16(218), + 383: uint16(276), + 384: uint16(280), + 385: uint16(263), + 386: uint16(286), + 387: uint16(286), + 388: uint16(286), + 389: uint16(286), + 390: uint16(286), + 391: uint16(212), + 392: uint16(291), + 393: uint16(291), + 394: uint16(294), + 395: uint16(295), + 396: uint16(296), + 397: uint16(296), + 398: uint16(299), + 399: uint16(299), + 400: uint16(301), + 401: uint16(301), + 402: uint16(302), + 403: uint16(305), + 404: uint16(305), + 405: uint16(305), + 406: uint16(268), + 407: uint16(309), + 408: uint16(311), } // C documentation // // /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number // ** of symbols on the right-hand side of that rule. */ -var _yyRuleInfoNRhs = [405]int8{ +var _yyRuleInfoNRhs = [409]int8{ 0: int8(-int32(1)), 1: int8(-int32(3)), 2: int8(-int32(1)), @@ -159115,273 +160724,277 @@ var _yyRuleInfoNRhs = [405]int8{ 92: int8(-int32(9)), 93: int8(-int32(10)), 94: int8(-int32(4)), - 95: int8(-int32(5)), - 96: int8(-int32(1)), - 97: int8(-int32(1)), - 100: int8(-int32(5)), - 101: int8(-int32(3)), + 95: int8(-int32(1)), + 96: int8(-int32(5)), + 97: int8(-int32(5)), + 98: int8(-int32(1)), + 99: int8(-int32(1)), 102: int8(-int32(5)), - 103: int8(-int32(2)), - 106: int8(-int32(2)), - 107: int8(-int32(2)), - 109: int8(-int32(5)), - 110: int8(-int32(6)), - 111: int8(-int32(8)), + 103: int8(-int32(3)), + 104: int8(-int32(5)), + 105: int8(-int32(2)), + 108: int8(-int32(2)), + 109: int8(-int32(2)), + 111: int8(-int32(5)), 112: int8(-int32(6)), - 113: int8(-int32(6)), - 115: int8(-int32(2)), - 116: int8(-int32(1)), - 117: int8(-int32(3)), + 113: int8(-int32(8)), + 114: int8(-int32(6)), + 115: int8(-int32(6)), + 117: int8(-int32(2)), 118: int8(-int32(1)), 119: int8(-int32(3)), - 120: int8(-int32(5)), + 120: int8(-int32(1)), 121: int8(-int32(3)), - 122: int8(-int32(1)), - 123: int8(-int32(2)), - 124: int8(-int32(3)), - 125: int8(-int32(4)), - 126: int8(-int32(2)), + 122: int8(-int32(5)), + 123: int8(-int32(3)), + 124: int8(-int32(1)), + 125: int8(-int32(2)), + 126: int8(-int32(3)), 127: int8(-int32(4)), - 130: int8(-int32(3)), - 131: int8(-int32(2)), - 133: int8(-int32(3)), - 134: int8(-int32(5)), + 128: int8(-int32(2)), + 129: int8(-int32(4)), + 132: int8(-int32(3)), + 133: int8(-int32(2)), 135: int8(-int32(3)), - 136: int8(-int32(1)), - 137: int8(-int32(1)), - 139: int8(-int32(2)), - 140: int8(-int32(2)), - 143: int8(-int32(3)), - 145: int8(-int32(2)), + 136: int8(-int32(5)), + 137: int8(-int32(3)), + 138: int8(-int32(1)), + 139: int8(-int32(1)), + 141: int8(-int32(2)), + 142: int8(-int32(2)), + 145: int8(-int32(3)), 147: int8(-int32(2)), - 148: int8(-int32(4)), - 149: int8(-int32(4)), - 150: int8(-int32(6)), - 152: int8(-int32(2)), + 149: int8(-int32(2)), + 150: int8(-int32(4)), + 151: int8(-int32(4)), + 152: int8(-int32(6)), 154: int8(-int32(2)), - 155: int8(-int32(2)), - 156: int8(-int32(4)), - 157: int8(-int32(9)), - 158: int8(-int32(5)), - 159: int8(-int32(7)), - 160: int8(-int32(3)), - 161: int8(-int32(5)), - 162: int8(-int32(7)), - 163: int8(-int32(8)), - 165: int8(-int32(2)), - 166: int8(-int32(12)), - 167: int8(-int32(9)), - 168: int8(-int32(5)), - 169: int8(-int32(8)), - 170: int8(-int32(2)), - 171: int8(-int32(2)), - 172: int8(-int32(1)), - 174: int8(-int32(3)), - 175: int8(-int32(3)), - 176: int8(-int32(1)), + 156: int8(-int32(2)), + 157: int8(-int32(2)), + 158: int8(-int32(4)), + 159: int8(-int32(9)), + 160: int8(-int32(5)), + 161: int8(-int32(7)), + 162: int8(-int32(3)), + 163: int8(-int32(5)), + 164: int8(-int32(7)), + 165: int8(-int32(8)), + 167: int8(-int32(2)), + 168: int8(-int32(12)), + 169: int8(-int32(9)), + 170: int8(-int32(5)), + 171: int8(-int32(8)), + 172: int8(-int32(2)), + 173: int8(-int32(2)), + 174: int8(-int32(1)), + 176: int8(-int32(3)), 177: int8(-int32(3)), 178: int8(-int32(1)), 179: int8(-int32(3)), - 180: int8(-int32(5)), - 181: int8(-int32(1)), - 182: int8(-int32(1)), + 180: int8(-int32(1)), + 181: int8(-int32(3)), + 182: int8(-int32(5)), 183: int8(-int32(1)), 184: int8(-int32(1)), - 185: int8(-int32(3)), - 186: int8(-int32(6)), - 187: int8(-int32(5)), - 188: int8(-int32(8)), - 189: int8(-int32(4)), - 190: int8(-int32(6)), - 191: int8(-int32(9)), - 192: int8(-int32(5)), - 193: int8(-int32(1)), + 185: int8(-int32(1)), + 186: int8(-int32(1)), + 187: int8(-int32(3)), + 188: int8(-int32(6)), + 189: int8(-int32(5)), + 190: int8(-int32(8)), + 191: int8(-int32(4)), + 192: int8(-int32(6)), + 193: int8(-int32(9)), 194: int8(-int32(5)), - 195: int8(-int32(3)), - 196: int8(-int32(3)), + 195: int8(-int32(1)), + 196: int8(-int32(5)), 197: int8(-int32(3)), 198: int8(-int32(3)), 199: int8(-int32(3)), 200: int8(-int32(3)), 201: int8(-int32(3)), 202: int8(-int32(3)), - 203: int8(-int32(2)), + 203: int8(-int32(3)), 204: int8(-int32(3)), - 205: int8(-int32(5)), - 206: int8(-int32(2)), - 207: int8(-int32(3)), - 208: int8(-int32(3)), - 209: int8(-int32(4)), - 210: int8(-int32(6)), - 211: int8(-int32(5)), - 212: int8(-int32(2)), - 213: int8(-int32(2)), + 205: int8(-int32(2)), + 206: int8(-int32(3)), + 207: int8(-int32(5)), + 208: int8(-int32(2)), + 209: int8(-int32(3)), + 210: int8(-int32(3)), + 211: int8(-int32(4)), + 212: int8(-int32(6)), + 213: int8(-int32(5)), 214: int8(-int32(2)), - 215: int8(-int32(3)), - 216: int8(-int32(1)), - 217: int8(-int32(2)), - 218: int8(-int32(5)), - 219: int8(-int32(1)), - 220: int8(-int32(2)), - 221: int8(-int32(5)), - 222: int8(-int32(3)), + 215: int8(-int32(2)), + 216: int8(-int32(2)), + 217: int8(-int32(3)), + 218: int8(-int32(1)), + 219: int8(-int32(2)), + 220: int8(-int32(5)), + 221: int8(-int32(1)), + 222: int8(-int32(2)), 223: int8(-int32(5)), - 224: int8(-int32(5)), - 225: int8(-int32(4)), + 224: int8(-int32(3)), + 225: int8(-int32(5)), 226: int8(-int32(5)), - 227: int8(-int32(5)), - 228: int8(-int32(4)), - 229: int8(-int32(2)), - 233: int8(-int32(3)), - 234: int8(-int32(1)), - 236: int8(-int32(3)), - 237: int8(-int32(12)), - 238: int8(-int32(1)), - 241: int8(-int32(3)), - 242: int8(-int32(5)), + 227: int8(-int32(4)), + 228: int8(-int32(5)), + 229: int8(-int32(5)), + 230: int8(-int32(4)), + 231: int8(-int32(2)), + 235: int8(-int32(3)), + 236: int8(-int32(1)), + 238: int8(-int32(3)), + 239: int8(-int32(12)), + 240: int8(-int32(1)), 243: int8(-int32(3)), - 245: int8(-int32(2)), - 246: int8(-int32(4)), + 244: int8(-int32(5)), + 245: int8(-int32(3)), 247: int8(-int32(2)), - 248: int8(-int32(3)), + 248: int8(-int32(4)), 249: int8(-int32(2)), - 251: int8(-int32(3)), - 252: int8(-int32(5)), - 253: int8(-int32(6)), + 250: int8(-int32(3)), + 251: int8(-int32(2)), + 253: int8(-int32(3)), 254: int8(-int32(5)), 255: int8(-int32(6)), - 256: int8(-int32(2)), - 257: int8(-int32(2)), - 258: int8(-int32(5)), - 259: int8(-int32(11)), - 260: int8(-int32(1)), - 261: int8(-int32(2)), - 263: int8(-int32(1)), - 264: int8(-int32(1)), - 265: int8(-int32(3)), - 267: int8(-int32(2)), - 268: int8(-int32(3)), + 256: int8(-int32(5)), + 257: int8(-int32(6)), + 258: int8(-int32(2)), + 259: int8(-int32(2)), + 260: int8(-int32(5)), + 261: int8(-int32(11)), + 262: int8(-int32(1)), + 263: int8(-int32(2)), + 265: int8(-int32(1)), + 266: int8(-int32(1)), + 267: int8(-int32(3)), 269: int8(-int32(2)), 270: int8(-int32(3)), - 271: int8(-int32(3)), - 272: int8(-int32(2)), - 273: int8(-int32(9)), - 274: int8(-int32(8)), - 275: int8(-int32(6)), - 276: int8(-int32(3)), - 277: int8(-int32(4)), - 278: int8(-int32(6)), - 279: int8(-int32(1)), - 280: int8(-int32(1)), + 271: int8(-int32(2)), + 272: int8(-int32(3)), + 273: int8(-int32(3)), + 274: int8(-int32(2)), + 275: int8(-int32(9)), + 276: int8(-int32(8)), + 277: int8(-int32(6)), + 278: int8(-int32(3)), + 279: int8(-int32(4)), + 280: int8(-int32(6)), 281: int8(-int32(1)), - 282: int8(-int32(4)), - 283: int8(-int32(6)), - 284: int8(-int32(3)), - 286: int8(-int32(2)), - 287: int8(-int32(1)), - 288: int8(-int32(3)), + 282: int8(-int32(1)), + 283: int8(-int32(1)), + 284: int8(-int32(4)), + 285: int8(-int32(6)), + 286: int8(-int32(3)), + 288: int8(-int32(2)), 289: int8(-int32(1)), 290: int8(-int32(3)), - 291: int8(-int32(6)), - 292: int8(-int32(7)), + 291: int8(-int32(1)), + 292: int8(-int32(3)), 293: int8(-int32(6)), - 294: int8(-int32(1)), - 295: int8(-int32(8)), + 294: int8(-int32(7)), + 295: int8(-int32(6)), 296: int8(-int32(1)), - 297: int8(-int32(4)), - 298: int8(-int32(8)), - 300: int8(-int32(1)), - 301: int8(-int32(3)), + 297: int8(-int32(8)), + 298: int8(-int32(1)), + 299: int8(-int32(4)), + 300: int8(-int32(8)), 302: int8(-int32(1)), - 303: int8(-int32(2)), - 304: int8(-int32(3)), - 305: int8(-int32(1)), - 306: int8(-int32(2)), - 307: int8(-int32(3)), - 308: int8(-int32(6)), - 309: int8(-int32(1)), - 310: int8(-int32(3)), - 311: int8(-int32(3)), - 312: int8(-int32(5)), - 313: int8(-int32(5)), - 314: int8(-int32(6)), - 315: int8(-int32(4)), + 303: int8(-int32(3)), + 304: int8(-int32(1)), + 305: int8(-int32(2)), + 306: int8(-int32(3)), + 307: int8(-int32(1)), + 308: int8(-int32(2)), + 309: int8(-int32(3)), + 310: int8(-int32(6)), + 311: int8(-int32(1)), + 312: int8(-int32(1)), + 313: int8(-int32(3)), + 314: int8(-int32(3)), + 315: int8(-int32(5)), 316: int8(-int32(5)), - 317: int8(-int32(2)), - 319: int8(-int32(3)), - 320: int8(-int32(6)), - 321: int8(-int32(1)), - 322: int8(-int32(1)), - 323: int8(-int32(2)), + 317: int8(-int32(6)), + 318: int8(-int32(4)), + 319: int8(-int32(5)), + 320: int8(-int32(2)), + 322: int8(-int32(3)), + 323: int8(-int32(6)), 324: int8(-int32(1)), - 325: int8(-int32(2)), + 325: int8(-int32(1)), 326: int8(-int32(2)), - 327: int8(-int32(2)), + 327: int8(-int32(1)), + 328: int8(-int32(2)), 329: int8(-int32(2)), 330: int8(-int32(2)), - 331: int8(-int32(2)), - 332: int8(-int32(1)), + 332: int8(-int32(2)), 333: int8(-int32(2)), 334: int8(-int32(2)), 335: int8(-int32(1)), - 336: int8(-int32(1)), - 337: int8(-int32(4)), - 338: int8(-int32(2)), - 339: int8(-int32(5)), - 340: int8(-int32(1)), + 336: int8(-int32(2)), + 337: int8(-int32(2)), + 338: int8(-int32(1)), + 339: int8(-int32(1)), + 340: int8(-int32(4)), 341: int8(-int32(2)), - 342: int8(-int32(1)), + 342: int8(-int32(5)), 343: int8(-int32(1)), - 344: int8(-int32(2)), - 345: int8(-int32(3)), + 344: int8(-int32(1)), + 345: int8(-int32(2)), + 346: int8(-int32(1)), 347: int8(-int32(1)), 348: int8(-int32(2)), - 349: int8(-int32(1)), - 351: int8(-int32(2)), - 352: int8(-int32(1)), - 353: int8(-int32(4)), - 354: int8(-int32(2)), - 355: int8(-int32(1)), + 349: int8(-int32(3)), + 351: int8(-int32(1)), + 352: int8(-int32(2)), + 353: int8(-int32(1)), + 355: int8(-int32(2)), 356: int8(-int32(1)), - 357: int8(-int32(1)), - 358: int8(-int32(1)), + 357: int8(-int32(4)), + 358: int8(-int32(2)), 359: int8(-int32(1)), 360: int8(-int32(1)), - 361: int8(-int32(2)), - 363: int8(-int32(2)), - 364: int8(-int32(4)), + 361: int8(-int32(1)), + 362: int8(-int32(1)), + 363: int8(-int32(1)), + 364: int8(-int32(1)), 365: int8(-int32(2)), - 366: int8(-int32(2)), - 367: int8(-int32(3)), - 368: int8(-int32(1)), - 370: int8(-int32(1)), - 371: int8(-int32(1)), + 367: int8(-int32(2)), + 368: int8(-int32(4)), + 369: int8(-int32(2)), + 370: int8(-int32(2)), + 371: int8(-int32(3)), 372: int8(-int32(1)), - 373: int8(-int32(1)), - 374: int8(-int32(2)), + 374: int8(-int32(1)), 375: int8(-int32(1)), 376: int8(-int32(1)), - 378: int8(-int32(1)), + 377: int8(-int32(1)), + 378: int8(-int32(2)), 379: int8(-int32(1)), 380: int8(-int32(1)), - 381: int8(-int32(1)), 382: int8(-int32(1)), 383: int8(-int32(1)), 384: int8(-int32(1)), 385: int8(-int32(1)), 386: int8(-int32(1)), 387: int8(-int32(1)), - 389: int8(-int32(3)), + 388: int8(-int32(1)), + 389: int8(-int32(1)), 390: int8(-int32(1)), - 392: int8(-int32(1)), - 395: int8(-int32(1)), + 391: int8(-int32(1)), + 393: int8(-int32(3)), + 394: int8(-int32(1)), 396: int8(-int32(1)), - 397: int8(-int32(3)), - 398: int8(-int32(2)), - 400: int8(-int32(4)), - 401: int8(-int32(2)), - 403: int8(-int32(1)), - 404: int8(-int32(1)), + 399: int8(-int32(1)), + 400: int8(-int32(1)), + 401: int8(-int32(3)), + 402: int8(-int32(2)), + 404: int8(-int32(4)), + 405: int8(-int32(2)), + 407: int8(-int32(1)), + 408: int8(-int32(1)), } // C documentation @@ -159399,18 +161012,19 @@ var _yyRuleInfoNRhs = [405]int8{ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int32, yyLookaheadToken TToken, pParse uintptr) (r uint16) { bp := tls.Alloc(144) defer tls.Free(144) - var bNot, bNot1, nExpr, yygoto, yysize, v344 int32 + var bNot, bNot1, nExpr, yygoto, yysize int32 var n Tu32 - var p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v343, v345, v346, v347, v348 uintptr + var op Tu8 + var p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v347, v348, v349, v350, v351 uintptr var yyact uint16 - var v349 TToken + var v352 TToken var _ /* all at bp+104 */ TToken var _ /* as at bp+72 */ TToken var _ /* dest at bp+16 */ TSelectDest var _ /* t at bp+88 */ TToken var _ /* x at bp+56 */ TToken var _ /* yylhsminor at bp+0 */ TYYMINORTYPE - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v343, v344, v345, v346, v347, v348, v349 /* Amount to pop the stack */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, op, p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v347, v348, v349, v350, v351, v352 /* Amount to pop the stack */ _ = yyLookahead _ = yyLookaheadToken yymsp = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos @@ -159431,7 +161045,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _7 case uint32(7): goto _8 - case uint32(321): + case uint32(324): goto _9 case uint32(9): goto _10 @@ -159459,9 +161073,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _21 case uint32(81): goto _22 - case uint32(98): + case uint32(100): goto _23 - case uint32(244): + case uint32(246): goto _24 case uint32(16): goto _25 @@ -159485,7 +161099,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _34 case uint32(26): goto _35 - case uint32(104): + case uint32(106): goto _36 case uint32(27): goto _37 @@ -159559,17 +161173,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _71 case uint32(61): goto _72 - case uint32(171): + case uint32(173): goto _73 case uint32(80): goto _74 case uint32(63): goto _75 - case uint32(217): + case uint32(219): goto _76 - case uint32(220): + case uint32(222): goto _77 - case uint32(245): + case uint32(247): goto _78 case uint32(64): goto _79 @@ -159591,7 +161205,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _87 case uint32(77): goto _88 - case uint32(172): + case uint32(174): goto _89 case uint32(78): goto _90 @@ -159625,47 +161239,47 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _104 case uint32(95): goto _105 - case uint32(96): - goto _106 case uint32(97): + goto _106 + case uint32(96): goto _107 - case uint32(132): + case uint32(98): goto _108 case uint32(99): goto _109 - case uint32(142): + case uint32(134): goto _110 - case uint32(232): + case uint32(101): goto _111 - case uint32(235): + case uint32(144): goto _112 - case uint32(240): + case uint32(234): goto _113 - case uint32(100): + case uint32(237): goto _114 - case uint32(101): + case uint32(242): goto _115 case uint32(102): goto _116 - case uint32(115): - goto _117 case uint32(103): + goto _117 + case uint32(104): goto _118 - case uint32(256): + case uint32(117): goto _119 - case uint32(257): + case uint32(105): goto _120 - case uint32(108): + case uint32(258): goto _121 - case uint32(105): + case uint32(259): goto _122 - case uint32(106): + case uint32(110): goto _123 case uint32(107): goto _124 - case uint32(109): + case uint32(108): goto _125 - case uint32(110): + case uint32(109): goto _126 case uint32(111): goto _127 @@ -159673,13 +161287,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _128 case uint32(113): goto _129 - case uint32(129): - goto _130 case uint32(114): + goto _130 + case uint32(115): goto _131 - case uint32(116): + case uint32(131): goto _132 - case uint32(117): + case uint32(116): goto _133 case uint32(118): goto _134 @@ -159703,15 +161317,15 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _143 case uint32(128): goto _144 - case uint32(130): + case uint32(129): goto _145 - case uint32(131): + case uint32(130): goto _146 - case uint32(143): + case uint32(132): goto _147 case uint32(133): goto _148 - case uint32(134): + case uint32(145): goto _149 case uint32(135): goto _150 @@ -159719,49 +161333,49 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _151 case uint32(137): goto _152 - case uint32(141): - goto _153 case uint32(138): - goto _154 + goto _153 case uint32(139): + goto _154 + case uint32(143): goto _155 case uint32(140): goto _156 - case uint32(146): + case uint32(141): goto _157 - case uint32(144): + case uint32(142): goto _158 - case uint32(151): + case uint32(148): goto _159 - case uint32(153): + case uint32(146): goto _160 - case uint32(230): + case uint32(153): goto _161 - case uint32(231): + case uint32(155): goto _162 - case uint32(250): + case uint32(232): goto _163 - case uint32(152): + case uint32(233): goto _164 - case uint32(145): + case uint32(252): goto _165 case uint32(154): goto _166 - case uint32(229): + case uint32(147): goto _167 - case uint32(249): + case uint32(156): goto _168 - case uint32(147): + case uint32(231): goto _169 - case uint32(148): + case uint32(251): goto _170 case uint32(149): goto _171 case uint32(150): goto _172 - case uint32(155): + case uint32(151): goto _173 - case uint32(156): + case uint32(152): goto _174 case uint32(157): goto _175 @@ -159791,9 +161405,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _187 case uint32(170): goto _188 - case uint32(173): + case uint32(171): goto _189 - case uint32(174): + case uint32(172): goto _190 case uint32(175): goto _191 @@ -159807,13 +161421,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _195 case uint32(180): goto _196 - case uint32(182): - goto _197 case uint32(181): + goto _197 + case uint32(182): goto _198 - case uint32(183): - goto _199 case uint32(184): + goto _199 + case uint32(183): goto _200 case uint32(185): goto _201 @@ -159837,13 +161451,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _210 case uint32(195): goto _211 - case uint32(197): - goto _212 case uint32(196): + goto _212 + case uint32(197): goto _213 - case uint32(198): - goto _214 case uint32(199): + goto _214 + case uint32(198): goto _215 case uint32(200): goto _216 @@ -159869,23 +161483,23 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _226 case uint32(211): goto _227 - case uint32(213): - goto _228 case uint32(212): + goto _228 + case uint32(213): goto _229 - case uint32(214): - goto _230 case uint32(215): + goto _230 + case uint32(214): goto _231 - case uint32(219): - goto _232 case uint32(216): + goto _232 + case uint32(217): goto _233 - case uint32(218): - goto _234 case uint32(221): + goto _234 + case uint32(218): goto _235 - case uint32(222): + case uint32(220): goto _236 case uint32(223): goto _237 @@ -159899,35 +161513,35 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _241 case uint32(228): goto _242 - case uint32(233): + case uint32(229): goto _243 - case uint32(234): + case uint32(230): goto _244 - case uint32(241): + case uint32(235): goto _245 case uint32(236): goto _246 - case uint32(237): + case uint32(243): goto _247 - case uint32(280): - goto _248 case uint32(238): - goto _249 + goto _248 case uint32(239): + goto _249 + case uint32(282): goto _250 - case uint32(242): + case uint32(240): goto _251 - case uint32(243): + case uint32(241): goto _252 - case uint32(246): + case uint32(244): goto _253 - case uint32(247): + case uint32(245): goto _254 case uint32(248): goto _255 - case uint32(251): + case uint32(249): goto _256 - case uint32(252): + case uint32(250): goto _257 case uint32(253): goto _258 @@ -159935,9 +161549,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _259 case uint32(255): goto _260 - case uint32(258): + case uint32(256): goto _261 - case uint32(259): + case uint32(257): goto _262 case uint32(260): goto _263 @@ -159945,21 +161559,21 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _264 case uint32(262): goto _265 - case uint32(264): - goto _266 case uint32(263): + goto _266 + case uint32(264): goto _267 - case uint32(265): + case uint32(266): goto _268 - case uint32(285): + case uint32(265): goto _269 - case uint32(266): + case uint32(267): goto _270 - case uint32(286): + case uint32(287): goto _271 - case uint32(267): - goto _272 case uint32(268): + goto _272 + case uint32(288): goto _273 case uint32(269): goto _274 @@ -159983,17 +161597,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _283 case uint32(279): goto _284 - case uint32(281): + case uint32(280): goto _285 - case uint32(282): + case uint32(281): goto _286 case uint32(283): goto _287 case uint32(284): goto _288 - case uint32(287): + case uint32(285): goto _289 - case uint32(288): + case uint32(286): goto _290 case uint32(289): goto _291 @@ -160017,19 +161631,19 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _300 case uint32(299): goto _301 - case uint32(301): - goto _302 case uint32(300): + goto _302 + case uint32(301): goto _303 - case uint32(302): + case uint32(303): goto _304 - case uint32(304): + case uint32(302): goto _305 - case uint32(303): + case uint32(304): goto _306 - case uint32(305): - goto _307 case uint32(306): + goto _307 + case uint32(305): goto _308 case uint32(307): goto _309 @@ -160059,31 +161673,31 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _321 case uint32(320): goto _322 - case uint32(324): + case uint32(321): goto _323 case uint32(322): goto _324 - case uint32(325): - goto _325 case uint32(323): - goto _326 + goto _325 case uint32(327): + goto _326 + case uint32(325): goto _327 - case uint32(326): - goto _328 case uint32(328): + goto _328 + case uint32(326): goto _329 - case uint32(329): + case uint32(330): goto _330 - case uint32(331): + case uint32(329): goto _331 - case uint32(330): + case uint32(331): goto _332 case uint32(332): goto _333 - case uint32(333): - goto _334 case uint32(334): + goto _334 + case uint32(333): goto _335 case uint32(335): goto _336 @@ -160095,34 +161709,42 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _339 case uint32(339): goto _340 - default: + case uint32(340): goto _341 + case uint32(341): + goto _342 + case uint32(342): + goto _343 + case uint32(343): + goto _344 + default: + goto _345 } - goto _342 + goto _346 _1: ; /* explain ::= EXPLAIN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(1) } - goto _342 + goto _346 _2: ; /* explain ::= EXPLAIN QUERY PLAN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(2) } - goto _342 + goto _346 _3: ; /* cmdx ::= cmd */ _sqlite3FinishCoding(tls, pParse) - goto _342 + goto _346 _4: ; /* cmd ::= BEGIN transtype trans_opt */ _sqlite3BeginTransaction(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _5: ; /* transtype ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_DEFERRED) - goto _342 + goto _346 _7: ; /* transtype ::= DEFERRED */ _6: @@ -160132,33 +161754,33 @@ _8: _9: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 + goto _346 _11: ; /* cmd ::= COMMIT|END trans_opt */ _10: ; _sqlite3EndTransaction(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor)) - goto _342 + goto _346 _12: ; /* cmd ::= SAVEPOINT nm */ _sqlite3Savepoint(tls, pParse, SAVEPOINT_BEGIN, yymsp+8) - goto _342 + goto _346 _13: ; /* cmd ::= RELEASE savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_RELEASE), yymsp+8) - goto _342 + goto _346 _14: ; /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_ROLLBACK), yymsp+8) - goto _342 + goto _346 _15: ; /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ _sqlite3StartTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), 0, 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _16: ; /* createkw ::= CREATE */ _disableLookaside(tls, pParse) - goto _342 + goto _346 _18: ; /* ifnotexists ::= */ _17: @@ -160176,56 +161798,56 @@ _23: _24: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = 0 - goto _342 + goto _346 _25: ; /* ifnotexists ::= IF NOT EXISTS */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(1) - goto _342 + goto _346 _26: ; /* temp ::= TEMP */ *(*int32)(unsafe.Pointer(yymsp + 8)) = libc.BoolInt32(int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0) - goto _342 + goto _346 _27: ; /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ _sqlite3EndTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*Tu32)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 + goto _346 _28: ; /* create_table_args ::= AS select */ _sqlite3EndTable(tls, pParse, uintptr(0), uintptr(0), uint32(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _29: ; /* table_option_set ::= */ *(*Tu32)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint32(0) - goto _342 + goto _346 _30: ; /* table_option_set ::= table_option_set COMMA table_option */ *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) | *(*Tu32)(unsafe.Pointer(yymsp + 8)) *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _31: ; /* table_option ::= WITHOUT nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16703, int32(5)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16790, int32(5)) == 0 { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) } else { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23367, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23490, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } - goto _342 + goto _346 _32: ; /* table_option ::= nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16616, int32(6)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16703, int32(6)) == 0 { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(TF_Strict) } else { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23367, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23490, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } *(*Tu32)(unsafe.Pointer(yymsp + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _33: ; /* columnname ::= nm typetoken */ _sqlite3AddColumn(tls, pParse, *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*TToken)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _35: ; /* typetoken ::= */ _34: @@ -160234,52 +161856,52 @@ _36: ; *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 + goto _346 _37: ; /* typetoken ::= typename LP signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) - goto _342 + goto _346 _38: ; /* typetoken ::= typename LP signed COMMA signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))))) - goto _342 + goto _346 _39: ; /* typename ::= typename ID|STRING */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) + uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) - goto _342 + goto _346 _40: ; /* scanpt ::= */ _ = libc.Int32FromInt32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken.Fz - goto _342 + goto _346 _41: ; /* scantok ::= */ _ = libc.Int32FromInt32(0) *(*TToken)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken - goto _342 + goto _346 _43: ; /* ccons ::= CONSTRAINT nm */ _42: ; (*TParse)(unsafe.Pointer(pParse)).FconstraintName = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _44: ; /* ccons ::= DEFAULT scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _45: ; /* ccons ::= DEFAULT LP expr RP */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))+uintptr(1), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _46: ; /* ccons ::= DEFAULT PLUS scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _47: ; /* ccons ::= DEFAULT MINUS scantok term */ p = _sqlite3PExpr(tls, pParse, int32(TK_UMINUS), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) _sqlite3AddDefaultValue(tls, pParse, p, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _48: ; /* ccons ::= DEFAULT scantok ID|INDEXED */ p1 = _tokenExpr(tls, pParse, int32(TK_STRING), *(*TToken)(unsafe.Pointer(yymsp + 8))) @@ -160287,99 +161909,99 @@ _48: _sqlite3ExprIdToTrueFalse(tls, p1) } _sqlite3AddDefaultValue(tls, pParse, p1, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - goto _342 + goto _346 _49: ; /* ccons ::= NOT NULL onconf */ _sqlite3AddNotNull(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _50: ; /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ _sqlite3AddPrimaryKey(tls, pParse, uintptr(0), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _51: ; /* ccons ::= UNIQUE onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _52: ; /* ccons ::= CHECK LP expr RP */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _53: ; /* ccons ::= REFERENCES nm eidlist_opt refargs */ _sqlite3CreateForeignKey(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _54: ; /* ccons ::= defer_subclause */ _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _55: ; /* ccons ::= COLLATE ID|STRING */ _sqlite3AddCollateType(tls, pParse, yymsp+8) - goto _342 + goto _346 _56: ; /* generated ::= LP expr RP */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 + goto _346 _57: ; /* generated ::= LP expr RP ID */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 + goto _346 _58: ; /* autoinc ::= AUTOINCR */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(1) - goto _342 + goto _346 _59: ; /* refargs ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = libc.Int32FromInt32(OE_None) * libc.Int32FromInt32(0x0101) /* EV: R-19803-45884 */ - goto _342 + goto _346 _60: ; /* refargs ::= refargs refarg */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) & ^*(*int32)(unsafe.Pointer(yymsp + 8 + 4)) | *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _61: ; /* refarg ::= MATCH nm */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _62: ; /* refarg ::= ON INSERT refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _63: ; /* refarg ::= ON DELETE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x0000ff) - goto _342 + goto _346 _64: ; /* refarg ::= ON UPDATE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) << int32(8) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x00ff00) - goto _342 + goto _346 _65: ; /* refact ::= SET NULL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetNull) /* EV: R-33326-45252 */ - goto _342 + goto _346 _66: ; /* refact ::= SET DEFAULT */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetDflt) /* EV: R-33326-45252 */ - goto _342 + goto _346 _67: ; /* refact ::= CASCADE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Cascade) /* EV: R-33326-45252 */ - goto _342 + goto _346 _68: ; /* refact ::= RESTRICT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Restrict) /* EV: R-33326-45252 */ - goto _342 + goto _346 _69: ; /* refact ::= NO ACTION */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = OE_None /* EV: R-33326-45252 */ - goto _342 + goto _346 _70: ; /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 - goto _342 + goto _346 _72: ; /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ _71: @@ -160387,7 +162009,7 @@ _71: _73: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _75: ; /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ _74: @@ -160399,64 +162021,64 @@ _77: _78: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(1) - goto _342 + goto _346 _79: ; /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 - goto _342 + goto _346 _80: ; /* tconscomma ::= COMMA */ (*TParse)(unsafe.Pointer(pParse)).FconstraintName.Fn = uint32(0) - goto _342 + goto _346 _81: ; /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ _sqlite3AddPrimaryKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), 0) - goto _342 + goto _346 _82: ; /* tcons ::= UNIQUE LP sortlist RP onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _83: ; /* tcons ::= CHECK LP expr RP onconf */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _84: ; /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ _sqlite3CreateForeignKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _86: ; /* onconf ::= */ _85: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(OE_Default) - goto _342 + goto _346 _87: ; /* onconf ::= ON CONFLICT resolvetype */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _88: ; /* resolvetype ::= IGNORE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Ignore) - goto _342 + goto _346 _90: ; /* resolvetype ::= REPLACE */ _89: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Replace) - goto _342 + goto _346 _91: ; /* cmd ::= DROP TABLE ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _92: ; /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ _sqlite3CreateView(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) - goto _342 + goto _346 _93: ; /* cmd ::= DROP VIEW ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), int32(1), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _94: ; /* cmd ::= select */ *(*TSelectDest)(unsafe.Pointer(bp + 16)) = TSelectDest{ @@ -160464,22 +162086,22 @@ _94: } _sqlite3Select(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), bp+16) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _95: ; /* select ::= WITH wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _96: ; /* select ::= WITH RECURSIVE wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _97: ; /* select ::= selectnowith */ p2 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) if p2 != 0 { _parserDoubleLinkSelect(tls, pParse, p2) } - goto _342 + goto _346 _98: ; /* selectnowith ::= selectnowith multiselect_op oneselect */ pRhs = *(*uintptr)(unsafe.Pointer(yymsp + 8)) @@ -160504,21 +162126,21 @@ _98: _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pLhs) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = pRhs - goto _342 + goto _346 _100: ; /* multiselect_op ::= UNION */ _99: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-OP*/ - goto _342 + goto _346 _101: ; /* multiselect_op ::= UNION ALL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_ALL) - goto _342 + goto _346 _102: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _103: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(9))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -160527,116 +162149,111 @@ _103: } else { _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) } - goto _342 + goto _346 _104: ; /* values ::= VALUES LP nexprlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) - goto _342 + goto _346 _105: - ; /* values ::= values COMMA LP nexprlist RP */ - pLeft = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) - pRight = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(libc.Int32FromInt32(SF_Values)|libc.Int32FromInt32(SF_MultiValue)), uintptr(0)) - if pLeft != 0 { - *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) - } - if pRight != 0 { - (*TSelect)(unsafe.Pointer(pRight)).Fop = uint8(TK_ALL) - (*TSelect)(unsafe.Pointer(pRight)).FpPrior = pLeft - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pRight - } else { - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pLeft - } - goto _342 + ; /* oneselect ::= mvalues */ + _sqlite3MultiValuesEnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_107: + ; /* mvalues ::= values COMMA LP nexprlist RP */ _106: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3MultiValues(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_108: ; /* distinct ::= DISTINCT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_Distinct) - goto _342 -_107: + goto _346 +_109: ; /* distinct ::= ALL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_All) - goto _342 -_109: + goto _346 +_111: ; /* sclp ::= */ -_108: - ; _110: ; -_111: - ; _112: ; _113: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 _114: + ; +_115: + ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 +_116: ; /* selcollist ::= sclp scanpt expr scanpt as */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) > uint32(0) { _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+8, int32(1)) } _sqlite3ExprListSetSpan(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_115: + goto _346 +_117: ; /* selcollist ::= sclp scanpt STAR */ p3 = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_ASTERISK), uintptr(0)) _sqlite3ExprSetErrorOffset(tls, p3, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), p3) - goto _342 -_116: + goto _346 +_118: ; /* selcollist ::= sclp scanpt nm DOT STAR */ - pRight1 = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) - _sqlite3ExprSetErrorOffset(tls, pRight1, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) - pLeft1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft1, pRight1) + pRight = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) + _sqlite3ExprSetErrorOffset(tls, pRight, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) + pLeft = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) + pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft, pRight) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pDot) - goto _342 -_118: + goto _346 +_120: ; /* as ::= AS nm */ -_117: - ; _119: ; -_120: +_121: ; - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 _122: + ; + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) + goto _346 +_124: ; /* from ::= */ -_121: +_123: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_123: + goto _346 +_125: ; /* from ::= FROM seltablist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) _sqlite3SrcListShiftJoinType(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_124: + goto _346 +_126: ; /* stl_prefix ::= seltablist joinop */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 && (*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc > 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8 + uintptr((*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc-int32(1))*104))).Ffg.Fjointype = uint8(*(*int32)(unsafe.Pointer(yymsp + 8))) } - goto _342 -_125: + goto _346 +_127: ; /* seltablist ::= stl_prefix nm dbnm as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) - goto _342 -_126: + goto _346 +_128: ; /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_127: + goto _346 +_129: ; /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListFuncArgs(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) - goto _342 -_128: + goto _346 +_130: ; /* seltablist ::= stl_prefix LP select RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_129: + goto _346 +_131: ; /* seltablist ::= stl_prefix LP seltablist RP as on_using */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) == uintptr(0) && *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) == uint32(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8)) == uintptr(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) @@ -160658,9 +162275,9 @@ _129: libc.SetBitFieldPtr16Uint32(pOld+60+4, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pNew+60+4, libc.Uint32FromInt32(1), 2, 0x4) } - v343 = libc.UintptrFromInt32(0) - (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v343 - (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v343 + v347 = libc.UintptrFromInt32(0) + (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v347 + (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v347 (*TSrcItem)(unsafe.Pointer(pOld)).FpSelect = uintptr(0) } _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) @@ -160670,189 +162287,189 @@ _129: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, pSubquery, yymsp+8) } } - goto _342 -_131: + goto _346 +_133: ; /* dbnm ::= */ -_130: +_132: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) - goto _342 -_132: + goto _346 +_134: ; /* fullname ::= nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_133: + goto _346 +_135: ; /* fullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_134: + goto _346 +_136: ; /* xfullname ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) /*A-overwrites-X*/ - goto _342 -_135: + goto _346 +_137: ; /* xfullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) /*A-overwrites-X*/ - goto _342 -_136: + goto _346 +_138: ; /* xfullname ::= nm DOT nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_137: + goto _346 +_139: ; /* xfullname ::= nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0)) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_138: + goto _346 +_140: ; /* joinop ::= COMMA|JOIN */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(JT_INNER) - goto _342 -_139: + goto _346 +_141: ; /* joinop ::= JOIN_KW JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), uintptr(0)) /*X-overwrites-A*/ - goto _342 -_140: + goto _346 +_142: ; /* joinop ::= JOIN_KW nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0)) /*X-overwrites-A*/ - goto _342 -_141: + goto _346 +_143: ; /* joinop ::= JOIN_KW nm nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) /*X-overwrites-A*/ - goto _342 -_142: + goto _346 +_144: ; /* on_using ::= ON expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uintptr(0) - goto _342 -_143: + goto _346 +_145: ; /* on_using ::= USING LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_144: + goto _346 +_146: ; /* on_using ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uintptr(0) - goto _342 -_145: + goto _346 +_147: ; /* indexed_by ::= INDEXED BY nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 -_146: + goto _346 +_148: ; /* indexed_by ::= NOT INDEXED */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(1) - goto _342 -_148: + goto _346 +_150: ; /* orderby_opt ::= ORDER BY sortlist */ -_147: +_149: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_149: + goto _346 +_151: ; /* sortlist ::= sortlist COMMA expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_150: + goto _346 +_152: ; /* sortlist ::= expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) /*A-overwrites-Y*/ _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_151: + goto _346 +_153: ; /* sortorder ::= ASC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = SQLITE_SO_ASC - goto _342 -_152: + goto _346 +_154: ; /* sortorder ::= DESC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_154: + goto _346 +_156: ; /* sortorder ::= */ -_153: +_155: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = -int32(1) - goto _342 -_155: + goto _346 +_157: ; /* nulls ::= NULLS FIRST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = SQLITE_SO_ASC - goto _342 -_156: + goto _346 +_158: ; /* nulls ::= NULLS LAST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_158: + goto _346 +_160: ; /* having_opt ::= */ -_157: - ; _159: ; -_160: - ; _161: ; _162: ; _163: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_165: - ; /* having_opt ::= HAVING expr */ _164: ; -_166: +_165: ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 _167: + ; /* having_opt ::= HAVING expr */ +_166: ; _168: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 _169: + ; +_170: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + goto _346 +_171: ; /* limit_opt ::= LIMIT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 -_170: + goto _346 +_172: ; /* limit_opt ::= LIMIT expr OFFSET expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_171: + goto _346 +_173: ; /* limit_opt ::= LIMIT expr COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 -_172: + goto _346 +_174: ; /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) _sqlite3DeleteFrom(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0)) - goto _342 -_173: + goto _346 +_175: ; /* where_opt_ret ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) - goto _342 -_174: + goto _346 +_176: ; /* where_opt_ret ::= WHERE expr RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) - goto _342 -_175: + goto _346 +_177: ; /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) - _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23394) + _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23517) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { pFromClause = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) if (*TSrcList)(unsafe.Pointer(pFromClause)).FnSrc > int32(1) { @@ -160864,95 +162481,95 @@ _175: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendList(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), pFromClause) } _sqlite3Update(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_176: + goto _346 +_178: ; /* setlist ::= setlist COMMA nm EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) - goto _342 -_177: + goto _346 +_179: ; /* setlist ::= setlist COMMA LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_178: + goto _346 +_180: ; /* setlist ::= nm EQ expr */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_179: + goto _346 +_181: ; /* setlist ::= LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_180: + goto _346 +_182: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_181: + goto _346 +_183: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0)) - goto _342 -_182: + goto _346 +_184: ; /* upsert ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_183: + goto _346 +_185: ; /* upsert ::= RETURNING selcollist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_184: + goto _346 +_186: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(11))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_185: + goto _346 +_187: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_186: + goto _346 +_188: ; /* upsert ::= ON CONFLICT DO NOTHING returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_187: + goto _346 +_189: ; /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_188: + goto _346 +_190: ; /* returning ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_189: + goto _346 +_191: ; /* idlist_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_190: + goto _346 +_192: ; /* idlist_opt ::= LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_191: + goto _346 +_193: ; /* idlist ::= idlist COMMA nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3IdListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 -_192: + goto _346 +_194: ; /* idlist ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3IdListAppend(tls, pParse, uintptr(0), yymsp+8) /*A-overwrites-Y*/ - goto _342 -_193: + goto _346 +_195: ; /* expr ::= LP expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_194: + goto _346 +_196: ; /* expr ::= ID|INDEXED|JOIN_KW */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_195: + goto _346 +_197: ; /* expr ::= nm DOT nm */ temp1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) temp2 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp1, temp2) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_196: + goto _346 +_198: ; /* expr ::= nm DOT nm DOT nm */ temp11 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) temp21 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) @@ -160963,22 +162580,22 @@ _196: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp11, temp4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_198: + goto _346 +_200: ; /* term ::= NULL|FLOAT|BLOB */ -_197: +_199: ; *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_199: + goto _346 +_201: ; /* term ::= INTEGER */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), yymsp+8, int32(1)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 52)) = int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8))) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_200: + goto _346 +_202: ; /* expr ::= VARIABLE */ if !(int32(*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8))))) == int32('#') && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)) + 1))])&int32(0x04) != 0) { n = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) @@ -160991,7 +162608,7 @@ _200: *(*TToken)(unsafe.Pointer(bp + 88)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) /*A-overwrites-X*/ _ = libc.Int32FromInt32(0) if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23403, libc.VaList(bp+128, bp+88)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23526, libc.VaList(bp+128, bp+88)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = uintptr(0) } else { *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_REGISTER), uintptr(0), uintptr(0)) @@ -161000,57 +162617,57 @@ _200: } } } - goto _342 -_201: + goto _346 +_203: ; /* expr ::= expr COLLATE ID|STRING */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAddCollateToken(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8, int32(1)) - goto _342 -_202: + goto _346 +_204: ; /* expr ::= CAST LP expr AS typetoken RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_CAST), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) _sqlite3ExprAttachSubtrees(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) - goto _342 -_203: + goto _346 +_205: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_204: + goto _346 +_206: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_205: + goto _346 +_207: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_206: + goto _346 +_208: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_207: + goto _346 +_209: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_208: + goto _346 +_210: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, 0) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_209: + goto _346 +_211: ; /* term ::= CTIME_KW */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_210: + goto _346 +_212: ; /* expr ::= LP nexprlist COMMA expr RP */ pList = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_VECTOR), uintptr(0), uintptr(0)) @@ -161062,33 +162679,33 @@ _210: } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) } - goto _342 -_211: + goto _346 +_213: ; /* expr ::= expr AND expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_213: + goto _346 +_215: ; /* expr ::= expr OR expr */ -_212: - ; _214: ; -_215: - ; _216: ; _217: ; _218: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 _219: + ; +_220: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_221: ; /* likeop ::= NOT LIKE_KW|MATCH */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) |= uint32(0x80000000) /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/ - goto _342 -_220: + goto _346 +_222: ; /* expr ::= expr likeop expr */ bNot = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -161101,8 +162718,8 @@ _220: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_221: + goto _346 +_223: ; /* expr ::= expr likeop expr ESCAPE expr */ bNot1 = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -161116,65 +162733,69 @@ _221: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_222: + goto _346 +_224: ; /* expr ::= expr ISNULL|NOTNULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_223: + goto _346 +_225: ; /* expr ::= expr NOT NULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOTNULL), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uintptr(0)) - goto _342 -_224: + goto _346 +_226: ; /* expr ::= expr IS expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_225: + goto _346 +_227: ; /* expr ::= expr IS NOT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_226: + goto _346 +_228: ; /* expr ::= expr IS NOT DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_227: + goto _346 +_229: ; /* expr ::= expr IS DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_229: + goto _346 +_231: ; /* expr ::= NOT expr */ -_228: +_230: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) /*A-overwrites-B*/ - goto _342 -_230: + goto _346 +_232: ; /* expr ::= PLUS|MINUS expr */ - if int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) == int32(TK_PLUS) { - v344 = int32(TK_UPLUS) + p4 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + op = uint8(int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) + (libc.Int32FromInt32(TK_UPLUS) - libc.Int32FromInt32(TK_PLUS))) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if p4 != 0 && int32((*TExpr)(unsafe.Pointer(p4)).Fop) == int32(TK_UPLUS) { + (*TExpr)(unsafe.Pointer(p4)).Fop = op + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = p4 } else { - v344 = int32(TK_UMINUS) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(op), p4, uintptr(0)) + /*A-overwrites-B*/ } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, v344, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - /*A-overwrites-B*/ - goto _342 -_231: + goto _346 +_233: ; /* expr ::= expr PTR expr */ pList3 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList3 = _sqlite3ExprListAppend(tls, pParse, pList3, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, pList3, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_233: + goto _346 +_235: ; /* between_op ::= BETWEEN */ -_232: +_234: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = 0 - goto _342 -_234: + goto _346 +_236: ; /* expr ::= expr between_op expr AND expr */ pList4 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList4 = _sqlite3ExprListAppend(tls, pParse, pList4, *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -161187,8 +162808,8 @@ _234: if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_235: + goto _346 +_237: ; /* expr ::= expr in_op LP exprlist RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) == uintptr(0) { /* Expressions of the form @@ -161201,17 +162822,17 @@ _235: */ _sqlite3ExprUnmapAndDelete(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { - v345 = __ccgo_ts + 7895 + v348 = __ccgo_ts + 8020 } else { - v345 = __ccgo_ts + 7900 + v348 = __ccgo_ts + 8025 } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v345) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v348) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { _sqlite3ExprIdToTrueFalse(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } } else { pRHS = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr - if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { + if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pParse, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr = uintptr(0) _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) pRHS = _sqlite3PExpr(tls, pParse, int32(TK_UPLUS), pRHS, uintptr(0)) @@ -161245,463 +162866,467 @@ _235: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } } - goto _342 -_236: + goto _346 +_238: ; /* expr ::= LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_SELECT), uintptr(0), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_237: + goto _346 +_239: ; /* expr ::= expr in_op LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_238: + goto _346 +_240: ; /* expr ::= expr in_op nm dbnm paren_exprlist */ pSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) pSelect = _sqlite3SelectNew(tls, pParse, uintptr(0), pSrc, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { if pSelect != 0 { - v346 = pSrc + v349 = pSrc } else { - v346 = uintptr(0) + v349 = uintptr(0) } - _sqlite3SrcListFuncArgs(tls, pParse, v346, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + _sqlite3SrcListFuncArgs(tls, pParse, v349, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pSelect) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_239: + goto _346 +_241: ; /* expr ::= EXISTS LP select RP */ - v347 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v347 - p4 = v347 - _sqlite3PExprAddSelect(tls, pParse, p4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_240: + v350 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v350 + p5 = v350 + _sqlite3PExprAddSelect(tls, pParse, p5, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_242: ; /* expr ::= CASE case_operand case_exprlist case_else END */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_CASE), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { - v348 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + v351 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } else { - v348 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + v351 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) } - *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v348 + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v351 _sqlite3ExprSetHeightAndFlags(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } - goto _342 -_241: + goto _346 +_243: ; /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_242: + goto _346 +_244: ; /* case_exprlist ::= WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_243: + goto _346 +_245: ; /* nexprlist ::= nexprlist COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_244: + goto _346 +_246: ; /* nexprlist ::= expr */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_246: + goto _346 +_248: ; /* paren_exprlist ::= LP exprlist RP */ -_245: +_247: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_247: + goto _346 +_249: ; /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ _sqlite3CreateIndex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, uintptr(0)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(11))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8)), SQLITE_SO_ASC, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), uint8(SQLITE_IDXTYPE_APPDEF)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && (*TParse)(unsafe.Pointer(pParse)).FpNewIndex != 0 { _sqlite3RenameTokenMap(tls, pParse, (*TIndex)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpNewIndex)).FzName, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) } - goto _342 -_249: + goto _346 +_251: ; /* uniqueflag ::= UNIQUE */ -_248: +_250: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Abort) - goto _342 -_250: + goto _346 +_252: ; /* uniqueflag ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = OE_None - goto _342 -_251: + goto _346 +_253: ; /* eidlist ::= eidlist COMMA nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_252: + goto _346 +_254: ; /* eidlist ::= nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_253: + goto _346 +_255: ; /* cmd ::= DROP INDEX ifexists fullname */ _sqlite3DropIndex(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_254: + goto _346 +_256: ; /* cmd ::= VACUUM vinto */ _sqlite3Vacuum(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_255: + goto _346 +_257: ; /* cmd ::= VACUUM nm vinto */ _sqlite3Vacuum(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_256: + goto _346 +_258: ; /* cmd ::= PRAGMA nm dbnm */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, uintptr(0), 0) - goto _342 -_257: + goto _346 +_259: ; /* cmd ::= PRAGMA nm dbnm EQ nmnum */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, 0) - goto _342 -_258: + goto _346 +_260: ; /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) - goto _342 -_259: + goto _346 +_261: ; /* cmd ::= PRAGMA nm dbnm EQ minus_num */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, int32(1)) - goto _342 -_260: + goto _346 +_262: ; /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) - goto _342 -_261: + goto _346 +_263: ; /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ (*(*TToken)(unsafe.Pointer(bp + 104))).Fz = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) (*(*TToken)(unsafe.Pointer(bp + 104))).Fn = uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) + *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) _sqlite3FinishTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), bp+104) - goto _342 -_262: + goto _346 +_264: ; /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ _sqlite3BeginTrigger(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8 + 8)) == uint32(0) { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) } else { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) } - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v349 /*A-overwrites-T*/ - goto _342 -_263: + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v352 /*A-overwrites-T*/ + goto _346 +_265: ; /* trigger_time ::= BEFORE|AFTER */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_264: + goto _346 +_266: ; /* trigger_time ::= INSTEAD OF */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_INSTEAD) - goto _342 -_265: + goto _346 +_267: ; /* trigger_time ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_BEFORE) - goto _342 -_267: + goto _346 +_269: ; /* trigger_event ::= DELETE|INSERT */ -_266: +_268: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) = uintptr(0) - goto _342 -_268: + goto _346 +_270: ; /* trigger_event ::= UPDATE OF idlist */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(TK_UPDATE) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_270: + goto _346 +_272: ; /* when_clause ::= */ -_269: +_271: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_272: + goto _346 +_274: ; /* when_clause ::= WHEN expr */ -_271: +_273: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_273: + goto _346 +_275: ; /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ _ = libc.Int32FromInt32(0) (*TTriggerStep)(unsafe.Pointer((*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast)).FpNext = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_274: + goto _346 +_276: ; /* trigger_cmd_list ::= trigger_cmd SEMI */ _ = libc.Int32FromInt32(0) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_275: + goto _346 +_277: ; /* trnm ::= nm DOT nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23427, 0) - goto _342 -_276: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23550, 0) + goto _346 +_278: ; /* tridxby ::= INDEXED BY nm */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23522, 0) - goto _342 -_277: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23645, 0) + goto _346 +_279: ; /* tridxby ::= NOT INDEXED */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23606, 0) - goto _342 -_278: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23729, 0) + goto _346 +_280: ; /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerUpdateStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_279: + goto _346 +_281: ; /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_280: + goto _346 +_282: ; /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerDeleteStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_281: + goto _346 +_283: ; /* trigger_cmd ::= scanpt select scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_282: + goto _346 +_284: ; /* expr ::= RAISE LP IGNORE RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_RAISE), uintptr(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)))).FaffExpr = uint8(OE_Ignore) } - goto _342 -_283: + goto _346 +_285: ; /* expr ::= RAISE LP raisetype COMMA nm RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_RAISE), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)))).FaffExpr = uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) } - goto _342 -_284: + goto _346 +_286: ; /* raisetype ::= ROLLBACK */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Rollback) - goto _342 -_285: + goto _346 +_287: ; /* raisetype ::= FAIL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Fail) - goto _342 -_286: + goto _346 +_288: ; /* cmd ::= DROP TRIGGER ifexists fullname */ _sqlite3DropTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_287: + goto _346 +_289: ; /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ _sqlite3Attach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_288: + goto _346 +_290: ; /* cmd ::= DETACH database_kw_opt expr */ _sqlite3Detach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_289: + goto _346 +_291: ; /* cmd ::= REINDEX */ _sqlite3Reindex(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_290: + goto _346 +_292: ; /* cmd ::= REINDEX nm dbnm */ _sqlite3Reindex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_291: + goto _346 +_293: ; /* cmd ::= ANALYZE */ _sqlite3Analyze(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_292: + goto _346 +_294: ; /* cmd ::= ANALYZE nm dbnm */ _sqlite3Analyze(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_293: + goto _346 +_295: ; /* cmd ::= ALTER TABLE fullname RENAME TO nm */ _sqlite3AlterRenameTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_294: + goto _346 +_296: ; /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(int32(int64((*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fz)-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) + (*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fn _sqlite3AlterFinishAddColumn(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_295: + goto _346 +_297: ; /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ _sqlite3AlterDropColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_296: + goto _346 +_298: ; /* add_column_fullname ::= fullname */ _disableLookaside(tls, pParse) _sqlite3AlterBeginAddColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_297: + goto _346 +_299: ; /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ _sqlite3AlterRenameColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) - goto _342 -_298: + goto _346 +_300: ; /* cmd ::= create_vtab */ _sqlite3VtabFinishParse(tls, pParse, uintptr(0)) - goto _342 -_299: + goto _346 +_301: ; /* cmd ::= create_vtab LP vtabarglist RP */ _sqlite3VtabFinishParse(tls, pParse, yymsp+8) - goto _342 -_300: + goto _346 +_302: ; /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ _sqlite3VtabBeginParse(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) - goto _342 -_301: + goto _346 +_303: ; /* vtabarg ::= */ _sqlite3VtabArgInit(tls, pParse) - goto _342 -_303: + goto _346 +_305: ; /* vtabargtoken ::= ANY */ -_302: - ; _304: ; - _sqlite3VtabArgExtend(tls, pParse, yymsp+8) - goto _342 _306: + ; + _sqlite3VtabArgExtend(tls, pParse, yymsp+8) + goto _346 +_308: ; /* with ::= WITH wqlist */ -_305: +_307: ; _sqlite3WithPush(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint8(1)) - goto _342 -_307: + goto _346 +_309: ; /* wqas ::= AS */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8(M10d_Any) - goto _342 -_308: + goto _346 +_310: ; /* wqas ::= AS MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8(M10d_Yes) - goto _342 -_309: + goto _346 +_311: ; /* wqas ::= AS NOT MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = uint8(M10d_No) - goto _342 -_310: - ; /* wqitem ::= nm eidlist_opt wqas LP select RP */ + goto _346 +_312: + ; /* wqitem ::= withnm eidlist_opt wqas LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3CteNew(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) /*A-overwrites-X*/ - goto _342 -_311: + goto _346 +_313: + ; /* withnm ::= nm */ + (*TParse)(unsafe.Pointer(pParse)).FbHasWith = uint8(1) + goto _346 +_314: ; /* wqlist ::= wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3WithAdd(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_312: + goto _346 +_315: ; /* wqlist ::= wqlist COMMA wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3WithAdd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_313: + goto _346 +_316: ; /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ _ = libc.Int32FromInt32(0) _sqlite3WindowChain(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpNextWin = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_314: + goto _346 +_317: ; /* windowdefn ::= nm AS LP window RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)))) } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_315: + goto _346 +_318: ; /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_316: + goto _346 +_319: ; /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_317: + goto _346 +_320: ; /* window ::= ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_318: + goto _346 +_321: ; /* window ::= nm ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_319: + goto _346 +_322: ; /* window ::= nm frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_320: + goto _346 +_323: ; /* frame_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = _sqlite3WindowAlloc(tls, pParse, 0, int32(TK_UNBOUNDED), uintptr(0), int32(TK_CURRENT), uintptr(0), uint8(0)) - goto _342 -_321: + goto _346 +_324: ; /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), int32(TK_CURRENT), uintptr(0), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_322: + goto _346 +_325: ; /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_324: + goto _346 +_327: ; /* frame_bound_s ::= frame_bound */ -_323: +_326: ; *(*TFrameBound)(unsafe.Pointer(bp)) = *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_326: + goto _346 +_329: ; /* frame_bound_s ::= UNBOUNDED PRECEDING */ -_325: +_328: ; -_327: +_330: ; (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = uintptr(0) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_328: + goto _346 +_331: ; /* frame_bound ::= expr PRECEDING|FOLLOWING */ (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_329: + goto _346 +_332: ; /* frame_exclude_opt ::= */ *(*Tu8)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint8(0) - goto _342 -_330: + goto _346 +_333: ; /* frame_exclude_opt ::= EXCLUDE frame_exclude */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*Tu8)(unsafe.Pointer(yymsp + 8)) - goto _342 -_332: + goto _346 +_335: ; /* frame_exclude ::= NO OTHERS */ -_331: +_334: ; *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) /*A-overwrites-X*/ - goto _342 -_333: + goto _346 +_336: ; /* frame_exclude ::= GROUP|TIES */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_334: + goto _346 +_337: ; /* window_clause ::= WINDOW windowdefn_list */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_335: + goto _346 +_338: ; /* filter_over ::= filter_clause over_clause */ if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpFilter = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) @@ -161710,13 +163335,13 @@ _335: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_336: + goto _346 +_339: ; /* filter_over ::= over_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_337: + goto _346 +_340: ; /* filter_over ::= filter_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { @@ -161726,24 +163351,30 @@ _337: _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_338: + goto _346 +_341: ; /* over_clause ::= OVER LP window RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) _ = libc.Int32FromInt32(0) - goto _342 -_339: + goto _346 +_342: ; /* over_clause ::= OVER nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) } - goto _342 -_340: + goto _346 +_343: ; /* filter_clause ::= FILTER LP WHERE expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_341: + goto _346 +_344: + ; /* term ::= QNUMBER */ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) + _sqlite3DequoteNumber(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp))))) + *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + goto _346 +_345: ; _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -161760,9 +163391,9 @@ _341: _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) - goto _342 + goto _346 /********** End reduce actions ************************************************/ -_342: +_346: ; _ = libc.Int32FromInt32(0) yygoto = int32(_yyRuleInfoLhs[yyruleno]) @@ -161799,9 +163430,9 @@ func _yy_syntax_error(tls *libc.TLS, yypParser uintptr, yymajor int32, _yyminor /************ Begin %syntax_error code ****************************************/ _ = yymajor /* Silence some compiler warnings */ if *(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp))).Fz)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23403, libc.VaList(bp+24, bp)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23526, libc.VaList(bp+24, bp)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23691, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23814, 0) } /************ End %syntax_error code ******************************************/ /* Suppress warning about unused %extra_argument variable */ @@ -161870,8 +163501,10 @@ func _sqlite3Parser(tls *libc.TLS, yyp uintptr, yymajor int32, yyminor TToken) { ** enough on the stack to push the LHS value */ if int32(_yyRuleInfoNRhs[yyruleno]) == 0 { if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos >= (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - _yyStackOverflow(tls, yypParser) - break + if _yyGrowStack(tls, yypParser) != 0 { + _yyStackOverflow(tls, yypParser) + break + } } } yyact = _yy_reduce(tls, yypParser, yyruleno, yymajor, yyminor, pParse) @@ -164023,9 +165656,9 @@ func _analyzeFilterKeyword(tls *libc.TLS, _z uintptr, lastToken int32) (r int32) // ** Store the token type in *tokenType before returning. // */ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { - var c, delim, i, n, v10, v14, v16, v19, v20, v3, v5, v7, v8 int32 - var v15, v6 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v14, v15, v16, v19, v20, v3, v5, v6, v7, v8 + var c, delim, i, n, v10, v16, v18, v21, v22, v3, v5, v7, v8 int32 + var v17, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v16, v17, v18, v21, v22, v3, v5, v6, v7, v8 switch int32(_aiClass[*(*uint8)(unsafe.Pointer(z))]) { /* Switch on the character-class of the first byte ** of the token. See the comment on the CC_ defines ** above. */ @@ -164221,39 +165854,83 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('X')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + 2))])&int32(0x08) != 0 { i = int32(3) for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { + if !(int32(1) != 0) { break } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } goto _11 _11: ; i++ } - return i - } - i = 0 - for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _12 - _12: - ; - i++ - } - if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { - i++ - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + } else { + i = 0 + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _12 + _12: + ; i++ } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) - } - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { - i += int32(2) - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } i++ + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _13 + _13: + ; + i++ + } + } + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } + i += int32(2) + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _14 + _14: + ; + i++ + } } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) } for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x46) != 0 { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_ILLEGAL) @@ -164264,24 +165941,24 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { i = int32(1) c = int32(*(*uint8)(unsafe.Pointer(z))) for { - if v15 = c != int32(']'); v15 { - v14 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v14 + if v17 = c != int32(']'); v17 { + v16 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v16 } - if !(v15 && v14 != 0) { + if !(v17 && v16 != 0) { break } - goto _13 - _13: + goto _15 + _15: ; i++ } if c == int32(']') { - v16 = int32(TK_ID) + v18 = int32(TK_ID) } else { - v16 = int32(TK_ILLEGAL) + v18 = int32(TK_ILLEGAL) } - *(*int32)(unsafe.Pointer(tokenType)) = v16 + *(*int32)(unsafe.Pointer(tokenType)) = v18 return i case int32(CC_VARNUM): *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) @@ -164290,8 +165967,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { break } - goto _17 - _17: + goto _19 + _19: ; i++ } @@ -164303,9 +165980,9 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) i = int32(1) for { - v19 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v19 - if !(v19 != 0) { + v21 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v21 + if !(v21 != 0) { break } if int32(_sqlite3CtypeMap[uint8(c)])&int32(0x46) != 0 { @@ -164314,12 +165991,12 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if c == int32('(') && n > 0 { for { i++ - goto _21 - _21: + goto _23 + _23: ; - v20 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v20 - if !(v20 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { + v22 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v22 + if !(v22 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { break } } @@ -164337,8 +166014,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { } } } - goto _18 - _18: + goto _20 + _20: ; i++ } @@ -164356,8 +166033,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_aiClass[*(*uint8)(unsafe.Pointer(z + uintptr(i)))]) <= int32(CC_KYWD)) { break } - goto _22 - _22: + goto _24 + _24: ; i++ } @@ -164378,8 +166055,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { break } - goto _23 - _23: + goto _25 + _25: ; i++ } @@ -164431,7 +166108,7 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { var lastTokenParsed, mxSqlLen, n, nErr int32 var _ /* sEngine at bp+8 */ TyyParser var _ /* tokenType at bp+0 */ int32 - var _ /* x at bp+2432 */ TToken + var _ /* x at bp+2440 */ TToken _, _, _, _, _, _, _ = db, lastTokenParsed, mxSqlLen, n, nErr, pEngine, pParentParse nErr = 0 /* The LEMON-generated LALR(1) parser */ n = 0 /* type of the next token */ @@ -164498,10 +166175,12 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { _ = libc.Int32FromInt32(0) *(*int32)(unsafe.Pointer(bp)) = _analyzeFilterKeyword(tls, zSql+6, lastTokenParsed) } else { - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fz = zSql - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fn = uint32(n) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23708, libc.VaList(bp+2456, bp+2432)) - break + if *(*int32)(unsafe.Pointer(bp)) != int32(TK_QNUMBER) { + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fz = zSql + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fn = uint32(n) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23831, libc.VaList(bp+2464, bp+2440)) + break + } } } } @@ -164524,9 +166203,9 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { } if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg != 0 || (*TParse)(unsafe.Pointer(pParse)).Frc != SQLITE_OK && (*TParse)(unsafe.Pointer(pParse)).Frc != int32(SQLITE_DONE) { if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg == uintptr(0) { - (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3804, libc.VaList(bp+2456, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) + (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3868, libc.VaList(bp+2464, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) } - Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23733, libc.VaList(bp+2456, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) + Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+23856, libc.VaList(bp+2464, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) nErr++ } (*TParse)(unsafe.Pointer(pParse)).FzTail = zSql @@ -164719,7 +166398,7 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('c'): fallthrough case int32('C'): - if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23744, int32(6)) == 0 { + if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23867, int32(6)) == 0 { token = uint8(tkCREATE) } else { token = uint8(tkOTHER) @@ -164727,13 +166406,13 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('t'): fallthrough case int32('T'): - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20388, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20520, int32(7)) == 0 { token = uint8(tkTRIGGER) } else { - if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23751, int32(4)) == 0 { + if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23874, int32(4)) == 0 { token = uint8(tkTEMP) } else { - if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23756, int32(9)) == 0 { + if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23879, int32(9)) == 0 { token = uint8(tkTEMP) } else { token = uint8(tkOTHER) @@ -164743,10 +166422,10 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('e'): fallthrough case int32('E'): - if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23766, int32(3)) == 0 { + if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23889, int32(3)) == 0 { token = uint8(tkEND) } else { - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23770, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+23893, int32(7)) == 0 { token = uint8(tkEXPLAIN) } else { token = uint8(tkOTHER) @@ -165006,8 +166685,6 @@ func _hasHighPrecisionDouble(tls *libc.TLS, rc int32) (r int32) { // ** without blocking. // */ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { - ng := runtime.GOMAXPROCS(1) - defer func() { runtime.GOMAXPROCS(ng) }() var pMainMtx uintptr var rc int32 _, _ = pMainMtx, rc /* Result code */ @@ -165020,7 +166697,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** must be complete. So isInit must not be set until the very end ** of this routine. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { return SQLITE_OK } /* Make sure the mutex subsystem is initialized. If unable to @@ -165080,7 +166757,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { ** call to sqlite3PcacheInitialize(). */ Xsqlite3_mutex_enter(tls, _sqlite3Config.FpInitMutex) - if _sqlite3Config.FisInit == 0 && _sqlite3Config.FinProgress == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 && _sqlite3Config.FinProgress == 0 { _sqlite3Config.FinProgress = int32(1) libc.Xmemset(tls, uintptr(unsafe.Pointer(&_sqlite3BuiltinFunctions)), 0, uint64(184)) _sqlite3RegisterBuiltinFunctions(tls) @@ -165096,7 +166773,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { } if rc == SQLITE_OK { _sqlite3PCacheBufferSetup(tls, _sqlite3Config.FpPage, _sqlite3Config.FszPage, _sqlite3Config.FnPage) - _sqlite3Config.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, int32(1)) } _sqlite3Config.FinProgress = 0 } @@ -165122,7 +166799,7 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { */ /* Experimentally determine if high-precision floating point is ** available. */ - _sqlite3Config.FbUseLongDouble = uint8(_hasHighPrecisionDouble(tls, rc)) + // disabled return rc } @@ -165137,10 +166814,10 @@ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { // ** when this routine is invoked, then this routine is a harmless no-op. // */ func Xsqlite3_shutdown(tls *libc.TLS) (r int32) { - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { Xsqlite3_os_end(tls) Xsqlite3_reset_auto_extension(tls) - _sqlite3Config.FisInit = 0 + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, 0) } if _sqlite3Config.FisPCacheInit != 0 { _sqlite3PcacheShutdown(tls) @@ -165188,9 +166865,9 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { ** the SQLite library is in use. Except, a few selected opcodes ** are allowed. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)<= 0 && rc < int32(libc.Uint64FromInt64(232)/libc.Uint64FromInt64(8)) && _aMsg[rc] != uintptr(0) { @@ -166340,31 +168017,31 @@ func _sqlite3ErrStr(tls *libc.TLS, rc int32) (r uintptr) { } var _aMsg = [29]uintptr{ - 0: __ccgo_ts + 23846, - 1: __ccgo_ts + 23859, - 3: __ccgo_ts + 23875, - 4: __ccgo_ts + 23900, - 5: __ccgo_ts + 23914, - 6: __ccgo_ts + 23933, - 7: __ccgo_ts + 1627, - 8: __ccgo_ts + 23958, - 9: __ccgo_ts + 23995, - 10: __ccgo_ts + 24007, - 11: __ccgo_ts + 24022, - 12: __ccgo_ts + 24055, - 13: __ccgo_ts + 24073, - 14: __ccgo_ts + 24098, - 15: __ccgo_ts + 24127, - 17: __ccgo_ts + 6030, - 18: __ccgo_ts + 5432, - 19: __ccgo_ts + 24144, - 20: __ccgo_ts + 24162, - 21: __ccgo_ts + 24180, - 23: __ccgo_ts + 24214, - 25: __ccgo_ts + 24235, - 26: __ccgo_ts + 24261, - 27: __ccgo_ts + 24284, - 28: __ccgo_ts + 24305, + 0: __ccgo_ts + 23969, + 1: __ccgo_ts + 23982, + 3: __ccgo_ts + 23998, + 4: __ccgo_ts + 24023, + 5: __ccgo_ts + 24037, + 6: __ccgo_ts + 24056, + 7: __ccgo_ts + 1641, + 8: __ccgo_ts + 24081, + 9: __ccgo_ts + 24118, + 10: __ccgo_ts + 24130, + 11: __ccgo_ts + 24145, + 12: __ccgo_ts + 24178, + 13: __ccgo_ts + 24196, + 14: __ccgo_ts + 24221, + 15: __ccgo_ts + 24250, + 17: __ccgo_ts + 6094, + 18: __ccgo_ts + 5496, + 19: __ccgo_ts + 24267, + 20: __ccgo_ts + 24285, + 21: __ccgo_ts + 24303, + 23: __ccgo_ts + 24337, + 25: __ccgo_ts + 24358, + 26: __ccgo_ts + 24384, + 27: __ccgo_ts + 24407, + 28: __ccgo_ts + 24428, } // C documentation @@ -166546,7 +168223,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if zFunctionName == uintptr(0) || xSFunc != uintptr(0) && xFinal != uintptr(0) || libc.BoolInt32(xFinal == uintptr(0)) != libc.BoolInt32(xStep == uintptr(0)) || libc.BoolInt32(xValue == uintptr(0)) != libc.BoolInt32(xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { - return _sqlite3MisuseError(tls, int32(180244)) + return _sqlite3MisuseError(tls, int32(181689)) } _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) @@ -166592,7 +168269,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i p = _sqlite3FindFunction(tls, db, zFunctionName, nArg, uint8(enc), uint8(0)) if p != 0 && (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) == uint32(enc) && int32((*TFuncDef)(unsafe.Pointer(p)).FnArg) == nArg { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24402, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24525, 0) _ = libc.Int32FromInt32(0) return int32(SQLITE_BUSY) } else { @@ -166665,6 +168342,7 @@ func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, en (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } + goto out out: ; rc = _sqlite3ApiExit(tls, db, rc) @@ -166721,7 +168399,7 @@ func _sqlite3InvalidFunction(tls *libc.TLS, context uintptr, NotUsed int32, NotU zName = Xsqlite3_user_data(tls, context) _ = NotUsed _ = NotUsed2 - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24465, libc.VaList(bp+8, zName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24588, libc.VaList(bp+8, zName)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -166752,7 +168430,7 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i if rc != 0 { return SQLITE_OK } - zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, zName)) + zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, zName)) if zCopy == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -167000,7 +168678,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in if eMode < SQLITE_CHECKPOINT_PASSIVE || eMode > int32(SQLITE_CHECKPOINT_TRUNCATE) { /* EVIDENCE-OF: R-03996-12088 The M parameter must be a valid checkpoint ** mode: */ - return _sqlite3MisuseError(tls, int32(180859)) + return _sqlite3MisuseError(tls, int32(182304)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*uint8)(unsafe.Pointer(zDb)) != 0 { @@ -167010,7 +168688,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in } if iDb < 0 { rc = int32(SQLITE_ERROR) - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24516, libc.VaList(bp+8, zDb)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24639, libc.VaList(bp+8, zDb)) } else { (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0 rc = _sqlite3Checkpoint(tls, db, iDb, eMode, pnLog, pnCkpt) @@ -167135,7 +168813,7 @@ func Xsqlite3_errmsg(tls *libc.TLS, db uintptr) (r uintptr) { return _sqlite3ErrStr(tls, int32(SQLITE_NOMEM)) } if !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(180995))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(182440))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -167268,7 +168946,7 @@ var _misuse = [34]Tu16{ // */ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181074)) + return _sqlite3MisuseError(tls, int32(182519)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -167278,7 +168956,7 @@ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { func Xsqlite3_extended_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181083)) + return _sqlite3MisuseError(tls, int32(182528)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -167328,7 +169006,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui enc2 = int32(SQLITE_UTF16BE) } if enc2 < int32(SQLITE_UTF8) || enc2 > int32(SQLITE_UTF16BE) { - return _sqlite3MisuseError(tls, int32(181131)) + return _sqlite3MisuseError(tls, int32(182576)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -167337,7 +169015,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui pColl = _sqlite3FindCollSeq(tls, db, uint8(enc2), zName, 0) if pColl != 0 && (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp != 0 { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24537, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24660, 0) return int32(SQLITE_BUSY) } _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -167498,7 +169176,7 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u zVfs = zDefaultVfs nUri = _sqlite3Strlen30(tls, zUri) _ = libc.Int32FromInt32(0) - if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24605, uint64(5)) == 0 { /* Input character index */ + if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+24728, uint64(5)) == 0 { /* Input character index */ iOut = 0 /* Output character index */ nByte = uint64(nUri + int32(8)) /* Bytes of space to allocate */ /* Make sure the SQLITE_OPEN_URI flag is set to indicate to the VFS xOpen @@ -167528,8 +169206,8 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u for *(*uint8)(unsafe.Pointer(zUri + uintptr(iIn))) != 0 && int32(*(*uint8)(unsafe.Pointer(zUri + uintptr(iIn)))) != int32('/') { iIn++ } - if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24611, zUri+7, uint64(9)) != 0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24621, libc.VaList(bp+8, iIn-int32(7), zUri+7)) + if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24734, zUri+7, uint64(9)) != 0) { + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24744, libc.VaList(bp+8, iIn-int32(7), zUri+7)) rc = int32(SQLITE_ERROR) goto parse_uri_out } @@ -167619,24 +169297,24 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u nOpt = _sqlite3Strlen30(tls, zOpt) zVal = zOpt + uintptr(nOpt+int32(1)) nVal = _sqlite3Strlen30(tls, zVal) - if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24649, zOpt, uint64(3)) == 0 { + if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24772, zOpt, uint64(3)) == 0 { zVfs = zVal } else { aMode = uintptr(0) zModeType = uintptr(0) mask = 0 limit = 0 - if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24653, zOpt, uint64(5)) == 0 { + if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24776, zOpt, uint64(5)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_SHAREDCACHE) | libc.Int32FromInt32(SQLITE_OPEN_PRIVATECACHE) aMode = uintptr(unsafe.Pointer(&_aCacheMode)) limit = mask - zModeType = __ccgo_ts + 24653 + zModeType = __ccgo_ts + 24776 } - if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24674, zOpt, uint64(4)) == 0 { + if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+24797, zOpt, uint64(4)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_READONLY) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_MEMORY) aMode = uintptr(unsafe.Pointer(&_aOpenMode)) limit = int32(uint32(mask) & flags) - zModeType = __ccgo_ts + 3413 + zModeType = __ccgo_ts + 3477 } if aMode != 0 { mode = 0 @@ -167665,12 +169343,12 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u i++ } if mode == 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24689, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24812, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_ERROR) goto parse_uri_out } if mode & ^libc.Int32FromInt32(SQLITE_OPEN_MEMORY) > limit { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24709, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24832, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_PERM) goto parse_uri_out } @@ -167694,9 +169372,10 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u } *(*uintptr)(unsafe.Pointer(ppVfs)) = Xsqlite3_vfs_find(tls, zVfs) if *(*uintptr)(unsafe.Pointer(ppVfs)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24733, libc.VaList(bp+8, zVfs)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24856, libc.VaList(bp+8, zVfs)) rc = int32(SQLITE_ERROR) } + goto parse_uri_out parse_uri_out: ; if rc != SQLITE_OK { @@ -167713,11 +169392,11 @@ var _aCacheMode = [3]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24659, + Fz: __ccgo_ts + 24782, Fmode: int32(SQLITE_OPEN_SHAREDCACHE), }, 1: { - Fz: __ccgo_ts + 24666, + Fz: __ccgo_ts + 24789, Fmode: int32(SQLITE_OPEN_PRIVATECACHE), }, 2: {}, @@ -167728,19 +169407,19 @@ var _aOpenMode = [5]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24679, + Fz: __ccgo_ts + 24802, Fmode: int32(SQLITE_OPEN_READONLY), }, 1: { - Fz: __ccgo_ts + 24682, + Fz: __ccgo_ts + 24805, Fmode: int32(SQLITE_OPEN_READWRITE), }, 2: { - Fz: __ccgo_ts + 24685, + Fz: __ccgo_ts + 24808, Fmode: libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE), }, 3: { - Fz: __ccgo_ts + 17773, + Fz: __ccgo_ts + 17860, Fmode: int32(SQLITE_OPEN_MEMORY), }, 4: {}, @@ -167869,8 +169548,8 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16BE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16LE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+22360, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+24749, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+22505, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+24872, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto opendb_out } @@ -167894,7 +169573,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* READWRITE */ /* READWRITE | CREATE */ if int32(1)<<(*(*uint32)(unsafe.Pointer(bp))&uint32(7))&int32(0x46) == 0 { - rc = _sqlite3MisuseError(tls, int32(181803)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(183248)) /* IMP: R-18321-05872 */ } else { rc = _sqlite3ParseUri(tls, zVfs, zFilename, bp, db, bp+8, bp+16) } @@ -167903,7 +169582,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _sqlite3OomFault(tls, db) } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { - v2 = __ccgo_ts + 3804 + v2 = __ccgo_ts + 3868 } else { v2 = uintptr(0) } @@ -167931,9 +169610,9 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* The default safety_level for the main database is FULL; for the temp ** database it is OFF. This matches the pager layer defaults. */ - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6594 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6658 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).Fsafety_level = uint8(libc.Int32FromInt32(SQLITE_DEFAULT_SYNCHRONOUS) + libc.Int32FromInt32(1)) - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 23751 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 23874 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).Fsafety_level = uint8(PAGER_SYNCHRONOUS_OFF) (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState = uint8(SQLITE_STATE_OPEN) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -167978,6 +169657,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* Enable the lookaside-malloc subsystem */ _setupLookaside(tls, db, uintptr(0), _sqlite3Config.FszLookaside, _sqlite3Config.FnLookaside) Xsqlite3_wal_autocheckpoint(tls, db, int32(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT)) + goto opendb_out opendb_out: ; if db != 0 { @@ -168028,7 +169708,7 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc } if zFilename == uintptr(0) { - zFilename = __ccgo_ts + 24755 + zFilename = __ccgo_ts + 24878 } pVal = _sqlite3ValueNew(tls, uintptr(0)) _sqlite3ValueSetStr(tls, pVal, -int32(1), zFilename, uint8(SQLITE_UTF16BE), libc.UintptrFromInt32(0)) @@ -168249,20 +169929,20 @@ func Xsqlite3_get_autocommit(tls *libc.TLS, db uintptr) (r int32) { func _sqlite3ReportError(tls *libc.TLS, iErr int32, lineno int32, zType uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) - Xsqlite3_log(tls, iErr, __ccgo_ts+24758, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) + Xsqlite3_log(tls, iErr, __ccgo_ts+24881, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) return iErr } func _sqlite3CorruptError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24783) + return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+24906) } func _sqlite3MisuseError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24803) + return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+24926) } func _sqlite3CantopenError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24810) + return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+24933) } // C documentation @@ -168368,6 +170048,7 @@ func Xsqlite3_table_column_metadata(tls *libc.TLS, db uintptr, zDbName uintptr, if !(zCollSeq != 0) { zCollSeq = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } + goto error_out error_out: ; _sqlite3BtreeLeaveAll(tls, db) @@ -168392,11 +170073,11 @@ error_out: } if SQLITE_OK == rc && !(pTab != 0) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24827, libc.VaList(bp+16, zTableName, zColumnName)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+24950, libc.VaList(bp+16, zTableName, zColumnName)) rc = int32(SQLITE_ERROR) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v3 = __ccgo_ts + 3804 + v3 = __ccgo_ts + 3868 } else { v3 = uintptr(0) } @@ -168835,7 +170516,7 @@ func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) (r int32) { */ fallthrough case int32(SQLITE_TESTCTRL_ISINIT): - if _sqlite3Config.FisInit == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 { rc = int32(SQLITE_ERROR) } break @@ -169425,7 +171106,7 @@ func Xsqlite3_compileoption_used(tls *libc.TLS, zOptName uintptr) (r int32) { var _ /* nOpt at bp+0 */ int32 _, _, _ = azCompileOpt, i, n azCompileOpt = _sqlite3CompileOptions(tls, bp) - if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24855, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+24978, int32(7)) == 0 { zOptName += uintptr(7) } n = _sqlite3Strlen30(tls, zOptName) @@ -169647,7 +171328,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui _leaveMutex(tls) _ = libc.Int32FromInt32(0) if rc != 0 { - v2 = __ccgo_ts + 24863 + v2 = __ccgo_ts + 24986 } else { v2 = uintptr(0) } @@ -170530,23 +172211,23 @@ func _sqlite3ConnectionClosed(tls *libc.TLS, db uintptr) { // ** string must correspond to the JSONB_* integer above. // */ var _jsonbType = [17]uintptr{ - 0: __ccgo_ts + 1643, - 1: __ccgo_ts + 7895, - 2: __ccgo_ts + 7900, - 3: __ccgo_ts + 6315, - 4: __ccgo_ts + 6315, - 5: __ccgo_ts + 6310, - 6: __ccgo_ts + 6310, - 7: __ccgo_ts + 8206, - 8: __ccgo_ts + 8206, - 9: __ccgo_ts + 8206, - 10: __ccgo_ts + 8206, - 11: __ccgo_ts + 24886, - 12: __ccgo_ts + 24892, - 13: __ccgo_ts + 1657, - 14: __ccgo_ts + 1657, - 15: __ccgo_ts + 1657, - 16: __ccgo_ts + 1657, + 0: __ccgo_ts + 1657, + 1: __ccgo_ts + 8020, + 2: __ccgo_ts + 8025, + 3: __ccgo_ts + 6379, + 4: __ccgo_ts + 6379, + 5: __ccgo_ts + 6374, + 6: __ccgo_ts + 6374, + 7: __ccgo_ts + 8331, + 8: __ccgo_ts + 8331, + 9: __ccgo_ts + 8331, + 10: __ccgo_ts + 8331, + 11: __ccgo_ts + 25009, + 12: __ccgo_ts + 25015, + 13: __ccgo_ts + 1671, + 14: __ccgo_ts + 1671, + 15: __ccgo_ts + 1671, + 16: __ccgo_ts + 1671, } // C documentation @@ -171317,6 +172998,46 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { _jsonAppendChar(tls, p, uint8(',')) } +// C documentation +// +// /* c is a control character. Append the canonical JSON representation +// ** of that control character to p. +// ** +// ** This routine assumes that the output buffer has already been enlarged +// ** sufficiently to hold the worst-case encoding plus a nul terminator. +// */ +func _jsonAppendControlChar(tls *libc.TLS, p uintptr, c Tu8) { + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + _ = libc.Int32FromInt32(0) + if _aSpecial[c] != 0 { + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = uint8('\\') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = _aSpecial[c] + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(2) + } else { + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = uint8('\\') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = uint8('u') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(2)))) = uint8('0') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(3)))) = uint8('0') + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(4)))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 25022 + uintptr(int32(c)>>int32(4)))) + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(5)))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 25022 + uintptr(int32(c)&int32(0xf)))) + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(6) + } +} + +var _aSpecial = [32]uint8{ + 8: uint8('b'), + 9: uint8('t'), + 10: uint8('n'), + 12: uint8('f'), + 13: uint8('r'), +} + // C documentation // // /* Append the N-byte string in zIn to the end of the JsonString string @@ -171330,9 +173051,9 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { var c Tu8 var k Tu32 - var z, v10, v12, v14, v16, v18, v2, v20, v22, v24, v6, v8 uintptr - var v1, v11, v13, v15, v17, v19, v21, v23, v5, v7, v9 Tu64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v5, v6, v7, v8, v9 + var z, v10, v2, v4, v6, v8 uintptr + var v1, v3, v5, v7, v9 Tu64 + _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v2, v3, v4, v5, v6, v7, v8, v9 z = zIn if z == uintptr(0) { return @@ -171389,90 +173110,41 @@ func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { N -= k } c = *(*Tu8)(unsafe.Pointer(z)) - if !(int32(c) == int32('"') || int32(c) == int32('\\')) { - goto _3 - } - json_simple_escape: - ; - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { - return - } - v6 = p + 24 - v5 = *(*Tu64)(unsafe.Pointer(v6)) - *(*Tu64)(unsafe.Pointer(v6))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = uint8('\\') - v8 = p + 24 - v7 = *(*Tu64)(unsafe.Pointer(v8)) - *(*Tu64)(unsafe.Pointer(v8))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = c - goto _4 - _3: - ; - if int32(c) == int32('\'') { - v10 = p + 24 - v9 = *(*Tu64)(unsafe.Pointer(v10)) - *(*Tu64)(unsafe.Pointer(v10))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = c - } else { - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - _ = libc.Int32FromInt32(0) - if _aSpecial[c] != 0 { - c = _aSpecial[c] - goto json_simple_escape - } - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + if int32(c) == int32('"') || int32(c) == int32('\\') { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { return } - v12 = p + 24 - v11 = *(*Tu64)(unsafe.Pointer(v12)) - *(*Tu64)(unsafe.Pointer(v12))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v11))) = uint8('\\') - v14 = p + 24 - v13 = *(*Tu64)(unsafe.Pointer(v14)) - *(*Tu64)(unsafe.Pointer(v14))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v13))) = uint8('u') - v16 = p + 24 - v15 = *(*Tu64)(unsafe.Pointer(v16)) - *(*Tu64)(unsafe.Pointer(v16))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v15))) = uint8('0') - v18 = p + 24 - v17 = *(*Tu64)(unsafe.Pointer(v18)) - *(*Tu64)(unsafe.Pointer(v18))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v17))) = uint8('0') - v20 = p + 24 - v19 = *(*Tu64)(unsafe.Pointer(v20)) - *(*Tu64)(unsafe.Pointer(v20))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v19))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 24899 + uintptr(int32(c)>>int32(4)))) - v22 = p + 24 - v21 = *(*Tu64)(unsafe.Pointer(v22)) - *(*Tu64)(unsafe.Pointer(v22))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v21))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 24899 + uintptr(int32(c)&int32(0xf)))) + v4 = p + 24 + v3 = *(*Tu64)(unsafe.Pointer(v4)) + *(*Tu64)(unsafe.Pointer(v4))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v3))) = uint8('\\') + v6 = p + 24 + v5 = *(*Tu64)(unsafe.Pointer(v6)) + *(*Tu64)(unsafe.Pointer(v6))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = c + } else { + if int32(c) == int32('\'') { + v8 = p + 24 + v7 = *(*Tu64)(unsafe.Pointer(v8)) + *(*Tu64)(unsafe.Pointer(v8))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = c + } else { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(N)+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + return + } + _jsonAppendControlChar(tls, p, c) + } } - _4: - ; z++ N-- } - v24 = p + 24 - v23 = *(*Tu64)(unsafe.Pointer(v24)) - *(*Tu64)(unsafe.Pointer(v24))++ - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v23))) = uint8('"') + v10 = p + 24 + v9 = *(*Tu64)(unsafe.Pointer(v10)) + *(*Tu64)(unsafe.Pointer(v10))++ + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = uint8('"') _ = libc.Int32FromInt32(0) } -var _aSpecial = [32]uint8{ - 8: uint8('b'), - 9: uint8('t'), - 10: uint8('n'), - 12: uint8('f'), - 13: uint8('r'), -} - // C documentation // // /* @@ -171488,9 +173160,9 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _, _, _, _ = n, n1, z, z1 switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_NULL): - _jsonAppendRawNZ(tls, p, __ccgo_ts+1643, uint32(4)) + _jsonAppendRawNZ(tls, p, __ccgo_ts+1657, uint32(4)) case int32(SQLITE_FLOAT): - _jsonPrintf(tls, int32(100), p, __ccgo_ts+15332, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) + _jsonPrintf(tls, int32(100), p, __ccgo_ts+15425, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) case int32(SQLITE_INTEGER): z = Xsqlite3_value_text(tls, pValue) n = uint32(Xsqlite3_value_bytes(tls, pValue)) @@ -171511,7 +173183,7 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _jsonTranslateBlobToText(tls, bp, uint32(0), p) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr) == 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24916, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25039, -int32(1)) (*TJsonString)(unsafe.Pointer(p)).FeErr = uint8(JSTRING_ERR) _jsonStringReset(tls, p) } @@ -171567,7 +173239,7 @@ func _jsonReturnString(tls *libc.TLS, p uintptr, pParse uintptr, ctx uintptr) { Xsqlite3_result_error_nomem(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr)&int32(JSTRING_MALFORMED) != 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25068, -int32(1)) } } } @@ -171815,6 +173487,7 @@ func _json5Whitespace(tls *libc.TLS, zIn uintptr) (r int32) { goto whitespace_done } } + goto whitespace_done whitespace_done: ; return n @@ -171850,8 +173523,8 @@ var _aNanInfName = [5]TNanInfName{ Fn: uint8(3), FeType: uint8(JSONB_FLOAT), FnRepl: uint8(7), - FzMatch: __ccgo_ts + 24960, - FzRepl: __ccgo_ts + 24964, + FzMatch: __ccgo_ts + 25083, + FzRepl: __ccgo_ts + 25087, }, 1: { Fc1: uint8('i'), @@ -171859,32 +173532,32 @@ var _aNanInfName = [5]TNanInfName{ Fn: uint8(8), FeType: uint8(JSONB_FLOAT), FnRepl: uint8(7), - FzMatch: __ccgo_ts + 24972, - FzRepl: __ccgo_ts + 24964, + FzMatch: __ccgo_ts + 25095, + FzRepl: __ccgo_ts + 25087, }, 2: { Fc1: uint8('n'), Fc2: uint8('N'), Fn: uint8(3), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 1648, - FzRepl: __ccgo_ts + 1643, + FzMatch: __ccgo_ts + 1662, + FzRepl: __ccgo_ts + 1657, }, 3: { Fc1: uint8('q'), Fc2: uint8('Q'), Fn: uint8(4), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 24981, - FzRepl: __ccgo_ts + 1643, + FzMatch: __ccgo_ts + 25104, + FzRepl: __ccgo_ts + 1657, }, 4: { Fc1: uint8('s'), Fc2: uint8('S'), Fn: uint8(4), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 24986, - FzRepl: __ccgo_ts + 1643, + FzMatch: __ccgo_ts + 25109, + FzRepl: __ccgo_ts + 1657, }, } @@ -171899,7 +173572,7 @@ func _jsonWrongNumArgs(tls *libc.TLS, pCtx uintptr, zFuncName uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24991, libc.VaList(bp+8, zFuncName)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25114, libc.VaList(bp+8, zFuncName)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) } @@ -172353,30 +174026,37 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept return j + uint32(1) } } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) <= int32(0x1f) { + /* Control characters in JSON5 string literals are ok */ + if int32(x) == int32(JSONB_TEXTJ) { + return j + uint32(1) + } } else { - if libc.Xstrchr(tls, __ccgo_ts+25034, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { - j++ + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { + return j + uint32(1) } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { - if j+uint32(5) >= k { - return j + uint32(1) - } - if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { - return j + uint32(1) - } + if libc.Xstrchr(tls, __ccgo_ts+25157, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { j++ } else { - if int32(x) != int32(JSONB_TEXT5) { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { + if j+uint32(5) >= k { + return j + uint32(1) + } + if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { + return j + uint32(1) + } + j++ } else { - *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) - szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) - if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + if int32(x) != int32(JSONB_TEXT5) { return j + uint32(1) + } else { + *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) + szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) + if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + return j + uint32(1) + } + j += szC - uint32(1) } - j += szC - uint32(1) } } } @@ -172474,6 +174154,7 @@ func _jsonTranslateTextToBlob(tls *libc.TLS, pParse uintptr, i Tu32) (r int32) { var _ /* op at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cDelim, iBlob, iStart, iThis, j, k, k1, nn, opcode, seenE, t, x, z, v40, v41, v43, v44, v46, v48 z = (*TJsonParse)(unsafe.Pointer(pParse)).FzJson + goto json_parse_restart json_parse_restart: ; switch int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) { @@ -172629,6 +174310,7 @@ _1: } j = (*TJsonParse)(unsafe.Pointer(pParse)).FiErr + uint32(1) } + goto parse_object_value parse_object_value: ; x = _jsonTranslateTextToBlob(tls, pParse, j) @@ -172756,6 +174438,7 @@ _3: ; /* Parse string */ opcode = uint8(JSONB_TEXT) + goto parse_string parse_string: ; cDelim = *(*uint8)(unsafe.Pointer(z + uintptr(i))) @@ -172804,9 +174487,14 @@ parse_string: } } else { if int32(c) <= int32(0x1f) { - /* Control characters are not allowed in strings */ - (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j - return -int32(1) + if int32(c) == 0 { + (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j + return -int32(1) + } + /* Control characters are not allowed in canonical JSON string + ** literals, but are allowed in JSON5 string literals. */ + opcode = uint8(JSONB_TEXT5) + (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) } else { if int32(c) == int32('"') { opcode = uint8(JSONB_TEXT5) @@ -172820,7 +174508,7 @@ parse_string: return int32(j + uint32(1)) _5: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7895, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8020, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_TRUE)) return int32(i + uint32(4)) } @@ -172828,7 +174516,7 @@ _5: return -int32(1) _6: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+7900, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(5))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8025, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(5))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_FALSE)) return int32(i + uint32(5)) } @@ -172873,6 +174561,7 @@ _8: ; /* Parse number */ t = uint8(0x00) /* Bit 0x01: JSON5. Bit 0x02: FLOAT */ + goto parse_number parse_number: ; seenE = uint8(0) @@ -172908,14 +174597,14 @@ parse_number: /* JSON5 allows for "+Infinity" and "-Infinity" using exactly ** that case. SQLite also allows these in any case and it allows ** "+inf" and "-inf". */ - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+24960, int32(3)) == 0 { + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+25083, int32(3)) == 0 { (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('-') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25043) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25166) } else { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25050) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25173) } - if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25056, int32(5)) == 0 { + if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25179, int32(5)) == 0 { v48 = int32(9) } else { v48 = int32(4) @@ -172954,6 +174643,7 @@ parse_number: } } } + goto parse_number_2 parse_number_2: ; j = i + uint32(1) @@ -173012,6 +174702,7 @@ parse_number_2: return -int32(1) } } + goto parse_number_finish parse_number_finish: ; _ = libc.Int32FromInt32(0) @@ -173077,11 +174768,10 @@ _29: return -int32(1) _37: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1643, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1657, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) return int32(i + uint32(4)) } - /* fall-through into the default case that checks for NaN */ _38: ; c = *(*uint8)(unsafe.Pointer(z + uintptr(i))) @@ -173101,7 +174791,7 @@ _38: goto _51 } if int32(_aNanInfName[k1].FeType) == int32(JSONB_FLOAT) { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25050) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25173) } else { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) } @@ -173146,7 +174836,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 i += _json5Whitespace(tls, zJson+uintptr(i)) if *(*uint8)(unsafe.Pointer(zJson + uintptr(i))) != 0 { if pCtx != 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25068, -int32(1)) } _jsonParseReset(tls, pParse) return int32(1) @@ -173159,7 +174849,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 if (*TJsonParse)(unsafe.Pointer(pParse)).Foom != 0 { Xsqlite3_result_error_nomem(tls, pCtx) } else { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25068, -int32(1)) } } _jsonParseReset(tls, pParse) @@ -173324,15 +175014,15 @@ func _jsonTranslateBlobToText(tls *libc.TLS, pParse uintptr, i Tu32, pOut uintpt goto _16 _2: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1643, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1657, uint32(4)) return i + uint32(1) _3: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7895, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8020, uint32(4)) return i + uint32(1) _4: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+7900, uint32(5)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8025, uint32(5)) return i + uint32(1) _6: ; @@ -173381,9 +175071,9 @@ _7: k++ } if bOverflow != 0 { - v19 = __ccgo_ts + 24964 + v19 = __ccgo_ts + 25087 } else { - v19 = __ccgo_ts + 11762 + v19 = __ccgo_ts + 11887 } _jsonPrintf(tls, int32(100), pOut, v19, libc.VaList(bp+16, u)) goto _16 @@ -173431,7 +175121,7 @@ _11: for sz2 > uint32(0) { k2 = uint32(0) for { - if !(k2 < sz2 && int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('\\') && int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('"')) { + if !(k2 < sz2 && (_jsonIsOk[*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))] != 0 || int32(*(*uint8)(unsafe.Pointer(zIn2 + uintptr(k2)))) == int32('\''))) { break } goto _21 @@ -173448,7 +175138,16 @@ _11: sz2 -= k2 } if int32(*(*uint8)(unsafe.Pointer(zIn2))) == int32('"') { - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25062, uint32(2)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25185, uint32(2)) + zIn2++ + sz2-- + continue + } + if int32(*(*uint8)(unsafe.Pointer(zIn2))) <= int32(0x1f) { + if (*TJsonString)(unsafe.Pointer(pOut)).FnUsed+uint64(7) > (*TJsonString)(unsafe.Pointer(pOut)).FnAlloc && _jsonStringGrow(tls, pOut, uint32(7)) != 0 { + break + } + _jsonAppendControlChar(tls, pOut, *(*uint8)(unsafe.Pointer(zIn2))) zIn2++ sz2-- continue @@ -173464,7 +175163,7 @@ _11: case int32('\''): _jsonAppendChar(tls, pOut, uint8('\'')) case int32('v'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25065, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25188, uint32(6)) case int32('x'): if sz2 < uint32(4) { p23 = pOut + 33 @@ -173472,12 +175171,12 @@ _11: sz2 = uint32(2) break } - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25072, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25195, uint32(4)) _jsonAppendRawNZ(tls, pOut, zIn2+2, uint32(2)) zIn2 += uintptr(2) sz2 -= uint32(2) case int32('0'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25077, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25200, uint32(6)) case int32('\r'): if sz2 > uint32(2) && int32(*(*uint8)(unsafe.Pointer(zIn2 + 2))) == int32('\n') { zIn2++ @@ -173556,6 +175255,7 @@ _14: goto _16 _15: ; + goto malformed_jsonb malformed_jsonb: ; p29 = pOut + 33 @@ -173566,6 +175266,140 @@ _16: return i + n + *(*Tu32)(unsafe.Pointer(bp)) } +// C documentation +// +// /* Context for recursion of json_pretty() +// */ +type TJsonPretty = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty = TJsonPretty + +type TJsonPretty1 = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty1 = TJsonPretty1 + +// C documentation +// +// /* Append indentation to the pretty JSON under construction */ +func _jsonPrettyIndent(tls *libc.TLS, pPretty uintptr) { + var jj Tu32 + _ = jj + jj = uint32(0) + for { + if !(jj < (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent) { + break + } + _jsonAppendRaw(tls, (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut, (*TJsonPretty)(unsafe.Pointer(pPretty)).FzIndent, (*TJsonPretty)(unsafe.Pointer(pPretty)).FszIndent) + goto _1 + _1: + ; + jj++ + } +} + +// C documentation +// +// /* +// ** Translate the binary JSONB representation of JSON beginning at +// ** pParse->aBlob[i] into a JSON text string. Append the JSON +// ** text onto the end of pOut. Return the index in pParse->aBlob[] +// ** of the first byte past the end of the element that is translated. +// ** +// ** This is a variant of jsonTranslateBlobToText() that "pretty-prints" +// ** the output. Extra whitespace is inserted to make the JSON easier +// ** for humans to read. +// ** +// ** If an error is detected in the BLOB input, the pOut->eErr flag +// ** might get set to JSTRING_MALFORMED. But not all BLOB input errors +// ** are detected. So a malformed JSONB input might either result +// ** in an error, or in incorrect JSON. +// ** +// ** The pOut->eErr JSTRING_OOM flag is set on a OOM. +// */ +func _jsonTranslateBlobToPrettyText(tls *libc.TLS, pPretty uintptr, i Tu32) (r Tu32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var iEnd, j, n Tu32 + var pOut, pParse, p1, p2 uintptr + var _ /* sz at bp+0 */ Tu32 + _, _, _, _, _, _, _ = iEnd, j, n, pOut, pParse, p1, p2 + pParse = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpParse + pOut = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut + n = _jsonbPayloadSize(tls, pParse, i, bp) + if n == uint32(0) { + p1 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + return (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob + uint32(1) + } + switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { + case int32(JSONB_ARRAY): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, uint8('[')) + if j < iEnd { + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25207, uint32(2)) + } + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, uint8(']')) + i = iEnd + case int32(JSONB_OBJECT): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, uint8('{')) + if j < iEnd { + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToText(tls, pParse, j, pOut) + if j > iEnd { + p2 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p2)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p2))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25210, uint32(2)) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25207, uint32(2)) + } + _jsonAppendChar(tls, pOut, uint8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, uint8('}')) + i = iEnd + default: + i = _jsonTranslateBlobToText(tls, pParse, i, pOut) + break + } + return i +} + // C documentation // // /* Return true if the input pJson @@ -174293,7 +176127,7 @@ func _jsonReturnFromBlob(tls *libc.TLS, pParse uintptr, i Tu32, pCtx uintptr, te db = Xsqlite3_context_db_handle(tls, pCtx) n = _jsonbPayloadSize(tls, pParse, i, bp) if n == uint32(0) { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25068, -int32(1)) return } switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { @@ -174402,6 +176236,7 @@ _6: if *(*Tu32)(unsafe.Pointer(bp)) == uint32(0) { goto returnfromblob_malformed } + goto to_double to_double: ; z1 = _sqlite3DbStrNDup(tls, db, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(i+n), uint64(int32(*(*Tu32)(unsafe.Pointer(bp))))) @@ -174524,13 +176359,15 @@ _14: _15: ; return + goto returnfromblob_oom returnfromblob_oom: ; Xsqlite3_result_error_nomem(tls, pCtx) return + goto returnfromblob_malformed returnfromblob_malformed: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25068, -int32(1)) return } @@ -174571,7 +176408,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob = Xsqlite3_value_blob(tls, pArg) (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob = uint32(Xsqlite3_value_bytes(tls, pArg)) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24916, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25039, -int32(1)) return int32(1) } case int32(SQLITE_TEXT): @@ -174584,7 +176421,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FzJson = zJson (*TJsonParse)(unsafe.Pointer(pParse)).FnJson = nJson if _jsonConvertTextToBlob(tls, pParse, ctx) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25068, -int32(1)) _sqlite3DbFree(tls, (*TJsonParse)(unsafe.Pointer(pParse)).Fdb, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob) libc.Xmemset(tls, pParse, 0, uint64(72)) return int32(1) @@ -174603,10 +176440,10 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin return int32(1) } if int32(*(*uint8)(unsafe.Pointer(z))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25050) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25173) } else { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('-') && int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25043) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25166) } else { _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(n), z) } @@ -174645,7 +176482,7 @@ func _jsonBadPathError(tls *libc.TLS, ctx uintptr, zPath uintptr) (r uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25084, libc.VaList(bp+8, zPath)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25213, libc.VaList(bp+8, zPath)) if ctx == uintptr(0) { return zMsg } @@ -174738,11 +176575,12 @@ func _jsonInsertIntoBlob(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr, e _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto jsonInsertIntoBlob_patherror jsonInsertIntoBlob_patherror: ; _jsonParseFree(tls, p) if rc == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25068, -int32(1)) } else { _jsonBadPathError(tls, ctx, zPath) } @@ -174827,6 +176665,7 @@ func _jsonParseFuncArg(tls *libc.TLS, ctx uintptr, pArg uintptr, flgs Tu32) (r u } } db = Xsqlite3_context_db_handle(tls, ctx) + goto rebuild_from_cache rebuild_from_cache: ; p = _sqlite3DbMallocZero(tls, db, uint64(72)) @@ -174917,6 +176756,7 @@ rebuild_from_cache: } } return p + goto json_pfa_malformed json_pfa_malformed: ; if flgs&uint32(JSON_KEEPERROR) != 0 { @@ -174924,9 +176764,10 @@ json_pfa_malformed: return p } else { _jsonParseFree(tls, p) - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25068, -int32(1)) return uintptr(0) } + goto json_pfa_oom json_pfa_oom: ; _jsonParseFree(tls, pFromCache) @@ -175058,7 +176899,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if int32(*(*uint8)(unsafe.Pointer(zPath))) == int32('$') { v1 = zPath + uintptr(1) } else { - v1 = __ccgo_ts + 25102 + v1 = __ccgo_ts + 25231 } i = _jsonLookupStep(tls, p, uint32(0), v1, uint32(0)) if i >= uint32(JSON_LOOKUP_PATHERROR) { @@ -175068,7 +176909,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25068, -int32(1)) } } eErr = uint8(1) @@ -175086,25 +176927,6 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) _jsonParseFree(tls, p) } -// C documentation -// -// /* True if the string is all digits */ -func _jsonAllDigits(tls *libc.TLS, z uintptr, n int32) (r int32) { - var i int32 - _ = i - i = 0 - for { - if !(i < n && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _1 - _1: - ; - i++ - } - return libc.BoolInt32(i == n) -} - // C documentation // // /* True if the string is all alphanumerics and underscores */ @@ -175191,21 +177013,21 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { ** [NUMBER] ==> $[NUMBER] // Not PG. Purely for convenience */ _jsonStringInit(tls, bp, ctx) - if _jsonAllDigits(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25104, uint32(1)) + if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) == int32(SQLITE_INTEGER) { + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25233, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+5170, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+5234, uint32(2)) } else { if _jsonAllAlphanum(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1670, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1684, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { if int32(*(*uint8)(unsafe.Pointer(zPath))) == int32('[') && nPath >= int32(3) && int32(*(*uint8)(unsafe.Pointer(zPath + uintptr(nPath-int32(1))))) == int32(']') { _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) } else { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25106, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25235, uint32(2)) _jsonAppendRaw(tls, bp, zPath, uint32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25109, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25238, uint32(1)) } } } @@ -175242,11 +177064,11 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { goto json_extract_error /* Return NULL if not found */ } else { _jsonAppendSeparator(tls, bp) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1643, uint32(4)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1657, uint32(4)) } } else { if j == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25068, -int32(1)) goto json_extract_error } else { _jsonBadPathError(tls, ctx, zPath) @@ -175266,6 +177088,7 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } } + goto json_extract_error json_extract_error: ; _jsonStringReset(tls, bp) @@ -175516,7 +177339,7 @@ func _jsonPatchFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == int32(JSON_MERGE_OOM) { Xsqlite3_result_error_nomem(tls, ctx) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25068, -int32(1)) } } _jsonParseFree(tls, pPatch) @@ -175540,7 +177363,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { var _ /* jx at bp+0 */ TJsonString _, _, _ = i, n, z if argc&int32(1) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25111, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25240, -int32(1)) return } _jsonStringInit(tls, bp, ctx) @@ -175551,7 +177374,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { break } if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) != int32(SQLITE_TEXT) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25162, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25291, -int32(1)) _jsonStringReset(tls, bp) return } @@ -175623,7 +177446,7 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25068, -int32(1)) } } goto json_remove_done @@ -175636,9 +177459,11 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto json_remove_patherror json_remove_patherror: ; _jsonBadPathError(tls, ctx, zPath) + goto json_remove_done json_remove_done: ; _jsonParseFree(tls, p) @@ -175658,7 +177483,7 @@ func _jsonReplaceFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { return } if argc&int32(1) == 0 { - _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15805) + _jsonWrongNumArgs(tls, ctx, __ccgo_ts+15898) return } _jsonInsertIntoBlob(tls, ctx, argc, argv, int32(JEDIT_REPL)) @@ -175689,9 +177514,9 @@ func _jsonSetFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { } if argc&int32(1) == 0 { if bIsSet != 0 { - v1 = __ccgo_ts + 25196 + v1 = __ccgo_ts + 25325 } else { - v1 = __ccgo_ts + 25200 + v1 = __ccgo_ts + 25329 } _jsonWrongNumArgs(tls, ctx, v1) return @@ -175739,7 +177564,7 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+24945, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25068, -int32(1)) } } goto json_type_done @@ -175748,11 +177573,54 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { i = uint32(0) } Xsqlite3_result_text(tls, ctx, _jsonbType[int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(p)).FaBlob + uintptr(i))))&int32(0x0f)], -int32(1), libc.UintptrFromInt32(0)) + goto json_type_done json_type_done: ; _jsonParseFree(tls, p) } +// C documentation +// +// /* +// ** json_pretty(JSON) +// ** json_pretty(JSON, INDENT) +// ** +// ** Return text that is a pretty-printed rendering of the input JSON. +// ** If the argument is not valid JSON, return NULL. +// ** +// ** The INDENT argument is text that is used for indentation. If omitted, +// ** it defaults to four spaces (the same as PostgreSQL). +// */ +func _jsonPrettyFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { + bp := tls.Alloc(176) + defer tls.Free(176) + var v1 uintptr + var v2 bool + var _ /* s at bp+0 */ TJsonString + var _ /* x at bp+136 */ TJsonPretty + _, _ = v1, v2 /* Pretty printing context */ + libc.Xmemset(tls, bp+136, 0, uint64(32)) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse = _jsonParseFuncArg(tls, ctx, *(*uintptr)(unsafe.Pointer(argv)), uint32(0)) + if (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse == uintptr(0) { + return + } + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpOut = bp + _jsonStringInit(tls, bp, ctx) + if v2 = argc == int32(1); !v2 { + v1 = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = v1 + } + if v2 || v1 == uintptr(0) { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = __ccgo_ts + 25336 + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(4) + } else { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(libc.Xstrlen(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent)) + } + _jsonTranslateBlobToPrettyText(tls, bp+136, uint32(0)) + _jsonReturnString(tls, bp, uintptr(0), uintptr(0)) + _jsonParseFree(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse) +} + // C documentation // // /* @@ -175827,7 +177695,7 @@ func _jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if argc == int32(2) { f = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if f < int64(1) || f > int64(15) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25207, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25341, -int32(1)) return } flags = uint8(f & int64(0x0f)) @@ -176017,7 +177885,7 @@ func _jsonArrayCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25264, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25398, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -176166,7 +178034,7 @@ func _jsonObjectCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25267, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25401, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -176269,7 +178137,7 @@ func _jsonEachConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv _ = argv _ = argc _ = pAux - rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25270) + rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25404) if rc == SQLITE_OK { pNew = _sqlite3DbMallocZero(tls, db, uint64(32)) *(*uintptr)(unsafe.Pointer(ppVtab)) = pNew @@ -176405,7 +178273,7 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if int32((*TJsonEachCursor)(unsafe.Pointer(p)).FeType) == int32(JSONB_ARRAY) { - _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25353, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) + _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25487, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) } else { *(*Tu32)(unsafe.Pointer(bp)) = uint32(0) needQuote = 0 @@ -176431,9 +178299,9 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { } } if needQuote != 0 { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25360, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25494, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } else { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25368, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25502, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } } } @@ -176823,7 +178691,7 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a i = v5 (*TJsonEachCursor)(unsafe.Pointer(p)).FeType = uint8(0) (*TJsonEachCursor)(unsafe.Pointer(p)).FnRoot = uint32(1) - _jsonAppendRaw(tls, p+56, __ccgo_ts+25374, uint32(1)) + _jsonAppendRaw(tls, p+56, __ccgo_ts+25508, uint32(1)) } (*TJsonEachCursor)(unsafe.Pointer(p)).FnParent = uint32(0) n = _jsonbPayloadSize(tls, p+192, i, bp) @@ -176843,10 +178711,11 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent))).FiValue = i } return SQLITE_OK + goto json_each_malformed_input json_each_malformed_input: ; Xsqlite3_free(tls, (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg) - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+24945, 0) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25068, 0) _jsonEachCursorReset(tls, p) if (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg != 0 { v6 = int32(SQLITE_ERROR) @@ -176900,183 +178769,193 @@ func init() { // ** Register JSON functions. // */ func _sqlite3RegisterJsonFunctions(tls *libc.TLS) { - _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2304)/libc.Uint64FromInt64(72))) + _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2448)/libc.Uint64FromInt64(72))) } -var _aJsonFunc = [32]TFuncDef{ +var _aJsonFunc = [34]TFuncDef{ 0: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25376, + FzName: __ccgo_ts + 25510, }, 1: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25381, + FzName: __ccgo_ts + 25515, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25387, + FzName: __ccgo_ts + 25521, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25398, + FzName: __ccgo_ts + 25532, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25410, + FzName: __ccgo_ts + 25544, }, 5: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25410, + FzName: __ccgo_ts + 25544, }, 6: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25428, + FzName: __ccgo_ts + 25562, }, 7: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25448, + FzName: __ccgo_ts + 25582, }, 8: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25461, + FzName: __ccgo_ts + 25595, }, 9: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_JSON) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25475, + FzName: __ccgo_ts + 25609, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_SQL) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25478, + FzName: __ccgo_ts + 25612, }, 11: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25482, + FzName: __ccgo_ts + 25616, }, 12: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25494, + FzName: __ccgo_ts + 25628, }, 13: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25507, + FzName: __ccgo_ts + 25641, }, 14: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25519, + FzName: __ccgo_ts + 25653, }, 15: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25532, + FzName: __ccgo_ts + 25666, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25543, + FzName: __ccgo_ts + 25677, }, 17: { FnArg: int8(1), - FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25555, + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25689, }, 18: { + FnArg: int8(2), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25689, + }, + 19: { + FnArg: int8(1), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 25701, + }, + 20: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25566, + FzName: __ccgo_ts + 25712, }, - 19: { + 21: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25578, + FzName: __ccgo_ts + 25724, }, - 20: { + 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25591, + FzName: __ccgo_ts + 25737, }, - 21: { + 23: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25604, + FzName: __ccgo_ts + 25750, }, - 22: { + 24: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25618, + FzName: __ccgo_ts + 25764, }, - 23: { + 25: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25627, + FzName: __ccgo_ts + 25773, }, - 24: { + 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25637, + FzName: __ccgo_ts + 25783, }, - 25: { + 27: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25637, + FzName: __ccgo_ts + 25783, }, - 26: { + 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25647, + FzName: __ccgo_ts + 25793, }, - 27: { + 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 25647, + FzName: __ccgo_ts + 25793, }, - 28: { + 30: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25658, + FzName: __ccgo_ts + 25804, }, - 29: { + 31: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25675, + FzName: __ccgo_ts + 25821, }, - 30: { + 32: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 25693, + FzName: __ccgo_ts + 25839, }, - 31: { + 33: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 25711, + FzName: __ccgo_ts + 25857, }, } @@ -177099,33 +178978,35 @@ func init() { *(*uintptr)(unsafe.Add(p, 1032)) = __ccgo_fp(_jsonObjectFunc) *(*uintptr)(unsafe.Add(p, 1104)) = __ccgo_fp(_jsonPatchFunc) *(*uintptr)(unsafe.Add(p, 1176)) = __ccgo_fp(_jsonPatchFunc) - *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonQuoteFunc) - *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2048)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2056)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2064)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2120)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2128)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2136)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonQuoteFunc) + *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2208)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2280)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2328)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2336)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2344)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2352)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2400)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2408)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2416)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2424)) = __ccgo_fp(_jsonGroupInverse) } // C documentation @@ -177157,11 +179038,11 @@ var _aMod = [2]struct { FpModule uintptr }{ 0: { - FzName: __ccgo_ts + 25730, + FzName: __ccgo_ts + 25876, FpModule: uintptr(unsafe.Pointer(&_jsonEachModule)), }, 1: { - FzName: __ccgo_ts + 25740, + FzName: __ccgo_ts + 25886, FpModule: uintptr(unsafe.Pointer(&_jsonTreeModule)), }, } @@ -177813,7 +179694,7 @@ func _nodeAcquire(tls *libc.TLS, pRtree uintptr, iNode Ti64, pParent uintptr, pp } } if (*TRtree)(unsafe.Pointer(pRtree)).FpNodeBlob == uintptr(0) { - rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25750, iNode, 0, pRtree+112) + rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+25896, iNode, 0, pRtree+112) } if rc != 0 { *(*uintptr)(unsafe.Pointer(ppNode)) = uintptr(0) @@ -178125,7 +180006,7 @@ func _rtreeDestroy(tls *libc.TLS, pVtab uintptr) (r int32) { var rc int32 _, _, _ = pRtree, rc, zCreate pRtree = pVtab - zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25755, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+25901, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if !(zCreate != 0) { rc = int32(SQLITE_NOMEM) } else { @@ -179059,7 +180940,7 @@ func _findLeafNode(tls *libc.TLS, pRtree uintptr, iRowid Ti64, ppLeaf uintptr, p func _deserializeGeometry(tls *libc.TLS, pValue uintptr, pCons uintptr) (r int32) { var pBlob, pInfo, pSrc uintptr _, _, _ = pBlob, pInfo, pSrc /* Callback information */ - pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25837) + pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+25983) if pSrc == uintptr(0) { return int32(SQLITE_ERROR) } @@ -179114,7 +180995,7 @@ func _rtreeFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintp iRowid = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) *(*Ti64)(unsafe.Pointer(bp + 24)) = 0 eType = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv))) - if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv))) == float64(iRowid) { + if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && 0 == _sqlite3IntFloatCompare(tls, iRowid, Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))) { rc = _findLeafNode(tls, pRtree, iRowid, bp+16, bp+24) } else { rc = SQLITE_OK @@ -180169,6 +182050,7 @@ func _SplitNode(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iHe rc = _nodeRelease(tls, pRtree, pLeft) pLeft = uintptr(0) } + goto splitnode_out splitnode_out: ; _nodeRelease(tls, pRtree, pRight) @@ -180602,7 +182484,7 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) _, _, _, _, _, _ = rc, zCol, zCol1, zCol2, zSql, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) _ = libc.Int32FromInt32(0) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25851, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25997, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if zSql != 0 { rc = Xsqlite3_prepare_v2(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, -int32(1), bp, uintptr(0)) } else { @@ -180612,11 +182494,11 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) if rc == SQLITE_OK { if iCol == 0 { zCol = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25871, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26017, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) } else { zCol1 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol) zCol2 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol+int32(1)) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25903, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26049, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) } } Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -180779,6 +182661,7 @@ func _rtreeUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pRow rc = Xsqlite3_reset(tls, pUp) } } + goto constraint constraint: ; _rtreeRelease(tls, pRtree) @@ -180794,6 +182677,7 @@ func _rtreeBeginTransaction(tls *libc.TLS, pVtab uintptr) (r int32) { var pRtree uintptr _ = pRtree pRtree = pVtab + _ = libc.Int32FromInt32(0) (*TRtree)(unsafe.Pointer(pRtree)).FinWrTrans = uint8(1) return SQLITE_OK } @@ -180830,7 +182714,7 @@ func _rtreeRename(tls *libc.TLS, pVtab uintptr, zNewName uintptr) (r int32) { _, _, _ = pRtree, rc, zSql pRtree = pVtab rc = int32(SQLITE_NOMEM) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+25940, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26086, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) if zSql != 0 { _nodeBlobReset(tls, pRtree) rc = Xsqlite3_exec(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, uintptr(0), uintptr(0), uintptr(0)) @@ -180884,9 +182768,9 @@ func _rtreeQueryStat1(tls *libc.TLS, db uintptr, pRtree uintptr) (r int32) { var v2 int64 var _ /* p at bp+0 */ uintptr _, _, _, _, _, _ = nRow, rc, zFmt, zSql, v1, v2 - zFmt = __ccgo_ts + 26085 + zFmt = __ccgo_ts + 26231 nRow = int64(RTREE_MIN_ROWEST) - rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11591, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11716, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc != SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FnRowEst = int64(RTREE_DEFAULT_ROWEST) if rc == int32(SQLITE_ERROR) { @@ -180944,9 +182828,9 @@ func _rtreeShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName1 = [3]uintptr{ - 0: __ccgo_ts + 26141, - 1: __ccgo_ts + 5493, - 2: __ccgo_ts + 16703, + 0: __ccgo_ts + 26287, + 1: __ccgo_ts + 5557, + 2: __ccgo_ts + 16790, } var _rtreeModule = Tsqlite3_module{ @@ -180990,21 +182874,21 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref (*TRtree)(unsafe.Pointer(pRtree)).Fdb = db if isCreate != 0 { p = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26555, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26701, libc.VaList(bp+8, zDb, zPrefix)) ii = 0 for { if !(ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26617, libc.VaList(bp+8, ii)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26763, libc.VaList(bp+8, ii)) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26622, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26686, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26756, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26768, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26832, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26902, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) zCreate = Xsqlite3_str_finish(tls, p) if !(zCreate != 0) { return int32(SQLITE_NOMEM) @@ -181034,7 +182918,7 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } else { /* An UPSERT is very slightly slower than REPLACE, but it is needed ** if there are auxiliary columns */ - zFormat = __ccgo_ts + 26805 + zFormat = __ccgo_ts + 26951 } zSql = Xsqlite3_mprintf(tls, zFormat, libc.VaList(bp+8, zDb, zPrefix)) if zSql != 0 { @@ -181049,31 +182933,31 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref i++ } if (*TRtree)(unsafe.Pointer(pRtree)).FnAux != 0 && rc != int32(SQLITE_NOMEM) { - (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+26913, libc.VaList(bp+8, zDb, zPrefix)) + (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+27059, libc.VaList(bp+8, zDb, zPrefix)) if (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { p1 = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26958, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27104, libc.VaList(bp+8, zDb, zPrefix)) ii1 = 0 for { if !(ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } if ii1 != 0 { - Xsqlite3_str_append(tls, p1, __ccgo_ts+13099, int32(1)) + Xsqlite3_str_append(tls, p1, __ccgo_ts+13224, int32(1)) } if ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull) { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+26985, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27131, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) } else { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27007, libc.VaList(bp+8, ii1, ii1+int32(2))) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27153, libc.VaList(bp+8, ii1, ii1+int32(2))) } goto _3 _3: ; ii1++ } - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27015, 0) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27161, 0) zSql1 = Xsqlite3_str_finish(tls, p1) if zSql1 == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -181087,14 +182971,14 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } var _azSql = [8]uintptr{ - 0: __ccgo_ts + 26146, - 1: __ccgo_ts + 26199, - 2: __ccgo_ts + 26244, - 3: __ccgo_ts + 26296, - 4: __ccgo_ts + 26350, - 5: __ccgo_ts + 26395, - 6: __ccgo_ts + 26453, - 7: __ccgo_ts + 26508, + 0: __ccgo_ts + 26292, + 1: __ccgo_ts + 26345, + 2: __ccgo_ts + 26390, + 3: __ccgo_ts + 26442, + 4: __ccgo_ts + 26496, + 5: __ccgo_ts + 26541, + 6: __ccgo_ts + 26599, + 7: __ccgo_ts + 26654, } // C documentation @@ -181152,7 +183036,7 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE _, _ = rc, zSql if isCreate != 0 { *(*int32)(unsafe.Pointer(bp)) = 0 - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27031, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27177, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) rc = _getIntFromStmt(tls, db, zSql, bp) if rc == SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = *(*int32)(unsafe.Pointer(bp)) - int32(64) @@ -181160,17 +183044,17 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = int32(4) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*int32(RTREE_MAXCELLS) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } } else { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27051, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27197, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) rc = _getIntFromStmt(tls, db, zSql, pRtree+32) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } else { if (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize < libc.Int32FromInt32(512)-libc.Int32FromInt32(64) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< libc.Int32FromInt32(RTREE_MAX_AUX_COLUMN)+libc.Int32FromInt32(3) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) return int32(SQLITE_ERROR) } Xsqlite3_vtab_config(tls, db, int32(SQLITE_VTAB_CONSTRAINT_SUPPORT), libc.VaList(bp+8, int32(1))) @@ -181247,13 +183131,13 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27294, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27440, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27300, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27446, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) ii = int32(4) for { if !(ii < argc) { @@ -181262,7 +183146,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt zArg = *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)) if int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('+') { (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27324, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27470, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) } else { if int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux) > 0 { break @@ -181276,19 +183160,19 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27351, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27497, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) } else { if ii < argc { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, aErrMsg[int32(4)])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, aErrMsg[int32(4)])) rc = int32(SQLITE_ERROR) } else { v3 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v3 if SQLITE_OK != v3 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } } @@ -181311,7 +183195,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } } if iErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, aErrMsg[iErr])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, aErrMsg[iErr])) goto rtreeInit_fail } (*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell = uint8(int32(8) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)*int32(4)) @@ -181322,11 +183206,12 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto rtreeInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto rtreeInit_fail rtreeInit_fail: ; if rc == SQLITE_OK { @@ -181339,8 +183224,8 @@ rtreeInit_fail: } var _azFormat = [2]uintptr{ - 0: __ccgo_ts + 27330, - 1: __ccgo_ts + 27341, + 0: __ccgo_ts + 27476, + 1: __ccgo_ts + 27487, } // C documentation @@ -181398,21 +183283,21 @@ func _rtreenode(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { } _nodeGetCell(tls, bp+40, bp, ii, bp+1008) if ii > 0 { - Xsqlite3_str_append(tls, pOut, __ccgo_ts+11211, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+11336, int32(1)) } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27354, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27500, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) jj = 0 for { if !(jj < int32((*(*TRtree)(unsafe.Pointer(bp + 40))).FnDim2)) { break } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27360, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27506, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) goto _2 _2: ; jj++ } - Xsqlite3_str_append(tls, pOut, __ccgo_ts+27364, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+27510, int32(1)) goto _1 _1: ; @@ -181439,7 +183324,7 @@ func _rtreedepth(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { _ = zBlob _ = nArg if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apArg))) != int32(SQLITE_BLOB) || Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(apArg))) < int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+27366, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+27512, -int32(1)) } else { zBlob = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(apArg))) if zBlob != 0 { @@ -181557,11 +183442,11 @@ func _rtreeCheckAppendMsg(tls *libc.TLS, pCheck uintptr, zFmt uintptr, va uintpt (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } else { if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport != 0 { - v1 = __ccgo_ts + 4212 + v1 = __ccgo_ts + 4276 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27399, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27545, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport == uintptr(0) { (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } @@ -181595,7 +183480,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt _, _, _ = nNode, pNode, pRet pRet = uintptr(0) /* Return value */ if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode == uintptr(0) { - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27406, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27552, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) } if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { Xsqlite3_bind_int64(tls, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, int32(1), iNode) @@ -181612,7 +183497,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt } _rtreeCheckReset(tls, pCheck, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && pRet == uintptr(0) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27451, libc.VaList(bp+8, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27597, libc.VaList(bp+8, iNode)) } } return pRet @@ -181641,8 +183526,8 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i var rc int32 _, _, _, _, _, _ = azSql, ii, pStmt, rc, v1, v2 azSql = [2]uintptr{ - 0: __ccgo_ts + 27483, - 1: __ccgo_ts + 27537, + 0: __ccgo_ts + 27629, + 1: __ccgo_ts + 27683, } _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) == uintptr(0) { @@ -181656,21 +183541,21 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i rc = Xsqlite3_step(tls, pStmt) if rc == int32(SQLITE_DONE) { if bLeaf != 0 { - v1 = __ccgo_ts + 27585 + v1 = __ccgo_ts + 27731 } else { - v1 = __ccgo_ts + 27593 + v1 = __ccgo_ts + 27739 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27602, libc.VaList(bp+8, iKey, iVal, v1)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27748, libc.VaList(bp+8, iKey, iVal, v1)) } else { if rc == int32(SQLITE_ROW) { ii = Xsqlite3_column_int64(tls, pStmt, 0) if ii != iVal { if bLeaf != 0 { - v2 = __ccgo_ts + 27585 + v2 = __ccgo_ts + 27731 } else { - v2 = __ccgo_ts + 27593 + v2 = __ccgo_ts + 27739 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27647, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27793, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) } } } @@ -181715,7 +183600,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 v2 = libc.BoolInt32(*(*TRtreeValue)(unsafe.Pointer(bp)) > *(*TRtreeValue)(unsafe.Pointer(bp + 4))) } if v2 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27705, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27851, libc.VaList(bp+24, i, iCell, iNode)) } if pParent != 0 { _readCoord(tls, pParent+uintptr(libc.Int32FromInt32(4)*libc.Int32FromInt32(2)*i), bp+8) @@ -181733,7 +183618,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 } } if v5 || v4 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27753, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27899, libc.VaList(bp+24, i, iCell, iNode)) } } goto _1 @@ -181768,19 +183653,19 @@ func _rtreeCheckNode(tls *libc.TLS, pCheck uintptr, iDepth int32, aParent uintpt aNode = _rtreeCheckGetNode(tls, pCheck, iNode, bp) if aNode != 0 { if *(*int32)(unsafe.Pointer(bp)) < int32(4) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27820, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27966, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) } else { /* Used to iterate through cells */ if aParent == uintptr(0) { iDepth = _readInt16(tls, aNode) if iDepth > int32(RTREE_MAX_DEPTH) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27854, libc.VaList(bp+16, iDepth)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28000, libc.VaList(bp+16, iDepth)) Xsqlite3_free(tls, aNode) return } } nCell = _readInt16(tls, aNode+2) if int32(4)+nCell*(int32(8)+(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnDim*int32(2)*int32(4)) > *(*int32)(unsafe.Pointer(bp)) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27884, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28030, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) } else { i = 0 for { @@ -181825,12 +183710,12 @@ func _rtreeCheckCount(tls *libc.TLS, pCheck uintptr, zTbl uintptr, nExpect Ti64) var pCount uintptr _, _ = nActual, pCount if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { - pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27939, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) + pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+28085, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) if pCount != 0 { if Xsqlite3_step(tls, pCount) == int32(SQLITE_ROW) { nActual = Xsqlite3_column_int64(tls, pCount, 0) if nActual != nExpect { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27970, libc.VaList(bp+8, zTbl, nExpect, nActual)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28116, libc.VaList(bp+8, zTbl, nExpect, nActual)) } } (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = Xsqlite3_finalize(tls, pCount) @@ -181859,7 +183744,7 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzDb = zDb (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzTab = zTab /* Find the number of auxiliary columns */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28037, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28183, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { nAux = Xsqlite3_column_count(tls, pStmt) - int32(2) Xsqlite3_finalize(tls, pStmt) @@ -181869,11 +183754,11 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe } } /* Find number of dimensions in the rtree table. */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25851, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+25997, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim = (Xsqlite3_column_count(tls, pStmt) - int32(1) - nAux) / int32(2) if (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim < int32(1) { - _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28065, 0) + _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28211, 0) } else { if int32(SQLITE_ROW) == Xsqlite3_step(tls, pStmt) { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FbInt = libc.BoolInt32(Xsqlite3_column_type(tls, pStmt, int32(1)) == int32(SQLITE_INTEGER)) @@ -181889,8 +183774,8 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe if (*(*TRtreeCheck)(unsafe.Pointer(bp))).Frc == SQLITE_OK { _rtreeCheckNode(tls, bp, 0, uintptr(0), int64(1)) } - _rtreeCheckCount(tls, bp, __ccgo_ts+28096, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) - _rtreeCheckCount(tls, bp, __ccgo_ts+28103, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28242, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28249, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) } /* Finalize SQL statements used by the integrity-check */ Xsqlite3_finalize(tls, (*(*TRtreeCheck)(unsafe.Pointer(bp))).FpGetNode) @@ -181918,7 +183803,7 @@ func _rtreeIntegrity(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zName uintpt _ = isQuick rc = _rtreeCheckTable(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, pzErr) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28111, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+28257, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) if *(*uintptr)(unsafe.Pointer(pzErr)) == uintptr(0) { rc = int32(SQLITE_NOMEM) } @@ -181969,13 +183854,13 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { var _ /* zReport at bp+0 */ uintptr _, _, _, _ = rc, zDb, zTab, v1 if nArg != int32(1) && nArg != int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+28130, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+28276, -int32(1)) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zDb = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg))) if nArg == int32(1) { zTab = zDb - zDb = __ccgo_ts + 6594 + zDb = __ccgo_ts + 6658 } else { zTab = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8))) } @@ -181984,7 +183869,7 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(bp)) } else { - v1 = __ccgo_ts + 18470 + v1 = __ccgo_ts + 18557 } Xsqlite3_result_text(tls, ctx, v1, -int32(1), uintptr(-libc.Int32FromInt32(1))) } else { @@ -182317,6 +184202,7 @@ func _geopolyParseJson(tls *libc.TLS, z uintptr, pRc uintptr) (r uintptr) { rc = int32(SQLITE_ERROR) } } + goto parse_json_err parse_json_err: ; if pRc != 0 { @@ -182450,19 +184336,19 @@ func _geopolyJsonFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if p != 0 { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) - Xsqlite3_str_append(tls, x, __ccgo_ts+25104, int32(1)) + Xsqlite3_str_append(tls, x, __ccgo_ts+25233, int32(1)) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28181, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28327, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28192, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28338, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -182491,20 +184377,20 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) cSep = uint8('\'') - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28203, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28349, 0) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28221, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28367, libc.VaList(bp+8, int32(cSep), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) cSep = uint8(' ') goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28229, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28375, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) i = int32(1) for { if !(i < argc) { @@ -182512,14 +184398,14 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if z != 0 && *(*uint8)(unsafe.Pointer(z)) != 0 { - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28237, libc.VaList(bp+8, z)) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28383, libc.VaList(bp+8, z)) } goto _2 _2: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28241, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28387, 0) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -182825,6 +184711,7 @@ func _geopolyBBox(tls *libc.TLS, context uintptr, pPoly uintptr, aCoord uintptr, if !(aCoord == uintptr(0)) { goto _6 } + goto geopolyBboxFill geopolyBboxFill: ; pOut = Xsqlite3_realloc64(tls, p, libc.Uint64FromInt64(40)+libc.Uint64FromInt64(4)*libc.Uint64FromInt32(2)*uint64(libc.Int32FromInt32(4)-libc.Int32FromInt32(4))) @@ -182928,8 +184815,8 @@ func _geopolyBBoxStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if pBBox == uintptr(0) { return } - if (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit == 0 { - (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit = int32(1) + if libc.AtomicLoadPInt32(pBBox) == 0 { + libc.AtomicStorePInt32(pBBox, int32(1)) libc.Xmemcpy(tls, pBBox+4, bp, libc.Uint64FromInt64(4)*libc.Uint64FromInt32(4)) } else { if *(*TRtreeValue)(unsafe.Pointer(bp)) < *(*TRtreeValue)(unsafe.Pointer(pBBox + 4)) { @@ -183556,6 +185443,7 @@ func _geopolyOverlap(tls *libc.TLS, p1 uintptr, p2 uintptr) (r int32) { } } } + goto geopolyOverlapDone geopolyOverlapDone: ; Xsqlite3_free(tls, p) @@ -183647,13 +185535,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27294, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27440, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28254, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28400, 0) (*TRtree)(unsafe.Pointer(pRtree)).FnAux = uint8(1) /* Add one for _shape */ (*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull = uint8(1) /* The _shape column is always not-null */ ii = int32(3) @@ -183662,13 +185550,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint break } (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28276, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28422, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27351, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27497, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) @@ -183676,7 +185564,7 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint v2 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v2 if SQLITE_OK != v2 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } Xsqlite3_free(tls, zSql) @@ -183691,11 +185579,12 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto geopolyInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto geopolyInit_fail geopolyInit_fail: ; if rc == SQLITE_OK { @@ -183849,6 +185738,7 @@ func _geopolyFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uin *(*int32)(unsafe.Pointer(bp + 8)) = _rtreeStepToLeaf(tls, pCsr) } } + goto geopoly_filter_end geopoly_filter_end: ; _nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp))) @@ -183906,7 +185796,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iRowidTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(1) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16703 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16790 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).Fomit = uint8(1) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(30) @@ -183916,7 +185806,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iFuncTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = idxNum - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28280 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28426 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).Fomit = uint8(0) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(300) @@ -183924,7 +185814,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { return SQLITE_OK } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(4) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28286 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28432 (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(3e+06) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(100000) return SQLITE_OK @@ -184046,7 +185936,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR _geopolyBBox(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(aData + 2*8)), bp+8+8, bp) if *(*int32)(unsafe.Pointer(bp)) != 0 { if *(*int32)(unsafe.Pointer(bp)) == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28295, 0) + (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28441, 0) } goto geopoly_update_end } @@ -184134,6 +186024,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, pUp) } } + goto geopoly_update_end geopoly_update_end: ; _rtreeRelease(tls, pRtree) @@ -184149,12 +186040,12 @@ geopoly_update_end: func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28335) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28481) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28351) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28497) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) @@ -184225,7 +186116,7 @@ func _sqlite3_geopoly_init(tls *libc.TLS, db uintptr) (r int32) { i++ } if rc == SQLITE_OK { - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28528, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28674, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) } return rc } @@ -184239,61 +186130,61 @@ var _aFunc = [12]struct { 0: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28366, + FzName: __ccgo_ts + 28512, }, 1: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28379, + FzName: __ccgo_ts + 28525, }, 2: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28392, + FzName: __ccgo_ts + 28538, }, 3: { FnArg: int8(-int32(1)), FbPure: uint8(1), - FzName: __ccgo_ts + 28405, + FzName: __ccgo_ts + 28551, }, 4: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28351, + FzName: __ccgo_ts + 28497, }, 5: { FnArg: int8(3), FbPure: uint8(1), - FzName: __ccgo_ts + 28417, + FzName: __ccgo_ts + 28563, }, 6: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28335, + FzName: __ccgo_ts + 28481, }, 7: { FnArg: int8(1), - FzName: __ccgo_ts + 28440, + FzName: __ccgo_ts + 28586, }, 8: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28454, + FzName: __ccgo_ts + 28600, }, 9: { FnArg: int8(7), FbPure: uint8(1), - FzName: __ccgo_ts + 28467, + FzName: __ccgo_ts + 28613, }, 10: { FnArg: int8(4), FbPure: uint8(1), - FzName: __ccgo_ts + 28481, + FzName: __ccgo_ts + 28627, }, 11: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28497, + FzName: __ccgo_ts + 28643, }, } @@ -184319,7 +186210,7 @@ var _aAgg = [1]struct { FzName uintptr }{ 0: { - FzName: __ccgo_ts + 28509, + FzName: __ccgo_ts + 28655, }, } @@ -184344,20 +186235,20 @@ func _sqlite3RtreeInit(tls *libc.TLS, db uintptr) (r int32) { var rc, utf8 int32 _, _, _, _ = c, c1, rc, utf8 utf8 = int32(SQLITE_UTF8) - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28536, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28682, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28546, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28692, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28557, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28703, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { c = libc.UintptrFromInt32(RTREE_COORD_REAL32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28280, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28426, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) } if rc == SQLITE_OK { c1 = libc.UintptrFromInt32(RTREE_COORD_INT32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28568, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28714, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) } if rc == SQLITE_OK { rc = _sqlite3_geopoly_init(tls, db) @@ -184459,7 +186350,7 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { Xsqlite3_result_error_nomem(tls, ctx) _rtreeMatchArgFree(tls, pBlob) } else { - Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25837, __ccgo_fp(_rtreeMatchArgFree)) + Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+25983, __ccgo_fp(_rtreeMatchArgFree)) } } } @@ -185677,7 +187568,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt /* Figure out the size of the output */ nOut = _rbuDeltaOutputSize(tls, aDelta, nDelta) if nOut < 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+28578, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28724, -int32(1)) return } aOut = Xsqlite3_malloc(tls, nOut+int32(1)) @@ -185687,7 +187578,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt nOut2 = _rbuDeltaApply(tls, aOrig, nOrig, aDelta, nDelta, aOut) if nOut2 != nOut { Xsqlite3_free(tls, aOut) - Xsqlite3_result_error(tls, context, __ccgo_ts+28578, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28724, -int32(1)) } else { Xsqlite3_result_blob(tls, context, aOut, nOut, __ccgo_fp(Xsqlite3_free)) } @@ -185713,7 +187604,7 @@ func _prepareAndCollectError(tls *libc.TLS, db uintptr, ppStmt uintptr, pzErrmsg _ = rc rc = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), ppStmt, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) } return rc @@ -185736,7 +187627,7 @@ func _resetAndCollectError(tls *libc.TLS, pStmt uintptr, pzErrmsg uintptr) (r in _ = rc rc = Xsqlite3_reset(tls, pStmt) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) } return rc } @@ -185869,7 +187760,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { /* Free any SQLite statements used while processing the previous object */ _rbuObjIterClearStatements(tls, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28599, uintptr(0), uintptr(0), p+64) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28745, uintptr(0), uintptr(0), p+64) } if rc == SQLITE_OK { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 { @@ -185879,6 +187770,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { if rc != int32(SQLITE_ROW) { rc = _resetAndCollectError(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, p+64) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = uintptr(0) + (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = uintptr(0) } else { (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, 0) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, int32(1)) @@ -185959,7 +187851,7 @@ func _rbuTargetNameFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { Xsqlite3_result_text(tls, pCtx, zIn, -int32(1), libc.UintptrFromInt32(0)) } } else { - if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25750, zIn, uint64(4)) == 0 { + if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25896, zIn, uint64(4)) == 0 { i = int32(4) for { if !(int32(*(*uint8)(unsafe.Pointer(zIn + uintptr(i)))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(zIn + uintptr(i)))) <= int32('9')) { @@ -185996,13 +187888,13 @@ func _rbuObjIterFirst(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { _, _ = rc, v1 libc.Xmemset(tls, pIter, 0, uint64(192)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 28770 + v1 = __ccgo_ts + 28916 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+28811, libc.VaList(bp+8, v1))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+28957, libc.VaList(bp+8, v1))) if rc == SQLITE_OK { - rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+28961) + rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+29107) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup = int32(1) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -186170,7 +188062,7 @@ func _rbuFinalize(tls *libc.TLS, p uintptr, pStmt uintptr) { rc = Xsqlite3_finalize(tls, pStmt) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && rc != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } @@ -186232,7 +188124,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu *(*int32)(unsafe.Pointer(peType)) = RBU_PK_NOTABLE *(*int32)(unsafe.Pointer(piPk)) = 0 _ = libc.Int32FromInt32(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29086, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29232, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK || Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0]) != int32(SQLITE_ROW) { /* Either an error, or no such table. */ goto rbuTableType_end @@ -186242,7 +188134,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } *(*int32)(unsafe.Pointer(piTnum)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0], int32(1)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29205, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29351, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { goto rbuTableType_end } @@ -186250,7 +188142,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu zOrig = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(3)) zIdx = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(1)) if zOrig != 0 && zIdx != 0 && int32(*(*Tu8)(unsafe.Pointer(zOrig))) == int32('p') { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29226, libc.VaList(bp+40, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29372, libc.VaList(bp+40, zIdx))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)]) == int32(SQLITE_ROW) { *(*int32)(unsafe.Pointer(piPk)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)], 0) @@ -186262,7 +188154,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29277, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29423, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { for Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)]) == int32(SQLITE_ROW) { if Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)], int32(5)) > 0 { @@ -186272,6 +188164,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu } *(*int32)(unsafe.Pointer(peType)) = int32(RBU_PK_NONE) } + goto rbuTableType_end rbuTableType_end: ; i = uint32(0) @@ -186305,7 +188198,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { bIndex = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { libc.Xmemcpy(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk, uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29298, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29444, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FnIndex = 0 for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -186318,7 +188211,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { if bPartial != 0 { libc.Xmemset(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, int32(0x01), uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29326, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29472, libc.VaList(bp+24, zIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) if iCid >= 0 { @@ -186372,7 +188265,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 _rbuTableType(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, pIter+72, bp+8, pIter+108) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NOTABLE { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+19913, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+20045, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc @@ -186384,7 +188277,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 /* Populate the azTblCol[] and nTblCol variables based on the columns ** of the input table. Ignore any input table columns that begin with ** "rbu_". */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29355, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29501, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { nCol = Xsqlite3_column_count(tls, *(*uintptr)(unsafe.Pointer(bp))) _rbuAllocateIterArrays(tls, p, pIter, nCol) @@ -186395,7 +188288,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 break } zName = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), i) - if Xsqlite3_strnicmp(tls, __ccgo_ts+29374, zName, int32(4)) != 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+29520, zName, int32(4)) != 0 { zCopy = _rbuStrndup(tls, zName, p+56) *(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)*4)) = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol v3 = pIter + 16 @@ -186403,7 +188296,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 *(*int32)(unsafe.Pointer(v3))++ *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(v2)*8)) = zCopy } else { - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29379, zName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29525, zName) { bRbuRowid = int32(1) } } @@ -186417,17 +188310,17 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && bRbuRowid != libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) if bRbuRowid != 0 { - v4 = __ccgo_ts + 29389 + v4 = __ccgo_ts + 29535 } else { - v4 = __ccgo_ts + 29402 + v4 = __ccgo_ts + 29548 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29411, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29557, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) } /* Check that all non-HIDDEN columns in the destination table are also ** present in the input table. Populate the abTblPk[], azTblType[] and ** aiTblOrder[] arrays at the same time. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29440, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29586, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zName1 = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -186449,7 +188342,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 } if i == (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29462, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29608, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) } else { iPk = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) bNotNull = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) @@ -186491,15 +188384,15 @@ func _rbuObjIterGetCollist(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) var z, zList, zSep uintptr _, _, _, _ = i, z, zList, zSep zList = uintptr(0) - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } z = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+29489, libc.VaList(bp+8, zList, zSep, z)) - zSep = __ccgo_ts + 14999 + zList = _rbuMPrintf(tls, p, __ccgo_ts+29635, libc.VaList(bp+8, zList, zSep, z)) + zSep = __ccgo_ts + 15092 goto _1 _1: ; @@ -186524,7 +188417,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, _, _, _, _, _ = i, iPk, zCol, zRet, zSep iPk = int32(1) zRet = uintptr(0) - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 for int32(1) != 0 { i = 0 for { @@ -186533,7 +188426,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, } if int32(*(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == iPk { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29498, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29644, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) zSep = zSeparator break } @@ -186581,21 +188474,21 @@ func _rbuVacuumTableStart(tls *libc.TLS, p uintptr, pIter uintptr, bRowid int32, *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zRet = uintptr(0) if bRowid != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29511, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29657, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iMax = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29543, libc.VaList(bp+16, iMax)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29689, libc.VaList(bp+16, iMax)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1657, __ccgo_ts+14999, __ccgo_ts+29566) - zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29572, __ccgo_ts+29579, __ccgo_ts+5115) - zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1657, __ccgo_ts+14999, __ccgo_ts+1657) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1671, __ccgo_ts+15092, __ccgo_ts+29712) + zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29718, __ccgo_ts+29725, __ccgo_ts+5179) + zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1671, __ccgo_ts+15092, __ccgo_ts+1671) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29587, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29733, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zVal = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29629, libc.VaList(bp+16, zList, zVal)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29775, libc.VaList(bp+16, zList, zVal)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } @@ -186644,10 +188537,10 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { zVector = uintptr(0) zRet = uintptr(0) bFailed = 0 - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 iCol = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29326, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29472, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(4)) @@ -186670,15 +188563,15 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _ = libc.Int32FromInt32(0) zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { - zCol = __ccgo_ts + 29649 + zCol = __ccgo_ts + 29795 } } else { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) } - zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29657, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29678, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) - zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29714, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) - zSep = __ccgo_ts + 14999 + zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29803, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29824, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) + zSelect = _rbuMPrintf(tls, p, __ccgo_ts+29860, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) + zSep = __ccgo_ts + 15092 iCol++ } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) @@ -186687,9 +188580,9 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29741, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29887, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 iCol = 0 for { if !(iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol) { @@ -186704,19 +188597,20 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { break } } - zVector = _rbuMPrintf(tls, p, __ccgo_ts+29789, libc.VaList(bp+24, zVector, zSep, zQuoted)) - zSep = __ccgo_ts + 14999 + zVector = _rbuMPrintf(tls, p, __ccgo_ts+29935, libc.VaList(bp+24, zVector, zSep, zQuoted)) + zSep = __ccgo_ts + 15092 goto _2 _2: ; iCol++ } if !(bFailed != 0) { - zRet = _rbuMPrintf(tls, p, __ccgo_ts+29796, libc.VaList(bp+24, zLhs, zVector)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29942, libc.VaList(bp+24, zLhs, zVector)) } } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } + goto index_start_out index_start_out: ; Xsqlite3_free(tls, zOrder) @@ -186765,12 +188659,12 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zImpPK = uintptr(0) /* String to return via *pzImposterPK */ zWhere = uintptr(0) /* String to return via *pzWhere */ nBind = 0 /* Value to return via *pnBind */ - zCom = __ccgo_ts + 1657 /* Set to ", " later on */ - zAnd = __ccgo_ts + 1657 /* Set to " AND " later on */ + zCom = __ccgo_ts + 1671 /* Set to ", " later on */ + zAnd = __ccgo_ts + 1671 /* Set to " AND " later on */ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_xinfo = ? */ if rc == SQLITE_OK { _ = libc.Int32FromInt32(0) - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29326, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29472, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -186779,8 +188673,8 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = uintptr(0) if iCid == -int32(2) { iSeq = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29808, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) - zType = __ccgo_ts + 1657 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29954, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) + zType = __ccgo_ts + 1671 } else { if iCid < 0 { /* An integer primary key. If the table has an explicit IPK, use @@ -186800,9 +188694,9 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - zCol = __ccgo_ts + 29649 + zCol = __ccgo_ts + 29795 } else { - zCol = __ccgo_ts + 29379 + zCol = __ccgo_ts + 29525 } } zType = __ccgo_ts + 1145 @@ -186810,24 +188704,24 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) zType = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)) } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29830, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+29976, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) } if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbUnique == 0 || Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) != 0 { if bDesc != 0 { - v2 = __ccgo_ts + 29566 + v2 = __ccgo_ts + 29712 } else { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } zOrder = v2 - zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29850, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) + zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+29996, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) } - zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+29871, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) - zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+29904, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) + zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+30017, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) + zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+30050, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) if zRet == uintptr(0) || zImpPK == uintptr(0) || zImpCols == uintptr(0) || zWhere == uintptr(0) { rc = int32(SQLITE_NOMEM) } - zCom = __ccgo_ts + 14999 - zAnd = __ccgo_ts + 22022 + zCom = __ccgo_ts + 15092 + zAnd = __ccgo_ts + 22167 nBind++ } rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -186873,7 +188767,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr _, _, _, _ = i, zCol, zList, zS zList = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zS = __ccgo_ts + 1657 + zS = __ccgo_ts + 1671 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -186881,11 +188775,11 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed + uintptr(i))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29928, libc.VaList(bp+8, zList, zS, zObj, zCol)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30074, libc.VaList(bp+8, zList, zS, zObj, zCol)) } else { - zList = Xsqlite3_mprintf(tls, __ccgo_ts+29940, libc.VaList(bp+8, zList, zS)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30086, libc.VaList(bp+8, zList, zS)) } - zS = __ccgo_ts + 14999 + zS = __ccgo_ts + 15092 if zList == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) break @@ -186897,7 +188791,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } /* For a table with implicit rowids, append "old._rowid_" to the list. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29949, libc.VaList(bp+8, zList, zObj)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30095, libc.VaList(bp+8, zList, zObj)) } } return zList @@ -186923,27 +188817,27 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _ = i, i1, zCol, zList, zSep, zSep1 zList = uintptr(0) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29964, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30110, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 { - zList = _rbuMPrintf(tls, p, __ccgo_ts+29978, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) - zSep = __ccgo_ts + 22022 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30124, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) + zSep = __ccgo_ts + 22167 } goto _1 _1: ; i++ } - zList = _rbuMPrintf(tls, p, __ccgo_ts+29990, libc.VaList(bp+8, zList)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30136, libc.VaList(bp+8, zList)) } else { - zSep1 = __ccgo_ts + 1657 + zSep1 = __ccgo_ts + 1671 i1 = 0 for { if !(i1 < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -186951,8 +188845,8 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i1))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i1)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+30040, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) - zSep1 = __ccgo_ts + 22022 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30186, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) + zSep1 = __ccgo_ts + 22167 } goto _2 _2: @@ -186975,7 +188869,7 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { // */ func _rbuBadControlError(tls *libc.TLS, p uintptr) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30053, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30199, 0) } // C documentation @@ -187009,7 +188903,7 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt if int32(libc.Xstrlen(tls, zMask)) != (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { _rbuBadControlError(tls, p) } else { - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -187017,16 +188911,16 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt } c = *(*uint8)(unsafe.Pointer(zMask + uintptr(*(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(i)*4))))) if int32(c) == int32('x') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30040, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14999 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30186, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15092 } else { if int32(c) == int32('d') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30079, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14999 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30225, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15092 } else { if int32(c) == int32('f') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30109, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 14999 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30255, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15092 } } } @@ -187111,16 +189005,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { z = uintptr(0) _ = libc.Int32FromInt32(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zSep = __ccgo_ts + 30146 + zSep = __ccgo_ts + 30292 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_list = (pIter->zTbl) */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA index_xinfo = */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29298, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29444, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zOrig = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) - if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16591) == 0 { + if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16678) == 0 { zIdx = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29326, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29472, libc.VaList(bp+24, zIdx))) } break } @@ -187131,16 +189025,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { /* int iCid = sqlite3_column_int(pXInfo, 0); */ zCol = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(2)) if Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) != 0 { - v1 = __ccgo_ts + 29566 + v1 = __ccgo_ts + 29712 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } zDesc = v1 - z = _rbuMPrintf(tls, p, __ccgo_ts+30159, libc.VaList(bp+24, z, zSep, zCol, zDesc)) - zSep = __ccgo_ts + 14999 + z = _rbuMPrintf(tls, p, __ccgo_ts+30305, libc.VaList(bp+24, z, zSep, zCol, zDesc)) + zSep = __ccgo_ts + 15092 } } - z = _rbuMPrintf(tls, p, __ccgo_ts+30170, libc.VaList(bp+24, z)) + z = _rbuMPrintf(tls, p, __ccgo_ts+30316, libc.VaList(bp+24, z)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } return z @@ -187180,13 +189074,13 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* SELECT name ... WHERE rootpage = $tnum */ zIdx = uintptr(0) /* Name of PK index */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA main.index_xinfo = $zIdx */ - zComma = __ccgo_ts + 1657 + zComma = __ccgo_ts + 1671 zCols = uintptr(0) /* Used to build up list of table cols */ zPk = uintptr(0) /* Used to build up table PK declaration */ /* Figure out the name of the primary key index for the current table. ** This is needed for the argument to "PRAGMA index_xinfo". Set ** zIdx to point to a nul-terminated string containing this name. */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30174) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30320) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), tnum) if int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -187194,7 +189088,7 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { } } if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29326, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29472, libc.VaList(bp+24, zIdx))) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { @@ -187203,21 +189097,21 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) bDesc = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(4)) - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30224, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30370, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) if bDesc != 0 { - v1 = __ccgo_ts + 29566 + v1 = __ccgo_ts + 29712 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } - zPk = _rbuMPrintf(tls, p, __ccgo_ts+30246, libc.VaList(bp+24, zPk, zComma, iCid, v1)) - zComma = __ccgo_ts + 14999 + zPk = _rbuMPrintf(tls, p, __ccgo_ts+30392, libc.VaList(bp+24, zPk, zComma, iCid, v1)) + zComma = __ccgo_ts + 15092 } } - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30256, libc.VaList(bp+24, zCols)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30402, libc.VaList(bp+24, zCols)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30271, libc.VaList(bp+24, zCols, zPk)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30417, libc.VaList(bp+24, zCols, zPk)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, 0, 0)) } } @@ -187252,30 +189146,30 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { _, _, _, _, _, _, _, _, _ = iCol, tnum, zCol, zComma, zPk, zPk1, zSql, v2, v3 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { tnum = (*TRbuObjIter)(unsafe.Pointer(pIter)).FiTnum - zComma = __ccgo_ts + 1657 + zComma = __ccgo_ts + 1671 zSql = uintptr(0) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, 0, int32(1))) iCol = 0 for { if !((*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } - zPk = __ccgo_ts + 1657 + zPk = __ccgo_ts + 1671 zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCol)*8)) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_IPK) && *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(iCol))) != 0 { /* If the target table column is an "INTEGER PRIMARY KEY", add ** "PRIMARY KEY" to the imposter table column declaration. */ - zPk = __ccgo_ts + 30333 + zPk = __ccgo_ts + 30479 } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iCol))) != 0 { - v2 = __ccgo_ts + 30346 + v2 = __ccgo_ts + 30492 } else { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30356, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) - zComma = __ccgo_ts + 14999 + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30502, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) + zComma = __ccgo_ts + 15092 goto _1 _1: ; @@ -187284,17 +189178,17 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { zPk1 = _rbuWithoutRowidPK(tls, p, pIter) if zPk1 != 0 { - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30383, libc.VaList(bp+16, zSql, zPk1)) + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30529, libc.VaList(bp+16, zSql, zPk1)) } } - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, int32(1), tnum)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, int32(1), tnum)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { - v3 = __ccgo_ts + 30390 + v3 = __ccgo_ts + 30536 } else { - v3 = __ccgo_ts + 1657 + v3 = __ccgo_ts + 1671 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30405, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, 0, 0)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30551, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, 0, 0)) } } @@ -187321,7 +189215,7 @@ func _rbuObjIterPrepareTmpInsert(tls *libc.TLS, p uintptr, pIter uintptr, zColli zBind = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1)+bRbuRowid) if zBind != 0 { _ = libc.Int32FromInt32(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30437, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30583, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) } } @@ -187369,7 +189263,7 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt zRet = uintptr(0) _ = libc.Int32FromInt32(0) if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30494) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30640) } if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3_bind_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx, -int32(1), libc.UintptrFromInt32(0)) @@ -187540,7 +189434,7 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zIdx = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx zLimit = uintptr(0) if nOffset != 0 { - zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30560, libc.VaList(bp+40, nOffset)) + zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30706, libc.VaList(bp+40, nOffset)) if !(zLimit != 0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } @@ -187558,18 +189452,18 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zCollist = _rbuObjIterGetIndexCols(tls, p, pIter, bp, bp+8, bp+16, bp+24) zBind = _rbuObjIterGetBindlist(tls, p, *(*int32)(unsafe.Pointer(bp + 24))) /* Create the imposter table used to write to this index. */ - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, 0, int32(1))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30580, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30726, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, 0, 0)) /* Create the statement to insert index entries */ (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = *(*int32)(unsafe.Pointer(bp + 24)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30645, libc.VaList(bp+40, zTbl, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30791, libc.VaList(bp+40, zTbl, zBind))) } /* And to delete index entries */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30681, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30827, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) } /* Create the SELECT statement to read keys in sorted order */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -187584,26 +189478,26 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } if zStart != 0 { if zPart != 0 { - v2 = __ccgo_ts + 30715 + v2 = __ccgo_ts + 30861 } else { - v2 = __ccgo_ts + 30719 + v2 = __ccgo_ts + 30865 } v1 = v2 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30725, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30871, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) Xsqlite3_free(tls, zStart) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30786, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30932, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) } else { if zPart != 0 { - v3 = __ccgo_ts + 30715 + v3 = __ccgo_ts + 30861 } else { - v3 = __ccgo_ts + 30719 + v3 = __ccgo_ts + 30865 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30847, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+30993, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -187622,62 +189516,62 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zTbl1 = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl /* Imposter table name */ zBindings = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+bRbuRowid) zWhere1 = _rbuObjIterGetWhere(tls, p, pIter) - zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6605) - zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6601) + zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6669) + zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6665) zCollist = _rbuObjIterGetCollist(tls, p, pIter) (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol /* Create the imposter table or tables (if required). */ _rbuCreateImposterTable(tls, p, pIter) _rbuCreateImposterTable2(tls, p, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) { - v4 = __ccgo_ts + 1657 + v4 = __ccgo_ts + 1671 } else { - v4 = __ccgo_ts + 31006 + v4 = __ccgo_ts + 31152 } zWrite = v4 /* Create the INSERT statement to write to the target PK b-tree */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if bRbuRowid != 0 { - v5 = __ccgo_ts + 31015 + v5 = __ccgo_ts + 31161 } else { - v5 = __ccgo_ts + 1657 + v5 = __ccgo_ts + 1671 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31025, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31171, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) } /* Create the DELETE statement to write to the target PK b-tree. ** Because it only performs INSERT operations, this is not required for ** an rbu vacuum handle. */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31061, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31207, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) } if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zRbuRowid = __ccgo_ts + 1657 + zRbuRowid = __ccgo_ts + 1671 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zRbuRowid = __ccgo_ts + 31089 + zRbuRowid = __ccgo_ts + 31235 } /* Create the rbu_tmp_xxx table and the triggers to populate it. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - v6 = __ccgo_ts + 31101 + v6 = __ccgo_ts + 31247 } else { - v6 = __ccgo_ts + 1657 + v6 = __ccgo_ts + 1671 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31118, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31194, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31264, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31340, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31493, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31639, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) } _rbuObjIterPrepareTmpInsert(tls, p, pIter, zCollist, zRbuRowid) } /* Create the SELECT statement to read keys from data_xxx */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zRbuRowid1 = __ccgo_ts + 1657 + zRbuRowid1 = __ccgo_ts + 1671 zStart1 = uintptr(0) zOrder = uintptr(0) if bRbuRowid != 0 { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v7 = __ccgo_ts + 31592 + v7 = __ccgo_ts + 31738 } else { - v7 = __ccgo_ts + 31602 + v7 = __ccgo_ts + 31748 } zRbuRowid1 = v7 } @@ -187690,28 +189584,28 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } } if bRbuRowid != 0 { - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29649, 0) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29795, 0) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1657, __ccgo_ts+14999, __ccgo_ts+1657) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1671, __ccgo_ts+15092, __ccgo_ts+1671) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v8 = __ccgo_ts + 31613 + v8 = __ccgo_ts + 31759 } else { - v8 = __ccgo_ts + 1657 + v8 = __ccgo_ts + 1671 } if zStart1 != 0 { v9 = zStart1 } else { - v9 = __ccgo_ts + 1657 + v9 = __ccgo_ts + 1671 } if zOrder != 0 { - v10 = __ccgo_ts + 23216 + v10 = __ccgo_ts + 23361 } else { - v10 = __ccgo_ts + 1657 + v10 = __ccgo_ts + 1671 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31619, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31765, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) } Xsqlite3_free(tls, zStart1) Xsqlite3_free(tls, zOrder) @@ -187798,11 +189692,11 @@ func _rbuGetUpdateStmt(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintptr, p (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpNext = (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate = pUp if zSet != 0 { - zPrefix = __ccgo_ts + 1657 + zPrefix = __ccgo_ts + 1671 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { - zPrefix = __ccgo_ts + 31006 + zPrefix = __ccgo_ts + 31152 } - zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31667, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) + zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+31813, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pUp+8, p+64, zUpdate) *(*uintptr)(unsafe.Pointer(ppStmt)) = (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate } @@ -187829,7 +189723,7 @@ func _rbuOpenDbhandle(tls *libc.TLS, p uintptr, zName uintptr, bUseVfs int32) (r } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_open_v2(tls, zName, bp, flags, v1) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) Xsqlite3_close(tls, *(*uintptr)(unsafe.Pointer(bp))) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) } @@ -187876,7 +189770,7 @@ func _rbuLoadState(tls *libc.TLS, p uintptr) (r uintptr) { if pRet == uintptr(0) { return uintptr(0) } - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31697, libc.VaList(bp+24, p+48))) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31843, libc.VaList(bp+24, p+48))) for *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { switch Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) { case int32(RBU_STATE_STAGE): @@ -187938,27 +189832,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu = _rbuOpenDbhandle(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, int32(1)) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain = dbMain if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6594, int32(SQLITE_FCNTL_RBUCNT), p) + Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6658, int32(SQLITE_FCNTL_RBUCNT), p) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState == uintptr(0) { - zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6594) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31727, libc.VaList(bp+8, zFile, zFile)) + zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6658) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+31873, libc.VaList(bp+8, zFile, zFile)) } } /* If using separate RBU and state databases, attach the state database to ** the RBU db handle now. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState != 0 { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31755, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) - libc.Xmemcpy(tls, p+48, __ccgo_ts+3427, uint64(4)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31901, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+3491, uint64(4)) } else { - libc.Xmemcpy(tls, p+48, __ccgo_ts+6594, uint64(4)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+6658, uint64(4)) } /* If it has not already been created, create the rbu_state table */ - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31773, libc.VaList(bp+8, p+48)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31919, libc.VaList(bp+8, p+48)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { bOpen = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FnRbu = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FpRbuFd = uintptr(0) - rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6594, int32(SQLITE_FCNTL_RBUCNT), p) + rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6658, int32(SQLITE_FCNTL_RBUCNT), p) if rc != int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc } @@ -187991,10 +189885,10 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) return } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31839, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31985, 0) } else { zExtra = uintptr(0) - if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24605, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { + if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24728, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { zExtra = (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu + 5 for *(*uint8)(unsafe.Pointer(zExtra)) != 0 { v1 = zExtra @@ -188008,16 +189902,16 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if zExtra == uintptr(0) { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } else { - v2 = __ccgo_ts + 31871 + v2 = __ccgo_ts + 32017 } if zExtra == uintptr(0) { - v3 = __ccgo_ts + 1657 + v3 = __ccgo_ts + 1671 } else { v3 = zExtra } - zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+31873, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6594), v2, v3)) + zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+32019, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6658), v2, v3)) if zTarget == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) return @@ -188028,27 +189922,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31905, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32051, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31920, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32066, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31937, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32083, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, int32(SQLITE_FCNTL_RBU), p) } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31953, 0) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32099, 0) /* Mark the database file just opened as an RBU target database. If ** this call returns SQLITE_NOTFOUND, then the RBU vfs is not in use. ** This is an error. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6594, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6658, int32(SQLITE_FCNTL_RBU), p) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31981, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32127, 0) } } @@ -188098,7 +189992,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxShmMap})))(tls, pDb, 0, libc.Int32FromInt32(32)*libc.Int32FromInt32(1024), 0, bp) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - iRet = int64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))<= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+32981, zState+uintptr(n-int32(7)), uint64(7)) { + if n >= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+33127, zState+uintptr(n-int32(7)), uint64(7)) { return _rbuMisuseError(tls) } } @@ -189340,7 +191234,7 @@ func _rbuEditErrmsg(tls *libc.TLS, p uintptr) { if !(uint64(i) < nErrmsg-uint64(8)) { break } - if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31006, uint64(8)) == 0 { + if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31152, uint64(8)) == 0 { nDel = int32(8) for int32(*(*uint8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(nDel))))) <= int32('9') { nDel++ @@ -189368,7 +191262,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { if p != 0 { /* Commit the transaction to the *-oal file. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14903, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14996, uintptr(0), uintptr(0), p+64) } /* Sync the db file if currently doing an incremental checkpoint */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { @@ -189377,7 +191271,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { } _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14903, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14996, uintptr(0), uintptr(0), p+64) } /* Close any open statement handles. */ _rbuObjIterFinalize(tls, p+80) @@ -189387,7 +191281,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { ** specifying the current target and state databases to start a new ** vacuum from scratch. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu != 0 { - rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32989, uintptr(0), uintptr(0), uintptr(0)) + rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33135, uintptr(0), uintptr(0), uintptr(0)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_DONE) && rc2 != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc2 } @@ -189502,7 +191396,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14903, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+14996, uintptr(0), uintptr(0), uintptr(0)) } } /* Sync the db file */ @@ -189516,19 +191410,19 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { _ = libc.Int32FromInt32(0) if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14903, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+14996, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 14888 + v1 = __ccgo_ts + 14981 } else { - v1 = __ccgo_ts + 32941 + v1 = __ccgo_ts + 33087 } zBegin = v1 rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, zBegin, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32941, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33087, uintptr(0), uintptr(0), uintptr(0)) } } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -190102,7 +191996,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r rc = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xControl})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, int32(SQLITE_FCNTL_ZIPVFS), bp) if rc == SQLITE_OK { rc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33016, 0) + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33162, 0) } else { if rc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpTargetFd = p @@ -190128,7 +192022,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r if rc == SQLITE_OK && op == int32(SQLITE_FCNTL_VFSNAME) { pRbuVfs = (*Trbu_file)(unsafe.Pointer(p)).FpRbuVfs zIn = *(*uintptr)(unsafe.Pointer(pArg)) - zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33039, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) + zOut = Xsqlite3_mprintf(tls, __ccgo_ts+33185, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) *(*uintptr)(unsafe.Pointer(pArg)) = zOut if zOut == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -190329,7 +192223,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag if pDb != 0 { if (*Trbu_file)(unsafe.Pointer(pDb)).FpRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FeStage == int32(RBU_STAGE_OAL) { if (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FzTarget == uintptr(0) { - zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6594) + zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+6658) zOpen = Xsqlite3_filename_wal(tls, zOpen) } nOpen = libc.Xstrlen(tls, zOpen) @@ -190343,7 +192237,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag } else { (*Trbu_file)(unsafe.Pointer(pFd)).FpRbu = (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).FpRbu } - if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33050, 0) != 0 { + if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+33196, 0) != 0 { _ = libc.Int32FromInt32(0) oflags = libc.Int32FromInt32(SQLITE_OPEN_TEMP_DB) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_EXCLUSIVE) | libc.Int32FromInt32(SQLITE_OPEN_DELETEONCLOSE) zOpen = uintptr(0) @@ -190898,7 +192792,7 @@ func _statConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint _sqlite3TokenInit(tls, bp, *(*uintptr)(unsafe.Pointer(argv + 3*8))) iDb = _sqlite3FindDb(tls, db, bp) if iDb < 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12200, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+12325, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) return int32(SQLITE_ERROR) } } else { @@ -191292,6 +193186,7 @@ func _statDecodePage(tls *libc.TLS, pBt uintptr, p uintptr) (r int32) { } } return SQLITE_OK + goto statPageIsCorrupt statPageIsCorrupt: ; (*TStatPage)(unsafe.Pointer(p)).Fflags = uint8(0) @@ -191382,6 +193277,7 @@ func _statNext(tls *libc.TLS, pCursor uintptr) (r int32) { pPager = _sqlite3BtreePager(tls, pBt) Xsqlite3_free(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath) (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = uintptr(0) + goto statNextRestart statNextRestart: ; if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage < 0 { @@ -191399,7 +193295,7 @@ statNextRestart: (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiPgno = iRoot (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33061, 0) + v1 = Xsqlite3_mprintf(tls, __ccgo_ts+33207, 0) z = v1 (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FzPath = v1 if z == uintptr(0) { @@ -191437,8 +193333,8 @@ statNextRestart: if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { (*TStatCursor)(unsafe.Pointer(pCsr)).FzName = Xsqlite3_column_text(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FpStmt, 0) (*TStatCursor)(unsafe.Pointer(pCsr)).FiPageno = *(*Tu32)(unsafe.Pointer((*TStatCell)(unsafe.Pointer(pCell)).FaOvfl + uintptr(iOvfl)*4)) - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33063 - v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33072, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33209 + v2 = Xsqlite3_mprintf(tls, __ccgo_ts+33218, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) z = v2 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v2 if z == uintptr(0) { @@ -191467,7 +193363,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage++ if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage >= int32(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(222551)) + return _sqlite3CorruptError(tls, int32(224206)) } _ = libc.Int32FromInt32(0) if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { @@ -191479,7 +193375,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnPage++ (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33084, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) + v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33230, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) z = v4 (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FzPath = v4 if z == uintptr(0) { @@ -191502,13 +193398,13 @@ statNextRestart: case int32(0x05): /* table internal */ fallthrough case int32(0x02): /* index internal */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33092 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33238 case int32(0x0D): /* table leaf */ fallthrough case int32(0x0A): /* index leaf */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33101 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33247 default: - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33106 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33252 break } *(*int32)(unsafe.Pointer(pCsr + 2108)) += (*TStatPage)(unsafe.Pointer(p1)).FnCell @@ -191517,7 +193413,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnMxPayload = (*TStatPage)(unsafe.Pointer(p1)).FnMxPayload } if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) + v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) z = v5 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v5 if z == uintptr(0) { @@ -191606,12 +193502,12 @@ func _statFilter(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uintptr, a (*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg = uint8(0) } pSql = Xsqlite3_str_new(tls, (*TStatTable)(unsafe.Pointer(pTab)).Fdb) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33116, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33262, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) if zName != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33271, libc.VaList(bp+8, zName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33417, libc.VaList(bp+8, zName)) } if idxNum&int32(0x08) != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33285, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33431, 0) } zSql = Xsqlite3_str_finish(tls, pSql) if zSql == uintptr(0) { @@ -191688,7 +193584,7 @@ func _statRowid(tls *libc.TLS, pCursor uintptr, pRowid uintptr) (r int32) { // ** Invoke this routine to register the "dbstat" virtual table module // */ func _sqlite3DbstatRegister(tls *libc.TLS, db uintptr) (r int32) { - return Xsqlite3_create_module(tls, db, __ccgo_ts+33300, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) + return Xsqlite3_create_module(tls, db, __ccgo_ts+33446, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) } var _dbstat_module = Tsqlite3_module{} @@ -192977,20 +194873,20 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, *(*uintptr)(unsafe.Pointer(pazDflt)) = uintptr(0) } nThis = _sqlite3Strlen30(tls, zThis) - if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11591, zThis) { + if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11716, zThis) { rc = Xsqlite3_table_column_metadata(tls, db, zDb, zThis, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { /* For sqlite_stat1, pretend that (tbl,idx) is the PRIMARY KEY. */ - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33307, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33453, 0) } else { if rc == int32(SQLITE_ERROR) { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1657, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1671, 0) } else { return rc } } } else { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33428, libc.VaList(bp+16, zDb, zThis)) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33574, libc.VaList(bp+16, zDb, zThis)) } if !(zPragma != 0) { return int32(SQLITE_NOMEM) @@ -193014,7 +194910,7 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, bRowid = 0 } nDbCol += bRowid - nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+29649)) + nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+29795)) rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp))) if rc == SQLITE_OK { nByte = Tsqlite3_int64(uint64(nByte) + uint64(nDbCol)*(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(2)+libc.Uint64FromInt64(1)+libc.Uint64FromInt32(1)+libc.Uint64FromInt32(1))) @@ -193038,8 +194934,8 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, } i = 0 if bRowid != 0 { - nName = libc.Xstrlen(tls, __ccgo_ts+29649) - libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29649, nName+uint64(1)) + nName = libc.Xstrlen(tls, __ccgo_ts+29795) + libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29795, nName+uint64(1)) *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)) = pAlloc pAlloc += uintptr(nName + uint64(1)) *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) = uint8(1) @@ -193132,7 +195028,7 @@ func _sessionInitTable(tls *libc.TLS, pSession uintptr, pTab uintptr, db uintptr ; i++ } - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11591, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11716, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 = int32(1) } if pSession != 0 && (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize != 0 { @@ -193424,10 +195320,10 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin _, _, _, _ = ii, zDflt, zSep, v2 *(*TSessionBuffer)(unsafe.Pointer(bp)) = TSessionBuffer{} *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK - zSep = __ccgo_ts + 11211 + zSep = __ccgo_ts + 11336 ii = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33457, 0) + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33603, 0) ii = 0 for { if !(ii < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol) { @@ -193436,11 +195332,11 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin if *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) != 0 { v2 = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) } else { - v2 = __ccgo_ts + 1658 + v2 = __ccgo_ts + 1672 } zDflt = v2 - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5085, libc.VaList(bp+32, zSep, zDflt)) - zSep = __ccgo_ts + 14999 + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5149, libc.VaList(bp+32, zSep, zDflt)) + zSep = __ccgo_ts + 15092 goto _1 _1: ; @@ -193759,7 +195655,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u rc = int32(SQLITE_NOMEM) goto error_out } - _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1657, uint8(0), libc.UintptrFromInt32(0)) + _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1671, uint8(0), libc.UintptrFromInt32(0)) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpZeroBlob = p } } @@ -193880,6 +195776,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u } } /* If an error has occurred, mark the session object as failed. */ + goto error_out error_out: ; if (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 != 0 { @@ -194089,7 +195986,7 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr var i int32 var zRet, zSep uintptr _, _, _ = i, zRet, zSep - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 zRet = uintptr(0) i = 0 for { @@ -194097,8 +195994,8 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr break } if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33464, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 22022 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33610, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 22167 if zRet == uintptr(0) { break } @@ -194117,7 +196014,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint var bHave, i int32 var zRet, zSep uintptr _, _, _, _ = bHave, i, zRet, zSep - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 zRet = uintptr(0) bHave = 0 i = 0 @@ -194127,8 +196024,8 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if int32(*(*Tu8)(unsafe.Pointer(abPK + uintptr(i)))) == 0 { bHave = int32(1) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33498, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 33539 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33644, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 33685 if zRet == uintptr(0) { break } @@ -194140,7 +196037,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if bHave == 0 { _ = libc.Int32FromInt32(0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1731, 0) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1791, 0) } return zRet } @@ -194151,12 +196048,12 @@ func _sessionSelectFindNew(tls *libc.TLS, zDb1 uintptr, zDb2 uintptr, bRowid int var zRet, zSel, v1 uintptr _, _, _ = zRet, zSel, v1 if bRowid != 0 { - v1 = __ccgo_ts + 33544 + v1 = __ccgo_ts + 33690 } else { - v1 = __ccgo_ts + 6599 + v1 = __ccgo_ts + 6663 } zSel = v1 - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33555, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33701, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) return zRet } @@ -194217,11 +196114,11 @@ func _sessionAllCols(tls *libc.TLS, zDb uintptr, pTab uintptr) (r uintptr) { break } if zRet != 0 { - v2 = __ccgo_ts + 14999 + v2 = __ccgo_ts + 15092 } else { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33634, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33780, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) if !(zRet != 0) { break } @@ -194249,7 +196146,7 @@ func _sessionDiffFindModified(tls *libc.TLS, pSession uintptr, pTab uintptr, zFr } else { z1 = _sessionAllCols(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, pTab) z2 = _sessionAllCols(tls, zFrom, pTab) - zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33653, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) + zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+33799, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) if zStmt == uintptr(0) || z1 == uintptr(0) || z2 == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -194349,7 +196246,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if bMismatch != 0 { if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33710, 0) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+33856, 0) } rc = int32(SQLITE_SCHEMA) } @@ -194375,6 +196272,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u } Xsqlite3_free(tls, zExpr) } + goto diff_out diff_out: ; _sessionPreupdateHooks(tls, pSession) @@ -194680,7 +196578,7 @@ func _sessionAppendInteger(tls *libc.TLS, p uintptr, iVal int32, pRc uintptr) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* aBuf at bp+0 */ [24]uint8 - Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5147, libc.VaList(bp+32, iVal)) + Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5211, libc.VaList(bp+32, iVal)) _sessionAppendStr(tls, p, bp, pRc) } @@ -194975,23 +196873,23 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt _, _, _, _, _, _, _ = i, nSql, zCols, zSep, zSql, v1, v3 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK zSql = uintptr(0) - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 if bRowid != 0 { - v1 = __ccgo_ts + 33544 + v1 = __ccgo_ts + 33690 } else { - v1 = __ccgo_ts + 6599 + v1 = __ccgo_ts + 6663 } zCols = v1 nSql = -int32(1) *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 24)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 40)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+33737, bp) - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11591, zTab) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+33741, bp) - _sessionAppendStr(tls, bp+24, __ccgo_ts+33765, bp) - _sessionAppendStr(tls, bp+40, __ccgo_ts+33774, bp) - zCols = __ccgo_ts + 33819 + _sessionAppendStr(tls, bp+8, __ccgo_ts+33883, bp) + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11716, zTab) { + _sessionAppendStr(tls, bp+8, __ccgo_ts+33887, bp) + _sessionAppendStr(tls, bp+24, __ccgo_ts+33911, bp) + _sessionAppendStr(tls, bp+40, __ccgo_ts+33920, bp) + zCols = __ccgo_ts + 33965 } else { i = 0 for { @@ -195001,11 +196899,11 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { _sessionAppendStr(tls, bp+24, zSep, bp) _sessionAppendStr(tls, bp+40, zSep, bp) - zSep = __ccgo_ts + 14999 + zSep = __ccgo_ts + 15092 _sessionAppendIdent(tls, bp+24, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), bp) - _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+33833, libc.VaList(bp+64, i+int32(1))) + _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+33979, libc.VaList(bp+64, i+int32(1))) } else { - _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+33837, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+33983, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) } goto _2 _2: @@ -195017,9 +196915,9 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if bIgnoreNoop != 0 { v3 = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf } else { - v3 = __ccgo_ts + 1657 + v3 = __ccgo_ts + 1671 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+33864, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+34010, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) if zSql == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } @@ -195165,7 +197063,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, if (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc != 0 { return (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc } - *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+33906, uintptr(0), uintptr(0), uintptr(0)) + *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+34052, uintptr(0), uintptr(0), uintptr(0)) if *(*int32)(unsafe.Pointer(bp + 16)) != SQLITE_OK { return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -195272,7 +197170,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } } Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf) - Xsqlite3_exec(tls, db, __ccgo_ts+33926, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34072, uintptr(0), uintptr(0), uintptr(0)) Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db)) return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -195693,7 +197591,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, int32(9)) if rc == SQLITE_OK { if (*TSessionInput)(unsafe.Pointer(pIn)).FiNext >= (*TSessionInput)(unsafe.Pointer(pIn)).FnData { - rc = _sqlite3CorruptError(tls, int32(226700)) + rc = _sqlite3CorruptError(tls, int32(228355)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -195718,7 +197616,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, *(*int32)(unsafe.Pointer(bp))) if rc == SQLITE_OK { if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext { - rc = _sqlite3CorruptError(tls, int32(226720)) + rc = _sqlite3CorruptError(tls, int32(228375)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -195733,7 +197631,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap } if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) { if (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext < int32(8) { - rc = _sqlite3CorruptError(tls, int32(226730)) + rc = _sqlite3CorruptError(tls, int32(228385)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -195789,7 +197687,7 @@ func _sessionChangesetBufferTblhdr(tls *libc.TLS, pIn uintptr, pnByte uintptr) ( ** large value for nCol may cause nRead to wrap around and become ** negative. Leading to a crash. */ if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > int32(65536) { - rc = _sqlite3CorruptError(tls, int32(226778)) + rc = _sqlite3CorruptError(tls, int32(228433)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -195895,7 +197793,7 @@ func _sessionChangesetReadTblhdr(tls *libc.TLS, p uintptr) (r int32) { (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FnBuf = 0 _sessionBufferGrow(tls, p+72, int64(nByte), bp) } else { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(226866)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(228521)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -195968,12 +197866,12 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK { return (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc } + _sessionDiscardData(tls, p) + (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext /* If the iterator is already at the end of the changeset, return DONE. */ if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext >= (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FnData { return int32(SQLITE_DONE) } - _sessionDiscardData(tls, p) - (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext v3 = p + 8 v2 = *(*int32)(unsafe.Pointer(v3)) *(*int32)(unsafe.Pointer(v3))++ @@ -196004,7 +197902,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin /* The first record in the changeset is not a table header. Must be a ** corrupt changeset. */ _ = libc.Int32FromInt32(0) - v7 = _sqlite3CorruptError(tls, int32(226952)) + v7 = _sqlite3CorruptError(tls, int32(228607)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -196014,7 +197912,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = int32(*(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr(v8)))) if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_DELETE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_INSERT) { - v10 = _sqlite3CorruptError(tls, int32(226958)) + v10 = _sqlite3CorruptError(tls, int32(228613)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -196095,7 +197993,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin _ = libc.Int32FromInt32(0) *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i+(*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*8)) if *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) == uintptr(0) { - v16 = _sqlite3CorruptError(tls, int32(227002)) + v16 = _sqlite3CorruptError(tls, int32(228657)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -196506,7 +198404,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(227367)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(229022)) goto finished_invert } _ = libc.Int32FromInt32(0) @@ -196528,6 +198426,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } + goto finished_invert finished_invert: ; Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf) @@ -196710,18 +198609,18 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 } if pUp == uintptr(0) { nByte = int32(uint64(24) * uint64(nU32) * uint64(4)) - bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11591) == 0) + bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11716) == 0) pUp = Xsqlite3_malloc(tls, nByte) if pUp == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } else { - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 libc.Xmemset(tls, bp+8, 0, uint64(16)) (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask = pUp + 1*24 libc.Xmemcpy(tls, (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, uint64(nU32)*uint64(4)) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33944, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34090, bp) _sessionAppendIdent(tls, bp+8, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33957, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34103, bp) /* Create the assignments part of the UPDATE */ ii = 0 for { @@ -196731,9 +198630,9 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if int32(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii)))) == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol+ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33963, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34109, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(1), bp) - zSep = __ccgo_ts + 14999 + zSep = __ccgo_ts + 15092 } goto _2 _2: @@ -196741,8 +198640,8 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 ii++ } /* Create the WHERE clause part of the UPDATE */ - zSep = __ccgo_ts + 1657 - _sessionAppendStr(tls, bp+8, __ccgo_ts+33968, bp) + zSep = __ccgo_ts + 1671 + _sessionAppendStr(tls, bp+8, __ccgo_ts+34114, bp) ii = 0 for { if !(ii < (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol) { @@ -196752,13 +198651,13 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 _sessionAppendStr(tls, bp+8, zSep, bp) if bStat1 != 0 && ii == int32(1) { _ = libc.Int32FromInt32(0) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33976, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34122, bp) } else { _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34051, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34197, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(2), bp) } - zSep = __ccgo_ts + 22022 + zSep = __ccgo_ts + 22167 } goto _3 _3: @@ -196842,13 +198741,13 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in var _ /* buf at bp+8 */ TSessionBuffer var _ /* rc at bp+0 */ int32 _, _, _ = i, nPk, zSep - zSep = __ccgo_ts + 1657 + zSep = __ccgo_ts + 1671 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} nPk = 0 - _sessionAppendStr(tls, bp+8, __ccgo_ts+34057, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34203, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33968, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34114, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -196858,9 +198757,9 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in nPk++ _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33963, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34109, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 22022 + zSep = __ccgo_ts + 22167 } goto _1 _1: @@ -196868,10 +198767,10 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in i++ } if nPk < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol { - _sessionAppendStr(tls, bp+8, __ccgo_ts+34075, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34221, bp) _sessionAppendInteger(tls, bp+8, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol+int32(1), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33539, bp) - zSep = __ccgo_ts + 1657 + _sessionAppendStr(tls, bp+8, __ccgo_ts+33685, bp) + zSep = __ccgo_ts + 1671 i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -196880,16 +198779,16 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in if !(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0) { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34051, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34197, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 34083 + zSep = __ccgo_ts + 34229 } goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5115, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5179, bp) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+8, uintptr(0)) @@ -196915,7 +198814,7 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in // */ func _sessionSelectRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r int32) { /* TODO */ - return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6594, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) + return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6658, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) } // C documentation @@ -196938,16 +198837,16 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+34088, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34234, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+22028, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+22173, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } if i != 0 { - _sessionAppendStr(tls, bp+8, __ccgo_ts+14999, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+15092, bp) } _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) goto _1 @@ -196955,19 +198854,19 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34106, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34252, bp) i = int32(1) for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34117, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34263, bp) goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5115, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5179, bp) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+16, uintptr(0)) } @@ -196990,12 +198889,12 @@ func _sessionPrepare(tls *libc.TLS, db uintptr, pp uintptr, zSql uintptr) (r int func _sessionStat1Sql(tls *libc.TLS, db uintptr, p uintptr) (r int32) { var rc int32 _ = rc - rc = _sessionSelectRow(tls, db, __ccgo_ts+11591, p) + rc = _sessionSelectRow(tls, db, __ccgo_ts+11716, p) if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34121) + rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34267) } if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34234) + rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34380) } return rc } @@ -197062,7 +198961,7 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(227849)) + rc = _sqlite3CorruptError(tls, int32(229504)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -197490,7 +199389,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { _ = libc.Int32FromInt32(0) - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34378, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34524, uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { rc = _sessionBindRow(tls, pIter, __ccgo_fp(Xsqlite3changeset_new), (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FabPK, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) Xsqlite3_bind_int(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol+int32(1), int32(1)) @@ -197503,7 +199402,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34399, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34545, uintptr(0), uintptr(0), uintptr(0)) } } } @@ -197599,10 +199498,10 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbIgnoreNoop = libc.BoolUint8(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_IGNORENOOP) != 0)) Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, db)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34418, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34564, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34444, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34590, uintptr(0), uintptr(0), uintptr(0)) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) @@ -197633,7 +199532,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui ** non-zero, proceed. */ schemaMismatch = libc.BoolInt32(xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { - *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) + *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { rc = int32(SQLITE_NOMEM) break @@ -197643,7 +199542,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } else { nMinCol = 0 Xsqlite3changeset_pk(tls, pIter, bp+152, uintptr(0)) - rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6594, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) + rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6658, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) if rc != SQLITE_OK { break } @@ -197662,18 +199561,18 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol == 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34474, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34620, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol < *(*int32)(unsafe.Pointer(bp + 136)) { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34518, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34664, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) } else { if *(*int32)(unsafe.Pointer(bp + 136)) < nMinCol || libc.Xmemcmp(tls, (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FabPK, *(*uintptr)(unsafe.Pointer(bp + 152)), uint64(*(*int32)(unsafe.Pointer(bp + 136)))) != 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34589, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34735, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol = *(*int32)(unsafe.Pointer(bp + 136)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11591) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11716) { v2 = _sessionStat1Sql(tls, db, bp+8) rc = v2 if v2 != 0 { @@ -197730,13 +199629,13 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } } } - Xsqlite3_exec(tls, db, __ccgo_ts+34649, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34795, uintptr(0), uintptr(0), uintptr(0)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34679, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34825, uintptr(0), uintptr(0), uintptr(0)) } else { - Xsqlite3_exec(tls, db, __ccgo_ts+34703, uintptr(0), uintptr(0), uintptr(0)) - Xsqlite3_exec(tls, db, __ccgo_ts+34679, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34849, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34825, uintptr(0), uintptr(0), uintptr(0)) } } _ = libc.Int32FromInt32(0) @@ -197830,6 +199729,7 @@ type Tsqlite3_changegroup1 = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -198196,118 +200096,145 @@ func _sessionChangesetExtendRecord(tls *libc.TLS, pGrp uintptr, pTab uintptr, nC // C documentation // // /* -// ** Add all changes in the changeset traversed by the iterator passed as -// ** the first argument to the changegroup hash tables. +// ** Locate or create a SessionTable object that may be used to add the +// ** change currently pointed to by iterator pIter to changegroup pGrp. +// ** If successful, set output variable (*ppTab) to point to the table +// ** object and return SQLITE_OK. Otherwise, if some error occurs, return +// ** an SQLite error code and leave (*ppTab) set to NULL. // */ -func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { - bp := tls.Alloc(80) - defer tls.Free(80) - var bPkOnly1, bPkOnly2, iHash, nNew, rc int32 - var pExist, pTab, pp, ppTab uintptr - var _ /* aRec at bp+0 */ uintptr - var _ /* abPK at bp+64 */ uintptr - var _ /* bIndirect at bp+48 */ int32 - var _ /* nCol at bp+40 */ int32 - var _ /* nRec at bp+8 */ int32 - var _ /* op at bp+44 */ int32 - var _ /* pChange at bp+56 */ uintptr - var _ /* rec at bp+16 */ TSessionBuffer - var _ /* zNew at bp+32 */ uintptr - _, _, _, _, _, _, _, _, _ = bPkOnly1, bPkOnly2, iHash, nNew, pExist, pTab, pp, ppTab, rc +func _sessionChangesetFindTable(tls *libc.TLS, pGrp uintptr, zTab uintptr, pIter uintptr, ppTab uintptr) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var nTab, rc int32 + var pTab, ppNew uintptr + var _ /* abPK at bp+0 */ uintptr + var _ /* nCol at bp+8 */ int32 + _, _, _, _ = nTab, pTab, ppNew, rc rc = SQLITE_OK pTab = uintptr(0) - *(*TSessionBuffer)(unsafe.Pointer(bp + 16)) = TSessionBuffer{} - for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { - pExist = uintptr(0) - /* Ensure that only changesets, or only patchsets, but not a mixture - ** of both, are being combined. It is an error to try to combine a - ** changeset and a patchset. */ - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset - } else { - if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { - rc = int32(SQLITE_ERROR) - break - } + nTab = int32(libc.Xstrlen(tls, zTab)) + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(ppTab)) = uintptr(0) + Xsqlite3changeset_pk(tls, pIter, bp, bp+8) + /* Search the list for an existing table */ + pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList + for { + if !(pTab != 0) { + break } - Xsqlite3changeset_op(tls, pIter, bp+32, bp+40, bp+44, bp+48) - if !(pTab != 0) || Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), (*TSessionTable)(unsafe.Pointer(pTab)).FzName) != 0 { - /* Search the list for a matching table */ - nNew = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)))) - Xsqlite3changeset_pk(tls, pIter, bp+64, uintptr(0)) - pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList - for { - if !(pTab != 0) { - break - } - if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), nNew+int32(1)) { - break - } - goto _1 - _1: - ; - pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext - } - if !(pTab != 0) { - pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 40)))+uint64(nNew)+uint64(1)) - if !(pTab != 0) { - rc = int32(SQLITE_NOMEM) - break - } - libc.Xmemset(tls, pTab, 0, uint64(80)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 40)) - (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp + 64)), uint64(*(*int32)(unsafe.Pointer(bp + 40)))) - (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 40))) - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), uint64(nNew+int32(1))) - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 - rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) - if rc != 0 { - _ = libc.Int32FromInt32(0) - Xsqlite3_free(tls, pTab) - break - } - } - /* The new object must be linked on to the end of the list, not - ** simply added to the start of it. This is to ensure that the - ** tables within the output of sqlite3changegroup_output() are in - ** the right order. */ - ppTab = pGrp + 8 - for { - if !(*(*uintptr)(unsafe.Pointer(ppTab)) != 0) { - break - } - goto _2 - _2: - ; - ppTab = *(*uintptr)(unsafe.Pointer(ppTab)) - } - *(*uintptr)(unsafe.Pointer(ppTab)) = pTab - } - if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*uintptr)(unsafe.Pointer(bp + 64))) != 0) { - rc = int32(SQLITE_SCHEMA) - break - } + if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, nTab+int32(1)) { + break } - if *(*int32)(unsafe.Pointer(bp + 40)) < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol { - _ = libc.Int32FromInt32(0) - rc = _sessionChangesetExtendRecord(tls, pGrp, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*int32)(unsafe.Pointer(bp + 44)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+16) + goto _1 + _1: + ; + pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext + } + /* If one was not found above, create a new table now */ + if !(pTab != 0) { + pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 8)))+uint64(nTab)+uint64(1)) + if !(pTab != 0) { + return int32(SQLITE_NOMEM) + } + libc.Xmemset(tls, pTab, 0, uint64(80)) + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 8)) + (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp)), uint64(*(*int32)(unsafe.Pointer(bp + 8)))) + (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 8))) + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, uint64(nTab+int32(1))) + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 + rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) if rc != 0 { + _ = libc.Int32FromInt32(0) + Xsqlite3_free(tls, pTab) + return rc + } + } + /* The new object must be linked on to the end of the list, not + ** simply added to the start of it. This is to ensure that the + ** tables within the output of sqlite3changegroup_output() are in + ** the right order. */ + ppNew = pGrp + 8 + for { + if !(*(*uintptr)(unsafe.Pointer(ppNew)) != 0) { break } - *(*uintptr)(unsafe.Pointer(bp)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf - *(*int32)(unsafe.Pointer(bp + 8)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf + goto _2 + _2: + ; + ppNew = *(*uintptr)(unsafe.Pointer(ppNew)) } - if _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pTab) != 0 { - rc = int32(SQLITE_NOMEM) - break + *(*uintptr)(unsafe.Pointer(ppNew)) = pTab + } + /* Check that the table is compatible. */ + if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 8)), *(*uintptr)(unsafe.Pointer(bp))) != 0) { + rc = int32(SQLITE_SCHEMA) + } + *(*uintptr)(unsafe.Pointer(ppTab)) = pTab + return rc +} + +// C documentation +// +// /* +// ** Add the change currently indicated by iterator pIter to the hash table +// ** belonging to changegroup pGrp. +// */ +func _sessionOneChangeToHash(tls *libc.TLS, pGrp uintptr, pIter uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var aRec, pBuf, pExist, pp uintptr + var bPkOnly1, bPkOnly2, iHash, nRec, rc int32 + var _ /* bIndirect at bp+8 */ int32 + var _ /* nCol at bp+0 */ int32 + var _ /* op at bp+4 */ int32 + var _ /* pChange at bp+16 */ uintptr + var _ /* pTab at bp+24 */ uintptr + var _ /* zTab at bp+32 */ uintptr + _, _, _, _, _, _, _, _, _ = aRec, bPkOnly1, bPkOnly2, iHash, nRec, pBuf, pExist, pp, rc + rc = SQLITE_OK + *(*int32)(unsafe.Pointer(bp)) = 0 + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + iHash = 0 + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0) + pExist = uintptr(0) + pp = uintptr(0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0) + aRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FaData + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent+int32(2)) + nRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent - int32(2) + /* Ensure that only changesets, or only patchsets, but not a mixture + ** of both, are being combined. It is an error to try to combine a + ** changeset and a patchset. */ + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset + } else { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { + rc = int32(SQLITE_ERROR) } - iHash = int32(_sessionChangeHash(tls, pTab, libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)), *(*uintptr)(unsafe.Pointer(bp)), (*TSessionTable)(unsafe.Pointer(pTab)).FnChange)) + } + if rc == SQLITE_OK { + *(*uintptr)(unsafe.Pointer(bp + 32)) = uintptr(0) + Xsqlite3changeset_op(tls, pIter, bp+32, bp, bp+4, bp+8) + rc = _sessionChangesetFindTable(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 32)), pIter, bp+24) + } + if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) < (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnCol { + pBuf = pGrp + 16 + rc = _sessionChangesetExtendRecord(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 24)), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), aRec, nRec, pBuf) + aRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FaBuf + nRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FnBuf + _ = libc.Int32FromInt32(0) + } + if rc == SQLITE_OK && _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp + 24))) != 0 { + rc = int32(SQLITE_NOMEM) + } + if rc == SQLITE_OK { /* Search for existing entry. If found, remove it from the hash table. - ** Code below may link it back in. - */ - pp = (*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8 + ** Code below may link it back in. */ + iHash = int32(_sessionChangeHash(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)), aRec, (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnChange)) + pp = (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8 for { if !(*(*uintptr)(unsafe.Pointer(pp)) != 0) { break @@ -198316,30 +200243,54 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase bPkOnly2 = 0 if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 { bPkOnly1 = libc.BoolInt32(int32((*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).Fop) == int32(SQLITE_DELETE)) - bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)) + bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)) } - if _sessionChangeEqual(tls, pTab, bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, *(*uintptr)(unsafe.Pointer(bp))) != 0 { + if _sessionChangeEqual(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, aRec) != 0 { pExist = *(*uintptr)(unsafe.Pointer(pp)) *(*uintptr)(unsafe.Pointer(pp)) = (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry-- + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry-- break } - goto _3 - _3: + goto _1 + _1: ; pp = *(*uintptr)(unsafe.Pointer(pp)) + 24 } - rc = _sessionChangeMerge(tls, pTab, bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 44)), *(*int32)(unsafe.Pointer(bp + 48)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+56) - if rc != 0 { + } + if rc == SQLITE_OK { + rc = _sessionChangeMerge(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 4)), *(*int32)(unsafe.Pointer(bp + 8)), aRec, nRec, bp+16) + } + if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { + (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) + *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 16)) + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry++ + } + if rc == SQLITE_OK { + rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc + } + return rc +} + +// C documentation +// +// /* +// ** Add all changes in the changeset traversed by the iterator passed as +// ** the first argument to the changegroup hash tables. +// */ +func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var rc int32 + var _ /* aRec at bp+0 */ uintptr + var _ /* nRec at bp+8 */ int32 + _ = rc + rc = SQLITE_OK + for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { + rc = _sessionOneChangeToHash(tls, pGrp, pIter, bRebase) + if rc != SQLITE_OK { break } - if *(*uintptr)(unsafe.Pointer(bp + 56)) != 0 { - (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 56)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) - *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 56)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry++ - } } - Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf) if rc == SQLITE_OK { rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc } @@ -198450,11 +200401,11 @@ func Xsqlite3changegroup_new(tls *libc.TLS, pp uintptr) (r int32) { var rc int32 _, _ = p, rc rc = SQLITE_OK /* New object */ - p = Xsqlite3_malloc(tls, int32(32)) + p = Xsqlite3_malloc(tls, int32(48)) if p == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, p, 0, uint64(32)) + libc.Xmemset(tls, p, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(pp)) = p return rc @@ -198476,7 +200427,7 @@ func Xsqlite3changegroup_schema(tls *libc.TLS, pGrp uintptr, db uintptr, zDb uin ** or after sqlite3changegroup_schema() has already been called. */ rc = int32(SQLITE_MISUSE) } else { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, zDb)) + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, zDb)) if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -198506,6 +200457,19 @@ func Xsqlite3changegroup_add(tls *libc.TLS, pGrp uintptr, nData int32, pData uin return rc } +// C documentation +// +// /* +// ** Add a single change to a changeset-group. +// */ +func Xsqlite3changegroup_add_change(tls *libc.TLS, pGrp uintptr, pIter uintptr) (r int32) { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent == (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc != SQLITE_OK || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbInvert != 0 { + /* Iterator does not point to any valid entry or is an INVERT iterator. */ + return int32(SQLITE_ERROR) + } + return _sessionOneChangeToHash(tls, pGrp, pIter, 0) +} + // C documentation // // /* @@ -198553,6 +200517,7 @@ func Xsqlite3changegroup_delete(tls *libc.TLS, pGrp uintptr) { if pGrp != 0 { Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList) + Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Frec.FaBuf) Xsqlite3_free(tls, pGrp) } } @@ -198920,11 +200885,11 @@ func Xsqlite3rebaser_create(tls *libc.TLS, ppNew uintptr) (r int32) { var rc int32 _, _ = pNew, rc rc = SQLITE_OK - pNew = Xsqlite3_malloc(tls, int32(32)) + pNew = Xsqlite3_malloc(tls, int32(48)) if pNew == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, pNew, 0, uint64(32)) + libc.Xmemset(tls, pNew, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(ppNew)) = pNew return rc @@ -198998,6 +200963,7 @@ func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn u func Xsqlite3rebaser_delete(tls *libc.TLS, p uintptr) { if p != 0 { _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.FpList) + Xsqlite3_free(tls, (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.Frec.FaBuf) Xsqlite3_free(tls, p) } } @@ -199629,6 +201595,9 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** sqlite3Fts5ParserARG_STORE Code to store %extra_argument into fts5yypParser // ** sqlite3Fts5ParserARG_FETCH Code to extract %extra_argument from fts5yypParser // ** sqlite3Fts5ParserCTX_* As sqlite3Fts5ParserARG_ except for %extra_context +// ** fts5YYREALLOC Name of the realloc() function to use +// ** fts5YYFREE Name of the free() function to use +// ** fts5YYDYNSTACK True if stack space should be extended on heap // ** fts5YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** fts5YYNSTATE the combined number of states. @@ -199642,6 +201611,8 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** fts5YY_NO_ACTION The fts5yy_action[] code for no-op // ** fts5YY_MIN_REDUCE Minimum value for reduce actions // ** fts5YY_MAX_REDUCE Maximum value for reduce actions +// ** fts5YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** fts5YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type Tfts5YYMINORTYPE = struct { @@ -199668,6 +201639,13 @@ type fts5YYMINORTYPE = Tfts5YYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -200097,8 +202075,9 @@ type fts5yyStackEntry = Tfts5yyStackEntry type Tfts5yyParser1 = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser1 = Tfts5yyParser1 @@ -200106,14 +202085,19 @@ type fts5yyParser1 = Tfts5yyParser1 type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser = Tfts5yyParser /* #include */ +/* For builds that do no have a growable stack, fts5yyGrowStack always +** returns an error. + */ + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3Fts5ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -200128,10 +202112,11 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { var fts5yypParser uintptr _ = fts5yypParser fts5yypParser = fts5yypRawParser - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = fts5yypParser + 16 - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fstateno = uint8(0) - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fmajor = uint8(0) - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = fts5yypParser + 16 + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack = fts5yypParser + 32 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fstateno = uint8(0) + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fmajor = uint8(0) } // C documentation @@ -200151,7 +202136,7 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2424)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -200235,11 +202220,17 @@ func _fts5yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var fts5yytos, pParser uintptr + _, _ = fts5yytos, pParser pParser = p - for (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos > pParser+16 { - _fts5yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling fts5yy_pop_parser_stack() for each + ** element left in the stack */ + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos + for fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yystack { + if int32((*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor) >= int32(fts5YY_MIN_DSTRCTR) { + _fts5yy_destructor(tls, pParser, (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor, fts5yytos+8) + } + fts5yytos -= 24 } } @@ -200339,13 +202330,13 @@ func _fts5yyStackOverflow(tls *libc.TLS, fts5yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse - for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > fts5yypParser+16 { + for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack { _fts5yy_pop_parser_stack(tls, fts5yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34731, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34877, 0) /******** End %stack_overflow code ********************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument var */ } @@ -200363,15 +202354,19 @@ func _fts5yy_shift(tls *libc.TLS, fts5yypParser uintptr, fts5yyNewState uint8, f var fts5yytos uintptr _ = fts5yytos (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos += 24 - if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 - _fts5yyStackOverflow(tls, fts5yypParser) - return + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + if fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { + if int32(1) != 0 { + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 + _fts5yyStackOverflow(tls, fts5yypParser) + return + } + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + _ = libc.Int32FromInt32(0) } if int32(fts5yyNewState) > int32(fts5YY_MAX_SHIFT) { fts5yyNewState = uint8(int32(fts5yyNewState) + (libc.Int32FromInt32(fts5YY_MIN_REDUCE) - libc.Int32FromInt32(fts5YY_MIN_SHIFTREDUCE))) } - fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fstateno = fts5yyNewState (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor = fts5yyMajor *(*TFts5Token)(unsafe.Pointer(fts5yytos + 8)) = fts5yyMinor @@ -200701,7 +202696,7 @@ func _fts5yy_syntax_error(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor int3 pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse /************ Begin %syntax_error code ****************************************/ _ = fts5yymajor /* Silence a compiler warning */ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34759, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34905, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) /************ End %syntax_error code ******************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument variable */ } @@ -200767,8 +202762,10 @@ func _sqlite3Fts5Parser(tls *libc.TLS, fts5yyp uintptr, fts5yymajor int32, fts5y ** enough on the stack to push the LHS value */ if int32(_fts5yyRuleInfoNRhs[fts5yyruleno]) == 0 { if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos >= (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - _fts5yyStackOverflow(tls, fts5yypParser) - break + if int32(1) != 0 { + _fts5yyStackOverflow(tls, fts5yypParser) + break + } } } fts5yyact = _fts5yy_reduce(tls, fts5yypParser, fts5yyruleno, fts5yymajor, fts5yyminor) @@ -201009,7 +203006,7 @@ func _fts5HighlightAppend(tls *libc.TLS, pRc uintptr, p uintptr, z uintptr, n in if n < 0 { n = int32(libc.Xstrlen(tls, z)) } - (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34790, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) + (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+34936, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) if (*THighlightContext)(unsafe.Pointer(p)).FzOut == uintptr(0) { *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) } @@ -201107,7 +203104,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint var _ /* rc at bp+104 */ int32 _, _ = iCol, zErr if nVal != int32(3) { - zErr = __ccgo_ts + 34797 + zErr = __ccgo_ts + 34943 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -201118,7 +203115,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint (*(*THighlightContext)(unsafe.Pointer(bp))).FiRangeEnd = -int32(1) *(*int32)(unsafe.Pointer(bp + 104)) = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnText})))(tls, pFts, iCol, bp+24, bp+32) if *(*int32)(unsafe.Pointer(bp + 104)) == int32(SQLITE_RANGE) { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1657, -int32(1), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1671, -int32(1), libc.UintptrFromInt32(0)) *(*int32)(unsafe.Pointer(bp + 104)) = SQLITE_OK } else { if (*(*THighlightContext)(unsafe.Pointer(bp))).FzIn != 0 { @@ -201319,7 +203316,7 @@ func _fts5ValueToText(tls *libc.TLS, pVal uintptr) (r uintptr) { if zRet != 0 { v1 = zRet } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } return v1 } @@ -201353,7 +203350,7 @@ func _fts5SnippetFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintpt nBestScore = 0 /* Score of best snippet */ *(*int32)(unsafe.Pointer(bp + 112)) = 0 if nVal != int32(5) { - zErr = __ccgo_ts + 34847 + zErr = __ccgo_ts + 34993 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -201734,15 +203731,15 @@ func _sqlite3Fts5AuxInit(tls *libc.TLS, pApi uintptr) (r int32) { FxDestroy uintptr }{ 0: { - FzFunc: __ccgo_ts + 34895, + FzFunc: __ccgo_ts + 35041, FxFunc: __ccgo_fp(_fts5SnippetFunction), }, 1: { - FzFunc: __ccgo_ts + 34903, + FzFunc: __ccgo_ts + 35049, FxFunc: __ccgo_fp(_fts5HighlightFunction), }, 2: { - FzFunc: __ccgo_ts + 34913, + FzFunc: __ccgo_ts + 35059, FxFunc: __ccgo_fp(_fts5Bm25Function), }, } @@ -202407,7 +204404,7 @@ func _fts5ConfigSkipLiteral(tls *libc.TLS, pIn uintptr) (r uintptr) { case int32('n'): fallthrough case int32('N'): - if Xsqlite3_strnicmp(tls, __ccgo_ts+1643, p, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+1657, p, int32(4)) == 0 { p = p + 4 } else { p = uintptr(0) @@ -202613,7 +204610,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _, _, _, _, _, _, _, _, _, _, _, _ = azArg, bFirst, nArg, nByte, nCmd, nPre, p, p1, p2, pDel, pSpace, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK nCmd = int32(libc.Xstrlen(tls, zCmd)) - if Xsqlite3_strnicmp(tls, __ccgo_ts+34918, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35064, zCmd, nCmd) == 0 { nByte = int32(libc.Uint64FromInt64(4) * libc.Uint64FromInt32(FTS5_MAX_PREFIX_INDEXES)) bFirst = int32(1) if (*TFts5Config)(unsafe.Pointer(pConfig)).FaPrefix == uintptr(0) { @@ -202639,12 +204636,12 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } } if int32(*(*uint8)(unsafe.Pointer(p))) < int32('0') || int32(*(*uint8)(unsafe.Pointer(p))) > int32('9') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34925, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35071, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } if (*TFts5Config)(unsafe.Pointer(pConfig)).FnPrefix == int32(FTS5_MAX_PREFIX_INDEXES) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34956, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35102, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -202653,7 +204650,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC p++ } if nPre <= 0 || nPre >= int32(1000) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+34989, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35135, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -202664,7 +204661,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _ = libc.Int32FromInt32(0) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35026, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35172, zCmd, nCmd) == 0 { p1 = zArg nArg = int64(libc.Xstrlen(tls, zArg) + uint64(1)) azArg = _sqlite3Fts5MallocZero(tls, bp, int64(uint64(8)*uint64(nArg))) @@ -202672,7 +204669,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC pSpace = pDel if azArg != 0 && pSpace != 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35035, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35181, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { nArg = 0 @@ -202699,7 +204696,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC nArg++ } if p1 == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35068, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35214, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5GetTokenizer(tls, pGlobal, azArg, int32(nArg), pConfig, pzErr) @@ -202710,58 +204707,58 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC Xsqlite3_free(tls, pDel) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35102, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35248, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent != FTS5_CONTENT_NORMAL { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35110, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35256, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if *(*uint8)(unsafe.Pointer(zArg)) != 0 { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_EXTERNAL) - (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35142, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) + (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35288, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_NONE) } } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35148, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35294, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35167, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35313, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35210, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35356, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35224, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35370, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, zArg, -int32(1)) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35262, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35408, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35273, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35419, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+5508, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+5572, zCmd, nCmd) == 0 { *(*[4]TFts5Enum)(unsafe.Pointer(bp + 8)) = [4]TFts5Enum{ 0: { - FzName: __ccgo_ts + 8227, + FzName: __ccgo_ts + 8352, FeVal: int32(FTS5_DETAIL_NONE), }, 1: { - FzName: __ccgo_ts + 17756, + FzName: __ccgo_ts + 17843, }, 2: { - FzName: __ccgo_ts + 35308, + FzName: __ccgo_ts + 35454, FeVal: int32(FTS5_DETAIL_COLUMNS), }, 3: {}, @@ -202769,20 +204766,20 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC v2 = _fts5ConfigSetEnum(tls, bp+8, zArg, pConfig+96) *(*int32)(unsafe.Pointer(bp)) = v2 if v2 != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35316, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35462, 0) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35347, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35493, zCmd, nCmd) == 0 { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35357, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35503, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbTokendata = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35391, libc.VaList(bp+80, nCmd, zCmd)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35537, libc.VaList(bp+80, nCmd, zCmd)) return int32(SQLITE_ERROR) } @@ -202856,15 +204853,15 @@ func _fts5ConfigParseColumn(tls *libc.TLS, p uintptr, zCol uintptr, zArg uintptr var v2 uintptr _, _, _ = rc, v1, v2 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35419) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16703) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35424, libc.VaList(bp+8, zCol)) + if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+35565) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16790) { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35570, libc.VaList(bp+8, zCol)) rc = int32(SQLITE_ERROR) } else { if zArg != 0 { - if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35454) { + if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+35600) { *(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FabUnindexed + uintptr((*TFts5Config)(unsafe.Pointer(p)).FnCol))) = uint8(1) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35464, libc.VaList(bp+8, zArg)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35610, libc.VaList(bp+8, zArg)) rc = int32(SQLITE_ERROR) } } @@ -202890,7 +204887,7 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TFts5Buffer)(unsafe.Pointer(bp + 8)) = TFts5Buffer{} - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35495, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35641, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) if (*TFts5Config)(unsafe.Pointer(p)).FeContent != int32(FTS5_CONTENT_NONE) { i = 0 for { @@ -202898,9 +204895,9 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { break } if (*TFts5Config)(unsafe.Pointer(p)).FeContent == int32(FTS5_CONTENT_EXTERNAL) { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35500, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35646, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) } else { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35507, libc.VaList(bp+32, i)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+35653, libc.VaList(bp+32, i)) } goto _1 _1: @@ -202961,8 +204958,8 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in (*TFts5Config)(unsafe.Pointer(pRet)).FzName = _sqlite3Fts5Strndup(tls, bp, *(*uintptr)(unsafe.Pointer(azArg + 2*8)), -int32(1)) (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize = int32(1) (*TFts5Config)(unsafe.Pointer(pRet)).FeDetail = FTS5_DETAIL_FULL - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35419) == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35515, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+35565) == 0 { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35661, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } _ = libc.Int32FromInt32(0) @@ -202995,19 +204992,19 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { if z == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35544, libc.VaList(bp+40, zOrig)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35690, libc.VaList(bp+40, zOrig)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bOption != 0 { if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { v4 = *(*uintptr)(unsafe.Pointer(bp + 8)) } else { - v4 = __ccgo_ts + 1657 + v4 = __ccgo_ts + 1671 } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { v5 = *(*uintptr)(unsafe.Pointer(bp + 16)) } else { - v5 = __ccgo_ts + 1657 + v5 = __ccgo_ts + 1671 } *(*int32)(unsafe.Pointer(bp)) = _fts5ConfigParseSpecial(tls, pGlobal, pRet, v4, v5, pzErr) } else { @@ -203025,7 +205022,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } /* We only allow contentless_delete=1 if the table is indeed contentless. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FeContent != int32(FTS5_CONTENT_NONE) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35564, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35710, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* We only allow contentless_delete=1 if columnsize=0 is not present. @@ -203033,7 +205030,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in ** This restriction may be removed at some point. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35614, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35760, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* If a tokenizer= option was successfully parsed, the tokenizer has @@ -203047,18 +205044,18 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in zTail = uintptr(0) _ = libc.Int32FromInt32(0) if (*TFts5Config)(unsafe.Pointer(pRet)).FeContent == FTS5_CONTENT_NORMAL { - zTail = __ccgo_ts + 35102 + zTail = __ccgo_ts + 35248 } else { if (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize != 0 { - zTail = __ccgo_ts + 35669 + zTail = __ccgo_ts + 35815 } } if zTail != 0 { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35677, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35823, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid == uintptr(0) { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16703, -int32(1)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16790, -int32(1)) } /* Formulate the zContentExprlist text */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -203122,25 +205119,25 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { var _ /* rc at bp+0 */ int32 _, _, _, _ = i, zSep, zSql, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35688, 0) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35834, 0) i = 0 for { if !(zSql != 0 && i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } if i == 0 { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } else { - v2 = __ccgo_ts + 14999 + v2 = __ccgo_ts + 15092 } zSep = v2 - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35704, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35850, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) goto _1 _1: ; i++ } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35711, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35419)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35857, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+35565)) _ = libc.Int32FromInt32(0) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_declare_vtab(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql) @@ -203288,7 +205285,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV var _ /* zRankArgs at bp+8 */ uintptr _, _, _, _, _, _, _, _, _, _ = bVal, nAutomerge, nCrisisMerge, nHashSize, nUsermerge, nVal, pgsz, rc, zIn, v1 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35737) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35883) { pgsz = 0 if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { pgsz = Xsqlite3_value_int(tls, pVal) @@ -203299,7 +205296,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).Fpgsz = pgsz } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35742) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35888) { nHashSize = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nHashSize = Xsqlite3_value_int(tls, pVal) @@ -203310,7 +205307,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnHashSize = nHashSize } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35751) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35897) { nAutomerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nAutomerge = Xsqlite3_value_int(tls, pVal) @@ -203324,7 +205321,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnAutomerge = nAutomerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35761) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35907) { nUsermerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nUsermerge = Xsqlite3_value_int(tls, pVal) @@ -203335,7 +205332,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnUsermerge = nUsermerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35771) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35917) { nCrisisMerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nCrisisMerge = Xsqlite3_value_int(tls, pVal) @@ -203352,7 +205349,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnCrisisMerge = nCrisisMerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35783) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35929) { nVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nVal = Xsqlite3_value_int(tls, pVal) @@ -203367,7 +205364,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } (*TFts5Config)(unsafe.Pointer(pConfig)).FnDeleteMerge = nVal } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35419) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35565) { zIn = Xsqlite3_value_text(tls, pVal) rc = _sqlite3Fts5ConfigParseRank(tls, zIn, bp, bp+8) if rc == SQLITE_OK { @@ -203382,7 +205379,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35795) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+35941) { bVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { bVal = Xsqlite3_value_int(tls, pVal) @@ -203424,7 +205421,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in var _ /* p at bp+0 */ uintptr var _ /* rc at bp+8 */ int32 _, _, _, _, _ = iVersion, pVal, zK, zSelect, zSql - zSelect = __ccgo_ts + 35809 + zSelect = __ccgo_ts + 35955 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_OK iVersion = 0 @@ -203445,7 +205442,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in for int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zK = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) pVal = Xsqlite3_column_value(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) - if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35841) { + if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+35987) { iVersion = Xsqlite3_value_int(tls, pVal) } else { *(*int32)(unsafe.Pointer(bp + 12)) = 0 @@ -203458,7 +205455,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in *(*int32)(unsafe.Pointer(bp + 8)) = int32(SQLITE_ERROR) if (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg != 0 { _ = libc.Int32FromInt32(0) - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35849, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35995, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = iVersion @@ -203680,7 +205677,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr } } if int32(*(*uint8)(unsafe.Pointer(z2))) == int32('\000') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35920, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36066, 0) return FTS5_EOF } goto _1 @@ -203691,7 +205688,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z2) - int64(z)) default: if _sqlite3Fts5IsBareword(tls, *(*uint8)(unsafe.Pointer(z))) == 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35940, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36086, libc.VaList(bp+8, z)) return FTS5_EOF } tok = int32(FTS5_STRING) @@ -203706,13 +205703,13 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr z21++ } (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(z21) - int64(z)) - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35971, uint64(2)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36117, uint64(2)) == 0 { tok = int32(FTS5_OR) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+35974, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36120, uint64(3)) == 0 { tok = int32(FTS5_NOT) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30715, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+30861, uint64(3)) == 0 { tok = int32(FTS5_AND) } break @@ -204133,6 +206130,7 @@ func _fts5ExprSynonymList(tls *libc.TLS, pTerm uintptr, iRowid Ti64, pBuf uintpt *(*int32)(unsafe.Pointer(pn)) = (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn } } + goto synonym_poslist_out synonym_poslist_out: ; if aIter != bp { @@ -204265,6 +206263,7 @@ func _fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMat i++ } } + goto ismatch_out ismatch_out: ; *(*int32)(unsafe.Pointer(pbMatch)) = libc.BoolInt32((*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn > 0) @@ -204472,6 +206471,7 @@ func _fts5ExprNearIsMatch(tls *libc.TLS, pRc uintptr, pNear uintptr) (r int32) { goto ismatch_out } } + goto ismatch_out ismatch_out: ; bRet = libc.BoolInt32((*TFts5Buffer)(unsafe.Pointer((*(*TFts5NearTrimmer)(unsafe.Pointer(a))).FpOut)).Fn > 0) @@ -205817,8 +207817,8 @@ func _sqlite3Fts5ExprClonePhrase(tls *libc.TLS, pExpr uintptr, iPhrase int32, pp func _sqlite3Fts5ParseNear(tls *libc.TLS, pParse uintptr, pTok uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+35978, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34759, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) + if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+36124, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+34905, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) } } @@ -205838,7 +207838,7 @@ func _sqlite3Fts5ParseSetDistance(tls *libc.TLS, pParse uintptr, pNear uintptr, } c = *(*uint8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i))) if int32(c) < int32('0') || int32(c) > int32('9') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35983, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36129, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) return } nNear = nNear*int32(10) + (int32(*(*uint8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i)))) - int32('0')) @@ -205978,7 +207978,7 @@ func _sqlite3Fts5ParseColset(tls *libc.TLS, pParse uintptr, pColset uintptr, p u iCol++ } if iCol == (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21025, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21157, libc.VaList(bp+8, z)) } else { pRet = _fts5ParseColset(tls, pParse, pColset, iCol) } @@ -206105,7 +208105,7 @@ func _sqlite3Fts5ParseSetColset(tls *libc.TLS, pParse uintptr, pExpr uintptr, pC var _ /* pFree at bp+0 */ uintptr *(*uintptr)(unsafe.Pointer(bp)) = pColset if (*TFts5Config)(unsafe.Pointer((*TFts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FeDetail == int32(FTS5_DETAIL_NONE) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36012, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36158, 0) } else { _fts5ParseSetColset(tls, pParse, pExpr, pColset, bp) } @@ -206302,11 +208302,11 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin pPhrase = *(*uintptr)(unsafe.Pointer(pNear + 24)) if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase != int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 0 && (*(*TFts5ExprTerm)(unsafe.Pointer(pPhrase + 32))).FbFirst != 0 { if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase == int32(1) { - v2 = __ccgo_ts + 36065 + v2 = __ccgo_ts + 36211 } else { - v2 = __ccgo_ts + 35978 + v2 = __ccgo_ts + 36124 } - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36072, libc.VaList(bp+8, v2)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36218, libc.VaList(bp+8, v2)) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -206315,7 +208315,7 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin _fts5ExprAddChildren(tls, pRet, pLeft) _fts5ExprAddChildren(tls, pRet, pRight) if (*TFts5ExprNode)(unsafe.Pointer(pRet)).FiHeight > int32(SQLITE_FTS5_MAX_EXPR_DEPTH) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36122, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36268, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -208484,7 +210484,7 @@ func _fts5DataRead(tls *libc.TLS, p uintptr, iRowid Ti64) (r uintptr) { ** to the requested entry. */ if (*TFts5Index)(unsafe.Pointer(p)).FpReader == uintptr(0) && rc == SQLITE_OK { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36175, iRowid, 0, p+72) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36321, iRowid, 0, p+72) } /* If either of the sqlite3_blob_open() or sqlite3_blob_reopen() calls ** above returned SQLITE_ERROR, return SQLITE_CORRUPT_VTAB instead. @@ -208578,7 +210578,7 @@ func _fts5DataWrite(tls *libc.TLS, p uintptr, iRowid Ti64, pData uintptr, nData } if (*TFts5Index)(unsafe.Pointer(p)).FpWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36181, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36327, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return } @@ -208607,7 +210607,7 @@ func _fts5DataDelete(tls *libc.TLS, p uintptr, iFirst Ti64, iLast Ti64) { } if (*TFts5Index)(unsafe.Pointer(p)).FpDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36232, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36378, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if _fts5IndexPrepareStmt(tls, p, p+88, zSql) != 0 { return } @@ -208641,7 +210641,7 @@ func _fts5DataRemoveSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { } if (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36281, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36427, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter, int32(1), iSegid) @@ -208811,7 +210811,7 @@ func _fts5StructureDecode(tls *libc.TLS, pData uintptr, nData int32, piCookie ui } i = int32(4) /* Check if this is a V2 structure record. Set bStructureV2 if it is. */ - if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36321, uint64(4)) { + if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36467, uint64(4)) { i += int32(4) bStructureV2 = int32(1) } @@ -209004,7 +211004,7 @@ func _fts5IndexDataVersion(tls *libc.TLS, p uintptr) (r Ti64) { iVersion = 0 if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*TFts5Index)(unsafe.Pointer(p)).FpDataVersion == uintptr(0) { - (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36326, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) + (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+36472, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return 0 } @@ -209092,7 +211092,7 @@ func _fts5StructureWrite(tls *libc.TLS, p uintptr, pStruct uintptr) { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = int32(4) if (*TFts5Structure)(unsafe.Pointer(pStruct)).FnOriginCntr > uint64(0) { _ = libc.Int32FromInt32(0) - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36321, uint64(4)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36467, uint64(4)) *(*int32)(unsafe.Pointer(bp + 8)) += int32(4) } *(*int32)(unsafe.Pointer(bp + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), uint64((*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel)) @@ -210070,6 +212070,7 @@ func _fts5SegIterNext_None(tls *libc.TLS, p uintptr, pIter uintptr, pbNewTerm ui } _fts5SegIterLoadNPos(tls, p, pIter) return + goto next_none_eof next_none_eof: ; _fts5DataRelease(tls, (*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf) @@ -210446,6 +212447,7 @@ func _fts5LeafSeek(tls *libc.TLS, p uintptr, bGe int32, pIter uintptr, pTerm uin *(*Tu32)(unsafe.Pointer(bp)) += uint32(_sqlite3Fts5GetVarint32(tls, a+uintptr(*(*Tu32)(unsafe.Pointer(bp))), bp+4)) } } + goto search_failed search_failed: ; if bGe == 0 { @@ -210477,6 +212479,7 @@ search_failed: } } } + goto search_success search_success: ; if int64(*(*Tu32)(unsafe.Pointer(bp)))+int64(*(*Tu32)(unsafe.Pointer(bp + 8))) > int64(n) || *(*Tu32)(unsafe.Pointer(bp + 8)) < uint32(1) { @@ -210506,7 +212509,7 @@ func _fts5IdxSelectStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36349, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+36495, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect } @@ -210598,7 +212601,7 @@ func _fts5IdxNextStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36433, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+36579, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect } @@ -211731,6 +213734,7 @@ func _fts5IterSetOutputs_Col100(tls *libc.TLS, pIter uintptr, pSeg uintptr) { iPrevOut = iPrev } } + goto setoutputs_col_out setoutputs_col_out: ; (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*TFts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp @@ -211956,6 +213960,7 @@ func _fts5MultiIterNew(tls *libc.TLS, p uintptr, pStruct uintptr, flags int32, p _fts5MultiIterFree(tls, pNew) *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) } + goto fts5MultiIterNew_post_check fts5MultiIterNew_post_check: ; _ = libc.Int32FromInt32(0) @@ -212275,7 +214280,7 @@ func _fts5WriteFlushBtree(tls *libc.TLS, p uintptr, pWriter uintptr) { if (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn > 0 { v1 = (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fp } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } z = v1 /* The following was already done in fts5WriteInit(): */ @@ -212644,7 +214649,7 @@ func _fts5WriteInit(tls *libc.TLS, p uintptr, pWriter uintptr, iSegid int32) { _sqlite3Fts5BufferSize(tls, p+60, pWriter+8+8, uint32(nBuffer)) if (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36515, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+36661, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { /* Initialize the 4-byte leaf-page header to 0x00. */ @@ -213145,7 +215150,7 @@ func _fts5SecureDeleteIdxEntry(tls *libc.TLS, p uintptr, iSegid int32, iPgno int if iPgno != int32(1) { _ = libc.Int32FromInt32(0) if (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx == uintptr(0) { - _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36572, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+36718, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx, int32(1), iSegid) @@ -214685,7 +216690,7 @@ func _sqlite3Fts5IndexReinit(tls *libc.TLS, p uintptr) (r int32) { if (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FbContentlessDelete != 0 { (*(*TFts5Structure)(unsafe.Pointer(bp))).FnOriginCntr = uint64(1) } - _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1657, 0) + _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1671, 0) _fts5StructureWrite(tls, p, bp) return _fts5IndexReturn(tls, p) } @@ -214712,11 +216717,11 @@ func _sqlite3Fts5IndexOpen(tls *libc.TLS, pConfig uintptr, bCreate int32, pp uin if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Index)(unsafe.Pointer(p)).FpConfig = pConfig (*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit = int32(FTS5_WORK_UNIT) - (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36633, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36779, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl != 0 && bCreate != 0 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25750, __ccgo_ts+36641, 0, pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+25896, __ccgo_ts+36787, 0, pzErr) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11802, __ccgo_ts+36676, int32(1), pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+11927, __ccgo_ts+36822, int32(1), pzErr) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5IndexReinit(tls, p) @@ -215255,7 +217260,7 @@ func _fts5SetupTokendataIter(tls *libc.TLS, p uintptr, pToken uintptr, nToken in pNew = _fts5MultiIterAlloc(tls, p, (*TFts5Structure)(unsafe.Pointer(pStruct)).FnSegment) if pSmall != 0 { _sqlite3Fts5BufferSet(tls, p+60, bp, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fn, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+36720) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+36866) } else { _sqlite3Fts5BufferSet(tls, p+60, bp, nToken, pToken) } @@ -215785,7 +217790,7 @@ func _sqlite3Fts5IndexSetCookie(tls *libc.TLS, p uintptr, iNew int32) (r int32) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) _ = libc.Int32FromInt32(0) _sqlite3Fts5Put32(tls, bp, iNew) - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36175, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+36321, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) if rc == SQLITE_OK { Xsqlite3_blob_write(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), bp, int32(4), 0) rc = Xsqlite3_blob_close(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) @@ -216384,7 +218389,7 @@ func _fts5IndexIntegrityCheckSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { if (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst == 0 { return } - _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36722, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) + _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+36868, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) /* Iterate through the b-tree hierarchy. */ for (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { /* Data for this leaf */ zIdxTerm = Xsqlite3_column_blob(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -216617,7 +218622,7 @@ func _sqlite3Fts5IndexIntegrityCheck(tls *libc.TLS, p uintptr, cksum Tu64, bUseC } else { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = 0 _fts5SegiterPoslist(tls, p, *(*uintptr)(unsafe.Pointer(bp + 16))+104+uintptr((*(*TFts5CResult)(unsafe.Pointer((*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaFirst + 1*4))).FiFirst)*128, uintptr(0), bp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+36808) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+36954) for 0 == _sqlite3Fts5PoslistNext64(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn, bp+40, bp+32) { iCol = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) >> libc.Int32FromInt32(32)) iTokOff = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) & libc.Int64FromInt32(0x7FFFFFFF)) @@ -217215,7 +219220,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) _ = libc.Int32FromInt32(0) _ = libc.Int32FromInt32(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36813, 0) + (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36959, 0) return int32(SQLITE_ERROR) } idxStr = Xsqlite3_malloc(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint*int32(8)+int32(1)) @@ -217255,7 +219260,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v3 = iIdxStr iIdxStr++ *(*uint8)(unsafe.Pointer(idxStr + uintptr(v3))) = uint8('M') - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5147, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5211, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) _ = libc.Int32FromInt32(0) } @@ -217277,7 +219282,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v6 = int32('G') } *(*uint8)(unsafe.Pointer(idxStr + uintptr(v5))) = uint8(v6) - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5147, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5211, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) iCons++ v7 = iCons @@ -217719,7 +219724,7 @@ func _fts5NextMethod(tls *libc.TLS, pCursor uintptr) (r int32) { *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_EOF) rc = Xsqlite3_reset(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpStmt) if rc != SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } } else { rc = SQLITE_OK @@ -217746,7 +219751,7 @@ func _fts5PrepareStatement(tls *libc.TLS, ppStmt uintptr, pConfig uintptr, zFmt } else { rc = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } Xsqlite3_free(tls, zSql) } @@ -217781,21 +219786,21 @@ func _fts5CursorFirstSorted(tls *libc.TLS, pTab uintptr, pCsr uintptr, bDesc int ** ** If SQLite a built-in statement cache, this wouldn't be a problem. */ if zRankArgs != 0 { - v1 = __ccgo_ts + 14999 + v1 = __ccgo_ts + 15092 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } if zRankArgs != 0 { v2 = zRankArgs } else { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } if bDesc != 0 { - v3 = __ccgo_ts + 36852 + v3 = __ccgo_ts + 36998 } else { - v3 = __ccgo_ts + 36857 + v3 = __ccgo_ts + 37003 } - rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+36861, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) + rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+37007, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpSorter = pSorter if rc == SQLITE_OK { _ = libc.Int32FromInt32(0) @@ -217855,14 +219860,14 @@ func _fts5SpecialMatch(tls *libc.TLS, pTab uintptr, pCsr uintptr, zQuery uintptr } _ = libc.Int32FromInt32(0) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan = int32(FTS5_PLAN_SPECIAL) - if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+36916, z, n) { + if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+37062, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = int64(_sqlite3Fts5IndexReads(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)) } else { - if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5490, z, n) { + if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5554, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId } else { /* An unrecognized directive. Return an error message. */ - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36922, libc.VaList(bp+8, n, z)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37068, libc.VaList(bp+8, n, z)) rc = int32(SQLITE_ERROR) } } @@ -217912,7 +219917,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { zRank = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank zRankArgs = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs if zRankArgs != 0 { - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36950, libc.VaList(bp+24, zRankArgs)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37096, libc.VaList(bp+24, zRankArgs)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp+8, uintptr(0)) @@ -217948,7 +219953,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { pAux = _fts5FindAuxiliary(tls, pTab, zRank) if pAux == uintptr(0) { _ = libc.Int32FromInt32(0) - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36960, libc.VaList(bp+24, zRank)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37106, libc.VaList(bp+24, zRank)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -217982,7 +219987,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_FREE_ZRANK) } else { if rc == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36981, libc.VaList(bp+24, z)) + (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37127, libc.VaList(bp+24, z)) } } } else { @@ -217990,7 +219995,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRank (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRankArgs } else { - (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 34913 + (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 35059 (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = uintptr(0) } } @@ -218041,7 +220046,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint iIdxStr = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36813, 0) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+36959, 0) return int32(SQLITE_ERROR) } if (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan != 0 { @@ -218071,7 +220076,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint case int32('M'): zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8))) if zText == uintptr(0) { - zText = __ccgo_ts + 1657 + zText = __ccgo_ts + 1671 } iCol = 0 for cond := true; cond; cond = int32(*(*uint8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) >= int32('0') && int32(*(*uint8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) <= int32('9') { @@ -218199,7 +220204,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent == uintptr(0) { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37014, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37160, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) rc = int32(SQLITE_ERROR) } else { /* This is either a full-table scan (ePlan==FTS5_PLAN_SCAN) or a lookup @@ -218224,6 +220229,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } } + goto filter_out filter_out: ; _sqlite3Fts5ExprFree(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -218342,7 +220348,7 @@ func _fts5SeekCursor(tls *libc.TLS, pCsr uintptr, bErrormsg int32) (r int32) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< int32(1) { - v1 = __ccgo_ts + 20878 + v1 = __ccgo_ts + 21010 } else { - v1 = __ccgo_ts + 37292 + v1 = __ccgo_ts + 37438 } - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37304, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37450, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if nArg == int32(1) { @@ -218607,7 +220613,7 @@ func _fts5UpdateMethod(tls *libc.TLS, pVtab uintptr, nArg int32, apVal uintptr, } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && bUpdateOrDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FbSecureDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion == int32(FTS5_CURRENT_VERSION) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35841, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+35987, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = int32(FTS5_CURRENT_VERSION_SECUREDELETE) } @@ -219408,7 +221414,7 @@ func _fts5ApiCallback(tls *libc.TLS, context uintptr, argc int32, argv uintptr) iCsrId = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) pCsr = _fts5CursorFromCsrid(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal, iCsrId) if pCsr == uintptr(0) || (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan == 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37341, libc.VaList(bp+8, iCsrId)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37487, libc.VaList(bp+8, iCsrId)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } else { @@ -219600,7 +221606,7 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg = uintptr(0) } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 && Xsqlite3_vtab_nochange(tls, pCtx) != 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37362, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+37508, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -219843,7 +221849,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr if pMod == uintptr(0) { _ = libc.Int32FromInt32(0) rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37433, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37579, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) } else { if azArg != 0 { v2 = azArg + 1*8 @@ -219859,7 +221865,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr (*TFts5Config)(unsafe.Pointer(pConfig)).FpTokApi = pMod + 16 if rc != SQLITE_OK { if pzErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37455, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37601, 0) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FePattern = _sqlite3Fts5TokenizerPattern(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pMod)).Fx.FxCreate, (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok) @@ -219915,7 +221921,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { pGlobal = Xsqlite3_user_data(tls, pCtx) _ = nArg _ = libc.Int32FromInt32(0) - ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37486) + ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+37632) if ppApi != 0 { *(*uintptr)(unsafe.Pointer(ppApi)) = pGlobal } @@ -219930,7 +221936,7 @@ func _fts5SourceIdFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apUnused uintptr _ = libc.Int32FromInt32(0) _ = nArg _ = apUnused - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37499, -int32(1), uintptr(-libc.Int32FromInt32(1))) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+37645, -int32(1), uintptr(-libc.Int32FromInt32(1))) } // C documentation @@ -219959,11 +221965,11 @@ func _fts5ShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName2 = [5]uintptr{ - 0: __ccgo_ts + 37590, - 1: __ccgo_ts + 35102, - 2: __ccgo_ts + 25750, - 3: __ccgo_ts + 35669, - 4: __ccgo_ts + 11802, + 0: __ccgo_ts + 37736, + 1: __ccgo_ts + 35248, + 2: __ccgo_ts + 25896, + 3: __ccgo_ts + 35815, + 4: __ccgo_ts + 11927, } // C documentation @@ -219977,21 +221983,27 @@ func _fts5IntegrityMethod(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zTabnam bp := tls.Alloc(32) defer tls.Free(32) var pTab uintptr - var rc int32 - _, _ = pTab, rc + var rc, v1 int32 + _, _, _ = pTab, rc, v1 pTab = pVtab _ = libc.Int32FromInt32(0) _ = isQuick rc = _sqlite3Fts5StorageIntegrity(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, 0) if rc&int32(0xff) == int32(SQLITE_CORRUPT) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37597, libc.VaList(bp+8, zSchema, zTabname)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37743, libc.VaList(bp+8, zSchema, zTabname)) + if *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { + v1 = SQLITE_OK + } else { + v1 = int32(SQLITE_NOMEM) + } + rc = v1 } else { if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37643, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37789, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) } } _sqlite3Fts5IndexCloseReader(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex) - return SQLITE_OK + return rc } func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { @@ -220010,7 +222022,7 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateFunction = __ccgo_fp(_fts5CreateAux) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateTokenizer = __ccgo_fp(_fts5CreateTokenizer) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxFindTokenizer = __ccgo_fp(_fts5FindTokenizer) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37706, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+37852, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) if rc == SQLITE_OK { rc = _sqlite3Fts5IndexInit(tls, db) } @@ -220027,10 +222039,10 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { rc = _sqlite3Fts5VocabInit(tls, pGlobal, db) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37706, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37852, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37711, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+37857, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) } } /* If SQLITE_FTS5_ENABLE_TEST_MI is defined, assume that the file @@ -220135,17 +222147,17 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, _ = libc.Int32FromInt32(0) if *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(eStmt)*8)) == uintptr(0) { azStmt = [11]uintptr{ - 0: __ccgo_ts + 37726, - 1: __ccgo_ts + 37794, - 2: __ccgo_ts + 37863, - 3: __ccgo_ts + 37896, - 4: __ccgo_ts + 37935, - 5: __ccgo_ts + 37975, - 6: __ccgo_ts + 38014, - 7: __ccgo_ts + 38057, - 8: __ccgo_ts + 38096, - 9: __ccgo_ts + 38140, - 10: __ccgo_ts + 38180, + 0: __ccgo_ts + 37872, + 1: __ccgo_ts + 37940, + 2: __ccgo_ts + 38009, + 3: __ccgo_ts + 38042, + 4: __ccgo_ts + 38081, + 5: __ccgo_ts + 38121, + 6: __ccgo_ts + 38160, + 7: __ccgo_ts + 38203, + 8: __ccgo_ts + 38242, + 9: __ccgo_ts + 38286, + 10: __ccgo_ts + 38326, } pC = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig zSql = uintptr(0) @@ -220182,16 +222194,16 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, } case int32(FTS5_STMT_REPLACE_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v2 = __ccgo_ts + 38203 + v2 = __ccgo_ts + 38349 } else { - v2 = __ccgo_ts + 1657 + v2 = __ccgo_ts + 1671 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName, v2)) case int32(FTS5_STMT_LOOKUP_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v3 = __ccgo_ts + 38206 + v3 = __ccgo_ts + 38352 } else { - v3 = __ccgo_ts + 1657 + v3 = __ccgo_ts + 1671 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, v3, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName)) default: @@ -220210,7 +222222,7 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, (*TFts5Config)(unsafe.Pointer((*TFts5Storage)(unsafe.Pointer(p)).FpConfig)).FbLock-- Xsqlite3_free(tls, zSql) if rc != SQLITE_OK && pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3804, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3868, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) } } } @@ -220247,12 +222259,12 @@ func _sqlite3Fts5DropAll(tls *libc.TLS, pConfig uintptr) (r int32) { defer tls.Free(64) var rc int32 _ = rc - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38214, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38360, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38318, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38464, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38356, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38502, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } return rc } @@ -220261,7 +222273,7 @@ func _fts5StorageRenameOne(tls *libc.TLS, pConfig uintptr, pRc uintptr, zTail ui bp := tls.Alloc(48) defer tls.Free(48) if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38394, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) + *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38540, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) } } @@ -220273,14 +222285,14 @@ func _sqlite3Fts5StorageRename(tls *libc.TLS, pStorage uintptr, zName uintptr) ( _ = pConfig pConfig = (*TFts5Storage)(unsafe.Pointer(pStorage)).FpConfig *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageSync(tls, pStorage) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25750, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11802, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37590, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+25896, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+11927, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37736, zName) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35669, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35815, zName) } if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35102, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35248, zName) } return *(*int32)(unsafe.Pointer(bp)) } @@ -220300,13 +222312,13 @@ func _sqlite3Fts5CreateTable(tls *libc.TLS, pConfig uintptr, zPost uintptr, zDef _, _ = rc, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if bWithout != 0 { - v1 = __ccgo_ts + 30390 + v1 = __ccgo_ts + 30536 } else { - v1 = __ccgo_ts + 1657 + v1 = __ccgo_ts + 1671 } - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38436, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+38582, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38466, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38612, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -220347,36 +222359,36 @@ func _sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCr if zDefn == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38510, 0) + Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+38656, 0) iOff = int32(libc.Xstrlen(tls, zDefn)) i = 0 for { if !(i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } - Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38533, libc.VaList(bp+8, i)) + Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+38679, libc.VaList(bp+8, i)) iOff += int32(libc.Xstrlen(tls, zDefn+uintptr(iOff))) goto _2 _2: ; i++ } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35102, zDefn, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35248, zDefn, 0, pzErr) } Xsqlite3_free(tls, zDefn) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - zCols = __ccgo_ts + 38539 + zCols = __ccgo_ts + 38685 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 { - zCols = __ccgo_ts + 38571 + zCols = __ccgo_ts + 38717 } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35669, zCols, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35815, zCols, 0, pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37590, __ccgo_ts+38619, int32(1), pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37736, __ccgo_ts+38765, int32(1), pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35841, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35987, uintptr(0), int32(FTS5_CURRENT_VERSION)) } } if rc != 0 { @@ -220723,9 +222735,9 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig (*TFts5Storage)(unsafe.Pointer(p)).FbTotalsValid = 0 /* Delete the contents of the %_data and %_docsize tables. */ - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38636, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38782, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38686, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+38832, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } /* Reinitialize the %_data table. This call creates the initial structure ** and averages records. */ @@ -220733,7 +222745,7 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3Fts5IndexReinit(tls, (*TFts5Storage)(unsafe.Pointer(p)).FpIndex) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35841, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+35987, uintptr(0), int32(FTS5_CURRENT_VERSION)) } return rc } @@ -220947,7 +222959,7 @@ func _fts5StorageCount(tls *libc.TLS, p uintptr, zSuffix uintptr, pnRow uintptr) var _ /* pCnt at bp+0 */ uintptr _, _, _ = pConfig, rc, zSql pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38715, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+38861, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -221158,14 +223170,14 @@ func _sqlite3Fts5StorageIntegrity(tls *libc.TLS, p uintptr, iArg int32) (r int32 ** number of rows. */ if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { *(*Ti64)(unsafe.Pointer(bp + 48)) = 0 - rc = _fts5StorageCount(tls, p, __ccgo_ts+35102, bp+48) + rc = _fts5StorageCount(tls, p, __ccgo_ts+35248, bp+48) if rc == SQLITE_OK && *(*Ti64)(unsafe.Pointer(bp + 48)) != (*TFts5Storage)(unsafe.Pointer(p)).FnTotalRow { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<= int32('A') && int32(*(*uint8)(unsafe.Pointer(zCsr))) <= int32('Z') { @@ -222095,6 +224109,7 @@ _5: goto _2 _1: ; + goto tokenize_done tokenize_done: ; if rc == int32(SQLITE_DONE) { @@ -222158,7 +224173,7 @@ func _fts5PorterCreate(tls *libc.TLS, pCtx uintptr, azArg uintptr, nArg int32, p pApi = pCtx rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zBase = __ccgo_ts + 38807 + zBase = __ccgo_ts + 38953 if nArg > 0 { zBase = *(*uintptr)(unsafe.Pointer(azArg)) } @@ -222375,64 +224390,64 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38817, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38963, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38820, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38966, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38825, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38971, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('e'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38830, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38976, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38833, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38979, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('l'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38836, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38982, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38841, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38987, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38846, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38992, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38850, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38996, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38856, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39002, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38861, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39007, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -222441,49 +224456,49 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38865, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39011, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1_and_S_or_T(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38869, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39015, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } } case int32('s'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38872, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39018, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('t'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38876, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39022, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38880, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39026, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38884, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39030, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38888, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39034, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('z'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38892, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39038, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -222500,20 +224515,20 @@ func _fts5PorterStep1B2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38896, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38876, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39042, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39022, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('b'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38899, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38902, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39045, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39048, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38906, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+38892, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39052, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39038, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } @@ -222529,75 +224544,75 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38909, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39055, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38876, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39022, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38917, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39063, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38924, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39070, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(4) } } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38929, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39075, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38825, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38971, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38934, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39080, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38820, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38966, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } } case int32('e'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38939, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39085, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38892, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39038, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('g'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38944, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39090, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15916, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+15995, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('l'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38949, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39095, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38902, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39048, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38953, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39099, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38817, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38963, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38958, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39104, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38861, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39007, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38964, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39110, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+38968, uint64(1)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39114, uint64(1)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(1) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38970, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39116, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38884, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39030, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } @@ -222606,48 +224621,48 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38976, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39122, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38892, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39038, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38984, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39130, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38876, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39022, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38990, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39136, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38876, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39022, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } } } case int32('s'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+38995, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39141, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38817, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38963, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39001, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39147, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38888, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39034, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39009, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39155, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39017, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39163, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39021, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39167, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+38884, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39030, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } @@ -222655,21 +224670,21 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39029, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39175, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38817, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38963, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39035, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39181, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38888, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39034, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39041, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39187, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+38902, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39048, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(3) } } @@ -222687,48 +224702,48 @@ func _fts5PorterStep3(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39048, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39194, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38833, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+38979, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } case int32('s'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39053, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39199, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39058, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39204, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38833, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38979, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39064, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39210, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38833, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38979, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39017, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39163, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39070, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39216, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } case int32('z'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39076, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39222, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38817, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+38963, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } @@ -222744,13 +224759,13 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('e'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39082, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39228, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39086, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39232, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(2) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39089, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39235, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) ret = int32(1) @@ -222758,7 +224773,7 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39092, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39238, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) ret = int32(1) @@ -222844,6 +224859,7 @@ func _fts5PorterCb(tls *libc.TLS, pCtx uintptr, tflags int32, pToken uintptr, nT *(*int32)(unsafe.Pointer(bp))-- } return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, aBuf, *(*int32)(unsafe.Pointer(bp)), iStart, iEnd) + goto pass_through pass_through: ; return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, pToken, nToken, iStart, iEnd) @@ -222919,14 +224935,14 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p break } zArg = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+int32(1))*8)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39096) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39242) { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || *(*uint8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { (*TTrigramTokenizer)(unsafe.Pointer(pNew)).FbFold = libc.BoolInt32(int32(*(*uint8)(unsafe.Pointer(zArg))) == int32('0')) } } else { - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38789) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+38935) { if int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') && int32(*(*uint8)(unsafe.Pointer(zArg))) != int32('2') || *(*uint8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { @@ -223201,7 +225217,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { Fx Tfts5_tokenizer }{ 0: { - FzName: __ccgo_ts + 38807, + FzName: __ccgo_ts + 38953, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5UnicodeCreate), FxDelete: __ccgo_fp(_fts5UnicodeDelete), @@ -223209,7 +225225,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 1: { - FzName: __ccgo_ts + 39111, + FzName: __ccgo_ts + 39257, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5AsciiCreate), FxDelete: __ccgo_fp(_fts5AsciiDelete), @@ -223217,7 +225233,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 2: { - FzName: __ccgo_ts + 39117, + FzName: __ccgo_ts + 39263, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5PorterCreate), FxDelete: __ccgo_fp(_fts5PorterDelete), @@ -223225,7 +225241,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 3: { - FzName: __ccgo_ts + 39124, + FzName: __ccgo_ts + 39270, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5TriCreate), FxDelete: __ccgo_fp(_fts5TriDelete), @@ -228770,16 +230786,16 @@ func _fts5VocabTableType(tls *libc.TLS, zType uintptr, pzErr uintptr, peType uin zCopy = _sqlite3Fts5Strndup(tls, bp, zType, -int32(1)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { _sqlite3Fts5Dequote(tls, zCopy) - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39132) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39278) == 0 { *(*int32)(unsafe.Pointer(peType)) = FTS5_VOCAB_COL } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39136) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39282) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_ROW) } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39140) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+39286) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_INSTANCE) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39149, libc.VaList(bp+16, zCopy)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39295, libc.VaList(bp+16, zCopy)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -228848,15 +230864,15 @@ func _fts5VocabInitVtab(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg var _ /* rc at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _ = azSchema, bDb, nByte, nDb, nTab, pRet, zDb, zTab, zType, v1, v2, v3 azSchema = [3]uintptr{ - 0: __ccgo_ts + 39183, - 1: __ccgo_ts + 39223, - 2: __ccgo_ts + 39258, + 0: __ccgo_ts + 39329, + 1: __ccgo_ts + 39369, + 2: __ccgo_ts + 39404, } pRet = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+23751, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) + bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+23874, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) if argc != int32(5) && bDb == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39301, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39447, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bDb != 0 { @@ -229027,10 +231043,10 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) zSql = uintptr(0) if (*TFts5VocabTable)(unsafe.Pointer(pTab)).FbBusy != 0 { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39334, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39480, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) return int32(SQLITE_ERROR) } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39365, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+39511, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, (*TFts5VocabTable)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), bp+8, uintptr(0)) } @@ -229050,7 +231066,7 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39416, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+39562, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } else { @@ -229359,7 +231375,7 @@ func _fts5VocabFilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, zUnuse if pLe != 0 { zCopy = Xsqlite3_value_text(tls, pLe) if zCopy == uintptr(0) { - zCopy = __ccgo_ts + 1657 + zCopy = __ccgo_ts + 1671 } (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm = Xsqlite3_value_bytes(tls, pLe) (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm = Xsqlite3_malloc(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm+int32(1)) @@ -229487,7 +231503,7 @@ func _sqlite3Fts5VocabInit(tls *libc.TLS, pGlobal uintptr, db uintptr) (r int32) var p uintptr _ = p p = pGlobal - return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39442, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) + return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39588, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) } var _fts5Vocab = Tsqlite3_module{ @@ -229540,7 +231556,7 @@ func init() { // /************** End of stmt.c ************************************************/ // /* Return the source-id for this library */ func Xsqlite3_sourceid(tls *libc.TLS) (r uintptr) { - return __ccgo_ts + 39452 + return __ccgo_ts + 39598 } type TAggInfo_col = struct { @@ -229822,11 +231838,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]uint8{'3', '.', '4', '5', '.', '3'} +var Xsqlite3_version = [7]uint8{'3', '.', '4', '6', '.', '0'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-10.2.1 20210110\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%04d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00(subquery-%u)\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSmaller\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00PRAGMA \"%w\".integrity_check(%Q)\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00ceiling\x00floor\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00wrong # of entries in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00RIGHT PART OF \x00USE TEMP B-TREE FOR %sORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00parser stack overflow\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-10.2.1 20210110\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_NOOP\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00ceiling\x00floor\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%04d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00%u-ROW VALUES CLAUSE\x00(subquery-%u)\x00unrecognized token: \"%s\"\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSizeBetween\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00open\x00close\x00access\x00getcwd\x00stat\x00fstat\x00ftruncate\x00fcntl\x00read\x00pread\x00pread64\x00write\x00pwrite\x00pwrite64\x00fchmod\x00fallocate\x00unlink\x00openDirectory\x00mkdir\x00rmdir\x00fchown\x00geteuid\x00mmap\x00munmap\x00mremap\x00getpagesize\x00readlink\x00lstat\x00ioctl\x00attempt to open \"%s\" as file descriptor %d\x00/dev/null\x00os_unix.c:%d: (%d) %s(%s) - %s\x00cannot fstat db file %s\x00file unlinked while open: %s\x00multiple links to file: %s\x00file renamed while open: %s\x00%s\x00full_fsync\x00%s-shm\x00readonly_shm\x00psow\x00unix-excl\x00%s.lock\x00/var/tmp\x00/usr/tmp\x00/tmp\x00SQLITE_TMPDIR\x00TMPDIR\x00%s/etilqs_%llx%c\x00modeof\x00fsync\x00/dev/urandom\x00unix\x00unix-none\x00unix-dotfile\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: \"%s\" - should this be a string literal in single-quotes?\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00SCAN %S\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00so\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00exclusive\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00wrong # of entries in index \x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00LAST TERM OF \x00USE TEMP B-TREE FOR %sORDER BY\x00USE TEMP B-TREE FOR LAST %d TERMS OF ORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00syntax error\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00,\n\x00: \x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00 \x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_pretty\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00" type Sqlite3_int64 = sqlite3_int64 type Sqlite3_mutex_methods = sqlite3_mutex_methods diff --git a/vendor/modernc.org/sqlite/lib/sqlite_windows.go b/vendor/modernc.org/sqlite/lib/sqlite_windows.go index d2ec1122..b5561cd2 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_windows.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_windows.go @@ -1,4 +1,4 @@ -// Code generated for windows/amd64 by 'generator -mlong-double-64 --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -import runtime -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -extended-errors -o sqlite3.go sqlite3.c -I/tmp/libsqlite3/sqlite-amalgamation-3450300/ccgo --cpp /usr/bin/x86_64-w64-mingw32-gcc --goarch amd64 --goos windows -DSQLITE_HAVE_C99_MATH_FUNCS=(1) -DSQLITE_OS_WIN=1 -DSQLITE_OMIT_SEH -build-lines \/\/go:build windows && (amd64 || arm64)\n\/\/ \x2bbuild windows\n\/\/ \x2bbuild amd64 arm64 -map gcc=x86_64-w64-mingw32-gcc -eval-all-macros', DO NOT EDIT. +// Code generated for windows/amd64 by 'generator -mlong-double-64 --package-name libsqlite3 --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -ignore-unsupported-alignment -DHAVE_USLEEP -DLONGDOUBLE_TYPE=double -DNDEBUG -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_GEOPOLY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_OFFSET_SQL_FUNC -DSQLITE_ENABLE_PREUPDATE_HOOK -DSQLITE_ENABLE_RBU -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_SNAPSHOT -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_HAVE_ZLIB=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE=1 -DSQLITE_WITHOUT_ZONEMALLOC -Dpread64=pread -Dpwrite64=pwrite -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libz/include/windows/amd64 -I /home/jnml/src/modernc.org/builder/.exclude/modernc.org/libtcl8.6/include/windows/amd64 -extended-errors -o sqlite3.go sqlite3.c --cpp /usr/bin/x86_64-w64-mingw32-gcc --goarch amd64 --goos windows -DSQLITE_HAVE_C99_MATH_FUNCS=(1) -DSQLITE_OS_WIN=1 -DSQLITE_OMIT_SEH -build-lines \/\/go:build windows && (amd64 || arm64)\n\/\/ \x2bbuild windows\n\/\/ \x2bbuild amd64 arm64 -map gcc=x86_64-w64-mingw32-gcc -eval-all-macros', DO NOT EDIT. //go:build windows && (amd64 || arm64) // +build windows @@ -11,8 +11,6 @@ import ( "unsafe" "modernc.org/libc" - - "runtime" ) var ( @@ -12543,6 +12541,7 @@ const OPFLG_IN1 = 2 const OPFLG_IN2 = 4 const OPFLG_IN3 = 8 const OPFLG_JUMP = 1 +const OPFLG_JUMP0 = 128 const OPFLG_NCYCLE = 64 const OPFLG_OUT2 = 16 const OPFLG_OUT3 = 32 @@ -12623,7 +12622,7 @@ const OP_IfNotOpen = 25 const OP_IfNotZero = 60 const OP_IfNullRow = 20 const OP_IfPos = 59 -const OP_IfSmaller = 33 +const OP_IfSizeBetween = 33 const OP_IncrVacuum = 62 const OP_Init = 8 const OP_InitCoroutine = 11 @@ -16143,6 +16142,7 @@ const SF_ComplexResult = 262144 const SF_Compound = 256 const SF_Converted = 65536 const SF_CopyCte = 67108864 +const SF_Correlated = 536870912 const SF_Distinct = 1 const SF_Expanded = 64 const SF_FixedLimit = 16384 @@ -17035,6 +17035,7 @@ const SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT = -1 const SQLITE_DEFAULT_LOOKASIDE = 40 const SQLITE_DEFAULT_MEMSTATUS = 0 const SQLITE_DEFAULT_MMAP_SIZE = 0 +const SQLITE_DEFAULT_OPTIMIZE_LIMIT = 2000 const SQLITE_DEFAULT_PAGE_SIZE = 4096 const SQLITE_DEFAULT_PCACHE_INITSZ = 20 const SQLITE_DEFAULT_RECURSIVE_TRIGGERS = 0 @@ -17051,6 +17052,7 @@ const SQLITE_DESERIALIZE_READONLY = 4 const SQLITE_DESERIALIZE_RESIZEABLE = 2 const SQLITE_DETACH = 25 const SQLITE_DETERMINISTIC = 2048 +const SQLITE_DIGIT_SEPARATOR = 95 const SQLITE_DIRECTONLY = 524288 const SQLITE_DIRECT_OVERFLOW_READ = 1 const SQLITE_DONE = 101 @@ -17478,7 +17480,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355" +const SQLITE_SOURCE_ID = "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -17587,8 +17589,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.45.3" -const SQLITE_VERSION_NUMBER = 3045003 +const SQLITE_VERSION = "3.46.0" +const SQLITE_VERSION_NUMBER = 3046000 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -18440,12 +18442,12 @@ const TF_HasStat1 = 16 const TF_HasStat4 = 8192 const TF_HasStored = 64 const TF_HasVirtual = 32 +const TF_MaybeReanalyze = 256 const TF_NoVisibleRowid = 512 const TF_OOOHidden = 1024 const TF_REUSE_SOCKET = 2 const TF_Readonly = 1 const TF_Shadow = 4096 -const TF_StatsUsed = 256 const TF_Strict = 65536 const TF_WRITE_BEHIND = 4 const TF_WithoutRowid = 128 @@ -18619,7 +18621,7 @@ const TK_ID = 59 const TK_IF = 18 const TK_IF_NULL_ROW = 179 const TK_IGNORE = 63 -const TK_ILLEGAL = 184 +const TK_ILLEGAL = 185 const TK_IMMEDIATE = 8 const TK_IN = 49 const TK_INDEX = 161 @@ -18667,6 +18669,7 @@ const TK_PRAGMA = 70 const TK_PRECEDING = 88 const TK_PRIMARY = 122 const TK_PTR = 112 +const TK_QNUMBER = 183 const TK_QUERY = 3 const TK_RAISE = 71 const TK_RANGE = 89 @@ -18691,7 +18694,7 @@ const TK_SELECT_COLUMN = 178 const TK_SEMI = 1 const TK_SET = 130 const TK_SLASH = 109 -const TK_SPACE = 183 +const TK_SPACE = 184 const TK_SPAN = 181 const TK_STAR = 108 const TK_STRING = 117 @@ -18704,12 +18707,12 @@ const TK_TRANSACTION = 6 const TK_TRIGGER = 77 const TK_TRUEFALSE = 170 const TK_TRUTH = 175 -const TK_UMINUS = 173 +const TK_UMINUS = 174 const TK_UNBOUNDED = 90 const TK_UNION = 134 const TK_UNIQUE = 123 const TK_UPDATE = 129 -const TK_UPLUS = 174 +const TK_UPLUS = 173 const TK_USING = 144 const TK_VACUUM = 78 const TK_VALUES = 139 @@ -20877,31 +20880,37 @@ const XTYP_UNREGISTER = 32978 const XTYP_WILDCONNECT = 8418 const XTYP_XACT_COMPLETE = 32896 const XcvData = 0 +const YYDYNSTACK = 1 const YYFALLBACK = 1 +const YYFREE = 0 +const YYGROWABLESTACK = 1 const YYMALLOCARGTYPE = 0 -const YYNOCODE = 319 +const YYNOCODE = 322 const YYNOERRORRECOVERY = 1 -const YYNRULE = 405 -const YYNRULE_WITH_ACTION = 340 -const YYNSTATE = 579 -const YYNTOKEN = 185 +const YYNRULE = 409 +const YYNRULE_WITH_ACTION = 344 +const YYNSTATE = 583 +const YYNTOKEN = 186 const YYPARSEFREENEVERNULL = 1 +const YYREALLOC = 0 const YYSTACKDEPTH = 100 const YYWILDCARD = 101 -const YY_ACCEPT_ACTION = 1244 -const YY_ACTTAB_COUNT = 2100 -const YY_ERROR_ACTION = 1243 -const YY_MAX_REDUCE = 1650 -const YY_MAX_SHIFT = 578 -const YY_MAX_SHIFTREDUCE = 1242 -const YY_MIN_REDUCE = 1246 -const YY_MIN_SHIFTREDUCE = 838 -const YY_NO_ACTION = 1245 -const YY_REDUCE_COUNT = 410 -const YY_REDUCE_MAX = 1753 -const YY_REDUCE_MIN = -271 -const YY_SHIFT_COUNT = 578 -const YY_SHIFT_MAX = 2088 +const YY_ACCEPT_ACTION = 1255 +const YY_ACTTAB_COUNT = 2142 +const YY_ERROR_ACTION = 1254 +const YY_MAX_DSTRCTR = 319 +const YY_MAX_REDUCE = 1665 +const YY_MAX_SHIFT = 582 +const YY_MAX_SHIFTREDUCE = 1253 +const YY_MIN_DSTRCTR = 205 +const YY_MIN_REDUCE = 1257 +const YY_MIN_SHIFTREDUCE = 845 +const YY_NO_ACTION = 1256 +const YY_REDUCE_COUNT = 411 +const YY_REDUCE_MAX = 1798 +const YY_REDUCE_MIN = -275 +const YY_SHIFT_COUNT = 582 +const YY_SHIFT_MAX = 2128 const YY_SHIFT_MIN = 0 const YieldProcessor = 0 const ZAWPROXYAPI = "DECLSPEC_IMPORT" @@ -21701,6 +21710,9 @@ const frm4 = 1079 const fseeko = 0 const ftello = 0 const fts5GetVarint = 0 +const fts5YYDYNSTACK = 0 +const fts5YYFREE = 0 +const fts5YYGROWABLESTACK = 0 const fts5YYMALLOCARGTYPE = 0 const fts5YYNFTS5TOKEN = 16 const fts5YYNOCODE = 27 @@ -21709,13 +21721,16 @@ const fts5YYNRULE = 28 const fts5YYNRULE_WITH_ACTION = 28 const fts5YYNSTATE = 35 const fts5YYPARSEFREENOTNULL = 1 +const fts5YYREALLOC = 0 const fts5YYSTACKDEPTH = 100 const fts5YY_ACCEPT_ACTION = 81 const fts5YY_ACTTAB_COUNT = 105 const fts5YY_ERROR_ACTION = 80 +const fts5YY_MAX_DSTRCTR = 24 const fts5YY_MAX_REDUCE = 110 const fts5YY_MAX_SHIFT = 34 const fts5YY_MAX_SHIFTREDUCE = 79 +const fts5YY_MIN_DSTRCTR = 16 const fts5YY_MIN_REDUCE = 83 const fts5YY_MIN_SHIFTREDUCE = 52 const fts5YY_NO_ACTION = 82 @@ -22844,11 +22859,11 @@ type sqlite3_file1 = Tsqlite3_file1 // ** // ** xLock() upgrades the database file lock. In other words, xLock() moves the // ** database file lock in the direction NONE toward EXCLUSIVE. The argument to -// ** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +// ** xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never // ** SQLITE_LOCK_NONE. If the database file lock is already at or above the // ** requested lock, then the call to xLock() is a no-op. // ** xUnlock() downgrades the database file lock to either SHARED or NONE. -// * If the lock is already at or below the requested lock state, then the call +// ** If the lock is already at or below the requested lock state, then the call // ** to xUnlock() is a no-op. // ** The xCheckReservedLock() method checks whether any database connection, // ** either in this process or in some other process, is holding a RESERVED, @@ -24993,6 +25008,7 @@ type Tsqlite3_changegroup = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -25319,8 +25335,8 @@ type Fts5PhraseIter1 = TFts5PhraseIter1 ** EXTENSION API FUNCTIONS ** ** xUserData(pFts): -** Return a copy of the context pointer the extension function was -** registered with. +** Return a copy of the pUserData pointer passed to the xCreateFunction() +** API when the extension function was registered. ** ** xColumnTotalSize(pFts, iCol, pnToken): ** If parameter iCol is less than zero, set output variable *pnToken @@ -26327,10 +26343,10 @@ type fpos_t = Tfpos_t * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ -func _vswprintf(tls *libc.TLS, __stream uintptr, __count Tsize_t, __format uintptr, __local_argv t__builtin_va_list) (r int32) { +func _vswprintf(tls *libc.TLS, __stream1 uintptr, __count Tsize_t, __format1 uintptr, __local_argv1 t__builtin_va_list) (r int32) { var v1 int32 _ = v1 - v1 = libc.X__mingw_vsnwprintf(tls, __stream, __count, __format, __local_argv) + v1 = libc.X__mingw_vsnwprintf(tls, __stream1, __count, __format1, __local_argv1) goto _2 _2: return v1 @@ -26662,7 +26678,7 @@ type uptr = Tuptr ** 0x00000010 Display sqlite3_index_info xBestIndex calls ** 0x00000020 Range an equality scan metrics ** 0x00000040 IN operator decisions -** 0x00000080 WhereLoop cost adjustements +** 0x00000080 WhereLoop cost adjustments ** 0x00000100 ** 0x00000200 Covering index decisions ** 0x00000400 OR optimization @@ -27174,6 +27190,7 @@ type TParse = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -27395,6 +27412,7 @@ type TSrcItem = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -29671,10 +29689,12 @@ type IdList1 = TIdList1 ** ** Union member validity: ** -** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc -** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy -** u2.pIBIndex fg.isIndexedBy && !fg.isCte -** u2.pCteUse fg.isCte && !fg.isIndexedBy +** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc +** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy +** u1.nRow !fg.isTabFunc && !fg.isIndexedBy +** +** u2.pIBIndex fg.isIndexedBy && !fg.isCte +** u2.pCteUse fg.isCte && !fg.isIndexedBy */ type TSrcItem1 = struct { FpSchema uintptr @@ -29700,6 +29720,7 @@ type TSrcItem1 = struct { FcolUsed TBitmask Fu1 struct { FpFuncArg [0]uintptr + FnRow [0]Tu32 FzIndexedBy uintptr } Fu2 struct { @@ -30103,6 +30124,7 @@ type TParse1 = struct { FdisableLookaside Tu8 FprepFlags Tu8 FwithinRJSubrtn Tu8 + FbHasWith Tu8 FnRangeReg int32 FiRangeReg int32 FnErr int32 @@ -31466,12 +31488,12 @@ var _sqlite3WhereTrace = uint32(0) var _sqlite3OpcodeProperty = [190]uint8{ 4: uint8(0x10), 6: uint8(0x41), - 8: uint8(0x01), + 8: uint8(0x81), 9: uint8(0x01), 10: uint8(0x01), - 11: uint8(0x01), - 12: uint8(0x03), - 13: uint8(0x03), + 11: uint8(0x81), + 12: uint8(0x83), + 13: uint8(0x83), 14: uint8(0x01), 15: uint8(0x01), 16: uint8(0x03), @@ -31479,22 +31501,22 @@ var _sqlite3OpcodeProperty = [190]uint8{ 18: uint8(0x01), 19: uint8(0x12), 20: uint8(0x01), - 21: uint8(0x49), - 22: uint8(0x49), - 23: uint8(0x49), - 24: uint8(0x49), + 21: uint8(0xc9), + 22: uint8(0xc9), + 23: uint8(0xc9), + 24: uint8(0xc9), 25: uint8(0x01), 26: uint8(0x49), 27: uint8(0x49), 28: uint8(0x49), 29: uint8(0x49), - 30: uint8(0x49), + 30: uint8(0xc9), 31: uint8(0x49), - 32: uint8(0x41), + 32: uint8(0xc1), 33: uint8(0x01), 34: uint8(0x41), 35: uint8(0x41), - 36: uint8(0x41), + 36: uint8(0xc1), 37: uint8(0x01), 38: uint8(0x41), 39: uint8(0x41), @@ -31506,7 +31528,7 @@ var _sqlite3OpcodeProperty = [190]uint8{ 45: uint8(0x41), 46: uint8(0x23), 47: uint8(0x0b), - 48: uint8(0x01), + 48: uint8(0x81), 49: uint8(0x01), 50: uint8(0x03), 51: uint8(0x03), @@ -32361,7 +32383,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= int32(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(23890)) + return _sqlite3MisuseError(tls, int32(23961)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -32746,43 +32768,37 @@ type clockid_t = Tclockid_t // ** A structure for holding a single date and time. // */ type TDateTime = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD int8 - FrawS int8 - FvalidYMD int8 - FvalidHMS int8 - FvalidTZ int8 - FtzSet int8 - FisError int8 - FuseSubsec int8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD int8 + FvalidYMD int8 + FvalidHMS int8 + FnFloor int8 + F__ccgo44 uint8 } type DateTime = TDateTime type TDateTime1 = struct { - FiJD Tsqlite3_int64 - FY int32 - FM int32 - FD int32 - Fh int32 - Fm int32 - Ftz int32 - Fs float64 - FvalidJD int8 - FrawS int8 - FvalidYMD int8 - FvalidHMS int8 - FvalidTZ int8 - FtzSet int8 - FisError int8 - FuseSubsec int8 + FiJD Tsqlite3_int64 + FY int32 + FM int32 + FD int32 + Fh int32 + Fm int32 + Ftz int32 + Fs float64 + FvalidJD int8 + FvalidYMD int8 + FvalidHMS int8 + FnFloor int8 + F__ccgo44 uint8 } type DateTime1 = TDateTime1 @@ -32851,6 +32867,7 @@ func _getDigits(tls *libc.TLS, zDate uintptr, zFormat uintptr, va uintptr) (r in cnt++ zFormat += uintptr(4) } + goto end_getDigits end_getDigits: ; _ = ap @@ -32907,6 +32924,8 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } else { if c == int32('Z') || c == int32('z') { zDate++ + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) goto zulu_time } else { return libc.BoolInt32(c != 0) @@ -32919,12 +32938,12 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } zDate += uintptr(5) (*TDateTime)(unsafe.Pointer(p)).Ftz = sgn * (*(*int32)(unsafe.Pointer(bp + 4)) + *(*int32)(unsafe.Pointer(bp))*int32(60)) + goto zulu_time zulu_time: ; for int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(zDate)))])&int32(0x01) != 0 { zDate++ } - (*TDateTime)(unsafe.Pointer(p)).FtzSet = int8(1) return libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zDate))) != 0) } @@ -32941,11 +32960,10 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var ms, rScale float64 - var v1 int32 var _ /* h at bp+0 */ int32 var _ /* m at bp+4 */ int32 var _ /* s at bp+8 */ int32 - _, _, _ = ms, rScale, v1 + _, _ = ms, rScale ms = float64(0) if _getDigits(tls, zDate, __ccgo_ts+1172, libc.VaList(bp+24, bp, bp+4)) != int32(2) { return int32(1) @@ -32971,7 +32989,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 8)) = 0 } (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) (*TDateTime)(unsafe.Pointer(p)).Fh = *(*int32)(unsafe.Pointer(bp)) (*TDateTime)(unsafe.Pointer(p)).Fm = *(*int32)(unsafe.Pointer(bp + 4)) @@ -32979,12 +32997,6 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { if _parseTimezone(tls, zDate, p) != 0 { return int32(1) } - if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { - v1 = int32(1) - } else { - v1 = 0 - } - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = int8(v1) return 0 } @@ -32995,7 +33007,7 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { // */ func _datetimeError(tls *libc.TLS, p uintptr) { libc.Xmemset(tls, p, 0, uint64(48)) - (*TDateTime)(unsafe.Pointer(p)).FisError = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 1, 0x2) } // C documentation @@ -33021,7 +33033,7 @@ func _computeJD(tls *libc.TLS, p uintptr) { M = int32(1) D = int32(1) } - if Y < -int32(4713) || Y > int32(9999) || (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Y < -int32(4713) || Y > int32(9999) || int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { _datetimeError(tls, p) return } @@ -33037,11 +33049,41 @@ func _computeJD(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) if (*TDateTime)(unsafe.Pointer(p)).FvalidHMS != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) += int64((*TDateTime)(unsafe.Pointer(p)).Fh*int32(3600000)+(*TDateTime)(unsafe.Pointer(p)).Fm*int32(60000)) + int64((*TDateTime)(unsafe.Pointer(p)).Fs*libc.Float64FromInt32(1000)+libc.Float64FromFloat64(0.5)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64((*TDateTime)(unsafe.Pointer(p)).Ftz * int32(60000)) (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + } + } +} + +// C documentation +// +// /* +// ** Given the YYYY-MM-DD information current in p, determine if there +// ** is day-of-month overflow and set nFloor to the number of days that +// ** would need to be subtracted from the date in order to bring the +// ** date back to the end of the month. +// */ +func _computeFloor(tls *libc.TLS, p uintptr) { + if (*TDateTime)(unsafe.Pointer(p)).FD <= int32(28) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } else { + if int32(1)<<(*TDateTime)(unsafe.Pointer(p)).FM&int32(0x15aa) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } else { + if (*TDateTime)(unsafe.Pointer(p)).FM != int32(2) { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = libc.BoolInt8((*TDateTime)(unsafe.Pointer(p)).FD == libc.Int32FromInt32(31)) + } else { + if (*TDateTime)(unsafe.Pointer(p)).FY%int32(4) != 0 || (*TDateTime)(unsafe.Pointer(p)).FY%int32(100) == 0 && (*TDateTime)(unsafe.Pointer(p)).FY%int32(400) != 0 { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = int8((*TDateTime)(unsafe.Pointer(p)).FD - int32(28)) + } else { + (*TDateTime)(unsafe.Pointer(p)).FnFloor = int8((*TDateTime)(unsafe.Pointer(p)).FD - int32(29)) + } + } } } } @@ -33100,12 +33142,15 @@ func _parseYyyyMmDd(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FY = v1 (*TDateTime)(unsafe.Pointer(p)).FM = *(*int32)(unsafe.Pointer(bp + 4)) (*TDateTime)(unsafe.Pointer(p)).FD = *(*int32)(unsafe.Pointer(bp + 8)) - if (*TDateTime)(unsafe.Pointer(p)).FvalidTZ != 0 { + _computeFloor(tls, p) + if (*TDateTime)(unsafe.Pointer(p)).Ftz != 0 { _computeJD(tls, p) } return 0 } +/* Forward declaration */ + // C documentation // // /* @@ -33117,6 +33162,9 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) (*TDateTime)(unsafe.Pointer(p)).FiJD = _sqlite3StmtCurrentTime(tls, context) if (*TDateTime)(unsafe.Pointer(p)).FiJD > 0 { (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) + _clearYMD_HMS_TZ(tls, p) return 0 } else { return int32(1) @@ -33134,7 +33182,7 @@ func _setDateTimeToCurrent(tls *libc.TLS, context uintptr, p uintptr) (r int32) // */ func _setRawDateNumber(tls *libc.TLS, p uintptr, r float64) { (*TDateTime)(unsafe.Pointer(p)).Fs = r - (*TDateTime)(unsafe.Pointer(p)).FrawS = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 0, 0x1) if r >= float64(0) && r < float64(5.3734845e+06) { (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r*libc.Float64FromFloat64(8.64e+07) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) @@ -33177,7 +33225,7 @@ func _parseDateOrTime(tls *libc.TLS, context uintptr, zDate uintptr, p uintptr) return 0 } else { if (_sqlite3StrICmp(tls, zDate, __ccgo_ts+1200) == 0 || _sqlite3StrICmp(tls, zDate, __ccgo_ts+1207) == 0) && _sqlite3NotPureFunc(tls, context) != 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) return _setDateTimeToCurrent(tls, context, p) } } @@ -33269,7 +33317,7 @@ func _computeHMS(tls *libc.TLS, p uintptr) { day_min = day_ms / int32(60000) (*TDateTime)(unsafe.Pointer(p)).Fm = day_min % int32(60) (*TDateTime)(unsafe.Pointer(p)).Fh = day_min / int32(60) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) } @@ -33291,7 +33339,7 @@ func _computeYMD_HMS(tls *libc.TLS, p uintptr) { func _clearYMD_HMS_TZ(tls *libc.TLS, p uintptr) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 } /* @@ -33395,9 +33443,9 @@ func _toLocaltime(tls *libc.TLS, p uintptr, pCtx uintptr) (r int32) { (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = int8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 - (*TDateTime)(unsafe.Pointer(p)).FisError = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 1, 0x2) return SQLITE_OK } @@ -33445,13 +33493,13 @@ var _aXformType = [6]struct { FnName: uint8(5), FzName: [7]int8{'m', 'o', 'n', 't', 'h'}, FrLimit: float32(176546), - FrXform: float32(2.592e+06), + FrXform: float32(libc.Float64FromFloat64(30) * libc.Float64FromFloat64(86400)), }, 5: { FnName: uint8(4), FzName: [7]int8{'y', 'e', 'a', 'r'}, FrLimit: float32(14713), - FrXform: float32(3.1536e+07), + FrXform: float32(libc.Float64FromFloat64(365) * libc.Float64FromFloat64(86400)), }, } @@ -33465,15 +33513,15 @@ var _aXformType = [6]struct { func _autoAdjustDate(tls *libc.TLS, p uintptr) { var r float64 _ = r - if !((*TDateTime)(unsafe.Pointer(p)).FrawS != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + if !(int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0) || (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 { + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } else { if (*TDateTime)(unsafe.Pointer(p)).Fs >= float64(int64(-libc.Int32FromInt32(21086676))*libc.Int64FromInt32(10000)) && (*TDateTime)(unsafe.Pointer(p)).Fs <= float64(libc.Int64FromInt32(25340230)*libc.Int64FromInt32(10000)+libc.Int64FromInt32(799)) { r = (*TDateTime)(unsafe.Pointer(p)).Fs*float64(1000) + float64(2.1086676e+14) _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(r + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } } @@ -33490,14 +33538,20 @@ func _autoAdjustDate(tls *libc.TLS, p uintptr) { // ** NNN.NNNN seconds // ** NNN months // ** NNN years +// ** +/-YYYY-MM-DD HH:MM:SS.SSS +// ** ceiling +// ** floor // ** start of month // ** start of year // ** start of week // ** start of day // ** weekday N // ** unixepoch +// ** auto // ** localtime // ** utc +// ** subsec +// ** subsecond // ** // ** Return 0 on success and 1 if there is any kind of error. If the error // ** is in a system call (i.e. localtime()), then an error message is written @@ -33508,12 +33562,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, bp := tls.Alloc(160) defer tls.Free(160) var Z, day Tsqlite3_int64 - var cnt, i, rc, x, y, v12, v2, v5, v7, v9 int32 - var iErr, iGuess, iOrigJD, v1 Ti64 - var rRounder, v10 float64 + var cnt, i, rc, x, y, v1, v10, v13, v3, v6, v8 int32 + var iErr, iGuess, iOrigJD, v2 Ti64 + var rRounder, v11 float64 var z0 int8 var z2 uintptr - var v3, v6 bool + var v4, v7 bool var _ /* D at bp+64 */ int32 var _ /* M at bp+60 */ int32 var _ /* Y at bp+56 */ int32 @@ -33522,7 +33576,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, var _ /* new at bp+8 */ TDateTime var _ /* r at bp+0 */ float64 var _ /* tx at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v12, v2, v3, v5, v6, v7, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = Z, cnt, day, i, iErr, iGuess, iOrigJD, rRounder, rc, x, y, z0, z2, v1, v10, v11, v13, v2, v3, v4, v6, v7, v8 rc = int32(1) switch int32(_sqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z)))]) { case int32('a'): @@ -33539,6 +33593,33 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _autoAdjustDate(tls, p) rc = 0 } + case int32('c'): + /* + ** ceiling + ** + ** Resolve day-of-month overflow by rolling forward into the next + ** month. As this is the default action, this modifier is really + ** a no-op that is only included for symmetry. See "floor". + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1245) == 0 { + _computeJD(tls, p) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 + } + case int32('f'): + /* + ** floor + ** + ** Resolve day-of-month overflow by rolling back to the end of the + ** previous month. + */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1253) == 0 { + _computeJD(tls, p) + *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64(int32((*TDateTime)(unsafe.Pointer(p)).FnFloor) * int32(86400000)) + _clearYMD_HMS_TZ(tls, p) + rc = 0 + } case int32('j'): /* ** julianday @@ -33548,13 +33629,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** value in the allowed range of julian day numbers understood by ** SQLite (0..5373484.5) then the result will be NULL. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1245) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1259) == 0 { if idx > int32(1) { return int32(1) } /* IMP: R-31176-64601 */ - if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if (*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { rc = 0 - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) } } case int32('l'): @@ -33563,8 +33644,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Assuming the current time value is UTC (a.k.a. GMT), shift it to ** show local time. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1255) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - rc = _toLocaltime(tls, p, pCtx) + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1269) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x10>>4)) != 0 { + v1 = SQLITE_OK + } else { + v1 = _toLocaltime(tls, p, pCtx) + } + rc = v1 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 4, 0x10) } case int32('u'): /* @@ -33573,7 +33661,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Treat the current value of p->s as the number of ** seconds since 1970. Convert to a real julian day number. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1265) == 0 && (*TDateTime)(unsafe.Pointer(p)).FrawS != 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1279) == 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { if idx > int32(1) { return int32(1) } /* IMP: R-49255-55373 */ @@ -33582,17 +33670,17 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _clearYMD_HMS_TZ(tls, p) (*TDateTime)(unsafe.Pointer(p)).FiJD = int64(*(*float64)(unsafe.Pointer(bp)) + libc.Float64FromFloat64(0.5)) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) rc = 0 } } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1275) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { - if int32((*TDateTime)(unsafe.Pointer(p)).FtzSet) == 0 { /* Guess at the corresponding utc time */ + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1289) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x8>>3)) == 0 { /* Guess at the corresponding utc time */ cnt = 0 /* Guess is off by this much */ _computeJD(tls, p) - v1 = (*TDateTime)(unsafe.Pointer(p)).FiJD - iOrigJD = v1 - iGuess = v1 + v2 = (*TDateTime)(unsafe.Pointer(p)).FiJD + iOrigJD = v2 + iGuess = v2 iErr = 0 for { libc.Xmemset(tls, bp+8, 0, uint64(48)) @@ -33605,21 +33693,22 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, bp+8) iErr = (*(*TDateTime)(unsafe.Pointer(bp + 8))).FiJD - iOrigJD - goto _4 - _4: + goto _5 + _5: ; - if v3 = iErr != 0; v3 { - v2 = cnt + if v4 = iErr != 0; v4 { + v3 = cnt cnt++ } - if !(v3 && v2 < int32(3)) { + if !(v4 && v3 < int32(3)) { break } } libc.Xmemset(tls, p, 0, uint64(48)) (*TDateTime)(unsafe.Pointer(p)).FiJD = iGuess (*TDateTime)(unsafe.Pointer(p)).FvalidJD = int8(1) - (*TDateTime)(unsafe.Pointer(p)).FtzSet = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 3, 0x8) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 4, 0x10) } rc = SQLITE_OK } @@ -33632,13 +33721,13 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** weekday N where 0==Sunday, 1==Monday, and so forth. If the ** date is already on the appropriate weekday, this is a no-op. */ - if v6 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1279, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v6 { - v5 = int32(*(*float64)(unsafe.Pointer(bp))) - n = v5 + if v7 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1293, int32(8)) == 0 && _sqlite3AtoF(tls, z+8, bp, _sqlite3Strlen30(tls, z+8), uint8(SQLITE_UTF8)) > 0 && *(*float64)(unsafe.Pointer(bp)) >= float64(0) && *(*float64)(unsafe.Pointer(bp)) < float64(7); v7 { + v6 = int32(*(*float64)(unsafe.Pointer(bp))) + n = v6 } - if v6 && float64(v5) == *(*float64)(unsafe.Pointer(bp)) { + if v7 && float64(v6) == *(*float64)(unsafe.Pointer(bp)) { _computeYMD_HMS(tls, p) - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 _computeJD(tls, p) Z = ((*TDateTime)(unsafe.Pointer(p)).FiJD + int64(129600000)) / int64(86400000) % int64(7) @@ -33662,9 +33751,9 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Show subsecond precision in the output of datetime() and ** unixepoch() and strftime('%s'). */ - if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1288, int32(9)) != 0 { + if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1302, int32(9)) != 0 { if Xsqlite3_stricmp(tls, z, __ccgo_ts+1200) == 0 || Xsqlite3_stricmp(tls, z, __ccgo_ts+1207) == 0 { - (*TDateTime)(unsafe.Pointer(p)).FuseSubsec = int8(1) + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) rc = 0 } break @@ -33675,23 +33764,23 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z += uintptr(9) _computeYMD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = int8(1) - v7 = libc.Int32FromInt32(0) - (*TDateTime)(unsafe.Pointer(p)).Fm = v7 - (*TDateTime)(unsafe.Pointer(p)).Fh = v7 + v8 = libc.Int32FromInt32(0) + (*TDateTime)(unsafe.Pointer(p)).Fm = v8 + (*TDateTime)(unsafe.Pointer(p)).Fh = v8 (*TDateTime)(unsafe.Pointer(p)).Fs = float64(0) - (*TDateTime)(unsafe.Pointer(p)).FrawS = 0 - (*TDateTime)(unsafe.Pointer(p)).FvalidTZ = 0 + libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(0), 0, 0x1) + (*TDateTime)(unsafe.Pointer(p)).Ftz = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1298) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1312) == 0 { (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1304) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1318) == 0 { (*TDateTime)(unsafe.Pointer(p)).FM = int32(1) (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1309) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1323) == 0 { rc = 0 } } @@ -33733,15 +33822,15 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } if int32(*(*int8)(unsafe.Pointer(z + uintptr(n)))) == int32('-') { - if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1313, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1327, libc.VaList(bp+136, bp+56)) == int32(1) { break } - if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1317, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1331, libc.VaList(bp+136, bp+56)) == int32(1) { break } } - goto _8 - _8: + goto _9 + _9: ; n++ } @@ -33757,11 +33846,11 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } /* Must start with +/- */ if n == int32(5) { - if _getDigits(tls, z+1, __ccgo_ts+1321, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1335, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } } else { - if _getDigits(tls, z+1, __ccgo_ts+1333, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1347, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } z++ @@ -33783,13 +33872,14 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, *(*int32)(unsafe.Pointer(p + 12)) += *(*int32)(unsafe.Pointer(bp + 60)) } if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v9 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v10 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v9 + x = v10 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) _computeJD(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidHMS = 0 (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = 0 @@ -33833,7 +33923,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, z++ } n = _sqlite3Strlen30(tls, z) - if n > int32(10) || n < int32(3) { + if n < int32(3) || n > int32(10) { break } if int32(_sqlite3UpperToLower[uint8(*(*int8)(unsafe.Pointer(z + uintptr(n-int32(1)))))]) == int32('s') { @@ -33841,11 +33931,12 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, } _computeJD(tls, p) if *(*float64)(unsafe.Pointer(bp)) < libc.Float64FromInt32(0) { - v10 = -libc.Float64FromFloat64(0.5) + v11 = -libc.Float64FromFloat64(0.5) } else { - v10 = +libc.Float64FromFloat64(0.5) + v11 = +libc.Float64FromFloat64(0.5) } - rRounder = v10 + rRounder = v11 + (*TDateTime)(unsafe.Pointer(p)).FnFloor = 0 i = 0 for { if !(i < int32(libc.Uint64FromInt64(96)/libc.Uint64FromInt64(16))) { @@ -33857,19 +33948,21 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 12)) += int32(*(*float64)(unsafe.Pointer(bp))) if (*TDateTime)(unsafe.Pointer(p)).FM > 0 { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(1)) / int32(12) } else { - v12 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) + v13 = ((*TDateTime)(unsafe.Pointer(p)).FM - int32(12)) / int32(12) } - x = v12 + x = v13 *(*int32)(unsafe.Pointer(p + 8)) += x *(*int32)(unsafe.Pointer(p + 12)) -= x * int32(12) + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) case int32(5): /* Special processing to add years */ y = int32(*(*float64)(unsafe.Pointer(bp))) _computeYMD_HMS(tls, p) *(*int32)(unsafe.Pointer(p + 8)) += y + _computeFloor(tls, p) (*TDateTime)(unsafe.Pointer(p)).FvalidJD = 0 *(*float64)(unsafe.Pointer(bp)) -= float64(int32(*(*float64)(unsafe.Pointer(bp)))) break @@ -33879,8 +33972,8 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, rc = 0 break } - goto _11 - _11: + goto _12 + _12: ; i++ } @@ -33939,7 +34032,7 @@ func _isDate(tls *libc.TLS, context uintptr, argc int32, argv uintptr, p uintptr i++ } _computeJD(tls, p) - if (*TDateTime)(unsafe.Pointer(p)).FisError != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { + if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x2>>1)) != 0 || !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { return int32(1) } if argc == int32(1) && (*TDateTime)(unsafe.Pointer(p)).FvalidYMD != 0 && (*TDateTime)(unsafe.Pointer(p)).FD > int32(28) { @@ -33986,7 +34079,7 @@ func _unixepochFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _ /* x at bp+0 */ TDateTime if _isDate(tls, context, argc, argv, bp) == 0 { _computeJD(tls, bp) - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { Xsqlite3_result_double(tls, context, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000)) } else { Xsqlite3_result_int64(tls, context, (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/int64(1000)-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000)) @@ -34031,7 +34124,7 @@ func _datetimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(15)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(16)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(17)] = int8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(18)] = int8(int32('0') + s/int32(10000)%int32(10)) (*(*[32]int8)(unsafe.Pointer(bp + 48)))[int32(19)] = int8(int32('0') + s/int32(1000)%int32(10)) @@ -34079,7 +34172,7 @@ func _timeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(3)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm/int32(10)%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(4)] = int8(int32('0') + (*(*TDateTime)(unsafe.Pointer(bp))).Fm%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(5)] = int8(':') - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { s = int32(libc.Float64FromFloat64(1000)*(*(*TDateTime)(unsafe.Pointer(bp))).Fs + libc.Float64FromFloat64(0.5)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(6)] = int8(int32('0') + s/int32(10000)%int32(10)) (*(*[16]int8)(unsafe.Pointer(bp + 48)))[int32(7)] = int8(int32('0') + s/int32(1000)%int32(10)) @@ -34140,6 +34233,57 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } +// C documentation +// +// /* +// ** Compute the number of days after the most recent January 1. +// ** +// ** In other words, compute the zero-based day number for the +// ** current year: +// ** +// ** Jan01 = 0, Jan02 = 1, ..., Jan31 = 30, Feb01 = 31, ... +// ** Dec31 = 364 or 365. +// */ +func _daysAfterJan01(tls *libc.TLS, pDate uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* jan01 at bp+0 */ TDateTime + *(*TDateTime)(unsafe.Pointer(bp)) = *(*TDateTime)(unsafe.Pointer(pDate)) + (*(*TDateTime)(unsafe.Pointer(bp))).FvalidJD = 0 + (*(*TDateTime)(unsafe.Pointer(bp))).FM = int32(1) + (*(*TDateTime)(unsafe.Pointer(bp))).FD = int32(1) + _computeJD(tls, bp) + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD - (*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Monday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Monday, 1=Tuesday, 2=Wednesday, ..., 6=Sunday. +// */ +func _daysAfterMonday(tls *libc.TLS, pDate uintptr) (r int32) { + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(43200000))/libc.Int64FromInt32(86400000)) % int32(7) +} + +// C documentation +// +// /* +// ** Return the number of days after the most recent Sunday. +// ** +// ** In other words, return the day of the week according +// ** to this code: +// ** +// ** 0=Sunday, 1=Monday, 2=Tues, ..., 6=Saturday +// */ +func _daysAfterSunday(tls *libc.TLS, pDate uintptr) (r int32) { + return int32(((*TDateTime)(unsafe.Pointer(pDate)).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)) % int32(7) +} + // C documentation // // /* @@ -34147,33 +34291,48 @@ func _dateFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { // ** // ** Return a string described by FORMAT. Conversions as follows: // ** -// ** %d day of month +// ** %d day of month 01-31 +// ** %e day of month 1-31 // ** %f ** fractional seconds SS.SSS +// ** %F ISO date. YYYY-MM-DD +// ** %G ISO year corresponding to %V 0000-9999. +// ** %g 2-digit ISO year corresponding to %V 00-99 // ** %H hour 00-24 -// ** %j day of year 000-366 +// ** %k hour 0-24 (leading zero converted to space) +// ** %I hour 01-12 +// ** %j day of year 001-366 // ** %J ** julian day number +// ** %l hour 1-12 (leading zero converted to space) // ** %m month 01-12 // ** %M minute 00-59 +// ** %p "am" or "pm" +// ** %P "AM" or "PM" +// ** %R time as HH:MM // ** %s seconds since 1970-01-01 // ** %S seconds 00-59 -// ** %w day of week 0-6 Sunday==0 -// ** %W week of year 00-53 +// ** %T time as HH:MM:SS +// ** %u day of week 1-7 Monday==1, Sunday==7 +// ** %w day of week 0-6 Sunday==0, Monday==1 +// ** %U week of year 00-53 (First Sunday is start of week 01) +// ** %V week of year 01-53 (First week containing Thursday is week 01) +// ** %W week of year 00-53 (First Monday is start of week 01) // ** %Y year 0000-9999 // ** %% % // */ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { - bp := tls.Alloc(160) - defer tls.Free(160) + bp := tls.Alloc(208) + defer tls.Free(208) var c, cf int8 var db, zFmt, v3, v4, v5, v6, v7 uintptr - var h, nDay, wd int32 + var h int32 var i, j, v2 Tsize_t var iS Ti64 var s float64 var _ /* sRes at bp+48 */ Tsqlite3_str var _ /* x at bp+0 */ TDateTime + var _ /* y at bp+128 */ TDateTime var _ /* y at bp+80 */ TDateTime - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, nDay, s, wd, zFmt, v2, v3, v4, v5, v6, v7 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cf, db, h, i, iS, j, s, zFmt, v2, v3, v4, v5, v6, v7 if argc == 0 { return } @@ -34206,28 +34365,41 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { fallthrough case int32('e'): if int32(int32(cf)) == int32('d') { - v3 = __ccgo_ts + 1345 + v3 = __ccgo_ts + 1359 } else { - v3 = __ccgo_ts + 1350 + v3 = __ccgo_ts + 1364 } - Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) - case int32('f'): + Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('f'): /* Fractional seconds. (Non-standard) */ s = (*(*TDateTime)(unsafe.Pointer(bp))).Fs if s > float64(59.999) { s = float64(59.999) } - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1354, libc.VaList(bp+136, s)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1368, libc.VaList(bp+184, s)) case int32('F'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1361, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1375, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + case int32('G'): /* Fall thru */ + fallthrough + case int32('g'): + *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Move y so that it is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidYMD = 0 + _computeYMD(tls, bp+80) + if int32(int32(cf)) == int32('g') { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1359, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY%int32(100))) + } else { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1390, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY)) + } case int32('H'): fallthrough case int32('k'): if int32(int32(cf)) == int32('H') { - v4 = __ccgo_ts + 1345 + v4 = __ccgo_ts + 1359 } else { - v4 = __ccgo_ts + 1350 + v4 = __ccgo_ts + 1364 } - Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) + Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) case int32('I'): /* Fall thru */ fallthrough case int32('l'): @@ -34239,73 +34411,71 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { h = int32(12) } if int32(int32(cf)) == int32('I') { - v5 = __ccgo_ts + 1345 - } else { - v5 = __ccgo_ts + 1350 - } - Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+136, h)) - case int32('W'): /* Fall thru */ - fallthrough - case int32('j'): /* Number of days since 1st day of year */ - *(*TDateTime)(unsafe.Pointer(bp + 80)) = *(*TDateTime)(unsafe.Pointer(bp)) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidJD = 0 - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FM = int32(1) - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FD = int32(1) - _computeJD(tls, bp+80) - nDay = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD - (*(*TDateTime)(unsafe.Pointer(bp + 80))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) - if int32(int32(cf)) == int32('W') { /* 0=Monday, 1=Tuesday, ... 6=Sunday */ - wd = int32(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000) % libc.Int64FromInt32(7)) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1345, libc.VaList(bp+136, (nDay+int32(7)-wd)/int32(7))) + v5 = __ccgo_ts + 1359 } else { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1376, libc.VaList(bp+136, nDay+int32(1))) + v5 = __ccgo_ts + 1364 } - case int32('J'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1381, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) + Xsqlite3_str_appendf(tls, bp+48, v5, libc.VaList(bp+184, h)) + case int32('j'): /* Day of year. Jan01==1, Jan02==2, and so forth */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1395, libc.VaList(bp+184, _daysAfterJan01(tls, bp)+int32(1))) + case int32('J'): /* Julian day number. (Non-standard) */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1400, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) case int32('m'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1345, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1359, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) case int32('M'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1345, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1359, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('p'): /* Fall thru */ fallthrough case int32('P'): if (*(*TDateTime)(unsafe.Pointer(bp))).Fh >= int32(12) { if int32(int32(cf)) == int32('p') { - v6 = __ccgo_ts + 1387 + v6 = __ccgo_ts + 1406 } else { - v6 = __ccgo_ts + 1390 + v6 = __ccgo_ts + 1409 } Xsqlite3_str_append(tls, bp+48, v6, int32(2)) } else { if int32(int32(cf)) == int32('p') { - v7 = __ccgo_ts + 1393 + v7 = __ccgo_ts + 1412 } else { - v7 = __ccgo_ts + 1396 + v7 = __ccgo_ts + 1415 } Xsqlite3_str_append(tls, bp+48, v7, int32(2)) } case int32('R'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1399, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1418, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('s'): - if (*(*TDateTime)(unsafe.Pointer(bp))).FuseSubsec != 0 { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1409, libc.VaList(bp+136, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) + if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1428, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) } else { iS = (*(*TDateTime)(unsafe.Pointer(bp))).FiJD/libc.Int64FromInt32(1000) - libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000) - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1414, libc.VaList(bp+136, iS)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1433, libc.VaList(bp+184, iS)) } case int32('S'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1345, libc.VaList(bp+136, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1359, libc.VaList(bp+184, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) case int32('T'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1419, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) - case int32('u'): /* Fall thru */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1438, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + case int32('u'): /* Day of week. 1 to 7. Monday==1, Sunday==7 */ fallthrough - case int32('w'): - c = int8(int32(int8(((*(*TDateTime)(unsafe.Pointer(bp))).FiJD+libc.Int64FromInt32(129600000))/libc.Int64FromInt32(86400000)%libc.Int64FromInt32(7))) + int32('0')) + case int32('w'): /* Day of week. 0 to 6. Sunday==0, Monday==1 */ + c = int8(int32(int8(_daysAfterSunday(tls, bp))) + int32('0')) if int32(int32(c)) == int32('0') && int32(int32(cf)) == int32('u') { c = int8('7') } Xsqlite3_str_appendchar(tls, bp+48, int32(1), c) + case int32('U'): /* Week num. 00-53. First Sun of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1359, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterSunday(tls, bp)+int32(7))/int32(7))) + case int32('V'): /* Week num. 01-53. First week with a Thur is week 01 */ + *(*TDateTime)(unsafe.Pointer(bp + 128)) = *(*TDateTime)(unsafe.Pointer(bp)) + /* Adjust y so that is the Thursday in the same week as x */ + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FiJD += int64((int32(3) - _daysAfterMonday(tls, bp)) * int32(86400000)) + (*(*TDateTime)(unsafe.Pointer(bp + 128))).FvalidYMD = 0 + _computeYMD(tls, bp+128) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1359, libc.VaList(bp+184, _daysAfterJan01(tls, bp+128)/int32(7)+int32(1))) + case int32('W'): /* Week num. 00-53. First Mon of the year is week 01 */ + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1359, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterMonday(tls, bp)+int32(7))/int32(7))) case int32('Y'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1434, libc.VaList(bp+136, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1390, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) case int32('%'): Xsqlite3_str_appendchar(tls, bp+48, int32(1), int8('%')) default: @@ -34458,12 +34628,10 @@ func _timediffFunc(tls *libc.TLS, context uintptr, NotUsed1 int32, argv uintptr) p2 = bp *(*Tsqlite3_int64)(unsafe.Pointer(p2)) = Tsqlite3_int64(uint64(*(*Tsqlite3_int64)(unsafe.Pointer(p2))) + libc.Uint64FromInt32(1486995408)*libc.Uint64FromInt32(100000)) } - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidYMD = 0 - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidHMS = 0 - (*(*TDateTime)(unsafe.Pointer(bp))).FvalidTZ = 0 + _clearYMD_HMS_TZ(tls, bp) _computeYMD_HMS(tls, bp) _sqlite3StrAccumInit(tls, bp+96, uintptr(0), uintptr(0), 0, int32(100)) - Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1439, libc.VaList(bp+136, int32(int32(sign)), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) + Xsqlite3_str_appendf(tls, bp+96, __ccgo_ts+1453, libc.VaList(bp+136, int32(int32(sign)), Y, M, (*(*TDateTime)(unsafe.Pointer(bp))).FD-int32(1), (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, (*(*TDateTime)(unsafe.Pointer(bp))).Fs)) _sqlite3ResultStrAccum(tls, context, bp+96) } @@ -34496,55 +34664,55 @@ var _aDateTimeFuncs = [10]TFuncDef{ FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1245, + FzName: __ccgo_ts + 1259, }, 1: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1265, + FzName: __ccgo_ts + 1279, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1473, + FzName: __ccgo_ts + 1487, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1478, + FzName: __ccgo_ts + 1492, }, 4: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1483, + FzName: __ccgo_ts + 1497, }, 5: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1492, + FzName: __ccgo_ts + 1506, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), FpUserData: uintptr(unsafe.Pointer(&_sqlite3Config)), - FzName: __ccgo_ts + 1501, + FzName: __ccgo_ts + 1515, }, 7: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1510, + FzName: __ccgo_ts + 1524, }, 8: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1523, + FzName: __ccgo_ts + 1537, }, 9: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1541, + FzName: __ccgo_ts + 1555, }, } @@ -35215,7 +35383,7 @@ func _sqlite3MemMalloc(tls *libc.TLS, nByte int32) (r uintptr) { *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(int64(nByte)) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1554, libc.VaList(bp+8, nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1568, libc.VaList(bp+8, nByte)) } return p } @@ -35277,7 +35445,7 @@ func _sqlite3MemRealloc(tls *libc.TLS, pPrior uintptr, nByte int32) (r uintptr) *(*Tsqlite3_int64)(unsafe.Pointer(p)) = int64(int64(nByte)) p += 8 } else { - Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1592, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1606, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) } return p } @@ -93751,7 +93919,7 @@ func _sqlite3OomFault(tls *libc.TLS, db uintptr) (r uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FbDisable++ (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.Fsz = uint16(0) if (*Tsqlite3)(unsafe.Pointer(db)).FpParse != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1628, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1642, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) pParse = (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).FpOuterParse for { @@ -94173,7 +94341,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li v3 = int32(*(*int8)(unsafe.Pointer(v4))) c = v3 if v3 == 0 { - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1642, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1656, int32(1)) break } /* Find out what flags are present */ @@ -94588,9 +94756,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial != 0 { if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial) == int32(2) { if flag_zeropad != 0 { - v57 = __ccgo_ts + 1644 + v57 = __ccgo_ts + 1658 } else { - v57 = __ccgo_ts + 1649 + v57 = __ccgo_ts + 1663 } bufpt = v57 length = _sqlite3Strlen30(tls, bufpt) @@ -94601,7 +94769,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP = int32(1000) (*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fn = int32(1) } else { - libc.Xmemcpy(tls, bp, __ccgo_ts+1653, uint64(5)) + libc.Xmemcpy(tls, bp, __ccgo_ts+1667, uint64(5)) bufpt = bp if int32((*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fsign) == int32('-') { /* no-op */ @@ -94623,14 +94791,12 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li prefix = int8(int8(flag_prefix)) } exp = (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FiDP - int32(1) - if int32(int32(xtype)) == int32(etGENERIC) && precision > 0 { - precision-- - } /* ** If the field type is etGENERIC, then convert to either etEXP ** or etFLOAT, as appropriate. */ if int32(int32(xtype)) == int32(etGENERIC) { + precision-- flag_rtz = libc.BoolUint8(!(flag_alternateform != 0)) if exp < -int32(4) || exp > precision { xtype = uint8(etEXP) @@ -94936,7 +95102,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li bufpt = libc.VaUintptr(&ap) } if bufpt == uintptr(0) { - bufpt = __ccgo_ts + 1658 + bufpt = __ccgo_ts + 1672 } else { if int32(int32(xtype)) == int32(etDYNSTRING) { if (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnChar == uint32(0) && (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FmxAlloc != 0 && width == 0 && precision < 0 && int32((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FaccError) == 0 { @@ -94989,6 +95155,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } else { length = int32(0x7fffffff) & int32(libc.Xstrlen(tls, bufpt)) } + goto adjust_width_for_utf8 adjust_width_for_utf8: ; if flag_altform2 != 0 && width > 0 { @@ -95023,9 +95190,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li isnull = libc.BoolInt32(escarg == uintptr(0)) if isnull != 0 { if int32(int32(xtype)) == int32(etSQLESCAPE2) { - v98 = __ccgo_ts + 1659 + v98 = __ccgo_ts + 1673 } else { - v98 = __ccgo_ts + 1664 + v98 = __ccgo_ts + 1678 } escarg = v98 } @@ -95143,7 +95310,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*TSrcItem)(unsafe.Pointer(pItem)).FzName != 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1671, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1685, int32(1)) } Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzName) } else { @@ -95151,10 +95318,15 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzAlias) } else { pSel = (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect + /* Because of tag-20240424-1 */ if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_NestedFrom) != 0 { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1673, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1687, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) } else { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1683, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_MultiValue) != 0 { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1697, libc.VaList(bp+128, *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pItem)).Fu1)))) + } else { + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1718, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + } } } } @@ -95433,7 +95605,7 @@ func _sqlite3ResultStrAccum(tls *libc.TLS, pCtx uintptr, p uintptr) { if int32((*TStrAccum)(unsafe.Pointer(p)).FprintfFlags)&int32(SQLITE_PRINTF_MALLOCED) != 0 { Xsqlite3_result_text(tls, pCtx, (*TStrAccum)(unsafe.Pointer(p)).FzText, int32((*TStrAccum)(unsafe.Pointer(p)).FnChar), __ccgo_fp(_sqlite3OomClear)) } else { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1658, 0, libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1672, 0, libc.UintptrFromInt32(0)) Xsqlite3_str_reset(tls, p) } } @@ -96801,6 +96973,7 @@ func _sqlite3VdbeMemTranslate(tls *libc.TLS, pMem uintptr, desiredEnc Tu8) (r in (*TMem)(unsafe.Pointer(pMem)).Fz = zOut (*TMem)(unsafe.Pointer(pMem)).FzMalloc = (*TMem)(unsafe.Pointer(pMem)).Fz (*TMem)(unsafe.Pointer(pMem)).FszMalloc = _sqlite3DbMallocSize(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, (*TMem)(unsafe.Pointer(pMem)).Fz) + goto translate_out translate_out: ; return SQLITE_OK @@ -97363,6 +97536,60 @@ func _sqlite3DequoteExpr(tls *libc.TLS, p uintptr) { _sqlite3Dequote(tls, *(*uintptr)(unsafe.Pointer(p + 8))) } +// C documentation +// +// /* +// ** Expression p is a QNUMBER (quoted number). Dequote the value in p->u.zToken +// ** and set the type to INTEGER or FLOAT. "Quoted" integers or floats are those +// ** that contain '_' characters that must be removed before further processing. +// */ +func _sqlite3DequoteNumber(tls *libc.TLS, pParse uintptr, p uintptr) { + bp := tls.Alloc(32) + defer tls.Free(32) + var bHex int32 + var pIn, pOut, v1, v3 uintptr + var _ /* iValue at bp+0 */ int32 + _, _, _, _, _ = bHex, pIn, pOut, v1, v3 + if p != 0 { + pIn = *(*uintptr)(unsafe.Pointer(p + 8)) + pOut = *(*uintptr)(unsafe.Pointer(p + 8)) + bHex = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(pIn))) == int32('0') && (int32(*(*int8)(unsafe.Pointer(pIn + 1))) == int32('x') || int32(*(*int8)(unsafe.Pointer(pIn + 1))) == int32('X'))) + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + for { + if int32(*(*int8)(unsafe.Pointer(pIn))) != int32('_') { + v3 = pOut + pOut++ + *(*int8)(unsafe.Pointer(v3)) = *(*int8)(unsafe.Pointer(pIn)) + if int32(*(*int8)(unsafe.Pointer(pIn))) == int32('e') || int32(*(*int8)(unsafe.Pointer(pIn))) == int32('E') || int32(*(*int8)(unsafe.Pointer(pIn))) == int32('.') { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_FLOAT) + } + } else { + if bHex == 0 && (!(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1)))))])&libc.Int32FromInt32(0x04) != 0) || !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + 1)))])&libc.Int32FromInt32(0x04) != 0)) || bHex == int32(1) && (!(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1)))))])&libc.Int32FromInt32(0x08) != 0) || !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(pIn + 1)))])&libc.Int32FromInt32(0x08) != 0)) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1732, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(p + 8)))) + } + } + goto _2 + _2: + ; + v1 = pIn + pIn++ + if !(*(*int8)(unsafe.Pointer(v1)) != 0) { + break + } + } + if bHex != 0 { + (*TExpr)(unsafe.Pointer(p)).Fop = uint8(TK_INTEGER) + } + /* tag-20240227-a: If after dequoting, the number is an integer that + ** fits in 32 bits, then it must be converted into EP_IntValue. Other + ** parts of the code expect this. See also tag-20240227-b. */ + if int32((*TExpr)(unsafe.Pointer(p)).Fop) == int32(TK_INTEGER) && _sqlite3GetInt32(tls, *(*uintptr)(unsafe.Pointer(p + 8)), bp) != 0 { + *(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(p)).Fu)) = *(*int32)(unsafe.Pointer(bp)) + *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(EP_IntValue) + } + } +} + // C documentation // // /* @@ -97722,6 +97949,7 @@ func _sqlite3AtoF(tls *libc.TLS, z uintptr, pResult uintptr, length int32, enc T for z < zEnd && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z)))])&int32(0x01) != 0 { z += uintptr(incr) } + goto do_atof_calc do_atof_calc: ; /* Zero is a special case */ @@ -97827,6 +98055,7 @@ do_atof_calc: if sign < 0 { *(*float64)(unsafe.Pointer(pResult)) = -*(*float64)(unsafe.Pointer(pResult)) } + goto atof_return atof_return: ; /* return true if number and no extra non-whitespace characters after */ @@ -97911,7 +98140,7 @@ func _compare2pow63(tls *libc.TLS, zNum uintptr, incr int32) (r int32) { _, _, _ = c, i, pow63 c = 0 /* 012345678901234567 */ - pow63 = __ccgo_ts + 1697 + pow63 = __ccgo_ts + 1757 i = 0 for { if !(c == 0 && i < int32(18)) { @@ -98138,7 +98367,7 @@ func _sqlite3DecOrHexToI64(tls *libc.TLS, z uintptr, pOut uintptr) (r int32) { } return 0 } else { - n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1716)) + n = int32(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1776)) if *(*int8)(unsafe.Pointer(z + uintptr(n))) != 0 { n++ } @@ -98296,7 +98525,7 @@ func _sqlite3FpDecode(tls *libc.TLS, p uintptr, _r float64, iRound int32, mxRoun (*TFpDecode)(unsafe.Pointer(p)).Fsign = int8('+') (*TFpDecode)(unsafe.Pointer(p)).Fn = int32(1) (*TFpDecode)(unsafe.Pointer(p)).FiDP = int32(1) - (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1732 + (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1792 return } else { (*TFpDecode)(unsafe.Pointer(p)).Fsign = int8('+') @@ -98845,7 +99074,7 @@ func _sqlite3HexToBlob(tls *libc.TLS, db uintptr, z uintptr, n int32) (r uintptr func _logBadConnection(tls *libc.TLS, zType uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1734, libc.VaList(bp+8, zType)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1794, libc.VaList(bp+8, zType)) } // C documentation @@ -98868,13 +99097,13 @@ func _sqlite3SafetyCheckOk(tls *libc.TLS, db uintptr) (r int32) { var eOpenState Tu8 _ = eOpenState if db == uintptr(0) { - _logBadConnection(tls, __ccgo_ts+1659) + _logBadConnection(tls, __ccgo_ts+1673) return 0 } eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(int32(eOpenState)) != int32(SQLITE_STATE_OPEN) { if _sqlite3SafetyCheckSickOrOk(tls, db) != 0 { - _logBadConnection(tls, __ccgo_ts+1779) + _logBadConnection(tls, __ccgo_ts+1839) } return 0 } else { @@ -98888,7 +99117,7 @@ func _sqlite3SafetyCheckSickOrOk(tls *libc.TLS, db uintptr) (r int32) { _ = eOpenState eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if int32(int32(eOpenState)) != int32(SQLITE_STATE_SICK) && int32(int32(eOpenState)) != int32(SQLITE_STATE_OPEN) && int32(int32(eOpenState)) != int32(SQLITE_STATE_BUSY) { - _logBadConnection(tls, __ccgo_ts+1788) + _logBadConnection(tls, __ccgo_ts+1848) return 0 } else { return int32(1) @@ -99534,196 +99763,196 @@ func _sqlite3OpcodeName(tls *libc.TLS, i int32) (r uintptr) { } var _azName = [190]uintptr{ - 0: __ccgo_ts + 1796, - 1: __ccgo_ts + 1806, - 2: __ccgo_ts + 1817, - 3: __ccgo_ts + 1829, - 4: __ccgo_ts + 1840, - 5: __ccgo_ts + 1852, - 6: __ccgo_ts + 1859, - 7: __ccgo_ts + 1867, - 8: __ccgo_ts + 1875, - 9: __ccgo_ts + 1880, - 10: __ccgo_ts + 1885, - 11: __ccgo_ts + 1891, - 12: __ccgo_ts + 1905, - 13: __ccgo_ts + 1911, - 14: __ccgo_ts + 1921, - 15: __ccgo_ts + 1926, - 16: __ccgo_ts + 1931, - 17: __ccgo_ts + 1934, - 18: __ccgo_ts + 1940, - 19: __ccgo_ts + 1947, - 20: __ccgo_ts + 1951, - 21: __ccgo_ts + 1961, - 22: __ccgo_ts + 1968, - 23: __ccgo_ts + 1975, - 24: __ccgo_ts + 1982, - 25: __ccgo_ts + 1989, - 26: __ccgo_ts + 1999, - 27: __ccgo_ts + 2008, - 28: __ccgo_ts + 2019, - 29: __ccgo_ts + 2028, - 30: __ccgo_ts + 2034, - 31: __ccgo_ts + 2044, - 32: __ccgo_ts + 2054, - 33: __ccgo_ts + 2059, - 34: __ccgo_ts + 2069, - 35: __ccgo_ts + 2080, - 36: __ccgo_ts + 2085, - 37: __ccgo_ts + 2092, - 38: __ccgo_ts + 2103, - 39: __ccgo_ts + 2108, - 40: __ccgo_ts + 2113, - 41: __ccgo_ts + 2119, - 42: __ccgo_ts + 2125, - 43: __ccgo_ts + 2131, - 44: __ccgo_ts + 2134, - 45: __ccgo_ts + 2138, - 46: __ccgo_ts + 2144, - 47: __ccgo_ts + 2155, - 48: __ccgo_ts + 2166, - 49: __ccgo_ts + 2174, - 50: __ccgo_ts + 2183, - 51: __ccgo_ts + 2190, - 52: __ccgo_ts + 2198, - 53: __ccgo_ts + 2201, - 54: __ccgo_ts + 2204, - 55: __ccgo_ts + 2207, - 56: __ccgo_ts + 2210, - 57: __ccgo_ts + 2213, - 58: __ccgo_ts + 2216, - 59: __ccgo_ts + 2223, - 60: __ccgo_ts + 2229, - 61: __ccgo_ts + 2239, - 62: __ccgo_ts + 2252, - 63: __ccgo_ts + 2263, - 64: __ccgo_ts + 2269, - 65: __ccgo_ts + 2276, - 66: __ccgo_ts + 2285, - 67: __ccgo_ts + 2294, - 68: __ccgo_ts + 2301, - 69: __ccgo_ts + 2314, - 70: __ccgo_ts + 2325, - 71: __ccgo_ts + 2330, - 72: __ccgo_ts + 2338, - 73: __ccgo_ts + 2344, - 74: __ccgo_ts + 2351, - 75: __ccgo_ts + 2363, - 76: __ccgo_ts + 2368, - 77: __ccgo_ts + 2377, - 78: __ccgo_ts + 2382, - 79: __ccgo_ts + 2391, - 80: __ccgo_ts + 2396, - 81: __ccgo_ts + 2401, - 82: __ccgo_ts + 2407, - 83: __ccgo_ts + 2415, - 84: __ccgo_ts + 2423, - 85: __ccgo_ts + 2433, - 86: __ccgo_ts + 2441, - 87: __ccgo_ts + 2448, - 88: __ccgo_ts + 2461, - 89: __ccgo_ts + 2466, - 90: __ccgo_ts + 2478, - 91: __ccgo_ts + 2486, - 92: __ccgo_ts + 2493, - 93: __ccgo_ts + 2504, - 94: __ccgo_ts + 2511, - 95: __ccgo_ts + 2518, - 96: __ccgo_ts + 2528, - 97: __ccgo_ts + 2537, - 98: __ccgo_ts + 2548, - 99: __ccgo_ts + 2554, - 100: __ccgo_ts + 2565, - 101: __ccgo_ts + 2575, - 102: __ccgo_ts + 2585, - 103: __ccgo_ts + 2592, - 104: __ccgo_ts + 2598, - 105: __ccgo_ts + 2608, - 106: __ccgo_ts + 2619, - 107: __ccgo_ts + 2623, - 108: __ccgo_ts + 2632, - 109: __ccgo_ts + 2641, - 110: __ccgo_ts + 2648, - 111: __ccgo_ts + 2658, - 112: __ccgo_ts + 2665, - 113: __ccgo_ts + 2674, - 114: __ccgo_ts + 2684, - 115: __ccgo_ts + 2691, - 116: __ccgo_ts + 2699, - 117: __ccgo_ts + 2713, - 118: __ccgo_ts + 2721, - 119: __ccgo_ts + 2735, - 120: __ccgo_ts + 2746, - 121: __ccgo_ts + 2759, - 122: __ccgo_ts + 2770, - 123: __ccgo_ts + 2776, - 124: __ccgo_ts + 2788, - 125: __ccgo_ts + 2797, - 126: __ccgo_ts + 2805, - 127: __ccgo_ts + 2814, - 128: __ccgo_ts + 2823, - 129: __ccgo_ts + 2830, - 130: __ccgo_ts + 2838, - 131: __ccgo_ts + 2845, - 132: __ccgo_ts + 2856, - 133: __ccgo_ts + 2870, - 134: __ccgo_ts + 2881, - 135: __ccgo_ts + 2889, - 136: __ccgo_ts + 2895, - 137: __ccgo_ts + 2903, - 138: __ccgo_ts + 2911, - 139: __ccgo_ts + 2921, - 140: __ccgo_ts + 2934, - 141: __ccgo_ts + 2944, - 142: __ccgo_ts + 2957, - 143: __ccgo_ts + 2966, - 144: __ccgo_ts + 2977, - 145: __ccgo_ts + 2985, - 146: __ccgo_ts + 2991, - 147: __ccgo_ts + 3003, - 148: __ccgo_ts + 3015, - 149: __ccgo_ts + 3023, - 150: __ccgo_ts + 3035, - 151: __ccgo_ts + 3048, - 152: __ccgo_ts + 3058, - 153: __ccgo_ts + 3068, - 154: __ccgo_ts + 3073, - 155: __ccgo_ts + 3085, - 156: __ccgo_ts + 3097, - 157: __ccgo_ts + 3107, - 158: __ccgo_ts + 3113, - 159: __ccgo_ts + 3123, - 160: __ccgo_ts + 3130, - 161: __ccgo_ts + 3142, - 162: __ccgo_ts + 3153, - 163: __ccgo_ts + 3161, - 164: __ccgo_ts + 3170, - 165: __ccgo_ts + 3179, - 166: __ccgo_ts + 3188, - 167: __ccgo_ts + 3195, - 168: __ccgo_ts + 3206, - 169: __ccgo_ts + 3219, - 170: __ccgo_ts + 3229, - 171: __ccgo_ts + 3236, - 172: __ccgo_ts + 3244, - 173: __ccgo_ts + 3253, - 174: __ccgo_ts + 3259, - 175: __ccgo_ts + 3266, - 176: __ccgo_ts + 3274, - 177: __ccgo_ts + 3282, - 178: __ccgo_ts + 3290, - 179: __ccgo_ts + 3300, - 180: __ccgo_ts + 3309, - 181: __ccgo_ts + 3320, - 182: __ccgo_ts + 3331, - 183: __ccgo_ts + 3342, - 184: __ccgo_ts + 3352, - 185: __ccgo_ts + 3358, - 186: __ccgo_ts + 3369, - 187: __ccgo_ts + 3380, - 188: __ccgo_ts + 3385, - 189: __ccgo_ts + 3393, + 0: __ccgo_ts + 1856, + 1: __ccgo_ts + 1866, + 2: __ccgo_ts + 1877, + 3: __ccgo_ts + 1889, + 4: __ccgo_ts + 1900, + 5: __ccgo_ts + 1912, + 6: __ccgo_ts + 1919, + 7: __ccgo_ts + 1927, + 8: __ccgo_ts + 1935, + 9: __ccgo_ts + 1940, + 10: __ccgo_ts + 1945, + 11: __ccgo_ts + 1951, + 12: __ccgo_ts + 1965, + 13: __ccgo_ts + 1971, + 14: __ccgo_ts + 1981, + 15: __ccgo_ts + 1986, + 16: __ccgo_ts + 1991, + 17: __ccgo_ts + 1994, + 18: __ccgo_ts + 2000, + 19: __ccgo_ts + 2007, + 20: __ccgo_ts + 2011, + 21: __ccgo_ts + 2021, + 22: __ccgo_ts + 2028, + 23: __ccgo_ts + 2035, + 24: __ccgo_ts + 2042, + 25: __ccgo_ts + 2049, + 26: __ccgo_ts + 2059, + 27: __ccgo_ts + 2068, + 28: __ccgo_ts + 2079, + 29: __ccgo_ts + 2088, + 30: __ccgo_ts + 2094, + 31: __ccgo_ts + 2104, + 32: __ccgo_ts + 2114, + 33: __ccgo_ts + 2119, + 34: __ccgo_ts + 2133, + 35: __ccgo_ts + 2144, + 36: __ccgo_ts + 2149, + 37: __ccgo_ts + 2156, + 38: __ccgo_ts + 2167, + 39: __ccgo_ts + 2172, + 40: __ccgo_ts + 2177, + 41: __ccgo_ts + 2183, + 42: __ccgo_ts + 2189, + 43: __ccgo_ts + 2195, + 44: __ccgo_ts + 2198, + 45: __ccgo_ts + 2202, + 46: __ccgo_ts + 2208, + 47: __ccgo_ts + 2219, + 48: __ccgo_ts + 2230, + 49: __ccgo_ts + 2238, + 50: __ccgo_ts + 2247, + 51: __ccgo_ts + 2254, + 52: __ccgo_ts + 2262, + 53: __ccgo_ts + 2265, + 54: __ccgo_ts + 2268, + 55: __ccgo_ts + 2271, + 56: __ccgo_ts + 2274, + 57: __ccgo_ts + 2277, + 58: __ccgo_ts + 2280, + 59: __ccgo_ts + 2287, + 60: __ccgo_ts + 2293, + 61: __ccgo_ts + 2303, + 62: __ccgo_ts + 2316, + 63: __ccgo_ts + 2327, + 64: __ccgo_ts + 2333, + 65: __ccgo_ts + 2340, + 66: __ccgo_ts + 2349, + 67: __ccgo_ts + 2358, + 68: __ccgo_ts + 2365, + 69: __ccgo_ts + 2378, + 70: __ccgo_ts + 2389, + 71: __ccgo_ts + 2394, + 72: __ccgo_ts + 2402, + 73: __ccgo_ts + 2408, + 74: __ccgo_ts + 2415, + 75: __ccgo_ts + 2427, + 76: __ccgo_ts + 2432, + 77: __ccgo_ts + 2441, + 78: __ccgo_ts + 2446, + 79: __ccgo_ts + 2455, + 80: __ccgo_ts + 2460, + 81: __ccgo_ts + 2465, + 82: __ccgo_ts + 2471, + 83: __ccgo_ts + 2479, + 84: __ccgo_ts + 2487, + 85: __ccgo_ts + 2497, + 86: __ccgo_ts + 2505, + 87: __ccgo_ts + 2512, + 88: __ccgo_ts + 2525, + 89: __ccgo_ts + 2530, + 90: __ccgo_ts + 2542, + 91: __ccgo_ts + 2550, + 92: __ccgo_ts + 2557, + 93: __ccgo_ts + 2568, + 94: __ccgo_ts + 2575, + 95: __ccgo_ts + 2582, + 96: __ccgo_ts + 2592, + 97: __ccgo_ts + 2601, + 98: __ccgo_ts + 2612, + 99: __ccgo_ts + 2618, + 100: __ccgo_ts + 2629, + 101: __ccgo_ts + 2639, + 102: __ccgo_ts + 2649, + 103: __ccgo_ts + 2656, + 104: __ccgo_ts + 2662, + 105: __ccgo_ts + 2672, + 106: __ccgo_ts + 2683, + 107: __ccgo_ts + 2687, + 108: __ccgo_ts + 2696, + 109: __ccgo_ts + 2705, + 110: __ccgo_ts + 2712, + 111: __ccgo_ts + 2722, + 112: __ccgo_ts + 2729, + 113: __ccgo_ts + 2738, + 114: __ccgo_ts + 2748, + 115: __ccgo_ts + 2755, + 116: __ccgo_ts + 2763, + 117: __ccgo_ts + 2777, + 118: __ccgo_ts + 2785, + 119: __ccgo_ts + 2799, + 120: __ccgo_ts + 2810, + 121: __ccgo_ts + 2823, + 122: __ccgo_ts + 2834, + 123: __ccgo_ts + 2840, + 124: __ccgo_ts + 2852, + 125: __ccgo_ts + 2861, + 126: __ccgo_ts + 2869, + 127: __ccgo_ts + 2878, + 128: __ccgo_ts + 2887, + 129: __ccgo_ts + 2894, + 130: __ccgo_ts + 2902, + 131: __ccgo_ts + 2909, + 132: __ccgo_ts + 2920, + 133: __ccgo_ts + 2934, + 134: __ccgo_ts + 2945, + 135: __ccgo_ts + 2953, + 136: __ccgo_ts + 2959, + 137: __ccgo_ts + 2967, + 138: __ccgo_ts + 2975, + 139: __ccgo_ts + 2985, + 140: __ccgo_ts + 2998, + 141: __ccgo_ts + 3008, + 142: __ccgo_ts + 3021, + 143: __ccgo_ts + 3030, + 144: __ccgo_ts + 3041, + 145: __ccgo_ts + 3049, + 146: __ccgo_ts + 3055, + 147: __ccgo_ts + 3067, + 148: __ccgo_ts + 3079, + 149: __ccgo_ts + 3087, + 150: __ccgo_ts + 3099, + 151: __ccgo_ts + 3112, + 152: __ccgo_ts + 3122, + 153: __ccgo_ts + 3132, + 154: __ccgo_ts + 3137, + 155: __ccgo_ts + 3149, + 156: __ccgo_ts + 3161, + 157: __ccgo_ts + 3171, + 158: __ccgo_ts + 3177, + 159: __ccgo_ts + 3187, + 160: __ccgo_ts + 3194, + 161: __ccgo_ts + 3206, + 162: __ccgo_ts + 3217, + 163: __ccgo_ts + 3225, + 164: __ccgo_ts + 3234, + 165: __ccgo_ts + 3243, + 166: __ccgo_ts + 3252, + 167: __ccgo_ts + 3259, + 168: __ccgo_ts + 3270, + 169: __ccgo_ts + 3283, + 170: __ccgo_ts + 3293, + 171: __ccgo_ts + 3300, + 172: __ccgo_ts + 3308, + 173: __ccgo_ts + 3317, + 174: __ccgo_ts + 3323, + 175: __ccgo_ts + 3330, + 176: __ccgo_ts + 3338, + 177: __ccgo_ts + 3346, + 178: __ccgo_ts + 3354, + 179: __ccgo_ts + 3364, + 180: __ccgo_ts + 3373, + 181: __ccgo_ts + 3384, + 182: __ccgo_ts + 3395, + 183: __ccgo_ts + 3406, + 184: __ccgo_ts + 3416, + 185: __ccgo_ts + 3422, + 186: __ccgo_ts + 3433, + 187: __ccgo_ts + 3444, + 188: __ccgo_ts + 3449, + 189: __ccgo_ts + 3457, } /************** End of opcodes.c *********************************************/ @@ -100084,244 +100313,244 @@ type win_syscall = Twin_syscall // */ var _aSyscall = [80]Twin_syscall{ 0: { - FzName: __ccgo_ts + 3403, + FzName: __ccgo_ts + 3467, }, 1: { - FzName: __ccgo_ts + 3419, + FzName: __ccgo_ts + 3483, }, 2: { - FzName: __ccgo_ts + 3430, + FzName: __ccgo_ts + 3494, }, 3: { - FzName: __ccgo_ts + 3441, + FzName: __ccgo_ts + 3505, }, 4: { - FzName: __ccgo_ts + 3453, + FzName: __ccgo_ts + 3517, }, 5: { - FzName: __ccgo_ts + 3465, + FzName: __ccgo_ts + 3529, }, 6: { - FzName: __ccgo_ts + 3477, + FzName: __ccgo_ts + 3541, }, 7: { - FzName: __ccgo_ts + 3496, + FzName: __ccgo_ts + 3560, }, 8: { - FzName: __ccgo_ts + 3515, + FzName: __ccgo_ts + 3579, }, 9: { - FzName: __ccgo_ts + 3528, + FzName: __ccgo_ts + 3592, }, 10: { - FzName: __ccgo_ts + 3540, + FzName: __ccgo_ts + 3604, }, 11: { - FzName: __ccgo_ts + 3552, + FzName: __ccgo_ts + 3616, }, 12: { - FzName: __ccgo_ts + 3576, + FzName: __ccgo_ts + 3640, }, 13: { - FzName: __ccgo_ts + 3597, + FzName: __ccgo_ts + 3661, }, 14: { - FzName: __ccgo_ts + 3614, + FzName: __ccgo_ts + 3678, }, 15: { - FzName: __ccgo_ts + 3629, + FzName: __ccgo_ts + 3693, }, 16: { - FzName: __ccgo_ts + 3644, + FzName: __ccgo_ts + 3708, }, 17: { - FzName: __ccgo_ts + 3656, + FzName: __ccgo_ts + 3720, }, 18: { - FzName: __ccgo_ts + 3676, + FzName: __ccgo_ts + 3740, }, 19: { - FzName: __ccgo_ts + 3694, + FzName: __ccgo_ts + 3758, }, 20: { - FzName: __ccgo_ts + 3712, + FzName: __ccgo_ts + 3776, }, 21: { - FzName: __ccgo_ts + 3731, + FzName: __ccgo_ts + 3795, }, 22: { - FzName: __ccgo_ts + 3750, + FzName: __ccgo_ts + 3814, }, 23: { - FzName: __ccgo_ts + 3771, + FzName: __ccgo_ts + 3835, }, 24: { - FzName: __ccgo_ts + 3783, + FzName: __ccgo_ts + 3847, }, 25: { - FzName: __ccgo_ts + 3800, + FzName: __ccgo_ts + 3864, }, 26: { - FzName: __ccgo_ts + 3817, + FzName: __ccgo_ts + 3881, }, 27: { - FzName: __ccgo_ts + 3830, + FzName: __ccgo_ts + 3894, }, 28: { - FzName: __ccgo_ts + 3846, + FzName: __ccgo_ts + 3910, }, 29: { - FzName: __ccgo_ts + 3860, + FzName: __ccgo_ts + 3924, }, 30: { - FzName: __ccgo_ts + 3874, + FzName: __ccgo_ts + 3938, }, 31: { - FzName: __ccgo_ts + 3898, + FzName: __ccgo_ts + 3962, }, 32: { - FzName: __ccgo_ts + 3911, + FzName: __ccgo_ts + 3975, }, 33: { - FzName: __ccgo_ts + 3924, + FzName: __ccgo_ts + 3988, }, 34: { - FzName: __ccgo_ts + 3937, + FzName: __ccgo_ts + 4001, }, 35: { - FzName: __ccgo_ts + 3951, + FzName: __ccgo_ts + 4015, }, 36: { - FzName: __ccgo_ts + 3965, + FzName: __ccgo_ts + 4029, }, 37: { - FzName: __ccgo_ts + 3975, + FzName: __ccgo_ts + 4039, }, 38: { - FzName: __ccgo_ts + 3986, + FzName: __ccgo_ts + 4050, }, 39: { - FzName: __ccgo_ts + 3998, + FzName: __ccgo_ts + 4062, }, 40: { - FzName: __ccgo_ts + 4007, + FzName: __ccgo_ts + 4071, }, 41: { - FzName: __ccgo_ts + 4019, + FzName: __ccgo_ts + 4083, }, 42: { - FzName: __ccgo_ts + 4028, + FzName: __ccgo_ts + 4092, }, 43: { - FzName: __ccgo_ts + 4041, + FzName: __ccgo_ts + 4105, }, 44: { - FzName: __ccgo_ts + 4053, + FzName: __ccgo_ts + 4117, }, 45: { - FzName: __ccgo_ts + 4066, + FzName: __ccgo_ts + 4130, }, 46: { - FzName: __ccgo_ts + 4079, + FzName: __ccgo_ts + 4143, }, 47: { - FzName: __ccgo_ts + 4089, + FzName: __ccgo_ts + 4153, }, 48: { - FzName: __ccgo_ts + 4098, + FzName: __ccgo_ts + 4162, }, 49: { - FzName: __ccgo_ts + 4109, + FzName: __ccgo_ts + 4173, }, 50: { - FzName: __ccgo_ts + 4123, + FzName: __ccgo_ts + 4187, }, 51: { - FzName: __ccgo_ts + 4143, + FzName: __ccgo_ts + 4207, }, 52: { - FzName: __ccgo_ts + 4167, + FzName: __ccgo_ts + 4231, }, 53: { - FzName: __ccgo_ts + 4176, + FzName: __ccgo_ts + 4240, }, 54: { - FzName: __ccgo_ts + 4189, + FzName: __ccgo_ts + 4253, }, 55: { - FzName: __ccgo_ts + 4204, + FzName: __ccgo_ts + 4268, }, 56: { - FzName: __ccgo_ts + 4210, + FzName: __ccgo_ts + 4274, }, 57: { - FzName: __ccgo_ts + 4231, + FzName: __ccgo_ts + 4295, }, 58: { - FzName: __ccgo_ts + 4242, + FzName: __ccgo_ts + 4306, }, 59: { - FzName: __ccgo_ts + 4255, + FzName: __ccgo_ts + 4319, }, 60: { - FzName: __ccgo_ts + 4271, + FzName: __ccgo_ts + 4335, }, 61: { - FzName: __ccgo_ts + 4291, + FzName: __ccgo_ts + 4355, }, 62: { - FzName: __ccgo_ts + 4301, + FzName: __ccgo_ts + 4365, }, 63: { - FzName: __ccgo_ts + 4316, + FzName: __ccgo_ts + 4380, }, 64: { - FzName: __ccgo_ts + 4336, + FzName: __ccgo_ts + 4400, }, 65: { - FzName: __ccgo_ts + 4358, + FzName: __ccgo_ts + 4422, }, 66: { - FzName: __ccgo_ts + 4375, + FzName: __ccgo_ts + 4439, }, 67: { - FzName: __ccgo_ts + 4404, + FzName: __ccgo_ts + 4468, }, 68: { - FzName: __ccgo_ts + 4425, + FzName: __ccgo_ts + 4489, }, 69: { - FzName: __ccgo_ts + 4437, + FzName: __ccgo_ts + 4501, }, 70: { - FzName: __ccgo_ts + 4457, + FzName: __ccgo_ts + 4521, }, 71: { - FzName: __ccgo_ts + 4472, + FzName: __ccgo_ts + 4536, }, 72: { - FzName: __ccgo_ts + 4492, + FzName: __ccgo_ts + 4556, }, 73: { - FzName: __ccgo_ts + 4511, + FzName: __ccgo_ts + 4575, }, 74: { - FzName: __ccgo_ts + 4530, + FzName: __ccgo_ts + 4594, }, 75: { - FzName: __ccgo_ts + 4545, + FzName: __ccgo_ts + 4609, }, 76: { - FzName: __ccgo_ts + 4570, + FzName: __ccgo_ts + 4634, }, 77: { - FzName: __ccgo_ts + 4597, + FzName: __ccgo_ts + 4661, }, 78: { - FzName: __ccgo_ts + 4608, + FzName: __ccgo_ts + 4672, }, 79: { - FzName: __ccgo_ts + 4629, + FzName: __ccgo_ts + 4693, }, } @@ -100861,7 +101090,7 @@ func Xsqlite3_win32_set_directory8(tls *libc.TLS, type1 uint32, zValue uintptr) if ppDirectory != 0 { zCopy = uintptr(0) if zValue != 0 && *(*int8)(unsafe.Pointer(zValue)) != 0 { - zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+8, zValue)) + zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+8, zValue)) if zCopy == uintptr(0) { rc = int32(SQLITE_NOMEM) goto set_directory8_done @@ -100873,6 +101102,7 @@ func Xsqlite3_win32_set_directory8(tls *libc.TLS, type1 uint32, zValue uintptr) } else { rc = int32(SQLITE_ERROR) } + goto set_directory8_done set_directory8_done: ; Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) @@ -100961,10 +101191,10 @@ func _winGetLastErrorMsg(tls *libc.TLS, lastErrno TDWORD, nBuf int32, zBuf uintp } } if uint32(0) == dwLen { - Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+4648, libc.VaList(bp+24, lastErrno, lastErrno)) + Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+4712, libc.VaList(bp+24, lastErrno, lastErrno)) } else { /* copy a maximum of nBuf chars to output buffer */ - Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+4645, libc.VaList(bp+24, zOut)) + Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+4709, libc.VaList(bp+24, zOut)) /* free the UTF8 buffer */ Xsqlite3_free(tls, zOut) } @@ -100997,7 +101227,7 @@ func _winLogErrorAtLine(tls *libc.TLS, errcode int32, lastErrno TDWORD, zFunc ui (*(*[500]int8)(unsafe.Pointer(bp)))[0] = 0 _winGetLastErrorMsg(tls, lastErrno, int32(500), bp) if zPath == uintptr(0) { - zPath = __ccgo_ts + 1658 + zPath = __ccgo_ts + 1672 } i = 0 for { @@ -101010,7 +101240,7 @@ func _winLogErrorAtLine(tls *libc.TLS, errcode int32, lastErrno TDWORD, zFunc ui i++ } (*(*[500]int8)(unsafe.Pointer(bp)))[i] = 0 - Xsqlite3_log(tls, errcode, __ccgo_ts+4668, libc.VaList(bp+512, iLine, lastErrno, zFunc, zPath, bp)) + Xsqlite3_log(tls, errcode, __ccgo_ts+4732, libc.VaList(bp+512, iLine, lastErrno, zFunc, zPath, bp)) return errcode } @@ -101079,7 +101309,7 @@ func _winLogIoerr(tls *libc.TLS, nRetry int32, lineno int32) { bp := tls.Alloc(32) defer tls.Free(32) if nRetry != 0 { - Xsqlite3_log(tls, int32(SQLITE_NOTICE), __ccgo_ts+4699, libc.VaList(bp+8, _winIoerrRetryDelay*nRetry*(nRetry+int32(1))/int32(2), lineno)) + Xsqlite3_log(tls, int32(SQLITE_NOTICE), __ccgo_ts+4763, libc.VaList(bp+8, _winIoerrRetryDelay*nRetry*(nRetry+int32(1))/int32(2), lineno)) } } @@ -101168,7 +101398,7 @@ func _winSeekFile(tls *libc.TLS, pFile uintptr, iOffset Tsqlite3_int64) (r int32 } if v2 && v1 != uint32(0) { (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno = lastErrno - _winLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(22)< 0 { @@ -101429,7 +101659,7 @@ func _winSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { if (*(*func(*libc.TLS, TLPCVOID, TSIZE_T) TBOOL)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(79)].FpCurrent})))(tls, (*TwinFile)(unsafe.Pointer(pFile)).FpMapRegion, uint64(0)) != 0 { } else { (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls) - return _winLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(24)<= int32(RESERVED_LOCK) { @@ -101863,7 +102093,7 @@ func _winFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r int32 _winModeBit(tls, pFile, uint8(WINFILE_PSOW), pArg) return SQLITE_OK case int32(SQLITE_FCNTL_VFSNAME): - *(*uintptr)(unsafe.Pointer(pArg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+24, (*Tsqlite3_vfs)(unsafe.Pointer((*TwinFile)(unsafe.Pointer(pFile)).FpVfs)).FzName)) + *(*uintptr)(unsafe.Pointer(pArg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+24, (*Tsqlite3_vfs)(unsafe.Pointer((*TwinFile)(unsafe.Pointer(pFile)).FpVfs)).FzName)) return SQLITE_OK case int32(SQLITE_FCNTL_WIN32_AV_RETRY): a = pArg @@ -102169,7 +102399,7 @@ func _winLockSharedMemory(tls *libc.TLS, pShmNode uintptr) (r int32) { } else { if _winTruncate(tls, pShmNode+16, 0) != 0 { _winShmSystemLock(tls, pShmNode, int32(WINSHM_UNLCK), (libc.Int32FromInt32(22)+libc.Int32FromInt32(SQLITE_SHM_NLOCK))*libc.Int32FromInt32(4)+libc.Int32FromInt32(SQLITE_SHM_NLOCK), int32(1)) - return _winLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(18)< iRegion { @@ -102614,7 +102846,7 @@ func _winUnmapfile(tls *libc.TLS, pFile uintptr) (r int32) { if (*TwinFile)(unsafe.Pointer(pFile)).FpMapRegion != 0 { if !((*(*func(*libc.TLS, TLPCVOID) TBOOL)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(59)].FpCurrent})))(tls, (*TwinFile)(unsafe.Pointer(pFile)).FpMapRegion) != 0) { (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls) - return _winLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(24)<>libc.Int32FromInt32(32)&libc.Int64FromUint32(0xffffffff)), uint32(*(*Tsqlite3_int64)(unsafe.Pointer(bp))&libc.Int64FromUint32(0xffffffff)), libc.UintptrFromInt32(0)) if (*TwinFile)(unsafe.Pointer(pFd)).FhMap == libc.UintptrFromInt32(0) { (*TwinFile)(unsafe.Pointer(pFd)).FlastErrno = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls) - rc = _winLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(24)< nDir { Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) Xsqlite3_free(tls, zBuf) - return _winLogErrorAtLine(tls, int32(SQLITE_ERROR), uint32(0), __ccgo_ts+5026, uintptr(0), int32(51104)) + return _winLogErrorAtLine(tls, int32(SQLITE_ERROR), uint32(0), __ccgo_ts+5090, uintptr(0), int32(51444)) } - Xsqlite3_snprintf(tls, nMax, zBuf, __ccgo_ts+4645, libc.VaList(bp+8, Xsqlite3_temp_directory)) + Xsqlite3_snprintf(tls, nMax, zBuf, __ccgo_ts+4709, libc.VaList(bp+8, Xsqlite3_temp_directory)) } Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) } else { @@ -102980,11 +103212,11 @@ func _winGetTempname(tls *libc.TLS, pVfs uintptr, pzBuf uintptr) (r int32) { if (*(*func(*libc.TLS, TDWORD, TLPWSTR) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(32)].FpCurrent})))(tls, uint32(uint32(nMax)), zWidePath) == uint32(0) { Xsqlite3_free(tls, zWidePath) Xsqlite3_free(tls, zBuf) - return _winLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(25)< nBuf { Xsqlite3_free(tls, zBuf) - return _winLogErrorAtLine(tls, int32(SQLITE_ERROR), uint32(0), __ccgo_ts+5090, uintptr(0), int32(51273)) + return _winLogErrorAtLine(tls, int32(SQLITE_ERROR), uint32(0), __ccgo_ts+5154, uintptr(0), int32(51613)) } - Xsqlite3_snprintf(tls, nBuf-int32(16)-nLen, zBuf+uintptr(nLen), __ccgo_ts+5018, 0) + Xsqlite3_snprintf(tls, nBuf-int32(16)-nLen, zBuf+uintptr(nLen), __ccgo_ts+5082, 0) j = uint64(_sqlite3Strlen30(tls, zBuf)) Xsqlite3_randomness(tls, int32(15), zBuf+uintptr(j)) pid = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(17)].FpCurrent})))(tls) @@ -103193,7 +103425,7 @@ func _winOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, id uintptr, flags int3 dwCreationDisposition = uint32(OPEN_EXISTING) } } - if 0 == Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+5106, 0) { + if 0 == Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+5170, 0) { dwShareMode = uint32(libc.Int32FromInt32(FILE_SHARE_READ) | libc.Int32FromInt32(FILE_SHARE_WRITE)) } else { dwShareMode = uint32(0) @@ -103238,7 +103470,7 @@ func _winOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, id uintptr, flags int3 } } } - _winLogIoerr(tls, *(*int32)(unsafe.Pointer(bp + 4)), int32(51565)) + _winLogIoerr(tls, *(*int32)(unsafe.Pointer(bp + 4)), int32(51905)) if h == uintptr(int64(-libc.Int32FromInt32(1))) { Xsqlite3_free(tls, zConverted) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) @@ -103246,8 +103478,8 @@ func _winOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, id uintptr, flags int3 return _winOpen(tls, pVfs, zName, id, (flags|int32(SQLITE_OPEN_READONLY)) & ^(libc.Int32FromInt32(SQLITE_OPEN_CREATE)|libc.Int32FromInt32(SQLITE_OPEN_READWRITE)), pOutFlags) } else { (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno = *(*TDWORD)(unsafe.Pointer(bp)) - _winLogErrorAtLine(tls, int32(SQLITE_CANTOPEN), (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno, __ccgo_ts+5116, zUtf8Name, int32(51580)) - return _sqlite3CantopenError(tls, int32(51581)) + _winLogErrorAtLine(tls, int32(SQLITE_CANTOPEN), (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno, __ccgo_ts+5180, zUtf8Name, int32(51920)) + return _sqlite3CantopenError(tls, int32(51921)) } } if pOutFlags != 0 { @@ -103272,7 +103504,7 @@ func _winOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, id uintptr, flags int3 p2 = pFile + 28 *(*Tu8)(unsafe.Pointer(p2)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p2))) | libc.Int32FromInt32(WINFILE_RDONLY)) } - if flags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+5124, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { + if flags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+5188, int32(SQLITE_POWERSAFE_OVERWRITE)) != 0 { p3 = pFile + 28 *(*Tu8)(unsafe.Pointer(p3)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p3))) | libc.Int32FromInt32(WINFILE_PSOW)) } @@ -103368,9 +103600,9 @@ func _winDelete(tls *libc.TLS, pVfs uintptr, zFilename uintptr, syncDir int32) ( } } if rc != 0 && rc != libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(23)<= (libc.Uint64FromInt32(BITVEC_SZ)-libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))/libc.Uint64FromInt64(8)*libc.Uint64FromInt64(8)/libc.Uint64FromInt64(4)/libc.Uint64FromInt32(2) { @@ -105238,6 +105472,7 @@ bitvec_set_rehash: return rc } } + goto bitvec_set_end bitvec_set_end: ; (*TBitvec)(unsafe.Pointer(p)).FnSet++ @@ -105470,6 +105705,7 @@ func _sqlite3BitvecBuiltinTest(tls *libc.TLS, sz int32, aOp uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp))++ } /* Free allocated structure */ + goto bitvec_end bitvec_end: ; Xsqlite3_free(tls, pTmpSpace) @@ -106709,7 +106945,7 @@ func _sqlite3PCacheBufferSetup(tls *libc.TLS, pBuf uintptr, sz int32, n int32) { var p uintptr var v1, v2, v3, v4 int32 _, _, _, _, _ = p, v1, v2, v3, v4 - if _pcache1_g.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80) != 0 { if pBuf == uintptr(0) { v1 = libc.Int32FromInt32(0) n = v1 @@ -107230,7 +107466,7 @@ func _pcache1Init(tls *libc.TLS, NotUsed uintptr) (r int32) { _pcache1_g.FnInitPage = 0 } _pcache1_g.Fgrp.FmxPinned = uint32(10) - _pcache1_g.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_pcache1_g))+80, int32(1)) return SQLITE_OK } @@ -110727,6 +110963,7 @@ func _pager_delsuper(tls *libc.TLS, pPager uintptr, zSuper uintptr) (r int32) { } _sqlite3OsClose(tls, pSuper) rc = _sqlite3OsDelete(tls, pVfs, zSuper, 0) + goto delsuper_out delsuper_out: ; Xsqlite3_free(tls, zFree) @@ -111054,6 +111291,7 @@ func _pager_playback(tls *libc.TLS, pPager uintptr, isHot int32) (r int32) { } } /*NOTREACHED*/ + goto end_playback end_playback: ; if rc == SQLITE_OK { @@ -111096,7 +111334,7 @@ end_playback: rc = _pager_delsuper(tls, pPager, zSuper) } if isHot != 0 && nPlayback != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(2)< int64(1) { _sqlite3PagerUnrefNotNull(tls, pPgOld) - return _sqlite3CorruptError(tls, int32(63973)) + return _sqlite3CorruptError(tls, int32(64313)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | int32((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -115199,7 +115441,7 @@ func _sqlite3PagerCheckpoint(tls *libc.TLS, pPager uintptr, db uintptr, eMode in ** sqlite3_wal_checkpoint() call, but it happens very rarely. ** https://sqlite.org/forum/forumpost/fd0f19d229156939 */ - Xsqlite3_exec(tls, db, __ccgo_ts+5418, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+5482, uintptr(0), uintptr(0), uintptr(0)) } if (*TPager)(unsafe.Pointer(pPager)).FpWal != 0 { if eMode == SQLITE_CHECKPOINT_PASSIVE { @@ -116640,7 +116882,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(65899)) + return _sqlite3CorruptError(tls, int32(66239)) } goto _1 _1: @@ -116728,7 +116970,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { ** are able to understand */ version = _sqlite3Get4byte(tls, bp+8+4) if version != uint32(WAL_MAX_VERSION) { - rc = _sqlite3CantopenError(tls, int32(66031)) + rc = _sqlite3CantopenError(tls, int32(66371)) goto finished } /* Malloc a buffer to read frames into. */ @@ -116823,6 +117065,7 @@ func _walIndexRecover(tls *libc.TLS, pWal uintptr) (r int32) { } Xsqlite3_free(tls, aFrame) } + goto finished finished: ; if rc == SQLITE_OK { @@ -116866,9 +117109,10 @@ finished: ** checkpointing the log file. */ if (*TWal)(unsafe.Pointer(pWal)).Fhdr.FnPage != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(1)< int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(71032)) + rc = _sqlite3CorruptError(tls, int32(71421)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } @@ -121422,7 +121675,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, } /* The super-journal page number must never be used as a pointer map page */ if key == uint32(0) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71230)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71619)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -121435,12 +121688,12 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, /* The first byte of the extra data is the MemPage.isInit byte. ** If that byte is set, it means this page is also being used ** as a btree page. */ - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71243)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71632)) goto ptrmap_exit } offset = int32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71248)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71637)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -121453,6 +121706,7 @@ func _ptrmapPut(tls *libc.TLS, pBt uintptr, key TPgno, eType Tu8, parent TPgno, _sqlite3Put4byte(tls, pPtrmap+uintptr(offset+int32(1)), parent) } } + goto ptrmap_exit ptrmap_exit: ; _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -121483,7 +121737,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = int32(libc.Uint32FromInt32(5) * (key - uint32(uint32(iPtrmap)) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(71293)) + return _sqlite3CorruptError(tls, int32(71682)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -121491,7 +121745,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if int32(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || int32(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(71301)) + return _sqlite3CorruptError(tls, int32(71690)) } return SQLITE_OK } @@ -121911,7 +122165,7 @@ func _ptrmapPutOvflPtr(tls *libc.TLS, pPage uintptr, pSrc uintptr, pCell uintptr (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if uint64(pCell) < uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) && uint64(pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal)) > uint64((*TMemPage)(unsafe.Pointer(pSrc)).FaDataEnd) { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(71741)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72130)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(int32((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -121951,12 +122205,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71799)) + return _sqlite3CorruptError(tls, int32(72188)) } if iFree != 0 { iFree2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(71802)) + return _sqlite3CorruptError(tls, int32(72191)) } if 0 == iFree2 || int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -121964,21 +122218,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(71810)) + return _sqlite3CorruptError(tls, int32(72199)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(71813)) + return _sqlite3CorruptError(tls, int32(72202)) } sz2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(71815)) + return _sqlite3CorruptError(tls, int32(72204)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), uint64(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(71819)) + return _sqlite3CorruptError(tls, int32(72208)) } } cbrk = top + sz @@ -122025,12 +122279,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { ** if PRAGMA cell_size_check=ON. */ if pc > iCellLast { - return _sqlite3CorruptError(tls, int32(71852)) + return _sqlite3CorruptError(tls, int32(72241)) } size = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, src+uintptr(pc))) cbrk -= size if cbrk < iCellStart || pc+size > usableSize { - return _sqlite3CorruptError(tls, int32(71858)) + return _sqlite3CorruptError(tls, int32(72247)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = uint8(cbrk) @@ -122042,10 +122296,11 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { } } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))) = uint8(0) + goto defragment_out defragment_out: ; if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(71872)) + return _sqlite3CorruptError(tls, int32(72261)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = uint8(cbrk) @@ -122105,7 +122360,7 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint } else { if x+pc > maxPC { /* This slot extends off the end of the usable part of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71929)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72318)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -122122,14 +122377,14 @@ func _pageFindSlot(tls *libc.TLS, pPg uintptr, nByte int32, pRc uintptr) (r uint if pc <= iAddr { if pc != 0 { /* The next slot in the chain comes before the current slot */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71944)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72333)) } return uintptr(0) } } if pc > maxPC+nByte-int32(4) { /* The free slot chain extends off the end of the page */ - *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(71951)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(72340)) } return uintptr(0) } @@ -122172,11 +122427,11 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r if top == 0 && (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize == uint32(65536) { top = int32(65536) } else { - return _sqlite3CorruptError(tls, int32(71999)) + return _sqlite3CorruptError(tls, int32(72388)) } } else { if top > int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(72002)) + return _sqlite3CorruptError(tls, int32(72391)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -122190,7 +122445,7 @@ func _allocateSpace(tls *libc.TLS, pPage uintptr, nByte int32, pIdx uintptr) (r g2 = v1 *(*int32)(unsafe.Pointer(pIdx)) = v1 if g2 <= gap { - return _sqlite3CorruptError(tls, int32(72019)) + return _sqlite3CorruptError(tls, int32(72408)) } else { return SQLITE_OK } @@ -122273,12 +122528,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if int32(int32(iFreeBlk)) == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(72098)) + return _sqlite3CorruptError(tls, int32(72487)) } iPtr = iFreeBlk } if uint32(uint32(iFreeBlk)) > (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize-uint32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(72103)) + return _sqlite3CorruptError(tls, int32(72492)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -122289,11 +122544,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) if iFreeBlk != 0 && iEnd+uint32(3) >= uint32(uint32(iFreeBlk)) { nFrag = uint8(uint32(uint32(iFreeBlk)) - iEnd) if iEnd > uint32(uint32(iFreeBlk)) { - return _sqlite3CorruptError(tls, int32(72115)) + return _sqlite3CorruptError(tls, int32(72504)) } iEnd = uint32(int32(int32(iFreeBlk)) + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(int32(iFreeBlk))+int32(2)))))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - return _sqlite3CorruptError(tls, int32(72118)) + return _sqlite3CorruptError(tls, int32(72507)) } iSize = uint16(iEnd - uint32(uint32(iStart))) iFreeBlk = uint16(int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= int32(int32(iStart)) { if iPtrEnd > int32(int32(iStart)) { - return _sqlite3CorruptError(tls, int32(72131)) + return _sqlite3CorruptError(tls, int32(72520)) } nFrag = Tu8(int32(nFrag) + (int32(int32(iStart)) - iPtrEnd)) iSize = uint16(iEnd - uint32(uint32(iPtr))) @@ -122314,7 +122569,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) } } if int32(int32(nFrag)) > int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(int32(hdr))+int32(7))))) { - return _sqlite3CorruptError(tls, int32(72137)) + return _sqlite3CorruptError(tls, int32(72526)) } p2 = data + uintptr(int32(int32(hdr))+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - int32(int32(nFrag))) @@ -122331,10 +122586,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart Tu16, iSize Tu16) (r int32) ** so just extend the cell content area rather than create another ** freelist entry */ if int32(int32(iStart)) < int32(int32(x)) { - return _sqlite3CorruptError(tls, int32(72151)) + return _sqlite3CorruptError(tls, int32(72540)) } if int32(int32(iPtr)) != int32(int32(hdr))+int32(1) { - return _sqlite3CorruptError(tls, int32(72152)) + return _sqlite3CorruptError(tls, int32(72541)) } *(*uint8)(unsafe.Pointer(data + uintptr(int32(int32(hdr))+int32(1)))) = uint8(int32(iFreeBlk) >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(int32(int32(hdr))+int32(1)) + 1)) = uint8(iFreeBlk) @@ -122395,7 +122650,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtrIdxLeaf) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72206)) + return _sqlite3CorruptError(tls, int32(72595)) } } } else { @@ -122421,7 +122676,7 @@ func _decodeFlags(tls *libc.TLS, pPage uintptr, flagByte int32) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FintKeyLeaf = uint8(0) (*TMemPage)(unsafe.Pointer(pPage)).FxCellSize = __ccgo_fp(_cellSizePtr) (*TMemPage)(unsafe.Pointer(pPage)).FxParseCell = __ccgo_fp(_btreeParseCellPtrIndex) - return _sqlite3CorruptError(tls, int32(72230)) + return _sqlite3CorruptError(tls, int32(72619)) } } } @@ -122460,12 +122715,12 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-55530-52930 In a well-formed b-tree page, there will ** always be at least one cell before the first freeblock. */ - return _sqlite3CorruptError(tls, int32(72281)) + return _sqlite3CorruptError(tls, int32(72670)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(72286)) + return _sqlite3CorruptError(tls, int32(72675)) } next = uint32(int32(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(72296)) + return _sqlite3CorruptError(tls, int32(72685)) } if uint32(uint32(pc))+size > uint32(uint32(usableSize)) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(72300)) + return _sqlite3CorruptError(tls, int32(72689)) } } /* At this point, nFree contains the sum of the offset to the start @@ -122492,7 +122747,7 @@ func _btreeComputeFreeSpace(tls *libc.TLS, pPage uintptr) (r int32) { ** area, according to the page header, lies within the page. */ if nFree > usableSize || nFree < iCellFirst { - return _sqlite3CorruptError(tls, int32(72312)) + return _sqlite3CorruptError(tls, int32(72701)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16(nFree - iCellFirst)) return SQLITE_OK @@ -122523,11 +122778,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))) if pc < iCellFirst || pc > iCellLast { - return _sqlite3CorruptError(tls, int32(72343)) + return _sqlite3CorruptError(tls, int32(72732)) } sz = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxCellSize})))(tls, pPage, data+uintptr(pc))) if pc+sz > usableSize { - return _sqlite3CorruptError(tls, int32(72348)) + return _sqlite3CorruptError(tls, int32(72737)) } goto _1 _1: @@ -122556,7 +122811,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { /* EVIDENCE-OF: R-28594-02890 The one-byte flag at offset 0 indicating ** the b-tree page type. */ if _decodeFlags(tls, pPage, int32(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(72380)) + return _sqlite3CorruptError(tls, int32(72769)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -122569,7 +122824,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = uint16(int32(*(*Tu8)(unsafe.Pointer(data + 3)))< ((*TBtShared)(unsafe.Pointer(pBt)).FpageSize-uint32(8))/uint32(6) { /* To many cells for a single page. The page must be corrupt */ - return _sqlite3CorruptError(tls, int32(72394)) + return _sqlite3CorruptError(tls, int32(72783)) } /* EVIDENCE-OF: R-24089-57979 If a page contains no cells (which is only ** possible for a root page of a table that contains no rows) then the @@ -122722,7 +122977,7 @@ func _getAndInitPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, bRe _, _ = pPage, rc if pgno > _btreePagecount(tls, pBt) { *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72537)) + return _sqlite3CorruptError(tls, int32(72926)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -122784,7 +123039,7 @@ func _btreeGetUnusedPage(tls *libc.TLS, pBt uintptr, pgno TPgno, ppPage uintptr, if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FpDbPage) > int32(1) { _releasePage(tls, *(*uintptr)(unsafe.Pointer(ppPage))) *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) - return _sqlite3CorruptError(tls, int32(72609)) + return _sqlite3CorruptError(tls, int32(72998)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -122872,7 +123127,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt /* Set the variable isMemdb to true for an in-memory database, or ** false for a file-based database. */ - isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+5499) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) + isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+5563) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) /* flags fit in 8 bits */ /* Only a BTREE_SINGLE database can be BTREE_UNORDERED */ /* A BTREE_SINGLE database is always a temporary and/or ephemeral */ @@ -123096,6 +123351,7 @@ func _sqlite3BtreeOpen(tls *libc.TLS, pVfs uintptr, zFilename uintptr, db uintpt } } *(*uintptr)(unsafe.Pointer(ppBtree)) = p + goto btree_open_out btree_open_out: ; if rc != SQLITE_OK { @@ -123657,7 +123913,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { ** The original design allowed these amounts to vary, but as of ** version 3.6.0, we require them to be fixed. */ - if libc.Xmemcmp(tls, page1+21, __ccgo_ts+5508, uint64(3)) != 0 { + if libc.Xmemcmp(tls, page1+21, __ccgo_ts+5572, uint64(3)) != 0 { goto page1_init_failed } /* EVIDENCE-OF: R-51873-39618 The page size for a database file is @@ -123695,7 +123951,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { } if nPage > *(*Tu32)(unsafe.Pointer(bp + 8)) { if _sqlite3WritableSchema(tls, (*TBtShared)(unsafe.Pointer(pBt)).Fdb) == 0 { - rc = _sqlite3CorruptError(tls, int32(73547)) + rc = _sqlite3CorruptError(tls, int32(73936)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -123749,6 +124005,7 @@ func _lockBtree(tls *libc.TLS, pBt uintptr) (r int32) { (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 = *(*uintptr)(unsafe.Pointer(bp)) (*TBtShared)(unsafe.Pointer(pBt)).FnPage = nPage return SQLITE_OK + goto page1_init_failed page1_init_failed: ; _releasePageOne(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -124018,6 +124275,7 @@ func _btreeBeginTrans(tls *libc.TLS, p uintptr, wrflag int32, pSchemaVersion uin } } } + goto trans_begun trans_begun: ; if rc == SQLITE_OK { @@ -124134,7 +124392,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if int32(int32(eType)) == int32(PTRMAP_OVERFLOW2) { /* The pointer is always the first 4 bytes of the page in this case. */ if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData) != iFrom { - return _sqlite3CorruptError(tls, int32(73995)) + return _sqlite3CorruptError(tls, int32(74384)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -124158,7 +124416,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pPage)).FxParseCell})))(tls, pPage, pCell, bp) if uint32((*(*TCellInfo)(unsafe.Pointer(bp))).FnLocal) < (*(*TCellInfo)(unsafe.Pointer(bp))).FnPayload { if pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74014)) + return _sqlite3CorruptError(tls, int32(74403)) } if iFrom == _sqlite3Get4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4)) { _sqlite3Put4byte(tls, pCell+uintptr((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-uintptr(4), iTo) @@ -124167,7 +124425,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } } else { if pCell+uintptr(4) > (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(74023)) + return _sqlite3CorruptError(tls, int32(74412)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -124181,7 +124439,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if int32(int32(eType)) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(74035)) + return _sqlite3CorruptError(tls, int32(74424)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -124211,7 +124469,7 @@ func _relocatePage(tls *libc.TLS, pBt uintptr, pDbPage uintptr, eType Tu8, iPtrP iDbPage = (*TMemPage)(unsafe.Pointer(pDbPage)).Fpgno pPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager if iDbPage < uint32(3) { - return _sqlite3CorruptError(tls, int32(74070)) + return _sqlite3CorruptError(tls, int32(74459)) } /* Move page iDbPage from its current location to page number iFreePage */ *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3PagerMovepage(tls, pPager, (*TMemPage)(unsafe.Pointer(pDbPage)).FpDbPage, iFreePage, isCommit) @@ -124307,7 +124565,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(74168)) + return _sqlite3CorruptError(tls, int32(74557)) } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -124345,7 +124603,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if *(*TPgno)(unsafe.Pointer(bp + 24)) > dbSize { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) - return _sqlite3CorruptError(tls, int32(74220)) + return _sqlite3CorruptError(tls, int32(74609)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -124412,7 +124670,7 @@ func _sqlite3BtreeIncrVacuum(tls *libc.TLS, p uintptr) (r int32) { nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) nFin = _finalDbSize(tls, pBt, nOrig, nFree) if nOrig < nFin || nFree >= nOrig { - rc = _sqlite3CorruptError(tls, int32(74288)) + rc = _sqlite3CorruptError(tls, int32(74677)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -124455,7 +124713,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { ** is either a pointer-map page or the pending-byte page. If one ** is encountered, this indicates corruption. */ - return _sqlite3CorruptError(tls, int32(74339)) + return _sqlite3CorruptError(tls, int32(74728)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -124485,7 +124743,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(74366)) + return _sqlite3CorruptError(tls, int32(74755)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -124951,7 +125209,7 @@ func _btreeCursor(tls *libc.TLS, p uintptr, iTable TPgno, wrFlag int32, pKeyInfo /* Assert that the caller has opened the required transaction. */ if iTable <= uint32(1) { if iTable < uint32(1) { - return _sqlite3CorruptError(tls, int32(74830)) + return _sqlite3CorruptError(tls, int32(75219)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -125343,7 +125601,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin pBt = (*TBtCursor)(unsafe.Pointer(pCur)).FpBt /* Btree this cursor belongs to */ pBufStart = pBuf /* Start of original out buffer */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(75235)) + return _sqlite3CorruptError(tls, int32(75624)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -125353,7 +125611,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin ** &aPayload[pCur->info.nLocal] > &pPage->aData[pBt->usableSize] ** but is recast into its current form to avoid integer overflow problems */ - return _sqlite3CorruptError(tls, int32(75250)) + return _sqlite3CorruptError(tls, int32(75639)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -125381,7 +125639,11 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin if int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurFlags)&int32(BTCF_ValidOvfl) == 0 { nOvfl = int32(((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnPayload - uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) + ovflSize - uint32(1)) / ovflSize) if (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow == uintptr(0) || nOvfl*libc.Int32FromInt64(4) > _sqlite3MallocSize(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow) { - aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + if _sqlite3FaultSim(tls, int32(413)) != 0 { + aNew = uintptr(0) + } else { + aNew = _sqlite3Realloc(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow, uint64(nOvfl*int32(2))*uint64(4)) + } if aNew == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -125392,6 +125654,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin p1 = pCur + 1 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(BTCF_ValidOvfl)) } else { + /* Sanity check the validity of the overflow page cache */ /* If the overflow page-list cache has been allocated and the ** entry for the first required overflow page is valid, skip ** directly to it. @@ -125405,7 +125668,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin for *(*TPgno)(unsafe.Pointer(bp)) != 0 { /* If required, populate the overflow page-list cache. */ if *(*TPgno)(unsafe.Pointer(bp)) > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(75312)) + return _sqlite3CorruptError(tls, int32(75710)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -125479,7 +125742,7 @@ func _accessPayload(tls *libc.TLS, pCur uintptr, offset Tu32, amt Tu32, pBuf uin } if rc == SQLITE_OK && amt > uint32(0) { /* Overflow chain ends prematurely */ - return _sqlite3CorruptError(tls, int32(75396)) + return _sqlite3CorruptError(tls, int32(75794)) } return rc } @@ -125614,7 +125877,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { var v3, p1 uintptr _, _, _, _ = rc, v2, v3, p1 if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(75534)) + return _sqlite3CorruptError(tls, int32(75932)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -125626,7 +125889,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(75548)) + rc = _sqlite3CorruptError(tls, int32(75946)) } if rc != 0 { v3 = pCur + 84 @@ -125742,8 +126005,9 @@ func _moveToRoot(tls *libc.TLS, pCur uintptr) (r int32) { ** in such a way that page pRoot is linked into a second b-tree table ** (or the freelist). */ if int32((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != int32((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(75683)) + return _sqlite3CorruptError(tls, int32(76081)) } + goto skip_init skip_init: ; (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(0) @@ -125755,7 +126019,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(75695)) + return _sqlite3CorruptError(tls, int32(76093)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -125989,7 +126253,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(75937)) + return _sqlite3CorruptError(tls, int32(76342)) } } } @@ -126032,6 +126296,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh rc = SQLITE_OK goto moveto_table_finish } + goto moveto_table_next_layer moveto_table_next_layer: ; if lwr >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { @@ -126047,6 +126312,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh goto _1 _1: } + goto moveto_table_finish moveto_table_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -126191,7 +126457,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes p3 = pCur + 1 *(*Tu8)(unsafe.Pointer(p3)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p3))) & ^libc.Int32FromInt32(BTCF_ValidOvfl)) if !((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76133)) + return _sqlite3CorruptError(tls, int32(76538)) } goto bypass_moveto_root /* Start search on the current page */ } @@ -126205,6 +126471,7 @@ func _sqlite3BtreeIndexMoveto(tls *libc.TLS, pCur uintptr, pIdxKey uintptr, pRes } return rc } + goto bypass_moveto_root bypass_moveto_root: ; for { @@ -126253,7 +126520,7 @@ bypass_moveto_root: /* Invalid key size: 0x80 0x80 0x01 */ /* Minimum legal index key size */ if nCell < int32(2) || uint32(uint32(nCell))/(*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FusableSize > (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(76220)) + rc = _sqlite3CorruptError(tls, int32(76625)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, uint64(nCell+nOverrun)) @@ -126284,7 +126551,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = uint16(uint16(idx)) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(76252)) + rc = _sqlite3CorruptError(tls, int32(76657)) } goto moveto_index_finish } @@ -126317,7 +126584,7 @@ bypass_moveto_root: p9 = pCur + 1 *(*Tu8)(unsafe.Pointer(p9)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p9))) & ^(libc.Int32FromInt32(BTCF_ValidNKey) | libc.Int32FromInt32(BTCF_ValidOvfl))) if int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) >= libc.Int32FromInt32(BTCURSOR_MAX_DEPTH)-libc.Int32FromInt32(1) { - return _sqlite3CorruptError(tls, int32(76283)) + return _sqlite3CorruptError(tls, int32(76688)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = uint16(uint16(lwr)) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -126326,7 +126593,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != int32((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76294)) + rc = _sqlite3CorruptError(tls, int32(76699)) } if rc != 0 { v11 = pCur + 84 @@ -126340,6 +126607,7 @@ bypass_moveto_root: goto _4 _4: } + goto moveto_index_finish moveto_index_finish: ; (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) @@ -126374,11 +126642,11 @@ func _sqlite3BtreeRowCountEst(tls *libc.TLS, pCur uintptr) (r Ti64) { var i Tu8 var n Ti64 _, _ = i, n - /* Currently this interface is only called by the OP_IfSmaller - ** opcode, and it that case the cursor will always be valid and - ** will always point to a leaf node. */ + /* Currently this interface is only called by the OP_IfSizeBetween + ** opcode and the OP_Count opcode with P3=1. In either case, + ** the cursor will always be valid unless the btree is empty. */ if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) != CURSOR_VALID { - return int64(-int32(1)) + return 0 } if int32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).Fleaf) == 0 { return int64(-int32(1)) @@ -126454,7 +126722,7 @@ func _btreeNext(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76395)) + return _sqlite3CorruptError(tls, int32(76800)) } if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -126564,7 +126832,7 @@ func _btreePrevious(tls *libc.TLS, pCur uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FisInit = uint8(0) } if !((*TMemPage)(unsafe.Pointer(pPage)).FisInit != 0) { - return _sqlite3CorruptError(tls, int32(76488)) + return _sqlite3CorruptError(tls, int32(76893)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -126652,7 +126920,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt ** stores the total number of pages on the freelist. */ n = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+36) if n >= mxPage { - return _sqlite3CorruptError(tls, int32(76578)) + return _sqlite3CorruptError(tls, int32(76983)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -126707,7 +126975,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(76634)) + rc = _sqlite3CorruptError(tls, int32(77039)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -126733,7 +127001,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { if k > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/libc.Uint32FromInt32(4)-libc.Uint32FromInt32(2) { /* Value of k is out of range. Database corruption */ - rc = _sqlite3CorruptError(tls, int32(76663)) + rc = _sqlite3CorruptError(tls, int32(77068)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && int32(int32(eMode)) == int32(BTALLOC_LE)) { @@ -126760,7 +127028,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } else { iNewTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+8) if iNewTrunk > mxPage { - rc = _sqlite3CorruptError(tls, int32(76697)) + rc = _sqlite3CorruptError(tls, int32(77102)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -126831,7 +127099,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt } iPage = _sqlite3Get4byte(tls, aData+uintptr(uint32(8)+closest*uint32(4))) if iPage > mxPage || iPage < uint32(2) { - rc = _sqlite3CorruptError(tls, int32(76762)) + rc = _sqlite3CorruptError(tls, int32(77167)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && int32(int32(eMode)) == int32(BTALLOC_LE)) { @@ -126931,6 +127199,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt *(*uintptr)(unsafe.Pointer(ppPage)) = uintptr(0) } } + goto end_allocate_page end_allocate_page: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -126968,7 +127237,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in iTrunk = uint32(0) /* Page number of free-list trunk page */ pPage1 = (*TBtShared)(unsafe.Pointer(pBt)).FpPage1 /* Initial number of pages on free-list */ if iPage < uint32(2) || iPage > (*TBtShared)(unsafe.Pointer(pBt)).FnPage { - return _sqlite3CorruptError(tls, int32(76889)) + return _sqlite3CorruptError(tls, int32(77294)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -127019,7 +127288,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in if nFree != uint32(0) { /* Initial number of leaf cells on trunk page */ iTrunk = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32) if iTrunk > _btreePagecount(tls, pBt) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76936)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77341)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -127028,7 +127297,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in } nLeaf = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData+4) if nLeaf > (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(2) { - *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(76947)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(77352)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -127083,6 +127352,7 @@ func _freePage2(tls *libc.TLS, pBt uintptr, pMemPage uintptr, iPage TPgno) (r in _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData, iTrunk) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FaData+4, uint32(0)) _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage1)).FaData+32, iPage) + goto freepage_out freepage_out: ; if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -127117,7 +127387,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp _, _, _, _, _, _, _, _ = nOvfl, ovflPageSize, ovflPgno, pBt, rc, v1, v2, v3 if pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { /* Cell extends past end of page */ - return _sqlite3CorruptError(tls, int32(77036)) + return _sqlite3CorruptError(tls, int32(77441)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -127135,7 +127405,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp /* 0 is not a legal page number and page 1 cannot be an ** overflow page. Therefore if ovflPgno<2 or past the end of the ** file the database must be corrupt. */ - return _sqlite3CorruptError(tls, int32(77053)) + return _sqlite3CorruptError(tls, int32(77458)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -127158,7 +127428,7 @@ func _clearCellOverflow(tls *libc.TLS, pPage uintptr, pCell uintptr, pInfo uintp ** caller is iterating through or using in some other way, this ** can be problematic. */ - rc = _sqlite3CorruptError(tls, int32(77073)) + rc = _sqlite3CorruptError(tls, int32(77478)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -127379,7 +127649,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = uint32(int32(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77329)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(77734)) return } rc = _freeSpace(tls, pPage, uint16(uint16(pc)), uint16(uint16(sz))) @@ -127773,12 +128043,12 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg sz = *(*Tu16)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FszCell + uintptr(i)*2)) if uint64(pCell) >= uint64(aData+uintptr(j)) && uint64(pCell) < uint64(pEnd) { if uint64(pCell+uintptr(sz)) > uint64(uint64(pEnd)) { - return _sqlite3CorruptError(tls, int32(77718)) + return _sqlite3CorruptError(tls, int32(78123)) } pCell = pTmp + uintptr(int64(int64(pCell))-int64(int64(aData))) } else { if uint64(pCell+uintptr(sz)) > uint64(uint64(pSrcEnd)) && uint64(pCell) < uint64(uint64(pSrcEnd)) { - return _sqlite3CorruptError(tls, int32(77723)) + return _sqlite3CorruptError(tls, int32(78128)) } } pData -= uintptr(sz) @@ -127786,7 +128056,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = uint8(int64(int64(pData)) - int64(int64(aData))) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(77729)) + return _sqlite3CorruptError(tls, int32(78134)) } libc.Xmemmove(tls, pData, pCell, uint64(uint64(sz))) i++ @@ -127881,7 +128151,7 @@ func _pageInsertArray(tls *libc.TLS, pPg uintptr, pBegin uintptr, ppData uintptr ** database. But they might for a corrupt database. Hence use memmove() ** since memcpy() sends SIGABORT with overlapping buffers on OpenBSD */ if uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))+uintptr(sz)) > uint64(uint64(pEnd)) && uint64(*(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8))) < uint64(uint64(pEnd)) { - _sqlite3CorruptError(tls, int32(77814)) + _sqlite3CorruptError(tls, int32(78219)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), uint64(uint64(sz))) @@ -128029,7 +128299,7 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p if iOld < iNew { nShift = _pageFreeArray(tls, pPg, iOld, iNew-iOld, pCArray) if nShift > nCell { - return _sqlite3CorruptError(tls, int32(77936)) + return _sqlite3CorruptError(tls, int32(78341)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), uint64(nCell*int32(2))) nCell -= nShift @@ -128095,11 +128365,12 @@ func _editPage(tls *libc.TLS, pPg uintptr, iOld int32, iNew int32, nNew int32, p *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)))) = uint8((int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(int64(aData))) >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(aData + uintptr(hdr+int32(5)) + 1)) = uint8(int64(*(*uintptr)(unsafe.Pointer(bp))) - int64(int64(aData))) return SQLITE_OK + goto editpage_fail editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(78010)) + return _sqlite3CorruptError(tls, int32(78415)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -128144,7 +128415,7 @@ func _balance_quick(tls *libc.TLS, pParent uintptr, pPage uintptr, pSpace uintpt _, _, _, _, _, _, _ = pBt, pOut, pStop, v1, v2, v3, v4 pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt /* Page number of pNew */ if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(78050)) + return _sqlite3CorruptError(tls, int32(78455)) } /* dbfuzz001.test */ /* Allocate a new page. This page will become the right-sibling of ** pPage. Make the parent page writable, so that the new divider cell @@ -128505,7 +128776,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78471)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78876)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -128528,7 +128799,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa libc.Xmemset(tls, (*(*TCellArray)(unsafe.Pointer(bp + 112))).FszCell+uintptr((*(*TCellArray)(unsafe.Pointer(bp + 112))).FnCell)*2, 0, uint64(2)*uint64(limit+int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if int32((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78495)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78900)) goto balance_cleanup } limit = int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -128659,7 +128930,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa if i+int32(1) >= k { k = i + int32(2) if k > libc.Int32FromInt32(NB)+libc.Int32FromInt32(2) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78596)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79001)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -128702,7 +128973,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v10 = 0 } if cntNew[i] <= v10 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78629)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79034)) goto balance_cleanup } } @@ -128761,7 +129032,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa v15 = 0 } if cntNew[i-int32(1)] <= v15 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78673)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79078)) goto balance_cleanup } goto _11 @@ -128793,7 +129064,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) nNew++ if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 216)))).FpDbPage) != int32(1)+libc.BoolInt32(i == iParentIdx-nxDiv) && *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78706)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79111)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -129023,7 +129294,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa } pSrcEnd = *(*uintptr)(unsafe.Pointer(bp + 112 + 32 + uintptr(k)*8)) if uint64(pCell1) < uint64(pSrcEnd) && uint64(pCell1+uintptr(sz2)) > uint64(pSrcEnd) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(78906)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79311)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -129158,6 +129429,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa /* ** Cleanup before returning. */ + goto balance_cleanup balance_cleanup: ; _sqlite3DbFree(tls, uintptr(0), (*(*TCellArray)(unsafe.Pointer(bp + 112))).FapCell) @@ -129268,7 +129540,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && int32((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(79138)) + return _sqlite3CorruptError(tls, int32(79543)) } goto _1 _1: @@ -129341,7 +129613,7 @@ func _balance(tls *libc.TLS, pCur uintptr) (r int32) { /* The page being written is not a root page, and there is currently ** more than one reference to it. This only happens if the page is one ** of its own ancestor pages. Corruption. */ - rc = _sqlite3CorruptError(tls, int32(79198)) + rc = _sqlite3CorruptError(tls, int32(79603)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = int32(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -129500,7 +129772,7 @@ func _btreeOverwriteOverflowCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int return rc } if _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1) || (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FisInit != 0 { - rc = _sqlite3CorruptError(tls, int32(79362)) + rc = _sqlite3CorruptError(tls, int32(79767)) } else { if uint32(uint32(iOffset))+ovflPageSize < uint32(uint32(nTotal)) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -129531,7 +129803,7 @@ func _btreeOverwriteCell(tls *libc.TLS, pCur uintptr, pX uintptr) (r int32) { nTotal = (*TBtreePayload)(unsafe.Pointer(pX)).FnData + (*TBtreePayload)(unsafe.Pointer(pX)).FnZero /* Total bytes of to write */ pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage /* Page being written */ if (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload+uintptr((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd || (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FcellOffset) { - return _sqlite3CorruptError(tls, int32(79390)) + return _sqlite3CorruptError(tls, int32(79795)) } if int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -129616,7 +129888,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** Which can only happen if the SQLITE_NoSchemaError flag was set when ** the schema was loaded. This cannot be asserted though, as a user might ** set the flag, load the schema, and then unset the flag. */ - return _sqlite3CorruptError(tls, int32(79471)) + return _sqlite3CorruptError(tls, int32(79876)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -129708,7 +129980,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if int32((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79594)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79999)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -129744,7 +130016,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) if *(*int32)(unsafe.Pointer(bp + 4)) == 0 { if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79636)) + return _sqlite3CorruptError(tls, int32(80041)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -129774,10 +130046,10 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry. */ /* clearCell never fails when nLocal==nPayload */ if oldCell < (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+uintptr(10) { - return _sqlite3CorruptError(tls, int32(79663)) + return _sqlite3CorruptError(tls, int32(80068)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79666)) + return _sqlite3CorruptError(tls, int32(80071)) } libc.Xmemcpy(tls, oldCell, newCell, uint64(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -129842,6 +130114,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s (*TBtCursor)(unsafe.Pointer(pCur)).FnKey = (*TBtreePayload)(unsafe.Pointer(pX)).FnKey } } + goto end_insert end_insert: ; return *(*int32)(unsafe.Pointer(bp)) @@ -129894,7 +130167,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T nIn = uint32((*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnLocal) aIn = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload if aIn+uintptr(nIn) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79768)) + return _sqlite3CorruptError(tls, int32(80173)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -129916,7 +130189,7 @@ func _sqlite3BtreeTransferRow(tls *libc.TLS, pDest uintptr, pSrc uintptr, iKey T } if nRem > nIn { if aIn+uintptr(nIn)+uintptr(4) > (*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pSrc)).FpPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(79793)) + return _sqlite3CorruptError(tls, int32(80198)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -130016,21 +130289,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(79889)) + return _sqlite3CorruptError(tls, int32(80294)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(79898)) + return _sqlite3CorruptError(tls, int32(80303)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCellIdx)))))) if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 && _btreeComputeFreeSpace(tls, pPage) != 0 { - return _sqlite3CorruptError(tls, int32(79902)) + return _sqlite3CorruptError(tls, int32(80307)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(79905)) + return _sqlite3CorruptError(tls, int32(80310)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -130124,7 +130397,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { } pCell = (*TMemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&int32(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(int32(2)*(int32((*TMemPage)(unsafe.Pointer(pLeaf)).FnCell)-int32(1)))))))) if pCell < (*TMemPage)(unsafe.Pointer(pLeaf)).FaData+4 { - return _sqlite3CorruptError(tls, int32(79996)) + return _sqlite3CorruptError(tls, int32(80401)) } nCell = int32((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pLeaf)).FxCellSize})))(tls, pLeaf, pCell)) pTmp = (*TBtShared)(unsafe.Pointer(pBt)).FpTmpSpace @@ -130234,7 +130507,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags */ _sqlite3BtreeGetMeta(tls, p, int32(BTREE_LARGEST_ROOT_PAGE), bp+8) if *(*TPgno)(unsafe.Pointer(bp + 8)) > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80112)) + return _sqlite3CorruptError(tls, int32(80517)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -130275,7 +130548,7 @@ func _btreeCreateTable(tls *libc.TLS, p uintptr, piTable uintptr, createTabFlags } *(*int32)(unsafe.Pointer(bp + 12)) = _ptrmapGet(tls, pBt, *(*TPgno)(unsafe.Pointer(bp + 8)), bp+32, bp+36) if int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || int32(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80160)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(80565)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -130356,14 +130629,14 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int var _ /* rc at bp+8 */ int32 _, _, _, _ = hdr, i, pCell, v2 if pgno > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80250)) + return _sqlite3CorruptError(tls, int32(80655)) } *(*int32)(unsafe.Pointer(bp + 8)) = _getAndInitPage(tls, pBt, pgno, bp, 0) if *(*int32)(unsafe.Pointer(bp + 8)) != 0 { return *(*int32)(unsafe.Pointer(bp + 8)) } if int32((*TBtShared)(unsafe.Pointer(pBt)).FopenFlags)&int32(BTREE_SINGLE) == 0 && _sqlite3PagerPageRefcount(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpDbPage) != int32(1)+libc.BoolInt32(pgno == uint32(1)) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80257)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(80662)) goto cleardatabasepage_out } hdr = int32((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -130414,6 +130687,7 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int _zeroPage(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData + uintptr(hdr))))|int32(PTF_LEAF)) } } + goto cleardatabasepage_out cleardatabasepage_out: ; _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -130499,7 +130773,7 @@ func _btreeDropTable(tls *libc.TLS, p uintptr, iTable TPgno, piMoved uintptr) (r *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) pBt = (*TBtree)(unsafe.Pointer(p)).FpBt if iTable > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(80361)) + return _sqlite3CorruptError(tls, int32(80766)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, int32(int32(iTable)), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -130764,7 +131038,7 @@ func _checkAppendMsg(tls *libc.TLS, pCheck uintptr, zFormat uintptr, va uintptr) (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr++ ap = va if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FerrMsg.FnChar != 0 { - Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+5512, int32(1)) + Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+5576, int32(1)) } if (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx != 0 { Xsqlite3_str_appendf(tls, pCheck+72, (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx, libc.VaList(bp+8, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv0, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1, (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv2)) @@ -130812,11 +131086,11 @@ func _checkRef(tls *libc.TLS, pCheck uintptr, iPage TPgno) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if iPage > (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnCkPage || iPage == uint32(0) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+5514, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5578, libc.VaList(bp+8, iPage)) return int32(1) } if _getPageReferenced(tls, pCheck, iPage) != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+5537, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5601, libc.VaList(bp+8, iPage)) return int32(1) } _setPageReferenced(tls, pCheck, iPage) @@ -130842,11 +131116,11 @@ func _checkPtrmap(tls *libc.TLS, pCheck uintptr, iChild TPgno, eType Tu8, iParen if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< (*TBtShared)(unsafe.Pointer((*TIntegrityCk)(unsafe.Pointer(pCheck)).FpBt)).FusableSize/uint32(4)-uint32(2) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+5667, libc.VaList(bp+16, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5731, libc.VaList(bp+16, iPage)) N-- } else { i = 0 @@ -130918,11 +131192,11 @@ func _checkList(tls *libc.TLS, pCheck uintptr, isFreeList int32, iPage TPgno, N } if N != 0 && nErrAtStart == (*TIntegrityCk)(unsafe.Pointer(pCheck)).FnErr { if isFreeList != 0 { - v2 = __ccgo_ts + 5706 + v2 = __ccgo_ts + 5770 } else { - v2 = __ccgo_ts + 5711 + v2 = __ccgo_ts + 5775 } - _checkAppendMsg(tls, pCheck, __ccgo_ts+5732, libc.VaList(bp+16, v2, expected-N, expected)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5796, libc.VaList(bp+16, v2, expected-N, expected)) } } @@ -131058,12 +131332,12 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr if _checkRef(tls, pCheck, iPage) != 0 { return 0 } - (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 5758 + (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 5822 (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = iPage v1 = _btreeGetPage(tls, pBt, iPage, bp+8, 0) rc = v1 if v1 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+5776, libc.VaList(bp+56, rc)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5840, libc.VaList(bp+56, rc)) if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< usableSize-uint32(4) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+5930, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) + _checkAppendMsg(tls, pCheck, __ccgo_ts+5994, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) doCoverageCheck = 0 goto _4 } pCell = data + uintptr(pc) (*(*func(*libc.TLS, uintptr, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FxParseCell})))(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), pCell, bp+24) if pc+uint32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnSize) > usableSize { - _checkAppendMsg(tls, pCheck, __ccgo_ts+5960, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+6024, 0) doCoverageCheck = 0 goto _4 } @@ -131145,7 +131422,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr v5 = libc.BoolInt32((*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey >= *(*Ti64)(unsafe.Pointer(bp))) } if v5 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+5984, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+6048, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) } *(*Ti64)(unsafe.Pointer(bp)) = (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey keyCanBeEqual = 0 /* Only the first key on the page may ==maxKey */ @@ -131168,7 +131445,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr d2 = _checkTreePage(tls, pCheck, uint32(uint32(pgno)), bp, *(*Ti64)(unsafe.Pointer(bp))) keyCanBeEqual = 0 if d2 != depth { - _checkAppendMsg(tls, pCheck, __ccgo_ts+6008, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+6072, 0) depth = d2 } } else { @@ -131245,7 +131522,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr prev = contentOffset - uint32(1) /* Implied first min-heap entry */ for _btreeHeapPull(tls, heap, bp+16) != 0 { if prev&uint32(0xffff) >= *(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+6033, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+6097, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) break } else { nFrag = int32(uint32(nFrag) + (*(*Tu32)(unsafe.Pointer(bp + 16))>>libc.Int32FromInt32(16) - prev&libc.Uint32FromInt32(0xffff) - libc.Uint32FromInt32(1))) @@ -131259,9 +131536,10 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr ** number of fragmented free bytes within the cell content area. */ if *(*Tu32)(unsafe.Pointer(heap)) == uint32(0) && nFrag != int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+6070, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+6134, libc.VaList(bp+56, nFrag, int32(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) } } + goto end_of_check end_of_check: ; if !(doCoverageCheck != 0) { @@ -131298,16 +131576,16 @@ end_of_check: // ** the unverified btrees. Except, if aRoot[1] is 1, then the freelist // ** checks are still performed. // */ -func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { - bp := tls.Alloc(256) - defer tls.Free(256) +func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uintptr, aCnt uintptr, nRoot int32, mxErr int32, pnErr uintptr, pzOut uintptr) (r int32) { + bp := tls.Alloc(272) + defer tls.Free(272) var bCkFreelist, bPartial int32 var i, mx, mxInHdr TPgno var pBt uintptr var savedDbFlags Tu64 - var _ /* notUsed at bp+224 */ Ti64 + var _ /* notUsed at bp+232 */ Ti64 var _ /* sCheck at bp+0 */ TIntegrityCk - var _ /* zErr at bp+120 */ [100]int8 + var _ /* zErr at bp+128 */ [100]int8 _, _, _, _, _, _, _ = bCkFreelist, bPartial, i, mx, mxInHdr, pBt, savedDbFlags pBt = (*TBtree)(unsafe.Pointer(p)).FpBt savedDbFlags = (*Tsqlite3)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).Fdb)).Fflags @@ -131321,13 +131599,13 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } } _sqlite3BtreeEnter(tls, p) - libc.Xmemset(tls, bp, 0, uint64(120)) + libc.Xmemset(tls, bp, 0, uint64(128)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fdb = db (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt = pBt (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpPager = (*TBtShared)(unsafe.Pointer(pBt)).FpPager (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage = _btreePagecount(tls, (*(*TIntegrityCk)(unsafe.Pointer(bp))).FpBt) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr = mxErr - _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+120, int32(100), int32(SQLITE_MAX_LENGTH)) + _sqlite3StrAccumInit(tls, bp+72, uintptr(0), bp+128, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FerrMsg.FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnCkPage == uint32(0) { goto integrity_ck_cleanup @@ -131349,7 +131627,7 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin /* Check the integrity of the freelist */ if bCkFreelist != 0 { - (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 6122 + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 6186 _checkList(tls, bp, int32(1), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+32), _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36)) (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = uintptr(0) } @@ -131373,11 +131651,11 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin } mxInHdr = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+52) if mx != mxInHdr { - _checkAppendMsg(tls, bp, __ccgo_ts+6133, libc.VaList(bp+240, mx, mxInHdr)) + _checkAppendMsg(tls, bp, __ccgo_ts+6197, libc.VaList(bp+248, mx, mxInHdr)) } } else { if _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+64) != uint32(0) { - _checkAppendMsg(tls, bp, __ccgo_ts+6178, 0) + _checkAppendMsg(tls, bp, __ccgo_ts+6242, 0) } } } @@ -131387,14 +131665,15 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin if !(int32(int32(i)) < nRoot && (*(*TIntegrityCk)(unsafe.Pointer(bp))).FmxErr != 0) { break } - if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) == uint32(0) { - goto _2 - } - if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { - _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FnRow = 0 + if *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) != 0 { + if (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0 && *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) > uint32(1) && !(bPartial != 0) { + _checkPtrmap(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), uint8(PTRMAP_ROOTPAGE), uint32(0)) + } + (*(*TIntegrityCk)(unsafe.Pointer(bp))).Fv0 = *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)) + _checkTreePage(tls, bp, *(*TPgno)(unsafe.Pointer(aRoot + uintptr(i)*4)), bp+232, libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)< nRec || iHdr >= *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84303)) + iHdr = uint32(uint8(v1)) + if *(*Tu32)(unsafe.Pointer(bp + 4)) > uint32(uint32(nRec)) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84745)) } - iField = *(*int32)(unsafe.Pointer(bp + 4)) + iField = int64(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 for { if !(i <= iCol) { @@ -134383,19 +134697,19 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } else { v3 = int32(_sqlite3GetVarint32(tls, a+uintptr(iHdr), bp)) } - iHdr += int32(uint8(v3)) - if iHdr > *(*int32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(84309)) + iHdr += uint32(uint8(v3)) + if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { + return _sqlite3CorruptError(tls, int32(84751)) } - szField = int32(_sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp)))) - iField += szField + szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) + iField += int64(int64(szField)) goto _2 _2: ; i++ } - if iField > nRec { - return _sqlite3CorruptError(tls, int32(84315)) + if iField > int64(int64(nRec)) { + return _sqlite3CorruptError(tls, int32(84757)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -134405,7 +134719,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC return int32(SQLITE_NOMEM) } } - _sqlite3VdbeSerialGet(tls, a+uintptr(iField-szField), *(*Tu32)(unsafe.Pointer(bp)), pMem) + _sqlite3VdbeSerialGet(tls, a+uintptr(iField-int64(int64(szField))), *(*Tu32)(unsafe.Pointer(bp)), pMem) (*TMem)(unsafe.Pointer(pMem)).Fenc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc return SQLITE_OK } @@ -134824,6 +135138,7 @@ func _sqlite3VdbeMultiLoad(tls *libc.TLS, p uintptr, iDest int32, zTypes uintptr i++ } _sqlite3VdbeAddOp2(tls, p, int32(OP_ResultRow), iDest, i) + goto skip_op_resultrow skip_op_resultrow: ; _ = ap @@ -135191,6 +135506,9 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { /* True because of tag-20230419-1 */ (*TOp)(unsafe.Pointer(pOp)).Fp2 = *(*int32)(unsafe.Pointer(aLabel + uintptr(^(*TOp)(unsafe.Pointer(pOp)).Fp2)*4)) } + /* OPFLG_JUMP opcodes never have P2==0, though OPFLG_JUMP0 opcodes + ** might */ + /* Jumps never go off the end of the bytecode array */ break } /* The mkopcodeh.tcl script has so arranged things that the only @@ -135199,6 +135517,7 @@ func _resolveP2Values(tls *libc.TLS, p uintptr, pMaxFuncArgs uintptr) { } pOp -= 24 } + goto resolve_p2_values_loop_exit resolve_p2_values_loop_exit: ; if aLabel != 0 { @@ -135702,7 +136021,7 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { switch int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) { case -int32(8): pKeyInfo = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+6390, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+6454, libc.VaList(bp+40, int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) j = 0 for { if !(j < int32((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)) { @@ -135712,66 +136031,66 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { if pColl != 0 { v2 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v2 = __ccgo_ts + 1658 + v2 = __ccgo_ts + 1672 } zColl = v2 - if libc.Xstrcmp(tls, zColl, __ccgo_ts+6395) == 0 { - zColl = __ccgo_ts + 6402 + if libc.Xstrcmp(tls, zColl, __ccgo_ts+6459) == 0 { + zColl = __ccgo_ts + 6466 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_DESC) != 0 { - v3 = __ccgo_ts + 6383 + v3 = __ccgo_ts + 6447 } else { - v3 = __ccgo_ts + 1658 + v3 = __ccgo_ts + 1672 } if int32(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_BIGNULL) != 0 { - v4 = __ccgo_ts + 6404 + v4 = __ccgo_ts + 6468 } else { - v4 = __ccgo_ts + 1658 + v4 = __ccgo_ts + 1672 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+6407, libc.VaList(bp+40, v3, v4, zColl)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+6471, libc.VaList(bp+40, v3, v4, zColl)) goto _1 _1: ; j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+6415, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+6479, int32(1)) case -int32(2): pColl1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+6431, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+6495, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) case -int32(7): pDef = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+6440, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+6504, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) case -int32(15): pDef1 = (*Tsqlite3_context)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpFunc - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+6440, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+6504, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) case -int32(13): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1414, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1433, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(3): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+6447, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+6511, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) case -int32(12): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1381, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1400, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(10): pMem = *(*uintptr)(unsafe.Pointer(pOp + 16)) if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Str) != 0 { zP4 = (*TMem)(unsafe.Pointer(pMem)).Fz } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1414, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1433, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1381, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1400, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) } else { if int32((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Null) != 0 { - zP4 = __ccgo_ts + 1659 + zP4 = __ccgo_ts + 1673 } else { - zP4 = __ccgo_ts + 6450 + zP4 = __ccgo_ts + 6514 } } } } case -int32(11): pVtab = (*TVTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+6457, libc.VaList(bp+40, pVtab)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+6521, libc.VaList(bp+40, pVtab)) case -int32(14): ai = *(*uintptr)(unsafe.Pointer(pOp + 16)) n = *(*Tu32)(unsafe.Pointer(ai)) /* The first element of an INTARRAY is always the @@ -135786,15 +136105,15 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } else { v6 = int32(',') } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+6465, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+6529, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) goto _5 _5: ; i++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+6470, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+6534, int32(1)) case -int32(4): - zP4 = __ccgo_ts + 6472 + zP4 = __ccgo_ts + 6536 case -int32(5): zP4 = (*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FzName default: @@ -135810,10 +136129,10 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } var _encnames = [4]uintptr{ - 0: __ccgo_ts + 6417, - 1: __ccgo_ts + 6419, - 2: __ccgo_ts + 6421, - 3: __ccgo_ts + 6426, + 0: __ccgo_ts + 6481, + 1: __ccgo_ts + 6483, + 2: __ccgo_ts + 6485, + 3: __ccgo_ts + 6490, } // C documentation @@ -136764,7 +137083,7 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { retryCount = 0 /* Select a super-journal file name */ nMainFile = _sqlite3Strlen30(tls, zMainFile) - zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+6480, libc.VaList(bp+24, 0, zMainFile, 0)) + zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+6544, libc.VaList(bp+24, 0, zMainFile, 0)) if zSuper == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -136772,18 +137091,18 @@ func _vdbeCommit(tls *libc.TLS, db uintptr, p uintptr) (r int32) { for cond := true; cond; cond = rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp + 8)) != 0 { if retryCount != 0 { if retryCount > int32(100) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+6492, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+6556, libc.VaList(bp+24, zSuper)) _sqlite3OsDelete(tls, pVfs, zSuper, 0) break } else { if retryCount == int32(1) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+6506, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+6570, libc.VaList(bp+24, zSuper)) } } } retryCount++ Xsqlite3_randomness(tls, int32(4), bp+12) - Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+6521, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) + Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+6585, libc.VaList(bp+24, *(*Tu32)(unsafe.Pointer(bp + 12))>>libc.Int32FromInt32(8)&uint32(0xffffff), *(*Tu32)(unsafe.Pointer(bp + 12))&uint32(0xff))) /* The antipenultimate character of the super-journal name must ** be "9" to avoid name collisions when using 8+3 filenames. */ rc = _sqlite3OsAccess(tls, pVfs, zSuper, SQLITE_ACCESS_EXISTS, bp+8) @@ -137014,7 +137333,7 @@ func _sqlite3VdbeCheckFk(tls *libc.TLS, p uintptr, deferred int32) (r int32) { if deferred != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredCons+(*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons > 0 || !(deferred != 0) && (*TVdbe)(unsafe.Pointer(p)).FnFkConstraint > 0 { (*TVdbe)(unsafe.Pointer(p)).Frc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(3)< y { return +libc.Int32FromInt32(1) } - s = float64(float64(i)) - if s < r { + if float64(float64(i)) < r { v2 = -int32(1) } else { - v2 = libc.BoolInt32(s > r) + v2 = libc.BoolInt32(float64(float64(i)) > r) } return v2 } @@ -138323,7 +138641,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > uint32(uint32(nKey1)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89131))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89580))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -138413,7 +138731,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || int32((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89212))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89661))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -138448,7 +138766,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = int32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+uint32(uint32(nStr)) > uint32(uint32(nKey1)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89242))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89691))) return 0 /* Corruption */ } else { if int32((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -138502,7 +138820,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += uint32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89293))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89742))) return 0 /* Corrupt index */ } } @@ -138616,6 +138934,7 @@ func _vdbeRecordCompareString(tls *libc.TLS, nKey1 int32, pKey1 uintptr, pPKey2 _, _, _, _, _, _ = aKey1, nCmp, nStr, res, szHdr, v1 aKey1 = pKey1 *(*int32)(unsafe.Pointer(bp)) = int32(int8(*(*Tu8)(unsafe.Pointer(aKey1 + 1)))) + goto vrcs_restart vrcs_restart: ; if *(*int32)(unsafe.Pointer(bp)) < int32(12) { @@ -138633,7 +138952,7 @@ vrcs_restart: szHdr = int32(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89456))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(89905))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -138781,10 +139100,11 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr return SQLITE_OK /* Jump here if database corruption is detected after m has been ** allocated. Free the m object and return SQLITE_CORRUPT. */ + goto idx_rowid_corruption idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(89614)) + return _sqlite3CorruptError(tls, int32(90063)) } // C documentation @@ -138815,7 +139135,7 @@ func _sqlite3VdbeIdxKeyCompare(tls *libc.TLS, db uintptr, pC uintptr, pUnpacked ** that btreeParseCellPtr() and sqlite3GetVarint32() are implemented */ if nCellKey <= 0 || nCellKey > int64(0x7fffffff) { *(*int32)(unsafe.Pointer(res)) = 0 - return _sqlite3CorruptError(tls, int32(89647)) + return _sqlite3CorruptError(tls, int32(90096)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(uint32(nCellKey)), bp) @@ -138966,15 +139286,15 @@ func _sqlite3NotPureFunc(tls *libc.TLS, pCtx uintptr) (r int32) { pOp = (*TVdbe)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe)).FaOp + uintptr((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FiOp)*24 if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_PureFunc) { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_IsCheck) != 0 { - zContext = __ccgo_ts + 6564 + zContext = __ccgo_ts + 6628 } else { if int32((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_GenCol) != 0 { - zContext = __ccgo_ts + 6583 + zContext = __ccgo_ts + 6647 } else { - zContext = __ccgo_ts + 6602 + zContext = __ccgo_ts + 6666 } } - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+6611, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+6675, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) return 0 @@ -139148,7 +139468,7 @@ func Xsqlite3_expired(tls *libc.TLS, pStmt uintptr) (r int32) { // */ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { if (*TVdbe)(unsafe.Pointer(p)).Fdb == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+6647, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+6711, 0) return int32(1) } else { return 0 @@ -139158,7 +139478,7 @@ func _vdbeSafety(tls *libc.TLS, p uintptr) (r int32) { func _vdbeSafetyNotNull(tls *libc.TLS, p uintptr) (r int32) { if p == uintptr(0) { - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+6692, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+6756, 0) return int32(1) } else { return _vdbeSafety(tls, p) @@ -139216,7 +139536,7 @@ func Xsqlite3_finalize(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt db = (*TVdbe)(unsafe.Pointer(v)).Fdb if _vdbeSafety(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90035)) + return _sqlite3MisuseError(tls, int32(90484)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -139719,7 +140039,7 @@ func Xsqlite3_result_error_code(tls *libc.TLS, pCtx uintptr, errCode int32) { // /* Force an SQLITE_TOOBIG error. */ func Xsqlite3_result_error_toobig(tls *libc.TLS, pCtx uintptr) { (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FisError = int32(SQLITE_TOOBIG) - _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+6732, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) + _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+6796, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) } // C documentation @@ -139798,6 +140118,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { _, _ = db, rc db = (*TVdbe)(unsafe.Pointer(p)).Fdb if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_RUN_STATE) { + goto restart_step restart_step: ; if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) == int32(VDBE_READY_STATE) { @@ -139895,6 +140216,7 @@ func _sqlite3Step(tls *libc.TLS, p uintptr) (r int32) { rc = (*TVdbe)(unsafe.Pointer(p)).Frc } } + goto end_of_step end_of_step: ; /* There are only a limited number of result codes allowed from the @@ -139918,7 +140240,7 @@ func Xsqlite3_step(tls *libc.TLS, pStmt uintptr) (r int32) { v = pStmt /* the prepared statement */ cnt = 0 /* The database connection */ if _vdbeSafetyNotNull(tls, v) != 0 { - return _sqlite3MisuseError(tls, int32(90829)) + return _sqlite3MisuseError(tls, int32(91278)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -140048,7 +140370,7 @@ func _valueFromValueList(tls *libc.TLS, pVal uintptr, ppOut uintptr, bNext int32 _, _, _, _, _, _, _ = iOff, pOut, pRhs, rc, sz, zBuf, v1 *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) if pVal == uintptr(0) { - return _sqlite3MisuseError(tls, int32(90950)) + return _sqlite3MisuseError(tls, int32(91399)) } if int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -140270,6 +140592,7 @@ func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, (*TAuxData)(unsafe.Pointer(pAuxData)).FpAux = pAux (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = xDelete return + goto failed failed: ; if xDelete != 0 { @@ -140507,18 +140830,18 @@ func Xsqlite3_column_type(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { // ** Column names appropriate for EXPLAIN or EXPLAIN QUERY PLAN. // */ var _azExplainColNames8 = [12]uintptr{ - 0: __ccgo_ts + 6755, - 1: __ccgo_ts + 6760, - 2: __ccgo_ts + 6767, - 3: __ccgo_ts + 6770, - 4: __ccgo_ts + 6773, - 5: __ccgo_ts + 6776, - 6: __ccgo_ts + 6779, - 7: __ccgo_ts + 6782, - 8: __ccgo_ts + 6790, - 9: __ccgo_ts + 6793, - 10: __ccgo_ts + 6800, - 11: __ccgo_ts + 6808, + 0: __ccgo_ts + 6819, + 1: __ccgo_ts + 6824, + 2: __ccgo_ts + 6831, + 3: __ccgo_ts + 6834, + 4: __ccgo_ts + 6837, + 5: __ccgo_ts + 6840, + 6: __ccgo_ts + 6843, + 7: __ccgo_ts + 6846, + 8: __ccgo_ts + 6854, + 9: __ccgo_ts + 6857, + 10: __ccgo_ts + 6864, + 11: __ccgo_ts + 6872, } var _azExplainColNames16data = [60]Tu16{ 0: uint16('a'), @@ -140652,6 +140975,7 @@ func _columnName(tls *libc.TLS, pStmt uintptr, N int32, useUtf16 int32, useType ret = uintptr(0) } } + goto columnName_end columnName_end: ; Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -140761,14 +141085,14 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { var v2 bool _, _, _ = pVar, v1, v2 if _vdbeSafetyNotNull(tls, p) != 0 { - return _sqlite3MisuseError(tls, int32(91554)) + return _sqlite3MisuseError(tls, int32(92003)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if int32((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(91558))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(92007))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+6815, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(91562)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+6879, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) + return _sqlite3MisuseError(tls, int32(92011)) } if i >= uint32((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -141332,7 +141656,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp /* Test that this call is being made from within an SQLITE_DELETE or ** SQLITE_UPDATE pre-update callback, and that iIdx is within range. */ if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_INSERT) { - rc = _sqlite3MisuseError(tls, int32(92098)) + rc = _sqlite3MisuseError(tls, int32(92547)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -141378,6 +141702,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } } + goto preupdate_old_out preupdate_old_out: ; _sqlite3Error(tls, db, rc) @@ -141461,7 +141786,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp rc = SQLITE_OK p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(92221)) + rc = _sqlite3MisuseError(tls, int32(92670)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -141527,6 +141852,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp } } *(*uintptr)(unsafe.Pointer(ppValue)) = pMem + goto preupdate_new_out preupdate_new_out: ; _sqlite3Error(tls, db, rc) @@ -141634,7 +141960,7 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr break } } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+6855, int32(3)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+6919, int32(3)) Xsqlite3_str_append(tls, bp+8, zStart, int32(int64(int64(zRawSql))-int64(int64(zStart)))) } } else { @@ -141666,13 +141992,13 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr nextIndex = v2 pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(*(*int32)(unsafe.Pointer(bp))-int32(1))*56 if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Null) != 0 { - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1659, int32(4)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1673, int32(4)) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1414, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1433, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+6376, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+6440, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Str) != 0 { /* Number of bytes of the string text to include in output */ enc = (*Tsqlite3)(unsafe.Pointer(db)).Fenc @@ -141687,28 +142013,28 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr pVar = bp + 40 } nOut = (*TMem)(unsafe.Pointer(pVar)).Fn - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+6859, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+6923, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) if int32(int32(enc)) != int32(SQLITE_UTF8) { _sqlite3VdbeMemRelease(tls, bp+40) } } else { if int32((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Zero) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+6866, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+6930, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) } else { /* Number of bytes of the blob to include in output */ - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+6879, int32(2)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+6943, int32(2)) nOut1 = (*TMem)(unsafe.Pointer(pVar)).Fn i = 0 for { if !(i < nOut1) { break } - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+6882, libc.VaList(bp+104, int32(*(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+6946, libc.VaList(bp+104, int32(*(*int8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) goto _3 _3: ; i++ } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+6887, int32(1)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+6951, int32(1)) } } } @@ -142308,7 +142634,7 @@ var _azTypes = [5]uintptr{ 1: __ccgo_ts + 1154, 2: __ccgo_ts + 1159, 3: __ccgo_ts + 1137, - 4: __ccgo_ts + 1659, + 4: __ccgo_ts + 1673, } // C documentation @@ -142322,7 +142648,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { defer tls.Free(976) var aCol, aMem, aOffset, aOp, aPermute, aRoot, apArg, apArg1, db, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pnErr, t1, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v240, v241, v242, v250, v251, v252, v253, v255, v263, v278, v279, v286, v288, v297, v298, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 uintptr var affinity int8 - var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 + var alreadyExists, bRev, c, c1, c2, cnt, cnt1, desiredAutoCommit, eNew, eOld, eqOnly, exists, i, i1, i2, i4, i5, i6, i7, i8, i9, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iQuery, iRollback, iSavepoint, iSet, ii, ii1, isLegacy, isSchemaChange, isTransaction, len1, n, n1, n2, n4, nArg, nArg1, nByte2, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nRoot, nStep, nVarint, oc, opflags, p1, p11, p12, p13, p2, p21, pcDest, pcx, rc, res, res10, res11, res12, res21, savedAnalysisLimit, seekResult, v11, v21, wrFlag, v188, v191, v194, v197, v198, v205, v206, v207, v223, v224, v244, v245, v248, v249, v256, v260, v265, v266, v269, v270, v272, v273, v274, v275, v284, v287, v291 int32 var colCacheCtr, iAddr, iMap, iPrior, idx, len11, n3, p22, p23, serialType, serial_type, v213, v214, v216, v221, v222 Tu32 var encoding, isWriteLock, mTrace, op, p5, resetSchemaOnFault, vtabOnConflict, v225 Tu8 var flags1, flags11, flags2, flags3, flags31, newType, nullFlag, type1, type2, typeMask, v190 Tu16 @@ -142379,7 +142705,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { var _ /* z at bp+688 */ uintptr var _ /* zErr at bp+632 */ uintptr var _ /* zErr at bp+792 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aCol, aMem, aOffset, aOp, aPermute, aRoot, affinity, alreadyExists, apArg, apArg1, bRev, c, c1, c2, cnt, cnt1, colCacheCtr, db, desiredAutoCommit, eNew, eOld, encoding, eqOnly, exists, flags1, flags11, flags2, flags3, flags31, h, h1, i, i1, i2, i3, i4, i5, i6, i7, i8, i9, iA, iAddr, iB1, iCompare, iCookie, iDb, iDb1, iDb2, iDb3, iKey, iKey1, iKey2, iMap, iPrior, iQuery, iRollback, iSavepoint, iSet, idx, ii, ii1, isLegacy, isSchemaChange, isTransaction, isWriteLock, len1, len11, mTrace, n, n1, n2, n3, n4, nArg, nArg1, nByte, nByte1, nByte2, nCellKey, nData, nField, nField1, nField2, nHdr, nKeyCol, nMem, nName, nProgressLimit, nRoot, nStep, nVarint, nVmStep, nZero, newMax, newType, nullFlag, oc, offset64, op, opflags, p1, p11, p12, p13, p2, p21, p22, p23, p5, pArgc, pBt, pBt1, pBt2, pBt3, pC, pC1, pC10, pC11, pC12, pC13, pC14, pC15, pC16, pC17, pC18, pC19, pC2, pC20, pC21, pC22, pC23, pC24, pC25, pC26, pC27, pC28, pC29, pC3, pC30, pC31, pC32, pC4, pC5, pC6, pC7, pC8, pC9, pCaller, pColl, pCrsr, pCrsr1, pCrsr2, pCrsr3, pCrsr4, pCrsr5, pCrsr6, pCrsr7, pCtx, pCtx1, pCtx2, pCur, pCur1, pCur2, pCur3, pCur4, pCur5, pCur6, pCx, pCx1, pCx2, pCx3, pData, pData0, pDb, pDb1, pDb2, pDb3, pDest, pDest1, pDest2, pEnd, pFrame, pFrame1, pFrame2, pFrame3, pFrame4, pIdxKey, pIn, pIn1, pIn2, pIn3, pKey, pKeyInfo, pKeyInfo1, pKeyInfo2, pLast, pMem, pMem1, pMem2, pMem3, pMem4, pModule, pModule1, pModule2, pModule3, pModule4, pModule5, pModule6, pName, pNew, pOp, pOrig, pOut, pPager, pProgram, pQuery, pRec, pReg, pRhs, pRt, pSavepoint, pSrc, pTab, pTab1, pTab2, pTab3, pTabCur, pTmp, pVCur1, pVTab, pVar, pVtab, pVtab1, pVtab2, pVtab3, pVtab4, pVtab5, pVtab6, pVtab7, pX, pX1, pcDest, pcx, pnErr, rA, rB, rc, res, res10, res11, res12, res21, resetSchemaOnFault, savedAnalysisLimit, seekResult, serialType, serial_type, sz, t1, type1, type2, typeMask, uu, v11, v21, vtabOnConflict, wrFlag, xAuth, z1, z2, z3, zAffinity, zAffinity1, zData, zDb, zDb1, zEndHdr, zFilename, zHdr, zHdr1, zName, zPayload, zSchema, zSql, zTab, zTrace, v188, v190, v191, v194, v197, v198, v204, v205, v206, v207, v211, v213, v214, v215, v216, v221, v222, v223, v224, v225, v240, v241, v242, v244, v245, v248, v249, v250, v251, v252, v253, v254, v255, v256, v260, v262, v263, v265, v266, v267, v269, v270, v271, v272, v273, v274, v275, v278, v279, v281, v282, v284, v286, v287, v288, v291, v297, v298, v299, p189, p192, p193, p196, p199, p208, p209, p212, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239, p293, p294, p295, p296 aOp = (*TVdbe)(unsafe.Pointer(p)).FaOp /* Copy of p->aOp */ pOp = aOp /* Current operation */ rc = SQLITE_OK /* Value to return */ @@ -142649,7 +142975,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto _109 case int32(OP_SeekEnd): goto _110 - case int32(OP_IfSmaller): + case int32(OP_IfSizeBetween): goto _111 case int32(OP_Sort): goto _112 @@ -142851,6 +143177,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { */ _2: ; /* jump */ + goto jump_to_p2_and_check_for_interrupt jump_to_p2_and_check_for_interrupt: ; pOp = aOp + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp2-int32(1))*24 @@ -142864,6 +143191,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** way for performance, to avoid having to run the interrupt and progress ** checks on every opcode. This helps sqlite3_step() to run about 1.5% ** faster according to "valgrind --tool=cachegrind" */ + goto check_for_interrupt check_for_interrupt: ; if libc.AtomicLoadNInt32(db+432, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0 { @@ -142941,7 +143269,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: EndCoroutine */ _5: - ; /* jump */ + ; /* jump0 */ pOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 *(*Ti64)(unsafe.Pointer(pOut)) = int64((*TOp)(unsafe.Pointer(pOp)).Fp3 - int32(1)) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Int) @@ -142950,6 +143278,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* Most jump operations do a goto to this spot in order to update ** the pOp pointer. */ + goto jump_to_p2 jump_to_p2: ; /* There are never any jumps to instruction 0 */ @@ -142960,7 +143289,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** ** The instruction at the address in register P1 is a Yield. ** Jump to the P2 parameter of that Yield. - ** After the jump, register P1 becomes undefined. + ** After the jump, the value register P1 is left with a value + ** such that subsequent OP_Yields go back to the this same + ** OP_EndCoroutine instruction. ** ** See also: InitCoroutine */ @@ -142968,8 +143299,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 pCaller = aOp + uintptr(*(*Ti64)(unsafe.Pointer(pIn1)))*24 + *(*Ti64)(unsafe.Pointer(pIn1)) = int64(int32((int64(int64(pOp))-int64((*TVdbe)(unsafe.Pointer(p)).FaOp))/24) - int32(1)) pOp = aOp + uintptr((*TVdbeOp)(unsafe.Pointer(pCaller)).Fp2-int32(1))*24 - (*TMem)(unsafe.Pointer(pIn1)).Fflags = uint16(MEM_Undefined) goto _187 /* Opcode: Yield P1 P2 * * * ** @@ -143065,15 +143396,15 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TVdbe)(unsafe.Pointer(p)).FerrorAction = uint8((*TOp)(unsafe.Pointer(pOp)).Fp2) if (*TVdbe)(unsafe.Pointer(p)).Frc != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+6923, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) + _sqlite3VdbeError(tls, p, __ccgo_ts+6987, libc.VaList(bp+944, _azType[int32((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) if *(*uintptr)(unsafe.Pointer(pOp + 16)) != 0 { - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+6944, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+7008, libc.VaList(bp+944, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } } else { - _sqlite3VdbeError(tls, p, __ccgo_ts+4645, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+4709, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } pcx = int32((int64(int64(pOp)) - int64(int64(aOp))) / 24) - Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+6951, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) + Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+7015, libc.VaList(bp+944, pcx, (*TVdbe)(unsafe.Pointer(p)).FzSql, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg)) } rc = _sqlite3VdbeHalt(tls, p) if rc == int32(SQLITE_BUSY) { @@ -143264,13 +143595,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } (*TMem)(unsafe.Pointer(pOut)).Fenc = encoding goto _187 - /* Opcode: Variable P1 P2 * P4 * - ** Synopsis: r[P2]=parameter(P1,P4) + /* Opcode: Variable P1 P2 * * * + ** Synopsis: r[P2]=parameter(P1) ** ** Transfer the values of bound parameter P1 into register P2 - ** - ** If the parameter is named, then its name appears in P4. - ** The P4 value is used by sqlite3_bind_parameter_name(). */ _19: ; /* Value being transferred */ @@ -143561,6 +143889,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(int32(int32(type1))&int32(int32(type2))&int32(MEM_Int) != 0) { goto _200 } + goto int_math int_math: ; iA = *(*Ti64)(unsafe.Pointer(pIn1)) @@ -143613,6 +143942,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if int32(int32(type1))&int32(int32(type2))&int32(MEM_Int) != 0 { goto int_math } + goto fp_math fp_math: ; rA = _sqlite3VdbeRealValue(tls, pIn1) @@ -143652,6 +143982,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { _201: ; goto _187 + goto arithmetic_result_is_null arithmetic_result_is_null: ; _sqlite3VdbeMemSetNull(tls, pOut) @@ -143790,7 +144121,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** raise an SQLITE_MISMATCH exception. */ _38: - ; /* jump, in1 */ + ; /* jump0, in1 */ pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 if int32((*TMem)(unsafe.Pointer(pIn1)).Fflags)&int32(MEM_Int) == 0 { _applyAffinity(tls, pIn1, int8(SQLITE_AFF_NUMERIC), encoding) @@ -144519,6 +144850,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* PseudoTable input register */ pC3 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) p22 = uint32((*TOp)(unsafe.Pointer(pOp)).Fp2) + goto op_column_restart op_column_restart: ; aOffset = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaOffset @@ -144645,6 +144977,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { zData = (*TVdbeCursor)(unsafe.Pointer(pC3)).FaRow } /* Fill in pC->aType[i] and aOffset[i] values through the p2-th field. */ + goto op_column_read_header op_column_read_header: ; i1 = int32((*TVdbeCursor)(unsafe.Pointer(pC3)).FnHdrParsed) @@ -144782,16 +145115,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } } + goto op_column_out op_column_out: ; goto _187 + goto op_column_corrupt op_column_corrupt: ; if (*(*TOp)(unsafe.Pointer(aOp))).Fp3 > 0 { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(95863)) + rc = _sqlite3CorruptError(tls, int32(96311)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -144891,9 +145226,10 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { i2++ } goto _187 + goto vdbe_type_error vdbe_type_error: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+6975, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) + _sqlite3VdbeError(tls, p, __ccgo_ts+7039, libc.VaList(bp+944, _vdbeMemTypeName(tls, pIn1), _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(aCol + uintptr(i2)*16 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer(aCol + uintptr(i2)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(12)< 0 && p12 == int32(SAVEPOINT_RELEASE) { /* It is not possible to release (commit) a savepoint if there are ** active write statements. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+7089, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+7153, 0) rc = int32(SQLITE_BUSY) } else { /* Determine whether or not this is a transaction savepoint. If so, @@ -145489,7 +145825,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If this instruction implements a COMMIT and other VMs are writing ** return an error indicating that the other VMs must complete first. */ - _sqlite3VdbeError(tls, p, __ccgo_ts+7143, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+7207, 0) rc = int32(SQLITE_BUSY) goto abort_due_to_error } else { @@ -145519,12 +145855,12 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto vdbe_return } else { if !(desiredAutoCommit != 0) { - v250 = __ccgo_ts + 7198 + v250 = __ccgo_ts + 7262 } else { if iRollback != 0 { - v251 = __ccgo_ts + 7246 + v251 = __ccgo_ts + 7310 } else { - v251 = __ccgo_ts + 7289 + v251 = __ccgo_ts + 7353 } v250 = v251 } @@ -145616,7 +145952,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** SQL statement was prepared. */ _sqlite3DbFree(tls, db, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg) - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+7330) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+7394) /* If the schema-cookie from the database file matches the cookie ** stored with the in-memory representation of the schema, do ** not reload the schema from the database file. @@ -145854,6 +146190,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** and report database corruption if they were not, but this check has ** since moved into the btree layer. */ (*TVdbeCursor)(unsafe.Pointer(pCur)).FisTable = libc.BoolUint8(int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) != -int32(8)) + goto open_cursor_set_hints open_cursor_set_hints: ; _sqlite3BtreeCursorHintFlags(tls, *(*uintptr)(unsafe.Pointer(pCur + 48)), uint32(int32((*TOp)(unsafe.Pointer(pOp)).Fp5)&(libc.Int32FromInt32(OPFLAG_BULKCSR)|libc.Int32FromInt32(OPFLAG_SEEKEQ)))) @@ -145933,7 +146270,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** form sqlite3BtreeInsert() where the length of the data is zero. */ /* Only used when number of columns is zero */ (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fn = 0 - (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1658 + (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1672 } pCx1 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) if pCx1 != 0 && !(int32(TBool(*(*uint8)(unsafe.Pointer(pCx1 + 8))&0x8>>3)) != 0) && (*TOp)(unsafe.Pointer(pOp)).Fp2 <= int32((*TVdbeCursor)(unsafe.Pointer(pCx1)).FnField) { @@ -146038,7 +146375,8 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** is the only cursor opcode that works with a pseudo-table. ** ** P3 is the number of fields in the records that will be stored by - ** the pseudo-table. + ** the pseudo-table. If P2 is 0 or negative then the pseudo-cursor + ** will return NULL for every column. */ _83: ; @@ -146156,11 +146494,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** See also: Found, NotFound, SeekGt, SeekGe, SeekLt */ _88: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _87: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _86: - ; /* jump, in3, group, ncycle */ + ; /* jump0, in3, group, ncycle */ _85: ; /* Only interested in == results */ pC5 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) @@ -146290,6 +146628,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*int32)(unsafe.Pointer(bp + 112)) = _sqlite3BtreeEof(tls, *(*uintptr)(unsafe.Pointer(pC5 + 48))) } } + goto seek_not_found seek_not_found: ; if *(*int32)(unsafe.Pointer(bp + 112)) != 0 { @@ -146395,6 +146734,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !(*(*int32)(unsafe.Pointer(bp + 160)) > 0 && int32((*TOp)(unsafe.Pointer(pOp)).Fp5) == 0) { goto _259 } + goto seekscan_search_fail seekscan_search_fail: ; /* Jump to SeekGE.P2, ending the loop */ @@ -146705,6 +147045,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* jump, in3, ncycle */ pIn3 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 iKey1 = uint64(*(*Ti64)(unsafe.Pointer(pIn3))) + goto notExistsWithKey notExistsWithKey: ; pC10 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) @@ -146718,7 +147059,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TVdbeCursor)(unsafe.Pointer(pC10)).FseekResult = *(*int32)(unsafe.Pointer(bp + 248)) if *(*int32)(unsafe.Pointer(bp + 248)) != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp2 == 0 { - rc = _sqlite3CorruptError(tls, int32(98111)) + rc = _sqlite3CorruptError(tls, int32(98565)) } else { goto jump_to_p2 } @@ -147318,10 +147659,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } goto _187 - /* Opcode: IfSmaller P1 P2 P3 * * + /* Opcode: IfSizeBetween P1 P2 P3 P4 * ** - ** Estimate the number of rows in the table P1. Jump to P2 if that - ** estimate is less than approximately 2**(0.1*P3). + ** Let N be the approximate number of rows in the table or index + ** with cursor P1 and let X be 10*log2(N) if N is positive or -1 + ** if N is zero. + ** + ** Jump to P2 if X is in between P3 and P4, inclusive. */ _111: ; @@ -147331,12 +147675,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { goto abort_due_to_error } - if *(*int32)(unsafe.Pointer(bp + 396)) == 0 { + if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { + sz = int64(-int32(1)) /* -Infinity encoding */ + } else { sz = _sqlite3BtreeRowCountEst(tls, pCrsr5) - if sz >= 0 && int32(_sqlite3LogEst(tls, uint64(uint64(sz)))) < (*TOp)(unsafe.Pointer(pOp)).Fp3 { - *(*int32)(unsafe.Pointer(bp + 396)) = int32(1) - } + sz = int64(_sqlite3LogEst(tls, uint64(uint64(sz)))) } + *(*int32)(unsafe.Pointer(bp + 396)) = libc.BoolInt32(sz >= int64((*TOp)(unsafe.Pointer(pOp)).Fp3) && sz <= int64((*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) if *(*int32)(unsafe.Pointer(bp + 396)) != 0 { goto jump_to_p2 } @@ -147472,6 +147817,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* jump, ncycle */ pC22 = *(*uintptr)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).FapCsr + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*8)) rc = _sqlite3BtreeNext(tls, *(*uintptr)(unsafe.Pointer(pC22 + 48)), (*TOp)(unsafe.Pointer(pOp)).Fp3) + goto next_tail next_tail: ; (*TVdbeCursor)(unsafe.Pointer(pC22)).FcacheStatus = uint32(CACHE_STALE) @@ -147604,7 +147950,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } } else { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 && !(_sqlite3WritableSchema(tls, db) != 0) { - rc = _sqlite3ReportError(tls, libc.Int32FromInt32(SQLITE_CORRUPT)|libc.Int32FromInt32(3)< int64(0x7fffffff) { - rc = _sqlite3CorruptError(tls, int32(99398)) + rc = _sqlite3CorruptError(tls, int32(99862)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -147901,11 +148247,18 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } *(*Ti64)(unsafe.Pointer(pOut)) = int64(*(*TPgno)(unsafe.Pointer(bp + 624))) goto _187 - /* Opcode: SqlExec * * * P4 * + /* Opcode: SqlExec P1 P2 * P4 * ** ** Run the SQL statement or statements specified in the P4 string. - ** Disable Auth and Trace callbacks while those statements are running if - ** P1 is true. + ** + ** The P1 parameter is a bitmask of options: + ** + ** 0x0001 Disable Auth and Trace callbacks while the statements + ** in P4 are running. + ** + ** 0x0002 Set db->nAnalysisLimit to P2 while the statements in + ** P4 are running. + ** */ _132: ; @@ -147913,16 +148266,21 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*uintptr)(unsafe.Pointer(bp + 632)) = uintptr(0) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth mTrace = (*Tsqlite3)(unsafe.Pointer(db)).FmTrace - if (*TOp)(unsafe.Pointer(pOp)).Fp1 != 0 { + savedAnalysisLimit = (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0001) != 0 { (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(0) } + if (*TOp)(unsafe.Pointer(pOp)).Fp1&int32(0x0002) != 0 { + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = (*TOp)(unsafe.Pointer(pOp)).Fp2 + } rc = Xsqlite3_exec(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16)), uintptr(0), uintptr(0), bp+632) (*Tsqlite3)(unsafe.Pointer(db)).FnSqlExec-- (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = mTrace + (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit = savedAnalysisLimit if *(*uintptr)(unsafe.Pointer(bp + 632)) != 0 || rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+4645, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+4709, libc.VaList(bp+944, *(*uintptr)(unsafe.Pointer(bp + 632)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 632))) if rc == int32(SQLITE_NOMEM) { goto no_mem @@ -147953,13 +148311,13 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_SchemaChange) libc.SetBitFieldPtr16Uint32(p+200, libc.Uint32FromInt32(0), 0, 0x3) } else { - zSchema = __ccgo_ts + 7375 + zSchema = __ccgo_ts + 7439 (*(*TInitData)(unsafe.Pointer(bp + 640))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 640))).FiDb = iDb3 (*(*TInitData)(unsafe.Pointer(bp + 640))).FpzErrMsg = p + 168 (*(*TInitData)(unsafe.Pointer(bp + 640))).FmInitFlags = uint32(0) (*(*TInitData)(unsafe.Pointer(bp + 640))).FmxPage = _sqlite3BtreeLastPage(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+7389, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+7453, libc.VaList(bp+944, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -147974,7 +148332,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* The OP_ParseSchema opcode with a non-NULL P4 argument should parse ** at least one SQL statement. Any less than that indicates that ** the sqlite_schema table is corrupt. */ - rc = _sqlite3CorruptError(tls, int32(99678)) + rc = _sqlite3CorruptError(tls, int32(100155)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -148040,11 +148398,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* Opcode: IntegrityCk P1 P2 P3 P4 P5 ** ** Do an analysis of the currently open database. Store in - ** register P1 the text of an error message describing any problems. - ** If no problems are found, store a NULL in register P1. + ** register (P1+1) the text of an error message describing any problems. + ** If no problems are found, store a NULL in register (P1+1). ** - ** The register P3 contains one less than the maximum number of allowed errors. - ** At most reg(P3) errors will be reported. + ** The register (P1) contains one less than the maximum number of allowed + ** errors. At most reg(P1) errors will be reported. ** In other words, the analysis stops as soon as reg(P1) errors are ** seen. Reg(P1) is updated with the number of errors remaining. ** @@ -148060,9 +148418,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ; /* Register keeping track of errors remaining */ nRoot = (*TOp)(unsafe.Pointer(pOp)).Fp2 aRoot = *(*uintptr)(unsafe.Pointer(pOp + 16)) - pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 - pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 - rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) + pnErr = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1)*56 + pIn1 = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp1+int32(1))*56 + rc = _sqlite3BtreeIntegrityCheck(tls, db, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp5)*32))).FpBt, aRoot+1*4, aMem+uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56, nRoot, int32(*(*Ti64)(unsafe.Pointer(pnErr)))+int32(1), bp+680, bp+688) _sqlite3VdbeMemSetNull(tls, pIn1) if *(*int32)(unsafe.Pointer(bp + 680)) == 0 { } else { @@ -148168,7 +148526,9 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** P1 contains the address of the memory cell that contains the first memory ** cell in an array of values used as arguments to the sub-program. P2 ** contains the address to jump to if the sub-program throws an IGNORE - ** exception using the RAISE() function. Register P3 contains the address + ** exception using the RAISE() function. P2 might be zero, if there is + ** no possibility that an IGNORE exception will be raised. + ** Register P3 contains the address ** of a memory cell in this (the parent) VM that is used to allocate the ** memory required by the sub-vdbe at runtime. ** @@ -148209,7 +148569,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } if (*TVdbe)(unsafe.Pointer(p)).FnFrame >= *(*int32)(unsafe.Pointer(db + 136 + 10*4)) { rc = int32(SQLITE_ERROR) - _sqlite3VdbeError(tls, p, __ccgo_ts+7432, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+7496, 0) goto abort_due_to_error } /* Register pRt is used to store the memory required to save the state @@ -148572,7 +148932,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { } /* IMP: R-24505-23230 */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+4645, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+4709, libc.VaList(bp+944, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FisError } if (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FskipFlag != 0 { @@ -148628,7 +148988,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3VdbeMemFinalize(tls, pMem3, *(*uintptr)(unsafe.Pointer(pOp + 16))) } if rc != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+4645, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) + _sqlite3VdbeError(tls, p, __ccgo_ts+4709, libc.VaList(bp+944, Xsqlite3_value_text(tls, pMem3))) goto abort_due_to_error } _sqlite3VdbeChangeEncoding(tls, pMem3, int32(int32(encoding))) @@ -148707,11 +149067,11 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeRead > int32(1) { rc = int32(SQLITE_ERROR) if eNew == int32(PAGER_JOURNALMODE_WAL) { - v286 = __ccgo_ts + 7469 + v286 = __ccgo_ts + 7533 } else { - v286 = __ccgo_ts + 7474 + v286 = __ccgo_ts + 7538 } - _sqlite3VdbeError(tls, p, __ccgo_ts+7481, libc.VaList(bp+944, v286)) + _sqlite3VdbeError(tls, p, __ccgo_ts+7545, libc.VaList(bp+944, v286)) goto abort_due_to_error } else { if eOld == int32(PAGER_JOURNALMODE_WAL) { @@ -148864,7 +149224,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if rc != 0 { if rc&int32(0xFF) == int32(SQLITE_LOCKED) { z1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - _sqlite3VdbeError(tls, p, __ccgo_ts+7533, libc.VaList(bp+944, z1)) + _sqlite3VdbeError(tls, p, __ccgo_ts+7597, libc.VaList(bp+944, z1)) } goto abort_due_to_error } @@ -149026,7 +149386,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TValueList)(unsafe.Pointer(pRhs)).FpOut = aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56 pOut = _out2Prerelease(tls, p, pOp) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+7562, __ccgo_fp(_sqlite3VdbeValueListFree)) + _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+7626, __ccgo_fp(_sqlite3VdbeValueListFree)) goto _187 /* Opcode: VFilter P1 P2 P3 P4 * ** Synopsis: iplan=r[P3] zplan='P4' @@ -149122,7 +149482,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { rc = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_module)(unsafe.Pointer(pModule4)).FxColumn})))(tls, *(*uintptr)(unsafe.Pointer(pCur5 + 48)), bp+800, (*TOp)(unsafe.Pointer(pOp)).Fp2) _sqlite3VtabImportErrmsg(tls, p, pVtab4) if (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+4645, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) + _sqlite3VdbeError(tls, p, __ccgo_ts+4709, libc.VaList(bp+944, Xsqlite3_value_text(tls, pDest2))) rc = (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError } _sqlite3VdbeChangeEncoding(tls, pDest2, int32(int32(encoding))) @@ -149376,7 +149736,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If the function returned an error, throw an exception */ if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError != 0 { if (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError > 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+4645, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+4709, libc.VaList(bp+944, Xsqlite3_value_text(tls, pOut))) rc = (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FisError } _sqlite3VdbeDeleteAuxData(tls, db, p+296, (*Tsqlite3_context)(unsafe.Pointer(pCtx2)).FiOp, (*TOp)(unsafe.Pointer(pOp)).Fp1) @@ -149527,7 +149887,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { Xsqlite3_free(tls, z2) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeExec > int32(1) { - z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+7572, libc.VaList(bp+944, zTrace)) + z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+7636, libc.VaList(bp+944, zTrace)) (*(*func(*libc.TLS, Tu32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{*(*uintptr)(unsafe.Pointer(&(*Tsqlite3)(unsafe.Pointer(db)).Ftrace))})))(tls, uint32(SQLITE_TRACE_STMT), (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg, p, z3) _sqlite3DbFree(tls, db, z3) } else { @@ -149592,21 +149952,22 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { /* If we reach this point, it means that execution is finished with ** an error of some kind. */ + goto abort_due_to_error abort_due_to_error: ; if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)<= nProgressLimit && (*Tsqlite3)(unsafe.Pointer(db)).FxProgress != uintptr(0) { @@ -149641,22 +150003,25 @@ vdbe_return: /* Jump to here if a string or blob larger than SQLITE_MAX_LENGTH ** is encountered. */ + goto too_big too_big: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+6732, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6796, 0) rc = int32(SQLITE_TOOBIG) goto abort_due_to_error /* Jump to here if a malloc() fails. */ + goto no_mem no_mem: ; _sqlite3OomFault(tls, db) - _sqlite3VdbeError(tls, p, __ccgo_ts+1628, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+1642, 0) rc = int32(SQLITE_NOMEM) goto abort_due_to_error /* Jump to here if the sqlite3_interrupt() API sets the interrupt ** flag. */ + goto abort_due_to_interrupt abort_due_to_interrupt: ; rc = int32(SQLITE_INTERRUPT) @@ -149665,10 +150030,10 @@ abort_due_to_interrupt: } var _azType = [4]uintptr{ - 0: __ccgo_ts + 6889, - 1: __ccgo_ts + 6898, - 2: __ccgo_ts + 6905, - 3: __ccgo_ts + 6911, + 0: __ccgo_ts + 6953, + 1: __ccgo_ts + 6962, + 2: __ccgo_ts + 6969, + 3: __ccgo_ts + 6975, } var _and_logic = [9]uint8{ @@ -149819,16 +150184,16 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr type1 = v1 if type1 < uint32(12) { if type1 == uint32(0) { - v2 = __ccgo_ts + 1644 + v2 = __ccgo_ts + 1658 } else { if type1 == uint32(7) { - v3 = __ccgo_ts + 7610 + v3 = __ccgo_ts + 7674 } else { - v3 = __ccgo_ts + 7615 + v3 = __ccgo_ts + 7679 } v2 = v3 } - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+7623, libc.VaList(bp+8, v2)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+7687, libc.VaList(bp+8, v2)) rc = int32(SQLITE_ERROR) Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) @@ -149846,10 +150211,10 @@ func _blobSeekToRow(tls *libc.TLS, p uintptr, iRow Tsqlite3_int64, pzErr uintptr rc = Xsqlite3_finalize(tls, (*TIncrblob)(unsafe.Pointer(p)).FpStmt) (*TIncrblob)(unsafe.Pointer(p)).FpStmt = uintptr(0) if rc == SQLITE_OK { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+7652, libc.VaList(bp+8, iRow)) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+7716, libc.VaList(bp+8, iRow)) rc = int32(SQLITE_ERROR) } else { - zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+4645, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) + zErr = _sqlite3MPrintf(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb, __ccgo_ts+4709, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TIncrblob)(unsafe.Pointer(p)).Fdb))) } } } @@ -149889,15 +150254,15 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, pTab = _sqlite3LocateTable(tls, bp+8, uint32(0), zTable, zDb) if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+7672, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+7736, libc.VaList(bp+440, zTable)) } if pTab != 0 && !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+7702, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+7766, libc.VaList(bp+440, zTable)) } if pTab != 0 && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { pTab = uintptr(0) - _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+7738, libc.VaList(bp+440, zTable)) + _sqlite3ErrorMsg(tls, bp+8, __ccgo_ts+7802, libc.VaList(bp+440, zTable)) } if !(pTab != 0) { if (*(*TParse)(unsafe.Pointer(bp + 8))).FzErrMsg != 0 { @@ -149927,7 +150292,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+7759, libc.VaList(bp+440, zColumn)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+7823, libc.VaList(bp+440, zColumn)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -149953,7 +150318,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, break } if (*(*TsColMap)(unsafe.Pointer(pFKey + 64 + uintptr(j)*16))).FiFrom == iCol { - zFault = __ccgo_ts + 7780 + zFault = __ccgo_ts + 7844 } goto _3 _3: @@ -149978,7 +150343,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } /* FIXME: Be smarter about indexes that use expressions */ if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == iCol || int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j1)*2))) == -int32(2) { - zFault = __ccgo_ts + 7792 + zFault = __ccgo_ts + 7856 } goto _5 _5: @@ -149992,7 +150357,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } if zFault != 0 { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+7800, libc.VaList(bp+440, zFault)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+7864, libc.VaList(bp+440, zFault)) rc = int32(SQLITE_ERROR) _sqlite3BtreeLeaveAll(tls, db) goto blob_open_out @@ -150052,6 +150417,7 @@ func Xsqlite3_blob_open(tls *libc.TLS, db uintptr, zDb uintptr, zTable uintptr, } _sqlite3ParseObjectReset(tls, bp+8) } + goto blob_open_out blob_open_out: ; if rc == SQLITE_OK && int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { @@ -150063,7 +150429,7 @@ blob_open_out: _sqlite3DbFree(tls, db, pBlob) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v7 = __ccgo_ts + 4645 + v7 = __ccgo_ts + 4709 } else { v7 = libc.UintptrFromInt32(0) } @@ -150153,7 +150519,7 @@ func _blobReadWrite(tls *libc.TLS, pBlob uintptr, z uintptr, n int32, iOffset in _, _, _, _, _ = db, iKey, p, rc, v p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102190)) + return _sqlite3MisuseError(tls, int32(102671)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -150252,7 +150618,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r _, _, _, _ = db, p, rc, v1 p = pBlob if p == uintptr(0) { - return _sqlite3MisuseError(tls, int32(102290)) + return _sqlite3MisuseError(tls, int32(102771)) } db = (*TIncrblob)(unsafe.Pointer(p)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -150266,7 +150632,7 @@ func Xsqlite3_blob_reopen(tls *libc.TLS, pBlob uintptr, iRow Tsqlite3_int64) (r rc = _blobSeekToRow(tls, p, iRow, bp) if rc != SQLITE_OK { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v1 = __ccgo_ts + 4645 + v1 = __ccgo_ts + 4709 } else { v1 = libc.UintptrFromInt32(0) } @@ -154382,25 +154748,25 @@ func _extendFJMatch(tls *libc.TLS, pParse uintptr, ppList uintptr, pMatch uintpt func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema uintptr) (r int32) { var zLegacy uintptr _ = zLegacy - if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+7834, int32(7)) != 0 { + if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+7898, int32(7)) != 0 { return 0 } zLegacy = (*TTable)(unsafe.Pointer(pTab)).FzName - if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+7842+7) == 0 { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+7861+7) == 0 { + if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+7906+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+7925+7) == 0 { return int32(1) } if pSchema == uintptr(0) { return 0 } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+7375+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+7439+7) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+7880+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+7944+7) == 0 { return int32(1) } } else { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+7880+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+7944+7) == 0 { return int32(1) } } @@ -154436,26 +154802,27 @@ func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, pSchema // ** If the name cannot be resolved unambiguously, leave an error message // ** in pParse and return WRC_Abort. Return WRC_Prune on success. // */ -func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol uintptr, pNC uintptr, pExpr uintptr) (r int32) { +func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRight uintptr, pNC uintptr, pExpr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var cnt, cntTab, eNewExprOp, hit, i, iCol, j, nSubquery, op, v5 int32 - var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10 uintptr + var db, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10 uintptr var hCol, hCol1 Tu8 var v7, v8 uint32 var _ /* bRowid at bp+8 */ int32 var _ /* pFJMatch at bp+0 */ uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zErr, v10, v5, v7, v8 /* Loop counters */ - cnt = 0 /* Number of matching column names */ - cntTab = 0 /* Number of potential "rowid" matches */ - nSubquery = 0 /* How many levels of subquery */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ - pMatch = uintptr(0) /* The matching pSrcList item */ - pTopNC = pNC /* First namecontext in the list */ - pSchema = uintptr(0) /* Schema of the expression */ - eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ - pTab = uintptr(0) /* A column of pTab */ - *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = cnt, cntTab, db, eNewExprOp, hCol, hCol1, hit, i, iCol, j, nSubquery, op, pCol, pEList, pItem, pMatch, pOrig, pSchema, pSrcList, pTab, pTopNC, pUpsert, zAs, zCol, zErr, v10, v5, v7, v8 /* Loop counters */ + cnt = 0 /* Number of matching column names */ + cntTab = 0 /* Number of potential "rowid" matches */ + nSubquery = 0 /* How many levels of subquery */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Use for looping over pSrcList items */ + pMatch = uintptr(0) /* The matching pSrcList item */ + pTopNC = pNC /* First namecontext in the list */ + pSchema = uintptr(0) /* Schema of the expression */ + eNewExprOp = int32(TK_COLUMN) /* New value for pExpr->op on success */ + pTab = uintptr(0) /* A column of pTab */ + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Matches for FULL JOIN .. USING */ + zCol = *(*uintptr)(unsafe.Pointer(pRight + 8)) /* the name context cannot be NULL. */ /* The Z in X.Y.Z cannot be NULL */ /* Initialize the node to no-match */ @@ -154486,7 +154853,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ; i++ } - if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+7894, zDb) == 0 { + if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+7958, zDb) == 0 { /* This branch is taken when the main database has been renamed ** using SQLITE_DBCONFIG_MAINDBNAME. */ pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema @@ -154579,7 +154946,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TTable)(unsafe.Pointer(pTab)).FpSchema != pSchema { goto _2 } - if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+7899) != 0 { + if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+7963) != 0 { goto _2 } } @@ -154691,16 +155058,16 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != uintptr(0) { op = int32((*TParse)(unsafe.Pointer(pParse)).FeTriggerOp) if (*TParse)(unsafe.Pointer(pParse)).FbReturning != 0 { - if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0) { + if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UBaseReg) != 0 && (zTab == uintptr(0) || _sqlite3StrICmp(tls, zTab, (*TTable)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab)).FzName) == 0 || _isValidSchemaTableName(tls, zTab, (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab, uintptr(0)) != 0) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = libc.BoolInt32(op != int32(TK_DELETE)) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } } else { - if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+7901, zTab) == 0 { + if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+7965, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(1) pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } else { - if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+7905, zTab) == 0 { + if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+7969, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = 0 pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } @@ -154709,7 +155076,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_UUpsert) != 0 && zTab != uintptr(0) { pUpsert = *(*uintptr)(unsafe.Pointer(pNC + 16)) - if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+7909, zTab) == 0 { + if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+7973, zTab) == 0 { pTab = (*(*TSrcItem)(unsafe.Pointer((*TUpsert)(unsafe.Pointer(pUpsert)).FpUpsertSrc + 8))).FpTab (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(EXCLUDED_TABLE_NUMBER) } @@ -154825,15 +155192,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol if int32(uint32(*(*uint16)(unsafe.Pointer(pEList + 8 + uintptr(j)*32 + 16 + 4))&0x3>>0)) == ENAME_NAME && Xsqlite3_stricmp(tls, zAs, zCol) == 0 { pOrig = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(j)*32))).FpExpr if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 && (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7918, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7982, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if (*TExpr)(unsafe.Pointer(pOrig)).Fflags&uint32(libc.Int32FromInt32(EP_Win)) != uint32(0) && ((*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 || pNC != pTopNC) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7949, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8013, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if _sqlite3ExprVectorSize(tls, pOrig) != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7986, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8050, 0) return int32(WRC_Abort) } _resolveAlias(tls, pParse, pEList, j, pExpr, nSubquery) @@ -154885,7 +155252,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** a huge amount of legacy SQL that uses it. So for now, we just ** issue a warning. */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+8004, libc.VaList(bp+24, zCol)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+8068, libc.VaList(bp+24, zCol)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_STRING) libc.Xmemset(tls, pExpr+64, 0, uint64(8)) return int32(WRC_Prune) @@ -154914,7 +155281,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } _extendFJMatch(tls, pParse, bp, pMatch, (*TExpr)(unsafe.Pointer(pExpr)).FiColumn) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_FUNCTION) - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 8039 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 8103 *(*uintptr)(unsafe.Pointer(pExpr + 32)) = *(*uintptr)(unsafe.Pointer(bp)) cnt = int32(1) goto lookupname_end @@ -154924,18 +155291,22 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol } } if cnt == 0 { - v10 = __ccgo_ts + 8048 + v10 = __ccgo_ts + 8112 } else { - v10 = __ccgo_ts + 8063 + v10 = __ccgo_ts + 8127 } zErr = v10 if zDb != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8085, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8149, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) } else { if zTab != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8098, libc.VaList(bp+24, zErr, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8162, libc.VaList(bp+24, zErr, zTab, zCol)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8108, libc.VaList(bp+24, zErr, zCol)) + if cnt == 0 && (*TExpr)(unsafe.Pointer(pRight)).Fflags&uint32(libc.Int32FromInt32(EP_DblQuoted)) != uint32(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8172, libc.VaList(bp+24, zErr, zCol)) + } else { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8233, libc.VaList(bp+24, zErr, zCol)) + } } } _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -154965,10 +155336,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zCol ** If a generated column is referenced, set bits for every column ** of the table. */ - if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 && cnt == int32(1) && pMatch != uintptr(0) { - *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + if pMatch != 0 { + if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { + *(*TBitmask)(unsafe.Pointer(pMatch + 80)) |= _sqlite3ExprColUsed(tls, pExpr) + } else { + libc.SetBitFieldPtr16Uint32(pMatch+60+4, libc.Uint32FromInt32(1), 14, 0x4000) + } } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(uint8(eNewExprOp)) + goto lookupname_end lookupname_end: ; if cnt == int32(1) { @@ -155058,19 +155434,19 @@ func _notValidImpl(tls *libc.TLS, pParse uintptr, pNC uintptr, zMsg uintptr, pEx defer tls.Free(32) var zIn uintptr _ = zIn - zIn = __ccgo_ts + 8115 + zIn = __ccgo_ts + 8240 if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IdxExpr) != 0 { - zIn = __ccgo_ts + 8143 + zIn = __ccgo_ts + 8268 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IsCheck) != 0 { - zIn = __ccgo_ts + 8161 + zIn = __ccgo_ts + 8286 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_GenCol) != 0 { - zIn = __ccgo_ts + 8179 + zIn = __ccgo_ts + 8304 } } } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8197, libc.VaList(bp+8, zMsg, zIn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8322, libc.VaList(bp+8, zMsg, zIn)) if pExpr != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } @@ -155118,8 +155494,8 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { var anRef [8]int32 var auth, i, is_agg, n, nLeft, nRef, nRight, no_such_func, rc, savedAllowFlags, wrong_num_args, v12, v4, v6, v7 int32 var enc Tu8 - var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zColumn, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zColumn, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 + var p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, zDb, zId, zTable, zType, v5, v8, p10, p11, p9 uintptr + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = anRef, auth, enc, i, is_agg, n, nLeft, nRef, nRight, no_such_func, p, pDef, pItem, pLeft, pList, pNC, pNC2, pParse, pRight, pRight1, pSel, pSrcList, pWin, rc, savedAllowFlags, wrong_num_args, zDb, zId, zTable, zType, v12, v4, v5, v6, v7, v8, p10, p11, p9 pNC = *(*uintptr)(unsafe.Pointer(pWalker + 40)) pParse = (*TNameContext)(unsafe.Pointer(pNC)).FpParse switch int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) { @@ -155238,11 +155614,11 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_ID) { zDb = uintptr(0) zTable = uintptr(0) - zColumn = *(*uintptr)(unsafe.Pointer(pExpr + 8)) + pRight = pExpr } else { pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+8217, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+8342, uintptr(0), pExpr) } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_ID) { @@ -155253,13 +155629,12 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { pRight = (*TExpr)(unsafe.Pointer(pRight)).FpRight } zTable = *(*uintptr)(unsafe.Pointer(pLeft + 8)) - zColumn = *(*uintptr)(unsafe.Pointer(pRight + 8)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameTokenRemap(tls, pParse, pExpr, pRight) _sqlite3RenameTokenRemap(tls, pParse, pExpr+64, pLeft) } } - return _lookupName(tls, pParse, zDb, zTable, zColumn, pNC, pExpr) + return _lookupName(tls, pParse, zDb, zTable, pRight, pNC, pExpr) /* Resolve function names */ fallthrough @@ -155298,7 +155673,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if n == int32(2) { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = _exprProbability(tls, (*(*TExprList_item)(unsafe.Pointer(pList + 8 + 1*32))).FpExpr) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8234, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8359, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } } else { @@ -155322,7 +155697,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { auth = _sqlite3AuthCheck(tls, pParse, int32(SQLITE_FUNCTION), uintptr(0), (*TFuncDef)(unsafe.Pointer(pDef)).FzName, uintptr(0)) if auth != SQLITE_OK { if auth == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8298, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8423, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) @@ -155343,7 +155718,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { ** in a CHECK constraint. SQLServer, MySQL, and PostgreSQL all ** all this. */ if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+8334, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+8459, uintptr(0), pExpr) } } else { /* Must fit in 8 bits */ @@ -155367,29 +155742,29 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { } if 0 == libc.BoolInt32(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME)) { if pDef != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FxValue == uintptr(0) && pWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8362, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8487, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowAgg) == 0 || is_agg != 0 && (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 && !(pWin != 0) || is_agg != 0 && pWin != 0 && (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 { if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 || pWin != 0 { - zType = __ccgo_ts + 8405 + zType = __ccgo_ts + 8530 } else { - zType = __ccgo_ts + 8412 + zType = __ccgo_ts + 8537 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8422, libc.VaList(bp+8, zType, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8547, libc.VaList(bp+8, zType, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ is_agg = 0 } else { if no_such_func != 0 && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8450, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8575, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if wrong_num_args != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8472, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8597, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8516, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8641, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { @@ -155413,7 +155788,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { *(*int32)(unsafe.Pointer(pNC + 40)) &= ^(libc.Int32FromInt32(NC_AllowWin) | v7) } } else { - if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { is_agg = int32(1) } } @@ -155474,18 +155849,19 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) { nRef = (*TNameContext)(unsafe.Pointer(pNC)).FnRef if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_SelfRef) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+8564, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+8689, pExpr, pExpr) } else { _sqlite3WalkSelect(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 32))) } if nRef != (*TNameContext)(unsafe.Pointer(pNC)).FnRef { *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 4)) |= uint32(SF_Correlated) } *(*int32)(unsafe.Pointer(pNC + 40)) |= int32(NC_Subquery) } case int32(TK_VARIABLE): if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&(libc.Int32FromInt32(NC_IsCheck)|libc.Int32FromInt32(NC_PartIdx)|libc.Int32FromInt32(NC_IdxExpr)|libc.Int32FromInt32(NC_GenCol)) != 0 { - _notValidImpl(tls, pParse, pNC, __ccgo_ts+8575, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+8700, pExpr, pExpr) } case int32(TK_IS): fallthrough @@ -155531,7 +155907,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { nRight = _sqlite3ExprVectorSize(tls, (*TExpr)(unsafe.Pointer(pExpr)).FpRight) } if nLeft != nRight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7986, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8050, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } break @@ -155656,7 +156032,7 @@ func _resolveOrderByTermToExprList(tls *libc.TLS, pParse uintptr, pSelect uintpt func _resolveOutOfRangeError(tls *libc.TLS, pParse uintptr, zType uintptr, i int32, mx int32, pError uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8586, libc.VaList(bp+8, i, zType, mx)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8711, libc.VaList(bp+8, i, zType, mx)) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pError) } @@ -155691,7 +156067,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8642, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8767, 0) return int32(1) } i = 0 @@ -155729,7 +156105,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } if _sqlite3ExprIsInteger(tls, pE, bp) != 0 { if *(*int32)(unsafe.Pointer(bp)) <= 0 || *(*int32)(unsafe.Pointer(bp)) > (*TExprList)(unsafe.Pointer(pEList)).FnExpr { - _resolveOutOfRangeError(tls, pParse, __ccgo_ts+8676, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) + _resolveOutOfRangeError(tls, pParse, __ccgo_ts+8801, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) return int32(1) } } else { @@ -155799,7 +156175,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r break } if int32(uint32(*(*uint16)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32 + 16 + 4))&0x4>>2)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8682, libc.VaList(bp+16, i+int32(1))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8807, libc.VaList(bp+16, i+int32(1))) return int32(1) } goto _3 @@ -155833,7 +156209,7 @@ func _sqlite3ResolveOrderGroupBy(tls *libc.TLS, pParse uintptr, pSelect uintptr, return 0 } if (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8743, libc.VaList(bp+8, zType)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8868, libc.VaList(bp+8, zType)) return int32(1) } pEList = (*TSelect)(unsafe.Pointer(pSelect)).FpEList @@ -156079,6 +156455,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } pItem = (*TSelect)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*104 + /* Test of tag-20240424-1*/ if (*TSrcItem)(unsafe.Pointer(pItem)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FselFlags&uint32(SF_Resolved) == uint32(0) { if pOuterNC != 0 { v3 = (*TNameContext)(unsafe.Pointer(pOuterNC)).FnRef @@ -156145,7 +156522,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { (*(*TNameContext)(unsafe.Pointer(bp))).FncFlags |= int32(NC_UEList) if (*TSelect)(unsafe.Pointer(p)).FpHaving != 0 { if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Aggregate) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8774, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8899, 0) return int32(WRC_Abort) } if _sqlite3ResolveExprNames(tls, bp, (*TSelect)(unsafe.Pointer(p)).FpHaving) != 0 { @@ -156212,7 +156589,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** is not detected until much later, and so we need to go ahead and ** resolve those symbols on the incorrect ORDER BY for consistency. */ - if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+8676) != 0 { + if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+8801) != 0 { return int32(WRC_Abort) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -156223,7 +156600,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { ** the GROUP BY clause does not contain aggregate functions. */ if pGroupBy != 0 { - if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+8813) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { + if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+8938) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(WRC_Abort) } i = 0 @@ -156233,7 +156610,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } if (*TExpr)(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(pItem2)).FpExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8819, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8944, 0) return int32(WRC_Abort) } goto _6 @@ -157214,7 +157591,7 @@ func _codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32 return } if nLeft != _sqlite3ExprVectorSize(tls, pRight) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7986, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8050, 0) return } if int32(int32(op)) == int32(TK_LE) { @@ -157293,7 +157670,7 @@ func _sqlite3ExprCheckHeight(tls *libc.TLS, pParse uintptr, nHeight int32) (r in rc = SQLITE_OK mxHeight = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 3*4)) if nHeight > mxHeight { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8878, libc.VaList(bp+8, mxHeight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9003, libc.VaList(bp+8, mxHeight)) rc = int32(SQLITE_ERROR) } return rc @@ -157459,11 +157836,12 @@ func _sqlite3ExprSetErrorOffset(tls *libc.TLS, pExpr uintptr, iOfst int32) { // ** appear to be quoted. If the quotes were of the form "..." (double-quotes) // ** then the EP_DblQuoted flag is set on the expression node. // ** -// ** Special case: If op==TK_INTEGER and pToken points to a string that -// ** can be translated into a 32-bit integer, then the token is not -// ** stored in u.zToken. Instead, the integer values is written -// ** into u.iValue and the EP_IntValue flag is set. No extra storage +// ** Special case (tag-20240227-a): If op==TK_INTEGER and pToken points to +// ** a string that can be translated into a 32-bit integer, then the token is +// ** not stored in u.zToken. Instead, the integer values is written +// ** into u.iValue and the EP_IntValue flag is set. No extra storage // ** is allocated to hold the integer text and the dequote flag is ignored. +// ** See also tag-20240227-b. // */ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequote int32) (r uintptr) { bp := tls.Alloc(16) @@ -157476,7 +157854,7 @@ func _sqlite3ExprAlloc(tls *libc.TLS, db uintptr, op int32, pToken uintptr, dequ *(*int32)(unsafe.Pointer(bp)) = 0 if pToken != 0 { if op != int32(TK_INTEGER) || (*TToken)(unsafe.Pointer(pToken)).Fz == uintptr(0) || _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pToken)).Fz, bp) == 0 { - nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) + nExtra = int32((*TToken)(unsafe.Pointer(pToken)).Fn + uint32(1)) /* tag-20240227-a */ } } pNew = _sqlite3DbMallocRawNN(tls, db, uint64(72)+uint64(uint64(nExtra))) @@ -157637,11 +158015,11 @@ func _sqlite3ExprListToValues(tls *libc.TLS, pParse uintptr, nElem int32, pEList } if nExprElem != nElem { if nExprElem > int32(1) { - v2 = __ccgo_ts + 8926 + v2 = __ccgo_ts + 9051 } else { - v2 = __ccgo_ts + 1658 + v2 = __ccgo_ts + 1672 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8928, libc.VaList(bp+8, nExprElem, v2, nElem)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9053, libc.VaList(bp+8, nExprElem, v2, nElem)) break } pSel = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(pExpr + 32)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) @@ -157690,7 +158068,7 @@ func _sqlite3ExprAnd(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintpt if f&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_InnerON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { _sqlite3ExprDeferredDelete(tls, pParse, pLeft) _sqlite3ExprDeferredDelete(tls, pParse, pRight) - return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1732) + return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1792) } else { return _sqlite3PExpr(tls, pParse, int32(TK_AND), pLeft, pRight) } @@ -157718,7 +158096,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u } *(*int32)(unsafe.Pointer(pNew + 52)) = int32(int64((*TToken)(unsafe.Pointer(pToken)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) if pList != 0 && (*TExprList)(unsafe.Pointer(pList)).FnExpr > *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 6*4)) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8972, libc.VaList(bp+8, pToken)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9097, libc.VaList(bp+8, pToken)) } *(*uintptr)(unsafe.Pointer(pNew + 32)) = pList *(*Tu32)(unsafe.Pointer(pNew + 4)) |= uint32(libc.Int32FromInt32(EP_HasFunc)) @@ -157738,7 +158116,7 @@ func _sqlite3ExprFunction(tls *libc.TLS, pParse uintptr, pList uintptr, pToken u func _sqlite3ExprOrderByAggregateError(tls *libc.TLS, pParse uintptr, p uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9006, libc.VaList(bp+8, p)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9131, libc.VaList(bp+8, p)) } // C documentation @@ -157809,7 +158187,7 @@ func _sqlite3ExprFunctionUsable(tls *libc.TLS, pParse uintptr, pExpr uintptr, pD ** SQLITE_DBCONFIG_TRUSTED_SCHEMA is off (meaning ** that the schema is possibly tainted). */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9056, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9181, libc.VaList(bp+8, pExpr)) } } } @@ -157861,7 +158239,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n bOk = libc.BoolInt32(0 == _sqlite3Atoi64(tls, z+1, bp, int32(n-uint32(1)), uint8(SQLITE_UTF8))) } if bOk == 0 || *(*Ti64)(unsafe.Pointer(bp)) < int64(1) || *(*Ti64)(unsafe.Pointer(bp)) > int64(*(*int32)(unsafe.Pointer(db + 136 + 9*4))) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9076, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9201, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) return } @@ -157894,7 +158272,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n } (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = x if int32(int32(x)) > *(*int32)(unsafe.Pointer(db + 136 + 9*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9119, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9244, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } } @@ -157905,11 +158283,13 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n // ** Recursively delete an expression tree. // */ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { + var pLeft uintptr + _ = pLeft + goto exprDeleteRestart +exprDeleteRestart: + ; if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)|libc.Int32FromInt32(EP_Leaf)) != libc.Uint32FromInt32(0)) { /* The Expr.x union is never used at the same time as Expr.pRight */ - if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { - _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpLeft) - } if (*TExpr)(unsafe.Pointer(p)).FpRight != 0 { _sqlite3ExprDeleteNN(tls, db, (*TExpr)(unsafe.Pointer(p)).FpRight) } else { @@ -157922,6 +158302,17 @@ func _sqlite3ExprDeleteNN(tls *libc.TLS, db uintptr, p uintptr) { } } } + if (*TExpr)(unsafe.Pointer(p)).FpLeft != 0 && int32((*TExpr)(unsafe.Pointer(p)).Fop) != int32(TK_SELECT_COLUMN) { + pLeft = (*TExpr)(unsafe.Pointer(p)).FpLeft + if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) && !((*TExpr)(unsafe.Pointer(pLeft)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { + /* Avoid unnecessary recursion on unary operators */ + _sqlite3DbNNFreeNN(tls, db, p) + p = pLeft + goto exprDeleteRestart + } else { + _sqlite3ExprDeleteNN(tls, db, pLeft) + } + } } if !((*TExpr)(unsafe.Pointer(p)).Fflags&uint32(libc.Int32FromInt32(EP_Static)) != libc.Uint32FromInt32(0)) { _sqlite3DbNNFreeNN(tls, db, p) @@ -157968,11 +158359,11 @@ func _sqlite3ClearOnOrUsing(tls *libc.TLS, db uintptr, p uintptr) { // ** // ** The pExpr might be deleted immediately on an OOM error. // ** -// ** The deferred delete is (currently) implemented by adding the -// ** pExpr to the pParse->pConstExpr list with a register number of 0. +// ** Return 0 if the delete was successfully deferred. Return non-zero +// ** if the delete happened immediately because of an OOM. // */ -func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) { - _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr) +func _sqlite3ExprDeferredDelete(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + return libc.BoolInt32(uintptr(0) == _sqlite3ParserAddCleanup(tls, pParse, __ccgo_fp(_sqlite3ExprDeleteGeneric), pExpr)) } // C documentation @@ -158461,16 +158852,20 @@ func _sqlite3SrcListDup(tls *libc.TLS, db uintptr, p uintptr, flags int32) (r ui (*TSrcItem)(unsafe.Pointer(pNewItem)).FiCursor = (*TSrcItem)(unsafe.Pointer(pOldItem)).FiCursor (*TSrcItem)(unsafe.Pointer(pNewItem)).FaddrFillSub = (*TSrcItem)(unsafe.Pointer(pOldItem)).FaddrFillSub (*TSrcItem)(unsafe.Pointer(pNewItem)).FregReturn = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregReturn + (*TSrcItem)(unsafe.Pointer(pNewItem)).FregResult = (*TSrcItem)(unsafe.Pointer(pOldItem)).FregResult if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x2>>1)) != 0 { *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3DbStrDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88))) + } else { + if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { + *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) + } else { + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pNewItem)).Fu1)) = *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pOldItem)).Fu1)) + } } (*TSrcItem)(unsafe.Pointer(pNewItem)).Fu2 = (*TSrcItem)(unsafe.Pointer(pOldItem)).Fu2 if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x100>>8)) != 0 { (*TCteUse)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pNewItem + 96)))).FnUse++ } - if int32(uint32(*(*uint16)(unsafe.Pointer(pNewItem + 60 + 4))&0x4>>2)) != 0 { - *(*uintptr)(unsafe.Pointer(pNewItem + 88)) = _sqlite3ExprListDup(tls, db, *(*uintptr)(unsafe.Pointer(pOldItem + 88)), flags) - } v4 = (*TSrcItem)(unsafe.Pointer(pOldItem)).FpTab (*TSrcItem)(unsafe.Pointer(pNewItem)).FpTab = v4 pTab = v4 @@ -158732,7 +159127,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, n = v2 } if v3 && (*TIdList)(unsafe.Pointer(pColumns)).FnId != v2 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9142, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9267, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) goto vector_append_error } i = 0 @@ -158764,6 +159159,7 @@ func _sqlite3ExprListAppendVector(tls *libc.TLS, pParse uintptr, pList uintptr, ** the RHS and LHS sizes match during code generation. */ (*TExpr)(unsafe.Pointer(pFirst)).FiTable = (*TIdList)(unsafe.Pointer(pColumns)).FnId } + goto vector_append_error vector_append_error: ; _sqlite3ExprUnmapAndDelete(tls, pParse, pExpr) @@ -158860,7 +159256,7 @@ func _sqlite3ExprListCheckLength(tls *libc.TLS, pParse uintptr, pEList uintptr, _ = mx mx = *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136 + 2*4)) if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr > mx { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9172, libc.VaList(bp+8, zObject)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9297, libc.VaList(bp+8, zObject)) } } @@ -158958,10 +159354,10 @@ func _sqlite3SelectWalkFail(tls *libc.TLS, pWalker uintptr, NotUsed uintptr) (r // ** anything else 0 // */ func _sqlite3IsTrueOrFalse(tls *libc.TLS, zIn uintptr) (r Tu32) { - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+9195) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+9320) == 0 { return uint32(EP_IsTrue) } - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+9200) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+9325) == 0 { return uint32(EP_IsFalse) } return uint32(0) @@ -159043,6 +159439,51 @@ func _sqlite3ExprSimplifiedAndOr(tls *libc.TLS, pExpr uintptr) (r uintptr) { return pExpr } +// C documentation +// +// /* +// ** pExpr is a TK_FUNCTION node. Try to determine whether or not the +// ** function is a constant function. A function is constant if all of +// ** the following are true: +// ** +// ** (1) It is a scalar function (not an aggregate or window function) +// ** (2) It has either the SQLITE_FUNC_CONSTANT or SQLITE_FUNC_SLOCHNG +// ** property. +// ** (3) All of its arguments are constants +// ** +// ** This routine sets pWalker->eCode to 0 if pExpr is not a constant. +// ** It makes no changes to pWalker->eCode if pExpr is constant. In +// ** every case, it returns WRC_Abort. +// ** +// ** Called as a service subroutine from exprNodeIsConstant(). +// */ +func _exprNodeIsConstantFunction(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef, pList, v1 uintptr + var n int32 + var v2 bool + _, _, _, _, _, _ = db, n, pDef, pList, v1, v2 /* The database */ + if v2 = (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_TokenOnly)) != uint32(0); !v2 { + v1 = *(*uintptr)(unsafe.Pointer(pExpr + 32)) + pList = v1 + } + if v2 || v1 == uintptr(0) { + n = 0 + } else { + n = (*TExprList)(unsafe.Pointer(pList)).FnExpr + _sqlite3WalkExprList(tls, pWalker, pList) + if int32((*TWalker)(unsafe.Pointer(pWalker)).FeCode) == 0 { + return int32(WRC_Abort) + } + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)|libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG)) == uint32(0) || (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) +} + // C documentation // // /* @@ -159090,8 +159531,12 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 } return WRC_Continue } else { - (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) - return int32(WRC_Abort) + if (*TWalker)(unsafe.Pointer(pWalker)).FpParse != 0 { + return _exprNodeIsConstantFunction(tls, pWalker, pExpr) + } else { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } } fallthrough case int32(TK_ID): @@ -159118,6 +159563,8 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 case int32(TK_REGISTER): fallthrough case int32(TK_DOT): + fallthrough + case int32(TK_RAISE): (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) return int32(WRC_Abort) case int32(TK_VARIABLE): @@ -159143,14 +159590,14 @@ func _exprNodeIsConstant(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32 return r } -func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32) { +func _exprIsConst(tls *libc.TLS, pParse uintptr, p uintptr, initFlag int32) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* w at bp+0 */ TWalker (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(uint16(initFlag)) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) - *(*int32)(unsafe.Pointer(bp + 40)) = iCur _sqlite3WalkExpr(tls, bp, p) return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } @@ -159164,9 +159611,15 @@ func _exprIsConst(tls *libc.TLS, p uintptr, initFlag int32, iCur int32) (r int32 // ** For the purposes of this function, a double-quoted string (ex: "abc") // ** is considered a variable but a single-quoted string (ex: 'abc') is // ** a constant. +// ** +// ** The pParse parameter may be NULL. But if it is NULL, there is no way +// ** to determine if function calls are constant or not, and hence all +// ** function calls will be considered to be non-constant. If pParse is +// ** not NULL, then a function call might be constant, depending on the +// ** function and on its parameters. // */ -func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(1), 0) +func _sqlite3ExprIsConstant(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(1)) } // C documentation @@ -159184,8 +159637,24 @@ func _sqlite3ExprIsConstant(tls *libc.TLS, p uintptr) (r int32) { // ** can be added to the pParse->pConstExpr list and evaluated once when // ** the prepared statement starts up. See sqlite3ExprCodeRunJustOnce(). // */ -func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { - return _exprIsConst(tls, p, int32(2), 0) +func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { + return _exprIsConst(tls, pParse, p, int32(2)) +} + +// C documentation +// +// /* +// ** This routine examines sub-SELECT statements as an expression is being +// ** walked as part of sqlite3ExprIsTableConstant(). Sub-SELECTs are considered +// ** constant as long as they are uncorrelated - meaning that they do not +// ** contain any terms from outer contexts. +// */ +func _exprSelectWalkTableConstant(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + if (*TSelect)(unsafe.Pointer(pSelect)).FselFlags&uint32(SF_Correlated) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(0) + return int32(WRC_Abort) + } + return int32(WRC_Prune) } // C documentation @@ -159195,9 +159664,25 @@ func _sqlite3ExprIsConstantNotJoin(tls *libc.TLS, p uintptr) (r int32) { // ** for any single row of the table with cursor iCur. In other words, the // ** expression must not refer to any non-deterministic function nor any // ** table other than iCur. +// ** +// ** Consider uncorrelated subqueries to be constants if the bAllowSubq +// ** parameter is true. // */ -func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) { - return _exprIsConst(tls, p, int32(3), iCur) +func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32, bAllowSubq int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + (*(*TWalker)(unsafe.Pointer(bp))).FeCode = uint16(3) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = uintptr(0) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeIsConstant) + if bAllowSubq != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_exprSelectWalkTableConstant) + } else { + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkFail) + } + *(*int32)(unsafe.Pointer(bp + 40)) = iCur + _sqlite3WalkExpr(tls, bp, p) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) } // C documentation @@ -159217,7 +159702,10 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** // ** (1) pExpr cannot refer to any table other than pSrc->iCursor. // ** -// ** (2) pExpr cannot use subqueries or non-deterministic functions. +// ** (2a) pExpr cannot use subqueries unless the bAllowSubq parameter is +// ** true and the subquery is non-correlated +// ** +// ** (2b) pExpr cannot use non-deterministic functions. // ** // ** (3) pSrc cannot be part of the left operand for a RIGHT JOIN. // ** (Is there some way to relax this constraint?) @@ -159243,7 +159731,7 @@ func _sqlite3ExprIsTableConstant(tls *libc.TLS, p uintptr, iCur int32) (r int32) // ** which leads to incorrect answers. See also restriction (9) // ** on push-down. // */ -func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32) (r int32) { +func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList uintptr, iSrc int32, bAllowSubq int32) (r int32) { var jj int32 var pSrc uintptr _, _ = jj, pSrc @@ -159281,7 +159769,8 @@ func _sqlite3ExprIsSingleTableConstraint(tls *libc.TLS, pExpr uintptr, pSrcList jj++ } } - return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor) /* rules (1), (2) */ + /* Rules (1), (2a), and (2b) handled by the following: */ + return _sqlite3ExprIsTableConstant(tls, pExpr, (*TSrcItem)(unsafe.Pointer(pSrc)).FiCursor, bAllowSubq) } // C documentation @@ -159379,7 +159868,7 @@ func _sqlite3ExprIsConstantOrGroupBy(tls *libc.TLS, pParse uintptr, p uintptr, p // ** a constant. // */ func _sqlite3ExprIsConstantOrFunction(tls *libc.TLS, p uintptr, isInit Tu8) (r int32) { - return _exprIsConst(tls, p, int32(4)+int32(int32(isInit)), 0) + return _exprIsConst(tls, uintptr(0), p, int32(4)+int32(int32(isInit))) } // C documentation @@ -159518,13 +160007,13 @@ func _sqlite3ExprNeedsNoAffinityChange(tls *libc.TLS, p uintptr, aff int8) (r in // ** Return TRUE if the given string is a row-id column name. // */ func _sqlite3IsRowid(tls *libc.TLS, z uintptr) (r int32) { - if _sqlite3StrICmp(tls, z, __ccgo_ts+9206) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+9331) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+9214) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+9339) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+9220) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+9345) == 0 { return int32(1) } return 0 @@ -159542,9 +160031,9 @@ func _sqlite3RowidAlias(tls *libc.TLS, pTab uintptr) (r uintptr) { var iCol, ii int32 _, _, _ = azOpt, iCol, ii azOpt = [3]uintptr{ - 0: __ccgo_ts + 9206, - 1: __ccgo_ts + 9214, - 2: __ccgo_ts + 9220, + 0: __ccgo_ts + 9331, + 1: __ccgo_ts + 9339, + 2: __ccgo_ts + 9345, } ii = 0 for { @@ -159664,13 +160153,13 @@ func _sqlite3SetHasNullFlag(tls *libc.TLS, v uintptr, iCur int32, regHasNull int // ** The argument is an IN operator with a list (not a subquery) on the // ** right-hand side. Return TRUE if that list is constant. // */ -func _sqlite3InRhsIsConstant(tls *libc.TLS, pIn uintptr) (r int32) { +func _sqlite3InRhsIsConstant(tls *libc.TLS, pParse uintptr, pIn uintptr) (r int32) { var pLHS uintptr var res int32 _, _ = pLHS, res pLHS = (*TExpr)(unsafe.Pointer(pIn)).FpLeft (*TExpr)(unsafe.Pointer(pIn)).FpLeft = uintptr(0) - res = _sqlite3ExprIsConstant(tls, pIn) + res = _sqlite3ExprIsConstant(tls, pParse, pIn) (*TExpr)(unsafe.Pointer(pIn)).FpLeft = pLHS return res } @@ -159826,7 +160315,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 iAddr = _sqlite3VdbeAddOp0(tls, v, int32(OP_Once)) _sqlite3OpenTable(tls, pParse, iTab, iDb, pTab, int32(OP_OpenRead)) eType = int32(IN_INDEX_ROWID) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+9224, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+9349, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) _sqlite3VdbeJumpHere(tls, v, iAddr) } else { /* Iterator variable */ affinity_ok = int32(1) @@ -159926,7 +160415,7 @@ func _sqlite3FindInIndex(tls *libc.TLS, pParse uintptr, pX uintptr, inFlags Tu32 if colUsed == libc.Uint64FromInt32(1)<0 so that the new limit is either 1 or 0 */ db = (*TParse)(unsafe.Pointer(pParse)).Fdb - pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1732) + pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1792) if pLimit != 0 { (*TExpr)(unsafe.Pointer(pLimit)).FaffExpr = int8(SQLITE_AFF_NUMERIC) pLimit = _sqlite3PExpr(tls, pParse, int32(TK_NE), _sqlite3ExprDup(tls, db, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft, 0), pLimit) @@ -160417,7 +160906,7 @@ func _sqlite3CodeSubselect(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int3 (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSel)).FpLimit)).FpLeft = pLimit } else { /* If there is no pre-existing limit add a limit of 1 */ - pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+9439) + pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+9564) (*TSelect)(unsafe.Pointer(pSel)).FpLimit = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), pLimit, uintptr(0)) } (*TSelect)(unsafe.Pointer(pSel)).FiLimit = 0 @@ -160740,11 +161229,13 @@ func _sqlite3ExprCodeIN(tls *libc.TLS, pParse uintptr, pExpr uintptr, destIfFals } /* Jumps here in order to return true. */ _sqlite3VdbeJumpHere(tls, v, addrTruthOp) + goto sqlite3ExprCodeIN_finished sqlite3ExprCodeIN_finished: ; if rLhs != rLhsOrig { _sqlite3ReleaseTempReg(tls, pParse, rLhs) } + goto sqlite3ExprCodeIN_oom_error sqlite3ExprCodeIN_oom_error: ; _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiMap) @@ -160802,13 +161293,13 @@ func _codeInteger(tls *libc.TLS, pParse uintptr, pExpr uintptr, negFlag int32, i z = *(*uintptr)(unsafe.Pointer(pExpr + 8)) c = _sqlite3DecOrHexToI64(tls, z, bp) if c == int32(3) && !(negFlag != 0) || c == int32(2) || negFlag != 0 && *(*Ti64)(unsafe.Pointer(bp)) == int64(-libc.Int32FromInt32(1))-(libc.Int64FromUint32(0xffffffff)|libc.Int64FromInt32(0x7fffffff)<= (*TAggInfo)(unsafe.Pointer(pInfo)).FnFunc { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9532, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9657, libc.VaList(bp+160, pExpr)) } else { return (*TAggInfo)(unsafe.Pointer(pInfo)).FiFirstReg + (*TAggInfo)(unsafe.Pointer(pInfo)).FnColumn + int32((*TExpr)(unsafe.Pointer(pExpr)).FiAgg) } @@ -161531,7 +162018,7 @@ expr_code_doover: if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { return (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 64)))).FregResult } - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { /* SQL functions can be expensive. So try to avoid running them ** multiple times if we know they always give the same result */ return _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) @@ -161546,7 +162033,7 @@ expr_code_doover: zId = *(*uintptr)(unsafe.Pointer(pExpr + 8)) pDef = _sqlite3FindFunction(tls, db, zId, nFarg, enc, uint8(0)) if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FxFinalize != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9559, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9684, libc.VaList(bp+160, pExpr)) break } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_INLINE) != uint32(0) && pFarg != uintptr(0) { @@ -161561,7 +162048,7 @@ expr_code_doover: if !(i < nFarg) { break } - if i < int32(32) && _sqlite3ExprIsConstant(tls, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { + if i < int32(32) && _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pFarg + 8 + uintptr(i)*32))).FpExpr) != 0 { constMask |= libc.Uint32FromInt32(1) << i } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_NEEDCOLL) != uint32(0) && !(pColl != 0) { @@ -161651,7 +162138,7 @@ expr_code_doover: } n1 = _sqlite3ExprVectorSize(tls, pLeft2) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != n1 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9142, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9267, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) } return (*TExpr)(unsafe.Pointer(pLeft2)).FiTable + int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) case int32(TK_IN): @@ -161683,8 +162170,9 @@ expr_code_doover: if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_Collate)) != libc.Uint32FromInt32(0)) { /* A TK_COLLATE Expr node without the EP_Collate tag is a so-called ** "SOFT-COLLATE" that is added to constraints that are pushed down - ** from outer queries into sub-queries by the push-down optimization. - ** Clear subtypes as subtypes may not cross a subquery boundary. + ** from outer queries into sub-queries by the WHERE-clause push-down + ** optimization. Clear subtypes as subtypes may not cross a subquery + ** boundary. */ _sqlite3ExprCode(tls, pParse, (*TExpr)(unsafe.Pointer(pExpr)).FpLeft, target) _sqlite3VdbeAddOp1(tls, v, int32(OP_ClrSubtype), target) @@ -161713,7 +162201,7 @@ expr_code_doover: _sqlite3VdbeAddOp1(tls, v, int32(OP_RealAffinity), target) } case int32(TK_VECTOR): - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7986, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8050, 0) break /* TK_IF_NULL_ROW Expr nodes are inserted ahead of expressions ** that derive from the right-hand table of a LEFT JOIN. The @@ -161828,7 +162316,7 @@ expr_code_doover: _sqlite3VdbeResolveLabel(tls, v, endLabel) case int32(TK_RAISE): if !((*TParse)(unsafe.Pointer(pParse)).FpTriggerTab != 0) && !((*TParse)(unsafe.Pointer(pParse)).Fnested != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9583, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9708, 0) return 0 } if int32((*TExpr)(unsafe.Pointer(pExpr)).FaffExpr) == int32(OE_Abort) { @@ -161948,7 +162436,7 @@ func _sqlite3ExprCodeTemp(tls *libc.TLS, pParse uintptr, pExpr uintptr, pReg uin var r1, r2 int32 _, _ = r1, r2 pExpr = _sqlite3ExprSkipCollateAndLikely(tls, pExpr) - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && pExpr != uintptr(0) && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_REGISTER) && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { *(*int32)(unsafe.Pointer(pReg)) = 0 r2 = _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, -int32(1)) } else { @@ -162018,7 +162506,7 @@ func _sqlite3ExprCodeCopy(tls *libc.TLS, pParse uintptr, pExpr uintptr, target i // ** might choose to code the expression at initialization time. // */ func _sqlite3ExprCodeFactorable(tls *libc.TLS, pParse uintptr, pExpr uintptr, target int32) { - if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if (*TParse)(unsafe.Pointer(pParse)).FokConstFactor != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target) } else { _sqlite3ExprCodeCopy(tls, pParse, pExpr, target) @@ -162087,7 +162575,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ _sqlite3VdbeAddOp2(tls, v, int32(int32(copyOp)), j+srcReg-int32(1), target+i) } } else { - if int32(int32(flags))&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pExpr) != 0 { + if int32(int32(flags))&int32(SQLITE_ECEL_FACTOR) != 0 && _sqlite3ExprIsConstantNotJoin(tls, pParse, pExpr) != 0 { _sqlite3ExprCodeRunJustOnce(tls, pParse, pExpr, target+i) } else { inReg = _sqlite3ExprCodeTarget(tls, pParse, pExpr, target+i) @@ -162351,6 +162839,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsTrue)) == uint32(EP_IsTrue) { @@ -162556,6 +163045,7 @@ _16: goto _18 _17: ; + goto default_expr default_expr: ; if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse) { @@ -163382,17 +163872,15 @@ func _agginfoPersistExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnColumn && (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_col)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(iAgg)*24))).FpCExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } else { if iAgg < (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnFunc && (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr == pExpr { pExpr = _sqlite3ExprDup(tls, db, pExpr, 0) - if pExpr != 0 { + if pExpr != 0 && !(_sqlite3ExprDeferredDelete(tls, pParse, pExpr) != 0) { (*(*TAggInfo_func)(unsafe.Pointer((*TAggInfo)(unsafe.Pointer(pAggInfo)).FaFunc + uintptr(iAgg)*32))).FpFExpr = pExpr - _sqlite3ExprDeferredDelete(tls, pParse, pExpr) } } } @@ -163511,6 +163999,7 @@ func _findOrCreateAggInfoColumn(tls *libc.TLS, pParse uintptr, pAggInfo uintptr, *(*Tu16)(unsafe.Pointer(v4))++ (*TAggInfo_col)(unsafe.Pointer(pCol)).FiSorterColumn = int16(v3) } + goto fix_up_expr fix_up_expr: ; (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo = pAggInfo @@ -163941,8 +164430,8 @@ func _sqlite3FirstAvailableRegister(tls *libc.TLS, pParse uintptr, iMin int32) ( func _isAlterableTable(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) - if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+7834, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9633, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+7898, int32(7)) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Eponymous) != uint32(0) || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9758, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -163961,9 +164450,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, bp := tls.Alloc(48) defer tls.Free(48) (*TParse)(unsafe.Pointer(pParse)).FcolNamesSet = uint8(1) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9661, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9786, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9836, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9961, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) } } @@ -163979,9 +164468,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, func _renameFixQuotes(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10010, libc.VaList(bp+8, zDb, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10135, libc.VaList(bp+8, zDb, zDb)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10157, 0) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10282, 0) } } @@ -164037,7 +164526,7 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName ** in database iDb. If so, this is an error. */ if _sqlite3FindTable(tls, db, zName, zDb) != 0 || _sqlite3FindIndex(tls, db, zName, zDb) != 0 || _sqlite3IsShadowTableOf(tls, db, pTab, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10308, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10433, libc.VaList(bp+8, zName)) goto exit_rename_table } /* Make sure it is not a system table being altered, or a reserved name @@ -164046,11 +164535,11 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { goto exit_rename_table } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+10367, zName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+10492, zName) { goto exit_rename_table } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10373, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10498, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_rename_table } /* Invoke the authorization callback. */ @@ -164080,21 +164569,21 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName nTabName = _sqlite3Utf8CharLen(tls, zTabName, -int32(1)) /* Rewrite all CREATE TABLE, INDEX, TRIGGER or VIEW statements in ** the schema to use the new table name. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10400, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10525, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) /* Update the tbl_name and name columns of the sqlite_schema table ** as required. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10584, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10709, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) /* If the sqlite_sequence table exists in this database, then update ** it with the new table name. */ - if _sqlite3FindTable(tls, db, __ccgo_ts+10889, zDb) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10905, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if _sqlite3FindTable(tls, db, __ccgo_ts+11014, zDb) != 0 { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11030, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* If the table being renamed is not itself part of the temp database, ** edit view and trigger definitions within the temp database ** as required. */ if iDb != int32(1) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10963, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11088, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) } /* If this is a virtual table, invoke the xRename() function if ** one is defined. The xRename() callback will modify the names @@ -164110,7 +164599,8 @@ func _sqlite3AlterRenameTable(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp4(tls, v, int32(OP_VRename), i, 0, 0, pVTab, -int32(11)) } _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11228, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11353, 0) + goto exit_rename_table exit_rename_table: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -164126,7 +164616,7 @@ exit_rename_table: func _sqlite3ErrorIfNotEmpty(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, zErr uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11241, libc.VaList(bp+8, zErr, zDb, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11366, libc.VaList(bp+8, zErr, zDb, zTab)) } // C documentation @@ -164166,11 +164656,11 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** column must not be NULL. */ if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11279, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11404, 0) return } if (*TTable)(unsafe.Pointer(pNew)).FpIndex != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11311, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11436, 0) return } if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) == 0 { @@ -164186,10 +164676,10 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpFKey != 0 && pDflt != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+11338) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+11463) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && !(pDflt != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+11397) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+11522) } /* Ensure the default expression is something that sqlite3ValueFromExpr() ** can handle (i.e. not CURRENT_TIME etc.) @@ -164201,13 +164691,13 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr return } if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+11450) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+11575) } _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp))) } } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_STORED) != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+11496) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+11621) } } /* Modify the CREATE TABLE statement. */ @@ -164221,7 +164711,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr } /* substr() operations on characters, but addColOffset is in bytes. So we ** have to use printf() to translate between these units: */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11523, libc.VaList(bp+16, zDb, (*(*struct { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11648, libc.VaList(bp+16, zDb, (*(*struct { FaddColOffset int32 FpFKey uintptr FpDfltList uintptr @@ -164249,7 +164739,7 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterAdd)) /* Verify that constraints are still satisfied */ if (*TTable)(unsafe.Pointer(pNew)).FpCheck != uintptr(0) || int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Strict) != uint32(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11669, libc.VaList(bp+16, zTab, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11794, libc.VaList(bp+16, zTab, zDb)) } } } @@ -164287,12 +164777,12 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { goto exit_begin_add_column } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12022, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12147, 0) goto exit_begin_add_column } /* Make sure this is not an attempt to ALTER a view. */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12056, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12181, 0) goto exit_begin_add_column } if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { @@ -164316,7 +164806,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { (*TTable)(unsafe.Pointer(pNew)).FnCol = (*TTable)(unsafe.Pointer(pTab)).FnCol nAlloc = (int32((*TTable)(unsafe.Pointer(pNew)).FnCol)-int32(1))/int32(8)*int32(8) + int32(8) (*TTable)(unsafe.Pointer(pNew)).FaCol = _sqlite3DbMallocZero(tls, db, uint64(16)*uint64(uint64(nAlloc))) - (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+12086, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+12211, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !((*TTable)(unsafe.Pointer(pNew)).FaCol != 0) || !((*TTable)(unsafe.Pointer(pNew)).FzName != 0) { goto exit_begin_add_column } @@ -164353,6 +164843,7 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pTab + 64))).FaddColOffset + goto exit_begin_add_column exit_begin_add_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -164376,18 +164867,18 @@ func _isRealTable(tls *libc.TLS, pParse uintptr, pTab uintptr, bDrop int32) (r i _, _ = zType, v1 zType = uintptr(0) if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 12105 + zType = __ccgo_ts + 12230 } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 12110 + zType = __ccgo_ts + 12235 } if zType != 0 { if bDrop != 0 { - v1 = __ccgo_ts + 12124 + v1 = __ccgo_ts + 12249 } else { - v1 = __ccgo_ts + 12141 + v1 = __ccgo_ts + 12266 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12159, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12284, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -164448,11 +164939,11 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld iCol++ } if iCol == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12177, libc.VaList(bp+8, pOld)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12302, libc.VaList(bp+8, pOld)) goto exit_rename_column } /* Ensure the schema contains no double-quoted strings */ - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1658, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1672, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1))) /* Do the rename operation using a recursive UPDATE statement that ** uses the sqlite_rename_column() SQL function to compute the new @@ -164464,11 +164955,12 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld goto exit_rename_column } bQuote = int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pNew)).Fz)))]) & int32(0x80) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+12198, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+12380, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+12323, libc.VaList(bp+8, zDb, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote, libc.BoolInt32(iSchema == int32(1)), (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+12505, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iSchema, uint16(INITFLAG_AlterRename)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+11228, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+11353, int32(1)) + goto exit_rename_column exit_rename_column: ; _sqlite3SrcListDelete(tls, db, pSrc) @@ -164943,11 +165435,11 @@ func _renameColumnParseError(tls *libc.TLS, pCtx uintptr, zWhen uintptr, pType u zT = Xsqlite3_value_text(tls, pType) zN = Xsqlite3_value_text(tls, pObject) if *(*int8)(unsafe.Pointer(zWhen)) != 0 { - v1 = __ccgo_ts + 12511 + v1 = __ccgo_ts + 12636 } else { - v1 = __ccgo_ts + 1658 + v1 = __ccgo_ts + 1672 } - zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12513, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) + zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+12638, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, zErr) } @@ -165024,8 +165516,8 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin if zSql == uintptr(0) { return int32(SQLITE_NOMEM) } - if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+12536, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(116682)) + if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+12661, int32(7)) != 0 { + return _sqlite3CorruptError(tls, int32(117285)) } if bTemp != 0 { v1 = int32(1) @@ -165041,7 +165533,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin rc = int32(SQLITE_NOMEM) } if rc == SQLITE_OK && ((*TParse)(unsafe.Pointer(p)).FpNewTable == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewIndex == uintptr(0) && (*TParse)(unsafe.Pointer(p)).FpNewTrigger == uintptr(0)) { - rc = _sqlite3CorruptError(tls, int32(116693)) + rc = _sqlite3CorruptError(tls, int32(117296)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -165080,7 +165572,7 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, ** ALTER TABLE statement was quoted (bQuote==1), then set zNew to ** point to zQuot so that all substitutions are made using the ** quoted version of the new column name. */ - zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+12544, libc.VaList(bp+8, zNew)) + zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+12669, libc.VaList(bp+8, zNew)) if zQuot == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -165125,11 +165617,11 @@ func _renameEditSql(tls *libc.TLS, pCtx uintptr, pRename uintptr, zSql uintptr, *(*int8)(unsafe.Pointer(zBuf1 + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn))) = 0 _sqlite3Dequote(tls, zBuf1) if int32(*(*int8)(unsafe.Pointer((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn)))) == int32('\'') { - v1 = __ccgo_ts + 12511 + v1 = __ccgo_ts + 12636 } else { - v1 = __ccgo_ts + 1658 + v1 = __ccgo_ts + 1672 } - Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+12550, libc.VaList(bp+8, zBuf1, v1)) + Xsqlite3_snprintf(tls, int32(nSql*int64(2)), zBuf2, __ccgo_ts+12675, libc.VaList(bp+8, zBuf1, v1)) zReplace = zBuf2 nReplace = uint32(_sqlite3Strlen30(tls, zReplace)) } @@ -165606,6 +166098,7 @@ func _renameColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintp } } rc = _renameEditSql(tls, context, bp, zSql, zNew, bQuote) + goto renameColumnFunc_done renameColumnFunc_done: ; if rc != SQLITE_OK { @@ -165613,7 +166106,7 @@ renameColumnFunc_done: Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv))) } else { if (*(*TParse)(unsafe.Pointer(bp + 32))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1658, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) + _renameColumnParseError(tls, context, __ccgo_ts+1672, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -165839,7 +166332,7 @@ func _renameTableFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintpt Xsqlite3_result_value(tls, context, *(*uintptr)(unsafe.Pointer(argv + 3*8))) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _renameColumnParseError(tls, context, __ccgo_ts+1658, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) + _renameColumnParseError(tls, context, __ccgo_ts+1672, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -166101,7 +166594,7 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr pTab = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable if pTab == uintptr(0) || int32((*TTable)(unsafe.Pointer(pTab)).FnCol) == int32(1) || iCol >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { /* This can happen if the sqlite_schema table is corrupt */ - rc = _sqlite3CorruptError(tls, int32(117652)) + rc = _sqlite3CorruptError(tls, int32(118255)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -166118,9 +166611,10 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr (*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz-- } } - zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+12555, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(int64(zSql)), zSql, zEnd)) + zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+12680, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(int64(zSql)), zSql, zEnd)) Xsqlite3_result_text(tls, context, zNew, -int32(1), uintptr(-libc.Int32FromInt32(1))) Xsqlite3_free(tls, zNew) + goto drop_column_done drop_column_done: ; _renameParseCleanup(tls, bp) @@ -166144,8 +166638,9 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName bp := tls.Alloc(48) defer tls.Free(48) var addr, i, iCol, iColPos, iCur, iDb, iPos, nField, reg, regOut, regRec, v2, v4, v7 int32 + var aff int8 var db, pPk, pTab, v, zCol, zDb, v1, v3, v5, v8 uintptr - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, aff, db, i, iCol, iColPos, iCur, iDb, iPos, nField, pPk, pTab, reg, regOut, regRec, v, zCol, zDb, v1, v2, v3, v4, v5, v7, v8 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Database containing pTab ("main" etc.) */ zCol = uintptr(0) /* Index of column zCol in pTab->aCol[] */ /* Look up the table being altered. */ @@ -166171,23 +166666,23 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName } iCol = _sqlite3ColumnIndex(tls, pTab, zCol) if iCol < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12177, libc.VaList(bp+8, pName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12302, libc.VaList(bp+8, pName)) goto exit_drop_column } /* Do not allow the user to drop a PRIMARY KEY column or a column ** constrained by a UNIQUE constraint. */ if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_PRIMKEY)|libc.Int32FromInt32(COLFLAG_UNIQUE)) != 0 { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - v1 = __ccgo_ts + 12562 + v1 = __ccgo_ts + 12687 } else { - v1 = __ccgo_ts + 6898 + v1 = __ccgo_ts + 6962 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12574, libc.VaList(bp+8, v1, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12699, libc.VaList(bp+8, v1, zCol)) goto exit_drop_column } /* Do not allow the number of columns to go to zero */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) <= int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12602, libc.VaList(bp+8, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12727, libc.VaList(bp+8, zCol)) goto exit_drop_column } /* Edit the sqlite_schema table */ @@ -166197,12 +166692,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_ALTER_TABLE), zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol) != 0 { goto exit_drop_column } - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1658, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1672, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1))) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+12650, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+12775, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) /* Drop and reload the database schema. */ _renameReloadSchema(tls, pParse, iDb, uint16(INITFLAG_AlterDrop)) - _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+12771, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+12896, int32(1)) /* Edit rows of table on disk */ if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 && int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { pPk = uintptr(0) @@ -166260,7 +166755,12 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName if i == int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regOut) } else { + aff = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity + if int32(int32(aff)) == int32(SQLITE_AFF_REAL) { + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = int8(SQLITE_AFF_NUMERIC) + } _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab, iCur, i, regOut) + (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).Faffinity = aff } nField++ } @@ -166285,6 +166785,7 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iCur, addr+int32(1)) _sqlite3VdbeJumpHere(tls, v, addr) } + goto exit_drop_column exit_drop_column: ; _sqlite3DbFree(tls, db, zCol) @@ -166304,27 +166805,27 @@ var _aAlterTableFuncs = [5]TFuncDef{ 0: { FnArg: int8(9), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 12789, + FzName: __ccgo_ts + 12914, }, 1: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 12810, + FzName: __ccgo_ts + 12935, }, 2: { FnArg: int8(7), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 12830, + FzName: __ccgo_ts + 12955, }, 3: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 12849, + FzName: __ccgo_ts + 12974, }, 4: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 12868, + FzName: __ccgo_ts + 12993, }, } @@ -166535,7 +167036,7 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW ** side-effect of the CREATE TABLE statement is to leave the rootpage ** of the new table in register pParse->regRoot. This is important ** because the OpenWrite opcode below will be needing it. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+12971, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13096, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) aRoot[i] = uint32((*TParse)(unsafe.Pointer(pParse)).FregRoot) aCreateTbl[i] = uint8(OPFLAG_P2ISREG) } @@ -166546,10 +167047,10 @@ func _openStatTable(tls *libc.TLS, pParse uintptr, iDb int32, iStatCur int32, zW aRoot[i] = (*TTable)(unsafe.Pointer(pStat)).Ftnum _sqlite3TableLock(tls, pParse, iDb, aRoot[i], uint8(1), zTab) if zWhere != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+12994, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13119, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) } else { if (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+13024, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13149, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) } else { /* The sqlite_stat[134] table already exists. Delete all rows. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Clear), int32(aRoot[i]), iDb) @@ -166581,15 +167082,15 @@ var _aTable = [3]struct { FzCols uintptr }{ 0: { - FzName: __ccgo_ts + 12891, - FzCols: __ccgo_ts + 12904, + FzName: __ccgo_ts + 13016, + FzCols: __ccgo_ts + 13029, }, 1: { - FzName: __ccgo_ts + 12917, - FzCols: __ccgo_ts + 12930, + FzName: __ccgo_ts + 13042, + FzCols: __ccgo_ts + 13055, }, 2: { - FzName: __ccgo_ts + 12958, + FzName: __ccgo_ts + 13083, }, } @@ -166891,7 +167392,7 @@ func _statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statInitFuncdef = TFuncDef{ FnArg: int8(4), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 13042, + FzName: __ccgo_ts + 13167, } func init() { @@ -167037,6 +167538,7 @@ func _sampleInsert(tls *libc.TLS, p uintptr, pNew uintptr, nEqZero int32) { (*TStatAccum)(unsafe.Pointer(p)).FnSample++ /* Zero the first nEqZero entries in the anEq[] array. */ libc.Xmemset(tls, (*TStatSample)(unsafe.Pointer(pSample)).FanEq, 0, uint64(8)*uint64(uint64(nEqZero))) + goto find_new_min find_new_min: ; if (*TStatAccum)(unsafe.Pointer(p)).FnSample >= (*TStatAccum)(unsafe.Pointer(p)).FmxSample { @@ -167264,7 +167766,7 @@ func _statPush(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statPushFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(2) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 13052, + FzName: __ccgo_ts + 13177, } func init() { @@ -167314,7 +167816,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } else { v1 = (*TStatAccum)(unsafe.Pointer(p)).FnRow } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+13062, libc.VaList(bp+72, v1)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+13187, libc.VaList(bp+72, v1)) i = 0 for { if !(i < (*TStatAccum)(unsafe.Pointer(p)).FnKeyCol) { @@ -167325,7 +167827,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if iVal == uint64(2) && (*TStatAccum)(unsafe.Pointer(p)).FnRow*uint64(10) <= nDistinct*uint64(11) { iVal = uint64(1) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+13067, libc.VaList(bp+72, iVal)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+13192, libc.VaList(bp+72, iVal)) goto _2 _2: ; @@ -167364,7 +167866,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if !(i1 < (*TStatAccum)(unsafe.Pointer(p)).FnCol) { break } - Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+13073, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) + Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+13198, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) goto _3 _3: ; @@ -167382,7 +167884,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statGetFuncdef = TFuncDef{ FnArg: int8(libc.Int32FromInt32(1) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 13079, + FzName: __ccgo_ts + 13204, } func init() { @@ -167403,9 +167905,9 @@ func _callStatGet(tls *libc.TLS, pParse uintptr, regStat int32, iParam int32, re // */ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr, iStatCur int32, iMem int32, iTab int32) { var aGotoChng, db, pColl, pIdx, pPk, pStat1, pX, v, zIdxName uintptr - var addrIsNull, addrNext, addrNextRow, addrRewind, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 + var addrGotoEnd, addrIsNull, addrNext, addrNextRow, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 int32 var needTableCnt, seekOp Tu8 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrIsNull, addrNext, addrNextRow, addrRewind, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aGotoChng, addrGotoEnd, addrIsNull, addrNext, addrNextRow, db, doOnce, endDistinctTest, i, iDb, iIdxCur, iTabCur, j, j1, j2, j3, jZeroRows, k, mxCol, nCol, nColTest, nColX, needTableCnt, pColl, pIdx, pPk, pStat1, pX, regChng, regCol, regDLt, regEq, regIdxname, regKey, regLt, regNewRowid, regPrev, regRowid, regSample, regSampleRowid, regStat, regStat1, regTabname, regTemp, regTemp2, seekOp, v, zIdxName, v1, v10, v11, v12, v14, v18, v2, v3, v4, v5, v6, v7, v8, v9 db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Loop counter */ jZeroRows = -int32(1) /* Index of database containing pTab */ needTableCnt = uint8(1) @@ -167448,7 +167950,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Do not gather statistics on views or virtual tables */ return } - if Xsqlite3_strlike(tls, __ccgo_ts+13088, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { + if Xsqlite3_strlike(tls, __ccgo_ts+13213, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { /* Do not gather statistics on system tables */ return } @@ -167462,7 +167964,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint return } (*TTable)(unsafe.Pointer(pStat1)).FzName = pStat1 + 1*104 - libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+12891, uint64(13)) + libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+13016, uint64(13)) (*TTable)(unsafe.Pointer(pStat1)).FnCol = int16(3) (*TTable)(unsafe.Pointer(pStat1)).FiPKey = int16(-int32(1)) _sqlite3VdbeAddOp4(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Noop), 0, 0, 0, pStat1, -int32(6)) @@ -167516,9 +168018,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* ** Pseudo-code for loop that calls stat_push(): ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() ** goto chng_addr_0; ** ** next_row: @@ -167552,32 +168059,29 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint /* Open a read-only cursor on the index being analyzed. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenRead), iIdxCur, int32((*TIndex)(unsafe.Pointer(pIdx)).Ftnum), iDb) _sqlite3VdbeSetP4KeyInfo(tls, pParse, pIdx) - /* Invoke the stat_init() function. The arguments are: + /* Implementation of the following: ** + ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() + ** goto chng_addr_0; + */ + _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + /* Arguments to stat_init(): ** (1) the number of columns in the index including the rowid ** (or for a WITHOUT ROWID table, the number of PK columns), ** (2) the number of columns in the key without the rowid/pk - ** (3) estimated number of rows in the index, - */ + ** (3) estimated number of rows in the index. */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), nCol, regStat+int32(1)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol), regRowid) - if (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0) { - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iIdxCur, regTemp) - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - } else { - addrRewind = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, int32(1)) - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit, regTemp2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Count), iIdxCur, regTemp, libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) != uint32(0))) _sqlite3VdbeAddFunctionCall(tls, pParse, 0, regStat+int32(1), regStat, int32(4), uintptr(unsafe.Pointer(&_statInitFuncdef)), 0) - /* Implementation of the following: - ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; - ** regChng = 0 - ** goto next_push_0; - ** - */ + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_Rewind), iIdxCur) _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regChng) addrNextRow = _sqlite3VdbeCurrentAddr(tls, v) if nColTest > 0 { @@ -167686,8 +168190,14 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), iIdxCur, addrNextRow) } /* Add the entry to the stat1 table. */ + if (*TIndex)(unsafe.Pointer(pIdx)).FpPartIdxWhere != 0 { + /* Partial indexes might get a zero-entry in sqlite_stat1. But + ** an empty table is omitted from sqlite_stat1. */ + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + addrGotoEnd = 0 + } _callStatGet(tls, pParse, regStat, STAT_GET_STAT1, regStat1) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+13098, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+13223, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP4(tls, v, -int32(1), pStat1, -int32(5)) @@ -167706,6 +168216,11 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint v18 = int32(OP_NotFound) } seekOp = uint8(v18) + /* No STAT4 data is generated if the number of rows is zero */ + if addrGotoEnd == 0 { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Cast), regStat1, int32(SQLITE_AFF_INTEGER)) + addrGotoEnd = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) + } if doOnce != 0 { mxCol = nCol /* Compute the maximum number of columns in any index */ @@ -167758,7 +168273,9 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeJumpHere(tls, v, addrIsNull) } /* End of analysis */ - _sqlite3VdbeJumpHere(tls, v, addrRewind) + if addrGotoEnd != 0 { + _sqlite3VdbeJumpHere(tls, v, addrGotoEnd) + } goto _13 _13: ; @@ -167771,7 +168288,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), iTabCur, regStat1) jZeroRows = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfNot), regStat1) _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regIdxname) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+13098, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+13223, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND)) @@ -167843,9 +168360,9 @@ func _analyzeTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr iStatCur = (*TParse)(unsafe.Pointer(pParse)).FnTab *(*int32)(unsafe.Pointer(pParse + 52)) += int32(3) if pOnlyIdx != 0 { - _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+13102) + _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+13227) } else { - _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+13106) + _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+13231) } _analyzeOneTable(tls, pParse, pTab, pOnlyIdx, iStatCur, (*TParse)(unsafe.Pointer(pParse)).FnMem+int32(1), (*TParse)(unsafe.Pointer(pParse)).FnTab) _loadAnalysis(tls, pParse, iDb) @@ -167974,7 +168491,7 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, _, _, _, _, _, _ = c, i, sz, v, z, v2 z = zIntArray if z == uintptr(0) { - z = __ccgo_ts + 1658 + z = __ccgo_ts + 1672 } i = 0 for { @@ -168009,17 +168526,17 @@ func _decodeIntArray(tls *libc.TLS, zIntArray uintptr, nOut int32, aOut uintptr, libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(0), 6, 0x40) for *(*int8)(unsafe.Pointer(z)) != 0 { - if Xsqlite3_strglob(tls, __ccgo_ts+13110, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+13235, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 2, 0x4) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+13121, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+13246, z) == 0 { sz = _sqlite3Atoi(tls, z+uintptr(3)) if sz < int32(2) { sz = int32(2) } (*TIndex)(unsafe.Pointer(pIndex)).FszIdxRow = _sqlite3LogEst(tls, uint64(uint64(sz))) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+13131, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+13256, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 6, 0x40) } } @@ -168395,11 +168912,11 @@ func _loadStat4(tls *libc.TLS, db uintptr, zDb uintptr) (r int32) { _, _, _, _ = pStat4, rc, v1, v2 rc = SQLITE_OK if v2 = (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0); v2 { - v1 = _sqlite3FindTable(tls, db, __ccgo_ts+12917, zDb) + v1 = _sqlite3FindTable(tls, db, __ccgo_ts+13042, zDb) pStat4 = v1 } if v2 && v1 != uintptr(0) && int32((*TTable)(unsafe.Pointer(pStat4)).FeTabType) == TABTYP_NORM { - rc = _loadStatTbl(tls, db, __ccgo_ts+13143, __ccgo_ts+13212, zDb) + rc = _loadStatTbl(tls, db, __ccgo_ts+13268, __ccgo_ts+13337, zDb) } return rc } @@ -168465,10 +168982,10 @@ func _sqlite3AnalysisLoad(tls *libc.TLS, db uintptr, iDb int32) (r int32) { /* Load new statistics out of the sqlite_stat1 table */ (*(*TanalysisInfo)(unsafe.Pointer(bp))).Fdb = db (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName - v3 = _sqlite3FindTable(tls, db, __ccgo_ts+12891, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) + v3 = _sqlite3FindTable(tls, db, __ccgo_ts+13016, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) pStat1 = v3 if v3 != 0 && int32((*TTable)(unsafe.Pointer(pStat1)).FeTabType) == TABTYP_NORM { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+13264, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+13389, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -168581,7 +169098,7 @@ func _resolveAttachExpr(tls *libc.TLS, pName uintptr, pExpr uintptr) (r int32) { // ** database iDb attached to handle db. // */ func _sqlite3DbIsNamed(tls *libc.TLS, db uintptr, iDb int32, zName uintptr) (r int32) { - return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+7894, zName) == 0) + return libc.BoolInt32(_sqlite3StrICmp(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName) == 0 || iDb == 0 && _sqlite3StrICmp(tls, __ccgo_ts+7958, zName) == 0) } // C documentation @@ -168623,21 +169140,21 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { zFile = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) zName = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if zFile == uintptr(0) { - zFile = __ccgo_ts + 1658 + zFile = __ccgo_ts + 1672 } if zName == uintptr(0) { - zName = __ccgo_ts + 1658 + zName = __ccgo_ts + 1672 } if int32(uint32(*(*uint8)(unsafe.Pointer(db + 192 + 8))&0x4>>2)) != 0 { /* This is not a real ATTACH. Instead, this routine is being called ** from sqlite3_deserialize() to close database db->init.iDb and ** reopen it as a MemDB */ *(*uintptr)(unsafe.Pointer(bp + 40)) = uintptr(0) - *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+5276) + *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+5340) if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { return } - rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+13305, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) + rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+13430, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) if rc == SQLITE_OK { pNewSchema = _sqlite3SchemaGet(tls, db, *(*uintptr)(unsafe.Pointer(bp + 40))) if pNewSchema != 0 { @@ -168668,7 +169185,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { ** * Specified database name already being used. */ if (*Tsqlite3)(unsafe.Pointer(db)).FnDb >= *(*int32)(unsafe.Pointer(db + 136 + 7*4))+int32(2) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+13308, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+13433, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) goto attach_error } i = 0 @@ -168677,7 +169194,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { break } if _sqlite3DbIsNamed(tls, db, i, zName) != 0 { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+13345, libc.VaList(bp+56, zName)) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+13470, libc.VaList(bp+56, zName)) goto attach_error } goto _1 @@ -168725,7 +169242,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FnoSharedCache = uint8(0) if rc == int32(SQLITE_CONSTRAINT) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+13375, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+13500, 0) } else { if rc == SQLITE_OK { (*TDb)(unsafe.Pointer(pNew)).FpSchema = _sqlite3SchemaGet(tls, db, (*TDb)(unsafe.Pointer(pNew)).FpBt) @@ -168733,7 +169250,7 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { rc = int32(SQLITE_NOMEM) } else { if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Ffile_format != 0 && int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Fenc) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+13404, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+13529, 0) rc = int32(SQLITE_ERROR) } } @@ -168777,16 +169294,17 @@ func _attachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { if rc == int32(SQLITE_NOMEM) || rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)<= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+13500, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+13625, libc.VaList(bp+136, zName)) goto detach_error } if i < int32(2) { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+13521, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+13646, libc.VaList(bp+136, zName)) goto detach_error } if _sqlite3BtreeTxnState(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != SQLITE_TXN_NONE || _sqlite3BtreeIsInBackup(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) != 0 { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+13547, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+13672, libc.VaList(bp+136, zName)) goto detach_error } /* If any TEMP triggers reference the schema being detached, move those @@ -168867,6 +169385,7 @@ func _detachFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { (*TDb)(unsafe.Pointer(pDb)).FpSchema = uintptr(0) _sqlite3CollapseDatabaseArray(tls, db) return + goto detach_error detach_error: ; Xsqlite3_result_error(tls, context, bp, -int32(1)) @@ -168921,6 +169440,7 @@ func _codeAttach(tls *libc.TLS, pParse uintptr, type1 int32, pFunc uintptr, pAut */ _sqlite3VdbeAddOp1(tls, v, int32(OP_Expire), libc.BoolInt32(type1 == int32(SQLITE_ATTACH))) } + goto attach_end attach_end: ; _sqlite3ExprDelete(tls, db, pFilename) @@ -168942,7 +169462,7 @@ func _sqlite3Detach(tls *libc.TLS, pParse uintptr, pDbname uintptr) { var _detach_func = TFuncDef{ FnArg: int8(1), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 13569, + FzName: __ccgo_ts + 13694, } func init() { @@ -168964,7 +169484,7 @@ func _sqlite3Attach(tls *libc.TLS, pParse uintptr, p uintptr, pDbname uintptr, p var _attach_func = TFuncDef{ FnArg: int8(3), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 13583, + FzName: __ccgo_ts + 13708, } func init() { @@ -168990,7 +169510,7 @@ func _fixExprCb(tls *libc.TLS, p uintptr, pExpr uintptr) (r int32) { if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer((*TDbFixer)(unsafe.Pointer(pFix)).FpParse)).Fdb)).Finit1.Fbusy != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } else { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+13597, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+13722, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) return int32(WRC_Abort) } } @@ -169024,7 +169544,7 @@ func _fixSelectCb(tls *libc.TLS, p uintptr, pSelect uintptr) (r int32) { if int32((*TDbFixer)(unsafe.Pointer(pFix)).FbTemp) == 0 { if (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase != 0 { if iDb != _sqlite3FindDbName(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+13621, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+13746, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase)) return int32(WRC_Abort) } _sqlite3DbFree(tls, db, (*TSrcItem)(unsafe.Pointer(pItem)).FzDatabase) @@ -169240,7 +169760,7 @@ func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uint // ** user-supplied authorization function returned an illegal value. // */ func _sqliteAuthBadReturnCode(tls *libc.TLS, pParse uintptr) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13667, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13792, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) } @@ -169268,11 +169788,11 @@ func _sqlite3AuthReadCol(tls *libc.TLS, pParse uintptr, zTab uintptr, zCol uintp } rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, int32(SQLITE_READ), zTab, zCol, zDb, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - z = Xsqlite3_mprintf(tls, __ccgo_ts+13690, libc.VaList(bp+8, zTab, zCol)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+13815, libc.VaList(bp+8, zTab, zCol)) if (*Tsqlite3)(unsafe.Pointer(db)).FnDb > int32(2) || iDb != 0 { - z = Xsqlite3_mprintf(tls, __ccgo_ts+13696, libc.VaList(bp+8, zDb, z)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+13821, libc.VaList(bp+8, zDb, z)) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13702, libc.VaList(bp+8, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13827, libc.VaList(bp+8, z)) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != int32(SQLITE_IGNORE) && rc != SQLITE_OK { @@ -169332,7 +169852,7 @@ func _sqlite3AuthRead(tls *libc.TLS, pParse uintptr, pExpr uintptr, pSchema uint if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName } else { - zCol = __ccgo_ts + 9214 + zCol = __ccgo_ts + 9339 } } if int32(SQLITE_IGNORE) == _sqlite3AuthReadCol(tls, pParse, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol, iDb) { @@ -169367,7 +169887,7 @@ func _sqlite3AuthCheck(tls *libc.TLS, pParse uintptr, code int32, zArg1 uintptr, ** parameters can be either NULL or a string. */ rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAuth})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg, code, zArg1, zArg2, zArg3, (*TParse)(unsafe.Pointer(pParse)).FzAuthContext) if rc == int32(SQLITE_DENY) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13729, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13854, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != SQLITE_OK && rc != int32(SQLITE_IGNORE) { @@ -169788,21 +170308,21 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp if i >= (*Tsqlite3)(unsafe.Pointer(db)).FnDb { /* No match against the official names. But always match "main" ** to schema 0 as a legacy fallback. */ - if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+7894) == 0 { + if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+7958) == 0 { i = 0 } else { return uintptr(0) } } p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, zName) - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+7834, int32(7)) == 0 { + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+7898, int32(7)) == 0 { if i == int32(1) { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7861+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7880+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7375+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+7842) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7925+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7944+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7439+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+7906) } } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7880+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+7375) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7944+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+7439) } } } @@ -169832,12 +170352,12 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp ; i++ } - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+7834, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7880+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+7375) + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+7898, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7944+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+7439) } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7861+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+7842) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7925+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+7906) } } } @@ -169875,7 +170395,7 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt ** can be an eponymous virtual table. */ if int32((*TParse)(unsafe.Pointer(pParse)).FprepFlags)&int32(SQLITE_PREPARE_NO_VTAB) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 { pMod = _sqlite3HashFind(tls, db+576, zName) - if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+13744, int32(7)) == 0 { + if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+13869, int32(7)) == 0 { pMod = _sqlite3PragmaVtabRegister(tls, db, zName) } if pMod != 0 && _sqlite3VtabEponymousTableInit(tls, pParse, pMod) != 0 { @@ -169893,15 +170413,15 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt } if p == uintptr(0) { if flags&uint32(LOCATE_VIEW) != 0 { - v1 = __ccgo_ts + 13752 + v1 = __ccgo_ts + 13877 } else { - v1 = __ccgo_ts + 13765 + v1 = __ccgo_ts + 13890 } zMsg = v1 if zDbase != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8098, libc.VaList(bp+8, zMsg, zDbase, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8162, libc.VaList(bp+8, zMsg, zDbase, zName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8108, libc.VaList(bp+8, zMsg, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8233, libc.VaList(bp+8, zMsg, zName)) } } else { } @@ -169939,12 +170459,12 @@ func _sqlite3LocateTableItem(tls *libc.TLS, pParse uintptr, flags Tu32, p uintpt // ** names into the new preferred names, as appropriate. // */ func _sqlite3PreferredTableName(tls *libc.TLS, zName uintptr) (r uintptr) { - if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+7834, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7375+7) == 0 { - return __ccgo_ts + 7880 + if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+7898, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7439+7) == 0 { + return __ccgo_ts + 7944 } - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7842+7) == 0 { - return __ccgo_ts + 7861 + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+7906+7) == 0 { + return __ccgo_ts + 7925 } } return zName @@ -170469,7 +170989,7 @@ func _sqlite3OpenSchemaTable(tls *libc.TLS, p uintptr, iDb int32) { var v uintptr _ = v v = _sqlite3GetVdbe(tls, p) - _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+7375) + _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+7439) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_OpenWrite), 0, int32(SCHEMA_ROOT), iDb, int32(5)) if (*TParse)(unsafe.Pointer(p)).FnTab == 0 { (*TParse)(unsafe.Pointer(p)).FnTab = int32(1) @@ -170501,7 +171021,7 @@ func _sqlite3FindDbName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) { } /* "main" is always an acceptable alias for the primary database ** even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME. */ - if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+7894, zName) { + if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+7958, zName) { break } goto _1 @@ -170559,13 +171079,13 @@ func _sqlite3TwoPartName(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13779, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13904, 0) return -int32(1) } *(*uintptr)(unsafe.Pointer(pUnqual)) = pName2 iDb = _sqlite3FindDb(tls, db, pName1) if iDb < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13796, libc.VaList(bp+8, pName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13921, libc.VaList(bp+8, pName1)) return -int32(1) } } else { @@ -170609,12 +171129,12 @@ func _sqlite3CheckObjectName(tls *libc.TLS, pParse uintptr, zName uintptr, zType } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if Xsqlite3_stricmp(tls, zType, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit))) != 0 || Xsqlite3_stricmp(tls, zName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 1*8))) != 0 || Xsqlite3_stricmp(tls, zTblName, *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FazInit + 2*8))) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1658, 0) /* corruptSchema() will supply the error */ + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1672, 0) /* corruptSchema() will supply the error */ return int32(SQLITE_ERROR) } } else { - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+7834, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13816, libc.VaList(bp+8, zName)) + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+7898, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13941, libc.VaList(bp+8, zName)) return int32(SQLITE_ERROR) } } @@ -170829,9 +171349,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Special case: Parsing the sqlite_schema or sqlite_temp_schema schema */ iDb = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 7842 + v1 = __ccgo_ts + 7906 } else { - v1 = __ccgo_ts + 7375 + v1 = __ccgo_ts + 7439 } zName = _sqlite3DbStrDup(tls, db, v1) *(*uintptr)(unsafe.Pointer(bp)) = pName1 @@ -170844,7 +171364,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 && (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) && iDb != int32(1) { /* If creating a temp table, the name may not be qualified. Unless ** the database name is "temp" anyway. */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13858, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13983, 0) return } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 { @@ -170860,9 +171380,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui return } if isView != 0 { - v2 = __ccgo_ts + 12105 + v2 = __ccgo_ts + 12230 } else { - v2 = __ccgo_ts + 10367 + v2 = __ccgo_ts + 10492 } if _sqlite3CheckObjectName(tls, pParse, zName, v2, zName) != 0 { goto begin_table_error @@ -170872,9 +171392,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui } zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp == int32(1) { - v3 = __ccgo_ts + 7842 + v3 = __ccgo_ts + 7906 } else { - v3 = __ccgo_ts + 7375 + v3 = __ccgo_ts + 7439 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto begin_table_error @@ -170898,11 +171418,11 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if pTable != 0 { if !(noErr != 0) { if int32((*TTable)(unsafe.Pointer(pTable)).FeTabType) == int32(TABTYP_VIEW) { - v4 = __ccgo_ts + 12105 + v4 = __ccgo_ts + 12230 } else { - v4 = __ccgo_ts + 10367 + v4 = __ccgo_ts + 10492 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13899, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14024, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) _sqlite3ForceNotReadOnly(tls, pParse) @@ -170910,7 +171430,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui goto begin_table_error } if _sqlite3FindIndex(tls, db, zName, zDb1) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13920, libc.VaList(bp+16, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14045, libc.VaList(bp+16, zName)) goto begin_table_error } } @@ -170998,6 +171518,7 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Normal (non-error) return. */ return /* If an error occurs, we jump here */ + goto begin_table_error begin_table_error: ; (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) @@ -171061,7 +171582,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { _, _, _ = db, pHash, pRet db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13955, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14080, 0) } else { } (*TParse)(unsafe.Pointer(pParse)).FbReturning = uint8(1) @@ -171077,7 +171598,7 @@ func _sqlite3AddReturning(tls *libc.TLS, pParse uintptr, pList uintptr) { if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return } - Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+13989, libc.VaList(bp+8, pParse)) + Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+14114, libc.VaList(bp+8, pParse)) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.FzName = pRet + 196 (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Fop = uint8(TK_RETURNING) (*TReturning)(unsafe.Pointer(pRet)).FretTrig.Ftr_tm = uint8(TRIGGER_AFTER) @@ -171124,7 +171645,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok return } if int32((*TTable)(unsafe.Pointer(p)).FnCol)+int32(1) > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14009, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14134, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) return } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -171134,12 +171655,12 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok ** by the parser, we can sometimes end up with a typename that ends ** with "generated always". Check for this case and omit the surplus ** text. */ - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+14032, int32(6)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(16) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(6)), __ccgo_ts+14157, int32(6)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(6) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1)))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- } - if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+14039, int32(9)) == 0 { + if (*(*TToken)(unsafe.Pointer(bp + 16))).Fn >= uint32(9) && Xsqlite3_strnicmp(tls, (*(*TToken)(unsafe.Pointer(bp + 16))).Fz+uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-libc.Uint32FromInt32(9)), __ccgo_ts+14164, int32(9)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(9) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp + 16))).Fz + uintptr((*(*TToken)(unsafe.Pointer(bp + 16))).Fn-uint32(1)))))])&int32(0x01) != 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn-- @@ -171188,7 +171709,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok break } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FhName) == int32(int32(hName)) && _sqlite3StrICmp(tls, z, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(i)*16))).FzCnName) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14049, libc.VaList(bp+40, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14174, libc.VaList(bp+40, z)) _sqlite3DbFree(tls, db, z) return } @@ -171396,10 +171917,10 @@ func _sqlite3AddDefaultValue(tls *libc.TLS, pParse uintptr, pExpr uintptr, zStar isInit = libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) != int32(1)) pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(p)).FnCol)-int32(1))*16 if !(_sqlite3ExprIsConstantOrFunction(tls, pExpr, uint8(uint8(isInit))) != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14075, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14200, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } else { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14120, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14245, 0) } else { libc.Xmemset(tls, bp, 0, uint64(72)) (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_SPAN) @@ -171457,7 +171978,7 @@ func _makeColumnPartOfPrimaryKey(tls *libc.TLS, pParse uintptr, pCol uintptr) { p1 = pCol + 14 *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(COLFLAG_PRIMKEY)) if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14161, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14286, 0) } } @@ -171494,7 +172015,7 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError goto primary_key_exit } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasPrimaryKey) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14213, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14338, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto primary_key_exit } *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_HasPrimaryKey) @@ -171550,12 +172071,13 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError _sqlite3HasExplicitNulls(tls, pParse, pList) } else { if autoInc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14254, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14379, 0) } else { _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), pList, onError, uintptr(0), uintptr(0), sortOrder, 0, uint8(SQLITE_IDXTYPE_PRIMARYKEY)) pList = uintptr(0) } } + goto primary_key_exit primary_key_exit: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) @@ -171665,17 +172187,17 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui } pCol = (*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-int32(1))*16 if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) == int32(PARSE_MODE_DECLARE_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14310, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14435, 0) goto generated_done } if int32((*TColumn)(unsafe.Pointer(pCol)).FiDflt) > 0 { goto generated_error } if pType != 0 { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+14353, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+14478, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { /* no-op */ } else { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+14361, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+14486, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { eType = uint8(COLFLAG_STORED) } else { goto generated_error @@ -171704,9 +172226,11 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui _sqlite3ColumnSetExpr(tls, pParse, pTab, pCol, pExpr) pExpr = uintptr(0) goto generated_done + goto generated_error generated_error: ; - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14368, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14493, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + goto generated_done generated_done: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -171868,13 +172392,13 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { } n += _identLength(tls, (*TTable)(unsafe.Pointer(p)).FzName) if n < int32(50) { - zSep = __ccgo_ts + 1658 - zSep2 = __ccgo_ts + 14399 - zEnd = __ccgo_ts + 6415 + zSep = __ccgo_ts + 1672 + zSep2 = __ccgo_ts + 14524 + zEnd = __ccgo_ts + 6479 } else { - zSep = __ccgo_ts + 14401 - zSep2 = __ccgo_ts + 14405 - zEnd = __ccgo_ts + 14410 + zSep = __ccgo_ts + 14526 + zSep2 = __ccgo_ts + 14530 + zEnd = __ccgo_ts + 14535 } n += int32(35) + int32(6)*int32((*TTable)(unsafe.Pointer(p)).FnCol) zStmt = _sqlite3DbMallocRaw(tls, uintptr(0), uint64(uint64(n))) @@ -171882,7 +172406,7 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { _sqlite3OomFault(tls, db) return uintptr(0) } - Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+14413, 0) + Xsqlite3_snprintf(tls, n, zStmt, __ccgo_ts+14538, 0) *(*int32)(unsafe.Pointer(bp)) = _sqlite3Strlen30(tls, zStmt) _identPut(tls, zStmt, bp, (*TTable)(unsafe.Pointer(p)).FzName) v2 = *(*int32)(unsafe.Pointer(bp)) @@ -171908,17 +172432,17 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { i++ pCol += 16 } - Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+4645, libc.VaList(bp+16, zEnd)) + Xsqlite3_snprintf(tls, n-*(*int32)(unsafe.Pointer(bp)), zStmt+uintptr(*(*int32)(unsafe.Pointer(bp))), __ccgo_ts+4709, libc.VaList(bp+16, zEnd)) return zStmt } var _azType1 = [6]uintptr{ - 0: __ccgo_ts + 1658, - 1: __ccgo_ts + 14427, - 2: __ccgo_ts + 14433, - 3: __ccgo_ts + 14438, - 4: __ccgo_ts + 14443, - 5: __ccgo_ts + 14433, + 0: __ccgo_ts + 1672, + 1: __ccgo_ts + 14552, + 2: __ccgo_ts + 14558, + 3: __ccgo_ts + 14563, + 4: __ccgo_ts + 14568, + 5: __ccgo_ts + 14558, } // C documentation @@ -172492,13 +173016,13 @@ func _sqlite3ShadowTableName(tls *libc.TLS, db uintptr, zName uintptr) (r int32) func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr, tabOpts Tu32, pSelect uintptr) { bp := tls.Alloc(112) defer tls.Free(112) - var addrInsLoop, addrTop, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v4, v6, v8 int32 + var addrInsLoop, addrTop, iCsr, iDb, ii, ii1, n, nNG, regRec, regRowid, regYield, v10, v4, v6, v8 int32 var colFlags Tu32 - var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v5, v7, v9 uintptr - var v10 Ti16 + var db, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, v, zStmt, zType, zType2, v11, v13, v5, v7, v9 uintptr + var v12 Ti16 var _ /* dest at bp+0 */ TSelectDest - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v4, v5, v6, v7, v8, v9 /* The new table */ - db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrInsLoop, addrTop, colFlags, db, iCsr, iDb, ii, ii1, n, nNG, p, pCol, pDb, pEnd2, pIdx, pOld, pSchema, pSelTab, pX, regRec, regRowid, regYield, v, zStmt, zType, zType2, v10, v11, v12, v13, v4, v5, v6, v7, v8, v9 /* The new table */ + db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* An implied index of the table */ if pEnd == uintptr(0) && pSelect == uintptr(0) { return } @@ -172520,7 +173044,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if pSelect != 0 || !(int32((*TTable)(unsafe.Pointer(p)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) && (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1658, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1672, 0) return } (*TTable)(unsafe.Pointer(p)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum @@ -172547,9 +173071,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr pCol = (*TTable)(unsafe.Pointer(p)).FaCol + uintptr(ii)*16 if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf0>>4)) == COLTYPE_CUSTOM { if int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_HASTYPE) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14449, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1658))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14574, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1672))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14482, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14607, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } return } else { @@ -172570,11 +173094,11 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* Special processing for WITHOUT ROWID Tables */ if tabOpts&uint32(TF_WithoutRowid) != 0 { if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14509, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14634, 0) return } if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasPrimaryKey) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14559, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14684, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) return } *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) @@ -172621,7 +173145,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ii1++ } if nNG == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14591, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14716, 0) return } } @@ -172655,12 +173179,12 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if int32((*TTable)(unsafe.Pointer(p)).FeTabType) == TABTYP_NORM { /* A regular table */ - zType = __ccgo_ts + 10367 - zType2 = __ccgo_ts + 14635 + zType = __ccgo_ts + 10492 + zType2 = __ccgo_ts + 14760 } else { /* A view */ - zType = __ccgo_ts + 12105 - zType2 = __ccgo_ts + 14641 + zType = __ccgo_ts + 12230 + zType2 = __ccgo_ts + 14766 } /* If this is a CREATE TABLE xx AS SELECT ..., execute the SELECT ** statement to populate the new table. The root-page number for the @@ -172675,28 +173199,31 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ** a schema-lock excludes all other database users, the write-lock would ** be redundant. */ - if pSelect != 0 { /* A table that describes the SELECT results */ + if pSelect != 0 { /* Write cursor on the new table */ if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) (*TParse)(unsafe.Pointer(pParse)).FnErr++ return } - v5 = pParse + 56 - *(*int32)(unsafe.Pointer(v5))++ + v5 = pParse + 52 v4 = *(*int32)(unsafe.Pointer(v5)) - regYield = v4 + *(*int32)(unsafe.Pointer(v5))++ + iCsr = v4 v7 = pParse + 56 *(*int32)(unsafe.Pointer(v7))++ v6 = *(*int32)(unsafe.Pointer(v7)) - regRec = v6 + regYield = v6 v9 = pParse + 56 *(*int32)(unsafe.Pointer(v9))++ v8 = *(*int32)(unsafe.Pointer(v9)) - regRowid = v8 + regRec = v8 + v11 = pParse + 56 + *(*int32)(unsafe.Pointer(v11))++ + v10 = *(*int32)(unsafe.Pointer(v11)) + regRowid = v10 _sqlite3MayAbort(tls, pParse) - _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), int32(1), (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) + _sqlite3VdbeAddOp3(tls, v, int32(OP_OpenWrite), iCsr, (*TParse)(unsafe.Pointer(pParse)).FregRoot, iDb) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_P2ISREG)) - (*TParse)(unsafe.Pointer(pParse)).FnTab = int32(2) addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { @@ -172706,9 +173233,9 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr if pSelTab == uintptr(0) { return } - v10 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol - (*TTable)(unsafe.Pointer(p)).FnNVCol = v10 - (*TTable)(unsafe.Pointer(p)).FnCol = v10 + v12 = (*TTable)(unsafe.Pointer(pSelTab)).FnCol + (*TTable)(unsafe.Pointer(p)).FnNVCol = v12 + (*TTable)(unsafe.Pointer(p)).FnCol = v12 (*TTable)(unsafe.Pointer(p)).FaCol = (*TTable)(unsafe.Pointer(pSelTab)).FaCol (*TTable)(unsafe.Pointer(pSelTab)).FnCol = 0 (*TTable)(unsafe.Pointer(pSelTab)).FaCol = uintptr(0) @@ -172723,33 +173250,33 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr addrInsLoop = _sqlite3VdbeAddOp1(tls, v, int32(OP_Yield), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSDParm) _sqlite3VdbeAddOp3(tls, v, int32(OP_MakeRecord), (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst, (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst, regRec) _sqlite3TableAffinity(tls, v, p, 0) - _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), int32(1), regRowid) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), int32(1), regRec, regRowid) + _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iCsr, regRowid) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iCsr, regRec, regRowid) _sqlite3VdbeGoto(tls, v, addrInsLoop) _sqlite3VdbeJumpHere(tls, v, addrInsLoop) - _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), int32(1)) + _sqlite3VdbeAddOp1(tls, v, int32(OP_Close), iCsr) } /* Compute the complete text of the CREATE statement */ if pSelect != 0 { zStmt = _createTableStmt(tls, db, p) } else { if tabOpts != 0 { - v11 = pParse + 288 + v13 = pParse + 288 } else { - v11 = pEnd + v13 = pEnd } - pEnd2 = v11 + pEnd2 = v13 n = int32(int64((*TToken)(unsafe.Pointer(pEnd2)).Fz) - int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) if int32(*(*int8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pEnd2)).Fz))) != int32(';') { n = int32(uint32(n) + (*TToken)(unsafe.Pointer(pEnd2)).Fn) } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14646, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14771, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) } /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14661, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14786, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zType, (*TTable)(unsafe.Pointer(p)).FzName, (*TTable)(unsafe.Pointer(p)).FzName, (*TParse)(unsafe.Pointer(pParse)).FregRoot, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) _sqlite3DbFree(tls, db, zStmt) _sqlite3ChangeCookie(tls, pParse, iDb) /* Check to see if we need to create an sqlite_sequence table for @@ -172758,17 +173285,16 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != uint32(0) && !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != libc.Int32FromInt32(PARSE_MODE_NORMAL)) { pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 if (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).FpSeqTab == uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14759, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14884, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) } } /* Reparse everything to update our internal data structures */ - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14801, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14926, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) /* Test for cycles in generated columns and illegal expressions ** in CHECK constraints and in DEFAULT clauses. */ if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasGenerated) != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+14835, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(0x0001), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+14960, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), int32(1), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+14856, libc.VaList(bp+48, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(p)).FzName)), -int32(6)) } /* Add the table to the in-memory representation of the database. */ @@ -172785,7 +173311,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr /* If this is the magic sqlite_sequence table used by autoincrement, ** then record a pointer to this table in the main database structure ** so that INSERT can find the table easily. */ - if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+10889) == 0 { + if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+11014) == 0 { (*TSchema)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FpSchema)).FpSeqTab = p } } @@ -172818,7 +173344,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*uintptr)(unsafe.Pointer(bp + 112)) = uintptr(0) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if int32((*TParse)(unsafe.Pointer(pParse)).FnVar) > 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14888, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14981, 0) goto create_view_fail } _sqlite3StartTable(tls, pParse, pName1, pName2, isTemp, int32(1), 0, noErr) @@ -172835,7 +173361,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui *(*Tu32)(unsafe.Pointer(p + 48)) |= uint32(TF_NoVisibleRowid) /* Never allow rowid in view */ _sqlite3TwoPartName(tls, pParse, pName1, pName2, bp+112) iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(p)).FpSchema) - _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+12105, *(*uintptr)(unsafe.Pointer(bp + 112))) + _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+12230, *(*uintptr)(unsafe.Pointer(bp + 112))) if _sqlite3FixSelect(tls, bp+16, pSelect) != 0 { goto create_view_fail } @@ -172877,6 +173403,7 @@ func _sqlite3CreateView(tls *libc.TLS, pParse uintptr, pBegin uintptr, pName1 ui (*(*TToken)(unsafe.Pointer(bp))).Fn = uint32(1) /* Use sqlite3EndTable() to add the view to the schema table */ _sqlite3EndTable(tls, pParse, uintptr(0), bp, uint32(0), uintptr(0)) + goto create_view_fail create_view_fail: ; _sqlite3SelectDelete(tls, db, pSelect) @@ -172930,7 +173457,7 @@ func _viewGetColumnNames(tls *libc.TLS, pParse uintptr, pTable uintptr) (r int32 ** SELECT * FROM temp.ex1; */ if int32((*TTable)(unsafe.Pointer(pTable)).FnCol) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14924, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15017, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) return int32(1) } /* If we get this far, it means we need to compute the table names. @@ -173114,7 +173641,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { v = _sqlite3GetVdbe(tls, pParse) r1 = _sqlite3GetTempReg(tls, pParse) if iTable < int32(2) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14954, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15047, 0) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Destroy), iTable, r1, iDb) _sqlite3MayAbort(tls, pParse) @@ -173127,7 +173654,7 @@ func _destroyRootPage(tls *libc.TLS, pParse uintptr, iTable int32, iDb int32) { ** is in register NNN. See grammar rules associated with the TK_REGISTER ** token for additional information. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+14969, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+15062, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FaDb + uintptr(iDb)*32))).FzDbSName, iTable, r1, r1)) _sqlite3ReleaseTempReg(tls, pParse, r1) } @@ -173210,9 +173737,9 @@ func _sqlite3ClearStatTables(tls *libc.TLS, pParse uintptr, iDb int32, zType uin if !(i <= int32(4)) { break } - Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+15036, libc.VaList(bp+32, i)) + Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+15129, libc.VaList(bp+32, i)) if _sqlite3FindTable(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, bp, zDbName) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+12994, libc.VaList(bp+32, zDbName, bp, zType, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13119, libc.VaList(bp+32, zDbName, bp, zType, zName)) } goto _1 _1: @@ -173253,7 +173780,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** move as a result of the drop (can happen in auto-vacuum mode). */ if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Autoincrement) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+15050, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+15143, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) } /* Drop all entries in the schema table that refer to the ** table. The program name loops through the schema table and deletes @@ -173262,7 +173789,7 @@ func _sqlite3CodeDropTable(tls *libc.TLS, pParse uintptr, pTab uintptr, iDb int3 ** created in the temp database that refers to a table in another ** database. */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+15095, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+15188, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !(isView != 0) && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { _destroyTable(tls, pParse, pTab) } @@ -173297,11 +173824,11 @@ func _sqlite3ReadOnlyShadowTables(tls *libc.TLS, db uintptr) (r int32) { // ** Return true if it is not allowed to drop the given table // */ func _tableMayNotBeDropped(tls *libc.TLS, db uintptr, pTab uintptr) (r int32) { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+7834, int32(7)) == 0 { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+15162, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+7898, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+15255, int32(4)) == 0 { return 0 } - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+8575, int32(10)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+8700, int32(10)) == 0 { return 0 } return int32(1) @@ -173356,9 +173883,9 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 7842 + v1 = __ccgo_ts + 7906 } else { - v1 = __ccgo_ts + 7375 + v1 = __ccgo_ts + 7439 } zTab = v1 zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName @@ -173391,18 +173918,18 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 goto exit_drop_table } if _tableMayNotBeDropped(tls, db, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15167, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15260, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Ensure DROP TABLE is not used on a view, and DROP VIEW is not used ** on a table. */ if isView != 0 && !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15195, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15288, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } if !(isView != 0) && int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15229, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15322, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Generate code to remove the table from the schema table @@ -173412,11 +173939,12 @@ func _sqlite3DropTable(tls *libc.TLS, pParse uintptr, pName uintptr, isView int3 if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) if !(isView != 0) { - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+13106, (*TTable)(unsafe.Pointer(pTab)).FzName) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+13231, (*TTable)(unsafe.Pointer(pTab)).FzName) _sqlite3FkDropTable(tls, pParse, pName, pTab) } _sqlite3CodeDropTable(tls, pParse, pTab, iDb, isView) } + goto exit_drop_table exit_drop_table: ; _sqlite3SrcListDelete(tls, db, pName) @@ -173459,13 +173987,13 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p goto fk_end } if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15261, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15354, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) goto fk_end } nCol = int32(1) } else { if pToCol != 0 && (*TExprList)(unsafe.Pointer(pToCol)).FnExpr != (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15324, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15417, 0) goto fk_end } else { nCol = (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr @@ -173528,7 +174056,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p j++ } if j >= int32((*TTable)(unsafe.Pointer(p)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15418, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15511, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) goto fk_end } if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { @@ -173580,6 +174108,7 @@ func _sqlite3CreateForeignKey(tls *libc.TLS, pParse uintptr, pFromCol uintptr, p FpDfltList uintptr })(unsafe.Pointer(p + 64))).FpFKey = pFKey pFKey = uintptr(0) + goto fk_end fk_end: ; _sqlite3DbFree(tls, db, pFKey) @@ -173787,11 +174316,11 @@ func _sqlite3HasExplicitNulls(tls *libc.TLS, pParse uintptr, pList uintptr) (r i if int32(uint32(*(*uint16)(unsafe.Pointer(pList + 8 + uintptr(i)*32 + 16 + 4))&0x20>>5)) != 0 { sf = (*(*TExprList_item)(unsafe.Pointer(pList + 8 + uintptr(i)*32))).Ffg.FsortFlags if int32(int32(sf)) == 0 || int32(int32(sf)) == int32(3) { - v2 = __ccgo_ts + 15464 + v2 = __ccgo_ts + 15557 } else { - v2 = __ccgo_ts + 15470 + v2 = __ccgo_ts + 15563 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15475, libc.VaList(bp+8, v2)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15568, libc.VaList(bp+8, v2)) return int32(1) } goto _1 @@ -173869,7 +174398,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = int32(1) } } - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+15503, *(*uintptr)(unsafe.Pointer(bp + 96))) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+15596, *(*uintptr)(unsafe.Pointer(bp + 96))) if _sqlite3FixSrcList(tls, bp, pTblName) != 0 { /* Because the parser constructs pTblName from a single identifier, ** sqlite3FixSrcList can never fail. */ @@ -173879,7 +174408,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u goto exit_create_index } if iDb == int32(1) && (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema != (*TTable)(unsafe.Pointer(pTab)).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15509, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15602, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if !((*TTable)(unsafe.Pointer(pTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { @@ -173893,16 +174422,16 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32 - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+7834, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15559, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+7898, int32(7)) == 0 && int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15652, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15587, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15680, 0) goto exit_create_index } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15612, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15705, 0) goto exit_create_index } /* @@ -173923,19 +174452,19 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if zName == uintptr(0) { goto exit_create_index } - if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+15503, (*TTable)(unsafe.Pointer(pTab)).FzName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+15596, (*TTable)(unsafe.Pointer(pTab)).FzName) { goto exit_create_index } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if !((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0) { if _sqlite3FindTable(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15646, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15739, libc.VaList(bp+136, zName)) goto exit_create_index } } if _sqlite3FindIndex(tls, db, zName, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) != uintptr(0) { if !(ifNotExist != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15680, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15773, libc.VaList(bp+136, zName)) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) _sqlite3ForceNotReadOnly(tls, pParse) @@ -173956,7 +174485,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pLoop = (*TIndex)(unsafe.Pointer(pLoop)).FpNext n++ } - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+15704, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+15797, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) if zName == uintptr(0) { goto exit_create_index } @@ -173974,9 +174503,9 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { zDb = (*TDb)(unsafe.Pointer(pDb)).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 7842 + v2 = __ccgo_ts + 7906 } else { - v2 = __ccgo_ts + 7375 + v2 = __ccgo_ts + 7439 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v2, uintptr(0), zDb) != 0 { goto exit_create_index @@ -174004,7 +174533,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } _sqlite3ExprListSetSortOrder(tls, pList, sortOrder, -int32(1)) } else { - _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+15503) + _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+15596) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { goto exit_create_index } @@ -174088,7 +174617,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pCExpr = _sqlite3ExprSkipCollate(tls, (*TExprList_item)(unsafe.Pointer(pListItem)).FpExpr) if int32((*TExpr)(unsafe.Pointer(pCExpr)).Fop) != int32(TK_COLUMN) { if pTab == (*TParse)(unsafe.Pointer(pParse)).FpNewTable { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15727, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15820, 0) goto exit_create_index } if (*TIndex)(unsafe.Pointer(pIndex)).FaColExpr == uintptr(0) { @@ -174235,7 +174764,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u ** explicitly specified behavior for the index. */ if !(int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) || int32((*TIndex)(unsafe.Pointer(pIndex)).FonError) == int32(OE_Default)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15788, libc.VaList(bp+136, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15881, libc.VaList(bp+136, 0)) } if int32((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) { (*TIndex)(unsafe.Pointer(pIdx)).FonError = (*TIndex)(unsafe.Pointer(pIndex)).FonError @@ -174265,8 +174794,8 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != uintptr(0) { (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15830, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125123)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15923, 0) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(125741)) goto exit_create_index } } @@ -174306,11 +174835,11 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* A named index with an explicit CREATE INDEX statement */ if onError == OE_None { - v13 = __ccgo_ts + 1658 + v13 = __ccgo_ts + 1672 } else { - v13 = __ccgo_ts + 15847 + v13 = __ccgo_ts + 15940 } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+15855, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+15948, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) } else { /* An automatic index created by a PRIMARY KEY or UNIQUE constraint */ /* zStmt = sqlite3MPrintf(""); */ @@ -174318,7 +174847,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } /* Add an entry in sqlite_schema for this index */ - _sqlite3NestedParse(tls, pParse, __ccgo_ts+15875, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+15968, libc.VaList(bp+136, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, iMem, zStmt)) _sqlite3DbFree(tls, db, zStmt) /* Fill the index with data and reparse the schema. Code an OP_Expire ** to invalidate all pre-compiled statements. @@ -174326,7 +174855,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if pTblName != 0 { _sqlite3RefillIndex(tls, pParse, pIndex, iMem) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+15934, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+16027, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Expire), 0, int32(1)) } _sqlite3VdbeJumpHere(tls, v, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum)) @@ -174344,6 +174873,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u } } /* Clean up before exiting */ + goto exit_create_index exit_create_index: ; if pIndex != 0 { @@ -174488,7 +175018,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pIndex = _sqlite3FindIndex(tls, db, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzName, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) if pIndex == uintptr(0) { if !(ifExists != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15961, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16054, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzDatabase) _sqlite3ForceNotReadOnly(tls, pParse) @@ -174497,7 +175027,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in goto exit_drop_index } if int32(uint32(*(*uint16)(unsafe.Pointer(pIndex + 100))&0x3>>0)) != SQLITE_IDXTYPE_APPDEF { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15979, libc.VaList(bp+8, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16072, libc.VaList(bp+8, 0)) goto exit_drop_index } iDb = _sqlite3SchemaToIndex(tls, db, (*TIndex)(unsafe.Pointer(pIndex)).FpSchema) @@ -174505,9 +175035,9 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pTab = (*TIndex)(unsafe.Pointer(pIndex)).FpTable zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 7842 + v1 = __ccgo_ts + 7906 } else { - v1 = __ccgo_ts + 7375 + v1 = __ccgo_ts + 7439 } zTab = v1 if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_DELETE), zTab, uintptr(0), zDb) != 0 { @@ -174523,12 +175053,13 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in v = _sqlite3GetVdbe(tls, pParse) if v != 0 { _sqlite3BeginWriteOperation(tls, pParse, int32(1), iDb) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+16052, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) - _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+13102, (*TIndex)(unsafe.Pointer(pIndex)).FzName) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+16145, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TIndex)(unsafe.Pointer(pIndex)).FzName)) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+13227, (*TIndex)(unsafe.Pointer(pIndex)).FzName) _sqlite3ChangeCookie(tls, pParse, iDb) _destroyRootPage(tls, pParse, int32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum), iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropIndex), iDb, 0, 0, (*TIndex)(unsafe.Pointer(pIndex)).FzName, 0) } + goto exit_drop_index exit_drop_index: ; _sqlite3SrcListDelete(tls, db, pName) @@ -174714,7 +175245,7 @@ func _sqlite3SrcListEnlarge(tls *libc.TLS, pParse uintptr, pSrc uintptr, nExtra nAlloc = int64(2)*int64((*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) + int64(int64(nExtra)) db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc+nExtra >= int32(SQLITE_MAX_SRCLIST) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16112, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16205, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) return uintptr(0) } if nAlloc > int64(SQLITE_MAX_SRCLIST) { @@ -174946,11 +175477,11 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa db = (*TParse)(unsafe.Pointer(pParse)).Fdb if !(p != 0) && pOnUsing != uintptr(0) && ((*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 || (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpUsing != 0) { if (*TOnOrUsing)(unsafe.Pointer(pOnUsing)).FpOn != 0 { - v1 = __ccgo_ts + 16148 + v1 = __ccgo_ts + 16241 } else { - v1 = __ccgo_ts + 16151 + v1 = __ccgo_ts + 16244 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16157, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16250, libc.VaList(bp+8, v1)) goto append_from_error } p = _sqlite3SrcListAppend(tls, pParse, p, pTable, pDatabase) @@ -174987,6 +175518,7 @@ func _sqlite3SrcListAppendFromTerm(tls *libc.TLS, pParse uintptr, p uintptr, pTa } } return p + goto append_from_error append_from_error: ; _sqlite3ClearOnOrUsing(tls, db, pOnUsing) @@ -175147,7 +175679,7 @@ func _sqlite3BeginTransaction(tls *libc.TLS, pParse uintptr, type1 int32) { var eTxnType, i int32 _, _, _, _, _ = db, eTxnType, i, pBt, v db = (*TParse)(unsafe.Pointer(pParse)).Fdb - if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+16193, uintptr(0), uintptr(0)) != 0 { + if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+16286, uintptr(0), uintptr(0)) != 0 { return } v = _sqlite3GetVdbe(tls, pParse) @@ -175194,9 +175726,9 @@ func _sqlite3EndTransaction(tls *libc.TLS, pParse uintptr, eType int32) { _, _, _ = isRollback, v, v1 isRollback = libc.BoolInt32(eType == int32(TK_ROLLBACK)) if isRollback != 0 { - v1 = __ccgo_ts + 16199 + v1 = __ccgo_ts + 16292 } else { - v1 = __ccgo_ts + 16208 + v1 = __ccgo_ts + 16301 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), v1, uintptr(0), uintptr(0)) != 0 { return @@ -175228,9 +175760,9 @@ func _sqlite3Savepoint(tls *libc.TLS, pParse uintptr, op int32, pName uintptr) { } var _az = [3]uintptr{ - 0: __ccgo_ts + 16193, - 1: __ccgo_ts + 16215, - 2: __ccgo_ts + 16199, + 0: __ccgo_ts + 16286, + 1: __ccgo_ts + 16308, + 2: __ccgo_ts + 16292, } // C documentation @@ -175250,7 +175782,7 @@ func _sqlite3OpenTempDatabase(tls *libc.TLS, pParse uintptr) (r int32) { if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt == uintptr(0) && !((*TParse)(unsafe.Pointer(pParse)).Fexplain != 0) { rc = _sqlite3BtreeOpen(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, uintptr(0), db, bp, 0, _flags) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16223, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16316, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = rc return int32(1) } @@ -175434,7 +175966,7 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable _sqlite3StrAccumInit(tls, bp, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), 0, *(*int32)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb + 136))) if (*TIndex)(unsafe.Pointer(pIdx)).FaColExpr != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+16293, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+16386, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) } else { j = 0 for { @@ -175443,10 +175975,10 @@ func _sqlite3UniqueConstraint(tls *libc.TLS, pParse uintptr, onError int32, pIdx } zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(j)*2)))*16))).FzCnName if j != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+16304, int32(2)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+16397, int32(2)) } Xsqlite3_str_appendall(tls, bp, (*TTable)(unsafe.Pointer(pTab)).FzName) - Xsqlite3_str_append(tls, bp, __ccgo_ts+1671, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+1685, int32(1)) Xsqlite3_str_appendall(tls, bp, zCol) goto _1 _1: @@ -175475,10 +176007,10 @@ func _sqlite3RowidConstraint(tls *libc.TLS, pParse uintptr, onError int32, pTab var zMsg uintptr _, _ = rc, zMsg if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+13690, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + zMsg = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+13815, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) rc = libc.Int32FromInt32(SQLITE_CONSTRAINT) | libc.Int32FromInt32(6)< libc.BoolInt32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16423, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16516, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } return 0 } @@ -176581,11 +177113,11 @@ func _sqlite3IsReadOnly(tls *libc.TLS, pParse uintptr, pTab uintptr, pTrigger ui bp := tls.Alloc(16) defer tls.Free(16) if _tabIsReadOnly(tls, pParse, pTab) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16456, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16549, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && (pTrigger == uintptr(0) || (*TTrigger)(unsafe.Pointer(pTrigger)).FbReturning != 0 && (*TTrigger)(unsafe.Pointer(pTrigger)).FpNext == uintptr(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16485, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16578, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -176988,8 +177520,9 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** invoke the callback function. */ if memCnt != 0 { - _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+16523) + _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+16616) } + goto delete_from_cleanup delete_from_cleanup: ; _sqlite3AuthContextPop(tls, bp+8) @@ -177135,7 +177668,7 @@ func _sqlite3GenerateRowDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, pTri v3 = 0 } _sqlite3VdbeAddOp2(tls, v, int32(OP_Delete), iDataCur, v3) - if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+12891) { + if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+13016) { _sqlite3VdbeAppendP4(tls, v, pTab, -int32(5)) } if int32(int32(eMode)) != ONEPASS_OFF { @@ -177439,11 +177972,11 @@ func _typeofFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } var _azType2 = [5]uintptr{ - 0: __ccgo_ts + 7615, - 1: __ccgo_ts + 7610, - 2: __ccgo_ts + 9506, - 3: __ccgo_ts + 9501, - 4: __ccgo_ts + 1644, + 0: __ccgo_ts + 7679, + 1: __ccgo_ts + 7674, + 2: __ccgo_ts + 9631, + 3: __ccgo_ts + 9626, + 4: __ccgo_ts + 1658, } // C documentation @@ -177557,7 +178090,7 @@ func _absFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { /* IMP: R-31676-45509 If X is the integer -9223372036854775808 ** then abs(X) throws an integer overflow error since there is no ** equivalent positive 64-bit two complement value. */ - Xsqlite3_result_error(tls, context, __ccgo_ts+16536, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+16629, -int32(1)) return } iVal = -iVal @@ -177652,11 +178185,13 @@ func _instrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } } Xsqlite3_result_int(tls, context, N) + goto endInstr endInstr: ; Xsqlite3_value_free(tls, pC1) Xsqlite3_value_free(tls, pC2) return + goto endInstrOOM endInstrOOM: ; Xsqlite3_result_error_nomem(tls, context) @@ -177870,7 +178405,7 @@ func _roundFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } *(*float64)(unsafe.Pointer(bp)) = float64(int64(*(*float64)(unsafe.Pointer(bp)) + v1)) } else { - zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+16553, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) + zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+16646, libc.VaList(bp+16, n, *(*float64)(unsafe.Pointer(bp)))) if zBuf == uintptr(0) { Xsqlite3_result_error_nomem(tls, context) return @@ -178450,7 +178985,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { */ nPat = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) if nPat > *(*int32)(unsafe.Pointer(db + 136 + 8*4)) { - Xsqlite3_result_error(tls, context, __ccgo_ts+16559, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+16652, -int32(1)) return } if argc == int32(3) { @@ -178462,7 +178997,7 @@ func _likeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { return } if _sqlite3Utf8CharLen(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), -int32(1)) != int32(1) { - Xsqlite3_result_error(tls, context, __ccgo_ts+16592, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+16685, -int32(1)) return } escape = _sqlite3Utf8Read(tls, bp+8) @@ -178544,7 +179079,7 @@ func _errlogFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { defer tls.Free(16) _ = argc _ = context - Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+4645, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) + Xsqlite3_log(tls, Xsqlite3_value_int(tls, *(*uintptr)(unsafe.Pointer(argv))), __ccgo_ts+4709, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) } // C documentation @@ -178631,17 +179166,17 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_FLOAT): r1 = Xsqlite3_value_double(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+16637, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+16730, libc.VaList(bp+16, r1)) zVal = Xsqlite3_str_value(tls, pStr) if zVal != 0 { _sqlite3AtoF(tls, zVal, bp, int32((*TStrAccum)(unsafe.Pointer(pStr)).FnChar), uint8(SQLITE_UTF8)) if r1 != *(*float64)(unsafe.Pointer(bp)) { Xsqlite3_str_reset(tls, pStr) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+16645, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+16738, libc.VaList(bp+16, r1)) } } case int32(SQLITE_INTEGER): - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1414, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1433, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) case int32(SQLITE_BLOB): zBlob = Xsqlite3_value_blob(tls, pValue) nBlob = int64(Xsqlite3_value_bytes(tls, pValue)) @@ -178669,9 +179204,9 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr) { } case int32(SQLITE_TEXT): zArg = Xsqlite3_value_text(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+16653, libc.VaList(bp+16, zArg)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+16746, libc.VaList(bp+16, zArg)) default: - Xsqlite3_str_append(tls, pStr, __ccgo_ts+1659, int32(4)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+1673, int32(4)) break } } @@ -178908,7 +179443,7 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { var v3 uint32 var _ /* zHex at bp+0 */ uintptr _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, ch, d, nHex, nPass, p, pBlob, zPass, v1, v2, v3, v4, v5, v6 - zPass = __ccgo_ts + 1658 + zPass = __ccgo_ts + 1672 nPass = 0 *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) nHex = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) @@ -178960,10 +179495,12 @@ func _unhexFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { *(*Tu8)(unsafe.Pointer(v6)) = uint8(int32(_sqlite3HexToInt(tls, int32(int32(c))))< 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fapprox != 0 { if (*TSumCtx)(unsafe.Pointer(p)).Fovrfl != 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+16536, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+16629, -int32(1)) } else { if !(_sqlite3IsOverflow(tls, (*TSumCtx)(unsafe.Pointer(p)).FrErr) != 0) { Xsqlite3_result_double(tls, context, (*TSumCtx)(unsafe.Pointer(p)).FrSum+(*TSumCtx)(unsafe.Pointer(p)).FrErr) @@ -179971,7 +180508,7 @@ func _groupConcatValue(tls *libc.TLS, context uintptr) { func _sqlite3RegisterPerConnectionBuiltinFunctions(tls *libc.TLS, db uintptr) { var rc int32 _ = rc - rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+16661, int32(2)) + rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+16754, int32(2)) if rc == int32(SQLITE_NOMEM) { _sqlite3OomFault(tls, db) } @@ -180000,8 +180537,8 @@ func _sqlite3RegisterLikeFunctions(tls *libc.TLS, db uintptr, caseSensitive int3 if !(nArg <= int32(3)) { break } - _sqlite3CreateFunc(tls, db, __ccgo_ts+16667, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+16667, nArg, uint8(SQLITE_UTF8), uint8(0)) + _sqlite3CreateFunc(tls, db, __ccgo_ts+16760, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+16760, nArg, uint8(SQLITE_UTF8), uint8(0)) *(*Tu32)(unsafe.Pointer(pDef + 4)) |= uint32(uint32(flags)) *(*Tu32)(unsafe.Pointer(pDef + 4)) &= uint32(^libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)) goto _1 @@ -180307,562 +180844,562 @@ var _aBuiltinFunc = [110]TFuncDef{ FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_implies_nonnull_row))), - FzName: __ccgo_ts + 16672, + FzName: __ccgo_ts + 16765, }, 1: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_compare))), - FzName: __ccgo_ts + 16692, + FzName: __ccgo_ts + 16785, }, 2: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_expr_implies_expr))), - FzName: __ccgo_ts + 16705, + FzName: __ccgo_ts + 16798, }, 3: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_FUNC_TEST) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_affinity))), - FzName: __ccgo_ts + 16723, + FzName: __ccgo_ts + 16816, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16732, + FzName: __ccgo_ts + 16825, }, 5: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 16740, + FzName: __ccgo_ts + 16833, }, 6: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 16740, + FzName: __ccgo_ts + 16833, }, 7: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16755, + FzName: __ccgo_ts + 16848, }, 8: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16781, + FzName: __ccgo_ts + 16874, }, 9: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 16806, + FzName: __ccgo_ts + 16899, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 16815, + FzName: __ccgo_ts + 16908, }, 11: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_FUNC_UNLIKELY)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_unlikely))), - FzName: __ccgo_ts + 16826, + FzName: __ccgo_ts + 16919, }, 12: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_sqlite_offset))), - FzName: __ccgo_ts + 16833, + FzName: __ccgo_ts + 16926, }, 13: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 16847, + FzName: __ccgo_ts + 16940, }, 14: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 16847, + FzName: __ccgo_ts + 16940, }, 15: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 16853, + FzName: __ccgo_ts + 16946, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 16853, + FzName: __ccgo_ts + 16946, }, 17: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 16859, + FzName: __ccgo_ts + 16952, }, 18: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(3))), - FzName: __ccgo_ts + 16859, + FzName: __ccgo_ts + 16952, }, 19: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16864, + FzName: __ccgo_ts + 16957, }, 20: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16864, + FzName: __ccgo_ts + 16957, }, 21: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 16864, + FzName: __ccgo_ts + 16957, }, 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 16868, + FzName: __ccgo_ts + 16961, }, 23: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 16868, + FzName: __ccgo_ts + 16961, }, 24: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_MINMAX) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 16868, + FzName: __ccgo_ts + 16961, }, 25: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 16872, + FzName: __ccgo_ts + 16965, }, 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_TYPEOF)), - FzName: __ccgo_ts + 16879, + FzName: __ccgo_ts + 16972, }, 27: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_LENGTH)), - FzName: __ccgo_ts + 16887, + FzName: __ccgo_ts + 16980, }, 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_BYTELEN)), - FzName: __ccgo_ts + 16894, + FzName: __ccgo_ts + 16987, }, 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16907, + FzName: __ccgo_ts + 17000, }, 30: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16913, + FzName: __ccgo_ts + 17006, }, 31: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16920, + FzName: __ccgo_ts + 17013, }, 32: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16927, + FzName: __ccgo_ts + 17020, }, 33: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16935, + FzName: __ccgo_ts + 17028, }, 34: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16940, + FzName: __ccgo_ts + 17033, }, 35: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16944, + FzName: __ccgo_ts + 17037, }, 36: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16944, + FzName: __ccgo_ts + 17037, }, 37: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16950, + FzName: __ccgo_ts + 17043, }, 38: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16956, + FzName: __ccgo_ts + 17049, }, 39: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16962, + FzName: __ccgo_ts + 17055, }, 40: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16966, + FzName: __ccgo_ts + 17059, }, 41: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16966, + FzName: __ccgo_ts + 17059, }, 42: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16972, + FzName: __ccgo_ts + 17065, }, 43: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16972, + FzName: __ccgo_ts + 17065, }, 44: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16979, + FzName: __ccgo_ts + 17072, }, 45: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16979, + FzName: __ccgo_ts + 17072, }, 46: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16979, + FzName: __ccgo_ts + 17072, }, 47: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16989, + FzName: __ccgo_ts + 17082, }, 48: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16996, + FzName: __ccgo_ts + 17089, }, 49: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 17003, + FzName: __ccgo_ts + 17096, }, 50: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 17014, + FzName: __ccgo_ts + 17107, }, 51: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17021, + FzName: __ccgo_ts + 17114, }, 52: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17036, + FzName: __ccgo_ts + 17129, }, 53: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 17053, + FzName: __ccgo_ts + 17146, }, 54: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 17064, + FzName: __ccgo_ts + 17157, }, 55: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 17070, + FzName: __ccgo_ts + 17163, }, 56: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 17088, + FzName: __ccgo_ts + 17181, }, 57: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 17096, + FzName: __ccgo_ts + 17189, }, 58: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 17110, + FzName: __ccgo_ts + 17203, }, 59: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 17118, + FzName: __ccgo_ts + 17211, }, 60: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 17127, + FzName: __ccgo_ts + 17220, }, 61: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 17127, + FzName: __ccgo_ts + 17220, }, 62: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 17134, + FzName: __ccgo_ts + 17227, }, 63: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 17134, + FzName: __ccgo_ts + 17227, }, 64: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 17144, + FzName: __ccgo_ts + 17237, }, 65: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 17148, + FzName: __ccgo_ts + 17241, }, 66: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 17154, + FzName: __ccgo_ts + 17247, }, 67: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_COUNT) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 17158, + FzName: __ccgo_ts + 17251, }, 68: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_FUNC_ANYORDER)), - FzName: __ccgo_ts + 17158, + FzName: __ccgo_ts + 17251, }, 69: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 17164, + FzName: __ccgo_ts + 17257, }, 70: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 17164, + FzName: __ccgo_ts + 17257, }, 71: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 17177, + FzName: __ccgo_ts + 17270, }, 72: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE) | libc.Int32FromInt32(SQLITE_FUNC_CASE)), FpUserData: uintptr(unsafe.Pointer(&_globInfo)), - FzName: __ccgo_ts + 17188, + FzName: __ccgo_ts + 17281, }, 73: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 16667, + FzName: __ccgo_ts + 16760, }, 74: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_LIKE)), FpUserData: uintptr(unsafe.Pointer(&_likeInfoNorm)), - FzName: __ccgo_ts + 16667, + FzName: __ccgo_ts + 16760, }, 75: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 8039, + FzName: __ccgo_ts + 8103, }, 76: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 8039, + FzName: __ccgo_ts + 8103, }, 77: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17193, + FzName: __ccgo_ts + 17286, }, 78: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17198, + FzName: __ccgo_ts + 1245, }, 79: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17206, + FzName: __ccgo_ts + 1253, }, 80: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17212, + FzName: __ccgo_ts + 17291, }, 81: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 17218, + FzName: __ccgo_ts + 17297, }, 82: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 17221, + FzName: __ccgo_ts + 17300, }, 83: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(1))), - FzName: __ccgo_ts + 17225, + FzName: __ccgo_ts + 17304, }, 84: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), FpUserData: uintptr(int64(libc.Int32FromInt32(2))), - FzName: __ccgo_ts + 17231, + FzName: __ccgo_ts + 17310, }, 85: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 17221, + FzName: __ccgo_ts + 17300, }, 86: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17236, + FzName: __ccgo_ts + 17315, }, 87: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17240, + FzName: __ccgo_ts + 17319, }, 88: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17244, + FzName: __ccgo_ts + 17323, }, 89: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17250, + FzName: __ccgo_ts + 17329, }, 90: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17254, + FzName: __ccgo_ts + 17333, }, 91: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17259, + FzName: __ccgo_ts + 17338, }, 92: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17264, + FzName: __ccgo_ts + 17343, }, 93: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17269, + FzName: __ccgo_ts + 17348, }, 94: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17275, + FzName: __ccgo_ts + 17354, }, 95: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17279, + FzName: __ccgo_ts + 17358, }, 96: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17283, + FzName: __ccgo_ts + 17362, }, 97: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17287, + FzName: __ccgo_ts + 17366, }, 98: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17292, + FzName: __ccgo_ts + 17371, }, 99: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17297, + FzName: __ccgo_ts + 17376, }, 100: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17302, + FzName: __ccgo_ts + 17381, }, 101: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17308, + FzName: __ccgo_ts + 17387, }, 102: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17314, + FzName: __ccgo_ts + 17393, }, 103: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17320, + FzName: __ccgo_ts + 17399, }, 104: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17325, + FzName: __ccgo_ts + 17404, }, 105: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 17333, + FzName: __ccgo_ts + 17412, }, 106: { FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 17341, + FzName: __ccgo_ts + 17420, }, 107: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 17344, + FzName: __ccgo_ts + 17423, }, 108: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 8039, + FzName: __ccgo_ts + 8103, }, 109: { FnArg: int8(3), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_INLINE) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(0)), FpUserData: uintptr(int64(libc.Int32FromInt32(INLINEFUNC_iif))), - FzName: __ccgo_ts + 17349, + FzName: __ccgo_ts + 17428, }, } @@ -181339,7 +181876,7 @@ func _sqlite3FkLocateIndex(tls *libc.TLS, pParse uintptr, pParent uintptr, pFKey } if !(pIdx != 0) { if !((*TParse)(unsafe.Pointer(pParse)).FdisableTriggers != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17353, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17432, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) } _sqlite3DbFree(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, aiCol) return int32(1) @@ -182450,11 +182987,11 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr break } *(*TToken)(unsafe.Pointer(bp + 16)) = TToken{ - Fz: __ccgo_ts + 7905, + Fz: __ccgo_ts + 7969, Fn: uint32(3), } /* Literal "old" token */ *(*TToken)(unsafe.Pointer(bp + 32)) = TToken{ - Fz: __ccgo_ts + 7901, + Fz: __ccgo_ts + 7965, Fn: uint32(3), } /* tFromCol = OLD.tToCol */ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -182518,7 +183055,7 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr nFrom = _sqlite3Strlen30(tls, zFrom) if action == int32(OE_Restrict) { iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+6534) + pRaise = _sqlite3Expr(tls, db, int32(TK_RAISE), __ccgo_ts+6598) if pRaise != 0 { (*TExpr)(unsafe.Pointer(pRaise)).FaffExpr = int8(OE_Abort) } @@ -183099,7 +183636,7 @@ func _sqlite3ComputeGeneratedColumns(tls *libc.TLS, pParse uintptr, iRegStore in } } if pRedo != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9471, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9596, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) } (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 } @@ -183360,6 +183897,219 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { } } +// C documentation +// +// /* +// ** If argument pVal is a Select object returned by an sqlite3MultiValues() +// ** that was able to use the co-routine optimization, finish coding the +// ** co-routine. +// */ +func _sqlite3MultiValuesEnd(tls *libc.TLS, pParse uintptr, pVal uintptr) { + var pItem uintptr + _ = pItem + if pVal != 0 && (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pVal)).FpSrc)).FnSrc > 0 { + pItem = (*TSelect)(unsafe.Pointer(pVal)).FpSrc + 8 + _sqlite3VdbeEndCoroutine(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn) + _sqlite3VdbeJumpHere(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, (*TSrcItem)(unsafe.Pointer(pItem)).FaddrFillSub-int32(1)) + } +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are constant. +// */ +func _exprListIsConstant(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + if 0 == _sqlite3ExprIsConstant(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** Return true if all expressions in the expression-list passed as the +// ** only argument are both constant and have no affinity. +// */ +func _exprListIsNoAffinity(tls *libc.TLS, pParse uintptr, pRow uintptr) (r int32) { + var ii int32 + var pExpr uintptr + _, _ = ii, pExpr + if _exprListIsConstant(tls, pParse, pRow) == 0 { + return 0 + } + ii = 0 + for { + if !(ii < (*TExprList)(unsafe.Pointer(pRow)).FnExpr) { + break + } + pExpr = (*(*TExprList_item)(unsafe.Pointer(pRow + 8 + uintptr(ii)*32))).FpExpr + if 0 != int32(_sqlite3ExprAffinity(tls, pExpr)) { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + +// C documentation +// +// /* +// ** This function is called by the parser for the second and subsequent +// ** rows of a multi-row VALUES clause. Argument pLeft is the part of +// ** the VALUES clause already parsed, argument pRow is the vector of values +// ** for the new row. The Select object returned represents the complete +// ** VALUES clause, including the new row. +// ** +// ** There are two ways in which this may be achieved - by incremental +// ** coding of a co-routine (the "co-routine" method) or by returning a +// ** Select object equivalent to the following (the "UNION ALL" method): +// ** +// ** "pLeft UNION ALL SELECT pRow" +// ** +// ** If the VALUES clause contains a lot of rows, this compound Select +// ** object may consume a lot of memory. +// ** +// ** When the co-routine method is used, each row that will be returned +// ** by the VALUES clause is coded into part of a co-routine as it is +// ** passed to this function. The returned Select object is equivalent to: +// ** +// ** SELECT * FROM ( +// ** Select object to read co-routine +// ** ) +// ** +// ** The co-routine method is used in most cases. Exceptions are: +// ** +// ** a) If the current statement has a WITH clause. This is to avoid +// ** statements like: +// ** +// ** WITH cte AS ( VALUES('x'), ('y') ... ) +// ** SELECT * FROM cte AS a, cte AS b; +// ** +// ** This will not work, as the co-routine uses a hard-coded register +// ** for its OP_Yield instructions, and so it is not possible for two +// ** cursors to iterate through it concurrently. +// ** +// ** b) The schema is currently being parsed (i.e. the VALUES clause is part +// ** of a schema item like a VIEW or TRIGGER). In this case there is no VM +// ** being generated when parsing is taking place, and so generating +// ** a co-routine is not possible. +// ** +// ** c) There are non-constant expressions in the VALUES clause (e.g. +// ** the VALUES clause is part of a correlated sub-query). +// ** +// ** d) One or more of the values in the first row of the VALUES clause +// ** has an affinity (i.e. is a CAST expression). This causes problems +// ** because the complex rules SQLite uses (see function +// ** sqlite3SubqueryColumnTypes() in select.c) to determine the effective +// ** affinity of such a column for all rows require access to all values in +// ** the column simultaneously. +// */ +func _sqlite3MultiValues(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRow uintptr) (r uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var f, v1 int32 + var p, pRet, pSelect, v, v2 uintptr + var _ /* dest at bp+0 */ TSelectDest + _, _, _, _, _, _, _ = f, p, pRet, pSelect, v, v1, v2 + if (*TParse)(unsafe.Pointer(pParse)).FbHasWith != 0 || (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy != 0 || _exprListIsConstant(tls, pParse, pRow) == 0 || (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 && _exprListIsNoAffinity(tls, pParse, (*TSelect)(unsafe.Pointer(pLeft)).FpEList) == 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) != PARSE_MODE_NORMAL { + /* The co-routine method cannot be used. Fall back to UNION ALL. */ + pSelect = uintptr(0) + f = libc.Int32FromInt32(SF_Values) | libc.Int32FromInt32(SF_MultiValue) + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc != 0 { + _sqlite3MultiValuesEnd(tls, pParse, pLeft) + f = int32(SF_Values) + } else { + if (*TSelect)(unsafe.Pointer(pLeft)).FpPrior != 0 { + /* In this case set the SF_MultiValue flag only if it was set on pLeft */ + f = int32(uint32(uint32(f)) & (*TSelect)(unsafe.Pointer(pLeft)).FselFlags) + } + } + pSelect = _sqlite3SelectNew(tls, pParse, pRow, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(uint32(f)), uintptr(0)) + *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) + if pSelect != 0 { + (*TSelect)(unsafe.Pointer(pSelect)).Fop = uint8(TK_ALL) + (*TSelect)(unsafe.Pointer(pSelect)).FpPrior = pLeft + pLeft = pSelect + } + } else { + p = uintptr(0) /* SrcItem that reads from co-routine */ + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpSrc)).FnSrc == 0 { + /* Co-routine has not yet been started and the special Select object + ** that accesses the co-routine has not yet been created. This block + ** does both those things. */ + v = _sqlite3GetVdbe(tls, pParse) + pRet = _sqlite3SelectNew(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) + /* Ensure the database schema has been read. This is to ensure we have + ** the correct text encoding. */ + if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmDbFlags&uint32(DBFLAG_SchemaKnownOk) == uint32(0) { + _sqlite3ReadSchema(tls, pParse) + } + if pRet != 0 { + (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pRet)).FpSrc)).FnSrc = int32(1) + (*TSelect)(unsafe.Pointer(pRet)).FpPrior = (*TSelect)(unsafe.Pointer(pLeft)).FpPrior + (*TSelect)(unsafe.Pointer(pRet)).Fop = (*TSelect)(unsafe.Pointer(pLeft)).Fop + (*TSelect)(unsafe.Pointer(pLeft)).FpPrior = uintptr(0) + (*TSelect)(unsafe.Pointer(pLeft)).Fop = uint8(TK_SELECT) + p = (*TSelect)(unsafe.Pointer(pRet)).FpSrc + 8 + (*TSrcItem)(unsafe.Pointer(p)).FpSelect = pLeft + libc.SetBitFieldPtr16Uint32(p+60+4, libc.Uint32FromInt32(1), 5, 0x20) + (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + v2 = pParse + 56 + *(*int32)(unsafe.Pointer(v2))++ + v1 = *(*int32)(unsafe.Pointer(v2)) + (*TSrcItem)(unsafe.Pointer(p)).FregReturn = v1 + (*TSrcItem)(unsafe.Pointer(p)).FiCursor = -int32(1) + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1)) = uint32(2) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn, 0, (*TSrcItem)(unsafe.Pointer(p)).FaddrFillSub) + _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + /* Allocate registers for the output of the co-routine. Do so so + ** that there are two unused registers immediately before those + ** used by the co-routine. This allows the code in sqlite3Insert() + ** to use these registers directly, instead of copying the output + ** of the co-routine to a separate array for processing. */ + (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(3) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pLeft)).FpEList)).FnExpr + *(*int32)(unsafe.Pointer(pParse + 56)) += int32(2) + (*(*TSelectDest)(unsafe.Pointer(bp))).FnSdst + *(*Tu32)(unsafe.Pointer(pLeft + 4)) |= uint32(SF_MultiValue) + _sqlite3Select(tls, pParse, pLeft, bp) + (*TSrcItem)(unsafe.Pointer(p)).FregResult = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst + pLeft = pRet + } + } else { + p = (*TSelect)(unsafe.Pointer(pLeft)).FpSrc + 8 + *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(p)).Fu1))++ + } + if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { + if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p)).FpSelect)).FpEList)).FnExpr != (*TExprList)(unsafe.Pointer(pRow)).FnExpr { + _sqlite3SelectWrongNumTermsError(tls, pParse, (*TSrcItem)(unsafe.Pointer(p)).FpSelect) + } else { + _sqlite3ExprCodeExprList(tls, pParse, pRow, (*TSrcItem)(unsafe.Pointer(p)).FregResult, 0, uint8(0)) + _sqlite3VdbeAddOp1(tls, (*TParse)(unsafe.Pointer(pParse)).FpVdbe, int32(OP_Yield), (*TSrcItem)(unsafe.Pointer(p)).FregReturn) + } + } + _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pRow) + } + return pLeft +} + // C documentation // // /* @@ -183462,27 +184212,27 @@ func _sqlite3AutoincrementEnd(tls *libc.TLS, pParse uintptr) { func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uintptr, pColumn uintptr, onError int32, pUpsert uintptr) { bp := tls.Alloc(160) defer tls.Free(160) - var aRegIdx, db, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, v, v13, v16, v18, v6, v9 uintptr - var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v12, v15, v17, v19, v23, v24, v5, v7, v8 int32 + var aRegIdx, db, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, v, v10, v14, v17, v19, v7 uintptr + var addr1, addr11, addrCont, addrInsTop, addrL, addrTop, bUseSeek, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, y, v1, v13, v16, v18, v20, v24, v25, v5, v6, v8, v9 int32 var appendFlag, bIdListInOrder, useTempTable, withoutRowid Tu8 - var colFlags, v21 Tu32 + var colFlags, v22 Tu32 var _ /* dest at bp+8 */ TSelectDest var _ /* iDataCur at bp+0 */ int32 var _ /* iIdxCur at bp+4 */ int32 var _ /* isReplace at bp+112 */ int32 var _ /* sNC at bp+56 */ TNameContext var _ /* tmask at bp+48 */ int32 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v12, v13, v15, v16, v17, v18, v19, v21, v23, v24, v5, v6, v7, v8, v9 /* Number of columns in the data */ - nHidden = 0 /* Number of hidden columns if TABLE is virtual */ - *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ - *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ - ipkColumn = -int32(1) /* Label for the end of the insertion loop */ - srcTab = 0 /* Data comes from this temporary cursor if >=0 */ - addrInsTop = 0 /* Jump to label "D" */ - addrCont = 0 /* Index of database holding TABLE */ - useTempTable = uint8(0) /* Store SELECT results in intermediate table */ - appendFlag = uint8(0) /* True if IDLIST is in table order */ - pList = uintptr(0) /* Register in which to store next column */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = aRegIdx, addr1, addr11, addrCont, addrInsTop, addrL, addrTop, appendFlag, bIdListInOrder, bUseSeek, colFlags, db, endOfLoop, i, iDb, iRegStore, ipkColumn, isView, j, k, nColumn, nHidden, nIdx, pIdx, pIpk, pItem, pList, pNx, pTab, pTrigger, pVTab, pX, rc, regAutoinc, regCols, regData, regFromSelect, regIns, regRec, regRowCount, regRowid, regTempRowid, regYield, srcTab, useTempTable, v, withoutRowid, y, v1, v10, v13, v14, v16, v17, v18, v19, v20, v22, v24, v25, v5, v6, v7, v8, v9 /* Number of columns in the data */ + nHidden = 0 /* Number of hidden columns if TABLE is virtual */ + *(*int32)(unsafe.Pointer(bp)) = 0 /* VDBE cursor that is the main data repository */ + *(*int32)(unsafe.Pointer(bp + 4)) = 0 /* First index cursor */ + ipkColumn = -int32(1) /* Label for the end of the insertion loop */ + srcTab = 0 /* Data comes from this temporary cursor if >=0 */ + addrInsTop = 0 /* Jump to label "D" */ + addrCont = 0 /* Index of database holding TABLE */ + useTempTable = uint8(0) /* Store SELECT results in intermediate table */ + appendFlag = uint8(0) /* True if IDLIST is in table order */ + pList = uintptr(0) /* Register in which to store next column */ /* Register allocations */ regFromSelect = 0 /* Base register for data coming from SELECT */ regAutoinc = 0 /* Register holding the AUTOINCREMENT counter */ @@ -183620,7 +184370,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i } if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_STORED)|libc.Int32FromInt32(COLFLAG_VIRTUAL)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17398, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17477, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto insert_cleanup } break @@ -183635,7 +184385,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i bIdListInOrder = uint8(0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17439, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17518, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*16))).FzName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto insert_cleanup } @@ -183652,28 +184402,46 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** co-routine is the common header to the 3rd and 4th templates. */ if pSelect != 0 { /* Result code */ - v6 = pParse + 56 - *(*int32)(unsafe.Pointer(v6))++ - v5 = *(*int32)(unsafe.Pointer(v6)) - regYield = v5 - addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) - _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) - _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) - if bIdListInOrder != 0 { - v7 = regData - } else { - v7 = 0 - } - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v7 - (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) - rc = _sqlite3Select(tls, pParse, pSelect, bp+8) - regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst - if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { - goto insert_cleanup + if (*TSrcList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc)).FnSrc == int32(1) && int32(uint32(*(*uint16)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + 60 + 4))&0x20>>5)) != 0 && (*TSelect)(unsafe.Pointer(pSelect)).FpPrior == uintptr(0) { + pItem = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + 8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSDParm = (*TSrcItem)(unsafe.Pointer(pItem)).FregReturn + regFromSelect = (*TSrcItem)(unsafe.Pointer(pItem)).FregResult + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSelect)).FpEList)).FnExpr + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+17550, libc.VaList(bp+128, pItem)) + if bIdListInOrder != 0 && nColumn == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { + regData = regFromSelect + regRowid = regData - int32(1) + if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { + v5 = int32(1) + } else { + v5 = 0 + } + regIns = regRowid - v5 + } + } else { + v7 = pParse + 56 + *(*int32)(unsafe.Pointer(v7))++ + v6 = *(*int32)(unsafe.Pointer(v7)) /* Top of the co-routine */ + regYield = v6 + addrTop = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) + _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regYield, 0, addrTop) + _sqlite3SelectDestInit(tls, bp+8, int32(SRT_Coroutine), regYield) + if bIdListInOrder != 0 { + v8 = regData + } else { + v8 = 0 + } + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst = v8 + (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FnSdst = int32((*TTable)(unsafe.Pointer(pTab)).FnCol) + rc = _sqlite3Select(tls, pParse, pSelect, bp+8) + regFromSelect = (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSdst + if rc != 0 || (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { + goto insert_cleanup + } + _sqlite3VdbeEndCoroutine(tls, v, regYield) + _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ + nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr } - _sqlite3VdbeEndCoroutine(tls, v, regYield) - _sqlite3VdbeJumpHere(tls, v, addrTop-int32(1)) /* label B: */ - nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSelect)).FpEList)).FnExpr /* Set useTempTable to TRUE if the result of the SELECT statement ** should be written into a temporary table (template 4). Set to ** FALSE if each output row of the SELECT can be written directly into @@ -183687,10 +184455,10 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin useTempTable = uint8(1) } if useTempTable != 0 { /* Label "L" */ - v9 = pParse + 52 - v8 = *(*int32)(unsafe.Pointer(v9)) - *(*int32)(unsafe.Pointer(v9))++ - srcTab = v8 + v10 = pParse + 52 + v9 = *(*int32)(unsafe.Pointer(v10)) + *(*int32)(unsafe.Pointer(v10))++ + srcTab = v9 regRec = _sqlite3GetTempReg(tls, pParse) regTempRowid = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp2(tls, v, int32(OP_OpenEphemeral), srcTab, nColumn) @@ -183731,8 +184499,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { ipkColumn-- } - goto _10 - _10: + goto _11 + _11: ; i-- } @@ -183749,28 +184517,28 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags)&int32(COLFLAG_NOINSERT) != 0 { nHidden++ } - goto _11 - _11: + goto _12 + _12: ; i++ } } if nColumn != int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17471, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17558, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) goto insert_cleanup } } if pColumn != uintptr(0) && nColumn != (*TIdList)(unsafe.Pointer(pColumn)).FnId { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17523, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+17610, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) goto insert_cleanup } /* Initialize the count of rows to be inserted */ if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&(uint64(libc.Int32FromInt32(0x00001))<= 0 { /* tag-20191021-001: If the INTEGER PRIMARY KEY is being generated by the ** SELECT, go ahead and copy the value into the rowid slot now, so that @@ -183883,18 +184651,18 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ** using excess space. The file format definition requires this extra ** NULL - we cannot optimize further by skipping the column completely */ _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) - goto _20 + goto _21 } - v21 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) - colFlags = v21 - if v21&uint32(COLFLAG_NOINSERT) != uint32(0) { + v22 = uint32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(i)*16))).FcolFlags) + colFlags = v22 + if v22&uint32(COLFLAG_NOINSERT) != uint32(0) { nHidden++ if colFlags&uint32(COLFLAG_VIRTUAL) != uint32(0) { /* Virtual columns do not participate in OP_MakeRecord. So back up ** iRegStore by one slot to compensate for the iRegStore++ in the ** outer for() loop */ iRegStore-- - goto _20 + goto _21 } else { if colFlags&uint32(COLFLAG_STORED) != uint32(0) { /* Stored columns are computed later. But if there are BEFORE @@ -183904,13 +184672,13 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if *(*int32)(unsafe.Pointer(bp + 48))&int32(TRIGGER_BEFORE) != 0 { _sqlite3VdbeAddOp1(tls, v, int32(OP_SoftNull), iRegStore) } - goto _20 + goto _21 } else { if pColumn == uintptr(0) { /* Hidden columns that are not explicitly named in the INSERT ** get there default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } } } @@ -183921,8 +184689,8 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin if !(j < (*TIdList)(unsafe.Pointer(pColumn)).FnId && *(*int32)(unsafe.Pointer(pColumn + 8 + uintptr(j)*16 + 8)) != i) { break } - goto _22 - _22: + goto _23 + _23: ; j++ } @@ -183930,14 +184698,14 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin /* A column not named in the insert column list gets its ** default value */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } k = j } else { if nColumn == 0 { /* This is INSERT INTO ... DEFAULT VALUES. Load the default value. */ _sqlite3ExprCodeFactorable(tls, pParse, _sqlite3ColumnExpr(tls, pTab, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(i)*16), iRegStore) - goto _20 + goto _21 } else { k = i - nHidden } @@ -183954,16 +184722,16 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin y = _sqlite3ExprCodeTarget(tls, pParse, pX, iRegStore) if y != iRegStore { if (*TExpr)(unsafe.Pointer(pX)).Fflags&uint32(libc.Int32FromInt32(EP_Subquery)) != uint32(0) { - v23 = int32(OP_Copy) + v24 = int32(OP_Copy) } else { - v23 = int32(OP_SCopy) + v24 = int32(OP_SCopy) } - _sqlite3VdbeAddOp2(tls, v, v23, y, iRegStore) + _sqlite3VdbeAddOp2(tls, v, v24, y, iRegStore) } } } - goto _20 - _20: + goto _21 + _21: ; i++ iRegStore++ @@ -184074,11 +184842,11 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VtabMakeWritable(tls, pParse, pTab) _sqlite3VdbeAddOp4(tls, v, int32(OP_VUpdate), int32(1), int32((*TTable)(unsafe.Pointer(pTab)).FnCol)+int32(2), regIns, pVTab, -int32(11)) if onError == int32(OE_Default) { - v24 = int32(OE_Abort) + v25 = int32(OE_Abort) } else { - v24 = onError + v25 = onError } - _sqlite3VdbeChangeP5(tls, v, uint16(v24)) + _sqlite3VdbeChangeP5(tls, v, uint16(v25)) _sqlite3MayAbort(tls, pParse) } else { *(*int32)(unsafe.Pointer(bp + 112)) = 0 /* True to use OPFLAG_SEEKRESULT */ @@ -184121,6 +184889,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin _sqlite3VdbeJumpHere(tls, v, addrInsTop) } } + goto insert_end insert_end: ; /* Update the sqlite_sequence table by storing the content of the @@ -184136,8 +184905,9 @@ insert_end: ** invoke the callback function. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+17615) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+17702) } + goto insert_cleanup insert_cleanup: ; _sqlite3SrcListDelete(tls, db, pTabList) @@ -184528,7 +185298,7 @@ func _sqlite3GenerateConstraintChecks(tls *libc.TLS, pParse uintptr, pTab uintpt case int32(OE_Rollback): fallthrough case int32(OE_Fail): - zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+13690, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+13815, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) _sqlite3VdbeAddOp3(tls, v, int32(OP_HaltIfNull), libc.Int32FromInt32(SQLITE_CONSTRAINT)|libc.Int32FromInt32(5)<= 0 && !(int32(*(*int8)(unsafe.Pointer(zFile + uintptr(iFile)))) == int32('/') || int32(*(*int8)(unsafe.Pointer(zFile + uintptr(iFile)))) == int32('\\'))) { @@ -186761,7 +187532,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp iFile-- } iFile++ - if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+17665, int32(3)) == 0 { + if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+17752, int32(3)) == 0 { iFile += int32(3) } iEntry = int32(8) @@ -186781,7 +187552,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp ; iFile++ } - libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+17669, uint64(6)) + libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+17756, uint64(6)) zEntry = zAltEntry xInit = _sqlite3OsDlSym(tls, pVfs, handle, zEntry) } @@ -186793,7 +187564,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v7 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(int32(nMsg)), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+17675, libc.VaList(bp+16, zEntry, zFile)) + Xsqlite3_snprintf(tls, int32(int32(nMsg)), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+17762, libc.VaList(bp+16, zEntry, zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -186808,7 +187579,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp return SQLITE_OK } if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+17718, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+17805, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3OsDlClose(tls, pVfs, handle) @@ -186829,6 +187600,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp *(*int32)(unsafe.Pointer(v9))++ *(*uintptr)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaExtension + uintptr(v8)*8)) = handle return SQLITE_OK + goto extension_not_found extension_not_found: ; if pzErrMsg != 0 { @@ -186838,7 +187610,7 @@ extension_not_found: *(*uintptr)(unsafe.Pointer(pzErrMsg)) = v10 if *(*uintptr)(unsafe.Pointer(bp)) != 0 { /* zErrmsg would be NULL if not so */ - Xsqlite3_snprintf(tls, int32(int32(nMsg)), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+17750, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) + Xsqlite3_snprintf(tls, int32(int32(nMsg)), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+17837, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) _sqlite3OsDlError(tls, pVfs, int32(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -186847,7 +187619,7 @@ extension_not_found: /* Shared library endings to try if zFile cannot be loaded as written */ var _azEndings = [1]uintptr{ - 0: __ccgo_ts + 17629, + 0: __ccgo_ts + 17716, } func Xsqlite3_load_extension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintptr, pzErrMsg uintptr) (r int32) { @@ -187080,7 +187852,7 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { rc = v2 } if v3 && v2 != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+17787, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+17874, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) go1 = 0 } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -187134,63 +187906,63 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { // ** result column is different from the name of the pragma // */ var _pragCName = [57]uintptr{ - 0: __ccgo_ts + 6790, - 1: __ccgo_ts + 17826, - 2: __ccgo_ts + 10367, - 3: __ccgo_ts + 17830, - 4: __ccgo_ts + 17835, - 5: __ccgo_ts + 17838, - 6: __ccgo_ts + 17848, - 7: __ccgo_ts + 17858, - 8: __ccgo_ts + 17864, - 9: __ccgo_ts + 17868, - 10: __ccgo_ts + 17873, - 11: __ccgo_ts + 17878, - 12: __ccgo_ts + 17886, - 13: __ccgo_ts + 17897, - 14: __ccgo_ts + 17900, - 15: __ccgo_ts + 17907, - 16: __ccgo_ts + 17868, - 17: __ccgo_ts + 17873, - 18: __ccgo_ts + 17914, - 19: __ccgo_ts + 17919, - 20: __ccgo_ts + 17922, - 21: __ccgo_ts + 17929, - 22: __ccgo_ts + 17864, - 23: __ccgo_ts + 17868, - 24: __ccgo_ts + 17935, - 25: __ccgo_ts + 17940, - 26: __ccgo_ts + 17945, - 27: __ccgo_ts + 17868, - 28: __ccgo_ts + 17949, - 29: __ccgo_ts + 17873, - 30: __ccgo_ts + 17957, - 31: __ccgo_ts + 17961, - 32: __ccgo_ts + 17966, - 33: __ccgo_ts + 13106, - 34: __ccgo_ts + 13102, - 35: __ccgo_ts + 17972, - 36: __ccgo_ts + 17977, - 37: __ccgo_ts + 17982, - 38: __ccgo_ts + 17826, - 39: __ccgo_ts + 17868, - 40: __ccgo_ts + 17987, - 41: __ccgo_ts + 17994, - 42: __ccgo_ts + 18001, - 43: __ccgo_ts + 10367, - 44: __ccgo_ts + 18009, - 45: __ccgo_ts + 6793, - 46: __ccgo_ts + 18015, - 47: __ccgo_ts + 17826, - 48: __ccgo_ts + 17868, - 49: __ccgo_ts + 18020, - 50: __ccgo_ts + 18025, - 51: __ccgo_ts + 17221, - 52: __ccgo_ts + 18030, - 53: __ccgo_ts + 18043, - 54: __ccgo_ts + 18052, - 55: __ccgo_ts + 18059, - 56: __ccgo_ts + 18070, + 0: __ccgo_ts + 6854, + 1: __ccgo_ts + 17913, + 2: __ccgo_ts + 10492, + 3: __ccgo_ts + 17917, + 4: __ccgo_ts + 17922, + 5: __ccgo_ts + 17925, + 6: __ccgo_ts + 17935, + 7: __ccgo_ts + 17945, + 8: __ccgo_ts + 17951, + 9: __ccgo_ts + 17955, + 10: __ccgo_ts + 17960, + 11: __ccgo_ts + 17965, + 12: __ccgo_ts + 17973, + 13: __ccgo_ts + 17984, + 14: __ccgo_ts + 17987, + 15: __ccgo_ts + 17994, + 16: __ccgo_ts + 17955, + 17: __ccgo_ts + 17960, + 18: __ccgo_ts + 18001, + 19: __ccgo_ts + 18006, + 20: __ccgo_ts + 18009, + 21: __ccgo_ts + 18016, + 22: __ccgo_ts + 17951, + 23: __ccgo_ts + 17955, + 24: __ccgo_ts + 18022, + 25: __ccgo_ts + 18027, + 26: __ccgo_ts + 18032, + 27: __ccgo_ts + 17955, + 28: __ccgo_ts + 18036, + 29: __ccgo_ts + 17960, + 30: __ccgo_ts + 18044, + 31: __ccgo_ts + 18048, + 32: __ccgo_ts + 18053, + 33: __ccgo_ts + 13231, + 34: __ccgo_ts + 13227, + 35: __ccgo_ts + 18059, + 36: __ccgo_ts + 18064, + 37: __ccgo_ts + 18069, + 38: __ccgo_ts + 17913, + 39: __ccgo_ts + 17955, + 40: __ccgo_ts + 18074, + 41: __ccgo_ts + 18081, + 42: __ccgo_ts + 18088, + 43: __ccgo_ts + 10492, + 44: __ccgo_ts + 18096, + 45: __ccgo_ts + 6857, + 46: __ccgo_ts + 18102, + 47: __ccgo_ts + 17913, + 48: __ccgo_ts + 17955, + 49: __ccgo_ts + 18107, + 50: __ccgo_ts + 18112, + 51: __ccgo_ts + 17300, + 52: __ccgo_ts + 18117, + 53: __ccgo_ts + 18130, + 54: __ccgo_ts + 18139, + 55: __ccgo_ts + 18146, + 56: __ccgo_ts + 18157, } // C documentation @@ -187209,196 +187981,196 @@ type PragmaName = TPragmaName var _aPragmaName = [67]TPragmaName{ 0: { - FzName: __ccgo_ts + 18078, + FzName: __ccgo_ts + 18165, FePragTyp: uint8(PragTyp_ANALYSIS_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 1: { - FzName: __ccgo_ts + 18093, + FzName: __ccgo_ts + 18180, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_APPLICATION_ID), }, 2: { - FzName: __ccgo_ts + 18108, + FzName: __ccgo_ts + 18195, FePragTyp: uint8(PragTyp_AUTO_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 3: { - FzName: __ccgo_ts + 18120, + FzName: __ccgo_ts + 18207, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_AutoIndex), }, 4: { - FzName: __ccgo_ts + 18136, + FzName: __ccgo_ts + 18223, FePragTyp: uint8(PragTyp_BUSY_TIMEOUT), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(56), FnPragCName: uint8(1), }, 5: { - FzName: __ccgo_ts + 18059, + FzName: __ccgo_ts + 18146, FePragTyp: uint8(PragTyp_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 6: { - FzName: __ccgo_ts + 18149, + FzName: __ccgo_ts + 18236, FePragTyp: uint8(PragTyp_CACHE_SPILL), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 7: { - FzName: __ccgo_ts + 18161, + FzName: __ccgo_ts + 18248, FePragTyp: uint8(PragTyp_CASE_SENSITIVE_LIKE), FmPragFlg: uint8(PragFlg_NoColumns), }, 8: { - FzName: __ccgo_ts + 18181, + FzName: __ccgo_ts + 18268, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CellSizeCk), }, 9: { - FzName: __ccgo_ts + 18197, + FzName: __ccgo_ts + 18284, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CkptFullFSync), }, 10: { - FzName: __ccgo_ts + 18218, + FzName: __ccgo_ts + 18305, FePragTyp: uint8(PragTyp_COLLATION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(38), FnPragCName: uint8(2), }, 11: { - FzName: __ccgo_ts + 18233, + FzName: __ccgo_ts + 18320, FePragTyp: uint8(PragTyp_COMPILE_OPTIONS), FmPragFlg: uint8(PragFlg_Result0), }, 12: { - FzName: __ccgo_ts + 18249, + FzName: __ccgo_ts + 18336, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00001)) << libc.Int32FromInt32(32), }, 13: { - FzName: __ccgo_ts + 18263, + FzName: __ccgo_ts + 18350, FePragTyp: uint8(PragTyp_DATA_STORE_DIRECTORY), FmPragFlg: uint8(PragFlg_NoColumns1), }, 14: { - FzName: __ccgo_ts + 18284, + FzName: __ccgo_ts + 18371, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_DATA_VERSION), }, 15: { - FzName: __ccgo_ts + 18297, + FzName: __ccgo_ts + 18384, FePragTyp: uint8(PragTyp_DATABASE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(47), FnPragCName: uint8(3), }, 16: { - FzName: __ccgo_ts + 18311, + FzName: __ccgo_ts + 18398, FePragTyp: uint8(PragTyp_DEFAULT_CACHE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiPragCName: uint8(55), FnPragCName: uint8(1), }, 17: { - FzName: __ccgo_ts + 18330, + FzName: __ccgo_ts + 18417, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_DeferFKs), }, 18: { - FzName: __ccgo_ts + 18349, + FzName: __ccgo_ts + 18436, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_NullCallback), }, 19: { - FzName: __ccgo_ts + 18372, + FzName: __ccgo_ts + 18459, FePragTyp: uint8(PragTyp_ENCODING), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 20: { - FzName: __ccgo_ts + 18381, + FzName: __ccgo_ts + 18468, FePragTyp: uint8(PragTyp_FOREIGN_KEY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(43), FnPragCName: uint8(4), }, 21: { - FzName: __ccgo_ts + 18399, + FzName: __ccgo_ts + 18486, FePragTyp: uint8(PragTyp_FOREIGN_KEY_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FnPragCName: uint8(8), }, 22: { - FzName: __ccgo_ts + 18416, + FzName: __ccgo_ts + 18503, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ForeignKeys), }, 23: { - FzName: __ccgo_ts + 18429, + FzName: __ccgo_ts + 18516, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), }, 24: { - FzName: __ccgo_ts + 18444, + FzName: __ccgo_ts + 18531, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullColNames), }, 25: { - FzName: __ccgo_ts + 18462, + FzName: __ccgo_ts + 18549, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullFSync), }, 26: { - FzName: __ccgo_ts + 18472, + FzName: __ccgo_ts + 18559, FePragTyp: uint8(PragTyp_FUNCTION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(27), FnPragCName: uint8(6), }, 27: { - FzName: __ccgo_ts + 18486, + FzName: __ccgo_ts + 18573, FePragTyp: uint8(PragTyp_HARD_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 28: { - FzName: __ccgo_ts + 18502, + FzName: __ccgo_ts + 18589, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_IgnoreChecks), }, 29: { - FzName: __ccgo_ts + 18527, + FzName: __ccgo_ts + 18614, FePragTyp: uint8(PragTyp_INCREMENTAL_VACUUM), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_NoColumns)), }, 30: { - FzName: __ccgo_ts + 18546, + FzName: __ccgo_ts + 18633, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), FnPragCName: uint8(3), }, 31: { - FzName: __ccgo_ts + 18557, + FzName: __ccgo_ts + 18644, FePragTyp: uint8(PragTyp_INDEX_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(38), FnPragCName: uint8(5), }, 32: { - FzName: __ccgo_ts + 18568, + FzName: __ccgo_ts + 18655, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(21), @@ -187406,146 +188178,146 @@ var _aPragmaName = [67]TPragmaName{ FiArg: uint64(1), }, 33: { - FzName: __ccgo_ts + 18580, + FzName: __ccgo_ts + 18667, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 34: { - FzName: __ccgo_ts + 18596, + FzName: __ccgo_ts + 18683, FePragTyp: uint8(PragTyp_JOURNAL_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 35: { - FzName: __ccgo_ts + 18609, + FzName: __ccgo_ts + 18696, FePragTyp: uint8(PragTyp_JOURNAL_SIZE_LIMIT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 36: { - FzName: __ccgo_ts + 18628, + FzName: __ccgo_ts + 18715, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_LegacyAlter), }, 37: { - FzName: __ccgo_ts + 18647, + FzName: __ccgo_ts + 18734, FePragTyp: uint8(PragTyp_LOCKING_MODE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 38: { - FzName: __ccgo_ts + 18660, + FzName: __ccgo_ts + 18747, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 39: { - FzName: __ccgo_ts + 18675, + FzName: __ccgo_ts + 18762, FePragTyp: uint8(PragTyp_MMAP_SIZE), }, 40: { - FzName: __ccgo_ts + 18685, + FzName: __ccgo_ts + 18772, FePragTyp: uint8(PragTyp_MODULE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 41: { - FzName: __ccgo_ts + 18697, + FzName: __ccgo_ts + 18784, FePragTyp: uint8(PragTyp_OPTIMIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_NeedSchema)), }, 42: { - FzName: __ccgo_ts + 18706, + FzName: __ccgo_ts + 18793, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 43: { - FzName: __ccgo_ts + 18717, + FzName: __ccgo_ts + 18804, FePragTyp: uint8(PragTyp_PAGE_SIZE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 44: { - FzName: __ccgo_ts + 18727, + FzName: __ccgo_ts + 18814, FePragTyp: uint8(PragTyp_PRAGMA_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 45: { - FzName: __ccgo_ts + 18739, + FzName: __ccgo_ts + 18826, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_QueryOnly), }, 46: { - FzName: __ccgo_ts + 18750, + FzName: __ccgo_ts + 18837, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 47: { - FzName: __ccgo_ts + 18762, + FzName: __ccgo_ts + 18849, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(0x00004)) << libc.Int32FromInt32(32), }, 48: { - FzName: __ccgo_ts + 18779, + FzName: __ccgo_ts + 18866, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_RecTriggers), }, 49: { - FzName: __ccgo_ts + 18798, + FzName: __ccgo_ts + 18885, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ReverseOrder), }, 50: { - FzName: __ccgo_ts + 18824, + FzName: __ccgo_ts + 18911, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_SCHEMA_VERSION), }, 51: { - FzName: __ccgo_ts + 18839, + FzName: __ccgo_ts + 18926, FePragTyp: uint8(PragTyp_SECURE_DELETE), FmPragFlg: uint8(PragFlg_Result0), }, 52: { - FzName: __ccgo_ts + 18853, + FzName: __ccgo_ts + 18940, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ShortColNames), }, 53: { - FzName: __ccgo_ts + 18872, + FzName: __ccgo_ts + 18959, FePragTyp: uint8(PragTyp_SHRINK_MEMORY), FmPragFlg: uint8(PragFlg_NoColumns), }, 54: { - FzName: __ccgo_ts + 18886, + FzName: __ccgo_ts + 18973, FePragTyp: uint8(PragTyp_SOFT_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 55: { - FzName: __ccgo_ts + 18902, + FzName: __ccgo_ts + 18989, FePragTyp: uint8(PragTyp_SYNCHRONOUS), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 56: { - FzName: __ccgo_ts + 18914, + FzName: __ccgo_ts + 19001, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), FnPragCName: uint8(6), }, 57: { - FzName: __ccgo_ts + 18925, + FzName: __ccgo_ts + 19012, FePragTyp: uint8(PragTyp_TABLE_LIST), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1)), FiPragCName: uint8(15), FnPragCName: uint8(6), }, 58: { - FzName: __ccgo_ts + 18936, + FzName: __ccgo_ts + 19023, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), @@ -187553,45 +188325,45 @@ var _aPragmaName = [67]TPragmaName{ FiArg: uint64(1), }, 59: { - FzName: __ccgo_ts + 18948, + FzName: __ccgo_ts + 19035, FePragTyp: uint8(PragTyp_TEMP_STORE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 60: { - FzName: __ccgo_ts + 18959, + FzName: __ccgo_ts + 19046, FePragTyp: uint8(PragTyp_TEMP_STORE_DIRECTORY), FmPragFlg: uint8(PragFlg_NoColumns1), }, 61: { - FzName: __ccgo_ts + 18980, + FzName: __ccgo_ts + 19067, FePragTyp: uint8(PragTyp_THREADS), FmPragFlg: uint8(PragFlg_Result0), }, 62: { - FzName: __ccgo_ts + 18988, + FzName: __ccgo_ts + 19075, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_TrustedSchema), }, 63: { - FzName: __ccgo_ts + 19003, + FzName: __ccgo_ts + 19090, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_USER_VERSION), }, 64: { - FzName: __ccgo_ts + 19016, + FzName: __ccgo_ts + 19103, FePragTyp: uint8(PragTyp_WAL_AUTOCHECKPOINT), }, 65: { - FzName: __ccgo_ts + 19035, + FzName: __ccgo_ts + 19122, FePragTyp: uint8(PragTyp_WAL_CHECKPOINT), FmPragFlg: uint8(PragFlg_NeedSchema), FiPragCName: uint8(50), FnPragCName: uint8(3), }, 66: { - FzName: __ccgo_ts + 19050, + FzName: __ccgo_ts + 19137, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: uint8(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(libc.Int32FromInt32(SQLITE_WriteSchema) | libc.Int32FromInt32(SQLITE_NoSchemaError)), @@ -187603,6 +188375,31 @@ var _aPragmaName = [67]TPragmaName{ /************** End of pragma.h **********************************************/ /************** Continuing where we left off in pragma.c *********************/ +/* +** When the 0x10 bit of PRAGMA optimize is set, any ANALYZE commands +** will be run with an analysis_limit set to the lessor of the value of +** the following macro or to the actual analysis_limit if it is non-zero, +** in order to prevent PRAGMA optimize from running for too long. +** +** The value of 2000 is chosen emperically so that the worst-case run-time +** for PRAGMA optimize does not exceed 100 milliseconds against a variety +** of test databases on a RaspberryPI-4 compiled using -Os and without +** -DSQLITE_DEBUG. Of course, your mileage may vary. For the purpose of +** this paragraph, "worst-case" means that ANALYZE ends up being +** run on every table in the database. The worst case typically only +** happens if PRAGMA optimize is run on a database file for which ANALYZE +** has not been previously run and the 0x10000 flag is included so that +** all tables are analyzed. The usual case for PRAGMA optimize is that +** no ANALYZE commands will be run at all, or if any ANALYZE happens it +** will be against a single table, so that expected timing for PRAGMA +** optimize on a PI-4 is more like 1 millisecond or less with the 0x10000 +** flag or less than 100 microseconds without the 0x10000 flag. +** +** An analysis limit of 2000 is almost always sufficient for the query +** planner to fully characterize an index. The additional accuracy from +** a larger analysis is not usually helpful. + */ + // C documentation // // /* @@ -187692,10 +188489,10 @@ func _sqlite3GetBoolean(tls *libc.TLS, z uintptr, dflt Tu8) (r Tu8) { // */ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { if z != 0 { - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+5106) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+5170) { return int32(PAGER_LOCKINGMODE_EXCLUSIVE) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+19066) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+19153) { return PAGER_LOCKINGMODE_NORMAL } } @@ -187713,13 +188510,13 @@ func _getLockingMode(tls *libc.TLS, z uintptr) (r int32) { func _getAutoVacuum(tls *libc.TLS, z uintptr) (r int32) { var i, v1 int32 _, _ = i, v1 - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+9527) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+9652) { return BTREE_AUTOVACUUM_NONE } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+19073) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+19160) { return int32(BTREE_AUTOVACUUM_FULL) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+19078) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+19165) { return int32(BTREE_AUTOVACUUM_INCR) } i = _sqlite3Atoi(tls, z) @@ -187742,10 +188539,10 @@ func _getTempStore(tls *libc.TLS, z uintptr) (r int32) { if int32(*(*int8)(unsafe.Pointer(z))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(z))) <= int32('2') { return int32(*(*int8)(unsafe.Pointer(z))) - int32('0') } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+18020) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+18107) == 0 { return int32(1) } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+19090) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+19177) == 0 { return int32(2) } else { return 0 @@ -187767,7 +188564,7 @@ func _invalidateTempStorage(tls *libc.TLS, pParse uintptr) (r int32) { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt != uintptr(0) { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) || _sqlite3BtreeTxnState(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) != SQLITE_TXN_NONE { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19097, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19184, 0) return int32(SQLITE_ERROR) } _sqlite3BtreeClose(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) @@ -187897,15 +188694,15 @@ func _actionName(tls *libc.TLS, action Tu8) (r uintptr) { _ = zName switch int32(int32(action)) { case int32(OE_SetNull): - zName = __ccgo_ts + 19159 + zName = __ccgo_ts + 19246 case int32(OE_SetDflt): - zName = __ccgo_ts + 19168 + zName = __ccgo_ts + 19255 case int32(OE_Cascade): - zName = __ccgo_ts + 19180 + zName = __ccgo_ts + 19267 case int32(OE_Restrict): - zName = __ccgo_ts + 19188 + zName = __ccgo_ts + 19275 default: - zName = __ccgo_ts + 19197 + zName = __ccgo_ts + 19284 break } return zName @@ -187926,12 +188723,12 @@ func _sqlite3JournalModename(tls *libc.TLS, eMode int32) (r uintptr) { } var _azModeName = [6]uintptr{ - 0: __ccgo_ts + 19207, - 1: __ccgo_ts + 19214, - 2: __ccgo_ts + 19222, - 3: __ccgo_ts + 19226, - 4: __ccgo_ts + 19090, - 5: __ccgo_ts + 19235, + 0: __ccgo_ts + 19294, + 1: __ccgo_ts + 19301, + 2: __ccgo_ts + 19309, + 3: __ccgo_ts + 19313, + 4: __ccgo_ts + 19177, + 5: __ccgo_ts + 19322, } // C documentation @@ -187993,15 +188790,15 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s goto _1 } if (*TFuncDef)(unsafe.Pointer(p)).FxValue != uintptr(0) { - zType = __ccgo_ts + 19260 + zType = __ccgo_ts + 19347 } else { if (*TFuncDef)(unsafe.Pointer(p)).FxFinalize != uintptr(0) { - zType = __ccgo_ts + 19262 + zType = __ccgo_ts + 19349 } else { - zType = __ccgo_ts + 8926 + zType = __ccgo_ts + 9051 } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+19264, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+19351, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer(p)).FzName, isBuiltin, zType, _azEnc[(*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK)], int32((*TFuncDef)(unsafe.Pointer(p)).FnArg), (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&mask^uint32(SQLITE_INNOCUOUS))) goto _1 _1: ; @@ -188010,9 +188807,9 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s } var _azEnc = [4]uintptr{ - 1: __ccgo_ts + 19239, - 2: __ccgo_ts + 19244, - 3: __ccgo_ts + 19252, + 1: __ccgo_ts + 19326, + 2: __ccgo_ts + 19331, + 3: __ccgo_ts + 19339, } // C documentation @@ -188053,15 +188850,15 @@ func _integrityCheckResultRow(tls *libc.TLS, v uintptr) (r int32) { func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, pValue uintptr, minusFlag int32) { bp := tls.Alloc(240) defer tls.Free(240) - var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, mxIdx, n, nHidden, nIdx, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v60, v62, v63, v64, v65, v68 int32 - var aOp, aOp1, aOp2, aOp3, aOp4, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v61, v66, v8 uintptr + var a1, a11, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, b, bStrict, ckUniq, cnt, doTypeCheck, eAuto, eMode, eMode1, eMode2, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k3, kk, label6, labelError, labelOk, loopTop, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, p11, p3, p4, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, uniqOk, x1, v10, v15, v18, v2, v26, v33, v38, v4, v43, v45, v47, v48, v50, v64, v66, v67, v68, v69, v72, v75, v76 int32 + var aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, db, j, j1, k1, k2, k4, p, p1, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, v, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v14, v16, v22, v34, v39, v5, v65, v70, v8 uintptr var azOrigin [3]uintptr var cnum Ti16 var enc Tu8 var iPrior Tsqlite3_int64 + var iRange, szThreshold TLogEst var mask Tu64 var opMask Tu32 - var szThreshold TLogEst var _ /* N at bp+136 */ Tsqlite3_int64 var _ /* N at bp+144 */ Tsqlite3_int64 var _ /* N at bp+152 */ Tsqlite3_int64 @@ -188083,7 +188880,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p var _ /* size at bp+60 */ int32 var _ /* sz at bp+64 */ Tsqlite3_int64 var _ /* x at bp+40 */ Ti64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iIdxDb, iLevel, iPrior, iReg, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, mxIdx, n, nHidden, nIdx, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v5, v60, v61, v62, v63, v64, v65, v66, v68, v8 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a1, a11, aOp, aOp1, aOp2, aOp3, aOp4, aOp5, aRoot, addr, addr1, addrCkFault, addrCkOk, addrOk, addrTop, azOrigin, b, bStrict, ckUniq, cnt, cnum, db, doTypeCheck, eAuto, eMode, eMode1, eMode2, enc, i, i1, i10, i2, i3, i4, i5, i6, i7, i8, i9, iAddr, iAddr1, iBt, iCol, iCol1, iCookie, iDb, iDbLast, iEnd, iIdxDb, iLevel, iPrior, iRange, iReg, iTab, iTabCur, iTabDb, iTabDb1, ii, ii1, ii2, ii3, ii4, initNCol, isHidden, isQuick, j, j1, j2, j3, j4, jmp, jmp2, jmp21, jmp3, jmp4, jmp5, jmp6, jmp61, jmp7, k, k1, k2, k3, k4, kk, label6, labelError, labelOk, loopTop, mask, mx, mxCol, n, nBtree, nCheck, nHidden, nIdx, nIndex, nLimit, opMask, p, p1, p11, p3, p4, pBt, pBt1, pBt2, pCheck, pCol, pCol1, pColExpr, pColl, pDb, pEnc, pFK, pFK1, pHash, pIdx, pIdx1, pIdx3, pIdx4, pIdx5, pIdx6, pIdx7, pMod, pObjTab, pPager, pPager1, pParent, pPk, pPk1, pPragma, pPrior, pSchema, pTab, pTab1, pTab10, pTab11, pTab12, pTab2, pTab3, pTab4, pTab5, pTab6, pTab7, pTab8, pTab9, pTbls, pVTab, r1, r11, r2, rc, regResult, regRow, showInternFunc, size, size1, size2, szThreshold, uniqOk, v, x1, x2, zDb, zErr, zErr1, zErr2, zLeft, zMod, zMode, zOpt, zRet, zRight, zSql, zSubSql, zType, v1, v10, v14, v15, v16, v18, v2, v22, v26, v33, v34, v38, v39, v4, v43, v45, v47, v48, v5, v50, v64, v65, v66, v67, v68, v69, v70, v72, v75, v76, v8 zLeft = uintptr(0) /* Nul-terminated UTF-8 string */ zRight = uintptr(0) /* Nul-terminated UTF-8 string , or NULL */ zDb = uintptr(0) /* return value form SQLITE_FCNTL_PRAGMA */ @@ -188112,7 +188909,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p return } if minusFlag != 0 { - zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+19271, libc.VaList(bp+176, pValue)) + zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+19358, libc.VaList(bp+176, pValue)) } else { zRight = _sqlite3NameFromToken(tls, db, pValue) } @@ -188155,7 +188952,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } if rc != int32(SQLITE_NOTFOUND) { if (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0] != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+4645, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+4709, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) Xsqlite3_free(tls, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0]) } (*TParse)(unsafe.Pointer(pParse)).FnErr++ @@ -188259,7 +189056,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pBt1 = (*TDb)(unsafe.Pointer(pDb)).FpBt b = -int32(1) if zRight != 0 { - if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+19275) == 0 { + if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+19362) == 0 { b = int32(2) } else { b = int32(_sqlite3GetBoolean(tls, zRight, uint8(0))) @@ -188330,7 +189127,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p */ fallthrough case int32(PragTyp_LOCKING_MODE): - zRet = __ccgo_ts + 19066 + zRet = __ccgo_ts + 19153 eMode = _getLockingMode(tls, zRight) if (*TToken)(unsafe.Pointer(pId2)).Fn == uint32(0) && eMode == -int32(1) { /* Simple "PRAGMA locking_mode;" statement. This is a query for @@ -188358,7 +189155,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p eMode = _sqlite3PagerLockingMode(tls, pPager, eMode) } if eMode == int32(PAGER_LOCKINGMODE_EXCLUSIVE) { - zRet = __ccgo_ts + 5106 + zRet = __ccgo_ts + 5170 } _returnSingleText(tls, v, zRet) break @@ -188648,7 +189445,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if *(*int8)(unsafe.Pointer(zRight)) != 0 { rc = _sqlite3OsAccess(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, zRight, int32(SQLITE_ACCESS_READWRITE), bp+72) if rc != SQLITE_OK || *(*int32)(unsafe.Pointer(bp + 72)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19280, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19367, 0) Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) goto pragma_out } @@ -188658,7 +189455,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } Xsqlite3_free(tls, Xsqlite3_temp_directory) if *(*int8)(unsafe.Pointer(zRight)) != 0 { - Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+176, zRight)) + Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+176, zRight)) } else { Xsqlite3_temp_directory = uintptr(0) } @@ -188687,14 +189484,14 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if *(*int8)(unsafe.Pointer(zRight)) != 0 { rc = _sqlite3OsAccess(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpVfs, zRight, int32(SQLITE_ACCESS_READWRITE), bp+76) if rc != SQLITE_OK || *(*int32)(unsafe.Pointer(bp + 76)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19280, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19367, 0) Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) goto pragma_out } } Xsqlite3_free(tls, Xsqlite3_data_directory) if *(*int8)(unsafe.Pointer(zRight)) != 0 { - Xsqlite3_data_directory = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+176, zRight)) + Xsqlite3_data_directory = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+176, zRight)) } else { Xsqlite3_data_directory = uintptr(0) } @@ -188716,7 +189513,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _returnSingleInt(tls, v, int64(int32((*TDb)(unsafe.Pointer(pDb)).Fsafety_level)-int32(1))) } else { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19305, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19392, 0) } else { if iDb != int32(1) { iLevel = (int32(_getSafetyLevel(tls, zRight, 0, uint8(1))) + int32(1)) & int32(PAGER_SYNCHRONOUS_MASK) @@ -188749,7 +189546,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if mask == uint64(SQLITE_DeferFKs) { (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = 0 } - if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+19358) == 0 { + if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+19445) == 0 { /* IMP: R-60817-01178 If the argument is "RESET" then schema ** writing is disabled (as with "PRAGMA writable_schema=OFF") and, ** in addition, the schema is reloaded. */ @@ -188829,9 +189626,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pColExpr = _sqlite3ColumnExpr(tls, pTab, pCol) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - v14 = __ccgo_ts + 19364 + v14 = __ccgo_ts + 19451 } else { - v14 = __ccgo_ts + 19372 + v14 = __ccgo_ts + 19459 } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 { v15 = int32(1) @@ -188843,7 +189640,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v16 = *(*uintptr)(unsafe.Pointer(pColExpr + 8)) } - _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1658), v15, v16, k, isHidden)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), v14, libc.VaList(bp+176, i-nHidden, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1672), v15, v16, k, isHidden)) goto _12 _12: ; @@ -188902,7 +189699,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } pTab1 = (*THashElem)(unsafe.Pointer(k1)).Fdata if int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) == 0 { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+19379, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+19466, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 80)) = uintptr(0) Xsqlite3_prepare(tls, db, zSql, -int32(1), bp+80, uintptr(0)) @@ -188910,7 +189707,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3DbFree(tls, db, zSql) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1628, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1642, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) } pHash = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FpSchema + 8 @@ -188932,19 +189729,19 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _20 } if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 12105 + zType = __ccgo_ts + 12230 } else { if int32((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 14353 + zType = __ccgo_ts + 14478 } else { if (*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Shadow) != 0 { - zType = __ccgo_ts + 19395 + zType = __ccgo_ts + 19482 } else { - zType = __ccgo_ts + 10367 + zType = __ccgo_ts + 10492 } } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+19402, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+19489, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(ii4)*32))).FzDbSName, _sqlite3PreferredTableName(tls, (*TTable)(unsafe.Pointer(pTab2)).FzName), zType, int32((*TTable)(unsafe.Pointer(pTab2)).FnCol), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_WithoutRowid) != uint32(0)), libc.BoolInt32((*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Strict) != uint32(0)))) goto _20 _20: ; @@ -188991,9 +189788,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { v22 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab3)).FaCol + uintptr(cnum)*16))).FzCnName } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+19409, libc.VaList(bp+176, i1, int32(int32(cnum)), v22)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+19496, libc.VaList(bp+176, i1, int32(int32(cnum)), v22)) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+19414, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) + _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+19501, libc.VaList(bp+176, int32(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < int32((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) } _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), int32(1), (*TParse)(unsafe.Pointer(pParse)).FnMem) goto _21 @@ -189017,11 +189814,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } azOrigin = [3]uintptr{ - 0: __ccgo_ts + 19419, - 1: __ccgo_ts + 19421, - 2: __ccgo_ts + 17897, + 0: __ccgo_ts + 19506, + 1: __ccgo_ts + 19508, + 2: __ccgo_ts + 17984, } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+19423, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+19510, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(int32((*TIndex)(unsafe.Pointer(pIdx1)).FonError) != OE_None), azOrigin[int32(uint32(*(*uint16)(unsafe.Pointer(pIdx1 + 100))&0x3>>0))], libc.BoolInt32((*TIndex)(unsafe.Pointer(pIdx1)).FpPartIdxWhere != uintptr(0)))) goto _23 _23: ; @@ -189040,7 +189837,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt == uintptr(0) { goto _24 } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+19429, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+19516, libc.VaList(bp+176, i3, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FzDbSName, _sqlite3BtreeGetFilename(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i3)*32))).FpBt))) goto _24 _24: ; @@ -189057,7 +189854,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pColl = (*THashElem)(unsafe.Pointer(p)).Fdata v26 = i4 i4++ - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+19433, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+19520, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) goto _25 _25: ; @@ -189107,7 +189904,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } pMod = (*THashElem)(unsafe.Pointer(j1)).Fdata - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+8926, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+9051, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) goto _30 _30: ; @@ -189119,7 +189916,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i6 < int32(libc.Uint64FromInt64(1608)/libc.Uint64FromInt64(24))) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+8926, libc.VaList(bp+176, _aPragmaName[i6].FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+9051, libc.VaList(bp+176, _aPragmaName[i6].FzName)) goto _31 _31: ; @@ -189145,7 +189942,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(j2 < (*TFKey)(unsafe.Pointer(pFK)).FnCol) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+19436, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+19445)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+19523, libc.VaList(bp+176, i7, j2, (*TFKey)(unsafe.Pointer(pFK)).FzTo, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab5)).FaCol + uintptr((*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FiFrom)*16))).FzCnName, (*(*TsColMap)(unsafe.Pointer(pFK + 64 + uintptr(j2)*16))).FzCol, _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45 + 1))), _actionName(tls, *(*Tu8)(unsafe.Pointer(pFK + 45))), __ccgo_ts+19532)) goto _32 _32: ; @@ -189286,7 +190083,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { _sqlite3VdbeAddOp2(tls, v, int32(OP_Null), 0, regResult+int32(1)) } - _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+19450, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) + _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+19537, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), regResult, int32(4)) _sqlite3VdbeResolveLabel(tls, v, addrOk) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp + 96))) @@ -189354,7 +190151,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p /* Set the maximum error count */ *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) if zRight != 0 { - if _sqlite3GetInt32(tls, zRight, bp+104) != 0 { + if _sqlite3GetInt32(tls, (*TToken)(unsafe.Pointer(pValue)).Fz, bp+104) != 0 { if *(*int32)(unsafe.Pointer(bp + 104)) <= 0 { *(*int32)(unsafe.Pointer(bp + 104)) = int32(SQLITE_INTEGRITY_CHECK_ERROR_MAX) } @@ -189374,8 +190171,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i9 < (*Tsqlite3)(unsafe.Pointer(db)).FnDb) { break } /* Array of root page numbers of all btrees */ - cnt = 0 /* Number of entries in aRoot[] */ - mxIdx = 0 /* Maximum number of indexes for any table */ + cnt = 0 /* Number of entries in aRoot[] */ if libc.Bool(OMIT_TEMPDB != 0) && i9 == int32(1) { goto _40 } @@ -189416,9 +190212,6 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p pIdx3 = (*TIndex)(unsafe.Pointer(pIdx3)).FpNext nIdx++ } - if nIdx > mxIdx { - mxIdx = nIdx - } goto _41 _41: ; @@ -189474,16 +190267,78 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } *(*int32)(unsafe.Pointer(aRoot)) = cnt /* Make sure sufficient number of registers have been allocated */ - _sqlite3TouchRegister(tls, pParse, int32(8)+mxIdx) + _sqlite3TouchRegister(tls, pParse, int32(8)+cnt) _sqlite3ClearTempRegCache(tls, pParse) /* Do the b-tree integrity checks */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(2), cnt, int32(1), aRoot, -int32(14)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(1), cnt, int32(8), aRoot, -int32(14)) _sqlite3VdbeChangeP5(tls, v, uint16(uint8(uint8(i9)))) addr1 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(2)) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+19454, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+19541, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i9)*32))).FzDbSName)), -int32(6)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(2), int32(3), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, addr1) + /* Check that the indexes all have the right number of rows */ + if pObjTab != 0 { + v48 = int32(1) + } else { + v48 = 0 + } + cnt = v48 + _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+19565) + x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst + for { + if !(x2 != 0) { + break + } + iTab = 0 + pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab9 { + goto _49 + } + if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + v50 = cnt + cnt++ + iTab = v50 + } else { + iTab = cnt + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx5 + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { + break + } + iTab++ + goto _51 + _51: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + } + pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + for { + if !(pIdx5 != 0) { + break + } + if (*TIndex)(unsafe.Pointer(pIdx5)).FpPartIdxWhere == uintptr(0) { + addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+cnt, 0, int32(8)+iTab) + _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) + _integrityCheckResultRow(tls, v) + _sqlite3VdbeJumpHere(tls, v, addr1) + } + cnt++ + goto _52 + _52: + ; + pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + } + goto _49 + _49: + ; + x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext + } /* Make sure all the indices are constructed correctly. */ x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst @@ -189491,39 +190346,39 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab9 = (*THashElem)(unsafe.Pointer(x2)).Fdata + pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata pPrior = uintptr(0) r1 = -int32(1) /* Maximum non-virtual column number */ - if pObjTab != 0 && pObjTab != pTab9 { - goto _48 + if pObjTab != 0 && pObjTab != pTab10 { + goto _53 } - if !(int32((*TTable)(unsafe.Pointer(pTab9)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { - goto _48 + if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _53 } - if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if isQuick != 0 || (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { pPk1 = uintptr(0) r2 = 0 } else { - pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab9) + pPk1 = _sqlite3PrimaryKeyIndex(tls, pTab10) r2 = _sqlite3GetTempRange(tls, pParse, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), int32(1), r2, r2+int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)-int32(1)) } - _sqlite3OpenTableAndIndices(tls, pParse, pTab9, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) + _sqlite3OpenTableAndIndices(tls, pParse, pTab10, int32(OP_OpenRead), uint8(0), int32(1), uintptr(0), bp+108, bp+112) /* reg[7] counts the number of entries in the table. ** reg[8+i] counts the number of entries in the i-th index */ _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(7)) j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, int32(8)+j4) /* index entries counter */ - goto _49 - _49: + goto _54 + _54: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), *(*int32)(unsafe.Pointer(bp + 108)), 0) @@ -189533,29 +190388,29 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** will also prepopulate the cursor column cache that is used ** by the OP_IsType code, so it is a required step. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { mxCol = -int32(1) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { + if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { mxCol++ } - goto _50 - _50: + goto _55 + _55: ; j4++ } - if mxCol == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { + if mxCol == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { mxCol-- } } else { /* COLFLAG_VIRTUAL columns are not included in the WITHOUT ROWID ** PK index column-count, so there is no need to account for them ** in this case. */ - mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab9))).FnColumn) - int32(1) + mxCol = int32((*TIndex)(unsafe.Pointer(_sqlite3PrimaryKeyIndex(tls, pTab10))).FnColumn) - int32(1) } if mxCol >= 0 { _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 108)), mxCol, int32(3)) @@ -189565,7 +190420,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if pPk1 != 0 { a1 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 108)), 0, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), r2) - zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+19478, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+19594, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a1) @@ -189576,8 +190431,8 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprCodeLoadIndexColumn(tls, pParse, pPk1, *(*int32)(unsafe.Pointer(bp + 108)), j4, r2+j4) - goto _51 - _51: + goto _56 + _56: ; j4++ } @@ -189592,15 +190447,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** (4) Datatype for numeric columns in non-STRICT tables must not ** be a TEXT value that can be losslessly converted to numeric. */ - bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_Strict) != uint32(0)) + bStrict = libc.BoolInt32((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_Strict) != uint32(0)) j4 = 0 for { - if !(j4 < int32((*TTable)(unsafe.Pointer(pTab9)).FnCol)) { + if !(j4 < int32((*TTable)(unsafe.Pointer(pTab10)).FnCol)) { break } - pCol1 = (*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ - if j4 == int32((*TTable)(unsafe.Pointer(pTab9)).FiPKey) { - goto _52 + pCol1 = (*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16 /* Check datatypes (besides NOT NULL) */ + if j4 == int32((*TTable)(unsafe.Pointer(pTab10)).FiPKey) { + goto _57 } if bStrict != 0 { doTypeCheck = libc.BoolInt32(int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4)) > int32(COLTYPE_ANY)) @@ -189608,28 +190463,28 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p doTypeCheck = libc.BoolInt32(int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) > int32(SQLITE_AFF_BLOB)) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf>>0)) == 0 && !(doTypeCheck != 0) { - goto _52 + goto _57 } /* Compute the operands that will be needed for OP_IsType */ p4 = int32(SQLITE_NULL) if int32((*TColumn)(unsafe.Pointer(pCol1)).FcolFlags)&int32(COLFLAG_VIRTUAL) != 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) p11 = -int32(1) p3 = int32(3) } else { if (*TColumn)(unsafe.Pointer(pCol1)).FiDflt != 0 { *(*uintptr)(unsafe.Pointer(bp + 120)) = uintptr(0) - _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab9, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8((*TColumn)(unsafe.Pointer(pCol1)).Faffinity), bp+120) + _sqlite3ValueFromExpr(tls, db, _sqlite3ColumnExpr(tls, pTab10, pCol1), (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8((*TColumn)(unsafe.Pointer(pCol1)).Faffinity), bp+120) if *(*uintptr)(unsafe.Pointer(bp + 120)) != 0 { p4 = Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp + 120))) } } p11 = *(*int32)(unsafe.Pointer(bp + 108)) - if !((*TTable)(unsafe.Pointer(pTab9)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { - p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab9), int16(int16(j4)))) + if !((*TTable)(unsafe.Pointer(pTab10)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) { + p3 = int32(_sqlite3TableColumnToIndex(tls, _sqlite3PrimaryKeyIndex(tls, pTab10), int16(int16(j4)))) } else { - p3 = int32(_sqlite3TableColumnToStorage(tls, pTab9, int16(int16(j4)))) + p3 = int32(_sqlite3TableColumnToStorage(tls, pTab10, int16(int16(j4)))) } } labelError = _sqlite3VdbeMakeLabel(tls, pParse) @@ -189646,10 +190501,10 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** is REAL, we have to load the actual data using OP_Column ** to reliably determine if the value is a NULL. */ _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), p11, p3, int32(3)) - _sqlite3ColumnDefault(tls, v, pTab9, j4, int32(3)) + _sqlite3ColumnDefault(tls, v, pTab10, j4, int32(3)) jmp3 = _sqlite3VdbeAddOp2(tls, v, int32(OP_NotNull), int32(3), labelOk) } - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+19514, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+19630, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) if doTypeCheck != 0 { _sqlite3VdbeGoto(tls, v, labelError) @@ -189662,7 +190517,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if bStrict != 0 && doTypeCheck != 0 { _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(_aStdTypeMask[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)])) - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+19534, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+19650, libc.VaList(bp+176, _sqlite3StdType[int32(uint32(*(*uint8)(unsafe.Pointer(pCol1 + 8))&0xf0>>4))-int32(1)], (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) == int32(SQLITE_AFF_TEXT) { @@ -189670,7 +190525,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** NULL, TEXT, or BLOB. */ _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+19556, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+19672, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } else { if !(bStrict != 0) && int32((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) >= int32(SQLITE_AFF_NUMERIC) { @@ -189679,12 +190534,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), p11, labelOk, p3, p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1b)) /* NULL, INT, FLOAT, or BLOB */ if p11 >= 0 { - _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab9, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) + _sqlite3ExprCodeGetColumnOfTable(tls, v, pTab10, *(*int32)(unsafe.Pointer(bp + 108)), j4, int32(3)) } - _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+19579, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+19695, -int32(1)) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IsType), -int32(1), labelOk, int32(3), p4) _sqlite3VdbeChangeP5(tls, v, uint16(0x1c)) /* NULL, TEXT, or BLOB */ - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+19581, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+19697, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr1, -int32(6)) } } @@ -189692,14 +190547,14 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeResolveLabel(tls, v, labelError) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, labelOk) - goto _52 - _52: + goto _57 + _57: ; j4++ } /* Verify CHECK constraints */ - if (*TTable)(unsafe.Pointer(pTab9)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { - pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab9)).FpCheck, 0) + if (*TTable)(unsafe.Pointer(pTab10)).FpCheck != 0 && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_IgnoreChecks) == uint64(0) { + pCheck = _sqlite3ExprListDup(tls, db, (*TTable)(unsafe.Pointer(pTab10)).FpCheck, 0) if int32((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed) == 0 { addrCkFault = _sqlite3VdbeMakeLabel(tls, pParse) addrCkOk = _sqlite3VdbeMakeLabel(tls, pParse) @@ -189710,15 +190565,15 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } _sqlite3ExprIfFalse(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8 + uintptr(k3)*32))).FpExpr, addrCkFault, 0) - goto _53 - _53: + goto _58 + _58: ; k3-- } _sqlite3ExprIfTrue(tls, pParse, (*(*TExprList_item)(unsafe.Pointer(pCheck + 8))).FpExpr, addrCkOk, int32(SQLITE_JUMPIFNULL)) _sqlite3VdbeResolveLabel(tls, v, addrCkFault) (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 - zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19601, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab9)).FzName)) + zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19717, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, int32(3), 0, zErr2, -int32(6)) _integrityCheckResultRow(tls, v) _sqlite3VdbeResolveLabel(tls, v, addrCkOk) @@ -189728,25 +190583,25 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(isQuick != 0) { /* Omit the remaining tests for quick_check */ /* Validate index entries for the current row */ j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex + pIdx6 = (*TTable)(unsafe.Pointer(pTab10)).FpIndex for { - if !(pIdx5 != 0) { + if !(pIdx6 != 0) { break } ckUniq = _sqlite3VdbeMakeLabel(tls, pParse) - if pPk1 == pIdx5 { - goto _54 + if pPk1 == pIdx6 { + goto _59 } - r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx5, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) - pPrior = pIdx5 + r1 = _sqlite3GenerateIndexKey(tls, pParse, pIdx6, *(*int32)(unsafe.Pointer(bp + 108)), 0, 0, bp+128, pPrior, r1) + pPrior = pIdx6 _sqlite3VdbeAddOp2(tls, v, int32(OP_AddImm), int32(8)+j4, int32(1)) /* increment entry count */ /* Verify that an index entry exists for the current table row */ - jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+19631) + jmp21 = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), *(*int32)(unsafe.Pointer(bp + 112))+j4, ckUniq, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+19747) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+19636) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+19752) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) - jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) + jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx6)).FzName) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) jmp4 = _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, jmp21) @@ -189754,12 +190609,12 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** that extracts the rowid off the end of the index record. ** But it only works correctly if index record does not have ** any extra bytes at the end. Verify that this is the case. */ - if (*TTable)(unsafe.Pointer(pTab9)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { + if (*TTable)(unsafe.Pointer(pTab10)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) { _sqlite3VdbeAddOp2(tls, v, int32(OP_IdxRowid), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx5)).FnColumn)-int32(1)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+19657) + jmp7 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(3), 0, r1+int32((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)-int32(1)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+19773) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+19693) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+19809) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp7) } @@ -189768,100 +190623,75 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p label6 = 0 kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { - goto _55 + if *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FazColl + uintptr(kk)*8)) == uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) { + goto _60 } if label6 == 0 { label6 = _sqlite3VdbeMakeLabel(tls, pParse) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Column), *(*int32)(unsafe.Pointer(bp + 112))+j4, kk, int32(3)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ne), int32(3), label6, r1+kk) - goto _55 - _55: + goto _60 + _60: ; kk++ } if label6 != 0 { jmp6 = _sqlite3VdbeAddOp0(tls, v, int32(OP_Goto)) _sqlite3VdbeResolveLabel(tls, v, label6) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+19631) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+19747) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+19704) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+19820) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp6) } /* For UNIQUE indexes, verify that only one entry exists with the ** current key. The entry is unique if (1) any column is NULL ** or (2) the next entry has a different key */ - if int32((*TIndex)(unsafe.Pointer(pIdx5)).FonError) != OE_None { + if int32((*TIndex)(unsafe.Pointer(pIdx6)).FonError) != OE_None { uniqOk = _sqlite3VdbeMakeLabel(tls, pParse) kk = 0 for { - if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) { + if !(kk < int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) { break } - iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx5)).FaiColumn + uintptr(kk)*2))) - if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab9)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { - goto _56 + iCol1 = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx6)).FaiColumn + uintptr(kk)*2))) + if iCol1 >= 0 && int32(uint32(*(*uint8)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(iCol1)*16 + 8))&0xf>>0)) != 0 { + goto _61 } _sqlite3VdbeAddOp2(tls, v, int32(OP_IsNull), r1+kk, uniqOk) - goto _56 - _56: + goto _61 + _61: ; kk++ } jmp61 = _sqlite3VdbeAddOp1(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 112))+j4) _sqlite3VdbeGoto(tls, v, uniqOk) _sqlite3VdbeJumpHere(tls, v, jmp61) - _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx5)).FnKeyCol)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+19731) + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, int32((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+19847) _sqlite3VdbeGoto(tls, v, jmp5) _sqlite3VdbeResolveLabel(tls, v, uniqOk) } _sqlite3VdbeJumpHere(tls, v, jmp4) _sqlite3ResolvePartIdxLabel(tls, pParse, *(*int32)(unsafe.Pointer(bp + 128))) - goto _54 - _54: + goto _59 + _59: ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext + pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext j4++ } } _sqlite3VdbeAddOp2(tls, v, int32(OP_Next), *(*int32)(unsafe.Pointer(bp + 108)), loopTop) _sqlite3VdbeJumpHere(tls, v, loopTop-int32(1)) - if !(isQuick != 0) { - _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+19758) - j4 = 0 - pIdx5 = (*TTable)(unsafe.Pointer(pTab9)).FpIndex - for { - if !(pIdx5 != 0) { - break - } - if pPk1 == pIdx5 { - goto _57 - } - _sqlite3VdbeAddOp2(tls, v, int32(OP_Count), *(*int32)(unsafe.Pointer(bp + 112))+j4, int32(3)) - addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_Eq), int32(8)+j4, 0, int32(3)) - _sqlite3VdbeChangeP5(tls, v, uint16(SQLITE_NOTNULL)) - _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx5)).FzName) - _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(2), int32(3)) - _integrityCheckResultRow(tls, v) - _sqlite3VdbeJumpHere(tls, v, addr1) - goto _57 - _57: - ; - pIdx5 = (*TIndex)(unsafe.Pointer(pIdx5)).FpNext - j4++ - } - if pPk1 != 0 { - _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) - } + if pPk1 != 0 { + _sqlite3ReleaseTempRange(tls, pParse, r2, int32((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) } - goto _48 - _48: + goto _53 + _53: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -189873,60 +190703,60 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(x2 != 0) { break } - pTab10 = (*THashElem)(unsafe.Pointer(x2)).Fdata - if pObjTab != 0 && pObjTab != pTab10 { - goto _58 + pTab11 = (*THashElem)(unsafe.Pointer(x2)).Fdata + if pObjTab != 0 && pObjTab != pTab11 { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == TABTYP_NORM { - goto _58 + if int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == TABTYP_NORM { + goto _62 } - if !(int32((*TTable)(unsafe.Pointer(pTab10)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { - goto _58 + if !(int32((*TTable)(unsafe.Pointer(pTab11)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { + goto _62 } - if int32((*TTable)(unsafe.Pointer(pTab10)).FnCol) <= 0 { + if int32((*TTable)(unsafe.Pointer(pTab11)).FnCol) <= 0 { zMod = *(*uintptr)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).FazArg)) + })(unsafe.Pointer(pTab11 + 64))).FazArg)) if _sqlite3HashFind(tls, db+576, zMod) == uintptr(0) { - goto _58 + goto _62 } } - _sqlite3ViewGetColumnNames(tls, pParse, pTab10) + _sqlite3ViewGetColumnNames(tls, pParse, pTab11) if (*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp == uintptr(0) { - goto _58 + })(unsafe.Pointer(pTab11 + 64))).Fp == uintptr(0) { + goto _62 } pVTab = (*TVTable)(unsafe.Pointer((*(*struct { FnArg int32 FazArg uintptr Fp uintptr - })(unsafe.Pointer(pTab10 + 64))).Fp)).FpVtab + })(unsafe.Pointer(pTab11 + 64))).Fp)).FpVtab if pVTab == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule == uintptr(0) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FiVersion < int32(4) { - goto _58 + goto _62 } if (*Tsqlite3_module)(unsafe.Pointer((*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FpModule)).FxIntegrity == uintptr(0) { - goto _58 + goto _62 } _sqlite3VdbeAddOp3(tls, v, int32(OP_VCheck), i9, int32(3), isQuick) - (*TTable)(unsafe.Pointer(pTab10)).FnTabRef++ - _sqlite3VdbeAppendP4(tls, v, pTab10, -int32(16)) + (*TTable)(unsafe.Pointer(pTab11)).FnTabRef++ + _sqlite3VdbeAppendP4(tls, v, pTab11, -int32(16)) a11 = _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), int32(3)) _integrityCheckResultRow(tls, v) _sqlite3VdbeJumpHere(tls, v, a11) - goto _58 - goto _58 - _58: + goto _62 + goto _62 + _62: ; x2 = (*THashElem)(unsafe.Pointer(x2)).Fnext } @@ -189939,7 +190769,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if aOp2 != 0 { (*(*TVdbeOp)(unsafe.Pointer(aOp2))).Fp2 = int32(1) - *(*int32)(unsafe.Pointer(bp + 104)) (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 2*24))).Fp4type = int8(-libc.Int32FromInt32(1)) - *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 19787 + *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 19874 (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 5*24))).Fp4type = int8(-libc.Int32FromInt32(1)) *(*uintptr)(unsafe.Pointer(aOp2 + 5*24 + 16)) = _sqlite3ErrStr(tls, int32(SQLITE_CORRUPT)) } @@ -189997,20 +190827,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc != 0 { - v60 = int32((*struct { + v64 = int32((*struct { FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).Fenc) } else { - v60 = int32(SQLITE_UTF16LE) + v64 = int32(SQLITE_UTF16LE) } - enc = uint8(v60) + enc = uint8(v64) (*TSchema)(unsafe.Pointer((*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema)).Fenc = enc _sqlite3SetTextEncoding(tls, db, enc) break } - goto _59 - _59: + goto _63 + _63: ; pEnc += 16 } @@ -190018,7 +190848,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p FzName uintptr Fenc Tu8 })(unsafe.Pointer(pEnc)).FzName != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19848, libc.VaList(bp+176, zRight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19935, libc.VaList(bp+176, zRight)) } } } @@ -190096,11 +190926,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p i10 = 0 (*TParse)(unsafe.Pointer(pParse)).FnMem = int32(1) for { - v62 = i10 + v66 = i10 i10++ - v61 = Xsqlite3_compileoption_get(tls, v62) - zOpt = v61 - if !(v61 != uintptr(0)) { + v65 = Xsqlite3_compileoption_get(tls, v66) + zOpt = v65 + if !(v65 != uintptr(0)) { break } _sqlite3VdbeLoadString(tls, v, int32(1), zOpt) @@ -190116,20 +190946,20 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p fallthrough case int32(PragTyp_WAL_CHECKPOINT): if (*TToken)(unsafe.Pointer(pId2)).Fz != 0 { - v63 = iDb + v67 = iDb } else { - v63 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) + v67 = libc.Int32FromInt32(SQLITE_MAX_ATTACHED) + libc.Int32FromInt32(2) } - iBt = v63 + iBt = v67 eMode2 = SQLITE_CHECKPOINT_PASSIVE if zRight != 0 { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+19073) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+19160) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_FULL) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+19873) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+19960) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_RESTART) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+19226) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+19313) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_TRUNCATE) } } @@ -190153,11 +190983,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p Xsqlite3_wal_autocheckpoint(tls, db, _sqlite3Atoi(tls, zRight)) } if (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback == __ccgo_fp(_sqlite3WalDefaultHook) { - v64 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) + v68 = int32(int64((*Tsqlite3)(unsafe.Pointer(db)).FpWalArg)) } else { - v64 = 0 + v68 = 0 } - _returnSingleInt(tls, v, int64(v64)) + _returnSingleInt(tls, v, int64(v68)) break /* ** PRAGMA shrink_memory @@ -190185,47 +191015,68 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** ** The optional argument is a bitmask of optimizations to perform: ** - ** 0x0001 Debugging mode. Do not actually perform any optimizations - ** but instead return one line of text for each optimization - ** that would have been done. Off by default. + ** 0x00001 Debugging mode. Do not actually perform any optimizations + ** but instead return one line of text for each optimization + ** that would have been done. Off by default. ** - ** 0x0002 Run ANALYZE on tables that might benefit. On by default. - ** See below for additional information. + ** 0x00002 Run ANALYZE on tables that might benefit. On by default. + ** See below for additional information. ** - ** 0x0004 (Not yet implemented) Record usage and performance - ** information from the current session in the - ** database file so that it will be available to "optimize" - ** pragmas run by future database connections. + ** 0x00010 Run all ANALYZE operations using an analysis_limit that + ** is the lessor of the current analysis_limit and the + ** SQLITE_DEFAULT_OPTIMIZE_LIMIT compile-time option. + ** The default value of SQLITE_DEFAULT_OPTIMIZE_LIMIT is + ** currently (2024-02-19) set to 2000, which is such that + ** the worst case run-time for PRAGMA optimize on a 100MB + ** database will usually be less than 100 milliseconds on + ** a RaspberryPI-4 class machine. On by default. ** - ** 0x0008 (Not yet implemented) Create indexes that might have - ** been helpful to recent queries + ** 0x10000 Look at tables to see if they need to be reanalyzed + ** due to growth or shrinkage even if they have not been + ** queried during the current connection. Off by default. ** - ** The default MASK is and always shall be 0xfffe. 0xfffe means perform all - ** of the optimizations listed above except Debug Mode, including new - ** optimizations that have not yet been invented. If new optimizations are - ** ever added that should be off by default, those off-by-default - ** optimizations will have bitmasks of 0x10000 or larger. + ** The default MASK is and always shall be 0x0fffe. In the current + ** implementation, the default mask only covers the 0x00002 optimization, + ** though additional optimizations that are covered by 0x0fffe might be + ** added in the future. Optimizations that are off by default and must + ** be explicitly requested have masks of 0x10000 or greater. ** ** DETERMINATION OF WHEN TO RUN ANALYZE ** ** In the current implementation, a table is analyzed if only if all of ** the following are true: ** - ** (1) MASK bit 0x02 is set. + ** (1) MASK bit 0x00002 is set. ** - ** (2) The query planner used sqlite_stat1-style statistics for one or - ** more indexes of the table at some point during the lifetime of - ** the current connection. + ** (2) The table is an ordinary table, not a virtual table or view. ** - ** (3) One or more indexes of the table are currently unanalyzed OR - ** the number of rows in the table has increased by 25 times or more - ** since the last time ANALYZE was run. + ** (3) The table name does not begin with "sqlite_". + ** + ** (4) One or more of the following is true: + ** (4a) The 0x10000 MASK bit is set. + ** (4b) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. + ** (4c) The query planner used sqlite_stat1-style statistics for one + ** or more indexes of the table at some point during the lifetime + ** of the current connection. + ** + ** (5) One or more of the following is true: + ** (5a) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. (Same as 4a) + ** (5b) The number of rows in the table has increased or decreased by + ** 10-fold. In other words, the current size of the table is + ** 10 times larger than the size in sqlite_stat1 or else the + ** current size is less than 1/10th the size in sqlite_stat1. ** ** The rules for when tables are analyzed are likely to change in - ** future releases. + ** future releases. Future versions of SQLite might accept a string + ** literal argument to this pragma that contains a mnemonic description + ** of the options rather than a bitmap. */ fallthrough - case int32(PragTyp_OPTIMIZE): /* Mask of operations to perform */ + case int32(PragTyp_OPTIMIZE): /* Analysis limit to use */ + nCheck = 0 /* Number of tables to be optimized */ + nBtree = 0 /* Number of indexes on the current table */ if zRight != 0 { opMask = uint32(_sqlite3Atoi(tls, zRight)) if opMask&uint32(0x02) == uint32(0) { @@ -190234,22 +191085,31 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { opMask = uint32(0xfffe) } - v66 = pParse + 52 - v65 = *(*int32)(unsafe.Pointer(v66)) - *(*int32)(unsafe.Pointer(v66))++ - iTabCur = v65 + if opMask&uint32(0x10) == uint32(0) { + nLimit = 0 + } else { + if (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit > 0 && (*Tsqlite3)(unsafe.Pointer(db)).FnAnalysisLimit < int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) { + nLimit = 0 + } else { + nLimit = int32(SQLITE_DEFAULT_OPTIMIZE_LIMIT) + } + } + v70 = pParse + 52 + v69 = *(*int32)(unsafe.Pointer(v70)) + *(*int32)(unsafe.Pointer(v70))++ + iTabCur = v69 if zDb != 0 { - v68 = iDb + v72 = iDb } else { - v68 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) + v72 = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - int32(1) } - iDbLast = v68 + iDbLast = v72 for { if !(iDb <= iDbLast) { break } if iDb == int32(1) { - goto _67 + goto _71 } _sqlite3CodeVerifySchema(tls, pParse, iDb) pSchema = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema @@ -190258,52 +191118,122 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(k4 != 0) { break } - pTab11 = (*THashElem)(unsafe.Pointer(k4)).Fdata - /* If table pTab has not been used in a way that would benefit from - ** having analysis statistics during the current session, then skip it. - ** This also has the effect of skipping virtual tables and views */ - if (*TTable)(unsafe.Pointer(pTab11)).FtabFlags&uint32(TF_StatsUsed) == uint32(0) { - goto _69 - } - /* Reanalyze if the table is 25 times larger than the last analysis */ - szThreshold = int16(int32((*TTable)(unsafe.Pointer(pTab11)).FnRowLogEst) + int32(46)) - pIdx6 = (*TTable)(unsafe.Pointer(pTab11)).FpIndex + pTab12 = (*THashElem)(unsafe.Pointer(k4)).Fdata + /* This only works for ordinary tables */ + if !(int32((*TTable)(unsafe.Pointer(pTab12)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) { + goto _73 + } + /* Do not scan system tables */ + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab12)).FzName, __ccgo_ts+7898, int32(7)) { + goto _73 + } + /* Find the size of the table as last recorded in sqlite_stat1. + ** If any index is unanalyzed, then the threshold is -1 to + ** indicate a new, unanalyzed index + */ + szThreshold = (*TTable)(unsafe.Pointer(pTab12)).FnRowLogEst + nIndex = 0 + pIdx7 = (*TTable)(unsafe.Pointer(pTab12)).FpIndex for { - if !(pIdx6 != 0) { + if !(pIdx7 != 0) { break } - if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx6 + 100))&0x80>>7)) != 0) { - szThreshold = 0 /* Always analyze if any index lacks statistics */ - break + nIndex++ + if !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx7 + 100))&0x80>>7)) != 0) { + szThreshold = int16(-int32(1)) /* Always analyze if any index lacks statistics */ } - goto _70 - _70: + goto _74 + _74: ; - pIdx6 = (*TIndex)(unsafe.Pointer(pIdx6)).FpNext + pIdx7 = (*TIndex)(unsafe.Pointer(pIdx7)).FpNext } - if szThreshold != 0 { - _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab11, int32(OP_OpenRead)) - _sqlite3VdbeAddOp3(tls, v, int32(OP_IfSmaller), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), int32(int32(szThreshold))) + /* If table pTab has not been used in a way that would benefit from + ** having analysis statistics during the current session, then skip it, + ** unless the 0x10000 MASK bit is set. */ + if (*TTable)(unsafe.Pointer(pTab12)).FtabFlags&uint32(TF_MaybeReanalyze) != uint32(0) { + /* Check for size change if stat1 has been used for a query */ + } else { + if opMask&uint32(0x10000) != 0 { + /* Check for size change if 0x10000 is set */ + } else { + if (*TTable)(unsafe.Pointer(pTab12)).FpIndex != uintptr(0) && int32(int32(szThreshold)) < 0 { + /* Do analysis if unanalyzed indexes exists */ + } else { + /* Otherwise, we can skip this table */ + goto _73 + } + } + } + nCheck++ + if nCheck == int32(2) { + /* If ANALYZE might be invoked two or more times, hold a write + ** transaction for efficiency */ + _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) + } + nBtree += nIndex + int32(1) + /* Reanalyze if the table is 10 times larger or smaller than + ** the last analysis. Unconditional reanalysis if there are + ** unanalyzed indexes. */ + _sqlite3OpenTable(tls, pParse, iTabCur, iDb, pTab12, int32(OP_OpenRead)) + if int32(int32(szThreshold)) >= 0 { + iRange = int16(33) /* 10x size change */ + if int32(int32(szThreshold)) >= int32(int32(iRange)) { + v75 = int32(int32(szThreshold)) - int32(int32(iRange)) + } else { + v75 = -int32(1) + } + _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IfSizeBetween), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1)), v75, int32(int32(szThreshold))+int32(int32(iRange))) + } else { + _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), iTabCur, int32(uint32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1))) } - zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+19881, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab11)).FzName)) + zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+19968, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab12)).FzName)) if opMask&uint32(0x01) != 0 { r11 = _sqlite3GetTempReg(tls, pParse) _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, r11, 0, zSubSql, -int32(6)) _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), r11, int32(1)) } else { - _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), 0, 0, 0, zSubSql, -int32(6)) + if nLimit != 0 { + v76 = int32(0x02) + } else { + v76 = 00 + } + _sqlite3VdbeAddOp4(tls, v, int32(OP_SqlExec), v76, nLimit, 0, zSubSql, -int32(6)) } - goto _69 - _69: + goto _73 + _73: ; k4 = (*THashElem)(unsafe.Pointer(k4)).Fnext } - goto _67 - _67: + goto _71 + _71: ; iDb++ } _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) + /* In a schema with a large number of tables and indexes, scale back + ** the analysis_limit to avoid excess run-time in the worst case. + */ + if !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && nLimit > 0 && nBtree > int32(100) { + nLimit = int32(100) * nLimit / nBtree + if nLimit < int32(100) { + nLimit = int32(100) + } + aOp5 = _sqlite3VdbeGetOp(tls, v, 0) + iEnd = _sqlite3VdbeCurrentAddr(tls, v) + iAddr1 = 0 + for { + if !(iAddr1 < iEnd) { + break + } + if int32((*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fopcode) == int32(OP_SqlExec) { + (*(*TVdbeOp)(unsafe.Pointer(aOp5 + uintptr(iAddr1)*24))).Fp2 = nLimit + } + goto _77 + _77: + ; + iAddr1++ + } + } break /* ** PRAGMA busy_timeout @@ -190397,6 +191327,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p ** instructions to the VM. */ if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_NoColumns1) != 0 && zRight != 0 { } + goto pragma_out pragma_out: ; _sqlite3DbFree(tls, db, zLeft) @@ -190528,34 +191459,34 @@ var _encnames1 = [9]struct { Fenc Tu8 }{ 0: { - FzName: __ccgo_ts + 19790, + FzName: __ccgo_ts + 19877, Fenc: uint8(SQLITE_UTF8), }, 1: { - FzName: __ccgo_ts + 19795, + FzName: __ccgo_ts + 19882, Fenc: uint8(SQLITE_UTF8), }, 2: { - FzName: __ccgo_ts + 19801, + FzName: __ccgo_ts + 19888, Fenc: uint8(SQLITE_UTF16LE), }, 3: { - FzName: __ccgo_ts + 19810, + FzName: __ccgo_ts + 19897, Fenc: uint8(SQLITE_UTF16BE), }, 4: { - FzName: __ccgo_ts + 19819, + FzName: __ccgo_ts + 19906, Fenc: uint8(SQLITE_UTF16LE), }, 5: { - FzName: __ccgo_ts + 19827, + FzName: __ccgo_ts + 19914, Fenc: uint8(SQLITE_UTF16BE), }, 6: { - FzName: __ccgo_ts + 19835, + FzName: __ccgo_ts + 19922, }, 7: { - FzName: __ccgo_ts + 19842, + FzName: __ccgo_ts + 19929, }, 8: {}, } @@ -190651,14 +191582,14 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg _ = argc _ = argv _sqlite3StrAccumInit(tls, bp, uintptr(0), bp+32, int32(200), 0) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+19899) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+19986) i = 0 j = int32((*TPragmaName)(unsafe.Pointer(pPragma)).FiPragCName) for { if !(i < int32((*TPragmaName)(unsafe.Pointer(pPragma)).FnPragCName)) { break } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+19914, libc.VaList(bp+240, int32(int32(cSep)), _pragCName[j])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+20001, libc.VaList(bp+240, int32(int32(cSep)), _pragCName[j])) cSep = int8(',') goto _1 _1: @@ -190667,19 +191598,19 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg j++ } if i == 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+19921, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+20008, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) i++ } j = 0 if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_Result1) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+19927) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+20014) j++ } if int32((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&(libc.Int32FromInt32(PragFlg_SchemaOpt)|libc.Int32FromInt32(PragFlg_SchemaReq)) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+19939) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+20026) j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+6415, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+6479, int32(1)) _sqlite3StrAccumFinish(tls, bp) rc = Xsqlite3_declare_vtab(tls, db, bp+32) if rc == SQLITE_OK { @@ -190694,7 +191625,7 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg (*TPragmaVtab)(unsafe.Pointer(pTab)).FnHidden = uint8(uint8(j)) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) } *(*uintptr)(unsafe.Pointer(ppVtab)) = pTab return rc @@ -190740,14 +191671,14 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 if !(i < (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint) { break } - if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { goto _1 } if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fop) != int32(SQLITE_INDEX_CONSTRAINT_EQ) { goto _1 } - if (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn < int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) { - goto _1 + if int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).Fusable) == 0 { + return int32(SQLITE_CONSTRAINT) } j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pConstraint)).FiColumn - int32((*TPragmaVtab)(unsafe.Pointer(pTab)).FiHidden) seen[j] = i + int32(1) @@ -190765,16 +191696,13 @@ func _pragmaVtabBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32 j = seen[0] - int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) - if seen[int32(1)] == 0 { - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(1000) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(1000) - return SQLITE_OK - } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = libc.Float64FromInt32(20) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(20) - j = seen[int32(1)] - int32(1) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) - (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + if seen[int32(1)] != 0 { + j = seen[int32(1)] - int32(1) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).FargvIndex = int32(2) + (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(j)*8))).Fomit = uint8(1) + } return SQLITE_OK } @@ -190802,6 +191730,7 @@ func _pragmaVtabCursorClear(tls *libc.TLS, pCsr uintptr) { _ = i Xsqlite3_finalize(tls, (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma) (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FpPragma = uintptr(0) + (*TPragmaVtabCursor)(unsafe.Pointer(pCsr)).FiRowid = 0 i = 0 for { if !(i < int32(libc.Uint64FromInt64(16)/libc.Uint64FromInt64(8))) { @@ -190877,7 +191806,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr } zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if zText != 0 { - *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+40, zText)) + *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+40, zText)) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -190889,13 +191818,13 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr j++ } _sqlite3StrAccumInit(tls, bp, uintptr(0), uintptr(0), 0, *(*int32)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb + 136 + 1*4))) - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+19954) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+20041) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+19962, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+20049, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) } Xsqlite3_str_appendall(tls, bp, (*TPragmaName)(unsafe.Pointer((*TPragmaVtab)(unsafe.Pointer(pTab)).FpName)).FzName) if *(*uintptr)(unsafe.Pointer(pCsr + 24)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+19966, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+20053, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) } zSql = _sqlite3StrAccumFinish(tls, bp) if zSql == uintptr(0) { @@ -190904,7 +191833,7 @@ func _pragmaVtabFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr rc = Xsqlite3_prepare_v2(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), pCsr+8, uintptr(0)) Xsqlite3_free(tls, zSql) if rc != SQLITE_OK { - (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) + (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) return rc } return _pragmaVtabNext(tls, pVtabCursor) @@ -191030,24 +191959,24 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) /* A error message has already been generated. Do not overwrite it */ } else { if (*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(libc.Int32FromInt32(INITFLAG_AlterMask)) != 0 { - *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+20000, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) + *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+20087, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azObj)), *(*uintptr)(unsafe.Pointer(azObj + 1*8)), _azAlterType[(*TInitData)(unsafe.Pointer(pData)).FmInitFlags&uint32(INITFLAG_AlterMask)-uint32(1)], zExtra)) (*TInitData)(unsafe.Pointer(pData)).Frc = int32(SQLITE_ERROR) } else { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_WriteSchema) != 0 { - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140891)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141840)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) } else { - v1 = __ccgo_ts + 6417 + v1 = __ccgo_ts + 6481 } zObj = v1 - z = _sqlite3MPrintf(tls, db, __ccgo_ts+20028, libc.VaList(bp+8, zObj)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+20115, libc.VaList(bp+8, zObj)) if zExtra != 0 && *(*int8)(unsafe.Pointer(zExtra)) != 0 { - z = _sqlite3MPrintf(tls, db, __ccgo_ts+20059, libc.VaList(bp+8, z, zExtra)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+20146, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(140898)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(141847)) } } } @@ -191055,9 +191984,9 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) } var _azAlterType = [3]uintptr{ - 0: __ccgo_ts + 19970, - 1: __ccgo_ts + 19977, - 2: __ccgo_ts + 19989, + 0: __ccgo_ts + 20057, + 1: __ccgo_ts + 20064, + 2: __ccgo_ts + 20076, } // C documentation @@ -191133,7 +192062,7 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(uint8(iDb)) if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), db+192) == 0 || (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage && (*TInitData)(unsafe.Pointer(pData)).FmxPage > uint32(0) { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+15830) + _corruptSchema(tls, pData, argv, __ccgo_ts+15923) } } libc.SetBitFieldPtr8Uint32(db+192+8, libc.Uint32FromInt32(0), 0, 0x1) @@ -191166,11 +192095,11 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr } else { pIndex = _sqlite3FindIndex(tls, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName) if pIndex == uintptr(0) { - _corruptSchema(tls, pData, argv, __ccgo_ts+20067) + _corruptSchema(tls, pData, argv, __ccgo_ts+20154) } else { if _sqlite3GetUInt32(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8)), pIndex+88) == 0 || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum < uint32(2) || (*TIndex)(unsafe.Pointer(pIndex)).Ftnum > (*TInitData)(unsafe.Pointer(pData)).FmxPage || _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { if _sqlite3Config.FbExtraSchemaChecks != 0 { - _corruptSchema(tls, pData, argv, __ccgo_ts+15830) + _corruptSchema(tls, pData, argv, __ccgo_ts+15923) } } } @@ -191209,18 +192138,18 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** table name will be inserted automatically by the parser so we can just ** use the abbreviation "x" here. The parser will also automatically tag ** the schema table as read-only. */ - (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 10367 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 10492 if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 7842 + v2 = __ccgo_ts + 7906 } else { - v2 = __ccgo_ts + 7375 + v2 = __ccgo_ts + 7439 } v1 = v2 zSchemaTabName = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] = v1 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(2)] = (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(1)] - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 9439 - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 20080 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 9564 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 20167 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(5)] = uintptr(0) (*(*TInitData)(unsafe.Pointer(bp + 72))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 72))).FiDb = iDb @@ -191309,7 +192238,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl } else { /* If opening an attached database, the encoding much match ENC(db) */ if (*(*[5]int32)(unsafe.Pointer(bp + 48)))[libc.Int32FromInt32(BTREE_TEXT_ENCODING)-libc.Int32FromInt32(1)]&int32(3) != int32((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+13404) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+13529) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -191335,7 +192264,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl (*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format = uint8(1) } if int32((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) > int32(SQLITE_MAX_FILE_FORMAT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+20152) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+20239) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -191350,7 +192279,7 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl /* Read the schema information out of the schema tables */ (*(*TInitData)(unsafe.Pointer(bp + 72))).FmxPage = _sqlite3BtreeLastPage(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+20176, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+20263, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) xAuth = (*Tsqlite3)(unsafe.Pointer(db)).FxAuth (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = uintptr(0) rc = Xsqlite3_exec(tls, db, zSql, __ccgo_fp(_sqlite3InitCallback), bp+72, uintptr(0)) @@ -191387,12 +192316,14 @@ func _sqlite3InitOne(tls *libc.TLS, db uintptr, iDb int32, pzErrMsg uintptr, mFl ** curMain and calling sqlite3BtreeEnter(). For an error that occurs ** before that point, jump to error_out. */ + goto initone_error_out initone_error_out: ; if openedTransaction != 0 { _sqlite3BtreeCommit(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) } _sqlite3BtreeLeave(tls, (*TDb)(unsafe.Pointer(pDb)).FpBt) + goto error_out error_out: ; if rc != 0 { @@ -191647,7 +192578,12 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup - pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + if _sqlite3FaultSim(tls, int32(300)) != 0 { + pCleanup = uintptr(0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) + } else { + pCleanup = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(24)) + } if pCleanup != 0 { (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup @@ -191678,7 +192614,7 @@ func _sqlite3ParseObjectInit(tls *libc.TLS, pParse uintptr, db uintptr) { (*Tsqlite3)(unsafe.Pointer(db)).FpParse = pParse (*TParse)(unsafe.Pointer(pParse)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1628, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1642, 0) } } @@ -191712,7 +192648,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } else { } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { - _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1628, 0) + _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1642, 0) v1 = libc.Int32FromInt32(SQLITE_NOMEM) rc = v1 (*Tsqlite3)(unsafe.Pointer(db)).FerrCode = v1 @@ -191761,7 +192697,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep rc = _sqlite3BtreeSchemaLocked(tls, pBt) if rc != 0 { zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FzDbSName - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+20210, libc.VaList(bp+432, zDb)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+20297, libc.VaList(bp+432, zDb)) goto end_prepare } } @@ -191777,7 +192713,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep if nBytes >= 0 && (nBytes == 0 || int32(*(*int8)(unsafe.Pointer(zSql + uintptr(nBytes-int32(1))))) != 0) { mxLen = *(*int32)(unsafe.Pointer(db + 136 + 1*4)) if nBytes > mxLen { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+20240, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+20327, 0) rc = _sqlite3ApiExit(tls, db, int32(SQLITE_TOOBIG)) goto end_prepare } @@ -191811,7 +192747,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep } rc = (*(*TParse)(unsafe.Pointer(bp))).Frc if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+4645, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+4709, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) } else { _sqlite3Error(tls, db, rc) @@ -191827,6 +192763,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep (*(*TParse)(unsafe.Pointer(bp))).FpTriggerPrg = (*TTriggerPrg)(unsafe.Pointer(pT)).FpNext _sqlite3DbFree(tls, db, pT) } + goto end_prepare end_prepare: ; _sqlite3ParseObjectReset(tls, bp) @@ -191840,7 +192777,7 @@ func _sqlite3LockAndPrepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int3 cnt = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141699)) + return _sqlite3MisuseError(tls, int32(142654)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -191974,7 +192911,7 @@ func _sqlite3Prepare16(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, pr rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) if !(_sqlite3SafetyCheckOk(tls, db) != 0) || zSql == uintptr(0) { - return _sqlite3MisuseError(tls, int32(141848)) + return _sqlite3MisuseError(tls, int32(142803)) } if nBytes >= 0 { z = zSql @@ -192380,15 +193317,15 @@ func _sqlite3JoinType(tls *libc.TLS, pParse uintptr, pA uintptr, pB uintptr, pC i++ } if jointype&(libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER)) == libc.Int32FromInt32(JT_INNER)|libc.Int32FromInt32(JT_OUTER) || jointype&int32(JT_ERROR) != 0 || jointype&(libc.Int32FromInt32(JT_OUTER)|libc.Int32FromInt32(JT_LEFT)|libc.Int32FromInt32(JT_RIGHT)) == int32(JT_OUTER) { - zSp1 = __ccgo_ts + 12511 - zSp2 = __ccgo_ts + 12511 + zSp1 = __ccgo_ts + 12636 + zSp2 = __ccgo_ts + 12636 if pB == uintptr(0) { zSp1++ } if pC == uintptr(0) { zSp2++ } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20259, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20346, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) jointype = int32(JT_INNER) } return jointype @@ -192679,7 +193616,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { if int32((*TSrcItem)(unsafe.Pointer(pRight)).Ffg.Fjointype)&int32(JT_NATURAL) != 0 { pUsing = uintptr(0) if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x400>>10)) != 0 || *(*uintptr)(unsafe.Pointer(pRight + 72)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20289, libc.VaList(bp+16, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20376, libc.VaList(bp+16, 0)) return int32(1) } j = 0 @@ -192729,7 +193666,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { zName1 = (*(*TIdList_item)(unsafe.Pointer(pList + 8 + uintptr(j)*16))).FzName iRightCol = _sqlite3ColumnIndex(tls, pRightTab, zName1) if iRightCol < 0 || _tableAndColumnIndex(tls, pSrc, 0, i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20339, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20426, libc.VaList(bp+16, zName1)) return int32(1) } pE1 = _sqlite3CreateColumnExpr(tls, db, pSrc, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) @@ -192751,7 +193688,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { pFuncArgs = uintptr(0) /* Arguments to the coalesce() */ for _tableAndColumnIndex(tls, pSrc, *(*int32)(unsafe.Pointer(bp))+int32(1), i, zName1, bp, bp+4, int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x1000>>12))) != 0 { if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 60 + 4))&0x400>>10)) == 0 || _sqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*104 + 72)), zName1) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20403, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20490, libc.VaList(bp+16, zName1)) break } pFuncArgs = _sqlite3ExprListAppend(tls, pParse, pFuncArgs, pE1) @@ -192795,7 +193732,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { } var _tkCoalesce = TToken{ - Fz: __ccgo_ts + 8039, + Fz: __ccgo_ts + 8103, Fn: uint32(8), } @@ -193571,13 +194508,13 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { _ = z switch id { case int32(TK_ALL): - z = __ccgo_ts + 20440 + z = __ccgo_ts + 20527 case int32(TK_INTERSECT): - z = __ccgo_ts + 20450 + z = __ccgo_ts + 20537 case int32(TK_EXCEPT): - z = __ccgo_ts + 20460 + z = __ccgo_ts + 20547 default: - z = __ccgo_ts + 20467 + z = __ccgo_ts + 20554 break } return z @@ -193598,7 +194535,7 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { func _explainTempTable(tls *libc.TLS, pParse uintptr, zUsage uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20473, libc.VaList(bp+8, zUsage)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20560, libc.VaList(bp+8, zUsage)) } /* @@ -193632,12 +194569,17 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, iParm = (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm /* True if sorter record includes seq. no. */ nRefKey = 0 aOutEx = (*TSelect)(unsafe.Pointer(p)).FpEList + 8 - if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat > 0 { - v1 = __ccgo_ts + 20496 + nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat == 0 || nKey == int32(1) { + if (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat != 0 { + v1 = __ccgo_ts + 20583 + } else { + v1 = __ccgo_ts + 1672 + } + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20597, libc.VaList(bp+8, v1)) } else { - v1 = __ccgo_ts + 1658 + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20628, libc.VaList(bp+8, nKey)) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20511, libc.VaList(bp+8, v1)) if (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut != 0 { _sqlite3VdbeAddOp2(tls, v, int32(OP_Gosub), (*TSortCtx)(unsafe.Pointer(pSort)).FregReturn, (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut) _sqlite3VdbeGoto(tls, v, addrBreak) @@ -193659,7 +194601,6 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, regRow = _sqlite3GetTempRange(tls, pParse, nColumn) } } - nKey = (*TExprList)(unsafe.Pointer(pOrderBy)).FnExpr - (*TSortCtx)(unsafe.Pointer(pSort)).FnOBSat if int32((*TSortCtx)(unsafe.Pointer(pSort)).FsortFlags)&int32(SORTFLAG_UseSorter) != 0 { v3 = pParse + 56 *(*int32)(unsafe.Pointer(v3))++ @@ -193877,7 +194818,7 @@ func _columnTypeImpl(tls *libc.TLS, pNC uintptr, pExpr uintptr, pzOrigDb uintptr } if iCol < 0 { zType = __ccgo_ts + 1146 - *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 18009 + *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 18096 } else { *(*uintptr)(unsafe.Pointer(bp + 16)) = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, uintptr(0)) @@ -194023,13 +194964,13 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) iCol = int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) } if iCol < 0 { - zCol = __ccgo_ts + 18009 + zCol = __ccgo_ts + 18096 } else { zCol = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } if fullName != 0 { zName1 = uintptr(0) - zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+13690, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) + zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+13815, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zName1, __ccgo_fp(_sqlite3OomClear)) } else { _sqlite3VdbeSetColName(tls, v, i, COLNAME_NAME, zCol, uintptr(-libc.Int32FromInt32(1))) @@ -194037,7 +194978,7 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) } else { z = (*(*TExprList_item)(unsafe.Pointer(pEList + 8 + uintptr(i)*32))).FzEName if z == uintptr(0) { - v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+20542, libc.VaList(bp+8, i+int32(1))) + v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+20674, libc.VaList(bp+8, i+int32(1))) } else { v2 = _sqlite3DbStrDup(tls, db, z) } @@ -194129,7 +195070,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if iCol >= 0 { v3 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName } else { - v3 = __ccgo_ts + 18009 + v3 = __ccgo_ts + 18096 } zName = v3 } else { @@ -194144,7 +195085,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, if zName != 0 && !(_sqlite3IsTrueOrFalse(tls, zName) != 0) { zName = _sqlite3DbStrDup(tls, db, zName) } else { - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+20542, libc.VaList(bp+40, i+int32(1))) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+20674, libc.VaList(bp+40, i+int32(1))) } /* Make sure the column name is unique. If the name is not unique, ** append an integer to the name so that it becomes unique. @@ -194180,7 +195121,7 @@ func _sqlite3ColumnsFromExprList(tls *libc.TLS, pParse uintptr, pEList uintptr, } *(*Tu32)(unsafe.Pointer(bp))++ v8 = *(*Tu32)(unsafe.Pointer(bp)) - zName = _sqlite3MPrintf(tls, db, __ccgo_ts+20551, libc.VaList(bp+40, nName, zName, v8)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+20683, libc.VaList(bp+40, nName, zName, v8)) _sqlite3ProgressCheck(tls, pParse) if *(*Tu32)(unsafe.Pointer(bp)) > uint32(3) { Xsqlite3_randomness(tls, int32(4), bp) @@ -194240,9 +195181,9 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS defer tls.Free(64) var a, db, p, pCol, pColl, pS2, zType, p4, p5 uintptr var i, j, m int32 - var m1, n Ti64 + var k, n Ti64 var _ /* sNC at bp+0 */ TNameContext - _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, m, m1, n, p, pCol, pColl, pS2, zType, p4, p5 + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = a, db, i, j, k, m, n, p, pCol, pColl, pS2, zType, p4, p5 db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 || int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { return @@ -194259,17 +195200,22 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS if !(i < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } + m = 0 + pS2 = pSelect *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(int32((*TColumn)(unsafe.Pointer(pCol)).FcolFlags) & libc.Int32FromInt32(COLFLAG_NOINSERT)) p = (*(*TExprList_item)(unsafe.Pointer(a + uintptr(i)*32))).FpExpr /* pCol->szEst = ... // Column size est for SELECT tables never used */ (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, p) + for int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) && (*TSelect)(unsafe.Pointer(pS2)).FpNext != uintptr(0) { + m |= _sqlite3ExprDataType(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext + (*TColumn)(unsafe.Pointer(pCol)).Faffinity = _sqlite3ExprAffinity(tls, (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pS2)).FpEList + 8 + uintptr(i)*32))).FpExpr) + } if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) <= int32(SQLITE_AFF_NONE) { (*TColumn)(unsafe.Pointer(pCol)).Faffinity = aff } - if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && (*TSelect)(unsafe.Pointer(pSelect)).FpNext != 0 { - m = 0 - m = 0 - pS2 = (*TSelect)(unsafe.Pointer(pSelect)).FpNext + if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) >= int32(SQLITE_AFF_TEXT) && ((*TSelect)(unsafe.Pointer(pS2)).FpNext != 0 || pS2 != pSelect) { + pS2 = (*TSelect)(unsafe.Pointer(pS2)).FpNext for { if !(pS2 != 0) { break @@ -194294,7 +195240,7 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS zType = _columnTypeImpl(tls, bp, p, uintptr(0), uintptr(0), uintptr(0)) if zType == uintptr(0) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) != int32(_sqlite3AffinityType(tls, zType, uintptr(0))) { if int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_NUMERIC) || int32((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_FLEXNUM) { - zType = __ccgo_ts + 20559 + zType = __ccgo_ts + 20691 } else { zType = uintptr(0) j = int32(1) @@ -194314,13 +195260,13 @@ func _sqlite3SubqueryColumnTypes(tls *libc.TLS, pParse uintptr, pTab uintptr, pS } } if zType != 0 { - m1 = int64(_sqlite3Strlen30(tls, zType)) + k = int64(_sqlite3Strlen30(tls, zType)) n = int64(_sqlite3Strlen30(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) - (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+m1+int64(2))) + (*TColumn)(unsafe.Pointer(pCol)).FzCnName = _sqlite3DbReallocOrFree(tls, db, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, uint64(n+k+int64(2))) p4 = pCol + 14 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) & ^(libc.Int32FromInt32(COLFLAG_HASTYPE) | libc.Int32FromInt32(COLFLAG_HASCOLL))) if (*TColumn)(unsafe.Pointer(pCol)).FzCnName != 0 { - libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(m1+int64(1))) + libc.Xmemcpy(tls, (*TColumn)(unsafe.Pointer(pCol)).FzCnName+uintptr(n+int64(1)), zType, uint64(k+int64(1))) p5 = pCol + 14 *(*Tu16)(unsafe.Pointer(p5)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p5))) | libc.Int32FromInt32(COLFLAG_HASTYPE)) } @@ -194609,7 +195555,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest iDistinct = 0 /* To ensure unique results if UNION */ eDest = int32(SRT_Fifo) /* Registers used by LIMIT and OFFSET */ if (*TSelect)(unsafe.Pointer(p)).FpWin != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20563, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20695, 0) return } /* Obtain authorization to do a recursive query */ @@ -194702,7 +195648,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest break } if (*TSelect)(unsafe.Pointer(pFirstRec)).FselFlags&uint32(SF_Aggregate) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20612, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20744, 0) goto end_of_recursive_query } (*TSelect)(unsafe.Pointer(pFirstRec)).Fop = uint8(TK_ALL) @@ -194717,7 +195663,7 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest /* Store the results of the setup-query in Queue. */ pSetup = (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior (*TSelect)(unsafe.Pointer(pSetup)).FpNext = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20654, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20786, 0) rc = _sqlite3Select(tls, pParse, pSetup, bp) (*TSelect)(unsafe.Pointer(pSetup)).FpNext = p if rc != 0 { @@ -194745,12 +195691,13 @@ func _generateWithRecursiveQuery(tls *libc.TLS, pParse uintptr, p uintptr, pDest ** the value for the recursive-table. Store the results in the Queue. */ (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = uintptr(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20660, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20792, 0) _sqlite3Select(tls, pParse, p, bp) (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = pSetup /* Keep running the loop until the Queue is empty */ _sqlite3VdbeGoto(tls, v, addrTop) _sqlite3VdbeResolveLabel(tls, v, addrBreak) + goto end_of_recursive_query end_of_recursive_query: ; _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSelect)(unsafe.Pointer(p)).FpOrderBy) @@ -194797,11 +195744,11 @@ func _multiSelectValues(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) nRow += bShowAll } if nRow == int32(1) { - v1 = __ccgo_ts + 1658 + v1 = __ccgo_ts + 1672 } else { - v1 = __ccgo_ts + 20675 + v1 = __ccgo_ts + 20807 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20677, libc.VaList(bp+8, nRow, v1)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20809, libc.VaList(bp+8, nRow, v1)) for p != 0 { _selectInnerLoop(tls, pParse, p, -int32(1), uintptr(0), uintptr(0), pDest, int32(1), int32(1)) if !(bShowAll != 0) { @@ -194909,8 +195856,8 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in return _multiSelectOrderBy(tls, pParse, p, pDest) } else { if (*TSelect)(unsafe.Pointer(pPrior)).FpPrior == uintptr(0) { - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20700, 0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20715, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20832, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20847, 0) } /* Generate code for the left and right SELECT statements. */ @@ -194935,7 +195882,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in _sqlite3VdbeAddOp3(tls, v, int32(OP_OffsetLimit), (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TSelect)(unsafe.Pointer(p)).FiOffset+int32(1), (*TSelect)(unsafe.Pointer(p)).FiOffset) } } - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20440, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20527, 0) rc = _sqlite3Select(tls, pParse, p, bp) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -194987,7 +195934,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 48))).FeDest = op - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20734, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20866, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+48) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -195045,7 +195992,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in pLimit1 = (*TSelect)(unsafe.Pointer(p)).FpLimit (*TSelect)(unsafe.Pointer(p)).FpLimit = uintptr(0) (*(*TSelectDest)(unsafe.Pointer(bp + 88))).FiSDParm = tab2 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20734, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20866, libc.VaList(bp+136, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+88) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -195147,6 +196094,7 @@ func _multiSelect(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r in } _sqlite3KeyInfoUnref(tls, pKeyInfo) } + goto multi_select_end multi_select_end: ; (*TSelectDest)(unsafe.Pointer(pDest)).FiSdst = (*(*TSelectDest)(unsafe.Pointer(bp))).FiSdst @@ -195167,9 +196115,9 @@ func _sqlite3SelectWrongNumTermsError(tls *libc.TLS, pParse uintptr, p uintptr) bp := tls.Alloc(16) defer tls.Free(16) if (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Values) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20755, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20887, 0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20801, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20933, libc.VaList(bp+8, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) } } @@ -195538,8 +196486,8 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr (*TSelect)(unsafe.Pointer(pSplit)).FpPrior = uintptr(0) (*TSelect)(unsafe.Pointer(pPrior)).FpNext = uintptr(0) (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy = _sqlite3ExprListDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pOrderBy, 0) - _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+8676) - _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+8676) + _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+8801) + _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+8801) /* Compute the limit registers */ _computeLimitRegisters(tls, pParse, p, labelEnd) if (*TSelect)(unsafe.Pointer(p)).FiLimit != 0 && op == int32(TK_ALL) { @@ -195583,14 +196531,14 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr regOutB = v21 _sqlite3SelectDestInit(tls, bp, int32(SRT_Coroutine), regAddrA) _sqlite3SelectDestInit(tls, bp+40, int32(SRT_Coroutine), regAddrB) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20883, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+21015, libc.VaList(bp+88, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(p)).Fop)))) /* Generate a coroutine to evaluate the SELECT statement to the ** left of the compound operator - the "A" select. */ addrSelectA = _sqlite3VdbeCurrentAddr(tls, v) + int32(1) addr1 = _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), regAddrA, 0, addrSelectA) (*TSelect)(unsafe.Pointer(pPrior)).FiLimit = regLimitA - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20894, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+21026, 0) _sqlite3Select(tls, pParse, pPrior, bp) _sqlite3VdbeEndCoroutine(tls, v, regAddrA) _sqlite3VdbeJumpHere(tls, v, addr1) @@ -195603,7 +196551,7 @@ func _multiSelectOrderBy(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr savedOffset = (*TSelect)(unsafe.Pointer(p)).FiOffset (*TSelect)(unsafe.Pointer(p)).FiLimit = regLimitB (*TSelect)(unsafe.Pointer(p)).FiOffset = 0 - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20899, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+21031, 0) _sqlite3Select(tls, pParse, p, bp+40) (*TSelect)(unsafe.Pointer(p)).FiLimit = savedLimit (*TSelect)(unsafe.Pointer(p)).FiOffset = savedOffset @@ -195818,7 +196766,7 @@ func _substExpr(tls *libc.TLS, pSubst uintptr, pExpr uintptr) (r uintptr) { if pColl != 0 { v1 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName } else { - v1 = __ccgo_ts + 6395 + v1 = __ccgo_ts + 6459 } pExpr = _sqlite3ExprAddCollateString(tls, (*TSubstContext)(unsafe.Pointer(pSubst)).FpParse, pExpr, v1) } @@ -196854,10 +197802,10 @@ func _findConstInWhere(tls *libc.TLS, pConst uintptr, pExpr uintptr) { } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight pLeft = (*TExpr)(unsafe.Pointer(pExpr)).FpLeft - if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pLeft) != 0 { + if int32((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pLeft) != 0 { _constInsert(tls, pConst, pRight, pLeft, pExpr) } - if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, pRight) != 0 { + if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) == int32(TK_COLUMN) && _sqlite3ExprIsConstant(tls, (*TWhereConst)(unsafe.Pointer(pConst)).FpParse, pRight) != 0 { _constInsert(tls, pConst, pLeft, pRight, pExpr) } } @@ -197090,6 +198038,18 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** The hope is that the terms added to the inner query will make it more // ** efficient. // ** +// ** NAME AMBIGUITY +// ** +// ** This optimization is called the "WHERE-clause push-down optimization". +// ** +// ** Do not confuse this optimization with another unrelated optimization +// ** with a similar name: The "MySQL push-down optimization" causes WHERE +// ** clause terms that can be evaluated using only the index and without +// ** reference to the table are run first, so that if they are false, +// ** unnecessary table seeks are avoided. +// ** +// ** RULES +// ** // ** Do not attempt this optimization if: // ** // ** (1) (** This restriction was removed on 2017-09-29. We used to @@ -197155,10 +198115,10 @@ func _pushDownWindowCheck(tls *libc.TLS, pParse uintptr, pSubq uintptr, pExpr ui // ** (9c) There is a RIGHT JOIN (or FULL JOIN) in between the ON/USING // ** clause and the subquery. // ** -// ** Without this restriction, the push-down optimization might move -// ** the ON/USING filter expression from the left side of a RIGHT JOIN -// ** over to the right side, which leads to incorrect answers. See -// ** also restriction (6) in sqlite3ExprIsSingleTableConstraint(). +// ** Without this restriction, the WHERE-clause push-down optimization +// ** might move the ON/USING filter expression from the left side of a +// ** RIGHT JOIN over to the right side, which leads to incorrect answers. +// ** See also restriction (6) in sqlite3ExprIsSingleTableConstraint(). // ** // ** (10) The inner query is not the right-hand table of a RIGHT JOIN. // ** @@ -197251,7 +198211,7 @@ func _pushDownWhereTerms(tls *libc.TLS, pParse uintptr, pSubq uintptr, pWhere ui nChng += _pushDownWhereTerms(tls, pParse, pSubq, (*TExpr)(unsafe.Pointer(pWhere)).FpRight, pSrcList, iSrc) pWhere = (*TExpr)(unsafe.Pointer(pWhere)).FpLeft } - if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc) != 0 { + if _sqlite3ExprIsSingleTableConstraint(tls, pWhere, pSrcList, iSrc, int32(1)) != 0 { nChng++ *(*Tu32)(unsafe.Pointer(pSubq + 4)) |= uint32(SF_PushDown) for pSubq != 0 { @@ -197421,13 +198381,13 @@ func _minMaxQuery(tls *libc.TLS, db uintptr, pFunc uintptr, ppMinMax uintptr) (r return uint8(uint8(eRet)) } zFunc = *(*uintptr)(unsafe.Pointer(pFunc + 8)) - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+16864) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+16957) == 0 { eRet = int32(WHERE_ORDERBY_MIN) if _sqlite3ExprCanBeNull(tls, (*(*TExprList_item)(unsafe.Pointer(pEList + 8))).FpExpr) != 0 { sortFlags = uint8(KEYINFO_ORDER_BIGNULL) } } else { - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+16868) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+16961) == 0 { eRet = int32(WHERE_ORDERBY_MAX) sortFlags = uint8(KEYINFO_ORDER_DESC) } else { @@ -197515,7 +198475,7 @@ func _sqlite3IndexedByLookup(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r in pIdx = (*TIndex)(unsafe.Pointer(pIdx)).FpNext } if !(pIdx != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20905, libc.VaList(bp+8, zIndexedBy, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21037, libc.VaList(bp+8, zIndexedBy, 0)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) return int32(SQLITE_ERROR) } @@ -197639,7 +198599,7 @@ func _cannotBeFunction(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x4>>2)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20923, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21055, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) return int32(1) } return 0 @@ -197814,7 +198774,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } *(*Tu32)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect + 4)) |= uint32(SF_CopyCte) if int32(uint32(*(*uint16)(unsafe.Pointer(pFrom + 60 + 4))&0x2>>1)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20946, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21078, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 88)))) return int32(2) } libc.SetBitFieldPtr16Uint32(pFrom+60+4, libc.Uint32FromInt32(1), 8, 0x100) @@ -197838,7 +198798,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ libc.SetBitFieldPtr16Uint32(pItem+60+4, libc.Uint32FromInt32(1), 6, 0x40) if (*TSelect)(unsafe.Pointer(pRecTerm)).FselFlags&uint32(SF_Recursive) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20966, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21098, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) return int32(2) } *(*Tu32)(unsafe.Pointer(pRecTerm + 4)) |= uint32(SF_Recursive) @@ -197860,7 +198820,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } pRecTerm = (*TSelect)(unsafe.Pointer(pRecTerm)).FpPrior } - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 21009 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 21141 pSavedWith = (*TParse)(unsafe.Pointer(pParse)).FpWith (*TParse)(unsafe.Pointer(pParse)).FpWith = *(*uintptr)(unsafe.Pointer(bp)) if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { @@ -197891,7 +198851,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom pEList = (*TSelect)(unsafe.Pointer(pLeft)).FpEList if (*TCte)(unsafe.Pointer(pCte)).FpCols != 0 { if pEList != 0 && (*TExprList)(unsafe.Pointer(pEList)).FnExpr != (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21032, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21164, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName, (*TExprList)(unsafe.Pointer(pEList)).FnExpr, (*TExprList)(unsafe.Pointer((*TCte)(unsafe.Pointer(pCte)).FpCols)).FnExpr)) (*TParse)(unsafe.Pointer(pParse)).FpWith = pSavedWith return int32(2) } @@ -197900,9 +198860,9 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom _sqlite3ColumnsFromExprList(tls, pParse, pEList, pTab+54, pTab+8) if bMayRecursive != 0 { if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_Recursive) != 0 { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 21070 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 21202 } else { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 21104 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 21236 } _sqlite3WalkSelect(tls, pWalker, pSel) } @@ -197961,7 +198921,7 @@ func _sqlite3ExpandSubquery(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int if (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias != 0 { (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3DbStrDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*TSrcItem)(unsafe.Pointer(pFrom)).FzAlias) } else { - (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+21142, libc.VaList(bp+8, pFrom)) + (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+21274, libc.VaList(bp+8, pFrom)) } for (*TSelect)(unsafe.Pointer(pSel)).FpPrior != 0 { pSel = (*TSelect)(unsafe.Pointer(pSel)).FpPrior @@ -198117,7 +199077,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { return int32(WRC_Abort) } if (*TTable)(unsafe.Pointer(pTab)).FnTabRef >= uint32(0xffff) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21146, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21278, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) (*TSrcItem)(unsafe.Pointer(pFrom)).FpTab = uintptr(0) return int32(WRC_Abort) } @@ -198132,7 +199092,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { if (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_EnableView) == uint64(0) && (*TTable)(unsafe.Pointer(pTab)).FpSchema != (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21185, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21317, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } (*TSrcItem)(unsafe.Pointer(pFrom)).FpSelect = _sqlite3SelectDup(tls, db, (*(*struct { FpSelect uintptr @@ -198147,7 +199107,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).Fp)).FeVtabRisk) > libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_TrustedSchema) != uint64(0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16423, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16516, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } } nCol = (*TTable)(unsafe.Pointer(pTab)).FnCol @@ -198269,7 +199229,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if iDb >= 0 { v10 = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName } else { - v10 = __ccgo_ts + 7899 + v10 = __ccgo_ts + 7963 } zSchemaName = v10 } @@ -198286,7 +199246,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { pNew = _sqlite3ExprListAppend(tls, pParse, pNew, pRight) if pNew != 0 { pX = pNew + 8 + uintptr((*TExprList)(unsafe.Pointer(pNew)).FnExpr-int32(1))*32 - (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+21216, libc.VaList(bp+8, zUName)) + (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+21348, libc.VaList(bp+8, zUName)) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(ENAME_TAB), 0, 0x3) libc.SetBitFieldPtr16Uint32(pX+16+4, libc.Uint32FromInt32(1), 7, 0x80) } @@ -198365,7 +199325,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { if pNestedFrom != 0 && libc.Bool(libc.Bool(!(libc.Int32FromInt32(ViewCanHaveRowid) != 0)) || j < (*TExprList)(unsafe.Pointer(pNestedFrom)).FnExpr) { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, (*(*TExprList_item)(unsafe.Pointer(pNestedFrom + 8 + uintptr(j)*32))).FzEName) } else { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+21221, libc.VaList(bp+8, zSchemaName, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+21353, libc.VaList(bp+8, zSchemaName, zTabName, zName)) } if j == int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) { v13 = int32(ENAME_ROWID) @@ -198378,7 +199338,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } } else { if longNames != 0 { - (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+13690, libc.VaList(bp+8, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+13815, libc.VaList(bp+8, zTabName, zName)) libc.SetBitFieldPtr16Uint32(pX1+16+4, libc.Uint32FromInt32(ENAME_NAME), 0, 0x3) } else { (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3DbStrDup(tls, db, zName) @@ -198398,9 +199358,9 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if !(tableSeen != 0) { if zTName != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21230, libc.VaList(bp+8, zTName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21362, libc.VaList(bp+8, zTName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21248, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21380, 0) } } } @@ -198414,7 +199374,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if (*TSelect)(unsafe.Pointer(p)).FpEList != 0 { if (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpEList)).FnExpr > *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21268, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21400, 0) return int32(WRC_Abort) } if elistFlags&uint32(libc.Int32FromInt32(EP_HasFunc)|libc.Int32FromInt32(EP_Subquery)) != uint32(0) { @@ -198755,12 +199715,12 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct >= 0 { pE = (*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFExpr if *(*uintptr)(unsafe.Pointer(pE + 32)) == uintptr(0) || (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pE + 32)))).FnExpr != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21299, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21431, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct = -int32(1) } else { pKeyInfo = _sqlite3KeyInfoFromExprList(tls, pParse, *(*uintptr)(unsafe.Pointer(pE + 32)), 0, 0) (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistAddr = _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiDistinct, 0, 0, pKeyInfo, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+21350, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+21482, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } } if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab >= 0 { @@ -198781,7 +199741,7 @@ func _resetAccumulator(tls *libc.TLS, pParse uintptr, pAggInfo uintptr) { (*TKeyInfo)(unsafe.Pointer(pKeyInfo1)).FnKeyField++ } _sqlite3VdbeAddOp4(tls, v, int32(OP_OpenEphemeral), (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab, (*TExprList)(unsafe.Pointer(pOBList)).FnExpr+nExtra, 0, pKeyInfo1, -int32(8)) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+21383, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+21515, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } goto _1 _1: @@ -199086,16 +200046,16 @@ func _explainSimpleCount(tls *libc.TLS, pParse uintptr, pTab uintptr, pIdx uintp if int32((*TParse)(unsafe.Pointer(pParse)).Fexplain) == int32(2) { bCover = libc.BoolInt32(pIdx != uintptr(0) && ((*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_WithoutRowid) == uint32(0) || !(int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == libc.Int32FromInt32(SQLITE_IDXTYPE_PRIMARYKEY)))) if bCover != 0 { - v1 = __ccgo_ts + 21416 + v1 = __ccgo_ts + 21548 } else { - v1 = __ccgo_ts + 1658 + v1 = __ccgo_ts + 1672 } if bCover != 0 { v2 = (*TIndex)(unsafe.Pointer(pIdx)).FzName } else { - v2 = __ccgo_ts + 1658 + v2 = __ccgo_ts + 1672 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+21439, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+21571, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) } } @@ -199127,7 +200087,7 @@ func _havingToWhereExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 ** statements AggInfo structure. */ if _sqlite3ExprIsConstantOrGroupBy(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, pExpr, (*TSelect)(unsafe.Pointer(pS)).FpGroupBy) != 0 && libc.BoolInt32((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_IsFalse)) == uint32(EP_IsFalse)) == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb - pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+9439) + pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+9564) if pNew != 0 { pWhere = (*TSelect)(unsafe.Pointer(pS)).FpWhere t = *(*TExpr)(unsafe.Pointer(pNew)) @@ -199283,7 +200243,7 @@ func _countOfViewOptimization(tls *libc.TLS, pParse uintptr, p uintptr) (r int32 if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_AGG_FUNCTION) { return 0 } /* Result is an aggregate */ - if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+17158) != 0 { + if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+17251) != 0 { return 0 } /* Is count() */ if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != uintptr(0) { @@ -199546,7 +200506,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { v1 = (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p0)).FpTab)).FzName } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21451, libc.VaList(bp+176, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21583, libc.VaList(bp+176, v1)) goto select_end } /* Clear the SF_UFSrcCheck flag. The check has already been performed, @@ -199647,7 +200607,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Catch mismatch in the declared columns of a view and the number of ** columns in the SELECT on the RHS */ if int32((*TTable)(unsafe.Pointer(pTab)).FnCol) != (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21505, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21637, libc.VaList(bp+176, int32((*TTable)(unsafe.Pointer(pTab)).FnCol), (*TTable)(unsafe.Pointer(pTab)).FzName, (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer(pSub)).FpEList)).FnExpr)) goto select_end } /* Do not attempt the usual optimizations (flattening and ORDER BY @@ -199784,12 +200744,12 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r ** string for the fake column name seems safer. */ if (*TSrcItem)(unsafe.Pointer(pItem1)).FcolUsed == uint64(0) && (*TSrcItem)(unsafe.Pointer(pItem1)).FzName != uintptr(0) { - _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1658, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) + _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1672, (*TSrcItem)(unsafe.Pointer(pItem1)).FzDatabase) } /* Generate code for all sub-queries in the FROM clause */ pSub1 = (*TSrcItem)(unsafe.Pointer(pItem1)).FpSelect - if pSub1 == uintptr(0) { + if pSub1 == uintptr(0) || (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub != 0 { goto _10 } /* The code for a subquery should only be generated once. */ @@ -199828,7 +200788,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn, 0, addrTop) (*TSrcItem)(unsafe.Pointer(pItem1)).FaddrFillSub = addrTop _sqlite3SelectDestInit(tls, bp+72, int32(SRT_Coroutine), (*TSrcItem)(unsafe.Pointer(pItem1)).FregReturn) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+21545, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+21677, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow libc.SetBitFieldPtr16Uint32(pItem1+60+4, libc.Uint32FromInt32(1), 5, 0x20) @@ -199876,7 +200836,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { } _sqlite3SelectDestInit(tls, bp+72, int32(SRT_EphemTab), (*TSrcItem)(unsafe.Pointer(pItem1)).FiCursor) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+21560, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+21692, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow if onceAddr != 0 { @@ -200286,11 +201246,11 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r groupBySort = 0 } else { if (*(*TDistinctCtx)(unsafe.Pointer(bp))).FisTnct != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Distinct) == uint32(0) { - v44 = __ccgo_ts + 21576 + v44 = __ccgo_ts + 21708 } else { - v44 = __ccgo_ts + 21585 + v44 = __ccgo_ts + 21717 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20473, libc.VaList(bp+176, v44)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20560, libc.VaList(bp+176, v44)) groupBySort = int32(1) nGroupBy = (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr nCol = nGroupBy @@ -200609,7 +201569,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeResolveLabel(tls, v, addrEnd) } /* endif aggregate query */ if int32((*(*TDistinctCtx)(unsafe.Pointer(bp))).FeTnctType) == int32(WHERE_DISTINCT_UNORDERED) { - _explainTempTable(tls, pParse, __ccgo_ts+21576) + _explainTempTable(tls, pParse, __ccgo_ts+21708) } /* If there is an ORDER BY clause, then we need to sort the results ** and send them to the callback one by one. @@ -200626,6 +201586,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r /* Control jumps to here if an error is encountered above, or upon ** successful coding of the SELECT. */ + goto select_end select_end: ; _sqlite3ExprListDelete(tls, db, *(*uintptr)(unsafe.Pointer(bp + 64))) @@ -200714,7 +201675,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr if !(i < nCol) { break } - z = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) + z = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) if z == uintptr(0) { goto malloc_failed } @@ -200730,7 +201691,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr } else { if int32((*TTabResult)(unsafe.Pointer(p)).FnColumn) != nCol { Xsqlite3_free(tls, (*TTabResult)(unsafe.Pointer(p)).FzErrMsg) - (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+21594, 0) + (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+21726, 0) (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) return int32(1) } @@ -200765,6 +201726,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr (*TTabResult)(unsafe.Pointer(p)).FnRow++ } return 0 + goto malloc_failed malloc_failed: ; (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) @@ -200819,7 +201781,7 @@ func Xsqlite3_get_table(tls *libc.TLS, db uintptr, zSql uintptr, pazResult uintp if (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg != 0 { if pzErrMsg != 0 { Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(pzErrMsg))) - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) } Xsqlite3_free(tls, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg) } @@ -200981,7 +201943,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if isTemp != 0 { /* If TEMP was specified, then the trigger name may not be qualified. */ if (*TToken)(unsafe.Pointer(pName2)).Fn > uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21659, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21791, 0) goto trigger_cleanup } iDb = int32(1) @@ -201021,7 +201983,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto trigger_cleanup } - _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+21705, *(*uintptr)(unsafe.Pointer(bp))) + _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+21837, *(*uintptr)(unsafe.Pointer(bp))) if _sqlite3FixSrcList(tls, bp+8, pTableName) != 0 { goto trigger_cleanup } @@ -201031,11 +201993,11 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_orphan_error } if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21713, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21845, 0) goto trigger_orphan_error } if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Shadow) != uint32(0) && _sqlite3ReadOnlyShadowTables(tls, db) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21754, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21886, 0) goto trigger_orphan_error } /* Check that the trigger name is not reserved and that no trigger of the @@ -201044,13 +202006,13 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 if zName == uintptr(0) { goto trigger_cleanup } - if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+21705, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { + if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+21837, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { goto trigger_cleanup } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { if _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FpSchema+56, zName) != 0 { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21794, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21926, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) } @@ -201058,8 +202020,8 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 } } /* Do not create a trigger on a system table */ - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+7834, int32(7)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21820, 0) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+7898, int32(7)) == 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21952, 0) goto trigger_cleanup } /* INSTEAD of triggers are only for views and views only support INSTEAD @@ -201067,15 +202029,15 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 */ if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && tr_tm != int32(TK_INSTEAD) { if tr_tm == int32(TK_BEFORE) { - v1 = __ccgo_ts + 21858 + v1 = __ccgo_ts + 21990 } else { - v1 = __ccgo_ts + 21865 + v1 = __ccgo_ts + 21997 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21871, libc.VaList(bp+112, v1, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22003, libc.VaList(bp+112, v1, pTableName+8)) goto trigger_orphan_error } if !(int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) && tr_tm == int32(TK_INSTEAD) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21908, libc.VaList(bp+112, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22040, libc.VaList(bp+112, pTableName+8)) goto trigger_orphan_error } if !(int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -201095,9 +202057,9 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_cleanup } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iTabDb == int32(1) { - v3 = __ccgo_ts + 7842 + v3 = __ccgo_ts + 7906 } else { - v3 = __ccgo_ts + 7375 + v3 = __ccgo_ts + 7439 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto trigger_cleanup @@ -201138,6 +202100,7 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 (*TTrigger)(unsafe.Pointer(pTrigger)).FpColumns = pColumns pColumns = uintptr(0) (*TParse)(unsafe.Pointer(pParse)).FpNewTrigger = pTrigger + goto trigger_cleanup trigger_cleanup: ; _sqlite3DbFree(tls, db, zName) @@ -201149,6 +202112,7 @@ trigger_cleanup: } else { } return + goto trigger_orphan_error trigger_orphan_error: ; if int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) == int32(1) { @@ -201195,7 +202159,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl pStepList = (*TTriggerStep)(unsafe.Pointer(pStepList)).FpNext } _sqlite3TokenInit(tls, bp+96, (*TTrigger)(unsafe.Pointer(pTrig)).FzName) - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+21705, bp+96) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+21837, bp+96) if _sqlite3FixTriggerStep(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).Fstep_list) != 0 || _sqlite3FixExpr(tls, bp, (*TTrigger)(unsafe.Pointer(pTrig)).FpWhen) != 0 { goto triggerfinish_cleanup } @@ -201217,7 +202181,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl break } if (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget != uintptr(0) && _sqlite3ShadowTableName(tls, db, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21954, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22086, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) goto triggerfinish_cleanup } goto _1 @@ -201233,10 +202197,10 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } _sqlite3BeginWriteOperation(tls, pParse, 0, iDb) z = _sqlite3DbStrNDup(tls, db, (*TToken)(unsafe.Pointer(pAll)).Fz, uint64((*TToken)(unsafe.Pointer(pAll)).Fn)) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+22002, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+22134, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zName, (*TTrigger)(unsafe.Pointer(pTrig)).Ftable, z)) _sqlite3DbFree(tls, db, z) _sqlite3ChangeCookie(tls, pParse, iDb) - _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+22077, libc.VaList(bp+120, zName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+22209, libc.VaList(bp+120, zName)), uint16(0)) } } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { @@ -201253,6 +202217,7 @@ func _sqlite3FinishTrigger(tls *libc.TLS, pParse uintptr, pStepList uintptr, pAl } } } + goto triggerfinish_cleanup triggerfinish_cleanup: ; _sqlite3DeleteTrigger(tls, db, pTrig) @@ -201503,7 +202468,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int } if !(pTrigger != 0) { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22106, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22238, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, zDb) } @@ -201511,6 +202476,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int goto drop_trigger_cleanup } _sqlite3DropTriggerPtr(tls, pParse, pTrigger) + goto drop_trigger_cleanup drop_trigger_cleanup: ; _sqlite3SrcListDelete(tls, db, pName) @@ -201544,9 +202510,9 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { code = int32(SQLITE_DROP_TRIGGER) zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 7842 + v1 = __ccgo_ts + 7906 } else { - v1 = __ccgo_ts + 7375 + v1 = __ccgo_ts + 7439 } zTab = v1 if iDb == int32(1) { @@ -201561,7 +202527,7 @@ func _sqlite3DropTriggerPtr(tls *libc.TLS, pParse uintptr, pTrigger uintptr) { v2 = _sqlite3GetVdbe(tls, pParse) v = v2 if v2 != uintptr(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+22126, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+22258, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropTrigger), iDb, 0, 0, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName, 0) } @@ -201694,11 +202660,11 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, if int32((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { if op != int32(TK_INSERT) { if op == int32(TK_DELETE) { - v1 = __ccgo_ts + 22188 + v1 = __ccgo_ts + 22320 } else { - v1 = __ccgo_ts + 22195 + v1 = __ccgo_ts + 22327 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22202, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22334, libc.VaList(bp+8, v1)) } (*TTrigger)(unsafe.Pointer(p)).Ftr_tm = uint8(TRIGGER_BEFORE) } else { @@ -201715,6 +202681,7 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, p = (*TTrigger)(unsafe.Pointer(p)).FpNext } } + goto exit_triggers_exist exit_triggers_exist: ; if pMask != 0 { @@ -201798,7 +202765,7 @@ func _isAsteriskTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr) (r int32) { if int32((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pTerm)).FpRight)).Fop) != int32(TK_ASTERISK) { return 0 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22250, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22382, 0) return int32(1) } @@ -201863,6 +202830,79 @@ func _sqlite3ExpandReturning(tls *libc.TLS, pParse uintptr, pList uintptr, pTab return pNew } +// C documentation +// +// /* If the Expr node is a subquery or an EXISTS operator or an IN operator that +// ** uses a subquery, and if the subquery is SF_Correlated, then mark the +// ** expression as EP_VarSelect. +// */ +func _sqlite3ReturningSubqueryVarSelect(tls *libc.TLS, NotUsed uintptr, pExpr uintptr) (r int32) { + _ = NotUsed + if (*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(EP_xIsSelect) != uint32(0) && (*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FselFlags&uint32(SF_Correlated) != uint32(0) { + *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_VarSelect)) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** If the SELECT references the table pWalker->u.pTab, then do two things: +// ** +// ** (1) Mark the SELECT as as SF_Correlated. +// ** (2) Set pWalker->eCode to non-zero so that the caller will know +// ** that (1) has happened. +// */ +func _sqlite3ReturningSubqueryCorrelated(tls *libc.TLS, pWalker uintptr, pSelect uintptr) (r int32) { + var i int32 + var pSrc uintptr + _, _ = i, pSrc + pSrc = (*TSelect)(unsafe.Pointer(pSelect)).FpSrc + i = 0 + for { + if !(i < (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc) { + break + } + if (*(*TSrcItem)(unsafe.Pointer(pSrc + 8 + uintptr(i)*104))).FpTab == *(*uintptr)(unsafe.Pointer(pWalker + 40)) { + *(*Tu32)(unsafe.Pointer(pSelect + 4)) |= uint32(SF_Correlated) + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + break + } + goto _1 + _1: + ; + i++ + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Scan the expression list that is the argument to RETURNING looking +// ** for subqueries that depend on the table which is being modified in the +// ** statement that is hosting the RETURNING clause (pTab). Mark all such +// ** subqueries as SF_Correlated. If the subqueries are part of an +// ** expression, mark the expression as EP_VarSelect. +// ** +// ** https://sqlite.org/forum/forumpost/2c83569ce8945d39 +// */ +func _sqlite3ProcessReturningSubqueries(tls *libc.TLS, pEList uintptr, pTab uintptr) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ExprWalkNoop) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3ReturningSubqueryCorrelated) + *(*uintptr)(unsafe.Pointer(bp + 40)) = pTab + _sqlite3WalkExprList(tls, bp, pEList) + if (*(*TWalker)(unsafe.Pointer(bp))).FeCode != 0 { + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_sqlite3ReturningSubqueryVarSelect) + (*(*TWalker)(unsafe.Pointer(bp))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) + _sqlite3WalkExprList(tls, bp, pEList) + } +} + // C documentation // // /* @@ -201897,6 +202937,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab (*(*TSelect)(unsafe.Pointer(bp))).FpSrc = bp + 128 (*(*TSrcList)(unsafe.Pointer(bp + 128))).FnSrc = int32(1) (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FpTab = pTab + (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FzName = (*TTable)(unsafe.Pointer(pTab)).FzName /* tag-20240424-1 */ (*(*TSrcItem)(unsafe.Pointer(bp + 128 + 8))).FiCursor = -int32(1) _sqlite3SelectPrep(tls, pParse, bp, uintptr(0)) if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 { @@ -201921,6 +202962,7 @@ func _codeReturningTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab if _sqlite3ResolveExprListNames(tls, bp+240, pNew) == SQLITE_OK && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) { nCol = (*TExprList)(unsafe.Pointer(pNew)).FnExpr reg = (*TParse)(unsafe.Pointer(pParse)).FnMem + int32(1) + _sqlite3ProcessReturningSubqueries(tls, pNew, pTab) *(*int32)(unsafe.Pointer(pParse + 56)) += nCol + int32(2) (*TReturning)(unsafe.Pointer(pReturning)).FiRetReg = reg i = 0 @@ -201989,7 +203031,7 @@ func _codeTriggerProgram(tls *libc.TLS, pParse uintptr, pStepList uintptr, orcon } (*TParse)(unsafe.Pointer(pParse)).FeOrconf = uint8(v2) if (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+7572, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+7636, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) } switch int32((*TTriggerStep)(unsafe.Pointer(pStep)).Fop) { case int32(TK_UPDATE): @@ -202091,7 +203133,7 @@ func _codeRowTrigger(tls *libc.TLS, pParse uintptr, pTrigger uintptr, pTab uintp v = _sqlite3GetVdbe(tls, bp+56) if v != 0 { if (*TTrigger)(unsafe.Pointer(pTrigger)).FzName != 0 { - _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+22292, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) + _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+22424, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) } /* If one was specified, code the WHEN clause. If it evaluates to false ** (or NULL) the sub-vdbe is immediately halted by jumping to the @@ -202780,7 +203822,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui chngPk = uint8(1) } else { if int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22306, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22438, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto update_cleanup } } @@ -202800,13 +203842,13 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui pRowidExpr = (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FpExpr iRowidExpr = i } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22342, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22474, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) (*TParse)(unsafe.Pointer(pParse)).FcheckSchema = uint8(1) goto update_cleanup } } if j < 0 { - v11 = __ccgo_ts + 9214 + v11 = __ccgo_ts + 9339 } else { v11 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName } @@ -203488,8 +204530,9 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui ** that information. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+22361) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+22493) } + goto update_cleanup update_cleanup: ; _sqlite3AuthContextPop(tls, bp) @@ -203921,9 +204964,9 @@ func _sqlite3UpsertAnalyzeTarget(tls *libc.TLS, pParse uintptr, pTabList uintptr if nClause == 0 && (*TUpsert)(unsafe.Pointer(pUpsert)).FpNextUpsert == uintptr(0) { (*(*[16]int8)(unsafe.Pointer(bp + 200)))[0] = 0 } else { - Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+22374, libc.VaList(bp+224, nClause+int32(1))) + Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+22506, libc.VaList(bp+224, nClause+int32(1))) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22378, libc.VaList(bp+224, bp+200)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22510, libc.VaList(bp+224, bp+200)) return int32(SQLITE_ERROR) } goto _1 @@ -204026,7 +205069,7 @@ func _sqlite3UpsertDoUpdate(tls *libc.TLS, pParse uintptr, pUpsert uintptr, pTab i++ } i = _sqlite3VdbeAddOp4Int(tls, v, int32(OP_Found), iDataCur, 0, iPk, nPk) - _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+13779, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+13904, -int32(1)) _sqlite3MayAbort(tls, pParse) _sqlite3VdbeJumpHere(tls, v, i) } @@ -204108,7 +205151,7 @@ func _execSql(tls *libc.TLS, db uintptr, pzErrMsg uintptr, zSql uintptr) (r int3 ** corrupt the sqlite_schema.sql field with other kinds of statements ** then run VACUUM to get those statements to execute at inappropriate ** times. */ - if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+22451, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+22455, uint64(3)) == 0) { + if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+22583, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+22587, uint64(3)) == 0) { rc = _execSql(tls, db, pzErrMsg, zSubSql) if rc != SQLITE_OK { break @@ -204208,6 +205251,7 @@ func _sqlite3Vacuum(tls *libc.TLS, pParse uintptr, _pNm uintptr, pInto uintptr) _sqlite3VdbeAddOp2(tls, v, int32(OP_Vacuum), iDb, iIntoReg) _sqlite3VdbeUsesBtree(tls, v, iDb) } + goto build_vacuum_end build_vacuum_end: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pInto) @@ -204235,24 +205279,24 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p pDb = uintptr(0) /* Name of output file */ pgflags = uint32(PAGER_SYNCHRONOUS_OFF) /* sync flags for output db */ if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+22459) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+22591) return int32(SQLITE_ERROR) /* IMP: R-12218-18073 */ } if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive > int32(1) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+22499) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+22631) return int32(SQLITE_ERROR) /* IMP: R-15610-35227 */ } saved_openFlags = (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags if pOut != 0 { if Xsqlite3_value_type(tls, pOut) != int32(SQLITE_TEXT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+22542) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+22674) return int32(SQLITE_ERROR) } zOut = Xsqlite3_value_text(tls, pOut) *(*uint32)(unsafe.Pointer(db + 76)) &= uint32(^libc.Int32FromInt32(SQLITE_OPEN_READONLY)) *(*uint32)(unsafe.Pointer(db + 76)) |= uint32(libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE)) } else { - zOut = __ccgo_ts + 1658 + zOut = __ccgo_ts + 1672 } /* Save the current value of the database flags so that it can be ** restored before returning. Then set the writable-schema flag, and @@ -204284,7 +205328,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** to write the journal header file. */ nDb = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+22560, libc.VaList(bp+24, zOut)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+22692, libc.VaList(bp+24, zOut)) (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags = saved_openFlags if rc != SQLITE_OK { goto end_of_vacuum @@ -204296,7 +205340,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p *(*Ti64)(unsafe.Pointer(bp)) = 0 if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != uintptr(0) && (_sqlite3OsFileSize(tls, id, bp) != SQLITE_OK || *(*Ti64)(unsafe.Pointer(bp)) > 0) { rc = int32(SQLITE_ERROR) - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+22583) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+22715) goto end_of_vacuum } *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_VacuumInto) @@ -204313,7 +205357,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** file. This is done before the sqlite3BtreeGetPageSize(pMain) call below, ** to ensure that we do not try to change the page-size on a WAL database. */ - rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+16193) + rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+16286) if rc != SQLITE_OK { goto end_of_vacuum } @@ -204344,11 +205388,11 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** in the temporary database. */ (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(uint8(nDb)) /* force new CREATE statements into vacuum_db */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+22610, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+22742, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+22718, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+22850, libc.VaList(bp+24, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } @@ -204357,7 +205401,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** an "INSERT INTO vacuum_db.xxx SELECT * FROM main.xxx;" to copy ** the contents to the temporary database. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+22772, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+22904, libc.VaList(bp+24, zDbMain)) *(*Tu32)(unsafe.Pointer(db + 44)) &= uint32(^libc.Int32FromInt32(DBFLAG_Vacuum)) if rc != SQLITE_OK { goto end_of_vacuum @@ -204367,7 +205411,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** associated storage, so all we have to do is copy their entries ** from the schema table. */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+22923, libc.VaList(bp+24, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+23055, libc.VaList(bp+24, zDbMain)) if rc != 0 { goto end_of_vacuum } @@ -204406,6 +205450,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p nRes = _sqlite3BtreeGetRequestedReserve(tls, pTemp) rc = _sqlite3BtreeSetPageSize(tls, pMain, _sqlite3BtreeGetPageSize(tls, pTemp), nRes, int32(1)) } + goto end_of_vacuum end_of_vacuum: ; /* Restore the original value of db->flags */ @@ -204893,7 +205938,7 @@ func _addModuleArgument(tls *libc.TLS, pParse uintptr, pTable uintptr, zArg uint FazArg uintptr Fp uintptr })(unsafe.Pointer(pTable + 64))).FnArg+int32(3) >= *(*int32)(unsafe.Pointer(db + 136 + 2*4)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14009, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14134, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) } azModuleArg = _sqlite3DbRealloc(tls, db, (*(*struct { FnArg int32 @@ -205016,7 +206061,7 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { if pEnd != 0 { (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fn = uint32(int32(int64((*TToken)(unsafe.Pointer(pEnd)).Fz)-int64((*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz))) + (*TToken)(unsafe.Pointer(pEnd)).Fn } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+23053, libc.VaList(bp+8, pParse+272)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+23185, libc.VaList(bp+8, pParse+272)) /* A slot for the record has already been allocated in the ** schema table. We just need to update that slot with all ** the information we've collected. @@ -205026,11 +206071,11 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { ** by sqlite3StartTable(). */ iDb = _sqlite3SchemaToIndex(tls, db, (*TTable)(unsafe.Pointer(pTab)).FpSchema) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+23077, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+23209, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt, (*TParse)(unsafe.Pointer(pParse)).FregRowid)) v = _sqlite3GetVdbe(tls, pParse) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) - zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+23176, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) + zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+23308, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, zWhere, uint16(0)) _sqlite3DbFree(tls, db, zStmt) v2 = pParse + 56 @@ -205117,7 +206162,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, break } if (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab == pTab { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+23195, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+23327, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(SQLITE_LOCKED) } goto _1 @@ -205159,9 +206204,9 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, } if SQLITE_OK != rc { if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+23237, libc.VaList(bp+48, zModuleName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+23369, libc.VaList(bp+48, zModuleName)) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+4645, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+4709, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) } _sqlite3DbFree(tls, db, pVTable) @@ -205174,8 +206219,8 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*TModule)(unsafe.Pointer(pMod)).FnRefModule++ (*TVTable)(unsafe.Pointer(pVTable)).FnRef = int32(1) if (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared == 0 { - zFormat = __ccgo_ts + 23267 - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + zFormat = __ccgo_ts + 23399 + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, zModuleName)) _sqlite3VtabUnlock(tls, pVTable) rc = int32(SQLITE_ERROR) } else { @@ -205200,7 +206245,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(iCol < int32((*TTable)(unsafe.Pointer(pTab)).FnCol)) { break } - zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1658) + zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1672) i = 0 nType = _sqlite3Strlen30(tls, zType) i = 0 @@ -205208,7 +206253,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(i < nType) { break } - if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+17900, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { + if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+17987, zType+uintptr(i), int32(6)) && (i == 0 || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || int32(*(*int8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { break } goto _3 @@ -205289,13 +206334,13 @@ func _sqlite3VtabCallConnect(tls *libc.TLS, pParse uintptr, pTab uintptr) (r int FazArg uintptr Fp uintptr })(unsafe.Pointer(pTab + 64))).FazArg)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23313, libc.VaList(bp+16, zModule)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23445, libc.VaList(bp+16, zModule)) rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxConnect, bp) if rc != SQLITE_OK { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+4645, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+4709, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) (*TParse)(unsafe.Pointer(pParse)).Frc = rc } _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) @@ -205376,7 +206421,7 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, ** error. Otherwise, do nothing. */ if pMod == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate == uintptr(0) || (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxDestroy == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+23313, libc.VaList(bp+8, zMod)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+23445, libc.VaList(bp+8, zMod)) rc = int32(SQLITE_ERROR) } else { rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer((*TModule)(unsafe.Pointer(pMod)).FpModule)).FxCreate, pzErr) @@ -205402,18 +206447,42 @@ func _sqlite3VtabCallCreate(tls *libc.TLS, db uintptr, iDb int32, zTab uintptr, func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r int32) { bp := tls.Alloc(448) defer tls.Free(448) - var initBusy, rc int32 - var pCtx, pIdx, pNew, pTab, v2 uintptr - var v1 Ti16 + var i, initBusy, rc int32 + var pCtx, pIdx, pNew, pTab, z, v3 uintptr + var v2 Ti16 var _ /* sParse at bp+0 */ TParse - _, _, _, _, _, _, _, _ = initBusy, pCtx, pIdx, pNew, pTab, rc, v1, v2 + var _ /* tokenType at bp+424 */ int32 + _, _, _, _, _, _, _, _, _, _ = i, initBusy, pCtx, pIdx, pNew, pTab, rc, z, v2, v3 rc = SQLITE_OK + /* Verify that the first two keywords in the CREATE TABLE statement + ** really are "CREATE" and "TABLE". If this is not the case, then + ** sqlite3_declare_vtab() is being misused. + */ + z = zCreateTable + i = 0 + for { + if !(_aKeyword1[i] != 0) { + break + } + *(*int32)(unsafe.Pointer(bp + 424)) = 0 + for cond := true; cond; cond = *(*int32)(unsafe.Pointer(bp + 424)) == int32(TK_SPACE) { + z += uintptr(_sqlite3GetToken(tls, z, bp+424)) + } + if *(*int32)(unsafe.Pointer(bp + 424)) != int32(_aKeyword1[i]) { + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+23464, 0) + return int32(SQLITE_ERROR) + } + goto _1 + _1: + ; + i++ + } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pCtx = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(pCtx != 0) || (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared != 0 { - _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(155155))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(156227))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(155157)) + return _sqlite3MisuseError(tls, int32(156229)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -205425,7 +206494,7 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i initBusy = int32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) (*(*TParse)(unsafe.Pointer(bp))).FnQueryLoop = int16(1) - if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) && (*(*TParse)(unsafe.Pointer(bp))).FpNewTable != uintptr(0) && !((*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0) && int32((*TTable)(unsafe.Pointer((*(*TParse)(unsafe.Pointer(bp))).FpNewTable)).FeTabType) == TABTYP_NORM { + if SQLITE_OK == _sqlite3RunParser(tls, bp, zCreateTable) { if !((*TTable)(unsafe.Pointer(pTab)).FaCol != 0) { pNew = (*(*TParse)(unsafe.Pointer(bp))).FpNewTable (*TTable)(unsafe.Pointer(pTab)).FaCol = (*TTable)(unsafe.Pointer(pNew)).FaCol @@ -205434,9 +206503,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i FpFKey uintptr FpDfltList uintptr })(unsafe.Pointer(pNew + 64))).FpDfltList) - v1 = (*TTable)(unsafe.Pointer(pNew)).FnCol - (*TTable)(unsafe.Pointer(pTab)).FnCol = v1 - (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v1 + v2 = (*TTable)(unsafe.Pointer(pNew)).FnCol + (*TTable)(unsafe.Pointer(pTab)).FnCol = v2 + (*TTable)(unsafe.Pointer(pTab)).FnNVCol = v2 *(*Tu32)(unsafe.Pointer(pTab + 48)) |= (*TTable)(unsafe.Pointer(pNew)).FtabFlags & uint32(libc.Int32FromInt32(TF_WithoutRowid)|libc.Int32FromInt32(TF_NoVisibleRowid)) (*TTable)(unsafe.Pointer(pNew)).FnCol = 0 (*TTable)(unsafe.Pointer(pNew)).FaCol = uintptr(0) @@ -205455,11 +206524,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i (*TVtabCtx)(unsafe.Pointer(pCtx)).FbDeclared = int32(1) } else { if (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg != 0 { - v2 = __ccgo_ts + 4645 + v3 = __ccgo_ts + 4709 } else { - v2 = uintptr(0) + v3 = uintptr(0) } - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v2, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), v3, libc.VaList(bp+440, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) rc = int32(SQLITE_ERROR) } @@ -205475,6 +206544,11 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i return rc } +var _aKeyword1 = [3]Tu8{ + 0: uint8(TK_CREATE), + 1: uint8(TK_TABLE), +} + // C documentation // // /* @@ -205926,7 +207000,7 @@ func _sqlite3VtabEponymousTableInit(tls *libc.TLS, pParse uintptr, pMod uintptr) _addModuleArgument(tls, pParse, pTab, _sqlite3DbStrDup(tls, db, (*TTable)(unsafe.Pointer(pTab)).FzName)) rc = _vtabCallConstructor(tls, db, pTab, pMod, (*Tsqlite3_module)(unsafe.Pointer(pModule)).FxConnect, bp) if rc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+4645, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+4709, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3VtabEponymousTableClear(tls, db, pMod) } @@ -205990,7 +207064,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) p = (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx if !(p != 0) { - rc = _sqlite3MisuseError(tls, int32(155651)) + rc = _sqlite3MisuseError(tls, int32(156723)) } else { ap = va switch op { @@ -206003,7 +207077,7 @@ func Xsqlite3_vtab_config(tls *libc.TLS, db uintptr, op int32, va uintptr) (r in case int32(SQLITE_VTAB_USES_ALL_SCHEMAS): (*TVTable)(unsafe.Pointer((*TVtabCtx)(unsafe.Pointer(p)).FpVTable)).FbAllSchemas = uint8(1) default: - rc = _sqlite3MisuseError(tls, int32(155673)) + rc = _sqlite3MisuseError(tls, int32(156745)) break } _ = ap @@ -206725,10 +207799,10 @@ type WhereInfo1 = TWhereInfo1 func _explainIndexColumnName(tls *libc.TLS, pIdx uintptr, i int32) (r uintptr) { i = int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) if i == -int32(2) { - return __ccgo_ts + 23332 + return __ccgo_ts + 23477 } if i == -int32(1) { - return __ccgo_ts + 18009 + return __ccgo_ts + 18096 } return (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(i)*16))).FzCnName } @@ -206747,10 +207821,10 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, var i int32 _ = i if bAnd != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+23339, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+23484, int32(5)) } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+23345, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+23490, int32(1)) } i = 0 for { @@ -206758,7 +207832,7 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+14399, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+14524, int32(1)) } Xsqlite3_str_appendall(tls, pStr, _explainIndexColumnName(tls, pIdx, iTerm+i)) goto _1 @@ -206767,11 +207841,11 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+6415, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+6479, int32(1)) } Xsqlite3_str_append(tls, pStr, zOp, int32(1)) if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+23345, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+23490, int32(1)) } i = 0 for { @@ -206779,16 +207853,16 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+14399, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+14524, int32(1)) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+6417, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+6481, int32(1)) goto _2 _2: ; i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+6415, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+6479, int32(1)) } } @@ -206821,7 +207895,7 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { if int32(int32(nEq)) == 0 && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) == uint32(0) { return } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+23347, int32(2)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+23492, int32(2)) i = 0 for { if !(i < int32(int32(nEq))) { @@ -206829,12 +207903,12 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } z = _explainIndexColumnName(tls, pIndex, i) if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+23339, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+23484, int32(5)) } if i >= int32(int32(nSkip)) { - v2 = __ccgo_ts + 23350 + v2 = __ccgo_ts + 23495 } else { - v2 = __ccgo_ts + 23355 + v2 = __ccgo_ts + 23500 } Xsqlite3_str_appendf(tls, pStr, v2, libc.VaList(bp+8, z)) goto _1 @@ -206844,13 +207918,13 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { } j = i if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_BTM_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+23363) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnBtm), j, i, __ccgo_ts+23508) i = int32(1) } if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_TOP_LIMIT) != 0 { - _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+23365) + _explainAppendTerm(tls, pStr, pIndex, int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnTop), j, i, __ccgo_ts+23510) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+6415, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+6479, int32(1)) } // C documentation @@ -206893,47 +207967,47 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) if isSearch != 0 { - v2 = __ccgo_ts + 23367 + v2 = __ccgo_ts + 23512 } else { - v2 = __ccgo_ts + 23374 + v2 = __ccgo_ts + 23519 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23379, libc.VaList(bp+144, v2, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23524, libc.VaList(bp+144, v2, pItem)) if flags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_VIRTUALTABLE)) == uint32(0) { zFmt = uintptr(0) pIdx = (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex if !((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpTab)).FtabFlags&libc.Uint32FromInt32(TF_WithoutRowid) == libc.Uint32FromInt32(0)) && int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_PRIMARYKEY) { if isSearch != 0 { - zFmt = __ccgo_ts + 12562 + zFmt = __ccgo_ts + 12687 } } else { if flags&uint32(WHERE_PARTIALIDX) != 0 { - zFmt = __ccgo_ts + 23385 + zFmt = __ccgo_ts + 23530 } else { if flags&uint32(WHERE_AUTO_INDEX) != 0 { - zFmt = __ccgo_ts + 23418 + zFmt = __ccgo_ts + 23563 } else { if flags&uint32(WHERE_IDX_ONLY) != 0 { - zFmt = __ccgo_ts + 23443 + zFmt = __ccgo_ts + 23588 } else { - zFmt = __ccgo_ts + 23461 + zFmt = __ccgo_ts + 23606 } } } } if zFmt != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+23470, int32(7)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+23615, int32(7)) Xsqlite3_str_appendf(tls, bp, zFmt, libc.VaList(bp+144, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) _explainIndexRange(tls, bp, pLoop) } } else { if flags&uint32(WHERE_IPK) != uint32(0) && flags&uint32(WHERE_CONSTRAINT) != uint32(0) { - zRowid = __ccgo_ts + 18009 - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23478, libc.VaList(bp+144, zRowid)) + zRowid = __ccgo_ts + 18096 + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23623, libc.VaList(bp+144, zRowid)) if flags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != 0 { cRangeOp = int8('=') } else { if flags&uint32(WHERE_BOTH_LIMIT) == uint32(WHERE_BOTH_LIMIT) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23509, libc.VaList(bp+144, zRowid)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23654, libc.VaList(bp+144, zRowid)) cRangeOp = int8('<') } else { if flags&uint32(WHERE_BTM_LIMIT) != 0 { @@ -206943,10 +208017,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23519, libc.VaList(bp+144, int32(int32(cRangeOp)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23664, libc.VaList(bp+144, int32(int32(cRangeOp)))) } else { if flags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23524, libc.VaList(bp+144, (*(*struct { + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23669, libc.VaList(bp+144, (*(*struct { FidxNum int32 F__ccgo4 uint8 FisOrdered Ti8 @@ -206965,7 +208039,7 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr } } if int32((*TSrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&int32(JT_LEFT) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23551, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23696, 0) } zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) @@ -206999,14 +208073,14 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp db = (*TParse)(unsafe.Pointer(pParse)).Fdb /* Initial space for EQP output string */ _sqlite3StrAccumInit(tls, bp, db, bp+32, int32(100), int32(SQLITE_MAX_LENGTH)) (*(*TStrAccum)(unsafe.Pointer(bp))).FprintfFlags = uint8(SQLITE_PRINTF_INTERNAL) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23562, libc.VaList(bp+144, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23707, libc.VaList(bp+144, pItem)) pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_IPK) != 0 { pTab = (*TSrcItem)(unsafe.Pointer(pItem)).FpTab if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23350, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23495, libc.VaList(bp+144, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr((*TTable)(unsafe.Pointer(pTab)).FiPKey)*16))).FzCnName)) } else { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23583, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23728, 0) } } else { i = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) @@ -207016,16 +208090,16 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp } z = _explainIndexColumnName(tls, (*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex, i) if i > int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) { - Xsqlite3_str_append(tls, bp, __ccgo_ts+23339, int32(5)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+23484, int32(5)) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23350, libc.VaList(bp+144, z)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+23495, libc.VaList(bp+144, z)) goto _1 _1: ; i++ } } - Xsqlite3_str_append(tls, bp, __ccgo_ts+6415, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+6479, int32(1)) zMsg = _sqlite3StrAccumFinish(tls, bp) ret = _sqlite3VdbeAddOp4(tls, v, int32(OP_Explain), _sqlite3VdbeCurrentAddr(tls, v), (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, 0, zMsg, -int32(6)) return ret @@ -207856,6 +208930,35 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 } } +// C documentation +// +// /* +// ** Loop pLoop is a WHERE_INDEXED level that uses at least one IN(...) +// ** operator. Return true if level pLoop is guaranteed to visit only one +// ** row for each key generated for the index. +// */ +func _whereLoopIsOneRow(tls *libc.TLS, pLoop uintptr) (r int32) { + var ii int32 + _ = ii + if (*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FonError != 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) == 0 && int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq) == int32((*TIndex)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FpIndex)).FnKeyCol) { + ii = 0 + for { + if !(ii < int32((*TWhereLoop)(unsafe.Pointer(pLoop)).Fu.Fbtree.FnEq)) { + break + } + if int32((*TWhereTerm)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pLoop)).FaLTerm + uintptr(ii)*8)))).FeOperator)&(libc.Int32FromInt32(WO_IS)|libc.Int32FromInt32(WO_ISNULL)) != 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) + } + return 0 +} + // C documentation // // /* @@ -208544,7 +209647,10 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** a LEFT JOIN: */ } /* Record the instruction used to terminate the loop. */ - if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 { + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_ONEROW) != 0 || (*(*struct { + FnIn int32 + FaInLoop uintptr + })(unsafe.Pointer(pLevel + 72))).FnIn != 0 && regBignull == 0 && _whereLoopIsOneRow(tls, pLoop) != 0 { (*TWhereLevel)(unsafe.Pointer(pLevel)).Fop = uint8(OP_Noop) } else { if bRev != 0 { @@ -208717,7 +209823,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** eliminating duplicates from other WHERE clauses, the action for each ** sub-WHERE clause is to to invoke the main loop body as a subroutine. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+23591, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+23736, 0) ii = 0 for { if !(ii < (*TWhereClause)(unsafe.Pointer(pOrWc)).FnTerm) { @@ -208740,7 +209846,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI pOrExpr = pAndExpr } /* Loop through table entries that match term pOrTerm. */ - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+23606, libc.VaList(bp+96, ii+int32(1))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+23751, libc.VaList(bp+96, ii+int32(1))) pSubWInfo = _sqlite3WhereBegin(tls, pParse, pOrTab, pOrExpr, uintptr(0), uintptr(0), uintptr(0), uint16(WHERE_OR_SUBCLAUSE), iCovCur) if pSubWInfo != 0 { addrExplain = _sqlite3WhereExplainOneScan(tls, pParse, pOrTab, pSubWInfo+856, uint16(0)) @@ -208903,6 +210009,12 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** iLoop==3: Code all remaining expressions. ** ** An effort is made to skip unnecessary iterations of the loop. + ** + ** This optimization of causing simple query restrictions to occur before + ** more complex one is call the "push-down" optimization in MySQL. Here + ** in SQLite, the name is "MySQL push-down", since there is also another + ** totally unrelated optimization called "WHERE-clause push-down". + ** Sometimes the qualifier is omitted, resulting in an ambiguity, so beware. */ if pIdx != 0 { v60 = int32(1) @@ -209099,6 +210211,7 @@ func _sqlite3WhereCodeOneLoopStart(tls *libc.TLS, pParse uintptr, v uintptr, pWI ** to the results of the OUTER JOIN. The following loop generates the ** appropriate WHERE clause constraint checks. tag-20220513a. */ + goto code_outer_join_constraints code_outer_join_constraints: ; pTerm = (*TWhereClause)(unsafe.Pointer(pWC)).Fa @@ -209201,9 +210314,9 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe defer tls.Free(128) var addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, nPk, r, v3 int32 var mAll TBitmask - var pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr + var pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, v, v4 uintptr var _ /* sFrom at bp+0 */ TSrcList - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addrCont, iCol, iCur, iIdxCur, iPk, jmp, k, mAll, nPk, pLoop, pParse, pPk, pRJ, pRight, pSubWInfo, pSubWhere, pTab, pTabItem, pTerm, pWC, r, v, v3, v4 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pRJ = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpRJ @@ -209212,13 +210325,17 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe pLoop = (*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop pTabItem = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 mAll = uint64(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+23615, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+23760, libc.VaList(bp+120, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpTab)).FzName)) k = 0 for { if !(k < iLevel) { break } + pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*104 mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + if int32(uint32(*(*uint16)(unsafe.Pointer(pRight + 60 + 4))&0x20>>5)) != 0 { + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult, (*TSrcItem)(unsafe.Pointer(pRight)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pRight)).FpSelect)).FpEList)).FnExpr-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiTabCur) iIdxCur = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiIdxCur if iIdxCur != 0 { @@ -209716,19 +210833,19 @@ var _aOp = [4]struct { FeOp2 uint8 }{ 0: { - FzOp: __ccgo_ts + 17858, + FzOp: __ccgo_ts + 17945, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_MATCH), }, 1: { - FzOp: __ccgo_ts + 17188, + FzOp: __ccgo_ts + 17281, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_GLOB), }, 2: { - FzOp: __ccgo_ts + 16667, + FzOp: __ccgo_ts + 16760, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_LIKE), }, 3: { - FzOp: __ccgo_ts + 23629, + FzOp: __ccgo_ts + 23774, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_REGEXP), }, } @@ -210362,7 +211479,7 @@ func _exprMightBeIndexed2(tls *libc.TLS, pFrom uintptr, aiCurCol uintptr, pExpr if int32(*(*Ti16)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaiColumn + uintptr(i)*2))) != -int32(2) { goto _4 } - if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_STRING) { + if _sqlite3ExprCompareSkip(tls, pExpr, (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr, iCur) == 0 && !(_sqlite3ExprIsConstant(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaColExpr + 8 + uintptr(i)*32))).FpExpr) != 0) { *(*int32)(unsafe.Pointer(aiCurCol)) = iCur *(*int32)(unsafe.Pointer(aiCurCol + 1*4)) = -int32(2) return int32(1) @@ -210515,7 +211632,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { extraRight = x - uint64(1) /* ON clause terms may not be used with an index ** on left table of a LEFT JOIN. Ticket #3015 */ if prereqAll>>libc.Int32FromInt32(1) >= x { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23636, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23781, 0) return } } else { @@ -210527,7 +211644,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { ** if there is a RIGHT or FULL JOIN in the query. This makes SQLite ** more like other systems, and also preserves legacy. */ if (*TSrcList)(unsafe.Pointer(pSrc)).FnSrc > 0 && int32((*(*TSrcItem)(unsafe.Pointer(pSrc + 8))).Ffg.Fjointype)&int32(JT_LTORJ) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23636, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23781, 0) return } *(*Tu32)(unsafe.Pointer(pExpr + 4)) &= uint32(^libc.Int32FromInt32(EP_InnerON)) @@ -210611,7 +211728,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { } else { if op == int32(TK_ISNULL) && !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_OuterON)) != libc.Uint32FromInt32(0)) && 0 == _sqlite3ExprCanBeNull(tls, pLeft) { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_TRUEFALSE) /* See tag-20230504-1 */ - *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 9200 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 9325 *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_IsFalse)) (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqAll = uint64(0) (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator = uint16(0) @@ -210707,7 +211824,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { *(*Tu8)(unsafe.Pointer(pC)) = uint8(int32(int32(c1)) + int32(1)) } if *(*int32)(unsafe.Pointer(bp + 12)) != 0 { - v13 = __ccgo_ts + 23677 + v13 = __ccgo_ts + 23822 } else { v13 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } @@ -210977,6 +212094,9 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FleftCursor != iCsr { return } + if (*(*TWhereTerm)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(ii)*56))).FprereqRight != uint64(0) { + return + } goto _1 _1: ; @@ -211006,10 +212126,12 @@ func _sqlite3WhereAddLimit(tls *libc.TLS, pWC uintptr, p uintptr) { } } /* All conditions are met. Add the terms to the where-clause object. */ - _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) - if (*TSelect)(unsafe.Pointer(p)).FiOffset > 0 { + if (*TSelect)(unsafe.Pointer(p)).FiOffset != 0 && (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiOffset, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpRight, iCsr, int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } + if (*TSelect)(unsafe.Pointer(p)).FiOffset == 0 || (*TSelect)(unsafe.Pointer(p)).FselFlags&uint32(SF_Compound) == uint32(0) { + _whereAddLimitExpr(tls, pWC, (*TSelect)(unsafe.Pointer(p)).FiLimit, (*TExpr)(unsafe.Pointer((*TSelect)(unsafe.Pointer(p)).FpLimit)).FpLeft, iCsr, int32(SQLITE_INDEX_CONSTRAINT_LIMIT)) + } } } @@ -211233,7 +212355,7 @@ func _sqlite3WhereTabFuncArgs(tls *libc.TLS, pParse uintptr, pItem uintptr, pWC k++ } if k >= int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23684, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23829, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) return } pColRef = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_COLUMN), uintptr(0), 0) @@ -211565,6 +212687,7 @@ func _whereOrInsert(tls *libc.TLS, pSet uintptr, prereq TBitmask, rRun TLogEst, return 0 } } + goto whereOrInsert_done whereOrInsert_done: ; (*TWhereOrCost)(unsafe.Pointer(p)).Fprereq = prereq @@ -211666,6 +212789,48 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { return uintptr(0) } +// C documentation +// +// /* +// ** Term pTerm is guaranteed to be a WO_IN term. It may be a component term +// ** of a vector IN expression of the form "(x, y, ...) IN (SELECT ...)". +// ** This function checks to see if the term is compatible with an index +// ** column with affinity idxaff (one of the SQLITE_AFF_XYZ values). If so, +// ** it returns a pointer to the name of the collation sequence (e.g. "BINARY" +// ** or "NOCASE") used by the comparison in pTerm. If it is not compatible +// ** with affinity idxaff, NULL is returned. +// */ +func _indexInAffinityOk(tls *libc.TLS, pParse uintptr, pTerm uintptr, idxaff Tu8) (r uintptr) { + bp := tls.Alloc(80) + defer tls.Free(80) + var iField int32 + var pRet, pX, v1 uintptr + var _ /* inexpr at bp+0 */ TExpr + _, _, _, _ = iField, pRet, pX, v1 + pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr + if _sqlite3ExprIsVector(tls, (*TExpr)(unsafe.Pointer(pX)).FpLeft) != 0 { + iField = (*(*struct { + FleftColumn int32 + FiField int32 + })(unsafe.Pointer(pTerm + 32))).FiField - int32(1) + (*(*TExpr)(unsafe.Pointer(bp))).Fflags = uint32(0) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_EQ) + (*(*TExpr)(unsafe.Pointer(bp))).FpLeft = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pX)).FpLeft + 32)) + 8 + uintptr(iField)*32))).FpExpr + (*(*TExpr)(unsafe.Pointer(bp))).FpRight = (*(*TExprList_item)(unsafe.Pointer((*TSelect)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pX + 32)))).FpEList + 8 + uintptr(iField)*32))).FpExpr + pX = bp + } + if _sqlite3IndexAffinityOk(tls, pX, int8(int8(idxaff))) != 0 { + pRet = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pRet != 0 { + v1 = (*TCollSeq)(unsafe.Pointer(pRet)).FzName + } else { + v1 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + return v1 + } + return uintptr(0) +} + // C documentation // // /* @@ -211676,10 +212841,10 @@ func _whereRightSubexprIsColumn(tls *libc.TLS, p uintptr) (r uintptr) { func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { var iColumn Ti16 var iCur, j, k int32 - var pColl, pParse, pTerm, pWC, pX, v2 uintptr - var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, v2, v3, v5 /* The term being tested */ - k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ + var pColl, pParse, pTerm, pWC, pX, zCollName, v2, v5 uintptr + var v3, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _ = iColumn, iCur, j, k, pColl, pParse, pTerm, pWC, pX, zCollName, v2, v3, v5, v6 /* The term being tested */ + k = (*TWhereScan)(unsafe.Pointer(pScan)).Fk /* Where to start scanning */ pWC = (*TWhereScan)(unsafe.Pointer(pScan)).FpWC for int32(1) != 0 { iColumn = *(*Ti16)(unsafe.Pointer(pScan + 88 + uintptr(int32((*TWhereScan)(unsafe.Pointer(pScan)).FiEquiv)-int32(1))*2)) @@ -211723,21 +212888,31 @@ func _whereScanNext(tls *libc.TLS, pScan uintptr) (r uintptr) { if (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName != 0 && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_ISNULL) == 0 { pParse = (*TWhereInfo)(unsafe.Pointer((*TWhereClause)(unsafe.Pointer(pWC)).FpWInfo)).FpParse pX = (*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr - if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { - goto _1 - } - pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) - if pColl == uintptr(0) { - pColl = (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FpDfltColl + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_IN) != 0 { + zCollName = _indexInAffinityOk(tls, pParse, pTerm, uint8((*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff)) + if !(zCollName != 0) { + goto _1 + } + } else { + if !(_sqlite3IndexAffinityOk(tls, pX, (*TWhereScan)(unsafe.Pointer(pScan)).Fidxaff) != 0) { + goto _1 + } + pColl = _sqlite3ExprCompareCollSeq(tls, pParse, pX) + if pColl != 0 { + v5 = (*TCollSeq)(unsafe.Pointer(pColl)).FzName + } else { + v5 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) + } + zCollName = v5 } - if _sqlite3StrICmp(tls, (*TCollSeq)(unsafe.Pointer(pColl)).FzName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { + if _sqlite3StrICmp(tls, zCollName, (*TWhereScan)(unsafe.Pointer(pScan)).FzCollName) != 0 { goto _1 } } - if v5 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v5 { + if v6 = int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&(libc.Int32FromInt32(WO_EQ)|libc.Int32FromInt32(WO_IS)) != 0; v6 { pX = (*TExpr)(unsafe.Pointer((*TWhereTerm)(unsafe.Pointer(pTerm)).FpExpr)).FpRight } - if v5 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { + if v6 && pX != libc.UintptrFromInt32(0) && int32((*TExpr)(unsafe.Pointer(pX)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pX)).FiTable == *(*int32)(unsafe.Pointer(pScan + 44)) && int32((*TExpr)(unsafe.Pointer(pX)).FiColumn) == int32(*(*Ti16)(unsafe.Pointer(pScan + 88))) { goto _1 } (*TWhereScan)(unsafe.Pointer(pScan)).FpWC = pWC @@ -212225,7 +213400,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea /* Make the automatic index a partial index if there are terms in the ** WHERE clause (or the ON clause of a LEFT join) that constrain which ** rows of the target table (pSrc) that can be used. */ - if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)) != 0 { + if int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FwtFlags)&int32(TERM_VIRTUAL) == 0 && _sqlite3ExprIsSingleTableConstraint(tls, pExpr, pTabList, int32((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom), 0) != 0 { pPartial = _sqlite3ExprAnd(tls, pParse, pPartial, _sqlite3ExprDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr, 0)) } if _termCanDriveIndex(tls, pTerm, pSrc, notReady) != 0 { @@ -212240,7 +213415,7 @@ func _constructAutomaticIndex(tls *libc.TLS, pParse uintptr, pWC uintptr, notRea } cMask = v2 if !(sentWarning != 0) { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_WARNING)|libc.Int32FromInt32(1)<>14)) != 0) { eDistinct = int32(2) + libc.BoolInt32(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_SORTBYGROUP) != 0) } else { if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FwctrlFlags)&int32(WHERE_GROUPBY) != 0 { @@ -212710,7 +213886,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB */ pIdxInfo = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(96)+(libc.Uint64FromInt64(12)+libc.Uint64FromInt64(8))*uint64(uint64(nTerm))+uint64(8)*uint64(uint64(nOrderBy))+uint64(40)+uint64(8)*uint64(uint64(nTerm))) if pIdxInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1628, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1642, 0) return uintptr(0) } pHidden = pIdxInfo + 1*96 @@ -212795,7 +213971,7 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB break } pExpr1 = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr - if _sqlite3ExprIsConstant(tls, pExpr1) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr1) != 0 { goto _11 } (*(*Tsqlite3_index_orderby)(unsafe.Pointer(pIdxOrderBy + uintptr(j)*8))).FiColumn = int32((*TExpr)(unsafe.Pointer(pExpr1)).FiColumn) @@ -212870,9 +214046,9 @@ func _vtabBestIndex(tls *libc.TLS, pParse uintptr, pTab uintptr, p uintptr) (r i _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) } else { if !((*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+4645, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+4709, libc.VaList(bp+8, _sqlite3ErrStr(tls, rc))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+4645, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+4709, libc.VaList(bp+8, (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg)) } } } @@ -214209,7 +215385,7 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x4>>2)) != 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_GE)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LT)-libc.Int32FromInt32(TK_EQ)) | libc.Int32FromInt32(WO_EQ)<<(libc.Int32FromInt32(TK_LE)-libc.Int32FromInt32(TK_EQ))) } - if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x100>>8)) != 0 && int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x2>>1)) == 0 { opMask &= ^(libc.Int32FromInt32(WO_EQ) | libc.Int32FromInt32(WO_IN) | libc.Int32FromInt32(WO_IS)) } } @@ -214448,10 +215624,13 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } } } - /* Set rCostIdx to the cost of visiting selected rows in index. Add - ** it to pNew->rRun, which is currently set to the cost of the index - ** seek only. Then, if this is a non-covering index, add the cost of - ** visiting the rows in the main table. */ + /* Set rCostIdx to the estimated cost of visiting selected rows in the + ** index. The estimate is the sum of two values: + ** 1. The cost of doing one search-by-key to find the first matching + ** entry + ** 2. Stepping forward in the index pNew->nOut times to find all + ** additional matching entries. + */ if int32(uint32(*(*uint16)(unsafe.Pointer(pProbe + 100))&0x3>>0)) == int32(SQLITE_IDXTYPE_IPK) { /* The pProbe->szIdxRow is low for an IPK table since the interior ** pages are small. Thus szIdxRow gives a good estimate of seek cost. @@ -214461,7 +215640,14 @@ func _whereLoopAddBtreeIndex(tls *libc.TLS, pBuilder uintptr, pSrc uintptr, pPro } else { rCostIdx = int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut) + int32(1) + int32(15)*int32((*TIndex)(unsafe.Pointer(pProbe)).FszIdxRow)/int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FszTabRow)) } - (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + rCostIdx = _sqlite3LogEstAdd(tls, rLogSize, rCostIdx) + /* Estimate the cost of running the loop. If all data is coming + ** from the index, then this is just the cost of doing the index + ** lookup and scan. But if some data is coming out of the main table, + ** we also have to add in the cost of doing pNew->nOut searches to + ** locate the row in the main table that corresponds to the index entry. + */ + (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = rCostIdx if (*TWhereLoop)(unsafe.Pointer(pNew)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IDX_ONLY)|libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_EXPRIDX)) == uint32(0) { (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun = _sqlite3LogEstAdd(tls, (*TWhereLoop)(unsafe.Pointer(pNew)).FrRun, int16(int32((*TWhereLoop)(unsafe.Pointer(pNew)).FnOut)+int32(16))) } @@ -214566,7 +215752,7 @@ func _indexMightHelpWithOrderBy(tls *libc.TLS, pBuilder uintptr, pIndex uintptr, if pExpr == uintptr(0) { goto _2 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { + if (int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) || int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_COLUMN)) && (*TExpr)(unsafe.Pointer(pExpr)).FiTable == iCursor { if int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) < 0 { return int32(1) } @@ -214901,7 +216087,7 @@ func _wherePartIdxExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, pPart uintpt if int32((*TExpr)(unsafe.Pointer(pLeft)).Fop) != int32(TK_COLUMN) { return } - if !(_sqlite3ExprIsConstant(tls, pRight) != 0) { + if !(_sqlite3ExprIsConstant(tls, uintptr(0), pRight) != 0) { return } if !(_sqlite3IsBinary(tls, _sqlite3ExprCompareCollSeq(tls, pParse, pPart)) != 0) { @@ -215230,7 +216416,7 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in ** unique index is used (making the index functionally non-unique) ** then the sqlite_stat1 data becomes important for scoring the ** plan */ - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) } _sqlite3Stat4ProbeFree(tls, (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FpRec) (*TWhereLoopBuilder)(unsafe.Pointer(pBuilder)).FnRecValid = 0 @@ -215258,6 +216444,31 @@ func _isLimitTerm(tls *libc.TLS, pTerm uintptr) (r int32) { return libc.BoolInt32(int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) >= int32(SQLITE_INDEX_CONSTRAINT_LIMIT) && int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeMatchOp) <= int32(SQLITE_INDEX_CONSTRAINT_OFFSET)) } +// C documentation +// +// /* +// ** Return true if the first nCons constraints in the pUsage array are +// ** marked as in-use (have argvIndex>0). False otherwise. +// */ +func _allConstraintsUsed(tls *libc.TLS, aUsage uintptr, nCons int32) (r int32) { + var ii int32 + _ = ii + ii = 0 + for { + if !(ii < nCons) { + break + } + if (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer(aUsage + uintptr(ii)*8))).FargvIndex <= 0 { + return 0 + } + goto _1 + _1: + ; + ii++ + } + return int32(1) +} + // C documentation // // /* @@ -215352,7 +216563,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if v3 >= 0 { j = (*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).FiTermOffset if iTerm >= nConstraint || j < 0 || j >= (*TWhereClause)(unsafe.Pointer(pWC)).FnTerm || *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(iTerm)*8)) != uintptr(0) || int32((*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23757, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23902, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } pTerm1 = (*TWhereClause)(unsafe.Pointer(pWC)).Fa + uintptr(j)*56 @@ -215397,12 +216608,16 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, *(*int32)(unsafe.Pointer(pbIn)) = int32(1) } } - if _isLimitTerm(tls, pTerm1) != 0 && *(*int32)(unsafe.Pointer(pbIn)) != 0 { + /* Unless pbRetryLimit is non-NULL, there should be no LIMIT/OFFSET + ** terms. And if there are any, they should follow all other terms. */ + if _isLimitTerm(tls, pTerm1) != 0 && (*(*int32)(unsafe.Pointer(pbIn)) != 0 || !(_allConstraintsUsed(tls, pUsage, i) != 0)) { /* If there is an IN(...) term handled as an == (separate call to ** xFilter for each value on the RHS of the IN) and a LIMIT or - ** OFFSET term handled as well, the plan is unusable. Set output - ** variable *pbRetryLimit to true to tell the caller to retry with - ** LIMIT and OFFSET disabled. */ + ** OFFSET term handled as well, the plan is unusable. Similarly, + ** if there is a LIMIT/OFFSET and there are other unused terms, + ** the plan cannot be used. In these cases set variable *pbRetryLimit + ** to true to tell the caller to retry with LIMIT and OFFSET + ** disabled. */ if (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FneedToFreeIdxStr != 0 { Xsqlite3_free(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = uintptr(0) @@ -215427,7 +216642,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, if *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(i)*8)) == uintptr(0) { /* The non-zero argvIdx values must be contiguous. Raise an ** error if they are not */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23757, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23902, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FzName)) return int32(SQLITE_ERROR) } goto _6 @@ -215579,7 +216794,7 @@ func Xsqlite3_vtab_rhs_value(tls *libc.TLS, pIdxInfo uintptr, iCons int32, ppVal pVal = uintptr(0) rc = SQLITE_OK if iCons < 0 || iCons >= (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FnConstraint { - rc = _sqlite3MisuseError(tls, int32(165251)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(166453)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = (*TWhereClause)(unsafe.Pointer((*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC)).Fa + uintptr((*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset)*56 @@ -216017,7 +217232,7 @@ func _whereLoopAddAll(tls *libc.TLS, pBuilder uintptr) (r int32) { if rc != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { if rc == int32(SQLITE_DONE) { /* We hit the query planner search limit set by iPlanLimit */ - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+23783, 0) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+23928, 0) rc = SQLITE_OK } else { break @@ -216399,7 +217614,7 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, } p = (*(*TExprList_item)(unsafe.Pointer(pOrderBy + 8 + uintptr(i)*32))).FpExpr mTerm = _sqlite3WhereExprUsage(tls, pWInfo+592, p) - if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, p) != 0) { + if mTerm == uint64(0) && !(_sqlite3ExprIsConstant(tls, uintptr(0), p) != 0) { goto _9 } if mTerm & ^orderDistinctMask == uint64(0) { @@ -216809,7 +218024,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) iLoop++ } if nFrom == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23818, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23963, 0) _sqlite3DbFreeNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pSpace) return int32(SQLITE_ERROR) } @@ -216858,9 +218073,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) if int32((*TWherePath)(unsafe.Pointer(pFrom)).FisOrdered) == (*TExprList)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy)).FnExpr { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_ORDERED) } - if (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy != 0 && int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) > (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr { - (*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat = int8((*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FpOrderBy)).FnExpr) - } + /* vvv--- See check-in [12ad822d9b827777] on 2023-03-16 ---vvv */ } else { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FrevMask = (*TWherePath)(unsafe.Pointer(pFrom)).FrevLoop if int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnOBSat) <= 0 { @@ -216897,6 +218110,97 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) return SQLITE_OK } +// C documentation +// +// /* +// ** This routine implements a heuristic designed to improve query planning. +// ** This routine is called in between the first and second call to +// ** wherePathSolver(). Hence the name "Interstage" "Heuristic". +// ** +// ** The first call to wherePathSolver() (hereafter just "solver()") computes +// ** the best path without regard to the order of the outputs. The second call +// ** to the solver() builds upon the first call to try to find an alternative +// ** path that satisfies the ORDER BY clause. +// ** +// ** This routine looks at the results of the first solver() run, and for +// ** every FROM clause term in the resulting query plan that uses an equality +// ** constraint against an index, disable other WhereLoops for that same +// ** FROM clause term that would try to do a full-table scan. This prevents +// ** an index search from being converted into a full-table scan in order to +// ** satisfy an ORDER BY clause, since even though we might get slightly better +// ** performance using the full-scan without sorting if the output size +// ** estimates are very precise, we might also get severe performance +// ** degradation using the full-scan if the output size estimate is too large. +// ** It is better to err on the side of caution. +// ** +// ** Except, if the first solver() call generated a full-table scan in an outer +// ** loop then stop this analysis at the first full-scan, since the second +// ** solver() run might try to swap that full-scan for another in order to +// ** get the output into the correct order. In other words, we allow a +// ** rewrite like this: +// ** +// ** First Solver() Second Solver() +// ** |-- SCAN t1 |-- SCAN t2 +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** The purpose of this routine is to disallow rewrites such as: +// ** +// ** First Solver() Second Solver() +// ** |-- SEARCH t1 |-- SCAN t2 <--- bad! +// ** |-- SEARCH t2 `-- SEARCH t1 +// ** `-- SORT USING B-TREE +// ** +// ** See test cases in test/whereN.test for the real-world query that +// ** originally provoked this heuristic. +// */ +func _whereInterstageHeuristic(tls *libc.TLS, pWInfo uintptr) { + var i int32 + var iTab Tu8 + var p, pLoop uintptr + _, _, _, _ = i, iTab, p, pLoop + i = 0 + for { + if !(i < int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnLevel)) { + break + } + p = (*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(i)*104))).FpWLoop + if p == uintptr(0) { + break + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { + goto _1 + } + if (*TWhereLoop)(unsafe.Pointer(p)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_COLUMN_EQ)|libc.Int32FromInt32(WHERE_COLUMN_NULL)|libc.Int32FromInt32(WHERE_COLUMN_IN)) != uint32(0) { + iTab = (*TWhereLoop)(unsafe.Pointer(p)).FiTab + pLoop = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpLoops + for { + if !(pLoop != 0) { + break + } + if int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab) != int32(int32(iTab)) { + goto _2 + } + if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_CONSTRAINT)|libc.Int32FromInt32(WHERE_AUTO_INDEX)) != uint32(0) { + /* Auto-index and index-constrained loops allowed to remain */ + goto _2 + } + (*TWhereLoop)(unsafe.Pointer(pLoop)).Fprereq = uint64(-libc.Int32FromInt32(1)) /* Prevent 2nd solver() from using this one */ + goto _2 + _2: + ; + pLoop = (*TWhereLoop)(unsafe.Pointer(pLoop)).FpNextLoop + } + } else { + break + } + goto _1 + _1: + ; + i++ + } +} + // C documentation // // /* @@ -217205,7 +218509,7 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { if (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_HasStat1) == uint32(0) { break } - *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_StatsUsed) + *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_MaybeReanalyze) if i >= int32(1) && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&reqFlags == reqFlags && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_INDEXED)) != uint32(0) { if int32(int32(nSearch)) > int32((*TTable)(unsafe.Pointer(pTab)).FnRowLogEst) { *(*Tu32)(unsafe.Pointer(pLoop + 48)) |= uint32(WHERE_BLOOMFILTER) @@ -217220,6 +218524,68 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { } } +// C documentation +// +// /* +// ** Expression Node callback for sqlite3ExprCanReturnSubtype(). +// ** +// ** Only a function call is able to return a subtype. So if the node +// ** is not a function call, return WRC_Prune immediately. +// ** +// ** A function call is able to return a subtype if it has the +// ** SQLITE_RESULT_SUBTYPE property. +// ** +// ** Assume that every function is able to pass-through a subtype from +// ** one of its argument (using sqlite3_result_value()). Most functions +// ** are not this way, but we don't have a mechanism to distinguish those +// ** that are from those that are not, so assume they all work this way. +// ** That means that if one of its arguments is another function and that +// ** other function is able to return a subtype, then this function is +// ** able to return a subtype. +// */ +func _exprNodeCanReturnSubtype(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { + var db, pDef uintptr + var n, v1 int32 + _, _, _, _ = db, n, pDef, v1 + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_FUNCTION) { + return int32(WRC_Prune) + } + db = (*TParse)(unsafe.Pointer((*TWalker)(unsafe.Pointer(pWalker)).FpParse)).Fdb + if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { + v1 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr + } else { + v1 = 0 + } + n = v1 + pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) + if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { + (*TWalker)(unsafe.Pointer(pWalker)).FeCode = uint16(1) + return int32(WRC_Prune) + } + return WRC_Continue +} + +// C documentation +// +// /* +// ** Return TRUE if expression pExpr is able to return a subtype. +// ** +// ** A TRUE return does not guarantee that a subtype will be returned. +// ** It only indicates that a subtype return is possible. False positives +// ** are acceptable as they only disable an optimization. False negatives, +// ** on the other hand, can lead to incorrect answers. +// */ +func _sqlite3ExprCanReturnSubtype(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var _ /* w at bp+0 */ TWalker + libc.Xmemset(tls, bp, 0, uint64(48)) + (*(*TWalker)(unsafe.Pointer(bp))).FpParse = pParse + (*(*TWalker)(unsafe.Pointer(bp))).FxExprCallback = __ccgo_fp(_exprNodeCanReturnSubtype) + _sqlite3WalkExpr(tls, bp, pExpr) + return int32((*(*TWalker)(unsafe.Pointer(bp))).FeCode) +} + // C documentation // // /* @@ -217234,9 +218600,9 @@ func _whereCheckIfBloomFilterIsUseful(tls *libc.TLS, pWInfo uintptr) { // ** references to the corresponding column of the index. // */ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur int32, pTabItem uintptr) { - var db, p, pArg, pDef, pExpr, pTab uintptr - var i, j, n, v2 int32 - _, _, _, _, _, _, _, _, _, _ = db, i, j, n, p, pArg, pDef, pExpr, pTab, v2 + var i, j int32 + var p, pArg, pExpr, pTab uintptr + _, _, _, _, _, _ = i, j, p, pArg, pExpr, pTab pTab = (*TIndex)(unsafe.Pointer(pIdx)).FpTable i = 0 for { @@ -217253,21 +218619,14 @@ func _whereAddIndexedExpr(tls *libc.TLS, pParse uintptr, pIdx uintptr, iIdxCur i goto _1 } } - if _sqlite3ExprIsConstant(tls, pExpr) != 0 { + if _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) != 0 { goto _1 } - if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) { - db = (*TParse)(unsafe.Pointer(pParse)).Fdb - if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != 0 { - v2 = (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)))).FnExpr - } else { - v2 = 0 - } - n = v2 - pDef = _sqlite3FindFunction(tls, db, *(*uintptr)(unsafe.Pointer(pExpr + 8)), n, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8(0)) - if pDef == uintptr(0) || (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_RESULT_SUBTYPE) != uint32(0) { - goto _1 - } + if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_FUNCTION) && _sqlite3ExprCanReturnSubtype(tls, pParse, pExpr) != 0 { + /* Functions that might set a subtype should not be replaced by the + ** value taken from an expression index since the index omits the + ** subtype. https://sqlite.org/forum/forumpost/68d284c86b082c3e */ + goto _1 } p = _sqlite3DbMallocRaw(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(32)) if p == uintptr(0) { @@ -217439,7 +218798,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** bits in a Bitmask */ if (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc > int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23836, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23981, libc.VaList(bp+64, int32(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) return uintptr(0) } /* This function normally generates a nested loop for all tables in @@ -217511,7 +218870,9 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if int32(int32(wctrlFlags))&int32(WHERE_WANT_DISTINCT) != 0 && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&uint32(libc.Int32FromInt32(SQLITE_DistinctOpt)) == uint32(0) { (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_UNIQUE) } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+23864, 0) + if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect != 0 && (*TSelect)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect)).FselFlags&uint32(SF_MultiValue) == uint32(0) { + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+24009, 0) + } } else { /* Assign a bit from the bitmask to every term in the FROM clause. ** @@ -217643,6 +219004,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpOrderBy != 0 { + _whereInterstageHeuristic(tls, pWInfo) _wherePathSolver(tls, pWInfo, int16(int32((*TWhereInfo)(unsafe.Pointer(pWInfo)).FnRowOut)+int32(1))) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto whereBeginError @@ -217927,6 +219289,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere (*TWhereInfo)(unsafe.Pointer(pWInfo)).FiEndWhere = _sqlite3VdbeCurrentAddr(tls, v) return pWInfo /* Jump here if malloc fails */ + goto whereBeginError whereBeginError: ; if pWInfo != 0 { @@ -217950,10 +219313,10 @@ whereBeginError: // ** sqlite3WhereBegin() for additional information. // */ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { - var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, r1, ws, x, v4, v7 int32 - var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr + var addr, addrSeek, bEarlyOut, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, r1, ws, x, v4, v7 int32 + var db, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, v, v10, v2, p12 uintptr var v3, v5 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, n, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = addr, addrSeek, bEarlyOut, db, i, iDb, iEnd, j, j1, k, last, m, n, n1, nRJ, op, p, pIdx, pIdx1, pIn, pIx, pLastOp, pLevel, pLoop, pOp, pParse, pPk, pRJ, pSrc, pTab, pTabItem, pTabList, r1, v, ws, x, v10, v2, v3, v4, v5, v7, p12 pParse = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpParse v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe pTabList = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList @@ -218094,6 +219457,12 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { ws = int32((*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags) addr = _sqlite3VdbeAddOp1(tls, v, int32(OP_IfPos), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiLeftJoin) if ws&int32(WHERE_IDX_ONLY) == 0 { + pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*104 + if int32(uint32(*(*uint16)(unsafe.Pointer(pSrc + 60 + 4))&0x20>>5)) != 0 { + n1 = (*TSrcItem)(unsafe.Pointer(pSrc)).FregResult + m = int32((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpTab)).FnCol) + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, n1, n1+m-int32(1)) + } _sqlite3VdbeAddOp1(tls, v, int32(OP_NullRow), (*TWhereLevel)(unsafe.Pointer(pLevel)).FiTabCur) } if ws&int32(WHERE_INDEXED) != 0 || ws&int32(WHERE_MULTI_OR) != 0 && *(*uintptr)(unsafe.Pointer(&(*TWhereLevel)(unsafe.Pointer(pLevel)).Fu)) != 0 { @@ -218507,9 +219876,10 @@ func _nth_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) _ = nArg _ = apArg return + goto error_out error_out: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+23882, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24027, -int32(1)) } func _nth_valueFinalizeFunc(tls *libc.TLS, pCtx uintptr) { @@ -218691,7 +220061,7 @@ func _ntileStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { if (*TNtileCtx)(unsafe.Pointer(p)).FnTotal == 0 { (*TNtileCtx)(unsafe.Pointer(p)).FnParam = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(apArg))) if (*TNtileCtx)(unsafe.Pointer(p)).FnParam <= 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+23938, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+24083, -int32(1)) } } (*TNtileCtx)(unsafe.Pointer(p)).FnTotal++ @@ -219017,7 +220387,7 @@ func _windowFind(tls *libc.TLS, pParse uintptr, pList uintptr, zName uintptr) (r p = (*TWindow)(unsafe.Pointer(p)).FpNextWin } if p == uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23983, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24128, libc.VaList(bp+8, zName)) } return p } @@ -219068,12 +220438,12 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin _sqlite3WindowChain(tls, pParse, pWin, pList) } if int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) == int32(TK_RANGE) && ((*TWindow)(unsafe.Pointer(pWin)).FpStart != 0 || (*TWindow)(unsafe.Pointer(pWin)).FpEnd != 0) && ((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy == uintptr(0) || (*TExprList)(unsafe.Pointer((*TWindow)(unsafe.Pointer(pWin)).FpOrderBy)).FnExpr != int32(1)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24002, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24147, 0) } else { if (*TFuncDef)(unsafe.Pointer(pFunc)).FfuncFlags&uint32(SQLITE_FUNC_WINDOW) != 0 { db = (*TParse)(unsafe.Pointer(pParse)).Fdb if (*TWindow)(unsafe.Pointer(pWin)).FpFilter != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24073, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24218, 0) } else { aUp = [8]struct { FzFunc uintptr @@ -219146,7 +220516,7 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin (*TWindow)(unsafe.Pointer(pWin)).FeEnd = uint8(aUp[i].FeEnd) (*TWindow)(unsafe.Pointer(pWin)).FeExclude = uint8(0) if int32((*TWindow)(unsafe.Pointer(pWin)).FeStart) == int32(TK_FOLLOWING) { - (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+9439) + (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+9564) } break } @@ -219428,7 +220798,7 @@ func _disallowAggregatesInOrderByCb(tls *libc.TLS, pWalker uintptr, pExpr uintpt bp := tls.Alloc(16) defer tls.Free(16) if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_AGG_FUNCTION) && (*TExpr)(unsafe.Pointer(pExpr)).FpAggInfo == uintptr(0) { - _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+24136, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) + _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+24281, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) } return WRC_Continue } @@ -219569,7 +220939,7 @@ func _sqlite3WindowRewrite(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { ** keep everything legal in this case. */ if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1732)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1792)) } pSub = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(bp)), pSrc, pWhere, pGroupBy, pHaving, pSort, uint32(0), uintptr(0)) (*TSelect)(unsafe.Pointer(p)).FpSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), uintptr(0), uintptr(0)) @@ -219673,7 +221043,7 @@ func _sqlite3WindowListDelete(tls *libc.TLS, db uintptr, p uintptr) { // ** variable values in the expression tree. // */ func _sqlite3WindowOffsetExpr(tls *libc.TLS, pParse uintptr, pExpr uintptr) (r uintptr) { - if 0 == _sqlite3ExprIsConstant(tls, pExpr) { + if 0 == _sqlite3ExprIsConstant(tls, uintptr(0), pExpr) { if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { _sqlite3RenameExprUnmap(tls, pParse, pExpr) } @@ -219714,7 +221084,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 ** frame boundary. */ if eStart == int32(TK_CURRENT) && eEnd == int32(TK_PRECEDING) || eStart == int32(TK_FOLLOWING) && (eEnd == int32(TK_PRECEDING) || eEnd == int32(TK_CURRENT)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24162, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24307, 0) goto windowAllocErr } pWin = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) @@ -219732,6 +221102,7 @@ func _sqlite3WindowAlloc(tls *libc.TLS, pParse uintptr, eType int32, eStart int3 (*TWindow)(unsafe.Pointer(pWin)).FpEnd = _sqlite3WindowOffsetExpr(tls, pParse, pEnd) (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3WindowOffsetExpr(tls, pParse, pStart) return pWin + goto windowAllocErr windowAllocErr: ; _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pEnd) @@ -219781,18 +221152,18 @@ func _sqlite3WindowChain(tls *libc.TLS, pParse uintptr, pWin uintptr, pList uint zErr = uintptr(0) /* Check for errors */ if (*TWindow)(unsafe.Pointer(pWin)).FpPartition != 0 { - zErr = __ccgo_ts + 24194 + zErr = __ccgo_ts + 24339 } else { if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 && (*TWindow)(unsafe.Pointer(pWin)).FpOrderBy != 0 { - zErr = __ccgo_ts + 24211 + zErr = __ccgo_ts + 24356 } else { if int32((*TWindow)(unsafe.Pointer(pExist)).FbImplicitFrame) == 0 { - zErr = __ccgo_ts + 24227 + zErr = __ccgo_ts + 24372 } } } if zErr != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24247, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24392, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) } else { (*TWindow)(unsafe.Pointer(pWin)).FpPartition = _sqlite3ExprListDup(tls, db, (*TWindow)(unsafe.Pointer(pExist)).FpPartition, 0) if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 { @@ -219816,7 +221187,7 @@ func _sqlite3WindowAttach(tls *libc.TLS, pParse uintptr, p uintptr, pWin uintptr *(*Tu32)(unsafe.Pointer(p + 4)) |= uint32(libc.Int32FromInt32(EP_WinFunc) | libc.Int32FromInt32(EP_FullSize)) (*TWindow)(unsafe.Pointer(pWin)).FpOwner = p if (*TExpr)(unsafe.Pointer(p)).Fflags&uint32(EP_Distinct) != 0 && int32((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) != int32(TK_FILTER) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24280, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24425, 0) } } else { _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pWin) @@ -220015,7 +221386,7 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, regZero) if eCond >= int32(WINDOW_STARTING_NUM) { regString = _sqlite3GetTempReg(tls, pParse) - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1658, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1672, -int32(1)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, _sqlite3VdbeCurrentAddr(tls, v)+int32(2), reg) _sqlite3VdbeChangeP5(tls, v, uint16(libc.Int32FromInt32(SQLITE_AFF_NUMERIC)|libc.Int32FromInt32(SQLITE_JUMPIFNULL))) } else { @@ -220034,11 +221405,11 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { } var _azErr = [5]uintptr{ - 0: __ccgo_ts + 24327, - 1: __ccgo_ts + 24380, - 2: __ccgo_ts + 23882, - 3: __ccgo_ts + 24431, - 4: __ccgo_ts + 24483, + 0: __ccgo_ts + 24472, + 1: __ccgo_ts + 24525, + 2: __ccgo_ts + 24027, + 3: __ccgo_ts + 24576, + 4: __ccgo_ts + 24628, } var _aOp1 = [5]int32{ @@ -220790,7 +222161,7 @@ func _windowCodeRangeTest(tls *libc.TLS, p uintptr, op int32, csr1 int32, regVal ** the add/subtract is skipped for these, as required. If reg1 is a NULL, ** then the arithmetic is performed, but since adding or subtracting from ** NULL is always NULL anyway, this case is handled as required too. */ - _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1658, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1672, -int32(1)) addrGe = _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, 0, reg1) if op == int32(OP_Ge) && arith == int32(OP_Add) || op == int32(OP_Le) && arith == int32(OP_Subtract) { _sqlite3VdbeAddOp3(tls, v, op, reg2, lbl, reg1) @@ -221818,11 +223189,11 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { cnt++ if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != 0 || (*TSelect)(unsafe.Pointer(pLoop)).FpLimit != 0 { if (*TSelect)(unsafe.Pointer(pLoop)).FpOrderBy != uintptr(0) { - v1 = __ccgo_ts + 24533 + v1 = __ccgo_ts + 24678 } else { - v1 = __ccgo_ts + 24542 + v1 = __ccgo_ts + 24687 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24548, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24693, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, int32((*TSelect)(unsafe.Pointer(pNext)).Fop)))) break } } @@ -221831,7 +223202,7 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { mxSelect = v2 } if v3 && v2 > 0 && cnt > mxSelect { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24590, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24735, 0) } } } @@ -221851,6 +223222,23 @@ func _attachWithToSelect(tls *libc.TLS, pParse uintptr, pSelect uintptr, pWith u return pSelect } +// C documentation +// +// /* Memory allocator for parser stack resizing. This is a thin wrapper around +// ** sqlite3_realloc() that includes a call to sqlite3FaultSim() to facilitate +// ** testing. +// */ +func _parserStackRealloc(tls *libc.TLS, pOld uintptr, newSize Tsqlite3_uint64) (r uintptr) { + var v1 uintptr + _ = v1 + if _sqlite3FaultSim(tls, int32(700)) != 0 { + v1 = uintptr(0) + } else { + v1 = Xsqlite3_realloc(tls, pOld, int32(int32(newSize))) + } + return v1 +} + // C documentation // // /* Construct a new Expr object from a single token */ @@ -221920,7 +223308,7 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId _ = p p = _sqlite3ExprListAppend(tls, pParse, pPrior, uintptr(0)) if (hasCollate != 0 || sortOrder != -int32(1)) && int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24624, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24769, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) } _sqlite3ExprListSetName(tls, pParse, p, pIdToken, int32(1)) return p @@ -221970,6 +223358,9 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser // ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser // ** sqlite3ParserCTX_* As sqlite3ParserARG_ except for %extra_context +// ** YYREALLOC Name of the realloc() function to use +// ** YYFREE Name of the free() function to use +// ** YYDYNSTACK True if stack space should be extended on heap // ** YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** YYNSTATE the combined number of states. @@ -221983,31 +223374,33 @@ func _parserAddExprIdListTerm(tls *libc.TLS, pParse uintptr, pPrior uintptr, pId // ** YY_NO_ACTION The yy_action[] code for no-op // ** YY_MIN_REDUCE Minimum value for reduce actions // ** YY_MAX_REDUCE Maximum value for reduce actions +// ** YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type TYYMINORTYPE = struct { Fyy0 [0]TToken - Fyy33 [0]uintptr - Fyy41 [0]uintptr - Fyy47 [0]uintptr - Fyy131 [0]uintptr - Fyy180 [0]TTrigEvent - Fyy231 [0]struct { + Fyy14 [0]uintptr + Fyy59 [0]uintptr + Fyy67 [0]uintptr + Fyy122 [0]uintptr + Fyy132 [0]uintptr + Fyy144 [0]int32 + Fyy168 [0]uintptr + Fyy203 [0]uintptr + Fyy211 [0]uintptr + Fyy269 [0]TOnOrUsing + Fyy286 [0]TTrigEvent + Fyy383 [0]struct { Fvalue int32 Fmask int32 } - Fyy254 [0]uintptr - Fyy285 [0]Tu32 - Fyy322 [0]uintptr - Fyy385 [0]uintptr - Fyy394 [0]int32 - Fyy444 [0]uintptr - Fyy516 [0]Tu8 - Fyy521 [0]uintptr - Fyy522 [0]uintptr - Fyy528 [0]uintptr - Fyy561 [0]TOnOrUsing - Fyy595 [0]TFrameBound + Fyy391 [0]Tu32 + Fyy427 [0]uintptr + Fyy454 [0]uintptr + Fyy462 [0]Tu8 + Fyy509 [0]TFrameBound + Fyy555 [0]uintptr Fyyinit int32 F__ccgo_pad20 [12]byte } @@ -222025,6 +223418,13 @@ type YYMINORTYPE = TYYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -222077,2152 +223477,2194 @@ type YYMINORTYPE = TYYMINORTYPE // ** yy_default[] Default action for each state. // ** // *********** Begin parsing tables **********************************************/ -var _yy_action = [2100]uint16{ - 0: uint16(572), - 1: uint16(210), - 2: uint16(572), - 3: uint16(119), - 4: uint16(116), - 5: uint16(231), - 6: uint16(572), - 7: uint16(119), - 8: uint16(116), - 9: uint16(231), - 10: uint16(572), - 11: uint16(1317), - 12: uint16(379), - 13: uint16(1296), - 14: uint16(410), - 15: uint16(566), - 16: uint16(566), - 17: uint16(566), - 18: uint16(572), - 19: uint16(411), - 20: uint16(380), - 21: uint16(1317), - 22: uint16(1279), - 23: uint16(42), - 24: uint16(42), - 25: uint16(42), - 26: uint16(42), - 27: uint16(210), - 28: uint16(1529), - 29: uint16(72), - 30: uint16(72), - 31: uint16(974), - 32: uint16(421), - 33: uint16(42), - 34: uint16(42), - 35: uint16(495), - 36: uint16(305), - 37: uint16(281), - 38: uint16(305), - 39: uint16(975), - 40: uint16(399), - 41: uint16(72), - 42: uint16(72), - 43: uint16(126), - 44: uint16(127), - 45: uint16(81), - 46: uint16(1217), - 47: uint16(1217), - 48: uint16(1054), - 49: uint16(1057), - 50: uint16(1044), - 51: uint16(1044), - 52: uint16(124), - 53: uint16(124), - 54: uint16(125), - 55: uint16(125), - 56: uint16(125), - 57: uint16(125), - 58: uint16(480), - 59: uint16(411), - 60: uint16(1244), - 61: uint16(1), - 62: uint16(1), - 63: uint16(578), - 64: uint16(2), - 65: uint16(1248), - 66: uint16(554), - 67: uint16(119), - 68: uint16(116), - 69: uint16(231), - 70: uint16(319), - 71: uint16(484), - 72: uint16(147), - 73: uint16(484), - 74: uint16(528), - 75: uint16(119), - 76: uint16(116), - 77: uint16(231), - 78: uint16(533), - 79: uint16(1330), - 80: uint16(419), - 81: uint16(527), - 82: uint16(143), - 83: uint16(126), - 84: uint16(127), - 85: uint16(81), - 86: uint16(1217), - 87: uint16(1217), - 88: uint16(1054), - 89: uint16(1057), - 90: uint16(1044), - 91: uint16(1044), - 92: uint16(124), - 93: uint16(124), - 94: uint16(125), - 95: uint16(125), - 96: uint16(125), - 97: uint16(125), - 98: uint16(119), - 99: uint16(116), - 100: uint16(231), - 101: uint16(329), - 102: uint16(123), - 103: uint16(123), - 104: uint16(123), - 105: uint16(123), - 106: uint16(122), - 107: uint16(122), - 108: uint16(121), - 109: uint16(121), - 110: uint16(121), - 111: uint16(120), - 112: uint16(117), - 113: uint16(448), - 114: uint16(286), - 115: uint16(286), - 116: uint16(286), - 117: uint16(286), - 118: uint16(446), - 119: uint16(446), - 120: uint16(446), - 121: uint16(1568), - 122: uint16(378), - 123: uint16(1570), - 124: uint16(1193), - 125: uint16(377), - 126: uint16(1164), - 127: uint16(569), - 128: uint16(1164), - 129: uint16(569), - 130: uint16(411), - 131: uint16(1568), - 132: uint16(541), - 133: uint16(261), - 134: uint16(228), - 135: uint16(448), - 136: uint16(102), - 137: uint16(146), - 138: uint16(453), - 139: uint16(318), - 140: uint16(563), - 141: uint16(242), - 142: uint16(123), - 143: uint16(123), - 144: uint16(123), - 145: uint16(123), - 146: uint16(122), - 147: uint16(122), - 148: uint16(121), - 149: uint16(121), - 150: uint16(121), - 151: uint16(120), - 152: uint16(117), - 153: uint16(448), - 154: uint16(126), - 155: uint16(127), - 156: uint16(81), - 157: uint16(1217), - 158: uint16(1217), - 159: uint16(1054), - 160: uint16(1057), - 161: uint16(1044), - 162: uint16(1044), - 163: uint16(124), - 164: uint16(124), - 165: uint16(125), - 166: uint16(125), - 167: uint16(125), - 168: uint16(125), - 169: uint16(143), - 170: uint16(296), - 171: uint16(1193), - 172: uint16(341), - 173: uint16(452), - 174: uint16(121), - 175: uint16(121), - 176: uint16(121), - 177: uint16(120), - 178: uint16(117), - 179: uint16(448), - 180: uint16(128), - 181: uint16(1193), - 182: uint16(1194), - 183: uint16(1193), - 184: uint16(149), - 185: uint16(445), - 186: uint16(444), - 187: uint16(572), - 188: uint16(120), - 189: uint16(117), - 190: uint16(448), - 191: uint16(125), - 192: uint16(125), - 193: uint16(125), - 194: uint16(125), - 195: uint16(118), - 196: uint16(123), - 197: uint16(123), - 198: uint16(123), - 199: uint16(123), - 200: uint16(122), - 201: uint16(122), - 202: uint16(121), - 203: uint16(121), - 204: uint16(121), - 205: uint16(120), - 206: uint16(117), - 207: uint16(448), - 208: uint16(458), - 209: uint16(114), - 210: uint16(13), - 211: uint16(13), - 212: uint16(550), - 213: uint16(123), - 214: uint16(123), - 215: uint16(123), - 216: uint16(123), - 217: uint16(122), - 218: uint16(122), - 219: uint16(121), - 220: uint16(121), - 221: uint16(121), - 222: uint16(120), - 223: uint16(117), - 224: uint16(448), - 225: uint16(424), - 226: uint16(318), - 227: uint16(563), - 228: uint16(1193), - 229: uint16(1194), - 230: uint16(1193), - 231: uint16(150), - 232: uint16(1225), - 233: uint16(411), - 234: uint16(1225), - 235: uint16(125), - 236: uint16(125), - 237: uint16(125), - 238: uint16(125), - 239: uint16(123), - 240: uint16(123), - 241: uint16(123), - 242: uint16(123), - 243: uint16(122), - 244: uint16(122), - 245: uint16(121), - 246: uint16(121), - 247: uint16(121), - 248: uint16(120), - 249: uint16(117), - 250: uint16(448), - 251: uint16(469), - 252: uint16(344), - 253: uint16(1041), - 254: uint16(1041), - 255: uint16(1055), - 256: uint16(1058), - 257: uint16(126), - 258: uint16(127), - 259: uint16(81), - 260: uint16(1217), - 261: uint16(1217), - 262: uint16(1054), - 263: uint16(1057), - 264: uint16(1044), - 265: uint16(1044), - 266: uint16(124), - 267: uint16(124), - 268: uint16(125), - 269: uint16(125), - 270: uint16(125), - 271: uint16(125), - 272: uint16(1282), - 273: uint16(526), - 274: uint16(224), - 275: uint16(1193), - 276: uint16(572), - 277: uint16(411), - 278: uint16(226), - 279: uint16(519), - 280: uint16(177), - 281: uint16(83), - 282: uint16(84), - 283: uint16(123), - 284: uint16(123), - 285: uint16(123), - 286: uint16(123), - 287: uint16(122), - 288: uint16(122), - 289: uint16(121), - 290: uint16(121), - 291: uint16(121), - 292: uint16(120), - 293: uint16(117), - 294: uint16(448), - 295: uint16(1010), - 296: uint16(16), - 297: uint16(16), - 298: uint16(1193), - 299: uint16(134), - 300: uint16(134), - 301: uint16(126), - 302: uint16(127), - 303: uint16(81), - 304: uint16(1217), - 305: uint16(1217), - 306: uint16(1054), - 307: uint16(1057), - 308: uint16(1044), - 309: uint16(1044), - 310: uint16(124), - 311: uint16(124), - 312: uint16(125), - 313: uint16(125), - 314: uint16(125), - 315: uint16(125), - 316: uint16(123), - 317: uint16(123), - 318: uint16(123), - 319: uint16(123), - 320: uint16(122), - 321: uint16(122), - 322: uint16(121), - 323: uint16(121), - 324: uint16(121), - 325: uint16(120), - 326: uint16(117), - 327: uint16(448), - 328: uint16(1045), - 329: uint16(550), - 330: uint16(1193), - 331: uint16(375), - 332: uint16(1193), - 333: uint16(1194), - 334: uint16(1193), - 335: uint16(254), - 336: uint16(1438), - 337: uint16(401), - 338: uint16(508), - 339: uint16(505), - 340: uint16(504), - 341: uint16(112), - 342: uint16(564), - 343: uint16(570), +var _yy_action = [2142]uint16{ + 0: uint16(576), + 1: uint16(128), + 2: uint16(125), + 3: uint16(232), + 4: uint16(1622), + 5: uint16(549), + 6: uint16(576), + 7: uint16(1290), + 8: uint16(1281), + 9: uint16(576), + 10: uint16(328), + 11: uint16(576), + 12: uint16(1300), + 13: uint16(212), + 14: uint16(576), + 15: uint16(128), + 16: uint16(125), + 17: uint16(232), + 18: uint16(578), + 19: uint16(412), + 20: uint16(578), + 21: uint16(391), + 22: uint16(1542), + 23: uint16(51), + 24: uint16(51), + 25: uint16(523), + 26: uint16(405), + 27: uint16(1293), + 28: uint16(529), + 29: uint16(51), + 30: uint16(51), + 31: uint16(983), + 32: uint16(51), + 33: uint16(51), + 34: uint16(81), + 35: uint16(81), + 36: uint16(1107), + 37: uint16(61), + 38: uint16(61), + 39: uint16(984), + 40: uint16(1107), + 41: uint16(1292), + 42: uint16(380), + 43: uint16(135), + 44: uint16(136), + 45: uint16(90), + 46: uint16(1228), + 47: uint16(1228), + 48: uint16(1063), + 49: uint16(1066), + 50: uint16(1053), + 51: uint16(1053), + 52: uint16(133), + 53: uint16(133), + 54: uint16(134), + 55: uint16(134), + 56: uint16(134), + 57: uint16(134), + 58: uint16(1577), + 59: uint16(412), + 60: uint16(287), + 61: uint16(287), + 62: uint16(7), + 63: uint16(287), + 64: uint16(287), + 65: uint16(422), + 66: uint16(1050), + 67: uint16(1050), + 68: uint16(1064), + 69: uint16(1067), + 70: uint16(289), + 71: uint16(556), + 72: uint16(492), + 73: uint16(573), + 74: uint16(524), + 75: uint16(561), + 76: uint16(573), + 77: uint16(497), + 78: uint16(561), + 79: uint16(482), + 80: uint16(530), + 81: uint16(262), + 82: uint16(229), + 83: uint16(135), + 84: uint16(136), + 85: uint16(90), + 86: uint16(1228), + 87: uint16(1228), + 88: uint16(1063), + 89: uint16(1066), + 90: uint16(1053), + 91: uint16(1053), + 92: uint16(133), + 93: uint16(133), + 94: uint16(134), + 95: uint16(134), + 96: uint16(134), + 97: uint16(134), + 98: uint16(128), + 99: uint16(125), + 100: uint16(232), + 101: uint16(1506), + 102: uint16(132), + 103: uint16(132), + 104: uint16(132), + 105: uint16(132), + 106: uint16(131), + 107: uint16(131), + 108: uint16(130), + 109: uint16(130), + 110: uint16(130), + 111: uint16(129), + 112: uint16(126), + 113: uint16(450), + 114: uint16(1204), + 115: uint16(1255), + 116: uint16(1), + 117: uint16(1), + 118: uint16(582), + 119: uint16(2), + 120: uint16(1259), + 121: uint16(1571), + 122: uint16(420), + 123: uint16(1582), + 124: uint16(379), + 125: uint16(320), + 126: uint16(1174), + 127: uint16(153), + 128: uint16(1174), + 129: uint16(1584), + 130: uint16(412), + 131: uint16(378), + 132: uint16(1582), + 133: uint16(543), + 134: uint16(1341), + 135: uint16(330), + 136: uint16(111), + 137: uint16(570), + 138: uint16(570), + 139: uint16(570), + 140: uint16(293), + 141: uint16(1054), + 142: uint16(132), + 143: uint16(132), + 144: uint16(132), + 145: uint16(132), + 146: uint16(131), + 147: uint16(131), + 148: uint16(130), + 149: uint16(130), + 150: uint16(130), + 151: uint16(129), + 152: uint16(126), + 153: uint16(450), + 154: uint16(135), + 155: uint16(136), + 156: uint16(90), + 157: uint16(1228), + 158: uint16(1228), + 159: uint16(1063), + 160: uint16(1066), + 161: uint16(1053), + 162: uint16(1053), + 163: uint16(133), + 164: uint16(133), + 165: uint16(134), + 166: uint16(134), + 167: uint16(134), + 168: uint16(134), + 169: uint16(287), + 170: uint16(287), + 171: uint16(1204), + 172: uint16(1205), + 173: uint16(1204), + 174: uint16(255), + 175: uint16(287), + 176: uint16(287), + 177: uint16(510), + 178: uint16(507), + 179: uint16(506), + 180: uint16(137), + 181: uint16(455), + 182: uint16(573), + 183: uint16(212), + 184: uint16(561), + 185: uint16(447), + 186: uint16(446), + 187: uint16(505), + 188: uint16(573), + 189: uint16(1616), + 190: uint16(561), + 191: uint16(134), + 192: uint16(134), + 193: uint16(134), + 194: uint16(134), + 195: uint16(127), + 196: uint16(400), + 197: uint16(243), + 198: uint16(132), + 199: uint16(132), + 200: uint16(132), + 201: uint16(132), + 202: uint16(131), + 203: uint16(131), + 204: uint16(130), + 205: uint16(130), + 206: uint16(130), + 207: uint16(129), + 208: uint16(126), + 209: uint16(450), + 210: uint16(282), + 211: uint16(471), + 212: uint16(345), + 213: uint16(132), + 214: uint16(132), + 215: uint16(132), + 216: uint16(132), + 217: uint16(131), + 218: uint16(131), + 219: uint16(130), + 220: uint16(130), + 221: uint16(130), + 222: uint16(129), + 223: uint16(126), + 224: uint16(450), + 225: uint16(574), + 226: uint16(155), + 227: uint16(936), + 228: uint16(936), + 229: uint16(454), + 230: uint16(227), + 231: uint16(521), + 232: uint16(1236), + 233: uint16(412), + 234: uint16(1236), + 235: uint16(134), + 236: uint16(134), + 237: uint16(134), + 238: uint16(134), + 239: uint16(132), + 240: uint16(132), + 241: uint16(132), + 242: uint16(132), + 243: uint16(131), + 244: uint16(131), + 245: uint16(130), + 246: uint16(130), + 247: uint16(130), + 248: uint16(129), + 249: uint16(126), + 250: uint16(450), + 251: uint16(130), + 252: uint16(130), + 253: uint16(130), + 254: uint16(129), + 255: uint16(126), + 256: uint16(450), + 257: uint16(135), + 258: uint16(136), + 259: uint16(90), + 260: uint16(1228), + 261: uint16(1228), + 262: uint16(1063), + 263: uint16(1066), + 264: uint16(1053), + 265: uint16(1053), + 266: uint16(133), + 267: uint16(133), + 268: uint16(134), + 269: uint16(134), + 270: uint16(134), + 271: uint16(134), + 272: uint16(128), + 273: uint16(125), + 274: uint16(232), + 275: uint16(450), + 276: uint16(576), + 277: uint16(412), + 278: uint16(397), + 279: uint16(1249), + 280: uint16(180), + 281: uint16(92), + 282: uint16(93), + 283: uint16(132), + 284: uint16(132), + 285: uint16(132), + 286: uint16(132), + 287: uint16(131), + 288: uint16(131), + 289: uint16(130), + 290: uint16(130), + 291: uint16(130), + 292: uint16(129), + 293: uint16(126), + 294: uint16(450), + 295: uint16(381), + 296: uint16(387), + 297: uint16(1204), + 298: uint16(383), + 299: uint16(81), + 300: uint16(81), + 301: uint16(135), + 302: uint16(136), + 303: uint16(90), + 304: uint16(1228), + 305: uint16(1228), + 306: uint16(1063), + 307: uint16(1066), + 308: uint16(1053), + 309: uint16(1053), + 310: uint16(133), + 311: uint16(133), + 312: uint16(134), + 313: uint16(134), + 314: uint16(134), + 315: uint16(134), + 316: uint16(132), + 317: uint16(132), + 318: uint16(132), + 319: uint16(132), + 320: uint16(131), + 321: uint16(131), + 322: uint16(130), + 323: uint16(130), + 324: uint16(130), + 325: uint16(129), + 326: uint16(126), + 327: uint16(450), + 328: uint16(131), + 329: uint16(131), + 330: uint16(130), + 331: uint16(130), + 332: uint16(130), + 333: uint16(129), + 334: uint16(126), + 335: uint16(450), + 336: uint16(556), + 337: uint16(1204), + 338: uint16(302), + 339: uint16(319), + 340: uint16(567), + 341: uint16(121), + 342: uint16(568), + 343: uint16(480), 344: uint16(4), - 345: uint16(929), - 346: uint16(929), - 347: uint16(435), - 348: uint16(503), - 349: uint16(342), - 350: uint16(464), - 351: uint16(330), - 352: uint16(362), - 353: uint16(396), - 354: uint16(1238), - 355: uint16(1193), - 356: uint16(1194), - 357: uint16(1193), - 358: uint16(567), - 359: uint16(572), - 360: uint16(123), - 361: uint16(123), - 362: uint16(123), - 363: uint16(123), - 364: uint16(122), - 365: uint16(122), - 366: uint16(121), - 367: uint16(121), - 368: uint16(121), - 369: uint16(120), - 370: uint16(117), - 371: uint16(448), - 372: uint16(286), - 373: uint16(286), - 374: uint16(371), - 375: uint16(1581), - 376: uint16(1607), - 377: uint16(445), - 378: uint16(444), - 379: uint16(155), - 380: uint16(411), - 381: uint16(449), - 382: uint16(72), - 383: uint16(72), - 384: uint16(1289), - 385: uint16(569), - 386: uint16(1222), - 387: uint16(1193), - 388: uint16(1194), - 389: uint16(1193), - 390: uint16(86), - 391: uint16(1224), - 392: uint16(273), - 393: uint16(561), - 394: uint16(547), - 395: uint16(520), - 396: uint16(520), - 397: uint16(572), - 398: uint16(99), - 399: uint16(1223), - 400: uint16(6), - 401: uint16(1281), - 402: uint16(476), - 403: uint16(143), - 404: uint16(126), - 405: uint16(127), - 406: uint16(81), - 407: uint16(1217), - 408: uint16(1217), - 409: uint16(1054), - 410: uint16(1057), - 411: uint16(1044), - 412: uint16(1044), - 413: uint16(124), - 414: uint16(124), - 415: uint16(125), - 416: uint16(125), - 417: uint16(125), - 418: uint16(125), - 419: uint16(554), - 420: uint16(13), - 421: uint16(13), - 422: uint16(1031), - 423: uint16(511), - 424: uint16(1225), - 425: uint16(1193), - 426: uint16(1225), - 427: uint16(553), - 428: uint16(110), - 429: uint16(110), - 430: uint16(224), - 431: uint16(572), - 432: uint16(1239), - 433: uint16(177), - 434: uint16(572), - 435: uint16(429), - 436: uint16(111), - 437: uint16(199), - 438: uint16(449), - 439: uint16(573), - 440: uint16(449), - 441: uint16(432), - 442: uint16(1555), - 443: uint16(1019), - 444: uint16(327), - 445: uint16(555), - 446: uint16(1193), - 447: uint16(272), - 448: uint16(289), - 449: uint16(370), - 450: uint16(514), - 451: uint16(365), - 452: uint16(513), - 453: uint16(259), - 454: uint16(72), - 455: uint16(72), - 456: uint16(547), - 457: uint16(72), - 458: uint16(72), - 459: uint16(361), - 460: uint16(318), - 461: uint16(563), - 462: uint16(1613), - 463: uint16(123), - 464: uint16(123), - 465: uint16(123), - 466: uint16(123), - 467: uint16(122), - 468: uint16(122), - 469: uint16(121), - 470: uint16(121), - 471: uint16(121), - 472: uint16(120), - 473: uint16(117), - 474: uint16(448), - 475: uint16(1019), - 476: uint16(1019), - 477: uint16(1021), - 478: uint16(1022), - 479: uint16(28), - 480: uint16(286), - 481: uint16(286), - 482: uint16(1193), - 483: uint16(1194), - 484: uint16(1193), - 485: uint16(1159), - 486: uint16(572), - 487: uint16(1612), - 488: uint16(411), - 489: uint16(904), - 490: uint16(192), - 491: uint16(554), - 492: uint16(358), - 493: uint16(569), - 494: uint16(554), - 495: uint16(940), - 496: uint16(537), - 497: uint16(521), - 498: uint16(1159), - 499: uint16(437), - 500: uint16(415), - 501: uint16(1159), - 502: uint16(556), - 503: uint16(1193), - 504: uint16(1194), - 505: uint16(1193), - 506: uint16(572), - 507: uint16(548), - 508: uint16(548), - 509: uint16(52), - 510: uint16(52), - 511: uint16(216), - 512: uint16(126), - 513: uint16(127), - 514: uint16(81), - 515: uint16(1217), - 516: uint16(1217), - 517: uint16(1054), - 518: uint16(1057), - 519: uint16(1044), - 520: uint16(1044), - 521: uint16(124), - 522: uint16(124), - 523: uint16(125), - 524: uint16(125), - 525: uint16(125), - 526: uint16(125), - 527: uint16(1193), - 528: uint16(478), - 529: uint16(136), - 530: uint16(136), - 531: uint16(411), - 532: uint16(286), - 533: uint16(286), - 534: uint16(1493), - 535: uint16(509), - 536: uint16(122), - 537: uint16(122), - 538: uint16(121), - 539: uint16(121), - 540: uint16(121), - 541: uint16(120), - 542: uint16(117), - 543: uint16(448), - 544: uint16(1010), - 545: uint16(569), - 546: uint16(522), - 547: uint16(219), - 548: uint16(545), - 549: uint16(545), - 550: uint16(318), - 551: uint16(563), - 552: uint16(143), - 553: uint16(6), - 554: uint16(536), - 555: uint16(126), - 556: uint16(127), - 557: uint16(81), - 558: uint16(1217), - 559: uint16(1217), - 560: uint16(1054), - 561: uint16(1057), - 562: uint16(1044), - 563: uint16(1044), - 564: uint16(124), - 565: uint16(124), - 566: uint16(125), - 567: uint16(125), - 568: uint16(125), - 569: uint16(125), - 570: uint16(1557), - 571: uint16(123), - 572: uint16(123), - 573: uint16(123), - 574: uint16(123), - 575: uint16(122), - 576: uint16(122), - 577: uint16(121), - 578: uint16(121), - 579: uint16(121), - 580: uint16(120), - 581: uint16(117), - 582: uint16(448), - 583: uint16(489), - 584: uint16(1193), - 585: uint16(1194), - 586: uint16(1193), - 587: uint16(486), - 588: uint16(283), - 589: uint16(1270), - 590: uint16(960), - 591: uint16(254), - 592: uint16(1193), - 593: uint16(375), - 594: uint16(508), - 595: uint16(505), - 596: uint16(504), - 597: uint16(1193), - 598: uint16(342), - 599: uint16(574), - 600: uint16(1193), - 601: uint16(574), - 602: uint16(411), - 603: uint16(294), - 604: uint16(503), - 605: uint16(960), - 606: uint16(879), - 607: uint16(193), - 608: uint16(484), - 609: uint16(318), - 610: uint16(563), - 611: uint16(386), - 612: uint16(292), - 613: uint16(382), - 614: uint16(123), - 615: uint16(123), - 616: uint16(123), - 617: uint16(123), - 618: uint16(122), - 619: uint16(122), - 620: uint16(121), - 621: uint16(121), - 622: uint16(121), - 623: uint16(120), - 624: uint16(117), - 625: uint16(448), - 626: uint16(126), - 627: uint16(127), - 628: uint16(81), - 629: uint16(1217), - 630: uint16(1217), - 631: uint16(1054), - 632: uint16(1057), - 633: uint16(1044), - 634: uint16(1044), - 635: uint16(124), - 636: uint16(124), - 637: uint16(125), - 638: uint16(125), - 639: uint16(125), - 640: uint16(125), - 641: uint16(411), - 642: uint16(396), - 643: uint16(1139), - 644: uint16(1193), - 645: uint16(872), - 646: uint16(101), - 647: uint16(286), - 648: uint16(286), - 649: uint16(1193), - 650: uint16(1194), - 651: uint16(1193), - 652: uint16(375), - 653: uint16(1096), - 654: uint16(1193), - 655: uint16(1194), - 656: uint16(1193), - 657: uint16(1193), - 658: uint16(1194), - 659: uint16(1193), - 660: uint16(569), - 661: uint16(459), - 662: uint16(33), - 663: uint16(375), - 664: uint16(235), - 665: uint16(126), - 666: uint16(127), - 667: uint16(81), - 668: uint16(1217), - 669: uint16(1217), - 670: uint16(1054), - 671: uint16(1057), - 672: uint16(1044), - 673: uint16(1044), - 674: uint16(124), - 675: uint16(124), - 676: uint16(125), - 677: uint16(125), - 678: uint16(125), - 679: uint16(125), - 680: uint16(1437), - 681: uint16(962), - 682: uint16(572), - 683: uint16(230), - 684: uint16(961), - 685: uint16(123), - 686: uint16(123), - 687: uint16(123), - 688: uint16(123), - 689: uint16(122), - 690: uint16(122), - 691: uint16(121), - 692: uint16(121), - 693: uint16(121), - 694: uint16(120), - 695: uint16(117), - 696: uint16(448), - 697: uint16(1159), - 698: uint16(230), - 699: uint16(1193), - 700: uint16(158), - 701: uint16(1193), - 702: uint16(1194), - 703: uint16(1193), - 704: uint16(1556), - 705: uint16(13), - 706: uint16(13), - 707: uint16(303), - 708: uint16(960), - 709: uint16(1233), - 710: uint16(1159), - 711: uint16(154), - 712: uint16(411), - 713: uint16(1159), - 714: uint16(375), - 715: uint16(1584), - 716: uint16(1177), - 717: uint16(5), - 718: uint16(371), - 719: uint16(1581), - 720: uint16(431), - 721: uint16(1239), - 722: uint16(3), - 723: uint16(960), - 724: uint16(123), - 725: uint16(123), - 726: uint16(123), - 727: uint16(123), - 728: uint16(122), - 729: uint16(122), - 730: uint16(121), - 731: uint16(121), - 732: uint16(121), - 733: uint16(120), - 734: uint16(117), - 735: uint16(448), - 736: uint16(126), - 737: uint16(127), - 738: uint16(81), - 739: uint16(1217), - 740: uint16(1217), - 741: uint16(1054), - 742: uint16(1057), - 743: uint16(1044), - 744: uint16(1044), - 745: uint16(124), - 746: uint16(124), - 747: uint16(125), - 748: uint16(125), - 749: uint16(125), - 750: uint16(125), - 751: uint16(411), - 752: uint16(210), - 753: uint16(571), - 754: uint16(1193), - 755: uint16(1032), - 756: uint16(1193), - 757: uint16(1194), - 758: uint16(1193), - 759: uint16(1193), - 760: uint16(390), - 761: uint16(855), - 762: uint16(156), - 763: uint16(1555), - 764: uint16(376), - 765: uint16(404), - 766: uint16(1101), - 767: uint16(1101), - 768: uint16(492), - 769: uint16(572), - 770: uint16(469), - 771: uint16(344), - 772: uint16(1322), - 773: uint16(1322), - 774: uint16(1555), - 775: uint16(126), - 776: uint16(127), - 777: uint16(81), - 778: uint16(1217), - 779: uint16(1217), - 780: uint16(1054), - 781: uint16(1057), - 782: uint16(1044), - 783: uint16(1044), - 784: uint16(124), - 785: uint16(124), - 786: uint16(125), - 787: uint16(125), - 788: uint16(125), - 789: uint16(125), - 790: uint16(130), - 791: uint16(572), - 792: uint16(13), - 793: uint16(13), - 794: uint16(532), - 795: uint16(123), - 796: uint16(123), - 797: uint16(123), - 798: uint16(123), - 799: uint16(122), - 800: uint16(122), - 801: uint16(121), - 802: uint16(121), - 803: uint16(121), - 804: uint16(120), - 805: uint16(117), - 806: uint16(448), - 807: uint16(304), - 808: uint16(572), - 809: uint16(457), - 810: uint16(229), - 811: uint16(1193), - 812: uint16(1194), - 813: uint16(1193), - 814: uint16(13), - 815: uint16(13), - 816: uint16(1193), - 817: uint16(1194), - 818: uint16(1193), - 819: uint16(1300), - 820: uint16(467), - 821: uint16(1270), - 822: uint16(411), - 823: uint16(1320), - 824: uint16(1320), - 825: uint16(1555), - 826: uint16(1015), - 827: uint16(457), - 828: uint16(456), - 829: uint16(436), - 830: uint16(301), - 831: uint16(72), - 832: uint16(72), - 833: uint16(1268), - 834: uint16(123), - 835: uint16(123), - 836: uint16(123), - 837: uint16(123), - 838: uint16(122), - 839: uint16(122), - 840: uint16(121), - 841: uint16(121), - 842: uint16(121), - 843: uint16(120), - 844: uint16(117), - 845: uint16(448), - 846: uint16(126), - 847: uint16(127), - 848: uint16(81), - 849: uint16(1217), - 850: uint16(1217), - 851: uint16(1054), - 852: uint16(1057), - 853: uint16(1044), - 854: uint16(1044), - 855: uint16(124), - 856: uint16(124), - 857: uint16(125), - 858: uint16(125), - 859: uint16(125), - 860: uint16(125), - 861: uint16(411), - 862: uint16(384), - 863: uint16(1076), - 864: uint16(1159), - 865: uint16(286), - 866: uint16(286), - 867: uint16(421), - 868: uint16(314), - 869: uint16(280), - 870: uint16(280), - 871: uint16(287), - 872: uint16(287), - 873: uint16(461), - 874: uint16(408), - 875: uint16(407), - 876: uint16(1539), - 877: uint16(1159), - 878: uint16(569), - 879: uint16(572), - 880: uint16(1159), - 881: uint16(1196), - 882: uint16(569), - 883: uint16(409), - 884: uint16(569), - 885: uint16(126), - 886: uint16(127), - 887: uint16(81), - 888: uint16(1217), - 889: uint16(1217), - 890: uint16(1054), - 891: uint16(1057), - 892: uint16(1044), - 893: uint16(1044), - 894: uint16(124), - 895: uint16(124), - 896: uint16(125), - 897: uint16(125), - 898: uint16(125), - 899: uint16(125), - 900: uint16(457), - 901: uint16(1485), - 902: uint16(13), - 903: uint16(13), - 904: uint16(1541), - 905: uint16(123), - 906: uint16(123), - 907: uint16(123), - 908: uint16(123), - 909: uint16(122), - 910: uint16(122), - 911: uint16(121), - 912: uint16(121), - 913: uint16(121), - 914: uint16(120), - 915: uint16(117), - 916: uint16(448), - 917: uint16(202), - 918: uint16(572), - 919: uint16(462), - 920: uint16(1587), - 921: uint16(578), - 922: uint16(2), - 923: uint16(1248), - 924: uint16(843), - 925: uint16(844), - 926: uint16(845), - 927: uint16(1563), - 928: uint16(319), - 929: uint16(409), - 930: uint16(147), - 931: uint16(6), - 932: uint16(411), - 933: uint16(257), - 934: uint16(256), - 935: uint16(255), - 936: uint16(208), - 937: uint16(1330), - 938: uint16(9), - 939: uint16(1196), - 940: uint16(264), - 941: uint16(72), - 942: uint16(72), - 943: uint16(1436), - 944: uint16(123), - 945: uint16(123), - 946: uint16(123), - 947: uint16(123), - 948: uint16(122), - 949: uint16(122), - 950: uint16(121), - 951: uint16(121), - 952: uint16(121), - 953: uint16(120), - 954: uint16(117), - 955: uint16(448), - 956: uint16(126), - 957: uint16(127), - 958: uint16(81), - 959: uint16(1217), - 960: uint16(1217), - 961: uint16(1054), - 962: uint16(1057), - 963: uint16(1044), - 964: uint16(1044), - 965: uint16(124), - 966: uint16(124), - 967: uint16(125), - 968: uint16(125), - 969: uint16(125), - 970: uint16(125), - 971: uint16(572), - 972: uint16(286), - 973: uint16(286), - 974: uint16(572), - 975: uint16(1213), - 976: uint16(411), - 977: uint16(577), - 978: uint16(315), - 979: uint16(1248), - 980: uint16(421), - 981: uint16(371), - 982: uint16(1581), - 983: uint16(356), - 984: uint16(319), - 985: uint16(569), - 986: uint16(147), - 987: uint16(495), - 988: uint16(529), - 989: uint16(1644), - 990: uint16(397), - 991: uint16(935), - 992: uint16(495), - 993: uint16(1330), - 994: uint16(71), - 995: uint16(71), - 996: uint16(934), - 997: uint16(72), - 998: uint16(72), - 999: uint16(242), - 1000: uint16(1328), - 1001: uint16(105), - 1002: uint16(81), - 1003: uint16(1217), - 1004: uint16(1217), - 1005: uint16(1054), - 1006: uint16(1057), - 1007: uint16(1044), - 1008: uint16(1044), - 1009: uint16(124), - 1010: uint16(124), - 1011: uint16(125), - 1012: uint16(125), - 1013: uint16(125), - 1014: uint16(125), - 1015: uint16(123), - 1016: uint16(123), - 1017: uint16(123), - 1018: uint16(123), - 1019: uint16(122), - 1020: uint16(122), - 1021: uint16(121), - 1022: uint16(121), - 1023: uint16(121), - 1024: uint16(120), - 1025: uint16(117), - 1026: uint16(448), - 1027: uint16(1117), - 1028: uint16(286), - 1029: uint16(286), - 1030: uint16(1422), - 1031: uint16(452), - 1032: uint16(1528), - 1033: uint16(1213), - 1034: uint16(443), - 1035: uint16(286), - 1036: uint16(286), - 1037: uint16(1492), - 1038: uint16(1355), - 1039: uint16(313), - 1040: uint16(478), - 1041: uint16(569), - 1042: uint16(1118), - 1043: uint16(454), - 1044: uint16(351), - 1045: uint16(495), - 1046: uint16(354), - 1047: uint16(1266), - 1048: uint16(569), - 1049: uint16(209), - 1050: uint16(572), - 1051: uint16(418), - 1052: uint16(179), - 1053: uint16(572), - 1054: uint16(1031), - 1055: uint16(242), - 1056: uint16(385), - 1057: uint16(1119), - 1058: uint16(523), - 1059: uint16(123), - 1060: uint16(123), - 1061: uint16(123), - 1062: uint16(123), - 1063: uint16(122), - 1064: uint16(122), - 1065: uint16(121), - 1066: uint16(121), - 1067: uint16(121), - 1068: uint16(120), - 1069: uint16(117), - 1070: uint16(448), - 1071: uint16(1020), - 1072: uint16(108), - 1073: uint16(72), - 1074: uint16(72), - 1075: uint16(1019), - 1076: uint16(13), - 1077: uint16(13), - 1078: uint16(915), - 1079: uint16(572), - 1080: uint16(1498), - 1081: uint16(572), - 1082: uint16(286), - 1083: uint16(286), - 1084: uint16(98), - 1085: uint16(530), - 1086: uint16(1537), - 1087: uint16(452), - 1088: uint16(916), - 1089: uint16(1334), - 1090: uint16(1329), - 1091: uint16(203), - 1092: uint16(411), - 1093: uint16(286), - 1094: uint16(286), - 1095: uint16(569), - 1096: uint16(152), - 1097: uint16(211), - 1098: uint16(1498), - 1099: uint16(1500), - 1100: uint16(426), - 1101: uint16(569), - 1102: uint16(56), - 1103: uint16(56), - 1104: uint16(57), - 1105: uint16(57), - 1106: uint16(569), - 1107: uint16(1019), - 1108: uint16(1019), - 1109: uint16(1021), - 1110: uint16(447), - 1111: uint16(572), - 1112: uint16(411), - 1113: uint16(531), - 1114: uint16(12), - 1115: uint16(297), - 1116: uint16(126), - 1117: uint16(127), - 1118: uint16(81), - 1119: uint16(1217), - 1120: uint16(1217), - 1121: uint16(1054), - 1122: uint16(1057), - 1123: uint16(1044), - 1124: uint16(1044), - 1125: uint16(124), - 1126: uint16(124), - 1127: uint16(125), - 1128: uint16(125), - 1129: uint16(125), - 1130: uint16(125), - 1131: uint16(572), - 1132: uint16(411), - 1133: uint16(867), - 1134: uint16(15), - 1135: uint16(15), - 1136: uint16(126), - 1137: uint16(127), - 1138: uint16(81), - 1139: uint16(1217), - 1140: uint16(1217), - 1141: uint16(1054), - 1142: uint16(1057), - 1143: uint16(1044), - 1144: uint16(1044), - 1145: uint16(124), - 1146: uint16(124), - 1147: uint16(125), - 1148: uint16(125), - 1149: uint16(125), - 1150: uint16(125), - 1151: uint16(373), - 1152: uint16(529), - 1153: uint16(264), - 1154: uint16(44), - 1155: uint16(44), - 1156: uint16(126), - 1157: uint16(115), - 1158: uint16(81), - 1159: uint16(1217), - 1160: uint16(1217), - 1161: uint16(1054), - 1162: uint16(1057), - 1163: uint16(1044), - 1164: uint16(1044), - 1165: uint16(124), - 1166: uint16(124), - 1167: uint16(125), - 1168: uint16(125), - 1169: uint16(125), - 1170: uint16(125), - 1171: uint16(1498), - 1172: uint16(478), - 1173: uint16(1271), - 1174: uint16(417), - 1175: uint16(123), - 1176: uint16(123), - 1177: uint16(123), - 1178: uint16(123), - 1179: uint16(122), - 1180: uint16(122), - 1181: uint16(121), - 1182: uint16(121), - 1183: uint16(121), - 1184: uint16(120), - 1185: uint16(117), - 1186: uint16(448), - 1187: uint16(205), - 1188: uint16(1213), - 1189: uint16(495), - 1190: uint16(430), - 1191: uint16(867), - 1192: uint16(468), - 1193: uint16(322), - 1194: uint16(495), - 1195: uint16(123), - 1196: uint16(123), - 1197: uint16(123), - 1198: uint16(123), - 1199: uint16(122), - 1200: uint16(122), - 1201: uint16(121), - 1202: uint16(121), - 1203: uint16(121), - 1204: uint16(120), - 1205: uint16(117), - 1206: uint16(448), - 1207: uint16(572), - 1208: uint16(557), - 1209: uint16(1140), - 1210: uint16(1642), - 1211: uint16(1422), - 1212: uint16(1642), - 1213: uint16(543), - 1214: uint16(572), - 1215: uint16(123), - 1216: uint16(123), - 1217: uint16(123), - 1218: uint16(123), - 1219: uint16(122), - 1220: uint16(122), - 1221: uint16(121), - 1222: uint16(121), - 1223: uint16(121), - 1224: uint16(120), - 1225: uint16(117), - 1226: uint16(448), - 1227: uint16(572), - 1228: uint16(1422), - 1229: uint16(572), - 1230: uint16(13), - 1231: uint16(13), - 1232: uint16(542), - 1233: uint16(323), - 1234: uint16(1325), - 1235: uint16(411), - 1236: uint16(334), - 1237: uint16(58), - 1238: uint16(58), - 1239: uint16(349), - 1240: uint16(1422), - 1241: uint16(1170), - 1242: uint16(326), - 1243: uint16(286), - 1244: uint16(286), - 1245: uint16(549), - 1246: uint16(1213), - 1247: uint16(300), - 1248: uint16(895), - 1249: uint16(530), - 1250: uint16(45), - 1251: uint16(45), - 1252: uint16(59), - 1253: uint16(59), - 1254: uint16(1140), - 1255: uint16(1643), - 1256: uint16(569), - 1257: uint16(1643), - 1258: uint16(565), - 1259: uint16(417), - 1260: uint16(127), - 1261: uint16(81), - 1262: uint16(1217), - 1263: uint16(1217), - 1264: uint16(1054), - 1265: uint16(1057), - 1266: uint16(1044), - 1267: uint16(1044), - 1268: uint16(124), - 1269: uint16(124), - 1270: uint16(125), - 1271: uint16(125), - 1272: uint16(125), - 1273: uint16(125), - 1274: uint16(1367), - 1275: uint16(373), - 1276: uint16(500), - 1277: uint16(290), - 1278: uint16(1193), - 1279: uint16(512), - 1280: uint16(1366), - 1281: uint16(427), - 1282: uint16(394), - 1283: uint16(394), - 1284: uint16(393), - 1285: uint16(275), - 1286: uint16(391), - 1287: uint16(896), - 1288: uint16(1138), - 1289: uint16(852), - 1290: uint16(478), - 1291: uint16(258), - 1292: uint16(1422), - 1293: uint16(1170), - 1294: uint16(463), - 1295: uint16(1159), - 1296: uint16(12), - 1297: uint16(331), - 1298: uint16(428), - 1299: uint16(333), - 1300: uint16(1117), - 1301: uint16(460), - 1302: uint16(236), - 1303: uint16(258), - 1304: uint16(325), - 1305: uint16(460), - 1306: uint16(544), - 1307: uint16(1544), - 1308: uint16(1159), - 1309: uint16(1098), - 1310: uint16(491), - 1311: uint16(1159), - 1312: uint16(324), - 1313: uint16(1098), - 1314: uint16(440), - 1315: uint16(1118), - 1316: uint16(335), - 1317: uint16(516), - 1318: uint16(123), - 1319: uint16(123), - 1320: uint16(123), - 1321: uint16(123), - 1322: uint16(122), - 1323: uint16(122), - 1324: uint16(121), - 1325: uint16(121), - 1326: uint16(121), - 1327: uint16(120), - 1328: uint16(117), - 1329: uint16(448), - 1330: uint16(1119), - 1331: uint16(318), - 1332: uint16(563), - 1333: uint16(1138), - 1334: uint16(572), - 1335: uint16(1193), - 1336: uint16(1194), - 1337: uint16(1193), - 1338: uint16(112), - 1339: uint16(564), - 1340: uint16(201), + 345: uint16(555), + 346: uint16(1149), + 347: uint16(1657), + 348: uint16(1628), + 349: uint16(1657), + 350: uint16(45), + 351: uint16(128), + 352: uint16(125), + 353: uint16(232), + 354: uint16(1204), + 355: uint16(1205), + 356: uint16(1204), + 357: uint16(1250), + 358: uint16(571), + 359: uint16(1169), + 360: uint16(132), + 361: uint16(132), + 362: uint16(132), + 363: uint16(132), + 364: uint16(131), + 365: uint16(131), + 366: uint16(130), + 367: uint16(130), + 368: uint16(130), + 369: uint16(129), + 370: uint16(126), + 371: uint16(450), + 372: uint16(1169), + 373: uint16(287), + 374: uint16(287), + 375: uint16(1169), + 376: uint16(1019), + 377: uint16(576), + 378: uint16(422), + 379: uint16(1019), + 380: uint16(412), + 381: uint16(451), + 382: uint16(1602), + 383: uint16(582), + 384: uint16(2), + 385: uint16(1259), + 386: uint16(573), + 387: uint16(44), + 388: uint16(561), + 389: uint16(95), + 390: uint16(320), + 391: uint16(110), + 392: uint16(153), + 393: uint16(565), + 394: uint16(1204), + 395: uint16(1205), + 396: uint16(1204), + 397: uint16(522), + 398: uint16(522), + 399: uint16(1341), + 400: uint16(81), + 401: uint16(81), + 402: uint16(7), + 403: uint16(44), + 404: uint16(135), + 405: uint16(136), + 406: uint16(90), + 407: uint16(1228), + 408: uint16(1228), + 409: uint16(1063), + 410: uint16(1066), + 411: uint16(1053), + 412: uint16(1053), + 413: uint16(133), + 414: uint16(133), + 415: uint16(134), + 416: uint16(134), + 417: uint16(134), + 418: uint16(134), + 419: uint16(295), + 420: uint16(1149), + 421: uint16(1658), + 422: uint16(1040), + 423: uint16(1658), + 424: uint16(1204), + 425: uint16(1147), + 426: uint16(319), + 427: uint16(567), + 428: uint16(119), + 429: uint16(119), + 430: uint16(343), + 431: uint16(466), + 432: uint16(331), + 433: uint16(343), + 434: uint16(287), + 435: uint16(287), + 436: uint16(120), + 437: uint16(556), + 438: uint16(451), + 439: uint16(577), + 440: uint16(451), + 441: uint16(1169), + 442: uint16(1169), + 443: uint16(1028), + 444: uint16(319), + 445: uint16(567), + 446: uint16(438), + 447: uint16(573), + 448: uint16(210), + 449: uint16(561), + 450: uint16(1339), + 451: uint16(1451), + 452: uint16(546), + 453: uint16(531), + 454: uint16(1169), + 455: uint16(1169), + 456: uint16(1598), + 457: uint16(1169), + 458: uint16(1169), + 459: uint16(416), + 460: uint16(319), + 461: uint16(567), + 462: uint16(243), + 463: uint16(132), + 464: uint16(132), + 465: uint16(132), + 466: uint16(132), + 467: uint16(131), + 468: uint16(131), + 469: uint16(130), + 470: uint16(130), + 471: uint16(130), + 472: uint16(129), + 473: uint16(126), + 474: uint16(450), + 475: uint16(1028), + 476: uint16(1028), + 477: uint16(1030), + 478: uint16(1031), + 479: uint16(35), + 480: uint16(44), + 481: uint16(1204), + 482: uint16(1205), + 483: uint16(1204), + 484: uint16(472), + 485: uint16(287), + 486: uint16(287), + 487: uint16(1328), + 488: uint16(412), + 489: uint16(1307), + 490: uint16(372), + 491: uint16(1595), + 492: uint16(359), + 493: uint16(225), + 494: uint16(454), + 495: uint16(1204), + 496: uint16(195), + 497: uint16(1328), + 498: uint16(573), + 499: uint16(1147), + 500: uint16(561), + 501: uint16(1333), + 502: uint16(1333), + 503: uint16(274), + 504: uint16(576), + 505: uint16(1188), + 506: uint16(576), + 507: uint16(340), + 508: uint16(46), + 509: uint16(196), + 510: uint16(537), + 511: uint16(217), + 512: uint16(135), + 513: uint16(136), + 514: uint16(90), + 515: uint16(1228), + 516: uint16(1228), + 517: uint16(1063), + 518: uint16(1066), + 519: uint16(1053), + 520: uint16(1053), + 521: uint16(133), + 522: uint16(133), + 523: uint16(134), + 524: uint16(134), + 525: uint16(134), + 526: uint16(134), + 527: uint16(19), + 528: uint16(19), + 529: uint16(19), + 530: uint16(19), + 531: uint16(412), + 532: uint16(581), + 533: uint16(1204), + 534: uint16(1259), + 535: uint16(511), + 536: uint16(1204), + 537: uint16(319), + 538: uint16(567), + 539: uint16(320), + 540: uint16(944), + 541: uint16(153), + 542: uint16(425), + 543: uint16(491), + 544: uint16(430), + 545: uint16(943), + 546: uint16(1204), + 547: uint16(488), + 548: uint16(1341), + 549: uint16(1450), + 550: uint16(532), + 551: uint16(1277), + 552: uint16(1204), + 553: uint16(1205), + 554: uint16(1204), + 555: uint16(135), + 556: uint16(136), + 557: uint16(90), + 558: uint16(1228), + 559: uint16(1228), + 560: uint16(1063), + 561: uint16(1066), + 562: uint16(1053), + 563: uint16(1053), + 564: uint16(133), + 565: uint16(133), + 566: uint16(134), + 567: uint16(134), + 568: uint16(134), + 569: uint16(134), + 570: uint16(575), + 571: uint16(132), + 572: uint16(132), + 573: uint16(132), + 574: uint16(132), + 575: uint16(131), + 576: uint16(131), + 577: uint16(130), + 578: uint16(130), + 579: uint16(130), + 580: uint16(129), + 581: uint16(126), + 582: uint16(450), + 583: uint16(287), + 584: uint16(287), + 585: uint16(528), + 586: uint16(287), + 587: uint16(287), + 588: uint16(372), + 589: uint16(1595), + 590: uint16(1204), + 591: uint16(1205), + 592: uint16(1204), + 593: uint16(1204), + 594: uint16(1205), + 595: uint16(1204), + 596: uint16(573), + 597: uint16(486), + 598: uint16(561), + 599: uint16(573), + 600: uint16(889), + 601: uint16(561), + 602: uint16(412), + 603: uint16(1204), + 604: uint16(1205), + 605: uint16(1204), + 606: uint16(886), + 607: uint16(40), + 608: uint16(22), + 609: uint16(22), + 610: uint16(220), + 611: uint16(243), + 612: uint16(525), + 613: uint16(1449), + 614: uint16(132), + 615: uint16(132), + 616: uint16(132), + 617: uint16(132), + 618: uint16(131), + 619: uint16(131), + 620: uint16(130), + 621: uint16(130), + 622: uint16(130), + 623: uint16(129), + 624: uint16(126), + 625: uint16(450), + 626: uint16(135), + 627: uint16(136), + 628: uint16(90), + 629: uint16(1228), + 630: uint16(1228), + 631: uint16(1063), + 632: uint16(1066), + 633: uint16(1053), + 634: uint16(1053), + 635: uint16(133), + 636: uint16(133), + 637: uint16(134), + 638: uint16(134), + 639: uint16(134), + 640: uint16(134), + 641: uint16(412), + 642: uint16(180), + 643: uint16(454), + 644: uint16(1204), + 645: uint16(879), + 646: uint16(255), + 647: uint16(287), + 648: uint16(287), + 649: uint16(510), + 650: uint16(507), + 651: uint16(506), + 652: uint16(372), + 653: uint16(1595), + 654: uint16(1568), + 655: uint16(1331), + 656: uint16(1331), + 657: uint16(576), + 658: uint16(889), + 659: uint16(505), + 660: uint16(573), + 661: uint16(44), + 662: uint16(561), + 663: uint16(559), + 664: uint16(1207), + 665: uint16(135), + 666: uint16(136), + 667: uint16(90), + 668: uint16(1228), + 669: uint16(1228), + 670: uint16(1063), + 671: uint16(1066), + 672: uint16(1053), + 673: uint16(1053), + 674: uint16(133), + 675: uint16(133), + 676: uint16(134), + 677: uint16(134), + 678: uint16(134), + 679: uint16(134), + 680: uint16(81), + 681: uint16(81), + 682: uint16(422), + 683: uint16(576), + 684: uint16(377), + 685: uint16(132), + 686: uint16(132), + 687: uint16(132), + 688: uint16(132), + 689: uint16(131), + 690: uint16(131), + 691: uint16(130), + 692: uint16(130), + 693: uint16(130), + 694: uint16(129), + 695: uint16(126), + 696: uint16(450), + 697: uint16(297), + 698: uint16(287), + 699: uint16(287), + 700: uint16(460), + 701: uint16(1204), + 702: uint16(1205), + 703: uint16(1204), + 704: uint16(1204), + 705: uint16(534), + 706: uint16(19), + 707: uint16(19), + 708: uint16(448), + 709: uint16(448), + 710: uint16(448), + 711: uint16(573), + 712: uint16(412), + 713: uint16(561), + 714: uint16(230), + 715: uint16(436), + 716: uint16(1187), + 717: uint16(535), + 718: uint16(319), + 719: uint16(567), + 720: uint16(363), + 721: uint16(432), + 722: uint16(1207), + 723: uint16(1435), + 724: uint16(132), + 725: uint16(132), + 726: uint16(132), + 727: uint16(132), + 728: uint16(131), + 729: uint16(131), + 730: uint16(130), + 731: uint16(130), + 732: uint16(130), + 733: uint16(129), + 734: uint16(126), + 735: uint16(450), + 736: uint16(135), + 737: uint16(136), + 738: uint16(90), + 739: uint16(1228), + 740: uint16(1228), + 741: uint16(1063), + 742: uint16(1066), + 743: uint16(1053), + 744: uint16(1053), + 745: uint16(133), + 746: uint16(133), + 747: uint16(134), + 748: uint16(134), + 749: uint16(134), + 750: uint16(134), + 751: uint16(412), + 752: uint16(211), + 753: uint16(949), + 754: uint16(1169), + 755: uint16(1041), + 756: uint16(1110), + 757: uint16(1110), + 758: uint16(494), + 759: uint16(547), + 760: uint16(547), + 761: uint16(1204), + 762: uint16(1205), + 763: uint16(1204), + 764: uint16(7), + 765: uint16(539), + 766: uint16(1570), + 767: uint16(1169), + 768: uint16(376), + 769: uint16(576), + 770: uint16(1169), + 771: uint16(5), + 772: uint16(1204), + 773: uint16(486), + 774: uint16(3), + 775: uint16(135), + 776: uint16(136), + 777: uint16(90), + 778: uint16(1228), + 779: uint16(1228), + 780: uint16(1063), + 781: uint16(1066), + 782: uint16(1053), + 783: uint16(1053), + 784: uint16(133), + 785: uint16(133), + 786: uint16(134), + 787: uint16(134), + 788: uint16(134), + 789: uint16(134), + 790: uint16(576), + 791: uint16(513), + 792: uint16(19), + 793: uint16(19), + 794: uint16(427), + 795: uint16(132), + 796: uint16(132), + 797: uint16(132), + 798: uint16(132), + 799: uint16(131), + 800: uint16(131), + 801: uint16(130), + 802: uint16(130), + 803: uint16(130), + 804: uint16(129), + 805: uint16(126), + 806: uint16(450), + 807: uint16(305), + 808: uint16(1204), + 809: uint16(433), + 810: uint16(225), + 811: uint16(1204), + 812: uint16(385), + 813: uint16(19), + 814: uint16(19), + 815: uint16(273), + 816: uint16(290), + 817: uint16(371), + 818: uint16(516), + 819: uint16(366), + 820: uint16(515), + 821: uint16(260), + 822: uint16(412), + 823: uint16(538), + 824: uint16(1568), + 825: uint16(549), + 826: uint16(1024), + 827: uint16(362), + 828: uint16(437), + 829: uint16(1204), + 830: uint16(1205), + 831: uint16(1204), + 832: uint16(902), + 833: uint16(1552), + 834: uint16(132), + 835: uint16(132), + 836: uint16(132), + 837: uint16(132), + 838: uint16(131), + 839: uint16(131), + 840: uint16(130), + 841: uint16(130), + 842: uint16(130), + 843: uint16(129), + 844: uint16(126), + 845: uint16(450), + 846: uint16(135), + 847: uint16(136), + 848: uint16(90), + 849: uint16(1228), + 850: uint16(1228), + 851: uint16(1063), + 852: uint16(1066), + 853: uint16(1053), + 854: uint16(1053), + 855: uint16(133), + 856: uint16(133), + 857: uint16(134), + 858: uint16(134), + 859: uint16(134), + 860: uint16(134), + 861: uint16(412), + 862: uint16(1435), + 863: uint16(514), + 864: uint16(1281), + 865: uint16(1204), + 866: uint16(1205), + 867: uint16(1204), + 868: uint16(1204), + 869: uint16(1205), + 870: uint16(1204), + 871: uint16(903), + 872: uint16(48), + 873: uint16(342), + 874: uint16(1568), + 875: uint16(1568), + 876: uint16(1279), + 877: uint16(1627), + 878: uint16(1568), + 879: uint16(911), + 880: uint16(576), + 881: uint16(129), + 882: uint16(126), + 883: uint16(450), + 884: uint16(110), + 885: uint16(135), + 886: uint16(136), + 887: uint16(90), + 888: uint16(1228), + 889: uint16(1228), + 890: uint16(1063), + 891: uint16(1066), + 892: uint16(1053), + 893: uint16(1053), + 894: uint16(133), + 895: uint16(133), + 896: uint16(134), + 897: uint16(134), + 898: uint16(134), + 899: uint16(134), + 900: uint16(265), + 901: uint16(576), + 902: uint16(459), + 903: uint16(19), + 904: uint16(19), + 905: uint16(132), + 906: uint16(132), + 907: uint16(132), + 908: uint16(132), + 909: uint16(131), + 910: uint16(131), + 911: uint16(130), + 912: uint16(130), + 913: uint16(130), + 914: uint16(129), + 915: uint16(126), + 916: uint16(450), + 917: uint16(1345), + 918: uint16(204), + 919: uint16(576), + 920: uint16(459), + 921: uint16(458), + 922: uint16(50), + 923: uint16(47), + 924: uint16(19), + 925: uint16(19), + 926: uint16(49), + 927: uint16(434), + 928: uint16(1105), + 929: uint16(573), + 930: uint16(497), + 931: uint16(561), + 932: uint16(412), + 933: uint16(428), + 934: uint16(108), + 935: uint16(1224), + 936: uint16(1569), + 937: uint16(1554), + 938: uint16(376), + 939: uint16(205), + 940: uint16(550), + 941: uint16(550), + 942: uint16(81), + 943: uint16(81), + 944: uint16(132), + 945: uint16(132), + 946: uint16(132), + 947: uint16(132), + 948: uint16(131), + 949: uint16(131), + 950: uint16(130), + 951: uint16(130), + 952: uint16(130), + 953: uint16(129), + 954: uint16(126), + 955: uint16(450), + 956: uint16(135), + 957: uint16(136), + 958: uint16(90), + 959: uint16(1228), + 960: uint16(1228), + 961: uint16(1063), + 962: uint16(1066), + 963: uint16(1053), + 964: uint16(1053), + 965: uint16(133), + 966: uint16(133), + 967: uint16(134), + 968: uint16(134), + 969: uint16(134), + 970: uint16(134), + 971: uint16(480), + 972: uint16(576), + 973: uint16(1204), + 974: uint16(576), + 975: uint16(1541), + 976: uint16(412), + 977: uint16(1435), + 978: uint16(969), + 979: uint16(315), + 980: uint16(1659), + 981: uint16(398), + 982: uint16(284), + 983: uint16(497), + 984: uint16(969), + 985: uint16(893), + 986: uint16(1569), + 987: uint16(1569), + 988: uint16(376), + 989: uint16(376), + 990: uint16(1569), + 991: uint16(461), + 992: uint16(376), + 993: uint16(1224), + 994: uint16(459), + 995: uint16(80), + 996: uint16(80), + 997: uint16(81), + 998: uint16(81), + 999: uint16(497), + 1000: uint16(374), + 1001: uint16(114), + 1002: uint16(90), + 1003: uint16(1228), + 1004: uint16(1228), + 1005: uint16(1063), + 1006: uint16(1066), + 1007: uint16(1053), + 1008: uint16(1053), + 1009: uint16(133), + 1010: uint16(133), + 1011: uint16(134), + 1012: uint16(134), + 1013: uint16(134), + 1014: uint16(134), + 1015: uint16(132), + 1016: uint16(132), + 1017: uint16(132), + 1018: uint16(132), + 1019: uint16(131), + 1020: uint16(131), + 1021: uint16(130), + 1022: uint16(130), + 1023: uint16(130), + 1024: uint16(129), + 1025: uint16(126), + 1026: uint16(450), + 1027: uint16(1204), + 1028: uint16(1505), + 1029: uint16(576), + 1030: uint16(1204), + 1031: uint16(1205), + 1032: uint16(1204), + 1033: uint16(1366), + 1034: uint16(316), + 1035: uint16(486), + 1036: uint16(281), + 1037: uint16(281), + 1038: uint16(497), + 1039: uint16(431), + 1040: uint16(557), + 1041: uint16(288), + 1042: uint16(288), + 1043: uint16(402), + 1044: uint16(1340), + 1045: uint16(471), + 1046: uint16(345), + 1047: uint16(298), + 1048: uint16(429), + 1049: uint16(573), + 1050: uint16(576), + 1051: uint16(561), + 1052: uint16(81), + 1053: uint16(81), + 1054: uint16(573), + 1055: uint16(374), + 1056: uint16(561), + 1057: uint16(971), + 1058: uint16(386), + 1059: uint16(132), + 1060: uint16(132), + 1061: uint16(132), + 1062: uint16(132), + 1063: uint16(131), + 1064: uint16(131), + 1065: uint16(130), + 1066: uint16(130), + 1067: uint16(130), + 1068: uint16(129), + 1069: uint16(126), + 1070: uint16(450), + 1071: uint16(231), + 1072: uint16(117), + 1073: uint16(81), + 1074: uint16(81), + 1075: uint16(287), + 1076: uint16(287), + 1077: uint16(231), + 1078: uint16(287), + 1079: uint16(287), + 1080: uint16(576), + 1081: uint16(1511), + 1082: uint16(576), + 1083: uint16(1336), + 1084: uint16(1204), + 1085: uint16(1205), + 1086: uint16(1204), + 1087: uint16(139), + 1088: uint16(573), + 1089: uint16(556), + 1090: uint16(561), + 1091: uint16(573), + 1092: uint16(412), + 1093: uint16(561), + 1094: uint16(441), + 1095: uint16(456), + 1096: uint16(969), + 1097: uint16(213), + 1098: uint16(558), + 1099: uint16(1511), + 1100: uint16(1513), + 1101: uint16(1550), + 1102: uint16(969), + 1103: uint16(143), + 1104: uint16(143), + 1105: uint16(145), + 1106: uint16(145), + 1107: uint16(1368), + 1108: uint16(314), + 1109: uint16(478), + 1110: uint16(444), + 1111: uint16(970), + 1112: uint16(412), + 1113: uint16(850), + 1114: uint16(851), + 1115: uint16(852), + 1116: uint16(135), + 1117: uint16(136), + 1118: uint16(90), + 1119: uint16(1228), + 1120: uint16(1228), + 1121: uint16(1063), + 1122: uint16(1066), + 1123: uint16(1053), + 1124: uint16(1053), + 1125: uint16(133), + 1126: uint16(133), + 1127: uint16(134), + 1128: uint16(134), + 1129: uint16(134), + 1130: uint16(134), + 1131: uint16(357), + 1132: uint16(412), + 1133: uint16(397), + 1134: uint16(1148), + 1135: uint16(304), + 1136: uint16(135), + 1137: uint16(136), + 1138: uint16(90), + 1139: uint16(1228), + 1140: uint16(1228), + 1141: uint16(1063), + 1142: uint16(1066), + 1143: uint16(1053), + 1144: uint16(1053), + 1145: uint16(133), + 1146: uint16(133), + 1147: uint16(134), + 1148: uint16(134), + 1149: uint16(134), + 1150: uint16(134), + 1151: uint16(1575), + 1152: uint16(323), + 1153: uint16(6), + 1154: uint16(862), + 1155: uint16(7), + 1156: uint16(135), + 1157: uint16(124), + 1158: uint16(90), + 1159: uint16(1228), + 1160: uint16(1228), + 1161: uint16(1063), + 1162: uint16(1066), + 1163: uint16(1053), + 1164: uint16(1053), + 1165: uint16(133), + 1166: uint16(133), + 1167: uint16(134), + 1168: uint16(134), + 1169: uint16(134), + 1170: uint16(134), + 1171: uint16(409), + 1172: uint16(408), + 1173: uint16(1511), + 1174: uint16(212), + 1175: uint16(132), + 1176: uint16(132), + 1177: uint16(132), + 1178: uint16(132), + 1179: uint16(131), + 1180: uint16(131), + 1181: uint16(130), + 1182: uint16(130), + 1183: uint16(130), + 1184: uint16(129), + 1185: uint16(126), + 1186: uint16(450), + 1187: uint16(411), + 1188: uint16(118), + 1189: uint16(1204), + 1190: uint16(116), + 1191: uint16(10), + 1192: uint16(352), + 1193: uint16(265), + 1194: uint16(355), + 1195: uint16(132), + 1196: uint16(132), + 1197: uint16(132), + 1198: uint16(132), + 1199: uint16(131), + 1200: uint16(131), + 1201: uint16(130), + 1202: uint16(130), + 1203: uint16(130), + 1204: uint16(129), + 1205: uint16(126), + 1206: uint16(450), + 1207: uint16(576), + 1208: uint16(324), + 1209: uint16(306), + 1210: uint16(576), + 1211: uint16(306), + 1212: uint16(1250), + 1213: uint16(469), + 1214: uint16(158), + 1215: uint16(132), + 1216: uint16(132), + 1217: uint16(132), + 1218: uint16(132), + 1219: uint16(131), + 1220: uint16(131), + 1221: uint16(130), + 1222: uint16(130), + 1223: uint16(130), + 1224: uint16(129), + 1225: uint16(126), + 1226: uint16(450), + 1227: uint16(207), + 1228: uint16(1224), + 1229: uint16(1126), + 1230: uint16(65), + 1231: uint16(65), + 1232: uint16(470), + 1233: uint16(66), + 1234: uint16(66), + 1235: uint16(412), + 1236: uint16(447), + 1237: uint16(446), + 1238: uint16(882), + 1239: uint16(531), + 1240: uint16(335), + 1241: uint16(258), + 1242: uint16(257), + 1243: uint16(256), + 1244: uint16(1127), + 1245: uint16(1233), + 1246: uint16(1204), + 1247: uint16(1205), + 1248: uint16(1204), + 1249: uint16(327), + 1250: uint16(1235), + 1251: uint16(874), + 1252: uint16(159), + 1253: uint16(576), + 1254: uint16(16), + 1255: uint16(480), + 1256: uint16(1085), + 1257: uint16(1040), + 1258: uint16(1234), + 1259: uint16(1128), + 1260: uint16(136), + 1261: uint16(90), + 1262: uint16(1228), + 1263: uint16(1228), + 1264: uint16(1063), + 1265: uint16(1066), + 1266: uint16(1053), + 1267: uint16(1053), + 1268: uint16(133), + 1269: uint16(133), + 1270: uint16(134), + 1271: uint16(134), + 1272: uint16(134), + 1273: uint16(134), + 1274: uint16(1029), + 1275: uint16(576), + 1276: uint16(81), + 1277: uint16(81), + 1278: uint16(1028), + 1279: uint16(1040), + 1280: uint16(922), + 1281: uint16(576), + 1282: uint16(463), + 1283: uint16(1236), + 1284: uint16(576), + 1285: uint16(1236), + 1286: uint16(1224), + 1287: uint16(502), + 1288: uint16(107), + 1289: uint16(1435), + 1290: uint16(923), + 1291: uint16(6), + 1292: uint16(576), + 1293: uint16(410), + 1294: uint16(1498), + 1295: uint16(882), + 1296: uint16(1029), + 1297: uint16(480), + 1298: uint16(21), + 1299: uint16(21), + 1300: uint16(1028), + 1301: uint16(332), + 1302: uint16(1380), + 1303: uint16(334), + 1304: uint16(53), + 1305: uint16(53), + 1306: uint16(497), + 1307: uint16(81), + 1308: uint16(81), + 1309: uint16(874), + 1310: uint16(1028), + 1311: uint16(1028), + 1312: uint16(1030), + 1313: uint16(445), + 1314: uint16(259), + 1315: uint16(19), + 1316: uint16(19), + 1317: uint16(533), + 1318: uint16(132), + 1319: uint16(132), + 1320: uint16(132), + 1321: uint16(132), + 1322: uint16(131), + 1323: uint16(131), + 1324: uint16(130), + 1325: uint16(130), + 1326: uint16(130), + 1327: uint16(129), + 1328: uint16(126), + 1329: uint16(450), + 1330: uint16(551), + 1331: uint16(301), + 1332: uint16(1028), + 1333: uint16(1028), + 1334: uint16(1030), + 1335: uint16(107), + 1336: uint16(532), + 1337: uint16(545), + 1338: uint16(121), + 1339: uint16(568), + 1340: uint16(1188), 1341: uint16(4), - 1342: uint16(238), - 1343: uint16(433), - 1344: uint16(935), - 1345: uint16(490), - 1346: uint16(285), - 1347: uint16(228), - 1348: uint16(1517), - 1349: uint16(934), - 1350: uint16(170), - 1351: uint16(560), - 1352: uint16(572), - 1353: uint16(142), - 1354: uint16(1516), - 1355: uint16(567), - 1356: uint16(572), - 1357: uint16(60), - 1358: uint16(60), - 1359: uint16(572), - 1360: uint16(416), - 1361: uint16(572), - 1362: uint16(441), - 1363: uint16(572), - 1364: uint16(535), - 1365: uint16(302), - 1366: uint16(875), - 1367: uint16(8), - 1368: uint16(487), - 1369: uint16(572), - 1370: uint16(237), - 1371: uint16(572), - 1372: uint16(416), - 1373: uint16(572), - 1374: uint16(485), - 1375: uint16(61), - 1376: uint16(61), - 1377: uint16(572), - 1378: uint16(449), - 1379: uint16(62), - 1380: uint16(62), - 1381: uint16(332), - 1382: uint16(63), - 1383: uint16(63), - 1384: uint16(46), - 1385: uint16(46), - 1386: uint16(47), - 1387: uint16(47), - 1388: uint16(361), - 1389: uint16(572), - 1390: uint16(561), - 1391: uint16(572), - 1392: uint16(48), - 1393: uint16(48), - 1394: uint16(50), - 1395: uint16(50), - 1396: uint16(51), - 1397: uint16(51), - 1398: uint16(572), - 1399: uint16(295), - 1400: uint16(64), - 1401: uint16(64), - 1402: uint16(482), - 1403: uint16(295), - 1404: uint16(539), - 1405: uint16(412), - 1406: uint16(471), - 1407: uint16(1031), - 1408: uint16(572), - 1409: uint16(538), - 1410: uint16(318), - 1411: uint16(563), - 1412: uint16(65), - 1413: uint16(65), - 1414: uint16(66), - 1415: uint16(66), - 1416: uint16(409), - 1417: uint16(475), - 1418: uint16(572), - 1419: uint16(1031), - 1420: uint16(572), - 1421: uint16(14), - 1422: uint16(14), - 1423: uint16(875), - 1424: uint16(1020), - 1425: uint16(110), - 1426: uint16(110), - 1427: uint16(409), - 1428: uint16(1019), - 1429: uint16(572), - 1430: uint16(474), - 1431: uint16(67), - 1432: uint16(67), - 1433: uint16(111), - 1434: uint16(455), - 1435: uint16(449), - 1436: uint16(573), - 1437: uint16(449), - 1438: uint16(98), - 1439: uint16(317), - 1440: uint16(1019), - 1441: uint16(132), - 1442: uint16(132), - 1443: uint16(133), - 1444: uint16(133), - 1445: uint16(572), - 1446: uint16(1561), - 1447: uint16(572), - 1448: uint16(974), - 1449: uint16(409), - 1450: uint16(6), - 1451: uint16(1562), - 1452: uint16(68), - 1453: uint16(68), - 1454: uint16(1560), - 1455: uint16(6), - 1456: uint16(975), - 1457: uint16(572), - 1458: uint16(6), - 1459: uint16(1559), - 1460: uint16(1019), - 1461: uint16(1019), - 1462: uint16(1021), - 1463: uint16(6), - 1464: uint16(346), - 1465: uint16(218), - 1466: uint16(101), - 1467: uint16(531), - 1468: uint16(53), - 1469: uint16(53), - 1470: uint16(69), - 1471: uint16(69), - 1472: uint16(1019), - 1473: uint16(1019), - 1474: uint16(1021), - 1475: uint16(1022), - 1476: uint16(28), - 1477: uint16(1586), - 1478: uint16(1181), - 1479: uint16(451), - 1480: uint16(70), - 1481: uint16(70), - 1482: uint16(290), - 1483: uint16(87), - 1484: uint16(215), - 1485: uint16(31), - 1486: uint16(1363), - 1487: uint16(394), - 1488: uint16(394), - 1489: uint16(393), - 1490: uint16(275), - 1491: uint16(391), - 1492: uint16(350), - 1493: uint16(109), - 1494: uint16(852), - 1495: uint16(107), - 1496: uint16(572), - 1497: uint16(112), - 1498: uint16(564), - 1499: uint16(483), - 1500: uint16(4), - 1501: uint16(1212), - 1502: uint16(572), - 1503: uint16(239), - 1504: uint16(153), - 1505: uint16(572), - 1506: uint16(39), - 1507: uint16(236), - 1508: uint16(1299), - 1509: uint16(325), - 1510: uint16(112), - 1511: uint16(564), - 1512: uint16(1298), - 1513: uint16(4), - 1514: uint16(567), - 1515: uint16(572), - 1516: uint16(32), - 1517: uint16(324), - 1518: uint16(572), - 1519: uint16(54), - 1520: uint16(54), - 1521: uint16(572), - 1522: uint16(1135), - 1523: uint16(353), - 1524: uint16(398), - 1525: uint16(165), - 1526: uint16(165), - 1527: uint16(567), - 1528: uint16(166), - 1529: uint16(166), - 1530: uint16(572), - 1531: uint16(291), - 1532: uint16(355), - 1533: uint16(572), - 1534: uint16(17), - 1535: uint16(357), - 1536: uint16(572), - 1537: uint16(449), - 1538: uint16(77), - 1539: uint16(77), - 1540: uint16(1313), - 1541: uint16(55), - 1542: uint16(55), - 1543: uint16(1297), - 1544: uint16(73), - 1545: uint16(73), - 1546: uint16(572), - 1547: uint16(238), - 1548: uint16(470), - 1549: uint16(561), - 1550: uint16(449), - 1551: uint16(472), - 1552: uint16(364), - 1553: uint16(135), - 1554: uint16(135), - 1555: uint16(170), - 1556: uint16(74), - 1557: uint16(74), - 1558: uint16(142), - 1559: uint16(163), - 1560: uint16(163), - 1561: uint16(374), - 1562: uint16(561), - 1563: uint16(539), - 1564: uint16(572), - 1565: uint16(321), - 1566: uint16(572), - 1567: uint16(886), - 1568: uint16(540), - 1569: uint16(137), - 1570: uint16(137), - 1571: uint16(339), - 1572: uint16(1353), - 1573: uint16(422), - 1574: uint16(298), - 1575: uint16(237), - 1576: uint16(539), - 1577: uint16(572), - 1578: uint16(1031), - 1579: uint16(572), - 1580: uint16(340), - 1581: uint16(538), - 1582: uint16(101), - 1583: uint16(369), - 1584: uint16(110), - 1585: uint16(110), - 1586: uint16(162), - 1587: uint16(131), - 1588: uint16(131), - 1589: uint16(164), - 1590: uint16(164), - 1591: uint16(1031), - 1592: uint16(111), - 1593: uint16(368), - 1594: uint16(449), - 1595: uint16(573), - 1596: uint16(449), + 1342: uint16(1126), + 1343: uint16(1576), + 1344: uint16(449), + 1345: uint16(576), + 1346: uint16(462), + 1347: uint16(7), + 1348: uint16(1282), + 1349: uint16(418), + 1350: uint16(462), + 1351: uint16(350), + 1352: uint16(1435), + 1353: uint16(576), + 1354: uint16(518), + 1355: uint16(571), + 1356: uint16(544), + 1357: uint16(1127), + 1358: uint16(121), + 1359: uint16(568), + 1360: uint16(442), + 1361: uint16(4), + 1362: uint16(1188), + 1363: uint16(464), + 1364: uint16(533), + 1365: uint16(1180), + 1366: uint16(1223), + 1367: uint16(9), + 1368: uint16(67), + 1369: uint16(67), + 1370: uint16(487), + 1371: uint16(576), + 1372: uint16(1128), + 1373: uint16(303), + 1374: uint16(410), + 1375: uint16(571), + 1376: uint16(54), + 1377: uint16(54), + 1378: uint16(451), + 1379: uint16(576), + 1380: uint16(123), + 1381: uint16(944), + 1382: uint16(576), + 1383: uint16(417), + 1384: uint16(576), + 1385: uint16(333), + 1386: uint16(943), + 1387: uint16(1379), + 1388: uint16(576), + 1389: uint16(236), + 1390: uint16(565), + 1391: uint16(576), + 1392: uint16(1574), + 1393: uint16(564), + 1394: uint16(68), + 1395: uint16(68), + 1396: uint16(7), + 1397: uint16(576), + 1398: uint16(451), + 1399: uint16(362), + 1400: uint16(419), + 1401: uint16(182), + 1402: uint16(69), + 1403: uint16(69), + 1404: uint16(541), + 1405: uint16(70), + 1406: uint16(70), + 1407: uint16(71), + 1408: uint16(71), + 1409: uint16(540), + 1410: uint16(565), + 1411: uint16(72), + 1412: uint16(72), + 1413: uint16(484), + 1414: uint16(55), + 1415: uint16(55), + 1416: uint16(473), + 1417: uint16(1180), + 1418: uint16(296), + 1419: uint16(1040), + 1420: uint16(56), + 1421: uint16(56), + 1422: uint16(296), + 1423: uint16(493), + 1424: uint16(541), + 1425: uint16(119), + 1426: uint16(119), + 1427: uint16(410), + 1428: uint16(1573), + 1429: uint16(542), + 1430: uint16(569), + 1431: uint16(418), + 1432: uint16(7), + 1433: uint16(120), + 1434: uint16(1244), + 1435: uint16(451), + 1436: uint16(577), + 1437: uint16(451), + 1438: uint16(465), + 1439: uint16(1040), + 1440: uint16(1028), + 1441: uint16(576), + 1442: uint16(1557), + 1443: uint16(552), + 1444: uint16(476), + 1445: uint16(119), + 1446: uint16(119), + 1447: uint16(527), + 1448: uint16(259), + 1449: uint16(121), + 1450: uint16(568), + 1451: uint16(240), + 1452: uint16(4), + 1453: uint16(120), + 1454: uint16(576), + 1455: uint16(451), + 1456: uint16(577), + 1457: uint16(451), + 1458: uint16(576), + 1459: uint16(477), + 1460: uint16(1028), + 1461: uint16(576), + 1462: uint16(156), + 1463: uint16(576), + 1464: uint16(57), + 1465: uint16(57), + 1466: uint16(571), + 1467: uint16(576), + 1468: uint16(286), + 1469: uint16(229), + 1470: uint16(410), + 1471: uint16(336), + 1472: uint16(1028), + 1473: uint16(1028), + 1474: uint16(1030), + 1475: uint16(1031), + 1476: uint16(35), + 1477: uint16(59), + 1478: uint16(59), + 1479: uint16(219), + 1480: uint16(983), + 1481: uint16(60), + 1482: uint16(60), + 1483: uint16(220), + 1484: uint16(73), + 1485: uint16(73), + 1486: uint16(74), + 1487: uint16(74), + 1488: uint16(984), + 1489: uint16(451), + 1490: uint16(75), + 1491: uint16(75), + 1492: uint16(1028), + 1493: uint16(1028), + 1494: uint16(1030), + 1495: uint16(1031), + 1496: uint16(35), + 1497: uint16(96), + 1498: uint16(216), + 1499: uint16(291), + 1500: uint16(552), + 1501: uint16(565), + 1502: uint16(1188), + 1503: uint16(318), + 1504: uint16(395), + 1505: uint16(395), + 1506: uint16(394), + 1507: uint16(276), + 1508: uint16(392), + 1509: uint16(576), + 1510: uint16(485), + 1511: uint16(859), + 1512: uint16(474), + 1513: uint16(1311), + 1514: uint16(410), + 1515: uint16(541), + 1516: uint16(576), + 1517: uint16(417), + 1518: uint16(1530), + 1519: uint16(1144), + 1520: uint16(540), + 1521: uint16(399), + 1522: uint16(1188), + 1523: uint16(292), + 1524: uint16(237), + 1525: uint16(1153), + 1526: uint16(326), + 1527: uint16(38), + 1528: uint16(23), + 1529: uint16(576), + 1530: uint16(1040), + 1531: uint16(576), + 1532: uint16(20), + 1533: uint16(20), + 1534: uint16(325), + 1535: uint16(299), + 1536: uint16(119), + 1537: uint16(119), + 1538: uint16(164), + 1539: uint16(76), + 1540: uint16(76), + 1541: uint16(1529), + 1542: uint16(121), + 1543: uint16(568), + 1544: uint16(120), + 1545: uint16(4), + 1546: uint16(451), + 1547: uint16(577), + 1548: uint16(451), + 1549: uint16(203), + 1550: uint16(576), + 1551: uint16(1028), + 1552: uint16(141), + 1553: uint16(141), + 1554: uint16(142), + 1555: uint16(142), + 1556: uint16(576), + 1557: uint16(322), + 1558: uint16(39), + 1559: uint16(571), + 1560: uint16(341), + 1561: uint16(1021), + 1562: uint16(110), + 1563: uint16(264), + 1564: uint16(239), + 1565: uint16(901), + 1566: uint16(900), + 1567: uint16(423), + 1568: uint16(242), + 1569: uint16(908), + 1570: uint16(909), + 1571: uint16(370), + 1572: uint16(173), + 1573: uint16(77), + 1574: uint16(77), + 1575: uint16(43), + 1576: uint16(479), + 1577: uint16(1310), + 1578: uint16(264), + 1579: uint16(62), + 1580: uint16(62), + 1581: uint16(369), + 1582: uint16(451), + 1583: uint16(1028), + 1584: uint16(1028), + 1585: uint16(1030), + 1586: uint16(1031), + 1587: uint16(35), + 1588: uint16(1601), + 1589: uint16(1192), + 1590: uint16(453), + 1591: uint16(1092), + 1592: uint16(238), + 1593: uint16(291), + 1594: uint16(565), + 1595: uint16(163), + 1596: uint16(1309), 1597: uint16(110), - 1598: uint16(110), - 1599: uint16(1019), - 1600: uint16(157), - 1601: uint16(157), - 1602: uint16(141), - 1603: uint16(141), - 1604: uint16(572), - 1605: uint16(111), - 1606: uint16(572), - 1607: uint16(449), - 1608: uint16(573), - 1609: uint16(449), - 1610: uint16(412), - 1611: uint16(288), - 1612: uint16(1019), - 1613: uint16(572), - 1614: uint16(882), - 1615: uint16(318), - 1616: uint16(563), - 1617: uint16(572), - 1618: uint16(219), - 1619: uint16(572), - 1620: uint16(241), - 1621: uint16(1012), - 1622: uint16(477), - 1623: uint16(263), - 1624: uint16(263), - 1625: uint16(894), - 1626: uint16(893), - 1627: uint16(140), - 1628: uint16(140), - 1629: uint16(138), - 1630: uint16(138), - 1631: uint16(1019), - 1632: uint16(1019), - 1633: uint16(1021), - 1634: uint16(1022), - 1635: uint16(28), - 1636: uint16(139), - 1637: uint16(139), - 1638: uint16(525), - 1639: uint16(455), - 1640: uint16(76), - 1641: uint16(76), - 1642: uint16(78), - 1643: uint16(78), - 1644: uint16(1019), - 1645: uint16(1019), - 1646: uint16(1021), - 1647: uint16(1022), - 1648: uint16(28), - 1649: uint16(1181), - 1650: uint16(451), - 1651: uint16(572), - 1652: uint16(1083), - 1653: uint16(290), - 1654: uint16(112), - 1655: uint16(564), - 1656: uint16(1575), - 1657: uint16(4), - 1658: uint16(394), - 1659: uint16(394), - 1660: uint16(393), - 1661: uint16(275), - 1662: uint16(391), - 1663: uint16(572), - 1664: uint16(1023), - 1665: uint16(852), - 1666: uint16(572), - 1667: uint16(479), - 1668: uint16(345), - 1669: uint16(263), - 1670: uint16(101), - 1671: uint16(567), - 1672: uint16(882), - 1673: uint16(1376), - 1674: uint16(75), - 1675: uint16(75), - 1676: uint16(1421), - 1677: uint16(501), - 1678: uint16(236), - 1679: uint16(260), - 1680: uint16(325), - 1681: uint16(112), - 1682: uint16(564), - 1683: uint16(359), - 1684: uint16(4), - 1685: uint16(101), - 1686: uint16(43), - 1687: uint16(43), - 1688: uint16(324), - 1689: uint16(49), - 1690: uint16(49), - 1691: uint16(901), - 1692: uint16(902), - 1693: uint16(161), - 1694: uint16(449), - 1695: uint16(101), - 1696: uint16(977), - 1697: uint16(978), - 1698: uint16(567), - 1699: uint16(1079), - 1700: uint16(1349), - 1701: uint16(260), - 1702: uint16(965), - 1703: uint16(932), - 1704: uint16(263), - 1705: uint16(114), - 1706: uint16(561), - 1707: uint16(1095), - 1708: uint16(517), - 1709: uint16(1095), - 1710: uint16(1083), - 1711: uint16(1094), - 1712: uint16(865), - 1713: uint16(1094), - 1714: uint16(151), - 1715: uint16(933), - 1716: uint16(1144), - 1717: uint16(114), - 1718: uint16(238), - 1719: uint16(1361), - 1720: uint16(558), - 1721: uint16(449), - 1722: uint16(1023), - 1723: uint16(559), - 1724: uint16(1426), - 1725: uint16(1278), - 1726: uint16(170), - 1727: uint16(1269), - 1728: uint16(1257), - 1729: uint16(142), - 1730: uint16(1601), - 1731: uint16(1256), - 1732: uint16(1258), - 1733: uint16(561), - 1734: uint16(1594), - 1735: uint16(1031), - 1736: uint16(496), - 1737: uint16(278), - 1738: uint16(213), - 1739: uint16(1346), - 1740: uint16(310), - 1741: uint16(110), - 1742: uint16(110), - 1743: uint16(939), - 1744: uint16(311), - 1745: uint16(312), - 1746: uint16(237), - 1747: uint16(11), - 1748: uint16(234), - 1749: uint16(111), - 1750: uint16(221), - 1751: uint16(449), - 1752: uint16(573), - 1753: uint16(449), - 1754: uint16(293), - 1755: uint16(395), - 1756: uint16(1019), - 1757: uint16(1408), - 1758: uint16(337), - 1759: uint16(1403), - 1760: uint16(1396), - 1761: uint16(338), - 1762: uint16(1031), - 1763: uint16(299), - 1764: uint16(343), - 1765: uint16(1413), - 1766: uint16(1412), - 1767: uint16(481), - 1768: uint16(110), - 1769: uint16(110), - 1770: uint16(506), - 1771: uint16(402), - 1772: uint16(225), - 1773: uint16(1296), - 1774: uint16(206), - 1775: uint16(367), - 1776: uint16(111), - 1777: uint16(1358), - 1778: uint16(449), - 1779: uint16(573), - 1780: uint16(449), - 1781: uint16(412), - 1782: uint16(1359), - 1783: uint16(1019), - 1784: uint16(1489), - 1785: uint16(1488), - 1786: uint16(318), - 1787: uint16(563), - 1788: uint16(1019), - 1789: uint16(1019), - 1790: uint16(1021), - 1791: uint16(1022), - 1792: uint16(28), - 1793: uint16(562), - 1794: uint16(207), - 1795: uint16(220), - 1796: uint16(80), - 1797: uint16(564), - 1798: uint16(389), - 1799: uint16(4), - 1800: uint16(1597), - 1801: uint16(1357), - 1802: uint16(552), - 1803: uint16(1356), - 1804: uint16(1233), - 1805: uint16(181), - 1806: uint16(267), - 1807: uint16(232), - 1808: uint16(1536), - 1809: uint16(1534), - 1810: uint16(455), - 1811: uint16(1230), - 1812: uint16(420), - 1813: uint16(567), - 1814: uint16(82), - 1815: uint16(1019), - 1816: uint16(1019), - 1817: uint16(1021), - 1818: uint16(1022), - 1819: uint16(28), - 1820: uint16(86), - 1821: uint16(217), - 1822: uint16(85), - 1823: uint16(1494), - 1824: uint16(190), - 1825: uint16(175), - 1826: uint16(183), - 1827: uint16(465), - 1828: uint16(185), - 1829: uint16(466), - 1830: uint16(36), - 1831: uint16(1409), - 1832: uint16(186), - 1833: uint16(187), - 1834: uint16(188), - 1835: uint16(499), - 1836: uint16(449), - 1837: uint16(244), - 1838: uint16(37), - 1839: uint16(99), - 1840: uint16(400), - 1841: uint16(1415), - 1842: uint16(1414), - 1843: uint16(488), - 1844: uint16(1417), - 1845: uint16(194), - 1846: uint16(473), - 1847: uint16(403), - 1848: uint16(561), - 1849: uint16(1483), - 1850: uint16(248), - 1851: uint16(92), - 1852: uint16(1505), - 1853: uint16(494), - 1854: uint16(198), - 1855: uint16(279), - 1856: uint16(112), - 1857: uint16(564), - 1858: uint16(250), - 1859: uint16(4), - 1860: uint16(348), - 1861: uint16(497), - 1862: uint16(405), - 1863: uint16(352), - 1864: uint16(1259), - 1865: uint16(251), - 1866: uint16(252), - 1867: uint16(515), - 1868: uint16(1316), - 1869: uint16(434), - 1870: uint16(1315), - 1871: uint16(1314), - 1872: uint16(94), - 1873: uint16(567), - 1874: uint16(1307), - 1875: uint16(886), - 1876: uint16(1306), - 1877: uint16(1031), - 1878: uint16(226), - 1879: uint16(406), - 1880: uint16(1611), - 1881: uint16(1610), - 1882: uint16(438), - 1883: uint16(110), - 1884: uint16(110), - 1885: uint16(1580), - 1886: uint16(1286), - 1887: uint16(524), - 1888: uint16(439), - 1889: uint16(308), - 1890: uint16(266), - 1891: uint16(111), - 1892: uint16(1285), - 1893: uint16(449), - 1894: uint16(573), - 1895: uint16(449), - 1896: uint16(449), - 1897: uint16(309), - 1898: uint16(1019), - 1899: uint16(366), - 1900: uint16(1284), - 1901: uint16(1609), - 1902: uint16(265), - 1903: uint16(1566), - 1904: uint16(1565), - 1905: uint16(442), - 1906: uint16(372), - 1907: uint16(1381), - 1908: uint16(561), - 1909: uint16(129), - 1910: uint16(550), - 1911: uint16(1380), - 1912: uint16(10), - 1913: uint16(1470), - 1914: uint16(383), - 1915: uint16(106), - 1916: uint16(316), - 1917: uint16(551), - 1918: uint16(100), - 1919: uint16(35), - 1920: uint16(534), - 1921: uint16(575), - 1922: uint16(212), - 1923: uint16(1339), - 1924: uint16(381), - 1925: uint16(387), - 1926: uint16(1187), - 1927: uint16(1338), - 1928: uint16(274), - 1929: uint16(276), - 1930: uint16(1019), - 1931: uint16(1019), - 1932: uint16(1021), - 1933: uint16(1022), - 1934: uint16(28), - 1935: uint16(277), - 1936: uint16(413), - 1937: uint16(1031), - 1938: uint16(576), - 1939: uint16(1254), - 1940: uint16(388), - 1941: uint16(1521), - 1942: uint16(1249), - 1943: uint16(110), - 1944: uint16(110), - 1945: uint16(167), - 1946: uint16(1522), - 1947: uint16(168), - 1948: uint16(148), - 1949: uint16(1520), - 1950: uint16(1519), - 1951: uint16(111), - 1952: uint16(306), - 1953: uint16(449), - 1954: uint16(573), - 1955: uint16(449), - 1956: uint16(222), - 1957: uint16(223), - 1958: uint16(1019), - 1959: uint16(839), - 1960: uint16(169), - 1961: uint16(79), - 1962: uint16(450), - 1963: uint16(214), - 1964: uint16(414), - 1965: uint16(233), - 1966: uint16(320), - 1967: uint16(145), - 1968: uint16(1093), - 1969: uint16(1091), - 1970: uint16(328), - 1971: uint16(182), - 1972: uint16(171), - 1973: uint16(1212), - 1974: uint16(918), - 1975: uint16(184), - 1976: uint16(240), - 1977: uint16(336), - 1978: uint16(243), - 1979: uint16(1107), - 1980: uint16(189), - 1981: uint16(172), - 1982: uint16(173), - 1983: uint16(423), - 1984: uint16(425), - 1985: uint16(88), - 1986: uint16(180), - 1987: uint16(191), - 1988: uint16(89), - 1989: uint16(90), - 1990: uint16(1019), - 1991: uint16(1019), - 1992: uint16(1021), - 1993: uint16(1022), - 1994: uint16(28), - 1995: uint16(91), - 1996: uint16(174), - 1997: uint16(1110), - 1998: uint16(245), - 1999: uint16(1106), - 2000: uint16(246), - 2001: uint16(159), - 2002: uint16(18), - 2003: uint16(247), - 2004: uint16(347), - 2005: uint16(1099), - 2006: uint16(263), - 2007: uint16(195), - 2008: uint16(1227), - 2009: uint16(493), - 2010: uint16(249), - 2011: uint16(196), - 2012: uint16(38), - 2013: uint16(854), - 2014: uint16(498), - 2015: uint16(368), - 2016: uint16(253), - 2017: uint16(360), - 2018: uint16(897), - 2019: uint16(197), - 2020: uint16(502), - 2021: uint16(93), - 2022: uint16(19), - 2023: uint16(20), - 2024: uint16(507), - 2025: uint16(884), - 2026: uint16(363), - 2027: uint16(510), - 2028: uint16(95), - 2029: uint16(307), - 2030: uint16(160), - 2031: uint16(96), - 2032: uint16(518), - 2033: uint16(97), - 2034: uint16(1175), - 2035: uint16(1060), - 2036: uint16(1146), - 2037: uint16(40), - 2038: uint16(21), - 2039: uint16(227), - 2040: uint16(176), - 2041: uint16(1145), - 2042: uint16(282), - 2043: uint16(284), - 2044: uint16(969), - 2045: uint16(200), - 2046: uint16(963), - 2047: uint16(114), - 2048: uint16(262), - 2049: uint16(1165), - 2050: uint16(22), - 2051: uint16(23), - 2052: uint16(24), - 2053: uint16(1161), - 2054: uint16(1169), - 2055: uint16(25), - 2056: uint16(1163), - 2057: uint16(1150), - 2058: uint16(34), - 2059: uint16(26), - 2060: uint16(1168), - 2061: uint16(546), - 2062: uint16(27), - 2063: uint16(204), - 2064: uint16(101), - 2065: uint16(103), - 2066: uint16(104), - 2067: uint16(1074), - 2068: uint16(7), - 2069: uint16(1061), - 2070: uint16(1059), - 2071: uint16(1063), - 2072: uint16(1116), - 2073: uint16(1064), - 2074: uint16(1115), - 2075: uint16(268), - 2076: uint16(269), - 2077: uint16(29), - 2078: uint16(41), - 2079: uint16(270), - 2080: uint16(1024), - 2081: uint16(866), - 2082: uint16(113), - 2083: uint16(30), - 2084: uint16(568), - 2085: uint16(392), - 2086: uint16(1183), - 2087: uint16(144), - 2088: uint16(178), - 2089: uint16(1182), - 2090: uint16(271), - 2091: uint16(928), - 2092: uint16(1245), - 2093: uint16(1245), - 2094: uint16(1245), - 2095: uint16(1245), - 2096: uint16(1245), - 2097: uint16(1245), - 2098: uint16(1245), - 2099: uint16(1602), -} -var _yy_lookahead = [2285]uint16{ - 0: uint16(193), - 1: uint16(193), - 2: uint16(193), - 3: uint16(274), - 4: uint16(275), - 5: uint16(276), - 6: uint16(193), - 7: uint16(274), - 8: uint16(275), - 9: uint16(276), - 10: uint16(193), - 11: uint16(223), - 12: uint16(219), - 13: uint16(225), - 14: uint16(206), - 15: uint16(210), - 16: uint16(211), - 17: uint16(212), - 18: uint16(193), + 1598: uint16(395), + 1599: uint16(395), + 1600: uint16(394), + 1601: uint16(276), + 1602: uint16(392), + 1603: uint16(986), + 1604: uint16(987), + 1605: uint16(859), + 1606: uint16(481), + 1607: uint16(346), + 1608: uint16(264), + 1609: uint16(110), + 1610: uint16(1032), + 1611: uint16(489), + 1612: uint16(576), + 1613: uint16(1188), + 1614: uint16(503), + 1615: uint16(1088), + 1616: uint16(261), + 1617: uint16(261), + 1618: uint16(237), + 1619: uint16(576), + 1620: uint16(326), + 1621: uint16(121), + 1622: uint16(568), + 1623: uint16(1040), + 1624: uint16(4), + 1625: uint16(347), + 1626: uint16(1376), + 1627: uint16(413), + 1628: uint16(325), + 1629: uint16(119), + 1630: uint16(119), + 1631: uint16(948), + 1632: uint16(319), + 1633: uint16(567), + 1634: uint16(351), + 1635: uint16(78), + 1636: uint16(78), + 1637: uint16(120), + 1638: uint16(571), + 1639: uint16(451), + 1640: uint16(577), + 1641: uint16(451), + 1642: uint16(79), + 1643: uint16(79), + 1644: uint16(1028), + 1645: uint16(354), + 1646: uint16(356), + 1647: uint16(576), + 1648: uint16(360), + 1649: uint16(1092), + 1650: uint16(110), + 1651: uint16(576), + 1652: uint16(974), + 1653: uint16(942), + 1654: uint16(264), + 1655: uint16(123), + 1656: uint16(457), + 1657: uint16(358), + 1658: uint16(239), + 1659: uint16(576), + 1660: uint16(519), + 1661: uint16(451), + 1662: uint16(939), + 1663: uint16(1104), + 1664: uint16(123), + 1665: uint16(1104), + 1666: uint16(173), + 1667: uint16(576), + 1668: uint16(1032), + 1669: uint16(43), + 1670: uint16(63), + 1671: uint16(63), + 1672: uint16(1324), + 1673: uint16(565), + 1674: uint16(168), + 1675: uint16(168), + 1676: uint16(1028), + 1677: uint16(1028), + 1678: uint16(1030), + 1679: uint16(1031), + 1680: uint16(35), + 1681: uint16(576), + 1682: uint16(169), + 1683: uint16(169), + 1684: uint16(1308), + 1685: uint16(872), + 1686: uint16(238), + 1687: uint16(157), + 1688: uint16(1589), + 1689: uint16(576), + 1690: uint16(86), + 1691: uint16(86), + 1692: uint16(365), + 1693: uint16(89), + 1694: uint16(568), + 1695: uint16(375), + 1696: uint16(4), + 1697: uint16(1103), + 1698: uint16(941), + 1699: uint16(1103), + 1700: uint16(123), + 1701: uint16(576), + 1702: uint16(1040), + 1703: uint16(1389), + 1704: uint16(64), + 1705: uint16(64), + 1706: uint16(1188), + 1707: uint16(1434), + 1708: uint16(119), + 1709: uint16(119), + 1710: uint16(571), + 1711: uint16(576), + 1712: uint16(82), + 1713: uint16(82), + 1714: uint16(563), + 1715: uint16(576), + 1716: uint16(120), + 1717: uint16(165), + 1718: uint16(451), + 1719: uint16(577), + 1720: uint16(451), + 1721: uint16(413), + 1722: uint16(1362), + 1723: uint16(1028), + 1724: uint16(144), + 1725: uint16(144), + 1726: uint16(319), + 1727: uint16(567), + 1728: uint16(576), + 1729: uint16(1374), + 1730: uint16(562), + 1731: uint16(498), + 1732: uint16(279), + 1733: uint16(451), + 1734: uint16(83), + 1735: uint16(83), + 1736: uint16(1439), + 1737: uint16(576), + 1738: uint16(166), + 1739: uint16(166), + 1740: uint16(576), + 1741: uint16(1289), + 1742: uint16(554), + 1743: uint16(576), + 1744: uint16(1280), + 1745: uint16(565), + 1746: uint16(576), + 1747: uint16(12), + 1748: uint16(576), + 1749: uint16(1268), + 1750: uint16(457), + 1751: uint16(146), + 1752: uint16(146), + 1753: uint16(1267), + 1754: uint16(576), + 1755: uint16(1028), + 1756: uint16(1028), + 1757: uint16(1030), + 1758: uint16(1031), + 1759: uint16(35), + 1760: uint16(140), + 1761: uint16(140), + 1762: uint16(1269), + 1763: uint16(167), + 1764: uint16(167), + 1765: uint16(1609), + 1766: uint16(160), + 1767: uint16(160), + 1768: uint16(1359), + 1769: uint16(150), + 1770: uint16(150), + 1771: uint16(149), + 1772: uint16(149), + 1773: uint16(311), + 1774: uint16(1040), + 1775: uint16(576), + 1776: uint16(312), + 1777: uint16(147), + 1778: uint16(147), + 1779: uint16(313), + 1780: uint16(119), + 1781: uint16(119), + 1782: uint16(222), + 1783: uint16(235), + 1784: uint16(576), + 1785: uint16(1188), + 1786: uint16(396), + 1787: uint16(576), + 1788: uint16(120), + 1789: uint16(576), + 1790: uint16(451), + 1791: uint16(577), + 1792: uint16(451), + 1793: uint16(1192), + 1794: uint16(453), + 1795: uint16(1028), + 1796: uint16(508), + 1797: uint16(291), + 1798: uint16(148), + 1799: uint16(148), + 1800: uint16(1421), + 1801: uint16(1612), + 1802: uint16(395), + 1803: uint16(395), + 1804: uint16(394), + 1805: uint16(276), + 1806: uint16(392), + 1807: uint16(85), + 1808: uint16(85), + 1809: uint16(859), + 1810: uint16(87), + 1811: uint16(87), + 1812: uint16(84), + 1813: uint16(84), + 1814: uint16(553), + 1815: uint16(576), + 1816: uint16(294), + 1817: uint16(576), + 1818: uint16(1426), + 1819: uint16(338), + 1820: uint16(339), + 1821: uint16(1425), + 1822: uint16(237), + 1823: uint16(300), + 1824: uint16(326), + 1825: uint16(1416), + 1826: uint16(1409), + 1827: uint16(1028), + 1828: uint16(1028), + 1829: uint16(1030), + 1830: uint16(1031), + 1831: uint16(35), + 1832: uint16(325), + 1833: uint16(344), + 1834: uint16(403), + 1835: uint16(483), + 1836: uint16(226), + 1837: uint16(1307), + 1838: uint16(52), + 1839: uint16(52), + 1840: uint16(58), + 1841: uint16(58), + 1842: uint16(368), + 1843: uint16(1371), + 1844: uint16(1502), + 1845: uint16(566), + 1846: uint16(1501), + 1847: uint16(121), + 1848: uint16(568), + 1849: uint16(221), + 1850: uint16(4), + 1851: uint16(208), + 1852: uint16(268), + 1853: uint16(209), + 1854: uint16(390), + 1855: uint16(1244), + 1856: uint16(1549), + 1857: uint16(1188), + 1858: uint16(1372), + 1859: uint16(1370), + 1860: uint16(1369), + 1861: uint16(1547), + 1862: uint16(239), + 1863: uint16(184), + 1864: uint16(571), + 1865: uint16(233), + 1866: uint16(421), + 1867: uint16(1241), + 1868: uint16(95), + 1869: uint16(218), + 1870: uint16(173), + 1871: uint16(1507), + 1872: uint16(193), + 1873: uint16(43), + 1874: uint16(91), + 1875: uint16(94), + 1876: uint16(178), + 1877: uint16(186), + 1878: uint16(467), + 1879: uint16(188), + 1880: uint16(468), + 1881: uint16(1422), + 1882: uint16(13), + 1883: uint16(189), + 1884: uint16(190), + 1885: uint16(191), + 1886: uint16(501), + 1887: uint16(451), + 1888: uint16(245), + 1889: uint16(108), + 1890: uint16(238), + 1891: uint16(401), + 1892: uint16(1428), + 1893: uint16(1427), + 1894: uint16(1430), + 1895: uint16(475), + 1896: uint16(404), + 1897: uint16(1496), + 1898: uint16(197), + 1899: uint16(565), + 1900: uint16(14), + 1901: uint16(490), + 1902: uint16(249), + 1903: uint16(101), + 1904: uint16(1518), + 1905: uint16(496), + 1906: uint16(349), + 1907: uint16(280), + 1908: uint16(251), + 1909: uint16(201), + 1910: uint16(353), + 1911: uint16(499), + 1912: uint16(252), + 1913: uint16(406), + 1914: uint16(1270), + 1915: uint16(253), + 1916: uint16(517), + 1917: uint16(1327), + 1918: uint16(1326), + 1919: uint16(435), + 1920: uint16(1325), + 1921: uint16(1318), + 1922: uint16(103), + 1923: uint16(893), + 1924: uint16(1296), + 1925: uint16(413), + 1926: uint16(227), + 1927: uint16(407), + 1928: uint16(1040), + 1929: uint16(1626), + 1930: uint16(319), + 1931: uint16(567), + 1932: uint16(1625), + 1933: uint16(1297), + 1934: uint16(119), + 1935: uint16(119), + 1936: uint16(439), + 1937: uint16(367), + 1938: uint16(1317), + 1939: uint16(1295), + 1940: uint16(1624), + 1941: uint16(526), + 1942: uint16(120), + 1943: uint16(440), + 1944: uint16(451), + 1945: uint16(577), + 1946: uint16(451), + 1947: uint16(1594), + 1948: uint16(309), + 1949: uint16(1028), + 1950: uint16(310), + 1951: uint16(373), + 1952: uint16(266), + 1953: uint16(267), + 1954: uint16(457), + 1955: uint16(1580), + 1956: uint16(1579), + 1957: uint16(443), + 1958: uint16(138), + 1959: uint16(1394), + 1960: uint16(552), + 1961: uint16(1393), + 1962: uint16(11), + 1963: uint16(1483), + 1964: uint16(384), + 1965: uint16(115), + 1966: uint16(317), + 1967: uint16(1350), + 1968: uint16(109), + 1969: uint16(536), + 1970: uint16(42), + 1971: uint16(579), + 1972: uint16(382), + 1973: uint16(214), + 1974: uint16(1349), + 1975: uint16(388), + 1976: uint16(1198), + 1977: uint16(389), + 1978: uint16(275), + 1979: uint16(277), + 1980: uint16(278), + 1981: uint16(1028), + 1982: uint16(1028), + 1983: uint16(1030), + 1984: uint16(1031), + 1985: uint16(35), + 1986: uint16(580), + 1987: uint16(1265), + 1988: uint16(414), + 1989: uint16(1260), + 1990: uint16(170), + 1991: uint16(415), + 1992: uint16(183), + 1993: uint16(1534), + 1994: uint16(1535), + 1995: uint16(1533), + 1996: uint16(171), + 1997: uint16(154), + 1998: uint16(307), + 1999: uint16(1532), + 2000: uint16(846), + 2001: uint16(223), + 2002: uint16(224), + 2003: uint16(88), + 2004: uint16(452), + 2005: uint16(215), + 2006: uint16(172), + 2007: uint16(321), + 2008: uint16(234), + 2009: uint16(1102), + 2010: uint16(152), + 2011: uint16(1188), + 2012: uint16(1100), + 2013: uint16(329), + 2014: uint16(185), + 2015: uint16(174), + 2016: uint16(1223), + 2017: uint16(925), + 2018: uint16(187), + 2019: uint16(241), + 2020: uint16(337), + 2021: uint16(244), + 2022: uint16(1116), + 2023: uint16(192), + 2024: uint16(175), + 2025: uint16(176), + 2026: uint16(424), + 2027: uint16(426), + 2028: uint16(97), + 2029: uint16(194), + 2030: uint16(98), + 2031: uint16(99), + 2032: uint16(100), + 2033: uint16(177), + 2034: uint16(1119), + 2035: uint16(1115), + 2036: uint16(246), + 2037: uint16(247), + 2038: uint16(161), + 2039: uint16(24), + 2040: uint16(248), + 2041: uint16(348), + 2042: uint16(1238), + 2043: uint16(264), + 2044: uint16(1108), + 2045: uint16(250), + 2046: uint16(495), + 2047: uint16(199), + 2048: uint16(198), + 2049: uint16(15), + 2050: uint16(861), + 2051: uint16(500), + 2052: uint16(369), + 2053: uint16(254), + 2054: uint16(504), + 2055: uint16(509), + 2056: uint16(512), + 2057: uint16(200), + 2058: uint16(102), + 2059: uint16(25), + 2060: uint16(179), + 2061: uint16(361), + 2062: uint16(26), + 2063: uint16(364), + 2064: uint16(104), + 2065: uint16(891), + 2066: uint16(308), + 2067: uint16(162), + 2068: uint16(105), + 2069: uint16(904), + 2070: uint16(520), + 2071: uint16(106), + 2072: uint16(1185), + 2073: uint16(1069), + 2074: uint16(1155), + 2075: uint16(17), + 2076: uint16(228), + 2077: uint16(27), + 2078: uint16(1154), + 2079: uint16(283), + 2080: uint16(285), + 2081: uint16(263), + 2082: uint16(978), + 2083: uint16(202), + 2084: uint16(972), + 2085: uint16(123), + 2086: uint16(28), + 2087: uint16(1175), + 2088: uint16(29), + 2089: uint16(30), + 2090: uint16(1179), + 2091: uint16(1171), + 2092: uint16(31), + 2093: uint16(1173), + 2094: uint16(1160), + 2095: uint16(41), + 2096: uint16(32), + 2097: uint16(206), + 2098: uint16(548), + 2099: uint16(33), + 2100: uint16(110), + 2101: uint16(1178), + 2102: uint16(1083), + 2103: uint16(8), + 2104: uint16(112), + 2105: uint16(1070), + 2106: uint16(113), + 2107: uint16(1068), + 2108: uint16(1072), + 2109: uint16(34), + 2110: uint16(1073), + 2111: uint16(560), + 2112: uint16(1125), + 2113: uint16(269), + 2114: uint16(1124), + 2115: uint16(270), + 2116: uint16(36), + 2117: uint16(18), + 2118: uint16(1194), + 2119: uint16(1033), + 2120: uint16(873), + 2121: uint16(151), + 2122: uint16(122), + 2123: uint16(37), + 2124: uint16(393), + 2125: uint16(271), + 2126: uint16(272), + 2127: uint16(572), + 2128: uint16(181), + 2129: uint16(1193), + 2130: uint16(1256), + 2131: uint16(1256), + 2132: uint16(1256), + 2133: uint16(935), + 2134: uint16(1256), + 2135: uint16(1256), + 2136: uint16(1256), + 2137: uint16(1256), + 2138: uint16(1256), + 2139: uint16(1256), + 2140: uint16(1256), + 2141: uint16(1617), +} +var _yy_lookahead = [2328]uint16{ + 0: uint16(194), + 1: uint16(276), + 2: uint16(277), + 3: uint16(278), + 4: uint16(216), + 5: uint16(194), + 6: uint16(194), + 7: uint16(217), + 8: uint16(194), + 9: uint16(194), + 10: uint16(194), + 11: uint16(194), + 12: uint16(224), + 13: uint16(194), + 14: uint16(194), + 15: uint16(276), + 16: uint16(277), + 17: uint16(278), + 18: uint16(204), 19: uint16(19), - 20: uint16(219), - 21: uint16(233), - 22: uint16(216), - 23: uint16(216), - 24: uint16(217), - 25: uint16(216), - 26: uint16(217), - 27: uint16(193), - 28: uint16(295), - 29: uint16(216), - 30: uint16(217), + 20: uint16(206), + 21: uint16(202), + 22: uint16(297), + 23: uint16(217), + 24: uint16(218), + 25: uint16(205), + 26: uint16(207), + 27: uint16(217), + 28: uint16(205), + 29: uint16(217), + 30: uint16(218), 31: uint16(31), - 32: uint16(193), - 33: uint16(216), + 32: uint16(217), + 33: uint16(218), 34: uint16(217), - 35: uint16(193), - 36: uint16(228), - 37: uint16(213), - 38: uint16(230), + 35: uint16(218), + 36: uint16(29), + 37: uint16(217), + 38: uint16(218), 39: uint16(39), - 40: uint16(206), - 41: uint16(216), - 42: uint16(217), + 40: uint16(33), + 41: uint16(217), + 42: uint16(220), 43: uint16(43), 44: uint16(44), 45: uint16(45), @@ -224238,31 +225680,31 @@ var _yy_lookahead = [2285]uint16{ 55: uint16(55), 56: uint16(56), 57: uint16(57), - 58: uint16(193), + 58: uint16(312), 59: uint16(19), - 60: uint16(185), - 61: uint16(186), - 62: uint16(187), - 63: uint16(188), - 64: uint16(189), - 65: uint16(190), - 66: uint16(253), - 67: uint16(274), - 68: uint16(275), - 69: uint16(276), - 70: uint16(195), - 71: uint16(193), - 72: uint16(197), - 73: uint16(193), - 74: uint16(261), - 75: uint16(274), - 76: uint16(275), - 77: uint16(276), - 78: uint16(253), - 79: uint16(204), - 80: uint16(238), - 81: uint16(204), - 82: uint16(81), + 60: uint16(240), + 61: uint16(241), + 62: uint16(316), + 63: uint16(240), + 64: uint16(241), + 65: uint16(194), + 66: uint16(46), + 67: uint16(47), + 68: uint16(48), + 69: uint16(49), + 70: uint16(22), + 71: uint16(254), + 72: uint16(65), + 73: uint16(253), + 74: uint16(254), + 75: uint16(255), + 76: uint16(253), + 77: uint16(194), + 78: uint16(255), + 79: uint16(194), + 80: uint16(263), + 81: uint16(258), + 82: uint16(259), 83: uint16(43), 84: uint16(44), 85: uint16(45), @@ -224278,10 +225720,10 @@ var _yy_lookahead = [2285]uint16{ 95: uint16(55), 96: uint16(56), 97: uint16(57), - 98: uint16(274), - 99: uint16(275), - 100: uint16(276), - 101: uint16(262), + 98: uint16(276), + 99: uint16(277), + 100: uint16(278), + 101: uint16(285), 102: uint16(102), 103: uint16(103), 104: uint16(104), @@ -224294,34 +225736,34 @@ var _yy_lookahead = [2285]uint16{ 111: uint16(111), 112: uint16(112), 113: uint16(113), - 114: uint16(239), - 115: uint16(240), - 116: uint16(239), - 117: uint16(240), - 118: uint16(210), - 119: uint16(211), - 120: uint16(212), - 121: uint16(314), - 122: uint16(315), - 123: uint16(314), - 124: uint16(59), - 125: uint16(316), + 114: uint16(59), + 115: uint16(186), + 116: uint16(187), + 117: uint16(188), + 118: uint16(189), + 119: uint16(190), + 120: uint16(191), + 121: uint16(310), + 122: uint16(239), + 123: uint16(317), + 124: uint16(318), + 125: uint16(196), 126: uint16(86), - 127: uint16(252), + 127: uint16(198), 128: uint16(88), - 129: uint16(252), + 129: uint16(317), 130: uint16(19), - 131: uint16(314), - 132: uint16(315), - 133: uint16(256), - 134: uint16(257), - 135: uint16(113), + 131: uint16(319), + 132: uint16(317), + 133: uint16(318), + 134: uint16(205), + 135: uint16(264), 136: uint16(25), - 137: uint16(72), - 138: uint16(296), - 139: uint16(138), - 140: uint16(139), - 141: uint16(266), + 137: uint16(211), + 138: uint16(212), + 139: uint16(213), + 140: uint16(205), + 141: uint16(121), 142: uint16(102), 143: uint16(103), 144: uint16(104), @@ -224349,50 +225791,50 @@ var _yy_lookahead = [2285]uint16{ 166: uint16(55), 167: uint16(56), 168: uint16(57), - 169: uint16(81), - 170: uint16(292), - 171: uint16(59), - 172: uint16(292), - 173: uint16(298), - 174: uint16(108), - 175: uint16(109), - 176: uint16(110), - 177: uint16(111), - 178: uint16(112), - 179: uint16(113), + 169: uint16(240), + 170: uint16(241), + 171: uint16(116), + 172: uint16(117), + 173: uint16(118), + 174: uint16(119), + 175: uint16(240), + 176: uint16(241), + 177: uint16(122), + 178: uint16(123), + 179: uint16(124), 180: uint16(69), - 181: uint16(116), - 182: uint16(117), - 183: uint16(118), - 184: uint16(72), + 181: uint16(298), + 182: uint16(253), + 183: uint16(194), + 184: uint16(255), 185: uint16(106), 186: uint16(107), - 187: uint16(193), - 188: uint16(111), - 189: uint16(112), - 190: uint16(113), + 187: uint16(132), + 188: uint16(253), + 189: uint16(141), + 190: uint16(255), 191: uint16(54), 192: uint16(55), 193: uint16(56), 194: uint16(57), 195: uint16(58), - 196: uint16(102), - 197: uint16(103), - 198: uint16(104), - 199: uint16(105), - 200: uint16(106), - 201: uint16(107), - 202: uint16(108), - 203: uint16(109), - 204: uint16(110), - 205: uint16(111), - 206: uint16(112), - 207: uint16(113), - 208: uint16(120), - 209: uint16(25), - 210: uint16(216), - 211: uint16(217), - 212: uint16(145), + 196: uint16(207), + 197: uint16(268), + 198: uint16(102), + 199: uint16(103), + 200: uint16(104), + 201: uint16(105), + 202: uint16(106), + 203: uint16(107), + 204: uint16(108), + 205: uint16(109), + 206: uint16(110), + 207: uint16(111), + 208: uint16(112), + 209: uint16(113), + 210: uint16(214), + 211: uint16(128), + 212: uint16(129), 213: uint16(102), 214: uint16(103), 215: uint16(104), @@ -224405,13 +225847,13 @@ var _yy_lookahead = [2285]uint16{ 222: uint16(111), 223: uint16(112), 224: uint16(113), - 225: uint16(231), - 226: uint16(138), - 227: uint16(139), - 228: uint16(116), - 229: uint16(117), - 230: uint16(118), - 231: uint16(164), + 225: uint16(134), + 226: uint16(25), + 227: uint16(136), + 228: uint16(137), + 229: uint16(300), + 230: uint16(165), + 231: uint16(166), 232: uint16(153), 233: uint16(19), 234: uint16(155), @@ -224431,12 +225873,12 @@ var _yy_lookahead = [2285]uint16{ 248: uint16(111), 249: uint16(112), 250: uint16(113), - 251: uint16(128), - 252: uint16(129), - 253: uint16(46), - 254: uint16(47), - 255: uint16(48), - 256: uint16(49), + 251: uint16(108), + 252: uint16(109), + 253: uint16(110), + 254: uint16(111), + 255: uint16(112), + 256: uint16(113), 257: uint16(43), 258: uint16(44), 259: uint16(45), @@ -224452,15 +225894,15 @@ var _yy_lookahead = [2285]uint16{ 269: uint16(55), 270: uint16(56), 271: uint16(57), - 272: uint16(216), - 273: uint16(193), - 274: uint16(25), - 275: uint16(59), - 276: uint16(193), + 272: uint16(276), + 273: uint16(277), + 274: uint16(278), + 275: uint16(113), + 276: uint16(194), 277: uint16(19), - 278: uint16(165), - 279: uint16(166), - 280: uint16(193), + 278: uint16(22), + 279: uint16(23), + 280: uint16(194), 281: uint16(67), 282: uint16(24), 283: uint16(102), @@ -224475,12 +225917,12 @@ var _yy_lookahead = [2285]uint16{ 292: uint16(111), 293: uint16(112), 294: uint16(113), - 295: uint16(73), - 296: uint16(216), - 297: uint16(217), - 298: uint16(59), - 299: uint16(216), - 300: uint16(217), + 295: uint16(220), + 296: uint16(250), + 297: uint16(59), + 298: uint16(252), + 299: uint16(217), + 300: uint16(218), 301: uint16(43), 302: uint16(44), 303: uint16(45), @@ -224508,38 +225950,38 @@ var _yy_lookahead = [2285]uint16{ 325: uint16(111), 326: uint16(112), 327: uint16(113), - 328: uint16(121), - 329: uint16(145), - 330: uint16(59), - 331: uint16(193), - 332: uint16(116), - 333: uint16(117), - 334: uint16(118), - 335: uint16(119), - 336: uint16(273), - 337: uint16(204), - 338: uint16(122), - 339: uint16(123), - 340: uint16(124), + 328: uint16(106), + 329: uint16(107), + 330: uint16(108), + 331: uint16(109), + 332: uint16(110), + 333: uint16(111), + 334: uint16(112), + 335: uint16(113), + 336: uint16(254), + 337: uint16(59), + 338: uint16(205), + 339: uint16(138), + 340: uint16(139), 341: uint16(19), 342: uint16(20), - 343: uint16(134), + 343: uint16(194), 344: uint16(22), - 345: uint16(136), - 346: uint16(137), - 347: uint16(19), - 348: uint16(132), - 349: uint16(127), - 350: uint16(128), - 351: uint16(129), - 352: uint16(24), - 353: uint16(22), - 354: uint16(23), - 355: uint16(116), - 356: uint16(117), - 357: uint16(118), + 345: uint16(263), + 346: uint16(22), + 347: uint16(23), + 348: uint16(231), + 349: uint16(25), + 350: uint16(72), + 351: uint16(276), + 352: uint16(277), + 353: uint16(278), + 354: uint16(116), + 355: uint16(117), + 356: uint16(118), + 357: uint16(101), 358: uint16(36), - 359: uint16(193), + 359: uint16(76), 360: uint16(102), 361: uint16(103), 362: uint16(104), @@ -224552,37 +225994,37 @@ var _yy_lookahead = [2285]uint16{ 369: uint16(111), 370: uint16(112), 371: uint16(113), - 372: uint16(239), + 372: uint16(89), 373: uint16(240), - 374: uint16(311), - 375: uint16(312), - 376: uint16(215), - 377: uint16(106), - 378: uint16(107), - 379: uint16(241), + 374: uint16(241), + 375: uint16(92), + 376: uint16(73), + 377: uint16(194), + 378: uint16(194), + 379: uint16(73), 380: uint16(19), 381: uint16(59), - 382: uint16(216), - 383: uint16(217), - 384: uint16(223), - 385: uint16(252), - 386: uint16(115), - 387: uint16(116), - 388: uint16(117), - 389: uint16(118), - 390: uint16(151), - 391: uint16(120), - 392: uint16(26), + 382: uint16(188), + 383: uint16(189), + 384: uint16(190), + 385: uint16(191), + 386: uint16(253), + 387: uint16(81), + 388: uint16(255), + 389: uint16(151), + 390: uint16(196), + 391: uint16(25), + 392: uint16(198), 393: uint16(71), - 394: uint16(193), - 395: uint16(308), - 396: uint16(309), - 397: uint16(193), - 398: uint16(149), - 399: uint16(128), - 400: uint16(313), - 401: uint16(216), - 402: uint16(269), + 394: uint16(116), + 395: uint16(117), + 396: uint16(118), + 397: uint16(311), + 398: uint16(312), + 399: uint16(205), + 400: uint16(217), + 401: uint16(218), + 402: uint16(316), 403: uint16(81), 404: uint16(43), 405: uint16(44), @@ -224599,50 +226041,50 @@ var _yy_lookahead = [2285]uint16{ 416: uint16(55), 417: uint16(56), 418: uint16(57), - 419: uint16(253), - 420: uint16(216), - 421: uint16(217), + 419: uint16(270), + 420: uint16(22), + 421: uint16(23), 422: uint16(100), - 423: uint16(95), - 424: uint16(153), - 425: uint16(59), - 426: uint16(155), - 427: uint16(261), + 423: uint16(25), + 424: uint16(59), + 425: uint16(101), + 426: uint16(138), + 427: uint16(139), 428: uint16(106), 429: uint16(107), - 430: uint16(25), - 431: uint16(193), - 432: uint16(101), - 433: uint16(193), - 434: uint16(193), - 435: uint16(231), + 430: uint16(127), + 431: uint16(128), + 432: uint16(129), + 433: uint16(127), + 434: uint16(240), + 435: uint16(241), 436: uint16(114), - 437: uint16(25), + 437: uint16(254), 438: uint16(116), 439: uint16(117), 440: uint16(118), - 441: uint16(113), - 442: uint16(304), + 441: uint16(76), + 442: uint16(76), 443: uint16(121), - 444: uint16(193), - 445: uint16(204), - 446: uint16(59), - 447: uint16(119), - 448: uint16(120), - 449: uint16(121), - 450: uint16(122), - 451: uint16(123), - 452: uint16(124), - 453: uint16(125), - 454: uint16(216), - 455: uint16(217), - 456: uint16(193), - 457: uint16(216), - 458: uint16(217), - 459: uint16(131), + 444: uint16(138), + 445: uint16(139), + 446: uint16(263), + 447: uint16(253), + 448: uint16(264), + 449: uint16(255), + 450: uint16(205), + 451: uint16(275), + 452: uint16(87), + 453: uint16(19), + 454: uint16(89), + 455: uint16(89), + 456: uint16(194), + 457: uint16(92), + 458: uint16(92), + 459: uint16(199), 460: uint16(138), 461: uint16(139), - 462: uint16(230), + 462: uint16(268), 463: uint16(102), 464: uint16(103), 465: uint16(104), @@ -224660,37 +226102,37 @@ var _yy_lookahead = [2285]uint16{ 477: uint16(155), 478: uint16(156), 479: uint16(157), - 480: uint16(239), - 481: uint16(240), - 482: uint16(116), - 483: uint16(117), - 484: uint16(118), - 485: uint16(76), - 486: uint16(193), - 487: uint16(23), + 480: uint16(81), + 481: uint16(116), + 482: uint16(117), + 483: uint16(118), + 484: uint16(129), + 485: uint16(240), + 486: uint16(241), + 487: uint16(224), 488: uint16(19), - 489: uint16(25), - 490: uint16(22), - 491: uint16(253), + 489: uint16(226), + 490: uint16(314), + 491: uint16(315), 492: uint16(23), - 493: uint16(252), - 494: uint16(253), - 495: uint16(108), - 496: uint16(87), - 497: uint16(204), - 498: uint16(89), - 499: uint16(261), - 500: uint16(198), - 501: uint16(92), - 502: uint16(261), - 503: uint16(116), - 504: uint16(117), - 505: uint16(118), - 506: uint16(193), - 507: uint16(306), - 508: uint16(307), - 509: uint16(216), - 510: uint16(217), + 493: uint16(25), + 494: uint16(300), + 495: uint16(59), + 496: uint16(22), + 497: uint16(234), + 498: uint16(253), + 499: uint16(101), + 500: uint16(255), + 501: uint16(236), + 502: uint16(237), + 503: uint16(26), + 504: uint16(194), + 505: uint16(183), + 506: uint16(194), + 507: uint16(152), + 508: uint16(72), + 509: uint16(22), + 510: uint16(145), 511: uint16(150), 512: uint16(43), 513: uint16(44), @@ -224707,34 +226149,34 @@ var _yy_lookahead = [2285]uint16{ 524: uint16(55), 525: uint16(56), 526: uint16(57), - 527: uint16(59), - 528: uint16(193), - 529: uint16(216), - 530: uint16(217), + 527: uint16(217), + 528: uint16(218), + 529: uint16(217), + 530: uint16(218), 531: uint16(19), - 532: uint16(239), - 533: uint16(240), - 534: uint16(283), + 532: uint16(189), + 533: uint16(59), + 534: uint16(191), 535: uint16(23), - 536: uint16(106), - 537: uint16(107), - 538: uint16(108), - 539: uint16(109), - 540: uint16(110), - 541: uint16(111), - 542: uint16(112), - 543: uint16(113), - 544: uint16(73), - 545: uint16(252), - 546: uint16(253), - 547: uint16(142), - 548: uint16(308), - 549: uint16(309), - 550: uint16(138), - 551: uint16(139), - 552: uint16(81), - 553: uint16(313), - 554: uint16(145), + 536: uint16(59), + 537: uint16(138), + 538: uint16(139), + 539: uint16(196), + 540: uint16(135), + 541: uint16(198), + 542: uint16(232), + 543: uint16(283), + 544: uint16(232), + 545: uint16(140), + 546: uint16(59), + 547: uint16(287), + 548: uint16(205), + 549: uint16(275), + 550: uint16(116), + 551: uint16(205), + 552: uint16(116), + 553: uint16(117), + 554: uint16(118), 555: uint16(43), 556: uint16(44), 557: uint16(45), @@ -224750,7 +226192,7 @@ var _yy_lookahead = [2285]uint16{ 567: uint16(55), 568: uint16(56), 569: uint16(57), - 570: uint16(307), + 570: uint16(194), 571: uint16(102), 572: uint16(103), 573: uint16(104), @@ -224763,37 +226205,37 @@ var _yy_lookahead = [2285]uint16{ 580: uint16(111), 581: uint16(112), 582: uint16(113), - 583: uint16(281), - 584: uint16(116), - 585: uint16(117), - 586: uint16(118), - 587: uint16(285), - 588: uint16(23), - 589: uint16(193), - 590: uint16(25), - 591: uint16(119), - 592: uint16(59), - 593: uint16(193), - 594: uint16(122), - 595: uint16(123), - 596: uint16(124), - 597: uint16(59), - 598: uint16(127), - 599: uint16(203), + 583: uint16(240), + 584: uint16(241), + 585: uint16(194), + 586: uint16(240), + 587: uint16(241), + 588: uint16(314), + 589: uint16(315), + 590: uint16(116), + 591: uint16(117), + 592: uint16(118), + 593: uint16(116), + 594: uint16(117), + 595: uint16(118), + 596: uint16(253), + 597: uint16(194), + 598: uint16(255), + 599: uint16(253), 600: uint16(59), - 601: uint16(205), + 601: uint16(255), 602: uint16(19), - 603: uint16(268), - 604: uint16(132), - 605: uint16(25), + 603: uint16(116), + 604: uint16(117), + 605: uint16(118), 606: uint16(23), 607: uint16(22), - 608: uint16(193), - 609: uint16(138), - 610: uint16(139), - 611: uint16(249), - 612: uint16(204), - 613: uint16(251), + 608: uint16(217), + 609: uint16(218), + 610: uint16(142), + 611: uint16(268), + 612: uint16(205), + 613: uint16(275), 614: uint16(102), 615: uint16(103), 616: uint16(104), @@ -224822,29 +226264,29 @@ var _yy_lookahead = [2285]uint16{ 639: uint16(56), 640: uint16(57), 641: uint16(19), - 642: uint16(22), - 643: uint16(23), + 642: uint16(194), + 643: uint16(300), 644: uint16(59), 645: uint16(23), - 646: uint16(25), - 647: uint16(239), - 648: uint16(240), - 649: uint16(116), - 650: uint16(117), - 651: uint16(118), - 652: uint16(193), - 653: uint16(11), - 654: uint16(116), - 655: uint16(117), - 656: uint16(118), - 657: uint16(116), + 646: uint16(119), + 647: uint16(240), + 648: uint16(241), + 649: uint16(122), + 650: uint16(123), + 651: uint16(124), + 652: uint16(314), + 653: uint16(315), + 654: uint16(194), + 655: uint16(236), + 656: uint16(237), + 657: uint16(194), 658: uint16(117), - 659: uint16(118), - 660: uint16(252), - 661: uint16(269), - 662: uint16(22), - 663: uint16(193), - 664: uint16(15), + 659: uint16(132), + 660: uint16(253), + 661: uint16(81), + 662: uint16(255), + 663: uint16(205), + 664: uint16(59), 665: uint16(43), 666: uint16(44), 667: uint16(45), @@ -224860,11 +226302,11 @@ var _yy_lookahead = [2285]uint16{ 677: uint16(55), 678: uint16(56), 679: uint16(57), - 680: uint16(273), - 681: uint16(143), - 682: uint16(193), - 683: uint16(118), - 684: uint16(143), + 680: uint16(217), + 681: uint16(218), + 682: uint16(194), + 683: uint16(194), + 684: uint16(194), 685: uint16(102), 686: uint16(103), 687: uint16(104), @@ -224877,33 +226319,33 @@ var _yy_lookahead = [2285]uint16{ 694: uint16(111), 695: uint16(112), 696: uint16(113), - 697: uint16(76), - 698: uint16(118), - 699: uint16(59), - 700: uint16(241), + 697: uint16(294), + 698: uint16(240), + 699: uint16(241), + 700: uint16(120), 701: uint16(116), 702: uint16(117), 703: uint16(118), - 704: uint16(304), - 705: uint16(216), + 704: uint16(59), + 705: uint16(194), 706: uint16(217), - 707: uint16(292), - 708: uint16(143), - 709: uint16(60), - 710: uint16(89), - 711: uint16(241), + 707: uint16(218), + 708: uint16(211), + 709: uint16(212), + 710: uint16(213), + 711: uint16(253), 712: uint16(19), - 713: uint16(92), - 714: uint16(193), - 715: uint16(193), + 713: uint16(255), + 714: uint16(194), + 715: uint16(19), 716: uint16(23), - 717: uint16(22), - 718: uint16(311), - 719: uint16(312), - 720: uint16(231), - 721: uint16(101), - 722: uint16(22), - 723: uint16(143), + 717: uint16(254), + 718: uint16(138), + 719: uint16(139), + 720: uint16(24), + 721: uint16(232), + 722: uint16(117), + 723: uint16(194), 724: uint16(102), 725: uint16(103), 726: uint16(104), @@ -224932,29 +226374,29 @@ var _yy_lookahead = [2285]uint16{ 749: uint16(56), 750: uint16(57), 751: uint16(19), - 752: uint16(193), - 753: uint16(193), - 754: uint16(59), + 752: uint16(264), + 753: uint16(108), + 754: uint16(76), 755: uint16(23), - 756: uint16(116), - 757: uint16(117), - 758: uint16(118), - 759: uint16(59), - 760: uint16(201), - 761: uint16(21), - 762: uint16(241), - 763: uint16(304), - 764: uint16(193), - 765: uint16(206), - 766: uint16(127), - 767: uint16(128), - 768: uint16(129), - 769: uint16(193), - 770: uint16(128), - 771: uint16(129), - 772: uint16(235), - 773: uint16(236), - 774: uint16(304), + 756: uint16(127), + 757: uint16(128), + 758: uint16(129), + 759: uint16(311), + 760: uint16(312), + 761: uint16(116), + 762: uint16(117), + 763: uint16(118), + 764: uint16(316), + 765: uint16(87), + 766: uint16(306), + 767: uint16(89), + 768: uint16(308), + 769: uint16(194), + 770: uint16(92), + 771: uint16(22), + 772: uint16(59), + 773: uint16(194), + 774: uint16(22), 775: uint16(43), 776: uint16(44), 777: uint16(45), @@ -224970,11 +226412,11 @@ var _yy_lookahead = [2285]uint16{ 787: uint16(55), 788: uint16(56), 789: uint16(57), - 790: uint16(22), - 791: uint16(193), - 792: uint16(216), - 793: uint16(217), - 794: uint16(193), + 790: uint16(194), + 791: uint16(95), + 792: uint16(217), + 793: uint16(218), + 794: uint16(265), 795: uint16(102), 796: uint16(103), 797: uint16(104), @@ -224987,33 +226429,33 @@ var _yy_lookahead = [2285]uint16{ 804: uint16(111), 805: uint16(112), 806: uint16(113), - 807: uint16(231), - 808: uint16(193), - 809: uint16(193), - 810: uint16(193), - 811: uint16(116), - 812: uint16(117), - 813: uint16(118), - 814: uint16(216), - 815: uint16(217), - 816: uint16(116), - 817: uint16(117), - 818: uint16(118), - 819: uint16(226), - 820: uint16(80), - 821: uint16(193), + 807: uint16(232), + 808: uint16(59), + 809: uint16(113), + 810: uint16(25), + 811: uint16(59), + 812: uint16(194), + 813: uint16(217), + 814: uint16(218), + 815: uint16(119), + 816: uint16(120), + 817: uint16(121), + 818: uint16(122), + 819: uint16(123), + 820: uint16(124), + 821: uint16(125), 822: uint16(19), - 823: uint16(235), - 824: uint16(236), - 825: uint16(304), + 823: uint16(145), + 824: uint16(194), + 825: uint16(194), 826: uint16(23), - 827: uint16(211), - 828: uint16(212), - 829: uint16(231), - 830: uint16(204), - 831: uint16(216), - 832: uint16(217), - 833: uint16(205), + 827: uint16(131), + 828: uint16(232), + 829: uint16(116), + 830: uint16(117), + 831: uint16(118), + 832: uint16(35), + 833: uint16(194), 834: uint16(102), 835: uint16(103), 836: uint16(104), @@ -225042,29 +226484,29 @@ var _yy_lookahead = [2285]uint16{ 859: uint16(56), 860: uint16(57), 861: uint16(19), - 862: uint16(193), - 863: uint16(123), - 864: uint16(76), - 865: uint16(239), - 866: uint16(240), - 867: uint16(193), - 868: uint16(253), - 869: uint16(239), - 870: uint16(240), - 871: uint16(239), - 872: uint16(240), - 873: uint16(244), - 874: uint16(106), - 875: uint16(107), - 876: uint16(193), - 877: uint16(89), - 878: uint16(252), - 879: uint16(193), - 880: uint16(92), - 881: uint16(59), - 882: uint16(252), - 883: uint16(254), - 884: uint16(252), + 862: uint16(194), + 863: uint16(66), + 864: uint16(194), + 865: uint16(116), + 866: uint16(117), + 867: uint16(118), + 868: uint16(116), + 869: uint16(117), + 870: uint16(118), + 871: uint16(74), + 872: uint16(242), + 873: uint16(294), + 874: uint16(194), + 875: uint16(194), + 876: uint16(206), + 877: uint16(23), + 878: uint16(194), + 879: uint16(25), + 880: uint16(194), + 881: uint16(111), + 882: uint16(112), + 883: uint16(113), + 884: uint16(25), 885: uint16(43), 886: uint16(44), 887: uint16(45), @@ -225080,11 +226522,11 @@ var _yy_lookahead = [2285]uint16{ 897: uint16(55), 898: uint16(56), 899: uint16(57), - 900: uint16(284), - 901: uint16(161), - 902: uint16(216), + 900: uint16(24), + 901: uint16(194), + 902: uint16(194), 903: uint16(217), - 904: uint16(193), + 904: uint16(218), 905: uint16(102), 906: uint16(103), 907: uint16(104), @@ -225097,33 +226539,33 @@ var _yy_lookahead = [2285]uint16{ 914: uint16(111), 915: uint16(112), 916: uint16(113), - 917: uint16(231), - 918: uint16(193), - 919: uint16(244), - 920: uint16(187), - 921: uint16(188), - 922: uint16(189), - 923: uint16(190), - 924: uint16(7), - 925: uint16(8), - 926: uint16(9), - 927: uint16(309), - 928: uint16(195), - 929: uint16(254), - 930: uint16(197), - 931: uint16(313), + 917: uint16(241), + 918: uint16(232), + 919: uint16(194), + 920: uint16(212), + 921: uint16(213), + 922: uint16(242), + 923: uint16(242), + 924: uint16(217), + 925: uint16(218), + 926: uint16(242), + 927: uint16(130), + 928: uint16(11), + 929: uint16(253), + 930: uint16(194), + 931: uint16(255), 932: uint16(19), - 933: uint16(127), - 934: uint16(128), - 935: uint16(129), - 936: uint16(262), - 937: uint16(204), - 938: uint16(22), - 939: uint16(117), - 940: uint16(24), - 941: uint16(216), + 933: uint16(265), + 934: uint16(149), + 935: uint16(59), + 936: uint16(306), + 937: uint16(194), + 938: uint16(308), + 939: uint16(232), + 940: uint16(309), + 941: uint16(310), 942: uint16(217), - 943: uint16(273), + 943: uint16(218), 944: uint16(102), 945: uint16(103), 946: uint16(104), @@ -225151,36 +226593,36 @@ var _yy_lookahead = [2285]uint16{ 968: uint16(55), 969: uint16(56), 970: uint16(57), - 971: uint16(193), - 972: uint16(239), - 973: uint16(240), - 974: uint16(193), - 975: uint16(59), + 971: uint16(194), + 972: uint16(194), + 973: uint16(59), + 974: uint16(194), + 975: uint16(239), 976: uint16(19), - 977: uint16(188), - 978: uint16(253), - 979: uint16(190), - 980: uint16(193), - 981: uint16(311), - 982: uint16(312), - 983: uint16(16), - 984: uint16(195), - 985: uint16(252), - 986: uint16(197), - 987: uint16(193), - 988: uint16(19), - 989: uint16(301), - 990: uint16(302), - 991: uint16(135), - 992: uint16(193), - 993: uint16(204), - 994: uint16(216), + 977: uint16(194), + 978: uint16(25), + 979: uint16(254), + 980: uint16(303), + 981: uint16(304), + 982: uint16(23), + 983: uint16(194), + 984: uint16(25), + 985: uint16(126), + 986: uint16(306), + 987: uint16(306), + 988: uint16(308), + 989: uint16(308), + 990: uint16(306), + 991: uint16(271), + 992: uint16(308), + 993: uint16(117), + 994: uint16(286), 995: uint16(217), - 996: uint16(140), - 997: uint16(216), - 998: uint16(217), - 999: uint16(266), - 1000: uint16(204), + 996: uint16(218), + 997: uint16(217), + 998: uint16(218), + 999: uint16(194), + 1000: uint16(194), 1001: uint16(159), 1002: uint16(45), 1003: uint16(46), @@ -225207,38 +226649,38 @@ var _yy_lookahead = [2285]uint16{ 1024: uint16(111), 1025: uint16(112), 1026: uint16(113), - 1027: uint16(12), + 1027: uint16(59), 1028: uint16(239), - 1029: uint16(240), - 1030: uint16(193), - 1031: uint16(298), - 1032: uint16(238), - 1033: uint16(117), - 1034: uint16(253), - 1035: uint16(239), + 1029: uint16(194), + 1030: uint16(116), + 1031: uint16(117), + 1032: uint16(118), + 1033: uint16(260), + 1034: uint16(254), + 1035: uint16(194), 1036: uint16(240), - 1037: uint16(238), - 1038: uint16(259), - 1039: uint16(260), - 1040: uint16(193), - 1041: uint16(252), - 1042: uint16(27), - 1043: uint16(193), - 1044: uint16(77), - 1045: uint16(193), - 1046: uint16(79), - 1047: uint16(204), - 1048: uint16(252), - 1049: uint16(262), - 1050: uint16(193), - 1051: uint16(299), - 1052: uint16(300), - 1053: uint16(193), - 1054: uint16(100), - 1055: uint16(266), - 1056: uint16(278), - 1057: uint16(42), - 1058: uint16(204), + 1037: uint16(241), + 1038: uint16(194), + 1039: uint16(233), + 1040: uint16(205), + 1041: uint16(240), + 1042: uint16(241), + 1043: uint16(205), + 1044: uint16(239), + 1045: uint16(128), + 1046: uint16(129), + 1047: uint16(270), + 1048: uint16(265), + 1049: uint16(253), + 1050: uint16(194), + 1051: uint16(255), + 1052: uint16(217), + 1053: uint16(218), + 1054: uint16(253), + 1055: uint16(194), + 1056: uint16(255), + 1057: uint16(143), + 1058: uint16(280), 1059: uint16(102), 1060: uint16(103), 1061: uint16(104), @@ -225251,51 +226693,51 @@ var _yy_lookahead = [2285]uint16{ 1068: uint16(111), 1069: uint16(112), 1070: uint16(113), - 1071: uint16(117), + 1071: uint16(118), 1072: uint16(159), - 1073: uint16(216), - 1074: uint16(217), - 1075: uint16(121), - 1076: uint16(216), - 1077: uint16(217), - 1078: uint16(63), - 1079: uint16(193), - 1080: uint16(193), - 1081: uint16(193), - 1082: uint16(239), - 1083: uint16(240), - 1084: uint16(115), - 1085: uint16(116), - 1086: uint16(193), - 1087: uint16(298), - 1088: uint16(73), - 1089: uint16(240), - 1090: uint16(238), - 1091: uint16(231), + 1073: uint16(217), + 1074: uint16(218), + 1075: uint16(240), + 1076: uint16(241), + 1077: uint16(118), + 1078: uint16(240), + 1079: uint16(241), + 1080: uint16(194), + 1081: uint16(194), + 1082: uint16(194), + 1083: uint16(239), + 1084: uint16(116), + 1085: uint16(117), + 1086: uint16(118), + 1087: uint16(22), + 1088: uint16(253), + 1089: uint16(254), + 1090: uint16(255), + 1091: uint16(253), 1092: uint16(19), - 1093: uint16(239), - 1094: uint16(240), - 1095: uint16(252), - 1096: uint16(22), + 1093: uint16(255), + 1094: uint16(233), + 1095: uint16(194), + 1096: uint16(143), 1097: uint16(24), - 1098: uint16(211), + 1098: uint16(263), 1099: uint16(212), - 1100: uint16(263), - 1101: uint16(252), - 1102: uint16(216), + 1100: uint16(213), + 1101: uint16(194), + 1102: uint16(143), 1103: uint16(217), - 1104: uint16(216), + 1104: uint16(218), 1105: uint16(217), - 1106: uint16(252), - 1107: uint16(153), - 1108: uint16(154), - 1109: uint16(155), - 1110: uint16(253), - 1111: uint16(193), + 1106: uint16(218), + 1107: uint16(261), + 1108: uint16(262), + 1109: uint16(271), + 1110: uint16(254), + 1111: uint16(143), 1112: uint16(19), - 1113: uint16(144), - 1114: uint16(213), - 1115: uint16(268), + 1113: uint16(7), + 1114: uint16(8), + 1115: uint16(9), 1116: uint16(43), 1117: uint16(44), 1118: uint16(45), @@ -225311,11 +226753,11 @@ var _yy_lookahead = [2285]uint16{ 1128: uint16(55), 1129: uint16(56), 1130: uint16(57), - 1131: uint16(193), + 1131: uint16(16), 1132: uint16(19), - 1133: uint16(59), - 1134: uint16(216), - 1135: uint16(217), + 1133: uint16(22), + 1134: uint16(23), + 1135: uint16(294), 1136: uint16(43), 1137: uint16(44), 1138: uint16(45), @@ -225331,11 +226773,11 @@ var _yy_lookahead = [2285]uint16{ 1148: uint16(55), 1149: uint16(56), 1150: uint16(57), - 1151: uint16(193), - 1152: uint16(19), - 1153: uint16(24), - 1154: uint16(216), - 1155: uint16(217), + 1151: uint16(312), + 1152: uint16(194), + 1153: uint16(214), + 1154: uint16(21), + 1155: uint16(316), 1156: uint16(43), 1157: uint16(44), 1158: uint16(45), @@ -225351,10 +226793,10 @@ var _yy_lookahead = [2285]uint16{ 1168: uint16(55), 1169: uint16(56), 1170: uint16(57), - 1171: uint16(284), - 1172: uint16(193), - 1173: uint16(208), - 1174: uint16(209), + 1171: uint16(106), + 1172: uint16(107), + 1173: uint16(286), + 1174: uint16(194), 1175: uint16(102), 1176: uint16(103), 1177: uint16(104), @@ -225367,14 +226809,14 @@ var _yy_lookahead = [2285]uint16{ 1184: uint16(111), 1185: uint16(112), 1186: uint16(113), - 1187: uint16(286), - 1188: uint16(59), - 1189: uint16(193), - 1190: uint16(232), - 1191: uint16(117), - 1192: uint16(291), - 1193: uint16(193), - 1194: uint16(193), + 1187: uint16(207), + 1188: uint16(158), + 1189: uint16(59), + 1190: uint16(160), + 1191: uint16(22), + 1192: uint16(77), + 1193: uint16(24), + 1194: uint16(79), 1195: uint16(102), 1196: uint16(103), 1197: uint16(104), @@ -225387,14 +226829,14 @@ var _yy_lookahead = [2285]uint16{ 1204: uint16(111), 1205: uint16(112), 1206: uint16(113), - 1207: uint16(193), - 1208: uint16(204), - 1209: uint16(22), - 1210: uint16(23), - 1211: uint16(193), - 1212: uint16(25), - 1213: uint16(66), - 1214: uint16(193), + 1207: uint16(194), + 1208: uint16(194), + 1209: uint16(229), + 1210: uint16(194), + 1211: uint16(231), + 1212: uint16(101), + 1213: uint16(80), + 1214: uint16(22), 1215: uint16(102), 1216: uint16(103), 1217: uint16(104), @@ -225407,39 +226849,39 @@ var _yy_lookahead = [2285]uint16{ 1224: uint16(111), 1225: uint16(112), 1226: uint16(113), - 1227: uint16(193), - 1228: uint16(193), - 1229: uint16(193), - 1230: uint16(216), - 1231: uint16(217), - 1232: uint16(85), - 1233: uint16(193), - 1234: uint16(238), + 1227: uint16(288), + 1228: uint16(59), + 1229: uint16(12), + 1230: uint16(217), + 1231: uint16(218), + 1232: uint16(293), + 1233: uint16(217), + 1234: uint16(218), 1235: uint16(19), - 1236: uint16(16), - 1237: uint16(216), - 1238: uint16(217), - 1239: uint16(238), - 1240: uint16(193), - 1241: uint16(94), - 1242: uint16(193), - 1243: uint16(239), - 1244: uint16(240), - 1245: uint16(231), - 1246: uint16(117), - 1247: uint16(268), - 1248: uint16(35), - 1249: uint16(116), - 1250: uint16(216), - 1251: uint16(217), - 1252: uint16(216), - 1253: uint16(217), - 1254: uint16(22), - 1255: uint16(23), - 1256: uint16(252), - 1257: uint16(25), - 1258: uint16(208), - 1259: uint16(209), + 1236: uint16(106), + 1237: uint16(107), + 1238: uint16(59), + 1239: uint16(19), + 1240: uint16(16), + 1241: uint16(127), + 1242: uint16(128), + 1243: uint16(129), + 1244: uint16(27), + 1245: uint16(115), + 1246: uint16(116), + 1247: uint16(117), + 1248: uint16(118), + 1249: uint16(194), + 1250: uint16(120), + 1251: uint16(59), + 1252: uint16(22), + 1253: uint16(194), + 1254: uint16(24), + 1255: uint16(194), + 1256: uint16(123), + 1257: uint16(100), + 1258: uint16(128), + 1259: uint16(42), 1260: uint16(44), 1261: uint16(45), 1262: uint16(46), @@ -225454,50 +226896,50 @@ var _yy_lookahead = [2285]uint16{ 1271: uint16(55), 1272: uint16(56), 1273: uint16(57), - 1274: uint16(193), - 1275: uint16(193), - 1276: uint16(19), - 1277: uint16(5), - 1278: uint16(59), - 1279: uint16(66), - 1280: uint16(193), - 1281: uint16(263), - 1282: uint16(10), - 1283: uint16(11), - 1284: uint16(12), - 1285: uint16(13), - 1286: uint16(14), - 1287: uint16(74), - 1288: uint16(101), - 1289: uint16(17), - 1290: uint16(193), - 1291: uint16(46), - 1292: uint16(193), - 1293: uint16(146), - 1294: uint16(193), - 1295: uint16(76), - 1296: uint16(213), - 1297: uint16(77), - 1298: uint16(263), - 1299: uint16(79), - 1300: uint16(12), - 1301: uint16(260), - 1302: uint16(30), - 1303: uint16(46), - 1304: uint16(32), - 1305: uint16(264), - 1306: uint16(87), - 1307: uint16(193), - 1308: uint16(89), - 1309: uint16(29), - 1310: uint16(263), - 1311: uint16(92), - 1312: uint16(40), - 1313: uint16(33), - 1314: uint16(232), - 1315: uint16(27), - 1316: uint16(193), - 1317: uint16(108), + 1274: uint16(117), + 1275: uint16(194), + 1276: uint16(217), + 1277: uint16(218), + 1278: uint16(121), + 1279: uint16(100), + 1280: uint16(63), + 1281: uint16(194), + 1282: uint16(245), + 1283: uint16(153), + 1284: uint16(194), + 1285: uint16(155), + 1286: uint16(117), + 1287: uint16(19), + 1288: uint16(115), + 1289: uint16(194), + 1290: uint16(73), + 1291: uint16(214), + 1292: uint16(194), + 1293: uint16(256), + 1294: uint16(161), + 1295: uint16(116), + 1296: uint16(117), + 1297: uint16(194), + 1298: uint16(217), + 1299: uint16(218), + 1300: uint16(121), + 1301: uint16(77), + 1302: uint16(194), + 1303: uint16(79), + 1304: uint16(217), + 1305: uint16(218), + 1306: uint16(194), + 1307: uint16(217), + 1308: uint16(218), + 1309: uint16(117), + 1310: uint16(153), + 1311: uint16(154), + 1312: uint16(155), + 1313: uint16(254), + 1314: uint16(46), + 1315: uint16(217), + 1316: uint16(218), + 1317: uint16(144), 1318: uint16(102), 1319: uint16(103), 1320: uint16(104), @@ -225510,1025 +226952,1068 @@ var _yy_lookahead = [2285]uint16{ 1327: uint16(111), 1328: uint16(112), 1329: uint16(113), - 1330: uint16(42), - 1331: uint16(138), - 1332: uint16(139), - 1333: uint16(101), - 1334: uint16(193), - 1335: uint16(116), - 1336: uint16(117), - 1337: uint16(118), + 1330: uint16(232), + 1331: uint16(270), + 1332: uint16(153), + 1333: uint16(154), + 1334: uint16(155), + 1335: uint16(115), + 1336: uint16(116), + 1337: uint16(66), 1338: uint16(19), 1339: uint16(20), - 1340: uint16(255), + 1340: uint16(183), 1341: uint16(22), - 1342: uint16(70), - 1343: uint16(130), - 1344: uint16(135), - 1345: uint16(65), - 1346: uint16(256), - 1347: uint16(257), - 1348: uint16(193), - 1349: uint16(140), - 1350: uint16(78), - 1351: uint16(63), - 1352: uint16(193), - 1353: uint16(81), - 1354: uint16(193), + 1342: uint16(12), + 1343: uint16(312), + 1344: uint16(254), + 1345: uint16(194), + 1346: uint16(262), + 1347: uint16(316), + 1348: uint16(209), + 1349: uint16(210), + 1350: uint16(266), + 1351: uint16(239), + 1352: uint16(194), + 1353: uint16(194), + 1354: uint16(108), 1355: uint16(36), - 1356: uint16(193), - 1357: uint16(216), - 1358: uint16(217), - 1359: uint16(193), - 1360: uint16(115), - 1361: uint16(193), - 1362: uint16(263), - 1363: uint16(193), - 1364: uint16(145), - 1365: uint16(268), - 1366: uint16(59), + 1356: uint16(85), + 1357: uint16(27), + 1358: uint16(19), + 1359: uint16(20), + 1360: uint16(265), + 1361: uint16(22), + 1362: uint16(183), + 1363: uint16(245), + 1364: uint16(144), + 1365: uint16(94), + 1366: uint16(25), 1367: uint16(48), - 1368: uint16(193), - 1369: uint16(193), - 1370: uint16(98), - 1371: uint16(193), - 1372: uint16(115), - 1373: uint16(193), - 1374: uint16(291), - 1375: uint16(216), + 1368: uint16(217), + 1369: uint16(218), + 1370: uint16(293), + 1371: uint16(194), + 1372: uint16(42), + 1373: uint16(270), + 1374: uint16(256), + 1375: uint16(36), 1376: uint16(217), - 1377: uint16(193), + 1377: uint16(218), 1378: uint16(59), - 1379: uint16(216), - 1380: uint16(217), - 1381: uint16(161), - 1382: uint16(216), - 1383: uint16(217), - 1384: uint16(216), - 1385: uint16(217), - 1386: uint16(216), - 1387: uint16(217), - 1388: uint16(131), - 1389: uint16(193), + 1379: uint16(194), + 1380: uint16(25), + 1381: uint16(135), + 1382: uint16(194), + 1383: uint16(115), + 1384: uint16(194), + 1385: uint16(161), + 1386: uint16(140), + 1387: uint16(194), + 1388: uint16(194), + 1389: uint16(15), 1390: uint16(71), - 1391: uint16(193), - 1392: uint16(216), - 1393: uint16(217), - 1394: uint16(216), - 1395: uint16(217), - 1396: uint16(216), - 1397: uint16(217), - 1398: uint16(193), - 1399: uint16(260), - 1400: uint16(216), - 1401: uint16(217), - 1402: uint16(19), - 1403: uint16(264), + 1391: uint16(194), + 1392: uint16(312), + 1393: uint16(63), + 1394: uint16(217), + 1395: uint16(218), + 1396: uint16(316), + 1397: uint16(194), + 1398: uint16(59), + 1399: uint16(131), + 1400: uint16(301), + 1401: uint16(302), + 1402: uint16(217), + 1403: uint16(218), 1404: uint16(85), - 1405: uint16(133), - 1406: uint16(244), - 1407: uint16(100), - 1408: uint16(193), + 1405: uint16(217), + 1406: uint16(218), + 1407: uint16(217), + 1408: uint16(218), 1409: uint16(90), - 1410: uint16(138), - 1411: uint16(139), - 1412: uint16(216), - 1413: uint16(217), - 1414: uint16(216), - 1415: uint16(217), - 1416: uint16(254), - 1417: uint16(244), - 1418: uint16(193), + 1410: uint16(71), + 1411: uint16(217), + 1412: uint16(218), + 1413: uint16(19), + 1414: uint16(217), + 1415: uint16(218), + 1416: uint16(245), + 1417: uint16(146), + 1418: uint16(262), 1419: uint16(100), - 1420: uint16(193), - 1421: uint16(216), - 1422: uint16(217), - 1423: uint16(116), - 1424: uint16(117), + 1420: uint16(217), + 1421: uint16(218), + 1422: uint16(266), + 1423: uint16(265), + 1424: uint16(85), 1425: uint16(106), 1426: uint16(107), - 1427: uint16(254), - 1428: uint16(121), - 1429: uint16(193), - 1430: uint16(115), - 1431: uint16(216), - 1432: uint16(217), + 1427: uint16(256), + 1428: uint16(312), + 1429: uint16(90), + 1430: uint16(209), + 1431: uint16(210), + 1432: uint16(316), 1433: uint16(114), - 1434: uint16(162), + 1434: uint16(60), 1435: uint16(116), 1436: uint16(117), 1437: uint16(118), - 1438: uint16(115), - 1439: uint16(244), + 1438: uint16(194), + 1439: uint16(100), 1440: uint16(121), - 1441: uint16(216), - 1442: uint16(217), - 1443: uint16(216), - 1444: uint16(217), - 1445: uint16(193), - 1446: uint16(309), - 1447: uint16(193), - 1448: uint16(31), - 1449: uint16(254), - 1450: uint16(313), - 1451: uint16(309), - 1452: uint16(216), - 1453: uint16(217), - 1454: uint16(309), - 1455: uint16(313), - 1456: uint16(39), - 1457: uint16(193), - 1458: uint16(313), - 1459: uint16(309), - 1460: uint16(153), - 1461: uint16(154), - 1462: uint16(155), - 1463: uint16(313), - 1464: uint16(193), - 1465: uint16(150), - 1466: uint16(25), - 1467: uint16(144), - 1468: uint16(216), - 1469: uint16(217), - 1470: uint16(216), - 1471: uint16(217), + 1441: uint16(194), + 1442: uint16(194), + 1443: uint16(145), + 1444: uint16(115), + 1445: uint16(106), + 1446: uint16(107), + 1447: uint16(19), + 1448: uint16(46), + 1449: uint16(19), + 1450: uint16(20), + 1451: uint16(24), + 1452: uint16(22), + 1453: uint16(114), + 1454: uint16(194), + 1455: uint16(116), + 1456: uint16(117), + 1457: uint16(118), + 1458: uint16(194), + 1459: uint16(245), + 1460: uint16(121), + 1461: uint16(194), + 1462: uint16(164), + 1463: uint16(194), + 1464: uint16(217), + 1465: uint16(218), + 1466: uint16(36), + 1467: uint16(194), + 1468: uint16(258), + 1469: uint16(259), + 1470: uint16(256), + 1471: uint16(194), 1472: uint16(153), 1473: uint16(154), 1474: uint16(155), 1475: uint16(156), 1476: uint16(157), - 1478: uint16(1), - 1479: uint16(2), - 1480: uint16(216), + 1477: uint16(217), + 1478: uint16(218), + 1479: uint16(150), + 1480: uint16(31), 1481: uint16(217), - 1482: uint16(5), - 1483: uint16(149), - 1484: uint16(150), - 1485: uint16(22), - 1486: uint16(193), - 1487: uint16(10), - 1488: uint16(11), - 1489: uint16(12), - 1490: uint16(13), - 1491: uint16(14), - 1492: uint16(193), - 1493: uint16(158), - 1494: uint16(17), - 1495: uint16(160), - 1496: uint16(193), - 1497: uint16(19), - 1498: uint16(20), - 1499: uint16(116), - 1500: uint16(22), - 1501: uint16(25), - 1502: uint16(193), - 1503: uint16(24), - 1504: uint16(22), - 1505: uint16(193), - 1506: uint16(24), - 1507: uint16(30), - 1508: uint16(226), - 1509: uint16(32), - 1510: uint16(19), - 1511: uint16(20), - 1512: uint16(226), - 1513: uint16(22), - 1514: uint16(36), - 1515: uint16(193), - 1516: uint16(53), - 1517: uint16(40), - 1518: uint16(193), - 1519: uint16(216), - 1520: uint16(217), - 1521: uint16(193), - 1522: uint16(23), - 1523: uint16(193), - 1524: uint16(25), - 1525: uint16(216), - 1526: uint16(217), - 1527: uint16(36), - 1528: uint16(216), - 1529: uint16(217), - 1530: uint16(193), - 1531: uint16(99), - 1532: uint16(193), - 1533: uint16(193), - 1534: uint16(22), - 1535: uint16(193), - 1536: uint16(193), - 1537: uint16(59), - 1538: uint16(216), + 1482: uint16(218), + 1483: uint16(142), + 1484: uint16(217), + 1485: uint16(218), + 1486: uint16(217), + 1487: uint16(218), + 1488: uint16(39), + 1489: uint16(59), + 1490: uint16(217), + 1491: uint16(218), + 1492: uint16(153), + 1493: uint16(154), + 1494: uint16(155), + 1495: uint16(156), + 1496: uint16(157), + 1497: uint16(149), + 1498: uint16(150), + 1499: uint16(5), + 1500: uint16(145), + 1501: uint16(71), + 1502: uint16(183), + 1503: uint16(245), + 1504: uint16(10), + 1505: uint16(11), + 1506: uint16(12), + 1507: uint16(13), + 1508: uint16(14), + 1509: uint16(194), + 1510: uint16(116), + 1511: uint16(17), + 1512: uint16(129), + 1513: uint16(227), + 1514: uint16(256), + 1515: uint16(85), + 1516: uint16(194), + 1517: uint16(115), + 1518: uint16(194), + 1519: uint16(23), + 1520: uint16(90), + 1521: uint16(25), + 1522: uint16(183), + 1523: uint16(99), + 1524: uint16(30), + 1525: uint16(97), + 1526: uint16(32), + 1527: uint16(22), + 1528: uint16(22), + 1529: uint16(194), + 1530: uint16(100), + 1531: uint16(194), + 1532: uint16(217), + 1533: uint16(218), + 1534: uint16(40), + 1535: uint16(152), + 1536: uint16(106), + 1537: uint16(107), + 1538: uint16(23), 1539: uint16(217), - 1540: uint16(193), - 1541: uint16(216), - 1542: uint16(217), - 1543: uint16(193), - 1544: uint16(216), - 1545: uint16(217), - 1546: uint16(193), - 1547: uint16(70), - 1548: uint16(129), - 1549: uint16(71), - 1550: uint16(59), - 1551: uint16(129), - 1552: uint16(193), - 1553: uint16(216), + 1540: uint16(218), + 1541: uint16(194), + 1542: uint16(19), + 1543: uint16(20), + 1544: uint16(114), + 1545: uint16(22), + 1546: uint16(116), + 1547: uint16(117), + 1548: uint16(118), + 1549: uint16(257), + 1550: uint16(194), + 1551: uint16(121), + 1552: uint16(217), + 1553: uint16(218), 1554: uint16(217), - 1555: uint16(78), - 1556: uint16(216), - 1557: uint16(217), - 1558: uint16(81), - 1559: uint16(216), - 1560: uint16(217), - 1561: uint16(193), - 1562: uint16(71), - 1563: uint16(85), - 1564: uint16(193), - 1565: uint16(133), - 1566: uint16(193), - 1567: uint16(126), - 1568: uint16(90), - 1569: uint16(216), - 1570: uint16(217), - 1571: uint16(152), - 1572: uint16(258), - 1573: uint16(61), - 1574: uint16(152), - 1575: uint16(98), - 1576: uint16(85), - 1577: uint16(193), - 1578: uint16(100), - 1579: uint16(193), - 1580: uint16(23), - 1581: uint16(90), - 1582: uint16(25), - 1583: uint16(121), - 1584: uint16(106), - 1585: uint16(107), - 1586: uint16(23), - 1587: uint16(216), - 1588: uint16(217), - 1589: uint16(216), - 1590: uint16(217), - 1591: uint16(100), - 1592: uint16(114), - 1593: uint16(131), - 1594: uint16(116), - 1595: uint16(117), - 1596: uint16(118), - 1597: uint16(106), - 1598: uint16(107), - 1599: uint16(121), - 1600: uint16(216), - 1601: uint16(217), - 1602: uint16(216), - 1603: uint16(217), - 1604: uint16(193), - 1605: uint16(114), - 1606: uint16(193), - 1607: uint16(116), - 1608: uint16(117), - 1609: uint16(118), - 1610: uint16(133), - 1611: uint16(22), - 1612: uint16(121), - 1613: uint16(193), - 1614: uint16(59), - 1615: uint16(138), - 1616: uint16(139), - 1617: uint16(193), - 1618: uint16(142), - 1619: uint16(193), - 1620: uint16(141), - 1621: uint16(23), - 1622: uint16(23), - 1623: uint16(25), - 1624: uint16(25), - 1625: uint16(120), - 1626: uint16(121), - 1627: uint16(216), - 1628: uint16(217), - 1629: uint16(216), - 1630: uint16(217), - 1631: uint16(153), - 1632: uint16(154), - 1633: uint16(155), - 1634: uint16(156), - 1635: uint16(157), - 1636: uint16(216), - 1637: uint16(217), - 1638: uint16(19), - 1639: uint16(162), - 1640: uint16(216), - 1641: uint16(217), - 1642: uint16(216), - 1643: uint16(217), - 1644: uint16(153), - 1645: uint16(154), - 1646: uint16(155), - 1647: uint16(156), - 1648: uint16(157), - 1649: uint16(1), - 1650: uint16(2), - 1651: uint16(193), - 1652: uint16(59), - 1653: uint16(5), - 1654: uint16(19), - 1655: uint16(20), - 1656: uint16(318), - 1657: uint16(22), - 1658: uint16(10), - 1659: uint16(11), - 1660: uint16(12), - 1661: uint16(13), - 1662: uint16(14), - 1663: uint16(193), - 1664: uint16(59), - 1665: uint16(17), - 1666: uint16(193), - 1667: uint16(23), - 1668: uint16(23), - 1669: uint16(25), - 1670: uint16(25), - 1671: uint16(36), - 1672: uint16(117), - 1673: uint16(193), - 1674: uint16(216), - 1675: uint16(217), - 1676: uint16(193), - 1677: uint16(23), - 1678: uint16(30), - 1679: uint16(25), - 1680: uint16(32), - 1681: uint16(19), - 1682: uint16(20), - 1683: uint16(23), - 1684: uint16(22), - 1685: uint16(25), - 1686: uint16(216), - 1687: uint16(217), - 1688: uint16(40), - 1689: uint16(216), + 1555: uint16(218), + 1556: uint16(194), + 1557: uint16(133), + 1558: uint16(53), + 1559: uint16(36), + 1560: uint16(23), + 1561: uint16(23), + 1562: uint16(25), + 1563: uint16(25), + 1564: uint16(70), + 1565: uint16(120), + 1566: uint16(121), + 1567: uint16(61), + 1568: uint16(141), + 1569: uint16(7), + 1570: uint16(8), + 1571: uint16(121), + 1572: uint16(78), + 1573: uint16(217), + 1574: uint16(218), + 1575: uint16(81), + 1576: uint16(23), + 1577: uint16(227), + 1578: uint16(25), + 1579: uint16(217), + 1580: uint16(218), + 1581: uint16(131), + 1582: uint16(59), + 1583: uint16(153), + 1584: uint16(154), + 1585: uint16(155), + 1586: uint16(156), + 1587: uint16(157), + 1589: uint16(1), + 1590: uint16(2), + 1591: uint16(59), + 1592: uint16(98), + 1593: uint16(5), + 1594: uint16(71), + 1595: uint16(23), + 1596: uint16(227), + 1597: uint16(25), + 1598: uint16(10), + 1599: uint16(11), + 1600: uint16(12), + 1601: uint16(13), + 1602: uint16(14), + 1603: uint16(83), + 1604: uint16(84), + 1605: uint16(17), + 1606: uint16(23), + 1607: uint16(23), + 1608: uint16(25), + 1609: uint16(25), + 1610: uint16(59), + 1611: uint16(194), + 1612: uint16(194), + 1613: uint16(183), + 1614: uint16(23), + 1615: uint16(23), + 1616: uint16(25), + 1617: uint16(25), + 1618: uint16(30), + 1619: uint16(194), + 1620: uint16(32), + 1621: uint16(19), + 1622: uint16(20), + 1623: uint16(100), + 1624: uint16(22), + 1625: uint16(194), + 1626: uint16(194), + 1627: uint16(133), + 1628: uint16(40), + 1629: uint16(106), + 1630: uint16(107), + 1631: uint16(108), + 1632: uint16(138), + 1633: uint16(139), + 1634: uint16(194), + 1635: uint16(217), + 1636: uint16(218), + 1637: uint16(114), + 1638: uint16(36), + 1639: uint16(116), + 1640: uint16(117), + 1641: uint16(118), + 1642: uint16(217), + 1643: uint16(218), + 1644: uint16(121), + 1645: uint16(194), + 1646: uint16(194), + 1647: uint16(194), + 1648: uint16(23), + 1649: uint16(117), + 1650: uint16(25), + 1651: uint16(194), + 1652: uint16(23), + 1653: uint16(23), + 1654: uint16(25), + 1655: uint16(25), + 1656: uint16(162), + 1657: uint16(194), + 1658: uint16(70), + 1659: uint16(194), + 1660: uint16(145), + 1661: uint16(59), + 1662: uint16(23), + 1663: uint16(153), + 1664: uint16(25), + 1665: uint16(155), + 1666: uint16(78), + 1667: uint16(194), + 1668: uint16(117), + 1669: uint16(81), + 1670: uint16(217), + 1671: uint16(218), + 1672: uint16(194), + 1673: uint16(71), + 1674: uint16(217), + 1675: uint16(218), + 1676: uint16(153), + 1677: uint16(154), + 1678: uint16(155), + 1679: uint16(156), + 1680: uint16(157), + 1681: uint16(194), + 1682: uint16(217), + 1683: uint16(218), + 1684: uint16(194), + 1685: uint16(23), + 1686: uint16(98), + 1687: uint16(25), + 1688: uint16(321), + 1689: uint16(194), 1690: uint16(217), - 1691: uint16(7), - 1692: uint16(8), - 1693: uint16(23), - 1694: uint16(59), - 1695: uint16(25), - 1696: uint16(83), - 1697: uint16(84), - 1698: uint16(36), - 1699: uint16(23), - 1700: uint16(193), - 1701: uint16(25), - 1702: uint16(23), - 1703: uint16(23), - 1704: uint16(25), - 1705: uint16(25), - 1706: uint16(71), - 1707: uint16(153), - 1708: uint16(145), - 1709: uint16(155), - 1710: uint16(117), - 1711: uint16(153), - 1712: uint16(23), - 1713: uint16(155), - 1714: uint16(25), - 1715: uint16(23), - 1716: uint16(97), - 1717: uint16(25), - 1718: uint16(70), - 1719: uint16(193), - 1720: uint16(193), - 1721: uint16(59), - 1722: uint16(117), - 1723: uint16(236), - 1724: uint16(193), - 1725: uint16(193), - 1726: uint16(78), - 1727: uint16(193), - 1728: uint16(193), - 1729: uint16(81), - 1730: uint16(141), - 1731: uint16(193), - 1732: uint16(193), - 1733: uint16(71), - 1734: uint16(193), - 1735: uint16(100), - 1736: uint16(288), - 1737: uint16(287), - 1738: uint16(242), - 1739: uint16(255), - 1740: uint16(255), - 1741: uint16(106), - 1742: uint16(107), - 1743: uint16(108), - 1744: uint16(255), - 1745: uint16(255), - 1746: uint16(98), - 1747: uint16(243), - 1748: uint16(297), - 1749: uint16(114), - 1750: uint16(214), - 1751: uint16(116), - 1752: uint16(117), - 1753: uint16(118), - 1754: uint16(245), - 1755: uint16(191), - 1756: uint16(121), - 1757: uint16(271), - 1758: uint16(293), - 1759: uint16(267), - 1760: uint16(267), - 1761: uint16(246), - 1762: uint16(100), - 1763: uint16(246), - 1764: uint16(245), - 1765: uint16(271), - 1766: uint16(271), - 1767: uint16(293), - 1768: uint16(106), - 1769: uint16(107), - 1770: uint16(220), - 1771: uint16(271), - 1772: uint16(229), - 1773: uint16(225), - 1774: uint16(249), - 1775: uint16(219), - 1776: uint16(114), - 1777: uint16(259), - 1778: uint16(116), - 1779: uint16(117), - 1780: uint16(118), - 1781: uint16(133), - 1782: uint16(259), - 1783: uint16(121), - 1784: uint16(219), - 1785: uint16(219), - 1786: uint16(138), - 1787: uint16(139), - 1788: uint16(153), - 1789: uint16(154), - 1790: uint16(155), - 1791: uint16(156), - 1792: uint16(157), - 1793: uint16(280), - 1794: uint16(249), - 1795: uint16(243), - 1796: uint16(19), - 1797: uint16(20), - 1798: uint16(245), - 1799: uint16(22), - 1800: uint16(196), - 1801: uint16(259), - 1802: uint16(140), - 1803: uint16(259), - 1804: uint16(60), - 1805: uint16(297), - 1806: uint16(141), - 1807: uint16(297), - 1808: uint16(200), - 1809: uint16(200), - 1810: uint16(162), - 1811: uint16(38), - 1812: uint16(200), - 1813: uint16(36), - 1814: uint16(294), - 1815: uint16(153), - 1816: uint16(154), - 1817: uint16(155), - 1818: uint16(156), - 1819: uint16(157), - 1820: uint16(151), - 1821: uint16(150), - 1822: uint16(294), - 1823: uint16(283), - 1824: uint16(22), - 1825: uint16(43), - 1826: uint16(234), - 1827: uint16(18), - 1828: uint16(237), - 1829: uint16(200), - 1830: uint16(270), - 1831: uint16(272), - 1832: uint16(237), - 1833: uint16(237), - 1834: uint16(237), - 1835: uint16(18), - 1836: uint16(59), - 1837: uint16(199), - 1838: uint16(270), - 1839: uint16(149), - 1840: uint16(246), - 1841: uint16(272), - 1842: uint16(272), - 1843: uint16(200), - 1844: uint16(234), - 1845: uint16(234), - 1846: uint16(246), - 1847: uint16(246), - 1848: uint16(71), - 1849: uint16(246), - 1850: uint16(199), - 1851: uint16(158), - 1852: uint16(290), - 1853: uint16(62), - 1854: uint16(22), - 1855: uint16(200), - 1856: uint16(19), - 1857: uint16(20), - 1858: uint16(199), - 1859: uint16(22), - 1860: uint16(289), - 1861: uint16(221), - 1862: uint16(221), - 1863: uint16(200), - 1864: uint16(200), - 1865: uint16(199), - 1866: uint16(199), - 1867: uint16(115), - 1868: uint16(218), - 1869: uint16(64), - 1870: uint16(218), - 1871: uint16(218), + 1691: uint16(218), + 1692: uint16(194), + 1693: uint16(19), + 1694: uint16(20), + 1695: uint16(194), + 1696: uint16(22), + 1697: uint16(153), + 1698: uint16(23), + 1699: uint16(155), + 1700: uint16(25), + 1701: uint16(194), + 1702: uint16(100), + 1703: uint16(194), + 1704: uint16(217), + 1705: uint16(218), + 1706: uint16(183), + 1707: uint16(194), + 1708: uint16(106), + 1709: uint16(107), + 1710: uint16(36), + 1711: uint16(194), + 1712: uint16(217), + 1713: uint16(218), + 1714: uint16(237), + 1715: uint16(194), + 1716: uint16(114), + 1717: uint16(243), + 1718: uint16(116), + 1719: uint16(117), + 1720: uint16(118), + 1721: uint16(133), + 1722: uint16(194), + 1723: uint16(121), + 1724: uint16(217), + 1725: uint16(218), + 1726: uint16(138), + 1727: uint16(139), + 1728: uint16(194), + 1729: uint16(194), + 1730: uint16(194), + 1731: uint16(290), + 1732: uint16(289), + 1733: uint16(59), + 1734: uint16(217), + 1735: uint16(218), + 1736: uint16(194), + 1737: uint16(194), + 1738: uint16(217), + 1739: uint16(218), + 1740: uint16(194), + 1741: uint16(194), + 1742: uint16(140), + 1743: uint16(194), + 1744: uint16(194), + 1745: uint16(71), + 1746: uint16(194), + 1747: uint16(244), + 1748: uint16(194), + 1749: uint16(194), + 1750: uint16(162), + 1751: uint16(217), + 1752: uint16(218), + 1753: uint16(194), + 1754: uint16(194), + 1755: uint16(153), + 1756: uint16(154), + 1757: uint16(155), + 1758: uint16(156), + 1759: uint16(157), + 1760: uint16(217), + 1761: uint16(218), + 1762: uint16(194), + 1763: uint16(217), + 1764: uint16(218), + 1765: uint16(194), + 1766: uint16(217), + 1767: uint16(218), + 1768: uint16(257), + 1769: uint16(217), + 1770: uint16(218), + 1771: uint16(217), + 1772: uint16(218), + 1773: uint16(257), + 1774: uint16(100), + 1775: uint16(194), + 1776: uint16(257), + 1777: uint16(217), + 1778: uint16(218), + 1779: uint16(257), + 1780: uint16(106), + 1781: uint16(107), + 1782: uint16(215), + 1783: uint16(299), + 1784: uint16(194), + 1785: uint16(183), + 1786: uint16(192), + 1787: uint16(194), + 1788: uint16(114), + 1789: uint16(194), + 1790: uint16(116), + 1791: uint16(117), + 1792: uint16(118), + 1793: uint16(1), + 1794: uint16(2), + 1795: uint16(121), + 1796: uint16(221), + 1797: uint16(5), + 1798: uint16(217), + 1799: uint16(218), + 1800: uint16(273), + 1801: uint16(197), + 1802: uint16(10), + 1803: uint16(11), + 1804: uint16(12), + 1805: uint16(13), + 1806: uint16(14), + 1807: uint16(217), + 1808: uint16(218), + 1809: uint16(17), + 1810: uint16(217), + 1811: uint16(218), + 1812: uint16(217), + 1813: uint16(218), + 1814: uint16(140), + 1815: uint16(194), + 1816: uint16(246), + 1817: uint16(194), + 1818: uint16(273), + 1819: uint16(295), + 1820: uint16(247), + 1821: uint16(273), + 1822: uint16(30), + 1823: uint16(247), + 1824: uint16(32), + 1825: uint16(269), + 1826: uint16(269), + 1827: uint16(153), + 1828: uint16(154), + 1829: uint16(155), + 1830: uint16(156), + 1831: uint16(157), + 1832: uint16(40), + 1833: uint16(246), + 1834: uint16(273), + 1835: uint16(295), + 1836: uint16(230), + 1837: uint16(226), + 1838: uint16(217), + 1839: uint16(218), + 1840: uint16(217), + 1841: uint16(218), + 1842: uint16(220), + 1843: uint16(261), + 1844: uint16(220), + 1845: uint16(282), + 1846: uint16(220), + 1847: uint16(19), + 1848: uint16(20), + 1849: uint16(244), + 1850: uint16(22), + 1851: uint16(250), + 1852: uint16(141), + 1853: uint16(250), + 1854: uint16(246), + 1855: uint16(60), + 1856: uint16(201), + 1857: uint16(183), + 1858: uint16(261), + 1859: uint16(261), + 1860: uint16(261), + 1861: uint16(201), + 1862: uint16(70), + 1863: uint16(299), + 1864: uint16(36), + 1865: uint16(299), + 1866: uint16(201), + 1867: uint16(38), + 1868: uint16(151), + 1869: uint16(150), + 1870: uint16(78), + 1871: uint16(285), 1872: uint16(22), - 1873: uint16(36), - 1874: uint16(227), - 1875: uint16(126), - 1876: uint16(227), - 1877: uint16(100), - 1878: uint16(165), - 1879: uint16(221), - 1880: uint16(224), - 1881: uint16(224), - 1882: uint16(24), - 1883: uint16(106), - 1884: uint16(107), - 1885: uint16(312), - 1886: uint16(218), - 1887: uint16(305), - 1888: uint16(113), - 1889: uint16(282), - 1890: uint16(91), - 1891: uint16(114), - 1892: uint16(220), - 1893: uint16(116), - 1894: uint16(117), - 1895: uint16(118), - 1896: uint16(59), - 1897: uint16(282), - 1898: uint16(121), - 1899: uint16(218), - 1900: uint16(218), - 1901: uint16(218), + 1873: uint16(81), + 1874: uint16(296), + 1875: uint16(296), + 1876: uint16(43), + 1877: uint16(235), + 1878: uint16(18), + 1879: uint16(238), + 1880: uint16(201), + 1881: uint16(274), + 1882: uint16(272), + 1883: uint16(238), + 1884: uint16(238), + 1885: uint16(238), + 1886: uint16(18), + 1887: uint16(59), + 1888: uint16(200), + 1889: uint16(149), + 1890: uint16(98), + 1891: uint16(247), + 1892: uint16(274), + 1893: uint16(274), + 1894: uint16(235), + 1895: uint16(247), + 1896: uint16(247), + 1897: uint16(247), + 1898: uint16(235), + 1899: uint16(71), + 1900: uint16(272), + 1901: uint16(201), 1902: uint16(200), - 1903: uint16(317), - 1904: uint16(317), - 1905: uint16(82), - 1906: uint16(221), - 1907: uint16(265), - 1908: uint16(71), - 1909: uint16(148), - 1910: uint16(145), - 1911: uint16(265), - 1912: uint16(22), - 1913: uint16(277), - 1914: uint16(200), - 1915: uint16(158), - 1916: uint16(279), - 1917: uint16(140), - 1918: uint16(147), - 1919: uint16(25), - 1920: uint16(146), - 1921: uint16(202), - 1922: uint16(248), - 1923: uint16(250), - 1924: uint16(249), - 1925: uint16(247), - 1926: uint16(13), - 1927: uint16(250), - 1928: uint16(194), - 1929: uint16(194), - 1930: uint16(153), - 1931: uint16(154), - 1932: uint16(155), - 1933: uint16(156), - 1934: uint16(157), - 1935: uint16(6), - 1936: uint16(303), - 1937: uint16(100), - 1938: uint16(192), - 1939: uint16(192), - 1940: uint16(246), - 1941: uint16(213), - 1942: uint16(192), - 1943: uint16(106), - 1944: uint16(107), - 1945: uint16(207), - 1946: uint16(213), - 1947: uint16(207), - 1948: uint16(222), - 1949: uint16(213), - 1950: uint16(213), - 1951: uint16(114), - 1952: uint16(222), - 1953: uint16(116), - 1954: uint16(117), - 1955: uint16(118), - 1956: uint16(214), - 1957: uint16(214), - 1958: uint16(121), - 1959: uint16(4), - 1960: uint16(207), - 1961: uint16(213), - 1962: uint16(3), - 1963: uint16(22), - 1964: uint16(303), - 1965: uint16(15), - 1966: uint16(163), - 1967: uint16(16), - 1968: uint16(23), - 1969: uint16(23), - 1970: uint16(139), - 1971: uint16(151), - 1972: uint16(130), - 1973: uint16(25), - 1974: uint16(20), - 1975: uint16(142), - 1976: uint16(24), - 1977: uint16(16), - 1978: uint16(144), - 1979: uint16(1), - 1980: uint16(142), - 1981: uint16(130), - 1982: uint16(130), - 1983: uint16(61), - 1984: uint16(37), - 1985: uint16(53), - 1986: uint16(300), - 1987: uint16(151), - 1988: uint16(53), - 1989: uint16(53), - 1990: uint16(153), - 1991: uint16(154), - 1992: uint16(155), - 1993: uint16(156), - 1994: uint16(157), - 1995: uint16(53), - 1996: uint16(130), - 1997: uint16(116), - 1998: uint16(34), - 1999: uint16(1), - 2000: uint16(141), - 2001: uint16(5), - 2002: uint16(22), - 2003: uint16(115), - 2004: uint16(161), - 2005: uint16(68), - 2006: uint16(25), - 2007: uint16(68), - 2008: uint16(75), - 2009: uint16(41), - 2010: uint16(141), - 2011: uint16(115), - 2012: uint16(24), - 2013: uint16(20), - 2014: uint16(19), - 2015: uint16(131), - 2016: uint16(125), - 2017: uint16(23), - 2018: uint16(28), - 2019: uint16(22), - 2020: uint16(67), - 2021: uint16(22), - 2022: uint16(22), - 2023: uint16(22), - 2024: uint16(67), - 2025: uint16(59), - 2026: uint16(24), - 2027: uint16(96), - 2028: uint16(22), - 2029: uint16(67), - 2030: uint16(23), - 2031: uint16(149), - 2032: uint16(22), - 2033: uint16(25), - 2034: uint16(23), - 2035: uint16(23), - 2036: uint16(23), - 2037: uint16(22), - 2038: uint16(34), - 2039: uint16(141), - 2040: uint16(37), - 2041: uint16(97), - 2042: uint16(23), - 2043: uint16(23), - 2044: uint16(116), - 2045: uint16(22), - 2046: uint16(143), - 2047: uint16(25), - 2048: uint16(34), - 2049: uint16(75), - 2050: uint16(34), - 2051: uint16(34), - 2052: uint16(34), - 2053: uint16(88), - 2054: uint16(75), - 2055: uint16(34), - 2056: uint16(86), - 2057: uint16(23), + 1903: uint16(158), + 1904: uint16(292), + 1905: uint16(62), + 1906: uint16(291), + 1907: uint16(201), + 1908: uint16(200), + 1909: uint16(22), + 1910: uint16(201), + 1911: uint16(222), + 1912: uint16(200), + 1913: uint16(222), + 1914: uint16(201), + 1915: uint16(200), + 1916: uint16(115), + 1917: uint16(219), + 1918: uint16(219), + 1919: uint16(64), + 1920: uint16(219), + 1921: uint16(228), + 1922: uint16(22), + 1923: uint16(126), + 1924: uint16(221), + 1925: uint16(133), + 1926: uint16(165), + 1927: uint16(222), + 1928: uint16(100), + 1929: uint16(225), + 1930: uint16(138), + 1931: uint16(139), + 1932: uint16(225), + 1933: uint16(219), + 1934: uint16(106), + 1935: uint16(107), + 1936: uint16(24), + 1937: uint16(219), + 1938: uint16(228), + 1939: uint16(219), + 1940: uint16(219), + 1941: uint16(307), + 1942: uint16(114), + 1943: uint16(113), + 1944: uint16(116), + 1945: uint16(117), + 1946: uint16(118), + 1947: uint16(315), + 1948: uint16(284), + 1949: uint16(121), + 1950: uint16(284), + 1951: uint16(222), + 1952: uint16(201), + 1953: uint16(91), + 1954: uint16(162), + 1955: uint16(320), + 1956: uint16(320), + 1957: uint16(82), + 1958: uint16(148), + 1959: uint16(267), + 1960: uint16(145), + 1961: uint16(267), + 1962: uint16(22), + 1963: uint16(279), + 1964: uint16(201), + 1965: uint16(158), + 1966: uint16(281), + 1967: uint16(251), + 1968: uint16(147), + 1969: uint16(146), + 1970: uint16(25), + 1971: uint16(203), + 1972: uint16(250), + 1973: uint16(249), + 1974: uint16(251), + 1975: uint16(248), + 1976: uint16(13), + 1977: uint16(247), + 1978: uint16(195), + 1979: uint16(195), + 1980: uint16(6), + 1981: uint16(153), + 1982: uint16(154), + 1983: uint16(155), + 1984: uint16(156), + 1985: uint16(157), + 1986: uint16(193), + 1987: uint16(193), + 1988: uint16(305), + 1989: uint16(193), + 1990: uint16(208), + 1991: uint16(305), + 1992: uint16(302), + 1993: uint16(214), + 1994: uint16(214), + 1995: uint16(214), + 1996: uint16(208), + 1997: uint16(223), + 1998: uint16(223), + 1999: uint16(214), + 2000: uint16(4), + 2001: uint16(215), + 2002: uint16(215), + 2003: uint16(214), + 2004: uint16(3), + 2005: uint16(22), + 2006: uint16(208), + 2007: uint16(163), + 2008: uint16(15), + 2009: uint16(23), + 2010: uint16(16), + 2011: uint16(183), + 2012: uint16(23), + 2013: uint16(139), + 2014: uint16(151), + 2015: uint16(130), + 2016: uint16(25), + 2017: uint16(20), + 2018: uint16(142), + 2019: uint16(24), + 2020: uint16(16), + 2021: uint16(144), + 2022: uint16(1), + 2023: uint16(142), + 2024: uint16(130), + 2025: uint16(130), + 2026: uint16(61), + 2027: uint16(37), + 2028: uint16(53), + 2029: uint16(151), + 2030: uint16(53), + 2031: uint16(53), + 2032: uint16(53), + 2033: uint16(130), + 2034: uint16(116), + 2035: uint16(1), + 2036: uint16(34), + 2037: uint16(141), + 2038: uint16(5), + 2039: uint16(22), + 2040: uint16(115), + 2041: uint16(161), + 2042: uint16(75), + 2043: uint16(25), + 2044: uint16(68), + 2045: uint16(141), + 2046: uint16(41), + 2047: uint16(115), + 2048: uint16(68), + 2049: uint16(24), + 2050: uint16(20), + 2051: uint16(19), + 2052: uint16(131), + 2053: uint16(125), + 2054: uint16(67), + 2055: uint16(67), + 2056: uint16(96), + 2057: uint16(22), 2058: uint16(22), - 2059: uint16(34), - 2060: uint16(93), - 2061: uint16(24), - 2062: uint16(34), - 2063: uint16(25), - 2064: uint16(25), - 2065: uint16(142), - 2066: uint16(142), + 2059: uint16(22), + 2060: uint16(37), + 2061: uint16(23), + 2062: uint16(22), + 2063: uint16(24), + 2064: uint16(22), + 2065: uint16(59), + 2066: uint16(67), 2067: uint16(23), - 2068: uint16(44), - 2069: uint16(23), - 2070: uint16(23), - 2071: uint16(23), + 2068: uint16(149), + 2069: uint16(28), + 2070: uint16(22), + 2071: uint16(25), 2072: uint16(23), - 2073: uint16(11), + 2073: uint16(23), 2074: uint16(23), - 2075: uint16(25), - 2076: uint16(22), - 2077: uint16(22), - 2078: uint16(22), - 2079: uint16(141), + 2075: uint16(22), + 2076: uint16(141), + 2077: uint16(34), + 2078: uint16(97), + 2079: uint16(23), 2080: uint16(23), - 2081: uint16(23), - 2082: uint16(22), + 2081: uint16(34), + 2082: uint16(116), 2083: uint16(22), - 2084: uint16(25), - 2085: uint16(15), - 2086: uint16(1), - 2087: uint16(23), - 2088: uint16(25), - 2089: uint16(1), - 2090: uint16(141), - 2091: uint16(135), - 2092: uint16(319), - 2093: uint16(319), - 2094: uint16(319), - 2095: uint16(319), - 2096: uint16(319), - 2097: uint16(319), - 2098: uint16(319), - 2099: uint16(141), - 2100: uint16(319), - 2101: uint16(319), - 2102: uint16(319), - 2103: uint16(319), - 2104: uint16(319), - 2105: uint16(319), - 2106: uint16(319), - 2107: uint16(319), - 2108: uint16(319), - 2109: uint16(319), - 2110: uint16(319), - 2111: uint16(319), - 2112: uint16(319), - 2113: uint16(319), - 2114: uint16(319), - 2115: uint16(319), - 2116: uint16(319), - 2117: uint16(319), - 2118: uint16(319), - 2119: uint16(319), - 2120: uint16(319), - 2121: uint16(319), - 2122: uint16(319), - 2123: uint16(319), - 2124: uint16(319), - 2125: uint16(319), - 2126: uint16(319), - 2127: uint16(319), - 2128: uint16(319), - 2129: uint16(319), - 2130: uint16(319), - 2131: uint16(319), - 2132: uint16(319), - 2133: uint16(319), - 2134: uint16(319), - 2135: uint16(319), - 2136: uint16(319), - 2137: uint16(319), - 2138: uint16(319), - 2139: uint16(319), - 2140: uint16(319), - 2141: uint16(319), - 2142: uint16(319), - 2143: uint16(319), - 2144: uint16(319), - 2145: uint16(319), - 2146: uint16(319), - 2147: uint16(319), - 2148: uint16(319), - 2149: uint16(319), - 2150: uint16(319), - 2151: uint16(319), - 2152: uint16(319), - 2153: uint16(319), - 2154: uint16(319), - 2155: uint16(319), - 2156: uint16(319), - 2157: uint16(319), - 2158: uint16(319), - 2159: uint16(319), - 2160: uint16(319), - 2161: uint16(319), - 2162: uint16(319), - 2163: uint16(319), - 2164: uint16(319), - 2165: uint16(319), - 2166: uint16(319), - 2167: uint16(319), - 2168: uint16(319), - 2169: uint16(319), - 2170: uint16(319), - 2171: uint16(319), - 2172: uint16(319), - 2173: uint16(319), - 2174: uint16(319), - 2175: uint16(319), - 2176: uint16(319), - 2177: uint16(319), - 2178: uint16(319), - 2179: uint16(319), - 2180: uint16(319), - 2181: uint16(319), - 2182: uint16(319), - 2183: uint16(319), - 2184: uint16(319), - 2185: uint16(319), - 2186: uint16(319), - 2187: uint16(319), - 2188: uint16(319), - 2189: uint16(319), - 2190: uint16(319), - 2191: uint16(319), - 2192: uint16(319), - 2193: uint16(319), - 2194: uint16(319), - 2195: uint16(319), - 2196: uint16(319), - 2197: uint16(319), - 2198: uint16(319), - 2199: uint16(319), - 2200: uint16(319), - 2201: uint16(319), - 2202: uint16(319), - 2203: uint16(319), - 2204: uint16(319), - 2205: uint16(319), - 2206: uint16(319), - 2207: uint16(319), - 2208: uint16(319), - 2209: uint16(319), - 2210: uint16(319), - 2211: uint16(319), - 2212: uint16(319), - 2213: uint16(319), - 2214: uint16(319), - 2215: uint16(319), - 2216: uint16(319), - 2217: uint16(319), - 2218: uint16(319), - 2219: uint16(319), - 2220: uint16(319), - 2221: uint16(319), - 2222: uint16(319), - 2223: uint16(319), - 2224: uint16(319), - 2225: uint16(319), - 2226: uint16(319), - 2227: uint16(319), - 2228: uint16(319), - 2229: uint16(319), - 2230: uint16(319), - 2231: uint16(319), - 2232: uint16(319), - 2233: uint16(319), - 2234: uint16(319), - 2235: uint16(319), - 2236: uint16(319), - 2237: uint16(319), - 2238: uint16(319), - 2239: uint16(319), - 2240: uint16(319), - 2241: uint16(319), - 2242: uint16(319), - 2243: uint16(319), - 2244: uint16(319), - 2245: uint16(319), - 2246: uint16(319), - 2247: uint16(319), - 2248: uint16(319), - 2249: uint16(319), - 2250: uint16(319), - 2251: uint16(319), - 2252: uint16(319), - 2253: uint16(319), - 2254: uint16(319), - 2255: uint16(319), - 2256: uint16(319), - 2257: uint16(319), - 2258: uint16(319), - 2259: uint16(319), - 2260: uint16(319), - 2261: uint16(319), - 2262: uint16(319), - 2263: uint16(319), - 2264: uint16(319), - 2265: uint16(319), - 2266: uint16(319), - 2267: uint16(319), - 2268: uint16(319), - 2269: uint16(319), - 2270: uint16(319), - 2271: uint16(319), - 2272: uint16(319), - 2273: uint16(319), - 2274: uint16(319), - 2275: uint16(319), - 2276: uint16(319), - 2277: uint16(319), - 2278: uint16(319), - 2279: uint16(319), - 2280: uint16(319), - 2281: uint16(319), - 2282: uint16(319), - 2283: uint16(319), - 2284: uint16(319), -} -var _yy_shift_ofst = [579]uint16{ - 0: uint16(1648), - 1: uint16(1477), - 2: uint16(1272), + 2084: uint16(143), + 2085: uint16(25), + 2086: uint16(34), + 2087: uint16(75), + 2088: uint16(34), + 2089: uint16(34), + 2090: uint16(75), + 2091: uint16(88), + 2092: uint16(34), + 2093: uint16(86), + 2094: uint16(23), + 2095: uint16(22), + 2096: uint16(34), + 2097: uint16(25), + 2098: uint16(24), + 2099: uint16(34), + 2100: uint16(25), + 2101: uint16(93), + 2102: uint16(23), + 2103: uint16(44), + 2104: uint16(142), + 2105: uint16(23), + 2106: uint16(142), + 2107: uint16(23), + 2108: uint16(23), + 2109: uint16(22), + 2110: uint16(11), + 2111: uint16(25), + 2112: uint16(23), + 2113: uint16(25), + 2114: uint16(23), + 2115: uint16(22), + 2116: uint16(22), + 2117: uint16(22), + 2118: uint16(1), + 2119: uint16(23), + 2120: uint16(23), + 2121: uint16(23), + 2122: uint16(22), + 2123: uint16(22), + 2124: uint16(15), + 2125: uint16(141), + 2126: uint16(141), + 2127: uint16(25), + 2128: uint16(25), + 2129: uint16(1), + 2130: uint16(322), + 2131: uint16(322), + 2132: uint16(322), + 2133: uint16(135), + 2134: uint16(322), + 2135: uint16(322), + 2136: uint16(322), + 2137: uint16(322), + 2138: uint16(322), + 2139: uint16(322), + 2140: uint16(322), + 2141: uint16(141), + 2142: uint16(322), + 2143: uint16(322), + 2144: uint16(322), + 2145: uint16(322), + 2146: uint16(322), + 2147: uint16(322), + 2148: uint16(322), + 2149: uint16(322), + 2150: uint16(322), + 2151: uint16(322), + 2152: uint16(322), + 2153: uint16(322), + 2154: uint16(322), + 2155: uint16(322), + 2156: uint16(322), + 2157: uint16(322), + 2158: uint16(322), + 2159: uint16(322), + 2160: uint16(322), + 2161: uint16(322), + 2162: uint16(322), + 2163: uint16(322), + 2164: uint16(322), + 2165: uint16(322), + 2166: uint16(322), + 2167: uint16(322), + 2168: uint16(322), + 2169: uint16(322), + 2170: uint16(322), + 2171: uint16(322), + 2172: uint16(322), + 2173: uint16(322), + 2174: uint16(322), + 2175: uint16(322), + 2176: uint16(322), + 2177: uint16(322), + 2178: uint16(322), + 2179: uint16(322), + 2180: uint16(322), + 2181: uint16(322), + 2182: uint16(322), + 2183: uint16(322), + 2184: uint16(322), + 2185: uint16(322), + 2186: uint16(322), + 2187: uint16(322), + 2188: uint16(322), + 2189: uint16(322), + 2190: uint16(322), + 2191: uint16(322), + 2192: uint16(322), + 2193: uint16(322), + 2194: uint16(322), + 2195: uint16(322), + 2196: uint16(322), + 2197: uint16(322), + 2198: uint16(322), + 2199: uint16(322), + 2200: uint16(322), + 2201: uint16(322), + 2202: uint16(322), + 2203: uint16(322), + 2204: uint16(322), + 2205: uint16(322), + 2206: uint16(322), + 2207: uint16(322), + 2208: uint16(322), + 2209: uint16(322), + 2210: uint16(322), + 2211: uint16(322), + 2212: uint16(322), + 2213: uint16(322), + 2214: uint16(322), + 2215: uint16(322), + 2216: uint16(322), + 2217: uint16(322), + 2218: uint16(322), + 2219: uint16(322), + 2220: uint16(322), + 2221: uint16(322), + 2222: uint16(322), + 2223: uint16(322), + 2224: uint16(322), + 2225: uint16(322), + 2226: uint16(322), + 2227: uint16(322), + 2228: uint16(322), + 2229: uint16(322), + 2230: uint16(322), + 2231: uint16(322), + 2232: uint16(322), + 2233: uint16(322), + 2234: uint16(322), + 2235: uint16(322), + 2236: uint16(322), + 2237: uint16(322), + 2238: uint16(322), + 2239: uint16(322), + 2240: uint16(322), + 2241: uint16(322), + 2242: uint16(322), + 2243: uint16(322), + 2244: uint16(322), + 2245: uint16(322), + 2246: uint16(322), + 2247: uint16(322), + 2248: uint16(322), + 2249: uint16(322), + 2250: uint16(322), + 2251: uint16(322), + 2252: uint16(322), + 2253: uint16(322), + 2254: uint16(322), + 2255: uint16(322), + 2256: uint16(322), + 2257: uint16(322), + 2258: uint16(322), + 2259: uint16(322), + 2260: uint16(322), + 2261: uint16(322), + 2262: uint16(322), + 2263: uint16(322), + 2264: uint16(322), + 2265: uint16(322), + 2266: uint16(322), + 2267: uint16(322), + 2268: uint16(322), + 2269: uint16(322), + 2270: uint16(322), + 2271: uint16(322), + 2272: uint16(322), + 2273: uint16(322), + 2274: uint16(322), + 2275: uint16(322), + 2276: uint16(322), + 2277: uint16(322), + 2278: uint16(322), + 2279: uint16(322), + 2280: uint16(322), + 2281: uint16(322), + 2282: uint16(322), + 2283: uint16(322), + 2284: uint16(322), + 2285: uint16(322), + 2286: uint16(322), + 2287: uint16(322), + 2288: uint16(322), + 2289: uint16(322), + 2290: uint16(322), + 2291: uint16(322), + 2292: uint16(322), + 2293: uint16(322), + 2294: uint16(322), + 2295: uint16(322), + 2296: uint16(322), + 2297: uint16(322), + 2298: uint16(322), + 2299: uint16(322), + 2300: uint16(322), + 2301: uint16(322), + 2302: uint16(322), + 2303: uint16(322), + 2304: uint16(322), + 2305: uint16(322), + 2306: uint16(322), + 2307: uint16(322), + 2308: uint16(322), + 2309: uint16(322), + 2310: uint16(322), + 2311: uint16(322), + 2312: uint16(322), + 2313: uint16(322), + 2314: uint16(322), + 2315: uint16(322), + 2316: uint16(322), + 2317: uint16(322), + 2318: uint16(322), + 2319: uint16(322), + 2320: uint16(322), + 2321: uint16(322), + 2322: uint16(322), + 2323: uint16(322), + 2324: uint16(322), + 2325: uint16(322), + 2326: uint16(322), + 2327: uint16(322), +} +var _yy_shift_ofst = [583]uint16{ + 0: uint16(1792), + 1: uint16(1588), + 2: uint16(1494), 3: uint16(322), 4: uint16(322), - 5: uint16(1), - 6: uint16(1319), - 7: uint16(1478), - 8: uint16(1491), - 9: uint16(1837), - 10: uint16(1837), - 11: uint16(1837), - 12: uint16(471), - 15: uint16(214), - 16: uint16(1093), - 17: uint16(1837), - 18: uint16(1837), - 19: uint16(1837), - 20: uint16(1837), - 21: uint16(1837), - 22: uint16(1837), - 23: uint16(1837), - 24: uint16(1837), - 25: uint16(1837), - 26: uint16(1837), - 27: uint16(1837), - 28: uint16(1837), - 29: uint16(1837), - 30: uint16(1837), - 31: uint16(271), - 32: uint16(271), - 33: uint16(1219), - 34: uint16(1219), - 35: uint16(216), - 36: uint16(88), - 37: uint16(1), - 38: uint16(1), - 39: uint16(1), - 40: uint16(1), - 41: uint16(1), - 42: uint16(40), - 43: uint16(111), - 44: uint16(258), - 45: uint16(361), - 46: uint16(469), - 47: uint16(512), - 48: uint16(583), - 49: uint16(622), - 50: uint16(693), - 51: uint16(732), - 52: uint16(803), - 53: uint16(842), - 54: uint16(913), - 55: uint16(1073), - 56: uint16(1093), - 57: uint16(1093), - 58: uint16(1093), - 59: uint16(1093), - 60: uint16(1093), - 61: uint16(1093), - 62: uint16(1093), - 63: uint16(1093), - 64: uint16(1093), + 5: uint16(399), + 6: uint16(306), + 7: uint16(1319), + 8: uint16(1339), + 9: uint16(1430), + 10: uint16(1828), + 11: uint16(1828), + 12: uint16(1828), + 13: uint16(580), + 14: uint16(399), + 15: uint16(399), + 16: uint16(399), + 17: uint16(399), + 18: uint16(399), + 21: uint16(214), + 22: uint16(1093), + 23: uint16(1828), + 24: uint16(1828), + 25: uint16(1828), + 26: uint16(1828), + 27: uint16(1828), + 28: uint16(1828), + 29: uint16(1828), + 30: uint16(1828), + 31: uint16(1828), + 32: uint16(1828), + 33: uint16(1828), + 34: uint16(1828), + 35: uint16(1828), + 36: uint16(1828), + 37: uint16(1828), + 38: uint16(1130), + 39: uint16(1130), + 40: uint16(365), + 41: uint16(365), + 42: uint16(55), + 43: uint16(278), + 44: uint16(436), + 45: uint16(713), + 46: uint16(713), + 47: uint16(201), + 48: uint16(201), + 49: uint16(201), + 50: uint16(201), + 51: uint16(40), + 52: uint16(111), + 53: uint16(258), + 54: uint16(361), + 55: uint16(469), + 56: uint16(512), + 57: uint16(583), + 58: uint16(622), + 59: uint16(693), + 60: uint16(732), + 61: uint16(803), + 62: uint16(842), + 63: uint16(913), + 64: uint16(1073), 65: uint16(1093), 66: uint16(1093), 67: uint16(1093), @@ -226538,1505 +228023,1514 @@ var _yy_shift_ofst = [579]uint16{ 71: uint16(1093), 72: uint16(1093), 73: uint16(1093), - 74: uint16(1113), + 74: uint16(1093), 75: uint16(1093), - 76: uint16(1216), - 77: uint16(957), - 78: uint16(957), - 79: uint16(1635), - 80: uint16(1662), - 81: uint16(1777), - 82: uint16(1837), - 83: uint16(1837), - 84: uint16(1837), - 85: uint16(1837), - 86: uint16(1837), - 87: uint16(1837), - 88: uint16(1837), - 89: uint16(1837), - 90: uint16(1837), - 91: uint16(1837), - 92: uint16(1837), - 93: uint16(1837), - 94: uint16(1837), - 95: uint16(1837), - 96: uint16(1837), - 97: uint16(1837), - 98: uint16(1837), - 99: uint16(1837), - 100: uint16(1837), - 101: uint16(1837), - 102: uint16(1837), - 103: uint16(1837), - 104: uint16(1837), - 105: uint16(1837), - 106: uint16(1837), - 107: uint16(1837), - 108: uint16(1837), - 109: uint16(1837), - 110: uint16(1837), - 111: uint16(1837), - 112: uint16(1837), - 113: uint16(1837), - 114: uint16(1837), - 115: uint16(1837), - 116: uint16(1837), - 117: uint16(1837), - 118: uint16(1837), - 119: uint16(1837), - 120: uint16(1837), - 121: uint16(1837), - 122: uint16(1837), - 123: uint16(1837), - 124: uint16(1837), - 125: uint16(1837), - 126: uint16(1837), - 127: uint16(1837), - 128: uint16(1837), - 129: uint16(1837), - 130: uint16(1837), - 131: uint16(137), - 132: uint16(181), - 133: uint16(181), - 134: uint16(181), - 135: uint16(181), - 136: uint16(181), - 137: uint16(181), - 138: uint16(181), - 139: uint16(94), - 140: uint16(430), - 141: uint16(66), - 142: uint16(65), - 143: uint16(112), - 144: uint16(366), - 145: uint16(533), - 146: uint16(533), - 147: uint16(740), - 148: uint16(1257), - 149: uint16(533), - 150: uint16(533), - 151: uint16(79), - 152: uint16(79), - 153: uint16(533), - 154: uint16(412), - 155: uint16(412), - 156: uint16(412), - 157: uint16(77), - 158: uint16(412), - 159: uint16(123), - 160: uint16(113), - 161: uint16(113), - 162: uint16(113), - 163: uint16(22), - 164: uint16(22), - 165: uint16(2100), - 166: uint16(2100), - 167: uint16(328), - 168: uint16(328), - 169: uint16(328), - 170: uint16(239), - 171: uint16(468), - 172: uint16(468), - 173: uint16(468), - 174: uint16(468), - 175: uint16(1015), - 176: uint16(1015), - 177: uint16(409), - 178: uint16(366), - 179: uint16(1187), - 180: uint16(1232), - 181: uint16(533), - 182: uint16(533), - 183: uint16(533), - 184: uint16(533), - 185: uint16(533), - 186: uint16(533), - 187: uint16(533), - 188: uint16(533), - 189: uint16(533), - 190: uint16(533), - 191: uint16(533), - 192: uint16(533), - 193: uint16(533), - 194: uint16(533), - 195: uint16(533), - 196: uint16(533), - 197: uint16(533), - 198: uint16(533), - 199: uint16(533), - 200: uint16(533), - 201: uint16(969), - 202: uint16(621), - 203: uint16(621), - 204: uint16(533), - 205: uint16(642), - 206: uint16(788), - 207: uint16(788), - 208: uint16(1133), - 209: uint16(1133), - 210: uint16(822), - 211: uint16(822), - 212: uint16(67), - 213: uint16(1193), - 214: uint16(2100), - 215: uint16(2100), - 216: uint16(2100), - 217: uint16(2100), - 218: uint16(2100), - 219: uint16(2100), - 220: uint16(2100), - 221: uint16(1307), - 222: uint16(954), - 223: uint16(954), - 224: uint16(585), - 225: uint16(472), - 226: uint16(640), - 227: uint16(387), - 228: uint16(695), - 229: uint16(538), - 230: uint16(541), - 231: uint16(700), - 232: uint16(533), - 233: uint16(533), - 234: uint16(533), - 235: uint16(533), - 236: uint16(533), - 237: uint16(533), - 238: uint16(533), - 239: uint16(533), - 240: uint16(533), - 241: uint16(533), - 242: uint16(222), - 243: uint16(533), - 244: uint16(533), - 245: uint16(533), - 246: uint16(533), - 247: uint16(533), - 248: uint16(533), - 249: uint16(533), - 250: uint16(533), - 251: uint16(533), - 252: uint16(533), - 253: uint16(533), - 254: uint16(533), - 255: uint16(1213), - 256: uint16(1213), - 257: uint16(1213), - 258: uint16(533), - 259: uint16(533), - 260: uint16(533), - 261: uint16(565), - 262: uint16(533), - 263: uint16(533), - 264: uint16(533), - 265: uint16(916), - 266: uint16(1147), - 267: uint16(533), - 268: uint16(533), - 269: uint16(1288), - 270: uint16(533), - 271: uint16(533), - 272: uint16(533), - 273: uint16(533), - 274: uint16(533), - 275: uint16(533), - 276: uint16(533), - 277: uint16(533), - 278: uint16(639), - 279: uint16(1280), - 280: uint16(209), - 281: uint16(1129), - 282: uint16(1129), - 283: uint16(1129), - 284: uint16(1129), - 285: uint16(580), - 286: uint16(209), - 287: uint16(209), - 288: uint16(1209), - 289: uint16(768), - 290: uint16(917), - 291: uint16(649), - 292: uint16(1315), - 293: uint16(1334), - 294: uint16(405), - 295: uint16(1334), - 296: uint16(1383), - 297: uint16(249), - 298: uint16(1315), - 299: uint16(1315), - 300: uint16(249), - 301: uint16(1315), - 302: uint16(405), - 303: uint16(1383), - 304: uint16(1441), - 305: uint16(464), - 306: uint16(1245), - 307: uint16(1417), - 308: uint16(1417), - 309: uint16(1417), - 310: uint16(1323), - 311: uint16(1323), - 312: uint16(1323), - 313: uint16(1323), - 314: uint16(184), - 315: uint16(184), - 316: uint16(1335), - 317: uint16(1476), - 318: uint16(856), - 319: uint16(1482), - 320: uint16(1744), - 321: uint16(1744), - 322: uint16(1665), - 323: uint16(1665), - 324: uint16(1773), - 325: uint16(1773), - 326: uint16(1665), - 327: uint16(1669), - 328: uint16(1671), - 329: uint16(1802), - 330: uint16(1782), - 331: uint16(1809), - 332: uint16(1809), - 333: uint16(1809), - 334: uint16(1809), - 335: uint16(1665), - 336: uint16(1817), - 337: uint16(1690), - 338: uint16(1671), - 339: uint16(1671), - 340: uint16(1690), - 341: uint16(1802), - 342: uint16(1782), - 343: uint16(1690), - 344: uint16(1782), - 345: uint16(1690), - 346: uint16(1665), - 347: uint16(1817), - 348: uint16(1693), - 349: uint16(1791), - 350: uint16(1665), - 351: uint16(1817), - 352: uint16(1832), - 353: uint16(1665), - 354: uint16(1817), - 355: uint16(1665), - 356: uint16(1817), - 357: uint16(1832), - 358: uint16(1752), - 359: uint16(1752), - 360: uint16(1752), - 361: uint16(1805), - 362: uint16(1850), - 363: uint16(1850), - 364: uint16(1832), - 365: uint16(1752), - 366: uint16(1749), - 367: uint16(1752), - 368: uint16(1805), - 369: uint16(1752), - 370: uint16(1752), - 371: uint16(1713), - 372: uint16(1858), - 373: uint16(1775), - 374: uint16(1775), - 375: uint16(1832), - 376: uint16(1665), - 377: uint16(1799), - 378: uint16(1799), - 379: uint16(1823), - 380: uint16(1823), - 381: uint16(1761), - 382: uint16(1765), - 383: uint16(1890), - 384: uint16(1665), - 385: uint16(1757), - 386: uint16(1761), - 387: uint16(1771), - 388: uint16(1774), - 389: uint16(1690), - 390: uint16(1894), - 391: uint16(1913), - 392: uint16(1913), - 393: uint16(1929), - 394: uint16(1929), - 395: uint16(1929), - 396: uint16(2100), - 397: uint16(2100), - 398: uint16(2100), - 399: uint16(2100), - 400: uint16(2100), - 401: uint16(2100), - 402: uint16(2100), - 403: uint16(2100), - 404: uint16(2100), - 405: uint16(2100), - 406: uint16(2100), - 407: uint16(2100), - 408: uint16(2100), - 409: uint16(2100), - 410: uint16(2100), - 411: uint16(207), - 412: uint16(1220), - 413: uint16(331), - 414: uint16(620), - 415: uint16(967), - 416: uint16(806), - 417: uint16(1074), - 418: uint16(1499), - 419: uint16(1432), - 420: uint16(1463), - 421: uint16(1479), - 422: uint16(1419), - 423: uint16(1422), - 424: uint16(1557), - 425: uint16(1512), - 426: uint16(1598), - 427: uint16(1599), - 428: uint16(1644), - 429: uint16(1645), - 430: uint16(1654), - 431: uint16(1660), - 432: uint16(1555), - 433: uint16(1505), - 434: uint16(1684), - 435: uint16(1462), - 436: uint16(1670), - 437: uint16(1563), - 438: uint16(1619), - 439: uint16(1593), - 440: uint16(1676), - 441: uint16(1679), - 442: uint16(1613), - 443: uint16(1680), - 444: uint16(1554), - 445: uint16(1558), - 446: uint16(1689), - 447: uint16(1692), - 448: uint16(1605), - 449: uint16(1589), - 450: uint16(1955), - 451: uint16(1959), - 452: uint16(1941), - 453: uint16(1803), - 454: uint16(1950), - 455: uint16(1951), - 456: uint16(1945), - 457: uint16(1946), - 458: uint16(1831), - 459: uint16(1820), - 460: uint16(1842), - 461: uint16(1948), - 462: uint16(1948), - 463: uint16(1952), - 464: uint16(1833), - 465: uint16(1954), - 466: uint16(1834), - 467: uint16(1961), - 468: uint16(1978), - 469: uint16(1838), - 470: uint16(1851), - 471: uint16(1948), - 472: uint16(1852), - 473: uint16(1922), - 474: uint16(1947), - 475: uint16(1948), - 476: uint16(1836), - 477: uint16(1932), - 478: uint16(1935), - 479: uint16(1936), - 480: uint16(1942), - 481: uint16(1866), - 482: uint16(1881), - 483: uint16(1964), - 484: uint16(1859), - 485: uint16(1998), - 486: uint16(1996), - 487: uint16(1980), - 488: uint16(1888), - 489: uint16(1843), - 490: uint16(1937), - 491: uint16(1981), - 492: uint16(1939), - 493: uint16(1933), - 494: uint16(1968), - 495: uint16(1869), - 496: uint16(1896), - 497: uint16(1988), - 498: uint16(1993), - 499: uint16(1995), - 500: uint16(1884), - 501: uint16(1891), - 502: uint16(1997), - 503: uint16(1953), - 504: uint16(1999), - 505: uint16(2000), - 506: uint16(1994), - 507: uint16(2001), - 508: uint16(1957), - 509: uint16(1966), - 510: uint16(2002), - 511: uint16(1931), - 512: uint16(1990), - 513: uint16(2006), - 514: uint16(1962), - 515: uint16(2003), - 516: uint16(2007), - 517: uint16(2004), - 518: uint16(1882), - 519: uint16(2010), - 520: uint16(2011), - 521: uint16(2012), - 522: uint16(2008), - 523: uint16(2013), - 524: uint16(2015), - 525: uint16(1944), - 526: uint16(1898), - 527: uint16(2019), - 528: uint16(2020), - 529: uint16(1928), - 530: uint16(2014), - 531: uint16(2023), - 532: uint16(1903), - 533: uint16(2022), - 534: uint16(2016), - 535: uint16(2017), - 536: uint16(2018), - 537: uint16(2021), - 538: uint16(1965), - 539: uint16(1974), - 540: uint16(1970), - 541: uint16(2024), - 542: uint16(1979), - 543: uint16(1967), - 544: uint16(2025), - 545: uint16(2034), - 546: uint16(2036), - 547: uint16(2037), - 548: uint16(2038), - 549: uint16(2039), - 550: uint16(2028), - 551: uint16(1923), - 552: uint16(1924), - 553: uint16(2044), - 554: uint16(2022), - 555: uint16(2046), - 556: uint16(2047), - 557: uint16(2048), - 558: uint16(2049), - 559: uint16(2050), - 560: uint16(2051), - 561: uint16(2054), - 562: uint16(2062), - 563: uint16(2055), - 564: uint16(2056), - 565: uint16(2057), - 566: uint16(2058), - 567: uint16(2060), - 568: uint16(2061), - 569: uint16(2059), - 570: uint16(1956), - 571: uint16(1938), - 572: uint16(1949), - 573: uint16(1958), - 574: uint16(2063), - 575: uint16(2064), - 576: uint16(2070), - 577: uint16(2085), - 578: uint16(2088), -} -var _yy_reduce_ofst = [411]int16{ - 0: int16(-int32(125)), - 1: int16(733), - 2: int16(789), - 3: int16(241), - 4: int16(293), - 5: int16(-int32(123)), - 6: int16(-int32(193)), - 7: int16(-int32(191)), - 8: int16(-int32(183)), - 9: int16(-int32(187)), - 10: int16(166), - 11: int16(238), - 12: int16(133), - 13: int16(-int32(207)), - 14: int16(-int32(199)), - 15: int16(-int32(267)), - 16: int16(-int32(176)), - 17: int16(-int32(6)), - 18: int16(204), - 19: int16(489), - 20: int16(576), - 21: int16(598), - 22: int16(-int32(175)), - 23: int16(686), - 24: int16(860), - 25: int16(615), - 26: int16(725), - 27: int16(1014), - 28: int16(778), - 29: int16(781), - 30: int16(857), - 31: int16(616), - 32: int16(887), - 33: int16(87), - 34: int16(240), - 35: int16(-int32(192)), - 36: int16(408), - 37: int16(626), - 38: int16(796), - 39: int16(843), - 40: int16(854), - 41: int16(1004), - 42: int16(-int32(271)), - 43: int16(-int32(271)), - 44: int16(-int32(271)), - 45: int16(-int32(271)), - 46: int16(-int32(271)), - 47: int16(-int32(271)), - 48: int16(-int32(271)), - 49: int16(-int32(271)), - 50: int16(-int32(271)), - 51: int16(-int32(271)), - 52: int16(-int32(271)), - 53: int16(-int32(271)), - 54: int16(-int32(271)), - 55: int16(-int32(271)), - 56: int16(-int32(271)), - 57: int16(-int32(271)), - 58: int16(-int32(271)), - 59: int16(-int32(271)), - 60: int16(-int32(271)), - 61: int16(-int32(271)), - 62: int16(-int32(271)), - 63: int16(-int32(271)), - 64: int16(-int32(271)), - 65: int16(-int32(271)), - 66: int16(-int32(271)), - 67: int16(-int32(271)), - 68: int16(-int32(271)), - 69: int16(-int32(271)), - 70: int16(-int32(271)), - 71: int16(-int32(271)), - 72: int16(-int32(271)), - 73: int16(-int32(271)), - 74: int16(-int32(271)), - 75: int16(-int32(271)), - 76: int16(-int32(271)), - 77: int16(-int32(271)), - 78: int16(-int32(271)), - 79: int16(80), - 80: int16(83), - 81: int16(313), - 82: int16(886), - 83: int16(888), - 84: int16(918), - 85: int16(938), - 86: int16(1021), - 87: int16(1034), - 88: int16(1036), - 89: int16(1141), - 90: int16(1159), - 91: int16(1163), - 92: int16(1166), - 93: int16(1168), - 94: int16(1170), - 95: int16(1176), - 96: int16(1178), - 97: int16(1180), - 98: int16(1184), - 99: int16(1196), - 100: int16(1198), - 101: int16(1205), - 102: int16(1215), - 103: int16(1225), - 104: int16(1227), - 105: int16(1236), - 106: int16(1252), - 107: int16(1254), - 108: int16(1264), - 109: int16(1303), - 110: int16(1309), - 111: int16(1312), - 112: int16(1322), - 113: int16(1325), - 114: int16(1328), - 115: int16(1337), - 116: int16(1340), - 117: int16(1343), - 118: int16(1353), - 119: int16(1371), - 120: int16(1373), - 121: int16(1384), - 122: int16(1386), - 123: int16(1411), - 124: int16(1413), - 125: int16(1420), - 126: int16(1424), - 127: int16(1426), - 128: int16(1458), - 129: int16(1470), - 130: int16(1473), - 131: int16(-int32(271)), - 132: int16(-int32(271)), - 133: int16(-int32(271)), - 134: int16(-int32(271)), - 135: int16(-int32(271)), - 136: int16(-int32(271)), - 137: int16(-int32(271)), - 138: int16(-int32(271)), - 139: int16(-int32(271)), - 140: int16(-int32(271)), - 141: int16(-int32(271)), - 142: int16(138), - 143: int16(459), - 144: int16(396), - 145: int16(-int32(158)), - 146: int16(470), - 147: int16(302), - 148: int16(-int32(212)), - 149: int16(521), - 150: int16(201), - 151: int16(-int32(195)), - 152: int16(-int32(92)), - 153: int16(559), - 154: int16(630), - 155: int16(632), - 156: int16(630), - 157: int16(-int32(271)), - 158: int16(632), - 159: int16(901), - 160: int16(63), - 161: int16(407), - 162: int16(670), - 163: int16(-int32(271)), - 164: int16(-int32(271)), - 165: int16(-int32(271)), - 166: int16(-int32(271)), - 167: int16(161), - 168: int16(161), - 169: int16(161), - 170: int16(251), - 171: int16(335), - 172: int16(847), - 173: int16(979), - 174: int16(1097), - 175: int16(537), - 176: int16(588), - 177: int16(618), - 178: int16(628), - 179: int16(688), - 180: int16(688), - 181: int16(-int32(166)), - 182: int16(-int32(161)), - 183: int16(674), - 184: int16(787), - 185: int16(794), - 186: int16(799), - 187: int16(852), - 188: int16(996), - 189: int16(-int32(122)), - 190: int16(837), - 191: int16(-int32(120)), - 192: int16(1018), - 193: int16(1035), - 194: int16(415), - 195: int16(1047), - 196: int16(1001), - 197: int16(958), - 198: int16(1082), - 199: int16(400), - 200: int16(1099), - 201: int16(779), - 202: int16(1137), - 203: int16(1142), - 204: int16(263), - 205: int16(1083), - 206: int16(1145), - 207: int16(1150), - 208: int16(1041), - 209: int16(1139), - 210: int16(965), - 211: int16(1050), - 212: int16(362), - 213: int16(849), - 214: int16(752), - 215: int16(629), - 216: int16(675), - 217: int16(1162), - 218: int16(1173), - 219: int16(1090), - 220: int16(1195), - 221: int16(-int32(194)), - 222: int16(56), - 223: int16(185), - 224: int16(-int32(135)), - 225: int16(232), - 226: int16(522), - 227: int16(560), - 228: int16(571), - 229: int16(601), - 230: int16(617), - 231: int16(669), - 232: int16(683), - 233: int16(711), - 234: int16(850), - 235: int16(893), - 236: int16(1000), - 237: int16(1040), - 238: int16(1049), - 239: int16(1081), - 240: int16(1087), - 241: int16(1101), - 242: int16(392), - 243: int16(1114), - 244: int16(1123), - 245: int16(1155), - 246: int16(1161), - 247: int16(1175), - 248: int16(1271), - 249: int16(1293), - 250: int16(1299), - 251: int16(1330), - 252: int16(1339), - 253: int16(1342), - 254: int16(1347), - 255: int16(593), - 256: int16(1282), - 257: int16(1286), - 258: int16(1350), - 259: int16(1359), - 260: int16(1368), - 261: int16(1314), - 262: int16(1480), - 263: int16(1483), - 264: int16(1507), - 265: int16(1085), - 266: int16(1338), - 267: int16(1526), - 268: int16(1527), - 269: int16(1487), - 270: int16(1531), - 271: int16(560), - 272: int16(1532), - 273: int16(1534), - 274: int16(1535), - 275: int16(1538), - 276: int16(1539), - 277: int16(1541), - 278: int16(1448), - 279: int16(1450), - 280: int16(1496), - 281: int16(1484), - 282: int16(1485), - 283: int16(1489), - 284: int16(1490), - 285: int16(1314), - 286: int16(1496), - 287: int16(1496), - 288: int16(1504), - 289: int16(1536), - 290: int16(1564), - 291: int16(1451), - 292: int16(1486), - 293: int16(1492), - 294: int16(1509), - 295: int16(1493), - 296: int16(1465), - 297: int16(1515), - 298: int16(1494), - 299: int16(1495), - 300: int16(1517), - 301: int16(1500), - 302: int16(1519), - 303: int16(1474), - 304: int16(1550), - 305: int16(1543), - 306: int16(1548), - 307: int16(1556), - 308: int16(1565), - 309: int16(1566), - 310: int16(1518), - 311: int16(1523), - 312: int16(1542), - 313: int16(1544), - 314: int16(1525), - 315: int16(1545), - 316: int16(1513), - 317: int16(1553), - 318: int16(1552), - 319: int16(1604), - 320: int16(1508), - 321: int16(1510), - 322: int16(1608), - 323: int16(1609), - 324: int16(1520), - 325: int16(1528), - 326: int16(1612), - 327: int16(1540), - 328: int16(1559), - 329: int16(1560), - 330: int16(1592), - 331: int16(1591), - 332: int16(1595), - 333: int16(1596), - 334: int16(1597), - 335: int16(1629), - 336: int16(1638), - 337: int16(1594), - 338: int16(1569), - 339: int16(1570), - 340: int16(1600), - 341: int16(1568), - 342: int16(1610), - 343: int16(1601), - 344: int16(1611), - 345: int16(1603), - 346: int16(1643), - 347: int16(1651), - 348: int16(1562), - 349: int16(1571), - 350: int16(1655), - 351: int16(1659), - 352: int16(1640), - 353: int16(1663), - 354: int16(1666), - 355: int16(1664), - 356: int16(1667), - 357: int16(1641), - 358: int16(1650), - 359: int16(1652), - 360: int16(1653), - 361: int16(1647), - 362: int16(1656), - 363: int16(1657), - 364: int16(1658), - 365: int16(1668), - 366: int16(1672), - 367: int16(1681), - 368: int16(1649), - 369: int16(1682), - 370: int16(1683), - 371: int16(1573), - 372: int16(1582), - 373: int16(1607), - 374: int16(1615), - 375: int16(1685), - 376: int16(1702), - 377: int16(1586), - 378: int16(1587), - 379: int16(1642), - 380: int16(1646), - 381: int16(1673), - 382: int16(1675), - 383: int16(1636), - 384: int16(1714), - 385: int16(1637), - 386: int16(1677), - 387: int16(1674), - 388: int16(1678), - 389: int16(1694), - 390: int16(1719), - 391: int16(1734), - 392: int16(1735), - 393: int16(1746), - 394: int16(1747), - 395: int16(1750), - 396: int16(1633), - 397: int16(1661), + 76: uint16(1093), + 77: uint16(1093), + 78: uint16(1093), + 79: uint16(1093), + 80: uint16(1093), + 81: uint16(1093), + 82: uint16(1093), + 83: uint16(1113), + 84: uint16(1093), + 85: uint16(1216), + 86: uint16(957), + 87: uint16(957), + 88: uint16(1523), + 89: uint16(1602), + 90: uint16(1674), + 91: uint16(1828), + 92: uint16(1828), + 93: uint16(1828), + 94: uint16(1828), + 95: uint16(1828), + 96: uint16(1828), + 97: uint16(1828), + 98: uint16(1828), + 99: uint16(1828), + 100: uint16(1828), + 101: uint16(1828), + 102: uint16(1828), + 103: uint16(1828), + 104: uint16(1828), + 105: uint16(1828), + 106: uint16(1828), + 107: uint16(1828), + 108: uint16(1828), + 109: uint16(1828), + 110: uint16(1828), + 111: uint16(1828), + 112: uint16(1828), + 113: uint16(1828), + 114: uint16(1828), + 115: uint16(1828), + 116: uint16(1828), + 117: uint16(1828), + 118: uint16(1828), + 119: uint16(1828), + 120: uint16(1828), + 121: uint16(1828), + 122: uint16(1828), + 123: uint16(1828), + 124: uint16(1828), + 125: uint16(1828), + 126: uint16(1828), + 127: uint16(1828), + 128: uint16(1828), + 129: uint16(1828), + 130: uint16(1828), + 131: uint16(1828), + 132: uint16(1828), + 133: uint16(1828), + 134: uint16(1828), + 135: uint16(1828), + 136: uint16(1828), + 137: uint16(1828), + 138: uint16(1828), + 139: uint16(1828), + 140: uint16(137), + 141: uint16(181), + 142: uint16(181), + 143: uint16(181), + 144: uint16(181), + 145: uint16(181), + 146: uint16(181), + 147: uint16(181), + 148: uint16(96), + 149: uint16(222), + 150: uint16(143), + 151: uint16(477), + 152: uint16(713), + 153: uint16(1133), + 154: uint16(1268), + 155: uint16(713), + 156: uint16(713), + 157: uint16(79), + 158: uint16(79), + 159: uint16(713), + 160: uint16(770), + 161: uint16(83), + 162: uint16(65), + 163: uint16(65), + 164: uint16(65), + 165: uint16(288), + 166: uint16(162), + 167: uint16(162), + 168: uint16(2142), + 169: uint16(2142), + 170: uint16(696), + 171: uint16(696), + 172: uint16(696), + 173: uint16(238), + 174: uint16(474), + 175: uint16(474), + 176: uint16(474), + 177: uint16(474), + 178: uint16(1217), + 179: uint16(1217), + 180: uint16(678), + 181: uint16(477), + 182: uint16(324), + 183: uint16(398), + 184: uint16(713), + 185: uint16(713), + 186: uint16(713), + 187: uint16(713), + 188: uint16(713), + 189: uint16(713), + 190: uint16(713), + 191: uint16(713), + 192: uint16(713), + 193: uint16(713), + 194: uint16(713), + 195: uint16(713), + 196: uint16(713), + 197: uint16(713), + 198: uint16(713), + 199: uint16(713), + 200: uint16(713), + 201: uint16(713), + 202: uint16(713), + 203: uint16(1220), + 204: uint16(366), + 205: uint16(366), + 206: uint16(713), + 207: uint16(917), + 208: uint16(283), + 209: uint16(283), + 210: uint16(434), + 211: uint16(434), + 212: uint16(605), + 213: uint16(605), + 214: uint16(1298), + 215: uint16(2142), + 216: uint16(2142), + 217: uint16(2142), + 218: uint16(2142), + 219: uint16(2142), + 220: uint16(2142), + 221: uint16(2142), + 222: uint16(1179), + 223: uint16(1157), + 224: uint16(1157), + 225: uint16(487), + 226: uint16(527), + 227: uint16(585), + 228: uint16(645), + 229: uint16(749), + 230: uint16(914), + 231: uint16(968), + 232: uint16(752), + 233: uint16(713), + 234: uint16(713), + 235: uint16(713), + 236: uint16(713), + 237: uint16(713), + 238: uint16(713), + 239: uint16(713), + 240: uint16(713), + 241: uint16(713), + 242: uint16(713), + 243: uint16(303), + 244: uint16(713), + 245: uint16(713), + 246: uint16(713), + 247: uint16(713), + 248: uint16(713), + 249: uint16(713), + 250: uint16(713), + 251: uint16(713), + 252: uint16(713), + 253: uint16(713), + 254: uint16(713), + 255: uint16(713), + 256: uint16(797), + 257: uint16(797), + 258: uint16(797), + 259: uint16(713), + 260: uint16(713), + 261: uint16(713), + 262: uint16(959), + 263: uint16(713), + 264: uint16(713), + 265: uint16(713), + 266: uint16(1169), + 267: uint16(1271), + 268: uint16(713), + 269: uint16(713), + 270: uint16(1330), + 271: uint16(713), + 272: uint16(713), + 273: uint16(713), + 274: uint16(713), + 275: uint16(713), + 276: uint16(713), + 277: uint16(713), + 278: uint16(713), + 279: uint16(629), + 280: uint16(7), + 281: uint16(91), + 282: uint16(876), + 283: uint16(876), + 284: uint16(876), + 285: uint16(876), + 286: uint16(953), + 287: uint16(91), + 288: uint16(91), + 289: uint16(1246), + 290: uint16(1065), + 291: uint16(1106), + 292: uint16(1374), + 293: uint16(1329), + 294: uint16(1348), + 295: uint16(468), + 296: uint16(1348), + 297: uint16(1394), + 298: uint16(785), + 299: uint16(1329), + 300: uint16(1329), + 301: uint16(785), + 302: uint16(1329), + 303: uint16(468), + 304: uint16(1394), + 305: uint16(859), + 306: uint16(854), + 307: uint16(1402), + 308: uint16(1449), + 309: uint16(1449), + 310: uint16(1449), + 311: uint16(1173), + 312: uint16(1173), + 313: uint16(1173), + 314: uint16(1173), + 315: uint16(1355), + 316: uint16(1355), + 317: uint16(1030), + 318: uint16(1341), + 319: uint16(405), + 320: uint16(1230), + 321: uint16(1795), + 322: uint16(1795), + 323: uint16(1711), + 324: uint16(1711), + 325: uint16(1829), + 326: uint16(1829), + 327: uint16(1711), + 328: uint16(1717), + 329: uint16(1719), + 330: uint16(1850), + 331: uint16(1833), + 332: uint16(1860), + 333: uint16(1860), + 334: uint16(1860), + 335: uint16(1860), + 336: uint16(1711), + 337: uint16(1868), + 338: uint16(1740), + 339: uint16(1719), + 340: uint16(1719), + 341: uint16(1740), + 342: uint16(1850), + 343: uint16(1833), + 344: uint16(1740), + 345: uint16(1833), + 346: uint16(1740), + 347: uint16(1711), + 348: uint16(1868), + 349: uint16(1745), + 350: uint16(1843), + 351: uint16(1711), + 352: uint16(1868), + 353: uint16(1887), + 354: uint16(1711), + 355: uint16(1868), + 356: uint16(1711), + 357: uint16(1868), + 358: uint16(1887), + 359: uint16(1801), + 360: uint16(1801), + 361: uint16(1801), + 362: uint16(1855), + 363: uint16(1900), + 364: uint16(1900), + 365: uint16(1887), + 366: uint16(1801), + 367: uint16(1797), + 368: uint16(1801), + 369: uint16(1855), + 370: uint16(1801), + 371: uint16(1801), + 372: uint16(1761), + 373: uint16(1912), + 374: uint16(1830), + 375: uint16(1830), + 376: uint16(1887), + 377: uint16(1711), + 378: uint16(1862), + 379: uint16(1862), + 380: uint16(1875), + 381: uint16(1875), + 382: uint16(1810), + 383: uint16(1815), + 384: uint16(1940), + 385: uint16(1711), + 386: uint16(1807), + 387: uint16(1810), + 388: uint16(1821), + 389: uint16(1823), + 390: uint16(1740), + 391: uint16(1945), + 392: uint16(1963), + 393: uint16(1963), + 394: uint16(1974), + 395: uint16(1974), + 396: uint16(1974), + 397: uint16(2142), + 398: uint16(2142), + 399: uint16(2142), + 400: uint16(2142), + 401: uint16(2142), + 402: uint16(2142), + 403: uint16(2142), + 404: uint16(2142), + 405: uint16(2142), + 406: uint16(2142), + 407: uint16(2142), + 408: uint16(2142), + 409: uint16(2142), + 410: uint16(2142), + 411: uint16(2142), + 412: uint16(20), + 413: uint16(1224), + 414: uint16(256), + 415: uint16(1111), + 416: uint16(1115), + 417: uint16(1114), + 418: uint16(1192), + 419: uint16(1496), + 420: uint16(1424), + 421: uint16(1505), + 422: uint16(1427), + 423: uint16(355), + 424: uint16(1383), + 425: uint16(1537), + 426: uint16(1506), + 427: uint16(1538), + 428: uint16(1553), + 429: uint16(1583), + 430: uint16(1584), + 431: uint16(1591), + 432: uint16(1625), + 433: uint16(541), + 434: uint16(1445), + 435: uint16(1562), + 436: uint16(1450), + 437: uint16(1572), + 438: uint16(1515), + 439: uint16(1428), + 440: uint16(1532), + 441: uint16(1592), + 442: uint16(1629), + 443: uint16(1520), + 444: uint16(1630), + 445: uint16(1639), + 446: uint16(1510), + 447: uint16(1544), + 448: uint16(1662), + 449: uint16(1675), + 450: uint16(1551), + 451: uint16(48), + 452: uint16(1996), + 453: uint16(2001), + 454: uint16(1983), + 455: uint16(1844), + 456: uint16(1993), + 457: uint16(1994), + 458: uint16(1986), + 459: uint16(1989), + 460: uint16(1874), + 461: uint16(1863), + 462: uint16(1885), + 463: uint16(1991), + 464: uint16(1991), + 465: uint16(1995), + 466: uint16(1876), + 467: uint16(1997), + 468: uint16(1877), + 469: uint16(2004), + 470: uint16(2021), + 471: uint16(1881), + 472: uint16(1894), + 473: uint16(1991), + 474: uint16(1895), + 475: uint16(1965), + 476: uint16(1990), + 477: uint16(1991), + 478: uint16(1878), + 479: uint16(1975), + 480: uint16(1977), + 481: uint16(1978), + 482: uint16(1979), + 483: uint16(1903), + 484: uint16(1918), + 485: uint16(2002), + 486: uint16(1896), + 487: uint16(2034), + 488: uint16(2033), + 489: uint16(2017), + 490: uint16(1925), + 491: uint16(1880), + 492: uint16(1976), + 493: uint16(2018), + 494: uint16(1980), + 495: uint16(1967), + 496: uint16(2005), + 497: uint16(1904), + 498: uint16(1932), + 499: uint16(2025), + 500: uint16(2030), + 501: uint16(2032), + 502: uint16(1921), + 503: uint16(1928), + 504: uint16(2035), + 505: uint16(1987), + 506: uint16(2036), + 507: uint16(2037), + 508: uint16(2038), + 509: uint16(2040), + 510: uint16(1988), + 511: uint16(2006), + 512: uint16(2039), + 513: uint16(1960), + 514: uint16(2041), + 515: uint16(2042), + 516: uint16(1999), + 517: uint16(2023), + 518: uint16(2044), + 519: uint16(2043), + 520: uint16(1919), + 521: uint16(2048), + 522: uint16(2049), + 523: uint16(2050), + 524: uint16(2046), + 525: uint16(2051), + 526: uint16(2053), + 527: uint16(1981), + 528: uint16(1935), + 529: uint16(2056), + 530: uint16(2057), + 531: uint16(1966), + 532: uint16(2047), + 533: uint16(2061), + 534: uint16(1941), + 535: uint16(2060), + 536: uint16(2052), + 537: uint16(2054), + 538: uint16(2055), + 539: uint16(2058), + 540: uint16(2003), + 541: uint16(2012), + 542: uint16(2007), + 543: uint16(2059), + 544: uint16(2015), + 545: uint16(2008), + 546: uint16(2062), + 547: uint16(2071), + 548: uint16(2073), + 549: uint16(2074), + 550: uint16(2072), + 551: uint16(2075), + 552: uint16(2065), + 553: uint16(1962), + 554: uint16(1964), + 555: uint16(2079), + 556: uint16(2060), + 557: uint16(2082), + 558: uint16(2084), + 559: uint16(2085), + 560: uint16(2087), + 561: uint16(2086), + 562: uint16(2089), + 563: uint16(2088), + 564: uint16(2091), + 565: uint16(2093), + 566: uint16(2099), + 567: uint16(2094), + 568: uint16(2095), + 569: uint16(2096), + 570: uint16(2097), + 571: uint16(2100), + 572: uint16(2101), + 573: uint16(2102), + 574: uint16(1998), + 575: uint16(1984), + 576: uint16(1985), + 577: uint16(2000), + 578: uint16(2103), + 579: uint16(2098), + 580: uint16(2109), + 581: uint16(2117), + 582: uint16(2128), +} +var _yy_reduce_ofst = [412]int16{ + 0: int16(-int32(71)), + 1: int16(194), + 2: int16(343), + 3: int16(835), + 4: int16(-int32(180)), + 5: int16(-int32(177)), + 6: int16(838), + 7: int16(-int32(194)), + 8: int16(-int32(188)), + 9: int16(-int32(185)), + 10: int16(-int32(183)), + 11: int16(82), + 12: int16(183), + 13: int16(-int32(65)), + 14: int16(133), + 15: int16(245), + 16: int16(346), + 17: int16(407), + 18: int16(458), + 19: int16(-int32(178)), + 20: int16(75), + 21: int16(-int32(275)), + 22: int16(-int32(4)), + 23: int16(310), + 24: int16(312), + 25: int16(489), + 26: int16(575), + 27: int16(596), + 28: int16(463), + 29: int16(686), + 30: int16(707), + 31: int16(725), + 32: int16(780), + 33: int16(1098), + 34: int16(856), + 35: int16(778), + 36: int16(1059), + 37: int16(1090), + 38: int16(708), + 39: int16(887), + 40: int16(86), + 41: int16(448), + 42: int16(980), + 43: int16(630), + 44: int16(680), + 45: int16(681), + 46: int16(684), + 47: int16(796), + 48: int16(801), + 49: int16(796), + 50: int16(801), + 51: int16(-int32(261)), + 52: int16(-int32(261)), + 53: int16(-int32(261)), + 54: int16(-int32(261)), + 55: int16(-int32(261)), + 56: int16(-int32(261)), + 57: int16(-int32(261)), + 58: int16(-int32(261)), + 59: int16(-int32(261)), + 60: int16(-int32(261)), + 61: int16(-int32(261)), + 62: int16(-int32(261)), + 63: int16(-int32(261)), + 64: int16(-int32(261)), + 65: int16(-int32(261)), + 66: int16(-int32(261)), + 67: int16(-int32(261)), + 68: int16(-int32(261)), + 69: int16(-int32(261)), + 70: int16(-int32(261)), + 71: int16(-int32(261)), + 72: int16(-int32(261)), + 73: int16(-int32(261)), + 74: int16(-int32(261)), + 75: int16(-int32(261)), + 76: int16(-int32(261)), + 77: int16(-int32(261)), + 78: int16(-int32(261)), + 79: int16(-int32(261)), + 80: int16(-int32(261)), + 81: int16(-int32(261)), + 82: int16(-int32(261)), + 83: int16(-int32(261)), + 84: int16(-int32(261)), + 85: int16(-int32(261)), + 86: int16(-int32(261)), + 87: int16(-int32(261)), + 88: int16(391), + 89: int16(886), + 90: int16(888), + 91: int16(1013), + 92: int16(1016), + 93: int16(1081), + 94: int16(1087), + 95: int16(1151), + 96: int16(1159), + 97: int16(1177), + 98: int16(1185), + 99: int16(1188), + 100: int16(1190), + 101: int16(1194), + 102: int16(1197), + 103: int16(1203), + 104: int16(1247), + 105: int16(1260), + 106: int16(1264), + 107: int16(1267), + 108: int16(1269), + 109: int16(1273), + 110: int16(1315), + 111: int16(1322), + 112: int16(1335), + 113: int16(1337), + 114: int16(1356), + 115: int16(1362), + 116: int16(1418), + 117: int16(1425), + 118: int16(1453), + 119: int16(1457), + 120: int16(1465), + 121: int16(1473), + 122: int16(1487), + 123: int16(1495), + 124: int16(1507), + 125: int16(1517), + 126: int16(1521), + 127: int16(1534), + 128: int16(1543), + 129: int16(1546), + 130: int16(1549), + 131: int16(1552), + 132: int16(1554), + 133: int16(1560), + 134: int16(1581), + 135: int16(1590), + 136: int16(1593), + 137: int16(1595), + 138: int16(1621), + 139: int16(1623), + 140: int16(-int32(261)), + 141: int16(-int32(261)), + 142: int16(-int32(261)), + 143: int16(-int32(261)), + 144: int16(-int32(261)), + 145: int16(-int32(261)), + 146: int16(-int32(261)), + 147: int16(-int32(261)), + 148: int16(-int32(261)), + 149: int16(-int32(261)), + 150: int16(-int32(261)), + 151: int16(-int32(186)), + 152: int16(-int32(117)), + 153: int16(260), + 154: int16(263), + 155: int16(460), + 156: int16(631), + 157: int16(-int32(74)), + 158: int16(497), + 159: int16(-int32(181)), + 160: int16(-int32(261)), + 161: int16(939), + 162: int16(176), + 163: int16(274), + 164: int16(338), + 165: int16(676), + 166: int16(-int32(261)), + 167: int16(-int32(261)), + 168: int16(-int32(261)), + 169: int16(-int32(261)), + 170: int16(-int32(212)), + 171: int16(-int32(212)), + 172: int16(-int32(212)), + 173: int16(-int32(184)), + 174: int16(149), + 175: int16(777), + 176: int16(1061), + 177: int16(1103), + 178: int16(265), + 179: int16(419), + 180: int16(-int32(254)), + 181: int16(670), + 182: int16(677), + 183: int16(677), + 184: int16(-int32(11)), + 185: int16(-int32(129)), + 186: int16(184), + 187: int16(488), + 188: int16(736), + 189: int16(789), + 190: int16(805), + 191: int16(844), + 192: int16(403), + 193: int16(529), + 194: int16(579), + 195: int16(668), + 196: int16(783), + 197: int16(841), + 198: int16(1158), + 199: int16(1112), + 200: int16(806), + 201: int16(861), + 202: int16(1095), + 203: int16(846), + 204: int16(839), + 205: int16(1031), + 206: int16(-int32(189)), + 207: int16(1077), + 208: int16(1080), + 209: int16(1116), + 210: int16(1084), + 211: int16(1156), + 212: int16(1139), + 213: int16(1221), + 214: int16(46), + 215: int16(1099), + 216: int16(1037), + 217: int16(1118), + 218: int16(1171), + 219: int16(1214), + 220: int16(1210), + 221: int16(1258), + 222: int16(-int32(210)), + 223: int16(-int32(190)), + 224: int16(-int32(176)), + 225: int16(-int32(115)), + 226: int16(117), + 227: int16(262), + 228: int16(376), + 229: int16(490), + 230: int16(511), + 231: int16(520), + 232: int16(618), + 233: int16(639), + 234: int16(743), + 235: int16(901), + 236: int16(907), + 237: int16(958), + 238: int16(1014), + 239: int16(1055), + 240: int16(1108), + 241: int16(1193), + 242: int16(1244), + 243: int16(720), + 244: int16(1248), + 245: int16(1277), + 246: int16(1324), + 247: int16(1347), + 248: int16(1417), + 249: int16(1431), + 250: int16(1432), + 251: int16(1440), + 252: int16(1451), + 253: int16(1452), + 254: int16(1463), + 255: int16(1478), + 256: int16(1286), + 257: int16(1350), + 258: int16(1369), + 259: int16(1490), + 260: int16(1498), + 261: int16(1501), + 262: int16(773), + 263: int16(1509), + 264: int16(1513), + 265: int16(1528), + 266: int16(1292), + 267: int16(1367), + 268: int16(1535), + 269: int16(1536), + 270: int16(1477), + 271: int16(1542), + 272: int16(376), + 273: int16(1547), + 274: int16(1550), + 275: int16(1555), + 276: int16(1559), + 277: int16(1568), + 278: int16(1571), + 279: int16(1441), + 280: int16(1443), + 281: int16(1474), + 282: int16(1511), + 283: int16(1516), + 284: int16(1519), + 285: int16(1522), + 286: int16(773), + 287: int16(1474), + 288: int16(1474), + 289: int16(1503), + 290: int16(1567), + 291: int16(1594), + 292: int16(1484), + 293: int16(1527), + 294: int16(1556), + 295: int16(1570), + 296: int16(1557), + 297: int16(1524), + 298: int16(1573), + 299: int16(1545), + 300: int16(1548), + 301: int16(1576), + 302: int16(1561), + 303: int16(1587), + 304: int16(1540), + 305: int16(1575), + 306: int16(1606), + 307: int16(1611), + 308: int16(1622), + 309: int16(1624), + 310: int16(1626), + 311: int16(1582), + 312: int16(1597), + 313: int16(1598), + 314: int16(1599), + 315: int16(1601), + 316: int16(1603), + 317: int16(1563), + 318: int16(1608), + 319: int16(1605), + 320: int16(1604), + 321: int16(1564), + 322: int16(1566), + 323: int16(1655), + 324: int16(1660), + 325: int16(1578), + 326: int16(1579), + 327: int16(1665), + 328: int16(1586), + 329: int16(1607), + 330: int16(1610), + 331: int16(1642), + 332: int16(1641), + 333: int16(1645), + 334: int16(1646), + 335: int16(1647), + 336: int16(1679), + 337: int16(1688), + 338: int16(1644), + 339: int16(1618), + 340: int16(1619), + 341: int16(1648), + 342: int16(1628), + 343: int16(1659), + 344: int16(1649), + 345: int16(1663), + 346: int16(1650), + 347: int16(1700), + 348: int16(1702), + 349: int16(1612), + 350: int16(1615), + 351: int16(1706), + 352: int16(1708), + 353: int16(1689), + 354: int16(1709), + 355: int16(1712), + 356: int16(1713), + 357: int16(1715), + 358: int16(1691), + 359: int16(1698), + 360: int16(1699), + 361: int16(1701), + 362: int16(1693), + 363: int16(1704), + 364: int16(1707), + 365: int16(1705), + 366: int16(1714), + 367: int16(1703), + 368: int16(1718), + 369: int16(1710), + 370: int16(1720), + 371: int16(1721), + 372: int16(1632), + 373: int16(1634), + 374: int16(1664), + 375: int16(1666), + 376: int16(1729), + 377: int16(1751), + 378: int16(1635), + 379: int16(1636), + 380: int16(1692), + 381: int16(1694), + 382: int16(1716), + 383: int16(1722), + 384: int16(1684), + 385: int16(1763), + 386: int16(1685), + 387: int16(1723), + 388: int16(1724), + 389: int16(1727), + 390: int16(1730), + 391: int16(1768), + 392: int16(1783), + 393: int16(1784), + 394: int16(1793), + 395: int16(1794), + 396: int16(1796), + 397: int16(1683), 398: int16(1686), - 399: int16(1738), - 400: int16(1728), - 401: int16(1733), - 402: int16(1736), - 403: int16(1737), - 404: int16(1740), - 405: int16(1726), - 406: int16(1730), - 407: int16(1742), - 408: int16(1743), - 409: int16(1748), - 410: int16(1753), -} -var _yy_default = [579]uint16{ - 0: uint16(1648), - 1: uint16(1648), - 2: uint16(1648), - 3: uint16(1478), - 4: uint16(1243), - 5: uint16(1354), - 6: uint16(1243), - 7: uint16(1243), - 8: uint16(1243), - 9: uint16(1478), - 10: uint16(1478), - 11: uint16(1478), - 12: uint16(1243), - 13: uint16(1384), - 14: uint16(1384), - 15: uint16(1531), - 16: uint16(1276), - 17: uint16(1243), - 18: uint16(1243), - 19: uint16(1243), - 20: uint16(1243), - 21: uint16(1243), - 22: uint16(1243), - 23: uint16(1243), - 24: uint16(1243), - 25: uint16(1243), - 26: uint16(1243), - 27: uint16(1243), - 28: uint16(1477), - 29: uint16(1243), - 30: uint16(1243), - 31: uint16(1243), - 32: uint16(1243), - 33: uint16(1564), - 34: uint16(1564), - 35: uint16(1243), - 36: uint16(1243), - 37: uint16(1243), - 38: uint16(1243), - 39: uint16(1243), - 40: uint16(1243), - 41: uint16(1243), - 42: uint16(1243), - 43: uint16(1393), - 44: uint16(1243), - 45: uint16(1400), - 46: uint16(1243), - 47: uint16(1243), - 48: uint16(1243), - 49: uint16(1243), - 50: uint16(1243), - 51: uint16(1479), - 52: uint16(1480), - 53: uint16(1243), - 54: uint16(1243), - 55: uint16(1243), - 56: uint16(1530), - 57: uint16(1532), - 58: uint16(1495), - 59: uint16(1407), - 60: uint16(1406), - 61: uint16(1405), - 62: uint16(1404), - 63: uint16(1513), - 64: uint16(1372), - 65: uint16(1398), - 66: uint16(1391), - 67: uint16(1395), - 68: uint16(1474), - 69: uint16(1475), - 70: uint16(1473), - 71: uint16(1626), - 72: uint16(1480), - 73: uint16(1479), - 74: uint16(1243), - 75: uint16(1394), - 76: uint16(1442), - 77: uint16(1458), - 78: uint16(1441), - 79: uint16(1243), - 80: uint16(1243), - 81: uint16(1243), - 82: uint16(1243), - 83: uint16(1243), - 84: uint16(1243), - 85: uint16(1243), - 86: uint16(1243), - 87: uint16(1243), - 88: uint16(1243), - 89: uint16(1243), - 90: uint16(1243), - 91: uint16(1243), - 92: uint16(1243), - 93: uint16(1243), - 94: uint16(1243), - 95: uint16(1243), - 96: uint16(1243), - 97: uint16(1243), - 98: uint16(1243), - 99: uint16(1243), - 100: uint16(1243), - 101: uint16(1243), - 102: uint16(1243), - 103: uint16(1243), - 104: uint16(1243), - 105: uint16(1243), - 106: uint16(1243), - 107: uint16(1243), - 108: uint16(1243), - 109: uint16(1243), - 110: uint16(1243), - 111: uint16(1243), - 112: uint16(1243), - 113: uint16(1243), - 114: uint16(1243), - 115: uint16(1243), - 116: uint16(1243), - 117: uint16(1243), - 118: uint16(1243), - 119: uint16(1243), - 120: uint16(1243), - 121: uint16(1243), - 122: uint16(1243), - 123: uint16(1243), - 124: uint16(1243), - 125: uint16(1243), - 126: uint16(1243), - 127: uint16(1243), - 128: uint16(1243), - 129: uint16(1243), - 130: uint16(1243), - 131: uint16(1450), - 132: uint16(1457), - 133: uint16(1456), - 134: uint16(1455), - 135: uint16(1464), - 136: uint16(1454), - 137: uint16(1451), - 138: uint16(1444), - 139: uint16(1443), - 140: uint16(1445), - 141: uint16(1446), - 142: uint16(1243), - 143: uint16(1243), - 144: uint16(1267), - 145: uint16(1243), - 146: uint16(1243), - 147: uint16(1264), - 148: uint16(1318), - 149: uint16(1243), - 150: uint16(1243), - 151: uint16(1243), - 152: uint16(1243), - 153: uint16(1243), - 154: uint16(1550), - 155: uint16(1549), - 156: uint16(1243), - 157: uint16(1447), - 158: uint16(1243), - 159: uint16(1276), - 160: uint16(1435), - 161: uint16(1434), - 162: uint16(1433), - 163: uint16(1461), - 164: uint16(1448), - 165: uint16(1460), - 166: uint16(1459), - 167: uint16(1538), - 168: uint16(1600), - 169: uint16(1599), - 170: uint16(1496), - 171: uint16(1243), - 172: uint16(1243), - 173: uint16(1243), - 174: uint16(1243), - 175: uint16(1243), - 176: uint16(1243), - 177: uint16(1564), - 178: uint16(1243), - 179: uint16(1243), - 180: uint16(1243), - 181: uint16(1243), - 182: uint16(1243), - 183: uint16(1243), - 184: uint16(1243), - 185: uint16(1243), - 186: uint16(1243), - 187: uint16(1243), - 188: uint16(1243), - 189: uint16(1243), - 190: uint16(1243), - 191: uint16(1243), - 192: uint16(1243), - 193: uint16(1243), - 194: uint16(1243), - 195: uint16(1243), - 196: uint16(1243), - 197: uint16(1243), - 198: uint16(1243), - 199: uint16(1243), - 200: uint16(1243), - 201: uint16(1374), - 202: uint16(1564), - 203: uint16(1564), - 204: uint16(1243), - 205: uint16(1276), - 206: uint16(1564), - 207: uint16(1564), - 208: uint16(1375), - 209: uint16(1375), - 210: uint16(1272), - 211: uint16(1272), - 212: uint16(1378), - 213: uint16(1243), - 214: uint16(1545), - 215: uint16(1345), - 216: uint16(1345), - 217: uint16(1345), - 218: uint16(1345), - 219: uint16(1354), - 220: uint16(1345), - 221: uint16(1243), - 222: uint16(1243), - 223: uint16(1243), - 224: uint16(1243), - 225: uint16(1243), - 226: uint16(1243), - 227: uint16(1243), - 228: uint16(1243), - 229: uint16(1243), - 230: uint16(1243), - 231: uint16(1243), - 232: uint16(1243), - 233: uint16(1243), - 234: uint16(1243), - 235: uint16(1243), - 236: uint16(1535), - 237: uint16(1533), - 238: uint16(1243), - 239: uint16(1243), - 240: uint16(1243), - 241: uint16(1243), - 242: uint16(1243), - 243: uint16(1243), - 244: uint16(1243), - 245: uint16(1243), - 246: uint16(1243), - 247: uint16(1243), - 248: uint16(1243), - 249: uint16(1243), - 250: uint16(1243), - 251: uint16(1243), - 252: uint16(1243), - 253: uint16(1243), - 254: uint16(1243), - 255: uint16(1243), - 256: uint16(1243), - 257: uint16(1243), - 258: uint16(1243), - 259: uint16(1243), - 260: uint16(1243), - 261: uint16(1243), - 262: uint16(1243), - 263: uint16(1243), - 264: uint16(1243), - 265: uint16(1350), - 266: uint16(1243), - 267: uint16(1243), - 268: uint16(1243), - 269: uint16(1243), - 270: uint16(1243), - 271: uint16(1243), - 272: uint16(1243), - 273: uint16(1243), - 274: uint16(1243), - 275: uint16(1243), - 276: uint16(1243), - 277: uint16(1593), - 278: uint16(1243), - 279: uint16(1508), - 280: uint16(1332), - 281: uint16(1350), - 282: uint16(1350), - 283: uint16(1350), - 284: uint16(1350), - 285: uint16(1352), - 286: uint16(1333), - 287: uint16(1331), - 288: uint16(1344), - 289: uint16(1277), - 290: uint16(1250), - 291: uint16(1640), - 292: uint16(1410), - 293: uint16(1399), - 294: uint16(1351), - 295: uint16(1399), - 296: uint16(1637), - 297: uint16(1397), + 399: int16(1690), + 400: int16(1782), + 401: int16(1779), + 402: int16(1780), + 403: int16(1781), + 404: int16(1785), + 405: int16(1788), + 406: int16(1774), + 407: int16(1775), + 408: int16(1786), + 409: int16(1787), + 410: int16(1789), + 411: int16(1798), +} +var _yy_default = [583]uint16{ + 0: uint16(1663), + 1: uint16(1663), + 2: uint16(1663), + 3: uint16(1491), + 4: uint16(1254), + 5: uint16(1367), + 6: uint16(1254), + 7: uint16(1254), + 8: uint16(1254), + 9: uint16(1254), + 10: uint16(1491), + 11: uint16(1491), + 12: uint16(1491), + 13: uint16(1254), + 14: uint16(1254), + 15: uint16(1254), + 16: uint16(1254), + 17: uint16(1254), + 18: uint16(1254), + 19: uint16(1397), + 20: uint16(1397), + 21: uint16(1544), + 22: uint16(1287), + 23: uint16(1254), + 24: uint16(1254), + 25: uint16(1254), + 26: uint16(1254), + 27: uint16(1254), + 28: uint16(1254), + 29: uint16(1254), + 30: uint16(1254), + 31: uint16(1254), + 32: uint16(1254), + 33: uint16(1254), + 34: uint16(1254), + 35: uint16(1490), + 36: uint16(1254), + 37: uint16(1254), + 38: uint16(1254), + 39: uint16(1254), + 40: uint16(1578), + 41: uint16(1578), + 42: uint16(1254), + 43: uint16(1254), + 44: uint16(1254), + 45: uint16(1254), + 46: uint16(1254), + 47: uint16(1563), + 48: uint16(1562), + 49: uint16(1254), + 50: uint16(1254), + 51: uint16(1254), + 52: uint16(1406), + 53: uint16(1254), + 54: uint16(1413), + 55: uint16(1254), + 56: uint16(1254), + 57: uint16(1254), + 58: uint16(1254), + 59: uint16(1254), + 60: uint16(1492), + 61: uint16(1493), + 62: uint16(1254), + 63: uint16(1254), + 64: uint16(1254), + 65: uint16(1543), + 66: uint16(1545), + 67: uint16(1508), + 68: uint16(1420), + 69: uint16(1419), + 70: uint16(1418), + 71: uint16(1417), + 72: uint16(1526), + 73: uint16(1385), + 74: uint16(1411), + 75: uint16(1404), + 76: uint16(1408), + 77: uint16(1487), + 78: uint16(1488), + 79: uint16(1486), + 80: uint16(1641), + 81: uint16(1493), + 82: uint16(1492), + 83: uint16(1254), + 84: uint16(1407), + 85: uint16(1455), + 86: uint16(1471), + 87: uint16(1454), + 88: uint16(1254), + 89: uint16(1254), + 90: uint16(1254), + 91: uint16(1254), + 92: uint16(1254), + 93: uint16(1254), + 94: uint16(1254), + 95: uint16(1254), + 96: uint16(1254), + 97: uint16(1254), + 98: uint16(1254), + 99: uint16(1254), + 100: uint16(1254), + 101: uint16(1254), + 102: uint16(1254), + 103: uint16(1254), + 104: uint16(1254), + 105: uint16(1254), + 106: uint16(1254), + 107: uint16(1254), + 108: uint16(1254), + 109: uint16(1254), + 110: uint16(1254), + 111: uint16(1254), + 112: uint16(1254), + 113: uint16(1254), + 114: uint16(1254), + 115: uint16(1254), + 116: uint16(1254), + 117: uint16(1254), + 118: uint16(1254), + 119: uint16(1254), + 120: uint16(1254), + 121: uint16(1254), + 122: uint16(1254), + 123: uint16(1254), + 124: uint16(1254), + 125: uint16(1254), + 126: uint16(1254), + 127: uint16(1254), + 128: uint16(1254), + 129: uint16(1254), + 130: uint16(1254), + 131: uint16(1254), + 132: uint16(1254), + 133: uint16(1254), + 134: uint16(1254), + 135: uint16(1254), + 136: uint16(1254), + 137: uint16(1254), + 138: uint16(1254), + 139: uint16(1254), + 140: uint16(1463), + 141: uint16(1470), + 142: uint16(1469), + 143: uint16(1468), + 144: uint16(1477), + 145: uint16(1467), + 146: uint16(1464), + 147: uint16(1457), + 148: uint16(1456), + 149: uint16(1458), + 150: uint16(1459), + 151: uint16(1278), + 152: uint16(1254), + 153: uint16(1275), + 154: uint16(1329), + 155: uint16(1254), + 156: uint16(1254), + 157: uint16(1254), + 158: uint16(1254), + 159: uint16(1254), + 160: uint16(1460), + 161: uint16(1287), + 162: uint16(1448), + 163: uint16(1447), + 164: uint16(1446), + 165: uint16(1254), + 166: uint16(1474), + 167: uint16(1461), + 168: uint16(1473), + 169: uint16(1472), + 170: uint16(1551), + 171: uint16(1615), + 172: uint16(1614), + 173: uint16(1509), + 174: uint16(1254), + 175: uint16(1254), + 176: uint16(1254), + 177: uint16(1254), + 178: uint16(1254), + 179: uint16(1254), + 180: uint16(1578), + 181: uint16(1254), + 182: uint16(1254), + 183: uint16(1254), + 184: uint16(1254), + 185: uint16(1254), + 186: uint16(1254), + 187: uint16(1254), + 188: uint16(1254), + 189: uint16(1254), + 190: uint16(1254), + 191: uint16(1254), + 192: uint16(1254), + 193: uint16(1254), + 194: uint16(1254), + 195: uint16(1254), + 196: uint16(1254), + 197: uint16(1254), + 198: uint16(1254), + 199: uint16(1254), + 200: uint16(1254), + 201: uint16(1254), + 202: uint16(1254), + 203: uint16(1387), + 204: uint16(1578), + 205: uint16(1578), + 206: uint16(1254), + 207: uint16(1287), + 208: uint16(1578), + 209: uint16(1578), + 210: uint16(1388), + 211: uint16(1388), + 212: uint16(1283), + 213: uint16(1283), + 214: uint16(1391), + 215: uint16(1558), + 216: uint16(1358), + 217: uint16(1358), + 218: uint16(1358), + 219: uint16(1358), + 220: uint16(1367), + 221: uint16(1358), + 222: uint16(1254), + 223: uint16(1254), + 224: uint16(1254), + 225: uint16(1254), + 226: uint16(1254), + 227: uint16(1254), + 228: uint16(1254), + 229: uint16(1254), + 230: uint16(1254), + 231: uint16(1254), + 232: uint16(1254), + 233: uint16(1254), + 234: uint16(1254), + 235: uint16(1254), + 236: uint16(1254), + 237: uint16(1548), + 238: uint16(1546), + 239: uint16(1254), + 240: uint16(1254), + 241: uint16(1254), + 242: uint16(1254), + 243: uint16(1254), + 244: uint16(1254), + 245: uint16(1254), + 246: uint16(1254), + 247: uint16(1254), + 248: uint16(1254), + 249: uint16(1254), + 250: uint16(1254), + 251: uint16(1254), + 252: uint16(1254), + 253: uint16(1254), + 254: uint16(1254), + 255: uint16(1254), + 256: uint16(1254), + 257: uint16(1254), + 258: uint16(1254), + 259: uint16(1254), + 260: uint16(1254), + 261: uint16(1254), + 262: uint16(1254), + 263: uint16(1254), + 264: uint16(1254), + 265: uint16(1254), + 266: uint16(1363), + 267: uint16(1254), + 268: uint16(1254), + 269: uint16(1254), + 270: uint16(1254), + 271: uint16(1254), + 272: uint16(1254), + 273: uint16(1254), + 274: uint16(1254), + 275: uint16(1254), + 276: uint16(1254), + 277: uint16(1254), + 278: uint16(1608), + 279: uint16(1254), + 280: uint16(1521), + 281: uint16(1343), + 282: uint16(1363), + 283: uint16(1363), + 284: uint16(1363), + 285: uint16(1363), + 286: uint16(1365), + 287: uint16(1344), + 288: uint16(1342), + 289: uint16(1357), + 290: uint16(1288), + 291: uint16(1261), + 292: uint16(1655), + 293: uint16(1423), + 294: uint16(1412), + 295: uint16(1364), + 296: uint16(1412), + 297: uint16(1652), 298: uint16(1410), - 299: uint16(1410), - 300: uint16(1397), + 299: uint16(1423), + 300: uint16(1423), 301: uint16(1410), - 302: uint16(1351), - 303: uint16(1637), - 304: uint16(1293), - 305: uint16(1615), - 306: uint16(1288), - 307: uint16(1384), - 308: uint16(1384), - 309: uint16(1384), - 310: uint16(1374), - 311: uint16(1374), - 312: uint16(1374), - 313: uint16(1374), - 314: uint16(1378), - 315: uint16(1378), - 316: uint16(1476), - 317: uint16(1351), - 318: uint16(1344), - 319: uint16(1243), - 320: uint16(1640), - 321: uint16(1640), - 322: uint16(1360), - 323: uint16(1360), - 324: uint16(1639), - 325: uint16(1639), - 326: uint16(1360), - 327: uint16(1496), - 328: uint16(1623), - 329: uint16(1419), - 330: uint16(1321), - 331: uint16(1327), - 332: uint16(1327), - 333: uint16(1327), - 334: uint16(1327), - 335: uint16(1360), - 336: uint16(1261), - 337: uint16(1397), - 338: uint16(1623), - 339: uint16(1623), - 340: uint16(1397), - 341: uint16(1419), - 342: uint16(1321), - 343: uint16(1397), - 344: uint16(1321), - 345: uint16(1397), - 346: uint16(1360), - 347: uint16(1261), - 348: uint16(1512), - 349: uint16(1634), - 350: uint16(1360), - 351: uint16(1261), - 352: uint16(1486), - 353: uint16(1360), - 354: uint16(1261), - 355: uint16(1360), - 356: uint16(1261), - 357: uint16(1486), - 358: uint16(1319), - 359: uint16(1319), - 360: uint16(1319), - 361: uint16(1308), - 362: uint16(1243), - 363: uint16(1243), - 364: uint16(1486), - 365: uint16(1319), - 366: uint16(1293), - 367: uint16(1319), - 368: uint16(1308), + 302: uint16(1423), + 303: uint16(1364), + 304: uint16(1652), + 305: uint16(1304), + 306: uint16(1630), + 307: uint16(1299), + 308: uint16(1397), + 309: uint16(1397), + 310: uint16(1397), + 311: uint16(1387), + 312: uint16(1387), + 313: uint16(1387), + 314: uint16(1387), + 315: uint16(1391), + 316: uint16(1391), + 317: uint16(1489), + 318: uint16(1364), + 319: uint16(1357), + 320: uint16(1254), + 321: uint16(1655), + 322: uint16(1655), + 323: uint16(1373), + 324: uint16(1373), + 325: uint16(1654), + 326: uint16(1654), + 327: uint16(1373), + 328: uint16(1509), + 329: uint16(1638), + 330: uint16(1432), + 331: uint16(1332), + 332: uint16(1338), + 333: uint16(1338), + 334: uint16(1338), + 335: uint16(1338), + 336: uint16(1373), + 337: uint16(1272), + 338: uint16(1410), + 339: uint16(1638), + 340: uint16(1638), + 341: uint16(1410), + 342: uint16(1432), + 343: uint16(1332), + 344: uint16(1410), + 345: uint16(1332), + 346: uint16(1410), + 347: uint16(1373), + 348: uint16(1272), + 349: uint16(1525), + 350: uint16(1649), + 351: uint16(1373), + 352: uint16(1272), + 353: uint16(1499), + 354: uint16(1373), + 355: uint16(1272), + 356: uint16(1373), + 357: uint16(1272), + 358: uint16(1499), + 359: uint16(1330), + 360: uint16(1330), + 361: uint16(1330), + 362: uint16(1319), + 363: uint16(1254), + 364: uint16(1254), + 365: uint16(1499), + 366: uint16(1330), + 367: uint16(1304), + 368: uint16(1330), 369: uint16(1319), - 370: uint16(1319), - 371: uint16(1582), - 372: uint16(1243), - 373: uint16(1490), - 374: uint16(1490), - 375: uint16(1486), - 376: uint16(1360), - 377: uint16(1574), - 378: uint16(1574), - 379: uint16(1387), - 380: uint16(1387), - 381: uint16(1392), - 382: uint16(1378), - 383: uint16(1481), - 384: uint16(1360), - 385: uint16(1243), - 386: uint16(1392), - 387: uint16(1390), - 388: uint16(1388), - 389: uint16(1397), - 390: uint16(1311), - 391: uint16(1596), - 392: uint16(1596), - 393: uint16(1592), - 394: uint16(1592), - 395: uint16(1592), - 396: uint16(1645), - 397: uint16(1645), - 398: uint16(1545), - 399: uint16(1608), - 400: uint16(1276), - 401: uint16(1276), - 402: uint16(1276), - 403: uint16(1276), - 404: uint16(1608), - 405: uint16(1295), - 406: uint16(1295), - 407: uint16(1277), - 408: uint16(1277), - 409: uint16(1276), - 410: uint16(1608), - 411: uint16(1243), - 412: uint16(1243), - 413: uint16(1243), - 414: uint16(1243), - 415: uint16(1243), - 416: uint16(1243), - 417: uint16(1603), - 418: uint16(1243), - 419: uint16(1540), - 420: uint16(1497), - 421: uint16(1364), - 422: uint16(1243), - 423: uint16(1243), - 424: uint16(1243), - 425: uint16(1243), - 426: uint16(1243), - 427: uint16(1243), - 428: uint16(1243), - 429: uint16(1243), - 430: uint16(1243), - 431: uint16(1243), - 432: uint16(1243), - 433: uint16(1243), - 434: uint16(1243), - 435: uint16(1243), - 436: uint16(1243), - 437: uint16(1243), - 438: uint16(1551), - 439: uint16(1243), - 440: uint16(1243), - 441: uint16(1243), - 442: uint16(1243), - 443: uint16(1243), - 444: uint16(1243), - 445: uint16(1243), - 446: uint16(1243), - 447: uint16(1243), - 448: uint16(1243), - 449: uint16(1424), - 450: uint16(1243), - 451: uint16(1246), - 452: uint16(1542), - 453: uint16(1243), - 454: uint16(1243), - 455: uint16(1243), - 456: uint16(1243), - 457: uint16(1243), - 458: uint16(1243), - 459: uint16(1243), - 460: uint16(1243), - 461: uint16(1401), - 462: uint16(1402), - 463: uint16(1365), - 464: uint16(1243), - 465: uint16(1243), - 466: uint16(1243), - 467: uint16(1243), - 468: uint16(1243), - 469: uint16(1243), - 470: uint16(1243), - 471: uint16(1416), - 472: uint16(1243), - 473: uint16(1243), - 474: uint16(1243), - 475: uint16(1411), - 476: uint16(1243), - 477: uint16(1243), - 478: uint16(1243), - 479: uint16(1243), - 480: uint16(1243), - 481: uint16(1243), - 482: uint16(1243), - 483: uint16(1243), - 484: uint16(1636), - 485: uint16(1243), - 486: uint16(1243), - 487: uint16(1243), - 488: uint16(1243), - 489: uint16(1243), - 490: uint16(1243), - 491: uint16(1511), - 492: uint16(1510), - 493: uint16(1243), - 494: uint16(1243), - 495: uint16(1362), - 496: uint16(1243), - 497: uint16(1243), - 498: uint16(1243), - 499: uint16(1243), - 500: uint16(1243), - 501: uint16(1243), - 502: uint16(1243), - 503: uint16(1243), - 504: uint16(1243), - 505: uint16(1243), - 506: uint16(1243), - 507: uint16(1243), - 508: uint16(1243), - 509: uint16(1291), - 510: uint16(1243), - 511: uint16(1243), - 512: uint16(1243), - 513: uint16(1243), - 514: uint16(1243), - 515: uint16(1243), - 516: uint16(1243), - 517: uint16(1243), - 518: uint16(1243), - 519: uint16(1243), - 520: uint16(1243), - 521: uint16(1243), - 522: uint16(1243), - 523: uint16(1243), - 524: uint16(1243), - 525: uint16(1243), - 526: uint16(1243), - 527: uint16(1243), - 528: uint16(1243), - 529: uint16(1243), - 530: uint16(1243), - 531: uint16(1243), - 532: uint16(1243), - 533: uint16(1389), - 534: uint16(1243), - 535: uint16(1243), - 536: uint16(1243), - 537: uint16(1243), - 538: uint16(1243), - 539: uint16(1243), - 540: uint16(1243), - 541: uint16(1243), - 542: uint16(1243), - 543: uint16(1243), - 544: uint16(1243), - 545: uint16(1243), - 546: uint16(1243), - 547: uint16(1243), - 548: uint16(1579), - 549: uint16(1379), - 550: uint16(1243), - 551: uint16(1243), - 552: uint16(1243), - 553: uint16(1243), - 554: uint16(1627), - 555: uint16(1243), - 556: uint16(1243), - 557: uint16(1243), - 558: uint16(1243), - 559: uint16(1243), - 560: uint16(1243), - 561: uint16(1243), - 562: uint16(1243), - 563: uint16(1243), - 564: uint16(1243), - 565: uint16(1243), - 566: uint16(1243), - 567: uint16(1243), - 568: uint16(1243), - 569: uint16(1619), - 570: uint16(1335), - 571: uint16(1425), - 572: uint16(1243), - 573: uint16(1428), - 574: uint16(1265), - 575: uint16(1243), - 576: uint16(1255), - 577: uint16(1243), - 578: uint16(1243), + 370: uint16(1330), + 371: uint16(1330), + 372: uint16(1596), + 373: uint16(1254), + 374: uint16(1503), + 375: uint16(1503), + 376: uint16(1499), + 377: uint16(1373), + 378: uint16(1588), + 379: uint16(1588), + 380: uint16(1400), + 381: uint16(1400), + 382: uint16(1405), + 383: uint16(1391), + 384: uint16(1494), + 385: uint16(1373), + 386: uint16(1254), + 387: uint16(1405), + 388: uint16(1403), + 389: uint16(1401), + 390: uint16(1410), + 391: uint16(1322), + 392: uint16(1611), + 393: uint16(1611), + 394: uint16(1607), + 395: uint16(1607), + 396: uint16(1607), + 397: uint16(1660), + 398: uint16(1660), + 399: uint16(1558), + 400: uint16(1623), + 401: uint16(1287), + 402: uint16(1287), + 403: uint16(1287), + 404: uint16(1287), + 405: uint16(1623), + 406: uint16(1306), + 407: uint16(1306), + 408: uint16(1288), + 409: uint16(1288), + 410: uint16(1287), + 411: uint16(1623), + 412: uint16(1254), + 413: uint16(1254), + 414: uint16(1254), + 415: uint16(1254), + 416: uint16(1254), + 417: uint16(1254), + 418: uint16(1618), + 419: uint16(1254), + 420: uint16(1553), + 421: uint16(1510), + 422: uint16(1377), + 423: uint16(1254), + 424: uint16(1254), + 425: uint16(1254), + 426: uint16(1254), + 427: uint16(1254), + 428: uint16(1254), + 429: uint16(1254), + 430: uint16(1254), + 431: uint16(1254), + 432: uint16(1254), + 433: uint16(1254), + 434: uint16(1254), + 435: uint16(1254), + 436: uint16(1254), + 437: uint16(1254), + 438: uint16(1254), + 439: uint16(1564), + 440: uint16(1254), + 441: uint16(1254), + 442: uint16(1254), + 443: uint16(1254), + 444: uint16(1254), + 445: uint16(1254), + 446: uint16(1254), + 447: uint16(1254), + 448: uint16(1254), + 449: uint16(1254), + 450: uint16(1254), + 451: uint16(1437), + 452: uint16(1254), + 453: uint16(1257), + 454: uint16(1555), + 455: uint16(1254), + 456: uint16(1254), + 457: uint16(1254), + 458: uint16(1254), + 459: uint16(1254), + 460: uint16(1254), + 461: uint16(1254), + 462: uint16(1254), + 463: uint16(1414), + 464: uint16(1415), + 465: uint16(1378), + 466: uint16(1254), + 467: uint16(1254), + 468: uint16(1254), + 469: uint16(1254), + 470: uint16(1254), + 471: uint16(1254), + 472: uint16(1254), + 473: uint16(1429), + 474: uint16(1254), + 475: uint16(1254), + 476: uint16(1254), + 477: uint16(1424), + 478: uint16(1254), + 479: uint16(1254), + 480: uint16(1254), + 481: uint16(1254), + 482: uint16(1254), + 483: uint16(1254), + 484: uint16(1254), + 485: uint16(1254), + 486: uint16(1651), + 487: uint16(1254), + 488: uint16(1254), + 489: uint16(1254), + 490: uint16(1254), + 491: uint16(1254), + 492: uint16(1254), + 493: uint16(1524), + 494: uint16(1523), + 495: uint16(1254), + 496: uint16(1254), + 497: uint16(1375), + 498: uint16(1254), + 499: uint16(1254), + 500: uint16(1254), + 501: uint16(1254), + 502: uint16(1254), + 503: uint16(1254), + 504: uint16(1254), + 505: uint16(1254), + 506: uint16(1254), + 507: uint16(1254), + 508: uint16(1254), + 509: uint16(1254), + 510: uint16(1254), + 511: uint16(1302), + 512: uint16(1254), + 513: uint16(1254), + 514: uint16(1254), + 515: uint16(1254), + 516: uint16(1254), + 517: uint16(1254), + 518: uint16(1254), + 519: uint16(1254), + 520: uint16(1254), + 521: uint16(1254), + 522: uint16(1254), + 523: uint16(1254), + 524: uint16(1254), + 525: uint16(1254), + 526: uint16(1254), + 527: uint16(1254), + 528: uint16(1254), + 529: uint16(1254), + 530: uint16(1254), + 531: uint16(1254), + 532: uint16(1254), + 533: uint16(1254), + 534: uint16(1254), + 535: uint16(1402), + 536: uint16(1254), + 537: uint16(1254), + 538: uint16(1254), + 539: uint16(1254), + 540: uint16(1254), + 541: uint16(1254), + 542: uint16(1254), + 543: uint16(1254), + 544: uint16(1254), + 545: uint16(1254), + 546: uint16(1254), + 547: uint16(1254), + 548: uint16(1254), + 549: uint16(1254), + 550: uint16(1593), + 551: uint16(1392), + 552: uint16(1254), + 553: uint16(1254), + 554: uint16(1254), + 555: uint16(1254), + 556: uint16(1642), + 557: uint16(1254), + 558: uint16(1254), + 559: uint16(1254), + 560: uint16(1254), + 561: uint16(1352), + 562: uint16(1254), + 563: uint16(1254), + 564: uint16(1254), + 565: uint16(1254), + 566: uint16(1254), + 567: uint16(1254), + 568: uint16(1254), + 569: uint16(1254), + 570: uint16(1254), + 571: uint16(1254), + 572: uint16(1254), + 573: uint16(1634), + 574: uint16(1346), + 575: uint16(1438), + 576: uint16(1254), + 577: uint16(1441), + 578: uint16(1276), + 579: uint16(1254), + 580: uint16(1266), + 581: uint16(1254), + 582: uint16(1254), } /********** End of lemon-generated parsing tables *****************************/ @@ -228057,7 +229551,7 @@ var _yy_default = [579]uint16{ // ** to revert to identifiers if they keyword does not apply in the context where // ** it appears. // */ -var _yyFallback = [185]uint16{ +var _yyFallback = [186]uint16{ 2: uint16(59), 3: uint16(59), 4: uint16(59), @@ -228170,8 +229664,9 @@ type yyStackEntry = TyyStackEntry type TyyParser1 = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser1 = TyyParser1 @@ -228179,14 +229674,46 @@ type yyParser1 = TyyParser1 type TyyParser = struct { Fyytos uintptr FpParse uintptr - Fyystack [100]TyyStackEntry FyystackEnd uintptr + Fyystack uintptr + Fyystk0 [100]TyyStackEntry } type yyParser = TyyParser /* #include */ +// C documentation +// +// /* +// ** Try to increase the size of the parser stack. Return the number +// ** of errors. Return 0 on success. +// */ +func _yyGrowStack(tls *libc.TLS, p uintptr) (r int32) { + var idx, newSize, oldSize int32 + var pNew uintptr + _, _, _, _ = idx, newSize, oldSize, pNew + oldSize = int32(1) + int32((int64((*TyyParser)(unsafe.Pointer(p)).FyystackEnd)-int64((*TyyParser)(unsafe.Pointer(p)).Fyystack))/24) + newSize = oldSize*int32(2) + int32(100) + idx = int32((int64((*TyyParser)(unsafe.Pointer(p)).Fyytos) - int64((*TyyParser)(unsafe.Pointer(p)).Fyystack)) / 24) + if (*TyyParser)(unsafe.Pointer(p)).Fyystack == p+32 { + pNew = _parserStackRealloc(tls, uintptr(0), uint64(uint64(newSize))*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + libc.Xmemcpy(tls, pNew, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(uint64(oldSize))*uint64(24)) + } else { + pNew = _parserStackRealloc(tls, (*TyyParser)(unsafe.Pointer(p)).Fyystack, uint64(uint64(newSize))*uint64(24)) + if pNew == uintptr(0) { + return int32(1) + } + } + (*TyyParser)(unsafe.Pointer(p)).Fyystack = pNew + (*TyyParser)(unsafe.Pointer(p)).Fyytos = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(idx)*24 + (*TyyParser)(unsafe.Pointer(p)).FyystackEnd = (*TyyParser)(unsafe.Pointer(p)).Fyystack + uintptr(newSize-int32(1))*24 + return 0 +} + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -228202,10 +229729,11 @@ func _sqlite3ParserInit(tls *libc.TLS, yypRawParser uintptr, pParse uintptr) { _ = yypParser yypParser = yypRawParser (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = yypParser + 16 - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fstateno = uint16(0) - (*(*TyyStackEntry)(unsafe.Pointer(yypParser + 16))).Fmajor = uint16(0) - (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = yypParser + 16 + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack = yypParser + 32 + (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + uintptr(libc.Int32FromInt32(YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fstateno = uint16(0) + (*(*TyyStackEntry)(unsafe.Pointer((*TyyParser)(unsafe.Pointer(yypParser)).Fyystack))).Fmajor = uint16(0) } // C documentation @@ -228233,103 +229761,105 @@ func _yy_destructor(tls *libc.TLS, yypParser uintptr, yymajor uint16, yypminor u ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case int32(204): /* select */ + case int32(205): /* select */ + fallthrough + case int32(240): /* selectnowith */ fallthrough - case int32(239): /* selectnowith */ + case int32(241): /* oneselect */ fallthrough - case int32(240): /* oneselect */ + case int32(253): /* values */ fallthrough - case int32(252): /* values */ + case int32(255): /* mvalues */ _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(216): /* term */ + case int32(217): /* term */ fallthrough - case int32(217): /* expr */ + case int32(218): /* expr */ fallthrough - case int32(246): /* where_opt */ + case int32(247): /* where_opt */ fallthrough - case int32(248): /* having_opt */ + case int32(249): /* having_opt */ fallthrough - case int32(267): /* where_opt_ret */ + case int32(269): /* where_opt_ret */ fallthrough - case int32(278): /* case_operand */ + case int32(280): /* case_operand */ fallthrough - case int32(280): /* case_else */ + case int32(282): /* case_else */ fallthrough - case int32(283): /* vinto */ + case int32(285): /* vinto */ fallthrough - case int32(290): /* when_clause */ + case int32(292): /* when_clause */ fallthrough - case int32(295): /* key_opt */ + case int32(297): /* key_opt */ fallthrough - case int32(311): /* filter_clause */ + case int32(314): /* filter_clause */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(221): /* eidlist_opt */ + case int32(222): /* eidlist_opt */ fallthrough - case int32(231): /* sortlist */ + case int32(232): /* sortlist */ fallthrough - case int32(232): /* eidlist */ + case int32(233): /* eidlist */ fallthrough - case int32(244): /* selcollist */ + case int32(245): /* selcollist */ fallthrough - case int32(247): /* groupby_opt */ + case int32(248): /* groupby_opt */ fallthrough - case int32(249): /* orderby_opt */ + case int32(250): /* orderby_opt */ fallthrough - case int32(253): /* nexprlist */ + case int32(254): /* nexprlist */ fallthrough - case int32(254): /* sclp */ + case int32(256): /* sclp */ fallthrough - case int32(261): /* exprlist */ + case int32(263): /* exprlist */ fallthrough - case int32(268): /* setlist */ + case int32(270): /* setlist */ fallthrough - case int32(277): /* paren_exprlist */ + case int32(279): /* paren_exprlist */ fallthrough - case int32(279): /* case_exprlist */ + case int32(281): /* case_exprlist */ fallthrough - case int32(310): /* part_opt */ + case int32(313): /* part_opt */ _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(238): /* fullname */ + case int32(239): /* fullname */ fallthrough - case int32(245): /* from */ + case int32(246): /* from */ fallthrough - case int32(256): /* seltablist */ + case int32(258): /* seltablist */ fallthrough - case int32(257): /* stl_prefix */ + case int32(259): /* stl_prefix */ fallthrough - case int32(262): /* xfullname */ + case int32(264): /* xfullname */ _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(241): /* wqlist */ + case int32(242): /* wqlist */ _sqlite3WithDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(251): /* window_clause */ + case int32(252): /* window_clause */ fallthrough - case int32(306): /* windowdefn_list */ + case int32(309): /* windowdefn_list */ _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(263): /* idlist */ + case int32(265): /* idlist */ fallthrough - case int32(270): /* idlist_opt */ + case int32(272): /* idlist_opt */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(273): /* filter_over */ + case int32(275): /* filter_over */ fallthrough - case int32(307): /* windowdefn */ + case int32(310): /* windowdefn */ fallthrough - case int32(308): /* window */ + case int32(311): /* window */ fallthrough - case int32(309): /* frame_opt */ + case int32(312): /* frame_opt */ fallthrough - case int32(312): /* over_clause */ + case int32(315): /* over_clause */ _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(286): /* trigger_cmd_list */ + case int32(288): /* trigger_cmd_list */ fallthrough - case int32(291): /* trigger_cmd */ + case int32(293): /* trigger_cmd */ _sqlite3DeleteTriggerStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yypminor))) - case int32(288): /* trigger_event */ + case int32(290): /* trigger_event */ _sqlite3IdListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TTrigEvent)(unsafe.Pointer(yypminor))).Fb) - case int32(314): /* frame_bound */ + case int32(317): /* frame_bound */ fallthrough - case int32(315): /* frame_bound_s */ + case int32(318): /* frame_bound_s */ fallthrough - case int32(316): /* frame_bound_e */ + case int32(319): /* frame_bound_e */ _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, (*(*TFrameBound)(unsafe.Pointer(yypminor))).FpExpr) break /********* End destructor definitions *****************************************/ @@ -228363,11 +229893,20 @@ func _yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var pParser, yytos uintptr + _, _ = pParser, yytos pParser = p - for (*TyyParser)(unsafe.Pointer(pParser)).Fyytos > pParser+16 { - _yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling yy_pop_parser_stack() for each + ** element left in the stack */ + yytos = (*TyyParser)(unsafe.Pointer(pParser)).Fyytos + for yytos > (*TyyParser)(unsafe.Pointer(pParser)).Fyystack { + if int32((*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor) >= int32(YY_MIN_DSTRCTR) { + _yy_destructor(tls, pParser, (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor, yytos+8) + } + yytos -= 24 + } + if (*TyyParser)(unsafe.Pointer(pParser)).Fyystack != pParser+32 { + Xsqlite3_free(tls, (*TyyParser)(unsafe.Pointer(pParser)).Fyystack) } } @@ -228448,13 +229987,13 @@ func _yyStackOverflow(tls *libc.TLS, yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*TyyParser)(unsafe.Pointer(yypParser)).FpParse - for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > yypParser+16 { + for (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).Fyystack { _yy_pop_parser_stack(tls, yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24662, 0) + _sqlite3OomFault(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb) /******** End %stack_overflow code ********************************************/ /* Suppress warning about unused %extra_argument var */ (*TyyParser)(unsafe.Pointer(yypParser)).FpParse = pParse @@ -228473,15 +230012,18 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint var yytos uintptr _ = yytos (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos += 24 - if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 - _yyStackOverflow(tls, yypParser) - return + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos + if yytos > (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { + if _yyGrowStack(tls, yypParser) != 0 { + (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos -= 24 + _yyStackOverflow(tls, yypParser) + return + } + yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos } if int32(int32(yyNewState)) > int32(YY_MAX_SHIFT) { yyNewState = uint16(int32(yyNewState) + (libc.Int32FromInt32(YY_MIN_REDUCE) - libc.Int32FromInt32(YY_MIN_SHIFTREDUCE))) } - yytos = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos (*TyyStackEntry)(unsafe.Pointer(yytos)).Fstateno = yyNewState (*TyyStackEntry)(unsafe.Pointer(yytos)).Fmajor = yyMajor *(*TToken)(unsafe.Pointer(yytos + 8)) = yyMinor @@ -228491,419 +230033,423 @@ func _yy_shift(tls *libc.TLS, yypParser uintptr, yyNewState uint16, yyMajor uint // // /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side // ** of that rule */ -var _yyRuleInfoLhs = [405]uint16{ - 0: uint16(189), - 1: uint16(189), - 2: uint16(188), - 3: uint16(190), - 4: uint16(191), - 5: uint16(191), - 6: uint16(191), - 7: uint16(191), - 8: uint16(190), - 9: uint16(190), - 10: uint16(190), - 11: uint16(190), - 12: uint16(190), - 13: uint16(195), - 14: uint16(197), - 15: uint16(199), - 16: uint16(199), - 17: uint16(198), - 18: uint16(198), - 19: uint16(196), - 20: uint16(196), - 21: uint16(203), - 22: uint16(203), - 23: uint16(205), - 24: uint16(205), - 25: uint16(206), - 26: uint16(208), - 27: uint16(208), - 28: uint16(208), - 29: uint16(209), - 30: uint16(213), - 31: uint16(214), - 32: uint16(215), - 33: uint16(215), - 34: uint16(215), - 35: uint16(215), - 36: uint16(215), - 37: uint16(215), - 38: uint16(215), - 39: uint16(215), - 40: uint16(215), - 41: uint16(215), - 42: uint16(215), - 43: uint16(215), - 44: uint16(215), - 45: uint16(224), - 46: uint16(224), - 47: uint16(220), - 48: uint16(220), - 49: uint16(222), - 50: uint16(222), - 51: uint16(225), - 52: uint16(225), - 53: uint16(225), - 54: uint16(225), - 55: uint16(226), - 56: uint16(226), - 57: uint16(226), - 58: uint16(226), - 59: uint16(226), - 60: uint16(223), - 61: uint16(223), - 62: uint16(227), - 63: uint16(227), - 64: uint16(227), - 65: uint16(202), - 66: uint16(229), - 67: uint16(230), - 68: uint16(230), - 69: uint16(230), - 70: uint16(230), - 71: uint16(230), - 72: uint16(233), - 73: uint16(218), - 74: uint16(218), - 75: uint16(234), - 76: uint16(234), - 77: uint16(235), - 78: uint16(235), - 79: uint16(190), - 80: uint16(237), - 81: uint16(237), - 82: uint16(190), - 83: uint16(190), - 84: uint16(190), - 85: uint16(204), - 86: uint16(204), - 87: uint16(204), - 88: uint16(239), - 89: uint16(242), - 90: uint16(242), - 91: uint16(242), - 92: uint16(240), - 93: uint16(240), - 94: uint16(252), - 95: uint16(252), - 96: uint16(243), - 97: uint16(243), - 98: uint16(243), - 99: uint16(254), +var _yyRuleInfoLhs = [409]uint16{ + 0: uint16(190), + 1: uint16(190), + 2: uint16(189), + 3: uint16(191), + 4: uint16(192), + 5: uint16(192), + 6: uint16(192), + 7: uint16(192), + 8: uint16(191), + 9: uint16(191), + 10: uint16(191), + 11: uint16(191), + 12: uint16(191), + 13: uint16(196), + 14: uint16(198), + 15: uint16(200), + 16: uint16(200), + 17: uint16(199), + 18: uint16(199), + 19: uint16(197), + 20: uint16(197), + 21: uint16(204), + 22: uint16(204), + 23: uint16(206), + 24: uint16(206), + 25: uint16(207), + 26: uint16(209), + 27: uint16(209), + 28: uint16(209), + 29: uint16(210), + 30: uint16(214), + 31: uint16(215), + 32: uint16(216), + 33: uint16(216), + 34: uint16(216), + 35: uint16(216), + 36: uint16(216), + 37: uint16(216), + 38: uint16(216), + 39: uint16(216), + 40: uint16(216), + 41: uint16(216), + 42: uint16(216), + 43: uint16(216), + 44: uint16(216), + 45: uint16(225), + 46: uint16(225), + 47: uint16(221), + 48: uint16(221), + 49: uint16(223), + 50: uint16(223), + 51: uint16(226), + 52: uint16(226), + 53: uint16(226), + 54: uint16(226), + 55: uint16(227), + 56: uint16(227), + 57: uint16(227), + 58: uint16(227), + 59: uint16(227), + 60: uint16(224), + 61: uint16(224), + 62: uint16(228), + 63: uint16(228), + 64: uint16(228), + 65: uint16(203), + 66: uint16(230), + 67: uint16(231), + 68: uint16(231), + 69: uint16(231), + 70: uint16(231), + 71: uint16(231), + 72: uint16(234), + 73: uint16(219), + 74: uint16(219), + 75: uint16(235), + 76: uint16(235), + 77: uint16(236), + 78: uint16(236), + 79: uint16(191), + 80: uint16(238), + 81: uint16(238), + 82: uint16(191), + 83: uint16(191), + 84: uint16(191), + 85: uint16(205), + 86: uint16(205), + 87: uint16(205), + 88: uint16(240), + 89: uint16(243), + 90: uint16(243), + 91: uint16(243), + 92: uint16(241), + 93: uint16(241), + 94: uint16(253), + 95: uint16(241), + 96: uint16(255), + 97: uint16(255), + 98: uint16(244), + 99: uint16(244), 100: uint16(244), - 101: uint16(244), - 102: uint16(244), - 103: uint16(255), - 104: uint16(255), - 105: uint16(245), - 106: uint16(245), - 107: uint16(257), - 108: uint16(257), - 109: uint16(256), - 110: uint16(256), - 111: uint16(256), - 112: uint16(256), - 113: uint16(256), - 114: uint16(200), - 115: uint16(200), - 116: uint16(238), - 117: uint16(238), - 118: uint16(262), - 119: uint16(262), - 120: uint16(262), - 121: uint16(262), - 122: uint16(258), - 123: uint16(258), - 124: uint16(258), - 125: uint16(258), - 126: uint16(259), - 127: uint16(259), - 128: uint16(259), - 129: uint16(264), - 130: uint16(260), - 131: uint16(260), - 132: uint16(249), - 133: uint16(249), - 134: uint16(231), - 135: uint16(231), - 136: uint16(219), - 137: uint16(219), - 138: uint16(219), - 139: uint16(265), - 140: uint16(265), - 141: uint16(265), - 142: uint16(247), - 143: uint16(247), + 101: uint16(256), + 102: uint16(245), + 103: uint16(245), + 104: uint16(245), + 105: uint16(257), + 106: uint16(257), + 107: uint16(246), + 108: uint16(246), + 109: uint16(259), + 110: uint16(259), + 111: uint16(258), + 112: uint16(258), + 113: uint16(258), + 114: uint16(258), + 115: uint16(258), + 116: uint16(201), + 117: uint16(201), + 118: uint16(239), + 119: uint16(239), + 120: uint16(264), + 121: uint16(264), + 122: uint16(264), + 123: uint16(264), + 124: uint16(260), + 125: uint16(260), + 126: uint16(260), + 127: uint16(260), + 128: uint16(261), + 129: uint16(261), + 130: uint16(261), + 131: uint16(266), + 132: uint16(262), + 133: uint16(262), + 134: uint16(250), + 135: uint16(250), + 136: uint16(232), + 137: uint16(232), + 138: uint16(220), + 139: uint16(220), + 140: uint16(220), + 141: uint16(267), + 142: uint16(267), + 143: uint16(267), 144: uint16(248), 145: uint16(248), - 146: uint16(250), - 147: uint16(250), - 148: uint16(250), - 149: uint16(250), - 150: uint16(190), - 151: uint16(246), - 152: uint16(246), - 153: uint16(267), - 154: uint16(267), - 155: uint16(267), - 156: uint16(267), - 157: uint16(190), - 158: uint16(268), - 159: uint16(268), - 160: uint16(268), - 161: uint16(268), - 162: uint16(190), - 163: uint16(190), - 164: uint16(271), - 165: uint16(271), - 166: uint16(271), - 167: uint16(271), - 168: uint16(271), - 169: uint16(271), - 170: uint16(272), - 171: uint16(269), - 172: uint16(269), - 173: uint16(270), - 174: uint16(270), - 175: uint16(263), - 176: uint16(263), - 177: uint16(217), - 178: uint16(217), - 179: uint16(217), - 180: uint16(217), - 181: uint16(216), - 182: uint16(216), - 183: uint16(216), + 146: uint16(249), + 147: uint16(249), + 148: uint16(251), + 149: uint16(251), + 150: uint16(251), + 151: uint16(251), + 152: uint16(191), + 153: uint16(247), + 154: uint16(247), + 155: uint16(269), + 156: uint16(269), + 157: uint16(269), + 158: uint16(269), + 159: uint16(191), + 160: uint16(270), + 161: uint16(270), + 162: uint16(270), + 163: uint16(270), + 164: uint16(191), + 165: uint16(191), + 166: uint16(273), + 167: uint16(273), + 168: uint16(273), + 169: uint16(273), + 170: uint16(273), + 171: uint16(273), + 172: uint16(274), + 173: uint16(271), + 174: uint16(271), + 175: uint16(272), + 176: uint16(272), + 177: uint16(265), + 178: uint16(265), + 179: uint16(218), + 180: uint16(218), + 181: uint16(218), + 182: uint16(218), + 183: uint16(217), 184: uint16(217), 185: uint16(217), - 186: uint16(217), - 187: uint16(217), - 188: uint16(217), - 189: uint16(217), - 190: uint16(217), - 191: uint16(217), - 192: uint16(217), - 193: uint16(216), - 194: uint16(217), + 186: uint16(218), + 187: uint16(218), + 188: uint16(218), + 189: uint16(218), + 190: uint16(218), + 191: uint16(218), + 192: uint16(218), + 193: uint16(218), + 194: uint16(218), 195: uint16(217), - 196: uint16(217), - 197: uint16(217), - 198: uint16(217), - 199: uint16(217), - 200: uint16(217), - 201: uint16(217), - 202: uint16(217), - 203: uint16(274), - 204: uint16(217), - 205: uint16(217), - 206: uint16(217), - 207: uint16(217), - 208: uint16(217), - 209: uint16(217), - 210: uint16(217), - 211: uint16(217), - 212: uint16(217), - 213: uint16(217), - 214: uint16(217), - 215: uint16(217), - 216: uint16(275), - 217: uint16(275), - 218: uint16(217), - 219: uint16(276), - 220: uint16(276), - 221: uint16(217), - 222: uint16(217), - 223: uint16(217), - 224: uint16(217), - 225: uint16(217), - 226: uint16(217), - 227: uint16(279), - 228: uint16(279), - 229: uint16(280), - 230: uint16(280), - 231: uint16(278), - 232: uint16(261), - 233: uint16(253), - 234: uint16(253), - 235: uint16(277), - 236: uint16(277), - 237: uint16(190), - 238: uint16(281), - 239: uint16(281), - 240: uint16(221), - 241: uint16(221), - 242: uint16(232), - 243: uint16(232), - 244: uint16(282), - 245: uint16(282), - 246: uint16(190), - 247: uint16(190), - 248: uint16(190), - 249: uint16(283), - 250: uint16(283), - 251: uint16(190), - 252: uint16(190), - 253: uint16(190), - 254: uint16(190), - 255: uint16(190), - 256: uint16(211), - 257: uint16(212), - 258: uint16(190), - 259: uint16(285), - 260: uint16(287), + 196: uint16(218), + 197: uint16(218), + 198: uint16(218), + 199: uint16(218), + 200: uint16(218), + 201: uint16(218), + 202: uint16(218), + 203: uint16(218), + 204: uint16(218), + 205: uint16(276), + 206: uint16(218), + 207: uint16(218), + 208: uint16(218), + 209: uint16(218), + 210: uint16(218), + 211: uint16(218), + 212: uint16(218), + 213: uint16(218), + 214: uint16(218), + 215: uint16(218), + 216: uint16(218), + 217: uint16(218), + 218: uint16(277), + 219: uint16(277), + 220: uint16(218), + 221: uint16(278), + 222: uint16(278), + 223: uint16(218), + 224: uint16(218), + 225: uint16(218), + 226: uint16(218), + 227: uint16(218), + 228: uint16(218), + 229: uint16(281), + 230: uint16(281), + 231: uint16(282), + 232: uint16(282), + 233: uint16(280), + 234: uint16(263), + 235: uint16(254), + 236: uint16(254), + 237: uint16(279), + 238: uint16(279), + 239: uint16(191), + 240: uint16(283), + 241: uint16(283), + 242: uint16(222), + 243: uint16(222), + 244: uint16(233), + 245: uint16(233), + 246: uint16(284), + 247: uint16(284), + 248: uint16(191), + 249: uint16(191), + 250: uint16(191), + 251: uint16(285), + 252: uint16(285), + 253: uint16(191), + 254: uint16(191), + 255: uint16(191), + 256: uint16(191), + 257: uint16(191), + 258: uint16(212), + 259: uint16(213), + 260: uint16(191), 261: uint16(287), - 262: uint16(287), - 263: uint16(288), - 264: uint16(288), - 265: uint16(288), + 262: uint16(289), + 263: uint16(289), + 264: uint16(289), + 265: uint16(290), 266: uint16(290), 267: uint16(290), - 268: uint16(286), - 269: uint16(286), - 270: uint16(292), - 271: uint16(293), - 272: uint16(293), - 273: uint16(291), - 274: uint16(291), - 275: uint16(291), - 276: uint16(291), - 277: uint16(217), - 278: uint16(217), - 279: uint16(236), - 280: uint16(236), - 281: uint16(236), - 282: uint16(190), - 283: uint16(190), - 284: uint16(190), - 285: uint16(295), - 286: uint16(295), - 287: uint16(190), - 288: uint16(190), - 289: uint16(190), - 290: uint16(190), - 291: uint16(190), - 292: uint16(190), - 293: uint16(190), - 294: uint16(296), - 295: uint16(190), - 296: uint16(190), - 297: uint16(190), - 298: uint16(298), - 299: uint16(300), - 300: uint16(301), - 301: uint16(301), - 302: uint16(302), - 303: uint16(266), - 304: uint16(266), - 305: uint16(305), - 306: uint16(305), - 307: uint16(305), - 308: uint16(304), - 309: uint16(241), - 310: uint16(241), - 311: uint16(306), - 312: uint16(307), - 313: uint16(308), - 314: uint16(308), - 315: uint16(308), - 316: uint16(308), - 317: uint16(308), - 318: uint16(309), - 319: uint16(309), - 320: uint16(309), - 321: uint16(313), - 322: uint16(315), - 323: uint16(315), + 268: uint16(292), + 269: uint16(292), + 270: uint16(288), + 271: uint16(288), + 272: uint16(294), + 273: uint16(295), + 274: uint16(295), + 275: uint16(293), + 276: uint16(293), + 277: uint16(293), + 278: uint16(293), + 279: uint16(218), + 280: uint16(218), + 281: uint16(237), + 282: uint16(237), + 283: uint16(237), + 284: uint16(191), + 285: uint16(191), + 286: uint16(191), + 287: uint16(297), + 288: uint16(297), + 289: uint16(191), + 290: uint16(191), + 291: uint16(191), + 292: uint16(191), + 293: uint16(191), + 294: uint16(191), + 295: uint16(191), + 296: uint16(298), + 297: uint16(191), + 298: uint16(191), + 299: uint16(191), + 300: uint16(300), + 301: uint16(302), + 302: uint16(303), + 303: uint16(303), + 304: uint16(304), + 305: uint16(268), + 306: uint16(268), + 307: uint16(307), + 308: uint16(307), + 309: uint16(307), + 310: uint16(306), + 311: uint16(308), + 312: uint16(242), + 313: uint16(242), + 314: uint16(309), + 315: uint16(310), + 316: uint16(311), + 317: uint16(311), + 318: uint16(311), + 319: uint16(311), + 320: uint16(311), + 321: uint16(312), + 322: uint16(312), + 323: uint16(312), 324: uint16(316), - 325: uint16(316), - 326: uint16(314), - 327: uint16(314), - 328: uint16(317), + 325: uint16(318), + 326: uint16(318), + 327: uint16(319), + 328: uint16(319), 329: uint16(317), - 330: uint16(318), - 331: uint16(318), - 332: uint16(318), - 333: uint16(251), - 334: uint16(273), - 335: uint16(273), - 336: uint16(273), - 337: uint16(312), - 338: uint16(312), - 339: uint16(311), - 340: uint16(185), - 341: uint16(186), - 342: uint16(186), - 343: uint16(187), - 344: uint16(187), + 330: uint16(317), + 331: uint16(320), + 332: uint16(320), + 333: uint16(321), + 334: uint16(321), + 335: uint16(321), + 336: uint16(252), + 337: uint16(275), + 338: uint16(275), + 339: uint16(275), + 340: uint16(315), + 341: uint16(315), + 342: uint16(314), + 343: uint16(217), + 344: uint16(186), 345: uint16(187), - 346: uint16(192), - 347: uint16(192), - 348: uint16(192), - 349: uint16(194), - 350: uint16(194), - 351: uint16(190), - 352: uint16(203), - 353: uint16(201), - 354: uint16(201), - 355: uint16(193), - 356: uint16(193), - 357: uint16(208), - 358: uint16(209), - 359: uint16(210), - 360: uint16(210), - 361: uint16(207), - 362: uint16(207), - 363: uint16(215), - 364: uint16(215), - 365: uint16(215), - 366: uint16(202), - 367: uint16(228), - 368: uint16(228), - 369: uint16(229), - 370: uint16(233), - 371: uint16(235), - 372: uint16(239), - 373: uint16(240), - 374: uint16(254), - 375: uint16(255), - 376: uint16(264), - 377: uint16(272), - 378: uint16(217), - 379: uint16(274), - 380: uint16(278), - 381: uint16(261), - 382: uint16(284), - 383: uint16(284), - 384: uint16(284), - 385: uint16(284), - 386: uint16(284), - 387: uint16(211), - 388: uint16(289), - 389: uint16(289), - 390: uint16(292), - 391: uint16(293), - 392: uint16(294), - 393: uint16(294), - 394: uint16(297), - 395: uint16(297), - 396: uint16(299), - 397: uint16(299), - 398: uint16(300), - 399: uint16(303), - 400: uint16(303), - 401: uint16(303), - 402: uint16(266), - 403: uint16(306), - 404: uint16(308), + 346: uint16(187), + 347: uint16(188), + 348: uint16(188), + 349: uint16(188), + 350: uint16(193), + 351: uint16(193), + 352: uint16(193), + 353: uint16(195), + 354: uint16(195), + 355: uint16(191), + 356: uint16(204), + 357: uint16(202), + 358: uint16(202), + 359: uint16(194), + 360: uint16(194), + 361: uint16(209), + 362: uint16(210), + 363: uint16(211), + 364: uint16(211), + 365: uint16(208), + 366: uint16(208), + 367: uint16(216), + 368: uint16(216), + 369: uint16(216), + 370: uint16(203), + 371: uint16(229), + 372: uint16(229), + 373: uint16(230), + 374: uint16(234), + 375: uint16(236), + 376: uint16(240), + 377: uint16(241), + 378: uint16(256), + 379: uint16(257), + 380: uint16(266), + 381: uint16(274), + 382: uint16(218), + 383: uint16(276), + 384: uint16(280), + 385: uint16(263), + 386: uint16(286), + 387: uint16(286), + 388: uint16(286), + 389: uint16(286), + 390: uint16(286), + 391: uint16(212), + 392: uint16(291), + 393: uint16(291), + 394: uint16(294), + 395: uint16(295), + 396: uint16(296), + 397: uint16(296), + 398: uint16(299), + 399: uint16(299), + 400: uint16(301), + 401: uint16(301), + 402: uint16(302), + 403: uint16(305), + 404: uint16(305), + 405: uint16(305), + 406: uint16(268), + 407: uint16(309), + 408: uint16(311), } // C documentation // // /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number // ** of symbols on the right-hand side of that rule. */ -var _yyRuleInfoNRhs = [405]int8{ +var _yyRuleInfoNRhs = [409]int8{ 0: int8(-int32(1)), 1: int8(-int32(3)), 2: int8(-int32(1)), @@ -228984,273 +230530,277 @@ var _yyRuleInfoNRhs = [405]int8{ 92: int8(-int32(9)), 93: int8(-int32(10)), 94: int8(-int32(4)), - 95: int8(-int32(5)), - 96: int8(-int32(1)), - 97: int8(-int32(1)), - 100: int8(-int32(5)), - 101: int8(-int32(3)), + 95: int8(-int32(1)), + 96: int8(-int32(5)), + 97: int8(-int32(5)), + 98: int8(-int32(1)), + 99: int8(-int32(1)), 102: int8(-int32(5)), - 103: int8(-int32(2)), - 106: int8(-int32(2)), - 107: int8(-int32(2)), - 109: int8(-int32(5)), - 110: int8(-int32(6)), - 111: int8(-int32(8)), + 103: int8(-int32(3)), + 104: int8(-int32(5)), + 105: int8(-int32(2)), + 108: int8(-int32(2)), + 109: int8(-int32(2)), + 111: int8(-int32(5)), 112: int8(-int32(6)), - 113: int8(-int32(6)), - 115: int8(-int32(2)), - 116: int8(-int32(1)), - 117: int8(-int32(3)), + 113: int8(-int32(8)), + 114: int8(-int32(6)), + 115: int8(-int32(6)), + 117: int8(-int32(2)), 118: int8(-int32(1)), 119: int8(-int32(3)), - 120: int8(-int32(5)), + 120: int8(-int32(1)), 121: int8(-int32(3)), - 122: int8(-int32(1)), - 123: int8(-int32(2)), - 124: int8(-int32(3)), - 125: int8(-int32(4)), - 126: int8(-int32(2)), + 122: int8(-int32(5)), + 123: int8(-int32(3)), + 124: int8(-int32(1)), + 125: int8(-int32(2)), + 126: int8(-int32(3)), 127: int8(-int32(4)), - 130: int8(-int32(3)), - 131: int8(-int32(2)), - 133: int8(-int32(3)), - 134: int8(-int32(5)), + 128: int8(-int32(2)), + 129: int8(-int32(4)), + 132: int8(-int32(3)), + 133: int8(-int32(2)), 135: int8(-int32(3)), - 136: int8(-int32(1)), - 137: int8(-int32(1)), - 139: int8(-int32(2)), - 140: int8(-int32(2)), - 143: int8(-int32(3)), - 145: int8(-int32(2)), + 136: int8(-int32(5)), + 137: int8(-int32(3)), + 138: int8(-int32(1)), + 139: int8(-int32(1)), + 141: int8(-int32(2)), + 142: int8(-int32(2)), + 145: int8(-int32(3)), 147: int8(-int32(2)), - 148: int8(-int32(4)), - 149: int8(-int32(4)), - 150: int8(-int32(6)), - 152: int8(-int32(2)), + 149: int8(-int32(2)), + 150: int8(-int32(4)), + 151: int8(-int32(4)), + 152: int8(-int32(6)), 154: int8(-int32(2)), - 155: int8(-int32(2)), - 156: int8(-int32(4)), - 157: int8(-int32(9)), - 158: int8(-int32(5)), - 159: int8(-int32(7)), - 160: int8(-int32(3)), - 161: int8(-int32(5)), - 162: int8(-int32(7)), - 163: int8(-int32(8)), - 165: int8(-int32(2)), - 166: int8(-int32(12)), - 167: int8(-int32(9)), - 168: int8(-int32(5)), - 169: int8(-int32(8)), - 170: int8(-int32(2)), - 171: int8(-int32(2)), - 172: int8(-int32(1)), - 174: int8(-int32(3)), - 175: int8(-int32(3)), - 176: int8(-int32(1)), + 156: int8(-int32(2)), + 157: int8(-int32(2)), + 158: int8(-int32(4)), + 159: int8(-int32(9)), + 160: int8(-int32(5)), + 161: int8(-int32(7)), + 162: int8(-int32(3)), + 163: int8(-int32(5)), + 164: int8(-int32(7)), + 165: int8(-int32(8)), + 167: int8(-int32(2)), + 168: int8(-int32(12)), + 169: int8(-int32(9)), + 170: int8(-int32(5)), + 171: int8(-int32(8)), + 172: int8(-int32(2)), + 173: int8(-int32(2)), + 174: int8(-int32(1)), + 176: int8(-int32(3)), 177: int8(-int32(3)), 178: int8(-int32(1)), 179: int8(-int32(3)), - 180: int8(-int32(5)), - 181: int8(-int32(1)), - 182: int8(-int32(1)), + 180: int8(-int32(1)), + 181: int8(-int32(3)), + 182: int8(-int32(5)), 183: int8(-int32(1)), 184: int8(-int32(1)), - 185: int8(-int32(3)), - 186: int8(-int32(6)), - 187: int8(-int32(5)), - 188: int8(-int32(8)), - 189: int8(-int32(4)), - 190: int8(-int32(6)), - 191: int8(-int32(9)), - 192: int8(-int32(5)), - 193: int8(-int32(1)), + 185: int8(-int32(1)), + 186: int8(-int32(1)), + 187: int8(-int32(3)), + 188: int8(-int32(6)), + 189: int8(-int32(5)), + 190: int8(-int32(8)), + 191: int8(-int32(4)), + 192: int8(-int32(6)), + 193: int8(-int32(9)), 194: int8(-int32(5)), - 195: int8(-int32(3)), - 196: int8(-int32(3)), + 195: int8(-int32(1)), + 196: int8(-int32(5)), 197: int8(-int32(3)), 198: int8(-int32(3)), 199: int8(-int32(3)), 200: int8(-int32(3)), 201: int8(-int32(3)), 202: int8(-int32(3)), - 203: int8(-int32(2)), + 203: int8(-int32(3)), 204: int8(-int32(3)), - 205: int8(-int32(5)), - 206: int8(-int32(2)), - 207: int8(-int32(3)), - 208: int8(-int32(3)), - 209: int8(-int32(4)), - 210: int8(-int32(6)), - 211: int8(-int32(5)), - 212: int8(-int32(2)), - 213: int8(-int32(2)), + 205: int8(-int32(2)), + 206: int8(-int32(3)), + 207: int8(-int32(5)), + 208: int8(-int32(2)), + 209: int8(-int32(3)), + 210: int8(-int32(3)), + 211: int8(-int32(4)), + 212: int8(-int32(6)), + 213: int8(-int32(5)), 214: int8(-int32(2)), - 215: int8(-int32(3)), - 216: int8(-int32(1)), - 217: int8(-int32(2)), - 218: int8(-int32(5)), - 219: int8(-int32(1)), - 220: int8(-int32(2)), - 221: int8(-int32(5)), - 222: int8(-int32(3)), + 215: int8(-int32(2)), + 216: int8(-int32(2)), + 217: int8(-int32(3)), + 218: int8(-int32(1)), + 219: int8(-int32(2)), + 220: int8(-int32(5)), + 221: int8(-int32(1)), + 222: int8(-int32(2)), 223: int8(-int32(5)), - 224: int8(-int32(5)), - 225: int8(-int32(4)), + 224: int8(-int32(3)), + 225: int8(-int32(5)), 226: int8(-int32(5)), - 227: int8(-int32(5)), - 228: int8(-int32(4)), - 229: int8(-int32(2)), - 233: int8(-int32(3)), - 234: int8(-int32(1)), - 236: int8(-int32(3)), - 237: int8(-int32(12)), - 238: int8(-int32(1)), - 241: int8(-int32(3)), - 242: int8(-int32(5)), + 227: int8(-int32(4)), + 228: int8(-int32(5)), + 229: int8(-int32(5)), + 230: int8(-int32(4)), + 231: int8(-int32(2)), + 235: int8(-int32(3)), + 236: int8(-int32(1)), + 238: int8(-int32(3)), + 239: int8(-int32(12)), + 240: int8(-int32(1)), 243: int8(-int32(3)), - 245: int8(-int32(2)), - 246: int8(-int32(4)), + 244: int8(-int32(5)), + 245: int8(-int32(3)), 247: int8(-int32(2)), - 248: int8(-int32(3)), + 248: int8(-int32(4)), 249: int8(-int32(2)), - 251: int8(-int32(3)), - 252: int8(-int32(5)), - 253: int8(-int32(6)), + 250: int8(-int32(3)), + 251: int8(-int32(2)), + 253: int8(-int32(3)), 254: int8(-int32(5)), 255: int8(-int32(6)), - 256: int8(-int32(2)), - 257: int8(-int32(2)), - 258: int8(-int32(5)), - 259: int8(-int32(11)), - 260: int8(-int32(1)), - 261: int8(-int32(2)), - 263: int8(-int32(1)), - 264: int8(-int32(1)), - 265: int8(-int32(3)), - 267: int8(-int32(2)), - 268: int8(-int32(3)), + 256: int8(-int32(5)), + 257: int8(-int32(6)), + 258: int8(-int32(2)), + 259: int8(-int32(2)), + 260: int8(-int32(5)), + 261: int8(-int32(11)), + 262: int8(-int32(1)), + 263: int8(-int32(2)), + 265: int8(-int32(1)), + 266: int8(-int32(1)), + 267: int8(-int32(3)), 269: int8(-int32(2)), 270: int8(-int32(3)), - 271: int8(-int32(3)), - 272: int8(-int32(2)), - 273: int8(-int32(9)), - 274: int8(-int32(8)), - 275: int8(-int32(6)), - 276: int8(-int32(3)), - 277: int8(-int32(4)), - 278: int8(-int32(6)), - 279: int8(-int32(1)), - 280: int8(-int32(1)), + 271: int8(-int32(2)), + 272: int8(-int32(3)), + 273: int8(-int32(3)), + 274: int8(-int32(2)), + 275: int8(-int32(9)), + 276: int8(-int32(8)), + 277: int8(-int32(6)), + 278: int8(-int32(3)), + 279: int8(-int32(4)), + 280: int8(-int32(6)), 281: int8(-int32(1)), - 282: int8(-int32(4)), - 283: int8(-int32(6)), - 284: int8(-int32(3)), - 286: int8(-int32(2)), - 287: int8(-int32(1)), - 288: int8(-int32(3)), + 282: int8(-int32(1)), + 283: int8(-int32(1)), + 284: int8(-int32(4)), + 285: int8(-int32(6)), + 286: int8(-int32(3)), + 288: int8(-int32(2)), 289: int8(-int32(1)), 290: int8(-int32(3)), - 291: int8(-int32(6)), - 292: int8(-int32(7)), + 291: int8(-int32(1)), + 292: int8(-int32(3)), 293: int8(-int32(6)), - 294: int8(-int32(1)), - 295: int8(-int32(8)), + 294: int8(-int32(7)), + 295: int8(-int32(6)), 296: int8(-int32(1)), - 297: int8(-int32(4)), - 298: int8(-int32(8)), - 300: int8(-int32(1)), - 301: int8(-int32(3)), + 297: int8(-int32(8)), + 298: int8(-int32(1)), + 299: int8(-int32(4)), + 300: int8(-int32(8)), 302: int8(-int32(1)), - 303: int8(-int32(2)), - 304: int8(-int32(3)), - 305: int8(-int32(1)), - 306: int8(-int32(2)), - 307: int8(-int32(3)), - 308: int8(-int32(6)), - 309: int8(-int32(1)), - 310: int8(-int32(3)), - 311: int8(-int32(3)), - 312: int8(-int32(5)), - 313: int8(-int32(5)), - 314: int8(-int32(6)), - 315: int8(-int32(4)), + 303: int8(-int32(3)), + 304: int8(-int32(1)), + 305: int8(-int32(2)), + 306: int8(-int32(3)), + 307: int8(-int32(1)), + 308: int8(-int32(2)), + 309: int8(-int32(3)), + 310: int8(-int32(6)), + 311: int8(-int32(1)), + 312: int8(-int32(1)), + 313: int8(-int32(3)), + 314: int8(-int32(3)), + 315: int8(-int32(5)), 316: int8(-int32(5)), - 317: int8(-int32(2)), - 319: int8(-int32(3)), - 320: int8(-int32(6)), - 321: int8(-int32(1)), - 322: int8(-int32(1)), - 323: int8(-int32(2)), + 317: int8(-int32(6)), + 318: int8(-int32(4)), + 319: int8(-int32(5)), + 320: int8(-int32(2)), + 322: int8(-int32(3)), + 323: int8(-int32(6)), 324: int8(-int32(1)), - 325: int8(-int32(2)), + 325: int8(-int32(1)), 326: int8(-int32(2)), - 327: int8(-int32(2)), + 327: int8(-int32(1)), + 328: int8(-int32(2)), 329: int8(-int32(2)), 330: int8(-int32(2)), - 331: int8(-int32(2)), - 332: int8(-int32(1)), + 332: int8(-int32(2)), 333: int8(-int32(2)), 334: int8(-int32(2)), 335: int8(-int32(1)), - 336: int8(-int32(1)), - 337: int8(-int32(4)), - 338: int8(-int32(2)), - 339: int8(-int32(5)), - 340: int8(-int32(1)), + 336: int8(-int32(2)), + 337: int8(-int32(2)), + 338: int8(-int32(1)), + 339: int8(-int32(1)), + 340: int8(-int32(4)), 341: int8(-int32(2)), - 342: int8(-int32(1)), + 342: int8(-int32(5)), 343: int8(-int32(1)), - 344: int8(-int32(2)), - 345: int8(-int32(3)), + 344: int8(-int32(1)), + 345: int8(-int32(2)), + 346: int8(-int32(1)), 347: int8(-int32(1)), 348: int8(-int32(2)), - 349: int8(-int32(1)), - 351: int8(-int32(2)), - 352: int8(-int32(1)), - 353: int8(-int32(4)), - 354: int8(-int32(2)), - 355: int8(-int32(1)), + 349: int8(-int32(3)), + 351: int8(-int32(1)), + 352: int8(-int32(2)), + 353: int8(-int32(1)), + 355: int8(-int32(2)), 356: int8(-int32(1)), - 357: int8(-int32(1)), - 358: int8(-int32(1)), + 357: int8(-int32(4)), + 358: int8(-int32(2)), 359: int8(-int32(1)), 360: int8(-int32(1)), - 361: int8(-int32(2)), - 363: int8(-int32(2)), - 364: int8(-int32(4)), + 361: int8(-int32(1)), + 362: int8(-int32(1)), + 363: int8(-int32(1)), + 364: int8(-int32(1)), 365: int8(-int32(2)), - 366: int8(-int32(2)), - 367: int8(-int32(3)), - 368: int8(-int32(1)), - 370: int8(-int32(1)), - 371: int8(-int32(1)), + 367: int8(-int32(2)), + 368: int8(-int32(4)), + 369: int8(-int32(2)), + 370: int8(-int32(2)), + 371: int8(-int32(3)), 372: int8(-int32(1)), - 373: int8(-int32(1)), - 374: int8(-int32(2)), + 374: int8(-int32(1)), 375: int8(-int32(1)), 376: int8(-int32(1)), - 378: int8(-int32(1)), + 377: int8(-int32(1)), + 378: int8(-int32(2)), 379: int8(-int32(1)), 380: int8(-int32(1)), - 381: int8(-int32(1)), 382: int8(-int32(1)), 383: int8(-int32(1)), 384: int8(-int32(1)), 385: int8(-int32(1)), 386: int8(-int32(1)), 387: int8(-int32(1)), - 389: int8(-int32(3)), + 388: int8(-int32(1)), + 389: int8(-int32(1)), 390: int8(-int32(1)), - 392: int8(-int32(1)), - 395: int8(-int32(1)), + 391: int8(-int32(1)), + 393: int8(-int32(3)), + 394: int8(-int32(1)), 396: int8(-int32(1)), - 397: int8(-int32(3)), - 398: int8(-int32(2)), - 400: int8(-int32(4)), - 401: int8(-int32(2)), - 403: int8(-int32(1)), - 404: int8(-int32(1)), + 399: int8(-int32(1)), + 400: int8(-int32(1)), + 401: int8(-int32(3)), + 402: int8(-int32(2)), + 404: int8(-int32(4)), + 405: int8(-int32(2)), + 407: int8(-int32(1)), + 408: int8(-int32(1)), } // C documentation @@ -229268,18 +230818,19 @@ var _yyRuleInfoNRhs = [405]int8{ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead int32, yyLookaheadToken TToken, pParse uintptr) (r uint16) { bp := tls.Alloc(144) defer tls.Free(144) - var bNot, bNot1, nExpr, yygoto, yysize, v344 int32 + var bNot, bNot1, nExpr, yygoto, yysize int32 var n Tu32 - var p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v343, v345, v346, v347, v348 uintptr + var op Tu8 + var p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yymsp, v347, v348, v349, v350, v351 uintptr var yyact uint16 - var v349 TToken + var v352 TToken var _ /* all at bp+104 */ TToken var _ /* as at bp+72 */ TToken var _ /* dest at bp+16 */ TSelectDest var _ /* t at bp+88 */ TToken var _ /* x at bp+56 */ TToken var _ /* yylhsminor at bp+0 */ TYYMINORTYPE - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, p, p1, p2, p3, p4, pDot, pFrom, pFromClause, pLeft, pLeft1, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pRight1, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v343, v344, v345, v346, v347, v348, v349 /* Amount to pop the stack */ + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bNot, bNot1, n, nExpr, op, p, p1, p2, p3, p4, p5, pDot, pFrom, pFromClause, pLeft, pLhs, pList, pList1, pList2, pList3, pList4, pNew, pOld, pRHS, pRhs, pRight, pSelect, pSelectRHS, pSrc, pSubquery, pSubquery1, temp1, temp11, temp2, temp21, temp3, temp4, yyact, yygoto, yymsp, yysize, v347, v348, v349, v350, v351, v352 /* Amount to pop the stack */ _ = yyLookahead _ = yyLookaheadToken yymsp = (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos @@ -229300,7 +230851,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _7 case uint32(7): goto _8 - case uint32(321): + case uint32(324): goto _9 case uint32(9): goto _10 @@ -229328,9 +230879,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _21 case uint32(81): goto _22 - case uint32(98): + case uint32(100): goto _23 - case uint32(244): + case uint32(246): goto _24 case uint32(16): goto _25 @@ -229354,7 +230905,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _34 case uint32(26): goto _35 - case uint32(104): + case uint32(106): goto _36 case uint32(27): goto _37 @@ -229428,17 +230979,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _71 case uint32(61): goto _72 - case uint32(171): + case uint32(173): goto _73 case uint32(80): goto _74 case uint32(63): goto _75 - case uint32(217): + case uint32(219): goto _76 - case uint32(220): + case uint32(222): goto _77 - case uint32(245): + case uint32(247): goto _78 case uint32(64): goto _79 @@ -229460,7 +231011,7 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _87 case uint32(77): goto _88 - case uint32(172): + case uint32(174): goto _89 case uint32(78): goto _90 @@ -229494,47 +231045,47 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _104 case uint32(95): goto _105 - case uint32(96): - goto _106 case uint32(97): + goto _106 + case uint32(96): goto _107 - case uint32(132): + case uint32(98): goto _108 case uint32(99): goto _109 - case uint32(142): + case uint32(134): goto _110 - case uint32(232): + case uint32(101): goto _111 - case uint32(235): + case uint32(144): goto _112 - case uint32(240): + case uint32(234): goto _113 - case uint32(100): + case uint32(237): goto _114 - case uint32(101): + case uint32(242): goto _115 case uint32(102): goto _116 - case uint32(115): - goto _117 case uint32(103): + goto _117 + case uint32(104): goto _118 - case uint32(256): + case uint32(117): goto _119 - case uint32(257): + case uint32(105): goto _120 - case uint32(108): + case uint32(258): goto _121 - case uint32(105): + case uint32(259): goto _122 - case uint32(106): + case uint32(110): goto _123 case uint32(107): goto _124 - case uint32(109): + case uint32(108): goto _125 - case uint32(110): + case uint32(109): goto _126 case uint32(111): goto _127 @@ -229542,13 +231093,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _128 case uint32(113): goto _129 - case uint32(129): - goto _130 case uint32(114): + goto _130 + case uint32(115): goto _131 - case uint32(116): + case uint32(131): goto _132 - case uint32(117): + case uint32(116): goto _133 case uint32(118): goto _134 @@ -229572,15 +231123,15 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _143 case uint32(128): goto _144 - case uint32(130): + case uint32(129): goto _145 - case uint32(131): + case uint32(130): goto _146 - case uint32(143): + case uint32(132): goto _147 case uint32(133): goto _148 - case uint32(134): + case uint32(145): goto _149 case uint32(135): goto _150 @@ -229588,49 +231139,49 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _151 case uint32(137): goto _152 - case uint32(141): - goto _153 case uint32(138): - goto _154 + goto _153 case uint32(139): + goto _154 + case uint32(143): goto _155 case uint32(140): goto _156 - case uint32(146): + case uint32(141): goto _157 - case uint32(144): + case uint32(142): goto _158 - case uint32(151): + case uint32(148): goto _159 - case uint32(153): + case uint32(146): goto _160 - case uint32(230): + case uint32(153): goto _161 - case uint32(231): + case uint32(155): goto _162 - case uint32(250): + case uint32(232): goto _163 - case uint32(152): + case uint32(233): goto _164 - case uint32(145): + case uint32(252): goto _165 case uint32(154): goto _166 - case uint32(229): + case uint32(147): goto _167 - case uint32(249): + case uint32(156): goto _168 - case uint32(147): + case uint32(231): goto _169 - case uint32(148): + case uint32(251): goto _170 case uint32(149): goto _171 case uint32(150): goto _172 - case uint32(155): + case uint32(151): goto _173 - case uint32(156): + case uint32(152): goto _174 case uint32(157): goto _175 @@ -229660,9 +231211,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _187 case uint32(170): goto _188 - case uint32(173): + case uint32(171): goto _189 - case uint32(174): + case uint32(172): goto _190 case uint32(175): goto _191 @@ -229676,13 +231227,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _195 case uint32(180): goto _196 - case uint32(182): - goto _197 case uint32(181): + goto _197 + case uint32(182): goto _198 - case uint32(183): - goto _199 case uint32(184): + goto _199 + case uint32(183): goto _200 case uint32(185): goto _201 @@ -229706,13 +231257,13 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _210 case uint32(195): goto _211 - case uint32(197): - goto _212 case uint32(196): + goto _212 + case uint32(197): goto _213 - case uint32(198): - goto _214 case uint32(199): + goto _214 + case uint32(198): goto _215 case uint32(200): goto _216 @@ -229738,23 +231289,23 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _226 case uint32(211): goto _227 - case uint32(213): - goto _228 case uint32(212): + goto _228 + case uint32(213): goto _229 - case uint32(214): - goto _230 case uint32(215): + goto _230 + case uint32(214): goto _231 - case uint32(219): - goto _232 case uint32(216): + goto _232 + case uint32(217): goto _233 - case uint32(218): - goto _234 case uint32(221): + goto _234 + case uint32(218): goto _235 - case uint32(222): + case uint32(220): goto _236 case uint32(223): goto _237 @@ -229768,35 +231319,35 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _241 case uint32(228): goto _242 - case uint32(233): + case uint32(229): goto _243 - case uint32(234): + case uint32(230): goto _244 - case uint32(241): + case uint32(235): goto _245 case uint32(236): goto _246 - case uint32(237): + case uint32(243): goto _247 - case uint32(280): - goto _248 case uint32(238): - goto _249 + goto _248 case uint32(239): + goto _249 + case uint32(282): goto _250 - case uint32(242): + case uint32(240): goto _251 - case uint32(243): + case uint32(241): goto _252 - case uint32(246): + case uint32(244): goto _253 - case uint32(247): + case uint32(245): goto _254 case uint32(248): goto _255 - case uint32(251): + case uint32(249): goto _256 - case uint32(252): + case uint32(250): goto _257 case uint32(253): goto _258 @@ -229804,9 +231355,9 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _259 case uint32(255): goto _260 - case uint32(258): + case uint32(256): goto _261 - case uint32(259): + case uint32(257): goto _262 case uint32(260): goto _263 @@ -229814,21 +231365,21 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _264 case uint32(262): goto _265 - case uint32(264): - goto _266 case uint32(263): + goto _266 + case uint32(264): goto _267 - case uint32(265): + case uint32(266): goto _268 - case uint32(285): + case uint32(265): goto _269 - case uint32(266): + case uint32(267): goto _270 - case uint32(286): + case uint32(287): goto _271 - case uint32(267): - goto _272 case uint32(268): + goto _272 + case uint32(288): goto _273 case uint32(269): goto _274 @@ -229852,17 +231403,17 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _283 case uint32(279): goto _284 - case uint32(281): + case uint32(280): goto _285 - case uint32(282): + case uint32(281): goto _286 case uint32(283): goto _287 case uint32(284): goto _288 - case uint32(287): + case uint32(285): goto _289 - case uint32(288): + case uint32(286): goto _290 case uint32(289): goto _291 @@ -229886,19 +231437,19 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _300 case uint32(299): goto _301 - case uint32(301): - goto _302 case uint32(300): + goto _302 + case uint32(301): goto _303 - case uint32(302): + case uint32(303): goto _304 - case uint32(304): + case uint32(302): goto _305 - case uint32(303): + case uint32(304): goto _306 - case uint32(305): - goto _307 case uint32(306): + goto _307 + case uint32(305): goto _308 case uint32(307): goto _309 @@ -229928,31 +231479,31 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _321 case uint32(320): goto _322 - case uint32(324): + case uint32(321): goto _323 case uint32(322): goto _324 - case uint32(325): - goto _325 case uint32(323): - goto _326 + goto _325 case uint32(327): + goto _326 + case uint32(325): goto _327 - case uint32(326): - goto _328 case uint32(328): + goto _328 + case uint32(326): goto _329 - case uint32(329): + case uint32(330): goto _330 - case uint32(331): + case uint32(329): goto _331 - case uint32(330): + case uint32(331): goto _332 case uint32(332): goto _333 - case uint32(333): - goto _334 case uint32(334): + goto _334 + case uint32(333): goto _335 case uint32(335): goto _336 @@ -229964,34 +231515,42 @@ func _yy_reduce(tls *libc.TLS, yypParser uintptr, yyruleno uint32, yyLookahead i goto _339 case uint32(339): goto _340 - default: + case uint32(340): goto _341 + case uint32(341): + goto _342 + case uint32(342): + goto _343 + case uint32(343): + goto _344 + default: + goto _345 } - goto _342 + goto _346 _1: ; /* explain ::= EXPLAIN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(1) } - goto _342 + goto _346 _2: ; /* explain ::= EXPLAIN QUERY PLAN */ if (*TParse)(unsafe.Pointer(pParse)).FpReprepare == uintptr(0) { (*TParse)(unsafe.Pointer(pParse)).Fexplain = uint8(2) } - goto _342 + goto _346 _3: ; /* cmdx ::= cmd */ _sqlite3FinishCoding(tls, pParse) - goto _342 + goto _346 _4: ; /* cmd ::= BEGIN transtype trans_opt */ _sqlite3BeginTransaction(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _5: ; /* transtype ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_DEFERRED) - goto _342 + goto _346 _7: ; /* transtype ::= DEFERRED */ _6: @@ -230001,33 +231560,33 @@ _8: _9: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 + goto _346 _11: ; /* cmd ::= COMMIT|END trans_opt */ _10: ; _sqlite3EndTransaction(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor)) - goto _342 + goto _346 _12: ; /* cmd ::= SAVEPOINT nm */ _sqlite3Savepoint(tls, pParse, SAVEPOINT_BEGIN, yymsp+8) - goto _342 + goto _346 _13: ; /* cmd ::= RELEASE savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_RELEASE), yymsp+8) - goto _342 + goto _346 _14: ; /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ _sqlite3Savepoint(tls, pParse, int32(SAVEPOINT_ROLLBACK), yymsp+8) - goto _342 + goto _346 _15: ; /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ _sqlite3StartTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), 0, 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _16: ; /* createkw ::= CREATE */ _disableLookaside(tls, pParse) - goto _342 + goto _346 _18: ; /* ifnotexists ::= */ _17: @@ -230045,56 +231604,56 @@ _23: _24: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = 0 - goto _342 + goto _346 _25: ; /* ifnotexists ::= IF NOT EXISTS */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(1) - goto _342 + goto _346 _26: ; /* temp ::= TEMP */ *(*int32)(unsafe.Pointer(yymsp + 8)) = libc.BoolInt32(int32((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0) - goto _342 + goto _346 _27: ; /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ _sqlite3EndTable(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*Tu32)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 + goto _346 _28: ; /* create_table_args ::= AS select */ _sqlite3EndTable(tls, pParse, uintptr(0), uintptr(0), uint32(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _29: ; /* table_option_set ::= */ *(*Tu32)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint32(0) - goto _342 + goto _346 _30: ; /* table_option_set ::= table_option_set COMMA table_option */ *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) | *(*Tu32)(unsafe.Pointer(yymsp + 8)) *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _31: ; /* table_option ::= WITHOUT nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+18009, int32(5)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+18096, int32(5)) == 0 { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) } else { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24684, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24807, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } - goto _342 + goto _346 _32: ; /* table_option ::= nm */ - if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+17922, int32(6)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+18009, int32(6)) == 0 { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(TF_Strict) } else { *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = uint32(0) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24684, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24807, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } *(*Tu32)(unsafe.Pointer(yymsp + 8)) = *(*Tu32)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 + goto _346 _33: ; /* columnname ::= nm typetoken */ _sqlite3AddColumn(tls, pParse, *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*TToken)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _35: ; /* typetoken ::= */ _34: @@ -230103,50 +231662,50 @@ _36: ; *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 + goto _346 _37: ; /* typetoken ::= typename LP signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) - goto _342 + goto _346 _38: ; /* typetoken ::= typename LP signed COMMA signed RP */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8 + 8)) = uint32(int32(t__predefined_ptrdiff_t(*(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))))) - goto _342 + goto _346 _39: ; /* typename ::= typename ID|STRING */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) + uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) - goto _342 + goto _346 _40: ; /* scanpt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken.Fz - goto _342 + goto _346 _41: ; /* scantok ::= */ *(*TToken)(unsafe.Pointer(yymsp + 1*24 + 8)) = yyLookaheadToken - goto _342 + goto _346 _43: ; /* ccons ::= CONSTRAINT nm */ _42: ; (*TParse)(unsafe.Pointer(pParse)).FconstraintName = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _44: ; /* ccons ::= DEFAULT scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _45: ; /* ccons ::= DEFAULT LP expr RP */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))+uintptr(1), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _46: ; /* ccons ::= DEFAULT PLUS scantok term */ _sqlite3AddDefaultValue(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _47: ; /* ccons ::= DEFAULT MINUS scantok term */ p = _sqlite3PExpr(tls, pParse, int32(TK_UMINUS), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) _sqlite3AddDefaultValue(tls, pParse, p, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)))) - goto _342 + goto _346 _48: ; /* ccons ::= DEFAULT scantok ID|INDEXED */ p1 = _tokenExpr(tls, pParse, int32(TK_STRING), *(*TToken)(unsafe.Pointer(yymsp + 8))) @@ -230154,99 +231713,99 @@ _48: _sqlite3ExprIdToTrueFalse(tls, p1) } _sqlite3AddDefaultValue(tls, pParse, p1, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))+uintptr(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) - goto _342 + goto _346 _49: ; /* ccons ::= NOT NULL onconf */ _sqlite3AddNotNull(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _50: ; /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ _sqlite3AddPrimaryKey(tls, pParse, uintptr(0), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 + goto _346 _51: ; /* ccons ::= UNIQUE onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), uintptr(0), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _52: ; /* ccons ::= CHECK LP expr RP */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _53: ; /* ccons ::= REFERENCES nm eidlist_opt refargs */ _sqlite3CreateForeignKey(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _54: ; /* ccons ::= defer_subclause */ _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _55: ; /* ccons ::= COLLATE ID|STRING */ _sqlite3AddCollateType(tls, pParse, yymsp+8) - goto _342 + goto _346 _56: ; /* generated ::= LP expr RP */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 + goto _346 _57: ; /* generated ::= LP expr RP ID */ _sqlite3AddGenerated(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 + goto _346 _58: ; /* autoinc ::= AUTOINCR */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(1) - goto _342 + goto _346 _59: ; /* refargs ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = libc.Int32FromInt32(OE_None) * libc.Int32FromInt32(0x0101) /* EV: R-19803-45884 */ - goto _342 + goto _346 _60: ; /* refargs ::= refargs refarg */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) & ^*(*int32)(unsafe.Pointer(yymsp + 8 + 4)) | *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _61: ; /* refarg ::= MATCH nm */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _62: ; /* refarg ::= ON INSERT refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = 0x000000 - goto _342 + goto _346 _63: ; /* refarg ::= ON DELETE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x0000ff) - goto _342 + goto _346 _64: ; /* refarg ::= ON UPDATE refact */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) << int32(8) *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 4)) = int32(0x00ff00) - goto _342 + goto _346 _65: ; /* refact ::= SET NULL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetNull) /* EV: R-33326-45252 */ - goto _342 + goto _346 _66: ; /* refact ::= SET DEFAULT */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(OE_SetDflt) /* EV: R-33326-45252 */ - goto _342 + goto _346 _67: ; /* refact ::= CASCADE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Cascade) /* EV: R-33326-45252 */ - goto _342 + goto _346 _68: ; /* refact ::= RESTRICT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Restrict) /* EV: R-33326-45252 */ - goto _342 + goto _346 _69: ; /* refact ::= NO ACTION */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = OE_None /* EV: R-33326-45252 */ - goto _342 + goto _346 _70: ; /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = 0 - goto _342 + goto _346 _72: ; /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ _71: @@ -230254,7 +231813,7 @@ _71: _73: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _75: ; /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ _74: @@ -230266,64 +231825,64 @@ _77: _78: ; *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(1) - goto _342 + goto _346 _79: ; /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = 0 - goto _342 + goto _346 _80: ; /* tconscomma ::= COMMA */ (*TParse)(unsafe.Pointer(pParse)).FconstraintName.Fn = uint32(0) - goto _342 + goto _346 _81: ; /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ _sqlite3AddPrimaryKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), 0) - goto _342 + goto _346 _82: ; /* tcons ::= UNIQUE LP sortlist RP onconf */ _sqlite3CreateIndex(tls, pParse, uintptr(0), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), 0, 0, uint8(SQLITE_IDXTYPE_UNIQUE)) - goto _342 + goto _346 _83: ; /* tcons ::= CHECK LP expr RP onconf */ _sqlite3AddCheckConstraint(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _84: ; /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ _sqlite3CreateForeignKey(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) _sqlite3DeferForeignKey(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _86: ; /* onconf ::= */ _85: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(OE_Default) - goto _342 + goto _346 _87: ; /* onconf ::= ON CONFLICT resolvetype */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*int32)(unsafe.Pointer(yymsp + 8)) - goto _342 + goto _346 _88: ; /* resolvetype ::= IGNORE */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Ignore) - goto _342 + goto _346 _90: ; /* resolvetype ::= REPLACE */ _89: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Replace) - goto _342 + goto _346 _91: ; /* cmd ::= DROP TABLE ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), 0, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _92: ; /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ _sqlite3CreateView(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) - goto _342 + goto _346 _93: ; /* cmd ::= DROP VIEW ifexists fullname */ _sqlite3DropTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), int32(1), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _94: ; /* cmd ::= select */ *(*TSelectDest)(unsafe.Pointer(bp + 16)) = TSelectDest{ @@ -230331,22 +231890,22 @@ _94: } _sqlite3Select(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), bp+16) _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _95: ; /* select ::= WITH wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _96: ; /* select ::= WITH RECURSIVE wqlist selectnowith */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _attachWithToSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 + goto _346 _97: ; /* select ::= selectnowith */ p2 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) if p2 != 0 { _parserDoubleLinkSelect(tls, pParse, p2) } - goto _342 + goto _346 _98: ; /* selectnowith ::= selectnowith multiselect_op oneselect */ pRhs = *(*uintptr)(unsafe.Pointer(yymsp + 8)) @@ -230371,21 +231930,21 @@ _98: _sqlite3SelectDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pLhs) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = pRhs - goto _342 + goto _346 _100: ; /* multiselect_op ::= UNION */ _99: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-OP*/ - goto _342 + goto _346 _101: ; /* multiselect_op ::= UNION ALL */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_ALL) - goto _342 + goto _346 _102: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 + goto _346 _103: ; /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(9))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint32(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -230394,116 +231953,111 @@ _103: } else { _sqlite3WindowListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) } - goto _342 + goto _346 _104: ; /* values ::= VALUES LP nexprlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(SF_Values), uintptr(0)) - goto _342 + goto _346 _105: - ; /* values ::= values COMMA LP nexprlist RP */ - pLeft = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) - pRight = _sqlite3SelectNew(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(libc.Int32FromInt32(SF_Values)|libc.Int32FromInt32(SF_MultiValue)), uintptr(0)) - if pLeft != 0 { - *(*Tu32)(unsafe.Pointer(pLeft + 4)) &= uint32(^libc.Int32FromInt32(SF_MultiValue)) - } - if pRight != 0 { - (*TSelect)(unsafe.Pointer(pRight)).Fop = uint8(TK_ALL) - (*TSelect)(unsafe.Pointer(pRight)).FpPrior = pLeft - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pRight - } else { - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = pLeft - } - goto _342 + ; /* oneselect ::= mvalues */ + _sqlite3MultiValuesEnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_107: + ; /* mvalues ::= values COMMA LP nexprlist RP */ _106: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3MultiValues(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_108: ; /* distinct ::= DISTINCT */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_Distinct) - goto _342 -_107: + goto _346 +_109: ; /* distinct ::= ALL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SF_All) - goto _342 -_109: + goto _346 +_111: ; /* sclp ::= */ -_108: - ; _110: ; -_111: - ; _112: ; _113: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 _114: + ; +_115: + ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 +_116: ; /* selcollist ::= sclp scanpt expr scanpt as */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) > uint32(0) { _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+8, int32(1)) } _sqlite3ExprListSetSpan(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_115: + goto _346 +_117: ; /* selcollist ::= sclp scanpt STAR */ p3 = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_ASTERISK), uintptr(0)) _sqlite3ExprSetErrorOffset(tls, p3, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), p3) - goto _342 -_116: + goto _346 +_118: ; /* selcollist ::= sclp scanpt nm DOT STAR */ - pRight1 = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) - _sqlite3ExprSetErrorOffset(tls, pRight1, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) - pLeft1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft1, pRight1) + pRight = _sqlite3PExpr(tls, pParse, int32(TK_ASTERISK), uintptr(0), uintptr(0)) + _sqlite3ExprSetErrorOffset(tls, pRight, int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64((*TParse)(unsafe.Pointer(pParse)).FzTail))) + pLeft = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) + pDot = _sqlite3PExpr(tls, pParse, int32(TK_DOT), pLeft, pRight) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pDot) - goto _342 -_118: + goto _346 +_120: ; /* as ::= AS nm */ -_117: - ; _119: ; -_120: +_121: ; - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 _122: + ; + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) + goto _346 +_124: ; /* from ::= */ -_121: +_123: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_123: + goto _346 +_125: ; /* from ::= FROM seltablist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) _sqlite3SrcListShiftJoinType(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_124: + goto _346 +_126: ; /* stl_prefix ::= seltablist joinop */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 && (*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc > 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8 + uintptr((*TSrcList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnSrc-int32(1))*104))).Ffg.Fjointype = uint8(*(*int32)(unsafe.Pointer(yymsp + 8))) } - goto _342 -_125: + goto _346 +_127: ; /* seltablist ::= stl_prefix nm dbnm as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) - goto _342 -_126: + goto _346 +_128: ; /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_127: + goto _346 +_129: ; /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), yymsp+8) _sqlite3SrcListFuncArgs(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) - goto _342 -_128: + goto _346 +_130: ; /* seltablist ::= stl_prefix LP select RP as on_using */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_129: + goto _346 +_131: ; /* seltablist ::= stl_prefix LP seltablist RP as on_using */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) == uintptr(0) && *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) == uint32(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8)) == uintptr(0) && *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) @@ -230525,9 +232079,9 @@ _129: libc.SetBitFieldPtr16Uint32(pOld+60+4, libc.Uint32FromInt32(0), 2, 0x4) libc.SetBitFieldPtr16Uint32(pNew+60+4, libc.Uint32FromInt32(1), 2, 0x4) } - v343 = libc.UintptrFromInt32(0) - (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v343 - (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v343 + v347 = libc.UintptrFromInt32(0) + (*TSrcItem)(unsafe.Pointer(pOld)).FzDatabase = v347 + (*TSrcItem)(unsafe.Pointer(pOld)).FzName = v347 (*TSrcItem)(unsafe.Pointer(pOld)).FpSelect = uintptr(0) } _sqlite3SrcListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) @@ -230537,189 +232091,189 @@ _129: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendFromTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, pSubquery, yymsp+8) } } - goto _342 -_131: + goto _346 +_133: ; /* dbnm ::= */ -_130: +_132: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uint32(0) - goto _342 -_132: + goto _346 +_134: ; /* fullname ::= nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_133: + goto _346 +_135: ; /* fullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { _sqlite3RenameTokenMap(tls, pParse, (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 8))).FzName, yymsp+8) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_134: + goto _346 +_136: ; /* xfullname ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+8, uintptr(0)) /*A-overwrites-X*/ - goto _342 -_135: + goto _346 +_137: ; /* xfullname ::= nm DOT nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) /*A-overwrites-X*/ - goto _342 -_136: + goto _346 +_138: ; /* xfullname ::= nm DOT nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_137: + goto _346 +_139: ; /* xfullname ::= nm AS nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, uintptr(0)) /*A-overwrites-X*/ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { (*(*TSrcItem)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 8))).FzAlias = _sqlite3NameFromToken(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, yymsp+8) } - goto _342 -_138: + goto _346 +_140: ; /* joinop ::= COMMA|JOIN */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(JT_INNER) - goto _342 -_139: + goto _346 +_141: ; /* joinop ::= JOIN_KW JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0), uintptr(0)) /*X-overwrites-A*/ - goto _342 -_140: + goto _346 +_142: ; /* joinop ::= JOIN_KW nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, uintptr(0)) /*X-overwrites-A*/ - goto _342 -_141: + goto _346 +_143: ; /* joinop ::= JOIN_KW nm nm JOIN */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3JoinType(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) /*X-overwrites-A*/ - goto _342 -_142: + goto _346 +_144: ; /* on_using ::= ON expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uintptr(0) - goto _342 -_143: + goto _346 +_145: ; /* on_using ::= USING LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_144: + goto _346 +_146: ; /* on_using ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8 + 8)) = uintptr(0) - goto _342 -_145: + goto _346 +_147: ; /* indexed_by ::= INDEXED BY nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - goto _342 -_146: + goto _346 +_148: ; /* indexed_by ::= NOT INDEXED */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(1) - goto _342 -_148: + goto _346 +_150: ; /* orderby_opt ::= ORDER BY sortlist */ -_147: +_149: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_149: + goto _346 +_151: ; /* sortlist ::= sortlist COMMA expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_150: + goto _346 +_152: ; /* sortlist ::= expr sortorder nulls */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) /*A-overwrites-Y*/ _sqlite3ExprListSetSortOrder(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_151: + goto _346 +_153: ; /* sortorder ::= ASC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = SQLITE_SO_ASC - goto _342 -_152: + goto _346 +_154: ; /* sortorder ::= DESC */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_154: + goto _346 +_156: ; /* sortorder ::= */ -_153: +_155: ; *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = -int32(1) - goto _342 -_155: + goto _346 +_157: ; /* nulls ::= NULLS FIRST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = SQLITE_SO_ASC - goto _342 -_156: + goto _346 +_158: ; /* nulls ::= NULLS LAST */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(SQLITE_SO_DESC) - goto _342 -_158: + goto _346 +_160: ; /* having_opt ::= */ -_157: - ; _159: ; -_160: - ; _161: ; _162: ; _163: ; - *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_165: - ; /* having_opt ::= HAVING expr */ _164: ; -_166: +_165: ; + *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) + goto _346 _167: + ; /* having_opt ::= HAVING expr */ +_166: ; _168: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 _169: + ; +_170: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + goto _346 +_171: ; /* limit_opt ::= LIMIT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - goto _342 -_170: + goto _346 +_172: ; /* limit_opt ::= LIMIT expr OFFSET expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_171: + goto _346 +_173: ; /* limit_opt ::= LIMIT expr COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) - goto _342 -_172: + goto _346 +_174: ; /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) _sqlite3DeleteFrom(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0)) - goto _342 -_173: + goto _346 +_175: ; /* where_opt_ret ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) - goto _342 -_174: + goto _346 +_176: ; /* where_opt_ret ::= WHERE expr RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) - goto _342 -_175: + goto _346 +_177: ; /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ _sqlite3SrcListIndexedBy(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) - _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+24711) + _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+24834) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { pFromClause = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) if (*TSrcList)(unsafe.Pointer(pFromClause)).FnSrc > int32(1) { @@ -230731,95 +232285,95 @@ _175: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3SrcListAppendList(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), pFromClause) } _sqlite3Update(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_176: + goto _346 +_178: ; /* setlist ::= setlist COMMA nm EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) - goto _342 -_177: + goto _346 +_179: ; /* setlist ::= setlist COMMA LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_178: + goto _346 +_180: ; /* setlist ::= nm EQ expr */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprListSetName(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, int32(1)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_179: + goto _346 +_181: ; /* setlist ::= LP idlist RP EQ expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppendVector(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_180: + goto _346 +_182: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_181: + goto _346 +_183: ; /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ _sqlite3Insert(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), uintptr(0)) - goto _342 -_182: + goto _346 +_184: ; /* upsert ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_183: + goto _346 +_185: ; /* upsert ::= RETURNING selcollist */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uintptr(0) _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_184: + goto _346 +_186: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(11))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_185: + goto _346 +_187: ; /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_186: + goto _346 +_188: ; /* upsert ::= ON CONFLICT DO NOTHING returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - goto _342 -_187: + goto _346 +_189: ; /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = _sqlite3UpsertNew(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uintptr(0), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_188: + goto _346 +_190: ; /* returning ::= RETURNING selcollist */ _sqlite3AddReturning(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_189: + goto _346 +_191: ; /* idlist_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_190: + goto _346 +_192: ; /* idlist_opt ::= LP idlist RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_191: + goto _346 +_193: ; /* idlist ::= idlist COMMA nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3IdListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8) - goto _342 -_192: + goto _346 +_194: ; /* idlist ::= nm */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3IdListAppend(tls, pParse, uintptr(0), yymsp+8) /*A-overwrites-Y*/ - goto _342 -_193: + goto _346 +_195: ; /* expr ::= LP expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_194: + goto _346 +_196: ; /* expr ::= ID|INDEXED|JOIN_KW */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_195: + goto _346 +_197: ; /* expr ::= nm DOT nm */ temp1 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) temp2 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp1, temp2) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_196: + goto _346 +_198: ; /* expr ::= nm DOT nm DOT nm */ temp11 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) temp21 = _tokenExpr(tls, pParse, int32(TK_ID), *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) @@ -230830,22 +232384,22 @@ _196: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3PExpr(tls, pParse, int32(TK_DOT), temp11, temp4) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_198: + goto _346 +_200: ; /* term ::= NULL|FLOAT|BLOB */ -_197: +_199: ; *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_199: + goto _346 +_201: ; /* term ::= INTEGER */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), yymsp+8, int32(1)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { *(*int32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + 52)) = int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8))) - int64((*TParse)(unsafe.Pointer(pParse)).FzTail)) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_200: + goto _346 +_202: ; /* expr ::= VARIABLE */ if !(int32(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8))))) == int32('#') && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)) + 1)))])&int32(0x04) != 0) { n = *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) @@ -230857,7 +232411,7 @@ _200: ** in the virtual machine. #N is the N-th register. */ *(*TToken)(unsafe.Pointer(bp + 88)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) /*A-overwrites-X*/ if int32((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24720, libc.VaList(bp+128, bp+88)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24843, libc.VaList(bp+128, bp+88)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = uintptr(0) } else { *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_REGISTER), uintptr(0), uintptr(0)) @@ -230866,57 +232420,57 @@ _200: } } } - goto _342 -_201: + goto _346 +_203: ; /* expr ::= expr COLLATE ID|STRING */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAddCollateToken(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+8, int32(1)) - goto _342 -_202: + goto _346 +_204: ; /* expr ::= CAST LP expr AS typetoken RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_CAST), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) _sqlite3ExprAttachSubtrees(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) - goto _342 -_203: + goto _346 +_205: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_204: + goto _346 +_206: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_205: + goto _346 +_207: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_206: + goto _346 +_208: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_207: + goto _346 +_209: ; /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(8))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _sqlite3ExprAddFunctionOrderBy(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_208: + goto _346 +_210: ; /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, 0) _sqlite3WindowAttach(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_209: + goto _346 +_211: ; /* term ::= CTIME_KW */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, uintptr(0), yymsp+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_210: + goto _346 +_212: ; /* expr ::= LP nexprlist COMMA expr RP */ pList = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_VECTOR), uintptr(0), uintptr(0)) @@ -230928,33 +232482,33 @@ _210: } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pList) } - goto _342 -_211: + goto _346 +_213: ; /* expr ::= expr AND expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprAnd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_213: + goto _346 +_215: ; /* expr ::= expr OR expr */ -_212: - ; _214: ; -_215: - ; _216: ; _217: ; _218: ; - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 _219: + ; +_220: + ; + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) + goto _346 +_221: ; /* likeop ::= NOT LIKE_KW|MATCH */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) |= uint32(0x80000000) /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/ - goto _342 -_220: + goto _346 +_222: ; /* expr ::= expr likeop expr */ bNot = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -230967,8 +232521,8 @@ _220: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_221: + goto _346 +_223: ; /* expr ::= expr likeop expr ESCAPE expr */ bNot1 = int32(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) & uint32(0x80000000)) *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)) &= uint32(0x7fffffff) @@ -230982,65 +232536,67 @@ _221: if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 4)) |= uint32(EP_InfixFunc) } - goto _342 -_222: + goto _346 +_224: ; /* expr ::= expr ISNULL|NOTNULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_223: + goto _346 +_225: ; /* expr ::= expr NOT NULL */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOTNULL), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uintptr(0)) - goto _342 -_224: + goto _346 +_226: ; /* expr ::= expr IS expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_225: + goto _346 +_227: ; /* expr ::= expr IS NOT expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_226: + goto _346 +_228: ; /* expr ::= expr IS NOT DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IS), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), int32(TK_ISNULL)) - goto _342 -_227: + goto _346 +_229: ; /* expr ::= expr IS DISTINCT FROM expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_ISNOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) _binaryToUnaryIfNull(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), int32(TK_NOTNULL)) - goto _342 -_229: + goto _346 +_231: ; /* expr ::= NOT expr */ -_228: +_230: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor), *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) /*A-overwrites-B*/ - goto _342 -_230: + goto _346 +_232: ; /* expr ::= PLUS|MINUS expr */ - if int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) == int32(TK_PLUS) { - v344 = int32(TK_UPLUS) + p4 = *(*uintptr)(unsafe.Pointer(yymsp + 8)) + op = uint8(int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) + (libc.Int32FromInt32(TK_UPLUS) - libc.Int32FromInt32(TK_PLUS))) + if p4 != 0 && int32((*TExpr)(unsafe.Pointer(p4)).Fop) == int32(TK_UPLUS) { + (*TExpr)(unsafe.Pointer(p4)).Fop = op + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = p4 } else { - v344 = int32(TK_UMINUS) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(int32(op)), p4, uintptr(0)) + /*A-overwrites-B*/ } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3PExpr(tls, pParse, v344, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0)) - /*A-overwrites-B*/ - goto _342 -_231: + goto _346 +_233: ; /* expr ::= expr PTR expr */ pList3 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList3 = _sqlite3ExprListAppend(tls, pParse, pList3, *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3ExprFunction(tls, pParse, pList3, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_233: + goto _346 +_235: ; /* between_op ::= BETWEEN */ -_232: +_234: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = 0 - goto _342 -_234: + goto _346 +_236: ; /* expr ::= expr between_op expr AND expr */ pList4 = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) pList4 = _sqlite3ExprListAppend(tls, pParse, pList4, *(*uintptr)(unsafe.Pointer(yymsp + 8))) @@ -231053,8 +232609,8 @@ _234: if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_235: + goto _346 +_237: ; /* expr ::= expr in_op LP exprlist RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) == uintptr(0) { /* Expressions of the form @@ -231067,17 +232623,17 @@ _235: */ _sqlite3ExprUnmapAndDelete(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { - v345 = __ccgo_ts + 9195 + v348 = __ccgo_ts + 9320 } else { - v345 = __ccgo_ts + 9200 + v348 = __ccgo_ts + 9325 } - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v345) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_STRING), v348) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { _sqlite3ExprIdToTrueFalse(tls, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } } else { pRHS = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr - if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { + if (*TExprList)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FnExpr == int32(1) && _sqlite3ExprIsConstant(tls, pParse, pRHS) != 0 && int32((*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)))).Fop) != int32(TK_VECTOR) { (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) + 8))).FpExpr = uintptr(0) _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) pRHS = _sqlite3PExpr(tls, pParse, int32(TK_UPLUS), pRHS, uintptr(0)) @@ -231111,460 +232667,464 @@ _235: *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } } - goto _342 -_236: + goto _346 +_238: ; /* expr ::= LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_SELECT), uintptr(0), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_237: + goto _346 +_239: ; /* expr ::= expr in_op LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_238: + goto _346 +_240: ; /* expr ::= expr in_op nm dbnm paren_exprlist */ pSrc = _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) pSelect = _sqlite3SelectNew(tls, pParse, uintptr(0), pSrc, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uint32(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { if pSelect != 0 { - v346 = pSrc + v349 = pSrc } else { - v346 = uintptr(0) + v349 = uintptr(0) } - _sqlite3SrcListFuncArgs(tls, pParse, v346, *(*uintptr)(unsafe.Pointer(yymsp + 8))) + _sqlite3SrcListFuncArgs(tls, pParse, v349, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_IN), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) _sqlite3PExprAddSelect(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), pSelect) if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_NOT), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uintptr(0)) } - goto _342 -_239: + goto _346 +_241: ; /* expr ::= EXISTS LP select RP */ - v347 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) - *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v347 - p4 = v347 - _sqlite3PExprAddSelect(tls, pParse, p4, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_240: + v350 = _sqlite3PExpr(tls, pParse, int32(TK_EXISTS), uintptr(0), uintptr(0)) + *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = v350 + p5 = v350 + _sqlite3PExprAddSelect(tls, pParse, p5, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + goto _346 +_242: ; /* expr ::= CASE case_operand case_exprlist case_else END */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_CASE), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) != 0 { if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { - v348 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) + v351 = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } else { - v348 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) + v351 = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) } - *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v348 + *(*uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) + 32)) = v351 _sqlite3ExprSetHeightAndFlags(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) } else { _sqlite3ExprListDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) } - goto _342 -_241: + goto _346 +_243: ; /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_242: + goto _346 +_244: ; /* case_exprlist ::= WHEN expr THEN expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_243: + goto _346 +_245: ; /* nexprlist ::= nexprlist COMMA expr */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3ExprListAppend(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_244: + goto _346 +_246: ; /* nexprlist ::= expr */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_246: + goto _346 +_248: ; /* paren_exprlist ::= LP exprlist RP */ -_245: +_247: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_247: + goto _346 +_249: ; /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ _sqlite3CreateIndex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, _sqlite3SrcListAppend(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, uintptr(0)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(11))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8)), SQLITE_SO_ASC, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), uint8(SQLITE_IDXTYPE_APPDEF)) if int32((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) && (*TParse)(unsafe.Pointer(pParse)).FpNewIndex != 0 { _sqlite3RenameTokenMap(tls, pParse, (*TIndex)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).FpNewIndex)).FzName, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) } - goto _342 -_249: + goto _346 +_251: ; /* uniqueflag ::= UNIQUE */ -_248: +_250: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Abort) - goto _342 -_250: + goto _346 +_252: ; /* uniqueflag ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = OE_None - goto _342 -_251: + goto _346 +_253: ; /* eidlist ::= eidlist COMMA nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) - goto _342 -_252: + goto _346 +_254: ; /* eidlist ::= nm collate sortorder */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _parserAddExprIdListTerm(tls, pParse, uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-Y*/ - goto _342 -_253: + goto _346 +_255: ; /* cmd ::= DROP INDEX ifexists fullname */ _sqlite3DropIndex(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_254: + goto _346 +_256: ; /* cmd ::= VACUUM vinto */ _sqlite3Vacuum(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_255: + goto _346 +_257: ; /* cmd ::= VACUUM nm vinto */ _sqlite3Vacuum(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_256: + goto _346 +_258: ; /* cmd ::= PRAGMA nm dbnm */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8, uintptr(0), 0) - goto _342 -_257: + goto _346 +_259: ; /* cmd ::= PRAGMA nm dbnm EQ nmnum */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, 0) - goto _342 -_258: + goto _346 +_260: ; /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, 0) - goto _342 -_259: + goto _346 +_261: ; /* cmd ::= PRAGMA nm dbnm EQ minus_num */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, int32(1)) - goto _342 -_260: + goto _346 +_262: ; /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ _sqlite3Pragma(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) - goto _342 -_261: + goto _346 +_263: ; /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ (*(*TToken)(unsafe.Pointer(bp + 104))).Fz = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) (*(*TToken)(unsafe.Pointer(bp + 104))).Fn = uint32(int32(int64(*(*uintptr)(unsafe.Pointer(yymsp + 8)))-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))))) + *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) _sqlite3FinishTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), bp+104) - goto _342 -_262: + goto _346 +_264: ; /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ _sqlite3BeginTrigger(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(7))*24+8, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8))) if *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8 + 8)) == uint32(0) { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) } else { - v349 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) + v352 = *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8)) } - *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v349 /*A-overwrites-T*/ - goto _342 -_263: + *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(10))*24 + 8)) = v352 /*A-overwrites-T*/ + goto _346 +_265: ; /* trigger_time ::= BEFORE|AFTER */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_264: + goto _346 +_266: ; /* trigger_time ::= INSTEAD OF */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = int32(TK_INSTEAD) - goto _342 -_265: + goto _346 +_267: ; /* trigger_time ::= */ *(*int32)(unsafe.Pointer(yymsp + 1*24 + 8)) = int32(TK_BEFORE) - goto _342 -_267: + goto _346 +_269: ; /* trigger_event ::= DELETE|INSERT */ -_266: +_268: ; *(*int32)(unsafe.Pointer(yymsp + 8)) = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ *(*uintptr)(unsafe.Pointer(yymsp + 8 + 8)) = uintptr(0) - goto _342 -_268: + goto _346 +_270: ; /* trigger_event ::= UPDATE OF idlist */ *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = int32(TK_UPDATE) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_270: + goto _346 +_272: ; /* when_clause ::= */ -_269: +_271: ; *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = uintptr(0) - goto _342 -_272: + goto _346 +_274: ; /* when_clause ::= WHEN expr */ -_271: +_273: ; *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_273: + goto _346 +_275: ; /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ (*TTriggerStep)(unsafe.Pointer((*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast)).FpNext = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_274: + goto _346 +_276: ; /* trigger_cmd_list ::= trigger_cmd SEMI */ (*TTriggerStep)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FpLast = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_275: + goto _346 +_277: ; /* trnm ::= nm DOT nm */ *(*TToken)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*TToken)(unsafe.Pointer(yymsp + 8)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24744, 0) - goto _342 -_276: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24867, 0) + goto _346 +_278: ; /* tridxby ::= INDEXED BY nm */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24839, 0) - goto _342 -_277: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24962, 0) + goto _346 +_279: ; /* tridxby ::= NOT INDEXED */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24923, 0) - goto _342 -_278: + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+25046, 0) + goto _346 +_280: ; /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerUpdateStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(6))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(8))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_279: + goto _346 +_281: ; /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerInsertStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(4))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), uint8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(6))*24 + 8))), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(7))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_280: + goto _346 +_282: ; /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerDeleteStep(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_281: + goto _346 +_283: ; /* trigger_cmd ::= scanpt select scanpt */ - *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3TriggerSelectStep(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_282: + goto _346 +_284: ; /* expr ::= RAISE LP IGNORE RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3PExpr(tls, pParse, int32(TK_RAISE), uintptr(0), uintptr(0)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)))).FaffExpr = int8(OE_Ignore) } - goto _342 -_283: + goto _346 +_285: ; /* expr ::= RAISE LP raisetype COMMA nm RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3ExprAlloc(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_RAISE), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, int32(1)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) != 0 { (*TExpr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)))).FaffExpr = int8(*(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) } - goto _342 -_284: + goto _346 +_286: ; /* raisetype ::= ROLLBACK */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Rollback) - goto _342 -_285: + goto _346 +_287: ; /* raisetype ::= FAIL */ *(*int32)(unsafe.Pointer(yymsp + 8)) = int32(OE_Fail) - goto _342 -_286: + goto _346 +_288: ; /* cmd ::= DROP TRIGGER ifexists fullname */ _sqlite3DropTrigger(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))) - goto _342 -_287: + goto _346 +_289: ; /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ _sqlite3Attach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_288: + goto _346 +_290: ; /* cmd ::= DETACH database_kw_opt expr */ _sqlite3Detach(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_289: + goto _346 +_291: ; /* cmd ::= REINDEX */ _sqlite3Reindex(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_290: + goto _346 +_292: ; /* cmd ::= REINDEX nm dbnm */ _sqlite3Reindex(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_291: + goto _346 +_293: ; /* cmd ::= ANALYZE */ _sqlite3Analyze(tls, pParse, uintptr(0), uintptr(0)) - goto _342 -_292: + goto _346 +_294: ; /* cmd ::= ANALYZE nm dbnm */ _sqlite3Analyze(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8, yymsp+8) - goto _342 -_293: + goto _346 +_295: ; /* cmd ::= ALTER TABLE fullname RENAME TO nm */ _sqlite3AlterRenameTable(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_294: + goto _346 +_296: ; /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ *(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)) = uint32(int32(int64((*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fz)-int64(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8))))) + (*TParse)(unsafe.Pointer(pParse)).FsLastToken.Fn _sqlite3AlterFinishAddColumn(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) - goto _342 -_295: + goto _346 +_297: ; /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ _sqlite3AlterDropColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), yymsp+8) - goto _342 -_296: + goto _346 +_298: ; /* add_column_fullname ::= fullname */ _disableLookaside(tls, pParse) _sqlite3AlterBeginAddColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_297: + goto _346 +_299: ; /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ _sqlite3AlterRenameColumn(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8) - goto _342 -_298: + goto _346 +_300: ; /* cmd ::= create_vtab */ _sqlite3VtabFinishParse(tls, pParse, uintptr(0)) - goto _342 -_299: + goto _346 +_301: ; /* cmd ::= create_vtab LP vtabarglist RP */ _sqlite3VtabFinishParse(tls, pParse, yymsp+8) - goto _342 -_300: + goto _346 +_302: ; /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ _sqlite3VtabBeginParse(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(3))*24+8, yymsp+uintptr(-libc.Int32FromInt32(2))*24+8, yymsp+8, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8))) - goto _342 -_301: + goto _346 +_303: ; /* vtabarg ::= */ _sqlite3VtabArgInit(tls, pParse) - goto _342 -_303: + goto _346 +_305: ; /* vtabargtoken ::= ANY */ -_302: - ; _304: ; - _sqlite3VtabArgExtend(tls, pParse, yymsp+8) - goto _342 _306: + ; + _sqlite3VtabArgExtend(tls, pParse, yymsp+8) + goto _346 +_308: ; /* with ::= WITH wqlist */ -_305: +_307: ; _sqlite3WithPush(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint8(1)) - goto _342 -_307: + goto _346 +_309: ; /* wqas ::= AS */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8(M10d_Any) - goto _342 -_308: + goto _346 +_310: ; /* wqas ::= AS MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8(M10d_Yes) - goto _342 -_309: + goto _346 +_311: ; /* wqas ::= AS NOT MATERIALIZED */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = uint8(M10d_No) - goto _342 -_310: - ; /* wqitem ::= nm eidlist_opt wqas LP select RP */ + goto _346 +_312: + ; /* wqitem ::= withnm eidlist_opt wqas LP select RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = _sqlite3CteNew(tls, pParse, yymsp+uintptr(-libc.Int32FromInt32(5))*24+8, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8))) /*A-overwrites-X*/ - goto _342 -_311: + goto _346 +_313: + ; /* withnm ::= nm */ + (*TParse)(unsafe.Pointer(pParse)).FbHasWith = uint8(1) + goto _346 +_314: ; /* wqlist ::= wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + 8)) = _sqlite3WithAdd(tls, pParse, uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + 8))) /*A-overwrites-X*/ - goto _342 -_312: + goto _346 +_315: ; /* wqlist ::= wqlist COMMA wqitem */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = _sqlite3WithAdd(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8))) - goto _342 -_313: + goto _346 +_316: ; /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ _sqlite3WindowChain(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8))) (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpNextWin = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_314: + goto _346 +_317: ; /* windowdefn ::= nm AS LP window RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8 + 8)))) } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_315: + goto _346 +_318: ; /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_316: + goto _346 +_319: ; /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(5))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_317: + goto _346 +_320: ; /* window ::= ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), uintptr(0)) - goto _342 -_318: + goto _346 +_321: ; /* window ::= nm ORDER BY sortlist frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), yymsp+uintptr(-libc.Int32FromInt32(4))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_319: + goto _346 +_322: ; /* window ::= nm frame_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAssemble(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uintptr(0), uintptr(0), yymsp+uintptr(-libc.Int32FromInt32(1))*24+8) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_320: + goto _346 +_323: ; /* frame_opt ::= */ *(*uintptr)(unsafe.Pointer(yymsp + 1*24 + 8)) = _sqlite3WindowAlloc(tls, pParse, 0, int32(TK_UNBOUNDED), uintptr(0), int32(TK_CURRENT), uintptr(0), uint8(0)) - goto _342 -_321: + goto _346 +_324: ; /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), int32(TK_CURRENT), uintptr(0), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_322: + goto _346 +_325: ; /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3WindowAlloc(tls, pParse, *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8 + 8)), *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8 + 8)), *(*Tu8)(unsafe.Pointer(yymsp + 8))) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(5))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_324: + goto _346 +_327: ; /* frame_bound_s ::= frame_bound */ -_323: +_326: ; *(*TFrameBound)(unsafe.Pointer(bp)) = *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_326: + goto _346 +_329: ; /* frame_bound_s ::= UNBOUNDED PRECEDING */ -_325: +_328: ; -_327: +_330: ; (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = uintptr(0) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_328: + goto _346 +_331: ; /* frame_bound ::= expr PRECEDING|FOLLOWING */ (*(*TFrameBound)(unsafe.Pointer(bp))).FeType = int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) (*(*TFrameBound)(unsafe.Pointer(bp))).FpExpr = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) *(*TFrameBound)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*TFrameBound)(unsafe.Pointer(bp)) - goto _342 -_329: + goto _346 +_332: ; /* frame_exclude_opt ::= */ *(*Tu8)(unsafe.Pointer(yymsp + 1*24 + 8)) = uint8(0) - goto _342 -_330: + goto _346 +_333: ; /* frame_exclude_opt ::= EXCLUDE frame_exclude */ *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*Tu8)(unsafe.Pointer(yymsp + 8)) - goto _342 -_332: + goto _346 +_335: ; /* frame_exclude ::= NO OTHERS */ -_331: +_334: ; *(*Tu8)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24))).Fmajor) /*A-overwrites-X*/ - goto _342 -_333: + goto _346 +_336: ; /* frame_exclude ::= GROUP|TIES */ *(*Tu8)(unsafe.Pointer(yymsp + 8)) = uint8((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor) /*A-overwrites-X*/ - goto _342 -_334: + goto _346 +_337: ; /* window_clause ::= WINDOW windowdefn_list */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) - goto _342 -_335: + goto _346 +_338: ; /* filter_over ::= filter_clause over_clause */ if *(*uintptr)(unsafe.Pointer(yymsp + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + 8)))).FpFilter = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) @@ -231573,13 +233133,13 @@ _335: } *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_336: + goto _346 +_339: ; /* filter_over ::= over_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = *(*uintptr)(unsafe.Pointer(yymsp + 8)) *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_337: + goto _346 +_340: ; /* filter_over ::= filter_clause */ *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) != 0 { @@ -231589,27 +233149,33 @@ _337: _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8))) } *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) - goto _342 -_338: + goto _346 +_341: ; /* over_clause ::= OVER LP window RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_339: + goto _346 +_342: ; /* over_clause ::= OVER nm */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) != 0 { (*TWindow)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)))).FzName = _sqlite3DbStrNDup(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, *(*uintptr)(unsafe.Pointer(yymsp + 8)), uint64(*(*uint32)(unsafe.Pointer(yymsp + 8 + 8)))) } - goto _342 -_340: + goto _346 +_343: ; /* filter_clause ::= FILTER LP WHERE expr RP */ *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(4))*24 + 8)) = *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) - goto _342 -_341: + goto _346 +_344: + ; /* term ::= QNUMBER */ + *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) = _tokenExpr(tls, pParse, int32((*(*TyyStackEntry)(unsafe.Pointer(yymsp))).Fmajor), *(*TToken)(unsafe.Pointer(yymsp + 8))) + _sqlite3DequoteNumber(tls, pParse, *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp))))) + *(*uintptr)(unsafe.Pointer(yymsp + 8)) = *(*uintptr)(unsafe.Pointer(&*(*TYYMINORTYPE)(unsafe.Pointer(bp)))) + goto _346 +_345: ; - goto _342 + goto _346 /********** End reduce actions ************************************************/ -_342: +_346: ; yygoto = int32(_yyRuleInfoLhs[yyruleno]) yysize = int32(_yyRuleInfoNRhs[yyruleno]) @@ -231643,9 +233209,9 @@ func _yy_syntax_error(tls *libc.TLS, yypParser uintptr, yymajor int32, _yyminor /************ Begin %syntax_error code ****************************************/ _ = yymajor /* Silence some compiler warnings */ if *(*int8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp))).Fz)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24720, libc.VaList(bp+24, bp)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24843, libc.VaList(bp+24, bp)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+25008, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+25131, 0) } /************ End %syntax_error code ******************************************/ /* Suppress warning about unused %extra_argument variable */ @@ -231710,8 +233276,10 @@ func _sqlite3Parser(tls *libc.TLS, yyp uintptr, yymajor int32, yyminor TToken) { ** enough on the stack to push the LHS value */ if int32(_yyRuleInfoNRhs[yyruleno]) == 0 { if (*TyyParser)(unsafe.Pointer(yypParser)).Fyytos >= (*TyyParser)(unsafe.Pointer(yypParser)).FyystackEnd { - _yyStackOverflow(tls, yypParser) - break + if _yyGrowStack(tls, yypParser) != 0 { + _yyStackOverflow(tls, yypParser) + break + } } } yyact = _yy_reduce(tls, yypParser, yyruleno, yymajor, yyminor, pParse) @@ -233860,9 +235428,9 @@ func _analyzeFilterKeyword(tls *libc.TLS, _z uintptr, lastToken int32) (r int32) // ** Store the token type in *tokenType before returning. // */ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { - var c, delim, i, n, v10, v14, v16, v19, v20, v3, v5, v7, v8 int32 - var v15, v6 bool - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v14, v15, v16, v19, v20, v3, v5, v6, v7, v8 + var c, delim, i, n, v10, v16, v18, v21, v22, v3, v5, v7, v8 int32 + var v17, v6 bool + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, delim, i, n, v10, v16, v17, v18, v21, v22, v3, v5, v6, v7, v8 switch int32(_aiClass[*(*uint8)(unsafe.Pointer(z))]) { /* Switch on the character-class of the first byte ** of the token. See the comment on the CC_ defines ** above. */ @@ -234058,39 +235626,83 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if int32(*(*uint8)(unsafe.Pointer(z))) == int32('0') && (int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('x') || int32(*(*uint8)(unsafe.Pointer(z + 1))) == int32('X')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + 2))])&int32(0x08) != 0 { i = int32(3) for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { + if !(int32(1) != 0) { break } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } goto _11 _11: ; i++ } - return i - } - i = 0 - for { - if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { - break - } - goto _12 - _12: - ; - i++ - } - if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { - i++ - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + } else { + i = 0 + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _12 + _12: + ; i++ } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) - } - if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { - i += int32(2) - for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('.') { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } i++ + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _13 + _13: + ; + i++ + } + } + if (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('e') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('E')) && (int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))])&int32(0x04) != 0 || (int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('+') || int32(*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(1))))) == int32('-')) && int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+int32(2))))])&int32(0x04) != 0) { + if *(*int32)(unsafe.Pointer(tokenType)) == int32(TK_INTEGER) { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) + } + i += int32(2) + for { + if !(int32(1) != 0) { + break + } + if int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) == 0 { + if int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('_') { + *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_QNUMBER) + } else { + break + } + } + goto _14 + _14: + ; + i++ + } } - *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_FLOAT) } for int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x46) != 0 { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_ILLEGAL) @@ -234101,24 +235713,24 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { i = int32(1) c = int32(*(*uint8)(unsafe.Pointer(z))) for { - if v15 = c != int32(']'); v15 { - v14 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v14 + if v17 = c != int32(']'); v17 { + v16 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v16 } - if !(v15 && v14 != 0) { + if !(v17 && v16 != 0) { break } - goto _13 - _13: + goto _15 + _15: ; i++ } if c == int32(']') { - v16 = int32(TK_ID) + v18 = int32(TK_ID) } else { - v16 = int32(TK_ILLEGAL) + v18 = int32(TK_ILLEGAL) } - *(*int32)(unsafe.Pointer(tokenType)) = v16 + *(*int32)(unsafe.Pointer(tokenType)) = v18 return i case int32(CC_VARNUM): *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) @@ -234127,8 +235739,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x04) != 0) { break } - goto _17 - _17: + goto _19 + _19: ; i++ } @@ -234140,9 +235752,9 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { *(*int32)(unsafe.Pointer(tokenType)) = int32(TK_VARIABLE) i = int32(1) for { - v19 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v19 - if !(v19 != 0) { + v21 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v21 + if !(v21 != 0) { break } if int32(_sqlite3CtypeMap[uint8(uint8(c))])&int32(0x46) != 0 { @@ -234151,12 +235763,12 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if c == int32('(') && n > 0 { for { i++ - goto _21 - _21: + goto _23 + _23: ; - v20 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) - c = v20 - if !(v20 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { + v22 = int32(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) + c = v22 + if !(v22 != 0 && !(int32(_sqlite3CtypeMap[uint8(c)])&libc.Int32FromInt32(0x01) != 0) && c != int32(')')) { break } } @@ -234174,8 +235786,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { } } } - goto _18 - _18: + goto _20 + _20: ; i++ } @@ -234193,8 +235805,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_aiClass[*(*uint8)(unsafe.Pointer(z + uintptr(i)))]) <= int32(CC_KYWD)) { break } - goto _22 - _22: + goto _24 + _24: ; i++ } @@ -234215,8 +235827,8 @@ func _sqlite3GetToken(tls *libc.TLS, z uintptr, tokenType uintptr) (r int32) { if !(int32(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i)))])&int32(0x08) != 0) { break } - goto _23 - _23: + goto _25 + _25: ; i++ } @@ -234268,7 +235880,7 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { var lastTokenParsed, mxSqlLen, n, nErr int32 var _ /* sEngine at bp+8 */ TyyParser var _ /* tokenType at bp+0 */ int32 - var _ /* x at bp+2432 */ TToken + var _ /* x at bp+2440 */ TToken _, _, _, _, _, _, _ = db, lastTokenParsed, mxSqlLen, n, nErr, pEngine, pParentParse nErr = 0 /* The LEMON-generated LALR(1) parser */ n = 0 /* type of the next token */ @@ -234326,10 +235938,12 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp)) == int32(TK_FILTER) { *(*int32)(unsafe.Pointer(bp)) = _analyzeFilterKeyword(tls, zSql+6, lastTokenParsed) } else { - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fz = zSql - (*(*TToken)(unsafe.Pointer(bp + 2432))).Fn = uint32(uint32(n)) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+25025, libc.VaList(bp+2456, bp+2432)) - break + if *(*int32)(unsafe.Pointer(bp)) != int32(TK_QNUMBER) { + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fz = zSql + (*(*TToken)(unsafe.Pointer(bp + 2440))).Fn = uint32(uint32(n)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+25148, libc.VaList(bp+2464, bp+2440)) + break + } } } } @@ -234350,9 +235964,9 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { } if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg != 0 || (*TParse)(unsafe.Pointer(pParse)).Frc != SQLITE_OK && (*TParse)(unsafe.Pointer(pParse)).Frc != int32(SQLITE_DONE) { if (*TParse)(unsafe.Pointer(pParse)).FzErrMsg == uintptr(0) { - (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+4645, libc.VaList(bp+2456, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) + (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+4709, libc.VaList(bp+2464, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) } - Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+25050, libc.VaList(bp+2456, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) + Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+25173, libc.VaList(bp+2464, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) nErr++ } (*TParse)(unsafe.Pointer(pParse)).FzTail = zSql @@ -234544,7 +236158,7 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('c'): fallthrough case int32('C'): - if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+25061, int32(6)) == 0 { + if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+25184, int32(6)) == 0 { token = uint8(tkCREATE) } else { token = uint8(tkOTHER) @@ -234552,13 +236166,13 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('t'): fallthrough case int32('T'): - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+21705, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+21837, int32(7)) == 0 { token = uint8(tkTRIGGER) } else { - if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+25068, int32(4)) == 0 { + if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+25191, int32(4)) == 0 { token = uint8(tkTEMP) } else { - if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+25073, int32(9)) == 0 { + if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+25196, int32(9)) == 0 { token = uint8(tkTEMP) } else { token = uint8(tkOTHER) @@ -234568,10 +236182,10 @@ func Xsqlite3_complete(tls *libc.TLS, zSql uintptr) (r int32) { case int32('e'): fallthrough case int32('E'): - if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+25083, int32(3)) == 0 { + if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+25206, int32(3)) == 0 { token = uint8(tkEND) } else { - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+25087, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+25210, int32(7)) == 0 { token = uint8(tkEXPLAIN) } else { token = uint8(tkOTHER) @@ -234831,7 +236445,6 @@ func _hasHighPrecisionDouble(tls *libc.TLS, rc int32) (r int32) { // ** without blocking. // */ func Xsqlite3_initialize(tls *libc.TLS) (r int32) { -ng := runtime.GOMAXPROCS(1); defer func() { runtime.GOMAXPROCS(ng) }() var pMainMtx uintptr var rc int32 _, _ = pMainMtx, rc /* Result code */ @@ -234843,7 +236456,7 @@ ng := runtime.GOMAXPROCS(1); defer func() { runtime.GOMAXPROCS(ng) }() ** must be complete. So isInit must not be set until the very end ** of this routine. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { _sqlite3MemoryBarrier(tls) return SQLITE_OK } @@ -234904,7 +236517,7 @@ ng := runtime.GOMAXPROCS(1); defer func() { runtime.GOMAXPROCS(ng) }() ** call to sqlite3PcacheInitialize(). */ Xsqlite3_mutex_enter(tls, _sqlite3Config.FpInitMutex) - if _sqlite3Config.FisInit == 0 && _sqlite3Config.FinProgress == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 && _sqlite3Config.FinProgress == 0 { _sqlite3Config.FinProgress = int32(1) libc.Xmemset(tls, uintptr(unsafe.Pointer(&_sqlite3BuiltinFunctions)), 0, uint64(184)) _sqlite3RegisterBuiltinFunctions(tls) @@ -234921,7 +236534,7 @@ ng := runtime.GOMAXPROCS(1); defer func() { runtime.GOMAXPROCS(ng) }() if rc == SQLITE_OK { _sqlite3PCacheBufferSetup(tls, _sqlite3Config.FpPage, _sqlite3Config.FszPage, _sqlite3Config.FnPage) _sqlite3MemoryBarrier(tls) - _sqlite3Config.FisInit = int32(1) + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, int32(1)) } _sqlite3Config.FinProgress = 0 } @@ -234946,7 +236559,7 @@ ng := runtime.GOMAXPROCS(1); defer func() { runtime.GOMAXPROCS(ng) }() */ /* Experimentally determine if high-precision floating point is ** available. */ - _sqlite3Config.FbUseLongDouble = uint8(_hasHighPrecisionDouble(tls, rc)) + // disabled return rc } @@ -234961,10 +236574,10 @@ ng := runtime.GOMAXPROCS(1); defer func() { runtime.GOMAXPROCS(ng) }() // ** when this routine is invoked, then this routine is a harmless no-op. // */ func Xsqlite3_shutdown(tls *libc.TLS) (r int32) { - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { Xsqlite3_os_end(tls) Xsqlite3_reset_auto_extension(tls) - _sqlite3Config.FisInit = 0 + libc.AtomicStorePInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340, 0) } if _sqlite3Config.FisPCacheInit != 0 { _sqlite3PcacheShutdown(tls) @@ -235012,9 +236625,9 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { ** the SQLite library is in use. Except, a few selected opcodes ** are allowed. */ - if _sqlite3Config.FisInit != 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)<= 0 && rc < int32(libc.Uint64FromInt64(232)/libc.Uint64FromInt64(8)) && _aMsg[rc] != uintptr(0) { @@ -236152,31 +237765,31 @@ func _sqlite3ErrStr(tls *libc.TLS, rc int32) (r uintptr) { } var _aMsg = [29]uintptr{ - 0: __ccgo_ts + 25163, - 1: __ccgo_ts + 25176, - 3: __ccgo_ts + 25192, - 4: __ccgo_ts + 25217, - 5: __ccgo_ts + 25231, - 6: __ccgo_ts + 25250, - 7: __ccgo_ts + 1628, - 8: __ccgo_ts + 25275, - 9: __ccgo_ts + 25312, - 10: __ccgo_ts + 25324, - 11: __ccgo_ts + 25339, - 12: __ccgo_ts + 25372, - 13: __ccgo_ts + 25390, - 14: __ccgo_ts + 25415, - 15: __ccgo_ts + 25444, - 17: __ccgo_ts + 7330, - 18: __ccgo_ts + 6732, - 19: __ccgo_ts + 25461, - 20: __ccgo_ts + 25479, - 21: __ccgo_ts + 25497, - 23: __ccgo_ts + 25531, - 25: __ccgo_ts + 25552, - 26: __ccgo_ts + 25578, - 27: __ccgo_ts + 25601, - 28: __ccgo_ts + 25622, + 0: __ccgo_ts + 25286, + 1: __ccgo_ts + 25299, + 3: __ccgo_ts + 25315, + 4: __ccgo_ts + 25340, + 5: __ccgo_ts + 25354, + 6: __ccgo_ts + 25373, + 7: __ccgo_ts + 1642, + 8: __ccgo_ts + 25398, + 9: __ccgo_ts + 25435, + 10: __ccgo_ts + 25447, + 11: __ccgo_ts + 25462, + 12: __ccgo_ts + 25495, + 13: __ccgo_ts + 25513, + 14: __ccgo_ts + 25538, + 15: __ccgo_ts + 25567, + 17: __ccgo_ts + 7394, + 18: __ccgo_ts + 6796, + 19: __ccgo_ts + 25584, + 20: __ccgo_ts + 25602, + 21: __ccgo_ts + 25620, + 23: __ccgo_ts + 25654, + 25: __ccgo_ts + 25675, + 26: __ccgo_ts + 25701, + 27: __ccgo_ts + 25724, + 28: __ccgo_ts + 25745, } // C documentation @@ -236355,7 +237968,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i var p, v1 uintptr _, _, _, _ = extraFlags, p, rc, v1 if zFunctionName == uintptr(0) || xSFunc != uintptr(0) && xFinal != uintptr(0) || libc.BoolInt32(xFinal == uintptr(0)) != libc.BoolInt32(xStep == uintptr(0)) || libc.BoolInt32(xValue == uintptr(0)) != libc.BoolInt32(xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { - return _sqlite3MisuseError(tls, int32(180244)) + return _sqlite3MisuseError(tls, int32(181689)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -236398,7 +238011,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i p = _sqlite3FindFunction(tls, db, zFunctionName, nArg, uint8(uint8(enc)), uint8(0)) if p != 0 && (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) == uint32(uint32(enc)) && int32((*TFuncDef)(unsafe.Pointer(p)).FnArg) == nArg { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+25719, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+25842, 0) return int32(SQLITE_BUSY) } else { _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -236468,6 +238081,7 @@ func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, en (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } + goto out out: ; rc = _sqlite3ApiExit(tls, db, rc) @@ -236523,7 +238137,7 @@ func _sqlite3InvalidFunction(tls *libc.TLS, context uintptr, NotUsed int32, NotU zName = Xsqlite3_user_data(tls, context) _ = NotUsed _ = NotUsed2 - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+25782, libc.VaList(bp+8, zName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+25905, libc.VaList(bp+8, zName)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -236554,7 +238168,7 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i if rc != 0 { return SQLITE_OK } - zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+8, zName)) + zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+8, zName)) if zCopy == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -236798,7 +238412,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in if eMode < SQLITE_CHECKPOINT_PASSIVE || eMode > int32(SQLITE_CHECKPOINT_TRUNCATE) { /* EVIDENCE-OF: R-03996-12088 The M parameter must be a valid checkpoint ** mode: */ - return _sqlite3MisuseError(tls, int32(180859)) + return _sqlite3MisuseError(tls, int32(182304)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*int8)(unsafe.Pointer(zDb)) != 0 { @@ -236808,7 +238422,7 @@ func Xsqlite3_wal_checkpoint_v2(tls *libc.TLS, db uintptr, zDb uintptr, eMode in } if iDb < 0 { rc = int32(SQLITE_ERROR) - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+25833, libc.VaList(bp+8, zDb)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+25956, libc.VaList(bp+8, zDb)) } else { (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0 rc = _sqlite3Checkpoint(tls, db, iDb, eMode, pnLog, pnCkpt) @@ -236930,7 +238544,7 @@ func Xsqlite3_errmsg(tls *libc.TLS, db uintptr) (r uintptr) { return _sqlite3ErrStr(tls, int32(SQLITE_NOMEM)) } if !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(180995))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(182440))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -237062,7 +238676,7 @@ var _misuse = [34]Tu16{ // */ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181074)) + return _sqlite3MisuseError(tls, int32(182519)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -237072,7 +238686,7 @@ func Xsqlite3_errcode(tls *libc.TLS, db uintptr) (r int32) { func Xsqlite3_extended_errcode(tls *libc.TLS, db uintptr) (r int32) { if db != 0 && !(_sqlite3SafetyCheckSickOrOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(181083)) + return _sqlite3MisuseError(tls, int32(182528)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -237121,7 +238735,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui enc2 = int32(SQLITE_UTF16LE) } if enc2 < int32(SQLITE_UTF8) || enc2 > int32(SQLITE_UTF16BE) { - return _sqlite3MisuseError(tls, int32(181131)) + return _sqlite3MisuseError(tls, int32(182576)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -237130,7 +238744,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui pColl = _sqlite3FindCollSeq(tls, db, uint8(uint8(enc2)), zName, 0) if pColl != 0 && (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp != 0 { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+25854, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+25977, 0) return int32(SQLITE_BUSY) } _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -237277,7 +238891,7 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u flags = *(*uint32)(unsafe.Pointer(pFlags)) zVfs = zDefaultVfs nUri = _sqlite3Strlen30(tls, zUri) - if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+25922, uint64(5)) == 0 { /* Input character index */ + if (flags&uint32(SQLITE_OPEN_URI) != 0 || libc.AtomicLoadNUint8(uintptr(unsafe.Pointer(&_sqlite3Config))+6, libc.Int32FromInt32(__ATOMIC_RELAXED)) != 0) && nUri >= int32(5) && libc.Xmemcmp(tls, zUri, __ccgo_ts+26045, uint64(5)) == 0 { /* Input character index */ iOut = 0 /* Output character index */ nByte = uint64(nUri + int32(8)) /* Bytes of space to allocate */ /* Make sure the SQLITE_OPEN_URI flag is set to indicate to the VFS xOpen @@ -237307,8 +238921,8 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u for *(*int8)(unsafe.Pointer(zUri + uintptr(iIn))) != 0 && int32(*(*int8)(unsafe.Pointer(zUri + uintptr(iIn)))) != int32('/') { iIn++ } - if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+25928, zUri+7, uint64(9)) != 0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25938, libc.VaList(bp+8, iIn-int32(7), zUri+7)) + if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+26051, zUri+7, uint64(9)) != 0) { + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+26061, libc.VaList(bp+8, iIn-int32(7), zUri+7)) rc = int32(SQLITE_ERROR) goto parse_uri_out } @@ -237397,24 +239011,24 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u nOpt = _sqlite3Strlen30(tls, zOpt) zVal = zOpt + uintptr(nOpt+int32(1)) nVal = _sqlite3Strlen30(tls, zVal) - if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+25966, zOpt, uint64(3)) == 0 { + if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+26089, zOpt, uint64(3)) == 0 { zVfs = zVal } else { aMode = uintptr(0) zModeType = uintptr(0) mask = 0 limit = 0 - if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+25970, zOpt, uint64(5)) == 0 { + if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+26093, zOpt, uint64(5)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_SHAREDCACHE) | libc.Int32FromInt32(SQLITE_OPEN_PRIVATECACHE) aMode = uintptr(unsafe.Pointer(&_aCacheMode)) limit = mask - zModeType = __ccgo_ts + 25970 + zModeType = __ccgo_ts + 26093 } - if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+25991, zOpt, uint64(4)) == 0 { + if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+26114, zOpt, uint64(4)) == 0 { mask = libc.Int32FromInt32(SQLITE_OPEN_READONLY) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_MEMORY) aMode = uintptr(unsafe.Pointer(&_aOpenMode)) limit = int32(uint32(uint32(mask)) & flags) - zModeType = __ccgo_ts + 26006 + zModeType = __ccgo_ts + 26129 } if aMode != 0 { mode = 0 @@ -237443,12 +239057,12 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u i++ } if mode == 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+26013, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+26136, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_ERROR) goto parse_uri_out } if mode & ^libc.Int32FromInt32(SQLITE_OPEN_MEMORY) > limit { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+26033, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+26156, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_PERM) goto parse_uri_out } @@ -237472,9 +239086,10 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u } *(*uintptr)(unsafe.Pointer(ppVfs)) = Xsqlite3_vfs_find(tls, zVfs) if *(*uintptr)(unsafe.Pointer(ppVfs)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+26057, libc.VaList(bp+8, zVfs)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+26180, libc.VaList(bp+8, zVfs)) rc = int32(SQLITE_ERROR) } + goto parse_uri_out parse_uri_out: ; if rc != SQLITE_OK { @@ -237491,11 +239106,11 @@ var _aCacheMode = [3]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 25976, + Fz: __ccgo_ts + 26099, Fmode: int32(SQLITE_OPEN_SHAREDCACHE), }, 1: { - Fz: __ccgo_ts + 25983, + Fz: __ccgo_ts + 26106, Fmode: int32(SQLITE_OPEN_PRIVATECACHE), }, 2: {}, @@ -237506,19 +239121,19 @@ var _aOpenMode = [5]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 25996, + Fz: __ccgo_ts + 26119, Fmode: int32(SQLITE_OPEN_READONLY), }, 1: { - Fz: __ccgo_ts + 25999, + Fz: __ccgo_ts + 26122, Fmode: int32(SQLITE_OPEN_READWRITE), }, 2: { - Fz: __ccgo_ts + 26002, + Fz: __ccgo_ts + 26125, Fmode: libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE), }, 3: { - Fz: __ccgo_ts + 19090, + Fz: __ccgo_ts + 19177, Fmode: int32(SQLITE_OPEN_MEMORY), }, 4: {}, @@ -237646,8 +239261,8 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16BE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) _createCollation(tls, db, uintptr(unsafe.Pointer(&_sqlite3StrBINARY)), uint8(SQLITE_UTF16LE), uintptr(0), __ccgo_fp(_binCollFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+23677, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+26073, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+23822, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+26196, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto opendb_out } @@ -237668,7 +239283,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* READWRITE */ /* READWRITE | CREATE */ if int32(1)<<(*(*uint32)(unsafe.Pointer(bp))&uint32(7))&int32(0x46) == 0 { - rc = _sqlite3MisuseError(tls, int32(181803)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(183248)) /* IMP: R-18321-05872 */ } else { rc = _sqlite3ParseUri(tls, zVfs, zFilename, bp, db, bp+8, bp+16) } @@ -237677,7 +239292,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 _sqlite3OomFault(tls, db) } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { - v2 = __ccgo_ts + 4645 + v2 = __ccgo_ts + 4709 } else { v2 = uintptr(0) } @@ -237704,9 +239319,9 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* The default safety_level for the main database is FULL; for the temp ** database it is OFF. This matches the pager layer defaults. */ - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 7894 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 7958 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).Fsafety_level = uint8(libc.Int32FromInt32(SQLITE_DEFAULT_SYNCHRONOUS) + libc.Int32FromInt32(1)) - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 25068 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 25191 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).Fsafety_level = uint8(PAGER_SYNCHRONOUS_OFF) (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState = uint8(SQLITE_STATE_OPEN) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -237751,6 +239366,7 @@ func _openDatabase(tls *libc.TLS, zFilename uintptr, ppDb uintptr, _flags uint32 /* Enable the lookaside-malloc subsystem */ _setupLookaside(tls, db, uintptr(0), _sqlite3Config.FszLookaside, _sqlite3Config.FnLookaside) Xsqlite3_wal_autocheckpoint(tls, db, int32(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT)) + goto opendb_out opendb_out: ; if db != 0 { @@ -237799,7 +239415,7 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc } if zFilename == uintptr(0) { - zFilename = __ccgo_ts + 26079 + zFilename = __ccgo_ts + 26202 } pVal = _sqlite3ValueNew(tls, uintptr(0)) _sqlite3ValueSetStr(tls, pVal, -int32(1), zFilename, uint8(SQLITE_UTF16LE), libc.UintptrFromInt32(0)) @@ -238016,20 +239632,20 @@ func Xsqlite3_get_autocommit(tls *libc.TLS, db uintptr) (r int32) { func _sqlite3ReportError(tls *libc.TLS, iErr int32, lineno int32, zType uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) - Xsqlite3_log(tls, iErr, __ccgo_ts+26082, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) + Xsqlite3_log(tls, iErr, __ccgo_ts+26205, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) return iErr } func _sqlite3CorruptError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+26107) + return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+26230) } func _sqlite3MisuseError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+26127) + return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+26250) } func _sqlite3CantopenError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+26134) + return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+26257) } // C documentation @@ -238135,6 +239751,7 @@ func Xsqlite3_table_column_metadata(tls *libc.TLS, db uintptr, zDbName uintptr, if !(zCollSeq != 0) { zCollSeq = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } + goto error_out error_out: ; _sqlite3BtreeLeaveAll(tls, db) @@ -238159,11 +239776,11 @@ error_out: } if SQLITE_OK == rc && !(pTab != 0) { _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) - *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+26151, libc.VaList(bp+16, zTableName, zColumnName)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+26274, libc.VaList(bp+16, zTableName, zColumnName)) rc = int32(SQLITE_ERROR) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v3 = __ccgo_ts + 4645 + v3 = __ccgo_ts + 4709 } else { v3 = uintptr(0) } @@ -238598,7 +240215,7 @@ func Xsqlite3_test_control(tls *libc.TLS, op int32, va uintptr) (r int32) { */ fallthrough case int32(SQLITE_TESTCTRL_ISINIT): - if _sqlite3Config.FisInit == 0 { + if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) == 0 { rc = int32(SQLITE_ERROR) } break @@ -239187,7 +240804,7 @@ func Xsqlite3_compileoption_used(tls *libc.TLS, zOptName uintptr) (r int32) { var _ /* nOpt at bp+0 */ int32 _, _, _ = azCompileOpt, i, n azCompileOpt = _sqlite3CompileOptions(tls, bp) - if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+26179, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+26302, int32(7)) == 0 { zOptName += uintptr(7) } n = _sqlite3Strlen30(tls, zOptName) @@ -239405,7 +241022,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui } _leaveMutex(tls) if rc != 0 { - v2 = __ccgo_ts + 26187 + v2 = __ccgo_ts + 26310 } else { v2 = uintptr(0) } @@ -240285,23 +241902,23 @@ func _sqlite3ConnectionClosed(tls *libc.TLS, db uintptr) { // ** string must correspond to the JSONB_* integer above. // */ var _jsonbType = [17]uintptr{ - 0: __ccgo_ts + 1644, - 1: __ccgo_ts + 9195, - 2: __ccgo_ts + 9200, - 3: __ccgo_ts + 7615, - 4: __ccgo_ts + 7615, - 5: __ccgo_ts + 7610, - 6: __ccgo_ts + 7610, - 7: __ccgo_ts + 9506, - 8: __ccgo_ts + 9506, - 9: __ccgo_ts + 9506, - 10: __ccgo_ts + 9506, - 11: __ccgo_ts + 26210, - 12: __ccgo_ts + 26216, - 13: __ccgo_ts + 1658, - 14: __ccgo_ts + 1658, - 15: __ccgo_ts + 1658, - 16: __ccgo_ts + 1658, + 0: __ccgo_ts + 1658, + 1: __ccgo_ts + 9320, + 2: __ccgo_ts + 9325, + 3: __ccgo_ts + 7679, + 4: __ccgo_ts + 7679, + 5: __ccgo_ts + 7674, + 6: __ccgo_ts + 7674, + 7: __ccgo_ts + 9631, + 8: __ccgo_ts + 9631, + 9: __ccgo_ts + 9631, + 10: __ccgo_ts + 9631, + 11: __ccgo_ts + 26333, + 12: __ccgo_ts + 26339, + 13: __ccgo_ts + 1672, + 14: __ccgo_ts + 1672, + 15: __ccgo_ts + 1672, + 16: __ccgo_ts + 1672, } // C documentation @@ -241064,6 +242681,38 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { _jsonAppendChar(tls, p, int8(',')) } +// C documentation +// +// /* c is a control character. Append the canonical JSON representation +// ** of that control character to p. +// ** +// ** This routine assumes that the output buffer has already been enlarged +// ** sufficiently to hold the worst-case encoding plus a nul terminator. +// */ +func _jsonAppendControlChar(tls *libc.TLS, p uintptr, c Tu8) { + if _aSpecial[c] != 0 { + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = int8('\\') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = _aSpecial[c] + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(2) + } else { + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed))) = int8('\\') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(1)))) = int8('u') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(2)))) = int8('0') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(3)))) = int8('0') + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(4)))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 26346 + uintptr(int32(int32(c))>>int32(4)))) + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(5)))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 26346 + uintptr(int32(int32(c))&int32(0xf)))) + *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(6) + } +} + +var _aSpecial = [32]int8{ + 8: int8('b'), + 9: int8('t'), + 10: int8('n'), + 12: int8('f'), + 13: int8('r'), +} + // C documentation // // /* Append the N-byte string in zIn to the end of the JsonString string @@ -241077,9 +242726,9 @@ func _jsonAppendSeparator(tls *libc.TLS, p uintptr) { func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { var c Tu8 var k Tu32 - var z, v10, v12, v14, v16, v18, v2, v20, v22, v24, v6, v8 uintptr - var v1, v11, v13, v15, v17, v19, v21, v23, v5, v7, v9 Tu64 - _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v5, v6, v7, v8, v9 + var z, v10, v2, v4, v6, v8 uintptr + var v1, v3, v5, v7, v9 Tu64 + _, _, _, _, _, _, _, _, _, _, _, _, _ = c, k, z, v1, v10, v2, v3, v4, v5, v6, v7, v8, v9 z = zIn if z == uintptr(0) { return @@ -241136,80 +242785,38 @@ func _jsonAppendString(tls *libc.TLS, p uintptr, zIn uintptr, N Tu32) { N -= k } c = *(*Tu8)(unsafe.Pointer(z)) - if !(int32(int32(c)) == int32('"') || int32(int32(c)) == int32('\\')) { - goto _3 - } - json_simple_escape: - ; - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(uint64(N))+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { - return - } - v6 = p + 24 - v5 = *(*Tu64)(unsafe.Pointer(v6)) - *(*Tu64)(unsafe.Pointer(v6))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = int8('\\') - v8 = p + 24 - v7 = *(*Tu64)(unsafe.Pointer(v8)) - *(*Tu64)(unsafe.Pointer(v8))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = int8(int8(c)) - goto _4 - _3: - ; - if int32(int32(c)) == int32('\'') { - v10 = p + 24 - v9 = *(*Tu64)(unsafe.Pointer(v10)) - *(*Tu64)(unsafe.Pointer(v10))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = int8(int8(c)) - } else { - if _aSpecial[c] != 0 { - c = uint8(_aSpecial[c]) - goto json_simple_escape - } - if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(uint64(N))+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + if int32(int32(c)) == int32('"') || int32(int32(c)) == int32('\\') { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(uint64(N))+uint64(3) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(3)) != 0 { return } - v12 = p + 24 - v11 = *(*Tu64)(unsafe.Pointer(v12)) - *(*Tu64)(unsafe.Pointer(v12))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v11))) = int8('\\') - v14 = p + 24 - v13 = *(*Tu64)(unsafe.Pointer(v14)) - *(*Tu64)(unsafe.Pointer(v14))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v13))) = int8('u') - v16 = p + 24 - v15 = *(*Tu64)(unsafe.Pointer(v16)) - *(*Tu64)(unsafe.Pointer(v16))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v15))) = int8('0') - v18 = p + 24 - v17 = *(*Tu64)(unsafe.Pointer(v18)) - *(*Tu64)(unsafe.Pointer(v18))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v17))) = int8('0') - v20 = p + 24 - v19 = *(*Tu64)(unsafe.Pointer(v20)) - *(*Tu64)(unsafe.Pointer(v20))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v19))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 26223 + uintptr(int32(int32(c))>>int32(4)))) - v22 = p + 24 - v21 = *(*Tu64)(unsafe.Pointer(v22)) - *(*Tu64)(unsafe.Pointer(v22))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v21))) = *(*int8)(unsafe.Pointer(__ccgo_ts + 26223 + uintptr(int32(int32(c))&int32(0xf)))) + v4 = p + 24 + v3 = *(*Tu64)(unsafe.Pointer(v4)) + *(*Tu64)(unsafe.Pointer(v4))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v3))) = int8('\\') + v6 = p + 24 + v5 = *(*Tu64)(unsafe.Pointer(v6)) + *(*Tu64)(unsafe.Pointer(v6))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v5))) = int8(int8(c)) + } else { + if int32(int32(c)) == int32('\'') { + v8 = p + 24 + v7 = *(*Tu64)(unsafe.Pointer(v8)) + *(*Tu64)(unsafe.Pointer(v8))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v7))) = int8(int8(c)) + } else { + if (*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(uint64(N))+uint64(7) > (*TJsonString)(unsafe.Pointer(p)).FnAlloc && _jsonStringGrow(tls, p, N+uint32(7)) != 0 { + return + } + _jsonAppendControlChar(tls, p, c) + } } - _4: - ; z++ N-- } - v24 = p + 24 - v23 = *(*Tu64)(unsafe.Pointer(v24)) - *(*Tu64)(unsafe.Pointer(v24))++ - *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v23))) = int8('"') -} - -var _aSpecial = [32]int8{ - 8: int8('b'), - 9: int8('t'), - 10: int8('n'), - 12: int8('f'), - 13: int8('r'), + v10 = p + 24 + v9 = *(*Tu64)(unsafe.Pointer(v10)) + *(*Tu64)(unsafe.Pointer(v10))++ + *(*int8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr(v9))) = int8('"') } // C documentation @@ -241227,9 +242834,9 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _, _, _, _ = n, n1, z, z1 switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_NULL): - _jsonAppendRawNZ(tls, p, __ccgo_ts+1644, uint32(4)) + _jsonAppendRawNZ(tls, p, __ccgo_ts+1658, uint32(4)) case int32(SQLITE_FLOAT): - _jsonPrintf(tls, int32(100), p, __ccgo_ts+16637, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) + _jsonPrintf(tls, int32(100), p, __ccgo_ts+16730, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) case int32(SQLITE_INTEGER): z = Xsqlite3_value_text(tls, pValue) n = uint32(Xsqlite3_value_bytes(tls, pValue)) @@ -241250,7 +242857,7 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _jsonTranslateBlobToText(tls, bp, uint32(0), p) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr) == 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+26240, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+26363, -int32(1)) (*TJsonString)(unsafe.Pointer(p)).FeErr = uint8(JSTRING_ERR) _jsonStringReset(tls, p) } @@ -241304,7 +242911,7 @@ func _jsonReturnString(tls *libc.TLS, p uintptr, pParse uintptr, ctx uintptr) { Xsqlite3_result_error_nomem(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx) } else { if int32((*TJsonString)(unsafe.Pointer(p)).FeErr)&int32(JSTRING_MALFORMED) != 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+26269, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+26392, -int32(1)) } } } @@ -241551,6 +243158,7 @@ func _json5Whitespace(tls *libc.TLS, zIn uintptr) (r int32) { goto whitespace_done } } + goto whitespace_done whitespace_done: ; return n @@ -241586,8 +243194,8 @@ var _aNanInfName = [5]TNanInfName{ Fn: int8(3), FeType: int8(JSONB_FLOAT), FnRepl: int8(7), - FzMatch: __ccgo_ts + 26284, - FzRepl: __ccgo_ts + 26288, + FzMatch: __ccgo_ts + 26407, + FzRepl: __ccgo_ts + 26411, }, 1: { Fc1: int8('i'), @@ -241595,32 +243203,32 @@ var _aNanInfName = [5]TNanInfName{ Fn: int8(8), FeType: int8(JSONB_FLOAT), FnRepl: int8(7), - FzMatch: __ccgo_ts + 26296, - FzRepl: __ccgo_ts + 26288, + FzMatch: __ccgo_ts + 26419, + FzRepl: __ccgo_ts + 26411, }, 2: { Fc1: int8('n'), Fc2: int8('N'), Fn: int8(3), FnRepl: int8(4), - FzMatch: __ccgo_ts + 1649, - FzRepl: __ccgo_ts + 1644, + FzMatch: __ccgo_ts + 1663, + FzRepl: __ccgo_ts + 1658, }, 3: { Fc1: int8('q'), Fc2: int8('Q'), Fn: int8(4), FnRepl: int8(4), - FzMatch: __ccgo_ts + 26305, - FzRepl: __ccgo_ts + 1644, + FzMatch: __ccgo_ts + 26428, + FzRepl: __ccgo_ts + 1658, }, 4: { Fc1: int8('s'), Fc2: int8('S'), Fn: int8(4), FnRepl: int8(4), - FzMatch: __ccgo_ts + 26310, - FzRepl: __ccgo_ts + 1644, + FzMatch: __ccgo_ts + 26433, + FzRepl: __ccgo_ts + 1658, }, } @@ -241635,7 +243243,7 @@ func _jsonWrongNumArgs(tls *libc.TLS, pCtx uintptr, zFuncName uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26315, libc.VaList(bp+8, zFuncName)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26438, libc.VaList(bp+8, zFuncName)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) } @@ -242084,30 +243692,37 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept return j + uint32(1) } } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) <= int32(0x1f) { + /* Control characters in JSON5 string literals are ok */ + if int32(int32(x)) == int32(JSONB_TEXTJ) { + return j + uint32(1) + } } else { - if libc.Xstrchr(tls, __ccgo_ts+26358, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { - j++ + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { + return j + uint32(1) } else { - if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { - if j+uint32(5) >= k { - return j + uint32(1) - } - if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { - return j + uint32(1) - } + if libc.Xstrchr(tls, __ccgo_ts+26481, int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { j++ } else { - if int32(int32(x)) != int32(JSONB_TEXT5) { - return j + uint32(1) + if int32(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { + if j+uint32(5) >= k { + return j + uint32(1) + } + if !(_jsonIs4Hex(tls, z+uintptr(j+uint32(2))) != 0) { + return j + uint32(1) + } + j++ } else { - *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) - szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) - if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + if int32(int32(x)) != int32(JSONB_TEXT5) { return j + uint32(1) + } else { + *(*Tu32)(unsafe.Pointer(bp + 4)) = uint32(0) + szC = _jsonUnescapeOneChar(tls, z+uintptr(j), k-j, bp+4) + if *(*Tu32)(unsafe.Pointer(bp + 4)) == uint32(JSON_INVALID_CHAR) { + return j + uint32(1) + } + j += szC - uint32(1) } - j += szC - uint32(1) } } } @@ -242203,6 +243818,7 @@ func _jsonTranslateTextToBlob(tls *libc.TLS, pParse uintptr, i Tu32) (r int32) { var _ /* op at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = c, cDelim, iBlob, iStart, iThis, j, k, k1, nn, opcode, seenE, t, x, z, v40, v41, v43, v44, v46, v48 z = (*TJsonParse)(unsafe.Pointer(pParse)).FzJson + goto json_parse_restart json_parse_restart: ; switch int32(uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))) { @@ -242357,6 +243973,7 @@ _1: } j = (*TJsonParse)(unsafe.Pointer(pParse)).FiErr + uint32(1) } + goto parse_object_value parse_object_value: ; x = _jsonTranslateTextToBlob(tls, pParse, j) @@ -242483,6 +244100,7 @@ _3: ; /* Parse string */ opcode = uint8(JSONB_TEXT) + goto parse_string parse_string: ; cDelim = *(*int8)(unsafe.Pointer(z + uintptr(i))) @@ -242531,9 +244149,14 @@ parse_string: } } else { if int32(int32(c)) <= int32(0x1f) { - /* Control characters are not allowed in strings */ - (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j - return -int32(1) + if int32(int32(c)) == 0 { + (*TJsonParse)(unsafe.Pointer(pParse)).FiErr = j + return -int32(1) + } + /* Control characters are not allowed in canonical JSON string + ** literals, but are allowed in JSON5 string literals. */ + opcode = uint8(JSONB_TEXT5) + (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) } else { if int32(int32(c)) == int32('"') { opcode = uint8(JSONB_TEXT5) @@ -242547,7 +244170,7 @@ parse_string: return int32(j + uint32(1)) _5: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+9195, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+9320, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_TRUE)) return int32(i + uint32(4)) } @@ -242555,7 +244178,7 @@ _5: return -int32(1) _6: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+9200, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(5)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+9325, uint64(5)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(5)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_FALSE)) return int32(i + uint32(5)) } @@ -242600,6 +244223,7 @@ _8: ; /* Parse number */ t = uint8(0x00) /* Bit 0x01: JSON5. Bit 0x02: FLOAT */ + goto parse_number parse_number: ; seenE = uint8(0) @@ -242631,14 +244255,14 @@ parse_number: /* JSON5 allows for "+Infinity" and "-Infinity" using exactly ** that case. SQLite also allows these in any case and it allows ** "+inf" and "-inf". */ - if (int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+26284, int32(3)) == 0 { + if (int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || int32(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+26407, int32(3)) == 0 { (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) if int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == int32('-') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+26367) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+26490) } else { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+26374) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+26497) } - if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+26380, int32(5)) == 0 { + if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+26503, int32(5)) == 0 { v48 = int32(9) } else { v48 = int32(4) @@ -242677,6 +244301,7 @@ parse_number: } } } + goto parse_number_2 parse_number_2: ; j = i + uint32(1) @@ -242735,6 +244360,7 @@ parse_number_2: return -int32(1) } } + goto parse_number_finish parse_number_finish: ; if int32(*(*int8)(unsafe.Pointer(z + uintptr(i)))) == int32('+') { @@ -242797,11 +244423,10 @@ _29: return -int32(1) _37: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1644, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1658, uint64(4)) == 0 && !(int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i+uint32(4)))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) return int32(i + uint32(4)) } - /* fall-through into the default case that checks for NaN */ _38: ; c = *(*int8)(unsafe.Pointer(z + uintptr(i))) @@ -242821,7 +244446,7 @@ _38: goto _51 } if int32(_aNanInfName[k1].FeType) == int32(JSONB_FLOAT) { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+26374) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+26497) } else { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) } @@ -242866,7 +244491,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 i += _json5Whitespace(tls, zJson+uintptr(i)) if *(*int8)(unsafe.Pointer(zJson + uintptr(i))) != 0 { if pCtx != 0 { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+26269, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+26392, -int32(1)) } _jsonParseReset(tls, pParse) return int32(1) @@ -242879,7 +244504,7 @@ func _jsonConvertTextToBlob(tls *libc.TLS, pParse uintptr, pCtx uintptr) (r int3 if (*TJsonParse)(unsafe.Pointer(pParse)).Foom != 0 { Xsqlite3_result_error_nomem(tls, pCtx) } else { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+26269, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+26392, -int32(1)) } } _jsonParseReset(tls, pParse) @@ -243042,15 +244667,15 @@ func _jsonTranslateBlobToText(tls *libc.TLS, pParse uintptr, i Tu32, pOut uintpt goto _16 _2: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1644, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1658, uint32(4)) return i + uint32(1) _3: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+9195, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+9320, uint32(4)) return i + uint32(1) _4: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+9200, uint32(5)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+9325, uint32(5)) return i + uint32(1) _6: ; @@ -243099,9 +244724,9 @@ _7: k++ } if bOverflow != 0 { - v19 = __ccgo_ts + 26288 + v19 = __ccgo_ts + 26411 } else { - v19 = __ccgo_ts + 13062 + v19 = __ccgo_ts + 13187 } _jsonPrintf(tls, int32(100), pOut, v19, libc.VaList(bp+16, u)) goto _16 @@ -243149,7 +244774,7 @@ _11: for sz2 > uint32(0) { k2 = uint32(0) for { - if !(k2 < sz2 && int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('\\') && int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) != int32('"')) { + if !(k2 < sz2 && (_jsonIsOk[uint8(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2))))] != 0 || int32(*(*int8)(unsafe.Pointer(zIn2 + uintptr(k2)))) == int32('\''))) { break } goto _21 @@ -243166,7 +244791,16 @@ _11: sz2 -= k2 } if int32(*(*int8)(unsafe.Pointer(zIn2))) == int32('"') { - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+26386, uint32(2)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+26509, uint32(2)) + zIn2++ + sz2-- + continue + } + if int32(*(*int8)(unsafe.Pointer(zIn2))) <= int32(0x1f) { + if (*TJsonString)(unsafe.Pointer(pOut)).FnUsed+uint64(7) > (*TJsonString)(unsafe.Pointer(pOut)).FnAlloc && _jsonStringGrow(tls, pOut, uint32(7)) != 0 { + break + } + _jsonAppendControlChar(tls, pOut, uint8(*(*int8)(unsafe.Pointer(zIn2)))) zIn2++ sz2-- continue @@ -243180,7 +244814,7 @@ _11: case int32('\''): _jsonAppendChar(tls, pOut, int8('\'')) case int32('v'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+26389, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+26512, uint32(6)) case int32('x'): if sz2 < uint32(4) { p23 = pOut + 33 @@ -243188,12 +244822,12 @@ _11: sz2 = uint32(2) break } - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+26396, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+26519, uint32(4)) _jsonAppendRawNZ(tls, pOut, zIn2+2, uint32(2)) zIn2 += uintptr(2) sz2 -= uint32(2) case int32('0'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+26401, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+26524, uint32(6)) case int32('\r'): if sz2 > uint32(2) && int32(*(*int8)(unsafe.Pointer(zIn2 + 2))) == int32('\n') { zIn2++ @@ -243271,6 +244905,7 @@ _14: goto _16 _15: ; + goto malformed_jsonb malformed_jsonb: ; p29 = pOut + 33 @@ -243281,6 +244916,140 @@ _16: return i + n + *(*Tu32)(unsafe.Pointer(bp)) } +// C documentation +// +// /* Context for recursion of json_pretty() +// */ +type TJsonPretty = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty = TJsonPretty + +type TJsonPretty1 = struct { + FpParse uintptr + FpOut uintptr + FzIndent uintptr + FszIndent Tu32 + FnIndent Tu32 +} + +type JsonPretty1 = TJsonPretty1 + +// C documentation +// +// /* Append indentation to the pretty JSON under construction */ +func _jsonPrettyIndent(tls *libc.TLS, pPretty uintptr) { + var jj Tu32 + _ = jj + jj = uint32(0) + for { + if !(jj < (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent) { + break + } + _jsonAppendRaw(tls, (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut, (*TJsonPretty)(unsafe.Pointer(pPretty)).FzIndent, (*TJsonPretty)(unsafe.Pointer(pPretty)).FszIndent) + goto _1 + _1: + ; + jj++ + } +} + +// C documentation +// +// /* +// ** Translate the binary JSONB representation of JSON beginning at +// ** pParse->aBlob[i] into a JSON text string. Append the JSON +// ** text onto the end of pOut. Return the index in pParse->aBlob[] +// ** of the first byte past the end of the element that is translated. +// ** +// ** This is a variant of jsonTranslateBlobToText() that "pretty-prints" +// ** the output. Extra whitespace is inserted to make the JSON easier +// ** for humans to read. +// ** +// ** If an error is detected in the BLOB input, the pOut->eErr flag +// ** might get set to JSTRING_MALFORMED. But not all BLOB input errors +// ** are detected. So a malformed JSONB input might either result +// ** in an error, or in incorrect JSON. +// ** +// ** The pOut->eErr JSTRING_OOM flag is set on a OOM. +// */ +func _jsonTranslateBlobToPrettyText(tls *libc.TLS, pPretty uintptr, i Tu32) (r Tu32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var iEnd, j, n Tu32 + var pOut, pParse, p1, p2 uintptr + var _ /* sz at bp+0 */ Tu32 + _, _, _, _, _, _, _ = iEnd, j, n, pOut, pParse, p1, p2 + pParse = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpParse + pOut = (*TJsonPretty)(unsafe.Pointer(pPretty)).FpOut + n = _jsonbPayloadSize(tls, pParse, i, bp) + if n == uint32(0) { + p1 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + return (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob + uint32(1) + } + switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { + case int32(JSONB_ARRAY): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, int8('[')) + if j < iEnd { + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+26531, uint32(2)) + } + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, int8(']')) + i = iEnd + case int32(JSONB_OBJECT): + j = i + n + iEnd = j + *(*Tu32)(unsafe.Pointer(bp)) + _jsonAppendChar(tls, pOut, int8('{')) + if j < iEnd { + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent++ + for int32((*TJsonString)(unsafe.Pointer(pOut)).FeErr) == 0 { + _jsonPrettyIndent(tls, pPretty) + j = _jsonTranslateBlobToText(tls, pParse, j, pOut) + if j > iEnd { + p2 = pOut + 33 + *(*Tu8)(unsafe.Pointer(p2)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p2))) | libc.Int32FromInt32(JSTRING_MALFORMED)) + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+26534, uint32(2)) + j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) + if j >= iEnd { + break + } + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+26531, uint32(2)) + } + _jsonAppendChar(tls, pOut, int8('\n')) + (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- + _jsonPrettyIndent(tls, pPretty) + } + _jsonAppendChar(tls, pOut, int8('}')) + i = iEnd + default: + i = _jsonTranslateBlobToText(tls, pParse, i, pOut) + break + } + return i +} + // C documentation // // /* Return true if the input pJson @@ -243998,7 +245767,7 @@ func _jsonReturnFromBlob(tls *libc.TLS, pParse uintptr, i Tu32, pCtx uintptr, te db = Xsqlite3_context_db_handle(tls, pCtx) n = _jsonbPayloadSize(tls, pParse, i, bp) if n == uint32(0) { - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+26269, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+26392, -int32(1)) return } switch int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { @@ -244107,6 +245876,7 @@ _6: if *(*Tu32)(unsafe.Pointer(bp)) == uint32(0) { goto returnfromblob_malformed } + goto to_double to_double: ; z1 = _sqlite3DbStrNDup(tls, db, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob+uintptr(i+n), uint64(int32(*(*Tu32)(unsafe.Pointer(bp))))) @@ -244225,13 +245995,15 @@ _14: _15: ; return + goto returnfromblob_oom returnfromblob_oom: ; Xsqlite3_result_error_nomem(tls, pCtx) return + goto returnfromblob_malformed returnfromblob_malformed: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+26269, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+26392, -int32(1)) return } @@ -244272,7 +246044,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob = Xsqlite3_value_blob(tls, pArg) (*TJsonParse)(unsafe.Pointer(pParse)).FnBlob = uint32(Xsqlite3_value_bytes(tls, pArg)) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+26240, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+26363, -int32(1)) return int32(1) } case int32(SQLITE_TEXT): @@ -244285,7 +246057,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin (*TJsonParse)(unsafe.Pointer(pParse)).FzJson = zJson (*TJsonParse)(unsafe.Pointer(pParse)).FnJson = nJson if _jsonConvertTextToBlob(tls, pParse, ctx) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+26269, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+26392, -int32(1)) _sqlite3DbFree(tls, (*TJsonParse)(unsafe.Pointer(pParse)).Fdb, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob) libc.Xmemset(tls, pParse, 0, uint64(72)) return int32(1) @@ -244304,10 +246076,10 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin return int32(1) } if int32(*(*int8)(unsafe.Pointer(z))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+26374) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+26497) } else { if int32(*(*int8)(unsafe.Pointer(z))) == int32('-') && int32(*(*int8)(unsafe.Pointer(z + 1))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+26367) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+26490) } else { _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(uint32(n)), z) } @@ -244346,7 +246118,7 @@ func _jsonBadPathError(tls *libc.TLS, ctx uintptr, zPath uintptr) (r uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26408, libc.VaList(bp+8, zPath)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26537, libc.VaList(bp+8, zPath)) if ctx == uintptr(0) { return zMsg } @@ -244438,11 +246210,12 @@ func _jsonInsertIntoBlob(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr, e _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto jsonInsertIntoBlob_patherror jsonInsertIntoBlob_patherror: ; _jsonParseFree(tls, p) if rc == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+26269, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+26392, -int32(1)) } else { _jsonBadPathError(tls, ctx, zPath) } @@ -244526,6 +246299,7 @@ func _jsonParseFuncArg(tls *libc.TLS, ctx uintptr, pArg uintptr, flgs Tu32) (r u } } db = Xsqlite3_context_db_handle(tls, ctx) + goto rebuild_from_cache rebuild_from_cache: ; p = _sqlite3DbMallocZero(tls, db, uint64(72)) @@ -244615,6 +246389,7 @@ rebuild_from_cache: } } return p + goto json_pfa_malformed json_pfa_malformed: ; if flgs&uint32(JSON_KEEPERROR) != 0 { @@ -244622,9 +246397,10 @@ json_pfa_malformed: return p } else { _jsonParseFree(tls, p) - Xsqlite3_result_error(tls, ctx, __ccgo_ts+26269, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+26392, -int32(1)) return uintptr(0) } + goto json_pfa_oom json_pfa_oom: ; _jsonParseFree(tls, pFromCache) @@ -244756,7 +246532,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if int32(*(*int8)(unsafe.Pointer(zPath))) == int32('$') { v1 = zPath + uintptr(1) } else { - v1 = __ccgo_ts + 26426 + v1 = __ccgo_ts + 26555 } i = _jsonLookupStep(tls, p, uint32(0), v1, uint32(0)) if i >= uint32(JSON_LOOKUP_PATHERROR) { @@ -244766,7 +246542,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+26269, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+26392, -int32(1)) } } eErr = uint8(1) @@ -244784,25 +246560,6 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) _jsonParseFree(tls, p) } -// C documentation -// -// /* True if the string is all digits */ -func _jsonAllDigits(tls *libc.TLS, z uintptr, n int32) (r int32) { - var i int32 - _ = i - i = 0 - for { - if !(i < n && int32(_sqlite3CtypeMap[uint8(*(*int8)(unsafe.Pointer(z + uintptr(i))))])&int32(0x04) != 0) { - break - } - goto _1 - _1: - ; - i++ - } - return libc.BoolInt32(i == n) -} - // C documentation // // /* True if the string is all alphanumerics and underscores */ @@ -244889,21 +246646,21 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { ** [NUMBER] ==> $[NUMBER] // Not PG. Purely for convenience */ _jsonStringInit(tls, bp, ctx) - if _jsonAllDigits(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+26428, uint32(1)) + if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) == int32(SQLITE_INTEGER) { + _jsonAppendRawNZ(tls, bp, __ccgo_ts+26557, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(uint32(nPath))) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+6470, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+6534, uint32(2)) } else { if _jsonAllAlphanum(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1671, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1685, uint32(1)) _jsonAppendRaw(tls, bp, zPath, uint32(uint32(nPath))) } else { if int32(*(*int8)(unsafe.Pointer(zPath))) == int32('[') && nPath >= int32(3) && int32(*(*int8)(unsafe.Pointer(zPath + uintptr(nPath-int32(1))))) == int32(']') { _jsonAppendRaw(tls, bp, zPath, uint32(uint32(nPath))) } else { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+26430, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+26559, uint32(2)) _jsonAppendRaw(tls, bp, zPath, uint32(uint32(nPath))) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+26433, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+26562, uint32(1)) } } } @@ -244939,11 +246696,11 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { goto json_extract_error /* Return NULL if not found */ } else { _jsonAppendSeparator(tls, bp) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1644, uint32(4)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1658, uint32(4)) } } else { if j == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+26269, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+26392, -int32(1)) goto json_extract_error } else { _jsonBadPathError(tls, ctx, zPath) @@ -244963,6 +246720,7 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } } + goto json_extract_error json_extract_error: ; _jsonStringReset(tls, bp) @@ -245210,7 +246968,7 @@ func _jsonPatchFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == int32(JSON_MERGE_OOM) { Xsqlite3_result_error_nomem(tls, ctx) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+26269, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+26392, -int32(1)) } } _jsonParseFree(tls, pPatch) @@ -245234,7 +246992,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { var _ /* jx at bp+0 */ TJsonString _, _, _ = i, n, z if argc&int32(1) != 0 { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+26435, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+26564, -int32(1)) return } _jsonStringInit(tls, bp, ctx) @@ -245245,7 +247003,7 @@ func _jsonObjectFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { break } if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) != int32(SQLITE_TEXT) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+26486, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+26615, -int32(1)) _jsonStringReset(tls, bp) return } @@ -245317,7 +247075,7 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if rc == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+26269, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+26392, -int32(1)) } } goto json_remove_done @@ -245330,9 +247088,11 @@ func _jsonRemoveFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { _jsonReturnParse(tls, ctx, p) _jsonParseFree(tls, p) return + goto json_remove_patherror json_remove_patherror: ; _jsonBadPathError(tls, ctx, zPath) + goto json_remove_done json_remove_done: ; _jsonParseFree(tls, p) @@ -245352,7 +247112,7 @@ func _jsonReplaceFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { return } if argc&int32(1) == 0 { - _jsonWrongNumArgs(tls, ctx, __ccgo_ts+17110) + _jsonWrongNumArgs(tls, ctx, __ccgo_ts+17203) return } _jsonInsertIntoBlob(tls, ctx, argc, argv, int32(JEDIT_REPL)) @@ -245383,9 +247143,9 @@ func _jsonSetFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { } if argc&int32(1) == 0 { if bIsSet != 0 { - v1 = __ccgo_ts + 26520 + v1 = __ccgo_ts + 26649 } else { - v1 = __ccgo_ts + 26524 + v1 = __ccgo_ts + 26653 } _jsonWrongNumArgs(tls, ctx, v1) return @@ -245433,7 +247193,7 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if i == uint32(JSON_LOOKUP_PATHERROR) { _jsonBadPathError(tls, ctx, zPath) } else { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+26269, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+26392, -int32(1)) } } goto json_type_done @@ -245442,11 +247202,54 @@ func _jsonTypeFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { i = uint32(0) } Xsqlite3_result_text(tls, ctx, _jsonbType[int32(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(p)).FaBlob + uintptr(i))))&int32(0x0f)], -int32(1), libc.UintptrFromInt32(0)) + goto json_type_done json_type_done: ; _jsonParseFree(tls, p) } +// C documentation +// +// /* +// ** json_pretty(JSON) +// ** json_pretty(JSON, INDENT) +// ** +// ** Return text that is a pretty-printed rendering of the input JSON. +// ** If the argument is not valid JSON, return NULL. +// ** +// ** The INDENT argument is text that is used for indentation. If omitted, +// ** it defaults to four spaces (the same as PostgreSQL). +// */ +func _jsonPrettyFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { + bp := tls.Alloc(176) + defer tls.Free(176) + var v1 uintptr + var v2 bool + var _ /* s at bp+0 */ TJsonString + var _ /* x at bp+136 */ TJsonPretty + _, _ = v1, v2 /* Pretty printing context */ + libc.Xmemset(tls, bp+136, 0, uint64(32)) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse = _jsonParseFuncArg(tls, ctx, *(*uintptr)(unsafe.Pointer(argv)), uint32(0)) + if (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse == uintptr(0) { + return + } + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpOut = bp + _jsonStringInit(tls, bp, ctx) + if v2 = argc == int32(1); !v2 { + v1 = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = v1 + } + if v2 || v1 == uintptr(0) { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = __ccgo_ts + 26660 + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(4) + } else { + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FszIndent = uint32(libc.Xstrlen(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent)) + } + _jsonTranslateBlobToPrettyText(tls, bp+136, uint32(0)) + _jsonReturnString(tls, bp, uintptr(0), uintptr(0)) + _jsonParseFree(tls, (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FpParse) +} + // C documentation // // /* @@ -245521,7 +247324,7 @@ func _jsonValidFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { if argc == int32(2) { f = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) if f < int64(1) || f > int64(15) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+26531, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+26665, -int32(1)) return } flags = uint8(f & int64(0x0f)) @@ -245710,7 +247513,7 @@ func _jsonArrayCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+26588, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+26722, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -245859,7 +247662,7 @@ func _jsonObjectCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+26591, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+26725, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -245962,7 +247765,7 @@ func _jsonEachConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv _ = argv _ = argc _ = pAux - rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+26594) + rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+26728) if rc == SQLITE_OK { pNew = _sqlite3DbMallocZero(tls, db, uint64(32)) *(*uintptr)(unsafe.Pointer(ppVtab)) = pNew @@ -246096,7 +247899,7 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { var _ /* sz at bp+0 */ Tu32 _, _, _, _, _ = i, k, n, needQuote, z if int32((*TJsonEachCursor)(unsafe.Pointer(p)).FeType) == int32(JSONB_ARRAY) { - _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+26677, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) + _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+26811, libc.VaList(bp+16, (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent + uintptr((*TJsonEachCursor)(unsafe.Pointer(p)).FnParent-uint32(1))*24))).FiKey)) } else { *(*Tu32)(unsafe.Pointer(bp)) = uint32(0) needQuote = 0 @@ -246122,9 +247925,9 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { } } if needQuote != 0 { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+26684, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+26818, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } else { - _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+26692, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, int32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+26826, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } } } @@ -246510,7 +248313,7 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a i = v5 (*TJsonEachCursor)(unsafe.Pointer(p)).FeType = uint8(0) (*TJsonEachCursor)(unsafe.Pointer(p)).FnRoot = uint32(1) - _jsonAppendRaw(tls, p+56, __ccgo_ts+26698, uint32(1)) + _jsonAppendRaw(tls, p+56, __ccgo_ts+26832, uint32(1)) } (*TJsonEachCursor)(unsafe.Pointer(p)).FnParent = uint32(0) n = _jsonbPayloadSize(tls, p+192, i, bp) @@ -246530,10 +248333,11 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a (*(*TJsonParent)(unsafe.Pointer((*TJsonEachCursor)(unsafe.Pointer(p)).FaParent))).FiValue = i } return SQLITE_OK + goto json_each_malformed_input json_each_malformed_input: ; Xsqlite3_free(tls, (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg) - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26269, 0) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26392, 0) _jsonEachCursorReset(tls, p) if (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg != 0 { v6 = int32(SQLITE_ERROR) @@ -246587,183 +248391,193 @@ func init() { // ** Register JSON functions. // */ func _sqlite3RegisterJsonFunctions(tls *libc.TLS) { - _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2304)/libc.Uint64FromInt64(72))) + _sqlite3InsertBuiltinFuncs(tls, uintptr(unsafe.Pointer(&_aJsonFunc)), int32(libc.Uint64FromInt64(2448)/libc.Uint64FromInt64(72))) } -var _aJsonFunc = [32]TFuncDef{ +var _aJsonFunc = [34]TFuncDef{ 0: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26700, + FzName: __ccgo_ts + 26834, }, 1: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26705, + FzName: __ccgo_ts + 26839, }, 2: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26711, + FzName: __ccgo_ts + 26845, }, 3: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26722, + FzName: __ccgo_ts + 26856, }, 4: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26734, + FzName: __ccgo_ts + 26868, }, 5: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26734, + FzName: __ccgo_ts + 26868, }, 6: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26752, + FzName: __ccgo_ts + 26886, }, 7: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26772, + FzName: __ccgo_ts + 26906, }, 8: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26785, + FzName: __ccgo_ts + 26919, }, 9: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_JSON) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26799, + FzName: __ccgo_ts + 26933, }, 10: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_SQL) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26802, + FzName: __ccgo_ts + 26936, }, 11: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26806, + FzName: __ccgo_ts + 26940, }, 12: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26818, + FzName: __ccgo_ts + 26952, }, 13: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26831, + FzName: __ccgo_ts + 26965, }, 14: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26843, + FzName: __ccgo_ts + 26977, }, 15: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26856, + FzName: __ccgo_ts + 26990, }, 16: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26867, + FzName: __ccgo_ts + 27001, }, 17: { FnArg: int8(1), - FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26879, + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 27013, }, 18: { + FnArg: int8(2), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 27013, + }, + 19: { + FnArg: int8(1), + FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), + FzName: __ccgo_ts + 27025, + }, + 20: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26890, + FzName: __ccgo_ts + 27036, }, - 19: { + 21: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26902, + FzName: __ccgo_ts + 27048, }, - 20: { + 22: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26915, + FzName: __ccgo_ts + 27061, }, - 21: { + 23: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(0) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26928, + FzName: __ccgo_ts + 27074, }, - 22: { + 24: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(0)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26942, + FzName: __ccgo_ts + 27088, }, - 23: { + 25: { FnArg: int8(-int32(1)), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_ISSET) | libc.Int32FromInt32(1)*libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26951, + FzName: __ccgo_ts + 27097, }, - 24: { + 26: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26961, + FzName: __ccgo_ts + 27107, }, - 25: { + 27: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26961, + FzName: __ccgo_ts + 27107, }, - 26: { + 28: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26971, + FzName: __ccgo_ts + 27117, }, - 27: { + 29: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(1)*libc.Int32FromInt32(SQLITE_FUNC_RUNONLY) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE)), - FzName: __ccgo_ts + 26971, + FzName: __ccgo_ts + 27117, }, - 28: { + 30: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 26982, + FzName: __ccgo_ts + 27128, }, - 29: { + 31: { FnArg: int8(1), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 26999, + FzName: __ccgo_ts + 27145, }, - 30: { + 32: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), - FzName: __ccgo_ts + 27017, + FzName: __ccgo_ts + 27163, }, - 31: { + 33: { FnArg: int8(2), FfuncFlags: uint32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DETERMINISTIC)), FpUserData: uintptr(int64(libc.Int32FromInt32(JSON_BLOB))), - FzName: __ccgo_ts + 27035, + FzName: __ccgo_ts + 27181, }, } @@ -246786,33 +248600,35 @@ func init() { *(*uintptr)(unsafe.Add(p, 1032)) = __ccgo_fp(_jsonObjectFunc) *(*uintptr)(unsafe.Add(p, 1104)) = __ccgo_fp(_jsonPatchFunc) *(*uintptr)(unsafe.Add(p, 1176)) = __ccgo_fp(_jsonPatchFunc) - *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonQuoteFunc) - *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonRemoveFunc) - *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonReplaceFunc) - *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonSetFunc) - *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonTypeFunc) - *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonValidFunc) - *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2048)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2056)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2064)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonArrayStep) - *(*uintptr)(unsafe.Add(p, 2120)) = __ccgo_fp(_jsonArrayFinal) - *(*uintptr)(unsafe.Add(p, 2128)) = __ccgo_fp(_jsonArrayValue) - *(*uintptr)(unsafe.Add(p, 2136)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 1248)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1320)) = __ccgo_fp(_jsonPrettyFunc) + *(*uintptr)(unsafe.Add(p, 1392)) = __ccgo_fp(_jsonQuoteFunc) + *(*uintptr)(unsafe.Add(p, 1464)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1536)) = __ccgo_fp(_jsonRemoveFunc) + *(*uintptr)(unsafe.Add(p, 1608)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1680)) = __ccgo_fp(_jsonReplaceFunc) + *(*uintptr)(unsafe.Add(p, 1752)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1824)) = __ccgo_fp(_jsonSetFunc) + *(*uintptr)(unsafe.Add(p, 1896)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 1968)) = __ccgo_fp(_jsonTypeFunc) + *(*uintptr)(unsafe.Add(p, 2040)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2112)) = __ccgo_fp(_jsonValidFunc) + *(*uintptr)(unsafe.Add(p, 2184)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2192)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2200)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2208)) = __ccgo_fp(_jsonGroupInverse) - *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonObjectStep) - *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonObjectFinal) - *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2256)) = __ccgo_fp(_jsonArrayStep) + *(*uintptr)(unsafe.Add(p, 2264)) = __ccgo_fp(_jsonArrayFinal) + *(*uintptr)(unsafe.Add(p, 2272)) = __ccgo_fp(_jsonArrayValue) *(*uintptr)(unsafe.Add(p, 2280)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2328)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2336)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2344)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2352)) = __ccgo_fp(_jsonGroupInverse) + *(*uintptr)(unsafe.Add(p, 2400)) = __ccgo_fp(_jsonObjectStep) + *(*uintptr)(unsafe.Add(p, 2408)) = __ccgo_fp(_jsonObjectFinal) + *(*uintptr)(unsafe.Add(p, 2416)) = __ccgo_fp(_jsonObjectValue) + *(*uintptr)(unsafe.Add(p, 2424)) = __ccgo_fp(_jsonGroupInverse) } // C documentation @@ -246844,11 +248660,11 @@ var _aMod = [2]struct { FpModule uintptr }{ 0: { - FzName: __ccgo_ts + 27054, + FzName: __ccgo_ts + 27200, FpModule: uintptr(unsafe.Pointer(&_jsonEachModule)), }, 1: { - FzName: __ccgo_ts + 27064, + FzName: __ccgo_ts + 27210, FpModule: uintptr(unsafe.Pointer(&_jsonTreeModule)), }, } @@ -247494,7 +249310,7 @@ func _nodeAcquire(tls *libc.TLS, pRtree uintptr, iNode Ti64, pParent uintptr, pp } } if (*TRtree)(unsafe.Pointer(pRtree)).FpNodeBlob == uintptr(0) { - rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+27074, iNode, 0, pRtree+112) + rc = Xsqlite3_blob_open(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, __ccgo_ts+27220, iNode, 0, pRtree+112) } if rc != 0 { *(*uintptr)(unsafe.Pointer(ppNode)) = uintptr(0) @@ -247799,7 +249615,7 @@ func _rtreeDestroy(tls *libc.TLS, pVtab uintptr) (r int32) { var rc int32 _, _, _ = pRtree, rc, zCreate pRtree = pVtab - zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+27079, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+27225, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if !(zCreate != 0) { rc = int32(SQLITE_NOMEM) } else { @@ -248716,7 +250532,7 @@ func _findLeafNode(tls *libc.TLS, pRtree uintptr, iRowid Ti64, ppLeaf uintptr, p func _deserializeGeometry(tls *libc.TLS, pValue uintptr, pCons uintptr) (r int32) { var pBlob, pInfo, pSrc uintptr _, _, _ = pBlob, pInfo, pSrc /* Callback information */ - pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+27161) + pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+27307) if pSrc == uintptr(0) { return int32(SQLITE_ERROR) } @@ -248771,7 +250587,7 @@ func _rtreeFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uintp iRowid = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) *(*Ti64)(unsafe.Pointer(bp + 24)) = 0 eType = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(argv))) - if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv))) == float64(float64(iRowid)) { + if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) && 0 == _sqlite3IntFloatCompare(tls, iRowid, Xsqlite3_value_double(tls, *(*uintptr)(unsafe.Pointer(argv)))) { rc = _findLeafNode(tls, pRtree, iRowid, bp+16, bp+24) } else { rc = SQLITE_OK @@ -249821,6 +251637,7 @@ func _SplitNode(tls *libc.TLS, pRtree uintptr, pNode uintptr, pCell uintptr, iHe rc = _nodeRelease(tls, pRtree, pLeft) pLeft = uintptr(0) } + goto splitnode_out splitnode_out: ; _nodeRelease(tls, pRtree, pRight) @@ -250250,7 +252067,7 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) var _ /* pStmt at bp+0 */ uintptr _, _, _, _, _, _ = rc, zCol, zCol1, zCol2, zSql, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27175, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27321, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) if zSql != 0 { rc = Xsqlite3_prepare_v2(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, -int32(1), bp, uintptr(0)) } else { @@ -250260,11 +252077,11 @@ func _rtreeConstraintError(tls *libc.TLS, pRtree uintptr, iCol int32) (r int32) if rc == SQLITE_OK { if iCol == 0 { zCol = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+27195, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+27341, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) } else { zCol1 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol) zCol2 = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), iCol+int32(1)) - (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+27227, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+27373, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) } } Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -250426,6 +252243,7 @@ func _rtreeUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pRow rc = Xsqlite3_reset(tls, pUp) } } + goto constraint constraint: ; _rtreeRelease(tls, pRtree) @@ -250477,7 +252295,7 @@ func _rtreeRename(tls *libc.TLS, pVtab uintptr, zNewName uintptr) (r int32) { _, _, _ = pRtree, rc, zSql pRtree = pVtab rc = int32(SQLITE_NOMEM) - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27264, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27410, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zNewName)) if zSql != 0 { _nodeBlobReset(tls, pRtree) rc = Xsqlite3_exec(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, zSql, uintptr(0), uintptr(0), uintptr(0)) @@ -250531,9 +252349,9 @@ func _rtreeQueryStat1(tls *libc.TLS, db uintptr, pRtree uintptr) (r int32) { var v2 int64 var _ /* p at bp+0 */ uintptr _, _, _, _, _, _ = nRow, rc, zFmt, zSql, v1, v2 - zFmt = __ccgo_ts + 27409 + zFmt = __ccgo_ts + 27555 nRow = int64(RTREE_MIN_ROWEST) - rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+12891, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+13016, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc != SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FnRowEst = int64(RTREE_DEFAULT_ROWEST) if rc == int32(SQLITE_ERROR) { @@ -250591,9 +252409,9 @@ func _rtreeShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName1 = [3]uintptr{ - 0: __ccgo_ts + 27465, - 1: __ccgo_ts + 6793, - 2: __ccgo_ts + 18009, + 0: __ccgo_ts + 27611, + 1: __ccgo_ts + 6857, + 2: __ccgo_ts + 18096, } var _rtreeModule = Tsqlite3_module{ @@ -250637,21 +252455,21 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref (*TRtree)(unsafe.Pointer(pRtree)).Fdb = db if isCreate != 0 { p = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+27879, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+28025, libc.VaList(bp+8, zDb, zPrefix)) ii = 0 for { if !(ii < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+27941, libc.VaList(bp+8, ii)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+28087, libc.VaList(bp+8, ii)) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+27946, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+28010, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+28080, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+28092, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+28156, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+28226, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) zCreate = Xsqlite3_str_finish(tls, p) if !(zCreate != 0) { return int32(SQLITE_NOMEM) @@ -250681,7 +252499,7 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } else { /* An UPSERT is very slightly slower than REPLACE, but it is needed ** if there are auxiliary columns */ - zFormat = __ccgo_ts + 28129 + zFormat = __ccgo_ts + 28275 } zSql = Xsqlite3_mprintf(tls, zFormat, libc.VaList(bp+8, zDb, zPrefix)) if zSql != 0 { @@ -250696,31 +252514,31 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref i++ } if (*TRtree)(unsafe.Pointer(pRtree)).FnAux != 0 && rc != int32(SQLITE_NOMEM) { - (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+28237, libc.VaList(bp+8, zDb, zPrefix)) + (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+28383, libc.VaList(bp+8, zDb, zPrefix)) if (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { p1 = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+28282, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+28428, libc.VaList(bp+8, zDb, zPrefix)) ii1 = 0 for { if !(ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } if ii1 != 0 { - Xsqlite3_str_append(tls, p1, __ccgo_ts+14399, int32(1)) + Xsqlite3_str_append(tls, p1, __ccgo_ts+14524, int32(1)) } if ii1 < int32((*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull) { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+28309, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+28455, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) } else { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+28331, libc.VaList(bp+8, ii1, ii1+int32(2))) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+28477, libc.VaList(bp+8, ii1, ii1+int32(2))) } goto _3 _3: ; ii1++ } - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+28339, 0) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+28485, 0) zSql1 = Xsqlite3_str_finish(tls, p1) if zSql1 == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -250734,14 +252552,14 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } var _azSql = [8]uintptr{ - 0: __ccgo_ts + 27470, - 1: __ccgo_ts + 27523, - 2: __ccgo_ts + 27568, - 3: __ccgo_ts + 27620, - 4: __ccgo_ts + 27674, - 5: __ccgo_ts + 27719, - 6: __ccgo_ts + 27777, - 7: __ccgo_ts + 27832, + 0: __ccgo_ts + 27616, + 1: __ccgo_ts + 27669, + 2: __ccgo_ts + 27714, + 3: __ccgo_ts + 27766, + 4: __ccgo_ts + 27820, + 5: __ccgo_ts + 27865, + 6: __ccgo_ts + 27923, + 7: __ccgo_ts + 27978, } // C documentation @@ -250799,7 +252617,7 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE _, _ = rc, zSql if isCreate != 0 { *(*int32)(unsafe.Pointer(bp)) = 0 - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+28355, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+28501, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) rc = _getIntFromStmt(tls, db, zSql, bp) if rc == SQLITE_OK { (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = *(*int32)(unsafe.Pointer(bp)) - int32(64) @@ -250807,17 +252625,17 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = int32(4) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*int32(RTREE_MAXCELLS) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } } else { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+28375, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+28521, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) rc = _getIntFromStmt(tls, db, zSql, pRtree+32) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } else { if (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize < libc.Int32FromInt32(512)-libc.Int32FromInt32(64) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< libc.Int32FromInt32(RTREE_MAX_AUX_COLUMN)+libc.Int32FromInt32(3) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) return int32(SQLITE_ERROR) } Xsqlite3_vtab_config(tls, db, int32(SQLITE_VTAB_CONSTRAINT_SUPPORT), libc.VaList(bp+8, int32(1))) @@ -250894,13 +252712,13 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(uint64(nDb))) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(uint64(nName))) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(uint64(nName))) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+28618, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+28764, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28624, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28770, libc.VaList(bp+8, _rtreeTokenLength(tls, *(*uintptr)(unsafe.Pointer(argv + 3*8))), *(*uintptr)(unsafe.Pointer(argv + 3*8)))) ii = int32(4) for { if !(ii < argc) { @@ -250909,7 +252727,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt zArg = *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)) if int32(*(*int8)(unsafe.Pointer(zArg))) == int32('+') { (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28648, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28794, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) } else { if int32((*TRtree)(unsafe.Pointer(pRtree)).FnAux) > 0 { break @@ -250923,19 +252741,19 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28675, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28821, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) } else { if ii < argc { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+8, aErrMsg[int32(4)])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+8, aErrMsg[int32(4)])) rc = int32(SQLITE_ERROR) } else { v3 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v3 if SQLITE_OK != v3 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } } @@ -250958,7 +252776,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } } if iErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+8, aErrMsg[iErr])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+8, aErrMsg[iErr])) goto rtreeInit_fail } (*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell = uint8(int32(8) + int32((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)*int32(4)) @@ -250969,11 +252787,12 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto rtreeInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto rtreeInit_fail rtreeInit_fail: ; if rc == SQLITE_OK { @@ -250984,8 +252803,8 @@ rtreeInit_fail: } var _azFormat = [2]uintptr{ - 0: __ccgo_ts + 28654, - 1: __ccgo_ts + 28665, + 0: __ccgo_ts + 28800, + 1: __ccgo_ts + 28811, } // C documentation @@ -251043,21 +252862,21 @@ func _rtreenode(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { } _nodeGetCell(tls, bp+40, bp, ii, bp+1008) if ii > 0 { - Xsqlite3_str_append(tls, pOut, __ccgo_ts+12511, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+12636, int32(1)) } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+28678, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+28824, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) jj = 0 for { if !(jj < int32((*(*TRtree)(unsafe.Pointer(bp + 40))).FnDim2)) { break } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+28684, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+28830, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) goto _2 _2: ; jj++ } - Xsqlite3_str_append(tls, pOut, __ccgo_ts+28688, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+28834, int32(1)) goto _1 _1: ; @@ -251084,7 +252903,7 @@ func _rtreedepth(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { _ = zBlob _ = nArg if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(apArg))) != int32(SQLITE_BLOB) || Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(apArg))) < int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+28690, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+28836, -int32(1)) } else { zBlob = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(apArg))) if zBlob != 0 { @@ -251202,11 +253021,11 @@ func _rtreeCheckAppendMsg(tls *libc.TLS, pCheck uintptr, zFmt uintptr, va uintpt (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } else { if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport != 0 { - v1 = __ccgo_ts + 5512 + v1 = __ccgo_ts + 5576 } else { - v1 = __ccgo_ts + 1658 + v1 = __ccgo_ts + 1672 } - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+28723, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+28869, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport == uintptr(0) { (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = int32(SQLITE_NOMEM) } @@ -251240,7 +253059,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt _, _, _ = nNode, pNode, pRet pRet = uintptr(0) /* Return value */ if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode == uintptr(0) { - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+28730, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+28876, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) } if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { Xsqlite3_bind_int64(tls, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode, int32(1), iNode) @@ -251257,7 +253076,7 @@ func _rtreeCheckGetNode(tls *libc.TLS, pCheck uintptr, iNode Ti64, pnNode uintpt } _rtreeCheckReset(tls, pCheck, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode) if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK && pRet == uintptr(0) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28775, libc.VaList(bp+8, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28921, libc.VaList(bp+8, iNode)) } } return pRet @@ -251286,8 +253105,8 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i var rc int32 _, _, _, _, _, _ = azSql, ii, pStmt, rc, v1, v2 azSql = [2]uintptr{ - 0: __ccgo_ts + 28807, - 1: __ccgo_ts + 28861, + 0: __ccgo_ts + 28953, + 1: __ccgo_ts + 29007, } if *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) == uintptr(0) { *(*uintptr)(unsafe.Pointer(pCheck + 40 + uintptr(bLeaf)*8)) = _rtreeCheckPrepare(tls, pCheck, azSql[bLeaf], libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) @@ -251300,21 +253119,21 @@ func _rtreeCheckMapping(tls *libc.TLS, pCheck uintptr, bLeaf int32, iKey Ti64, i rc = Xsqlite3_step(tls, pStmt) if rc == int32(SQLITE_DONE) { if bLeaf != 0 { - v1 = __ccgo_ts + 28909 + v1 = __ccgo_ts + 29055 } else { - v1 = __ccgo_ts + 28917 + v1 = __ccgo_ts + 29063 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28926, libc.VaList(bp+8, iKey, iVal, v1)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+29072, libc.VaList(bp+8, iKey, iVal, v1)) } else { if rc == int32(SQLITE_ROW) { ii = Xsqlite3_column_int64(tls, pStmt, 0) if ii != iVal { if bLeaf != 0 { - v2 = __ccgo_ts + 28909 + v2 = __ccgo_ts + 29055 } else { - v2 = __ccgo_ts + 28917 + v2 = __ccgo_ts + 29063 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28971, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+29117, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) } } } @@ -251359,7 +253178,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 v2 = libc.BoolInt32(*(*TRtreeValue)(unsafe.Pointer(bp)) > *(*TRtreeValue)(unsafe.Pointer(bp + 4))) } if v2 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+29029, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+29175, libc.VaList(bp+24, i, iCell, iNode)) } if pParent != 0 { _readCoord(tls, pParent+uintptr(libc.Int32FromInt32(4)*libc.Int32FromInt32(2)*i), bp+8) @@ -251377,7 +253196,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 } } if v5 || v4 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+29077, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+29223, libc.VaList(bp+24, i, iCell, iNode)) } } goto _1 @@ -251410,19 +253229,19 @@ func _rtreeCheckNode(tls *libc.TLS, pCheck uintptr, iDepth int32, aParent uintpt aNode = _rtreeCheckGetNode(tls, pCheck, iNode, bp) if aNode != 0 { if *(*int32)(unsafe.Pointer(bp)) < int32(4) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+29144, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+29290, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) } else { /* Used to iterate through cells */ if aParent == uintptr(0) { iDepth = _readInt16(tls, aNode) if iDepth > int32(RTREE_MAX_DEPTH) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+29178, libc.VaList(bp+16, iDepth)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+29324, libc.VaList(bp+16, iDepth)) Xsqlite3_free(tls, aNode) return } } nCell = _readInt16(tls, aNode+2) if int32(4)+nCell*(int32(8)+(*TRtreeCheck)(unsafe.Pointer(pCheck)).FnDim*int32(2)*int32(4)) > *(*int32)(unsafe.Pointer(bp)) { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+29208, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+29354, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) } else { i = 0 for { @@ -251467,12 +253286,12 @@ func _rtreeCheckCount(tls *libc.TLS, pCheck uintptr, zTbl uintptr, nExpect Ti64) var pCount uintptr _, _ = nActual, pCount if (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc == SQLITE_OK { - pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+29263, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) + pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+29409, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) if pCount != 0 { if Xsqlite3_step(tls, pCount) == int32(SQLITE_ROW) { nActual = Xsqlite3_column_int64(tls, pCount, 0) if nActual != nExpect { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+29294, libc.VaList(bp+8, zTbl, nExpect, nActual)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+29440, libc.VaList(bp+8, zTbl, nExpect, nActual)) } } (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = Xsqlite3_finalize(tls, pCount) @@ -251501,7 +253320,7 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzDb = zDb (*(*TRtreeCheck)(unsafe.Pointer(bp))).FzTab = zTab /* Find the number of auxiliary columns */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+29361, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+29507, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { nAux = Xsqlite3_column_count(tls, pStmt) - int32(2) Xsqlite3_finalize(tls, pStmt) @@ -251511,11 +253330,11 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe } } /* Find number of dimensions in the rtree table. */ - pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+27175, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+27321, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim = (Xsqlite3_column_count(tls, pStmt) - int32(1) - nAux) / int32(2) if (*(*TRtreeCheck)(unsafe.Pointer(bp))).FnDim < int32(1) { - _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+29389, 0) + _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+29535, 0) } else { if int32(SQLITE_ROW) == Xsqlite3_step(tls, pStmt) { (*(*TRtreeCheck)(unsafe.Pointer(bp))).FbInt = libc.BoolInt32(Xsqlite3_column_type(tls, pStmt, int32(1)) == int32(SQLITE_INTEGER)) @@ -251531,8 +253350,8 @@ func _rtreeCheckTable(tls *libc.TLS, db uintptr, zDb uintptr, zTab uintptr, pzRe if (*(*TRtreeCheck)(unsafe.Pointer(bp))).Frc == SQLITE_OK { _rtreeCheckNode(tls, bp, 0, uintptr(0), int64(1)) } - _rtreeCheckCount(tls, bp, __ccgo_ts+29420, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) - _rtreeCheckCount(tls, bp, __ccgo_ts+29427, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+29566, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+29573, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) } /* Finalize SQL statements used by the integrity-check */ Xsqlite3_finalize(tls, (*(*TRtreeCheck)(unsafe.Pointer(bp))).FpGetNode) @@ -251559,7 +253378,7 @@ func _rtreeIntegrity(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zName uintpt _ = isQuick rc = _rtreeCheckTable(tls, (*TRtree)(unsafe.Pointer(pRtree)).Fdb, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, pzErr) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+29435, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+29581, libc.VaList(bp+8, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(pzErr)))) if *(*uintptr)(unsafe.Pointer(pzErr)) == uintptr(0) { rc = int32(SQLITE_NOMEM) } @@ -251610,13 +253429,13 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { var _ /* zReport at bp+0 */ uintptr _, _, _, _ = rc, zDb, zTab, v1 if nArg != int32(1) && nArg != int32(2) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+29454, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+29600, -int32(1)) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zDb = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg))) if nArg == int32(1) { zTab = zDb - zDb = __ccgo_ts + 7894 + zDb = __ccgo_ts + 7958 } else { zTab = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8))) } @@ -251625,7 +253444,7 @@ func _rtreecheck(tls *libc.TLS, ctx uintptr, nArg int32, apArg uintptr) { if *(*uintptr)(unsafe.Pointer(bp)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(bp)) } else { - v1 = __ccgo_ts + 19787 + v1 = __ccgo_ts + 19874 } Xsqlite3_result_text(tls, ctx, v1, -int32(1), uintptr(-libc.Int32FromInt32(1))) } else { @@ -251958,6 +253777,7 @@ func _geopolyParseJson(tls *libc.TLS, z uintptr, pRc uintptr) (r uintptr) { rc = int32(SQLITE_ERROR) } } + goto parse_json_err parse_json_err: ; if pRc != 0 { @@ -252091,19 +253911,19 @@ func _geopolyJsonFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if p != 0 { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) - Xsqlite3_str_append(tls, x, __ccgo_ts+26428, int32(1)) + Xsqlite3_str_append(tls, x, __ccgo_ts+26557, int32(1)) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+29505, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+29651, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+29516, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+29662, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -252132,20 +253952,20 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { db = Xsqlite3_context_db_handle(tls, context) x = Xsqlite3_str_new(tls, db) cSep = int8('\'') - Xsqlite3_str_appendf(tls, x, __ccgo_ts+29527, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+29673, 0) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+29545, libc.VaList(bp+8, int32(int32(cSep)), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+29691, libc.VaList(bp+8, int32(int32(cSep)), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(i*int32(2)+int32(1))*4))))) cSep = int8(' ') goto _1 _1: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+29553, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+29699, libc.VaList(bp+8, float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2))*4))), float64(*(*TGeoCoord)(unsafe.Pointer(p + 8 + uintptr(libc.Int32FromInt32(0)*libc.Int32FromInt32(2)+libc.Int32FromInt32(1))*4))))) i = int32(1) for { if !(i < argc) { @@ -252153,14 +253973,14 @@ func _geopolySvgFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } z = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) if z != 0 && *(*int8)(unsafe.Pointer(z)) != 0 { - Xsqlite3_str_appendf(tls, x, __ccgo_ts+29561, libc.VaList(bp+8, z)) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+29707, libc.VaList(bp+8, z)) } goto _2 _2: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+29565, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+29711, 0) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -252465,6 +254285,7 @@ func _geopolyBBox(tls *libc.TLS, context uintptr, pPoly uintptr, aCoord uintptr, if !(aCoord == uintptr(0)) { goto _6 } + goto geopolyBboxFill geopolyBboxFill: ; pOut = Xsqlite3_realloc64(tls, p, libc.Uint64FromInt64(40)+libc.Uint64FromInt64(4)*libc.Uint64FromInt32(2)*uint64(libc.Int32FromInt32(4)-libc.Int32FromInt32(4))) @@ -252568,8 +254389,8 @@ func _geopolyBBoxStep(tls *libc.TLS, context uintptr, argc int32, argv uintptr) if pBBox == uintptr(0) { return } - if (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit == 0 { - (*TGeoBBox)(unsafe.Pointer(pBBox)).FisInit = int32(1) + if libc.AtomicLoadPInt32(pBBox) == 0 { + libc.AtomicStorePInt32(pBBox, int32(1)) libc.Xmemcpy(tls, pBBox+4, bp, libc.Uint64FromInt64(4)*libc.Uint64FromInt32(4)) } else { if *(*TRtreeValue)(unsafe.Pointer(bp)) < *(*TRtreeValue)(unsafe.Pointer(pBBox + 4)) { @@ -253196,6 +255017,7 @@ func _geopolyOverlap(tls *libc.TLS, p1 uintptr, p2 uintptr) (r int32) { } } } + goto geopolyOverlapDone geopolyOverlapDone: ; Xsqlite3_free(tls, p) @@ -253287,13 +255109,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(uint64(nDb))) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(uint64(nName))) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), uint64(uint64(nName))) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+28618, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+28764, uint64(6)) /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ pSql = Xsqlite3_str_new(tls, db) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+29578, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+29724, 0) (*TRtree)(unsafe.Pointer(pRtree)).FnAux = uint8(1) /* Add one for _shape */ (*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull = uint8(1) /* The _shape column is always not-null */ ii = int32(3) @@ -253302,13 +255124,13 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint break } (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+29600, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+29746, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28675, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28821, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) @@ -253316,7 +255138,7 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint v2 = Xsqlite3_declare_vtab(tls, db, zSql) rc = v2 if SQLITE_OK != v2 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } Xsqlite3_free(tls, zSql) @@ -253331,11 +255153,12 @@ func _geopolyInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint } rc = _rtreeSqlInit(tls, pRtree, db, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), isCreate) if rc != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto geopolyInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree return SQLITE_OK + goto geopolyInit_fail geopolyInit_fail: ; if rc == SQLITE_OK { @@ -253484,6 +255307,7 @@ func _geopolyFilter(tls *libc.TLS, pVtabCursor uintptr, idxNum int32, idxStr uin *(*int32)(unsafe.Pointer(bp + 8)) = _rtreeStepToLeaf(tls, pCsr) } } + goto geopoly_filter_end geopoly_filter_end: ; _nodeRelease(tls, pRtree, *(*uintptr)(unsafe.Pointer(bp))) @@ -253541,7 +255365,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iRowidTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(1) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 18009 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 18096 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iRowidTerm)*8))).Fomit = uint8(1) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(30) @@ -253551,7 +255375,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { } if iFuncTerm >= 0 { (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = idxNum - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 29604 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 29750 (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).FargvIndex = int32(1) (*(*Tsqlite3_index_constraint_usage)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraintUsage + uintptr(iFuncTerm)*8))).Fomit = uint8(0) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(300) @@ -253559,7 +255383,7 @@ func _geopolyBestIndex(tls *libc.TLS, tab uintptr, pIdxInfo uintptr) (r int32) { return SQLITE_OK } (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxNum = int32(4) - (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 29610 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 29756 (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(3e+06) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(100000) return SQLITE_OK @@ -253679,7 +255503,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR _geopolyBBox(tls, uintptr(0), *(*uintptr)(unsafe.Pointer(aData + 2*8)), bp+8+8, bp) if *(*int32)(unsafe.Pointer(bp)) != 0 { if *(*int32)(unsafe.Pointer(bp)) == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+29619, 0) + (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+29765, 0) } goto geopoly_update_end } @@ -253766,6 +255590,7 @@ func _geopolyUpdate(tls *libc.TLS, pVtab uintptr, nData int32, aData uintptr, pR *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, pUp) } } + goto geopoly_update_end geopoly_update_end: ; _rtreeRelease(tls, pRtree) @@ -253781,12 +255606,12 @@ geopoly_update_end: func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+29659) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+29805) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+29675) == 0 { + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+29821) == 0 { *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) @@ -253857,7 +255682,7 @@ func _sqlite3_geopoly_init(tls *libc.TLS, db uintptr) (r int32) { i++ } if rc == SQLITE_OK { - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+29852, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+29998, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) } return rc } @@ -253871,61 +255696,61 @@ var _aFunc = [12]struct { 0: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 29690, + FzName: __ccgo_ts + 29836, }, 1: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 29703, + FzName: __ccgo_ts + 29849, }, 2: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 29716, + FzName: __ccgo_ts + 29862, }, 3: { FnArg: int8(-int32(1)), FbPure: uint8(1), - FzName: __ccgo_ts + 29729, + FzName: __ccgo_ts + 29875, }, 4: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 29675, + FzName: __ccgo_ts + 29821, }, 5: { FnArg: int8(3), FbPure: uint8(1), - FzName: __ccgo_ts + 29741, + FzName: __ccgo_ts + 29887, }, 6: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 29659, + FzName: __ccgo_ts + 29805, }, 7: { FnArg: int8(1), - FzName: __ccgo_ts + 29764, + FzName: __ccgo_ts + 29910, }, 8: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 29778, + FzName: __ccgo_ts + 29924, }, 9: { FnArg: int8(7), FbPure: uint8(1), - FzName: __ccgo_ts + 29791, + FzName: __ccgo_ts + 29937, }, 10: { FnArg: int8(4), FbPure: uint8(1), - FzName: __ccgo_ts + 29805, + FzName: __ccgo_ts + 29951, }, 11: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 29821, + FzName: __ccgo_ts + 29967, }, } @@ -253951,7 +255776,7 @@ var _aAgg = [1]struct { FzName uintptr }{ 0: { - FzName: __ccgo_ts + 29833, + FzName: __ccgo_ts + 29979, }, } @@ -253976,20 +255801,20 @@ func _sqlite3RtreeInit(tls *libc.TLS, db uintptr) (r int32) { var rc, utf8 int32 _, _, _, _ = c, c1, rc, utf8 utf8 = int32(SQLITE_UTF8) - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+29860, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+30006, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+29870, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+30016, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+29881, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+30027, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { c = libc.UintptrFromInt32(RTREE_COORD_REAL32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+29604, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+29750, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) } if rc == SQLITE_OK { c1 = libc.UintptrFromInt32(RTREE_COORD_INT32) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+29892, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+30038, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) } if rc == SQLITE_OK { rc = _sqlite3_geopoly_init(tls, db) @@ -254091,7 +255916,7 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { Xsqlite3_result_error_nomem(tls, ctx) _rtreeMatchArgFree(tls, pBlob) } else { - Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+27161, __ccgo_fp(_rtreeMatchArgFree)) + Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+27307, __ccgo_fp(_rtreeMatchArgFree)) } } } @@ -255308,7 +257133,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt /* Figure out the size of the output */ nOut = _rbuDeltaOutputSize(tls, aDelta, nDelta) if nOut < 0 { - Xsqlite3_result_error(tls, context, __ccgo_ts+29902, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+30048, -int32(1)) return } aOut = Xsqlite3_malloc(tls, nOut+int32(1)) @@ -255318,7 +257143,7 @@ func _rbuFossilDeltaFunc(tls *libc.TLS, context uintptr, argc int32, argv uintpt nOut2 = _rbuDeltaApply(tls, aOrig, nOrig, aDelta, nDelta, aOut) if nOut2 != nOut { Xsqlite3_free(tls, aOut) - Xsqlite3_result_error(tls, context, __ccgo_ts+29902, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+30048, -int32(1)) } else { Xsqlite3_result_blob(tls, context, aOut, nOut, __ccgo_fp(Xsqlite3_free)) } @@ -255344,7 +257169,7 @@ func _prepareAndCollectError(tls *libc.TLS, db uintptr, ppStmt uintptr, pzErrmsg _ = rc rc = Xsqlite3_prepare_v2(tls, db, zSql, -int32(1), ppStmt, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) } return rc @@ -255367,7 +257192,7 @@ func _resetAndCollectError(tls *libc.TLS, pStmt uintptr, pzErrmsg uintptr) (r in _ = rc rc = Xsqlite3_reset(tls, pStmt) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) } return rc } @@ -255499,7 +257324,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { /* Free any SQLite statements used while processing the previous object */ _rbuObjIterClearStatements(tls, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+29923, uintptr(0), uintptr(0), p+64) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30069, uintptr(0), uintptr(0), p+64) } if rc == SQLITE_OK { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 { @@ -255509,6 +257334,7 @@ func _rbuObjIterNext(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { if rc != int32(SQLITE_ROW) { rc = _resetAndCollectError(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, p+64) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = uintptr(0) + (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = uintptr(0) } else { (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, 0) (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl = Xsqlite3_column_text(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpTblIter, int32(1)) @@ -255587,7 +257413,7 @@ func _rbuTargetNameFunc(tls *libc.TLS, pCtx uintptr, argc int32, argv uintptr) { Xsqlite3_result_text(tls, pCtx, zIn, -int32(1), libc.UintptrFromInt32(0)) } } else { - if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+27074, zIn, uint64(4)) == 0 { + if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+27220, zIn, uint64(4)) == 0 { i = int32(4) for { if !(int32(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(zIn + uintptr(i)))) <= int32('9')) { @@ -255624,13 +257450,13 @@ func _rbuObjIterFirst(tls *libc.TLS, p uintptr, pIter uintptr) (r int32) { _, _ = rc, v1 libc.Xmemset(tls, pIter, 0, uint64(192)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 30094 + v1 = __ccgo_ts + 30240 } else { - v1 = __ccgo_ts + 1658 + v1 = __ccgo_ts + 1672 } - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30135, libc.VaList(bp+8, v1))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30281, libc.VaList(bp+8, v1))) if rc == SQLITE_OK { - rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+30285) + rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+30431) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup = int32(1) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -255797,7 +257623,7 @@ func _rbuFinalize(tls *libc.TLS, p uintptr, pStmt uintptr) { rc = Xsqlite3_finalize(tls, pStmt) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && rc != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } @@ -255858,7 +257684,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu *(*[4]uintptr)(unsafe.Pointer(bp)) = [4]uintptr{} *(*int32)(unsafe.Pointer(peType)) = RBU_PK_NOTABLE *(*int32)(unsafe.Pointer(piPk)) = 0 - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30410, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30556, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK || Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0]) != int32(SQLITE_ROW) { /* Either an error, or no such table. */ goto rbuTableType_end @@ -255868,7 +257694,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } *(*int32)(unsafe.Pointer(piTnum)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[0], int32(1)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30529, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+1*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30675, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { goto rbuTableType_end } @@ -255876,7 +257702,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu zOrig = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(3)) zIdx = Xsqlite3_column_text(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(1)], int32(1)) if zOrig != 0 && zIdx != 0 && int32(*(*Tu8)(unsafe.Pointer(zOrig))) == int32('p') { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30550, libc.VaList(bp+40, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+2*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30696, libc.VaList(bp+40, zIdx))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)]) == int32(SQLITE_ROW) { *(*int32)(unsafe.Pointer(piPk)) = Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(2)], 0) @@ -255888,7 +257714,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu goto rbuTableType_end } } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30601, libc.VaList(bp+40, zTab))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+3*8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30747, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { for Xsqlite3_step(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)]) == int32(SQLITE_ROW) { if Xsqlite3_column_int(tls, (*(*[4]uintptr)(unsafe.Pointer(bp)))[int32(3)], int32(5)) > 0 { @@ -255898,6 +257724,7 @@ func _rbuTableType(tls *libc.TLS, p uintptr, zTab uintptr, peType uintptr, piTnu } *(*int32)(unsafe.Pointer(peType)) = int32(RBU_PK_NONE) } + goto rbuTableType_end rbuTableType_end: ; i = uint32(0) @@ -255931,7 +257758,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { bIndex = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { libc.Xmemcpy(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk, uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30622, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30768, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FnIndex = 0 for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -255944,7 +257771,7 @@ func _rbuObjIterCacheIndexedCols(tls *libc.TLS, p uintptr, pIter uintptr) { if bPartial != 0 { libc.Xmemset(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed, int32(0x01), uint64(1)*uint64((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)) } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30650, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30796, libc.VaList(bp+24, zIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) if iCid >= 0 { @@ -255997,7 +257824,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 _rbuTableType(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, pIter+72, bp+8, pIter+108) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == RBU_PK_NOTABLE { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+21230, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+21362, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc @@ -256008,7 +257835,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 /* Populate the azTblCol[] and nTblCol variables based on the columns ** of the input table. Ignore any input table columns that begin with ** "rbu_". */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30679, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30825, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { nCol = Xsqlite3_column_count(tls, *(*uintptr)(unsafe.Pointer(bp))) _rbuAllocateIterArrays(tls, p, pIter, nCol) @@ -256019,7 +257846,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 break } zName = Xsqlite3_column_name(tls, *(*uintptr)(unsafe.Pointer(bp)), i) - if Xsqlite3_strnicmp(tls, __ccgo_ts+30698, zName, int32(4)) != 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+30844, zName, int32(4)) != 0 { zCopy = _rbuStrndup(tls, zName, p+56) *(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr((*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol)*4)) = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol v3 = pIter + 16 @@ -256027,7 +257854,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 *(*int32)(unsafe.Pointer(v3))++ *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(v2)*8)) = zCopy } else { - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+30703, zName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+30849, zName) { bRbuRowid = int32(1) } } @@ -256041,17 +257868,17 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && bRbuRowid != libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) if bRbuRowid != 0 { - v4 = __ccgo_ts + 30713 + v4 = __ccgo_ts + 30859 } else { - v4 = __ccgo_ts + 30726 + v4 = __ccgo_ts + 30872 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30735, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30881, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) } /* Check that all non-HIDDEN columns in the destination table are also ** present in the input table. Populate the abTblPk[], azTblType[] and ** aiTblOrder[] arrays at the same time. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30764, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30910, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) } for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zName1 = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -256073,7 +257900,7 @@ func _rbuObjIterCacheTableInfo(tls *libc.TLS, p uintptr, pIter uintptr) (r int32 } if i == (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30786, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30932, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) } else { iPk = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) bNotNull = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) @@ -256112,15 +257939,15 @@ func _rbuObjIterGetCollist(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) var z, zList, zSep uintptr _, _, _, _ = i, z, zList, zSep zList = uintptr(0) - zSep = __ccgo_ts + 1658 + zSep = __ccgo_ts + 1672 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } z = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+30813, libc.VaList(bp+8, zList, zSep, z)) - zSep = __ccgo_ts + 16304 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30959, libc.VaList(bp+8, zList, zSep, z)) + zSep = __ccgo_ts + 16397 goto _1 _1: ; @@ -256145,7 +257972,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, _, _, _, _, _ = i, iPk, zCol, zRet, zSep iPk = int32(1) zRet = uintptr(0) - zSep = __ccgo_ts + 1658 + zSep = __ccgo_ts + 1672 for int32(1) != 0 { i = 0 for { @@ -256154,7 +257981,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, } if int32(*(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == iPk { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+30822, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+30968, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) zSep = zSeparator break } @@ -256202,21 +258029,21 @@ func _rbuVacuumTableStart(tls *libc.TLS, p uintptr, pIter uintptr, bRowid int32, *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) zRet = uintptr(0) if bRowid != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30835, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30981, libc.VaList(bp+16, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iMax = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+30867, libc.VaList(bp+16, iMax)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+31013, libc.VaList(bp+16, iMax)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1658, __ccgo_ts+16304, __ccgo_ts+30890) - zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+30896, __ccgo_ts+30903, __ccgo_ts+6415) - zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1658, __ccgo_ts+16304, __ccgo_ts+1658) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1672, __ccgo_ts+16397, __ccgo_ts+31036) + zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+31042, __ccgo_ts+31049, __ccgo_ts+6479) + zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1672, __ccgo_ts+16397, __ccgo_ts+1672) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30911, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31057, libc.VaList(bp+16, zSelect, zWrite, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zVal = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = _rbuMPrintf(tls, p, __ccgo_ts+30953, libc.VaList(bp+16, zList, zVal)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+31099, libc.VaList(bp+16, zList, zVal)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } @@ -256265,10 +258092,10 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { zVector = uintptr(0) zRet = uintptr(0) bFailed = 0 - zSep = __ccgo_ts + 1658 + zSep = __ccgo_ts + 1672 iCol = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30650, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30796, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(4)) @@ -256290,15 +258117,15 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { - zCol = __ccgo_ts + 30973 + zCol = __ccgo_ts + 31119 } } else { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) } - zLhs = _rbuMPrintf(tls, p, __ccgo_ts+30981, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+31002, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) - zSelect = _rbuMPrintf(tls, p, __ccgo_ts+31038, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) - zSep = __ccgo_ts + 16304 + zLhs = _rbuMPrintf(tls, p, __ccgo_ts+31127, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+31148, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) + zSelect = _rbuMPrintf(tls, p, __ccgo_ts+31184, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) + zSep = __ccgo_ts + 16397 iCol++ } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) @@ -256307,9 +258134,9 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31065, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31211, libc.VaList(bp+24, zSelect, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zOrder))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - zSep = __ccgo_ts + 1658 + zSep = __ccgo_ts + 1672 iCol = 0 for { if !(iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol) { @@ -256324,19 +258151,20 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { break } } - zVector = _rbuMPrintf(tls, p, __ccgo_ts+31113, libc.VaList(bp+24, zVector, zSep, zQuoted)) - zSep = __ccgo_ts + 16304 + zVector = _rbuMPrintf(tls, p, __ccgo_ts+31259, libc.VaList(bp+24, zVector, zSep, zQuoted)) + zSep = __ccgo_ts + 16397 goto _2 _2: ; iCol++ } if !(bFailed != 0) { - zRet = _rbuMPrintf(tls, p, __ccgo_ts+31120, libc.VaList(bp+24, zLhs, zVector)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+31266, libc.VaList(bp+24, zLhs, zVector)) } } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } + goto index_start_out index_start_out: ; Xsqlite3_free(tls, zOrder) @@ -256385,11 +258213,11 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zImpPK = uintptr(0) /* String to return via *pzImposterPK */ zWhere = uintptr(0) /* String to return via *pzWhere */ nBind = 0 /* Value to return via *pnBind */ - zCom = __ccgo_ts + 1658 /* Set to ", " later on */ - zAnd = __ccgo_ts + 1658 /* Set to " AND " later on */ + zCom = __ccgo_ts + 1672 /* Set to ", " later on */ + zAnd = __ccgo_ts + 1672 /* Set to " AND " later on */ *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_xinfo = ? */ if rc == SQLITE_OK { - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30650, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30796, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx))) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -256398,8 +258226,8 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = uintptr(0) if iCid == -int32(2) { iSeq = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+31132, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) - zType = __ccgo_ts + 1658 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+31278, libc.VaList(bp+16, zRet, zCom, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FnSpan, (*(*TRbuSpan)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaIdxCol + uintptr(iSeq)*16))).FzSpan, zCollate)) + zType = __ccgo_ts + 1672 } else { if iCid < 0 { /* An integer primary key. If the table has an explicit IPK, use @@ -256418,9 +258246,9 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) } else { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - zCol = __ccgo_ts + 30973 + zCol = __ccgo_ts + 31119 } else { - zCol = __ccgo_ts + 30703 + zCol = __ccgo_ts + 30849 } } zType = __ccgo_ts + 1146 @@ -256428,24 +258256,24 @@ func _rbuObjIterGetIndexCols(tls *libc.TLS, p uintptr, pIter uintptr, pzImposter zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) zType = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)) } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+31154, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+31300, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) } if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbUnique == 0 || Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(5)) != 0 { if bDesc != 0 { - v2 = __ccgo_ts + 30890 + v2 = __ccgo_ts + 31036 } else { - v2 = __ccgo_ts + 1658 + v2 = __ccgo_ts + 1672 } zOrder = v2 - zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+31174, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) + zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+31320, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) } - zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+31195, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) - zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+31228, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) + zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+31341, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) + zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+31374, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) if zRet == uintptr(0) || zImpPK == uintptr(0) || zImpCols == uintptr(0) || zWhere == uintptr(0) { rc = int32(SQLITE_NOMEM) } - zCom = __ccgo_ts + 16304 - zAnd = __ccgo_ts + 23339 + zCom = __ccgo_ts + 16397 + zAnd = __ccgo_ts + 23484 nBind++ } rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -256491,7 +258319,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr _, _, _, _ = i, zCol, zList, zS zList = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zS = __ccgo_ts + 1658 + zS = __ccgo_ts + 1672 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -256499,11 +258327,11 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed + uintptr(i))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)) - zList = Xsqlite3_mprintf(tls, __ccgo_ts+31252, libc.VaList(bp+8, zList, zS, zObj, zCol)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+31398, libc.VaList(bp+8, zList, zS, zObj, zCol)) } else { - zList = Xsqlite3_mprintf(tls, __ccgo_ts+31264, libc.VaList(bp+8, zList, zS)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+31410, libc.VaList(bp+8, zList, zS)) } - zS = __ccgo_ts + 16304 + zS = __ccgo_ts + 16397 if zList == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) break @@ -256515,7 +258343,7 @@ func _rbuObjIterGetOldlist(tls *libc.TLS, p uintptr, pIter uintptr, zObj uintptr } /* For a table with implicit rowids, append "old._rowid_" to the list. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+31273, libc.VaList(bp+8, zList, zObj)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+31419, libc.VaList(bp+8, zList, zObj)) } } return zList @@ -256541,27 +258369,27 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _ = i, i1, zCol, zList, zSep, zSep1 zList = uintptr(0) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zList = _rbuMPrintf(tls, p, __ccgo_ts+31288, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) + zList = _rbuMPrintf(tls, p, __ccgo_ts+31434, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - zSep = __ccgo_ts + 1658 + zSep = __ccgo_ts + 1672 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 { - zList = _rbuMPrintf(tls, p, __ccgo_ts+31302, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) - zSep = __ccgo_ts + 23339 + zList = _rbuMPrintf(tls, p, __ccgo_ts+31448, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) + zSep = __ccgo_ts + 23484 } goto _1 _1: ; i++ } - zList = _rbuMPrintf(tls, p, __ccgo_ts+31314, libc.VaList(bp+8, zList)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+31460, libc.VaList(bp+8, zList)) } else { - zSep1 = __ccgo_ts + 1658 + zSep1 = __ccgo_ts + 1672 i1 = 0 for { if !(i1 < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -256569,8 +258397,8 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i1))) != 0 { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i1)*8)) - zList = _rbuMPrintf(tls, p, __ccgo_ts+31364, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) - zSep1 = __ccgo_ts + 23339 + zList = _rbuMPrintf(tls, p, __ccgo_ts+31510, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) + zSep1 = __ccgo_ts + 23484 } goto _2 _2: @@ -256593,7 +258421,7 @@ func _rbuObjIterGetWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { // */ func _rbuBadControlError(tls *libc.TLS, p uintptr) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31377, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+31523, 0) } // C documentation @@ -256627,7 +258455,7 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt if int32(libc.Xstrlen(tls, zMask)) != (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { _rbuBadControlError(tls, p) } else { - zSep = __ccgo_ts + 1658 + zSep = __ccgo_ts + 1672 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -256635,16 +258463,16 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt } c = *(*int8)(unsafe.Pointer(zMask + uintptr(*(*int32)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FaiSrcOrder + uintptr(i)*4))))) if int32(int32(c)) == int32('x') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+31364, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 16304 + zList = _rbuMPrintf(tls, p, __ccgo_ts+31510, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 16397 } else { if int32(int32(c)) == int32('d') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+31403, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 16304 + zList = _rbuMPrintf(tls, p, __ccgo_ts+31549, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 16397 } else { if int32(int32(c)) == int32('f') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+31433, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 16304 + zList = _rbuMPrintf(tls, p, __ccgo_ts+31579, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 16397 } } } @@ -256728,16 +258556,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { _, _, _, _, _, _, _ = z, zCol, zDesc, zIdx, zOrig, zSep, v1 z = uintptr(0) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zSep = __ccgo_ts + 31470 + zSep = __ccgo_ts + 31616 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* PRAGMA index_list = (pIter->zTbl) */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA index_xinfo = */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30622, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30768, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zOrig = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(3)) - if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+17897) == 0 { + if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+17984) == 0 { zIdx = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30650, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30796, libc.VaList(bp+24, zIdx))) } break } @@ -256748,16 +258576,16 @@ func _rbuWithoutRowidPK(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { /* int iCid = sqlite3_column_int(pXInfo, 0); */ zCol = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(2)) if Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) != 0 { - v1 = __ccgo_ts + 30890 + v1 = __ccgo_ts + 31036 } else { - v1 = __ccgo_ts + 1658 + v1 = __ccgo_ts + 1672 } zDesc = v1 - z = _rbuMPrintf(tls, p, __ccgo_ts+31483, libc.VaList(bp+24, z, zSep, zCol, zDesc)) - zSep = __ccgo_ts + 16304 + z = _rbuMPrintf(tls, p, __ccgo_ts+31629, libc.VaList(bp+24, z, zSep, zCol, zDesc)) + zSep = __ccgo_ts + 16397 } } - z = _rbuMPrintf(tls, p, __ccgo_ts+31494, libc.VaList(bp+24, z)) + z = _rbuMPrintf(tls, p, __ccgo_ts+31640, libc.VaList(bp+24, z)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } return z @@ -256797,13 +258625,13 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* SELECT name ... WHERE rootpage = $tnum */ zIdx = uintptr(0) /* Name of PK index */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) /* PRAGMA main.index_xinfo = $zIdx */ - zComma = __ccgo_ts + 1658 + zComma = __ccgo_ts + 1672 zCols = uintptr(0) /* Used to build up list of table cols */ zPk = uintptr(0) /* Used to build up table PK declaration */ /* Figure out the name of the primary key index for the current table. ** This is needed for the argument to "PRAGMA index_xinfo". Set ** zIdx to point to a nul-terminated string containing this name. */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+31498) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+31644) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), tnum) if int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -256811,7 +258639,7 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { } } if zIdx != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30650, libc.VaList(bp+24, zIdx))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+30796, libc.VaList(bp+24, zIdx))) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { @@ -256820,21 +258648,21 @@ func _rbuCreateImposterTable2(tls *libc.TLS, p uintptr, pIter uintptr) { iCid = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(1)) bDesc = Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(3)) zCollate = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), int32(4)) - zCols = _rbuMPrintf(tls, p, __ccgo_ts+31548, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+31694, libc.VaList(bp+24, zCols, zComma, iCid, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCid)*8)), zCollate)) if bDesc != 0 { - v1 = __ccgo_ts + 30890 + v1 = __ccgo_ts + 31036 } else { - v1 = __ccgo_ts + 1658 + v1 = __ccgo_ts + 1672 } - zPk = _rbuMPrintf(tls, p, __ccgo_ts+31570, libc.VaList(bp+24, zPk, zComma, iCid, v1)) - zComma = __ccgo_ts + 16304 + zPk = _rbuMPrintf(tls, p, __ccgo_ts+31716, libc.VaList(bp+24, zPk, zComma, iCid, v1)) + zComma = __ccgo_ts + 16397 } } - zCols = _rbuMPrintf(tls, p, __ccgo_ts+31580, libc.VaList(bp+24, zCols)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+31726, libc.VaList(bp+24, zCols)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7894, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31595, libc.VaList(bp+24, zCols, zPk)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7894, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7958, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31741, libc.VaList(bp+24, zCols, zPk)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7958, 0, 0)) } } @@ -256869,30 +258697,30 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { _, _, _, _, _, _, _, _, _ = iCol, tnum, zCol, zComma, zPk, zPk1, zSql, v2, v3 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { tnum = (*TRbuObjIter)(unsafe.Pointer(pIter)).FiTnum - zComma = __ccgo_ts + 1658 + zComma = __ccgo_ts + 1672 zSql = uintptr(0) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7894, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7958, 0, int32(1))) iCol = 0 for { if !((*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } - zPk = __ccgo_ts + 1658 + zPk = __ccgo_ts + 1672 zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCol)*8)) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7894, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_table_column_metadata(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7958, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zCol, uintptr(0), bp, uintptr(0), uintptr(0), uintptr(0)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_IPK) && *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(iCol))) != 0 { /* If the target table column is an "INTEGER PRIMARY KEY", add ** "PRIMARY KEY" to the imposter table column declaration. */ - zPk = __ccgo_ts + 31657 + zPk = __ccgo_ts + 31803 } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iCol))) != 0 { - v2 = __ccgo_ts + 31670 + v2 = __ccgo_ts + 31816 } else { - v2 = __ccgo_ts + 1658 + v2 = __ccgo_ts + 1672 } - zSql = _rbuMPrintf(tls, p, __ccgo_ts+31680, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) - zComma = __ccgo_ts + 16304 + zSql = _rbuMPrintf(tls, p, __ccgo_ts+31826, libc.VaList(bp+16, zSql, zComma, zCol, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblType + uintptr(iCol)*8)), zPk, *(*uintptr)(unsafe.Pointer(bp)), v2)) + zComma = __ccgo_ts + 16397 goto _1 _1: ; @@ -256901,17 +258729,17 @@ func _rbuCreateImposterTable(tls *libc.TLS, p uintptr, pIter uintptr) { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { zPk1 = _rbuWithoutRowidPK(tls, p, pIter) if zPk1 != 0 { - zSql = _rbuMPrintf(tls, p, __ccgo_ts+31707, libc.VaList(bp+16, zSql, zPk1)) + zSql = _rbuMPrintf(tls, p, __ccgo_ts+31853, libc.VaList(bp+16, zSql, zPk1)) } } - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7894, int32(1), tnum)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7958, int32(1), tnum)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { - v3 = __ccgo_ts + 31714 + v3 = __ccgo_ts + 31860 } else { - v3 = __ccgo_ts + 1658 + v3 = __ccgo_ts + 1672 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31729, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7894, 0, 0)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31875, libc.VaList(bp+16, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSql, v3)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7958, 0, 0)) } } @@ -256937,7 +258765,7 @@ func _rbuObjIterPrepareTmpInsert(tls *libc.TLS, p uintptr, pIter uintptr, zColli bRbuRowid = libc.BoolInt32((*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE)) zBind = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1)+bRbuRowid) if zBind != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31761, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+152, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31907, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) } } @@ -256983,7 +258811,7 @@ func _rbuObjIterGetIndexWhere(tls *libc.TLS, p uintptr, pIter uintptr) (r uintpt *(*int32)(unsafe.Pointer(bp + 8)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc zRet = uintptr(0) if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+31818) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+31964) } if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp + 8)) = Xsqlite3_bind_text(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1), (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx, -int32(1), libc.UintptrFromInt32(0)) @@ -257152,7 +258980,7 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zIdx = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx zLimit = uintptr(0) if nOffset != 0 { - zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+31884, libc.VaList(bp+40, nOffset)) + zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+32030, libc.VaList(bp+40, nOffset)) if !(zLimit != 0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } @@ -257169,18 +258997,18 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zCollist = _rbuObjIterGetIndexCols(tls, p, pIter, bp, bp+8, bp+16, bp+24) zBind = _rbuObjIterGetBindlist(tls, p, *(*int32)(unsafe.Pointer(bp + 24))) /* Create the imposter table used to write to this index. */ - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7894, 0, int32(1))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7894, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31904, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7894, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7958, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7958, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32050, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp)), *(*uintptr)(unsafe.Pointer(bp + 8)))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7958, 0, 0)) /* Create the statement to insert index entries */ (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = *(*int32)(unsafe.Pointer(bp + 24)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+31969, libc.VaList(bp+40, zTbl, zBind))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+32115, libc.VaList(bp+40, zTbl, zBind))) } /* And to delete index entries */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+32005, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+32151, libc.VaList(bp+40, zTbl, *(*uintptr)(unsafe.Pointer(bp + 16))))) } /* Create the SELECT statement to read keys in sorted order */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -257195,26 +259023,26 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } if zStart != 0 { if zPart != 0 { - v2 = __ccgo_ts + 32039 + v2 = __ccgo_ts + 32185 } else { - v2 = __ccgo_ts + 32043 + v2 = __ccgo_ts + 32189 } v1 = v2 } else { - v1 = __ccgo_ts + 1658 + v1 = __ccgo_ts + 1672 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+32049, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+32195, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) Xsqlite3_free(tls, zStart) } else { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+32110, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+32256, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) } else { if zPart != 0 { - v3 = __ccgo_ts + 32039 + v3 = __ccgo_ts + 32185 } else { - v3 = __ccgo_ts + 32043 + v3 = __ccgo_ts + 32189 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+32171, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+32317, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v3, zCollist, zLimit)) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -257233,62 +259061,62 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 zTbl1 = (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl /* Imposter table name */ zBindings = _rbuObjIterGetBindlist(tls, p, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+bRbuRowid) zWhere1 = _rbuObjIterGetWhere(tls, p, pIter) - zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+7905) - zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+7901) + zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+7969) + zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+7965) zCollist = _rbuObjIterGetCollist(tls, p, pIter) (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol = (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol /* Create the imposter table or tables (if required). */ _rbuCreateImposterTable(tls, p, pIter) _rbuCreateImposterTable2(tls, p, pIter) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_VTAB) { - v4 = __ccgo_ts + 1658 + v4 = __ccgo_ts + 1672 } else { - v4 = __ccgo_ts + 32330 + v4 = __ccgo_ts + 32476 } zWrite = v4 /* Create the INSERT statement to write to the target PK b-tree */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if bRbuRowid != 0 { - v5 = __ccgo_ts + 32339 + v5 = __ccgo_ts + 32485 } else { - v5 = __ccgo_ts + 1658 + v5 = __ccgo_ts + 1672 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+32349, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+32495, libc.VaList(bp+40, zWrite, zTbl1, zCollist, v5, zBindings))) } /* Create the DELETE statement to write to the target PK b-tree. ** Because it only performs INSERT operations, this is not required for ** an rbu vacuum handle. */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+32385, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+144, pz, Xsqlite3_mprintf(tls, __ccgo_ts+32531, libc.VaList(bp+40, zWrite, zTbl1, zWhere1))) } if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - zRbuRowid = __ccgo_ts + 1658 + zRbuRowid = __ccgo_ts + 1672 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zRbuRowid = __ccgo_ts + 32413 + zRbuRowid = __ccgo_ts + 32559 } /* Create the rbu_tmp_xxx table and the triggers to populate it. */ if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) { - v6 = __ccgo_ts + 32425 + v6 = __ccgo_ts + 32571 } else { - v6 = __ccgo_ts + 1658 + v6 = __ccgo_ts + 1672 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32442, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32518, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32588, libc.VaList(bp+40, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v6, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32664, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32817, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32963, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) } _rbuObjIterPrepareTmpInsert(tls, p, pIter, zCollist, zRbuRowid) } /* Create the SELECT statement to read keys from data_xxx */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - zRbuRowid1 = __ccgo_ts + 1658 + zRbuRowid1 = __ccgo_ts + 1672 zStart1 = uintptr(0) zOrder = uintptr(0) if bRbuRowid != 0 { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v7 = __ccgo_ts + 32916 + v7 = __ccgo_ts + 33062 } else { - v7 = __ccgo_ts + 32926 + v7 = __ccgo_ts + 33072 } zRbuRowid1 = v7 } @@ -257301,28 +259129,28 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } } if bRbuRowid != 0 { - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+30973, 0) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+31119, 0) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1658, __ccgo_ts+16304, __ccgo_ts+1658) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1672, __ccgo_ts+16397, __ccgo_ts+1672) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v8 = __ccgo_ts + 32937 + v8 = __ccgo_ts + 33083 } else { - v8 = __ccgo_ts + 1658 + v8 = __ccgo_ts + 1672 } if zStart1 != 0 { v9 = zStart1 } else { - v9 = __ccgo_ts + 1658 + v9 = __ccgo_ts + 1672 } if zOrder != 0 { - v10 = __ccgo_ts + 24533 + v10 = __ccgo_ts + 24678 } else { - v10 = __ccgo_ts + 1658 + v10 = __ccgo_ts + 1672 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+32943, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+33089, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) } Xsqlite3_free(tls, zStart1) Xsqlite3_free(tls, zOrder) @@ -257408,11 +259236,11 @@ func _rbuGetUpdateStmt(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintptr, p (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpNext = (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate (*TRbuObjIter)(unsafe.Pointer(pIter)).FpRbuUpdate = pUp if zSet != 0 { - zPrefix = __ccgo_ts + 1658 + zPrefix = __ccgo_ts + 1672 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { - zPrefix = __ccgo_ts + 32330 + zPrefix = __ccgo_ts + 32476 } - zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+32991, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) + zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+33137, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pUp+8, p+64, zUpdate) *(*uintptr)(unsafe.Pointer(ppStmt)) = (*TRbuUpdateStmt)(unsafe.Pointer(pUp)).FpUpdate } @@ -257439,7 +259267,7 @@ func _rbuOpenDbhandle(tls *libc.TLS, p uintptr, zName uintptr, bUseVfs int32) (r } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_open_v2(tls, zName, bp, flags, v1) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) Xsqlite3_close(tls, *(*uintptr)(unsafe.Pointer(bp))) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) } @@ -257486,7 +259314,7 @@ func _rbuLoadState(tls *libc.TLS, p uintptr) (r uintptr) { if pRet == uintptr(0) { return uintptr(0) } - *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+33021, libc.VaList(bp+24, p+48))) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+33167, libc.VaList(bp+24, p+48))) for *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { switch Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) { case int32(RBU_STATE_STAGE): @@ -257545,27 +259373,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu = _rbuOpenDbhandle(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, int32(1)) (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain = dbMain if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+7894, int32(SQLITE_FCNTL_RBUCNT), p) + Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+7958, int32(SQLITE_FCNTL_RBUCNT), p) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState == uintptr(0) { - zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+7894) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+33051, libc.VaList(bp+8, zFile, zFile)) + zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+7958) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+33197, libc.VaList(bp+8, zFile, zFile)) } } /* If using separate RBU and state databases, attach the state database to ** the RBU db handle now. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState != 0 { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33079, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) - libc.Xmemcpy(tls, p+48, __ccgo_ts+15162, uint64(4)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33225, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+15255, uint64(4)) } else { - libc.Xmemcpy(tls, p+48, __ccgo_ts+7894, uint64(4)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+7958, uint64(4)) } /* If it has not already been created, create the rbu_state table */ - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33097, libc.VaList(bp+8, p+48)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33243, libc.VaList(bp+8, p+48)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { bOpen = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FnRbu = 0 (*Tsqlite3rbu)(unsafe.Pointer(p)).FpRbuFd = uintptr(0) - rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+7894, int32(SQLITE_FCNTL_RBUCNT), p) + rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+7958, int32(SQLITE_FCNTL_RBUCNT), p) if rc != int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc } @@ -257598,10 +259426,10 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) return } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33163, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33309, 0) } else { zExtra = uintptr(0) - if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+25922, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { + if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+26045, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { zExtra = (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu + 5 for *(*int8)(unsafe.Pointer(zExtra)) != 0 { v1 = zExtra @@ -257615,16 +259443,16 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if zExtra == uintptr(0) { - v2 = __ccgo_ts + 1658 + v2 = __ccgo_ts + 1672 } else { - v2 = __ccgo_ts + 33195 + v2 = __ccgo_ts + 33341 } if zExtra == uintptr(0) { - v3 = __ccgo_ts + 1658 + v3 = __ccgo_ts + 1672 } else { v3 = zExtra } - zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+33197, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+7894), v2, v3)) + zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+33343, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+7958), v2, v3)) if zTarget == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) return @@ -257635,27 +259463,27 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33229, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33375, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTmpInsertFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33244, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33390, int32(2), int32(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rbuFossilDeltaFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33261, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33407, -int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuTargetNameFunc), uintptr(0), uintptr(0)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7894, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7958, int32(SQLITE_FCNTL_RBU), p) } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33277, 0) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33423, 0) /* Mark the database file just opened as an RBU target database. If ** this call returns SQLITE_NOTFOUND, then the RBU vfs is not in use. ** This is an error. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7894, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+7958, int32(SQLITE_FCNTL_RBU), p) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33305, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33451, 0) } } @@ -257705,7 +259533,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxShmMap})))(tls, pDb, 0, libc.Int32FromInt32(32)*libc.Int32FromInt32(1024), 0, bp) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - iRet = int64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))<= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+34305, zState+uintptr(n-int32(7)), uint64(7)) { + if n >= int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+34451, zState+uintptr(n-int32(7)), uint64(7)) { return _rbuMisuseError(tls) } } @@ -258925,7 +260753,7 @@ func _rbuEditErrmsg(tls *libc.TLS, p uintptr) { if !(uint64(uint64(i)) < nErrmsg-uint64(8)) { break } - if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+32330, uint64(8)) == 0 { + if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+32476, uint64(8)) == 0 { nDel = int32(8) for int32(*(*int8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(uint32(nDel)))))) >= int32('0') && int32(*(*int8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+uint32(uint32(nDel)))))) <= int32('9') { nDel++ @@ -258953,7 +260781,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { if p != 0 { /* Commit the transaction to the *-oal file. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+16208, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+16301, uintptr(0), uintptr(0), p+64) } /* Sync the db file if currently doing an incremental checkpoint */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { @@ -258962,7 +260790,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { } _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+16208, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+16301, uintptr(0), uintptr(0), p+64) } /* Close any open statement handles. */ _rbuObjIterFinalize(tls, p+80) @@ -258972,7 +260800,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { ** specifying the current target and state databases to start a new ** vacuum from scratch. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu != 0 { - rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+34313, uintptr(0), uintptr(0), uintptr(0)) + rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+34459, uintptr(0), uintptr(0), uintptr(0)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_DONE) && rc2 != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc2 } @@ -259073,7 +260901,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { } if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+16208, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+16301, uintptr(0), uintptr(0), uintptr(0)) } } /* Sync the db file */ @@ -259086,19 +260914,19 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { rc = (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+16208, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+16301, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 16193 + v1 = __ccgo_ts + 16286 } else { - v1 = __ccgo_ts + 34265 + v1 = __ccgo_ts + 34411 } zBegin = v1 rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, zBegin, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+34265, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+34411, uintptr(0), uintptr(0), uintptr(0)) } } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -259664,7 +261492,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r rc = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xControl})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal, int32(SQLITE_FCNTL_ZIPVFS), bp) if rc == SQLITE_OK { rc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+34340, 0) + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+34486, 0) } else { if rc == int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpTargetFd = p @@ -259690,7 +261518,7 @@ func _rbuVfsFileControl(tls *libc.TLS, pFile uintptr, op int32, pArg uintptr) (r if rc == SQLITE_OK && op == int32(SQLITE_FCNTL_VFSNAME) { pRbuVfs = (*Trbu_file)(unsafe.Pointer(p)).FpRbuVfs zIn = *(*uintptr)(unsafe.Pointer(pArg)) - zOut = Xsqlite3_mprintf(tls, __ccgo_ts+34363, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) + zOut = Xsqlite3_mprintf(tls, __ccgo_ts+34509, libc.VaList(bp+16, (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).Fbase.FzName, zIn)) *(*uintptr)(unsafe.Pointer(pArg)) = zOut if zOut == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -259885,7 +261713,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag if pDb != 0 { if (*Trbu_file)(unsafe.Pointer(pDb)).FpRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FeStage == int32(RBU_STAGE_OAL) { if (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FzTarget == uintptr(0) { - zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+7894) + zOpen = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(pDb)).FpRbu)).FdbRbu, __ccgo_ts+7958) zOpen = Xsqlite3_filename_wal(tls, zOpen) } nOpen = libc.Xstrlen(tls, zOpen) @@ -259899,7 +261727,7 @@ func _rbuVfsOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, pFile uintptr, flag } else { (*Trbu_file)(unsafe.Pointer(pFd)).FpRbu = (*Trbu_vfs)(unsafe.Pointer(pRbuVfs)).FpRbu } - if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+34374, 0) != 0 { + if oflags&int32(SQLITE_OPEN_MAIN_DB) != 0 && Xsqlite3_uri_boolean(tls, zName, __ccgo_ts+34520, 0) != 0 { oflags = libc.Int32FromInt32(SQLITE_OPEN_TEMP_DB) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_EXCLUSIVE) | libc.Int32FromInt32(SQLITE_OPEN_DELETEONCLOSE) zOpen = uintptr(0) } @@ -260452,7 +262280,7 @@ func _statConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uint _sqlite3TokenInit(tls, bp, *(*uintptr)(unsafe.Pointer(argv + 3*8))) iDb = _sqlite3FindDb(tls, db, bp) if iDb < 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+13500, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+13625, libc.VaList(bp+24, *(*uintptr)(unsafe.Pointer(argv + 3*8)))) return int32(SQLITE_ERROR) } } else { @@ -260842,6 +262670,7 @@ func _statDecodePage(tls *libc.TLS, pBt uintptr, p uintptr) (r int32) { } } return SQLITE_OK + goto statPageIsCorrupt statPageIsCorrupt: ; (*TStatPage)(unsafe.Pointer(p)).Fflags = uint8(0) @@ -260932,6 +262761,7 @@ func _statNext(tls *libc.TLS, pCursor uintptr) (r int32) { pPager = _sqlite3BtreePager(tls, pBt) Xsqlite3_free(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath) (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = uintptr(0) + goto statNextRestart statNextRestart: ; if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage < 0 { @@ -260949,7 +262779,7 @@ statNextRestart: (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiPgno = iRoot (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v1 = Xsqlite3_mprintf(tls, __ccgo_ts+34385, 0) + v1 = Xsqlite3_mprintf(tls, __ccgo_ts+34531, 0) z = v1 (*(*TStatPage)(unsafe.Pointer(pCsr + 24))).FzPath = v1 if z == uintptr(0) { @@ -260987,8 +262817,8 @@ statNextRestart: if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { (*TStatCursor)(unsafe.Pointer(pCsr)).FzName = Xsqlite3_column_text(tls, (*TStatCursor)(unsafe.Pointer(pCsr)).FpStmt, 0) (*TStatCursor)(unsafe.Pointer(pCsr)).FiPageno = *(*Tu32)(unsafe.Pointer((*TStatCell)(unsafe.Pointer(pCell)).FaOvfl + uintptr(iOvfl)*4)) - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 34387 - v2 = Xsqlite3_mprintf(tls, __ccgo_ts+34396, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 34533 + v2 = Xsqlite3_mprintf(tls, __ccgo_ts+34542, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell, iOvfl)) z = v2 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v2 if z == uintptr(0) { @@ -261017,7 +262847,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage++ if (*TStatCursor)(unsafe.Pointer(pCsr)).FiPage >= int32(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(222551)) + return _sqlite3CorruptError(tls, int32(224206)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -261028,7 +262858,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnPage++ (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiCell = 0 if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v4 = Xsqlite3_mprintf(tls, __ccgo_ts+34408, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) + v4 = Xsqlite3_mprintf(tls, __ccgo_ts+34554, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) z = v4 (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FzPath = v4 if z == uintptr(0) { @@ -261051,13 +262881,13 @@ statNextRestart: case int32(0x05): /* table internal */ fallthrough case int32(0x02): /* index internal */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 34416 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 34562 case int32(0x0D): /* table leaf */ fallthrough case int32(0x0A): /* index leaf */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 34425 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 34571 default: - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 34430 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 34576 break } *(*int32)(unsafe.Pointer(pCsr + 2108)) += (*TStatPage)(unsafe.Pointer(p1)).FnCell @@ -261066,7 +262896,7 @@ statNextRestart: (*TStatCursor)(unsafe.Pointer(pCsr)).FnMxPayload = (*TStatPage)(unsafe.Pointer(p1)).FnMxPayload } if !((*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg != 0) { - v5 = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) + v5 = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) z = v5 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v5 if z == uintptr(0) { @@ -261155,12 +262985,12 @@ func _statFilter(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uintptr, a (*TStatCursor)(unsafe.Pointer(pCsr)).FisAgg = uint8(0) } pSql = Xsqlite3_str_new(tls, (*TStatTable)(unsafe.Pointer(pTab)).Fdb) - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+34440, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+34586, libc.VaList(bp+8, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer((*TStatTable)(unsafe.Pointer(pTab)).Fdb)).FaDb + uintptr((*TStatCursor)(unsafe.Pointer(pCsr)).FiDb)*32))).FzDbSName)) if zName != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+34595, libc.VaList(bp+8, zName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+34741, libc.VaList(bp+8, zName)) } if idxNum&int32(0x08) != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+34609, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+34755, 0) } zSql = Xsqlite3_str_finish(tls, pSql) if zSql == uintptr(0) { @@ -261237,7 +263067,7 @@ func _statRowid(tls *libc.TLS, pCursor uintptr, pRowid uintptr) (r int32) { // ** Invoke this routine to register the "dbstat" virtual table module // */ func _sqlite3DbstatRegister(tls *libc.TLS, db uintptr) (r int32) { - return Xsqlite3_create_module(tls, db, __ccgo_ts+34624, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) + return Xsqlite3_create_module(tls, db, __ccgo_ts+34770, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) } var _dbstat_module = Tsqlite3_module{} @@ -262508,20 +264338,20 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, *(*uintptr)(unsafe.Pointer(pazDflt)) = uintptr(0) } nThis = _sqlite3Strlen30(tls, zThis) - if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+12891, zThis) { + if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+13016, zThis) { rc = Xsqlite3_table_column_metadata(tls, db, zDb, zThis, uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { /* For sqlite_stat1, pretend that (tbl,idx) is the PRIMARY KEY. */ - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+34631, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+34777, 0) } else { if rc == int32(SQLITE_ERROR) { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1658, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1672, 0) } else { return rc } } } else { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+34752, libc.VaList(bp+16, zDb, zThis)) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+34898, libc.VaList(bp+16, zDb, zThis)) } if !(zPragma != 0) { return int32(SQLITE_NOMEM) @@ -262545,7 +264375,7 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, bRowid = 0 } nDbCol += bRowid - nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+30973)) + nByte = Tsqlite3_int64(uint64(nByte) + libc.Xstrlen(tls, __ccgo_ts+31119)) rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp))) if rc == SQLITE_OK { nByte = Tsqlite3_int64(uint64(nByte) + uint64(uint64(nDbCol))*(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(2)+libc.Uint64FromInt64(1)+libc.Uint64FromInt32(1)+libc.Uint64FromInt32(1))) @@ -262569,8 +264399,8 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, } i = 0 if bRowid != 0 { - nName = libc.Xstrlen(tls, __ccgo_ts+30973) - libc.Xmemcpy(tls, pAlloc, __ccgo_ts+30973, nName+uint64(1)) + nName = libc.Xstrlen(tls, __ccgo_ts+31119) + libc.Xmemcpy(tls, pAlloc, __ccgo_ts+31119, nName+uint64(1)) *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)) = pAlloc pAlloc += uintptr(nName + uint64(1)) *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) = uint8(1) @@ -262662,7 +264492,7 @@ func _sessionInitTable(tls *libc.TLS, pSession uintptr, pTab uintptr, db uintptr ; i++ } - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+12891, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+13016, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 = int32(1) } if pSession != 0 && (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize != 0 { @@ -262951,10 +264781,10 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin _, _, _, _ = ii, zDflt, zSep, v2 *(*TSessionBuffer)(unsafe.Pointer(bp)) = TSessionBuffer{} *(*int32)(unsafe.Pointer(bp + 16)) = SQLITE_OK - zSep = __ccgo_ts + 12511 + zSep = __ccgo_ts + 12636 ii = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+34781, 0) + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+34927, 0) ii = 0 for { if !(ii < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol) { @@ -262963,11 +264793,11 @@ func _sessionPrepareDfltStmt(tls *libc.TLS, db uintptr, pTab uintptr, ppStmt uin if *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) != 0 { v2 = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazDflt + uintptr(ii)*8)) } else { - v2 = __ccgo_ts + 1659 + v2 = __ccgo_ts + 1673 } zDflt = v2 - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+6385, libc.VaList(bp+32, zSep, zDflt)) - zSep = __ccgo_ts + 16304 + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+6449, libc.VaList(bp+32, zSep, zDflt)) + zSep = __ccgo_ts + 16397 goto _1 _1: ; @@ -263285,7 +265115,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u rc = int32(SQLITE_NOMEM) goto error_out } - _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1658, uint8(0), libc.UintptrFromInt32(0)) + _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1672, uint8(0), libc.UintptrFromInt32(0)) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpZeroBlob = p } } @@ -263402,6 +265232,7 @@ func _sessionPreupdateOneChange(tls *libc.TLS, op int32, iRowid Ti64, pSession u } } /* If an error has occurred, mark the session object as failed. */ + goto error_out error_out: ; if (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 != 0 { @@ -263605,7 +265436,7 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr var i int32 var zRet, zSep uintptr _, _, _ = i, zRet, zSep - zSep = __ccgo_ts + 1658 + zSep = __ccgo_ts + 1672 zRet = uintptr(0) i = 0 for { @@ -263613,8 +265444,8 @@ func _sessionExprComparePK(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uintptr break } if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+34788, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 23339 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+34934, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 23484 if zRet == uintptr(0) { break } @@ -263633,7 +265464,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint var bHave, i int32 var zRet, zSep uintptr _, _, _, _ = bHave, i, zRet, zSep - zSep = __ccgo_ts + 1658 + zSep = __ccgo_ts + 1672 zRet = uintptr(0) bHave = 0 i = 0 @@ -263643,8 +265474,8 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if int32(*(*Tu8)(unsafe.Pointer(abPK + uintptr(i)))) == 0 { bHave = int32(1) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+34822, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) - zSep = __ccgo_ts + 34863 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+34968, libc.VaList(bp+8, zRet, zSep, zDb1, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), zDb2, zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + zSep = __ccgo_ts + 35009 if zRet == uintptr(0) { break } @@ -263655,7 +265486,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint i++ } if bHave == 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1732, 0) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1792, 0) } return zRet } @@ -263666,12 +265497,12 @@ func _sessionSelectFindNew(tls *libc.TLS, zDb1 uintptr, zDb2 uintptr, bRowid int var zRet, zSel, v1 uintptr _, _, _ = zRet, zSel, v1 if bRowid != 0 { - v1 = __ccgo_ts + 34868 + v1 = __ccgo_ts + 35014 } else { - v1 = __ccgo_ts + 7899 + v1 = __ccgo_ts + 7963 } zSel = v1 - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+34879, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+35025, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) return zRet } @@ -263732,11 +265563,11 @@ func _sessionAllCols(tls *libc.TLS, zDb uintptr, pTab uintptr) (r uintptr) { break } if zRet != 0 { - v2 = __ccgo_ts + 16304 + v2 = __ccgo_ts + 16397 } else { - v2 = __ccgo_ts + 1658 + v2 = __ccgo_ts + 1672 } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+34958, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+35104, libc.VaList(bp+8, zRet, v2, zDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FazCol + uintptr(ii)*8)))) if !(zRet != 0) { break } @@ -263764,7 +265595,7 @@ func _sessionDiffFindModified(tls *libc.TLS, pSession uintptr, pTab uintptr, zFr } else { z1 = _sessionAllCols(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, pTab) z2 = _sessionAllCols(tls, zFrom, pTab) - zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+34977, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) + zStmt = Xsqlite3_mprintf(tls, __ccgo_ts+35123, libc.VaList(bp+16, z1, z2, (*Tsqlite3_session)(unsafe.Pointer(pSession)).FzDb, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zFrom, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zExpr, zExpr2)) if zStmt == uintptr(0) || z1 == uintptr(0) || z2 == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -263864,7 +265695,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 40))) if bMismatch != 0 { if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35034, 0) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+35180, 0) } rc = int32(SQLITE_SCHEMA) } @@ -263890,6 +265721,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u } Xsqlite3_free(tls, zExpr) } + goto diff_out diff_out: ; _sessionPreupdateHooks(tls, pSession) @@ -264195,7 +266027,7 @@ func _sessionAppendInteger(tls *libc.TLS, p uintptr, iVal int32, pRc uintptr) { bp := tls.Alloc(48) defer tls.Free(48) var _ /* aBuf at bp+0 */ [24]int8 - Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+6447, libc.VaList(bp+32, iVal)) + Xsqlite3_snprintf(tls, int32(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+6511, libc.VaList(bp+32, iVal)) _sessionAppendStr(tls, p, bp, pRc) } @@ -264486,23 +266318,23 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt _, _, _, _, _, _, _ = i, nSql, zCols, zSep, zSql, v1, v3 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK zSql = uintptr(0) - zSep = __ccgo_ts + 1658 + zSep = __ccgo_ts + 1672 if bRowid != 0 { - v1 = __ccgo_ts + 34868 + v1 = __ccgo_ts + 35014 } else { - v1 = __ccgo_ts + 7899 + v1 = __ccgo_ts + 7963 } zCols = v1 nSql = -int32(1) *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 24)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 40)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+35061, bp) - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+12891, zTab) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+35065, bp) - _sessionAppendStr(tls, bp+24, __ccgo_ts+35089, bp) - _sessionAppendStr(tls, bp+40, __ccgo_ts+35098, bp) - zCols = __ccgo_ts + 35143 + _sessionAppendStr(tls, bp+8, __ccgo_ts+35207, bp) + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+13016, zTab) { + _sessionAppendStr(tls, bp+8, __ccgo_ts+35211, bp) + _sessionAppendStr(tls, bp+24, __ccgo_ts+35235, bp) + _sessionAppendStr(tls, bp+40, __ccgo_ts+35244, bp) + zCols = __ccgo_ts + 35289 } else { i = 0 for { @@ -264512,11 +266344,11 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { _sessionAppendStr(tls, bp+24, zSep, bp) _sessionAppendStr(tls, bp+40, zSep, bp) - zSep = __ccgo_ts + 16304 + zSep = __ccgo_ts + 16397 _sessionAppendIdent(tls, bp+24, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), bp) - _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+35157, libc.VaList(bp+64, i+int32(1))) + _sessionAppendPrintf(tls, bp+40, bp, __ccgo_ts+35303, libc.VaList(bp+64, i+int32(1))) } else { - _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+35161, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + _sessionAppendPrintf(tls, bp+8, bp, __ccgo_ts+35307, libc.VaList(bp+64, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) } goto _2 _2: @@ -264528,9 +266360,9 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if bIgnoreNoop != 0 { v3 = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf } else { - v3 = __ccgo_ts + 1658 + v3 = __ccgo_ts + 1672 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+35188, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+35334, libc.VaList(bp+64, zCols, v3, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf)) if zSql == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } @@ -264671,7 +266503,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, if (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc != 0 { return (*Tsqlite3_session)(unsafe.Pointer(pSession)).Frc } - *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+35230, uintptr(0), uintptr(0), uintptr(0)) + *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+35376, uintptr(0), uintptr(0), uintptr(0)) if *(*int32)(unsafe.Pointer(bp + 16)) != SQLITE_OK { return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -264777,7 +266609,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } } Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf) - Xsqlite3_exec(tls, db, __ccgo_ts+35250, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+35396, uintptr(0), uintptr(0), uintptr(0)) Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db)) return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -265194,7 +267026,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, int32(9)) if rc == SQLITE_OK { if (*TSessionInput)(unsafe.Pointer(pIn)).FiNext >= (*TSessionInput)(unsafe.Pointer(pIn)).FnData { - rc = _sqlite3CorruptError(tls, int32(226700)) + rc = _sqlite3CorruptError(tls, int32(228355)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -265218,7 +267050,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap rc = _sessionInputBuffer(tls, pIn, *(*int32)(unsafe.Pointer(bp))) if rc == SQLITE_OK { if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext { - rc = _sqlite3CorruptError(tls, int32(226720)) + rc = _sqlite3CorruptError(tls, int32(228375)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -265233,7 +267065,7 @@ func _sessionReadRecord(tls *libc.TLS, pIn uintptr, nCol int32, abPK uintptr, ap } if eType == int32(SQLITE_INTEGER) || eType == int32(SQLITE_FLOAT) { if (*TSessionInput)(unsafe.Pointer(pIn)).FnData-(*TSessionInput)(unsafe.Pointer(pIn)).FiNext < int32(8) { - rc = _sqlite3CorruptError(tls, int32(226730)) + rc = _sqlite3CorruptError(tls, int32(228385)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -265289,7 +267121,7 @@ func _sessionChangesetBufferTblhdr(tls *libc.TLS, pIn uintptr, pnByte uintptr) ( ** large value for nCol may cause nRead to wrap around and become ** negative. Leading to a crash. */ if *(*int32)(unsafe.Pointer(bp)) < 0 || *(*int32)(unsafe.Pointer(bp)) > int32(65536) { - rc = _sqlite3CorruptError(tls, int32(226778)) + rc = _sqlite3CorruptError(tls, int32(228433)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -265394,7 +267226,7 @@ func _sessionChangesetReadTblhdr(tls *libc.TLS, p uintptr) (r int32) { (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Ftblhdr.FnBuf = 0 _sessionBufferGrow(tls, p+72, int64(int64(nByte)), bp) } else { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(226866)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(228521)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -265465,12 +267297,12 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc != SQLITE_OK { return (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc } + _sessionDiscardData(tls, p) + (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext /* If the iterator is already at the end of the changeset, return DONE. */ if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext >= (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FnData { return int32(SQLITE_DONE) } - _sessionDiscardData(tls, p) - (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiCurrent = (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FiNext v3 = p + 8 v2 = *(*int32)(unsafe.Pointer(v3)) *(*int32)(unsafe.Pointer(v3))++ @@ -265500,7 +267332,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FzTab == uintptr(0) || (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbPatchset != 0 && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbInvert != 0 { /* The first record in the changeset is not a table header. Must be a ** corrupt changeset. */ - v7 = _sqlite3CorruptError(tls, int32(226952)) + v7 = _sqlite3CorruptError(tls, int32(228607)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -265510,7 +267342,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = int32(*(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fin.FaData + uintptr(v8)))) if (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_DELETE) && (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Fop != int32(SQLITE_INSERT) { - v10 = _sqlite3CorruptError(tls, int32(226958)) + v10 = _sqlite3CorruptError(tls, int32(228613)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -265589,7 +267421,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin if *(*Tu8)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i+(*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FnCol)*8)) if *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FapValue + uintptr(i)*8)) == uintptr(0) { - v16 = _sqlite3CorruptError(tls, int32(227002)) + v16 = _sqlite3CorruptError(tls, int32(228657)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -265999,7 +267831,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(227367)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(229022)) goto finished_invert } if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { @@ -266019,6 +267851,7 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } + goto finished_invert finished_invert: ; Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf) @@ -266201,18 +268034,18 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 } if pUp == uintptr(0) { nByte = int32(uint64(24) * uint64(uint64(nU32)) * uint64(4)) - bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+12891) == 0) + bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+13016) == 0) pUp = Xsqlite3_malloc(tls, nByte) if pUp == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } else { - zSep = __ccgo_ts + 1658 + zSep = __ccgo_ts + 1672 libc.Xmemset(tls, bp+8, 0, uint64(16)) (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask = pUp + 1*24 libc.Xmemcpy(tls, (*TSessionUpdate)(unsafe.Pointer(pUp)).FaMask, (*TSessionApplyCtx)(unsafe.Pointer(p)).FaUpdateMask, uint64(uint64(nU32))*uint64(4)) - _sessionAppendStr(tls, bp+8, __ccgo_ts+35268, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+35414, bp) _sessionAppendIdent(tls, bp+8, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+35281, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+35427, bp) /* Create the assignments part of the UPDATE */ ii = 0 for { @@ -266222,9 +268055,9 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if int32(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii)))) == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol+ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+35287, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+35433, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(1), bp) - zSep = __ccgo_ts + 16304 + zSep = __ccgo_ts + 16397 } goto _2 _2: @@ -266232,8 +268065,8 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 ii++ } /* Create the WHERE clause part of the UPDATE */ - zSep = __ccgo_ts + 1658 - _sessionAppendStr(tls, bp+8, __ccgo_ts+35292, bp) + zSep = __ccgo_ts + 1672 + _sessionAppendStr(tls, bp+8, __ccgo_ts+35438, bp) ii = 0 for { if !(ii < (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol) { @@ -266242,13 +268075,13 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if *(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(ii))) != 0 || bPatchset == 0 && *(*uintptr)(unsafe.Pointer((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FapValue + uintptr(ii)*8)) != 0 { _sessionAppendStr(tls, bp+8, zSep, bp) if bStat1 != 0 && ii == int32(1) { - _sessionAppendStr(tls, bp+8, __ccgo_ts+35300, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+35446, bp) } else { _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+35375, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+35521, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(2), bp) } - zSep = __ccgo_ts + 23339 + zSep = __ccgo_ts + 23484 } goto _3 _3: @@ -266331,13 +268164,13 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in var _ /* buf at bp+8 */ TSessionBuffer var _ /* rc at bp+0 */ int32 _, _, _ = i, nPk, zSep - zSep = __ccgo_ts + 1658 + zSep = __ccgo_ts + 1672 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} nPk = 0 - _sessionAppendStr(tls, bp+8, __ccgo_ts+35381, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+35527, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+35292, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+35438, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -266347,9 +268180,9 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in nPk++ _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+35287, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+35433, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 23339 + zSep = __ccgo_ts + 23484 } goto _1 _1: @@ -266357,10 +268190,10 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in i++ } if nPk < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol { - _sessionAppendStr(tls, bp+8, __ccgo_ts+35399, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+35545, bp) _sessionAppendInteger(tls, bp+8, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol+int32(1), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34863, bp) - zSep = __ccgo_ts + 1658 + _sessionAppendStr(tls, bp+8, __ccgo_ts+35009, bp) + zSep = __ccgo_ts + 1672 i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -266369,16 +268202,16 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in if !(*(*Tu8)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK + uintptr(i))) != 0) { _sessionAppendStr(tls, bp+8, zSep, bp) _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+35375, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+35521, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 35407 + zSep = __ccgo_ts + 35553 } goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+6415, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+6479, bp) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+8, uintptr(0)) @@ -266404,7 +268237,7 @@ func _sessionDeleteRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in // */ func _sessionSelectRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r int32) { /* TODO */ - return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+7894, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) + return _sessionSelectStmt(tls, db, int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+7958, zTab, (*TSessionApplyCtx)(unsafe.Pointer(p)).FbRowid, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol, (*TSessionApplyCtx)(unsafe.Pointer(p)).FabPK, p+24) } // C documentation @@ -266427,16 +268260,16 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+8, __ccgo_ts+35412, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+35558, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+23345, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+23490, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } if i != 0 { - _sessionAppendStr(tls, bp+8, __ccgo_ts+16304, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+16397, bp) } _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) goto _1 @@ -266444,19 +268277,19 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+35430, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+35576, bp) i = int32(1) for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } - _sessionAppendStr(tls, bp+8, __ccgo_ts+35441, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+35587, bp) goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+6415, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+6479, bp) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, db, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf, p+16, uintptr(0)) } @@ -266479,12 +268312,12 @@ func _sessionPrepare(tls *libc.TLS, db uintptr, pp uintptr, zSql uintptr) (r int func _sessionStat1Sql(tls *libc.TLS, db uintptr, p uintptr) (r int32) { var rc int32 _ = rc - rc = _sessionSelectRow(tls, db, __ccgo_ts+12891, p) + rc = _sessionSelectRow(tls, db, __ccgo_ts+13016, p) if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+35445) + rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+35591) } if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+35558) + rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+35704) } return rc } @@ -266550,7 +268383,7 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(227849)) + rc = _sqlite3CorruptError(tls, int32(229504)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -266966,7 +268799,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+35702, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+35848, uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { rc = _sessionBindRow(tls, pIter, __ccgo_fp(Xsqlite3changeset_new), (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FabPK, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) Xsqlite3_bind_int(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FnCol+int32(1), int32(1)) @@ -266979,7 +268812,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+35723, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+35869, uintptr(0), uintptr(0), uintptr(0)) } } } @@ -267073,10 +268906,10 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbIgnoreNoop = libc.BoolUint8(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_IGNORENOOP) != 0)) Xsqlite3_mutex_enter(tls, Xsqlite3_db_mutex(tls, db)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+35742, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+35888, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+35768, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+35914, uintptr(0), uintptr(0), uintptr(0)) } for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) @@ -267107,7 +268940,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui ** non-zero, proceed. */ schemaMismatch = libc.BoolInt32(xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { - *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) + *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { rc = int32(SQLITE_NOMEM) break @@ -267117,7 +268950,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } else { nMinCol = 0 Xsqlite3changeset_pk(tls, pIter, bp+152, uintptr(0)) - rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+7894, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) + rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+7958, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, bp, bp+8+40, uintptr(0), bp+8+48, bp+8+124) if rc != SQLITE_OK { break } @@ -267136,18 +268969,18 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol == 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+35798, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+35944, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { if (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol < *(*int32)(unsafe.Pointer(bp + 136)) { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+35842, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+35988, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)), (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol, *(*int32)(unsafe.Pointer(bp + 136)))) } else { if *(*int32)(unsafe.Pointer(bp + 136)) < nMinCol || libc.Xmemcmp(tls, (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FabPK, *(*uintptr)(unsafe.Pointer(bp + 152)), uint64(*(*int32)(unsafe.Pointer(bp + 136)))) != 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+35913, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+36059, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) } else { (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FnCol = *(*int32)(unsafe.Pointer(bp + 136)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+12891) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+13016) { v2 = _sessionStat1Sql(tls, db, bp+8) rc = v2 if v2 != 0 { @@ -267204,13 +269037,13 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui } } } - Xsqlite3_exec(tls, db, __ccgo_ts+35973, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+36119, uintptr(0), uintptr(0), uintptr(0)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+36003, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+36149, uintptr(0), uintptr(0), uintptr(0)) } else { - Xsqlite3_exec(tls, db, __ccgo_ts+36027, uintptr(0), uintptr(0), uintptr(0)) - Xsqlite3_exec(tls, db, __ccgo_ts+36003, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+36173, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+36149, uintptr(0), uintptr(0), uintptr(0)) } } if rc == SQLITE_OK && bPatchset == 0 && (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbRebase != 0 { @@ -267302,6 +269135,7 @@ type Tsqlite3_changegroup1 = struct { Frc int32 FbPatch int32 FpList uintptr + Frec TSessionBuffer Fdb uintptr FzDb uintptr } @@ -267658,116 +269492,143 @@ func _sessionChangesetExtendRecord(tls *libc.TLS, pGrp uintptr, pTab uintptr, nC // C documentation // // /* -// ** Add all changes in the changeset traversed by the iterator passed as -// ** the first argument to the changegroup hash tables. +// ** Locate or create a SessionTable object that may be used to add the +// ** change currently pointed to by iterator pIter to changegroup pGrp. +// ** If successful, set output variable (*ppTab) to point to the table +// ** object and return SQLITE_OK. Otherwise, if some error occurs, return +// ** an SQLite error code and leave (*ppTab) set to NULL. // */ -func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { - bp := tls.Alloc(80) - defer tls.Free(80) - var bPkOnly1, bPkOnly2, iHash, nNew, rc int32 - var pExist, pTab, pp, ppTab uintptr - var _ /* aRec at bp+0 */ uintptr - var _ /* abPK at bp+64 */ uintptr - var _ /* bIndirect at bp+48 */ int32 - var _ /* nCol at bp+40 */ int32 - var _ /* nRec at bp+8 */ int32 - var _ /* op at bp+44 */ int32 - var _ /* pChange at bp+56 */ uintptr - var _ /* rec at bp+16 */ TSessionBuffer - var _ /* zNew at bp+32 */ uintptr - _, _, _, _, _, _, _, _, _ = bPkOnly1, bPkOnly2, iHash, nNew, pExist, pTab, pp, ppTab, rc +func _sessionChangesetFindTable(tls *libc.TLS, pGrp uintptr, zTab uintptr, pIter uintptr, ppTab uintptr) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var nTab, rc int32 + var pTab, ppNew uintptr + var _ /* abPK at bp+0 */ uintptr + var _ /* nCol at bp+8 */ int32 + _, _, _, _ = nTab, pTab, ppNew, rc rc = SQLITE_OK pTab = uintptr(0) - *(*TSessionBuffer)(unsafe.Pointer(bp + 16)) = TSessionBuffer{} - for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { - pExist = uintptr(0) - /* Ensure that only changesets, or only patchsets, but not a mixture - ** of both, are being combined. It is an error to try to combine a - ** changeset and a patchset. */ - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset - } else { - if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { - rc = int32(SQLITE_ERROR) - break - } + nTab = int32(libc.Xstrlen(tls, zTab)) + *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(ppTab)) = uintptr(0) + Xsqlite3changeset_pk(tls, pIter, bp, bp+8) + /* Search the list for an existing table */ + pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList + for { + if !(pTab != 0) { + break } - Xsqlite3changeset_op(tls, pIter, bp+32, bp+40, bp+44, bp+48) - if !(pTab != 0) || Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), (*TSessionTable)(unsafe.Pointer(pTab)).FzName) != 0 { - /* Search the list for a matching table */ - nNew = int32(libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)))) - Xsqlite3changeset_pk(tls, pIter, bp+64, uintptr(0)) - pTab = (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList - for { - if !(pTab != 0) { - break - } - if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), nNew+int32(1)) { - break - } - goto _1 - _1: - ; - pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext - } - if !(pTab != 0) { - pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 40)))+uint64(uint64(nNew))+uint64(1)) - if !(pTab != 0) { - rc = int32(SQLITE_NOMEM) - break - } - libc.Xmemset(tls, pTab, 0, uint64(80)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 40)) - (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp + 64)), uint64(*(*int32)(unsafe.Pointer(bp + 40)))) - (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 40))) - libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, *(*uintptr)(unsafe.Pointer(bp + 32)), uint64(nNew+int32(1))) - if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { - (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 - rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) - if rc != 0 { - Xsqlite3_free(tls, pTab) - break - } - } - /* The new object must be linked on to the end of the list, not - ** simply added to the start of it. This is to ensure that the - ** tables within the output of sqlite3changegroup_output() are in - ** the right order. */ - ppTab = pGrp + 8 - for { - if !(*(*uintptr)(unsafe.Pointer(ppTab)) != 0) { - break - } - goto _2 - _2: - ; - ppTab = *(*uintptr)(unsafe.Pointer(ppTab)) - } - *(*uintptr)(unsafe.Pointer(ppTab)) = pTab - } - if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*uintptr)(unsafe.Pointer(bp + 64))) != 0) { - rc = int32(SQLITE_SCHEMA) - break - } + if 0 == Xsqlite3_strnicmp(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, nTab+int32(1)) { + break } - if *(*int32)(unsafe.Pointer(bp + 40)) < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol { - rc = _sessionChangesetExtendRecord(tls, pGrp, pTab, *(*int32)(unsafe.Pointer(bp + 40)), *(*int32)(unsafe.Pointer(bp + 44)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+16) + goto _1 + _1: + ; + pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext + } + /* If one was not found above, create a new table now */ + if !(pTab != 0) { + pTab = Xsqlite3_malloc64(tls, uint64(80)+uint64(*(*int32)(unsafe.Pointer(bp + 8)))+uint64(uint64(nTab))+uint64(1)) + if !(pTab != 0) { + return int32(SQLITE_NOMEM) + } + libc.Xmemset(tls, pTab, 0, uint64(80)) + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = *(*int32)(unsafe.Pointer(bp + 8)) + (*TSessionTable)(unsafe.Pointer(pTab)).FabPK = pTab + 1*80 + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FabPK, *(*uintptr)(unsafe.Pointer(bp)), uint64(*(*int32)(unsafe.Pointer(bp + 8)))) + (*TSessionTable)(unsafe.Pointer(pTab)).FzName = (*TSessionTable)(unsafe.Pointer(pTab)).FabPK + uintptr(*(*int32)(unsafe.Pointer(bp + 8))) + libc.Xmemcpy(tls, (*TSessionTable)(unsafe.Pointer(pTab)).FzName, zTab, uint64(nTab+int32(1))) + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb != 0 { + (*TSessionTable)(unsafe.Pointer(pTab)).FnCol = 0 + rc = _sessionInitTable(tls, uintptr(0), pTab, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Fdb, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) if rc != 0 { + Xsqlite3_free(tls, pTab) + return rc + } + } + /* The new object must be linked on to the end of the list, not + ** simply added to the start of it. This is to ensure that the + ** tables within the output of sqlite3changegroup_output() are in + ** the right order. */ + ppNew = pGrp + 8 + for { + if !(*(*uintptr)(unsafe.Pointer(ppNew)) != 0) { break } - *(*uintptr)(unsafe.Pointer(bp)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf - *(*int32)(unsafe.Pointer(bp + 8)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf + goto _2 + _2: + ; + ppNew = *(*uintptr)(unsafe.Pointer(ppNew)) } - if _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pTab) != 0 { - rc = int32(SQLITE_NOMEM) - break + *(*uintptr)(unsafe.Pointer(ppNew)) = pTab + } + /* Check that the table is compatible. */ + if !(_sessionChangesetCheckCompat(tls, pTab, *(*int32)(unsafe.Pointer(bp + 8)), *(*uintptr)(unsafe.Pointer(bp))) != 0) { + rc = int32(SQLITE_SCHEMA) + } + *(*uintptr)(unsafe.Pointer(ppTab)) = pTab + return rc +} + +// C documentation +// +// /* +// ** Add the change currently indicated by iterator pIter to the hash table +// ** belonging to changegroup pGrp. +// */ +func _sessionOneChangeToHash(tls *libc.TLS, pGrp uintptr, pIter uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(48) + defer tls.Free(48) + var aRec, pBuf, pExist, pp uintptr + var bPkOnly1, bPkOnly2, iHash, nRec, rc int32 + var _ /* bIndirect at bp+8 */ int32 + var _ /* nCol at bp+0 */ int32 + var _ /* op at bp+4 */ int32 + var _ /* pChange at bp+16 */ uintptr + var _ /* pTab at bp+24 */ uintptr + var _ /* zTab at bp+32 */ uintptr + _, _, _, _, _, _, _, _, _ = aRec, bPkOnly1, bPkOnly2, iHash, nRec, pBuf, pExist, pp, rc + rc = SQLITE_OK + *(*int32)(unsafe.Pointer(bp)) = 0 + *(*int32)(unsafe.Pointer(bp + 4)) = 0 + iHash = 0 + *(*int32)(unsafe.Pointer(bp + 8)) = 0 + *(*uintptr)(unsafe.Pointer(bp + 16)) = uintptr(0) + pExist = uintptr(0) + pp = uintptr(0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0) + aRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FaData + uintptr((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent+int32(2)) + nRec = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent - int32(2) + /* Ensure that only changesets, or only patchsets, but not a mixture + ** of both, are being combined. It is an error to try to combine a + ** changeset and a patchset. */ + if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList == uintptr(0) { + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset + } else { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FbPatch { + rc = int32(SQLITE_ERROR) } - iHash = int32(_sessionChangeHash(tls, pTab, libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)), *(*uintptr)(unsafe.Pointer(bp)), (*TSessionTable)(unsafe.Pointer(pTab)).FnChange)) + } + if rc == SQLITE_OK { + *(*uintptr)(unsafe.Pointer(bp + 32)) = uintptr(0) + Xsqlite3changeset_op(tls, pIter, bp+32, bp, bp+4, bp+8) + rc = _sessionChangesetFindTable(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 32)), pIter, bp+24) + } + if rc == SQLITE_OK && *(*int32)(unsafe.Pointer(bp)) < (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnCol { + pBuf = pGrp + 16 + rc = _sessionChangesetExtendRecord(tls, pGrp, *(*uintptr)(unsafe.Pointer(bp + 24)), *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4)), aRec, nRec, pBuf) + aRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FaBuf + nRec = (*TSessionBuffer)(unsafe.Pointer(pBuf)).FnBuf + } + if rc == SQLITE_OK && _sessionGrowHash(tls, uintptr(0), (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp + 24))) != 0 { + rc = int32(SQLITE_NOMEM) + } + if rc == SQLITE_OK { /* Search for existing entry. If found, remove it from the hash table. - ** Code below may link it back in. - */ - pp = (*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8 + ** Code below may link it back in. */ + iHash = int32(_sessionChangeHash(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), libc.BoolInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 && *(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)), aRec, (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnChange)) + pp = (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8 for { if !(*(*uintptr)(unsafe.Pointer(pp)) != 0) { break @@ -267776,30 +269637,54 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase bPkOnly2 = 0 if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset != 0 { bPkOnly1 = libc.BoolInt32(int32((*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).Fop) == int32(SQLITE_DELETE)) - bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 44)) == int32(SQLITE_DELETE)) + bPkOnly2 = libc.BoolInt32(*(*int32)(unsafe.Pointer(bp + 4)) == int32(SQLITE_DELETE)) } - if _sessionChangeEqual(tls, pTab, bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, *(*uintptr)(unsafe.Pointer(bp))) != 0 { + if _sessionChangeEqual(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bPkOnly1, (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FaRecord, bPkOnly2, aRec) != 0 { pExist = *(*uintptr)(unsafe.Pointer(pp)) *(*uintptr)(unsafe.Pointer(pp)) = (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pp)))).FpNext - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry-- + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry-- break } - goto _3 - _3: + goto _1 + _1: ; pp = *(*uintptr)(unsafe.Pointer(pp)) + 24 } - rc = _sessionChangeMerge(tls, pTab, bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 44)), *(*int32)(unsafe.Pointer(bp + 48)), *(*uintptr)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 8)), bp+56) - if rc != 0 { + } + if rc == SQLITE_OK { + rc = _sessionChangeMerge(tls, *(*uintptr)(unsafe.Pointer(bp + 24)), bRebase, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, pExist, *(*int32)(unsafe.Pointer(bp + 4)), *(*int32)(unsafe.Pointer(bp + 8)), aRec, nRec, bp+16) + } + if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { + (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) + *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 16)) + (*TSessionTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)))).FnEntry++ + } + if rc == SQLITE_OK { + rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc + } + return rc +} + +// C documentation +// +// /* +// ** Add all changes in the changeset traversed by the iterator passed as +// ** the first argument to the changegroup hash tables. +// */ +func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase int32) (r int32) { + bp := tls.Alloc(16) + defer tls.Free(16) + var rc int32 + var _ /* aRec at bp+0 */ uintptr + var _ /* nRec at bp+8 */ int32 + _ = rc + rc = SQLITE_OK + for int32(SQLITE_ROW) == _sessionChangesetNext(tls, pIter, bp, bp+8, uintptr(0)) { + rc = _sessionOneChangeToHash(tls, pGrp, pIter, bRebase) + if rc != SQLITE_OK { break } - if *(*uintptr)(unsafe.Pointer(bp + 56)) != 0 { - (*TSessionChange)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 56)))).FpNext = *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) - *(*uintptr)(unsafe.Pointer((*TSessionTable)(unsafe.Pointer(pTab)).FapChange + uintptr(iHash)*8)) = *(*uintptr)(unsafe.Pointer(bp + 56)) - (*TSessionTable)(unsafe.Pointer(pTab)).FnEntry++ - } } - Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf) if rc == SQLITE_OK { rc = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc } @@ -267909,11 +269794,11 @@ func Xsqlite3changegroup_new(tls *libc.TLS, pp uintptr) (r int32) { var rc int32 _, _ = p, rc rc = SQLITE_OK /* New object */ - p = Xsqlite3_malloc(tls, int32(32)) + p = Xsqlite3_malloc(tls, int32(48)) if p == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, p, 0, uint64(32)) + libc.Xmemset(tls, p, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(pp)) = p return rc @@ -267935,7 +269820,7 @@ func Xsqlite3changegroup_schema(tls *libc.TLS, pGrp uintptr, db uintptr, zDb uin ** or after sqlite3changegroup_schema() has already been called. */ rc = int32(SQLITE_MISUSE) } else { - (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+8, zDb)) + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+8, zDb)) if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -267965,6 +269850,19 @@ func Xsqlite3changegroup_add(tls *libc.TLS, pGrp uintptr, nData int32, pData uin return rc } +// C documentation +// +// /* +// ** Add a single change to a changeset-group. +// */ +func Xsqlite3changegroup_add_change(tls *libc.TLS, pGrp uintptr, pIter uintptr) (r int32) { + if (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiCurrent == (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Fin.FiNext || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).Frc != SQLITE_OK || (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbInvert != 0 { + /* Iterator does not point to any valid entry or is an INVERT iterator. */ + return int32(SQLITE_ERROR) + } + return _sessionOneChangeToHash(tls, pGrp, pIter, 0) +} + // C documentation // // /* @@ -268012,6 +269910,7 @@ func Xsqlite3changegroup_delete(tls *libc.TLS, pGrp uintptr) { if pGrp != 0 { Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb) _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FpList) + Xsqlite3_free(tls, (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).Frec.FaBuf) Xsqlite3_free(tls, pGrp) } } @@ -268376,11 +270275,11 @@ func Xsqlite3rebaser_create(tls *libc.TLS, ppNew uintptr) (r int32) { var rc int32 _, _ = pNew, rc rc = SQLITE_OK - pNew = Xsqlite3_malloc(tls, int32(32)) + pNew = Xsqlite3_malloc(tls, int32(48)) if pNew == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - libc.Xmemset(tls, pNew, 0, uint64(32)) + libc.Xmemset(tls, pNew, 0, uint64(48)) } *(*uintptr)(unsafe.Pointer(ppNew)) = pNew return rc @@ -268454,6 +270353,7 @@ func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn u func Xsqlite3rebaser_delete(tls *libc.TLS, p uintptr) { if p != 0 { _sessionDeleteTable(tls, uintptr(0), (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.FpList) + Xsqlite3_free(tls, (*Tsqlite3_rebaser)(unsafe.Pointer(p)).Fgrp.Frec.FaBuf) Xsqlite3_free(tls, p) } } @@ -269085,6 +270985,9 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** sqlite3Fts5ParserARG_STORE Code to store %extra_argument into fts5yypParser // ** sqlite3Fts5ParserARG_FETCH Code to extract %extra_argument from fts5yypParser // ** sqlite3Fts5ParserCTX_* As sqlite3Fts5ParserARG_ except for %extra_context +// ** fts5YYREALLOC Name of the realloc() function to use +// ** fts5YYFREE Name of the free() function to use +// ** fts5YYDYNSTACK True if stack space should be extended on heap // ** fts5YYERRORSYMBOL is the code number of the error symbol. If not // ** defined, then do no error processing. // ** fts5YYNSTATE the combined number of states. @@ -269098,6 +271001,8 @@ type Fts5PoslistPopulator = TFts5PoslistPopulator // ** fts5YY_NO_ACTION The fts5yy_action[] code for no-op // ** fts5YY_MIN_REDUCE Minimum value for reduce actions // ** fts5YY_MAX_REDUCE Maximum value for reduce actions +// ** fts5YY_MIN_DSTRCTR Minimum symbol value that has a destructor +// ** fts5YY_MAX_DSTRCTR Maximum symbol value that has a destructor // */ // /************* Begin control #defines *****************************************/ type Tfts5YYMINORTYPE = struct { @@ -269124,6 +271029,13 @@ type fts5YYMINORTYPE = Tfts5YYMINORTYPE ** for testing. */ +/* Macro to determine if stack space has the ability to grow using +** heap memory. + */ + +/* Guarantee a minimum number of initial stack slots. + */ + // C documentation // // /* Next are the tables used to determine what action to take based on the @@ -269553,8 +271465,9 @@ type fts5yyStackEntry = Tfts5yyStackEntry type Tfts5yyParser1 = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser1 = Tfts5yyParser1 @@ -269562,14 +271475,19 @@ type fts5yyParser1 = Tfts5yyParser1 type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr - Ffts5yystack [100]Tfts5yyStackEntry Ffts5yystackEnd uintptr + Ffts5yystack uintptr + Ffts5yystk0 [100]Tfts5yyStackEntry } type fts5yyParser = Tfts5yyParser /* #include */ +/* For builds that do no have a growable stack, fts5yyGrowStack always +** returns an error. + */ + /* Datatype of the argument to the memory allocated passed as the ** second argument to sqlite3Fts5ParserAlloc() below. This can be changed by ** putting an appropriate #define in the %include section of the input @@ -269584,10 +271502,11 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { var fts5yypParser uintptr _ = fts5yypParser fts5yypParser = fts5yypRawParser - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = fts5yypParser + 16 - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fstateno = uint8(0) - (*(*Tfts5yyStackEntry)(unsafe.Pointer(fts5yypParser + 16))).Fmajor = uint8(0) - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = fts5yypParser + 16 + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack = fts5yypParser + 32 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + uintptr(libc.Int32FromInt32(fts5YYSTACKDEPTH)-libc.Int32FromInt32(1))*24 + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fstateno = uint8(0) + (*(*Tfts5yyStackEntry)(unsafe.Pointer((*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack))).Fmajor = uint8(0) } // C documentation @@ -269607,7 +271526,7 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2424)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -269689,11 +271608,17 @@ func _fts5yy_pop_parser_stack(tls *libc.TLS, pParser uintptr) { // ** Clear all secondary memory allocations from the parser // */ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { - var pParser uintptr - _ = pParser + var fts5yytos, pParser uintptr + _, _ = fts5yytos, pParser pParser = p - for (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos > pParser+16 { - _fts5yy_pop_parser_stack(tls, pParser) + /* In-lined version of calling fts5yy_pop_parser_stack() for each + ** element left in the stack */ + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yytos + for fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(pParser)).Ffts5yystack { + if int32((*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor) >= int32(fts5YY_MIN_DSTRCTR) { + _fts5yy_destructor(tls, pParser, (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor, fts5yytos+8) + } + fts5yytos -= 24 } } @@ -269781,13 +271706,13 @@ func _fts5yyStackOverflow(tls *libc.TLS, fts5yypParser uintptr) { var pParse uintptr _ = pParse pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse - for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > fts5yypParser+16 { + for (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystack { _fts5yy_pop_parser_stack(tls, fts5yypParser) } /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36055, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36201, 0) /******** End %stack_overflow code ********************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument var */ } @@ -269805,15 +271730,18 @@ func _fts5yy_shift(tls *libc.TLS, fts5yypParser uintptr, fts5yyNewState uint8, f var fts5yytos uintptr _ = fts5yytos (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos += 24 - if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 - _fts5yyStackOverflow(tls, fts5yypParser) - return + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos + if fts5yytos > (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { + if int32(1) != 0 { + (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos -= 24 + _fts5yyStackOverflow(tls, fts5yypParser) + return + } + fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos } if int32(int32(fts5yyNewState)) > int32(fts5YY_MAX_SHIFT) { fts5yyNewState = uint8(int32(fts5yyNewState) + (libc.Int32FromInt32(fts5YY_MIN_REDUCE) - libc.Int32FromInt32(fts5YY_MIN_SHIFTREDUCE))) } - fts5yytos = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fstateno = fts5yyNewState (*Tfts5yyStackEntry)(unsafe.Pointer(fts5yytos)).Fmajor = fts5yyMajor *(*TFts5Token)(unsafe.Pointer(fts5yytos + 8)) = fts5yyMinor @@ -270140,7 +272068,7 @@ func _fts5yy_syntax_error(tls *libc.TLS, fts5yypParser uintptr, fts5yymajor int3 pParse = (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse /************ Begin %syntax_error code ****************************************/ _ = fts5yymajor /* Silence a compiler warning */ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36083, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36229, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) /************ End %syntax_error code ******************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument variable */ } @@ -270202,8 +272130,10 @@ func _sqlite3Fts5Parser(tls *libc.TLS, fts5yyp uintptr, fts5yymajor int32, fts5y ** enough on the stack to push the LHS value */ if int32(_fts5yyRuleInfoNRhs[fts5yyruleno]) == 0 { if (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yytos >= (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).Ffts5yystackEnd { - _fts5yyStackOverflow(tls, fts5yypParser) - break + if int32(1) != 0 { + _fts5yyStackOverflow(tls, fts5yypParser) + break + } } } fts5yyact = _fts5yy_reduce(tls, fts5yypParser, fts5yyruleno, fts5yymajor, fts5yyminor) @@ -270427,7 +272357,7 @@ func _fts5HighlightAppend(tls *libc.TLS, pRc uintptr, p uintptr, z uintptr, n in if n < 0 { n = int32(libc.Xstrlen(tls, z)) } - (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+36114, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) + (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+36260, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) if (*THighlightContext)(unsafe.Pointer(p)).FzOut == uintptr(0) { *(*int32)(unsafe.Pointer(pRc)) = int32(SQLITE_NOMEM) } @@ -270524,7 +272454,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint var _ /* rc at bp+104 */ int32 _, _ = iCol, zErr if nVal != int32(3) { - zErr = __ccgo_ts + 36121 + zErr = __ccgo_ts + 36267 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -270535,7 +272465,7 @@ func _fts5HighlightFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint (*(*THighlightContext)(unsafe.Pointer(bp))).FiRangeEnd = -int32(1) *(*int32)(unsafe.Pointer(bp + 104)) = (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5ExtensionApi)(unsafe.Pointer(pApi)).FxColumnText})))(tls, pFts, iCol, bp+24, bp+32) if *(*int32)(unsafe.Pointer(bp + 104)) == int32(SQLITE_RANGE) { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1658, -int32(1), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1672, -int32(1), libc.UintptrFromInt32(0)) *(*int32)(unsafe.Pointer(bp + 104)) = SQLITE_OK } else { if (*(*THighlightContext)(unsafe.Pointer(bp))).FzIn != 0 { @@ -270736,7 +272666,7 @@ func _fts5ValueToText(tls *libc.TLS, pVal uintptr) (r uintptr) { if zRet != 0 { v1 = zRet } else { - v1 = __ccgo_ts + 1658 + v1 = __ccgo_ts + 1672 } return v1 } @@ -270770,7 +272700,7 @@ func _fts5SnippetFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uintpt nBestScore = 0 /* Score of best snippet */ *(*int32)(unsafe.Pointer(bp + 112)) = 0 if nVal != int32(5) { - zErr = __ccgo_ts + 36171 + zErr = __ccgo_ts + 36317 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -271150,15 +273080,15 @@ func _sqlite3Fts5AuxInit(tls *libc.TLS, pApi uintptr) (r int32) { FxDestroy uintptr }{ 0: { - FzFunc: __ccgo_ts + 36219, + FzFunc: __ccgo_ts + 36365, FxFunc: __ccgo_fp(_fts5SnippetFunction), }, 1: { - FzFunc: __ccgo_ts + 36227, + FzFunc: __ccgo_ts + 36373, FxFunc: __ccgo_fp(_fts5HighlightFunction), }, 2: { - FzFunc: __ccgo_ts + 36237, + FzFunc: __ccgo_ts + 36383, FxFunc: __ccgo_fp(_fts5Bm25Function), }, } @@ -271818,7 +273748,7 @@ func _fts5ConfigSkipLiteral(tls *libc.TLS, pIn uintptr) (r uintptr) { case int32('n'): fallthrough case int32('N'): - if Xsqlite3_strnicmp(tls, __ccgo_ts+1644, p, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+1658, p, int32(4)) == 0 { p = p + 4 } else { p = uintptr(0) @@ -272022,7 +273952,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC _, _, _, _, _, _, _, _, _, _, _, _ = azArg, bFirst, nArg, nByte, nCmd, nPre, p, p1, p2, pDel, pSpace, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK nCmd = int32(libc.Xstrlen(tls, zCmd)) - if Xsqlite3_strnicmp(tls, __ccgo_ts+36242, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+36388, zCmd, nCmd) == 0 { nByte = int32(libc.Uint64FromInt64(4) * libc.Uint64FromInt32(FTS5_MAX_PREFIX_INDEXES)) bFirst = int32(1) if (*TFts5Config)(unsafe.Pointer(pConfig)).FaPrefix == uintptr(0) { @@ -272048,12 +273978,12 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } } if int32(*(*int8)(unsafe.Pointer(p))) < int32('0') || int32(*(*int8)(unsafe.Pointer(p))) > int32('9') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36249, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36395, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } if (*TFts5Config)(unsafe.Pointer(pConfig)).FnPrefix == int32(FTS5_MAX_PREFIX_INDEXES) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36280, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36426, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -272062,7 +273992,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC p++ } if nPre <= 0 || nPre >= int32(1000) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36313, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36459, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -272072,7 +274002,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+36350, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+36496, zCmd, nCmd) == 0 { p1 = zArg nArg = int64(libc.Xstrlen(tls, zArg) + uint64(1)) azArg = _sqlite3Fts5MallocZero(tls, bp, int64(uint64(8)*uint64(uint64(nArg)))) @@ -272080,7 +274010,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC pSpace = pDel if azArg != 0 && pSpace != 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36359, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36505, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { nArg = 0 @@ -272107,7 +274037,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC nArg++ } if p1 == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36392, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36538, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5GetTokenizer(tls, pGlobal, azArg, int32(int32(nArg)), pConfig, pzErr) @@ -272118,58 +274048,58 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC Xsqlite3_free(tls, pDel) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+36426, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+36572, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent != FTS5_CONTENT_NORMAL { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36434, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36580, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if *(*int8)(unsafe.Pointer(zArg)) != 0 { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_EXTERNAL) - (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36466, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) + (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36612, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent = int32(FTS5_CONTENT_NONE) } } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+36472, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+36618, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36491, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36637, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+36534, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+36680, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36548, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36694, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, zArg, -int32(1)) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+36586, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+36732, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36597, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36743, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+6808, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+6872, zCmd, nCmd) == 0 { *(*[4]TFts5Enum)(unsafe.Pointer(bp + 8)) = [4]TFts5Enum{ 0: { - FzName: __ccgo_ts + 9527, + FzName: __ccgo_ts + 9652, FeVal: int32(FTS5_DETAIL_NONE), }, 1: { - FzName: __ccgo_ts + 19073, + FzName: __ccgo_ts + 19160, }, 2: { - FzName: __ccgo_ts + 36632, + FzName: __ccgo_ts + 36778, FeVal: int32(FTS5_DETAIL_COLUMNS), }, 3: {}, @@ -272177,20 +274107,20 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pGlobal uintptr, pConfig uintptr, zC v2 = _fts5ConfigSetEnum(tls, bp+8, zArg, pConfig+96) *(*int32)(unsafe.Pointer(bp)) = v2 if v2 != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36640, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36786, 0) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+36671, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+36817, zCmd, nCmd) == 0 { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || int32(*(*int8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36681, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36827, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbTokendata = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36715, libc.VaList(bp+80, nCmd, zCmd)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36861, libc.VaList(bp+80, nCmd, zCmd)) return int32(SQLITE_ERROR) } @@ -272262,15 +274192,15 @@ func _fts5ConfigParseColumn(tls *libc.TLS, p uintptr, zCol uintptr, zArg uintptr var v2 uintptr _, _, _ = rc, v1, v2 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+36743) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+18009) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36748, libc.VaList(bp+8, zCol)) + if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+36889) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+18096) { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36894, libc.VaList(bp+8, zCol)) rc = int32(SQLITE_ERROR) } else { if zArg != 0 { - if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+36778) { + if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+36924) { *(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FabUnindexed + uintptr((*TFts5Config)(unsafe.Pointer(p)).FnCol))) = uint8(1) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36788, libc.VaList(bp+8, zArg)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36934, libc.VaList(bp+8, zArg)) rc = int32(SQLITE_ERROR) } } @@ -272296,7 +274226,7 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { _ = i *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TFts5Buffer)(unsafe.Pointer(bp + 8)) = TFts5Buffer{} - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36819, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36965, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) if (*TFts5Config)(unsafe.Pointer(p)).FeContent != int32(FTS5_CONTENT_NONE) { i = 0 for { @@ -272304,9 +274234,9 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { break } if (*TFts5Config)(unsafe.Pointer(p)).FeContent == int32(FTS5_CONTENT_EXTERNAL) { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36824, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36970, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) } else { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36831, libc.VaList(bp+32, i)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36977, libc.VaList(bp+32, i)) } goto _1 _1: @@ -272366,8 +274296,8 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in (*TFts5Config)(unsafe.Pointer(pRet)).FzName = _sqlite3Fts5Strndup(tls, bp, *(*uintptr)(unsafe.Pointer(azArg + 2*8)), -int32(1)) (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize = int32(1) (*TFts5Config)(unsafe.Pointer(pRet)).FeDetail = FTS5_DETAIL_FULL - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+36743) == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36839, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && Xsqlite3_stricmp(tls, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, __ccgo_ts+36889) == 0 { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36985, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } i = int32(3) @@ -272398,19 +274328,19 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { if z == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36868, libc.VaList(bp+40, zOrig)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37014, libc.VaList(bp+40, zOrig)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bOption != 0 { if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { v4 = *(*uintptr)(unsafe.Pointer(bp + 8)) } else { - v4 = __ccgo_ts + 1658 + v4 = __ccgo_ts + 1672 } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { v5 = *(*uintptr)(unsafe.Pointer(bp + 16)) } else { - v5 = __ccgo_ts + 1658 + v5 = __ccgo_ts + 1672 } *(*int32)(unsafe.Pointer(bp)) = _fts5ConfigParseSpecial(tls, pGlobal, pRet, v4, v5, pzErr) } else { @@ -272428,7 +274358,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in } /* We only allow contentless_delete=1 if the table is indeed contentless. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FeContent != int32(FTS5_CONTENT_NONE) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36888, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37034, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* We only allow contentless_delete=1 if columnsize=0 is not present. @@ -272436,7 +274366,7 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in ** This restriction may be removed at some point. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessDelete != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36938, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+37084, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* If a tokenizer= option was successfully parsed, the tokenizer has @@ -272449,18 +274379,18 @@ func _sqlite3Fts5ConfigParse(tls *libc.TLS, pGlobal uintptr, db uintptr, nArg in if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContent == uintptr(0) { zTail = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pRet)).FeContent == FTS5_CONTENT_NORMAL { - zTail = __ccgo_ts + 36426 + zTail = __ccgo_ts + 36572 } else { if (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize != 0 { - zTail = __ccgo_ts + 36993 + zTail = __ccgo_ts + 37139 } } if zTail != 0 { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37001, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37147, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzDb, (*TFts5Config)(unsafe.Pointer(pRet)).FzName, zTail)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid == uintptr(0) { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+18009, -int32(1)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+18096, -int32(1)) } /* Formulate the zContentExprlist text */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -272524,25 +274454,25 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { var _ /* rc at bp+0 */ int32 _, _, _, _ = i, zSep, zSql, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37012, 0) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37158, 0) i = 0 for { if !(zSql != 0 && i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } if i == 0 { - v2 = __ccgo_ts + 1658 + v2 = __ccgo_ts + 1672 } else { - v2 = __ccgo_ts + 16304 + v2 = __ccgo_ts + 16397 } zSep = v2 - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37028, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37174, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) goto _1 _1: ; i++ } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37035, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+36743)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37181, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+36889)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_declare_vtab(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql) Xsqlite3_free(tls, zSql) @@ -272688,7 +274618,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV var _ /* zRankArgs at bp+8 */ uintptr _, _, _, _, _, _, _, _, _, _ = bVal, nAutomerge, nCrisisMerge, nHashSize, nUsermerge, nVal, pgsz, rc, zIn, v1 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+37061) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+37207) { pgsz = 0 if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { pgsz = Xsqlite3_value_int(tls, pVal) @@ -272699,7 +274629,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).Fpgsz = pgsz } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+37066) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+37212) { nHashSize = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nHashSize = Xsqlite3_value_int(tls, pVal) @@ -272710,7 +274640,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnHashSize = nHashSize } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+37075) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+37221) { nAutomerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nAutomerge = Xsqlite3_value_int(tls, pVal) @@ -272724,7 +274654,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnAutomerge = nAutomerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+37085) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+37231) { nUsermerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nUsermerge = Xsqlite3_value_int(tls, pVal) @@ -272735,7 +274665,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnUsermerge = nUsermerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+37095) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+37241) { nCrisisMerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nCrisisMerge = Xsqlite3_value_int(tls, pVal) @@ -272752,7 +274682,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FnCrisisMerge = nCrisisMerge } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+37107) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+37253) { nVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nVal = Xsqlite3_value_int(tls, pVal) @@ -272767,7 +274697,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } (*TFts5Config)(unsafe.Pointer(pConfig)).FnDeleteMerge = nVal } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36743) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36889) { zIn = Xsqlite3_value_text(tls, pVal) rc = _sqlite3Fts5ConfigParseRank(tls, zIn, bp, bp+8) if rc == SQLITE_OK { @@ -272782,7 +274712,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+37119) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+37265) { bVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { bVal = Xsqlite3_value_int(tls, pVal) @@ -272824,7 +274754,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in var _ /* p at bp+0 */ uintptr var _ /* rc at bp+8 */ int32 _, _, _, _, _ = iVersion, pVal, zK, zSelect, zSql - zSelect = __ccgo_ts + 37133 + zSelect = __ccgo_ts + 37279 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_OK iVersion = 0 @@ -272844,7 +274774,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in for int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { zK = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) pVal = Xsqlite3_column_value(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) - if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+37165) { + if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+37311) { iVersion = Xsqlite3_value_int(tls, pVal) } else { *(*int32)(unsafe.Pointer(bp + 12)) = 0 @@ -272856,7 +274786,7 @@ func _sqlite3Fts5ConfigLoad(tls *libc.TLS, pConfig uintptr, iCookie int32) (r in if *(*int32)(unsafe.Pointer(bp + 8)) == SQLITE_OK && iVersion != int32(FTS5_CURRENT_VERSION) && iVersion != int32(FTS5_CURRENT_VERSION_SECUREDELETE) { *(*int32)(unsafe.Pointer(bp + 8)) = int32(SQLITE_ERROR) if (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg != 0 { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37173, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+37319, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = iVersion @@ -273077,7 +275007,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr } } if int32(*(*int8)(unsafe.Pointer(z2))) == int32('\000') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+37244, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+37390, 0) return FTS5_EOF } goto _1 @@ -273088,7 +275018,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(int64(z2)) - int64(int64(z))) default: if _sqlite3Fts5IsBareword(tls, *(*int8)(unsafe.Pointer(z))) == 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+37264, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+37410, libc.VaList(bp+8, z)) return FTS5_EOF } tok = int32(FTS5_STRING) @@ -273103,13 +275033,13 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr z21++ } (*TFts5Token)(unsafe.Pointer(pToken)).Fn = int32(int64(int64(z21)) - int64(int64(z))) - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+37295, uint64(2)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+37441, uint64(2)) == 0 { tok = int32(FTS5_OR) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+37298, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+37444, uint64(3)) == 0 { tok = int32(FTS5_NOT) } - if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+32039, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+32185, uint64(3)) == 0 { tok = int32(FTS5_AND) } break @@ -273524,6 +275454,7 @@ func _fts5ExprSynonymList(tls *libc.TLS, pTerm uintptr, iRowid Ti64, pBuf uintpt *(*int32)(unsafe.Pointer(pn)) = (*TFts5Buffer)(unsafe.Pointer(pBuf)).Fn } } + goto synonym_poslist_out synonym_poslist_out: ; if aIter != bp { @@ -273656,6 +275587,7 @@ func _fts5ExprPhraseIsMatch(tls *libc.TLS, pNode uintptr, pPhrase uintptr, pbMat i++ } } + goto ismatch_out ismatch_out: ; *(*int32)(unsafe.Pointer(pbMatch)) = libc.BoolInt32((*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).Fposlist.Fn > 0) @@ -273862,6 +275794,7 @@ func _fts5ExprNearIsMatch(tls *libc.TLS, pRc uintptr, pNear uintptr) (r int32) { goto ismatch_out } } + goto ismatch_out ismatch_out: ; bRet = libc.BoolInt32((*TFts5Buffer)(unsafe.Pointer((*(*TFts5NearTrimmer)(unsafe.Pointer(a))).FpOut)).Fn > 0) @@ -275178,8 +277111,8 @@ func _sqlite3Fts5ExprClonePhrase(tls *libc.TLS, pExpr uintptr, iPhrase int32, pp func _sqlite3Fts5ParseNear(tls *libc.TLS, pParse uintptr, pTok uintptr) { bp := tls.Alloc(32) defer tls.Free(32) - if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+37302, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36083, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) + if (*TFts5Token)(unsafe.Pointer(pTok)).Fn != int32(4) || libc.Xmemcmp(tls, __ccgo_ts+37448, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36229, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) } } @@ -275199,7 +277132,7 @@ func _sqlite3Fts5ParseSetDistance(tls *libc.TLS, pParse uintptr, pNear uintptr, } c = *(*int8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i))) if int32(int32(c)) < int32('0') || int32(int32(c)) > int32('9') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+37307, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+37453, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) return } nNear = nNear*int32(10) + (int32(*(*int8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i)))) - int32('0')) @@ -275337,7 +277270,7 @@ func _sqlite3Fts5ParseColset(tls *libc.TLS, pParse uintptr, pColset uintptr, p u iCol++ } if iCol == (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+22342, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+22474, libc.VaList(bp+8, z)) } else { pRet = _fts5ParseColset(tls, pParse, pColset, iCol) } @@ -275461,7 +277394,7 @@ func _sqlite3Fts5ParseSetColset(tls *libc.TLS, pParse uintptr, pExpr uintptr, pC var _ /* pFree at bp+0 */ uintptr *(*uintptr)(unsafe.Pointer(bp)) = pColset if (*TFts5Config)(unsafe.Pointer((*TFts5Parse)(unsafe.Pointer(pParse)).FpConfig)).FeDetail == int32(FTS5_DETAIL_NONE) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+37336, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+37482, 0) } else { _fts5ParseSetColset(tls, pParse, pExpr, pColset, bp) } @@ -275654,11 +277587,11 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin pPhrase = *(*uintptr)(unsafe.Pointer(pNear + 24)) if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase != int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > int32(1) || (*TFts5ExprPhrase)(unsafe.Pointer(pPhrase)).FnTerm > 0 && (*(*TFts5ExprTerm)(unsafe.Pointer(pPhrase + 32))).FbFirst != 0 { if (*TFts5ExprNearset)(unsafe.Pointer(pNear)).FnPhrase == int32(1) { - v2 = __ccgo_ts + 37389 + v2 = __ccgo_ts + 37535 } else { - v2 = __ccgo_ts + 37302 + v2 = __ccgo_ts + 37448 } - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+37396, libc.VaList(bp+8, v2)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+37542, libc.VaList(bp+8, v2)) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -275667,7 +277600,7 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin _fts5ExprAddChildren(tls, pRet, pLeft) _fts5ExprAddChildren(tls, pRet, pRight) if (*TFts5ExprNode)(unsafe.Pointer(pRet)).FiHeight > int32(SQLITE_FTS5_MAX_EXPR_DEPTH) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+37446, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+37592, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) Xsqlite3_free(tls, pRet) pRet = uintptr(0) } @@ -277815,7 +279748,7 @@ func _fts5DataRead(tls *libc.TLS, p uintptr, iRowid Ti64) (r uintptr) { ** to the requested entry. */ if (*TFts5Index)(unsafe.Pointer(p)).FpReader == uintptr(0) && rc == SQLITE_OK { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+37499, iRowid, 0, p+72) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+37645, iRowid, 0, p+72) } /* If either of the sqlite3_blob_open() or sqlite3_blob_reopen() calls ** above returned SQLITE_ERROR, return SQLITE_CORRUPT_VTAB instead. @@ -277908,7 +279841,7 @@ func _fts5DataWrite(tls *libc.TLS, p uintptr, iRowid Ti64, pData uintptr, nData } if (*TFts5Index)(unsafe.Pointer(p)).FpWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+37505, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+37651, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return } @@ -277937,7 +279870,7 @@ func _fts5DataDelete(tls *libc.TLS, p uintptr, iFirst Ti64, iLast Ti64) { } if (*TFts5Index)(unsafe.Pointer(p)).FpDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+37556, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+37702, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if _fts5IndexPrepareStmt(tls, p, p+88, zSql) != 0 { return } @@ -277971,7 +279904,7 @@ func _fts5DataRemoveSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { } if (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+37605, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+37751, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpIdxDeleter, int32(1), iSegid) @@ -278140,7 +280073,7 @@ func _fts5StructureDecode(tls *libc.TLS, pData uintptr, nData int32, piCookie ui } i = int32(4) /* Check if this is a V2 structure record. Set bStructureV2 if it is. */ - if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+37645, uint64(4)) { + if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+37791, uint64(4)) { i += int32(4) bStructureV2 = int32(1) } @@ -278331,7 +280264,7 @@ func _fts5IndexDataVersion(tls *libc.TLS, p uintptr) (r Ti64) { iVersion = 0 if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*TFts5Index)(unsafe.Pointer(p)).FpDataVersion == uintptr(0) { - (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+37650, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) + (*TFts5Index)(unsafe.Pointer(p)).Frc = _fts5IndexPrepareStmt(tls, p, p+144, Xsqlite3_mprintf(tls, __ccgo_ts+37796, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return 0 } @@ -278415,7 +280348,7 @@ func _fts5StructureWrite(tls *libc.TLS, p uintptr, pStruct uintptr) { _sqlite3Fts5Put32(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, iCookie) (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = int32(4) if (*TFts5Structure)(unsafe.Pointer(pStruct)).FnOriginCntr > uint64(0) { - libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+37645, uint64(4)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+37791, uint64(4)) *(*int32)(unsafe.Pointer(bp + 8)) += int32(4) } *(*int32)(unsafe.Pointer(bp + 8)) += _sqlite3Fts5PutVarint(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), uint64((*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel)) @@ -279365,6 +281298,7 @@ func _fts5SegIterNext_None(tls *libc.TLS, p uintptr, pIter uintptr, pbNewTerm ui } _fts5SegIterLoadNPos(tls, p, pIter) return + goto next_none_eof next_none_eof: ; _fts5DataRelease(tls, (*TFts5SegIter)(unsafe.Pointer(pIter)).FpLeaf) @@ -279727,6 +281661,7 @@ func _fts5LeafSeek(tls *libc.TLS, p uintptr, bGe int32, pIter uintptr, pTerm uin *(*Tu32)(unsafe.Pointer(bp)) += uint32(_sqlite3Fts5GetVarint32(tls, a+uintptr(*(*Tu32)(unsafe.Pointer(bp))), bp+4)) } } + goto search_failed search_failed: ; if bGe == 0 { @@ -279758,6 +281693,7 @@ search_failed: } } } + goto search_success search_success: ; if int64(*(*Tu32)(unsafe.Pointer(bp)))+int64(*(*Tu32)(unsafe.Pointer(bp + 8))) > int64(int64(n)) || *(*Tu32)(unsafe.Pointer(bp + 8)) < uint32(1) { @@ -279787,7 +281723,7 @@ func _fts5IdxSelectStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+37673, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+37819, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect } @@ -279876,7 +281812,7 @@ func _fts5IdxNextStmt(tls *libc.TLS, p uintptr) (r uintptr) { _ = pConfig if (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+37757, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+37903, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect } @@ -280962,6 +282898,7 @@ func _fts5IterSetOutputs_Col100(tls *libc.TLS, pIter uintptr, pSeg uintptr) { iPrevOut = iPrev } } + goto setoutputs_col_out setoutputs_col_out: ; (*TFts5Iter)(unsafe.Pointer(pIter)).Fbase.FpData = (*TFts5Iter)(unsafe.Pointer(pIter)).Fposlist.Fp @@ -281179,6 +283116,7 @@ func _fts5MultiIterNew(tls *libc.TLS, p uintptr, pStruct uintptr, flags int32, p _fts5MultiIterFree(tls, pNew) *(*uintptr)(unsafe.Pointer(ppOut)) = uintptr(0) } + goto fts5MultiIterNew_post_check fts5MultiIterNew_post_check: ; return @@ -281490,7 +283428,7 @@ func _fts5WriteFlushBtree(tls *libc.TLS, p uintptr, pWriter uintptr) { if (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fn > 0 { v1 = (*TFts5SegWriter)(unsafe.Pointer(pWriter)).Fbtterm.Fp } else { - v1 = __ccgo_ts + 1658 + v1 = __ccgo_ts + 1672 } z = v1 /* The following was already done in fts5WriteInit(): */ @@ -281845,7 +283783,7 @@ func _fts5WriteInit(tls *libc.TLS, p uintptr, pWriter uintptr, iSegid int32) { _sqlite3Fts5BufferSize(tls, p+60, pWriter+8+8, uint32(uint32(nBuffer))) if (*TFts5Index)(unsafe.Pointer(p)).FpIdxWriter == uintptr(0) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig - _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+37839, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+37985, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { /* Initialize the 4-byte leaf-page header to 0x00. */ @@ -282335,7 +284273,7 @@ func _fts5SecureDeleteIdxEntry(tls *libc.TLS, p uintptr, iSegid int32, iPgno int defer tls.Free(32) if iPgno != int32(1) { if (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx == uintptr(0) { - _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+37896, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+136, Xsqlite3_mprintf(tls, __ccgo_ts+38042, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzName))) } if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_bind_int(tls, (*TFts5Index)(unsafe.Pointer(p)).FpDeleteFromIdx, int32(1), iSegid) @@ -283825,7 +285763,7 @@ func _sqlite3Fts5IndexReinit(tls *libc.TLS, p uintptr) (r int32) { if (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FbContentlessDelete != 0 { (*(*TFts5Structure)(unsafe.Pointer(bp))).FnOriginCntr = uint64(1) } - _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1658, 0) + _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1672, 0) _fts5StructureWrite(tls, p, bp) return _fts5IndexReturn(tls, p) } @@ -283852,11 +285790,11 @@ func _sqlite3Fts5IndexOpen(tls *libc.TLS, pConfig uintptr, bCreate int32, pp uin if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Index)(unsafe.Pointer(p)).FpConfig = pConfig (*TFts5Index)(unsafe.Pointer(p)).FnWorkUnit = int32(FTS5_WORK_UNIT) - (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37957, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+38103, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl != 0 && bCreate != 0 { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+27074, __ccgo_ts+37965, 0, pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+27220, __ccgo_ts+38111, 0, pzErr) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+13102, __ccgo_ts+38000, int32(1), pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+13227, __ccgo_ts+38146, int32(1), pzErr) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5IndexReinit(tls, p) @@ -284390,7 +286328,7 @@ func _fts5SetupTokendataIter(tls *libc.TLS, p uintptr, pToken uintptr, nToken in pNew = _fts5MultiIterAlloc(tls, p, (*TFts5Structure)(unsafe.Pointer(pStruct)).FnSegment) if pSmall != 0 { _sqlite3Fts5BufferSet(tls, p+60, bp, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fn, (*TFts5Buffer)(unsafe.Pointer(pSmall)).Fp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+38044) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+38190) } else { _sqlite3Fts5BufferSet(tls, p+60, bp, nToken, pToken) } @@ -284910,7 +286848,7 @@ func _sqlite3Fts5IndexSetCookie(tls *libc.TLS, p uintptr, iNew int32) (r int32) pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig /* Binary representation of iNew */ *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) _sqlite3Fts5Put32(tls, bp, iNew) - rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+37499, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) + rc = Xsqlite3_blob_open(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl, __ccgo_ts+37645, int64(FTS5_STRUCTURE_ROWID), int32(1), bp+8) if rc == SQLITE_OK { Xsqlite3_blob_write(tls, *(*uintptr)(unsafe.Pointer(bp + 8)), bp, int32(4), 0) rc = Xsqlite3_blob_close(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) @@ -285504,7 +287442,7 @@ func _fts5IndexIntegrityCheckSegment(tls *libc.TLS, p uintptr, pSeg uintptr) { if (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FpgnoFirst == 0 { return } - _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+38046, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) + _fts5IndexPrepareStmt(tls, p, bp, Xsqlite3_mprintf(tls, __ccgo_ts+38192, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5StructureSegment)(unsafe.Pointer(pSeg)).FiSegid))) /* Iterate through the b-tree hierarchy. */ for (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { /* Data for this leaf */ zIdxTerm = Xsqlite3_column_blob(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(1)) @@ -285735,7 +287673,7 @@ func _sqlite3Fts5IndexIntegrityCheck(tls *libc.TLS, p uintptr, cksum Tu64, bUseC } else { (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn = 0 _fts5SegiterPoslist(tls, p, *(*uintptr)(unsafe.Pointer(bp + 16))+104+uintptr((*(*TFts5CResult)(unsafe.Pointer((*TFts5Iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).FaFirst + 1*4))).FiFirst)*128, uintptr(0), bp) - _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+38132) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+38278) for 0 == _sqlite3Fts5PoslistNext64(tls, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fp, (*(*TFts5Buffer)(unsafe.Pointer(bp))).Fn, bp+40, bp+32) { iCol = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) >> libc.Int32FromInt32(32)) iTokOff = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) & libc.Int64FromInt32(0x7FFFFFFF)) @@ -286323,7 +288261,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) bSeenMatch = 0 bSeenRank = 0 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+38137, 0) + (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+38283, 0) return int32(SQLITE_ERROR) } idxStr = Xsqlite3_malloc(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint*int32(8)+int32(1)) @@ -286362,7 +288300,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v3 = iIdxStr iIdxStr++ *(*int8)(unsafe.Pointer(idxStr + uintptr(v3))) = int8('M') - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+6447, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+6511, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) } } @@ -286382,7 +288320,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v6 = int32('G') } *(*int8)(unsafe.Pointer(idxStr + uintptr(v5))) = int8(v6) - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+6447, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+6511, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) iCons++ v7 = iCons @@ -286820,7 +288758,7 @@ func _fts5NextMethod(tls *libc.TLS, pCursor uintptr) (r int32) { *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_EOF) rc = Xsqlite3_reset(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpStmt) if rc != SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(pCursor)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } } else { rc = SQLITE_OK @@ -286847,7 +288785,7 @@ func _fts5PrepareStatement(tls *libc.TLS, ppStmt uintptr, pConfig uintptr, zFmt } else { rc = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp, uintptr(0)) if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } Xsqlite3_free(tls, zSql) } @@ -286882,21 +288820,21 @@ func _fts5CursorFirstSorted(tls *libc.TLS, pTab uintptr, pCsr uintptr, bDesc int ** ** If SQLite a built-in statement cache, this wouldn't be a problem. */ if zRankArgs != 0 { - v1 = __ccgo_ts + 16304 + v1 = __ccgo_ts + 16397 } else { - v1 = __ccgo_ts + 1658 + v1 = __ccgo_ts + 1672 } if zRankArgs != 0 { v2 = zRankArgs } else { - v2 = __ccgo_ts + 1658 + v2 = __ccgo_ts + 1672 } if bDesc != 0 { - v3 = __ccgo_ts + 38176 + v3 = __ccgo_ts + 38322 } else { - v3 = __ccgo_ts + 38181 + v3 = __ccgo_ts + 38327 } - rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+38185, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) + rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+38331, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zRank, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, v1, v2, v3)) (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpSorter = pSorter if rc == SQLITE_OK { (*TFts5FullTable)(unsafe.Pointer(pTab)).FpSortCsr = pCsr @@ -286954,14 +288892,14 @@ func _fts5SpecialMatch(tls *libc.TLS, pTab uintptr, pCsr uintptr, zQuery uintptr n++ } (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan = int32(FTS5_PLAN_SPECIAL) - if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+38240, z, n) { + if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+38386, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = int64(_sqlite3Fts5IndexReads(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex)) } else { - if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+6790, z, n) { + if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+6854, z, n) { (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiSpecial = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FiCsrId } else { /* An unrecognized directive. Return an error message. */ - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+38246, libc.VaList(bp+8, n, z)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+38392, libc.VaList(bp+8, n, z)) rc = int32(SQLITE_ERROR) } } @@ -287011,7 +288949,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { zRank = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank zRankArgs = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs if zRankArgs != 0 { - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+38274, libc.VaList(bp+24, zRankArgs)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+38420, libc.VaList(bp+24, zRankArgs)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v3(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql, -int32(1), uint32(SQLITE_PREPARE_PERSISTENT), bp+8, uintptr(0)) @@ -287044,7 +288982,7 @@ func _fts5FindRankFunction(tls *libc.TLS, pCsr uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { pAux = _fts5FindAuxiliary(tls, pTab, zRank) if pAux == uintptr(0) { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+38284, libc.VaList(bp+24, zRank)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+38430, libc.VaList(bp+24, zRank)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -287078,7 +289016,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui *(*int32)(unsafe.Pointer(pCsr + 80)) |= int32(FTS5CSR_FREE_ZRANK) } else { if rc == int32(SQLITE_ERROR) { - (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+38305, libc.VaList(bp+24, z)) + (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+38451, libc.VaList(bp+24, z)) } } } else { @@ -287086,7 +289024,7 @@ func _fts5CursorParseRank(tls *libc.TLS, pConfig uintptr, pCsr uintptr, pRank ui (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRank (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = (*TFts5Config)(unsafe.Pointer(pConfig)).FzRankArgs } else { - (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 36237 + (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 36383 (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = uintptr(0) } } @@ -287137,7 +289075,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint iIdxStr = 0 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+38137, 0) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+38283, 0) return int32(SQLITE_ERROR) } if (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan != 0 { @@ -287159,7 +289097,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint case int32('M'): zText = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8))) if zText == uintptr(0) { - zText = __ccgo_ts + 1658 + zText = __ccgo_ts + 1672 } iCol = 0 for cond := true; cond; cond = int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(idxStr + uintptr(iIdxStr)))) <= int32('9') { @@ -287281,7 +289219,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent == uintptr(0) { - *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+38338, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+38484, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) rc = int32(SQLITE_ERROR) } else { /* This is either a full-table scan (ePlan==FTS5_PLAN_SCAN) or a lookup @@ -287305,6 +289243,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } } + goto filter_out filter_out: ; _sqlite3Fts5ExprFree(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -287418,7 +289357,7 @@ func _fts5SeekCursor(tls *libc.TLS, pCsr uintptr, bErrormsg int32) (r int32) { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< int32(1) { - v1 = __ccgo_ts + 22195 + v1 = __ccgo_ts + 22327 } else { - v1 = __ccgo_ts + 38616 + v1 = __ccgo_ts + 38762 } - (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+38628, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+38774, libc.VaList(bp+16, v1, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if nArg == int32(1) { @@ -287675,7 +289614,7 @@ func _fts5UpdateMethod(tls *libc.TLS, pVtab uintptr, nArg int32, apVal uintptr, } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && bUpdateOrDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FbSecureDelete != 0 && (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion == int32(FTS5_CURRENT_VERSION) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+37165, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageConfigValue(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, __ccgo_ts+37311, uintptr(0), int32(FTS5_CURRENT_VERSION_SECUREDELETE)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = int32(FTS5_CURRENT_VERSION_SECUREDELETE) } @@ -288471,7 +290410,7 @@ func _fts5ApiCallback(tls *libc.TLS, context uintptr, argc int32, argv uintptr) iCsrId = Xsqlite3_value_int64(tls, *(*uintptr)(unsafe.Pointer(argv))) pCsr = _fts5CursorFromCsrid(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal, iCsrId) if pCsr == uintptr(0) || (*TFts5Cursor)(unsafe.Pointer(pCsr)).FePlan == 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+38665, libc.VaList(bp+8, iCsrId)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+38811, libc.VaList(bp+8, iCsrId)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } else { @@ -288662,7 +290601,7 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) (*TFts5Config)(unsafe.Pointer(pConfig)).FpzErrmsg = uintptr(0) } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 && Xsqlite3_vtab_nochange(tls, pCtx) != 0 { - zErr = Xsqlite3_mprintf(tls, __ccgo_ts+38686, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+38832, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -288904,7 +290843,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr pMod = _fts5LocateTokenizer(tls, pGlobal, v1) if pMod == uintptr(0) { rc = int32(SQLITE_ERROR) - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38757, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38903, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(azArg)))) } else { if azArg != 0 { v2 = azArg + 1*8 @@ -288920,7 +290859,7 @@ func _sqlite3Fts5GetTokenizer(tls *libc.TLS, pGlobal uintptr, azArg uintptr, nAr (*TFts5Config)(unsafe.Pointer(pConfig)).FpTokApi = pMod + 16 if rc != SQLITE_OK { if pzErr != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38779, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38925, 0) } } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FePattern = _sqlite3Fts5TokenizerPattern(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pMod)).Fx.FxCreate, (*TFts5Config)(unsafe.Pointer(pConfig)).FpTok) @@ -288975,7 +290914,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { _, _ = pGlobal, ppApi pGlobal = Xsqlite3_user_data(tls, pCtx) _ = nArg - ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+38810) + ppApi = Xsqlite3_value_pointer(tls, *(*uintptr)(unsafe.Pointer(apArg)), __ccgo_ts+38956) if ppApi != 0 { *(*uintptr)(unsafe.Pointer(ppApi)) = pGlobal } @@ -288989,7 +290928,7 @@ func _fts5Fts5Func(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) { func _fts5SourceIdFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apUnused uintptr) { _ = nArg _ = apUnused - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+38823, -int32(1), uintptr(-libc.Int32FromInt32(1))) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+38969, -int32(1), uintptr(-libc.Int32FromInt32(1))) } // C documentation @@ -289018,11 +290957,11 @@ func _fts5ShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName2 = [5]uintptr{ - 0: __ccgo_ts + 38914, - 1: __ccgo_ts + 36426, - 2: __ccgo_ts + 27074, - 3: __ccgo_ts + 36993, - 4: __ccgo_ts + 13102, + 0: __ccgo_ts + 39060, + 1: __ccgo_ts + 36572, + 2: __ccgo_ts + 27220, + 3: __ccgo_ts + 37139, + 4: __ccgo_ts + 13227, } // C documentation @@ -289036,20 +290975,26 @@ func _fts5IntegrityMethod(tls *libc.TLS, pVtab uintptr, zSchema uintptr, zTabnam bp := tls.Alloc(32) defer tls.Free(32) var pTab uintptr - var rc int32 - _, _ = pTab, rc + var rc, v1 int32 + _, _, _ = pTab, rc, v1 pTab = pVtab _ = isQuick rc = _sqlite3Fts5StorageIntegrity(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).FpStorage, 0) if rc&int32(0xff) == int32(SQLITE_CORRUPT) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38921, libc.VaList(bp+8, zSchema, zTabname)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39067, libc.VaList(bp+8, zSchema, zTabname)) + if *(*uintptr)(unsafe.Pointer(pzErr)) != 0 { + v1 = SQLITE_OK + } else { + v1 = int32(SQLITE_NOMEM) + } + rc = v1 } else { if rc != SQLITE_OK { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+38967, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39113, libc.VaList(bp+8, zSchema, zTabname, Xsqlite3_errstr(tls, rc))) } } _sqlite3Fts5IndexCloseReader(tls, (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.FpIndex) - return SQLITE_OK + return rc } func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { @@ -289068,7 +291013,7 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateFunction = __ccgo_fp(_fts5CreateAux) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxCreateTokenizer = __ccgo_fp(_fts5CreateTokenizer) (*TFts5Global)(unsafe.Pointer(pGlobal)).Fapi.FxFindTokenizer = __ccgo_fp(_fts5FindTokenizer) - rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39030, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+39176, uintptr(unsafe.Pointer(&_fts5Mod)), p, __ccgo_fp(_fts5ModuleDestroy)) if rc == SQLITE_OK { rc = _sqlite3Fts5IndexInit(tls, db) } @@ -289085,10 +291030,10 @@ func _fts5Init(tls *libc.TLS, db uintptr) (r int32) { rc = _sqlite3Fts5VocabInit(tls, pGlobal, db) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+39030, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+39176, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_fts5Fts5Func), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+39035, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+39181, 0, libc.Int32FromInt32(SQLITE_UTF8)|libc.Int32FromInt32(SQLITE_DETERMINISTIC)|libc.Int32FromInt32(SQLITE_INNOCUOUS), p, __ccgo_fp(_fts5SourceIdFunc), uintptr(0), uintptr(0)) } } /* If SQLITE_FTS5_ENABLE_TEST_MI is defined, assume that the file @@ -289191,17 +291136,17 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, ** statements to operate on it. */ if *(*uintptr)(unsafe.Pointer(p + 40 + uintptr(eStmt)*8)) == uintptr(0) { azStmt = [11]uintptr{ - 0: __ccgo_ts + 39050, - 1: __ccgo_ts + 39118, - 2: __ccgo_ts + 39187, - 3: __ccgo_ts + 39220, - 4: __ccgo_ts + 39259, - 5: __ccgo_ts + 39299, - 6: __ccgo_ts + 39338, - 7: __ccgo_ts + 39381, - 8: __ccgo_ts + 39420, - 9: __ccgo_ts + 39464, - 10: __ccgo_ts + 39504, + 0: __ccgo_ts + 39196, + 1: __ccgo_ts + 39264, + 2: __ccgo_ts + 39333, + 3: __ccgo_ts + 39366, + 4: __ccgo_ts + 39405, + 5: __ccgo_ts + 39445, + 6: __ccgo_ts + 39484, + 7: __ccgo_ts + 39527, + 8: __ccgo_ts + 39566, + 9: __ccgo_ts + 39610, + 10: __ccgo_ts + 39650, } pC = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig zSql = uintptr(0) @@ -289238,16 +291183,16 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, } case int32(FTS5_STMT_REPLACE_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v2 = __ccgo_ts + 39527 + v2 = __ccgo_ts + 39673 } else { - v2 = __ccgo_ts + 1658 + v2 = __ccgo_ts + 1672 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName, v2)) case int32(FTS5_STMT_LOOKUP_DOCSIZE): if (*TFts5Config)(unsafe.Pointer(pC)).FbContentlessDelete != 0 { - v3 = __ccgo_ts + 39530 + v3 = __ccgo_ts + 39676 } else { - v3 = __ccgo_ts + 1658 + v3 = __ccgo_ts + 1672 } zSql = Xsqlite3_mprintf(tls, azStmt[eStmt], libc.VaList(bp+8, v3, (*TFts5Config)(unsafe.Pointer(pC)).FzDb, (*TFts5Config)(unsafe.Pointer(pC)).FzName)) default: @@ -289266,7 +291211,7 @@ func _fts5StorageGetStmt(tls *libc.TLS, p uintptr, eStmt int32, ppStmt uintptr, (*TFts5Config)(unsafe.Pointer((*TFts5Storage)(unsafe.Pointer(p)).FpConfig)).FbLock-- Xsqlite3_free(tls, zSql) if rc != SQLITE_OK && pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4645, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+4709, libc.VaList(bp+8, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pC)).Fdb))) } } } @@ -289303,12 +291248,12 @@ func _sqlite3Fts5DropAll(tls *libc.TLS, pConfig uintptr) (r int32) { defer tls.Free(64) var rc int32 _ = rc - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39538, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39684, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39642, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39788, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39680, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39826, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } return rc } @@ -289317,7 +291262,7 @@ func _fts5StorageRenameOne(tls *libc.TLS, pConfig uintptr, pRc uintptr, zTail ui bp := tls.Alloc(48) defer tls.Free(48) if *(*int32)(unsafe.Pointer(pRc)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39718, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) + *(*int32)(unsafe.Pointer(pRc)) = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39864, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) } } @@ -289329,14 +291274,14 @@ func _sqlite3Fts5StorageRename(tls *libc.TLS, pStorage uintptr, zName uintptr) ( _ = pConfig pConfig = (*TFts5Storage)(unsafe.Pointer(pStorage)).FpConfig *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5StorageSync(tls, pStorage) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+27074, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+13102, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+38914, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+27220, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+13227, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+39060, zName) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+36993, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+37139, zName) } if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+36426, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+36572, zName) } return *(*int32)(unsafe.Pointer(bp)) } @@ -289356,13 +291301,13 @@ func _sqlite3Fts5CreateTable(tls *libc.TLS, pConfig uintptr, zPost uintptr, zDef _, _ = rc, v1 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) if bWithout != 0 { - v1 = __ccgo_ts + 31714 + v1 = __ccgo_ts + 31860 } else { - v1 = __ccgo_ts + 1658 + v1 = __ccgo_ts + 1672 } - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+39760, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+39906, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, zDefn, v1)) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39790, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39936, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -289403,36 +291348,36 @@ func _sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCr if zDefn == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { - Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+39834, 0) + Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+39980, 0) iOff = int32(libc.Xstrlen(tls, zDefn)) i = 0 for { if !(i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } - Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+39857, libc.VaList(bp+8, i)) + Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+40003, libc.VaList(bp+8, i)) iOff += int32(libc.Xstrlen(tls, zDefn+uintptr(iOff))) goto _2 _2: ; i++ } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+36426, zDefn, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+36572, zDefn, 0, pzErr) } Xsqlite3_free(tls, zDefn) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - zCols = __ccgo_ts + 39863 + zCols = __ccgo_ts + 40009 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 { - zCols = __ccgo_ts + 39895 + zCols = __ccgo_ts + 40041 } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+36993, zCols, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+37139, zCols, 0, pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+38914, __ccgo_ts+39943, int32(1), pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+39060, __ccgo_ts+40089, int32(1), pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+37165, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+37311, uintptr(0), int32(FTS5_CURRENT_VERSION)) } } if rc != 0 { @@ -289774,9 +291719,9 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig (*TFts5Storage)(unsafe.Pointer(p)).FbTotalsValid = 0 /* Delete the contents of the %_data and %_docsize tables. */ - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39960, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+40106, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+40010, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+40156, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } /* Reinitialize the %_data table. This call creates the initial structure ** and averages records. */ @@ -289784,7 +291729,7 @@ func _sqlite3Fts5StorageDeleteAll(tls *libc.TLS, p uintptr) (r int32) { rc = _sqlite3Fts5IndexReinit(tls, (*TFts5Storage)(unsafe.Pointer(p)).FpIndex) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+37165, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+37311, uintptr(0), int32(FTS5_CURRENT_VERSION)) } return rc } @@ -289998,7 +291943,7 @@ func _fts5StorageCount(tls *libc.TLS, p uintptr, zSuffix uintptr, pnRow uintptr) var _ /* pCnt at bp+0 */ uintptr _, _, _ = pConfig, rc, zSql pConfig = (*TFts5Storage)(unsafe.Pointer(p)).FpConfig - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+40039, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+40185, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -290208,14 +292153,14 @@ func _sqlite3Fts5StorageIntegrity(tls *libc.TLS, p uintptr, iArg int32) (r int32 ** number of rows. */ if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { *(*Ti64)(unsafe.Pointer(bp + 48)) = 0 - rc = _fts5StorageCount(tls, p, __ccgo_ts+36426, bp+48) + rc = _fts5StorageCount(tls, p, __ccgo_ts+36572, bp+48) if rc == SQLITE_OK && *(*Ti64)(unsafe.Pointer(bp + 48)) != (*TFts5Storage)(unsafe.Pointer(p)).FnTotalRow { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)<= int32('A') && int32(*(*uint8)(unsafe.Pointer(zCsr))) <= int32('Z') { @@ -291136,6 +293083,7 @@ _5: goto _2 _1: ; + goto tokenize_done tokenize_done: ; if rc == int32(SQLITE_DONE) { @@ -291199,7 +293147,7 @@ func _fts5PorterCreate(tls *libc.TLS, pCtx uintptr, azArg uintptr, nArg int32, p pApi = pCtx rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - zBase = __ccgo_ts + 40131 + zBase = __ccgo_ts + 40277 if nArg > 0 { zBase = *(*uintptr)(unsafe.Pointer(azArg)) } @@ -291414,64 +293362,64 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40141, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40287, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40144, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40290, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40149, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40295, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('e'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40154, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40300, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40157, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40303, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } case int32('l'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40160, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40306, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40165, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40311, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40170, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40316, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40174, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40320, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40180, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40326, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40185, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40331, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -291480,49 +293428,49 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40189, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40335, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1_and_S_or_T(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40193, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40339, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) } } } case int32('s'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40196, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40342, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('t'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40200, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40346, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40204, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40350, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40208, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40354, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40212, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40358, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('z'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40216, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40362, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -291539,20 +293487,20 @@ func _fts5PorterStep1B2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40220, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+40200, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40366, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+40346, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('b'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40223, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+40226, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40369, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+40372, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } case int32('i'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40230, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+40216, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40376, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+40362, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } @@ -291568,75 +293516,75 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40233, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40379, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+40200, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+40346, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40241, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40387, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+40248, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+40394, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(4) } } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40253, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40399, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+40149, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+40295, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40258, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40404, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+40144, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+40290, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } } case int32('e'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40263, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40409, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+40216, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+40362, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('g'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40268, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40414, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+17221, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+17300, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('l'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40273, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40419, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+40226, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+40372, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40277, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40423, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+40141, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+40287, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40282, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40428, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40185, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40331, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40288, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40434, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+40292, uint64(1)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+40438, uint64(1)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(1) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40294, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40440, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40208, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40354, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } @@ -291645,48 +293593,48 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('o'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40300, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40446, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+40216, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+40362, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40308, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40454, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40200, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40346, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40314, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40460, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+40200, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+40346, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } } } case int32('s'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40319, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40465, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40141, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40287, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40325, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40471, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+40212, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+40358, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40333, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40479, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+40341, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+40487, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40345, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40491, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(7)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+40208, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+40354, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } @@ -291694,21 +293642,21 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40353, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40499, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40141, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40287, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40359, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40505, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40212, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40358, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40365, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40511, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(6)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+40226, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+40372, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(3) } } @@ -291726,48 +293674,48 @@ func _fts5PorterStep3(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40372, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40518, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+40157, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+40303, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } case int32('s'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40377, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40523, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(4)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) } } case int32('t'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40382, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40528, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40157, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40303, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40388, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40534, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40157, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40303, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40341, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40487, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } } case int32('v'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40394, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40540, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) } } case int32('z'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40400, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40546, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(5)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40141, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+40287, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } @@ -291783,13 +293731,13 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch int32(*(*int8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('e'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40406, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40552, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt0(tls, aBuf, nBuf-int32(3)) != 0 { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+40410, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+40556, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(2) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40413, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40559, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(2)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) ret = int32(1) @@ -291797,7 +293745,7 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { } } case int32('n'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40416, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40562, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_Vowel(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) ret = int32(1) @@ -291882,6 +293830,7 @@ func _fts5PorterCb(tls *libc.TLS, pCtx uintptr, tflags int32, pToken uintptr, nT *(*int32)(unsafe.Pointer(bp))-- } return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, aBuf, *(*int32)(unsafe.Pointer(bp)), iStart, iEnd) + goto pass_through pass_through: ; return (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterContext)(unsafe.Pointer(p)).FxToken})))(tls, (*TPorterContext)(unsafe.Pointer(p)).FpCtx, tflags, pToken, nToken, iStart, iEnd) @@ -291957,14 +293906,14 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p break } zArg = *(*uintptr)(unsafe.Pointer(azArg + uintptr(i+int32(1))*8)) - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+40420) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+40566) { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') || *(*int8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { (*TTrigramTokenizer)(unsafe.Pointer(pNew)).FbFold = libc.BoolInt32(int32(*(*int8)(unsafe.Pointer(zArg))) == int32('0')) } } else { - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+40113) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+40259) { if int32(*(*int8)(unsafe.Pointer(zArg))) != int32('0') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('1') && int32(*(*int8)(unsafe.Pointer(zArg))) != int32('2') || *(*int8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { @@ -292238,7 +294187,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { Fx Tfts5_tokenizer }{ 0: { - FzName: __ccgo_ts + 40131, + FzName: __ccgo_ts + 40277, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5UnicodeCreate), FxDelete: __ccgo_fp(_fts5UnicodeDelete), @@ -292246,7 +294195,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 1: { - FzName: __ccgo_ts + 40435, + FzName: __ccgo_ts + 40581, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5AsciiCreate), FxDelete: __ccgo_fp(_fts5AsciiDelete), @@ -292254,7 +294203,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 2: { - FzName: __ccgo_ts + 40441, + FzName: __ccgo_ts + 40587, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5PorterCreate), FxDelete: __ccgo_fp(_fts5PorterDelete), @@ -292262,7 +294211,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 3: { - FzName: __ccgo_ts + 40448, + FzName: __ccgo_ts + 40594, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5TriCreate), FxDelete: __ccgo_fp(_fts5TriDelete), @@ -297796,16 +299745,16 @@ func _fts5VocabTableType(tls *libc.TLS, zType uintptr, pzErr uintptr, peType uin zCopy = _sqlite3Fts5Strndup(tls, bp, zType, -int32(1)) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { _sqlite3Fts5Dequote(tls, zCopy) - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+40456) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+40602) == 0 { *(*int32)(unsafe.Pointer(peType)) = FTS5_VOCAB_COL } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+40460) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+40606) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_ROW) } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+40464) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+40610) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_INSTANCE) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+40473, libc.VaList(bp+16, zCopy)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+40619, libc.VaList(bp+16, zCopy)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -297874,15 +299823,15 @@ func _fts5VocabInitVtab(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg var _ /* rc at bp+0 */ int32 _, _, _, _, _, _, _, _, _, _, _, _ = azSchema, bDb, nByte, nDb, nTab, pRet, zDb, zTab, zType, v1, v2, v3 azSchema = [3]uintptr{ - 0: __ccgo_ts + 40507, - 1: __ccgo_ts + 40547, - 2: __ccgo_ts + 40582, + 0: __ccgo_ts + 40653, + 1: __ccgo_ts + 40693, + 2: __ccgo_ts + 40728, } pRet = uintptr(0) *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK - bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25068, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) + bDb = libc.BoolInt32(argc == int32(6) && libc.Xstrlen(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))) == uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+25191, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) if argc != int32(5) && bDb == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+40625, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+40771, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bDb != 0 { @@ -298052,10 +300001,10 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) zSql = uintptr(0) if (*TFts5VocabTable)(unsafe.Pointer(pTab)).FbBusy != 0 { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+40658, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+40804, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) return int32(SQLITE_ERROR) } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+40689, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+40835, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_prepare_v2(tls, (*TFts5VocabTable)(unsafe.Pointer(pTab)).Fdb, zSql, -int32(1), bp+8, uintptr(0)) } @@ -298074,7 +300023,7 @@ func _fts5VocabOpenMethod(tls *libc.TLS, pVTab uintptr, ppCsr uintptr) (r int32) *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+40740, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) + (*Tsqlite3_vtab)(unsafe.Pointer(pVTab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+40886, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } else { @@ -298376,7 +300325,7 @@ func _fts5VocabFilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, zUnuse if pLe != 0 { zCopy = Xsqlite3_value_text(tls, pLe) if zCopy == uintptr(0) { - zCopy = __ccgo_ts + 1658 + zCopy = __ccgo_ts + 1672 } (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm = Xsqlite3_value_bytes(tls, pLe) (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FzLeTerm = Xsqlite3_malloc(tls, (*TFts5VocabCursor)(unsafe.Pointer(pCsr)).FnLeTerm+int32(1)) @@ -298500,7 +300449,7 @@ func _sqlite3Fts5VocabInit(tls *libc.TLS, pGlobal uintptr, db uintptr) (r int32) var p uintptr _ = p p = pGlobal - return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+40766, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) + return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+40912, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) } var _fts5Vocab = Tsqlite3_module{ @@ -298553,7 +300502,7 @@ func init() { // /************** End of stmt.c ************************************************/ // /* Return the source-id for this library */ func Xsqlite3_sourceid(tls *libc.TLS) (r uintptr) { - return __ccgo_ts + 40776 + return __ccgo_ts + 40922 } type TAggInfo_col = struct { @@ -298986,11 +300935,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]int8{'3', '.', '4', '5', '.', '3'} +var Xsqlite3_version = [7]int8{'3', '.', '4', '6', '.', '0'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-12-win32\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_W32\x00OMIT_SEH\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%04d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00(subquery-%u)\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSmaller\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00AreFileApisANSI\x00CharLowerW\x00CharUpperW\x00CloseHandle\x00CreateFileA\x00CreateFileW\x00CreateFileMappingA\x00CreateFileMappingW\x00CreateMutexW\x00DeleteFileA\x00DeleteFileW\x00FileTimeToLocalFileTime\x00FileTimeToSystemTime\x00FlushFileBuffers\x00FormatMessageA\x00FormatMessageW\x00FreeLibrary\x00GetCurrentProcessId\x00GetDiskFreeSpaceA\x00GetDiskFreeSpaceW\x00GetFileAttributesA\x00GetFileAttributesW\x00GetFileAttributesExW\x00GetFileSize\x00GetFullPathNameA\x00GetFullPathNameW\x00GetLastError\x00GetProcAddressA\x00GetSystemInfo\x00GetSystemTime\x00GetSystemTimeAsFileTime\x00GetTempPathA\x00GetTempPathW\x00GetTickCount\x00GetVersionExA\x00GetVersionExW\x00HeapAlloc\x00HeapCreate\x00HeapDestroy\x00HeapFree\x00HeapReAlloc\x00HeapSize\x00HeapValidate\x00HeapCompact\x00LoadLibraryA\x00LoadLibraryW\x00LocalFree\x00LockFile\x00LockFileEx\x00MapViewOfFile\x00MultiByteToWideChar\x00QueryPerformanceCounter\x00ReadFile\x00SetEndOfFile\x00SetFilePointer\x00Sleep\x00SystemTimeToFileTime\x00UnlockFile\x00UnlockFileEx\x00UnmapViewOfFile\x00WideCharToMultiByte\x00WriteFile\x00CreateEventExW\x00WaitForSingleObject\x00WaitForSingleObjectEx\x00SetFilePointerEx\x00GetFileInformationByHandleEx\x00MapViewOfFileFromApp\x00CreateFile2\x00LoadPackagedLibrary\x00GetTickCount64\x00GetNativeSystemInfo\x00OutputDebugStringA\x00OutputDebugStringW\x00GetProcessHeap\x00CreateFileMappingFromApp\x00InterlockedCompareExchange\x00UuidCreate\x00UuidCreateSequential\x00FlushViewOfFile\x00%s\x00OsError 0x%lx (%lu)\x00os_win.c:%d: (%lu) %s(%s) - %s\x00delayed %dms for lock/sharing conflict at line %d\x00winSeekFile\x00winClose\x00winRead\x00winWrite1\x00winWrite2\x00winTruncate1\x00winTruncate2\x00winSync1\x00winSync2\x00winFileSize\x00winUnlockReadLock\x00winUnlock\x00winLockSharedMemory\x00%s-shm\x00readonly_shm\x00winOpenShm\x00winShmMap1\x00winShmMap2\x00winShmMap3\x00winUnmapfile1\x00winUnmapfile2\x00winMapfile1\x00winMapfile2\x00etilqs_\x00winGetTempname1\x00winGetTempname2\x00winGetTempname3\x00winGetTempname4\x00winGetTempname5\x00exclusive\x00winOpen\x00psow\x00winDelete\x00winAccess\x00%s%c%s\x00winFullPathname1\x00winFullPathname2\x00winFullPathname3\x00winFullPathname4\x00win32\x00win32-longpath\x00win32-none\x00win32-longpath-none\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00PRAGMA \"%w\".integrity_check(%Q)\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00stat\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00ceiling\x00floor\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00dll\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_store_directory\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00wrong # of entries in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00RIGHT PART OF \x00USE TEMP B-TREE FOR %sORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00parser stack overflow\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00access\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-12-win32\x00DEFAULT_AUTOVACUUM\x00DEFAULT_CACHE_SIZE=-2000\x00DEFAULT_FILE_FORMAT=4\x00DEFAULT_JOURNAL_SIZE_LIMIT=-1\x00DEFAULT_MEMSTATUS=0\x00DEFAULT_MMAP_SIZE=0\x00DEFAULT_PAGE_SIZE=4096\x00DEFAULT_PCACHE_INITSZ=20\x00DEFAULT_RECURSIVE_TRIGGERS\x00DEFAULT_SECTOR_SIZE=4096\x00DEFAULT_SYNCHRONOUS=2\x00DEFAULT_WAL_AUTOCHECKPOINT=1000\x00DEFAULT_WAL_SYNCHRONOUS=2\x00DEFAULT_WORKER_THREADS=0\x00DIRECT_OVERFLOW_READ\x00ENABLE_COLUMN_METADATA\x00ENABLE_DBSTAT_VTAB\x00ENABLE_FTS5\x00ENABLE_GEOPOLY\x00ENABLE_MATH_FUNCTIONS\x00ENABLE_MEMORY_MANAGEMENT\x00ENABLE_OFFSET_SQL_FUNC\x00ENABLE_PREUPDATE_HOOK\x00ENABLE_RBU\x00ENABLE_RTREE\x00ENABLE_SESSION\x00ENABLE_SNAPSHOT\x00ENABLE_STAT4\x00ENABLE_UNLOCK_NOTIFY\x00LIKE_DOESNT_MATCH_BLOBS\x00MALLOC_SOFT_LIMIT=1024\x00MAX_ATTACHED=10\x00MAX_COLUMN=2000\x00MAX_COMPOUND_SELECT=500\x00MAX_DEFAULT_PAGE_SIZE=8192\x00MAX_EXPR_DEPTH=1000\x00MAX_FUNCTION_ARG=127\x00MAX_LENGTH=1000000000\x00MAX_LIKE_PATTERN_LENGTH=50000\x00MAX_MMAP_SIZE=0x7fff0000\x00MAX_PAGE_COUNT=0xfffffffe\x00MAX_PAGE_SIZE=65536\x00MAX_SQL_LENGTH=1000000000\x00MAX_TRIGGER_DEPTH=1000\x00MAX_VARIABLE_NUMBER=32766\x00MAX_VDBE_OP=250000000\x00MAX_WORKER_THREADS=8\x00MUTEX_W32\x00OMIT_SEH\x00SOUNDEX\x00SYSTEM_MALLOC\x00TEMP_STORE=1\x00THREADSAFE=1\x00ANY\x00BLOB\x00INT\x00INTEGER\x00REAL\x00TEXT\x0020b:20e\x0020c:20e\x0020e\x0040f-21a-21d\x00now\x00subsec\x00subsecond\x00local time unavailable\x00auto\x00ceiling\x00floor\x00julianday\x00localtime\x00unixepoch\x00utc\x00weekday \x00start of \x00month\x00year\x00day\x0040f\x0050f\x0040f-20a-20d\x0050f-20a-20d\x00%02d\x00%2d\x00%06.3f\x00%04d-%02d-%02d\x00%04d\x00%03d\x00%.16g\x00PM\x00pm\x00AM\x00am\x00%02d:%02d\x00%.3f\x00%lld\x00%02d:%02d:%02d\x00%c%04d-%02d-%02d %02d:%02d:%06.3f\x00date\x00time\x00datetime\x00strftime\x00timediff\x00current_time\x00current_timestamp\x00current_date\x00failed to allocate %u bytes of memory\x00failed memory resize %u to %u bytes\x00out of memory\x00%\x00null\x00NaN\x00-Inf\x00\x00NULL\x00(NULL)\x00.\x00(join-%u)\x00%u-ROW VALUES CLAUSE\x00(subquery-%u)\x00unrecognized token: \"%s\"\x00922337203685477580\x00+- \n\t0123456789\x000\x00API call with %s database connection pointer\x00unopened\x00invalid\x00Savepoint\x00AutoCommit\x00Transaction\x00Checkpoint\x00JournalMode\x00Vacuum\x00VFilter\x00VUpdate\x00Init\x00Goto\x00Gosub\x00InitCoroutine\x00Yield\x00MustBeInt\x00Jump\x00Once\x00If\x00IfNot\x00IsType\x00Not\x00IfNullRow\x00SeekLT\x00SeekLE\x00SeekGE\x00SeekGT\x00IfNotOpen\x00IfNoHope\x00NoConflict\x00NotFound\x00Found\x00SeekRowid\x00NotExists\x00Last\x00IfSizeBetween\x00SorterSort\x00Sort\x00Rewind\x00SorterNext\x00Prev\x00Next\x00IdxLE\x00IdxGT\x00IdxLT\x00Or\x00And\x00IdxGE\x00RowSetRead\x00RowSetTest\x00Program\x00FkIfZero\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\x00IfPos\x00IfNotZero\x00DecrJumpZero\x00IncrVacuum\x00VNext\x00Filter\x00PureFunc\x00Function\x00Return\x00EndCoroutine\x00HaltIfNull\x00Halt\x00Integer\x00Int64\x00String\x00BeginSubrtn\x00Null\x00SoftNull\x00Blob\x00Variable\x00Move\x00Copy\x00SCopy\x00IntCopy\x00FkCheck\x00ResultRow\x00CollSeq\x00AddImm\x00RealAffinity\x00Cast\x00Permutation\x00Compare\x00IsTrue\x00ZeroOrNull\x00Offset\x00Column\x00TypeCheck\x00Affinity\x00MakeRecord\x00Count\x00ReadCookie\x00SetCookie\x00ReopenIdx\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenRead\x00OpenWrite\x00BitNot\x00OpenDup\x00OpenAutoindex\x00String8\x00OpenEphemeral\x00SorterOpen\x00SequenceTest\x00OpenPseudo\x00Close\x00ColumnsUsed\x00SeekScan\x00SeekHit\x00Sequence\x00NewRowid\x00Insert\x00RowCell\x00Delete\x00ResetCount\x00SorterCompare\x00SorterData\x00RowData\x00Rowid\x00NullRow\x00SeekEnd\x00IdxInsert\x00SorterInsert\x00IdxDelete\x00DeferredSeek\x00IdxRowid\x00FinishSeek\x00Destroy\x00Clear\x00ResetSorter\x00CreateBtree\x00SqlExec\x00ParseSchema\x00LoadAnalysis\x00DropTable\x00DropIndex\x00Real\x00DropTrigger\x00IntegrityCk\x00RowSetAdd\x00Param\x00FkCounter\x00MemMax\x00OffsetLimit\x00AggInverse\x00AggStep\x00AggStep1\x00AggValue\x00AggFinal\x00Expire\x00CursorLock\x00CursorUnlock\x00TableLock\x00VBegin\x00VCreate\x00VDestroy\x00VOpen\x00VCheck\x00VInitIn\x00VColumn\x00VRename\x00Pagecount\x00MaxPgcnt\x00ClrSubtype\x00GetSubtype\x00SetSubtype\x00FilterAdd\x00Trace\x00CursorHint\x00ReleaseReg\x00Noop\x00Explain\x00Abortable\x00AreFileApisANSI\x00CharLowerW\x00CharUpperW\x00CloseHandle\x00CreateFileA\x00CreateFileW\x00CreateFileMappingA\x00CreateFileMappingW\x00CreateMutexW\x00DeleteFileA\x00DeleteFileW\x00FileTimeToLocalFileTime\x00FileTimeToSystemTime\x00FlushFileBuffers\x00FormatMessageA\x00FormatMessageW\x00FreeLibrary\x00GetCurrentProcessId\x00GetDiskFreeSpaceA\x00GetDiskFreeSpaceW\x00GetFileAttributesA\x00GetFileAttributesW\x00GetFileAttributesExW\x00GetFileSize\x00GetFullPathNameA\x00GetFullPathNameW\x00GetLastError\x00GetProcAddressA\x00GetSystemInfo\x00GetSystemTime\x00GetSystemTimeAsFileTime\x00GetTempPathA\x00GetTempPathW\x00GetTickCount\x00GetVersionExA\x00GetVersionExW\x00HeapAlloc\x00HeapCreate\x00HeapDestroy\x00HeapFree\x00HeapReAlloc\x00HeapSize\x00HeapValidate\x00HeapCompact\x00LoadLibraryA\x00LoadLibraryW\x00LocalFree\x00LockFile\x00LockFileEx\x00MapViewOfFile\x00MultiByteToWideChar\x00QueryPerformanceCounter\x00ReadFile\x00SetEndOfFile\x00SetFilePointer\x00Sleep\x00SystemTimeToFileTime\x00UnlockFile\x00UnlockFileEx\x00UnmapViewOfFile\x00WideCharToMultiByte\x00WriteFile\x00CreateEventExW\x00WaitForSingleObject\x00WaitForSingleObjectEx\x00SetFilePointerEx\x00GetFileInformationByHandleEx\x00MapViewOfFileFromApp\x00CreateFile2\x00LoadPackagedLibrary\x00GetTickCount64\x00GetNativeSystemInfo\x00OutputDebugStringA\x00OutputDebugStringW\x00GetProcessHeap\x00CreateFileMappingFromApp\x00InterlockedCompareExchange\x00UuidCreate\x00UuidCreateSequential\x00FlushViewOfFile\x00%s\x00OsError 0x%lx (%lu)\x00os_win.c:%d: (%lu) %s(%s) - %s\x00delayed %dms for lock/sharing conflict at line %d\x00winSeekFile\x00winClose\x00winRead\x00winWrite1\x00winWrite2\x00winTruncate1\x00winTruncate2\x00winSync1\x00winSync2\x00winFileSize\x00winUnlockReadLock\x00winUnlock\x00winLockSharedMemory\x00%s-shm\x00readonly_shm\x00winOpenShm\x00winShmMap1\x00winShmMap2\x00winShmMap3\x00winUnmapfile1\x00winUnmapfile2\x00winMapfile1\x00winMapfile2\x00etilqs_\x00winGetTempname1\x00winGetTempname2\x00winGetTempname3\x00winGetTempname4\x00winGetTempname5\x00exclusive\x00winOpen\x00psow\x00winDelete\x00winAccess\x00%s%c%s\x00winFullPathname1\x00winFullPathname2\x00winFullPathname3\x00winFullPathname4\x00win32\x00win32-longpath\x00win32-none\x00win32-longpath-none\x00memdb\x00memdb(%p,%lld)\x00PRAGMA \"%w\".page_count\x00BEGIN IMMEDIATE; COMMIT;\x00ATTACH x AS %Q\x00recovered %d pages from %s\x00-journal\x00-wal\x00nolock\x00immutable\x00PRAGMA table_list\x00recovered %d frames from WAL file %s\x00cannot limit WAL size: %s\x00:memory:\x00@ \x00\n\x00invalid page number %u\x002nd reference to page %u\x00Failed to read ptrmap key=%u\x00Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)\x00failed to get page %u\x00freelist leaf count too big on page %u\x00size\x00overflow list length\x00%s is %u but should be %u\x00Tree %u page %u: \x00unable to get the page. error code=%d\x00btreeInitPage() returns error code %d\x00free space corruption\x00Tree %u page %u cell %u: \x00Tree %u page %u right child: \x00Offset %u out of range %u..%u\x00Extends off end of page\x00Rowid %lld out of order\x00Child page depth differs\x00Multiple uses for byte %u of page %u\x00Fragmentation of %u bytes reported as %u on page %u\x00Freelist: \x00max rootpage (%u) disagrees with header (%u)\x00incremental_vacuum enabled with a max rootpage of zero\x00Page %u: never used\x00Page %u: pointer map referenced\x00unknown database %s\x00destination database is in use\x00source and destination must be distinct\x00%!.15g\x00-\x00%s%s\x00k(%d\x00BINARY\x00B\x00N.\x00,%s%s%s\x00)\x00?\x008\x0016LE\x0016BE\x00%.18s-%s\x00%s(%d)\x00%d\x00(blob)\x00vtab:%p\x00%c%u\x00]\x00program\x00%.4c%s%.16c\x00MJ delete: %s\x00MJ collide: %s\x00-mj%06X9%02X\x00FOREIGN KEY constraint failed\x00a CHECK constraint\x00a generated column\x00an index\x00non-deterministic use of %s() in %s\x00API called with finalized prepared statement\x00API called with NULL prepared statement\x00string or blob too big\x00addr\x00opcode\x00p1\x00p2\x00p3\x00p4\x00p5\x00comment\x00id\x00parent\x00notused\x00detail\x00bind on a busy prepared statement: [%s]\x00-- \x00'%.*q'\x00zeroblob(%d)\x00x'\x00%02x\x00'\x00NOT NULL\x00UNIQUE\x00CHECK\x00FOREIGN KEY\x00%s constraint failed\x00%z: %s\x00abort at %d in [%s]: %s\x00cannot store %s value in %s column %s.%s\x00cannot open savepoint - SQL statements in progress\x00no such savepoint: %s\x00cannot release savepoint - SQL statements in progress\x00cannot commit transaction - SQL statements in progress\x00cannot start a transaction within a transaction\x00cannot rollback - no transaction is active\x00cannot commit - no transaction is active\x00database schema has changed\x00index corruption\x00sqlite_master\x00SELECT*FROM\"%w\".%s WHERE %s ORDER BY rowid\x00too many levels of trigger recursion\x00into\x00out of\x00cannot change %s wal mode from within a transaction\x00database table is locked: %s\x00ValueList\x00-- %s\x00statement aborts at %d: [%s] %s\x00real\x00integer\x00cannot open value of type %s\x00no such rowid: %lld\x00cannot open virtual table: %s\x00cannot open table without rowid: %s\x00cannot open view: %s\x00no such column: \"%s\"\x00foreign key\x00indexed\x00cannot open %s column for writing\x00sqlite_\x00sqlite_temp_master\x00sqlite_temp_schema\x00sqlite_schema\x00main\x00*\x00new\x00old\x00excluded\x00misuse of aliased aggregate %s\x00misuse of aliased window function %s\x00row value misused\x00double-quoted string literal: \"%w\"\x00coalesce\x00no such column\x00ambiguous column name\x00%s: %s.%s.%s\x00%s: %s.%s\x00%s: \"%s\" - should this be a string literal in single-quotes?\x00%s: %s\x00partial index WHERE clauses\x00index expressions\x00CHECK constraints\x00generated columns\x00%s prohibited in %s\x00the \".\" operator\x00second argument to %#T() must be a constant between 0.0 and 1.0\x00not authorized to use function: %#T\x00non-deterministic functions\x00%#T() may not be used as a window function\x00window\x00aggregate\x00misuse of %s function %#T()\x00no such function: %#T\x00wrong number of arguments to function %#T()\x00FILTER may not be used with non-aggregate %#T()\x00subqueries\x00parameters\x00%r %s BY term out of range - should be between 1 and %d\x00too many terms in ORDER BY clause\x00ORDER\x00%r ORDER BY term does not match any column in the result set\x00too many terms in %s BY clause\x00HAVING clause on a non-aggregate query\x00GROUP\x00aggregate functions are not allowed in the GROUP BY clause\x00Expression tree is too large (maximum depth %d)\x00s\x00IN(...) element has %d term%s - expected %d\x00too many arguments on function %T\x00ORDER BY may not be used with non-aggregate %#T()\x00unsafe use of %#T()\x00variable number must be between ?1 and ?%d\x00too many SQL variables\x00%d columns assigned %d values\x00too many columns in %s\x00true\x00false\x00_ROWID_\x00ROWID\x00OID\x00USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR\x00USING INDEX %s FOR IN-OPERATOR\x00sub-select returns %d columns - expected %d\x00REUSE LIST SUBQUERY %d\x00CORRELATED \x00%sLIST SUBQUERY %d\x00REUSE SUBQUERY %d\x00%sSCALAR SUBQUERY %d\x001\x000x\x00hex literal too big: %s%#T\x00generated column loop on \"%s\"\x00blob\x00text\x00numeric\x00flexnum\x00none\x00misuse of aggregate: %#T()\x00unknown function: %#T()\x00RAISE() may only be used within a trigger-program\x00table %s may not be altered\x00SELECT 1 FROM \"%w\".sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %d)=NULL \x00SELECT 1 FROM temp.sqlite_master WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%' AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %d)=NULL \x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_quotefix(%Q, sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_quotefix('temp', sql)WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND sql NOT LIKE 'create virtual%%'\x00there is already another table or index with this name: %s\x00table\x00view %s may not be altered\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)AND name NOT LIKE 'sqliteX_%%' ESCAPE 'X'\x00UPDATE %Q.sqlite_master SET tbl_name = %Q, name = CASE WHEN type='table' THEN %Q WHEN name LIKE 'sqliteX_autoindex%%' ESCAPE 'X' AND type='index' THEN 'sqlite_autoindex_' || %Q || substr(name,%d+18) ELSE name END WHERE tbl_name=%Q COLLATE nocase AND (type='table' OR type='index' OR type='trigger');\x00sqlite_sequence\x00UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q\x00UPDATE sqlite_temp_schema SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), tbl_name = CASE WHEN tbl_name=%Q COLLATE nocase AND sqlite_rename_test(%Q, sql, type, name, 1, 'after rename', 0) THEN %Q ELSE tbl_name END WHERE type IN ('view', 'trigger')\x00after rename\x00SELECT raise(ABORT,%Q) FROM \"%w\".\"%w\"\x00Cannot add a PRIMARY KEY column\x00Cannot add a UNIQUE column\x00Cannot add a REFERENCES column with non-NULL default value\x00Cannot add a NOT NULL column with default value NULL\x00Cannot add a column with non-constant default\x00cannot add a STORED column\x00UPDATE \"%w\".sqlite_master SET sql = printf('%%.%ds, ',sql) || %Q || substr(sql,1+length(printf('%%.%ds',sql))) WHERE type = 'table' AND name = %Q\x00SELECT CASE WHEN quick_check GLOB 'CHECK*' THEN raise(ABORT,'CHECK constraint failed') WHEN quick_check GLOB 'non-* value in*' THEN raise(ABORT,'type mismatch on DEFAULT') ELSE raise(ABORT,'NOT NULL constraint failed') END FROM pragma_quick_check(%Q,%Q) WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*' OR quick_check GLOB 'non-* value in*'\x00virtual tables may not be altered\x00Cannot add a column to a view\x00sqlite_altertab_%s\x00view\x00virtual table\x00drop column from\x00rename columns of\x00cannot %s %s \"%s\"\x00no such column: \"%T\"\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X' AND (type != 'index' OR tbl_name = %Q)\x00UPDATE temp.sqlite_master SET sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) WHERE type IN ('trigger', 'view')\x00 \x00error in %s %s%s%s: %s\x00CREATE \x00\"%w\" \x00%Q%s\x00%.*s%s\x00PRIMARY KEY\x00cannot drop %s column: \"%s\"\x00cannot drop column \"%s\": no other columns exist\x00UPDATE \"%w\".sqlite_master SET sql = sqlite_drop_column(%d, sql, %d) WHERE (type=='table' AND tbl_name=%Q COLLATE nocase)\x00after drop column\x00sqlite_rename_column\x00sqlite_rename_table\x00sqlite_rename_test\x00sqlite_drop_column\x00sqlite_rename_quotefix\x00sqlite_stat1\x00tbl,idx,stat\x00sqlite_stat4\x00tbl,idx,neq,nlt,ndlt,sample\x00sqlite_stat3\x00CREATE TABLE %Q.%s(%s)\x00DELETE FROM %Q.%s WHERE %s=%Q\x00DELETE FROM %Q.%s\x00stat_init\x00stat_push\x00%llu\x00 %llu\x00%llu \x00stat_get\x00sqlite\\_%\x00BBB\x00idx\x00tbl\x00unordered*\x00sz=[0-9]*\x00noskipscan*\x00SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase\x00SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4\x00SELECT tbl,idx,stat FROM %Q.sqlite_stat1\x00x\x00\x00too many attached databases - max %d\x00database %s is already in use\x00database is already attached\x00attached databases must use the same text encoding as main database\x00unable to open database: %s\x00no such database: %s\x00cannot detach database %s\x00database %s is locked\x00sqlite_detach\x00sqlite_attach\x00%s cannot use variables\x00%s %T cannot reference objects in database %s\x00authorizer malfunction\x00%s.%s\x00%s.%z\x00access to %z is prohibited\x00not authorized\x00pragma_\x00no such view\x00no such table\x00corrupt database\x00unknown database %T\x00object name reserved for internal use: %s\x00temporary table name must be unqualified\x00%s %T already exists\x00there is already an index named %s\x00cannot use RETURNING in a trigger\x00sqlite_returning_%p\x00too many columns on %s\x00always\x00generated\x00duplicate column name: %s\x00default value of column [%s] is not constant\x00cannot use DEFAULT on a generated column\x00generated columns cannot be part of the PRIMARY KEY\x00table \"%s\" has more than one primary key\x00AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY\x00virtual tables cannot use computed columns\x00virtual\x00stored\x00error in generated column \"%s\"\x00,\x00\n \x00,\n \x00\n)\x00CREATE TABLE \x00 TEXT\x00 NUM\x00 INT\x00 REAL\x00unknown datatype for %s.%s: \"%s\"\x00missing datatype for %s.%s\x00AUTOINCREMENT not allowed on WITHOUT ROWID tables\x00PRIMARY KEY missing on table %s\x00must have at least one non-generated column\x00TABLE\x00VIEW\x00CREATE %s %.*s\x00UPDATE %Q.sqlite_master SET type='%s', name=%Q, tbl_name=%Q, rootpage=#%d, sql=%Q WHERE rowid=#%d\x00CREATE TABLE %Q.sqlite_sequence(name,seq)\x00tbl_name='%q' AND type!='trigger'\x00SELECT*FROM\"%w\".\"%w\"\x00parameters are not allowed in views\x00view %s is circularly defined\x00corrupt schema\x00UPDATE %Q.sqlite_master SET rootpage=%d WHERE #%d AND rootpage=#%d\x00sqlite_stat%d\x00DELETE FROM %Q.sqlite_sequence WHERE name=%Q\x00DELETE FROM %Q.sqlite_master WHERE tbl_name=%Q and type!='trigger'\x00stat\x00table %s may not be dropped\x00use DROP TABLE to delete table %s\x00use DROP VIEW to delete view %s\x00foreign key on %s should reference only one column of table %T\x00number of columns in foreign key does not match the number of columns in the referenced table\x00unknown column \"%s\" in foreign key definition\x00FIRST\x00LAST\x00unsupported use of NULLS %s\x00index\x00cannot create a TEMP index on non-TEMP table \"%s\"\x00table %s may not be indexed\x00views may not be indexed\x00virtual tables may not be indexed\x00there is already a table named %s\x00index %s already exists\x00sqlite_autoindex_%s_%d\x00expressions prohibited in PRIMARY KEY and UNIQUE constraints\x00conflicting ON CONFLICT clauses specified\x00invalid rootpage\x00 UNIQUE\x00CREATE%s INDEX %.*s\x00INSERT INTO %Q.sqlite_master VALUES('index',%Q,%Q,#%d,%Q);\x00name='%q' AND type='index'\x00no such index: %S\x00index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='index'\x00too many FROM clause terms, max: %d\x00ON\x00USING\x00a JOIN clause is required before %s\x00BEGIN\x00ROLLBACK\x00COMMIT\x00RELEASE\x00unable to open a temporary database file for storing temporary tables\x00index '%q'\x00, \x00%s.rowid\x00unable to identify the object to be reindexed\x00duplicate WITH table name: %s\x00no such collation sequence: %s\x00unsafe use of virtual table \"%s\"\x00table %s may not be modified\x00cannot modify %s because it is a view\x00rows deleted\x00integer overflow\x00%!.*f\x00LIKE or GLOB pattern too complex\x00ESCAPE expression must be a single character\x00%!0.15g\x00%!0.20e\x00%Q\x00?000\x00MATCH\x00like\x00implies_nonnull_row\x00expr_compare\x00expr_implies_expr\x00affinity\x00soundex\x00load_extension\x00sqlite_compileoption_used\x00sqlite_compileoption_get\x00unlikely\x00likelihood\x00likely\x00sqlite_offset\x00ltrim\x00rtrim\x00trim\x00min\x00max\x00typeof\x00subtype\x00length\x00octet_length\x00instr\x00printf\x00format\x00unicode\x00char\x00abs\x00round\x00upper\x00lower\x00hex\x00unhex\x00concat\x00concat_ws\x00ifnull\x00random\x00randomblob\x00nullif\x00sqlite_version\x00sqlite_source_id\x00sqlite_log\x00quote\x00last_insert_rowid\x00changes\x00total_changes\x00replace\x00zeroblob\x00substr\x00substring\x00sum\x00total\x00avg\x00count\x00group_concat\x00string_agg\x00glob\x00ceil\x00trunc\x00ln\x00log\x00log10\x00log2\x00exp\x00pow\x00power\x00mod\x00acos\x00asin\x00atan\x00atan2\x00cos\x00sin\x00tan\x00cosh\x00sinh\x00tanh\x00acosh\x00asinh\x00atanh\x00sqrt\x00radians\x00degrees\x00pi\x00sign\x00iif\x00foreign key mismatch - \"%w\" referencing \"%w\"\x00cannot INSERT into generated column \"%s\"\x00table %S has no column named %s\x00SCAN %S\x00table %S has %d columns but %d values were supplied\x00%d values for %d columns\x00UPSERT not implemented for virtual table \"%s\"\x00cannot UPSERT a view\x00rows inserted\x00dll\x00sqlite3_extension_init\x00sqlite3_\x00lib\x00_init\x00no entry point [%s] in shared library [%s]\x00error during initialization: %s\x00unable to open shared library [%.*s]\x00automatic extension loading failed: %s\x00seq\x00from\x00to\x00on_update\x00on_delete\x00match\x00cid\x00name\x00type\x00notnull\x00dflt_value\x00pk\x00hidden\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00builtin\x00enc\x00narg\x00flags\x00wdth\x00hght\x00flgs\x00unique\x00origin\x00partial\x00rowid\x00fkid\x00file\x00busy\x00checkpointed\x00database\x00status\x00cache_size\x00timeout\x00analysis_limit\x00application_id\x00auto_vacuum\x00automatic_index\x00busy_timeout\x00cache_spill\x00case_sensitive_like\x00cell_size_check\x00checkpoint_fullfsync\x00collation_list\x00compile_options\x00count_changes\x00data_store_directory\x00data_version\x00database_list\x00default_cache_size\x00defer_foreign_keys\x00empty_result_callbacks\x00encoding\x00foreign_key_check\x00foreign_key_list\x00foreign_keys\x00freelist_count\x00full_column_names\x00fullfsync\x00function_list\x00hard_heap_limit\x00ignore_check_constraints\x00incremental_vacuum\x00index_info\x00index_list\x00index_xinfo\x00integrity_check\x00journal_mode\x00journal_size_limit\x00legacy_alter_table\x00locking_mode\x00max_page_count\x00mmap_size\x00module_list\x00optimize\x00page_count\x00page_size\x00pragma_list\x00query_only\x00quick_check\x00read_uncommitted\x00recursive_triggers\x00reverse_unordered_selects\x00schema_version\x00secure_delete\x00short_column_names\x00shrink_memory\x00soft_heap_limit\x00synchronous\x00table_info\x00table_list\x00table_xinfo\x00temp_store\x00temp_store_directory\x00threads\x00trusted_schema\x00user_version\x00wal_autocheckpoint\x00wal_checkpoint\x00writable_schema\x00normal\x00full\x00incremental\x00memory\x00temporary storage cannot be changed from within a transaction\x00SET NULL\x00SET DEFAULT\x00CASCADE\x00RESTRICT\x00NO ACTION\x00delete\x00persist\x00off\x00truncate\x00wal\x00utf8\x00utf16le\x00utf16be\x00w\x00a\x00sissii\x00-%T\x00fast\x00not a writable directory\x00Safety level may not be changed inside a transaction\x00reset\x00issisii\x00issisi\x00SELECT*FROM\"%w\"\x00shadow\x00sssiii\x00iisX\x00isiX\x00c\x00u\x00isisi\x00iss\x00is\x00iissssss\x00NONE\x00siX\x00*** in database %s ***\n\x00wrong # of entries in index \x00row not in PRIMARY KEY order for %s\x00NULL value in %s.%s\x00non-%s value in %s.%s\x00NUMERIC value in %s.%s\x00C\x00TEXT value in %s.%s\x00CHECK constraint failed in %s\x00row \x00 missing from index \x00rowid not at end-of-record for row \x00 of index \x00 values differ from index \x00non-unique entry in index \x00ok\x00UTF8\x00UTF-8\x00UTF-16le\x00UTF-16be\x00UTF16le\x00UTF16be\x00UTF-16\x00UTF16\x00unsupported encoding: %s\x00restart\x00ANALYZE \"%w\".\"%w\"\x00CREATE TABLE x\x00%c\"%s\"\x00(\"%s\"\x00,arg HIDDEN\x00,schema HIDDEN\x00PRAGMA \x00%Q.\x00=%Q\x00rename\x00drop column\x00add column\x00error in %s %s after %s: %s\x00malformed database schema (%s)\x00%z - %s\x00orphan index\x00CREATE TABLE x(type text,name text,tbl_name text,rootpage int,sql text)\x00unsupported file format\x00SELECT*FROM\"%w\".%s ORDER BY rowid\x00database schema is locked: %s\x00statement too long\x00unknown join type: %T%s%T%s%T\x00a NATURAL join may not have an ON or USING clause\x00cannot join using column %s - column not present in both tables\x00ambiguous reference to %s in USING()\x00UNION ALL\x00INTERSECT\x00EXCEPT\x00UNION\x00USE TEMP B-TREE FOR %s\x00LAST TERM OF \x00USE TEMP B-TREE FOR %sORDER BY\x00USE TEMP B-TREE FOR LAST %d TERMS OF ORDER BY\x00column%d\x00%.*z:%u\x00NUM\x00cannot use window functions in recursive queries\x00recursive aggregate queries not supported\x00SETUP\x00RECURSIVE STEP\x00S\x00SCAN %d CONSTANT ROW%s\x00COMPOUND QUERY\x00LEFT-MOST SUBQUERY\x00%s USING TEMP B-TREE\x00all VALUES must have the same number of terms\x00SELECTs to the left and right of %s do not have the same number of result columns\x00MERGE (%s)\x00LEFT\x00RIGHT\x00no such index: %s\x00'%s' is not a function\x00no such index: \"%s\"\x00multiple references to recursive table: %s\x00circular reference: %s\x00table %s has %d values for %d columns\x00multiple recursive references: %s\x00recursive reference in a subquery: %s\x00%!S\x00too many references to \"%s\": max 65535\x00access to view \"%s\" prohibited\x00..%s\x00%s.%s.%s\x00no such table: %s\x00no tables specified\x00too many columns in result set\x00DISTINCT aggregates must have exactly one argument\x00USE TEMP B-TREE FOR %s(DISTINCT)\x00USE TEMP B-TREE FOR %s(ORDER BY)\x00 USING COVERING INDEX \x00SCAN %s%s%s\x00target object/alias may not appear in FROM clause: %s\x00expected %d columns for '%s' but got %d\x00CO-ROUTINE %!S\x00MATERIALIZE %!S\x00DISTINCT\x00GROUP BY\x00sqlite3_get_table() called with two or more incompatible queries\x00temporary trigger may not have qualified name\x00trigger\x00cannot create triggers on virtual tables\x00cannot create triggers on shadow tables\x00trigger %T already exists\x00cannot create trigger on system table\x00BEFORE\x00AFTER\x00cannot create %s trigger on view: %S\x00cannot create INSTEAD OF trigger on table: %S\x00trigger \"%s\" may not write to shadow table \"%s\"\x00INSERT INTO %Q.sqlite_master VALUES('trigger',%Q,%Q,0,'CREATE TRIGGER %q')\x00type='trigger' AND name='%q'\x00no such trigger: %S\x00DELETE FROM %Q.sqlite_master WHERE name=%Q AND type='trigger'\x00DELETE\x00UPDATE\x00%s RETURNING is not available on virtual tables\x00RETURNING may not use \"TABLE.*\" wildcards\x00-- TRIGGER %s\x00cannot UPDATE generated column \"%s\"\x00no such column: %s\x00rows updated\x00%r \x00%sON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint\x00CRE\x00INS\x00cannot VACUUM from within a transaction\x00cannot VACUUM - SQL statements in progress\x00non-text filename\x00ATTACH %Q AS vacuum_db\x00output file already exists\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='table'AND name<>'sqlite_sequence' AND coalesce(rootpage,1)>0\x00SELECT sql FROM \"%w\".sqlite_schema WHERE type='index'\x00SELECT'INSERT INTO vacuum_db.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM vacuum_db.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO vacuum_db.sqlite_schema SELECT*FROM \"%w\".sqlite_schema WHERE type IN('view','trigger') OR(type='table'AND rootpage=0)\x00CREATE VIRTUAL TABLE %T\x00UPDATE %Q.sqlite_master SET type='table', name=%Q, tbl_name=%Q, rootpage=0, sql=%Q WHERE rowid=#%d\x00name=%Q AND sql=%Q\x00vtable constructor called recursively: %s\x00vtable constructor failed: %s\x00vtable constructor did not declare schema: %s\x00no such module: %s\x00syntax error\x00\x00 AND \x00(\x00 (\x00%s=?\x00ANY(%s)\x00>\x00<\x00SEARCH\x00SCAN\x00%s %S\x00AUTOMATIC PARTIAL COVERING INDEX\x00AUTOMATIC COVERING INDEX\x00COVERING INDEX %s\x00INDEX %s\x00 USING \x00 USING INTEGER PRIMARY KEY (%s\x00>? AND %s\x00%c?)\x00 VIRTUAL TABLE INDEX %d:%s\x00 LEFT-JOIN\x00BLOOM FILTER ON %S (\x00rowid=?\x00MULTI-INDEX OR\x00INDEX %d\x00RIGHT-JOIN %s\x00regexp\x00ON clause references tables to its right\x00NOCASE\x00too many arguments on %s() - max %d\x00automatic index on %s(%s)\x00auto-index\x00%s.xBestIndex malfunction\x00abbreviated query algorithm search\x00no query solution\x00at most %d tables in a join\x00SCAN CONSTANT ROW\x00second argument to nth_value must be a positive integer\x00argument of ntile must be a positive integer\x00no such window: %s\x00RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression\x00FILTER clause may only be used with aggregate window functions\x00misuse of aggregate: %s()\x00unsupported frame specification\x00PARTITION clause\x00ORDER BY clause\x00frame specification\x00cannot override %s of window: %s\x00DISTINCT is not supported for window functions\x00frame starting offset must be a non-negative integer\x00frame ending offset must be a non-negative integer\x00frame starting offset must be a non-negative number\x00frame ending offset must be a non-negative number\x00ORDER BY\x00LIMIT\x00%s clause should come after %s not before\x00too many terms in compound SELECT\x00syntax error after column name \"%.*s\"\x00unknown table option: %.*s\x00set list\x00near \"%T\": syntax error\x00qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers\x00the INDEXED BY clause is not allowed on UPDATE or DELETE statements within triggers\x00the NOT INDEXED clause is not allowed on UPDATE or DELETE statements within triggers\x00incomplete input\x00unrecognized token: \"%T\"\x00%s in \"%s\"\x00create\x00temp\x00temporary\x00end\x00explain\x00unable to close due to unfinalized statements or unfinished backups\x00not an error\x00SQL logic error\x00access permission denied\x00query aborted\x00database is locked\x00database table is locked\x00attempt to write a readonly database\x00interrupted\x00disk I/O error\x00database disk image is malformed\x00unknown operation\x00database or disk is full\x00unable to open database file\x00locking protocol\x00constraint failed\x00datatype mismatch\x00bad parameter or other API misuse\x00authorization denied\x00column index out of range\x00file is not a database\x00notification message\x00warning message\x00unknown error\x00abort due to ROLLBACK\x00another row available\x00no more rows available\x00unable to delete/modify user-function due to active statements\x00unable to use function %s in the requested context\x00unknown database: %s\x00unable to delete/modify collation sequence due to active statements\x00file:\x00localhost\x00invalid uri authority: %.*s\x00vfs\x00cache\x00shared\x00private\x00mode\x00ro\x00rw\x00rwc\x00access\x00no such %s mode: %s\x00%s mode not allowed: %s\x00no such vfs: %s\x00RTRIM\x00\x00\x00\x00%s at line %d of [%.10s]\x00database corruption\x00misuse\x00cannot open file\x00no such table column: %s.%s\x00SQLITE_\x00database is deadlocked\x00array\x00object\x000123456789abcdef\x00JSON cannot hold BLOB values\x00malformed JSON\x00inf\x009.0e999\x00infinity\x00QNaN\x00SNaN\x00json_%s() needs an odd number of arguments\x00\"\\/bfnrt\x00-9e999\x009e999\x00inity\x00\\\"\x00\\u0009\x00\\u00\x00\\u0000\x00,\n\x00: \x00bad JSON path: %Q\x00@\x00[\x00.\"\x00\"\x00json_object() requires an even number of arguments\x00json_object() labels must be TEXT\x00set\x00insert\x00 \x00FLAGS parameter to json_valid() must be between 1 and 15\x00[]\x00{}\x00CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path,json HIDDEN,root HIDDEN)\x00[%lld]\x00.\"%.*s\"\x00.%.*s\x00$\x00json\x00jsonb\x00json_array\x00jsonb_array\x00json_array_length\x00json_error_position\x00json_extract\x00jsonb_extract\x00->\x00->>\x00json_insert\x00jsonb_insert\x00json_object\x00jsonb_object\x00json_patch\x00jsonb_patch\x00json_pretty\x00json_quote\x00json_remove\x00jsonb_remove\x00json_replace\x00jsonb_replace\x00json_set\x00jsonb_set\x00json_type\x00json_valid\x00json_group_array\x00jsonb_group_array\x00json_group_object\x00jsonb_group_object\x00json_each\x00json_tree\x00data\x00DROP TABLE '%q'.'%q_node';DROP TABLE '%q'.'%q_rowid';DROP TABLE '%q'.'%q_parent';\x00RtreeMatchArg\x00SELECT * FROM %Q.%Q\x00UNIQUE constraint failed: %s.%s\x00rtree constraint failed: %s.(%s<=%s)\x00ALTER TABLE %Q.'%q_node' RENAME TO \"%w_node\";ALTER TABLE %Q.'%q_parent' RENAME TO \"%w_parent\";ALTER TABLE %Q.'%q_rowid' RENAME TO \"%w_rowid\";\x00SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'\x00node\x00INSERT OR REPLACE INTO '%q'.'%q_node' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_node' WHERE nodeno = ?1\x00SELECT nodeno FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_rowid' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_rowid' WHERE rowid = ?1\x00SELECT parentnode FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00INSERT OR REPLACE INTO '%q'.'%q_parent' VALUES(?1, ?2)\x00DELETE FROM '%q'.'%q_parent' WHERE nodeno = ?1\x00CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno\x00,a%d\x00);CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);\x00CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);\x00INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))\x00INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno\x00SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1\x00UPDATE \"%w\".\"%w_rowid\"SET \x00a%d=coalesce(?%d,a%d)\x00a%d=?%d\x00 WHERE rowid=?1\x00PRAGMA %Q.page_size\x00SELECT length(data) FROM '%q'.'%q_node' WHERE nodeno = 1\x00undersize RTree blobs in \"%q_node\"\x00Wrong number of columns for an rtree table\x00Too few columns for an rtree table\x00Too many columns for an rtree table\x00Auxiliary rtree columns must be last\x00_node\x00CREATE TABLE x(%.*s INT\x00,%.*s\x00,%.*s REAL\x00,%.*s INT\x00);\x00{%lld\x00 %g\x00}\x00Invalid argument to rtreedepth()\x00%z%s%z\x00SELECT data FROM %Q.'%q_node' WHERE nodeno=?\x00Node %lld missing from database\x00SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1\x00SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1\x00%_rowid\x00%_parent\x00Mapping (%lld -> %lld) missing from %s table\x00Found (%lld -> %lld) in %s table, expected (%lld -> %lld)\x00Dimension %d of cell %d on node %lld is corrupt\x00Dimension %d of cell %d on node %lld is corrupt relative to parent\x00Node %lld is too small (%d bytes)\x00Rtree depth out of range (%d)\x00Node %lld is too small for cell count of %d (%d bytes)\x00SELECT count(*) FROM %Q.'%q%s'\x00Wrong number of entries in %%%s table - expected %lld, actual %lld\x00SELECT * FROM %Q.'%q_rowid'\x00Schema corrupt or not an rtree\x00_rowid\x00_parent\x00In RTree %s.%s:\n%z\x00wrong number of arguments to function rtreecheck()\x00[%!g,%!g],\x00[%!g,%!g]]\x00\x00CREATE TABLE x(_shape\x00,%s\x00rtree\x00fullscan\x00_shape does not contain a valid polygon\x00geopoly_overlap\x00geopoly_within\x00geopoly_area\x00geopoly_blob\x00geopoly_json\x00geopoly_svg\x00geopoly_contains_point\x00geopoly_debug\x00geopoly_bbox\x00geopoly_xform\x00geopoly_regular\x00geopoly_ccw\x00geopoly_group_bbox\x00geopoly\x00rtreenode\x00rtreedepth\x00rtreecheck\x00rtree_i32\x00corrupt fossil delta\x00DROP TRIGGER IF EXISTS temp.rbu_insert_tr;DROP TRIGGER IF EXISTS temp.rbu_update1_tr;DROP TRIGGER IF EXISTS temp.rbu_update2_tr;DROP TRIGGER IF EXISTS temp.rbu_delete_tr;\x00AND rootpage!=0 AND rootpage IS NOT NULL\x00SELECT rbu_target_name(name, type='view') AS target, name FROM sqlite_schema WHERE type IN ('table', 'view') AND target IS NOT NULL %s ORDER BY name\x00SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' FROM main.sqlite_schema WHERE type='index' AND tbl_name = ?\x00SELECT (sql COLLATE nocase BETWEEN 'CREATE VIRTUAL' AND 'CREATE VIRTUAM'), rootpage FROM sqlite_schema WHERE name=%Q\x00PRAGMA index_list=%Q\x00SELECT rootpage FROM sqlite_schema WHERE name = %Q\x00PRAGMA table_info=%Q\x00PRAGMA main.index_list = %Q\x00PRAGMA main.index_xinfo = %Q\x00SELECT * FROM '%q'\x00rbu_\x00rbu_rowid\x00may not have\x00requires\x00table %q %s rbu_rowid column\x00PRAGMA table_info(%Q)\x00column missing from %q: %s\x00%z%s\"%w\"\x00%z%s%s\"%w\"%s\x00SELECT max(_rowid_) FROM \"%s%w\"\x00 WHERE _rowid_ > %lld \x00 DESC\x00quote(\x00||','||\x00SELECT %s FROM \"%s%w\" ORDER BY %s LIMIT 1\x00 WHERE (%s) > (%s) \x00_rowid_\x00%z%s \"%w\" COLLATE %Q\x00%z%s \"rbu_imp_%d%w\" COLLATE %Q DESC\x00%z%s quote(\"rbu_imp_%d%w\")\x00SELECT %s FROM \"rbu_imp_%w\" ORDER BY %s LIMIT 1\x00%z%s%s\x00(%s) > (%s)\x00%z%s(%.*s) COLLATE %Q\x00%z%s\"%w\" COLLATE %Q\x00%z%s\"rbu_imp_%d%w\"%s\x00%z%s\"rbu_imp_%d%w\" %s COLLATE %Q\x00%z%s\"rbu_imp_%d%w\" IS ?\x00%z%s%s.\"%w\"\x00%z%sNULL\x00%z, %s._rowid_\x00_rowid_ = ?%d\x00%z%sc%d=?%d\x00_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)\x00%z%s\"%w\"=?%d\x00invalid rbu_control value\x00%z%s\"%w\"=rbu_delta(\"%w\", ?%d)\x00%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)\x00PRIMARY KEY(\x00%z%s\"%w\"%s\x00%z)\x00SELECT name FROM sqlite_schema WHERE rootpage = ?\x00%z%sc%d %s COLLATE %Q\x00%z%sc%d%s\x00%z, id INTEGER\x00CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID\x00PRIMARY KEY \x00 NOT NULL\x00%z%s\"%w\" %s %sCOLLATE %Q%s\x00%z, %z\x00 WITHOUT ROWID\x00CREATE TABLE \"rbu_imp_%w\"(%z)%s\x00INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)\x00SELECT trim(sql) FROM sqlite_schema WHERE type='index' AND name=?\x00 LIMIT -1 OFFSET %d\x00CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID\x00INSERT INTO \"rbu_imp_%w\" VALUES(%s)\x00DELETE FROM \"rbu_imp_%w\" WHERE %s\x00AND\x00WHERE\x00SELECT %s, 0 AS rbu_control FROM '%q' %s %s %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s\x00SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s UNION ALL SELECT %s, rbu_control FROM '%q' %s %s typeof(rbu_control)='integer' AND rbu_control!=1 ORDER BY %s%s\x00rbu_imp_\x00, _rowid_\x00INSERT INTO \"%s%w\"(%s%s) VALUES(%s)\x00DELETE FROM \"%s%w\" WHERE %s\x00, rbu_rowid\x00, 0 AS rbu_rowid\x00CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS SELECT *%s FROM '%q' WHERE 0;\x00CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(3, %s);END;CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(4, %s);END;\x00CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" BEGIN SELECT rbu_tmp_insert(0, %s);END;\x00,_rowid_ \x00,rbu_rowid\x000 AS \x00SELECT %s,%s rbu_control%s FROM '%q'%s %s %s %s\x00UPDATE \"%s%w\" SET %s WHERE %s\x00SELECT k, v FROM %s.rbu_state\x00file:///%s-vacuum?modeof=%s\x00ATTACH %Q AS stat\x00CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)\x00cannot vacuum wal mode database\x00&\x00file:%s-vactmp?rbu_memory=1%s%s\x00rbu_tmp_insert\x00rbu_fossil_delta\x00rbu_target_name\x00SELECT * FROM sqlite_schema\x00rbu vfs not found\x00PRAGMA main.wal_checkpoint=restart\x00rbu_exclusive_checkpoint\x00%s-oal\x00%s-wal\x00PRAGMA schema_version\x00PRAGMA schema_version = %d\x00INSERT OR REPLACE INTO %s.rbu_state(k, v) VALUES (%d, %d), (%d, %Q), (%d, %Q), (%d, %d), (%d, %d), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %lld), (%d, %Q) \x00PRAGMA main.%s\x00PRAGMA main.%s = %d\x00PRAGMA writable_schema=1\x00SELECT sql FROM sqlite_schema WHERE sql!='' AND rootpage!=0 AND name!='sqlite_sequence' ORDER BY type DESC\x00SELECT * FROM sqlite_schema WHERE rootpage=0 OR rootpage IS NULL\x00INSERT INTO sqlite_schema VALUES(?,?,?,?,?)\x00PRAGMA writable_schema=0\x00DELETE FROM %s.'rbu_tmp_%q'\x00rbu_state mismatch error\x00rbu_vfs_%d\x00SELECT count(*) FROM sqlite_schema WHERE type='index' AND tbl_name = %Q\x00rbu_index_cnt\x00SELECT 1 FROM sqlite_schema WHERE tbl_name = 'rbu_count'\x00SELECT sum(cnt * (1 + rbu_index_cnt(rbu_target_name(tbl))))FROM rbu_count\x00cannot update wal mode database\x00vacuum\x00update\x00database modified during rbu %s\x00BEGIN IMMEDIATE\x00PRAGMA journal_mode=off\x00-vactmp\x00DELETE FROM stat.rbu_state\x00rbu/zipvfs setup error\x00rbu(%s)/%z\x00rbu_memory\x00/\x00overflow\x00%s%.3x+%.6x\x00%s%.3x/\x00internal\x00leaf\x00corrupted\x00SELECT * FROM (SELECT 'sqlite_schema' AS name,1 AS rootpage,'table' AS type UNION ALL SELECT name,rootpage,type FROM \"%w\".sqlite_schema WHERE rootpage!=0)\x00WHERE name=%Q\x00 ORDER BY name\x00dbstat\x00SELECT 0, 'tbl', '', 0, '', 1 UNION ALL SELECT 1, 'idx', '', 0, '', 2 UNION ALL SELECT 2, 'stat', '', 0, '', 0\x00PRAGMA '%q'.table_info('%q')\x00SELECT\x00%z%s\"%w\".\"%w\".\"%w\"=\"%w\".\"%w\".\"%w\"\x00%z%s\"%w\".\"%w\".\"%w\" IS NOT \"%w\".\"%w\".\"%w\"\x00 OR \x00_rowid_, *\x00SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS ( SELECT 1 FROM \"%w\".\"%w\" WHERE %s)\x00%z%s\"%w\".\"%w\".\"%w\"\x00SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)\x00table schemas do not match\x00, 1\x00 AND (?6 OR ?3 IS stat)\x00tbl, idx\x00?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)\x00tbl, ?2, stat\x00?%d\x00 AND (?%d OR ?%d IS %w.%w)\x00SELECT %s%s FROM %Q.%Q WHERE (%s) IS (%s)\x00SAVEPOINT changeset\x00RELEASE changeset\x00UPDATE main.\x00 SET \x00 = ?\x00 WHERE \x00idx IS CASE WHEN length(?4)=0 AND typeof(?4)='blob' THEN NULL ELSE ?4 END \x00 IS ?\x00DELETE FROM main.\x00 AND (?\x00AND \x00INSERT INTO main.\x00) VALUES(?\x00, ?\x00INSERT INTO main.sqlite_stat1 VALUES(?1, CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END, ?3)\x00DELETE FROM main.sqlite_stat1 WHERE tbl=?1 AND idx IS CASE WHEN length(?2)=0 AND typeof(?2)='blob' THEN NULL ELSE ?2 END AND (?4 OR stat IS ?3)\x00SAVEPOINT replace_op\x00RELEASE replace_op\x00SAVEPOINT changeset_apply\x00PRAGMA defer_foreign_keys = 1\x00sqlite3changeset_apply(): no such table: %s\x00sqlite3changeset_apply(): table %s has %d columns, expected %d or more\x00sqlite3changeset_apply(): primary key mismatch for table %s\x00PRAGMA defer_foreign_keys = 0\x00RELEASE changeset_apply\x00ROLLBACK TO changeset_apply\x00fts5: parser stack overflow\x00fts5: syntax error near \"%.*s\"\x00%z%.*s\x00wrong number of arguments to function highlight()\x00wrong number of arguments to function snippet()\x00snippet\x00highlight\x00bm25\x00prefix\x00malformed prefix=... directive\x00too many prefix indexes (max %d)\x00prefix length out of range (max 999)\x00tokenize\x00multiple tokenize=... directives\x00parse error in tokenize directive\x00content\x00multiple content=... directives\x00%Q.%Q\x00contentless_delete\x00malformed contentless_delete=... directive\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00columns\x00malformed detail=... directive\x00tokendata\x00malformed tokendata=... directive\x00unrecognized option: \"%.*s\"\x00rank\x00reserved fts5 column name: %s\x00unindexed\x00unrecognized column option: %s\x00T.%Q\x00, T.%Q\x00, T.c%d\x00reserved fts5 table name: %s\x00parse error in \"%s\"\x00contentless_delete=1 requires a contentless table\x00contentless_delete=1 is incompatible with columnsize=0\x00docsize\x00%Q.'%q_%s'\x00CREATE TABLE x(\x00%z%s%Q\x00%z, %Q HIDDEN, %s HIDDEN)\x00pgsz\x00hashsize\x00automerge\x00usermerge\x00crisismerge\x00deletemerge\x00secure-delete\x00SELECT k, v FROM %Q.'%q_config'\x00version\x00invalid fts5 file format (found %d, expected %d or %d) - run 'rebuild'\x00unterminated string\x00fts5: syntax error near \"%.1s\"\x00OR\x00NOT\x00NEAR\x00expected integer, got \"%.*s\"\x00fts5: column queries are not supported (detail=none)\x00phrase\x00fts5: %s queries are not supported (detail!=full)\x00fts5 expression tree is too large (maximum depth %d)\x00block\x00REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)\x00DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?\x00DELETE FROM '%q'.'%q_idx' WHERE segid=?\x00\xff\x00\x00\x01\x00PRAGMA %Q.data_version\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term<=? ORDER BY term DESC LIMIT 1\x00SELECT pgno FROM '%q'.'%q_idx' WHERE segid=? AND term>? ORDER BY term ASC LIMIT 1\x00INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)\x00DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)\x00%s_data\x00id INTEGER PRIMARY KEY, block BLOB\x00segid, term, pgno, PRIMARY KEY(segid, term)\x00\x00\x00SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d ORDER BY 1, 2\x00\x00\x00\x00\x00\x00recursively defined fts5 content table\x00DESC\x00ASC\x00SELECT rowid, rank FROM %Q.%Q ORDER BY %s(\"%w\"%s%s) %s\x00reads\x00unknown special query: %.*s\x00SELECT %s\x00no such function: %s\x00parse error in rank function: %s\x00%s: table does not support scanning\x00delete-all\x00'delete-all' may only be used with a contentless or external content fts5 table\x00rebuild\x00'rebuild' may not be used with a contentless fts5 table\x00merge\x00integrity-check\x00flush\x00'delete' may not be used with a contentless_delete=1 table\x00DELETE from\x00cannot %s contentless fts5 table: %s\x00no such cursor: %lld\x00cannot UPDATE a subset of columns on fts5 contentless-delete table: %s\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00config\x00malformed inverted index for FTS5 table %s.%s\x00unable to validate the inverted index for FTS5 table %s.%s: %s\x00fts5\x00fts5_source_id\x00SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC\x00SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC\x00SELECT %s FROM %s T WHERE T.%Q=?\x00INSERT INTO %Q.'%q_content' VALUES(%s)\x00REPLACE INTO %Q.'%q_content' VALUES(%s)\x00DELETE FROM %Q.'%q_content' WHERE id=?\x00REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)\x00DELETE FROM %Q.'%q_docsize' WHERE id=?\x00SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?\x00REPLACE INTO %Q.'%q_config' VALUES(?,?)\x00SELECT %s FROM %s AS T\x00,?\x00,origin\x00DROP TABLE IF EXISTS %Q.'%q_data';DROP TABLE IF EXISTS %Q.'%q_idx';DROP TABLE IF EXISTS %Q.'%q_config';\x00DROP TABLE IF EXISTS %Q.'%q_docsize';\x00DROP TABLE IF EXISTS %Q.'%q_content';\x00ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';\x00CREATE TABLE %Q.'%q_%q'(%s)%s\x00fts5: error creating shadow table %q_%s: %s\x00id INTEGER PRIMARY KEY\x00, c%d\x00id INTEGER PRIMARY KEY, sz BLOB\x00id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER\x00k PRIMARY KEY, v\x00DELETE FROM %Q.'%q_data';DELETE FROM %Q.'%q_idx';\x00DELETE FROM %Q.'%q_docsize';\x00SELECT count(*) FROM %Q.'%q_%s'\x00tokenchars\x00separators\x00L* N* Co\x00categories\x00remove_diacritics\x00unicode61\x00al\x00ance\x00ence\x00er\x00ic\x00able\x00ible\x00ant\x00ement\x00ment\x00ent\x00ion\x00ou\x00ism\x00ate\x00iti\x00ous\x00ive\x00ize\x00at\x00bl\x00ble\x00iz\x00ational\x00tional\x00tion\x00enci\x00anci\x00izer\x00logi\x00bli\x00alli\x00entli\x00eli\x00e\x00ousli\x00ization\x00ation\x00ator\x00alism\x00iveness\x00fulness\x00ful\x00ousness\x00aliti\x00iviti\x00biliti\x00ical\x00ness\x00icate\x00iciti\x00ative\x00alize\x00eed\x00ee\x00ed\x00ing\x00case_sensitive\x00ascii\x00porter\x00trigram\x00col\x00row\x00instance\x00fts5vocab: unknown table type: %Q\x00CREATE TABlE vocab(term, col, doc, cnt)\x00CREATE TABlE vocab(term, doc, cnt)\x00CREATE TABlE vocab(term, doc, col, offset)\x00wrong number of vtable arguments\x00recursive definition for %s.%s\x00SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'\x00no such fts5 table: %s.%s\x00fts5vocab\x002024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e\x00" type Sqlite3_int64 = sqlite3_int64 type Sqlite3_mutex_methods = sqlite3_mutex_methods diff --git a/vendor/modules.txt b/vendor/modules.txt index 967b4f51..87620304 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -9,11 +9,11 @@ filippo.io/age/internal/stream ## explicit; go 1.20 filippo.io/edwards25519 filippo.io/edwards25519/field -# github.com/BurntSushi/toml v1.3.2 -## explicit; go 1.16 +# github.com/BurntSushi/toml v1.4.0 +## explicit; go 1.18 github.com/BurntSushi/toml github.com/BurntSushi/toml/internal -# github.com/aws/aws-sdk-go-v2 v1.26.1 +# github.com/aws/aws-sdk-go-v2 v1.27.1 ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/aws github.com/aws/aws-sdk-go-v2/aws/arn @@ -45,10 +45,10 @@ github.com/aws/aws-sdk-go-v2/internal/timeconv ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/eventstreamapi -# github.com/aws/aws-sdk-go-v2/config v1.27.11 +# github.com/aws/aws-sdk-go-v2/config v1.27.17 ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/config -# github.com/aws/aws-sdk-go-v2/credentials v1.17.11 +# github.com/aws/aws-sdk-go-v2/credentials v1.17.17 ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/credentials github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds @@ -57,23 +57,23 @@ github.com/aws/aws-sdk-go-v2/credentials/endpointcreds/internal/client github.com/aws/aws-sdk-go-v2/credentials/processcreds github.com/aws/aws-sdk-go-v2/credentials/ssocreds github.com/aws/aws-sdk-go-v2/credentials/stscreds -# github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 +# github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.4 ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/feature/ec2/imds github.com/aws/aws-sdk-go-v2/feature/ec2/imds/internal/config -# github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 +# github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.22 ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/feature/s3/manager -# github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 +# github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.8 ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/internal/configsources -# github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 +# github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.8 ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 # github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/internal/ini -# github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 +# github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.8 ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/internal/v4a github.com/aws/aws-sdk-go-v2/internal/v4a/internal/crypto @@ -81,35 +81,35 @@ github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4 # github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding -# github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 +# github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.10 ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/service/internal/checksum -# github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 +# github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.10 ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url -# github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 +# github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.8 ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/service/internal/s3shared github.com/aws/aws-sdk-go-v2/service/internal/s3shared/arn github.com/aws/aws-sdk-go-v2/service/internal/s3shared/config -# github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 +# github.com/aws/aws-sdk-go-v2/service/s3 v1.54.4 ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/service/s3 github.com/aws/aws-sdk-go-v2/service/s3/internal/arn github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations github.com/aws/aws-sdk-go-v2/service/s3/internal/endpoints github.com/aws/aws-sdk-go-v2/service/s3/types -# github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 +# github.com/aws/aws-sdk-go-v2/service/sso v1.20.10 ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/service/sso github.com/aws/aws-sdk-go-v2/service/sso/internal/endpoints github.com/aws/aws-sdk-go-v2/service/sso/types -# github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 +# github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.4 ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/service/ssooidc github.com/aws/aws-sdk-go-v2/service/ssooidc/internal/endpoints github.com/aws/aws-sdk-go-v2/service/ssooidc/types -# github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 +# github.com/aws/aws-sdk-go-v2/service/sts v1.28.11 ## explicit; go 1.20 github.com/aws/aws-sdk-go-v2/service/sts github.com/aws/aws-sdk-go-v2/service/sts/internal/endpoints @@ -144,10 +144,10 @@ github.com/aws/smithy-go/waiter # github.com/benbjohnson/clock v1.3.5 ## explicit; go 1.15 github.com/benbjohnson/clock -# github.com/cenkalti/backoff/v4 v4.2.1 +# github.com/cenkalti/backoff/v4 v4.3.0 ## explicit; go 1.18 github.com/cenkalti/backoff/v4 -# github.com/conductorone/baton-sdk v0.1.35 +# github.com/conductorone/baton-sdk v0.1.39 ## explicit; go 1.21 github.com/conductorone/baton-sdk/internal/connector github.com/conductorone/baton-sdk/pb/c1/c1z/v1 @@ -171,6 +171,7 @@ github.com/conductorone/baton-sdk/pkg/dotc1z/manager/local github.com/conductorone/baton-sdk/pkg/dotc1z/manager/s3 github.com/conductorone/baton-sdk/pkg/helpers github.com/conductorone/baton-sdk/pkg/logging +github.com/conductorone/baton-sdk/pkg/metrics github.com/conductorone/baton-sdk/pkg/pagination github.com/conductorone/baton-sdk/pkg/provisioner github.com/conductorone/baton-sdk/pkg/ratelimit @@ -180,7 +181,10 @@ github.com/conductorone/baton-sdk/pkg/tasks github.com/conductorone/baton-sdk/pkg/tasks/c1api github.com/conductorone/baton-sdk/pkg/tasks/local github.com/conductorone/baton-sdk/pkg/types +github.com/conductorone/baton-sdk/pkg/types/entitlement +github.com/conductorone/baton-sdk/pkg/types/grant github.com/conductorone/baton-sdk/pkg/types/resource +github.com/conductorone/baton-sdk/pkg/types/ticket github.com/conductorone/baton-sdk/pkg/ugrpc github.com/conductorone/baton-sdk/pkg/uhttp github.com/conductorone/baton-sdk/pkg/us3 @@ -265,7 +269,7 @@ github.com/klauspost/compress/internal/cpuinfo github.com/klauspost/compress/internal/snapref github.com/klauspost/compress/zstd github.com/klauspost/compress/zstd/internal/xxhash -# github.com/lufia/plan9stats v0.0.0-20240408141607-282e7b5d6b74 +# github.com/lufia/plan9stats v0.0.0-20240513124658-fba389f38bae ## explicit; go 1.16 github.com/lufia/plan9stats # github.com/magiconair/properties v1.8.7 @@ -304,7 +308,7 @@ github.com/pquerna/xjwt # github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec ## explicit; go 1.12 github.com/remyoudompheng/bigfft -# github.com/sagikazarmark/locafero v0.4.0 +# github.com/sagikazarmark/locafero v0.6.0 ## explicit; go 1.20 github.com/sagikazarmark/locafero # github.com/sagikazarmark/slog-shim v0.1.0 @@ -313,8 +317,8 @@ github.com/sagikazarmark/slog-shim # github.com/segmentio/ksuid v1.0.4 ## explicit; go 1.12 github.com/segmentio/ksuid -# github.com/shirou/gopsutil/v3 v3.24.4 -## explicit; go 1.15 +# github.com/shirou/gopsutil/v3 v3.24.5 +## explicit; go 1.18 github.com/shirou/gopsutil/v3/common github.com/shirou/gopsutil/v3/cpu github.com/shirou/gopsutil/v3/host @@ -345,8 +349,8 @@ github.com/spf13/cobra # github.com/spf13/pflag v1.0.5 ## explicit; go 1.12 github.com/spf13/pflag -# github.com/spf13/viper v1.18.2 -## explicit; go 1.18 +# github.com/spf13/viper v1.19.0 +## explicit; go 1.20 github.com/spf13/viper github.com/spf13/viper/internal/encoding github.com/spf13/viper/internal/encoding/dotenv @@ -369,6 +373,15 @@ github.com/tklauser/numcpus # github.com/yusufpapurcu/wmi v1.2.4 ## explicit; go 1.16 github.com/yusufpapurcu/wmi +# go.opentelemetry.io/otel v1.27.0 +## explicit; go 1.21 +go.opentelemetry.io/otel/attribute +go.opentelemetry.io/otel/internal +go.opentelemetry.io/otel/internal/attribute +# go.opentelemetry.io/otel/metric v1.27.0 +## explicit; go 1.21 +go.opentelemetry.io/otel/metric +go.opentelemetry.io/otel/metric/embedded # go.uber.org/multierr v1.11.0 ## explicit; go 1.19 go.uber.org/multierr @@ -386,7 +399,7 @@ go.uber.org/zap/internal/exit go.uber.org/zap/internal/pool go.uber.org/zap/internal/stacktrace go.uber.org/zap/zapcore -# golang.org/x/crypto v0.23.0 +# golang.org/x/crypto v0.24.0 ## explicit; go 1.18 golang.org/x/crypto/blowfish golang.org/x/crypto/chacha20 @@ -402,14 +415,14 @@ golang.org/x/crypto/poly1305 golang.org/x/crypto/scrypt golang.org/x/crypto/ssh golang.org/x/crypto/ssh/internal/bcrypt_pbkdf -# golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 +# golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 ## explicit; go 1.20 golang.org/x/exp/constraints golang.org/x/exp/slices golang.org/x/exp/slog golang.org/x/exp/slog/internal golang.org/x/exp/slog/internal/buffer -# golang.org/x/net v0.25.0 +# golang.org/x/net v0.26.0 ## explicit; go 1.18 golang.org/x/net/http/httpguts golang.org/x/net/http2 @@ -417,7 +430,7 @@ golang.org/x/net/http2/hpack golang.org/x/net/idna golang.org/x/net/internal/timeseries golang.org/x/net/trace -# golang.org/x/oauth2 v0.20.0 +# golang.org/x/oauth2 v0.21.0 ## explicit; go 1.18 golang.org/x/oauth2 golang.org/x/oauth2/clientcredentials @@ -427,7 +440,7 @@ golang.org/x/oauth2/jwt # golang.org/x/sync v0.7.0 ## explicit; go 1.18 golang.org/x/sync/semaphore -# golang.org/x/sys v0.20.0 +# golang.org/x/sys v0.21.0 ## explicit; go 1.18 golang.org/x/sys/cpu golang.org/x/sys/unix @@ -437,7 +450,7 @@ golang.org/x/sys/windows/svc golang.org/x/sys/windows/svc/debug golang.org/x/sys/windows/svc/eventlog golang.org/x/sys/windows/svc/mgr -# golang.org/x/text v0.15.0 +# golang.org/x/text v0.16.0 ## explicit; go 1.18 golang.org/x/text/encoding golang.org/x/text/encoding/internal @@ -449,10 +462,10 @@ golang.org/x/text/secure/bidirule golang.org/x/text/transform golang.org/x/text/unicode/bidi golang.org/x/text/unicode/norm -# google.golang.org/genproto/googleapis/rpc v0.0.0-20240506185236-b8a5c65736ae -## explicit; go 1.19 +# google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 +## explicit; go 1.20 google.golang.org/genproto/googleapis/rpc/status -# google.golang.org/grpc v1.63.2 +# google.golang.org/grpc v1.64.0 ## explicit; go 1.19 google.golang.org/grpc google.golang.org/grpc/attributes @@ -559,7 +572,7 @@ gopkg.in/yaml.v2 # gopkg.in/yaml.v3 v3.0.1 ## explicit gopkg.in/yaml.v3 -# modernc.org/libc v1.50.5 +# modernc.org/libc v1.52.1 ## explicit; go 1.20 modernc.org/libc modernc.org/libc/errno @@ -593,6 +606,6 @@ modernc.org/mathutil # modernc.org/memory v1.8.0 ## explicit; go 1.18 modernc.org/memory -# modernc.org/sqlite v1.29.9 +# modernc.org/sqlite v1.30.0 ## explicit; go 1.20 modernc.org/sqlite/lib